From d702cb720cbcb744a5deb6e9ce7082186ba9f2fb Mon Sep 17 00:00:00 2001 From: Ian Norden Date: Thu, 18 Apr 2019 07:39:37 -0500 Subject: [PATCH] update dependencies to work with update eth-block-extractor --- Gopkg.lock | 2205 ++ Gopkg.toml | 67 + cmd/syncAndPublish.go | 6 +- pkg/eth/client/rpc_client.go | 1 - pkg/fakes/mock_rpc_client.go | 4 + pkg/ipfs/converter.go | 114 + pkg/ipfs/converter_test.go | 17 + pkg/ipfs/indexer.go | 28 +- pkg/ipfs/indexer_test.go | 17 + pkg/ipfs/payload_converter.go | 115 - pkg/ipfs/publisher.go | 44 +- pkg/ipfs/publisher_test.go | 17 + pkg/ipfs/repository.go | 9 +- pkg/ipfs/repository_test.go | 17 + pkg/ipfs/streamer.go | 2 +- pkg/ipfs/streamer_test.go | 17 + pkg/ipfs/test_helpers/fakes.go | 17 + pkg/ipfs/test_helpers/mocks/converter.go | 17 + pkg/ipfs/test_helpers/mocks/publisher.go | 17 + pkg/ipfs/test_helpers/mocks/repository.go | 17 + pkg/ipfs/test_helpers/mocks/streamer.go | 17 + pkg/ipfs/test_helpers/test_helpers.go | 17 + vendor/bazil.org/fuse/.gitattributes | 2 + vendor/bazil.org/fuse/.gitignore | 11 + vendor/bazil.org/fuse/LICENSE | 93 + vendor/bazil.org/fuse/README.md | 23 + vendor/bazil.org/fuse/buffer.go | 35 + vendor/bazil.org/fuse/debug.go | 21 + vendor/bazil.org/fuse/error_darwin.go | 17 + vendor/bazil.org/fuse/error_freebsd.go | 15 + vendor/bazil.org/fuse/error_linux.go | 17 + vendor/bazil.org/fuse/error_std.go | 31 + vendor/bazil.org/fuse/fs/serve.go | 1568 ++ vendor/bazil.org/fuse/fs/tree.go | 99 + vendor/bazil.org/fuse/fuse.go | 2304 ++ vendor/bazil.org/fuse/fuse_darwin.go | 9 + vendor/bazil.org/fuse/fuse_freebsd.go | 6 + vendor/bazil.org/fuse/fuse_kernel.go | 774 + vendor/bazil.org/fuse/fuse_kernel_darwin.go | 88 + vendor/bazil.org/fuse/fuse_kernel_freebsd.go | 62 + vendor/bazil.org/fuse/fuse_kernel_linux.go | 70 + vendor/bazil.org/fuse/fuse_kernel_std.go | 1 + vendor/bazil.org/fuse/fuse_linux.go | 7 + vendor/bazil.org/fuse/fuseutil/fuseutil.go | 20 + vendor/bazil.org/fuse/mount.go | 38 + vendor/bazil.org/fuse/mount_darwin.go | 208 + vendor/bazil.org/fuse/mount_freebsd.go | 111 + vendor/bazil.org/fuse/mount_linux.go | 150 + vendor/bazil.org/fuse/options.go | 310 + vendor/bazil.org/fuse/options_darwin.go | 35 + vendor/bazil.org/fuse/options_freebsd.go | 28 + vendor/bazil.org/fuse/options_linux.go | 25 + vendor/bazil.org/fuse/protocol.go | 75 + vendor/bazil.org/fuse/unmount.go | 6 + vendor/bazil.org/fuse/unmount_linux.go | 21 + vendor/bazil.org/fuse/unmount_std.go | 17 + .../github.com/Stebalien/go-bitfield/LICENSE | 21 + .../Stebalien/go-bitfield/README.md | 5 + .../Stebalien/go-bitfield/bitfield.go | 114 + .../Stebalien/go-bitfield/package.json | 16 + .../github.com/bren2010/proquint/LICENSE.md | 19 + vendor/github.com/bren2010/proquint/README.md | 6 + .../github.com/bren2010/proquint/proquint.go | 123 + .../go-spew => cenkalti/backoff}/.gitignore | 0 .../github.com/cenkalti/backoff/.travis.yml | 10 + vendor/github.com/cenkalti/backoff/LICENSE | 20 + vendor/github.com/cenkalti/backoff/README.md | 30 + vendor/github.com/cenkalti/backoff/backoff.go | 66 + vendor/github.com/cenkalti/backoff/context.go | 63 + .../cenkalti/backoff/exponential.go | 153 + vendor/github.com/cenkalti/backoff/retry.go | 82 + vendor/github.com/cenkalti/backoff/ticker.go | 82 + vendor/github.com/cenkalti/backoff/tries.go | 35 + vendor/github.com/cheekybits/genny/LICENSE | 22 + .../cheekybits/genny/generic/doc.go | 2 + .../cheekybits/genny/generic/generic.go | 13 + vendor/github.com/coreos/go-semver/LICENSE | 202 + vendor/github.com/coreos/go-semver/NOTICE | 5 + .../coreos/go-semver/semver/semver.go | 296 + .../coreos/go-semver/semver/sort.go | 38 + vendor/github.com/cskr/pubsub/LICENSE | 22 + vendor/github.com/cskr/pubsub/README.md | 13 + vendor/github.com/cskr/pubsub/go.mod | 3 + vendor/github.com/cskr/pubsub/pubsub.go | 267 + vendor/github.com/davecgh/go-spew/.travis.yml | 28 - vendor/github.com/davecgh/go-spew/README.md | 201 - .../github.com/davecgh/go-spew/cov_report.sh | 22 - .../davecgh/go-spew/spew/common_test.go | 298 - .../davecgh/go-spew/spew/dump_test.go | 1042 - .../davecgh/go-spew/spew/dumpcgo_test.go | 101 - .../davecgh/go-spew/spew/dumpnocgo_test.go | 26 - .../davecgh/go-spew/spew/example_test.go | 226 - .../davecgh/go-spew/spew/format_test.go | 1558 -- .../davecgh/go-spew/spew/internal_test.go | 84 - .../go-spew/spew/internalunsafe_test.go | 101 - .../davecgh/go-spew/spew/spew_test.go | 320 - .../davecgh/go-spew/spew/testdata/dumpcgo.go | 82 - .../davecgh/go-spew/test_coverage.txt | 61 - .../github.com/davidlazar/go-crypto/LICENSE | 19 + .../davidlazar/go-crypto/drbg/LICENSE | 19 + .../davidlazar/go-crypto/salsa20/salsa20.go | 85 + vendor/github.com/edsrzf/mmap-go/mmap_test.go | 152 - .../ethereum/go-ethereum/.github/CODEOWNERS | 18 - .../ethereum/go-ethereum/cmd/clef/main.go | 983 - .../ethereum/go-ethereum/cmd/faucet/faucet.go | 779 - .../go-ethereum/cmd/geth/accountcmd.go | 379 - .../ethereum/go-ethereum/cmd/geth/config.go | 229 - .../ethereum/go-ethereum/cmd/geth/main.go | 420 - .../ethereum/go-ethereum/cmd/geth/usage.go | 359 - .../go-ethereum/cmd/swarm/access_test.go | 617 - .../go-ethereum/cmd/swarm/run_test.go | 502 - .../go-ethereum/cmd/swarm/upload_test.go | 359 - .../ethereum/go-ethereum/cmd/utils/flags.go | 1699 -- .../consensus/ethash/algorithm_test.go | 789 - .../consensus/ethash/consensus_test.go | 86 - .../ethereum/go-ethereum/console/bridge.go | 438 - .../ethereum/go-ethereum/console/console.go | 450 - .../go-ethereum/core/blockchain_test.go | 1893 -- .../go-ethereum/core/types/block_test.go | 86 - .../go-ethereum/core/vm/gas_table_test.go | 39 - .../go-ethereum/core/vm/instructions_test.go | 640 - .../core/vm/testdata/testcases_add.json | 1 - .../core/vm/testdata/testcases_and.json | 1 - .../core/vm/testdata/testcases_byte.json | 1 - .../core/vm/testdata/testcases_div.json | 1 - .../core/vm/testdata/testcases_eq.json | 1 - .../core/vm/testdata/testcases_exp.json | 1 - .../core/vm/testdata/testcases_gt.json | 1 - .../core/vm/testdata/testcases_lt.json | 1 - .../core/vm/testdata/testcases_mod.json | 1 - .../core/vm/testdata/testcases_mul.json | 1 - .../core/vm/testdata/testcases_or.json | 1 - .../core/vm/testdata/testcases_sar.json | 1 - .../core/vm/testdata/testcases_sdiv.json | 1 - .../core/vm/testdata/testcases_sgt.json | 1 - .../core/vm/testdata/testcases_shl.json | 1 - .../core/vm/testdata/testcases_shr.json | 1 - .../core/vm/testdata/testcases_signext.json | 1 - .../core/vm/testdata/testcases_slt.json | 1 - .../core/vm/testdata/testcases_smod.json | 1 - .../core/vm/testdata/testcases_sub.json | 1 - .../core/vm/testdata/testcases_xor.json | 1 - .../ethereum/go-ethereum/eth/api_backend.go | 234 - .../ethereum/go-ethereum/eth/backend.go | 535 - .../ethereum/go-ethereum/eth/config.go | 165 - .../ethereum/go-ethereum/ethstats/ethstats.go | 717 - .../ethereum/go-ethereum/graphql/graphql.go | 1233 - .../ethereum/go-ethereum/graphql/schema.go | 320 - .../go-ethereum/internal/web3ext/web3ext.go | 762 - .../ethereum/go-ethereum/les/api_backend.go | 211 - .../ethereum/go-ethereum/les/backend.go | 288 - .../ethereum/go-ethereum/les/benchmark.go | 352 - .../ethereum/go-ethereum/les/commons.go | 108 - .../ethereum/go-ethereum/les/costtracker.go | 379 - .../ethereum/go-ethereum/les/handler.go | 1190 - .../ethereum/go-ethereum/les/handler_test.go | 521 - .../ethereum/go-ethereum/les/odr.go | 130 - .../ethereum/go-ethereum/les/odr_requests.go | 494 - .../ethereum/go-ethereum/les/odr_test.go | 196 - .../ethereum/go-ethereum/les/peer.go | 760 - .../ethereum/go-ethereum/les/protocol.go | 235 - .../ethereum/go-ethereum/les/request_test.go | 114 - .../ethereum/go-ethereum/les/server.go | 301 - .../ethereum/go-ethereum/light/lightchain.go | 542 - .../ethereum/go-ethereum/light/odr_test.go | 317 - .../ethereum/go-ethereum/light/postprocess.go | 397 - .../ethereum/go-ethereum/miner/worker.go | 989 - .../ethereum/go-ethereum/mobile/types.go | 439 - .../ethereum/go-ethereum/p2p/rlpx_test.go | 600 - .../go-ethereum/signer/core/api_test.go | 325 - .../signer/core/signed_data_test.go | 808 - .../signer/core/validation_test.go | 45 - .../go-ethereum/signer/fourbyte/4byte.go | 271 - .../go-ethereum/signer/fourbyte/4byte.json | 1 - .../go-ethereum/signer/fourbyte/abi.go | 164 - .../go-ethereum/signer/fourbyte/abi_test.go | 174 - .../go-ethereum/signer/fourbyte/fourbyte.go | 143 - .../signer/fourbyte/fourbyte_test.go | 91 - .../go-ethereum/signer/fourbyte/validation.go | 117 - .../signer/fourbyte/validation_test.go | 137 - .../go-ethereum/statediff/builder_test.go | 392 - .../go-ethereum/statediff/service_test.go | 130 - .../statediff/testhelpers/helpers.go | 83 - .../statediff/testhelpers/mocks/blockchain.go | 86 - .../statediff/testhelpers/mocks/builder.go | 52 - .../statediff/testhelpers/mocks/publisher.go | 36 - .../statediff/testhelpers/mocks/service.go | 171 - .../testhelpers/mocks/service_test.go | 127 - .../statediff/testhelpers/test_data.go | 114 - .../swarm/api/client/client_test.go | 597 - .../go-ethereum/swarm/api/http/test_server.go | 98 - .../go-ethereum/swarm/network/discovery.go | 220 - .../swarm/network/discovery_test.go | 262 - .../go-ethereum/swarm/network/hive_test.go | 174 - .../go-ethereum/swarm/network/protocol.go | 335 - .../swarm/network/protocol_test.go | 332 - .../swarm/storage/ldbstore_test.go | 785 - .../go-ethereum/swarm/version/version.go | 67 - .../go-ethereum/tests/block_test_util.go | 304 - .../go-ethereum/tests/difficulty_test_util.go | 69 - .../go-ethereum/tests/gen_btheader.go | 130 - .../go-ethereum/tests/gen_difficultytest.go | 68 - .../go-ethereum/trie/database_test.go | 33 - .../go-ethereum/trie/encoding_test.go | 104 - .../facebookgo/atomicfile/.travis.yml | 20 + .../facebookgo/atomicfile/atomicfile.go | 59 + .../github.com/facebookgo/atomicfile/license | 30 + .../github.com/facebookgo/atomicfile/patents | 33 + .../facebookgo/atomicfile/readme.md | 9 + vendor/github.com/fjl/memsize/bitmap_test.go | 130 - vendor/github.com/fjl/memsize/memsize_test.go | 359 - .../fjl/memsize/memsizedemo/main.go | 21 - vendor/github.com/fjl/memsize/type_test.go | 78 - vendor/github.com/gogo/protobuf/AUTHORS | 15 + vendor/github.com/gogo/protobuf/CONTRIBUTORS | 23 + .../gogo/protobuf/GOLANG_CONTRIBUTORS | 5 + vendor/github.com/gogo/protobuf/LICENSE | 35 + .../gogo/protobuf/gogoproto/Makefile | 37 + .../github.com/gogo/protobuf/gogoproto/doc.go | 169 + .../gogo/protobuf/gogoproto/gogo.pb.go | 874 + .../gogo/protobuf/gogoproto/gogo.pb.golden | 45 + .../gogo/protobuf/gogoproto/gogo.proto | 144 + .../gogo/protobuf/gogoproto/helper.go | 415 + vendor/github.com/gogo/protobuf/io/full.go | 102 + vendor/github.com/gogo/protobuf/io/io.go | 70 + vendor/github.com/gogo/protobuf/io/uint32.go | 138 + vendor/github.com/gogo/protobuf/io/varint.go | 133 + .../github.com/gogo/protobuf/proto/Makefile | 43 + .../github.com/gogo/protobuf/proto/clone.go | 258 + .../gogo/protobuf/proto/custom_gogo.go | 39 + .../github.com/gogo/protobuf/proto/decode.go | 427 + .../gogo/protobuf/proto/deprecated.go | 63 + .../github.com/gogo/protobuf/proto/discard.go | 350 + .../gogo/protobuf/proto/duration.go | 100 + .../gogo/protobuf/proto/duration_gogo.go | 49 + .../github.com/gogo/protobuf/proto/encode.go | 203 + .../gogo/protobuf/proto/encode_gogo.go | 33 + .../github.com/gogo/protobuf/proto/equal.go | 300 + .../gogo/protobuf/proto/extensions.go | 604 + .../gogo/protobuf/proto/extensions_gogo.go | 368 + vendor/github.com/gogo/protobuf/proto/lib.go | 967 + .../gogo/protobuf/proto/lib_gogo.go | 50 + .../gogo/protobuf/proto/message_set.go | 181 + .../gogo/protobuf/proto/pointer_reflect.go | 357 + .../protobuf/proto/pointer_reflect_gogo.go | 59 + .../gogo/protobuf/proto/pointer_unsafe.go | 308 + .../protobuf/proto/pointer_unsafe_gogo.go | 56 + .../gogo/protobuf/proto/properties.go | 599 + .../gogo/protobuf/proto/properties_gogo.go | 36 + .../gogo/protobuf/proto/skip_gogo.go | 119 + .../gogo/protobuf/proto/table_marshal.go | 3006 +++ .../gogo/protobuf/proto/table_marshal_gogo.go | 388 + .../gogo/protobuf/proto/table_merge.go | 657 + .../gogo/protobuf/proto/table_unmarshal.go | 2245 ++ .../protobuf/proto/table_unmarshal_gogo.go | 385 + vendor/github.com/gogo/protobuf/proto/text.go | 928 + .../gogo/protobuf/proto/text_gogo.go | 57 + .../gogo/protobuf/proto/text_parser.go | 1018 + .../gogo/protobuf/proto/timestamp.go | 113 + .../gogo/protobuf/proto/timestamp_gogo.go | 49 + .../gogo/protobuf/proto/wrappers.go | 1888 ++ .../gogo/protobuf/proto/wrappers_gogo.go | 113 + .../protoc-gen-gogo/descriptor/Makefile | 36 + .../protoc-gen-gogo/descriptor/descriptor.go | 118 + .../descriptor/descriptor.pb.go | 2865 +++ .../descriptor/descriptor_gostring.gen.go | 752 + .../protoc-gen-gogo/descriptor/helper.go | 390 + .../github.com/gorilla/websocket/.gitignore | 25 + .../github.com/gorilla/websocket/.travis.yml | 19 + vendor/github.com/gorilla/websocket/AUTHORS | 9 + vendor/github.com/gorilla/websocket/LICENSE | 22 + vendor/github.com/gorilla/websocket/README.md | 64 + vendor/github.com/gorilla/websocket/client.go | 395 + .../gorilla/websocket/client_clone.go | 16 + .../gorilla/websocket/client_clone_legacy.go | 38 + .../gorilla/websocket/compression.go | 148 + vendor/github.com/gorilla/websocket/conn.go | 1165 + .../gorilla/websocket/conn_write.go | 15 + .../gorilla/websocket/conn_write_legacy.go | 18 + vendor/github.com/gorilla/websocket/doc.go | 180 + vendor/github.com/gorilla/websocket/json.go | 60 + vendor/github.com/gorilla/websocket/mask.go | 54 + .../github.com/gorilla/websocket/mask_safe.go | 15 + .../github.com/gorilla/websocket/prepared.go | 102 + vendor/github.com/gorilla/websocket/proxy.go | 77 + vendor/github.com/gorilla/websocket/server.go | 363 + vendor/github.com/gorilla/websocket/trace.go | 19 + .../github.com/gorilla/websocket/trace_17.go | 12 + vendor/github.com/gorilla/websocket/util.go | 237 + .../gorilla/websocket/x_net_proxy.go | 473 + vendor/github.com/gxed/hashland/LICENSE | 22 + .../github.com/gxed/hashland/keccak/LICENSE | 21 + .../github.com/gxed/hashland/keccakpg/go.mod | 1 + .../gxed/hashland/keccakpg/keccak.go | 224 + .../gxed/hashland/keccakpg/package.json | 14 + .../github.com/gxed/hashland/murmur3/LICENSE | 24 + .../gxed/hashland/murmur3/README.md | 84 + .../github.com/gxed/hashland/murmur3/go.mod | 1 + .../gxed/hashland/murmur3/murmur.go | 65 + .../gxed/hashland/murmur3/murmur128.go | 189 + .../gxed/hashland/murmur3/murmur32.go | 154 + .../gxed/hashland/murmur3/murmur64.go | 45 + vendor/github.com/hashicorp/errwrap/LICENSE | 354 + vendor/github.com/hashicorp/errwrap/README.md | 89 + .../github.com/hashicorp/errwrap/errwrap.go | 169 + vendor/github.com/hashicorp/errwrap/go.mod | 1 + .../hashicorp/go-multierror/.travis.yml | 12 + .../hashicorp/go-multierror/LICENSE | 353 + .../hashicorp/go-multierror/Makefile | 31 + .../hashicorp/go-multierror/README.md | 97 + .../hashicorp/go-multierror/append.go | 41 + .../hashicorp/go-multierror/flatten.go | 26 + .../hashicorp/go-multierror/format.go | 27 + .../github.com/hashicorp/go-multierror/go.mod | 3 + .../github.com/hashicorp/go-multierror/go.sum | 4 + .../hashicorp/go-multierror/multierror.go | 51 + .../hashicorp/go-multierror/prefix.go | 37 + .../hashicorp/go-multierror/sort.go | 16 + vendor/github.com/ipfs/bbloom/.gitignore | 1 + vendor/github.com/ipfs/bbloom/.travis.yml | 32 + vendor/github.com/ipfs/bbloom/README.md | 129 + vendor/github.com/ipfs/bbloom/bbloom.go | 315 + vendor/github.com/ipfs/bbloom/go.mod | 1 + vendor/github.com/ipfs/bbloom/package.json | 15 + vendor/github.com/ipfs/bbloom/sipHash.go | 225 + vendor/github.com/ipfs/go-bitswap/.gitignore | 1 + vendor/github.com/ipfs/go-bitswap/.travis.yml | 32 + vendor/github.com/ipfs/go-bitswap/LICENSE | 21 + vendor/github.com/ipfs/go-bitswap/Makefile | 11 + vendor/github.com/ipfs/go-bitswap/README.md | 64 + vendor/github.com/ipfs/go-bitswap/bitswap.go | 391 + .../ipfs/go-bitswap/decision/engine.go | 382 + .../ipfs/go-bitswap/decision/ledger.go | 94 + .../go-bitswap/decision/peer_request_queue.go | 342 + .../ipfs/go-bitswap/getter/getter.go | 112 + vendor/github.com/ipfs/go-bitswap/go.mod | 34 + vendor/github.com/ipfs/go-bitswap/go.sum | 275 + .../ipfs/go-bitswap/message/message.go | 244 + .../ipfs/go-bitswap/message/pb/Makefile | 11 + .../ipfs/go-bitswap/message/pb/message.pb.go | 1152 + .../ipfs/go-bitswap/message/pb/message.proto | 29 + .../go-bitswap/messagequeue/messagequeue.go | 273 + .../ipfs/go-bitswap/network/interface.go | 80 + .../ipfs/go-bitswap/network/ipfs_impl.go | 228 + .../go-bitswap/notifications/notifications.go | 131 + .../github.com/ipfs/go-bitswap/package.json | 196 + .../go-bitswap/peermanager/peermanager.go | 137 + .../providerquerymanager.go | 423 + .../ipfs/go-bitswap/session/cidqueue.go | 46 + .../ipfs/go-bitswap/session/session.go | 418 + .../sessionmanager/sessionmanager.go | 134 + .../sessionpeermanager/sessionpeermanager.go | 224 + .../sessionrequestsplitter.go | 163 + vendor/github.com/ipfs/go-bitswap/stat.go | 46 + .../ipfs/go-bitswap/testnet/interface.go | 13 + .../internet_latency_delay_generator.go | 63 + .../ipfs/go-bitswap/testnet/peernet.go | 42 + .../testnet/rate_limit_generators.go | 42 + .../ipfs/go-bitswap/testnet/virtual.go | 330 + .../github.com/ipfs/go-bitswap/testutils.go | 110 + .../ipfs/go-bitswap/wantlist/wantlist.go | 197 + .../go-bitswap/wantmanager/wantmanager.go | 286 + vendor/github.com/ipfs/go-bitswap/workers.go | 185 + .../ipfs/go-block-format/.travis.yml | 32 + .../github.com/ipfs/go-block-format/LICENSE | 21 + .../github.com/ipfs/go-block-format/Makefile | 15 + .../github.com/ipfs/go-block-format/README.md | 35 + .../github.com/ipfs/go-block-format/blocks.go | 82 + .../ipfs/go-block-format/codecov.yml | 3 + vendor/github.com/ipfs/go-block-format/go.mod | 7 + vendor/github.com/ipfs/go-block-format/go.sum | 24 + .../ipfs/go-block-format/package.json | 36 + .../ipfs/go-blockservice/.travis.yml | 32 + .../github.com/ipfs/go-blockservice/LICENSE | 21 + .../github.com/ipfs/go-blockservice/README.md | 33 + .../ipfs/go-blockservice/blockservice.go | 354 + vendor/github.com/ipfs/go-blockservice/go.mod | 18 + vendor/github.com/ipfs/go-blockservice/go.sum | 279 + .../ipfs/go-blockservice/package.json | 54 + vendor/github.com/ipfs/go-cid/.gitignore | 1 + vendor/github.com/ipfs/go-cid/.travis.yml | 32 + vendor/github.com/ipfs/go-cid/LICENSE | 21 + vendor/github.com/ipfs/go-cid/Makefile | 16 + vendor/github.com/ipfs/go-cid/README.md | 125 + vendor/github.com/ipfs/go-cid/builder.go | 74 + vendor/github.com/ipfs/go-cid/cid.go | 601 + vendor/github.com/ipfs/go-cid/cid_fuzz.go | 37 + vendor/github.com/ipfs/go-cid/codecov.yml | 3 + vendor/github.com/ipfs/go-cid/deprecated.go | 28 + vendor/github.com/ipfs/go-cid/go.mod | 6 + vendor/github.com/ipfs/go-cid/go.sum | 20 + vendor/github.com/ipfs/go-cid/package.json | 30 + vendor/github.com/ipfs/go-cid/set.go | 65 + vendor/github.com/ipfs/go-cid/varint.go | 34 + vendor/github.com/ipfs/go-cidutil/.travis.yml | 32 + vendor/github.com/ipfs/go-cidutil/README.md | 19 + vendor/github.com/ipfs/go-cidutil/codecov.yml | 3 + vendor/github.com/ipfs/go-cidutil/format.go | 197 + vendor/github.com/ipfs/go-cidutil/go.mod | 7 + vendor/github.com/ipfs/go-cidutil/go.sum | 22 + vendor/github.com/ipfs/go-cidutil/inline.go | 26 + .../github.com/ipfs/go-cidutil/package.json | 34 + vendor/github.com/ipfs/go-cidutil/set.go | 42 + vendor/github.com/ipfs/go-cidutil/slice.go | 30 + .../github.com/ipfs/go-datastore/.gitignore | 1 + .../github.com/ipfs/go-datastore/.travis.yml | 32 + vendor/github.com/ipfs/go-datastore/LICENSE | 21 + vendor/github.com/ipfs/go-datastore/Makefile | 9 + vendor/github.com/ipfs/go-datastore/README.md | 34 + .../ipfs/go-datastore/autobatch/README.md | 19 + .../ipfs/go-datastore/autobatch/autobatch.go | 143 + .../github.com/ipfs/go-datastore/basic_ds.go | 274 + vendor/github.com/ipfs/go-datastore/batch.go | 52 + .../github.com/ipfs/go-datastore/datastore.go | 239 + .../ipfs/go-datastore/delayed/delayed.go | 80 + vendor/github.com/ipfs/go-datastore/go.mod | 10 + vendor/github.com/ipfs/go-datastore/go.sum | 15 + vendor/github.com/ipfs/go-datastore/key.go | 302 + .../ipfs/go-datastore/keytransform/doc.go | 25 + .../go-datastore/keytransform/interface.go | 13 + .../go-datastore/keytransform/keytransform.go | 255 + .../go-datastore/keytransform/transforms.go | 49 + .../ipfs/go-datastore/mount/mount.go | 400 + .../ipfs/go-datastore/namespace/doc.go | 24 + .../ipfs/go-datastore/namespace/namespace.go | 26 + .../github.com/ipfs/go-datastore/package.json | 42 + .../ipfs/go-datastore/query/filter.go | 90 + .../ipfs/go-datastore/query/order.go | 74 + .../ipfs/go-datastore/query/query.go | 386 + .../ipfs/go-datastore/query/query_impl.go | 142 + .../go-datastore/retrystore/retrystore.go | 96 + .../github.com/ipfs/go-datastore/sync/sync.go | 167 + .../github.com/ipfs/go-ds-measure/.gitignore | 1 + .../github.com/ipfs/go-ds-measure/.travis.yml | 32 + vendor/github.com/ipfs/go-ds-measure/LICENSE | 21 + vendor/github.com/ipfs/go-ds-measure/Makefile | 9 + vendor/github.com/ipfs/go-ds-measure/go.mod | 6 + vendor/github.com/ipfs/go-ds-measure/go.sum | 18 + .../github.com/ipfs/go-ds-measure/measure.go | 332 + .../ipfs/go-ds-measure/package.json | 30 + vendor/github.com/ipfs/go-fs-lock/.gitignore | 6 + vendor/github.com/ipfs/go-fs-lock/.travis.yml | 32 + vendor/github.com/ipfs/go-fs-lock/LICENSE | 21 + vendor/github.com/ipfs/go-fs-lock/README.md | 66 + vendor/github.com/ipfs/go-fs-lock/fslock.go | 76 + vendor/github.com/ipfs/go-fs-lock/go.mod | 7 + vendor/github.com/ipfs/go-fs-lock/go.sum | 45 + .../github.com/ipfs/go-fs-lock/package.json | 35 + .../github.com/ipfs/go-ipfs-addr/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-addr/LICENSE | 21 + vendor/github.com/ipfs/go-ipfs-addr/Makefile | 13 + vendor/github.com/ipfs/go-ipfs-addr/README.md | 47 + .../github.com/ipfs/go-ipfs-addr/codecov.yml | 3 + vendor/github.com/ipfs/go-ipfs-addr/go.mod | 7 + vendor/github.com/ipfs/go-ipfs-addr/go.sum | 77 + .../github.com/ipfs/go-ipfs-addr/ipfsaddr.go | 114 + .../github.com/ipfs/go-ipfs-addr/package.json | 35 + .../ipfs/go-ipfs-blockstore/.travis.yml | 32 + .../ipfs/go-ipfs-blockstore/LICENSE | 21 + .../ipfs/go-ipfs-blockstore/Makefile | 18 + .../ipfs/go-ipfs-blockstore/README.md | 44 + .../ipfs/go-ipfs-blockstore/arc_cache.go | 182 + .../ipfs/go-ipfs-blockstore/blockstore.go | 284 + .../ipfs/go-ipfs-blockstore/bloom_cache.go | 204 + .../ipfs/go-ipfs-blockstore/caching.go | 55 + .../github.com/ipfs/go-ipfs-blockstore/go.mod | 14 + .../github.com/ipfs/go-ipfs-blockstore/go.sum | 75 + .../ipfs/go-ipfs-blockstore/idstore.go | 86 + .../ipfs/go-ipfs-blockstore/package.json | 65 + .../ipfs/go-ipfs-chunker/.travis.yml | 32 + .../github.com/ipfs/go-ipfs-chunker/LICENSE | 21 + .../github.com/ipfs/go-ipfs-chunker/Makefile | 18 + .../github.com/ipfs/go-ipfs-chunker/README.md | 48 + vendor/github.com/ipfs/go-ipfs-chunker/go.mod | 9 + vendor/github.com/ipfs/go-ipfs-chunker/go.sum | 55 + .../ipfs/go-ipfs-chunker/package.json | 47 + .../github.com/ipfs/go-ipfs-chunker/parse.go | 88 + .../github.com/ipfs/go-ipfs-chunker/rabin.go | 54 + .../ipfs/go-ipfs-chunker/splitting.go | 105 + .../github.com/ipfs/go-ipfs-config/.gitignore | 1 + .../ipfs/go-ipfs-config/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-config/LICENSE | 21 + .../ipfs/go-ipfs-config/addresses.go | 10 + vendor/github.com/ipfs/go-ipfs-config/api.go | 5 + .../ipfs/go-ipfs-config/bootstrap_peers.go | 87 + .../github.com/ipfs/go-ipfs-config/config.go | 128 + .../ipfs/go-ipfs-config/datastore.go | 32 + .../ipfs/go-ipfs-config/discovery.go | 12 + .../ipfs/go-ipfs-config/experiments.go | 11 + .../github.com/ipfs/go-ipfs-config/gateway.go | 11 + vendor/github.com/ipfs/go-ipfs-config/go.mod | 11 + vendor/github.com/ipfs/go-ipfs-config/go.sum | 87 + .../ipfs/go-ipfs-config/identity.go | 29 + vendor/github.com/ipfs/go-ipfs-config/init.go | 181 + vendor/github.com/ipfs/go-ipfs-config/ipns.go | 8 + .../github.com/ipfs/go-ipfs-config/mounts.go | 8 + .../ipfs/go-ipfs-config/package.json | 60 + .../github.com/ipfs/go-ipfs-config/profile.go | 229 + .../github.com/ipfs/go-ipfs-config/pubsub.go | 18 + .../ipfs/go-ipfs-config/reprovider.go | 6 + .../github.com/ipfs/go-ipfs-config/routing.go | 7 + .../go-ipfs-config/serialize/serialize.go | 71 + .../github.com/ipfs/go-ipfs-config/swarm.go | 25 + .../github.com/ipfs/go-ipfs-config/types.go | 41 + .../github.com/ipfs/go-ipfs-delay/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-delay/LICENSE | 21 + vendor/github.com/ipfs/go-ipfs-delay/Makefile | 18 + .../github.com/ipfs/go-ipfs-delay/README.md | 42 + vendor/github.com/ipfs/go-ipfs-delay/delay.go | 75 + .../ipfs/go-ipfs-delay/generator.go | 66 + vendor/github.com/ipfs/go-ipfs-delay/go.mod | 1 + .../ipfs/go-ipfs-delay/package.json | 16 + .../ipfs/go-ipfs-ds-help/.travis.yml | 32 + .../github.com/ipfs/go-ipfs-ds-help/LICENSE | 21 + .../github.com/ipfs/go-ipfs-ds-help/Makefile | 18 + .../github.com/ipfs/go-ipfs-ds-help/README.md | 44 + vendor/github.com/ipfs/go-ipfs-ds-help/go.mod | 7 + vendor/github.com/ipfs/go-ipfs-ds-help/go.sum | 38 + vendor/github.com/ipfs/go-ipfs-ds-help/key.go | 36 + .../ipfs/go-ipfs-ds-help/package.json | 36 + .../go-ipfs-exchange-interface/.travis.yml | 32 + .../ipfs/go-ipfs-exchange-interface/LICENSE | 21 + .../ipfs/go-ipfs-exchange-interface/Makefile | 11 + .../ipfs/go-ipfs-exchange-interface/README.md | 42 + .../ipfs/go-ipfs-exchange-interface/go.mod | 6 + .../ipfs/go-ipfs-exchange-interface/go.sum | 26 + .../go-ipfs-exchange-interface/interface.go | 37 + .../go-ipfs-exchange-interface/package.json | 30 + .../ipfs/go-ipfs-exchange-offline/.travis.yml | 32 + .../ipfs/go-ipfs-exchange-offline/LICENSE | 21 + .../ipfs/go-ipfs-exchange-offline/Makefile | 18 + .../ipfs/go-ipfs-exchange-offline/README.md | 46 + .../ipfs/go-ipfs-exchange-offline/go.mod | 11 + .../ipfs/go-ipfs-exchange-offline/go.sum | 82 + .../ipfs/go-ipfs-exchange-offline/offline.go | 73 + .../go-ipfs-exchange-offline/package.json | 48 + .../github.com/ipfs/go-ipfs-files/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-files/LICENSE | 21 + .../github.com/ipfs/go-ipfs-files/README.md | 27 + vendor/github.com/ipfs/go-ipfs-files/file.go | 94 + vendor/github.com/ipfs/go-ipfs-files/go.mod | 3 + vendor/github.com/ipfs/go-ipfs-files/go.sum | 2 + .../ipfs/go-ipfs-files/is_hidden.go | 18 + .../ipfs/go-ipfs-files/is_hidden_windows.go | 35 + .../github.com/ipfs/go-ipfs-files/linkfile.go | 53 + .../ipfs/go-ipfs-files/multifilereader.go | 152 + .../ipfs/go-ipfs-files/multipartfile.go | 228 + .../ipfs/go-ipfs-files/package.json | 24 + .../ipfs/go-ipfs-files/readerfile.go | 82 + .../ipfs/go-ipfs-files/serialfile.go | 178 + .../ipfs/go-ipfs-files/slicedirectory.go | 97 + .../ipfs/go-ipfs-files/tarwriter.go | 100 + vendor/github.com/ipfs/go-ipfs-files/util.go | 25 + .../github.com/ipfs/go-ipfs-files/webfile.go | 74 + .../github.com/ipfs/go-ipfs-flags/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-flags/LICENSE | 21 + vendor/github.com/ipfs/go-ipfs-flags/Makefile | 18 + .../github.com/ipfs/go-ipfs-flags/README.md | 42 + vendor/github.com/ipfs/go-ipfs-flags/flags.go | 14 + vendor/github.com/ipfs/go-ipfs-flags/go.mod | 1 + .../ipfs/go-ipfs-flags/package.json | 16 + .../ipfs/go-ipfs-posinfo/.gitignore | 14 + .../ipfs/go-ipfs-posinfo/.travis.yml | 32 + .../github.com/ipfs/go-ipfs-posinfo/LICENSE | 21 + .../github.com/ipfs/go-ipfs-posinfo/Makefile | 18 + .../github.com/ipfs/go-ipfs-posinfo/README.md | 37 + vendor/github.com/ipfs/go-ipfs-posinfo/go.mod | 3 + vendor/github.com/ipfs/go-ipfs-posinfo/go.sum | 28 + .../ipfs/go-ipfs-posinfo/package.json | 24 + .../ipfs/go-ipfs-posinfo/posinfo.go | 23 + vendor/github.com/ipfs/go-ipfs-pq/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-pq/LICENSE | 21 + vendor/github.com/ipfs/go-ipfs-pq/Makefile | 18 + vendor/github.com/ipfs/go-ipfs-pq/README.md | 42 + vendor/github.com/ipfs/go-ipfs-pq/go.mod | 1 + .../github.com/ipfs/go-ipfs-pq/package.json | 16 + vendor/github.com/ipfs/go-ipfs-pq/pq.go | 106 + .../github.com/ipfs/go-ipfs-routing/LICENSE | 21 + .../mock/centralized_client.go | 90 + .../mock/centralized_server.go | 93 + .../ipfs/go-ipfs-routing/mock/interface.go | 59 + .../ipfs/go-ipfs-routing/none/none_client.go | 57 + .../ipfs/go-ipfs-routing/offline/offline.go | 128 + .../github.com/ipfs/go-ipfs-util/.gitignore | 1 + .../github.com/ipfs/go-ipfs-util/.travis.yml | 32 + vendor/github.com/ipfs/go-ipfs-util/LICENSE | 21 + vendor/github.com/ipfs/go-ipfs-util/README.md | 45 + vendor/github.com/ipfs/go-ipfs-util/file.go | 12 + vendor/github.com/ipfs/go-ipfs-util/go.mod | 6 + vendor/github.com/ipfs/go-ipfs-util/go.sum | 16 + .../github.com/ipfs/go-ipfs-util/package.json | 28 + vendor/github.com/ipfs/go-ipfs-util/time.go | 22 + vendor/github.com/ipfs/go-ipfs-util/util.go | 158 + .../ipfs/go-ipfs/.circleci/config.yml | 113 - vendor/github.com/ipfs/go-ipfs/.gitattributes | 13 + vendor/github.com/ipfs/go-ipfs/.gitignore | 2 + vendor/github.com/ipfs/go-ipfs/.gx/lastpubver | 1 - vendor/github.com/ipfs/go-ipfs/.travis.yml | 30 - vendor/github.com/ipfs/go-ipfs/CHANGELOG.md | 485 +- vendor/github.com/ipfs/go-ipfs/CODEOWNERS | 8 - vendor/github.com/ipfs/go-ipfs/Dockerfile | 22 +- .../github.com/ipfs/go-ipfs/Dockerfile.fast | 79 - .../github.com/ipfs/go-ipfs/ISSUE_TEMPLATE.md | 2 +- vendor/github.com/ipfs/go-ipfs/README.md | 94 +- vendor/github.com/ipfs/go-ipfs/Rules.mk | 20 +- .../github.com/ipfs/go-ipfs/assets/README.md | 13 - .../github.com/ipfs/go-ipfs/assets/assets.go | 86 - .../ipfs/go-ipfs/assets/assets_test.go | 61 - .../github.com/ipfs/go-ipfs/assets/bindata.go | 538 - .../ipfs/go-ipfs/assets/init-doc/about | 53 - .../ipfs/go-ipfs/assets/init-doc/contact | 6 - .../ipfs/go-ipfs/assets/init-doc/docs/index | 1 - .../ipfs/go-ipfs/assets/init-doc/help | 7 - .../ipfs/go-ipfs/assets/init-doc/ping | 1 - .../ipfs/go-ipfs/assets/init-doc/quick-start | 113 - .../ipfs/go-ipfs/assets/init-doc/readme | 26 - .../go-ipfs/assets/init-doc/security-notes | 25 - vendor/github.com/ipfs/go-ipfs/bin/Rules.mk | 30 - .../ipfs/go-ipfs/bin/archive-branches.sh | 71 - .../github.com/ipfs/go-ipfs/bin/check_go_path | 30 - .../ipfs/go-ipfs/bin/check_go_version | 42 - .../ipfs/go-ipfs/bin/check_gx_program | 46 - .../github.com/ipfs/go-ipfs/bin/check_version | 77 - .../ipfs/go-ipfs/bin/container_daemon | 47 - vendor/github.com/ipfs/go-ipfs/bin/dist_get | 175 - vendor/github.com/ipfs/go-ipfs/bin/gencmdref | 38 - vendor/github.com/ipfs/go-ipfs/bin/graphmd | 26 - .../ipfs/go-ipfs/bin/ipns-republish | 33 - .../ipfs/go-ipfs/bin/maketarball.sh | 26 - .../github.com/ipfs/go-ipfs/bin/mkreleaselog | 12 - .../github.com/ipfs/go-ipfs/bin/test-go-fmt | 15 - .../go-ipfs/blocks/blockstoreutil/remove.go | 113 - .../ipfs/go-ipfs/ci/Dockerfile.buildenv | 46 - vendor/github.com/ipfs/go-ipfs/ci/Jenkinsfile | 204 - .../ipfs/go-ipfs/cmd/ipfs/.gitignore | 3 - .../github.com/ipfs/go-ipfs/cmd/ipfs/Rules.mk | 50 - .../ipfs/go-ipfs/cmd/ipfs/daemon.go | 727 - .../ipfs/go-ipfs/cmd/ipfs/dist/README.md | 28 - .../ipfs/go-ipfs/cmd/ipfs/dist/install.sh | 36 - .../ipfs/go-ipfs/cmd/ipfs/dnsresolve_test.go | 72 - .../github.com/ipfs/go-ipfs/cmd/ipfs/init.go | 252 - .../github.com/ipfs/go-ipfs/cmd/ipfs/ipfs.go | 96 - .../github.com/ipfs/go-ipfs/cmd/ipfs/main.go | 443 - .../ipfs/go-ipfs/cmd/ipfs/runmain_test.go | 30 - .../ipfs/go-ipfs/cmd/ipfs/util/signal.go | 77 - .../ipfs/go-ipfs/cmd/ipfs/util/signal_wasm.go | 18 - .../ipfs/go-ipfs/cmd/ipfs/util/ulimit.go | 87 - .../go-ipfs/cmd/ipfs/util/ulimit_freebsd.go | 36 - .../ipfs/go-ipfs/cmd/ipfs/util/ulimit_test.go | 90 - .../ipfs/go-ipfs/cmd/ipfs/util/ulimit_unix.go | 27 - .../go-ipfs/cmd/ipfs/util/ulimit_windows.go | 7 - .../ipfs/go-ipfs/cmd/ipfswatch/README.md | 7 - .../go-ipfs/cmd/ipfswatch/ipfswatch_test.go | 13 - .../ipfs/go-ipfs/cmd/ipfswatch/main.go | 219 - .../ipfs/go-ipfs/cmd/seccat/.gitignore | 1 - .../ipfs/go-ipfs/cmd/seccat/seccat.go | 251 - .../ipfs/go-ipfs/cmd/seccat/util.go | 47 - .../ipfs/go-ipfs/commands/context.go | 130 - .../ipfs/go-ipfs/commands/reqlog.go | 112 - .../github.com/ipfs/go-ipfs/core/bootstrap.go | 20 +- .../ipfs/go-ipfs/core/bootstrap_test.go | 56 - .../github.com/ipfs/go-ipfs/core/builder.go | 60 +- .../ipfs/go-ipfs/core/commands/active.go | 116 - .../ipfs/go-ipfs/core/commands/add.go | 392 - .../ipfs/go-ipfs/core/commands/bitswap.go | 220 - .../ipfs/go-ipfs/core/commands/block.go | 276 - .../ipfs/go-ipfs/core/commands/bootstrap.go | 410 - .../ipfs/go-ipfs/core/commands/cat.go | 176 - .../ipfs/go-ipfs/core/commands/cid.go | 354 - .../go-ipfs/core/commands/cmdenv/cidbase.go | 107 - .../core/commands/cmdenv/cidbase_test.go | 73 - .../ipfs/go-ipfs/core/commands/cmdenv/env.go | 72 - .../ipfs/go-ipfs/core/commands/cmdenv/file.go | 23 - .../ipfs/go-ipfs/core/commands/commands.go | 191 - .../go-ipfs/core/commands/commands_test.go | 247 - .../ipfs/go-ipfs/core/commands/config.go | 488 - .../ipfs/go-ipfs/core/commands/dag/dag.go | 254 - .../ipfs/go-ipfs/core/commands/dht.go | 669 - .../ipfs/go-ipfs/core/commands/dht_test.go | 34 - .../ipfs/go-ipfs/core/commands/diag.go | 17 - .../ipfs/go-ipfs/core/commands/dns.go | 89 - .../ipfs/go-ipfs/core/commands/e/error.go | 30 - .../ipfs/go-ipfs/core/commands/external.go | 87 - .../ipfs/go-ipfs/core/commands/files.go | 1173 - .../ipfs/go-ipfs/core/commands/filestore.go | 259 - .../ipfs/go-ipfs/core/commands/get.go | 342 - .../ipfs/go-ipfs/core/commands/get_test.go | 69 - .../go-ipfs/core/commands/helptext_test.go | 54 - .../ipfs/go-ipfs/core/commands/id.go | 195 - .../ipfs/go-ipfs/core/commands/keystore.go | 249 - .../ipfs/go-ipfs/core/commands/log.go | 118 - .../ipfs/go-ipfs/core/commands/ls.go | 246 - .../go-ipfs/core/commands/mount_nofuse.go | 22 - .../ipfs/go-ipfs/core/commands/mount_unix.go | 129 - .../go-ipfs/core/commands/mount_windows.go | 19 - .../ipfs/go-ipfs/core/commands/name/ipns.go | 164 - .../ipfs/go-ipfs/core/commands/name/ipnsps.go | 165 - .../ipfs/go-ipfs/core/commands/name/name.go | 67 - .../go-ipfs/core/commands/name/publish.go | 153 - .../ipfs/go-ipfs/core/commands/object/diff.go | 129 - .../go-ipfs/core/commands/object/object.go | 564 - .../go-ipfs/core/commands/object/patch.go | 236 - .../ipfs/go-ipfs/core/commands/p2p.go | 543 - .../ipfs/go-ipfs/core/commands/pin.go | 679 - .../ipfs/go-ipfs/core/commands/ping.go | 173 - .../ipfs/go-ipfs/core/commands/pubsub.go | 264 - .../ipfs/go-ipfs/core/commands/refs.go | 339 - .../ipfs/go-ipfs/core/commands/repo.go | 405 - .../ipfs/go-ipfs/core/commands/resolve.go | 157 - .../ipfs/go-ipfs/core/commands/root.go | 217 - .../ipfs/go-ipfs/core/commands/root_test.go | 22 - .../ipfs/go-ipfs/core/commands/shutdown.go | 30 - .../ipfs/go-ipfs/core/commands/stat.go | 194 - .../ipfs/go-ipfs/core/commands/swarm.go | 741 - .../ipfs/go-ipfs/core/commands/sysdiag.go | 137 - .../ipfs/go-ipfs/core/commands/tar.go | 117 - .../ipfs/go-ipfs/core/commands/unixfs/ls.go | 236 - .../go-ipfs/core/commands/unixfs/unixfs.go | 26 - .../ipfs/go-ipfs/core/commands/urlstore.go | 147 - .../ipfs/go-ipfs/core/commands/version.go | 85 - vendor/github.com/ipfs/go-ipfs/core/core.go | 152 +- .../github.com/ipfs/go-ipfs/core/core_test.go | 67 - .../ipfs/go-ipfs/core/coreapi/block.go | 142 - .../ipfs/go-ipfs/core/coreapi/coreapi.go | 237 - .../ipfs/go-ipfs/core/coreapi/dag.go | 53 - .../ipfs/go-ipfs/core/coreapi/dht.go | 141 - .../ipfs/go-ipfs/core/coreapi/key.go | 226 - .../ipfs/go-ipfs/core/coreapi/name.go | 181 - .../ipfs/go-ipfs/core/coreapi/object.go | 373 - .../ipfs/go-ipfs/core/coreapi/path.go | 75 - .../ipfs/go-ipfs/core/coreapi/pin.go | 224 - .../ipfs/go-ipfs/core/coreapi/pubsub.go | 170 - .../ipfs/go-ipfs/core/coreapi/swarm.go | 173 - .../go-ipfs/core/coreapi/test/api_test.go | 121 - .../ipfs/go-ipfs/core/coreapi/unixfs.go | 242 - .../ipfs/go-ipfs/core/coredag/cbor.go | 32 - .../ipfs/go-ipfs/core/coredag/dagpb.go | 66 - .../ipfs/go-ipfs/core/coredag/dagtransl.go | 86 - .../ipfs/go-ipfs/core/coredag/raw.go | 37 - .../ipfs/go-ipfs/core/corehttp/commands.go | 183 - .../ipfs/go-ipfs/core/corehttp/corehttp.go | 129 - .../ipfs/go-ipfs/core/corehttp/gateway.go | 112 - .../go-ipfs/core/corehttp/gateway_handler.go | 612 - .../core/corehttp/gateway_indexPage.go | 65 - .../go-ipfs/core/corehttp/gateway_test.go | 623 - .../go-ipfs/core/corehttp/ipns_hostname.go | 39 - .../ipfs/go-ipfs/core/corehttp/logs.go | 58 - .../ipfs/go-ipfs/core/corehttp/metrics.go | 134 - .../go-ipfs/core/corehttp/metrics_test.go | 50 - .../go-ipfs/core/corehttp/mutex_profile.go | 45 - .../ipfs/go-ipfs/core/corehttp/option_test.go | 75 - .../ipfs/go-ipfs/core/corehttp/proxy.go | 79 - .../ipfs/go-ipfs/core/corehttp/proxy_test.go | 56 - .../ipfs/go-ipfs/core/corehttp/redirect.go | 24 - .../ipfs/go-ipfs/core/corehttp/webui.go | 26 - .../ipfs/go-ipfs/core/corerepo/gc.go | 226 - .../ipfs/go-ipfs/core/corerepo/stat.go | 91 - .../ipfs/go-ipfs/core/coreunix/add.go | 549 - .../ipfs/go-ipfs/core/coreunix/add_test.go | 257 - .../ipfs/go-ipfs/core/coreunix/metadata.go | 57 - .../go-ipfs/core/coreunix/metadata_test.go | 94 - .../core/coreunix/test/data/colors/orange | 1 - .../core/coreunix/test/data/corps/apple | 1 - .../core/coreunix/test/data/fruits/apple | 1 - .../core/coreunix/test/data/fruits/orange | 1 - .../github.com/ipfs/go-ipfs/core/mock/mock.go | 74 - .../ipfs/go-ipfs/core/pathresolver.go | 8 +- .../ipfs/go-ipfs/core/pathresolver_test.go | 31 - .../ipfs/go-ipfs/coverage/.gitignore | 4 - .../github.com/ipfs/go-ipfs/coverage/Rules.mk | 58 - .../ipfs/go-ipfs/coverage/main/main.go | 72 - .../github.com/ipfs/go-ipfs/dagutils/diff.go | 12 +- .../ipfs/go-ipfs/dagutils/diffenum.go | 6 +- .../ipfs/go-ipfs/dagutils/diffenum_test.go | 249 - .../github.com/ipfs/go-ipfs/dagutils/utils.go | 18 +- .../ipfs/go-ipfs/dagutils/utils_test.go | 114 - vendor/github.com/ipfs/go-ipfs/docs/README.md | 38 - .../ipfs/go-ipfs/docs/add-code-flow.md | 102 - .../docs/cli-http-api-core-diagram.png | Bin 55031 -> 0 bytes .../ipfs/go-ipfs/docs/command-completion.md | 29 - vendor/github.com/ipfs/go-ipfs/docs/config.md | 396 - .../ipfs/go-ipfs/docs/datastores.md | 83 - .../ipfs/go-ipfs/docs/debug-guide.md | 99 - .../docs/developer-certificate-of-origin | 37 - .../go-ipfs/docs/experimental-features.md | 685 - .../ipfs/go-ipfs/docs/file-transfer.md | 116 - vendor/github.com/ipfs/go-ipfs/docs/fuse.md | 134 - .../github.com/ipfs/go-ipfs/docs/gateway.md | 59 - .../go-ipfs/docs/implement-api-bindings.md | 205 - .../github.com/ipfs/go-ipfs/docs/openbsd.md | 37 - .../github.com/ipfs/go-ipfs/docs/plugins.md | 132 - .../github.com/ipfs/go-ipfs/docs/releases.md | 42 - .../ipfs/go-ipfs/docs/transports.md | 12 - .../github.com/ipfs/go-ipfs/docs/windows.md | 147 - .../go-ipfs/exchange/reprovide/providers.go | 10 +- .../go-ipfs/exchange/reprovide/reprovide.go | 10 +- .../exchange/reprovide/reprovide_test.go | 57 - .../ipfs/go-ipfs/filestore/filestore.go | 12 +- .../ipfs/go-ipfs/filestore/filestore_test.go | 177 - .../ipfs/go-ipfs/filestore/fsrefstore.go | 18 +- .../ipfs/go-ipfs/filestore/pb/dataobj.pb.go | 2 +- .../github.com/ipfs/go-ipfs/filestore/util.go | 10 +- .../ipfs/go-ipfs/fuse/ipns/common.go | 34 - .../ipfs/go-ipfs/fuse/ipns/ipns_test.go | 486 - .../ipfs/go-ipfs/fuse/ipns/ipns_unix.go | 594 - .../ipfs/go-ipfs/fuse/ipns/link_unix.go | 28 - .../ipfs/go-ipfs/fuse/ipns/mount_unix.go | 26 - .../ipfs/go-ipfs/fuse/mount/fuse.go | 8 +- .../ipfs/go-ipfs/fuse/mount/mount.go | 4 +- .../ipfs/go-ipfs/fuse/node/mount_darwin.go | 243 - .../ipfs/go-ipfs/fuse/node/mount_nofuse.go | 13 - .../ipfs/go-ipfs/fuse/node/mount_test.go | 86 - .../ipfs/go-ipfs/fuse/node/mount_unix.go | 114 - .../ipfs/go-ipfs/fuse/node/mount_windows.go | 11 - .../ipfs/go-ipfs/fuse/readonly/doc.go | 3 - .../ipfs/go-ipfs/fuse/readonly/ipfs_test.go | 294 - .../ipfs/go-ipfs/fuse/readonly/mount_unix.go | 20 - .../go-ipfs/fuse/readonly/readonly_unix.go | 296 - vendor/github.com/ipfs/go-ipfs/go.mod | 119 + vendor/github.com/ipfs/go-ipfs/go.sum | 580 + .../ipfs/go-ipfs/keystore/keystore.go | 4 +- .../ipfs/go-ipfs/keystore/keystore_test.go | 273 - .../ipfs/go-ipfs/keystore/memkeystore.go | 2 +- .../ipfs/go-ipfs/keystore/memkeystore_test.go | 99 - .../misc/completion/ipfs-completion.bash | 949 - .../ipfs/go-ipfs/misc/launchd/README.md | 4 - .../ipfs/go-ipfs/misc/launchd/install.sh | 32 - .../misc/launchd/io.ipfs.ipfs-daemon.plist | 23 - vendor/github.com/ipfs/go-ipfs/mk/footer.mk | 3 - vendor/github.com/ipfs/go-ipfs/mk/git.mk | 1 - vendor/github.com/ipfs/go-ipfs/mk/golang.mk | 75 - vendor/github.com/ipfs/go-ipfs/mk/gx.mk | 14 - vendor/github.com/ipfs/go-ipfs/mk/header.mk | 5 - vendor/github.com/ipfs/go-ipfs/mk/tarball.mk | 13 - vendor/github.com/ipfs/go-ipfs/mk/util.mk | 36 - .../github.com/ipfs/go-ipfs/namesys/base.go | 4 +- .../github.com/ipfs/go-ipfs/namesys/cache.go | 2 +- vendor/github.com/ipfs/go-ipfs/namesys/dns.go | 6 +- .../ipfs/go-ipfs/namesys/dns_test.go | 166 - .../ipfs/go-ipfs/namesys/interface.go | 6 +- .../namesys/ipns_resolver_validation_test.go | 201 - .../ipfs/go-ipfs/namesys/namesys.go | 20 +- .../ipfs/go-ipfs/namesys/namesys_test.go | 108 - .../ipfs/go-ipfs/namesys/proquint.go | 6 +- .../ipfs/go-ipfs/namesys/publisher.go | 22 +- .../ipfs/go-ipfs/namesys/publisher_test.go | 112 - .../ipfs/go-ipfs/namesys/republisher/repub.go | 18 +- .../go-ipfs/namesys/republisher/repub_test.go | 138 - .../ipfs/go-ipfs/namesys/resolve_test.go | 147 - .../ipfs/go-ipfs/namesys/routing.go | 24 +- .../github.com/ipfs/go-ipfs/p2p/listener.go | 8 +- vendor/github.com/ipfs/go-ipfs/p2p/local.go | 12 +- vendor/github.com/ipfs/go-ipfs/p2p/p2p.go | 8 +- vendor/github.com/ipfs/go-ipfs/p2p/remote.go | 14 +- vendor/github.com/ipfs/go-ipfs/p2p/stream.go | 32 +- .../github.com/ipfs/go-ipfs/package-list.json | 3 - vendor/github.com/ipfs/go-ipfs/package.json | 622 - vendor/github.com/ipfs/go-ipfs/pin/gc/gc.go | 288 - .../ipfs/go-ipfs/pin/internal/pb/header.pb.go | 2 +- vendor/github.com/ipfs/go-ipfs/pin/pin.go | 10 +- .../github.com/ipfs/go-ipfs/pin/pin_test.go | 408 - vendor/github.com/ipfs/go-ipfs/pin/set.go | 8 +- .../github.com/ipfs/go-ipfs/pin/set_test.go | 101 - .../github.com/ipfs/go-ipfs/plugin/Rules.mk | 9 - .../github.com/ipfs/go-ipfs/plugin/daemon.go | 14 - .../ipfs/go-ipfs/plugin/datastore.go | 14 - vendor/github.com/ipfs/go-ipfs/plugin/ipld.go | 16 - .../ipfs/go-ipfs/plugin/loader/Rules.mk | 10 - .../ipfs/go-ipfs/plugin/loader/load_linux.go | 68 - .../ipfs/go-ipfs/plugin/loader/loader.go | 170 - .../ipfs/go-ipfs/plugin/loader/preload.go | 20 - .../ipfs/go-ipfs/plugin/loader/preload.sh | 36 - .../ipfs/go-ipfs/plugin/loader/preload_list | 10 - .../github.com/ipfs/go-ipfs/plugin/plugin.go | 12 - .../ipfs/go-ipfs/plugin/plugins/.gitignore | 2 - .../ipfs/go-ipfs/plugin/plugins/Rules.mk | 24 - .../plugin/plugins/badgerds/badgerds.go | 127 - .../go-ipfs/plugin/plugins/flatfs/flatfs.go | 90 - .../ipfs/go-ipfs/plugin/plugins/gen_main.sh | 22 - .../ipfs/go-ipfs/plugin/plugins/git/git.go | 75 - .../go-ipfs/plugin/plugins/levelds/levelds.go | 88 - .../github.com/ipfs/go-ipfs/plugin/tracer.go | 11 - .../ipfs/go-ipfs/provider/offline.go | 20 + .../ipfs/go-ipfs/provider/provider.go | 79 + .../github.com/ipfs/go-ipfs/provider/queue.go | 208 + .../ipfs/go-ipfs/repo/fsrepo/config_test.go | 236 - .../ipfs/go-ipfs/repo/fsrepo/datastores.go | 9 +- .../ipfs/go-ipfs/repo/fsrepo/fsrepo.go | 18 +- .../ipfs/go-ipfs/repo/fsrepo/fsrepo_test.go | 118 - .../repo/fsrepo/migrations/mfsr_test.go | 43 - .../ipfs/go-ipfs/repo/fsrepo/misc.go | 4 +- vendor/github.com/ipfs/go-ipfs/repo/mock.go | 4 +- vendor/github.com/ipfs/go-ipfs/repo/repo.go | 8 +- vendor/github.com/ipfs/go-ipfs/tar/format.go | 225 - .../github.com/ipfs/go-ipfs/test/.gitignore | 1 - .../ipfs/go-ipfs/test/3nodetest/Makefile | 38 - .../ipfs/go-ipfs/test/3nodetest/README.md | 15 - .../go-ipfs/test/3nodetest/bin/.gitignore | 1 - .../ipfs/go-ipfs/test/3nodetest/bin/clean.sh | 1 - .../go-ipfs/test/3nodetest/bin/save_logs.sh | 8 - .../test/3nodetest/bin/save_profiling_data.sh | 18 - .../test/3nodetest/bootstrap/Dockerfile | 11 - .../test/3nodetest/bootstrap/README.md | 3 - .../go-ipfs/test/3nodetest/bootstrap/config | 29 - .../go-ipfs/test/3nodetest/build/.gitignore | 3 - .../go-ipfs/test/3nodetest/build/.gitkeep | 0 .../go-ipfs/test/3nodetest/client/Dockerfile | 14 - .../ipfs/go-ipfs/test/3nodetest/client/config | 29 - .../ipfs/go-ipfs/test/3nodetest/client/run.sh | 54 - .../go-ipfs/test/3nodetest/data/.gitignore | 1 - .../go-ipfs/test/3nodetest/data/Dockerfile | 6 - .../ipfs/go-ipfs/test/3nodetest/fig.yml | 38 - .../go-ipfs/test/3nodetest/run-test-on-img.sh | 37 - .../go-ipfs/test/3nodetest/server/Dockerfile | 15 - .../go-ipfs/test/3nodetest/server/README.md | 4 - .../ipfs/go-ipfs/test/3nodetest/server/config | 29 - .../ipfs/go-ipfs/test/3nodetest/server/run.sh | 28 - vendor/github.com/ipfs/go-ipfs/test/README.md | 29 - vendor/github.com/ipfs/go-ipfs/test/Rules.mk | 12 - .../ipfs/go-ipfs/test/api-startup/main.go | 34 - .../test/bench/bench_cli_ipfs_add/main.go | 117 - .../go-ipfs/test/bench/offline_add/main.go | 80 - .../ipfs/go-ipfs/test/bin/.gitignore | 11 - .../github.com/ipfs/go-ipfs/test/bin/Rules.mk | 64 - .../ipfs/go-ipfs/test/bin/checkflags | 25 - .../ipfs/go-ipfs/test/bin/continueyn | 13 - .../ipfs/go-ipfs/test/bin/verify-go-fmt.sh | 19 - .../ipfs/go-ipfs/test/dependencies/Makefile | 16 - .../test/dependencies/go-sleep/.gitignore | 1 - .../test/dependencies/go-sleep/README.md | 32 - .../test/dependencies/go-sleep/go-sleep.go | 27 - .../test/dependencies/go-timeout/.gitignore | 1 - .../test/dependencies/go-timeout/main.go | 56 - .../go-ipfs/test/dependencies/iptb/iptb.go | 34 - .../test/dependencies/json-to-junit/main.go | 135 - .../test/dependencies/ma-pipe-unidir/main.go | 95 - .../ipfs/go-ipfs/test/integration/Makefile | 33 - .../go-ipfs/test/integration/addcat_test.go | 172 - .../test/integration/bench_cat_test.go | 111 - .../go-ipfs/test/integration/bench_test.go | 84 - .../integration/bitswap_wo_routing_test.go | 99 - .../test/integration/three_legged_cat_test.go | 144 - .../ipfs/go-ipfs/test/ipfs-test-lib.sh | 121 - .../ipfs/go-ipfs/test/sharness/.gitignore | 4 - .../ipfs/go-ipfs/test/sharness/Makefile | 10 - .../ipfs/go-ipfs/test/sharness/README.md | 131 - .../ipfs/go-ipfs/test/sharness/Rules.mk | 77 - .../0001-Generate-partial-JUnit-reports.patch | 250 - .../test/sharness/lib/gen-junit-report.sh | 8 - .../test/sharness/lib/install-sharness.sh | 60 - .../go-ipfs/test/sharness/lib/iptb-lib.sh | 64 - .../sharness/lib/test-aggregate-results.sh | 17 - .../test/sharness/lib/test-lib-hashes.sh | 5 - .../go-ipfs/test/sharness/lib/test-lib.sh | 439 - .../test/sharness/t0010-basic-commands.sh | 137 - .../test/sharness/t0015-basic-sh-functions.sh | 47 - .../go-ipfs/test/sharness/t0018-indent.sh | 13 - .../ipfs/go-ipfs/test/sharness/t0020-init.sh | 196 - .../go-ipfs/test/sharness/t0021-config.sh | 295 - .../test/sharness/t0022-init-default.sh | 51 - .../go-ipfs/test/sharness/t0023-shutdown.sh | 40 - .../test/sharness/t0024-datastore-config.sh | 31 - .../sharness/t0024-files/spec-newshardfun | 26 - .../test/sharness/t0024-files/spec-nosync | 26 - .../go-ipfs/test/sharness/t0025-datastores.sh | 16 - .../ipfs/go-ipfs/test/sharness/t0030-mount.sh | 73 - .../test/sharness/t0031-mount-publish.sh | 62 - .../test/sharness/t0040-add-and-cat.sh | 831 - .../ipfs/go-ipfs/test/sharness/t0041-ping.sh | 49 - .../go-ipfs/test/sharness/t0042-add-skip.sh | 73 - .../ipfs/go-ipfs/test/sharness/t0043-add-w.sh | 173 - .../test/sharness/t0044-add-symlink.sh | 80 - .../ipfs/go-ipfs/test/sharness/t0045-ls.sh | 334 - .../go-ipfs/test/sharness/t0046-id-hash.sh | 109 - .../ipfs/go-ipfs/test/sharness/t0050-block.sh | 238 - .../sharness/t0051-object-data/UTF-8-test.txt | Bin 20350 -> 0 bytes .../sharness/t0051-object-data/brokenPut.json | 5 - .../sharness/t0051-object-data/brokenPut.xml | 1 - .../t0051-object-data/expected_getOut | 1 - .../sharness/t0051-object-data/mixed.json | 5 - .../sharness/t0051-object-data/testPut.json | 3 - .../sharness/t0051-object-data/testPut.pb | 2 - .../sharness/t0051-object-data/testPut.xml | 1 - .../go-ipfs/test/sharness/t0051-object.sh | 433 - .../test/sharness/t0052-object-diff.sh | 168 - .../sharness/t0053-dag-data/non-canon.cbor | Bin 53 -> 0 bytes .../ipfs/go-ipfs/test/sharness/t0053-dag.sh | 281 - .../go-ipfs/test/sharness/t0060-daemon.sh | 149 - .../go-ipfs/test/sharness/t0060-data/mss-ls | 2 - .../test/sharness/t0061-daemon-opts.sh | 61 - .../go-ipfs/test/sharness/t0062-daemon-api.sh | 90 - .../test/sharness/t0063-daemon-init.sh | 52 - .../go-ipfs/test/sharness/t0063-external.sh | 49 - .../test/sharness/t0065-active-requests.sh | 53 - .../go-ipfs/test/sharness/t0066-migration.sh | 52 - .../test/sharness/t0070-user-config.sh | 21 - .../ipfs/go-ipfs/test/sharness/t0080-repo.sh | 293 - .../test/sharness/t0081-repo-pinning.sh | 286 - .../test/sharness/t0082-repo-gc-auto.sh | 74 - .../go-ipfs/test/sharness/t0083-repo-fsck.sh | 190 - .../test/sharness/t0084-repo-read-rehash.sh | 55 - .../ipfs/go-ipfs/test/sharness/t0085-pins.sh | 193 - .../test/sharness/t0086-repo-verify.sh | 60 - .../test/sharness/t0087-repo-robust-gc.sh | 168 - .../test/sharness/t0088-repo-stat-symlink.sh | 25 - .../ipfs/go-ipfs/test/sharness/t0090-get.sh | 192 - .../ipfs/go-ipfs/test/sharness/t0095-refs.sh | 185 - .../ipfs/go-ipfs/test/sharness/t0100-name.sh | 216 - .../go-ipfs/test/sharness/t0101-iptb-name.sh | 46 - .../sharness/t0110-gateway-data/foo.block | 2 - .../sharness/t0110-gateway-data/foofoo.block | Bin 82 -> 0 bytes .../go-ipfs/test/sharness/t0110-gateway.sh | 260 - .../test/sharness/t0111-gateway-writeable.sh | 110 - .../test/sharness/t0112-gateway-cors.sh | 104 - .../go-ipfs/test/sharness/t0120-bootstrap.sh | 180 - .../test/sharness/t0121-bootstrap-iptb.sh | 87 - .../go-ipfs/test/sharness/t0125-twonode.sh | 119 - .../go-ipfs/test/sharness/t0130-multinode.sh | 112 - .../t0131-multinode-client-routing.sh | 73 - .../ipfs/go-ipfs/test/sharness/t0140-swarm.sh | 130 - .../go-ipfs/test/sharness/t0141-addfilter.sh | 120 - .../go-ipfs/test/sharness/t0150-clisuggest.sh | 43 - .../go-ipfs/test/sharness/t0151-sysdiag.sh | 48 - .../go-ipfs/test/sharness/t0160-resolve.sh | 156 - .../go-ipfs/test/sharness/t0165-keystore.sh | 81 - .../ipfs/go-ipfs/test/sharness/t0170-dht.sh | 108 - .../go-ipfs/test/sharness/t0175-reprovider.sh | 153 - .../ipfs/go-ipfs/test/sharness/t0180-p2p.sh | 381 - .../test/sharness/t0180-pubsub-gossipsub.sh | 100 - .../go-ipfs/test/sharness/t0180-pubsub.sh | 154 - .../test/sharness/t0181-private-network.sh | 135 - .../test/sharness/t0182-circuit-relay.sh | 88 - .../test/sharness/t0183-namesys-pubsub.sh | 82 - .../sharness/t0184-http-proxy-over-p2p.sh | 213 - .../go-ipfs/test/sharness/t0190-quic-ping.sh | 52 - .../go-ipfs/test/sharness/t0200-unixfs-ls.sh | 140 - .../ipfs/go-ipfs/test/sharness/t0210-tar.sh | 58 - .../go-ipfs/test/sharness/t0220-bitswap.sh | 82 - ...230-channel-streaming-http-content-type.sh | 71 - .../test/sharness/t0231-channel-streaming.sh | 38 - .../test/sharness/t0235-cli-request.sh | 64 - .../sharness/t0236-cli-api-dns-resolve.sh | 56 - .../test/sharness/t0240-republisher.sh | 120 - .../go-ipfs/test/sharness/t0250-files-api.sh | 777 - .../test/sharness/t0251-files-flushing.sh | 53 - .../go-ipfs/test/sharness/t0252-files-gc.sh | 76 - .../go-ipfs/test/sharness/t0260-sharding.sh | 120 - .../go-ipfs/test/sharness/t0270-filestore.sh | 99 - .../test/sharness/t0271-filestore-utils.sh | 268 - .../go-ipfs/test/sharness/t0272-urlstore.sh | 184 - .../AFKSEBCGPUJZE.data | 1 - ...E4MNCQITBRFYUPYQLDXYARR3DQW37MOT7K5XI.data | 3 - .../test/sharness/t0275-cid-security.sh | 86 - .../go-ipfs/test/sharness/t0276-cidv0v1.sh | 130 - .../sharness/t0280-plugin-git-data/git.tar.gz | Bin 4260 -> 0 bytes .../go-ipfs/test/sharness/t0280-plugin-git.sh | 52 - .../ipfs/go-ipfs/test/sharness/t0290-cid.sh | 230 - .../test/sharness/t0300-docker-image.sh | 85 - .../test/sharness/t0301-docker-migrate.sh | 76 - .../test/sharness/t0400-api-security.sh | 32 - .../go-ipfs/test/sharness/t0410-api-add.sh | 21 - .../t0500-issues-and-regressions-offline.sh | 42 - .../t0600-issues-and-regressions-online.sh | 87 - .../test/sharness/x0601-pin-fail-test.sh | 37 - .../test/sharness_test_coverage_helper.sh | 182 - .../ipfs/go-ipfs/test/unit/.gitignore | 2 - .../ipfs/go-ipfs/test/unit/Rules.mk | 8 - .../ipfs/go-ipfs/thirdparty/README.md | 5 - .../ipfs/go-ipfs/thirdparty/assert/assert.go | 25 - .../go-ipfs/thirdparty/cidv0v1/blockstore.go | 8 +- .../go-ipfs/thirdparty/notifier/notifier.go | 146 - .../thirdparty/notifier/notifier_test.go | 291 - .../go-ipfs/thirdparty/pollEndpoint/main.go | 88 - .../ipfs/go-ipfs/thirdparty/unit/unit.go | 46 - .../ipfs/go-ipfs/thirdparty/unit/unit_test.go | 26 - .../go-ipfs/thirdparty/verifbs/verifbs.go | 8 +- vendor/github.com/ipfs/go-ipfs/version.go | 2 +- .../github.com/ipfs/go-ipld-cbor/.travis.yml | 32 + vendor/github.com/ipfs/go-ipld-cbor/LICENSE | 21 + vendor/github.com/ipfs/go-ipld-cbor/Makefile | 15 + vendor/github.com/ipfs/go-ipld-cbor/README.md | 54 + .../github.com/ipfs/go-ipld-cbor/codecov.yml | 3 + .../ipfs/go-ipld-cbor/encoding/cloner.go | 33 + .../ipfs/go-ipld-cbor/encoding/marshaller.go | 82 + .../go-ipld-cbor/encoding/unmarshaller.go | 79 + vendor/github.com/ipfs/go-ipld-cbor/go.mod | 12 + vendor/github.com/ipfs/go-ipld-cbor/go.sum | 40 + vendor/github.com/ipfs/go-ipld-cbor/node.go | 541 + .../github.com/ipfs/go-ipld-cbor/package.json | 54 + .../github.com/ipfs/go-ipld-cbor/readable.go | 33 + vendor/github.com/ipfs/go-ipld-cbor/refmt.go | 72 + .../ipfs/go-ipld-format/.travis.yml | 32 + vendor/github.com/ipfs/go-ipld-format/LICENSE | 21 + .../github.com/ipfs/go-ipld-format/Makefile | 15 + .../github.com/ipfs/go-ipld-format/README.md | 35 + .../github.com/ipfs/go-ipld-format/batch.go | 295 + .../ipfs/go-ipld-format/codecov.yml | 3 + .../github.com/ipfs/go-ipld-format/coding.go | 62 + .../ipfs/go-ipld-format/daghelpers.go | 118 + .../github.com/ipfs/go-ipld-format/format.go | 90 + vendor/github.com/ipfs/go-ipld-format/go.mod | 7 + vendor/github.com/ipfs/go-ipld-format/go.sum | 26 + .../ipfs/go-ipld-format/merkledag.go | 67 + .../github.com/ipfs/go-ipld-format/navipld.go | 149 + .../ipfs/go-ipld-format/package.json | 36 + .../github.com/ipfs/go-ipld-format/promise.go | 66 + .../github.com/ipfs/go-ipld-format/walker.go | 437 + vendor/github.com/ipfs/go-ipns/.travis.yml | 32 + vendor/github.com/ipfs/go-ipns/LICENSE | 21 + vendor/github.com/ipfs/go-ipns/Makefile | 9 + vendor/github.com/ipfs/go-ipns/README.md | 61 + vendor/github.com/ipfs/go-ipns/codecov.yml | 3 + vendor/github.com/ipfs/go-ipns/errors.go | 37 + vendor/github.com/ipfs/go-ipns/go.mod | 11 + vendor/github.com/ipfs/go-ipns/go.sum | 114 + vendor/github.com/ipfs/go-ipns/ipns.go | 168 + vendor/github.com/ipfs/go-ipns/package.json | 58 + vendor/github.com/ipfs/go-ipns/pb/Makefile | 11 + vendor/github.com/ipfs/go-ipns/pb/ipns.pb.go | 678 + vendor/github.com/ipfs/go-ipns/pb/ipns.proto | 25 + vendor/github.com/ipfs/go-ipns/record.go | 126 + vendor/github.com/ipfs/go-log/.travis.yml | 32 + vendor/github.com/ipfs/go-log/LICENSE | 21 + vendor/github.com/ipfs/go-log/README.md | 79 + vendor/github.com/ipfs/go-log/context.go | 38 + vendor/github.com/ipfs/go-log/entry.go | 7 + vendor/github.com/ipfs/go-log/go.mod | 10 + vendor/github.com/ipfs/go-log/go.sum | 24 + vendor/github.com/ipfs/go-log/log.go | 404 + vendor/github.com/ipfs/go-log/loggable.go | 42 + vendor/github.com/ipfs/go-log/metadata.go | 77 + vendor/github.com/ipfs/go-log/oldlog.go | 177 + vendor/github.com/ipfs/go-log/package.json | 41 + vendor/github.com/ipfs/go-log/tracer/LICENSE | 21 + .../github.com/ipfs/go-log/tracer/context.go | 42 + vendor/github.com/ipfs/go-log/tracer/debug.go | 78 + vendor/github.com/ipfs/go-log/tracer/event.go | 62 + .../ipfs/go-log/tracer/propagation.go | 61 + .../ipfs/go-log/tracer/propagation_ot.go | 180 + vendor/github.com/ipfs/go-log/tracer/raw.go | 34 + .../github.com/ipfs/go-log/tracer/recorder.go | 103 + vendor/github.com/ipfs/go-log/tracer/span.go | 274 + .../github.com/ipfs/go-log/tracer/tracer.go | 280 + vendor/github.com/ipfs/go-log/tracer/util.go | 25 + .../ipfs/go-log/tracer/wire/Makefile | 6 + .../ipfs/go-log/tracer/wire/carrier.go | 40 + .../github.com/ipfs/go-log/tracer/wire/gen.go | 6 + .../ipfs/go-log/tracer/wire/wire.pb.go | 554 + .../ipfs/go-log/tracer/wire/wire.proto | 10 + .../github.com/ipfs/go-log/writer/option.go | 55 + .../go-log/writer/polite_json_formatter.go | 29 + .../github.com/ipfs/go-log/writer/writer.go | 258 + .../github.com/ipfs/go-merkledag/.travis.yml | 32 + vendor/github.com/ipfs/go-merkledag/LICENSE | 21 + vendor/github.com/ipfs/go-merkledag/README.md | 36 + vendor/github.com/ipfs/go-merkledag/coding.go | 139 + .../ipfs/go-merkledag/errservice.go | 47 + vendor/github.com/ipfs/go-merkledag/go.mod | 15 + vendor/github.com/ipfs/go-merkledag/go.sum | 295 + .../github.com/ipfs/go-merkledag/merkledag.go | 478 + vendor/github.com/ipfs/go-merkledag/node.go | 384 + .../github.com/ipfs/go-merkledag/package.json | 66 + .../github.com/ipfs/go-merkledag/pb/Rules.mk | 8 + .../ipfs/go-merkledag/pb/merkledag.pb.go | 1072 + .../ipfs/go-merkledag/pb/merkledag.proto | 39 + .../ipfs/go-merkledag/pb/upgrade_check.go | 5 + vendor/github.com/ipfs/go-merkledag/raw.go | 103 + .../github.com/ipfs/go-merkledag/readonly.go | 20 + .../github.com/ipfs/go-merkledag/rwservice.go | 47 + .../github.com/ipfs/go-merkledag/session.go | 21 + .../ipfs/go-metrics-interface/.gitignore | 24 + .../ipfs/go-metrics-interface/.travis.yml | 32 + .../ipfs/go-metrics-interface/LICENSE | 21 + .../ipfs/go-metrics-interface/context.go | 26 + .../ipfs/go-metrics-interface/ctor.go | 43 + .../ipfs/go-metrics-interface/go.mod | 1 + .../ipfs/go-metrics-interface/interface.go | 45 + .../ipfs/go-metrics-interface/noop.go | 46 + .../ipfs/go-metrics-interface/package.json | 16 + vendor/github.com/ipfs/go-mfs/.travis.yml | 32 + vendor/github.com/ipfs/go-mfs/CODEOWNERS | 8 + vendor/github.com/ipfs/go-mfs/LICENSE | 21 + vendor/github.com/ipfs/go-mfs/Makefile | 18 + vendor/github.com/ipfs/go-mfs/README.md | 64 + vendor/github.com/ipfs/go-mfs/dir.go | 450 + vendor/github.com/ipfs/go-mfs/fd.go | 197 + vendor/github.com/ipfs/go-mfs/file.go | 179 + vendor/github.com/ipfs/go-mfs/go.mod | 17 + vendor/github.com/ipfs/go-mfs/go.sum | 313 + vendor/github.com/ipfs/go-mfs/inode.go | 21 + vendor/github.com/ipfs/go-mfs/ops.go | 242 + vendor/github.com/ipfs/go-mfs/options.go | 7 + vendor/github.com/ipfs/go-mfs/package.json | 48 + vendor/github.com/ipfs/go-mfs/repub.go | 197 + vendor/github.com/ipfs/go-mfs/root.go | 218 + vendor/github.com/ipfs/go-path/.travis.yml | 32 + vendor/github.com/ipfs/go-path/LICENSE | 21 + vendor/github.com/ipfs/go-path/Makefile | 11 + vendor/github.com/ipfs/go-path/README.md | 32 + vendor/github.com/ipfs/go-path/go.mod | 8 + vendor/github.com/ipfs/go-path/go.sum | 293 + vendor/github.com/ipfs/go-path/package.json | 41 + vendor/github.com/ipfs/go-path/path.go | 192 + .../ipfs/go-path/resolver/resolver.go | 209 + .../ipfs/go-todocounter/.travis.yml | 32 + vendor/github.com/ipfs/go-todocounter/LICENSE | 21 + .../github.com/ipfs/go-todocounter/Makefile | 10 + .../github.com/ipfs/go-todocounter/README.md | 26 + .../github.com/ipfs/go-todocounter/counter.go | 118 + vendor/github.com/ipfs/go-todocounter/go.mod | 1 + .../ipfs/go-todocounter/package.json | 14 + vendor/github.com/ipfs/go-unixfs/.travis.yml | 32 + vendor/github.com/ipfs/go-unixfs/CODEOWNERS | 8 + vendor/github.com/ipfs/go-unixfs/LICENSE | 21 + vendor/github.com/ipfs/go-unixfs/Makefile | 11 + vendor/github.com/ipfs/go-unixfs/README.md | 63 + vendor/github.com/ipfs/go-unixfs/go.mod | 15 + vendor/github.com/ipfs/go-unixfs/go.sum | 314 + vendor/github.com/ipfs/go-unixfs/hamt/hamt.go | 677 + vendor/github.com/ipfs/go-unixfs/hamt/util.go | 68 + .../go-unixfs/importer/helpers/dagbuilder.go | 409 + .../go-unixfs/importer/helpers/helpers.go | 30 + .../go-unixfs/importer/trickle/trickledag.go | 389 + .../github.com/ipfs/go-unixfs/io/dagreader.go | 491 + .../github.com/ipfs/go-unixfs/io/directory.go | 288 + vendor/github.com/ipfs/go-unixfs/io/doc.go | 3 + .../github.com/ipfs/go-unixfs/io/resolve.go | 41 + .../ipfs/go-unixfs/mod/dagmodifier.go | 605 + vendor/github.com/ipfs/go-unixfs/package.json | 84 + vendor/github.com/ipfs/go-unixfs/pb/Makefile | 11 + .../github.com/ipfs/go-unixfs/pb/unixfs.pb.go | 217 + .../github.com/ipfs/go-unixfs/pb/unixfs.proto | 26 + vendor/github.com/ipfs/go-unixfs/unixfs.go | 408 + .../github.com/ipfs/go-verifcid/.travis.yml | 32 + vendor/github.com/ipfs/go-verifcid/go.mod | 6 + vendor/github.com/ipfs/go-verifcid/go.sum | 22 + .../github.com/ipfs/go-verifcid/package.json | 28 + .../github.com/ipfs/go-verifcid/validate.go | 62 + .../ipfs/interface-go-ipfs-core/.travis.yml | 32 + .../ipfs/interface-go-ipfs-core/LICENSE | 21 + .../ipfs/interface-go-ipfs-core/Makefile | 16 + .../ipfs/interface-go-ipfs-core/block.go | 37 + .../ipfs/interface-go-ipfs-core/coreapi.go | 56 + .../ipfs/interface-go-ipfs-core/dag.go | 13 + .../ipfs/interface-go-ipfs-core/dht.go | 27 + .../ipfs/interface-go-ipfs-core/errors.go | 10 + .../ipfs/interface-go-ipfs-core/go.mod | 17 + .../ipfs/interface-go-ipfs-core/go.sum | 312 + .../ipfs/interface-go-ipfs-core/key.go | 42 + .../ipfs/interface-go-ipfs-core/name.go | 47 + .../ipfs/interface-go-ipfs-core/object.go | 107 + .../interface-go-ipfs-core/options/block.go | 126 + .../interface-go-ipfs-core/options/dht.go | 62 + .../interface-go-ipfs-core/options/global.go | 47 + .../interface-go-ipfs-core/options/key.go | 87 + .../interface-go-ipfs-core/options/name.go | 122 + .../options/namesys/opts.go | 74 + .../interface-go-ipfs-core/options/object.go | 124 + .../interface-go-ipfs-core/options/pin.go | 163 + .../interface-go-ipfs-core/options/pubsub.go | 58 + .../interface-go-ipfs-core/options/unixfs.go | 285 + .../ipfs/interface-go-ipfs-core/package.json | 96 + .../ipfs/interface-go-ipfs-core/path/path.go | 199 + .../ipfs/interface-go-ipfs-core/pin.go | 55 + .../ipfs/interface-go-ipfs-core/pubsub.go | 48 + .../ipfs/interface-go-ipfs-core/swarm.go | 57 + .../ipfs/interface-go-ipfs-core/unixfs.go | 79 + .../ipfs/interface-go-ipfs-core/util.go | 20 + vendor/github.com/jackpal/gateway/.travis.yml | 13 + vendor/github.com/jackpal/gateway/LICENSE | 27 + vendor/github.com/jackpal/gateway/README.md | 18 + .../jackpal/gateway/gateway_common.go | 146 + .../jackpal/gateway/gateway_darwin.go | 16 + .../jackpal/gateway/gateway_freebsd.go | 16 + .../jackpal/gateway/gateway_linux.go | 47 + .../jackpal/gateway/gateway_solaris.go | 16 + .../jackpal/gateway/gateway_unimplemented.go | 14 + .../jackpal/gateway/gateway_windows.go | 18 + vendor/github.com/jbenet/go-context/LICENSE | 21 + .../github.com/jbenet/go-context/io/ctxio.go | 120 + .../jbenet/go-is-domain/.travis.yml | 18 + vendor/github.com/jbenet/go-is-domain/LICENSE | 21 + .../github.com/jbenet/go-is-domain/README.md | 29 + vendor/github.com/jbenet/go-is-domain/doc.go | 13 + .../jbenet/go-is-domain/domainre.go | 12 + vendor/github.com/jbenet/go-is-domain/go.mod | 3 + .../jbenet/go-is-domain/is_domain.go | 54 + .../jbenet/go-is-domain/package.json | 16 + .../jbenet/go-is-domain/regenerate-tlds.sh | 24 + .../jbenet/go-is-domain/tlds_custom.go | 8 + .../jbenet/go-is-domain/tlds_iana.go | 1537 ++ .../jbenet/go-temp-err-catcher/.travis.yml | 9 + .../jbenet/go-temp-err-catcher/LICENSE | 21 + .../jbenet/go-temp-err-catcher/README.md | 78 + .../jbenet/go-temp-err-catcher/doc.go | 62 + .../go-temp-err-catcher/temp_err_catcher.go | 124 + .../github.com/jbenet/goprocess/.travis.yml | 9 + vendor/github.com/jbenet/goprocess/LICENSE | 21 + vendor/github.com/jbenet/goprocess/README.md | 132 + .../jbenet/goprocess/context/context.go | 111 + .../jbenet/goprocess/context/derive.go | 59 + .../github.com/jbenet/goprocess/goprocess.go | 283 + .../github.com/jbenet/goprocess/impl-mutex.go | 271 + vendor/github.com/jbenet/goprocess/link.go | 121 + .../github.com/jbenet/goprocess/package.json | 14 + .../jbenet/goprocess/periodic/README.md | 4 + .../jbenet/goprocess/periodic/periodic.go | 232 + .../jbenet/goprocess/ratelimit/README.md | 4 + .../jbenet/goprocess/ratelimit/ratelimit.go | 68 + vendor/github.com/karalabe/hid/hid_test.go | 28 - .../github.com/karalabe/hid/hidapi/README.txt | 339 - .../karalabe/hid/hidapi/hidapi/hidapi.h | 391 - .../karalabe/hid/hidapi/libusb/hid.c | 1512 -- .../github.com/karalabe/hid/hidapi/mac/hid.c | 1110 - .../karalabe/hid/hidapi/windows/hid.c | 944 - .../karalabe/hid/libusb/libusb/config.h | 3 - .../karalabe/hid/libusb/libusb/core.c | 2523 -- .../karalabe/hid/libusb/libusb/descriptor.c | 1191 - .../karalabe/hid/libusb/libusb/hotplug.c | 350 - .../karalabe/hid/libusb/libusb/hotplug.h | 90 - .../karalabe/hid/libusb/libusb/io.c | 2819 --- .../karalabe/hid/libusb/libusb/libusb.h | 2008 -- .../karalabe/hid/libusb/libusb/libusbi.h | 1149 - .../hid/libusb/libusb/os/darwin_usb.c | 2094 -- .../hid/libusb/libusb/os/darwin_usb.h | 164 - .../hid/libusb/libusb/os/haiku_pollfs.cpp | 367 - .../karalabe/hid/libusb/libusb/os/haiku_usb.h | 112 - .../libusb/libusb/os/haiku_usb_backend.cpp | 517 - .../hid/libusb/libusb/os/haiku_usb_raw.cpp | 250 - .../hid/libusb/libusb/os/haiku_usb_raw.h | 180 - .../hid/libusb/libusb/os/linux_netlink.c | 400 - .../hid/libusb/libusb/os/linux_udev.c | 311 - .../hid/libusb/libusb/os/linux_usbfs.c | 2738 --- .../hid/libusb/libusb/os/linux_usbfs.h | 193 - .../hid/libusb/libusb/os/netbsd_usb.c | 677 - .../hid/libusb/libusb/os/openbsd_usb.c | 771 - .../hid/libusb/libusb/os/poll_posix.c | 53 - .../hid/libusb/libusb/os/poll_posix.h | 11 - .../hid/libusb/libusb/os/poll_windows.c | 728 - .../hid/libusb/libusb/os/poll_windows.h | 131 - .../karalabe/hid/libusb/libusb/os/sunos_usb.c | 1292 - .../karalabe/hid/libusb/libusb/os/sunos_usb.h | 74 - .../hid/libusb/libusb/os/threads_posix.c | 79 - .../hid/libusb/libusb/os/threads_posix.h | 55 - .../hid/libusb/libusb/os/threads_windows.c | 259 - .../hid/libusb/libusb/os/threads_windows.h | 76 - .../karalabe/hid/libusb/libusb/os/wince_usb.c | 899 - .../karalabe/hid/libusb/libusb/os/wince_usb.h | 126 - .../hid/libusb/libusb/os/windows_common.h | 124 - .../hid/libusb/libusb/os/windows_nt_common.c | 591 - .../hid/libusb/libusb/os/windows_nt_common.h | 63 - .../hid/libusb/libusb/os/windows_usbdk.c | 905 - .../hid/libusb/libusb/os/windows_usbdk.h | 146 - .../hid/libusb/libusb/os/windows_winusb.c | 4290 ---- .../hid/libusb/libusb/os/windows_winusb.h | 937 - .../karalabe/hid/libusb/libusb/strerror.c | 202 - .../karalabe/hid/libusb/libusb/sync.c | 327 - .../karalabe/hid/libusb/libusb/version.h | 18 - .../karalabe/hid/libusb/libusb/version_nano.h | 1 - vendor/github.com/karalabe/hid/wchar_test.go | 66 - vendor/github.com/koron/go-ssdp/.gitignore | 3 + vendor/github.com/koron/go-ssdp/LICENSE | 21 + vendor/github.com/koron/go-ssdp/Makefile | 57 + vendor/github.com/koron/go-ssdp/README.md | 3 + vendor/github.com/koron/go-ssdp/advertise.go | 181 + vendor/github.com/koron/go-ssdp/announce.go | 76 + vendor/github.com/koron/go-ssdp/interface.go | 39 + vendor/github.com/koron/go-ssdp/log.go | 12 + vendor/github.com/koron/go-ssdp/monitor.go | 173 + vendor/github.com/koron/go-ssdp/search.go | 139 + vendor/github.com/koron/go-ssdp/udp.go | 96 + .../libp2p/go-addr-util/.travis.yml | 32 + vendor/github.com/libp2p/go-addr-util/LICENSE | 21 + .../github.com/libp2p/go-addr-util/Makefile | 11 + .../github.com/libp2p/go-addr-util/README.md | 34 + vendor/github.com/libp2p/go-addr-util/addr.go | 197 + .../libp2p/go-addr-util/codecov.yml | 3 + .../github.com/libp2p/go-addr-util/filter.go | 31 + vendor/github.com/libp2p/go-addr-util/go.mod | 8 + vendor/github.com/libp2p/go-addr-util/go.sum | 49 + .../libp2p/go-addr-util/package.json | 41 + .../libp2p/go-buffer-pool/.travis.yml | 32 + .../github.com/libp2p/go-buffer-pool/LICENSE | 21 + .../libp2p/go-buffer-pool/LICENSE-BSD | 29 + .../github.com/libp2p/go-buffer-pool/Makefile | 10 + .../libp2p/go-buffer-pool/README.md | 48 + .../libp2p/go-buffer-pool/buffer.go | 302 + .../libp2p/go-buffer-pool/codecov.yml | 3 + .../github.com/libp2p/go-buffer-pool/go.mod | 1 + .../libp2p/go-buffer-pool/package.json | 16 + .../github.com/libp2p/go-buffer-pool/pool.go | 115 + .../go-conn-security-multistream/.travis.yml | 32 + .../go-conn-security-multistream/LICENSE | 21 + .../go-conn-security-multistream/README.md | 62 + .../go-conn-security-multistream/go.mod | 7 + .../go-conn-security-multistream/go.sum | 110 + .../go-conn-security-multistream/package.json | 36 + .../go-conn-security-multistream/ssms.go | 87 + .../libp2p/go-conn-security/.travis.yml | 32 + .../libp2p/go-conn-security/LICENSE | 21 + .../libp2p/go-conn-security/README.md | 59 + .../github.com/libp2p/go-conn-security/go.mod | 7 + .../github.com/libp2p/go-conn-security/go.sum | 106 + .../go-conn-security/insecure/insecure.go | 86 + .../libp2p/go-conn-security/interface.go | 25 + .../libp2p/go-conn-security/package.json | 36 + .../libp2p/go-flow-metrics/.travis.yml | 32 + .../github.com/libp2p/go-flow-metrics/LICENSE | 21 + .../libp2p/go-flow-metrics/Makefile | 11 + .../libp2p/go-flow-metrics/README.md | 33 + .../github.com/libp2p/go-flow-metrics/go.mod | 1 + .../libp2p/go-flow-metrics/meter.go | 44 + .../libp2p/go-flow-metrics/package.json | 16 + .../libp2p/go-flow-metrics/registry.go | 35 + .../libp2p/go-flow-metrics/sweeper.go | 153 + .../libp2p/go-libp2p-autonat-svc/.gitignore | 12 + .../libp2p/go-libp2p-autonat-svc/.travis.yml | 32 + .../libp2p/go-libp2p-autonat-svc/LICENSE | 21 + .../libp2p/go-libp2p-autonat-svc/README.md | 25 + .../libp2p/go-libp2p-autonat-svc/go.mod | 14 + .../libp2p/go-libp2p-autonat-svc/go.sum | 247 + .../libp2p/go-libp2p-autonat-svc/package.json | 21 + .../libp2p/go-libp2p-autonat-svc/proto.go | 24 + .../libp2p/go-libp2p-autonat-svc/svc.go | 216 + .../libp2p/go-libp2p-autonat/.gitignore | 14 + .../libp2p/go-libp2p-autonat/.travis.yml | 32 + .../libp2p/go-libp2p-autonat/LICENSE | 21 + .../libp2p/go-libp2p-autonat/Makefile | 7 + .../libp2p/go-libp2p-autonat/README.md | 27 + .../libp2p/go-libp2p-autonat/autonat.go | 253 + .../libp2p/go-libp2p-autonat/client.go | 110 + .../libp2p/go-libp2p-autonat/go.mod | 13 + .../libp2p/go-libp2p-autonat/go.sum | 199 + .../libp2p/go-libp2p-autonat/notify.go | 41 + .../libp2p/go-libp2p-autonat/package.json | 68 + .../libp2p/go-libp2p-autonat/pb/Makefile | 6 + .../libp2p/go-libp2p-autonat/pb/autonat.pb.go | 1242 + .../libp2p/go-libp2p-autonat/pb/autonat.proto | 35 + .../libp2p/go-libp2p-autonat/proto.go | 26 + .../libp2p/go-libp2p-circuit/.travis.yml | 30 + .../libp2p/go-libp2p-circuit/LICENSE | 21 + .../libp2p/go-libp2p-circuit/README.md | 43 + .../libp2p/go-libp2p-circuit/codecov.yml | 3 + .../libp2p/go-libp2p-circuit/conn.go | 59 + .../libp2p/go-libp2p-circuit/dial.go | 89 + .../libp2p/go-libp2p-circuit/go.mod | 17 + .../libp2p/go-libp2p-circuit/go.sum | 203 + .../libp2p/go-libp2p-circuit/listen.go | 58 + .../libp2p/go-libp2p-circuit/notify.go | 54 + .../libp2p/go-libp2p-circuit/pb/Makefile | 11 + .../libp2p/go-libp2p-circuit/pb/relay.pb.go | 880 + .../libp2p/go-libp2p-circuit/pb/relay.proto | 44 + .../libp2p/go-libp2p-circuit/relay.go | 479 + .../libp2p/go-libp2p-circuit/transport.go | 80 + .../libp2p/go-libp2p-circuit/util.go | 105 + .../libp2p/go-libp2p-connmgr/.travis.yml | 32 + .../libp2p/go-libp2p-connmgr/LICENSE | 21 + .../libp2p/go-libp2p-connmgr/Makefile | 13 + .../libp2p/go-libp2p-connmgr/README.md | 41 + .../libp2p/go-libp2p-connmgr/codecov.yml | 3 + .../libp2p/go-libp2p-connmgr/connmgr.go | 362 + .../libp2p/go-libp2p-connmgr/go.mod | 10 + .../libp2p/go-libp2p-connmgr/go.sum | 120 + .../libp2p/go-libp2p-connmgr/package.json | 53 + .../libp2p/go-libp2p-crypto/.gitignore | 7 + .../libp2p/go-libp2p-crypto/.travis.yml | 32 + .../libp2p/go-libp2p-crypto/LICENSE | 21 + .../libp2p/go-libp2p-crypto/Makefile | 14 + .../libp2p/go-libp2p-crypto/README.md | 40 + .../libp2p/go-libp2p-crypto/codecov.yml | 3 + .../libp2p/go-libp2p-crypto/ecdsa.go | 186 + .../libp2p/go-libp2p-crypto/ed25519.go | 155 + .../github.com/libp2p/go-libp2p-crypto/go.mod | 8 + .../github.com/libp2p/go-libp2p-crypto/go.sum | 39 + .../github.com/libp2p/go-libp2p-crypto/key.go | 352 + .../libp2p/go-libp2p-crypto/package.json | 42 + .../libp2p/go-libp2p-crypto/pb/Makefile | 11 + .../libp2p/go-libp2p-crypto/pb/crypto.pb.go | 643 + .../libp2p/go-libp2p-crypto/pb/crypto.proto | 20 + .../github.com/libp2p/go-libp2p-crypto/rsa.go | 152 + .../libp2p/go-libp2p-crypto/secp256k1.go | 125 + .../libp2p/go-libp2p-discovery/.gitignore | 12 + .../libp2p/go-libp2p-discovery/.travis.yml | 30 + .../libp2p/go-libp2p-discovery/LICENSE | 21 + .../libp2p/go-libp2p-discovery/README.md | 32 + .../libp2p/go-libp2p-discovery/go.mod | 13 + .../libp2p/go-libp2p-discovery/go.sum | 206 + .../libp2p/go-libp2p-discovery/interface.go | 26 + .../libp2p/go-libp2p-discovery/options.go | 42 + .../libp2p/go-libp2p-discovery/routing.go | 72 + .../libp2p/go-libp2p-discovery/util.go | 56 + .../libp2p/go-libp2p-host/.travis.yml | 32 + .../github.com/libp2p/go-libp2p-host/LICENSE | 21 + .../github.com/libp2p/go-libp2p-host/Makefile | 13 + .../libp2p/go-libp2p-host/README.md | 33 + .../libp2p/go-libp2p-host/codecov.yml | 3 + .../github.com/libp2p/go-libp2p-host/go.mod | 12 + .../github.com/libp2p/go-libp2p-host/go.sum | 118 + .../libp2p/go-libp2p-host/helpers.go | 11 + .../github.com/libp2p/go-libp2p-host/host.go | 68 + .../github.com/libp2p/go-libp2p-host/match.go | 41 + .../libp2p/go-libp2p-host/package.json | 66 + .../go-libp2p-interface-connmgr/.travis.yml | 32 + .../go-libp2p-interface-connmgr/LICENSE | 21 + .../go-libp2p-interface-connmgr/Makefile | 13 + .../go-libp2p-interface-connmgr/README.md | 35 + .../go-libp2p-interface-connmgr/codecov.yml | 3 + .../libp2p/go-libp2p-interface-connmgr/go.mod | 7 + .../libp2p/go-libp2p-interface-connmgr/go.sum | 106 + .../go-libp2p-interface-connmgr/interface.go | 60 + .../go-libp2p-interface-connmgr/null.go | 30 + .../go-libp2p-interface-connmgr/package.json | 36 + .../go-libp2p-interface-pnet/.travis.yml | 32 + .../libp2p/go-libp2p-interface-pnet/LICENSE | 22 + .../libp2p/go-libp2p-interface-pnet/Makefile | 11 + .../libp2p/go-libp2p-interface-pnet/README.md | 37 + .../go-libp2p-interface-pnet/codecov.yml | 3 + .../libp2p/go-libp2p-interface-pnet/error.go | 29 + .../libp2p/go-libp2p-interface-pnet/go.mod | 1 + .../go-libp2p-interface-pnet/interface.go | 38 + .../go-libp2p-interface-pnet/package.json | 18 + .../libp2p/go-libp2p-kad-dht/.travis.yml | 31 + .../libp2p/go-libp2p-kad-dht/LICENSE | 21 + .../libp2p/go-libp2p-kad-dht/README.md | 43 + .../libp2p/go-libp2p-kad-dht/codecov.yml | 3 + .../libp2p/go-libp2p-kad-dht/dht.go | 438 + .../libp2p/go-libp2p-kad-dht/dht_bootstrap.go | 184 + .../libp2p/go-libp2p-kad-dht/dht_net.go | 403 + .../libp2p/go-libp2p-kad-dht/dial_queue.go | 354 + .../libp2p/go-libp2p-kad-dht/doc.go | 3 + .../libp2p/go-libp2p-kad-dht/go.mod | 34 + .../libp2p/go-libp2p-kad-dht/go.sum | 366 + .../libp2p/go-libp2p-kad-dht/handlers.go | 381 + .../libp2p/go-libp2p-kad-dht/lookup.go | 114 + .../go-libp2p-kad-dht/metrics/metrics.go | 96 + .../go-libp2p-kad-dht/nofile_test_posix.go | 12 + .../go-libp2p-kad-dht/nofile_test_windows.go | 5 + .../libp2p/go-libp2p-kad-dht/notif.go | 116 + .../libp2p/go-libp2p-kad-dht/opts/options.go | 109 + .../libp2p/go-libp2p-kad-dht/pb/Makefile | 11 + .../libp2p/go-libp2p-kad-dht/pb/dht.pb.go | 976 + .../libp2p/go-libp2p-kad-dht/pb/dht.proto | 71 + .../libp2p/go-libp2p-kad-dht/pb/message.go | 183 + .../go-libp2p-kad-dht/providers/providers.go | 350 + .../libp2p/go-libp2p-kad-dht/query.go | 323 + .../libp2p/go-libp2p-kad-dht/records.go | 136 + .../libp2p/go-libp2p-kad-dht/routing.go | 711 + .../go-libp2p-kad-dht/routing_options.go | 31 + .../libp2p/go-libp2p-kad-dht/util.go | 10 + .../libp2p/go-libp2p-kbucket/.travis.yml | 32 + .../libp2p/go-libp2p-kbucket/LICENSE | 21 + .../libp2p/go-libp2p-kbucket/Makefile | 9 + .../libp2p/go-libp2p-kbucket/README.md | 26 + .../libp2p/go-libp2p-kbucket/bucket.go | 110 + .../libp2p/go-libp2p-kbucket/codecov.yml | 3 + .../libp2p/go-libp2p-kbucket/go.mod | 9 + .../libp2p/go-libp2p-kbucket/go.sum | 111 + .../go-libp2p-kbucket/keyspace/keyspace.go | 97 + .../libp2p/go-libp2p-kbucket/keyspace/xor.go | 59 + .../libp2p/go-libp2p-kbucket/package.json | 46 + .../libp2p/go-libp2p-kbucket/sorting.go | 61 + .../libp2p/go-libp2p-kbucket/table.go | 251 + .../libp2p/go-libp2p-kbucket/util.go | 62 + .../libp2p/go-libp2p-loggables/.travis.yml | 32 + .../libp2p/go-libp2p-loggables/LICENSE | 21 + .../libp2p/go-libp2p-loggables/Makefile | 14 + .../libp2p/go-libp2p-loggables/README.md | 30 + .../libp2p/go-libp2p-loggables/codecov.yml | 3 + .../libp2p/go-libp2p-loggables/go.mod | 9 + .../libp2p/go-libp2p-loggables/go.sum | 79 + .../libp2p/go-libp2p-loggables/loggables.go | 80 + .../libp2p/go-libp2p-loggables/package.json | 42 + .../libp2p/go-libp2p-metrics/.travis.yml | 32 + .../libp2p/go-libp2p-metrics/LICENSE | 21 + .../libp2p/go-libp2p-metrics/Makefile | 11 + .../libp2p/go-libp2p-metrics/README.md | 33 + .../libp2p/go-libp2p-metrics/bw_stats.go | 83 + .../libp2p/go-libp2p-metrics/codecov.yml | 3 + .../libp2p/go-libp2p-metrics/go.mod | 7 + .../libp2p/go-libp2p-metrics/go.sum | 60 + .../libp2p/go-libp2p-metrics/interface.go | 16 + .../libp2p/go-libp2p-metrics/package.json | 36 + .../libp2p/go-libp2p-nat/.travis.yml | 30 + .../github.com/libp2p/go-libp2p-nat/LICENSE | 21 + .../github.com/libp2p/go-libp2p-nat/README.md | 46 + .../libp2p/go-libp2p-nat/codecov.yml | 3 + vendor/github.com/libp2p/go-libp2p-nat/go.mod | 9 + vendor/github.com/libp2p/go-libp2p-nat/go.sum | 46 + .../libp2p/go-libp2p-nat/mapping.go | 122 + vendor/github.com/libp2p/go-libp2p-nat/nat.go | 210 + .../libp2p/go-libp2p-nat/notifier.go | 47 + .../libp2p/go-libp2p-net/.travis.yml | 32 + .../github.com/libp2p/go-libp2p-net/LICENSE | 21 + .../github.com/libp2p/go-libp2p-net/Makefile | 13 + .../github.com/libp2p/go-libp2p-net/README.md | 44 + .../libp2p/go-libp2p-net/codecov.yml | 3 + vendor/github.com/libp2p/go-libp2p-net/go.mod | 11 + vendor/github.com/libp2p/go-libp2p-net/go.sum | 104 + .../libp2p/go-libp2p-net/interface.go | 224 + .../libp2p/go-libp2p-net/notifiee.go | 63 + .../libp2p/go-libp2p-net/options.go | 25 + .../libp2p/go-libp2p-net/package.json | 60 + .../libp2p/go-libp2p-net/stream_util.go | 54 + .../libp2p/go-libp2p-net/timeouts.go | 29 + .../libp2p/go-libp2p-netutil/.travis.yml | 32 + .../libp2p/go-libp2p-netutil/LICENSE | 21 + .../libp2p/go-libp2p-netutil/Makefile | 11 + .../libp2p/go-libp2p-netutil/README.md | 10 + .../libp2p/go-libp2p-netutil/codecov.yml | 3 + .../libp2p/go-libp2p-netutil/go.mod | 9 + .../libp2p/go-libp2p-netutil/go.sum | 79 + .../libp2p/go-libp2p-netutil/key.go | 178 + .../libp2p/go-libp2p-netutil/package.json | 53 + .../libp2p/go-libp2p-peer/.travis.yml | 32 + .../github.com/libp2p/go-libp2p-peer/LICENSE | 21 + .../github.com/libp2p/go-libp2p-peer/Makefile | 11 + .../libp2p/go-libp2p-peer/README.md | 33 + .../libp2p/go-libp2p-peer/codecov.yml | 3 + .../github.com/libp2p/go-libp2p-peer/go.mod | 7 + .../github.com/libp2p/go-libp2p-peer/go.sum | 54 + .../libp2p/go-libp2p-peer/package.json | 36 + .../github.com/libp2p/go-libp2p-peer/peer.go | 181 + .../libp2p/go-libp2p-peer/peer_serde.go | 75 + .../libp2p/go-libp2p-peer/peerset/peerset.go | 72 + .../libp2p/go-libp2p-peer/test/utils.go | 39 + .../libp2p/go-libp2p-peerstore/.gitignore | 2 + .../libp2p/go-libp2p-peerstore/.travis.yml | 30 + .../libp2p/go-libp2p-peerstore/LICENSE | 21 + .../libp2p/go-libp2p-peerstore/README.md | 37 + .../go-libp2p-peerstore/addr/addrsrcs.go | 70 + .../go-libp2p-peerstore/addr/sorting.go | 62 + .../libp2p/go-libp2p-peerstore/codecov.yml | 5 + .../libp2p/go-libp2p-peerstore/go.mod | 20 + .../libp2p/go-libp2p-peerstore/go.sum | 139 + .../libp2p/go-libp2p-peerstore/interface.go | 144 + .../libp2p/go-libp2p-peerstore/metrics.go | 65 + .../libp2p/go-libp2p-peerstore/peerinfo.go | 115 + .../libp2p/go-libp2p-peerstore/peerstore.go | 192 + .../pstoremem/addr_book.go | 354 + .../go-libp2p-peerstore/pstoremem/keybook.go | 93 + .../go-libp2p-peerstore/pstoremem/metadata.go | 45 + .../pstoremem/peerstore.go | 11 + .../go-libp2p-peerstore/queue/distance.go | 100 + .../go-libp2p-peerstore/queue/interface.go | 18 + .../libp2p/go-libp2p-peerstore/queue/sync.go | 85 + .../libp2p/go-libp2p-pnet/.travis.yml | 32 + .../github.com/libp2p/go-libp2p-pnet/LICENSE | 21 + .../github.com/libp2p/go-libp2p-pnet/Makefile | 8 + .../libp2p/go-libp2p-pnet/README.md | 31 + .../github.com/libp2p/go-libp2p-pnet/codec.go | 35 + .../libp2p/go-libp2p-pnet/codecov.yml | 3 + .../libp2p/go-libp2p-pnet/fingerprint.go | 24 + .../libp2p/go-libp2p-pnet/generate.go | 38 + .../github.com/libp2p/go-libp2p-pnet/go.mod | 11 + .../github.com/libp2p/go-libp2p-pnet/go.sum | 16 + .../libp2p/go-libp2p-pnet/package.json | 43 + .../libp2p/go-libp2p-pnet/protector.go | 41 + .../libp2p/go-libp2p-pnet/psk_conn.go | 82 + .../libp2p/go-libp2p-protocol/.travis.yml | 32 + .../libp2p/go-libp2p-protocol/LICENSE | 21 + .../libp2p/go-libp2p-protocol/Makefile | 11 + .../libp2p/go-libp2p-protocol/README.md | 42 + .../libp2p/go-libp2p-protocol/codecov.yml | 3 + .../libp2p/go-libp2p-protocol/go.mod | 1 + .../libp2p/go-libp2p-protocol/package.json | 15 + .../libp2p/go-libp2p-protocol/protocol.go | 9 + .../go-libp2p-pubsub-router/.travis.yml | 32 + .../libp2p/go-libp2p-pubsub-router/LICENSE | 21 + .../libp2p/go-libp2p-pubsub-router/Makefile | 9 + .../libp2p/go-libp2p-pubsub-router/README.md | 31 + .../libp2p/go-libp2p-pubsub-router/go.mod | 18 + .../libp2p/go-libp2p-pubsub-router/go.sum | 225 + .../go-libp2p-pubsub-router/package.json | 97 + .../libp2p/go-libp2p-pubsub-router/pubsub.go | 393 + .../libp2p/go-libp2p-pubsub/.gitignore | 3 + .../libp2p/go-libp2p-pubsub/.travis.yml | 32 + .../libp2p/go-libp2p-pubsub/LICENSE | 21 + .../libp2p/go-libp2p-pubsub/Makefile | 7 + .../libp2p/go-libp2p-pubsub/README.md | 55 + .../libp2p/go-libp2p-pubsub/blacklist.go | 53 + .../libp2p/go-libp2p-pubsub/codecov.yml | 3 + .../libp2p/go-libp2p-pubsub/comm.go | 172 + .../github.com/libp2p/go-libp2p-pubsub/doc.go | 27 + .../libp2p/go-libp2p-pubsub/floodsub.go | 84 + .../github.com/libp2p/go-libp2p-pubsub/go.mod | 17 + .../github.com/libp2p/go-libp2p-pubsub/go.sum | 202 + .../libp2p/go-libp2p-pubsub/gossipsub.go | 669 + .../libp2p/go-libp2p-pubsub/mcache.go | 61 + .../libp2p/go-libp2p-pubsub/notify.go | 34 + .../libp2p/go-libp2p-pubsub/package.json | 95 + .../libp2p/go-libp2p-pubsub/pb/Makefile | 11 + .../libp2p/go-libp2p-pubsub/pb/rpc.pb.go | 3141 +++ .../libp2p/go-libp2p-pubsub/pb/rpc.proto | 76 + .../libp2p/go-libp2p-pubsub/pubsub.go | 1011 + .../libp2p/go-libp2p-pubsub/randomsub.go | 108 + .../libp2p/go-libp2p-pubsub/sign.go | 103 + .../libp2p/go-libp2p-pubsub/subscription.go | 33 + .../go-libp2p-quic-transport/.travis.yml | 37 + .../libp2p/go-libp2p-quic-transport/README.md | 11 + .../go-libp2p-quic-transport/codecov.yml | 7 + .../libp2p/go-libp2p-quic-transport/conn.go | 80 + .../libp2p/go-libp2p-quic-transport/crypto.go | 120 + .../libp2p/go-libp2p-quic-transport/go.mod | 15 + .../libp2p/go-libp2p-quic-transport/go.sum | 149 + .../go-libp2p-quic-transport/listener.go | 113 + .../quic_multiaddr.go | 30 + .../libp2p/go-libp2p-quic-transport/stream.go | 18 + .../go-libp2p-quic-transport/transport.go | 177 + .../libp2p/go-libp2p-record/.travis.yml | 32 + .../libp2p/go-libp2p-record/LICENSE | 21 + .../libp2p/go-libp2p-record/Makefile | 9 + .../libp2p/go-libp2p-record/README.md | 26 + .../libp2p/go-libp2p-record/codecov.yml | 3 + .../github.com/libp2p/go-libp2p-record/go.mod | 9 + .../github.com/libp2p/go-libp2p-record/go.sum | 76 + .../libp2p/go-libp2p-record/package.json | 50 + .../libp2p/go-libp2p-record/pb/Makefile | 11 + .../libp2p/go-libp2p-record/pb/record.pb.go | 458 + .../libp2p/go-libp2p-record/pb/record.proto | 27 + .../libp2p/go-libp2p-record/pubkey.go | 47 + .../libp2p/go-libp2p-record/record.go | 13 + .../libp2p/go-libp2p-record/util.go | 22 + .../libp2p/go-libp2p-record/validator.go | 63 + .../go-libp2p-routing-helpers/.travis.yml | 32 + .../libp2p/go-libp2p-routing-helpers/LICENSE | 21 + .../libp2p/go-libp2p-routing-helpers/Makefile | 9 + .../go-libp2p-routing-helpers/README.md | 29 + .../go-libp2p-routing-helpers/bootstrap.go | 14 + .../go-libp2p-routing-helpers/composed.go | 123 + .../libp2p/go-libp2p-routing-helpers/go.mod | 13 + .../libp2p/go-libp2p-routing-helpers/go.sum | 122 + .../go-libp2p-routing-helpers/limited.go | 83 + .../libp2p/go-libp2p-routing-helpers/null.go | 54 + .../go-libp2p-routing-helpers/package.json | 70 + .../go-libp2p-routing-helpers/parallel.go | 509 + .../go-libp2p-routing-helpers/tiered.go | 93 + .../libp2p/go-libp2p-routing/.travis.yml | 32 + .../libp2p/go-libp2p-routing/LICENSE | 21 + .../libp2p/go-libp2p-routing/Makefile | 9 + .../libp2p/go-libp2p-routing/README.md | 26 + .../libp2p/go-libp2p-routing/codecov.yml | 3 + .../libp2p/go-libp2p-routing/go.mod | 8 + .../libp2p/go-libp2p-routing/go.sum | 104 + .../go-libp2p-routing/notifications/query.go | 121 + .../go-libp2p-routing/options/options.go | 50 + .../libp2p/go-libp2p-routing/package.json | 42 + .../libp2p/go-libp2p-routing/routing.go | 124 + .../libp2p/go-libp2p-secio/.travis.yml | 31 + .../github.com/libp2p/go-libp2p-secio/LICENSE | 21 + .../libp2p/go-libp2p-secio/README.md | 47 + .../github.com/libp2p/go-libp2p-secio/al.go | 122 + .../libp2p/go-libp2p-secio/codecov.yml | 3 + .../github.com/libp2p/go-libp2p-secio/go.mod | 14 + .../github.com/libp2p/go-libp2p-secio/go.sum | 121 + .../go-libp2p-secio/gx-workspace-update.json | 35 + .../libp2p/go-libp2p-secio/pb/Makefile | 11 + .../libp2p/go-libp2p-secio/pb/spipe.pb.go | 757 + .../libp2p/go-libp2p-secio/pb/spipe.proto | 16 + .../libp2p/go-libp2p-secio/protocol.go | 386 + .../github.com/libp2p/go-libp2p-secio/rw.go | 268 + .../libp2p/go-libp2p-secio/transport.go | 81 + .../libp2p/go-libp2p-swarm/.travis.yml | 32 + .../github.com/libp2p/go-libp2p-swarm/LICENSE | 21 + .../libp2p/go-libp2p-swarm/Makefile | 13 + .../libp2p/go-libp2p-swarm/README.md | 152 + .../libp2p/go-libp2p-swarm/addrs.go | 35 + .../libp2p/go-libp2p-swarm/codecov.yml | 3 + .../libp2p/go-libp2p-swarm/dial_sync.go | 122 + .../github.com/libp2p/go-libp2p-swarm/go.mod | 30 + .../github.com/libp2p/go-libp2p-swarm/go.sum | 193 + .../libp2p/go-libp2p-swarm/limiter.go | 225 + .../libp2p/go-libp2p-swarm/package.json | 167 + .../libp2p/go-libp2p-swarm/swarm.go | 504 + .../libp2p/go-libp2p-swarm/swarm_addr.go | 24 + .../libp2p/go-libp2p-swarm/swarm_conn.go | 222 + .../libp2p/go-libp2p-swarm/swarm_dial.go | 466 + .../libp2p/go-libp2p-swarm/swarm_listen.go | 96 + .../libp2p/go-libp2p-swarm/swarm_stream.go | 177 + .../libp2p/go-libp2p-swarm/swarm_transport.go | 101 + .../go-libp2p-transport-upgrader/.travis.yml | 32 + .../go-libp2p-transport-upgrader/LICENSE | 21 + .../go-libp2p-transport-upgrader/Makefile | 11 + .../go-libp2p-transport-upgrader/README.md | 136 + .../go-libp2p-transport-upgrader/codecov.yml | 3 + .../go-libp2p-transport-upgrader/conn.go | 35 + .../go-libp2p-transport-upgrader/go.mod | 19 + .../go-libp2p-transport-upgrader/go.sum | 144 + .../go-libp2p-transport-upgrader/listener.go | 159 + .../go-libp2p-transport-upgrader/package.json | 101 + .../go-libp2p-transport-upgrader/threshold.go | 50 + .../go-libp2p-transport-upgrader/upgrader.go | 127 + .../libp2p/go-libp2p-transport/.gitignore | 1 + .../libp2p/go-libp2p-transport/.travis.yml | 32 + .../libp2p/go-libp2p-transport/LICENSE | 21 + .../libp2p/go-libp2p-transport/Makefile | 11 + .../libp2p/go-libp2p-transport/README.md | 48 + .../libp2p/go-libp2p-transport/codecov.yml | 3 + .../libp2p/go-libp2p-transport/go.mod | 10 + .../libp2p/go-libp2p-transport/go.sum | 116 + .../libp2p/go-libp2p-transport/package.json | 53 + .../libp2p/go-libp2p-transport/transport.go | 97 + vendor/github.com/libp2p/go-libp2p/.gitignore | 4 + .../github.com/libp2p/go-libp2p/.travis.yml | 30 + vendor/github.com/libp2p/go-libp2p/LICENSE | 21 + vendor/github.com/libp2p/go-libp2p/NEWS.md | 304 + vendor/github.com/libp2p/go-libp2p/README.md | 214 + .../github.com/libp2p/go-libp2p/codecov.yml | 3 + .../libp2p/go-libp2p/config/config.go | 256 + .../go-libp2p/config/constructor_types.go | 62 + .../libp2p/go-libp2p/config/muxer.go | 63 + .../go-libp2p/config/reflection_magic.go | 126 + .../libp2p/go-libp2p/config/security.go | 77 + .../libp2p/go-libp2p/config/transport.go | 66 + .../github.com/libp2p/go-libp2p/defaults.go | 140 + .../github.com/libp2p/go-libp2p/error_util.go | 17 + vendor/github.com/libp2p/go-libp2p/go.mod | 47 + vendor/github.com/libp2p/go-libp2p/go.sum | 261 + vendor/github.com/libp2p/go-libp2p/libp2p.go | 72 + vendor/github.com/libp2p/go-libp2p/options.go | 320 + .../libp2p/go-libp2p/p2p/discovery/mdns.go | 207 + .../go-libp2p/p2p/host/basic/basic_host.go | 736 + .../libp2p/go-libp2p/p2p/host/basic/natmgr.go | 243 + .../go-libp2p/p2p/host/relay/addrsplosion.go | 167 + .../go-libp2p/p2p/host/relay/autorelay.go | 332 + .../libp2p/go-libp2p/p2p/host/relay/doc.go | 28 + .../libp2p/go-libp2p/p2p/host/relay/log.go | 7 + .../libp2p/go-libp2p/p2p/host/relay/relay.go | 37 + .../go-libp2p/p2p/host/routed/routed.go | 190 + .../go-libp2p/p2p/net/mock/interface.go | 105 + .../libp2p/go-libp2p/p2p/net/mock/mock.go | 52 + .../go-libp2p/p2p/net/mock/mock_conn.go | 160 + .../go-libp2p/p2p/net/mock/mock_link.go | 99 + .../libp2p/go-libp2p/p2p/net/mock/mock_net.go | 396 + .../go-libp2p/p2p/net/mock/mock_peernet.go | 385 + .../go-libp2p/p2p/net/mock/mock_printer.go | 36 + .../go-libp2p/p2p/net/mock/mock_stream.go | 266 + .../go-libp2p/p2p/net/mock/ratelimiter.go | 75 + .../go-libp2p/p2p/protocol/identify/id.go | 515 + .../p2p/protocol/identify/obsaddr.go | 229 + .../p2p/protocol/identify/pb/Makefile | 11 + .../p2p/protocol/identify/pb/identify.pb.go | 635 + .../p2p/protocol/identify/pb/identify.proto | 29 + .../go-libp2p/p2p/protocol/ping/ping.go | 133 + .../libp2p/go-libp2p/package-list.json | 97 + .../libp2p/go-maddr-filter/.travis.yml | 32 + .../github.com/libp2p/go-maddr-filter/LICENSE | 21 + .../libp2p/go-maddr-filter/Makefile | 11 + .../libp2p/go-maddr-filter/README.md | 51 + .../libp2p/go-maddr-filter/codecov.yml | 3 + .../libp2p/go-maddr-filter/filter.go | 67 + .../github.com/libp2p/go-maddr-filter/go.mod | 6 + .../github.com/libp2p/go-maddr-filter/go.sum | 22 + .../libp2p/go-maddr-filter/package.json | 30 + vendor/github.com/libp2p/go-mplex/.travis.yml | 32 + vendor/github.com/libp2p/go-mplex/LICENSE | 21 + vendor/github.com/libp2p/go-mplex/Makefile | 13 + vendor/github.com/libp2p/go-mplex/README.md | 17 + vendor/github.com/libp2p/go-mplex/codecov.yml | 3 + vendor/github.com/libp2p/go-mplex/go.mod | 7 + vendor/github.com/libp2p/go-mplex/go.sum | 30 + .../github.com/libp2p/go-mplex/multiplex.go | 454 + .../github.com/libp2p/go-mplex/package.json | 35 + vendor/github.com/libp2p/go-mplex/stream.go | 240 + vendor/github.com/libp2p/go-msgio/.gxignore | 1 + vendor/github.com/libp2p/go-msgio/.travis.yml | 30 + vendor/github.com/libp2p/go-msgio/LICENSE | 21 + vendor/github.com/libp2p/go-msgio/README.md | 89 + vendor/github.com/libp2p/go-msgio/chan.go | 114 + vendor/github.com/libp2p/go-msgio/codecov.yml | 3 + vendor/github.com/libp2p/go-msgio/fuzz.go | 23 + vendor/github.com/libp2p/go-msgio/go.mod | 3 + vendor/github.com/libp2p/go-msgio/go.sum | 2 + vendor/github.com/libp2p/go-msgio/limit.go | 45 + vendor/github.com/libp2p/go-msgio/msgio.go | 286 + vendor/github.com/libp2p/go-msgio/num.go | 33 + vendor/github.com/libp2p/go-msgio/varint.go | 183 + vendor/github.com/libp2p/go-nat/.travis.yml | 30 + vendor/github.com/libp2p/go-nat/LICENSE | 191 + vendor/github.com/libp2p/go-nat/README.md | 9 + vendor/github.com/libp2p/go-nat/go.mod | 8 + vendor/github.com/libp2p/go-nat/go.sum | 13 + vendor/github.com/libp2p/go-nat/nat.go | 129 + vendor/github.com/libp2p/go-nat/natpmp.go | 133 + vendor/github.com/libp2p/go-nat/upnp.go | 327 + .../libp2p/go-reuseport-transport/.travis.yml | 32 + .../libp2p/go-reuseport-transport/LICENSE | 21 + .../libp2p/go-reuseport-transport/Makefile | 9 + .../libp2p/go-reuseport-transport/README.md | 62 + .../libp2p/go-reuseport-transport/codecov.yml | 3 + .../libp2p/go-reuseport-transport/dial.go | 113 + .../libp2p/go-reuseport-transport/go.mod | 8 + .../libp2p/go-reuseport-transport/go.sum | 52 + .../libp2p/go-reuseport-transport/listen.go | 80 + .../go-reuseport-transport/multidialer.go | 110 + .../go-reuseport-transport/package.json | 41 + .../go-reuseport-transport/reuseport.go | 64 + .../go-reuseport-transport/singledialer.go | 16 + .../go-reuseport-transport/transport.go | 25 + .../libp2p/go-reuseport/.travis.yml | 32 + vendor/github.com/libp2p/go-reuseport/LICENSE | 13 + .../github.com/libp2p/go-reuseport/Makefile | 26 + .../github.com/libp2p/go-reuseport/README.md | 46 + vendor/github.com/libp2p/go-reuseport/addr.go | 20 + .../libp2p/go-reuseport/codecov.yml | 3 + .../libp2p/go-reuseport/control_unix.go | 25 + .../libp2p/go-reuseport/control_wasm.go | 11 + .../libp2p/go-reuseport/control_windows.go | 13 + vendor/github.com/libp2p/go-reuseport/go.mod | 7 + vendor/github.com/libp2p/go-reuseport/go.sum | 11 + .../libp2p/go-reuseport/interface.go | 64 + .../libp2p/go-reuseport/package.json | 36 + .../libp2p/go-stream-muxer/.gitignore | 1 + .../libp2p/go-stream-muxer/.gxignore | 1 + .../libp2p/go-stream-muxer/.travis.yml | 32 + .../github.com/libp2p/go-stream-muxer/LICENSE | 21 + .../libp2p/go-stream-muxer/Makefile | 13 + .../libp2p/go-stream-muxer/README.md | 114 + .../libp2p/go-stream-muxer/codecov.yml | 3 + .../github.com/libp2p/go-stream-muxer/go.mod | 1 + .../libp2p/go-stream-muxer/muxer.go | 55 + .../libp2p/go-stream-muxer/package.json | 15 + .../libp2p/go-tcp-transport/.travis.yml | 31 + .../libp2p/go-tcp-transport/LICENSE | 21 + .../libp2p/go-tcp-transport/Makefile | 11 + .../libp2p/go-tcp-transport/README.md | 35 + .../libp2p/go-tcp-transport/codecov.yml | 3 + .../github.com/libp2p/go-tcp-transport/go.mod | 15 + .../github.com/libp2p/go-tcp-transport/go.sum | 156 + .../libp2p/go-tcp-transport/package.json | 83 + .../libp2p/go-tcp-transport/reuseport.go | 44 + .../github.com/libp2p/go-tcp-transport/tcp.go | 141 + .../github.com/libp2p/go-testutil/.travis.yml | 32 + vendor/github.com/libp2p/go-testutil/LICENSE | 21 + vendor/github.com/libp2p/go-testutil/Makefile | 10 + .../github.com/libp2p/go-testutil/README.md | 34 + .../github.com/libp2p/go-testutil/codecov.yml | 3 + vendor/github.com/libp2p/go-testutil/gen.go | 154 + vendor/github.com/libp2p/go-testutil/go.mod | 8 + vendor/github.com/libp2p/go-testutil/go.sum | 58 + .../github.com/libp2p/go-testutil/identity.go | 60 + .../libp2p/go-testutil/latency_config.go | 48 + .../libp2p/go-testutil/package.json | 47 + vendor/github.com/libp2p/go-testutil/rand.go | 36 + vendor/github.com/libp2p/go-testutil/util.go | 21 + .../libp2p/go-ws-transport/.travis.yml | 31 + .../libp2p/go-ws-transport/Makefile | 10 + .../libp2p/go-ws-transport/README.md | 35 + .../libp2p/go-ws-transport/addrs.go | 73 + .../libp2p/go-ws-transport/codecov.yml | 3 + .../github.com/libp2p/go-ws-transport/conn.go | 129 + .../github.com/libp2p/go-ws-transport/go.mod | 13 + .../github.com/libp2p/go-ws-transport/go.sum | 152 + .../libp2p/go-ws-transport/listener.go | 62 + .../libp2p/go-ws-transport/package.json | 72 + .../libp2p/go-ws-transport/websocket.go | 158 + .../lucas-clemente/quic-go/.editorconfig | 5 + .../lucas-clemente/quic-go/.gitignore | 3 + .../lucas-clemente/quic-go/.golangci.yml | 25 + .../lucas-clemente/quic-go/.travis.yml | 39 + .../lucas-clemente/quic-go/Changelog.md | 52 + .../github.com/lucas-clemente/quic-go/LICENSE | 21 + .../lucas-clemente/quic-go/README.md | 68 + .../lucas-clemente/quic-go/appveyor.yml | 34 + .../lucas-clemente/quic-go/buffer_pool.go | 75 + .../lucas-clemente/quic-go/client.go | 413 + .../lucas-clemente/quic-go/codecov.yml | 18 + .../github.com/lucas-clemente/quic-go/conn.go | 54 + .../lucas-clemente/quic-go/crypto_stream.go | 135 + .../quic-go/crypto_stream_manager.go | 60 + .../lucas-clemente/quic-go/frame_sorter.go | 159 + .../lucas-clemente/quic-go/framer.go | 109 + .../github.com/lucas-clemente/quic-go/go.mod | 13 + .../github.com/lucas-clemente/quic-go/go.sum | 37 + .../lucas-clemente/quic-go/interface.go | 224 + .../quic-go/internal/ackhandler/gen.go | 3 + .../quic-go/internal/ackhandler/interfaces.go | 50 + .../quic-go/internal/ackhandler/packet.go | 29 + .../internal/ackhandler/packet_linkedlist.go | 217 + .../ackhandler/packet_number_generator.go | 78 + .../ackhandler/received_packet_handler.go | 98 + .../ackhandler/received_packet_history.go | 122 + .../ackhandler/received_packet_tracker.go | 191 + .../internal/ackhandler/retransmittable.go | 34 + .../quic-go/internal/ackhandler/send_mode.go | 36 + .../ackhandler/sent_packet_handler.go | 647 + .../ackhandler/sent_packet_history.go | 148 + .../quic-go/internal/congestion/bandwidth.go | 22 + .../quic-go/internal/congestion/clock.go | 18 + .../quic-go/internal/congestion/cubic.go | 210 + .../internal/congestion/cubic_sender.go | 314 + .../internal/congestion/hybrid_slow_start.go | 111 + .../quic-go/internal/congestion/interface.go | 36 + .../quic-go/internal/congestion/prr_sender.go | 54 + .../quic-go/internal/congestion/rtt_stats.go | 101 + .../quic-go/internal/congestion/stats.go | 8 + .../flowcontrol/base_flow_controller.go | 122 + .../flowcontrol/connection_flow_controller.go | 92 + .../quic-go/internal/flowcontrol/interface.go | 41 + .../flowcontrol/stream_flow_controller.go | 139 + .../quic-go/internal/handshake/aead.go | 104 + .../internal/handshake/cookie_generator.go | 109 + .../internal/handshake/cookie_protector.go | 86 + .../internal/handshake/crypto_setup.go | 581 + .../internal/handshake/initial_aead.go | 52 + .../quic-go/internal/handshake/interface.go | 52 + .../quic-go/internal/handshake/qtls.go | 132 + .../handshake/tls_extension_handler.go | 58 + .../handshake/transport_parameters.go | 260 + .../quic-go/internal/handshake/unsafe.go | 38 + .../internal/protocol/connection_id.go | 69 + .../internal/protocol/encryption_level.go | 28 + .../internal/protocol/packet_number.go | 85 + .../quic-go/internal/protocol/params.go | 126 + .../quic-go/internal/protocol/perspective.go | 26 + .../quic-go/internal/protocol/protocol.go | 75 + .../quic-go/internal/protocol/stream_id.go | 67 + .../quic-go/internal/protocol/version.go | 119 + .../quic-go/internal/qerr/error_codes.go | 71 + .../quic-go/internal/qerr/quic_error.go | 73 + .../quic-go/internal/utils/atomic_bool.go | 22 + .../internal/utils/byteinterval_linkedlist.go | 217 + .../quic-go/internal/utils/byteorder.go | 17 + .../internal/utils/byteorder_big_endian.go | 74 + .../quic-go/internal/utils/gen.go | 4 + .../quic-go/internal/utils/host.go | 27 + .../quic-go/internal/utils/log.go | 131 + .../quic-go/internal/utils/minmax.go | 159 + .../quic-go/internal/utils/packet_interval.go | 9 + .../utils/packetinterval_linkedlist.go | 217 + .../internal/utils/streamframe_interval.go | 9 + .../quic-go/internal/utils/timer.go | 48 + .../quic-go/internal/utils/varint.go | 101 + .../quic-go/internal/wire/ack_frame.go | 226 + .../quic-go/internal/wire/ack_range.go | 14 + .../internal/wire/connection_close_frame.go | 81 + .../quic-go/internal/wire/crypto_frame.go | 71 + .../internal/wire/data_blocked_frame.go | 38 + .../quic-go/internal/wire/extended_header.go | 204 + .../quic-go/internal/wire/frame_parser.go | 97 + .../quic-go/internal/wire/header.go | 251 + .../quic-go/internal/wire/interface.go | 19 + .../quic-go/internal/wire/log.go | 43 + .../quic-go/internal/wire/max_data_frame.go | 40 + .../internal/wire/max_stream_data_frame.go | 46 + .../internal/wire/max_streams_frame.go | 51 + .../internal/wire/new_connection_id_frame.go | 70 + .../quic-go/internal/wire/new_token_frame.go | 44 + .../internal/wire/path_challenge_frame.go | 38 + .../internal/wire/path_response_frame.go | 38 + .../quic-go/internal/wire/ping_frame.go | 27 + .../internal/wire/reset_stream_frame.go | 58 + .../wire/retire_connection_id_frame.go | 36 + .../internal/wire/stop_sending_frame.go | 47 + .../wire/stream_data_blocked_frame.go | 46 + .../quic-go/internal/wire/stream_frame.go | 168 + .../internal/wire/streams_blocked_frame.go | 52 + .../internal/wire/version_negotiation.go | 31 + .../lucas-clemente/quic-go/mockgen.go | 21 + .../lucas-clemente/quic-go/mockgen_private.sh | 28 + .../lucas-clemente/quic-go/multiplexer.go | 89 + .../quic-go/packet_handler_map.go | 274 + .../lucas-clemente/quic-go/packet_packer.go | 491 + .../lucas-clemente/quic-go/packet_unpacker.go | 102 + .../lucas-clemente/quic-go/receive_stream.go | 324 + .../lucas-clemente/quic-go/send_stream.go | 332 + .../lucas-clemente/quic-go/server.go | 558 + .../lucas-clemente/quic-go/session.go | 1287 + .../lucas-clemente/quic-go/stream.go | 163 + .../lucas-clemente/quic-go/streams_map.go | 192 + .../quic-go/streams_map_generic_helper.go | 17 + .../quic-go/streams_map_incoming_bidi.go | 162 + .../quic-go/streams_map_incoming_generic.go | 160 + .../quic-go/streams_map_incoming_uni.go | 162 + .../quic-go/streams_map_outgoing_bidi.go | 147 + .../quic-go/streams_map_outgoing_generic.go | 145 + .../quic-go/streams_map_outgoing_uni.go | 147 + .../quic-go/window_update_queue.go | 71 + .../github.com/marten-seemann/qtls/alert.go | 88 + vendor/github.com/marten-seemann/qtls/auth.go | 221 + .../marten-seemann/qtls/cipher_suites.go | 487 + .../github.com/marten-seemann/qtls/common.go | 1148 + vendor/github.com/marten-seemann/qtls/conn.go | 1467 ++ .../marten-seemann/qtls/generate_cert.go | 169 + vendor/github.com/marten-seemann/qtls/go.mod | 8 + vendor/github.com/marten-seemann/qtls/go.sum | 5 + .../marten-seemann/qtls/handshake_client.go | 1023 + .../qtls/handshake_client_tls13.go | 680 + .../marten-seemann/qtls/handshake_messages.go | 1900 ++ .../marten-seemann/qtls/handshake_server.go | 822 + .../qtls/handshake_server_tls13.go | 872 + .../marten-seemann/qtls/key_agreement.go | 313 + .../marten-seemann/qtls/key_schedule.go | 216 + vendor/github.com/marten-seemann/qtls/prf.go | 385 + .../github.com/marten-seemann/qtls/ticket.go | 215 + vendor/github.com/marten-seemann/qtls/tls.go | 306 + .../go-colorable/_example/escape-seq/main.go | 16 - .../go-colorable/_example/logrus/main.go | 16 - .../mattn/go-colorable/_example/title/main.go | 14 - .../go-colorable/cmd/colorable/colorable.go | 12 - .../mattn/go-colorable/colorable_test.go | 101 - .../mattn/go-isatty/example_test.go | 18 - .../mattn/go-isatty/isatty_others_test.go | 19 - .../mattn/go-isatty/isatty_windows_test.go | 35 - vendor/github.com/miekg/dns/.codecov.yml | 8 + vendor/github.com/miekg/dns/.gitignore | 4 + vendor/github.com/miekg/dns/.travis.yml | 19 + vendor/github.com/miekg/dns/AUTHORS | 1 + vendor/github.com/miekg/dns/CONTRIBUTORS | 10 + vendor/github.com/miekg/dns/COPYRIGHT | 9 + vendor/github.com/miekg/dns/Gopkg.lock | 57 + vendor/github.com/miekg/dns/Gopkg.toml | 38 + vendor/github.com/miekg/dns/LICENSE | 32 + vendor/github.com/miekg/dns/Makefile.fuzz | 33 + vendor/github.com/miekg/dns/Makefile.release | 52 + vendor/github.com/miekg/dns/README.md | 172 + vendor/github.com/miekg/dns/acceptfunc.go | 56 + vendor/github.com/miekg/dns/client.go | 421 + vendor/github.com/miekg/dns/clientconfig.go | 135 + vendor/github.com/miekg/dns/dane.go | 43 + vendor/github.com/miekg/dns/defaults.go | 378 + vendor/github.com/miekg/dns/dns.go | 134 + vendor/github.com/miekg/dns/dnssec.go | 791 + vendor/github.com/miekg/dns/dnssec_keygen.go | 178 + vendor/github.com/miekg/dns/dnssec_keyscan.go | 352 + vendor/github.com/miekg/dns/dnssec_privkey.go | 94 + vendor/github.com/miekg/dns/doc.go | 269 + vendor/github.com/miekg/dns/duplicate.go | 38 + .../miekg/dns/duplicate_generate.go | 144 + vendor/github.com/miekg/dns/edns.go | 659 + vendor/github.com/miekg/dns/format.go | 93 + vendor/github.com/miekg/dns/fuzz.go | 23 + vendor/github.com/miekg/dns/generate.go | 242 + vendor/github.com/miekg/dns/labels.go | 188 + vendor/github.com/miekg/dns/listen_go111.go | 44 + .../github.com/miekg/dns/listen_go_not111.go | 23 + vendor/github.com/miekg/dns/msg.go | 1228 + vendor/github.com/miekg/dns/msg_generate.go | 328 + vendor/github.com/miekg/dns/msg_helpers.go | 648 + vendor/github.com/miekg/dns/msg_truncate.go | 106 + vendor/github.com/miekg/dns/nsecx.go | 95 + vendor/github.com/miekg/dns/privaterr.go | 132 + vendor/github.com/miekg/dns/reverse.go | 52 + vendor/github.com/miekg/dns/sanitize.go | 86 + vendor/github.com/miekg/dns/scan.go | 1337 ++ vendor/github.com/miekg/dns/scan_rr.go | 1945 ++ vendor/github.com/miekg/dns/serve_mux.go | 147 + vendor/github.com/miekg/dns/server.go | 758 + vendor/github.com/miekg/dns/sig0.go | 209 + vendor/github.com/miekg/dns/singleinflight.go | 61 + vendor/github.com/miekg/dns/smimea.go | 44 + vendor/github.com/miekg/dns/tlsa.go | 44 + vendor/github.com/miekg/dns/tsig.go | 389 + vendor/github.com/miekg/dns/types.go | 1434 ++ vendor/github.com/miekg/dns/types_generate.go | 287 + vendor/github.com/miekg/dns/udp.go | 102 + vendor/github.com/miekg/dns/udp_windows.go | 35 + vendor/github.com/miekg/dns/update.go | 110 + vendor/github.com/miekg/dns/version.go | 15 + vendor/github.com/miekg/dns/xfr.go | 260 + vendor/github.com/miekg/dns/zduplicate.go | 1140 + vendor/github.com/miekg/dns/zmsg.go | 2722 +++ vendor/github.com/miekg/dns/ztypes.go | 881 + .../github.com/minio/blake2b-simd/.gitignore | 1 + .../github.com/minio/blake2b-simd/.travis.yml | 21 + vendor/github.com/minio/blake2b-simd/LICENSE | 202 + .../github.com/minio/blake2b-simd/README.md | 144 + .../minio/blake2b-simd/appveyor.yml | 32 + .../github.com/minio/blake2b-simd/blake2b.go | 301 + .../minio/blake2b-simd/compressAvx2_amd64.go | 47 + .../minio/blake2b-simd/compressAvx2_amd64.s | 671 + .../minio/blake2b-simd/compressAvx_amd64.go | 41 + .../minio/blake2b-simd/compressAvx_amd64.s | 682 + .../minio/blake2b-simd/compressSse_amd64.go | 41 + .../minio/blake2b-simd/compressSse_amd64.s | 770 + .../minio/blake2b-simd/compress_amd64.go | 30 + .../minio/blake2b-simd/compress_generic.go | 1419 ++ .../minio/blake2b-simd/compress_noasm.go | 23 + vendor/github.com/minio/blake2b-simd/cpuid.go | 60 + .../github.com/minio/blake2b-simd/cpuid_386.s | 33 + .../minio/blake2b-simd/cpuid_amd64.s | 34 + .../github.com/minio/sha256-simd/.gitignore | 1 + .../github.com/minio/sha256-simd/.travis.yml | 24 + vendor/github.com/minio/sha256-simd/LICENSE | 202 + vendor/github.com/minio/sha256-simd/README.md | 133 + .../github.com/minio/sha256-simd/appveyor.yml | 32 + vendor/github.com/minio/sha256-simd/cpuid.go | 119 + .../github.com/minio/sha256-simd/cpuid_386.go | 24 + .../github.com/minio/sha256-simd/cpuid_386.s | 53 + .../minio/sha256-simd/cpuid_amd64.go | 24 + .../minio/sha256-simd/cpuid_amd64.s | 53 + .../github.com/minio/sha256-simd/cpuid_arm.go | 32 + .../minio/sha256-simd/cpuid_linux_arm64.go | 49 + .../minio/sha256-simd/cpuid_other.go | 34 + .../minio/sha256-simd/cpuid_others_arm64.go | 35 + vendor/github.com/minio/sha256-simd/go.mod | 1 + vendor/github.com/minio/sha256-simd/sha256.go | 409 + .../sha256-simd/sha256blockAvx2_amd64.go | 22 + .../minio/sha256-simd/sha256blockAvx2_amd64.s | 1449 ++ .../sha256-simd/sha256blockAvx512_amd64.asm | 686 + .../sha256-simd/sha256blockAvx512_amd64.go | 500 + .../sha256-simd/sha256blockAvx512_amd64.s | 267 + .../minio/sha256-simd/sha256blockAvx_amd64.go | 22 + .../minio/sha256-simd/sha256blockAvx_amd64.s | 408 + .../minio/sha256-simd/sha256blockSha_amd64.go | 6 + .../minio/sha256-simd/sha256blockSha_amd64.s | 266 + .../sha256-simd/sha256blockSsse_amd64.go | 22 + .../minio/sha256-simd/sha256blockSsse_amd64.s | 429 + .../minio/sha256-simd/sha256block_386.go | 25 + .../minio/sha256-simd/sha256block_amd64.go | 53 + .../minio/sha256-simd/sha256block_arm.go | 25 + .../minio/sha256-simd/sha256block_arm64.go | 37 + .../minio/sha256-simd/sha256block_arm64.s | 192 + .../minio/sha256-simd/sha256block_other.go | 25 + vendor/github.com/mr-tron/base58/LICENSE | 23 + .../mr-tron/base58/base58/DEPRECATED.md | 4 + .../mr-tron/base58/base58/alphabet.go | 31 + .../mr-tron/base58/base58/base58.go | 255 + .../github.com/multiformats/go-base32/LICENSE | 27 + .../multiformats/go-base32/base32.go | 505 + .../github.com/multiformats/go-base32/go.mod | 1 + .../multiformats/go-base32/package.json | 15 + .../multiformats/go-multiaddr-dns/.gitignore | 1 + .../multiformats/go-multiaddr-dns/.travis.yml | 32 + .../multiformats/go-multiaddr-dns/LICENSE | 21 + .../multiformats/go-multiaddr-dns/README.md | 57 + .../multiformats/go-multiaddr-dns/dns.go | 69 + .../multiformats/go-multiaddr-dns/go.mod | 3 + .../multiformats/go-multiaddr-dns/go.sum | 18 + .../go-multiaddr-dns/package.json | 24 + .../multiformats/go-multiaddr-dns/resolve.go | 181 + .../multiformats/go-multiaddr-net/.gitignore | 2 + .../multiformats/go-multiaddr-net/.travis.yml | 32 + .../multiformats/go-multiaddr-net/LICENSE | 21 + .../multiformats/go-multiaddr-net/Makefile | 9 + .../multiformats/go-multiaddr-net/README.md | 67 + .../multiformats/go-multiaddr-net/convert.go | 269 + .../multiformats/go-multiaddr-net/doc.go | 5 + .../multiformats/go-multiaddr-net/go.mod | 6 + .../multiformats/go-multiaddr-net/go.sum | 20 + .../multiformats/go-multiaddr-net/ip.go | 118 + .../multiformats/go-multiaddr-net/net.go | 427 + .../go-multiaddr-net/package.json | 30 + .../multiformats/go-multiaddr-net/private.go | 116 + .../multiformats/go-multiaddr-net/registry.go | 133 + .../multiformats/go-multiaddr/.gitignore | 1 + .../multiformats/go-multiaddr/.travis.yml | 32 + .../multiformats/go-multiaddr/LICENSE | 21 + .../multiformats/go-multiaddr/Makefile | 14 + .../multiformats/go-multiaddr/README.md | 117 + .../multiformats/go-multiaddr/codec.go | 193 + .../multiformats/go-multiaddr/component.go | 181 + .../multiformats/go-multiaddr/doc.go | 36 + .../multiformats/go-multiaddr/go.mod | 3 + .../multiformats/go-multiaddr/go.sum | 18 + .../multiformats/go-multiaddr/interface.go | 62 + .../multiformats/go-multiaddr/multiaddr.go | 182 + .../multiformats/go-multiaddr/package.json | 23 + .../multiformats/go-multiaddr/protocol.go | 129 + .../multiformats/go-multiaddr/protocols.go | 180 + .../multiformats/go-multiaddr/transcoders.go | 280 + .../multiformats/go-multiaddr/util.go | 180 + .../multiformats/go-multiaddr/varint.go | 44 + .../multiformats/go-multibase/.codecov.yml | 1 + .../multiformats/go-multibase/.gitignore | 3 + .../multiformats/go-multibase/.gitmodules | 3 + .../multiformats/go-multibase/.gxignore | 2 + .../multiformats/go-multibase/.travis.yml | 32 + .../multiformats/go-multibase/LICENSE | 21 + .../multiformats/go-multibase/Makefile | 13 + .../multiformats/go-multibase/README.md | 49 + .../multiformats/go-multibase/base16.go | 21 + .../multiformats/go-multibase/base2.go | 52 + .../multiformats/go-multibase/base32.go | 17 + .../multiformats/go-multibase/encoder.go | 63 + .../multiformats/go-multibase/go.mod | 6 + .../multiformats/go-multibase/go.sum | 4 + .../multiformats/go-multibase/multibase.go | 187 + .../multiformats/go-multibase/package.json | 30 + .../multiformats/go-multicodec/.travis.yml | 17 + .../multiformats/go-multicodec/LICENSE | 21 + .../multiformats/go-multicodec/Makefile | 11 + .../multiformats/go-multicodec/README.md | 84 + .../go-multicodec/base/b64/codec.go | 64 + .../go-multicodec/base/bin/codec.go | 64 + .../multiformats/go-multicodec/base/errors.go | 7 + .../go-multicodec/base/hex/codec.go | 69 + .../go-multicodec/base/mux/mux.go | 20 + .../multiformats/go-multicodec/cbor/cbor.go | 85 + .../multiformats/go-multicodec/coding.go | 55 + .../multiformats/go-multicodec/header.go | 140 + .../multiformats/go-multicodec/json/json.go | 145 + .../multiformats/go-multicodec/multicodec.go | 70 + .../multiformats/go-multicodec/mux/all.go | 15 + .../multiformats/go-multicodec/mux/mux.go | 120 + .../multiformats/go-multicodec/package.json | 42 + .../multiformats/go-multihash/.gitignore | 1 + .../multiformats/go-multihash/.travis.yml | 32 + .../multiformats/go-multihash/LICENSE | 21 + .../multiformats/go-multihash/Makefile | 11 + .../multiformats/go-multihash/README.md | 90 + .../multiformats/go-multihash/codecov.yml | 3 + .../multiformats/go-multihash/go.mod | 11 + .../multiformats/go-multihash/go.sum | 14 + .../multiformats/go-multihash/io.go | 103 + .../multiformats/go-multihash/multihash.go | 298 + .../go-multihash/multihash/LICENSE | 21 + .../multiformats/go-multihash/package.json | 54 + .../multiformats/go-multihash/sum.go | 246 + .../multiformats/go-multistream/.travis.yml | 32 + .../multiformats/go-multistream/LICENSE | 21 + .../multiformats/go-multistream/Makefile | 13 + .../multiformats/go-multistream/README.md | 153 + .../multiformats/go-multistream/client.go | 87 + .../multiformats/go-multistream/go.mod | 1 + .../multiformats/go-multistream/lazyClient.go | 142 + .../multiformats/go-multistream/lazyServer.go | 37 + .../go-multistream/multistream.go | 440 + .../multiformats/go-multistream/package.json | 16 + .../opentracing/opentracing-go/.gitignore | 1 + .../opentracing/opentracing-go/.travis.yml | 20 + .../opentracing/opentracing-go/CHANGELOG.md | 46 + .../opentracing/opentracing-go/LICENSE | 201 + .../opentracing/opentracing-go/Makefile | 20 + .../opentracing/opentracing-go/README.md | 171 + .../opentracing/opentracing-go/ext/tags.go | 210 + .../opentracing-go/globaltracer.go | 42 + .../opentracing/opentracing-go/gocontext.go | 60 + .../opentracing/opentracing-go/log/field.go | 269 + .../opentracing/opentracing-go/log/util.go | 54 + .../opentracing/opentracing-go/noop.go | 64 + .../opentracing/opentracing-go/propagation.go | 176 + .../opentracing/opentracing-go/span.go | 189 + .../opentracing/opentracing-go/tracer.go | 304 + vendor/github.com/polydawn/refmt/.gitignore | 2 + vendor/github.com/polydawn/refmt/.gitmodules | 18 + vendor/github.com/polydawn/refmt/.gopath/self | 1 + .../.gopath/src/github.com/polydawn/refmt | 1 + vendor/github.com/polydawn/refmt/.travis.yml | 15 + vendor/github.com/polydawn/refmt/LICENSE | 21 + vendor/github.com/polydawn/refmt/README.md | 78 + vendor/github.com/polydawn/refmt/allochound | 53 + .../polydawn/refmt/cbor/cborCommon.go | 44 + .../polydawn/refmt/cbor/cborDecoder.go | 282 + .../refmt/cbor/cborDecoderTerminals.go | 235 + .../polydawn/refmt/cbor/cborEncoder.go | 276 + .../refmt/cbor/cborEncoderTerminals.go | 77 + .../polydawn/refmt/cbor/cborHelpers.go | 106 + .../polydawn/refmt/cbor/cborOptions.go | 20 + vendor/github.com/polydawn/refmt/cbor/doc.go | 27 + .../polydawn/refmt/cbor/encodeWriter.go | 107 + .../github.com/polydawn/refmt/cbor/errors.go | 22 + .../github.com/polydawn/refmt/cloneHelpers.go | 50 + vendor/github.com/polydawn/refmt/cover | 22 + vendor/github.com/polydawn/refmt/doc.go | 12 + vendor/github.com/polydawn/refmt/goad | 142 + vendor/github.com/polydawn/refmt/json/doc.go | 20 + .../polydawn/refmt/json/jsonCommon.go | 19 + .../polydawn/refmt/json/jsonDecoder.go | 207 + .../refmt/json/jsonDecoderTerminals.go | 368 + .../polydawn/refmt/json/jsonEncoder.go | 218 + .../refmt/json/jsonEncoderTerminals.go | 78 + .../polydawn/refmt/json/jsonHelpers.go | 106 + .../polydawn/refmt/json/jsonOptions.go | 23 + .../polydawn/refmt/marshalHelpers.go | 61 + .../polydawn/refmt/obj/atlas/atlas.go | 79 + .../polydawn/refmt/obj/atlas/atlasCommon.go | 10 + .../polydawn/refmt/obj/atlas/atlasEntry.go | 150 + .../polydawn/refmt/obj/atlas/doc.go | 45 + .../polydawn/refmt/obj/atlas/errors.go | 14 + .../polydawn/refmt/obj/atlas/mapMorphism.go | 38 + .../polydawn/refmt/obj/atlas/structMap.go | 46 + .../refmt/obj/atlas/structMapAutogen.go | 320 + .../refmt/obj/atlas/structMapBuilding.go | 96 + .../refmt/obj/atlas/transformBuilding.go | 30 + .../refmt/obj/atlas/transformFuncs.go | 68 + .../polydawn/refmt/obj/atlas/unionMorphism.go | 45 + .../github.com/polydawn/refmt/obj/builtins.go | 24 + vendor/github.com/polydawn/refmt/obj/doc.go | 6 + vendor/github.com/polydawn/refmt/obj/empty.go | 31 + .../github.com/polydawn/refmt/obj/errors.go | 82 + .../github.com/polydawn/refmt/obj/marshal.go | 110 + .../polydawn/refmt/obj/marshalBuiltins.go | 92 + .../polydawn/refmt/obj/marshalMapWildcard.go | 148 + .../polydawn/refmt/obj/marshalSlab.go | 219 + .../refmt/obj/marshalSliceWildcard.go | 63 + .../polydawn/refmt/obj/marshalStruct.go | 108 + .../polydawn/refmt/obj/marshalTransform.go | 35 + .../polydawn/refmt/obj/marshalUnionKeyed.go | 71 + .../polydawn/refmt/obj/marshalWildcard.go | 37 + .../polydawn/refmt/obj/unmarshal.go | 108 + .../refmt/obj/unmarshalArrayWildcard.go | 80 + .../polydawn/refmt/obj/unmarshalBuiltins.go | 176 + .../refmt/obj/unmarshalMapWildcard.go | 129 + .../polydawn/refmt/obj/unmarshalSlab.go | 187 + .../refmt/obj/unmarshalSliceWildcard.go | 81 + .../polydawn/refmt/obj/unmarshalStruct.go | 109 + .../polydawn/refmt/obj/unmarshalTransform.go | 38 + .../polydawn/refmt/obj/unmarshalUnionKeyed.go | 90 + .../polydawn/refmt/obj/unmarshalWildcard.go | 112 + .../polydawn/refmt/pretty/prettyCommon.go | 49 + .../polydawn/refmt/pretty/prettyEncoder.go | 243 + .../refmt/pretty/prettyEncoderTerminals.go | 82 + .../github.com/polydawn/refmt/raceway.formula | 20 + .../github.com/polydawn/refmt/shared/pump.go | 46 + .../polydawn/refmt/shared/reader.go | 301 + vendor/github.com/polydawn/refmt/tok/token.go | 192 + .../polydawn/refmt/unmarshalHelpers.go | 61 + vendor/github.com/prometheus/tsdb/.gitignore | 1 - vendor/github.com/prometheus/tsdb/.travis.yml | 20 - .../github.com/prometheus/tsdb/CHANGELOG.md | 60 - .../github.com/prometheus/tsdb/MAINTAINERS.md | 4 - vendor/github.com/prometheus/tsdb/Makefile | 33 - .../prometheus/tsdb/Makefile.common | 240 - vendor/github.com/prometheus/tsdb/README.md | 15 - vendor/github.com/prometheus/tsdb/block.go | 646 - .../github.com/prometheus/tsdb/block_test.go | 254 - .../github.com/prometheus/tsdb/checkpoint.go | 261 - .../prometheus/tsdb/checkpoint_test.go | 220 - .../prometheus/tsdb/chunkenc/bstream.go | 200 - .../prometheus/tsdb/chunkenc/chunk.go | 121 - .../prometheus/tsdb/chunkenc/chunk_test.go | 201 - .../prometheus/tsdb/chunkenc/xor.go | 386 - .../prometheus/tsdb/chunks/chunks.go | 511 - .../prometheus/tsdb/chunks/chunks_test.go | 28 - .../prometheus/tsdb/cmd/tsdb/.gitignore | 3 - .../prometheus/tsdb/cmd/tsdb/README.md | 3 - .../prometheus/tsdb/cmd/tsdb/main.go | 578 - vendor/github.com/prometheus/tsdb/compact.go | 1036 - .../prometheus/tsdb/compact_test.go | 1060 - vendor/github.com/prometheus/tsdb/db.go | 1118 - vendor/github.com/prometheus/tsdb/db_test.go | 2170 -- .../prometheus/tsdb/docs/format/README.md | 6 - .../prometheus/tsdb/docs/format/chunks.md | 31 - .../prometheus/tsdb/docs/format/index.md | 227 - .../prometheus/tsdb/docs/format/tombstones.md | 31 - .../prometheus/tsdb/docs/format/wal.md | 88 - .../prometheus/tsdb/encoding/encoding.go | 244 - .../prometheus/tsdb/errors/errors.go | 62 - .../prometheus/tsdb/fileutil/flock_test.go | 80 - vendor/github.com/prometheus/tsdb/go.mod | 28 - vendor/github.com/prometheus/tsdb/go.sum | 52 - .../tsdb/goversion/goversio_test.go | 27 - .../prometheus/tsdb/goversion/goversion.go | 19 - .../prometheus/tsdb/goversion/init.go | 17 - vendor/github.com/prometheus/tsdb/head.go | 1762 -- .../prometheus/tsdb/head_bench_test.go | 118 - .../github.com/prometheus/tsdb/head_test.go | 1079 - .../github.com/prometheus/tsdb/index/index.go | 1101 - .../prometheus/tsdb/index/index_test.go | 429 - .../prometheus/tsdb/index/postings.go | 703 - .../prometheus/tsdb/index/postings_test.go | 760 - .../prometheus/tsdb/labels/labels.go | 214 - .../prometheus/tsdb/labels/labels_test.go | 199 - .../prometheus/tsdb/labels/selector.go | 108 - .../github.com/prometheus/tsdb/mocks_test.go | 77 - vendor/github.com/prometheus/tsdb/querier.go | 1133 - .../prometheus/tsdb/querier_test.go | 1901 -- vendor/github.com/prometheus/tsdb/record.go | 208 - .../github.com/prometheus/tsdb/record_test.go | 118 - vendor/github.com/prometheus/tsdb/repair.go | 112 - .../github.com/prometheus/tsdb/repair_test.go | 127 - .../prometheus/tsdb/test/conv_test.go | 58 - .../prometheus/tsdb/test/hash_test.go | 124 - .../prometheus/tsdb/test/labels_test.go | 216 - .../prometheus/tsdb/testdata/20kseries.json | 20000 ---------------- .../01BZJ9WJQPWHGNC2W4J9TA62KC/index | Bin 162 -> 0 bytes .../01BZJ9WJQPWHGNC2W4J9TA62KC/meta.json | 17 - .../prometheus/tsdb/testutil/directory.go | 129 - .../prometheus/tsdb/testutil/logging.go | 35 - .../prometheus/tsdb/testutil/testutil.go | 87 - .../github.com/prometheus/tsdb/tombstones.go | 306 - .../prometheus/tsdb/tombstones_test.go | 147 - .../prometheus/tsdb/tsdbutil/buffer.go | 236 - .../prometheus/tsdb/tsdbutil/buffer_test.go | 173 - .../prometheus/tsdb/tsdbutil/chunks.go | 53 - vendor/github.com/prometheus/tsdb/wal.go | 1306 - .../prometheus/tsdb/wal/live_reader.go | 284 - .../github.com/prometheus/tsdb/wal/reader.go | 183 - .../prometheus/tsdb/wal/reader_test.go | 543 - vendor/github.com/prometheus/tsdb/wal/wal.go | 764 - .../prometheus/tsdb/wal/wal_test.go | 360 - vendor/github.com/prometheus/tsdb/wal_test.go | 566 - .../github.com/spaolacci/murmur3/.gitignore | 22 + .../github.com/spaolacci/murmur3/.travis.yml | 7 + vendor/github.com/spaolacci/murmur3/LICENSE | 24 + vendor/github.com/spaolacci/murmur3/README.md | 86 + vendor/github.com/spaolacci/murmur3/murmur.go | 64 + .../github.com/spaolacci/murmur3/murmur128.go | 203 + .../github.com/spaolacci/murmur3/murmur32.go | 167 + .../github.com/spaolacci/murmur3/murmur64.go | 57 + .../status-im/keycard-go/.gitignore | 3 - .../github.com/status-im/keycard-go/Makefile | 7 - .../github.com/status-im/keycard-go/README.md | 29 - .../keycard-go/_assets/ci/Jenkinsfile | 40 - .../status-im/keycard-go/apdu/command.go | 78 - .../status-im/keycard-go/apdu/command_test.go | 29 - .../status-im/keycard-go/apdu/response.go | 79 - .../keycard-go/apdu/response_test.go | 34 - .../status-im/keycard-go/apdu/utils.go | 117 - .../status-im/keycard-go/apdu/utils_test.go | 111 - .../status-im/keycard-go/command_set.go | 305 - .../status-im/keycard-go/commands.go | 248 - .../status-im/keycard-go/crypto/crypto.go | 146 - .../keycard-go/crypto/crypto_test.go | 86 - .../keycard-go/derivationpath/decoder_test.go | 86 - .../keycard-go/derivationpath/encoder_test.go | 35 - .../keycard-go/globalplatform/command_set.go | 240 - .../keycard-go/globalplatform/commands.go | 201 - .../globalplatform/commands_test.go | 108 - .../globalplatform/crypto/crypto.go | 138 - .../globalplatform/crypto/crypto_test.go | 73 - .../globalplatform/globalplatform.go | 5 - .../keycard-go/globalplatform/load.go | 164 - .../keycard-go/globalplatform/scp02_keys.go | 25 - .../globalplatform/scp02_wrapper.go | 86 - .../globalplatform/scp02_wrapper_test.go | 43 - .../globalplatform/secure_channel.go | 39 - .../keycard-go/globalplatform/session.go | 87 - .../keycard-go/globalplatform/session_test.go | 43 - .../status-im/keycard-go/hexutils/hexutils.go | 31 - .../keycard-go/identifiers/identifiers.go | 25 - .../status-im/keycard-go/io/normal_channel.go | 54 - .../status-im/keycard-go/keycard.go | 5 - .../status-im/keycard-go/secrets.go | 94 - .../status-im/keycard-go/secure_channel.go | 133 - .../keycard-go/secure_channel_test.go | 41 - .../keycard-go/types/application_info.go | 126 - .../keycard-go/types/application_status.go | 58 - .../status-im/keycard-go/types/signature.go | 86 - .../status-im/keycard-go/types/types.go | 13 - .../tyler-smith/go-bip39/bip39_test.go | 405 - .../vulcanize/eth-block-extractor/.gitignore | 6 - .../vulcanize/eth-block-extractor/.travis.yml | 13 - .../vulcanize/eth-block-extractor/Makefile | 63 - .../vulcanize/eth-block-extractor/README.md | 77 - .../cmd/createIpldForBlockHeader.go | 72 - .../cmd/createIpldsForBlockHeaders.go | 73 - .../cmd/createIpldsForBlockReceipts.go | 67 - .../cmd/createIpldsForBlockTransactions.go | 69 - .../cmd/createIpldsForBlocksReceipts.go | 69 - .../cmd/createIpldsForBlocksTransactions.go | 70 - .../cmd/createIpldsForStateTrie.go | 85 - .../vulcanize/eth-block-extractor/cmd/root.go | 102 - .../environments/public.toml.example | 9 - .../vulcanize/eth-block-extractor/main.go | 7 - .../eth-block-extractor/package.json | 36 - .../eth-block-extractor/pkg/db/config.go | 19 - .../eth-block-extractor/pkg/db/database.go | 75 - .../pkg/db/level/database.go | 59 - .../pkg/db/level/database_test.go | 168 - .../pkg/db/level/level_suite_test.go | 13 - .../pkg/db/level/state_computer.go | 50 - .../pkg/db/level/state_computer_test.go | 176 - .../pkg/db/level/state_trie_reader.go | 59 - .../pkg/db/level/state_trie_reader_test.go | 66 - .../pkg/db/level/storage_trie_reader.go | 63 - .../pkg/db/level/storage_trie_reader_test.go | 71 - .../eth-block-extractor/pkg/ipfs/adder.go | 2 +- .../pkg/ipfs/eth_block_header/dag_putter.go | 2 +- .../ipfs/eth_block_header/dag_putter_test.go | 64 - .../eth_block_header_suite_test.go | 13 - .../pkg/ipfs/eth_block_header/node.go | 8 +- .../pkg/ipfs/eth_block_receipts/dag_putter.go | 2 +- .../eth_block_receipts/dag_putter_test.go | 42 - .../eth_block_receipts_suite_test.go | 13 - .../pkg/ipfs/eth_block_receipts/node.go | 8 +- .../eth_block_transactions/dag_putter_test.go | 40 - .../eth_block_transactions_suite_test.go | 13 - .../pkg/ipfs/eth_block_transactions/node.go | 8 +- .../ipfs/eth_state_trie/dag_putter_test.go | 33 - .../eth_state_trie_suite_test.go | 13 - .../pkg/ipfs/eth_state_trie/node.go | 8 +- .../ipfs/eth_storage_trie/dag_putter_test.go | 32 - .../eth_storage_trie_suite_test.go | 13 - .../pkg/ipfs/eth_storage_trie/node.go | 8 +- .../pkg/ipfs/ipfs_suite_test.go | 13 - .../eth-block-extractor/pkg/ipfs/node.go | 2 +- .../pkg/ipfs/publisher_test.go | 34 - .../eth-block-extractor/pkg/ipfs/util/cid.go | 8 +- .../transformers/compute_eth_state_trie.go | 95 - .../compute_eth_state_trie_test.go | 177 - .../pkg/transformers/errors.go | 26 - .../pkg/transformers/eth_block_header.go | 32 - .../pkg/transformers/eth_block_header_test.go | 110 - .../pkg/transformers/eth_block_receipts.go | 34 - .../transformers/eth_block_receipts_test.go | 71 - .../transformers/eth_block_transactions.go | 31 - .../eth_block_transactions_test.go | 109 - .../pkg/transformers/eth_state_trie.go | 82 - .../pkg/transformers/eth_state_trie_test.go | 99 - .../transformers/transformers_suite_test.go | 13 - .../pkg/wrappers/core/block_validator.go | 24 - .../pkg/wrappers/core/blockchain.go | 40 - .../wrappers/core/rawdb/accessors_chain.go | 50 - .../pkg/wrappers/core/state/database.go | 41 - .../pkg/wrappers/core/state/statedb.go | 23 - .../wrappers/core/state/statedb_factory.go | 25 - .../pkg/wrappers/core/state/trie.go | 23 - .../pkg/wrappers/core/state_processor.go | 27 - .../pkg/wrappers/trie/database.go | 22 - .../pkg/wrappers/trie/iterator.go | 37 - .../eth-block-extractor/test_helpers/fakes.go | 14 - .../test_helpers/mocks/db/database.go | 165 - .../mocks/db/level/state_computer.go | 42 - .../mocks/db/level/state_trie_reader.go | 23 - .../mocks/db/level/storage_trie_reader.go | 25 - .../test_helpers/mocks/ipfs/adder.go | 38 - .../test_helpers/mocks/ipfs/dag_putter.go | 25 - .../test_helpers/mocks/ipfs/publisher.go | 74 - .../mocks/wrappers/core/block_validator.go | 48 - .../mocks/wrappers/core/blockchain.go | 35 - .../wrappers/core/rawdb/accessors_chain.go | 139 - .../mocks/wrappers/core/state/database.go | 105 - .../mocks/wrappers/core/state/statedb.go | 43 - .../wrappers/core/state/statedb_factory.go | 43 - .../mocks/wrappers/core/state/trie.go | 21 - .../mocks/wrappers/core/state_processor.go | 48 - .../test_helpers/mocks/wrappers/rlp/decode.go | 47 - .../mocks/wrappers/trie/iterator.go | 51 - .../github.com/whyrusleeping/base32/base32.go | 505 + .../whyrusleeping/base32/package.json | 15 + vendor/github.com/whyrusleeping/cbor/LICENSE | 13 + .../github.com/whyrusleeping/cbor/go/Makefile | 12 + .../github.com/whyrusleeping/cbor/go/cbor.go | 1625 ++ .../github.com/whyrusleeping/cbor/go/doc.go | 24 + .../whyrusleeping/chunker/.travis.yml | 9 + .../github.com/whyrusleeping/chunker/LICENSE | 23 + .../whyrusleeping/chunker/README.md | 7 + .../whyrusleeping/chunker/chunker.go | 384 + .../github.com/whyrusleeping/chunker/doc.go | 82 + .../whyrusleeping/chunker/package.json | 16 + .../whyrusleeping/chunker/polynomials.go | 278 + .../whyrusleeping/go-keyspace/.gxlastpubver | 1 + .../whyrusleeping/go-keyspace/LICENSE | 21 + .../whyrusleeping/go-keyspace/README.md | 6 + .../whyrusleeping/go-keyspace/keyspace.go | 97 + .../whyrusleeping/go-keyspace/package.json | 9 + .../whyrusleeping/go-keyspace/xor.go | 74 + .../whyrusleeping/go-logging/.travis.yml | 6 + .../whyrusleeping/go-logging/CONTRIBUTORS | 5 + .../whyrusleeping/go-logging/LICENSE | 27 + .../whyrusleeping/go-logging/README.md | 89 + .../whyrusleeping/go-logging/backend.go | 39 + .../whyrusleeping/go-logging/format.go | 368 + .../whyrusleeping/go-logging/level.go | 129 + .../whyrusleeping/go-logging/log.go | 80 + .../whyrusleeping/go-logging/logger.go | 279 + .../whyrusleeping/go-logging/memory.go | 217 + .../whyrusleeping/go-logging/multi.go | 65 + .../whyrusleeping/go-logging/syslog.go | 52 + .../whyrusleeping/go-notifier/LICENSE | 21 + .../whyrusleeping/go-notifier/notifier.go | 146 + .../whyrusleeping/go-notifier/package.json | 24 + .../go-smux-multiplex/.gitignore | 1 + .../whyrusleeping/go-smux-multiplex/LICENSE | 21 + .../whyrusleeping/go-smux-multiplex/Makefile | 19 + .../whyrusleeping/go-smux-multiplex/README.md | 13 + .../go-smux-multiplex/multiplex.go | 41 + .../go-smux-multiplex/package.json | 30 + .../go-smux-multistream/.gitignore | 1 + .../whyrusleeping/go-smux-multistream/LICENSE | 21 + .../go-smux-multistream/Makefile | 19 + .../go-smux-multistream/README.md | 13 + .../go-smux-multistream/multistream.go | 74 + .../go-smux-multistream/package.json | 30 + .../whyrusleeping/go-smux-yamux/.gitignore | 1 + .../whyrusleeping/go-smux-yamux/LICENSE | 21 + .../whyrusleeping/go-smux-yamux/Makefile | 19 + .../whyrusleeping/go-smux-yamux/README.md | 13 + .../whyrusleeping/go-smux-yamux/package.json | 30 + .../whyrusleeping/go-smux-yamux/yamux.go | 75 + vendor/github.com/whyrusleeping/mafmt/LICENSE | 21 + .../github.com/whyrusleeping/mafmt/README.md | 34 + .../whyrusleeping/mafmt/package.json | 24 + .../whyrusleeping/mafmt/patterns.go | 133 + .../github.com/whyrusleeping/mdns/.gitignore | 23 + vendor/github.com/whyrusleeping/mdns/LICENSE | 20 + .../github.com/whyrusleeping/mdns/README.md | 37 + .../github.com/whyrusleeping/mdns/client.go | 369 + vendor/github.com/whyrusleeping/mdns/log.go | 13 + .../whyrusleeping/mdns/package.json | 26 + .../github.com/whyrusleeping/mdns/server.go | 291 + vendor/github.com/whyrusleeping/mdns/zone.go | 307 + .../multiaddr-filter/.gxlastpubver | 1 + .../whyrusleeping/multiaddr-filter/LICENSE | 21 + .../whyrusleeping/multiaddr-filter/README.md | 15 + .../whyrusleeping/multiaddr-filter/mask.go | 47 + .../multiaddr-filter/package.json | 12 + .../whyrusleeping/timecache/LICENSE | 21 + .../whyrusleeping/timecache/README.md | 8 + .../whyrusleeping/timecache/package.json | 14 + .../whyrusleeping/timecache/timecache.go | 60 + .../github.com/whyrusleeping/yamux/.gitignore | 23 + vendor/github.com/whyrusleeping/yamux/LICENSE | 362 + .../github.com/whyrusleeping/yamux/README.md | 86 + vendor/github.com/whyrusleeping/yamux/addr.go | 60 + .../github.com/whyrusleeping/yamux/const.go | 165 + vendor/github.com/whyrusleeping/yamux/mux.go | 93 + .../whyrusleeping/yamux/package.json | 24 + .../github.com/whyrusleeping/yamux/session.go | 734 + vendor/github.com/whyrusleeping/yamux/spec.md | 140 + .../github.com/whyrusleeping/yamux/stream.go | 492 + vendor/github.com/whyrusleeping/yamux/util.go | 43 + vendor/github.com/wsddn/go-ecdh/ecdh_test.go | 104 - vendor/go.opencensus.io/AUTHORS | 1 + vendor/go.opencensus.io/LICENSE | 202 + .../internal/tagencoding/tagencoding.go | 75 + .../go.opencensus.io/metric/metricdata/doc.go | 19 + .../metric/metricdata/exemplar.go | 38 + .../metric/metricdata/label.go | 35 + .../metric/metricdata/metric.go | 46 + .../metric/metricdata/point.go | 193 + .../metric/metricdata/type_string.go | 16 + .../metric/metricdata/unit.go | 27 + .../metric/metricproducer/manager.go | 78 + .../metric/metricproducer/producer.go | 28 + vendor/go.opencensus.io/resource/resource.go | 164 + vendor/go.opencensus.io/stats/doc.go | 69 + .../go.opencensus.io/stats/internal/record.go | 25 + vendor/go.opencensus.io/stats/measure.go | 109 + .../go.opencensus.io/stats/measure_float64.go | 55 + .../go.opencensus.io/stats/measure_int64.go | 55 + vendor/go.opencensus.io/stats/record.go | 117 + vendor/go.opencensus.io/stats/units.go | 25 + .../stats/view/aggregation.go | 120 + .../stats/view/aggregation_data.go | 293 + .../go.opencensus.io/stats/view/collector.go | 86 + vendor/go.opencensus.io/stats/view/doc.go | 47 + vendor/go.opencensus.io/stats/view/export.go | 58 + vendor/go.opencensus.io/stats/view/view.go | 221 + .../stats/view/view_to_metric.go | 140 + vendor/go.opencensus.io/stats/view/worker.go | 281 + .../stats/view/worker_commands.go | 186 + vendor/go.opencensus.io/tag/context.go | 43 + vendor/go.opencensus.io/tag/doc.go | 26 + vendor/go.opencensus.io/tag/key.go | 35 + vendor/go.opencensus.io/tag/map.go | 229 + vendor/go.opencensus.io/tag/map_codec.go | 239 + vendor/go.opencensus.io/tag/metadata.go | 52 + vendor/go.opencensus.io/tag/profile_19.go | 31 + vendor/go.opencensus.io/tag/profile_not19.go | 23 + vendor/go.opencensus.io/tag/validate.go | 56 + vendor/go4.org/AUTHORS | 8 + vendor/go4.org/LICENSE | 202 + vendor/go4.org/lock/.gitignore | 1 + vendor/go4.org/lock/lock.go | 186 + vendor/go4.org/lock/lock_appengine.go | 32 + vendor/go4.org/lock/lock_plan9.go | 41 + vendor/go4.org/lock/lock_sigzero.go | 26 + vendor/go4.org/lock/lock_unix.go | 58 + vendor/go4.org/lock/lock_windows.go | 78 + vendor/golang.org/x/sys/cpu/byteorder.go | 30 + vendor/golang.org/x/sys/cpu/cpu.go | 126 + vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go | 30 + vendor/golang.org/x/sys/cpu/cpu_arm.go | 9 + vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go | 21 + .../golang.org/x/sys/cpu/cpu_gccgo_s390x.go | 22 + vendor/golang.org/x/sys/cpu/cpu_linux.go | 59 + .../golang.org/x/sys/cpu/cpu_linux_arm64.go | 67 + .../golang.org/x/sys/cpu/cpu_linux_ppc64x.go | 33 + .../golang.org/x/sys/cpu/cpu_linux_s390x.go | 161 + vendor/golang.org/x/sys/cpu/cpu_mips64x.go | 11 + vendor/golang.org/x/sys/cpu/cpu_mipsx.go | 11 + .../golang.org/x/sys/cpu/cpu_other_arm64.go | 11 + vendor/golang.org/x/sys/cpu/cpu_s390x.s | 57 + vendor/golang.org/x/sys/cpu/cpu_wasm.go | 15 + vendor/golang.org/x/sys/cpu/cpu_x86.go | 59 + vendor/golang.org/x/sys/unix/README.md | 173 + vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 17 + .../golang.org/x/sys/unix/asm_freebsd_arm64.s | 29 + .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 44 + .../golang.org/x/sys/unix/asm_netbsd_arm64.s | 29 + vendor/golang.org/x/sys/unix/fcntl.go | 32 + vendor/golang.org/x/sys/unix/fcntl_darwin.go | 18 + vendor/golang.org/x/sys/unix/mkall.sh | 212 + vendor/golang.org/x/sys/unix/mkasm_darwin.go | 61 + vendor/golang.org/x/sys/unix/mkerrors.sh | 659 + vendor/golang.org/x/sys/unix/mkpost.go | 106 + vendor/golang.org/x/sys/unix/mksyscall.go | 407 + .../x/sys/unix/mksyscall_aix_ppc.go | 415 + .../x/sys/unix/mksyscall_aix_ppc64.go | 614 + .../x/sys/unix/mksyscall_solaris.go | 335 + .../golang.org/x/sys/unix/mksysctl_openbsd.pl | 265 + vendor/golang.org/x/sys/unix/mksysnum.go | 190 + .../golang.org/x/sys/unix/openbsd_pledge.go | 166 + .../golang.org/x/sys/unix/openbsd_unveil.go | 44 + vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 120 + vendor/golang.org/x/sys/unix/syscall_aix.go | 557 + .../golang.org/x/sys/unix/syscall_darwin.go | 706 + .../x/sys/unix/syscall_darwin_386.go | 63 + .../x/sys/unix/syscall_darwin_amd64.go | 63 + .../x/sys/unix/syscall_darwin_arm.go | 64 + .../x/sys/unix/syscall_darwin_arm64.go | 66 + .../x/sys/unix/syscall_darwin_libSystem.go | 31 + .../x/sys/unix/syscall_dragonfly.go | 539 + .../golang.org/x/sys/unix/syscall_freebsd.go | 824 + .../x/sys/unix/syscall_freebsd_arm64.go | 52 + vendor/golang.org/x/sys/unix/syscall_linux.go | 1784 ++ .../x/sys/unix/syscall_linux_386.go | 386 + .../x/sys/unix/syscall_linux_amd64.go | 190 + .../x/sys/unix/syscall_linux_arm.go | 274 + .../x/sys/unix/syscall_linux_arm64.go | 223 + .../x/sys/unix/syscall_linux_mips64x.go | 222 + .../x/sys/unix/syscall_linux_mipsx.go | 234 + .../x/sys/unix/syscall_linux_ppc64x.go | 152 + .../x/sys/unix/syscall_linux_riscv64.go | 226 + .../x/sys/unix/syscall_linux_s390x.go | 338 + .../x/sys/unix/syscall_linux_sparc64.go | 147 + .../golang.org/x/sys/unix/syscall_netbsd.go | 622 + .../x/sys/unix/syscall_netbsd_arm64.go | 33 + .../golang.org/x/sys/unix/syscall_openbsd.go | 416 + .../x/sys/unix/syscall_openbsd_386.go | 37 + .../x/sys/unix/syscall_openbsd_arm.go | 37 + .../golang.org/x/sys/unix/syscall_solaris.go | 737 + vendor/golang.org/x/sys/unix/syscall_unix.go | 431 + .../golang.org/x/sys/unix/syscall_unix_gc.go | 15 + .../x/sys/unix/syscall_unix_gc_ppc64x.go | 24 + vendor/golang.org/x/sys/unix/types_aix.go | 236 + vendor/golang.org/x/sys/unix/types_darwin.go | 283 + .../golang.org/x/sys/unix/types_dragonfly.go | 263 + vendor/golang.org/x/sys/unix/types_freebsd.go | 356 + vendor/golang.org/x/sys/unix/types_netbsd.go | 289 + vendor/golang.org/x/sys/unix/types_openbsd.go | 282 + vendor/golang.org/x/sys/unix/types_solaris.go | 266 + vendor/golang.org/x/sys/unix/xattr_bsd.go | 240 + .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1374 ++ .../x/sys/unix/zerrors_aix_ppc64.go | 1375 ++ .../x/sys/unix/zerrors_dragonfly_amd64.go | 1650 ++ .../x/sys/unix/zerrors_freebsd_arm64.go | 1794 ++ .../x/sys/unix/zerrors_linux_386.go | 2835 +++ .../x/sys/unix/zerrors_linux_amd64.go | 2835 +++ .../x/sys/unix/zerrors_linux_arm.go | 2841 +++ .../x/sys/unix/zerrors_linux_arm64.go | 2826 +++ .../x/sys/unix/zerrors_linux_mips.go | 2842 +++ .../x/sys/unix/zerrors_linux_mips64.go | 2842 +++ .../x/sys/unix/zerrors_linux_mips64le.go | 2842 +++ .../x/sys/unix/zerrors_linux_mipsle.go | 2842 +++ .../x/sys/unix/zerrors_linux_ppc64.go | 2897 +++ .../x/sys/unix/zerrors_linux_ppc64le.go | 2897 +++ .../x/sys/unix/zerrors_linux_riscv64.go | 2822 +++ .../x/sys/unix/zerrors_linux_s390x.go | 2895 +++ .../x/sys/unix/zerrors_linux_sparc64.go | 2891 +++ .../x/sys/unix/zerrors_netbsd_386.go | 1772 ++ .../x/sys/unix/zerrors_netbsd_amd64.go | 1762 ++ .../x/sys/unix/zerrors_netbsd_arm.go | 1751 ++ .../x/sys/unix/zerrors_netbsd_arm64.go | 1762 ++ .../x/sys/unix/zerrors_openbsd_386.go | 1654 ++ .../x/sys/unix/zerrors_openbsd_amd64.go | 1765 ++ .../x/sys/unix/zerrors_openbsd_arm.go | 1656 ++ .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1484 ++ .../x/sys/unix/zsyscall_aix_ppc64.go | 1442 ++ .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1192 + .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1070 + .../x/sys/unix/zsyscall_darwin_386.1_11.go | 1810 ++ .../x/sys/unix/zsyscall_darwin_386.go | 2505 ++ .../x/sys/unix/zsyscall_darwin_386.s | 284 + .../x/sys/unix/zsyscall_darwin_amd64.1_11.go | 1810 ++ .../x/sys/unix/zsyscall_darwin_amd64.go | 2520 ++ .../x/sys/unix/zsyscall_darwin_amd64.s | 286 + .../x/sys/unix/zsyscall_darwin_arm.1_11.go | 1793 ++ .../x/sys/unix/zsyscall_darwin_arm.go | 2483 ++ .../x/sys/unix/zsyscall_darwin_arm.s | 282 + .../x/sys/unix/zsyscall_darwin_arm64.1_11.go | 1793 ++ .../x/sys/unix/zsyscall_darwin_arm64.go | 2483 ++ .../x/sys/unix/zsyscall_darwin_arm64.s | 282 + .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1659 ++ .../x/sys/unix/zsyscall_freebsd_386.go | 2015 ++ .../x/sys/unix/zsyscall_freebsd_amd64.go | 2015 ++ .../x/sys/unix/zsyscall_freebsd_arm.go | 2015 ++ .../x/sys/unix/zsyscall_freebsd_arm64.go | 2015 ++ .../x/sys/unix/zsyscall_linux_386.go | 2246 ++ .../x/sys/unix/zsyscall_linux_amd64.go | 2413 ++ .../x/sys/unix/zsyscall_linux_arm.go | 2368 ++ .../x/sys/unix/zsyscall_linux_arm64.go | 2270 ++ .../x/sys/unix/zsyscall_linux_mips.go | 2426 ++ .../x/sys/unix/zsyscall_linux_mips64.go | 2397 ++ .../x/sys/unix/zsyscall_linux_mips64le.go | 2397 ++ .../x/sys/unix/zsyscall_linux_mipsle.go | 2426 ++ .../x/sys/unix/zsyscall_linux_ppc64.go | 2475 ++ .../x/sys/unix/zsyscall_linux_ppc64le.go | 2475 ++ .../x/sys/unix/zsyscall_linux_riscv64.go | 2250 ++ .../x/sys/unix/zsyscall_linux_s390x.go | 2245 ++ .../x/sys/unix/zsyscall_linux_sparc64.go | 2408 ++ .../x/sys/unix/zsyscall_netbsd_386.go | 1826 ++ .../x/sys/unix/zsyscall_netbsd_amd64.go | 1826 ++ .../x/sys/unix/zsyscall_netbsd_arm.go | 1826 ++ .../x/sys/unix/zsyscall_netbsd_arm64.go | 1826 ++ .../x/sys/unix/zsyscall_openbsd_386.go | 1692 ++ .../x/sys/unix/zsyscall_openbsd_amd64.go | 1692 ++ .../x/sys/unix/zsyscall_openbsd_arm.go | 1692 ++ .../x/sys/unix/zsyscall_solaris_amd64.go | 1953 ++ .../x/sys/unix/zsysctl_openbsd_amd64.go | 270 + .../x/sys/unix/zsysnum_darwin_386.go | 436 + .../x/sys/unix/zsysnum_darwin_amd64.go | 438 + .../x/sys/unix/zsysnum_darwin_arm.go | 436 + .../x/sys/unix/zsysnum_darwin_arm64.go | 436 + .../x/sys/unix/zsysnum_dragonfly_amd64.go | 315 + .../x/sys/unix/zsysnum_freebsd_386.go | 403 + .../x/sys/unix/zsysnum_freebsd_amd64.go | 403 + .../x/sys/unix/zsysnum_freebsd_arm.go | 403 + .../x/sys/unix/zsysnum_freebsd_arm64.go | 395 + .../x/sys/unix/zsysnum_linux_386.go | 392 + .../x/sys/unix/zsysnum_linux_amd64.go | 344 + .../x/sys/unix/zsysnum_linux_arm.go | 364 + .../x/sys/unix/zsysnum_linux_arm64.go | 289 + .../x/sys/unix/zsysnum_linux_mips.go | 377 + .../x/sys/unix/zsysnum_linux_mips64.go | 337 + .../x/sys/unix/zsysnum_linux_mips64le.go | 337 + .../x/sys/unix/zsysnum_linux_mipsle.go | 377 + .../x/sys/unix/zsysnum_linux_ppc64.go | 375 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 375 + .../x/sys/unix/zsysnum_linux_riscv64.go | 288 + .../x/sys/unix/zsysnum_linux_s390x.go | 337 + .../x/sys/unix/zsysnum_linux_sparc64.go | 351 + .../x/sys/unix/zsysnum_netbsd_386.go | 274 + .../x/sys/unix/zsysnum_netbsd_amd64.go | 274 + .../x/sys/unix/zsysnum_netbsd_arm.go | 274 + .../x/sys/unix/zsysnum_netbsd_arm64.go | 274 + .../x/sys/unix/zsysnum_openbsd_386.go | 218 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 218 + .../x/sys/unix/zsysnum_openbsd_arm.go | 218 + .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 345 + .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 350 + .../x/sys/unix/ztypes_darwin_386.go | 499 + .../x/sys/unix/ztypes_darwin_amd64.go | 509 + .../x/sys/unix/ztypes_darwin_arm.go | 500 + .../x/sys/unix/ztypes_darwin_arm64.go | 509 + .../x/sys/unix/ztypes_dragonfly_amd64.go | 469 + .../x/sys/unix/ztypes_freebsd_386.go | 603 + .../x/sys/unix/ztypes_freebsd_amd64.go | 602 + .../x/sys/unix/ztypes_freebsd_arm.go | 602 + .../x/sys/unix/ztypes_freebsd_arm64.go | 602 + .../golang.org/x/sys/unix/ztypes_linux_386.go | 2135 ++ .../x/sys/unix/ztypes_linux_amd64.go | 2148 ++ .../golang.org/x/sys/unix/ztypes_linux_arm.go | 2126 ++ .../x/sys/unix/ztypes_linux_arm64.go | 2127 ++ .../x/sys/unix/ztypes_linux_mips.go | 2132 ++ .../x/sys/unix/ztypes_linux_mips64.go | 2129 ++ .../x/sys/unix/ztypes_linux_mips64le.go | 2129 ++ .../x/sys/unix/ztypes_linux_mipsle.go | 2132 ++ .../x/sys/unix/ztypes_linux_ppc64.go | 2137 ++ .../x/sys/unix/ztypes_linux_ppc64le.go | 2137 ++ .../x/sys/unix/ztypes_linux_riscv64.go | 2154 ++ .../x/sys/unix/ztypes_linux_s390x.go | 2151 ++ .../x/sys/unix/ztypes_linux_sparc64.go | 2132 ++ .../x/sys/unix/ztypes_netbsd_386.go | 465 + .../x/sys/unix/ztypes_netbsd_amd64.go | 472 + .../x/sys/unix/ztypes_netbsd_arm.go | 470 + .../x/sys/unix/ztypes_netbsd_arm64.go | 472 + .../x/sys/unix/ztypes_openbsd_386.go | 570 + .../x/sys/unix/ztypes_openbsd_amd64.go | 570 + .../x/sys/unix/ztypes_openbsd_arm.go | 571 + .../x/sys/unix/ztypes_solaris_amd64.go | 442 + .../x/sys/windows/asm_windows_arm.s | 11 + .../golang.org/x/sys/windows/dll_windows.go | 378 + vendor/golang.org/x/sys/windows/mkerrors.bash | 64 + vendor/golang.org/x/sys/windows/mkerrors.go | 7 + .../x/sys/windows/security_windows.go | 649 + vendor/golang.org/x/sys/windows/service.go | 181 + .../x/sys/windows/syscall_windows.go | 1220 + .../golang.org/x/sys/windows/types_windows.go | 1441 ++ .../x/sys/windows/types_windows_arm.go | 22 + .../x/sys/windows/zerrors_windows.go | 6853 ++++++ .../x/sys/windows/zsyscall_windows.go | 2779 +++ vendor/golang.org/x/xerrors/LICENSE | 27 + vendor/golang.org/x/xerrors/PATENTS | 22 + vendor/golang.org/x/xerrors/README | 2 + vendor/golang.org/x/xerrors/adaptor_go1_12.go | 195 + vendor/golang.org/x/xerrors/adaptor_go1_13.go | 55 + vendor/golang.org/x/xerrors/doc.go | 25 + vendor/golang.org/x/xerrors/errors.go | 33 + vendor/golang.org/x/xerrors/fmt.go | 109 + vendor/golang.org/x/xerrors/format_go1_12.go | 36 + vendor/golang.org/x/xerrors/format_go1_13.go | 19 + vendor/golang.org/x/xerrors/frame_go1_12.go | 58 + vendor/golang.org/x/xerrors/go.mod | 3 + .../golang.org/x/xerrors/internal/internal.go | 8 + vendor/golang.org/x/xerrors/wrap.go | 104 + .../gopkg.in/urfave/cli.v1/altsrc/altsrc.go | 3 - vendor/gopkg.in/urfave/cli.v1/altsrc/flag.go | 261 - .../urfave/cli.v1/altsrc/flag_generated.go | 347 - .../urfave/cli.v1/altsrc/flag_test.go | 336 - .../urfave/cli.v1/altsrc/helpers_test.go | 18 - .../cli.v1/altsrc/input_source_context.go | 21 - .../urfave/cli.v1/altsrc/map_input_source.go | 262 - .../urfave/cli.v1/altsrc/toml_command_test.go | 310 - .../urfave/cli.v1/altsrc/toml_file_loader.go | 113 - .../urfave/cli.v1/altsrc/yaml_command_test.go | 313 - .../urfave/cli.v1/altsrc/yaml_file_loader.go | 92 - vendor/gopkg.in/urfave/cli.v1/app_test.go | 1742 -- .../cli.v1/autocomplete/bash_autocomplete | 16 - .../cli.v1/autocomplete/zsh_autocomplete | 5 - vendor/gopkg.in/urfave/cli.v1/command_test.go | 240 - vendor/gopkg.in/urfave/cli.v1/context_test.go | 403 - vendor/gopkg.in/urfave/cli.v1/errors_test.go | 122 - vendor/gopkg.in/urfave/cli.v1/flag_test.go | 1215 - vendor/gopkg.in/urfave/cli.v1/help_test.go | 452 - vendor/gopkg.in/urfave/cli.v1/helpers_test.go | 28 - .../urfave/cli.v1/helpers_unix_test.go | 9 - .../urfave/cli.v1/helpers_windows_test.go | 20 - 3000 files changed, 433987 insertions(+), 182448 deletions(-) create mode 100644 Gopkg.lock create mode 100644 Gopkg.toml create mode 100644 pkg/ipfs/converter.go create mode 100644 pkg/ipfs/converter_test.go create mode 100644 pkg/ipfs/indexer_test.go delete mode 100644 pkg/ipfs/payload_converter.go create mode 100644 pkg/ipfs/publisher_test.go create mode 100644 pkg/ipfs/repository_test.go create mode 100644 pkg/ipfs/streamer_test.go create mode 100644 pkg/ipfs/test_helpers/fakes.go create mode 100644 pkg/ipfs/test_helpers/mocks/converter.go create mode 100644 pkg/ipfs/test_helpers/mocks/publisher.go create mode 100644 pkg/ipfs/test_helpers/mocks/repository.go create mode 100644 pkg/ipfs/test_helpers/mocks/streamer.go create mode 100644 pkg/ipfs/test_helpers/test_helpers.go create mode 100644 vendor/bazil.org/fuse/.gitattributes create mode 100644 vendor/bazil.org/fuse/.gitignore create mode 100644 vendor/bazil.org/fuse/LICENSE create mode 100644 vendor/bazil.org/fuse/README.md create mode 100644 vendor/bazil.org/fuse/buffer.go create mode 100644 vendor/bazil.org/fuse/debug.go create mode 100644 vendor/bazil.org/fuse/error_darwin.go create mode 100644 vendor/bazil.org/fuse/error_freebsd.go create mode 100644 vendor/bazil.org/fuse/error_linux.go create mode 100644 vendor/bazil.org/fuse/error_std.go create mode 100644 vendor/bazil.org/fuse/fs/serve.go create mode 100644 vendor/bazil.org/fuse/fs/tree.go create mode 100644 vendor/bazil.org/fuse/fuse.go create mode 100644 vendor/bazil.org/fuse/fuse_darwin.go create mode 100644 vendor/bazil.org/fuse/fuse_freebsd.go create mode 100644 vendor/bazil.org/fuse/fuse_kernel.go create mode 100644 vendor/bazil.org/fuse/fuse_kernel_darwin.go create mode 100644 vendor/bazil.org/fuse/fuse_kernel_freebsd.go create mode 100644 vendor/bazil.org/fuse/fuse_kernel_linux.go create mode 100644 vendor/bazil.org/fuse/fuse_kernel_std.go create mode 100644 vendor/bazil.org/fuse/fuse_linux.go create mode 100644 vendor/bazil.org/fuse/fuseutil/fuseutil.go create mode 100644 vendor/bazil.org/fuse/mount.go create mode 100644 vendor/bazil.org/fuse/mount_darwin.go create mode 100644 vendor/bazil.org/fuse/mount_freebsd.go create mode 100644 vendor/bazil.org/fuse/mount_linux.go create mode 100644 vendor/bazil.org/fuse/options.go create mode 100644 vendor/bazil.org/fuse/options_darwin.go create mode 100644 vendor/bazil.org/fuse/options_freebsd.go create mode 100644 vendor/bazil.org/fuse/options_linux.go create mode 100644 vendor/bazil.org/fuse/protocol.go create mode 100644 vendor/bazil.org/fuse/unmount.go create mode 100644 vendor/bazil.org/fuse/unmount_linux.go create mode 100644 vendor/bazil.org/fuse/unmount_std.go create mode 100644 vendor/github.com/Stebalien/go-bitfield/LICENSE create mode 100644 vendor/github.com/Stebalien/go-bitfield/README.md create mode 100644 vendor/github.com/Stebalien/go-bitfield/bitfield.go create mode 100644 vendor/github.com/Stebalien/go-bitfield/package.json create mode 100644 vendor/github.com/bren2010/proquint/LICENSE.md create mode 100644 vendor/github.com/bren2010/proquint/README.md create mode 100644 vendor/github.com/bren2010/proquint/proquint.go rename vendor/github.com/{davecgh/go-spew => cenkalti/backoff}/.gitignore (100%) create mode 100644 vendor/github.com/cenkalti/backoff/.travis.yml create mode 100644 vendor/github.com/cenkalti/backoff/LICENSE create mode 100644 vendor/github.com/cenkalti/backoff/README.md create mode 100644 vendor/github.com/cenkalti/backoff/backoff.go create mode 100644 vendor/github.com/cenkalti/backoff/context.go create mode 100644 vendor/github.com/cenkalti/backoff/exponential.go create mode 100644 vendor/github.com/cenkalti/backoff/retry.go create mode 100644 vendor/github.com/cenkalti/backoff/ticker.go create mode 100644 vendor/github.com/cenkalti/backoff/tries.go create mode 100644 vendor/github.com/cheekybits/genny/LICENSE create mode 100644 vendor/github.com/cheekybits/genny/generic/doc.go create mode 100644 vendor/github.com/cheekybits/genny/generic/generic.go create mode 100644 vendor/github.com/coreos/go-semver/LICENSE create mode 100644 vendor/github.com/coreos/go-semver/NOTICE create mode 100644 vendor/github.com/coreos/go-semver/semver/semver.go create mode 100644 vendor/github.com/coreos/go-semver/semver/sort.go create mode 100644 vendor/github.com/cskr/pubsub/LICENSE create mode 100644 vendor/github.com/cskr/pubsub/README.md create mode 100644 vendor/github.com/cskr/pubsub/go.mod create mode 100644 vendor/github.com/cskr/pubsub/pubsub.go delete mode 100644 vendor/github.com/davecgh/go-spew/.travis.yml delete mode 100644 vendor/github.com/davecgh/go-spew/README.md delete mode 100644 vendor/github.com/davecgh/go-spew/cov_report.sh delete mode 100644 vendor/github.com/davecgh/go-spew/spew/common_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/dump_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/dumpcgo_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/dumpnocgo_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/example_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/format_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/internal_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/internalunsafe_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/spew_test.go delete mode 100644 vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go delete mode 100644 vendor/github.com/davecgh/go-spew/test_coverage.txt create mode 100644 vendor/github.com/davidlazar/go-crypto/LICENSE create mode 100644 vendor/github.com/davidlazar/go-crypto/drbg/LICENSE create mode 100644 vendor/github.com/davidlazar/go-crypto/salsa20/salsa20.go delete mode 100644 vendor/github.com/edsrzf/mmap-go/mmap_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/.github/CODEOWNERS delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/clef/main.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/faucet/faucet.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/geth/accountcmd.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/geth/config.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/geth/main.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/geth/usage.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/swarm/access_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/swarm/run_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/swarm/upload_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/cmd/utils/flags.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/consensus/ethash/algorithm_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/consensus/ethash/consensus_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/console/bridge.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/console/console.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/blockchain_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/types/block_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/gas_table_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/instructions_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_add.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_and.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_byte.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_div.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_eq.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_exp.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_gt.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_lt.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mod.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mul.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_or.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sar.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sdiv.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sgt.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shl.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shr.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_signext.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_slt.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_smod.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sub.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_xor.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/eth/api_backend.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/eth/backend.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/eth/config.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/ethstats/ethstats.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/graphql/graphql.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/graphql/schema.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/internal/web3ext/web3ext.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/api_backend.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/backend.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/benchmark.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/commons.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/costtracker.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/handler.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/handler_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/odr.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/odr_requests.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/odr_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/peer.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/protocol.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/request_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/les/server.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/light/lightchain.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/light/odr_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/light/postprocess.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/miner/worker.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/mobile/types.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/p2p/rlpx_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/core/api_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/core/signed_data_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/core/validation_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.json delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/builder_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/service_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/helpers.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/blockchain.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/builder.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/publisher.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/test_data.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/api/client/client_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/api/http/test_server.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/network/discovery.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/network/discovery_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/network/hive_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/network/protocol.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/network/protocol_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/storage/ldbstore_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/swarm/version/version.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/tests/block_test_util.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/tests/difficulty_test_util.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/tests/gen_btheader.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/tests/gen_difficultytest.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/trie/database_test.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/trie/encoding_test.go create mode 100644 vendor/github.com/facebookgo/atomicfile/.travis.yml create mode 100644 vendor/github.com/facebookgo/atomicfile/atomicfile.go create mode 100644 vendor/github.com/facebookgo/atomicfile/license create mode 100644 vendor/github.com/facebookgo/atomicfile/patents create mode 100644 vendor/github.com/facebookgo/atomicfile/readme.md delete mode 100644 vendor/github.com/fjl/memsize/bitmap_test.go delete mode 100644 vendor/github.com/fjl/memsize/memsize_test.go delete mode 100644 vendor/github.com/fjl/memsize/memsizedemo/main.go delete mode 100644 vendor/github.com/fjl/memsize/type_test.go create mode 100644 vendor/github.com/gogo/protobuf/AUTHORS create mode 100644 vendor/github.com/gogo/protobuf/CONTRIBUTORS create mode 100644 vendor/github.com/gogo/protobuf/GOLANG_CONTRIBUTORS create mode 100644 vendor/github.com/gogo/protobuf/LICENSE create mode 100644 vendor/github.com/gogo/protobuf/gogoproto/Makefile create mode 100644 vendor/github.com/gogo/protobuf/gogoproto/doc.go create mode 100644 vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go create mode 100644 vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden create mode 100644 vendor/github.com/gogo/protobuf/gogoproto/gogo.proto create mode 100644 vendor/github.com/gogo/protobuf/gogoproto/helper.go create mode 100644 vendor/github.com/gogo/protobuf/io/full.go create mode 100644 vendor/github.com/gogo/protobuf/io/io.go create mode 100644 vendor/github.com/gogo/protobuf/io/uint32.go create mode 100644 vendor/github.com/gogo/protobuf/io/varint.go create mode 100644 vendor/github.com/gogo/protobuf/proto/Makefile create mode 100644 vendor/github.com/gogo/protobuf/proto/clone.go create mode 100644 vendor/github.com/gogo/protobuf/proto/custom_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/decode.go create mode 100644 vendor/github.com/gogo/protobuf/proto/deprecated.go create mode 100644 vendor/github.com/gogo/protobuf/proto/discard.go create mode 100644 vendor/github.com/gogo/protobuf/proto/duration.go create mode 100644 vendor/github.com/gogo/protobuf/proto/duration_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/encode.go create mode 100644 vendor/github.com/gogo/protobuf/proto/encode_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/equal.go create mode 100644 vendor/github.com/gogo/protobuf/proto/extensions.go create mode 100644 vendor/github.com/gogo/protobuf/proto/extensions_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/lib.go create mode 100644 vendor/github.com/gogo/protobuf/proto/lib_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/message_set.go create mode 100644 vendor/github.com/gogo/protobuf/proto/pointer_reflect.go create mode 100644 vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go create mode 100644 vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/properties.go create mode 100644 vendor/github.com/gogo/protobuf/proto/properties_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/skip_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/table_marshal.go create mode 100644 vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/table_merge.go create mode 100644 vendor/github.com/gogo/protobuf/proto/table_unmarshal.go create mode 100644 vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/text.go create mode 100644 vendor/github.com/gogo/protobuf/proto/text_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/text_parser.go create mode 100644 vendor/github.com/gogo/protobuf/proto/timestamp.go create mode 100644 vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/proto/wrappers.go create mode 100644 vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go create mode 100644 vendor/github.com/gorilla/websocket/.gitignore create mode 100644 vendor/github.com/gorilla/websocket/.travis.yml create mode 100644 vendor/github.com/gorilla/websocket/AUTHORS create mode 100644 vendor/github.com/gorilla/websocket/LICENSE create mode 100644 vendor/github.com/gorilla/websocket/README.md create mode 100644 vendor/github.com/gorilla/websocket/client.go create mode 100644 vendor/github.com/gorilla/websocket/client_clone.go create mode 100644 vendor/github.com/gorilla/websocket/client_clone_legacy.go create mode 100644 vendor/github.com/gorilla/websocket/compression.go create mode 100644 vendor/github.com/gorilla/websocket/conn.go create mode 100644 vendor/github.com/gorilla/websocket/conn_write.go create mode 100644 vendor/github.com/gorilla/websocket/conn_write_legacy.go create mode 100644 vendor/github.com/gorilla/websocket/doc.go create mode 100644 vendor/github.com/gorilla/websocket/json.go create mode 100644 vendor/github.com/gorilla/websocket/mask.go create mode 100644 vendor/github.com/gorilla/websocket/mask_safe.go create mode 100644 vendor/github.com/gorilla/websocket/prepared.go create mode 100644 vendor/github.com/gorilla/websocket/proxy.go create mode 100644 vendor/github.com/gorilla/websocket/server.go create mode 100644 vendor/github.com/gorilla/websocket/trace.go create mode 100644 vendor/github.com/gorilla/websocket/trace_17.go create mode 100644 vendor/github.com/gorilla/websocket/util.go create mode 100644 vendor/github.com/gorilla/websocket/x_net_proxy.go create mode 100644 vendor/github.com/gxed/hashland/LICENSE create mode 100644 vendor/github.com/gxed/hashland/keccak/LICENSE create mode 100644 vendor/github.com/gxed/hashland/keccakpg/go.mod create mode 100644 vendor/github.com/gxed/hashland/keccakpg/keccak.go create mode 100644 vendor/github.com/gxed/hashland/keccakpg/package.json create mode 100644 vendor/github.com/gxed/hashland/murmur3/LICENSE create mode 100644 vendor/github.com/gxed/hashland/murmur3/README.md create mode 100644 vendor/github.com/gxed/hashland/murmur3/go.mod create mode 100644 vendor/github.com/gxed/hashland/murmur3/murmur.go create mode 100644 vendor/github.com/gxed/hashland/murmur3/murmur128.go create mode 100644 vendor/github.com/gxed/hashland/murmur3/murmur32.go create mode 100644 vendor/github.com/gxed/hashland/murmur3/murmur64.go create mode 100644 vendor/github.com/hashicorp/errwrap/LICENSE create mode 100644 vendor/github.com/hashicorp/errwrap/README.md create mode 100644 vendor/github.com/hashicorp/errwrap/errwrap.go create mode 100644 vendor/github.com/hashicorp/errwrap/go.mod create mode 100644 vendor/github.com/hashicorp/go-multierror/.travis.yml create mode 100644 vendor/github.com/hashicorp/go-multierror/LICENSE create mode 100644 vendor/github.com/hashicorp/go-multierror/Makefile create mode 100644 vendor/github.com/hashicorp/go-multierror/README.md create mode 100644 vendor/github.com/hashicorp/go-multierror/append.go create mode 100644 vendor/github.com/hashicorp/go-multierror/flatten.go create mode 100644 vendor/github.com/hashicorp/go-multierror/format.go create mode 100644 vendor/github.com/hashicorp/go-multierror/go.mod create mode 100644 vendor/github.com/hashicorp/go-multierror/go.sum create mode 100644 vendor/github.com/hashicorp/go-multierror/multierror.go create mode 100644 vendor/github.com/hashicorp/go-multierror/prefix.go create mode 100644 vendor/github.com/hashicorp/go-multierror/sort.go create mode 100644 vendor/github.com/ipfs/bbloom/.gitignore create mode 100644 vendor/github.com/ipfs/bbloom/.travis.yml create mode 100644 vendor/github.com/ipfs/bbloom/README.md create mode 100644 vendor/github.com/ipfs/bbloom/bbloom.go create mode 100644 vendor/github.com/ipfs/bbloom/go.mod create mode 100644 vendor/github.com/ipfs/bbloom/package.json create mode 100644 vendor/github.com/ipfs/bbloom/sipHash.go create mode 100644 vendor/github.com/ipfs/go-bitswap/.gitignore create mode 100644 vendor/github.com/ipfs/go-bitswap/.travis.yml create mode 100644 vendor/github.com/ipfs/go-bitswap/LICENSE create mode 100644 vendor/github.com/ipfs/go-bitswap/Makefile create mode 100644 vendor/github.com/ipfs/go-bitswap/README.md create mode 100644 vendor/github.com/ipfs/go-bitswap/bitswap.go create mode 100644 vendor/github.com/ipfs/go-bitswap/decision/engine.go create mode 100644 vendor/github.com/ipfs/go-bitswap/decision/ledger.go create mode 100644 vendor/github.com/ipfs/go-bitswap/decision/peer_request_queue.go create mode 100644 vendor/github.com/ipfs/go-bitswap/getter/getter.go create mode 100644 vendor/github.com/ipfs/go-bitswap/go.mod create mode 100644 vendor/github.com/ipfs/go-bitswap/go.sum create mode 100644 vendor/github.com/ipfs/go-bitswap/message/message.go create mode 100644 vendor/github.com/ipfs/go-bitswap/message/pb/Makefile create mode 100644 vendor/github.com/ipfs/go-bitswap/message/pb/message.pb.go create mode 100644 vendor/github.com/ipfs/go-bitswap/message/pb/message.proto create mode 100644 vendor/github.com/ipfs/go-bitswap/messagequeue/messagequeue.go create mode 100644 vendor/github.com/ipfs/go-bitswap/network/interface.go create mode 100644 vendor/github.com/ipfs/go-bitswap/network/ipfs_impl.go create mode 100644 vendor/github.com/ipfs/go-bitswap/notifications/notifications.go create mode 100644 vendor/github.com/ipfs/go-bitswap/package.json create mode 100644 vendor/github.com/ipfs/go-bitswap/peermanager/peermanager.go create mode 100644 vendor/github.com/ipfs/go-bitswap/providerquerymanager/providerquerymanager.go create mode 100644 vendor/github.com/ipfs/go-bitswap/session/cidqueue.go create mode 100644 vendor/github.com/ipfs/go-bitswap/session/session.go create mode 100644 vendor/github.com/ipfs/go-bitswap/sessionmanager/sessionmanager.go create mode 100644 vendor/github.com/ipfs/go-bitswap/sessionpeermanager/sessionpeermanager.go create mode 100644 vendor/github.com/ipfs/go-bitswap/sessionrequestsplitter/sessionrequestsplitter.go create mode 100644 vendor/github.com/ipfs/go-bitswap/stat.go create mode 100644 vendor/github.com/ipfs/go-bitswap/testnet/interface.go create mode 100644 vendor/github.com/ipfs/go-bitswap/testnet/internet_latency_delay_generator.go create mode 100644 vendor/github.com/ipfs/go-bitswap/testnet/peernet.go create mode 100644 vendor/github.com/ipfs/go-bitswap/testnet/rate_limit_generators.go create mode 100644 vendor/github.com/ipfs/go-bitswap/testnet/virtual.go create mode 100644 vendor/github.com/ipfs/go-bitswap/testutils.go create mode 100644 vendor/github.com/ipfs/go-bitswap/wantlist/wantlist.go create mode 100644 vendor/github.com/ipfs/go-bitswap/wantmanager/wantmanager.go create mode 100644 vendor/github.com/ipfs/go-bitswap/workers.go create mode 100644 vendor/github.com/ipfs/go-block-format/.travis.yml create mode 100644 vendor/github.com/ipfs/go-block-format/LICENSE create mode 100644 vendor/github.com/ipfs/go-block-format/Makefile create mode 100644 vendor/github.com/ipfs/go-block-format/README.md create mode 100644 vendor/github.com/ipfs/go-block-format/blocks.go create mode 100644 vendor/github.com/ipfs/go-block-format/codecov.yml create mode 100644 vendor/github.com/ipfs/go-block-format/go.mod create mode 100644 vendor/github.com/ipfs/go-block-format/go.sum create mode 100644 vendor/github.com/ipfs/go-block-format/package.json create mode 100644 vendor/github.com/ipfs/go-blockservice/.travis.yml create mode 100644 vendor/github.com/ipfs/go-blockservice/LICENSE create mode 100644 vendor/github.com/ipfs/go-blockservice/README.md create mode 100644 vendor/github.com/ipfs/go-blockservice/blockservice.go create mode 100644 vendor/github.com/ipfs/go-blockservice/go.mod create mode 100644 vendor/github.com/ipfs/go-blockservice/go.sum create mode 100644 vendor/github.com/ipfs/go-blockservice/package.json create mode 100644 vendor/github.com/ipfs/go-cid/.gitignore create mode 100644 vendor/github.com/ipfs/go-cid/.travis.yml create mode 100644 vendor/github.com/ipfs/go-cid/LICENSE create mode 100644 vendor/github.com/ipfs/go-cid/Makefile create mode 100644 vendor/github.com/ipfs/go-cid/README.md create mode 100644 vendor/github.com/ipfs/go-cid/builder.go create mode 100644 vendor/github.com/ipfs/go-cid/cid.go create mode 100644 vendor/github.com/ipfs/go-cid/cid_fuzz.go create mode 100644 vendor/github.com/ipfs/go-cid/codecov.yml create mode 100644 vendor/github.com/ipfs/go-cid/deprecated.go create mode 100644 vendor/github.com/ipfs/go-cid/go.mod create mode 100644 vendor/github.com/ipfs/go-cid/go.sum create mode 100644 vendor/github.com/ipfs/go-cid/package.json create mode 100644 vendor/github.com/ipfs/go-cid/set.go create mode 100644 vendor/github.com/ipfs/go-cid/varint.go create mode 100644 vendor/github.com/ipfs/go-cidutil/.travis.yml create mode 100644 vendor/github.com/ipfs/go-cidutil/README.md create mode 100644 vendor/github.com/ipfs/go-cidutil/codecov.yml create mode 100644 vendor/github.com/ipfs/go-cidutil/format.go create mode 100644 vendor/github.com/ipfs/go-cidutil/go.mod create mode 100644 vendor/github.com/ipfs/go-cidutil/go.sum create mode 100644 vendor/github.com/ipfs/go-cidutil/inline.go create mode 100644 vendor/github.com/ipfs/go-cidutil/package.json create mode 100644 vendor/github.com/ipfs/go-cidutil/set.go create mode 100644 vendor/github.com/ipfs/go-cidutil/slice.go create mode 100644 vendor/github.com/ipfs/go-datastore/.gitignore create mode 100644 vendor/github.com/ipfs/go-datastore/.travis.yml create mode 100644 vendor/github.com/ipfs/go-datastore/LICENSE create mode 100644 vendor/github.com/ipfs/go-datastore/Makefile create mode 100644 vendor/github.com/ipfs/go-datastore/README.md create mode 100644 vendor/github.com/ipfs/go-datastore/autobatch/README.md create mode 100644 vendor/github.com/ipfs/go-datastore/autobatch/autobatch.go create mode 100644 vendor/github.com/ipfs/go-datastore/basic_ds.go create mode 100644 vendor/github.com/ipfs/go-datastore/batch.go create mode 100644 vendor/github.com/ipfs/go-datastore/datastore.go create mode 100644 vendor/github.com/ipfs/go-datastore/delayed/delayed.go create mode 100644 vendor/github.com/ipfs/go-datastore/go.mod create mode 100644 vendor/github.com/ipfs/go-datastore/go.sum create mode 100644 vendor/github.com/ipfs/go-datastore/key.go create mode 100644 vendor/github.com/ipfs/go-datastore/keytransform/doc.go create mode 100644 vendor/github.com/ipfs/go-datastore/keytransform/interface.go create mode 100644 vendor/github.com/ipfs/go-datastore/keytransform/keytransform.go create mode 100644 vendor/github.com/ipfs/go-datastore/keytransform/transforms.go create mode 100644 vendor/github.com/ipfs/go-datastore/mount/mount.go create mode 100644 vendor/github.com/ipfs/go-datastore/namespace/doc.go create mode 100644 vendor/github.com/ipfs/go-datastore/namespace/namespace.go create mode 100644 vendor/github.com/ipfs/go-datastore/package.json create mode 100644 vendor/github.com/ipfs/go-datastore/query/filter.go create mode 100644 vendor/github.com/ipfs/go-datastore/query/order.go create mode 100644 vendor/github.com/ipfs/go-datastore/query/query.go create mode 100644 vendor/github.com/ipfs/go-datastore/query/query_impl.go create mode 100644 vendor/github.com/ipfs/go-datastore/retrystore/retrystore.go create mode 100644 vendor/github.com/ipfs/go-datastore/sync/sync.go create mode 100644 vendor/github.com/ipfs/go-ds-measure/.gitignore create mode 100644 vendor/github.com/ipfs/go-ds-measure/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ds-measure/LICENSE create mode 100644 vendor/github.com/ipfs/go-ds-measure/Makefile create mode 100644 vendor/github.com/ipfs/go-ds-measure/go.mod create mode 100644 vendor/github.com/ipfs/go-ds-measure/go.sum create mode 100644 vendor/github.com/ipfs/go-ds-measure/measure.go create mode 100644 vendor/github.com/ipfs/go-ds-measure/package.json create mode 100644 vendor/github.com/ipfs/go-fs-lock/.gitignore create mode 100644 vendor/github.com/ipfs/go-fs-lock/.travis.yml create mode 100644 vendor/github.com/ipfs/go-fs-lock/LICENSE create mode 100644 vendor/github.com/ipfs/go-fs-lock/README.md create mode 100644 vendor/github.com/ipfs/go-fs-lock/fslock.go create mode 100644 vendor/github.com/ipfs/go-fs-lock/go.mod create mode 100644 vendor/github.com/ipfs/go-fs-lock/go.sum create mode 100644 vendor/github.com/ipfs/go-fs-lock/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/codecov.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/ipfsaddr.go create mode 100644 vendor/github.com/ipfs/go-ipfs-addr/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/arc_cache.go create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/blockstore.go create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/bloom_cache.go create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/caching.go create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/idstore.go create mode 100644 vendor/github.com/ipfs/go-ipfs-blockstore/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/parse.go create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/rabin.go create mode 100644 vendor/github.com/ipfs/go-ipfs-chunker/splitting.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/.gitignore create mode 100644 vendor/github.com/ipfs/go-ipfs-config/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-config/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-config/addresses.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/api.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/bootstrap_peers.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/config.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/datastore.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/discovery.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/experiments.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/gateway.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-config/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-config/identity.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/init.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/ipns.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/mounts.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-config/profile.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/pubsub.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/reprovider.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/routing.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/serialize/serialize.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/swarm.go create mode 100644 vendor/github.com/ipfs/go-ipfs-config/types.go create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/delay.go create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/generator.go create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-delay/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/key.go create mode 100644 vendor/github.com/ipfs/go-ipfs-ds-help/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/interface.go create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-interface/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/offline.go create mode 100644 vendor/github.com/ipfs/go-ipfs-exchange-offline/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-files/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-files/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-files/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-files/file.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-files/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-files/is_hidden.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/is_hidden_windows.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/linkfile.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/multifilereader.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/multipartfile.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-files/readerfile.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/serialfile.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/slicedirectory.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/tarwriter.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/util.go create mode 100644 vendor/github.com/ipfs/go-ipfs-files/webfile.go create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/flags.go create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-flags/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/.gitignore create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-posinfo/posinfo.go create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/Makefile create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-pq/pq.go create mode 100644 vendor/github.com/ipfs/go-ipfs-routing/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_client.go create mode 100644 vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_server.go create mode 100644 vendor/github.com/ipfs/go-ipfs-routing/mock/interface.go create mode 100644 vendor/github.com/ipfs/go-ipfs-routing/none/none_client.go create mode 100644 vendor/github.com/ipfs/go-ipfs-routing/offline/offline.go create mode 100644 vendor/github.com/ipfs/go-ipfs-util/.gitignore create mode 100644 vendor/github.com/ipfs/go-ipfs-util/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipfs-util/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipfs-util/README.md create mode 100644 vendor/github.com/ipfs/go-ipfs-util/file.go create mode 100644 vendor/github.com/ipfs/go-ipfs-util/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs-util/go.sum create mode 100644 vendor/github.com/ipfs/go-ipfs-util/package.json create mode 100644 vendor/github.com/ipfs/go-ipfs-util/time.go create mode 100644 vendor/github.com/ipfs/go-ipfs-util/util.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/.circleci/config.yml delete mode 100644 vendor/github.com/ipfs/go-ipfs/.gx/lastpubver delete mode 100644 vendor/github.com/ipfs/go-ipfs/.travis.yml delete mode 100644 vendor/github.com/ipfs/go-ipfs/CODEOWNERS delete mode 100644 vendor/github.com/ipfs/go-ipfs/Dockerfile.fast delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/assets.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/assets_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/bindata.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/about delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/contact delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/docs/index delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/help delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/ping delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/quick-start delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/readme delete mode 100644 vendor/github.com/ipfs/go-ipfs/assets/init-doc/security-notes delete mode 100644 vendor/github.com/ipfs/go-ipfs/bin/Rules.mk delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/archive-branches.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/check_go_path delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/check_go_version delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/check_gx_program delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/check_version delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/container_daemon delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/dist_get delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/gencmdref delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/graphmd delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/ipns-republish delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/maketarball.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/mkreleaselog delete mode 100755 vendor/github.com/ipfs/go-ipfs/bin/test-go-fmt delete mode 100644 vendor/github.com/ipfs/go-ipfs/blocks/blockstoreutil/remove.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/ci/Dockerfile.buildenv delete mode 100644 vendor/github.com/ipfs/go-ipfs/ci/Jenkinsfile delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/daemon.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/README.md delete mode 100755 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/install.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dnsresolve_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/init.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/ipfs.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/runmain_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal_wasm.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_freebsd.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_windows.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/ipfswatch_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/seccat/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/seccat/seccat.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/cmd/seccat/util.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/commands/context.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/commands/reqlog.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/bootstrap_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/active.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/add.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/bitswap.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/block.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/bootstrap.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/cat.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/cid.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/env.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/file.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/commands.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/commands_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/config.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/dag/dag.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/dht.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/dht_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/diag.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/dns.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/e/error.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/external.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/files.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/filestore.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/get.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/get_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/helptext_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/id.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/keystore.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/log.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/ls.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/mount_nofuse.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/mount_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/mount_windows.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/name/ipns.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/name/ipnsps.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/name/name.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/name/publish.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/object/diff.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/object/object.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/object/patch.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/p2p.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/pin.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/ping.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/pubsub.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/refs.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/repo.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/resolve.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/root.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/root_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/shutdown.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/stat.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/swarm.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/sysdiag.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/tar.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/ls.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/unixfs.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/urlstore.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/commands/version.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/core_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/block.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/coreapi.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/dag.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/dht.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/key.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/name.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/object.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/path.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/pin.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/pubsub.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/swarm.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/test/api_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreapi/unixfs.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coredag/cbor.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coredag/dagpb.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coredag/dagtransl.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coredag/raw.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/commands.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/corehttp.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_handler.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_indexPage.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/ipns_hostname.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/logs.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/mutex_profile.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/option_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/redirect.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corehttp/webui.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corerepo/gc.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/corerepo/stat.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/add.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/add_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/colors/orange delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/corps/apple delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/apple delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/orange delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/mock/mock.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/core/pathresolver_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/coverage/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/coverage/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/coverage/main/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/dagutils/diffenum_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/dagutils/utils_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/add-code-flow.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/cli-http-api-core-diagram.png delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/command-completion.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/config.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/datastores.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/debug-guide.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/developer-certificate-of-origin delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/experimental-features.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/file-transfer.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/fuse.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/gateway.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/implement-api-bindings.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/openbsd.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/plugins.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/releases.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/transports.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/docs/windows.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/filestore/filestore_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/ipns/common.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/ipns/link_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/ipns/mount_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/node/mount_darwin.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/node/mount_nofuse.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/node/mount_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/node/mount_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/node/mount_windows.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/readonly/doc.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/readonly/ipfs_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/readonly/mount_unix.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/fuse/readonly/readonly_unix.go create mode 100644 vendor/github.com/ipfs/go-ipfs/go.mod create mode 100644 vendor/github.com/ipfs/go-ipfs/go.sum delete mode 100644 vendor/github.com/ipfs/go-ipfs/keystore/keystore_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/keystore/memkeystore_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/misc/completion/ipfs-completion.bash delete mode 100644 vendor/github.com/ipfs/go-ipfs/misc/launchd/README.md delete mode 100755 vendor/github.com/ipfs/go-ipfs/misc/launchd/install.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/misc/launchd/io.ipfs.ipfs-daemon.plist delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/footer.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/git.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/golang.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/gx.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/header.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/tarball.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/mk/util.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/namesys/dns_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/namesys/ipns_resolver_validation_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/namesys/namesys_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/namesys/publisher_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/namesys/resolve_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/package.json delete mode 100644 vendor/github.com/ipfs/go-ipfs/pin/gc/gc.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/pin/pin_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/pin/set_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/daemon.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/datastore.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/ipld.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/loader/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/loader/load_linux.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/loader/loader.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.go delete mode 100755 vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/loader/preload_list delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugin.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugins/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugins/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugins/badgerds/badgerds.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugins/flatfs/flatfs.go delete mode 100755 vendor/github.com/ipfs/go-ipfs/plugin/plugins/gen_main.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugins/git/git.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/plugins/levelds/levelds.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/plugin/tracer.go create mode 100644 vendor/github.com/ipfs/go-ipfs/provider/offline.go create mode 100644 vendor/github.com/ipfs/go-ipfs/provider/provider.go create mode 100644 vendor/github.com/ipfs/go-ipfs/provider/queue.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/repo/fsrepo/config_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/repo/fsrepo/migrations/mfsr_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/tar/format.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/Makefile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/clean.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_logs.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_profiling_data.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/Dockerfile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/config delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitkeep delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/Dockerfile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/config delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/run.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/Dockerfile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/fig.yml delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/3nodetest/run-test-on-img.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/Dockerfile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/config delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/run.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/api-startup/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/bench/bench_cli_ipfs_add/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/bench/offline_add/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/bin/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/bin/Rules.mk delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/bin/checkflags delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/bin/continueyn delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/bin/verify-go-fmt.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/Makefile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/go-sleep.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/iptb/iptb.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/json-to-junit/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/dependencies/ma-pipe-unidir/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/integration/Makefile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/integration/addcat_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/integration/bench_cat_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/integration/bench_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/integration/bitswap_wo_routing_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/integration/three_legged_cat_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/ipfs-test-lib.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/Makefile delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/0001-Generate-partial-JUnit-reports.patch delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/gen-junit-report.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/install-sharness.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/iptb-lib.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-aggregate-results.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib-hashes.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0010-basic-commands.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0015-basic-sh-functions.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0018-indent.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0020-init.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0021-config.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0022-init-default.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0023-shutdown.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-datastore-config.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-newshardfun delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-nosync delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0025-datastores.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0030-mount.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0031-mount-publish.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0040-add-and-cat.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0041-ping.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0042-add-skip.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0043-add-w.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0044-add-symlink.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0045-ls.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0046-id-hash.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0050-block.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/UTF-8-test.txt delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/brokenPut.json delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/brokenPut.xml delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/expected_getOut delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/mixed.json delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.json delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.pb delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.xml delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0052-object-diff.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag-data/non-canon.cbor delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-daemon.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-data/mss-ls delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0061-daemon-opts.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0062-daemon-api.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-daemon-init.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-external.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0065-active-requests.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0066-migration.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0070-user-config.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0080-repo.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0081-repo-pinning.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0082-repo-gc-auto.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0083-repo-fsck.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0084-repo-read-rehash.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0085-pins.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0086-repo-verify.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0087-repo-robust-gc.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0088-repo-stat-symlink.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0090-get.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0095-refs.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0100-name.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0101-iptb-name.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foo.block delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foofoo.block delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0111-gateway-writeable.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0112-gateway-cors.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0120-bootstrap.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0121-bootstrap-iptb.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0125-twonode.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0130-multinode.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0131-multinode-client-routing.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0140-swarm.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0141-addfilter.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0150-clisuggest.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0151-sysdiag.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0160-resolve.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0165-keystore.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0170-dht.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0175-reprovider.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-p2p.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub-gossipsub.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0181-private-network.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0182-circuit-relay.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0183-namesys-pubsub.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0184-http-proxy-over-p2p.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0190-quic-ping.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0200-unixfs-ls.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0210-tar.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0220-bitswap.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0230-channel-streaming-http-content-type.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0231-channel-streaming.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0235-cli-request.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0236-cli-api-dns-resolve.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0240-republisher.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0250-files-api.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0251-files-flushing.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0252-files-gc.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0260-sharding.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0270-filestore.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0271-filestore-utils.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0272-urlstore.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/AFKSEBCGPUJZE.data delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/CIQG6PGTD2VV34S33BE4MNCQITBRFYUPYQLDXYARR3DQW37MOT7K5XI.data delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0276-cidv0v1.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git-data/git.tar.gz delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0290-cid.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0300-docker-image.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0301-docker-migrate.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0400-api-security.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0410-api-add.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0500-issues-and-regressions-offline.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/t0600-issues-and-regressions-online.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness/x0601-pin-fail-test.sh delete mode 100755 vendor/github.com/ipfs/go-ipfs/test/sharness_test_coverage_helper.sh delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/unit/.gitignore delete mode 100644 vendor/github.com/ipfs/go-ipfs/test/unit/Rules.mk delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/README.md delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/assert/assert.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier_test.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/pollEndpoint/main.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit.go delete mode 100644 vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit_test.go create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/Makefile create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/README.md create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/codecov.yml create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/encoding/cloner.go create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/encoding/marshaller.go create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/encoding/unmarshaller.go create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/go.mod create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/go.sum create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/node.go create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/package.json create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/readable.go create mode 100644 vendor/github.com/ipfs/go-ipld-cbor/refmt.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipld-format/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipld-format/Makefile create mode 100644 vendor/github.com/ipfs/go-ipld-format/README.md create mode 100644 vendor/github.com/ipfs/go-ipld-format/batch.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/codecov.yml create mode 100644 vendor/github.com/ipfs/go-ipld-format/coding.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/daghelpers.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/format.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/go.mod create mode 100644 vendor/github.com/ipfs/go-ipld-format/go.sum create mode 100644 vendor/github.com/ipfs/go-ipld-format/merkledag.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/navipld.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/package.json create mode 100644 vendor/github.com/ipfs/go-ipld-format/promise.go create mode 100644 vendor/github.com/ipfs/go-ipld-format/walker.go create mode 100644 vendor/github.com/ipfs/go-ipns/.travis.yml create mode 100644 vendor/github.com/ipfs/go-ipns/LICENSE create mode 100644 vendor/github.com/ipfs/go-ipns/Makefile create mode 100644 vendor/github.com/ipfs/go-ipns/README.md create mode 100644 vendor/github.com/ipfs/go-ipns/codecov.yml create mode 100644 vendor/github.com/ipfs/go-ipns/errors.go create mode 100644 vendor/github.com/ipfs/go-ipns/go.mod create mode 100644 vendor/github.com/ipfs/go-ipns/go.sum create mode 100644 vendor/github.com/ipfs/go-ipns/ipns.go create mode 100644 vendor/github.com/ipfs/go-ipns/package.json create mode 100644 vendor/github.com/ipfs/go-ipns/pb/Makefile create mode 100644 vendor/github.com/ipfs/go-ipns/pb/ipns.pb.go create mode 100644 vendor/github.com/ipfs/go-ipns/pb/ipns.proto create mode 100644 vendor/github.com/ipfs/go-ipns/record.go create mode 100644 vendor/github.com/ipfs/go-log/.travis.yml create mode 100644 vendor/github.com/ipfs/go-log/LICENSE create mode 100644 vendor/github.com/ipfs/go-log/README.md create mode 100644 vendor/github.com/ipfs/go-log/context.go create mode 100644 vendor/github.com/ipfs/go-log/entry.go create mode 100644 vendor/github.com/ipfs/go-log/go.mod create mode 100644 vendor/github.com/ipfs/go-log/go.sum create mode 100644 vendor/github.com/ipfs/go-log/log.go create mode 100644 vendor/github.com/ipfs/go-log/loggable.go create mode 100644 vendor/github.com/ipfs/go-log/metadata.go create mode 100644 vendor/github.com/ipfs/go-log/oldlog.go create mode 100644 vendor/github.com/ipfs/go-log/package.json create mode 100644 vendor/github.com/ipfs/go-log/tracer/LICENSE create mode 100644 vendor/github.com/ipfs/go-log/tracer/context.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/debug.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/event.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/propagation.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/propagation_ot.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/raw.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/recorder.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/span.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/tracer.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/util.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/wire/Makefile create mode 100644 vendor/github.com/ipfs/go-log/tracer/wire/carrier.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/wire/gen.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/wire/wire.pb.go create mode 100644 vendor/github.com/ipfs/go-log/tracer/wire/wire.proto create mode 100644 vendor/github.com/ipfs/go-log/writer/option.go create mode 100644 vendor/github.com/ipfs/go-log/writer/polite_json_formatter.go create mode 100644 vendor/github.com/ipfs/go-log/writer/writer.go create mode 100644 vendor/github.com/ipfs/go-merkledag/.travis.yml create mode 100644 vendor/github.com/ipfs/go-merkledag/LICENSE create mode 100644 vendor/github.com/ipfs/go-merkledag/README.md create mode 100644 vendor/github.com/ipfs/go-merkledag/coding.go create mode 100644 vendor/github.com/ipfs/go-merkledag/errservice.go create mode 100644 vendor/github.com/ipfs/go-merkledag/go.mod create mode 100644 vendor/github.com/ipfs/go-merkledag/go.sum create mode 100644 vendor/github.com/ipfs/go-merkledag/merkledag.go create mode 100644 vendor/github.com/ipfs/go-merkledag/node.go create mode 100644 vendor/github.com/ipfs/go-merkledag/package.json create mode 100644 vendor/github.com/ipfs/go-merkledag/pb/Rules.mk create mode 100644 vendor/github.com/ipfs/go-merkledag/pb/merkledag.pb.go create mode 100644 vendor/github.com/ipfs/go-merkledag/pb/merkledag.proto create mode 100644 vendor/github.com/ipfs/go-merkledag/pb/upgrade_check.go create mode 100644 vendor/github.com/ipfs/go-merkledag/raw.go create mode 100644 vendor/github.com/ipfs/go-merkledag/readonly.go create mode 100644 vendor/github.com/ipfs/go-merkledag/rwservice.go create mode 100644 vendor/github.com/ipfs/go-merkledag/session.go create mode 100644 vendor/github.com/ipfs/go-metrics-interface/.gitignore create mode 100644 vendor/github.com/ipfs/go-metrics-interface/.travis.yml create mode 100644 vendor/github.com/ipfs/go-metrics-interface/LICENSE create mode 100644 vendor/github.com/ipfs/go-metrics-interface/context.go create mode 100644 vendor/github.com/ipfs/go-metrics-interface/ctor.go create mode 100644 vendor/github.com/ipfs/go-metrics-interface/go.mod create mode 100644 vendor/github.com/ipfs/go-metrics-interface/interface.go create mode 100644 vendor/github.com/ipfs/go-metrics-interface/noop.go create mode 100644 vendor/github.com/ipfs/go-metrics-interface/package.json create mode 100644 vendor/github.com/ipfs/go-mfs/.travis.yml create mode 100644 vendor/github.com/ipfs/go-mfs/CODEOWNERS create mode 100644 vendor/github.com/ipfs/go-mfs/LICENSE create mode 100644 vendor/github.com/ipfs/go-mfs/Makefile create mode 100644 vendor/github.com/ipfs/go-mfs/README.md create mode 100644 vendor/github.com/ipfs/go-mfs/dir.go create mode 100644 vendor/github.com/ipfs/go-mfs/fd.go create mode 100644 vendor/github.com/ipfs/go-mfs/file.go create mode 100644 vendor/github.com/ipfs/go-mfs/go.mod create mode 100644 vendor/github.com/ipfs/go-mfs/go.sum create mode 100644 vendor/github.com/ipfs/go-mfs/inode.go create mode 100644 vendor/github.com/ipfs/go-mfs/ops.go create mode 100644 vendor/github.com/ipfs/go-mfs/options.go create mode 100644 vendor/github.com/ipfs/go-mfs/package.json create mode 100644 vendor/github.com/ipfs/go-mfs/repub.go create mode 100644 vendor/github.com/ipfs/go-mfs/root.go create mode 100644 vendor/github.com/ipfs/go-path/.travis.yml create mode 100644 vendor/github.com/ipfs/go-path/LICENSE create mode 100644 vendor/github.com/ipfs/go-path/Makefile create mode 100644 vendor/github.com/ipfs/go-path/README.md create mode 100644 vendor/github.com/ipfs/go-path/go.mod create mode 100644 vendor/github.com/ipfs/go-path/go.sum create mode 100644 vendor/github.com/ipfs/go-path/package.json create mode 100644 vendor/github.com/ipfs/go-path/path.go create mode 100644 vendor/github.com/ipfs/go-path/resolver/resolver.go create mode 100644 vendor/github.com/ipfs/go-todocounter/.travis.yml create mode 100644 vendor/github.com/ipfs/go-todocounter/LICENSE create mode 100644 vendor/github.com/ipfs/go-todocounter/Makefile create mode 100644 vendor/github.com/ipfs/go-todocounter/README.md create mode 100644 vendor/github.com/ipfs/go-todocounter/counter.go create mode 100644 vendor/github.com/ipfs/go-todocounter/go.mod create mode 100644 vendor/github.com/ipfs/go-todocounter/package.json create mode 100644 vendor/github.com/ipfs/go-unixfs/.travis.yml create mode 100644 vendor/github.com/ipfs/go-unixfs/CODEOWNERS create mode 100644 vendor/github.com/ipfs/go-unixfs/LICENSE create mode 100644 vendor/github.com/ipfs/go-unixfs/Makefile create mode 100644 vendor/github.com/ipfs/go-unixfs/README.md create mode 100644 vendor/github.com/ipfs/go-unixfs/go.mod create mode 100644 vendor/github.com/ipfs/go-unixfs/go.sum create mode 100644 vendor/github.com/ipfs/go-unixfs/hamt/hamt.go create mode 100644 vendor/github.com/ipfs/go-unixfs/hamt/util.go create mode 100644 vendor/github.com/ipfs/go-unixfs/importer/helpers/dagbuilder.go create mode 100644 vendor/github.com/ipfs/go-unixfs/importer/helpers/helpers.go create mode 100644 vendor/github.com/ipfs/go-unixfs/importer/trickle/trickledag.go create mode 100644 vendor/github.com/ipfs/go-unixfs/io/dagreader.go create mode 100644 vendor/github.com/ipfs/go-unixfs/io/directory.go create mode 100644 vendor/github.com/ipfs/go-unixfs/io/doc.go create mode 100644 vendor/github.com/ipfs/go-unixfs/io/resolve.go create mode 100644 vendor/github.com/ipfs/go-unixfs/mod/dagmodifier.go create mode 100644 vendor/github.com/ipfs/go-unixfs/package.json create mode 100644 vendor/github.com/ipfs/go-unixfs/pb/Makefile create mode 100644 vendor/github.com/ipfs/go-unixfs/pb/unixfs.pb.go create mode 100644 vendor/github.com/ipfs/go-unixfs/pb/unixfs.proto create mode 100644 vendor/github.com/ipfs/go-unixfs/unixfs.go create mode 100644 vendor/github.com/ipfs/go-verifcid/.travis.yml create mode 100644 vendor/github.com/ipfs/go-verifcid/go.mod create mode 100644 vendor/github.com/ipfs/go-verifcid/go.sum create mode 100644 vendor/github.com/ipfs/go-verifcid/package.json create mode 100644 vendor/github.com/ipfs/go-verifcid/validate.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/.travis.yml create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/LICENSE create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/Makefile create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/block.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/coreapi.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/dag.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/dht.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/errors.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/go.mod create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/go.sum create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/key.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/name.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/object.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/block.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/dht.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/global.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/key.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/name.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/namesys/opts.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/object.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/pin.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/pubsub.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/options/unixfs.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/package.json create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/path/path.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/pin.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/pubsub.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/swarm.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/unixfs.go create mode 100644 vendor/github.com/ipfs/interface-go-ipfs-core/util.go create mode 100644 vendor/github.com/jackpal/gateway/.travis.yml create mode 100644 vendor/github.com/jackpal/gateway/LICENSE create mode 100644 vendor/github.com/jackpal/gateway/README.md create mode 100644 vendor/github.com/jackpal/gateway/gateway_common.go create mode 100644 vendor/github.com/jackpal/gateway/gateway_darwin.go create mode 100644 vendor/github.com/jackpal/gateway/gateway_freebsd.go create mode 100644 vendor/github.com/jackpal/gateway/gateway_linux.go create mode 100644 vendor/github.com/jackpal/gateway/gateway_solaris.go create mode 100644 vendor/github.com/jackpal/gateway/gateway_unimplemented.go create mode 100644 vendor/github.com/jackpal/gateway/gateway_windows.go create mode 100644 vendor/github.com/jbenet/go-context/LICENSE create mode 100644 vendor/github.com/jbenet/go-context/io/ctxio.go create mode 100644 vendor/github.com/jbenet/go-is-domain/.travis.yml create mode 100644 vendor/github.com/jbenet/go-is-domain/LICENSE create mode 100644 vendor/github.com/jbenet/go-is-domain/README.md create mode 100644 vendor/github.com/jbenet/go-is-domain/doc.go create mode 100644 vendor/github.com/jbenet/go-is-domain/domainre.go create mode 100644 vendor/github.com/jbenet/go-is-domain/go.mod create mode 100644 vendor/github.com/jbenet/go-is-domain/is_domain.go create mode 100644 vendor/github.com/jbenet/go-is-domain/package.json create mode 100755 vendor/github.com/jbenet/go-is-domain/regenerate-tlds.sh create mode 100644 vendor/github.com/jbenet/go-is-domain/tlds_custom.go create mode 100644 vendor/github.com/jbenet/go-is-domain/tlds_iana.go create mode 100644 vendor/github.com/jbenet/go-temp-err-catcher/.travis.yml create mode 100644 vendor/github.com/jbenet/go-temp-err-catcher/LICENSE create mode 100644 vendor/github.com/jbenet/go-temp-err-catcher/README.md create mode 100644 vendor/github.com/jbenet/go-temp-err-catcher/doc.go create mode 100644 vendor/github.com/jbenet/go-temp-err-catcher/temp_err_catcher.go create mode 100644 vendor/github.com/jbenet/goprocess/.travis.yml create mode 100644 vendor/github.com/jbenet/goprocess/LICENSE create mode 100644 vendor/github.com/jbenet/goprocess/README.md create mode 100644 vendor/github.com/jbenet/goprocess/context/context.go create mode 100644 vendor/github.com/jbenet/goprocess/context/derive.go create mode 100644 vendor/github.com/jbenet/goprocess/goprocess.go create mode 100644 vendor/github.com/jbenet/goprocess/impl-mutex.go create mode 100644 vendor/github.com/jbenet/goprocess/link.go create mode 100644 vendor/github.com/jbenet/goprocess/package.json create mode 100644 vendor/github.com/jbenet/goprocess/periodic/README.md create mode 100644 vendor/github.com/jbenet/goprocess/periodic/periodic.go create mode 100644 vendor/github.com/jbenet/goprocess/ratelimit/README.md create mode 100644 vendor/github.com/jbenet/goprocess/ratelimit/ratelimit.go delete mode 100644 vendor/github.com/karalabe/hid/hid_test.go delete mode 100644 vendor/github.com/karalabe/hid/hidapi/README.txt delete mode 100644 vendor/github.com/karalabe/hid/hidapi/hidapi/hidapi.h delete mode 100644 vendor/github.com/karalabe/hid/hidapi/libusb/hid.c delete mode 100644 vendor/github.com/karalabe/hid/hidapi/mac/hid.c delete mode 100755 vendor/github.com/karalabe/hid/hidapi/windows/hid.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/config.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/core.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/descriptor.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/hotplug.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/hotplug.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/io.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/libusb.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/libusbi.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_pollfs.cpp delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_backend.cpp delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.cpp delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/linux_netlink.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/linux_udev.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/netbsd_usb.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/openbsd_usb.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_common.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/strerror.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/sync.c delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/version.h delete mode 100644 vendor/github.com/karalabe/hid/libusb/libusb/version_nano.h delete mode 100644 vendor/github.com/karalabe/hid/wchar_test.go create mode 100644 vendor/github.com/koron/go-ssdp/.gitignore create mode 100644 vendor/github.com/koron/go-ssdp/LICENSE create mode 100644 vendor/github.com/koron/go-ssdp/Makefile create mode 100644 vendor/github.com/koron/go-ssdp/README.md create mode 100644 vendor/github.com/koron/go-ssdp/advertise.go create mode 100644 vendor/github.com/koron/go-ssdp/announce.go create mode 100644 vendor/github.com/koron/go-ssdp/interface.go create mode 100644 vendor/github.com/koron/go-ssdp/log.go create mode 100644 vendor/github.com/koron/go-ssdp/monitor.go create mode 100644 vendor/github.com/koron/go-ssdp/search.go create mode 100644 vendor/github.com/koron/go-ssdp/udp.go create mode 100644 vendor/github.com/libp2p/go-addr-util/.travis.yml create mode 100644 vendor/github.com/libp2p/go-addr-util/LICENSE create mode 100644 vendor/github.com/libp2p/go-addr-util/Makefile create mode 100644 vendor/github.com/libp2p/go-addr-util/README.md create mode 100644 vendor/github.com/libp2p/go-addr-util/addr.go create mode 100644 vendor/github.com/libp2p/go-addr-util/codecov.yml create mode 100644 vendor/github.com/libp2p/go-addr-util/filter.go create mode 100644 vendor/github.com/libp2p/go-addr-util/go.mod create mode 100644 vendor/github.com/libp2p/go-addr-util/go.sum create mode 100644 vendor/github.com/libp2p/go-addr-util/package.json create mode 100644 vendor/github.com/libp2p/go-buffer-pool/.travis.yml create mode 100644 vendor/github.com/libp2p/go-buffer-pool/LICENSE create mode 100644 vendor/github.com/libp2p/go-buffer-pool/LICENSE-BSD create mode 100644 vendor/github.com/libp2p/go-buffer-pool/Makefile create mode 100644 vendor/github.com/libp2p/go-buffer-pool/README.md create mode 100644 vendor/github.com/libp2p/go-buffer-pool/buffer.go create mode 100644 vendor/github.com/libp2p/go-buffer-pool/codecov.yml create mode 100644 vendor/github.com/libp2p/go-buffer-pool/go.mod create mode 100644 vendor/github.com/libp2p/go-buffer-pool/package.json create mode 100644 vendor/github.com/libp2p/go-buffer-pool/pool.go create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/.travis.yml create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/LICENSE create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/README.md create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/go.mod create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/go.sum create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/package.json create mode 100644 vendor/github.com/libp2p/go-conn-security-multistream/ssms.go create mode 100644 vendor/github.com/libp2p/go-conn-security/.travis.yml create mode 100644 vendor/github.com/libp2p/go-conn-security/LICENSE create mode 100644 vendor/github.com/libp2p/go-conn-security/README.md create mode 100644 vendor/github.com/libp2p/go-conn-security/go.mod create mode 100644 vendor/github.com/libp2p/go-conn-security/go.sum create mode 100644 vendor/github.com/libp2p/go-conn-security/insecure/insecure.go create mode 100644 vendor/github.com/libp2p/go-conn-security/interface.go create mode 100644 vendor/github.com/libp2p/go-conn-security/package.json create mode 100644 vendor/github.com/libp2p/go-flow-metrics/.travis.yml create mode 100644 vendor/github.com/libp2p/go-flow-metrics/LICENSE create mode 100644 vendor/github.com/libp2p/go-flow-metrics/Makefile create mode 100644 vendor/github.com/libp2p/go-flow-metrics/README.md create mode 100644 vendor/github.com/libp2p/go-flow-metrics/go.mod create mode 100644 vendor/github.com/libp2p/go-flow-metrics/meter.go create mode 100644 vendor/github.com/libp2p/go-flow-metrics/package.json create mode 100644 vendor/github.com/libp2p/go-flow-metrics/registry.go create mode 100644 vendor/github.com/libp2p/go-flow-metrics/sweeper.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/proto.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat-svc/svc.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/autonat.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/client.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/notify.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-autonat/proto.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/conn.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/dial.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/listen.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/notify.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/relay.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/transport.go create mode 100644 vendor/github.com/libp2p/go-libp2p-circuit/util.go create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/connmgr.go create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-connmgr/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/ecdsa.go create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/ed25519.go create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/key.go create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/rsa.go create mode 100644 vendor/github.com/libp2p/go-libp2p-crypto/secp256k1.go create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/options.go create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/routing.go create mode 100644 vendor/github.com/libp2p/go-libp2p-discovery/util.go create mode 100644 vendor/github.com/libp2p/go-libp2p-host/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-host/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-host/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-host/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-host/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-host/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-host/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-host/helpers.go create mode 100644 vendor/github.com/libp2p/go-libp2p-host/host.go create mode 100644 vendor/github.com/libp2p/go-libp2p-host/match.go create mode 100644 vendor/github.com/libp2p/go-libp2p-host/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/null.go create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-connmgr/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/error.go create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-interface-pnet/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/dht.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/dht_bootstrap.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/dht_net.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/dial_queue.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/doc.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/handlers.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/lookup.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/metrics/metrics.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_posix.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_windows.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/notif.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/opts/options.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/pb/message.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/providers/providers.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/query.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/records.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/routing.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/routing_options.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kad-dht/util.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/bucket.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/keyspace.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/xor.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/sorting.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/table.go create mode 100644 vendor/github.com/libp2p/go-libp2p-kbucket/util.go create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/loggables.go create mode 100644 vendor/github.com/libp2p/go-libp2p-loggables/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/bw_stats.go create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-metrics/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/mapping.go create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/nat.go create mode 100644 vendor/github.com/libp2p/go-libp2p-nat/notifier.go create mode 100644 vendor/github.com/libp2p/go-libp2p-net/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-net/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-net/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-net/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-net/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-net/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-net/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-net/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-net/notifiee.go create mode 100644 vendor/github.com/libp2p/go-libp2p-net/options.go create mode 100644 vendor/github.com/libp2p/go-libp2p-net/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-net/stream_util.go create mode 100644 vendor/github.com/libp2p/go-libp2p-net/timeouts.go create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/key.go create mode 100644 vendor/github.com/libp2p/go-libp2p-netutil/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/peer.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/peer_serde.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/peerset/peerset.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peer/test/utils.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/addr/addrsrcs.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/addr/sorting.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/metrics.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/peerinfo.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/peerstore.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/addr_book.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/keybook.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/metadata.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/peerstore.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/queue/distance.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/queue/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p-peerstore/queue/sync.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/codec.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/fingerprint.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/generate.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/protector.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pnet/psk_conn.go create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-protocol/protocol.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub-router/pubsub.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/blacklist.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/comm.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/doc.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/floodsub.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/gossipsub.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/mcache.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/notify.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/pubsub.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/randomsub.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/sign.go create mode 100644 vendor/github.com/libp2p/go-libp2p-pubsub/subscription.go create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/conn.go create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/crypto.go create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/listener.go create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/quic_multiaddr.go create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/stream.go create mode 100644 vendor/github.com/libp2p/go-libp2p-quic-transport/transport.go create mode 100644 vendor/github.com/libp2p/go-libp2p-record/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-record/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-record/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-record/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-record/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-record/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-record/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-record/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-record/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-record/pb/record.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-record/pb/record.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-record/pubkey.go create mode 100644 vendor/github.com/libp2p/go-libp2p-record/record.go create mode 100644 vendor/github.com/libp2p/go-libp2p-record/util.go create mode 100644 vendor/github.com/libp2p/go-libp2p-record/validator.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/bootstrap.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/composed.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/limited.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/null.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/parallel.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing-helpers/tiered.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/notifications/query.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/options/options.go create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-routing/routing.go create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/al.go create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/gx-workspace-update.json create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.proto create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/protocol.go create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/rw.go create mode 100644 vendor/github.com/libp2p/go-libp2p-secio/transport.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/addrs.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/dial_sync.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/limiter.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm_addr.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm_conn.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm_dial.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm_listen.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm_stream.go create mode 100644 vendor/github.com/libp2p/go-libp2p-swarm/swarm_transport.go create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/conn.go create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/listener.go create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/threshold.go create mode 100644 vendor/github.com/libp2p/go-libp2p-transport-upgrader/upgrader.go create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/package.json create mode 100644 vendor/github.com/libp2p/go-libp2p-transport/transport.go create mode 100644 vendor/github.com/libp2p/go-libp2p/.gitignore create mode 100644 vendor/github.com/libp2p/go-libp2p/.travis.yml create mode 100644 vendor/github.com/libp2p/go-libp2p/LICENSE create mode 100644 vendor/github.com/libp2p/go-libp2p/NEWS.md create mode 100644 vendor/github.com/libp2p/go-libp2p/README.md create mode 100644 vendor/github.com/libp2p/go-libp2p/codecov.yml create mode 100644 vendor/github.com/libp2p/go-libp2p/config/config.go create mode 100644 vendor/github.com/libp2p/go-libp2p/config/constructor_types.go create mode 100644 vendor/github.com/libp2p/go-libp2p/config/muxer.go create mode 100644 vendor/github.com/libp2p/go-libp2p/config/reflection_magic.go create mode 100644 vendor/github.com/libp2p/go-libp2p/config/security.go create mode 100644 vendor/github.com/libp2p/go-libp2p/config/transport.go create mode 100644 vendor/github.com/libp2p/go-libp2p/defaults.go create mode 100644 vendor/github.com/libp2p/go-libp2p/error_util.go create mode 100644 vendor/github.com/libp2p/go-libp2p/go.mod create mode 100644 vendor/github.com/libp2p/go-libp2p/go.sum create mode 100644 vendor/github.com/libp2p/go-libp2p/libp2p.go create mode 100644 vendor/github.com/libp2p/go-libp2p/options.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/discovery/mdns.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/basic/basic_host.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/basic/natmgr.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/relay/addrsplosion.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/relay/autorelay.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/relay/doc.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/relay/log.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/relay/relay.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/host/routed/routed.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/interface.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_conn.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_link.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_net.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_peernet.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_printer.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_stream.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/net/mock/ratelimiter.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/id.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/obsaddr.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/Makefile create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.pb.go create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.proto create mode 100644 vendor/github.com/libp2p/go-libp2p/p2p/protocol/ping/ping.go create mode 100644 vendor/github.com/libp2p/go-libp2p/package-list.json create mode 100644 vendor/github.com/libp2p/go-maddr-filter/.travis.yml create mode 100644 vendor/github.com/libp2p/go-maddr-filter/LICENSE create mode 100644 vendor/github.com/libp2p/go-maddr-filter/Makefile create mode 100644 vendor/github.com/libp2p/go-maddr-filter/README.md create mode 100644 vendor/github.com/libp2p/go-maddr-filter/codecov.yml create mode 100644 vendor/github.com/libp2p/go-maddr-filter/filter.go create mode 100644 vendor/github.com/libp2p/go-maddr-filter/go.mod create mode 100644 vendor/github.com/libp2p/go-maddr-filter/go.sum create mode 100644 vendor/github.com/libp2p/go-maddr-filter/package.json create mode 100644 vendor/github.com/libp2p/go-mplex/.travis.yml create mode 100644 vendor/github.com/libp2p/go-mplex/LICENSE create mode 100644 vendor/github.com/libp2p/go-mplex/Makefile create mode 100644 vendor/github.com/libp2p/go-mplex/README.md create mode 100644 vendor/github.com/libp2p/go-mplex/codecov.yml create mode 100644 vendor/github.com/libp2p/go-mplex/go.mod create mode 100644 vendor/github.com/libp2p/go-mplex/go.sum create mode 100644 vendor/github.com/libp2p/go-mplex/multiplex.go create mode 100644 vendor/github.com/libp2p/go-mplex/package.json create mode 100644 vendor/github.com/libp2p/go-mplex/stream.go create mode 100644 vendor/github.com/libp2p/go-msgio/.gxignore create mode 100644 vendor/github.com/libp2p/go-msgio/.travis.yml create mode 100644 vendor/github.com/libp2p/go-msgio/LICENSE create mode 100644 vendor/github.com/libp2p/go-msgio/README.md create mode 100644 vendor/github.com/libp2p/go-msgio/chan.go create mode 100644 vendor/github.com/libp2p/go-msgio/codecov.yml create mode 100644 vendor/github.com/libp2p/go-msgio/fuzz.go create mode 100644 vendor/github.com/libp2p/go-msgio/go.mod create mode 100644 vendor/github.com/libp2p/go-msgio/go.sum create mode 100644 vendor/github.com/libp2p/go-msgio/limit.go create mode 100644 vendor/github.com/libp2p/go-msgio/msgio.go create mode 100644 vendor/github.com/libp2p/go-msgio/num.go create mode 100644 vendor/github.com/libp2p/go-msgio/varint.go create mode 100644 vendor/github.com/libp2p/go-nat/.travis.yml create mode 100644 vendor/github.com/libp2p/go-nat/LICENSE create mode 100644 vendor/github.com/libp2p/go-nat/README.md create mode 100644 vendor/github.com/libp2p/go-nat/go.mod create mode 100644 vendor/github.com/libp2p/go-nat/go.sum create mode 100644 vendor/github.com/libp2p/go-nat/nat.go create mode 100644 vendor/github.com/libp2p/go-nat/natpmp.go create mode 100644 vendor/github.com/libp2p/go-nat/upnp.go create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/.travis.yml create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/LICENSE create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/Makefile create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/README.md create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/codecov.yml create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/dial.go create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/go.mod create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/go.sum create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/listen.go create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/multidialer.go create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/package.json create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/reuseport.go create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/singledialer.go create mode 100644 vendor/github.com/libp2p/go-reuseport-transport/transport.go create mode 100644 vendor/github.com/libp2p/go-reuseport/.travis.yml create mode 100644 vendor/github.com/libp2p/go-reuseport/LICENSE create mode 100644 vendor/github.com/libp2p/go-reuseport/Makefile create mode 100644 vendor/github.com/libp2p/go-reuseport/README.md create mode 100644 vendor/github.com/libp2p/go-reuseport/addr.go create mode 100644 vendor/github.com/libp2p/go-reuseport/codecov.yml create mode 100644 vendor/github.com/libp2p/go-reuseport/control_unix.go create mode 100644 vendor/github.com/libp2p/go-reuseport/control_wasm.go create mode 100644 vendor/github.com/libp2p/go-reuseport/control_windows.go create mode 100644 vendor/github.com/libp2p/go-reuseport/go.mod create mode 100644 vendor/github.com/libp2p/go-reuseport/go.sum create mode 100644 vendor/github.com/libp2p/go-reuseport/interface.go create mode 100644 vendor/github.com/libp2p/go-reuseport/package.json create mode 100644 vendor/github.com/libp2p/go-stream-muxer/.gitignore create mode 100644 vendor/github.com/libp2p/go-stream-muxer/.gxignore create mode 100644 vendor/github.com/libp2p/go-stream-muxer/.travis.yml create mode 100644 vendor/github.com/libp2p/go-stream-muxer/LICENSE create mode 100644 vendor/github.com/libp2p/go-stream-muxer/Makefile create mode 100644 vendor/github.com/libp2p/go-stream-muxer/README.md create mode 100644 vendor/github.com/libp2p/go-stream-muxer/codecov.yml create mode 100644 vendor/github.com/libp2p/go-stream-muxer/go.mod create mode 100644 vendor/github.com/libp2p/go-stream-muxer/muxer.go create mode 100644 vendor/github.com/libp2p/go-stream-muxer/package.json create mode 100644 vendor/github.com/libp2p/go-tcp-transport/.travis.yml create mode 100644 vendor/github.com/libp2p/go-tcp-transport/LICENSE create mode 100644 vendor/github.com/libp2p/go-tcp-transport/Makefile create mode 100644 vendor/github.com/libp2p/go-tcp-transport/README.md create mode 100644 vendor/github.com/libp2p/go-tcp-transport/codecov.yml create mode 100644 vendor/github.com/libp2p/go-tcp-transport/go.mod create mode 100644 vendor/github.com/libp2p/go-tcp-transport/go.sum create mode 100644 vendor/github.com/libp2p/go-tcp-transport/package.json create mode 100644 vendor/github.com/libp2p/go-tcp-transport/reuseport.go create mode 100644 vendor/github.com/libp2p/go-tcp-transport/tcp.go create mode 100644 vendor/github.com/libp2p/go-testutil/.travis.yml create mode 100644 vendor/github.com/libp2p/go-testutil/LICENSE create mode 100644 vendor/github.com/libp2p/go-testutil/Makefile create mode 100644 vendor/github.com/libp2p/go-testutil/README.md create mode 100644 vendor/github.com/libp2p/go-testutil/codecov.yml create mode 100644 vendor/github.com/libp2p/go-testutil/gen.go create mode 100644 vendor/github.com/libp2p/go-testutil/go.mod create mode 100644 vendor/github.com/libp2p/go-testutil/go.sum create mode 100644 vendor/github.com/libp2p/go-testutil/identity.go create mode 100644 vendor/github.com/libp2p/go-testutil/latency_config.go create mode 100644 vendor/github.com/libp2p/go-testutil/package.json create mode 100644 vendor/github.com/libp2p/go-testutil/rand.go create mode 100644 vendor/github.com/libp2p/go-testutil/util.go create mode 100644 vendor/github.com/libp2p/go-ws-transport/.travis.yml create mode 100644 vendor/github.com/libp2p/go-ws-transport/Makefile create mode 100644 vendor/github.com/libp2p/go-ws-transport/README.md create mode 100644 vendor/github.com/libp2p/go-ws-transport/addrs.go create mode 100644 vendor/github.com/libp2p/go-ws-transport/codecov.yml create mode 100644 vendor/github.com/libp2p/go-ws-transport/conn.go create mode 100644 vendor/github.com/libp2p/go-ws-transport/go.mod create mode 100644 vendor/github.com/libp2p/go-ws-transport/go.sum create mode 100644 vendor/github.com/libp2p/go-ws-transport/listener.go create mode 100644 vendor/github.com/libp2p/go-ws-transport/package.json create mode 100644 vendor/github.com/libp2p/go-ws-transport/websocket.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/.editorconfig create mode 100644 vendor/github.com/lucas-clemente/quic-go/.gitignore create mode 100644 vendor/github.com/lucas-clemente/quic-go/.golangci.yml create mode 100644 vendor/github.com/lucas-clemente/quic-go/.travis.yml create mode 100644 vendor/github.com/lucas-clemente/quic-go/Changelog.md create mode 100644 vendor/github.com/lucas-clemente/quic-go/LICENSE create mode 100644 vendor/github.com/lucas-clemente/quic-go/README.md create mode 100644 vendor/github.com/lucas-clemente/quic-go/appveyor.yml create mode 100644 vendor/github.com/lucas-clemente/quic-go/buffer_pool.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/client.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/codecov.yml create mode 100644 vendor/github.com/lucas-clemente/quic-go/conn.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/crypto_stream.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/crypto_stream_manager.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/frame_sorter.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/framer.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/go.mod create mode 100644 vendor/github.com/lucas-clemente/quic-go/go.sum create mode 100644 vendor/github.com/lucas-clemente/quic-go/interface.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/gen.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/interfaces.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_linkedlist.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_number_generator.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_handler.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_history.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_tracker.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/retransmittable.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/send_mode.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_handler.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_history.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/bandwidth.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/clock.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic_sender.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/hybrid_slow_start.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/interface.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/prr_sender.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/rtt_stats.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/congestion/stats.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/base_flow_controller.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/connection_flow_controller.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/interface.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/stream_flow_controller.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/aead.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_generator.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_protector.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/initial_aead.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/interface.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/qtls.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/tls_extension_handler.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/transport_parameters.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/handshake/unsafe.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/connection_id.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/encryption_level.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/packet_number.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/params.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/perspective.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/protocol.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/stream_id.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/protocol/version.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/qerr/error_codes.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/qerr/quic_error.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/atomic_bool.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/byteinterval_linkedlist.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder_big_endian.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/gen.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/host.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/log.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/minmax.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/packet_interval.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/packetinterval_linkedlist.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/streamframe_interval.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/timer.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/utils/varint.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_range.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/connection_close_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/crypto_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/data_blocked_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/extended_header.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/frame_parser.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/header.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/interface.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/log.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/max_data_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/max_stream_data_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/max_streams_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/new_connection_id_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/new_token_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/path_challenge_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/path_response_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/ping_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/reset_stream_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/retire_connection_id_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/stop_sending_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_data_blocked_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/streams_blocked_frame.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/internal/wire/version_negotiation.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/mockgen.go create mode 100755 vendor/github.com/lucas-clemente/quic-go/mockgen_private.sh create mode 100644 vendor/github.com/lucas-clemente/quic-go/multiplexer.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/packet_handler_map.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/packet_packer.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/packet_unpacker.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/receive_stream.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/send_stream.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/server.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/session.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/stream.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_generic_helper.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_bidi.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_generic.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_uni.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_bidi.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_generic.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_uni.go create mode 100644 vendor/github.com/lucas-clemente/quic-go/window_update_queue.go create mode 100644 vendor/github.com/marten-seemann/qtls/alert.go create mode 100644 vendor/github.com/marten-seemann/qtls/auth.go create mode 100644 vendor/github.com/marten-seemann/qtls/cipher_suites.go create mode 100644 vendor/github.com/marten-seemann/qtls/common.go create mode 100644 vendor/github.com/marten-seemann/qtls/conn.go create mode 100644 vendor/github.com/marten-seemann/qtls/generate_cert.go create mode 100644 vendor/github.com/marten-seemann/qtls/go.mod create mode 100644 vendor/github.com/marten-seemann/qtls/go.sum create mode 100644 vendor/github.com/marten-seemann/qtls/handshake_client.go create mode 100644 vendor/github.com/marten-seemann/qtls/handshake_client_tls13.go create mode 100644 vendor/github.com/marten-seemann/qtls/handshake_messages.go create mode 100644 vendor/github.com/marten-seemann/qtls/handshake_server.go create mode 100644 vendor/github.com/marten-seemann/qtls/handshake_server_tls13.go create mode 100644 vendor/github.com/marten-seemann/qtls/key_agreement.go create mode 100644 vendor/github.com/marten-seemann/qtls/key_schedule.go create mode 100644 vendor/github.com/marten-seemann/qtls/prf.go create mode 100644 vendor/github.com/marten-seemann/qtls/ticket.go create mode 100644 vendor/github.com/marten-seemann/qtls/tls.go delete mode 100644 vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go delete mode 100644 vendor/github.com/mattn/go-colorable/_example/logrus/main.go delete mode 100644 vendor/github.com/mattn/go-colorable/_example/title/main.go delete mode 100644 vendor/github.com/mattn/go-colorable/cmd/colorable/colorable.go delete mode 100644 vendor/github.com/mattn/go-colorable/colorable_test.go delete mode 100644 vendor/github.com/mattn/go-isatty/example_test.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_others_test.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_windows_test.go create mode 100644 vendor/github.com/miekg/dns/.codecov.yml create mode 100644 vendor/github.com/miekg/dns/.gitignore create mode 100644 vendor/github.com/miekg/dns/.travis.yml create mode 100644 vendor/github.com/miekg/dns/AUTHORS create mode 100644 vendor/github.com/miekg/dns/CONTRIBUTORS create mode 100644 vendor/github.com/miekg/dns/COPYRIGHT create mode 100644 vendor/github.com/miekg/dns/Gopkg.lock create mode 100644 vendor/github.com/miekg/dns/Gopkg.toml create mode 100644 vendor/github.com/miekg/dns/LICENSE create mode 100644 vendor/github.com/miekg/dns/Makefile.fuzz create mode 100644 vendor/github.com/miekg/dns/Makefile.release create mode 100644 vendor/github.com/miekg/dns/README.md create mode 100644 vendor/github.com/miekg/dns/acceptfunc.go create mode 100644 vendor/github.com/miekg/dns/client.go create mode 100644 vendor/github.com/miekg/dns/clientconfig.go create mode 100644 vendor/github.com/miekg/dns/dane.go create mode 100644 vendor/github.com/miekg/dns/defaults.go create mode 100644 vendor/github.com/miekg/dns/dns.go create mode 100644 vendor/github.com/miekg/dns/dnssec.go create mode 100644 vendor/github.com/miekg/dns/dnssec_keygen.go create mode 100644 vendor/github.com/miekg/dns/dnssec_keyscan.go create mode 100644 vendor/github.com/miekg/dns/dnssec_privkey.go create mode 100644 vendor/github.com/miekg/dns/doc.go create mode 100644 vendor/github.com/miekg/dns/duplicate.go create mode 100644 vendor/github.com/miekg/dns/duplicate_generate.go create mode 100644 vendor/github.com/miekg/dns/edns.go create mode 100644 vendor/github.com/miekg/dns/format.go create mode 100644 vendor/github.com/miekg/dns/fuzz.go create mode 100644 vendor/github.com/miekg/dns/generate.go create mode 100644 vendor/github.com/miekg/dns/labels.go create mode 100644 vendor/github.com/miekg/dns/listen_go111.go create mode 100644 vendor/github.com/miekg/dns/listen_go_not111.go create mode 100644 vendor/github.com/miekg/dns/msg.go create mode 100644 vendor/github.com/miekg/dns/msg_generate.go create mode 100644 vendor/github.com/miekg/dns/msg_helpers.go create mode 100644 vendor/github.com/miekg/dns/msg_truncate.go create mode 100644 vendor/github.com/miekg/dns/nsecx.go create mode 100644 vendor/github.com/miekg/dns/privaterr.go create mode 100644 vendor/github.com/miekg/dns/reverse.go create mode 100644 vendor/github.com/miekg/dns/sanitize.go create mode 100644 vendor/github.com/miekg/dns/scan.go create mode 100644 vendor/github.com/miekg/dns/scan_rr.go create mode 100644 vendor/github.com/miekg/dns/serve_mux.go create mode 100644 vendor/github.com/miekg/dns/server.go create mode 100644 vendor/github.com/miekg/dns/sig0.go create mode 100644 vendor/github.com/miekg/dns/singleinflight.go create mode 100644 vendor/github.com/miekg/dns/smimea.go create mode 100644 vendor/github.com/miekg/dns/tlsa.go create mode 100644 vendor/github.com/miekg/dns/tsig.go create mode 100644 vendor/github.com/miekg/dns/types.go create mode 100644 vendor/github.com/miekg/dns/types_generate.go create mode 100644 vendor/github.com/miekg/dns/udp.go create mode 100644 vendor/github.com/miekg/dns/udp_windows.go create mode 100644 vendor/github.com/miekg/dns/update.go create mode 100644 vendor/github.com/miekg/dns/version.go create mode 100644 vendor/github.com/miekg/dns/xfr.go create mode 100644 vendor/github.com/miekg/dns/zduplicate.go create mode 100644 vendor/github.com/miekg/dns/zmsg.go create mode 100644 vendor/github.com/miekg/dns/ztypes.go create mode 100644 vendor/github.com/minio/blake2b-simd/.gitignore create mode 100644 vendor/github.com/minio/blake2b-simd/.travis.yml create mode 100644 vendor/github.com/minio/blake2b-simd/LICENSE create mode 100644 vendor/github.com/minio/blake2b-simd/README.md create mode 100644 vendor/github.com/minio/blake2b-simd/appveyor.yml create mode 100644 vendor/github.com/minio/blake2b-simd/blake2b.go create mode 100644 vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.go create mode 100644 vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.s create mode 100644 vendor/github.com/minio/blake2b-simd/compressAvx_amd64.go create mode 100644 vendor/github.com/minio/blake2b-simd/compressAvx_amd64.s create mode 100644 vendor/github.com/minio/blake2b-simd/compressSse_amd64.go create mode 100644 vendor/github.com/minio/blake2b-simd/compressSse_amd64.s create mode 100644 vendor/github.com/minio/blake2b-simd/compress_amd64.go create mode 100644 vendor/github.com/minio/blake2b-simd/compress_generic.go create mode 100644 vendor/github.com/minio/blake2b-simd/compress_noasm.go create mode 100644 vendor/github.com/minio/blake2b-simd/cpuid.go create mode 100644 vendor/github.com/minio/blake2b-simd/cpuid_386.s create mode 100644 vendor/github.com/minio/blake2b-simd/cpuid_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/.gitignore create mode 100644 vendor/github.com/minio/sha256-simd/.travis.yml create mode 100644 vendor/github.com/minio/sha256-simd/LICENSE create mode 100644 vendor/github.com/minio/sha256-simd/README.md create mode 100644 vendor/github.com/minio/sha256-simd/appveyor.yml create mode 100644 vendor/github.com/minio/sha256-simd/cpuid.go create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_386.go create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_386.s create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_arm.go create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_linux_arm64.go create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_other.go create mode 100644 vendor/github.com/minio/sha256-simd/cpuid_others_arm64.go create mode 100644 vendor/github.com/minio/sha256-simd/go.mod create mode 100644 vendor/github.com/minio/sha256-simd/sha256.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.asm create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.s create mode 100644 vendor/github.com/minio/sha256-simd/sha256block_386.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256block_amd64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256block_arm.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256block_arm64.go create mode 100644 vendor/github.com/minio/sha256-simd/sha256block_arm64.s create mode 100644 vendor/github.com/minio/sha256-simd/sha256block_other.go create mode 100644 vendor/github.com/mr-tron/base58/LICENSE create mode 100644 vendor/github.com/mr-tron/base58/base58/DEPRECATED.md create mode 100644 vendor/github.com/mr-tron/base58/base58/alphabet.go create mode 100644 vendor/github.com/mr-tron/base58/base58/base58.go create mode 100644 vendor/github.com/multiformats/go-base32/LICENSE create mode 100644 vendor/github.com/multiformats/go-base32/base32.go create mode 100644 vendor/github.com/multiformats/go-base32/go.mod create mode 100644 vendor/github.com/multiformats/go-base32/package.json create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/.gitignore create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/LICENSE create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/README.md create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/dns.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/go.mod create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/go.sum create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/package.json create mode 100644 vendor/github.com/multiformats/go-multiaddr-dns/resolve.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/.gitignore create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/LICENSE create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/Makefile create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/README.md create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/convert.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/doc.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/go.mod create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/go.sum create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/ip.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/net.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/package.json create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/private.go create mode 100644 vendor/github.com/multiformats/go-multiaddr-net/registry.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/.gitignore create mode 100644 vendor/github.com/multiformats/go-multiaddr/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multiaddr/LICENSE create mode 100644 vendor/github.com/multiformats/go-multiaddr/Makefile create mode 100644 vendor/github.com/multiformats/go-multiaddr/README.md create mode 100644 vendor/github.com/multiformats/go-multiaddr/codec.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/component.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/doc.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/go.mod create mode 100644 vendor/github.com/multiformats/go-multiaddr/go.sum create mode 100644 vendor/github.com/multiformats/go-multiaddr/interface.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/multiaddr.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/package.json create mode 100644 vendor/github.com/multiformats/go-multiaddr/protocol.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/protocols.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/transcoders.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/util.go create mode 100644 vendor/github.com/multiformats/go-multiaddr/varint.go create mode 100644 vendor/github.com/multiformats/go-multibase/.codecov.yml create mode 100644 vendor/github.com/multiformats/go-multibase/.gitignore create mode 100644 vendor/github.com/multiformats/go-multibase/.gitmodules create mode 100644 vendor/github.com/multiformats/go-multibase/.gxignore create mode 100644 vendor/github.com/multiformats/go-multibase/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multibase/LICENSE create mode 100644 vendor/github.com/multiformats/go-multibase/Makefile create mode 100644 vendor/github.com/multiformats/go-multibase/README.md create mode 100644 vendor/github.com/multiformats/go-multibase/base16.go create mode 100644 vendor/github.com/multiformats/go-multibase/base2.go create mode 100644 vendor/github.com/multiformats/go-multibase/base32.go create mode 100644 vendor/github.com/multiformats/go-multibase/encoder.go create mode 100644 vendor/github.com/multiformats/go-multibase/go.mod create mode 100644 vendor/github.com/multiformats/go-multibase/go.sum create mode 100644 vendor/github.com/multiformats/go-multibase/multibase.go create mode 100644 vendor/github.com/multiformats/go-multibase/package.json create mode 100644 vendor/github.com/multiformats/go-multicodec/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multicodec/LICENSE create mode 100644 vendor/github.com/multiformats/go-multicodec/Makefile create mode 100644 vendor/github.com/multiformats/go-multicodec/README.md create mode 100644 vendor/github.com/multiformats/go-multicodec/base/b64/codec.go create mode 100644 vendor/github.com/multiformats/go-multicodec/base/bin/codec.go create mode 100644 vendor/github.com/multiformats/go-multicodec/base/errors.go create mode 100644 vendor/github.com/multiformats/go-multicodec/base/hex/codec.go create mode 100644 vendor/github.com/multiformats/go-multicodec/base/mux/mux.go create mode 100644 vendor/github.com/multiformats/go-multicodec/cbor/cbor.go create mode 100644 vendor/github.com/multiformats/go-multicodec/coding.go create mode 100644 vendor/github.com/multiformats/go-multicodec/header.go create mode 100644 vendor/github.com/multiformats/go-multicodec/json/json.go create mode 100644 vendor/github.com/multiformats/go-multicodec/multicodec.go create mode 100644 vendor/github.com/multiformats/go-multicodec/mux/all.go create mode 100644 vendor/github.com/multiformats/go-multicodec/mux/mux.go create mode 100644 vendor/github.com/multiformats/go-multicodec/package.json create mode 100644 vendor/github.com/multiformats/go-multihash/.gitignore create mode 100644 vendor/github.com/multiformats/go-multihash/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multihash/LICENSE create mode 100644 vendor/github.com/multiformats/go-multihash/Makefile create mode 100644 vendor/github.com/multiformats/go-multihash/README.md create mode 100644 vendor/github.com/multiformats/go-multihash/codecov.yml create mode 100644 vendor/github.com/multiformats/go-multihash/go.mod create mode 100644 vendor/github.com/multiformats/go-multihash/go.sum create mode 100644 vendor/github.com/multiformats/go-multihash/io.go create mode 100644 vendor/github.com/multiformats/go-multihash/multihash.go create mode 100644 vendor/github.com/multiformats/go-multihash/multihash/LICENSE create mode 100644 vendor/github.com/multiformats/go-multihash/package.json create mode 100644 vendor/github.com/multiformats/go-multihash/sum.go create mode 100644 vendor/github.com/multiformats/go-multistream/.travis.yml create mode 100644 vendor/github.com/multiformats/go-multistream/LICENSE create mode 100644 vendor/github.com/multiformats/go-multistream/Makefile create mode 100644 vendor/github.com/multiformats/go-multistream/README.md create mode 100644 vendor/github.com/multiformats/go-multistream/client.go create mode 100644 vendor/github.com/multiformats/go-multistream/go.mod create mode 100644 vendor/github.com/multiformats/go-multistream/lazyClient.go create mode 100644 vendor/github.com/multiformats/go-multistream/lazyServer.go create mode 100644 vendor/github.com/multiformats/go-multistream/multistream.go create mode 100644 vendor/github.com/multiformats/go-multistream/package.json create mode 100644 vendor/github.com/opentracing/opentracing-go/.gitignore create mode 100644 vendor/github.com/opentracing/opentracing-go/.travis.yml create mode 100644 vendor/github.com/opentracing/opentracing-go/CHANGELOG.md create mode 100644 vendor/github.com/opentracing/opentracing-go/LICENSE create mode 100644 vendor/github.com/opentracing/opentracing-go/Makefile create mode 100644 vendor/github.com/opentracing/opentracing-go/README.md create mode 100644 vendor/github.com/opentracing/opentracing-go/ext/tags.go create mode 100644 vendor/github.com/opentracing/opentracing-go/globaltracer.go create mode 100644 vendor/github.com/opentracing/opentracing-go/gocontext.go create mode 100644 vendor/github.com/opentracing/opentracing-go/log/field.go create mode 100644 vendor/github.com/opentracing/opentracing-go/log/util.go create mode 100644 vendor/github.com/opentracing/opentracing-go/noop.go create mode 100644 vendor/github.com/opentracing/opentracing-go/propagation.go create mode 100644 vendor/github.com/opentracing/opentracing-go/span.go create mode 100644 vendor/github.com/opentracing/opentracing-go/tracer.go create mode 100644 vendor/github.com/polydawn/refmt/.gitignore create mode 100644 vendor/github.com/polydawn/refmt/.gitmodules create mode 120000 vendor/github.com/polydawn/refmt/.gopath/self create mode 120000 vendor/github.com/polydawn/refmt/.gopath/src/github.com/polydawn/refmt create mode 100644 vendor/github.com/polydawn/refmt/.travis.yml create mode 100644 vendor/github.com/polydawn/refmt/LICENSE create mode 100644 vendor/github.com/polydawn/refmt/README.md create mode 100755 vendor/github.com/polydawn/refmt/allochound create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborCommon.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborDecoder.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborDecoderTerminals.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborEncoder.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborEncoderTerminals.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborHelpers.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/cborOptions.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/doc.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/encodeWriter.go create mode 100644 vendor/github.com/polydawn/refmt/cbor/errors.go create mode 100644 vendor/github.com/polydawn/refmt/cloneHelpers.go create mode 100755 vendor/github.com/polydawn/refmt/cover create mode 100644 vendor/github.com/polydawn/refmt/doc.go create mode 100755 vendor/github.com/polydawn/refmt/goad create mode 100644 vendor/github.com/polydawn/refmt/json/doc.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonCommon.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonDecoder.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonDecoderTerminals.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonEncoder.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonEncoderTerminals.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonHelpers.go create mode 100644 vendor/github.com/polydawn/refmt/json/jsonOptions.go create mode 100644 vendor/github.com/polydawn/refmt/marshalHelpers.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/atlas.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/atlasCommon.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/atlasEntry.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/doc.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/errors.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/mapMorphism.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/structMap.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/structMapAutogen.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/structMapBuilding.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/transformBuilding.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/transformFuncs.go create mode 100644 vendor/github.com/polydawn/refmt/obj/atlas/unionMorphism.go create mode 100644 vendor/github.com/polydawn/refmt/obj/builtins.go create mode 100644 vendor/github.com/polydawn/refmt/obj/doc.go create mode 100644 vendor/github.com/polydawn/refmt/obj/empty.go create mode 100644 vendor/github.com/polydawn/refmt/obj/errors.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshal.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalBuiltins.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalMapWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalSlab.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalSliceWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalStruct.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalTransform.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalUnionKeyed.go create mode 100644 vendor/github.com/polydawn/refmt/obj/marshalWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshal.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalArrayWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalBuiltins.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalMapWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalSlab.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalSliceWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalStruct.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalTransform.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalUnionKeyed.go create mode 100644 vendor/github.com/polydawn/refmt/obj/unmarshalWildcard.go create mode 100644 vendor/github.com/polydawn/refmt/pretty/prettyCommon.go create mode 100644 vendor/github.com/polydawn/refmt/pretty/prettyEncoder.go create mode 100644 vendor/github.com/polydawn/refmt/pretty/prettyEncoderTerminals.go create mode 100644 vendor/github.com/polydawn/refmt/raceway.formula create mode 100644 vendor/github.com/polydawn/refmt/shared/pump.go create mode 100644 vendor/github.com/polydawn/refmt/shared/reader.go create mode 100644 vendor/github.com/polydawn/refmt/tok/token.go create mode 100644 vendor/github.com/polydawn/refmt/unmarshalHelpers.go delete mode 100644 vendor/github.com/prometheus/tsdb/.gitignore delete mode 100644 vendor/github.com/prometheus/tsdb/.travis.yml delete mode 100644 vendor/github.com/prometheus/tsdb/CHANGELOG.md delete mode 100644 vendor/github.com/prometheus/tsdb/MAINTAINERS.md delete mode 100644 vendor/github.com/prometheus/tsdb/Makefile delete mode 100644 vendor/github.com/prometheus/tsdb/Makefile.common delete mode 100644 vendor/github.com/prometheus/tsdb/README.md delete mode 100644 vendor/github.com/prometheus/tsdb/block.go delete mode 100644 vendor/github.com/prometheus/tsdb/block_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/checkpoint.go delete mode 100644 vendor/github.com/prometheus/tsdb/checkpoint_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/chunkenc/bstream.go delete mode 100644 vendor/github.com/prometheus/tsdb/chunkenc/chunk.go delete mode 100644 vendor/github.com/prometheus/tsdb/chunkenc/chunk_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/chunkenc/xor.go delete mode 100644 vendor/github.com/prometheus/tsdb/chunks/chunks.go delete mode 100644 vendor/github.com/prometheus/tsdb/chunks/chunks_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/cmd/tsdb/.gitignore delete mode 100644 vendor/github.com/prometheus/tsdb/cmd/tsdb/README.md delete mode 100644 vendor/github.com/prometheus/tsdb/cmd/tsdb/main.go delete mode 100644 vendor/github.com/prometheus/tsdb/compact.go delete mode 100644 vendor/github.com/prometheus/tsdb/compact_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/db.go delete mode 100644 vendor/github.com/prometheus/tsdb/db_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/docs/format/README.md delete mode 100644 vendor/github.com/prometheus/tsdb/docs/format/chunks.md delete mode 100644 vendor/github.com/prometheus/tsdb/docs/format/index.md delete mode 100644 vendor/github.com/prometheus/tsdb/docs/format/tombstones.md delete mode 100644 vendor/github.com/prometheus/tsdb/docs/format/wal.md delete mode 100644 vendor/github.com/prometheus/tsdb/encoding/encoding.go delete mode 100644 vendor/github.com/prometheus/tsdb/errors/errors.go delete mode 100644 vendor/github.com/prometheus/tsdb/fileutil/flock_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/go.mod delete mode 100644 vendor/github.com/prometheus/tsdb/go.sum delete mode 100644 vendor/github.com/prometheus/tsdb/goversion/goversio_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/goversion/goversion.go delete mode 100644 vendor/github.com/prometheus/tsdb/goversion/init.go delete mode 100644 vendor/github.com/prometheus/tsdb/head.go delete mode 100644 vendor/github.com/prometheus/tsdb/head_bench_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/head_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/index/index.go delete mode 100644 vendor/github.com/prometheus/tsdb/index/index_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/index/postings.go delete mode 100644 vendor/github.com/prometheus/tsdb/index/postings_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/labels/labels.go delete mode 100644 vendor/github.com/prometheus/tsdb/labels/labels_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/labels/selector.go delete mode 100644 vendor/github.com/prometheus/tsdb/mocks_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/querier.go delete mode 100644 vendor/github.com/prometheus/tsdb/querier_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/record.go delete mode 100644 vendor/github.com/prometheus/tsdb/record_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/repair.go delete mode 100644 vendor/github.com/prometheus/tsdb/repair_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/test/conv_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/test/hash_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/test/labels_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/testdata/20kseries.json delete mode 100644 vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/index delete mode 100644 vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/meta.json delete mode 100644 vendor/github.com/prometheus/tsdb/testutil/directory.go delete mode 100644 vendor/github.com/prometheus/tsdb/testutil/logging.go delete mode 100644 vendor/github.com/prometheus/tsdb/testutil/testutil.go delete mode 100644 vendor/github.com/prometheus/tsdb/tombstones.go delete mode 100644 vendor/github.com/prometheus/tsdb/tombstones_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/tsdbutil/buffer.go delete mode 100644 vendor/github.com/prometheus/tsdb/tsdbutil/buffer_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/tsdbutil/chunks.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal/live_reader.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal/reader.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal/reader_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal/wal.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal/wal_test.go delete mode 100644 vendor/github.com/prometheus/tsdb/wal_test.go create mode 100644 vendor/github.com/spaolacci/murmur3/.gitignore create mode 100644 vendor/github.com/spaolacci/murmur3/.travis.yml create mode 100644 vendor/github.com/spaolacci/murmur3/LICENSE create mode 100644 vendor/github.com/spaolacci/murmur3/README.md create mode 100644 vendor/github.com/spaolacci/murmur3/murmur.go create mode 100644 vendor/github.com/spaolacci/murmur3/murmur128.go create mode 100644 vendor/github.com/spaolacci/murmur3/murmur32.go create mode 100644 vendor/github.com/spaolacci/murmur3/murmur64.go delete mode 100644 vendor/github.com/status-im/keycard-go/.gitignore delete mode 100644 vendor/github.com/status-im/keycard-go/Makefile delete mode 100644 vendor/github.com/status-im/keycard-go/README.md delete mode 100644 vendor/github.com/status-im/keycard-go/_assets/ci/Jenkinsfile delete mode 100644 vendor/github.com/status-im/keycard-go/apdu/command.go delete mode 100644 vendor/github.com/status-im/keycard-go/apdu/command_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/apdu/response.go delete mode 100644 vendor/github.com/status-im/keycard-go/apdu/response_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/apdu/utils.go delete mode 100644 vendor/github.com/status-im/keycard-go/apdu/utils_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/command_set.go delete mode 100644 vendor/github.com/status-im/keycard-go/commands.go delete mode 100644 vendor/github.com/status-im/keycard-go/crypto/crypto.go delete mode 100644 vendor/github.com/status-im/keycard-go/crypto/crypto_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/derivationpath/decoder_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/derivationpath/encoder_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/command_set.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/commands.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/commands_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/globalplatform.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/load.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/scp02_keys.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/secure_channel.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/session.go delete mode 100644 vendor/github.com/status-im/keycard-go/globalplatform/session_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/hexutils/hexutils.go delete mode 100644 vendor/github.com/status-im/keycard-go/identifiers/identifiers.go delete mode 100644 vendor/github.com/status-im/keycard-go/io/normal_channel.go delete mode 100644 vendor/github.com/status-im/keycard-go/keycard.go delete mode 100644 vendor/github.com/status-im/keycard-go/secrets.go delete mode 100644 vendor/github.com/status-im/keycard-go/secure_channel.go delete mode 100644 vendor/github.com/status-im/keycard-go/secure_channel_test.go delete mode 100644 vendor/github.com/status-im/keycard-go/types/application_info.go delete mode 100644 vendor/github.com/status-im/keycard-go/types/application_status.go delete mode 100644 vendor/github.com/status-im/keycard-go/types/signature.go delete mode 100644 vendor/github.com/status-im/keycard-go/types/types.go delete mode 100644 vendor/github.com/tyler-smith/go-bip39/bip39_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/.gitignore delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/.travis.yml delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/Makefile delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/README.md delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldForBlockHeader.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockHeaders.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockReceipts.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockTransactions.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksReceipts.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksTransactions.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForStateTrie.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/cmd/root.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/environments/public.toml.example delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/main.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/package.json delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/config.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/database.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/level_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/eth_block_header_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/eth_block_receipts_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/dag_putter_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/eth_block_transactions_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/dag_putter_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/eth_state_trie_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/dag_putter_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/eth_storage_trie_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/ipfs_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/publisher_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/errors.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/transformers_suite_test.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/block_validator.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/blockchain.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/rawdb/accessors_chain.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/database.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb_factory.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/trie.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state_processor.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/database.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/iterator.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/fakes.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/database.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_computer.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_trie_reader.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/storage_trie_reader.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/adder.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/dag_putter.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/publisher.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/block_validator.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/blockchain.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/rawdb/accessors_chain.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/database.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb_factory.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/trie.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state_processor.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp/decode.go delete mode 100644 vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie/iterator.go create mode 100644 vendor/github.com/whyrusleeping/base32/base32.go create mode 100644 vendor/github.com/whyrusleeping/base32/package.json create mode 100644 vendor/github.com/whyrusleeping/cbor/LICENSE create mode 100644 vendor/github.com/whyrusleeping/cbor/go/Makefile create mode 100644 vendor/github.com/whyrusleeping/cbor/go/cbor.go create mode 100644 vendor/github.com/whyrusleeping/cbor/go/doc.go create mode 100644 vendor/github.com/whyrusleeping/chunker/.travis.yml create mode 100644 vendor/github.com/whyrusleeping/chunker/LICENSE create mode 100644 vendor/github.com/whyrusleeping/chunker/README.md create mode 100644 vendor/github.com/whyrusleeping/chunker/chunker.go create mode 100644 vendor/github.com/whyrusleeping/chunker/doc.go create mode 100644 vendor/github.com/whyrusleeping/chunker/package.json create mode 100644 vendor/github.com/whyrusleeping/chunker/polynomials.go create mode 100644 vendor/github.com/whyrusleeping/go-keyspace/.gxlastpubver create mode 100644 vendor/github.com/whyrusleeping/go-keyspace/LICENSE create mode 100644 vendor/github.com/whyrusleeping/go-keyspace/README.md create mode 100644 vendor/github.com/whyrusleeping/go-keyspace/keyspace.go create mode 100644 vendor/github.com/whyrusleeping/go-keyspace/package.json create mode 100644 vendor/github.com/whyrusleeping/go-keyspace/xor.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/.travis.yml create mode 100644 vendor/github.com/whyrusleeping/go-logging/CONTRIBUTORS create mode 100644 vendor/github.com/whyrusleeping/go-logging/LICENSE create mode 100644 vendor/github.com/whyrusleeping/go-logging/README.md create mode 100644 vendor/github.com/whyrusleeping/go-logging/backend.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/format.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/level.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/log.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/logger.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/memory.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/multi.go create mode 100644 vendor/github.com/whyrusleeping/go-logging/syslog.go create mode 100644 vendor/github.com/whyrusleeping/go-notifier/LICENSE create mode 100644 vendor/github.com/whyrusleeping/go-notifier/notifier.go create mode 100644 vendor/github.com/whyrusleeping/go-notifier/package.json create mode 100644 vendor/github.com/whyrusleeping/go-smux-multiplex/.gitignore create mode 100644 vendor/github.com/whyrusleeping/go-smux-multiplex/LICENSE create mode 100644 vendor/github.com/whyrusleeping/go-smux-multiplex/Makefile create mode 100644 vendor/github.com/whyrusleeping/go-smux-multiplex/README.md create mode 100644 vendor/github.com/whyrusleeping/go-smux-multiplex/multiplex.go create mode 100644 vendor/github.com/whyrusleeping/go-smux-multiplex/package.json create mode 100644 vendor/github.com/whyrusleeping/go-smux-multistream/.gitignore create mode 100644 vendor/github.com/whyrusleeping/go-smux-multistream/LICENSE create mode 100644 vendor/github.com/whyrusleeping/go-smux-multistream/Makefile create mode 100644 vendor/github.com/whyrusleeping/go-smux-multistream/README.md create mode 100644 vendor/github.com/whyrusleeping/go-smux-multistream/multistream.go create mode 100644 vendor/github.com/whyrusleeping/go-smux-multistream/package.json create mode 100644 vendor/github.com/whyrusleeping/go-smux-yamux/.gitignore create mode 100644 vendor/github.com/whyrusleeping/go-smux-yamux/LICENSE create mode 100644 vendor/github.com/whyrusleeping/go-smux-yamux/Makefile create mode 100644 vendor/github.com/whyrusleeping/go-smux-yamux/README.md create mode 100644 vendor/github.com/whyrusleeping/go-smux-yamux/package.json create mode 100644 vendor/github.com/whyrusleeping/go-smux-yamux/yamux.go create mode 100644 vendor/github.com/whyrusleeping/mafmt/LICENSE create mode 100644 vendor/github.com/whyrusleeping/mafmt/README.md create mode 100644 vendor/github.com/whyrusleeping/mafmt/package.json create mode 100644 vendor/github.com/whyrusleeping/mafmt/patterns.go create mode 100644 vendor/github.com/whyrusleeping/mdns/.gitignore create mode 100644 vendor/github.com/whyrusleeping/mdns/LICENSE create mode 100644 vendor/github.com/whyrusleeping/mdns/README.md create mode 100644 vendor/github.com/whyrusleeping/mdns/client.go create mode 100644 vendor/github.com/whyrusleeping/mdns/log.go create mode 100644 vendor/github.com/whyrusleeping/mdns/package.json create mode 100644 vendor/github.com/whyrusleeping/mdns/server.go create mode 100644 vendor/github.com/whyrusleeping/mdns/zone.go create mode 100644 vendor/github.com/whyrusleeping/multiaddr-filter/.gxlastpubver create mode 100644 vendor/github.com/whyrusleeping/multiaddr-filter/LICENSE create mode 100644 vendor/github.com/whyrusleeping/multiaddr-filter/README.md create mode 100644 vendor/github.com/whyrusleeping/multiaddr-filter/mask.go create mode 100644 vendor/github.com/whyrusleeping/multiaddr-filter/package.json create mode 100644 vendor/github.com/whyrusleeping/timecache/LICENSE create mode 100644 vendor/github.com/whyrusleeping/timecache/README.md create mode 100644 vendor/github.com/whyrusleeping/timecache/package.json create mode 100644 vendor/github.com/whyrusleeping/timecache/timecache.go create mode 100644 vendor/github.com/whyrusleeping/yamux/.gitignore create mode 100644 vendor/github.com/whyrusleeping/yamux/LICENSE create mode 100644 vendor/github.com/whyrusleeping/yamux/README.md create mode 100644 vendor/github.com/whyrusleeping/yamux/addr.go create mode 100644 vendor/github.com/whyrusleeping/yamux/const.go create mode 100644 vendor/github.com/whyrusleeping/yamux/mux.go create mode 100644 vendor/github.com/whyrusleeping/yamux/package.json create mode 100644 vendor/github.com/whyrusleeping/yamux/session.go create mode 100644 vendor/github.com/whyrusleeping/yamux/spec.md create mode 100644 vendor/github.com/whyrusleeping/yamux/stream.go create mode 100644 vendor/github.com/whyrusleeping/yamux/util.go delete mode 100644 vendor/github.com/wsddn/go-ecdh/ecdh_test.go create mode 100644 vendor/go.opencensus.io/AUTHORS create mode 100644 vendor/go.opencensus.io/LICENSE create mode 100644 vendor/go.opencensus.io/internal/tagencoding/tagencoding.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/doc.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/exemplar.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/label.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/metric.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/point.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/type_string.go create mode 100644 vendor/go.opencensus.io/metric/metricdata/unit.go create mode 100644 vendor/go.opencensus.io/metric/metricproducer/manager.go create mode 100644 vendor/go.opencensus.io/metric/metricproducer/producer.go create mode 100644 vendor/go.opencensus.io/resource/resource.go create mode 100644 vendor/go.opencensus.io/stats/doc.go create mode 100644 vendor/go.opencensus.io/stats/internal/record.go create mode 100644 vendor/go.opencensus.io/stats/measure.go create mode 100644 vendor/go.opencensus.io/stats/measure_float64.go create mode 100644 vendor/go.opencensus.io/stats/measure_int64.go create mode 100644 vendor/go.opencensus.io/stats/record.go create mode 100644 vendor/go.opencensus.io/stats/units.go create mode 100644 vendor/go.opencensus.io/stats/view/aggregation.go create mode 100644 vendor/go.opencensus.io/stats/view/aggregation_data.go create mode 100644 vendor/go.opencensus.io/stats/view/collector.go create mode 100644 vendor/go.opencensus.io/stats/view/doc.go create mode 100644 vendor/go.opencensus.io/stats/view/export.go create mode 100644 vendor/go.opencensus.io/stats/view/view.go create mode 100644 vendor/go.opencensus.io/stats/view/view_to_metric.go create mode 100644 vendor/go.opencensus.io/stats/view/worker.go create mode 100644 vendor/go.opencensus.io/stats/view/worker_commands.go create mode 100644 vendor/go.opencensus.io/tag/context.go create mode 100644 vendor/go.opencensus.io/tag/doc.go create mode 100644 vendor/go.opencensus.io/tag/key.go create mode 100644 vendor/go.opencensus.io/tag/map.go create mode 100644 vendor/go.opencensus.io/tag/map_codec.go create mode 100644 vendor/go.opencensus.io/tag/metadata.go create mode 100644 vendor/go.opencensus.io/tag/profile_19.go create mode 100644 vendor/go.opencensus.io/tag/profile_not19.go create mode 100644 vendor/go.opencensus.io/tag/validate.go create mode 100644 vendor/go4.org/AUTHORS create mode 100644 vendor/go4.org/LICENSE create mode 100644 vendor/go4.org/lock/.gitignore create mode 100644 vendor/go4.org/lock/lock.go create mode 100644 vendor/go4.org/lock/lock_appengine.go create mode 100644 vendor/go4.org/lock/lock_plan9.go create mode 100644 vendor/go4.org/lock/lock_sigzero.go create mode 100644 vendor/go4.org/lock/lock_unix.go create mode 100644 vendor/go4.org/lock/lock_windows.go create mode 100644 vendor/golang.org/x/sys/cpu/byteorder.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_arm.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_mips64x.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_mipsx.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_other_arm64.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_s390x.s create mode 100644 vendor/golang.org/x/sys/cpu/cpu_wasm.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_x86.go create mode 100644 vendor/golang.org/x/sys/unix/README.md create mode 100644 vendor/golang.org/x/sys/unix/asm_aix_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/fcntl.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go create mode 100755 vendor/golang.org/x/sys/unix/mkall.sh create mode 100644 vendor/golang.org/x/sys/unix/mkasm_darwin.go create mode 100755 vendor/golang.org/x/sys/unix/mkerrors.sh create mode 100644 vendor/golang.org/x/sys/unix/mkpost.go create mode 100644 vendor/golang.org/x/sys/unix/mksyscall.go create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_solaris.go create mode 100755 vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl create mode 100644 vendor/golang.org/x/sys/unix/mksysnum.go create mode 100644 vendor/golang.org/x/sys/unix/openbsd_pledge.go create mode 100644 vendor/golang.org/x/sys/unix/openbsd_unveil.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go create mode 100644 vendor/golang.org/x/sys/unix/types_aix.go create mode 100644 vendor/golang.org/x/sys/unix/types_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/types_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/types_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/types_netbsd.go create mode 100644 vendor/golang.org/x/sys/unix/types_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/types_solaris.go create mode 100644 vendor/golang.org/x/sys/unix/xattr_bsd.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/windows/asm_windows_arm.s create mode 100644 vendor/golang.org/x/sys/windows/dll_windows.go create mode 100755 vendor/golang.org/x/sys/windows/mkerrors.bash create mode 100644 vendor/golang.org/x/sys/windows/mkerrors.go create mode 100644 vendor/golang.org/x/sys/windows/security_windows.go create mode 100644 vendor/golang.org/x/sys/windows/service.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm.go create mode 100644 vendor/golang.org/x/sys/windows/zerrors_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zsyscall_windows.go create mode 100644 vendor/golang.org/x/xerrors/LICENSE create mode 100644 vendor/golang.org/x/xerrors/PATENTS create mode 100644 vendor/golang.org/x/xerrors/README create mode 100644 vendor/golang.org/x/xerrors/adaptor_go1_12.go create mode 100644 vendor/golang.org/x/xerrors/adaptor_go1_13.go create mode 100644 vendor/golang.org/x/xerrors/doc.go create mode 100644 vendor/golang.org/x/xerrors/errors.go create mode 100644 vendor/golang.org/x/xerrors/fmt.go create mode 100644 vendor/golang.org/x/xerrors/format_go1_12.go create mode 100644 vendor/golang.org/x/xerrors/format_go1_13.go create mode 100644 vendor/golang.org/x/xerrors/frame_go1_12.go create mode 100644 vendor/golang.org/x/xerrors/go.mod create mode 100644 vendor/golang.org/x/xerrors/internal/internal.go create mode 100644 vendor/golang.org/x/xerrors/wrap.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/altsrc.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/flag.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/flag_generated.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/flag_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/helpers_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/input_source_context.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/map_input_source.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/toml_command_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/toml_file_loader.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/yaml_command_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/altsrc/yaml_file_loader.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/app_test.go delete mode 100755 vendor/gopkg.in/urfave/cli.v1/autocomplete/bash_autocomplete delete mode 100644 vendor/gopkg.in/urfave/cli.v1/autocomplete/zsh_autocomplete delete mode 100644 vendor/gopkg.in/urfave/cli.v1/command_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/context_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/errors_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/flag_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/help_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/helpers_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/helpers_unix_test.go delete mode 100644 vendor/gopkg.in/urfave/cli.v1/helpers_windows_test.go diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 00000000..12bf8f7e --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,2205 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + branch = "master" + digest = "1:94e9caf404409a2990cfd22aca37d758494c098eff3e2c37fda1abed862e74dd" + name = "bazil.org/fuse" + packages = [ + ".", + "fs", + "fuseutil", + ] + pruneopts = "UT" + revision = "65cc252bf6691cb3c7014bcb2c8dc29de91e3a7e" + +[[projects]] + branch = "master" + digest = "1:482fe066e308f0058abdfa302b9b5ff0fa4e89f6c55f103a2ac5e0af329f72cd" + name = "github.com/Stebalien/go-bitfield" + packages = ["."] + pruneopts = "UT" + revision = "076a62f9ce6ea421ab74a91f2d8dc7124f0cfd64" + +[[projects]] + digest = "1:1156cfea0ff969858f6027df95c15ca5e802556b466aebeedaf53dde3b301db3" + name = "github.com/allegro/bigcache" + packages = [ + ".", + "queue" + ] + pruneopts = "UT" + revision = "f31987a23e44c5121ef8c8b2f2ea2e8ffa37b068" + version = "v1.1.0" + +[[projects]] + branch = "master" + digest = "1:7d191fd0c54ff370eaf6116a14dafe2a328df487baea280699f597aae858d00d" + name = "github.com/aristanetworks/goarista" + packages = ["monotime"] + pruneopts = "UT" + revision = "ff33da284e760fcdb03c33d37a719e5ed30ba844" + +[[projects]] + branch = "master" + digest = "1:02796fed67c64543bfe3343b26cdc9a221bca2d83e8c7dcf35b5b70f6b5b9c56" + name = "github.com/bren2010/proquint" + packages = ["."] + pruneopts = "UT" + revision = "38337c27106d8f06e9b5cddc6df973ceece1c8ea" + +[[projects]] + branch = "master" + digest = "1:2c00f064ba355903866cbfbf3f7f4c0fe64af6638cc7d1b8bdcf3181bc67f1d8" + name = "github.com/btcsuite/btcd" + packages = ["btcec"] + pruneopts = "UT" + revision = "cff30e1d23fc9e800b2b5b4b41ef1817dda07e9f" + +[[projects]] + digest = "1:166438587ed45ac211dab8a3ecebf4fa0c186d0db63430fb9127bbc2e5fcdc67" + name = "github.com/cenkalti/backoff" + packages = ["."] + pruneopts = "UT" + revision = "1e4cf3da559842a91afcb6ea6141451e6c30c618" + version = "v2.1.1" + +[[projects]] + digest = "1:f438d91be142877c3ad83157992c91de787ddfbddcc2a7da1ef6ef61606cadc4" + name = "github.com/cheekybits/genny" + packages = ["generic"] + pruneopts = "UT" + revision = "d2cf3cdd35ce0d789056c4bc02a4d6349c947caf" + version = "v1.0.0" + +[[projects]] + digest = "1:05ffeeed3f0f05520de0679f6aa3219ffee69cfd6d9fb6c194879d4c818ad670" + name = "github.com/coreos/go-semver" + packages = ["semver"] + pruneopts = "UT" + revision = "e214231b295a8ea9479f11b70b35d5acf3556d9b" + version = "v0.3.0" + +[[projects]] + digest = "1:5bdd0581421e643e6c3163bb5da785600a2d7d0d73fec58acebaf2e693868e9d" + name = "github.com/cskr/pubsub" + packages = ["."] + pruneopts = "UT" + revision = "65166f5ae403cbf6dcdced31e1f8f8ad95485cb3" + version = "v1.0.2" + +[[projects]] + digest = "1:60abec4c812fc39cf7e66571da9e1758c586c258af815c4062b20d136542ff19" + name = "github.com/dave/jennifer" + packages = ["jen"] + pruneopts = "UT" + revision = "14e399b6b5e8456c66c45c955fc27b568bacb5c9" + version = "v1.3.0" + +[[projects]] + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" + name = "github.com/davecgh/go-spew" + packages = ["spew"] + pruneopts = "UT" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" + +[[projects]] + branch = "master" + digest = "1:ff0db56095c10bcdbf92ce2503f1d0d6e2ee0615184cfb96db2907fcb08d454e" + name = "github.com/davidlazar/go-crypto" + packages = ["salsa20"] + pruneopts = "UT" + revision = "dcfb0a7ac018a248366f96bcd8a2f8c805d7b268" + +[[projects]] + digest = "1:e47d51dab652d26c3fba6f8cba403f922d02757a82abdc77e90df7948daf296e" + name = "github.com/deckarep/golang-set" + packages = ["."] + pruneopts = "UT" + revision = "cbaa98ba5575e67703b32b4b19f73c91f3c4159e" + version = "v1.7.1" + +[[projects]] + digest = "1:edb569dd02419a41ddd98768cc0e7aec922ef19dae139731e5ca750afcf6f4c5" + name = "github.com/edsrzf/mmap-go" + packages = ["."] + pruneopts = "UT" + revision = "188cc3b666ba704534fa4f96e9e61f21f1e1ba7c" + version = "v1.0.0" + +[[projects]] + branch = "rpc_statediffs_at_head" + digest = "1:762bae8d82b8871999f15cb0694f55f99a56f764d68e00c49ee6eae479da5df6" + name = "github.com/ethereum/go-ethereum" + packages = [ + ".", + "accounts", + "accounts/abi", + "accounts/abi/bind", + "accounts/external", + "accounts/keystore", + "accounts/scwallet", + "accounts/usbwallet", + "accounts/usbwallet/trezor", + "common", + "common/bitutil", + "common/hexutil", + "common/math", + "common/mclock", + "common/prque", + "consensus", + "consensus/clique", + "consensus/ethash", + "consensus/misc", + "core", + "core/rawdb", + "core/state", + "core/types", + "core/vm", + "crypto", + "crypto/bn256", + "crypto/bn256/cloudflare", + "crypto/bn256/google", + "crypto/ecies", + "crypto/secp256k1", + "eth/downloader", + "ethclient", + "ethdb", + "ethdb/leveldb", + "ethdb/memorydb", + "event", + "internal/debug", + "internal/ethapi", + "log", + "metrics", + "metrics/exp", + "metrics/prometheus", + "node", + "p2p", + "p2p/discover", + "p2p/discv5", + "p2p/enode", + "p2p/enr", + "p2p/nat", + "p2p/netutil", + "params", + "rlp", + "rpc", + "signer/core", + "signer/storage", + "statediff", + "trie", + ] + pruneopts = "UT" + revision = "edf001e1d2296951e7e592c55e66ce074bd62807" + source = "github.com/vulcanize/go-ethereum" + +[[projects]] + branch = "master" + digest = "1:c183111eaf02a9e6bb39c213bdfb5472b16f1955dd4c9dab82db83f114c64a63" + name = "github.com/facebookgo/atomicfile" + packages = ["."] + pruneopts = "UT" + revision = "2de1f203e7d5e386a6833233882782932729f27e" + +[[projects]] + branch = "master" + digest = "1:6071114d7c08ebdd6bc697113cfb1634c8c29d506457ef90e7fb703841cb2828" + name = "github.com/fjl/memsize" + packages = [ + ".", + "memsizeui", + ] + pruneopts = "UT" + revision = "2a09253e352a56f419bd88effab0483f52da4c7d" + +[[projects]] + digest = "1:abeb38ade3f32a92943e5be54f55ed6d6e3b6602761d74b4aab4c9dd45c18abd" + name = "github.com/fsnotify/fsnotify" + packages = ["."] + pruneopts = "UT" + revision = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9" + version = "v1.4.7" + +[[projects]] + + branch = "master" + digest = "1:c52ac440c00e8b404a713a2de487b7b5e0e93a89a758832d9fc15b2817d6d5d6" + name = "github.com/gballet/go-libpcsclite" + packages = ["."] + pruneopts = "UT" + revision = "312b5175032f98274685a4dd81935a92ad2412a5" + +[[projects]] + digest = "1:586ea76dbd0374d6fb649a91d70d652b7fe0ccffb8910a77468e7702e7901f3d" + name = "github.com/go-stack/stack" + packages = ["."] + pruneopts = "UT" + revision = "2fee6af1a9795aafbe0253a0cfbdf668e1fb8a9a" + version = "v1.8.0" + +[[projects]] + digest = "1:d0e00c8ccabdfe678667d6be78c9d08a6a4efc36d9fb596f098706728b00ba6b" + name = "github.com/gogo/protobuf" + packages = [ + "gogoproto", + "io", + "proto", + "protoc-gen-gogo/descriptor", + ] + pruneopts = "UT" + revision = "ba06b47c162d49f2af050fb4c75bcbc86a159d5c" + version = "v1.2.1" + +[[projects]] + digest = "1:4ee2c939f1ee5983ec75069bc51604a64657b37bc03adeccee8b60abecfe76cc" + name = "github.com/golang/protobuf" + packages = ["proto"] + packages = [ + "proto", + "protoc-gen-go/descriptor", + ] + pruneopts = "UT" + revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5" + version = "v1.2.0" + +[[projects]] + branch = "master" + digest = "1:4a0c6bb4805508a6287675fac876be2ac1182539ca8a32468d8128882e9d5009" + name = "github.com/golang/snappy" + packages = ["."] + pruneopts = "UT" + revision = "2e65f85255dbc3072edf28d6b5b8efc472979f5a" + +[[projects]] + digest = "1:3a26588bc48b96825977c1b3df964f8fd842cd6860cc26370588d3563433cf11" + name = "github.com/google/uuid" + packages = ["."] + pruneopts = "UT" + revision = "d460ce9f8df2e77fb1ba55ca87fafed96c607494" + version = "v1.0.0" + +[[projects]] + digest = "1:7b5c6e2eeaa9ae5907c391a91c132abfd5c9e8a784a341b5625e750c67e6825d" + name = "github.com/gorilla/websocket" + packages = ["."] + pruneopts = "UT" + revision = "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d" + version = "v1.4.0" + +[[projects]] + digest = "1:43c609cba7aa615eaae5aa8f2ddba65dc1b2d3af7bc434f738238df8d3797ddb" + name = "github.com/gxed/hashland" + packages = [ + "keccakpg", + "murmur3", + ] + pruneopts = "UT" + revision = "a72cc0875a1e95edd309d3134bc7c11bf2d7360b" + version = "v0.0.1" + +[[projects]] + digest = "1:0ade334594e69404d80d9d323445d2297ff8161637f9b2d347cc6973d2d6f05b" + name = "github.com/hashicorp/errwrap" + packages = ["."] + pruneopts = "UT" + revision = "8a6fb523712970c966eefc6b39ed2c5e74880354" + version = "v1.0.0" + +[[projects]] + digest = "1:f668349b83f7d779567c880550534addeca7ebadfdcf44b0b9c39be61864b4b7" + name = "github.com/hashicorp/go-multierror" + packages = ["."] + pruneopts = "UT" + revision = "886a7fbe3eb1c874d46f623bfa70af45f425b3d1" + version = "v1.0.0" + +[[projects]] + branch = "master" + digest = "1:cf296baa185baae04a9a7004efee8511d08e2f5f51d4cbe5375da89722d681db" + name = "github.com/hashicorp/golang-lru" + packages = [ + ".", + "simplelru" + ] + revision = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3" + +[[projects]] + pruneopts = "UT" + revision = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3" + +[[projects]] + digest = "1:c0d19ab64b32ce9fe5cf4ddceba78d5bc9807f0016db6b1183599da3dcc24d10" + name = "github.com/hashicorp/hcl" + packages = [ + ".", + "hcl/ast", + "hcl/parser", + "hcl/printer", + "hcl/scanner", + "hcl/strconv", + "hcl/token", + "json/parser", + "json/scanner", + "json/token" + ] + pruneopts = "UT" + revision = "8cb6e5b959231cc1119e43259c4a608f9c51a241" + version = "v1.0.0" + +[[projects]] + digest = "1:a1038ef593beb4771c8f0f9c26e8b00410acd800af5c6864651d9bf160ea1813" + name = "github.com/hpcloud/tail" + packages = [ + ".", + "ratelimiter", + "util", + "watch", + "winfile" + ] + pruneopts = "UT" + revision = "a30252cb686a21eb2d0b98132633053ec2f7f1e5" + version = "v1.0.0" + +[[projects]] + branch = "master" + digest = "1:3f5e7a4329f76e2617bf094eb5eec2ec2eff590d145c0beb32bac699628dea7d" + name = "github.com/huin/goupnp" + packages = [ + ".", + "dcps/internetgateway1", + "dcps/internetgateway2", + "httpu", + "scpd", + "soap", + "ssdp" + ] + pruneopts = "UT" + revision = "1395d1447324cbea88d249fbfcfd70ea878fdfca" + +[[projects]] + name = "github.com/inconshreveable/mousetrap" + packages = ["."] + pruneopts = "UT" + revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" + version = "v1.0" + +[[projects]] + digest = "1:fe9aa4ac8c8d9bf5eaec1a8dd8c029f2cecd1c4ad91072b7ac99ecb44ff66910" + name = "github.com/ipfs/bbloom" + packages = ["."] + pruneopts = "UT" + revision = "4492942caf937893b9cf1ebba71c297beda904b2" + version = "v0.0.1" + +[[projects]] + digest = "1:052da1a7811a1db320501f2291f9b520a8f539fa6ec818079183913f0bcce0d0" + name = "github.com/ipfs/go-bitswap" + packages = [ + ".", + "decision", + "getter", + "message", + "message/pb", + "messagequeue", + "network", + "notifications", + "peermanager", + "providerquerymanager", + "session", + "sessionmanager", + "sessionpeermanager", + "sessionrequestsplitter", + "testnet", + "wantlist", + "wantmanager", + ] + pruneopts = "UT" + revision = "2c47a554bca866a2ec50d54ccd192bf314c704f1" + version = "v0.0.4" + +[[projects]] + digest = "1:97b7b1549d94c885626167359549d9164bb35a9a584faa7c3a576909be0ea37f" + name = "github.com/ipfs/go-block-format" + packages = ["."] + pruneopts = "UT" + revision = "9e46c0dce5d9a041b8ea1eed8ca924b36355c61b" + version = "v0.0.2" + +[[projects]] + digest = "1:9447c73342cc8dc50457df133a4ea4a2bbac20358cf53cb1245879d4af4e05fb" + name = "github.com/ipfs/go-blockservice" + packages = ["."] + pruneopts = "UT" + revision = "6ca3282a724998a2d47165de34f200ec3bc89619" + version = "v0.0.3" + +[[projects]] + digest = "1:ff780041e005869242b2cf977f1d4fa3b8f9bdd302fd254b4a19f78502a6ee10" + name = "github.com/ipfs/go-cid" + packages = ["."] + pruneopts = "UT" + revision = "e7e67e08cfba888a4297224402e12832bdc15ea0" + version = "v0.0.1" + +[[projects]] + digest = "1:bc03440e1a50ae0610f3bfa6ebd8454ada47bcb1abcf75faf139d649c2598bfa" + name = "github.com/ipfs/go-cidutil" + packages = ["."] + pruneopts = "UT" + revision = "7a289d95efee00994339172286cc99120f87b3e9" + version = "v0.0.1" + +[[projects]] + digest = "1:072829d8ab9f41e523774b1a7cc1f5f214eb48c0a475667883c41d7d95bab1f1" + name = "github.com/ipfs/go-datastore" + packages = [ + ".", + "autobatch", + "delayed", + "keytransform", + "mount", + "namespace", + "query", + "retrystore", + "sync", + ] + pruneopts = "UT" + revision = "aa9190c18f1576be98e974359fd08c64ca0b5a94" + version = "v0.0.5" + +[[projects]] + digest = "1:afbc88b3730097cd76ea72695941270547a5b3ed00d870ee0612897ac9943d79" + name = "github.com/ipfs/go-ds-measure" + packages = ["."] + pruneopts = "UT" + revision = "a74729db656decb31c9d0546aef893eaeb4247f7" + version = "v0.0.1" + +[[projects]] + digest = "1:bc3ed1378495622fd5eba7b63c86c10af1e5c4c1ae8642ab85b994ed89cf08bf" + name = "github.com/ipfs/go-fs-lock" + packages = ["."] + pruneopts = "UT" + revision = "66f8794e4aed94004486434cf8bf815e5991a0a4" + version = "v0.0.1" + +[[projects]] + digest = "1:15f5e953da8605b4edc4e2d5bae64680fe31a8c8da066bcfea4fb87112c8187c" + name = "github.com/ipfs/go-ipfs" + packages = [ + ".", + "core", + "dagutils", + "exchange/reprovide", + "filestore", + "filestore/pb", + "fuse/mount", + "keystore", + "namesys", + "namesys/republisher", + "p2p", + "pin", + "pin/internal/pb", + "provider", + "repo", + "repo/common", + "repo/fsrepo", + "repo/fsrepo/migrations", + "thirdparty/cidv0v1", + "thirdparty/dir", + "thirdparty/math2", + "thirdparty/verifbs", + ] + pruneopts = "UT" + revision = "8efc82534f74916b3416b7f10e4daac8ff1e95c9" + version = "v0.4.20" + +[[projects]] + digest = "1:cfecb1f62c703a0b4651b4c98c2b9c7645f2f062038208ad25060a77c9ae7e5d" + name = "github.com/ipfs/go-ipfs-addr" + packages = ["."] + pruneopts = "UT" + revision = "ac4881d4db36effbbeebf93d9172fcb20ed04c15" + version = "v0.0.1" + +[[projects]] + digest = "1:429edc38cba9210059680d94ed67a8552632025635e666e112313986de135d74" + name = "github.com/ipfs/go-ipfs-blockstore" + packages = ["."] + pruneopts = "UT" + revision = "8d6a694a33d2729a94d848208c75d117b77c3492" + version = "v0.0.1" + +[[projects]] + digest = "1:cf743f8296553603264f68ae79fbd0ed9ce25636c28deedde111d6760b8b0c7d" + name = "github.com/ipfs/go-ipfs-chunker" + packages = ["."] + pruneopts = "UT" + revision = "ecef6090e78f549c5f48f18d398e7b7f97e8c32d" + version = "v0.0.1" + +[[projects]] + digest = "1:6a09c04984b8c581f3e7c765bc968a4bbfb6bc8ebf30f8bd6944dc73c43637b1" + name = "github.com/ipfs/go-ipfs-config" + packages = [ + ".", + "serialize", + ] + pruneopts = "UT" + revision = "3a550f0da56c2527610b6db17aa2a9d65ae534fd" + version = "v0.0.2" + +[[projects]] + digest = "1:ae1ee4c628ee8ad66d9505bb2685902c93e0cd89089a17b8804463b5cc1b766b" + name = "github.com/ipfs/go-ipfs-delay" + packages = ["."] + pruneopts = "UT" + revision = "6482ad624d0b4f4053563439f8ca0bd619fbc737" + version = "v0.0.1" + +[[projects]] + digest = "1:0fcfbb9a7c8245d19d5a79c13ad702201c1d9cd8ca79619379a22845de723278" + name = "github.com/ipfs/go-ipfs-ds-help" + packages = ["."] + revision = "5c8c8bd35d3832f5d134ae1e1e375b69a4d25242" + version = "v1.0.1" + +[[projects]] + branch = "master" + name = "github.com/lib/pq" + packages = [ + ".", + "oid" + ] + revision = "4ded0e9383f75c197b3a2aaa6d590ac52df6fd79" + +[[projects]] + name = "github.com/magiconair/properties" + packages = ["."] + revision = "c2353362d570a7bfa228149c62842019201cfb71" + version = "v1.8.0" + pruneopts = "UT" + revision = "4a69beb72c1b4e6e7ed62c5c5cbc1bd7a3d219b2" + version = "v0.0.1" + +[[projects]] + digest = "1:c8bc4cbd7b94d84784f6f99cca35ebedebb5f9ded2d561e4130d8c67cc5127b0" + name = "github.com/ipfs/go-ipfs-exchange-interface" + packages = ["."] + pruneopts = "UT" + revision = "b6e88260772433e18af18bb3f237d78678e65f0b" + version = "v0.0.1" + +[[projects]] + digest = "1:284cfd2a17692d0e628a263854b8acea34427b9aa2f4f923b91570f07ae65d2e" + name = "github.com/ipfs/go-ipfs-exchange-offline" + packages = ["."] + pruneopts = "UT" + revision = "e3705b31117ceccfa67820f84c1085f74f5e039b" + version = "v0.0.1" + +[[projects]] + digest = "1:ff3f10c0e0d9c679390b06966df7344a72c31c3bec45c191676ab03fa845123f" + name = "github.com/ipfs/go-ipfs-files" + packages = ["."] + pruneopts = "UT" + revision = "c68472a9b1ec45177ccf8fda607698c86ae0060f" + version = "v0.0.2" + +[[projects]] + digest = "1:f761e426f29519b6f4c7e419ed7aacb93c64fe0fe9db4835373b00034f15b959" + name = "github.com/ipfs/go-ipfs-flags" + packages = ["."] + pruneopts = "UT" + revision = "89d41d6d2542f7b3b25e01d7b4a3769885055454" + version = "v0.0.1" + +[[projects]] + digest = "1:990c3a92954ef12159a3564533e63edc53feeadcb513930250351b919c6756f5" + name = "github.com/ipfs/go-ipfs-posinfo" + packages = ["."] + revision = "ae18d6b8b3205b561c79e8e5f69bff09736185f4" + version = "v1.0.0" + +[[projects]] + name = "github.com/mitchellh/mapstructure" + packages = ["."] + revision = "fa473d140ef3c6adf42d6b391fe76707f1f243c8" + version = "v1.0.0" + +[[projects]] + name = "github.com/onsi/ginkgo" + packages = [ + ".", + "config", + "internal/codelocation", + "internal/containernode", + "internal/failer", + "internal/leafnodes", + "internal/remote", + "internal/spec", + "internal/spec_iterator", + "internal/specrunner", + "internal/suite", + "internal/testingtproxy", + "internal/writer", + "reporters", + "reporters/stenographer", + "reporters/stenographer/support/go-colorable", + "reporters/stenographer/support/go-isatty", + "types" + ] + revision = "3774a09d95489ccaa16032e0770d08ea77ba6184" + version = "v1.6.0" + +[[projects]] + name = "github.com/onsi/gomega" + packages = [ + ".", + "format", + "ghttp", + "internal/assertion", + "internal/asyncassertion", + "internal/oraclematcher", + "internal/testingtsupport", + "matchers", + "matchers/support/goraph/bipartitegraph", + "matchers/support/goraph/edge", + "matchers/support/goraph/node", + "matchers/support/goraph/util", + "types" + ] + revision = "7615b9433f86a8bdf29709bf288bc4fd0636a369" + version = "v1.4.2" + +[[projects]] + name = "github.com/pborman/uuid" + packages = ["."] + revision = "adf5a7427709b9deb95d29d3fa8a2bf9cfd388f1" + version = "v1.2" + +[[projects]] + name = "github.com/pelletier/go-toml" + packages = ["."] + revision = "c01d1270ff3e442a8a57cddc1c92dc1138598194" + version = "v1.2.0" + +[[projects]] + name = "github.com/pkg/errors" + packages = ["."] + digest = "1:1d7e1867c49a6dd9856598ef7c3123604ea3daabf5b83f303ff457bcbc410b1d" + name = "github.com/pkg/errors" + packages = ["."] + pruneopts = "" + revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4" + version = "v0.8.1" + +[[projects]] + name = "github.com/pressly/goose" + packages = ["."] + revision = "e4b98955473e91a12fc7d8816c28d06376d1d92c" + version = "v2.6.0" + +[[projects]] + digest = "1:4ae201412922170629db9f034bc2e205e425a36a4b13a2494180f9dd485fb7b2" + name = "github.com/prometheus/tsdb" + packages = ["fileutil"] + pruneopts = "" + revision = "4b3a5ac5d36e5262d2656c8d149e137c2d1fab12" + version = "v0.7.0" + pruneopts = "UT" + revision = "19b0f52f6bd140be93fb568203586a165eb1aadf" + version = "v0.0.1" + +[[projects]] + digest = "1:3d6b825f2ac90788f3ac6bb7927d339ded21d02951d08b5bb66bf5326af45ea9" + name = "github.com/ipfs/go-ipfs-pq" + packages = ["."] + pruneopts = "UT" + revision = "63128f5dd36a6c20c0f2d1c65eb4390d2590a273" + version = "v0.0.1" + +[[projects]] + digest = "1:744d6471a84d76b6d82eb6e15a0349aebb8728298caa649762ffd1e05c4109ad" + name = "github.com/ipfs/go-ipfs-routing" + packages = [ + "mock", + "none", + "offline", + ] + pruneopts = "UT" + revision = "29e4c89c60c510152e46033844194a62bc89b281" + version = "v0.0.1" + +[[projects]] + digest = "1:0b4439ae69776549e6489b261f66894a1390140dad53f1c3b1fbfc074478590d" + name = "github.com/ipfs/go-ipfs-util" + packages = ["."] + pruneopts = "UT" + revision = "a4bb5361e49427531f9a716ead2ce4bd9bdd7959" + version = "v0.0.1" + +[[projects]] + digest = "1:53f917e28732fbb5c1f24e368af2f03edbd3547dfe6e6a252b3727ce9f18f9cd" + name = "github.com/ipfs/go-ipld-cbor" + packages = [ + ".", + "encoding", + ] + pruneopts = "UT" + revision = "e63450c54844e1bfe509b17cc73071c4ab150ef0" + version = "v0.0.1" + +[[projects]] + digest = "1:a64b5e2c43d7a8a9bbda0d8519dca1841cdd7e352ffd059cf2a8fa06978ec5d1" + name = "github.com/ipfs/go-ipld-format" + packages = ["."] + pruneopts = "UT" + revision = "e6e9ea4d16a85d09cafb4dace15b978e984fa672" + version = "v0.0.1" + +[[projects]] + digest = "1:4638b57014e4a204350087e3a2d5631f8aaa197bb6af688ca6e280457a7a46fa" + name = "github.com/ipfs/go-ipns" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "a989b48e3b7d32af1c872cbf2f6e884a08a9b351" + version = "v0.0.1" + +[[projects]] + digest = "1:e8c78569402b8dcf846924dea6eb27b1de135c9a53d7adbd2629250ef66c021a" + name = "github.com/ipfs/go-log" + packages = [ + ".", + "tracer", + "tracer/wire", + "writer", + ] + pruneopts = "UT" + revision = "91b837264c0f35dd4e2be341d711316b91d3573d" + version = "v0.0.1" + +[[projects]] + digest = "1:703455843c663f97b4bd2506f6ed7ac307f6f45203b2c2452df888c01325f6c3" + name = "github.com/ipfs/go-merkledag" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "5e8e186e4d8f03514a43464e5b47310e71372ffc" + version = "v0.0.3" + +[[projects]] + digest = "1:2de37461901377cb21aae96aab4ca67ebbb6d77e5f140c8f376eb566b7805365" + name = "github.com/ipfs/go-metrics-interface" + packages = ["."] + revision = "0f065fa99b48b842c3fd3e2c8b194c6f2b69f6b8" + version = "v0.9.1" + +[[projects]] + name = "github.com/rs/cors" + packages = ["."] + revision = "3fb1b69b103a84de38a19c3c6ec073dd6caa4d3f" + version = "v1.5.0" + +[[projects]] + name = "github.com/sirupsen/logrus" + packages = ["."] + revision = "bcd833dfe83d3cebad139e4a29ed79cb2318bf95" + version = "v1.2.0" + +[[projects]] + name = "github.com/spf13/afero" + packages = [ + ".", + "mem" + ] + revision = "d40851caa0d747393da1ffb28f7f9d8b4eeffebd" + version = "v1.1.2" + +[[projects]] + name = "github.com/spf13/cast" + packages = ["."] + revision = "8965335b8c7107321228e3e3702cab9832751bac" + version = "v1.2.0" + +[[projects]] + name = "github.com/spf13/cobra" + packages = ["."] + revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" + version = "v0.0.3" + +[[projects]] + name = "github.com/spf13/jwalterweatherman" + packages = ["."] + revision = "4a4406e478ca629068e7768fc33f3f044173c0a6" + version = "v1.0.0" + +[[projects]] + name = "github.com/spf13/pflag" + packages = ["."] + revision = "9a97c102cda95a86cec2345a6f09f55a939babf5" + version = "v1.0.2" + +[[projects]] + name = "github.com/spf13/viper" + packages = ["."] + revision = "8fb642006536c8d3760c99d4fa2389f5e2205631" + version = "v1.2.0" + pruneopts = "UT" + revision = "87aa106f53272f064ca7956a6db83f17a553f254" + version = "v0.0.1" + +[[projects]] + digest = "1:eb5e3140e55e3410055e91df6538a8712a3c20b33a97c397ba4beba8a9515db8" + name = "github.com/ipfs/go-mfs" + packages = ["."] + pruneopts = "UT" + revision = "198fe2d22702d7d8102ba09900cddfd6981cabe1" + version = "v0.0.5" + +[[projects]] + digest = "1:ab4d5fb6c2469b61d8e9c3dd05fe29cc6935676acb17a7273d462e3bf263d87b" + name = "github.com/ipfs/go-path" + packages = [ + ".", + "resolver", + ] + pruneopts = "UT" + revision = "a1e7a849ac2bae46007920db4b6efe6faa4296a6" + version = "v0.0.3" + +[[projects]] + digest = "1:5d5961815f8e4f1fbad28f6c7ff5e42fcd9527aa823a5daa19b622b9cc41d1ed" + name = "github.com/ipfs/go-todocounter" + packages = ["."] + pruneopts = "UT" + revision = "bc75efcf13e6e50fbba27679ba5451585d70c954" + version = "v0.0.1" + +[[projects]] + digest = "1:7f07522134395d0e83281d228ba5b08bd8ae440423fbd4c8780a348aa27fc804" + name = "github.com/ipfs/go-unixfs" + packages = [ + ".", + "hamt", + "importer/helpers", + "importer/trickle", + "io", + "mod", + "pb", + ] + pruneopts = "UT" + revision = "0b7b8867647cb408d8c057d00b0f0b170e2f1f1c" + version = "v0.0.4" + +[[projects]] + digest = "1:78438260483c355139f9d83830a88ecd69578904f0f288134d3a95786c4f0864" + name = "github.com/ipfs/go-verifcid" + packages = ["."] + pruneopts = "UT" + revision = "34e41ba962e7ce0211a05915f788486c8db755f1" + version = "v0.0.1" + +[[projects]] + digest = "1:164193f6d91f8e2c9b5bfc5cb4522c8cd9c0994401eefbef0f5edbe9a3d10ce2" + name = "github.com/ipfs/interface-go-ipfs-core" + packages = [ + ".", + "options", + "options/namesys", + "path", + ] + pruneopts = "UT" + revision = "77861581014b14ab47de990e82a1637fe1430ab7" + version = "v0.0.7" + +[[projects]] + digest = "1:b352ae8b1a77cc6b48fc8e314e34a522cfc76d6ca3a06c93b29c9cde5de6771e" + name = "github.com/jackpal/gateway" + packages = ["."] + pruneopts = "UT" + revision = "cbcf4e3f3baee7952fc386c8b2534af4d267c875" + version = "v1.0.5" + +[[projects]] + digest = "1:32b82e71cf24f8b78323e0d7903c4b90278486283965aa2a19b1ea13763b8f34" + name = "github.com/jackpal/go-nat-pmp" + packages = ["."] + pruneopts = "UT" + revision = "c9cfead9f2a36ddf3daa40ba269aa7f4bbba6b62" + version = "v1.0.1" + +[[projects]] + branch = "master" + digest = "1:62fe3a7ea2050ecbd753a71889026f83d73329337ada66325cbafd5dea5f713d" + name = "github.com/jbenet/go-context" + packages = ["io"] + pruneopts = "UT" + revision = "d14ea06fba99483203c19d92cfcd13ebe73135f4" + +[[projects]] + digest = "1:30f857b000a0d14f978110222f1b1ba9cb1de8f6cabaca51933f3627ca6578a0" + name = "github.com/jbenet/go-is-domain" + packages = ["."] + pruneopts = "UT" + revision = "009bc9fc8d69261cc21e8eb2aa0925af155d1c11" + version = "v1.0.2" + +[[projects]] + branch = "master" + digest = "1:8f4aedc183dc8dfef9a7a1f1ba205dc87ecd2675eea350a736bda889e3bcf8ea" + name = "github.com/jbenet/go-temp-err-catcher" + packages = ["."] + pruneopts = "UT" + revision = "aac704a3f4f27190b4ccc05f303a4931fd1241ff" + +[[projects]] + branch = "master" + digest = "1:a2a82ac6d7f2ab5966591f95612e3ecd9afed66051189e06876a29ed3744a3ea" + name = "github.com/jbenet/goprocess" + packages = [ + ".", + "context", + "periodic", + "ratelimit", + ] + pruneopts = "UT" + revision = "b497e2f366b8624394fb2e89c10ab607bebdde0b" + +[[projects]] + branch = "master" + digest = "1:7654989089e5bd5b6734ec3be8b695e87d3f1f8d95620b343fd7d3995a5b60d7" + name = "github.com/jmoiron/sqlx" + packages = [ + ".", + "reflectx", + ] + pruneopts = "UT" + revision = "0dae4fefe7c0e190f7b5a78dac28a1c82cc8d849" + +[[projects]] + branch = "master" + digest = "1:6addadad21c95f83b592099496bb250a30aa8882faff9f8bd22aa9a15b6d8db1" + name = "github.com/karalabe/hid" + packages = ["."] + pruneopts = "UT" + revision = "d815e0c1a2e2082a287a2806bc90bc8fc7b276a9" + +[[projects]] + digest = "1:0a69a1c0db3591fcefb47f115b224592c8dfa4368b7ba9fae509d5e16cdc95c8" + name = "github.com/konsorten/go-windows-terminal-sequences" + packages = ["."] + pruneopts = "UT" + revision = "5c8c8bd35d3832f5d134ae1e1e375b69a4d25242" + version = "v1.0.1" + +[[projects]] + digest = "1:58ad79834dc097c36a857a8c325d646af0a8bbd73375a6958a639507c5399a61" + name = "github.com/koron/go-ssdp" + packages = ["."] + pruneopts = "UT" + revision = "6d1709049dead37ead37808479f88c9bffa2c4d6" + version = "v0.1" + +[[projects]] + branch = "master" + digest = "1:8ef506fc2bb9ced9b151dafa592d4046063d744c646c1bbe801982ce87e4bc24" + name = "github.com/lib/pq" + packages = [ + ".", + "oid", + ] + pruneopts = "UT" + revision = "4ded0e9383f75c197b3a2aaa6d590ac52df6fd79" + +[[projects]] + digest = "1:483fcb9b21a758b47501f8880628b85aa3c4e99e33166867d06fa278965c66b2" + name = "github.com/libp2p/go-addr-util" + packages = ["."] + pruneopts = "UT" + revision = "4cd36c0f325f9e38f1e31ff7a10b9d94d53a11cf" + version = "v0.0.1" + +[[projects]] + digest = "1:f9e8d1157f79aa5e81b34e0cdc7a6c99d6e44ad7a098f4e6869b8b83ef3d27bb" + name = "github.com/libp2p/go-buffer-pool" + packages = ["."] + pruneopts = "UT" + revision = "eecb57f6a721b4a66062ebeb61d1da7ce1c38fbf" + version = "v0.0.1" + +[[projects]] + digest = "1:5810d7b1453ad0a085afc2afccbe88d606be67b8be1e12706158dbcbf95ae243" + name = "github.com/libp2p/go-conn-security" + packages = [ + ".", + "insecure", + ] + pruneopts = "UT" + revision = "80b6115ae32f104b2ed14d16a8551248f4599338" + version = "v0.0.1" + +[[projects]] + digest = "1:9c14cac19ac8157c9cb89637da301f6b4994b93fd71da81e252940f6d0cf7332" + name = "github.com/libp2p/go-conn-security-multistream" + packages = ["."] + pruneopts = "UT" + revision = "d4c3bf7e5688390e4106d3ec73aafd7d0856143b" + version = "v0.0.1" + +[[projects]] + digest = "1:83d3d59c84ff3da342ab63011d79750ccb987bda399eb64db3abd3e2fd32c18f" + name = "github.com/libp2p/go-flow-metrics" + packages = ["."] + pruneopts = "UT" + revision = "1f5b3acc846b2c8ce4c4e713296af74f5c24df55" + version = "v0.0.1" + +[[projects]] + digest = "1:1432bf2ddb7cfb0be623f9299e039a3910c20ecedd4beb2612c8fc6baabb666f" + name = "github.com/libp2p/go-libp2p" + packages = [ + ".", + "config", + "p2p/discovery", + "p2p/host/basic", + "p2p/host/relay", + "p2p/host/routed", + "p2p/net/mock", + "p2p/protocol/identify", + "p2p/protocol/identify/pb", + "p2p/protocol/ping", + ] + pruneopts = "UT" + revision = "e63ff38c3d274679753cf98846b247e06e9b9f5b" + version = "v0.0.16" + +[[projects]] + digest = "1:7a9b53c8925819845e9ae47579cac5de87b66eddfc72988578f318504136a68c" + name = "github.com/libp2p/go-libp2p-autonat" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "c827b8ba68e6997431c27313efad33df19b5f6a3" + version = "v0.0.4" + +[[projects]] + digest = "1:c6c83e198fb782c1fc0e2706d9ff01d112d07f8781fd6f06127d08addd32b5fa" + name = "github.com/libp2p/go-libp2p-autonat-svc" + packages = ["."] + pruneopts = "UT" + revision = "bcaff01a6eb53bf7e7a93f06b8fc494627a91641" + version = "v0.0.5" + +[[projects]] + digest = "1:1289f34bbc72cfe59de1528e793e27c67a44a9597e1537ef03597abef8641f6e" + name = "github.com/libp2p/go-libp2p-circuit" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "d07cd5f739a7878121b10e54a8ead734f93e2ddf" + version = "v0.0.4" + +[[projects]] + digest = "1:b218b4385ba83a014018f63f6bcb78eae8fb51b86b410471c1ccc1ee2fac4d10" + name = "github.com/libp2p/go-libp2p-connmgr" + packages = ["."] + pruneopts = "UT" + revision = "44a04f91e1fc9eb63caaf970e55cf319be76abee" + version = "v0.0.3" + +[[projects]] + digest = "1:83915d6b4485f9ca8727ad9195d0881f1eeea4c9f286b0c0fb4b0757c21d1bc2" + name = "github.com/libp2p/go-libp2p-crypto" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "b0ed0e663e8b6832bad3f4502b2f6551ff2686cd" + version = "v0.0.1" + +[[projects]] + digest = "1:c8e13ce10e73ffc2c59e11fd62d85a1e516e33af6521ed337d2e4777bc7605d8" + name = "github.com/libp2p/go-libp2p-discovery" + packages = ["."] + pruneopts = "UT" + revision = "4cb4193d603389a75bccd07336de74d54bea6b00" + version = "v0.0.2" + +[[projects]] + digest = "1:1df10c788e75259f6ebae0612de30f0db09e690042b9db64551a188c6509cc8b" + name = "github.com/libp2p/go-libp2p-host" + packages = ["."] + pruneopts = "UT" + revision = "df61f890baee33effc62473e65c0ce481407181d" + version = "v0.0.2" + +[[projects]] + digest = "1:bc58f4c83d59130bbef42bbd7ebb0d23ccd8cc9c1eecd63a57b5576f5f8effc2" + name = "github.com/libp2p/go-libp2p-interface-connmgr" + packages = ["."] + pruneopts = "UT" + revision = "e80dd2e9f839e44febfcb7e6b38ded8761332eb6" + version = "v0.0.3" + +[[projects]] + digest = "1:065f0484575f052b79972215142bb50ac634c5282bf85692192fc1dfc8752b8b" + name = "github.com/libp2p/go-libp2p-interface-pnet" + packages = ["."] + pruneopts = "UT" + revision = "b02026130a4daafb8001e039e116121cb92ae1a9" + version = "v0.0.1" + +[[projects]] + digest = "1:9c47cb524a992e85504d0916d1cdb9e022314d180f57f3e1bf32c6698b29e53f" + name = "github.com/libp2p/go-libp2p-kad-dht" + packages = [ + ".", + "metrics", + "opts", + "pb", + "providers", + ] + pruneopts = "UT" + revision = "ca611b1605e5c64e240c98755a4f913d661979b2" + version = "v0.0.9" + +[[projects]] + digest = "1:029a31918e966dba732de956af5af626c92d9e1296b2b34c6e68d4e6c5cf1b7e" + name = "github.com/libp2p/go-libp2p-kbucket" + packages = [ + ".", + "keyspace", + ] + pruneopts = "UT" + revision = "0ac6a1f84ed8c7d05b204f9f09556b1e34e1253a" + version = "v0.1.1" + +[[projects]] + digest = "1:401eaa568a08603ebcccd833d0d69c2ac1abe153f1260f7a82375c3a455c7223" + name = "github.com/libp2p/go-libp2p-loggables" + packages = ["."] + pruneopts = "UT" + revision = "332c68ea465a3353571377635eb0fc257a0c38c4" + version = "v0.0.1" + +[[projects]] + digest = "1:09deed1e61077096d762c465c8cb6bd6f75a89729e27de6b3880feb455ba6358" + name = "github.com/libp2p/go-libp2p-metrics" + packages = ["."] + pruneopts = "UT" + revision = "f7021db7729eb519a86ec6a90b5b476e6072f6f7" + version = "v0.0.1" + +[[projects]] + digest = "1:4614c7d351b9cc24ef6457107fad9830664615bb7d7de91de10c4a4ab1919545" + name = "github.com/libp2p/go-libp2p-nat" + packages = ["."] + pruneopts = "UT" + revision = "c50c291a61bceccb914366d93eb24f58594e9134" + version = "v0.0.4" + +[[projects]] + digest = "1:a87f13baa72a09a5d6fea78e3a1af82f2bc1f0637a4eb4304c5cba765720ccd3" + name = "github.com/libp2p/go-libp2p-net" + packages = ["."] + pruneopts = "UT" + revision = "e1b54a3fd69634603ac02b34e4eefcf5aca50ed9" + version = "v0.0.2" + +[[projects]] + digest = "1:9d7f797f63fc1d4a9960c89326cf26304c4db52e0490411da3e4deee65de5146" + name = "github.com/libp2p/go-libp2p-netutil" + packages = ["."] + pruneopts = "UT" + revision = "126124c7f3e570a469754c4857bd86527f5eb94e" + version = "v0.0.1" + +[[projects]] + digest = "1:dd98b7bc6fcd8ca56cd6f19f988db68d970eba9e66f25bc392e563a5791e0a26" + name = "github.com/libp2p/go-libp2p-peer" + packages = [ + ".", + "peerset", + "test", + ] + pruneopts = "UT" + revision = "96d6d7940e6fc555240a92d1b4615049cd451da2" + version = "v0.1.0" + +[[projects]] + digest = "1:6806fd32afb9c73cf45624ddd4f6b1e3ae4ce119443b34bbb1dc8fe6fcb19823" + name = "github.com/libp2p/go-libp2p-peerstore" + packages = [ + ".", + "addr", + "pstoremem", + "queue", + ] + pruneopts = "UT" + revision = "b496ee543347a9c724e02ff7102da9d78c8acbee" + version = "v0.0.3" + +[[projects]] + digest = "1:5d5de8a1d6165e92773a676617b354f352dd39849cbb6580d6d017706ca8e38e" + name = "github.com/libp2p/go-libp2p-pnet" + packages = ["."] + pruneopts = "UT" + revision = "7424696a369ba1535fd7961f22d710e39ae7c8f9" + version = "v0.0.1" + +[[projects]] + digest = "1:861a4351f79c9e2bca75407d8801b55da0526feec15ec98b433c2f800ad1f393" + name = "github.com/libp2p/go-libp2p-protocol" + packages = ["."] + pruneopts = "UT" + revision = "c170ad966a647835bda0cbe4dc710cf9f94949b6" + version = "v0.0.1" + +[[projects]] + digest = "1:e8d3d819fb8398e0945fbe5e55b519c3c76d952e0e33901a47fdadc0fd1874e7" + name = "github.com/libp2p/go-libp2p-pubsub" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "25cbf38777e869acb77e8079c3c76d6b430e66ad" + version = "v0.0.1" + +[[projects]] + digest = "1:bcf57f2766818c04d2fddc0bd75167b8cbf36f7043d4f4a73c729fd6ec8ada08" + name = "github.com/libp2p/go-libp2p-pubsub-router" + packages = ["."] + pruneopts = "UT" + revision = "228ab843b11da664bb67cf1caa1b1fdf611aa769" + version = "v0.0.3" + +[[projects]] + digest = "1:a1cf76b0f654cd8e2aec54b8c6f2a8aa4373f15879db9f5671380c421fcba0c9" + name = "github.com/libp2p/go-libp2p-quic-transport" + packages = ["."] + pruneopts = "UT" + revision = "b069bc9fa68a05c01a361550ca59f5e3fb9b421e" + version = "v0.0.3" + +[[projects]] + digest = "1:712d8c0de8c227d80e589af33389c7c8b56b7ade75fa1d6b81963330ed7427e7" + name = "github.com/libp2p/go-libp2p-record" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "4c2093f40950fe401a612a725ef0765c0c767b60" + version = "v0.0.1" + +[[projects]] + digest = "1:40536312550a2d67b11568a05e9885a3d7b728000a88a93d577f117fa0d2eef6" + name = "github.com/libp2p/go-libp2p-routing" + packages = [ + ".", + "notifications", + "options", + ] + pruneopts = "UT" + revision = "ab366780f22ac0d2625105a9f6d3cace1817dd30" + version = "v0.0.1" + +[[projects]] + digest = "1:86438785b80785614784bed81c0e8bcd9cdb362bfd1bb7675e24136d32b5842a" + name = "github.com/libp2p/go-libp2p-routing-helpers" + packages = ["."] + pruneopts = "UT" + revision = "80177179327fbef5249eb0bc7f372d830f939a5c" + version = "v0.0.2" + +[[projects]] + digest = "1:6a12f20cd4c7260f211f096aa70234150d930514070d73ccaa46dd17ed2fbbc1" + name = "github.com/libp2p/go-libp2p-secio" + packages = [ + ".", + "pb", + ] + pruneopts = "UT" + revision = "b5b0ccd501582b3aec0a8076e9009c4c69f075b6" + version = "v0.0.2" + +[[projects]] + digest = "1:13bb1cd21375488f6a49134b261439974e8105d04eb84e396c9c86248e0f4d97" + name = "github.com/libp2p/go-libp2p-swarm" + packages = ["."] + pruneopts = "UT" + revision = "51da4b6c9c2e869dce87a455a7c788d7181711c7" + version = "v0.0.2" + +[[projects]] + digest = "1:3b26a897674c84976f9ee6d93d91d0fc503a4aada9c6b7a69b5ed4752452d035" + name = "github.com/libp2p/go-libp2p-transport" + packages = ["."] + pruneopts = "UT" + revision = "760cba29c65701ce7b688f238f6c93cc1d899dde" + version = "v0.0.4" + +[[projects]] + digest = "1:9e59f3adcbbffe3fd2333843bb3d944e5b42791d86dfdbef67673fb9a1d0bce1" + name = "github.com/libp2p/go-libp2p-transport-upgrader" + packages = ["."] + pruneopts = "UT" + revision = "b4ab689796cdae99ad6641abcedcd7c23258de0c" + version = "v0.0.1" + +[[projects]] + digest = "1:56b76ab784de08c03549ce824b2f103390c744016cf22c7d3cacd7f4abb26e54" + name = "github.com/libp2p/go-maddr-filter" + packages = ["."] + pruneopts = "UT" + revision = "1258bb7e3e3a37bb9a93aaf77ef88f8405b39bce" + version = "v0.0.1" + +[[projects]] + digest = "1:dca7a0779bc8c3052ff1760928da7fab1d6bdaa568de55c175cb96c83a6d20c4" + name = "github.com/libp2p/go-mplex" + packages = ["."] + pruneopts = "UT" + revision = "b16006283f6036f9a461f78692c397b134a75393" + version = "v0.0.1" + +[[projects]] + digest = "1:fec6c720509c1682df4e297899d23951d1b3ad3bcc124ecf734af34053a18982" + name = "github.com/libp2p/go-msgio" + packages = ["."] + pruneopts = "UT" + revision = "b47fa43a3e8e2b96e34854e4a25b2b0988322621" + version = "v0.0.2" + +[[projects]] + digest = "1:82e0411449d8af0c34e200cd6b90e70689d692d17f836906194fa9fc28692e80" + name = "github.com/libp2p/go-nat" + packages = ["."] + pruneopts = "UT" + revision = "d13fdefb3bbb2fde2c6fc090a7ea992cec8b26df" + version = "v0.0.3" + +[[projects]] + digest = "1:3218d9edf75d814d2994ce4b14fae01c657a3284af84522efcc8dee89806f4ca" + name = "github.com/libp2p/go-reuseport" + packages = ["."] + pruneopts = "UT" + revision = "3e6d618acfdfacbbeff71cb2bd70fc188f897a0f" + version = "v0.0.1" + +[[projects]] + digest = "1:bf12fbd51fb864c9e2cb688581d3c14551a8c3d1c2fa60c9ad405c532e1b9d42" + name = "github.com/libp2p/go-reuseport-transport" + packages = ["."] + pruneopts = "UT" + revision = "c7583c88df654a2ecd621e863f661783d79b64d1" + version = "v0.0.2" + +[[projects]] + digest = "1:28994f656f7bd53b2f506641d72878250583051bd86477ab8129c613c8437ee3" + name = "github.com/libp2p/go-stream-muxer" + packages = ["."] + pruneopts = "UT" + revision = "96b8d4dc6b2577782a7c6c33776c115e3d2eacf6" + version = "v0.0.1" + +[[projects]] + digest = "1:32b1b70c98be85d88229af2ba0cceb9954e7ef88c3f7e90f95a8ea2deb32c0d3" + name = "github.com/libp2p/go-tcp-transport" + packages = ["."] + pruneopts = "UT" + revision = "42717ef323c6cd024d3196d18bc1b7657c453d6d" + version = "v0.0.2" + +[[projects]] + digest = "1:d232baf2d647f75c9a676dcc2f4dcc912aa8c399001c7a45dc981131b77e414f" + name = "github.com/libp2p/go-testutil" + packages = ["."] + pruneopts = "UT" + revision = "425d0bf3c5d09720ab62cb2b79107d83651f271b" + version = "v0.0.1" + +[[projects]] + digest = "1:fe4581341f14aba2ef06749c5f2fc6483d4354b25e3c6e0094a4135082a22ed2" + name = "github.com/libp2p/go-ws-transport" + packages = ["."] + pruneopts = "UT" + revision = "93daaa611babb322b314d33c6c6ad26298f55f56" + version = "v0.0.2" + +[[projects]] + digest = "1:d90f4189a065809b38ccc5a5a6a66d57ccad809562409903f7518352aeb5986b" + name = "github.com/lucas-clemente/quic-go" + packages = [ + ".", + "internal/ackhandler", + "internal/congestion", + "internal/flowcontrol", + "internal/handshake", + "internal/protocol", + "internal/qerr", + "internal/utils", + "internal/wire", + ] + pruneopts = "UT" + revision = "8dcdf12ff78def6cfd36107d8bf42aa38110fa94" + version = "v0.11.1" + +[[projects]] + digest = "1:c568d7727aa262c32bdf8a3f7db83614f7af0ed661474b24588de635c20024c7" + name = "github.com/magiconair/properties" + packages = ["."] + pruneopts = "UT" + revision = "c2353362d570a7bfa228149c62842019201cfb71" + version = "v1.8.0" + +[[projects]] + branch = "master" + digest = "1:94e7d7656c79a0c4eea386d663a046bb904bb93217052b74b16e79bb04f82f57" + name = "github.com/marten-seemann/qtls" + packages = ["."] + pruneopts = "UT" + revision = "65ca381cd298d7e0aef0de8ba523a870ec5a96fe" + +[[projects]] + digest = "1:2fa7b0155cd54479a755c629de26f888a918e13f8857a2c442205d825368e084" + name = "github.com/mattn/go-colorable" + packages = ["."] + pruneopts = "UT" + revision = "3a70a971f94a22f2fa562ffcc7a0eb45f5daf045" + version = "v0.1.1" + +[[projects]] + digest = "1:e150b5fafbd7607e2d638e4e5cf43aa4100124e5593385147b0a74e2733d8b0d" + name = "github.com/mattn/go-isatty" + packages = ["."] + pruneopts = "UT" + revision = "c2a7a6ca930a4cd0bc33a3f298eb71960732a3a7" + version = "v0.0.7" + +[[projects]] + digest = "1:2b4b4b2e5544c2a11a486c1b631357aa2ddf766e50c1b2483cf809da2c511234" + name = "github.com/miekg/dns" + packages = ["."] + pruneopts = "UT" + revision = "73601d4aed9d844322611759d7f3619110b7c88e" + version = "v1.1.8" + +[[projects]] + branch = "master" + digest = "1:130cefe87d7eeefc824978dcb78e35672d4c49a11f25c153fbf0cfd952756fa3" + name = "github.com/minio/blake2b-simd" + packages = ["."] + pruneopts = "UT" + revision = "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4" + +[[projects]] + branch = "master" + digest = "1:d69117243f58a0d320c2889872d8c14d323d865277dc49fc85bfcf48b2846b8f" + name = "github.com/minio/sha256-simd" + packages = ["."] + pruneopts = "UT" + revision = "05b4dd3047e5d6e86cb4e0477164b850cd896261" + +[[projects]] + digest = "1:78bbb1ba5b7c3f2ed0ea1eab57bdd3859aec7e177811563edc41198a760b06af" + name = "github.com/mitchellh/go-homedir" + packages = ["."] + pruneopts = "UT" + revision = "ae18d6b8b3205b561c79e8e5f69bff09736185f4" + version = "v1.0.0" + +[[projects]] + digest = "1:645110e089152bd0f4a011a2648fbb0e4df5977be73ca605781157ac297f50c4" + name = "github.com/mitchellh/mapstructure" + packages = ["."] + pruneopts = "UT" + revision = "fa473d140ef3c6adf42d6b391fe76707f1f243c8" + version = "v1.0.0" + +[[projects]] + digest = "1:cf5b7fbff2c87cff6c0e11f87b30edc21abc6592e6a76f41003ca6d5a712cf48" + name = "github.com/mr-tron/base58" + packages = ["base58"] + pruneopts = "UT" + revision = "6598572f05537592acb5a609ff53c4c7fbba7a3e" + version = "v1.1.1" + +[[projects]] + digest = "1:b9fe622bbadbb060338620752b1cb3aa1473855071195ebe83813af5ebb3629b" + name = "github.com/multiformats/go-base32" + packages = ["."] + pruneopts = "UT" + revision = "a9c2755c3d1672dbe6a7e4a5d182169fa30b6a8e" + version = "v0.0.3" + +[[projects]] + digest = "1:4fb02614401f3511d3c76482b6bc626a307811d53df34610ce5ded5ad83fa05d" + name = "github.com/multiformats/go-multiaddr" + packages = ["."] + pruneopts = "UT" + revision = "ce21123d5172669bbf37a166078bc5f9d345ec2f" + version = "v0.0.2" + +[[projects]] + digest = "1:e7b7007612b49b368d5b505b624b399a1de5fe2764271b92145aa9ca0440ab4e" + name = "github.com/multiformats/go-multiaddr-dns" + packages = ["."] + pruneopts = "UT" + revision = "e7c544d7a325c57bdbd7e9ba9c035a6701c5c7d2" + version = "v0.0.2" + +[[projects]] + digest = "1:ccb950e76138c70abe765c3b9c0e6cad0e55fc66ff53318cea8b651df9f892c7" + name = "github.com/multiformats/go-multiaddr-net" + packages = ["."] + pruneopts = "UT" + revision = "bd61b0499a3cfc893a8eb109c5669342b1671881" + version = "v0.0.1" + +[[projects]] + digest = "1:8f2a32f6d211bf2685d5c47ace5d6b59bd4359f69e92b632793d066129a65c4e" + name = "github.com/multiformats/go-multibase" + packages = ["."] + pruneopts = "UT" + revision = "d63641945dc1749baa23686ad0564ad63fef0493" + version = "v0.0.1" + +[[projects]] + digest = "1:b113be7291061893f53217f1b34f044f5a8ebd1d296fb6774b307f305a2ef9ed" + name = "github.com/multiformats/go-multicodec" + packages = [ + ".", + "base", + "base/b64", + "base/bin", + "base/hex", + "base/mux", + "cbor", + "json", + "mux", + ] + pruneopts = "UT" + revision = "b67bc51f663437753e2028cc4b5fea6192479956" + version = "v0.1.6" + +[[projects]] + digest = "1:f22991b1c70f4f93dbd16bf16f59f9b7f4b7fefbc1d6b6818d4aae1cb60f05af" + name = "github.com/multiformats/go-multihash" + packages = ["."] + pruneopts = "UT" + revision = "922cbd7915f407488e3f4413ada76400a1b29b49" + version = "v0.0.3" + +[[projects]] + digest = "1:894daf10008cdef37454571b584832b2a281a5709f6b80d7bd440ff3a627c962" + name = "github.com/multiformats/go-multistream" + packages = ["."] + pruneopts = "UT" + revision = "f3f44044ac2444cd3a017c0b269f8da65b0012f1" + version = "v0.0.1" + +[[projects]] + digest = "1:42e29deef12327a69123b9cb2cb45fee4af5c12c2a23c6e477338279a052703f" + name = "github.com/onsi/ginkgo" + packages = [ + ".", + "config", + "internal/codelocation", + "internal/containernode", + "internal/failer", + "internal/leafnodes", + "internal/remote", + "internal/spec", + "internal/spec_iterator", + "internal/specrunner", + "internal/suite", + "internal/testingtproxy", + "internal/writer", + "reporters", + "reporters/stenographer", + "reporters/stenographer/support/go-colorable", + "reporters/stenographer/support/go-isatty", + "types", + ] + pruneopts = "UT" + revision = "3774a09d95489ccaa16032e0770d08ea77ba6184" + version = "v1.6.0" + +[[projects]] + digest = "1:7167172a2391eaf512e8be8869b9295187c3f0d2576a11f09bca807a21374e56" + name = "github.com/onsi/gomega" + packages = [ + ".", + "format", + "ghttp", + "internal/assertion", + "internal/asyncassertion", + "internal/oraclematcher", + "internal/testingtsupport", + "matchers", + "matchers/support/goraph/bipartitegraph", + "matchers/support/goraph/edge", + "matchers/support/goraph/node", + "matchers/support/goraph/util", + "types", + ] + pruneopts = "UT" + revision = "7615b9433f86a8bdf29709bf288bc4fd0636a369" + version = "v1.4.2" + +[[projects]] + digest = "1:11e62d6050198055e6cd87ed57e5d8c669e84f839c16e16f192374d913d1a70d" + name = "github.com/opentracing/opentracing-go" + packages = [ + ".", + "ext", + "log", + ] + pruneopts = "UT" + revision = "659c90643e714681897ec2521c60567dd21da733" + version = "v1.1.0" + +[[projects]] + digest = "1:e5d0bd87abc2781d14e274807a470acd180f0499f8bf5bb18606e9ec22ad9de9" + name = "github.com/pborman/uuid" + packages = ["."] + pruneopts = "UT" + revision = "adf5a7427709b9deb95d29d3fa8a2bf9cfd388f1" + version = "v1.2" + +[[projects]] + digest = "1:95741de3af260a92cc5c7f3f3061e85273f5a81b5db20d4bd68da74bd521675e" + name = "github.com/pelletier/go-toml" + packages = ["."] + pruneopts = "UT" + revision = "c01d1270ff3e442a8a57cddc1c92dc1138598194" + version = "v1.2.0" + +[[projects]] + digest = "1:cf31692c14422fa27c83a05292eb5cbe0fb2775972e8f1f8446a71549bd8980b" + name = "github.com/pkg/errors" + packages = ["."] + pruneopts = "UT" + revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4" + version = "v0.8.1" + +[[projects]] + branch = "master" + digest = "1:13e3ecd0eb9145fd62bebcc8fb8334b20408f31da7be3cacb68b5abcd09a1f42" + name = "github.com/polydawn/refmt" + packages = [ + ".", + "cbor", + "json", + "obj", + "obj/atlas", + "pretty", + "shared", + "tok", + ] + pruneopts = "UT" + revision = "01bf1e26dd14f9b71f26b7005a2b1ef514d5f9a4" + +[[projects]] + digest = "1:1b8344715571e257101066e65d0bc8172715ecf09c8bd09b56763ec6389395e4" + name = "github.com/prometheus/tsdb" + packages = ["fileutil"] + pruneopts = "UT" + revision = "4b3a5ac5d36e5262d2656c8d149e137c2d1fab12" + version = "v0.7.0" + +[[projects]] + digest = "1:8f4b365e527c00e2ba6b25a4c41ee7b84078c375fba83c971e54d2f0582df279" + name = "github.com/rjeczalik/notify" + packages = ["."] + pruneopts = "UT" + revision = "0f065fa99b48b842c3fd3e2c8b194c6f2b69f6b8" + version = "v0.9.1" + +[[projects]] + digest = "1:0b8dd7447e420afff0260179dc892711e837edd1d446bc78dab924624a3c3c81" + name = "github.com/rs/cors" + packages = ["."] + pruneopts = "UT" + revision = "3fb1b69b103a84de38a19c3c6ec073dd6caa4d3f" + version = "v1.5.0" + +[[projects]] + digest = "1:69b1cc331fca23d702bd72f860c6a647afd0aa9fcbc1d0659b1365e26546dd70" + name = "github.com/sirupsen/logrus" + packages = ["."] + pruneopts = "UT" + revision = "bcd833dfe83d3cebad139e4a29ed79cb2318bf95" + version = "v1.2.0" + +[[projects]] + digest = "1:919bb3aa6d9d0b67648c219fa4925312bc3c2872da19e818fa769e9c97a2b643" + name = "github.com/spaolacci/murmur3" + packages = ["."] + pruneopts = "UT" + revision = "9f5d223c60793748f04a9d5b4b4eacddfc1f755d" + version = "v1.1" + +[[projects]] + digest = "1:6a4a11ba764a56d2758899ec6f3848d24698d48442ebce85ee7a3f63284526cd" + name = "github.com/spf13/afero" + packages = [ + ".", + "mem", + ] + pruneopts = "UT" + revision = "d40851caa0d747393da1ffb28f7f9d8b4eeffebd" + version = "v1.1.2" + +[[projects]] + digest = "1:516e71bed754268937f57d4ecb190e01958452336fa73dbac880894164e91c1f" + name = "github.com/spf13/cast" + packages = ["."] + pruneopts = "UT" + revision = "8965335b8c7107321228e3e3702cab9832751bac" + version = "v1.2.0" + +[[projects]] + digest = "1:645cabccbb4fa8aab25a956cbcbdf6a6845ca736b2c64e197ca7cbb9d210b939" + name = "github.com/spf13/cobra" + packages = ["."] + pruneopts = "UT" + revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" + version = "v0.0.3" + +[[projects]] + digest = "1:68ea4e23713989dc20b1bded5d9da2c5f9be14ff9885beef481848edd18c26cb" + name = "github.com/spf13/jwalterweatherman" + packages = ["."] + pruneopts = "UT" + revision = "4a4406e478ca629068e7768fc33f3f044173c0a6" + version = "v1.0.0" + +[[projects]] + digest = "1:dab83a1bbc7ad3d7a6ba1a1cc1760f25ac38cdf7d96a5cdd55cd915a4f5ceaf9" + name = "github.com/spf13/pflag" + packages = ["."] + pruneopts = "UT" + revision = "9a97c102cda95a86cec2345a6f09f55a939babf5" + version = "v1.0.2" + +[[projects]] + digest = "1:6e30a27eac59a148b3f7a32e0ba54706b31dcde5a42f63b22cb47873b62fa343" + name = "github.com/spf13/viper" + packages = ["."] + pruneopts = "UT" + revision = "8fb642006536c8d3760c99d4fa2389f5e2205631" + version = "v1.2.0" + +[[projects]] + branch = "develop" + digest = "1:6deccaba5762377091f2e5b26dba70e630e01edb3f95d1a6a59d9b098bd4358f" + name = "github.com/status-im/keycard-go" + packages = ["derivationpath"] + pruneopts = "UT" + revision = "8adf2b6627095127f26f77af865c056bb510097a" + +[[projects]] + branch = "master" + digest = "1:f2ffd421680b0a3f7887501b3c6974bcf19217ecd301d0e2c9b681940ec363d5" + name = "github.com/syndtr/goleveldb" + packages = [ + "leveldb", + "leveldb/cache", + "leveldb/comparer", + "leveldb/errors", + "leveldb/filter", + "leveldb/iterator", + "leveldb/journal", + "leveldb/memdb", + "leveldb/opt", + "leveldb/storage", + "leveldb/table", + "leveldb/util" + ] + pruneopts = "UT" + revision = "ae2bd5eed72d46b28834ec3f60db3a3ebedd8dbd" + +[[projects]] + digest = "1:73e0d2644cf33beeafbfb79804143ac9738bed3c28a12fd5e61bd3b13ac95407" + name = "github.com/tyler-smith/go-bip39" + packages = [ + ".", + "wordlists", + ] + pruneopts = "UT" + revision = "2af0a847066a4f2669040ccd44a79c8eca10806a" + version = "v1.0.0" + +[[projects]] + branch = "pair_with_syncAndPublish" + digest = "1:e39d772cfeed31912992a554049bf82b376e5d49f49b5cf2844eb211f3ca1081" + name = "github.com/vulcanize/eth-block-extractor" + packages = [ + "pkg/ipfs", + "pkg/ipfs/eth_block_header", + "pkg/ipfs/eth_block_receipts", + "pkg/ipfs/eth_block_transactions", + "pkg/ipfs/eth_state_trie", + "pkg/ipfs/eth_storage_trie", + "pkg/ipfs/util", + "pkg/wrappers/rlp", + ] + pruneopts = "UT" + revision = "b24f61a2b476a6ca31d1b182ca6c4838534b96ab" + +[[projects]] + branch = "master" + digest = "1:98fa13beefbf581ec173561adad6374c460631593b4bdcf03adc29cd18e5d2f5" + name = "github.com/whyrusleeping/base32" + packages = ["."] + pruneopts = "UT" + revision = "c30ac30633ccdabefe87eb12465113f06f1bab75" + +[[projects]] + branch = "master" + digest = "1:ee2495c639b3b0f9736db90775b8978b6d2495566b65fb8439d7b0665a749e16" + name = "github.com/whyrusleeping/cbor" + packages = ["go"] + pruneopts = "UT" + revision = "63513f603b11583741970c5045ea567130ddb492" + +[[projects]] + branch = "master" + digest = "1:3ca7e47848bbb8fc6c17b86c9887117e2e83dd5d68f7c4daf8c8fd30471ea597" + name = "github.com/whyrusleeping/chunker" + packages = ["."] + pruneopts = "UT" + revision = "fe64bd25879f446bb7e8a4adf5d4a68552211bd3" + +[[projects]] + branch = "master" + digest = "1:b33eed6794f2b2d1a7d0b45cb705402f26af0f0ad6521667e144ffa71f52d9d9" + name = "github.com/whyrusleeping/go-keyspace" + packages = ["."] + pruneopts = "UT" + revision = "5b898ac5add1da7178a4a98e69cb7b9205c085ee" + +[[projects]] + branch = "master" + digest = "1:0102dfa2f98777db8ff68c920bef1be3ff8504e90485b6cdd24d61b981b487b6" + name = "github.com/whyrusleeping/go-logging" + packages = ["."] + pruneopts = "UT" + revision = "0457bb6b88fc1973573aaf6b5145d8d3ae972390" + +[[projects]] + branch = "master" + digest = "1:94796f9decedb46b17985693cbe996ce3642a991f0efcf7bf9a6c5197da3eefc" + name = "github.com/whyrusleeping/go-notifier" + packages = ["."] + pruneopts = "UT" + revision = "097c5d47330ff6a823f67e3515faa13566a62c6f" + +[[projects]] + digest = "1:1c5b129f012e176d9cbcb173c67fef17698a2d0a8169e94c8db9e7beeb3ef716" + name = "github.com/whyrusleeping/go-smux-multiplex" + packages = ["."] + pruneopts = "UT" + revision = "2b855d4f3a3051b0133f7783bffe06e4b7833d1e" + version = "v3.0.16" + +[[projects]] + digest = "1:262e85ef9e2082fcb44335f6349699d61d5ac3672d24dcf3bf4cbc7377b51e96" + name = "github.com/whyrusleeping/go-smux-multistream" + packages = ["."] + pruneopts = "UT" + revision = "e799b10bc6eea2cc5ce18f7b7b4d8e1a0439476d" + version = "v2.0.2" + +[[projects]] + digest = "1:f1026ff0b15a5282885d6709582eba8d2faf261ffff4bac6960a8e97a4f6dfd5" + name = "github.com/whyrusleeping/go-smux-yamux" + packages = ["."] + pruneopts = "UT" + revision = "902adacdc02ba8fca64a0d0985576a1dc3138ee5" + version = "v2.0.9" + +[[projects]] + digest = "1:6c96967502c55c555abfe560f561a124951345e713a8e87cc6e2c214976e6e75" + name = "github.com/whyrusleeping/mafmt" + packages = ["."] + pruneopts = "UT" + revision = "7aa7fad2ede4e7157818e3e7af5061f866a9ae23" + version = "v1.2.8" + +[[projects]] + branch = "master" + digest = "1:0a017705731cb8ad506e72d842840ba89809e5b27b5593954c7eeeb631823735" + name = "github.com/whyrusleeping/mdns" + packages = ["."] + pruneopts = "UT" + revision = "ef14215e6b30606f4ce84174ed7a644a05cb1af3" + +[[projects]] + branch = "master" + digest = "1:94b933c1b26f1da25d25a089937d15987170a0a54109aa521a111345c3e84581" + name = "github.com/whyrusleeping/multiaddr-filter" + packages = ["."] + pruneopts = "UT" + revision = "e903e4adabd70b78bc9293b6ee4f359afb3f9f59" + +[[projects]] + branch = "master" + digest = "1:1ccd9d66ae1abe6b3b28d8b68e09387533fee345d8bbaa753af2fa16e0505807" + name = "github.com/whyrusleeping/timecache" + packages = ["."] + pruneopts = "UT" + revision = "cfcb2f1abfee846c430233aef0b630a946e0a5a6" + +[[projects]] + digest = "1:1f186490a9ec1359604f041997996fb0caa98878bd53cdf0b89b6b6ec6803af9" + name = "github.com/whyrusleeping/yamux" + packages = ["."] + pruneopts = "UT" + revision = "5364a42fe4b5efa5967c11c8f9b0f049cac0c4a9" + version = "v1.1.5" + +[[projects]] + branch = "master" + digest = "1:7dca0da64f5937af74f21618cdb812c8f16a7d042316dd5bf2f1dfd086be3fc6" + name = "github.com/wsddn/go-ecdh" + packages = ["."] + pruneopts = "UT" + revision = "48726bab92085232373de4ec5c51ce7b441c63a0" + +[[projects]] + digest = "1:e99f8ec6e9c0ad99ad6615409ce6588c77df8645ad4a5d9fc559fec95d7cae49" + name = "go.opencensus.io" + packages = [ + "internal/tagencoding", + "metric/metricdata", + "metric/metricproducer", + "resource", + "stats", + "stats/internal", + "stats/view", + "tag", + ] + pruneopts = "UT" + revision = "df6e2001952312404b06f5f6f03fcb4aec1648e5" + version = "v0.21.0" + +[[projects]] + branch = "master" + digest = "1:52796c672f9529f506ac63c10bf44072c8156cb2c85c0784a8b8ccb164e94903" + name = "go4.org" + packages = ["lock"] + pruneopts = "UT" + revision = "94abd6928b1da39b1d757b60c93fb2419c409fa1" + +[[projects]] + branch = "master" + digest = "1:0e122041f471cc1b3c15edcf68e96752faeb67c9b92e9365341ca8195cc6fb51" + name = "golang.org/x/crypto" + packages = [ + "blake2s", + "blowfish", + "chacha20poly1305", + "cryptobyte", + "cryptobyte/asn1", + "curve25519", + "ed25519", + "ed25519/internal/edwards25519", + "hkdf", + "internal/chacha20", + "internal/subtle", + "pbkdf2", + "poly1305", + "ripemd160", + "salsa20", + "salsa20/salsa", + "scrypt", + "sha3", + "ssh/terminal" + ] + pruneopts = "UT" + revision = "ff983b9c42bc9fbf91556e191cc8efb585c16908" + +[[projects]] + branch = "master" + digest = "1:e3fb02bc270f8fc06628d2a1dc6811d3753ccaef05ad060c9f6e7c2340ca0e1f" + name = "golang.org/x/net" + packages = [ + "bpf", + "context", + "html", + "html/atom", + "html/charset", + "websocket" + ] + "internal/iana", + "internal/socket", + "ipv4", + "ipv6", + "websocket", + ] + pruneopts = "UT" + revision = "26e67e76b6c3f6ce91f7c52def5af501b4e0f3a2" + +[[projects]] + branch = "master" + digest = "1:39ebcc2b11457b703ae9ee2e8cca0f68df21969c6102cb3b705f76cca0ea0239" + name = "golang.org/x/sync" + packages = ["errgroup"] + pruneopts = "UT" + revision = "1d60e4601c6fd243af51cc01ddf169918a5407ca" + +[[projects]] + branch = "master" + digest = "1:45c0985630ebeafc0dba3e5fad8ae79ac344250a0d3517da4abcf7bc25a162b6" + name = "golang.org/x/sys" + packages = [ + "cpu", + "unix", + "windows" + ] + pruneopts = "UT" + revision = "953cdadca894cdc07be76fc99f95b40c28f06623" + +[[projects]] + digest = "1:4392fcf42d5cf0e3ff78c96b2acf8223d49e4fdc53eb77c99d2f8dfe4680e006" + name = "golang.org/x/text" + packages = [ + "encoding", + "encoding/charmap", + "encoding/htmlindex", + "encoding/internal", + "encoding/internal/identifier", + "encoding/japanese", + "encoding/korean", + "encoding/simplifiedchinese", + "encoding/traditionalchinese", + "encoding/unicode", + "internal/gen", + "internal/tag", + "internal/triegen", + "internal/ucd", + "internal/utf8internal", + "language", + "runes", + "transform", + "unicode/cldr", + "unicode/norm" + ] + pruneopts = "UT" + revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" + version = "v0.3.0" + +[[projects]] + branch = "master" + digest = "1:d9d3a231c70b17470fc134900032da48d5c146f0f4a2ce12ceb92704dae8d67d" + name = "golang.org/x/xerrors" + packages = [ + ".", + "internal", + ] + pruneopts = "UT" + revision = "1f06c39b43733b74392b1972507822714ced3242" + +[[projects]] + digest = "1:abeb38ade3f32a92943e5be54f55ed6d6e3b6602761d74b4aab4c9dd45c18abd" + name = "gopkg.in/fsnotify.v1" + packages = ["."] + pruneopts = "UT" + revision = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9" + source = "gopkg.in/fsnotify/fsnotify.v1" + version = "v1.4.7" + +[[projects]] + branch = "v2" + digest = "1:3d3f9391ab615be8655ae0d686a1564f3fec413979bb1aaf018bac1ec1bb1cc7" + name = "gopkg.in/natefinch/npipe.v2" + packages = ["."] + pruneopts = "UT" + revision = "c1b8fa8bdccecb0b8db834ee0b92fdbcfa606dd6" + +[[projects]] + branch = "v1" + digest = "1:0caa92e17bc0b65a98c63e5bc76a9e844cd5e56493f8fdbb28fad101a16254d9" + name = "gopkg.in/tomb.v1" + packages = ["."] + pruneopts = "UT" + revision = "dd632973f1e7218eb1089048e0798ec9ae7dceb8" + +[[projects]] + digest = "1:b24d38b282bacf9791408a080f606370efa3d364e4b5fd9ba0f7b87786d3b679" + name = "gopkg.in/urfave/cli.v1" + packages = ["."] + pruneopts = "UT" + revision = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1" + version = "v1.20.0" + +[[projects]] + digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202" + name = "gopkg.in/yaml.v2" + packages = ["."] + pruneopts = "UT" + revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" + version = "v2.2.1" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "d41c963e87b06f7edd9135e30472894a114d0d8298454e6b2dae7ff25ac3c62a" + input-imports = [ + "github.com/dave/jennifer/jen", + "github.com/ethereum/go-ethereum", + "github.com/ethereum/go-ethereum/accounts/abi", + "github.com/ethereum/go-ethereum/accounts/abi/bind", + "github.com/ethereum/go-ethereum/common", + "github.com/ethereum/go-ethereum/common/hexutil", + "github.com/ethereum/go-ethereum/core/rawdb", + "github.com/ethereum/go-ethereum/core/types", + "github.com/ethereum/go-ethereum/crypto", + "github.com/ethereum/go-ethereum/ethclient", + "github.com/ethereum/go-ethereum/ethdb", + "github.com/ethereum/go-ethereum/p2p", + "github.com/ethereum/go-ethereum/p2p/discv5", + "github.com/ethereum/go-ethereum/rlp", + "github.com/ethereum/go-ethereum/rpc", + "github.com/ethereum/go-ethereum/statediff", + "github.com/hashicorp/golang-lru", + "github.com/hpcloud/tail", + "github.com/jmoiron/sqlx", + "github.com/lib/pq", + "github.com/mitchellh/go-homedir", + "github.com/onsi/ginkgo", + "github.com/onsi/gomega", + "github.com/onsi/gomega/ghttp", + "github.com/sirupsen/logrus", + "github.com/spf13/cobra", + "github.com/spf13/viper", + "github.com/vulcanize/eth-block-extractor/pkg/ipfs", + "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header", + "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts", + "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions", + "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie", + "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie", + "github.com/vulcanize/eth-block-extractor/pkg/wrappers/rlp", + "golang.org/x/net/context", + "golang.org/x/sync/errgroup", + "gopkg.in/tomb.v1", + ] + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 00000000..5c9bb894 --- /dev/null +++ b/Gopkg.toml @@ -0,0 +1,67 @@ + +# Gopkg.toml example +# +# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" + + +[[override]] + name = "gopkg.in/fsnotify.v1" + source = "gopkg.in/fsnotify/fsnotify.v1" + +[[override]] + name = "github.com/pressly/sup" + version = "0.5.3" + +[[constraint]] + name = "github.com/onsi/ginkgo" + version = "1.4.0" + +[[constraint]] + branch = "master" + name = "github.com/jmoiron/sqlx" + +[[constraint]] + branch = "master" + name = "github.com/lib/pq" + +[[constraint]] + name = "github.com/sirupsen/logrus" + version = "1.2.0" + +[[constraint]] + name = "github.com/spf13/cobra" + version = "0.0.1" + +[[constraint]] + name = "github.com/ethereum/go-ethereum" + source = "github.com/vulcanize/go-ethereum" + branch = "rpc_statediffs_at_head" + +[[constraint]] + name = "github.com/vulcanize/eth-block-extractor" + branch = "pair_with_syncAndPublish" + +[[override]] + name = "github.com/ipfs/go-ipfs" + version = "0.4.20" + +[prune] + go-tests = true + unused-packages = true diff --git a/cmd/syncAndPublish.go b/cmd/syncAndPublish.go index 2ea0479a..365fe79b 100644 --- a/cmd/syncAndPublish.go +++ b/cmd/syncAndPublish.go @@ -24,13 +24,13 @@ import ( "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/rpc" + "github.com/vulcanize/vulcanizedb/pkg/core" "github.com/vulcanize/vulcanizedb/pkg/geth" "github.com/vulcanize/vulcanizedb/pkg/geth/client" vRpc "github.com/vulcanize/vulcanizedb/pkg/geth/converters/rpc" "github.com/vulcanize/vulcanizedb/pkg/geth/node" "github.com/vulcanize/vulcanizedb/pkg/ipfs" "github.com/vulcanize/vulcanizedb/utils" - "github.com/vulcanize/vulcanizedb/pkg/core" ) // syncAndPublishCmd represents the syncAndPublish command @@ -65,7 +65,7 @@ func syncAndPublish() { log.Fatal(err) } - wg := syn.WaitGroup{} + wg := &syn.WaitGroup{} err = indexer.Index(wg) if err != nil { log.Fatal(err) @@ -86,4 +86,4 @@ func getBlockChainAndClients() (*geth.BlockChain, core.EthClient, core.RpcClient transactionConverter := vRpc.NewRpcTransactionConverter(ethClient) blockChain := geth.NewBlockChain(vdbEthClient, rpcClient, vdbNode, transactionConverter) return blockChain, ethClient, rpcClient -} \ No newline at end of file +} diff --git a/pkg/eth/client/rpc_client.go b/pkg/eth/client/rpc_client.go index fac16ccb..3c8dafa6 100644 --- a/pkg/eth/client/rpc_client.go +++ b/pkg/eth/client/rpc_client.go @@ -17,7 +17,6 @@ package client import ( - "errors" "context" "errors" "reflect" diff --git a/pkg/fakes/mock_rpc_client.go b/pkg/fakes/mock_rpc_client.go index 33e453b8..190309ea 100644 --- a/pkg/fakes/mock_rpc_client.go +++ b/pkg/fakes/mock_rpc_client.go @@ -187,3 +187,7 @@ func (client *MockRPCClient) AssertBatchCalledWith(method string, lengthOfBatch } Expect(client.passedMethod).To(Equal(method)) } + +func (client *MockRpcClient) Subscribe(namespace string, payloadChan interface{}, args ...interface{}) (*rpc.ClientSubscription, error) { + panic("implement me") +} diff --git a/pkg/ipfs/converter.go b/pkg/ipfs/converter.go new file mode 100644 index 00000000..15116516 --- /dev/null +++ b/pkg/ipfs/converter.go @@ -0,0 +1,114 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package ipfs + +import ( + "context" + "math/big" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/rlp" + "github.com/ethereum/go-ethereum/statediff" + + "github.com/vulcanize/vulcanizedb/pkg/core" +) + +// Converter interface is used to convert a geth statediff.Payload to our IPLDPayload type +type Converter interface { + Convert(payload statediff.Payload) (*IPLDPayload, error) +} + +// PayloadConverter is the underlying struct for the Converter interface +type PayloadConverter struct { + client core.EthClient +} + +// IPLDPayload is a custom type which packages ETH data for the IPFS publisher +type IPLDPayload struct { + HeaderRLP []byte + BlockNumber *big.Int + BlockHash common.Hash + BlockBody *types.Body + Receipts types.Receipts + StateLeafs map[common.Hash][]byte + StorageLeafs map[common.Hash]map[common.Hash][]byte +} + +// NewPayloadConverter creates a pointer to a new PayloadConverter which satisfies the Converter interface +func NewPayloadConverter(client core.EthClient) *PayloadConverter { + return &PayloadConverter{ + client: client, + } +} + +// Convert method is used to convert a geth statediff.Payload to a IPLDPayload +func (pc *PayloadConverter) Convert(payload statediff.Payload) (*IPLDPayload, error) { + // Unpack block rlp to access fields + block := new(types.Block) + err := rlp.DecodeBytes(payload.BlockRlp, block) + header := block.Header() + headerRlp, err := rlp.EncodeToBytes(header) + if err != nil { + return nil, err + } + convertedPayload := &IPLDPayload{ + BlockHash: block.Hash(), + BlockNumber: block.Number(), + HeaderRLP: headerRlp, + BlockBody: block.Body(), + Receipts: make(types.Receipts, 0), + StateLeafs: make(map[common.Hash][]byte), + StorageLeafs: make(map[common.Hash]map[common.Hash][]byte), + } + for _, trx := range block.Transactions() { + gethReceipt, err := pc.client.TransactionReceipt(context.Background(), trx.Hash()) + if err != nil { + return nil, err + } + convertedPayload.Receipts = append(convertedPayload.Receipts, gethReceipt) + } + + // Unpack state diff rlp to access fields + stateDiff := new(statediff.StateDiff) + err = rlp.DecodeBytes(payload.StateDiffRlp, stateDiff) + if err != nil { + return nil, err + } + for addr, createdAccount := range stateDiff.CreatedAccounts { + convertedPayload.StateLeafs[addr] = createdAccount.Value + convertedPayload.StorageLeafs[addr] = make(map[common.Hash][]byte) + for _, storageDiff := range createdAccount.Storage { + convertedPayload.StorageLeafs[addr][common.BytesToHash(storageDiff.Key)] = storageDiff.Value + } + } + for addr, deletedAccount := range stateDiff.DeletedAccounts { + convertedPayload.StateLeafs[addr] = deletedAccount.Value + convertedPayload.StorageLeafs[addr] = make(map[common.Hash][]byte) + for _, storageDiff := range deletedAccount.Storage { + convertedPayload.StorageLeafs[addr][common.BytesToHash(storageDiff.Key)] = storageDiff.Value + } + } + for addr, updatedAccount := range stateDiff.UpdatedAccounts { + convertedPayload.StateLeafs[addr] = updatedAccount.Value + convertedPayload.StorageLeafs[addr] = make(map[common.Hash][]byte) + for _, storageDiff := range updatedAccount.Storage { + convertedPayload.StorageLeafs[addr][common.BytesToHash(storageDiff.Key)] = storageDiff.Value + } + } + return convertedPayload, nil +} diff --git a/pkg/ipfs/converter_test.go b/pkg/ipfs/converter_test.go new file mode 100644 index 00000000..bef22610 --- /dev/null +++ b/pkg/ipfs/converter_test.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package ipfs_test diff --git a/pkg/ipfs/indexer.go b/pkg/ipfs/indexer.go index baabd213..8018ff1f 100644 --- a/pkg/ipfs/indexer.go +++ b/pkg/ipfs/indexer.go @@ -19,8 +19,8 @@ package ipfs import ( "sync" - log "github.com/sirupsen/logrus" "github.com/ethereum/go-ethereum/statediff" + log "github.com/sirupsen/logrus" "github.com/vulcanize/vulcanizedb/pkg/core" "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" @@ -31,16 +31,16 @@ const payloadChanBufferSize = 800 // 1/10th max eth sub buffer size // Indexer is an interface for streaming, converting to IPLDs, publishing, and indexing all Ethereum data // This is the top-level interface used by the syncAndPublish command type Indexer interface { - Index(wg sync.WaitGroup) error + Index(wg *sync.WaitGroup) error } // ipfsIndexer is the underlying struct for the Indexer interface // we are not exporting this to enforce proper initialization through the NewIPFSIndexer function type ipfsIndexer struct { - Streamer Streamer - Converter Converter - Publisher Publisher - Repository Repository + Streamer Streamer + Converter Converter + Publisher Publisher + Repository Repository PayloadChan chan statediff.Payload QuitChan chan bool } @@ -52,17 +52,17 @@ func NewIPFSIndexer(ipfsPath string, db *postgres.DB, ethClient core.EthClient, return nil, err } return &ipfsIndexer{ - Streamer: NewStateDiffSyncer(rpcClient), - Repository: NewCIDRepository(db), - Converter: NewPayloadConverter(ethClient), - Publisher: publisher, + Streamer: NewStateDiffSyncer(rpcClient), + Repository: NewCIDRepository(db), + Converter: NewPayloadConverter(ethClient), + Publisher: publisher, PayloadChan: make(chan statediff.Payload, payloadChanBufferSize), - QuitChan: qc, + QuitChan: qc, }, nil } // Index is the main processing loop -func (i *ipfsIndexer) Index(wg sync.WaitGroup) error { +func (i *ipfsIndexer) Index(wg *sync.WaitGroup) error { sub, err := i.Streamer.Stream(i.PayloadChan) if err != nil { return err @@ -73,6 +73,10 @@ func (i *ipfsIndexer) Index(wg sync.WaitGroup) error { for { select { case payload := <-i.PayloadChan: + if payload.Err != nil { + log.Error(err) + continue + } ipldPayload, err := i.Converter.Convert(payload) if err != nil { log.Error(err) diff --git a/pkg/ipfs/indexer_test.go b/pkg/ipfs/indexer_test.go new file mode 100644 index 00000000..bef22610 --- /dev/null +++ b/pkg/ipfs/indexer_test.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package ipfs_test diff --git a/pkg/ipfs/payload_converter.go b/pkg/ipfs/payload_converter.go deleted file mode 100644 index 8573cf90..00000000 --- a/pkg/ipfs/payload_converter.go +++ /dev/null @@ -1,115 +0,0 @@ -// VulcanizeDB -// Copyright © 2019 Vulcanize - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. - -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package ipfs - -import ( - "context" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/statediff" - - "github.com/vulcanize/vulcanizedb/pkg/core" -) - -// Converter interface is used to convert a geth statediff.Payload to our IPLDPayload type -type Converter interface { - Convert(payload statediff.Payload) (*IPLDPayload, error) -} - -// PayloadConverter is the underlying struct for the Converter interface -type PayloadConverter struct { - client core.EthClient -} - -// IPLDPayload is a custom type which packages ETH data for the IPFS publisher -type IPLDPayload struct { - HeaderRLP []byte - BlockNumber *big.Int - BlockHash common.Hash - BlockBody *types.Body - Receipts types.Receipts - StateLeafs map[common.Hash][]byte - StorageLeafs map[common.Hash]map[common.Hash][]byte -} - -// NewPayloadConverter creates a pointer to a new PayloadConverter which satisfies the Converter interface -func NewPayloadConverter(client core.EthClient) *PayloadConverter { - return &PayloadConverter{ - client: client, - } -} - -// Convert method is used to convert a geth statediff.Payload to a IPLDPayload -func (pc *PayloadConverter) Convert(payload statediff.Payload) (*IPLDPayload, error) { - // Unpack block rlp to access fields - block := new(types.Block) - err := rlp.DecodeBytes(payload.BlockRlp, block) - header := block.Header() - headerRlp, err := rlp.EncodeToBytes(header) - if err != nil { - return nil, err - } - convertedPayload := &IPLDPayload{ - BlockHash: block.Hash(), - BlockNumber: block.Number(), - HeaderRLP: headerRlp, - BlockBody: block.Body(), - Receipts: make(types.Receipts, 0), - StateLeafs: make(map[common.Hash][]byte), - StorageLeafs: make(map[common.Hash]map[common.Hash][]byte), - } - for _, trx := range block.Transactions() { - gethReceipt, err := pc.client.TransactionReceipt(context.Background(), trx.Hash()) - if err != nil { - return nil, err - } - convertedPayload.Receipts = append(convertedPayload.Receipts, gethReceipt) - } - - // Unpack state diff rlp to access fields - stateDiff := new(statediff.StateDiff) - err = rlp.DecodeBytes(payload.StateDiffRlp, stateDiff) - if err != nil { - return nil, err - } - for addr, createdAccount := range stateDiff.CreatedAccounts { - convertedPayload.StateLeafs[addr] = createdAccount.Value - convertedPayload.StorageLeafs[addr] = make(map[common.Hash][]byte) - for _, storageDiff := range createdAccount.Storage { - convertedPayload.StorageLeafs[addr][common.BytesToHash(storageDiff.Key)] = storageDiff.Value - } - } - for addr, deletedAccount := range stateDiff.DeletedAccounts { - convertedPayload.StateLeafs[addr] = deletedAccount.Value - convertedPayload.StorageLeafs[addr] = make(map[common.Hash][]byte) - for _, storageDiff := range deletedAccount.Storage { - convertedPayload.StorageLeafs[addr][common.BytesToHash(storageDiff.Key)] = storageDiff.Value - } - } - for addr, updatedAccount := range stateDiff.UpdatedAccounts { - convertedPayload.StateLeafs[addr] = updatedAccount.Value - convertedPayload.StorageLeafs[addr] = make(map[common.Hash][]byte) - for _, storageDiff := range updatedAccount.Storage { - convertedPayload.StorageLeafs[addr][common.BytesToHash(storageDiff.Key)] = storageDiff.Value - } - } - return convertedPayload, nil -} - diff --git a/pkg/ipfs/publisher.go b/pkg/ipfs/publisher.go index 9c137473..09b723dd 100644 --- a/pkg/ipfs/publisher.go +++ b/pkg/ipfs/publisher.go @@ -19,8 +19,8 @@ package ipfs import ( "errors" - "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" "github.com/vulcanize/eth-block-extractor/pkg/ipfs" "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header" @@ -38,22 +38,22 @@ type Publisher interface { // IPLDPublisher is the underlying struct for the Publisher interface type IPLDPublisher struct { - Node *ipfs.IPFS - HeaderPutter *eth_block_header.BlockHeaderDagPutter + Node *ipfs.IPFS + HeaderPutter *eth_block_header.BlockHeaderDagPutter TransactionPutter *eth_block_transactions.BlockTransactionsDagPutter - ReceiptPutter *eth_block_receipts.EthBlockReceiptDagPutter - StatePutter *eth_state_trie.StateTrieDagPutter - StoragePutter *eth_storage_trie.StorageTrieDagPutter + ReceiptPutter *eth_block_receipts.EthBlockReceiptDagPutter + StatePutter *eth_state_trie.StateTrieDagPutter + StoragePutter *eth_storage_trie.StorageTrieDagPutter } // CID payload is a struct to hold all the CIDs and their meta data type CIDPayload struct { - BlockNumber string - BlockHash string - HeaderCID string + BlockNumber string + BlockHash string + HeaderCID string TransactionCIDs map[common.Hash]string - ReceiptCIDs map[common.Hash]string - StateLeafCIDs map[common.Hash]string + ReceiptCIDs map[common.Hash]string + StateLeafCIDs map[common.Hash]string StorageLeafCIDs map[common.Hash]map[common.Hash]string } @@ -65,12 +65,12 @@ func NewIPLDPublisher(ipfsPath string) (*IPLDPublisher, error) { } decoder := rlp.RlpDecoder{} return &IPLDPublisher{ - Node: node, - HeaderPutter: eth_block_header.NewBlockHeaderDagPutter(node, decoder), + Node: node, + HeaderPutter: eth_block_header.NewBlockHeaderDagPutter(node, decoder), TransactionPutter: eth_block_transactions.NewBlockTransactionsDagPutter(node), - ReceiptPutter: eth_block_receipts.NewEthBlockReceiptDagPutter(node), - StatePutter: eth_state_trie.NewStateTrieDagPutter(node), - StoragePutter: eth_storage_trie.NewStorageTrieDagPutter(node), + ReceiptPutter: eth_block_receipts.NewEthBlockReceiptDagPutter(node), + StatePutter: eth_state_trie.NewStateTrieDagPutter(node), + StoragePutter: eth_storage_trie.NewStorageTrieDagPutter(node), }, nil } @@ -108,12 +108,12 @@ func (pub *IPLDPublisher) Publish(payload *IPLDPayload) (*CIDPayload, error) { // Package CIDs into a single struct return &CIDPayload{ - BlockHash: payload.BlockHash.Hex(), - BlockNumber: payload.BlockNumber.String(), - HeaderCID: headerCid, + BlockHash: payload.BlockHash.Hex(), + BlockNumber: payload.BlockNumber.String(), + HeaderCID: headerCid, TransactionCIDs: transactionCids, - ReceiptCIDs: receiptsCids, - StateLeafCIDs: stateLeafCids, + ReceiptCIDs: receiptsCids, + StateLeafCIDs: stateLeafCids, StorageLeafCIDs: storageLeafCids, }, nil } @@ -190,4 +190,4 @@ func (pub *IPLDPublisher) publishStorageLeafs(storageLeafs map[common.Hash]map[c } } return storageLeafCids, nil -} \ No newline at end of file +} diff --git a/pkg/ipfs/publisher_test.go b/pkg/ipfs/publisher_test.go new file mode 100644 index 00000000..bef22610 --- /dev/null +++ b/pkg/ipfs/publisher_test.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package ipfs_test diff --git a/pkg/ipfs/repository.go b/pkg/ipfs/repository.go index a52aa9af..32458b1e 100644 --- a/pkg/ipfs/repository.go +++ b/pkg/ipfs/repository.go @@ -60,13 +60,12 @@ func (repo *CIDRepository) Index(cidPayload *CIDPayload) error { return tx.Commit() } - func (repo *CIDRepository) indexHeaderCID(tx *sqlx.Tx, cid, blockNumber, hash string) (int64, error) { var headerID int64 err := tx.QueryRowx(`INSERT INTO public.header_cids (block_number, block_hash, cid) VALUES ($1, $2, $3) ON CONFLICT DO UPDATE SET cid = $3 RETURNING id`, - blockNumber, hash, cid).Scan(&headerID) + blockNumber, hash, cid).Scan(&headerID) return headerID, err } @@ -76,7 +75,7 @@ func (repo *CIDRepository) indexTransactionAndReceiptCIDs(tx *sqlx.Tx, payload * err := tx.QueryRowx(`INSERT INTO public.transaction_cids (header_id, tx_hash, cid) VALUES ($1, $2, $3) ON CONFLICT DO UPDATE SET cid = $3 RETURNING id`, - headerID, hash.Hex(), trxCid).Scan(&txID) + headerID, hash.Hex(), trxCid).Scan(&txID) if err != nil { return err } @@ -103,7 +102,7 @@ func (repo *CIDRepository) indexStateAndStorageCIDs(tx *sqlx.Tx, payload *CIDPay err := tx.QueryRowx(`INSERT INTO public.state_cids (header_id, account_key, cid) VALUES ($1, $2, $3) ON CONFLICT DO UPDATE SET cid = $3 RETURNING id`, - headerID, accountKey.Hex(), stateCID).Scan(&stateID) + headerID, accountKey.Hex(), stateCID).Scan(&stateID) if err != nil { return err } @@ -121,4 +120,4 @@ func (repo *CIDRepository) indexStorageCID(tx *sqlx.Tx, key, cid string, stateId _, err := repo.db.Exec(`INSERT INTO public.storage_cids (state_id, storage_key, cid) VALUES ($1, $2, $3) ON CONFLICT DO UPDATE SET cid = $3`, stateId, key, cid) return err -} \ No newline at end of file +} diff --git a/pkg/ipfs/repository_test.go b/pkg/ipfs/repository_test.go new file mode 100644 index 00000000..bef22610 --- /dev/null +++ b/pkg/ipfs/repository_test.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package ipfs_test diff --git a/pkg/ipfs/streamer.go b/pkg/ipfs/streamer.go index 02b67305..67ec8b0b 100644 --- a/pkg/ipfs/streamer.go +++ b/pkg/ipfs/streamer.go @@ -44,4 +44,4 @@ func NewStateDiffSyncer(client core.RpcClient) *StateDiffStreamer { // Stream is the main loop for subscribing to data from the Geth state diff process func (i *StateDiffStreamer) Stream(payloadChan chan statediff.Payload) (*rpc.ClientSubscription, error) { return i.Client.Subscribe("statediff", i.PayloadChan) -} \ No newline at end of file +} diff --git a/pkg/ipfs/streamer_test.go b/pkg/ipfs/streamer_test.go new file mode 100644 index 00000000..bef22610 --- /dev/null +++ b/pkg/ipfs/streamer_test.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package ipfs_test diff --git a/pkg/ipfs/test_helpers/fakes.go b/pkg/ipfs/test_helpers/fakes.go new file mode 100644 index 00000000..2c443bf3 --- /dev/null +++ b/pkg/ipfs/test_helpers/fakes.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package test_helpers diff --git a/pkg/ipfs/test_helpers/mocks/converter.go b/pkg/ipfs/test_helpers/mocks/converter.go new file mode 100644 index 00000000..11d51d50 --- /dev/null +++ b/pkg/ipfs/test_helpers/mocks/converter.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package mocks diff --git a/pkg/ipfs/test_helpers/mocks/publisher.go b/pkg/ipfs/test_helpers/mocks/publisher.go new file mode 100644 index 00000000..11d51d50 --- /dev/null +++ b/pkg/ipfs/test_helpers/mocks/publisher.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package mocks diff --git a/pkg/ipfs/test_helpers/mocks/repository.go b/pkg/ipfs/test_helpers/mocks/repository.go new file mode 100644 index 00000000..11d51d50 --- /dev/null +++ b/pkg/ipfs/test_helpers/mocks/repository.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package mocks diff --git a/pkg/ipfs/test_helpers/mocks/streamer.go b/pkg/ipfs/test_helpers/mocks/streamer.go new file mode 100644 index 00000000..11d51d50 --- /dev/null +++ b/pkg/ipfs/test_helpers/mocks/streamer.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package mocks diff --git a/pkg/ipfs/test_helpers/test_helpers.go b/pkg/ipfs/test_helpers/test_helpers.go new file mode 100644 index 00000000..2c443bf3 --- /dev/null +++ b/pkg/ipfs/test_helpers/test_helpers.go @@ -0,0 +1,17 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package test_helpers diff --git a/vendor/bazil.org/fuse/.gitattributes b/vendor/bazil.org/fuse/.gitattributes new file mode 100644 index 00000000..b65f2a9f --- /dev/null +++ b/vendor/bazil.org/fuse/.gitattributes @@ -0,0 +1,2 @@ +*.go filter=gofmt +*.cgo filter=gofmt diff --git a/vendor/bazil.org/fuse/.gitignore b/vendor/bazil.org/fuse/.gitignore new file mode 100644 index 00000000..53589948 --- /dev/null +++ b/vendor/bazil.org/fuse/.gitignore @@ -0,0 +1,11 @@ +*~ +.#* +## the next line needs to start with a backslash to avoid looking like +## a comment +\#*# +.*.swp + +*.test + +/clockfs +/hellofs diff --git a/vendor/bazil.org/fuse/LICENSE b/vendor/bazil.org/fuse/LICENSE new file mode 100644 index 00000000..4ac7cd83 --- /dev/null +++ b/vendor/bazil.org/fuse/LICENSE @@ -0,0 +1,93 @@ +Copyright (c) 2013-2015 Tommi Virtanen. +Copyright (c) 2009, 2011, 2012 The Go Authors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +The following included software components have additional copyright +notices and license terms that may differ from the above. + + +File fuse.go: + +// Adapted from Plan 9 from User Space's src/cmd/9pfuse/fuse.c, +// which carries this notice: +// +// The files in this directory are subject to the following license. +// +// The author of this software is Russ Cox. +// +// Copyright (c) 2006 Russ Cox +// +// Permission to use, copy, modify, and distribute this software for any +// purpose without fee is hereby granted, provided that this entire notice +// is included in all copies of any software which is or includes a copy +// or modification of this software and in all copies of the supporting +// documentation for such software. +// +// THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +// WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION OR WARRANTY +// OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS +// FITNESS FOR ANY PARTICULAR PURPOSE. + + +File fuse_kernel.go: + +// Derived from FUSE's fuse_kernel.h +/* + This file defines the kernel interface of FUSE + Copyright (C) 2001-2007 Miklos Szeredi + + + This -- and only this -- header file may also be distributed under + the terms of the BSD Licence as follows: + + Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +*/ diff --git a/vendor/bazil.org/fuse/README.md b/vendor/bazil.org/fuse/README.md new file mode 100644 index 00000000..8c6d556e --- /dev/null +++ b/vendor/bazil.org/fuse/README.md @@ -0,0 +1,23 @@ +bazil.org/fuse -- Filesystems in Go +=================================== + +`bazil.org/fuse` is a Go library for writing FUSE userspace +filesystems. + +It is a from-scratch implementation of the kernel-userspace +communication protocol, and does not use the C library from the +project called FUSE. `bazil.org/fuse` embraces Go fully for safety and +ease of programming. + +Here’s how to get going: + + go get bazil.org/fuse + +Website: http://bazil.org/fuse/ + +Github repository: https://github.com/bazil/fuse + +API docs: http://godoc.org/bazil.org/fuse + +Our thanks to Russ Cox for his fuse library, which this project is +based on. diff --git a/vendor/bazil.org/fuse/buffer.go b/vendor/bazil.org/fuse/buffer.go new file mode 100644 index 00000000..bb1d2b77 --- /dev/null +++ b/vendor/bazil.org/fuse/buffer.go @@ -0,0 +1,35 @@ +package fuse + +import "unsafe" + +// buffer provides a mechanism for constructing a message from +// multiple segments. +type buffer []byte + +// alloc allocates size bytes and returns a pointer to the new +// segment. +func (w *buffer) alloc(size uintptr) unsafe.Pointer { + s := int(size) + if len(*w)+s > cap(*w) { + old := *w + *w = make([]byte, len(*w), 2*cap(*w)+s) + copy(*w, old) + } + l := len(*w) + *w = (*w)[:l+s] + return unsafe.Pointer(&(*w)[l]) +} + +// reset clears out the contents of the buffer. +func (w *buffer) reset() { + for i := range (*w)[:cap(*w)] { + (*w)[i] = 0 + } + *w = (*w)[:0] +} + +func newBuffer(extra uintptr) buffer { + const hdrSize = unsafe.Sizeof(outHeader{}) + buf := make(buffer, hdrSize, hdrSize+extra) + return buf +} diff --git a/vendor/bazil.org/fuse/debug.go b/vendor/bazil.org/fuse/debug.go new file mode 100644 index 00000000..be9f900d --- /dev/null +++ b/vendor/bazil.org/fuse/debug.go @@ -0,0 +1,21 @@ +package fuse + +import ( + "runtime" +) + +func stack() string { + buf := make([]byte, 1024) + return string(buf[:runtime.Stack(buf, false)]) +} + +func nop(msg interface{}) {} + +// Debug is called to output debug messages, including protocol +// traces. The default behavior is to do nothing. +// +// The messages have human-friendly string representations and are +// safe to marshal to JSON. +// +// Implementations must not retain msg. +var Debug func(msg interface{}) = nop diff --git a/vendor/bazil.org/fuse/error_darwin.go b/vendor/bazil.org/fuse/error_darwin.go new file mode 100644 index 00000000..a3fb89ca --- /dev/null +++ b/vendor/bazil.org/fuse/error_darwin.go @@ -0,0 +1,17 @@ +package fuse + +import ( + "syscall" +) + +const ( + ENOATTR = Errno(syscall.ENOATTR) +) + +const ( + errNoXattr = ENOATTR +) + +func init() { + errnoNames[errNoXattr] = "ENOATTR" +} diff --git a/vendor/bazil.org/fuse/error_freebsd.go b/vendor/bazil.org/fuse/error_freebsd.go new file mode 100644 index 00000000..c6ea6d6e --- /dev/null +++ b/vendor/bazil.org/fuse/error_freebsd.go @@ -0,0 +1,15 @@ +package fuse + +import "syscall" + +const ( + ENOATTR = Errno(syscall.ENOATTR) +) + +const ( + errNoXattr = ENOATTR +) + +func init() { + errnoNames[errNoXattr] = "ENOATTR" +} diff --git a/vendor/bazil.org/fuse/error_linux.go b/vendor/bazil.org/fuse/error_linux.go new file mode 100644 index 00000000..6f113e71 --- /dev/null +++ b/vendor/bazil.org/fuse/error_linux.go @@ -0,0 +1,17 @@ +package fuse + +import ( + "syscall" +) + +const ( + ENODATA = Errno(syscall.ENODATA) +) + +const ( + errNoXattr = ENODATA +) + +func init() { + errnoNames[errNoXattr] = "ENODATA" +} diff --git a/vendor/bazil.org/fuse/error_std.go b/vendor/bazil.org/fuse/error_std.go new file mode 100644 index 00000000..398f43fb --- /dev/null +++ b/vendor/bazil.org/fuse/error_std.go @@ -0,0 +1,31 @@ +package fuse + +// There is very little commonality in extended attribute errors +// across platforms. +// +// getxattr return value for "extended attribute does not exist" is +// ENOATTR on OS X, and ENODATA on Linux and apparently at least +// NetBSD. There may be a #define ENOATTR on Linux too, but the value +// is ENODATA in the actual syscalls. FreeBSD and OpenBSD have no +// ENODATA, only ENOATTR. ENOATTR is not in any of the standards, +// ENODATA exists but is only used for STREAMs. +// +// Each platform will define it a errNoXattr constant, and this file +// will enforce that it implements the right interfaces and hide the +// implementation. +// +// https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/getxattr.2.html +// http://mail-index.netbsd.org/tech-kern/2012/04/30/msg013090.html +// http://mail-index.netbsd.org/tech-kern/2012/04/30/msg013097.html +// http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html +// http://www.freebsd.org/cgi/man.cgi?query=extattr_get_file&sektion=2 +// http://nixdoc.net/man-pages/openbsd/man2/extattr_get_file.2.html + +// ErrNoXattr is a platform-independent error value meaning the +// extended attribute was not found. It can be used to respond to +// GetxattrRequest and such. +const ErrNoXattr = errNoXattr + +var _ error = ErrNoXattr +var _ Errno = ErrNoXattr +var _ ErrorNumber = ErrNoXattr diff --git a/vendor/bazil.org/fuse/fs/serve.go b/vendor/bazil.org/fuse/fs/serve.go new file mode 100644 index 00000000..e9fc5659 --- /dev/null +++ b/vendor/bazil.org/fuse/fs/serve.go @@ -0,0 +1,1568 @@ +// FUSE service loop, for servers that wish to use it. + +package fs // import "bazil.org/fuse/fs" + +import ( + "encoding/binary" + "fmt" + "hash/fnv" + "io" + "log" + "reflect" + "runtime" + "strings" + "sync" + "time" + + "golang.org/x/net/context" +) + +import ( + "bytes" + + "bazil.org/fuse" + "bazil.org/fuse/fuseutil" +) + +const ( + attrValidTime = 1 * time.Minute + entryValidTime = 1 * time.Minute +) + +// TODO: FINISH DOCS + +// An FS is the interface required of a file system. +// +// Other FUSE requests can be handled by implementing methods from the +// FS* interfaces, for example FSStatfser. +type FS interface { + // Root is called to obtain the Node for the file system root. + Root() (Node, error) +} + +type FSStatfser interface { + // Statfs is called to obtain file system metadata. + // It should write that data to resp. + Statfs(ctx context.Context, req *fuse.StatfsRequest, resp *fuse.StatfsResponse) error +} + +type FSDestroyer interface { + // Destroy is called when the file system is shutting down. + // + // Linux only sends this request for block device backed (fuseblk) + // filesystems, to allow them to flush writes to disk before the + // unmount completes. + Destroy() +} + +type FSInodeGenerator interface { + // GenerateInode is called to pick a dynamic inode number when it + // would otherwise be 0. + // + // Not all filesystems bother tracking inodes, but FUSE requires + // the inode to be set, and fewer duplicates in general makes UNIX + // tools work better. + // + // Operations where the nodes may return 0 inodes include Getattr, + // Setattr and ReadDir. + // + // If FS does not implement FSInodeGenerator, GenerateDynamicInode + // is used. + // + // Implementing this is useful to e.g. constrain the range of + // inode values used for dynamic inodes. + GenerateInode(parentInode uint64, name string) uint64 +} + +// A Node is the interface required of a file or directory. +// See the documentation for type FS for general information +// pertaining to all methods. +// +// A Node must be usable as a map key, that is, it cannot be a +// function, map or slice. +// +// Other FUSE requests can be handled by implementing methods from the +// Node* interfaces, for example NodeOpener. +// +// Methods returning Node should take care to return the same Node +// when the result is logically the same instance. Without this, each +// Node will get a new NodeID, causing spurious cache invalidations, +// extra lookups and aliasing anomalies. This may not matter for a +// simple, read-only filesystem. +type Node interface { + // Attr fills attr with the standard metadata for the node. + // + // Fields with reasonable defaults are prepopulated. For example, + // all times are set to a fixed moment when the program started. + // + // If Inode is left as 0, a dynamic inode number is chosen. + // + // The result may be cached for the duration set in Valid. + Attr(ctx context.Context, attr *fuse.Attr) error +} + +type NodeGetattrer interface { + // Getattr obtains the standard metadata for the receiver. + // It should store that metadata in resp. + // + // If this method is not implemented, the attributes will be + // generated based on Attr(), with zero values filled in. + Getattr(ctx context.Context, req *fuse.GetattrRequest, resp *fuse.GetattrResponse) error +} + +type NodeSetattrer interface { + // Setattr sets the standard metadata for the receiver. + // + // Note, this is also used to communicate changes in the size of + // the file, outside of Writes. + // + // req.Valid is a bitmask of what fields are actually being set. + // For example, the method should not change the mode of the file + // unless req.Valid.Mode() is true. + Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error +} + +type NodeSymlinker interface { + // Symlink creates a new symbolic link in the receiver, which must be a directory. + // + // TODO is the above true about directories? + Symlink(ctx context.Context, req *fuse.SymlinkRequest) (Node, error) +} + +// This optional request will be called only for symbolic link nodes. +type NodeReadlinker interface { + // Readlink reads a symbolic link. + Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error) +} + +type NodeLinker interface { + // Link creates a new directory entry in the receiver based on an + // existing Node. Receiver must be a directory. + Link(ctx context.Context, req *fuse.LinkRequest, old Node) (Node, error) +} + +type NodeRemover interface { + // Remove removes the entry with the given name from + // the receiver, which must be a directory. The entry to be removed + // may correspond to a file (unlink) or to a directory (rmdir). + Remove(ctx context.Context, req *fuse.RemoveRequest) error +} + +type NodeAccesser interface { + // Access checks whether the calling context has permission for + // the given operations on the receiver. If so, Access should + // return nil. If not, Access should return EPERM. + // + // Note that this call affects the result of the access(2) system + // call but not the open(2) system call. If Access is not + // implemented, the Node behaves as if it always returns nil + // (permission granted), relying on checks in Open instead. + Access(ctx context.Context, req *fuse.AccessRequest) error +} + +type NodeStringLookuper interface { + // Lookup looks up a specific entry in the receiver, + // which must be a directory. Lookup should return a Node + // corresponding to the entry. If the name does not exist in + // the directory, Lookup should return ENOENT. + // + // Lookup need not to handle the names "." and "..". + Lookup(ctx context.Context, name string) (Node, error) +} + +type NodeRequestLookuper interface { + // Lookup looks up a specific entry in the receiver. + // See NodeStringLookuper for more. + Lookup(ctx context.Context, req *fuse.LookupRequest, resp *fuse.LookupResponse) (Node, error) +} + +type NodeMkdirer interface { + Mkdir(ctx context.Context, req *fuse.MkdirRequest) (Node, error) +} + +type NodeOpener interface { + // Open opens the receiver. After a successful open, a client + // process has a file descriptor referring to this Handle. + // + // Open can also be also called on non-files. For example, + // directories are Opened for ReadDir or fchdir(2). + // + // If this method is not implemented, the open will always + // succeed, and the Node itself will be used as the Handle. + // + // XXX note about access. XXX OpenFlags. + Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (Handle, error) +} + +type NodeCreater interface { + // Create creates a new directory entry in the receiver, which + // must be a directory. + Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (Node, Handle, error) +} + +type NodeForgetter interface { + // Forget about this node. This node will not receive further + // method calls. + // + // Forget is not necessarily seen on unmount, as all nodes are + // implicitly forgotten as part part of the unmount. + Forget() +} + +type NodeRenamer interface { + Rename(ctx context.Context, req *fuse.RenameRequest, newDir Node) error +} + +type NodeMknoder interface { + Mknod(ctx context.Context, req *fuse.MknodRequest) (Node, error) +} + +// TODO this should be on Handle not Node +type NodeFsyncer interface { + Fsync(ctx context.Context, req *fuse.FsyncRequest) error +} + +type NodeGetxattrer interface { + // Getxattr gets an extended attribute by the given name from the + // node. + // + // If there is no xattr by that name, returns fuse.ErrNoXattr. + Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error +} + +type NodeListxattrer interface { + // Listxattr lists the extended attributes recorded for the node. + Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error +} + +type NodeSetxattrer interface { + // Setxattr sets an extended attribute with the given name and + // value for the node. + Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error +} + +type NodeRemovexattrer interface { + // Removexattr removes an extended attribute for the name. + // + // If there is no xattr by that name, returns fuse.ErrNoXattr. + Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error +} + +var startTime = time.Now() + +func nodeAttr(ctx context.Context, n Node, attr *fuse.Attr) error { + attr.Valid = attrValidTime + attr.Nlink = 1 + attr.Atime = startTime + attr.Mtime = startTime + attr.Ctime = startTime + attr.Crtime = startTime + if err := n.Attr(ctx, attr); err != nil { + return err + } + return nil +} + +// A Handle is the interface required of an opened file or directory. +// See the documentation for type FS for general information +// pertaining to all methods. +// +// Other FUSE requests can be handled by implementing methods from the +// Handle* interfaces. The most common to implement are HandleReader, +// HandleReadDirer, and HandleWriter. +// +// TODO implement methods: Getlk, Setlk, Setlkw +type Handle interface { +} + +type HandleFlusher interface { + // Flush is called each time the file or directory is closed. + // Because there can be multiple file descriptors referring to a + // single opened file, Flush can be called multiple times. + Flush(ctx context.Context, req *fuse.FlushRequest) error +} + +type HandleReadAller interface { + ReadAll(ctx context.Context) ([]byte, error) +} + +type HandleReadDirAller interface { + ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) +} + +type HandleReader interface { + // Read requests to read data from the handle. + // + // There is a page cache in the kernel that normally submits only + // page-aligned reads spanning one or more pages. However, you + // should not rely on this. To see individual requests as + // submitted by the file system clients, set OpenDirectIO. + // + // Note that reads beyond the size of the file as reported by Attr + // are not even attempted (except in OpenDirectIO mode). + Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error +} + +type HandleWriter interface { + // Write requests to write data into the handle at the given offset. + // Store the amount of data written in resp.Size. + // + // There is a writeback page cache in the kernel that normally submits + // only page-aligned writes spanning one or more pages. However, + // you should not rely on this. To see individual requests as + // submitted by the file system clients, set OpenDirectIO. + // + // Writes that grow the file are expected to update the file size + // (as seen through Attr). Note that file size changes are + // communicated also through Setattr. + Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error +} + +type HandleReleaser interface { + Release(ctx context.Context, req *fuse.ReleaseRequest) error +} + +type Config struct { + // Function to send debug log messages to. If nil, use fuse.Debug. + // Note that changing this or fuse.Debug may not affect existing + // calls to Serve. + // + // See fuse.Debug for the rules that log functions must follow. + Debug func(msg interface{}) + + // Function to put things into context for processing the request. + // The returned context must have ctx as its parent. + // + // Note that changing this may not affect existing calls to Serve. + // + // Must not retain req. + WithContext func(ctx context.Context, req fuse.Request) context.Context +} + +// New returns a new FUSE server ready to serve this kernel FUSE +// connection. +// +// Config may be nil. +func New(conn *fuse.Conn, config *Config) *Server { + s := &Server{ + conn: conn, + req: map[fuse.RequestID]*serveRequest{}, + nodeRef: map[Node]fuse.NodeID{}, + dynamicInode: GenerateDynamicInode, + } + if config != nil { + s.debug = config.Debug + s.context = config.WithContext + } + if s.debug == nil { + s.debug = fuse.Debug + } + return s +} + +type Server struct { + // set in New + conn *fuse.Conn + debug func(msg interface{}) + context func(ctx context.Context, req fuse.Request) context.Context + + // set once at Serve time + fs FS + dynamicInode func(parent uint64, name string) uint64 + + // state, protected by meta + meta sync.Mutex + req map[fuse.RequestID]*serveRequest + node []*serveNode + nodeRef map[Node]fuse.NodeID + handle []*serveHandle + freeNode []fuse.NodeID + freeHandle []fuse.HandleID + nodeGen uint64 + + // Used to ensure worker goroutines finish before Serve returns + wg sync.WaitGroup +} + +// Serve serves the FUSE connection by making calls to the methods +// of fs and the Nodes and Handles it makes available. It returns only +// when the connection has been closed or an unexpected error occurs. +func (s *Server) Serve(fs FS) error { + defer s.wg.Wait() // Wait for worker goroutines to complete before return + + s.fs = fs + if dyn, ok := fs.(FSInodeGenerator); ok { + s.dynamicInode = dyn.GenerateInode + } + + root, err := fs.Root() + if err != nil { + return fmt.Errorf("cannot obtain root node: %v", err) + } + // Recognize the root node if it's ever returned from Lookup, + // passed to Invalidate, etc. + s.nodeRef[root] = 1 + s.node = append(s.node, nil, &serveNode{ + inode: 1, + generation: s.nodeGen, + node: root, + refs: 1, + }) + s.handle = append(s.handle, nil) + + for { + req, err := s.conn.ReadRequest() + if err != nil { + if err == io.EOF { + break + } + return err + } + + s.wg.Add(1) + go func() { + defer s.wg.Done() + s.serve(req) + }() + } + return nil +} + +// Serve serves a FUSE connection with the default settings. See +// Server.Serve. +func Serve(c *fuse.Conn, fs FS) error { + server := New(c, nil) + return server.Serve(fs) +} + +type nothing struct{} + +type serveRequest struct { + Request fuse.Request + cancel func() +} + +type serveNode struct { + inode uint64 + generation uint64 + node Node + refs uint64 + + // Delay freeing the NodeID until waitgroup is done. This allows + // using the NodeID for short periods of time without holding the + // Server.meta lock. + // + // Rules: + // + // - hold Server.meta while calling wg.Add, then unlock + // - do NOT try to reacquire Server.meta + wg sync.WaitGroup +} + +func (sn *serveNode) attr(ctx context.Context, attr *fuse.Attr) error { + err := nodeAttr(ctx, sn.node, attr) + if attr.Inode == 0 { + attr.Inode = sn.inode + } + return err +} + +type serveHandle struct { + handle Handle + readData []byte + nodeID fuse.NodeID +} + +// NodeRef is deprecated. It remains here to decrease code churn on +// FUSE library users. You may remove it from your program now; +// returning the same Node values are now recognized automatically, +// without needing NodeRef. +type NodeRef struct{} + +func (c *Server) saveNode(inode uint64, node Node) (id fuse.NodeID, gen uint64) { + c.meta.Lock() + defer c.meta.Unlock() + + if id, ok := c.nodeRef[node]; ok { + sn := c.node[id] + sn.refs++ + return id, sn.generation + } + + sn := &serveNode{inode: inode, node: node, refs: 1} + if n := len(c.freeNode); n > 0 { + id = c.freeNode[n-1] + c.freeNode = c.freeNode[:n-1] + c.node[id] = sn + c.nodeGen++ + } else { + id = fuse.NodeID(len(c.node)) + c.node = append(c.node, sn) + } + sn.generation = c.nodeGen + c.nodeRef[node] = id + return id, sn.generation +} + +func (c *Server) saveHandle(handle Handle, nodeID fuse.NodeID) (id fuse.HandleID) { + c.meta.Lock() + shandle := &serveHandle{handle: handle, nodeID: nodeID} + if n := len(c.freeHandle); n > 0 { + id = c.freeHandle[n-1] + c.freeHandle = c.freeHandle[:n-1] + c.handle[id] = shandle + } else { + id = fuse.HandleID(len(c.handle)) + c.handle = append(c.handle, shandle) + } + c.meta.Unlock() + return +} + +type nodeRefcountDropBug struct { + N uint64 + Refs uint64 + Node fuse.NodeID +} + +func (n *nodeRefcountDropBug) String() string { + return fmt.Sprintf("bug: trying to drop %d of %d references to %v", n.N, n.Refs, n.Node) +} + +func (c *Server) dropNode(id fuse.NodeID, n uint64) (forget bool) { + c.meta.Lock() + defer c.meta.Unlock() + snode := c.node[id] + + if snode == nil { + // this should only happen if refcounts kernel<->us disagree + // *and* two ForgetRequests for the same node race each other; + // this indicates a bug somewhere + c.debug(nodeRefcountDropBug{N: n, Node: id}) + + // we may end up triggering Forget twice, but that's better + // than not even once, and that's the best we can do + return true + } + + if n > snode.refs { + c.debug(nodeRefcountDropBug{N: n, Refs: snode.refs, Node: id}) + n = snode.refs + } + + snode.refs -= n + if snode.refs == 0 { + snode.wg.Wait() + c.node[id] = nil + delete(c.nodeRef, snode.node) + c.freeNode = append(c.freeNode, id) + return true + } + return false +} + +func (c *Server) dropHandle(id fuse.HandleID) { + c.meta.Lock() + c.handle[id] = nil + c.freeHandle = append(c.freeHandle, id) + c.meta.Unlock() +} + +type missingHandle struct { + Handle fuse.HandleID + MaxHandle fuse.HandleID +} + +func (m missingHandle) String() string { + return fmt.Sprint("missing handle: ", m.Handle, m.MaxHandle) +} + +// Returns nil for invalid handles. +func (c *Server) getHandle(id fuse.HandleID) (shandle *serveHandle) { + c.meta.Lock() + defer c.meta.Unlock() + if id < fuse.HandleID(len(c.handle)) { + shandle = c.handle[uint(id)] + } + if shandle == nil { + c.debug(missingHandle{ + Handle: id, + MaxHandle: fuse.HandleID(len(c.handle)), + }) + } + return +} + +type request struct { + Op string + Request *fuse.Header + In interface{} `json:",omitempty"` +} + +func (r request) String() string { + return fmt.Sprintf("<- %s", r.In) +} + +type logResponseHeader struct { + ID fuse.RequestID +} + +func (m logResponseHeader) String() string { + return fmt.Sprintf("ID=%v", m.ID) +} + +type response struct { + Op string + Request logResponseHeader + Out interface{} `json:",omitempty"` + // Errno contains the errno value as a string, for example "EPERM". + Errno string `json:",omitempty"` + // Error may contain a free form error message. + Error string `json:",omitempty"` +} + +func (r response) errstr() string { + s := r.Errno + if r.Error != "" { + // prefix the errno constant to the long form message + s = s + ": " + r.Error + } + return s +} + +func (r response) String() string { + switch { + case r.Errno != "" && r.Out != nil: + return fmt.Sprintf("-> [%v] %v error=%s", r.Request, r.Out, r.errstr()) + case r.Errno != "": + return fmt.Sprintf("-> [%v] %s error=%s", r.Request, r.Op, r.errstr()) + case r.Out != nil: + // make sure (seemingly) empty values are readable + switch r.Out.(type) { + case string: + return fmt.Sprintf("-> [%v] %s %q", r.Request, r.Op, r.Out) + case []byte: + return fmt.Sprintf("-> [%v] %s [% x]", r.Request, r.Op, r.Out) + default: + return fmt.Sprintf("-> [%v] %v", r.Request, r.Out) + } + default: + return fmt.Sprintf("-> [%v] %s", r.Request, r.Op) + } +} + +type notification struct { + Op string + Node fuse.NodeID + Out interface{} `json:",omitempty"` + Err string `json:",omitempty"` +} + +func (n notification) String() string { + var buf bytes.Buffer + fmt.Fprintf(&buf, "=> %s %v", n.Op, n.Node) + if n.Out != nil { + // make sure (seemingly) empty values are readable + switch n.Out.(type) { + case string: + fmt.Fprintf(&buf, " %q", n.Out) + case []byte: + fmt.Fprintf(&buf, " [% x]", n.Out) + default: + fmt.Fprintf(&buf, " %s", n.Out) + } + } + if n.Err != "" { + fmt.Fprintf(&buf, " Err:%v", n.Err) + } + return buf.String() +} + +type logMissingNode struct { + MaxNode fuse.NodeID +} + +func opName(req fuse.Request) string { + t := reflect.Indirect(reflect.ValueOf(req)).Type() + s := t.Name() + s = strings.TrimSuffix(s, "Request") + return s +} + +type logLinkRequestOldNodeNotFound struct { + Request *fuse.Header + In *fuse.LinkRequest +} + +func (m *logLinkRequestOldNodeNotFound) String() string { + return fmt.Sprintf("In LinkRequest (request %v), node %d not found", m.Request.Hdr().ID, m.In.OldNode) +} + +type renameNewDirNodeNotFound struct { + Request *fuse.Header + In *fuse.RenameRequest +} + +func (m *renameNewDirNodeNotFound) String() string { + return fmt.Sprintf("In RenameRequest (request %v), node %d not found", m.Request.Hdr().ID, m.In.NewDir) +} + +type handlerPanickedError struct { + Request interface{} + Err interface{} +} + +var _ error = handlerPanickedError{} + +func (h handlerPanickedError) Error() string { + return fmt.Sprintf("handler panicked: %v", h.Err) +} + +var _ fuse.ErrorNumber = handlerPanickedError{} + +func (h handlerPanickedError) Errno() fuse.Errno { + if err, ok := h.Err.(fuse.ErrorNumber); ok { + return err.Errno() + } + return fuse.DefaultErrno +} + +// handlerTerminatedError happens when a handler terminates itself +// with runtime.Goexit. This is most commonly because of incorrect use +// of testing.TB.FailNow, typically via t.Fatal. +type handlerTerminatedError struct { + Request interface{} +} + +var _ error = handlerTerminatedError{} + +func (h handlerTerminatedError) Error() string { + return fmt.Sprintf("handler terminated (called runtime.Goexit)") +} + +var _ fuse.ErrorNumber = handlerTerminatedError{} + +func (h handlerTerminatedError) Errno() fuse.Errno { + return fuse.DefaultErrno +} + +type handleNotReaderError struct { + handle Handle +} + +var _ error = handleNotReaderError{} + +func (e handleNotReaderError) Error() string { + return fmt.Sprintf("handle has no Read: %T", e.handle) +} + +var _ fuse.ErrorNumber = handleNotReaderError{} + +func (e handleNotReaderError) Errno() fuse.Errno { + return fuse.ENOTSUP +} + +func initLookupResponse(s *fuse.LookupResponse) { + s.EntryValid = entryValidTime +} + +func (c *Server) serve(r fuse.Request) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + parentCtx := ctx + if c.context != nil { + ctx = c.context(ctx, r) + } + + req := &serveRequest{Request: r, cancel: cancel} + + c.debug(request{ + Op: opName(r), + Request: r.Hdr(), + In: r, + }) + var node Node + var snode *serveNode + c.meta.Lock() + hdr := r.Hdr() + if id := hdr.Node; id != 0 { + if id < fuse.NodeID(len(c.node)) { + snode = c.node[uint(id)] + } + if snode == nil { + c.meta.Unlock() + c.debug(response{ + Op: opName(r), + Request: logResponseHeader{ID: hdr.ID}, + Error: fuse.ESTALE.ErrnoName(), + // this is the only place that sets both Error and + // Out; not sure if i want to do that; might get rid + // of len(c.node) things altogether + Out: logMissingNode{ + MaxNode: fuse.NodeID(len(c.node)), + }, + }) + r.RespondError(fuse.ESTALE) + return + } + node = snode.node + } + if c.req[hdr.ID] != nil { + // This happens with OSXFUSE. Assume it's okay and + // that we'll never see an interrupt for this one. + // Otherwise everything wedges. TODO: Report to OSXFUSE? + // + // TODO this might have been because of missing done() calls + } else { + c.req[hdr.ID] = req + } + c.meta.Unlock() + + // Call this before responding. + // After responding is too late: we might get another request + // with the same ID and be very confused. + done := func(resp interface{}) { + msg := response{ + Op: opName(r), + Request: logResponseHeader{ID: hdr.ID}, + } + if err, ok := resp.(error); ok { + msg.Error = err.Error() + if ferr, ok := err.(fuse.ErrorNumber); ok { + errno := ferr.Errno() + msg.Errno = errno.ErrnoName() + if errno == err { + // it's just a fuse.Errno with no extra detail; + // skip the textual message for log readability + msg.Error = "" + } + } else { + msg.Errno = fuse.DefaultErrno.ErrnoName() + } + } else { + msg.Out = resp + } + c.debug(msg) + + c.meta.Lock() + delete(c.req, hdr.ID) + c.meta.Unlock() + } + + var responded bool + defer func() { + if rec := recover(); rec != nil { + const size = 1 << 16 + buf := make([]byte, size) + n := runtime.Stack(buf, false) + buf = buf[:n] + log.Printf("fuse: panic in handler for %v: %v\n%s", r, rec, buf) + err := handlerPanickedError{ + Request: r, + Err: rec, + } + done(err) + r.RespondError(err) + return + } + + if !responded { + err := handlerTerminatedError{ + Request: r, + } + done(err) + r.RespondError(err) + } + }() + + if err := c.handleRequest(ctx, node, snode, r, done); err != nil { + if err == context.Canceled { + select { + case <-parentCtx.Done(): + // We canceled the parent context because of an + // incoming interrupt request, so return EINTR + // to trigger the right behavior in the client app. + // + // Only do this when it's the parent context that was + // canceled, not a context controlled by the program + // using this library, so we don't return EINTR too + // eagerly -- it might cause busy loops. + // + // Decent write-up on role of EINTR: + // http://250bpm.com/blog:12 + err = fuse.EINTR + default: + // nothing + } + } + done(err) + r.RespondError(err) + } + + // disarm runtime.Goexit protection + responded = true +} + +// handleRequest will either a) call done(s) and r.Respond(s) OR b) return an error. +func (c *Server) handleRequest(ctx context.Context, node Node, snode *serveNode, r fuse.Request, done func(resp interface{})) error { + switch r := r.(type) { + default: + // Note: To FUSE, ENOSYS means "this server never implements this request." + // It would be inappropriate to return ENOSYS for other operations in this + // switch that might only be unavailable in some contexts, not all. + return fuse.ENOSYS + + case *fuse.StatfsRequest: + s := &fuse.StatfsResponse{} + if fs, ok := c.fs.(FSStatfser); ok { + if err := fs.Statfs(ctx, r, s); err != nil { + return err + } + } + done(s) + r.Respond(s) + return nil + + // Node operations. + case *fuse.GetattrRequest: + s := &fuse.GetattrResponse{} + if n, ok := node.(NodeGetattrer); ok { + if err := n.Getattr(ctx, r, s); err != nil { + return err + } + } else { + if err := snode.attr(ctx, &s.Attr); err != nil { + return err + } + } + done(s) + r.Respond(s) + return nil + + case *fuse.SetattrRequest: + s := &fuse.SetattrResponse{} + if n, ok := node.(NodeSetattrer); ok { + if err := n.Setattr(ctx, r, s); err != nil { + return err + } + } + + if err := snode.attr(ctx, &s.Attr); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + + case *fuse.SymlinkRequest: + s := &fuse.SymlinkResponse{} + initLookupResponse(&s.LookupResponse) + n, ok := node.(NodeSymlinker) + if !ok { + return fuse.EIO // XXX or EPERM like Mkdir? + } + n2, err := n.Symlink(ctx, r) + if err != nil { + return err + } + if err := c.saveLookup(ctx, &s.LookupResponse, snode, r.NewName, n2); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + + case *fuse.ReadlinkRequest: + n, ok := node.(NodeReadlinker) + if !ok { + return fuse.EIO /// XXX or EPERM? + } + target, err := n.Readlink(ctx, r) + if err != nil { + return err + } + done(target) + r.Respond(target) + return nil + + case *fuse.LinkRequest: + n, ok := node.(NodeLinker) + if !ok { + return fuse.EIO /// XXX or EPERM? + } + c.meta.Lock() + var oldNode *serveNode + if int(r.OldNode) < len(c.node) { + oldNode = c.node[r.OldNode] + } + c.meta.Unlock() + if oldNode == nil { + c.debug(logLinkRequestOldNodeNotFound{ + Request: r.Hdr(), + In: r, + }) + return fuse.EIO + } + n2, err := n.Link(ctx, r, oldNode.node) + if err != nil { + return err + } + s := &fuse.LookupResponse{} + initLookupResponse(s) + if err := c.saveLookup(ctx, s, snode, r.NewName, n2); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + + case *fuse.RemoveRequest: + n, ok := node.(NodeRemover) + if !ok { + return fuse.EIO /// XXX or EPERM? + } + err := n.Remove(ctx, r) + if err != nil { + return err + } + done(nil) + r.Respond() + return nil + + case *fuse.AccessRequest: + if n, ok := node.(NodeAccesser); ok { + if err := n.Access(ctx, r); err != nil { + return err + } + } + done(nil) + r.Respond() + return nil + + case *fuse.LookupRequest: + var n2 Node + var err error + s := &fuse.LookupResponse{} + initLookupResponse(s) + if n, ok := node.(NodeStringLookuper); ok { + n2, err = n.Lookup(ctx, r.Name) + } else if n, ok := node.(NodeRequestLookuper); ok { + n2, err = n.Lookup(ctx, r, s) + } else { + return fuse.ENOENT + } + if err != nil { + return err + } + if err := c.saveLookup(ctx, s, snode, r.Name, n2); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + + case *fuse.MkdirRequest: + s := &fuse.MkdirResponse{} + initLookupResponse(&s.LookupResponse) + n, ok := node.(NodeMkdirer) + if !ok { + return fuse.EPERM + } + n2, err := n.Mkdir(ctx, r) + if err != nil { + return err + } + if err := c.saveLookup(ctx, &s.LookupResponse, snode, r.Name, n2); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + + case *fuse.OpenRequest: + s := &fuse.OpenResponse{} + var h2 Handle + if n, ok := node.(NodeOpener); ok { + hh, err := n.Open(ctx, r, s) + if err != nil { + return err + } + h2 = hh + } else { + h2 = node + } + s.Handle = c.saveHandle(h2, r.Hdr().Node) + done(s) + r.Respond(s) + return nil + + case *fuse.CreateRequest: + n, ok := node.(NodeCreater) + if !ok { + // If we send back ENOSYS, FUSE will try mknod+open. + return fuse.EPERM + } + s := &fuse.CreateResponse{OpenResponse: fuse.OpenResponse{}} + initLookupResponse(&s.LookupResponse) + n2, h2, err := n.Create(ctx, r, s) + if err != nil { + return err + } + if err := c.saveLookup(ctx, &s.LookupResponse, snode, r.Name, n2); err != nil { + return err + } + s.Handle = c.saveHandle(h2, r.Hdr().Node) + done(s) + r.Respond(s) + return nil + + case *fuse.GetxattrRequest: + n, ok := node.(NodeGetxattrer) + if !ok { + return fuse.ENOTSUP + } + s := &fuse.GetxattrResponse{} + err := n.Getxattr(ctx, r, s) + if err != nil { + return err + } + if r.Size != 0 && uint64(len(s.Xattr)) > uint64(r.Size) { + return fuse.ERANGE + } + done(s) + r.Respond(s) + return nil + + case *fuse.ListxattrRequest: + n, ok := node.(NodeListxattrer) + if !ok { + return fuse.ENOTSUP + } + s := &fuse.ListxattrResponse{} + err := n.Listxattr(ctx, r, s) + if err != nil { + return err + } + if r.Size != 0 && uint64(len(s.Xattr)) > uint64(r.Size) { + return fuse.ERANGE + } + done(s) + r.Respond(s) + return nil + + case *fuse.SetxattrRequest: + n, ok := node.(NodeSetxattrer) + if !ok { + return fuse.ENOTSUP + } + err := n.Setxattr(ctx, r) + if err != nil { + return err + } + done(nil) + r.Respond() + return nil + + case *fuse.RemovexattrRequest: + n, ok := node.(NodeRemovexattrer) + if !ok { + return fuse.ENOTSUP + } + err := n.Removexattr(ctx, r) + if err != nil { + return err + } + done(nil) + r.Respond() + return nil + + case *fuse.ForgetRequest: + forget := c.dropNode(r.Hdr().Node, r.N) + if forget { + n, ok := node.(NodeForgetter) + if ok { + n.Forget() + } + } + done(nil) + r.Respond() + return nil + + // Handle operations. + case *fuse.ReadRequest: + shandle := c.getHandle(r.Handle) + if shandle == nil { + return fuse.ESTALE + } + handle := shandle.handle + + s := &fuse.ReadResponse{Data: make([]byte, 0, r.Size)} + if r.Dir { + if h, ok := handle.(HandleReadDirAller); ok { + // detect rewinddir(3) or similar seek and refresh + // contents + if r.Offset == 0 { + shandle.readData = nil + } + + if shandle.readData == nil { + dirs, err := h.ReadDirAll(ctx) + if err != nil { + return err + } + var data []byte + for _, dir := range dirs { + if dir.Inode == 0 { + dir.Inode = c.dynamicInode(snode.inode, dir.Name) + } + data = fuse.AppendDirent(data, dir) + } + shandle.readData = data + } + fuseutil.HandleRead(r, s, shandle.readData) + done(s) + r.Respond(s) + return nil + } + } else { + if h, ok := handle.(HandleReadAller); ok { + if shandle.readData == nil { + data, err := h.ReadAll(ctx) + if err != nil { + return err + } + if data == nil { + data = []byte{} + } + shandle.readData = data + } + fuseutil.HandleRead(r, s, shandle.readData) + done(s) + r.Respond(s) + return nil + } + h, ok := handle.(HandleReader) + if !ok { + err := handleNotReaderError{handle: handle} + return err + } + if err := h.Read(ctx, r, s); err != nil { + return err + } + } + done(s) + r.Respond(s) + return nil + + case *fuse.WriteRequest: + shandle := c.getHandle(r.Handle) + if shandle == nil { + return fuse.ESTALE + } + + s := &fuse.WriteResponse{} + if h, ok := shandle.handle.(HandleWriter); ok { + if err := h.Write(ctx, r, s); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + } + return fuse.EIO + + case *fuse.FlushRequest: + shandle := c.getHandle(r.Handle) + if shandle == nil { + return fuse.ESTALE + } + handle := shandle.handle + + if h, ok := handle.(HandleFlusher); ok { + if err := h.Flush(ctx, r); err != nil { + return err + } + } + done(nil) + r.Respond() + return nil + + case *fuse.ReleaseRequest: + shandle := c.getHandle(r.Handle) + if shandle == nil { + return fuse.ESTALE + } + handle := shandle.handle + + // No matter what, release the handle. + c.dropHandle(r.Handle) + + if h, ok := handle.(HandleReleaser); ok { + if err := h.Release(ctx, r); err != nil { + return err + } + } + done(nil) + r.Respond() + return nil + + case *fuse.DestroyRequest: + if fs, ok := c.fs.(FSDestroyer); ok { + fs.Destroy() + } + done(nil) + r.Respond() + return nil + + case *fuse.RenameRequest: + c.meta.Lock() + var newDirNode *serveNode + if int(r.NewDir) < len(c.node) { + newDirNode = c.node[r.NewDir] + } + c.meta.Unlock() + if newDirNode == nil { + c.debug(renameNewDirNodeNotFound{ + Request: r.Hdr(), + In: r, + }) + return fuse.EIO + } + n, ok := node.(NodeRenamer) + if !ok { + return fuse.EIO // XXX or EPERM like Mkdir? + } + err := n.Rename(ctx, r, newDirNode.node) + if err != nil { + return err + } + done(nil) + r.Respond() + return nil + + case *fuse.MknodRequest: + n, ok := node.(NodeMknoder) + if !ok { + return fuse.EIO + } + n2, err := n.Mknod(ctx, r) + if err != nil { + return err + } + s := &fuse.LookupResponse{} + initLookupResponse(s) + if err := c.saveLookup(ctx, s, snode, r.Name, n2); err != nil { + return err + } + done(s) + r.Respond(s) + return nil + + case *fuse.FsyncRequest: + n, ok := node.(NodeFsyncer) + if !ok { + return fuse.EIO + } + err := n.Fsync(ctx, r) + if err != nil { + return err + } + done(nil) + r.Respond() + return nil + + case *fuse.InterruptRequest: + c.meta.Lock() + ireq := c.req[r.IntrID] + if ireq != nil && ireq.cancel != nil { + ireq.cancel() + ireq.cancel = nil + } + c.meta.Unlock() + done(nil) + r.Respond() + return nil + + /* case *FsyncdirRequest: + return ENOSYS + + case *GetlkRequest, *SetlkRequest, *SetlkwRequest: + return ENOSYS + + case *BmapRequest: + return ENOSYS + + case *SetvolnameRequest, *GetxtimesRequest, *ExchangeRequest: + return ENOSYS + */ + } + + panic("not reached") +} + +func (c *Server) saveLookup(ctx context.Context, s *fuse.LookupResponse, snode *serveNode, elem string, n2 Node) error { + if err := nodeAttr(ctx, n2, &s.Attr); err != nil { + return err + } + if s.Attr.Inode == 0 { + s.Attr.Inode = c.dynamicInode(snode.inode, elem) + } + + s.Node, s.Generation = c.saveNode(s.Attr.Inode, n2) + return nil +} + +type invalidateNodeDetail struct { + Off int64 + Size int64 +} + +func (i invalidateNodeDetail) String() string { + return fmt.Sprintf("Off:%d Size:%d", i.Off, i.Size) +} + +func errstr(err error) string { + if err == nil { + return "" + } + return err.Error() +} + +func (s *Server) invalidateNode(node Node, off int64, size int64) error { + s.meta.Lock() + id, ok := s.nodeRef[node] + if ok { + snode := s.node[id] + snode.wg.Add(1) + defer snode.wg.Done() + } + s.meta.Unlock() + if !ok { + // This is what the kernel would have said, if we had been + // able to send this message; it's not cached. + return fuse.ErrNotCached + } + // Delay logging until after we can record the error too. We + // consider a /dev/fuse write to be instantaneous enough to not + // need separate before and after messages. + err := s.conn.InvalidateNode(id, off, size) + s.debug(notification{ + Op: "InvalidateNode", + Node: id, + Out: invalidateNodeDetail{ + Off: off, + Size: size, + }, + Err: errstr(err), + }) + return err +} + +// InvalidateNodeAttr invalidates the kernel cache of the attributes +// of node. +// +// Returns fuse.ErrNotCached if the kernel is not currently caching +// the node. +func (s *Server) InvalidateNodeAttr(node Node) error { + return s.invalidateNode(node, 0, 0) +} + +// InvalidateNodeData invalidates the kernel cache of the attributes +// and data of node. +// +// Returns fuse.ErrNotCached if the kernel is not currently caching +// the node. +func (s *Server) InvalidateNodeData(node Node) error { + return s.invalidateNode(node, 0, -1) +} + +// InvalidateNodeDataRange invalidates the kernel cache of the +// attributes and a range of the data of node. +// +// Returns fuse.ErrNotCached if the kernel is not currently caching +// the node. +func (s *Server) InvalidateNodeDataRange(node Node, off int64, size int64) error { + return s.invalidateNode(node, off, size) +} + +type invalidateEntryDetail struct { + Name string +} + +func (i invalidateEntryDetail) String() string { + return fmt.Sprintf("%q", i.Name) +} + +// InvalidateEntry invalidates the kernel cache of the directory entry +// identified by parent node and entry basename. +// +// Kernel may or may not cache directory listings. To invalidate +// those, use InvalidateNode to invalidate all of the data for a +// directory. (As of 2015-06, Linux FUSE does not cache directory +// listings.) +// +// Returns ErrNotCached if the kernel is not currently caching the +// node. +func (s *Server) InvalidateEntry(parent Node, name string) error { + s.meta.Lock() + id, ok := s.nodeRef[parent] + if ok { + snode := s.node[id] + snode.wg.Add(1) + defer snode.wg.Done() + } + s.meta.Unlock() + if !ok { + // This is what the kernel would have said, if we had been + // able to send this message; it's not cached. + return fuse.ErrNotCached + } + err := s.conn.InvalidateEntry(id, name) + s.debug(notification{ + Op: "InvalidateEntry", + Node: id, + Out: invalidateEntryDetail{ + Name: name, + }, + Err: errstr(err), + }) + return err +} + +// DataHandle returns a read-only Handle that satisfies reads +// using the given data. +func DataHandle(data []byte) Handle { + return &dataHandle{data} +} + +type dataHandle struct { + data []byte +} + +func (d *dataHandle) ReadAll(ctx context.Context) ([]byte, error) { + return d.data, nil +} + +// GenerateDynamicInode returns a dynamic inode. +// +// The parent inode and current entry name are used as the criteria +// for choosing a pseudorandom inode. This makes it likely the same +// entry will get the same inode on multiple runs. +func GenerateDynamicInode(parent uint64, name string) uint64 { + h := fnv.New64a() + var buf [8]byte + binary.LittleEndian.PutUint64(buf[:], parent) + _, _ = h.Write(buf[:]) + _, _ = h.Write([]byte(name)) + var inode uint64 + for { + inode = h.Sum64() + if inode != 0 { + break + } + // there's a tiny probability that result is zero; change the + // input a little and try again + _, _ = h.Write([]byte{'x'}) + } + return inode +} diff --git a/vendor/bazil.org/fuse/fs/tree.go b/vendor/bazil.org/fuse/fs/tree.go new file mode 100644 index 00000000..7e078045 --- /dev/null +++ b/vendor/bazil.org/fuse/fs/tree.go @@ -0,0 +1,99 @@ +// FUSE directory tree, for servers that wish to use it with the service loop. + +package fs + +import ( + "os" + pathpkg "path" + "strings" + + "golang.org/x/net/context" +) + +import ( + "bazil.org/fuse" +) + +// A Tree implements a basic read-only directory tree for FUSE. +// The Nodes contained in it may still be writable. +type Tree struct { + tree +} + +func (t *Tree) Root() (Node, error) { + return &t.tree, nil +} + +// Add adds the path to the tree, resolving to the given node. +// If path or a prefix of path has already been added to the tree, +// Add panics. +// +// Add is only safe to call before starting to serve requests. +func (t *Tree) Add(path string, node Node) { + path = pathpkg.Clean("/" + path)[1:] + elems := strings.Split(path, "/") + dir := Node(&t.tree) + for i, elem := range elems { + dt, ok := dir.(*tree) + if !ok { + panic("fuse: Tree.Add for " + strings.Join(elems[:i], "/") + " and " + path) + } + n := dt.lookup(elem) + if n != nil { + if i+1 == len(elems) { + panic("fuse: Tree.Add for " + path + " conflicts with " + elem) + } + dir = n + } else { + if i+1 == len(elems) { + dt.add(elem, node) + } else { + dir = &tree{} + dt.add(elem, dir) + } + } + } +} + +type treeDir struct { + name string + node Node +} + +type tree struct { + dir []treeDir +} + +func (t *tree) lookup(name string) Node { + for _, d := range t.dir { + if d.name == name { + return d.node + } + } + return nil +} + +func (t *tree) add(name string, n Node) { + t.dir = append(t.dir, treeDir{name, n}) +} + +func (t *tree) Attr(ctx context.Context, a *fuse.Attr) error { + a.Mode = os.ModeDir | 0555 + return nil +} + +func (t *tree) Lookup(ctx context.Context, name string) (Node, error) { + n := t.lookup(name) + if n != nil { + return n, nil + } + return nil, fuse.ENOENT +} + +func (t *tree) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) { + var out []fuse.Dirent + for _, d := range t.dir { + out = append(out, fuse.Dirent{Name: d.name}) + } + return out, nil +} diff --git a/vendor/bazil.org/fuse/fuse.go b/vendor/bazil.org/fuse/fuse.go new file mode 100644 index 00000000..7dc70f9e --- /dev/null +++ b/vendor/bazil.org/fuse/fuse.go @@ -0,0 +1,2304 @@ +// See the file LICENSE for copyright and licensing information. + +// Adapted from Plan 9 from User Space's src/cmd/9pfuse/fuse.c, +// which carries this notice: +// +// The files in this directory are subject to the following license. +// +// The author of this software is Russ Cox. +// +// Copyright (c) 2006 Russ Cox +// +// Permission to use, copy, modify, and distribute this software for any +// purpose without fee is hereby granted, provided that this entire notice +// is included in all copies of any software which is or includes a copy +// or modification of this software and in all copies of the supporting +// documentation for such software. +// +// THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +// WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION OR WARRANTY +// OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS +// FITNESS FOR ANY PARTICULAR PURPOSE. + +// Package fuse enables writing FUSE file systems on Linux, OS X, and FreeBSD. +// +// On OS X, it requires OSXFUSE (http://osxfuse.github.com/). +// +// There are two approaches to writing a FUSE file system. The first is to speak +// the low-level message protocol, reading from a Conn using ReadRequest and +// writing using the various Respond methods. This approach is closest to +// the actual interaction with the kernel and can be the simplest one in contexts +// such as protocol translators. +// +// Servers of synthesized file systems tend to share common +// bookkeeping abstracted away by the second approach, which is to +// call fs.Serve to serve the FUSE protocol using an implementation of +// the service methods in the interfaces FS* (file system), Node* (file +// or directory), and Handle* (opened file or directory). +// There are a daunting number of such methods that can be written, +// but few are required. +// The specific methods are described in the documentation for those interfaces. +// +// The hellofs subdirectory contains a simple illustration of the fs.Serve approach. +// +// Service Methods +// +// The required and optional methods for the FS, Node, and Handle interfaces +// have the general form +// +// Op(ctx context.Context, req *OpRequest, resp *OpResponse) error +// +// where Op is the name of a FUSE operation. Op reads request +// parameters from req and writes results to resp. An operation whose +// only result is the error result omits the resp parameter. +// +// Multiple goroutines may call service methods simultaneously; the +// methods being called are responsible for appropriate +// synchronization. +// +// The operation must not hold on to the request or response, +// including any []byte fields such as WriteRequest.Data or +// SetxattrRequest.Xattr. +// +// Errors +// +// Operations can return errors. The FUSE interface can only +// communicate POSIX errno error numbers to file system clients, the +// message is not visible to file system clients. The returned error +// can implement ErrorNumber to control the errno returned. Without +// ErrorNumber, a generic errno (EIO) is returned. +// +// Error messages will be visible in the debug log as part of the +// response. +// +// Interrupted Operations +// +// In some file systems, some operations +// may take an undetermined amount of time. For example, a Read waiting for +// a network message or a matching Write might wait indefinitely. If the request +// is cancelled and no longer needed, the context will be cancelled. +// Blocking operations should select on a receive from ctx.Done() and attempt to +// abort the operation early if the receive succeeds (meaning the channel is closed). +// To indicate that the operation failed because it was aborted, return fuse.EINTR. +// +// If an operation does not block for an indefinite amount of time, supporting +// cancellation is not necessary. +// +// Authentication +// +// All requests types embed a Header, meaning that the method can +// inspect req.Pid, req.Uid, and req.Gid as necessary to implement +// permission checking. The kernel FUSE layer normally prevents other +// users from accessing the FUSE file system (to change this, see +// AllowOther, AllowRoot), but does not enforce access modes (to +// change this, see DefaultPermissions). +// +// Mount Options +// +// Behavior and metadata of the mounted file system can be changed by +// passing MountOption values to Mount. +// +package fuse // import "bazil.org/fuse" + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" + "os" + "sync" + "syscall" + "time" + "unsafe" +) + +// A Conn represents a connection to a mounted FUSE file system. +type Conn struct { + // Ready is closed when the mount is complete or has failed. + Ready <-chan struct{} + + // MountError stores any error from the mount process. Only valid + // after Ready is closed. + MountError error + + // File handle for kernel communication. Only safe to access if + // rio or wio is held. + dev *os.File + wio sync.RWMutex + rio sync.RWMutex + + // Protocol version negotiated with InitRequest/InitResponse. + proto Protocol +} + +// MountpointDoesNotExistError is an error returned when the +// mountpoint does not exist. +type MountpointDoesNotExistError struct { + Path string +} + +var _ error = (*MountpointDoesNotExistError)(nil) + +func (e *MountpointDoesNotExistError) Error() string { + return fmt.Sprintf("mountpoint does not exist: %v", e.Path) +} + +// Mount mounts a new FUSE connection on the named directory +// and returns a connection for reading and writing FUSE messages. +// +// After a successful return, caller must call Close to free +// resources. +// +// Even on successful return, the new mount is not guaranteed to be +// visible until after Conn.Ready is closed. See Conn.MountError for +// possible errors. Incoming requests on Conn must be served to make +// progress. +func Mount(dir string, options ...MountOption) (*Conn, error) { + conf := mountConfig{ + options: make(map[string]string), + } + for _, option := range options { + if err := option(&conf); err != nil { + return nil, err + } + } + + ready := make(chan struct{}, 1) + c := &Conn{ + Ready: ready, + } + f, err := mount(dir, &conf, ready, &c.MountError) + if err != nil { + return nil, err + } + c.dev = f + + if err := initMount(c, &conf); err != nil { + c.Close() + if err == ErrClosedWithoutInit { + // see if we can provide a better error + <-c.Ready + if err := c.MountError; err != nil { + return nil, err + } + } + return nil, err + } + + return c, nil +} + +type OldVersionError struct { + Kernel Protocol + LibraryMin Protocol +} + +func (e *OldVersionError) Error() string { + return fmt.Sprintf("kernel FUSE version is too old: %v < %v", e.Kernel, e.LibraryMin) +} + +var ( + ErrClosedWithoutInit = errors.New("fuse connection closed without init") +) + +func initMount(c *Conn, conf *mountConfig) error { + req, err := c.ReadRequest() + if err != nil { + if err == io.EOF { + return ErrClosedWithoutInit + } + return err + } + r, ok := req.(*InitRequest) + if !ok { + return fmt.Errorf("missing init, got: %T", req) + } + + min := Protocol{protoVersionMinMajor, protoVersionMinMinor} + if r.Kernel.LT(min) { + req.RespondError(Errno(syscall.EPROTO)) + c.Close() + return &OldVersionError{ + Kernel: r.Kernel, + LibraryMin: min, + } + } + + proto := Protocol{protoVersionMaxMajor, protoVersionMaxMinor} + if r.Kernel.LT(proto) { + // Kernel doesn't support the latest version we have. + proto = r.Kernel + } + c.proto = proto + + s := &InitResponse{ + Library: proto, + MaxReadahead: conf.maxReadahead, + MaxWrite: maxWrite, + Flags: InitBigWrites | conf.initFlags, + } + r.Respond(s) + return nil +} + +// A Request represents a single FUSE request received from the kernel. +// Use a type switch to determine the specific kind. +// A request of unrecognized type will have concrete type *Header. +type Request interface { + // Hdr returns the Header associated with this request. + Hdr() *Header + + // RespondError responds to the request with the given error. + RespondError(error) + + String() string +} + +// A RequestID identifies an active FUSE request. +type RequestID uint64 + +func (r RequestID) String() string { + return fmt.Sprintf("%#x", uint64(r)) +} + +// A NodeID is a number identifying a directory or file. +// It must be unique among IDs returned in LookupResponses +// that have not yet been forgotten by ForgetRequests. +type NodeID uint64 + +func (n NodeID) String() string { + return fmt.Sprintf("%#x", uint64(n)) +} + +// A HandleID is a number identifying an open directory or file. +// It only needs to be unique while the directory or file is open. +type HandleID uint64 + +func (h HandleID) String() string { + return fmt.Sprintf("%#x", uint64(h)) +} + +// The RootID identifies the root directory of a FUSE file system. +const RootID NodeID = rootID + +// A Header describes the basic information sent in every request. +type Header struct { + Conn *Conn `json:"-"` // connection this request was received on + ID RequestID // unique ID for request + Node NodeID // file or directory the request is about + Uid uint32 // user ID of process making request + Gid uint32 // group ID of process making request + Pid uint32 // process ID of process making request + + // for returning to reqPool + msg *message +} + +func (h *Header) String() string { + return fmt.Sprintf("ID=%v Node=%v Uid=%d Gid=%d Pid=%d", h.ID, h.Node, h.Uid, h.Gid, h.Pid) +} + +func (h *Header) Hdr() *Header { + return h +} + +func (h *Header) noResponse() { + putMessage(h.msg) +} + +func (h *Header) respond(msg []byte) { + out := (*outHeader)(unsafe.Pointer(&msg[0])) + out.Unique = uint64(h.ID) + h.Conn.respond(msg) + putMessage(h.msg) +} + +// An ErrorNumber is an error with a specific error number. +// +// Operations may return an error value that implements ErrorNumber to +// control what specific error number (errno) to return. +type ErrorNumber interface { + // Errno returns the the error number (errno) for this error. + Errno() Errno +} + +const ( + // ENOSYS indicates that the call is not supported. + ENOSYS = Errno(syscall.ENOSYS) + + // ESTALE is used by Serve to respond to violations of the FUSE protocol. + ESTALE = Errno(syscall.ESTALE) + + ENOENT = Errno(syscall.ENOENT) + EIO = Errno(syscall.EIO) + EPERM = Errno(syscall.EPERM) + + // EINTR indicates request was interrupted by an InterruptRequest. + // See also fs.Intr. + EINTR = Errno(syscall.EINTR) + + ERANGE = Errno(syscall.ERANGE) + ENOTSUP = Errno(syscall.ENOTSUP) + EEXIST = Errno(syscall.EEXIST) +) + +// DefaultErrno is the errno used when error returned does not +// implement ErrorNumber. +const DefaultErrno = EIO + +var errnoNames = map[Errno]string{ + ENOSYS: "ENOSYS", + ESTALE: "ESTALE", + ENOENT: "ENOENT", + EIO: "EIO", + EPERM: "EPERM", + EINTR: "EINTR", + EEXIST: "EEXIST", +} + +// Errno implements Error and ErrorNumber using a syscall.Errno. +type Errno syscall.Errno + +var _ = ErrorNumber(Errno(0)) +var _ = error(Errno(0)) + +func (e Errno) Errno() Errno { + return e +} + +func (e Errno) String() string { + return syscall.Errno(e).Error() +} + +func (e Errno) Error() string { + return syscall.Errno(e).Error() +} + +// ErrnoName returns the short non-numeric identifier for this errno. +// For example, "EIO". +func (e Errno) ErrnoName() string { + s := errnoNames[e] + if s == "" { + s = fmt.Sprint(e.Errno()) + } + return s +} + +func (e Errno) MarshalText() ([]byte, error) { + s := e.ErrnoName() + return []byte(s), nil +} + +func (h *Header) RespondError(err error) { + errno := DefaultErrno + if ferr, ok := err.(ErrorNumber); ok { + errno = ferr.Errno() + } + // FUSE uses negative errors! + // TODO: File bug report against OSXFUSE: positive error causes kernel panic. + buf := newBuffer(0) + hOut := (*outHeader)(unsafe.Pointer(&buf[0])) + hOut.Error = -int32(errno) + h.respond(buf) +} + +// All requests read from the kernel, without data, are shorter than +// this. +var maxRequestSize = syscall.Getpagesize() +var bufSize = maxRequestSize + maxWrite + +// reqPool is a pool of messages. +// +// Lifetime of a logical message is from getMessage to putMessage. +// getMessage is called by ReadRequest. putMessage is called by +// Conn.ReadRequest, Request.Respond, or Request.RespondError. +// +// Messages in the pool are guaranteed to have conn and off zeroed, +// buf allocated and len==bufSize, and hdr set. +var reqPool = sync.Pool{ + New: allocMessage, +} + +func allocMessage() interface{} { + m := &message{buf: make([]byte, bufSize)} + m.hdr = (*inHeader)(unsafe.Pointer(&m.buf[0])) + return m +} + +func getMessage(c *Conn) *message { + m := reqPool.Get().(*message) + m.conn = c + return m +} + +func putMessage(m *message) { + m.buf = m.buf[:bufSize] + m.conn = nil + m.off = 0 + reqPool.Put(m) +} + +// a message represents the bytes of a single FUSE message +type message struct { + conn *Conn + buf []byte // all bytes + hdr *inHeader // header + off int // offset for reading additional fields +} + +func (m *message) len() uintptr { + return uintptr(len(m.buf) - m.off) +} + +func (m *message) data() unsafe.Pointer { + var p unsafe.Pointer + if m.off < len(m.buf) { + p = unsafe.Pointer(&m.buf[m.off]) + } + return p +} + +func (m *message) bytes() []byte { + return m.buf[m.off:] +} + +func (m *message) Header() Header { + h := m.hdr + return Header{ + Conn: m.conn, + ID: RequestID(h.Unique), + Node: NodeID(h.Nodeid), + Uid: h.Uid, + Gid: h.Gid, + Pid: h.Pid, + + msg: m, + } +} + +// fileMode returns a Go os.FileMode from a Unix mode. +func fileMode(unixMode uint32) os.FileMode { + mode := os.FileMode(unixMode & 0777) + switch unixMode & syscall.S_IFMT { + case syscall.S_IFREG: + // nothing + case syscall.S_IFDIR: + mode |= os.ModeDir + case syscall.S_IFCHR: + mode |= os.ModeCharDevice | os.ModeDevice + case syscall.S_IFBLK: + mode |= os.ModeDevice + case syscall.S_IFIFO: + mode |= os.ModeNamedPipe + case syscall.S_IFLNK: + mode |= os.ModeSymlink + case syscall.S_IFSOCK: + mode |= os.ModeSocket + default: + // no idea + mode |= os.ModeDevice + } + if unixMode&syscall.S_ISUID != 0 { + mode |= os.ModeSetuid + } + if unixMode&syscall.S_ISGID != 0 { + mode |= os.ModeSetgid + } + return mode +} + +type noOpcode struct { + Opcode uint32 +} + +func (m noOpcode) String() string { + return fmt.Sprintf("No opcode %v", m.Opcode) +} + +type malformedMessage struct { +} + +func (malformedMessage) String() string { + return "malformed message" +} + +// Close closes the FUSE connection. +func (c *Conn) Close() error { + c.wio.Lock() + defer c.wio.Unlock() + c.rio.Lock() + defer c.rio.Unlock() + return c.dev.Close() +} + +// caller must hold wio or rio +func (c *Conn) fd() int { + return int(c.dev.Fd()) +} + +func (c *Conn) Protocol() Protocol { + return c.proto +} + +// ReadRequest returns the next FUSE request from the kernel. +// +// Caller must call either Request.Respond or Request.RespondError in +// a reasonable time. Caller must not retain Request after that call. +func (c *Conn) ReadRequest() (Request, error) { + m := getMessage(c) +loop: + c.rio.RLock() + n, err := syscall.Read(c.fd(), m.buf) + c.rio.RUnlock() + if err == syscall.EINTR { + // OSXFUSE sends EINTR to userspace when a request interrupt + // completed before it got sent to userspace? + goto loop + } + if err != nil && err != syscall.ENODEV { + putMessage(m) + return nil, err + } + if n <= 0 { + putMessage(m) + return nil, io.EOF + } + m.buf = m.buf[:n] + + if n < inHeaderSize { + putMessage(m) + return nil, errors.New("fuse: message too short") + } + + // FreeBSD FUSE sends a short length in the header + // for FUSE_INIT even though the actual read length is correct. + if n == inHeaderSize+initInSize && m.hdr.Opcode == opInit && m.hdr.Len < uint32(n) { + m.hdr.Len = uint32(n) + } + + // OSXFUSE sometimes sends the wrong m.hdr.Len in a FUSE_WRITE message. + if m.hdr.Len < uint32(n) && m.hdr.Len >= uint32(unsafe.Sizeof(writeIn{})) && m.hdr.Opcode == opWrite { + m.hdr.Len = uint32(n) + } + + if m.hdr.Len != uint32(n) { + // prepare error message before returning m to pool + err := fmt.Errorf("fuse: read %d opcode %d but expected %d", n, m.hdr.Opcode, m.hdr.Len) + putMessage(m) + return nil, err + } + + m.off = inHeaderSize + + // Convert to data structures. + // Do not trust kernel to hand us well-formed data. + var req Request + switch m.hdr.Opcode { + default: + Debug(noOpcode{Opcode: m.hdr.Opcode}) + goto unrecognized + + case opLookup: + buf := m.bytes() + n := len(buf) + if n == 0 || buf[n-1] != '\x00' { + goto corrupt + } + req = &LookupRequest{ + Header: m.Header(), + Name: string(buf[:n-1]), + } + + case opForget: + in := (*forgetIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &ForgetRequest{ + Header: m.Header(), + N: in.Nlookup, + } + + case opGetattr: + switch { + case c.proto.LT(Protocol{7, 9}): + req = &GetattrRequest{ + Header: m.Header(), + } + + default: + in := (*getattrIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &GetattrRequest{ + Header: m.Header(), + Flags: GetattrFlags(in.GetattrFlags), + Handle: HandleID(in.Fh), + } + } + + case opSetattr: + in := (*setattrIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &SetattrRequest{ + Header: m.Header(), + Valid: SetattrValid(in.Valid), + Handle: HandleID(in.Fh), + Size: in.Size, + Atime: time.Unix(int64(in.Atime), int64(in.AtimeNsec)), + Mtime: time.Unix(int64(in.Mtime), int64(in.MtimeNsec)), + Mode: fileMode(in.Mode), + Uid: in.Uid, + Gid: in.Gid, + Bkuptime: in.BkupTime(), + Chgtime: in.Chgtime(), + Flags: in.Flags(), + } + + case opReadlink: + if len(m.bytes()) > 0 { + goto corrupt + } + req = &ReadlinkRequest{ + Header: m.Header(), + } + + case opSymlink: + // m.bytes() is "newName\0target\0" + names := m.bytes() + if len(names) == 0 || names[len(names)-1] != 0 { + goto corrupt + } + i := bytes.IndexByte(names, '\x00') + if i < 0 { + goto corrupt + } + newName, target := names[0:i], names[i+1:len(names)-1] + req = &SymlinkRequest{ + Header: m.Header(), + NewName: string(newName), + Target: string(target), + } + + case opLink: + in := (*linkIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + newName := m.bytes()[unsafe.Sizeof(*in):] + if len(newName) < 2 || newName[len(newName)-1] != 0 { + goto corrupt + } + newName = newName[:len(newName)-1] + req = &LinkRequest{ + Header: m.Header(), + OldNode: NodeID(in.Oldnodeid), + NewName: string(newName), + } + + case opMknod: + size := mknodInSize(c.proto) + if m.len() < size { + goto corrupt + } + in := (*mknodIn)(m.data()) + name := m.bytes()[size:] + if len(name) < 2 || name[len(name)-1] != '\x00' { + goto corrupt + } + name = name[:len(name)-1] + r := &MknodRequest{ + Header: m.Header(), + Mode: fileMode(in.Mode), + Rdev: in.Rdev, + Name: string(name), + } + if c.proto.GE(Protocol{7, 12}) { + r.Umask = fileMode(in.Umask) & os.ModePerm + } + req = r + + case opMkdir: + size := mkdirInSize(c.proto) + if m.len() < size { + goto corrupt + } + in := (*mkdirIn)(m.data()) + name := m.bytes()[size:] + i := bytes.IndexByte(name, '\x00') + if i < 0 { + goto corrupt + } + r := &MkdirRequest{ + Header: m.Header(), + Name: string(name[:i]), + // observed on Linux: mkdirIn.Mode & syscall.S_IFMT == 0, + // and this causes fileMode to go into it's "no idea" + // code branch; enforce type to directory + Mode: fileMode((in.Mode &^ syscall.S_IFMT) | syscall.S_IFDIR), + } + if c.proto.GE(Protocol{7, 12}) { + r.Umask = fileMode(in.Umask) & os.ModePerm + } + req = r + + case opUnlink, opRmdir: + buf := m.bytes() + n := len(buf) + if n == 0 || buf[n-1] != '\x00' { + goto corrupt + } + req = &RemoveRequest{ + Header: m.Header(), + Name: string(buf[:n-1]), + Dir: m.hdr.Opcode == opRmdir, + } + + case opRename: + in := (*renameIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + newDirNodeID := NodeID(in.Newdir) + oldNew := m.bytes()[unsafe.Sizeof(*in):] + // oldNew should be "old\x00new\x00" + if len(oldNew) < 4 { + goto corrupt + } + if oldNew[len(oldNew)-1] != '\x00' { + goto corrupt + } + i := bytes.IndexByte(oldNew, '\x00') + if i < 0 { + goto corrupt + } + oldName, newName := string(oldNew[:i]), string(oldNew[i+1:len(oldNew)-1]) + req = &RenameRequest{ + Header: m.Header(), + NewDir: newDirNodeID, + OldName: oldName, + NewName: newName, + } + + case opOpendir, opOpen: + in := (*openIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &OpenRequest{ + Header: m.Header(), + Dir: m.hdr.Opcode == opOpendir, + Flags: openFlags(in.Flags), + } + + case opRead, opReaddir: + in := (*readIn)(m.data()) + if m.len() < readInSize(c.proto) { + goto corrupt + } + r := &ReadRequest{ + Header: m.Header(), + Dir: m.hdr.Opcode == opReaddir, + Handle: HandleID(in.Fh), + Offset: int64(in.Offset), + Size: int(in.Size), + } + if c.proto.GE(Protocol{7, 9}) { + r.Flags = ReadFlags(in.ReadFlags) + r.LockOwner = in.LockOwner + r.FileFlags = openFlags(in.Flags) + } + req = r + + case opWrite: + in := (*writeIn)(m.data()) + if m.len() < writeInSize(c.proto) { + goto corrupt + } + r := &WriteRequest{ + Header: m.Header(), + Handle: HandleID(in.Fh), + Offset: int64(in.Offset), + Flags: WriteFlags(in.WriteFlags), + } + if c.proto.GE(Protocol{7, 9}) { + r.LockOwner = in.LockOwner + r.FileFlags = openFlags(in.Flags) + } + buf := m.bytes()[writeInSize(c.proto):] + if uint32(len(buf)) < in.Size { + goto corrupt + } + r.Data = buf + req = r + + case opStatfs: + req = &StatfsRequest{ + Header: m.Header(), + } + + case opRelease, opReleasedir: + in := (*releaseIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &ReleaseRequest{ + Header: m.Header(), + Dir: m.hdr.Opcode == opReleasedir, + Handle: HandleID(in.Fh), + Flags: openFlags(in.Flags), + ReleaseFlags: ReleaseFlags(in.ReleaseFlags), + LockOwner: in.LockOwner, + } + + case opFsync, opFsyncdir: + in := (*fsyncIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &FsyncRequest{ + Dir: m.hdr.Opcode == opFsyncdir, + Header: m.Header(), + Handle: HandleID(in.Fh), + Flags: in.FsyncFlags, + } + + case opSetxattr: + in := (*setxattrIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + m.off += int(unsafe.Sizeof(*in)) + name := m.bytes() + i := bytes.IndexByte(name, '\x00') + if i < 0 { + goto corrupt + } + xattr := name[i+1:] + if uint32(len(xattr)) < in.Size { + goto corrupt + } + xattr = xattr[:in.Size] + req = &SetxattrRequest{ + Header: m.Header(), + Flags: in.Flags, + Position: in.position(), + Name: string(name[:i]), + Xattr: xattr, + } + + case opGetxattr: + in := (*getxattrIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + name := m.bytes()[unsafe.Sizeof(*in):] + i := bytes.IndexByte(name, '\x00') + if i < 0 { + goto corrupt + } + req = &GetxattrRequest{ + Header: m.Header(), + Name: string(name[:i]), + Size: in.Size, + Position: in.position(), + } + + case opListxattr: + in := (*getxattrIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &ListxattrRequest{ + Header: m.Header(), + Size: in.Size, + Position: in.position(), + } + + case opRemovexattr: + buf := m.bytes() + n := len(buf) + if n == 0 || buf[n-1] != '\x00' { + goto corrupt + } + req = &RemovexattrRequest{ + Header: m.Header(), + Name: string(buf[:n-1]), + } + + case opFlush: + in := (*flushIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &FlushRequest{ + Header: m.Header(), + Handle: HandleID(in.Fh), + Flags: in.FlushFlags, + LockOwner: in.LockOwner, + } + + case opInit: + in := (*initIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &InitRequest{ + Header: m.Header(), + Kernel: Protocol{in.Major, in.Minor}, + MaxReadahead: in.MaxReadahead, + Flags: InitFlags(in.Flags), + } + + case opGetlk: + panic("opGetlk") + case opSetlk: + panic("opSetlk") + case opSetlkw: + panic("opSetlkw") + + case opAccess: + in := (*accessIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &AccessRequest{ + Header: m.Header(), + Mask: in.Mask, + } + + case opCreate: + size := createInSize(c.proto) + if m.len() < size { + goto corrupt + } + in := (*createIn)(m.data()) + name := m.bytes()[size:] + i := bytes.IndexByte(name, '\x00') + if i < 0 { + goto corrupt + } + r := &CreateRequest{ + Header: m.Header(), + Flags: openFlags(in.Flags), + Mode: fileMode(in.Mode), + Name: string(name[:i]), + } + if c.proto.GE(Protocol{7, 12}) { + r.Umask = fileMode(in.Umask) & os.ModePerm + } + req = r + + case opInterrupt: + in := (*interruptIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + req = &InterruptRequest{ + Header: m.Header(), + IntrID: RequestID(in.Unique), + } + + case opBmap: + panic("opBmap") + + case opDestroy: + req = &DestroyRequest{ + Header: m.Header(), + } + + // OS X + case opSetvolname: + panic("opSetvolname") + case opGetxtimes: + panic("opGetxtimes") + case opExchange: + in := (*exchangeIn)(m.data()) + if m.len() < unsafe.Sizeof(*in) { + goto corrupt + } + oldDirNodeID := NodeID(in.Olddir) + newDirNodeID := NodeID(in.Newdir) + oldNew := m.bytes()[unsafe.Sizeof(*in):] + // oldNew should be "oldname\x00newname\x00" + if len(oldNew) < 4 { + goto corrupt + } + if oldNew[len(oldNew)-1] != '\x00' { + goto corrupt + } + i := bytes.IndexByte(oldNew, '\x00') + if i < 0 { + goto corrupt + } + oldName, newName := string(oldNew[:i]), string(oldNew[i+1:len(oldNew)-1]) + req = &ExchangeDataRequest{ + Header: m.Header(), + OldDir: oldDirNodeID, + NewDir: newDirNodeID, + OldName: oldName, + NewName: newName, + // TODO options + } + } + + return req, nil + +corrupt: + Debug(malformedMessage{}) + putMessage(m) + return nil, fmt.Errorf("fuse: malformed message") + +unrecognized: + // Unrecognized message. + // Assume higher-level code will send a "no idea what you mean" error. + h := m.Header() + return &h, nil +} + +type bugShortKernelWrite struct { + Written int64 + Length int64 + Error string + Stack string +} + +func (b bugShortKernelWrite) String() string { + return fmt.Sprintf("short kernel write: written=%d/%d error=%q stack=\n%s", b.Written, b.Length, b.Error, b.Stack) +} + +type bugKernelWriteError struct { + Error string + Stack string +} + +func (b bugKernelWriteError) String() string { + return fmt.Sprintf("kernel write error: error=%q stack=\n%s", b.Error, b.Stack) +} + +// safe to call even with nil error +func errorString(err error) string { + if err == nil { + return "" + } + return err.Error() +} + +func (c *Conn) writeToKernel(msg []byte) error { + out := (*outHeader)(unsafe.Pointer(&msg[0])) + out.Len = uint32(len(msg)) + + c.wio.RLock() + defer c.wio.RUnlock() + nn, err := syscall.Write(c.fd(), msg) + if err == nil && nn != len(msg) { + Debug(bugShortKernelWrite{ + Written: int64(nn), + Length: int64(len(msg)), + Error: errorString(err), + Stack: stack(), + }) + } + return err +} + +func (c *Conn) respond(msg []byte) { + if err := c.writeToKernel(msg); err != nil { + Debug(bugKernelWriteError{ + Error: errorString(err), + Stack: stack(), + }) + } +} + +type notCachedError struct{} + +func (notCachedError) Error() string { + return "node not cached" +} + +var _ ErrorNumber = notCachedError{} + +func (notCachedError) Errno() Errno { + // Behave just like if the original syscall.ENOENT had been passed + // straight through. + return ENOENT +} + +var ( + ErrNotCached = notCachedError{} +) + +// sendInvalidate sends an invalidate notification to kernel. +// +// A returned ENOENT is translated to a friendlier error. +func (c *Conn) sendInvalidate(msg []byte) error { + switch err := c.writeToKernel(msg); err { + case syscall.ENOENT: + return ErrNotCached + default: + return err + } +} + +// InvalidateNode invalidates the kernel cache of the attributes and a +// range of the data of a node. +// +// Giving offset 0 and size -1 means all data. To invalidate just the +// attributes, give offset 0 and size 0. +// +// Returns ErrNotCached if the kernel is not currently caching the +// node. +func (c *Conn) InvalidateNode(nodeID NodeID, off int64, size int64) error { + buf := newBuffer(unsafe.Sizeof(notifyInvalInodeOut{})) + h := (*outHeader)(unsafe.Pointer(&buf[0])) + // h.Unique is 0 + h.Error = notifyCodeInvalInode + out := (*notifyInvalInodeOut)(buf.alloc(unsafe.Sizeof(notifyInvalInodeOut{}))) + out.Ino = uint64(nodeID) + out.Off = off + out.Len = size + return c.sendInvalidate(buf) +} + +// InvalidateEntry invalidates the kernel cache of the directory entry +// identified by parent directory node ID and entry basename. +// +// Kernel may or may not cache directory listings. To invalidate +// those, use InvalidateNode to invalidate all of the data for a +// directory. (As of 2015-06, Linux FUSE does not cache directory +// listings.) +// +// Returns ErrNotCached if the kernel is not currently caching the +// node. +func (c *Conn) InvalidateEntry(parent NodeID, name string) error { + const maxUint32 = ^uint32(0) + if uint64(len(name)) > uint64(maxUint32) { + // very unlikely, but we don't want to silently truncate + return syscall.ENAMETOOLONG + } + buf := newBuffer(unsafe.Sizeof(notifyInvalEntryOut{}) + uintptr(len(name)) + 1) + h := (*outHeader)(unsafe.Pointer(&buf[0])) + // h.Unique is 0 + h.Error = notifyCodeInvalEntry + out := (*notifyInvalEntryOut)(buf.alloc(unsafe.Sizeof(notifyInvalEntryOut{}))) + out.Parent = uint64(parent) + out.Namelen = uint32(len(name)) + buf = append(buf, name...) + buf = append(buf, '\x00') + return c.sendInvalidate(buf) +} + +// An InitRequest is the first request sent on a FUSE file system. +type InitRequest struct { + Header `json:"-"` + Kernel Protocol + // Maximum readahead in bytes that the kernel plans to use. + MaxReadahead uint32 + Flags InitFlags +} + +var _ = Request(&InitRequest{}) + +func (r *InitRequest) String() string { + return fmt.Sprintf("Init [%v] %v ra=%d fl=%v", &r.Header, r.Kernel, r.MaxReadahead, r.Flags) +} + +// An InitResponse is the response to an InitRequest. +type InitResponse struct { + Library Protocol + // Maximum readahead in bytes that the kernel can use. Ignored if + // greater than InitRequest.MaxReadahead. + MaxReadahead uint32 + Flags InitFlags + // Maximum size of a single write operation. + // Linux enforces a minimum of 4 KiB. + MaxWrite uint32 +} + +func (r *InitResponse) String() string { + return fmt.Sprintf("Init %v ra=%d fl=%v w=%d", r.Library, r.MaxReadahead, r.Flags, r.MaxWrite) +} + +// Respond replies to the request with the given response. +func (r *InitRequest) Respond(resp *InitResponse) { + buf := newBuffer(unsafe.Sizeof(initOut{})) + out := (*initOut)(buf.alloc(unsafe.Sizeof(initOut{}))) + out.Major = resp.Library.Major + out.Minor = resp.Library.Minor + out.MaxReadahead = resp.MaxReadahead + out.Flags = uint32(resp.Flags) + out.MaxWrite = resp.MaxWrite + + // MaxWrite larger than our receive buffer would just lead to + // errors on large writes. + if out.MaxWrite > maxWrite { + out.MaxWrite = maxWrite + } + r.respond(buf) +} + +// A StatfsRequest requests information about the mounted file system. +type StatfsRequest struct { + Header `json:"-"` +} + +var _ = Request(&StatfsRequest{}) + +func (r *StatfsRequest) String() string { + return fmt.Sprintf("Statfs [%s]", &r.Header) +} + +// Respond replies to the request with the given response. +func (r *StatfsRequest) Respond(resp *StatfsResponse) { + buf := newBuffer(unsafe.Sizeof(statfsOut{})) + out := (*statfsOut)(buf.alloc(unsafe.Sizeof(statfsOut{}))) + out.St = kstatfs{ + Blocks: resp.Blocks, + Bfree: resp.Bfree, + Bavail: resp.Bavail, + Files: resp.Files, + Ffree: resp.Ffree, + Bsize: resp.Bsize, + Namelen: resp.Namelen, + Frsize: resp.Frsize, + } + r.respond(buf) +} + +// A StatfsResponse is the response to a StatfsRequest. +type StatfsResponse struct { + Blocks uint64 // Total data blocks in file system. + Bfree uint64 // Free blocks in file system. + Bavail uint64 // Free blocks in file system if you're not root. + Files uint64 // Total files in file system. + Ffree uint64 // Free files in file system. + Bsize uint32 // Block size + Namelen uint32 // Maximum file name length? + Frsize uint32 // Fragment size, smallest addressable data size in the file system. +} + +func (r *StatfsResponse) String() string { + return fmt.Sprintf("Statfs blocks=%d/%d/%d files=%d/%d bsize=%d frsize=%d namelen=%d", + r.Bavail, r.Bfree, r.Blocks, + r.Ffree, r.Files, + r.Bsize, + r.Frsize, + r.Namelen, + ) +} + +// An AccessRequest asks whether the file can be accessed +// for the purpose specified by the mask. +type AccessRequest struct { + Header `json:"-"` + Mask uint32 +} + +var _ = Request(&AccessRequest{}) + +func (r *AccessRequest) String() string { + return fmt.Sprintf("Access [%s] mask=%#x", &r.Header, r.Mask) +} + +// Respond replies to the request indicating that access is allowed. +// To deny access, use RespondError. +func (r *AccessRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// An Attr is the metadata for a single file or directory. +type Attr struct { + Valid time.Duration // how long Attr can be cached + + Inode uint64 // inode number + Size uint64 // size in bytes + Blocks uint64 // size in 512-byte units + Atime time.Time // time of last access + Mtime time.Time // time of last modification + Ctime time.Time // time of last inode change + Crtime time.Time // time of creation (OS X only) + Mode os.FileMode // file mode + Nlink uint32 // number of links (usually 1) + Uid uint32 // owner uid + Gid uint32 // group gid + Rdev uint32 // device numbers + Flags uint32 // chflags(2) flags (OS X only) + BlockSize uint32 // preferred blocksize for filesystem I/O +} + +func (a Attr) String() string { + return fmt.Sprintf("valid=%v ino=%v size=%d mode=%v", a.Valid, a.Inode, a.Size, a.Mode) +} + +func unix(t time.Time) (sec uint64, nsec uint32) { + nano := t.UnixNano() + sec = uint64(nano / 1e9) + nsec = uint32(nano % 1e9) + return +} + +func (a *Attr) attr(out *attr, proto Protocol) { + out.Ino = a.Inode + out.Size = a.Size + out.Blocks = a.Blocks + out.Atime, out.AtimeNsec = unix(a.Atime) + out.Mtime, out.MtimeNsec = unix(a.Mtime) + out.Ctime, out.CtimeNsec = unix(a.Ctime) + out.SetCrtime(unix(a.Crtime)) + out.Mode = uint32(a.Mode) & 0777 + switch { + default: + out.Mode |= syscall.S_IFREG + case a.Mode&os.ModeDir != 0: + out.Mode |= syscall.S_IFDIR + case a.Mode&os.ModeDevice != 0: + if a.Mode&os.ModeCharDevice != 0 { + out.Mode |= syscall.S_IFCHR + } else { + out.Mode |= syscall.S_IFBLK + } + case a.Mode&os.ModeNamedPipe != 0: + out.Mode |= syscall.S_IFIFO + case a.Mode&os.ModeSymlink != 0: + out.Mode |= syscall.S_IFLNK + case a.Mode&os.ModeSocket != 0: + out.Mode |= syscall.S_IFSOCK + } + if a.Mode&os.ModeSetuid != 0 { + out.Mode |= syscall.S_ISUID + } + if a.Mode&os.ModeSetgid != 0 { + out.Mode |= syscall.S_ISGID + } + out.Nlink = a.Nlink + out.Uid = a.Uid + out.Gid = a.Gid + out.Rdev = a.Rdev + out.SetFlags(a.Flags) + if proto.GE(Protocol{7, 9}) { + out.Blksize = a.BlockSize + } + + return +} + +// A GetattrRequest asks for the metadata for the file denoted by r.Node. +type GetattrRequest struct { + Header `json:"-"` + Flags GetattrFlags + Handle HandleID +} + +var _ = Request(&GetattrRequest{}) + +func (r *GetattrRequest) String() string { + return fmt.Sprintf("Getattr [%s] %v fl=%v", &r.Header, r.Handle, r.Flags) +} + +// Respond replies to the request with the given response. +func (r *GetattrRequest) Respond(resp *GetattrResponse) { + size := attrOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*attrOut)(buf.alloc(size)) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +// A GetattrResponse is the response to a GetattrRequest. +type GetattrResponse struct { + Attr Attr // file attributes +} + +func (r *GetattrResponse) String() string { + return fmt.Sprintf("Getattr %v", r.Attr) +} + +// A GetxattrRequest asks for the extended attributes associated with r.Node. +type GetxattrRequest struct { + Header `json:"-"` + + // Maximum size to return. + Size uint32 + + // Name of the attribute requested. + Name string + + // Offset within extended attributes. + // + // Only valid for OS X, and then only with the resource fork + // attribute. + Position uint32 +} + +var _ = Request(&GetxattrRequest{}) + +func (r *GetxattrRequest) String() string { + return fmt.Sprintf("Getxattr [%s] %q %d @%d", &r.Header, r.Name, r.Size, r.Position) +} + +// Respond replies to the request with the given response. +func (r *GetxattrRequest) Respond(resp *GetxattrResponse) { + if r.Size == 0 { + buf := newBuffer(unsafe.Sizeof(getxattrOut{})) + out := (*getxattrOut)(buf.alloc(unsafe.Sizeof(getxattrOut{}))) + out.Size = uint32(len(resp.Xattr)) + r.respond(buf) + } else { + buf := newBuffer(uintptr(len(resp.Xattr))) + buf = append(buf, resp.Xattr...) + r.respond(buf) + } +} + +// A GetxattrResponse is the response to a GetxattrRequest. +type GetxattrResponse struct { + Xattr []byte +} + +func (r *GetxattrResponse) String() string { + return fmt.Sprintf("Getxattr %x", r.Xattr) +} + +// A ListxattrRequest asks to list the extended attributes associated with r.Node. +type ListxattrRequest struct { + Header `json:"-"` + Size uint32 // maximum size to return + Position uint32 // offset within attribute list +} + +var _ = Request(&ListxattrRequest{}) + +func (r *ListxattrRequest) String() string { + return fmt.Sprintf("Listxattr [%s] %d @%d", &r.Header, r.Size, r.Position) +} + +// Respond replies to the request with the given response. +func (r *ListxattrRequest) Respond(resp *ListxattrResponse) { + if r.Size == 0 { + buf := newBuffer(unsafe.Sizeof(getxattrOut{})) + out := (*getxattrOut)(buf.alloc(unsafe.Sizeof(getxattrOut{}))) + out.Size = uint32(len(resp.Xattr)) + r.respond(buf) + } else { + buf := newBuffer(uintptr(len(resp.Xattr))) + buf = append(buf, resp.Xattr...) + r.respond(buf) + } +} + +// A ListxattrResponse is the response to a ListxattrRequest. +type ListxattrResponse struct { + Xattr []byte +} + +func (r *ListxattrResponse) String() string { + return fmt.Sprintf("Listxattr %x", r.Xattr) +} + +// Append adds an extended attribute name to the response. +func (r *ListxattrResponse) Append(names ...string) { + for _, name := range names { + r.Xattr = append(r.Xattr, name...) + r.Xattr = append(r.Xattr, '\x00') + } +} + +// A RemovexattrRequest asks to remove an extended attribute associated with r.Node. +type RemovexattrRequest struct { + Header `json:"-"` + Name string // name of extended attribute +} + +var _ = Request(&RemovexattrRequest{}) + +func (r *RemovexattrRequest) String() string { + return fmt.Sprintf("Removexattr [%s] %q", &r.Header, r.Name) +} + +// Respond replies to the request, indicating that the attribute was removed. +func (r *RemovexattrRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// A SetxattrRequest asks to set an extended attribute associated with a file. +type SetxattrRequest struct { + Header `json:"-"` + + // Flags can make the request fail if attribute does/not already + // exist. Unfortunately, the constants are platform-specific and + // not exposed by Go1.2. Look for XATTR_CREATE, XATTR_REPLACE. + // + // TODO improve this later + // + // TODO XATTR_CREATE and exist -> EEXIST + // + // TODO XATTR_REPLACE and not exist -> ENODATA + Flags uint32 + + // Offset within extended attributes. + // + // Only valid for OS X, and then only with the resource fork + // attribute. + Position uint32 + + Name string + Xattr []byte +} + +var _ = Request(&SetxattrRequest{}) + +func trunc(b []byte, max int) ([]byte, string) { + if len(b) > max { + return b[:max], "..." + } + return b, "" +} + +func (r *SetxattrRequest) String() string { + xattr, tail := trunc(r.Xattr, 16) + return fmt.Sprintf("Setxattr [%s] %q %x%s fl=%v @%#x", &r.Header, r.Name, xattr, tail, r.Flags, r.Position) +} + +// Respond replies to the request, indicating that the extended attribute was set. +func (r *SetxattrRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// A LookupRequest asks to look up the given name in the directory named by r.Node. +type LookupRequest struct { + Header `json:"-"` + Name string +} + +var _ = Request(&LookupRequest{}) + +func (r *LookupRequest) String() string { + return fmt.Sprintf("Lookup [%s] %q", &r.Header, r.Name) +} + +// Respond replies to the request with the given response. +func (r *LookupRequest) Respond(resp *LookupResponse) { + size := entryOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*entryOut)(buf.alloc(size)) + out.Nodeid = uint64(resp.Node) + out.Generation = resp.Generation + out.EntryValid = uint64(resp.EntryValid / time.Second) + out.EntryValidNsec = uint32(resp.EntryValid % time.Second / time.Nanosecond) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +// A LookupResponse is the response to a LookupRequest. +type LookupResponse struct { + Node NodeID + Generation uint64 + EntryValid time.Duration + Attr Attr +} + +func (r *LookupResponse) string() string { + return fmt.Sprintf("%v gen=%d valid=%v attr={%v}", r.Node, r.Generation, r.EntryValid, r.Attr) +} + +func (r *LookupResponse) String() string { + return fmt.Sprintf("Lookup %s", r.string()) +} + +// An OpenRequest asks to open a file or directory +type OpenRequest struct { + Header `json:"-"` + Dir bool // is this Opendir? + Flags OpenFlags +} + +var _ = Request(&OpenRequest{}) + +func (r *OpenRequest) String() string { + return fmt.Sprintf("Open [%s] dir=%v fl=%v", &r.Header, r.Dir, r.Flags) +} + +// Respond replies to the request with the given response. +func (r *OpenRequest) Respond(resp *OpenResponse) { + buf := newBuffer(unsafe.Sizeof(openOut{})) + out := (*openOut)(buf.alloc(unsafe.Sizeof(openOut{}))) + out.Fh = uint64(resp.Handle) + out.OpenFlags = uint32(resp.Flags) + r.respond(buf) +} + +// A OpenResponse is the response to a OpenRequest. +type OpenResponse struct { + Handle HandleID + Flags OpenResponseFlags +} + +func (r *OpenResponse) string() string { + return fmt.Sprintf("%v fl=%v", r.Handle, r.Flags) +} + +func (r *OpenResponse) String() string { + return fmt.Sprintf("Open %s", r.string()) +} + +// A CreateRequest asks to create and open a file (not a directory). +type CreateRequest struct { + Header `json:"-"` + Name string + Flags OpenFlags + Mode os.FileMode + // Umask of the request. Not supported on OS X. + Umask os.FileMode +} + +var _ = Request(&CreateRequest{}) + +func (r *CreateRequest) String() string { + return fmt.Sprintf("Create [%s] %q fl=%v mode=%v umask=%v", &r.Header, r.Name, r.Flags, r.Mode, r.Umask) +} + +// Respond replies to the request with the given response. +func (r *CreateRequest) Respond(resp *CreateResponse) { + eSize := entryOutSize(r.Header.Conn.proto) + buf := newBuffer(eSize + unsafe.Sizeof(openOut{})) + + e := (*entryOut)(buf.alloc(eSize)) + e.Nodeid = uint64(resp.Node) + e.Generation = resp.Generation + e.EntryValid = uint64(resp.EntryValid / time.Second) + e.EntryValidNsec = uint32(resp.EntryValid % time.Second / time.Nanosecond) + e.AttrValid = uint64(resp.Attr.Valid / time.Second) + e.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&e.Attr, r.Header.Conn.proto) + + o := (*openOut)(buf.alloc(unsafe.Sizeof(openOut{}))) + o.Fh = uint64(resp.Handle) + o.OpenFlags = uint32(resp.Flags) + + r.respond(buf) +} + +// A CreateResponse is the response to a CreateRequest. +// It describes the created node and opened handle. +type CreateResponse struct { + LookupResponse + OpenResponse +} + +func (r *CreateResponse) String() string { + return fmt.Sprintf("Create {%s} {%s}", r.LookupResponse.string(), r.OpenResponse.string()) +} + +// A MkdirRequest asks to create (but not open) a directory. +type MkdirRequest struct { + Header `json:"-"` + Name string + Mode os.FileMode + // Umask of the request. Not supported on OS X. + Umask os.FileMode +} + +var _ = Request(&MkdirRequest{}) + +func (r *MkdirRequest) String() string { + return fmt.Sprintf("Mkdir [%s] %q mode=%v umask=%v", &r.Header, r.Name, r.Mode, r.Umask) +} + +// Respond replies to the request with the given response. +func (r *MkdirRequest) Respond(resp *MkdirResponse) { + size := entryOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*entryOut)(buf.alloc(size)) + out.Nodeid = uint64(resp.Node) + out.Generation = resp.Generation + out.EntryValid = uint64(resp.EntryValid / time.Second) + out.EntryValidNsec = uint32(resp.EntryValid % time.Second / time.Nanosecond) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +// A MkdirResponse is the response to a MkdirRequest. +type MkdirResponse struct { + LookupResponse +} + +func (r *MkdirResponse) String() string { + return fmt.Sprintf("Mkdir %v", r.LookupResponse.string()) +} + +// A ReadRequest asks to read from an open file. +type ReadRequest struct { + Header `json:"-"` + Dir bool // is this Readdir? + Handle HandleID + Offset int64 + Size int + Flags ReadFlags + LockOwner uint64 + FileFlags OpenFlags +} + +var _ = Request(&ReadRequest{}) + +func (r *ReadRequest) String() string { + return fmt.Sprintf("Read [%s] %v %d @%#x dir=%v fl=%v lock=%d ffl=%v", &r.Header, r.Handle, r.Size, r.Offset, r.Dir, r.Flags, r.LockOwner, r.FileFlags) +} + +// Respond replies to the request with the given response. +func (r *ReadRequest) Respond(resp *ReadResponse) { + buf := newBuffer(uintptr(len(resp.Data))) + buf = append(buf, resp.Data...) + r.respond(buf) +} + +// A ReadResponse is the response to a ReadRequest. +type ReadResponse struct { + Data []byte +} + +func (r *ReadResponse) String() string { + return fmt.Sprintf("Read %d", len(r.Data)) +} + +type jsonReadResponse struct { + Len uint64 +} + +func (r *ReadResponse) MarshalJSON() ([]byte, error) { + j := jsonReadResponse{ + Len: uint64(len(r.Data)), + } + return json.Marshal(j) +} + +// A ReleaseRequest asks to release (close) an open file handle. +type ReleaseRequest struct { + Header `json:"-"` + Dir bool // is this Releasedir? + Handle HandleID + Flags OpenFlags // flags from OpenRequest + ReleaseFlags ReleaseFlags + LockOwner uint32 +} + +var _ = Request(&ReleaseRequest{}) + +func (r *ReleaseRequest) String() string { + return fmt.Sprintf("Release [%s] %v fl=%v rfl=%v owner=%#x", &r.Header, r.Handle, r.Flags, r.ReleaseFlags, r.LockOwner) +} + +// Respond replies to the request, indicating that the handle has been released. +func (r *ReleaseRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// A DestroyRequest is sent by the kernel when unmounting the file system. +// No more requests will be received after this one, but it should still be +// responded to. +type DestroyRequest struct { + Header `json:"-"` +} + +var _ = Request(&DestroyRequest{}) + +func (r *DestroyRequest) String() string { + return fmt.Sprintf("Destroy [%s]", &r.Header) +} + +// Respond replies to the request. +func (r *DestroyRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// A ForgetRequest is sent by the kernel when forgetting about r.Node +// as returned by r.N lookup requests. +type ForgetRequest struct { + Header `json:"-"` + N uint64 +} + +var _ = Request(&ForgetRequest{}) + +func (r *ForgetRequest) String() string { + return fmt.Sprintf("Forget [%s] %d", &r.Header, r.N) +} + +// Respond replies to the request, indicating that the forgetfulness has been recorded. +func (r *ForgetRequest) Respond() { + // Don't reply to forget messages. + r.noResponse() +} + +// A Dirent represents a single directory entry. +type Dirent struct { + // Inode this entry names. + Inode uint64 + + // Type of the entry, for example DT_File. + // + // Setting this is optional. The zero value (DT_Unknown) means + // callers will just need to do a Getattr when the type is + // needed. Providing a type can speed up operations + // significantly. + Type DirentType + + // Name of the entry + Name string +} + +// Type of an entry in a directory listing. +type DirentType uint32 + +const ( + // These don't quite match os.FileMode; especially there's an + // explicit unknown, instead of zero value meaning file. They + // are also not quite syscall.DT_*; nothing says the FUSE + // protocol follows those, and even if they were, we don't + // want each fs to fiddle with syscall. + + // The shift by 12 is hardcoded in the FUSE userspace + // low-level C library, so it's safe here. + + DT_Unknown DirentType = 0 + DT_Socket DirentType = syscall.S_IFSOCK >> 12 + DT_Link DirentType = syscall.S_IFLNK >> 12 + DT_File DirentType = syscall.S_IFREG >> 12 + DT_Block DirentType = syscall.S_IFBLK >> 12 + DT_Dir DirentType = syscall.S_IFDIR >> 12 + DT_Char DirentType = syscall.S_IFCHR >> 12 + DT_FIFO DirentType = syscall.S_IFIFO >> 12 +) + +func (t DirentType) String() string { + switch t { + case DT_Unknown: + return "unknown" + case DT_Socket: + return "socket" + case DT_Link: + return "link" + case DT_File: + return "file" + case DT_Block: + return "block" + case DT_Dir: + return "dir" + case DT_Char: + return "char" + case DT_FIFO: + return "fifo" + } + return "invalid" +} + +// AppendDirent appends the encoded form of a directory entry to data +// and returns the resulting slice. +func AppendDirent(data []byte, dir Dirent) []byte { + de := dirent{ + Ino: dir.Inode, + Namelen: uint32(len(dir.Name)), + Type: uint32(dir.Type), + } + de.Off = uint64(len(data) + direntSize + (len(dir.Name)+7)&^7) + data = append(data, (*[direntSize]byte)(unsafe.Pointer(&de))[:]...) + data = append(data, dir.Name...) + n := direntSize + uintptr(len(dir.Name)) + if n%8 != 0 { + var pad [8]byte + data = append(data, pad[:8-n%8]...) + } + return data +} + +// A WriteRequest asks to write to an open file. +type WriteRequest struct { + Header + Handle HandleID + Offset int64 + Data []byte + Flags WriteFlags + LockOwner uint64 + FileFlags OpenFlags +} + +var _ = Request(&WriteRequest{}) + +func (r *WriteRequest) String() string { + return fmt.Sprintf("Write [%s] %v %d @%d fl=%v lock=%d ffl=%v", &r.Header, r.Handle, len(r.Data), r.Offset, r.Flags, r.LockOwner, r.FileFlags) +} + +type jsonWriteRequest struct { + Handle HandleID + Offset int64 + Len uint64 + Flags WriteFlags +} + +func (r *WriteRequest) MarshalJSON() ([]byte, error) { + j := jsonWriteRequest{ + Handle: r.Handle, + Offset: r.Offset, + Len: uint64(len(r.Data)), + Flags: r.Flags, + } + return json.Marshal(j) +} + +// Respond replies to the request with the given response. +func (r *WriteRequest) Respond(resp *WriteResponse) { + buf := newBuffer(unsafe.Sizeof(writeOut{})) + out := (*writeOut)(buf.alloc(unsafe.Sizeof(writeOut{}))) + out.Size = uint32(resp.Size) + r.respond(buf) +} + +// A WriteResponse replies to a write indicating how many bytes were written. +type WriteResponse struct { + Size int +} + +func (r *WriteResponse) String() string { + return fmt.Sprintf("Write %d", r.Size) +} + +// A SetattrRequest asks to change one or more attributes associated with a file, +// as indicated by Valid. +type SetattrRequest struct { + Header `json:"-"` + Valid SetattrValid + Handle HandleID + Size uint64 + Atime time.Time + Mtime time.Time + Mode os.FileMode + Uid uint32 + Gid uint32 + + // OS X only + Bkuptime time.Time + Chgtime time.Time + Crtime time.Time + Flags uint32 // see chflags(2) +} + +var _ = Request(&SetattrRequest{}) + +func (r *SetattrRequest) String() string { + var buf bytes.Buffer + fmt.Fprintf(&buf, "Setattr [%s]", &r.Header) + if r.Valid.Mode() { + fmt.Fprintf(&buf, " mode=%v", r.Mode) + } + if r.Valid.Uid() { + fmt.Fprintf(&buf, " uid=%d", r.Uid) + } + if r.Valid.Gid() { + fmt.Fprintf(&buf, " gid=%d", r.Gid) + } + if r.Valid.Size() { + fmt.Fprintf(&buf, " size=%d", r.Size) + } + if r.Valid.Atime() { + fmt.Fprintf(&buf, " atime=%v", r.Atime) + } + if r.Valid.AtimeNow() { + fmt.Fprintf(&buf, " atime=now") + } + if r.Valid.Mtime() { + fmt.Fprintf(&buf, " mtime=%v", r.Mtime) + } + if r.Valid.MtimeNow() { + fmt.Fprintf(&buf, " mtime=now") + } + if r.Valid.Handle() { + fmt.Fprintf(&buf, " handle=%v", r.Handle) + } else { + fmt.Fprintf(&buf, " handle=INVALID-%v", r.Handle) + } + if r.Valid.LockOwner() { + fmt.Fprintf(&buf, " lockowner") + } + if r.Valid.Crtime() { + fmt.Fprintf(&buf, " crtime=%v", r.Crtime) + } + if r.Valid.Chgtime() { + fmt.Fprintf(&buf, " chgtime=%v", r.Chgtime) + } + if r.Valid.Bkuptime() { + fmt.Fprintf(&buf, " bkuptime=%v", r.Bkuptime) + } + if r.Valid.Flags() { + fmt.Fprintf(&buf, " flags=%v", r.Flags) + } + return buf.String() +} + +// Respond replies to the request with the given response, +// giving the updated attributes. +func (r *SetattrRequest) Respond(resp *SetattrResponse) { + size := attrOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*attrOut)(buf.alloc(size)) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +// A SetattrResponse is the response to a SetattrRequest. +type SetattrResponse struct { + Attr Attr // file attributes +} + +func (r *SetattrResponse) String() string { + return fmt.Sprintf("Setattr %v", r.Attr) +} + +// A FlushRequest asks for the current state of an open file to be flushed +// to storage, as when a file descriptor is being closed. A single opened Handle +// may receive multiple FlushRequests over its lifetime. +type FlushRequest struct { + Header `json:"-"` + Handle HandleID + Flags uint32 + LockOwner uint64 +} + +var _ = Request(&FlushRequest{}) + +func (r *FlushRequest) String() string { + return fmt.Sprintf("Flush [%s] %v fl=%#x lk=%#x", &r.Header, r.Handle, r.Flags, r.LockOwner) +} + +// Respond replies to the request, indicating that the flush succeeded. +func (r *FlushRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// A RemoveRequest asks to remove a file or directory from the +// directory r.Node. +type RemoveRequest struct { + Header `json:"-"` + Name string // name of the entry to remove + Dir bool // is this rmdir? +} + +var _ = Request(&RemoveRequest{}) + +func (r *RemoveRequest) String() string { + return fmt.Sprintf("Remove [%s] %q dir=%v", &r.Header, r.Name, r.Dir) +} + +// Respond replies to the request, indicating that the file was removed. +func (r *RemoveRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// A SymlinkRequest is a request to create a symlink making NewName point to Target. +type SymlinkRequest struct { + Header `json:"-"` + NewName, Target string +} + +var _ = Request(&SymlinkRequest{}) + +func (r *SymlinkRequest) String() string { + return fmt.Sprintf("Symlink [%s] from %q to target %q", &r.Header, r.NewName, r.Target) +} + +// Respond replies to the request, indicating that the symlink was created. +func (r *SymlinkRequest) Respond(resp *SymlinkResponse) { + size := entryOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*entryOut)(buf.alloc(size)) + out.Nodeid = uint64(resp.Node) + out.Generation = resp.Generation + out.EntryValid = uint64(resp.EntryValid / time.Second) + out.EntryValidNsec = uint32(resp.EntryValid % time.Second / time.Nanosecond) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +// A SymlinkResponse is the response to a SymlinkRequest. +type SymlinkResponse struct { + LookupResponse +} + +func (r *SymlinkResponse) String() string { + return fmt.Sprintf("Symlink %v", r.LookupResponse.string()) +} + +// A ReadlinkRequest is a request to read a symlink's target. +type ReadlinkRequest struct { + Header `json:"-"` +} + +var _ = Request(&ReadlinkRequest{}) + +func (r *ReadlinkRequest) String() string { + return fmt.Sprintf("Readlink [%s]", &r.Header) +} + +func (r *ReadlinkRequest) Respond(target string) { + buf := newBuffer(uintptr(len(target))) + buf = append(buf, target...) + r.respond(buf) +} + +// A LinkRequest is a request to create a hard link. +type LinkRequest struct { + Header `json:"-"` + OldNode NodeID + NewName string +} + +var _ = Request(&LinkRequest{}) + +func (r *LinkRequest) String() string { + return fmt.Sprintf("Link [%s] node %d to %q", &r.Header, r.OldNode, r.NewName) +} + +func (r *LinkRequest) Respond(resp *LookupResponse) { + size := entryOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*entryOut)(buf.alloc(size)) + out.Nodeid = uint64(resp.Node) + out.Generation = resp.Generation + out.EntryValid = uint64(resp.EntryValid / time.Second) + out.EntryValidNsec = uint32(resp.EntryValid % time.Second / time.Nanosecond) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +// A RenameRequest is a request to rename a file. +type RenameRequest struct { + Header `json:"-"` + NewDir NodeID + OldName, NewName string +} + +var _ = Request(&RenameRequest{}) + +func (r *RenameRequest) String() string { + return fmt.Sprintf("Rename [%s] from %q to dirnode %v %q", &r.Header, r.OldName, r.NewDir, r.NewName) +} + +func (r *RenameRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +type MknodRequest struct { + Header `json:"-"` + Name string + Mode os.FileMode + Rdev uint32 + // Umask of the request. Not supported on OS X. + Umask os.FileMode +} + +var _ = Request(&MknodRequest{}) + +func (r *MknodRequest) String() string { + return fmt.Sprintf("Mknod [%s] Name %q mode=%v umask=%v rdev=%d", &r.Header, r.Name, r.Mode, r.Umask, r.Rdev) +} + +func (r *MknodRequest) Respond(resp *LookupResponse) { + size := entryOutSize(r.Header.Conn.proto) + buf := newBuffer(size) + out := (*entryOut)(buf.alloc(size)) + out.Nodeid = uint64(resp.Node) + out.Generation = resp.Generation + out.EntryValid = uint64(resp.EntryValid / time.Second) + out.EntryValidNsec = uint32(resp.EntryValid % time.Second / time.Nanosecond) + out.AttrValid = uint64(resp.Attr.Valid / time.Second) + out.AttrValidNsec = uint32(resp.Attr.Valid % time.Second / time.Nanosecond) + resp.Attr.attr(&out.Attr, r.Header.Conn.proto) + r.respond(buf) +} + +type FsyncRequest struct { + Header `json:"-"` + Handle HandleID + // TODO bit 1 is datasync, not well documented upstream + Flags uint32 + Dir bool +} + +var _ = Request(&FsyncRequest{}) + +func (r *FsyncRequest) String() string { + return fmt.Sprintf("Fsync [%s] Handle %v Flags %v", &r.Header, r.Handle, r.Flags) +} + +func (r *FsyncRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} + +// An InterruptRequest is a request to interrupt another pending request. The +// response to that request should return an error status of EINTR. +type InterruptRequest struct { + Header `json:"-"` + IntrID RequestID // ID of the request to be interrupt. +} + +var _ = Request(&InterruptRequest{}) + +func (r *InterruptRequest) Respond() { + // nothing to do here + r.noResponse() +} + +func (r *InterruptRequest) String() string { + return fmt.Sprintf("Interrupt [%s] ID %v", &r.Header, r.IntrID) +} + +// An ExchangeDataRequest is a request to exchange the contents of two +// files, while leaving most metadata untouched. +// +// This request comes from OS X exchangedata(2) and represents its +// specific semantics. Crucially, it is very different from Linux +// renameat(2) RENAME_EXCHANGE. +// +// https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/exchangedata.2.html +type ExchangeDataRequest struct { + Header `json:"-"` + OldDir, NewDir NodeID + OldName, NewName string + // TODO options +} + +var _ = Request(&ExchangeDataRequest{}) + +func (r *ExchangeDataRequest) String() string { + // TODO options + return fmt.Sprintf("ExchangeData [%s] %v %q and %v %q", &r.Header, r.OldDir, r.OldName, r.NewDir, r.NewName) +} + +func (r *ExchangeDataRequest) Respond() { + buf := newBuffer(0) + r.respond(buf) +} diff --git a/vendor/bazil.org/fuse/fuse_darwin.go b/vendor/bazil.org/fuse/fuse_darwin.go new file mode 100644 index 00000000..b58dca97 --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_darwin.go @@ -0,0 +1,9 @@ +package fuse + +// Maximum file write size we are prepared to receive from the kernel. +// +// This value has to be >=16MB or OSXFUSE (3.4.0 observed) will +// forcibly close the /dev/fuse file descriptor on a Setxattr with a +// 16MB value. See TestSetxattr16MB and +// https://github.com/bazil/fuse/issues/42 +const maxWrite = 16 * 1024 * 1024 diff --git a/vendor/bazil.org/fuse/fuse_freebsd.go b/vendor/bazil.org/fuse/fuse_freebsd.go new file mode 100644 index 00000000..4aa83a0d --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_freebsd.go @@ -0,0 +1,6 @@ +package fuse + +// Maximum file write size we are prepared to receive from the kernel. +// +// This number is just a guess. +const maxWrite = 128 * 1024 diff --git a/vendor/bazil.org/fuse/fuse_kernel.go b/vendor/bazil.org/fuse/fuse_kernel.go new file mode 100644 index 00000000..87c5ca1d --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_kernel.go @@ -0,0 +1,774 @@ +// See the file LICENSE for copyright and licensing information. + +// Derived from FUSE's fuse_kernel.h, which carries this notice: +/* + This file defines the kernel interface of FUSE + Copyright (C) 2001-2007 Miklos Szeredi + + + This -- and only this -- header file may also be distributed under + the terms of the BSD Licence as follows: + + Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +*/ + +package fuse + +import ( + "fmt" + "syscall" + "unsafe" +) + +// The FUSE version implemented by the package. +const ( + protoVersionMinMajor = 7 + protoVersionMinMinor = 8 + protoVersionMaxMajor = 7 + protoVersionMaxMinor = 12 +) + +const ( + rootID = 1 +) + +type kstatfs struct { + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Bsize uint32 + Namelen uint32 + Frsize uint32 + _ uint32 + Spare [6]uint32 +} + +type fileLock struct { + Start uint64 + End uint64 + Type uint32 + Pid uint32 +} + +// GetattrFlags are bit flags that can be seen in GetattrRequest. +type GetattrFlags uint32 + +const ( + // Indicates the handle is valid. + GetattrFh GetattrFlags = 1 << 0 +) + +var getattrFlagsNames = []flagName{ + {uint32(GetattrFh), "GetattrFh"}, +} + +func (fl GetattrFlags) String() string { + return flagString(uint32(fl), getattrFlagsNames) +} + +// The SetattrValid are bit flags describing which fields in the SetattrRequest +// are included in the change. +type SetattrValid uint32 + +const ( + SetattrMode SetattrValid = 1 << 0 + SetattrUid SetattrValid = 1 << 1 + SetattrGid SetattrValid = 1 << 2 + SetattrSize SetattrValid = 1 << 3 + SetattrAtime SetattrValid = 1 << 4 + SetattrMtime SetattrValid = 1 << 5 + SetattrHandle SetattrValid = 1 << 6 + + // Linux only(?) + SetattrAtimeNow SetattrValid = 1 << 7 + SetattrMtimeNow SetattrValid = 1 << 8 + SetattrLockOwner SetattrValid = 1 << 9 // http://www.mail-archive.com/git-commits-head@vger.kernel.org/msg27852.html + + // OS X only + SetattrCrtime SetattrValid = 1 << 28 + SetattrChgtime SetattrValid = 1 << 29 + SetattrBkuptime SetattrValid = 1 << 30 + SetattrFlags SetattrValid = 1 << 31 +) + +func (fl SetattrValid) Mode() bool { return fl&SetattrMode != 0 } +func (fl SetattrValid) Uid() bool { return fl&SetattrUid != 0 } +func (fl SetattrValid) Gid() bool { return fl&SetattrGid != 0 } +func (fl SetattrValid) Size() bool { return fl&SetattrSize != 0 } +func (fl SetattrValid) Atime() bool { return fl&SetattrAtime != 0 } +func (fl SetattrValid) Mtime() bool { return fl&SetattrMtime != 0 } +func (fl SetattrValid) Handle() bool { return fl&SetattrHandle != 0 } +func (fl SetattrValid) AtimeNow() bool { return fl&SetattrAtimeNow != 0 } +func (fl SetattrValid) MtimeNow() bool { return fl&SetattrMtimeNow != 0 } +func (fl SetattrValid) LockOwner() bool { return fl&SetattrLockOwner != 0 } +func (fl SetattrValid) Crtime() bool { return fl&SetattrCrtime != 0 } +func (fl SetattrValid) Chgtime() bool { return fl&SetattrChgtime != 0 } +func (fl SetattrValid) Bkuptime() bool { return fl&SetattrBkuptime != 0 } +func (fl SetattrValid) Flags() bool { return fl&SetattrFlags != 0 } + +func (fl SetattrValid) String() string { + return flagString(uint32(fl), setattrValidNames) +} + +var setattrValidNames = []flagName{ + {uint32(SetattrMode), "SetattrMode"}, + {uint32(SetattrUid), "SetattrUid"}, + {uint32(SetattrGid), "SetattrGid"}, + {uint32(SetattrSize), "SetattrSize"}, + {uint32(SetattrAtime), "SetattrAtime"}, + {uint32(SetattrMtime), "SetattrMtime"}, + {uint32(SetattrHandle), "SetattrHandle"}, + {uint32(SetattrAtimeNow), "SetattrAtimeNow"}, + {uint32(SetattrMtimeNow), "SetattrMtimeNow"}, + {uint32(SetattrLockOwner), "SetattrLockOwner"}, + {uint32(SetattrCrtime), "SetattrCrtime"}, + {uint32(SetattrChgtime), "SetattrChgtime"}, + {uint32(SetattrBkuptime), "SetattrBkuptime"}, + {uint32(SetattrFlags), "SetattrFlags"}, +} + +// Flags that can be seen in OpenRequest.Flags. +const ( + // Access modes. These are not 1-bit flags, but alternatives where + // only one can be chosen. See the IsReadOnly etc convenience + // methods. + OpenReadOnly OpenFlags = syscall.O_RDONLY + OpenWriteOnly OpenFlags = syscall.O_WRONLY + OpenReadWrite OpenFlags = syscall.O_RDWR + + // File was opened in append-only mode, all writes will go to end + // of file. OS X does not provide this information. + OpenAppend OpenFlags = syscall.O_APPEND + OpenCreate OpenFlags = syscall.O_CREAT + OpenDirectory OpenFlags = syscall.O_DIRECTORY + OpenExclusive OpenFlags = syscall.O_EXCL + OpenNonblock OpenFlags = syscall.O_NONBLOCK + OpenSync OpenFlags = syscall.O_SYNC + OpenTruncate OpenFlags = syscall.O_TRUNC +) + +// OpenAccessModeMask is a bitmask that separates the access mode +// from the other flags in OpenFlags. +const OpenAccessModeMask OpenFlags = syscall.O_ACCMODE + +// OpenFlags are the O_FOO flags passed to open/create/etc calls. For +// example, os.O_WRONLY | os.O_APPEND. +type OpenFlags uint32 + +func (fl OpenFlags) String() string { + // O_RDONLY, O_RWONLY, O_RDWR are not flags + s := accModeName(fl & OpenAccessModeMask) + flags := uint32(fl &^ OpenAccessModeMask) + if flags != 0 { + s = s + "+" + flagString(flags, openFlagNames) + } + return s +} + +// Return true if OpenReadOnly is set. +func (fl OpenFlags) IsReadOnly() bool { + return fl&OpenAccessModeMask == OpenReadOnly +} + +// Return true if OpenWriteOnly is set. +func (fl OpenFlags) IsWriteOnly() bool { + return fl&OpenAccessModeMask == OpenWriteOnly +} + +// Return true if OpenReadWrite is set. +func (fl OpenFlags) IsReadWrite() bool { + return fl&OpenAccessModeMask == OpenReadWrite +} + +func accModeName(flags OpenFlags) string { + switch flags { + case OpenReadOnly: + return "OpenReadOnly" + case OpenWriteOnly: + return "OpenWriteOnly" + case OpenReadWrite: + return "OpenReadWrite" + default: + return "" + } +} + +var openFlagNames = []flagName{ + {uint32(OpenAppend), "OpenAppend"}, + {uint32(OpenCreate), "OpenCreate"}, + {uint32(OpenDirectory), "OpenDirectory"}, + {uint32(OpenExclusive), "OpenExclusive"}, + {uint32(OpenNonblock), "OpenNonblock"}, + {uint32(OpenSync), "OpenSync"}, + {uint32(OpenTruncate), "OpenTruncate"}, +} + +// The OpenResponseFlags are returned in the OpenResponse. +type OpenResponseFlags uint32 + +const ( + OpenDirectIO OpenResponseFlags = 1 << 0 // bypass page cache for this open file + OpenKeepCache OpenResponseFlags = 1 << 1 // don't invalidate the data cache on open + OpenNonSeekable OpenResponseFlags = 1 << 2 // mark the file as non-seekable (not supported on OS X) + + OpenPurgeAttr OpenResponseFlags = 1 << 30 // OS X + OpenPurgeUBC OpenResponseFlags = 1 << 31 // OS X +) + +func (fl OpenResponseFlags) String() string { + return flagString(uint32(fl), openResponseFlagNames) +} + +var openResponseFlagNames = []flagName{ + {uint32(OpenDirectIO), "OpenDirectIO"}, + {uint32(OpenKeepCache), "OpenKeepCache"}, + {uint32(OpenNonSeekable), "OpenNonSeekable"}, + {uint32(OpenPurgeAttr), "OpenPurgeAttr"}, + {uint32(OpenPurgeUBC), "OpenPurgeUBC"}, +} + +// The InitFlags are used in the Init exchange. +type InitFlags uint32 + +const ( + InitAsyncRead InitFlags = 1 << 0 + InitPosixLocks InitFlags = 1 << 1 + InitFileOps InitFlags = 1 << 2 + InitAtomicTrunc InitFlags = 1 << 3 + InitExportSupport InitFlags = 1 << 4 + InitBigWrites InitFlags = 1 << 5 + // Do not mask file access modes with umask. Not supported on OS X. + InitDontMask InitFlags = 1 << 6 + InitSpliceWrite InitFlags = 1 << 7 + InitSpliceMove InitFlags = 1 << 8 + InitSpliceRead InitFlags = 1 << 9 + InitFlockLocks InitFlags = 1 << 10 + InitHasIoctlDir InitFlags = 1 << 11 + InitAutoInvalData InitFlags = 1 << 12 + InitDoReaddirplus InitFlags = 1 << 13 + InitReaddirplusAuto InitFlags = 1 << 14 + InitAsyncDIO InitFlags = 1 << 15 + InitWritebackCache InitFlags = 1 << 16 + InitNoOpenSupport InitFlags = 1 << 17 + + InitCaseSensitive InitFlags = 1 << 29 // OS X only + InitVolRename InitFlags = 1 << 30 // OS X only + InitXtimes InitFlags = 1 << 31 // OS X only +) + +type flagName struct { + bit uint32 + name string +} + +var initFlagNames = []flagName{ + {uint32(InitAsyncRead), "InitAsyncRead"}, + {uint32(InitPosixLocks), "InitPosixLocks"}, + {uint32(InitFileOps), "InitFileOps"}, + {uint32(InitAtomicTrunc), "InitAtomicTrunc"}, + {uint32(InitExportSupport), "InitExportSupport"}, + {uint32(InitBigWrites), "InitBigWrites"}, + {uint32(InitDontMask), "InitDontMask"}, + {uint32(InitSpliceWrite), "InitSpliceWrite"}, + {uint32(InitSpliceMove), "InitSpliceMove"}, + {uint32(InitSpliceRead), "InitSpliceRead"}, + {uint32(InitFlockLocks), "InitFlockLocks"}, + {uint32(InitHasIoctlDir), "InitHasIoctlDir"}, + {uint32(InitAutoInvalData), "InitAutoInvalData"}, + {uint32(InitDoReaddirplus), "InitDoReaddirplus"}, + {uint32(InitReaddirplusAuto), "InitReaddirplusAuto"}, + {uint32(InitAsyncDIO), "InitAsyncDIO"}, + {uint32(InitWritebackCache), "InitWritebackCache"}, + {uint32(InitNoOpenSupport), "InitNoOpenSupport"}, + + {uint32(InitCaseSensitive), "InitCaseSensitive"}, + {uint32(InitVolRename), "InitVolRename"}, + {uint32(InitXtimes), "InitXtimes"}, +} + +func (fl InitFlags) String() string { + return flagString(uint32(fl), initFlagNames) +} + +func flagString(f uint32, names []flagName) string { + var s string + + if f == 0 { + return "0" + } + + for _, n := range names { + if f&n.bit != 0 { + s += "+" + n.name + f &^= n.bit + } + } + if f != 0 { + s += fmt.Sprintf("%+#x", f) + } + return s[1:] +} + +// The ReleaseFlags are used in the Release exchange. +type ReleaseFlags uint32 + +const ( + ReleaseFlush ReleaseFlags = 1 << 0 +) + +func (fl ReleaseFlags) String() string { + return flagString(uint32(fl), releaseFlagNames) +} + +var releaseFlagNames = []flagName{ + {uint32(ReleaseFlush), "ReleaseFlush"}, +} + +// Opcodes +const ( + opLookup = 1 + opForget = 2 // no reply + opGetattr = 3 + opSetattr = 4 + opReadlink = 5 + opSymlink = 6 + opMknod = 8 + opMkdir = 9 + opUnlink = 10 + opRmdir = 11 + opRename = 12 + opLink = 13 + opOpen = 14 + opRead = 15 + opWrite = 16 + opStatfs = 17 + opRelease = 18 + opFsync = 20 + opSetxattr = 21 + opGetxattr = 22 + opListxattr = 23 + opRemovexattr = 24 + opFlush = 25 + opInit = 26 + opOpendir = 27 + opReaddir = 28 + opReleasedir = 29 + opFsyncdir = 30 + opGetlk = 31 + opSetlk = 32 + opSetlkw = 33 + opAccess = 34 + opCreate = 35 + opInterrupt = 36 + opBmap = 37 + opDestroy = 38 + opIoctl = 39 // Linux? + opPoll = 40 // Linux? + + // OS X + opSetvolname = 61 + opGetxtimes = 62 + opExchange = 63 +) + +type entryOut struct { + Nodeid uint64 // Inode ID + Generation uint64 // Inode generation + EntryValid uint64 // Cache timeout for the name + AttrValid uint64 // Cache timeout for the attributes + EntryValidNsec uint32 + AttrValidNsec uint32 + Attr attr +} + +func entryOutSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 9}): + return unsafe.Offsetof(entryOut{}.Attr) + unsafe.Offsetof(entryOut{}.Attr.Blksize) + default: + return unsafe.Sizeof(entryOut{}) + } +} + +type forgetIn struct { + Nlookup uint64 +} + +type getattrIn struct { + GetattrFlags uint32 + _ uint32 + Fh uint64 +} + +type attrOut struct { + AttrValid uint64 // Cache timeout for the attributes + AttrValidNsec uint32 + _ uint32 + Attr attr +} + +func attrOutSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 9}): + return unsafe.Offsetof(attrOut{}.Attr) + unsafe.Offsetof(attrOut{}.Attr.Blksize) + default: + return unsafe.Sizeof(attrOut{}) + } +} + +// OS X +type getxtimesOut struct { + Bkuptime uint64 + Crtime uint64 + BkuptimeNsec uint32 + CrtimeNsec uint32 +} + +type mknodIn struct { + Mode uint32 + Rdev uint32 + Umask uint32 + _ uint32 + // "filename\x00" follows. +} + +func mknodInSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 12}): + return unsafe.Offsetof(mknodIn{}.Umask) + default: + return unsafe.Sizeof(mknodIn{}) + } +} + +type mkdirIn struct { + Mode uint32 + Umask uint32 + // filename follows +} + +func mkdirInSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 12}): + return unsafe.Offsetof(mkdirIn{}.Umask) + 4 + default: + return unsafe.Sizeof(mkdirIn{}) + } +} + +type renameIn struct { + Newdir uint64 + // "oldname\x00newname\x00" follows +} + +// OS X +type exchangeIn struct { + Olddir uint64 + Newdir uint64 + Options uint64 + // "oldname\x00newname\x00" follows +} + +type linkIn struct { + Oldnodeid uint64 +} + +type setattrInCommon struct { + Valid uint32 + _ uint32 + Fh uint64 + Size uint64 + LockOwner uint64 // unused on OS X? + Atime uint64 + Mtime uint64 + Unused2 uint64 + AtimeNsec uint32 + MtimeNsec uint32 + Unused3 uint32 + Mode uint32 + Unused4 uint32 + Uid uint32 + Gid uint32 + Unused5 uint32 +} + +type openIn struct { + Flags uint32 + Unused uint32 +} + +type openOut struct { + Fh uint64 + OpenFlags uint32 + _ uint32 +} + +type createIn struct { + Flags uint32 + Mode uint32 + Umask uint32 + _ uint32 +} + +func createInSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 12}): + return unsafe.Offsetof(createIn{}.Umask) + default: + return unsafe.Sizeof(createIn{}) + } +} + +type releaseIn struct { + Fh uint64 + Flags uint32 + ReleaseFlags uint32 + LockOwner uint32 +} + +type flushIn struct { + Fh uint64 + FlushFlags uint32 + _ uint32 + LockOwner uint64 +} + +type readIn struct { + Fh uint64 + Offset uint64 + Size uint32 + ReadFlags uint32 + LockOwner uint64 + Flags uint32 + _ uint32 +} + +func readInSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 9}): + return unsafe.Offsetof(readIn{}.ReadFlags) + 4 + default: + return unsafe.Sizeof(readIn{}) + } +} + +// The ReadFlags are passed in ReadRequest. +type ReadFlags uint32 + +const ( + // LockOwner field is valid. + ReadLockOwner ReadFlags = 1 << 1 +) + +var readFlagNames = []flagName{ + {uint32(ReadLockOwner), "ReadLockOwner"}, +} + +func (fl ReadFlags) String() string { + return flagString(uint32(fl), readFlagNames) +} + +type writeIn struct { + Fh uint64 + Offset uint64 + Size uint32 + WriteFlags uint32 + LockOwner uint64 + Flags uint32 + _ uint32 +} + +func writeInSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 9}): + return unsafe.Offsetof(writeIn{}.LockOwner) + default: + return unsafe.Sizeof(writeIn{}) + } +} + +type writeOut struct { + Size uint32 + _ uint32 +} + +// The WriteFlags are passed in WriteRequest. +type WriteFlags uint32 + +const ( + WriteCache WriteFlags = 1 << 0 + // LockOwner field is valid. + WriteLockOwner WriteFlags = 1 << 1 +) + +var writeFlagNames = []flagName{ + {uint32(WriteCache), "WriteCache"}, + {uint32(WriteLockOwner), "WriteLockOwner"}, +} + +func (fl WriteFlags) String() string { + return flagString(uint32(fl), writeFlagNames) +} + +const compatStatfsSize = 48 + +type statfsOut struct { + St kstatfs +} + +type fsyncIn struct { + Fh uint64 + FsyncFlags uint32 + _ uint32 +} + +type setxattrInCommon struct { + Size uint32 + Flags uint32 +} + +func (setxattrInCommon) position() uint32 { + return 0 +} + +type getxattrInCommon struct { + Size uint32 + _ uint32 +} + +func (getxattrInCommon) position() uint32 { + return 0 +} + +type getxattrOut struct { + Size uint32 + _ uint32 +} + +type lkIn struct { + Fh uint64 + Owner uint64 + Lk fileLock + LkFlags uint32 + _ uint32 +} + +func lkInSize(p Protocol) uintptr { + switch { + case p.LT(Protocol{7, 9}): + return unsafe.Offsetof(lkIn{}.LkFlags) + default: + return unsafe.Sizeof(lkIn{}) + } +} + +type lkOut struct { + Lk fileLock +} + +type accessIn struct { + Mask uint32 + _ uint32 +} + +type initIn struct { + Major uint32 + Minor uint32 + MaxReadahead uint32 + Flags uint32 +} + +const initInSize = int(unsafe.Sizeof(initIn{})) + +type initOut struct { + Major uint32 + Minor uint32 + MaxReadahead uint32 + Flags uint32 + Unused uint32 + MaxWrite uint32 +} + +type interruptIn struct { + Unique uint64 +} + +type bmapIn struct { + Block uint64 + BlockSize uint32 + _ uint32 +} + +type bmapOut struct { + Block uint64 +} + +type inHeader struct { + Len uint32 + Opcode uint32 + Unique uint64 + Nodeid uint64 + Uid uint32 + Gid uint32 + Pid uint32 + _ uint32 +} + +const inHeaderSize = int(unsafe.Sizeof(inHeader{})) + +type outHeader struct { + Len uint32 + Error int32 + Unique uint64 +} + +type dirent struct { + Ino uint64 + Off uint64 + Namelen uint32 + Type uint32 + Name [0]byte +} + +const direntSize = 8 + 8 + 4 + 4 + +const ( + notifyCodePoll int32 = 1 + notifyCodeInvalInode int32 = 2 + notifyCodeInvalEntry int32 = 3 +) + +type notifyInvalInodeOut struct { + Ino uint64 + Off int64 + Len int64 +} + +type notifyInvalEntryOut struct { + Parent uint64 + Namelen uint32 + _ uint32 +} diff --git a/vendor/bazil.org/fuse/fuse_kernel_darwin.go b/vendor/bazil.org/fuse/fuse_kernel_darwin.go new file mode 100644 index 00000000..b9873fdf --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_kernel_darwin.go @@ -0,0 +1,88 @@ +package fuse + +import ( + "time" +) + +type attr struct { + Ino uint64 + Size uint64 + Blocks uint64 + Atime uint64 + Mtime uint64 + Ctime uint64 + Crtime_ uint64 // OS X only + AtimeNsec uint32 + MtimeNsec uint32 + CtimeNsec uint32 + CrtimeNsec uint32 // OS X only + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Flags_ uint32 // OS X only; see chflags(2) + Blksize uint32 + padding uint32 +} + +func (a *attr) SetCrtime(s uint64, ns uint32) { + a.Crtime_, a.CrtimeNsec = s, ns +} + +func (a *attr) SetFlags(f uint32) { + a.Flags_ = f +} + +type setattrIn struct { + setattrInCommon + + // OS X only + Bkuptime_ uint64 + Chgtime_ uint64 + Crtime uint64 + BkuptimeNsec uint32 + ChgtimeNsec uint32 + CrtimeNsec uint32 + Flags_ uint32 // see chflags(2) +} + +func (in *setattrIn) BkupTime() time.Time { + return time.Unix(int64(in.Bkuptime_), int64(in.BkuptimeNsec)) +} + +func (in *setattrIn) Chgtime() time.Time { + return time.Unix(int64(in.Chgtime_), int64(in.ChgtimeNsec)) +} + +func (in *setattrIn) Flags() uint32 { + return in.Flags_ +} + +func openFlags(flags uint32) OpenFlags { + return OpenFlags(flags) +} + +type getxattrIn struct { + getxattrInCommon + + // OS X only + Position uint32 + Padding uint32 +} + +func (g *getxattrIn) position() uint32 { + return g.Position +} + +type setxattrIn struct { + setxattrInCommon + + // OS X only + Position uint32 + Padding uint32 +} + +func (s *setxattrIn) position() uint32 { + return s.Position +} diff --git a/vendor/bazil.org/fuse/fuse_kernel_freebsd.go b/vendor/bazil.org/fuse/fuse_kernel_freebsd.go new file mode 100644 index 00000000..b1141e41 --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_kernel_freebsd.go @@ -0,0 +1,62 @@ +package fuse + +import "time" + +type attr struct { + Ino uint64 + Size uint64 + Blocks uint64 + Atime uint64 + Mtime uint64 + Ctime uint64 + AtimeNsec uint32 + MtimeNsec uint32 + CtimeNsec uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Blksize uint32 + padding uint32 +} + +func (a *attr) Crtime() time.Time { + return time.Time{} +} + +func (a *attr) SetCrtime(s uint64, ns uint32) { + // ignored on freebsd +} + +func (a *attr) SetFlags(f uint32) { + // ignored on freebsd +} + +type setattrIn struct { + setattrInCommon +} + +func (in *setattrIn) BkupTime() time.Time { + return time.Time{} +} + +func (in *setattrIn) Chgtime() time.Time { + return time.Time{} +} + +func (in *setattrIn) Flags() uint32 { + return 0 +} + +func openFlags(flags uint32) OpenFlags { + return OpenFlags(flags) +} + +type getxattrIn struct { + getxattrInCommon +} + +type setxattrIn struct { + setxattrInCommon +} diff --git a/vendor/bazil.org/fuse/fuse_kernel_linux.go b/vendor/bazil.org/fuse/fuse_kernel_linux.go new file mode 100644 index 00000000..d3ba8661 --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_kernel_linux.go @@ -0,0 +1,70 @@ +package fuse + +import "time" + +type attr struct { + Ino uint64 + Size uint64 + Blocks uint64 + Atime uint64 + Mtime uint64 + Ctime uint64 + AtimeNsec uint32 + MtimeNsec uint32 + CtimeNsec uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Blksize uint32 + padding uint32 +} + +func (a *attr) Crtime() time.Time { + return time.Time{} +} + +func (a *attr) SetCrtime(s uint64, ns uint32) { + // Ignored on Linux. +} + +func (a *attr) SetFlags(f uint32) { + // Ignored on Linux. +} + +type setattrIn struct { + setattrInCommon +} + +func (in *setattrIn) BkupTime() time.Time { + return time.Time{} +} + +func (in *setattrIn) Chgtime() time.Time { + return time.Time{} +} + +func (in *setattrIn) Flags() uint32 { + return 0 +} + +func openFlags(flags uint32) OpenFlags { + // on amd64, the 32-bit O_LARGEFILE flag is always seen; + // on i386, the flag probably depends on the app + // requesting, but in any case should be utterly + // uninteresting to us here; our kernel protocol messages + // are not directly related to the client app's kernel + // API/ABI + flags &^= 0x8000 + + return OpenFlags(flags) +} + +type getxattrIn struct { + getxattrInCommon +} + +type setxattrIn struct { + setxattrInCommon +} diff --git a/vendor/bazil.org/fuse/fuse_kernel_std.go b/vendor/bazil.org/fuse/fuse_kernel_std.go new file mode 100644 index 00000000..074cfd32 --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_kernel_std.go @@ -0,0 +1 @@ +package fuse diff --git a/vendor/bazil.org/fuse/fuse_linux.go b/vendor/bazil.org/fuse/fuse_linux.go new file mode 100644 index 00000000..5fb96f9a --- /dev/null +++ b/vendor/bazil.org/fuse/fuse_linux.go @@ -0,0 +1,7 @@ +package fuse + +// Maximum file write size we are prepared to receive from the kernel. +// +// Linux 4.2.0 has been observed to cap this value at 128kB +// (FUSE_MAX_PAGES_PER_REQ=32, 4kB pages). +const maxWrite = 128 * 1024 diff --git a/vendor/bazil.org/fuse/fuseutil/fuseutil.go b/vendor/bazil.org/fuse/fuseutil/fuseutil.go new file mode 100644 index 00000000..b3f52b73 --- /dev/null +++ b/vendor/bazil.org/fuse/fuseutil/fuseutil.go @@ -0,0 +1,20 @@ +package fuseutil // import "bazil.org/fuse/fuseutil" + +import ( + "bazil.org/fuse" +) + +// HandleRead handles a read request assuming that data is the entire file content. +// It adjusts the amount returned in resp according to req.Offset and req.Size. +func HandleRead(req *fuse.ReadRequest, resp *fuse.ReadResponse, data []byte) { + if req.Offset >= int64(len(data)) { + data = nil + } else { + data = data[req.Offset:] + } + if len(data) > req.Size { + data = data[:req.Size] + } + n := copy(resp.Data[:req.Size], data) + resp.Data = resp.Data[:n] +} diff --git a/vendor/bazil.org/fuse/mount.go b/vendor/bazil.org/fuse/mount.go new file mode 100644 index 00000000..8054e902 --- /dev/null +++ b/vendor/bazil.org/fuse/mount.go @@ -0,0 +1,38 @@ +package fuse + +import ( + "bufio" + "errors" + "io" + "log" + "sync" +) + +var ( + // ErrOSXFUSENotFound is returned from Mount when the OSXFUSE + // installation is not detected. + // + // Only happens on OS X. Make sure OSXFUSE is installed, or see + // OSXFUSELocations for customization. + ErrOSXFUSENotFound = errors.New("cannot locate OSXFUSE") +) + +func neverIgnoreLine(line string) bool { + return false +} + +func lineLogger(wg *sync.WaitGroup, prefix string, ignore func(line string) bool, r io.ReadCloser) { + defer wg.Done() + + scanner := bufio.NewScanner(r) + for scanner.Scan() { + line := scanner.Text() + if ignore(line) { + continue + } + log.Printf("%s: %s", prefix, line) + } + if err := scanner.Err(); err != nil { + log.Printf("%s, error reading: %v", prefix, err) + } +} diff --git a/vendor/bazil.org/fuse/mount_darwin.go b/vendor/bazil.org/fuse/mount_darwin.go new file mode 100644 index 00000000..c1c36e62 --- /dev/null +++ b/vendor/bazil.org/fuse/mount_darwin.go @@ -0,0 +1,208 @@ +package fuse + +import ( + "errors" + "fmt" + "log" + "os" + "os/exec" + "path" + "strconv" + "strings" + "sync" + "syscall" +) + +var ( + errNoAvail = errors.New("no available fuse devices") + errNotLoaded = errors.New("osxfuse is not loaded") +) + +func loadOSXFUSE(bin string) error { + cmd := exec.Command(bin) + cmd.Dir = "/" + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + return err +} + +func openOSXFUSEDev(devPrefix string) (*os.File, error) { + var f *os.File + var err error + for i := uint64(0); ; i++ { + path := devPrefix + strconv.FormatUint(i, 10) + f, err = os.OpenFile(path, os.O_RDWR, 0000) + if os.IsNotExist(err) { + if i == 0 { + // not even the first device was found -> fuse is not loaded + return nil, errNotLoaded + } + + // we've run out of kernel-provided devices + return nil, errNoAvail + } + + if err2, ok := err.(*os.PathError); ok && err2.Err == syscall.EBUSY { + // try the next one + continue + } + + if err != nil { + return nil, err + } + return f, nil + } +} + +func handleMountOSXFUSE(helperName string, errCh chan<- error) func(line string) (ignore bool) { + var noMountpointPrefix = helperName + `: ` + const noMountpointSuffix = `: No such file or directory` + return func(line string) (ignore bool) { + if strings.HasPrefix(line, noMountpointPrefix) && strings.HasSuffix(line, noMountpointSuffix) { + // re-extract it from the error message in case some layer + // changed the path + mountpoint := line[len(noMountpointPrefix) : len(line)-len(noMountpointSuffix)] + err := &MountpointDoesNotExistError{ + Path: mountpoint, + } + select { + case errCh <- err: + return true + default: + // not the first error; fall back to logging it + return false + } + } + + return false + } +} + +// isBoringMountOSXFUSEError returns whether the Wait error is +// uninteresting; exit status 64 is. +func isBoringMountOSXFUSEError(err error) bool { + if err, ok := err.(*exec.ExitError); ok && err.Exited() { + if status, ok := err.Sys().(syscall.WaitStatus); ok && status.ExitStatus() == 64 { + return true + } + } + return false +} + +func callMount(bin string, daemonVar string, dir string, conf *mountConfig, f *os.File, ready chan<- struct{}, errp *error) error { + for k, v := range conf.options { + if strings.Contains(k, ",") || strings.Contains(v, ",") { + // Silly limitation but the mount helper does not + // understand any escaping. See TestMountOptionCommaError. + return fmt.Errorf("mount options cannot contain commas on darwin: %q=%q", k, v) + } + } + cmd := exec.Command( + bin, + "-o", conf.getOptions(), + // Tell osxfuse-kext how large our buffer is. It must split + // writes larger than this into multiple writes. + // + // OSXFUSE seems to ignore InitResponse.MaxWrite, and uses + // this instead. + "-o", "iosize="+strconv.FormatUint(maxWrite, 10), + // refers to fd passed in cmd.ExtraFiles + "3", + dir, + ) + cmd.ExtraFiles = []*os.File{f} + cmd.Env = os.Environ() + // OSXFUSE <3.3.0 + cmd.Env = append(cmd.Env, "MOUNT_FUSEFS_CALL_BY_LIB=") + // OSXFUSE >=3.3.0 + cmd.Env = append(cmd.Env, "MOUNT_OSXFUSE_CALL_BY_LIB=") + + daemon := os.Args[0] + if daemonVar != "" { + cmd.Env = append(cmd.Env, daemonVar+"="+daemon) + } + + stdout, err := cmd.StdoutPipe() + if err != nil { + return fmt.Errorf("setting up mount_osxfusefs stderr: %v", err) + } + stderr, err := cmd.StderrPipe() + if err != nil { + return fmt.Errorf("setting up mount_osxfusefs stderr: %v", err) + } + + if err := cmd.Start(); err != nil { + return fmt.Errorf("mount_osxfusefs: %v", err) + } + helperErrCh := make(chan error, 1) + go func() { + var wg sync.WaitGroup + wg.Add(2) + go lineLogger(&wg, "mount helper output", neverIgnoreLine, stdout) + helperName := path.Base(bin) + go lineLogger(&wg, "mount helper error", handleMountOSXFUSE(helperName, helperErrCh), stderr) + wg.Wait() + if err := cmd.Wait(); err != nil { + // see if we have a better error to report + select { + case helperErr := <-helperErrCh: + // log the Wait error if it's not what we expected + if !isBoringMountOSXFUSEError(err) { + log.Printf("mount helper failed: %v", err) + } + // and now return what we grabbed from stderr as the real + // error + *errp = helperErr + close(ready) + return + default: + // nope, fall back to generic message + } + + *errp = fmt.Errorf("mount_osxfusefs: %v", err) + close(ready) + return + } + + *errp = nil + close(ready) + }() + return nil +} + +func mount(dir string, conf *mountConfig, ready chan<- struct{}, errp *error) (*os.File, error) { + locations := conf.osxfuseLocations + if locations == nil { + locations = []OSXFUSEPaths{ + OSXFUSELocationV3, + OSXFUSELocationV2, + } + } + for _, loc := range locations { + if _, err := os.Stat(loc.Mount); os.IsNotExist(err) { + // try the other locations + continue + } + + f, err := openOSXFUSEDev(loc.DevicePrefix) + if err == errNotLoaded { + err = loadOSXFUSE(loc.Load) + if err != nil { + return nil, err + } + // try again + f, err = openOSXFUSEDev(loc.DevicePrefix) + } + if err != nil { + return nil, err + } + err = callMount(loc.Mount, loc.DaemonVar, dir, conf, f, ready, errp) + if err != nil { + f.Close() + return nil, err + } + return f, nil + } + return nil, ErrOSXFUSENotFound +} diff --git a/vendor/bazil.org/fuse/mount_freebsd.go b/vendor/bazil.org/fuse/mount_freebsd.go new file mode 100644 index 00000000..70bb4102 --- /dev/null +++ b/vendor/bazil.org/fuse/mount_freebsd.go @@ -0,0 +1,111 @@ +package fuse + +import ( + "fmt" + "log" + "os" + "os/exec" + "strings" + "sync" + "syscall" +) + +func handleMountFusefsStderr(errCh chan<- error) func(line string) (ignore bool) { + return func(line string) (ignore bool) { + const ( + noMountpointPrefix = `mount_fusefs: ` + noMountpointSuffix = `: No such file or directory` + ) + if strings.HasPrefix(line, noMountpointPrefix) && strings.HasSuffix(line, noMountpointSuffix) { + // re-extract it from the error message in case some layer + // changed the path + mountpoint := line[len(noMountpointPrefix) : len(line)-len(noMountpointSuffix)] + err := &MountpointDoesNotExistError{ + Path: mountpoint, + } + select { + case errCh <- err: + return true + default: + // not the first error; fall back to logging it + return false + } + } + + return false + } +} + +// isBoringMountFusefsError returns whether the Wait error is +// uninteresting; exit status 1 is. +func isBoringMountFusefsError(err error) bool { + if err, ok := err.(*exec.ExitError); ok && err.Exited() { + if status, ok := err.Sys().(syscall.WaitStatus); ok && status.ExitStatus() == 1 { + return true + } + } + return false +} + +func mount(dir string, conf *mountConfig, ready chan<- struct{}, errp *error) (*os.File, error) { + for k, v := range conf.options { + if strings.Contains(k, ",") || strings.Contains(v, ",") { + // Silly limitation but the mount helper does not + // understand any escaping. See TestMountOptionCommaError. + return nil, fmt.Errorf("mount options cannot contain commas on FreeBSD: %q=%q", k, v) + } + } + + f, err := os.OpenFile("/dev/fuse", os.O_RDWR, 0000) + if err != nil { + *errp = err + return nil, err + } + + cmd := exec.Command( + "/sbin/mount_fusefs", + "--safe", + "-o", conf.getOptions(), + "3", + dir, + ) + cmd.ExtraFiles = []*os.File{f} + + stdout, err := cmd.StdoutPipe() + if err != nil { + return nil, fmt.Errorf("setting up mount_fusefs stderr: %v", err) + } + stderr, err := cmd.StderrPipe() + if err != nil { + return nil, fmt.Errorf("setting up mount_fusefs stderr: %v", err) + } + + if err := cmd.Start(); err != nil { + return nil, fmt.Errorf("mount_fusefs: %v", err) + } + helperErrCh := make(chan error, 1) + var wg sync.WaitGroup + wg.Add(2) + go lineLogger(&wg, "mount helper output", neverIgnoreLine, stdout) + go lineLogger(&wg, "mount helper error", handleMountFusefsStderr(helperErrCh), stderr) + wg.Wait() + if err := cmd.Wait(); err != nil { + // see if we have a better error to report + select { + case helperErr := <-helperErrCh: + // log the Wait error if it's not what we expected + if !isBoringMountFusefsError(err) { + log.Printf("mount helper failed: %v", err) + } + // and now return what we grabbed from stderr as the real + // error + return nil, helperErr + default: + // nope, fall back to generic message + } + return nil, fmt.Errorf("mount_fusefs: %v", err) + } + + close(ready) + return f, nil +} diff --git a/vendor/bazil.org/fuse/mount_linux.go b/vendor/bazil.org/fuse/mount_linux.go new file mode 100644 index 00000000..197d1044 --- /dev/null +++ b/vendor/bazil.org/fuse/mount_linux.go @@ -0,0 +1,150 @@ +package fuse + +import ( + "fmt" + "log" + "net" + "os" + "os/exec" + "strings" + "sync" + "syscall" +) + +func handleFusermountStderr(errCh chan<- error) func(line string) (ignore bool) { + return func(line string) (ignore bool) { + if line == `fusermount: failed to open /etc/fuse.conf: Permission denied` { + // Silence this particular message, it occurs way too + // commonly and isn't very relevant to whether the mount + // succeeds or not. + return true + } + + const ( + noMountpointPrefix = `fusermount: failed to access mountpoint ` + noMountpointSuffix = `: No such file or directory` + ) + if strings.HasPrefix(line, noMountpointPrefix) && strings.HasSuffix(line, noMountpointSuffix) { + // re-extract it from the error message in case some layer + // changed the path + mountpoint := line[len(noMountpointPrefix) : len(line)-len(noMountpointSuffix)] + err := &MountpointDoesNotExistError{ + Path: mountpoint, + } + select { + case errCh <- err: + return true + default: + // not the first error; fall back to logging it + return false + } + } + + return false + } +} + +// isBoringFusermountError returns whether the Wait error is +// uninteresting; exit status 1 is. +func isBoringFusermountError(err error) bool { + if err, ok := err.(*exec.ExitError); ok && err.Exited() { + if status, ok := err.Sys().(syscall.WaitStatus); ok && status.ExitStatus() == 1 { + return true + } + } + return false +} + +func mount(dir string, conf *mountConfig, ready chan<- struct{}, errp *error) (fusefd *os.File, err error) { + // linux mount is never delayed + close(ready) + + fds, err := syscall.Socketpair(syscall.AF_FILE, syscall.SOCK_STREAM, 0) + if err != nil { + return nil, fmt.Errorf("socketpair error: %v", err) + } + + writeFile := os.NewFile(uintptr(fds[0]), "fusermount-child-writes") + defer writeFile.Close() + + readFile := os.NewFile(uintptr(fds[1]), "fusermount-parent-reads") + defer readFile.Close() + + cmd := exec.Command( + "fusermount", + "-o", conf.getOptions(), + "--", + dir, + ) + cmd.Env = append(os.Environ(), "_FUSE_COMMFD=3") + + cmd.ExtraFiles = []*os.File{writeFile} + + var wg sync.WaitGroup + stdout, err := cmd.StdoutPipe() + if err != nil { + return nil, fmt.Errorf("setting up fusermount stderr: %v", err) + } + stderr, err := cmd.StderrPipe() + if err != nil { + return nil, fmt.Errorf("setting up fusermount stderr: %v", err) + } + + if err := cmd.Start(); err != nil { + return nil, fmt.Errorf("fusermount: %v", err) + } + helperErrCh := make(chan error, 1) + wg.Add(2) + go lineLogger(&wg, "mount helper output", neverIgnoreLine, stdout) + go lineLogger(&wg, "mount helper error", handleFusermountStderr(helperErrCh), stderr) + wg.Wait() + if err := cmd.Wait(); err != nil { + // see if we have a better error to report + select { + case helperErr := <-helperErrCh: + // log the Wait error if it's not what we expected + if !isBoringFusermountError(err) { + log.Printf("mount helper failed: %v", err) + } + // and now return what we grabbed from stderr as the real + // error + return nil, helperErr + default: + // nope, fall back to generic message + } + + return nil, fmt.Errorf("fusermount: %v", err) + } + + c, err := net.FileConn(readFile) + if err != nil { + return nil, fmt.Errorf("FileConn from fusermount socket: %v", err) + } + defer c.Close() + + uc, ok := c.(*net.UnixConn) + if !ok { + return nil, fmt.Errorf("unexpected FileConn type; expected UnixConn, got %T", c) + } + + buf := make([]byte, 32) // expect 1 byte + oob := make([]byte, 32) // expect 24 bytes + _, oobn, _, _, err := uc.ReadMsgUnix(buf, oob) + scms, err := syscall.ParseSocketControlMessage(oob[:oobn]) + if err != nil { + return nil, fmt.Errorf("ParseSocketControlMessage: %v", err) + } + if len(scms) != 1 { + return nil, fmt.Errorf("expected 1 SocketControlMessage; got scms = %#v", scms) + } + scm := scms[0] + gotFds, err := syscall.ParseUnixRights(&scm) + if err != nil { + return nil, fmt.Errorf("syscall.ParseUnixRights: %v", err) + } + if len(gotFds) != 1 { + return nil, fmt.Errorf("wanted 1 fd; got %#v", gotFds) + } + f := os.NewFile(uintptr(gotFds[0]), "/dev/fuse") + return f, nil +} diff --git a/vendor/bazil.org/fuse/options.go b/vendor/bazil.org/fuse/options.go new file mode 100644 index 00000000..65ce8a54 --- /dev/null +++ b/vendor/bazil.org/fuse/options.go @@ -0,0 +1,310 @@ +package fuse + +import ( + "errors" + "strings" +) + +func dummyOption(conf *mountConfig) error { + return nil +} + +// mountConfig holds the configuration for a mount operation. +// Use it by passing MountOption values to Mount. +type mountConfig struct { + options map[string]string + maxReadahead uint32 + initFlags InitFlags + osxfuseLocations []OSXFUSEPaths +} + +func escapeComma(s string) string { + s = strings.Replace(s, `\`, `\\`, -1) + s = strings.Replace(s, `,`, `\,`, -1) + return s +} + +// getOptions makes a string of options suitable for passing to FUSE +// mount flag `-o`. Returns an empty string if no options were set. +// Any platform specific adjustments should happen before the call. +func (m *mountConfig) getOptions() string { + var opts []string + for k, v := range m.options { + k = escapeComma(k) + if v != "" { + k += "=" + escapeComma(v) + } + opts = append(opts, k) + } + return strings.Join(opts, ",") +} + +type mountOption func(*mountConfig) error + +// MountOption is passed to Mount to change the behavior of the mount. +type MountOption mountOption + +// FSName sets the file system name (also called source) that is +// visible in the list of mounted file systems. +// +// FreeBSD ignores this option. +func FSName(name string) MountOption { + return func(conf *mountConfig) error { + conf.options["fsname"] = name + return nil + } +} + +// Subtype sets the subtype of the mount. The main type is always +// `fuse`. The type in a list of mounted file systems will look like +// `fuse.foo`. +// +// OS X ignores this option. +// FreeBSD ignores this option. +func Subtype(fstype string) MountOption { + return func(conf *mountConfig) error { + conf.options["subtype"] = fstype + return nil + } +} + +// LocalVolume sets the volume to be local (instead of network), +// changing the behavior of Finder, Spotlight, and such. +// +// OS X only. Others ignore this option. +func LocalVolume() MountOption { + return localVolume +} + +// VolumeName sets the volume name shown in Finder. +// +// OS X only. Others ignore this option. +func VolumeName(name string) MountOption { + return volumeName(name) +} + +// NoAppleDouble makes OSXFUSE disallow files with names used by OS X +// to store extended attributes on file systems that do not support +// them natively. +// +// Such file names are: +// +// ._* +// .DS_Store +// +// OS X only. Others ignore this option. +func NoAppleDouble() MountOption { + return noAppleDouble +} + +// NoAppleXattr makes OSXFUSE disallow extended attributes with the +// prefix "com.apple.". This disables persistent Finder state and +// other such information. +// +// OS X only. Others ignore this option. +func NoAppleXattr() MountOption { + return noAppleXattr +} + +// ExclCreate causes O_EXCL flag to be set for only "truly" exclusive creates, +// i.e. create calls for which the initiator explicitly set the O_EXCL flag. +// +// OSXFUSE expects all create calls to return EEXIST in case the file +// already exists, regardless of whether O_EXCL was specified or not. +// To ensure this behavior, it normally sets OpenExclusive for all +// Create calls, regardless of whether the original call had it set. +// For distributed filesystems, that may force every file create to be +// a distributed consensus action, causing undesirable delays. +// +// This option makes the FUSE filesystem see the original flag value, +// and better decide when to ensure global consensus. +// +// Note that returning EEXIST on existing file create is still +// expected with OSXFUSE, regardless of the presence of the +// OpenExclusive flag. +// +// For more information, see +// https://github.com/osxfuse/osxfuse/issues/209 +// +// OS X only. Others ignore this options. +// Requires OSXFUSE 3.4.1 or newer. +func ExclCreate() MountOption { + return exclCreate +} + +// DaemonTimeout sets the time in seconds between a request and a reply before +// the FUSE mount is declared dead. +// +// OS X and FreeBSD only. Others ignore this option. +func DaemonTimeout(name string) MountOption { + return daemonTimeout(name) +} + +var ErrCannotCombineAllowOtherAndAllowRoot = errors.New("cannot combine AllowOther and AllowRoot") + +// AllowOther allows other users to access the file system. +// +// Only one of AllowOther or AllowRoot can be used. +func AllowOther() MountOption { + return func(conf *mountConfig) error { + if _, ok := conf.options["allow_root"]; ok { + return ErrCannotCombineAllowOtherAndAllowRoot + } + conf.options["allow_other"] = "" + return nil + } +} + +// AllowRoot allows other users to access the file system. +// +// Only one of AllowOther or AllowRoot can be used. +// +// FreeBSD ignores this option. +func AllowRoot() MountOption { + return func(conf *mountConfig) error { + if _, ok := conf.options["allow_other"]; ok { + return ErrCannotCombineAllowOtherAndAllowRoot + } + conf.options["allow_root"] = "" + return nil + } +} + +// AllowDev enables interpreting character or block special devices on the +// filesystem. +func AllowDev() MountOption { + return func(conf *mountConfig) error { + conf.options["dev"] = "" + return nil + } +} + +// AllowSUID allows set-user-identifier or set-group-identifier bits to take +// effect. +func AllowSUID() MountOption { + return func(conf *mountConfig) error { + conf.options["suid"] = "" + return nil + } +} + +// DefaultPermissions makes the kernel enforce access control based on +// the file mode (as in chmod). +// +// Without this option, the Node itself decides what is and is not +// allowed. This is normally ok because FUSE file systems cannot be +// accessed by other users without AllowOther/AllowRoot. +// +// FreeBSD ignores this option. +func DefaultPermissions() MountOption { + return func(conf *mountConfig) error { + conf.options["default_permissions"] = "" + return nil + } +} + +// ReadOnly makes the mount read-only. +func ReadOnly() MountOption { + return func(conf *mountConfig) error { + conf.options["ro"] = "" + return nil + } +} + +// MaxReadahead sets the number of bytes that can be prefetched for +// sequential reads. The kernel can enforce a maximum value lower than +// this. +// +// This setting makes the kernel perform speculative reads that do not +// originate from any client process. This usually tremendously +// improves read performance. +func MaxReadahead(n uint32) MountOption { + return func(conf *mountConfig) error { + conf.maxReadahead = n + return nil + } +} + +// AsyncRead enables multiple outstanding read requests for the same +// handle. Without this, there is at most one request in flight at a +// time. +func AsyncRead() MountOption { + return func(conf *mountConfig) error { + conf.initFlags |= InitAsyncRead + return nil + } +} + +// WritebackCache enables the kernel to buffer writes before sending +// them to the FUSE server. Without this, writethrough caching is +// used. +func WritebackCache() MountOption { + return func(conf *mountConfig) error { + conf.initFlags |= InitWritebackCache + return nil + } +} + +// OSXFUSEPaths describes the paths used by an installed OSXFUSE +// version. See OSXFUSELocationV3 for typical values. +type OSXFUSEPaths struct { + // Prefix for the device file. At mount time, an incrementing + // number is suffixed until a free FUSE device is found. + DevicePrefix string + // Path of the load helper, used to load the kernel extension if + // no device files are found. + Load string + // Path of the mount helper, used for the actual mount operation. + Mount string + // Environment variable used to pass the path to the executable + // calling the mount helper. + DaemonVar string +} + +// Default paths for OSXFUSE. See OSXFUSELocations. +var ( + OSXFUSELocationV3 = OSXFUSEPaths{ + DevicePrefix: "/dev/osxfuse", + Load: "/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse", + Mount: "/Library/Filesystems/osxfuse.fs/Contents/Resources/mount_osxfuse", + DaemonVar: "MOUNT_OSXFUSE_DAEMON_PATH", + } + OSXFUSELocationV2 = OSXFUSEPaths{ + DevicePrefix: "/dev/osxfuse", + Load: "/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs", + Mount: "/Library/Filesystems/osxfusefs.fs/Support/mount_osxfusefs", + DaemonVar: "MOUNT_FUSEFS_DAEMON_PATH", + } +) + +// OSXFUSELocations sets where to look for OSXFUSE files. The +// arguments are all the possible locations. The previous locations +// are replaced. +// +// Without this option, OSXFUSELocationV3 and OSXFUSELocationV2 are +// used. +// +// OS X only. Others ignore this option. +func OSXFUSELocations(paths ...OSXFUSEPaths) MountOption { + return func(conf *mountConfig) error { + if len(paths) == 0 { + return errors.New("must specify at least one location for OSXFUSELocations") + } + // replace previous values, but make a copy so there's no + // worries about caller mutating their slice + conf.osxfuseLocations = append(conf.osxfuseLocations[:0], paths...) + return nil + } +} + +// AllowNonEmptyMount allows the mounting over a non-empty directory. +// +// The files in it will be shadowed by the freshly created mount. By +// default these mounts are rejected to prevent accidental covering up +// of data, which could for example prevent automatic backup. +func AllowNonEmptyMount() MountOption { + return func(conf *mountConfig) error { + conf.options["nonempty"] = "" + return nil + } +} diff --git a/vendor/bazil.org/fuse/options_darwin.go b/vendor/bazil.org/fuse/options_darwin.go new file mode 100644 index 00000000..faa9d78e --- /dev/null +++ b/vendor/bazil.org/fuse/options_darwin.go @@ -0,0 +1,35 @@ +package fuse + +func localVolume(conf *mountConfig) error { + conf.options["local"] = "" + return nil +} + +func volumeName(name string) MountOption { + return func(conf *mountConfig) error { + conf.options["volname"] = name + return nil + } +} + +func daemonTimeout(name string) MountOption { + return func(conf *mountConfig) error { + conf.options["daemon_timeout"] = name + return nil + } +} + +func noAppleXattr(conf *mountConfig) error { + conf.options["noapplexattr"] = "" + return nil +} + +func noAppleDouble(conf *mountConfig) error { + conf.options["noappledouble"] = "" + return nil +} + +func exclCreate(conf *mountConfig) error { + conf.options["excl_create"] = "" + return nil +} diff --git a/vendor/bazil.org/fuse/options_freebsd.go b/vendor/bazil.org/fuse/options_freebsd.go new file mode 100644 index 00000000..7c164b13 --- /dev/null +++ b/vendor/bazil.org/fuse/options_freebsd.go @@ -0,0 +1,28 @@ +package fuse + +func localVolume(conf *mountConfig) error { + return nil +} + +func volumeName(name string) MountOption { + return dummyOption +} + +func daemonTimeout(name string) MountOption { + return func(conf *mountConfig) error { + conf.options["timeout"] = name + return nil + } +} + +func noAppleXattr(conf *mountConfig) error { + return nil +} + +func noAppleDouble(conf *mountConfig) error { + return nil +} + +func exclCreate(conf *mountConfig) error { + return nil +} diff --git a/vendor/bazil.org/fuse/options_linux.go b/vendor/bazil.org/fuse/options_linux.go new file mode 100644 index 00000000..13f0896d --- /dev/null +++ b/vendor/bazil.org/fuse/options_linux.go @@ -0,0 +1,25 @@ +package fuse + +func localVolume(conf *mountConfig) error { + return nil +} + +func volumeName(name string) MountOption { + return dummyOption +} + +func daemonTimeout(name string) MountOption { + return dummyOption +} + +func noAppleXattr(conf *mountConfig) error { + return nil +} + +func noAppleDouble(conf *mountConfig) error { + return nil +} + +func exclCreate(conf *mountConfig) error { + return nil +} diff --git a/vendor/bazil.org/fuse/protocol.go b/vendor/bazil.org/fuse/protocol.go new file mode 100644 index 00000000..a77bbf72 --- /dev/null +++ b/vendor/bazil.org/fuse/protocol.go @@ -0,0 +1,75 @@ +package fuse + +import ( + "fmt" +) + +// Protocol is a FUSE protocol version number. +type Protocol struct { + Major uint32 + Minor uint32 +} + +func (p Protocol) String() string { + return fmt.Sprintf("%d.%d", p.Major, p.Minor) +} + +// LT returns whether a is less than b. +func (a Protocol) LT(b Protocol) bool { + return a.Major < b.Major || + (a.Major == b.Major && a.Minor < b.Minor) +} + +// GE returns whether a is greater than or equal to b. +func (a Protocol) GE(b Protocol) bool { + return a.Major > b.Major || + (a.Major == b.Major && a.Minor >= b.Minor) +} + +func (a Protocol) is79() bool { + return a.GE(Protocol{7, 9}) +} + +// HasAttrBlockSize returns whether Attr.BlockSize is respected by the +// kernel. +func (a Protocol) HasAttrBlockSize() bool { + return a.is79() +} + +// HasReadWriteFlags returns whether ReadRequest/WriteRequest +// fields Flags and FileFlags are valid. +func (a Protocol) HasReadWriteFlags() bool { + return a.is79() +} + +// HasGetattrFlags returns whether GetattrRequest field Flags is +// valid. +func (a Protocol) HasGetattrFlags() bool { + return a.is79() +} + +func (a Protocol) is710() bool { + return a.GE(Protocol{7, 10}) +} + +// HasOpenNonSeekable returns whether OpenResponse field Flags flag +// OpenNonSeekable is supported. +func (a Protocol) HasOpenNonSeekable() bool { + return a.is710() +} + +func (a Protocol) is712() bool { + return a.GE(Protocol{7, 12}) +} + +// HasUmask returns whether CreateRequest/MkdirRequest/MknodRequest +// field Umask is valid. +func (a Protocol) HasUmask() bool { + return a.is712() +} + +// HasInvalidate returns whether InvalidateNode/InvalidateEntry are +// supported. +func (a Protocol) HasInvalidate() bool { + return a.is712() +} diff --git a/vendor/bazil.org/fuse/unmount.go b/vendor/bazil.org/fuse/unmount.go new file mode 100644 index 00000000..ffe3f155 --- /dev/null +++ b/vendor/bazil.org/fuse/unmount.go @@ -0,0 +1,6 @@ +package fuse + +// Unmount tries to unmount the filesystem mounted at dir. +func Unmount(dir string) error { + return unmount(dir) +} diff --git a/vendor/bazil.org/fuse/unmount_linux.go b/vendor/bazil.org/fuse/unmount_linux.go new file mode 100644 index 00000000..088f0cfe --- /dev/null +++ b/vendor/bazil.org/fuse/unmount_linux.go @@ -0,0 +1,21 @@ +package fuse + +import ( + "bytes" + "errors" + "os/exec" +) + +func unmount(dir string) error { + cmd := exec.Command("fusermount", "-u", dir) + output, err := cmd.CombinedOutput() + if err != nil { + if len(output) > 0 { + output = bytes.TrimRight(output, "\n") + msg := err.Error() + ": " + string(output) + err = errors.New(msg) + } + return err + } + return nil +} diff --git a/vendor/bazil.org/fuse/unmount_std.go b/vendor/bazil.org/fuse/unmount_std.go new file mode 100644 index 00000000..d6efe276 --- /dev/null +++ b/vendor/bazil.org/fuse/unmount_std.go @@ -0,0 +1,17 @@ +// +build !linux + +package fuse + +import ( + "os" + "syscall" +) + +func unmount(dir string) error { + err := syscall.Unmount(dir, 0) + if err != nil { + err = &os.PathError{Op: "unmount", Path: dir, Err: err} + return err + } + return nil +} diff --git a/vendor/github.com/Stebalien/go-bitfield/LICENSE b/vendor/github.com/Stebalien/go-bitfield/LICENSE new file mode 100644 index 00000000..a55967e0 --- /dev/null +++ b/vendor/github.com/Stebalien/go-bitfield/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Steven Allen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/Stebalien/go-bitfield/README.md b/vendor/github.com/Stebalien/go-bitfield/README.md new file mode 100644 index 00000000..ea3037cb --- /dev/null +++ b/vendor/github.com/Stebalien/go-bitfield/README.md @@ -0,0 +1,5 @@ +# go-bitfield + +This is a simple bitfield package that's about 2-3x faster than using `big.Int`s +from the standard library. It also has a better interface (and, e.g., supports +counting ones). diff --git a/vendor/github.com/Stebalien/go-bitfield/bitfield.go b/vendor/github.com/Stebalien/go-bitfield/bitfield.go new file mode 100644 index 00000000..d6f12b06 --- /dev/null +++ b/vendor/github.com/Stebalien/go-bitfield/bitfield.go @@ -0,0 +1,114 @@ +package bitfield + +// NOTE: Don't bother replacing the divisions/modulo with shifts/ands, go is smart. + +import ( + "math/bits" +) + +// NewBitfield creates a new fixed-sized Bitfield (allocated up-front). +// +// Panics if size is not a multiple of 8. +func NewBitfield(size int) Bitfield { + if size%8 != 0 { + panic("Bitfield size must be a multiple of 8") + } + return make([]byte, size/8) +} + +// FromBytes constructs a new bitfield from a serialized bitfield. +func FromBytes(size int, bits []byte) Bitfield { + bf := NewBitfield(size) + start := len(bf) - len(bits) + if start < 0 { + panic("bitfield too small") + } + copy(bf[start:], bits) + return bf +} + +func (bf Bitfield) offset(i int) (uint, uint8) { + return uint(len(bf)) - (uint(i) / 8) - 1, uint8(i) % 8 +} + +// Bitfield is, well, a bitfield. +type Bitfield []byte + +// Bytes returns the Bitfield as a byte string. +// +// This function *does not* copy. +func (bf Bitfield) Bytes() []byte { + for i, b := range bf { + if b != 0 { + return bf[i:] + } + } + return nil +} + +// Bit returns the ith bit. +// +// Panics if the bit is out of bounds. +func (bf Bitfield) Bit(i int) bool { + idx, off := bf.offset(i) + return (bf[idx]>>off)&0x1 != 0 +} + +// SetBit sets the ith bit. +// +// Panics if the bit is out of bounds. +func (bf Bitfield) SetBit(i int) { + idx, off := bf.offset(i) + bf[idx] |= 1 << off +} + +// UnsetBit unsets the ith bit. +// +// Panics if the bit is out of bounds. +func (bf Bitfield) UnsetBit(i int) { + idx, off := bf.offset(i) + bf[idx] &= 0xFF ^ (1 << off) +} + +// SetBytes sets the bits to the given byte array. +// +// Panics if 'b' is larger than the bitfield. +func (bf Bitfield) SetBytes(b []byte) { + start := len(bf) - len(b) + if start < 0 { + panic("bitfield too small") + } + for i := range bf[:start] { + bf[i] = 0 + } + copy(bf[start:], b) +} + +// Ones returns the number of bits set. +func (bf Bitfield) Ones() int { + cnt := 0 + for _, b := range bf { + cnt += bits.OnesCount8(b) + } + return cnt +} + +// OnesBefore returns the number of bits set *before* this bit. +func (bf Bitfield) OnesBefore(i int) int { + idx, off := bf.offset(i) + cnt := bits.OnesCount8(bf[idx] << (8 - off)) + for _, b := range bf[idx+1:] { + cnt += bits.OnesCount8(b) + } + return cnt +} + +// OnesAfter returns the number of bits set *after* this bit. +func (bf Bitfield) OnesAfter(i int) int { + idx, off := bf.offset(i) + cnt := bits.OnesCount8(bf[idx] >> off) + for _, b := range bf[:idx] { + cnt += bits.OnesCount8(b) + } + return cnt +} diff --git a/vendor/github.com/Stebalien/go-bitfield/package.json b/vendor/github.com/Stebalien/go-bitfield/package.json new file mode 100644 index 00000000..a8045cb2 --- /dev/null +++ b/vendor/github.com/Stebalien/go-bitfield/package.json @@ -0,0 +1,16 @@ +{ + "author": "Stebalien", + "bugs": { + "url": "https://github.com/Stebalien/go-bitfield" + }, + "gx": { + "dvcsimport": "github.com/Stebalien/go-bitfield" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-bitfield", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.3" +} + diff --git a/vendor/github.com/bren2010/proquint/LICENSE.md b/vendor/github.com/bren2010/proquint/LICENSE.md new file mode 100644 index 00000000..e5d49487 --- /dev/null +++ b/vendor/github.com/bren2010/proquint/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (c) 2014 Brendan McMillion + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/bren2010/proquint/README.md b/vendor/github.com/bren2010/proquint/README.md new file mode 100644 index 00000000..13e7b0b5 --- /dev/null +++ b/vendor/github.com/bren2010/proquint/README.md @@ -0,0 +1,6 @@ +Proquint +------- + +Golang implementation of [Proquint Pronounceable Identifiers](https://github.com/deoxxa/proquint). + + diff --git a/vendor/github.com/bren2010/proquint/proquint.go b/vendor/github.com/bren2010/proquint/proquint.go new file mode 100644 index 00000000..60e1cf98 --- /dev/null +++ b/vendor/github.com/bren2010/proquint/proquint.go @@ -0,0 +1,123 @@ +/* +Copyright (c) 2014 Brendan McMillion + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +package proquint + +import ( + "bytes" + "strings" + "regexp" +) + +var ( + conse = [...]byte{'b', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', + 'p', 'r', 's', 't', 'v', 'z'} + vowse = [...]byte{'a', 'i', 'o', 'u'} + + consd = map[byte] uint16 { + 'b' : 0, 'd' : 1, 'f' : 2, 'g' : 3, + 'h' : 4, 'j' : 5, 'k' : 6, 'l' : 7, + 'm' : 8, 'n' : 9, 'p' : 10, 'r' : 11, + 's' : 12, 't' : 13, 'v' : 14, 'z' : 15, + } + + vowsd = map[byte] uint16 { + 'a' : 0, 'i' : 1, 'o' : 2, 'u' : 3, + } +) + +/** +* Tests if a given string is a Proquint identifier +* +* @param {string} str The candidate string. +* +* @return {bool} Whether or not it qualifies. +* @return {error} Error +*/ +func IsProquint(str string) (bool, error) { + exp := "^([abdfghijklmnoprstuvz]{5}-)*[abdfghijklmnoprstuvz]{5}$" + ok, err := regexp.MatchString(exp, str) + + return ok, err +} + +/** +* Encodes an arbitrary byte slice into an identifier. +* +* @param {[]byte} buf Slice of bytes to encode. +* +* @return {string} The given byte slice as an identifier. +*/ +func Encode(buf []byte) string { + var out bytes.Buffer + + for i := 0; i < len(buf); i = i + 2 { + var n uint16 = (uint16(buf[i]) * 256) + uint16(buf[i + 1]) + + var ( + c1 = n & 0x0f + v1 = (n >> 4) & 0x03 + c2 = (n >> 6) & 0x0f + v2 = (n >> 10) & 0x03 + c3 = (n >> 12) & 0x0f + ) + + out.WriteByte(conse[c1]) + out.WriteByte(vowse[v1]) + out.WriteByte(conse[c2]) + out.WriteByte(vowse[v2]) + out.WriteByte(conse[c3]) + + if (i + 2) < len(buf) { + out.WriteByte('-') + } + } + + return out.String() +} + +/** +* Decodes an identifier into its corresponding byte slice. +* +* @param {string} str Identifier to convert. +* +* @return {[]byte} The identifier as a byte slice. +*/ +func Decode(str string) []byte { + var ( + out bytes.Buffer + bits []string = strings.Split(str, "-") + ) + + for i := 0; i < len(bits); i++ { + var x uint16 = consd[bits[i][0]] + + (vowsd[bits[i][1]] << 4) + + (consd[bits[i][2]] << 6) + + (vowsd[bits[i][3]] << 10) + + (consd[bits[i][4]] << 12) + + out.WriteByte(byte(x >> 8)) + out.WriteByte(byte(x)) + } + + return out.Bytes() +} diff --git a/vendor/github.com/davecgh/go-spew/.gitignore b/vendor/github.com/cenkalti/backoff/.gitignore similarity index 100% rename from vendor/github.com/davecgh/go-spew/.gitignore rename to vendor/github.com/cenkalti/backoff/.gitignore diff --git a/vendor/github.com/cenkalti/backoff/.travis.yml b/vendor/github.com/cenkalti/backoff/.travis.yml new file mode 100644 index 00000000..47a6a46e --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/.travis.yml @@ -0,0 +1,10 @@ +language: go +go: + - 1.7 + - 1.x + - tip +before_install: + - go get github.com/mattn/goveralls + - go get golang.org/x/tools/cmd/cover +script: + - $HOME/gopath/bin/goveralls -service=travis-ci diff --git a/vendor/github.com/cenkalti/backoff/LICENSE b/vendor/github.com/cenkalti/backoff/LICENSE new file mode 100644 index 00000000..89b81799 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Cenk Altı + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/cenkalti/backoff/README.md b/vendor/github.com/cenkalti/backoff/README.md new file mode 100644 index 00000000..55ebc98f --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/README.md @@ -0,0 +1,30 @@ +# Exponential Backoff [![GoDoc][godoc image]][godoc] [![Build Status][travis image]][travis] [![Coverage Status][coveralls image]][coveralls] + +This is a Go port of the exponential backoff algorithm from [Google's HTTP Client Library for Java][google-http-java-client]. + +[Exponential backoff][exponential backoff wiki] +is an algorithm that uses feedback to multiplicatively decrease the rate of some process, +in order to gradually find an acceptable rate. +The retries exponentially increase and stop increasing when a certain threshold is met. + +## Usage + +See https://godoc.org/github.com/cenkalti/backoff#pkg-examples + +## Contributing + +* I would like to keep this library as small as possible. +* Please don't send a PR without opening an issue and discussing it first. +* If proposed change is not a common use case, I will probably not accept it. + +[godoc]: https://godoc.org/github.com/cenkalti/backoff +[godoc image]: https://godoc.org/github.com/cenkalti/backoff?status.png +[travis]: https://travis-ci.org/cenkalti/backoff +[travis image]: https://travis-ci.org/cenkalti/backoff.png?branch=master +[coveralls]: https://coveralls.io/github/cenkalti/backoff?branch=master +[coveralls image]: https://coveralls.io/repos/github/cenkalti/backoff/badge.svg?branch=master + +[google-http-java-client]: https://github.com/google/google-http-java-client/blob/da1aa993e90285ec18579f1553339b00e19b3ab5/google-http-client/src/main/java/com/google/api/client/util/ExponentialBackOff.java +[exponential backoff wiki]: http://en.wikipedia.org/wiki/Exponential_backoff + +[advanced example]: https://godoc.org/github.com/cenkalti/backoff#example_ diff --git a/vendor/github.com/cenkalti/backoff/backoff.go b/vendor/github.com/cenkalti/backoff/backoff.go new file mode 100644 index 00000000..3676ee40 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/backoff.go @@ -0,0 +1,66 @@ +// Package backoff implements backoff algorithms for retrying operations. +// +// Use Retry function for retrying operations that may fail. +// If Retry does not meet your needs, +// copy/paste the function into your project and modify as you wish. +// +// There is also Ticker type similar to time.Ticker. +// You can use it if you need to work with channels. +// +// See Examples section below for usage examples. +package backoff + +import "time" + +// BackOff is a backoff policy for retrying an operation. +type BackOff interface { + // NextBackOff returns the duration to wait before retrying the operation, + // or backoff. Stop to indicate that no more retries should be made. + // + // Example usage: + // + // duration := backoff.NextBackOff(); + // if (duration == backoff.Stop) { + // // Do not retry operation. + // } else { + // // Sleep for duration and retry operation. + // } + // + NextBackOff() time.Duration + + // Reset to initial state. + Reset() +} + +// Stop indicates that no more retries should be made for use in NextBackOff(). +const Stop time.Duration = -1 + +// ZeroBackOff is a fixed backoff policy whose backoff time is always zero, +// meaning that the operation is retried immediately without waiting, indefinitely. +type ZeroBackOff struct{} + +func (b *ZeroBackOff) Reset() {} + +func (b *ZeroBackOff) NextBackOff() time.Duration { return 0 } + +// StopBackOff is a fixed backoff policy that always returns backoff.Stop for +// NextBackOff(), meaning that the operation should never be retried. +type StopBackOff struct{} + +func (b *StopBackOff) Reset() {} + +func (b *StopBackOff) NextBackOff() time.Duration { return Stop } + +// ConstantBackOff is a backoff policy that always returns the same backoff delay. +// This is in contrast to an exponential backoff policy, +// which returns a delay that grows longer as you call NextBackOff() over and over again. +type ConstantBackOff struct { + Interval time.Duration +} + +func (b *ConstantBackOff) Reset() {} +func (b *ConstantBackOff) NextBackOff() time.Duration { return b.Interval } + +func NewConstantBackOff(d time.Duration) *ConstantBackOff { + return &ConstantBackOff{Interval: d} +} diff --git a/vendor/github.com/cenkalti/backoff/context.go b/vendor/github.com/cenkalti/backoff/context.go new file mode 100644 index 00000000..7706faa2 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/context.go @@ -0,0 +1,63 @@ +package backoff + +import ( + "context" + "time" +) + +// BackOffContext is a backoff policy that stops retrying after the context +// is canceled. +type BackOffContext interface { + BackOff + Context() context.Context +} + +type backOffContext struct { + BackOff + ctx context.Context +} + +// WithContext returns a BackOffContext with context ctx +// +// ctx must not be nil +func WithContext(b BackOff, ctx context.Context) BackOffContext { + if ctx == nil { + panic("nil context") + } + + if b, ok := b.(*backOffContext); ok { + return &backOffContext{ + BackOff: b.BackOff, + ctx: ctx, + } + } + + return &backOffContext{ + BackOff: b, + ctx: ctx, + } +} + +func ensureContext(b BackOff) BackOffContext { + if cb, ok := b.(BackOffContext); ok { + return cb + } + return WithContext(b, context.Background()) +} + +func (b *backOffContext) Context() context.Context { + return b.ctx +} + +func (b *backOffContext) NextBackOff() time.Duration { + select { + case <-b.ctx.Done(): + return Stop + default: + } + next := b.BackOff.NextBackOff() + if deadline, ok := b.ctx.Deadline(); ok && deadline.Sub(time.Now()) < next { + return Stop + } + return next +} diff --git a/vendor/github.com/cenkalti/backoff/exponential.go b/vendor/github.com/cenkalti/backoff/exponential.go new file mode 100644 index 00000000..a031a659 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/exponential.go @@ -0,0 +1,153 @@ +package backoff + +import ( + "math/rand" + "time" +) + +/* +ExponentialBackOff is a backoff implementation that increases the backoff +period for each retry attempt using a randomization function that grows exponentially. + +NextBackOff() is calculated using the following formula: + + randomized interval = + RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor]) + +In other words NextBackOff() will range between the randomization factor +percentage below and above the retry interval. + +For example, given the following parameters: + + RetryInterval = 2 + RandomizationFactor = 0.5 + Multiplier = 2 + +the actual backoff period used in the next retry attempt will range between 1 and 3 seconds, +multiplied by the exponential, that is, between 2 and 6 seconds. + +Note: MaxInterval caps the RetryInterval and not the randomized interval. + +If the time elapsed since an ExponentialBackOff instance is created goes past the +MaxElapsedTime, then the method NextBackOff() starts returning backoff.Stop. + +The elapsed time can be reset by calling Reset(). + +Example: Given the following default arguments, for 10 tries the sequence will be, +and assuming we go over the MaxElapsedTime on the 10th try: + + Request # RetryInterval (seconds) Randomized Interval (seconds) + + 1 0.5 [0.25, 0.75] + 2 0.75 [0.375, 1.125] + 3 1.125 [0.562, 1.687] + 4 1.687 [0.8435, 2.53] + 5 2.53 [1.265, 3.795] + 6 3.795 [1.897, 5.692] + 7 5.692 [2.846, 8.538] + 8 8.538 [4.269, 12.807] + 9 12.807 [6.403, 19.210] + 10 19.210 backoff.Stop + +Note: Implementation is not thread-safe. +*/ +type ExponentialBackOff struct { + InitialInterval time.Duration + RandomizationFactor float64 + Multiplier float64 + MaxInterval time.Duration + // After MaxElapsedTime the ExponentialBackOff stops. + // It never stops if MaxElapsedTime == 0. + MaxElapsedTime time.Duration + Clock Clock + + currentInterval time.Duration + startTime time.Time +} + +// Clock is an interface that returns current time for BackOff. +type Clock interface { + Now() time.Time +} + +// Default values for ExponentialBackOff. +const ( + DefaultInitialInterval = 500 * time.Millisecond + DefaultRandomizationFactor = 0.5 + DefaultMultiplier = 1.5 + DefaultMaxInterval = 60 * time.Second + DefaultMaxElapsedTime = 15 * time.Minute +) + +// NewExponentialBackOff creates an instance of ExponentialBackOff using default values. +func NewExponentialBackOff() *ExponentialBackOff { + b := &ExponentialBackOff{ + InitialInterval: DefaultInitialInterval, + RandomizationFactor: DefaultRandomizationFactor, + Multiplier: DefaultMultiplier, + MaxInterval: DefaultMaxInterval, + MaxElapsedTime: DefaultMaxElapsedTime, + Clock: SystemClock, + } + b.Reset() + return b +} + +type systemClock struct{} + +func (t systemClock) Now() time.Time { + return time.Now() +} + +// SystemClock implements Clock interface that uses time.Now(). +var SystemClock = systemClock{} + +// Reset the interval back to the initial retry interval and restarts the timer. +func (b *ExponentialBackOff) Reset() { + b.currentInterval = b.InitialInterval + b.startTime = b.Clock.Now() +} + +// NextBackOff calculates the next backoff interval using the formula: +// Randomized interval = RetryInterval +/- (RandomizationFactor * RetryInterval) +func (b *ExponentialBackOff) NextBackOff() time.Duration { + // Make sure we have not gone over the maximum elapsed time. + if b.MaxElapsedTime != 0 && b.GetElapsedTime() > b.MaxElapsedTime { + return Stop + } + defer b.incrementCurrentInterval() + return getRandomValueFromInterval(b.RandomizationFactor, rand.Float64(), b.currentInterval) +} + +// GetElapsedTime returns the elapsed time since an ExponentialBackOff instance +// is created and is reset when Reset() is called. +// +// The elapsed time is computed using time.Now().UnixNano(). It is +// safe to call even while the backoff policy is used by a running +// ticker. +func (b *ExponentialBackOff) GetElapsedTime() time.Duration { + return b.Clock.Now().Sub(b.startTime) +} + +// Increments the current interval by multiplying it with the multiplier. +func (b *ExponentialBackOff) incrementCurrentInterval() { + // Check for overflow, if overflow is detected set the current interval to the max interval. + if float64(b.currentInterval) >= float64(b.MaxInterval)/b.Multiplier { + b.currentInterval = b.MaxInterval + } else { + b.currentInterval = time.Duration(float64(b.currentInterval) * b.Multiplier) + } +} + +// Returns a random value from the following interval: +// [randomizationFactor * currentInterval, randomizationFactor * currentInterval]. +func getRandomValueFromInterval(randomizationFactor, random float64, currentInterval time.Duration) time.Duration { + var delta = randomizationFactor * float64(currentInterval) + var minInterval = float64(currentInterval) - delta + var maxInterval = float64(currentInterval) + delta + + // Get a random value from the range [minInterval, maxInterval]. + // The formula used below has a +1 because if the minInterval is 1 and the maxInterval is 3 then + // we want a 33% chance for selecting either 1, 2 or 3. + return time.Duration(minInterval + (random * (maxInterval - minInterval + 1))) +} diff --git a/vendor/github.com/cenkalti/backoff/retry.go b/vendor/github.com/cenkalti/backoff/retry.go new file mode 100644 index 00000000..e936a506 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/retry.go @@ -0,0 +1,82 @@ +package backoff + +import "time" + +// An Operation is executing by Retry() or RetryNotify(). +// The operation will be retried using a backoff policy if it returns an error. +type Operation func() error + +// Notify is a notify-on-error function. It receives an operation error and +// backoff delay if the operation failed (with an error). +// +// NOTE that if the backoff policy stated to stop retrying, +// the notify function isn't called. +type Notify func(error, time.Duration) + +// Retry the operation o until it does not return error or BackOff stops. +// o is guaranteed to be run at least once. +// +// If o returns a *PermanentError, the operation is not retried, and the +// wrapped error is returned. +// +// Retry sleeps the goroutine for the duration returned by BackOff after a +// failed operation returns. +func Retry(o Operation, b BackOff) error { return RetryNotify(o, b, nil) } + +// RetryNotify calls notify function with the error and wait duration +// for each failed attempt before sleep. +func RetryNotify(operation Operation, b BackOff, notify Notify) error { + var err error + var next time.Duration + var t *time.Timer + + cb := ensureContext(b) + + b.Reset() + for { + if err = operation(); err == nil { + return nil + } + + if permanent, ok := err.(*PermanentError); ok { + return permanent.Err + } + + if next = cb.NextBackOff(); next == Stop { + return err + } + + if notify != nil { + notify(err, next) + } + + if t == nil { + t = time.NewTimer(next) + defer t.Stop() + } else { + t.Reset(next) + } + + select { + case <-cb.Context().Done(): + return err + case <-t.C: + } + } +} + +// PermanentError signals that the operation should not be retried. +type PermanentError struct { + Err error +} + +func (e *PermanentError) Error() string { + return e.Err.Error() +} + +// Permanent wraps the given err in a *PermanentError. +func Permanent(err error) *PermanentError { + return &PermanentError{ + Err: err, + } +} diff --git a/vendor/github.com/cenkalti/backoff/ticker.go b/vendor/github.com/cenkalti/backoff/ticker.go new file mode 100644 index 00000000..e41084b0 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/ticker.go @@ -0,0 +1,82 @@ +package backoff + +import ( + "sync" + "time" +) + +// Ticker holds a channel that delivers `ticks' of a clock at times reported by a BackOff. +// +// Ticks will continue to arrive when the previous operation is still running, +// so operations that take a while to fail could run in quick succession. +type Ticker struct { + C <-chan time.Time + c chan time.Time + b BackOffContext + stop chan struct{} + stopOnce sync.Once +} + +// NewTicker returns a new Ticker containing a channel that will send +// the time at times specified by the BackOff argument. Ticker is +// guaranteed to tick at least once. The channel is closed when Stop +// method is called or BackOff stops. It is not safe to manipulate the +// provided backoff policy (notably calling NextBackOff or Reset) +// while the ticker is running. +func NewTicker(b BackOff) *Ticker { + c := make(chan time.Time) + t := &Ticker{ + C: c, + c: c, + b: ensureContext(b), + stop: make(chan struct{}), + } + t.b.Reset() + go t.run() + return t +} + +// Stop turns off a ticker. After Stop, no more ticks will be sent. +func (t *Ticker) Stop() { + t.stopOnce.Do(func() { close(t.stop) }) +} + +func (t *Ticker) run() { + c := t.c + defer close(c) + + // Ticker is guaranteed to tick at least once. + afterC := t.send(time.Now()) + + for { + if afterC == nil { + return + } + + select { + case tick := <-afterC: + afterC = t.send(tick) + case <-t.stop: + t.c = nil // Prevent future ticks from being sent to the channel. + return + case <-t.b.Context().Done(): + return + } + } +} + +func (t *Ticker) send(tick time.Time) <-chan time.Time { + select { + case t.c <- tick: + case <-t.stop: + return nil + } + + next := t.b.NextBackOff() + if next == Stop { + t.Stop() + return nil + } + + return time.After(next) +} diff --git a/vendor/github.com/cenkalti/backoff/tries.go b/vendor/github.com/cenkalti/backoff/tries.go new file mode 100644 index 00000000..cfeefd9b --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/tries.go @@ -0,0 +1,35 @@ +package backoff + +import "time" + +/* +WithMaxRetries creates a wrapper around another BackOff, which will +return Stop if NextBackOff() has been called too many times since +the last time Reset() was called + +Note: Implementation is not thread-safe. +*/ +func WithMaxRetries(b BackOff, max uint64) BackOff { + return &backOffTries{delegate: b, maxTries: max} +} + +type backOffTries struct { + delegate BackOff + maxTries uint64 + numTries uint64 +} + +func (b *backOffTries) NextBackOff() time.Duration { + if b.maxTries > 0 { + if b.maxTries <= b.numTries { + return Stop + } + b.numTries++ + } + return b.delegate.NextBackOff() +} + +func (b *backOffTries) Reset() { + b.numTries = 0 + b.delegate.Reset() +} diff --git a/vendor/github.com/cheekybits/genny/LICENSE b/vendor/github.com/cheekybits/genny/LICENSE new file mode 100644 index 00000000..519d7f22 --- /dev/null +++ b/vendor/github.com/cheekybits/genny/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 cheekybits + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/github.com/cheekybits/genny/generic/doc.go b/vendor/github.com/cheekybits/genny/generic/doc.go new file mode 100644 index 00000000..3bd6c869 --- /dev/null +++ b/vendor/github.com/cheekybits/genny/generic/doc.go @@ -0,0 +1,2 @@ +// Package generic contains the generic marker types. +package generic diff --git a/vendor/github.com/cheekybits/genny/generic/generic.go b/vendor/github.com/cheekybits/genny/generic/generic.go new file mode 100644 index 00000000..04a2306c --- /dev/null +++ b/vendor/github.com/cheekybits/genny/generic/generic.go @@ -0,0 +1,13 @@ +package generic + +// Type is the placeholder type that indicates a generic value. +// When genny is executed, variables of this type will be replaced with +// references to the specific types. +// var GenericType generic.Type +type Type interface{} + +// Number is the placehoder type that indiccates a generic numerical value. +// When genny is executed, variables of this type will be replaced with +// references to the specific types. +// var GenericType generic.Number +type Number float64 diff --git a/vendor/github.com/coreos/go-semver/LICENSE b/vendor/github.com/coreos/go-semver/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/vendor/github.com/coreos/go-semver/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/coreos/go-semver/NOTICE b/vendor/github.com/coreos/go-semver/NOTICE new file mode 100644 index 00000000..23a0ada2 --- /dev/null +++ b/vendor/github.com/coreos/go-semver/NOTICE @@ -0,0 +1,5 @@ +CoreOS Project +Copyright 2018 CoreOS, Inc + +This product includes software developed at CoreOS, Inc. +(http://www.coreos.com/). diff --git a/vendor/github.com/coreos/go-semver/semver/semver.go b/vendor/github.com/coreos/go-semver/semver/semver.go new file mode 100644 index 00000000..76cf4852 --- /dev/null +++ b/vendor/github.com/coreos/go-semver/semver/semver.go @@ -0,0 +1,296 @@ +// Copyright 2013-2015 CoreOS, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Semantic Versions http://semver.org +package semver + +import ( + "bytes" + "errors" + "fmt" + "regexp" + "strconv" + "strings" +) + +type Version struct { + Major int64 + Minor int64 + Patch int64 + PreRelease PreRelease + Metadata string +} + +type PreRelease string + +func splitOff(input *string, delim string) (val string) { + parts := strings.SplitN(*input, delim, 2) + + if len(parts) == 2 { + *input = parts[0] + val = parts[1] + } + + return val +} + +func New(version string) *Version { + return Must(NewVersion(version)) +} + +func NewVersion(version string) (*Version, error) { + v := Version{} + + if err := v.Set(version); err != nil { + return nil, err + } + + return &v, nil +} + +// Must is a helper for wrapping NewVersion and will panic if err is not nil. +func Must(v *Version, err error) *Version { + if err != nil { + panic(err) + } + return v +} + +// Set parses and updates v from the given version string. Implements flag.Value +func (v *Version) Set(version string) error { + metadata := splitOff(&version, "+") + preRelease := PreRelease(splitOff(&version, "-")) + dotParts := strings.SplitN(version, ".", 3) + + if len(dotParts) != 3 { + return fmt.Errorf("%s is not in dotted-tri format", version) + } + + if err := validateIdentifier(string(preRelease)); err != nil { + return fmt.Errorf("failed to validate pre-release: %v", err) + } + + if err := validateIdentifier(metadata); err != nil { + return fmt.Errorf("failed to validate metadata: %v", err) + } + + parsed := make([]int64, 3, 3) + + for i, v := range dotParts[:3] { + val, err := strconv.ParseInt(v, 10, 64) + parsed[i] = val + if err != nil { + return err + } + } + + v.Metadata = metadata + v.PreRelease = preRelease + v.Major = parsed[0] + v.Minor = parsed[1] + v.Patch = parsed[2] + return nil +} + +func (v Version) String() string { + var buffer bytes.Buffer + + fmt.Fprintf(&buffer, "%d.%d.%d", v.Major, v.Minor, v.Patch) + + if v.PreRelease != "" { + fmt.Fprintf(&buffer, "-%s", v.PreRelease) + } + + if v.Metadata != "" { + fmt.Fprintf(&buffer, "+%s", v.Metadata) + } + + return buffer.String() +} + +func (v *Version) UnmarshalYAML(unmarshal func(interface{}) error) error { + var data string + if err := unmarshal(&data); err != nil { + return err + } + return v.Set(data) +} + +func (v Version) MarshalJSON() ([]byte, error) { + return []byte(`"` + v.String() + `"`), nil +} + +func (v *Version) UnmarshalJSON(data []byte) error { + l := len(data) + if l == 0 || string(data) == `""` { + return nil + } + if l < 2 || data[0] != '"' || data[l-1] != '"' { + return errors.New("invalid semver string") + } + return v.Set(string(data[1 : l-1])) +} + +// Compare tests if v is less than, equal to, or greater than versionB, +// returning -1, 0, or +1 respectively. +func (v Version) Compare(versionB Version) int { + if cmp := recursiveCompare(v.Slice(), versionB.Slice()); cmp != 0 { + return cmp + } + return preReleaseCompare(v, versionB) +} + +// Equal tests if v is equal to versionB. +func (v Version) Equal(versionB Version) bool { + return v.Compare(versionB) == 0 +} + +// LessThan tests if v is less than versionB. +func (v Version) LessThan(versionB Version) bool { + return v.Compare(versionB) < 0 +} + +// Slice converts the comparable parts of the semver into a slice of integers. +func (v Version) Slice() []int64 { + return []int64{v.Major, v.Minor, v.Patch} +} + +func (p PreRelease) Slice() []string { + preRelease := string(p) + return strings.Split(preRelease, ".") +} + +func preReleaseCompare(versionA Version, versionB Version) int { + a := versionA.PreRelease + b := versionB.PreRelease + + /* Handle the case where if two versions are otherwise equal it is the + * one without a PreRelease that is greater */ + if len(a) == 0 && (len(b) > 0) { + return 1 + } else if len(b) == 0 && (len(a) > 0) { + return -1 + } + + // If there is a prerelease, check and compare each part. + return recursivePreReleaseCompare(a.Slice(), b.Slice()) +} + +func recursiveCompare(versionA []int64, versionB []int64) int { + if len(versionA) == 0 { + return 0 + } + + a := versionA[0] + b := versionB[0] + + if a > b { + return 1 + } else if a < b { + return -1 + } + + return recursiveCompare(versionA[1:], versionB[1:]) +} + +func recursivePreReleaseCompare(versionA []string, versionB []string) int { + // A larger set of pre-release fields has a higher precedence than a smaller set, + // if all of the preceding identifiers are equal. + if len(versionA) == 0 { + if len(versionB) > 0 { + return -1 + } + return 0 + } else if len(versionB) == 0 { + // We're longer than versionB so return 1. + return 1 + } + + a := versionA[0] + b := versionB[0] + + aInt := false + bInt := false + + aI, err := strconv.Atoi(versionA[0]) + if err == nil { + aInt = true + } + + bI, err := strconv.Atoi(versionB[0]) + if err == nil { + bInt = true + } + + // Numeric identifiers always have lower precedence than non-numeric identifiers. + if aInt && !bInt { + return -1 + } else if !aInt && bInt { + return 1 + } + + // Handle Integer Comparison + if aInt && bInt { + if aI > bI { + return 1 + } else if aI < bI { + return -1 + } + } + + // Handle String Comparison + if a > b { + return 1 + } else if a < b { + return -1 + } + + return recursivePreReleaseCompare(versionA[1:], versionB[1:]) +} + +// BumpMajor increments the Major field by 1 and resets all other fields to their default values +func (v *Version) BumpMajor() { + v.Major += 1 + v.Minor = 0 + v.Patch = 0 + v.PreRelease = PreRelease("") + v.Metadata = "" +} + +// BumpMinor increments the Minor field by 1 and resets all other fields to their default values +func (v *Version) BumpMinor() { + v.Minor += 1 + v.Patch = 0 + v.PreRelease = PreRelease("") + v.Metadata = "" +} + +// BumpPatch increments the Patch field by 1 and resets all other fields to their default values +func (v *Version) BumpPatch() { + v.Patch += 1 + v.PreRelease = PreRelease("") + v.Metadata = "" +} + +// validateIdentifier makes sure the provided identifier satisfies semver spec +func validateIdentifier(id string) error { + if id != "" && !reIdentifier.MatchString(id) { + return fmt.Errorf("%s is not a valid semver identifier", id) + } + return nil +} + +// reIdentifier is a regular expression used to check that pre-release and metadata +// identifiers satisfy the spec requirements +var reIdentifier = regexp.MustCompile(`^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$`) diff --git a/vendor/github.com/coreos/go-semver/semver/sort.go b/vendor/github.com/coreos/go-semver/semver/sort.go new file mode 100644 index 00000000..e256b41a --- /dev/null +++ b/vendor/github.com/coreos/go-semver/semver/sort.go @@ -0,0 +1,38 @@ +// Copyright 2013-2015 CoreOS, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package semver + +import ( + "sort" +) + +type Versions []*Version + +func (s Versions) Len() int { + return len(s) +} + +func (s Versions) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s Versions) Less(i, j int) bool { + return s[i].LessThan(*s[j]) +} + +// Sort sorts the given slice of Version +func Sort(versions []*Version) { + sort.Sort(Versions(versions)) +} diff --git a/vendor/github.com/cskr/pubsub/LICENSE b/vendor/github.com/cskr/pubsub/LICENSE new file mode 100644 index 00000000..ae195b47 --- /dev/null +++ b/vendor/github.com/cskr/pubsub/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2013, Chandra Sekar S +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/cskr/pubsub/README.md b/vendor/github.com/cskr/pubsub/README.md new file mode 100644 index 00000000..8ec08386 --- /dev/null +++ b/vendor/github.com/cskr/pubsub/README.md @@ -0,0 +1,13 @@ +[![GoDoc](https://godoc.org/github.com/cskr/pubsub?status.svg)](https://godoc.org/github.com/cskr/pubsub) + +Package pubsub implements a simple multi-topic pub-sub library. + +Install pubsub with, + + go get github.com/cskr/pubsub + +This repository is a go module and contains tagged releases. Please pin a +version for production use. + +Use of this module is governed by a BSD-style license that can be found in the +[LICENSE](LICENSE) file. diff --git a/vendor/github.com/cskr/pubsub/go.mod b/vendor/github.com/cskr/pubsub/go.mod new file mode 100644 index 00000000..18dbec9b --- /dev/null +++ b/vendor/github.com/cskr/pubsub/go.mod @@ -0,0 +1,3 @@ +module github.com/cskr/pubsub + +go 1.12 diff --git a/vendor/github.com/cskr/pubsub/pubsub.go b/vendor/github.com/cskr/pubsub/pubsub.go new file mode 100644 index 00000000..352ef6ff --- /dev/null +++ b/vendor/github.com/cskr/pubsub/pubsub.go @@ -0,0 +1,267 @@ +// Copyright 2013, Chandra Sekar S. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package pubsub implements a simple multi-topic pub-sub +// library. +// +// Topics must be strings and messages of any type can be +// published. A topic can have any number of subcribers and +// all of them receive messages published on the topic. +package pubsub + +type operation int + +const ( + sub operation = iota + subOnce + subOnceEach + pub + tryPub + unsub + unsubAll + closeTopic + shutdown +) + +// PubSub is a collection of topics. +type PubSub struct { + cmdChan chan cmd + capacity int +} + +type cmd struct { + op operation + topics []string + ch chan interface{} + msg interface{} +} + +// New creates a new PubSub and starts a goroutine for handling operations. +// The capacity of the channels created by Sub and SubOnce will be as specified. +func New(capacity int) *PubSub { + ps := &PubSub{make(chan cmd), capacity} + go ps.start() + return ps +} + +// Sub returns a channel on which messages published on any of +// the specified topics can be received. +func (ps *PubSub) Sub(topics ...string) chan interface{} { + return ps.sub(sub, topics...) +} + +// SubOnce is similar to Sub, but only the first message published, after subscription, +// on any of the specified topics can be received. +func (ps *PubSub) SubOnce(topics ...string) chan interface{} { + return ps.sub(subOnce, topics...) +} + +// SubOnceEach returns a channel on which callers receive, at most, one message +// for each topic. +func (ps *PubSub) SubOnceEach(topics ...string) chan interface{} { + return ps.sub(subOnceEach, topics...) +} + +func (ps *PubSub) sub(op operation, topics ...string) chan interface{} { + ch := make(chan interface{}, ps.capacity) + ps.cmdChan <- cmd{op: op, topics: topics, ch: ch} + return ch +} + +// AddSub adds subscriptions to an existing channel. +func (ps *PubSub) AddSub(ch chan interface{}, topics ...string) { + ps.cmdChan <- cmd{op: sub, topics: topics, ch: ch} +} + +// AddSubOnceEach adds subscriptions to an existing channel with SubOnceEach +// behavior. +func (ps *PubSub) AddSubOnceEach(ch chan interface{}, topics ...string) { + ps.cmdChan <- cmd{op: subOnceEach, topics: topics, ch: ch} +} + +// Pub publishes the given message to all subscribers of +// the specified topics. +func (ps *PubSub) Pub(msg interface{}, topics ...string) { + ps.cmdChan <- cmd{op: pub, topics: topics, msg: msg} +} + +// TryPub publishes the given message to all subscribers of +// the specified topics if the topic has buffer space. +func (ps *PubSub) TryPub(msg interface{}, topics ...string) { + ps.cmdChan <- cmd{op: tryPub, topics: topics, msg: msg} +} + +// Unsub unsubscribes the given channel from the specified +// topics. If no topic is specified, it is unsubscribed +// from all topics. +// +// Unsub must be called from a goroutine that is different from the subscriber. +// The subscriber must consume messages from the channel until it reaches the +// end. Not doing so can result in a deadlock. +func (ps *PubSub) Unsub(ch chan interface{}, topics ...string) { + if len(topics) == 0 { + ps.cmdChan <- cmd{op: unsubAll, ch: ch} + return + } + + ps.cmdChan <- cmd{op: unsub, topics: topics, ch: ch} +} + +// Close closes all channels currently subscribed to the specified topics. +// If a channel is subscribed to multiple topics, some of which is +// not specified, it is not closed. +func (ps *PubSub) Close(topics ...string) { + ps.cmdChan <- cmd{op: closeTopic, topics: topics} +} + +// Shutdown closes all subscribed channels and terminates the goroutine. +func (ps *PubSub) Shutdown() { + ps.cmdChan <- cmd{op: shutdown} +} + +func (ps *PubSub) start() { + reg := registry{ + topics: make(map[string]map[chan interface{}]subType), + revTopics: make(map[chan interface{}]map[string]bool), + } + +loop: + for cmd := range ps.cmdChan { + if cmd.topics == nil { + switch cmd.op { + case unsubAll: + reg.removeChannel(cmd.ch) + + case shutdown: + break loop + } + + continue loop + } + + for _, topic := range cmd.topics { + switch cmd.op { + case sub: + reg.add(topic, cmd.ch, normal) + + case subOnce: + reg.add(topic, cmd.ch, onceAny) + + case subOnceEach: + reg.add(topic, cmd.ch, onceEach) + + case tryPub: + reg.sendNoWait(topic, cmd.msg) + + case pub: + reg.send(topic, cmd.msg) + + case unsub: + reg.remove(topic, cmd.ch) + + case closeTopic: + reg.removeTopic(topic) + } + } + } + + for topic, chans := range reg.topics { + for ch := range chans { + reg.remove(topic, ch) + } + } +} + +// registry maintains the current subscription state. It's not +// safe to access a registry from multiple goroutines simultaneously. +type registry struct { + topics map[string]map[chan interface{}]subType + revTopics map[chan interface{}]map[string]bool +} + +type subType int + +const ( + onceAny subType = iota + onceEach + normal +) + +func (reg *registry) add(topic string, ch chan interface{}, st subType) { + if reg.topics[topic] == nil { + reg.topics[topic] = make(map[chan interface{}]subType) + } + reg.topics[topic][ch] = st + + if reg.revTopics[ch] == nil { + reg.revTopics[ch] = make(map[string]bool) + } + reg.revTopics[ch][topic] = true +} + +func (reg *registry) send(topic string, msg interface{}) { + for ch, st := range reg.topics[topic] { + ch <- msg + switch st { + case onceAny: + for topic := range reg.revTopics[ch] { + reg.remove(topic, ch) + } + case onceEach: + reg.remove(topic, ch) + } + } +} + +func (reg *registry) sendNoWait(topic string, msg interface{}) { + for ch, st := range reg.topics[topic] { + select { + case ch <- msg: + switch st { + case onceAny: + for topic := range reg.revTopics[ch] { + reg.remove(topic, ch) + } + case onceEach: + reg.remove(topic, ch) + } + default: + } + + } +} + +func (reg *registry) removeTopic(topic string) { + for ch := range reg.topics[topic] { + reg.remove(topic, ch) + } +} + +func (reg *registry) removeChannel(ch chan interface{}) { + for topic := range reg.revTopics[ch] { + reg.remove(topic, ch) + } +} + +func (reg *registry) remove(topic string, ch chan interface{}) { + if _, ok := reg.topics[topic]; !ok { + return + } + + if _, ok := reg.topics[topic][ch]; !ok { + return + } + + delete(reg.topics[topic], ch) + delete(reg.revTopics[ch], topic) + + if len(reg.topics[topic]) == 0 { + delete(reg.topics, topic) + } + + if len(reg.revTopics[ch]) == 0 { + close(ch) + delete(reg.revTopics, ch) + } +} diff --git a/vendor/github.com/davecgh/go-spew/.travis.yml b/vendor/github.com/davecgh/go-spew/.travis.yml deleted file mode 100644 index 1f4cbf54..00000000 --- a/vendor/github.com/davecgh/go-spew/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -language: go -go_import_path: github.com/davecgh/go-spew -go: - - 1.6.x - - 1.7.x - - 1.8.x - - 1.9.x - - 1.10.x - - tip -sudo: false -install: - - go get -v github.com/alecthomas/gometalinter - - gometalinter --install -script: - - export PATH=$PATH:$HOME/gopath/bin - - export GORACE="halt_on_error=1" - - test -z "$(gometalinter --disable-all - --enable=gofmt - --enable=golint - --enable=vet - --enable=gosimple - --enable=unconvert - --deadline=4m ./spew | tee /dev/stderr)" - - go test -v -race -tags safe ./spew - - go test -v -race -tags testcgo ./spew -covermode=atomic -coverprofile=profile.cov -after_success: - - go get -v github.com/mattn/goveralls - - goveralls -coverprofile=profile.cov -service=travis-ci diff --git a/vendor/github.com/davecgh/go-spew/README.md b/vendor/github.com/davecgh/go-spew/README.md deleted file mode 100644 index f6ed02c3..00000000 --- a/vendor/github.com/davecgh/go-spew/README.md +++ /dev/null @@ -1,201 +0,0 @@ -go-spew -======= - -[![Build Status](https://img.shields.io/travis/davecgh/go-spew.svg)](https://travis-ci.org/davecgh/go-spew) -[![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) -[![Coverage Status](https://img.shields.io/coveralls/davecgh/go-spew.svg)](https://coveralls.io/r/davecgh/go-spew?branch=master) - -Go-spew implements a deep pretty printer for Go data structures to aid in -debugging. A comprehensive suite of tests with 100% test coverage is provided -to ensure proper functionality. See `test_coverage.txt` for the gocov coverage -report. Go-spew is licensed under the liberal ISC license, so it may be used in -open source or commercial projects. - -If you're interested in reading about how this package came to life and some -of the challenges involved in providing a deep pretty printer, there is a blog -post about it -[here](https://web.archive.org/web/20160304013555/https://blog.cyphertite.com/go-spew-a-journey-into-dumping-go-data-structures/). - -## Documentation - -[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/davecgh/go-spew/spew) - -Full `go doc` style documentation for the project can be viewed online without -installing this package by using the excellent GoDoc site here: -http://godoc.org/github.com/davecgh/go-spew/spew - -You can also view the documentation locally once the package is installed with -the `godoc` tool by running `godoc -http=":6060"` and pointing your browser to -http://localhost:6060/pkg/github.com/davecgh/go-spew/spew - -## Installation - -```bash -$ go get -u github.com/davecgh/go-spew/spew -``` - -## Quick Start - -Add this import line to the file you're working in: - -```Go -import "github.com/davecgh/go-spew/spew" -``` - -To dump a variable with full newlines, indentation, type, and pointer -information use Dump, Fdump, or Sdump: - -```Go -spew.Dump(myVar1, myVar2, ...) -spew.Fdump(someWriter, myVar1, myVar2, ...) -str := spew.Sdump(myVar1, myVar2, ...) -``` - -Alternatively, if you would prefer to use format strings with a compacted inline -printing style, use the convenience wrappers Printf, Fprintf, etc with %v (most -compact), %+v (adds pointer addresses), %#v (adds types), or %#+v (adds types -and pointer addresses): - -```Go -spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) -spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) -spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) -spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) -``` - -## Debugging a Web Application Example - -Here is an example of how you can use `spew.Sdump()` to help debug a web application. Please be sure to wrap your output using the `html.EscapeString()` function for safety reasons. You should also only use this debugging technique in a development environment, never in production. - -```Go -package main - -import ( - "fmt" - "html" - "net/http" - - "github.com/davecgh/go-spew/spew" -) - -func handler(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/html") - fmt.Fprintf(w, "Hi there, %s!", r.URL.Path[1:]) - fmt.Fprintf(w, "") -} - -func main() { - http.HandleFunc("/", handler) - http.ListenAndServe(":8080", nil) -} -``` - -## Sample Dump Output - -``` -(main.Foo) { - unexportedField: (*main.Bar)(0xf84002e210)({ - flag: (main.Flag) flagTwo, - data: (uintptr) - }), - ExportedField: (map[interface {}]interface {}) { - (string) "one": (bool) true - } -} -([]uint8) { - 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | - 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| - 00000020 31 32 |12| -} -``` - -## Sample Formatter Output - -Double pointer to a uint8: -``` - %v: <**>5 - %+v: <**>(0xf8400420d0->0xf8400420c8)5 - %#v: (**uint8)5 - %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5 -``` - -Pointer to circular struct with a uint8 field and a pointer to itself: -``` - %v: <*>{1 <*>} - %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)} - %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)} - %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)} -``` - -## Configuration Options - -Configuration of spew is handled by fields in the ConfigState type. For -convenience, all of the top-level functions use a global state available via the -spew.Config global. - -It is also possible to create a ConfigState instance that provides methods -equivalent to the top-level functions. This allows concurrent configuration -options. See the ConfigState documentation for more details. - -``` -* Indent - String to use for each indentation level for Dump functions. - It is a single space by default. A popular alternative is "\t". - -* MaxDepth - Maximum number of levels to descend into nested data structures. - There is no limit by default. - -* DisableMethods - Disables invocation of error and Stringer interface methods. - Method invocation is enabled by default. - -* DisablePointerMethods - Disables invocation of error and Stringer interface methods on types - which only accept pointer receivers from non-pointer variables. This option - relies on access to the unsafe package, so it will not have any effect when - running in environments without access to the unsafe package such as Google - App Engine or with the "safe" build tag specified. - Pointer method invocation is enabled by default. - -* DisablePointerAddresses - DisablePointerAddresses specifies whether to disable the printing of - pointer addresses. This is useful when diffing data structures in tests. - -* DisableCapacities - DisableCapacities specifies whether to disable the printing of capacities - for arrays, slices, maps and channels. This is useful when diffing data - structures in tests. - -* ContinueOnMethod - Enables recursion into types after invoking error and Stringer interface - methods. Recursion after method invocation is disabled by default. - -* SortKeys - Specifies map keys should be sorted before being printed. Use - this to have a more deterministic, diffable output. Note that - only native types (bool, int, uint, floats, uintptr and string) - and types which implement error or Stringer interfaces are supported, - with other types sorted according to the reflect.Value.String() output - which guarantees display stability. Natural map order is used by - default. - -* SpewKeys - SpewKeys specifies that, as a last resort attempt, map keys should be - spewed to strings and sorted by those strings. This is only considered - if SortKeys is true. - -``` - -## Unsafe Package Dependency - -This package relies on the unsafe package to perform some of the more advanced -features, however it also supports a "limited" mode which allows it to work in -environments where the unsafe package is not available. By default, it will -operate in this mode on Google App Engine and when compiled with GopherJS. The -"safe" build tag may also be specified to force the package to build without -using the unsafe package. - -## License - -Go-spew is licensed under the [copyfree](http://copyfree.org) ISC License. diff --git a/vendor/github.com/davecgh/go-spew/cov_report.sh b/vendor/github.com/davecgh/go-spew/cov_report.sh deleted file mode 100644 index 9579497e..00000000 --- a/vendor/github.com/davecgh/go-spew/cov_report.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# This script uses gocov to generate a test coverage report. -# The gocov tool my be obtained with the following command: -# go get github.com/axw/gocov/gocov -# -# It will be installed to $GOPATH/bin, so ensure that location is in your $PATH. - -# Check for gocov. -if ! type gocov >/dev/null 2>&1; then - echo >&2 "This script requires the gocov tool." - echo >&2 "You may obtain it with the following command:" - echo >&2 "go get github.com/axw/gocov/gocov" - exit 1 -fi - -# Only run the cgo tests if gcc is installed. -if type gcc >/dev/null 2>&1; then - (cd spew && gocov test -tags testcgo | gocov report) -else - (cd spew && gocov test | gocov report) -fi diff --git a/vendor/github.com/davecgh/go-spew/spew/common_test.go b/vendor/github.com/davecgh/go-spew/spew/common_test.go deleted file mode 100644 index 0f5ce47d..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/common_test.go +++ /dev/null @@ -1,298 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew_test - -import ( - "fmt" - "reflect" - "testing" - - "github.com/davecgh/go-spew/spew" -) - -// custom type to test Stinger interface on non-pointer receiver. -type stringer string - -// String implements the Stringer interface for testing invocation of custom -// stringers on types with non-pointer receivers. -func (s stringer) String() string { - return "stringer " + string(s) -} - -// custom type to test Stinger interface on pointer receiver. -type pstringer string - -// String implements the Stringer interface for testing invocation of custom -// stringers on types with only pointer receivers. -func (s *pstringer) String() string { - return "stringer " + string(*s) -} - -// xref1 and xref2 are cross referencing structs for testing circular reference -// detection. -type xref1 struct { - ps2 *xref2 -} -type xref2 struct { - ps1 *xref1 -} - -// indirCir1, indirCir2, and indirCir3 are used to generate an indirect circular -// reference for testing detection. -type indirCir1 struct { - ps2 *indirCir2 -} -type indirCir2 struct { - ps3 *indirCir3 -} -type indirCir3 struct { - ps1 *indirCir1 -} - -// embed is used to test embedded structures. -type embed struct { - a string -} - -// embedwrap is used to test embedded structures. -type embedwrap struct { - *embed - e *embed -} - -// panicer is used to intentionally cause a panic for testing spew properly -// handles them -type panicer int - -func (p panicer) String() string { - panic("test panic") -} - -// customError is used to test custom error interface invocation. -type customError int - -func (e customError) Error() string { - return fmt.Sprintf("error: %d", int(e)) -} - -// stringizeWants converts a slice of wanted test output into a format suitable -// for a test error message. -func stringizeWants(wants []string) string { - s := "" - for i, want := range wants { - if i > 0 { - s += fmt.Sprintf("want%d: %s", i+1, want) - } else { - s += "want: " + want - } - } - return s -} - -// testFailed returns whether or not a test failed by checking if the result -// of the test is in the slice of wanted strings. -func testFailed(result string, wants []string) bool { - for _, want := range wants { - if result == want { - return false - } - } - return true -} - -type sortableStruct struct { - x int -} - -func (ss sortableStruct) String() string { - return fmt.Sprintf("ss.%d", ss.x) -} - -type unsortableStruct struct { - x int -} - -type sortTestCase struct { - input []reflect.Value - expected []reflect.Value -} - -func helpTestSortValues(tests []sortTestCase, cs *spew.ConfigState, t *testing.T) { - getInterfaces := func(values []reflect.Value) []interface{} { - interfaces := []interface{}{} - for _, v := range values { - interfaces = append(interfaces, v.Interface()) - } - return interfaces - } - - for _, test := range tests { - spew.SortValues(test.input, cs) - // reflect.DeepEqual cannot really make sense of reflect.Value, - // probably because of all the pointer tricks. For instance, - // v(2.0) != v(2.0) on a 32-bits system. Turn them into interface{} - // instead. - input := getInterfaces(test.input) - expected := getInterfaces(test.expected) - if !reflect.DeepEqual(input, expected) { - t.Errorf("Sort mismatch:\n %v != %v", input, expected) - } - } -} - -// TestSortValues ensures the sort functionality for relect.Value based sorting -// works as intended. -func TestSortValues(t *testing.T) { - v := reflect.ValueOf - - a := v("a") - b := v("b") - c := v("c") - embedA := v(embed{"a"}) - embedB := v(embed{"b"}) - embedC := v(embed{"c"}) - tests := []sortTestCase{ - // No values. - { - []reflect.Value{}, - []reflect.Value{}, - }, - // Bools. - { - []reflect.Value{v(false), v(true), v(false)}, - []reflect.Value{v(false), v(false), v(true)}, - }, - // Ints. - { - []reflect.Value{v(2), v(1), v(3)}, - []reflect.Value{v(1), v(2), v(3)}, - }, - // Uints. - { - []reflect.Value{v(uint8(2)), v(uint8(1)), v(uint8(3))}, - []reflect.Value{v(uint8(1)), v(uint8(2)), v(uint8(3))}, - }, - // Floats. - { - []reflect.Value{v(2.0), v(1.0), v(3.0)}, - []reflect.Value{v(1.0), v(2.0), v(3.0)}, - }, - // Strings. - { - []reflect.Value{b, a, c}, - []reflect.Value{a, b, c}, - }, - // Array - { - []reflect.Value{v([3]int{3, 2, 1}), v([3]int{1, 3, 2}), v([3]int{1, 2, 3})}, - []reflect.Value{v([3]int{1, 2, 3}), v([3]int{1, 3, 2}), v([3]int{3, 2, 1})}, - }, - // Uintptrs. - { - []reflect.Value{v(uintptr(2)), v(uintptr(1)), v(uintptr(3))}, - []reflect.Value{v(uintptr(1)), v(uintptr(2)), v(uintptr(3))}, - }, - // SortableStructs. - { - // Note: not sorted - DisableMethods is set. - []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, - []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, - }, - // UnsortableStructs. - { - // Note: not sorted - SpewKeys is false. - []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, - []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, - }, - // Invalid. - { - []reflect.Value{embedB, embedA, embedC}, - []reflect.Value{embedB, embedA, embedC}, - }, - } - cs := spew.ConfigState{DisableMethods: true, SpewKeys: false} - helpTestSortValues(tests, &cs, t) -} - -// TestSortValuesWithMethods ensures the sort functionality for relect.Value -// based sorting works as intended when using string methods. -func TestSortValuesWithMethods(t *testing.T) { - v := reflect.ValueOf - - a := v("a") - b := v("b") - c := v("c") - tests := []sortTestCase{ - // Ints. - { - []reflect.Value{v(2), v(1), v(3)}, - []reflect.Value{v(1), v(2), v(3)}, - }, - // Strings. - { - []reflect.Value{b, a, c}, - []reflect.Value{a, b, c}, - }, - // SortableStructs. - { - []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, - []reflect.Value{v(sortableStruct{1}), v(sortableStruct{2}), v(sortableStruct{3})}, - }, - // UnsortableStructs. - { - // Note: not sorted - SpewKeys is false. - []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, - []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, - }, - } - cs := spew.ConfigState{DisableMethods: false, SpewKeys: false} - helpTestSortValues(tests, &cs, t) -} - -// TestSortValuesWithSpew ensures the sort functionality for relect.Value -// based sorting works as intended when using spew to stringify keys. -func TestSortValuesWithSpew(t *testing.T) { - v := reflect.ValueOf - - a := v("a") - b := v("b") - c := v("c") - tests := []sortTestCase{ - // Ints. - { - []reflect.Value{v(2), v(1), v(3)}, - []reflect.Value{v(1), v(2), v(3)}, - }, - // Strings. - { - []reflect.Value{b, a, c}, - []reflect.Value{a, b, c}, - }, - // SortableStructs. - { - []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, - []reflect.Value{v(sortableStruct{1}), v(sortableStruct{2}), v(sortableStruct{3})}, - }, - // UnsortableStructs. - { - []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, - []reflect.Value{v(unsortableStruct{1}), v(unsortableStruct{2}), v(unsortableStruct{3})}, - }, - } - cs := spew.ConfigState{DisableMethods: true, SpewKeys: true} - helpTestSortValues(tests, &cs, t) -} diff --git a/vendor/github.com/davecgh/go-spew/spew/dump_test.go b/vendor/github.com/davecgh/go-spew/spew/dump_test.go deleted file mode 100644 index 4a31a2ee..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/dump_test.go +++ /dev/null @@ -1,1042 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* -Test Summary: -NOTE: For each test, a nil pointer, a single pointer and double pointer to the -base test element are also tested to ensure proper indirection across all types. - -- Max int8, int16, int32, int64, int -- Max uint8, uint16, uint32, uint64, uint -- Boolean true and false -- Standard complex64 and complex128 -- Array containing standard ints -- Array containing type with custom formatter on pointer receiver only -- Array containing interfaces -- Array containing bytes -- Slice containing standard float32 values -- Slice containing type with custom formatter on pointer receiver only -- Slice containing interfaces -- Slice containing bytes -- Nil slice -- Standard string -- Nil interface -- Sub-interface -- Map with string keys and int vals -- Map with custom formatter type on pointer receiver only keys and vals -- Map with interface keys and values -- Map with nil interface value -- Struct with primitives -- Struct that contains another struct -- Struct that contains custom type with Stringer pointer interface via both - exported and unexported fields -- Struct that contains embedded struct and field to same struct -- Uintptr to 0 (null pointer) -- Uintptr address of real variable -- Unsafe.Pointer to 0 (null pointer) -- Unsafe.Pointer to address of real variable -- Nil channel -- Standard int channel -- Function with no params and no returns -- Function with param and no returns -- Function with multiple params and multiple returns -- Struct that is circular through self referencing -- Structs that are circular through cross referencing -- Structs that are indirectly circular -- Type that panics in its Stringer interface -*/ - -package spew_test - -import ( - "bytes" - "fmt" - "testing" - "unsafe" - - "github.com/davecgh/go-spew/spew" -) - -// dumpTest is used to describe a test to be performed against the Dump method. -type dumpTest struct { - in interface{} - wants []string -} - -// dumpTests houses all of the tests to be performed against the Dump method. -var dumpTests = make([]dumpTest, 0) - -// addDumpTest is a helper method to append the passed input and desired result -// to dumpTests -func addDumpTest(in interface{}, wants ...string) { - test := dumpTest{in, wants} - dumpTests = append(dumpTests, test) -} - -func addIntDumpTests() { - // Max int8. - v := int8(127) - nv := (*int8)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "int8" - vs := "127" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Max int16. - v2 := int16(32767) - nv2 := (*int16)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "int16" - v2s := "32767" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") - - // Max int32. - v3 := int32(2147483647) - nv3 := (*int32)(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "int32" - v3s := "2147483647" - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") - addDumpTest(nv3, "(*"+v3t+")()\n") - - // Max int64. - v4 := int64(9223372036854775807) - nv4 := (*int64)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "int64" - v4s := "9223372036854775807" - addDumpTest(v4, "("+v4t+") "+v4s+"\n") - addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") - addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") - addDumpTest(nv4, "(*"+v4t+")()\n") - - // Max int. - v5 := int(2147483647) - nv5 := (*int)(nil) - pv5 := &v5 - v5Addr := fmt.Sprintf("%p", pv5) - pv5Addr := fmt.Sprintf("%p", &pv5) - v5t := "int" - v5s := "2147483647" - addDumpTest(v5, "("+v5t+") "+v5s+"\n") - addDumpTest(pv5, "(*"+v5t+")("+v5Addr+")("+v5s+")\n") - addDumpTest(&pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")("+v5s+")\n") - addDumpTest(nv5, "(*"+v5t+")()\n") -} - -func addUintDumpTests() { - // Max uint8. - v := uint8(255) - nv := (*uint8)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "uint8" - vs := "255" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Max uint16. - v2 := uint16(65535) - nv2 := (*uint16)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "uint16" - v2s := "65535" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") - - // Max uint32. - v3 := uint32(4294967295) - nv3 := (*uint32)(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "uint32" - v3s := "4294967295" - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") - addDumpTest(nv3, "(*"+v3t+")()\n") - - // Max uint64. - v4 := uint64(18446744073709551615) - nv4 := (*uint64)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "uint64" - v4s := "18446744073709551615" - addDumpTest(v4, "("+v4t+") "+v4s+"\n") - addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") - addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") - addDumpTest(nv4, "(*"+v4t+")()\n") - - // Max uint. - v5 := uint(4294967295) - nv5 := (*uint)(nil) - pv5 := &v5 - v5Addr := fmt.Sprintf("%p", pv5) - pv5Addr := fmt.Sprintf("%p", &pv5) - v5t := "uint" - v5s := "4294967295" - addDumpTest(v5, "("+v5t+") "+v5s+"\n") - addDumpTest(pv5, "(*"+v5t+")("+v5Addr+")("+v5s+")\n") - addDumpTest(&pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")("+v5s+")\n") - addDumpTest(nv5, "(*"+v5t+")()\n") -} - -func addBoolDumpTests() { - // Boolean true. - v := bool(true) - nv := (*bool)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "bool" - vs := "true" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Boolean false. - v2 := bool(false) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "bool" - v2s := "false" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") -} - -func addFloatDumpTests() { - // Standard float32. - v := float32(3.1415) - nv := (*float32)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "float32" - vs := "3.1415" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Standard float64. - v2 := float64(3.1415926) - nv2 := (*float64)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "float64" - v2s := "3.1415926" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") -} - -func addComplexDumpTests() { - // Standard complex64. - v := complex(float32(6), -2) - nv := (*complex64)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "complex64" - vs := "(6-2i)" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Standard complex128. - v2 := complex(float64(-6), 2) - nv2 := (*complex128)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "complex128" - v2s := "(-6+2i)" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") -} - -func addArrayDumpTests() { - // Array containing standard ints. - v := [3]int{1, 2, 3} - vLen := fmt.Sprintf("%d", len(v)) - vCap := fmt.Sprintf("%d", cap(v)) - nv := (*[3]int)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "int" - vs := "(len=" + vLen + " cap=" + vCap + ") {\n (" + vt + ") 1,\n (" + - vt + ") 2,\n (" + vt + ") 3\n}" - addDumpTest(v, "([3]"+vt+") "+vs+"\n") - addDumpTest(pv, "(*[3]"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**[3]"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*[3]"+vt+")()\n") - - // Array containing type with custom formatter on pointer receiver only. - v2i0 := pstringer("1") - v2i1 := pstringer("2") - v2i2 := pstringer("3") - v2 := [3]pstringer{v2i0, v2i1, v2i2} - v2i0Len := fmt.Sprintf("%d", len(v2i0)) - v2i1Len := fmt.Sprintf("%d", len(v2i1)) - v2i2Len := fmt.Sprintf("%d", len(v2i2)) - v2Len := fmt.Sprintf("%d", len(v2)) - v2Cap := fmt.Sprintf("%d", cap(v2)) - nv2 := (*[3]pstringer)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "spew_test.pstringer" - v2sp := "(len=" + v2Len + " cap=" + v2Cap + ") {\n (" + v2t + - ") (len=" + v2i0Len + ") stringer 1,\n (" + v2t + - ") (len=" + v2i1Len + ") stringer 2,\n (" + v2t + - ") (len=" + v2i2Len + ") " + "stringer 3\n}" - v2s := v2sp - if spew.UnsafeDisabled { - v2s = "(len=" + v2Len + " cap=" + v2Cap + ") {\n (" + v2t + - ") (len=" + v2i0Len + ") \"1\",\n (" + v2t + ") (len=" + - v2i1Len + ") \"2\",\n (" + v2t + ") (len=" + v2i2Len + - ") " + "\"3\"\n}" - } - addDumpTest(v2, "([3]"+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*[3]"+v2t+")("+v2Addr+")("+v2sp+")\n") - addDumpTest(&pv2, "(**[3]"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2sp+")\n") - addDumpTest(nv2, "(*[3]"+v2t+")()\n") - - // Array containing interfaces. - v3i0 := "one" - v3 := [3]interface{}{v3i0, int(2), uint(3)} - v3i0Len := fmt.Sprintf("%d", len(v3i0)) - v3Len := fmt.Sprintf("%d", len(v3)) - v3Cap := fmt.Sprintf("%d", cap(v3)) - nv3 := (*[3]interface{})(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "[3]interface {}" - v3t2 := "string" - v3t3 := "int" - v3t4 := "uint" - v3s := "(len=" + v3Len + " cap=" + v3Cap + ") {\n (" + v3t2 + ") " + - "(len=" + v3i0Len + ") \"one\",\n (" + v3t3 + ") 2,\n (" + - v3t4 + ") 3\n}" - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") - addDumpTest(nv3, "(*"+v3t+")()\n") - - // Array containing bytes. - v4 := [34]byte{ - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, - } - v4Len := fmt.Sprintf("%d", len(v4)) - v4Cap := fmt.Sprintf("%d", cap(v4)) - nv4 := (*[34]byte)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "[34]uint8" - v4s := "(len=" + v4Len + " cap=" + v4Cap + ") " + - "{\n 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20" + - " |............... |\n" + - " 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30" + - " |!\"#$%&'()*+,-./0|\n" + - " 00000020 31 32 " + - " |12|\n}" - addDumpTest(v4, "("+v4t+") "+v4s+"\n") - addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") - addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") - addDumpTest(nv4, "(*"+v4t+")()\n") -} - -func addSliceDumpTests() { - // Slice containing standard float32 values. - v := []float32{3.14, 6.28, 12.56} - vLen := fmt.Sprintf("%d", len(v)) - vCap := fmt.Sprintf("%d", cap(v)) - nv := (*[]float32)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "float32" - vs := "(len=" + vLen + " cap=" + vCap + ") {\n (" + vt + ") 3.14,\n (" + - vt + ") 6.28,\n (" + vt + ") 12.56\n}" - addDumpTest(v, "([]"+vt+") "+vs+"\n") - addDumpTest(pv, "(*[]"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**[]"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*[]"+vt+")()\n") - - // Slice containing type with custom formatter on pointer receiver only. - v2i0 := pstringer("1") - v2i1 := pstringer("2") - v2i2 := pstringer("3") - v2 := []pstringer{v2i0, v2i1, v2i2} - v2i0Len := fmt.Sprintf("%d", len(v2i0)) - v2i1Len := fmt.Sprintf("%d", len(v2i1)) - v2i2Len := fmt.Sprintf("%d", len(v2i2)) - v2Len := fmt.Sprintf("%d", len(v2)) - v2Cap := fmt.Sprintf("%d", cap(v2)) - nv2 := (*[]pstringer)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "spew_test.pstringer" - v2s := "(len=" + v2Len + " cap=" + v2Cap + ") {\n (" + v2t + ") (len=" + - v2i0Len + ") stringer 1,\n (" + v2t + ") (len=" + v2i1Len + - ") stringer 2,\n (" + v2t + ") (len=" + v2i2Len + ") " + - "stringer 3\n}" - addDumpTest(v2, "([]"+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*[]"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**[]"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*[]"+v2t+")()\n") - - // Slice containing interfaces. - v3i0 := "one" - v3 := []interface{}{v3i0, int(2), uint(3), nil} - v3i0Len := fmt.Sprintf("%d", len(v3i0)) - v3Len := fmt.Sprintf("%d", len(v3)) - v3Cap := fmt.Sprintf("%d", cap(v3)) - nv3 := (*[]interface{})(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "[]interface {}" - v3t2 := "string" - v3t3 := "int" - v3t4 := "uint" - v3t5 := "interface {}" - v3s := "(len=" + v3Len + " cap=" + v3Cap + ") {\n (" + v3t2 + ") " + - "(len=" + v3i0Len + ") \"one\",\n (" + v3t3 + ") 2,\n (" + - v3t4 + ") 3,\n (" + v3t5 + ") \n}" - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") - addDumpTest(nv3, "(*"+v3t+")()\n") - - // Slice containing bytes. - v4 := []byte{ - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, - } - v4Len := fmt.Sprintf("%d", len(v4)) - v4Cap := fmt.Sprintf("%d", cap(v4)) - nv4 := (*[]byte)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "[]uint8" - v4s := "(len=" + v4Len + " cap=" + v4Cap + ") " + - "{\n 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20" + - " |............... |\n" + - " 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30" + - " |!\"#$%&'()*+,-./0|\n" + - " 00000020 31 32 " + - " |12|\n}" - addDumpTest(v4, "("+v4t+") "+v4s+"\n") - addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") - addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") - addDumpTest(nv4, "(*"+v4t+")()\n") - - // Nil slice. - v5 := []int(nil) - nv5 := (*[]int)(nil) - pv5 := &v5 - v5Addr := fmt.Sprintf("%p", pv5) - pv5Addr := fmt.Sprintf("%p", &pv5) - v5t := "[]int" - v5s := "" - addDumpTest(v5, "("+v5t+") "+v5s+"\n") - addDumpTest(pv5, "(*"+v5t+")("+v5Addr+")("+v5s+")\n") - addDumpTest(&pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")("+v5s+")\n") - addDumpTest(nv5, "(*"+v5t+")()\n") -} - -func addStringDumpTests() { - // Standard string. - v := "test" - vLen := fmt.Sprintf("%d", len(v)) - nv := (*string)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "string" - vs := "(len=" + vLen + ") \"test\"" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") -} - -func addInterfaceDumpTests() { - // Nil interface. - var v interface{} - nv := (*interface{})(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "interface {}" - vs := "" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Sub-interface. - v2 := interface{}(uint16(65535)) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "uint16" - v2s := "65535" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") -} - -func addMapDumpTests() { - // Map with string keys and int vals. - k := "one" - kk := "two" - m := map[string]int{k: 1, kk: 2} - klen := fmt.Sprintf("%d", len(k)) // not kLen to shut golint up - kkLen := fmt.Sprintf("%d", len(kk)) - mLen := fmt.Sprintf("%d", len(m)) - nilMap := map[string]int(nil) - nm := (*map[string]int)(nil) - pm := &m - mAddr := fmt.Sprintf("%p", pm) - pmAddr := fmt.Sprintf("%p", &pm) - mt := "map[string]int" - mt1 := "string" - mt2 := "int" - ms := "(len=" + mLen + ") {\n (" + mt1 + ") (len=" + klen + ") " + - "\"one\": (" + mt2 + ") 1,\n (" + mt1 + ") (len=" + kkLen + - ") \"two\": (" + mt2 + ") 2\n}" - ms2 := "(len=" + mLen + ") {\n (" + mt1 + ") (len=" + kkLen + ") " + - "\"two\": (" + mt2 + ") 2,\n (" + mt1 + ") (len=" + klen + - ") \"one\": (" + mt2 + ") 1\n}" - addDumpTest(m, "("+mt+") "+ms+"\n", "("+mt+") "+ms2+"\n") - addDumpTest(pm, "(*"+mt+")("+mAddr+")("+ms+")\n", - "(*"+mt+")("+mAddr+")("+ms2+")\n") - addDumpTest(&pm, "(**"+mt+")("+pmAddr+"->"+mAddr+")("+ms+")\n", - "(**"+mt+")("+pmAddr+"->"+mAddr+")("+ms2+")\n") - addDumpTest(nm, "(*"+mt+")()\n") - addDumpTest(nilMap, "("+mt+") \n") - - // Map with custom formatter type on pointer receiver only keys and vals. - k2 := pstringer("one") - v2 := pstringer("1") - m2 := map[pstringer]pstringer{k2: v2} - k2Len := fmt.Sprintf("%d", len(k2)) - v2Len := fmt.Sprintf("%d", len(v2)) - m2Len := fmt.Sprintf("%d", len(m2)) - nilMap2 := map[pstringer]pstringer(nil) - nm2 := (*map[pstringer]pstringer)(nil) - pm2 := &m2 - m2Addr := fmt.Sprintf("%p", pm2) - pm2Addr := fmt.Sprintf("%p", &pm2) - m2t := "map[spew_test.pstringer]spew_test.pstringer" - m2t1 := "spew_test.pstringer" - m2t2 := "spew_test.pstringer" - m2s := "(len=" + m2Len + ") {\n (" + m2t1 + ") (len=" + k2Len + ") " + - "stringer one: (" + m2t2 + ") (len=" + v2Len + ") stringer 1\n}" - if spew.UnsafeDisabled { - m2s = "(len=" + m2Len + ") {\n (" + m2t1 + ") (len=" + k2Len + - ") " + "\"one\": (" + m2t2 + ") (len=" + v2Len + - ") \"1\"\n}" - } - addDumpTest(m2, "("+m2t+") "+m2s+"\n") - addDumpTest(pm2, "(*"+m2t+")("+m2Addr+")("+m2s+")\n") - addDumpTest(&pm2, "(**"+m2t+")("+pm2Addr+"->"+m2Addr+")("+m2s+")\n") - addDumpTest(nm2, "(*"+m2t+")()\n") - addDumpTest(nilMap2, "("+m2t+") \n") - - // Map with interface keys and values. - k3 := "one" - k3Len := fmt.Sprintf("%d", len(k3)) - m3 := map[interface{}]interface{}{k3: 1} - m3Len := fmt.Sprintf("%d", len(m3)) - nilMap3 := map[interface{}]interface{}(nil) - nm3 := (*map[interface{}]interface{})(nil) - pm3 := &m3 - m3Addr := fmt.Sprintf("%p", pm3) - pm3Addr := fmt.Sprintf("%p", &pm3) - m3t := "map[interface {}]interface {}" - m3t1 := "string" - m3t2 := "int" - m3s := "(len=" + m3Len + ") {\n (" + m3t1 + ") (len=" + k3Len + ") " + - "\"one\": (" + m3t2 + ") 1\n}" - addDumpTest(m3, "("+m3t+") "+m3s+"\n") - addDumpTest(pm3, "(*"+m3t+")("+m3Addr+")("+m3s+")\n") - addDumpTest(&pm3, "(**"+m3t+")("+pm3Addr+"->"+m3Addr+")("+m3s+")\n") - addDumpTest(nm3, "(*"+m3t+")()\n") - addDumpTest(nilMap3, "("+m3t+") \n") - - // Map with nil interface value. - k4 := "nil" - k4Len := fmt.Sprintf("%d", len(k4)) - m4 := map[string]interface{}{k4: nil} - m4Len := fmt.Sprintf("%d", len(m4)) - nilMap4 := map[string]interface{}(nil) - nm4 := (*map[string]interface{})(nil) - pm4 := &m4 - m4Addr := fmt.Sprintf("%p", pm4) - pm4Addr := fmt.Sprintf("%p", &pm4) - m4t := "map[string]interface {}" - m4t1 := "string" - m4t2 := "interface {}" - m4s := "(len=" + m4Len + ") {\n (" + m4t1 + ") (len=" + k4Len + ")" + - " \"nil\": (" + m4t2 + ") \n}" - addDumpTest(m4, "("+m4t+") "+m4s+"\n") - addDumpTest(pm4, "(*"+m4t+")("+m4Addr+")("+m4s+")\n") - addDumpTest(&pm4, "(**"+m4t+")("+pm4Addr+"->"+m4Addr+")("+m4s+")\n") - addDumpTest(nm4, "(*"+m4t+")()\n") - addDumpTest(nilMap4, "("+m4t+") \n") -} - -func addStructDumpTests() { - // Struct with primitives. - type s1 struct { - a int8 - b uint8 - } - v := s1{127, 255} - nv := (*s1)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.s1" - vt2 := "int8" - vt3 := "uint8" - vs := "{\n a: (" + vt2 + ") 127,\n b: (" + vt3 + ") 255\n}" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Struct that contains another struct. - type s2 struct { - s1 s1 - b bool - } - v2 := s2{s1{127, 255}, true} - nv2 := (*s2)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "spew_test.s2" - v2t2 := "spew_test.s1" - v2t3 := "int8" - v2t4 := "uint8" - v2t5 := "bool" - v2s := "{\n s1: (" + v2t2 + ") {\n a: (" + v2t3 + ") 127,\n b: (" + - v2t4 + ") 255\n },\n b: (" + v2t5 + ") true\n}" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") - - // Struct that contains custom type with Stringer pointer interface via both - // exported and unexported fields. - type s3 struct { - s pstringer - S pstringer - } - v3 := s3{"test", "test2"} - nv3 := (*s3)(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "spew_test.s3" - v3t2 := "spew_test.pstringer" - v3s := "{\n s: (" + v3t2 + ") (len=4) stringer test,\n S: (" + v3t2 + - ") (len=5) stringer test2\n}" - v3sp := v3s - if spew.UnsafeDisabled { - v3s = "{\n s: (" + v3t2 + ") (len=4) \"test\",\n S: (" + - v3t2 + ") (len=5) \"test2\"\n}" - v3sp = "{\n s: (" + v3t2 + ") (len=4) \"test\",\n S: (" + - v3t2 + ") (len=5) stringer test2\n}" - } - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3sp+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3sp+")\n") - addDumpTest(nv3, "(*"+v3t+")()\n") - - // Struct that contains embedded struct and field to same struct. - e := embed{"embedstr"} - eLen := fmt.Sprintf("%d", len("embedstr")) - v4 := embedwrap{embed: &e, e: &e} - nv4 := (*embedwrap)(nil) - pv4 := &v4 - eAddr := fmt.Sprintf("%p", &e) - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "spew_test.embedwrap" - v4t2 := "spew_test.embed" - v4t3 := "string" - v4s := "{\n embed: (*" + v4t2 + ")(" + eAddr + ")({\n a: (" + v4t3 + - ") (len=" + eLen + ") \"embedstr\"\n }),\n e: (*" + v4t2 + - ")(" + eAddr + ")({\n a: (" + v4t3 + ") (len=" + eLen + ")" + - " \"embedstr\"\n })\n}" - addDumpTest(v4, "("+v4t+") "+v4s+"\n") - addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") - addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") - addDumpTest(nv4, "(*"+v4t+")()\n") -} - -func addUintptrDumpTests() { - // Null pointer. - v := uintptr(0) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "uintptr" - vs := "" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - - // Address of real variable. - i := 1 - v2 := uintptr(unsafe.Pointer(&i)) - nv2 := (*uintptr)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "uintptr" - v2s := fmt.Sprintf("%p", &i) - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") -} - -func addUnsafePointerDumpTests() { - // Null pointer. - v := unsafe.Pointer(nil) - nv := (*unsafe.Pointer)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "unsafe.Pointer" - vs := "" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Address of real variable. - i := 1 - v2 := unsafe.Pointer(&i) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "unsafe.Pointer" - v2s := fmt.Sprintf("%p", &i) - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv, "(*"+vt+")()\n") -} - -func addChanDumpTests() { - // Nil channel. - var v chan int - pv := &v - nv := (*chan int)(nil) - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "chan int" - vs := "" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Real channel. - v2 := make(chan int) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "chan int" - v2s := fmt.Sprintf("%p", v2) - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") -} - -func addFuncDumpTests() { - // Function with no params and no returns. - v := addIntDumpTests - nv := (*func())(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "func()" - vs := fmt.Sprintf("%p", v) - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") - - // Function with param and no returns. - v2 := TestDump - nv2 := (*func(*testing.T))(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "func(*testing.T)" - v2s := fmt.Sprintf("%p", v2) - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") - addDumpTest(nv2, "(*"+v2t+")()\n") - - // Function with multiple params and multiple returns. - var v3 = func(i int, s string) (b bool, err error) { - return true, nil - } - nv3 := (*func(int, string) (bool, error))(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "func(int, string) (bool, error)" - v3s := fmt.Sprintf("%p", v3) - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") - addDumpTest(nv3, "(*"+v3t+")()\n") -} - -func addCircularDumpTests() { - // Struct that is circular through self referencing. - type circular struct { - c *circular - } - v := circular{nil} - v.c = &v - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.circular" - vs := "{\n c: (*" + vt + ")(" + vAddr + ")({\n c: (*" + vt + ")(" + - vAddr + ")()\n })\n}" - vs2 := "{\n c: (*" + vt + ")(" + vAddr + ")()\n}" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs2+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs2+")\n") - - // Structs that are circular through cross referencing. - v2 := xref1{nil} - ts2 := xref2{&v2} - v2.ps2 = &ts2 - pv2 := &v2 - ts2Addr := fmt.Sprintf("%p", &ts2) - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "spew_test.xref1" - v2t2 := "spew_test.xref2" - v2s := "{\n ps2: (*" + v2t2 + ")(" + ts2Addr + ")({\n ps1: (*" + v2t + - ")(" + v2Addr + ")({\n ps2: (*" + v2t2 + ")(" + ts2Addr + - ")()\n })\n })\n}" - v2s2 := "{\n ps2: (*" + v2t2 + ")(" + ts2Addr + ")({\n ps1: (*" + v2t + - ")(" + v2Addr + ")()\n })\n}" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s2+")\n") - addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s2+")\n") - - // Structs that are indirectly circular. - v3 := indirCir1{nil} - tic2 := indirCir2{nil} - tic3 := indirCir3{&v3} - tic2.ps3 = &tic3 - v3.ps2 = &tic2 - pv3 := &v3 - tic2Addr := fmt.Sprintf("%p", &tic2) - tic3Addr := fmt.Sprintf("%p", &tic3) - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "spew_test.indirCir1" - v3t2 := "spew_test.indirCir2" - v3t3 := "spew_test.indirCir3" - v3s := "{\n ps2: (*" + v3t2 + ")(" + tic2Addr + ")({\n ps3: (*" + v3t3 + - ")(" + tic3Addr + ")({\n ps1: (*" + v3t + ")(" + v3Addr + - ")({\n ps2: (*" + v3t2 + ")(" + tic2Addr + - ")()\n })\n })\n })\n}" - v3s2 := "{\n ps2: (*" + v3t2 + ")(" + tic2Addr + ")({\n ps3: (*" + v3t3 + - ")(" + tic3Addr + ")({\n ps1: (*" + v3t + ")(" + v3Addr + - ")()\n })\n })\n}" - addDumpTest(v3, "("+v3t+") "+v3s+"\n") - addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s2+")\n") - addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s2+")\n") -} - -func addPanicDumpTests() { - // Type that panics in its Stringer interface. - v := panicer(127) - nv := (*panicer)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.panicer" - vs := "(PANIC=test panic)127" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") -} - -func addErrorDumpTests() { - // Type that has a custom Error interface. - v := customError(127) - nv := (*customError)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.customError" - vs := "error: 127" - addDumpTest(v, "("+vt+") "+vs+"\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") - addDumpTest(nv, "(*"+vt+")()\n") -} - -// TestDump executes all of the tests described by dumpTests. -func TestDump(t *testing.T) { - // Setup tests. - addIntDumpTests() - addUintDumpTests() - addBoolDumpTests() - addFloatDumpTests() - addComplexDumpTests() - addArrayDumpTests() - addSliceDumpTests() - addStringDumpTests() - addInterfaceDumpTests() - addMapDumpTests() - addStructDumpTests() - addUintptrDumpTests() - addUnsafePointerDumpTests() - addChanDumpTests() - addFuncDumpTests() - addCircularDumpTests() - addPanicDumpTests() - addErrorDumpTests() - addCgoDumpTests() - - t.Logf("Running %d tests", len(dumpTests)) - for i, test := range dumpTests { - buf := new(bytes.Buffer) - spew.Fdump(buf, test.in) - s := buf.String() - if testFailed(s, test.wants) { - t.Errorf("Dump #%d\n got: %s %s", i, s, stringizeWants(test.wants)) - continue - } - } -} - -func TestDumpSortedKeys(t *testing.T) { - cfg := spew.ConfigState{SortKeys: true} - s := cfg.Sdump(map[int]string{1: "1", 3: "3", 2: "2"}) - expected := "(map[int]string) (len=3) {\n(int) 1: (string) (len=1) " + - "\"1\",\n(int) 2: (string) (len=1) \"2\",\n(int) 3: (string) " + - "(len=1) \"3\"\n" + - "}\n" - if s != expected { - t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) - } - - s = cfg.Sdump(map[stringer]int{"1": 1, "3": 3, "2": 2}) - expected = "(map[spew_test.stringer]int) (len=3) {\n" + - "(spew_test.stringer) (len=1) stringer 1: (int) 1,\n" + - "(spew_test.stringer) (len=1) stringer 2: (int) 2,\n" + - "(spew_test.stringer) (len=1) stringer 3: (int) 3\n" + - "}\n" - if s != expected { - t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) - } - - s = cfg.Sdump(map[pstringer]int{pstringer("1"): 1, pstringer("3"): 3, pstringer("2"): 2}) - expected = "(map[spew_test.pstringer]int) (len=3) {\n" + - "(spew_test.pstringer) (len=1) stringer 1: (int) 1,\n" + - "(spew_test.pstringer) (len=1) stringer 2: (int) 2,\n" + - "(spew_test.pstringer) (len=1) stringer 3: (int) 3\n" + - "}\n" - if spew.UnsafeDisabled { - expected = "(map[spew_test.pstringer]int) (len=3) {\n" + - "(spew_test.pstringer) (len=1) \"1\": (int) 1,\n" + - "(spew_test.pstringer) (len=1) \"2\": (int) 2,\n" + - "(spew_test.pstringer) (len=1) \"3\": (int) 3\n" + - "}\n" - } - if s != expected { - t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) - } - - s = cfg.Sdump(map[customError]int{customError(1): 1, customError(3): 3, customError(2): 2}) - expected = "(map[spew_test.customError]int) (len=3) {\n" + - "(spew_test.customError) error: 1: (int) 1,\n" + - "(spew_test.customError) error: 2: (int) 2,\n" + - "(spew_test.customError) error: 3: (int) 3\n" + - "}\n" - if s != expected { - t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) - } - -} diff --git a/vendor/github.com/davecgh/go-spew/spew/dumpcgo_test.go b/vendor/github.com/davecgh/go-spew/spew/dumpcgo_test.go deleted file mode 100644 index 108baa55..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/dumpcgo_test.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) 2013-2016 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when both cgo is supported and "-tags testcgo" is added to the go test -// command line. This means the cgo tests are only added (and hence run) when -// specifially requested. This configuration is used because spew itself -// does not require cgo to run even though it does handle certain cgo types -// specially. Rather than forcing all clients to require cgo and an external -// C compiler just to run the tests, this scheme makes them optional. -// +build cgo,testcgo - -package spew_test - -import ( - "fmt" - - "github.com/davecgh/go-spew/spew/testdata" -) - -func addCgoDumpTests() { - // C char pointer. - v := testdata.GetCgoCharPointer() - nv := testdata.GetCgoNullCharPointer() - pv := &v - vcAddr := fmt.Sprintf("%p", v) - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "*testdata._Ctype_char" - vs := "116" - addDumpTest(v, "("+vt+")("+vcAddr+")("+vs+")\n") - addDumpTest(pv, "(*"+vt+")("+vAddr+"->"+vcAddr+")("+vs+")\n") - addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+"->"+vcAddr+")("+vs+")\n") - addDumpTest(nv, "("+vt+")()\n") - - // C char array. - v2, v2l, v2c := testdata.GetCgoCharArray() - v2Len := fmt.Sprintf("%d", v2l) - v2Cap := fmt.Sprintf("%d", v2c) - v2t := "[6]testdata._Ctype_char" - v2s := "(len=" + v2Len + " cap=" + v2Cap + ") " + - "{\n 00000000 74 65 73 74 32 00 " + - " |test2.|\n}" - addDumpTest(v2, "("+v2t+") "+v2s+"\n") - - // C unsigned char array. - v3, v3l, v3c := testdata.GetCgoUnsignedCharArray() - v3Len := fmt.Sprintf("%d", v3l) - v3Cap := fmt.Sprintf("%d", v3c) - v3t := "[6]testdata._Ctype_unsignedchar" - v3t2 := "[6]testdata._Ctype_uchar" - v3s := "(len=" + v3Len + " cap=" + v3Cap + ") " + - "{\n 00000000 74 65 73 74 33 00 " + - " |test3.|\n}" - addDumpTest(v3, "("+v3t+") "+v3s+"\n", "("+v3t2+") "+v3s+"\n") - - // C signed char array. - v4, v4l, v4c := testdata.GetCgoSignedCharArray() - v4Len := fmt.Sprintf("%d", v4l) - v4Cap := fmt.Sprintf("%d", v4c) - v4t := "[6]testdata._Ctype_schar" - v4t2 := "testdata._Ctype_schar" - v4s := "(len=" + v4Len + " cap=" + v4Cap + ") " + - "{\n (" + v4t2 + ") 116,\n (" + v4t2 + ") 101,\n (" + v4t2 + - ") 115,\n (" + v4t2 + ") 116,\n (" + v4t2 + ") 52,\n (" + v4t2 + - ") 0\n}" - addDumpTest(v4, "("+v4t+") "+v4s+"\n") - - // C uint8_t array. - v5, v5l, v5c := testdata.GetCgoUint8tArray() - v5Len := fmt.Sprintf("%d", v5l) - v5Cap := fmt.Sprintf("%d", v5c) - v5t := "[6]testdata._Ctype_uint8_t" - v5t2 := "[6]testdata._Ctype_uchar" - v5s := "(len=" + v5Len + " cap=" + v5Cap + ") " + - "{\n 00000000 74 65 73 74 35 00 " + - " |test5.|\n}" - addDumpTest(v5, "("+v5t+") "+v5s+"\n", "("+v5t2+") "+v5s+"\n") - - // C typedefed unsigned char array. - v6, v6l, v6c := testdata.GetCgoTypdefedUnsignedCharArray() - v6Len := fmt.Sprintf("%d", v6l) - v6Cap := fmt.Sprintf("%d", v6c) - v6t := "[6]testdata._Ctype_custom_uchar_t" - v6t2 := "[6]testdata._Ctype_uchar" - v6s := "(len=" + v6Len + " cap=" + v6Cap + ") " + - "{\n 00000000 74 65 73 74 36 00 " + - " |test6.|\n}" - addDumpTest(v6, "("+v6t+") "+v6s+"\n", "("+v6t2+") "+v6s+"\n") -} diff --git a/vendor/github.com/davecgh/go-spew/spew/dumpnocgo_test.go b/vendor/github.com/davecgh/go-spew/spew/dumpnocgo_test.go deleted file mode 100644 index 52a0971f..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/dumpnocgo_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2013 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when either cgo is not supported or "-tags testcgo" is not added to the go -// test command line. This file intentionally does not setup any cgo tests in -// this scenario. -// +build !cgo !testcgo - -package spew_test - -func addCgoDumpTests() { - // Don't add any tests for cgo since this file is only compiled when - // there should not be any cgo tests. -} diff --git a/vendor/github.com/davecgh/go-spew/spew/example_test.go b/vendor/github.com/davecgh/go-spew/spew/example_test.go deleted file mode 100644 index c6ec8c6d..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/example_test.go +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew_test - -import ( - "fmt" - - "github.com/davecgh/go-spew/spew" -) - -type Flag int - -const ( - flagOne Flag = iota - flagTwo -) - -var flagStrings = map[Flag]string{ - flagOne: "flagOne", - flagTwo: "flagTwo", -} - -func (f Flag) String() string { - if s, ok := flagStrings[f]; ok { - return s - } - return fmt.Sprintf("Unknown flag (%d)", int(f)) -} - -type Bar struct { - data uintptr -} - -type Foo struct { - unexportedField Bar - ExportedField map[interface{}]interface{} -} - -// This example demonstrates how to use Dump to dump variables to stdout. -func ExampleDump() { - // The following package level declarations are assumed for this example: - /* - type Flag int - - const ( - flagOne Flag = iota - flagTwo - ) - - var flagStrings = map[Flag]string{ - flagOne: "flagOne", - flagTwo: "flagTwo", - } - - func (f Flag) String() string { - if s, ok := flagStrings[f]; ok { - return s - } - return fmt.Sprintf("Unknown flag (%d)", int(f)) - } - - type Bar struct { - data uintptr - } - - type Foo struct { - unexportedField Bar - ExportedField map[interface{}]interface{} - } - */ - - // Setup some sample data structures for the example. - bar := Bar{uintptr(0)} - s1 := Foo{bar, map[interface{}]interface{}{"one": true}} - f := Flag(5) - b := []byte{ - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, - } - - // Dump! - spew.Dump(s1, f, b) - - // Output: - // (spew_test.Foo) { - // unexportedField: (spew_test.Bar) { - // data: (uintptr) - // }, - // ExportedField: (map[interface {}]interface {}) (len=1) { - // (string) (len=3) "one": (bool) true - // } - // } - // (spew_test.Flag) Unknown flag (5) - // ([]uint8) (len=34 cap=34) { - // 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | - // 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| - // 00000020 31 32 |12| - // } - // -} - -// This example demonstrates how to use Printf to display a variable with a -// format string and inline formatting. -func ExamplePrintf() { - // Create a double pointer to a uint 8. - ui8 := uint8(5) - pui8 := &ui8 - ppui8 := &pui8 - - // Create a circular data type. - type circular struct { - ui8 uint8 - c *circular - } - c := circular{ui8: 1} - c.c = &c - - // Print! - spew.Printf("ppui8: %v\n", ppui8) - spew.Printf("circular: %v\n", c) - - // Output: - // ppui8: <**>5 - // circular: {1 <*>{1 <*>}} -} - -// This example demonstrates how to use a ConfigState. -func ExampleConfigState() { - // Modify the indent level of the ConfigState only. The global - // configuration is not modified. - scs := spew.ConfigState{Indent: "\t"} - - // Output using the ConfigState instance. - v := map[string]int{"one": 1} - scs.Printf("v: %v\n", v) - scs.Dump(v) - - // Output: - // v: map[one:1] - // (map[string]int) (len=1) { - // (string) (len=3) "one": (int) 1 - // } -} - -// This example demonstrates how to use ConfigState.Dump to dump variables to -// stdout -func ExampleConfigState_Dump() { - // See the top-level Dump example for details on the types used in this - // example. - - // Create two ConfigState instances with different indentation. - scs := spew.ConfigState{Indent: "\t"} - scs2 := spew.ConfigState{Indent: " "} - - // Setup some sample data structures for the example. - bar := Bar{uintptr(0)} - s1 := Foo{bar, map[interface{}]interface{}{"one": true}} - - // Dump using the ConfigState instances. - scs.Dump(s1) - scs2.Dump(s1) - - // Output: - // (spew_test.Foo) { - // unexportedField: (spew_test.Bar) { - // data: (uintptr) - // }, - // ExportedField: (map[interface {}]interface {}) (len=1) { - // (string) (len=3) "one": (bool) true - // } - // } - // (spew_test.Foo) { - // unexportedField: (spew_test.Bar) { - // data: (uintptr) - // }, - // ExportedField: (map[interface {}]interface {}) (len=1) { - // (string) (len=3) "one": (bool) true - // } - // } - // -} - -// This example demonstrates how to use ConfigState.Printf to display a variable -// with a format string and inline formatting. -func ExampleConfigState_Printf() { - // See the top-level Dump example for details on the types used in this - // example. - - // Create two ConfigState instances and modify the method handling of the - // first ConfigState only. - scs := spew.NewDefaultConfig() - scs2 := spew.NewDefaultConfig() - scs.DisableMethods = true - - // Alternatively - // scs := spew.ConfigState{Indent: " ", DisableMethods: true} - // scs2 := spew.ConfigState{Indent: " "} - - // This is of type Flag which implements a Stringer and has raw value 1. - f := flagTwo - - // Dump using the ConfigState instances. - scs.Printf("f: %v\n", f) - scs2.Printf("f: %v\n", f) - - // Output: - // f: 1 - // f: flagTwo -} diff --git a/vendor/github.com/davecgh/go-spew/spew/format_test.go b/vendor/github.com/davecgh/go-spew/spew/format_test.go deleted file mode 100644 index 87ee9651..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/format_test.go +++ /dev/null @@ -1,1558 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* -Test Summary: -NOTE: For each test, a nil pointer, a single pointer and double pointer to the -base test element are also tested to ensure proper indirection across all types. - -- Max int8, int16, int32, int64, int -- Max uint8, uint16, uint32, uint64, uint -- Boolean true and false -- Standard complex64 and complex128 -- Array containing standard ints -- Array containing type with custom formatter on pointer receiver only -- Array containing interfaces -- Slice containing standard float32 values -- Slice containing type with custom formatter on pointer receiver only -- Slice containing interfaces -- Nil slice -- Standard string -- Nil interface -- Sub-interface -- Map with string keys and int vals -- Map with custom formatter type on pointer receiver only keys and vals -- Map with interface keys and values -- Map with nil interface value -- Struct with primitives -- Struct that contains another struct -- Struct that contains custom type with Stringer pointer interface via both - exported and unexported fields -- Struct that contains embedded struct and field to same struct -- Uintptr to 0 (null pointer) -- Uintptr address of real variable -- Unsafe.Pointer to 0 (null pointer) -- Unsafe.Pointer to address of real variable -- Nil channel -- Standard int channel -- Function with no params and no returns -- Function with param and no returns -- Function with multiple params and multiple returns -- Struct that is circular through self referencing -- Structs that are circular through cross referencing -- Structs that are indirectly circular -- Type that panics in its Stringer interface -- Type that has a custom Error interface -- %x passthrough with uint -- %#x passthrough with uint -- %f passthrough with precision -- %f passthrough with width and precision -- %d passthrough with width -- %q passthrough with string -*/ - -package spew_test - -import ( - "bytes" - "fmt" - "testing" - "unsafe" - - "github.com/davecgh/go-spew/spew" -) - -// formatterTest is used to describe a test to be performed against NewFormatter. -type formatterTest struct { - format string - in interface{} - wants []string -} - -// formatterTests houses all of the tests to be performed against NewFormatter. -var formatterTests = make([]formatterTest, 0) - -// addFormatterTest is a helper method to append the passed input and desired -// result to formatterTests. -func addFormatterTest(format string, in interface{}, wants ...string) { - test := formatterTest{format, in, wants} - formatterTests = append(formatterTests, test) -} - -func addIntFormatterTests() { - // Max int8. - v := int8(127) - nv := (*int8)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "int8" - vs := "127" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Max int16. - v2 := int16(32767) - nv2 := (*int16)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "int16" - v2s := "32767" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Max int32. - v3 := int32(2147483647) - nv3 := (*int32)(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "int32" - v3s := "2147483647" - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s) - addFormatterTest("%v", &pv3, "<**>"+v3s) - addFormatterTest("%v", nv3, "") - addFormatterTest("%+v", v3, v3s) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - - // Max int64. - v4 := int64(9223372036854775807) - nv4 := (*int64)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "int64" - v4s := "9223372036854775807" - addFormatterTest("%v", v4, v4s) - addFormatterTest("%v", pv4, "<*>"+v4s) - addFormatterTest("%v", &pv4, "<**>"+v4s) - addFormatterTest("%v", nv4, "") - addFormatterTest("%+v", v4, v4s) - addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) - addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%#v", v4, "("+v4t+")"+v4s) - addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s) - addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s) - addFormatterTest("%#v", nv4, "(*"+v4t+")"+"") - addFormatterTest("%#+v", v4, "("+v4t+")"+v4s) - addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s) - addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"") - - // Max int. - v5 := int(2147483647) - nv5 := (*int)(nil) - pv5 := &v5 - v5Addr := fmt.Sprintf("%p", pv5) - pv5Addr := fmt.Sprintf("%p", &pv5) - v5t := "int" - v5s := "2147483647" - addFormatterTest("%v", v5, v5s) - addFormatterTest("%v", pv5, "<*>"+v5s) - addFormatterTest("%v", &pv5, "<**>"+v5s) - addFormatterTest("%v", nv5, "") - addFormatterTest("%+v", v5, v5s) - addFormatterTest("%+v", pv5, "<*>("+v5Addr+")"+v5s) - addFormatterTest("%+v", &pv5, "<**>("+pv5Addr+"->"+v5Addr+")"+v5s) - addFormatterTest("%+v", nv5, "") - addFormatterTest("%#v", v5, "("+v5t+")"+v5s) - addFormatterTest("%#v", pv5, "(*"+v5t+")"+v5s) - addFormatterTest("%#v", &pv5, "(**"+v5t+")"+v5s) - addFormatterTest("%#v", nv5, "(*"+v5t+")"+"") - addFormatterTest("%#+v", v5, "("+v5t+")"+v5s) - addFormatterTest("%#+v", pv5, "(*"+v5t+")("+v5Addr+")"+v5s) - addFormatterTest("%#+v", &pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")"+v5s) - addFormatterTest("%#+v", nv5, "(*"+v5t+")"+"") -} - -func addUintFormatterTests() { - // Max uint8. - v := uint8(255) - nv := (*uint8)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "uint8" - vs := "255" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Max uint16. - v2 := uint16(65535) - nv2 := (*uint16)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "uint16" - v2s := "65535" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Max uint32. - v3 := uint32(4294967295) - nv3 := (*uint32)(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "uint32" - v3s := "4294967295" - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s) - addFormatterTest("%v", &pv3, "<**>"+v3s) - addFormatterTest("%v", nv3, "") - addFormatterTest("%+v", v3, v3s) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - - // Max uint64. - v4 := uint64(18446744073709551615) - nv4 := (*uint64)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "uint64" - v4s := "18446744073709551615" - addFormatterTest("%v", v4, v4s) - addFormatterTest("%v", pv4, "<*>"+v4s) - addFormatterTest("%v", &pv4, "<**>"+v4s) - addFormatterTest("%v", nv4, "") - addFormatterTest("%+v", v4, v4s) - addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) - addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%#v", v4, "("+v4t+")"+v4s) - addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s) - addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s) - addFormatterTest("%#v", nv4, "(*"+v4t+")"+"") - addFormatterTest("%#+v", v4, "("+v4t+")"+v4s) - addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s) - addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"") - - // Max uint. - v5 := uint(4294967295) - nv5 := (*uint)(nil) - pv5 := &v5 - v5Addr := fmt.Sprintf("%p", pv5) - pv5Addr := fmt.Sprintf("%p", &pv5) - v5t := "uint" - v5s := "4294967295" - addFormatterTest("%v", v5, v5s) - addFormatterTest("%v", pv5, "<*>"+v5s) - addFormatterTest("%v", &pv5, "<**>"+v5s) - addFormatterTest("%v", nv5, "") - addFormatterTest("%+v", v5, v5s) - addFormatterTest("%+v", pv5, "<*>("+v5Addr+")"+v5s) - addFormatterTest("%+v", &pv5, "<**>("+pv5Addr+"->"+v5Addr+")"+v5s) - addFormatterTest("%+v", nv5, "") - addFormatterTest("%#v", v5, "("+v5t+")"+v5s) - addFormatterTest("%#v", pv5, "(*"+v5t+")"+v5s) - addFormatterTest("%#v", &pv5, "(**"+v5t+")"+v5s) - addFormatterTest("%#v", nv5, "(*"+v5t+")"+"") - addFormatterTest("%#+v", v5, "("+v5t+")"+v5s) - addFormatterTest("%#+v", pv5, "(*"+v5t+")("+v5Addr+")"+v5s) - addFormatterTest("%#+v", &pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")"+v5s) - addFormatterTest("%#v", nv5, "(*"+v5t+")"+"") -} - -func addBoolFormatterTests() { - // Boolean true. - v := bool(true) - nv := (*bool)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "bool" - vs := "true" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Boolean false. - v2 := bool(false) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "bool" - v2s := "false" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) -} - -func addFloatFormatterTests() { - // Standard float32. - v := float32(3.1415) - nv := (*float32)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "float32" - vs := "3.1415" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Standard float64. - v2 := float64(3.1415926) - nv2 := (*float64)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "float64" - v2s := "3.1415926" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") -} - -func addComplexFormatterTests() { - // Standard complex64. - v := complex(float32(6), -2) - nv := (*complex64)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "complex64" - vs := "(6-2i)" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Standard complex128. - v2 := complex(float64(-6), 2) - nv2 := (*complex128)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "complex128" - v2s := "(-6+2i)" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") -} - -func addArrayFormatterTests() { - // Array containing standard ints. - v := [3]int{1, 2, 3} - nv := (*[3]int)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "[3]int" - vs := "[1 2 3]" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Array containing type with custom formatter on pointer receiver only. - v2 := [3]pstringer{"1", "2", "3"} - nv2 := (*[3]pstringer)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "[3]spew_test.pstringer" - v2sp := "[stringer 1 stringer 2 stringer 3]" - v2s := v2sp - if spew.UnsafeDisabled { - v2s = "[1 2 3]" - } - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2sp) - addFormatterTest("%v", &pv2, "<**>"+v2sp) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2sp) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2sp) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2sp) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2sp) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2sp) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2sp) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Array containing interfaces. - v3 := [3]interface{}{"one", int(2), uint(3)} - nv3 := (*[3]interface{})(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "[3]interface {}" - v3t2 := "string" - v3t3 := "int" - v3t4 := "uint" - v3s := "[one 2 3]" - v3s2 := "[(" + v3t2 + ")one (" + v3t3 + ")2 (" + v3t4 + ")3]" - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s) - addFormatterTest("%v", &pv3, "<**>"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%+v", v3, v3s) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s2) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s2) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s2) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s2) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s2) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s2) - addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"") -} - -func addSliceFormatterTests() { - // Slice containing standard float32 values. - v := []float32{3.14, 6.28, 12.56} - nv := (*[]float32)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "[]float32" - vs := "[3.14 6.28 12.56]" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Slice containing type with custom formatter on pointer receiver only. - v2 := []pstringer{"1", "2", "3"} - nv2 := (*[]pstringer)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "[]spew_test.pstringer" - v2s := "[stringer 1 stringer 2 stringer 3]" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Slice containing interfaces. - v3 := []interface{}{"one", int(2), uint(3), nil} - nv3 := (*[]interface{})(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "[]interface {}" - v3t2 := "string" - v3t3 := "int" - v3t4 := "uint" - v3t5 := "interface {}" - v3s := "[one 2 3 ]" - v3s2 := "[(" + v3t2 + ")one (" + v3t3 + ")2 (" + v3t4 + ")3 (" + v3t5 + - ")]" - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s) - addFormatterTest("%v", &pv3, "<**>"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%+v", v3, v3s) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s2) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s2) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s2) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s2) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s2) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s2) - addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"") - - // Nil slice. - var v4 []int - nv4 := (*[]int)(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "[]int" - v4s := "" - addFormatterTest("%v", v4, v4s) - addFormatterTest("%v", pv4, "<*>"+v4s) - addFormatterTest("%v", &pv4, "<**>"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%+v", v4, v4s) - addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) - addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%#v", v4, "("+v4t+")"+v4s) - addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s) - addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s) - addFormatterTest("%#v", nv4, "(*"+v4t+")"+"") - addFormatterTest("%#+v", v4, "("+v4t+")"+v4s) - addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s) - addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"") -} - -func addStringFormatterTests() { - // Standard string. - v := "test" - nv := (*string)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "string" - vs := "test" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") -} - -func addInterfaceFormatterTests() { - // Nil interface. - var v interface{} - nv := (*interface{})(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "interface {}" - vs := "" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Sub-interface. - v2 := interface{}(uint16(65535)) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "uint16" - v2s := "65535" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) -} - -func addMapFormatterTests() { - // Map with string keys and int vals. - v := map[string]int{"one": 1, "two": 2} - nilMap := map[string]int(nil) - nv := (*map[string]int)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "map[string]int" - vs := "map[one:1 two:2]" - vs2 := "map[two:2 one:1]" - addFormatterTest("%v", v, vs, vs2) - addFormatterTest("%v", pv, "<*>"+vs, "<*>"+vs2) - addFormatterTest("%v", &pv, "<**>"+vs, "<**>"+vs2) - addFormatterTest("%+v", nilMap, "") - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs, vs2) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs, "<*>("+vAddr+")"+vs2) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs, - "<**>("+pvAddr+"->"+vAddr+")"+vs2) - addFormatterTest("%+v", nilMap, "") - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs, "("+vt+")"+vs2) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs, "(*"+vt+")"+vs2) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs, "(**"+vt+")"+vs2) - addFormatterTest("%#v", nilMap, "("+vt+")"+"") - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs, "("+vt+")"+vs2) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs, - "(*"+vt+")("+vAddr+")"+vs2) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs, - "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs2) - addFormatterTest("%#+v", nilMap, "("+vt+")"+"") - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Map with custom formatter type on pointer receiver only keys and vals. - v2 := map[pstringer]pstringer{"one": "1"} - nv2 := (*map[pstringer]pstringer)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "map[spew_test.pstringer]spew_test.pstringer" - v2s := "map[stringer one:stringer 1]" - if spew.UnsafeDisabled { - v2s = "map[one:1]" - } - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Map with interface keys and values. - v3 := map[interface{}]interface{}{"one": 1} - nv3 := (*map[interface{}]interface{})(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "map[interface {}]interface {}" - v3t1 := "string" - v3t2 := "int" - v3s := "map[one:1]" - v3s2 := "map[(" + v3t1 + ")one:(" + v3t2 + ")1]" - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s) - addFormatterTest("%v", &pv3, "<**>"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%+v", v3, v3s) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s2) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s2) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s2) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s2) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s2) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s2) - addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"") - - // Map with nil interface value - v4 := map[string]interface{}{"nil": nil} - nv4 := (*map[string]interface{})(nil) - pv4 := &v4 - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "map[string]interface {}" - v4t1 := "interface {}" - v4s := "map[nil:]" - v4s2 := "map[nil:(" + v4t1 + ")]" - addFormatterTest("%v", v4, v4s) - addFormatterTest("%v", pv4, "<*>"+v4s) - addFormatterTest("%v", &pv4, "<**>"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%+v", v4, v4s) - addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) - addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%#v", v4, "("+v4t+")"+v4s2) - addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s2) - addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s2) - addFormatterTest("%#v", nv4, "(*"+v4t+")"+"") - addFormatterTest("%#+v", v4, "("+v4t+")"+v4s2) - addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s2) - addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s2) - addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"") -} - -func addStructFormatterTests() { - // Struct with primitives. - type s1 struct { - a int8 - b uint8 - } - v := s1{127, 255} - nv := (*s1)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.s1" - vt2 := "int8" - vt3 := "uint8" - vs := "{127 255}" - vs2 := "{a:127 b:255}" - vs3 := "{a:(" + vt2 + ")127 b:(" + vt3 + ")255}" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs2) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs2) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs2) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs3) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs3) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs3) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs3) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs3) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs3) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Struct that contains another struct. - type s2 struct { - s1 s1 - b bool - } - v2 := s2{s1{127, 255}, true} - nv2 := (*s2)(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "spew_test.s2" - v2t2 := "spew_test.s1" - v2t3 := "int8" - v2t4 := "uint8" - v2t5 := "bool" - v2s := "{{127 255} true}" - v2s2 := "{s1:{a:127 b:255} b:true}" - v2s3 := "{s1:(" + v2t2 + "){a:(" + v2t3 + ")127 b:(" + v2t4 + ")255} b:(" + - v2t5 + ")true}" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s2) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s2) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s2) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s3) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s3) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s3) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s3) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s3) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s3) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Struct that contains custom type with Stringer pointer interface via both - // exported and unexported fields. - type s3 struct { - s pstringer - S pstringer - } - v3 := s3{"test", "test2"} - nv3 := (*s3)(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "spew_test.s3" - v3t2 := "spew_test.pstringer" - v3s := "{stringer test stringer test2}" - v3sp := v3s - v3s2 := "{s:stringer test S:stringer test2}" - v3s2p := v3s2 - v3s3 := "{s:(" + v3t2 + ")stringer test S:(" + v3t2 + ")stringer test2}" - v3s3p := v3s3 - if spew.UnsafeDisabled { - v3s = "{test test2}" - v3sp = "{test stringer test2}" - v3s2 = "{s:test S:test2}" - v3s2p = "{s:test S:stringer test2}" - v3s3 = "{s:(" + v3t2 + ")test S:(" + v3t2 + ")test2}" - v3s3p = "{s:(" + v3t2 + ")test S:(" + v3t2 + ")stringer test2}" - } - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3sp) - addFormatterTest("%v", &pv3, "<**>"+v3sp) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%+v", v3, v3s2) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s2p) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s2p) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s3) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s3p) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s3p) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s3) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s3p) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s3p) - addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"") - - // Struct that contains embedded struct and field to same struct. - e := embed{"embedstr"} - v4 := embedwrap{embed: &e, e: &e} - nv4 := (*embedwrap)(nil) - pv4 := &v4 - eAddr := fmt.Sprintf("%p", &e) - v4Addr := fmt.Sprintf("%p", pv4) - pv4Addr := fmt.Sprintf("%p", &pv4) - v4t := "spew_test.embedwrap" - v4t2 := "spew_test.embed" - v4t3 := "string" - v4s := "{<*>{embedstr} <*>{embedstr}}" - v4s2 := "{embed:<*>(" + eAddr + "){a:embedstr} e:<*>(" + eAddr + - "){a:embedstr}}" - v4s3 := "{embed:(*" + v4t2 + "){a:(" + v4t3 + ")embedstr} e:(*" + v4t2 + - "){a:(" + v4t3 + ")embedstr}}" - v4s4 := "{embed:(*" + v4t2 + ")(" + eAddr + "){a:(" + v4t3 + - ")embedstr} e:(*" + v4t2 + ")(" + eAddr + "){a:(" + v4t3 + ")embedstr}}" - addFormatterTest("%v", v4, v4s) - addFormatterTest("%v", pv4, "<*>"+v4s) - addFormatterTest("%v", &pv4, "<**>"+v4s) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%+v", v4, v4s2) - addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s2) - addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s2) - addFormatterTest("%+v", nv4, "") - addFormatterTest("%#v", v4, "("+v4t+")"+v4s3) - addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s3) - addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s3) - addFormatterTest("%#v", nv4, "(*"+v4t+")"+"") - addFormatterTest("%#+v", v4, "("+v4t+")"+v4s4) - addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s4) - addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s4) - addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"") -} - -func addUintptrFormatterTests() { - // Null pointer. - v := uintptr(0) - nv := (*uintptr)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "uintptr" - vs := "" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Address of real variable. - i := 1 - v2 := uintptr(unsafe.Pointer(&i)) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "uintptr" - v2s := fmt.Sprintf("%p", &i) - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) -} - -func addUnsafePointerFormatterTests() { - // Null pointer. - v := unsafe.Pointer(nil) - nv := (*unsafe.Pointer)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "unsafe.Pointer" - vs := "" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Address of real variable. - i := 1 - v2 := unsafe.Pointer(&i) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "unsafe.Pointer" - v2s := fmt.Sprintf("%p", &i) - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) -} - -func addChanFormatterTests() { - // Nil channel. - var v chan int - pv := &v - nv := (*chan int)(nil) - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "chan int" - vs := "" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Real channel. - v2 := make(chan int) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "chan int" - v2s := fmt.Sprintf("%p", v2) - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) -} - -func addFuncFormatterTests() { - // Function with no params and no returns. - v := addIntFormatterTests - nv := (*func())(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "func()" - vs := fmt.Sprintf("%p", v) - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") - - // Function with param and no returns. - v2 := TestFormatter - nv2 := (*func(*testing.T))(nil) - pv2 := &v2 - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "func(*testing.T)" - v2s := fmt.Sprintf("%p", v2) - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s) - addFormatterTest("%v", &pv2, "<**>"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%+v", v2, v2s) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%+v", nv2, "") - addFormatterTest("%#v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) - addFormatterTest("%#v", nv2, "(*"+v2t+")"+"") - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) - addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"") - - // Function with multiple params and multiple returns. - var v3 = func(i int, s string) (b bool, err error) { - return true, nil - } - nv3 := (*func(int, string) (bool, error))(nil) - pv3 := &v3 - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "func(int, string) (bool, error)" - v3s := fmt.Sprintf("%p", v3) - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s) - addFormatterTest("%v", &pv3, "<**>"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%+v", v3, v3s) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%+v", nv3, "") - addFormatterTest("%#v", v3, "("+v3t+")"+v3s) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s) - addFormatterTest("%#v", nv3, "(*"+v3t+")"+"") - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s) - addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"") -} - -func addCircularFormatterTests() { - // Struct that is circular through self referencing. - type circular struct { - c *circular - } - v := circular{nil} - v.c = &v - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.circular" - vs := "{<*>{<*>}}" - vs2 := "{<*>}" - vs3 := "{c:<*>(" + vAddr + "){c:<*>(" + vAddr + ")}}" - vs4 := "{c:<*>(" + vAddr + ")}" - vs5 := "{c:(*" + vt + "){c:(*" + vt + ")}}" - vs6 := "{c:(*" + vt + ")}" - vs7 := "{c:(*" + vt + ")(" + vAddr + "){c:(*" + vt + ")(" + vAddr + - ")}}" - vs8 := "{c:(*" + vt + ")(" + vAddr + ")}" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs2) - addFormatterTest("%v", &pv, "<**>"+vs2) - addFormatterTest("%+v", v, vs3) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs4) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs4) - addFormatterTest("%#v", v, "("+vt+")"+vs5) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs6) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs6) - addFormatterTest("%#+v", v, "("+vt+")"+vs7) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs8) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs8) - - // Structs that are circular through cross referencing. - v2 := xref1{nil} - ts2 := xref2{&v2} - v2.ps2 = &ts2 - pv2 := &v2 - ts2Addr := fmt.Sprintf("%p", &ts2) - v2Addr := fmt.Sprintf("%p", pv2) - pv2Addr := fmt.Sprintf("%p", &pv2) - v2t := "spew_test.xref1" - v2t2 := "spew_test.xref2" - v2s := "{<*>{<*>{<*>}}}" - v2s2 := "{<*>{<*>}}" - v2s3 := "{ps2:<*>(" + ts2Addr + "){ps1:<*>(" + v2Addr + "){ps2:<*>(" + - ts2Addr + ")}}}" - v2s4 := "{ps2:<*>(" + ts2Addr + "){ps1:<*>(" + v2Addr + ")}}" - v2s5 := "{ps2:(*" + v2t2 + "){ps1:(*" + v2t + "){ps2:(*" + v2t2 + - ")}}}" - v2s6 := "{ps2:(*" + v2t2 + "){ps1:(*" + v2t + ")}}" - v2s7 := "{ps2:(*" + v2t2 + ")(" + ts2Addr + "){ps1:(*" + v2t + - ")(" + v2Addr + "){ps2:(*" + v2t2 + ")(" + ts2Addr + - ")}}}" - v2s8 := "{ps2:(*" + v2t2 + ")(" + ts2Addr + "){ps1:(*" + v2t + - ")(" + v2Addr + ")}}" - addFormatterTest("%v", v2, v2s) - addFormatterTest("%v", pv2, "<*>"+v2s2) - addFormatterTest("%v", &pv2, "<**>"+v2s2) - addFormatterTest("%+v", v2, v2s3) - addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s4) - addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s4) - addFormatterTest("%#v", v2, "("+v2t+")"+v2s5) - addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s6) - addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s6) - addFormatterTest("%#+v", v2, "("+v2t+")"+v2s7) - addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s8) - addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s8) - - // Structs that are indirectly circular. - v3 := indirCir1{nil} - tic2 := indirCir2{nil} - tic3 := indirCir3{&v3} - tic2.ps3 = &tic3 - v3.ps2 = &tic2 - pv3 := &v3 - tic2Addr := fmt.Sprintf("%p", &tic2) - tic3Addr := fmt.Sprintf("%p", &tic3) - v3Addr := fmt.Sprintf("%p", pv3) - pv3Addr := fmt.Sprintf("%p", &pv3) - v3t := "spew_test.indirCir1" - v3t2 := "spew_test.indirCir2" - v3t3 := "spew_test.indirCir3" - v3s := "{<*>{<*>{<*>{<*>}}}}" - v3s2 := "{<*>{<*>{<*>}}}" - v3s3 := "{ps2:<*>(" + tic2Addr + "){ps3:<*>(" + tic3Addr + "){ps1:<*>(" + - v3Addr + "){ps2:<*>(" + tic2Addr + ")}}}}" - v3s4 := "{ps2:<*>(" + tic2Addr + "){ps3:<*>(" + tic3Addr + "){ps1:<*>(" + - v3Addr + ")}}}" - v3s5 := "{ps2:(*" + v3t2 + "){ps3:(*" + v3t3 + "){ps1:(*" + v3t + - "){ps2:(*" + v3t2 + ")}}}}" - v3s6 := "{ps2:(*" + v3t2 + "){ps3:(*" + v3t3 + "){ps1:(*" + v3t + - ")}}}" - v3s7 := "{ps2:(*" + v3t2 + ")(" + tic2Addr + "){ps3:(*" + v3t3 + ")(" + - tic3Addr + "){ps1:(*" + v3t + ")(" + v3Addr + "){ps2:(*" + v3t2 + - ")(" + tic2Addr + ")}}}}" - v3s8 := "{ps2:(*" + v3t2 + ")(" + tic2Addr + "){ps3:(*" + v3t3 + ")(" + - tic3Addr + "){ps1:(*" + v3t + ")(" + v3Addr + ")}}}" - addFormatterTest("%v", v3, v3s) - addFormatterTest("%v", pv3, "<*>"+v3s2) - addFormatterTest("%v", &pv3, "<**>"+v3s2) - addFormatterTest("%+v", v3, v3s3) - addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s4) - addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s4) - addFormatterTest("%#v", v3, "("+v3t+")"+v3s5) - addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s6) - addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s6) - addFormatterTest("%#+v", v3, "("+v3t+")"+v3s7) - addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s8) - addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s8) -} - -func addPanicFormatterTests() { - // Type that panics in its Stringer interface. - v := panicer(127) - nv := (*panicer)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.panicer" - vs := "(PANIC=test panic)127" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") -} - -func addErrorFormatterTests() { - // Type that has a custom Error interface. - v := customError(127) - nv := (*customError)(nil) - pv := &v - vAddr := fmt.Sprintf("%p", pv) - pvAddr := fmt.Sprintf("%p", &pv) - vt := "spew_test.customError" - vs := "error: 127" - addFormatterTest("%v", v, vs) - addFormatterTest("%v", pv, "<*>"+vs) - addFormatterTest("%v", &pv, "<**>"+vs) - addFormatterTest("%v", nv, "") - addFormatterTest("%+v", v, vs) - addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) - addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%+v", nv, "") - addFormatterTest("%#v", v, "("+vt+")"+vs) - addFormatterTest("%#v", pv, "(*"+vt+")"+vs) - addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) - addFormatterTest("%#v", nv, "(*"+vt+")"+"") - addFormatterTest("%#+v", v, "("+vt+")"+vs) - addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) - addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) - addFormatterTest("%#+v", nv, "(*"+vt+")"+"") -} - -func addPassthroughFormatterTests() { - // %x passthrough with uint. - v := uint(4294967295) - pv := &v - vAddr := fmt.Sprintf("%x", pv) - pvAddr := fmt.Sprintf("%x", &pv) - vs := "ffffffff" - addFormatterTest("%x", v, vs) - addFormatterTest("%x", pv, vAddr) - addFormatterTest("%x", &pv, pvAddr) - - // %#x passthrough with uint. - v2 := int(2147483647) - pv2 := &v2 - v2Addr := fmt.Sprintf("%#x", pv2) - pv2Addr := fmt.Sprintf("%#x", &pv2) - v2s := "0x7fffffff" - addFormatterTest("%#x", v2, v2s) - addFormatterTest("%#x", pv2, v2Addr) - addFormatterTest("%#x", &pv2, pv2Addr) - - // %f passthrough with precision. - addFormatterTest("%.2f", 3.1415, "3.14") - addFormatterTest("%.3f", 3.1415, "3.142") - addFormatterTest("%.4f", 3.1415, "3.1415") - - // %f passthrough with width and precision. - addFormatterTest("%5.2f", 3.1415, " 3.14") - addFormatterTest("%6.3f", 3.1415, " 3.142") - addFormatterTest("%7.4f", 3.1415, " 3.1415") - - // %d passthrough with width. - addFormatterTest("%3d", 127, "127") - addFormatterTest("%4d", 127, " 127") - addFormatterTest("%5d", 127, " 127") - - // %q passthrough with string. - addFormatterTest("%q", "test", "\"test\"") -} - -// TestFormatter executes all of the tests described by formatterTests. -func TestFormatter(t *testing.T) { - // Setup tests. - addIntFormatterTests() - addUintFormatterTests() - addBoolFormatterTests() - addFloatFormatterTests() - addComplexFormatterTests() - addArrayFormatterTests() - addSliceFormatterTests() - addStringFormatterTests() - addInterfaceFormatterTests() - addMapFormatterTests() - addStructFormatterTests() - addUintptrFormatterTests() - addUnsafePointerFormatterTests() - addChanFormatterTests() - addFuncFormatterTests() - addCircularFormatterTests() - addPanicFormatterTests() - addErrorFormatterTests() - addPassthroughFormatterTests() - - t.Logf("Running %d tests", len(formatterTests)) - for i, test := range formatterTests { - buf := new(bytes.Buffer) - spew.Fprintf(buf, test.format, test.in) - s := buf.String() - if testFailed(s, test.wants) { - t.Errorf("Formatter #%d format: %s got: %s %s", i, test.format, s, - stringizeWants(test.wants)) - continue - } - } -} - -type testStruct struct { - x int -} - -func (ts testStruct) String() string { - return fmt.Sprintf("ts.%d", ts.x) -} - -type testStructP struct { - x int -} - -func (ts *testStructP) String() string { - return fmt.Sprintf("ts.%d", ts.x) -} - -func TestPrintSortedKeys(t *testing.T) { - cfg := spew.ConfigState{SortKeys: true} - s := cfg.Sprint(map[int]string{1: "1", 3: "3", 2: "2"}) - expected := "map[1:1 2:2 3:3]" - if s != expected { - t.Errorf("Sorted keys mismatch 1:\n %v %v", s, expected) - } - - s = cfg.Sprint(map[stringer]int{"1": 1, "3": 3, "2": 2}) - expected = "map[stringer 1:1 stringer 2:2 stringer 3:3]" - if s != expected { - t.Errorf("Sorted keys mismatch 2:\n %v %v", s, expected) - } - - s = cfg.Sprint(map[pstringer]int{pstringer("1"): 1, pstringer("3"): 3, pstringer("2"): 2}) - expected = "map[stringer 1:1 stringer 2:2 stringer 3:3]" - if spew.UnsafeDisabled { - expected = "map[1:1 2:2 3:3]" - } - if s != expected { - t.Errorf("Sorted keys mismatch 3:\n %v %v", s, expected) - } - - s = cfg.Sprint(map[testStruct]int{{1}: 1, {3}: 3, {2}: 2}) - expected = "map[ts.1:1 ts.2:2 ts.3:3]" - if s != expected { - t.Errorf("Sorted keys mismatch 4:\n %v %v", s, expected) - } - - if !spew.UnsafeDisabled { - s = cfg.Sprint(map[testStructP]int{{1}: 1, {3}: 3, {2}: 2}) - expected = "map[ts.1:1 ts.2:2 ts.3:3]" - if s != expected { - t.Errorf("Sorted keys mismatch 5:\n %v %v", s, expected) - } - } - - s = cfg.Sprint(map[customError]int{customError(1): 1, customError(3): 3, customError(2): 2}) - expected = "map[error: 1:1 error: 2:2 error: 3:3]" - if s != expected { - t.Errorf("Sorted keys mismatch 6:\n %v %v", s, expected) - } -} diff --git a/vendor/github.com/davecgh/go-spew/spew/internal_test.go b/vendor/github.com/davecgh/go-spew/spew/internal_test.go deleted file mode 100644 index e312b4fa..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/internal_test.go +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* -This test file is part of the spew package rather than than the spew_test -package because it needs access to internals to properly test certain cases -which are not possible via the public interface since they should never happen. -*/ - -package spew - -import ( - "bytes" - "reflect" - "testing" -) - -// dummyFmtState implements a fake fmt.State to use for testing invalid -// reflect.Value handling. This is necessary because the fmt package catches -// invalid values before invoking the formatter on them. -type dummyFmtState struct { - bytes.Buffer -} - -func (dfs *dummyFmtState) Flag(f int) bool { - return f == int('+') -} - -func (dfs *dummyFmtState) Precision() (int, bool) { - return 0, false -} - -func (dfs *dummyFmtState) Width() (int, bool) { - return 0, false -} - -// TestInvalidReflectValue ensures the dump and formatter code handles an -// invalid reflect value properly. This needs access to internal state since it -// should never happen in real code and therefore can't be tested via the public -// API. -func TestInvalidReflectValue(t *testing.T) { - i := 1 - - // Dump invalid reflect value. - v := new(reflect.Value) - buf := new(bytes.Buffer) - d := dumpState{w: buf, cs: &Config} - d.dump(*v) - s := buf.String() - want := "" - if s != want { - t.Errorf("InvalidReflectValue #%d\n got: %s want: %s", i, s, want) - } - i++ - - // Formatter invalid reflect value. - buf2 := new(dummyFmtState) - f := formatState{value: *v, cs: &Config, fs: buf2} - f.format(*v) - s = buf2.String() - want = "" - if s != want { - t.Errorf("InvalidReflectValue #%d got: %s want: %s", i, s, want) - } -} - -// SortValues makes the internal sortValues function available to the test -// package. -func SortValues(values []reflect.Value, cs *ConfigState) { - sortValues(values, cs) -} diff --git a/vendor/github.com/davecgh/go-spew/spew/internalunsafe_test.go b/vendor/github.com/davecgh/go-spew/spew/internalunsafe_test.go deleted file mode 100644 index 80dc2217..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/internalunsafe_test.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) 2013-2016 Dave Collins - -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. - -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when the code is not running on Google App Engine, compiled by GopherJS, and -// "-tags safe" is not added to the go build command line. The "disableunsafe" -// tag is deprecated and thus should not be used. -// +build !js,!appengine,!safe,!disableunsafe,go1.4 - -/* -This test file is part of the spew package rather than than the spew_test -package because it needs access to internals to properly test certain cases -which are not possible via the public interface since they should never happen. -*/ - -package spew - -import ( - "bytes" - "reflect" - "testing" -) - -// changeKind uses unsafe to intentionally change the kind of a reflect.Value to -// the maximum kind value which does not exist. This is needed to test the -// fallback code which punts to the standard fmt library for new types that -// might get added to the language. -func changeKind(v *reflect.Value, readOnly bool) { - flags := flagField(v) - if readOnly { - *flags |= flagRO - } else { - *flags &^= flagRO - } - *flags |= flagKindMask -} - -// TestAddedReflectValue tests functionaly of the dump and formatter code which -// falls back to the standard fmt library for new types that might get added to -// the language. -func TestAddedReflectValue(t *testing.T) { - i := 1 - - // Dump using a reflect.Value that is exported. - v := reflect.ValueOf(int8(5)) - changeKind(&v, false) - buf := new(bytes.Buffer) - d := dumpState{w: buf, cs: &Config} - d.dump(v) - s := buf.String() - want := "(int8) 5" - if s != want { - t.Errorf("TestAddedReflectValue #%d\n got: %s want: %s", i, s, want) - } - i++ - - // Dump using a reflect.Value that is not exported. - changeKind(&v, true) - buf.Reset() - d.dump(v) - s = buf.String() - want = "(int8) " - if s != want { - t.Errorf("TestAddedReflectValue #%d\n got: %s want: %s", i, s, want) - } - i++ - - // Formatter using a reflect.Value that is exported. - changeKind(&v, false) - buf2 := new(dummyFmtState) - f := formatState{value: v, cs: &Config, fs: buf2} - f.format(v) - s = buf2.String() - want = "5" - if s != want { - t.Errorf("TestAddedReflectValue #%d got: %s want: %s", i, s, want) - } - i++ - - // Formatter using a reflect.Value that is not exported. - changeKind(&v, true) - buf2.Reset() - f = formatState{value: v, cs: &Config, fs: buf2} - f.format(v) - s = buf2.String() - want = "" - if s != want { - t.Errorf("TestAddedReflectValue #%d got: %s want: %s", i, s, want) - } -} diff --git a/vendor/github.com/davecgh/go-spew/spew/spew_test.go b/vendor/github.com/davecgh/go-spew/spew/spew_test.go deleted file mode 100644 index b70466c6..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/spew_test.go +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew_test - -import ( - "bytes" - "fmt" - "io/ioutil" - "os" - "testing" - - "github.com/davecgh/go-spew/spew" -) - -// spewFunc is used to identify which public function of the spew package or -// ConfigState a test applies to. -type spewFunc int - -const ( - fCSFdump spewFunc = iota - fCSFprint - fCSFprintf - fCSFprintln - fCSPrint - fCSPrintln - fCSSdump - fCSSprint - fCSSprintf - fCSSprintln - fCSErrorf - fCSNewFormatter - fErrorf - fFprint - fFprintln - fPrint - fPrintln - fSdump - fSprint - fSprintf - fSprintln -) - -// Map of spewFunc values to names for pretty printing. -var spewFuncStrings = map[spewFunc]string{ - fCSFdump: "ConfigState.Fdump", - fCSFprint: "ConfigState.Fprint", - fCSFprintf: "ConfigState.Fprintf", - fCSFprintln: "ConfigState.Fprintln", - fCSSdump: "ConfigState.Sdump", - fCSPrint: "ConfigState.Print", - fCSPrintln: "ConfigState.Println", - fCSSprint: "ConfigState.Sprint", - fCSSprintf: "ConfigState.Sprintf", - fCSSprintln: "ConfigState.Sprintln", - fCSErrorf: "ConfigState.Errorf", - fCSNewFormatter: "ConfigState.NewFormatter", - fErrorf: "spew.Errorf", - fFprint: "spew.Fprint", - fFprintln: "spew.Fprintln", - fPrint: "spew.Print", - fPrintln: "spew.Println", - fSdump: "spew.Sdump", - fSprint: "spew.Sprint", - fSprintf: "spew.Sprintf", - fSprintln: "spew.Sprintln", -} - -func (f spewFunc) String() string { - if s, ok := spewFuncStrings[f]; ok { - return s - } - return fmt.Sprintf("Unknown spewFunc (%d)", int(f)) -} - -// spewTest is used to describe a test to be performed against the public -// functions of the spew package or ConfigState. -type spewTest struct { - cs *spew.ConfigState - f spewFunc - format string - in interface{} - want string -} - -// spewTests houses the tests to be performed against the public functions of -// the spew package and ConfigState. -// -// These tests are only intended to ensure the public functions are exercised -// and are intentionally not exhaustive of types. The exhaustive type -// tests are handled in the dump and format tests. -var spewTests []spewTest - -// redirStdout is a helper function to return the standard output from f as a -// byte slice. -func redirStdout(f func()) ([]byte, error) { - tempFile, err := ioutil.TempFile("", "ss-test") - if err != nil { - return nil, err - } - fileName := tempFile.Name() - defer os.Remove(fileName) // Ignore error - - origStdout := os.Stdout - os.Stdout = tempFile - f() - os.Stdout = origStdout - tempFile.Close() - - return ioutil.ReadFile(fileName) -} - -func initSpewTests() { - // Config states with various settings. - scsDefault := spew.NewDefaultConfig() - scsNoMethods := &spew.ConfigState{Indent: " ", DisableMethods: true} - scsNoPmethods := &spew.ConfigState{Indent: " ", DisablePointerMethods: true} - scsMaxDepth := &spew.ConfigState{Indent: " ", MaxDepth: 1} - scsContinue := &spew.ConfigState{Indent: " ", ContinueOnMethod: true} - scsNoPtrAddr := &spew.ConfigState{DisablePointerAddresses: true} - scsNoCap := &spew.ConfigState{DisableCapacities: true} - - // Variables for tests on types which implement Stringer interface with and - // without a pointer receiver. - ts := stringer("test") - tps := pstringer("test") - - type ptrTester struct { - s *struct{} - } - tptr := &ptrTester{s: &struct{}{}} - - // depthTester is used to test max depth handling for structs, array, slices - // and maps. - type depthTester struct { - ic indirCir1 - arr [1]string - slice []string - m map[string]int - } - dt := depthTester{indirCir1{nil}, [1]string{"arr"}, []string{"slice"}, - map[string]int{"one": 1}} - - // Variable for tests on types which implement error interface. - te := customError(10) - - spewTests = []spewTest{ - {scsDefault, fCSFdump, "", int8(127), "(int8) 127\n"}, - {scsDefault, fCSFprint, "", int16(32767), "32767"}, - {scsDefault, fCSFprintf, "%v", int32(2147483647), "2147483647"}, - {scsDefault, fCSFprintln, "", int(2147483647), "2147483647\n"}, - {scsDefault, fCSPrint, "", int64(9223372036854775807), "9223372036854775807"}, - {scsDefault, fCSPrintln, "", uint8(255), "255\n"}, - {scsDefault, fCSSdump, "", uint8(64), "(uint8) 64\n"}, - {scsDefault, fCSSprint, "", complex(1, 2), "(1+2i)"}, - {scsDefault, fCSSprintf, "%v", complex(float32(3), 4), "(3+4i)"}, - {scsDefault, fCSSprintln, "", complex(float64(5), 6), "(5+6i)\n"}, - {scsDefault, fCSErrorf, "%#v", uint16(65535), "(uint16)65535"}, - {scsDefault, fCSNewFormatter, "%v", uint32(4294967295), "4294967295"}, - {scsDefault, fErrorf, "%v", uint64(18446744073709551615), "18446744073709551615"}, - {scsDefault, fFprint, "", float32(3.14), "3.14"}, - {scsDefault, fFprintln, "", float64(6.28), "6.28\n"}, - {scsDefault, fPrint, "", true, "true"}, - {scsDefault, fPrintln, "", false, "false\n"}, - {scsDefault, fSdump, "", complex(-10, -20), "(complex128) (-10-20i)\n"}, - {scsDefault, fSprint, "", complex(-1, -2), "(-1-2i)"}, - {scsDefault, fSprintf, "%v", complex(float32(-3), -4), "(-3-4i)"}, - {scsDefault, fSprintln, "", complex(float64(-5), -6), "(-5-6i)\n"}, - {scsNoMethods, fCSFprint, "", ts, "test"}, - {scsNoMethods, fCSFprint, "", &ts, "<*>test"}, - {scsNoMethods, fCSFprint, "", tps, "test"}, - {scsNoMethods, fCSFprint, "", &tps, "<*>test"}, - {scsNoPmethods, fCSFprint, "", ts, "stringer test"}, - {scsNoPmethods, fCSFprint, "", &ts, "<*>stringer test"}, - {scsNoPmethods, fCSFprint, "", tps, "test"}, - {scsNoPmethods, fCSFprint, "", &tps, "<*>stringer test"}, - {scsMaxDepth, fCSFprint, "", dt, "{{} [] [] map[]}"}, - {scsMaxDepth, fCSFdump, "", dt, "(spew_test.depthTester) {\n" + - " ic: (spew_test.indirCir1) {\n \n },\n" + - " arr: ([1]string) (len=1 cap=1) {\n \n },\n" + - " slice: ([]string) (len=1 cap=1) {\n \n },\n" + - " m: (map[string]int) (len=1) {\n \n }\n}\n"}, - {scsContinue, fCSFprint, "", ts, "(stringer test) test"}, - {scsContinue, fCSFdump, "", ts, "(spew_test.stringer) " + - "(len=4) (stringer test) \"test\"\n"}, - {scsContinue, fCSFprint, "", te, "(error: 10) 10"}, - {scsContinue, fCSFdump, "", te, "(spew_test.customError) " + - "(error: 10) 10\n"}, - {scsNoPtrAddr, fCSFprint, "", tptr, "<*>{<*>{}}"}, - {scsNoPtrAddr, fCSSdump, "", tptr, "(*spew_test.ptrTester)({\ns: (*struct {})({\n})\n})\n"}, - {scsNoCap, fCSSdump, "", make([]string, 0, 10), "([]string) {\n}\n"}, - {scsNoCap, fCSSdump, "", make([]string, 1, 10), "([]string) (len=1) {\n(string) \"\"\n}\n"}, - } -} - -// TestSpew executes all of the tests described by spewTests. -func TestSpew(t *testing.T) { - initSpewTests() - - t.Logf("Running %d tests", len(spewTests)) - for i, test := range spewTests { - buf := new(bytes.Buffer) - switch test.f { - case fCSFdump: - test.cs.Fdump(buf, test.in) - - case fCSFprint: - test.cs.Fprint(buf, test.in) - - case fCSFprintf: - test.cs.Fprintf(buf, test.format, test.in) - - case fCSFprintln: - test.cs.Fprintln(buf, test.in) - - case fCSPrint: - b, err := redirStdout(func() { test.cs.Print(test.in) }) - if err != nil { - t.Errorf("%v #%d %v", test.f, i, err) - continue - } - buf.Write(b) - - case fCSPrintln: - b, err := redirStdout(func() { test.cs.Println(test.in) }) - if err != nil { - t.Errorf("%v #%d %v", test.f, i, err) - continue - } - buf.Write(b) - - case fCSSdump: - str := test.cs.Sdump(test.in) - buf.WriteString(str) - - case fCSSprint: - str := test.cs.Sprint(test.in) - buf.WriteString(str) - - case fCSSprintf: - str := test.cs.Sprintf(test.format, test.in) - buf.WriteString(str) - - case fCSSprintln: - str := test.cs.Sprintln(test.in) - buf.WriteString(str) - - case fCSErrorf: - err := test.cs.Errorf(test.format, test.in) - buf.WriteString(err.Error()) - - case fCSNewFormatter: - fmt.Fprintf(buf, test.format, test.cs.NewFormatter(test.in)) - - case fErrorf: - err := spew.Errorf(test.format, test.in) - buf.WriteString(err.Error()) - - case fFprint: - spew.Fprint(buf, test.in) - - case fFprintln: - spew.Fprintln(buf, test.in) - - case fPrint: - b, err := redirStdout(func() { spew.Print(test.in) }) - if err != nil { - t.Errorf("%v #%d %v", test.f, i, err) - continue - } - buf.Write(b) - - case fPrintln: - b, err := redirStdout(func() { spew.Println(test.in) }) - if err != nil { - t.Errorf("%v #%d %v", test.f, i, err) - continue - } - buf.Write(b) - - case fSdump: - str := spew.Sdump(test.in) - buf.WriteString(str) - - case fSprint: - str := spew.Sprint(test.in) - buf.WriteString(str) - - case fSprintf: - str := spew.Sprintf(test.format, test.in) - buf.WriteString(str) - - case fSprintln: - str := spew.Sprintln(test.in) - buf.WriteString(str) - - default: - t.Errorf("%v #%d unrecognized function", test.f, i) - continue - } - s := buf.String() - if test.want != s { - t.Errorf("ConfigState #%d\n got: %s want: %s", i, s, test.want) - continue - } - } -} diff --git a/vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go b/vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go deleted file mode 100644 index 5c87dd45..00000000 --- a/vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2013 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when both cgo is supported and "-tags testcgo" is added to the go test -// command line. This code should really only be in the dumpcgo_test.go file, -// but unfortunately Go will not allow cgo in test files, so this is a -// workaround to allow cgo types to be tested. This configuration is used -// because spew itself does not require cgo to run even though it does handle -// certain cgo types specially. Rather than forcing all clients to require cgo -// and an external C compiler just to run the tests, this scheme makes them -// optional. -// +build cgo,testcgo - -package testdata - -/* -#include -typedef unsigned char custom_uchar_t; - -char *ncp = 0; -char *cp = "test"; -char ca[6] = {'t', 'e', 's', 't', '2', '\0'}; -unsigned char uca[6] = {'t', 'e', 's', 't', '3', '\0'}; -signed char sca[6] = {'t', 'e', 's', 't', '4', '\0'}; -uint8_t ui8ta[6] = {'t', 'e', 's', 't', '5', '\0'}; -custom_uchar_t tuca[6] = {'t', 'e', 's', 't', '6', '\0'}; -*/ -import "C" - -// GetCgoNullCharPointer returns a null char pointer via cgo. This is only -// used for tests. -func GetCgoNullCharPointer() interface{} { - return C.ncp -} - -// GetCgoCharPointer returns a char pointer via cgo. This is only used for -// tests. -func GetCgoCharPointer() interface{} { - return C.cp -} - -// GetCgoCharArray returns a char array via cgo and the array's len and cap. -// This is only used for tests. -func GetCgoCharArray() (interface{}, int, int) { - return C.ca, len(C.ca), cap(C.ca) -} - -// GetCgoUnsignedCharArray returns an unsigned char array via cgo and the -// array's len and cap. This is only used for tests. -func GetCgoUnsignedCharArray() (interface{}, int, int) { - return C.uca, len(C.uca), cap(C.uca) -} - -// GetCgoSignedCharArray returns a signed char array via cgo and the array's len -// and cap. This is only used for tests. -func GetCgoSignedCharArray() (interface{}, int, int) { - return C.sca, len(C.sca), cap(C.sca) -} - -// GetCgoUint8tArray returns a uint8_t array via cgo and the array's len and -// cap. This is only used for tests. -func GetCgoUint8tArray() (interface{}, int, int) { - return C.ui8ta, len(C.ui8ta), cap(C.ui8ta) -} - -// GetCgoTypdefedUnsignedCharArray returns a typedefed unsigned char array via -// cgo and the array's len and cap. This is only used for tests. -func GetCgoTypdefedUnsignedCharArray() (interface{}, int, int) { - return C.tuca, len(C.tuca), cap(C.tuca) -} diff --git a/vendor/github.com/davecgh/go-spew/test_coverage.txt b/vendor/github.com/davecgh/go-spew/test_coverage.txt deleted file mode 100644 index 2cd087a2..00000000 --- a/vendor/github.com/davecgh/go-spew/test_coverage.txt +++ /dev/null @@ -1,61 +0,0 @@ - -github.com/davecgh/go-spew/spew/dump.go dumpState.dump 100.00% (88/88) -github.com/davecgh/go-spew/spew/format.go formatState.format 100.00% (82/82) -github.com/davecgh/go-spew/spew/format.go formatState.formatPtr 100.00% (52/52) -github.com/davecgh/go-spew/spew/dump.go dumpState.dumpPtr 100.00% (44/44) -github.com/davecgh/go-spew/spew/dump.go dumpState.dumpSlice 100.00% (39/39) -github.com/davecgh/go-spew/spew/common.go handleMethods 100.00% (30/30) -github.com/davecgh/go-spew/spew/common.go printHexPtr 100.00% (18/18) -github.com/davecgh/go-spew/spew/common.go unsafeReflectValue 100.00% (13/13) -github.com/davecgh/go-spew/spew/format.go formatState.constructOrigFormat 100.00% (12/12) -github.com/davecgh/go-spew/spew/dump.go fdump 100.00% (11/11) -github.com/davecgh/go-spew/spew/format.go formatState.Format 100.00% (11/11) -github.com/davecgh/go-spew/spew/common.go init 100.00% (10/10) -github.com/davecgh/go-spew/spew/common.go printComplex 100.00% (9/9) -github.com/davecgh/go-spew/spew/common.go valuesSorter.Less 100.00% (8/8) -github.com/davecgh/go-spew/spew/format.go formatState.buildDefaultFormat 100.00% (7/7) -github.com/davecgh/go-spew/spew/format.go formatState.unpackValue 100.00% (5/5) -github.com/davecgh/go-spew/spew/dump.go dumpState.indent 100.00% (4/4) -github.com/davecgh/go-spew/spew/common.go catchPanic 100.00% (4/4) -github.com/davecgh/go-spew/spew/config.go ConfigState.convertArgs 100.00% (4/4) -github.com/davecgh/go-spew/spew/spew.go convertArgs 100.00% (4/4) -github.com/davecgh/go-spew/spew/format.go newFormatter 100.00% (3/3) -github.com/davecgh/go-spew/spew/dump.go Sdump 100.00% (3/3) -github.com/davecgh/go-spew/spew/common.go printBool 100.00% (3/3) -github.com/davecgh/go-spew/spew/common.go sortValues 100.00% (3/3) -github.com/davecgh/go-spew/spew/config.go ConfigState.Sdump 100.00% (3/3) -github.com/davecgh/go-spew/spew/dump.go dumpState.unpackValue 100.00% (3/3) -github.com/davecgh/go-spew/spew/spew.go Printf 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Println 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Sprint 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Sprintf 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Sprintln 100.00% (1/1) -github.com/davecgh/go-spew/spew/common.go printFloat 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go NewDefaultConfig 100.00% (1/1) -github.com/davecgh/go-spew/spew/common.go printInt 100.00% (1/1) -github.com/davecgh/go-spew/spew/common.go printUint 100.00% (1/1) -github.com/davecgh/go-spew/spew/common.go valuesSorter.Len 100.00% (1/1) -github.com/davecgh/go-spew/spew/common.go valuesSorter.Swap 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Errorf 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Fprint 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Fprintf 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Fprintln 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Print 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Printf 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Println 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Sprint 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Sprintf 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Sprintln 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.NewFormatter 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Fdump 100.00% (1/1) -github.com/davecgh/go-spew/spew/config.go ConfigState.Dump 100.00% (1/1) -github.com/davecgh/go-spew/spew/dump.go Fdump 100.00% (1/1) -github.com/davecgh/go-spew/spew/dump.go Dump 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Fprintln 100.00% (1/1) -github.com/davecgh/go-spew/spew/format.go NewFormatter 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Errorf 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Fprint 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Fprintf 100.00% (1/1) -github.com/davecgh/go-spew/spew/spew.go Print 100.00% (1/1) -github.com/davecgh/go-spew/spew ------------------------------- 100.00% (505/505) - diff --git a/vendor/github.com/davidlazar/go-crypto/LICENSE b/vendor/github.com/davidlazar/go-crypto/LICENSE new file mode 100644 index 00000000..a91035e1 --- /dev/null +++ b/vendor/github.com/davidlazar/go-crypto/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 David Lazar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/davidlazar/go-crypto/drbg/LICENSE b/vendor/github.com/davidlazar/go-crypto/drbg/LICENSE new file mode 100644 index 00000000..b5c6032f --- /dev/null +++ b/vendor/github.com/davidlazar/go-crypto/drbg/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2013 David Lazar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/davidlazar/go-crypto/salsa20/salsa20.go b/vendor/github.com/davidlazar/go-crypto/salsa20/salsa20.go new file mode 100644 index 00000000..4942dfee --- /dev/null +++ b/vendor/github.com/davidlazar/go-crypto/salsa20/salsa20.go @@ -0,0 +1,85 @@ +package salsa20 + +import ( + "crypto/cipher" + "encoding/binary" + + "golang.org/x/crypto/salsa20/salsa" +) + +const BlockSize = 64 + +type salsaCipher struct { + key *[32]byte + nonce [8]byte + x [BlockSize]byte + nx int + counter uint64 +} + +func New(key *[32]byte, nonce []byte) cipher.Stream { + c := new(salsaCipher) + + if len(nonce) == 24 { + var subKey [32]byte + var hNonce [16]byte + copy(hNonce[:], nonce[:16]) + salsa.HSalsa20(&subKey, &hNonce, key, &salsa.Sigma) + copy(c.nonce[:], nonce[16:]) + c.key = &subKey + } else if len(nonce) == 8 { + c.key = key + copy(c.nonce[:], nonce) + } else { + panic("salsa20: nonce must be 8 or 24 bytes") + } + return c +} + +func (c *salsaCipher) XORKeyStream(dst, src []byte) { + if len(dst) < len(src) { + src = src[:len(dst)] + } + if c.nx > 0 { + n := xorBytes(dst, src, c.x[c.nx:]) + c.nx += n + if c.nx == BlockSize { + c.nx = 0 + } + src = src[n:] + dst = dst[n:] + } + if len(src) > BlockSize { + n := len(src) &^ (BlockSize - 1) + c.blocks(dst, src[:n]) + src = src[n:] + dst = dst[n:] + } + if len(src) > 0 { + c.nx = copy(c.x[:], src) + for i := c.nx; i < len(c.x); i++ { + c.x[i] = 0 + } + c.blocks(c.x[:], c.x[:]) + copy(dst, c.x[:c.nx]) + } +} + +func (c *salsaCipher) blocks(dst, src []byte) { + var nonce [16]byte + copy(nonce[:], c.nonce[:]) + binary.LittleEndian.PutUint64(nonce[8:], c.counter) + salsa.XORKeyStream(dst, src, &nonce, c.key) + c.counter += uint64(len(src)) / 64 +} + +func xorBytes(dst, a, b []byte) int { + n := len(a) + if len(b) < n { + n = len(b) + } + for i := 0; i < n; i++ { + dst[i] = a[i] ^ b[i] + } + return n +} diff --git a/vendor/github.com/edsrzf/mmap-go/mmap_test.go b/vendor/github.com/edsrzf/mmap-go/mmap_test.go deleted file mode 100644 index 63f0ef08..00000000 --- a/vendor/github.com/edsrzf/mmap-go/mmap_test.go +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2011 Evan Shaw. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// These tests are adapted from gommap: http://labix.org/gommap -// Copyright (c) 2010, Gustavo Niemeyer - -package mmap - -import ( - "bytes" - "io/ioutil" - "os" - "path/filepath" - "testing" -) - -var testData = []byte("0123456789ABCDEF") -var testPath = filepath.Join(os.TempDir(), "testdata") - -func init() { - f := openFile(os.O_RDWR | os.O_CREATE | os.O_TRUNC) - f.Write(testData) - f.Close() -} - -func openFile(flags int) *os.File { - f, err := os.OpenFile(testPath, flags, 0644) - if err != nil { - panic(err.Error()) - } - return f -} - -func TestUnmap(t *testing.T) { - f := openFile(os.O_RDONLY) - defer f.Close() - mmap, err := Map(f, RDONLY, 0) - if err != nil { - t.Errorf("error mapping: %s", err) - } - if err := mmap.Unmap(); err != nil { - t.Errorf("error unmapping: %s", err) - } -} - -func TestReadWrite(t *testing.T) { - f := openFile(os.O_RDWR) - defer f.Close() - mmap, err := Map(f, RDWR, 0) - if err != nil { - t.Errorf("error mapping: %s", err) - } - defer mmap.Unmap() - if !bytes.Equal(testData, mmap) { - t.Errorf("mmap != testData: %q, %q", mmap, testData) - } - - mmap[9] = 'X' - mmap.Flush() - - fileData, err := ioutil.ReadAll(f) - if err != nil { - t.Errorf("error reading file: %s", err) - } - if !bytes.Equal(fileData, []byte("012345678XABCDEF")) { - t.Errorf("file wasn't modified") - } - - // leave things how we found them - mmap[9] = '9' - mmap.Flush() -} - -func TestProtFlagsAndErr(t *testing.T) { - f := openFile(os.O_RDONLY) - defer f.Close() - if _, err := Map(f, RDWR, 0); err == nil { - t.Errorf("expected error") - } -} - -func TestFlags(t *testing.T) { - f := openFile(os.O_RDWR) - defer f.Close() - mmap, err := Map(f, COPY, 0) - if err != nil { - t.Errorf("error mapping: %s", err) - } - defer mmap.Unmap() - - mmap[9] = 'X' - mmap.Flush() - - fileData, err := ioutil.ReadAll(f) - if err != nil { - t.Errorf("error reading file: %s", err) - } - if !bytes.Equal(fileData, testData) { - t.Errorf("file was modified") - } -} - -// Test that we can map files from non-0 offsets -// The page size on most Unixes is 4KB, but on Windows it's 64KB -func TestNonZeroOffset(t *testing.T) { - const pageSize = 65536 - - // Create a 2-page sized file - bigFilePath := filepath.Join(os.TempDir(), "nonzero") - fileobj, err := os.OpenFile(bigFilePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - panic(err.Error()) - } - - bigData := make([]byte, 2*pageSize, 2*pageSize) - fileobj.Write(bigData) - fileobj.Close() - - // Map the first page by itself - fileobj, err = os.OpenFile(bigFilePath, os.O_RDONLY, 0) - if err != nil { - panic(err.Error()) - } - m, err := MapRegion(fileobj, pageSize, RDONLY, 0, 0) - if err != nil { - t.Errorf("error mapping file: %s", err) - } - m.Unmap() - fileobj.Close() - - // Map the second page by itself - fileobj, err = os.OpenFile(bigFilePath, os.O_RDONLY, 0) - if err != nil { - panic(err.Error()) - } - m, err = MapRegion(fileobj, pageSize, RDONLY, 0, pageSize) - if err != nil { - t.Errorf("error mapping file: %s", err) - } - err = m.Unmap() - if err != nil { - t.Error(err) - } - - m, err = MapRegion(fileobj, pageSize, RDONLY, 0, 1) - if err == nil { - t.Error("expect error because offset is not multiple of page size") - } - - fileobj.Close() -} diff --git a/vendor/github.com/ethereum/go-ethereum/.github/CODEOWNERS b/vendor/github.com/ethereum/go-ethereum/.github/CODEOWNERS deleted file mode 100644 index ed59c98c..00000000 --- a/vendor/github.com/ethereum/go-ethereum/.github/CODEOWNERS +++ /dev/null @@ -1,18 +0,0 @@ -# Lines starting with '#' are comments. -# Each line is a file pattern followed by one or more owners. - -accounts/usbwallet @karalabe -accounts/scwallet @gballet -accounts/abi @gballet -consensus @karalabe -core/ @karalabe @holiman -eth/ @karalabe -graphql/ @gballet -les/ @zsfelfoldi -light/ @zsfelfoldi -mobile/ @karalabe -p2p/ @fjl @zsfelfoldi -p2p/simulations @zelig @nonsense @janos @justelad -p2p/protocols @zelig @nonsense @janos @justelad -p2p/testing @zelig @nonsense @janos @justelad -whisper/ @gballet @gluk256 diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/clef/main.go b/vendor/github.com/ethereum/go-ethereum/cmd/clef/main.go deleted file mode 100644 index fecfcafa..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/clef/main.go +++ /dev/null @@ -1,983 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package main - -import ( - "bufio" - "context" - "crypto/rand" - "crypto/sha256" - "encoding/hex" - "encoding/json" - "fmt" - "io" - "io/ioutil" - "math/big" - "os" - "os/signal" - "os/user" - "path/filepath" - "runtime" - "strings" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/cmd/utils" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/console" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/internal/ethapi" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/signer/core" - "github.com/ethereum/go-ethereum/signer/fourbyte" - "github.com/ethereum/go-ethereum/signer/rules" - "github.com/ethereum/go-ethereum/signer/storage" - "gopkg.in/urfave/cli.v1" -) - -const legalWarning = ` -WARNING! - -Clef is an account management tool. It may, like any software, contain bugs. - -Please take care to -- backup your keystore files, -- verify that the keystore(s) can be opened with your password. - -Clef is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. -` - -var ( - logLevelFlag = cli.IntFlag{ - Name: "loglevel", - Value: 4, - Usage: "log level to emit to the screen", - } - advancedMode = cli.BoolFlag{ - Name: "advanced", - Usage: "If enabled, issues warnings instead of rejections for suspicious requests. Default off", - } - keystoreFlag = cli.StringFlag{ - Name: "keystore", - Value: filepath.Join(node.DefaultDataDir(), "keystore"), - Usage: "Directory for the keystore", - } - configdirFlag = cli.StringFlag{ - Name: "configdir", - Value: DefaultConfigDir(), - Usage: "Directory for Clef configuration", - } - chainIdFlag = cli.Int64Flag{ - Name: "chainid", - Value: params.MainnetChainConfig.ChainID.Int64(), - Usage: "Chain id to use for signing (1=mainnet, 3=ropsten, 4=rinkeby, 5=Goerli)", - } - rpcPortFlag = cli.IntFlag{ - Name: "rpcport", - Usage: "HTTP-RPC server listening port", - Value: node.DefaultHTTPPort + 5, - } - signerSecretFlag = cli.StringFlag{ - Name: "signersecret", - Usage: "A file containing the (encrypted) master seed to encrypt Clef data, e.g. keystore credentials and ruleset hash", - } - customDBFlag = cli.StringFlag{ - Name: "4bytedb-custom", - Usage: "File used for writing new 4byte-identifiers submitted via API", - Value: "./4byte-custom.json", - } - auditLogFlag = cli.StringFlag{ - Name: "auditlog", - Usage: "File used to emit audit logs. Set to \"\" to disable", - Value: "audit.log", - } - ruleFlag = cli.StringFlag{ - Name: "rules", - Usage: "Enable rule-engine", - Value: "", - } - stdiouiFlag = cli.BoolFlag{ - Name: "stdio-ui", - Usage: "Use STDIN/STDOUT as a channel for an external UI. " + - "This means that an STDIN/STDOUT is used for RPC-communication with a e.g. a graphical user " + - "interface, and can be used when Clef is started by an external process.", - } - testFlag = cli.BoolFlag{ - Name: "stdio-ui-test", - Usage: "Mechanism to test interface between Clef and UI. Requires 'stdio-ui'.", - } - app = cli.NewApp() - initCommand = cli.Command{ - Action: utils.MigrateFlags(initializeSecrets), - Name: "init", - Usage: "Initialize the signer, generate secret storage", - ArgsUsage: "", - Flags: []cli.Flag{ - logLevelFlag, - configdirFlag, - }, - Description: ` -The init command generates a master seed which Clef can use to store credentials and data needed for -the rule-engine to work.`, - } - attestCommand = cli.Command{ - Action: utils.MigrateFlags(attestFile), - Name: "attest", - Usage: "Attest that a js-file is to be used", - ArgsUsage: "", - Flags: []cli.Flag{ - logLevelFlag, - configdirFlag, - signerSecretFlag, - }, - Description: ` -The attest command stores the sha256 of the rule.js-file that you want to use for automatic processing of -incoming requests. - -Whenever you make an edit to the rule file, you need to use attestation to tell -Clef that the file is 'safe' to execute.`, - } - - setCredentialCommand = cli.Command{ - Action: utils.MigrateFlags(setCredential), - Name: "setpw", - Usage: "Store a credential for a keystore file", - ArgsUsage: "
", - Flags: []cli.Flag{ - logLevelFlag, - configdirFlag, - signerSecretFlag, - }, - Description: ` -The setpw command stores a password for a given address (keyfile). If you enter a blank passphrase, it will -remove any stored credential for that address (keyfile) -`} - gendocCommand = cli.Command{ - Action: GenDoc, - Name: "gendoc", - Usage: "Generate documentation about json-rpc format", - Description: ` -The gendoc generates example structures of the json-rpc communication types. -`} -) - -func init() { - app.Name = "Clef" - app.Usage = "Manage Ethereum account operations" - app.Flags = []cli.Flag{ - logLevelFlag, - keystoreFlag, - configdirFlag, - chainIdFlag, - utils.LightKDFFlag, - utils.NoUSBFlag, - utils.RPCListenAddrFlag, - utils.RPCVirtualHostsFlag, - utils.IPCDisabledFlag, - utils.IPCPathFlag, - utils.RPCEnabledFlag, - rpcPortFlag, - signerSecretFlag, - customDBFlag, - auditLogFlag, - ruleFlag, - stdiouiFlag, - testFlag, - advancedMode, - } - app.Action = signer - app.Commands = []cli.Command{initCommand, attestCommand, setCredentialCommand, gendocCommand} - -} -func main() { - if err := app.Run(os.Args); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func initializeSecrets(c *cli.Context) error { - if err := initialize(c); err != nil { - return err - } - configDir := c.GlobalString(configdirFlag.Name) - - masterSeed := make([]byte, 256) - num, err := io.ReadFull(rand.Reader, masterSeed) - if err != nil { - return err - } - if num != len(masterSeed) { - return fmt.Errorf("failed to read enough random") - } - - n, p := keystore.StandardScryptN, keystore.StandardScryptP - if c.GlobalBool(utils.LightKDFFlag.Name) { - n, p = keystore.LightScryptN, keystore.LightScryptP - } - text := "The master seed of clef is locked with a password. Please give a password. Do not forget this password." - var password string - for { - password = getPassPhrase(text, true) - if err := core.ValidatePasswordFormat(password); err != nil { - fmt.Printf("invalid password: %v\n", err) - } else { - break - } - } - cipherSeed, err := encryptSeed(masterSeed, []byte(password), n, p) - if err != nil { - return fmt.Errorf("failed to encrypt master seed: %v", err) - } - - err = os.Mkdir(configDir, 0700) - if err != nil && !os.IsExist(err) { - return err - } - location := filepath.Join(configDir, "masterseed.json") - if _, err := os.Stat(location); err == nil { - return fmt.Errorf("file %v already exists, will not overwrite", location) - } - err = ioutil.WriteFile(location, cipherSeed, 0400) - if err != nil { - return err - } - fmt.Printf("A master seed has been generated into %s\n", location) - fmt.Printf(` -This is required to be able to store credentials, such as : -* Passwords for keystores (used by rule engine) -* Storage for javascript rules -* Hash of rule-file - -You should treat that file with utmost secrecy, and make a backup of it. -NOTE: This file does not contain your accounts. Those need to be backed up separately! - -`) - return nil -} -func attestFile(ctx *cli.Context) error { - if len(ctx.Args()) < 1 { - utils.Fatalf("This command requires an argument.") - } - if err := initialize(ctx); err != nil { - return err - } - - stretchedKey, err := readMasterKey(ctx, nil) - if err != nil { - utils.Fatalf(err.Error()) - } - configDir := ctx.GlobalString(configdirFlag.Name) - vaultLocation := filepath.Join(configDir, common.Bytes2Hex(crypto.Keccak256([]byte("vault"), stretchedKey)[:10])) - confKey := crypto.Keccak256([]byte("config"), stretchedKey) - - // Initialize the encrypted storages - configStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "config.json"), confKey) - val := ctx.Args().First() - configStorage.Put("ruleset_sha256", val) - log.Info("Ruleset attestation updated", "sha256", val) - return nil -} - -func setCredential(ctx *cli.Context) error { - if len(ctx.Args()) < 1 { - utils.Fatalf("This command requires an address to be passed as an argument.") - } - if err := initialize(ctx); err != nil { - return err - } - - address := ctx.Args().First() - password := getPassPhrase("Enter a passphrase to store with this address.", true) - - stretchedKey, err := readMasterKey(ctx, nil) - if err != nil { - utils.Fatalf(err.Error()) - } - configDir := ctx.GlobalString(configdirFlag.Name) - vaultLocation := filepath.Join(configDir, common.Bytes2Hex(crypto.Keccak256([]byte("vault"), stretchedKey)[:10])) - pwkey := crypto.Keccak256([]byte("credentials"), stretchedKey) - - // Initialize the encrypted storages - pwStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "credentials.json"), pwkey) - pwStorage.Put(address, password) - log.Info("Credential store updated", "key", address) - return nil -} - -func initialize(c *cli.Context) error { - // Set up the logger to print everything - logOutput := os.Stdout - if c.GlobalBool(stdiouiFlag.Name) { - logOutput = os.Stderr - // If using the stdioui, we can't do the 'confirm'-flow - fmt.Fprintf(logOutput, legalWarning) - } else { - if !confirm(legalWarning) { - return fmt.Errorf("aborted by user") - } - } - - log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(c.Int(logLevelFlag.Name)), log.StreamHandler(logOutput, log.TerminalFormat(true)))) - return nil -} - -func signer(c *cli.Context) error { - if err := initialize(c); err != nil { - return err - } - var ( - ui core.UIClientAPI - ) - if c.GlobalBool(stdiouiFlag.Name) { - log.Info("Using stdin/stdout as UI-channel") - ui = core.NewStdIOUI() - } else { - log.Info("Using CLI as UI-channel") - ui = core.NewCommandlineUI() - } - // 4bytedb data - fourByteLocal := c.GlobalString(customDBFlag.Name) - db, err := fourbyte.NewWithFile(fourByteLocal) - if err != nil { - utils.Fatalf(err.Error()) - } - embeds, locals := db.Size() - log.Info("Loaded 4byte database", "embeds", embeds, "locals", locals, "local", fourByteLocal) - - var ( - api core.ExternalAPI - pwStorage storage.Storage = &storage.NoStorage{} - ) - - configDir := c.GlobalString(configdirFlag.Name) - if stretchedKey, err := readMasterKey(c, ui); err != nil { - log.Info("No master seed provided, rules disabled", "error", err) - } else { - vaultLocation := filepath.Join(configDir, common.Bytes2Hex(crypto.Keccak256([]byte("vault"), stretchedKey)[:10])) - - // Generate domain specific keys - pwkey := crypto.Keccak256([]byte("credentials"), stretchedKey) - jskey := crypto.Keccak256([]byte("jsstorage"), stretchedKey) - confkey := crypto.Keccak256([]byte("config"), stretchedKey) - - // Initialize the encrypted storages - pwStorage = storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "credentials.json"), pwkey) - jsStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "jsstorage.json"), jskey) - configStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "config.json"), confkey) - - //Do we have a rule-file? - if ruleFile := c.GlobalString(ruleFlag.Name); ruleFile != "" { - ruleJS, err := ioutil.ReadFile(c.GlobalString(ruleFile)) - if err != nil { - log.Info("Could not load rulefile, rules not enabled", "file", "rulefile") - } else { - shasum := sha256.Sum256(ruleJS) - foundShaSum := hex.EncodeToString(shasum[:]) - storedShasum := configStorage.Get("ruleset_sha256") - if storedShasum != foundShaSum { - log.Info("Could not validate ruleset hash, rules not enabled", "got", foundShaSum, "expected", storedShasum) - } else { - // Initialize rules - ruleEngine, err := rules.NewRuleEvaluator(ui, jsStorage) - if err != nil { - utils.Fatalf(err.Error()) - } - ruleEngine.Init(string(ruleJS)) - ui = ruleEngine - log.Info("Rule engine configured", "file", c.String(ruleFlag.Name)) - } - } - } - } - var ( - chainId = c.GlobalInt64(chainIdFlag.Name) - ksLoc = c.GlobalString(keystoreFlag.Name) - lightKdf = c.GlobalBool(utils.LightKDFFlag.Name) - advanced = c.GlobalBool(advancedMode.Name) - nousb = c.GlobalBool(utils.NoUSBFlag.Name) - ) - log.Info("Starting signer", "chainid", chainId, "keystore", ksLoc, - "light-kdf", lightKdf, "advanced", advanced) - am := core.StartClefAccountManager(ksLoc, nousb, lightKdf) - apiImpl := core.NewSignerAPI(am, chainId, nousb, ui, db, advanced, pwStorage) - - // Establish the bidirectional communication, by creating a new UI backend and registering - // it with the UI. - ui.RegisterUIServer(core.NewUIServerAPI(apiImpl)) - api = apiImpl - // Audit logging - if logfile := c.GlobalString(auditLogFlag.Name); logfile != "" { - api, err = core.NewAuditLogger(logfile, api) - if err != nil { - utils.Fatalf(err.Error()) - } - log.Info("Audit logs configured", "file", logfile) - } - // register signer API with server - var ( - extapiURL = "n/a" - ipcapiURL = "n/a" - ) - rpcAPI := []rpc.API{ - { - Namespace: "account", - Public: true, - Service: api, - Version: "1.0"}, - } - if c.GlobalBool(utils.RPCEnabledFlag.Name) { - - vhosts := splitAndTrim(c.GlobalString(utils.RPCVirtualHostsFlag.Name)) - cors := splitAndTrim(c.GlobalString(utils.RPCCORSDomainFlag.Name)) - - // start http server - httpEndpoint := fmt.Sprintf("%s:%d", c.GlobalString(utils.RPCListenAddrFlag.Name), c.Int(rpcPortFlag.Name)) - listener, _, err := rpc.StartHTTPEndpoint(httpEndpoint, rpcAPI, []string{"account"}, cors, vhosts, rpc.DefaultHTTPTimeouts) - if err != nil { - utils.Fatalf("Could not start RPC api: %v", err) - } - extapiURL = fmt.Sprintf("http://%s", httpEndpoint) - log.Info("HTTP endpoint opened", "url", extapiURL) - - defer func() { - listener.Close() - log.Info("HTTP endpoint closed", "url", httpEndpoint) - }() - - } - if !c.GlobalBool(utils.IPCDisabledFlag.Name) { - if c.IsSet(utils.IPCPathFlag.Name) { - ipcapiURL = c.GlobalString(utils.IPCPathFlag.Name) - } else { - ipcapiURL = filepath.Join(configDir, "clef.ipc") - } - - listener, _, err := rpc.StartIPCEndpoint(ipcapiURL, rpcAPI) - if err != nil { - utils.Fatalf("Could not start IPC api: %v", err) - } - log.Info("IPC endpoint opened", "url", ipcapiURL) - defer func() { - listener.Close() - log.Info("IPC endpoint closed", "url", ipcapiURL) - }() - - } - - if c.GlobalBool(testFlag.Name) { - log.Info("Performing UI test") - go testExternalUI(apiImpl) - } - ui.OnSignerStartup(core.StartupInfo{ - Info: map[string]interface{}{ - "extapi_version": core.ExternalAPIVersion, - "intapi_version": core.InternalAPIVersion, - "extapi_http": extapiURL, - "extapi_ipc": ipcapiURL, - }, - }) - - abortChan := make(chan os.Signal) - signal.Notify(abortChan, os.Interrupt) - - sig := <-abortChan - log.Info("Exiting...", "signal", sig) - - return nil -} - -// splitAndTrim splits input separated by a comma -// and trims excessive white space from the substrings. -func splitAndTrim(input string) []string { - result := strings.Split(input, ",") - for i, r := range result { - result[i] = strings.TrimSpace(r) - } - return result -} - -// DefaultConfigDir is the default config directory to use for the vaults and other -// persistence requirements. -func DefaultConfigDir() string { - // Try to place the data folder in the user's home dir - home := homeDir() - if home != "" { - if runtime.GOOS == "darwin" { - return filepath.Join(home, "Library", "Signer") - } else if runtime.GOOS == "windows" { - appdata := os.Getenv("APPDATA") - if appdata != "" { - return filepath.Join(appdata, "Signer") - } else { - return filepath.Join(home, "AppData", "Roaming", "Signer") - } - } else { - return filepath.Join(home, ".clef") - } - } - // As we cannot guess a stable location, return empty and handle later - return "" -} - -func homeDir() string { - if home := os.Getenv("HOME"); home != "" { - return home - } - if usr, err := user.Current(); err == nil { - return usr.HomeDir - } - return "" -} -func readMasterKey(ctx *cli.Context, ui core.UIClientAPI) ([]byte, error) { - var ( - file string - configDir = ctx.GlobalString(configdirFlag.Name) - ) - if ctx.GlobalIsSet(signerSecretFlag.Name) { - file = ctx.GlobalString(signerSecretFlag.Name) - } else { - file = filepath.Join(configDir, "masterseed.json") - } - if err := checkFile(file); err != nil { - return nil, err - } - cipherKey, err := ioutil.ReadFile(file) - if err != nil { - return nil, err - } - var password string - // If ui is not nil, get the password from ui. - if ui != nil { - resp, err := ui.OnInputRequired(core.UserInputRequest{ - Title: "Master Password", - Prompt: "Please enter the password to decrypt the master seed", - IsPassword: true}) - if err != nil { - return nil, err - } - password = resp.Text - } else { - password = getPassPhrase("Decrypt master seed of clef", false) - } - masterSeed, err := decryptSeed(cipherKey, password) - if err != nil { - return nil, fmt.Errorf("failed to decrypt the master seed of clef") - } - if len(masterSeed) < 256 { - return nil, fmt.Errorf("master seed of insufficient length, expected >255 bytes, got %d", len(masterSeed)) - } - - // Create vault location - vaultLocation := filepath.Join(configDir, common.Bytes2Hex(crypto.Keccak256([]byte("vault"), masterSeed)[:10])) - err = os.Mkdir(vaultLocation, 0700) - if err != nil && !os.IsExist(err) { - return nil, err - } - return masterSeed, nil -} - -// checkFile is a convenience function to check if a file -// * exists -// * is mode 0400 -func checkFile(filename string) error { - info, err := os.Stat(filename) - if err != nil { - return fmt.Errorf("failed stat on %s: %v", filename, err) - } - // Check the unix permission bits - if info.Mode().Perm()&0377 != 0 { - return fmt.Errorf("file (%v) has insecure file permissions (%v)", filename, info.Mode().String()) - } - return nil -} - -// confirm displays a text and asks for user confirmation -func confirm(text string) bool { - fmt.Printf(text) - fmt.Printf("\nEnter 'ok' to proceed:\n>") - - text, err := bufio.NewReader(os.Stdin).ReadString('\n') - if err != nil { - log.Crit("Failed to read user input", "err", err) - } - - if text := strings.TrimSpace(text); text == "ok" { - return true - } - return false -} - -func testExternalUI(api *core.SignerAPI) { - - ctx := context.WithValue(context.Background(), "remote", "clef binary") - ctx = context.WithValue(ctx, "scheme", "in-proc") - ctx = context.WithValue(ctx, "local", "main") - errs := make([]string, 0) - - a := common.HexToAddress("0xdeadbeef000000000000000000000000deadbeef") - - queryUser := func(q string) string { - resp, err := api.UI.OnInputRequired(core.UserInputRequest{ - Title: "Testing", - Prompt: q, - }) - if err != nil { - errs = append(errs, err.Error()) - } - return resp.Text - } - expectResponse := func(testcase, question, expect string) { - if got := queryUser(question); got != expect { - errs = append(errs, fmt.Sprintf("%s: got %v, expected %v", testcase, got, expect)) - } - } - expectApprove := func(testcase string, err error) { - if err == nil || err == accounts.ErrUnknownAccount { - return - } - errs = append(errs, fmt.Sprintf("%v: expected no error, got %v", testcase, err.Error())) - } - expectDeny := func(testcase string, err error) { - if err == nil || err != core.ErrRequestDenied { - errs = append(errs, fmt.Sprintf("%v: expected ErrRequestDenied, got %v", testcase, err)) - } - } - - // Test display of info and error - { - api.UI.ShowInfo("If you see this message, enter 'yes' to next question") - expectResponse("showinfo", "Did you see the message? [yes/no]", "yes") - api.UI.ShowError("If you see this message, enter 'yes' to the next question") - expectResponse("showerror", "Did you see the message? [yes/no]", "yes") - } - { // Sign data test - clique header - api.UI.ShowInfo("Please approve the next request for signing a clique header") - cliqueHeader := types.Header{ - common.HexToHash("0000H45H"), - common.HexToHash("0000H45H"), - common.HexToAddress("0000H45H"), - common.HexToHash("0000H00H"), - common.HexToHash("0000H45H"), - common.HexToHash("0000H45H"), - types.Bloom{}, - big.NewInt(1337), - big.NewInt(1337), - 1338, - 1338, - 1338, - []byte("Extra data Extra data Extra data Extra data Extra data Extra data Extra data Extra data"), - common.HexToHash("0x0000H45H"), - types.BlockNonce{}, - } - cliqueRlp, err := rlp.EncodeToBytes(cliqueHeader) - if err != nil { - utils.Fatalf("Should not error: %v", err) - } - addr, _ := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") - _, err = api.SignData(ctx, accounts.MimetypeClique, *addr, hexutil.Encode(cliqueRlp)) - expectApprove("signdata - clique header", err) - } - { // Sign data test - plain text - api.UI.ShowInfo("Please approve the next request for signing text") - addr, _ := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") - _, err := api.SignData(ctx, accounts.MimetypeTextPlain, *addr, hexutil.Encode([]byte("hello world"))) - expectApprove("signdata - text", err) - } - { // Sign data test - plain text reject - api.UI.ShowInfo("Please deny the next request for signing text") - addr, _ := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") - _, err := api.SignData(ctx, accounts.MimetypeTextPlain, *addr, hexutil.Encode([]byte("hello world"))) - expectDeny("signdata - text", err) - } - { // Sign transaction - - api.UI.ShowInfo("Please reject next transaction") - data := hexutil.Bytes([]byte{}) - to := common.NewMixedcaseAddress(a) - tx := core.SendTxArgs{ - Data: &data, - Nonce: 0x1, - Value: hexutil.Big(*big.NewInt(6)), - From: common.NewMixedcaseAddress(a), - To: &to, - GasPrice: hexutil.Big(*big.NewInt(5)), - Gas: 1000, - Input: nil, - } - _, err := api.SignTransaction(ctx, tx, nil) - expectDeny("signtransaction [1]", err) - expectResponse("signtransaction [2]", "Did you see any warnings for the last transaction? (yes/no)", "no") - } - { // Listing - api.UI.ShowInfo("Please reject listing-request") - _, err := api.List(ctx) - expectDeny("list", err) - } - { // Import - api.UI.ShowInfo("Please reject new account-request") - _, err := api.New(ctx) - expectDeny("newaccount", err) - } - { // Metadata - api.UI.ShowInfo("Please check if you see the Origin in next listing (approve or deny)") - api.List(context.WithValue(ctx, "Origin", "origin.com")) - expectResponse("metadata - origin", "Did you see origin (origin.com)? [yes/no] ", "yes") - } - - for _, e := range errs { - log.Error(e) - } - result := fmt.Sprintf("Tests completed. %d errors:\n%s\n", len(errs), strings.Join(errs, "\n")) - api.UI.ShowInfo(result) - -} - -// getPassPhrase retrieves the password associated with clef, either fetched -// from a list of preloaded passphrases, or requested interactively from the user. -// TODO: there are many `getPassPhrase` functions, it will be better to abstract them into one. -func getPassPhrase(prompt string, confirmation bool) string { - fmt.Println(prompt) - password, err := console.Stdin.PromptPassword("Passphrase: ") - if err != nil { - utils.Fatalf("Failed to read passphrase: %v", err) - } - if confirmation { - confirm, err := console.Stdin.PromptPassword("Repeat passphrase: ") - if err != nil { - utils.Fatalf("Failed to read passphrase confirmation: %v", err) - } - if password != confirm { - utils.Fatalf("Passphrases do not match") - } - } - return password -} - -type encryptedSeedStorage struct { - Description string `json:"description"` - Version int `json:"version"` - Params keystore.CryptoJSON `json:"params"` -} - -// encryptSeed uses a similar scheme as the keystore uses, but with a different wrapping, -// to encrypt the master seed -func encryptSeed(seed []byte, auth []byte, scryptN, scryptP int) ([]byte, error) { - cryptoStruct, err := keystore.EncryptDataV3(seed, auth, scryptN, scryptP) - if err != nil { - return nil, err - } - return json.Marshal(&encryptedSeedStorage{"Clef seed", 1, cryptoStruct}) -} - -// decryptSeed decrypts the master seed -func decryptSeed(keyjson []byte, auth string) ([]byte, error) { - var encSeed encryptedSeedStorage - if err := json.Unmarshal(keyjson, &encSeed); err != nil { - return nil, err - } - if encSeed.Version != 1 { - log.Warn(fmt.Sprintf("unsupported encryption format of seed: %d, operation will likely fail", encSeed.Version)) - } - seed, err := keystore.DecryptDataV3(encSeed.Params, auth) - if err != nil { - return nil, err - } - return seed, err -} - -// GenDoc outputs examples of all structures used in json-rpc communication -func GenDoc(ctx *cli.Context) { - - var ( - a = common.HexToAddress("0xdeadbeef000000000000000000000000deadbeef") - b = common.HexToAddress("0x1111111122222222222233333333334444444444") - meta = core.Metadata{ - Scheme: "http", - Local: "localhost:8545", - Origin: "www.malicious.ru", - Remote: "localhost:9999", - UserAgent: "Firefox 3.2", - } - output []string - add = func(name, desc string, v interface{}) { - if data, err := json.MarshalIndent(v, "", " "); err == nil { - output = append(output, fmt.Sprintf("### %s\n\n%s\n\nExample:\n```json\n%s\n```", name, desc, data)) - } else { - log.Error("Error generating output", err) - } - } - ) - - { // Sign plain text request - desc := "SignDataRequest contains information about a pending request to sign some data. " + - "The data to be signed can be of various types, defined by content-type. Clef has done most " + - "of the work in canonicalizing and making sense of the data, and it's up to the UI to present" + - "the user with the contents of the `message`" - sighash, msg := accounts.TextAndHash([]byte("hello world")) - message := []*core.NameValueType{{"message", msg, accounts.MimetypeTextPlain}} - - add("SignDataRequest", desc, &core.SignDataRequest{ - Address: common.NewMixedcaseAddress(a), - Meta: meta, - ContentType: accounts.MimetypeTextPlain, - Rawdata: []byte(msg), - Message: message, - Hash: sighash}) - } - { // Sign plain text response - add("SignDataResponse - approve", "Response to SignDataRequest", - &core.SignDataResponse{Approved: true}) - add("SignDataResponse - deny", "Response to SignDataRequest", - &core.SignDataResponse{}) - } - { // Sign transaction request - desc := "SignTxRequest contains information about a pending request to sign a transaction. " + - "Aside from the transaction itself, there is also a `call_info`-struct. That struct contains " + - "messages of various types, that the user should be informed of." + - "\n\n" + - "As in any request, it's important to consider that the `meta` info also contains untrusted data." + - "\n\n" + - "The `transaction` (on input into clef) can have either `data` or `input` -- if both are set, " + - "they must be identical, otherwise an error is generated. " + - "However, Clef will always use `data` when passing this struct on (if Clef does otherwise, please file a ticket)" - - data := hexutil.Bytes([]byte{0x01, 0x02, 0x03, 0x04}) - add("SignTxRequest", desc, &core.SignTxRequest{ - Meta: meta, - Callinfo: []core.ValidationInfo{ - {"Warning", "Something looks odd, show this message as a warning"}, - {"Info", "User should see this aswell"}, - }, - Transaction: core.SendTxArgs{ - Data: &data, - Nonce: 0x1, - Value: hexutil.Big(*big.NewInt(6)), - From: common.NewMixedcaseAddress(a), - To: nil, - GasPrice: hexutil.Big(*big.NewInt(5)), - Gas: 1000, - Input: nil, - }}) - } - { // Sign tx response - data := hexutil.Bytes([]byte{0x04, 0x03, 0x02, 0x01}) - add("SignTxResponse - approve", "Response to request to sign a transaction. This response needs to contain the `transaction`"+ - ", because the UI is free to make modifications to the transaction.", - &core.SignTxResponse{Approved: true, - Transaction: core.SendTxArgs{ - Data: &data, - Nonce: 0x4, - Value: hexutil.Big(*big.NewInt(6)), - From: common.NewMixedcaseAddress(a), - To: nil, - GasPrice: hexutil.Big(*big.NewInt(5)), - Gas: 1000, - Input: nil, - }}) - add("SignTxResponse - deny", "Response to SignTxRequest. When denying a request, there's no need to "+ - "provide the transaction in return", - &core.SignTxResponse{}) - } - { // WHen a signed tx is ready to go out - desc := "SignTransactionResult is used in the call `clef` -> `OnApprovedTx(result)`" + - "\n\n" + - "This occurs _after_ successful completion of the entire signing procedure, but right before the signed " + - "transaction is passed to the external caller. This method (and data) can be used by the UI to signal " + - "to the user that the transaction was signed, but it is primarily useful for ruleset implementations." + - "\n\n" + - "A ruleset that implements a rate limitation needs to know what transactions are sent out to the external " + - "interface. By hooking into this methods, the ruleset can maintain track of that count." + - "\n\n" + - "**OBS:** Note that if an attacker can restore your `clef` data to a previous point in time" + - " (e.g through a backup), the attacker can reset such windows, even if he/she is unable to decrypt the content. " + - "\n\n" + - "The `OnApproved` method cannot be responded to, it's purely informative" - - rlpdata := common.FromHex("0xf85d640101948a8eafb1cf62bfbeb1741769dae1a9dd47996192018026a0716bd90515acb1e68e5ac5867aa11a1e65399c3349d479f5fb698554ebc6f293a04e8a4ebfff434e971e0ef12c5bf3a881b06fd04fc3f8b8a7291fb67a26a1d4ed") - var tx types.Transaction - rlp.DecodeBytes(rlpdata, &tx) - add("OnApproved - SignTransactionResult", desc, ðapi.SignTransactionResult{Raw: rlpdata, Tx: &tx}) - - } - { // User input - add("UserInputRequest", "Sent when clef needs the user to provide data. If 'password' is true, the input field should be treated accordingly (echo-free)", - &core.UserInputRequest{IsPassword: true, Title: "The title here", Prompt: "The question to ask the user"}) - add("UserInputResponse", "Response to UserInputRequest", - &core.UserInputResponse{Text: "The textual response from user"}) - } - { // List request - add("ListRequest", "Sent when a request has been made to list addresses. The UI is provided with the "+ - "full `account`s, including local directory names. Note: this information is not passed back to the external caller, "+ - "who only sees the `address`es. ", - &core.ListRequest{ - Meta: meta, - Accounts: []accounts.Account{ - {a, accounts.URL{Scheme: "keystore", Path: "/path/to/keyfile/a"}}, - {b, accounts.URL{Scheme: "keystore", Path: "/path/to/keyfile/b"}}}, - }) - - add("ListResponse", "Response to list request. The response contains a list of all addresses to show to the caller. "+ - "Note: the UI is free to respond with any address the caller, regardless of whether it exists or not", - &core.ListResponse{ - Accounts: []accounts.Account{ - {common.HexToAddress("0xcowbeef000000cowbeef00000000000000000c0w"), accounts.URL{Path: ".. ignored .."}}, - {common.HexToAddress("0xffffffffffffffffffffffffffffffffffffffff"), accounts.URL{}}, - }}) - } - - fmt.Println(`## UI Client interface - -These data types are defined in the channel between clef and the UI`) - for _, elem := range output { - fmt.Println(elem) - } -} - -/** -//Create Account - -curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"account_new","params":["test"],"id":67}' localhost:8550 - -// List accounts - -curl -i -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"account_list","params":[""],"id":67}' http://localhost:8550/ - -// Make Transaction -// safeSend(0x12) -// 4401a6e40000000000000000000000000000000000000000000000000000000000000012 - -// supplied abi -curl -i -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"account_signTransaction","params":[{"from":"0x82A2A876D39022B3019932D30Cd9c97ad5616813","gas":"0x333","gasPrice":"0x123","nonce":"0x0","to":"0x07a565b7ed7d7a678680a4c162885bedbb695fe0", "value":"0x10", "data":"0x4401a6e40000000000000000000000000000000000000000000000000000000000000012"},"test"],"id":67}' http://localhost:8550/ - -// Not supplied -curl -i -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"account_signTransaction","params":[{"from":"0x82A2A876D39022B3019932D30Cd9c97ad5616813","gas":"0x333","gasPrice":"0x123","nonce":"0x0","to":"0x07a565b7ed7d7a678680a4c162885bedbb695fe0", "value":"0x10", "data":"0x4401a6e40000000000000000000000000000000000000000000000000000000000000012"}],"id":67}' http://localhost:8550/ - -// Sign data - -curl -i -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"account_sign","params":["0x694267f14675d7e1b9494fd8d72fefe1755710fa","bazonk gaz baz"],"id":67}' http://localhost:8550/ - - -**/ diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/faucet/faucet.go b/vendor/github.com/ethereum/go-ethereum/cmd/faucet/faucet.go deleted file mode 100644 index 78b4a656..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/faucet/faucet.go +++ /dev/null @@ -1,779 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -// faucet is a Ether faucet backed by a light client. -package main - -//go:generate go-bindata -nometadata -o website.go faucet.html -//go:generate gofmt -w -s website.go - -import ( - "bytes" - "context" - "encoding/json" - "errors" - "flag" - "fmt" - "html/template" - "io/ioutil" - "math" - "math/big" - "net/http" - "net/url" - "os" - "path/filepath" - "regexp" - "strconv" - "strings" - "sync" - "time" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum/go-ethereum/ethstats" - "github.com/ethereum/go-ethereum/les" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/discv5" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/p2p/nat" - "github.com/ethereum/go-ethereum/params" - "golang.org/x/net/websocket" -) - -var ( - genesisFlag = flag.String("genesis", "", "Genesis json file to seed the chain with") - apiPortFlag = flag.Int("apiport", 8080, "Listener port for the HTTP API connection") - ethPortFlag = flag.Int("ethport", 30303, "Listener port for the devp2p connection") - bootFlag = flag.String("bootnodes", "", "Comma separated bootnode enode URLs to seed with") - netFlag = flag.Uint64("network", 0, "Network ID to use for the Ethereum protocol") - statsFlag = flag.String("ethstats", "", "Ethstats network monitoring auth string") - - netnameFlag = flag.String("faucet.name", "", "Network name to assign to the faucet") - payoutFlag = flag.Int("faucet.amount", 1, "Number of Ethers to pay out per user request") - minutesFlag = flag.Int("faucet.minutes", 1440, "Number of minutes to wait between funding rounds") - tiersFlag = flag.Int("faucet.tiers", 3, "Number of funding tiers to enable (x3 time, x2.5 funds)") - - accJSONFlag = flag.String("account.json", "", "Key json file to fund user requests with") - accPassFlag = flag.String("account.pass", "", "Decryption password to access faucet funds") - - captchaToken = flag.String("captcha.token", "", "Recaptcha site key to authenticate client side") - captchaSecret = flag.String("captcha.secret", "", "Recaptcha secret key to authenticate server side") - - noauthFlag = flag.Bool("noauth", false, "Enables funding requests without authentication") - logFlag = flag.Int("loglevel", 3, "Log level to use for Ethereum and the faucet") -) - -var ( - ether = new(big.Int).Exp(big.NewInt(10), big.NewInt(18), nil) -) - -func main() { - // Parse the flags and set up the logger to print everything requested - flag.Parse() - log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*logFlag), log.StreamHandler(os.Stderr, log.TerminalFormat(true)))) - - // Construct the payout tiers - amounts := make([]string, *tiersFlag) - periods := make([]string, *tiersFlag) - for i := 0; i < *tiersFlag; i++ { - // Calculate the amount for the next tier and format it - amount := float64(*payoutFlag) * math.Pow(2.5, float64(i)) - amounts[i] = fmt.Sprintf("%s Ethers", strconv.FormatFloat(amount, 'f', -1, 64)) - if amount == 1 { - amounts[i] = strings.TrimSuffix(amounts[i], "s") - } - // Calculate the period for the next tier and format it - period := *minutesFlag * int(math.Pow(3, float64(i))) - periods[i] = fmt.Sprintf("%d mins", period) - if period%60 == 0 { - period /= 60 - periods[i] = fmt.Sprintf("%d hours", period) - - if period%24 == 0 { - period /= 24 - periods[i] = fmt.Sprintf("%d days", period) - } - } - if period == 1 { - periods[i] = strings.TrimSuffix(periods[i], "s") - } - } - // Load up and render the faucet website - tmpl, err := Asset("faucet.html") - if err != nil { - log.Crit("Failed to load the faucet template", "err", err) - } - website := new(bytes.Buffer) - err = template.Must(template.New("").Parse(string(tmpl))).Execute(website, map[string]interface{}{ - "Network": *netnameFlag, - "Amounts": amounts, - "Periods": periods, - "Recaptcha": *captchaToken, - "NoAuth": *noauthFlag, - }) - if err != nil { - log.Crit("Failed to render the faucet template", "err", err) - } - // Load and parse the genesis block requested by the user - blob, err := ioutil.ReadFile(*genesisFlag) - if err != nil { - log.Crit("Failed to read genesis block contents", "genesis", *genesisFlag, "err", err) - } - genesis := new(core.Genesis) - if err = json.Unmarshal(blob, genesis); err != nil { - log.Crit("Failed to parse genesis block json", "err", err) - } - // Convert the bootnodes to internal enode representations - var enodes []*discv5.Node - for _, boot := range strings.Split(*bootFlag, ",") { - if url, err := discv5.ParseNode(boot); err == nil { - enodes = append(enodes, url) - } else { - log.Error("Failed to parse bootnode URL", "url", boot, "err", err) - } - } - // Load up the account key and decrypt its password - if blob, err = ioutil.ReadFile(*accPassFlag); err != nil { - log.Crit("Failed to read account password contents", "file", *accPassFlag, "err", err) - } - // Delete trailing newline in password - pass := strings.TrimSuffix(string(blob), "\n") - - ks := keystore.NewKeyStore(filepath.Join(os.Getenv("HOME"), ".faucet", "keys"), keystore.StandardScryptN, keystore.StandardScryptP) - if blob, err = ioutil.ReadFile(*accJSONFlag); err != nil { - log.Crit("Failed to read account key contents", "file", *accJSONFlag, "err", err) - } - acc, err := ks.Import(blob, pass, pass) - if err != nil { - log.Crit("Failed to import faucet signer account", "err", err) - } - ks.Unlock(acc, pass) - - // Assemble and start the faucet light service - faucet, err := newFaucet(genesis, *ethPortFlag, enodes, *netFlag, *statsFlag, ks, website.Bytes()) - if err != nil { - log.Crit("Failed to start faucet", "err", err) - } - defer faucet.close() - - if err := faucet.listenAndServe(*apiPortFlag); err != nil { - log.Crit("Failed to launch faucet API", "err", err) - } -} - -// request represents an accepted funding request. -type request struct { - Avatar string `json:"avatar"` // Avatar URL to make the UI nicer - Account common.Address `json:"account"` // Ethereum address being funded - Time time.Time `json:"time"` // Timestamp when the request was accepted - Tx *types.Transaction `json:"tx"` // Transaction funding the account -} - -// faucet represents a crypto faucet backed by an Ethereum light client. -type faucet struct { - config *params.ChainConfig // Chain configurations for signing - stack *node.Node // Ethereum protocol stack - client *ethclient.Client // Client connection to the Ethereum chain - index []byte // Index page to serve up on the web - - keystore *keystore.KeyStore // Keystore containing the single signer - account accounts.Account // Account funding user faucet requests - head *types.Header // Current head header of the faucet - balance *big.Int // Current balance of the faucet - nonce uint64 // Current pending nonce of the faucet - price *big.Int // Current gas price to issue funds with - - conns []*websocket.Conn // Currently live websocket connections - timeouts map[string]time.Time // History of users and their funding timeouts - reqs []*request // Currently pending funding requests - update chan struct{} // Channel to signal request updates - - lock sync.RWMutex // Lock protecting the faucet's internals -} - -func newFaucet(genesis *core.Genesis, port int, enodes []*discv5.Node, network uint64, stats string, ks *keystore.KeyStore, index []byte) (*faucet, error) { - // Assemble the raw devp2p protocol stack - stack, err := node.New(&node.Config{ - Name: "geth", - Version: params.VersionWithMeta, - DataDir: filepath.Join(os.Getenv("HOME"), ".faucet"), - P2P: p2p.Config{ - NAT: nat.Any(), - NoDiscovery: true, - DiscoveryV5: true, - ListenAddr: fmt.Sprintf(":%d", port), - MaxPeers: 25, - BootstrapNodesV5: enodes, - }, - }) - if err != nil { - return nil, err - } - // Assemble the Ethereum light client protocol - if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - cfg := eth.DefaultConfig - cfg.SyncMode = downloader.LightSync - cfg.NetworkId = network - cfg.Genesis = genesis - return les.New(ctx, &cfg) - }); err != nil { - return nil, err - } - // Assemble the ethstats monitoring and reporting service' - if stats != "" { - if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - var serv *les.LightEthereum - ctx.Service(&serv) - return ethstats.New(stats, nil, serv) - }); err != nil { - return nil, err - } - } - // Boot up the client and ensure it connects to bootnodes - if err := stack.Start(); err != nil { - return nil, err - } - for _, boot := range enodes { - old, err := enode.ParseV4(boot.String()) - if err == nil { - stack.Server().AddPeer(old) - } - } - // Attach to the client and retrieve and interesting metadatas - api, err := stack.Attach() - if err != nil { - stack.Stop() - return nil, err - } - client := ethclient.NewClient(api) - - return &faucet{ - config: genesis.Config, - stack: stack, - client: client, - index: index, - keystore: ks, - account: ks.Accounts()[0], - timeouts: make(map[string]time.Time), - update: make(chan struct{}, 1), - }, nil -} - -// close terminates the Ethereum connection and tears down the faucet. -func (f *faucet) close() error { - return f.stack.Close() -} - -// listenAndServe registers the HTTP handlers for the faucet and boots it up -// for service user funding requests. -func (f *faucet) listenAndServe(port int) error { - go f.loop() - - http.HandleFunc("/", f.webHandler) - http.Handle("/api", websocket.Handler(f.apiHandler)) - - return http.ListenAndServe(fmt.Sprintf(":%d", port), nil) -} - -// webHandler handles all non-api requests, simply flattening and returning the -// faucet website. -func (f *faucet) webHandler(w http.ResponseWriter, r *http.Request) { - w.Write(f.index) -} - -// apiHandler handles requests for Ether grants and transaction statuses. -func (f *faucet) apiHandler(conn *websocket.Conn) { - // Start tracking the connection and drop at the end - defer conn.Close() - - f.lock.Lock() - f.conns = append(f.conns, conn) - f.lock.Unlock() - - defer func() { - f.lock.Lock() - for i, c := range f.conns { - if c == conn { - f.conns = append(f.conns[:i], f.conns[i+1:]...) - break - } - } - f.lock.Unlock() - }() - // Gather the initial stats from the network to report - var ( - head *types.Header - balance *big.Int - nonce uint64 - err error - ) - for head == nil || balance == nil { - // Retrieve the current stats cached by the faucet - f.lock.RLock() - if f.head != nil { - head = types.CopyHeader(f.head) - } - if f.balance != nil { - balance = new(big.Int).Set(f.balance) - } - nonce = f.nonce - f.lock.RUnlock() - - if head == nil || balance == nil { - // Report the faucet offline until initial stats are ready - if err = sendError(conn, errors.New("Faucet offline")); err != nil { - log.Warn("Failed to send faucet error to client", "err", err) - return - } - time.Sleep(3 * time.Second) - } - } - // Send over the initial stats and the latest header - if err = send(conn, map[string]interface{}{ - "funds": new(big.Int).Div(balance, ether), - "funded": nonce, - "peers": f.stack.Server().PeerCount(), - "requests": f.reqs, - }, 3*time.Second); err != nil { - log.Warn("Failed to send initial stats to client", "err", err) - return - } - if err = send(conn, head, 3*time.Second); err != nil { - log.Warn("Failed to send initial header to client", "err", err) - return - } - // Keep reading requests from the websocket until the connection breaks - for { - // Fetch the next funding request and validate against github - var msg struct { - URL string `json:"url"` - Tier uint `json:"tier"` - Captcha string `json:"captcha"` - } - if err = websocket.JSON.Receive(conn, &msg); err != nil { - return - } - if !*noauthFlag && !strings.HasPrefix(msg.URL, "https://gist.github.com/") && !strings.HasPrefix(msg.URL, "https://twitter.com/") && - !strings.HasPrefix(msg.URL, "https://plus.google.com/") && !strings.HasPrefix(msg.URL, "https://www.facebook.com/") { - if err = sendError(conn, errors.New("URL doesn't link to supported services")); err != nil { - log.Warn("Failed to send URL error to client", "err", err) - return - } - continue - } - if msg.Tier >= uint(*tiersFlag) { - if err = sendError(conn, errors.New("Invalid funding tier requested")); err != nil { - log.Warn("Failed to send tier error to client", "err", err) - return - } - continue - } - log.Info("Faucet funds requested", "url", msg.URL, "tier", msg.Tier) - - // If captcha verifications are enabled, make sure we're not dealing with a robot - if *captchaToken != "" { - form := url.Values{} - form.Add("secret", *captchaSecret) - form.Add("response", msg.Captcha) - - res, err := http.PostForm("https://www.google.com/recaptcha/api/siteverify", form) - if err != nil { - if err = sendError(conn, err); err != nil { - log.Warn("Failed to send captcha post error to client", "err", err) - return - } - continue - } - var result struct { - Success bool `json:"success"` - Errors json.RawMessage `json:"error-codes"` - } - err = json.NewDecoder(res.Body).Decode(&result) - res.Body.Close() - if err != nil { - if err = sendError(conn, err); err != nil { - log.Warn("Failed to send captcha decode error to client", "err", err) - return - } - continue - } - if !result.Success { - log.Warn("Captcha verification failed", "err", string(result.Errors)) - if err = sendError(conn, errors.New("Beep-bop, you're a robot!")); err != nil { - log.Warn("Failed to send captcha failure to client", "err", err) - return - } - continue - } - } - // Retrieve the Ethereum address to fund, the requesting user and a profile picture - var ( - username string - avatar string - address common.Address - ) - switch { - case strings.HasPrefix(msg.URL, "https://gist.github.com/"): - if err = sendError(conn, errors.New("GitHub authentication discontinued at the official request of GitHub")); err != nil { - log.Warn("Failed to send GitHub deprecation to client", "err", err) - return - } - continue - case strings.HasPrefix(msg.URL, "https://twitter.com/"): - username, avatar, address, err = authTwitter(msg.URL) - case strings.HasPrefix(msg.URL, "https://plus.google.com/"): - username, avatar, address, err = authGooglePlus(msg.URL) - case strings.HasPrefix(msg.URL, "https://www.facebook.com/"): - username, avatar, address, err = authFacebook(msg.URL) - case *noauthFlag: - username, avatar, address, err = authNoAuth(msg.URL) - default: - err = errors.New("Something funky happened, please open an issue at https://github.com/ethereum/go-ethereum/issues") - } - if err != nil { - if err = sendError(conn, err); err != nil { - log.Warn("Failed to send prefix error to client", "err", err) - return - } - continue - } - log.Info("Faucet request valid", "url", msg.URL, "tier", msg.Tier, "user", username, "address", address) - - // Ensure the user didn't request funds too recently - f.lock.Lock() - var ( - fund bool - timeout time.Time - ) - if timeout = f.timeouts[username]; time.Now().After(timeout) { - // User wasn't funded recently, create the funding transaction - amount := new(big.Int).Mul(big.NewInt(int64(*payoutFlag)), ether) - amount = new(big.Int).Mul(amount, new(big.Int).Exp(big.NewInt(5), big.NewInt(int64(msg.Tier)), nil)) - amount = new(big.Int).Div(amount, new(big.Int).Exp(big.NewInt(2), big.NewInt(int64(msg.Tier)), nil)) - - tx := types.NewTransaction(f.nonce+uint64(len(f.reqs)), address, amount, 21000, f.price, nil) - signed, err := f.keystore.SignTx(f.account, tx, f.config.ChainID) - if err != nil { - f.lock.Unlock() - if err = sendError(conn, err); err != nil { - log.Warn("Failed to send transaction creation error to client", "err", err) - return - } - continue - } - // Submit the transaction and mark as funded if successful - if err := f.client.SendTransaction(context.Background(), signed); err != nil { - f.lock.Unlock() - if err = sendError(conn, err); err != nil { - log.Warn("Failed to send transaction transmission error to client", "err", err) - return - } - continue - } - f.reqs = append(f.reqs, &request{ - Avatar: avatar, - Account: address, - Time: time.Now(), - Tx: signed, - }) - f.timeouts[username] = time.Now().Add(time.Duration(*minutesFlag*int(math.Pow(3, float64(msg.Tier)))) * time.Minute) - fund = true - } - f.lock.Unlock() - - // Send an error if too frequent funding, othewise a success - if !fund { - if err = sendError(conn, fmt.Errorf("%s left until next allowance", common.PrettyDuration(timeout.Sub(time.Now())))); err != nil { // nolint: gosimple - log.Warn("Failed to send funding error to client", "err", err) - return - } - continue - } - if err = sendSuccess(conn, fmt.Sprintf("Funding request accepted for %s into %s", username, address.Hex())); err != nil { - log.Warn("Failed to send funding success to client", "err", err) - return - } - select { - case f.update <- struct{}{}: - default: - } - } -} - -// refresh attempts to retrieve the latest header from the chain and extract the -// associated faucet balance and nonce for connectivity caching. -func (f *faucet) refresh(head *types.Header) error { - // Ensure a state update does not run for too long - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - // If no header was specified, use the current chain head - var err error - if head == nil { - if head, err = f.client.HeaderByNumber(ctx, nil); err != nil { - return err - } - } - // Retrieve the balance, nonce and gas price from the current head - var ( - balance *big.Int - nonce uint64 - price *big.Int - ) - if balance, err = f.client.BalanceAt(ctx, f.account.Address, head.Number); err != nil { - return err - } - if nonce, err = f.client.NonceAt(ctx, f.account.Address, head.Number); err != nil { - return err - } - if price, err = f.client.SuggestGasPrice(ctx); err != nil { - return err - } - // Everything succeeded, update the cached stats and eject old requests - f.lock.Lock() - f.head, f.balance = head, balance - f.price, f.nonce = price, nonce - for len(f.reqs) > 0 && f.reqs[0].Tx.Nonce() < f.nonce { - f.reqs = f.reqs[1:] - } - f.lock.Unlock() - - return nil -} - -// loop keeps waiting for interesting events and pushes them out to connected -// websockets. -func (f *faucet) loop() { - // Wait for chain events and push them to clients - heads := make(chan *types.Header, 16) - sub, err := f.client.SubscribeNewHead(context.Background(), heads) - if err != nil { - log.Crit("Failed to subscribe to head events", "err", err) - } - defer sub.Unsubscribe() - - // Start a goroutine to update the state from head notifications in the background - update := make(chan *types.Header) - - go func() { - for head := range update { - // New chain head arrived, query the current stats and stream to clients - timestamp := time.Unix(int64(head.Time), 0) - if time.Since(timestamp) > time.Hour { - log.Warn("Skipping faucet refresh, head too old", "number", head.Number, "hash", head.Hash(), "age", common.PrettyAge(timestamp)) - continue - } - if err := f.refresh(head); err != nil { - log.Warn("Failed to update faucet state", "block", head.Number, "hash", head.Hash(), "err", err) - continue - } - // Faucet state retrieved, update locally and send to clients - f.lock.RLock() - log.Info("Updated faucet state", "number", head.Number, "hash", head.Hash(), "age", common.PrettyAge(timestamp), "balance", f.balance, "nonce", f.nonce, "price", f.price) - - balance := new(big.Int).Div(f.balance, ether) - peers := f.stack.Server().PeerCount() - - for _, conn := range f.conns { - if err := send(conn, map[string]interface{}{ - "funds": balance, - "funded": f.nonce, - "peers": peers, - "requests": f.reqs, - }, time.Second); err != nil { - log.Warn("Failed to send stats to client", "err", err) - conn.Close() - continue - } - if err := send(conn, head, time.Second); err != nil { - log.Warn("Failed to send header to client", "err", err) - conn.Close() - } - } - f.lock.RUnlock() - } - }() - // Wait for various events and assing to the appropriate background threads - for { - select { - case head := <-heads: - // New head arrived, send if for state update if there's none running - select { - case update <- head: - default: - } - - case <-f.update: - // Pending requests updated, stream to clients - f.lock.RLock() - for _, conn := range f.conns { - if err := send(conn, map[string]interface{}{"requests": f.reqs}, time.Second); err != nil { - log.Warn("Failed to send requests to client", "err", err) - conn.Close() - } - } - f.lock.RUnlock() - } - } -} - -// sends transmits a data packet to the remote end of the websocket, but also -// setting a write deadline to prevent waiting forever on the node. -func send(conn *websocket.Conn, value interface{}, timeout time.Duration) error { - if timeout == 0 { - timeout = 60 * time.Second - } - conn.SetWriteDeadline(time.Now().Add(timeout)) - return websocket.JSON.Send(conn, value) -} - -// sendError transmits an error to the remote end of the websocket, also setting -// the write deadline to 1 second to prevent waiting forever. -func sendError(conn *websocket.Conn, err error) error { - return send(conn, map[string]string{"error": err.Error()}, time.Second) -} - -// sendSuccess transmits a success message to the remote end of the websocket, also -// setting the write deadline to 1 second to prevent waiting forever. -func sendSuccess(conn *websocket.Conn, msg string) error { - return send(conn, map[string]string{"success": msg}, time.Second) -} - -// authTwitter tries to authenticate a faucet request using Twitter posts, returning -// the username, avatar URL and Ethereum address to fund on success. -func authTwitter(url string) (string, string, common.Address, error) { - // Ensure the user specified a meaningful URL, no fancy nonsense - parts := strings.Split(url, "/") - if len(parts) < 4 || parts[len(parts)-2] != "status" { - return "", "", common.Address{}, errors.New("Invalid Twitter status URL") - } - // Twitter's API isn't really friendly with direct links. Still, we don't - // want to do ask read permissions from users, so just load the public posts and - // scrape it for the Ethereum address and profile URL. - res, err := http.Get(url) - if err != nil { - return "", "", common.Address{}, err - } - defer res.Body.Close() - - // Resolve the username from the final redirect, no intermediate junk - parts = strings.Split(res.Request.URL.String(), "/") - if len(parts) < 4 || parts[len(parts)-2] != "status" { - return "", "", common.Address{}, errors.New("Invalid Twitter status URL") - } - username := parts[len(parts)-3] - - body, err := ioutil.ReadAll(res.Body) - if err != nil { - return "", "", common.Address{}, err - } - address := common.HexToAddress(string(regexp.MustCompile("0x[0-9a-fA-F]{40}").Find(body))) - if address == (common.Address{}) { - return "", "", common.Address{}, errors.New("No Ethereum address found to fund") - } - var avatar string - if parts = regexp.MustCompile("src=\"([^\"]+twimg.com/profile_images[^\"]+)\"").FindStringSubmatch(string(body)); len(parts) == 2 { - avatar = parts[1] - } - return username + "@twitter", avatar, address, nil -} - -// authGooglePlus tries to authenticate a faucet request using GooglePlus posts, -// returning the username, avatar URL and Ethereum address to fund on success. -func authGooglePlus(url string) (string, string, common.Address, error) { - // Ensure the user specified a meaningful URL, no fancy nonsense - parts := strings.Split(url, "/") - if len(parts) < 4 || parts[len(parts)-2] != "posts" { - return "", "", common.Address{}, errors.New("Invalid Google+ post URL") - } - username := parts[len(parts)-3] - - // Google's API isn't really friendly with direct links. Still, we don't - // want to do ask read permissions from users, so just load the public posts and - // scrape it for the Ethereum address and profile URL. - res, err := http.Get(url) - if err != nil { - return "", "", common.Address{}, err - } - defer res.Body.Close() - - body, err := ioutil.ReadAll(res.Body) - if err != nil { - return "", "", common.Address{}, err - } - address := common.HexToAddress(string(regexp.MustCompile("0x[0-9a-fA-F]{40}").Find(body))) - if address == (common.Address{}) { - return "", "", common.Address{}, errors.New("No Ethereum address found to fund") - } - var avatar string - if parts = regexp.MustCompile("src=\"([^\"]+googleusercontent.com[^\"]+photo.jpg)\"").FindStringSubmatch(string(body)); len(parts) == 2 { - avatar = parts[1] - } - return username + "@google+", avatar, address, nil -} - -// authFacebook tries to authenticate a faucet request using Facebook posts, -// returning the username, avatar URL and Ethereum address to fund on success. -func authFacebook(url string) (string, string, common.Address, error) { - // Ensure the user specified a meaningful URL, no fancy nonsense - parts := strings.Split(url, "/") - if len(parts) < 4 || parts[len(parts)-2] != "posts" { - return "", "", common.Address{}, errors.New("Invalid Facebook post URL") - } - username := parts[len(parts)-3] - - // Facebook's Graph API isn't really friendly with direct links. Still, we don't - // want to do ask read permissions from users, so just load the public posts and - // scrape it for the Ethereum address and profile URL. - res, err := http.Get(url) - if err != nil { - return "", "", common.Address{}, err - } - defer res.Body.Close() - - body, err := ioutil.ReadAll(res.Body) - if err != nil { - return "", "", common.Address{}, err - } - address := common.HexToAddress(string(regexp.MustCompile("0x[0-9a-fA-F]{40}").Find(body))) - if address == (common.Address{}) { - return "", "", common.Address{}, errors.New("No Ethereum address found to fund") - } - var avatar string - if parts = regexp.MustCompile("src=\"([^\"]+fbcdn.net[^\"]+)\"").FindStringSubmatch(string(body)); len(parts) == 2 { - avatar = parts[1] - } - return username + "@facebook", avatar, address, nil -} - -// authNoAuth tries to interpret a faucet request as a plain Ethereum address, -// without actually performing any remote authentication. This mode is prone to -// Byzantine attack, so only ever use for truly private networks. -func authNoAuth(url string) (string, string, common.Address, error) { - address := common.HexToAddress(regexp.MustCompile("0x[0-9a-fA-F]{40}").FindString(url)) - if address == (common.Address{}) { - return "", "", common.Address{}, errors.New("No Ethereum address found to fund") - } - return address.Hex() + "@noauth", "", address, nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/geth/accountcmd.go b/vendor/github.com/ethereum/go-ethereum/cmd/geth/accountcmd.go deleted file mode 100644 index 94029089..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/geth/accountcmd.go +++ /dev/null @@ -1,379 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package main - -import ( - "fmt" - "io/ioutil" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/cmd/utils" - "github.com/ethereum/go-ethereum/console" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/log" - "gopkg.in/urfave/cli.v1" -) - -var ( - walletCommand = cli.Command{ - Name: "wallet", - Usage: "Manage Ethereum presale wallets", - ArgsUsage: "", - Category: "ACCOUNT COMMANDS", - Description: ` - geth wallet import /path/to/my/presale.wallet - -will prompt for your password and imports your ether presale account. -It can be used non-interactively with the --password option taking a -passwordfile as argument containing the wallet password in plaintext.`, - Subcommands: []cli.Command{ - { - - Name: "import", - Usage: "Import Ethereum presale wallet", - ArgsUsage: "", - Action: utils.MigrateFlags(importWallet), - Category: "ACCOUNT COMMANDS", - Flags: []cli.Flag{ - utils.DataDirFlag, - utils.KeyStoreDirFlag, - utils.PasswordFileFlag, - utils.LightKDFFlag, - }, - Description: ` - geth wallet [options] /path/to/my/presale.wallet - -will prompt for your password and imports your ether presale account. -It can be used non-interactively with the --password option taking a -passwordfile as argument containing the wallet password in plaintext.`, - }, - }, - } - - accountCommand = cli.Command{ - Name: "account", - Usage: "Manage accounts", - Category: "ACCOUNT COMMANDS", - Description: ` - -Manage accounts, list all existing accounts, import a private key into a new -account, create a new account or update an existing account. - -It supports interactive mode, when you are prompted for password as well as -non-interactive mode where passwords are supplied via a given password file. -Non-interactive mode is only meant for scripted use on test networks or known -safe environments. - -Make sure you remember the password you gave when creating a new account (with -either new or import). Without it you are not able to unlock your account. - -Note that exporting your key in unencrypted format is NOT supported. - -Keys are stored under /keystore. -It is safe to transfer the entire directory or the individual keys therein -between ethereum nodes by simply copying. - -Make sure you backup your keys regularly.`, - Subcommands: []cli.Command{ - { - Name: "list", - Usage: "Print summary of existing accounts", - Action: utils.MigrateFlags(accountList), - Flags: []cli.Flag{ - utils.DataDirFlag, - utils.KeyStoreDirFlag, - }, - Description: ` -Print a short summary of all accounts`, - }, - { - Name: "new", - Usage: "Create a new account", - Action: utils.MigrateFlags(accountCreate), - Flags: []cli.Flag{ - utils.DataDirFlag, - utils.KeyStoreDirFlag, - utils.PasswordFileFlag, - utils.LightKDFFlag, - }, - Description: ` - geth account new - -Creates a new account and prints the address. - -The account is saved in encrypted format, you are prompted for a passphrase. - -You must remember this passphrase to unlock your account in the future. - -For non-interactive use the passphrase can be specified with the --password flag: - -Note, this is meant to be used for testing only, it is a bad idea to save your -password to file or expose in any other way. -`, - }, - { - Name: "update", - Usage: "Update an existing account", - Action: utils.MigrateFlags(accountUpdate), - ArgsUsage: "
", - Flags: []cli.Flag{ - utils.DataDirFlag, - utils.KeyStoreDirFlag, - utils.LightKDFFlag, - }, - Description: ` - geth account update
- -Update an existing account. - -The account is saved in the newest version in encrypted format, you are prompted -for a passphrase to unlock the account and another to save the updated file. - -This same command can therefore be used to migrate an account of a deprecated -format to the newest format or change the password for an account. - -For non-interactive use the passphrase can be specified with the --password flag: - - geth account update [options]
- -Since only one password can be given, only format update can be performed, -changing your password is only possible interactively. -`, - }, - { - Name: "import", - Usage: "Import a private key into a new account", - Action: utils.MigrateFlags(accountImport), - Flags: []cli.Flag{ - utils.DataDirFlag, - utils.KeyStoreDirFlag, - utils.PasswordFileFlag, - utils.LightKDFFlag, - }, - ArgsUsage: "", - Description: ` - geth account import - -Imports an unencrypted private key from and creates a new account. -Prints the address. - -The keyfile is assumed to contain an unencrypted private key in hexadecimal format. - -The account is saved in encrypted format, you are prompted for a passphrase. - -You must remember this passphrase to unlock your account in the future. - -For non-interactive use the passphrase can be specified with the -password flag: - - geth account import [options] - -Note: -As you can directly copy your encrypted accounts to another ethereum instance, -this import mechanism is not needed when you transfer an account between -nodes. -`, - }, - }, - } -) - -func accountList(ctx *cli.Context) error { - stack, _ := makeConfigNode(ctx) - var index int - for _, wallet := range stack.AccountManager().Wallets() { - for _, account := range wallet.Accounts() { - fmt.Printf("Account #%d: {%x} %s\n", index, account.Address, &account.URL) - index++ - } - } - return nil -} - -// tries unlocking the specified account a few times. -func unlockAccount(ks *keystore.KeyStore, address string, i int, passwords []string) (accounts.Account, string) { - account, err := utils.MakeAddress(ks, address) - if err != nil { - utils.Fatalf("Could not list accounts: %v", err) - } - for trials := 0; trials < 3; trials++ { - prompt := fmt.Sprintf("Unlocking account %s | Attempt %d/%d", address, trials+1, 3) - password := getPassPhrase(prompt, false, i, passwords) - err = ks.Unlock(account, password) - if err == nil { - log.Info("Unlocked account", "address", account.Address.Hex()) - return account, password - } - if err, ok := err.(*keystore.AmbiguousAddrError); ok { - log.Info("Unlocked account", "address", account.Address.Hex()) - return ambiguousAddrRecovery(ks, err, password), password - } - if err != keystore.ErrDecrypt { - // No need to prompt again if the error is not decryption-related. - break - } - } - // All trials expended to unlock account, bail out - utils.Fatalf("Failed to unlock account %s (%v)", address, err) - - return accounts.Account{}, "" -} - -// getPassPhrase retrieves the password associated with an account, either fetched -// from a list of preloaded passphrases, or requested interactively from the user. -func getPassPhrase(prompt string, confirmation bool, i int, passwords []string) string { - // If a list of passwords was supplied, retrieve from them - if len(passwords) > 0 { - if i < len(passwords) { - return passwords[i] - } - return passwords[len(passwords)-1] - } - // Otherwise prompt the user for the password - if prompt != "" { - fmt.Println(prompt) - } - password, err := console.Stdin.PromptPassword("Passphrase: ") - if err != nil { - utils.Fatalf("Failed to read passphrase: %v", err) - } - if confirmation { - confirm, err := console.Stdin.PromptPassword("Repeat passphrase: ") - if err != nil { - utils.Fatalf("Failed to read passphrase confirmation: %v", err) - } - if password != confirm { - utils.Fatalf("Passphrases do not match") - } - } - return password -} - -func ambiguousAddrRecovery(ks *keystore.KeyStore, err *keystore.AmbiguousAddrError, auth string) accounts.Account { - fmt.Printf("Multiple key files exist for address %x:\n", err.Addr) - for _, a := range err.Matches { - fmt.Println(" ", a.URL) - } - fmt.Println("Testing your passphrase against all of them...") - var match *accounts.Account - for _, a := range err.Matches { - if err := ks.Unlock(a, auth); err == nil { - match = &a - break - } - } - if match == nil { - utils.Fatalf("None of the listed files could be unlocked.") - } - fmt.Printf("Your passphrase unlocked %s\n", match.URL) - fmt.Println("In order to avoid this warning, you need to remove the following duplicate key files:") - for _, a := range err.Matches { - if a != *match { - fmt.Println(" ", a.URL) - } - } - return *match -} - -// accountCreate creates a new account into the keystore defined by the CLI flags. -func accountCreate(ctx *cli.Context) error { - cfg := gethConfig{Node: defaultNodeConfig()} - // Load config file. - if file := ctx.GlobalString(configFileFlag.Name); file != "" { - if err := loadConfig(file, &cfg); err != nil { - utils.Fatalf("%v", err) - } - } - utils.SetNodeConfig(ctx, &cfg.Node) - scryptN, scryptP, keydir, err := cfg.Node.AccountConfig() - - if err != nil { - utils.Fatalf("Failed to read configuration: %v", err) - } - - password := getPassPhrase("Your new account is locked with a password. Please give a password. Do not forget this password.", true, 0, utils.MakePasswordList(ctx)) - - address, err := keystore.StoreKey(keydir, password, scryptN, scryptP) - - if err != nil { - utils.Fatalf("Failed to create account: %v", err) - } - fmt.Printf("Address: {%x}\n", address) - return nil -} - -// accountUpdate transitions an account from a previous format to the current -// one, also providing the possibility to change the pass-phrase. -func accountUpdate(ctx *cli.Context) error { - if len(ctx.Args()) == 0 { - utils.Fatalf("No accounts specified to update") - } - stack, _ := makeConfigNode(ctx) - ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) - - for _, addr := range ctx.Args() { - account, oldPassword := unlockAccount(ks, addr, 0, nil) - newPassword := getPassPhrase("Please give a new password. Do not forget this password.", true, 0, nil) - if err := ks.Update(account, oldPassword, newPassword); err != nil { - utils.Fatalf("Could not update the account: %v", err) - } - } - return nil -} - -func importWallet(ctx *cli.Context) error { - keyfile := ctx.Args().First() - if len(keyfile) == 0 { - utils.Fatalf("keyfile must be given as argument") - } - keyJSON, err := ioutil.ReadFile(keyfile) - if err != nil { - utils.Fatalf("Could not read wallet file: %v", err) - } - - stack, _ := makeConfigNode(ctx) - passphrase := getPassPhrase("", false, 0, utils.MakePasswordList(ctx)) - - ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) - acct, err := ks.ImportPreSaleKey(keyJSON, passphrase) - if err != nil { - utils.Fatalf("%v", err) - } - fmt.Printf("Address: {%x}\n", acct.Address) - return nil -} - -func accountImport(ctx *cli.Context) error { - keyfile := ctx.Args().First() - if len(keyfile) == 0 { - utils.Fatalf("keyfile must be given as argument") - } - key, err := crypto.LoadECDSA(keyfile) - if err != nil { - utils.Fatalf("Failed to load the private key: %v", err) - } - stack, _ := makeConfigNode(ctx) - passphrase := getPassPhrase("Your new account is locked with a password. Please give a password. Do not forget this password.", true, 0, utils.MakePasswordList(ctx)) - - ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) - acct, err := ks.ImportECDSA(key, passphrase) - if err != nil { - utils.Fatalf("Could not create the account: %v", err) - } - fmt.Printf("Address: {%x}\n", acct.Address) - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/geth/config.go b/vendor/github.com/ethereum/go-ethereum/cmd/geth/config.go deleted file mode 100644 index ec97070c..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/geth/config.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package main - -import ( - "bufio" - "errors" - "fmt" - "math/big" - "os" - "reflect" - "unicode" - - cli "gopkg.in/urfave/cli.v1" - - "github.com/ethereum/go-ethereum/cmd/utils" - "github.com/ethereum/go-ethereum/dashboard" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/graphql" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/params" - whisper "github.com/ethereum/go-ethereum/whisper/whisperv6" - "github.com/naoina/toml" -) - -var ( - dumpConfigCommand = cli.Command{ - Action: utils.MigrateFlags(dumpConfig), - Name: "dumpconfig", - Usage: "Show configuration values", - ArgsUsage: "", - Flags: append(append(nodeFlags, rpcFlags...), whisperFlags...), - Category: "MISCELLANEOUS COMMANDS", - Description: `The dumpconfig command shows configuration values.`, - } - - configFileFlag = cli.StringFlag{ - Name: "config", - Usage: "TOML configuration file", - } -) - -// These settings ensure that TOML keys use the same names as Go struct fields. -var tomlSettings = toml.Config{ - NormFieldName: func(rt reflect.Type, key string) string { - return key - }, - FieldToKey: func(rt reflect.Type, field string) string { - return field - }, - MissingField: func(rt reflect.Type, field string) error { - link := "" - if unicode.IsUpper(rune(rt.Name()[0])) && rt.PkgPath() != "main" { - link = fmt.Sprintf(", see https://godoc.org/%s#%s for available fields", rt.PkgPath(), rt.Name()) - } - return fmt.Errorf("field '%s' is not defined in %s%s", field, rt.String(), link) - }, -} - -type ethstatsConfig struct { - URL string `toml:",omitempty"` -} - -type gethConfig struct { - Eth eth.Config - Shh whisper.Config - Node node.Config - Ethstats ethstatsConfig - Dashboard dashboard.Config -} - -func loadConfig(file string, cfg *gethConfig) error { - f, err := os.Open(file) - if err != nil { - return err - } - defer f.Close() - - err = tomlSettings.NewDecoder(bufio.NewReader(f)).Decode(cfg) - // Add file name to errors that have a line number. - if _, ok := err.(*toml.LineError); ok { - err = errors.New(file + ", " + err.Error()) - } - return err -} - -func defaultNodeConfig() node.Config { - cfg := node.DefaultConfig - cfg.Name = clientIdentifier - cfg.Version = params.VersionWithCommit(gitCommit) - cfg.HTTPModules = append(cfg.HTTPModules, "eth", "shh") - cfg.WSModules = append(cfg.WSModules, "eth", "shh") - cfg.IPCPath = "geth.ipc" - return cfg -} - -func makeConfigNode(ctx *cli.Context) (*node.Node, gethConfig) { - // Load defaults. - cfg := gethConfig{ - Eth: eth.DefaultConfig, - Shh: whisper.DefaultConfig, - Node: defaultNodeConfig(), - Dashboard: dashboard.DefaultConfig, - } - - // Load config file. - if file := ctx.GlobalString(configFileFlag.Name); file != "" { - if err := loadConfig(file, &cfg); err != nil { - utils.Fatalf("%v", err) - } - } - - // Apply flags. - utils.SetULC(ctx, &cfg.Eth) - utils.SetNodeConfig(ctx, &cfg.Node) - stack, err := node.New(&cfg.Node) - if err != nil { - utils.Fatalf("Failed to create the protocol stack: %v", err) - } - utils.SetEthConfig(ctx, stack, &cfg.Eth) - if ctx.GlobalIsSet(utils.EthStatsURLFlag.Name) { - cfg.Ethstats.URL = ctx.GlobalString(utils.EthStatsURLFlag.Name) - } - - utils.SetShhConfig(ctx, stack, &cfg.Shh) - utils.SetDashboardConfig(ctx, &cfg.Dashboard) - - return stack, cfg -} - -// enableWhisper returns true in case one of the whisper flags is set. -func enableWhisper(ctx *cli.Context) bool { - for _, flag := range whisperFlags { - if ctx.GlobalIsSet(flag.GetName()) { - return true - } - } - return false -} - -func makeFullNode(ctx *cli.Context) *node.Node { - stack, cfg := makeConfigNode(ctx) - if ctx.GlobalIsSet(utils.ConstantinopleOverrideFlag.Name) { - cfg.Eth.ConstantinopleOverride = new(big.Int).SetUint64(ctx.GlobalUint64(utils.ConstantinopleOverrideFlag.Name)) - } - - utils.RegisterEthService(stack, &cfg.Eth) - - if ctx.GlobalBool(utils.StateDiffFlag.Name) { - cfg.Eth.StateDiff = true - utils.RegisterStateDiffService(stack, ctx) - } - - if ctx.GlobalBool(utils.DashboardEnabledFlag.Name) { - utils.RegisterDashboardService(stack, &cfg.Dashboard, gitCommit) - } - // Whisper must be explicitly enabled by specifying at least 1 whisper flag or in dev mode - shhEnabled := enableWhisper(ctx) - shhAutoEnabled := !ctx.GlobalIsSet(utils.WhisperEnabledFlag.Name) && ctx.GlobalIsSet(utils.DeveloperFlag.Name) - if shhEnabled || shhAutoEnabled { - if ctx.GlobalIsSet(utils.WhisperMaxMessageSizeFlag.Name) { - cfg.Shh.MaxMessageSize = uint32(ctx.Int(utils.WhisperMaxMessageSizeFlag.Name)) - } - if ctx.GlobalIsSet(utils.WhisperMinPOWFlag.Name) { - cfg.Shh.MinimumAcceptedPOW = ctx.Float64(utils.WhisperMinPOWFlag.Name) - } - if ctx.GlobalIsSet(utils.WhisperRestrictConnectionBetweenLightClientsFlag.Name) { - cfg.Shh.RestrictConnectionBetweenLightClients = true - } - utils.RegisterShhService(stack, &cfg.Shh) - } - - // Configure GraphQL if required - if ctx.GlobalIsSet(utils.GraphQLEnabledFlag.Name) { - if err := graphql.RegisterGraphQLService(stack, cfg.Node.GraphQLEndpoint(), cfg.Node.GraphQLCors, cfg.Node.GraphQLVirtualHosts, cfg.Node.HTTPTimeouts); err != nil { - utils.Fatalf("Failed to register the Ethereum service: %v", err) - } - } - - // Add the Ethereum Stats daemon if requested. - if cfg.Ethstats.URL != "" { - utils.RegisterEthStatsService(stack, cfg.Ethstats.URL) - } - - return stack -} - -// dumpConfig is the dumpconfig command. -func dumpConfig(ctx *cli.Context) error { - _, cfg := makeConfigNode(ctx) - comment := "" - - if cfg.Eth.Genesis != nil { - cfg.Eth.Genesis = nil - comment += "# Note: this config doesn't contain the genesis block.\n\n" - } - - out, err := tomlSettings.Marshal(&cfg) - if err != nil { - return err - } - - dump := os.Stdout - if ctx.NArg() > 0 { - dump, err = os.OpenFile(ctx.Args().Get(0), os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return err - } - defer dump.Close() - } - dump.WriteString(comment) - dump.Write(out) - - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/geth/main.go b/vendor/github.com/ethereum/go-ethereum/cmd/geth/main.go deleted file mode 100644 index 39375a2b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/geth/main.go +++ /dev/null @@ -1,420 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -// geth is the official command-line client for Ethereum. -package main - -import ( - "fmt" - "math" - "os" - godebug "runtime/debug" - "sort" - "strconv" - "strings" - "time" - - "github.com/elastic/gosigar" - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/cmd/utils" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/console" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum/go-ethereum/internal/debug" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/metrics" - "github.com/ethereum/go-ethereum/node" - cli "gopkg.in/urfave/cli.v1" -) - -const ( - clientIdentifier = "geth" // Client identifier to advertise over the network -) - -var ( - // Git SHA1 commit hash of the release (set via linker flags) - gitCommit = "" - // The app that holds all commands and flags. - app = utils.NewApp(gitCommit, "the go-ethereum command line interface") - // flags that configure the node - nodeFlags = []cli.Flag{ - utils.IdentityFlag, - utils.UnlockedAccountFlag, - utils.PasswordFileFlag, - utils.BootnodesFlag, - utils.BootnodesV4Flag, - utils.BootnodesV5Flag, - utils.DataDirFlag, - utils.KeyStoreDirFlag, - utils.ExternalSignerFlag, - utils.NoUSBFlag, - utils.DashboardEnabledFlag, - utils.DashboardAddrFlag, - utils.DashboardPortFlag, - utils.DashboardRefreshFlag, - utils.EthashCacheDirFlag, - utils.EthashCachesInMemoryFlag, - utils.EthashCachesOnDiskFlag, - utils.EthashDatasetDirFlag, - utils.EthashDatasetsInMemoryFlag, - utils.EthashDatasetsOnDiskFlag, - utils.TxPoolLocalsFlag, - utils.TxPoolNoLocalsFlag, - utils.TxPoolJournalFlag, - utils.TxPoolRejournalFlag, - utils.TxPoolPriceLimitFlag, - utils.TxPoolPriceBumpFlag, - utils.TxPoolAccountSlotsFlag, - utils.TxPoolGlobalSlotsFlag, - utils.TxPoolAccountQueueFlag, - utils.TxPoolGlobalQueueFlag, - utils.TxPoolLifetimeFlag, - utils.ULCModeConfigFlag, - utils.OnlyAnnounceModeFlag, - utils.ULCTrustedNodesFlag, - utils.ULCMinTrustedFractionFlag, - utils.SyncModeFlag, - utils.ExitWhenSyncedFlag, - utils.GCModeFlag, - utils.LightServFlag, - utils.LightBandwidthInFlag, - utils.LightBandwidthOutFlag, - utils.LightPeersFlag, - utils.LightKDFFlag, - utils.WhitelistFlag, - utils.CacheFlag, - utils.CacheDatabaseFlag, - utils.CacheTrieFlag, - utils.CacheGCFlag, - utils.CacheNoPrefetchFlag, - utils.ListenPortFlag, - utils.MaxPeersFlag, - utils.MaxPendingPeersFlag, - utils.MiningEnabledFlag, - utils.MinerThreadsFlag, - utils.MinerLegacyThreadsFlag, - utils.MinerNotifyFlag, - utils.MinerGasTargetFlag, - utils.MinerLegacyGasTargetFlag, - utils.MinerGasLimitFlag, - utils.MinerGasPriceFlag, - utils.MinerLegacyGasPriceFlag, - utils.MinerEtherbaseFlag, - utils.MinerLegacyEtherbaseFlag, - utils.MinerExtraDataFlag, - utils.MinerLegacyExtraDataFlag, - utils.MinerRecommitIntervalFlag, - utils.MinerNoVerfiyFlag, - utils.NATFlag, - utils.NoDiscoverFlag, - utils.DiscoveryV5Flag, - utils.NetrestrictFlag, - utils.NodeKeyFileFlag, - utils.NodeKeyHexFlag, - utils.DeveloperFlag, - utils.DeveloperPeriodFlag, - utils.TestnetFlag, - utils.RinkebyFlag, - utils.GoerliFlag, - utils.VMEnableDebugFlag, - utils.NetworkIdFlag, - utils.ConstantinopleOverrideFlag, - utils.EthStatsURLFlag, - utils.FakePoWFlag, - utils.NoCompactionFlag, - utils.GpoBlocksFlag, - utils.GpoPercentileFlag, - utils.EWASMInterpreterFlag, - utils.EVMInterpreterFlag, - utils.StateDiffFlag, - configFileFlag, - } - - rpcFlags = []cli.Flag{ - utils.RPCEnabledFlag, - utils.RPCListenAddrFlag, - utils.RPCPortFlag, - utils.RPCCORSDomainFlag, - utils.RPCVirtualHostsFlag, - utils.GraphQLEnabledFlag, - utils.GraphQLListenAddrFlag, - utils.GraphQLPortFlag, - utils.GraphQLCORSDomainFlag, - utils.GraphQLVirtualHostsFlag, - utils.RPCApiFlag, - utils.WSEnabledFlag, - utils.WSListenAddrFlag, - utils.WSPortFlag, - utils.WSApiFlag, - utils.WSAllowedOriginsFlag, - utils.IPCDisabledFlag, - utils.IPCPathFlag, - utils.InsecureUnlockAllowedFlag, - utils.RPCGlobalGasCap, - } - - whisperFlags = []cli.Flag{ - utils.WhisperEnabledFlag, - utils.WhisperMaxMessageSizeFlag, - utils.WhisperMinPOWFlag, - utils.WhisperRestrictConnectionBetweenLightClientsFlag, - } - - metricsFlags = []cli.Flag{ - utils.MetricsEnabledFlag, - utils.MetricsEnabledExpensiveFlag, - utils.MetricsEnableInfluxDBFlag, - utils.MetricsInfluxDBEndpointFlag, - utils.MetricsInfluxDBDatabaseFlag, - utils.MetricsInfluxDBUsernameFlag, - utils.MetricsInfluxDBPasswordFlag, - utils.MetricsInfluxDBTagsFlag, - } -) - -func init() { - // Initialize the CLI app and start Geth - app.Action = geth - app.HideVersion = true // we have a command to print the version - app.Copyright = "Copyright 2013-2019 The go-ethereum Authors" - app.Commands = []cli.Command{ - // See chaincmd.go: - initCommand, - importCommand, - exportCommand, - importPreimagesCommand, - exportPreimagesCommand, - copydbCommand, - removedbCommand, - dumpCommand, - // See accountcmd.go: - accountCommand, - walletCommand, - // See consolecmd.go: - consoleCommand, - attachCommand, - javascriptCommand, - // See misccmd.go: - makecacheCommand, - makedagCommand, - versionCommand, - licenseCommand, - // See config.go - dumpConfigCommand, - } - sort.Sort(cli.CommandsByName(app.Commands)) - - app.Flags = append(app.Flags, nodeFlags...) - app.Flags = append(app.Flags, rpcFlags...) - app.Flags = append(app.Flags, consoleFlags...) - app.Flags = append(app.Flags, debug.Flags...) - app.Flags = append(app.Flags, whisperFlags...) - app.Flags = append(app.Flags, metricsFlags...) - - app.Before = func(ctx *cli.Context) error { - logdir := "" - if ctx.GlobalBool(utils.DashboardEnabledFlag.Name) { - logdir = (&node.Config{DataDir: utils.MakeDataDir(ctx)}).ResolvePath("logs") - } - if err := debug.Setup(ctx, logdir); err != nil { - return err - } - // Cap the cache allowance and tune the garbage collector - var mem gosigar.Mem - if err := mem.Get(); err == nil { - allowance := int(mem.Total / 1024 / 1024 / 3) - if cache := ctx.GlobalInt(utils.CacheFlag.Name); cache > allowance { - log.Warn("Sanitizing cache to Go's GC limits", "provided", cache, "updated", allowance) - ctx.GlobalSet(utils.CacheFlag.Name, strconv.Itoa(allowance)) - } - } - // Ensure Go's GC ignores the database cache for trigger percentage - cache := ctx.GlobalInt(utils.CacheFlag.Name) - gogc := math.Max(20, math.Min(100, 100/(float64(cache)/1024))) - - log.Debug("Sanitizing Go's GC trigger", "percent", int(gogc)) - godebug.SetGCPercent(int(gogc)) - - // Start metrics export if enabled - utils.SetupMetrics(ctx) - - // Start system runtime metrics collection - go metrics.CollectProcessMetrics(3 * time.Second) - - return nil - } - - app.After = func(ctx *cli.Context) error { - debug.Exit() - console.Stdin.Close() // Resets terminal mode. - return nil - } -} - -func main() { - if err := app.Run(os.Args); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -// geth is the main entry point into the system if no special subcommand is ran. -// It creates a default node based on the command line arguments and runs it in -// blocking mode, waiting for it to be shut down. -func geth(ctx *cli.Context) error { - if args := ctx.Args(); len(args) > 0 { - return fmt.Errorf("invalid command: %q", args[0]) - } - node := makeFullNode(ctx) - defer node.Close() - startNode(ctx, node) - node.Wait() - return nil -} - -// startNode boots up the system node and all registered protocols, after which -// it unlocks any requested accounts, and starts the RPC/IPC interfaces and the -// miner. -func startNode(ctx *cli.Context, stack *node.Node) { - debug.Memsize.Add("node", stack) - - // Start up the node itself - utils.StartNode(stack) - - // Unlock any account specifically requested - unlockAccounts(ctx, stack) - - // Register wallet event handlers to open and auto-derive wallets - events := make(chan accounts.WalletEvent, 16) - stack.AccountManager().Subscribe(events) - - go func() { - // Create a chain state reader for self-derivation - rpcClient, err := stack.Attach() - if err != nil { - utils.Fatalf("Failed to attach to self: %v", err) - } - stateReader := ethclient.NewClient(rpcClient) - - // Open any wallets already attached - for _, wallet := range stack.AccountManager().Wallets() { - if err := wallet.Open(""); err != nil { - log.Warn("Failed to open wallet", "url", wallet.URL(), "err", err) - } - } - // Listen for wallet event till termination - for event := range events { - switch event.Kind { - case accounts.WalletArrived: - if err := event.Wallet.Open(""); err != nil { - log.Warn("New wallet appeared, failed to open", "url", event.Wallet.URL(), "err", err) - } - case accounts.WalletOpened: - status, _ := event.Wallet.Status() - log.Info("New wallet appeared", "url", event.Wallet.URL(), "status", status) - - derivationPath := accounts.DefaultBaseDerivationPath - if event.Wallet.URL().Scheme == "ledger" { - derivationPath = accounts.DefaultLedgerBaseDerivationPath - } - event.Wallet.SelfDerive(derivationPath, stateReader) - - case accounts.WalletDropped: - log.Info("Old wallet dropped", "url", event.Wallet.URL()) - event.Wallet.Close() - } - } - }() - - // Spawn a standalone goroutine for status synchronization monitoring, - // close the node when synchronization is complete if user required. - if ctx.GlobalBool(utils.ExitWhenSyncedFlag.Name) { - go func() { - sub := stack.EventMux().Subscribe(downloader.DoneEvent{}) - defer sub.Unsubscribe() - for { - event := <-sub.Chan() - if event == nil { - continue - } - done, ok := event.Data.(downloader.DoneEvent) - if !ok { - continue - } - if timestamp := time.Unix(int64(done.Latest.Time), 0); time.Since(timestamp) < 10*time.Minute { - log.Info("Synchronisation completed", "latestnum", done.Latest.Number, "latesthash", done.Latest.Hash(), - "age", common.PrettyAge(timestamp)) - stack.Stop() - } - - } - }() - } - - // Start auxiliary services if enabled - if ctx.GlobalBool(utils.MiningEnabledFlag.Name) || ctx.GlobalBool(utils.DeveloperFlag.Name) { - // Mining only makes sense if a full Ethereum node is running - if ctx.GlobalString(utils.SyncModeFlag.Name) == "light" { - utils.Fatalf("Light clients do not support mining") - } - var ethereum *eth.Ethereum - if err := stack.Service(ðereum); err != nil { - utils.Fatalf("Ethereum service not running: %v", err) - } - // Set the gas price to the limits from the CLI and start mining - gasprice := utils.GlobalBig(ctx, utils.MinerLegacyGasPriceFlag.Name) - if ctx.IsSet(utils.MinerGasPriceFlag.Name) { - gasprice = utils.GlobalBig(ctx, utils.MinerGasPriceFlag.Name) - } - ethereum.TxPool().SetGasPrice(gasprice) - - threads := ctx.GlobalInt(utils.MinerLegacyThreadsFlag.Name) - if ctx.GlobalIsSet(utils.MinerThreadsFlag.Name) { - threads = ctx.GlobalInt(utils.MinerThreadsFlag.Name) - } - if err := ethereum.StartMining(threads); err != nil { - utils.Fatalf("Failed to start mining: %v", err) - } - } -} - -// unlockAccounts unlocks any account specifically requested. -func unlockAccounts(ctx *cli.Context, stack *node.Node) { - var unlocks []string - inputs := strings.Split(ctx.GlobalString(utils.UnlockedAccountFlag.Name), ",") - for _, input := range inputs { - if trimmed := strings.TrimSpace(input); trimmed != "" { - unlocks = append(unlocks, trimmed) - } - } - // Short circuit if there is no account to unlock. - if len(unlocks) == 0 { - return - } - // If insecure account unlocking is not allowed if node's APIs are exposed to external. - // Print warning log to user and skip unlocking. - if !stack.Config().InsecureUnlockAllowed && stack.Config().ExtRPCEnabled() { - utils.Fatalf("Account unlock with HTTP access is forbidden!") - } - ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) - passwords := utils.MakePasswordList(ctx) - for i, account := range unlocks { - unlockAccount(ks, account, i, passwords) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/geth/usage.go b/vendor/github.com/ethereum/go-ethereum/cmd/geth/usage.go deleted file mode 100644 index e7a9e1fb..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/geth/usage.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -// Contains the geth command usage template and generator. - -package main - -import ( - "io" - "sort" - - "strings" - - "github.com/ethereum/go-ethereum/cmd/utils" - "github.com/ethereum/go-ethereum/internal/debug" - cli "gopkg.in/urfave/cli.v1" -) - -// AppHelpTemplate is the test template for the default, global app help topic. -var AppHelpTemplate = `NAME: - {{.App.Name}} - {{.App.Usage}} - - Copyright 2013-2019 The go-ethereum Authors - -USAGE: - {{.App.HelpName}} [options]{{if .App.Commands}} command [command options]{{end}} {{if .App.ArgsUsage}}{{.App.ArgsUsage}}{{else}}[arguments...]{{end}} - {{if .App.Version}} -VERSION: - {{.App.Version}} - {{end}}{{if len .App.Authors}} -AUTHOR(S): - {{range .App.Authors}}{{ . }}{{end}} - {{end}}{{if .App.Commands}} -COMMANDS: - {{range .App.Commands}}{{join .Names ", "}}{{ "\t" }}{{.Usage}} - {{end}}{{end}}{{if .FlagGroups}} -{{range .FlagGroups}}{{.Name}} OPTIONS: - {{range .Flags}}{{.}} - {{end}} -{{end}}{{end}}{{if .App.Copyright }} -COPYRIGHT: - {{.App.Copyright}} - {{end}} -` - -// flagGroup is a collection of flags belonging to a single topic. -type flagGroup struct { - Name string - Flags []cli.Flag -} - -// AppHelpFlagGroups is the application flags, grouped by functionality. -var AppHelpFlagGroups = []flagGroup{ - { - Name: "ETHEREUM", - Flags: []cli.Flag{ - configFileFlag, - utils.DataDirFlag, - utils.KeyStoreDirFlag, - utils.NoUSBFlag, - utils.NetworkIdFlag, - utils.TestnetFlag, - utils.RinkebyFlag, - utils.GoerliFlag, - utils.SyncModeFlag, - utils.ExitWhenSyncedFlag, - utils.GCModeFlag, - utils.EthStatsURLFlag, - utils.IdentityFlag, - utils.LightServFlag, - utils.LightBandwidthInFlag, - utils.LightBandwidthOutFlag, - utils.LightPeersFlag, - utils.LightKDFFlag, - utils.WhitelistFlag, - }, - }, - { - Name: "DEVELOPER CHAIN", - Flags: []cli.Flag{ - utils.DeveloperFlag, - utils.DeveloperPeriodFlag, - }, - }, - { - Name: "ETHASH", - Flags: []cli.Flag{ - utils.EthashCacheDirFlag, - utils.EthashCachesInMemoryFlag, - utils.EthashCachesOnDiskFlag, - utils.EthashDatasetDirFlag, - utils.EthashDatasetsInMemoryFlag, - utils.EthashDatasetsOnDiskFlag, - }, - }, - //{ - // Name: "DASHBOARD", - // Flags: []cli.Flag{ - // utils.DashboardEnabledFlag, - // utils.DashboardAddrFlag, - // utils.DashboardPortFlag, - // utils.DashboardRefreshFlag, - // utils.DashboardAssetsFlag, - // }, - //}, - { - Name: "TRANSACTION POOL", - Flags: []cli.Flag{ - utils.TxPoolLocalsFlag, - utils.TxPoolNoLocalsFlag, - utils.TxPoolJournalFlag, - utils.TxPoolRejournalFlag, - utils.TxPoolPriceLimitFlag, - utils.TxPoolPriceBumpFlag, - utils.TxPoolAccountSlotsFlag, - utils.TxPoolGlobalSlotsFlag, - utils.TxPoolAccountQueueFlag, - utils.TxPoolGlobalQueueFlag, - utils.TxPoolLifetimeFlag, - }, - }, - { - Name: "PERFORMANCE TUNING", - Flags: []cli.Flag{ - utils.CacheFlag, - utils.CacheDatabaseFlag, - utils.CacheTrieFlag, - utils.CacheGCFlag, - utils.CacheNoPrefetchFlag, - }, - }, - { - Name: "ACCOUNT", - Flags: []cli.Flag{ - utils.UnlockedAccountFlag, - utils.PasswordFileFlag, - utils.ExternalSignerFlag, - utils.InsecureUnlockAllowedFlag, - }, - }, - { - Name: "API AND CONSOLE", - Flags: []cli.Flag{ - utils.RPCEnabledFlag, - utils.RPCListenAddrFlag, - utils.RPCPortFlag, - utils.RPCApiFlag, - utils.RPCGlobalGasCap, - utils.WSEnabledFlag, - utils.WSListenAddrFlag, - utils.WSPortFlag, - utils.WSApiFlag, - utils.WSAllowedOriginsFlag, - utils.IPCDisabledFlag, - utils.IPCPathFlag, - utils.RPCCORSDomainFlag, - utils.RPCVirtualHostsFlag, - utils.JSpathFlag, - utils.ExecFlag, - utils.PreloadJSFlag, - }, - }, - { - Name: "NETWORKING", - Flags: []cli.Flag{ - utils.BootnodesFlag, - utils.BootnodesV4Flag, - utils.BootnodesV5Flag, - utils.ListenPortFlag, - utils.MaxPeersFlag, - utils.MaxPendingPeersFlag, - utils.NATFlag, - utils.NoDiscoverFlag, - utils.DiscoveryV5Flag, - utils.NetrestrictFlag, - utils.NodeKeyFileFlag, - utils.NodeKeyHexFlag, - }, - }, - { - Name: "MINER", - Flags: []cli.Flag{ - utils.MiningEnabledFlag, - utils.MinerThreadsFlag, - utils.MinerNotifyFlag, - utils.MinerGasPriceFlag, - utils.MinerGasTargetFlag, - utils.MinerGasLimitFlag, - utils.MinerEtherbaseFlag, - utils.MinerExtraDataFlag, - utils.MinerRecommitIntervalFlag, - utils.MinerNoVerfiyFlag, - }, - }, - { - Name: "GAS PRICE ORACLE", - Flags: []cli.Flag{ - utils.GpoBlocksFlag, - utils.GpoPercentileFlag, - }, - }, - { - Name: "VIRTUAL MACHINE", - Flags: []cli.Flag{ - utils.VMEnableDebugFlag, - utils.EVMInterpreterFlag, - utils.EWASMInterpreterFlag, - }, - }, - { - Name: "LOGGING AND DEBUGGING", - Flags: append([]cli.Flag{ - utils.FakePoWFlag, - utils.NoCompactionFlag, - }, debug.Flags...), - }, - { - Name: "METRICS AND STATS", - Flags: metricsFlags, - }, - { - Name: "WHISPER (EXPERIMENTAL)", - Flags: whisperFlags, - }, - { - Name: "DEPRECATED", - Flags: []cli.Flag{ - utils.MinerLegacyThreadsFlag, - utils.MinerLegacyGasTargetFlag, - utils.MinerLegacyGasPriceFlag, - utils.MinerLegacyEtherbaseFlag, - utils.MinerLegacyExtraDataFlag, - }, - }, - { - Name: "STATE DIFF", - Flags: []cli.Flag{ - utils.StateDiffFlag, - }, - }, - { - Name: "MISC", - }, -} - -// byCategory sorts an array of flagGroup by Name in the order -// defined in AppHelpFlagGroups. -type byCategory []flagGroup - -func (a byCategory) Len() int { return len(a) } -func (a byCategory) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byCategory) Less(i, j int) bool { - iCat, jCat := a[i].Name, a[j].Name - iIdx, jIdx := len(AppHelpFlagGroups), len(AppHelpFlagGroups) // ensure non categorized flags come last - - for i, group := range AppHelpFlagGroups { - if iCat == group.Name { - iIdx = i - } - if jCat == group.Name { - jIdx = i - } - } - - return iIdx < jIdx -} - -func flagCategory(flag cli.Flag) string { - for _, category := range AppHelpFlagGroups { - for _, flg := range category.Flags { - if flg.GetName() == flag.GetName() { - return category.Name - } - } - } - return "MISC" -} - -func init() { - // Override the default app help template - cli.AppHelpTemplate = AppHelpTemplate - - // Define a one shot struct to pass to the usage template - type helpData struct { - App interface{} - FlagGroups []flagGroup - } - - // Override the default app help printer, but only for the global app help - originalHelpPrinter := cli.HelpPrinter - cli.HelpPrinter = func(w io.Writer, tmpl string, data interface{}) { - if tmpl == AppHelpTemplate { - // Iterate over all the flags and add any uncategorized ones - categorized := make(map[string]struct{}) - for _, group := range AppHelpFlagGroups { - for _, flag := range group.Flags { - categorized[flag.String()] = struct{}{} - } - } - var uncategorized []cli.Flag - for _, flag := range data.(*cli.App).Flags { - if _, ok := categorized[flag.String()]; !ok { - if strings.HasPrefix(flag.GetName(), "dashboard") { - continue - } - uncategorized = append(uncategorized, flag) - } - } - if len(uncategorized) > 0 { - // Append all ungategorized options to the misc group - miscs := len(AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags) - AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags = append(AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags, uncategorized...) - - // Make sure they are removed afterwards - defer func() { - AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags = AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags[:miscs] - }() - } - // Render out custom usage screen - originalHelpPrinter(w, tmpl, helpData{data, AppHelpFlagGroups}) - } else if tmpl == utils.CommandHelpTemplate { - // Iterate over all command specific flags and categorize them - categorized := make(map[string][]cli.Flag) - for _, flag := range data.(cli.Command).Flags { - if _, ok := categorized[flag.String()]; !ok { - categorized[flagCategory(flag)] = append(categorized[flagCategory(flag)], flag) - } - } - - // sort to get a stable ordering - sorted := make([]flagGroup, 0, len(categorized)) - for cat, flgs := range categorized { - sorted = append(sorted, flagGroup{cat, flgs}) - } - sort.Sort(byCategory(sorted)) - - // add sorted array to data and render with default printer - originalHelpPrinter(w, tmpl, map[string]interface{}{ - "cmd": data, - "categorizedFlags": sorted, - }) - } else { - originalHelpPrinter(w, tmpl, data) - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/swarm/access_test.go b/vendor/github.com/ethereum/go-ethereum/cmd/swarm/access_test.go deleted file mode 100644 index 0aaaad03..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/swarm/access_test.go +++ /dev/null @@ -1,617 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package main - -import ( - "bytes" - "crypto/rand" - "encoding/hex" - "encoding/json" - "io" - "io/ioutil" - gorand "math/rand" - "net/http" - "os" - "runtime" - "strings" - "testing" - "time" - - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/crypto/ecies" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/swarm/api" - swarmapi "github.com/ethereum/go-ethereum/swarm/api/client" - "github.com/ethereum/go-ethereum/swarm/testutil" - "golang.org/x/crypto/sha3" -) - -const ( - hashRegexp = `[a-f\d]{128}` - data = "notsorandomdata" -) - -var DefaultCurve = crypto.S256() - -func TestACT(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip() - } - - cluster := newTestCluster(t, clusterSize) - defer cluster.Shutdown() - - cases := []struct { - name string - f func(t *testing.T, cluster *testCluster) - }{ - {"Password", testPassword}, - {"PK", testPK}, - {"ACTWithoutBogus", testACTWithoutBogus}, - {"ACTWithBogus", testACTWithBogus}, - } - - for _, tc := range cases { - t.Run(tc.name, func(t *testing.T) { - tc.f(t, cluster) - }) - } -} - -// testPassword tests for the correct creation of an ACT manifest protected by a password. -// The test creates bogus content, uploads it encrypted, then creates the wrapping manifest with the Access entry -// The parties participating - node (publisher), uploads to second node then disappears. Content which was uploaded -// is then fetched through 2nd node. since the tested code is not key-aware - we can just -// fetch from the 2nd node using HTTP BasicAuth -func testPassword(t *testing.T, cluster *testCluster) { - dataFilename := testutil.TempFileWithContent(t, data) - defer os.RemoveAll(dataFilename) - - // upload the file with 'swarm up' and expect a hash - up := runSwarm(t, - "--bzzapi", - cluster.Nodes[0].URL, - "up", - "--encrypt", - dataFilename) - _, matches := up.ExpectRegexp(hashRegexp) - up.ExpectExit() - - if len(matches) < 1 { - t.Fatal("no matches found") - } - - ref := matches[0] - tmp, err := ioutil.TempDir("", "swarm-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmp) - password := "smth" - passwordFilename := testutil.TempFileWithContent(t, "smth") - defer os.RemoveAll(passwordFilename) - - up = runSwarm(t, - "access", - "new", - "pass", - "--dry-run", - "--password", - passwordFilename, - ref, - ) - - _, matches = up.ExpectRegexp(".+") - up.ExpectExit() - - if len(matches) == 0 { - t.Fatalf("stdout not matched") - } - - var m api.Manifest - - err = json.Unmarshal([]byte(matches[0]), &m) - if err != nil { - t.Fatalf("unmarshal manifest: %v", err) - } - - if len(m.Entries) != 1 { - t.Fatalf("expected one manifest entry, got %v", len(m.Entries)) - } - - e := m.Entries[0] - - ct := "application/bzz-manifest+json" - if e.ContentType != ct { - t.Errorf("expected %q content type, got %q", ct, e.ContentType) - } - - if e.Access == nil { - t.Fatal("manifest access is nil") - } - - a := e.Access - - if a.Type != "pass" { - t.Errorf(`got access type %q, expected "pass"`, a.Type) - } - if len(a.Salt) < 32 { - t.Errorf(`got salt with length %v, expected not less the 32 bytes`, len(a.Salt)) - } - if a.KdfParams == nil { - t.Fatal("manifest access kdf params is nil") - } - if a.Publisher != "" { - t.Fatal("should be empty") - } - - client := swarmapi.NewClient(cluster.Nodes[0].URL) - - hash, err := client.UploadManifest(&m, false) - if err != nil { - t.Fatal(err) - } - - url := cluster.Nodes[0].URL + "/" + "bzz:/" + hash - - httpClient := &http.Client{} - response, err := httpClient.Get(url) - if err != nil { - t.Fatal(err) - } - if response.StatusCode != http.StatusUnauthorized { - t.Fatal("should be a 401") - } - authHeader := response.Header.Get("WWW-Authenticate") - if authHeader == "" { - t.Fatal("should be something here") - } - - req, err := http.NewRequest(http.MethodGet, url, nil) - if err != nil { - t.Fatal(err) - } - req.SetBasicAuth("", password) - - response, err = http.DefaultClient.Do(req) - if err != nil { - t.Fatal(err) - } - defer response.Body.Close() - - if response.StatusCode != http.StatusOK { - t.Errorf("expected status %v, got %v", http.StatusOK, response.StatusCode) - } - d, err := ioutil.ReadAll(response.Body) - if err != nil { - t.Fatal(err) - } - if string(d) != data { - t.Errorf("expected decrypted data %q, got %q", data, string(d)) - } - - wrongPasswordFilename := testutil.TempFileWithContent(t, "just wr0ng") - defer os.RemoveAll(wrongPasswordFilename) - - //download file with 'swarm down' with wrong password - up = runSwarm(t, - "--bzzapi", - cluster.Nodes[0].URL, - "down", - "bzz:/"+hash, - tmp, - "--password", - wrongPasswordFilename) - - _, matches = up.ExpectRegexp("unauthorized") - if len(matches) != 1 && matches[0] != "unauthorized" { - t.Fatal(`"unauthorized" not found in output"`) - } - up.ExpectExit() -} - -// testPK tests for the correct creation of an ACT manifest between two parties (publisher and grantee). -// The test creates bogus content, uploads it encrypted, then creates the wrapping manifest with the Access entry -// The parties participating - node (publisher), uploads to second node (which is also the grantee) then disappears. -// Content which was uploaded is then fetched through the grantee's http proxy. Since the tested code is private-key aware, -// the test will fail if the proxy's given private key is not granted on the ACT. -func testPK(t *testing.T, cluster *testCluster) { - dataFilename := testutil.TempFileWithContent(t, data) - defer os.RemoveAll(dataFilename) - - // upload the file with 'swarm up' and expect a hash - up := runSwarm(t, - "--bzzapi", - cluster.Nodes[0].URL, - "up", - "--encrypt", - dataFilename) - _, matches := up.ExpectRegexp(hashRegexp) - up.ExpectExit() - - if len(matches) < 1 { - t.Fatal("no matches found") - } - - ref := matches[0] - pk := cluster.Nodes[0].PrivateKey - granteePubKey := crypto.CompressPubkey(&pk.PublicKey) - - publisherDir, err := ioutil.TempDir("", "swarm-account-dir-temp") - if err != nil { - t.Fatal(err) - } - - passwordFilename := testutil.TempFileWithContent(t, testPassphrase) - defer os.RemoveAll(passwordFilename) - - _, publisherAccount := getTestAccount(t, publisherDir) - up = runSwarm(t, - "--bzzaccount", - publisherAccount.Address.String(), - "--password", - passwordFilename, - "--datadir", - publisherDir, - "--bzzapi", - cluster.Nodes[0].URL, - "access", - "new", - "pk", - "--dry-run", - "--grant-key", - hex.EncodeToString(granteePubKey), - ref, - ) - - _, matches = up.ExpectRegexp(".+") - up.ExpectExit() - - if len(matches) == 0 { - t.Fatalf("stdout not matched") - } - - //get the public key from the publisher directory - publicKeyFromDataDir := runSwarm(t, - "--bzzaccount", - publisherAccount.Address.String(), - "--password", - passwordFilename, - "--datadir", - publisherDir, - "print-keys", - "--compressed", - ) - _, publicKeyString := publicKeyFromDataDir.ExpectRegexp(".+") - publicKeyFromDataDir.ExpectExit() - pkComp := strings.Split(publicKeyString[0], "=")[1] - var m api.Manifest - - err = json.Unmarshal([]byte(matches[0]), &m) - if err != nil { - t.Fatalf("unmarshal manifest: %v", err) - } - - if len(m.Entries) != 1 { - t.Fatalf("expected one manifest entry, got %v", len(m.Entries)) - } - - e := m.Entries[0] - - ct := "application/bzz-manifest+json" - if e.ContentType != ct { - t.Errorf("expected %q content type, got %q", ct, e.ContentType) - } - - if e.Access == nil { - t.Fatal("manifest access is nil") - } - - a := e.Access - - if a.Type != "pk" { - t.Errorf(`got access type %q, expected "pk"`, a.Type) - } - if len(a.Salt) < 32 { - t.Errorf(`got salt with length %v, expected not less the 32 bytes`, len(a.Salt)) - } - if a.KdfParams != nil { - t.Fatal("manifest access kdf params should be nil") - } - if a.Publisher != pkComp { - t.Fatal("publisher key did not match") - } - client := swarmapi.NewClient(cluster.Nodes[0].URL) - - hash, err := client.UploadManifest(&m, false) - if err != nil { - t.Fatal(err) - } - - httpClient := &http.Client{} - - url := cluster.Nodes[0].URL + "/" + "bzz:/" + hash - response, err := httpClient.Get(url) - if err != nil { - t.Fatal(err) - } - if response.StatusCode != http.StatusOK { - t.Fatal("should be a 200") - } - d, err := ioutil.ReadAll(response.Body) - if err != nil { - t.Fatal(err) - } - if string(d) != data { - t.Errorf("expected decrypted data %q, got %q", data, string(d)) - } -} - -// testACTWithoutBogus tests the creation of the ACT manifest end-to-end, without any bogus entries (i.e. default scenario = 3 nodes 1 unauthorized) -func testACTWithoutBogus(t *testing.T, cluster *testCluster) { - testACT(t, cluster, 0) -} - -// testACTWithBogus tests the creation of the ACT manifest end-to-end, with 100 bogus entries (i.e. 100 EC keys + default scenario = 3 nodes 1 unauthorized = 103 keys in the ACT manifest) -func testACTWithBogus(t *testing.T, cluster *testCluster) { - testACT(t, cluster, 100) -} - -// testACT tests the e2e creation, uploading and downloading of an ACT access control with both EC keys AND password protection -// the test fires up a 3 node cluster, then randomly picks 2 nodes which will be acting as grantees to the data -// set and also protects the ACT with a password. the third node should fail decoding the reference as it will not be granted access. -// the third node then then tries to download using a correct password (and succeeds) then uses a wrong password and fails. -// the publisher uploads through one of the nodes then disappears. -func testACT(t *testing.T, cluster *testCluster, bogusEntries int) { - var uploadThroughNode = cluster.Nodes[0] - client := swarmapi.NewClient(uploadThroughNode.URL) - - r1 := gorand.New(gorand.NewSource(time.Now().UnixNano())) - nodeToSkip := r1.Intn(clusterSize) // a number between 0 and 2 (node indices in `cluster`) - dataFilename := testutil.TempFileWithContent(t, data) - defer os.RemoveAll(dataFilename) - - // upload the file with 'swarm up' and expect a hash - up := runSwarm(t, - "--bzzapi", - cluster.Nodes[0].URL, - "up", - "--encrypt", - dataFilename) - _, matches := up.ExpectRegexp(hashRegexp) - up.ExpectExit() - - if len(matches) < 1 { - t.Fatal("no matches found") - } - - ref := matches[0] - var grantees []string - for i, v := range cluster.Nodes { - if i == nodeToSkip { - continue - } - pk := v.PrivateKey - granteePubKey := crypto.CompressPubkey(&pk.PublicKey) - grantees = append(grantees, hex.EncodeToString(granteePubKey)) - } - - if bogusEntries > 0 { - var bogusGrantees []string - - for i := 0; i < bogusEntries; i++ { - prv, err := ecies.GenerateKey(rand.Reader, DefaultCurve, nil) - if err != nil { - t.Fatal(err) - } - bogusGrantees = append(bogusGrantees, hex.EncodeToString(crypto.CompressPubkey(&prv.ExportECDSA().PublicKey))) - } - r2 := gorand.New(gorand.NewSource(time.Now().UnixNano())) - for i := 0; i < len(grantees); i++ { - insertAtIdx := r2.Intn(len(bogusGrantees)) - bogusGrantees = append(bogusGrantees[:insertAtIdx], append([]string{grantees[i]}, bogusGrantees[insertAtIdx:]...)...) - } - grantees = bogusGrantees - } - granteesPubkeyListFile := testutil.TempFileWithContent(t, strings.Join(grantees, "\n")) - defer os.RemoveAll(granteesPubkeyListFile) - - publisherDir, err := ioutil.TempDir("", "swarm-account-dir-temp") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(publisherDir) - - passwordFilename := testutil.TempFileWithContent(t, testPassphrase) - defer os.RemoveAll(passwordFilename) - actPasswordFilename := testutil.TempFileWithContent(t, "smth") - defer os.RemoveAll(actPasswordFilename) - _, publisherAccount := getTestAccount(t, publisherDir) - up = runSwarm(t, - "--bzzaccount", - publisherAccount.Address.String(), - "--password", - passwordFilename, - "--datadir", - publisherDir, - "--bzzapi", - cluster.Nodes[0].URL, - "access", - "new", - "act", - "--grant-keys", - granteesPubkeyListFile, - "--password", - actPasswordFilename, - ref, - ) - - _, matches = up.ExpectRegexp(`[a-f\d]{64}`) - up.ExpectExit() - - if len(matches) == 0 { - t.Fatalf("stdout not matched") - } - - //get the public key from the publisher directory - publicKeyFromDataDir := runSwarm(t, - "--bzzaccount", - publisherAccount.Address.String(), - "--password", - passwordFilename, - "--datadir", - publisherDir, - "print-keys", - "--compressed", - ) - _, publicKeyString := publicKeyFromDataDir.ExpectRegexp(".+") - publicKeyFromDataDir.ExpectExit() - pkComp := strings.Split(publicKeyString[0], "=")[1] - - hash := matches[0] - m, _, err := client.DownloadManifest(hash) - if err != nil { - t.Fatalf("unmarshal manifest: %v", err) - } - - if len(m.Entries) != 1 { - t.Fatalf("expected one manifest entry, got %v", len(m.Entries)) - } - - e := m.Entries[0] - - ct := "application/bzz-manifest+json" - if e.ContentType != ct { - t.Errorf("expected %q content type, got %q", ct, e.ContentType) - } - - if e.Access == nil { - t.Fatal("manifest access is nil") - } - - a := e.Access - - if a.Type != "act" { - t.Fatalf(`got access type %q, expected "act"`, a.Type) - } - if len(a.Salt) < 32 { - t.Fatalf(`got salt with length %v, expected not less the 32 bytes`, len(a.Salt)) - } - - if a.Publisher != pkComp { - t.Fatal("publisher key did not match") - } - httpClient := &http.Client{} - - // all nodes except the skipped node should be able to decrypt the content - for i, node := range cluster.Nodes { - log.Debug("trying to fetch from node", "node index", i) - - url := node.URL + "/" + "bzz:/" + hash - response, err := httpClient.Get(url) - if err != nil { - t.Fatal(err) - } - log.Debug("got response from node", "response code", response.StatusCode) - - if i == nodeToSkip { - log.Debug("reached node to skip", "status code", response.StatusCode) - - if response.StatusCode != http.StatusUnauthorized { - t.Fatalf("should be a 401") - } - - // try downloading using a password instead, using the unauthorized node - passwordUrl := strings.Replace(url, "http://", "http://:smth@", -1) - response, err = httpClient.Get(passwordUrl) - if err != nil { - t.Fatal(err) - } - if response.StatusCode != http.StatusOK { - t.Fatal("should be a 200") - } - - // now try with the wrong password, expect 401 - passwordUrl = strings.Replace(url, "http://", "http://:smthWrong@", -1) - response, err = httpClient.Get(passwordUrl) - if err != nil { - t.Fatal(err) - } - if response.StatusCode != http.StatusUnauthorized { - t.Fatal("should be a 401") - } - continue - } - - if response.StatusCode != http.StatusOK { - t.Fatal("should be a 200") - } - d, err := ioutil.ReadAll(response.Body) - if err != nil { - t.Fatal(err) - } - if string(d) != data { - t.Errorf("expected decrypted data %q, got %q", data, string(d)) - } - } -} - -// TestKeypairSanity is a sanity test for the crypto scheme for ACT. it asserts the correct shared secret according to -// the specs at https://github.com/ethersphere/swarm-docs/blob/eb857afda906c6e7bb90d37f3f334ccce5eef230/act.md -func TestKeypairSanity(t *testing.T) { - salt := make([]byte, 32) - if _, err := io.ReadFull(rand.Reader, salt); err != nil { - t.Fatalf("reading from crypto/rand failed: %v", err.Error()) - } - sharedSecret := "a85586744a1ddd56a7ed9f33fa24f40dd745b3a941be296a0d60e329dbdb896d" - - for i, v := range []struct { - publisherPriv string - granteePub string - }{ - { - publisherPriv: "ec5541555f3bc6376788425e9d1a62f55a82901683fd7062c5eddcc373a73459", - granteePub: "0226f213613e843a413ad35b40f193910d26eb35f00154afcde9ded57479a6224a", - }, - { - publisherPriv: "70c7a73011aa56584a0009ab874794ee7e5652fd0c6911cd02f8b6267dd82d2d", - granteePub: "02e6f8d5e28faaa899744972bb847b6eb805a160494690c9ee7197ae9f619181db", - }, - } { - b, _ := hex.DecodeString(v.granteePub) - granteePub, _ := crypto.DecompressPubkey(b) - publisherPrivate, _ := crypto.HexToECDSA(v.publisherPriv) - - ssKey, err := api.NewSessionKeyPK(publisherPrivate, granteePub, salt) - if err != nil { - t.Fatal(err) - } - - hasher := sha3.NewLegacyKeccak256() - hasher.Write(salt) - shared, err := hex.DecodeString(sharedSecret) - if err != nil { - t.Fatal(err) - } - hasher.Write(shared) - sum := hasher.Sum(nil) - - if !bytes.Equal(ssKey, sum) { - t.Fatalf("%d: got a session key mismatch", i) - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/swarm/run_test.go b/vendor/github.com/ethereum/go-ethereum/cmd/swarm/run_test.go deleted file mode 100644 index b68a1e89..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/swarm/run_test.go +++ /dev/null @@ -1,502 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package main - -import ( - "context" - "crypto/ecdsa" - "flag" - "fmt" - "io/ioutil" - "net" - "os" - "path" - "path/filepath" - "runtime" - "sync" - "syscall" - "testing" - "time" - - "github.com/docker/docker/pkg/reexec" - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/internal/cmdtest" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/swarm" - "github.com/ethereum/go-ethereum/swarm/api" - swarmhttp "github.com/ethereum/go-ethereum/swarm/api/http" -) - -var loglevel = flag.Int("loglevel", 3, "verbosity of logs") - -func init() { - // Run the app if we've been exec'd as "swarm-test" in runSwarm. - reexec.Register("swarm-test", func() { - if err := app.Run(os.Args); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - os.Exit(0) - }) -} - -const clusterSize = 3 - -func serverFunc(api *api.API) swarmhttp.TestServer { - return swarmhttp.NewServer(api, "") -} -func TestMain(m *testing.M) { - // check if we have been reexec'd - if reexec.Init() { - return - } - os.Exit(m.Run()) -} - -func runSwarm(t *testing.T, args ...string) *cmdtest.TestCmd { - tt := cmdtest.NewTestCmd(t, nil) - - found := false - for _, v := range args { - if v == "--bootnodes" { - found = true - break - } - } - - if !found { - args = append([]string{"--bootnodes", ""}, args...) - } - - // Boot "swarm". This actually runs the test binary but the TestMain - // function will prevent any tests from running. - tt.Run("swarm-test", args...) - - return tt -} - -type testCluster struct { - Nodes []*testNode - TmpDir string -} - -// newTestCluster starts a test swarm cluster of the given size. -// -// A temporary directory is created and each node gets a data directory inside -// it. -// -// Each node listens on 127.0.0.1 with random ports for both the HTTP and p2p -// ports (assigned by first listening on 127.0.0.1:0 and then passing the ports -// as flags). -// -// When starting more than one node, they are connected together using the -// admin SetPeer RPC method. - -func newTestCluster(t *testing.T, size int) *testCluster { - cluster := &testCluster{} - defer func() { - if t.Failed() { - cluster.Shutdown() - } - }() - - tmpdir, err := ioutil.TempDir("", "swarm-test") - if err != nil { - t.Fatal(err) - } - cluster.TmpDir = tmpdir - - // start the nodes - cluster.StartNewNodes(t, size) - - if size == 1 { - return cluster - } - - // connect the nodes together - for _, node := range cluster.Nodes { - if err := node.Client.Call(nil, "admin_addPeer", cluster.Nodes[0].Enode); err != nil { - t.Fatal(err) - } - } - - // wait until all nodes have the correct number of peers -outer: - for _, node := range cluster.Nodes { - var peers []*p2p.PeerInfo - for start := time.Now(); time.Since(start) < time.Minute; time.Sleep(50 * time.Millisecond) { - if err := node.Client.Call(&peers, "admin_peers"); err != nil { - t.Fatal(err) - } - if len(peers) == len(cluster.Nodes)-1 { - continue outer - } - } - t.Fatalf("%s only has %d / %d peers", node.Name, len(peers), len(cluster.Nodes)-1) - } - - return cluster -} - -func (c *testCluster) Shutdown() { - c.Stop() - c.Cleanup() -} - -func (c *testCluster) Stop() { - for _, node := range c.Nodes { - node.Shutdown() - } -} - -func (c *testCluster) StartNewNodes(t *testing.T, size int) { - c.Nodes = make([]*testNode, 0, size) - - errors := make(chan error, size) - nodes := make(chan *testNode, size) - for i := 0; i < size; i++ { - go func(nodeIndex int) { - dir := filepath.Join(c.TmpDir, fmt.Sprintf("swarm%02d", nodeIndex)) - if err := os.Mkdir(dir, 0700); err != nil { - errors <- err - return - } - - node := newTestNode(t, dir) - node.Name = fmt.Sprintf("swarm%02d", nodeIndex) - nodes <- node - }(i) - } - - for i := 0; i < size; i++ { - select { - case node := <-nodes: - c.Nodes = append(c.Nodes, node) - case err := <-errors: - t.Error(err) - } - } - - if t.Failed() { - c.Shutdown() - t.FailNow() - } -} - -func (c *testCluster) StartExistingNodes(t *testing.T, size int, bzzaccount string) { - c.Nodes = make([]*testNode, 0, size) - for i := 0; i < size; i++ { - dir := filepath.Join(c.TmpDir, fmt.Sprintf("swarm%02d", i)) - node := existingTestNode(t, dir, bzzaccount) - node.Name = fmt.Sprintf("swarm%02d", i) - - c.Nodes = append(c.Nodes, node) - } -} - -func (c *testCluster) Cleanup() { - os.RemoveAll(c.TmpDir) -} - -type testNode struct { - Name string - Addr string - URL string - Enode string - Dir string - IpcPath string - PrivateKey *ecdsa.PrivateKey - Client *rpc.Client - Cmd *cmdtest.TestCmd -} - -const testPassphrase = "swarm-test-passphrase" - -func getTestAccount(t *testing.T, dir string) (conf *node.Config, account accounts.Account) { - // create key - conf = &node.Config{ - DataDir: dir, - IPCPath: "bzzd.ipc", - NoUSB: true, - } - n, err := node.New(conf) - if err != nil { - t.Fatal(err) - } - account, err = n.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore).NewAccount(testPassphrase) - if err != nil { - t.Fatal(err) - } - - // use a unique IPCPath when running tests on Windows - if runtime.GOOS == "windows" { - conf.IPCPath = fmt.Sprintf("bzzd-%s.ipc", account.Address.String()) - } - - return conf, account -} - -func existingTestNode(t *testing.T, dir string, bzzaccount string) *testNode { - conf, _ := getTestAccount(t, dir) - node := &testNode{Dir: dir} - - // use a unique IPCPath when running tests on Windows - if runtime.GOOS == "windows" { - conf.IPCPath = fmt.Sprintf("bzzd-%s.ipc", bzzaccount) - } - - // assign ports - ports, err := getAvailableTCPPorts(2) - if err != nil { - t.Fatal(err) - } - p2pPort := ports[0] - httpPort := ports[1] - - // start the node - node.Cmd = runSwarm(t, - "--bootnodes", "", - "--port", p2pPort, - "--nat", "extip:127.0.0.1", - "--datadir", dir, - "--ipcpath", conf.IPCPath, - "--ens-api", "", - "--bzzaccount", bzzaccount, - "--bzznetworkid", "321", - "--bzzport", httpPort, - "--verbosity", fmt.Sprint(*loglevel), - ) - node.Cmd.InputLine(testPassphrase) - defer func() { - if t.Failed() { - node.Shutdown() - } - }() - - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) - defer cancel() - - // ensure that all ports have active listeners - // so that the next node will not get the same - // when calling getAvailableTCPPorts - err = waitTCPPorts(ctx, ports...) - if err != nil { - t.Fatal(err) - } - - // wait for the node to start - for start := time.Now(); time.Since(start) < 10*time.Second; time.Sleep(50 * time.Millisecond) { - node.Client, err = rpc.Dial(conf.IPCEndpoint()) - if err == nil { - break - } - } - if node.Client == nil { - t.Fatal(err) - } - - // load info - var info swarm.Info - if err := node.Client.Call(&info, "bzz_info"); err != nil { - t.Fatal(err) - } - node.Addr = net.JoinHostPort("127.0.0.1", info.Port) - node.URL = "http://" + node.Addr - - var nodeInfo p2p.NodeInfo - if err := node.Client.Call(&nodeInfo, "admin_nodeInfo"); err != nil { - t.Fatal(err) - } - node.Enode = nodeInfo.Enode - node.IpcPath = conf.IPCPath - return node -} - -func newTestNode(t *testing.T, dir string) *testNode { - - conf, account := getTestAccount(t, dir) - ks := keystore.NewKeyStore(path.Join(dir, "keystore"), 1<<18, 1) - - pk := decryptStoreAccount(ks, account.Address.Hex(), []string{testPassphrase}) - - node := &testNode{Dir: dir, PrivateKey: pk} - - // assign ports - ports, err := getAvailableTCPPorts(2) - if err != nil { - t.Fatal(err) - } - p2pPort := ports[0] - httpPort := ports[1] - - // start the node - node.Cmd = runSwarm(t, - "--bootnodes", "", - "--port", p2pPort, - "--nat", "extip:127.0.0.1", - "--datadir", dir, - "--ipcpath", conf.IPCPath, - "--ens-api", "", - "--bzzaccount", account.Address.String(), - "--bzznetworkid", "321", - "--bzzport", httpPort, - "--verbosity", fmt.Sprint(*loglevel), - ) - node.Cmd.InputLine(testPassphrase) - defer func() { - if t.Failed() { - node.Shutdown() - } - }() - - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) - defer cancel() - - // ensure that all ports have active listeners - // so that the next node will not get the same - // when calling getAvailableTCPPorts - err = waitTCPPorts(ctx, ports...) - if err != nil { - t.Fatal(err) - } - - // wait for the node to start - for start := time.Now(); time.Since(start) < 10*time.Second; time.Sleep(50 * time.Millisecond) { - node.Client, err = rpc.Dial(conf.IPCEndpoint()) - if err == nil { - break - } - } - if node.Client == nil { - t.Fatal(err) - } - - // load info - var info swarm.Info - if err := node.Client.Call(&info, "bzz_info"); err != nil { - t.Fatal(err) - } - node.Addr = net.JoinHostPort("127.0.0.1", info.Port) - node.URL = "http://" + node.Addr - - var nodeInfo p2p.NodeInfo - if err := node.Client.Call(&nodeInfo, "admin_nodeInfo"); err != nil { - t.Fatal(err) - } - node.Enode = nodeInfo.Enode - node.IpcPath = conf.IPCPath - return node -} - -func (n *testNode) Shutdown() { - if n.Cmd != nil { - n.Cmd.Kill() - } -} - -// getAvailableTCPPorts returns a set of ports that -// nothing is listening on at the time. -// -// Function assignTCPPort cannot be called in sequence -// and guardantee that the same port will be returned in -// different calls as the listener is closed within the function, -// not after all listeners are started and selected unique -// available ports. -func getAvailableTCPPorts(count int) (ports []string, err error) { - for i := 0; i < count; i++ { - l, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - return nil, err - } - // defer close in the loop to be sure the same port will not - // be selected in the next iteration - defer l.Close() - - _, port, err := net.SplitHostPort(l.Addr().String()) - if err != nil { - return nil, err - } - ports = append(ports, port) - } - return ports, nil -} - -// waitTCPPorts blocks until tcp connections can be -// established on all provided ports. It runs all -// ports dialers in parallel, and returns the first -// encountered error. -// See waitTCPPort also. -func waitTCPPorts(ctx context.Context, ports ...string) error { - var err error - // mu locks err variable that is assigned in - // other goroutines - var mu sync.Mutex - - // cancel is canceling all goroutines - // when the firs error is returned - // to prevent unnecessary waiting - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - var wg sync.WaitGroup - for _, port := range ports { - wg.Add(1) - go func(port string) { - defer wg.Done() - - e := waitTCPPort(ctx, port) - - mu.Lock() - defer mu.Unlock() - if e != nil && err == nil { - err = e - cancel() - } - }(port) - } - wg.Wait() - - return err -} - -// waitTCPPort blocks until tcp connection can be established -// ona provided port. It has a 3 minute timeout as maximum, -// to prevent long waiting, but it can be shortened with -// a provided context instance. Dialer has a 10 second timeout -// in every iteration, and connection refused error will be -// retried in 100 milliseconds periods. -func waitTCPPort(ctx context.Context, port string) error { - ctx, cancel := context.WithTimeout(ctx, 3*time.Minute) - defer cancel() - - for { - c, err := (&net.Dialer{Timeout: 10 * time.Second}).DialContext(ctx, "tcp", "127.0.0.1:"+port) - if err != nil { - if operr, ok := err.(*net.OpError); ok { - if syserr, ok := operr.Err.(*os.SyscallError); ok && syserr.Err == syscall.ECONNREFUSED { - time.Sleep(100 * time.Millisecond) - continue - } - } - return err - } - return c.Close() - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/swarm/upload_test.go b/vendor/github.com/ethereum/go-ethereum/cmd/swarm/upload_test.go deleted file mode 100644 index 356424c6..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/swarm/upload_test.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package main - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "net/http" - "os" - "path" - "path/filepath" - "runtime" - "strings" - "testing" - "time" - - "github.com/ethereum/go-ethereum/log" - swarmapi "github.com/ethereum/go-ethereum/swarm/api/client" - "github.com/ethereum/go-ethereum/swarm/testutil" - "github.com/mattn/go-colorable" -) - -func init() { - log.PrintOrigins(true) - log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true)))) -} - -func TestSwarmUp(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip() - } - - cluster := newTestCluster(t, clusterSize) - defer cluster.Shutdown() - - cases := []struct { - name string - f func(t *testing.T, cluster *testCluster) - }{ - {"NoEncryption", testNoEncryption}, - {"Encrypted", testEncrypted}, - {"RecursiveNoEncryption", testRecursiveNoEncryption}, - {"RecursiveEncrypted", testRecursiveEncrypted}, - {"DefaultPathAll", testDefaultPathAll}, - } - - for _, tc := range cases { - t.Run(tc.name, func(t *testing.T) { - tc.f(t, cluster) - }) - } -} - -// testNoEncryption tests that running 'swarm up' makes the resulting file -// available from all nodes via the HTTP API -func testNoEncryption(t *testing.T, cluster *testCluster) { - testDefault(t, cluster, false) -} - -// testEncrypted tests that running 'swarm up --encrypted' makes the resulting file -// available from all nodes via the HTTP API -func testEncrypted(t *testing.T, cluster *testCluster) { - testDefault(t, cluster, true) -} - -func testRecursiveNoEncryption(t *testing.T, cluster *testCluster) { - testRecursive(t, cluster, false) -} - -func testRecursiveEncrypted(t *testing.T, cluster *testCluster) { - testRecursive(t, cluster, true) -} - -func testDefault(t *testing.T, cluster *testCluster, toEncrypt bool) { - tmpFileName := testutil.TempFileWithContent(t, data) - defer os.Remove(tmpFileName) - - // write data to file - hashRegexp := `[a-f\d]{64}` - flags := []string{ - "--bzzapi", cluster.Nodes[0].URL, - "up", - tmpFileName} - if toEncrypt { - hashRegexp = `[a-f\d]{128}` - flags = []string{ - "--bzzapi", cluster.Nodes[0].URL, - "up", - "--encrypt", - tmpFileName} - } - // upload the file with 'swarm up' and expect a hash - log.Info(fmt.Sprintf("uploading file with 'swarm up'")) - up := runSwarm(t, flags...) - _, matches := up.ExpectRegexp(hashRegexp) - up.ExpectExit() - hash := matches[0] - log.Info("file uploaded", "hash", hash) - - // get the file from the HTTP API of each node - for _, node := range cluster.Nodes { - log.Info("getting file from node", "node", node.Name) - - res, err := http.Get(node.URL + "/bzz:/" + hash) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - - reply, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Fatal(err) - } - if res.StatusCode != 200 { - t.Fatalf("expected HTTP status 200, got %s", res.Status) - } - if string(reply) != data { - t.Fatalf("expected HTTP body %q, got %q", data, reply) - } - log.Debug("verifying uploaded file using `swarm down`") - //try to get the content with `swarm down` - tmpDownload, err := ioutil.TempDir("", "swarm-test") - tmpDownload = path.Join(tmpDownload, "tmpfile.tmp") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpDownload) - - bzzLocator := "bzz:/" + hash - flags = []string{ - "--bzzapi", cluster.Nodes[0].URL, - "down", - bzzLocator, - tmpDownload, - } - - down := runSwarm(t, flags...) - down.ExpectExit() - - fi, err := os.Stat(tmpDownload) - if err != nil { - t.Fatalf("could not stat path: %v", err) - } - - switch mode := fi.Mode(); { - case mode.IsRegular(): - downloadedBytes, err := ioutil.ReadFile(tmpDownload) - if err != nil { - t.Fatalf("had an error reading the downloaded file: %v", err) - } - if !bytes.Equal(downloadedBytes, bytes.NewBufferString(data).Bytes()) { - t.Fatalf("retrieved data and posted data not equal!") - } - - default: - t.Fatalf("expected to download regular file, got %s", fi.Mode()) - } - } - - timeout := time.Duration(2 * time.Second) - httpClient := http.Client{ - Timeout: timeout, - } - - // try to squeeze a timeout by getting an non-existent hash from each node - for _, node := range cluster.Nodes { - _, err := httpClient.Get(node.URL + "/bzz:/1023e8bae0f70be7d7b5f74343088ba408a218254391490c85ae16278e230340") - // we're speeding up the timeout here since netstore has a 60 seconds timeout on a request - if err != nil && !strings.Contains(err.Error(), "Client.Timeout exceeded while awaiting headers") { - t.Fatal(err) - } - // this is disabled since it takes 60s due to netstore timeout - // if res.StatusCode != 404 { - // t.Fatalf("expected HTTP status 404, got %s", res.Status) - // } - } -} - -func testRecursive(t *testing.T, cluster *testCluster, toEncrypt bool) { - tmpUploadDir, err := ioutil.TempDir("", "swarm-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpUploadDir) - // create tmp files - for _, path := range []string{"tmp1", "tmp2"} { - if err := ioutil.WriteFile(filepath.Join(tmpUploadDir, path), bytes.NewBufferString(data).Bytes(), 0644); err != nil { - t.Fatal(err) - } - } - - hashRegexp := `[a-f\d]{64}` - flags := []string{ - "--bzzapi", cluster.Nodes[0].URL, - "--recursive", - "up", - tmpUploadDir} - if toEncrypt { - hashRegexp = `[a-f\d]{128}` - flags = []string{ - "--bzzapi", cluster.Nodes[0].URL, - "--recursive", - "up", - "--encrypt", - tmpUploadDir} - } - // upload the file with 'swarm up' and expect a hash - log.Info(fmt.Sprintf("uploading file with 'swarm up'")) - up := runSwarm(t, flags...) - _, matches := up.ExpectRegexp(hashRegexp) - up.ExpectExit() - hash := matches[0] - log.Info("dir uploaded", "hash", hash) - - // get the file from the HTTP API of each node - for _, node := range cluster.Nodes { - log.Info("getting file from node", "node", node.Name) - //try to get the content with `swarm down` - tmpDownload, err := ioutil.TempDir("", "swarm-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpDownload) - bzzLocator := "bzz:/" + hash - flagss := []string{ - "--bzzapi", cluster.Nodes[0].URL, - "down", - "--recursive", - bzzLocator, - tmpDownload, - } - - fmt.Println("downloading from swarm with recursive") - down := runSwarm(t, flagss...) - down.ExpectExit() - - files, err := ioutil.ReadDir(tmpDownload) - for _, v := range files { - fi, err := os.Stat(path.Join(tmpDownload, v.Name())) - if err != nil { - t.Fatalf("got an error: %v", err) - } - - switch mode := fi.Mode(); { - case mode.IsRegular(): - if file, err := swarmapi.Open(path.Join(tmpDownload, v.Name())); err != nil { - t.Fatalf("encountered an error opening the file returned from the CLI: %v", err) - } else { - ff := make([]byte, len(data)) - io.ReadFull(file, ff) - buf := bytes.NewBufferString(data) - - if !bytes.Equal(ff, buf.Bytes()) { - t.Fatalf("retrieved data and posted data not equal!") - } - } - default: - t.Fatalf("this shouldnt happen") - } - } - if err != nil { - t.Fatalf("could not list files at: %v", files) - } - } -} - -// testDefaultPathAll tests swarm recursive upload with relative and absolute -// default paths and with encryption. -func testDefaultPathAll(t *testing.T, cluster *testCluster) { - testDefaultPath(t, cluster, false, false) - testDefaultPath(t, cluster, false, true) - testDefaultPath(t, cluster, true, false) - testDefaultPath(t, cluster, true, true) -} - -func testDefaultPath(t *testing.T, cluster *testCluster, toEncrypt bool, absDefaultPath bool) { - tmp, err := ioutil.TempDir("", "swarm-defaultpath-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmp) - - err = ioutil.WriteFile(filepath.Join(tmp, "index.html"), []byte("

Test

"), 0666) - if err != nil { - t.Fatal(err) - } - err = ioutil.WriteFile(filepath.Join(tmp, "robots.txt"), []byte("Disallow: /"), 0666) - if err != nil { - t.Fatal(err) - } - - defaultPath := "index.html" - if absDefaultPath { - defaultPath = filepath.Join(tmp, defaultPath) - } - - args := []string{ - "--bzzapi", - cluster.Nodes[0].URL, - "--recursive", - "--defaultpath", - defaultPath, - "up", - tmp, - } - if toEncrypt { - args = append(args, "--encrypt") - } - - up := runSwarm(t, args...) - hashRegexp := `[a-f\d]{64,128}` - _, matches := up.ExpectRegexp(hashRegexp) - up.ExpectExit() - hash := matches[0] - - client := swarmapi.NewClient(cluster.Nodes[0].URL) - - m, isEncrypted, err := client.DownloadManifest(hash) - if err != nil { - t.Fatal(err) - } - - if toEncrypt != isEncrypted { - t.Error("downloaded manifest is not encrypted") - } - - var found bool - var entriesCount int - for _, e := range m.Entries { - entriesCount++ - if e.Path == "" { - found = true - } - } - - if !found { - t.Error("manifest default entry was not found") - } - - if entriesCount != 3 { - t.Errorf("manifest contains %v entries, expected %v", entriesCount, 3) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/cmd/utils/flags.go b/vendor/github.com/ethereum/go-ethereum/cmd/utils/flags.go deleted file mode 100644 index e4bb18a8..00000000 --- a/vendor/github.com/ethereum/go-ethereum/cmd/utils/flags.go +++ /dev/null @@ -1,1699 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -// Package utils contains internal helper functions for go-ethereum commands. -package utils - -import ( - "crypto/ecdsa" - "encoding/json" - "fmt" - "io/ioutil" - "math/big" - "os" - "path/filepath" - "strconv" - "strings" - "time" - - cli "gopkg.in/urfave/cli.v1" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/fdlimit" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/consensus/clique" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/dashboard" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/eth/gasprice" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/ethstats" - "github.com/ethereum/go-ethereum/les" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/metrics" - "github.com/ethereum/go-ethereum/metrics/influxdb" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/discv5" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/p2p/nat" - "github.com/ethereum/go-ethereum/p2p/netutil" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/statediff" - whisper "github.com/ethereum/go-ethereum/whisper/whisperv6" -) - -var ( - CommandHelpTemplate = `{{.cmd.Name}}{{if .cmd.Subcommands}} command{{end}}{{if .cmd.Flags}} [command options]{{end}} [arguments...] -{{if .cmd.Description}}{{.cmd.Description}} -{{end}}{{if .cmd.Subcommands}} -SUBCOMMANDS: - {{range .cmd.Subcommands}}{{.Name}}{{with .ShortName}}, {{.}}{{end}}{{ "\t" }}{{.Usage}} - {{end}}{{end}}{{if .categorizedFlags}} -{{range $idx, $categorized := .categorizedFlags}}{{$categorized.Name}} OPTIONS: -{{range $categorized.Flags}}{{"\t"}}{{.}} -{{end}} -{{end}}{{end}}` -) - -func init() { - cli.AppHelpTemplate = `{{.Name}} {{if .Flags}}[global options] {{end}}command{{if .Flags}} [command options]{{end}} [arguments...] - -VERSION: - {{.Version}} - -COMMANDS: - {{range .Commands}}{{.Name}}{{with .ShortName}}, {{.}}{{end}}{{ "\t" }}{{.Usage}} - {{end}}{{if .Flags}} -GLOBAL OPTIONS: - {{range .Flags}}{{.}} - {{end}}{{end}} -` - - cli.CommandHelpTemplate = CommandHelpTemplate -} - -// NewApp creates an app with sane defaults. -func NewApp(gitCommit, usage string) *cli.App { - app := cli.NewApp() - app.Name = filepath.Base(os.Args[0]) - app.Author = "" - //app.Authors = nil - app.Email = "" - app.Version = params.VersionWithMeta - if len(gitCommit) >= 8 { - app.Version += "-" + gitCommit[:8] - } - app.Usage = usage - return app -} - -// These are all the command line flags we support. -// If you add to this list, please remember to include the -// flag in the appropriate command definition. -// -// The flags are defined here so their names and help texts -// are the same for all commands. - -var ( - // General settings - DataDirFlag = DirectoryFlag{ - Name: "datadir", - Usage: "Data directory for the databases and keystore", - Value: DirectoryString{node.DefaultDataDir()}, - } - KeyStoreDirFlag = DirectoryFlag{ - Name: "keystore", - Usage: "Directory for the keystore (default = inside the datadir)", - } - NoUSBFlag = cli.BoolFlag{ - Name: "nousb", - Usage: "Disables monitoring for and managing USB hardware wallets", - } - NetworkIdFlag = cli.Uint64Flag{ - Name: "networkid", - Usage: "Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby)", - Value: eth.DefaultConfig.NetworkId, - } - TestnetFlag = cli.BoolFlag{ - Name: "testnet", - Usage: "Ropsten network: pre-configured proof-of-work test network", - } - RinkebyFlag = cli.BoolFlag{ - Name: "rinkeby", - Usage: "Rinkeby network: pre-configured proof-of-authority test network", - } - GoerliFlag = cli.BoolFlag{ - Name: "goerli", - Usage: "Görli network: pre-configured proof-of-authority test network", - } - ConstantinopleOverrideFlag = cli.Uint64Flag{ - Name: "override.constantinople", - Usage: "Manually specify constantinople fork-block, overriding the bundled setting", - } - DeveloperFlag = cli.BoolFlag{ - Name: "dev", - Usage: "Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled", - } - DeveloperPeriodFlag = cli.IntFlag{ - Name: "dev.period", - Usage: "Block period to use in developer mode (0 = mine only if transaction pending)", - } - IdentityFlag = cli.StringFlag{ - Name: "identity", - Usage: "Custom node name", - } - DocRootFlag = DirectoryFlag{ - Name: "docroot", - Usage: "Document Root for HTTPClient file scheme", - Value: DirectoryString{homeDir()}, - } - ExitWhenSyncedFlag = cli.BoolFlag{ - Name: "exitwhensynced", - Usage: "Exits after block synchronisation completes", - } - ULCModeConfigFlag = cli.StringFlag{ - Name: "ulc.config", - Usage: "Config file to use for ultra light client mode", - } - OnlyAnnounceModeFlag = cli.BoolFlag{ - Name: "ulc.onlyannounce", - Usage: "ULC server sends announcements only", - } - ULCMinTrustedFractionFlag = cli.IntFlag{ - Name: "ulc.fraction", - Usage: "Minimum % of trusted ULC servers required to announce a new head", - } - ULCTrustedNodesFlag = cli.StringFlag{ - Name: "ulc.trusted", - Usage: "List of trusted ULC servers", - } - defaultSyncMode = eth.DefaultConfig.SyncMode - SyncModeFlag = TextMarshalerFlag{ - Name: "syncmode", - Usage: `Blockchain sync mode ("fast", "full", or "light")`, - Value: &defaultSyncMode, - } - GCModeFlag = cli.StringFlag{ - Name: "gcmode", - Usage: `Blockchain garbage collection mode ("full", "archive")`, - Value: "full", - } - LightServFlag = cli.IntFlag{ - Name: "lightserv", - Usage: "Maximum percentage of time allowed for serving LES requests (multi-threaded processing allows values over 100)", - Value: 0, - } - LightBandwidthInFlag = cli.IntFlag{ - Name: "lightbwin", - Usage: "Incoming bandwidth limit for light server (1000 bytes/sec, 0 = unlimited)", - Value: 1000, - } - LightBandwidthOutFlag = cli.IntFlag{ - Name: "lightbwout", - Usage: "Outgoing bandwidth limit for light server (1000 bytes/sec, 0 = unlimited)", - Value: 5000, - } - LightPeersFlag = cli.IntFlag{ - Name: "lightpeers", - Usage: "Maximum number of LES client peers", - Value: eth.DefaultConfig.LightPeers, - } - LightKDFFlag = cli.BoolFlag{ - Name: "lightkdf", - Usage: "Reduce key-derivation RAM & CPU usage at some expense of KDF strength", - } - WhitelistFlag = cli.StringFlag{ - Name: "whitelist", - Usage: "Comma separated block number-to-hash mappings to enforce (=)", - } - // Dashboard settings - DashboardEnabledFlag = cli.BoolFlag{ - Name: "dashboard", - Usage: "Enable the dashboard", - } - DashboardAddrFlag = cli.StringFlag{ - Name: "dashboard.addr", - Usage: "Dashboard listening interface", - Value: dashboard.DefaultConfig.Host, - } - DashboardPortFlag = cli.IntFlag{ - Name: "dashboard.host", - Usage: "Dashboard listening port", - Value: dashboard.DefaultConfig.Port, - } - DashboardRefreshFlag = cli.DurationFlag{ - Name: "dashboard.refresh", - Usage: "Dashboard metrics collection refresh rate", - Value: dashboard.DefaultConfig.Refresh, - } - // Ethash settings - EthashCacheDirFlag = DirectoryFlag{ - Name: "ethash.cachedir", - Usage: "Directory to store the ethash verification caches (default = inside the datadir)", - } - EthashCachesInMemoryFlag = cli.IntFlag{ - Name: "ethash.cachesinmem", - Usage: "Number of recent ethash caches to keep in memory (16MB each)", - Value: eth.DefaultConfig.Ethash.CachesInMem, - } - EthashCachesOnDiskFlag = cli.IntFlag{ - Name: "ethash.cachesondisk", - Usage: "Number of recent ethash caches to keep on disk (16MB each)", - Value: eth.DefaultConfig.Ethash.CachesOnDisk, - } - EthashDatasetDirFlag = DirectoryFlag{ - Name: "ethash.dagdir", - Usage: "Directory to store the ethash mining DAGs (default = inside home folder)", - Value: DirectoryString{eth.DefaultConfig.Ethash.DatasetDir}, - } - EthashDatasetsInMemoryFlag = cli.IntFlag{ - Name: "ethash.dagsinmem", - Usage: "Number of recent ethash mining DAGs to keep in memory (1+GB each)", - Value: eth.DefaultConfig.Ethash.DatasetsInMem, - } - EthashDatasetsOnDiskFlag = cli.IntFlag{ - Name: "ethash.dagsondisk", - Usage: "Number of recent ethash mining DAGs to keep on disk (1+GB each)", - Value: eth.DefaultConfig.Ethash.DatasetsOnDisk, - } - // Transaction pool settings - TxPoolLocalsFlag = cli.StringFlag{ - Name: "txpool.locals", - Usage: "Comma separated accounts to treat as locals (no flush, priority inclusion)", - } - TxPoolNoLocalsFlag = cli.BoolFlag{ - Name: "txpool.nolocals", - Usage: "Disables price exemptions for locally submitted transactions", - } - TxPoolJournalFlag = cli.StringFlag{ - Name: "txpool.journal", - Usage: "Disk journal for local transaction to survive node restarts", - Value: core.DefaultTxPoolConfig.Journal, - } - TxPoolRejournalFlag = cli.DurationFlag{ - Name: "txpool.rejournal", - Usage: "Time interval to regenerate the local transaction journal", - Value: core.DefaultTxPoolConfig.Rejournal, - } - TxPoolPriceLimitFlag = cli.Uint64Flag{ - Name: "txpool.pricelimit", - Usage: "Minimum gas price limit to enforce for acceptance into the pool", - Value: eth.DefaultConfig.TxPool.PriceLimit, - } - TxPoolPriceBumpFlag = cli.Uint64Flag{ - Name: "txpool.pricebump", - Usage: "Price bump percentage to replace an already existing transaction", - Value: eth.DefaultConfig.TxPool.PriceBump, - } - TxPoolAccountSlotsFlag = cli.Uint64Flag{ - Name: "txpool.accountslots", - Usage: "Minimum number of executable transaction slots guaranteed per account", - Value: eth.DefaultConfig.TxPool.AccountSlots, - } - TxPoolGlobalSlotsFlag = cli.Uint64Flag{ - Name: "txpool.globalslots", - Usage: "Maximum number of executable transaction slots for all accounts", - Value: eth.DefaultConfig.TxPool.GlobalSlots, - } - TxPoolAccountQueueFlag = cli.Uint64Flag{ - Name: "txpool.accountqueue", - Usage: "Maximum number of non-executable transaction slots permitted per account", - Value: eth.DefaultConfig.TxPool.AccountQueue, - } - TxPoolGlobalQueueFlag = cli.Uint64Flag{ - Name: "txpool.globalqueue", - Usage: "Maximum number of non-executable transaction slots for all accounts", - Value: eth.DefaultConfig.TxPool.GlobalQueue, - } - TxPoolLifetimeFlag = cli.DurationFlag{ - Name: "txpool.lifetime", - Usage: "Maximum amount of time non-executable transaction are queued", - Value: eth.DefaultConfig.TxPool.Lifetime, - } - // Performance tuning settings - CacheFlag = cli.IntFlag{ - Name: "cache", - Usage: "Megabytes of memory allocated to internal caching", - Value: 1024, - } - CacheDatabaseFlag = cli.IntFlag{ - Name: "cache.database", - Usage: "Percentage of cache memory allowance to use for database io", - Value: 50, - } - CacheTrieFlag = cli.IntFlag{ - Name: "cache.trie", - Usage: "Percentage of cache memory allowance to use for trie caching (default = 25% full mode, 50% archive mode)", - Value: 25, - } - CacheGCFlag = cli.IntFlag{ - Name: "cache.gc", - Usage: "Percentage of cache memory allowance to use for trie pruning (default = 25% full mode, 0% archive mode)", - Value: 25, - } - CacheNoPrefetchFlag = cli.BoolFlag{ - Name: "cache.noprefetch", - Usage: "Disable heuristic state prefetch during block import (less CPU and disk IO, more time waiting for data)", - } - // Miner settings - MiningEnabledFlag = cli.BoolFlag{ - Name: "mine", - Usage: "Enable mining", - } - MinerThreadsFlag = cli.IntFlag{ - Name: "miner.threads", - Usage: "Number of CPU threads to use for mining", - Value: 0, - } - MinerLegacyThreadsFlag = cli.IntFlag{ - Name: "minerthreads", - Usage: "Number of CPU threads to use for mining (deprecated, use --miner.threads)", - Value: 0, - } - MinerNotifyFlag = cli.StringFlag{ - Name: "miner.notify", - Usage: "Comma separated HTTP URL list to notify of new work packages", - } - MinerGasTargetFlag = cli.Uint64Flag{ - Name: "miner.gastarget", - Usage: "Target gas floor for mined blocks", - Value: eth.DefaultConfig.MinerGasFloor, - } - MinerLegacyGasTargetFlag = cli.Uint64Flag{ - Name: "targetgaslimit", - Usage: "Target gas floor for mined blocks (deprecated, use --miner.gastarget)", - Value: eth.DefaultConfig.MinerGasFloor, - } - MinerGasLimitFlag = cli.Uint64Flag{ - Name: "miner.gaslimit", - Usage: "Target gas ceiling for mined blocks", - Value: eth.DefaultConfig.MinerGasCeil, - } - MinerGasPriceFlag = BigFlag{ - Name: "miner.gasprice", - Usage: "Minimum gas price for mining a transaction", - Value: eth.DefaultConfig.MinerGasPrice, - } - MinerLegacyGasPriceFlag = BigFlag{ - Name: "gasprice", - Usage: "Minimum gas price for mining a transaction (deprecated, use --miner.gasprice)", - Value: eth.DefaultConfig.MinerGasPrice, - } - MinerEtherbaseFlag = cli.StringFlag{ - Name: "miner.etherbase", - Usage: "Public address for block mining rewards (default = first account)", - Value: "0", - } - MinerLegacyEtherbaseFlag = cli.StringFlag{ - Name: "etherbase", - Usage: "Public address for block mining rewards (default = first account, deprecated, use --miner.etherbase)", - Value: "0", - } - MinerExtraDataFlag = cli.StringFlag{ - Name: "miner.extradata", - Usage: "Block extra data set by the miner (default = client version)", - } - MinerLegacyExtraDataFlag = cli.StringFlag{ - Name: "extradata", - Usage: "Block extra data set by the miner (default = client version, deprecated, use --miner.extradata)", - } - MinerRecommitIntervalFlag = cli.DurationFlag{ - Name: "miner.recommit", - Usage: "Time interval to recreate the block being mined", - Value: eth.DefaultConfig.MinerRecommit, - } - MinerNoVerfiyFlag = cli.BoolFlag{ - Name: "miner.noverify", - Usage: "Disable remote sealing verification", - } - // Account settings - UnlockedAccountFlag = cli.StringFlag{ - Name: "unlock", - Usage: "Comma separated list of accounts to unlock", - Value: "", - } - PasswordFileFlag = cli.StringFlag{ - Name: "password", - Usage: "Password file to use for non-interactive password input", - Value: "", - } - ExternalSignerFlag = cli.StringFlag{ - Name: "signer", - Usage: "External signer (url or path to ipc file)", - Value: "", - } - VMEnableDebugFlag = cli.BoolFlag{ - Name: "vmdebug", - Usage: "Record information useful for VM and contract debugging", - } - InsecureUnlockAllowedFlag = cli.BoolFlag{ - Name: "allow-insecure-unlock", - Usage: "Allow insecure account unlocking when account-related RPCs are exposed by http", - } - RPCGlobalGasCap = cli.Uint64Flag{ - Name: "rpc.gascap", - Usage: "Sets a cap on gas that can be used in eth_call/estimateGas", - } - // Logging and debug settings - EthStatsURLFlag = cli.StringFlag{ - Name: "ethstats", - Usage: "Reporting URL of a ethstats service (nodename:secret@host:port)", - } - FakePoWFlag = cli.BoolFlag{ - Name: "fakepow", - Usage: "Disables proof-of-work verification", - } - NoCompactionFlag = cli.BoolFlag{ - Name: "nocompaction", - Usage: "Disables db compaction after import", - } - // RPC settings - RPCEnabledFlag = cli.BoolFlag{ - Name: "rpc", - Usage: "Enable the HTTP-RPC server", - } - RPCListenAddrFlag = cli.StringFlag{ - Name: "rpcaddr", - Usage: "HTTP-RPC server listening interface", - Value: node.DefaultHTTPHost, - } - RPCPortFlag = cli.IntFlag{ - Name: "rpcport", - Usage: "HTTP-RPC server listening port", - Value: node.DefaultHTTPPort, - } - GraphQLEnabledFlag = cli.BoolFlag{ - Name: "graphql", - Usage: "Enable the GraphQL server", - } - GraphQLListenAddrFlag = cli.StringFlag{ - Name: "graphql.addr", - Usage: "GraphQL server listening interface", - Value: node.DefaultGraphQLHost, - } - GraphQLPortFlag = cli.IntFlag{ - Name: "graphql.port", - Usage: "GraphQL server listening port", - Value: node.DefaultGraphQLPort, - } - GraphQLCORSDomainFlag = cli.StringFlag{ - Name: "graphql.rpccorsdomain", - Usage: "Comma separated list of domains from which to accept cross origin requests (browser enforced)", - Value: "", - } - GraphQLVirtualHostsFlag = cli.StringFlag{ - Name: "graphql.rpcvhosts", - Usage: "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.", - Value: strings.Join(node.DefaultConfig.HTTPVirtualHosts, ","), - } - RPCCORSDomainFlag = cli.StringFlag{ - Name: "rpccorsdomain", - Usage: "Comma separated list of domains from which to accept cross origin requests (browser enforced)", - Value: "", - } - RPCVirtualHostsFlag = cli.StringFlag{ - Name: "rpcvhosts", - Usage: "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.", - Value: strings.Join(node.DefaultConfig.HTTPVirtualHosts, ","), - } - RPCApiFlag = cli.StringFlag{ - Name: "rpcapi", - Usage: "API's offered over the HTTP-RPC interface", - Value: "", - } - IPCDisabledFlag = cli.BoolFlag{ - Name: "ipcdisable", - Usage: "Disable the IPC-RPC server", - } - IPCPathFlag = DirectoryFlag{ - Name: "ipcpath", - Usage: "Filename for IPC socket/pipe within the datadir (explicit paths escape it)", - } - WSEnabledFlag = cli.BoolFlag{ - Name: "ws", - Usage: "Enable the WS-RPC server", - } - WSListenAddrFlag = cli.StringFlag{ - Name: "wsaddr", - Usage: "WS-RPC server listening interface", - Value: node.DefaultWSHost, - } - WSPortFlag = cli.IntFlag{ - Name: "wsport", - Usage: "WS-RPC server listening port", - Value: node.DefaultWSPort, - } - WSApiFlag = cli.StringFlag{ - Name: "wsapi", - Usage: "API's offered over the WS-RPC interface", - Value: "", - } - WSAllowedOriginsFlag = cli.StringFlag{ - Name: "wsorigins", - Usage: "Origins from which to accept websockets requests", - Value: "", - } - ExecFlag = cli.StringFlag{ - Name: "exec", - Usage: "Execute JavaScript statement", - } - PreloadJSFlag = cli.StringFlag{ - Name: "preload", - Usage: "Comma separated list of JavaScript files to preload into the console", - } - - // Network Settings - MaxPeersFlag = cli.IntFlag{ - Name: "maxpeers", - Usage: "Maximum number of network peers (network disabled if set to 0)", - Value: 25, - } - MaxPendingPeersFlag = cli.IntFlag{ - Name: "maxpendpeers", - Usage: "Maximum number of pending connection attempts (defaults used if set to 0)", - Value: 0, - } - ListenPortFlag = cli.IntFlag{ - Name: "port", - Usage: "Network listening port", - Value: 30303, - } - BootnodesFlag = cli.StringFlag{ - Name: "bootnodes", - Usage: "Comma separated enode URLs for P2P discovery bootstrap (set v4+v5 instead for light servers)", - Value: "", - } - BootnodesV4Flag = cli.StringFlag{ - Name: "bootnodesv4", - Usage: "Comma separated enode URLs for P2P v4 discovery bootstrap (light server, full nodes)", - Value: "", - } - BootnodesV5Flag = cli.StringFlag{ - Name: "bootnodesv5", - Usage: "Comma separated enode URLs for P2P v5 discovery bootstrap (light server, light nodes)", - Value: "", - } - NodeKeyFileFlag = cli.StringFlag{ - Name: "nodekey", - Usage: "P2P node key file", - } - NodeKeyHexFlag = cli.StringFlag{ - Name: "nodekeyhex", - Usage: "P2P node key as hex (for testing)", - } - NATFlag = cli.StringFlag{ - Name: "nat", - Usage: "NAT port mapping mechanism (any|none|upnp|pmp|extip:)", - Value: "any", - } - NoDiscoverFlag = cli.BoolFlag{ - Name: "nodiscover", - Usage: "Disables the peer discovery mechanism (manual peer addition)", - } - DiscoveryV5Flag = cli.BoolFlag{ - Name: "v5disc", - Usage: "Enables the experimental RLPx V5 (Topic Discovery) mechanism", - } - NetrestrictFlag = cli.StringFlag{ - Name: "netrestrict", - Usage: "Restricts network communication to the given IP networks (CIDR masks)", - } - - // ATM the url is left to the user and deployment to - JSpathFlag = cli.StringFlag{ - Name: "jspath", - Usage: "JavaScript root path for `loadScript`", - Value: ".", - } - - // Gas price oracle settings - GpoBlocksFlag = cli.IntFlag{ - Name: "gpoblocks", - Usage: "Number of recent blocks to check for gas prices", - Value: eth.DefaultConfig.GPO.Blocks, - } - GpoPercentileFlag = cli.IntFlag{ - Name: "gpopercentile", - Usage: "Suggested gas price is the given percentile of a set of recent transaction gas prices", - Value: eth.DefaultConfig.GPO.Percentile, - } - WhisperEnabledFlag = cli.BoolFlag{ - Name: "shh", - Usage: "Enable Whisper", - } - WhisperMaxMessageSizeFlag = cli.IntFlag{ - Name: "shh.maxmessagesize", - Usage: "Max message size accepted", - Value: int(whisper.DefaultMaxMessageSize), - } - WhisperMinPOWFlag = cli.Float64Flag{ - Name: "shh.pow", - Usage: "Minimum POW accepted", - Value: whisper.DefaultMinimumPoW, - } - WhisperRestrictConnectionBetweenLightClientsFlag = cli.BoolFlag{ - Name: "shh.restrict-light", - Usage: "Restrict connection between two whisper light clients", - } - - // Metrics flags - MetricsEnabledFlag = cli.BoolFlag{ - Name: "metrics", - Usage: "Enable metrics collection and reporting", - } - MetricsEnabledExpensiveFlag = cli.BoolFlag{ - Name: "metrics.expensive", - Usage: "Enable expensive metrics collection and reporting", - } - MetricsEnableInfluxDBFlag = cli.BoolFlag{ - Name: "metrics.influxdb", - Usage: "Enable metrics export/push to an external InfluxDB database", - } - MetricsInfluxDBEndpointFlag = cli.StringFlag{ - Name: "metrics.influxdb.endpoint", - Usage: "InfluxDB API endpoint to report metrics to", - Value: "http://localhost:8086", - } - MetricsInfluxDBDatabaseFlag = cli.StringFlag{ - Name: "metrics.influxdb.database", - Usage: "InfluxDB database name to push reported metrics to", - Value: "geth", - } - MetricsInfluxDBUsernameFlag = cli.StringFlag{ - Name: "metrics.influxdb.username", - Usage: "Username to authorize access to the database", - Value: "test", - } - MetricsInfluxDBPasswordFlag = cli.StringFlag{ - Name: "metrics.influxdb.password", - Usage: "Password to authorize access to the database", - Value: "test", - } - // Tags are part of every measurement sent to InfluxDB. Queries on tags are faster in InfluxDB. - // For example `host` tag could be used so that we can group all nodes and average a measurement - // across all of them, but also so that we can select a specific node and inspect its measurements. - // https://docs.influxdata.com/influxdb/v1.4/concepts/key_concepts/#tag-key - MetricsInfluxDBTagsFlag = cli.StringFlag{ - Name: "metrics.influxdb.tags", - Usage: "Comma-separated InfluxDB tags (key/values) attached to all measurements", - Value: "host=localhost", - } - - EWASMInterpreterFlag = cli.StringFlag{ - Name: "vm.ewasm", - Usage: "External ewasm configuration (default = built-in interpreter)", - Value: "", - } - EVMInterpreterFlag = cli.StringFlag{ - Name: "vm.evm", - Usage: "External EVM configuration (default = built-in interpreter)", - Value: "", - } - - StateDiffFlag = cli.BoolFlag{ - Name: "statediff", - Usage: "Enables the calculation of state diffs between each block, persists these state diffs the configured persistence mode.", - } -) - -// MakeDataDir retrieves the currently requested data directory, terminating -// if none (or the empty string) is specified. If the node is starting a testnet, -// the a subdirectory of the specified datadir will be used. -func MakeDataDir(ctx *cli.Context) string { - if path := ctx.GlobalString(DataDirFlag.Name); path != "" { - if ctx.GlobalBool(TestnetFlag.Name) { - return filepath.Join(path, "testnet") - } - if ctx.GlobalBool(RinkebyFlag.Name) { - return filepath.Join(path, "rinkeby") - } - if ctx.GlobalBool(GoerliFlag.Name) { - return filepath.Join(path, "goerli") - } - return path - } - Fatalf("Cannot determine default data directory, please set manually (--datadir)") - return "" -} - -// setNodeKey creates a node key from set command line flags, either loading it -// from a file or as a specified hex value. If neither flags were provided, this -// method returns nil and an emphemeral key is to be generated. -func setNodeKey(ctx *cli.Context, cfg *p2p.Config) { - var ( - hex = ctx.GlobalString(NodeKeyHexFlag.Name) - file = ctx.GlobalString(NodeKeyFileFlag.Name) - key *ecdsa.PrivateKey - err error - ) - switch { - case file != "" && hex != "": - Fatalf("Options %q and %q are mutually exclusive", NodeKeyFileFlag.Name, NodeKeyHexFlag.Name) - case file != "": - if key, err = crypto.LoadECDSA(file); err != nil { - Fatalf("Option %q: %v", NodeKeyFileFlag.Name, err) - } - cfg.PrivateKey = key - case hex != "": - if key, err = crypto.HexToECDSA(hex); err != nil { - Fatalf("Option %q: %v", NodeKeyHexFlag.Name, err) - } - cfg.PrivateKey = key - } -} - -// setNodeUserIdent creates the user identifier from CLI flags. -func setNodeUserIdent(ctx *cli.Context, cfg *node.Config) { - if identity := ctx.GlobalString(IdentityFlag.Name); len(identity) > 0 { - cfg.UserIdent = identity - } -} - -// setBootstrapNodes creates a list of bootstrap nodes from the command line -// flags, reverting to pre-configured ones if none have been specified. -func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) { - urls := params.MainnetBootnodes - switch { - case ctx.GlobalIsSet(BootnodesFlag.Name) || ctx.GlobalIsSet(BootnodesV4Flag.Name): - if ctx.GlobalIsSet(BootnodesV4Flag.Name) { - urls = strings.Split(ctx.GlobalString(BootnodesV4Flag.Name), ",") - } else { - urls = strings.Split(ctx.GlobalString(BootnodesFlag.Name), ",") - } - case ctx.GlobalBool(TestnetFlag.Name): - urls = params.TestnetBootnodes - case ctx.GlobalBool(RinkebyFlag.Name): - urls = params.RinkebyBootnodes - case ctx.GlobalBool(GoerliFlag.Name): - urls = params.GoerliBootnodes - case cfg.BootstrapNodes != nil: - return // already set, don't apply defaults. - } - - cfg.BootstrapNodes = make([]*enode.Node, 0, len(urls)) - for _, url := range urls { - if url != "" { - node, err := enode.ParseV4(url) - if err != nil { - log.Crit("Bootstrap URL invalid", "enode", url, "err", err) - continue - } - cfg.BootstrapNodes = append(cfg.BootstrapNodes, node) - } - } -} - -// setBootstrapNodesV5 creates a list of bootstrap nodes from the command line -// flags, reverting to pre-configured ones if none have been specified. -func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) { - urls := params.DiscoveryV5Bootnodes - switch { - case ctx.GlobalIsSet(BootnodesFlag.Name) || ctx.GlobalIsSet(BootnodesV5Flag.Name): - if ctx.GlobalIsSet(BootnodesV5Flag.Name) { - urls = strings.Split(ctx.GlobalString(BootnodesV5Flag.Name), ",") - } else { - urls = strings.Split(ctx.GlobalString(BootnodesFlag.Name), ",") - } - case ctx.GlobalBool(RinkebyFlag.Name): - urls = params.RinkebyBootnodes - case ctx.GlobalBool(GoerliFlag.Name): - urls = params.GoerliBootnodes - case cfg.BootstrapNodesV5 != nil: - return // already set, don't apply defaults. - } - - cfg.BootstrapNodesV5 = make([]*discv5.Node, 0, len(urls)) - for _, url := range urls { - if url != "" { - node, err := discv5.ParseNode(url) - if err != nil { - log.Error("Bootstrap URL invalid", "enode", url, "err", err) - continue - } - cfg.BootstrapNodesV5 = append(cfg.BootstrapNodesV5, node) - } - } -} - -// setListenAddress creates a TCP listening address string from set command -// line flags. -func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { - if ctx.GlobalIsSet(ListenPortFlag.Name) { - cfg.ListenAddr = fmt.Sprintf(":%d", ctx.GlobalInt(ListenPortFlag.Name)) - } -} - -// setNAT creates a port mapper from command line flags. -func setNAT(ctx *cli.Context, cfg *p2p.Config) { - if ctx.GlobalIsSet(NATFlag.Name) { - natif, err := nat.Parse(ctx.GlobalString(NATFlag.Name)) - if err != nil { - Fatalf("Option %s: %v", NATFlag.Name, err) - } - cfg.NAT = natif - } -} - -// splitAndTrim splits input separated by a comma -// and trims excessive white space from the substrings. -func splitAndTrim(input string) []string { - result := strings.Split(input, ",") - for i, r := range result { - result[i] = strings.TrimSpace(r) - } - return result -} - -// setHTTP creates the HTTP RPC listener interface string from the set -// command line flags, returning empty if the HTTP endpoint is disabled. -func setHTTP(ctx *cli.Context, cfg *node.Config) { - if ctx.GlobalBool(RPCEnabledFlag.Name) && cfg.HTTPHost == "" { - cfg.HTTPHost = "127.0.0.1" - if ctx.GlobalIsSet(RPCListenAddrFlag.Name) { - cfg.HTTPHost = ctx.GlobalString(RPCListenAddrFlag.Name) - } - } - - if ctx.GlobalIsSet(RPCPortFlag.Name) { - cfg.HTTPPort = ctx.GlobalInt(RPCPortFlag.Name) - } - if ctx.GlobalIsSet(RPCCORSDomainFlag.Name) { - cfg.HTTPCors = splitAndTrim(ctx.GlobalString(RPCCORSDomainFlag.Name)) - } - if ctx.GlobalIsSet(RPCApiFlag.Name) { - cfg.HTTPModules = splitAndTrim(ctx.GlobalString(RPCApiFlag.Name)) - } - if ctx.GlobalIsSet(RPCVirtualHostsFlag.Name) { - cfg.HTTPVirtualHosts = splitAndTrim(ctx.GlobalString(RPCVirtualHostsFlag.Name)) - } -} - -// setGraphQL creates the GraphQL listener interface string from the set -// command line flags, returning empty if the GraphQL endpoint is disabled. -func setGraphQL(ctx *cli.Context, cfg *node.Config) { - if ctx.GlobalBool(GraphQLEnabledFlag.Name) && cfg.GraphQLHost == "" { - cfg.GraphQLHost = "127.0.0.1" - if ctx.GlobalIsSet(GraphQLListenAddrFlag.Name) { - cfg.GraphQLHost = ctx.GlobalString(GraphQLListenAddrFlag.Name) - } - } - cfg.GraphQLPort = ctx.GlobalInt(GraphQLPortFlag.Name) - if ctx.GlobalIsSet(GraphQLCORSDomainFlag.Name) { - cfg.GraphQLCors = splitAndTrim(ctx.GlobalString(GraphQLCORSDomainFlag.Name)) - } - if ctx.GlobalIsSet(GraphQLVirtualHostsFlag.Name) { - cfg.GraphQLVirtualHosts = splitAndTrim(ctx.GlobalString(GraphQLVirtualHostsFlag.Name)) - } -} - -// setWS creates the WebSocket RPC listener interface string from the set -// command line flags, returning empty if the HTTP endpoint is disabled. -func setWS(ctx *cli.Context, cfg *node.Config) { - if ctx.GlobalBool(WSEnabledFlag.Name) && cfg.WSHost == "" { - cfg.WSHost = "127.0.0.1" - if ctx.GlobalIsSet(WSListenAddrFlag.Name) { - cfg.WSHost = ctx.GlobalString(WSListenAddrFlag.Name) - } - } - - if ctx.GlobalIsSet(WSPortFlag.Name) { - cfg.WSPort = ctx.GlobalInt(WSPortFlag.Name) - } - if ctx.GlobalIsSet(WSAllowedOriginsFlag.Name) { - cfg.WSOrigins = splitAndTrim(ctx.GlobalString(WSAllowedOriginsFlag.Name)) - } - if ctx.GlobalIsSet(WSApiFlag.Name) { - cfg.WSModules = splitAndTrim(ctx.GlobalString(WSApiFlag.Name)) - } - if ctx.GlobalBool(StateDiffFlag.Name) { - cfg.WSModules = append(cfg.WSModules, "statediff") - } -} - -// setIPC creates an IPC path configuration from the set command line flags, -// returning an empty string if IPC was explicitly disabled, or the set path. -func setIPC(ctx *cli.Context, cfg *node.Config) { - checkExclusive(ctx, IPCDisabledFlag, IPCPathFlag) - switch { - case ctx.GlobalBool(IPCDisabledFlag.Name): - cfg.IPCPath = "" - case ctx.GlobalIsSet(IPCPathFlag.Name): - cfg.IPCPath = ctx.GlobalString(IPCPathFlag.Name) - } -} - -// SetULC setup ULC config from file if given. -func SetULC(ctx *cli.Context, cfg *eth.Config) { - // ULC config isn't loaded from global config and ULC config and ULC trusted nodes are not defined. - if cfg.ULC == nil && !(ctx.GlobalIsSet(ULCModeConfigFlag.Name) || ctx.GlobalIsSet(ULCTrustedNodesFlag.Name)) { - return - } - cfg.ULC = ð.ULCConfig{} - - path := ctx.GlobalString(ULCModeConfigFlag.Name) - if path != "" { - cfgData, err := ioutil.ReadFile(path) - if err != nil { - Fatalf("Failed to unmarshal ULC configuration: %v", err) - } - - err = json.Unmarshal(cfgData, &cfg.ULC) - if err != nil { - Fatalf("Failed to unmarshal ULC configuration: %s", err.Error()) - } - } - - if trustedNodes := ctx.GlobalString(ULCTrustedNodesFlag.Name); trustedNodes != "" { - cfg.ULC.TrustedServers = strings.Split(trustedNodes, ",") - } - - if trustedFraction := ctx.GlobalInt(ULCMinTrustedFractionFlag.Name); trustedFraction > 0 { - cfg.ULC.MinTrustedFraction = trustedFraction - } - if cfg.ULC.MinTrustedFraction <= 0 && cfg.ULC.MinTrustedFraction > 100 { - log.Error("MinTrustedFraction is invalid", "MinTrustedFraction", cfg.ULC.MinTrustedFraction, "Changed to default", eth.DefaultULCMinTrustedFraction) - cfg.ULC.MinTrustedFraction = eth.DefaultULCMinTrustedFraction - } -} - -// makeDatabaseHandles raises out the number of allowed file handles per process -// for Geth and returns half of the allowance to assign to the database. -func makeDatabaseHandles() int { - limit, err := fdlimit.Maximum() - if err != nil { - Fatalf("Failed to retrieve file descriptor allowance: %v", err) - } - raised, err := fdlimit.Raise(uint64(limit)) - if err != nil { - Fatalf("Failed to raise file descriptor allowance: %v", err) - } - return int(raised / 2) // Leave half for networking and other stuff -} - -// MakeAddress converts an account specified directly as a hex encoded string or -// a key index in the key store to an internal account representation. -func MakeAddress(ks *keystore.KeyStore, account string) (accounts.Account, error) { - // If the specified account is a valid address, return it - if common.IsHexAddress(account) { - return accounts.Account{Address: common.HexToAddress(account)}, nil - } - // Otherwise try to interpret the account as a keystore index - index, err := strconv.Atoi(account) - if err != nil || index < 0 { - return accounts.Account{}, fmt.Errorf("invalid account address or index %q", account) - } - log.Warn("-------------------------------------------------------------------") - log.Warn("Referring to accounts by order in the keystore folder is dangerous!") - log.Warn("This functionality is deprecated and will be removed in the future!") - log.Warn("Please use explicit addresses! (can search via `geth account list`)") - log.Warn("-------------------------------------------------------------------") - - accs := ks.Accounts() - if len(accs) <= index { - return accounts.Account{}, fmt.Errorf("index %d higher than number of accounts %d", index, len(accs)) - } - return accs[index], nil -} - -// setEtherbase retrieves the etherbase either from the directly specified -// command line flags or from the keystore if CLI indexed. -func setEtherbase(ctx *cli.Context, ks *keystore.KeyStore, cfg *eth.Config) { - // Extract the current etherbase, new flag overriding legacy one - var etherbase string - if ctx.GlobalIsSet(MinerLegacyEtherbaseFlag.Name) { - etherbase = ctx.GlobalString(MinerLegacyEtherbaseFlag.Name) - } - if ctx.GlobalIsSet(MinerEtherbaseFlag.Name) { - etherbase = ctx.GlobalString(MinerEtherbaseFlag.Name) - } - // Convert the etherbase into an address and configure it - if etherbase != "" { - if ks != nil { - account, err := MakeAddress(ks, etherbase) - if err != nil { - Fatalf("Invalid miner etherbase: %v", err) - } - cfg.Etherbase = account.Address - } else { - Fatalf("No etherbase configured") - } - } -} - -// MakePasswordList reads password lines from the file specified by the global --password flag. -func MakePasswordList(ctx *cli.Context) []string { - path := ctx.GlobalString(PasswordFileFlag.Name) - if path == "" { - return nil - } - text, err := ioutil.ReadFile(path) - if err != nil { - Fatalf("Failed to read password file: %v", err) - } - lines := strings.Split(string(text), "\n") - // Sanitise DOS line endings. - for i := range lines { - lines[i] = strings.TrimRight(lines[i], "\r") - } - return lines -} - -func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config) { - setNodeKey(ctx, cfg) - setNAT(ctx, cfg) - setListenAddress(ctx, cfg) - setBootstrapNodes(ctx, cfg) - setBootstrapNodesV5(ctx, cfg) - - lightClient := ctx.GlobalString(SyncModeFlag.Name) == "light" - lightServer := ctx.GlobalInt(LightServFlag.Name) != 0 - lightPeers := ctx.GlobalInt(LightPeersFlag.Name) - - if ctx.GlobalIsSet(MaxPeersFlag.Name) { - cfg.MaxPeers = ctx.GlobalInt(MaxPeersFlag.Name) - if lightServer && !ctx.GlobalIsSet(LightPeersFlag.Name) { - cfg.MaxPeers += lightPeers - } - } else { - if lightServer { - cfg.MaxPeers += lightPeers - } - if lightClient && ctx.GlobalIsSet(LightPeersFlag.Name) && cfg.MaxPeers < lightPeers { - cfg.MaxPeers = lightPeers - } - } - if !(lightClient || lightServer) { - lightPeers = 0 - } - ethPeers := cfg.MaxPeers - lightPeers - if lightClient { - ethPeers = 0 - } - log.Info("Maximum peer count", "ETH", ethPeers, "LES", lightPeers, "total", cfg.MaxPeers) - - if ctx.GlobalIsSet(MaxPendingPeersFlag.Name) { - cfg.MaxPendingPeers = ctx.GlobalInt(MaxPendingPeersFlag.Name) - } - if ctx.GlobalIsSet(NoDiscoverFlag.Name) || lightClient { - cfg.NoDiscovery = true - } - - // if we're running a light client or server, force enable the v5 peer discovery - // unless it is explicitly disabled with --nodiscover note that explicitly specifying - // --v5disc overrides --nodiscover, in which case the later only disables v4 discovery - forceV5Discovery := (lightClient || lightServer) && !ctx.GlobalBool(NoDiscoverFlag.Name) - if ctx.GlobalIsSet(DiscoveryV5Flag.Name) { - cfg.DiscoveryV5 = ctx.GlobalBool(DiscoveryV5Flag.Name) - } else if forceV5Discovery { - cfg.DiscoveryV5 = true - } - - if netrestrict := ctx.GlobalString(NetrestrictFlag.Name); netrestrict != "" { - list, err := netutil.ParseNetlist(netrestrict) - if err != nil { - Fatalf("Option %q: %v", NetrestrictFlag.Name, err) - } - cfg.NetRestrict = list - } - - if ctx.GlobalBool(DeveloperFlag.Name) { - // --dev mode can't use p2p networking. - cfg.MaxPeers = 0 - cfg.ListenAddr = ":0" - cfg.NoDiscovery = true - cfg.DiscoveryV5 = false - } -} - -// SetNodeConfig applies node-related command line flags to the config. -func SetNodeConfig(ctx *cli.Context, cfg *node.Config) { - SetP2PConfig(ctx, &cfg.P2P) - setIPC(ctx, cfg) - setHTTP(ctx, cfg) - setGraphQL(ctx, cfg) - setWS(ctx, cfg) - setNodeUserIdent(ctx, cfg) - setDataDir(ctx, cfg) - - if ctx.GlobalIsSet(ExternalSignerFlag.Name) { - cfg.ExternalSigner = ctx.GlobalString(ExternalSignerFlag.Name) - } - - if ctx.GlobalIsSet(KeyStoreDirFlag.Name) { - cfg.KeyStoreDir = ctx.GlobalString(KeyStoreDirFlag.Name) - } - if ctx.GlobalIsSet(LightKDFFlag.Name) { - cfg.UseLightweightKDF = ctx.GlobalBool(LightKDFFlag.Name) - } - if ctx.GlobalIsSet(NoUSBFlag.Name) { - cfg.NoUSB = ctx.GlobalBool(NoUSBFlag.Name) - } - if ctx.GlobalIsSet(InsecureUnlockAllowedFlag.Name) { - cfg.InsecureUnlockAllowed = ctx.GlobalBool(InsecureUnlockAllowedFlag.Name) - } -} - -func setDataDir(ctx *cli.Context, cfg *node.Config) { - switch { - case ctx.GlobalIsSet(DataDirFlag.Name): - cfg.DataDir = ctx.GlobalString(DataDirFlag.Name) - case ctx.GlobalBool(DeveloperFlag.Name): - cfg.DataDir = "" // unless explicitly requested, use memory databases - case ctx.GlobalBool(TestnetFlag.Name): - cfg.DataDir = filepath.Join(node.DefaultDataDir(), "testnet") - case ctx.GlobalBool(RinkebyFlag.Name): - cfg.DataDir = filepath.Join(node.DefaultDataDir(), "rinkeby") - case ctx.GlobalBool(GoerliFlag.Name): - cfg.DataDir = filepath.Join(node.DefaultDataDir(), "goerli") - } -} - -func setGPO(ctx *cli.Context, cfg *gasprice.Config) { - if ctx.GlobalIsSet(GpoBlocksFlag.Name) { - cfg.Blocks = ctx.GlobalInt(GpoBlocksFlag.Name) - } - if ctx.GlobalIsSet(GpoPercentileFlag.Name) { - cfg.Percentile = ctx.GlobalInt(GpoPercentileFlag.Name) - } -} - -func setTxPool(ctx *cli.Context, cfg *core.TxPoolConfig) { - if ctx.GlobalIsSet(TxPoolLocalsFlag.Name) { - locals := strings.Split(ctx.GlobalString(TxPoolLocalsFlag.Name), ",") - for _, account := range locals { - if trimmed := strings.TrimSpace(account); !common.IsHexAddress(trimmed) { - Fatalf("Invalid account in --txpool.locals: %s", trimmed) - } else { - cfg.Locals = append(cfg.Locals, common.HexToAddress(account)) - } - } - } - if ctx.GlobalIsSet(TxPoolNoLocalsFlag.Name) { - cfg.NoLocals = ctx.GlobalBool(TxPoolNoLocalsFlag.Name) - } - if ctx.GlobalIsSet(TxPoolJournalFlag.Name) { - cfg.Journal = ctx.GlobalString(TxPoolJournalFlag.Name) - } - if ctx.GlobalIsSet(TxPoolRejournalFlag.Name) { - cfg.Rejournal = ctx.GlobalDuration(TxPoolRejournalFlag.Name) - } - if ctx.GlobalIsSet(TxPoolPriceLimitFlag.Name) { - cfg.PriceLimit = ctx.GlobalUint64(TxPoolPriceLimitFlag.Name) - } - if ctx.GlobalIsSet(TxPoolPriceBumpFlag.Name) { - cfg.PriceBump = ctx.GlobalUint64(TxPoolPriceBumpFlag.Name) - } - if ctx.GlobalIsSet(TxPoolAccountSlotsFlag.Name) { - cfg.AccountSlots = ctx.GlobalUint64(TxPoolAccountSlotsFlag.Name) - } - if ctx.GlobalIsSet(TxPoolGlobalSlotsFlag.Name) { - cfg.GlobalSlots = ctx.GlobalUint64(TxPoolGlobalSlotsFlag.Name) - } - if ctx.GlobalIsSet(TxPoolAccountQueueFlag.Name) { - cfg.AccountQueue = ctx.GlobalUint64(TxPoolAccountQueueFlag.Name) - } - if ctx.GlobalIsSet(TxPoolGlobalQueueFlag.Name) { - cfg.GlobalQueue = ctx.GlobalUint64(TxPoolGlobalQueueFlag.Name) - } - if ctx.GlobalIsSet(TxPoolLifetimeFlag.Name) { - cfg.Lifetime = ctx.GlobalDuration(TxPoolLifetimeFlag.Name) - } -} - -func setEthash(ctx *cli.Context, cfg *eth.Config) { - if ctx.GlobalIsSet(EthashCacheDirFlag.Name) { - cfg.Ethash.CacheDir = ctx.GlobalString(EthashCacheDirFlag.Name) - } - if ctx.GlobalIsSet(EthashDatasetDirFlag.Name) { - cfg.Ethash.DatasetDir = ctx.GlobalString(EthashDatasetDirFlag.Name) - } - if ctx.GlobalIsSet(EthashCachesInMemoryFlag.Name) { - cfg.Ethash.CachesInMem = ctx.GlobalInt(EthashCachesInMemoryFlag.Name) - } - if ctx.GlobalIsSet(EthashCachesOnDiskFlag.Name) { - cfg.Ethash.CachesOnDisk = ctx.GlobalInt(EthashCachesOnDiskFlag.Name) - } - if ctx.GlobalIsSet(EthashDatasetsInMemoryFlag.Name) { - cfg.Ethash.DatasetsInMem = ctx.GlobalInt(EthashDatasetsInMemoryFlag.Name) - } - if ctx.GlobalIsSet(EthashDatasetsOnDiskFlag.Name) { - cfg.Ethash.DatasetsOnDisk = ctx.GlobalInt(EthashDatasetsOnDiskFlag.Name) - } -} - -func setWhitelist(ctx *cli.Context, cfg *eth.Config) { - whitelist := ctx.GlobalString(WhitelistFlag.Name) - if whitelist == "" { - return - } - cfg.Whitelist = make(map[uint64]common.Hash) - for _, entry := range strings.Split(whitelist, ",") { - parts := strings.Split(entry, "=") - if len(parts) != 2 { - Fatalf("Invalid whitelist entry: %s", entry) - } - number, err := strconv.ParseUint(parts[0], 0, 64) - if err != nil { - Fatalf("Invalid whitelist block number %s: %v", parts[0], err) - } - var hash common.Hash - if err = hash.UnmarshalText([]byte(parts[1])); err != nil { - Fatalf("Invalid whitelist hash %s: %v", parts[1], err) - } - cfg.Whitelist[number] = hash - } -} - -// checkExclusive verifies that only a single instance of the provided flags was -// set by the user. Each flag might optionally be followed by a string type to -// specialize it further. -func checkExclusive(ctx *cli.Context, args ...interface{}) { - set := make([]string, 0, 1) - for i := 0; i < len(args); i++ { - // Make sure the next argument is a flag and skip if not set - flag, ok := args[i].(cli.Flag) - if !ok { - panic(fmt.Sprintf("invalid argument, not cli.Flag type: %T", args[i])) - } - // Check if next arg extends current and expand its name if so - name := flag.GetName() - - if i+1 < len(args) { - switch option := args[i+1].(type) { - case string: - // Extended flag check, make sure value set doesn't conflict with passed in option - if ctx.GlobalString(flag.GetName()) == option { - name += "=" + option - set = append(set, "--"+name) - } - // shift arguments and continue - i++ - continue - - case cli.Flag: - default: - panic(fmt.Sprintf("invalid argument, not cli.Flag or string extension: %T", args[i+1])) - } - } - // Mark the flag if it's set - if ctx.GlobalIsSet(flag.GetName()) { - set = append(set, "--"+name) - } - } - if len(set) > 1 { - Fatalf("Flags %v can't be used at the same time", strings.Join(set, ", ")) - } -} - -// SetShhConfig applies shh-related command line flags to the config. -func SetShhConfig(ctx *cli.Context, stack *node.Node, cfg *whisper.Config) { - if ctx.GlobalIsSet(WhisperMaxMessageSizeFlag.Name) { - cfg.MaxMessageSize = uint32(ctx.GlobalUint(WhisperMaxMessageSizeFlag.Name)) - } - if ctx.GlobalIsSet(WhisperMinPOWFlag.Name) { - cfg.MinimumAcceptedPOW = ctx.GlobalFloat64(WhisperMinPOWFlag.Name) - } - if ctx.GlobalIsSet(WhisperRestrictConnectionBetweenLightClientsFlag.Name) { - cfg.RestrictConnectionBetweenLightClients = true - } -} - -// SetEthConfig applies eth-related command line flags to the config. -func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) { - // Avoid conflicting network flags - checkExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag, GoerliFlag) - checkExclusive(ctx, LightServFlag, SyncModeFlag, "light") - // Can't use both ephemeral unlocked and external signer - checkExclusive(ctx, DeveloperFlag, ExternalSignerFlag) - var ks *keystore.KeyStore - if keystores := stack.AccountManager().Backends(keystore.KeyStoreType); len(keystores) > 0 { - ks = keystores[0].(*keystore.KeyStore) - } - setEtherbase(ctx, ks, cfg) - setGPO(ctx, &cfg.GPO) - setTxPool(ctx, &cfg.TxPool) - setEthash(ctx, cfg) - setWhitelist(ctx, cfg) - - if ctx.GlobalIsSet(SyncModeFlag.Name) { - cfg.SyncMode = *GlobalTextMarshaler(ctx, SyncModeFlag.Name).(*downloader.SyncMode) - } - if ctx.GlobalIsSet(LightServFlag.Name) { - cfg.LightServ = ctx.GlobalInt(LightServFlag.Name) - } - cfg.LightBandwidthIn = ctx.GlobalInt(LightBandwidthInFlag.Name) - cfg.LightBandwidthOut = ctx.GlobalInt(LightBandwidthOutFlag.Name) - if ctx.GlobalIsSet(LightPeersFlag.Name) { - cfg.LightPeers = ctx.GlobalInt(LightPeersFlag.Name) - } - if ctx.GlobalIsSet(OnlyAnnounceModeFlag.Name) { - cfg.OnlyAnnounce = ctx.GlobalBool(OnlyAnnounceModeFlag.Name) - } - if ctx.GlobalIsSet(NetworkIdFlag.Name) { - cfg.NetworkId = ctx.GlobalUint64(NetworkIdFlag.Name) - } - if ctx.GlobalIsSet(CacheFlag.Name) || ctx.GlobalIsSet(CacheDatabaseFlag.Name) { - cfg.DatabaseCache = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheDatabaseFlag.Name) / 100 - } - cfg.DatabaseHandles = makeDatabaseHandles() - - if gcmode := ctx.GlobalString(GCModeFlag.Name); gcmode != "full" && gcmode != "archive" { - Fatalf("--%s must be either 'full' or 'archive'", GCModeFlag.Name) - } - cfg.NoPruning = ctx.GlobalString(GCModeFlag.Name) == "archive" - cfg.NoPrefetch = ctx.GlobalBool(CacheNoPrefetchFlag.Name) - - if ctx.GlobalIsSet(CacheFlag.Name) || ctx.GlobalIsSet(CacheTrieFlag.Name) { - cfg.TrieCleanCache = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheTrieFlag.Name) / 100 - } - if ctx.GlobalIsSet(CacheFlag.Name) || ctx.GlobalIsSet(CacheGCFlag.Name) { - cfg.TrieDirtyCache = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheGCFlag.Name) / 100 - } - if ctx.GlobalIsSet(MinerNotifyFlag.Name) { - cfg.MinerNotify = strings.Split(ctx.GlobalString(MinerNotifyFlag.Name), ",") - } - if ctx.GlobalIsSet(DocRootFlag.Name) { - cfg.DocRoot = ctx.GlobalString(DocRootFlag.Name) - } - if ctx.GlobalIsSet(MinerLegacyExtraDataFlag.Name) { - cfg.MinerExtraData = []byte(ctx.GlobalString(MinerLegacyExtraDataFlag.Name)) - } - if ctx.GlobalIsSet(MinerExtraDataFlag.Name) { - cfg.MinerExtraData = []byte(ctx.GlobalString(MinerExtraDataFlag.Name)) - } - if ctx.GlobalIsSet(MinerLegacyGasTargetFlag.Name) { - cfg.MinerGasFloor = ctx.GlobalUint64(MinerLegacyGasTargetFlag.Name) - } - if ctx.GlobalIsSet(MinerGasTargetFlag.Name) { - cfg.MinerGasFloor = ctx.GlobalUint64(MinerGasTargetFlag.Name) - } - if ctx.GlobalIsSet(MinerGasLimitFlag.Name) { - cfg.MinerGasCeil = ctx.GlobalUint64(MinerGasLimitFlag.Name) - } - if ctx.GlobalIsSet(MinerLegacyGasPriceFlag.Name) { - cfg.MinerGasPrice = GlobalBig(ctx, MinerLegacyGasPriceFlag.Name) - } - if ctx.GlobalIsSet(MinerGasPriceFlag.Name) { - cfg.MinerGasPrice = GlobalBig(ctx, MinerGasPriceFlag.Name) - } - if ctx.GlobalIsSet(MinerRecommitIntervalFlag.Name) { - cfg.MinerRecommit = ctx.Duration(MinerRecommitIntervalFlag.Name) - } - if ctx.GlobalIsSet(MinerNoVerfiyFlag.Name) { - cfg.MinerNoverify = ctx.Bool(MinerNoVerfiyFlag.Name) - } - if ctx.GlobalIsSet(VMEnableDebugFlag.Name) { - // TODO(fjl): force-enable this in --dev mode - cfg.EnablePreimageRecording = ctx.GlobalBool(VMEnableDebugFlag.Name) - } - - if ctx.GlobalIsSet(EWASMInterpreterFlag.Name) { - cfg.EWASMInterpreter = ctx.GlobalString(EWASMInterpreterFlag.Name) - } - - if ctx.GlobalIsSet(EVMInterpreterFlag.Name) { - cfg.EVMInterpreter = ctx.GlobalString(EVMInterpreterFlag.Name) - } - if ctx.GlobalIsSet(RPCGlobalGasCap.Name) { - cfg.RPCGasCap = new(big.Int).SetUint64(ctx.GlobalUint64(RPCGlobalGasCap.Name)) - } - - // Override any default configs for hard coded networks. - switch { - case ctx.GlobalBool(TestnetFlag.Name): - if !ctx.GlobalIsSet(NetworkIdFlag.Name) { - cfg.NetworkId = 3 - } - cfg.Genesis = core.DefaultTestnetGenesisBlock() - case ctx.GlobalBool(RinkebyFlag.Name): - if !ctx.GlobalIsSet(NetworkIdFlag.Name) { - cfg.NetworkId = 4 - } - cfg.Genesis = core.DefaultRinkebyGenesisBlock() - case ctx.GlobalBool(GoerliFlag.Name): - if !ctx.GlobalIsSet(NetworkIdFlag.Name) { - cfg.NetworkId = 5 - } - cfg.Genesis = core.DefaultGoerliGenesisBlock() - case ctx.GlobalBool(DeveloperFlag.Name): - if !ctx.GlobalIsSet(NetworkIdFlag.Name) { - cfg.NetworkId = 1337 - } - // Create new developer account or reuse existing one - var ( - developer accounts.Account - err error - ) - if accs := ks.Accounts(); len(accs) > 0 { - developer = ks.Accounts()[0] - } else { - developer, err = ks.NewAccount("") - if err != nil { - Fatalf("Failed to create developer account: %v", err) - } - } - if err := ks.Unlock(developer, ""); err != nil { - Fatalf("Failed to unlock developer account: %v", err) - } - log.Info("Using developer account", "address", developer.Address) - - cfg.Genesis = core.DeveloperGenesisBlock(uint64(ctx.GlobalInt(DeveloperPeriodFlag.Name)), developer.Address) - if !ctx.GlobalIsSet(MinerGasPriceFlag.Name) && !ctx.GlobalIsSet(MinerLegacyGasPriceFlag.Name) { - cfg.MinerGasPrice = big.NewInt(1) - } - } -} - -// SetDashboardConfig applies dashboard related command line flags to the config. -func SetDashboardConfig(ctx *cli.Context, cfg *dashboard.Config) { - cfg.Host = ctx.GlobalString(DashboardAddrFlag.Name) - cfg.Port = ctx.GlobalInt(DashboardPortFlag.Name) - cfg.Refresh = ctx.GlobalDuration(DashboardRefreshFlag.Name) -} - -// RegisterEthService adds an Ethereum client to the stack. -func RegisterEthService(stack *node.Node, cfg *eth.Config) { - var err error - if cfg.SyncMode == downloader.LightSync { - err = stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - return les.New(ctx, cfg) - }) - } else { - err = stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - fullNode, err := eth.New(ctx, cfg) - if fullNode != nil && cfg.LightServ > 0 { - ls, _ := les.NewLesServer(fullNode, cfg) - fullNode.AddLesServer(ls) - } - return fullNode, err - }) - } - if err != nil { - Fatalf("Failed to register the Ethereum service: %v", err) - } -} - -// RegisterDashboardService adds a dashboard to the stack. -func RegisterDashboardService(stack *node.Node, cfg *dashboard.Config, commit string) { - stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - return dashboard.New(cfg, commit, ctx.ResolvePath("logs")), nil - }) -} - -// RegisterShhService configures Whisper and adds it to the given node. -func RegisterShhService(stack *node.Node, cfg *whisper.Config) { - if err := stack.Register(func(n *node.ServiceContext) (node.Service, error) { - return whisper.New(cfg), nil - }); err != nil { - Fatalf("Failed to register the Whisper service: %v", err) - } -} - -// RegisterEthStatsService configures the Ethereum Stats daemon and adds it to -// the given node. -func RegisterEthStatsService(stack *node.Node, url string) { - if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - // Retrieve both eth and les services - var ethServ *eth.Ethereum - ctx.Service(ðServ) - - var lesServ *les.LightEthereum - ctx.Service(&lesServ) - - return ethstats.New(url, ethServ, lesServ) - }); err != nil { - Fatalf("Failed to register the Ethereum Stats service: %v", err) - } -} - -// RegisterStateDiffService configures and registers a service to stream state diff data over RPC -func RegisterStateDiffService(stack *node.Node, ctx *cli.Context) { - if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - var ethServ *eth.Ethereum - ctx.Service(ðServ) - chainDb := ethServ.ChainDb() - blockChain := ethServ.BlockChain() - return statediff.NewStateDiffService(chainDb, blockChain) - }); err != nil { - Fatalf("Failed to register State Diff Service", err) - } -} - -func SetupMetrics(ctx *cli.Context) { - if metrics.Enabled { - log.Info("Enabling metrics collection") - var ( - enableExport = ctx.GlobalBool(MetricsEnableInfluxDBFlag.Name) - endpoint = ctx.GlobalString(MetricsInfluxDBEndpointFlag.Name) - database = ctx.GlobalString(MetricsInfluxDBDatabaseFlag.Name) - username = ctx.GlobalString(MetricsInfluxDBUsernameFlag.Name) - password = ctx.GlobalString(MetricsInfluxDBPasswordFlag.Name) - ) - - if enableExport { - tagsMap := SplitTagsFlag(ctx.GlobalString(MetricsInfluxDBTagsFlag.Name)) - - log.Info("Enabling metrics export to InfluxDB") - - go influxdb.InfluxDBWithTags(metrics.DefaultRegistry, 10*time.Second, endpoint, database, username, password, "geth.", tagsMap) - } - } -} - -func SplitTagsFlag(tagsFlag string) map[string]string { - tags := strings.Split(tagsFlag, ",") - tagsMap := map[string]string{} - - for _, t := range tags { - if t != "" { - kv := strings.Split(t, "=") - - if len(kv) == 2 { - tagsMap[kv[0]] = kv[1] - } - } - } - - return tagsMap -} - -// MakeChainDatabase open an LevelDB using the flags passed to the client and will hard crash if it fails. -func MakeChainDatabase(ctx *cli.Context, stack *node.Node) ethdb.Database { - var ( - cache = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheDatabaseFlag.Name) / 100 - handles = makeDatabaseHandles() - ) - name := "chaindata" - if ctx.GlobalString(SyncModeFlag.Name) == "light" { - name = "lightchaindata" - } - chainDb, err := stack.OpenDatabase(name, cache, handles, "") - if err != nil { - Fatalf("Could not open database: %v", err) - } - return chainDb -} - -func MakeGenesis(ctx *cli.Context) *core.Genesis { - var genesis *core.Genesis - switch { - case ctx.GlobalBool(TestnetFlag.Name): - genesis = core.DefaultTestnetGenesisBlock() - case ctx.GlobalBool(RinkebyFlag.Name): - genesis = core.DefaultRinkebyGenesisBlock() - case ctx.GlobalBool(GoerliFlag.Name): - genesis = core.DefaultGoerliGenesisBlock() - case ctx.GlobalBool(DeveloperFlag.Name): - Fatalf("Developer chains are ephemeral") - } - return genesis -} - -// MakeChain creates a chain manager from set command line flags. -func MakeChain(ctx *cli.Context, stack *node.Node) (chain *core.BlockChain, chainDb ethdb.Database) { - var err error - chainDb = MakeChainDatabase(ctx, stack) - config, _, err := core.SetupGenesisBlock(chainDb, MakeGenesis(ctx)) - if err != nil { - Fatalf("%v", err) - } - var engine consensus.Engine - if config.Clique != nil { - engine = clique.New(config.Clique, chainDb) - } else { - engine = ethash.NewFaker() - if !ctx.GlobalBool(FakePoWFlag.Name) { - engine = ethash.New(ethash.Config{ - CacheDir: stack.ResolvePath(eth.DefaultConfig.Ethash.CacheDir), - CachesInMem: eth.DefaultConfig.Ethash.CachesInMem, - CachesOnDisk: eth.DefaultConfig.Ethash.CachesOnDisk, - DatasetDir: stack.ResolvePath(eth.DefaultConfig.Ethash.DatasetDir), - DatasetsInMem: eth.DefaultConfig.Ethash.DatasetsInMem, - DatasetsOnDisk: eth.DefaultConfig.Ethash.DatasetsOnDisk, - }, nil, false) - } - } - if gcmode := ctx.GlobalString(GCModeFlag.Name); gcmode != "full" && gcmode != "archive" { - Fatalf("--%s must be either 'full' or 'archive'", GCModeFlag.Name) - } - cache := &core.CacheConfig{ - TrieCleanLimit: eth.DefaultConfig.TrieCleanCache, - TrieCleanNoPrefetch: ctx.GlobalBool(CacheNoPrefetchFlag.Name), - TrieDirtyLimit: eth.DefaultConfig.TrieDirtyCache, - TrieDirtyDisabled: ctx.GlobalString(GCModeFlag.Name) == "archive", - TrieTimeLimit: eth.DefaultConfig.TrieTimeout, - } - if ctx.GlobalIsSet(CacheFlag.Name) || ctx.GlobalIsSet(CacheTrieFlag.Name) { - cache.TrieCleanLimit = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheTrieFlag.Name) / 100 - } - if ctx.GlobalIsSet(CacheFlag.Name) || ctx.GlobalIsSet(CacheGCFlag.Name) { - cache.TrieDirtyLimit = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheGCFlag.Name) / 100 - } - vmcfg := vm.Config{EnablePreimageRecording: ctx.GlobalBool(VMEnableDebugFlag.Name)} - chain, err = core.NewBlockChain(chainDb, cache, config, engine, vmcfg, nil) - if err != nil { - Fatalf("Can't create BlockChain: %v", err) - } - return chain, chainDb -} - -// MakeConsolePreloads retrieves the absolute paths for the console JavaScript -// scripts to preload before starting. -func MakeConsolePreloads(ctx *cli.Context) []string { - // Skip preloading if there's nothing to preload - if ctx.GlobalString(PreloadJSFlag.Name) == "" { - return nil - } - // Otherwise resolve absolute paths and return them - var preloads []string - - assets := ctx.GlobalString(JSpathFlag.Name) - for _, file := range strings.Split(ctx.GlobalString(PreloadJSFlag.Name), ",") { - preloads = append(preloads, common.AbsolutePath(assets, strings.TrimSpace(file))) - } - return preloads -} - -// MigrateFlags sets the global flag from a local flag when it's set. -// This is a temporary function used for migrating old command/flags to the -// new format. -// -// e.g. geth account new --keystore /tmp/mykeystore --lightkdf -// -// is equivalent after calling this method with: -// -// geth --keystore /tmp/mykeystore --lightkdf account new -// -// This allows the use of the existing configuration functionality. -// When all flags are migrated this function can be removed and the existing -// configuration functionality must be changed that is uses local flags -func MigrateFlags(action func(ctx *cli.Context) error) func(*cli.Context) error { - return func(ctx *cli.Context) error { - for _, name := range ctx.FlagNames() { - if ctx.IsSet(name) { - ctx.GlobalSet(name, ctx.String(name)) - } - } - return action(ctx) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/consensus/ethash/algorithm_test.go b/vendor/github.com/ethereum/go-ethereum/consensus/ethash/algorithm_test.go deleted file mode 100644 index cf8552f3..00000000 --- a/vendor/github.com/ethereum/go-ethereum/consensus/ethash/algorithm_test.go +++ /dev/null @@ -1,789 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package ethash - -import ( - "bytes" - "encoding/binary" - "io/ioutil" - "math/big" - "os" - "reflect" - "sync" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/core/types" -) - -// prepare converts an ethash cache or dataset from a byte stream into the internal -// int representation. All ethash methods work with ints to avoid constant byte to -// int conversions as well as to handle both little and big endian systems. -func prepare(dest []uint32, src []byte) { - for i := 0; i < len(dest); i++ { - dest[i] = binary.LittleEndian.Uint32(src[i*4:]) - } -} - -// Tests whether the dataset size calculator works correctly by cross checking the -// hard coded lookup table with the value generated by it. -func TestSizeCalculations(t *testing.T) { - // Verify all the cache and dataset sizes from the lookup table. - for epoch, want := range cacheSizes { - if size := calcCacheSize(epoch); size != want { - t.Errorf("cache %d: cache size mismatch: have %d, want %d", epoch, size, want) - } - } - for epoch, want := range datasetSizes { - if size := calcDatasetSize(epoch); size != want { - t.Errorf("dataset %d: dataset size mismatch: have %d, want %d", epoch, size, want) - } - } -} - -// Tests that verification caches can be correctly generated. -func TestCacheGeneration(t *testing.T) { - tests := []struct { - size uint64 - epoch uint64 - cache []byte - }{ - { - size: 1024, - epoch: 0, - cache: hexutil.MustDecode("0x" + - "7ce2991c951f7bf4c4c1bb119887ee07871eb5339d7b97b8588e85c742de90e5bafd5bbe6ce93a134fb6be9ad3e30db99d9528a2ea7846833f52e9ca119b6b54" + - "8979480c46e19972bd0738779c932c1b43e665a2fd3122fc3ddb2691f353ceb0ed3e38b8f51fd55b6940290743563c9f8fa8822e611924657501a12aafab8a8d" + - "88fb5fbae3a99d14792406672e783a06940a42799b1c38bc28715db6d37cb11f9f6b24e386dc52dd8c286bd8c36fa813dffe4448a9f56ebcbeea866b42f68d22" + - "6c32aae4d695a23cab28fd74af53b0c2efcc180ceaaccc0b2e280103d097a03c1d1b0f0f26ce5f32a90238f9bc49f645db001ef9cd3d13d44743f841fad11a37" + - "fa290c62c16042f703578921f30b9951465aae2af4a5dad43a7341d7b4a62750954965a47a1c3af638dc3495c4d62a9bab843168c9fc0114e79cffd1b2827b01" + - "75d30ba054658f214e946cf24c43b40d3383fbb0493408e5c5392434ca21bbcf43200dfb876c713d201813934fa485f48767c5915745cf0986b1dc0f33e57748" + - "bf483ee2aff4248dfe461ec0504a13628401020fc22638584a8f2f5206a13b2f233898c78359b21c8226024d0a7a93df5eb6c282bdbf005a4aab497e096f2847" + - "76c71cee57932a8fb89f6d6b8743b60a4ea374899a94a2e0f218d5c55818cefb1790c8529a76dba31ebb0f4592d709b49587d2317970d39c086f18dd244291d9" + - "eedb16705e53e3350591bd4ff4566a3595ac0f0ce24b5e112a3d033bc51b6fea0a92296dea7f5e20bf6ee6bc347d868fda193c395b9bb147e55e5a9f67cfe741" + - "7eea7d699b155bd13804204df7ea91fa9249e4474dddf35188f77019c67d201e4c10d7079c5ad492a71afff9a23ca7e900ba7d1bdeaf3270514d8eb35eab8a0a" + - "718bb7273aeb37768fa589ed8ab01fbf4027f4ebdbbae128d21e485f061c20183a9bc2e31edbda0727442e9d58eb0fe198440fe199e02e77c0f7b99973f1f74c" + - "c9089a51ab96c94a84d66e6aa48b2d0a4543adb5a789039a2aa7b335ca85c91026c7d3c894da53ae364188c3fd92f78e01d080399884a47385aa792e38150cda" + - "a8620b2ebeca41fbc773bb837b5e724d6eb2de570d99858df0d7d97067fb8103b21757873b735097b35d3bea8fd1c359a9e8a63c1540c76c9784cf8d975e995c" + - "778401b94a2e66e6993ad67ad3ecdc2acb17779f1ea8606827ec92b11c728f8c3b6d3f04a3e6ed05ff81dd76d5dc5695a50377bc135aaf1671cf68b750315493" + - "6c64510164d53312bf3c41740c7a237b05faf4a191bd8a95dafa068dbcf370255c725900ce5c934f36feadcfe55b687c440574c1f06f39d207a8553d39156a24" + - "845f64fd8324bb85312979dead74f764c9677aab89801ad4f927f1c00f12e28f22422bb44200d1969d9ab377dd6b099dc6dbc3222e9321b2c1e84f8e2f07731c"), - }, - { - size: 1024, - epoch: 1, - cache: hexutil.MustDecode("0x" + - "1f56855d59cc5a085720899b4377a0198f1abe948d85fe5820dc0e346b7c0931b9cde8e541d751de3b2b3275d0aabfae316209d5879297d8bd99f8a033c9d4df" + - "35add1029f4e6404a022d504fb8023e42989aba985a65933b0109c7218854356f9284983c9e7de97de591828ae348b63d1fc78d8db58157344d4e06530ffd422" + - "5c7f6080d451ff94961ec2dd9e28e6d81b49102451676dbdcb6ef1094c1e8b29e7e808d47b2ba5aeb52dabf00d5f0ee08c116289cbf56d8132e5ca557c3d6220" + - "5ba3a48539acabfd4ca3c89e3aaa668e24ffeaeb9eb0136a9fc5a8a676b6d5ad76175eeda0a1fa44b5ff5591079e4b7f581569b6c82416adcb82d7e92980df67" + - "2248c4024013e7be52cf91a82491627d9e6d80eda2770ab82badc5e120cd33a4c84495f718b57396a8f397e797087fad81fa50f0e2f5da71e40816a85de35a96" + - "3cd351364905c45b3116ff25851d43a2ca1d2aa5cdb408440dabef8c57778fc18608bf431d0c7ffd37649a21a7bb9d90def39c821669dbaf165c0262434dfb08" + - "5d057a12de4a7a59fd2dfc931c29c20371abf748b69b618a9bd485b3fb3166cad4d3d27edf0197aabeceb28b96670bdf020f26d1bb9b564aaf82d866bdffd6d4" + - "1aea89e20b15a5d1264ab01d1556bfc2a266081609d60928216bd9646038f07de9fedcc9f2b86ab1b07d7bd88ba1df08b3d89b2ac789001b48a723f217debcb7" + - "090303a3ef50c1d5d99a75c640ec2b401ab149e06511753d8c49cafdde2929ae61e09cc0f0319d262869d21ead9e0cf5ff2de3dbedfb994f32432d2e4aa44c82" + - "7c42781d1477fe03ea0772998e776d63363c6c3edd2d52c89b4d2c9d89cdd90fa33b2b41c8e3f78ef06fe90bcf5cc5756d33a032f16b744141aaa8852bb4cb3a" + - "40792b93489c6d6e56c235ec4aa36c263e9b766a4daaff34b2ea709f9f811aef498a65bfbc1deffd36fcc4d1a123345fac7bf57a1fb50394843cd28976a6c7ff" + - "fe70f7b8d8f384aa06e2c9964c92a8788cef397fffdd35181b42a35d5d98cd7244bbd09e802888d7efc0311ae58e0961e3656205df4bdc553f317df4b6ede4ca" + - "846294a32aec830ab1aa5aac4e78b821c35c70fd752fec353e373bf9be656e775a0111bcbeffdfebd3bd5251d27b9f6971aa561a2bd27a99d61b2ce3965c3726" + - "1e114353e6a31b09340f4078b8a8c6ce6ff4213067a8f21020f78aff4f8b472b701ef730aacb8ce7806ea31b14abe8f8efdd6357ca299d339abc4e43ba324ad1" + - "efe6eb1a5a6e137daa6ec9f6be30931ca368a944cfcf2a0a29f9a9664188f0466e6f078c347f9fe26a9a89d2029462b19245f24ace47aecace6ef85a4e96b31b" + - "5f470eb0165c6375eb8f245d50a25d521d1e569e3b2dccce626752bb26eae624a24511e831a81fab6898a791579f462574ca4851e6588116493dbccc3072e0c5"), - }, - } - for i, tt := range tests { - cache := make([]uint32, tt.size/4) - generateCache(cache, tt.epoch, seedHash(tt.epoch*epochLength+1)) - - want := make([]uint32, tt.size/4) - prepare(want, tt.cache) - - if !reflect.DeepEqual(cache, want) { - t.Errorf("cache %d: content mismatch: have %x, want %x", i, cache, want) - } - } -} - -func TestDatasetGeneration(t *testing.T) { - tests := []struct { - epoch uint64 - cacheSize uint64 - datasetSize uint64 - dataset []byte - }{ - { - epoch: 0, - cacheSize: 1024, - datasetSize: 32 * 1024, - dataset: hexutil.MustDecode("0x" + - "4bc09fbd530a041dd2ec296110a29e8f130f179c59d223f51ecce3126e8b0c74326abc2f32ccd9d7f976bd0944e3ccf8479db39343cbbffa467046ca97e2da63" + - "da5f9d9688c7c33ab7b8aace570e422fa48b24659b72fc534669209d66389ca15b099c5604601e7581488e3bd6925cec0f12d465f8004d4fa84793f8e1e46a1b" + - "31b7298991c6142f4f0b6e6b296728ae5fa63ccb667b61fbb1b078003d18d97b906af157debed5e6c55d5a61cae90c85f9e97d565314a2f9fd9e0c08430547d0" + - "7cfcee3271f921b95c32a11596219abaa30abc62c2c72c6725078c436c677320594df6bcb92134c1b114fffec982a1f68f13a9f812f074b9fb9c78f2cd4c1c90" + - "7ebf1e447f7a422b06303921e3d54f430584d849eaa4b7d652e92a5d659bdfc462adcdd7991e8c66a19da4ddb5390463d073941491859397f135ebbbdbdf5801" + - "cafb873c383893390141ae385515504d74a33608273310c312ba468046d2e20c271a38cc0e3920b39705050e752f34f244fc23ddd17ff18677756a87671d4145" + - "3aebf97e4890da1d645f41eb20da92a8537c787ce419580073c46aa3bb154952993142ec5b4fb6e8f108fd15fc618cd5c27b45a37ee6dcd52a4ce656c0f58604" + - "717ec55f5e592355f1f20e8316f8fd77243734a8b0f50ad93c1d95b5b0482afb22cd0667d935bd6053d7198b54974e10d100df7ca3ec2e0bb5ccce5807b266e0" + - "8429d5fec2ae6ae1cc7c5efc27f19c89d4b4a6c5c0b9397886dac635ba37446ff528b582457a4fe7f803f1a47903574f8982d4a679b627396a4e97aaa12fa179" + - "0d31ba52e9010bc3c26ace81f702f86649fe9eeda9ec03b74a8a5cf540d82e22af33ab893564397dfc4edd8b1677350df5b82ab61d24db95f58fd2d78afb49c7" + - "2d2b1fefa8ff6606b8623829cc752ea37d663b945f3f1d48ad07b1416af252f81b55acd8f164da4faa9d9453721b3b795041ce7df7c77edc13865dbe04fee331" + - "47daebe18c183c4a6594a6df3a4d2dc5e3811d805102c9c49286e3d12b38927fa49a7b0cdcb1d799f57118953e31c560aae213a1799d59a78ae68f0590347061" + - "fc2668caf08f860452f6b7d3ebc1efecc2e1227d33296b1f1850360dee7236e85274eaede4d18a58b4261ce1f6a7d283dcf64e6d021813f82a566354445327e5" + - "6217279b2393fe5aa0f9eb149d4866e1105106bcc221810ceaf053f2ec733d8a22f409c1baf955e50184005c5d55de907de97f5f713b62ae10937e1a7af6267b" + - "d2a239e8589017197c343b81540bc26bc52bffd5336fb1da1202a511c7175014d2f500b9d9ce78e4b9f2b158d0fb27af352b6f78c129cad642fe909612c9d658" + - "17a8d7f9195ee97201675a918e3cf520fdc19f92b7e6a3db806d4f3799361334082cc58a22ddb4e4f5760bd1667c177b26be325166c6bbed669a158fc87acd43" + - "a2462e12578d72db6606f9e24ae659ff411ac9b31d696b8354fd08a591622967a14f8468eaaae3907b7818154ba2d6e4581589354d178bb6ae1c03651c44bbf0" + - "e7fa52cb0da09508b5a444aed05a54f416841247a4fe36bd5529029e3adf78b105e22468ed775f4d0954504dd55f2c9b9e6b3a086370b2c0b6fec7efd6914e07" + - "26627edb7a04869a874e31f448271077a7de3031cf81bdbc39848efee6075e0d65fa3a32640e9f0395cf7ec12139992aff0a54e0a7dfe5048b3cc03246b56f7d" + - "3093538a7b87538d8792a665bc589373621b2f3cf47d2c1f8f580fe34d79c6b2a66323ce89808ce0e5cf77700f5a4446c4be01a310e8f7c7ebefe756b0044886" + - "a0477c88ee8ea8c71503748a4cf9eb40ad5c1c8accf7c63c0f43a94ed2b8a5999df3ab9b11b80de73310e036ca88668e640015fcf9cd18eed05517d54896f43e" + - "25e7931b44872c4e4183500e0e8c5103292bca1c0d6b0b00c9acce25d31204bb3e4f255c03a0a0916664e9c831b28b364078109a74411a11afb1e610c7d1c9d4" + - "ba5e10d0ee0da409654d9e7308395e17caeb9caebccb0192679866e6f2ecb5f10044333bb70d61712adb6d74cdec6918ed9a71d9925da576a1e6f4e906a5cd5f" + - "0e94a25e48a4141e4e2770144b63e2449b0f84c82879f34d78440cc430196ba85a213fdac1bcf279a46d7592fa29a876bb7a2efb7081365522a3f06fdceaedd3" + - "cc0335cef9ea570733fe8799bb1b918aa7732b4d175929d80c7844a78e19f2dc6a6febf648f49b40320b0f7d784e7f84e45408d70b046bd01cbd8fdaf606fcd3" + - "02f4e5a48ab8d13e93a246adfcc94f3109e02a7a969986e75b6ced6bf2d11a55ab77488e131b65a06398fa8e384dc90d875584c9b17cdcf2da5dd72a461cd07c" + - "4a955c5fe48509b3284476c42247e086de7d63839b7358cf4ebd9edf9ac8b6fd0c096166405de19c51e8785009d30feb67cdb8ff9ba55459dfdffba8c022e26c" + - "0ebd399e4b76ccb4d5491a862c2c4d8cdf1461a96c9b98150e170efacec980edc00a2c7f6d7c6bea3075627e1eb386a7f1ede1059da81a4ac5cf35aa173c88c5" + - "1818dc0fbc688b68b82ddc225b6c87588e0c680e303e737c82a13e34be58df8b0cb336aeacc698c79e7682ebb69e6cd6bdc5d11790c96afcfa9290f39515142f" + - "5f90b938216a1d14bc049ce3f0ac135722208b989d2557d3520c2186479f179e50fe5b125b8d6638a65047729c6249b9b2c6381c9103c97d1b389cc9cdb31c21" + - "8a2eecbf4b9ad1dcfa57446cde88f96563a544c49d6f5303a84a1b7cf074fca78e67e72c9ffa0c542fb646418c6434b16b771088140725cf2dc723c1a975c4ca" + - "8a80e633721274907353f51e95952c2b403b45750b42ad10961f60473eb54616f61f7b038c5b7eca475d6a2b844994a9eeddce4f7bb49782e50ef78bc13b85d1" + - "9e956f47c60823f3d1981413cb78d309f63a844694861b11b5238961c71f61d82daef6795734f0961e92b9167c57f48e91693e9656fcc6e88f9ce2d373da26bf" + - "45b3dff50211fec72387005a7e04828e4ae7ddd10fc2332acf5f1b0f67adcd863752573c2d24488857bfc58c41af45be7641f5cfff611f184612fc0d695866f4" + - "2b396b1d9881f442c4a995f4b500f02d4ab4b53ad6e01776ab0e244583f01301203a1515f3dbb73906014e36c7143bf882b005f0228ca0562623893c8a24b7c6" + - "4c2c561912010c121b5c3a1e35e75c0b094731e9c0d6acf5a2b1e5b179355525a175640579705f898feb98bffa25633bc126613fa27d2ceb214812902ada23f4" + - "367a78655d0d2276095c9e83dfa79153730103963499c367c5621fecfd0888253df82b3d5716703ef92594cf269310b9e6c892c488edb3bba1d0b216e92f622a" + - "7f8f7f00d2926d81a4c7ca6cef40d240576a8d5541ccf561c8e0e699925d20347ba7493ed6e182cfe3b633e70b3ce3a0d90813574f6fe329c495d3cd46fd5d7e" + - "bdde58d7eafcb134a9a5d3e5d66136e8c9b5d9ecac195dcc44158941c9fe2d87db52a7ddcedc9f82ec160901cc36a9c877af80ceae0563dfa75cabde5d7a7c94" + - "9f24bc190f7c2045368356474ff6eee284e7125d1c5f9a036fbde24cecfd3a30481ce077f20cbcb31924368296abf66ce4834102cf7cb949d1b4c6faa6d006ef" + - "21379cead5d5a39324d41555c46e0b42a1e871143e47f8e6b3d794e75d7a43c282732766d856e04e666ea346657b157404b0fc8534a2dee8243d40a5e37609e6" + - "18bc1d52b91a7623aaf8214a97e4c8c5d860b31c3792b129354a121a7a7e42b50dfbe3ab6590769401eb280545547a43c3a1455355d5d5fdedccb472abfe75b8" + - "f5e7d62b0b31553d8d55de0c3c71e6f5a2abba6fe81e9a42ec1968f235bc4296c1ac5df7430917453384450ab56dafa7c7af764cefa3b0bc861c52ae27692365" + - "9d7d9ed7609958884147acca867909a75bb6a2c364debefaf98c7ff70c7f4acb5cdb81100fd79a48c5139f8bbdc6553b509f1eb0f5d5d31886a602cd669b3f9f" + - "59195a1fa2bcff1170003ba1b2e5e9ad7f2bfcd0573d0f2be9d8fc1773c3a63a2b9292cdbf9b4515c0b1d51772e5ee95303ff493d85314c989e269df4ec3a916" + - "40988a11c6a4ad96f7d0541a150edf444c2b1672aa6d37564453b835c2d39864c05c4366492fc9164bf73795410e7aae8206430403357fec6389142b4976b218" + - "d70622b4098e322f73020a0d045f07668d1e512c6eeed6e2befbfc3a6ac64054396df96fd41f7aeefa0ab1f66bb52ee1a1df066f365fc43ff0800b0398b621f9" + - "a415895268505a81517c44a56dc94e76580fd107dba034bab9f4f4b8a9f881ff34c60c406c47b6d4a998894401006aa88f328393f9cd55a2b4d24db5abbcb05e" + - "20d392f3feab3ca12dac475eb3690f2bf9c699d7d90900d9a840068c8cdda2ca7a27bebd685a26eb01a768259a65ab4d7efc1811c87a5a1f4e5038f6b3dc74a6" + - "b46d9ac58d31bfc22dac23645aeef819329c9419326f22e1c24c53457baf62ae9b92ab5f999d4ef0ccfb5a21b7598340eb2d399ec81588b6a674c5a1e45aa238" + - "c55cae8e1af0f5d64ea378b8afeab263a3a2e5c71cdda4cdb824ae55df2b0260aadf386275ef57781d46f6da3d0b300ea68c14a620c25b5df738c54aef04d63b" + - "7dee06cd225e9ed00e78abcddca5a133d8b5e0d9b287e6436014c5da729442239bddb7ecd3fe34e6f6e530134a03ef45de4ae4fe3bf507f16cdfb9bab1fc90e8" + - "dc565e4a7ead95352c5a894661e5d82c6d0fc47843d5cab12c4013db76c90734cbff34c73d0d873ac9b27b417665f4948469865f33179624860604a9aba2ceb1" + - "68e74b6af3d1ad0bfcac4180ea844339a034b6b2c3e2f61f0c7afbaa76c1ebe93727df1d3db27d59a5cf51b2baaf637b6eb8a20302ef9af0b25dbe3a5e74331c" + - "6b0c8a0cf2a2ad72d2e19797983e09468ea95270dc229f2fa084dd2aa96e722016504f6d82508572d9c30711c3ef41ae3ae2f36cc6f5dddbcb0b40d9499b24c5" + - "4cd36d2927a6b9d57e335e4fca7f0f16887711a8c1ffa0b48bda46c506ca444b7c23e2c8dd086c2a87283d5fc0d58e9a384106837318dc84ffe65b52d4cb9141" + - "2672adfe139c3327350fe3cf355a08c0ca43598a253833e114243c5253077d65643323f5d69b3c7902d91bab7a0928754e7d80afab8d48539fcbe0d9ab83b4db" + - "43a6594c4071df2ef35acd1f53006a570f09104f1776b26a303e2aec93a00d2fd8c952d1ca0e54504cd9b469be7c1e71557ec31467ecc773ee817b17c4418712" + - "163ae86646b20b80c85860e828c48e88f1309c9ff018e6a95f4c1178de6a4f9f5860039511845da7d8727b5d824ba2502d0a3d76ce74372db77c2050c728dd65" + - "b3a15da4f1e1e41c3c2acfebc5618e5e923d503c43a3421d2628ac037c5ce13c74c4ee14d47af02323872f6bf2e8bf09d017ea6e8ec4d3f9fc4fb203ac4e1663" + - "756b11629224c676713a42b1f43dfd6362876be1c4865928688765589e26c8dd8bc04ca18d76ced7f786cdb0fa5028ae53991d5b7b45f93bbd50aeb97300f04e" + - "69c6736f270907f6a7ad76dde0a365183a961bc8385511e0f22ce0cb8f3c42c5d3928621841e30285fb625294865409267dbb0cf91730ba2fb1088fb79789a54" + - "a856311bdca5b0ac0e95fbc79b11c561dc03ea82db182808031e86ec327097143ee761bb62dae8a9f4101fabcac1fc87b3c2080820582dc8a7a8287364550013" + - "08053c781b3eb279c89e817fe97103b6930fef2dbf7728def389403a4283f63ec04ae953784b749f0ea6f08749781cd17fadfd15bb197afd2f4e0a8aade2b1ad" + - "5100cbdce49ed59658993c00e06bf57c0026b97beadc30cd25f586ff03ab40fcd731535c9a1ccb2c99dc7f8815feab767e1237cb069981f28d8fe26bdec24218" + - "488e6086c0ab0efc5d4211fa0726b3a11387df9bb62b863a7b154ca390a268f5e49f50dec45d24bece2a06575cc07a24bfff017d7445024739efb050ace5f345" + - "98dacda843d4ef5bfb2c931dc16ee3dd8b61a6f01d9a7de8bbb6d89ca8695f8ef8bd1cc6e0455848fac7691e6789218790270aef40fba114557fd88ff74fe8fc" + - "476d9b9665d7e45582540710ce92c8dcad1ad8c05642a23a0d58c02db37ae1a0e70fbc5f71b1300fe398c74cbad37fd57379f58dd3e2d3de6860a17acf3c9321" + - "02eb4f9d596497bd849c5bfaf59a83113ef389b6896aa4d4665504a22486299993a9987b2bbdb47d59b3f6ce5d2c9f9ba33b5f0760388ca7f8d8af07c1cd28f5" + - "67a417a59ebde4bb9867d4e7b7b79dd8665602c029e9a16a7718efde3d034f13f7f0b9af1702c335893526cb87afc2100e874b25c37fd666bf34bf6a653c7cf5" + - "44e1fe0286a6723c7d33461dea380b392dad68f79a78fe1b785d7833ca0d1cd68cff472991a625e3099f3ad2cdc99bd37eae35353cecf424098389dbaf1885fd" + - "7db54909a92ee879609eb2e9ef4de1f4338f0df53dbde486ede944ae69869fac701d4f1f48c83757b470ea28c9de2ae5f1ef5d1c91118d16ca0d80b1baf3d314" + - "056949df27a09eff70c9ac50b54feff67a165ce5e22ba2222defedc7c39e02356c3553e97524c1506441527da4f5de121142ccd494f83114b3ca2dc37e15c752" + - "e2faed7d50254124d68f67e26f4f50c9f0edf6e58b916ca830c4e33801dc11039b18292b87b08f4f2edbaaacddcdab78ff3a0004f86034080f2ca4394b14aed4" + - "31e38e3605e6b257bd772954d2f4b846a17df7ed6e5dafa33964d9e56a07a19898fb4dfe8b2ddbd11fa0013e6ebc0e429a5166a43d1ec45557cd1fc1bddbec4b" + - "2e9ca26395394c96395ff8f557bd0f7f805c09f0c18534585b7c7fc1d07f145372983ad77fa804fbb7765934e72beae0929a87cc6bf7f6c242ff5db2d4d5541c" + - "8c366d22e24e1da5379836fc0eb484683285f99f178b98ca170464bdff60ee04584c12c65408102ac6dc7d10bf58a7d770bf1b3c636a48f934f6f4bbdbcc75d3" + - "fc551de3ebaf77006707f6120b3804f2bef9b4bd59f5996610c09ba3953994d1b78a9f3bc3bafeb52266f10755ea842e5b4370c937c09afd34a092ff9b98b4d3" + - "518bc2480d4b132455b7f03774ad76b83b254742117921c31cebeab5f39c145f7f373a5603d17dd95217ba1af37a0aa95b2992efcd02d0bb4ad08ebafb31440f" + - "1ccfce45882b547ee4bf6ec7ecae11ed79fc63b03636c8a14ec4e0f6877eb658d839be2eac0f10a8948e74203f46078ce66aad2764ff05590e2ac7a8dd8b3036" + - "901fcb7ff3369ee989a28e34b9b62e1e607d14da3049ded1a4ee50257195eaaef995bed79ec85111abb522aba1fb306869a1ab381e82943f35345bb5502bb90a" + - "e2a0af77526a84754ee4d600ba7f8ac98705ee687bab949a081849889d7b83a21a3dd34af84dc2b9458230ef0ff44c6398d3c6e48e5c09c399ac4d4c7b285549" + - "e0bcab7fd96de42f072f1cb633e3e250745321049d0d7ecdef4636e70e94c8414e76ecaedd6ee0792e97de11e7dc1e1e1801ad68f9147278e268d7ad76c5bbb7" + - "98386fdc13ca8c77569d96e0debba8ea3b751352136c8f1c8d611a69f1baa9aa4b9d0a476ebd5dd21339ef7f97f09aa86b69a7b114cebe17a6b0e58bf52803d6" + - "fd47d9eac3a988b51e9bca95c546d49367a3126bf8ee44fbd0e77611473a1d3d2de0ce4ea54f9bb7f9dd0d0c065f613a623fad43a445eba294fd00037492914f" + - "b74d10d0b97a0cf9bd3151c3cade89521f36b6fe1aca7f352e79a77d063da5337a7c88d90e9e566bcd97732baa4459305967c2f65adf1a4a4c7991cbc99df3b7" + - "14335a107a97a4ab104bc94fecd1d003fe6d2f22e717853c449881c4ccaa7e7a1e44961a14a47a0d0aa1b1493dd02760ff4d31fbddf5941f93c8e5925d1886e2" + - "8761baef8610fa6be016c8f4fe65bb0f335152d5e94893e274f2ab90118e4c07957d252963755b4b638ffc0a734fbe6e32c2e304b10a46a4eed330d101c4f0ae" + - "011e7f94b89bc0eb9d358a6548b3f0c47ccc3c2d986d381437c49041629c6cbf61bdf0825efe17e4abef128003681450ceeff0e28842895d8e338c247abf81cb" + - "7260fd45042c1f6c630a4b195579721392e577fbfdb9f5b003a8b9a6bc15ae754f6255131a0be600c7b07e2cee1ffe32aad4687f9a429998ed9059a99fd879ea" + - "c4dcb55f4551bbb70c187cf1b162e2ca4a929edd6ec9260877df652622ae073fc63c0d8522d3882ba888ac50a67a68fb6530193f93165093a1d8132e87d8887e" + - "ff2fdab0fbae6ab9506dae61fada4023133d166bcf1956aedc3237c77d1c81dcc84ae957d89367b0fc950c78e58f2cb9c4fd93e16b94421fdecd46c3ff55592e" + - "4374a7f7d8ede9923115770cb416071e8f102d4ad78b891464ffd14f589c238c8e13a4e2a81744d179e7d3ae36cffee75ceb99633face85d077d0c15b3970930" + - "075dc08b420e0a545200895207c5a746a18ce9ab64a50d3dcf44da857fb65e4efc29b2b4d532dc6a03b699dcfd77030a4945e6431273e25f06ad8f913c2a9eb7" + - "59d8d3049868d337e451726d95c4cf8baf381096fc9b62679175dc8f14e52f8b99f212cab6544414c62f17c8323256cce95356dcd351e34c7a1576b17c1406d7" + - "5b8bcca8099a1993df1541ded61b876ae83396b191b719c4b1cbe50d73fc13da352d827ba09aa7fdfef3e4e0273c31ef4fd38b93cf64199c3969a7c09dd5e0f3" + - "ff93a5a7db9c2c1ec25e3060bcb5481c6802e1eca78f31862842ea08e8f92b8e52856c4c9fedd0bf20e386cfdf926425f7756ff41fd3567c5bf334e96e3f492f" + - "74bd0519d8d98efa0b427ba681b8b1be8fab041ff084dc5f8c4d5d48f481115d7e407ad8a6034f481c2be86f8451980c3aa83a3fff245d90d13801a54527e97b" + - "e392b25867882d43e3819f4a8aa380db63954ec23d2f0c11a7aa5bc7a3aedc43ecd3b024280ed8843399e28deb954bfc11a3197fb14a9c9a895859e390e9586e" + - "2ad21da39bb9ba79a62222d228a0fc96a24e801f00afc3f98d2168a8a253f24deffe461f6313de9b433e1d2e307239c0e3fd5d9fe4c8352c2c6797b1737e93fc" + - "14d411bc69bbc9d78cf91734052b8aa1dab348e4c243b8e6d623865c135f807de8d5fd88f3921327affa37066dd538351bc4ec52eece88856de0a424a87d062a" + - "f68cf24db37dbaa8e8e96a812fbf32ccafdf1b9d27f11bea23df02143bd09061a881c010819a315a5b6ee44b3c60979b3f7b41f488b2429d49377d6542fb0e22" + - "d09a0ef5b81aa7c8134c0aecdc7a4f9228559d0bb826d30fd77fe0f834212647ce61e22fef0a1c10eb4177de81c31c12054a15f81b605619f3045646110673d0" + - "b2d79d80577fa43284266fd2ed54f9a3b9df3509f79559c5bc51a58521bfeb2f95d8851527b7ea47b92a694f6ea2b67dc2d4f506d11d2db32c2929cdf5c8816b" + - "7f0c310cceb7ede08d5965ed2c7be6c0a317251c7d31cc4a15f6d7976a8a1e6a2f386fe0071d43a50bd0ce5e864a8e449fe9600c6e4a84866879c490de9f9d46" + - "3f22708abf34d3e180dbb6005484a6afad373838cdac335f05c034e3090b2fbaaa53fa2db1f96bbe141d570f17363ff98672500e16994b79be74634755b09e66" + - "f1b37e338c946bf85e06c97e31dbddf257d58fd10468278648d86f38710c2ca0b6ea7cac4ea0e2c49b96bf1998bde1b3d38aa853736308e12b4a0d467fdb8a73" + - "0d810ce45518614bd5845f58a9835a5cfbe745f45ef59ce9a677d10d8c9f6294f1a0565301efb3c6610afda35167150bd326c77057e530c213da63af3e6a600a" + - "d87b16ec5cbf76a13764f71b3e7e0c867086ebd9fad02e1d747030064e071a13da4758cd0fa20872b3dc350f4cbfcde1b68a97aca41e32207b40beddec412c0e" + - "c75d87c6671ed94bda5170aa2866509161c28d550190675f60139a7b460469f3d4829b3c65f5d185936582629160522fcfdcc53fd0dcc8fc46de11d52bfcc5e6" + - "3407ecbbb682cc1693d6543756fa4e068e92ae1a94924a1ff6891361e5f262b7d3c3a3bc2866f54e6d03ebd5479afa3f424077d51668cc60e23b35fb0222ae22" + - "5223ba8a8c416b68c8853022d150c951f06f8f85c2078d3035b8ac3ae984ffcfb024431acaae8bfbeb981870f9ad6bbb88d7d5ff34ba21a44cbffd0aeaa435ba" + - "7d40d22602e807ac9a69db514ab13248133142cf03fac999a2b185f34d83fdb495ef042d4a5e92f2624193c88858d91c0812b18fd67046cf50635e6ab1ea9ade" + - "7b1fe783dc5147f14f9194cfa92c03a0456f4171f9e5c156fee1c607a1e9e06535f2dac49b92ddf5fdacbf88a062bd7ca5439bae645100121e598deee6043baa" + - "85cc0d727f08d37a766a55a9ca21ffb6594fb73f9aad15be4a64bafddb6c85d00f7bb5705d9e56b410dd80df8b087b6d67c7ca84eff2ad699f901415fab21343" + - "6351a9bdf83b440e29f3950c7e4c49963ab109686d78fce629e9207db2e17eb5f02f01db6441002d72c06c6c6bbcdc0a7443589ba29909a5a78864ad51e1dfda" + - "14782d869e4989ac3c5ef0aa1eabe540e9e7cd4e8eabe25b07f300a134a92718186f085d5c10a711ed0e574bf7550f6bccfc3c094d6e59619bde9fd892af8ef2" + - "50e1cc3afdcd9c84ccb97344542843028b00064b0c3d18ac0f0703fe6f9683d40813abbb883e164c5797bc1555338566cf8cdd358e9fcb0e93f08f7ae06a5121" + - "c67a231106ad8fd42f0798d7185c2de78b8b76c10e82272a405212ce3b904f90236eeea02054953b967cb614e8f8ac49b977152a52df981c86fa4a92f7f70eb6" + - "cd4eb65986564039b0d77f8bafedb4fcbf9c34b8fe9c5fa87b0785c118a8624498fb0184a0dbbfb16777579e1964330c12e494449f6aa5cf69ec4a32054be553" + - "6027e0d27c7044abd4c0b8e43db703209037efcfd08944647a90a1ab0c71011753354990cac5a472fae44dc370aac8131ebdf31456a8484e7fdefd268cbf5cb5" + - "85ac615039d3655b1348fc0b3b078ac41cbcaf6aaedcc1153bb8d55c307f45405ad6a959abb37bf8891c8dec79a9d7ccd9b791cb60361d4a28f33ec0dfd13fa8" + - "e0b9b29e14bf36f5047e51a39c2efcefcc156bd08e46c5c1000a3cdc2bb20713e19d6f492c40e51eb93628cf85d07041ae5353e7decc824cbb1db8ab3a7a7fca" + - "ff04c2af423bcfb1864ddc864624b827ddcff2a2f8fdb7a3d86d76e72b4f850ec1262d8fc89e7b12e4cc618afe6a2bdf205075c2008f93b7281d80180199409c" + - "de850d1f14ca0ff960f69772385cf0f0a0f47cafd5489ea4fd8b68ec7aa539b942379139756c95bb90818842cd43511edbb7577ae469f46728b13a61e6eede06" + - "3a4cdfab5ed590feb807d55d76e518d1d74bfa6704f7c8ccc672824b4d5ef5fa5b3ab8fdf2b6c1753404ba35b76aaa931a4e0e5ca7e440524166b23e9a8be9e8" + - "635381f6c9086802d428fece81395dada6b3b866e905ec00ccc4fb9b8415dd15e443f84b7220e3b28700ce3d88f9c6df2afea39e0ead537a50ee11f0c247ee86" + - "d4b3074e8761de4de611c409c6d4c369c2c11742a7763f6550edfaae49afeec33353a14d2ae60687dbeefd2fe29689da6ae79d7b06042dfd25a68bde9182fba4" + - "1ac53706a8b96535057fc2f99ac84a9cfc6549920c3e2cab44e48a08e77207b6a95b2f6179d6dfd6c2d9e3c91106a7a687e40bb2a1c5ccf566c0e31a0fdbd0a4" + - "f270f9812208f939efd9698a8b28ce9c5633f18ace7ab0a7550d9e7e26cf62eef49200331e19a64bed648b5d18ceb389bafbcb3f280ba78e4cf03b053f2a5f08" + - "3c852452837138004073cf6726143179386279f1a8f15d44876c19bf6c2e2992ce6056191bb1a386f0e1f6f249495cff126991c6560e3f613e56525c0c49b5cc" + - "2ea4e736d83480f2b45d7dc840b849887f54a2aa072e72e3fd0db34e5cddb02221fdf2a40fb6ec271ba3a09de8dc73c24328c5d9a33ae0adc9874902f25d5bef" + - "4d85914557e2983c93fba16cdd4bd929e878b5d51b142b6e9aa0ce84871b7b03ee6cc13251e17547c2d20a7d4e948760e207e29de58a7ccb71b87f99d79837db" + - "d0f293ad3d33ffe91435598e8a4584b7b7ef5b1a895a2827b4976f81d335e4aa6feda3539690899619a4cb34fdcbbecf1b8b38cec2ec7c07ce84ec3044f49656" + - "28fdba8971585afb509526640d36425777b6ddf5b2a49d795fdcf71e57fd35f29fff37890541b6e152f14fb6ea4c70a1b9f159d02ed895a68dcc276f5d5ae83e" + - "47c021392ee22a398c8c73b3446d61562b3ec596036959aa645a65e5d24f733e142ec0e184b72a2adcbe3913932b2c9503c856a7e989d24f306e01e99268188d" + - "f858694e297803effeb8e28bf8fb63ed6787acc2c61f509e19099607512d40928a08e649474a43728b63523175fad12ad088aade0c1e20815c7c12773bc959e8" + - "640ee23eef2b1653ae8918615b45158a01be5a5f39a75a7c6cd8f1f6b463516539771ad251d5c2d40c5049877765512c44e58bd3b9ac3a0ac281771097880fe2" + - "c9516dcd6f1373e1e8a52fc485d104004dcc839fe3d120f1432b213388dd37980ce8238c87a70d5abe95d78d696d2436eb23a8f620ce74335d5e47f6524b11c3" + - "e22288644b539e3ab664dd5fd6bafb02897aab35adaef204f82d9318b22f45b787f5bacd74b01d23537973060868a47f2e3a45c1d8805a1d657f2332af8170e2" + - "9435d7540e70e92a8c8794bf22d3e11d54ff2d48cbc7a1ac3cecfc48f80fe521f6852f97aafa0605f3e7084b15e61a74869512c9c2d84180686ea07b562cf35b" + - "5a0ca529481ddbdba9c60729f821dc7a5a8b5c7eaef1ea7927d455a702aab538e7441933c4fff2d27de5659d6fa41f0ee72bb13a829839267f3a7b51a81a85b0" + - "d737194d94e1bf8173248cb057cee19eb5e2cdda38c529298f3c4d3b95400198063c5b27e9262f9c66425c65568a09035bed9cd55c1f2ec4becb6b9c59445398" + - "ad5b7c85142e713b6dd32493dcb817c8bcdbd728e325c25c5a14d764b63f960d1e48a0bc7f4d2bf51060f83b1d1f2591c6a9b79182e686b887a2c1461442e2f9" + - "16e8582e298f87ca95a8052df33af20ebded7bb1c528920233d1aca3b3789494d97084890fa3db0ea7eb561b0087c4a90000db41ea072613f91ebba82790f33c" + - "fd52cdd92d2ef1246911ef1dd82ad083881b72a08a40ee55884380dd136a7c0724cded69c6abf1f156b14ecd7284abcbf66522264145ee78ab0ef0d2a74eb390" + - "10946d5efefb7175164e96621d3f158de8b57956b8b1155c35b32007e47d915cb61dabd556a370537737574741fcf9a8a23f7155bf1f0e3d3c0d2088d1191d9c" + - "9c974139303f3dda55a70ab4810fddca3561114969d370f4e6bad60a53815eab1c4613854d04ba8b049dd7ab1a935c728299d1502ff9aa3fbb356f87f2a52b6e" + - "947dc79b5fd211ed31dee722d3fd857f43aad973fbfacb7cbfe1b2553bdc76142ccae5b4021a4647b8d8087925dd3191a57198792b6f918de87a92705ce57905" + - "f2dcfb67a20f8c77e700933432d60a4536d0959415f15f3eb8a788f1b19c497d3b68194e27ee736231835469d8bf0ce1717ecf533ab77dd97b35881d8eda959f" + - "54a7935b1bc11d7f2e472757734afaf0463da3fad9804eb948e8d6444e8394b33f1c187618c7c02371ee6d378ebb7a20b6049a5504daa71999d15944ee82650a" + - "2388f374f3ec3afd4ca58ef3f2588997d194a2741252cf6562e00cd6b5c5fe4066454d2b3150317694052b4dafb40c2f04c850e4062cd8f0af2da75280046850" + - "77990788b27fa457ae9d0b622d18fc070f1d2661ecab529b5cb82f30a29610dc6a9e93ca9a2617ab0109957a45c1204e5eedb8860c6f4d57122060f39a4194fc" + - "a285f1e9e7a75cc3511b8cb4865719c2260a630845051876e7795bba59573b6ce5faf7e5708eda7be25dd49c8cace4c04c541074d703e6601e043f6c63a0a371" + - "1a381f0ff83d136f4aa29de266169ce5b3105cbfeffba370fa306a93830e3c0519a495b8b9f4b72078e2c45421b4b0667f903676a1339c70ddd1a90dbd21853b" + - "2826ac3fa5add5073c634d4c5e87db0efe18638ee93c460257e52aacb8600ff36739818056110b2e974a1959e3784903aa97b0fcd9264f7d8f6bb5d8b7d9f03c" + - "4b643955bf7966250936d4e7d651712db5e695a6a36b5e6f56c651ff737042b5bb73638e21ca6ce9a3e63fbb1906675d97001d7ee240d277d62df18acb169677" + - "963d231c5276bdf5767ec35fbedb062e61c23d759aefd287b2dd62a0d6f0518d90b3c1756fde50afd33cab395ddf3cd538b9ad8862a199141331c63110c9ddaf" + - "fa3d6c63a1fb1b45529eace826cc29a1df5df327bb782e573c41864c18e6d31401d19719326e5c35bb50de7fdc67177a6a6015b4264fecba2360ab72ae8b060a" + - "6c66c5a05782a15fe3c1833b47e3495d29f2cfa579fcb08f02fd064e9ef2ef5564ac6a43cfbcae7d79e9f87ebc2176611823c6624db11892f8c47f8c96a49539" + - "1c18f821ecdefb343eae3fd98dae1ef96fa3527788543c0d06d9793579cc62d91dc4d25312901c6368ba81c8536c6287230e8f97d25f6c77366609580cf26a27" + - "88502a9aada84a794d3674ae11cd1742cf245e9d9502dbb5b340c2a6c79e3607f6b47666e1ea991ccfbdf6cc41ede46d043bc4d3e5e6882414dc65d62f9f47b9" + - "fb7b828a89afd6361ae458c2cdc82f459c54977072702ee5a4c22955b8019d8b8d91f558897c4b661f8e5412ccdc10c40521303c0ffd353a0c04cebca5622a71" + - "192b144d0f9c5c0706a130df887526b7b6e0f358ad9f7d0fd4d87c5fdb29a7453388c0d009da0d4c47a5d6cf8363892ac42b6ce3388771f698802b4dbfd66aa3" + - "5fa6a6f8b42dd8446324501c807b6e72cdd35cfe08956a52f86bb4709fe2980f62152dba3571f18fcc4c1cf7a25384c4b5174e93e5afc9b9f12db2bd505ddade" + - "d670d0d71b9548f9a07ef98521961cd96e8f363cf3222336bc4baa284b5305aab47dace615c1b3f3fb1ee23ad9ca3f58b086d9169ee5b2d3c2831e1db4f905da" + - "11e1fe79e3d48c01bd9879ed68391e4d24d6db8d6774cb8747e7ea368aba3bbf355386408af4a59b23fce74a5e673a1044db66ed8529a65462269480736cdaa5" + - "0784fbd77e1c41197335b4c517af8a67eef5b7165c5fd6022cceed0396089c3985c36595497db0a0fcae478e4e4d68c57b93f466aae86dd4244633beaa8116a0" + - "de25d2a54353b7ee85fee58ad4780a2957d69816585a64f65e75f332614aa6786d1a1432f6acde385d3d6e870bc968c60c81401726a958f0caae336c83a9523a" + - "c174faed43ec67473dcd151506e334a6aaf1731dd3aaa831f934be83beaefafa11810e7eb140f4fe80cfba574e6106c1bfe9f0b20173a4ec2663ce0580df6daa" + - "7966a3a8906677ab680025782c61b95cec6a73b5deb16599e6521f9c6c4cae0d9286566388d5181d6ba11c51a25c62b510d9b1793f3ce9f73ff0c9226c8aae69" + - "5d014287df074a244014720ee38e3968557db00aa63dab71854b8573c42c65116e3d88bf040d53ef3165a5827c717179e2939e310be5eaf6fb75447ba98ce925" + - "98e83a32a90eea848500a30eaaaceb307d37b1201b83a744468a1a52632ce5525c1fce5f702421e42e7cc4c61caed539dc09001cd31a8a2b48a783c36c56a3a2" + - "d50de42c63981c86642cc92bcceeec8a66b4afad3c1be1df4bcb8beedd442c281080c94692bf453196ed1a66a074d56a8e7f60238ce18358373efc173e70c691" + - "f832e1139bc04e6258d77cf7529af7ce5eca28ca5cda818625c0bb5beca96d99fc9b6689a7771434aa96e23c55a41cff7b7b718df58260b3bc91762034debf49" + - "7d8ca8d5764c52bc9665bf86db5407ee1b786d90f8d7772597eceb98f0121e3996e771d951568a162f6b71042998db8208ece5b8b0c68107b8e2079765b0d8c3" + - "2747597072756208b0d84415a5334a88d916bda390e26ccf3046b860e7ccbe22c48cd3d3f51bb65a98ace74d52613f782db726babd02780b8d620655bf9d551c" + - "ae9ef3056e3d24f5e7c3105c4857492fedd244ac2b8c30a874c1446630b042d819bc6b6d2d96829de903db22af706e93c5ae876d72c633600222443d1765bc62" + - "a8a20c458ae55bce8cbbef753cccc5e7d929408d6a3709467373651f0163128aba4142ecc56ef11ff1fabf5eaf6e955b4252d1350e9002300a1236ab2fa0ed34" + - "c9cc7dc1d4f09bd31296cec1493e725b57cc496fdac4e8d26197376bda7f74c0965c4352bc9d5c731df04f9908899cce6ec3afe15210d115992b2d95308dd032" + - "13c557ac527424c7db02475a2fc78b88d022d212c3d02d5ee490e2436e6e572e8a1330465b9052f8a3de01aab76662d18fa3d076fb77103fe432d549bc861fcf" + - "f63f3401cda31673ee48826b68b387802fea4471deb1fc928586f1b1614c16311c9820b563ab0112c28af5c1af5121818540c4b7d7f549b33906c1b86c6674ad" + - "799acee7342e4a79d9295493b2430fd08f373338795764621bca444868f3f42b0e40abd4b8e148cad2861fb4980b83bb58d40eeecd8d8cb1ef1ece17b0ab72e5" + - "06c6e650a3a43081f545acbac51ed7e121df51edb75120cce30ef7dbf41fad331120e537fb35be45d93de4fac0cadc7e5f644e2b767a285facd5f12845559785" + - "57f4afc276e21d77f6162062430dc8918435f035f435ea419ae9f1ddb6afd46b243f8bd6a3a33e7970e7e76fab9ba6afa72a4806189462f9d0f231a23e3ee1cc" + - "51cd10cb9043a27deecaca866751f971254fbe3084c243ef5f516bb652988b770896ae5abfa12db2eb2abe404cf694e9f60d47e734e260ae668b750e11b26001" + - "0d2bee5ca555a44523742fb069e484f7a69c12d4bad026c03ed7af10ebc9cf2f54d143fbe4de83448df80668217a11f5a1187f35ff306e6c685cfc2417c14aa7" + - "aeba1fb7dab05c913fbcbb8e677dd0f89324048862220ab6f5340c38b70804f625f5a526d6675a49fdc22ea6ceed477097fc723a7b6eaffd65c48dbee13df566" + - "f8f3449d91abb367cf37a8460fc8072c4ac75f88be8b9c840ef438cbf12a2e7d55799f641316e3381f72265425f3e90fbeaa9919533d8f9262da27f1f933d4f9" + - "a83e07aeb968016fed89e7b16babf0b6af3800a27c9c3d330b6bf8be447d31bedcc526b1bb53ecb10c3ea098bfa7d014d93274bec70b6e82bd5c443e860835f0" + - "ae82b7be7c78cd996e0990e3cac8c1c431481c8159ae1dbc40c03f4ac543e5758f347e12715822d86c881030de83a76ba1c49e4d4836bab7b5287122ccf523d2" + - "33935d802d2bca303cf57b36a5ff17e7c611f1cf99699881ae464da2911d77580587a7228db8325f204adb14413a13fe318e995d60e35c88bb47b99ba9ee8daa" + - "3e40ce5818876a3911107a159125dcf768ba04074e5771334e0de430c439070422508577e474e9532f7dfbc489d0c87d37103920415b6c116a422ac15e0736a8" + - "1e1e317adc87005f868815950882fc7497794c5eaf76f9def434d198304ff495bd2f9f4026aea330450741fb969700b953ab265aabf1fe146d861ba2aedc53d4" + - "f929abec2dee710aed8fa605fbb9bba914eaff01fdc113836d34d855383e4a311b4ec6ef6e80dfe32bc8035d84ddc4e2c305c112b93560112c1f3dff800d6043" + - "7eab01991f924075b4dea4db01c377ee1ca374d383ff1fbb463bf7078f6cc7509a0ecf536871abe7c95bf89f29c71f72f1a2002854113cb0d6d2192c00123010" + - "8dc9477808a218f84afb81f0274718c024393d5be66edaac7406e520b0c8e2c02ab98ee7b290db261f2122ea68bd79f2cc6dc64936af5064cce2b4d1b7078703" + - "951b6b81b9b60b99da4c2d12bbb50351a5b7713541db0958740910ff69e748c71bc7470a3c05489febefd384e06d267371935f652736bbcaacb20c34bd50144c" + - "71923b5a521ac4b1ba694d024ba51b4bef3ffcff74d5dc63810b2c0f529073e13ec3232d8647ad124b21ff73402d371c0db39d46cf4d2d4cf7ad43fd8dd365f6" + - "9b6b7bcdf664df0e62ba58f3ca0c62ad6fdcc9b091fb4926cb47b5ff8de7d3b12bd8709a46e5c3d5f0d22934c7a0574ee70b87af97d0fa46f7d9673915fed1d5" + - "a6c57197524ec9978d1bdf65633721ea2ccc25626dcb5e7f5e090b00e413c10a6d20b45fb8e98c22928de6dda184e856c86792c7cd09d38e4333a76882d363f1" + - "7f4d773ba104b2d04fd81027da087258fb175bfa8005c035a4719bac5b9630ae57889fb3b52a0fd47ec4060137b0f95fa5d5684172d07ca91e91eaf20dbfdea8" + - "a3e23937f33d8774f30c7e8e5d4b2d5371e5ea5e8d290970904c4c1ff33baf675ed79599653808f652ec4fd0088877f7dd7973023ccc8377d1ada2b80c07d077" + - "d7208686354f511925a3514c9e93c13525353b3d9528ab678e3e783c290ead88c2c3d6230bd4cb3bf79fce6dc3e95bfebda41e5d994e61ab083d73408ff6b627" + - "6996a263d2920170fff6869c2311441837a2fc190bee104328591b402defa38b421b972b01d020bd20b1b6a6ae884b23eb829fdf032a81d4f199a87ef125d4cc" + - "8662e24deb93700980e6ebc6882bcbaaa0283492e81f81e76bbe2ce18df4fb665436310658918ee217b5da262f1a1adbd59eb3c555cfebb12280058c75b5b33f" + - "8aa8c2d7cebf12ce46c5f49ecec5a865a9f0b65476793884f0021f8731b1bd288f55dfa1665776b2aee1007bcaa6d92a76a2ba9925bcfa68db7cc727b2a07ebc" + - "e24c0314c96ee4d6164c699e585461388dd73476a1e0519d92f51b64eb2842a7b17bb55d512d52da802df63206ee926f6a6a8c32de7b30e7cd3f23e37e0fd82a" + - "556323736ecd9de77494a2f8702463f40fb837c2a99270b9050b0cbbc2c305a32380ff5fa94bf9c101c667f36293c12ff9aaf6e0a810b75230caf915135cbe6e" + - "63ffb2a0e8632d32f72a65aa965fc556e10ddf6d5e40be919066eebda09d581a32156e1675300f52c8b355e88696fc2a67dd8e350a6e902e082af28a9809ba11" + - "ae0a5fd9c6627fb808d757147e5d59cffd9c45874478ab226e72909ccba6592a54391d072c7eb0221f1ff7be9924b9d037e4f8c31e94fdc814a8c4cc7ad4c9f6" + - "eacd5af66dd76bb6222b2fd3ea50a828fc3a91ef8b084214bfdcca56348517be18ca472166dd7f18c8e444e3641486e7dada626ced8710fc73a2b09b6e9395b0" + - "31ee2c48c9183851357d230204c911b345457de602824273193b795fc21e90a0c1cdaaba36787424b23ce73e2116947f143f9641d39a4c07c2e40e02f3bd7c68" + - "6899fd57e3eb23c6f5615c9dbc279fca0d4218bc79d928e70018533a85b4646bdc78015149b4d41d77ec7b46900e7fd5250116ce978f825569bd887bf3fd0365" + - "e1259a7514116fdcdd6da3ffdf432bbe8e59b9bca9222c5dca1eaa61caf29b8461ddced6f312838fe490f742db696fadddd19bab8de6bedaade878be07aca4ac" + - "76d69b81a6890e66dccd702720c3bd5601c6abdab95fbe4ccde6e35385b75e1977d5085ace928adfa382ea2890889017b9c4c81d9ba4629771f84cced6280db7" + - "a6cd83ff9375ffb0a75a6bebba9a209f048788ba39127c1036e4bd0aad9be40754fd75295611e455909a818a3541af32eae98df7222353a4405da0e7be9f1cf1" + - "bcb823fdea7976a810e8a3c7bf93fd947f961a344a93aa1ba99bf2df48ec82769d8c08e7b14191050d5706a9467c9122f34e27f060dd4d6e936c414c4e551b9e" + - "5d6b5b58347ed0012a8a323f41b43bf5e960b2806de59da85b998affdb490fbc965d569114223db3ca65df69a617f6808bea23017327ddaf32990070aaf5f444" + - "a9db44a57b5c92bc27bc71c5f8a2b6929edfed8e182bf5942564ef045c75448450eb1a4e4e09a1875e8a4a74f229879ccb7a2f2cd0359abd91a782c2ec1f68bb" + - "40ce0a63bcc014b198adc222fc957eec0483f5b93f0db91b7ab3b3e3c59841dae057eec97abb55fc42b2de124946e66ed2a7fe8cd047cb79051b55f82594ab45" + - "711c92364f932a5fd274fe184c85583ac7cfaf258c57e296f9c18fd181308565315e27272cbad3b21cb4490ca0e5f675365caac42f299e22d8a74ca51a9d0883" + - "bb376804e234502db66067e7a434d38c3dc075346e888e4558b1745d00458df99db02f0e4c37702fb0989387f74d002a924790a6b7351ee0f41684bef079be26" + - "ee9d70b560c006cff4b08b9578afb5019c21ab9418ae4ecaa7a1cfed2d880a06a03c2c7711b601a2cb3d9193e1577b4f1d0e614c0be1f69205fa6524fee80bf1" + - "e1f1906b50e75fea2d19b8a83071a460145e1730581e5e9538888d2e797ee3cbd3b31399ecb4d6244ee44362493802b142ea397c2e7a3c1bc86f0ea0546a38ce" + - "574e1df0c27ad8a28dca70f659ae6a1369d8b3aee7d0dd24ea370cc2bc1b1a4dc9f63911b63e60fe4ed8552bbca10e01c82d11b0ddf748d234b4aa3b31683c09" + - "86358fad680dd2178902beadc4646b3eceff572631ff9e6b64d8a622ad9f0308cc46b7d422ce792fe5573e9b9480e1ae9fedf31edaaac3b08c5a2c6c27d6b033" + - "6b92a3da7b838bb0a2916ebb6ee72bf33a7fa70630491f49c67031ce4b9dec2315088d0a5cbf7473fd121e0ef5f4e92d43114014c9f8c6e671086a446eb1f66f" + - "70f0cb0c668998ed96ee0ad2687946681fe40dc46cbd170e0cabb6f6216be61221f171fb2f4273f58c10d5c4eccafd1df62fdc8ac2c5c8f6d5eb637b71fa89e3" + - "f8347343f89667a4450c5c6e3791034d2dc3a593185b55bb95d8f8f2984ef981e4b692c1383ace4cb2c4adb80d5d582857b5d0e3ccb12845a59587b47232ad20" + - "926efa78e05a57b136e284401c516296b6b194d541ec165d11ef94f166cb52f45145d745ff3deaf643b5c45573ed0e69a22f0e0c9c5367f6d1398105516729b6" + - "3f2edf1b01ad9633edf80efbba6555d4253fd99b45a36f16ba98ea0bb0d80533aed806544a084a398a692f698c78b9bcfc9b4d3328dd869dbf7085893b8dafe1" + - "59e0517c2f6a3ddfd4a8c670072b30c96b90f81fcc08523e4fd75919752bfa52a1db7c374debbd83ca8e311b98b0d8275bedad215847fa8984cb50e108f69550" + - "f6517d719dbb5dade1d3c283357e14b6d9e85d61e33813546517e1262a7cbac814d79cf6b7e21b0fbbee9b6314f02b2d4e6995d2231670884c78cfd86a2acbcf" + - "0a178ba64de2f13f022e22b9b968ceefaff374aff02b703811f3dc541a69a21d6e1c5d1aca48889b125ff1274e65413f61e42bb0194b60b65a3454c696033cc8" + - "e3cc3613a52850296a0154bde0e2a81b7a6489bfce505dbe1bc44e0e1052f678297bb19cbdf7970bfa5268af8a54eee004063f9894118ddce7fae8bbba53a428" + - "678cec8a2bf6cca2b1a5f4a2e95562437e4eae41167f39d2a150f7c46c1eb6da35587f7234d870b16ed91c7db548ddc99967381b4bb4f3a2b0a5ebcbc7ab1b06" + - "7d5418768eaf7d526ca116e239ceb3ab393c45f3b32b713c11fa8e5ae8d7611e6008fa08d1305d5655315a72c85a04dc853da3e8ea9d46674194e15226f126c1" + - "a233c26dd7d3cc04ae572320d0c351911b6fcdbc0b8450523e96022f4b964d4e479b6cb1c40a6d27699b57ed2952ef7fb3172c69ba7beb8c8633a01070ac4344" + - "d4c401acf8ca7fcafeaa59e1d4c2ff251bb67dbe10a862103df1b416fd2097fe412b3da9d4095b48ea094fc3bbf2ca41e4452af3a179580e3bc11a7d97ba050c" + - "ae1d6b8075da267b3ae2231a1fcfce0c976402f34963c007d4f85d9ca95646990d1bb09691ceea3b34211dc58409e052d0acf8c2296a7e8fb52d7c673506d89b" + - "847c369daec7909da8657e8976f59f2ef4c8a049b46fdf30d6d223ea4175e4d60e469bcea0eb3bdcaa4d6024f2b43cf6de9bb40efa9172381291079dd82ac5b2" + - "39f2051a7f1aabcb8d50333e8c160de19ce1c76ced8056a0724ac630dd45ec4e315437391158a633c179a3d1f364b475454fd29c1e539077b9d5f7227786a5d9" + - "d8ec78e5615c25e517e9fcaf07611b85dff2c131a1b11a901a431a601854e5cb627cf7b8b0c5e66ad6cf60b7ffd6c6441f9ecd58f414013279e9de533d8d797b" + - "936cfdbfcc78342b7ab586457541df5f3b7d1873612df200896e2929f44c6fe10d24f7e6dbe52b6c42c0a40c947c1cbda2a41437079eebcdc29716d80957c159" + - "627e7366cc16df92cdedfa9f52edc848335f1c7152652fe24661a469fd503393229063c7ab20d8d895139a2f580dceac9f6dd4c4ac652b1d60c2b8a1b0b2923a" + - "86c31742807549e6d523b3c88d31e8534b9e05a6c63f6c8fb8a1eb4dad733d92e7071e410f0087ca3074f4a2df511ae89cefe9ed09a8df603d61f23754e43cc2" + - "e42bcdcbe58b0587aba9a62f32c7507116fdc8a9db3d65d6c0097c8f473eb7f3bcd11ab81d5b636b0812b7982201a63d0b8d40f2c38f65ffd953668eaa5751b3" + - "dab7f038aa7adbcd1f1102267c9d55d43649f9b4f65f1851546c5a9ef2c7ef56e84b16f12641e9d5ddaa78ec778b5f113b2e06bad5821e1a5203b006a774e36f" + - "56c9336d92c8cd8bddcf014b6d58c394e2a93554af6361fc1bbd13c359fed98bb5adfa4dd1266e2744e126e1bc029ab28fd68b648a2ab26ac23252171b298641" + - "2621f2a8697a00ab3fdc1b3b04921390ee16d213601ab249a51830661051d34eb777f690fc2d8dfb8e0898567e388830bac8b0bc896f43003feadf34256a927e" + - "b4d9293e32ca135351a19d1246cda30551c87de1e148ff5ea576b67e19e1a0389b88a5548b3b1a8cbee19eecc7de5c2333264c711d50d688a1c57eebc28dd6f3" + - "3dc0e4cb857973c3d0f28683a6f3c09db9f54b8fabeca9e4f9b86d794ca55d6611858f0d48736adc10dd6763ed7199bad81369ab1f3de30f521d43382bcccb7b" + - "be0178f716d5c3cb87488cebd7d9e2bbe671dfcf2512f1b815075777ea92a867f35e09ff0110e61db24423d0598eb6fd078dde0dc2b5d7f5e0bb6fee207da109" + - "2e656b5c982866d5fe01e6db79809646559a6f2b9088e977789aac74435dc625b54296b25788bfbbda9bbb25247d428f5141b03172fa11f12339b91ca96c92e7" + - "ea5a128c8046087dc7a7eba63e3bdb200565d8a103e7b3c292b088eb06aa27b43688c8516bbffcf123499574f00908ff43d66b79106cebaf16725f1dee600a29" + - "7b3a3da878940867f9549e65c73ea798ca923b012fb8a7ef3e2ded1d2c4e85635219f627dc4feb90f884ae6436e7b44f9159f9889d8e194828e079cd2ee60a7a" + - "6fbb6b8fc1f7355d7322709fabddd76e4283ddda3018b7882ad79b32bac133da415453eecd5bb1f0deb4f3b987a71a2f2e60194cde63a42b91b39bfe51b4aa8c" + - "20952b601df11d170c65a7fe935915890849a367936e97bd242edf305eaf2f4f4fb9e5ee1464c51a899ba5cc69cf56731502c1b75d0d565b1dce15440b0de0f5" + - "58bd4f810bf058af99c158a2be0dd02a01bb5317f55675f4d42c6766fc61271954b6988c33a84518bcedbac8de305946d060d19c4691c026953ebd680a4c9012" + - "0e8bd54675d6c33cc86e65f5cd3c34cb1e6fd47784a64f39e95a1945b5c21df2b3288f963863b33366908b05c2bd499dd25c1b8e97329d7e435899afeaed174d" + - "2a2471b6e8d6ad7a0b1b6a8b19fbd976362283e5abffcbd2cd310245092749b23e0d114e727622953487f373c833281a74a1b97742ca99e49cac14d9102e3680" + - "404509889ace009c47d075ba9891e7f67b89aca3e213150f3c715cbab1869135601612d7dffda3cc104b6508f56eb8b7e7f379b21e1ce290ce5fb96f53e3a7eb" + - "c7f7bddcbdfc266f23b775602d8d12527d30446cb4144df7fe3c2756e232a8ffca625d7b6ea2c8c0a92e6425ba67ab75160623c39f01fd96856b582e257a6930" + - "224c6da90a6eac4249214c3b85aef52835d904a8a5e224d59eae0c80a33b3141ffb31a7d8e62833fa4c850fa6be135558fff5434777df45feed00316c475759f" + - "ac6e014e9d3cf23e7322281ed75623ed69a81d6f05ee7de193f6b44ede4a94ced27aef5ab9056144593a836da80f5297875e7bd84d8ca6df95de8650b00b3528" + - "123132f26aabf755d00450648e44f3beafa4dc746775958c6dd88bee825c29112a3af582bb2ebe628d70364fe9ad01b8a9961d5b71018690440151486114af1a" + - "d85679bcd3eca510c6d6887e70e0d04b04fc2db5ab1eb21fff925b66f08f4fcbf31be3d743154056ba137727b63576e72f1756029c86bbcf9452fc6cfd89f3b5" + - "9f243d84c410253ba7c9284191a0ed87b2513901a93606f1aeb736c90dfe40c0a343d45e9a992ea894b22ee5d49e0f7d55d9bddaa6c74bde8ca5839db67b77a9" + - "ef740f9a47241f05e5dc1b9c95c459cc9db560b1db090daa3f4c6de46f695a158baaf357a1fc63ebc0d9db8144137ec4bd69c5af89cdf9cfa66e06bff6339d62" + - "2c372fbe5a855d14fa7ff3726512f966e4da0556b29ca6d7517803f897d0e1911f9b46a291002a8320091aa7016cb7ac993e35c8b0f5aed3c94ff0b5dadd8b77" + - "056d06d1bed59aaf7bca8516c3bba6b33e12df2e5ca4aa40664b3bf48c4dc2c57cfd74c765fe9f794f55b5df6ac6dd2b3592bbc71354c8dd9ae41b0a05e1c7c0" + - "d3bd1a0ac6b671c48c01d4a0fec7a01ad11040f213461759f9e029c835ca1d22f9a661b69d72bc46e34b1be7ed85a21830fb87baa74d7ab145ac1647f5f2df68" + - "671100d4d9e41082d3c81f3b5a6e603bb33fd56c1dbcbdce5e213c651da45d9d1dd7532d9a955202338387af6315137dc458fed62920a0e721aa7ff1660981c0" + - "e4c3de0a4863f6f660a7c1b9745ea26036a25cfa37e1337ded405ebb0401d7041a7938800a97a032fcababcc06391a77a580b1a61de014db9d7e280ffa6b2381" + - "ab6969ae5cfcca00a47ac2fa05be02aae7beb806d2afcc11dc0642d2a12ecde2d2926efd9fe790e1bee19f9114d22ca42f438ef656a1311e4931ab7fac93ed17" + - "3f68ea0abed18cc2c8905bb2d599780690eabe4996e38872a3190fee361df9fecd5906f664106de4835f8fbb657366327871a2d38cbb671df04e0d14fe97e260" + - "c42eb07bd1d70514913c7a64a51e405cc92e06845e5a78981fef9822fc79e9937ce0513138f6bbf247f5c457da708cf84e30d083b4ba48d2d43d70e7c31e9482" + - "4472617910a3de4369217b4daf892c2c3250d1de0457e88b3bcb5c4568f9b26aa675c551a9a730fe9ea8145ce7f8e23ec825be9be3b9edd588c391295fe31ac5" + - "bfc97d2e438ca9bf6551728b3be6d6c6ac064baca763e0eaa24f754f4bbc84a4377de45fb6a8f37150865df18749df1af4ea911b62f616dd4dd4b25b27c7b6fd" + - "99d8c00ce8a53fde3ced091891e8daf43cade10086be046ee5607003de24101db49b1a4fb0ac270d05bab12583e263e903e94dab8bba7c785e40499ab01ff92b" + - "b82c2e5342dce84881adedf77cab593f541e4c963f4f9ffc80a16bd4eb7f20ef4bf3f57abc7cbd86332d8be80f0794fc82767d13c71d8ee20468ee35c13308b0" + - "dc29ebe8c6a81e02ee9a21807ff57e4d932edcaf59ae9e76f7cdad46b32f94a74982f0887d7083c90ff54058e873b10cec67fba1b717deba5356e170dec1a40d" + - "36c57674ad8d43c5c98022b553fe060251b994271585f702de3e71fb1c8e36293dd44a4b99a1baf33f6205e9fbc9acdfe8cfdf007224f93a7104e7803454fdc0" + - "9fc5a20be59f600ee734847257a5ad62c599a7fa836d1174a6291e61c1be4b310bd4d7b7cb9be976dbdfdd2b99340a9863c8c0e5009165d7097317e6c3a29cfc" + - "dc84b19bc68f38694998f626567b80ce6699124b12bae4bb9e661c2484f5109517318341287e142a849d61d0d7b11d4996547e7325f28842dcaed26367f7a888" + - "e58c24c857da2f48a9fb91c78cf351a23e82ae443223580a9fe15a6a778f6c13be66888219e3e15971170712b6c356520cc15e4e75167993b66e6f125799cd40" + - "86c72588a85f68361f1c2f09e87f9a4de95ef9a3b92c3313664a706cb72916b96a9cb50771f6917ddcf696ce8d7f2525745fb6edc30bf3fdaad66ca5b013300a" + - "7ec7cd274327b1b9cd931c068d8fa9fd6336d59f6ac79b84a24b34c47e408b3bcb8ead49428c123922e54bfcaec7e39c4d6ef79e5645a35f715d151e679ef5c6" + - "6f86cd013fdaab978ee4e52eea5e2753e693271344a1f215e1c690de06f29c856c469ccb484d445bacb16694f4def1537cdb32260705e8a50fd65e98a24967a2" + - "456af6cf90643638999389a35de6e192068fd2e2ec29aced58611560c792ea5c7fa37583ebd5452a8d94cbf1898937dd8aa6656047e6e03f84dfd0bded514a6c" + - "b47ca71c2cf1e76f606c04374663712fd96925eecf0ac1c38392390c8cb095f39e1814252ded78b55ebeb9915dc5e2ec14fe99e3a075bd389ac601681f154286" + - "885289e568a8646d94abc806b4637492e3a407cde582d42764eef0d56ab14b00e9aa1f64d8fdd533d4314145c8255c44d0c746af6da844d285eb044d57e8cafb" + - "ab6c3b962e0177f11a839f4a5c0d2c2e8d5f76375ac115e0a89f460ea1be238f974a68e0693d15790117106c1a65ab5f7aa08e738aa888d5b56be39d2078837d" + - "fb2357d86f5be85a9af41aed611b231495564493e46acc90c6a3e67d5b055320290aef508aa6a1896f19cb5633edc0fec023216726e50960a44d81e0614ce748" + - "6ccfdaf620eaac0517e8cdeb1095d55f3a60d61dd27d967eb26128b84c9ea8418779e074cee8961c5dac811ce5ee8134d3910a47de7a1344293f5c64ae8f1b38" + - "9d6c457dc74e7005c339394f5f24630f5e40cf270640d1e4c27cb6a74fb440f3203026acfcd31f39cd4844ede7e785290878fac8770f930e96c3edf61748dc6f" + - "b7476832cf77ddfbe8eb8e12fd002038630301439ef8a7659bb10593a92cb84018e1ec78856f403e1eb9d6343aa0bbd77a63d776f1d12838f27f3cf6296ab0b3" + - "b4436f0ec545a5a1e92a5351fb273b3ed56a40e5a5d25e0057f4077bfeba2e2d8cb17a553b157609b20bfb5cd2699af9936f50d823bb59a950a24b8fd15ed705" + - "b1628663f0eb5b5c2b18f000ab039bc425ebafb2010e1a2264c38fa2bbd0f77e38eac8acd670565490fd60cac7fd28d988c8dc0658505dd98425f22c94647d44" + - "5d0236b97ea58b3c71feee90be0055ce1fabda5ebfced9d9bf5efaeac8408c4b6bcdb39851cfe038d88ada5211de2f0f69e9e3c62453106c366cf0c40971c0e8" + - "e8f2a790aa66999a0cb4cdb57a8c2d812e9e4a66df2f001a57e291864339257ec26c9bc2dc6cb2eb5c3301c167e1ed0387f9ce9f76c6759ebe5c68e8be378c42" + - "e0350b344acbc8b40c95cee9e82bb43cef5e91a32a6be8a727d5fbe089321ede3abee4da6b9f41775d7e9abc36f6a5d26ab88ba32978b5ea0ad63f0ce8a772be" + - "5aa51143bcd00d78bdcbd69beb652139ad658dc7ad242b2057eacee092aab4940d6ff993a8c7d8fbe93c08c93c45d5f3a01058f3c75c94be9da1a19a97754734" + - "b713e1ad6b7cd472619ec1abd4cf42f50b0648661c2b8dbe8976037c094c7176090ba94618e1918db44f5d2c367a0c7f911132d9a8b2398b9417542c7ad99b53" + - "a7ca48253bab8382a1a24d35b9b9818bda513f4b52fc576a71fa63e72aa8042ee1fc806c6fd3fc16e07ed2caf9f82bd3bb6b393b2708c051c24c2e05aaf72531" + - "d865888db06f719314d6094b2c4f0718c151c88958d2d6c8a6f49464f81cc46709dde026f4e05325ea4ca2dddf9a79bf98bff3aa5eb412434f0b7457b4ed47ab" + - "85a212e0c7720c78c961d56141bff0f964622d4d3984c1017de6f5846c72fae0c771a819ba6c111bd739fcf16f4b85f8101e7c3f0daefe753ec130a6f34c7697" + - "4dc531f83715ecae28bf2e55111778ae42aef17fa95340584cfae3d4599af9dbd10211baf3aafa8ac8a07edf8243daffd6a6486b1e3be4b60711194261e2b646" + - "e2667554cc0bb2fc07054b653231cede43154c9002890ca20b0ac81c4788847c6ecf7c174e528f36f8cfc53f3366fa9ce07b1843939cf6d318ed11f7ba6eb791" + - "ce25e75cbe37d2ee3d45bea487d969de041011959c0fed4e6c86802a7485fad70059ece14a29b03d4df41677acf71419ee63f1101060ca5e4ca0ab2edd71fe77" + - "46c6bd9f36bdbbf0a9956eaaf974f7bef982cd34881abd686fe77b536c85d042d77dadd00c5cb0130737e5318a025e6ae6af96ca28cbd41094d86a85765ff891" + - "af825793910c406470cc61be5d9282911d2faf82abfb309598fce0101ca64abe3920701a958c20ac35927733466a23de809afa2bdf331f68c3ab0cfa08b0c549" + - "a20e9b50dbe85d22d215d0e5fef854ba271a4c0f95e6abca19018bdd4a042721887418136b4a60cf291bf06ec47a5a4d2f9b29f988733c6bf6f65da5a95f8939" + - "fe0f2bab0bdce98569a81f861014e532f6a995542db02b6bdf3169191d300fb0429c1cae1d2dd4d29e0b61751576e04b558d38d3afcce8326c2871e969c1492a" + - "8391c0becec29edcf7f038a8093471763db9f13b97114acf7a979f5ba3bf6f990317890ee0705850fb97bfacf306a0ad621b2c3b633af01fc5aa059c0e22ed17" + - "23584dde6cf140bd1d0087ca9090ca9f07d3b93c60938af8df976555455bafbd8cc986ba32fc3f15b5962dbb2d37b6ae55a7de0c0c6f2366be0278e26bf9a725" + - "f61f2bcb545d66f79261783f7f03395f2a5d27e56af62a01ffcf778c3c686e244bd9b7e5029d1d40dd2250705c6825bf78e83730212640cb5ba54191b61fce33" + - "ce6df7721b15662162b631d99e6431efd24ec35639c2b97f10374fa5b9e2ca4231f523195206fb9695ec7721c98d74f29533cf714866adae8edbe8ed2d0969c4" + - "9ed36200c4b8b75131e6d1efa913106bb0759aa8255bd6a9dc2b00407358f4523486575b111676730094f46d0a7b95427df74f053c6611b4c465efa5310f760c" + - "5ff081e841e5f90c2de35855d45a7f35ce73d7c7f9f61fbfa953398e042c3946aaa4b7a2094d95410b8a5ef76c8b57d49f77311192b3f4578f37bda1a426de7c" + - "7cc54b5400bd16bb30cd8d1b7b42ff31c5e3759e3c9a7668174c02bc5a08f1bcc7e3ba145fa5f5c41e48877b41b0ef8fffd0f75c6547047c2e7b7c7e1aef2cda" + - "c4a778adbf71257618b4eb3c6dbd8211f829c1d6373415b969cc48f33d586d2678e7c1b441364a9fe2bb426a33b2a132741fac547766d196df3505fdb17977de" + - "7853cdcd8d9932eb9452620aa4921b4416f65055d77573b132a40795bf142815b655e670bf2c4464adb5d826a1744c8049d7a6cfbc8a4634e66eb32f0cb6fa17" + - "ffa8925131c3a253101733406a2a3a0dc61ec3ca1448623b6295791d4e2d65d303f78038e15d0ef75d823759bcb4b277b51410c37d5efbbb2e3a9e0cd78a8475" + - "05d44bb1fed7f72b1bf1a96ad0148e816d34c66b1b5faf172b8141ba007bf2e5dbbfee4b09ef66656ea3cde54f086040d14116aa7f3584ab6773f6091a2fbcee" + - "f59d6ea115f88ef9fcb358c87c35caf7c1a6022e141a3c688beef17da5a619e733d854218b30d5edc39b933b19dedd6750acabc52234934b08f930b608a18008" + - "838cb0fb73d4c78af0c468d9fa4fc5852135ae91ae00a99a6c603371d09b031ee37f87586cdc83897d8fd8ee2e07b9d0478a812d3f7eddca08860386e3ad9521" + - "98d5fc04fd0aba4b3da6ab8bdd9eca8e0399a2012d6158ed75ced5f432a223449b4e3db3fd4b19c494a69e9f2670833f8a88f7b2873319e9495f03fc69b6d098" + - "6006e3ffd8cdb9c1b98f72345848deea1b98ff6ef766f4398e642e5f2b217c1a87a608c1dc701bbb79d75a4433ca1d600061836888a220ee262124d145d371f6" + - "576f04cf71701133787a97aaa615ca98138c2be1046604d885e2f274b0de8743af50ad5dfc4c3a09164448e102be577eecf77ffaec1724f91f00f908ff6af41e" + - "57056dfa8f5dbcade85a66c10e524bae55922b4084407fb36ca8d6b7322f76a8139be9455a34440c719d0db8a36385efa48841170c8d35046407b586f5bbd169" + - "7cbaf6819b663fb17d0f0ae89691a099a8ccf47fa61fb6dbb22b3298e5cf2465e4b93c49da70fa76924fdf29389194cc5c61cb4b3084d0851bc3018270d1a24c" + - "b4b04e8af927d9fec9ea1c9ce18d4dbe61f7aac0ffd4e7c2e9729b49ed9874b883ec644864c6d9ad0422c4d89f87df1dfb2c96314b6a3e19afd21783f365445f" + - "bef10562a26b48df42dc344ddd63fcc03220dbde98f1109cade221027c40f0f996f4beb29513c3979ba374c4c6a2c2dc6276ca6be66eecf1dcb245d6efe78aea" + - "e49ece37f87894bef3c0cb1b993d974685564e2476c12c8d8f63a1aaf142fe34a6840be340b64f96d441f4537dff434ddce630101ed9f78e807881f6b7590697" + - "bc97e60accd7a135d8915781f4fc22e437145154dad0a39e5e306c117b11deb10462ba74d58e81de7674ef0bcb20b38511991447f63ad906b11abd4ba88df3c9" + - "e6931f87fece49f48543fed0439c88ad78f82aabb32dea03d030bdd76efef6b737daac2de2db1cce10e2ec74565b0a609606cbb6aa259ba88715229b8176c874" + - "db3fc4f6db9f167e7b2d55b33a261f9eecb69a0d36ecf9ec4f8f9cee5b74bcdc5d77b02ada89f56259edeec0d9ea866ccf454b9abd29d5d21041179912a5c302" + - "1862d850c3ff483e09479957df5bde03a29504b4a43e1fd40af2b8a2653a37cae89c8d917aecdec3959fecd32b7fd313a61e134abc15ad008aa993aba9629a5f" + - "0af0ec713f742bee096e171729e70530b60f910ef83746a61580f0cc6d67723792c0e0e94775d5b1edf37864a50678d197bb34a97e84d7f764c0bfe05f4b2d0c" + - "dc431d1f4410500dbe2758eb05bb6b19b154707c255a97cedc6aec1841f1817f6bcba0b9a9c1d3aebf747bec4423c71309fb8b4ada90dd9f7adbcffebbc905de" + - "74ce531403df33457c4d0b970fea5df4f85732e3c33c5b8242b041141a8c51a62f0bb14dbe07b14d3f5ce646d76e87b258e9b62128f9c0c0a8014f2c5b3d3dbd" + - "a3a77be6222419cd3fbbd3b842c46c099f142bcd36442961e8205ec5d7fd159befdbff12693953307026f1e06fd57b6447dd3cb52df466f0352cc46f27d1fc56" + - "56e06f68ca2847d291421bc9e0af6bbcfb7b3ce07600827809506ba3f96f40ca22766f8cba32d4461488f6596082a52c11e9ac908922075a7b443c41e55b719d" + - "9cac9fb587cf02432e1accf3cb7a16de0d5bc3a1c0aeff5a1795680b4551316e3d7b5a9bc63a09c6f75b0f00eb69fb6ef5130c1ec40c7a7d5d6ccce364b74f63" + - "a836a4a711027e592d6a70e10e573cc6d730a0def4a7a2d4dfcf3b0aba37fa2060ae6935710191c023a0b8e123a67ee811ed43b5127a1c4cf82d52ad6c40fd66" + - "1160f77dc320bbed349c8b6d08b2a7a6234a8dc88e4744b51d2d7c56e02f1c3bea9e6c2c3d5522ca02ec7e0b8160555eaf28797ed30b5c931a73562791f5f0a1" + - "b7ce83824bae17de449cff41312bd441f34df62904f4a0265d6fb9b8a352895ac6f0025d6b2074570970b4e679c559d03ef40794708eae36567008d9c33f7fc3" + - "5f8df7e901c27f408cc7fcc52631f1178695ea660d07df541e5a32721d145a32e8d32f06301b5073149e8798371fdb1a2daa5e1d02c24da07682a2cbacf5af55" + - "64810e479e5966dc6bfe14b4472c42cb154e19f7b8659d42de5ac926224cc6b0d8f3fa797058fd6e21ea85146838c4612760d84e24341825b6931a6417327394" + - "0154125254d4e11ac80e475a178605e851e1be39695cdc0781da241f232cedb32a04b1cc7352882fb635162ec3f5fc5004cfa7d03780753c14173ae7b12a71cd" + - "b40d4835023a00a4803bdfb6916956ade9f687af567e6f29981120d306084ad061ca1585f0e9497fdb27f9d54cbac8fecff176145114ebfc17e3f346b246ab91" + - "094dac0e684a708b45dcea16378fc29683dd033310068339b13d995dce77a50f9ee9cb4cf564566b05ce352a21159ad21e720e05ce6069a5ef4e9fe8ffd28516" + - "8356a0b80c4d1da547776f486a117f6f7ff6557edae7d68834cd71973517cfe4af045ad0fecdead68edc8017000958b69410247a51bd9bd3152dd57389f25223" + - "d5e88c0d343ab3aeb89b763eeb7ee48b3966fee147a4614e436c9a1a398487c80a001700666251b3dd6a2e5dc96814d21e6498e75811ba4c51160cbecb7d5510" + - "62697171a25a6abbc41fd806c3dfc83daaa10d7ce47f5a29ef0d85dda5a61429c637520e6a4048624cbb25f53977254cf803848ad81f25eda07690fe7a0466e4" + - "d18a2fd145dda1c94a994bc4ba5ce1aa1b50c38151febee757afceeaa91c7b35e57b90ff7b62efa929dcb962d32dde5a0bc3159524728621a3d7487eb7c3edd8" + - "6df3f8a18e590039bfc84a22b23b11468c90dcdc8506187233d8a6b3dc9785ddf6f341709fefccde91a7a0925a8446b1896aabd6a6826ef88b756a9711cb3b78" + - "1ab1f4df4d0515070e41fd5b0c5483270307e60eaaaf0b3a48f6bb96eef6141075445285675bb12f2ce38b42c91c1e063400d7bba9b322a0783e7d2f5d3f8874" + - "52ceb65bdedaa032336d969d2e0e3007d2ac07bcf054b9d0330f2e26c486c054bfa709fdabe283ed9a4ae67cee24f40f2a5c4e70160e6ceead208ca400959922" + - "70bc35be104c9ad94cdbe288b1c599db1758331340c9e927bc9d688e4186d5badd463bd3ba116bdc22a39c604778cd95503ce4ce642041e89bcdeb86fb19ab25" + - "e1f94ed2a2f857b228ed4a582ad411d7273a0d5189bf7a2b87a135753e03383033b989ea532041ab9ed397ecb3ce61e01923b3729068f6828ffd12e2ab1d28db" + - "6ed7423d458decb00476657a0580b4af3aa5615bf07df55beaa2bec71447aeb39791477dd09349bf573e29e9c4fd454b4bbf1e19591bf38dc47c83bf39babdc8" + - "737d69ce4b586cd10ed406426b88e686c11072f04c680e8b6275166e2dbe91f701642b1b4ed92d23d6fe14f39ff7f5a09401f3a398eb4bb742f6cf10aa35e767" + - "7e6e92aec791e94f8122e8c9cc9d0bc979e3eac6562ab614ff20330b00d9cdbd08e9deaeaf5cd67b49164f550c5f5c2d7523fe5ad71a2bd03fe2a97329980cb3" + - "049ecf6d677d815e56f7cc27407cf73528549ea98265ef90277c14763d5acb3572f5a482432cd8288972af580fdd3418889bfa6a373c4813c4c45e933ea4ec72" + - "cdd068089c2a30897dd57031445834de9f23faf506ad930d843b1cabad2c0aa8965d1b5e57032c969f9f55fe2a3049f4e63d5b5c6f5f760da5ba44e3bb9307e9" + - "ea39973d05a74a49e15bb71eaecf62373153ca316fdd40b1c64ce2896c95a7b5df970c2bec85edbd5ed84fa7949c08d5ec4d987052fffe357d444e2408a22295" + - "6ac1fb272f5023740b381e00dae9f09751a33bc6ad673c4221ce3f932164deb99f1da3eb3581caf475e385bcc56d47a7a1615a9543403750f0121d5482c4ea5c" + - "94fa3428178f6a4deea08d754ba2abb3d1aa48c3e06f06ffcdf4571579d398cd991e60599e9633fae6a0c07e10e538aebb7d33aa127c830f14b083728f6ad7eb" + - "c9a60a0ba222f47780eaa82a21393a49defee97aa8c3aa2fa53a2af86059a7587074128c2fee7060f398ae70b156d53aba0bf1af4bff10a966ce7e6382cec4b6" + - "054a8f6b9ef0e8729ee182f86c862f9b7d5ea36ef7e15bed10ed41b25738c380e58cf42795e3202749074fe5cb6e8fcb49a116f54d84734a834609a3443b8b42" + - "97c05ced428f5756ba59bfc1535bc7e16d370d81b72b1f3f78ba75c820b22e485dc042e4f38e93cc2918a491750c92998f03aee571cbe9abce4d00fdf9801f9e" + - "8e0fa276822e1e5349945f1d337e656b431c48c1a2e9d4142ea14e9427881bf201ad8cd8effaa6fe6a7e07c8112299db1b327a0cc34c9fbd35596f4ee25caeee" + - "221afad93ce7df64aa6ac766cf4fe1660446dcbafdfb86b4e0fea78c29c3e84ce42da4a503178bd250a6dbc4fc65e397062229001da05d5be118dea7ca5ce67f" + - "b4ee07a8b01e408aebef2c913434921df686a242b7d015a559f9efdc54ad62d7f31ceb72463041843d7fb60f948fed03ff143fe24ab81bd4ef6bdabb856ef1b7" + - "174cc987436322271bf48423114e05758a08cdbf300931fc7e950830b7ee920f7033541f1db9b0d2b91cad80d06c049b05fd0a76d6dc211bef2a08d53b1d16d4" + - "2232fb263941daac4e004542517807341bde98e9990a97739ef86d66c7a51324f1f6911cce4c3db37ebacb6e58eb02d8f7d6ea31338b56a99649c4e730a01bca" + - "deb6fc87cabe00addf1bf76b83927de26bc2bb3f0cd5945d863b0c31cfe8fd4b60462000a911755cbecdb6a98139041d52df498aa99aa3876836ce5b5bb426e7" + - "c22b5977902e0b3425fdbdb8f44e8758b207b469c3e5363f552c89fbf778e95e8b7ff6566ab591fb68a8bde38d8169c708a321b669c08d9ecf1a06c5321bb1cc" + - "9c8a585b6381645edfbd1ea4a2ad7e7eb8be6c431958add393c0a257aeb283644c6fe97580aef613f1b9d83e5b009f7a4d059025c11e0a0a67801be511dc097e" + - "4e7c065684effcafab83e0e716e2d0862e83b295f82089ed3ba4f6897c8d8eb2b358231f95eef840e1fe22e9065de2b3dfb3633e2968135756cd9c109e8acbb3" + - "172bbb6680c2e4fd69e179916a7849315c9f4dc86991d75cc6358617454694b3fcf2471ec7fca6ea2d99f704b9aa37a25a3b3183c5e32e3711346ba2336d6001" + - "489afb9cbd8822dbe4f0323ebf7cfa9367b6548213d473c0f07b1bb6d16e1c66fd2bfa1ca623e03149fc81eb6f71c12e7b4b76ca588548bb4872469687f334f9" + - "7e114a16a0a58ec70ed74ef69dd96666a85aa52d1ca812235796d90b9af4296247f4c1ab632effeaaef6acbb637f1aa9379195b3b668ca541bc6eb595bbc430b" + - "28adc5d1a26fd4cc2239516ac9ca9c0c028110926a2f88881a5886554c31539f4c8260e16364f4ac27710d2becdadf573f4a2b7b55d76ef059432c91c6f5beb1" + - "56686a620bdb4aea50df564cc0c5ccd8a93c454e06b8969a0f59d63ae5a29105149c08a5de65e87b0dc445dc5d86db8788ba77b83e22125c69621140d7f17906" + - "4ec0157a877cc51ce3c0d565bdf6c884f69b0ca631d6863770f6db30eff847e33c8b30d5714668a38a09f454ee44ff2b7f97207f10efcba74325378f6f272ef9" + - "9f09c501c12bd0a4155f559a604204b36751ce8d4c0af35a8b445a9290c305d5d3ea21f944e31df9a711ee90bd16a37850e2a87c3bd3fdecdc6e2f261a5d6d0d" + - "580990fcab9228cbb39f8c79608d821ce27c10b0ee0b5a96474759f67970cbe03cec9fe594765bc935abccf867b9717a4087465c8604eae89497c8ffae7e46f7" + - "ade2848916b54aa796809cb98a4364b7b44c17944dbc408909a92d4cbb24a514b72fe8de7d1cbba0a101973fa9b29d97dcf1f4ed8a05d5e0cb38849dc6e2d041" + - "16892ce649e0a553a727bfbb1d5794a059d6a411e43876e561d83bd22c054680cc8fa928f5f4be2d849f02ddf9c6d11ba35810b81553e1938ab013663f6ef35b" + - "08f06260932d7acf99f57967eec57a61f03d880c3225e53102a672f5842da21aaaee02444d372ab8ed7096235a4926e3288912d9c736c2c4dc49918abdfdd6d6" + - "d0df5be0133abd61b02a6f008909c5350f9077598ab2e612603431bddd3826e314feb280585b37eb89e597f7f0bdb738a9a93d9af224659d50c8f7479b240487" + - "76c2a960eb18923fa2d3b31b3d20ef538759cf22f5b415d19bdae689f2bab651d79ff99f77a721bc1b2233da12c12be0c9881ad82fc97a6343b3af8207dda8b6" + - "5c600644d741b8a16750964e341e060260c4de26f991f3a1f6a606d1153565f1c9cfee58eef327edc0e9cfaa206ce930b191f521be2344949bc75d583a413a96" + - "ee4edac424cbf9bdad2883c96a1306b96ee059d8044e3b7af4e7138697f142774ed6409a86a3c6c456600d4e405e6117ec759f4b22d7e5a185b0f9c67ad987bc" + - "58d2e8c929d4a487e5b77201d7c1416878e8d63258b2f58727cb631494cf1d68b99c28493b99b0409ccc1f9c218a2b95c45ff36563f0045ae5c3098f641ea6a9" + - "b48a3e1489831b2d176a1e0cb2afe6bd8cc5e797de01391e47e798c1aa945d33d5e7dd607aa73c9efe93f0646adcd7e211303ac7deea4d02c80370e8e867e2ad" + - "9942bfd5a66143560a1f59e5be1f3aeecd7eab689a4a481aec78045ae0604f69d9eea550152f6e2bc692529357b509d60e5a497bd94e63dc698cdfa2a3a55976" + - "0b2d072a2fe9c1fd41f31518aae0edaab532591476a9c5a61cd76937575cef71ff5dd66e158e7820b4b6bff4067cc26ee9aa66f41b80f078645b920512b5efd8" + - "88b3644601a72e3f665b9c8f0ee246593667379b8fa043718f2d75c21d2a11640c328971c32d5743c11ada6c95cfabf1c6b66e0b09342afc899e1f272ec48a7f" + - "ba5a51943763bf969cbac879363e14dad1952517d8f4b463511adccf25e655bced7cd9666d01dd4f2a0a21729ac4f44970c9c478a995d1c3b358a244110f1db9" + - "fe6335685701e0c2660ae69d33a93a75e44f5374b979a5af140200db43ff612be2728548192ebfd0a3860a9e135b910fe3fb249926d334167622bf4123bdf0d5" + - "38e9ff2a3bb67a44f8407328e3c94b47d92e0401aa1db85459967699804df245a7808f972683afded9cad8fbce15c1be38fd10c62c7abc302eb0537d5cc573ec" + - "245513a87c1a8d386f7ef0c4a91ec3c602b14a14ae395da13284df3391b929c7379e181c5d3d4597e3c955ef6e3dc2fc55890df04785bdd4e3fa35ac775f44ef" + - "9d7813cc036d6bcc316e869eeddf7b30e4b837e9285eb20397b4d7e0d12080c502c750268bcd6ffc323cb094afbe8304ae840d37be833878697f2cf931faf06d" + - "28dc6c7e1b5df69327127b47eddd0237f1bb5942ee5903d8cbfe1b11484199e90fe7c8e7f2f725deb2293630bd8c8a377d539736e2ccc2b90c08b97abd8c5ce4" + - "ea91a6219ab06c61c31eb48a35587b3c1719f387bd8c2063c5a79d041ca8a9ffac2e3c728f74efdb74ee0730f84cb3a8aefff7c8a1b570127cfc93eb6d3327f5" + - "ba7f886dee8be0548f710d6bfb18cbe5910bf61aed2c95028006f419241d968933aa00bb0760a41d2693465827a00837a84cadaf8a8e804d175adc5915c6cb6e" + - "fefb2cf70db063f2f3812da17586436c176aa0a815dfc7983eb88bfb1b6d1db7ab119cd3058c0db4d1910034f70f6eedfee8b742ea45af9780f415be2f851061" + - "313a218ad48e992b75afaa07c33ca47ee0155fe72e13d7e5736e512c5e5a45d351f7c7902d8b0fa31b34569a9aea31b018d63d572a9898c389d07caa427f114d" + - "251263d56cf5d6663159c2b32683b266fb909ba9d4caadaeda6700c03b25307cdea597a3287fd76082dbf33f073482872fdb494b892112c594d7f265d2799b5e" + - "5ec46a30fbf1557fa344a664a7af457a4e8ce2c014a270215d3f95d47a42d8f86a61d6d6b363d04a99a0d8f06c5b15cd803d951aea0ca185a807ca4c677db789" + - "fca64f0c5ba95b8c64f930eda658f9f773a9e1c8669589a7d98ade8dbc2c2c4cbbaf6ea2bbc6e762d4098f4db0d3f055958ae9da15ae57ee0b60fb9513dacf5a" + - "d65e34613570186acecf9e165bfa470aabcd35f22620497fbcabf220c53cff84eec12cf9965297b364f0e9122895c175d213fc2a9c9cbf27ebe1cf96fdacaf1c" + - "1c79ede66cfaa5057d33e09b31b43869812e5a0ce730663c18c4333141ae9565e437d99ade6b2cbe005214e8b3392c55bf4d7b38ef16e7f84b4ba3c85e1dfd1a" + - "ca8da1a5c75fd190e7752926533327880aed1461c7e9de2443ba0a2d094f4a14d5fffd3b102ea78acd34d162e82ab78fbb82bfbc8a9708ab532aa861643c39cd" + - "2bc89f2be53c583f9930fb2da14f1c5d5f218384b1740a76bd8b7ddd2c9888c8d7e7e78cc7a3304fa41995c7c1c3316894296caeeb9711f0e6bf16abc380bd41" + - "10448be3cb03cc3246ee7b9559c858307001033c84ecf89690526544c05c146f206d4a21e710597bb57759d232154a1f9d88eb3f3440374bad1e901da7a154b8" + - "39a6d1b1b6b2ab0be872ff036a9f9f769a169fbf91bada732d8f28c453b9be49011b211155fa5c588b43018775f99e3b92b322a4c41282326b79fd26541ccafc" + - "c0e2f09797e3217fb0e5785b72e654dbcde8ba14b2d56faa2218748c6789c158bb635d43c9a64690b004ab70f457e9fd959b2d90875966968c7ac44b103283e7" + - "50b60deeb1f89444aee25fbdb7fa3a96d70c3dce38246f111e466cdfa3b807c54ed584f5b1a64456e923dcf37f45b36cea3d602ba3a55a4fd883ebb6dc198650" + - "b522461614656897b9b7d408d48b12e594af06c91f715b32a4ed65a379f0ab461acb9b8b20d1f1b12e9f7fea422c0c7d545eff4152e06002cbd120fd74b483d3" + - "a0ee30cfd851c98e9aa8fb19b60528de4a75b412bed656933ae8ab600aeaef5befdcca4d35fa472ed38ffb91a9017c19c5d500426f262ba379034c45cf5d1627" + - "48da223207721b4bc4504b79309f3d622c53dfe3c83ff8866dd7614a2e90a85c077b2e18bf1cb6008f0d785d6a0ffd5f15a83a343036f3fdd25314bfe47b5a12" + - "58a7c89475f39a58a671d0a17f6fd100a8928181b94d8d53149316d5addf14bd398b538e2593273f02cf296fd73ff92d02230de939dae94e03d44ce93dd4dfa1" + - "b9219fd369c854ec409d7bf94b316e5e9c16e1ba525a783e24bd3fc0ecc949be245c402efae8ea77aaca74c78703506cfd5a5a614793e04c76652b4f344f79fd" + - "f2da1e34f650fc1094116ead723813d204ffe375d20707fd94d90f21c009194201c88d22afaee83a8a6be7518dc915331b863664e033d397c64e1516c0fd9324" + - "11614a1bdf2feb86e0d0ae21e784a55086c596c7eedd44d3afd7295455450f507f1c1a33c9ba94d50931ec054d8740510ea23990c266f30678a74fdd485b482b" + - "cbfb4070e3f10b66c65a4210794a3137adabe887ffb9bcf2a30c625138f840b2666610e76e5a0abc183088a94930c025836653eddbc440621bbf94761c74e108" + - "3672c6a914a753fd452e8e7a02c54b21d7bab4b705b4509b9b5b27e2e5144289eece950c3634b410b5e3cf8c5a5f74d98b55d17d45d7014390cf696a7e693777" + - "4c028517062a69276910cf5f139078e8ef6e77aa8b35aa55fd4f53e48ae6b4875d1732b286ffe8bf852b73af7b964fdf1aa4c4f16d9f14485a2b1a704c2615ac" + - "8ac74eaaacec7e8e4e506e1b418d377e4d5a271dfab47b3d3c11a809beda596fdf37935dfe06c147dfe7d5be696ffb2a0cff907d1eb2a88477c261d5a7aba06c" + - "d70dc52d00b9a9d851e849f86e1cba91b4c40d1ae3d4f21a2763369dde34d084adfc09d2a6cb5f09114cd8d6fa26d15f1ec428adc245064e5b8e80f21b0b3ff2" + - "6690398d3080f5355fc082bc4bf3a38576c7da00efbc80839dc9a06fab2b998a152553c36fab42e03e3e4b54456ed954e53bd63902d89e2617a263e70146d1eb" + - "71557baf43aeb0a681f600a784778c895afce26fe17e3ac33990c54cd96fcb2432de79d4f95ab2fb96effdd37f4e4247ae5b4c1fa461ca3269d45a90af090333" + - "fc3ab5152bd5aed4445eab93466701382ba76fc8745abd911bdb45a494e1c62647670380c04377bcdb5e631318dfa79850469a988094acd48a4110bbc7289617" + - "ce436294ff242302d154ad75437ae2f551df5b84f884c87497de0bb2ef7bd41a8c758e4b158084c78ef047389d88974faafa00ce7396e849509d39c403fdcca6" + - "8f47e1d0fc294e5510a07af24c165e1a4b4ba9498e7b333c4e8624c552801079775fc684b6e98b72ff133164a2052c2aadcef168d9cdeab8a935c98f08e23b95" + - "859277381a2ce23ea61fbe9ec1439a489523161ed370b0069aa6a5c7981e4a80c04e304ff2fd85f80b51e3de3484b53084f376cc72a390aaefc49baddf4d2545" + - "93dcb5a49326c9c15c3d1c0e0709c9879d68bee07b956d018a995bf1e7f8fa03ef2079d01e0bec601519704cced98854c94f1f0ae837653f14c0221e12f2cbdb" + - "1564066062bc1d4dcf7ed8b2c980b90e8101842d5844375cb370f402d858dffd9eb52572f8420d4d246462230ca0dbd567250e4f065730a6aecbd804b1acf949" + - "30e2890a39fdd4c1eb693f7e345504dbad5ac207f1a649968c3a7b416bd972b6a6bfde04375337a93b0ac08f6fae62c0fa7df8ae9deeee421f7ac62d8cf5ecf3" + - "b5ff39877ee4abaeb9db03d8a8f13f7925e54267a2651c55ecf580d5cbb24bf504fb01291e3e97ad1696ed995608fceda79f2441ca67bfe3c31f4f4bf0fffcd6" + - "55408744524412cd4d3cbdbdd216694aa7477e88b25f7efeb34abf491a50695ff686829a8fea9e999877bcb37291b8dbeeddfd44465a2c28a215aa532590c487" + - "d4747b6ece4e1aeaef725cb305d11b965a9647bef36a5c2fb45cc334d35ff4e308cd8813b6de3953b35a4ef6a3ae07794f8b54ef6365a573135320612bd1acfe" + - "6cac5524c0e98b6f2a33a790b94f5134f0cba075a6fa93c191f4176ca62ea2e365557d6b3363a17b9ee52f3c347c82cd19f8432d16a934ae9c5d4d4505e7d20e" + - "1ae31bb64ccb084f7a59744b27d58c2388d449ff4b63604878ae858240348ecfcb51761678265bd60d5dd7d51e25e91668fdf80f6b726b29ef6c3f0f229d8af4" + - "b2cdadc3ca7fbadab49b28819b9c9b92b49cbe9a281e5891f4eae7616013777605a0623dd7a650baf9a9dad66ca9aae3c76ef1e27db32bd9514a2776eb0c8d05" + - "65eec06fc4c8a69c417efa336842e248e5a51e3b5f3ba3227e3f78f1bd12d81595e03a01f4259c772fd481ab5f3d7a945e1c95fe0dc3c4742eeb7e15c9426ec3" + - "ed4c90ee07d56acc78fecfd7c5ce1e04e7db1a970091f15c90f0aae2865d135395d27787aaf68c6a179064d82691e0b6c795f61875f317dc6d2e8feea55a28f2" + - "461d74e14e350351720b6f536adfe3addd4111f08e3a84da2656fd4bc83989b329b383da9f01cf2392aa0b19577884d1281f2e6c106df451c078a472b36057d3" + - "065dfc4bbb47ce4e5dce4acf6da095bdd10322f3ae12bcdd1f805e73b303f1fc7a7e16cf3ffd822bd8b25fbc93be065019e394113182713f1ad299ae6537f6bf" + - "57116e8dc9ec775519b797ab4107c2ac5129ba85188852c3bc5f116044bbd8985b6dc8b8da4659589bf9d2351c4c3adaed87fe2ea20ef6bf62224c7af86fe8b4" + - "973e558f39465dff43bf23cf1f78957514e4e82a3009d40d97bf8d8442a11deabde806e2fa84c1ba75273da75ce8dad3b2a34786b2958ac4bfd248ebe604a173" + - "83c727b11dd922b1f72476af700b663fbd7033d0ac74b463d40a92d26c938b69f96fb4a9cb7a9ca2bd9496251270c0c5fcae6b3c2eda5377b897891648a97125" + - "8ac71fed8dce8e02c30961a299cb7f3145845dbe8f4dfaaaf4baf0ca3fb730abdd258e98215f072a943d5aee8d8bc4c86023524f7b69186d99ad88ccdfc0b4bd" + - "7db422bbad7eaa0824ce24b5c186e172c8c584f1cc5c126c901a69ebee8dbd230a653a3643b7875672d22fd86079daf8d834ba33664f5ad0b6eec767b4f58b45" + - "e67b776b90e0a5e130aa5365003eb7fd78b757b1cf9133f6a1d51064b293cb42c8c41b15b7e95e2a39fa5dae19c6e20031d2bfa4632c37779163fdecc6b45624" + - "4d6bfd01a8877f6fe7739591917a86e7dd795ad85cc3f256cff5961e8b62e92a0754a51f2c6d59819446eec8bdd08b87cf9f4fb5373e809d52240d2dd691cd50" + - "37fc79d35b61d63851917cfdba164868a3f79e2061bd4610c1f5216ed77df00baa75f949ad37142db4fd282a5c7d2e2636ca590f92fc4781d4f51efa69f53947" + - "d4fca1dc7dd2429837b6d7e5c9528effdecf6f731f676587785e5c4096bdb6f1f44e72f5f77d9025813e848881506f65bfb0f2b2d3ae6f9e00731929b5ac083d" + - "b1c9c324703e63fef6319e1d8150aa0ff7d9a2049961df9158f3e1f2e540a91feb742625d2a859a452186d2ccaa3ec2ba086ee0868a4dc24ae6818fc02f9c1df" + - "dc326cc31c46feefda97265238592f638968627ec24903b97513ab05ed58ce5b516decda0e2fbf01a70e6cb2e53c3e7b8855f80cd7e007b78da727ef0893e099" + - "592ba684d62ae2d1f06ad148fa7f34cfc724d804149cda21aee7eac064ad20d29132b260c2c2867fa6a2e747739fc30df2f002c2a99da6c7e64ee51e806af7d9" + - "768aec456b93a05002666cb61b2229c99f2cdef9afc9cea1c4ee3a85dd189823399781ee33cde2abedff09c47960c035e075a29156005d75845a11fa06abcc50" + - "5f7f849a0caaf683f334e9e7bbbef90fe6cf94cbf87767219440d31713daef6ad1e4a1cc720ce59fee4cf7731e46bbba9ec1648908ea345030aa8f10ade10ffa" + - "3d2acfd480b0b11eadc4fb2b740596b204e911456cb2f35ad9993ab7dd6a48b35ba0c207625384bb3c2ff24437810bd13c7ee96cd6f97f19ffd537ad182a3657" + - "b0e83d42fd6e2ebac6cbf5ea1bde97465b7cec6954ff5b5be049e59a49ea25ed6667dbace765401bde12031e5cfabf2df7afb728d2a0b2a38b24d79bf23a313c" + - "40fe5adef97487641c6088dd8712c0c352708e474b02c08fd2d71b6d44f16d82f291ccd61c43a339408379a8de54cfdbbae5e421e084112fbc17fb5561e084d1" + - "4149bf4bb06fd161878d8574f856867cff974d5898e161923d55bdac8699c9df6a220bcb6c800d3ae7f107b8c4acab206d780aafaf6c2e2379de8c900700d9c9" + - "c87d464772514c5aa3e5f5bfc00fb54f2b74702838b4731c5ac8a070b50783e81dd97fa8d55c739d026b607a2a78aba1bb79b1a7a3c22c78368672ac020061e6" + - "d9683d57d6989c6c6f08b8d5d74720f5cb25505fbe81d2bf53a68e972a54784705b20f83fd1ab5afff30764ef89dba4465b56f48b325ab3810bf8dcbf4faa61f" + - "676e2043ac8540df9e3af4c0f51d816e89c09bf67253be45fc5f75f64be97f6c7dc0c6392af6fa8e75aab58eda976b36773cd37d315771400a2cb846fdef3d8a" + - "a15bce5dfda0379e526f87cf67767a2ab93d41c85b4ed016ed0a89d2f94737433a3ebade813def29eaa18a1fb925fca7d08d1020f64caebc562cb4ad2fb241e2" + - "94923b2f2df5e6c4953c4b73be0f5568defe57ce49d16e2a205323e46cbb5a3e77fff1557671503bd7b5de5320f1fb951fbe26400cfa854af2d12fab0215310c" + - "f070add34dc4565d1757d7e10a03e3bb73a607ed7e10861b1274ddee76183cf7e56c1de7162c805c2dba0e0331d36f3a4e2019a2e0705ee2747ed1e52bc3a6fb" + - "3b061f784348204cdf8d643ff6c271fa72b56900edcc2f77201f3bd4fc296ad6534a7029ea66761bb9a3589a1f6ef566504c70297b98fbb603214fed2e4b7ca1" + - "06e3f0e993118897fa641fb9722d4667fa98d07a6837e5ab2144e5ec1548a7dbca28c559f2a9a99d54b8e55f56d0e59bcef1ac45e2046835b60579da0d2261e7" + - "30dab9009d138421c6458d146e870358b0b3fa20257e50b58f167c6b47edf7053513d58f33547d06ce52458baaa4dcf15f77b103565c66a81f183c827801b455" + - "b61b6287a46a37a96884075a7eada9ba7f0ddcc14654bf87a26d2e27a978b415257773796923a220e06b25af16fb5aaded9b2d081a4c64106df460ddce9c3b2a" + - "c8553e1521e501ad29a4b7f7681c9b60576a127087a5237c4c2bacf9b163dd590e63f2bc80e7f1e613773f87d034313064710404739d63363d204be7b14800c4" + - "d8c1b6a2a21da70223be51d281fee302ef806454f9d7d28244ba537c1d9f8f1bcc5d47038d986a8f95ca48437ffe94fd44a90bb03014a259112a97508adb3db4" + - "34f72a5268c1af6bc6d5801e579aab2228ca33600ebbf1a1959081c3a4ca99e444f97409f5e0ca4779241c9aacad1f4ee7fb4369bd6ae076378e4f63000b9a5c" + - "849ba6e72e47e2454a44659149338ac0767cd25d8693c0d143e354bd600f1c1d3a44eeb024923ea659060665d5cd9a4ca1ca86162819556535fd59b9fde90caa" + - "29920efe99479fe7e4b4e5371e13ccb43a1419cf023433239d840900d31bab37fabc3fd20e31bb7dbcb3ae8df66f67e2844944bcf544b658364f9e3d0b6d84b4" + - "63ad4eb621644fd7d774b501407a1178814b15149345d551b474347188067db2ab4d7f4d1abd3027133039e855e129f3f5649550da8c04fe2db57cb89bf1bf4f" + - "72eb35ccfe31afb92f6136d4c2a1c115b07b721b2da43151f11c356256230408979c5d95243714429e2c9500e7b043b20dac8a9763e5b487d1cbdb34ac379b9c" + - "6409454c79385b6e562459c4fdaad1b7f9297c1473e9b90fffe6d1c5390e241a187a4cefa2eb0cb0c11f4ca6c5b961c18ceb57892295290dbc991692556bffa3" + - "b8c405cf285e6bcb8a90246ad0ac15122f4cf73adc129d23aa2240733404beb6d74bf698e5589288a522573c774ce9f514b5d5c086382ea1dd4e89ff5facbf23" + - "d36bc3d203941e17747ede4b82820351f4df278ddb787ce8f6f1cc468ef953399efb072ce706e253f1bab76444bb70be6443cd0db633e958dc57bd223e00418e" + - "915a7c2e4d94c0623f9788276480cdfe798387d35e2ea2d304d066aec7627794cdd4200a44208d6c87f242c76e2d4a3f966b6fb96eaa63d892c1a177bef249b4" + - "fdd1a4c06c791f677dd9919f739ccf318bd77835330b0219786249c9c9736161dac771a838724f2dd70afba46a6782fd27601cf8a7126ae95a66e526131a68d7" + - "7a809e513533ed8021eecdbc5851dfcf95e10f1bbe47b5c7f079275a1837836245266b66d89fab25ac4bd6c1225560bea3259b67bf50a58ee056754d574da79e" + - "f9a1a0df3a5defed0f74fe74ce0bf65a04086f17e94a8451828c723c97932f26f9349f1a2c7866c617a528602721de4f3cc8916bcfc66cdc106bafa26ea87a13" + - "94dfa37e396365fb7f92df007b46a50ff04c7f85bfa679230ebedf18c2fb876fc7098dd1c4328adf85de71c31d94687a308053bfcdc158cfa7772170fbed63f5" + - "37dda41f65196dfacdd1186b5de0f3369d841ce6502192292d05a19ce7464f5bcab3015c721cac13ddca561b92dc1ee25d3068dc1945a1b4e2bd1e6604c42e4c" + - "3c04b490f6365828957990007394557854a903e19feb06906e41cbc8766bf37bd7dece90f4cdc987709b1129e84bfdc502543b5bfa887bf78553a5ec10ad68c5" + - "d10eff75f7aa495e7d934a55577fdc0aead31aee4522db0259d7d4ea8438a7996d80a787465a2980457193d1c4bf1a0a1e01741d72e5fc4dfe58475c1c01026b" + - "5a3bc973b902280753e9c3226db9cc778e2506c56ee86ae85b4d54dbf05394107329b2d1ee56522cb1ce562fb1aa4e592199d9c29f64cc3ab1d757531e209eec" + - "aa138d8388169b5e28c45f5aba267eeaa57f69869f0b6855d82b0eafcde63895251f41e8e676a0ab12ef3f569bb7de91b79fa46ad9637da01ca004f4d30259c1" + - "f5b00761f6ca9c17721a6718390624a10a11f7f52d7afb71ee5f8338828910e48f94a1347761abac87897b2dd0e23f1d325aec5031ef58f2972e8b402e05f8c1" + - "ae7053a90380a1ae0d4d06645548c23e13afa31aac8ff83b10f8341418af4114632f6406d6e33076391696c9161d63c8bcfd1c625fc737f68198046212d1638a" + - "d2d2d42ff7029c1fcc682a046edc4d4f24862d82c600180b1e8f57ff6a3865dfe9274f9886d00efa523a1b3b3757c4489200fec3dc5583854c955492336253dd" + - "767f2a60ce3d224afcff9cdc19e9b28830d33affda6af99942a8fe39562055f3e884fd6c1ebc1908ac159061f35e9b0da80434ce9673d9c6b87265170077c670" + - "743e37474d7605cd01c44af600f16d9ffaf24acf87fbe5ccf39bac41047a810d210051c87f06147a0bb8f1427a406700483679638f1af23f1dafb7aa0c468669" + - "71c3a82f535c26cf6cb335e8e915fda393799d3dbe0e04b907ed3612d12ac95783a6876cd986d2a13b82192532e02c250eaa42f891d2481655fa4494c723fe00" + - "87d224444245eb5b0eade5f741b025db1992a8ad0dce51b0c1af4a18a9e244f9f755891adf0f19179c7baa6c32bffc91e0b03c4ed3aaee1978b6a1f03b87ac6a" + - "fc3b9e7030bb212b17de198edfccde29d04224798c1204e47ea235f048724fac62d637d1ba0ee3922048fcf79c746b6c0c036d882e3491fd72bad6e009c6403e" + - "55876f4d31330caa02aedd0b0c121c3c41e736853a08071f0dd4ddc7412db0bbe274a9ac2932552bb37c40e72c2ef1d7cca8236942e480d709d3ea9d5ae0a1b7", - ), - }, - } - for i, tt := range tests { - cache := make([]uint32, tt.cacheSize/4) - generateCache(cache, tt.epoch, seedHash(tt.epoch*epochLength+1)) - - dataset := make([]uint32, tt.datasetSize/4) - generateDataset(dataset, tt.epoch, cache) - - want := make([]uint32, tt.datasetSize/4) - prepare(want, tt.dataset) - - if !reflect.DeepEqual(dataset, want) { - t.Errorf("dataset %d: content mismatch: have %x, want %x", i, dataset, want) - } - } -} - -// Tests whether the hashimoto lookup works for both light as well as the full -// datasets. -func TestHashimoto(t *testing.T) { - // Create the verification cache and mining dataset - cache := make([]uint32, 1024/4) - generateCache(cache, 0, make([]byte, 32)) - - dataset := make([]uint32, 32*1024/4) - generateDataset(dataset, 0, cache) - - // Create a block to verify - hash := hexutil.MustDecode("0xc9149cc0386e689d789a1c2f3d5d169a61a6218ed30e74414dc736e442ef3d1f") - nonce := uint64(0) - - wantDigest := hexutil.MustDecode("0xe4073cffaef931d37117cefd9afd27ea0f1cad6a981dd2605c4a1ac97c519800") - wantResult := hexutil.MustDecode("0xd3539235ee2e6f8db665c0a72169f55b7f6c605712330b778ec3944f0eb5a557") - - digest, result := hashimotoLight(32*1024, cache, hash, nonce) - if !bytes.Equal(digest, wantDigest) { - t.Errorf("light hashimoto digest mismatch: have %x, want %x", digest, wantDigest) - } - if !bytes.Equal(result, wantResult) { - t.Errorf("light hashimoto result mismatch: have %x, want %x", result, wantResult) - } - digest, result = hashimotoFull(dataset, hash, nonce) - if !bytes.Equal(digest, wantDigest) { - t.Errorf("full hashimoto digest mismatch: have %x, want %x", digest, wantDigest) - } - if !bytes.Equal(result, wantResult) { - t.Errorf("full hashimoto result mismatch: have %x, want %x", result, wantResult) - } -} - -// Tests that caches generated on disk may be done concurrently. -func TestConcurrentDiskCacheGeneration(t *testing.T) { - // Create a temp folder to generate the caches into - cachedir, err := ioutil.TempDir("", "") - if err != nil { - t.Fatalf("Failed to create temporary cache dir: %v", err) - } - defer os.RemoveAll(cachedir) - - // Define a heavy enough block, one from mainnet should do - block := types.NewBlockWithHeader(&types.Header{ - Number: big.NewInt(3311058), - ParentHash: common.HexToHash("0xd783efa4d392943503f28438ad5830b2d5964696ffc285f338585e9fe0a37a05"), - UncleHash: common.HexToHash("0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"), - Coinbase: common.HexToAddress("0xc0ea08a2d404d3172d2add29a45be56da40e2949"), - Root: common.HexToHash("0x77d14e10470b5850332524f8cd6f69ad21f070ce92dca33ab2858300242ef2f1"), - TxHash: common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"), - ReceiptHash: common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"), - Difficulty: big.NewInt(167925187834220), - GasLimit: 4015682, - GasUsed: 0, - Time: 1488928920, - Extra: []byte("www.bw.com"), - MixDigest: common.HexToHash("0x3e140b0784516af5e5ec6730f2fb20cca22f32be399b9e4ad77d32541f798cd0"), - Nonce: types.EncodeNonce(0xf400cd0006070c49), - }) - // Simulate multiple processes sharing the same datadir - var pend sync.WaitGroup - - for i := 0; i < 3; i++ { - pend.Add(1) - - go func(idx int) { - defer pend.Done() - ethash := New(Config{cachedir, 0, 1, "", 0, 0, ModeNormal}, nil, false) - defer ethash.Close() - if err := ethash.VerifySeal(nil, block.Header()); err != nil { - t.Errorf("proc %d: block verification failed: %v", idx, err) - } - }(i) - } - pend.Wait() -} - -// Benchmarks the cache generation performance. -func BenchmarkCacheGeneration(b *testing.B) { - for i := 0; i < b.N; i++ { - cache := make([]uint32, cacheSize(1)/4) - generateCache(cache, 0, make([]byte, 32)) - } -} - -// Benchmarks the dataset (small) generation performance. -func BenchmarkSmallDatasetGeneration(b *testing.B) { - cache := make([]uint32, 65536/4) - generateCache(cache, 0, make([]byte, 32)) - - b.ResetTimer() - for i := 0; i < b.N; i++ { - dataset := make([]uint32, 32*65536/4) - generateDataset(dataset, 0, cache) - } -} - -// Benchmarks the light verification performance. -func BenchmarkHashimotoLight(b *testing.B) { - cache := make([]uint32, cacheSize(1)/4) - generateCache(cache, 0, make([]byte, 32)) - - hash := hexutil.MustDecode("0xc9149cc0386e689d789a1c2f3d5d169a61a6218ed30e74414dc736e442ef3d1f") - - b.ResetTimer() - for i := 0; i < b.N; i++ { - hashimotoLight(datasetSize(1), cache, hash, 0) - } -} - -// Benchmarks the full (small) verification performance. -func BenchmarkHashimotoFullSmall(b *testing.B) { - cache := make([]uint32, 65536/4) - generateCache(cache, 0, make([]byte, 32)) - - dataset := make([]uint32, 32*65536/4) - generateDataset(dataset, 0, cache) - - hash := hexutil.MustDecode("0xc9149cc0386e689d789a1c2f3d5d169a61a6218ed30e74414dc736e442ef3d1f") - - b.ResetTimer() - for i := 0; i < b.N; i++ { - hashimotoFull(dataset, hash, 0) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/consensus/ethash/consensus_test.go b/vendor/github.com/ethereum/go-ethereum/consensus/ethash/consensus_test.go deleted file mode 100644 index 675737d9..00000000 --- a/vendor/github.com/ethereum/go-ethereum/consensus/ethash/consensus_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package ethash - -import ( - "encoding/json" - "math/big" - "os" - "path/filepath" - "testing" - - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/params" -) - -type diffTest struct { - ParentTimestamp uint64 - ParentDifficulty *big.Int - CurrentTimestamp uint64 - CurrentBlocknumber *big.Int - CurrentDifficulty *big.Int -} - -func (d *diffTest) UnmarshalJSON(b []byte) (err error) { - var ext struct { - ParentTimestamp string - ParentDifficulty string - CurrentTimestamp string - CurrentBlocknumber string - CurrentDifficulty string - } - if err := json.Unmarshal(b, &ext); err != nil { - return err - } - - d.ParentTimestamp = math.MustParseUint64(ext.ParentTimestamp) - d.ParentDifficulty = math.MustParseBig256(ext.ParentDifficulty) - d.CurrentTimestamp = math.MustParseUint64(ext.CurrentTimestamp) - d.CurrentBlocknumber = math.MustParseBig256(ext.CurrentBlocknumber) - d.CurrentDifficulty = math.MustParseBig256(ext.CurrentDifficulty) - - return nil -} - -func TestCalcDifficulty(t *testing.T) { - file, err := os.Open(filepath.Join("..", "..", "tests", "testdata", "BasicTests", "difficulty.json")) - if err != nil { - t.Skip(err) - } - defer file.Close() - - tests := make(map[string]diffTest) - err = json.NewDecoder(file).Decode(&tests) - if err != nil { - t.Fatal(err) - } - - config := ¶ms.ChainConfig{HomesteadBlock: big.NewInt(1150000)} - - for name, test := range tests { - number := new(big.Int).Sub(test.CurrentBlocknumber, big.NewInt(1)) - diff := CalcDifficulty(config, test.CurrentTimestamp, &types.Header{ - Number: number, - Time: test.ParentTimestamp, - Difficulty: test.ParentDifficulty, - }) - if diff.Cmp(test.CurrentDifficulty) != 0 { - t.Error(name, "failed. Expected", test.CurrentDifficulty, "and calculated", diff) - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/console/bridge.go b/vendor/github.com/ethereum/go-ethereum/console/bridge.go deleted file mode 100644 index bb14abca..00000000 --- a/vendor/github.com/ethereum/go-ethereum/console/bridge.go +++ /dev/null @@ -1,438 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package console - -import ( - "encoding/json" - "fmt" - "io" - "strings" - "time" - - "github.com/ethereum/go-ethereum/accounts/scwallet" - "github.com/ethereum/go-ethereum/accounts/usbwallet" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/rpc" - "github.com/robertkrimen/otto" -) - -// bridge is a collection of JavaScript utility methods to bride the .js runtime -// environment and the Go RPC connection backing the remote method calls. -type bridge struct { - client *rpc.Client // RPC client to execute Ethereum requests through - prompter UserPrompter // Input prompter to allow interactive user feedback - printer io.Writer // Output writer to serialize any display strings to -} - -// newBridge creates a new JavaScript wrapper around an RPC client. -func newBridge(client *rpc.Client, prompter UserPrompter, printer io.Writer) *bridge { - return &bridge{ - client: client, - prompter: prompter, - printer: printer, - } -} - -// NewAccount is a wrapper around the personal.newAccount RPC method that uses a -// non-echoing password prompt to acquire the passphrase and executes the original -// RPC method (saved in jeth.newAccount) with it to actually execute the RPC call. -func (b *bridge) NewAccount(call otto.FunctionCall) (response otto.Value) { - var ( - password string - confirm string - err error - ) - switch { - // No password was specified, prompt the user for it - case len(call.ArgumentList) == 0: - if password, err = b.prompter.PromptPassword("Passphrase: "); err != nil { - throwJSException(err.Error()) - } - if confirm, err = b.prompter.PromptPassword("Repeat passphrase: "); err != nil { - throwJSException(err.Error()) - } - if password != confirm { - throwJSException("passphrases don't match!") - } - - // A single string password was specified, use that - case len(call.ArgumentList) == 1 && call.Argument(0).IsString(): - password, _ = call.Argument(0).ToString() - - // Otherwise fail with some error - default: - throwJSException("expected 0 or 1 string argument") - } - // Password acquired, execute the call and return - ret, err := call.Otto.Call("jeth.newAccount", nil, password) - if err != nil { - throwJSException(err.Error()) - } - return ret -} - -// OpenWallet is a wrapper around personal.openWallet which can interpret and -// react to certain error messages, such as the Trezor PIN matrix request. -func (b *bridge) OpenWallet(call otto.FunctionCall) (response otto.Value) { - // Make sure we have a wallet specified to open - if !call.Argument(0).IsString() { - throwJSException("first argument must be the wallet URL to open") - } - wallet := call.Argument(0) - - var passwd otto.Value - if call.Argument(1).IsUndefined() || call.Argument(1).IsNull() { - passwd, _ = otto.ToValue("") - } else { - passwd = call.Argument(1) - } - // Open the wallet and return if successful in itself - val, err := call.Otto.Call("jeth.openWallet", nil, wallet, passwd) - if err == nil { - return val - } - - // Wallet open failed, report error unless it's a PIN or PUK entry - switch { - case strings.HasSuffix(err.Error(), usbwallet.ErrTrezorPINNeeded.Error()): - val, err = b.readPinAndReopenWallet(call) - if err == nil { - return val - } - val, err = b.readPassphraseAndReopenWallet(call) - if err != nil { - throwJSException(err.Error()) - } - - case strings.HasSuffix(err.Error(), scwallet.ErrPairingPasswordNeeded.Error()): - // PUK input requested, fetch from the user and call open again - if input, err := b.prompter.PromptPassword("Please enter the pairing password: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - if val, err = call.Otto.Call("jeth.openWallet", nil, wallet, passwd); err != nil { - if !strings.HasSuffix(err.Error(), scwallet.ErrPINNeeded.Error()) { - throwJSException(err.Error()) - } else { - // PIN input requested, fetch from the user and call open again - if input, err := b.prompter.PromptPassword("Please enter current PIN: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - if val, err = call.Otto.Call("jeth.openWallet", nil, wallet, passwd); err != nil { - throwJSException(err.Error()) - } - } - } - - case strings.HasSuffix(err.Error(), scwallet.ErrPINUnblockNeeded.Error()): - // PIN unblock requested, fetch PUK and new PIN from the user - var pukpin string - if input, err := b.prompter.PromptPassword("Please enter current PUK: "); err != nil { - throwJSException(err.Error()) - } else { - pukpin = input - } - if input, err := b.prompter.PromptPassword("Please enter new PIN: "); err != nil { - throwJSException(err.Error()) - } else { - pukpin += input - } - passwd, _ = otto.ToValue(pukpin) - if val, err = call.Otto.Call("jeth.openWallet", nil, wallet, passwd); err != nil { - throwJSException(err.Error()) - } - - case strings.HasSuffix(err.Error(), scwallet.ErrPINNeeded.Error()): - // PIN input requested, fetch from the user and call open again - if input, err := b.prompter.PromptPassword("Please enter current PIN: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - if val, err = call.Otto.Call("jeth.openWallet", nil, wallet, passwd); err != nil { - throwJSException(err.Error()) - } - - default: - // Unknown error occurred, drop to the user - throwJSException(err.Error()) - } - return val -} - -func (b *bridge) readPassphraseAndReopenWallet(call otto.FunctionCall) (otto.Value, error) { - var passwd otto.Value - wallet := call.Argument(0) - if input, err := b.prompter.PromptPassword("Please enter your passphrase: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - return call.Otto.Call("jeth.openWallet", nil, wallet, passwd) -} - -func (b *bridge) readPinAndReopenWallet(call otto.FunctionCall) (otto.Value, error) { - var passwd otto.Value - wallet := call.Argument(0) - // Trezor PIN matrix input requested, display the matrix to the user and fetch the data - fmt.Fprintf(b.printer, "Look at the device for number positions\n\n") - fmt.Fprintf(b.printer, "7 | 8 | 9\n") - fmt.Fprintf(b.printer, "--+---+--\n") - fmt.Fprintf(b.printer, "4 | 5 | 6\n") - fmt.Fprintf(b.printer, "--+---+--\n") - fmt.Fprintf(b.printer, "1 | 2 | 3\n\n") - - if input, err := b.prompter.PromptPassword("Please enter current PIN: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - return call.Otto.Call("jeth.openWallet", nil, wallet, passwd) -} - -// UnlockAccount is a wrapper around the personal.unlockAccount RPC method that -// uses a non-echoing password prompt to acquire the passphrase and executes the -// original RPC method (saved in jeth.unlockAccount) with it to actually execute -// the RPC call. -func (b *bridge) UnlockAccount(call otto.FunctionCall) (response otto.Value) { - // Make sure we have an account specified to unlock - if !call.Argument(0).IsString() { - throwJSException("first argument must be the account to unlock") - } - account := call.Argument(0) - - // If password is not given or is the null value, prompt the user for it - var passwd otto.Value - - if call.Argument(1).IsUndefined() || call.Argument(1).IsNull() { - fmt.Fprintf(b.printer, "Unlock account %s\n", account) - if input, err := b.prompter.PromptPassword("Passphrase: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - } else { - if !call.Argument(1).IsString() { - throwJSException("password must be a string") - } - passwd = call.Argument(1) - } - // Third argument is the duration how long the account must be unlocked. - duration := otto.NullValue() - if call.Argument(2).IsDefined() && !call.Argument(2).IsNull() { - if !call.Argument(2).IsNumber() { - throwJSException("unlock duration must be a number") - } - duration = call.Argument(2) - } - // Send the request to the backend and return - val, err := call.Otto.Call("jeth.unlockAccount", nil, account, passwd, duration) - if err != nil { - throwJSException(err.Error()) - } - return val -} - -// Sign is a wrapper around the personal.sign RPC method that uses a non-echoing password -// prompt to acquire the passphrase and executes the original RPC method (saved in -// jeth.sign) with it to actually execute the RPC call. -func (b *bridge) Sign(call otto.FunctionCall) (response otto.Value) { - var ( - message = call.Argument(0) - account = call.Argument(1) - passwd = call.Argument(2) - ) - - if !message.IsString() { - throwJSException("first argument must be the message to sign") - } - if !account.IsString() { - throwJSException("second argument must be the account to sign with") - } - - // if the password is not given or null ask the user and ensure password is a string - if passwd.IsUndefined() || passwd.IsNull() { - fmt.Fprintf(b.printer, "Give password for account %s\n", account) - if input, err := b.prompter.PromptPassword("Passphrase: "); err != nil { - throwJSException(err.Error()) - } else { - passwd, _ = otto.ToValue(input) - } - } - if !passwd.IsString() { - throwJSException("third argument must be the password to unlock the account") - } - - // Send the request to the backend and return - val, err := call.Otto.Call("jeth.sign", nil, message, account, passwd) - if err != nil { - throwJSException(err.Error()) - } - return val -} - -// Sleep will block the console for the specified number of seconds. -func (b *bridge) Sleep(call otto.FunctionCall) (response otto.Value) { - if call.Argument(0).IsNumber() { - sleep, _ := call.Argument(0).ToInteger() - time.Sleep(time.Duration(sleep) * time.Second) - return otto.TrueValue() - } - return throwJSException("usage: sleep()") -} - -// SleepBlocks will block the console for a specified number of new blocks optionally -// until the given timeout is reached. -func (b *bridge) SleepBlocks(call otto.FunctionCall) (response otto.Value) { - var ( - blocks = int64(0) - sleep = int64(9999999999999999) // indefinitely - ) - // Parse the input parameters for the sleep - nArgs := len(call.ArgumentList) - if nArgs == 0 { - throwJSException("usage: sleepBlocks([, max sleep in seconds])") - } - if nArgs >= 1 { - if call.Argument(0).IsNumber() { - blocks, _ = call.Argument(0).ToInteger() - } else { - throwJSException("expected number as first argument") - } - } - if nArgs >= 2 { - if call.Argument(1).IsNumber() { - sleep, _ = call.Argument(1).ToInteger() - } else { - throwJSException("expected number as second argument") - } - } - // go through the console, this will allow web3 to call the appropriate - // callbacks if a delayed response or notification is received. - blockNumber := func() int64 { - result, err := call.Otto.Run("eth.blockNumber") - if err != nil { - throwJSException(err.Error()) - } - block, err := result.ToInteger() - if err != nil { - throwJSException(err.Error()) - } - return block - } - // Poll the current block number until either it ot a timeout is reached - targetBlockNr := blockNumber() + blocks - deadline := time.Now().Add(time.Duration(sleep) * time.Second) - - for time.Now().Before(deadline) { - if blockNumber() >= targetBlockNr { - return otto.TrueValue() - } - time.Sleep(time.Second) - } - return otto.FalseValue() -} - -type jsonrpcCall struct { - ID int64 - Method string - Params []interface{} -} - -// Send implements the web3 provider "send" method. -func (b *bridge) Send(call otto.FunctionCall) (response otto.Value) { - // Remarshal the request into a Go value. - JSON, _ := call.Otto.Object("JSON") - reqVal, err := JSON.Call("stringify", call.Argument(0)) - if err != nil { - throwJSException(err.Error()) - } - var ( - rawReq = reqVal.String() - dec = json.NewDecoder(strings.NewReader(rawReq)) - reqs []jsonrpcCall - batch bool - ) - dec.UseNumber() // avoid float64s - if rawReq[0] == '[' { - batch = true - dec.Decode(&reqs) - } else { - batch = false - reqs = make([]jsonrpcCall, 1) - dec.Decode(&reqs[0]) - } - - // Execute the requests. - resps, _ := call.Otto.Object("new Array()") - for _, req := range reqs { - resp, _ := call.Otto.Object(`({"jsonrpc":"2.0"})`) - resp.Set("id", req.ID) - var result json.RawMessage - err = b.client.Call(&result, req.Method, req.Params...) - switch err := err.(type) { - case nil: - if result == nil { - // Special case null because it is decoded as an empty - // raw message for some reason. - resp.Set("result", otto.NullValue()) - } else { - resultVal, err := JSON.Call("parse", string(result)) - if err != nil { - setError(resp, -32603, err.Error()) - } else { - resp.Set("result", resultVal) - } - } - case rpc.Error: - setError(resp, err.ErrorCode(), err.Error()) - default: - setError(resp, -32603, err.Error()) - } - resps.Call("push", resp) - } - - // Return the responses either to the callback (if supplied) - // or directly as the return value. - if batch { - response = resps.Value() - } else { - response, _ = resps.Get("0") - } - if fn := call.Argument(1); fn.Class() == "Function" { - fn.Call(otto.NullValue(), otto.NullValue(), response) - return otto.UndefinedValue() - } - return response -} - -func setError(resp *otto.Object, code int, msg string) { - resp.Set("error", map[string]interface{}{"code": code, "message": msg}) -} - -// throwJSException panics on an otto.Value. The Otto VM will recover from the -// Go panic and throw msg as a JavaScript error. -func throwJSException(msg interface{}) otto.Value { - val, err := otto.ToValue(msg) - if err != nil { - log.Error("Failed to serialize JavaScript exception", "exception", msg, "err", err) - } - panic(val) -} diff --git a/vendor/github.com/ethereum/go-ethereum/console/console.go b/vendor/github.com/ethereum/go-ethereum/console/console.go deleted file mode 100644 index 5326ed2c..00000000 --- a/vendor/github.com/ethereum/go-ethereum/console/console.go +++ /dev/null @@ -1,450 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package console - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "os/signal" - "path/filepath" - "regexp" - "sort" - "strings" - "syscall" - - "github.com/ethereum/go-ethereum/internal/jsre" - "github.com/ethereum/go-ethereum/internal/web3ext" - "github.com/ethereum/go-ethereum/rpc" - "github.com/mattn/go-colorable" - "github.com/peterh/liner" - "github.com/robertkrimen/otto" -) - -var ( - passwordRegexp = regexp.MustCompile(`personal.[nus]`) - onlyWhitespace = regexp.MustCompile(`^\s*$`) - exit = regexp.MustCompile(`^\s*exit\s*;*\s*$`) -) - -// HistoryFile is the file within the data directory to store input scrollback. -const HistoryFile = "history" - -// DefaultPrompt is the default prompt line prefix to use for user input querying. -const DefaultPrompt = "> " - -// Config is the collection of configurations to fine tune the behavior of the -// JavaScript console. -type Config struct { - DataDir string // Data directory to store the console history at - DocRoot string // Filesystem path from where to load JavaScript files from - Client *rpc.Client // RPC client to execute Ethereum requests through - Prompt string // Input prompt prefix string (defaults to DefaultPrompt) - Prompter UserPrompter // Input prompter to allow interactive user feedback (defaults to TerminalPrompter) - Printer io.Writer // Output writer to serialize any display strings to (defaults to os.Stdout) - Preload []string // Absolute paths to JavaScript files to preload -} - -// Console is a JavaScript interpreted runtime environment. It is a fully fledged -// JavaScript console attached to a running node via an external or in-process RPC -// client. -type Console struct { - client *rpc.Client // RPC client to execute Ethereum requests through - jsre *jsre.JSRE // JavaScript runtime environment running the interpreter - prompt string // Input prompt prefix string - prompter UserPrompter // Input prompter to allow interactive user feedback - histPath string // Absolute path to the console scrollback history - history []string // Scroll history maintained by the console - printer io.Writer // Output writer to serialize any display strings to -} - -// New initializes a JavaScript interpreted runtime environment and sets defaults -// with the config struct. -func New(config Config) (*Console, error) { - // Handle unset config values gracefully - if config.Prompter == nil { - config.Prompter = Stdin - } - if config.Prompt == "" { - config.Prompt = DefaultPrompt - } - if config.Printer == nil { - config.Printer = colorable.NewColorableStdout() - } - // Initialize the console and return - console := &Console{ - client: config.Client, - jsre: jsre.New(config.DocRoot, config.Printer), - prompt: config.Prompt, - prompter: config.Prompter, - printer: config.Printer, - histPath: filepath.Join(config.DataDir, HistoryFile), - } - if err := os.MkdirAll(config.DataDir, 0700); err != nil { - return nil, err - } - if err := console.init(config.Preload); err != nil { - return nil, err - } - return console, nil -} - -// init retrieves the available APIs from the remote RPC provider and initializes -// the console's JavaScript namespaces based on the exposed modules. -func (c *Console) init(preload []string) error { - // Initialize the JavaScript <-> Go RPC bridge - bridge := newBridge(c.client, c.prompter, c.printer) - c.jsre.Set("jeth", struct{}{}) - - jethObj, _ := c.jsre.Get("jeth") - jethObj.Object().Set("send", bridge.Send) - jethObj.Object().Set("sendAsync", bridge.Send) - - consoleObj, _ := c.jsre.Get("console") - consoleObj.Object().Set("log", c.consoleOutput) - consoleObj.Object().Set("error", c.consoleOutput) - - // Load all the internal utility JavaScript libraries - if err := c.jsre.Compile("bignumber.js", jsre.BignumberJs); err != nil { - return fmt.Errorf("bignumber.js: %v", err) - } - if err := c.jsre.Compile("web3.js", jsre.Web3Js); err != nil { - return fmt.Errorf("web3.js: %v", err) - } - if _, err := c.jsre.Run("var Web3 = require('web3');"); err != nil { - return fmt.Errorf("web3 require: %v", err) - } - if _, err := c.jsre.Run("var web3 = new Web3(jeth);"); err != nil { - return fmt.Errorf("web3 provider: %v", err) - } - // Load the supported APIs into the JavaScript runtime environment - apis, err := c.client.SupportedModules() - if err != nil { - return fmt.Errorf("api modules: %v", err) - } - flatten := "var eth = web3.eth; var personal = web3.personal; " - for api := range apis { - if api == "web3" { - continue // manually mapped or ignore - } - if file, ok := web3ext.Modules[api]; ok { - // Load our extension for the module. - if err = c.jsre.Compile(fmt.Sprintf("%s.js", api), file); err != nil { - return fmt.Errorf("%s.js: %v", api, err) - } - flatten += fmt.Sprintf("var %s = web3.%s; ", api, api) - } else if obj, err := c.jsre.Run("web3." + api); err == nil && obj.IsObject() { - // Enable web3.js built-in extension if available. - flatten += fmt.Sprintf("var %s = web3.%s; ", api, api) - } - } - if _, err = c.jsre.Run(flatten); err != nil { - return fmt.Errorf("namespace flattening: %v", err) - } - // Initialize the global name register (disabled for now) - //c.jsre.Run(`var GlobalRegistrar = eth.contract(` + registrar.GlobalRegistrarAbi + `); registrar = GlobalRegistrar.at("` + registrar.GlobalRegistrarAddr + `");`) - - // If the console is in interactive mode, instrument password related methods to query the user - if c.prompter != nil { - // Retrieve the account management object to instrument - personal, err := c.jsre.Get("personal") - if err != nil { - return err - } - // Override the openWallet, unlockAccount, newAccount and sign methods since - // these require user interaction. Assign these method in the Console the - // original web3 callbacks. These will be called by the jeth.* methods after - // they got the password from the user and send the original web3 request to - // the backend. - if obj := personal.Object(); obj != nil { // make sure the personal api is enabled over the interface - if _, err = c.jsre.Run(`jeth.openWallet = personal.openWallet;`); err != nil { - return fmt.Errorf("personal.openWallet: %v", err) - } - if _, err = c.jsre.Run(`jeth.unlockAccount = personal.unlockAccount;`); err != nil { - return fmt.Errorf("personal.unlockAccount: %v", err) - } - if _, err = c.jsre.Run(`jeth.newAccount = personal.newAccount;`); err != nil { - return fmt.Errorf("personal.newAccount: %v", err) - } - if _, err = c.jsre.Run(`jeth.sign = personal.sign;`); err != nil { - return fmt.Errorf("personal.sign: %v", err) - } - obj.Set("openWallet", bridge.OpenWallet) - obj.Set("unlockAccount", bridge.UnlockAccount) - obj.Set("newAccount", bridge.NewAccount) - obj.Set("sign", bridge.Sign) - } - } - // The admin.sleep and admin.sleepBlocks are offered by the console and not by the RPC layer. - admin, err := c.jsre.Get("admin") - if err != nil { - return err - } - if obj := admin.Object(); obj != nil { // make sure the admin api is enabled over the interface - obj.Set("sleepBlocks", bridge.SleepBlocks) - obj.Set("sleep", bridge.Sleep) - obj.Set("clearHistory", c.clearHistory) - } - // Preload any JavaScript files before starting the console - for _, path := range preload { - if err := c.jsre.Exec(path); err != nil { - failure := err.Error() - if ottoErr, ok := err.(*otto.Error); ok { - failure = ottoErr.String() - } - return fmt.Errorf("%s: %v", path, failure) - } - } - // Configure the console's input prompter for scrollback and tab completion - if c.prompter != nil { - if content, err := ioutil.ReadFile(c.histPath); err != nil { - c.prompter.SetHistory(nil) - } else { - c.history = strings.Split(string(content), "\n") - c.prompter.SetHistory(c.history) - } - c.prompter.SetWordCompleter(c.AutoCompleteInput) - } - return nil -} - -func (c *Console) clearHistory() { - c.history = nil - c.prompter.ClearHistory() - if err := os.Remove(c.histPath); err != nil { - fmt.Fprintln(c.printer, "can't delete history file:", err) - } else { - fmt.Fprintln(c.printer, "history file deleted") - } -} - -// consoleOutput is an override for the console.log and console.error methods to -// stream the output into the configured output stream instead of stdout. -func (c *Console) consoleOutput(call otto.FunctionCall) otto.Value { - var output []string - for _, argument := range call.ArgumentList { - output = append(output, fmt.Sprintf("%v", argument)) - } - fmt.Fprintln(c.printer, strings.Join(output, " ")) - return otto.Value{} -} - -// AutoCompleteInput is a pre-assembled word completer to be used by the user -// input prompter to provide hints to the user about the methods available. -func (c *Console) AutoCompleteInput(line string, pos int) (string, []string, string) { - // No completions can be provided for empty inputs - if len(line) == 0 || pos == 0 { - return "", nil, "" - } - // Chunck data to relevant part for autocompletion - // E.g. in case of nested lines eth.getBalance(eth.coinb - start := pos - 1 - for ; start > 0; start-- { - // Skip all methods and namespaces (i.e. including the dot) - if line[start] == '.' || (line[start] >= 'a' && line[start] <= 'z') || (line[start] >= 'A' && line[start] <= 'Z') { - continue - } - // Handle web3 in a special way (i.e. other numbers aren't auto completed) - if start >= 3 && line[start-3:start] == "web3" { - start -= 3 - continue - } - // We've hit an unexpected character, autocomplete form here - start++ - break - } - return line[:start], c.jsre.CompleteKeywords(line[start:pos]), line[pos:] -} - -// Welcome show summary of current Geth instance and some metadata about the -// console's available modules. -func (c *Console) Welcome() { - message := "Welcome to the Geth JavaScript console!\n\n" - - // Print some generic Geth metadata - if res, err := c.jsre.Run(` - var message = "instance: " + web3.version.node + "\n"; - try { - message += "coinbase: " + eth.coinbase + "\n"; - } catch (err) {} - message += "at block: " + eth.blockNumber + " (" + new Date(1000 * eth.getBlock(eth.blockNumber).timestamp) + ")\n"; - try { - message += " datadir: " + admin.datadir + "\n"; - } catch (err) {} - message - `); err == nil { - message += res.String() - } - // List all the supported modules for the user to call - if apis, err := c.client.SupportedModules(); err == nil { - modules := make([]string, 0, len(apis)) - for api, version := range apis { - modules = append(modules, fmt.Sprintf("%s:%s", api, version)) - } - sort.Strings(modules) - message += " modules: " + strings.Join(modules, " ") + "\n" - } - fmt.Fprintln(c.printer, message) -} - -// Evaluate executes code and pretty prints the result to the specified output -// stream. -func (c *Console) Evaluate(statement string) error { - defer func() { - if r := recover(); r != nil { - fmt.Fprintf(c.printer, "[native] error: %v\n", r) - } - }() - return c.jsre.Evaluate(statement, c.printer) -} - -// Interactive starts an interactive user session, where input is propted from -// the configured user prompter. -func (c *Console) Interactive() { - var ( - prompt = c.prompt // Current prompt line (used for multi-line inputs) - indents = 0 // Current number of input indents (used for multi-line inputs) - input = "" // Current user input - scheduler = make(chan string) // Channel to send the next prompt on and receive the input - ) - // Start a goroutine to listen for prompt requests and send back inputs - go func() { - for { - // Read the next user input - line, err := c.prompter.PromptInput(<-scheduler) - if err != nil { - // In case of an error, either clear the prompt or fail - if err == liner.ErrPromptAborted { // ctrl-C - prompt, indents, input = c.prompt, 0, "" - scheduler <- "" - continue - } - close(scheduler) - return - } - // User input retrieved, send for interpretation and loop - scheduler <- line - } - }() - // Monitor Ctrl-C too in case the input is empty and we need to bail - abort := make(chan os.Signal, 1) - signal.Notify(abort, syscall.SIGINT, syscall.SIGTERM) - - // Start sending prompts to the user and reading back inputs - for { - // Send the next prompt, triggering an input read and process the result - scheduler <- prompt - select { - case <-abort: - // User forcefully quite the console - fmt.Fprintln(c.printer, "caught interrupt, exiting") - return - - case line, ok := <-scheduler: - // User input was returned by the prompter, handle special cases - if !ok || (indents <= 0 && exit.MatchString(line)) { - return - } - if onlyWhitespace.MatchString(line) { - continue - } - // Append the line to the input and check for multi-line interpretation - input += line + "\n" - - indents = countIndents(input) - if indents <= 0 { - prompt = c.prompt - } else { - prompt = strings.Repeat(".", indents*3) + " " - } - // If all the needed lines are present, save the command and run - if indents <= 0 { - if len(input) > 0 && input[0] != ' ' && !passwordRegexp.MatchString(input) { - if command := strings.TrimSpace(input); len(c.history) == 0 || command != c.history[len(c.history)-1] { - c.history = append(c.history, command) - if c.prompter != nil { - c.prompter.AppendHistory(command) - } - } - } - c.Evaluate(input) - input = "" - } - } - } -} - -// countIndents returns the number of identations for the given input. -// In case of invalid input such as var a = } the result can be negative. -func countIndents(input string) int { - var ( - indents = 0 - inString = false - strOpenChar = ' ' // keep track of the string open char to allow var str = "I'm ...."; - charEscaped = false // keep track if the previous char was the '\' char, allow var str = "abc\"def"; - ) - - for _, c := range input { - switch c { - case '\\': - // indicate next char as escaped when in string and previous char isn't escaping this backslash - if !charEscaped && inString { - charEscaped = true - } - case '\'', '"': - if inString && !charEscaped && strOpenChar == c { // end string - inString = false - } else if !inString && !charEscaped { // begin string - inString = true - strOpenChar = c - } - charEscaped = false - case '{', '(': - if !inString { // ignore brackets when in string, allow var str = "a{"; without indenting - indents++ - } - charEscaped = false - case '}', ')': - if !inString { - indents-- - } - charEscaped = false - default: - charEscaped = false - } - } - - return indents -} - -// Execute runs the JavaScript file specified as the argument. -func (c *Console) Execute(path string) error { - return c.jsre.Exec(path) -} - -// Stop cleans up the console and terminates the runtime environment. -func (c *Console) Stop(graceful bool) error { - if err := ioutil.WriteFile(c.histPath, []byte(strings.Join(c.history, "\n")), 0600); err != nil { - return err - } - if err := os.Chmod(c.histPath, 0600); err != nil { // Force 0600, even if it was different previously - return err - } - c.jsre.Stop(graceful) - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/core/blockchain_test.go b/vendor/github.com/ethereum/go-ethereum/core/blockchain_test.go deleted file mode 100644 index 4af139a8..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/blockchain_test.go +++ /dev/null @@ -1,1893 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package core - -import ( - "math/big" - "math/rand" - "sync" - "testing" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/ethdb/memorydb" - "github.com/ethereum/go-ethereum/params" -) - -// So we can deterministically seed different blockchains -var ( - canonicalSeed = 1 - forkSeed = 2 -) - -// newCanonical creates a chain database, and injects a deterministic canonical -// chain. Depending on the full flag, if creates either a full block chain or a -// header only chain. -func newCanonical(engine consensus.Engine, n int, full bool) (ethdb.Database, *BlockChain, error) { - var ( - db = rawdb.NewMemoryDatabase() - genesis = new(Genesis).MustCommit(db) - ) - - // Initialize a fresh chain with only a genesis block - blockchain, _ := NewBlockChain(db, nil, params.AllEthashProtocolChanges, engine, vm.Config{}, nil) - // Create and inject the requested chain - if n == 0 { - return db, blockchain, nil - } - if full { - // Full block-chain requested - blocks := makeBlockChain(genesis, n, engine, db, canonicalSeed) - _, err := blockchain.InsertChain(blocks) - return db, blockchain, err - } - // Header-only chain requested - headers := makeHeaderChain(genesis.Header(), n, engine, db, canonicalSeed) - _, err := blockchain.InsertHeaderChain(headers, 1) - return db, blockchain, err -} - -// Test fork of length N starting from block i -func testFork(t *testing.T, blockchain *BlockChain, i, n int, full bool, comparator func(td1, td2 *big.Int)) { - // Copy old chain up to #i into a new db - db, blockchain2, err := newCanonical(ethash.NewFaker(), i, full) - if err != nil { - t.Fatal("could not make new canonical in testFork", err) - } - defer blockchain2.Stop() - - // Assert the chains have the same header/block at #i - var hash1, hash2 common.Hash - if full { - hash1 = blockchain.GetBlockByNumber(uint64(i)).Hash() - hash2 = blockchain2.GetBlockByNumber(uint64(i)).Hash() - } else { - hash1 = blockchain.GetHeaderByNumber(uint64(i)).Hash() - hash2 = blockchain2.GetHeaderByNumber(uint64(i)).Hash() - } - if hash1 != hash2 { - t.Errorf("chain content mismatch at %d: have hash %v, want hash %v", i, hash2, hash1) - } - // Extend the newly created chain - var ( - blockChainB []*types.Block - headerChainB []*types.Header - ) - if full { - blockChainB = makeBlockChain(blockchain2.CurrentBlock(), n, ethash.NewFaker(), db, forkSeed) - if _, err := blockchain2.InsertChain(blockChainB); err != nil { - t.Fatalf("failed to insert forking chain: %v", err) - } - } else { - headerChainB = makeHeaderChain(blockchain2.CurrentHeader(), n, ethash.NewFaker(), db, forkSeed) - if _, err := blockchain2.InsertHeaderChain(headerChainB, 1); err != nil { - t.Fatalf("failed to insert forking chain: %v", err) - } - } - // Sanity check that the forked chain can be imported into the original - var tdPre, tdPost *big.Int - - if full { - tdPre = blockchain.GetTdByHash(blockchain.CurrentBlock().Hash()) - if err := testBlockChainImport(blockChainB, blockchain); err != nil { - t.Fatalf("failed to import forked block chain: %v", err) - } - tdPost = blockchain.GetTdByHash(blockChainB[len(blockChainB)-1].Hash()) - } else { - tdPre = blockchain.GetTdByHash(blockchain.CurrentHeader().Hash()) - if err := testHeaderChainImport(headerChainB, blockchain); err != nil { - t.Fatalf("failed to import forked header chain: %v", err) - } - tdPost = blockchain.GetTdByHash(headerChainB[len(headerChainB)-1].Hash()) - } - // Compare the total difficulties of the chains - comparator(tdPre, tdPost) -} - -// testBlockChainImport tries to process a chain of blocks, writing them into -// the database if successful. -func testBlockChainImport(chain types.Blocks, blockchain *BlockChain) error { - for _, block := range chain { - // Try and process the block - err := blockchain.engine.VerifyHeader(blockchain, block.Header(), true) - if err == nil { - err = blockchain.validator.ValidateBody(block) - } - if err != nil { - if err == ErrKnownBlock { - continue - } - return err - } - statedb, err := state.New(blockchain.GetBlockByHash(block.ParentHash()).Root(), blockchain.stateCache) - if err != nil { - return err - } - receipts, _, usedGas, err := blockchain.processor.Process(block, statedb, vm.Config{}) - if err != nil { - blockchain.reportBlock(block, receipts, err) - return err - } - err = blockchain.validator.ValidateState(block, statedb, receipts, usedGas) - if err != nil { - blockchain.reportBlock(block, receipts, err) - return err - } - blockchain.chainmu.Lock() - rawdb.WriteTd(blockchain.db, block.Hash(), block.NumberU64(), new(big.Int).Add(block.Difficulty(), blockchain.GetTdByHash(block.ParentHash()))) - rawdb.WriteBlock(blockchain.db, block) - statedb.Commit(false) - blockchain.chainmu.Unlock() - } - return nil -} - -// testHeaderChainImport tries to process a chain of header, writing them into -// the database if successful. -func testHeaderChainImport(chain []*types.Header, blockchain *BlockChain) error { - for _, header := range chain { - // Try and validate the header - if err := blockchain.engine.VerifyHeader(blockchain, header, false); err != nil { - return err - } - // Manually insert the header into the database, but don't reorganise (allows subsequent testing) - blockchain.chainmu.Lock() - rawdb.WriteTd(blockchain.db, header.Hash(), header.Number.Uint64(), new(big.Int).Add(header.Difficulty, blockchain.GetTdByHash(header.ParentHash))) - rawdb.WriteHeader(blockchain.db, header) - blockchain.chainmu.Unlock() - } - return nil -} - -func TestLastBlock(t *testing.T) { - _, blockchain, err := newCanonical(ethash.NewFaker(), 0, true) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - defer blockchain.Stop() - - blocks := makeBlockChain(blockchain.CurrentBlock(), 1, ethash.NewFullFaker(), blockchain.db, 0) - if _, err := blockchain.InsertChain(blocks); err != nil { - t.Fatalf("Failed to insert block: %v", err) - } - if blocks[len(blocks)-1].Hash() != rawdb.ReadHeadBlockHash(blockchain.db) { - t.Fatalf("Write/Get HeadBlockHash failed") - } -} - -// Tests that given a starting canonical chain of a given size, it can be extended -// with various length chains. -func TestExtendCanonicalHeaders(t *testing.T) { testExtendCanonical(t, false) } -func TestExtendCanonicalBlocks(t *testing.T) { testExtendCanonical(t, true) } - -func testExtendCanonical(t *testing.T, full bool) { - length := 5 - - // Make first chain starting from genesis - _, processor, err := newCanonical(ethash.NewFaker(), length, full) - if err != nil { - t.Fatalf("failed to make new canonical chain: %v", err) - } - defer processor.Stop() - - // Define the difficulty comparator - better := func(td1, td2 *big.Int) { - if td2.Cmp(td1) <= 0 { - t.Errorf("total difficulty mismatch: have %v, expected more than %v", td2, td1) - } - } - // Start fork from current height - testFork(t, processor, length, 1, full, better) - testFork(t, processor, length, 2, full, better) - testFork(t, processor, length, 5, full, better) - testFork(t, processor, length, 10, full, better) -} - -// Tests that given a starting canonical chain of a given size, creating shorter -// forks do not take canonical ownership. -func TestShorterForkHeaders(t *testing.T) { testShorterFork(t, false) } -func TestShorterForkBlocks(t *testing.T) { testShorterFork(t, true) } - -func testShorterFork(t *testing.T, full bool) { - length := 10 - - // Make first chain starting from genesis - _, processor, err := newCanonical(ethash.NewFaker(), length, full) - if err != nil { - t.Fatalf("failed to make new canonical chain: %v", err) - } - defer processor.Stop() - - // Define the difficulty comparator - worse := func(td1, td2 *big.Int) { - if td2.Cmp(td1) >= 0 { - t.Errorf("total difficulty mismatch: have %v, expected less than %v", td2, td1) - } - } - // Sum of numbers must be less than `length` for this to be a shorter fork - testFork(t, processor, 0, 3, full, worse) - testFork(t, processor, 0, 7, full, worse) - testFork(t, processor, 1, 1, full, worse) - testFork(t, processor, 1, 7, full, worse) - testFork(t, processor, 5, 3, full, worse) - testFork(t, processor, 5, 4, full, worse) -} - -// Tests that given a starting canonical chain of a given size, creating longer -// forks do take canonical ownership. -func TestLongerForkHeaders(t *testing.T) { testLongerFork(t, false) } -func TestLongerForkBlocks(t *testing.T) { testLongerFork(t, true) } - -func testLongerFork(t *testing.T, full bool) { - length := 10 - - // Make first chain starting from genesis - _, processor, err := newCanonical(ethash.NewFaker(), length, full) - if err != nil { - t.Fatalf("failed to make new canonical chain: %v", err) - } - defer processor.Stop() - - // Define the difficulty comparator - better := func(td1, td2 *big.Int) { - if td2.Cmp(td1) <= 0 { - t.Errorf("total difficulty mismatch: have %v, expected more than %v", td2, td1) - } - } - // Sum of numbers must be greater than `length` for this to be a longer fork - testFork(t, processor, 0, 11, full, better) - testFork(t, processor, 0, 15, full, better) - testFork(t, processor, 1, 10, full, better) - testFork(t, processor, 1, 12, full, better) - testFork(t, processor, 5, 6, full, better) - testFork(t, processor, 5, 8, full, better) -} - -// Tests that given a starting canonical chain of a given size, creating equal -// forks do take canonical ownership. -func TestEqualForkHeaders(t *testing.T) { testEqualFork(t, false) } -func TestEqualForkBlocks(t *testing.T) { testEqualFork(t, true) } - -func testEqualFork(t *testing.T, full bool) { - length := 10 - - // Make first chain starting from genesis - _, processor, err := newCanonical(ethash.NewFaker(), length, full) - if err != nil { - t.Fatalf("failed to make new canonical chain: %v", err) - } - defer processor.Stop() - - // Define the difficulty comparator - equal := func(td1, td2 *big.Int) { - if td2.Cmp(td1) != 0 { - t.Errorf("total difficulty mismatch: have %v, want %v", td2, td1) - } - } - // Sum of numbers must be equal to `length` for this to be an equal fork - testFork(t, processor, 0, 10, full, equal) - testFork(t, processor, 1, 9, full, equal) - testFork(t, processor, 2, 8, full, equal) - testFork(t, processor, 5, 5, full, equal) - testFork(t, processor, 6, 4, full, equal) - testFork(t, processor, 9, 1, full, equal) -} - -// Tests that chains missing links do not get accepted by the processor. -func TestBrokenHeaderChain(t *testing.T) { testBrokenChain(t, false) } -func TestBrokenBlockChain(t *testing.T) { testBrokenChain(t, true) } - -func testBrokenChain(t *testing.T, full bool) { - // Make chain starting from genesis - db, blockchain, err := newCanonical(ethash.NewFaker(), 10, full) - if err != nil { - t.Fatalf("failed to make new canonical chain: %v", err) - } - defer blockchain.Stop() - - // Create a forked chain, and try to insert with a missing link - if full { - chain := makeBlockChain(blockchain.CurrentBlock(), 5, ethash.NewFaker(), db, forkSeed)[1:] - if err := testBlockChainImport(chain, blockchain); err == nil { - t.Errorf("broken block chain not reported") - } - } else { - chain := makeHeaderChain(blockchain.CurrentHeader(), 5, ethash.NewFaker(), db, forkSeed)[1:] - if err := testHeaderChainImport(chain, blockchain); err == nil { - t.Errorf("broken header chain not reported") - } - } -} - -// Tests that reorganising a long difficult chain after a short easy one -// overwrites the canonical numbers and links in the database. -func TestReorgLongHeaders(t *testing.T) { testReorgLong(t, false) } -func TestReorgLongBlocks(t *testing.T) { testReorgLong(t, true) } - -func testReorgLong(t *testing.T, full bool) { - testReorg(t, []int64{0, 0, -9}, []int64{0, 0, 0, -9}, 393280, full) -} - -// Tests that reorganising a short difficult chain after a long easy one -// overwrites the canonical numbers and links in the database. -func TestReorgShortHeaders(t *testing.T) { testReorgShort(t, false) } -func TestReorgShortBlocks(t *testing.T) { testReorgShort(t, true) } - -func testReorgShort(t *testing.T, full bool) { - // Create a long easy chain vs. a short heavy one. Due to difficulty adjustment - // we need a fairly long chain of blocks with different difficulties for a short - // one to become heavyer than a long one. The 96 is an empirical value. - easy := make([]int64, 96) - for i := 0; i < len(easy); i++ { - easy[i] = 60 - } - diff := make([]int64, len(easy)-1) - for i := 0; i < len(diff); i++ { - diff[i] = -9 - } - testReorg(t, easy, diff, 12615120, full) -} - -func testReorg(t *testing.T, first, second []int64, td int64, full bool) { - // Create a pristine chain and database - db, blockchain, err := newCanonical(ethash.NewFaker(), 0, full) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - defer blockchain.Stop() - - // Insert an easy and a difficult chain afterwards - easyBlocks, _ := GenerateChain(params.TestChainConfig, blockchain.CurrentBlock(), ethash.NewFaker(), db, len(first), func(i int, b *BlockGen) { - b.OffsetTime(first[i]) - }) - diffBlocks, _ := GenerateChain(params.TestChainConfig, blockchain.CurrentBlock(), ethash.NewFaker(), db, len(second), func(i int, b *BlockGen) { - b.OffsetTime(second[i]) - }) - if full { - if _, err := blockchain.InsertChain(easyBlocks); err != nil { - t.Fatalf("failed to insert easy chain: %v", err) - } - if _, err := blockchain.InsertChain(diffBlocks); err != nil { - t.Fatalf("failed to insert difficult chain: %v", err) - } - } else { - easyHeaders := make([]*types.Header, len(easyBlocks)) - for i, block := range easyBlocks { - easyHeaders[i] = block.Header() - } - diffHeaders := make([]*types.Header, len(diffBlocks)) - for i, block := range diffBlocks { - diffHeaders[i] = block.Header() - } - if _, err := blockchain.InsertHeaderChain(easyHeaders, 1); err != nil { - t.Fatalf("failed to insert easy chain: %v", err) - } - if _, err := blockchain.InsertHeaderChain(diffHeaders, 1); err != nil { - t.Fatalf("failed to insert difficult chain: %v", err) - } - } - // Check that the chain is valid number and link wise - if full { - prev := blockchain.CurrentBlock() - for block := blockchain.GetBlockByNumber(blockchain.CurrentBlock().NumberU64() - 1); block.NumberU64() != 0; prev, block = block, blockchain.GetBlockByNumber(block.NumberU64()-1) { - if prev.ParentHash() != block.Hash() { - t.Errorf("parent block hash mismatch: have %x, want %x", prev.ParentHash(), block.Hash()) - } - } - } else { - prev := blockchain.CurrentHeader() - for header := blockchain.GetHeaderByNumber(blockchain.CurrentHeader().Number.Uint64() - 1); header.Number.Uint64() != 0; prev, header = header, blockchain.GetHeaderByNumber(header.Number.Uint64()-1) { - if prev.ParentHash != header.Hash() { - t.Errorf("parent header hash mismatch: have %x, want %x", prev.ParentHash, header.Hash()) - } - } - } - // Make sure the chain total difficulty is the correct one - want := new(big.Int).Add(blockchain.genesisBlock.Difficulty(), big.NewInt(td)) - if full { - if have := blockchain.GetTdByHash(blockchain.CurrentBlock().Hash()); have.Cmp(want) != 0 { - t.Errorf("total difficulty mismatch: have %v, want %v", have, want) - } - } else { - if have := blockchain.GetTdByHash(blockchain.CurrentHeader().Hash()); have.Cmp(want) != 0 { - t.Errorf("total difficulty mismatch: have %v, want %v", have, want) - } - } -} - -// Tests that the insertion functions detect banned hashes. -func TestBadHeaderHashes(t *testing.T) { testBadHashes(t, false) } -func TestBadBlockHashes(t *testing.T) { testBadHashes(t, true) } - -func testBadHashes(t *testing.T, full bool) { - // Create a pristine chain and database - db, blockchain, err := newCanonical(ethash.NewFaker(), 0, full) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - defer blockchain.Stop() - - // Create a chain, ban a hash and try to import - if full { - blocks := makeBlockChain(blockchain.CurrentBlock(), 3, ethash.NewFaker(), db, 10) - - BadHashes[blocks[2].Header().Hash()] = true - defer func() { delete(BadHashes, blocks[2].Header().Hash()) }() - - _, err = blockchain.InsertChain(blocks) - } else { - headers := makeHeaderChain(blockchain.CurrentHeader(), 3, ethash.NewFaker(), db, 10) - - BadHashes[headers[2].Hash()] = true - defer func() { delete(BadHashes, headers[2].Hash()) }() - - _, err = blockchain.InsertHeaderChain(headers, 1) - } - if err != ErrBlacklistedHash { - t.Errorf("error mismatch: have: %v, want: %v", err, ErrBlacklistedHash) - } -} - -// Tests that bad hashes are detected on boot, and the chain rolled back to a -// good state prior to the bad hash. -func TestReorgBadHeaderHashes(t *testing.T) { testReorgBadHashes(t, false) } -func TestReorgBadBlockHashes(t *testing.T) { testReorgBadHashes(t, true) } - -func testReorgBadHashes(t *testing.T, full bool) { - // Create a pristine chain and database - db, blockchain, err := newCanonical(ethash.NewFaker(), 0, full) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - // Create a chain, import and ban afterwards - headers := makeHeaderChain(blockchain.CurrentHeader(), 4, ethash.NewFaker(), db, 10) - blocks := makeBlockChain(blockchain.CurrentBlock(), 4, ethash.NewFaker(), db, 10) - - if full { - if _, err = blockchain.InsertChain(blocks); err != nil { - t.Errorf("failed to import blocks: %v", err) - } - if blockchain.CurrentBlock().Hash() != blocks[3].Hash() { - t.Errorf("last block hash mismatch: have: %x, want %x", blockchain.CurrentBlock().Hash(), blocks[3].Header().Hash()) - } - BadHashes[blocks[3].Header().Hash()] = true - defer func() { delete(BadHashes, blocks[3].Header().Hash()) }() - } else { - if _, err = blockchain.InsertHeaderChain(headers, 1); err != nil { - t.Errorf("failed to import headers: %v", err) - } - if blockchain.CurrentHeader().Hash() != headers[3].Hash() { - t.Errorf("last header hash mismatch: have: %x, want %x", blockchain.CurrentHeader().Hash(), headers[3].Hash()) - } - BadHashes[headers[3].Hash()] = true - defer func() { delete(BadHashes, headers[3].Hash()) }() - } - blockchain.Stop() - - // Create a new BlockChain and check that it rolled back the state. - ncm, err := NewBlockChain(blockchain.db, nil, blockchain.chainConfig, ethash.NewFaker(), vm.Config{}, nil) - if err != nil { - t.Fatalf("failed to create new chain manager: %v", err) - } - if full { - if ncm.CurrentBlock().Hash() != blocks[2].Header().Hash() { - t.Errorf("last block hash mismatch: have: %x, want %x", ncm.CurrentBlock().Hash(), blocks[2].Header().Hash()) - } - if blocks[2].Header().GasLimit != ncm.GasLimit() { - t.Errorf("last block gasLimit mismatch: have: %d, want %d", ncm.GasLimit(), blocks[2].Header().GasLimit) - } - } else { - if ncm.CurrentHeader().Hash() != headers[2].Hash() { - t.Errorf("last header hash mismatch: have: %x, want %x", ncm.CurrentHeader().Hash(), headers[2].Hash()) - } - } - ncm.Stop() -} - -// Tests chain insertions in the face of one entity containing an invalid nonce. -func TestHeadersInsertNonceError(t *testing.T) { testInsertNonceError(t, false) } -func TestBlocksInsertNonceError(t *testing.T) { testInsertNonceError(t, true) } - -func testInsertNonceError(t *testing.T, full bool) { - for i := 1; i < 25 && !t.Failed(); i++ { - // Create a pristine chain and database - db, blockchain, err := newCanonical(ethash.NewFaker(), 0, full) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - defer blockchain.Stop() - - // Create and insert a chain with a failing nonce - var ( - failAt int - failRes int - failNum uint64 - ) - if full { - blocks := makeBlockChain(blockchain.CurrentBlock(), i, ethash.NewFaker(), db, 0) - - failAt = rand.Int() % len(blocks) - failNum = blocks[failAt].NumberU64() - - blockchain.engine = ethash.NewFakeFailer(failNum) - failRes, err = blockchain.InsertChain(blocks) - } else { - headers := makeHeaderChain(blockchain.CurrentHeader(), i, ethash.NewFaker(), db, 0) - - failAt = rand.Int() % len(headers) - failNum = headers[failAt].Number.Uint64() - - blockchain.engine = ethash.NewFakeFailer(failNum) - blockchain.hc.engine = blockchain.engine - failRes, err = blockchain.InsertHeaderChain(headers, 1) - } - // Check that the returned error indicates the failure - if failRes != failAt { - t.Errorf("test %d: failure (%v) index mismatch: have %d, want %d", i, err, failRes, failAt) - } - // Check that all blocks after the failing block have been inserted - for j := 0; j < i-failAt; j++ { - if full { - if block := blockchain.GetBlockByNumber(failNum + uint64(j)); block != nil { - t.Errorf("test %d: invalid block in chain: %v", i, block) - } - } else { - if header := blockchain.GetHeaderByNumber(failNum + uint64(j)); header != nil { - t.Errorf("test %d: invalid header in chain: %v", i, header) - } - } - } - } -} - -// Tests that fast importing a block chain produces the same chain data as the -// classical full block processing. -func TestFastVsFullChains(t *testing.T) { - // Configure and generate a sample block chain - var ( - gendb = rawdb.NewMemoryDatabase() - key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - address = crypto.PubkeyToAddress(key.PublicKey) - funds = big.NewInt(1000000000) - gspec = &Genesis{ - Config: params.TestChainConfig, - Alloc: GenesisAlloc{address: {Balance: funds}}, - } - genesis = gspec.MustCommit(gendb) - signer = types.NewEIP155Signer(gspec.Config.ChainID) - ) - blocks, receipts := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), gendb, 1024, func(i int, block *BlockGen) { - block.SetCoinbase(common.Address{0x00}) - - // If the block number is multiple of 3, send a few bonus transactions to the miner - if i%3 == 2 { - for j := 0; j < i%4+1; j++ { - tx, err := types.SignTx(types.NewTransaction(block.TxNonce(address), common.Address{0x00}, big.NewInt(1000), params.TxGas, nil, nil), signer, key) - if err != nil { - panic(err) - } - block.AddTx(tx) - } - } - // If the block number is a multiple of 5, add a few bonus uncles to the block - if i%5 == 5 { - block.AddUncle(&types.Header{ParentHash: block.PrevBlock(i - 1).Hash(), Number: big.NewInt(int64(i - 1))}) - } - }) - // Import the chain as an archive node for the comparison baseline - archiveDb := rawdb.NewMemoryDatabase() - gspec.MustCommit(archiveDb) - archive, _ := NewBlockChain(archiveDb, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer archive.Stop() - - if n, err := archive.InsertChain(blocks); err != nil { - t.Fatalf("failed to process block %d: %v", n, err) - } - // Fast import the chain as a non-archive node to test - fastDb := rawdb.NewMemoryDatabase() - gspec.MustCommit(fastDb) - fast, _ := NewBlockChain(fastDb, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer fast.Stop() - - headers := make([]*types.Header, len(blocks)) - for i, block := range blocks { - headers[i] = block.Header() - } - if n, err := fast.InsertHeaderChain(headers, 1); err != nil { - t.Fatalf("failed to insert header %d: %v", n, err) - } - if n, err := fast.InsertReceiptChain(blocks, receipts); err != nil { - t.Fatalf("failed to insert receipt %d: %v", n, err) - } - // Iterate over all chain data components, and cross reference - for i := 0; i < len(blocks); i++ { - num, hash := blocks[i].NumberU64(), blocks[i].Hash() - - if ftd, atd := fast.GetTdByHash(hash), archive.GetTdByHash(hash); ftd.Cmp(atd) != 0 { - t.Errorf("block #%d [%x]: td mismatch: have %v, want %v", num, hash, ftd, atd) - } - if fheader, aheader := fast.GetHeaderByHash(hash), archive.GetHeaderByHash(hash); fheader.Hash() != aheader.Hash() { - t.Errorf("block #%d [%x]: header mismatch: have %v, want %v", num, hash, fheader, aheader) - } - if fblock, ablock := fast.GetBlockByHash(hash), archive.GetBlockByHash(hash); fblock.Hash() != ablock.Hash() { - t.Errorf("block #%d [%x]: block mismatch: have %v, want %v", num, hash, fblock, ablock) - } else if types.DeriveSha(fblock.Transactions()) != types.DeriveSha(ablock.Transactions()) { - t.Errorf("block #%d [%x]: transactions mismatch: have %v, want %v", num, hash, fblock.Transactions(), ablock.Transactions()) - } else if types.CalcUncleHash(fblock.Uncles()) != types.CalcUncleHash(ablock.Uncles()) { - t.Errorf("block #%d [%x]: uncles mismatch: have %v, want %v", num, hash, fblock.Uncles(), ablock.Uncles()) - } - if freceipts, areceipts := rawdb.ReadReceipts(fastDb, hash, *rawdb.ReadHeaderNumber(fastDb, hash)), rawdb.ReadReceipts(archiveDb, hash, *rawdb.ReadHeaderNumber(archiveDb, hash)); types.DeriveSha(freceipts) != types.DeriveSha(areceipts) { - t.Errorf("block #%d [%x]: receipts mismatch: have %v, want %v", num, hash, freceipts, areceipts) - } - } - // Check that the canonical chains are the same between the databases - for i := 0; i < len(blocks)+1; i++ { - if fhash, ahash := rawdb.ReadCanonicalHash(fastDb, uint64(i)), rawdb.ReadCanonicalHash(archiveDb, uint64(i)); fhash != ahash { - t.Errorf("block #%d: canonical hash mismatch: have %v, want %v", i, fhash, ahash) - } - } -} - -// Tests that various import methods move the chain head pointers to the correct -// positions. -func TestLightVsFastVsFullChainHeads(t *testing.T) { - // Configure and generate a sample block chain - var ( - gendb = rawdb.NewMemoryDatabase() - key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - address = crypto.PubkeyToAddress(key.PublicKey) - funds = big.NewInt(1000000000) - gspec = &Genesis{Config: params.TestChainConfig, Alloc: GenesisAlloc{address: {Balance: funds}}} - genesis = gspec.MustCommit(gendb) - ) - height := uint64(1024) - blocks, receipts := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), gendb, int(height), nil) - - // Configure a subchain to roll back - remove := []common.Hash{} - for _, block := range blocks[height/2:] { - remove = append(remove, block.Hash()) - } - // Create a small assertion method to check the three heads - assert := func(t *testing.T, kind string, chain *BlockChain, header uint64, fast uint64, block uint64) { - if num := chain.CurrentBlock().NumberU64(); num != block { - t.Errorf("%s head block mismatch: have #%v, want #%v", kind, num, block) - } - if num := chain.CurrentFastBlock().NumberU64(); num != fast { - t.Errorf("%s head fast-block mismatch: have #%v, want #%v", kind, num, fast) - } - if num := chain.CurrentHeader().Number.Uint64(); num != header { - t.Errorf("%s head header mismatch: have #%v, want #%v", kind, num, header) - } - } - // Import the chain as an archive node and ensure all pointers are updated - archiveDb := rawdb.NewMemoryDatabase() - gspec.MustCommit(archiveDb) - - archive, _ := NewBlockChain(archiveDb, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - if n, err := archive.InsertChain(blocks); err != nil { - t.Fatalf("failed to process block %d: %v", n, err) - } - defer archive.Stop() - - assert(t, "archive", archive, height, height, height) - archive.Rollback(remove) - assert(t, "archive", archive, height/2, height/2, height/2) - - // Import the chain as a non-archive node and ensure all pointers are updated - fastDb := rawdb.NewMemoryDatabase() - gspec.MustCommit(fastDb) - fast, _ := NewBlockChain(fastDb, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer fast.Stop() - - headers := make([]*types.Header, len(blocks)) - for i, block := range blocks { - headers[i] = block.Header() - } - if n, err := fast.InsertHeaderChain(headers, 1); err != nil { - t.Fatalf("failed to insert header %d: %v", n, err) - } - if n, err := fast.InsertReceiptChain(blocks, receipts); err != nil { - t.Fatalf("failed to insert receipt %d: %v", n, err) - } - assert(t, "fast", fast, height, height, 0) - fast.Rollback(remove) - assert(t, "fast", fast, height/2, height/2, 0) - - // Import the chain as a light node and ensure all pointers are updated - lightDb := rawdb.NewMemoryDatabase() - gspec.MustCommit(lightDb) - - light, _ := NewBlockChain(lightDb, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - if n, err := light.InsertHeaderChain(headers, 1); err != nil { - t.Fatalf("failed to insert header %d: %v", n, err) - } - defer light.Stop() - - assert(t, "light", light, height, 0, 0) - light.Rollback(remove) - assert(t, "light", light, height/2, 0, 0) -} - -// Tests that chain reorganisations handle transaction removals and reinsertions. -func TestChainTxReorgs(t *testing.T) { - var ( - key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a") - key3, _ = crypto.HexToECDSA("49a7b37aa6f6645917e7b807e9d1c00d4fa71f18343b0d4122a4d2df64dd6fee") - addr1 = crypto.PubkeyToAddress(key1.PublicKey) - addr2 = crypto.PubkeyToAddress(key2.PublicKey) - addr3 = crypto.PubkeyToAddress(key3.PublicKey) - db = rawdb.NewMemoryDatabase() - gspec = &Genesis{ - Config: params.TestChainConfig, - GasLimit: 3141592, - Alloc: GenesisAlloc{ - addr1: {Balance: big.NewInt(1000000)}, - addr2: {Balance: big.NewInt(1000000)}, - addr3: {Balance: big.NewInt(1000000)}, - }, - } - genesis = gspec.MustCommit(db) - signer = types.NewEIP155Signer(gspec.Config.ChainID) - ) - - // Create two transactions shared between the chains: - // - postponed: transaction included at a later block in the forked chain - // - swapped: transaction included at the same block number in the forked chain - postponed, _ := types.SignTx(types.NewTransaction(0, addr1, big.NewInt(1000), params.TxGas, nil, nil), signer, key1) - swapped, _ := types.SignTx(types.NewTransaction(1, addr1, big.NewInt(1000), params.TxGas, nil, nil), signer, key1) - - // Create two transactions that will be dropped by the forked chain: - // - pastDrop: transaction dropped retroactively from a past block - // - freshDrop: transaction dropped exactly at the block where the reorg is detected - var pastDrop, freshDrop *types.Transaction - - // Create three transactions that will be added in the forked chain: - // - pastAdd: transaction added before the reorganization is detected - // - freshAdd: transaction added at the exact block the reorg is detected - // - futureAdd: transaction added after the reorg has already finished - var pastAdd, freshAdd, futureAdd *types.Transaction - - chain, _ := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), db, 3, func(i int, gen *BlockGen) { - switch i { - case 0: - pastDrop, _ = types.SignTx(types.NewTransaction(gen.TxNonce(addr2), addr2, big.NewInt(1000), params.TxGas, nil, nil), signer, key2) - - gen.AddTx(pastDrop) // This transaction will be dropped in the fork from below the split point - gen.AddTx(postponed) // This transaction will be postponed till block #3 in the fork - - case 2: - freshDrop, _ = types.SignTx(types.NewTransaction(gen.TxNonce(addr2), addr2, big.NewInt(1000), params.TxGas, nil, nil), signer, key2) - - gen.AddTx(freshDrop) // This transaction will be dropped in the fork from exactly at the split point - gen.AddTx(swapped) // This transaction will be swapped out at the exact height - - gen.OffsetTime(9) // Lower the block difficulty to simulate a weaker chain - } - }) - // Import the chain. This runs all block validation rules. - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - if i, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert original chain[%d]: %v", i, err) - } - defer blockchain.Stop() - - // overwrite the old chain - chain, _ = GenerateChain(gspec.Config, genesis, ethash.NewFaker(), db, 5, func(i int, gen *BlockGen) { - switch i { - case 0: - pastAdd, _ = types.SignTx(types.NewTransaction(gen.TxNonce(addr3), addr3, big.NewInt(1000), params.TxGas, nil, nil), signer, key3) - gen.AddTx(pastAdd) // This transaction needs to be injected during reorg - - case 2: - gen.AddTx(postponed) // This transaction was postponed from block #1 in the original chain - gen.AddTx(swapped) // This transaction was swapped from the exact current spot in the original chain - - freshAdd, _ = types.SignTx(types.NewTransaction(gen.TxNonce(addr3), addr3, big.NewInt(1000), params.TxGas, nil, nil), signer, key3) - gen.AddTx(freshAdd) // This transaction will be added exactly at reorg time - - case 3: - futureAdd, _ = types.SignTx(types.NewTransaction(gen.TxNonce(addr3), addr3, big.NewInt(1000), params.TxGas, nil, nil), signer, key3) - gen.AddTx(futureAdd) // This transaction will be added after a full reorg - } - }) - if _, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - - // removed tx - for i, tx := range (types.Transactions{pastDrop, freshDrop}) { - if txn, _, _, _ := rawdb.ReadTransaction(db, tx.Hash()); txn != nil { - t.Errorf("drop %d: tx %v found while shouldn't have been", i, txn) - } - if rcpt, _, _, _ := rawdb.ReadReceipt(db, tx.Hash()); rcpt != nil { - t.Errorf("drop %d: receipt %v found while shouldn't have been", i, rcpt) - } - } - // added tx - for i, tx := range (types.Transactions{pastAdd, freshAdd, futureAdd}) { - if txn, _, _, _ := rawdb.ReadTransaction(db, tx.Hash()); txn == nil { - t.Errorf("add %d: expected tx to be found", i) - } - if rcpt, _, _, _ := rawdb.ReadReceipt(db, tx.Hash()); rcpt == nil { - t.Errorf("add %d: expected receipt to be found", i) - } - } - // shared tx - for i, tx := range (types.Transactions{postponed, swapped}) { - if txn, _, _, _ := rawdb.ReadTransaction(db, tx.Hash()); txn == nil { - t.Errorf("share %d: expected tx to be found", i) - } - if rcpt, _, _, _ := rawdb.ReadReceipt(db, tx.Hash()); rcpt == nil { - t.Errorf("share %d: expected receipt to be found", i) - } - } -} - -func TestLogReorgs(t *testing.T) { - var ( - key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - addr1 = crypto.PubkeyToAddress(key1.PublicKey) - db = rawdb.NewMemoryDatabase() - // this code generates a log - code = common.Hex2Bytes("60606040525b7f24ec1d3ff24c2f6ff210738839dbc339cd45a5294d85c79361016243157aae7b60405180905060405180910390a15b600a8060416000396000f360606040526008565b00") - gspec = &Genesis{Config: params.TestChainConfig, Alloc: GenesisAlloc{addr1: {Balance: big.NewInt(10000000000000)}}} - genesis = gspec.MustCommit(db) - signer = types.NewEIP155Signer(gspec.Config.ChainID) - ) - - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer blockchain.Stop() - - rmLogsCh := make(chan RemovedLogsEvent) - blockchain.SubscribeRemovedLogsEvent(rmLogsCh) - chain, _ := GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), db, 2, func(i int, gen *BlockGen) { - if i == 1 { - tx, err := types.SignTx(types.NewContractCreation(gen.TxNonce(addr1), new(big.Int), 1000000, new(big.Int), code), signer, key1) - if err != nil { - t.Fatalf("failed to create tx: %v", err) - } - gen.AddTx(tx) - } - }) - if _, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert chain: %v", err) - } - - chain, _ = GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), db, 3, func(i int, gen *BlockGen) {}) - if _, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - - timeout := time.NewTimer(1 * time.Second) - select { - case ev := <-rmLogsCh: - if len(ev.Logs) == 0 { - t.Error("expected logs") - } - case <-timeout.C: - t.Fatal("Timeout. There is no RemovedLogsEvent has been sent.") - } -} - -func TestLogRebirth(t *testing.T) { - var ( - key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - addr1 = crypto.PubkeyToAddress(key1.PublicKey) - db = memorydb.New() - - // this code generates a log - code = common.Hex2Bytes("60606040525b7f24ec1d3ff24c2f6ff210738839dbc339cd45a5294d85c79361016243157aae7b60405180905060405180910390a15b600a8060416000396000f360606040526008565b00") - gspec = &Genesis{Config: params.TestChainConfig, Alloc: GenesisAlloc{addr1: {Balance: big.NewInt(10000000000000)}}} - genesis = gspec.MustCommit(db) - signer = types.NewEIP155Signer(gspec.Config.ChainID) - newLogCh = make(chan bool) - ) - - // listenNewLog checks whether the received logs number is equal with expected. - listenNewLog := func(sink chan []*types.Log, expect int) { - cnt := 0 - for { - select { - case logs := <-sink: - cnt += len(logs) - case <-time.NewTimer(5 * time.Second).C: - // new logs timeout - newLogCh <- false - return - } - if cnt == expect { - break - } else if cnt > expect { - // redundant logs received - newLogCh <- false - return - } - } - select { - case <-sink: - // redundant logs received - newLogCh <- false - case <-time.NewTimer(100 * time.Millisecond).C: - newLogCh <- true - } - } - - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer blockchain.Stop() - - logsCh := make(chan []*types.Log) - blockchain.SubscribeLogsEvent(logsCh) - - rmLogsCh := make(chan RemovedLogsEvent) - blockchain.SubscribeRemovedLogsEvent(rmLogsCh) - - chain, _ := GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), db, 2, func(i int, gen *BlockGen) { - if i == 1 { - tx, err := types.SignTx(types.NewContractCreation(gen.TxNonce(addr1), new(big.Int), 1000000, new(big.Int), code), signer, key1) - if err != nil { - t.Fatalf("failed to create tx: %v", err) - } - gen.AddTx(tx) - } - }) - - // Spawn a goroutine to receive log events - go listenNewLog(logsCh, 1) - if _, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert chain: %v", err) - } - if !<-newLogCh { - t.Fatalf("failed to receive new log event") - } - - // Generate long reorg chain - forkChain, _ := GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), db, 2, func(i int, gen *BlockGen) { - if i == 1 { - tx, err := types.SignTx(types.NewContractCreation(gen.TxNonce(addr1), new(big.Int), 1000000, new(big.Int), code), signer, key1) - if err != nil { - t.Fatalf("failed to create tx: %v", err) - } - gen.AddTx(tx) - // Higher block difficulty - gen.OffsetTime(-9) - } - }) - - // Spawn a goroutine to receive log events - go listenNewLog(logsCh, 1) - if _, err := blockchain.InsertChain(forkChain); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - if !<-newLogCh { - t.Fatalf("failed to receive new log event") - } - // Ensure removedLog events received - select { - case ev := <-rmLogsCh: - if len(ev.Logs) == 0 { - t.Error("expected logs") - } - case <-time.NewTimer(1 * time.Second).C: - t.Fatal("Timeout. There is no RemovedLogsEvent has been sent.") - } - - newBlocks, _ := GenerateChain(params.TestChainConfig, chain[len(chain)-1], ethash.NewFaker(), db, 1, func(i int, gen *BlockGen) {}) - go listenNewLog(logsCh, 1) - if _, err := blockchain.InsertChain(newBlocks); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - // Ensure removedLog events received - select { - case ev := <-rmLogsCh: - if len(ev.Logs) == 0 { - t.Error("expected logs") - } - case <-time.NewTimer(1 * time.Second).C: - t.Fatal("Timeout. There is no RemovedLogsEvent has been sent.") - } - // Rebirth logs should omit a newLogEvent - if !<-newLogCh { - t.Fatalf("failed to receive new log event") - } -} - -func TestSideLogRebirth(t *testing.T) { - var ( - key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - addr1 = crypto.PubkeyToAddress(key1.PublicKey) - db = memorydb.New() - - // this code generates a log - code = common.Hex2Bytes("60606040525b7f24ec1d3ff24c2f6ff210738839dbc339cd45a5294d85c79361016243157aae7b60405180905060405180910390a15b600a8060416000396000f360606040526008565b00") - gspec = &Genesis{Config: params.TestChainConfig, Alloc: GenesisAlloc{addr1: {Balance: big.NewInt(10000000000000)}}} - genesis = gspec.MustCommit(db) - signer = types.NewEIP155Signer(gspec.Config.ChainID) - newLogCh = make(chan bool) - ) - - // listenNewLog checks whether the received logs number is equal with expected. - listenNewLog := func(sink chan []*types.Log, expect int) { - cnt := 0 - for { - select { - case logs := <-sink: - cnt += len(logs) - case <-time.NewTimer(5 * time.Second).C: - // new logs timeout - newLogCh <- false - return - } - if cnt == expect { - break - } else if cnt > expect { - // redundant logs received - newLogCh <- false - return - } - } - select { - case <-sink: - // redundant logs received - newLogCh <- false - case <-time.NewTimer(100 * time.Millisecond).C: - newLogCh <- true - } - } - - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer blockchain.Stop() - - logsCh := make(chan []*types.Log) - blockchain.SubscribeLogsEvent(logsCh) - - chain, _ := GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), db, 2, func(i int, gen *BlockGen) { - if i == 1 { - // Higher block difficulty - gen.OffsetTime(-9) - } - }) - if _, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - - // Generate side chain with lower difficulty - sideChain, _ := GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), db, 2, func(i int, gen *BlockGen) { - if i == 1 { - tx, err := types.SignTx(types.NewContractCreation(gen.TxNonce(addr1), new(big.Int), 1000000, new(big.Int), code), signer, key1) - if err != nil { - t.Fatalf("failed to create tx: %v", err) - } - gen.AddTx(tx) - } - }) - if _, err := blockchain.InsertChain(sideChain); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - - // Generate a new block based on side chain - newBlocks, _ := GenerateChain(params.TestChainConfig, sideChain[len(sideChain)-1], ethash.NewFaker(), db, 1, func(i int, gen *BlockGen) {}) - go listenNewLog(logsCh, 1) - if _, err := blockchain.InsertChain(newBlocks); err != nil { - t.Fatalf("failed to insert forked chain: %v", err) - } - // Rebirth logs should omit a newLogEvent - if !<-newLogCh { - t.Fatalf("failed to receive new log event") - } -} - -func TestReorgSideEvent(t *testing.T) { - var ( - db = rawdb.NewMemoryDatabase() - key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - addr1 = crypto.PubkeyToAddress(key1.PublicKey) - gspec = &Genesis{ - Config: params.TestChainConfig, - Alloc: GenesisAlloc{addr1: {Balance: big.NewInt(10000000000000)}}, - } - genesis = gspec.MustCommit(db) - signer = types.NewEIP155Signer(gspec.Config.ChainID) - ) - - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer blockchain.Stop() - - chain, _ := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), db, 3, func(i int, gen *BlockGen) {}) - if _, err := blockchain.InsertChain(chain); err != nil { - t.Fatalf("failed to insert chain: %v", err) - } - - replacementBlocks, _ := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), db, 4, func(i int, gen *BlockGen) { - tx, err := types.SignTx(types.NewContractCreation(gen.TxNonce(addr1), new(big.Int), 1000000, new(big.Int), nil), signer, key1) - if i == 2 { - gen.OffsetTime(-9) - } - if err != nil { - t.Fatalf("failed to create tx: %v", err) - } - gen.AddTx(tx) - }) - chainSideCh := make(chan ChainSideEvent, 64) - blockchain.SubscribeChainSideEvent(chainSideCh) - if _, err := blockchain.InsertChain(replacementBlocks); err != nil { - t.Fatalf("failed to insert chain: %v", err) - } - - // first two block of the secondary chain are for a brief moment considered - // side chains because up to that point the first one is considered the - // heavier chain. - expectedSideHashes := map[common.Hash]bool{ - replacementBlocks[0].Hash(): true, - replacementBlocks[1].Hash(): true, - chain[0].Hash(): true, - chain[1].Hash(): true, - chain[2].Hash(): true, - } - - i := 0 - - const timeoutDura = 10 * time.Second - timeout := time.NewTimer(timeoutDura) -done: - for { - select { - case ev := <-chainSideCh: - block := ev.Block - if _, ok := expectedSideHashes[block.Hash()]; !ok { - t.Errorf("%d: didn't expect %x to be in side chain", i, block.Hash()) - } - i++ - - if i == len(expectedSideHashes) { - timeout.Stop() - - break done - } - timeout.Reset(timeoutDura) - - case <-timeout.C: - t.Fatal("Timeout. Possibly not all blocks were triggered for sideevent") - } - } - - // make sure no more events are fired - select { - case e := <-chainSideCh: - t.Errorf("unexpected event fired: %v", e) - case <-time.After(250 * time.Millisecond): - } - -} - -// Tests if the canonical block can be fetched from the database during chain insertion. -func TestCanonicalBlockRetrieval(t *testing.T) { - _, blockchain, err := newCanonical(ethash.NewFaker(), 0, true) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - defer blockchain.Stop() - - chain, _ := GenerateChain(blockchain.chainConfig, blockchain.genesisBlock, ethash.NewFaker(), blockchain.db, 10, func(i int, gen *BlockGen) {}) - - var pend sync.WaitGroup - pend.Add(len(chain)) - - for i := range chain { - go func(block *types.Block) { - defer pend.Done() - - // try to retrieve a block by its canonical hash and see if the block data can be retrieved. - for { - ch := rawdb.ReadCanonicalHash(blockchain.db, block.NumberU64()) - if ch == (common.Hash{}) { - continue // busy wait for canonical hash to be written - } - if ch != block.Hash() { - t.Fatalf("unknown canonical hash, want %s, got %s", block.Hash().Hex(), ch.Hex()) - } - fb := rawdb.ReadBlock(blockchain.db, ch, block.NumberU64()) - if fb == nil { - t.Fatalf("unable to retrieve block %d for canonical hash: %s", block.NumberU64(), ch.Hex()) - } - if fb.Hash() != block.Hash() { - t.Fatalf("invalid block hash for block %d, want %s, got %s", block.NumberU64(), block.Hash().Hex(), fb.Hash().Hex()) - } - return - } - }(chain[i]) - - if _, err := blockchain.InsertChain(types.Blocks{chain[i]}); err != nil { - t.Fatalf("failed to insert block %d: %v", i, err) - } - } - pend.Wait() -} - -func TestEIP155Transition(t *testing.T) { - // Configure and generate a sample block chain - var ( - db = rawdb.NewMemoryDatabase() - key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - address = crypto.PubkeyToAddress(key.PublicKey) - funds = big.NewInt(1000000000) - deleteAddr = common.Address{1} - gspec = &Genesis{ - Config: ¶ms.ChainConfig{ChainID: big.NewInt(1), EIP155Block: big.NewInt(2), HomesteadBlock: new(big.Int)}, - Alloc: GenesisAlloc{address: {Balance: funds}, deleteAddr: {Balance: new(big.Int)}}, - } - genesis = gspec.MustCommit(db) - ) - - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer blockchain.Stop() - - blocks, _ := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), db, 4, func(i int, block *BlockGen) { - var ( - tx *types.Transaction - err error - basicTx = func(signer types.Signer) (*types.Transaction, error) { - return types.SignTx(types.NewTransaction(block.TxNonce(address), common.Address{}, new(big.Int), 21000, new(big.Int), nil), signer, key) - } - ) - switch i { - case 0: - tx, err = basicTx(types.HomesteadSigner{}) - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - case 2: - tx, err = basicTx(types.HomesteadSigner{}) - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - - tx, err = basicTx(types.NewEIP155Signer(gspec.Config.ChainID)) - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - case 3: - tx, err = basicTx(types.HomesteadSigner{}) - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - - tx, err = basicTx(types.NewEIP155Signer(gspec.Config.ChainID)) - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - } - }) - - if _, err := blockchain.InsertChain(blocks); err != nil { - t.Fatal(err) - } - block := blockchain.GetBlockByNumber(1) - if block.Transactions()[0].Protected() { - t.Error("Expected block[0].txs[0] to not be replay protected") - } - - block = blockchain.GetBlockByNumber(3) - if block.Transactions()[0].Protected() { - t.Error("Expected block[3].txs[0] to not be replay protected") - } - if !block.Transactions()[1].Protected() { - t.Error("Expected block[3].txs[1] to be replay protected") - } - if _, err := blockchain.InsertChain(blocks[4:]); err != nil { - t.Fatal(err) - } - - // generate an invalid chain id transaction - config := ¶ms.ChainConfig{ChainID: big.NewInt(2), EIP155Block: big.NewInt(2), HomesteadBlock: new(big.Int)} - blocks, _ = GenerateChain(config, blocks[len(blocks)-1], ethash.NewFaker(), db, 4, func(i int, block *BlockGen) { - var ( - tx *types.Transaction - err error - basicTx = func(signer types.Signer) (*types.Transaction, error) { - return types.SignTx(types.NewTransaction(block.TxNonce(address), common.Address{}, new(big.Int), 21000, new(big.Int), nil), signer, key) - } - ) - if i == 0 { - tx, err = basicTx(types.NewEIP155Signer(big.NewInt(2))) - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - } - }) - _, err := blockchain.InsertChain(blocks) - if err != types.ErrInvalidChainId { - t.Error("expected error:", types.ErrInvalidChainId) - } -} - -func TestEIP161AccountRemoval(t *testing.T) { - // Configure and generate a sample block chain - var ( - db = rawdb.NewMemoryDatabase() - key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - address = crypto.PubkeyToAddress(key.PublicKey) - funds = big.NewInt(1000000000) - theAddr = common.Address{1} - gspec = &Genesis{ - Config: ¶ms.ChainConfig{ - ChainID: big.NewInt(1), - HomesteadBlock: new(big.Int), - EIP155Block: new(big.Int), - EIP158Block: big.NewInt(2), - }, - Alloc: GenesisAlloc{address: {Balance: funds}}, - } - genesis = gspec.MustCommit(db) - ) - blockchain, _ := NewBlockChain(db, nil, gspec.Config, ethash.NewFaker(), vm.Config{}, nil) - defer blockchain.Stop() - - blocks, _ := GenerateChain(gspec.Config, genesis, ethash.NewFaker(), db, 3, func(i int, block *BlockGen) { - var ( - tx *types.Transaction - err error - signer = types.NewEIP155Signer(gspec.Config.ChainID) - ) - switch i { - case 0: - tx, err = types.SignTx(types.NewTransaction(block.TxNonce(address), theAddr, new(big.Int), 21000, new(big.Int), nil), signer, key) - case 1: - tx, err = types.SignTx(types.NewTransaction(block.TxNonce(address), theAddr, new(big.Int), 21000, new(big.Int), nil), signer, key) - case 2: - tx, err = types.SignTx(types.NewTransaction(block.TxNonce(address), theAddr, new(big.Int), 21000, new(big.Int), nil), signer, key) - } - if err != nil { - t.Fatal(err) - } - block.AddTx(tx) - }) - // account must exist pre eip 161 - if _, err := blockchain.InsertChain(types.Blocks{blocks[0]}); err != nil { - t.Fatal(err) - } - if st, _ := blockchain.State(); !st.Exist(theAddr) { - t.Error("expected account to exist") - } - - // account needs to be deleted post eip 161 - if _, err := blockchain.InsertChain(types.Blocks{blocks[1]}); err != nil { - t.Fatal(err) - } - if st, _ := blockchain.State(); st.Exist(theAddr) { - t.Error("account should not exist") - } - - // account musn't be created post eip 161 - if _, err := blockchain.InsertChain(types.Blocks{blocks[2]}); err != nil { - t.Fatal(err) - } - if st, _ := blockchain.State(); st.Exist(theAddr) { - t.Error("account should not exist") - } -} - -// This is a regression test (i.e. as weird as it is, don't delete it ever), which -// tests that under weird reorg conditions the blockchain and its internal header- -// chain return the same latest block/header. -// -// https://github.com/ethereum/go-ethereum/pull/15941 -func TestBlockchainHeaderchainReorgConsistency(t *testing.T) { - // Generate a canonical chain to act as the main dataset - engine := ethash.NewFaker() - - db := rawdb.NewMemoryDatabase() - genesis := new(Genesis).MustCommit(db) - blocks, _ := GenerateChain(params.TestChainConfig, genesis, engine, db, 64, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{1}) }) - - // Generate a bunch of fork blocks, each side forking from the canonical chain - forks := make([]*types.Block, len(blocks)) - for i := 0; i < len(forks); i++ { - parent := genesis - if i > 0 { - parent = blocks[i-1] - } - fork, _ := GenerateChain(params.TestChainConfig, parent, engine, db, 1, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{2}) }) - forks[i] = fork[0] - } - // Import the canonical and fork chain side by side, verifying the current block - // and current header consistency - diskdb := rawdb.NewMemoryDatabase() - new(Genesis).MustCommit(diskdb) - - chain, err := NewBlockChain(diskdb, nil, params.TestChainConfig, engine, vm.Config{}, nil) - if err != nil { - t.Fatalf("failed to create tester chain: %v", err) - } - for i := 0; i < len(blocks); i++ { - if _, err := chain.InsertChain(blocks[i : i+1]); err != nil { - t.Fatalf("block %d: failed to insert into chain: %v", i, err) - } - if chain.CurrentBlock().Hash() != chain.CurrentHeader().Hash() { - t.Errorf("block %d: current block/header mismatch: block #%d [%x…], header #%d [%x…]", i, chain.CurrentBlock().Number(), chain.CurrentBlock().Hash().Bytes()[:4], chain.CurrentHeader().Number, chain.CurrentHeader().Hash().Bytes()[:4]) - } - if _, err := chain.InsertChain(forks[i : i+1]); err != nil { - t.Fatalf(" fork %d: failed to insert into chain: %v", i, err) - } - if chain.CurrentBlock().Hash() != chain.CurrentHeader().Hash() { - t.Errorf(" fork %d: current block/header mismatch: block #%d [%x…], header #%d [%x…]", i, chain.CurrentBlock().Number(), chain.CurrentBlock().Hash().Bytes()[:4], chain.CurrentHeader().Number, chain.CurrentHeader().Hash().Bytes()[:4]) - } - } -} - -// Tests that importing small side forks doesn't leave junk in the trie database -// cache (which would eventually cause memory issues). -func TestTrieForkGC(t *testing.T) { - // Generate a canonical chain to act as the main dataset - engine := ethash.NewFaker() - - db := rawdb.NewMemoryDatabase() - genesis := new(Genesis).MustCommit(db) - blocks, _ := GenerateChain(params.TestChainConfig, genesis, engine, db, 2*triesInMemory, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{1}) }) - - // Generate a bunch of fork blocks, each side forking from the canonical chain - forks := make([]*types.Block, len(blocks)) - for i := 0; i < len(forks); i++ { - parent := genesis - if i > 0 { - parent = blocks[i-1] - } - fork, _ := GenerateChain(params.TestChainConfig, parent, engine, db, 1, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{2}) }) - forks[i] = fork[0] - } - // Import the canonical and fork chain side by side, forcing the trie cache to cache both - diskdb := rawdb.NewMemoryDatabase() - new(Genesis).MustCommit(diskdb) - - chain, err := NewBlockChain(diskdb, nil, params.TestChainConfig, engine, vm.Config{}, nil) - if err != nil { - t.Fatalf("failed to create tester chain: %v", err) - } - for i := 0; i < len(blocks); i++ { - if _, err := chain.InsertChain(blocks[i : i+1]); err != nil { - t.Fatalf("block %d: failed to insert into chain: %v", i, err) - } - if _, err := chain.InsertChain(forks[i : i+1]); err != nil { - t.Fatalf("fork %d: failed to insert into chain: %v", i, err) - } - } - // Dereference all the recent tries and ensure no past trie is left in - for i := 0; i < triesInMemory; i++ { - chain.stateCache.TrieDB().Dereference(blocks[len(blocks)-1-i].Root()) - chain.stateCache.TrieDB().Dereference(forks[len(blocks)-1-i].Root()) - } - if len(chain.stateCache.TrieDB().Nodes()) > 0 { - t.Fatalf("stale tries still alive after garbase collection") - } -} - -// Tests that doing large reorgs works even if the state associated with the -// forking point is not available any more. -func TestLargeReorgTrieGC(t *testing.T) { - // Generate the original common chain segment and the two competing forks - engine := ethash.NewFaker() - - db := rawdb.NewMemoryDatabase() - genesis := new(Genesis).MustCommit(db) - - shared, _ := GenerateChain(params.TestChainConfig, genesis, engine, db, 64, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{1}) }) - original, _ := GenerateChain(params.TestChainConfig, shared[len(shared)-1], engine, db, 2*triesInMemory, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{2}) }) - competitor, _ := GenerateChain(params.TestChainConfig, shared[len(shared)-1], engine, db, 2*triesInMemory+1, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{3}) }) - - // Import the shared chain and the original canonical one - diskdb := rawdb.NewMemoryDatabase() - new(Genesis).MustCommit(diskdb) - - chain, err := NewBlockChain(diskdb, nil, params.TestChainConfig, engine, vm.Config{}, nil) - if err != nil { - t.Fatalf("failed to create tester chain: %v", err) - } - if _, err := chain.InsertChain(shared); err != nil { - t.Fatalf("failed to insert shared chain: %v", err) - } - if _, err := chain.InsertChain(original); err != nil { - t.Fatalf("failed to insert original chain: %v", err) - } - // Ensure that the state associated with the forking point is pruned away - if node, _ := chain.stateCache.TrieDB().Node(shared[len(shared)-1].Root()); node != nil { - t.Fatalf("common-but-old ancestor still cache") - } - // Import the competitor chain without exceeding the canonical's TD and ensure - // we have not processed any of the blocks (protection against malicious blocks) - if _, err := chain.InsertChain(competitor[:len(competitor)-2]); err != nil { - t.Fatalf("failed to insert competitor chain: %v", err) - } - for i, block := range competitor[:len(competitor)-2] { - if node, _ := chain.stateCache.TrieDB().Node(block.Root()); node != nil { - t.Fatalf("competitor %d: low TD chain became processed", i) - } - } - // Import the head of the competitor chain, triggering the reorg and ensure we - // successfully reprocess all the stashed away blocks. - if _, err := chain.InsertChain(competitor[len(competitor)-2:]); err != nil { - t.Fatalf("failed to finalize competitor chain: %v", err) - } - for i, block := range competitor[:len(competitor)-triesInMemory] { - if node, _ := chain.stateCache.TrieDB().Node(block.Root()); node != nil { - t.Fatalf("competitor %d: competing chain state missing", i) - } - } -} - -// Benchmarks large blocks with value transfers to non-existing accounts -func benchmarkLargeNumberOfValueToNonexisting(b *testing.B, numTxs, numBlocks int, recipientFn func(uint64) common.Address, dataFn func(uint64) []byte) { - var ( - signer = types.HomesteadSigner{} - testBankKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - testBankAddress = crypto.PubkeyToAddress(testBankKey.PublicKey) - bankFunds = big.NewInt(100000000000000000) - gspec = Genesis{ - Config: params.TestChainConfig, - Alloc: GenesisAlloc{ - testBankAddress: {Balance: bankFunds}, - common.HexToAddress("0xc0de"): { - Code: []byte{0x60, 0x01, 0x50}, - Balance: big.NewInt(0), - }, // push 1, pop - }, - GasLimit: 100e6, // 100 M - } - ) - // Generate the original common chain segment and the two competing forks - engine := ethash.NewFaker() - db := rawdb.NewMemoryDatabase() - genesis := gspec.MustCommit(db) - - blockGenerator := func(i int, block *BlockGen) { - block.SetCoinbase(common.Address{1}) - for txi := 0; txi < numTxs; txi++ { - uniq := uint64(i*numTxs + txi) - recipient := recipientFn(uniq) - //recipient := common.BigToAddress(big.NewInt(0).SetUint64(1337 + uniq)) - tx, err := types.SignTx(types.NewTransaction(uniq, recipient, big.NewInt(1), params.TxGas, big.NewInt(1), nil), signer, testBankKey) - if err != nil { - b.Error(err) - } - block.AddTx(tx) - } - } - - shared, _ := GenerateChain(params.TestChainConfig, genesis, engine, db, numBlocks, blockGenerator) - b.StopTimer() - b.ResetTimer() - for i := 0; i < b.N; i++ { - // Import the shared chain and the original canonical one - diskdb := rawdb.NewMemoryDatabase() - gspec.MustCommit(diskdb) - - chain, err := NewBlockChain(diskdb, nil, params.TestChainConfig, engine, vm.Config{}, nil) - if err != nil { - b.Fatalf("failed to create tester chain: %v", err) - } - b.StartTimer() - if _, err := chain.InsertChain(shared); err != nil { - b.Fatalf("failed to insert shared chain: %v", err) - } - b.StopTimer() - if got := chain.CurrentBlock().Transactions().Len(); got != numTxs*numBlocks { - b.Fatalf("Transactions were not included, expected %d, got %d", numTxs*numBlocks, got) - - } - } -} -func BenchmarkBlockChain_1x1000ValueTransferToNonexisting(b *testing.B) { - var ( - numTxs = 1000 - numBlocks = 1 - ) - - recipientFn := func(nonce uint64) common.Address { - return common.BigToAddress(big.NewInt(0).SetUint64(1337 + nonce)) - } - dataFn := func(nonce uint64) []byte { - return nil - } - - benchmarkLargeNumberOfValueToNonexisting(b, numTxs, numBlocks, recipientFn, dataFn) -} -func BenchmarkBlockChain_1x1000ValueTransferToExisting(b *testing.B) { - var ( - numTxs = 1000 - numBlocks = 1 - ) - b.StopTimer() - b.ResetTimer() - - recipientFn := func(nonce uint64) common.Address { - return common.BigToAddress(big.NewInt(0).SetUint64(1337)) - } - dataFn := func(nonce uint64) []byte { - return nil - } - - benchmarkLargeNumberOfValueToNonexisting(b, numTxs, numBlocks, recipientFn, dataFn) -} -func BenchmarkBlockChain_1x1000Executions(b *testing.B) { - var ( - numTxs = 1000 - numBlocks = 1 - ) - b.StopTimer() - b.ResetTimer() - - recipientFn := func(nonce uint64) common.Address { - return common.BigToAddress(big.NewInt(0).SetUint64(0xc0de)) - } - dataFn := func(nonce uint64) []byte { - return nil - } - - benchmarkLargeNumberOfValueToNonexisting(b, numTxs, numBlocks, recipientFn, dataFn) -} - -// Tests that importing a very large side fork, which is larger than the canon chain, -// but where the difficulty per block is kept low: this means that it will not -// overtake the 'canon' chain until after it's passed canon by about 200 blocks. -// -// Details at: -// - https://github.com/ethereum/go-ethereum/issues/18977 -// - https://github.com/ethereum/go-ethereum/pull/18988 -func TestLowDiffLongChain(t *testing.T) { - // Generate a canonical chain to act as the main dataset - engine := ethash.NewFaker() - db := rawdb.NewMemoryDatabase() - genesis := new(Genesis).MustCommit(db) - - // We must use a pretty long chain to ensure that the fork doesn't overtake us - // until after at least 128 blocks post tip - blocks, _ := GenerateChain(params.TestChainConfig, genesis, engine, db, 6*triesInMemory, func(i int, b *BlockGen) { - b.SetCoinbase(common.Address{1}) - b.OffsetTime(-9) - }) - - // Import the canonical chain - diskdb := rawdb.NewMemoryDatabase() - new(Genesis).MustCommit(diskdb) - - chain, err := NewBlockChain(diskdb, nil, params.TestChainConfig, engine, vm.Config{}, nil) - if err != nil { - t.Fatalf("failed to create tester chain: %v", err) - } - if n, err := chain.InsertChain(blocks); err != nil { - t.Fatalf("block %d: failed to insert into chain: %v", n, err) - } - // Generate fork chain, starting from an early block - parent := blocks[10] - fork, _ := GenerateChain(params.TestChainConfig, parent, engine, db, 8*triesInMemory, func(i int, b *BlockGen) { - b.SetCoinbase(common.Address{2}) - }) - - // And now import the fork - if i, err := chain.InsertChain(fork); err != nil { - t.Fatalf("block %d: failed to insert into chain: %v", i, err) - } - head := chain.CurrentBlock() - if got := fork[len(fork)-1].Hash(); got != head.Hash() { - t.Fatalf("head wrong, expected %x got %x", head.Hash(), got) - } - // Sanity check that all the canonical numbers are present - header := chain.CurrentHeader() - for number := head.NumberU64(); number > 0; number-- { - if hash := chain.GetHeaderByNumber(number).Hash(); hash != header.Hash() { - t.Fatalf("header %d: canonical hash mismatch: have %x, want %x", number, hash, header.Hash()) - } - header = chain.GetHeader(header.ParentHash, number-1) - } -} - -// Tests that importing a sidechain (S), where -// - S is sidechain, containing blocks [Sn...Sm] -// - C is canon chain, containing blocks [G..Cn..Cm] -// - A common ancestor is placed at prune-point + blocksBetweenCommonAncestorAndPruneblock -// - The sidechain S is prepended with numCanonBlocksInSidechain blocks from the canon chain -func testSideImport(t *testing.T, numCanonBlocksInSidechain, blocksBetweenCommonAncestorAndPruneblock int) { - - // Generate a canonical chain to act as the main dataset - engine := ethash.NewFaker() - db := rawdb.NewMemoryDatabase() - genesis := new(Genesis).MustCommit(db) - - // Generate and import the canonical chain - blocks, _ := GenerateChain(params.TestChainConfig, genesis, engine, db, 2*triesInMemory, nil) - diskdb := rawdb.NewMemoryDatabase() - new(Genesis).MustCommit(diskdb) - chain, err := NewBlockChain(diskdb, nil, params.TestChainConfig, engine, vm.Config{}, nil) - if err != nil { - t.Fatalf("failed to create tester chain: %v", err) - } - if n, err := chain.InsertChain(blocks); err != nil { - t.Fatalf("block %d: failed to insert into chain: %v", n, err) - } - - lastPrunedIndex := len(blocks) - triesInMemory - 1 - lastPrunedBlock := blocks[lastPrunedIndex] - firstNonPrunedBlock := blocks[len(blocks)-triesInMemory] - - // Verify pruning of lastPrunedBlock - if chain.HasBlockAndState(lastPrunedBlock.Hash(), lastPrunedBlock.NumberU64()) { - t.Errorf("Block %d not pruned", lastPrunedBlock.NumberU64()) - } - // Verify firstNonPrunedBlock is not pruned - if !chain.HasBlockAndState(firstNonPrunedBlock.Hash(), firstNonPrunedBlock.NumberU64()) { - t.Errorf("Block %d pruned", firstNonPrunedBlock.NumberU64()) - } - // Generate the sidechain - // First block should be a known block, block after should be a pruned block. So - // canon(pruned), side, side... - - // Generate fork chain, make it longer than canon - parentIndex := lastPrunedIndex + blocksBetweenCommonAncestorAndPruneblock - parent := blocks[parentIndex] - fork, _ := GenerateChain(params.TestChainConfig, parent, engine, db, 2*triesInMemory, func(i int, b *BlockGen) { - b.SetCoinbase(common.Address{2}) - }) - // Prepend the parent(s) - var sidechain []*types.Block - for i := numCanonBlocksInSidechain; i > 0; i-- { - sidechain = append(sidechain, blocks[parentIndex+1-i]) - } - sidechain = append(sidechain, fork...) - _, err = chain.InsertChain(sidechain) - if err != nil { - t.Errorf("Got error, %v", err) - } - head := chain.CurrentBlock() - if got := fork[len(fork)-1].Hash(); got != head.Hash() { - t.Fatalf("head wrong, expected %x got %x", head.Hash(), got) - } -} - -// Tests that importing a sidechain (S), where -// - S is sidechain, containing blocks [Sn...Sm] -// - C is canon chain, containing blocks [G..Cn..Cm] -// - The common ancestor Cc is pruned -// - The first block in S: Sn, is == Cn -// That is: the sidechain for import contains some blocks already present in canon chain. -// So the blocks are -// [ Cn, Cn+1, Cc, Sn+3 ... Sm] -// ^ ^ ^ pruned -func TestPrunedImportSide(t *testing.T) { - //glogger := log.NewGlogHandler(log.StreamHandler(os.Stdout, log.TerminalFormat(false))) - //glogger.Verbosity(3) - //log.Root().SetHandler(log.Handler(glogger)) - testSideImport(t, 3, 3) - testSideImport(t, 3, -3) - testSideImport(t, 10, 0) - testSideImport(t, 1, 10) - testSideImport(t, 1, -10) -} - -func TestProcessingStateDiffs(t *testing.T) { - defaultTrieCleanCache := 256 - defaultTrieDirtyCache := 256 - defaultTrieTimeout := 60 * time.Minute - cacheConfig := &CacheConfig{ - TrieDirtyDisabled: false, - TrieCleanLimit: defaultTrieCleanCache, - TrieDirtyLimit: defaultTrieDirtyCache, - TrieTimeLimit: defaultTrieTimeout, - ProcessingStateDiffs: true, - } - db := rawdb.NewMemoryDatabase() - genesis := new(Genesis).MustCommit(db) - numberOfBlocks := triesInMemory - engine := ethash.NewFaker() - blockchain, _ := NewBlockChain(db, cacheConfig, params.AllEthashProtocolChanges, engine, vm.Config{}, nil) - blocks := makeBlockChain(genesis, numberOfBlocks+1, engine, db, canonicalSeed) - _, err := blockchain.InsertChain(blocks) - if err != nil { - t.Fatalf("failed to create pristine chain: %v", err) - } - defer blockchain.Stop() - - //when adding a root hash to the collection, it will increment the count - firstStateRoot := blocks[0].Root() - blockchain.AddToStateDiffProcessedCollection(firstStateRoot) - value, ok := blockchain.stateDiffsProcessed[firstStateRoot] - if !ok { - t.Error("state root not found in collection") - } - if value != 1 { - t.Error("state root count not correct", "want", 1, "got", value) - } - - blockchain.AddToStateDiffProcessedCollection(firstStateRoot) - value, ok = blockchain.stateDiffsProcessed[firstStateRoot] - if !ok { - t.Error("state root not found in collection") - } - if value != 2 { - t.Error("state root count not correct", "want", 2, "got", value) - } - - moreBlocks := makeBlockChain(blocks[len(blocks)-1], 1, engine, db, canonicalSeed) - _, err = blockchain.InsertChain(moreBlocks) - - //a root hash can be dereferenced when it's state diff and it's child's state diff have been processed - //(i.e. it has a count of 2 in stateDiffsProcessed) - nodes := blockchain.stateCache.TrieDB().Nodes() - if containsRootHash(nodes, firstStateRoot) { - t.Errorf("stateRoot %s in nodes, want: %t, got: %t", firstStateRoot.Hex(), false, true) - } - - //a root hash should still be in the in-mem db if it's child's state diff hasn't yet been processed - //(i.e. it has a count of 1 stateDiffsProcessed) - secondStateRoot := blocks[1].Root() - blockchain.AddToStateDiffProcessedCollection(secondStateRoot) - if !containsRootHash(nodes, secondStateRoot) { - t.Errorf("stateRoot %s in nodes, want: %t, got: %t", secondStateRoot.Hex(), true, false) - } - - //the stateDiffsProcessed collection is cleaned up once a hash has been dereferenced - _, ok = blockchain.stateDiffsProcessed[firstStateRoot] - if ok { - t.Errorf("stateRoot %s in stateDiffsProcessed collection, want: %t, got: %t", - firstStateRoot.Hex(), - false, - ok, - ) - } -} - -func containsRootHash(collection []common.Hash, hash common.Hash) bool { - for _, n := range collection { - if n == hash { - return true - } - } - return false -} diff --git a/vendor/github.com/ethereum/go-ethereum/core/types/block_test.go b/vendor/github.com/ethereum/go-ethereum/core/types/block_test.go deleted file mode 100644 index bdd0b657..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/types/block_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package types - -import ( - "bytes" - "fmt" - "math/big" - "reflect" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/rlp" -) - -// from bcValidBlockTest.json, "SimpleTx" -func TestBlockEncoding(t *testing.T) { - blockEnc := common.FromHex("f90260f901f9a083cafc574e1f51ba9dc0568fc617a08ea2429fb384059c972f13b19fa1c8dd55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a05fe50b260da6308036625b850b5d6ced6d0a9f814c0688bc91ffb7b7a3a54b67a0bc37d79753ad738a6dac4921e57392f145d8887476de3f783dfa7edae9283e52b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefd8825208845506eb0780a0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff49888a13a5a8c8f2bb1c4f861f85f800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba09bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094fa08a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b1c0") - var block Block - if err := rlp.DecodeBytes(blockEnc, &block); err != nil { - t.Fatal("decode error: ", err) - } - - check := func(f string, got, want interface{}) { - if !reflect.DeepEqual(got, want) { - t.Errorf("%s mismatch: got %v, want %v", f, got, want) - } - } - check("Difficulty", block.Difficulty(), big.NewInt(131072)) - check("GasLimit", block.GasLimit(), uint64(3141592)) - check("GasUsed", block.GasUsed(), uint64(21000)) - check("Coinbase", block.Coinbase(), common.HexToAddress("8888f1f195afa192cfee860698584c030f4c9db1")) - check("MixDigest", block.MixDigest(), common.HexToHash("bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff498")) - check("Root", block.Root(), common.HexToHash("ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017")) - check("Hash", block.Hash(), common.HexToHash("0a5843ac1cb04865017cb35a57b50b07084e5fcee39b5acadade33149f4fff9e")) - check("Nonce", block.Nonce(), uint64(0xa13a5a8c8f2bb1c4)) - check("Time", block.Time(), uint64(1426516743)) - check("Size", block.Size(), common.StorageSize(len(blockEnc))) - - tx1 := NewTransaction(0, common.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), big.NewInt(10), 50000, big.NewInt(10), nil) - - tx1, _ = tx1.WithSignature(HomesteadSigner{}, common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) - fmt.Println(block.Transactions()[0].Hash()) - fmt.Println(tx1.data) - fmt.Println(tx1.Hash()) - check("len(Transactions)", len(block.Transactions()), 1) - check("Transactions[0].Hash", block.Transactions()[0].Hash(), tx1.Hash()) - - ourBlockEnc, err := rlp.EncodeToBytes(&block) - if err != nil { - t.Fatal("encode error: ", err) - } - if !bytes.Equal(ourBlockEnc, blockEnc) { - t.Errorf("encoded block mismatch:\ngot: %x\nwant: %x", ourBlockEnc, blockEnc) - } -} - -func TestUncleHash(t *testing.T) { - uncles := make([]*Header, 0) - h := CalcUncleHash(uncles) - exp := common.HexToHash("1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347") - if h != exp { - t.Fatalf("empty uncle hash is wrong, got %x != %x", h, exp) - } -} -func BenchmarkUncleHash(b *testing.B) { - uncles := make([]*Header, 0) - b.ResetTimer() - for i := 0; i < b.N; i++ { - CalcUncleHash(uncles) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/gas_table_test.go b/vendor/github.com/ethereum/go-ethereum/core/vm/gas_table_test.go deleted file mode 100644 index 2c1e1189..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/gas_table_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package vm - -import "testing" - -func TestMemoryGasCost(t *testing.T) { - tests := []struct { - size uint64 - cost uint64 - overflow bool - }{ - {0x1fffffffe0, 36028809887088637, false}, - {0x1fffffffe1, 0, true}, - } - for i, tt := range tests { - v, err := memoryGasCost(&Memory{}, tt.size) - if (err == errGasUintOverflow) != tt.overflow { - t.Errorf("test %d: overflow mismatch: have %v, want %v", i, err == errGasUintOverflow, tt.overflow) - } - if v != tt.cost { - t.Errorf("test %d: gas cost mismatch: have %v, want %v", i, v, tt.cost) - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/instructions_test.go b/vendor/github.com/ethereum/go-ethereum/core/vm/instructions_test.go deleted file mode 100644 index 50d0a9dd..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/instructions_test.go +++ /dev/null @@ -1,640 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package vm - -import ( - "bytes" - "encoding/json" - "fmt" - "io/ioutil" - "math/big" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/params" -) - -type TwoOperandTestcase struct { - X string - Y string - Expected string -} - -type twoOperandParams struct { - x string - y string -} - -var commonParams []*twoOperandParams -var twoOpMethods map[string]executionFunc - -func init() { - - // Params is a list of common edgecases that should be used for some common tests - params := []string{ - "0000000000000000000000000000000000000000000000000000000000000000", // 0 - "0000000000000000000000000000000000000000000000000000000000000001", // +1 - "0000000000000000000000000000000000000000000000000000000000000005", // +5 - "7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", // + max -1 - "7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", // + max - "8000000000000000000000000000000000000000000000000000000000000000", // - max - "8000000000000000000000000000000000000000000000000000000000000001", // - max+1 - "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb", // - 5 - "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", // - 1 - } - // Params are combined so each param is used on each 'side' - commonParams = make([]*twoOperandParams, len(params)*len(params)) - for i, x := range params { - for j, y := range params { - commonParams[i*len(params)+j] = &twoOperandParams{x, y} - } - } - twoOpMethods = map[string]executionFunc{ - "add": opAdd, - "sub": opSub, - "mul": opMul, - "div": opDiv, - "sdiv": opSdiv, - "mod": opMod, - "smod": opSmod, - "exp": opExp, - "signext": opSignExtend, - "lt": opLt, - "gt": opGt, - "slt": opSlt, - "sgt": opSgt, - "eq": opEq, - "and": opAnd, - "or": opOr, - "xor": opXor, - "byte": opByte, - "shl": opSHL, - "shr": opSHR, - "sar": opSAR, - } -} - -func testTwoOperandOp(t *testing.T, tests []TwoOperandTestcase, opFn executionFunc, name string) { - - var ( - env = NewEVM(Context{}, nil, params.TestChainConfig, Config{}) - stack = newstack() - pc = uint64(0) - evmInterpreter = env.interpreter.(*EVMInterpreter) - ) - // Stuff a couple of nonzero bigints into pool, to ensure that ops do not rely on pooled integers to be zero - evmInterpreter.intPool = poolOfIntPools.get() - evmInterpreter.intPool.put(big.NewInt(-1337)) - evmInterpreter.intPool.put(big.NewInt(-1337)) - evmInterpreter.intPool.put(big.NewInt(-1337)) - - for i, test := range tests { - x := new(big.Int).SetBytes(common.Hex2Bytes(test.X)) - y := new(big.Int).SetBytes(common.Hex2Bytes(test.Y)) - expected := new(big.Int).SetBytes(common.Hex2Bytes(test.Expected)) - stack.push(x) - stack.push(y) - opFn(&pc, evmInterpreter, nil, nil, stack) - actual := stack.pop() - - if actual.Cmp(expected) != 0 { - t.Errorf("Testcase %v %d, %v(%x, %x): expected %x, got %x", name, i, name, x, y, expected, actual) - } - // Check pool usage - // 1.pool is not allowed to contain anything on the stack - // 2.pool is not allowed to contain the same pointers twice - if evmInterpreter.intPool.pool.len() > 0 { - - poolvals := make(map[*big.Int]struct{}) - poolvals[actual] = struct{}{} - - for evmInterpreter.intPool.pool.len() > 0 { - key := evmInterpreter.intPool.get() - if _, exist := poolvals[key]; exist { - t.Errorf("Testcase %v %d, pool contains double-entry", name, i) - } - poolvals[key] = struct{}{} - } - } - } - poolOfIntPools.put(evmInterpreter.intPool) -} - -func TestByteOp(t *testing.T) { - tests := []TwoOperandTestcase{ - {"ABCDEF0908070605040302010000000000000000000000000000000000000000", "00", "AB"}, - {"ABCDEF0908070605040302010000000000000000000000000000000000000000", "01", "CD"}, - {"00CDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff", "00", "00"}, - {"00CDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff", "01", "CD"}, - {"0000000000000000000000000000000000000000000000000000000000102030", "1F", "30"}, - {"0000000000000000000000000000000000000000000000000000000000102030", "1E", "20"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "20", "00"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "FFFFFFFFFFFFFFFF", "00"}, - } - testTwoOperandOp(t, tests, opByte, "byte") -} - -func TestSHL(t *testing.T) { - // Testcases from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md#shl-shift-left - tests := []TwoOperandTestcase{ - {"0000000000000000000000000000000000000000000000000000000000000001", "01", "0000000000000000000000000000000000000000000000000000000000000002"}, - {"0000000000000000000000000000000000000000000000000000000000000001", "ff", "8000000000000000000000000000000000000000000000000000000000000000"}, - {"0000000000000000000000000000000000000000000000000000000000000001", "0100", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"0000000000000000000000000000000000000000000000000000000000000001", "0101", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "00", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "01", "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ff", "8000000000000000000000000000000000000000000000000000000000000000"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "0100", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"0000000000000000000000000000000000000000000000000000000000000000", "01", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "01", "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"}, - } - testTwoOperandOp(t, tests, opSHL, "shl") -} - -func TestSHR(t *testing.T) { - // Testcases from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md#shr-logical-shift-right - tests := []TwoOperandTestcase{ - {"0000000000000000000000000000000000000000000000000000000000000001", "00", "0000000000000000000000000000000000000000000000000000000000000001"}, - {"0000000000000000000000000000000000000000000000000000000000000001", "01", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "01", "4000000000000000000000000000000000000000000000000000000000000000"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "ff", "0000000000000000000000000000000000000000000000000000000000000001"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "0100", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "0101", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "00", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "01", "7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ff", "0000000000000000000000000000000000000000000000000000000000000001"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "0100", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"0000000000000000000000000000000000000000000000000000000000000000", "01", "0000000000000000000000000000000000000000000000000000000000000000"}, - } - testTwoOperandOp(t, tests, opSHR, "shr") -} - -func TestSAR(t *testing.T) { - // Testcases from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md#sar-arithmetic-shift-right - tests := []TwoOperandTestcase{ - {"0000000000000000000000000000000000000000000000000000000000000001", "00", "0000000000000000000000000000000000000000000000000000000000000001"}, - {"0000000000000000000000000000000000000000000000000000000000000001", "01", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "01", "c000000000000000000000000000000000000000000000000000000000000000"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "ff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "0100", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"8000000000000000000000000000000000000000000000000000000000000000", "0101", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "00", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "01", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "0100", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}, - {"0000000000000000000000000000000000000000000000000000000000000000", "01", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"4000000000000000000000000000000000000000000000000000000000000000", "fe", "0000000000000000000000000000000000000000000000000000000000000001"}, - {"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "f8", "000000000000000000000000000000000000000000000000000000000000007f"}, - {"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "fe", "0000000000000000000000000000000000000000000000000000000000000001"}, - {"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ff", "0000000000000000000000000000000000000000000000000000000000000000"}, - {"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "0100", "0000000000000000000000000000000000000000000000000000000000000000"}, - } - - testTwoOperandOp(t, tests, opSAR, "sar") -} - -// getResult is a convenience function to generate the expected values -func getResult(args []*twoOperandParams, opFn executionFunc) []TwoOperandTestcase { - var ( - env = NewEVM(Context{}, nil, params.TestChainConfig, Config{}) - stack = newstack() - pc = uint64(0) - interpreter = env.interpreter.(*EVMInterpreter) - ) - interpreter.intPool = poolOfIntPools.get() - result := make([]TwoOperandTestcase, len(args)) - for i, param := range args { - x := new(big.Int).SetBytes(common.Hex2Bytes(param.x)) - y := new(big.Int).SetBytes(common.Hex2Bytes(param.y)) - stack.push(x) - stack.push(y) - opFn(&pc, interpreter, nil, nil, stack) - actual := stack.pop() - result[i] = TwoOperandTestcase{param.x, param.y, fmt.Sprintf("%064x", actual)} - } - return result -} - -// utility function to fill the json-file with testcases -// Enable this test to generate the 'testcases_xx.json' files -func xTestWriteExpectedValues(t *testing.T) { - for name, method := range twoOpMethods { - data, err := json.Marshal(getResult(commonParams, method)) - if err != nil { - t.Fatal(err) - } - _ = ioutil.WriteFile(fmt.Sprintf("testdata/testcases_%v.json", name), data, 0644) - if err != nil { - t.Fatal(err) - } - } - t.Fatal("This test should not be activated") -} - -// TestJsonTestcases runs through all the testcases defined as json-files -func TestJsonTestcases(t *testing.T) { - for name := range twoOpMethods { - data, err := ioutil.ReadFile(fmt.Sprintf("testdata/testcases_%v.json", name)) - if err != nil { - t.Fatal("Failed to read file", err) - } - var testcases []TwoOperandTestcase - json.Unmarshal(data, &testcases) - testTwoOperandOp(t, testcases, twoOpMethods[name], name) - } -} - -func opBenchmark(bench *testing.B, op func(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memory *Memory, stack *Stack) ([]byte, error), args ...string) { - var ( - env = NewEVM(Context{}, nil, params.TestChainConfig, Config{}) - stack = newstack() - evmInterpreter = NewEVMInterpreter(env, env.vmConfig) - ) - - env.interpreter = evmInterpreter - evmInterpreter.intPool = poolOfIntPools.get() - // convert args - byteArgs := make([][]byte, len(args)) - for i, arg := range args { - byteArgs[i] = common.Hex2Bytes(arg) - } - pc := uint64(0) - bench.ResetTimer() - for i := 0; i < bench.N; i++ { - for _, arg := range byteArgs { - a := new(big.Int).SetBytes(arg) - stack.push(a) - } - op(&pc, evmInterpreter, nil, nil, stack) - stack.pop() - } - poolOfIntPools.put(evmInterpreter.intPool) -} - -func BenchmarkOpAdd64(b *testing.B) { - x := "ffffffff" - y := "fd37f3e2bba2c4f" - - opBenchmark(b, opAdd, x, y) -} - -func BenchmarkOpAdd128(b *testing.B) { - x := "ffffffffffffffff" - y := "f5470b43c6549b016288e9a65629687" - - opBenchmark(b, opAdd, x, y) -} - -func BenchmarkOpAdd256(b *testing.B) { - x := "0802431afcbce1fc194c9eaa417b2fb67dc75a95db0bc7ec6b1c8af11df6a1da9" - y := "a1f5aac137876480252e5dcac62c354ec0d42b76b0642b6181ed099849ea1d57" - - opBenchmark(b, opAdd, x, y) -} - -func BenchmarkOpSub64(b *testing.B) { - x := "51022b6317003a9d" - y := "a20456c62e00753a" - - opBenchmark(b, opSub, x, y) -} - -func BenchmarkOpSub128(b *testing.B) { - x := "4dde30faaacdc14d00327aac314e915d" - y := "9bbc61f5559b829a0064f558629d22ba" - - opBenchmark(b, opSub, x, y) -} - -func BenchmarkOpSub256(b *testing.B) { - x := "4bfcd8bb2ac462735b48a17580690283980aa2d679f091c64364594df113ea37" - y := "97f9b1765588c4e6b69142eb00d20507301545acf3e1238c86c8b29be227d46e" - - opBenchmark(b, opSub, x, y) -} - -func BenchmarkOpMul(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opMul, x, y) -} - -func BenchmarkOpDiv256(b *testing.B) { - x := "ff3f9014f20db29ae04af2c2d265de17" - y := "fe7fb0d1f59dfe9492ffbf73683fd1e870eec79504c60144cc7f5fc2bad1e611" - opBenchmark(b, opDiv, x, y) -} - -func BenchmarkOpDiv128(b *testing.B) { - x := "fdedc7f10142ff97" - y := "fbdfda0e2ce356173d1993d5f70a2b11" - opBenchmark(b, opDiv, x, y) -} - -func BenchmarkOpDiv64(b *testing.B) { - x := "fcb34eb3" - y := "f97180878e839129" - opBenchmark(b, opDiv, x, y) -} - -func BenchmarkOpSdiv(b *testing.B) { - x := "ff3f9014f20db29ae04af2c2d265de17" - y := "fe7fb0d1f59dfe9492ffbf73683fd1e870eec79504c60144cc7f5fc2bad1e611" - - opBenchmark(b, opSdiv, x, y) -} - -func BenchmarkOpMod(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opMod, x, y) -} - -func BenchmarkOpSmod(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opSmod, x, y) -} - -func BenchmarkOpExp(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opExp, x, y) -} - -func BenchmarkOpSignExtend(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opSignExtend, x, y) -} - -func BenchmarkOpLt(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opLt, x, y) -} - -func BenchmarkOpGt(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opGt, x, y) -} - -func BenchmarkOpSlt(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opSlt, x, y) -} - -func BenchmarkOpSgt(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opSgt, x, y) -} - -func BenchmarkOpEq(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opEq, x, y) -} -func BenchmarkOpEq2(b *testing.B) { - x := "FBCDEF090807060504030201ffffffffFBCDEF090807060504030201ffffffff" - y := "FBCDEF090807060504030201ffffffffFBCDEF090807060504030201fffffffe" - opBenchmark(b, opEq, x, y) -} -func BenchmarkOpAnd(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opAnd, x, y) -} - -func BenchmarkOpOr(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opOr, x, y) -} - -func BenchmarkOpXor(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opXor, x, y) -} - -func BenchmarkOpByte(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opByte, x, y) -} - -func BenchmarkOpAddmod(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - z := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opAddmod, x, y, z) -} - -func BenchmarkOpMulmod(b *testing.B) { - x := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - y := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - z := "ABCDEF090807060504030201ffffffffffffffffffffffffffffffffffffffff" - - opBenchmark(b, opMulmod, x, y, z) -} - -func BenchmarkOpSHL(b *testing.B) { - x := "FBCDEF090807060504030201ffffffffFBCDEF090807060504030201ffffffff" - y := "ff" - - opBenchmark(b, opSHL, x, y) -} -func BenchmarkOpSHR(b *testing.B) { - x := "FBCDEF090807060504030201ffffffffFBCDEF090807060504030201ffffffff" - y := "ff" - - opBenchmark(b, opSHR, x, y) -} -func BenchmarkOpSAR(b *testing.B) { - x := "FBCDEF090807060504030201ffffffffFBCDEF090807060504030201ffffffff" - y := "ff" - - opBenchmark(b, opSAR, x, y) -} -func BenchmarkOpIsZero(b *testing.B) { - x := "FBCDEF090807060504030201ffffffffFBCDEF090807060504030201ffffffff" - opBenchmark(b, opIszero, x) -} - -func TestOpMstore(t *testing.T) { - var ( - env = NewEVM(Context{}, nil, params.TestChainConfig, Config{}) - stack = newstack() - mem = NewMemory() - evmInterpreter = NewEVMInterpreter(env, env.vmConfig) - ) - - env.interpreter = evmInterpreter - evmInterpreter.intPool = poolOfIntPools.get() - mem.Resize(64) - pc := uint64(0) - v := "abcdef00000000000000abba000000000deaf000000c0de00100000000133700" - stack.pushN(new(big.Int).SetBytes(common.Hex2Bytes(v)), big.NewInt(0)) - opMstore(&pc, evmInterpreter, nil, mem, stack) - if got := common.Bytes2Hex(mem.Get(0, 32)); got != v { - t.Fatalf("Mstore fail, got %v, expected %v", got, v) - } - stack.pushN(big.NewInt(0x1), big.NewInt(0)) - opMstore(&pc, evmInterpreter, nil, mem, stack) - if common.Bytes2Hex(mem.Get(0, 32)) != "0000000000000000000000000000000000000000000000000000000000000001" { - t.Fatalf("Mstore failed to overwrite previous value") - } - poolOfIntPools.put(evmInterpreter.intPool) -} - -func BenchmarkOpMstore(bench *testing.B) { - var ( - env = NewEVM(Context{}, nil, params.TestChainConfig, Config{}) - stack = newstack() - mem = NewMemory() - evmInterpreter = NewEVMInterpreter(env, env.vmConfig) - ) - - env.interpreter = evmInterpreter - evmInterpreter.intPool = poolOfIntPools.get() - mem.Resize(64) - pc := uint64(0) - memStart := big.NewInt(0) - value := big.NewInt(0x1337) - - bench.ResetTimer() - for i := 0; i < bench.N; i++ { - stack.pushN(value, memStart) - opMstore(&pc, evmInterpreter, nil, mem, stack) - } - poolOfIntPools.put(evmInterpreter.intPool) -} - -func BenchmarkOpSHA3(bench *testing.B) { - var ( - env = NewEVM(Context{}, nil, params.TestChainConfig, Config{}) - stack = newstack() - mem = NewMemory() - evmInterpreter = NewEVMInterpreter(env, env.vmConfig) - ) - env.interpreter = evmInterpreter - evmInterpreter.intPool = poolOfIntPools.get() - mem.Resize(32) - pc := uint64(0) - start := big.NewInt(0) - - bench.ResetTimer() - for i := 0; i < bench.N; i++ { - stack.pushN(big.NewInt(32), start) - opSha3(&pc, evmInterpreter, nil, mem, stack) - } - poolOfIntPools.put(evmInterpreter.intPool) -} - -func TestCreate2Addreses(t *testing.T) { - type testcase struct { - origin string - salt string - code string - expected string - } - - for i, tt := range []testcase{ - { - origin: "0x0000000000000000000000000000000000000000", - salt: "0x0000000000000000000000000000000000000000", - code: "0x00", - expected: "0x4d1a2e2bb4f88f0250f26ffff098b0b30b26bf38", - }, - { - origin: "0xdeadbeef00000000000000000000000000000000", - salt: "0x0000000000000000000000000000000000000000", - code: "0x00", - expected: "0xB928f69Bb1D91Cd65274e3c79d8986362984fDA3", - }, - { - origin: "0xdeadbeef00000000000000000000000000000000", - salt: "0xfeed000000000000000000000000000000000000", - code: "0x00", - expected: "0xD04116cDd17beBE565EB2422F2497E06cC1C9833", - }, - { - origin: "0x0000000000000000000000000000000000000000", - salt: "0x0000000000000000000000000000000000000000", - code: "0xdeadbeef", - expected: "0x70f2b2914A2a4b783FaEFb75f459A580616Fcb5e", - }, - { - origin: "0x00000000000000000000000000000000deadbeef", - salt: "0xcafebabe", - code: "0xdeadbeef", - expected: "0x60f3f640a8508fC6a86d45DF051962668E1e8AC7", - }, - { - origin: "0x00000000000000000000000000000000deadbeef", - salt: "0xcafebabe", - code: "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", - expected: "0x1d8bfDC5D46DC4f61D6b6115972536eBE6A8854C", - }, - { - origin: "0x0000000000000000000000000000000000000000", - salt: "0x0000000000000000000000000000000000000000", - code: "0x", - expected: "0xE33C0C7F7df4809055C3ebA6c09CFe4BaF1BD9e0", - }, - } { - - origin := common.BytesToAddress(common.FromHex(tt.origin)) - salt := common.BytesToHash(common.FromHex(tt.salt)) - code := common.FromHex(tt.code) - codeHash := crypto.Keccak256(code) - address := crypto.CreateAddress2(origin, salt, codeHash) - /* - stack := newstack() - // salt, but we don't need that for this test - stack.push(big.NewInt(int64(len(code)))) //size - stack.push(big.NewInt(0)) // memstart - stack.push(big.NewInt(0)) // value - gas, _ := gasCreate2(params.GasTable{}, nil, nil, stack, nil, 0) - fmt.Printf("Example %d\n* address `0x%x`\n* salt `0x%x`\n* init_code `0x%x`\n* gas (assuming no mem expansion): `%v`\n* result: `%s`\n\n", i,origin, salt, code, gas, address.String()) - */ - expected := common.BytesToAddress(common.FromHex(tt.expected)) - if !bytes.Equal(expected.Bytes(), address.Bytes()) { - t.Errorf("test %d: expected %s, got %s", i, expected.String(), address.String()) - } - - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_add.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_add.json deleted file mode 100644 index c03ae96a..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_add.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000006"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000006"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"000000000000000000000000000000000000000000000000000000000000000a"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000003"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000006"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000003"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000006"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_and.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_and.json deleted file mode 100644 index aba5f246..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_and.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_byte.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_byte.json deleted file mode 100644 index 88d7c7d8..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_byte.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"000000000000000000000000000000000000000000000000000000000000007f"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"000000000000000000000000000000000000000000000000000000000000007f"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000080"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000080"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"00000000000000000000000000000000000000000000000000000000000000ff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_div.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_div.json deleted file mode 100644 index b1f9c7fb..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_div.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"3333333333333333333333333333333333333333333333333333333333333332"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"3333333333333333333333333333333333333333333333333333333333333333"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_eq.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_eq.json deleted file mode 100644 index 937eadb0..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_eq.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_exp.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_exp.json deleted file mode 100644 index 61818357..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_exp.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000c35"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccd"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"3333333333333333333333333333333333333333333333333333333333333333"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"58cd20afa2f05a708ede54b48d3ae685db76b3bb83cf2cf95d4e8fb00bcbe61d"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"a732df505d0fa58f7121ab4b72c5197a24894c447c30d306a2b1704ff43419e3"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccd"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"3333333333333333333333333333333333333333333333333333333333333333"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_gt.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_gt.json deleted file mode 100644 index 637bd3f6..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_gt.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_lt.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_lt.json deleted file mode 100644 index 55252a4d..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_lt.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mod.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mod.json deleted file mode 100644 index 192503f2..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mod.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000003"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000003"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000003"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mul.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mul.json deleted file mode 100644 index dc44c253..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_mul.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000019"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"800000000000000000000000000000000000000000000000000000000000000a"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"800000000000000000000000000000000000000000000000000000000000000a"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000019"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_or.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_or.json deleted file mode 100644 index bfa561b5..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_or.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sar.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sar.json deleted file mode 100644 index c93abbd6..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sar.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"c000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fc00000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"c000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fc00000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sdiv.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sdiv.json deleted file mode 100644 index 18cb666a..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sdiv.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"e666666666666666666666666666666666666666666666666666666666666667"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"e666666666666666666666666666666666666666666666666666666666666667"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"e666666666666666666666666666666666666666666666666666666666666667"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"e666666666666666666666666666666666666666666666666666666666666667"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"1999999999999999999999999999999999999999999999999999999999999999"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sgt.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sgt.json deleted file mode 100644 index aa581a65..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sgt.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shl.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shl.json deleted file mode 100644 index 65e9c07b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shl.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000020"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"000000000000000000000000000000000000000000000000000000000000000a"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"00000000000000000000000000000000000000000000000000000000000000a0"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000020"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shr.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shr.json deleted file mode 100644 index a3849135..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_shr.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"4000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0400000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"4000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0400000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_signext.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_signext.json deleted file mode 100644 index bdadd400..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_signext.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_slt.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_slt.json deleted file mode 100644 index 4369b96f..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_slt.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_smod.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_smod.json deleted file mode 100644 index 980e0341..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_smod.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sub.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sub.json deleted file mode 100644 index b3881a5a..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_sub.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000003"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000007"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000003"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000006"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000006"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"000000000000000000000000000000000000000000000000000000000000000a"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000003"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000006"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000002"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000006"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000002"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_xor.json b/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_xor.json deleted file mode 100644 index 4cc2dddd..00000000 --- a/vendor/github.com/ethereum/go-ethereum/core/vm/testdata/testcases_xor.json +++ /dev/null @@ -1 +0,0 @@ -[{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"0000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"0000000000000000000000000000000000000000000000000000000000000005","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"8000000000000000000000000000000000000000000000000000000000000000","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"0000000000000000000000000000000000000000000000000000000000000001"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"8000000000000000000000000000000000000000000000000000000000000001","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000005"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000004"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000000"},{"X":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000000","Expected":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000001","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"0000000000000000000000000000000000000000000000000000000000000005","Expected":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe","Expected":"8000000000000000000000000000000000000000000000000000000000000001"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"8000000000000000000000000000000000000000000000000000000000000000"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000000","Expected":"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"8000000000000000000000000000000000000000000000000000000000000001","Expected":"7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb","Expected":"0000000000000000000000000000000000000000000000000000000000000004"},{"X":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Y":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Expected":"0000000000000000000000000000000000000000000000000000000000000000"}] \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/eth/api_backend.go b/vendor/github.com/ethereum/go-ethereum/eth/api_backend.go deleted file mode 100644 index 00424cae..00000000 --- a/vendor/github.com/ethereum/go-ethereum/eth/api_backend.go +++ /dev/null @@ -1,234 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package eth - -import ( - "context" - "math/big" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/bloombits" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/eth/gasprice" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rpc" -) - -// EthAPIBackend implements ethapi.Backend for full nodes -type EthAPIBackend struct { - extRPCEnabled bool - eth *Ethereum - gpo *gasprice.Oracle -} - -// ChainConfig returns the active chain configuration. -func (b *EthAPIBackend) ChainConfig() *params.ChainConfig { - return b.eth.blockchain.Config() -} - -func (b *EthAPIBackend) CurrentBlock() *types.Block { - return b.eth.blockchain.CurrentBlock() -} - -func (b *EthAPIBackend) SetHead(number uint64) { - b.eth.protocolManager.downloader.Cancel() - b.eth.blockchain.SetHead(number) -} - -func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error) { - // Pending block is only known by the miner - if blockNr == rpc.PendingBlockNumber { - block := b.eth.miner.PendingBlock() - return block.Header(), nil - } - // Otherwise resolve and return the block - if blockNr == rpc.LatestBlockNumber { - return b.eth.blockchain.CurrentBlock().Header(), nil - } - return b.eth.blockchain.GetHeaderByNumber(uint64(blockNr)), nil -} - -func (b *EthAPIBackend) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error) { - return b.eth.blockchain.GetHeaderByHash(hash), nil -} - -func (b *EthAPIBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Block, error) { - // Pending block is only known by the miner - if blockNr == rpc.PendingBlockNumber { - block := b.eth.miner.PendingBlock() - return block, nil - } - // Otherwise resolve and return the block - if blockNr == rpc.LatestBlockNumber { - return b.eth.blockchain.CurrentBlock(), nil - } - return b.eth.blockchain.GetBlockByNumber(uint64(blockNr)), nil -} - -func (b *EthAPIBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.StateDB, *types.Header, error) { - // Pending state is only known by the miner - if blockNr == rpc.PendingBlockNumber { - block, state := b.eth.miner.Pending() - return state, block.Header(), nil - } - // Otherwise resolve the block number and return its state - header, err := b.HeaderByNumber(ctx, blockNr) - if header == nil || err != nil { - return nil, nil, err - } - stateDb, err := b.eth.BlockChain().StateAt(header.Root) - return stateDb, header, err -} - -func (b *EthAPIBackend) GetBlock(ctx context.Context, hash common.Hash) (*types.Block, error) { - return b.eth.blockchain.GetBlockByHash(hash), nil -} - -func (b *EthAPIBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error) { - return b.eth.blockchain.GetReceiptsByHash(hash), nil -} - -func (b *EthAPIBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*types.Log, error) { - receipts := b.eth.blockchain.GetReceiptsByHash(hash) - if receipts == nil { - return nil, nil - } - logs := make([][]*types.Log, len(receipts)) - for i, receipt := range receipts { - logs[i] = receipt.Logs - } - return logs, nil -} - -func (b *EthAPIBackend) GetTd(blockHash common.Hash) *big.Int { - return b.eth.blockchain.GetTdByHash(blockHash) -} - -func (b *EthAPIBackend) GetEVM(ctx context.Context, msg core.Message, state *state.StateDB, header *types.Header) (*vm.EVM, func() error, error) { - state.SetBalance(msg.From(), math.MaxBig256) - vmError := func() error { return nil } - - context := core.NewEVMContext(msg, header, b.eth.BlockChain(), nil) - return vm.NewEVM(context, state, b.eth.blockchain.Config(), *b.eth.blockchain.GetVMConfig()), vmError, nil -} - -func (b *EthAPIBackend) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription { - return b.eth.BlockChain().SubscribeRemovedLogsEvent(ch) -} - -func (b *EthAPIBackend) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription { - return b.eth.BlockChain().SubscribeChainEvent(ch) -} - -func (b *EthAPIBackend) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription { - return b.eth.BlockChain().SubscribeChainHeadEvent(ch) -} - -func (b *EthAPIBackend) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription { - return b.eth.BlockChain().SubscribeChainSideEvent(ch) -} - -func (b *EthAPIBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription { - return b.eth.BlockChain().SubscribeLogsEvent(ch) -} - -func (b *EthAPIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error { - return b.eth.txPool.AddLocal(signedTx) -} - -func (b *EthAPIBackend) GetPoolTransactions() (types.Transactions, error) { - pending, err := b.eth.txPool.Pending() - if err != nil { - return nil, err - } - var txs types.Transactions - for _, batch := range pending { - txs = append(txs, batch...) - } - return txs, nil -} - -func (b *EthAPIBackend) GetPoolTransaction(hash common.Hash) *types.Transaction { - return b.eth.txPool.Get(hash) -} - -func (b *EthAPIBackend) GetPoolNonce(ctx context.Context, addr common.Address) (uint64, error) { - return b.eth.txPool.State().GetNonce(addr), nil -} - -func (b *EthAPIBackend) Stats() (pending int, queued int) { - return b.eth.txPool.Stats() -} - -func (b *EthAPIBackend) TxPoolContent() (map[common.Address]types.Transactions, map[common.Address]types.Transactions) { - return b.eth.TxPool().Content() -} - -func (b *EthAPIBackend) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription { - return b.eth.TxPool().SubscribeNewTxsEvent(ch) -} - -func (b *EthAPIBackend) Downloader() *downloader.Downloader { - return b.eth.Downloader() -} - -func (b *EthAPIBackend) ProtocolVersion() int { - return b.eth.EthVersion() -} - -func (b *EthAPIBackend) SuggestPrice(ctx context.Context) (*big.Int, error) { - return b.gpo.SuggestPrice(ctx) -} - -func (b *EthAPIBackend) ChainDb() ethdb.Database { - return b.eth.ChainDb() -} - -func (b *EthAPIBackend) EventMux() *event.TypeMux { - return b.eth.EventMux() -} - -func (b *EthAPIBackend) AccountManager() *accounts.Manager { - return b.eth.AccountManager() -} - -func (b *EthAPIBackend) ExtRPCEnabled() bool { - return b.extRPCEnabled -} - -func (b *EthAPIBackend) RPCGasCap() *big.Int { - return b.eth.config.RPCGasCap -} - -func (b *EthAPIBackend) BloomStatus() (uint64, uint64) { - sections, _, _ := b.eth.bloomIndexer.Sections() - return params.BloomBitsBlocks, sections -} - -func (b *EthAPIBackend) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession) { - for i := 0; i < bloomFilterThreads; i++ { - go session.Multiplex(bloomRetrievalBatch, bloomRetrievalWait, b.eth.bloomRequests) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/eth/backend.go b/vendor/github.com/ethereum/go-ethereum/eth/backend.go deleted file mode 100644 index 1b5258c3..00000000 --- a/vendor/github.com/ethereum/go-ethereum/eth/backend.go +++ /dev/null @@ -1,535 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package eth implements the Ethereum protocol. -package eth - -import ( - "errors" - "fmt" - "math/big" - "runtime" - "sync" - "sync/atomic" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/consensus/clique" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/bloombits" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/eth/filters" - "github.com/ethereum/go-ethereum/eth/gasprice" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/internal/ethapi" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/miner" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/rpc" -) - -type LesServer interface { - Start(srvr *p2p.Server) - Stop() - APIs() []rpc.API - Protocols() []p2p.Protocol - SetBloomBitsIndexer(bbIndexer *core.ChainIndexer) -} - -// Ethereum implements the Ethereum full node service. -type Ethereum struct { - config *Config - - // Channel for shutting down the service - shutdownChan chan bool // Channel for shutting down the Ethereum - - // Handlers - txPool *core.TxPool - blockchain *core.BlockChain - protocolManager *ProtocolManager - lesServer LesServer - - // DB interfaces - chainDb ethdb.Database // Block chain database - - eventMux *event.TypeMux - engine consensus.Engine - accountManager *accounts.Manager - - bloomRequests chan chan *bloombits.Retrieval // Channel receiving bloom data retrieval requests - bloomIndexer *core.ChainIndexer // Bloom indexer operating during block imports - - APIBackend *EthAPIBackend - - miner *miner.Miner - gasPrice *big.Int - etherbase common.Address - - networkID uint64 - netRPCService *ethapi.PublicNetAPI - - lock sync.RWMutex // Protects the variadic fields (e.g. gas price and etherbase) -} - -func (s *Ethereum) AddLesServer(ls LesServer) { - s.lesServer = ls - ls.SetBloomBitsIndexer(s.bloomIndexer) -} - -// New creates a new Ethereum object (including the -// initialisation of the common Ethereum object) -func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { - // Ensure configuration values are compatible and sane - if config.SyncMode == downloader.LightSync { - return nil, errors.New("can't run eth.Ethereum in light sync mode, use les.LightEthereum") - } - if !config.SyncMode.IsValid() { - return nil, fmt.Errorf("invalid sync mode %d", config.SyncMode) - } - if config.MinerGasPrice == nil || config.MinerGasPrice.Cmp(common.Big0) <= 0 { - log.Warn("Sanitizing invalid miner gas price", "provided", config.MinerGasPrice, "updated", DefaultConfig.MinerGasPrice) - config.MinerGasPrice = new(big.Int).Set(DefaultConfig.MinerGasPrice) - } - if config.NoPruning && config.TrieDirtyCache > 0 { - config.TrieCleanCache += config.TrieDirtyCache - config.TrieDirtyCache = 0 - } - log.Info("Allocated trie memory caches", "clean", common.StorageSize(config.TrieCleanCache)*1024*1024, "dirty", common.StorageSize(config.TrieDirtyCache)*1024*1024) - - // Assemble the Ethereum object - chainDb, err := ctx.OpenDatabase("chaindata", config.DatabaseCache, config.DatabaseHandles, "eth/db/chaindata/") - if err != nil { - return nil, err - } - chainConfig, genesisHash, genesisErr := core.SetupGenesisBlockWithOverride(chainDb, config.Genesis, config.ConstantinopleOverride) - if _, ok := genesisErr.(*params.ConfigCompatError); genesisErr != nil && !ok { - return nil, genesisErr - } - log.Info("Initialised chain configuration", "config", chainConfig) - - eth := &Ethereum{ - config: config, - chainDb: chainDb, - eventMux: ctx.EventMux, - accountManager: ctx.AccountManager, - engine: CreateConsensusEngine(ctx, chainConfig, &config.Ethash, config.MinerNotify, config.MinerNoverify, chainDb), - shutdownChan: make(chan bool), - networkID: config.NetworkId, - gasPrice: config.MinerGasPrice, - etherbase: config.Etherbase, - bloomRequests: make(chan chan *bloombits.Retrieval), - bloomIndexer: NewBloomIndexer(chainDb, params.BloomBitsBlocks, params.BloomConfirms), - } - - bcVersion := rawdb.ReadDatabaseVersion(chainDb) - var dbVer = "" - if bcVersion != nil { - dbVer = fmt.Sprintf("%d", *bcVersion) - } - log.Info("Initialising Ethereum protocol", "versions", ProtocolVersions, "network", config.NetworkId, "dbversion", dbVer) - - if !config.SkipBcVersionCheck { - if bcVersion != nil && *bcVersion > core.BlockChainVersion { - return nil, fmt.Errorf("database version is v%d, Geth %s only supports v%d", *bcVersion, params.VersionWithMeta, core.BlockChainVersion) - } else if bcVersion == nil || *bcVersion < core.BlockChainVersion { - log.Warn("Upgrade blockchain database version", "from", dbVer, "to", core.BlockChainVersion) - rawdb.WriteDatabaseVersion(chainDb, core.BlockChainVersion) - } - } - var ( - vmConfig = vm.Config{ - EnablePreimageRecording: config.EnablePreimageRecording, - EWASMInterpreter: config.EWASMInterpreter, - EVMInterpreter: config.EVMInterpreter, - } - cacheConfig = &core.CacheConfig{ - TrieCleanLimit: config.TrieCleanCache, - TrieCleanNoPrefetch: config.NoPrefetch, - TrieDirtyLimit: config.TrieDirtyCache, - TrieDirtyDisabled: config.NoPruning, - TrieTimeLimit: config.TrieTimeout, - ProcessingStateDiffs: config.StateDiff, - } - ) - eth.blockchain, err = core.NewBlockChain(chainDb, cacheConfig, chainConfig, eth.engine, vmConfig, eth.shouldPreserve) - if err != nil { - return nil, err - } - // Rewind the chain in case of an incompatible config upgrade. - if compat, ok := genesisErr.(*params.ConfigCompatError); ok { - log.Warn("Rewinding chain to upgrade configuration", "err", compat) - eth.blockchain.SetHead(compat.RewindTo) - rawdb.WriteChainConfig(chainDb, genesisHash, chainConfig) - } - eth.bloomIndexer.Start(eth.blockchain) - - if config.TxPool.Journal != "" { - config.TxPool.Journal = ctx.ResolvePath(config.TxPool.Journal) - } - eth.txPool = core.NewTxPool(config.TxPool, chainConfig, eth.blockchain) - - if eth.protocolManager, err = NewProtocolManager(chainConfig, config.SyncMode, config.NetworkId, eth.eventMux, eth.txPool, eth.engine, eth.blockchain, chainDb, config.Whitelist); err != nil { - return nil, err - } - - eth.miner = miner.New(eth, chainConfig, eth.EventMux(), eth.engine, config.MinerRecommit, config.MinerGasFloor, config.MinerGasCeil, eth.isLocalBlock) - eth.miner.SetExtra(makeExtraData(config.MinerExtraData)) - - eth.APIBackend = &EthAPIBackend{ctx.ExtRPCEnabled(), eth, nil} - gpoParams := config.GPO - if gpoParams.Default == nil { - gpoParams.Default = config.MinerGasPrice - } - eth.APIBackend.gpo = gasprice.NewOracle(eth.APIBackend, gpoParams) - - return eth, nil -} - -func makeExtraData(extra []byte) []byte { - if len(extra) == 0 { - // create default extradata - extra, _ = rlp.EncodeToBytes([]interface{}{ - uint(params.VersionMajor<<16 | params.VersionMinor<<8 | params.VersionPatch), - "geth", - runtime.Version(), - runtime.GOOS, - }) - } - if uint64(len(extra)) > params.MaximumExtraDataSize { - log.Warn("Miner extra data exceed limit", "extra", hexutil.Bytes(extra), "limit", params.MaximumExtraDataSize) - extra = nil - } - return extra -} - -// CreateConsensusEngine creates the required type of consensus engine instance for an Ethereum service -func CreateConsensusEngine(ctx *node.ServiceContext, chainConfig *params.ChainConfig, config *ethash.Config, notify []string, noverify bool, db ethdb.Database) consensus.Engine { - // If proof-of-authority is requested, set it up - if chainConfig.Clique != nil { - return clique.New(chainConfig.Clique, db) - } - // Otherwise assume proof-of-work - switch config.PowMode { - case ethash.ModeFake: - log.Warn("Ethash used in fake mode") - return ethash.NewFaker() - case ethash.ModeTest: - log.Warn("Ethash used in test mode") - return ethash.NewTester(nil, noverify) - case ethash.ModeShared: - log.Warn("Ethash used in shared mode") - return ethash.NewShared() - default: - engine := ethash.New(ethash.Config{ - CacheDir: ctx.ResolvePath(config.CacheDir), - CachesInMem: config.CachesInMem, - CachesOnDisk: config.CachesOnDisk, - DatasetDir: config.DatasetDir, - DatasetsInMem: config.DatasetsInMem, - DatasetsOnDisk: config.DatasetsOnDisk, - }, notify, noverify) - engine.SetThreads(-1) // Disable CPU mining - return engine - } -} - -// APIs return the collection of RPC services the ethereum package offers. -// NOTE, some of these services probably need to be moved to somewhere else. -func (s *Ethereum) APIs() []rpc.API { - apis := ethapi.GetAPIs(s.APIBackend) - - // Append any APIs exposed explicitly by the les server - if s.lesServer != nil { - apis = append(apis, s.lesServer.APIs()...) - } - // Append any APIs exposed explicitly by the consensus engine - apis = append(apis, s.engine.APIs(s.BlockChain())...) - - // Append all the local APIs and return - return append(apis, []rpc.API{ - { - Namespace: "eth", - Version: "1.0", - Service: NewPublicEthereumAPI(s), - Public: true, - }, { - Namespace: "eth", - Version: "1.0", - Service: NewPublicMinerAPI(s), - Public: true, - }, { - Namespace: "eth", - Version: "1.0", - Service: downloader.NewPublicDownloaderAPI(s.protocolManager.downloader, s.eventMux), - Public: true, - }, { - Namespace: "miner", - Version: "1.0", - Service: NewPrivateMinerAPI(s), - Public: false, - }, { - Namespace: "eth", - Version: "1.0", - Service: filters.NewPublicFilterAPI(s.APIBackend, false), - Public: true, - }, { - Namespace: "admin", - Version: "1.0", - Service: NewPrivateAdminAPI(s), - }, { - Namespace: "debug", - Version: "1.0", - Service: NewPublicDebugAPI(s), - Public: true, - }, { - Namespace: "debug", - Version: "1.0", - Service: NewPrivateDebugAPI(s), - }, { - Namespace: "net", - Version: "1.0", - Service: s.netRPCService, - Public: true, - }, - }...) -} - -func (s *Ethereum) ResetWithGenesisBlock(gb *types.Block) { - s.blockchain.ResetWithGenesisBlock(gb) -} - -func (s *Ethereum) Etherbase() (eb common.Address, err error) { - s.lock.RLock() - etherbase := s.etherbase - s.lock.RUnlock() - - if etherbase != (common.Address{}) { - return etherbase, nil - } - if wallets := s.AccountManager().Wallets(); len(wallets) > 0 { - if accounts := wallets[0].Accounts(); len(accounts) > 0 { - etherbase := accounts[0].Address - - s.lock.Lock() - s.etherbase = etherbase - s.lock.Unlock() - - log.Info("Etherbase automatically configured", "address", etherbase) - return etherbase, nil - } - } - return common.Address{}, fmt.Errorf("etherbase must be explicitly specified") -} - -// isLocalBlock checks whether the specified block is mined -// by local miner accounts. -// -// We regard two types of accounts as local miner account: etherbase -// and accounts specified via `txpool.locals` flag. -func (s *Ethereum) isLocalBlock(block *types.Block) bool { - author, err := s.engine.Author(block.Header()) - if err != nil { - log.Warn("Failed to retrieve block author", "number", block.NumberU64(), "hash", block.Hash(), "err", err) - return false - } - // Check whether the given address is etherbase. - s.lock.RLock() - etherbase := s.etherbase - s.lock.RUnlock() - if author == etherbase { - return true - } - // Check whether the given address is specified by `txpool.local` - // CLI flag. - for _, account := range s.config.TxPool.Locals { - if account == author { - return true - } - } - return false -} - -// shouldPreserve checks whether we should preserve the given block -// during the chain reorg depending on whether the author of block -// is a local account. -func (s *Ethereum) shouldPreserve(block *types.Block) bool { - // The reason we need to disable the self-reorg preserving for clique - // is it can be probable to introduce a deadlock. - // - // e.g. If there are 7 available signers - // - // r1 A - // r2 B - // r3 C - // r4 D - // r5 A [X] F G - // r6 [X] - // - // In the round5, the inturn signer E is offline, so the worst case - // is A, F and G sign the block of round5 and reject the block of opponents - // and in the round6, the last available signer B is offline, the whole - // network is stuck. - if _, ok := s.engine.(*clique.Clique); ok { - return false - } - return s.isLocalBlock(block) -} - -// SetEtherbase sets the mining reward address. -func (s *Ethereum) SetEtherbase(etherbase common.Address) { - s.lock.Lock() - s.etherbase = etherbase - s.lock.Unlock() - - s.miner.SetEtherbase(etherbase) -} - -// StartMining starts the miner with the given number of CPU threads. If mining -// is already running, this method adjust the number of threads allowed to use -// and updates the minimum price required by the transaction pool. -func (s *Ethereum) StartMining(threads int) error { - // Update the thread count within the consensus engine - type threaded interface { - SetThreads(threads int) - } - if th, ok := s.engine.(threaded); ok { - log.Info("Updated mining threads", "threads", threads) - if threads == 0 { - threads = -1 // Disable the miner from within - } - th.SetThreads(threads) - } - // If the miner was not running, initialize it - if !s.IsMining() { - // Propagate the initial price point to the transaction pool - s.lock.RLock() - price := s.gasPrice - s.lock.RUnlock() - s.txPool.SetGasPrice(price) - - // Configure the local mining address - eb, err := s.Etherbase() - if err != nil { - log.Error("Cannot start mining without etherbase", "err", err) - return fmt.Errorf("etherbase missing: %v", err) - } - if clique, ok := s.engine.(*clique.Clique); ok { - wallet, err := s.accountManager.Find(accounts.Account{Address: eb}) - if wallet == nil || err != nil { - log.Error("Etherbase account unavailable locally", "err", err) - return fmt.Errorf("signer missing: %v", err) - } - clique.Authorize(eb, wallet.SignData) - } - // If mining is started, we can disable the transaction rejection mechanism - // introduced to speed sync times. - atomic.StoreUint32(&s.protocolManager.acceptTxs, 1) - - go s.miner.Start(eb) - } - return nil -} - -// StopMining terminates the miner, both at the consensus engine level as well as -// at the block creation level. -func (s *Ethereum) StopMining() { - // Update the thread count within the consensus engine - type threaded interface { - SetThreads(threads int) - } - if th, ok := s.engine.(threaded); ok { - th.SetThreads(-1) - } - // Stop the block creating itself - s.miner.Stop() -} - -func (s *Ethereum) IsMining() bool { return s.miner.Mining() } -func (s *Ethereum) Miner() *miner.Miner { return s.miner } - -func (s *Ethereum) AccountManager() *accounts.Manager { return s.accountManager } -func (s *Ethereum) BlockChain() *core.BlockChain { return s.blockchain } -func (s *Ethereum) TxPool() *core.TxPool { return s.txPool } -func (s *Ethereum) EventMux() *event.TypeMux { return s.eventMux } -func (s *Ethereum) Engine() consensus.Engine { return s.engine } -func (s *Ethereum) ChainDb() ethdb.Database { return s.chainDb } -func (s *Ethereum) IsListening() bool { return true } // Always listening -func (s *Ethereum) EthVersion() int { return int(s.protocolManager.SubProtocols[0].Version) } -func (s *Ethereum) NetVersion() uint64 { return s.networkID } -func (s *Ethereum) Downloader() *downloader.Downloader { return s.protocolManager.downloader } - -// Protocols implements node.Service, returning all the currently configured -// network protocols to start. -func (s *Ethereum) Protocols() []p2p.Protocol { - if s.lesServer == nil { - return s.protocolManager.SubProtocols - } - return append(s.protocolManager.SubProtocols, s.lesServer.Protocols()...) -} - -// Start implements node.Service, starting all internal goroutines needed by the -// Ethereum protocol implementation. -func (s *Ethereum) Start(srvr *p2p.Server) error { - // Start the bloom bits servicing goroutines - s.startBloomHandlers(params.BloomBitsBlocks) - - // Start the RPC service - s.netRPCService = ethapi.NewPublicNetAPI(srvr, s.NetVersion()) - - // Figure out a max peers count based on the server limits - maxPeers := srvr.MaxPeers - if s.config.LightServ > 0 { - if s.config.LightPeers >= srvr.MaxPeers { - return fmt.Errorf("invalid peer config: light peer count (%d) >= total peer count (%d)", s.config.LightPeers, srvr.MaxPeers) - } - maxPeers -= s.config.LightPeers - } - // Start the networking layer and the light server if requested - s.protocolManager.Start(maxPeers) - if s.lesServer != nil { - s.lesServer.Start(srvr) - } - return nil -} - -// Stop implements node.Service, terminating all internal goroutines used by the -// Ethereum protocol. -func (s *Ethereum) Stop() error { - s.bloomIndexer.Close() - s.blockchain.Stop() - s.engine.Close() - s.protocolManager.Stop() - if s.lesServer != nil { - s.lesServer.Stop() - } - s.txPool.Stop() - s.miner.Stop() - s.eventMux.Stop() - - s.chainDb.Close() - close(s.shutdownChan) - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/eth/config.go b/vendor/github.com/ethereum/go-ethereum/eth/config.go deleted file mode 100644 index 69993410..00000000 --- a/vendor/github.com/ethereum/go-ethereum/eth/config.go +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package eth - -import ( - "math/big" - "os" - "os/user" - "path/filepath" - "runtime" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/eth/gasprice" - "github.com/ethereum/go-ethereum/params" -) - -// DefaultConfig contains default settings for use on the Ethereum main net. -var DefaultConfig = Config{ - SyncMode: downloader.FastSync, - Ethash: ethash.Config{ - CacheDir: "ethash", - CachesInMem: 2, - CachesOnDisk: 3, - DatasetsInMem: 1, - DatasetsOnDisk: 2, - }, - NetworkId: 1, - LightPeers: 100, - DatabaseCache: 512, - TrieCleanCache: 256, - TrieDirtyCache: 256, - TrieTimeout: 60 * time.Minute, - MinerGasFloor: 8000000, - MinerGasCeil: 8000000, - MinerGasPrice: big.NewInt(params.GWei), - MinerRecommit: 3 * time.Second, - - TxPool: core.DefaultTxPoolConfig, - GPO: gasprice.Config{ - Blocks: 20, - Percentile: 60, - }, - - StateDiff: false, -} - -func init() { - home := os.Getenv("HOME") - if home == "" { - if user, err := user.Current(); err == nil { - home = user.HomeDir - } - } - if runtime.GOOS == "darwin" { - DefaultConfig.Ethash.DatasetDir = filepath.Join(home, "Library", "Ethash") - } else if runtime.GOOS == "windows" { - localappdata := os.Getenv("LOCALAPPDATA") - if localappdata != "" { - DefaultConfig.Ethash.DatasetDir = filepath.Join(localappdata, "Ethash") - } else { - DefaultConfig.Ethash.DatasetDir = filepath.Join(home, "AppData", "Local", "Ethash") - } - } else { - DefaultConfig.Ethash.DatasetDir = filepath.Join(home, ".ethash") - } -} - -//go:generate gencodec -type Config -field-override configMarshaling -formats toml -out gen_config.go - -type Config struct { - // The genesis block, which is inserted if the database is empty. - // If nil, the Ethereum main net block is used. - Genesis *core.Genesis `toml:",omitempty"` - - // Protocol options - NetworkId uint64 // Network ID to use for selecting peers to connect to - SyncMode downloader.SyncMode - - NoPruning bool // Whether to disable pruning and flush everything to disk - NoPrefetch bool // Whether to disable prefetching and only load state on demand - - // Whitelist of required block number -> hash values to accept - Whitelist map[uint64]common.Hash `toml:"-"` - - // Light client options - LightServ int `toml:",omitempty"` // Maximum percentage of time allowed for serving LES requests - LightBandwidthIn int `toml:",omitempty"` // Incoming bandwidth limit for light servers - LightBandwidthOut int `toml:",omitempty"` // Outgoing bandwidth limit for light servers - LightPeers int `toml:",omitempty"` // Maximum number of LES client peers - OnlyAnnounce bool // Maximum number of LES client peers - - // Ultra Light client options - ULC *ULCConfig `toml:",omitempty"` - - // Database options - SkipBcVersionCheck bool `toml:"-"` - DatabaseHandles int `toml:"-"` - DatabaseCache int - - TrieCleanCache int - TrieDirtyCache int - TrieTimeout time.Duration - - // Mining-related options - Etherbase common.Address `toml:",omitempty"` - MinerNotify []string `toml:",omitempty"` - MinerExtraData []byte `toml:",omitempty"` - MinerGasFloor uint64 - MinerGasCeil uint64 - MinerGasPrice *big.Int - MinerRecommit time.Duration - MinerNoverify bool - - // Ethash options - Ethash ethash.Config - - // Transaction pool options - TxPool core.TxPoolConfig - - // Gas Price Oracle options - GPO gasprice.Config - - // Enables tracking of SHA3 preimages in the VM - EnablePreimageRecording bool - - // Miscellaneous options - DocRoot string `toml:"-"` - - // Type of the EWASM interpreter ("" for default) - EWASMInterpreter string - - // Type of the EVM interpreter ("" for default) - EVMInterpreter string - - // Constantinople block override (TODO: remove after the fork) - ConstantinopleOverride *big.Int - - // RPCGasCap is the global gas cap for eth-call variants. - RPCGasCap *big.Int `toml:",omitempty"` - - StateDiff bool -} - -type configMarshaling struct { - MinerExtraData hexutil.Bytes -} diff --git a/vendor/github.com/ethereum/go-ethereum/ethstats/ethstats.go b/vendor/github.com/ethereum/go-ethereum/ethstats/ethstats.go deleted file mode 100644 index caf23209..00000000 --- a/vendor/github.com/ethereum/go-ethereum/ethstats/ethstats.go +++ /dev/null @@ -1,717 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package ethstats implements the network stats reporting service. -package ethstats - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "math/big" - "net" - "regexp" - "runtime" - "strconv" - "strings" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/mclock" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/les" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/rpc" - "golang.org/x/net/websocket" -) - -const ( - // historyUpdateRange is the number of blocks a node should report upon login or - // history request. - historyUpdateRange = 50 - - // txChanSize is the size of channel listening to NewTxsEvent. - // The number is referenced from the size of tx pool. - txChanSize = 4096 - // chainHeadChanSize is the size of channel listening to ChainHeadEvent. - chainHeadChanSize = 10 -) - -type txPool interface { - // SubscribeNewTxsEvent should return an event subscription of - // NewTxsEvent and send events to the given channel. - SubscribeNewTxsEvent(chan<- core.NewTxsEvent) event.Subscription -} - -type blockChain interface { - SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription -} - -// Service implements an Ethereum netstats reporting daemon that pushes local -// chain statistics up to a monitoring server. -type Service struct { - server *p2p.Server // Peer-to-peer server to retrieve networking infos - eth *eth.Ethereum // Full Ethereum service if monitoring a full node - les *les.LightEthereum // Light Ethereum service if monitoring a light node - engine consensus.Engine // Consensus engine to retrieve variadic block fields - - node string // Name of the node to display on the monitoring page - pass string // Password to authorize access to the monitoring page - host string // Remote address of the monitoring service - - pongCh chan struct{} // Pong notifications are fed into this channel - histCh chan []uint64 // History request block numbers are fed into this channel -} - -// New returns a monitoring service ready for stats reporting. -func New(url string, ethServ *eth.Ethereum, lesServ *les.LightEthereum) (*Service, error) { - // Parse the netstats connection url - re := regexp.MustCompile("([^:@]*)(:([^@]*))?@(.+)") - parts := re.FindStringSubmatch(url) - if len(parts) != 5 { - return nil, fmt.Errorf("invalid netstats url: \"%s\", should be nodename:secret@host:port", url) - } - // Assemble and return the stats service - var engine consensus.Engine - if ethServ != nil { - engine = ethServ.Engine() - } else { - engine = lesServ.Engine() - } - return &Service{ - eth: ethServ, - les: lesServ, - engine: engine, - node: parts[1], - pass: parts[3], - host: parts[4], - pongCh: make(chan struct{}), - histCh: make(chan []uint64, 1), - }, nil -} - -// Protocols implements node.Service, returning the P2P network protocols used -// by the stats service (nil as it doesn't use the devp2p overlay network). -func (s *Service) Protocols() []p2p.Protocol { return nil } - -// APIs implements node.Service, returning the RPC API endpoints provided by the -// stats service (nil as it doesn't provide any user callable APIs). -func (s *Service) APIs() []rpc.API { return nil } - -// Start implements node.Service, starting up the monitoring and reporting daemon. -func (s *Service) Start(server *p2p.Server) error { - s.server = server - go s.loop() - - log.Info("Stats daemon started") - return nil -} - -// Stop implements node.Service, terminating the monitoring and reporting daemon. -func (s *Service) Stop() error { - log.Info("Stats daemon stopped") - return nil -} - -// loop keeps trying to connect to the netstats server, reporting chain events -// until termination. -func (s *Service) loop() { - // Subscribe to chain events to execute updates on - var blockchain blockChain - var txpool txPool - if s.eth != nil { - blockchain = s.eth.BlockChain() - txpool = s.eth.TxPool() - } else { - blockchain = s.les.BlockChain() - txpool = s.les.TxPool() - } - - chainHeadCh := make(chan core.ChainHeadEvent, chainHeadChanSize) - headSub := blockchain.SubscribeChainHeadEvent(chainHeadCh) - defer headSub.Unsubscribe() - - txEventCh := make(chan core.NewTxsEvent, txChanSize) - txSub := txpool.SubscribeNewTxsEvent(txEventCh) - defer txSub.Unsubscribe() - - // Start a goroutine that exhausts the subsciptions to avoid events piling up - var ( - quitCh = make(chan struct{}) - headCh = make(chan *types.Block, 1) - txCh = make(chan struct{}, 1) - ) - go func() { - var lastTx mclock.AbsTime - - HandleLoop: - for { - select { - // Notify of chain head events, but drop if too frequent - case head := <-chainHeadCh: - select { - case headCh <- head.Block: - default: - } - - // Notify of new transaction events, but drop if too frequent - case <-txEventCh: - if time.Duration(mclock.Now()-lastTx) < time.Second { - continue - } - lastTx = mclock.Now() - - select { - case txCh <- struct{}{}: - default: - } - - // node stopped - case <-txSub.Err(): - break HandleLoop - case <-headSub.Err(): - break HandleLoop - } - } - close(quitCh) - }() - // Loop reporting until termination - for { - // Resolve the URL, defaulting to TLS, but falling back to none too - path := fmt.Sprintf("%s/api", s.host) - urls := []string{path} - - if !strings.Contains(path, "://") { // url.Parse and url.IsAbs is unsuitable (https://github.com/golang/go/issues/19779) - urls = []string{"wss://" + path, "ws://" + path} - } - // Establish a websocket connection to the server on any supported URL - var ( - conf *websocket.Config - conn *websocket.Conn - err error - ) - for _, url := range urls { - if conf, err = websocket.NewConfig(url, "http://localhost/"); err != nil { - continue - } - conf.Dialer = &net.Dialer{Timeout: 5 * time.Second} - if conn, err = websocket.DialConfig(conf); err == nil { - break - } - } - if err != nil { - log.Warn("Stats server unreachable", "err", err) - time.Sleep(10 * time.Second) - continue - } - // Authenticate the client with the server - if err = s.login(conn); err != nil { - log.Warn("Stats login failed", "err", err) - conn.Close() - time.Sleep(10 * time.Second) - continue - } - go s.readLoop(conn) - - // Send the initial stats so our node looks decent from the get go - if err = s.report(conn); err != nil { - log.Warn("Initial stats report failed", "err", err) - conn.Close() - continue - } - // Keep sending status updates until the connection breaks - fullReport := time.NewTicker(15 * time.Second) - - for err == nil { - select { - case <-quitCh: - conn.Close() - return - - case <-fullReport.C: - if err = s.report(conn); err != nil { - log.Warn("Full stats report failed", "err", err) - } - case list := <-s.histCh: - if err = s.reportHistory(conn, list); err != nil { - log.Warn("Requested history report failed", "err", err) - } - case head := <-headCh: - if err = s.reportBlock(conn, head); err != nil { - log.Warn("Block stats report failed", "err", err) - } - if err = s.reportPending(conn); err != nil { - log.Warn("Post-block transaction stats report failed", "err", err) - } - case <-txCh: - if err = s.reportPending(conn); err != nil { - log.Warn("Transaction stats report failed", "err", err) - } - } - } - // Make sure the connection is closed - conn.Close() - } -} - -// readLoop loops as long as the connection is alive and retrieves data packets -// from the network socket. If any of them match an active request, it forwards -// it, if they themselves are requests it initiates a reply, and lastly it drops -// unknown packets. -func (s *Service) readLoop(conn *websocket.Conn) { - // If the read loop exists, close the connection - defer conn.Close() - - for { - // Retrieve the next generic network packet and bail out on error - var msg map[string][]interface{} - if err := websocket.JSON.Receive(conn, &msg); err != nil { - log.Warn("Failed to decode stats server message", "err", err) - return - } - log.Trace("Received message from stats server", "msg", msg) - if len(msg["emit"]) == 0 { - log.Warn("Stats server sent non-broadcast", "msg", msg) - return - } - command, ok := msg["emit"][0].(string) - if !ok { - log.Warn("Invalid stats server message type", "type", msg["emit"][0]) - return - } - // If the message is a ping reply, deliver (someone must be listening!) - if len(msg["emit"]) == 2 && command == "node-pong" { - select { - case s.pongCh <- struct{}{}: - // Pong delivered, continue listening - continue - default: - // Ping routine dead, abort - log.Warn("Stats server pinger seems to have died") - return - } - } - // If the message is a history request, forward to the event processor - if len(msg["emit"]) == 2 && command == "history" { - // Make sure the request is valid and doesn't crash us - request, ok := msg["emit"][1].(map[string]interface{}) - if !ok { - log.Warn("Invalid stats history request", "msg", msg["emit"][1]) - s.histCh <- nil - continue // Ethstats sometime sends invalid history requests, ignore those - } - list, ok := request["list"].([]interface{}) - if !ok { - log.Warn("Invalid stats history block list", "list", request["list"]) - return - } - // Convert the block number list to an integer list - numbers := make([]uint64, len(list)) - for i, num := range list { - n, ok := num.(float64) - if !ok { - log.Warn("Invalid stats history block number", "number", num) - return - } - numbers[i] = uint64(n) - } - select { - case s.histCh <- numbers: - continue - default: - } - } - // Report anything else and continue - log.Info("Unknown stats message", "msg", msg) - } -} - -// nodeInfo is the collection of metainformation about a node that is displayed -// on the monitoring page. -type nodeInfo struct { - Name string `json:"name"` - Node string `json:"node"` - Port int `json:"port"` - Network string `json:"net"` - Protocol string `json:"protocol"` - API string `json:"api"` - Os string `json:"os"` - OsVer string `json:"os_v"` - Client string `json:"client"` - History bool `json:"canUpdateHistory"` -} - -// authMsg is the authentication infos needed to login to a monitoring server. -type authMsg struct { - ID string `json:"id"` - Info nodeInfo `json:"info"` - Secret string `json:"secret"` -} - -// login tries to authorize the client at the remote server. -func (s *Service) login(conn *websocket.Conn) error { - // Construct and send the login authentication - infos := s.server.NodeInfo() - - var network, protocol string - if info := infos.Protocols["eth"]; info != nil { - network = fmt.Sprintf("%d", info.(*eth.NodeInfo).Network) - protocol = fmt.Sprintf("eth/%d", eth.ProtocolVersions[0]) - } else { - network = fmt.Sprintf("%d", infos.Protocols["les"].(*les.NodeInfo).Network) - protocol = fmt.Sprintf("les/%d", les.ClientProtocolVersions[0]) - } - auth := &authMsg{ - ID: s.node, - Info: nodeInfo{ - Name: s.node, - Node: infos.Name, - Port: infos.Ports.Listener, - Network: network, - Protocol: protocol, - API: "No", - Os: runtime.GOOS, - OsVer: runtime.GOARCH, - Client: "0.1.1", - History: true, - }, - Secret: s.pass, - } - login := map[string][]interface{}{ - "emit": {"hello", auth}, - } - if err := websocket.JSON.Send(conn, login); err != nil { - return err - } - // Retrieve the remote ack or connection termination - var ack map[string][]string - if err := websocket.JSON.Receive(conn, &ack); err != nil || len(ack["emit"]) != 1 || ack["emit"][0] != "ready" { - return errors.New("unauthorized") - } - return nil -} - -// report collects all possible data to report and send it to the stats server. -// This should only be used on reconnects or rarely to avoid overloading the -// server. Use the individual methods for reporting subscribed events. -func (s *Service) report(conn *websocket.Conn) error { - if err := s.reportLatency(conn); err != nil { - return err - } - if err := s.reportBlock(conn, nil); err != nil { - return err - } - if err := s.reportPending(conn); err != nil { - return err - } - if err := s.reportStats(conn); err != nil { - return err - } - return nil -} - -// reportLatency sends a ping request to the server, measures the RTT time and -// finally sends a latency update. -func (s *Service) reportLatency(conn *websocket.Conn) error { - // Send the current time to the ethstats server - start := time.Now() - - ping := map[string][]interface{}{ - "emit": {"node-ping", map[string]string{ - "id": s.node, - "clientTime": start.String(), - }}, - } - if err := websocket.JSON.Send(conn, ping); err != nil { - return err - } - // Wait for the pong request to arrive back - select { - case <-s.pongCh: - // Pong delivered, report the latency - case <-time.After(5 * time.Second): - // Ping timeout, abort - return errors.New("ping timed out") - } - latency := strconv.Itoa(int((time.Since(start) / time.Duration(2)).Nanoseconds() / 1000000)) - - // Send back the measured latency - log.Trace("Sending measured latency to ethstats", "latency", latency) - - stats := map[string][]interface{}{ - "emit": {"latency", map[string]string{ - "id": s.node, - "latency": latency, - }}, - } - return websocket.JSON.Send(conn, stats) -} - -// blockStats is the information to report about individual blocks. -type blockStats struct { - Number *big.Int `json:"number"` - Hash common.Hash `json:"hash"` - ParentHash common.Hash `json:"parentHash"` - Timestamp *big.Int `json:"timestamp"` - Miner common.Address `json:"miner"` - GasUsed uint64 `json:"gasUsed"` - GasLimit uint64 `json:"gasLimit"` - Diff string `json:"difficulty"` - TotalDiff string `json:"totalDifficulty"` - Txs []txStats `json:"transactions"` - TxHash common.Hash `json:"transactionsRoot"` - Root common.Hash `json:"stateRoot"` - Uncles uncleStats `json:"uncles"` -} - -// txStats is the information to report about individual transactions. -type txStats struct { - Hash common.Hash `json:"hash"` -} - -// uncleStats is a custom wrapper around an uncle array to force serializing -// empty arrays instead of returning null for them. -type uncleStats []*types.Header - -func (s uncleStats) MarshalJSON() ([]byte, error) { - if uncles := ([]*types.Header)(s); len(uncles) > 0 { - return json.Marshal(uncles) - } - return []byte("[]"), nil -} - -// reportBlock retrieves the current chain head and reports it to the stats server. -func (s *Service) reportBlock(conn *websocket.Conn, block *types.Block) error { - // Gather the block details from the header or block chain - details := s.assembleBlockStats(block) - - // Assemble the block report and send it to the server - log.Trace("Sending new block to ethstats", "number", details.Number, "hash", details.Hash) - - stats := map[string]interface{}{ - "id": s.node, - "block": details, - } - report := map[string][]interface{}{ - "emit": {"block", stats}, - } - return websocket.JSON.Send(conn, report) -} - -// assembleBlockStats retrieves any required metadata to report a single block -// and assembles the block stats. If block is nil, the current head is processed. -func (s *Service) assembleBlockStats(block *types.Block) *blockStats { - // Gather the block infos from the local blockchain - var ( - header *types.Header - td *big.Int - txs []txStats - uncles []*types.Header - ) - if s.eth != nil { - // Full nodes have all needed information available - if block == nil { - block = s.eth.BlockChain().CurrentBlock() - } - header = block.Header() - td = s.eth.BlockChain().GetTd(header.Hash(), header.Number.Uint64()) - - txs = make([]txStats, len(block.Transactions())) - for i, tx := range block.Transactions() { - txs[i].Hash = tx.Hash() - } - uncles = block.Uncles() - } else { - // Light nodes would need on-demand lookups for transactions/uncles, skip - if block != nil { - header = block.Header() - } else { - header = s.les.BlockChain().CurrentHeader() - } - td = s.les.BlockChain().GetTd(header.Hash(), header.Number.Uint64()) - txs = []txStats{} - } - // Assemble and return the block stats - author, _ := s.engine.Author(header) - - return &blockStats{ - Number: header.Number, - Hash: header.Hash(), - ParentHash: header.ParentHash, - Timestamp: new(big.Int).SetUint64(header.Time), - Miner: author, - GasUsed: header.GasUsed, - GasLimit: header.GasLimit, - Diff: header.Difficulty.String(), - TotalDiff: td.String(), - Txs: txs, - TxHash: header.TxHash, - Root: header.Root, - Uncles: uncles, - } -} - -// reportHistory retrieves the most recent batch of blocks and reports it to the -// stats server. -func (s *Service) reportHistory(conn *websocket.Conn, list []uint64) error { - // Figure out the indexes that need reporting - indexes := make([]uint64, 0, historyUpdateRange) - if len(list) > 0 { - // Specific indexes requested, send them back in particular - indexes = append(indexes, list...) - } else { - // No indexes requested, send back the top ones - var head int64 - if s.eth != nil { - head = s.eth.BlockChain().CurrentHeader().Number.Int64() - } else { - head = s.les.BlockChain().CurrentHeader().Number.Int64() - } - start := head - historyUpdateRange + 1 - if start < 0 { - start = 0 - } - for i := uint64(start); i <= uint64(head); i++ { - indexes = append(indexes, i) - } - } - // Gather the batch of blocks to report - history := make([]*blockStats, len(indexes)) - for i, number := range indexes { - // Retrieve the next block if it's known to us - var block *types.Block - if s.eth != nil { - block = s.eth.BlockChain().GetBlockByNumber(number) - } else { - if header := s.les.BlockChain().GetHeaderByNumber(number); header != nil { - block = types.NewBlockWithHeader(header) - } - } - // If we do have the block, add to the history and continue - if block != nil { - history[len(history)-1-i] = s.assembleBlockStats(block) - continue - } - // Ran out of blocks, cut the report short and send - history = history[len(history)-i:] - break - } - // Assemble the history report and send it to the server - if len(history) > 0 { - log.Trace("Sending historical blocks to ethstats", "first", history[0].Number, "last", history[len(history)-1].Number) - } else { - log.Trace("No history to send to stats server") - } - stats := map[string]interface{}{ - "id": s.node, - "history": history, - } - report := map[string][]interface{}{ - "emit": {"history", stats}, - } - return websocket.JSON.Send(conn, report) -} - -// pendStats is the information to report about pending transactions. -type pendStats struct { - Pending int `json:"pending"` -} - -// reportPending retrieves the current number of pending transactions and reports -// it to the stats server. -func (s *Service) reportPending(conn *websocket.Conn) error { - // Retrieve the pending count from the local blockchain - var pending int - if s.eth != nil { - pending, _ = s.eth.TxPool().Stats() - } else { - pending = s.les.TxPool().Stats() - } - // Assemble the transaction stats and send it to the server - log.Trace("Sending pending transactions to ethstats", "count", pending) - - stats := map[string]interface{}{ - "id": s.node, - "stats": &pendStats{ - Pending: pending, - }, - } - report := map[string][]interface{}{ - "emit": {"pending", stats}, - } - return websocket.JSON.Send(conn, report) -} - -// nodeStats is the information to report about the local node. -type nodeStats struct { - Active bool `json:"active"` - Syncing bool `json:"syncing"` - Mining bool `json:"mining"` - Hashrate int `json:"hashrate"` - Peers int `json:"peers"` - GasPrice int `json:"gasPrice"` - Uptime int `json:"uptime"` -} - -// reportPending retrieves various stats about the node at the networking and -// mining layer and reports it to the stats server. -func (s *Service) reportStats(conn *websocket.Conn) error { - // Gather the syncing and mining infos from the local miner instance - var ( - mining bool - hashrate int - syncing bool - gasprice int - ) - if s.eth != nil { - mining = s.eth.Miner().Mining() - hashrate = int(s.eth.Miner().HashRate()) - - sync := s.eth.Downloader().Progress() - syncing = s.eth.BlockChain().CurrentHeader().Number.Uint64() >= sync.HighestBlock - - price, _ := s.eth.APIBackend.SuggestPrice(context.Background()) - gasprice = int(price.Uint64()) - } else { - sync := s.les.Downloader().Progress() - syncing = s.les.BlockChain().CurrentHeader().Number.Uint64() >= sync.HighestBlock - } - // Assemble the node stats and send it to the server - log.Trace("Sending node details to ethstats") - - stats := map[string]interface{}{ - "id": s.node, - "stats": &nodeStats{ - Active: true, - Mining: mining, - Hashrate: hashrate, - Peers: s.server.PeerCount(), - GasPrice: gasprice, - Syncing: syncing, - Uptime: 100, - }, - } - report := map[string][]interface{}{ - "emit": {"stats", stats}, - } - return websocket.JSON.Send(conn, report) -} diff --git a/vendor/github.com/ethereum/go-ethereum/graphql/graphql.go b/vendor/github.com/ethereum/go-ethereum/graphql/graphql.go deleted file mode 100644 index d22a3afb..00000000 --- a/vendor/github.com/ethereum/go-ethereum/graphql/graphql.go +++ /dev/null @@ -1,1233 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package graphql provides a GraphQL interface to Ethereum node data. -package graphql - -import ( - "context" - "errors" - "fmt" - "net" - "net/http" - "time" - - "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/eth/filters" - "github.com/ethereum/go-ethereum/internal/ethapi" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/rpc" - graphqlgo "github.com/graph-gophers/graphql-go" - "github.com/graph-gophers/graphql-go/relay" -) - -var OnlyOnMainChainError = errors.New("This operation is only available for blocks on the canonical chain.") -var BlockInvariantError = errors.New("Block objects must be instantiated with at least one of num or hash.") - -// Account represents an Ethereum account at a particular block. -type Account struct { - backend *eth.EthAPIBackend - address common.Address - blockNumber rpc.BlockNumber -} - -// getState fetches the StateDB object for an account. -func (a *Account) getState(ctx context.Context) (*state.StateDB, error) { - state, _, err := a.backend.StateAndHeaderByNumber(ctx, a.blockNumber) - return state, err -} - -func (a *Account) Address(ctx context.Context) (common.Address, error) { - return a.address, nil -} - -func (a *Account) Balance(ctx context.Context) (hexutil.Big, error) { - state, err := a.getState(ctx) - if err != nil { - return hexutil.Big{}, err - } - - return hexutil.Big(*state.GetBalance(a.address)), nil -} - -func (a *Account) TransactionCount(ctx context.Context) (hexutil.Uint64, error) { - state, err := a.getState(ctx) - if err != nil { - return 0, err - } - - return hexutil.Uint64(state.GetNonce(a.address)), nil -} - -func (a *Account) Code(ctx context.Context) (hexutil.Bytes, error) { - state, err := a.getState(ctx) - if err != nil { - return hexutil.Bytes{}, err - } - - return hexutil.Bytes(state.GetCode(a.address)), nil -} - -func (a *Account) Storage(ctx context.Context, args struct{ Slot common.Hash }) (common.Hash, error) { - state, err := a.getState(ctx) - if err != nil { - return common.Hash{}, err - } - - return state.GetState(a.address, args.Slot), nil -} - -// Log represents an individual log message. All arguments are mandatory. -type Log struct { - backend *eth.EthAPIBackend - transaction *Transaction - log *types.Log -} - -func (l *Log) Transaction(ctx context.Context) *Transaction { - return l.transaction -} - -func (l *Log) Account(ctx context.Context, args BlockNumberArgs) *Account { - return &Account{ - backend: l.backend, - address: l.log.Address, - blockNumber: args.Number(), - } -} - -func (l *Log) Index(ctx context.Context) int32 { - return int32(l.log.Index) -} - -func (l *Log) Topics(ctx context.Context) []common.Hash { - return l.log.Topics -} - -func (l *Log) Data(ctx context.Context) hexutil.Bytes { - return hexutil.Bytes(l.log.Data) -} - -// Transaction represents an Ethereum transaction. -// backend and hash are mandatory; all others will be fetched when required. -type Transaction struct { - backend *eth.EthAPIBackend - hash common.Hash - tx *types.Transaction - block *Block - index uint64 -} - -// resolve returns the internal transaction object, fetching it if needed. -func (t *Transaction) resolve(ctx context.Context) (*types.Transaction, error) { - if t.tx == nil { - tx, blockHash, _, index := rawdb.ReadTransaction(t.backend.ChainDb(), t.hash) - if tx != nil { - t.tx = tx - t.block = &Block{ - backend: t.backend, - hash: blockHash, - canonical: unknown, - } - t.index = index - } else { - t.tx = t.backend.GetPoolTransaction(t.hash) - } - } - return t.tx, nil -} - -func (tx *Transaction) Hash(ctx context.Context) common.Hash { - return tx.hash -} - -func (t *Transaction) InputData(ctx context.Context) (hexutil.Bytes, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return hexutil.Bytes{}, err - } - return hexutil.Bytes(tx.Data()), nil -} - -func (t *Transaction) Gas(ctx context.Context) (hexutil.Uint64, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return 0, err - } - return hexutil.Uint64(tx.Gas()), nil -} - -func (t *Transaction) GasPrice(ctx context.Context) (hexutil.Big, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return hexutil.Big{}, err - } - return hexutil.Big(*tx.GasPrice()), nil -} - -func (t *Transaction) Value(ctx context.Context) (hexutil.Big, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return hexutil.Big{}, err - } - return hexutil.Big(*tx.Value()), nil -} - -func (t *Transaction) Nonce(ctx context.Context) (hexutil.Uint64, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return 0, err - } - return hexutil.Uint64(tx.Nonce()), nil -} - -func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return nil, err - } - - to := tx.To() - if to == nil { - return nil, nil - } - - return &Account{ - backend: t.backend, - address: *to, - blockNumber: args.Number(), - }, nil -} - -func (t *Transaction) From(ctx context.Context, args BlockNumberArgs) (*Account, error) { - tx, err := t.resolve(ctx) - if err != nil || tx == nil { - return nil, err - } - - var signer types.Signer = types.FrontierSigner{} - if tx.Protected() { - signer = types.NewEIP155Signer(tx.ChainId()) - } - from, _ := types.Sender(signer, tx) - - return &Account{ - backend: t.backend, - address: from, - blockNumber: args.Number(), - }, nil -} - -func (t *Transaction) Block(ctx context.Context) (*Block, error) { - if _, err := t.resolve(ctx); err != nil { - return nil, err - } - return t.block, nil -} - -func (t *Transaction) Index(ctx context.Context) (*int32, error) { - if _, err := t.resolve(ctx); err != nil { - return nil, err - } - if t.block == nil { - return nil, nil - } - index := int32(t.index) - return &index, nil -} - -// getReceipt returns the receipt associated with this transaction, if any. -func (t *Transaction) getReceipt(ctx context.Context) (*types.Receipt, error) { - if _, err := t.resolve(ctx); err != nil { - return nil, err - } - - if t.block == nil { - return nil, nil - } - - receipts, err := t.block.resolveReceipts(ctx) - if err != nil { - return nil, err - } - - return receipts[t.index], nil -} - -func (t *Transaction) Status(ctx context.Context) (*hexutil.Uint64, error) { - receipt, err := t.getReceipt(ctx) - if err != nil || receipt == nil { - return nil, err - } - - ret := hexutil.Uint64(receipt.Status) - return &ret, nil -} - -func (t *Transaction) GasUsed(ctx context.Context) (*hexutil.Uint64, error) { - receipt, err := t.getReceipt(ctx) - if err != nil || receipt == nil { - return nil, err - } - - ret := hexutil.Uint64(receipt.GasUsed) - return &ret, nil -} - -func (t *Transaction) CumulativeGasUsed(ctx context.Context) (*hexutil.Uint64, error) { - receipt, err := t.getReceipt(ctx) - if err != nil || receipt == nil { - return nil, err - } - - ret := hexutil.Uint64(receipt.CumulativeGasUsed) - return &ret, nil -} - -func (t *Transaction) CreatedContract(ctx context.Context, args BlockNumberArgs) (*Account, error) { - receipt, err := t.getReceipt(ctx) - if err != nil || receipt == nil || receipt.ContractAddress == (common.Address{}) { - return nil, err - } - - return &Account{ - backend: t.backend, - address: receipt.ContractAddress, - blockNumber: args.Number(), - }, nil -} - -func (t *Transaction) Logs(ctx context.Context) (*[]*Log, error) { - receipt, err := t.getReceipt(ctx) - if err != nil || receipt == nil { - return nil, err - } - - ret := make([]*Log, 0, len(receipt.Logs)) - for _, log := range receipt.Logs { - ret = append(ret, &Log{ - backend: t.backend, - transaction: t, - log: log, - }) - } - return &ret, nil -} - -type BlockType int - -const ( - unknown BlockType = iota - isCanonical - notCanonical -) - -// Block represents an Ethereum block. -// backend, and either num or hash are mandatory. All other fields are lazily fetched -// when required. -type Block struct { - backend *eth.EthAPIBackend - num *rpc.BlockNumber - hash common.Hash - header *types.Header - block *types.Block - receipts []*types.Receipt - canonical BlockType // Indicates if this block is on the main chain or not. -} - -func (b *Block) onMainChain(ctx context.Context) error { - if b.canonical == unknown { - header, err := b.resolveHeader(ctx) - if err != nil { - return err - } - canonHeader, err := b.backend.HeaderByNumber(ctx, rpc.BlockNumber(header.Number.Uint64())) - if err != nil { - return err - } - if header.Hash() == canonHeader.Hash() { - b.canonical = isCanonical - } else { - b.canonical = notCanonical - } - } - if b.canonical != isCanonical { - return OnlyOnMainChainError - } - return nil -} - -// resolve returns the internal Block object representing this block, fetching -// it if necessary. -func (b *Block) resolve(ctx context.Context) (*types.Block, error) { - if b.block != nil { - return b.block, nil - } - - var err error - if b.hash != (common.Hash{}) { - b.block, err = b.backend.GetBlock(ctx, b.hash) - } else { - b.block, err = b.backend.BlockByNumber(ctx, *b.num) - } - if b.block != nil { - b.header = b.block.Header() - } - return b.block, err -} - -// resolveHeader returns the internal Header object for this block, fetching it -// if necessary. Call this function instead of `resolve` unless you need the -// additional data (transactions and uncles). -func (b *Block) resolveHeader(ctx context.Context) (*types.Header, error) { - if b.num == nil && b.hash == (common.Hash{}) { - return nil, BlockInvariantError - } - - if b.header == nil { - if _, err := b.resolve(ctx); err != nil { - return nil, err - } - } - return b.header, nil -} - -// resolveReceipts returns the list of receipts for this block, fetching them -// if necessary. -func (b *Block) resolveReceipts(ctx context.Context) ([]*types.Receipt, error) { - if b.receipts == nil { - hash := b.hash - if hash == (common.Hash{}) { - header, err := b.resolveHeader(ctx) - if err != nil { - return nil, err - } - hash = header.Hash() - } - - receipts, err := b.backend.GetReceipts(ctx, hash) - if err != nil { - return nil, err - } - b.receipts = []*types.Receipt(receipts) - } - return b.receipts, nil -} - -func (b *Block) Number(ctx context.Context) (hexutil.Uint64, error) { - if b.num == nil || *b.num == rpc.LatestBlockNumber { - header, err := b.resolveHeader(ctx) - if err != nil { - return 0, err - } - num := rpc.BlockNumber(header.Number.Uint64()) - b.num = &num - } - return hexutil.Uint64(*b.num), nil -} - -func (b *Block) Hash(ctx context.Context) (common.Hash, error) { - if b.hash == (common.Hash{}) { - header, err := b.resolveHeader(ctx) - if err != nil { - return common.Hash{}, err - } - b.hash = header.Hash() - } - return b.hash, nil -} - -func (b *Block) GasLimit(ctx context.Context) (hexutil.Uint64, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return 0, err - } - return hexutil.Uint64(header.GasLimit), nil -} - -func (b *Block) GasUsed(ctx context.Context) (hexutil.Uint64, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return 0, err - } - return hexutil.Uint64(header.GasUsed), nil -} - -func (b *Block) Parent(ctx context.Context) (*Block, error) { - // If the block hasn't been fetched, and we'll need it, fetch it. - if b.num == nil && b.hash != (common.Hash{}) && b.header == nil { - if _, err := b.resolve(ctx); err != nil { - return nil, err - } - } - - if b.header != nil && b.block.NumberU64() > 0 { - num := rpc.BlockNumber(b.header.Number.Uint64() - 1) - return &Block{ - backend: b.backend, - num: &num, - hash: b.header.ParentHash, - canonical: unknown, - }, nil - } - if b.num != nil && *b.num != 0 { - num := *b.num - 1 - return &Block{ - backend: b.backend, - num: &num, - canonical: isCanonical, - }, nil - } - return nil, nil -} - -func (b *Block) Difficulty(ctx context.Context) (hexutil.Big, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return hexutil.Big{}, err - } - return hexutil.Big(*header.Difficulty), nil -} - -func (b *Block) Timestamp(ctx context.Context) (hexutil.Uint64, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return 0, err - } - return hexutil.Uint64(header.Time), nil -} - -func (b *Block) Nonce(ctx context.Context) (hexutil.Bytes, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return hexutil.Bytes{}, err - } - return hexutil.Bytes(header.Nonce[:]), nil -} - -func (b *Block) MixHash(ctx context.Context) (common.Hash, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return common.Hash{}, err - } - return header.MixDigest, nil -} - -func (b *Block) TransactionsRoot(ctx context.Context) (common.Hash, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return common.Hash{}, err - } - return header.TxHash, nil -} - -func (b *Block) StateRoot(ctx context.Context) (common.Hash, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return common.Hash{}, err - } - return header.Root, nil -} - -func (b *Block) ReceiptsRoot(ctx context.Context) (common.Hash, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return common.Hash{}, err - } - return header.ReceiptHash, nil -} - -func (b *Block) OmmerHash(ctx context.Context) (common.Hash, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return common.Hash{}, err - } - return header.UncleHash, nil -} - -func (b *Block) OmmerCount(ctx context.Context) (*int32, error) { - block, err := b.resolve(ctx) - if err != nil || block == nil { - return nil, err - } - count := int32(len(block.Uncles())) - return &count, err -} - -func (b *Block) Ommers(ctx context.Context) (*[]*Block, error) { - block, err := b.resolve(ctx) - if err != nil || block == nil { - return nil, err - } - - ret := make([]*Block, 0, len(block.Uncles())) - for _, uncle := range block.Uncles() { - blockNumber := rpc.BlockNumber(uncle.Number.Uint64()) - ret = append(ret, &Block{ - backend: b.backend, - num: &blockNumber, - hash: uncle.Hash(), - header: uncle, - canonical: notCanonical, - }) - } - return &ret, nil -} - -func (b *Block) ExtraData(ctx context.Context) (hexutil.Bytes, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return hexutil.Bytes{}, err - } - return hexutil.Bytes(header.Extra), nil -} - -func (b *Block) LogsBloom(ctx context.Context) (hexutil.Bytes, error) { - header, err := b.resolveHeader(ctx) - if err != nil { - return hexutil.Bytes{}, err - } - return hexutil.Bytes(header.Bloom.Bytes()), nil -} - -func (b *Block) TotalDifficulty(ctx context.Context) (hexutil.Big, error) { - h := b.hash - if h == (common.Hash{}) { - header, err := b.resolveHeader(ctx) - if err != nil { - return hexutil.Big{}, err - } - h = header.Hash() - } - - return hexutil.Big(*b.backend.GetTd(h)), nil -} - -// BlockNumberArgs encapsulates arguments to accessors that specify a block number. -type BlockNumberArgs struct { - Block *hexutil.Uint64 -} - -// Number returns the provided block number, or rpc.LatestBlockNumber if none -// was provided. -func (a BlockNumberArgs) Number() rpc.BlockNumber { - if a.Block != nil { - return rpc.BlockNumber(*a.Block) - } - return rpc.LatestBlockNumber -} - -func (b *Block) Miner(ctx context.Context, args BlockNumberArgs) (*Account, error) { - block, err := b.resolve(ctx) - if err != nil { - return nil, err - } - - return &Account{ - backend: b.backend, - address: block.Coinbase(), - blockNumber: args.Number(), - }, nil -} - -func (b *Block) TransactionCount(ctx context.Context) (*int32, error) { - block, err := b.resolve(ctx) - if err != nil || block == nil { - return nil, err - } - count := int32(len(block.Transactions())) - return &count, err -} - -func (b *Block) Transactions(ctx context.Context) (*[]*Transaction, error) { - block, err := b.resolve(ctx) - if err != nil || block == nil { - return nil, err - } - - ret := make([]*Transaction, 0, len(block.Transactions())) - for i, tx := range block.Transactions() { - ret = append(ret, &Transaction{ - backend: b.backend, - hash: tx.Hash(), - tx: tx, - block: b, - index: uint64(i), - }) - } - return &ret, nil -} - -func (b *Block) TransactionAt(ctx context.Context, args struct{ Index int32 }) (*Transaction, error) { - block, err := b.resolve(ctx) - if err != nil || block == nil { - return nil, err - } - - txes := block.Transactions() - if args.Index < 0 || int(args.Index) >= len(txes) { - return nil, nil - } - - tx := txes[args.Index] - return &Transaction{ - backend: b.backend, - hash: tx.Hash(), - tx: tx, - block: b, - index: uint64(args.Index), - }, nil -} - -func (b *Block) OmmerAt(ctx context.Context, args struct{ Index int32 }) (*Block, error) { - block, err := b.resolve(ctx) - if err != nil || block == nil { - return nil, err - } - - uncles := block.Uncles() - if args.Index < 0 || int(args.Index) >= len(uncles) { - return nil, nil - } - - uncle := uncles[args.Index] - blockNumber := rpc.BlockNumber(uncle.Number.Uint64()) - return &Block{ - backend: b.backend, - num: &blockNumber, - hash: uncle.Hash(), - header: uncle, - canonical: notCanonical, - }, nil -} - -// BlockFilterCriteria encapsulates criteria passed to a `logs` accessor inside -// a block. -type BlockFilterCriteria struct { - Addresses *[]common.Address // restricts matches to events created by specific contracts - - // The Topic list restricts matches to particular event topics. Each event has a list - // of topics. Topics matches a prefix of that list. An empty element slice matches any - // topic. Non-empty elements represent an alternative that matches any of the - // contained topics. - // - // Examples: - // {} or nil matches any topic list - // {{A}} matches topic A in first position - // {{}, {B}} matches any topic in first position, B in second position - // {{A}, {B}} matches topic A in first position, B in second position - // {{A, B}}, {C, D}} matches topic (A OR B) in first position, (C OR D) in second position - Topics *[][]common.Hash -} - -// runFilter accepts a filter and executes it, returning all its results as -// `Log` objects. -func runFilter(ctx context.Context, be *eth.EthAPIBackend, filter *filters.Filter) ([]*Log, error) { - logs, err := filter.Logs(ctx) - if err != nil || logs == nil { - return nil, err - } - - ret := make([]*Log, 0, len(logs)) - for _, log := range logs { - ret = append(ret, &Log{ - backend: be, - transaction: &Transaction{backend: be, hash: log.TxHash}, - log: log, - }) - } - return ret, nil -} - -func (b *Block) Logs(ctx context.Context, args struct{ Filter BlockFilterCriteria }) ([]*Log, error) { - var addresses []common.Address - if args.Filter.Addresses != nil { - addresses = *args.Filter.Addresses - } - - var topics [][]common.Hash - if args.Filter.Topics != nil { - topics = *args.Filter.Topics - } - - hash := b.hash - if hash == (common.Hash{}) { - block, err := b.resolve(ctx) - if err != nil { - return nil, err - } - hash = block.Hash() - } - - // Construct the range filter - filter := filters.NewBlockFilter(b.backend, hash, addresses, topics) - - // Run the filter and return all the logs - return runFilter(ctx, b.backend, filter) -} - -func (b *Block) Account(ctx context.Context, args struct { - Address common.Address -}) (*Account, error) { - err := b.onMainChain(ctx) - if err != nil { - return nil, err - } - - if b.num == nil { - _, err := b.resolveHeader(ctx) - if err != nil { - return nil, err - } - } - - return &Account{ - backend: b.backend, - address: args.Address, - blockNumber: *b.num, - }, nil -} - -// CallData encapsulates arguments to `call` or `estimateGas`. -// All arguments are optional. -type CallData struct { - From *common.Address // The Ethereum address the call is from. - To *common.Address // The Ethereum address the call is to. - Gas *hexutil.Uint64 // The amount of gas provided for the call. - GasPrice *hexutil.Big // The price of each unit of gas, in wei. - Value *hexutil.Big // The value sent along with the call. - Data *hexutil.Bytes // Any data sent with the call. -} - -// CallResult encapsulates the result of an invocation of the `call` accessor. -type CallResult struct { - data hexutil.Bytes // The return data from the call - gasUsed hexutil.Uint64 // The amount of gas used - status hexutil.Uint64 // The return status of the call - 0 for failure or 1 for success. -} - -func (c *CallResult) Data() hexutil.Bytes { - return c.data -} - -func (c *CallResult) GasUsed() hexutil.Uint64 { - return c.gasUsed -} - -func (c *CallResult) Status() hexutil.Uint64 { - return c.status -} - -func (b *Block) Call(ctx context.Context, args struct { - Data ethapi.CallArgs -}) (*CallResult, error) { - err := b.onMainChain(ctx) - if err != nil { - return nil, err - } - - if b.num == nil { - _, err := b.resolveHeader(ctx) - if err != nil { - return nil, err - } - } - - result, gas, failed, err := ethapi.DoCall(ctx, b.backend, args.Data, *b.num, vm.Config{}, 5*time.Second, b.backend.RPCGasCap()) - status := hexutil.Uint64(1) - if failed { - status = 0 - } - return &CallResult{ - data: hexutil.Bytes(result), - gasUsed: hexutil.Uint64(gas), - status: status, - }, err -} - -func (b *Block) EstimateGas(ctx context.Context, args struct { - Data ethapi.CallArgs -}) (hexutil.Uint64, error) { - err := b.onMainChain(ctx) - if err != nil { - return hexutil.Uint64(0), err - } - - if b.num == nil { - _, err := b.resolveHeader(ctx) - if err != nil { - return hexutil.Uint64(0), err - } - } - - gas, err := ethapi.DoEstimateGas(ctx, b.backend, args.Data, *b.num, b.backend.RPCGasCap()) - return gas, err -} - -type Pending struct { - backend *eth.EthAPIBackend -} - -func (p *Pending) TransactionCount(ctx context.Context) (int32, error) { - txs, err := p.backend.GetPoolTransactions() - return int32(len(txs)), err -} - -func (p *Pending) Transactions(ctx context.Context) (*[]*Transaction, error) { - txs, err := p.backend.GetPoolTransactions() - if err != nil { - return nil, err - } - - ret := make([]*Transaction, 0, len(txs)) - for i, tx := range txs { - ret = append(ret, &Transaction{ - backend: p.backend, - hash: tx.Hash(), - tx: tx, - index: uint64(i), - }) - } - return &ret, nil -} - -func (p *Pending) Account(ctx context.Context, args struct { - Address common.Address -}) *Account { - return &Account{ - backend: p.backend, - address: args.Address, - blockNumber: rpc.PendingBlockNumber, - } -} - -func (p *Pending) Call(ctx context.Context, args struct { - Data ethapi.CallArgs -}) (*CallResult, error) { - result, gas, failed, err := ethapi.DoCall(ctx, p.backend, args.Data, rpc.PendingBlockNumber, vm.Config{}, 5*time.Second, p.backend.RPCGasCap()) - status := hexutil.Uint64(1) - if failed { - status = 0 - } - return &CallResult{ - data: hexutil.Bytes(result), - gasUsed: hexutil.Uint64(gas), - status: status, - }, err -} - -func (p *Pending) EstimateGas(ctx context.Context, args struct { - Data ethapi.CallArgs -}) (hexutil.Uint64, error) { - return ethapi.DoEstimateGas(ctx, p.backend, args.Data, rpc.PendingBlockNumber, p.backend.RPCGasCap()) -} - -// Resolver is the top-level object in the GraphQL hierarchy. -type Resolver struct { - backend *eth.EthAPIBackend -} - -func (r *Resolver) Block(ctx context.Context, args struct { - Number *hexutil.Uint64 - Hash *common.Hash -}) (*Block, error) { - var block *Block - if args.Number != nil { - num := rpc.BlockNumber(uint64(*args.Number)) - block = &Block{ - backend: r.backend, - num: &num, - canonical: isCanonical, - } - } else if args.Hash != nil { - block = &Block{ - backend: r.backend, - hash: *args.Hash, - canonical: unknown, - } - } else { - num := rpc.LatestBlockNumber - block = &Block{ - backend: r.backend, - num: &num, - canonical: isCanonical, - } - } - - // Resolve the block; if it doesn't exist, return nil. - b, err := block.resolve(ctx) - if err != nil { - return nil, err - } else if b == nil { - return nil, nil - } - return block, nil -} - -func (r *Resolver) Blocks(ctx context.Context, args struct { - From hexutil.Uint64 - To *hexutil.Uint64 -}) ([]*Block, error) { - from := rpc.BlockNumber(args.From) - - var to rpc.BlockNumber - if args.To != nil { - to = rpc.BlockNumber(*args.To) - } else { - to = rpc.BlockNumber(r.backend.CurrentBlock().Number().Int64()) - } - - if to < from { - return []*Block{}, nil - } - - ret := make([]*Block, 0, to-from+1) - for i := from; i <= to; i++ { - num := i - ret = append(ret, &Block{ - backend: r.backend, - num: &num, - canonical: isCanonical, - }) - } - return ret, nil -} - -func (r *Resolver) Pending(ctx context.Context) *Pending { - return &Pending{r.backend} -} - -func (r *Resolver) Transaction(ctx context.Context, args struct{ Hash common.Hash }) (*Transaction, error) { - tx := &Transaction{ - backend: r.backend, - hash: args.Hash, - } - - // Resolve the transaction; if it doesn't exist, return nil. - t, err := tx.resolve(ctx) - if err != nil { - return nil, err - } else if t == nil { - return nil, nil - } - return tx, nil -} - -func (r *Resolver) SendRawTransaction(ctx context.Context, args struct{ Data hexutil.Bytes }) (common.Hash, error) { - tx := new(types.Transaction) - if err := rlp.DecodeBytes(args.Data, tx); err != nil { - return common.Hash{}, err - } - hash, err := ethapi.SubmitTransaction(ctx, r.backend, tx) - return hash, err -} - -// FilterCriteria encapsulates the arguments to `logs` on the root resolver object. -type FilterCriteria struct { - FromBlock *hexutil.Uint64 // beginning of the queried range, nil means genesis block - ToBlock *hexutil.Uint64 // end of the range, nil means latest block - Addresses *[]common.Address // restricts matches to events created by specific contracts - - // The Topic list restricts matches to particular event topics. Each event has a list - // of topics. Topics matches a prefix of that list. An empty element slice matches any - // topic. Non-empty elements represent an alternative that matches any of the - // contained topics. - // - // Examples: - // {} or nil matches any topic list - // {{A}} matches topic A in first position - // {{}, {B}} matches any topic in first position, B in second position - // {{A}, {B}} matches topic A in first position, B in second position - // {{A, B}}, {C, D}} matches topic (A OR B) in first position, (C OR D) in second position - Topics *[][]common.Hash -} - -func (r *Resolver) Logs(ctx context.Context, args struct{ Filter FilterCriteria }) ([]*Log, error) { - // Convert the RPC block numbers into internal representations - begin := rpc.LatestBlockNumber.Int64() - if args.Filter.FromBlock != nil { - begin = int64(*args.Filter.FromBlock) - } - end := rpc.LatestBlockNumber.Int64() - if args.Filter.ToBlock != nil { - end = int64(*args.Filter.ToBlock) - } - - var addresses []common.Address - if args.Filter.Addresses != nil { - addresses = *args.Filter.Addresses - } - - var topics [][]common.Hash - if args.Filter.Topics != nil { - topics = *args.Filter.Topics - } - - // Construct the range filter - filter := filters.NewRangeFilter(filters.Backend(r.backend), begin, end, addresses, topics) - - return runFilter(ctx, r.backend, filter) -} - -func (r *Resolver) GasPrice(ctx context.Context) (hexutil.Big, error) { - price, err := r.backend.SuggestPrice(ctx) - return hexutil.Big(*price), err -} - -func (r *Resolver) ProtocolVersion(ctx context.Context) (int32, error) { - return int32(r.backend.ProtocolVersion()), nil -} - -// SyncState represents the synchronisation status returned from the `syncing` accessor. -type SyncState struct { - progress ethereum.SyncProgress -} - -func (s *SyncState) StartingBlock() hexutil.Uint64 { - return hexutil.Uint64(s.progress.StartingBlock) -} - -func (s *SyncState) CurrentBlock() hexutil.Uint64 { - return hexutil.Uint64(s.progress.CurrentBlock) -} - -func (s *SyncState) HighestBlock() hexutil.Uint64 { - return hexutil.Uint64(s.progress.HighestBlock) -} - -func (s *SyncState) PulledStates() *hexutil.Uint64 { - ret := hexutil.Uint64(s.progress.PulledStates) - return &ret -} - -func (s *SyncState) KnownStates() *hexutil.Uint64 { - ret := hexutil.Uint64(s.progress.KnownStates) - return &ret -} - -// Syncing returns false in case the node is currently not syncing with the network. It can be up to date or has not -// yet received the latest block headers from its pears. In case it is synchronizing: -// - startingBlock: block number this node started to synchronise from -// - currentBlock: block number this node is currently importing -// - highestBlock: block number of the highest block header this node has received from peers -// - pulledStates: number of state entries processed until now -// - knownStates: number of known state entries that still need to be pulled -func (r *Resolver) Syncing() (*SyncState, error) { - progress := r.backend.Downloader().Progress() - - // Return not syncing if the synchronisation already completed - if progress.CurrentBlock >= progress.HighestBlock { - return nil, nil - } - // Otherwise gather the block sync stats - return &SyncState{progress}, nil -} - -// NewHandler returns a new `http.Handler` that will answer GraphQL queries. -// It additionally exports an interactive query browser on the / endpoint. -func NewHandler(be *eth.EthAPIBackend) (http.Handler, error) { - q := Resolver{be} - - s, err := graphqlgo.ParseSchema(schema, &q) - if err != nil { - return nil, err - } - h := &relay.Handler{Schema: s} - - mux := http.NewServeMux() - mux.Handle("/", GraphiQL{}) - mux.Handle("/graphql", h) - mux.Handle("/graphql/", h) - return mux, nil -} - -// Service encapsulates a GraphQL service. -type Service struct { - endpoint string // The host:port endpoint for this service. - cors []string // Allowed CORS domains - vhosts []string // Recognised vhosts - timeouts rpc.HTTPTimeouts // Timeout settings for HTTP requests. - backend *eth.EthAPIBackend // The backend that queries will operate onn. - handler http.Handler // The `http.Handler` used to answer queries. - listener net.Listener // The listening socket. -} - -// Protocols returns the list of protocols exported by this service. -func (s *Service) Protocols() []p2p.Protocol { return nil } - -// APIs returns the list of APIs exported by this service. -func (s *Service) APIs() []rpc.API { return nil } - -// Start is called after all services have been constructed and the networking -// layer was also initialized to spawn any goroutines required by the service. -func (s *Service) Start(server *p2p.Server) error { - var err error - s.handler, err = NewHandler(s.backend) - if err != nil { - return err - } - - if s.listener, err = net.Listen("tcp", s.endpoint); err != nil { - return err - } - - go rpc.NewHTTPServer(s.cors, s.vhosts, s.timeouts, s.handler).Serve(s.listener) - log.Info("GraphQL endpoint opened", "url", fmt.Sprintf("http://%s", s.endpoint)) - return nil -} - -// Stop terminates all goroutines belonging to the service, blocking until they -// are all terminated. -func (s *Service) Stop() error { - if s.listener != nil { - s.listener.Close() - s.listener = nil - log.Info("GraphQL endpoint closed", "url", fmt.Sprintf("http://%s", s.endpoint)) - } - return nil -} - -// NewService constructs a new service instance. -func NewService(backend *eth.EthAPIBackend, endpoint string, cors, vhosts []string, timeouts rpc.HTTPTimeouts) (*Service, error) { - return &Service{ - endpoint: endpoint, - cors: cors, - vhosts: vhosts, - timeouts: timeouts, - backend: backend, - }, nil -} - -// RegisterGraphQLService is a utility function to construct a new service and register it against a node. -func RegisterGraphQLService(stack *node.Node, endpoint string, cors, vhosts []string, timeouts rpc.HTTPTimeouts) error { - return stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { - var ethereum *eth.Ethereum - if err := ctx.Service(ðereum); err != nil { - return nil, err - } - return NewService(ethereum.APIBackend, endpoint, cors, vhosts, timeouts) - }) -} diff --git a/vendor/github.com/ethereum/go-ethereum/graphql/schema.go b/vendor/github.com/ethereum/go-ethereum/graphql/schema.go deleted file mode 100644 index bd913d9a..00000000 --- a/vendor/github.com/ethereum/go-ethereum/graphql/schema.go +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package graphql - -const schema string = ` - # Bytes32 is a 32 byte binary string, represented as 0x-prefixed hexadecimal. - scalar Bytes32 - # Address is a 20 byte Ethereum address, represented as 0x-prefixed hexadecimal. - scalar Address - # Bytes is an arbitrary length binary string, represented as 0x-prefixed hexadecimal. - # An empty byte string is represented as '0x'. Byte strings must have an even number of hexadecimal nybbles. - scalar Bytes - # BigInt is a large integer. Input is accepted as either a JSON number or as a string. - # Strings may be either decimal or 0x-prefixed hexadecimal. Output values are all - # 0x-prefixed hexadecimal. - scalar BigInt - # Long is a 64 bit unsigned integer. - scalar Long - - schema { - query: Query - mutation: Mutation - } - - # Account is an Ethereum account at a particular block. - type Account { - # Address is the address owning the account. - address: Address! - # Balance is the balance of the account, in wei. - balance: BigInt! - # TransactionCount is the number of transactions sent from this account, - # or in the case of a contract, the number of contracts created. Otherwise - # known as the nonce. - transactionCount: Long! - # Code contains the smart contract code for this account, if the account - # is a (non-self-destructed) contract. - code: Bytes! - # Storage provides access to the storage of a contract account, indexed - # by its 32 byte slot identifier. - storage(slot: Bytes32!): Bytes32! - } - - # Log is an Ethereum event log. - type Log { - # Index is the index of this log in the block. - index: Int! - # Account is the account which generated this log - this will always - # be a contract account. - account(block: Long): Account! - # Topics is a list of 0-4 indexed topics for the log. - topics: [Bytes32!]! - # Data is unindexed data for this log. - data: Bytes! - # Transaction is the transaction that generated this log entry. - transaction: Transaction! - } - - # Transaction is an Ethereum transaction. - type Transaction { - # Hash is the hash of this transaction. - hash: Bytes32! - # Nonce is the nonce of the account this transaction was generated with. - nonce: Long! - # Index is the index of this transaction in the parent block. This will - # be null if the transaction has not yet been mined. - index: Int - # From is the account that sent this transaction - this will always be - # an externally owned account. - from(block: Long): Account! - # To is the account the transaction was sent to. This is null for - # contract-creating transactions. - to(block: Long): Account - # Value is the value, in wei, sent along with this transaction. - value: BigInt! - # GasPrice is the price offered to miners for gas, in wei per unit. - gasPrice: BigInt! - # Gas is the maximum amount of gas this transaction can consume. - gas: Long! - # InputData is the data supplied to the target of the transaction. - inputData: Bytes! - # Block is the block this transaction was mined in. This will be null if - # the transaction has not yet been mined. - block: Block - - # Status is the return status of the transaction. This will be 1 if the - # transaction succeeded, or 0 if it failed (due to a revert, or due to - # running out of gas). If the transaction has not yet been mined, this - # field will be null. - status: Long - # GasUsed is the amount of gas that was used processing this transaction. - # If the transaction has not yet been mined, this field will be null. - gasUsed: Long - # CumulativeGasUsed is the total gas used in the block up to and including - # this transaction. If the transaction has not yet been mined, this field - # will be null. - cumulativeGasUsed: Long - # CreatedContract is the account that was created by a contract creation - # transaction. If the transaction was not a contract creation transaction, - # or it has not yet been mined, this field will be null. - createdContract(block: Long): Account - # Logs is a list of log entries emitted by this transaction. If the - # transaction has not yet been mined, this field will be null. - logs: [Log!] - } - - # BlockFilterCriteria encapsulates log filter criteria for a filter applied - # to a single block. - input BlockFilterCriteria { - # Addresses is list of addresses that are of interest. If this list is - # empty, results will not be filtered by address. - addresses: [Address!] - # Topics list restricts matches to particular event topics. Each event has a list - # of topics. Topics matches a prefix of that list. An empty element array matches any - # topic. Non-empty elements represent an alternative that matches any of the - # contained topics. - # - # Examples: - # - [] or nil matches any topic list - # - [[A]] matches topic A in first position - # - [[], [B]] matches any topic in first position, B in second position - # - [[A], [B]] matches topic A in first position, B in second position - # - [[A, B]], [C, D]] matches topic (A OR B) in first position, (C OR D) in second position - topics: [[Bytes32!]!] - } - - # Block is an Ethereum block. - type Block { - # Number is the number of this block, starting at 0 for the genesis block. - number: Long! - # Hash is the block hash of this block. - hash: Bytes32! - # Parent is the parent block of this block. - parent: Block - # Nonce is the block nonce, an 8 byte sequence determined by the miner. - nonce: Bytes! - # TransactionsRoot is the keccak256 hash of the root of the trie of transactions in this block. - transactionsRoot: Bytes32! - # TransactionCount is the number of transactions in this block. if - # transactions are not available for this block, this field will be null. - transactionCount: Int - # StateRoot is the keccak256 hash of the state trie after this block was processed. - stateRoot: Bytes32! - # ReceiptsRoot is the keccak256 hash of the trie of transaction receipts in this block. - receiptsRoot: Bytes32! - # Miner is the account that mined this block. - miner(block: Long): Account! - # ExtraData is an arbitrary data field supplied by the miner. - extraData: Bytes! - # GasLimit is the maximum amount of gas that was available to transactions in this block. - gasLimit: Long! - # GasUsed is the amount of gas that was used executing transactions in this block. - gasUsed: Long! - # Timestamp is the unix timestamp at which this block was mined. - timestamp: Long! - # LogsBloom is a bloom filter that can be used to check if a block may - # contain log entries matching a filter. - logsBloom: Bytes! - # MixHash is the hash that was used as an input to the PoW process. - mixHash: Bytes32! - # Difficulty is a measure of the difficulty of mining this block. - difficulty: BigInt! - # TotalDifficulty is the sum of all difficulty values up to and including - # this block. - totalDifficulty: BigInt! - # OmmerCount is the number of ommers (AKA uncles) associated with this - # block. If ommers are unavailable, this field will be null. - ommerCount: Int - # Ommers is a list of ommer (AKA uncle) blocks associated with this block. - # If ommers are unavailable, this field will be null. Depending on your - # node, the transactions, transactionAt, transactionCount, ommers, - # ommerCount and ommerAt fields may not be available on any ommer blocks. - ommers: [Block] - # OmmerAt returns the ommer (AKA uncle) at the specified index. If ommers - # are unavailable, or the index is out of bounds, this field will be null. - ommerAt(index: Int!): Block - # OmmerHash is the keccak256 hash of all the ommers (AKA uncles) - # associated with this block. - ommerHash: Bytes32! - # Transactions is a list of transactions associated with this block. If - # transactions are unavailable for this block, this field will be null. - transactions: [Transaction!] - # TransactionAt returns the transaction at the specified index. If - # transactions are unavailable for this block, or if the index is out of - # bounds, this field will be null. - transactionAt(index: Int!): Transaction - # Logs returns a filtered set of logs from this block. - logs(filter: BlockFilterCriteria!): [Log!]! - # Account fetches an Ethereum account at the current block's state. - account(address: Address!): Account! - # Call executes a local call operation at the current block's state. - call(data: CallData!): CallResult - # EstimateGas estimates the amount of gas that will be required for - # successful execution of a transaction at the current block's state. - estimateGas(data: CallData!): Long! - } - - # CallData represents the data associated with a local contract call. - # All fields are optional. - input CallData { - # From is the address making the call. - from: Address - # To is the address the call is sent to. - to: Address - # Gas is the amount of gas sent with the call. - gas: Long - # GasPrice is the price, in wei, offered for each unit of gas. - gasPrice: BigInt - # Value is the value, in wei, sent along with the call. - value: BigInt - # Data is the data sent to the callee. - data: Bytes - } - - # CallResult is the result of a local call operation. - type CallResult { - # Data is the return data of the called contract. - data: Bytes! - # GasUsed is the amount of gas used by the call, after any refunds. - gasUsed: Long! - # Status is the result of the call - 1 for success or 0 for failure. - status: Long! - } - - # FilterCriteria encapsulates log filter criteria for searching log entries. - input FilterCriteria { - # FromBlock is the block at which to start searching, inclusive. Defaults - # to the latest block if not supplied. - fromBlock: Long - # ToBlock is the block at which to stop searching, inclusive. Defaults - # to the latest block if not supplied. - toBlock: Long - # Addresses is a list of addresses that are of interest. If this list is - # empty, results will not be filtered by address. - addresses: [Address!] - # Topics list restricts matches to particular event topics. Each event has a list - # of topics. Topics matches a prefix of that list. An empty element array matches any - # topic. Non-empty elements represent an alternative that matches any of the - # contained topics. - # - # Examples: - # - [] or nil matches any topic list - # - [[A]] matches topic A in first position - # - [[], [B]] matches any topic in first position, B in second position - # - [[A], [B]] matches topic A in first position, B in second position - # - [[A, B]], [C, D]] matches topic (A OR B) in first position, (C OR D) in second position - topics: [[Bytes32!]!] - } - - # SyncState contains the current synchronisation state of the client. - type SyncState{ - # StartingBlock is the block number at which synchronisation started. - startingBlock: Long! - # CurrentBlock is the point at which synchronisation has presently reached. - currentBlock: Long! - # HighestBlock is the latest known block number. - highestBlock: Long! - # PulledStates is the number of state entries fetched so far, or null - # if this is not known or not relevant. - pulledStates: Long - # KnownStates is the number of states the node knows of so far, or null - # if this is not known or not relevant. - knownStates: Long - } - - # Pending represents the current pending state. - type Pending { - # TransactionCount is the number of transactions in the pending state. - transactionCount: Int! - # Transactions is a list of transactions in the current pending state. - transactions: [Transaction!] - # Account fetches an Ethereum account for the pending state. - account(address: Address!): Account! - # Call executes a local call operation for the pending state. - call(data: CallData!): CallResult - # EstimateGas estimates the amount of gas that will be required for - # successful execution of a transaction for the pending state. - estimateGas(data: CallData!): Long! - } - - type Query { - # Block fetches an Ethereum block by number or by hash. If neither is - # supplied, the most recent known block is returned. - block(number: Long, hash: Bytes32): Block - # Blocks returns all the blocks between two numbers, inclusive. If - # to is not supplied, it defaults to the most recent known block. - blocks(from: Long!, to: Long): [Block!]! - # Pending returns the current pending state. - pending: Pending! - # Transaction returns a transaction specified by its hash. - transaction(hash: Bytes32!): Transaction - # Logs returns log entries matching the provided filter. - logs(filter: FilterCriteria!): [Log!]! - # GasPrice returns the node's estimate of a gas price sufficient to - # ensure a transaction is mined in a timely fashion. - gasPrice: BigInt! - # ProtocolVersion returns the current wire protocol version number. - protocolVersion: Int! - # Syncing returns information on the current synchronisation state. - syncing: SyncState - } - - type Mutation { - # SendRawTransaction sends an RLP-encoded transaction to the network. - sendRawTransaction(data: Bytes!): Bytes32! - } -` diff --git a/vendor/github.com/ethereum/go-ethereum/internal/web3ext/web3ext.go b/vendor/github.com/ethereum/go-ethereum/internal/web3ext/web3ext.go deleted file mode 100644 index 31c0c57e..00000000 --- a/vendor/github.com/ethereum/go-ethereum/internal/web3ext/web3ext.go +++ /dev/null @@ -1,762 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// package web3ext contains geth specific web3.js extensions. -package web3ext - -var Modules = map[string]string{ - "accounting": AccountingJs, - "admin": AdminJs, - "chequebook": ChequebookJs, - "clique": CliqueJs, - "ethash": EthashJs, - "debug": DebugJs, - "eth": EthJs, - "miner": MinerJs, - "net": NetJs, - "personal": PersonalJs, - "rpc": RpcJs, - "shh": ShhJs, - "swarmfs": SwarmfsJs, - "txpool": TxpoolJs, -} - -const ChequebookJs = ` -web3._extend({ - property: 'chequebook', - methods: [ - new web3._extend.Method({ - name: 'deposit', - call: 'chequebook_deposit', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Property({ - name: 'balance', - getter: 'chequebook_balance', - outputFormatter: web3._extend.utils.toDecimal - }), - new web3._extend.Method({ - name: 'cash', - call: 'chequebook_cash', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'issue', - call: 'chequebook_issue', - params: 2, - inputFormatter: [null, null] - }), - ] -}); -` - -const CliqueJs = ` -web3._extend({ - property: 'clique', - methods: [ - new web3._extend.Method({ - name: 'getSnapshot', - call: 'clique_getSnapshot', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'getSnapshotAtHash', - call: 'clique_getSnapshotAtHash', - params: 1 - }), - new web3._extend.Method({ - name: 'getSigners', - call: 'clique_getSigners', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'getSignersAtHash', - call: 'clique_getSignersAtHash', - params: 1 - }), - new web3._extend.Method({ - name: 'propose', - call: 'clique_propose', - params: 2 - }), - new web3._extend.Method({ - name: 'discard', - call: 'clique_discard', - params: 1 - }), - ], - properties: [ - new web3._extend.Property({ - name: 'proposals', - getter: 'clique_proposals' - }), - ] -}); -` - -const EthashJs = ` -web3._extend({ - property: 'ethash', - methods: [ - new web3._extend.Method({ - name: 'getWork', - call: 'ethash_getWork', - params: 0 - }), - new web3._extend.Method({ - name: 'getHashrate', - call: 'ethash_getHashrate', - params: 0 - }), - new web3._extend.Method({ - name: 'submitWork', - call: 'ethash_submitWork', - params: 3, - }), - new web3._extend.Method({ - name: 'submitHashRate', - call: 'ethash_submitHashRate', - params: 2, - }), - ] -}); -` - -const AdminJs = ` -web3._extend({ - property: 'admin', - methods: [ - new web3._extend.Method({ - name: 'addPeer', - call: 'admin_addPeer', - params: 1 - }), - new web3._extend.Method({ - name: 'removePeer', - call: 'admin_removePeer', - params: 1 - }), - new web3._extend.Method({ - name: 'addTrustedPeer', - call: 'admin_addTrustedPeer', - params: 1 - }), - new web3._extend.Method({ - name: 'removeTrustedPeer', - call: 'admin_removeTrustedPeer', - params: 1 - }), - new web3._extend.Method({ - name: 'exportChain', - call: 'admin_exportChain', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'importChain', - call: 'admin_importChain', - params: 1 - }), - new web3._extend.Method({ - name: 'sleepBlocks', - call: 'admin_sleepBlocks', - params: 2 - }), - new web3._extend.Method({ - name: 'startRPC', - call: 'admin_startRPC', - params: 4, - inputFormatter: [null, null, null, null] - }), - new web3._extend.Method({ - name: 'stopRPC', - call: 'admin_stopRPC' - }), - new web3._extend.Method({ - name: 'startWS', - call: 'admin_startWS', - params: 4, - inputFormatter: [null, null, null, null] - }), - new web3._extend.Method({ - name: 'stopWS', - call: 'admin_stopWS' - }), - ], - properties: [ - new web3._extend.Property({ - name: 'nodeInfo', - getter: 'admin_nodeInfo' - }), - new web3._extend.Property({ - name: 'peers', - getter: 'admin_peers' - }), - new web3._extend.Property({ - name: 'datadir', - getter: 'admin_datadir' - }), - ] -}); -` - -const DebugJs = ` -web3._extend({ - property: 'debug', - methods: [ - new web3._extend.Method({ - name: 'printBlock', - call: 'debug_printBlock', - params: 1 - }), - new web3._extend.Method({ - name: 'getBlockRlp', - call: 'debug_getBlockRlp', - params: 1 - }), - new web3._extend.Method({ - name: 'testSignCliqueBlock', - call: 'debug_testSignCliqueBlock', - params: 2, - inputFormatters: [web3._extend.formatters.inputAddressFormatter, null], - }), - new web3._extend.Method({ - name: 'setHead', - call: 'debug_setHead', - params: 1 - }), - new web3._extend.Method({ - name: 'seedHash', - call: 'debug_seedHash', - params: 1 - }), - new web3._extend.Method({ - name: 'dumpBlock', - call: 'debug_dumpBlock', - params: 1 - }), - new web3._extend.Method({ - name: 'chaindbProperty', - call: 'debug_chaindbProperty', - params: 1, - outputFormatter: console.log - }), - new web3._extend.Method({ - name: 'chaindbCompact', - call: 'debug_chaindbCompact', - }), - new web3._extend.Method({ - name: 'verbosity', - call: 'debug_verbosity', - params: 1 - }), - new web3._extend.Method({ - name: 'vmodule', - call: 'debug_vmodule', - params: 1 - }), - new web3._extend.Method({ - name: 'backtraceAt', - call: 'debug_backtraceAt', - params: 1, - }), - new web3._extend.Method({ - name: 'stacks', - call: 'debug_stacks', - params: 0, - outputFormatter: console.log - }), - new web3._extend.Method({ - name: 'freeOSMemory', - call: 'debug_freeOSMemory', - params: 0, - }), - new web3._extend.Method({ - name: 'setGCPercent', - call: 'debug_setGCPercent', - params: 1, - }), - new web3._extend.Method({ - name: 'memStats', - call: 'debug_memStats', - params: 0, - }), - new web3._extend.Method({ - name: 'gcStats', - call: 'debug_gcStats', - params: 0, - }), - new web3._extend.Method({ - name: 'cpuProfile', - call: 'debug_cpuProfile', - params: 2 - }), - new web3._extend.Method({ - name: 'startCPUProfile', - call: 'debug_startCPUProfile', - params: 1 - }), - new web3._extend.Method({ - name: 'stopCPUProfile', - call: 'debug_stopCPUProfile', - params: 0 - }), - new web3._extend.Method({ - name: 'goTrace', - call: 'debug_goTrace', - params: 2 - }), - new web3._extend.Method({ - name: 'startGoTrace', - call: 'debug_startGoTrace', - params: 1 - }), - new web3._extend.Method({ - name: 'stopGoTrace', - call: 'debug_stopGoTrace', - params: 0 - }), - new web3._extend.Method({ - name: 'blockProfile', - call: 'debug_blockProfile', - params: 2 - }), - new web3._extend.Method({ - name: 'setBlockProfileRate', - call: 'debug_setBlockProfileRate', - params: 1 - }), - new web3._extend.Method({ - name: 'writeBlockProfile', - call: 'debug_writeBlockProfile', - params: 1 - }), - new web3._extend.Method({ - name: 'mutexProfile', - call: 'debug_mutexProfile', - params: 2 - }), - new web3._extend.Method({ - name: 'setMutexProfileFraction', - call: 'debug_setMutexProfileFraction', - params: 1 - }), - new web3._extend.Method({ - name: 'writeMutexProfile', - call: 'debug_writeMutexProfile', - params: 1 - }), - new web3._extend.Method({ - name: 'writeMemProfile', - call: 'debug_writeMemProfile', - params: 1 - }), - new web3._extend.Method({ - name: 'traceBlock', - call: 'debug_traceBlock', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'traceBlockFromFile', - call: 'debug_traceBlockFromFile', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'traceBadBlock', - call: 'debug_traceBadBlock', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'standardTraceBadBlockToFile', - call: 'debug_standardTraceBadBlockToFile', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'standardTraceBlockToFile', - call: 'debug_standardTraceBlockToFile', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'traceBlockByNumber', - call: 'debug_traceBlockByNumber', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'traceBlockByHash', - call: 'debug_traceBlockByHash', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'traceTransaction', - call: 'debug_traceTransaction', - params: 2, - inputFormatter: [null, null] - }), - new web3._extend.Method({ - name: 'preimage', - call: 'debug_preimage', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'getBadBlocks', - call: 'debug_getBadBlocks', - params: 0, - }), - new web3._extend.Method({ - name: 'storageRangeAt', - call: 'debug_storageRangeAt', - params: 5, - }), - new web3._extend.Method({ - name: 'getModifiedAccountsByNumber', - call: 'debug_getModifiedAccountsByNumber', - params: 2, - inputFormatter: [null, null], - }), - new web3._extend.Method({ - name: 'getModifiedAccountsByHash', - call: 'debug_getModifiedAccountsByHash', - params: 2, - inputFormatter:[null, null], - }), - ], - properties: [] -}); -` - -const EthJs = ` -web3._extend({ - property: 'eth', - methods: [ - new web3._extend.Method({ - name: 'chainId', - call: 'eth_chainId', - params: 0 - }), - new web3._extend.Method({ - name: 'sign', - call: 'eth_sign', - params: 2, - inputFormatter: [web3._extend.formatters.inputAddressFormatter, null] - }), - new web3._extend.Method({ - name: 'resend', - call: 'eth_resend', - params: 3, - inputFormatter: [web3._extend.formatters.inputTransactionFormatter, web3._extend.utils.fromDecimal, web3._extend.utils.fromDecimal] - }), - new web3._extend.Method({ - name: 'signTransaction', - call: 'eth_signTransaction', - params: 1, - inputFormatter: [web3._extend.formatters.inputTransactionFormatter] - }), - new web3._extend.Method({ - name: 'submitTransaction', - call: 'eth_submitTransaction', - params: 1, - inputFormatter: [web3._extend.formatters.inputTransactionFormatter] - }), - new web3._extend.Method({ - name: 'getRawTransaction', - call: 'eth_getRawTransactionByHash', - params: 1 - }), - new web3._extend.Method({ - name: 'getRawTransactionFromBlock', - call: function(args) { - return (web3._extend.utils.isString(args[0]) && args[0].indexOf('0x') === 0) ? 'eth_getRawTransactionByBlockHashAndIndex' : 'eth_getRawTransactionByBlockNumberAndIndex'; - }, - params: 2, - inputFormatter: [web3._extend.formatters.inputBlockNumberFormatter, web3._extend.utils.toHex] - }), - new web3._extend.Method({ - name: 'getProof', - call: 'eth_getProof', - params: 3, - inputFormatter: [web3._extend.formatters.inputAddressFormatter, null, web3._extend.formatters.inputBlockNumberFormatter] - }), - ], - properties: [ - new web3._extend.Property({ - name: 'pendingTransactions', - getter: 'eth_pendingTransactions', - outputFormatter: function(txs) { - var formatted = []; - for (var i = 0; i < txs.length; i++) { - formatted.push(web3._extend.formatters.outputTransactionFormatter(txs[i])); - formatted[i].blockHash = null; - } - return formatted; - } - }), - ] -}); -` - -const MinerJs = ` -web3._extend({ - property: 'miner', - methods: [ - new web3._extend.Method({ - name: 'start', - call: 'miner_start', - params: 1, - inputFormatter: [null] - }), - new web3._extend.Method({ - name: 'stop', - call: 'miner_stop' - }), - new web3._extend.Method({ - name: 'setEtherbase', - call: 'miner_setEtherbase', - params: 1, - inputFormatter: [web3._extend.formatters.inputAddressFormatter] - }), - new web3._extend.Method({ - name: 'setExtra', - call: 'miner_setExtra', - params: 1 - }), - new web3._extend.Method({ - name: 'setGasPrice', - call: 'miner_setGasPrice', - params: 1, - inputFormatter: [web3._extend.utils.fromDecimal] - }), - new web3._extend.Method({ - name: 'setRecommitInterval', - call: 'miner_setRecommitInterval', - params: 1, - }), - new web3._extend.Method({ - name: 'getHashrate', - call: 'miner_getHashrate' - }), - ], - properties: [] -}); -` - -const NetJs = ` -web3._extend({ - property: 'net', - methods: [], - properties: [ - new web3._extend.Property({ - name: 'version', - getter: 'net_version' - }), - ] -}); -` - -const PersonalJs = ` -web3._extend({ - property: 'personal', - methods: [ - new web3._extend.Method({ - name: 'importRawKey', - call: 'personal_importRawKey', - params: 2 - }), - new web3._extend.Method({ - name: 'sign', - call: 'personal_sign', - params: 3, - inputFormatter: [null, web3._extend.formatters.inputAddressFormatter, null] - }), - new web3._extend.Method({ - name: 'ecRecover', - call: 'personal_ecRecover', - params: 2 - }), - new web3._extend.Method({ - name: 'openWallet', - call: 'personal_openWallet', - params: 2 - }), - new web3._extend.Method({ - name: 'deriveAccount', - call: 'personal_deriveAccount', - params: 3 - }), - new web3._extend.Method({ - name: 'signTransaction', - call: 'personal_signTransaction', - params: 2, - inputFormatter: [web3._extend.formatters.inputTransactionFormatter, null] - }), - new web3._extend.Method({ - name: 'unpair', - call: 'personal_unpair', - params: 2 - }), - new web3._extend.Method({ - name: 'initializeWallet', - call: 'personal_initializeWallet', - params: 1 - }) - ], - properties: [ - new web3._extend.Property({ - name: 'listWallets', - getter: 'personal_listWallets' - }), - ] -}) -` - -const RpcJs = ` -web3._extend({ - property: 'rpc', - methods: [], - properties: [ - new web3._extend.Property({ - name: 'modules', - getter: 'rpc_modules' - }), - ] -}); -` - -const ShhJs = ` -web3._extend({ - property: 'shh', - methods: [ - ], - properties: - [ - new web3._extend.Property({ - name: 'version', - getter: 'shh_version', - outputFormatter: web3._extend.utils.toDecimal - }), - new web3._extend.Property({ - name: 'info', - getter: 'shh_info' - }), - ] -}); -` - -const SwarmfsJs = ` -web3._extend({ - property: 'swarmfs', - methods: - [ - new web3._extend.Method({ - name: 'mount', - call: 'swarmfs_mount', - params: 2 - }), - new web3._extend.Method({ - name: 'unmount', - call: 'swarmfs_unmount', - params: 1 - }), - new web3._extend.Method({ - name: 'listmounts', - call: 'swarmfs_listmounts', - params: 0 - }), - ] -}); -` - -const TxpoolJs = ` -web3._extend({ - property: 'txpool', - methods: [], - properties: - [ - new web3._extend.Property({ - name: 'content', - getter: 'txpool_content' - }), - new web3._extend.Property({ - name: 'inspect', - getter: 'txpool_inspect' - }), - new web3._extend.Property({ - name: 'status', - getter: 'txpool_status', - outputFormatter: function(status) { - status.pending = web3._extend.utils.toDecimal(status.pending); - status.queued = web3._extend.utils.toDecimal(status.queued); - return status; - } - }), - ] -}); -` - -const AccountingJs = ` -web3._extend({ - property: 'accounting', - methods: [ - new web3._extend.Property({ - name: 'balance', - getter: 'account_balance' - }), - new web3._extend.Property({ - name: 'balanceCredit', - getter: 'account_balanceCredit' - }), - new web3._extend.Property({ - name: 'balanceDebit', - getter: 'account_balanceDebit' - }), - new web3._extend.Property({ - name: 'bytesCredit', - getter: 'account_bytesCredit' - }), - new web3._extend.Property({ - name: 'bytesDebit', - getter: 'account_bytesDebit' - }), - new web3._extend.Property({ - name: 'msgCredit', - getter: 'account_msgCredit' - }), - new web3._extend.Property({ - name: 'msgDebit', - getter: 'account_msgDebit' - }), - new web3._extend.Property({ - name: 'peerDrops', - getter: 'account_peerDrops' - }), - new web3._extend.Property({ - name: 'selfDrops', - getter: 'account_selfDrops' - }), - ] -}); -` diff --git a/vendor/github.com/ethereum/go-ethereum/les/api_backend.go b/vendor/github.com/ethereum/go-ethereum/les/api_backend.go deleted file mode 100644 index 4fe35213..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/api_backend.go +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "context" - "math/big" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/bloombits" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/eth/gasprice" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rpc" -) - -type LesApiBackend struct { - extRPCEnabled bool - eth *LightEthereum - gpo *gasprice.Oracle -} - -func (b *LesApiBackend) ChainConfig() *params.ChainConfig { - return b.eth.chainConfig -} - -func (b *LesApiBackend) CurrentBlock() *types.Block { - return types.NewBlockWithHeader(b.eth.BlockChain().CurrentHeader()) -} - -func (b *LesApiBackend) SetHead(number uint64) { - b.eth.protocolManager.downloader.Cancel() - b.eth.blockchain.SetHead(number) -} - -func (b *LesApiBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error) { - if blockNr == rpc.LatestBlockNumber || blockNr == rpc.PendingBlockNumber { - return b.eth.blockchain.CurrentHeader(), nil - } - return b.eth.blockchain.GetHeaderByNumberOdr(ctx, uint64(blockNr)) -} - -func (b *LesApiBackend) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error) { - return b.eth.blockchain.GetHeaderByHash(hash), nil -} - -func (b *LesApiBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Block, error) { - header, err := b.HeaderByNumber(ctx, blockNr) - if header == nil || err != nil { - return nil, err - } - return b.GetBlock(ctx, header.Hash()) -} - -func (b *LesApiBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.StateDB, *types.Header, error) { - header, err := b.HeaderByNumber(ctx, blockNr) - if header == nil || err != nil { - return nil, nil, err - } - return light.NewState(ctx, header, b.eth.odr), header, nil -} - -func (b *LesApiBackend) GetBlock(ctx context.Context, blockHash common.Hash) (*types.Block, error) { - return b.eth.blockchain.GetBlockByHash(ctx, blockHash) -} - -func (b *LesApiBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error) { - if number := rawdb.ReadHeaderNumber(b.eth.chainDb, hash); number != nil { - return light.GetBlockReceipts(ctx, b.eth.odr, hash, *number) - } - return nil, nil -} - -func (b *LesApiBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*types.Log, error) { - if number := rawdb.ReadHeaderNumber(b.eth.chainDb, hash); number != nil { - return light.GetBlockLogs(ctx, b.eth.odr, hash, *number) - } - return nil, nil -} - -func (b *LesApiBackend) GetTd(hash common.Hash) *big.Int { - return b.eth.blockchain.GetTdByHash(hash) -} - -func (b *LesApiBackend) GetEVM(ctx context.Context, msg core.Message, state *state.StateDB, header *types.Header) (*vm.EVM, func() error, error) { - state.SetBalance(msg.From(), math.MaxBig256) - context := core.NewEVMContext(msg, header, b.eth.blockchain, nil) - return vm.NewEVM(context, state, b.eth.chainConfig, vm.Config{}), state.Error, nil -} - -func (b *LesApiBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error { - return b.eth.txPool.Add(ctx, signedTx) -} - -func (b *LesApiBackend) RemoveTx(txHash common.Hash) { - b.eth.txPool.RemoveTx(txHash) -} - -func (b *LesApiBackend) GetPoolTransactions() (types.Transactions, error) { - return b.eth.txPool.GetTransactions() -} - -func (b *LesApiBackend) GetPoolTransaction(txHash common.Hash) *types.Transaction { - return b.eth.txPool.GetTransaction(txHash) -} - -func (b *LesApiBackend) GetPoolNonce(ctx context.Context, addr common.Address) (uint64, error) { - return b.eth.txPool.GetNonce(ctx, addr) -} - -func (b *LesApiBackend) Stats() (pending int, queued int) { - return b.eth.txPool.Stats(), 0 -} - -func (b *LesApiBackend) TxPoolContent() (map[common.Address]types.Transactions, map[common.Address]types.Transactions) { - return b.eth.txPool.Content() -} - -func (b *LesApiBackend) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription { - return b.eth.txPool.SubscribeNewTxsEvent(ch) -} - -func (b *LesApiBackend) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription { - return b.eth.blockchain.SubscribeChainEvent(ch) -} - -func (b *LesApiBackend) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription { - return b.eth.blockchain.SubscribeChainHeadEvent(ch) -} - -func (b *LesApiBackend) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription { - return b.eth.blockchain.SubscribeChainSideEvent(ch) -} - -func (b *LesApiBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription { - return b.eth.blockchain.SubscribeLogsEvent(ch) -} - -func (b *LesApiBackend) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription { - return b.eth.blockchain.SubscribeRemovedLogsEvent(ch) -} - -func (b *LesApiBackend) Downloader() *downloader.Downloader { - return b.eth.Downloader() -} - -func (b *LesApiBackend) ProtocolVersion() int { - return b.eth.LesVersion() + 10000 -} - -func (b *LesApiBackend) SuggestPrice(ctx context.Context) (*big.Int, error) { - return b.gpo.SuggestPrice(ctx) -} - -func (b *LesApiBackend) ChainDb() ethdb.Database { - return b.eth.chainDb -} - -func (b *LesApiBackend) EventMux() *event.TypeMux { - return b.eth.eventMux -} - -func (b *LesApiBackend) AccountManager() *accounts.Manager { - return b.eth.accountManager -} - -func (b *LesApiBackend) ExtRPCEnabled() bool { - return b.extRPCEnabled -} - -func (b *LesApiBackend) RPCGasCap() *big.Int { - return b.eth.config.RPCGasCap -} - -func (b *LesApiBackend) BloomStatus() (uint64, uint64) { - if b.eth.bloomIndexer == nil { - return 0, 0 - } - sections, _, _ := b.eth.bloomIndexer.Sections() - return params.BloomBitsBlocksClient, sections -} - -func (b *LesApiBackend) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession) { - for i := 0; i < bloomFilterThreads; i++ { - go session.Multiplex(bloomRetrievalBatch, bloomRetrievalWait, b.eth.bloomRequests) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/backend.go b/vendor/github.com/ethereum/go-ethereum/les/backend.go deleted file mode 100644 index a50fe0ce..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/backend.go +++ /dev/null @@ -1,288 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package les implements the Light Ethereum Subprotocol. -package les - -import ( - "fmt" - "sync" - "time" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/common/mclock" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/bloombits" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/eth/filters" - "github.com/ethereum/go-ethereum/eth/gasprice" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/internal/ethapi" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/node" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/discv5" - "github.com/ethereum/go-ethereum/params" - rpc "github.com/ethereum/go-ethereum/rpc" -) - -type LightEthereum struct { - lesCommons - - odr *LesOdr - relay *LesTxRelay - chainConfig *params.ChainConfig - // Channel for shutting down the service - shutdownChan chan bool - - // Handlers - peers *peerSet - txPool *light.TxPool - blockchain *light.LightChain - serverPool *serverPool - reqDist *requestDistributor - retriever *retrieveManager - - bloomRequests chan chan *bloombits.Retrieval // Channel receiving bloom data retrieval requests - bloomIndexer *core.ChainIndexer - - ApiBackend *LesApiBackend - - eventMux *event.TypeMux - engine consensus.Engine - accountManager *accounts.Manager - - networkId uint64 - netRPCService *ethapi.PublicNetAPI - - wg sync.WaitGroup -} - -func New(ctx *node.ServiceContext, config *eth.Config) (*LightEthereum, error) { - chainDb, err := ctx.OpenDatabase("lightchaindata", config.DatabaseCache, config.DatabaseHandles, "eth/db/chaindata/") - if err != nil { - return nil, err - } - chainConfig, genesisHash, genesisErr := core.SetupGenesisBlockWithOverride(chainDb, config.Genesis, config.ConstantinopleOverride) - if _, isCompat := genesisErr.(*params.ConfigCompatError); genesisErr != nil && !isCompat { - return nil, genesisErr - } - log.Info("Initialised chain configuration", "config", chainConfig) - - peers := newPeerSet() - quitSync := make(chan struct{}) - - leth := &LightEthereum{ - lesCommons: lesCommons{ - chainDb: chainDb, - config: config, - iConfig: light.DefaultClientIndexerConfig, - }, - chainConfig: chainConfig, - eventMux: ctx.EventMux, - peers: peers, - reqDist: newRequestDistributor(peers, quitSync, &mclock.System{}), - accountManager: ctx.AccountManager, - engine: eth.CreateConsensusEngine(ctx, chainConfig, &config.Ethash, nil, false, chainDb), - shutdownChan: make(chan bool), - networkId: config.NetworkId, - bloomRequests: make(chan chan *bloombits.Retrieval), - bloomIndexer: eth.NewBloomIndexer(chainDb, params.BloomBitsBlocksClient, params.HelperTrieConfirmations), - } - - var trustedNodes []string - if leth.config.ULC != nil { - trustedNodes = leth.config.ULC.TrustedServers - } - leth.relay = NewLesTxRelay(peers, leth.reqDist) - leth.serverPool = newServerPool(chainDb, quitSync, &leth.wg, trustedNodes) - leth.retriever = newRetrieveManager(peers, leth.reqDist, leth.serverPool) - - leth.odr = NewLesOdr(chainDb, light.DefaultClientIndexerConfig, leth.retriever) - leth.chtIndexer = light.NewChtIndexer(chainDb, leth.odr, params.CHTFrequency, params.HelperTrieConfirmations) - leth.bloomTrieIndexer = light.NewBloomTrieIndexer(chainDb, leth.odr, params.BloomBitsBlocksClient, params.BloomTrieFrequency) - leth.odr.SetIndexers(leth.chtIndexer, leth.bloomTrieIndexer, leth.bloomIndexer) - - // Note: NewLightChain adds the trusted checkpoint so it needs an ODR with - // indexers already set but not started yet - if leth.blockchain, err = light.NewLightChain(leth.odr, leth.chainConfig, leth.engine); err != nil { - return nil, err - } - // Note: AddChildIndexer starts the update process for the child - leth.bloomIndexer.AddChildIndexer(leth.bloomTrieIndexer) - leth.chtIndexer.Start(leth.blockchain) - leth.bloomIndexer.Start(leth.blockchain) - - // Rewind the chain in case of an incompatible config upgrade. - if compat, ok := genesisErr.(*params.ConfigCompatError); ok { - log.Warn("Rewinding chain to upgrade configuration", "err", compat) - leth.blockchain.SetHead(compat.RewindTo) - rawdb.WriteChainConfig(chainDb, genesisHash, chainConfig) - } - - leth.txPool = light.NewTxPool(leth.chainConfig, leth.blockchain, leth.relay) - - if leth.protocolManager, err = NewProtocolManager( - leth.chainConfig, - light.DefaultClientIndexerConfig, - true, - config.NetworkId, - leth.eventMux, - leth.engine, - leth.peers, - leth.blockchain, - nil, - chainDb, - leth.odr, - leth.relay, - leth.serverPool, - quitSync, - &leth.wg, - config.ULC); err != nil { - return nil, err - } - - if leth.protocolManager.isULCEnabled() { - log.Warn("Ultra light client is enabled", "trustedNodes", len(leth.protocolManager.ulc.trustedKeys), "minTrustedFraction", leth.protocolManager.ulc.minTrustedFraction) - leth.blockchain.DisableCheckFreq() - } - leth.ApiBackend = &LesApiBackend{ctx.ExtRPCEnabled(), leth, nil} - - gpoParams := config.GPO - if gpoParams.Default == nil { - gpoParams.Default = config.MinerGasPrice - } - leth.ApiBackend.gpo = gasprice.NewOracle(leth.ApiBackend, gpoParams) - return leth, nil -} - -func lesTopic(genesisHash common.Hash, protocolVersion uint) discv5.Topic { - var name string - switch protocolVersion { - case lpv2: - name = "LES2" - default: - panic(nil) - } - return discv5.Topic(name + "@" + common.Bytes2Hex(genesisHash.Bytes()[0:8])) -} - -type LightDummyAPI struct{} - -// Etherbase is the address that mining rewards will be send to -func (s *LightDummyAPI) Etherbase() (common.Address, error) { - return common.Address{}, fmt.Errorf("mining is not supported in light mode") -} - -// Coinbase is the address that mining rewards will be send to (alias for Etherbase) -func (s *LightDummyAPI) Coinbase() (common.Address, error) { - return common.Address{}, fmt.Errorf("mining is not supported in light mode") -} - -// Hashrate returns the POW hashrate -func (s *LightDummyAPI) Hashrate() hexutil.Uint { - return 0 -} - -// Mining returns an indication if this node is currently mining. -func (s *LightDummyAPI) Mining() bool { - return false -} - -// APIs returns the collection of RPC services the ethereum package offers. -// NOTE, some of these services probably need to be moved to somewhere else. -func (s *LightEthereum) APIs() []rpc.API { - return append(ethapi.GetAPIs(s.ApiBackend), []rpc.API{ - { - Namespace: "eth", - Version: "1.0", - Service: &LightDummyAPI{}, - Public: true, - }, { - Namespace: "eth", - Version: "1.0", - Service: downloader.NewPublicDownloaderAPI(s.protocolManager.downloader, s.eventMux), - Public: true, - }, { - Namespace: "eth", - Version: "1.0", - Service: filters.NewPublicFilterAPI(s.ApiBackend, true), - Public: true, - }, { - Namespace: "net", - Version: "1.0", - Service: s.netRPCService, - Public: true, - }, - }...) -} - -func (s *LightEthereum) ResetWithGenesisBlock(gb *types.Block) { - s.blockchain.ResetWithGenesisBlock(gb) -} - -func (s *LightEthereum) BlockChain() *light.LightChain { return s.blockchain } -func (s *LightEthereum) TxPool() *light.TxPool { return s.txPool } -func (s *LightEthereum) Engine() consensus.Engine { return s.engine } -func (s *LightEthereum) LesVersion() int { return int(ClientProtocolVersions[0]) } -func (s *LightEthereum) Downloader() *downloader.Downloader { return s.protocolManager.downloader } -func (s *LightEthereum) EventMux() *event.TypeMux { return s.eventMux } - -// Protocols implements node.Service, returning all the currently configured -// network protocols to start. -func (s *LightEthereum) Protocols() []p2p.Protocol { - return s.makeProtocols(ClientProtocolVersions) -} - -// Start implements node.Service, starting all internal goroutines needed by the -// Ethereum protocol implementation. -func (s *LightEthereum) Start(srvr *p2p.Server) error { - log.Warn("Light client mode is an experimental feature") - s.startBloomHandlers(params.BloomBitsBlocksClient) - s.netRPCService = ethapi.NewPublicNetAPI(srvr, s.networkId) - // clients are searching for the first advertised protocol in the list - protocolVersion := AdvertiseProtocolVersions[0] - s.serverPool.start(srvr, lesTopic(s.blockchain.Genesis().Hash(), protocolVersion)) - s.protocolManager.Start(s.config.LightPeers) - return nil -} - -// Stop implements node.Service, terminating all internal goroutines used by the -// Ethereum protocol. -func (s *LightEthereum) Stop() error { - s.odr.Stop() - s.bloomIndexer.Close() - s.chtIndexer.Close() - s.blockchain.Stop() - s.protocolManager.Stop() - s.txPool.Stop() - s.engine.Close() - - s.eventMux.Stop() - - time.Sleep(time.Millisecond * 200) - s.chainDb.Close() - close(s.shutdownChan) - - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/benchmark.go b/vendor/github.com/ethereum/go-ethereum/les/benchmark.go deleted file mode 100644 index 925d1d89..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/benchmark.go +++ /dev/null @@ -1,352 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "encoding/binary" - "fmt" - "math/big" - "math/rand" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/mclock" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/les/flowcontrol" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" -) - -// requestBenchmark is an interface for different randomized request generators -type requestBenchmark interface { - // init initializes the generator for generating the given number of randomized requests - init(pm *ProtocolManager, count int) error - // request initiates sending a single request to the given peer - request(peer *peer, index int) error -} - -// benchmarkBlockHeaders implements requestBenchmark -type benchmarkBlockHeaders struct { - amount, skip int - reverse, byHash bool - offset, randMax int64 - hashes []common.Hash -} - -func (b *benchmarkBlockHeaders) init(pm *ProtocolManager, count int) error { - d := int64(b.amount-1) * int64(b.skip+1) - b.offset = 0 - b.randMax = pm.blockchain.CurrentHeader().Number.Int64() + 1 - d - if b.randMax < 0 { - return fmt.Errorf("chain is too short") - } - if b.reverse { - b.offset = d - } - if b.byHash { - b.hashes = make([]common.Hash, count) - for i := range b.hashes { - b.hashes[i] = rawdb.ReadCanonicalHash(pm.chainDb, uint64(b.offset+rand.Int63n(b.randMax))) - } - } - return nil -} - -func (b *benchmarkBlockHeaders) request(peer *peer, index int) error { - if b.byHash { - return peer.RequestHeadersByHash(0, 0, b.hashes[index], b.amount, b.skip, b.reverse) - } else { - return peer.RequestHeadersByNumber(0, 0, uint64(b.offset+rand.Int63n(b.randMax)), b.amount, b.skip, b.reverse) - } -} - -// benchmarkBodiesOrReceipts implements requestBenchmark -type benchmarkBodiesOrReceipts struct { - receipts bool - hashes []common.Hash -} - -func (b *benchmarkBodiesOrReceipts) init(pm *ProtocolManager, count int) error { - randMax := pm.blockchain.CurrentHeader().Number.Int64() + 1 - b.hashes = make([]common.Hash, count) - for i := range b.hashes { - b.hashes[i] = rawdb.ReadCanonicalHash(pm.chainDb, uint64(rand.Int63n(randMax))) - } - return nil -} - -func (b *benchmarkBodiesOrReceipts) request(peer *peer, index int) error { - if b.receipts { - return peer.RequestReceipts(0, 0, []common.Hash{b.hashes[index]}) - } else { - return peer.RequestBodies(0, 0, []common.Hash{b.hashes[index]}) - } -} - -// benchmarkProofsOrCode implements requestBenchmark -type benchmarkProofsOrCode struct { - code bool - headHash common.Hash -} - -func (b *benchmarkProofsOrCode) init(pm *ProtocolManager, count int) error { - b.headHash = pm.blockchain.CurrentHeader().Hash() - return nil -} - -func (b *benchmarkProofsOrCode) request(peer *peer, index int) error { - key := make([]byte, 32) - rand.Read(key) - if b.code { - return peer.RequestCode(0, 0, []CodeReq{{BHash: b.headHash, AccKey: key}}) - } else { - return peer.RequestProofs(0, 0, []ProofReq{{BHash: b.headHash, Key: key}}) - } -} - -// benchmarkHelperTrie implements requestBenchmark -type benchmarkHelperTrie struct { - bloom bool - reqCount int - sectionCount, headNum uint64 -} - -func (b *benchmarkHelperTrie) init(pm *ProtocolManager, count int) error { - if b.bloom { - b.sectionCount, b.headNum, _ = pm.server.bloomTrieIndexer.Sections() - } else { - b.sectionCount, _, _ = pm.server.chtIndexer.Sections() - b.headNum = b.sectionCount*params.CHTFrequency - 1 - } - if b.sectionCount == 0 { - return fmt.Errorf("no processed sections available") - } - return nil -} - -func (b *benchmarkHelperTrie) request(peer *peer, index int) error { - reqs := make([]HelperTrieReq, b.reqCount) - - if b.bloom { - bitIdx := uint16(rand.Intn(2048)) - for i := range reqs { - key := make([]byte, 10) - binary.BigEndian.PutUint16(key[:2], bitIdx) - binary.BigEndian.PutUint64(key[2:], uint64(rand.Int63n(int64(b.sectionCount)))) - reqs[i] = HelperTrieReq{Type: htBloomBits, TrieIdx: b.sectionCount - 1, Key: key} - } - } else { - for i := range reqs { - key := make([]byte, 8) - binary.BigEndian.PutUint64(key[:], uint64(rand.Int63n(int64(b.headNum)))) - reqs[i] = HelperTrieReq{Type: htCanonical, TrieIdx: b.sectionCount - 1, Key: key, AuxReq: auxHeader} - } - } - - return peer.RequestHelperTrieProofs(0, 0, reqs) -} - -// benchmarkTxSend implements requestBenchmark -type benchmarkTxSend struct { - txs types.Transactions -} - -func (b *benchmarkTxSend) init(pm *ProtocolManager, count int) error { - key, _ := crypto.GenerateKey() - addr := crypto.PubkeyToAddress(key.PublicKey) - signer := types.NewEIP155Signer(big.NewInt(18)) - b.txs = make(types.Transactions, count) - - for i := range b.txs { - data := make([]byte, txSizeCostLimit) - rand.Read(data) - tx, err := types.SignTx(types.NewTransaction(0, addr, new(big.Int), 0, new(big.Int), data), signer, key) - if err != nil { - panic(err) - } - b.txs[i] = tx - } - return nil -} - -func (b *benchmarkTxSend) request(peer *peer, index int) error { - enc, _ := rlp.EncodeToBytes(types.Transactions{b.txs[index]}) - return peer.SendTxs(0, 0, enc) -} - -// benchmarkTxStatus implements requestBenchmark -type benchmarkTxStatus struct{} - -func (b *benchmarkTxStatus) init(pm *ProtocolManager, count int) error { - return nil -} - -func (b *benchmarkTxStatus) request(peer *peer, index int) error { - var hash common.Hash - rand.Read(hash[:]) - return peer.RequestTxStatus(0, 0, []common.Hash{hash}) -} - -// benchmarkSetup stores measurement data for a single benchmark type -type benchmarkSetup struct { - req requestBenchmark - totalCount int - totalTime, avgTime time.Duration - maxInSize, maxOutSize uint32 - err error -} - -// runBenchmark runs a benchmark cycle for all benchmark types in the specified -// number of passes -func (pm *ProtocolManager) runBenchmark(benchmarks []requestBenchmark, passCount int, targetTime time.Duration) []*benchmarkSetup { - setup := make([]*benchmarkSetup, len(benchmarks)) - for i, b := range benchmarks { - setup[i] = &benchmarkSetup{req: b} - } - for i := 0; i < passCount; i++ { - log.Info("Running benchmark", "pass", i+1, "total", passCount) - todo := make([]*benchmarkSetup, len(benchmarks)) - copy(todo, setup) - for len(todo) > 0 { - // select a random element - index := rand.Intn(len(todo)) - next := todo[index] - todo[index] = todo[len(todo)-1] - todo = todo[:len(todo)-1] - - if next.err == nil { - // calculate request count - count := 50 - if next.totalTime > 0 { - count = int(uint64(next.totalCount) * uint64(targetTime) / uint64(next.totalTime)) - } - if err := pm.measure(next, count); err != nil { - next.err = err - } - } - } - } - log.Info("Benchmark completed") - - for _, s := range setup { - if s.err == nil { - s.avgTime = s.totalTime / time.Duration(s.totalCount) - } - } - return setup -} - -// meteredPipe implements p2p.MsgReadWriter and remembers the largest single -// message size sent through the pipe -type meteredPipe struct { - rw p2p.MsgReadWriter - maxSize uint32 -} - -func (m *meteredPipe) ReadMsg() (p2p.Msg, error) { - return m.rw.ReadMsg() -} - -func (m *meteredPipe) WriteMsg(msg p2p.Msg) error { - if msg.Size > m.maxSize { - m.maxSize = msg.Size - } - return m.rw.WriteMsg(msg) -} - -// measure runs a benchmark for a single type in a single pass, with the given -// number of requests -func (pm *ProtocolManager) measure(setup *benchmarkSetup, count int) error { - clientPipe, serverPipe := p2p.MsgPipe() - clientMeteredPipe := &meteredPipe{rw: clientPipe} - serverMeteredPipe := &meteredPipe{rw: serverPipe} - var id enode.ID - rand.Read(id[:]) - clientPeer := pm.newPeer(lpv2, NetworkId, p2p.NewPeer(id, "client", nil), clientMeteredPipe) - serverPeer := pm.newPeer(lpv2, NetworkId, p2p.NewPeer(id, "server", nil), serverMeteredPipe) - serverPeer.sendQueue = newExecQueue(count) - serverPeer.announceType = announceTypeNone - serverPeer.fcCosts = make(requestCostTable) - c := &requestCosts{} - for code := range requests { - serverPeer.fcCosts[code] = c - } - serverPeer.fcParams = flowcontrol.ServerParams{BufLimit: 1, MinRecharge: 1} - serverPeer.fcClient = flowcontrol.NewClientNode(pm.server.fcManager, serverPeer.fcParams) - defer serverPeer.fcClient.Disconnect() - - if err := setup.req.init(pm, count); err != nil { - return err - } - - errCh := make(chan error, 10) - start := mclock.Now() - - go func() { - for i := 0; i < count; i++ { - if err := setup.req.request(clientPeer, i); err != nil { - errCh <- err - return - } - } - }() - go func() { - for i := 0; i < count; i++ { - if err := pm.handleMsg(serverPeer); err != nil { - errCh <- err - return - } - } - }() - go func() { - for i := 0; i < count; i++ { - msg, err := clientPipe.ReadMsg() - if err != nil { - errCh <- err - return - } - var i interface{} - msg.Decode(&i) - } - // at this point we can be sure that the other two - // goroutines finished successfully too - close(errCh) - }() - select { - case err := <-errCh: - if err != nil { - return err - } - case <-pm.quitSync: - clientPipe.Close() - serverPipe.Close() - return fmt.Errorf("Benchmark cancelled") - } - - setup.totalTime += time.Duration(mclock.Now() - start) - setup.totalCount += count - setup.maxInSize = clientMeteredPipe.maxSize - setup.maxOutSize = serverMeteredPipe.maxSize - clientPipe.Close() - serverPipe.Close() - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/commons.go b/vendor/github.com/ethereum/go-ethereum/les/commons.go deleted file mode 100644 index 32fd6544..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/commons.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "fmt" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/params" -) - -// lesCommons contains fields needed by both server and client. -type lesCommons struct { - config *eth.Config - iConfig *light.IndexerConfig - chainDb ethdb.Database - protocolManager *ProtocolManager - chtIndexer, bloomTrieIndexer *core.ChainIndexer -} - -// NodeInfo represents a short summary of the Ethereum sub-protocol metadata -// known about the host peer. -type NodeInfo struct { - Network uint64 `json:"network"` // Ethereum network ID (1=Frontier, 2=Morden, Ropsten=3, Rinkeby=4) - Difficulty *big.Int `json:"difficulty"` // Total difficulty of the host's blockchain - Genesis common.Hash `json:"genesis"` // SHA3 hash of the host's genesis block - Config *params.ChainConfig `json:"config"` // Chain configuration for the fork rules - Head common.Hash `json:"head"` // SHA3 hash of the host's best owned block - CHT params.TrustedCheckpoint `json:"cht"` // Trused CHT checkpoint for fast catchup -} - -// makeProtocols creates protocol descriptors for the given LES versions. -func (c *lesCommons) makeProtocols(versions []uint) []p2p.Protocol { - protos := make([]p2p.Protocol, len(versions)) - for i, version := range versions { - version := version - protos[i] = p2p.Protocol{ - Name: "les", - Version: version, - Length: ProtocolLengths[version], - NodeInfo: c.nodeInfo, - Run: func(p *p2p.Peer, rw p2p.MsgReadWriter) error { - return c.protocolManager.runPeer(version, p, rw) - }, - PeerInfo: func(id enode.ID) interface{} { - if p := c.protocolManager.peers.Peer(fmt.Sprintf("%x", id[:8])); p != nil { - return p.Info() - } - return nil - }, - } - } - return protos -} - -// nodeInfo retrieves some protocol metadata about the running host node. -func (c *lesCommons) nodeInfo() interface{} { - var cht params.TrustedCheckpoint - sections, _, _ := c.chtIndexer.Sections() - sections2, _, _ := c.bloomTrieIndexer.Sections() - - if sections2 < sections { - sections = sections2 - } - if sections > 0 { - sectionIndex := sections - 1 - sectionHead := c.bloomTrieIndexer.SectionHead(sectionIndex) - cht = params.TrustedCheckpoint{ - SectionIndex: sectionIndex, - SectionHead: sectionHead, - CHTRoot: light.GetChtRoot(c.chainDb, sectionIndex, sectionHead), - BloomRoot: light.GetBloomTrieRoot(c.chainDb, sectionIndex, sectionHead), - } - } - - chain := c.protocolManager.blockchain - head := chain.CurrentHeader() - hash := head.Hash() - return &NodeInfo{ - Network: c.config.NetworkId, - Difficulty: chain.GetTd(hash, head.Number.Uint64()), - Genesis: chain.Genesis().Hash(), - Config: chain.Config(), - Head: chain.CurrentHeader().Hash(), - CHT: cht, - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/costtracker.go b/vendor/github.com/ethereum/go-ethereum/les/costtracker.go deleted file mode 100644 index 014b888c..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/costtracker.go +++ /dev/null @@ -1,379 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more detailct. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "encoding/binary" - "math" - "sync" - "sync/atomic" - "time" - - "github.com/ethereum/go-ethereum/common/mclock" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/les/flowcontrol" - "github.com/ethereum/go-ethereum/log" -) - -const makeCostStats = false // make request cost statistics during operation - -var ( - // average request cost estimates based on serving time - reqAvgTimeCost = requestCostTable{ - GetBlockHeadersMsg: {150000, 30000}, - GetBlockBodiesMsg: {0, 700000}, - GetReceiptsMsg: {0, 1000000}, - GetCodeMsg: {0, 450000}, - GetProofsV2Msg: {0, 600000}, - GetHelperTrieProofsMsg: {0, 1000000}, - SendTxV2Msg: {0, 450000}, - GetTxStatusMsg: {0, 250000}, - } - // maximum incoming message size estimates - reqMaxInSize = requestCostTable{ - GetBlockHeadersMsg: {40, 0}, - GetBlockBodiesMsg: {0, 40}, - GetReceiptsMsg: {0, 40}, - GetCodeMsg: {0, 80}, - GetProofsV2Msg: {0, 80}, - GetHelperTrieProofsMsg: {0, 20}, - SendTxV2Msg: {0, 66000}, - GetTxStatusMsg: {0, 50}, - } - // maximum outgoing message size estimates - reqMaxOutSize = requestCostTable{ - GetBlockHeadersMsg: {0, 556}, - GetBlockBodiesMsg: {0, 100000}, - GetReceiptsMsg: {0, 200000}, - GetCodeMsg: {0, 50000}, - GetProofsV2Msg: {0, 4000}, - GetHelperTrieProofsMsg: {0, 4000}, - SendTxV2Msg: {0, 100}, - GetTxStatusMsg: {0, 100}, - } - minBufLimit = uint64(50000000 * maxCostFactor) // minimum buffer limit allowed for a client - minCapacity = (minBufLimit-1)/bufLimitRatio + 1 // minimum capacity allowed for a client -) - -const ( - maxCostFactor = 2 // ratio of maximum and average cost estimates - gfInitWeight = time.Second * 10 - gfMaxWeight = time.Hour - gfUsageThreshold = 0.5 - gfUsageTC = time.Second - gfDbKey = "_globalCostFactor" -) - -// costTracker is responsible for calculating costs and cost estimates on the -// server side. It continuously updates the global cost factor which is defined -// as the number of cost units per nanosecond of serving time in a single thread. -// It is based on statistics collected during serving requests in high-load periods -// and practically acts as a one-dimension request price scaling factor over the -// pre-defined cost estimate table. Instead of scaling the cost values, the real -// value of cost units is changed by applying the factor to the serving times. This -// is more convenient because the changes in the cost factor can be applied immediately -// without always notifying the clients about the changed cost tables. -type costTracker struct { - db ethdb.Database - stopCh chan chan struct{} - - inSizeFactor, outSizeFactor float64 - gf, utilTarget float64 - - gfUpdateCh chan gfUpdate - gfLock sync.RWMutex - totalRechargeCh chan uint64 - - stats map[uint64][]uint64 -} - -// newCostTracker creates a cost tracker and loads the cost factor statistics from the database -func newCostTracker(db ethdb.Database, config *eth.Config) *costTracker { - utilTarget := float64(config.LightServ) * flowcontrol.FixedPointMultiplier / 100 - ct := &costTracker{ - db: db, - stopCh: make(chan chan struct{}), - utilTarget: utilTarget, - } - if config.LightBandwidthIn > 0 { - ct.inSizeFactor = utilTarget / float64(config.LightBandwidthIn) - } - if config.LightBandwidthOut > 0 { - ct.outSizeFactor = utilTarget / float64(config.LightBandwidthOut) - } - if makeCostStats { - ct.stats = make(map[uint64][]uint64) - for code := range reqAvgTimeCost { - ct.stats[code] = make([]uint64, 10) - } - } - ct.gfLoop() - return ct -} - -// stop stops the cost tracker and saves the cost factor statistics to the database -func (ct *costTracker) stop() { - stopCh := make(chan struct{}) - ct.stopCh <- stopCh - <-stopCh - if makeCostStats { - ct.printStats() - } -} - -// makeCostList returns upper cost estimates based on the hardcoded cost estimate -// tables and the optionally specified incoming/outgoing bandwidth limits -func (ct *costTracker) makeCostList() RequestCostList { - maxCost := func(avgTime, inSize, outSize uint64) uint64 { - globalFactor := ct.globalFactor() - - cost := avgTime * maxCostFactor - inSizeCost := uint64(float64(inSize) * ct.inSizeFactor * globalFactor * maxCostFactor) - if inSizeCost > cost { - cost = inSizeCost - } - outSizeCost := uint64(float64(outSize) * ct.outSizeFactor * globalFactor * maxCostFactor) - if outSizeCost > cost { - cost = outSizeCost - } - return cost - } - var list RequestCostList - for code, data := range reqAvgTimeCost { - list = append(list, requestCostListItem{ - MsgCode: code, - BaseCost: maxCost(data.baseCost, reqMaxInSize[code].baseCost, reqMaxOutSize[code].baseCost), - ReqCost: maxCost(data.reqCost, reqMaxInSize[code].reqCost, reqMaxOutSize[code].reqCost), - }) - } - return list -} - -type gfUpdate struct { - avgTime, servingTime float64 -} - -// gfLoop starts an event loop which updates the global cost factor which is -// calculated as a weighted average of the average estimate / serving time ratio. -// The applied weight equals the serving time if gfUsage is over a threshold, -// zero otherwise. gfUsage is the recent average serving time per time unit in -// an exponential moving window. This ensures that statistics are collected only -// under high-load circumstances where the measured serving times are relevant. -// The total recharge parameter of the flow control system which controls the -// total allowed serving time per second but nominated in cost units, should -// also be scaled with the cost factor and is also updated by this loop. -func (ct *costTracker) gfLoop() { - var gfUsage, gfSum, gfWeight float64 - lastUpdate := mclock.Now() - expUpdate := lastUpdate - - data, _ := ct.db.Get([]byte(gfDbKey)) - if len(data) == 16 { - gfSum = math.Float64frombits(binary.BigEndian.Uint64(data[0:8])) - gfWeight = math.Float64frombits(binary.BigEndian.Uint64(data[8:16])) - } - if gfWeight < float64(gfInitWeight) { - gfSum = float64(gfInitWeight) - gfWeight = float64(gfInitWeight) - } - gf := gfSum / gfWeight - ct.gf = gf - ct.gfUpdateCh = make(chan gfUpdate, 100) - - go func() { - for { - select { - case r := <-ct.gfUpdateCh: - now := mclock.Now() - max := r.servingTime * gf - if r.avgTime > max { - max = r.avgTime - } - dt := float64(now - expUpdate) - expUpdate = now - gfUsage = gfUsage*math.Exp(-dt/float64(gfUsageTC)) + max*1000000/float64(gfUsageTC) - - if gfUsage >= gfUsageThreshold*ct.utilTarget*gf { - gfSum += r.avgTime - gfWeight += r.servingTime - if time.Duration(now-lastUpdate) > time.Second { - gf = gfSum / gfWeight - if gfWeight >= float64(gfMaxWeight) { - gfSum = gf * float64(gfMaxWeight) - gfWeight = float64(gfMaxWeight) - } - lastUpdate = now - ct.gfLock.Lock() - ct.gf = gf - ch := ct.totalRechargeCh - ct.gfLock.Unlock() - if ch != nil { - select { - case ct.totalRechargeCh <- uint64(ct.utilTarget * gf): - default: - } - } - log.Debug("global cost factor updated", "gf", gf, "weight", time.Duration(gfWeight)) - } - } - case stopCh := <-ct.stopCh: - var data [16]byte - binary.BigEndian.PutUint64(data[0:8], math.Float64bits(gfSum)) - binary.BigEndian.PutUint64(data[8:16], math.Float64bits(gfWeight)) - ct.db.Put([]byte(gfDbKey), data[:]) - log.Debug("global cost factor saved", "sum", time.Duration(gfSum), "weight", time.Duration(gfWeight)) - close(stopCh) - return - } - } - }() -} - -// globalFactor returns the current value of the global cost factor -func (ct *costTracker) globalFactor() float64 { - ct.gfLock.RLock() - defer ct.gfLock.RUnlock() - - return ct.gf -} - -// totalRecharge returns the current total recharge parameter which is used by -// flowcontrol.ClientManager and is scaled by the global cost factor -func (ct *costTracker) totalRecharge() uint64 { - ct.gfLock.RLock() - defer ct.gfLock.RUnlock() - - return uint64(ct.gf * ct.utilTarget) -} - -// subscribeTotalRecharge returns all future updates to the total recharge value -// through a channel and also returns the current value -func (ct *costTracker) subscribeTotalRecharge(ch chan uint64) uint64 { - ct.gfLock.Lock() - defer ct.gfLock.Unlock() - - ct.totalRechargeCh = ch - return uint64(ct.gf * ct.utilTarget) -} - -// updateStats updates the global cost factor and (if enabled) the real cost vs. -// average estimate statistics -func (ct *costTracker) updateStats(code, amount, servingTime, realCost uint64) { - avg := reqAvgTimeCost[code] - avgTime := avg.baseCost + amount*avg.reqCost - select { - case ct.gfUpdateCh <- gfUpdate{float64(avgTime), float64(servingTime)}: - default: - } - if makeCostStats { - realCost <<= 4 - l := 0 - for l < 9 && realCost > avgTime { - l++ - realCost >>= 1 - } - atomic.AddUint64(&ct.stats[code][l], 1) - } -} - -// realCost calculates the final cost of a request based on actual serving time, -// incoming and outgoing message size -// -// Note: message size is only taken into account if bandwidth limitation is applied -// and the cost based on either message size is greater than the cost based on -// serving time. A maximum of the three costs is applied instead of their sum -// because the three limited resources (serving thread time and i/o bandwidth) can -// also be maxed out simultaneously. -func (ct *costTracker) realCost(servingTime uint64, inSize, outSize uint32) uint64 { - cost := float64(servingTime) - inSizeCost := float64(inSize) * ct.inSizeFactor - if inSizeCost > cost { - cost = inSizeCost - } - outSizeCost := float64(outSize) * ct.outSizeFactor - if outSizeCost > cost { - cost = outSizeCost - } - return uint64(cost * ct.globalFactor()) -} - -// printStats prints the distribution of real request cost relative to the average estimates -func (ct *costTracker) printStats() { - if ct.stats == nil { - return - } - for code, arr := range ct.stats { - log.Info("Request cost statistics", "code", code, "1/16", arr[0], "1/8", arr[1], "1/4", arr[2], "1/2", arr[3], "1", arr[4], "2", arr[5], "4", arr[6], "8", arr[7], "16", arr[8], ">16", arr[9]) - } -} - -type ( - // requestCostTable assigns a cost estimate function to each request type - // which is a linear function of the requested amount - // (cost = baseCost + reqCost * amount) - requestCostTable map[uint64]*requestCosts - requestCosts struct { - baseCost, reqCost uint64 - } - - // RequestCostList is a list representation of request costs which is used for - // database storage and communication through the network - RequestCostList []requestCostListItem - requestCostListItem struct { - MsgCode, BaseCost, ReqCost uint64 - } -) - -// getCost calculates the estimated cost for a given request type and amount -func (table requestCostTable) getCost(code, amount uint64) uint64 { - costs := table[code] - return costs.baseCost + amount*costs.reqCost -} - -// decode converts a cost list to a cost table -func (list RequestCostList) decode() requestCostTable { - table := make(requestCostTable) - for _, e := range list { - table[e.MsgCode] = &requestCosts{ - baseCost: e.BaseCost, - reqCost: e.ReqCost, - } - } - return table -} - -// testCostList returns a dummy request cost list used by tests -func testCostList() RequestCostList { - cl := make(RequestCostList, len(reqAvgTimeCost)) - var max uint64 - for code := range reqAvgTimeCost { - if code > max { - max = code - } - } - i := 0 - for code := uint64(0); code <= max; code++ { - if _, ok := reqAvgTimeCost[code]; ok { - cl[i].MsgCode = code - cl[i].BaseCost = 0 - cl[i].ReqCost = 0 - i++ - } - } - return cl -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/handler.go b/vendor/github.com/ethereum/go-ethereum/les/handler.go deleted file mode 100644 index 9c72c6b1..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/handler.go +++ /dev/null @@ -1,1190 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "encoding/binary" - "encoding/json" - "fmt" - "math/big" - "sync" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/discv5" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/trie" -) - -const ( - softResponseLimit = 2 * 1024 * 1024 // Target maximum size of returned blocks, headers or node data. - estHeaderRlpSize = 500 // Approximate size of an RLP encoded block header - - ethVersion = 63 // equivalent eth version for the downloader - - MaxHeaderFetch = 192 // Amount of block headers to be fetched per retrieval request - MaxBodyFetch = 32 // Amount of block bodies to be fetched per retrieval request - MaxReceiptFetch = 128 // Amount of transaction receipts to allow fetching per request - MaxCodeFetch = 64 // Amount of contract codes to allow fetching per request - MaxProofsFetch = 64 // Amount of merkle proofs to be fetched per retrieval request - MaxHelperTrieProofsFetch = 64 // Amount of merkle proofs to be fetched per retrieval request - MaxTxSend = 64 // Amount of transactions to be send per request - MaxTxStatus = 256 // Amount of transactions to queried per request - - disableClientRemovePeer = false -) - -func errResp(code errCode, format string, v ...interface{}) error { - return fmt.Errorf("%v - %v", code, fmt.Sprintf(format, v...)) -} - -type BlockChain interface { - Config() *params.ChainConfig - HasHeader(hash common.Hash, number uint64) bool - GetHeader(hash common.Hash, number uint64) *types.Header - GetHeaderByHash(hash common.Hash) *types.Header - CurrentHeader() *types.Header - GetTd(hash common.Hash, number uint64) *big.Int - StateCache() state.Database - InsertHeaderChain(chain []*types.Header, checkFreq int) (int, error) - Rollback(chain []common.Hash) - GetHeaderByNumber(number uint64) *types.Header - GetAncestor(hash common.Hash, number, ancestor uint64, maxNonCanonical *uint64) (common.Hash, uint64) - Genesis() *types.Block - SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription -} - -type txPool interface { - AddRemotes(txs []*types.Transaction) []error - Status(hashes []common.Hash) []core.TxStatus -} - -type ProtocolManager struct { - lightSync bool - txpool txPool - txrelay *LesTxRelay - networkId uint64 - chainConfig *params.ChainConfig - iConfig *light.IndexerConfig - blockchain BlockChain - chainDb ethdb.Database - odr *LesOdr - server *LesServer - serverPool *serverPool - lesTopic discv5.Topic - reqDist *requestDistributor - retriever *retrieveManager - servingQueue *servingQueue - - downloader *downloader.Downloader - fetcher *lightFetcher - peers *peerSet - maxPeers int - - eventMux *event.TypeMux - - // channels for fetcher, syncer, txsyncLoop - newPeerCh chan *peer - quitSync chan struct{} - noMorePeers chan struct{} - - // wait group is used for graceful shutdowns during downloading - // and processing - wg *sync.WaitGroup - ulc *ulc -} - -// NewProtocolManager returns a new ethereum sub protocol manager. The Ethereum sub protocol manages peers capable -// with the ethereum network. -func NewProtocolManager( - chainConfig *params.ChainConfig, - indexerConfig *light.IndexerConfig, - lightSync bool, - networkId uint64, - mux *event.TypeMux, - engine consensus.Engine, - peers *peerSet, - blockchain BlockChain, - txpool txPool, - chainDb ethdb.Database, - odr *LesOdr, - txrelay *LesTxRelay, - serverPool *serverPool, - quitSync chan struct{}, - wg *sync.WaitGroup, - ulcConfig *eth.ULCConfig) (*ProtocolManager, error) { - // Create the protocol manager with the base fields - manager := &ProtocolManager{ - lightSync: lightSync, - eventMux: mux, - blockchain: blockchain, - chainConfig: chainConfig, - iConfig: indexerConfig, - chainDb: chainDb, - odr: odr, - networkId: networkId, - txpool: txpool, - txrelay: txrelay, - serverPool: serverPool, - peers: peers, - newPeerCh: make(chan *peer), - quitSync: quitSync, - wg: wg, - noMorePeers: make(chan struct{}), - } - if odr != nil { - manager.retriever = odr.retriever - manager.reqDist = odr.retriever.dist - } else { - manager.servingQueue = newServingQueue(int64(time.Millisecond * 10)) - } - - if ulcConfig != nil { - manager.ulc = newULC(ulcConfig) - } - - removePeer := manager.removePeer - if disableClientRemovePeer { - removePeer = func(id string) {} - } - - if lightSync { - manager.downloader = downloader.New(downloader.LightSync, chainDb, manager.eventMux, nil, blockchain, removePeer) - manager.peers.notify((*downloaderPeerNotify)(manager)) - manager.fetcher = newLightFetcher(manager) - } - return manager, nil -} - -// removePeer initiates disconnection from a peer by removing it from the peer set -func (pm *ProtocolManager) removePeer(id string) { - pm.peers.Unregister(id) -} - -func (pm *ProtocolManager) Start(maxPeers int) { - pm.maxPeers = maxPeers - if pm.lightSync { - go pm.syncer() - } else { - go func() { - for range pm.newPeerCh { - } - }() - } -} - -func (pm *ProtocolManager) Stop() { - // Showing a log message. During download / process this could actually - // take between 5 to 10 seconds and therefor feedback is required. - log.Info("Stopping light Ethereum protocol") - - // Quit the sync loop. - // After this send has completed, no new peers will be accepted. - pm.noMorePeers <- struct{}{} - - close(pm.quitSync) // quits syncer, fetcher - - if pm.servingQueue != nil { - pm.servingQueue.stop() - } - - // Disconnect existing sessions. - // This also closes the gate for any new registrations on the peer set. - // sessions which are already established but not added to pm.peers yet - // will exit when they try to register. - pm.peers.Close() - - // Wait for any process action - pm.wg.Wait() - - log.Info("Light Ethereum protocol stopped") -} - -// runPeer is the p2p protocol run function for the given version. -func (pm *ProtocolManager) runPeer(version uint, p *p2p.Peer, rw p2p.MsgReadWriter) error { - var entry *poolEntry - peer := pm.newPeer(int(version), pm.networkId, p, rw) - if pm.serverPool != nil { - entry = pm.serverPool.connect(peer, peer.Node()) - } - peer.poolEntry = entry - select { - case pm.newPeerCh <- peer: - pm.wg.Add(1) - defer pm.wg.Done() - err := pm.handle(peer) - if entry != nil { - pm.serverPool.disconnect(entry) - } - return err - case <-pm.quitSync: - if entry != nil { - pm.serverPool.disconnect(entry) - } - return p2p.DiscQuitting - } -} - -func (pm *ProtocolManager) newPeer(pv int, nv uint64, p *p2p.Peer, rw p2p.MsgReadWriter) *peer { - var isTrusted bool - if pm.isULCEnabled() { - isTrusted = pm.ulc.isTrusted(p.ID()) - } - return newPeer(pv, nv, isTrusted, p, newMeteredMsgWriter(rw)) -} - -// handle is the callback invoked to manage the life cycle of a les peer. When -// this function terminates, the peer is disconnected. -func (pm *ProtocolManager) handle(p *peer) error { - // Ignore maxPeers if this is a trusted peer - // In server mode we try to check into the client pool after handshake - if pm.lightSync && pm.peers.Len() >= pm.maxPeers && !p.Peer.Info().Network.Trusted { - return p2p.DiscTooManyPeers - } - - p.Log().Debug("Light Ethereum peer connected", "name", p.Name()) - - // Execute the LES handshake - var ( - genesis = pm.blockchain.Genesis() - head = pm.blockchain.CurrentHeader() - hash = head.Hash() - number = head.Number.Uint64() - td = pm.blockchain.GetTd(hash, number) - ) - if err := p.Handshake(td, hash, number, genesis.Hash(), pm.server); err != nil { - p.Log().Debug("Light Ethereum handshake failed", "err", err) - return err - } - if p.fcClient != nil { - defer p.fcClient.Disconnect() - } - - if rw, ok := p.rw.(*meteredMsgReadWriter); ok { - rw.Init(p.version) - } - - // Register the peer locally - if err := pm.peers.Register(p); err != nil { - p.Log().Error("Light Ethereum peer registration failed", "err", err) - return err - } - defer func() { - pm.removePeer(p.id) - }() - - // Register the peer in the downloader. If the downloader considers it banned, we disconnect - if pm.lightSync { - p.lock.Lock() - head := p.headInfo - p.lock.Unlock() - if pm.fetcher != nil { - pm.fetcher.announce(p, head) - } - - if p.poolEntry != nil { - pm.serverPool.registered(p.poolEntry) - } - } - - // main loop. handle incoming messages. - for { - if err := pm.handleMsg(p); err != nil { - p.Log().Debug("Light Ethereum message handling failed", "err", err) - if p.fcServer != nil { - p.fcServer.DumpLogs() - } - return err - } - } -} - -// handleMsg is invoked whenever an inbound message is received from a remote -// peer. The remote connection is torn down upon returning any error. -func (pm *ProtocolManager) handleMsg(p *peer) error { - select { - case err := <-p.errCh: - return err - default: - } - // Read the next message from the remote peer, and ensure it's fully consumed - msg, err := p.rw.ReadMsg() - if err != nil { - return err - } - p.Log().Trace("Light Ethereum message arrived", "code", msg.Code, "bytes", msg.Size) - - p.responseCount++ - responseCount := p.responseCount - var ( - maxCost uint64 - task *servingTask - ) - - accept := func(reqID, reqCnt, maxCnt uint64) bool { - if reqCnt == 0 { - return false - } - if p.fcClient == nil || reqCnt > maxCnt { - return false - } - maxCost = p.fcCosts.getCost(msg.Code, reqCnt) - - if accepted, bufShort, servingPriority := p.fcClient.AcceptRequest(reqID, responseCount, maxCost); !accepted { - if bufShort > 0 { - p.Log().Error("Request came too early", "remaining", common.PrettyDuration(time.Duration(bufShort*1000000/p.fcParams.MinRecharge))) - } - return false - } else { - task = pm.servingQueue.newTask(servingPriority) - } - return task.start() - } - - if msg.Size > ProtocolMaxMsgSize { - return errResp(ErrMsgTooLarge, "%v > %v", msg.Size, ProtocolMaxMsgSize) - } - defer msg.Discard() - - var deliverMsg *Msg - - sendResponse := func(reqID, amount uint64, reply *reply, servingTime uint64) { - p.responseLock.Lock() - defer p.responseLock.Unlock() - - var replySize uint32 - if reply != nil { - replySize = reply.size() - } - var realCost uint64 - if pm.server.costTracker != nil { - realCost = pm.server.costTracker.realCost(servingTime, msg.Size, replySize) - pm.server.costTracker.updateStats(msg.Code, amount, servingTime, realCost) - } else { - realCost = maxCost - } - bv := p.fcClient.RequestProcessed(reqID, responseCount, maxCost, realCost) - if reply != nil { - p.queueSend(func() { - if err := reply.send(bv); err != nil { - select { - case p.errCh <- err: - default: - } - } - }) - } - } - - // Handle the message depending on its contents - switch msg.Code { - case StatusMsg: - p.Log().Trace("Received status message") - // Status messages should never arrive after the handshake - return errResp(ErrExtraStatusMsg, "uncontrolled status message") - - // Block header query, collect the requested headers and reply - case AnnounceMsg: - p.Log().Trace("Received announce message") - var req announceData - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "%v: %v", msg, err) - } - - update, size := req.Update.decode() - if p.rejectUpdate(size) { - return errResp(ErrRequestRejected, "") - } - p.updateFlowControl(update) - - if req.Hash != (common.Hash{}) { - if p.announceType == announceTypeNone { - return errResp(ErrUnexpectedResponse, "") - } - if p.announceType == announceTypeSigned { - if err := req.checkSignature(p.ID(), update); err != nil { - p.Log().Trace("Invalid announcement signature", "err", err) - return err - } - p.Log().Trace("Valid announcement signature") - } - - p.Log().Trace("Announce message content", "number", req.Number, "hash", req.Hash, "td", req.Td, "reorg", req.ReorgDepth) - if pm.fetcher != nil { - pm.fetcher.announce(p, &req) - } - } - - case GetBlockHeadersMsg: - p.Log().Trace("Received block header request") - // Decode the complex header query - var req struct { - ReqID uint64 - Query getBlockHeadersData - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "%v: %v", msg, err) - } - - query := req.Query - if !accept(req.ReqID, query.Amount, MaxHeaderFetch) { - return errResp(ErrRequestRejected, "") - } - go func() { - hashMode := query.Origin.Hash != (common.Hash{}) - first := true - maxNonCanonical := uint64(100) - - // Gather headers until the fetch or network limits is reached - var ( - bytes common.StorageSize - headers []*types.Header - unknown bool - ) - for !unknown && len(headers) < int(query.Amount) && bytes < softResponseLimit { - if !first && !task.waitOrStop() { - return - } - // Retrieve the next header satisfying the query - var origin *types.Header - if hashMode { - if first { - origin = pm.blockchain.GetHeaderByHash(query.Origin.Hash) - if origin != nil { - query.Origin.Number = origin.Number.Uint64() - } - } else { - origin = pm.blockchain.GetHeader(query.Origin.Hash, query.Origin.Number) - } - } else { - origin = pm.blockchain.GetHeaderByNumber(query.Origin.Number) - } - if origin == nil { - break - } - headers = append(headers, origin) - bytes += estHeaderRlpSize - - // Advance to the next header of the query - switch { - case hashMode && query.Reverse: - // Hash based traversal towards the genesis block - ancestor := query.Skip + 1 - if ancestor == 0 { - unknown = true - } else { - query.Origin.Hash, query.Origin.Number = pm.blockchain.GetAncestor(query.Origin.Hash, query.Origin.Number, ancestor, &maxNonCanonical) - unknown = (query.Origin.Hash == common.Hash{}) - } - case hashMode && !query.Reverse: - // Hash based traversal towards the leaf block - var ( - current = origin.Number.Uint64() - next = current + query.Skip + 1 - ) - if next <= current { - infos, _ := json.MarshalIndent(p.Peer.Info(), "", " ") - p.Log().Warn("GetBlockHeaders skip overflow attack", "current", current, "skip", query.Skip, "next", next, "attacker", infos) - unknown = true - } else { - if header := pm.blockchain.GetHeaderByNumber(next); header != nil { - nextHash := header.Hash() - expOldHash, _ := pm.blockchain.GetAncestor(nextHash, next, query.Skip+1, &maxNonCanonical) - if expOldHash == query.Origin.Hash { - query.Origin.Hash, query.Origin.Number = nextHash, next - } else { - unknown = true - } - } else { - unknown = true - } - } - case query.Reverse: - // Number based traversal towards the genesis block - if query.Origin.Number >= query.Skip+1 { - query.Origin.Number -= query.Skip + 1 - } else { - unknown = true - } - - case !query.Reverse: - // Number based traversal towards the leaf block - query.Origin.Number += query.Skip + 1 - } - first = false - } - sendResponse(req.ReqID, query.Amount, p.ReplyBlockHeaders(req.ReqID, headers), task.done()) - }() - - case BlockHeadersMsg: - if pm.downloader == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received block header response message") - // A batch of headers arrived to one of our previous requests - var resp struct { - ReqID, BV uint64 - Headers []*types.Header - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - if pm.fetcher != nil && pm.fetcher.requestedID(resp.ReqID) { - pm.fetcher.deliverHeaders(p, resp.ReqID, resp.Headers) - } else { - err := pm.downloader.DeliverHeaders(p.id, resp.Headers) - if err != nil { - log.Debug(fmt.Sprint(err)) - } - } - - case GetBlockBodiesMsg: - p.Log().Trace("Received block bodies request") - // Decode the retrieval message - var req struct { - ReqID uint64 - Hashes []common.Hash - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - // Gather blocks until the fetch or network limits is reached - var ( - bytes int - bodies []rlp.RawValue - ) - reqCnt := len(req.Hashes) - if !accept(req.ReqID, uint64(reqCnt), MaxBodyFetch) { - return errResp(ErrRequestRejected, "") - } - go func() { - for i, hash := range req.Hashes { - if i != 0 && !task.waitOrStop() { - return - } - if bytes >= softResponseLimit { - break - } - // Retrieve the requested block body, stopping if enough was found - if number := rawdb.ReadHeaderNumber(pm.chainDb, hash); number != nil { - if data := rawdb.ReadBodyRLP(pm.chainDb, hash, *number); len(data) != 0 { - bodies = append(bodies, data) - bytes += len(data) - } - } - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyBlockBodiesRLP(req.ReqID, bodies), task.done()) - }() - - case BlockBodiesMsg: - if pm.odr == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received block bodies response") - // A batch of block bodies arrived to one of our previous requests - var resp struct { - ReqID, BV uint64 - Data []*types.Body - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - deliverMsg = &Msg{ - MsgType: MsgBlockBodies, - ReqID: resp.ReqID, - Obj: resp.Data, - } - - case GetCodeMsg: - p.Log().Trace("Received code request") - // Decode the retrieval message - var req struct { - ReqID uint64 - Reqs []CodeReq - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - // Gather state data until the fetch or network limits is reached - var ( - bytes int - data [][]byte - ) - reqCnt := len(req.Reqs) - if !accept(req.ReqID, uint64(reqCnt), MaxCodeFetch) { - return errResp(ErrRequestRejected, "") - } - go func() { - for i, req := range req.Reqs { - if i != 0 && !task.waitOrStop() { - return - } - // Look up the root hash belonging to the request - number := rawdb.ReadHeaderNumber(pm.chainDb, req.BHash) - if number == nil { - p.Log().Warn("Failed to retrieve block num for code", "hash", req.BHash) - continue - } - header := rawdb.ReadHeader(pm.chainDb, req.BHash, *number) - if header == nil { - p.Log().Warn("Failed to retrieve header for code", "block", *number, "hash", req.BHash) - continue - } - triedb := pm.blockchain.StateCache().TrieDB() - - account, err := pm.getAccount(triedb, header.Root, common.BytesToHash(req.AccKey)) - if err != nil { - p.Log().Warn("Failed to retrieve account for code", "block", header.Number, "hash", header.Hash(), "account", common.BytesToHash(req.AccKey), "err", err) - continue - } - code, err := triedb.Node(common.BytesToHash(account.CodeHash)) - if err != nil { - p.Log().Warn("Failed to retrieve account code", "block", header.Number, "hash", header.Hash(), "account", common.BytesToHash(req.AccKey), "codehash", common.BytesToHash(account.CodeHash), "err", err) - continue - } - // Accumulate the code and abort if enough data was retrieved - data = append(data, code) - if bytes += len(code); bytes >= softResponseLimit { - break - } - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyCode(req.ReqID, data), task.done()) - }() - - case CodeMsg: - if pm.odr == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received code response") - // A batch of node state data arrived to one of our previous requests - var resp struct { - ReqID, BV uint64 - Data [][]byte - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - deliverMsg = &Msg{ - MsgType: MsgCode, - ReqID: resp.ReqID, - Obj: resp.Data, - } - - case GetReceiptsMsg: - p.Log().Trace("Received receipts request") - // Decode the retrieval message - var req struct { - ReqID uint64 - Hashes []common.Hash - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - // Gather state data until the fetch or network limits is reached - var ( - bytes int - receipts []rlp.RawValue - ) - reqCnt := len(req.Hashes) - if !accept(req.ReqID, uint64(reqCnt), MaxReceiptFetch) { - return errResp(ErrRequestRejected, "") - } - go func() { - for i, hash := range req.Hashes { - if i != 0 && !task.waitOrStop() { - return - } - if bytes >= softResponseLimit { - break - } - // Retrieve the requested block's receipts, skipping if unknown to us - var results types.Receipts - if number := rawdb.ReadHeaderNumber(pm.chainDb, hash); number != nil { - results = rawdb.ReadReceipts(pm.chainDb, hash, *number) - } - if results == nil { - if header := pm.blockchain.GetHeaderByHash(hash); header == nil || header.ReceiptHash != types.EmptyRootHash { - continue - } - } - // If known, encode and queue for response packet - if encoded, err := rlp.EncodeToBytes(results); err != nil { - log.Error("Failed to encode receipt", "err", err) - } else { - receipts = append(receipts, encoded) - bytes += len(encoded) - } - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyReceiptsRLP(req.ReqID, receipts), task.done()) - }() - - case ReceiptsMsg: - if pm.odr == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received receipts response") - // A batch of receipts arrived to one of our previous requests - var resp struct { - ReqID, BV uint64 - Receipts []types.Receipts - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - deliverMsg = &Msg{ - MsgType: MsgReceipts, - ReqID: resp.ReqID, - Obj: resp.Receipts, - } - - case GetProofsV2Msg: - p.Log().Trace("Received les/2 proofs request") - // Decode the retrieval message - var req struct { - ReqID uint64 - Reqs []ProofReq - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - // Gather state data until the fetch or network limits is reached - var ( - lastBHash common.Hash - root common.Hash - ) - reqCnt := len(req.Reqs) - if !accept(req.ReqID, uint64(reqCnt), MaxProofsFetch) { - return errResp(ErrRequestRejected, "") - } - go func() { - nodes := light.NewNodeSet() - - for i, req := range req.Reqs { - if i != 0 && !task.waitOrStop() { - return - } - // Look up the root hash belonging to the request - var ( - number *uint64 - header *types.Header - trie state.Trie - ) - if req.BHash != lastBHash { - root, lastBHash = common.Hash{}, req.BHash - - if number = rawdb.ReadHeaderNumber(pm.chainDb, req.BHash); number == nil { - p.Log().Warn("Failed to retrieve block num for proof", "hash", req.BHash) - continue - } - if header = rawdb.ReadHeader(pm.chainDb, req.BHash, *number); header == nil { - p.Log().Warn("Failed to retrieve header for proof", "block", *number, "hash", req.BHash) - continue - } - root = header.Root - } - // Open the account or storage trie for the request - statedb := pm.blockchain.StateCache() - - switch len(req.AccKey) { - case 0: - // No account key specified, open an account trie - trie, err = statedb.OpenTrie(root) - if trie == nil || err != nil { - p.Log().Warn("Failed to open storage trie for proof", "block", header.Number, "hash", header.Hash(), "root", root, "err", err) - continue - } - default: - // Account key specified, open a storage trie - account, err := pm.getAccount(statedb.TrieDB(), root, common.BytesToHash(req.AccKey)) - if err != nil { - p.Log().Warn("Failed to retrieve account for proof", "block", header.Number, "hash", header.Hash(), "account", common.BytesToHash(req.AccKey), "err", err) - continue - } - trie, err = statedb.OpenStorageTrie(common.BytesToHash(req.AccKey), account.Root) - if trie == nil || err != nil { - p.Log().Warn("Failed to open storage trie for proof", "block", header.Number, "hash", header.Hash(), "account", common.BytesToHash(req.AccKey), "root", account.Root, "err", err) - continue - } - } - // Prove the user's request from the account or stroage trie - if err := trie.Prove(req.Key, req.FromLevel, nodes); err != nil { - p.Log().Warn("Failed to prove state request", "block", header.Number, "hash", header.Hash(), "err", err) - continue - } - if nodes.DataSize() >= softResponseLimit { - break - } - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyProofsV2(req.ReqID, nodes.NodeList()), task.done()) - }() - - case ProofsV2Msg: - if pm.odr == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received les/2 proofs response") - // A batch of merkle proofs arrived to one of our previous requests - var resp struct { - ReqID, BV uint64 - Data light.NodeList - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - deliverMsg = &Msg{ - MsgType: MsgProofsV2, - ReqID: resp.ReqID, - Obj: resp.Data, - } - - case GetHelperTrieProofsMsg: - p.Log().Trace("Received helper trie proof request") - // Decode the retrieval message - var req struct { - ReqID uint64 - Reqs []HelperTrieReq - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - // Gather state data until the fetch or network limits is reached - var ( - auxBytes int - auxData [][]byte - ) - reqCnt := len(req.Reqs) - if !accept(req.ReqID, uint64(reqCnt), MaxHelperTrieProofsFetch) { - return errResp(ErrRequestRejected, "") - } - go func() { - - var ( - lastIdx uint64 - lastType uint - root common.Hash - auxTrie *trie.Trie - ) - nodes := light.NewNodeSet() - for i, req := range req.Reqs { - if i != 0 && !task.waitOrStop() { - return - } - if auxTrie == nil || req.Type != lastType || req.TrieIdx != lastIdx { - auxTrie, lastType, lastIdx = nil, req.Type, req.TrieIdx - - var prefix string - if root, prefix = pm.getHelperTrie(req.Type, req.TrieIdx); root != (common.Hash{}) { - auxTrie, _ = trie.New(root, trie.NewDatabase(rawdb.NewTable(pm.chainDb, prefix))) - } - } - if req.AuxReq == auxRoot { - var data []byte - if root != (common.Hash{}) { - data = root[:] - } - auxData = append(auxData, data) - auxBytes += len(data) - } else { - if auxTrie != nil { - auxTrie.Prove(req.Key, req.FromLevel, nodes) - } - if req.AuxReq != 0 { - data := pm.getHelperTrieAuxData(req) - auxData = append(auxData, data) - auxBytes += len(data) - } - } - if nodes.DataSize()+auxBytes >= softResponseLimit { - break - } - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyHelperTrieProofs(req.ReqID, HelperTrieResps{Proofs: nodes.NodeList(), AuxData: auxData}), task.done()) - }() - - case HelperTrieProofsMsg: - if pm.odr == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received helper trie proof response") - var resp struct { - ReqID, BV uint64 - Data HelperTrieResps - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - deliverMsg = &Msg{ - MsgType: MsgHelperTrieProofs, - ReqID: resp.ReqID, - Obj: resp.Data, - } - - case SendTxV2Msg: - if pm.txpool == nil { - return errResp(ErrRequestRejected, "") - } - // Transactions arrived, parse all of them and deliver to the pool - var req struct { - ReqID uint64 - Txs []*types.Transaction - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - reqCnt := len(req.Txs) - if !accept(req.ReqID, uint64(reqCnt), MaxTxSend) { - return errResp(ErrRequestRejected, "") - } - go func() { - stats := make([]txStatus, len(req.Txs)) - for i, tx := range req.Txs { - if i != 0 && !task.waitOrStop() { - return - } - hash := tx.Hash() - stats[i] = pm.txStatus(hash) - if stats[i].Status == core.TxStatusUnknown { - if errs := pm.txpool.AddRemotes([]*types.Transaction{tx}); errs[0] != nil { - stats[i].Error = errs[0].Error() - continue - } - stats[i] = pm.txStatus(hash) - } - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyTxStatus(req.ReqID, stats), task.done()) - }() - - case GetTxStatusMsg: - if pm.txpool == nil { - return errResp(ErrUnexpectedResponse, "") - } - // Transactions arrived, parse all of them and deliver to the pool - var req struct { - ReqID uint64 - Hashes []common.Hash - } - if err := msg.Decode(&req); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - reqCnt := len(req.Hashes) - if !accept(req.ReqID, uint64(reqCnt), MaxTxStatus) { - return errResp(ErrRequestRejected, "") - } - go func() { - stats := make([]txStatus, len(req.Hashes)) - for i, hash := range req.Hashes { - if i != 0 && !task.waitOrStop() { - return - } - stats[i] = pm.txStatus(hash) - } - sendResponse(req.ReqID, uint64(reqCnt), p.ReplyTxStatus(req.ReqID, stats), task.done()) - }() - - case TxStatusMsg: - if pm.odr == nil { - return errResp(ErrUnexpectedResponse, "") - } - - p.Log().Trace("Received tx status response") - var resp struct { - ReqID, BV uint64 - Status []txStatus - } - if err := msg.Decode(&resp); err != nil { - return errResp(ErrDecode, "msg %v: %v", msg, err) - } - - p.fcServer.ReceivedReply(resp.ReqID, resp.BV) - - default: - p.Log().Trace("Received unknown message", "code", msg.Code) - return errResp(ErrInvalidMsgCode, "%v", msg.Code) - } - - if deliverMsg != nil { - err := pm.retriever.deliver(p, deliverMsg) - if err != nil { - p.responseErrors++ - if p.responseErrors > maxResponseErrors { - return err - } - } - } - return nil -} - -// getAccount retrieves an account from the state based at root. -func (pm *ProtocolManager) getAccount(triedb *trie.Database, root, hash common.Hash) (state.Account, error) { - trie, err := trie.New(root, triedb) - if err != nil { - return state.Account{}, err - } - blob, err := trie.TryGet(hash[:]) - if err != nil { - return state.Account{}, err - } - var account state.Account - if err = rlp.DecodeBytes(blob, &account); err != nil { - return state.Account{}, err - } - return account, nil -} - -// getHelperTrie returns the post-processed trie root for the given trie ID and section index -func (pm *ProtocolManager) getHelperTrie(id uint, idx uint64) (common.Hash, string) { - switch id { - case htCanonical: - sectionHead := rawdb.ReadCanonicalHash(pm.chainDb, (idx+1)*pm.iConfig.ChtSize-1) - return light.GetChtRoot(pm.chainDb, idx, sectionHead), light.ChtTablePrefix - case htBloomBits: - sectionHead := rawdb.ReadCanonicalHash(pm.chainDb, (idx+1)*pm.iConfig.BloomTrieSize-1) - return light.GetBloomTrieRoot(pm.chainDb, idx, sectionHead), light.BloomTrieTablePrefix - } - return common.Hash{}, "" -} - -// getHelperTrieAuxData returns requested auxiliary data for the given HelperTrie request -func (pm *ProtocolManager) getHelperTrieAuxData(req HelperTrieReq) []byte { - if req.Type == htCanonical && req.AuxReq == auxHeader && len(req.Key) == 8 { - blockNum := binary.BigEndian.Uint64(req.Key) - hash := rawdb.ReadCanonicalHash(pm.chainDb, blockNum) - return rawdb.ReadHeaderRLP(pm.chainDb, hash, blockNum) - } - return nil -} - -func (pm *ProtocolManager) txStatus(hash common.Hash) txStatus { - var stat txStatus - stat.Status = pm.txpool.Status([]common.Hash{hash})[0] - // If the transaction is unknown to the pool, try looking it up locally - if stat.Status == core.TxStatusUnknown { - if tx, blockHash, blockNumber, txIndex := rawdb.ReadTransaction(pm.chainDb, hash); tx != nil { - stat.Status = core.TxStatusIncluded - stat.Lookup = &rawdb.LegacyTxLookupEntry{BlockHash: blockHash, BlockIndex: blockNumber, Index: txIndex} - } - } - return stat -} - -// isULCEnabled returns true if we can use ULC -func (pm *ProtocolManager) isULCEnabled() bool { - if pm.ulc == nil || len(pm.ulc.trustedKeys) == 0 { - return false - } - return true -} - -// downloaderPeerNotify implements peerSetNotify -type downloaderPeerNotify ProtocolManager - -type peerConnection struct { - manager *ProtocolManager - peer *peer -} - -func (pc *peerConnection) Head() (common.Hash, *big.Int) { - return pc.peer.HeadAndTd() -} - -func (pc *peerConnection) RequestHeadersByHash(origin common.Hash, amount int, skip int, reverse bool) error { - reqID := genReqID() - rq := &distReq{ - getCost: func(dp distPeer) uint64 { - peer := dp.(*peer) - return peer.GetRequestCost(GetBlockHeadersMsg, amount) - }, - canSend: func(dp distPeer) bool { - return dp.(*peer) == pc.peer - }, - request: func(dp distPeer) func() { - peer := dp.(*peer) - cost := peer.GetRequestCost(GetBlockHeadersMsg, amount) - peer.fcServer.QueuedRequest(reqID, cost) - return func() { peer.RequestHeadersByHash(reqID, cost, origin, amount, skip, reverse) } - }, - } - _, ok := <-pc.manager.reqDist.queue(rq) - if !ok { - return light.ErrNoPeers - } - return nil -} - -func (pc *peerConnection) RequestHeadersByNumber(origin uint64, amount int, skip int, reverse bool) error { - reqID := genReqID() - rq := &distReq{ - getCost: func(dp distPeer) uint64 { - peer := dp.(*peer) - return peer.GetRequestCost(GetBlockHeadersMsg, amount) - }, - canSend: func(dp distPeer) bool { - return dp.(*peer) == pc.peer - }, - request: func(dp distPeer) func() { - peer := dp.(*peer) - cost := peer.GetRequestCost(GetBlockHeadersMsg, amount) - peer.fcServer.QueuedRequest(reqID, cost) - return func() { peer.RequestHeadersByNumber(reqID, cost, origin, amount, skip, reverse) } - }, - } - _, ok := <-pc.manager.reqDist.queue(rq) - if !ok { - return light.ErrNoPeers - } - return nil -} - -func (d *downloaderPeerNotify) registerPeer(p *peer) { - pm := (*ProtocolManager)(d) - pc := &peerConnection{ - manager: pm, - peer: p, - } - pm.downloader.RegisterLightPeer(p.id, ethVersion, pc) -} - -func (d *downloaderPeerNotify) unregisterPeer(p *peer) { - pm := (*ProtocolManager)(d) - pm.downloader.UnregisterPeer(p.id) -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/handler_test.go b/vendor/github.com/ethereum/go-ethereum/les/handler_test.go deleted file mode 100644 index c1db65cf..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/handler_test.go +++ /dev/null @@ -1,521 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "encoding/binary" - "math/big" - "math/rand" - "testing" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/eth/downloader" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/trie" -) - -func expectResponse(r p2p.MsgReader, msgcode, reqID, bv uint64, data interface{}) error { - type resp struct { - ReqID, BV uint64 - Data interface{} - } - return p2p.ExpectMsg(r, msgcode, resp{reqID, bv, data}) -} - -// Tests that block headers can be retrieved from a remote chain based on user queries. -func TestGetBlockHeadersLes2(t *testing.T) { testGetBlockHeaders(t, 2) } - -func testGetBlockHeaders(t *testing.T, protocol int) { - server, tearDown := newServerEnv(t, downloader.MaxHashFetch+15, protocol, nil) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - // Create a "random" unknown hash for testing - var unknown common.Hash - for i := range unknown { - unknown[i] = byte(i) - } - // Create a batch of tests for various scenarios - limit := uint64(MaxHeaderFetch) - tests := []struct { - query *getBlockHeadersData // The query to execute for header retrieval - expect []common.Hash // The hashes of the block whose headers are expected - }{ - // A single random block should be retrievable by hash and number too - { - &getBlockHeadersData{Origin: hashOrNumber{Hash: bc.GetBlockByNumber(limit / 2).Hash()}, Amount: 1}, - []common.Hash{bc.GetBlockByNumber(limit / 2).Hash()}, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: limit / 2}, Amount: 1}, - []common.Hash{bc.GetBlockByNumber(limit / 2).Hash()}, - }, - // Multiple headers should be retrievable in both directions - { - &getBlockHeadersData{Origin: hashOrNumber{Number: limit / 2}, Amount: 3}, - []common.Hash{ - bc.GetBlockByNumber(limit / 2).Hash(), - bc.GetBlockByNumber(limit/2 + 1).Hash(), - bc.GetBlockByNumber(limit/2 + 2).Hash(), - }, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: limit / 2}, Amount: 3, Reverse: true}, - []common.Hash{ - bc.GetBlockByNumber(limit / 2).Hash(), - bc.GetBlockByNumber(limit/2 - 1).Hash(), - bc.GetBlockByNumber(limit/2 - 2).Hash(), - }, - }, - // Multiple headers with skip lists should be retrievable - { - &getBlockHeadersData{Origin: hashOrNumber{Number: limit / 2}, Skip: 3, Amount: 3}, - []common.Hash{ - bc.GetBlockByNumber(limit / 2).Hash(), - bc.GetBlockByNumber(limit/2 + 4).Hash(), - bc.GetBlockByNumber(limit/2 + 8).Hash(), - }, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: limit / 2}, Skip: 3, Amount: 3, Reverse: true}, - []common.Hash{ - bc.GetBlockByNumber(limit / 2).Hash(), - bc.GetBlockByNumber(limit/2 - 4).Hash(), - bc.GetBlockByNumber(limit/2 - 8).Hash(), - }, - }, - // The chain endpoints should be retrievable - { - &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1}, - []common.Hash{bc.GetBlockByNumber(0).Hash()}, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: bc.CurrentBlock().NumberU64()}, Amount: 1}, - []common.Hash{bc.CurrentBlock().Hash()}, - }, - // Ensure protocol limits are honored - /*{ - &getBlockHeadersData{Origin: hashOrNumber{Number: bc.CurrentBlock().NumberU64() - 1}, Amount: limit + 10, Reverse: true}, - bc.GetBlockHashesFromHash(bc.CurrentBlock().Hash(), limit), - },*/ - // Check that requesting more than available is handled gracefully - { - &getBlockHeadersData{Origin: hashOrNumber{Number: bc.CurrentBlock().NumberU64() - 4}, Skip: 3, Amount: 3}, - []common.Hash{ - bc.GetBlockByNumber(bc.CurrentBlock().NumberU64() - 4).Hash(), - bc.GetBlockByNumber(bc.CurrentBlock().NumberU64()).Hash(), - }, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: 4}, Skip: 3, Amount: 3, Reverse: true}, - []common.Hash{ - bc.GetBlockByNumber(4).Hash(), - bc.GetBlockByNumber(0).Hash(), - }, - }, - // Check that requesting more than available is handled gracefully, even if mid skip - { - &getBlockHeadersData{Origin: hashOrNumber{Number: bc.CurrentBlock().NumberU64() - 4}, Skip: 2, Amount: 3}, - []common.Hash{ - bc.GetBlockByNumber(bc.CurrentBlock().NumberU64() - 4).Hash(), - bc.GetBlockByNumber(bc.CurrentBlock().NumberU64() - 1).Hash(), - }, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: 4}, Skip: 2, Amount: 3, Reverse: true}, - []common.Hash{ - bc.GetBlockByNumber(4).Hash(), - bc.GetBlockByNumber(1).Hash(), - }, - }, - // Check that non existing headers aren't returned - { - &getBlockHeadersData{Origin: hashOrNumber{Hash: unknown}, Amount: 1}, - []common.Hash{}, - }, { - &getBlockHeadersData{Origin: hashOrNumber{Number: bc.CurrentBlock().NumberU64() + 1}, Amount: 1}, - []common.Hash{}, - }, - } - // Run each of the tests and verify the results against the chain - var reqID uint64 - for i, tt := range tests { - // Collect the headers to expect in the response - headers := []*types.Header{} - for _, hash := range tt.expect { - headers = append(headers, bc.GetHeaderByHash(hash)) - } - // Send the hash request and verify the response - reqID++ - cost := server.tPeer.GetRequestCost(GetBlockHeadersMsg, int(tt.query.Amount)) - sendRequest(server.tPeer.app, GetBlockHeadersMsg, reqID, cost, tt.query) - if err := expectResponse(server.tPeer.app, BlockHeadersMsg, reqID, testBufLimit, headers); err != nil { - t.Errorf("test %d: headers mismatch: %v", i, err) - } - } -} - -// Tests that block contents can be retrieved from a remote chain based on their hashes. -func TestGetBlockBodiesLes2(t *testing.T) { testGetBlockBodies(t, 2) } - -func testGetBlockBodies(t *testing.T, protocol int) { - server, tearDown := newServerEnv(t, downloader.MaxBlockFetch+15, protocol, nil) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - // Create a batch of tests for various scenarios - limit := MaxBodyFetch - tests := []struct { - random int // Number of blocks to fetch randomly from the chain - explicit []common.Hash // Explicitly requested blocks - available []bool // Availability of explicitly requested blocks - expected int // Total number of existing blocks to expect - }{ - {1, nil, nil, 1}, // A single random block should be retrievable - {10, nil, nil, 10}, // Multiple random blocks should be retrievable - {limit, nil, nil, limit}, // The maximum possible blocks should be retrievable - //{limit + 1, nil, nil, limit}, // No more than the possible block count should be returned - {0, []common.Hash{bc.Genesis().Hash()}, []bool{true}, 1}, // The genesis block should be retrievable - {0, []common.Hash{bc.CurrentBlock().Hash()}, []bool{true}, 1}, // The chains head block should be retrievable - {0, []common.Hash{{}}, []bool{false}, 0}, // A non existent block should not be returned - - // Existing and non-existing blocks interleaved should not cause problems - {0, []common.Hash{ - {}, - bc.GetBlockByNumber(1).Hash(), - {}, - bc.GetBlockByNumber(10).Hash(), - {}, - bc.GetBlockByNumber(100).Hash(), - {}, - }, []bool{false, true, false, true, false, true, false}, 3}, - } - // Run each of the tests and verify the results against the chain - var reqID uint64 - for i, tt := range tests { - // Collect the hashes to request, and the response to expect - hashes, seen := []common.Hash{}, make(map[int64]bool) - bodies := []*types.Body{} - - for j := 0; j < tt.random; j++ { - for { - num := rand.Int63n(int64(bc.CurrentBlock().NumberU64())) - if !seen[num] { - seen[num] = true - - block := bc.GetBlockByNumber(uint64(num)) - hashes = append(hashes, block.Hash()) - if len(bodies) < tt.expected { - bodies = append(bodies, &types.Body{Transactions: block.Transactions(), Uncles: block.Uncles()}) - } - break - } - } - } - for j, hash := range tt.explicit { - hashes = append(hashes, hash) - if tt.available[j] && len(bodies) < tt.expected { - block := bc.GetBlockByHash(hash) - bodies = append(bodies, &types.Body{Transactions: block.Transactions(), Uncles: block.Uncles()}) - } - } - reqID++ - // Send the hash request and verify the response - cost := server.tPeer.GetRequestCost(GetBlockBodiesMsg, len(hashes)) - sendRequest(server.tPeer.app, GetBlockBodiesMsg, reqID, cost, hashes) - if err := expectResponse(server.tPeer.app, BlockBodiesMsg, reqID, testBufLimit, bodies); err != nil { - t.Errorf("test %d: bodies mismatch: %v", i, err) - } - } -} - -// Tests that the contract codes can be retrieved based on account addresses. -func TestGetCodeLes2(t *testing.T) { testGetCode(t, 2) } - -func testGetCode(t *testing.T, protocol int) { - // Assemble the test environment - server, tearDown := newServerEnv(t, 4, protocol, nil) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - var codereqs []*CodeReq - var codes [][]byte - - for i := uint64(0); i <= bc.CurrentBlock().NumberU64(); i++ { - header := bc.GetHeaderByNumber(i) - req := &CodeReq{ - BHash: header.Hash(), - AccKey: crypto.Keccak256(testContractAddr[:]), - } - codereqs = append(codereqs, req) - if i >= testContractDeployed { - codes = append(codes, testContractCodeDeployed) - } - } - - cost := server.tPeer.GetRequestCost(GetCodeMsg, len(codereqs)) - sendRequest(server.tPeer.app, GetCodeMsg, 42, cost, codereqs) - if err := expectResponse(server.tPeer.app, CodeMsg, 42, testBufLimit, codes); err != nil { - t.Errorf("codes mismatch: %v", err) - } -} - -// Tests that the transaction receipts can be retrieved based on hashes. -func TestGetReceiptLes2(t *testing.T) { testGetReceipt(t, 2) } - -func testGetReceipt(t *testing.T, protocol int) { - // Assemble the test environment - server, tearDown := newServerEnv(t, 4, protocol, nil) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - // Collect the hashes to request, and the response to expect - hashes, receipts := []common.Hash{}, []types.Receipts{} - for i := uint64(0); i <= bc.CurrentBlock().NumberU64(); i++ { - block := bc.GetBlockByNumber(i) - - hashes = append(hashes, block.Hash()) - receipts = append(receipts, rawdb.ReadReceipts(server.db, block.Hash(), block.NumberU64())) - } - // Send the hash request and verify the response - cost := server.tPeer.GetRequestCost(GetReceiptsMsg, len(hashes)) - sendRequest(server.tPeer.app, GetReceiptsMsg, 42, cost, hashes) - if err := expectResponse(server.tPeer.app, ReceiptsMsg, 42, testBufLimit, receipts); err != nil { - t.Errorf("receipts mismatch: %v", err) - } -} - -// Tests that trie merkle proofs can be retrieved -func TestGetProofsLes2(t *testing.T) { testGetProofs(t, 2) } - -func testGetProofs(t *testing.T, protocol int) { - // Assemble the test environment - server, tearDown := newServerEnv(t, 4, protocol, nil) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - var proofreqs []ProofReq - proofsV2 := light.NewNodeSet() - - accounts := []common.Address{testBankAddress, acc1Addr, acc2Addr, {}} - for i := uint64(0); i <= bc.CurrentBlock().NumberU64(); i++ { - header := bc.GetHeaderByNumber(i) - root := header.Root - trie, _ := trie.New(root, trie.NewDatabase(server.db)) - - for _, acc := range accounts { - req := ProofReq{ - BHash: header.Hash(), - Key: crypto.Keccak256(acc[:]), - } - proofreqs = append(proofreqs, req) - trie.Prove(crypto.Keccak256(acc[:]), 0, proofsV2) - } - } - // Send the proof request and verify the response - cost := server.tPeer.GetRequestCost(GetProofsV2Msg, len(proofreqs)) - sendRequest(server.tPeer.app, GetProofsV2Msg, 42, cost, proofreqs) - if err := expectResponse(server.tPeer.app, ProofsV2Msg, 42, testBufLimit, proofsV2.NodeList()); err != nil { - t.Errorf("proofs mismatch: %v", err) - } -} - -// Tests that CHT proofs can be correctly retrieved. -func TestGetCHTProofsLes2(t *testing.T) { testGetCHTProofs(t, 2) } - -func testGetCHTProofs(t *testing.T, protocol int) { - config := light.TestServerIndexerConfig - - waitIndexers := func(cIndexer, bIndexer, btIndexer *core.ChainIndexer) { - for { - cs, _, _ := cIndexer.Sections() - if cs >= 1 { - break - } - time.Sleep(10 * time.Millisecond) - } - } - server, tearDown := newServerEnv(t, int(config.ChtSize+config.ChtConfirms), protocol, waitIndexers) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - // Assemble the proofs from the different protocols - header := bc.GetHeaderByNumber(config.ChtSize - 1) - rlp, _ := rlp.EncodeToBytes(header) - - key := make([]byte, 8) - binary.BigEndian.PutUint64(key, config.ChtSize-1) - - proofsV2 := HelperTrieResps{ - AuxData: [][]byte{rlp}, - } - root := light.GetChtRoot(server.db, 0, bc.GetHeaderByNumber(config.ChtSize-1).Hash()) - trie, _ := trie.New(root, trie.NewDatabase(rawdb.NewTable(server.db, light.ChtTablePrefix))) - trie.Prove(key, 0, &proofsV2.Proofs) - // Assemble the requests for the different protocols - requestsV2 := []HelperTrieReq{{ - Type: htCanonical, - TrieIdx: 0, - Key: key, - AuxReq: auxHeader, - }} - // Send the proof request and verify the response - cost := server.tPeer.GetRequestCost(GetHelperTrieProofsMsg, len(requestsV2)) - sendRequest(server.tPeer.app, GetHelperTrieProofsMsg, 42, cost, requestsV2) - if err := expectResponse(server.tPeer.app, HelperTrieProofsMsg, 42, testBufLimit, proofsV2); err != nil { - t.Errorf("proofs mismatch: %v", err) - } -} - -// Tests that bloombits proofs can be correctly retrieved. -func TestGetBloombitsProofs(t *testing.T) { - config := light.TestServerIndexerConfig - - waitIndexers := func(cIndexer, bIndexer, btIndexer *core.ChainIndexer) { - for { - bts, _, _ := btIndexer.Sections() - if bts >= 1 { - break - } - time.Sleep(10 * time.Millisecond) - } - } - server, tearDown := newServerEnv(t, int(config.BloomTrieSize+config.BloomTrieConfirms), 2, waitIndexers) - defer tearDown() - bc := server.pm.blockchain.(*core.BlockChain) - - // Request and verify each bit of the bloom bits proofs - for bit := 0; bit < 2048; bit++ { - // Assemble the request and proofs for the bloombits - key := make([]byte, 10) - - binary.BigEndian.PutUint16(key[:2], uint16(bit)) - // Only the first bloom section has data. - binary.BigEndian.PutUint64(key[2:], 0) - - requests := []HelperTrieReq{{ - Type: htBloomBits, - TrieIdx: 0, - Key: key, - }} - var proofs HelperTrieResps - - root := light.GetBloomTrieRoot(server.db, 0, bc.GetHeaderByNumber(config.BloomTrieSize-1).Hash()) - trie, _ := trie.New(root, trie.NewDatabase(rawdb.NewTable(server.db, light.BloomTrieTablePrefix))) - trie.Prove(key, 0, &proofs.Proofs) - - // Send the proof request and verify the response - cost := server.tPeer.GetRequestCost(GetHelperTrieProofsMsg, len(requests)) - sendRequest(server.tPeer.app, GetHelperTrieProofsMsg, 42, cost, requests) - if err := expectResponse(server.tPeer.app, HelperTrieProofsMsg, 42, testBufLimit, proofs); err != nil { - t.Errorf("bit %d: proofs mismatch: %v", bit, err) - } - } -} - -func TestTransactionStatusLes2(t *testing.T) { - db := rawdb.NewMemoryDatabase() - pm := newTestProtocolManagerMust(t, false, 0, nil, nil, nil, db, nil) - chain := pm.blockchain.(*core.BlockChain) - config := core.DefaultTxPoolConfig - config.Journal = "" - txpool := core.NewTxPool(config, params.TestChainConfig, chain) - pm.txpool = txpool - peer, _ := newTestPeer(t, "peer", 2, pm, true) - defer peer.close() - - var reqID uint64 - - test := func(tx *types.Transaction, send bool, expStatus txStatus) { - reqID++ - if send { - cost := peer.GetRequestCost(SendTxV2Msg, 1) - sendRequest(peer.app, SendTxV2Msg, reqID, cost, types.Transactions{tx}) - } else { - cost := peer.GetRequestCost(GetTxStatusMsg, 1) - sendRequest(peer.app, GetTxStatusMsg, reqID, cost, []common.Hash{tx.Hash()}) - } - if err := expectResponse(peer.app, TxStatusMsg, reqID, testBufLimit, []txStatus{expStatus}); err != nil { - t.Errorf("transaction status mismatch") - } - } - - signer := types.HomesteadSigner{} - - // test error status by sending an underpriced transaction - tx0, _ := types.SignTx(types.NewTransaction(0, acc1Addr, big.NewInt(10000), params.TxGas, nil, nil), signer, testBankKey) - test(tx0, true, txStatus{Status: core.TxStatusUnknown, Error: core.ErrUnderpriced.Error()}) - - tx1, _ := types.SignTx(types.NewTransaction(0, acc1Addr, big.NewInt(10000), params.TxGas, big.NewInt(100000000000), nil), signer, testBankKey) - test(tx1, false, txStatus{Status: core.TxStatusUnknown}) // query before sending, should be unknown - test(tx1, true, txStatus{Status: core.TxStatusPending}) // send valid processable tx, should return pending - test(tx1, true, txStatus{Status: core.TxStatusPending}) // adding it again should not return an error - - tx2, _ := types.SignTx(types.NewTransaction(1, acc1Addr, big.NewInt(10000), params.TxGas, big.NewInt(100000000000), nil), signer, testBankKey) - tx3, _ := types.SignTx(types.NewTransaction(2, acc1Addr, big.NewInt(10000), params.TxGas, big.NewInt(100000000000), nil), signer, testBankKey) - // send transactions in the wrong order, tx3 should be queued - test(tx3, true, txStatus{Status: core.TxStatusQueued}) - test(tx2, true, txStatus{Status: core.TxStatusPending}) - // query again, now tx3 should be pending too - test(tx3, false, txStatus{Status: core.TxStatusPending}) - - // generate and add a block with tx1 and tx2 included - gchain, _ := core.GenerateChain(params.TestChainConfig, chain.GetBlockByNumber(0), ethash.NewFaker(), db, 1, func(i int, block *core.BlockGen) { - block.AddTx(tx1) - block.AddTx(tx2) - }) - if _, err := chain.InsertChain(gchain); err != nil { - panic(err) - } - // wait until TxPool processes the inserted block - for i := 0; i < 10; i++ { - if pending, _ := txpool.Stats(); pending == 1 { - break - } - time.Sleep(100 * time.Millisecond) - } - if pending, _ := txpool.Stats(); pending != 1 { - t.Fatalf("pending count mismatch: have %d, want 1", pending) - } - - // check if their status is included now - block1hash := rawdb.ReadCanonicalHash(db, 1) - test(tx1, false, txStatus{Status: core.TxStatusIncluded, Lookup: &rawdb.LegacyTxLookupEntry{BlockHash: block1hash, BlockIndex: 1, Index: 0}}) - test(tx2, false, txStatus{Status: core.TxStatusIncluded, Lookup: &rawdb.LegacyTxLookupEntry{BlockHash: block1hash, BlockIndex: 1, Index: 1}}) - - // create a reorg that rolls them back - gchain, _ = core.GenerateChain(params.TestChainConfig, chain.GetBlockByNumber(0), ethash.NewFaker(), db, 2, func(i int, block *core.BlockGen) {}) - if _, err := chain.InsertChain(gchain); err != nil { - panic(err) - } - // wait until TxPool processes the reorg - for i := 0; i < 10; i++ { - if pending, _ := txpool.Stats(); pending == 3 { - break - } - time.Sleep(100 * time.Millisecond) - } - if pending, _ := txpool.Stats(); pending != 3 { - t.Fatalf("pending count mismatch: have %d, want 3", pending) - } - // check if their status is pending again - test(tx1, false, txStatus{Status: core.TxStatusPending}) - test(tx2, false, txStatus{Status: core.TxStatusPending}) -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/odr.go b/vendor/github.com/ethereum/go-ethereum/les/odr.go deleted file mode 100644 index daf2ea19..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/odr.go +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "context" - - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/log" -) - -// LesOdr implements light.OdrBackend -type LesOdr struct { - db ethdb.Database - indexerConfig *light.IndexerConfig - chtIndexer, bloomTrieIndexer, bloomIndexer *core.ChainIndexer - retriever *retrieveManager - stop chan struct{} -} - -func NewLesOdr(db ethdb.Database, config *light.IndexerConfig, retriever *retrieveManager) *LesOdr { - return &LesOdr{ - db: db, - indexerConfig: config, - retriever: retriever, - stop: make(chan struct{}), - } -} - -// Stop cancels all pending retrievals -func (odr *LesOdr) Stop() { - close(odr.stop) -} - -// Database returns the backing database -func (odr *LesOdr) Database() ethdb.Database { - return odr.db -} - -// SetIndexers adds the necessary chain indexers to the ODR backend -func (odr *LesOdr) SetIndexers(chtIndexer, bloomTrieIndexer, bloomIndexer *core.ChainIndexer) { - odr.chtIndexer = chtIndexer - odr.bloomTrieIndexer = bloomTrieIndexer - odr.bloomIndexer = bloomIndexer -} - -// ChtIndexer returns the CHT chain indexer -func (odr *LesOdr) ChtIndexer() *core.ChainIndexer { - return odr.chtIndexer -} - -// BloomTrieIndexer returns the bloom trie chain indexer -func (odr *LesOdr) BloomTrieIndexer() *core.ChainIndexer { - return odr.bloomTrieIndexer -} - -// BloomIndexer returns the bloombits chain indexer -func (odr *LesOdr) BloomIndexer() *core.ChainIndexer { - return odr.bloomIndexer -} - -// IndexerConfig returns the indexer config. -func (odr *LesOdr) IndexerConfig() *light.IndexerConfig { - return odr.indexerConfig -} - -const ( - MsgBlockBodies = iota - MsgCode - MsgReceipts - MsgProofsV2 - MsgHelperTrieProofs -) - -// Msg encodes a LES message that delivers reply data for a request -type Msg struct { - MsgType int - ReqID uint64 - Obj interface{} -} - -// Retrieve tries to fetch an object from the LES network. -// If the network retrieval was successful, it stores the object in local db. -func (odr *LesOdr) Retrieve(ctx context.Context, req light.OdrRequest) (err error) { - lreq := LesRequest(req) - - reqID := genReqID() - rq := &distReq{ - getCost: func(dp distPeer) uint64 { - return lreq.GetCost(dp.(*peer)) - }, - canSend: func(dp distPeer) bool { - p := dp.(*peer) - if !p.isOnlyAnnounce { - return lreq.CanSend(p) - } - return false - }, - request: func(dp distPeer) func() { - p := dp.(*peer) - cost := lreq.GetCost(p) - p.fcServer.QueuedRequest(reqID, cost) - return func() { lreq.Request(reqID, p) } - }, - } - - if err = odr.retriever.retrieve(ctx, reqID, rq, func(p distPeer, msg *Msg) error { return lreq.Validate(odr.db, msg) }, odr.stop); err == nil { - // retrieved from network, store in db - req.StoreResult(odr.db) - } else { - log.Debug("Failed to retrieve data from network", "err", err) - } - return -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/odr_requests.go b/vendor/github.com/ethereum/go-ethereum/les/odr_requests.go deleted file mode 100644 index 66d6175b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/odr_requests.go +++ /dev/null @@ -1,494 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "encoding/binary" - "errors" - "fmt" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/trie" -) - -var ( - errInvalidMessageType = errors.New("invalid message type") - errInvalidEntryCount = errors.New("invalid number of response entries") - errHeaderUnavailable = errors.New("header unavailable") - errTxHashMismatch = errors.New("transaction hash mismatch") - errUncleHashMismatch = errors.New("uncle hash mismatch") - errReceiptHashMismatch = errors.New("receipt hash mismatch") - errDataHashMismatch = errors.New("data hash mismatch") - errCHTHashMismatch = errors.New("cht hash mismatch") - errCHTNumberMismatch = errors.New("cht number mismatch") - errUselessNodes = errors.New("useless nodes in merkle proof nodeset") -) - -type LesOdrRequest interface { - GetCost(*peer) uint64 - CanSend(*peer) bool - Request(uint64, *peer) error - Validate(ethdb.Database, *Msg) error -} - -func LesRequest(req light.OdrRequest) LesOdrRequest { - switch r := req.(type) { - case *light.BlockRequest: - return (*BlockRequest)(r) - case *light.ReceiptsRequest: - return (*ReceiptsRequest)(r) - case *light.TrieRequest: - return (*TrieRequest)(r) - case *light.CodeRequest: - return (*CodeRequest)(r) - case *light.ChtRequest: - return (*ChtRequest)(r) - case *light.BloomRequest: - return (*BloomRequest)(r) - default: - return nil - } -} - -// BlockRequest is the ODR request type for block bodies -type BlockRequest light.BlockRequest - -// GetCost returns the cost of the given ODR request according to the serving -// peer's cost table (implementation of LesOdrRequest) -func (r *BlockRequest) GetCost(peer *peer) uint64 { - return peer.GetRequestCost(GetBlockBodiesMsg, 1) -} - -// CanSend tells if a certain peer is suitable for serving the given request -func (r *BlockRequest) CanSend(peer *peer) bool { - return peer.HasBlock(r.Hash, r.Number, false) -} - -// Request sends an ODR request to the LES network (implementation of LesOdrRequest) -func (r *BlockRequest) Request(reqID uint64, peer *peer) error { - peer.Log().Debug("Requesting block body", "hash", r.Hash) - return peer.RequestBodies(reqID, r.GetCost(peer), []common.Hash{r.Hash}) -} - -// Valid processes an ODR request reply message from the LES network -// returns true and stores results in memory if the message was a valid reply -// to the request (implementation of LesOdrRequest) -func (r *BlockRequest) Validate(db ethdb.Database, msg *Msg) error { - log.Debug("Validating block body", "hash", r.Hash) - - // Ensure we have a correct message with a single block body - if msg.MsgType != MsgBlockBodies { - return errInvalidMessageType - } - bodies := msg.Obj.([]*types.Body) - if len(bodies) != 1 { - return errInvalidEntryCount - } - body := bodies[0] - - // Retrieve our stored header and validate block content against it - header := rawdb.ReadHeader(db, r.Hash, r.Number) - if header == nil { - return errHeaderUnavailable - } - if header.TxHash != types.DeriveSha(types.Transactions(body.Transactions)) { - return errTxHashMismatch - } - if header.UncleHash != types.CalcUncleHash(body.Uncles) { - return errUncleHashMismatch - } - // Validations passed, encode and store RLP - data, err := rlp.EncodeToBytes(body) - if err != nil { - return err - } - r.Rlp = data - return nil -} - -// ReceiptsRequest is the ODR request type for block receipts by block hash -type ReceiptsRequest light.ReceiptsRequest - -// GetCost returns the cost of the given ODR request according to the serving -// peer's cost table (implementation of LesOdrRequest) -func (r *ReceiptsRequest) GetCost(peer *peer) uint64 { - return peer.GetRequestCost(GetReceiptsMsg, 1) -} - -// CanSend tells if a certain peer is suitable for serving the given request -func (r *ReceiptsRequest) CanSend(peer *peer) bool { - return peer.HasBlock(r.Hash, r.Number, false) -} - -// Request sends an ODR request to the LES network (implementation of LesOdrRequest) -func (r *ReceiptsRequest) Request(reqID uint64, peer *peer) error { - peer.Log().Debug("Requesting block receipts", "hash", r.Hash) - return peer.RequestReceipts(reqID, r.GetCost(peer), []common.Hash{r.Hash}) -} - -// Valid processes an ODR request reply message from the LES network -// returns true and stores results in memory if the message was a valid reply -// to the request (implementation of LesOdrRequest) -func (r *ReceiptsRequest) Validate(db ethdb.Database, msg *Msg) error { - log.Debug("Validating block receipts", "hash", r.Hash) - - // Ensure we have a correct message with a single block receipt - if msg.MsgType != MsgReceipts { - return errInvalidMessageType - } - receipts := msg.Obj.([]types.Receipts) - if len(receipts) != 1 { - return errInvalidEntryCount - } - receipt := receipts[0] - - // Retrieve our stored header and validate receipt content against it - header := rawdb.ReadHeader(db, r.Hash, r.Number) - if header == nil { - return errHeaderUnavailable - } - if header.ReceiptHash != types.DeriveSha(receipt) { - return errReceiptHashMismatch - } - // Validations passed, store and return - r.Receipts = receipt - return nil -} - -type ProofReq struct { - BHash common.Hash - AccKey, Key []byte - FromLevel uint -} - -// ODR request type for state/storage trie entries, see LesOdrRequest interface -type TrieRequest light.TrieRequest - -// GetCost returns the cost of the given ODR request according to the serving -// peer's cost table (implementation of LesOdrRequest) -func (r *TrieRequest) GetCost(peer *peer) uint64 { - return peer.GetRequestCost(GetProofsV2Msg, 1) -} - -// CanSend tells if a certain peer is suitable for serving the given request -func (r *TrieRequest) CanSend(peer *peer) bool { - return peer.HasBlock(r.Id.BlockHash, r.Id.BlockNumber, true) -} - -// Request sends an ODR request to the LES network (implementation of LesOdrRequest) -func (r *TrieRequest) Request(reqID uint64, peer *peer) error { - peer.Log().Debug("Requesting trie proof", "root", r.Id.Root, "key", r.Key) - req := ProofReq{ - BHash: r.Id.BlockHash, - AccKey: r.Id.AccKey, - Key: r.Key, - } - return peer.RequestProofs(reqID, r.GetCost(peer), []ProofReq{req}) -} - -// Valid processes an ODR request reply message from the LES network -// returns true and stores results in memory if the message was a valid reply -// to the request (implementation of LesOdrRequest) -func (r *TrieRequest) Validate(db ethdb.Database, msg *Msg) error { - log.Debug("Validating trie proof", "root", r.Id.Root, "key", r.Key) - - if msg.MsgType != MsgProofsV2 { - return errInvalidMessageType - } - proofs := msg.Obj.(light.NodeList) - // Verify the proof and store if checks out - nodeSet := proofs.NodeSet() - reads := &readTraceDB{db: nodeSet} - if _, _, err := trie.VerifyProof(r.Id.Root, r.Key, reads); err != nil { - return fmt.Errorf("merkle proof verification failed: %v", err) - } - // check if all nodes have been read by VerifyProof - if len(reads.reads) != nodeSet.KeyCount() { - return errUselessNodes - } - r.Proof = nodeSet - return nil -} - -type CodeReq struct { - BHash common.Hash - AccKey []byte -} - -// ODR request type for node data (used for retrieving contract code), see LesOdrRequest interface -type CodeRequest light.CodeRequest - -// GetCost returns the cost of the given ODR request according to the serving -// peer's cost table (implementation of LesOdrRequest) -func (r *CodeRequest) GetCost(peer *peer) uint64 { - return peer.GetRequestCost(GetCodeMsg, 1) -} - -// CanSend tells if a certain peer is suitable for serving the given request -func (r *CodeRequest) CanSend(peer *peer) bool { - return peer.HasBlock(r.Id.BlockHash, r.Id.BlockNumber, true) -} - -// Request sends an ODR request to the LES network (implementation of LesOdrRequest) -func (r *CodeRequest) Request(reqID uint64, peer *peer) error { - peer.Log().Debug("Requesting code data", "hash", r.Hash) - req := CodeReq{ - BHash: r.Id.BlockHash, - AccKey: r.Id.AccKey, - } - return peer.RequestCode(reqID, r.GetCost(peer), []CodeReq{req}) -} - -// Valid processes an ODR request reply message from the LES network -// returns true and stores results in memory if the message was a valid reply -// to the request (implementation of LesOdrRequest) -func (r *CodeRequest) Validate(db ethdb.Database, msg *Msg) error { - log.Debug("Validating code data", "hash", r.Hash) - - // Ensure we have a correct message with a single code element - if msg.MsgType != MsgCode { - return errInvalidMessageType - } - reply := msg.Obj.([][]byte) - if len(reply) != 1 { - return errInvalidEntryCount - } - data := reply[0] - - // Verify the data and store if checks out - if hash := crypto.Keccak256Hash(data); r.Hash != hash { - return errDataHashMismatch - } - r.Data = data - return nil -} - -const ( - // helper trie type constants - htCanonical = iota // Canonical hash trie - htBloomBits // BloomBits trie - - // applicable for all helper trie requests - auxRoot = 1 - // applicable for htCanonical - auxHeader = 2 -) - -type HelperTrieReq struct { - Type uint - TrieIdx uint64 - Key []byte - FromLevel, AuxReq uint -} - -type HelperTrieResps struct { // describes all responses, not just a single one - Proofs light.NodeList - AuxData [][]byte -} - -// ODR request type for requesting headers by Canonical Hash Trie, see LesOdrRequest interface -type ChtRequest light.ChtRequest - -// GetCost returns the cost of the given ODR request according to the serving -// peer's cost table (implementation of LesOdrRequest) -func (r *ChtRequest) GetCost(peer *peer) uint64 { - return peer.GetRequestCost(GetHelperTrieProofsMsg, 1) -} - -// CanSend tells if a certain peer is suitable for serving the given request -func (r *ChtRequest) CanSend(peer *peer) bool { - peer.lock.RLock() - defer peer.lock.RUnlock() - - return peer.headInfo.Number >= r.Config.ChtConfirms && r.ChtNum <= (peer.headInfo.Number-r.Config.ChtConfirms)/r.Config.ChtSize -} - -// Request sends an ODR request to the LES network (implementation of LesOdrRequest) -func (r *ChtRequest) Request(reqID uint64, peer *peer) error { - peer.Log().Debug("Requesting CHT", "cht", r.ChtNum, "block", r.BlockNum) - var encNum [8]byte - binary.BigEndian.PutUint64(encNum[:], r.BlockNum) - req := HelperTrieReq{ - Type: htCanonical, - TrieIdx: r.ChtNum, - Key: encNum[:], - AuxReq: auxHeader, - } - return peer.RequestHelperTrieProofs(reqID, r.GetCost(peer), []HelperTrieReq{req}) -} - -// Valid processes an ODR request reply message from the LES network -// returns true and stores results in memory if the message was a valid reply -// to the request (implementation of LesOdrRequest) -func (r *ChtRequest) Validate(db ethdb.Database, msg *Msg) error { - log.Debug("Validating CHT", "cht", r.ChtNum, "block", r.BlockNum) - - if msg.MsgType != MsgHelperTrieProofs { - return errInvalidMessageType - } - resp := msg.Obj.(HelperTrieResps) - if len(resp.AuxData) != 1 { - return errInvalidEntryCount - } - nodeSet := resp.Proofs.NodeSet() - headerEnc := resp.AuxData[0] - if len(headerEnc) == 0 { - return errHeaderUnavailable - } - header := new(types.Header) - if err := rlp.DecodeBytes(headerEnc, header); err != nil { - return errHeaderUnavailable - } - - // Verify the CHT - var encNumber [8]byte - binary.BigEndian.PutUint64(encNumber[:], r.BlockNum) - - reads := &readTraceDB{db: nodeSet} - value, _, err := trie.VerifyProof(r.ChtRoot, encNumber[:], reads) - if err != nil { - return fmt.Errorf("merkle proof verification failed: %v", err) - } - if len(reads.reads) != nodeSet.KeyCount() { - return errUselessNodes - } - - var node light.ChtNode - if err := rlp.DecodeBytes(value, &node); err != nil { - return err - } - if node.Hash != header.Hash() { - return errCHTHashMismatch - } - if r.BlockNum != header.Number.Uint64() { - return errCHTNumberMismatch - } - // Verifications passed, store and return - r.Header = header - r.Proof = nodeSet - r.Td = node.Td - return nil -} - -type BloomReq struct { - BloomTrieNum, BitIdx, SectionIndex, FromLevel uint64 -} - -// ODR request type for requesting headers by Canonical Hash Trie, see LesOdrRequest interface -type BloomRequest light.BloomRequest - -// GetCost returns the cost of the given ODR request according to the serving -// peer's cost table (implementation of LesOdrRequest) -func (r *BloomRequest) GetCost(peer *peer) uint64 { - return peer.GetRequestCost(GetHelperTrieProofsMsg, len(r.SectionIndexList)) -} - -// CanSend tells if a certain peer is suitable for serving the given request -func (r *BloomRequest) CanSend(peer *peer) bool { - peer.lock.RLock() - defer peer.lock.RUnlock() - - if peer.version < lpv2 { - return false - } - return peer.headInfo.Number >= r.Config.BloomTrieConfirms && r.BloomTrieNum <= (peer.headInfo.Number-r.Config.BloomTrieConfirms)/r.Config.BloomTrieSize -} - -// Request sends an ODR request to the LES network (implementation of LesOdrRequest) -func (r *BloomRequest) Request(reqID uint64, peer *peer) error { - peer.Log().Debug("Requesting BloomBits", "bloomTrie", r.BloomTrieNum, "bitIdx", r.BitIdx, "sections", r.SectionIndexList) - reqs := make([]HelperTrieReq, len(r.SectionIndexList)) - - var encNumber [10]byte - binary.BigEndian.PutUint16(encNumber[:2], uint16(r.BitIdx)) - - for i, sectionIdx := range r.SectionIndexList { - binary.BigEndian.PutUint64(encNumber[2:], sectionIdx) - reqs[i] = HelperTrieReq{ - Type: htBloomBits, - TrieIdx: r.BloomTrieNum, - Key: common.CopyBytes(encNumber[:]), - } - } - return peer.RequestHelperTrieProofs(reqID, r.GetCost(peer), reqs) -} - -// Valid processes an ODR request reply message from the LES network -// returns true and stores results in memory if the message was a valid reply -// to the request (implementation of LesOdrRequest) -func (r *BloomRequest) Validate(db ethdb.Database, msg *Msg) error { - log.Debug("Validating BloomBits", "bloomTrie", r.BloomTrieNum, "bitIdx", r.BitIdx, "sections", r.SectionIndexList) - - // Ensure we have a correct message with a single proof element - if msg.MsgType != MsgHelperTrieProofs { - return errInvalidMessageType - } - resps := msg.Obj.(HelperTrieResps) - proofs := resps.Proofs - nodeSet := proofs.NodeSet() - reads := &readTraceDB{db: nodeSet} - - r.BloomBits = make([][]byte, len(r.SectionIndexList)) - - // Verify the proofs - var encNumber [10]byte - binary.BigEndian.PutUint16(encNumber[:2], uint16(r.BitIdx)) - - for i, idx := range r.SectionIndexList { - binary.BigEndian.PutUint64(encNumber[2:], idx) - value, _, err := trie.VerifyProof(r.BloomTrieRoot, encNumber[:], reads) - if err != nil { - return err - } - r.BloomBits[i] = value - } - - if len(reads.reads) != nodeSet.KeyCount() { - return errUselessNodes - } - r.Proofs = nodeSet - return nil -} - -// readTraceDB stores the keys of database reads. We use this to check that received node -// sets contain only the trie nodes necessary to make proofs pass. -type readTraceDB struct { - db ethdb.Reader - reads map[string]struct{} -} - -// Get returns a stored node -func (db *readTraceDB) Get(k []byte) ([]byte, error) { - if db.reads == nil { - db.reads = make(map[string]struct{}) - } - db.reads[string(k)] = struct{}{} - return db.db.Get(k) -} - -// Has returns true if the node set contains the given key -func (db *readTraceDB) Has(key []byte) (bool, error) { - _, err := db.Get(key) - return err == nil, nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/odr_test.go b/vendor/github.com/ethereum/go-ethereum/les/odr_test.go deleted file mode 100644 index bc587a18..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/odr_test.go +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "bytes" - "context" - "math/big" - "testing" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" -) - -type odrTestFn func(ctx context.Context, db ethdb.Database, config *params.ChainConfig, bc *core.BlockChain, lc *light.LightChain, bhash common.Hash) []byte - -func TestOdrGetBlockLes2(t *testing.T) { testOdr(t, 2, 1, odrGetBlock) } - -func odrGetBlock(ctx context.Context, db ethdb.Database, config *params.ChainConfig, bc *core.BlockChain, lc *light.LightChain, bhash common.Hash) []byte { - var block *types.Block - if bc != nil { - block = bc.GetBlockByHash(bhash) - } else { - block, _ = lc.GetBlockByHash(ctx, bhash) - } - if block == nil { - return nil - } - rlp, _ := rlp.EncodeToBytes(block) - return rlp -} - -func TestOdrGetReceiptsLes2(t *testing.T) { testOdr(t, 2, 1, odrGetReceipts) } - -func odrGetReceipts(ctx context.Context, db ethdb.Database, config *params.ChainConfig, bc *core.BlockChain, lc *light.LightChain, bhash common.Hash) []byte { - var receipts types.Receipts - if bc != nil { - if number := rawdb.ReadHeaderNumber(db, bhash); number != nil { - receipts = rawdb.ReadReceipts(db, bhash, *number) - } - } else { - if number := rawdb.ReadHeaderNumber(db, bhash); number != nil { - receipts, _ = light.GetBlockReceipts(ctx, lc.Odr(), bhash, *number) - } - } - if receipts == nil { - return nil - } - rlp, _ := rlp.EncodeToBytes(receipts) - return rlp -} - -func TestOdrAccountsLes2(t *testing.T) { testOdr(t, 2, 1, odrAccounts) } - -func odrAccounts(ctx context.Context, db ethdb.Database, config *params.ChainConfig, bc *core.BlockChain, lc *light.LightChain, bhash common.Hash) []byte { - dummyAddr := common.HexToAddress("1234567812345678123456781234567812345678") - acc := []common.Address{testBankAddress, acc1Addr, acc2Addr, dummyAddr} - - var ( - res []byte - st *state.StateDB - err error - ) - for _, addr := range acc { - if bc != nil { - header := bc.GetHeaderByHash(bhash) - st, err = state.New(header.Root, state.NewDatabase(db)) - } else { - header := lc.GetHeaderByHash(bhash) - st = light.NewState(ctx, header, lc.Odr()) - } - if err == nil { - bal := st.GetBalance(addr) - rlp, _ := rlp.EncodeToBytes(bal) - res = append(res, rlp...) - } - } - return res -} - -func TestOdrContractCallLes2(t *testing.T) { testOdr(t, 2, 2, odrContractCall) } - -type callmsg struct { - types.Message -} - -func (callmsg) CheckNonce() bool { return false } - -func odrContractCall(ctx context.Context, db ethdb.Database, config *params.ChainConfig, bc *core.BlockChain, lc *light.LightChain, bhash common.Hash) []byte { - data := common.Hex2Bytes("60CD26850000000000000000000000000000000000000000000000000000000000000000") - - var res []byte - for i := 0; i < 3; i++ { - data[35] = byte(i) - if bc != nil { - header := bc.GetHeaderByHash(bhash) - statedb, err := state.New(header.Root, state.NewDatabase(db)) - - if err == nil { - from := statedb.GetOrNewStateObject(testBankAddress) - from.SetBalance(math.MaxBig256) - - msg := callmsg{types.NewMessage(from.Address(), &testContractAddr, 0, new(big.Int), 100000, new(big.Int), data, false)} - - context := core.NewEVMContext(msg, header, bc, nil) - vmenv := vm.NewEVM(context, statedb, config, vm.Config{}) - - //vmenv := core.NewEnv(statedb, config, bc, msg, header, vm.Config{}) - gp := new(core.GasPool).AddGas(math.MaxUint64) - ret, _, _, _ := core.ApplyMessage(vmenv, msg, gp) - res = append(res, ret...) - } - } else { - header := lc.GetHeaderByHash(bhash) - state := light.NewState(ctx, header, lc.Odr()) - state.SetBalance(testBankAddress, math.MaxBig256) - msg := callmsg{types.NewMessage(testBankAddress, &testContractAddr, 0, new(big.Int), 100000, new(big.Int), data, false)} - context := core.NewEVMContext(msg, header, lc, nil) - vmenv := vm.NewEVM(context, state, config, vm.Config{}) - gp := new(core.GasPool).AddGas(math.MaxUint64) - ret, _, _, _ := core.ApplyMessage(vmenv, msg, gp) - if state.Error() == nil { - res = append(res, ret...) - } - } - } - return res -} - -// testOdr tests odr requests whose validation guaranteed by block headers. -func testOdr(t *testing.T, protocol int, expFail uint64, fn odrTestFn) { - // Assemble the test environment - server, client, tearDown := newClientServerEnv(t, 4, protocol, nil, true) - defer tearDown() - client.pm.synchronise(client.rPeer) - - test := func(expFail uint64) { - for i := uint64(0); i <= server.pm.blockchain.CurrentHeader().Number.Uint64(); i++ { - bhash := rawdb.ReadCanonicalHash(server.db, i) - b1 := fn(light.NoOdr, server.db, server.pm.chainConfig, server.pm.blockchain.(*core.BlockChain), nil, bhash) - - ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond) - defer cancel() - b2 := fn(ctx, client.db, client.pm.chainConfig, nil, client.pm.blockchain.(*light.LightChain), bhash) - - eq := bytes.Equal(b1, b2) - exp := i < expFail - if exp && !eq { - t.Errorf("odr mismatch") - } - if !exp && eq { - t.Errorf("unexpected odr match") - } - } - } - // temporarily remove peer to test odr fails - // expect retrievals to fail (except genesis block) without a les peer - client.peers.Unregister(client.rPeer.id) - time.Sleep(time.Millisecond * 10) // ensure that all peerSetNotify callbacks are executed - test(expFail) - // expect all retrievals to pass - client.peers.Register(client.rPeer) - time.Sleep(time.Millisecond * 10) // ensure that all peerSetNotify callbacks are executed - client.peers.lock.Lock() - client.rPeer.hasBlock = func(common.Hash, uint64, bool) bool { return true } - client.peers.lock.Unlock() - test(5) - // still expect all retrievals to pass, now data should be cached locally - client.peers.Unregister(client.rPeer.id) - time.Sleep(time.Millisecond * 10) // ensure that all peerSetNotify callbacks are executed - test(5) -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/peer.go b/vendor/github.com/ethereum/go-ethereum/les/peer.go deleted file mode 100644 index bf3f0f76..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/peer.go +++ /dev/null @@ -1,760 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "errors" - "fmt" - "math/big" - "sync" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/mclock" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/les/flowcontrol" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/rlp" -) - -var ( - errClosed = errors.New("peer set is closed") - errAlreadyRegistered = errors.New("peer is already registered") - errNotRegistered = errors.New("peer is not registered") -) - -const maxResponseErrors = 50 // number of invalid responses tolerated (makes the protocol less brittle but still avoids spam) - -// capacity limitation for parameter updates -const ( - allowedUpdateBytes = 100000 // initial/maximum allowed update size - allowedUpdateRate = time.Millisecond * 10 // time constant for recharging one byte of allowance -) - -// if the total encoded size of a sent transaction batch is over txSizeCostLimit -// per transaction then the request cost is calculated as proportional to the -// encoded size instead of the transaction count -const txSizeCostLimit = 0x10000 - -const ( - announceTypeNone = iota - announceTypeSimple - announceTypeSigned -) - -type peer struct { - *p2p.Peer - - rw p2p.MsgReadWriter - - version int // Protocol version negotiated - network uint64 // Network ID being on - - announceType uint64 - - id string - - headInfo *announceData - lock sync.RWMutex - - sendQueue *execQueue - - errCh chan error - // responseLock ensures that responses are queued in the same order as - // RequestProcessed is called - responseLock sync.Mutex - responseCount uint64 - - poolEntry *poolEntry - hasBlock func(common.Hash, uint64, bool) bool - responseErrors int - updateCounter uint64 - updateTime mclock.AbsTime - - fcClient *flowcontrol.ClientNode // nil if the peer is server only - fcServer *flowcontrol.ServerNode // nil if the peer is client only - fcParams flowcontrol.ServerParams - fcCosts requestCostTable - - isTrusted bool - isOnlyAnnounce bool -} - -func newPeer(version int, network uint64, isTrusted bool, p *p2p.Peer, rw p2p.MsgReadWriter) *peer { - return &peer{ - Peer: p, - rw: rw, - version: version, - network: network, - id: fmt.Sprintf("%x", p.ID().Bytes()), - isTrusted: isTrusted, - errCh: make(chan error, 1), - } -} - -// rejectUpdate returns true if a parameter update has to be rejected because -// the size and/or rate of updates exceed the capacity limitation -func (p *peer) rejectUpdate(size uint64) bool { - now := mclock.Now() - if p.updateCounter == 0 { - p.updateTime = now - } else { - dt := now - p.updateTime - r := uint64(dt / mclock.AbsTime(allowedUpdateRate)) - if p.updateCounter > r { - p.updateCounter -= r - p.updateTime += mclock.AbsTime(allowedUpdateRate * time.Duration(r)) - } else { - p.updateCounter = 0 - p.updateTime = now - } - } - p.updateCounter += size - return p.updateCounter > allowedUpdateBytes -} - -func (p *peer) canQueue() bool { - return p.sendQueue.canQueue() -} - -func (p *peer) queueSend(f func()) { - p.sendQueue.queue(f) -} - -// Info gathers and returns a collection of metadata known about a peer. -func (p *peer) Info() *eth.PeerInfo { - return ð.PeerInfo{ - Version: p.version, - Difficulty: p.Td(), - Head: fmt.Sprintf("%x", p.Head()), - } -} - -// Head retrieves a copy of the current head (most recent) hash of the peer. -func (p *peer) Head() (hash common.Hash) { - p.lock.RLock() - defer p.lock.RUnlock() - - copy(hash[:], p.headInfo.Hash[:]) - return hash -} - -func (p *peer) HeadAndTd() (hash common.Hash, td *big.Int) { - p.lock.RLock() - defer p.lock.RUnlock() - - copy(hash[:], p.headInfo.Hash[:]) - return hash, p.headInfo.Td -} - -func (p *peer) headBlockInfo() blockInfo { - p.lock.RLock() - defer p.lock.RUnlock() - - return blockInfo{Hash: p.headInfo.Hash, Number: p.headInfo.Number, Td: p.headInfo.Td} -} - -// Td retrieves the current total difficulty of a peer. -func (p *peer) Td() *big.Int { - p.lock.RLock() - defer p.lock.RUnlock() - - return new(big.Int).Set(p.headInfo.Td) -} - -// waitBefore implements distPeer interface -func (p *peer) waitBefore(maxCost uint64) (time.Duration, float64) { - return p.fcServer.CanSend(maxCost) -} - -// updateCapacity updates the request serving capacity assigned to a given client -// and also sends an announcement about the updated flow control parameters -func (p *peer) updateCapacity(cap uint64) { - p.responseLock.Lock() - defer p.responseLock.Unlock() - - p.fcParams = flowcontrol.ServerParams{MinRecharge: cap, BufLimit: cap * bufLimitRatio} - p.fcClient.UpdateParams(p.fcParams) - var kvList keyValueList - kvList = kvList.add("flowControl/MRR", cap) - kvList = kvList.add("flowControl/BL", cap*bufLimitRatio) - p.queueSend(func() { p.SendAnnounce(announceData{Update: kvList}) }) -} - -func sendRequest(w p2p.MsgWriter, msgcode, reqID, cost uint64, data interface{}) error { - type req struct { - ReqID uint64 - Data interface{} - } - return p2p.Send(w, msgcode, req{reqID, data}) -} - -// reply struct represents a reply with the actual data already RLP encoded and -// only the bv (buffer value) missing. This allows the serving mechanism to -// calculate the bv value which depends on the data size before sending the reply. -type reply struct { - w p2p.MsgWriter - msgcode, reqID uint64 - data rlp.RawValue -} - -// send sends the reply with the calculated buffer value -func (r *reply) send(bv uint64) error { - type resp struct { - ReqID, BV uint64 - Data rlp.RawValue - } - return p2p.Send(r.w, r.msgcode, resp{r.reqID, bv, r.data}) -} - -// size returns the RLP encoded size of the message data -func (r *reply) size() uint32 { - return uint32(len(r.data)) -} - -func (p *peer) GetRequestCost(msgcode uint64, amount int) uint64 { - p.lock.RLock() - defer p.lock.RUnlock() - - cost := p.fcCosts[msgcode].baseCost + p.fcCosts[msgcode].reqCost*uint64(amount) - if cost > p.fcParams.BufLimit { - cost = p.fcParams.BufLimit - } - return cost -} - -func (p *peer) GetTxRelayCost(amount, size int) uint64 { - p.lock.RLock() - defer p.lock.RUnlock() - - cost := p.fcCosts[SendTxV2Msg].baseCost + p.fcCosts[SendTxV2Msg].reqCost*uint64(amount) - sizeCost := p.fcCosts[SendTxV2Msg].baseCost + p.fcCosts[SendTxV2Msg].reqCost*uint64(size)/txSizeCostLimit - if sizeCost > cost { - cost = sizeCost - } - - if cost > p.fcParams.BufLimit { - cost = p.fcParams.BufLimit - } - return cost -} - -// HasBlock checks if the peer has a given block -func (p *peer) HasBlock(hash common.Hash, number uint64, hasState bool) bool { - p.lock.RLock() - hasBlock := p.hasBlock - p.lock.RUnlock() - return hasBlock != nil && hasBlock(hash, number, hasState) -} - -// SendAnnounce announces the availability of a number of blocks through -// a hash notification. -func (p *peer) SendAnnounce(request announceData) error { - return p2p.Send(p.rw, AnnounceMsg, request) -} - -// ReplyBlockHeaders creates a reply with a batch of block headers -func (p *peer) ReplyBlockHeaders(reqID uint64, headers []*types.Header) *reply { - data, _ := rlp.EncodeToBytes(headers) - return &reply{p.rw, BlockHeadersMsg, reqID, data} -} - -// ReplyBlockBodiesRLP creates a reply with a batch of block contents from -// an already RLP encoded format. -func (p *peer) ReplyBlockBodiesRLP(reqID uint64, bodies []rlp.RawValue) *reply { - data, _ := rlp.EncodeToBytes(bodies) - return &reply{p.rw, BlockBodiesMsg, reqID, data} -} - -// ReplyCode creates a reply with a batch of arbitrary internal data, corresponding to the -// hashes requested. -func (p *peer) ReplyCode(reqID uint64, codes [][]byte) *reply { - data, _ := rlp.EncodeToBytes(codes) - return &reply{p.rw, CodeMsg, reqID, data} -} - -// ReplyReceiptsRLP creates a reply with a batch of transaction receipts, corresponding to the -// ones requested from an already RLP encoded format. -func (p *peer) ReplyReceiptsRLP(reqID uint64, receipts []rlp.RawValue) *reply { - data, _ := rlp.EncodeToBytes(receipts) - return &reply{p.rw, ReceiptsMsg, reqID, data} -} - -// ReplyProofsV2 creates a reply with a batch of merkle proofs, corresponding to the ones requested. -func (p *peer) ReplyProofsV2(reqID uint64, proofs light.NodeList) *reply { - data, _ := rlp.EncodeToBytes(proofs) - return &reply{p.rw, ProofsV2Msg, reqID, data} -} - -// ReplyHelperTrieProofs creates a reply with a batch of HelperTrie proofs, corresponding to the ones requested. -func (p *peer) ReplyHelperTrieProofs(reqID uint64, resp HelperTrieResps) *reply { - data, _ := rlp.EncodeToBytes(resp) - return &reply{p.rw, HelperTrieProofsMsg, reqID, data} -} - -// ReplyTxStatus creates a reply with a batch of transaction status records, corresponding to the ones requested. -func (p *peer) ReplyTxStatus(reqID uint64, stats []txStatus) *reply { - data, _ := rlp.EncodeToBytes(stats) - return &reply{p.rw, TxStatusMsg, reqID, data} -} - -// RequestHeadersByHash fetches a batch of blocks' headers corresponding to the -// specified header query, based on the hash of an origin block. -func (p *peer) RequestHeadersByHash(reqID, cost uint64, origin common.Hash, amount int, skip int, reverse bool) error { - p.Log().Debug("Fetching batch of headers", "count", amount, "fromhash", origin, "skip", skip, "reverse", reverse) - return sendRequest(p.rw, GetBlockHeadersMsg, reqID, cost, &getBlockHeadersData{Origin: hashOrNumber{Hash: origin}, Amount: uint64(amount), Skip: uint64(skip), Reverse: reverse}) -} - -// RequestHeadersByNumber fetches a batch of blocks' headers corresponding to the -// specified header query, based on the number of an origin block. -func (p *peer) RequestHeadersByNumber(reqID, cost, origin uint64, amount int, skip int, reverse bool) error { - p.Log().Debug("Fetching batch of headers", "count", amount, "fromnum", origin, "skip", skip, "reverse", reverse) - return sendRequest(p.rw, GetBlockHeadersMsg, reqID, cost, &getBlockHeadersData{Origin: hashOrNumber{Number: origin}, Amount: uint64(amount), Skip: uint64(skip), Reverse: reverse}) -} - -// RequestBodies fetches a batch of blocks' bodies corresponding to the hashes -// specified. -func (p *peer) RequestBodies(reqID, cost uint64, hashes []common.Hash) error { - p.Log().Debug("Fetching batch of block bodies", "count", len(hashes)) - return sendRequest(p.rw, GetBlockBodiesMsg, reqID, cost, hashes) -} - -// RequestCode fetches a batch of arbitrary data from a node's known state -// data, corresponding to the specified hashes. -func (p *peer) RequestCode(reqID, cost uint64, reqs []CodeReq) error { - p.Log().Debug("Fetching batch of codes", "count", len(reqs)) - return sendRequest(p.rw, GetCodeMsg, reqID, cost, reqs) -} - -// RequestReceipts fetches a batch of transaction receipts from a remote node. -func (p *peer) RequestReceipts(reqID, cost uint64, hashes []common.Hash) error { - p.Log().Debug("Fetching batch of receipts", "count", len(hashes)) - return sendRequest(p.rw, GetReceiptsMsg, reqID, cost, hashes) -} - -// RequestProofs fetches a batch of merkle proofs from a remote node. -func (p *peer) RequestProofs(reqID, cost uint64, reqs []ProofReq) error { - p.Log().Debug("Fetching batch of proofs", "count", len(reqs)) - return sendRequest(p.rw, GetProofsV2Msg, reqID, cost, reqs) -} - -// RequestHelperTrieProofs fetches a batch of HelperTrie merkle proofs from a remote node. -func (p *peer) RequestHelperTrieProofs(reqID, cost uint64, reqs []HelperTrieReq) error { - p.Log().Debug("Fetching batch of HelperTrie proofs", "count", len(reqs)) - return sendRequest(p.rw, GetHelperTrieProofsMsg, reqID, cost, reqs) -} - -// RequestTxStatus fetches a batch of transaction status records from a remote node. -func (p *peer) RequestTxStatus(reqID, cost uint64, txHashes []common.Hash) error { - p.Log().Debug("Requesting transaction status", "count", len(txHashes)) - return sendRequest(p.rw, GetTxStatusMsg, reqID, cost, txHashes) -} - -// SendTxStatus creates a reply with a batch of transactions to be added to the remote transaction pool. -func (p *peer) SendTxs(reqID, cost uint64, txs rlp.RawValue) error { - p.Log().Debug("Sending batch of transactions", "size", len(txs)) - return sendRequest(p.rw, SendTxV2Msg, reqID, cost, txs) -} - -type keyValueEntry struct { - Key string - Value rlp.RawValue -} -type keyValueList []keyValueEntry -type keyValueMap map[string]rlp.RawValue - -func (l keyValueList) add(key string, val interface{}) keyValueList { - var entry keyValueEntry - entry.Key = key - if val == nil { - val = uint64(0) - } - enc, err := rlp.EncodeToBytes(val) - if err == nil { - entry.Value = enc - } - return append(l, entry) -} - -func (l keyValueList) decode() (keyValueMap, uint64) { - m := make(keyValueMap) - var size uint64 - for _, entry := range l { - m[entry.Key] = entry.Value - size += uint64(len(entry.Key)) + uint64(len(entry.Value)) + 8 - } - return m, size -} - -func (m keyValueMap) get(key string, val interface{}) error { - enc, ok := m[key] - if !ok { - return errResp(ErrMissingKey, "%s", key) - } - if val == nil { - return nil - } - return rlp.DecodeBytes(enc, val) -} - -func (p *peer) sendReceiveHandshake(sendList keyValueList) (keyValueList, error) { - // Send out own handshake in a new thread - errc := make(chan error, 1) - go func() { - errc <- p2p.Send(p.rw, StatusMsg, sendList) - }() - // In the mean time retrieve the remote status message - msg, err := p.rw.ReadMsg() - if err != nil { - return nil, err - } - if msg.Code != StatusMsg { - return nil, errResp(ErrNoStatusMsg, "first msg has code %x (!= %x)", msg.Code, StatusMsg) - } - if msg.Size > ProtocolMaxMsgSize { - return nil, errResp(ErrMsgTooLarge, "%v > %v", msg.Size, ProtocolMaxMsgSize) - } - // Decode the handshake - var recvList keyValueList - if err := msg.Decode(&recvList); err != nil { - return nil, errResp(ErrDecode, "msg %v: %v", msg, err) - } - if err := <-errc; err != nil { - return nil, err - } - return recvList, nil -} - -// Handshake executes the les protocol handshake, negotiating version number, -// network IDs, difficulties, head and genesis blocks. -func (p *peer) Handshake(td *big.Int, head common.Hash, headNum uint64, genesis common.Hash, server *LesServer) error { - p.lock.Lock() - defer p.lock.Unlock() - - var send keyValueList - send = send.add("protocolVersion", uint64(p.version)) - send = send.add("networkId", p.network) - send = send.add("headTd", td) - send = send.add("headHash", head) - send = send.add("headNum", headNum) - send = send.add("genesisHash", genesis) - if server != nil { - if !server.onlyAnnounce { - //only announce server. It sends only announse requests - send = send.add("serveHeaders", nil) - send = send.add("serveChainSince", uint64(0)) - send = send.add("serveStateSince", uint64(0)) - send = send.add("txRelay", nil) - } - send = send.add("flowControl/BL", server.defParams.BufLimit) - send = send.add("flowControl/MRR", server.defParams.MinRecharge) - var costList RequestCostList - if server.costTracker != nil { - costList = server.costTracker.makeCostList() - } else { - costList = testCostList() - } - send = send.add("flowControl/MRC", costList) - p.fcCosts = costList.decode() - p.fcParams = server.defParams - } else { - //on client node - p.announceType = announceTypeSimple - if p.isTrusted { - p.announceType = announceTypeSigned - } - send = send.add("announceType", p.announceType) - } - - recvList, err := p.sendReceiveHandshake(send) - if err != nil { - return err - } - recv, size := recvList.decode() - if p.rejectUpdate(size) { - return errResp(ErrRequestRejected, "") - } - - var rGenesis, rHash common.Hash - var rVersion, rNetwork, rNum uint64 - var rTd *big.Int - - if err := recv.get("protocolVersion", &rVersion); err != nil { - return err - } - if err := recv.get("networkId", &rNetwork); err != nil { - return err - } - if err := recv.get("headTd", &rTd); err != nil { - return err - } - if err := recv.get("headHash", &rHash); err != nil { - return err - } - if err := recv.get("headNum", &rNum); err != nil { - return err - } - if err := recv.get("genesisHash", &rGenesis); err != nil { - return err - } - - if rGenesis != genesis { - return errResp(ErrGenesisBlockMismatch, "%x (!= %x)", rGenesis[:8], genesis[:8]) - } - if rNetwork != p.network { - return errResp(ErrNetworkIdMismatch, "%d (!= %d)", rNetwork, p.network) - } - if int(rVersion) != p.version { - return errResp(ErrProtocolVersionMismatch, "%d (!= %d)", rVersion, p.version) - } - - if server != nil { - // until we have a proper peer connectivity API, allow LES connection to other servers - /*if recv.get("serveStateSince", nil) == nil { - return errResp(ErrUselessPeer, "wanted client, got server") - }*/ - if recv.get("announceType", &p.announceType) != nil { - //set default announceType on server side - p.announceType = announceTypeSimple - } - p.fcClient = flowcontrol.NewClientNode(server.fcManager, server.defParams) - } else { - //mark OnlyAnnounce server if "serveHeaders", "serveChainSince", "serveStateSince" or "txRelay" fields don't exist - if recv.get("serveChainSince", nil) != nil { - p.isOnlyAnnounce = true - } - if recv.get("serveStateSince", nil) != nil { - p.isOnlyAnnounce = true - } - if recv.get("txRelay", nil) != nil { - p.isOnlyAnnounce = true - } - - if p.isOnlyAnnounce && !p.isTrusted { - return errResp(ErrUselessPeer, "peer cannot serve requests") - } - - var params flowcontrol.ServerParams - if err := recv.get("flowControl/BL", ¶ms.BufLimit); err != nil { - return err - } - if err := recv.get("flowControl/MRR", ¶ms.MinRecharge); err != nil { - return err - } - var MRC RequestCostList - if err := recv.get("flowControl/MRC", &MRC); err != nil { - return err - } - p.fcParams = params - p.fcServer = flowcontrol.NewServerNode(params, &mclock.System{}) - p.fcCosts = MRC.decode() - } - p.headInfo = &announceData{Td: rTd, Hash: rHash, Number: rNum} - return nil -} - -// updateFlowControl updates the flow control parameters belonging to the server -// node if the announced key/value set contains relevant fields -func (p *peer) updateFlowControl(update keyValueMap) { - if p.fcServer == nil { - return - } - params := p.fcParams - updateParams := false - if update.get("flowControl/BL", ¶ms.BufLimit) == nil { - updateParams = true - } - if update.get("flowControl/MRR", ¶ms.MinRecharge) == nil { - updateParams = true - } - if updateParams { - p.fcParams = params - p.fcServer.UpdateParams(params) - } - var MRC RequestCostList - if update.get("flowControl/MRC", &MRC) == nil { - p.fcCosts = MRC.decode() - } -} - -// String implements fmt.Stringer. -func (p *peer) String() string { - return fmt.Sprintf("Peer %s [%s]", p.id, - fmt.Sprintf("les/%d", p.version), - ) -} - -// peerSetNotify is a callback interface to notify services about added or -// removed peers -type peerSetNotify interface { - registerPeer(*peer) - unregisterPeer(*peer) -} - -// peerSet represents the collection of active peers currently participating in -// the Light Ethereum sub-protocol. -type peerSet struct { - peers map[string]*peer - lock sync.RWMutex - notifyList []peerSetNotify - closed bool -} - -// newPeerSet creates a new peer set to track the active participants. -func newPeerSet() *peerSet { - return &peerSet{ - peers: make(map[string]*peer), - } -} - -// notify adds a service to be notified about added or removed peers -func (ps *peerSet) notify(n peerSetNotify) { - ps.lock.Lock() - ps.notifyList = append(ps.notifyList, n) - peers := make([]*peer, 0, len(ps.peers)) - for _, p := range ps.peers { - peers = append(peers, p) - } - ps.lock.Unlock() - - for _, p := range peers { - n.registerPeer(p) - } -} - -// Register injects a new peer into the working set, or returns an error if the -// peer is already known. -func (ps *peerSet) Register(p *peer) error { - ps.lock.Lock() - if ps.closed { - ps.lock.Unlock() - return errClosed - } - if _, ok := ps.peers[p.id]; ok { - ps.lock.Unlock() - return errAlreadyRegistered - } - ps.peers[p.id] = p - p.sendQueue = newExecQueue(100) - peers := make([]peerSetNotify, len(ps.notifyList)) - copy(peers, ps.notifyList) - ps.lock.Unlock() - - for _, n := range peers { - n.registerPeer(p) - } - return nil -} - -// Unregister removes a remote peer from the active set, disabling any further -// actions to/from that particular entity. It also initiates disconnection at the networking layer. -func (ps *peerSet) Unregister(id string) error { - ps.lock.Lock() - if p, ok := ps.peers[id]; !ok { - ps.lock.Unlock() - return errNotRegistered - } else { - delete(ps.peers, id) - peers := make([]peerSetNotify, len(ps.notifyList)) - copy(peers, ps.notifyList) - ps.lock.Unlock() - - for _, n := range peers { - n.unregisterPeer(p) - } - - p.sendQueue.quit() - p.Peer.Disconnect(p2p.DiscUselessPeer) - - return nil - } -} - -// AllPeerIDs returns a list of all registered peer IDs -func (ps *peerSet) AllPeerIDs() []string { - ps.lock.RLock() - defer ps.lock.RUnlock() - - res := make([]string, len(ps.peers)) - idx := 0 - for id := range ps.peers { - res[idx] = id - idx++ - } - return res -} - -// Peer retrieves the registered peer with the given id. -func (ps *peerSet) Peer(id string) *peer { - ps.lock.RLock() - defer ps.lock.RUnlock() - - return ps.peers[id] -} - -// Len returns if the current number of peers in the set. -func (ps *peerSet) Len() int { - ps.lock.RLock() - defer ps.lock.RUnlock() - - return len(ps.peers) -} - -// BestPeer retrieves the known peer with the currently highest total difficulty. -func (ps *peerSet) BestPeer() *peer { - ps.lock.RLock() - defer ps.lock.RUnlock() - - var ( - bestPeer *peer - bestTd *big.Int - ) - for _, p := range ps.peers { - if td := p.Td(); bestPeer == nil || td.Cmp(bestTd) > 0 { - bestPeer, bestTd = p, td - } - } - return bestPeer -} - -// AllPeers returns all peers in a list -func (ps *peerSet) AllPeers() []*peer { - ps.lock.RLock() - defer ps.lock.RUnlock() - - list := make([]*peer, len(ps.peers)) - i := 0 - for _, peer := range ps.peers { - list[i] = peer - i++ - } - return list -} - -// Close disconnects all peers. -// No new peers can be registered after Close has returned. -func (ps *peerSet) Close() { - ps.lock.Lock() - defer ps.lock.Unlock() - - for _, p := range ps.peers { - p.Disconnect(p2p.DiscQuitting) - } - ps.closed = true -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/protocol.go b/vendor/github.com/ethereum/go-ethereum/les/protocol.go deleted file mode 100644 index 86e450d0..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/protocol.go +++ /dev/null @@ -1,235 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "crypto/ecdsa" - "errors" - "fmt" - "io" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/rlp" -) - -// Constants to match up protocol versions and messages -const ( - lpv2 = 2 -) - -// Supported versions of the les protocol (first is primary) -var ( - ClientProtocolVersions = []uint{lpv2} - ServerProtocolVersions = []uint{lpv2} - AdvertiseProtocolVersions = []uint{lpv2} // clients are searching for the first advertised protocol in the list -) - -// Number of implemented message corresponding to different protocol versions. -var ProtocolLengths = map[uint]uint64{lpv2: 22} - -const ( - NetworkId = 1 - ProtocolMaxMsgSize = 10 * 1024 * 1024 // Maximum cap on the size of a protocol message -) - -// les protocol message codes -const ( - // Protocol messages inherited from LPV1 - StatusMsg = 0x00 - AnnounceMsg = 0x01 - GetBlockHeadersMsg = 0x02 - BlockHeadersMsg = 0x03 - GetBlockBodiesMsg = 0x04 - BlockBodiesMsg = 0x05 - GetReceiptsMsg = 0x06 - ReceiptsMsg = 0x07 - GetCodeMsg = 0x0a - CodeMsg = 0x0b - // Protocol messages introduced in LPV2 - GetProofsV2Msg = 0x0f - ProofsV2Msg = 0x10 - GetHelperTrieProofsMsg = 0x11 - HelperTrieProofsMsg = 0x12 - SendTxV2Msg = 0x13 - GetTxStatusMsg = 0x14 - TxStatusMsg = 0x15 -) - -type requestInfo struct { - name string - maxCount uint64 -} - -var requests = map[uint64]requestInfo{ - GetBlockHeadersMsg: {"GetBlockHeaders", MaxHeaderFetch}, - GetBlockBodiesMsg: {"GetBlockBodies", MaxBodyFetch}, - GetReceiptsMsg: {"GetReceipts", MaxReceiptFetch}, - GetCodeMsg: {"GetCode", MaxCodeFetch}, - GetProofsV2Msg: {"GetProofsV2", MaxProofsFetch}, - GetHelperTrieProofsMsg: {"GetHelperTrieProofs", MaxHelperTrieProofsFetch}, - SendTxV2Msg: {"SendTxV2", MaxTxSend}, - GetTxStatusMsg: {"GetTxStatus", MaxTxStatus}, -} - -type errCode int - -const ( - ErrMsgTooLarge = iota - ErrDecode - ErrInvalidMsgCode - ErrProtocolVersionMismatch - ErrNetworkIdMismatch - ErrGenesisBlockMismatch - ErrNoStatusMsg - ErrExtraStatusMsg - ErrSuspendedPeer - ErrUselessPeer - ErrRequestRejected - ErrUnexpectedResponse - ErrInvalidResponse - ErrTooManyTimeouts - ErrMissingKey -) - -func (e errCode) String() string { - return errorToString[int(e)] -} - -// XXX change once legacy code is out -var errorToString = map[int]string{ - ErrMsgTooLarge: "Message too long", - ErrDecode: "Invalid message", - ErrInvalidMsgCode: "Invalid message code", - ErrProtocolVersionMismatch: "Protocol version mismatch", - ErrNetworkIdMismatch: "NetworkId mismatch", - ErrGenesisBlockMismatch: "Genesis block mismatch", - ErrNoStatusMsg: "No status message", - ErrExtraStatusMsg: "Extra status message", - ErrSuspendedPeer: "Suspended peer", - ErrRequestRejected: "Request rejected", - ErrUnexpectedResponse: "Unexpected response", - ErrInvalidResponse: "Invalid response", - ErrTooManyTimeouts: "Too many request timeouts", - ErrMissingKey: "Key missing from list", -} - -type announceBlock struct { - Hash common.Hash // Hash of one particular block being announced - Number uint64 // Number of one particular block being announced - Td *big.Int // Total difficulty of one particular block being announced -} - -// announceData is the network packet for the block announcements. -type announceData struct { - Hash common.Hash // Hash of one particular block being announced - Number uint64 // Number of one particular block being announced - Td *big.Int // Total difficulty of one particular block being announced - ReorgDepth uint64 - Update keyValueList -} - -// sign adds a signature to the block announcement by the given privKey -func (a *announceData) sign(privKey *ecdsa.PrivateKey) { - rlp, _ := rlp.EncodeToBytes(announceBlock{a.Hash, a.Number, a.Td}) - sig, _ := crypto.Sign(crypto.Keccak256(rlp), privKey) - a.Update = a.Update.add("sign", sig) -} - -// checkSignature verifies if the block announcement has a valid signature by the given pubKey -func (a *announceData) checkSignature(id enode.ID, update keyValueMap) error { - var sig []byte - if err := update.get("sign", &sig); err != nil { - return err - } - rlp, _ := rlp.EncodeToBytes(announceBlock{a.Hash, a.Number, a.Td}) - recPubkey, err := crypto.SigToPub(crypto.Keccak256(rlp), sig) - if err != nil { - return err - } - if id == enode.PubkeyToIDV4(recPubkey) { - return nil - } - return errors.New("wrong signature") -} - -type blockInfo struct { - Hash common.Hash // Hash of one particular block being announced - Number uint64 // Number of one particular block being announced - Td *big.Int // Total difficulty of one particular block being announced -} - -// getBlockHeadersData represents a block header query. -type getBlockHeadersData struct { - Origin hashOrNumber // Block from which to retrieve headers - Amount uint64 // Maximum number of headers to retrieve - Skip uint64 // Blocks to skip between consecutive headers - Reverse bool // Query direction (false = rising towards latest, true = falling towards genesis) -} - -// hashOrNumber is a combined field for specifying an origin block. -type hashOrNumber struct { - Hash common.Hash // Block hash from which to retrieve headers (excludes Number) - Number uint64 // Block hash from which to retrieve headers (excludes Hash) -} - -// EncodeRLP is a specialized encoder for hashOrNumber to encode only one of the -// two contained union fields. -func (hn *hashOrNumber) EncodeRLP(w io.Writer) error { - if hn.Hash == (common.Hash{}) { - return rlp.Encode(w, hn.Number) - } - if hn.Number != 0 { - return fmt.Errorf("both origin hash (%x) and number (%d) provided", hn.Hash, hn.Number) - } - return rlp.Encode(w, hn.Hash) -} - -// DecodeRLP is a specialized decoder for hashOrNumber to decode the contents -// into either a block hash or a block number. -func (hn *hashOrNumber) DecodeRLP(s *rlp.Stream) error { - _, size, _ := s.Kind() - origin, err := s.Raw() - if err == nil { - switch { - case size == 32: - err = rlp.DecodeBytes(origin, &hn.Hash) - case size <= 8: - err = rlp.DecodeBytes(origin, &hn.Number) - default: - err = fmt.Errorf("invalid input size %d for origin", size) - } - } - return err -} - -// CodeData is the network response packet for a node data retrieval. -type CodeData []struct { - Value []byte -} - -type proofsData [][]rlp.RawValue - -type txStatus struct { - Status core.TxStatus - Lookup *rawdb.LegacyTxLookupEntry `rlp:"nil"` - Error string -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/request_test.go b/vendor/github.com/ethereum/go-ethereum/les/request_test.go deleted file mode 100644 index e0d00d18..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/request_test.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "context" - "testing" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/light" -) - -var testBankSecureTrieKey = secAddr(testBankAddress) - -func secAddr(addr common.Address) []byte { - return crypto.Keccak256(addr[:]) -} - -type accessTestFn func(db ethdb.Database, bhash common.Hash, number uint64) light.OdrRequest - -func TestBlockAccessLes2(t *testing.T) { testAccess(t, 2, tfBlockAccess) } - -func tfBlockAccess(db ethdb.Database, bhash common.Hash, number uint64) light.OdrRequest { - return &light.BlockRequest{Hash: bhash, Number: number} -} - -func TestReceiptsAccessLes2(t *testing.T) { testAccess(t, 2, tfReceiptsAccess) } - -func tfReceiptsAccess(db ethdb.Database, bhash common.Hash, number uint64) light.OdrRequest { - return &light.ReceiptsRequest{Hash: bhash, Number: number} -} - -func TestTrieEntryAccessLes2(t *testing.T) { testAccess(t, 2, tfTrieEntryAccess) } - -func tfTrieEntryAccess(db ethdb.Database, bhash common.Hash, number uint64) light.OdrRequest { - if number := rawdb.ReadHeaderNumber(db, bhash); number != nil { - return &light.TrieRequest{Id: light.StateTrieID(rawdb.ReadHeader(db, bhash, *number)), Key: testBankSecureTrieKey} - } - return nil -} - -func TestCodeAccessLes2(t *testing.T) { testAccess(t, 2, tfCodeAccess) } - -func tfCodeAccess(db ethdb.Database, bhash common.Hash, num uint64) light.OdrRequest { - number := rawdb.ReadHeaderNumber(db, bhash) - if number != nil { - return nil - } - header := rawdb.ReadHeader(db, bhash, *number) - if header.Number.Uint64() < testContractDeployed { - return nil - } - sti := light.StateTrieID(header) - ci := light.StorageTrieID(sti, crypto.Keccak256Hash(testContractAddr[:]), common.Hash{}) - return &light.CodeRequest{Id: ci, Hash: crypto.Keccak256Hash(testContractCodeDeployed)} -} - -func testAccess(t *testing.T, protocol int, fn accessTestFn) { - // Assemble the test environment - server, client, tearDown := newClientServerEnv(t, 4, protocol, nil, true) - defer tearDown() - client.pm.synchronise(client.rPeer) - - test := func(expFail uint64) { - for i := uint64(0); i <= server.pm.blockchain.CurrentHeader().Number.Uint64(); i++ { - bhash := rawdb.ReadCanonicalHash(server.db, i) - if req := fn(client.db, bhash, i); req != nil { - ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond) - defer cancel() - err := client.pm.odr.Retrieve(ctx, req) - got := err == nil - exp := i < expFail - if exp && !got { - t.Errorf("object retrieval failed") - } - if !exp && got { - t.Errorf("unexpected object retrieval success") - } - } - } - } - - // temporarily remove peer to test odr fails - client.peers.Unregister(client.rPeer.id) - time.Sleep(time.Millisecond * 10) // ensure that all peerSetNotify callbacks are executed - // expect retrievals to fail (except genesis block) without a les peer - test(0) - - client.peers.Register(client.rPeer) - time.Sleep(time.Millisecond * 10) // ensure that all peerSetNotify callbacks are executed - client.rPeer.lock.Lock() - client.rPeer.hasBlock = func(common.Hash, uint64, bool) bool { return true } - client.rPeer.lock.Unlock() - // expect all retrievals to pass - test(5) -} diff --git a/vendor/github.com/ethereum/go-ethereum/les/server.go b/vendor/github.com/ethereum/go-ethereum/les/server.go deleted file mode 100644 index 6c2b227f..00000000 --- a/vendor/github.com/ethereum/go-ethereum/les/server.go +++ /dev/null @@ -1,301 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package les - -import ( - "crypto/ecdsa" - "sync" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/mclock" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/eth" - "github.com/ethereum/go-ethereum/les/flowcontrol" - "github.com/ethereum/go-ethereum/light" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/discv5" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rpc" -) - -const bufLimitRatio = 6000 // fixed bufLimit/MRR ratio - -type LesServer struct { - lesCommons - - fcManager *flowcontrol.ClientManager // nil if our node is client only - costTracker *costTracker - defParams flowcontrol.ServerParams - lesTopics []discv5.Topic - privateKey *ecdsa.PrivateKey - quitSync chan struct{} - onlyAnnounce bool - - thcNormal, thcBlockProcessing int // serving thread count for normal operation and block processing mode - - maxPeers int - freeClientCap uint64 - freeClientPool *freeClientPool - priorityClientPool *priorityClientPool -} - -func NewLesServer(eth *eth.Ethereum, config *eth.Config) (*LesServer, error) { - quitSync := make(chan struct{}) - pm, err := NewProtocolManager( - eth.BlockChain().Config(), - light.DefaultServerIndexerConfig, - false, - config.NetworkId, - eth.EventMux(), - eth.Engine(), - newPeerSet(), - eth.BlockChain(), - eth.TxPool(), - eth.ChainDb(), - nil, - nil, - nil, - quitSync, - new(sync.WaitGroup), - config.ULC) - if err != nil { - return nil, err - } - - lesTopics := make([]discv5.Topic, len(AdvertiseProtocolVersions)) - for i, pv := range AdvertiseProtocolVersions { - lesTopics[i] = lesTopic(eth.BlockChain().Genesis().Hash(), pv) - } - - srv := &LesServer{ - lesCommons: lesCommons{ - config: config, - chainDb: eth.ChainDb(), - iConfig: light.DefaultServerIndexerConfig, - chtIndexer: light.NewChtIndexer(eth.ChainDb(), nil, params.CHTFrequency, params.HelperTrieProcessConfirmations), - bloomTrieIndexer: light.NewBloomTrieIndexer(eth.ChainDb(), nil, params.BloomBitsBlocks, params.BloomTrieFrequency), - protocolManager: pm, - }, - costTracker: newCostTracker(eth.ChainDb(), config), - quitSync: quitSync, - lesTopics: lesTopics, - onlyAnnounce: config.OnlyAnnounce, - } - - logger := log.New() - pm.server = srv - srv.thcNormal = config.LightServ * 4 / 100 - if srv.thcNormal < 4 { - srv.thcNormal = 4 - } - srv.thcBlockProcessing = config.LightServ/100 + 1 - srv.fcManager = flowcontrol.NewClientManager(nil, &mclock.System{}) - - chtSectionCount, _, _ := srv.chtIndexer.Sections() - if chtSectionCount != 0 { - chtLastSection := chtSectionCount - 1 - chtSectionHead := srv.chtIndexer.SectionHead(chtLastSection) - chtRoot := light.GetChtRoot(pm.chainDb, chtLastSection, chtSectionHead) - logger.Info("Loaded CHT", "section", chtLastSection, "head", chtSectionHead, "root", chtRoot) - } - bloomTrieSectionCount, _, _ := srv.bloomTrieIndexer.Sections() - if bloomTrieSectionCount != 0 { - bloomTrieLastSection := bloomTrieSectionCount - 1 - bloomTrieSectionHead := srv.bloomTrieIndexer.SectionHead(bloomTrieLastSection) - bloomTrieRoot := light.GetBloomTrieRoot(pm.chainDb, bloomTrieLastSection, bloomTrieSectionHead) - logger.Info("Loaded bloom trie", "section", bloomTrieLastSection, "head", bloomTrieSectionHead, "root", bloomTrieRoot) - } - - srv.chtIndexer.Start(eth.BlockChain()) - return srv, nil -} - -func (s *LesServer) APIs() []rpc.API { - return []rpc.API{ - { - Namespace: "les", - Version: "1.0", - Service: NewPrivateLightServerAPI(s), - Public: false, - }, - } -} - -// startEventLoop starts an event handler loop that updates the recharge curve of -// the client manager and adjusts the client pool's size according to the total -// capacity updates coming from the client manager -func (s *LesServer) startEventLoop() { - s.protocolManager.wg.Add(1) - - var processing bool - blockProcFeed := make(chan bool, 100) - s.protocolManager.blockchain.(*core.BlockChain).SubscribeBlockProcessingEvent(blockProcFeed) - totalRechargeCh := make(chan uint64, 100) - totalRecharge := s.costTracker.subscribeTotalRecharge(totalRechargeCh) - totalCapacityCh := make(chan uint64, 100) - updateRecharge := func() { - if processing { - s.protocolManager.servingQueue.setThreads(s.thcBlockProcessing) - s.fcManager.SetRechargeCurve(flowcontrol.PieceWiseLinear{{0, 0}, {totalRecharge, totalRecharge}}) - } else { - s.protocolManager.servingQueue.setThreads(s.thcNormal) - s.fcManager.SetRechargeCurve(flowcontrol.PieceWiseLinear{{0, 0}, {totalRecharge / 10, totalRecharge}, {totalRecharge, totalRecharge}}) - } - } - updateRecharge() - totalCapacity := s.fcManager.SubscribeTotalCapacity(totalCapacityCh) - s.priorityClientPool.setLimits(s.maxPeers, totalCapacity) - - go func() { - for { - select { - case processing = <-blockProcFeed: - updateRecharge() - case totalRecharge = <-totalRechargeCh: - updateRecharge() - case totalCapacity = <-totalCapacityCh: - s.priorityClientPool.setLimits(s.maxPeers, totalCapacity) - case <-s.protocolManager.quitSync: - s.protocolManager.wg.Done() - return - } - } - }() -} - -func (s *LesServer) Protocols() []p2p.Protocol { - return s.makeProtocols(ServerProtocolVersions) -} - -// Start starts the LES server -func (s *LesServer) Start(srvr *p2p.Server) { - s.maxPeers = s.config.LightPeers - totalRecharge := s.costTracker.totalRecharge() - if s.maxPeers > 0 { - s.freeClientCap = minCapacity //totalRecharge / uint64(s.maxPeers) - if s.freeClientCap < minCapacity { - s.freeClientCap = minCapacity - } - if s.freeClientCap > 0 { - s.defParams = flowcontrol.ServerParams{ - BufLimit: s.freeClientCap * bufLimitRatio, - MinRecharge: s.freeClientCap, - } - } - } - freePeers := int(totalRecharge / s.freeClientCap) - if freePeers < s.maxPeers { - log.Warn("Light peer count limited", "specified", s.maxPeers, "allowed", freePeers) - } - - s.freeClientPool = newFreeClientPool(s.chainDb, s.freeClientCap, 10000, mclock.System{}, func(id string) { go s.protocolManager.removePeer(id) }) - s.priorityClientPool = newPriorityClientPool(s.freeClientCap, s.protocolManager.peers, s.freeClientPool) - - s.protocolManager.peers.notify(s.priorityClientPool) - s.startEventLoop() - s.protocolManager.Start(s.config.LightPeers) - if srvr.DiscV5 != nil { - for _, topic := range s.lesTopics { - topic := topic - go func() { - logger := log.New("topic", topic) - logger.Info("Starting topic registration") - defer logger.Info("Terminated topic registration") - - srvr.DiscV5.RegisterTopic(topic, s.quitSync) - }() - } - } - s.privateKey = srvr.PrivateKey - s.protocolManager.blockLoop() -} - -func (s *LesServer) SetBloomBitsIndexer(bloomIndexer *core.ChainIndexer) { - bloomIndexer.AddChildIndexer(s.bloomTrieIndexer) -} - -// Stop stops the LES service -func (s *LesServer) Stop() { - s.chtIndexer.Close() - // bloom trie indexer is closed by parent bloombits indexer - go func() { - <-s.protocolManager.noMorePeers - }() - s.freeClientPool.stop() - s.costTracker.stop() - s.protocolManager.Stop() -} - -func (pm *ProtocolManager) blockLoop() { - pm.wg.Add(1) - headCh := make(chan core.ChainHeadEvent, 10) - headSub := pm.blockchain.SubscribeChainHeadEvent(headCh) - go func() { - var lastHead *types.Header - lastBroadcastTd := common.Big0 - for { - select { - case ev := <-headCh: - peers := pm.peers.AllPeers() - if len(peers) > 0 { - header := ev.Block.Header() - hash := header.Hash() - number := header.Number.Uint64() - td := rawdb.ReadTd(pm.chainDb, hash, number) - if td != nil && td.Cmp(lastBroadcastTd) > 0 { - var reorg uint64 - if lastHead != nil { - reorg = lastHead.Number.Uint64() - rawdb.FindCommonAncestor(pm.chainDb, header, lastHead).Number.Uint64() - } - lastHead = header - lastBroadcastTd = td - - log.Debug("Announcing block to peers", "number", number, "hash", hash, "td", td, "reorg", reorg) - - announce := announceData{Hash: hash, Number: number, Td: td, ReorgDepth: reorg} - var ( - signed bool - signedAnnounce announceData - ) - - for _, p := range peers { - p := p - switch p.announceType { - case announceTypeSimple: - p.queueSend(func() { p.SendAnnounce(announce) }) - case announceTypeSigned: - if !signed { - signedAnnounce = announce - signedAnnounce.sign(pm.server.privateKey) - signed = true - } - p.queueSend(func() { p.SendAnnounce(signedAnnounce) }) - } - } - } - } - case <-pm.quitSync: - headSub.Unsubscribe() - pm.wg.Done() - return - } - } - }() -} diff --git a/vendor/github.com/ethereum/go-ethereum/light/lightchain.go b/vendor/github.com/ethereum/go-ethereum/light/lightchain.go deleted file mode 100644 index 80aeb085..00000000 --- a/vendor/github.com/ethereum/go-ethereum/light/lightchain.go +++ /dev/null @@ -1,542 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package light implements on-demand retrieval capable state and chain objects -// for the Ethereum Light Client. -package light - -import ( - "context" - "errors" - "math/big" - "sync" - "sync/atomic" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - lru "github.com/hashicorp/golang-lru" -) - -var ( - bodyCacheLimit = 256 - blockCacheLimit = 256 -) - -// LightChain represents a canonical chain that by default only handles block -// headers, downloading block bodies and receipts on demand through an ODR -// interface. It only does header validation during chain insertion. -type LightChain struct { - hc *core.HeaderChain - indexerConfig *IndexerConfig - chainDb ethdb.Database - engine consensus.Engine - odr OdrBackend - chainFeed event.Feed - chainSideFeed event.Feed - chainHeadFeed event.Feed - scope event.SubscriptionScope - genesisBlock *types.Block - - bodyCache *lru.Cache // Cache for the most recent block bodies - bodyRLPCache *lru.Cache // Cache for the most recent block bodies in RLP encoded format - blockCache *lru.Cache // Cache for the most recent entire blocks - - chainmu sync.RWMutex // protects header inserts - quit chan struct{} - wg sync.WaitGroup - - // Atomic boolean switches: - running int32 // whether LightChain is running or stopped - procInterrupt int32 // interrupts chain insert - disableCheckFreq int32 // disables header verification -} - -// NewLightChain returns a fully initialised light chain using information -// available in the database. It initialises the default Ethereum header -// validator. -func NewLightChain(odr OdrBackend, config *params.ChainConfig, engine consensus.Engine) (*LightChain, error) { - bodyCache, _ := lru.New(bodyCacheLimit) - bodyRLPCache, _ := lru.New(bodyCacheLimit) - blockCache, _ := lru.New(blockCacheLimit) - - bc := &LightChain{ - chainDb: odr.Database(), - indexerConfig: odr.IndexerConfig(), - odr: odr, - quit: make(chan struct{}), - bodyCache: bodyCache, - bodyRLPCache: bodyRLPCache, - blockCache: blockCache, - engine: engine, - } - var err error - bc.hc, err = core.NewHeaderChain(odr.Database(), config, bc.engine, bc.getProcInterrupt) - if err != nil { - return nil, err - } - bc.genesisBlock, _ = bc.GetBlockByNumber(NoOdr, 0) - if bc.genesisBlock == nil { - return nil, core.ErrNoGenesis - } - if cp, ok := trustedCheckpoints[bc.genesisBlock.Hash()]; ok { - bc.addTrustedCheckpoint(cp) - } - if err := bc.loadLastState(); err != nil { - return nil, err - } - // Check the current state of the block hashes and make sure that we do not have any of the bad blocks in our chain - for hash := range core.BadHashes { - if header := bc.GetHeaderByHash(hash); header != nil { - log.Error("Found bad hash, rewinding chain", "number", header.Number, "hash", header.ParentHash) - bc.SetHead(header.Number.Uint64() - 1) - log.Error("Chain rewind was successful, resuming normal operation") - } - } - return bc, nil -} - -// addTrustedCheckpoint adds a trusted checkpoint to the blockchain -func (lc *LightChain) addTrustedCheckpoint(cp *params.TrustedCheckpoint) { - if lc.odr.ChtIndexer() != nil { - StoreChtRoot(lc.chainDb, cp.SectionIndex, cp.SectionHead, cp.CHTRoot) - lc.odr.ChtIndexer().AddCheckpoint(cp.SectionIndex, cp.SectionHead) - } - if lc.odr.BloomTrieIndexer() != nil { - StoreBloomTrieRoot(lc.chainDb, cp.SectionIndex, cp.SectionHead, cp.BloomRoot) - lc.odr.BloomTrieIndexer().AddCheckpoint(cp.SectionIndex, cp.SectionHead) - } - if lc.odr.BloomIndexer() != nil { - lc.odr.BloomIndexer().AddCheckpoint(cp.SectionIndex, cp.SectionHead) - } - log.Info("Added trusted checkpoint", "chain", cp.Name, "block", (cp.SectionIndex+1)*lc.indexerConfig.ChtSize-1, "hash", cp.SectionHead) -} - -func (lc *LightChain) getProcInterrupt() bool { - return atomic.LoadInt32(&lc.procInterrupt) == 1 -} - -// Odr returns the ODR backend of the chain -func (lc *LightChain) Odr() OdrBackend { - return lc.odr -} - -// loadLastState loads the last known chain state from the database. This method -// assumes that the chain manager mutex is held. -func (lc *LightChain) loadLastState() error { - if head := rawdb.ReadHeadHeaderHash(lc.chainDb); head == (common.Hash{}) { - // Corrupt or empty database, init from scratch - lc.Reset() - } else { - if header := lc.GetHeaderByHash(head); header != nil { - lc.hc.SetCurrentHeader(header) - } - } - - // Issue a status log and return - header := lc.hc.CurrentHeader() - headerTd := lc.GetTd(header.Hash(), header.Number.Uint64()) - log.Info("Loaded most recent local header", "number", header.Number, "hash", header.Hash(), "td", headerTd, "age", common.PrettyAge(time.Unix(int64(header.Time), 0))) - - return nil -} - -// SetHead rewinds the local chain to a new head. Everything above the new -// head will be deleted and the new one set. -func (lc *LightChain) SetHead(head uint64) { - lc.chainmu.Lock() - defer lc.chainmu.Unlock() - - lc.hc.SetHead(head, nil) - lc.loadLastState() -} - -// GasLimit returns the gas limit of the current HEAD block. -func (lc *LightChain) GasLimit() uint64 { - return lc.hc.CurrentHeader().GasLimit -} - -// Reset purges the entire blockchain, restoring it to its genesis state. -func (lc *LightChain) Reset() { - lc.ResetWithGenesisBlock(lc.genesisBlock) -} - -// ResetWithGenesisBlock purges the entire blockchain, restoring it to the -// specified genesis state. -func (lc *LightChain) ResetWithGenesisBlock(genesis *types.Block) { - // Dump the entire block chain and purge the caches - lc.SetHead(0) - - lc.chainmu.Lock() - defer lc.chainmu.Unlock() - - // Prepare the genesis block and reinitialise the chain - rawdb.WriteTd(lc.chainDb, genesis.Hash(), genesis.NumberU64(), genesis.Difficulty()) - rawdb.WriteBlock(lc.chainDb, genesis) - - lc.genesisBlock = genesis - lc.hc.SetGenesis(lc.genesisBlock.Header()) - lc.hc.SetCurrentHeader(lc.genesisBlock.Header()) -} - -// Accessors - -// Engine retrieves the light chain's consensus engine. -func (lc *LightChain) Engine() consensus.Engine { return lc.engine } - -// Genesis returns the genesis block -func (lc *LightChain) Genesis() *types.Block { - return lc.genesisBlock -} - -func (lc *LightChain) StateCache() state.Database { - panic("not implemented") -} - -// GetBody retrieves a block body (transactions and uncles) from the database -// or ODR service by hash, caching it if found. -func (lc *LightChain) GetBody(ctx context.Context, hash common.Hash) (*types.Body, error) { - // Short circuit if the body's already in the cache, retrieve otherwise - if cached, ok := lc.bodyCache.Get(hash); ok { - body := cached.(*types.Body) - return body, nil - } - number := lc.hc.GetBlockNumber(hash) - if number == nil { - return nil, errors.New("unknown block") - } - body, err := GetBody(ctx, lc.odr, hash, *number) - if err != nil { - return nil, err - } - // Cache the found body for next time and return - lc.bodyCache.Add(hash, body) - return body, nil -} - -// GetBodyRLP retrieves a block body in RLP encoding from the database or -// ODR service by hash, caching it if found. -func (lc *LightChain) GetBodyRLP(ctx context.Context, hash common.Hash) (rlp.RawValue, error) { - // Short circuit if the body's already in the cache, retrieve otherwise - if cached, ok := lc.bodyRLPCache.Get(hash); ok { - return cached.(rlp.RawValue), nil - } - number := lc.hc.GetBlockNumber(hash) - if number == nil { - return nil, errors.New("unknown block") - } - body, err := GetBodyRLP(ctx, lc.odr, hash, *number) - if err != nil { - return nil, err - } - // Cache the found body for next time and return - lc.bodyRLPCache.Add(hash, body) - return body, nil -} - -// HasBlock checks if a block is fully present in the database or not, caching -// it if present. -func (lc *LightChain) HasBlock(hash common.Hash, number uint64) bool { - blk, _ := lc.GetBlock(NoOdr, hash, number) - return blk != nil -} - -// GetBlock retrieves a block from the database or ODR service by hash and number, -// caching it if found. -func (lc *LightChain) GetBlock(ctx context.Context, hash common.Hash, number uint64) (*types.Block, error) { - // Short circuit if the block's already in the cache, retrieve otherwise - if block, ok := lc.blockCache.Get(hash); ok { - return block.(*types.Block), nil - } - block, err := GetBlock(ctx, lc.odr, hash, number) - if err != nil { - return nil, err - } - // Cache the found block for next time and return - lc.blockCache.Add(block.Hash(), block) - return block, nil -} - -// GetBlockByHash retrieves a block from the database or ODR service by hash, -// caching it if found. -func (lc *LightChain) GetBlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error) { - number := lc.hc.GetBlockNumber(hash) - if number == nil { - return nil, errors.New("unknown block") - } - return lc.GetBlock(ctx, hash, *number) -} - -// GetBlockByNumber retrieves a block from the database or ODR service by -// number, caching it (associated with its hash) if found. -func (lc *LightChain) GetBlockByNumber(ctx context.Context, number uint64) (*types.Block, error) { - hash, err := GetCanonicalHash(ctx, lc.odr, number) - if hash == (common.Hash{}) || err != nil { - return nil, err - } - return lc.GetBlock(ctx, hash, number) -} - -// Stop stops the blockchain service. If any imports are currently in progress -// it will abort them using the procInterrupt. -func (lc *LightChain) Stop() { - if !atomic.CompareAndSwapInt32(&lc.running, 0, 1) { - return - } - close(lc.quit) - atomic.StoreInt32(&lc.procInterrupt, 1) - - lc.wg.Wait() - log.Info("Blockchain manager stopped") -} - -// Rollback is designed to remove a chain of links from the database that aren't -// certain enough to be valid. -func (lc *LightChain) Rollback(chain []common.Hash) { - lc.chainmu.Lock() - defer lc.chainmu.Unlock() - - for i := len(chain) - 1; i >= 0; i-- { - hash := chain[i] - - if head := lc.hc.CurrentHeader(); head.Hash() == hash { - lc.hc.SetCurrentHeader(lc.GetHeader(head.ParentHash, head.Number.Uint64()-1)) - } - } -} - -// postChainEvents iterates over the events generated by a chain insertion and -// posts them into the event feed. -func (lc *LightChain) postChainEvents(events []interface{}) { - for _, event := range events { - switch ev := event.(type) { - case core.ChainEvent: - if lc.CurrentHeader().Hash() == ev.Hash { - lc.chainHeadFeed.Send(core.ChainHeadEvent{Block: ev.Block}) - } - lc.chainFeed.Send(ev) - case core.ChainSideEvent: - lc.chainSideFeed.Send(ev) - } - } -} - -// InsertHeaderChain attempts to insert the given header chain in to the local -// chain, possibly creating a reorg. If an error is returned, it will return the -// index number of the failing header as well an error describing what went wrong. -// -// The verify parameter can be used to fine tune whether nonce verification -// should be done or not. The reason behind the optional check is because some -// of the header retrieval mechanisms already need to verfy nonces, as well as -// because nonces can be verified sparsely, not needing to check each. -// -// In the case of a light chain, InsertHeaderChain also creates and posts light -// chain events when necessary. -func (lc *LightChain) InsertHeaderChain(chain []*types.Header, checkFreq int) (int, error) { - if atomic.LoadInt32(&lc.disableCheckFreq) == 1 { - checkFreq = 0 - } - start := time.Now() - if i, err := lc.hc.ValidateHeaderChain(chain, checkFreq); err != nil { - return i, err - } - - // Make sure only one thread manipulates the chain at once - lc.chainmu.Lock() - defer lc.chainmu.Unlock() - - lc.wg.Add(1) - defer lc.wg.Done() - - var events []interface{} - whFunc := func(header *types.Header) error { - status, err := lc.hc.WriteHeader(header) - - switch status { - case core.CanonStatTy: - log.Debug("Inserted new header", "number", header.Number, "hash", header.Hash()) - events = append(events, core.ChainEvent{Block: types.NewBlockWithHeader(header), Hash: header.Hash()}) - - case core.SideStatTy: - log.Debug("Inserted forked header", "number", header.Number, "hash", header.Hash()) - events = append(events, core.ChainSideEvent{Block: types.NewBlockWithHeader(header)}) - } - return err - } - i, err := lc.hc.InsertHeaderChain(chain, whFunc, start) - lc.postChainEvents(events) - return i, err -} - -// CurrentHeader retrieves the current head header of the canonical chain. The -// header is retrieved from the HeaderChain's internal cache. -func (lc *LightChain) CurrentHeader() *types.Header { - return lc.hc.CurrentHeader() -} - -// GetTd retrieves a block's total difficulty in the canonical chain from the -// database by hash and number, caching it if found. -func (lc *LightChain) GetTd(hash common.Hash, number uint64) *big.Int { - return lc.hc.GetTd(hash, number) -} - -// GetTdByHash retrieves a block's total difficulty in the canonical chain from the -// database by hash, caching it if found. -func (lc *LightChain) GetTdByHash(hash common.Hash) *big.Int { - return lc.hc.GetTdByHash(hash) -} - -// GetHeader retrieves a block header from the database by hash and number, -// caching it if found. -func (lc *LightChain) GetHeader(hash common.Hash, number uint64) *types.Header { - return lc.hc.GetHeader(hash, number) -} - -// GetHeaderByHash retrieves a block header from the database by hash, caching it if -// found. -func (lc *LightChain) GetHeaderByHash(hash common.Hash) *types.Header { - return lc.hc.GetHeaderByHash(hash) -} - -// HasHeader checks if a block header is present in the database or not, caching -// it if present. -func (lc *LightChain) HasHeader(hash common.Hash, number uint64) bool { - return lc.hc.HasHeader(hash, number) -} - -// GetBlockHashesFromHash retrieves a number of block hashes starting at a given -// hash, fetching towards the genesis block. -func (lc *LightChain) GetBlockHashesFromHash(hash common.Hash, max uint64) []common.Hash { - return lc.hc.GetBlockHashesFromHash(hash, max) -} - -// GetAncestor retrieves the Nth ancestor of a given block. It assumes that either the given block or -// a close ancestor of it is canonical. maxNonCanonical points to a downwards counter limiting the -// number of blocks to be individually checked before we reach the canonical chain. -// -// Note: ancestor == 0 returns the same block, 1 returns its parent and so on. -func (lc *LightChain) GetAncestor(hash common.Hash, number, ancestor uint64, maxNonCanonical *uint64) (common.Hash, uint64) { - lc.chainmu.RLock() - defer lc.chainmu.RUnlock() - - return lc.hc.GetAncestor(hash, number, ancestor, maxNonCanonical) -} - -// GetHeaderByNumber retrieves a block header from the database by number, -// caching it (associated with its hash) if found. -func (lc *LightChain) GetHeaderByNumber(number uint64) *types.Header { - return lc.hc.GetHeaderByNumber(number) -} - -// GetHeaderByNumberOdr retrieves a block header from the database or network -// by number, caching it (associated with its hash) if found. -func (lc *LightChain) GetHeaderByNumberOdr(ctx context.Context, number uint64) (*types.Header, error) { - if header := lc.hc.GetHeaderByNumber(number); header != nil { - return header, nil - } - return GetHeaderByNumber(ctx, lc.odr, number) -} - -// Config retrieves the header chain's chain configuration. -func (lc *LightChain) Config() *params.ChainConfig { return lc.hc.Config() } - -func (lc *LightChain) SyncCht(ctx context.Context) bool { - // If we don't have a CHT indexer, abort - if lc.odr.ChtIndexer() == nil { - return false - } - // Ensure the remote CHT head is ahead of us - head := lc.CurrentHeader().Number.Uint64() - sections, _, _ := lc.odr.ChtIndexer().Sections() - - latest := sections*lc.indexerConfig.ChtSize - 1 - if clique := lc.hc.Config().Clique; clique != nil { - latest -= latest % clique.Epoch // epoch snapshot for clique - } - if head >= latest { - return false - } - // Retrieve the latest useful header and update to it - if header, err := GetHeaderByNumber(ctx, lc.odr, latest); header != nil && err == nil { - lc.chainmu.Lock() - defer lc.chainmu.Unlock() - - // Ensure the chain didn't move past the latest block while retrieving it - if lc.hc.CurrentHeader().Number.Uint64() < header.Number.Uint64() { - log.Info("Updated latest header based on CHT", "number", header.Number, "hash", header.Hash(), "age", common.PrettyAge(time.Unix(int64(header.Time), 0))) - lc.hc.SetCurrentHeader(header) - } - return true - } - return false -} - -// LockChain locks the chain mutex for reading so that multiple canonical hashes can be -// retrieved while it is guaranteed that they belong to the same version of the chain -func (lc *LightChain) LockChain() { - lc.chainmu.RLock() -} - -// UnlockChain unlocks the chain mutex -func (lc *LightChain) UnlockChain() { - lc.chainmu.RUnlock() -} - -// SubscribeChainEvent registers a subscription of ChainEvent. -func (lc *LightChain) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription { - return lc.scope.Track(lc.chainFeed.Subscribe(ch)) -} - -// SubscribeChainHeadEvent registers a subscription of ChainHeadEvent. -func (lc *LightChain) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription { - return lc.scope.Track(lc.chainHeadFeed.Subscribe(ch)) -} - -// SubscribeChainSideEvent registers a subscription of ChainSideEvent. -func (lc *LightChain) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription { - return lc.scope.Track(lc.chainSideFeed.Subscribe(ch)) -} - -// SubscribeLogsEvent implements the interface of filters.Backend -// LightChain does not send logs events, so return an empty subscription. -func (lc *LightChain) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription { - return lc.scope.Track(new(event.Feed).Subscribe(ch)) -} - -// SubscribeRemovedLogsEvent implements the interface of filters.Backend -// LightChain does not send core.RemovedLogsEvent, so return an empty subscription. -func (lc *LightChain) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription { - return lc.scope.Track(new(event.Feed).Subscribe(ch)) -} - -// DisableCheckFreq disables header validation. This is used for ultralight mode. -func (lc *LightChain) DisableCheckFreq() { - atomic.StoreInt32(&lc.disableCheckFreq, 1) -} - -// EnableCheckFreq enables header validation. -func (lc *LightChain) EnableCheckFreq() { - atomic.StoreInt32(&lc.disableCheckFreq, 0) -} diff --git a/vendor/github.com/ethereum/go-ethereum/light/odr_test.go b/vendor/github.com/ethereum/go-ethereum/light/odr_test.go deleted file mode 100644 index 55725d84..00000000 --- a/vendor/github.com/ethereum/go-ethereum/light/odr_test.go +++ /dev/null @@ -1,317 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package light - -import ( - "bytes" - "context" - "errors" - "math/big" - "testing" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/trie" -) - -var ( - testBankKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - testBankAddress = crypto.PubkeyToAddress(testBankKey.PublicKey) - testBankFunds = big.NewInt(100000000) - - acc1Key, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a") - acc2Key, _ = crypto.HexToECDSA("49a7b37aa6f6645917e7b807e9d1c00d4fa71f18343b0d4122a4d2df64dd6fee") - acc1Addr = crypto.PubkeyToAddress(acc1Key.PublicKey) - acc2Addr = crypto.PubkeyToAddress(acc2Key.PublicKey) - - testContractCode = common.Hex2Bytes("606060405260cc8060106000396000f360606040526000357c01000000000000000000000000000000000000000000000000000000009004806360cd2685146041578063c16431b914606b57603f565b005b6055600480803590602001909190505060a9565b6040518082815260200191505060405180910390f35b60886004808035906020019091908035906020019091905050608a565b005b80600060005083606481101560025790900160005b50819055505b5050565b6000600060005082606481101560025790900160005b5054905060c7565b91905056") - testContractAddr common.Address -) - -type testOdr struct { - OdrBackend - indexerConfig *IndexerConfig - sdb, ldb ethdb.Database - disable bool -} - -func (odr *testOdr) Database() ethdb.Database { - return odr.ldb -} - -var ErrOdrDisabled = errors.New("ODR disabled") - -func (odr *testOdr) Retrieve(ctx context.Context, req OdrRequest) error { - if odr.disable { - return ErrOdrDisabled - } - switch req := req.(type) { - case *BlockRequest: - number := rawdb.ReadHeaderNumber(odr.sdb, req.Hash) - if number != nil { - req.Rlp = rawdb.ReadBodyRLP(odr.sdb, req.Hash, *number) - } - case *ReceiptsRequest: - number := rawdb.ReadHeaderNumber(odr.sdb, req.Hash) - if number != nil { - req.Receipts = rawdb.ReadReceipts(odr.sdb, req.Hash, *number) - } - case *TrieRequest: - t, _ := trie.New(req.Id.Root, trie.NewDatabase(odr.sdb)) - nodes := NewNodeSet() - t.Prove(req.Key, 0, nodes) - req.Proof = nodes - case *CodeRequest: - req.Data, _ = odr.sdb.Get(req.Hash[:]) - } - req.StoreResult(odr.ldb) - return nil -} - -func (odr *testOdr) IndexerConfig() *IndexerConfig { - return odr.indexerConfig -} - -type odrTestFn func(ctx context.Context, db ethdb.Database, bc *core.BlockChain, lc *LightChain, bhash common.Hash) ([]byte, error) - -func TestOdrGetBlockLes2(t *testing.T) { testChainOdr(t, 1, odrGetBlock) } - -func odrGetBlock(ctx context.Context, db ethdb.Database, bc *core.BlockChain, lc *LightChain, bhash common.Hash) ([]byte, error) { - var block *types.Block - if bc != nil { - block = bc.GetBlockByHash(bhash) - } else { - block, _ = lc.GetBlockByHash(ctx, bhash) - } - if block == nil { - return nil, nil - } - rlp, _ := rlp.EncodeToBytes(block) - return rlp, nil -} - -func TestOdrGetReceiptsLes2(t *testing.T) { testChainOdr(t, 1, odrGetReceipts) } - -func odrGetReceipts(ctx context.Context, db ethdb.Database, bc *core.BlockChain, lc *LightChain, bhash common.Hash) ([]byte, error) { - var receipts types.Receipts - if bc != nil { - number := rawdb.ReadHeaderNumber(db, bhash) - if number != nil { - receipts = rawdb.ReadReceipts(db, bhash, *number) - } - } else { - number := rawdb.ReadHeaderNumber(db, bhash) - if number != nil { - receipts, _ = GetBlockReceipts(ctx, lc.Odr(), bhash, *number) - } - } - if receipts == nil { - return nil, nil - } - rlp, _ := rlp.EncodeToBytes(receipts) - return rlp, nil -} - -func TestOdrAccountsLes2(t *testing.T) { testChainOdr(t, 1, odrAccounts) } - -func odrAccounts(ctx context.Context, db ethdb.Database, bc *core.BlockChain, lc *LightChain, bhash common.Hash) ([]byte, error) { - dummyAddr := common.HexToAddress("1234567812345678123456781234567812345678") - acc := []common.Address{testBankAddress, acc1Addr, acc2Addr, dummyAddr} - - var st *state.StateDB - if bc == nil { - header := lc.GetHeaderByHash(bhash) - st = NewState(ctx, header, lc.Odr()) - } else { - header := bc.GetHeaderByHash(bhash) - st, _ = state.New(header.Root, state.NewDatabase(db)) - } - - var res []byte - for _, addr := range acc { - bal := st.GetBalance(addr) - rlp, _ := rlp.EncodeToBytes(bal) - res = append(res, rlp...) - } - return res, st.Error() -} - -func TestOdrContractCallLes2(t *testing.T) { testChainOdr(t, 1, odrContractCall) } - -type callmsg struct { - types.Message -} - -func (callmsg) CheckNonce() bool { return false } - -func odrContractCall(ctx context.Context, db ethdb.Database, bc *core.BlockChain, lc *LightChain, bhash common.Hash) ([]byte, error) { - data := common.Hex2Bytes("60CD26850000000000000000000000000000000000000000000000000000000000000000") - config := params.TestChainConfig - - var res []byte - for i := 0; i < 3; i++ { - data[35] = byte(i) - - var ( - st *state.StateDB - header *types.Header - chain core.ChainContext - ) - if bc == nil { - chain = lc - header = lc.GetHeaderByHash(bhash) - st = NewState(ctx, header, lc.Odr()) - } else { - chain = bc - header = bc.GetHeaderByHash(bhash) - st, _ = state.New(header.Root, state.NewDatabase(db)) - } - - // Perform read-only call. - st.SetBalance(testBankAddress, math.MaxBig256) - msg := callmsg{types.NewMessage(testBankAddress, &testContractAddr, 0, new(big.Int), 1000000, new(big.Int), data, false)} - context := core.NewEVMContext(msg, header, chain, nil) - vmenv := vm.NewEVM(context, st, config, vm.Config{}) - gp := new(core.GasPool).AddGas(math.MaxUint64) - ret, _, _, _ := core.ApplyMessage(vmenv, msg, gp) - res = append(res, ret...) - if st.Error() != nil { - return res, st.Error() - } - } - return res, nil -} - -func testChainGen(i int, block *core.BlockGen) { - signer := types.HomesteadSigner{} - switch i { - case 0: - // In block 1, the test bank sends account #1 some ether. - tx, _ := types.SignTx(types.NewTransaction(block.TxNonce(testBankAddress), acc1Addr, big.NewInt(10000), params.TxGas, nil, nil), signer, testBankKey) - block.AddTx(tx) - case 1: - // In block 2, the test bank sends some more ether to account #1. - // acc1Addr passes it on to account #2. - // acc1Addr creates a test contract. - tx1, _ := types.SignTx(types.NewTransaction(block.TxNonce(testBankAddress), acc1Addr, big.NewInt(1000), params.TxGas, nil, nil), signer, testBankKey) - nonce := block.TxNonce(acc1Addr) - tx2, _ := types.SignTx(types.NewTransaction(nonce, acc2Addr, big.NewInt(1000), params.TxGas, nil, nil), signer, acc1Key) - nonce++ - tx3, _ := types.SignTx(types.NewContractCreation(nonce, big.NewInt(0), 1000000, big.NewInt(0), testContractCode), signer, acc1Key) - testContractAddr = crypto.CreateAddress(acc1Addr, nonce) - block.AddTx(tx1) - block.AddTx(tx2) - block.AddTx(tx3) - case 2: - // Block 3 is empty but was mined by account #2. - block.SetCoinbase(acc2Addr) - block.SetExtra([]byte("yeehaw")) - data := common.Hex2Bytes("C16431B900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001") - tx, _ := types.SignTx(types.NewTransaction(block.TxNonce(testBankAddress), testContractAddr, big.NewInt(0), 100000, nil, data), signer, testBankKey) - block.AddTx(tx) - case 3: - // Block 4 includes blocks 2 and 3 as uncle headers (with modified extra data). - b2 := block.PrevBlock(1).Header() - b2.Extra = []byte("foo") - block.AddUncle(b2) - b3 := block.PrevBlock(2).Header() - b3.Extra = []byte("foo") - block.AddUncle(b3) - data := common.Hex2Bytes("C16431B900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002") - tx, _ := types.SignTx(types.NewTransaction(block.TxNonce(testBankAddress), testContractAddr, big.NewInt(0), 100000, nil, data), signer, testBankKey) - block.AddTx(tx) - } -} - -func testChainOdr(t *testing.T, protocol int, fn odrTestFn) { - var ( - sdb = rawdb.NewMemoryDatabase() - ldb = rawdb.NewMemoryDatabase() - gspec = core.Genesis{Alloc: core.GenesisAlloc{testBankAddress: {Balance: testBankFunds}}} - genesis = gspec.MustCommit(sdb) - ) - gspec.MustCommit(ldb) - // Assemble the test environment - blockchain, _ := core.NewBlockChain(sdb, nil, params.TestChainConfig, ethash.NewFullFaker(), vm.Config{}, nil) - gchain, _ := core.GenerateChain(params.TestChainConfig, genesis, ethash.NewFaker(), sdb, 4, testChainGen) - if _, err := blockchain.InsertChain(gchain); err != nil { - t.Fatal(err) - } - - odr := &testOdr{sdb: sdb, ldb: ldb, indexerConfig: TestClientIndexerConfig} - lightchain, err := NewLightChain(odr, params.TestChainConfig, ethash.NewFullFaker()) - if err != nil { - t.Fatal(err) - } - headers := make([]*types.Header, len(gchain)) - for i, block := range gchain { - headers[i] = block.Header() - } - if _, err := lightchain.InsertHeaderChain(headers, 1); err != nil { - t.Fatal(err) - } - - test := func(expFail int) { - for i := uint64(0); i <= blockchain.CurrentHeader().Number.Uint64(); i++ { - bhash := rawdb.ReadCanonicalHash(sdb, i) - b1, err := fn(NoOdr, sdb, blockchain, nil, bhash) - if err != nil { - t.Fatalf("error in full-node test for block %d: %v", i, err) - } - - ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond) - defer cancel() - - exp := i < uint64(expFail) - b2, err := fn(ctx, ldb, nil, lightchain, bhash) - if err != nil && exp { - t.Errorf("error in ODR test for block %d: %v", i, err) - } - - eq := bytes.Equal(b1, b2) - if exp && !eq { - t.Errorf("ODR test output for block %d doesn't match full node", i) - } - } - } - - // expect retrievals to fail (except genesis block) without a les peer - t.Log("checking without ODR") - odr.disable = true - test(1) - - // expect all retrievals to pass with ODR enabled - t.Log("checking with ODR") - odr.disable = false - test(len(gchain)) - - // still expect all retrievals to pass, now data should be cached locally - t.Log("checking without ODR, should be cached") - odr.disable = true - test(len(gchain)) -} diff --git a/vendor/github.com/ethereum/go-ethereum/light/postprocess.go b/vendor/github.com/ethereum/go-ethereum/light/postprocess.go deleted file mode 100644 index 2a837e6c..00000000 --- a/vendor/github.com/ethereum/go-ethereum/light/postprocess.go +++ /dev/null @@ -1,397 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package light - -import ( - "context" - "encoding/binary" - "errors" - "fmt" - "math/big" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/bitutil" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/trie" -) - -// IndexerConfig includes a set of configs for chain indexers. -type IndexerConfig struct { - // The block frequency for creating CHTs. - ChtSize uint64 - - // The number of confirmations needed to generate/accept a canonical hash help trie. - ChtConfirms uint64 - - // The block frequency for creating new bloom bits. - BloomSize uint64 - - // The number of confirmation needed before a bloom section is considered probably final and its rotated bits - // are calculated. - BloomConfirms uint64 - - // The block frequency for creating BloomTrie. - BloomTrieSize uint64 - - // The number of confirmations needed to generate/accept a bloom trie. - BloomTrieConfirms uint64 -} - -var ( - // DefaultServerIndexerConfig wraps a set of configs as a default indexer config for server side. - DefaultServerIndexerConfig = &IndexerConfig{ - ChtSize: params.CHTFrequency, - ChtConfirms: params.HelperTrieProcessConfirmations, - BloomSize: params.BloomBitsBlocks, - BloomConfirms: params.BloomConfirms, - BloomTrieSize: params.BloomTrieFrequency, - BloomTrieConfirms: params.HelperTrieProcessConfirmations, - } - // DefaultClientIndexerConfig wraps a set of configs as a default indexer config for client side. - DefaultClientIndexerConfig = &IndexerConfig{ - ChtSize: params.CHTFrequency, - ChtConfirms: params.HelperTrieConfirmations, - BloomSize: params.BloomBitsBlocksClient, - BloomConfirms: params.HelperTrieConfirmations, - BloomTrieSize: params.BloomTrieFrequency, - BloomTrieConfirms: params.HelperTrieConfirmations, - } - // TestServerIndexerConfig wraps a set of configs as a test indexer config for server side. - TestServerIndexerConfig = &IndexerConfig{ - ChtSize: 512, - ChtConfirms: 4, - BloomSize: 64, - BloomConfirms: 4, - BloomTrieSize: 512, - BloomTrieConfirms: 4, - } - // TestClientIndexerConfig wraps a set of configs as a test indexer config for client side. - TestClientIndexerConfig = &IndexerConfig{ - ChtSize: 512, - ChtConfirms: 32, - BloomSize: 512, - BloomConfirms: 32, - BloomTrieSize: 512, - BloomTrieConfirms: 32, - } -) - -// trustedCheckpoints associates each known checkpoint with the genesis hash of the chain it belongs to -var trustedCheckpoints = map[common.Hash]*params.TrustedCheckpoint{ - params.MainnetGenesisHash: params.MainnetTrustedCheckpoint, - params.TestnetGenesisHash: params.TestnetTrustedCheckpoint, - params.RinkebyGenesisHash: params.RinkebyTrustedCheckpoint, - params.GoerliGenesisHash: params.GoerliTrustedCheckpoint, -} - -var ( - ErrNoTrustedCht = errors.New("no trusted canonical hash trie") - ErrNoTrustedBloomTrie = errors.New("no trusted bloom trie") - ErrNoHeader = errors.New("header not found") - chtPrefix = []byte("chtRootV2-") // chtPrefix + chtNum (uint64 big endian) -> trie root hash - ChtTablePrefix = "cht-" -) - -// ChtNode structures are stored in the Canonical Hash Trie in an RLP encoded format -type ChtNode struct { - Hash common.Hash - Td *big.Int -} - -// GetChtRoot reads the CHT root associated to the given section from the database -func GetChtRoot(db ethdb.Database, sectionIdx uint64, sectionHead common.Hash) common.Hash { - var encNumber [8]byte - binary.BigEndian.PutUint64(encNumber[:], sectionIdx) - data, _ := db.Get(append(append(chtPrefix, encNumber[:]...), sectionHead.Bytes()...)) - return common.BytesToHash(data) -} - -// StoreChtRoot writes the CHT root associated to the given section into the database -func StoreChtRoot(db ethdb.Database, sectionIdx uint64, sectionHead, root common.Hash) { - var encNumber [8]byte - binary.BigEndian.PutUint64(encNumber[:], sectionIdx) - db.Put(append(append(chtPrefix, encNumber[:]...), sectionHead.Bytes()...), root.Bytes()) -} - -// ChtIndexerBackend implements core.ChainIndexerBackend. -type ChtIndexerBackend struct { - diskdb, trieTable ethdb.Database - odr OdrBackend - triedb *trie.Database - section, sectionSize uint64 - lastHash common.Hash - trie *trie.Trie -} - -// NewChtIndexer creates a Cht chain indexer -func NewChtIndexer(db ethdb.Database, odr OdrBackend, size, confirms uint64) *core.ChainIndexer { - trieTable := rawdb.NewTable(db, ChtTablePrefix) - backend := &ChtIndexerBackend{ - diskdb: db, - odr: odr, - trieTable: trieTable, - triedb: trie.NewDatabaseWithCache(trieTable, 1), // Use a tiny cache only to keep memory down - sectionSize: size, - } - return core.NewChainIndexer(db, rawdb.NewTable(db, "chtIndexV2-"), backend, size, confirms, time.Millisecond*100, "cht") -} - -// fetchMissingNodes tries to retrieve the last entry of the latest trusted CHT from the -// ODR backend in order to be able to add new entries and calculate subsequent root hashes -func (c *ChtIndexerBackend) fetchMissingNodes(ctx context.Context, section uint64, root common.Hash) error { - batch := c.trieTable.NewBatch() - r := &ChtRequest{ChtRoot: root, ChtNum: section - 1, BlockNum: section*c.sectionSize - 1, Config: c.odr.IndexerConfig()} - for { - err := c.odr.Retrieve(ctx, r) - switch err { - case nil: - r.Proof.Store(batch) - return batch.Write() - case ErrNoPeers: - // if there are no peers to serve, retry later - select { - case <-ctx.Done(): - return ctx.Err() - case <-time.After(time.Second * 10): - // stay in the loop and try again - } - default: - return err - } - } -} - -// Reset implements core.ChainIndexerBackend -func (c *ChtIndexerBackend) Reset(ctx context.Context, section uint64, lastSectionHead common.Hash) error { - var root common.Hash - if section > 0 { - root = GetChtRoot(c.diskdb, section-1, lastSectionHead) - } - var err error - c.trie, err = trie.New(root, c.triedb) - - if err != nil && c.odr != nil { - err = c.fetchMissingNodes(ctx, section, root) - if err == nil { - c.trie, err = trie.New(root, c.triedb) - } - } - - c.section = section - return err -} - -// Process implements core.ChainIndexerBackend -func (c *ChtIndexerBackend) Process(ctx context.Context, header *types.Header) error { - hash, num := header.Hash(), header.Number.Uint64() - c.lastHash = hash - - td := rawdb.ReadTd(c.diskdb, hash, num) - if td == nil { - panic(nil) - } - var encNumber [8]byte - binary.BigEndian.PutUint64(encNumber[:], num) - data, _ := rlp.EncodeToBytes(ChtNode{hash, td}) - c.trie.Update(encNumber[:], data) - return nil -} - -// Commit implements core.ChainIndexerBackend -func (c *ChtIndexerBackend) Commit() error { - root, err := c.trie.Commit(nil) - if err != nil { - return err - } - c.triedb.Commit(root, false) - - log.Info("Storing CHT", "section", c.section, "head", fmt.Sprintf("%064x", c.lastHash), "root", fmt.Sprintf("%064x", root)) - StoreChtRoot(c.diskdb, c.section, c.lastHash, root) - return nil -} - -var ( - bloomTriePrefix = []byte("bltRoot-") // bloomTriePrefix + bloomTrieNum (uint64 big endian) -> trie root hash - BloomTrieTablePrefix = "blt-" -) - -// GetBloomTrieRoot reads the BloomTrie root assoctiated to the given section from the database -func GetBloomTrieRoot(db ethdb.Database, sectionIdx uint64, sectionHead common.Hash) common.Hash { - var encNumber [8]byte - binary.BigEndian.PutUint64(encNumber[:], sectionIdx) - data, _ := db.Get(append(append(bloomTriePrefix, encNumber[:]...), sectionHead.Bytes()...)) - return common.BytesToHash(data) -} - -// StoreBloomTrieRoot writes the BloomTrie root assoctiated to the given section into the database -func StoreBloomTrieRoot(db ethdb.Database, sectionIdx uint64, sectionHead, root common.Hash) { - var encNumber [8]byte - binary.BigEndian.PutUint64(encNumber[:], sectionIdx) - db.Put(append(append(bloomTriePrefix, encNumber[:]...), sectionHead.Bytes()...), root.Bytes()) -} - -// BloomTrieIndexerBackend implements core.ChainIndexerBackend -type BloomTrieIndexerBackend struct { - diskdb, trieTable ethdb.Database - triedb *trie.Database - odr OdrBackend - section uint64 - parentSize uint64 - size uint64 - bloomTrieRatio uint64 - trie *trie.Trie - sectionHeads []common.Hash -} - -// NewBloomTrieIndexer creates a BloomTrie chain indexer -func NewBloomTrieIndexer(db ethdb.Database, odr OdrBackend, parentSize, size uint64) *core.ChainIndexer { - trieTable := rawdb.NewTable(db, BloomTrieTablePrefix) - backend := &BloomTrieIndexerBackend{ - diskdb: db, - odr: odr, - trieTable: trieTable, - triedb: trie.NewDatabaseWithCache(trieTable, 1), // Use a tiny cache only to keep memory down - parentSize: parentSize, - size: size, - } - backend.bloomTrieRatio = size / parentSize - backend.sectionHeads = make([]common.Hash, backend.bloomTrieRatio) - return core.NewChainIndexer(db, rawdb.NewTable(db, "bltIndex-"), backend, size, 0, time.Millisecond*100, "bloomtrie") -} - -// fetchMissingNodes tries to retrieve the last entries of the latest trusted bloom trie from the -// ODR backend in order to be able to add new entries and calculate subsequent root hashes -func (b *BloomTrieIndexerBackend) fetchMissingNodes(ctx context.Context, section uint64, root common.Hash) error { - indexCh := make(chan uint, types.BloomBitLength) - type res struct { - nodes *NodeSet - err error - } - resCh := make(chan res, types.BloomBitLength) - for i := 0; i < 20; i++ { - go func() { - for bitIndex := range indexCh { - r := &BloomRequest{BloomTrieRoot: root, BloomTrieNum: section - 1, BitIdx: bitIndex, SectionIndexList: []uint64{section - 1}, Config: b.odr.IndexerConfig()} - for { - if err := b.odr.Retrieve(ctx, r); err == ErrNoPeers { - // if there are no peers to serve, retry later - select { - case <-ctx.Done(): - resCh <- res{nil, ctx.Err()} - return - case <-time.After(time.Second * 10): - // stay in the loop and try again - } - } else { - resCh <- res{r.Proofs, err} - break - } - } - } - }() - } - - for i := uint(0); i < types.BloomBitLength; i++ { - indexCh <- i - } - close(indexCh) - batch := b.trieTable.NewBatch() - for i := uint(0); i < types.BloomBitLength; i++ { - res := <-resCh - if res.err != nil { - return res.err - } - res.nodes.Store(batch) - } - return batch.Write() -} - -// Reset implements core.ChainIndexerBackend -func (b *BloomTrieIndexerBackend) Reset(ctx context.Context, section uint64, lastSectionHead common.Hash) error { - var root common.Hash - if section > 0 { - root = GetBloomTrieRoot(b.diskdb, section-1, lastSectionHead) - } - var err error - b.trie, err = trie.New(root, b.triedb) - if err != nil && b.odr != nil { - err = b.fetchMissingNodes(ctx, section, root) - if err == nil { - b.trie, err = trie.New(root, b.triedb) - } - } - b.section = section - return err -} - -// Process implements core.ChainIndexerBackend -func (b *BloomTrieIndexerBackend) Process(ctx context.Context, header *types.Header) error { - num := header.Number.Uint64() - b.section*b.size - if (num+1)%b.parentSize == 0 { - b.sectionHeads[num/b.parentSize] = header.Hash() - } - return nil -} - -// Commit implements core.ChainIndexerBackend -func (b *BloomTrieIndexerBackend) Commit() error { - var compSize, decompSize uint64 - - for i := uint(0); i < types.BloomBitLength; i++ { - var encKey [10]byte - binary.BigEndian.PutUint16(encKey[0:2], uint16(i)) - binary.BigEndian.PutUint64(encKey[2:10], b.section) - var decomp []byte - for j := uint64(0); j < b.bloomTrieRatio; j++ { - data, err := rawdb.ReadBloomBits(b.diskdb, i, b.section*b.bloomTrieRatio+j, b.sectionHeads[j]) - if err != nil { - return err - } - decompData, err2 := bitutil.DecompressBytes(data, int(b.parentSize/8)) - if err2 != nil { - return err2 - } - decomp = append(decomp, decompData...) - } - comp := bitutil.CompressBytes(decomp) - - decompSize += uint64(len(decomp)) - compSize += uint64(len(comp)) - if len(comp) > 0 { - b.trie.Update(encKey[:], comp) - } else { - b.trie.Delete(encKey[:]) - } - } - root, err := b.trie.Commit(nil) - if err != nil { - return err - } - b.triedb.Commit(root, false) - - sectionHead := b.sectionHeads[b.bloomTrieRatio-1] - log.Info("Storing bloom trie", "section", b.section, "head", fmt.Sprintf("%064x", sectionHead), "root", fmt.Sprintf("%064x", root), "compression", float64(compSize)/float64(decompSize)) - StoreBloomTrieRoot(b.diskdb, b.section, sectionHead, root) - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/miner/worker.go b/vendor/github.com/ethereum/go-ethereum/miner/worker.go deleted file mode 100644 index a9e440ae..00000000 --- a/vendor/github.com/ethereum/go-ethereum/miner/worker.go +++ /dev/null @@ -1,989 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package miner - -import ( - "bytes" - "errors" - "math/big" - "sync" - "sync/atomic" - "time" - - mapset "github.com/deckarep/golang-set" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/consensus/misc" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/params" -) - -const ( - // resultQueueSize is the size of channel listening to sealing result. - resultQueueSize = 10 - - // txChanSize is the size of channel listening to NewTxsEvent. - // The number is referenced from the size of tx pool. - txChanSize = 4096 - - // chainHeadChanSize is the size of channel listening to ChainHeadEvent. - chainHeadChanSize = 10 - - // chainSideChanSize is the size of channel listening to ChainSideEvent. - chainSideChanSize = 10 - - // resubmitAdjustChanSize is the size of resubmitting interval adjustment channel. - resubmitAdjustChanSize = 10 - - // miningLogAtDepth is the number of confirmations before logging successful mining. - miningLogAtDepth = 7 - - // minRecommitInterval is the minimal time interval to recreate the mining block with - // any newly arrived transactions. - minRecommitInterval = 1 * time.Second - - // maxRecommitInterval is the maximum time interval to recreate the mining block with - // any newly arrived transactions. - maxRecommitInterval = 15 * time.Second - - // intervalAdjustRatio is the impact a single interval adjustment has on sealing work - // resubmitting interval. - intervalAdjustRatio = 0.1 - - // intervalAdjustBias is applied during the new resubmit interval calculation in favor of - // increasing upper limit or decreasing lower limit so that the limit can be reachable. - intervalAdjustBias = 200 * 1000.0 * 1000.0 - - // staleThreshold is the maximum depth of the acceptable stale block. - staleThreshold = 7 -) - -// environment is the worker's current environment and holds all of the current state information. -type environment struct { - signer types.Signer - - state *state.StateDB // apply state changes here - ancestors mapset.Set // ancestor set (used for checking uncle parent validity) - family mapset.Set // family set (used for checking uncle invalidity) - uncles mapset.Set // uncle set - tcount int // tx count in cycle - gasPool *core.GasPool // available gas used to pack transactions - - header *types.Header - txs []*types.Transaction - receipts []*types.Receipt -} - -// task contains all information for consensus engine sealing and result submitting. -type task struct { - receipts []*types.Receipt - state *state.StateDB - block *types.Block - createdAt time.Time -} - -const ( - commitInterruptNone int32 = iota - commitInterruptNewHead - commitInterruptResubmit -) - -// newWorkReq represents a request for new sealing work submitting with relative interrupt notifier. -type newWorkReq struct { - interrupt *int32 - noempty bool - timestamp int64 -} - -// intervalAdjust represents a resubmitting interval adjustment. -type intervalAdjust struct { - ratio float64 - inc bool -} - -// worker is the main object which takes care of submitting new work to consensus engine -// and gathering the sealing result. -type worker struct { - config *params.ChainConfig - engine consensus.Engine - eth Backend - chain *core.BlockChain - - gasFloor uint64 - gasCeil uint64 - - // Subscriptions - mux *event.TypeMux - txsCh chan core.NewTxsEvent - txsSub event.Subscription - chainHeadCh chan core.ChainHeadEvent - chainHeadSub event.Subscription - chainSideCh chan core.ChainSideEvent - chainSideSub event.Subscription - - // Channels - newWorkCh chan *newWorkReq - taskCh chan *task - resultCh chan *types.Block - startCh chan struct{} - exitCh chan struct{} - resubmitIntervalCh chan time.Duration - resubmitAdjustCh chan *intervalAdjust - - current *environment // An environment for current running cycle. - localUncles map[common.Hash]*types.Block // A set of side blocks generated locally as the possible uncle blocks. - remoteUncles map[common.Hash]*types.Block // A set of side blocks as the possible uncle blocks. - unconfirmed *unconfirmedBlocks // A set of locally mined blocks pending canonicalness confirmations. - - mu sync.RWMutex // The lock used to protect the coinbase and extra fields - coinbase common.Address - extra []byte - - pendingMu sync.RWMutex - pendingTasks map[common.Hash]*task - - snapshotMu sync.RWMutex // The lock used to protect the block snapshot and state snapshot - snapshotBlock *types.Block - snapshotState *state.StateDB - - // atomic status counters - running int32 // The indicator whether the consensus engine is running or not. - newTxs int32 // New arrival transaction count since last sealing work submitting. - - // External functions - isLocalBlock func(block *types.Block) bool // Function used to determine whether the specified block is mined by local miner. - - // Test hooks - newTaskHook func(*task) // Method to call upon receiving a new sealing task. - skipSealHook func(*task) bool // Method to decide whether skipping the sealing. - fullTaskHook func() // Method to call before pushing the full sealing task. - resubmitHook func(time.Duration, time.Duration) // Method to call upon updating resubmitting interval. -} - -func newWorker(config *params.ChainConfig, engine consensus.Engine, eth Backend, mux *event.TypeMux, recommit time.Duration, gasFloor, gasCeil uint64, isLocalBlock func(*types.Block) bool) *worker { - worker := &worker{ - config: config, - engine: engine, - eth: eth, - mux: mux, - chain: eth.BlockChain(), - gasFloor: gasFloor, - gasCeil: gasCeil, - isLocalBlock: isLocalBlock, - localUncles: make(map[common.Hash]*types.Block), - remoteUncles: make(map[common.Hash]*types.Block), - unconfirmed: newUnconfirmedBlocks(eth.BlockChain(), miningLogAtDepth), - pendingTasks: make(map[common.Hash]*task), - txsCh: make(chan core.NewTxsEvent, txChanSize), - chainHeadCh: make(chan core.ChainHeadEvent, chainHeadChanSize), - chainSideCh: make(chan core.ChainSideEvent, chainSideChanSize), - newWorkCh: make(chan *newWorkReq), - taskCh: make(chan *task), - resultCh: make(chan *types.Block, resultQueueSize), - exitCh: make(chan struct{}), - startCh: make(chan struct{}, 1), - resubmitIntervalCh: make(chan time.Duration), - resubmitAdjustCh: make(chan *intervalAdjust, resubmitAdjustChanSize), - } - // Subscribe NewTxsEvent for tx pool - worker.txsSub = eth.TxPool().SubscribeNewTxsEvent(worker.txsCh) - // Subscribe events for blockchain - worker.chainHeadSub = eth.BlockChain().SubscribeChainHeadEvent(worker.chainHeadCh) - worker.chainSideSub = eth.BlockChain().SubscribeChainSideEvent(worker.chainSideCh) - - // Sanitize recommit interval if the user-specified one is too short. - if recommit < minRecommitInterval { - log.Warn("Sanitizing miner recommit interval", "provided", recommit, "updated", minRecommitInterval) - recommit = minRecommitInterval - } - - go worker.mainLoop() - go worker.newWorkLoop(recommit) - go worker.resultLoop() - go worker.taskLoop() - - // Submit first work to initialize pending state. - worker.startCh <- struct{}{} - - return worker -} - -// setEtherbase sets the etherbase used to initialize the block coinbase field. -func (w *worker) setEtherbase(addr common.Address) { - w.mu.Lock() - defer w.mu.Unlock() - w.coinbase = addr -} - -// setExtra sets the content used to initialize the block extra field. -func (w *worker) setExtra(extra []byte) { - w.mu.Lock() - defer w.mu.Unlock() - w.extra = extra -} - -// setRecommitInterval updates the interval for miner sealing work recommitting. -func (w *worker) setRecommitInterval(interval time.Duration) { - w.resubmitIntervalCh <- interval -} - -// pending returns the pending state and corresponding block. -func (w *worker) pending() (*types.Block, *state.StateDB) { - // return a snapshot to avoid contention on currentMu mutex - w.snapshotMu.RLock() - defer w.snapshotMu.RUnlock() - if w.snapshotState == nil { - return nil, nil - } - return w.snapshotBlock, w.snapshotState.Copy() -} - -// pendingBlock returns pending block. -func (w *worker) pendingBlock() *types.Block { - // return a snapshot to avoid contention on currentMu mutex - w.snapshotMu.RLock() - defer w.snapshotMu.RUnlock() - return w.snapshotBlock -} - -// start sets the running status as 1 and triggers new work submitting. -func (w *worker) start() { - atomic.StoreInt32(&w.running, 1) - w.startCh <- struct{}{} -} - -// stop sets the running status as 0. -func (w *worker) stop() { - atomic.StoreInt32(&w.running, 0) -} - -// isRunning returns an indicator whether worker is running or not. -func (w *worker) isRunning() bool { - return atomic.LoadInt32(&w.running) == 1 -} - -// close terminates all background threads maintained by the worker. -// Note the worker does not support being closed multiple times. -func (w *worker) close() { - close(w.exitCh) -} - -// newWorkLoop is a standalone goroutine to submit new mining work upon received events. -func (w *worker) newWorkLoop(recommit time.Duration) { - var ( - interrupt *int32 - minRecommit = recommit // minimal resubmit interval specified by user. - timestamp int64 // timestamp for each round of mining. - ) - - timer := time.NewTimer(0) - <-timer.C // discard the initial tick - - // commit aborts in-flight transaction execution with given signal and resubmits a new one. - commit := func(noempty bool, s int32) { - if interrupt != nil { - atomic.StoreInt32(interrupt, s) - } - interrupt = new(int32) - w.newWorkCh <- &newWorkReq{interrupt: interrupt, noempty: noempty, timestamp: timestamp} - timer.Reset(recommit) - atomic.StoreInt32(&w.newTxs, 0) - } - // recalcRecommit recalculates the resubmitting interval upon feedback. - recalcRecommit := func(target float64, inc bool) { - var ( - prev = float64(recommit.Nanoseconds()) - next float64 - ) - if inc { - next = prev*(1-intervalAdjustRatio) + intervalAdjustRatio*(target+intervalAdjustBias) - // Recap if interval is larger than the maximum time interval - if next > float64(maxRecommitInterval.Nanoseconds()) { - next = float64(maxRecommitInterval.Nanoseconds()) - } - } else { - next = prev*(1-intervalAdjustRatio) + intervalAdjustRatio*(target-intervalAdjustBias) - // Recap if interval is less than the user specified minimum - if next < float64(minRecommit.Nanoseconds()) { - next = float64(minRecommit.Nanoseconds()) - } - } - recommit = time.Duration(int64(next)) - } - // clearPending cleans the stale pending tasks. - clearPending := func(number uint64) { - w.pendingMu.Lock() - for h, t := range w.pendingTasks { - if t.block.NumberU64()+staleThreshold <= number { - delete(w.pendingTasks, h) - } - } - w.pendingMu.Unlock() - } - - for { - select { - case <-w.startCh: - clearPending(w.chain.CurrentBlock().NumberU64()) - timestamp = time.Now().Unix() - commit(false, commitInterruptNewHead) - - case head := <-w.chainHeadCh: - clearPending(head.Block.NumberU64()) - timestamp = time.Now().Unix() - commit(false, commitInterruptNewHead) - - case <-timer.C: - // If mining is running resubmit a new work cycle periodically to pull in - // higher priced transactions. Disable this overhead for pending blocks. - if w.isRunning() && (w.config.Clique == nil || w.config.Clique.Period > 0) { - // Short circuit if no new transaction arrives. - if atomic.LoadInt32(&w.newTxs) == 0 { - timer.Reset(recommit) - continue - } - commit(true, commitInterruptResubmit) - } - - case interval := <-w.resubmitIntervalCh: - // Adjust resubmit interval explicitly by user. - if interval < minRecommitInterval { - log.Warn("Sanitizing miner recommit interval", "provided", interval, "updated", minRecommitInterval) - interval = minRecommitInterval - } - log.Info("Miner recommit interval update", "from", minRecommit, "to", interval) - minRecommit, recommit = interval, interval - - if w.resubmitHook != nil { - w.resubmitHook(minRecommit, recommit) - } - - case adjust := <-w.resubmitAdjustCh: - // Adjust resubmit interval by feedback. - if adjust.inc { - before := recommit - recalcRecommit(float64(recommit.Nanoseconds())/adjust.ratio, true) - log.Trace("Increase miner recommit interval", "from", before, "to", recommit) - } else { - before := recommit - recalcRecommit(float64(minRecommit.Nanoseconds()), false) - log.Trace("Decrease miner recommit interval", "from", before, "to", recommit) - } - - if w.resubmitHook != nil { - w.resubmitHook(minRecommit, recommit) - } - - case <-w.exitCh: - return - } - } -} - -// mainLoop is a standalone goroutine to regenerate the sealing task based on the received event. -func (w *worker) mainLoop() { - defer w.txsSub.Unsubscribe() - defer w.chainHeadSub.Unsubscribe() - defer w.chainSideSub.Unsubscribe() - - for { - select { - case req := <-w.newWorkCh: - w.commitNewWork(req.interrupt, req.noempty, req.timestamp) - - case ev := <-w.chainSideCh: - // Short circuit for duplicate side blocks - if _, exist := w.localUncles[ev.Block.Hash()]; exist { - continue - } - if _, exist := w.remoteUncles[ev.Block.Hash()]; exist { - continue - } - // Add side block to possible uncle block set depending on the author. - if w.isLocalBlock != nil && w.isLocalBlock(ev.Block) { - w.localUncles[ev.Block.Hash()] = ev.Block - } else { - w.remoteUncles[ev.Block.Hash()] = ev.Block - } - // If our mining block contains less than 2 uncle blocks, - // add the new uncle block if valid and regenerate a mining block. - if w.isRunning() && w.current != nil && w.current.uncles.Cardinality() < 2 { - start := time.Now() - if err := w.commitUncle(w.current, ev.Block.Header()); err == nil { - var uncles []*types.Header - w.current.uncles.Each(func(item interface{}) bool { - hash, ok := item.(common.Hash) - if !ok { - return false - } - uncle, exist := w.localUncles[hash] - if !exist { - uncle, exist = w.remoteUncles[hash] - } - if !exist { - return false - } - uncles = append(uncles, uncle.Header()) - return false - }) - w.commit(uncles, nil, true, start) - } - } - - case ev := <-w.txsCh: - // Apply transactions to the pending state if we're not mining. - // - // Note all transactions received may not be continuous with transactions - // already included in the current mining block. These transactions will - // be automatically eliminated. - if !w.isRunning() && w.current != nil { - w.mu.RLock() - coinbase := w.coinbase - w.mu.RUnlock() - - txs := make(map[common.Address]types.Transactions) - for _, tx := range ev.Txs { - acc, _ := types.Sender(w.current.signer, tx) - txs[acc] = append(txs[acc], tx) - } - txset := types.NewTransactionsByPriceAndNonce(w.current.signer, txs) - w.commitTransactions(txset, coinbase, nil) - w.updateSnapshot() - } else { - // If we're mining, but nothing is being processed, wake on new transactions - if w.config.Clique != nil && w.config.Clique.Period == 0 { - w.commitNewWork(nil, false, time.Now().Unix()) - } - } - atomic.AddInt32(&w.newTxs, int32(len(ev.Txs))) - - // System stopped - case <-w.exitCh: - return - case <-w.txsSub.Err(): - return - case <-w.chainHeadSub.Err(): - return - case <-w.chainSideSub.Err(): - return - } - } -} - -// taskLoop is a standalone goroutine to fetch sealing task from the generator and -// push them to consensus engine. -func (w *worker) taskLoop() { - var ( - stopCh chan struct{} - prev common.Hash - ) - - // interrupt aborts the in-flight sealing task. - interrupt := func() { - if stopCh != nil { - close(stopCh) - stopCh = nil - } - } - for { - select { - case task := <-w.taskCh: - if w.newTaskHook != nil { - w.newTaskHook(task) - } - // Reject duplicate sealing work due to resubmitting. - sealHash := w.engine.SealHash(task.block.Header()) - if sealHash == prev { - continue - } - // Interrupt previous sealing operation - interrupt() - stopCh, prev = make(chan struct{}), sealHash - - if w.skipSealHook != nil && w.skipSealHook(task) { - continue - } - w.pendingMu.Lock() - w.pendingTasks[w.engine.SealHash(task.block.Header())] = task - w.pendingMu.Unlock() - - if err := w.engine.Seal(w.chain, task.block, w.resultCh, stopCh); err != nil { - log.Warn("Block sealing failed", "err", err) - } - case <-w.exitCh: - interrupt() - return - } - } -} - -// resultLoop is a standalone goroutine to handle sealing result submitting -// and flush relative data to the database. -func (w *worker) resultLoop() { - for { - select { - case block := <-w.resultCh: - // Short circuit when receiving empty result. - if block == nil { - continue - } - // Short circuit when receiving duplicate result caused by resubmitting. - if w.chain.HasBlock(block.Hash(), block.NumberU64()) { - continue - } - var ( - sealhash = w.engine.SealHash(block.Header()) - hash = block.Hash() - ) - w.pendingMu.RLock() - task, exist := w.pendingTasks[sealhash] - w.pendingMu.RUnlock() - if !exist { - log.Error("Block found but no relative pending task", "number", block.Number(), "sealhash", sealhash, "hash", hash) - continue - } - // Different block could share same sealhash, deep copy here to prevent write-write conflict. - var ( - receipts = make([]*types.Receipt, len(task.receipts)) - logs []*types.Log - ) - for i, receipt := range task.receipts { - // add block location fields - receipt.BlockHash = hash - receipt.BlockNumber = block.Number() - receipt.TransactionIndex = uint(i) - - receipts[i] = new(types.Receipt) - *receipts[i] = *receipt - // Update the block hash in all logs since it is now available and not when the - // receipt/log of individual transactions were created. - for _, log := range receipt.Logs { - log.BlockHash = hash - } - logs = append(logs, receipt.Logs...) - } - // Commit block and state to database. - stat, err := w.chain.WriteBlockWithState(block, receipts, task.state) - if err != nil { - log.Error("Failed writing block to chain", "err", err) - continue - } - log.Info("Successfully sealed new block", "number", block.Number(), "sealhash", sealhash, "hash", hash, - "elapsed", common.PrettyDuration(time.Since(task.createdAt))) - - // Broadcast the block and announce chain insertion event - w.mux.Post(core.NewMinedBlockEvent{Block: block}) - - var events []interface{} - switch stat { - case core.CanonStatTy: - events = append(events, core.ChainEvent{Block: block, Hash: block.Hash(), Logs: logs}) - events = append(events, core.ChainHeadEvent{Block: block}) - case core.SideStatTy: - events = append(events, core.ChainSideEvent{Block: block}) - } - w.chain.PostChainEvents(events, logs) - - // Insert the block into the set of pending ones to resultLoop for confirmations - w.unconfirmed.Insert(block.NumberU64(), block.Hash()) - - case <-w.exitCh: - return - } - } -} - -// makeCurrent creates a new environment for the current cycle. -func (w *worker) makeCurrent(parent *types.Block, header *types.Header) error { - state, err := w.chain.StateAt(parent.Root()) - if err != nil { - return err - } - env := &environment{ - signer: types.NewEIP155Signer(w.config.ChainID), - state: state, - ancestors: mapset.NewSet(), - family: mapset.NewSet(), - uncles: mapset.NewSet(), - header: header, - } - - // when 08 is processed ancestors contain 07 (quick block) - for _, ancestor := range w.chain.GetBlocksFromHash(parent.Hash(), 7) { - for _, uncle := range ancestor.Uncles() { - env.family.Add(uncle.Hash()) - } - env.family.Add(ancestor.Hash()) - env.ancestors.Add(ancestor.Hash()) - } - - // Keep track of transactions which return errors so they can be removed - env.tcount = 0 - w.current = env - return nil -} - -// commitUncle adds the given block to uncle block set, returns error if failed to add. -func (w *worker) commitUncle(env *environment, uncle *types.Header) error { - hash := uncle.Hash() - if env.uncles.Contains(hash) { - return errors.New("uncle not unique") - } - if env.header.ParentHash == uncle.ParentHash { - return errors.New("uncle is sibling") - } - if !env.ancestors.Contains(uncle.ParentHash) { - return errors.New("uncle's parent unknown") - } - if env.family.Contains(hash) { - return errors.New("uncle already included") - } - env.uncles.Add(uncle.Hash()) - return nil -} - -// updateSnapshot updates pending snapshot block and state. -// Note this function assumes the current variable is thread safe. -func (w *worker) updateSnapshot() { - w.snapshotMu.Lock() - defer w.snapshotMu.Unlock() - - var uncles []*types.Header - w.current.uncles.Each(func(item interface{}) bool { - hash, ok := item.(common.Hash) - if !ok { - return false - } - uncle, exist := w.localUncles[hash] - if !exist { - uncle, exist = w.remoteUncles[hash] - } - if !exist { - return false - } - uncles = append(uncles, uncle.Header()) - return false - }) - - w.snapshotBlock = types.NewBlock( - w.current.header, - w.current.txs, - uncles, - w.current.receipts, - ) - - w.snapshotState = w.current.state.Copy() -} - -func (w *worker) commitTransaction(tx *types.Transaction, coinbase common.Address) ([]*types.Log, error) { - snap := w.current.state.Snapshot() - - receipt, _, err := core.ApplyTransaction(w.config, w.chain, &coinbase, w.current.gasPool, w.current.state, w.current.header, tx, &w.current.header.GasUsed, *w.chain.GetVMConfig()) - if err != nil { - w.current.state.RevertToSnapshot(snap) - return nil, err - } - w.current.txs = append(w.current.txs, tx) - w.current.receipts = append(w.current.receipts, receipt) - - return receipt.Logs, nil -} - -func (w *worker) commitTransactions(txs *types.TransactionsByPriceAndNonce, coinbase common.Address, interrupt *int32) bool { - // Short circuit if current is nil - if w.current == nil { - return true - } - - if w.current.gasPool == nil { - w.current.gasPool = new(core.GasPool).AddGas(w.current.header.GasLimit) - } - - var coalescedLogs []*types.Log - - for { - // In the following three cases, we will interrupt the execution of the transaction. - // (1) new head block event arrival, the interrupt signal is 1 - // (2) worker start or restart, the interrupt signal is 1 - // (3) worker recreate the mining block with any newly arrived transactions, the interrupt signal is 2. - // For the first two cases, the semi-finished work will be discarded. - // For the third case, the semi-finished work will be submitted to the consensus engine. - if interrupt != nil && atomic.LoadInt32(interrupt) != commitInterruptNone { - // Notify resubmit loop to increase resubmitting interval due to too frequent commits. - if atomic.LoadInt32(interrupt) == commitInterruptResubmit { - ratio := float64(w.current.header.GasLimit-w.current.gasPool.Gas()) / float64(w.current.header.GasLimit) - if ratio < 0.1 { - ratio = 0.1 - } - w.resubmitAdjustCh <- &intervalAdjust{ - ratio: ratio, - inc: true, - } - } - return atomic.LoadInt32(interrupt) == commitInterruptNewHead - } - // If we don't have enough gas for any further transactions then we're done - if w.current.gasPool.Gas() < params.TxGas { - log.Trace("Not enough gas for further transactions", "have", w.current.gasPool, "want", params.TxGas) - break - } - // Retrieve the next transaction and abort if all done - tx := txs.Peek() - if tx == nil { - break - } - // Error may be ignored here. The error has already been checked - // during transaction acceptance is the transaction pool. - // - // We use the eip155 signer regardless of the current hf. - from, _ := types.Sender(w.current.signer, tx) - // Check whether the tx is replay protected. If we're not in the EIP155 hf - // phase, start ignoring the sender until we do. - if tx.Protected() && !w.config.IsEIP155(w.current.header.Number) { - log.Trace("Ignoring reply protected transaction", "hash", tx.Hash(), "eip155", w.config.EIP155Block) - - txs.Pop() - continue - } - // Start executing the transaction - w.current.state.Prepare(tx.Hash(), common.Hash{}, w.current.tcount) - - logs, err := w.commitTransaction(tx, coinbase) - switch err { - case core.ErrGasLimitReached: - // Pop the current out-of-gas transaction without shifting in the next from the account - log.Trace("Gas limit exceeded for current block", "sender", from) - txs.Pop() - - case core.ErrNonceTooLow: - // New head notification data race between the transaction pool and miner, shift - log.Trace("Skipping transaction with low nonce", "sender", from, "nonce", tx.Nonce()) - txs.Shift() - - case core.ErrNonceTooHigh: - // Reorg notification data race between the transaction pool and miner, skip account = - log.Trace("Skipping account with hight nonce", "sender", from, "nonce", tx.Nonce()) - txs.Pop() - - case nil: - // Everything ok, collect the logs and shift in the next transaction from the same account - coalescedLogs = append(coalescedLogs, logs...) - w.current.tcount++ - txs.Shift() - - default: - // Strange error, discard the transaction and get the next in line (note, the - // nonce-too-high clause will prevent us from executing in vain). - log.Debug("Transaction failed, account skipped", "hash", tx.Hash(), "err", err) - txs.Shift() - } - } - - if !w.isRunning() && len(coalescedLogs) > 0 { - // We don't push the pendingLogsEvent while we are mining. The reason is that - // when we are mining, the worker will regenerate a mining block every 3 seconds. - // In order to avoid pushing the repeated pendingLog, we disable the pending log pushing. - - // make a copy, the state caches the logs and these logs get "upgraded" from pending to mined - // logs by filling in the block hash when the block was mined by the local miner. This can - // cause a race condition if a log was "upgraded" before the PendingLogsEvent is processed. - cpy := make([]*types.Log, len(coalescedLogs)) - for i, l := range coalescedLogs { - cpy[i] = new(types.Log) - *cpy[i] = *l - } - go w.mux.Post(core.PendingLogsEvent{Logs: cpy}) - } - // Notify resubmit loop to decrease resubmitting interval if current interval is larger - // than the user-specified one. - if interrupt != nil { - w.resubmitAdjustCh <- &intervalAdjust{inc: false} - } - return false -} - -// commitNewWork generates several new sealing tasks based on the parent block. -func (w *worker) commitNewWork(interrupt *int32, noempty bool, timestamp int64) { - w.mu.RLock() - defer w.mu.RUnlock() - - tstart := time.Now() - parent := w.chain.CurrentBlock() - - if parent.Time() >= uint64(timestamp) { - timestamp = int64(parent.Time() + 1) - } - // this will ensure we're not going off too far in the future - if now := time.Now().Unix(); timestamp > now+1 { - wait := time.Duration(timestamp-now) * time.Second - log.Info("Mining too far in the future", "wait", common.PrettyDuration(wait)) - time.Sleep(wait) - } - - num := parent.Number() - header := &types.Header{ - ParentHash: parent.Hash(), - Number: num.Add(num, common.Big1), - GasLimit: core.CalcGasLimit(parent, w.gasFloor, w.gasCeil), - Extra: w.extra, - Time: uint64(timestamp), - } - // Only set the coinbase if our consensus engine is running (avoid spurious block rewards) - if w.isRunning() { - if w.coinbase == (common.Address{}) { - log.Error("Refusing to mine without etherbase") - return - } - header.Coinbase = w.coinbase - } - if err := w.engine.Prepare(w.chain, header); err != nil { - log.Error("Failed to prepare header for mining", "err", err) - return - } - // If we are care about TheDAO hard-fork check whether to override the extra-data or not - if daoBlock := w.config.DAOForkBlock; daoBlock != nil { - // Check whether the block is among the fork extra-override range - limit := new(big.Int).Add(daoBlock, params.DAOForkExtraRange) - if header.Number.Cmp(daoBlock) >= 0 && header.Number.Cmp(limit) < 0 { - // Depending whether we support or oppose the fork, override differently - if w.config.DAOForkSupport { - header.Extra = common.CopyBytes(params.DAOForkBlockExtra) - } else if bytes.Equal(header.Extra, params.DAOForkBlockExtra) { - header.Extra = []byte{} // If miner opposes, don't let it use the reserved extra-data - } - } - } - // Could potentially happen if starting to mine in an odd state. - err := w.makeCurrent(parent, header) - if err != nil { - log.Error("Failed to create mining context", "err", err) - return - } - // Create the current work task and check any fork transitions needed - env := w.current - if w.config.DAOForkSupport && w.config.DAOForkBlock != nil && w.config.DAOForkBlock.Cmp(header.Number) == 0 { - misc.ApplyDAOHardFork(env.state) - } - // Accumulate the uncles for the current block - uncles := make([]*types.Header, 0, 2) - commitUncles := func(blocks map[common.Hash]*types.Block) { - // Clean up stale uncle blocks first - for hash, uncle := range blocks { - if uncle.NumberU64()+staleThreshold <= header.Number.Uint64() { - delete(blocks, hash) - } - } - for hash, uncle := range blocks { - if len(uncles) == 2 { - break - } - if err := w.commitUncle(env, uncle.Header()); err != nil { - log.Trace("Possible uncle rejected", "hash", hash, "reason", err) - } else { - log.Debug("Committing new uncle to block", "hash", hash) - uncles = append(uncles, uncle.Header()) - } - } - } - // Prefer to locally generated uncle - commitUncles(w.localUncles) - commitUncles(w.remoteUncles) - - if !noempty { - // Create an empty block based on temporary copied state for sealing in advance without waiting block - // execution finished. - w.commit(uncles, nil, false, tstart) - } - - // Fill the block with all available pending transactions. - pending, err := w.eth.TxPool().Pending() - if err != nil { - log.Error("Failed to fetch pending transactions", "err", err) - return - } - // Short circuit if there is no available pending transactions - if len(pending) == 0 { - w.updateSnapshot() - return - } - // Split the pending transactions into locals and remotes - localTxs, remoteTxs := make(map[common.Address]types.Transactions), pending - for _, account := range w.eth.TxPool().Locals() { - if txs := remoteTxs[account]; len(txs) > 0 { - delete(remoteTxs, account) - localTxs[account] = txs - } - } - if len(localTxs) > 0 { - txs := types.NewTransactionsByPriceAndNonce(w.current.signer, localTxs) - if w.commitTransactions(txs, w.coinbase, interrupt) { - return - } - } - if len(remoteTxs) > 0 { - txs := types.NewTransactionsByPriceAndNonce(w.current.signer, remoteTxs) - if w.commitTransactions(txs, w.coinbase, interrupt) { - return - } - } - w.commit(uncles, w.fullTaskHook, true, tstart) -} - -// commit runs any post-transaction state modifications, assembles the final block -// and commits new work if consensus engine is running. -func (w *worker) commit(uncles []*types.Header, interval func(), update bool, start time.Time) error { - // Deep copy receipts here to avoid interaction between different tasks. - receipts := make([]*types.Receipt, len(w.current.receipts)) - for i, l := range w.current.receipts { - receipts[i] = new(types.Receipt) - *receipts[i] = *l - } - s := w.current.state.Copy() - block, err := w.engine.Finalize(w.chain, w.current.header, s, w.current.txs, uncles, w.current.receipts) - if err != nil { - return err - } - if w.isRunning() { - if interval != nil { - interval() - } - select { - case w.taskCh <- &task{receipts: receipts, state: s, block: block, createdAt: time.Now()}: - w.unconfirmed.Shift(block.NumberU64() - 1) - - feesWei := new(big.Int) - for i, tx := range block.Transactions() { - feesWei.Add(feesWei, new(big.Int).Mul(new(big.Int).SetUint64(receipts[i].GasUsed), tx.GasPrice())) - } - feesEth := new(big.Float).Quo(new(big.Float).SetInt(feesWei), new(big.Float).SetInt(big.NewInt(params.Ether))) - - log.Info("Commit new mining work", "number", block.Number(), "sealhash", w.engine.SealHash(block.Header()), - "uncles", len(uncles), "txs", w.current.tcount, "gas", block.GasUsed(), "fees", feesEth, "elapsed", common.PrettyDuration(time.Since(start))) - - case <-w.exitCh: - log.Info("Worker has exited") - } - } - if update { - w.updateSnapshot() - } - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/mobile/types.go b/vendor/github.com/ethereum/go-ethereum/mobile/types.go deleted file mode 100644 index b9c44c25..00000000 --- a/vendor/github.com/ethereum/go-ethereum/mobile/types.go +++ /dev/null @@ -1,439 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Contains all the wrappers from the core/types package. - -package geth - -import ( - "encoding/json" - "errors" - "fmt" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/rlp" - whisper "github.com/ethereum/go-ethereum/whisper/whisperv6" -) - -// A Nonce is a 64-bit hash which proves (combined with the mix-hash) that -// a sufficient amount of computation has been carried out on a block. -type Nonce struct { - nonce types.BlockNonce -} - -// GetBytes retrieves the byte representation of the block nonce. -func (n *Nonce) GetBytes() []byte { - return n.nonce[:] -} - -// GetHex retrieves the hex string representation of the block nonce. -func (n *Nonce) GetHex() string { - return fmt.Sprintf("0x%x", n.nonce[:]) -} - -// Bloom represents a 256 bit bloom filter. -type Bloom struct { - bloom types.Bloom -} - -// GetBytes retrieves the byte representation of the bloom filter. -func (b *Bloom) GetBytes() []byte { - return b.bloom[:] -} - -// GetHex retrieves the hex string representation of the bloom filter. -func (b *Bloom) GetHex() string { - return fmt.Sprintf("0x%x", b.bloom[:]) -} - -// Header represents a block header in the Ethereum blockchain. -type Header struct { - header *types.Header -} - -// NewHeaderFromRLP parses a header from an RLP data dump. -func NewHeaderFromRLP(data []byte) (*Header, error) { - h := &Header{ - header: new(types.Header), - } - if err := rlp.DecodeBytes(common.CopyBytes(data), h.header); err != nil { - return nil, err - } - return h, nil -} - -// EncodeRLP encodes a header into an RLP data dump. -func (h *Header) EncodeRLP() ([]byte, error) { - return rlp.EncodeToBytes(h.header) -} - -// NewHeaderFromJSON parses a header from a JSON data dump. -func NewHeaderFromJSON(data string) (*Header, error) { - h := &Header{ - header: new(types.Header), - } - if err := json.Unmarshal([]byte(data), h.header); err != nil { - return nil, err - } - return h, nil -} - -// EncodeJSON encodes a header into a JSON data dump. -func (h *Header) EncodeJSON() (string, error) { - data, err := json.Marshal(h.header) - return string(data), err -} - -func (h *Header) GetParentHash() *Hash { return &Hash{h.header.ParentHash} } -func (h *Header) GetUncleHash() *Hash { return &Hash{h.header.UncleHash} } -func (h *Header) GetCoinbase() *Address { return &Address{h.header.Coinbase} } -func (h *Header) GetRoot() *Hash { return &Hash{h.header.Root} } -func (h *Header) GetTxHash() *Hash { return &Hash{h.header.TxHash} } -func (h *Header) GetReceiptHash() *Hash { return &Hash{h.header.ReceiptHash} } -func (h *Header) GetBloom() *Bloom { return &Bloom{h.header.Bloom} } -func (h *Header) GetDifficulty() *BigInt { return &BigInt{h.header.Difficulty} } -func (h *Header) GetNumber() int64 { return h.header.Number.Int64() } -func (h *Header) GetGasLimit() int64 { return int64(h.header.GasLimit) } -func (h *Header) GetGasUsed() int64 { return int64(h.header.GasUsed) } -func (h *Header) GetTime() int64 { return int64(h.header.Time) } -func (h *Header) GetExtra() []byte { return h.header.Extra } -func (h *Header) GetMixDigest() *Hash { return &Hash{h.header.MixDigest} } -func (h *Header) GetNonce() *Nonce { return &Nonce{h.header.Nonce} } -func (h *Header) GetHash() *Hash { return &Hash{h.header.Hash()} } - -// Headers represents a slice of headers. -type Headers struct{ headers []*types.Header } - -// Size returns the number of headers in the slice. -func (h *Headers) Size() int { - return len(h.headers) -} - -// Get returns the header at the given index from the slice. -func (h *Headers) Get(index int) (header *Header, _ error) { - if index < 0 || index >= len(h.headers) { - return nil, errors.New("index out of bounds") - } - return &Header{h.headers[index]}, nil -} - -// Block represents an entire block in the Ethereum blockchain. -type Block struct { - block *types.Block -} - -// NewBlockFromRLP parses a block from an RLP data dump. -func NewBlockFromRLP(data []byte) (*Block, error) { - b := &Block{ - block: new(types.Block), - } - if err := rlp.DecodeBytes(common.CopyBytes(data), b.block); err != nil { - return nil, err - } - return b, nil -} - -// EncodeRLP encodes a block into an RLP data dump. -func (b *Block) EncodeRLP() ([]byte, error) { - return rlp.EncodeToBytes(b.block) -} - -// NewBlockFromJSON parses a block from a JSON data dump. -func NewBlockFromJSON(data string) (*Block, error) { - b := &Block{ - block: new(types.Block), - } - if err := json.Unmarshal([]byte(data), b.block); err != nil { - return nil, err - } - return b, nil -} - -// EncodeJSON encodes a block into a JSON data dump. -func (b *Block) EncodeJSON() (string, error) { - data, err := json.Marshal(b.block) - return string(data), err -} - -func (b *Block) GetParentHash() *Hash { return &Hash{b.block.ParentHash()} } -func (b *Block) GetUncleHash() *Hash { return &Hash{b.block.UncleHash()} } -func (b *Block) GetCoinbase() *Address { return &Address{b.block.Coinbase()} } -func (b *Block) GetRoot() *Hash { return &Hash{b.block.Root()} } -func (b *Block) GetTxHash() *Hash { return &Hash{b.block.TxHash()} } -func (b *Block) GetReceiptHash() *Hash { return &Hash{b.block.ReceiptHash()} } -func (b *Block) GetBloom() *Bloom { return &Bloom{b.block.Bloom()} } -func (b *Block) GetDifficulty() *BigInt { return &BigInt{b.block.Difficulty()} } -func (b *Block) GetNumber() int64 { return b.block.Number().Int64() } -func (b *Block) GetGasLimit() int64 { return int64(b.block.GasLimit()) } -func (b *Block) GetGasUsed() int64 { return int64(b.block.GasUsed()) } -func (b *Block) GetTime() int64 { return int64(b.block.Time()) } -func (b *Block) GetExtra() []byte { return b.block.Extra() } -func (b *Block) GetMixDigest() *Hash { return &Hash{b.block.MixDigest()} } -func (b *Block) GetNonce() int64 { return int64(b.block.Nonce()) } -func (b *Block) GetHash() *Hash { return &Hash{b.block.Hash()} } -func (b *Block) GetHeader() *Header { return &Header{b.block.Header()} } -func (b *Block) GetUncles() *Headers { return &Headers{b.block.Uncles()} } -func (b *Block) GetTransactions() *Transactions { return &Transactions{b.block.Transactions()} } -func (b *Block) GetTransaction(hash *Hash) *Transaction { - return &Transaction{b.block.Transaction(hash.hash)} -} - -// Transaction represents a single Ethereum transaction. -type Transaction struct { - tx *types.Transaction -} - -// NewContractCreation creates a new transaction for deploying a new contract with -// the given properties. -func NewContractCreation(nonce int64, amount *BigInt, gasLimit int64, gasPrice *BigInt, data []byte) *Transaction { - return &Transaction{types.NewContractCreation(uint64(nonce), amount.bigint, uint64(gasLimit), gasPrice.bigint, common.CopyBytes(data))} -} - -// NewTransaction creates a new transaction with the given properties. Contracts -// can be created by transacting with a nil recipient. -func NewTransaction(nonce int64, to *Address, amount *BigInt, gasLimit int64, gasPrice *BigInt, data []byte) *Transaction { - if to == nil { - return &Transaction{types.NewContractCreation(uint64(nonce), amount.bigint, uint64(gasLimit), gasPrice.bigint, common.CopyBytes(data))} - } - return &Transaction{types.NewTransaction(uint64(nonce), to.address, amount.bigint, uint64(gasLimit), gasPrice.bigint, common.CopyBytes(data))} -} - -// NewTransactionFromRLP parses a transaction from an RLP data dump. -func NewTransactionFromRLP(data []byte) (*Transaction, error) { - tx := &Transaction{ - tx: new(types.Transaction), - } - if err := rlp.DecodeBytes(common.CopyBytes(data), tx.tx); err != nil { - return nil, err - } - return tx, nil -} - -// EncodeRLP encodes a transaction into an RLP data dump. -func (tx *Transaction) EncodeRLP() ([]byte, error) { - return rlp.EncodeToBytes(tx.tx) -} - -// NewTransactionFromJSON parses a transaction from a JSON data dump. -func NewTransactionFromJSON(data string) (*Transaction, error) { - tx := &Transaction{ - tx: new(types.Transaction), - } - if err := json.Unmarshal([]byte(data), tx.tx); err != nil { - return nil, err - } - return tx, nil -} - -// EncodeJSON encodes a transaction into a JSON data dump. -func (tx *Transaction) EncodeJSON() (string, error) { - data, err := json.Marshal(tx.tx) - return string(data), err -} - -func (tx *Transaction) GetData() []byte { return tx.tx.Data() } -func (tx *Transaction) GetGas() int64 { return int64(tx.tx.Gas()) } -func (tx *Transaction) GetGasPrice() *BigInt { return &BigInt{tx.tx.GasPrice()} } -func (tx *Transaction) GetValue() *BigInt { return &BigInt{tx.tx.Value()} } -func (tx *Transaction) GetNonce() int64 { return int64(tx.tx.Nonce()) } - -func (tx *Transaction) GetHash() *Hash { return &Hash{tx.tx.Hash()} } -func (tx *Transaction) GetCost() *BigInt { return &BigInt{tx.tx.Cost()} } - -// Deprecated: GetSigHash cannot know which signer to use. -func (tx *Transaction) GetSigHash() *Hash { return &Hash{types.HomesteadSigner{}.Hash(tx.tx)} } - -// Deprecated: use EthereumClient.TransactionSender -func (tx *Transaction) GetFrom(chainID *BigInt) (address *Address, _ error) { - var signer types.Signer = types.HomesteadSigner{} - if chainID != nil { - signer = types.NewEIP155Signer(chainID.bigint) - } - from, err := types.Sender(signer, tx.tx) - return &Address{from}, err -} - -func (tx *Transaction) GetTo() *Address { - if to := tx.tx.To(); to != nil { - return &Address{*to} - } - return nil -} - -func (tx *Transaction) WithSignature(sig []byte, chainID *BigInt) (signedTx *Transaction, _ error) { - var signer types.Signer = types.HomesteadSigner{} - if chainID != nil { - signer = types.NewEIP155Signer(chainID.bigint) - } - rawTx, err := tx.tx.WithSignature(signer, common.CopyBytes(sig)) - return &Transaction{rawTx}, err -} - -// Transactions represents a slice of transactions. -type Transactions struct{ txs types.Transactions } - -// Size returns the number of transactions in the slice. -func (txs *Transactions) Size() int { - return len(txs.txs) -} - -// Get returns the transaction at the given index from the slice. -func (txs *Transactions) Get(index int) (tx *Transaction, _ error) { - if index < 0 || index >= len(txs.txs) { - return nil, errors.New("index out of bounds") - } - return &Transaction{txs.txs[index]}, nil -} - -// Receipt represents the results of a transaction. -type Receipt struct { - receipt *types.Receipt -} - -// NewReceiptFromRLP parses a transaction receipt from an RLP data dump. -func NewReceiptFromRLP(data []byte) (*Receipt, error) { - r := &Receipt{ - receipt: new(types.Receipt), - } - if err := rlp.DecodeBytes(common.CopyBytes(data), r.receipt); err != nil { - return nil, err - } - return r, nil -} - -// EncodeRLP encodes a transaction receipt into an RLP data dump. -func (r *Receipt) EncodeRLP() ([]byte, error) { - return rlp.EncodeToBytes(r.receipt) -} - -// NewReceiptFromJSON parses a transaction receipt from a JSON data dump. -func NewReceiptFromJSON(data string) (*Receipt, error) { - r := &Receipt{ - receipt: new(types.Receipt), - } - if err := json.Unmarshal([]byte(data), r.receipt); err != nil { - return nil, err - } - return r, nil -} - -// EncodeJSON encodes a transaction receipt into a JSON data dump. -func (r *Receipt) EncodeJSON() (string, error) { - data, err := rlp.EncodeToBytes(r.receipt) - return string(data), err -} - -func (r *Receipt) GetStatus() int { return int(r.receipt.Status) } -func (r *Receipt) GetPostState() []byte { return r.receipt.PostState } -func (r *Receipt) GetCumulativeGasUsed() int64 { return int64(r.receipt.CumulativeGasUsed) } -func (r *Receipt) GetBloom() *Bloom { return &Bloom{r.receipt.Bloom} } -func (r *Receipt) GetLogs() *Logs { return &Logs{r.receipt.Logs} } -func (r *Receipt) GetTxHash() *Hash { return &Hash{r.receipt.TxHash} } -func (r *Receipt) GetContractAddress() *Address { return &Address{r.receipt.ContractAddress} } -func (r *Receipt) GetGasUsed() int64 { return int64(r.receipt.GasUsed) } - -// Info represents a diagnostic information about the whisper node. -type Info struct { - info *whisper.Info -} - -// NewMessage represents a new whisper message that is posted through the RPC. -type NewMessage struct { - newMessage *whisper.NewMessage -} - -func NewNewMessage() *NewMessage { - nm := &NewMessage{ - newMessage: new(whisper.NewMessage), - } - return nm -} - -func (nm *NewMessage) GetSymKeyID() string { return nm.newMessage.SymKeyID } -func (nm *NewMessage) SetSymKeyID(symKeyID string) { nm.newMessage.SymKeyID = symKeyID } -func (nm *NewMessage) GetPublicKey() []byte { return nm.newMessage.PublicKey } -func (nm *NewMessage) SetPublicKey(publicKey []byte) { - nm.newMessage.PublicKey = common.CopyBytes(publicKey) -} -func (nm *NewMessage) GetSig() string { return nm.newMessage.Sig } -func (nm *NewMessage) SetSig(sig string) { nm.newMessage.Sig = sig } -func (nm *NewMessage) GetTTL() int64 { return int64(nm.newMessage.TTL) } -func (nm *NewMessage) SetTTL(ttl int64) { nm.newMessage.TTL = uint32(ttl) } -func (nm *NewMessage) GetPayload() []byte { return nm.newMessage.Payload } -func (nm *NewMessage) SetPayload(payload []byte) { nm.newMessage.Payload = common.CopyBytes(payload) } -func (nm *NewMessage) GetPowTime() int64 { return int64(nm.newMessage.PowTime) } -func (nm *NewMessage) SetPowTime(powTime int64) { nm.newMessage.PowTime = uint32(powTime) } -func (nm *NewMessage) GetPowTarget() float64 { return nm.newMessage.PowTarget } -func (nm *NewMessage) SetPowTarget(powTarget float64) { nm.newMessage.PowTarget = powTarget } -func (nm *NewMessage) GetTargetPeer() string { return nm.newMessage.TargetPeer } -func (nm *NewMessage) SetTargetPeer(targetPeer string) { nm.newMessage.TargetPeer = targetPeer } -func (nm *NewMessage) GetTopic() []byte { return nm.newMessage.Topic[:] } -func (nm *NewMessage) SetTopic(topic []byte) { nm.newMessage.Topic = whisper.BytesToTopic(topic) } - -// Message represents a whisper message. -type Message struct { - message *whisper.Message -} - -func (m *Message) GetSig() []byte { return m.message.Sig } -func (m *Message) GetTTL() int64 { return int64(m.message.TTL) } -func (m *Message) GetTimestamp() int64 { return int64(m.message.Timestamp) } -func (m *Message) GetPayload() []byte { return m.message.Payload } -func (m *Message) GetPoW() float64 { return m.message.PoW } -func (m *Message) GetHash() []byte { return m.message.Hash } -func (m *Message) GetDst() []byte { return m.message.Dst } - -// Messages represents an array of messages. -type Messages struct { - messages []*whisper.Message -} - -// Size returns the number of messages in the slice. -func (m *Messages) Size() int { - return len(m.messages) -} - -// Get returns the message at the given index from the slice. -func (m *Messages) Get(index int) (message *Message, _ error) { - if index < 0 || index >= len(m.messages) { - return nil, errors.New("index out of bounds") - } - return &Message{m.messages[index]}, nil -} - -// Criteria holds various filter options for inbound messages. -type Criteria struct { - criteria *whisper.Criteria -} - -func NewCriteria(topic []byte) *Criteria { - c := &Criteria{ - criteria: new(whisper.Criteria), - } - encodedTopic := whisper.BytesToTopic(topic) - c.criteria.Topics = []whisper.TopicType{encodedTopic} - return c -} - -func (c *Criteria) GetSymKeyID() string { return c.criteria.SymKeyID } -func (c *Criteria) SetSymKeyID(symKeyID string) { c.criteria.SymKeyID = symKeyID } -func (c *Criteria) GetPrivateKeyID() string { return c.criteria.PrivateKeyID } -func (c *Criteria) SetPrivateKeyID(privateKeyID string) { c.criteria.PrivateKeyID = privateKeyID } -func (c *Criteria) GetSig() []byte { return c.criteria.Sig } -func (c *Criteria) SetSig(sig []byte) { c.criteria.Sig = common.CopyBytes(sig) } -func (c *Criteria) GetMinPow() float64 { return c.criteria.MinPow } -func (c *Criteria) SetMinPow(pow float64) { c.criteria.MinPow = pow } diff --git a/vendor/github.com/ethereum/go-ethereum/p2p/rlpx_test.go b/vendor/github.com/ethereum/go-ethereum/p2p/rlpx_test.go deleted file mode 100644 index e62196ff..00000000 --- a/vendor/github.com/ethereum/go-ethereum/p2p/rlpx_test.go +++ /dev/null @@ -1,600 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package p2p - -import ( - "bytes" - "crypto/ecdsa" - "crypto/rand" - "errors" - "fmt" - "io" - "io/ioutil" - "net" - "reflect" - "strings" - "sync" - "testing" - "time" - - "github.com/davecgh/go-spew/spew" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/crypto/ecies" - "github.com/ethereum/go-ethereum/p2p/simulations/pipes" - "github.com/ethereum/go-ethereum/rlp" - "golang.org/x/crypto/sha3" -) - -func TestSharedSecret(t *testing.T) { - prv0, _ := crypto.GenerateKey() // = ecdsa.GenerateKey(crypto.S256(), rand.Reader) - pub0 := &prv0.PublicKey - prv1, _ := crypto.GenerateKey() - pub1 := &prv1.PublicKey - - ss0, err := ecies.ImportECDSA(prv0).GenerateShared(ecies.ImportECDSAPublic(pub1), sskLen, sskLen) - if err != nil { - return - } - ss1, err := ecies.ImportECDSA(prv1).GenerateShared(ecies.ImportECDSAPublic(pub0), sskLen, sskLen) - if err != nil { - return - } - t.Logf("Secret:\n%v %x\n%v %x", len(ss0), ss0, len(ss0), ss1) - if !bytes.Equal(ss0, ss1) { - t.Errorf("dont match :(") - } -} - -func TestEncHandshake(t *testing.T) { - for i := 0; i < 10; i++ { - start := time.Now() - if err := testEncHandshake(nil); err != nil { - t.Fatalf("i=%d %v", i, err) - } - t.Logf("(without token) %d %v\n", i+1, time.Since(start)) - } - for i := 0; i < 10; i++ { - tok := make([]byte, shaLen) - rand.Reader.Read(tok) - start := time.Now() - if err := testEncHandshake(tok); err != nil { - t.Fatalf("i=%d %v", i, err) - } - t.Logf("(with token) %d %v\n", i+1, time.Since(start)) - } -} - -func testEncHandshake(token []byte) error { - type result struct { - side string - pubkey *ecdsa.PublicKey - err error - } - var ( - prv0, _ = crypto.GenerateKey() - prv1, _ = crypto.GenerateKey() - fd0, fd1 = net.Pipe() - c0, c1 = newRLPX(fd0).(*rlpx), newRLPX(fd1).(*rlpx) - output = make(chan result) - ) - - go func() { - r := result{side: "initiator"} - defer func() { output <- r }() - defer fd0.Close() - - r.pubkey, r.err = c0.doEncHandshake(prv0, &prv1.PublicKey) - if r.err != nil { - return - } - if !reflect.DeepEqual(r.pubkey, &prv1.PublicKey) { - r.err = fmt.Errorf("remote pubkey mismatch: got %v, want: %v", r.pubkey, &prv1.PublicKey) - } - }() - go func() { - r := result{side: "receiver"} - defer func() { output <- r }() - defer fd1.Close() - - r.pubkey, r.err = c1.doEncHandshake(prv1, nil) - if r.err != nil { - return - } - if !reflect.DeepEqual(r.pubkey, &prv0.PublicKey) { - r.err = fmt.Errorf("remote ID mismatch: got %v, want: %v", r.pubkey, &prv0.PublicKey) - } - }() - - // wait for results from both sides - r1, r2 := <-output, <-output - if r1.err != nil { - return fmt.Errorf("%s side error: %v", r1.side, r1.err) - } - if r2.err != nil { - return fmt.Errorf("%s side error: %v", r2.side, r2.err) - } - - // compare derived secrets - if !reflect.DeepEqual(c0.rw.egressMAC, c1.rw.ingressMAC) { - return fmt.Errorf("egress mac mismatch:\n c0.rw: %#v\n c1.rw: %#v", c0.rw.egressMAC, c1.rw.ingressMAC) - } - if !reflect.DeepEqual(c0.rw.ingressMAC, c1.rw.egressMAC) { - return fmt.Errorf("ingress mac mismatch:\n c0.rw: %#v\n c1.rw: %#v", c0.rw.ingressMAC, c1.rw.egressMAC) - } - if !reflect.DeepEqual(c0.rw.enc, c1.rw.enc) { - return fmt.Errorf("enc cipher mismatch:\n c0.rw: %#v\n c1.rw: %#v", c0.rw.enc, c1.rw.enc) - } - if !reflect.DeepEqual(c0.rw.dec, c1.rw.dec) { - return fmt.Errorf("dec cipher mismatch:\n c0.rw: %#v\n c1.rw: %#v", c0.rw.dec, c1.rw.dec) - } - return nil -} - -func TestProtocolHandshake(t *testing.T) { - var ( - prv0, _ = crypto.GenerateKey() - pub0 = crypto.FromECDSAPub(&prv0.PublicKey)[1:] - hs0 = &protoHandshake{Version: 3, ID: pub0, Caps: []Cap{{"a", 0}, {"b", 2}}} - - prv1, _ = crypto.GenerateKey() - pub1 = crypto.FromECDSAPub(&prv1.PublicKey)[1:] - hs1 = &protoHandshake{Version: 3, ID: pub1, Caps: []Cap{{"c", 1}, {"d", 3}}} - - wg sync.WaitGroup - ) - - fd0, fd1, err := pipes.TCPPipe() - if err != nil { - t.Fatal(err) - } - - wg.Add(2) - go func() { - defer wg.Done() - defer fd0.Close() - rlpx := newRLPX(fd0) - rpubkey, err := rlpx.doEncHandshake(prv0, &prv1.PublicKey) - if err != nil { - t.Errorf("dial side enc handshake failed: %v", err) - return - } - if !reflect.DeepEqual(rpubkey, &prv1.PublicKey) { - t.Errorf("dial side remote pubkey mismatch: got %v, want %v", rpubkey, &prv1.PublicKey) - return - } - - phs, err := rlpx.doProtoHandshake(hs0) - if err != nil { - t.Errorf("dial side proto handshake error: %v", err) - return - } - phs.Rest = nil - if !reflect.DeepEqual(phs, hs1) { - t.Errorf("dial side proto handshake mismatch:\ngot: %s\nwant: %s\n", spew.Sdump(phs), spew.Sdump(hs1)) - return - } - rlpx.close(DiscQuitting) - }() - go func() { - defer wg.Done() - defer fd1.Close() - rlpx := newRLPX(fd1) - rpubkey, err := rlpx.doEncHandshake(prv1, nil) - if err != nil { - t.Errorf("listen side enc handshake failed: %v", err) - return - } - if !reflect.DeepEqual(rpubkey, &prv0.PublicKey) { - t.Errorf("listen side remote pubkey mismatch: got %v, want %v", rpubkey, &prv0.PublicKey) - return - } - - phs, err := rlpx.doProtoHandshake(hs1) - if err != nil { - t.Errorf("listen side proto handshake error: %v", err) - return - } - phs.Rest = nil - if !reflect.DeepEqual(phs, hs0) { - t.Errorf("listen side proto handshake mismatch:\ngot: %s\nwant: %s\n", spew.Sdump(phs), spew.Sdump(hs0)) - return - } - - if err := ExpectMsg(rlpx, discMsg, []DiscReason{DiscQuitting}); err != nil { - t.Errorf("error receiving disconnect: %v", err) - } - }() - wg.Wait() -} - -func TestProtocolHandshakeErrors(t *testing.T) { - tests := []struct { - code uint64 - msg interface{} - err error - }{ - { - code: discMsg, - msg: []DiscReason{DiscQuitting}, - err: DiscQuitting, - }, - { - code: 0x989898, - msg: []byte{1}, - err: errors.New("expected handshake, got 989898"), - }, - { - code: handshakeMsg, - msg: make([]byte, baseProtocolMaxMsgSize+2), - err: errors.New("message too big"), - }, - { - code: handshakeMsg, - msg: []byte{1, 2, 3}, - err: newPeerError(errInvalidMsg, "(code 0) (size 4) rlp: expected input list for p2p.protoHandshake"), - }, - { - code: handshakeMsg, - msg: &protoHandshake{Version: 3}, - err: DiscInvalidIdentity, - }, - } - - for i, test := range tests { - p1, p2 := MsgPipe() - go Send(p1, test.code, test.msg) - _, err := readProtocolHandshake(p2) - if !reflect.DeepEqual(err, test.err) { - t.Errorf("test %d: error mismatch: got %q, want %q", i, err, test.err) - } - } -} - -func TestRLPXFrameFake(t *testing.T) { - buf := new(bytes.Buffer) - hash := fakeHash([]byte{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) - rw := newRLPXFrameRW(buf, secrets{ - AES: crypto.Keccak256(), - MAC: crypto.Keccak256(), - IngressMAC: hash, - EgressMAC: hash, - }) - - golden := unhex(` -00828ddae471818bb0bfa6b551d1cb42 -01010101010101010101010101010101 -ba628a4ba590cb43f7848f41c4382885 -01010101010101010101010101010101 -`) - - // Check WriteMsg. This puts a message into the buffer. - if err := Send(rw, 8, []uint{1, 2, 3, 4}); err != nil { - t.Fatalf("WriteMsg error: %v", err) - } - written := buf.Bytes() - if !bytes.Equal(written, golden) { - t.Fatalf("output mismatch:\n got: %x\n want: %x", written, golden) - } - - // Check ReadMsg. It reads the message encoded by WriteMsg, which - // is equivalent to the golden message above. - msg, err := rw.ReadMsg() - if err != nil { - t.Fatalf("ReadMsg error: %v", err) - } - if msg.Size != 5 { - t.Errorf("msg size mismatch: got %d, want %d", msg.Size, 5) - } - if msg.Code != 8 { - t.Errorf("msg code mismatch: got %d, want %d", msg.Code, 8) - } - payload, _ := ioutil.ReadAll(msg.Payload) - wantPayload := unhex("C401020304") - if !bytes.Equal(payload, wantPayload) { - t.Errorf("msg payload mismatch:\ngot %x\nwant %x", payload, wantPayload) - } -} - -type fakeHash []byte - -func (fakeHash) Write(p []byte) (int, error) { return len(p), nil } -func (fakeHash) Reset() {} -func (fakeHash) BlockSize() int { return 0 } - -func (h fakeHash) Size() int { return len(h) } -func (h fakeHash) Sum(b []byte) []byte { return append(b, h...) } - -func TestRLPXFrameRW(t *testing.T) { - var ( - aesSecret = make([]byte, 16) - macSecret = make([]byte, 16) - egressMACinit = make([]byte, 32) - ingressMACinit = make([]byte, 32) - ) - for _, s := range [][]byte{aesSecret, macSecret, egressMACinit, ingressMACinit} { - rand.Read(s) - } - conn := new(bytes.Buffer) - - s1 := secrets{ - AES: aesSecret, - MAC: macSecret, - EgressMAC: sha3.NewLegacyKeccak256(), - IngressMAC: sha3.NewLegacyKeccak256(), - } - s1.EgressMAC.Write(egressMACinit) - s1.IngressMAC.Write(ingressMACinit) - rw1 := newRLPXFrameRW(conn, s1) - - s2 := secrets{ - AES: aesSecret, - MAC: macSecret, - EgressMAC: sha3.NewLegacyKeccak256(), - IngressMAC: sha3.NewLegacyKeccak256(), - } - s2.EgressMAC.Write(ingressMACinit) - s2.IngressMAC.Write(egressMACinit) - rw2 := newRLPXFrameRW(conn, s2) - - // send some messages - for i := 0; i < 10; i++ { - // write message into conn buffer - wmsg := []interface{}{"foo", "bar", strings.Repeat("test", i)} - err := Send(rw1, uint64(i), wmsg) - if err != nil { - t.Fatalf("WriteMsg error (i=%d): %v", i, err) - } - - // read message that rw1 just wrote - msg, err := rw2.ReadMsg() - if err != nil { - t.Fatalf("ReadMsg error (i=%d): %v", i, err) - } - if msg.Code != uint64(i) { - t.Fatalf("msg code mismatch: got %d, want %d", msg.Code, i) - } - payload, _ := ioutil.ReadAll(msg.Payload) - wantPayload, _ := rlp.EncodeToBytes(wmsg) - if !bytes.Equal(payload, wantPayload) { - t.Fatalf("msg payload mismatch:\ngot %x\nwant %x", payload, wantPayload) - } - } -} - -type handshakeAuthTest struct { - input string - isPlain bool - wantVersion uint - wantRest []rlp.RawValue -} - -var eip8HandshakeAuthTests = []handshakeAuthTest{ - // (Authâ‚) RLPx v4 plain encoding - { - input: ` - 048ca79ad18e4b0659fab4853fe5bc58eb83992980f4c9cc147d2aa31532efd29a3d3dc6a3d89eaf - 913150cfc777ce0ce4af2758bf4810235f6e6ceccfee1acc6b22c005e9e3a49d6448610a58e98744 - ba3ac0399e82692d67c1f58849050b3024e21a52c9d3b01d871ff5f210817912773e610443a9ef14 - 2e91cdba0bd77b5fdf0769b05671fc35f83d83e4d3b0b000c6b2a1b1bba89e0fc51bf4e460df3105 - c444f14be226458940d6061c296350937ffd5e3acaceeaaefd3c6f74be8e23e0f45163cc7ebd7622 - 0f0128410fd05250273156d548a414444ae2f7dea4dfca2d43c057adb701a715bf59f6fb66b2d1d2 - 0f2c703f851cbf5ac47396d9ca65b6260bd141ac4d53e2de585a73d1750780db4c9ee4cd4d225173 - a4592ee77e2bd94d0be3691f3b406f9bba9b591fc63facc016bfa8 - `, - isPlain: true, - wantVersion: 4, - }, - // (Authâ‚‚) EIP-8 encoding - { - input: ` - 01b304ab7578555167be8154d5cc456f567d5ba302662433674222360f08d5f1534499d3678b513b - 0fca474f3a514b18e75683032eb63fccb16c156dc6eb2c0b1593f0d84ac74f6e475f1b8d56116b84 - 9634a8c458705bf83a626ea0384d4d7341aae591fae42ce6bd5c850bfe0b999a694a49bbbaf3ef6c - da61110601d3b4c02ab6c30437257a6e0117792631a4b47c1d52fc0f8f89caadeb7d02770bf999cc - 147d2df3b62e1ffb2c9d8c125a3984865356266bca11ce7d3a688663a51d82defaa8aad69da39ab6 - d5470e81ec5f2a7a47fb865ff7cca21516f9299a07b1bc63ba56c7a1a892112841ca44b6e0034dee - 70c9adabc15d76a54f443593fafdc3b27af8059703f88928e199cb122362a4b35f62386da7caad09 - c001edaeb5f8a06d2b26fb6cb93c52a9fca51853b68193916982358fe1e5369e249875bb8d0d0ec3 - 6f917bc5e1eafd5896d46bd61ff23f1a863a8a8dcd54c7b109b771c8e61ec9c8908c733c0263440e - 2aa067241aaa433f0bb053c7b31a838504b148f570c0ad62837129e547678c5190341e4f1693956c - 3bf7678318e2d5b5340c9e488eefea198576344afbdf66db5f51204a6961a63ce072c8926c - `, - wantVersion: 4, - wantRest: []rlp.RawValue{}, - }, - // (Auth₃) RLPx v4 EIP-8 encoding with version 56, additional list elements - { - input: ` - 01b8044c6c312173685d1edd268aa95e1d495474c6959bcdd10067ba4c9013df9e40ff45f5bfd6f7 - 2471f93a91b493f8e00abc4b80f682973de715d77ba3a005a242eb859f9a211d93a347fa64b597bf - 280a6b88e26299cf263b01b8dfdb712278464fd1c25840b995e84d367d743f66c0e54a586725b7bb - f12acca27170ae3283c1073adda4b6d79f27656993aefccf16e0d0409fe07db2dc398a1b7e8ee93b - cd181485fd332f381d6a050fba4c7641a5112ac1b0b61168d20f01b479e19adf7fdbfa0905f63352 - bfc7e23cf3357657455119d879c78d3cf8c8c06375f3f7d4861aa02a122467e069acaf513025ff19 - 6641f6d2810ce493f51bee9c966b15c5043505350392b57645385a18c78f14669cc4d960446c1757 - 1b7c5d725021babbcd786957f3d17089c084907bda22c2b2675b4378b114c601d858802a55345a15 - 116bc61da4193996187ed70d16730e9ae6b3bb8787ebcaea1871d850997ddc08b4f4ea668fbf3740 - 7ac044b55be0908ecb94d4ed172ece66fd31bfdadf2b97a8bc690163ee11f5b575a4b44e36e2bfb2 - f0fce91676fd64c7773bac6a003f481fddd0bae0a1f31aa27504e2a533af4cef3b623f4791b2cca6 - d490 - `, - wantVersion: 56, - wantRest: []rlp.RawValue{{0x01}, {0x02}, {0xC2, 0x04, 0x05}}, - }, -} - -type handshakeAckTest struct { - input string - wantVersion uint - wantRest []rlp.RawValue -} - -var eip8HandshakeRespTests = []handshakeAckTest{ - // (Ackâ‚) RLPx v4 plain encoding - { - input: ` - 049f8abcfa9c0dc65b982e98af921bc0ba6e4243169348a236abe9df5f93aa69d99cadddaa387662 - b0ff2c08e9006d5a11a278b1b3331e5aaabf0a32f01281b6f4ede0e09a2d5f585b26513cb794d963 - 5a57563921c04a9090b4f14ee42be1a5461049af4ea7a7f49bf4c97a352d39c8d02ee4acc416388c - 1c66cec761d2bc1c72da6ba143477f049c9d2dde846c252c111b904f630ac98e51609b3b1f58168d - dca6505b7196532e5f85b259a20c45e1979491683fee108e9660edbf38f3add489ae73e3dda2c71b - d1497113d5c755e942d1 - `, - wantVersion: 4, - }, - // (Ackâ‚‚) EIP-8 encoding - { - input: ` - 01ea0451958701280a56482929d3b0757da8f7fbe5286784beead59d95089c217c9b917788989470 - b0e330cc6e4fb383c0340ed85fab836ec9fb8a49672712aeabbdfd1e837c1ff4cace34311cd7f4de - 05d59279e3524ab26ef753a0095637ac88f2b499b9914b5f64e143eae548a1066e14cd2f4bd7f814 - c4652f11b254f8a2d0191e2f5546fae6055694aed14d906df79ad3b407d94692694e259191cde171 - ad542fc588fa2b7333313d82a9f887332f1dfc36cea03f831cb9a23fea05b33deb999e85489e645f - 6aab1872475d488d7bd6c7c120caf28dbfc5d6833888155ed69d34dbdc39c1f299be1057810f34fb - e754d021bfca14dc989753d61c413d261934e1a9c67ee060a25eefb54e81a4d14baff922180c395d - 3f998d70f46f6b58306f969627ae364497e73fc27f6d17ae45a413d322cb8814276be6ddd13b885b - 201b943213656cde498fa0e9ddc8e0b8f8a53824fbd82254f3e2c17e8eaea009c38b4aa0a3f306e8 - 797db43c25d68e86f262e564086f59a2fc60511c42abfb3057c247a8a8fe4fb3ccbadde17514b7ac - 8000cdb6a912778426260c47f38919a91f25f4b5ffb455d6aaaf150f7e5529c100ce62d6d92826a7 - 1778d809bdf60232ae21ce8a437eca8223f45ac37f6487452ce626f549b3b5fdee26afd2072e4bc7 - 5833c2464c805246155289f4 - `, - wantVersion: 4, - wantRest: []rlp.RawValue{}, - }, - // (Ack₃) EIP-8 encoding with version 57, additional list elements - { - input: ` - 01f004076e58aae772bb101ab1a8e64e01ee96e64857ce82b1113817c6cdd52c09d26f7b90981cd7 - ae835aeac72e1573b8a0225dd56d157a010846d888dac7464baf53f2ad4e3d584531fa203658fab0 - 3a06c9fd5e35737e417bc28c1cbf5e5dfc666de7090f69c3b29754725f84f75382891c561040ea1d - dc0d8f381ed1b9d0d4ad2a0ec021421d847820d6fa0ba66eaf58175f1b235e851c7e2124069fbc20 - 2888ddb3ac4d56bcbd1b9b7eab59e78f2e2d400905050f4a92dec1c4bdf797b3fc9b2f8e84a482f3 - d800386186712dae00d5c386ec9387a5e9c9a1aca5a573ca91082c7d68421f388e79127a5177d4f8 - 590237364fd348c9611fa39f78dcdceee3f390f07991b7b47e1daa3ebcb6ccc9607811cb17ce51f1 - c8c2c5098dbdd28fca547b3f58c01a424ac05f869f49c6a34672ea2cbbc558428aa1fe48bbfd6115 - 8b1b735a65d99f21e70dbc020bfdface9f724a0d1fb5895db971cc81aa7608baa0920abb0a565c9c - 436e2fd13323428296c86385f2384e408a31e104670df0791d93e743a3a5194ee6b076fb6323ca59 - 3011b7348c16cf58f66b9633906ba54a2ee803187344b394f75dd2e663a57b956cb830dd7a908d4f - 39a2336a61ef9fda549180d4ccde21514d117b6c6fd07a9102b5efe710a32af4eeacae2cb3b1dec0 - 35b9593b48b9d3ca4c13d245d5f04169b0b1 - `, - wantVersion: 57, - wantRest: []rlp.RawValue{{0x06}, {0xC2, 0x07, 0x08}, {0x81, 0xFA}}, - }, -} - -func TestHandshakeForwardCompatibility(t *testing.T) { - var ( - keyA, _ = crypto.HexToECDSA("49a7b37aa6f6645917e7b807e9d1c00d4fa71f18343b0d4122a4d2df64dd6fee") - keyB, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - pubA = crypto.FromECDSAPub(&keyA.PublicKey)[1:] - pubB = crypto.FromECDSAPub(&keyB.PublicKey)[1:] - ephA, _ = crypto.HexToECDSA("869d6ecf5211f1cc60418a13b9d870b22959d0c16f02bec714c960dd2298a32d") - ephB, _ = crypto.HexToECDSA("e238eb8e04fee6511ab04c6dd3c89ce097b11f25d584863ac2b6d5b35b1847e4") - ephPubA = crypto.FromECDSAPub(&ephA.PublicKey)[1:] - ephPubB = crypto.FromECDSAPub(&ephB.PublicKey)[1:] - nonceA = unhex("7e968bba13b6c50e2c4cd7f241cc0d64d1ac25c7f5952df231ac6a2bda8ee5d6") - nonceB = unhex("559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd") - _, _, _, _ = pubA, pubB, ephPubA, ephPubB - authSignature = unhex("299ca6acfd35e3d72d8ba3d1e2b60b5561d5af5218eb5bc182045769eb4226910a301acae3b369fffc4a4899d6b02531e89fd4fe36a2cf0d93607ba470b50f7800") - _ = authSignature - ) - makeAuth := func(test handshakeAuthTest) *authMsgV4 { - msg := &authMsgV4{Version: test.wantVersion, Rest: test.wantRest, gotPlain: test.isPlain} - copy(msg.Signature[:], authSignature) - copy(msg.InitiatorPubkey[:], pubA) - copy(msg.Nonce[:], nonceA) - return msg - } - makeAck := func(test handshakeAckTest) *authRespV4 { - msg := &authRespV4{Version: test.wantVersion, Rest: test.wantRest} - copy(msg.RandomPubkey[:], ephPubB) - copy(msg.Nonce[:], nonceB) - return msg - } - - // check auth msg parsing - for _, test := range eip8HandshakeAuthTests { - r := bytes.NewReader(unhex(test.input)) - msg := new(authMsgV4) - ciphertext, err := readHandshakeMsg(msg, encAuthMsgLen, keyB, r) - if err != nil { - t.Errorf("error for input %x:\n %v", unhex(test.input), err) - continue - } - if !bytes.Equal(ciphertext, unhex(test.input)) { - t.Errorf("wrong ciphertext for input %x:\n %x", unhex(test.input), ciphertext) - } - want := makeAuth(test) - if !reflect.DeepEqual(msg, want) { - t.Errorf("wrong msg for input %x:\ngot %s\nwant %s", unhex(test.input), spew.Sdump(msg), spew.Sdump(want)) - } - } - - // check auth resp parsing - for _, test := range eip8HandshakeRespTests { - input := unhex(test.input) - r := bytes.NewReader(input) - msg := new(authRespV4) - ciphertext, err := readHandshakeMsg(msg, encAuthRespLen, keyA, r) - if err != nil { - t.Errorf("error for input %x:\n %v", input, err) - continue - } - if !bytes.Equal(ciphertext, input) { - t.Errorf("wrong ciphertext for input %x:\n %x", input, err) - } - want := makeAck(test) - if !reflect.DeepEqual(msg, want) { - t.Errorf("wrong msg for input %x:\ngot %s\nwant %s", input, spew.Sdump(msg), spew.Sdump(want)) - } - } - - // check derivation for (Authâ‚‚, Ackâ‚‚) on recipient side - var ( - hs = &encHandshake{ - initiator: false, - respNonce: nonceB, - randomPrivKey: ecies.ImportECDSA(ephB), - } - authCiphertext = unhex(eip8HandshakeAuthTests[1].input) - authRespCiphertext = unhex(eip8HandshakeRespTests[1].input) - authMsg = makeAuth(eip8HandshakeAuthTests[1]) - wantAES = unhex("80e8632c05fed6fc2a13b0f8d31a3cf645366239170ea067065aba8e28bac487") - wantMAC = unhex("2ea74ec5dae199227dff1af715362700e989d889d7a493cb0639691efb8e5f98") - wantFooIngressHash = unhex("0c7ec6340062cc46f5e9f1e3cf86f8c8c403c5a0964f5df0ebd34a75ddc86db5") - ) - if err := hs.handleAuthMsg(authMsg, keyB); err != nil { - t.Fatalf("handleAuthMsg: %v", err) - } - derived, err := hs.secrets(authCiphertext, authRespCiphertext) - if err != nil { - t.Fatalf("secrets: %v", err) - } - if !bytes.Equal(derived.AES, wantAES) { - t.Errorf("aes-secret mismatch:\ngot %x\nwant %x", derived.AES, wantAES) - } - if !bytes.Equal(derived.MAC, wantMAC) { - t.Errorf("mac-secret mismatch:\ngot %x\nwant %x", derived.MAC, wantMAC) - } - io.WriteString(derived.IngressMAC, "foo") - fooIngressHash := derived.IngressMAC.Sum(nil) - if !bytes.Equal(fooIngressHash, wantFooIngressHash) { - t.Errorf("ingress-mac('foo') mismatch:\ngot %x\nwant %x", fooIngressHash, wantFooIngressHash) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/core/api_test.go b/vendor/github.com/ethereum/go-ethereum/signer/core/api_test.go deleted file mode 100644 index b458aa03..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/core/api_test.go +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . -// -package core_test - -import ( - "bytes" - "context" - "fmt" - "io/ioutil" - "math/big" - "os" - "path/filepath" - "testing" - "time" - - "github.com/ethereum/go-ethereum/accounts" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/internal/ethapi" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/signer/core" - "github.com/ethereum/go-ethereum/signer/fourbyte" - "github.com/ethereum/go-ethereum/signer/storage" -) - -//Used for testing -type headlessUi struct { - approveCh chan string // to send approve/deny - inputCh chan string // to send password -} - -func (ui *headlessUi) OnInputRequired(info core.UserInputRequest) (core.UserInputResponse, error) { - input := <-ui.inputCh - return core.UserInputResponse{Text: input}, nil -} - -func (ui *headlessUi) OnSignerStartup(info core.StartupInfo) {} -func (ui *headlessUi) RegisterUIServer(api *core.UIServerAPI) {} -func (ui *headlessUi) OnApprovedTx(tx ethapi.SignTransactionResult) {} - -func (ui *headlessUi) ApproveTx(request *core.SignTxRequest) (core.SignTxResponse, error) { - - switch <-ui.approveCh { - case "Y": - return core.SignTxResponse{request.Transaction, true}, nil - case "M": // modify - // The headless UI always modifies the transaction - old := big.Int(request.Transaction.Value) - newVal := big.NewInt(0).Add(&old, big.NewInt(1)) - request.Transaction.Value = hexutil.Big(*newVal) - return core.SignTxResponse{request.Transaction, true}, nil - default: - return core.SignTxResponse{request.Transaction, false}, nil - } -} - -func (ui *headlessUi) ApproveSignData(request *core.SignDataRequest) (core.SignDataResponse, error) { - approved := "Y" == <-ui.approveCh - return core.SignDataResponse{approved}, nil -} - -func (ui *headlessUi) ApproveListing(request *core.ListRequest) (core.ListResponse, error) { - approval := <-ui.approveCh - //fmt.Printf("approval %s\n", approval) - switch approval { - case "A": - return core.ListResponse{request.Accounts}, nil - case "1": - l := make([]accounts.Account, 1) - l[0] = request.Accounts[1] - return core.ListResponse{l}, nil - default: - return core.ListResponse{nil}, nil - } -} - -func (ui *headlessUi) ApproveNewAccount(request *core.NewAccountRequest) (core.NewAccountResponse, error) { - if "Y" == <-ui.approveCh { - return core.NewAccountResponse{true}, nil - } - return core.NewAccountResponse{false}, nil -} - -func (ui *headlessUi) ShowError(message string) { - //stdout is used by communication - fmt.Fprintln(os.Stderr, message) -} - -func (ui *headlessUi) ShowInfo(message string) { - //stdout is used by communication - fmt.Fprintln(os.Stderr, message) -} - -func tmpDirName(t *testing.T) string { - d, err := ioutil.TempDir("", "eth-keystore-test") - if err != nil { - t.Fatal(err) - } - d, err = filepath.EvalSymlinks(d) - if err != nil { - t.Fatal(err) - } - return d -} - -func setup(t *testing.T) (*core.SignerAPI, *headlessUi) { - db, err := fourbyte.New() - if err != nil { - t.Fatal(err.Error()) - } - ui := &headlessUi{make(chan string, 20), make(chan string, 20)} - am := core.StartClefAccountManager(tmpDirName(t), true, true) - api := core.NewSignerAPI(am, 1337, true, ui, db, true, &storage.NoStorage{}) - return api, ui - -} -func createAccount(ui *headlessUi, api *core.SignerAPI, t *testing.T) { - ui.approveCh <- "Y" - ui.inputCh <- "a_long_password" - _, err := api.New(context.Background()) - if err != nil { - t.Fatal(err) - } - // Some time to allow changes to propagate - time.Sleep(250 * time.Millisecond) -} - -func failCreateAccountWithPassword(ui *headlessUi, api *core.SignerAPI, password string, t *testing.T) { - - ui.approveCh <- "Y" - // We will be asked three times to provide a suitable password - ui.inputCh <- password - ui.inputCh <- password - ui.inputCh <- password - - addr, err := api.New(context.Background()) - if err == nil { - t.Fatal("Should have returned an error") - } - if addr != (common.Address{}) { - t.Fatal("Empty address should be returned") - } -} - -func failCreateAccount(ui *headlessUi, api *core.SignerAPI, t *testing.T) { - ui.approveCh <- "N" - addr, err := api.New(context.Background()) - if err != core.ErrRequestDenied { - t.Fatal(err) - } - if addr != (common.Address{}) { - t.Fatal("Empty address should be returned") - } -} - -func list(ui *headlessUi, api *core.SignerAPI, t *testing.T) ([]common.Address, error) { - ui.approveCh <- "A" - return api.List(context.Background()) - -} - -func TestNewAcc(t *testing.T) { - api, control := setup(t) - verifyNum := func(num int) { - list, err := list(control, api, t) - if err != nil { - t.Errorf("Unexpected error %v", err) - } - if len(list) != num { - t.Errorf("Expected %d accounts, got %d", num, len(list)) - } - } - // Testing create and create-deny - createAccount(control, api, t) - createAccount(control, api, t) - failCreateAccount(control, api, t) - failCreateAccount(control, api, t) - createAccount(control, api, t) - failCreateAccount(control, api, t) - createAccount(control, api, t) - failCreateAccount(control, api, t) - verifyNum(4) - - // Fail to create this, due to bad password - failCreateAccountWithPassword(control, api, "short", t) - failCreateAccountWithPassword(control, api, "longerbutbad\rfoo", t) - verifyNum(4) - - // Testing listing: - // Listing one Account - control.approveCh <- "1" - list, err := api.List(context.Background()) - if err != nil { - t.Fatal(err) - } - if len(list) != 1 { - t.Fatalf("List should only show one Account") - } - // Listing denied - control.approveCh <- "Nope" - list, err = api.List(context.Background()) - if len(list) != 0 { - t.Fatalf("List should be empty") - } - if err != core.ErrRequestDenied { - t.Fatal("Expected deny") - } -} - -func mkTestTx(from common.MixedcaseAddress) core.SendTxArgs { - to := common.NewMixedcaseAddress(common.HexToAddress("0x1337")) - gas := hexutil.Uint64(21000) - gasPrice := (hexutil.Big)(*big.NewInt(2000000000)) - value := (hexutil.Big)(*big.NewInt(1e18)) - nonce := (hexutil.Uint64)(0) - data := hexutil.Bytes(common.Hex2Bytes("01020304050607080a")) - tx := core.SendTxArgs{ - From: from, - To: &to, - Gas: gas, - GasPrice: gasPrice, - Value: value, - Data: &data, - Nonce: nonce} - return tx -} - -func TestSignTx(t *testing.T) { - var ( - list []common.Address - res, res2 *ethapi.SignTransactionResult - err error - ) - - api, control := setup(t) - createAccount(control, api, t) - control.approveCh <- "A" - list, err = api.List(context.Background()) - if err != nil { - t.Fatal(err) - } - a := common.NewMixedcaseAddress(list[0]) - - methodSig := "test(uint)" - tx := mkTestTx(a) - - control.approveCh <- "Y" - control.inputCh <- "wrongpassword" - res, err = api.SignTransaction(context.Background(), tx, &methodSig) - if res != nil { - t.Errorf("Expected nil-response, got %v", res) - } - if err != keystore.ErrDecrypt { - t.Errorf("Expected ErrLocked! %v", err) - } - control.approveCh <- "No way" - res, err = api.SignTransaction(context.Background(), tx, &methodSig) - if res != nil { - t.Errorf("Expected nil-response, got %v", res) - } - if err != core.ErrRequestDenied { - t.Errorf("Expected ErrRequestDenied! %v", err) - } - // Sign with correct password - control.approveCh <- "Y" - control.inputCh <- "a_long_password" - res, err = api.SignTransaction(context.Background(), tx, &methodSig) - - if err != nil { - t.Fatal(err) - } - parsedTx := &types.Transaction{} - rlp.Decode(bytes.NewReader(res.Raw), parsedTx) - - //The tx should NOT be modified by the UI - if parsedTx.Value().Cmp(tx.Value.ToInt()) != 0 { - t.Errorf("Expected value to be unchanged, expected %v got %v", tx.Value, parsedTx.Value()) - } - control.approveCh <- "Y" - control.inputCh <- "a_long_password" - - res2, err = api.SignTransaction(context.Background(), tx, &methodSig) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(res.Raw, res2.Raw) { - t.Error("Expected tx to be unmodified by UI") - } - - //The tx is modified by the UI - control.approveCh <- "M" - control.inputCh <- "a_long_password" - - res2, err = api.SignTransaction(context.Background(), tx, &methodSig) - if err != nil { - t.Fatal(err) - } - parsedTx2 := &types.Transaction{} - rlp.Decode(bytes.NewReader(res.Raw), parsedTx2) - - //The tx should be modified by the UI - if parsedTx2.Value().Cmp(tx.Value.ToInt()) != 0 { - t.Errorf("Expected value to be unchanged, got %v", parsedTx.Value()) - } - if bytes.Equal(res.Raw, res2.Raw) { - t.Error("Expected tx to be modified by UI") - } - -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/core/signed_data_test.go b/vendor/github.com/ethereum/go-ethereum/signer/core/signed_data_test.go deleted file mode 100644 index f7d19942..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/core/signed_data_test.go +++ /dev/null @@ -1,808 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . -// -package core_test - -import ( - "context" - "encoding/json" - "fmt" - "math/big" - "testing" - - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/signer/core" -) - -var typesStandard = core.Types{ - "EIP712Domain": { - { - Name: "name", - Type: "string", - }, - { - Name: "version", - Type: "string", - }, - { - Name: "chainId", - Type: "uint256", - }, - { - Name: "verifyingContract", - Type: "address", - }, - }, - "Person": { - { - Name: "name", - Type: "string", - }, - { - Name: "wallet", - Type: "address", - }, - }, - "Mail": { - { - Name: "from", - Type: "Person", - }, - { - Name: "to", - Type: "Person", - }, - { - Name: "contents", - Type: "string", - }, - }, -} - -var jsonTypedData = ` - { - "types": { - "EIP712Domain": [ - { - "name": "name", - "type": "string" - }, - { - "name": "version", - "type": "string" - }, - { - "name": "chainId", - "type": "uint256" - }, - { - "name": "verifyingContract", - "type": "address" - } - ], - "Person": [ - { - "name": "name", - "type": "string" - }, - { - "name": "test", - "type": "uint8" - }, - { - "name": "wallet", - "type": "address" - } - ], - "Mail": [ - { - "name": "from", - "type": "Person" - }, - { - "name": "to", - "type": "Person" - }, - { - "name": "contents", - "type": "string" - } - ] - }, - "primaryType": "Mail", - "domain": { - "name": "Ether Mail", - "version": "1", - "chainId": 1, - "verifyingContract": "0xCCCcccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - }, - "message": { - "from": { - "name": "Cow", - "test": 3, - "wallet": "0xcD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826" - }, - "to": { - "name": "Bob", - "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB" - }, - "contents": "Hello, Bob!" - } - } -` - -const primaryType = "Mail" - -var domainStandard = core.TypedDataDomain{ - "Ether Mail", - "1", - big.NewInt(1), - "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC", - "", -} - -var messageStandard = map[string]interface{}{ - "from": map[string]interface{}{ - "name": "Cow", - "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826", - }, - "to": map[string]interface{}{ - "name": "Bob", - "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB", - }, - "contents": "Hello, Bob!", -} - -var typedData = core.TypedData{ - Types: typesStandard, - PrimaryType: primaryType, - Domain: domainStandard, - Message: messageStandard, -} - -func TestSignData(t *testing.T) { - api, control := setup(t) - //Create two accounts - createAccount(control, api, t) - createAccount(control, api, t) - control.approveCh <- "1" - list, err := api.List(context.Background()) - if err != nil { - t.Fatal(err) - } - a := common.NewMixedcaseAddress(list[0]) - - control.approveCh <- "Y" - control.inputCh <- "wrongpassword" - signature, err := api.SignData(context.Background(), core.TextPlain.Mime, a, hexutil.Encode([]byte("EHLO world"))) - if signature != nil { - t.Errorf("Expected nil-data, got %x", signature) - } - if err != keystore.ErrDecrypt { - t.Errorf("Expected ErrLocked! '%v'", err) - } - control.approveCh <- "No way" - signature, err = api.SignData(context.Background(), core.TextPlain.Mime, a, hexutil.Encode([]byte("EHLO world"))) - if signature != nil { - t.Errorf("Expected nil-data, got %x", signature) - } - if err != core.ErrRequestDenied { - t.Errorf("Expected ErrRequestDenied! '%v'", err) - } - // text/plain - control.approveCh <- "Y" - control.inputCh <- "a_long_password" - signature, err = api.SignData(context.Background(), core.TextPlain.Mime, a, hexutil.Encode([]byte("EHLO world"))) - if err != nil { - t.Fatal(err) - } - if signature == nil || len(signature) != 65 { - t.Errorf("Expected 65 byte signature (got %d bytes)", len(signature)) - } - // data/typed - control.approveCh <- "Y" - control.inputCh <- "a_long_password" - signature, err = api.SignTypedData(context.Background(), a, typedData) - if err != nil { - t.Fatal(err) - } - if signature == nil || len(signature) != 65 { - t.Errorf("Expected 65 byte signature (got %d bytes)", len(signature)) - } -} - -func TestDomainChainId(t *testing.T) { - withoutChainID := core.TypedData{ - Types: core.Types{ - "EIP712Domain": []core.Type{ - {Name: "name", Type: "string"}, - }, - }, - Domain: core.TypedDataDomain{ - Name: "test", - }, - } - - if _, ok := withoutChainID.Domain.Map()["chainId"]; ok { - t.Errorf("Expected the chainId key to not be present in the domain map") - } - - withChainID := core.TypedData{ - Types: core.Types{ - "EIP712Domain": []core.Type{ - {Name: "name", Type: "string"}, - {Name: "chainId", Type: "uint256"}, - }, - }, - Domain: core.TypedDataDomain{ - Name: "test", - ChainId: big.NewInt(1), - }, - } - - if _, ok := withChainID.Domain.Map()["chainId"]; !ok { - t.Errorf("Expected the chainId key be present in the domain map") - } -} - -func TestHashStruct(t *testing.T) { - hash, err := typedData.HashStruct(typedData.PrimaryType, typedData.Message) - if err != nil { - t.Fatal(err) - } - mainHash := fmt.Sprintf("0x%s", common.Bytes2Hex(hash)) - if mainHash != "0xc52c0ee5d84264471806290a3f2c4cecfc5490626bf912d01f240d7a274b371e" { - t.Errorf("Expected different hashStruct result (got %s)", mainHash) - } - - hash, err = typedData.HashStruct("EIP712Domain", typedData.Domain.Map()) - if err != nil { - t.Error(err) - } - domainHash := fmt.Sprintf("0x%s", common.Bytes2Hex(hash)) - if domainHash != "0xf2cee375fa42b42143804025fc449deafd50cc031ca257e0b194a650a912090f" { - t.Errorf("Expected different domain hashStruct result (got %s)", domainHash) - } -} - -func TestEncodeType(t *testing.T) { - domainTypeEncoding := string(typedData.EncodeType("EIP712Domain")) - if domainTypeEncoding != "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" { - t.Errorf("Expected different encodeType result (got %s)", domainTypeEncoding) - } - - mailTypeEncoding := string(typedData.EncodeType(typedData.PrimaryType)) - if mailTypeEncoding != "Mail(Person from,Person to,string contents)Person(string name,address wallet)" { - t.Errorf("Expected different encodeType result (got %s)", mailTypeEncoding) - } -} - -func TestTypeHash(t *testing.T) { - mailTypeHash := fmt.Sprintf("0x%s", common.Bytes2Hex(typedData.TypeHash(typedData.PrimaryType))) - if mailTypeHash != "0xa0cedeb2dc280ba39b857546d74f5549c3a1d7bdc2dd96bf881f76108e23dac2" { - t.Errorf("Expected different typeHash result (got %s)", mailTypeHash) - } -} - -func TestEncodeData(t *testing.T) { - hash, err := typedData.EncodeData(typedData.PrimaryType, typedData.Message, 0) - if err != nil { - t.Fatal(err) - } - dataEncoding := fmt.Sprintf("0x%s", common.Bytes2Hex(hash)) - if dataEncoding != "0xa0cedeb2dc280ba39b857546d74f5549c3a1d7bdc2dd96bf881f76108e23dac2fc71e5fa27ff56c350aa531bc129ebdf613b772b6604664f5d8dbe21b85eb0c8cd54f074a4af31b4411ff6a60c9719dbd559c221c8ac3492d9d872b041d703d1b5aadf3154a261abdd9086fc627b61efca26ae5702701d05cd2305f7c52a2fc8" { - t.Errorf("Expected different encodeData result (got %s)", dataEncoding) - } -} - -func TestMalformedDomainkeys(t *testing.T) { - // Verifies that malformed domain keys are properly caught: - //{ - // "name": "Ether Mail", - // "version": "1", - // "chainId": 1, - // "vxerifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - //} - jsonTypedData := ` - { - "types": { - "EIP712Domain": [ - { - "name": "name", - "type": "string" - }, - { - "name": "version", - "type": "string" - }, - { - "name": "chainId", - "type": "uint256" - }, - { - "name": "verifyingContract", - "type": "address" - } - ], - "Person": [ - { - "name": "name", - "type": "string" - }, - { - "name": "wallet", - "type": "address" - } - ], - "Mail": [ - { - "name": "from", - "type": "Person" - }, - { - "name": "to", - "type": "Person" - }, - { - "name": "contents", - "type": "string" - } - ] - }, - "primaryType": "Mail", - "domain": { - "name": "Ether Mail", - "version": "1", - "chainId": 1, - "vxerifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - }, - "message": { - "from": { - "name": "Cow", - "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826" - }, - "to": { - "name": "Bob", - "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB" - }, - "contents": "Hello, Bob!" - } - } -` - var malformedDomainTypedData core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &malformedDomainTypedData) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - _, err = malformedDomainTypedData.HashStruct("EIP712Domain", malformedDomainTypedData.Domain.Map()) - if err == nil || err.Error() != "provided data '' doesn't match type 'address'" { - t.Errorf("Expected `provided data '' doesn't match type 'address'`, got '%v'", err) - } -} - -func TestMalformedTypesAndExtradata(t *testing.T) { - // Verifies several quirks - // 1. Using dynamic types and only validating the prefix: - //{ - // "name": "chainId", - // "type": "uint256 ... and now for something completely different" - //} - // 2. Extra data in message: - //{ - // "blahonga": "zonk bonk" - //} - jsonTypedData := ` - { - "types": { - "EIP712Domain": [ - { - "name": "name", - "type": "string" - }, - { - "name": "version", - "type": "string" - }, - { - "name": "chainId", - "type": "uint256 ... and now for something completely different" - }, - { - "name": "verifyingContract", - "type": "address" - } - ], - "Person": [ - { - "name": "name", - "type": "string" - }, - { - "name": "wallet", - "type": "address" - } - ], - "Mail": [ - { - "name": "from", - "type": "Person" - }, - { - "name": "to", - "type": "Person" - }, - { - "name": "contents", - "type": "string" - } - ] - }, - "primaryType": "Mail", - "domain": { - "name": "Ether Mail", - "version": "1", - "chainId": 1, - "verifyingContract": "0xCCCcccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - }, - "message": { - "from": { - "name": "Cow", - "wallet": "0xcD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826" - }, - "to": { - "name": "Bob", - "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB" - }, - "contents": "Hello, Bob!" - } - } -` - var malformedTypedData core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &malformedTypedData) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - - malformedTypedData.Types["EIP712Domain"][2].Type = "uint256" - malformedTypedData.Message["blahonga"] = "zonk bonk" - _, err = malformedTypedData.HashStruct(malformedTypedData.PrimaryType, malformedTypedData.Message) - if err == nil || err.Error() != "there is extra data provided in the message" { - t.Errorf("Expected `there is extra data provided in the message`, got '%v'", err) - } -} - -func TestTypeMismatch(t *testing.T) { - // Verifies that: - // 1. Mismatches between the given type and data, i.e. `Person` and - // the data item is a string, are properly caught: - //{ - // "name": "contents", - // "type": "Person" - //}, - //{ - // "contents": "Hello, Bob!" <-- string not "Person" - //} - // 2. Nonexistent types are properly caught: - //{ - // "name": "contents", - // "type": "Blahonga" - //} - jsonTypedData := ` - { - "types": { - "EIP712Domain": [ - { - "name": "name", - "type": "string" - }, - { - "name": "version", - "type": "string" - }, - { - "name": "chainId", - "type": "uint256" - }, - { - "name": "verifyingContract", - "type": "address" - } - ], - "Person": [ - { - "name": "name", - "type": "string" - }, - { - "name": "wallet", - "type": "address" - } - ], - "Mail": [ - { - "name": "from", - "type": "Person" - }, - { - "name": "to", - "type": "Person" - }, - { - "name": "contents", - "type": "Person" - } - ] - }, - "primaryType": "Mail", - "domain": { - "name": "Ether Mail", - "version": "1", - "chainId": 1, - "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - }, - "message": { - "from": { - "name": "Cow", - "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826" - }, - "to": { - "name": "Bob", - "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB" - }, - "contents": "Hello, Bob!" - } - } -` - var mismatchTypedData core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &mismatchTypedData) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - _, err = mismatchTypedData.HashStruct(mismatchTypedData.PrimaryType, mismatchTypedData.Message) - if err.Error() != "provided data 'Hello, Bob!' doesn't match type 'Person'" { - t.Errorf("Expected `provided data 'Hello, Bob!' doesn't match type 'Person'`, got '%v'", err) - } - - mismatchTypedData.Types["Mail"][2].Type = "Blahonga" - _, err = mismatchTypedData.HashStruct(mismatchTypedData.PrimaryType, mismatchTypedData.Message) - if err == nil || err.Error() != "reference type 'Blahonga' is undefined" { - t.Fatalf("Expected `reference type 'Blahonga' is undefined`, got '%v'", err) - } -} - -func TestTypeOverflow(t *testing.T) { - // Verifies data that doesn't fit into it: - //{ - // "test": 65536 <-- test defined as uint8 - //} - var overflowTypedData core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &overflowTypedData) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - // Set test to something outside uint8 - (overflowTypedData.Message["from"]).(map[string]interface{})["test"] = big.NewInt(65536) - - _, err = overflowTypedData.HashStruct(overflowTypedData.PrimaryType, overflowTypedData.Message) - if err == nil || err.Error() != "integer larger than 'uint8'" { - t.Fatalf("Expected `integer larger than 'uint8'`, got '%v'", err) - } - - (overflowTypedData.Message["from"]).(map[string]interface{})["test"] = big.NewInt(3) - (overflowTypedData.Message["to"]).(map[string]interface{})["test"] = big.NewInt(4) - - _, err = overflowTypedData.HashStruct(overflowTypedData.PrimaryType, overflowTypedData.Message) - if err != nil { - t.Fatalf("Expected no err, got '%v'", err) - } -} - -func TestArray(t *testing.T) { - // Makes sure that arrays work fine - //{ - // "type": "address[]" - //}, - //{ - // "type": "string[]" - //}, - //{ - // "type": "uint16[]", - //} - - jsonTypedData := ` - { - "types": { - "EIP712Domain": [ - { - "name": "name", - "type": "string" - }, - { - "name": "version", - "type": "string" - }, - { - "name": "chainId", - "type": "uint256" - }, - { - "name": "verifyingContract", - "type": "address" - } - ], - "Foo": [ - { - "name": "bar", - "type": "address[]" - } - ] - }, - "primaryType": "Foo", - "domain": { - "name": "Lorem", - "version": "1", - "chainId": 1, - "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - }, - "message": { - "bar": [ - "0x0000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000003" - ] - } - } - ` - var arrayTypedData core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &arrayTypedData) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - _, err = arrayTypedData.HashStruct(arrayTypedData.PrimaryType, arrayTypedData.Message) - if err != nil { - t.Fatalf("Expected no err, got '%v'", err) - } - - // Change array to string - arrayTypedData.Types["Foo"][0].Type = "string[]" - arrayTypedData.Message["bar"] = []interface{}{ - "lorem", - "ipsum", - "dolores", - } - _, err = arrayTypedData.HashStruct(arrayTypedData.PrimaryType, arrayTypedData.Message) - if err != nil { - t.Fatalf("Expected no err, got '%v'", err) - } - - // Change array to uint - arrayTypedData.Types["Foo"][0].Type = "uint[]" - arrayTypedData.Message["bar"] = []interface{}{ - big.NewInt(1955), - big.NewInt(108), - big.NewInt(44010), - } - _, err = arrayTypedData.HashStruct(arrayTypedData.PrimaryType, arrayTypedData.Message) - if err != nil { - t.Fatalf("Expected no err, got '%v'", err) - } - - // Should not work with fixed-size arrays - arrayTypedData.Types["Foo"][0].Type = "uint[3]" - _, err = arrayTypedData.HashStruct(arrayTypedData.PrimaryType, arrayTypedData.Message) - if err == nil || err.Error() != "unknown type 'uint[3]'" { - t.Fatalf("Expected `unknown type 'uint[3]'`, got '%v'", err) - } -} - -func TestCustomTypeAsArray(t *testing.T) { - var jsonTypedData = ` - { - "types": { - "EIP712Domain": [ - { - "name": "name", - "type": "string" - }, - { - "name": "version", - "type": "string" - }, - { - "name": "chainId", - "type": "uint256" - }, - { - "name": "verifyingContract", - "type": "address" - } - ], - "Person": [ - { - "name": "name", - "type": "string" - }, - { - "name": "wallet", - "type": "address" - } - ], - "Person[]": [ - { - "name": "baz", - "type": "string" - } - ], - "Mail": [ - { - "name": "from", - "type": "Person" - }, - { - "name": "to", - "type": "Person[]" - }, - { - "name": "contents", - "type": "string" - } - ] - }, - "primaryType": "Mail", - "domain": { - "name": "Ether Mail", - "version": "1", - "chainId": 1, - "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" - }, - "message": { - "from": { - "name": "Cow", - "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826" - }, - "to": {"baz": "foo"}, - "contents": "Hello, Bob!" - } - } - -` - var malformedTypedData core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &malformedTypedData) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - _, err = malformedTypedData.HashStruct("EIP712Domain", malformedTypedData.Domain.Map()) - if err != nil { - t.Errorf("Expected no error, got '%v'", err) - } -} - -func TestFormatter(t *testing.T) { - var d core.TypedData - err := json.Unmarshal([]byte(jsonTypedData), &d) - if err != nil { - t.Fatalf("unmarshalling failed '%v'", err) - } - formatted := d.Format() - for _, item := range formatted { - fmt.Printf("'%v'\n", item.Pprint(0)) - } - - j, _ := json.Marshal(formatted) - fmt.Printf("'%v'\n", string(j)) -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/core/validation_test.go b/vendor/github.com/ethereum/go-ethereum/signer/core/validation_test.go deleted file mode 100644 index 212439f5..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/core/validation_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package core - -import "testing" - -func TestPasswordValidation(t *testing.T) { - testcases := []struct { - pw string - shouldFail bool - }{ - {"test", true}, - {"testtest\xbd\xb2\x3d\xbc\x20\xe2\x8c\x98", true}, - {"placeOfInterest⌘", true}, - {"password\nwith\nlinebreak", true}, - {"password\twith\vtabs", true}, - // Ok passwords - {"password WhichIsOk", false}, - {"passwordOk!@#$%^&*()", false}, - {"12301203123012301230123012", false}, - } - for _, test := range testcases { - err := ValidatePasswordFormat(test.pw) - if err == nil && test.shouldFail { - t.Errorf("password '%v' should fail validation", test.pw) - } else if err != nil && !test.shouldFail { - - t.Errorf("password '%v' shound not fail validation, but did: %v", test.pw, err) - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.go deleted file mode 100644 index 9ec51047..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.go +++ /dev/null @@ -1,271 +0,0 @@ -// Code generated by go-bindata. DO NOT EDIT. -// sources: -// 4byte.json (5.505MB) - -package fourbyte - -import ( - "bytes" - "compress/gzip" - "crypto/sha256" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo - digest [sha256.Size]byte -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -func (fi bindataFileInfo) Name() string { - return fi.name -} -func (fi bindataFileInfo) Size() int64 { - return fi.size -} -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} -func (fi bindataFileInfo) IsDir() bool { - return false -} -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var __4byteJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\xbd\x49\x73\x23\xb9\xf1\x37\xfc\x5d\xe6\xd4\x6f\xc4\x1c\x0a\xa8\xdd\x37\x92\xa2\xba\xe5\xd1\x42\x8b\xec\xee\xb1\x1d\xff\x60\x60\x49\x90\x65\x15\x0b\x74\x2d\x52\x73\xde\x2f\xff\x04\x12\x40\x6d\xa2\x7a\xc6\x3e\x8c\xda\x04\x6a\x03\x12\xb9\xfe\x32\xf3\xff\xff\x25\xb0\xff\x23\xbf\xfc\xed\x17\x26\x84\xee\xaa\x76\x5f\x54\x4a\xef\x6b\xdd\xb2\x16\xf6\x6d\x51\xc1\xa7\xae\xa8\x5a\x1a\x27\xff\xdf\x2f\xbf\xfa\xe9\xf4\x97\xbf\xfd\x52\xb3\x3f\x74\xbd\xe7\xac\x64\x95\x80\x4f\x5c\xeb\x72\x34\x41\xfc\xf2\xb7\x5f\x0e\xdd\xe9\xf7\x7f\xad\xfe\xf5\x69\xf8\x39\x0c\x7f\xf9\xdb\x2f\x27\xd6\x8a\xe3\x4e\xbf\x40\xf5\x54\x4b\xa8\x97\x97\x85\x3c\x15\xd5\xfe\x25\x8a\xfe\xe3\x9f\xf4\xef\xff\x1b\x5d\x93\xff\xf2\xb7\x5f\x7e\xff\xfd\xf7\x7d\x57\xd5\x20\xf4\xa1\x2a\xfe\x00\xb9\x67\x92\x9d\x5b\xa8\x3f\x35\x6d\x5d\x54\x87\xd1\x6c\x66\x1e\xac\xb5\xdc\x9f\x8a\xba\xd6\xb5\xbf\xe3\xaf\xe6\x6f\x48\x87\x89\x89\x7b\x95\xa3\xfb\xd2\xc9\x44\xff\x37\x89\xdc\x9f\xd1\x75\xf0\xcb\xdf\x7e\x91\x45\x73\x2e\xd9\x65\xcf\xca\x52\xbf\x5d\xbd\xf2\xda\x23\xb3\xe0\x97\xbf\xfd\x22\x74\x25\x3b\xd1\xee\x59\xd7\xea\x8f\xae\x1c\x5d\x62\x16\x9a\xd5\x2d\x28\x26\xda\xfd\x0b\xc0\xf9\x13\xbf\xb4\xd0\x90\x61\x0a\x33\x77\x6d\x6b\x80\x7d\xd3\xd6\xc0\x4e\x76\xc2\xaf\xf8\xdf\xd1\x2c\xb3\xc1\xe7\xa2\x69\x75\xb9\x7f\x65\xe5\x2b\x7c\xb8\x30\x3c\xf1\x7b\xe4\x77\x66\xf7\xf6\x25\x4c\xae\x6d\x8d\x88\x7e\xf9\xdb\x2f\x0a\x9a\xb6\x78\x65\xe5\xfe\xc8\xce\xe7\xcb\xfc\x93\x46\x93\xd3\x5f\xfe\xf6\x4b\x09\x95\xdc\xcb\xce\xec\xd9\xcf\x16\x7c\xfc\x3e\xd2\xec\xe8\xa9\x6b\x44\x09\xfb\x16\x98\x38\x7e\xba\x72\x41\x36\x9a\xcf\x7f\xf9\xdb\x2f\xaf\x05\xe3\x25\xec\xcf\x75\x51\xb5\x1f\x3c\x68\x74\x85\xd9\xd2\x73\x09\xf2\x00\x7b\xd5\xb5\x5d\x3d\x5f\x9c\xf9\x23\x40\xda\xd3\x02\x4d\xb3\x17\x5a\xe8\xaa\x6b\xf7\xac\x64\xf5\xe9\xfd\x49\x51\xb1\xd9\xf3\x23\xd4\xf5\x65\xdf\xea\x93\xae\xeb\x19\xc1\x24\xd1\xaf\xd3\xa3\xa3\x32\x73\xb6\xe0\xbf\x5d\x51\x83\x34\x7b\x2a\x74\xf5\xea\xe8\xfc\xd7\x29\xb9\x67\x79\x62\xe8\xa3\x35\x67\xc9\xcf\xc0\x57\x9d\xcd\x63\xc0\x91\xda\x8b\x43\xcd\x5a\xf0\xdb\x7a\xf3\x8f\x6f\xef\x36\x95\x50\x95\x99\xf5\xbb\x67\x6d\xd1\x9d\x7e\xf7\x47\x97\x44\x71\x60\x9f\xd4\xb2\xf2\xae\x52\x20\x5a\x90\xfd\x60\x6c\x69\xf0\x66\xfd\x6d\xbf\x5b\x2f\x1e\xf6\xdb\xdd\xe2\xb7\xb5\x1f\xa5\x01\xa3\xe6\x8b\xbe\xb0\xb2\xc5\x43\xbf\x28\xcb\xa7\x33\xd4\xac\x2d\x74\xd5\x4f\x4a\x52\x66\x68\xe9\x00\xed\x57\xb3\x63\xfd\xcf\x40\x42\xbb\x7e\xe2\x65\xd1\xbe\x2c\x75\xd3\xfc\xa3\x83\xa6\xfd\xc4\xa4\xac\xa1\xf1\xf4\x4d\xd3\x34\x34\xd4\xc5\x0a\xa1\xab\xb6\x66\x62\xb8\x03\x63\x38\x52\x17\xe2\xd8\x42\xd3\xbe\xbc\xf4\x8b\xff\xf1\x7a\x51\x41\xa4\xe1\x5f\x7f\xd7\xc7\xaa\xd1\xd5\x6b\x51\x96\xe0\x6f\x18\x25\x82\x28\xbf\x12\x37\x35\x3b\xe8\xaa\xf1\x63\x31\x8d\x95\xa1\x8c\x5a\xf3\x95\x2e\xfa\x8f\x8b\x59\x8c\x7c\x6f\xa5\x59\x59\x88\x23\x2b\x2a\x5c\x87\x7e\x98\x2b\x9e\xe2\xb7\x9f\x4e\x97\x87\xae\x29\xc4\xbd\x16\x2f\xbb\xe2\xd4\x3f\x33\x25\xa1\x32\x24\x7a\x57\x15\x6d\x61\x58\x95\xfb\xfa\xab\x0c\xc7\xfc\x1d\x11\x54\x1a\x13\x6e\x96\xff\x5e\x1f\xd6\x3f\x5a\xa8\xe4\x96\x95\x73\x86\x9e\x26\x79\x64\x5e\xb0\xab\x4a\x2d\x5e\xa0\xee\x9f\x9b\x48\x48\x2d\xb7\x33\xa7\x69\x0b\x65\x09\xf5\xca\x70\xfb\x12\xef\x40\x92\x5f\xfd\x9b\x4c\xf7\x23\x8b\x25\x8d\x71\x21\xba\x4a\x86\xfe\x76\x99\xca\xa4\xc2\xdd\x64\xd5\x01\xee\x84\xbe\x2d\xaa\xa2\x39\xce\x5e\x26\x8f\x48\x62\x78\xd5\x6e\xfd\xfc\xb0\xdd\x2f\x1e\x6f\xf6\xab\xa7\xc7\x9b\xbb\xdd\xdd\xd3\xe3\xd6\xdf\x29\x4f\xa2\xc4\x48\x85\x45\x27\x0c\x15\xad\x6a\x60\x86\x1e\xfd\xe7\xff\xd9\xf2\xcc\x1e\x98\x05\x21\x47\x96\xf7\x02\x9b\x5a\xff\x07\x44\x4f\x5e\x63\x1a\xb9\x72\x61\x2e\xf0\x7b\xde\x8a\xf6\x28\x6b\xf6\x86\xbb\xda\x84\xb3\xef\x61\x11\x4b\x0d\x07\xe3\xcc\x90\xf0\x5d\x25\xe1\xc7\x9f\xb0\x7d\x26\x88\x32\xf7\x65\x52\x9e\x59\xdd\x36\x96\xa1\x3b\x2e\xf4\x93\xcb\xa4\x48\xcc\x6e\xf1\xee\xb2\x6f\x8f\xb0\x47\xae\xd0\x4c\x05\x24\x4f\x12\x69\x76\xba\x81\xf6\x4e\xe8\x6d\xcb\xea\x16\x09\x6d\x7a\x27\x9e\xa7\xd4\x08\x81\x87\xa2\x6a\x8b\xea\xb0\x9a\x9d\x29\x0e\x61\x6c\x86\xe1\xc7\xd9\xb0\xa8\xa5\x21\x1a\x3f\x26\x08\x65\xe6\xdd\x77\x4f\xbb\xc5\xfd\x7e\xf7\xf4\xdb\xfa\xb1\xd9\x6f\xbf\x6e\x36\xf7\xff\xec\xa7\x24\xb1\x08\x47\xcb\xf6\xed\x71\xbd\x9b\x53\xb4\x9f\xca\xe2\x0c\x90\x1b\xaa\xae\x92\xcf\xf0\x5f\x73\xf6\xcd\x0b\x8f\x1f\x29\x19\xc4\xe6\xb4\x8a\x92\x15\x27\x56\xb5\x2b\x73\x62\xc5\x88\x1e\xdc\x3c\x08\xa8\x34\x6c\x4a\x15\xaf\xf0\xa5\xab\x64\x0d\x72\x77\xd4\x5d\xc3\xaa\x9e\x93\x01\xcd\xfc\xf2\xdc\xb3\x4a\x36\xf7\xc5\xa9\x68\x37\x50\x2f\x8b\x77\x37\xa3\x0a\x35\x0d\x64\x03\xf7\xcb\xad\x2e\xe5\xfe\xf3\xfa\x71\xfd\xbc\xb8\xdf\x93\xfe\x76\x89\x65\xe6\x67\xa8\x64\x51\x1d\x96\xd0\x36\x4b\xa7\x2d\xf9\x19\xa9\x62\x38\xa3\x86\x86\x95\xb0\xa9\x8b\x61\x4c\x05\x12\xe5\x8c\xd4\x8b\xa2\x96\xb5\x3e\x7f\xb0\x48\x2a\x25\x4e\x64\x88\x02\x5e\xe1\x11\x0e\xcf\xf0\xdf\x9f\xea\x24\x03\xf7\xb3\xb7\x20\x46\x3d\x30\xb7\x78\x84\xb7\x8d\x2e\xcb\xa9\xb0\xb9\x4e\x6e\x24\x00\x99\xe7\x96\x65\x2f\x6b\x76\x38\x40\x3d\xa3\x6e\x37\x8f\x84\x10\x64\x6e\x9e\xfd\x78\xcf\x2f\x09\x89\x05\x37\x8b\xf8\xf5\x2c\x59\x8b\xec\x65\x71\x80\xaa\x5d\x1a\x25\xf4\x32\x65\xf1\x84\x46\x09\x98\x53\xca\x5e\x59\x51\x1a\x6e\x74\x5b\x1e\xfc\x7d\xa8\xcc\x03\x73\x9f\xe5\xe3\x72\xff\x65\xf1\x7c\xb3\x5f\x2d\x36\x7e\x2c\x0c\x73\x1e\xe0\x0a\x17\x7f\xc0\x46\xeb\x72\x67\x76\xcc\x1e\xa9\xc8\xcf\x49\x25\x6a\x75\x67\x10\x5d\xb9\xc0\xa7\xf6\x97\x4b\x16\x9b\xcb\x25\x94\xf7\x45\xd3\x7e\xfa\xe9\x92\x84\xc0\x23\xf3\x8e\x45\xb3\xfe\x51\xcc\x85\x14\x89\x54\x8e\xc7\xe6\x00\xed\x33\x34\xba\xab\x05\x34\x77\x95\xd2\xb3\x69\x31\xcd\x69\x64\x69\x70\x0b\xa5\xf2\x87\x6f\x61\x27\xcd\x27\x73\x48\x09\x1e\x45\x10\x5d\x5b\xbc\xc2\x93\x52\x85\x80\xda\xcf\x76\xd3\x92\x24\xe5\xdc\x3e\x7a\x73\xb7\x07\x59\xb4\xfb\x30\xf2\x83\x69\x28\x93\xd8\x0e\x6e\x8f\xba\x2b\xe5\x67\xa8\x8c\x78\x86\x9b\x8a\xf5\x73\xd2\x10\x12\xab\xbc\xbe\x42\xdd\x3e\x40\xbb\xd3\xeb\xf6\x78\x5d\xd9\x23\xa9\x90\xa8\x44\x6c\x9e\xef\x1e\xd6\xfd\x2d\x80\x08\x65\x1f\xb3\x03\x76\x7a\x64\x27\xb8\xd5\xf5\xf5\xcf\xca\x38\xc1\x73\x78\x3e\xf7\x9f\x90\xf1\x04\xdf\xf2\xa5\x28\x4b\x64\xb4\x33\xae\x44\xf2\x40\x25\x4e\x85\xd8\xb6\xac\xed\x9a\x7b\x7d\xe8\xaf\xce\x73\x9e\x1a\x62\xdd\x77\x48\x6a\xf7\xa3\xdd\xf9\xf7\xff\xcd\x85\x98\x57\x86\x48\xce\xa2\xc4\x2e\x5b\x15\xac\xba\xb6\x00\x27\x68\x56\x86\x40\xfb\x5b\x8b\x3c\x45\xa1\x0f\x12\xe0\xb4\xd1\xe7\x19\xfd\xb3\x48\xc5\x86\xb8\x04\x5e\xfb\x08\x6f\xcf\xf0\x5a\x34\x46\xf7\xf1\x6c\xdd\xfd\xf5\xf3\x59\x80\xcc\xd7\xb3\xc7\x07\x56\x1f\x8a\x6a\x53\xc3\xb6\x38\x54\x20\x9d\x76\xff\x3f\x89\x38\xc2\x38\x11\xd2\xd2\xd4\xa2\x59\x76\x75\x05\x75\xcf\x4c\x06\x5d\x81\x30\x9e\xe7\x66\xd9\xbf\xed\xa0\x69\x6f\x0a\x43\xeb\xbc\x43\x35\xed\x83\xc7\xb9\xeb\x38\x89\x22\x43\x85\xeb\xf6\x08\x75\x05\x3f\xfa\xb5\xe1\x44\x28\xd4\x0c\x3b\x56\x1a\x61\x62\xce\xad\xd5\x7d\xae\xea\x0d\x84\x87\xca\x92\x19\xab\xe5\x9e\x97\x1d\xec\x55\x51\x37\xc3\xed\x58\x0a\xe6\x9c\x37\xc5\xa1\xfa\x5e\xb4\xd5\x88\xc2\x39\x63\x59\xde\xaf\xb2\x5c\x5e\x66\xbb\xc0\x45\x92\x33\x4b\x1d\x9f\x8d\xea\xd9\x76\x12\x9a\x27\x35\xa3\x3b\xa1\xe2\xd4\x88\xd0\x37\xf1\x54\xad\x6a\xfd\x26\x0d\x53\xbe\x65\x45\x69\x4c\x02\x37\x47\xa6\x5c\xb9\x63\x7c\x57\xbd\x42\xd3\x9e\xa0\x6a\x17\x75\xcd\x2e\xfd\x0c\x9e\x46\x66\xb5\x6f\x6b\x80\x7b\xfd\x3a\x5c\xc9\x21\x73\xef\xb0\xd5\xaa\x7d\x63\x35\xac\x7f\x80\x78\x06\xa1\x6b\x79\x0f\xd5\xa1\x3d\xfa\xa9\x20\x03\x42\xad\x5c\x78\x2d\x74\xe7\xf6\xac\xff\x5a\x80\x84\xe3\x30\xab\xdb\x42\x14\x67\xd6\xc2\x67\xe6\xc4\xb8\xd3\x13\xe6\x7f\xdc\x95\x2a\x88\xd2\xbc\x67\x42\x5d\xd9\x3e\xb0\xe6\xe5\x83\x63\xac\xa2\x14\xdd\x02\xeb\x1f\xec\x74\x2e\x07\xb6\xad\x32\x49\x08\x52\xfc\x49\xbf\xc2\x86\x89\x17\x76\x80\x9e\x9a\x27\x82\x45\xe5\x44\x20\xf1\x77\x35\x6b\xf5\x9c\x2d\xa9\x9c\x8b\xc0\x92\xe5\x9e\xd5\xbc\x68\x9b\xbd\x13\x84\x7b\x7d\x1e\x11\xc9\x40\xa2\x34\x20\x80\xba\xf4\xf2\xe9\xf1\xeb\x76\x9f\xec\x6f\x16\xff\xf4\x5a\x21\x0d\x42\x42\x50\x2f\xa9\x24\xae\xc6\x98\x68\xb3\x7e\x4e\x98\x39\x66\x87\x82\x60\x89\x06\x59\x51\x1d\xee\x5a\x38\xf9\x1b\x11\x9a\xa0\x26\x75\xda\xe3\x81\xd7\x75\x3f\x20\x43\xcf\x63\x1e\x9f\xbe\xe9\x16\x9a\xe5\x65\x5d\xb5\x45\x3b\x23\x37\x4a\x13\xe0\xee\x31\x37\x70\xd6\x4d\xd1\x3e\x76\xfd\xed\x69\x9a\xa2\x09\x51\x75\xa7\x85\x7c\x2d\x1a\xa8\xdd\x1c\xbf\x30\x34\x0c\x33\x40\x2d\xea\x7e\xbb\xea\x7f\x93\x40\x73\x6f\xec\x35\xcf\x20\xa0\x78\x05\x39\x3f\x48\xef\x18\xc3\x3b\x67\x00\x8d\x62\x4a\xcd\xaa\x7f\x59\xfc\xfd\x66\xf7\x73\xcb\x91\x46\x4e\xa2\x1d\xa0\x5d\xe9\xd3\x99\x55\x97\x45\x59\x6a\x61\x6d\xb7\xe9\x27\xa7\x69\x96\x99\x9d\x31\xcc\xdd\x6a\xc2\x5f\x74\x29\x47\x8c\xe6\xea\x91\xa7\x19\xcf\x71\x31\x7a\x76\xa3\xdf\x5d\xe1\x66\xe6\x31\x89\x14\x4a\x95\xa7\xd5\x7a\xbb\x5d\x7a\x85\x92\xe6\x69\x82\x42\x50\xa0\x65\xf2\x54\xa1\x26\xe1\x07\x19\x25\x48\x30\x96\x31\xac\x8a\xb6\xf8\x03\x2a\x6f\xbd\x8c\xfe\x64\xbf\xce\xd8\xf1\x94\x2d\x53\x46\x69\x66\xb4\xcc\xa2\x2a\xda\x2d\xcc\x95\x4b\xca\x22\x4e\x0c\x65\x3c\x16\x15\xf4\x8f\x8e\x85\x70\x67\x6d\x57\x88\x17\x68\xed\x82\x34\xb3\x4b\x39\x00\x9e\x91\xae\x52\xb5\xfe\x03\xe6\x56\x8c\x9b\x25\x08\xcb\xad\x8e\x52\x0b\xf8\xc0\xa7\x31\xdc\x53\x64\x11\xea\x1a\xad\x7e\x3a\x43\x65\x28\xd5\xbf\x94\x80\x24\x4c\xec\x99\x6b\xeb\xae\x69\x01\xbe\xb1\xae\x44\xf5\x62\xca\x0c\xa9\x4c\x45\x2e\xad\xcc\x17\x65\x27\xe1\xd6\xb0\x62\x67\x71\xf9\xbb\x49\x91\x2a\xb3\xf4\x2b\x34\xe9\x36\x50\x17\xda\x2b\xd3\x14\x02\x86\xd6\x63\x5b\xb3\xaa\x51\x50\x5b\x8f\x5f\xd7\x5e\x57\x63\x29\x90\x90\x58\xcf\xd3\x8f\x81\xaf\xf6\xf7\x22\x32\x35\x5f\x7f\xbf\x32\xdf\x63\x2c\x00\xdd\xb5\x9f\xa6\x3b\xa4\x48\x2c\xd8\xa0\x7d\xd9\x9b\xe8\xf9\x57\x19\x25\xcc\x6c\x0a\xb3\x74\x0c\xd2\xd2\xaa\x7f\x90\x92\x41\x6a\xb6\x79\xcf\xce\xe7\xda\xf0\xee\x9f\x4a\xbe\x30\x48\x23\xe5\x94\x9a\xdb\x5a\x57\xc6\xbe\xfe\xd4\x0f\x65\xa8\x78\x5a\xa3\x7a\xa7\x67\x36\xa5\x9b\x45\x02\x20\x76\x3b\xca\xf2\xbb\x2e\x5f\xa6\xb4\x11\x92\x9c\x31\xb3\x07\x7b\xbf\x88\x4c\xbe\x1a\x2a\x7f\x7f\xee\x67\xd7\xb1\x08\x0d\xa7\xd3\xe5\x6e\xf5\xe4\xdf\x88\x52\xce\xed\xb3\x2a\xb9\x29\x59\xab\x74\x7d\x7a\x60\x85\x79\xeb\x91\x4d\x12\xd2\x38\x47\x29\xfb\xaa\x5b\xb0\x32\xa2\x1f\x49\x89\x8c\xbd\x3b\xc6\x28\x59\xc6\x5e\xd6\x6a\xaa\xc8\xfc\xda\xbb\x94\xde\xf3\x9e\x30\x0c\xc3\x34\x46\x4f\x54\x55\x9c\x3a\x7c\xfa\x96\x95\xf0\xcc\x8a\xa6\x7f\x7e\x18\x66\xd6\x9d\x54\xb3\xb7\xa7\xb3\xff\x35\x8a\x62\x82\x1b\xc3\xbb\xa2\x94\x77\x55\x0b\x75\xc5\xca\x2d\x2b\xed\x51\x20\x34\xfb\x90\x05\x8e\xdd\x7d\x61\x94\xf0\x38\xb5\xf4\xff\x45\xcb\x12\xea\x6d\xcb\x5e\xde\x6d\xb3\x9f\x9c\xc7\xde\x2d\xf5\xa5\x38\x1c\xa1\x69\x97\x85\x94\xbd\x83\x24\x8c\xb8\x75\xf8\x18\x5d\xad\x66\x6f\xb7\x5d\x25\x77\xc0\xc4\x11\xea\xd9\x3e\x46\x2a\x46\xe6\xbd\xaf\xad\x0d\x8b\x14\xda\x4c\x9e\xea\xe9\x38\x8c\xc3\x4c\xc4\xc8\x48\x9b\xf6\x19\x0e\x86\x2f\xb2\x91\xba\x36\xa6\xf9\x30\x8e\x72\x5c\xcf\x6f\xcf\xff\x1c\x79\x9c\xc2\x38\xb7\x36\x97\x93\xa6\xd6\xcf\x02\x72\xd1\xef\x64\xcc\x22\xb4\x99\x8b\xc6\xf0\xf3\x37\x73\x0a\x36\x5d\x2d\x8e\x6c\xd8\x86\x58\x00\x37\x47\x7b\x59\x17\xd5\xcb\x1f\x63\x8f\x55\x98\x04\x71\x2e\xd0\x45\xb3\xdd\xad\x9f\xe7\x0e\xb5\x09\x7d\x27\x01\x4f\xd0\x95\x70\x79\xd0\x55\xd3\x42\x7d\x27\x9b\x0f\x16\x3b\xa1\x11\x35\x8b\xb9\xd1\x6f\x50\xd3\xdf\xfb\x87\xd1\x38\xc8\xad\x03\xeb\x7b\xf1\xa1\x26\xfa\xee\x5e\x2c\x8f\xd1\x76\xae\x46\xfe\x32\x3f\x18\x09\x34\x25\x39\xda\x99\x0f\xac\x62\x07\x30\xcc\xe6\x3b\x2b\x4b\x68\xa7\x3a\x4a\x98\x24\x34\x32\xa7\x61\x71\x32\xb3\xdf\x89\xdd\xe9\x63\xd3\x20\xe6\x62\xa4\x5d\x7c\xdd\xde\xdc\x55\x13\x06\x13\xa6\x52\x46\xa9\x75\xee\x7c\xad\x8a\xff\x76\x60\xe8\xdf\x4d\xb9\x7e\xd3\x2c\x94\x68\xdd\x9e\xd8\x0f\x63\x02\x74\xfd\x91\xc8\xd2\x34\x74\xde\x0a\xa3\xef\xb8\xb3\x3a\x5e\x10\xa7\xf5\x84\x79\x4c\xa9\x79\x2f\x38\x41\x7d\x80\x4a\x5c\xbe\x3b\xe3\x82\x95\x33\x42\xcd\xe3\x0c\xa8\x5d\x6d\xeb\xa4\x45\xa5\x6d\xb6\x80\x79\x9a\xf8\x6f\xd8\x69\xa3\xe5\xa2\x59\x5f\xe3\x27\xaf\x59\x5d\xfd\x29\x7b\xca\x99\x4c\xcc\x56\x3f\x3f\x7d\x7d\xbc\xd9\xee\x7f\x5b\x6f\x76\xfe\xa3\x58\x28\x31\x4c\xf2\x19\x5a\xf4\x54\xfa\x9f\x63\x1e\x78\xe3\x59\x77\x95\x5c\x57\xce\xef\x34\x39\x3a\x2c\x49\x88\xb5\xc5\x2a\xdd\x55\x02\x9e\xde\x2a\x90\xe6\x3f\x75\x73\x2c\xce\xb3\xaf\x60\xdc\xba\xd9\xda\xe2\x04\x35\xf4\xea\x59\xc8\x03\x16\xf6\x3c\x1d\xe0\xa6\xa8\x74\x3f\x94\xcb\x2c\x73\xfe\x21\x43\xa5\xb7\x60\x64\x9e\x91\xc7\x46\x03\x1e\xaf\x38\x67\x04\x9c\xc5\xf5\xac\xf5\xcc\x15\x10\x72\xc1\x43\xc3\x57\xde\x91\xd3\x84\x83\xba\xc9\x42\x2a\x34\x08\xef\x8b\x93\xb7\xc7\x43\x01\x10\x1b\x9a\xf8\x72\xbf\x9a\xda\x53\x1f\x7b\x6e\xfc\x9b\x49\x9e\xa2\x9e\xd6\x9f\xf7\xbf\x64\x42\x1a\xed\x33\x0c\xc6\x26\x47\xd5\xae\x4a\xf6\xc6\x99\x78\x41\xb3\x6f\x46\x47\x90\xcb\xd8\x9c\xb1\xdb\xa2\x2c\x31\xca\x77\xdd\xc6\x08\x81\xc9\x58\xd9\x75\xda\x7c\x5b\x2f\x59\xdb\x96\x70\x0b\x33\x87\x64\xa8\x82\x54\x59\xd1\xfe\x8d\x95\x85\xbc\xea\x34\x08\x95\x0c\x71\x4d\x56\x4f\x8f\xbb\xbb\xc7\xaf\xeb\xfd\xc3\x9d\xf9\xc7\x67\xb7\x66\x51\x10\xe5\xf8\x05\xab\xfa\x72\x6e\xf5\x73\x71\x61\x65\x3f\x14\x87\x31\xb1\x5b\xfe\x9d\xd5\x75\xa1\xeb\x95\x61\xf6\x0b\xef\x6b\x1a\xe6\x25\x18\xc5\x7a\x35\x6f\x61\xac\x79\x76\x02\x2f\x8a\xd6\xbb\x89\xab\x35\x0a\xd2\x1c\xa5\xed\xca\x08\x4b\x63\xe7\xcd\x86\x95\x4a\x44\xef\x0c\x37\x9f\xec\x06\x08\x48\x00\xcb\xbb\x07\xd6\x80\x8e\x48\x3f\x83\x46\x01\xe0\xb9\x47\xf7\xad\x51\x0c\x98\x98\x58\xe9\x57\x0f\x5d\x44\x93\x08\xfd\xae\xfa\x15\x6a\x55\xea\xb7\xfe\x76\x2c\xe4\x80\x8b\xbb\xe9\x78\x59\x34\xc7\xa9\x5e\x15\x85\x54\xa8\xd0\xd9\x00\x5d\x5d\x43\xd5\x5a\x97\x84\xe5\x88\x7f\x6a\x80\x5c\xdd\xf7\x28\x14\xc2\x2a\x87\x20\x8e\x95\x2e\xf5\xe1\xb2\x3d\xb2\xde\xc8\x8e\x22\xca\x02\x1b\x13\x69\xef\x35\xab\x56\xba\x52\xc5\x61\x4a\x14\x51\x4c\xad\x26\xfb\xf9\x87\x65\xe1\xd2\xf2\xef\x29\x55\x44\x71\x42\x13\x85\x2c\xa1\xed\xea\x6a\xbd\xfb\xb2\xbc\x20\x43\xf0\x4f\x8a\x59\x24\x23\xfb\xf5\xda\xa8\x42\xf5\xda\x7a\xb5\xc7\xa7\x39\x4a\xb3\x38\x70\x96\xfb\x93\x52\x50\xa3\x03\x68\x79\x99\x1c\xbd\x7e\xaa\xca\xcc\x9b\xef\xee\xbc\xe5\x16\x65\x34\x44\x37\x52\x03\xed\x53\x7d\x60\x95\xa1\x9a\x29\x31\x64\x32\x41\xa6\xd7\x42\x63\x37\x54\x41\x8d\xe6\xa5\xbf\x45\x9e\x51\xd4\x5a\x4e\xec\xc7\x77\x28\x76\x05\xd4\xb4\x1f\x52\x41\x62\x78\x92\xb6\x1e\x31\x63\x42\xbd\xb3\x21\x66\x8b\xcf\x09\xa0\xd6\x60\xc9\x66\xd1\xb5\x47\x5d\x17\x0d\x7a\x4d\xfc\x0c\x99\xb3\xd8\xb1\x2f\xd6\x42\x3c\x5b\x7a\x91\x47\x14\x90\x7f\xa1\x36\xb3\xbf\x29\x5e\x0b\x09\x95\xec\xdf\x57\x86\x39\x2a\x0f\x5f\xd8\xeb\x2b\x54\x9f\x75\x29\xfb\x91\x08\x64\xee\xee\x0c\x87\x91\x19\x39\x7b\x47\xc9\xc3\x14\xb5\x40\xf6\x56\x8d\x54\x9b\x48\x0a\x49\x86\x73\xb3\xac\x0b\xf1\x2e\xa2\x37\xfd\xe3\x88\xf9\xdf\xff\x37\x7b\x00\x70\x86\xae\xf7\xa6\x28\xf5\x1e\x65\x80\x7f\x04\xa8\x44\x24\xa8\x1f\xe8\x0f\x5c\x23\x91\x0a\x21\x33\x53\x94\xae\x05\xb8\x88\x98\x1f\x8a\x82\x08\x43\xa5\xec\x05\x16\x65\xb9\xd1\x4d\x53\x18\x16\xe2\x9d\x8b\xe1\xff\x0d\xaf\x32\xfd\x3f\xf6\x5f\x99\x57\x9c\xf1\x9d\x67\xff\x8a\xfa\x87\x64\x41\x88\x10\x8c\xa2\x99\x31\xcb\x48\x71\x16\x04\x56\x3a\x63\x9c\xf7\x2a\xb7\x8c\x03\x12\xc7\xc8\x44\x3a\xfe\x45\x77\x83\x51\x3a\xfd\xd0\x38\x20\x09\xeb\x23\xb0\xcf\x78\x86\xbe\xb1\xb2\x1b\xc3\x3d\xe2\x20\x8f\x62\x2b\x75\x15\xd4\x35\xd4\xf7\xf0\x0a\x25\xb5\x52\xc1\x4f\x61\x21\x71\xfe\x10\x74\xa9\x14\xba\xda\xcd\xec\xe0\x38\xe0\x21\x86\xd3\x2a\x78\x5b\x94\xf0\x63\xf6\xbe\x34\xcf\x91\xe4\x78\x77\xb9\xd5\xf5\xdc\xb8\xbb\x1a\xd6\x88\xc3\x20\xb7\xce\xa2\xee\xb2\x68\x1a\x68\x67\x0f\x8c\x48\x8a\x46\xf2\x7f\x98\x78\xd9\xe8\x76\xe9\x5f\x36\x8a\xc2\x4c\x8e\xb8\xfc\x33\x2a\xd1\x3f\xb7\x04\xe3\x98\x0b\xd4\x89\xbd\xdb\x76\xd1\x3e\x19\x9b\x6a\x3a\x29\x11\x91\xa0\x5e\x3f\x34\x7c\xfd\x56\xd7\xdf\xa1\xf8\x4b\x00\x92\x38\x11\x90\xe5\x7e\x0d\x8d\x08\xdb\x14\x62\x8c\x55\x70\xd3\xd2\xd0\xba\xea\xd7\x0f\x77\xdb\xed\xdd\xd3\xe3\xfe\xf6\xe9\x79\xbf\x5d\xdc\xaf\xb7\xbb\xc5\xe7\xf5\xfd\x62\xeb\x55\xad\x38\x0d\xb3\xd8\x69\x33\x35\x6b\xe1\x4e\xe8\xf9\xad\x80\x64\x5e\x38\x5f\xb1\x17\xa7\x1b\x94\x42\x86\x8c\xb4\xc6\x8d\x81\x9d\x5e\xe9\xd2\xb3\xe4\xe9\x6d\xf3\x1c\x92\x78\xb4\x0a\x56\x3f\xb8\xea\xf4\x89\x59\x2a\xd1\x6f\xab\x74\x6d\xac\x2b\xff\xea\x8c\x5b\xfa\xbf\xd7\x07\x6b\x22\x7d\x78\x03\x1e\x51\x61\x98\xaf\x37\x35\xc7\x21\xb6\x98\x47\x11\x32\x6b\x8c\xe2\x6d\xd8\xc5\x58\x01\x4d\x3f\x98\x0a\x30\xcb\xb3\xbd\xfb\xfc\xb0\xd8\xaf\x7f\xdf\x3d\x2f\x56\x3b\xb3\xa0\xcb\xc5\x76\xdd\x4f\xca\x79\x94\x39\xfb\x7d\x51\x15\x27\xa7\x50\xf7\x9b\xc6\x79\x8a\x7e\x21\x54\x56\x9b\xb1\x15\x15\x0b\x43\x81\x68\xdb\x9b\xa7\x2f\x44\x5b\xbc\xc2\x12\x86\xe7\x8b\x30\x04\xeb\x66\x45\x25\xd1\x7c\x7e\x3f\x26\x69\x80\x2e\x66\xc9\x5a\x76\x27\xa1\x6a\x0b\x55\x0c\xfe\xe1\x18\xb2\x0c\x63\x0e\x07\x68\x31\x6a\x30\x3b\xde\xc4\xef\x04\xa8\x08\x84\x67\xc6\x0d\xd4\xaf\xde\x1d\x32\x0e\x90\xfc\x5c\x92\xc7\x2a\x22\x42\xf4\x0e\xb6\xff\x01\x9a\x90\x04\x24\x43\xff\x72\x03\xed\x6a\xf5\xc5\x86\xa5\xa2\x89\x60\x4c\x02\x22\x51\x4b\xe2\x9a\xd5\x72\x6a\xda\x8c\x95\xda\x24\x08\x09\xb5\xf1\xa9\xd3\xb9\x6b\xe1\x51\x4b\xb8\x93\xd7\x03\x2c\x49\x10\x65\x71\xe4\xdc\xf3\x9b\xcd\x48\xb6\x24\x81\x48\xd3\xac\x77\x6c\x3b\x87\xe7\x54\x1b\x4a\x48\x08\x14\x01\x25\x73\xb2\x1b\x5e\x8a\xcc\x7c\x77\x09\x11\x29\x7a\x63\x36\xec\xa2\xbb\xf6\xae\x32\x4b\xd5\x80\xbc\xce\x72\x13\x02\x1c\x4d\x87\x91\x66\x77\x0b\x60\x3d\x6c\x33\xb7\x63\x42\x45\x86\xd4\x2d\x58\xb5\x62\x65\x69\xcc\xba\x47\xfd\xd4\xbb\x20\x93\x30\x0a\xd0\x61\x7d\x0f\x8d\xd0\xc5\x07\x61\x97\x24\xcc\x43\x92\x63\xbc\xbf\x34\x87\xb7\x82\xfd\x92\x55\x2f\xf7\x85\x80\xaa\x81\x6d\x87\x38\x27\xd5\x95\xd3\xad\x89\x82\x1c\xe1\x5f\x2e\x2c\x75\x6d\xdf\x9d\x4f\x95\x24\x63\x1f\x50\x12\xc5\xa9\x55\xf9\x8f\xc5\xab\x37\x68\x92\x88\xdb\x20\xf6\x81\x9d\x60\x70\x95\x27\x91\x4c\x30\x30\xcd\xa4\xdc\x5b\xf1\xc2\xca\x0f\xc0\x19\xee\x8a\x38\x24\x18\x7b\x94\x5e\x25\x99\x07\x79\x92\x58\xa6\x28\x1f\xd1\x2d\x5b\xc2\x6d\xad\x4f\xd6\xee\x18\x88\x8c\x4c\x4c\xa6\x24\x49\xe3\x10\x06\xba\x80\xda\x1e\xb7\xd9\x7d\x53\x96\x2b\x8e\x0e\x13\xfd\x02\xf5\xdd\xe9\xfc\x91\x3e\x7e\x5d\x2b\x4b\x52\xce\xd0\x33\x79\xbb\xb3\xb8\x09\x64\xda\xa3\x50\x76\x92\x25\x69\x44\x46\xa4\xb7\xa9\xf5\x0f\x23\x0c\x67\xef\x91\x93\x1c\xa3\x17\xdb\xaf\x9b\xf5\xf3\xfe\xcb\xfa\xf9\x69\xff\xf0\xf5\x7e\x77\xb7\xb9\xbf\x5b\x3f\xfb\x7b\xe5\x21\xc5\x88\xf0\xdb\xb1\x68\xa1\x2c\x9a\x76\x51\x96\x4e\x51\xe8\xb5\xce\x24\x67\x24\x34\xe2\x6a\xd1\x1c\xa1\xfa\xa6\x0b\xcf\x7e\x13\x66\x2c\x37\xc4\xcc\xb1\x0a\xda\x95\xae\x65\x51\x31\xa3\xae\x4e\xbf\x88\x25\x80\xa1\xb2\x19\x6b\xf8\x5f\xff\xce\x6e\x2a\x22\xae\x10\xc6\x51\xc9\x47\xf8\xd1\x3e\xe8\x6a\x14\x88\x46\x42\xf3\x67\x95\x19\x2b\xd4\x68\xa1\xfa\x0c\x63\xd6\x9b\x70\xa2\x24\xe2\x21\x9d\x0d\x3c\x89\xe8\x26\x5c\x70\x8c\x27\xbc\xb9\x10\xa3\x67\x23\xd3\x65\x16\x24\x40\xf1\xd0\xd6\x46\x7d\xf8\xc0\x98\xf6\x73\x29\x43\xbf\xd0\xb9\x2e\x5e\x59\x8b\x76\xdd\xba\x92\x37\xac\x77\xcb\x27\x22\xb3\x11\x6f\xeb\x90\x43\xc7\x74\x3f\xa4\x00\x15\xd5\xbd\x84\x12\x0e\xac\x05\xd4\x65\xd0\x88\x59\x48\x09\xf2\x83\xf7\x93\x79\x02\x86\xcc\x8f\xac\xb1\x1e\x7e\x3c\xc6\x1f\x70\x00\x29\x19\x84\xbd\x56\xfd\xaa\x5b\x27\x27\xa7\x9f\x01\x21\x43\xf7\x0a\xfc\x28\xda\xa7\x57\xa8\x37\x25\xbb\xf4\x3a\x5e\xa2\x72\x22\x0d\xb5\x3c\x17\xcd\xcb\x70\x35\xa1\x8e\x29\xbe\xff\xeb\xaf\xe3\xd6\xa9\x62\x9f\xbd\x85\xb2\xfc\x0c\x15\x34\x93\x17\x98\xae\x67\x1a\x84\x12\xa5\xae\x21\xac\x7a\x05\xa5\x64\x7f\x8a\x77\xb9\xe2\x0a\x49\x03\x11\x22\x2e\x12\x0f\xd2\xf4\x14\xa5\x81\x88\x11\x38\x58\x38\x6e\xfd\x0e\x02\x94\x92\xcc\x82\x85\x6e\x17\x4f\xde\xd4\x4b\x69\x42\x06\x2c\x12\xc8\xa5\xe1\x28\xb3\x53\x91\xd2\x4c\xa5\xe6\x54\x18\x0d\xb6\xa8\x0e\xce\x8c\xf6\x83\x32\xc5\xc0\xa1\x7b\x19\xbb\xc1\xd3\x37\x0b\x29\x21\xa1\xf7\x60\x97\x12\xea\xbb\xca\x68\x66\x6c\xec\x02\xf0\x53\x73\x45\xd9\xb0\xb4\x2d\xab\xdb\x9b\x11\xd4\xd9\xcf\x12\x29\x32\x1e\x07\xf3\x1b\x21\x0f\xd3\x28\x4a\x11\xdc\x60\x38\xc4\x43\x57\xb6\xc5\xb9\x84\xbb\x16\x4e\xcd\xa7\xa9\xd1\x32\xe6\x6a\x13\x79\x99\xc6\x2c\x24\xa9\xf5\xf8\xb7\x1f\x04\x41\xd2\x84\xa4\x21\x19\x62\x74\x1e\xd8\xf1\x97\x60\x6f\x69\x1a\x85\x89\x45\xe8\x9c\x4b\xed\xa4\xb5\x1b\xca\x53\x85\xe1\xfc\x23\x6b\xf6\xd6\x13\x3c\x5f\xcb\x1c\x14\x06\x69\xbc\xd6\xee\xa1\x5b\x29\x63\x41\x8e\xba\x09\xab\xf6\x3d\x8f\x9c\x5d\xcc\x18\xc3\xf8\x5e\x83\xdc\x18\xfd\x3c\x57\x4e\x4d\xca\x29\x43\x5d\xd5\x58\xc1\xc8\x85\xd6\xcf\x2b\x1a\xf8\x07\x71\x69\xdd\xdb\x07\x04\xdd\x94\x3b\xa8\x4f\x9e\xff\xa6\x82\x58\x68\xc9\x5d\xaf\x6f\xa6\x82\x87\x28\x64\x2c\x8e\xe5\xa9\x66\xa2\x2c\xfe\x80\xcf\xac\xb9\xf6\x64\x21\x28\x42\x89\x9e\xd7\xdb\xf5\xf3\xb7\xf5\x8d\x95\x2b\x5b\xb4\x08\x36\xf7\x8b\xdd\xed\xd3\xf3\xc3\xfe\x69\xb3\x7e\x5e\x8c\xd1\x95\xa9\xcc\x02\xf4\x86\x15\x4d\xd3\xc1\xa2\x92\x46\x51\xfa\xe3\x4f\xec\x9f\x14\x62\x89\x21\x07\xfb\x62\x73\xcf\x59\x0a\x79\x18\xc7\xd6\xad\xbb\x28\xcb\xd5\xd1\xd8\x05\xd5\x01\x9a\xe5\x65\xf1\xb5\x99\x8b\xd2\x2c\x08\x02\xe9\xe0\x46\xaa\x38\x8c\x11\xab\x3f\x27\x86\x2c\x48\x12\x74\xba\x49\xad\x5a\xe7\x15\x72\x6f\x90\x11\x99\x40\xdc\xbf\xe0\xe7\x9a\xbd\xb2\x96\xd5\x77\x27\x76\x98\x3a\x63\x32\x1a\x10\x74\x4d\xe1\x5e\x6d\x75\xf9\x4e\x4f\x7b\x47\xf1\xd7\x88\x3a\xa3\x84\x67\x04\x55\xd7\xaa\x6b\x56\xac\x14\x5d\x79\x25\x6c\x9e\x51\x22\x91\xf3\x9e\x59\x0d\xd5\x2c\xf8\x90\x51\x1a\x23\xc6\xce\x70\xfe\x16\x1e\x98\xa1\xb3\x4a\x4b\x98\xdf\x23\x0e\xf0\xd3\x94\xae\xdb\xae\x82\x7d\x05\xde\xb9\x97\x85\x29\x47\xc3\xdb\x65\x69\xac\xdb\xe3\x6c\xa9\xa3\x5c\x8d\xb8\xaf\x31\x32\x56\xba\x2c\x41\xbc\xe7\x26\x59\x24\x39\xa2\xd9\x31\xe8\xf7\xa4\xd0\xc0\xbf\x81\xb2\xf5\x4a\x5c\x16\x29\x88\x2d\x60\x04\x6a\x51\x7c\x24\x0d\xb3\x98\x84\x78\x20\x5a\x6f\x02\x6f\x0b\x63\x64\x7b\x38\x5f\x16\xc7\x29\x0a\x92\x65\x77\xf1\x88\x16\x63\x35\xd8\xff\x4c\x5f\x29\x16\x36\x12\x61\x2c\xd4\x1a\xee\x56\x4f\x5e\xac\x4e\x9f\x98\x50\x11\x0a\x4c\xa4\x70\xfe\xd4\xaf\x16\xe9\xdc\x13\x47\x12\xab\xdc\x01\x6a\x1a\xf8\x7b\xa3\x2b\x04\xf4\x2c\x2a\xf9\x19\x5a\x8c\x7b\xaf\x4b\x0c\x11\x2d\x9a\xc7\xee\xc4\x67\x69\x27\x59\x92\x27\xb9\xb2\x0c\xb4\x61\xa5\x7e\xc3\x03\x53\x54\x87\xd9\xfa\x25\x9c\xa3\xd6\xd4\x02\x3b\xf9\x17\x58\x28\xc3\x3a\xca\x42\xa9\xfe\x55\x04\xa0\x69\x77\xaf\x0f\x16\x17\x29\x3d\x0a\xf5\x86\xd9\xf5\xc8\x66\xeb\x99\x86\x21\x2a\x7c\xc6\xf8\x61\x75\xd1\xe8\x4a\x1c\x67\x6f\x98\x86\x22\x37\x53\x56\xf7\x1b\xcf\x5e\xc7\x0a\x51\x96\xd1\x00\xc7\x87\x3d\x75\x90\x94\xd9\x42\x66\x49\x8e\x8e\xca\x7b\x7d\x58\x19\x11\xf7\x0c\x6f\x46\x67\xbe\xaa\xa9\x65\x99\x12\xd6\xc3\x66\xe4\xce\xfe\xa0\xf7\xff\xed\x8a\x3f\xae\x25\x32\x64\x99\x02\xe9\x02\x4a\x16\x42\x7a\x55\x4b\xc9\x58\x28\x98\x55\x80\x5f\xa1\x6e\x60\x7b\x2e\xdd\x0b\x3a\x43\x63\x6c\x19\x7a\x01\x94\xb1\x58\xd0\xc1\x7d\xbd\x66\x75\x79\xb9\xab\x84\x3e\x61\x1a\x04\xde\x1d\x03\x4a\x1f\x7c\x03\x4b\x03\xf4\xdd\x6e\x6a\xb4\xed\xfb\x5f\xad\xc7\x0b\xc5\xbc\x77\x7e\x5a\x07\xf6\xec\x72\x19\x62\xd8\xca\x9e\xae\x7b\x2d\x5e\x56\xba\x31\x7b\xf9\x45\x77\xb3\x90\x49\xc6\xa5\x24\x56\x05\x34\x66\x9c\xf5\x56\x18\x59\x3c\xf6\xfd\x67\x1c\x64\xe8\x2c\xfb\xc5\xa1\x06\x24\xca\xb1\xf2\x9a\x09\xc2\x31\xdd\x62\xf3\xb4\xdd\xa1\x01\xb1\xdd\x2d\x9e\x77\xfd\x68\x48\x89\x53\x2f\x9e\xe1\x5c\x16\xf0\x4e\x21\xfc\xf7\xff\x5d\x8b\xe3\x66\x22\xcb\x11\x34\x24\x6c\x04\x60\x77\x39\x43\x7f\x4f\x96\x21\x84\xa1\x68\xd0\xbf\xc2\xba\x66\x38\x57\x82\x0b\x44\xcd\x68\x27\xa8\xf6\xff\xed\xa0\xbe\xcc\x1d\xb6\xb8\x79\xff\x8e\x1c\xec\x32\x93\x2a\x42\x03\x1d\x53\x44\x66\x8b\x04\x81\x22\x7c\x40\x91\xce\x47\x93\x0c\x3d\x4b\xbc\xbb\x58\xc4\xcd\x3b\xd6\x3d\x25\x28\xc8\x48\x18\x7b\xf6\xa1\xcd\x36\xd6\xcf\xac\x85\x2f\x45\xd3\xea\xfa\x5d\x2a\x93\xb7\x69\x7b\x0f\x46\xa6\x8c\x88\x75\xd9\x3a\xd0\x60\xa8\xc2\x2a\x20\x83\xae\xfb\x57\xc2\x23\x49\x34\x36\x90\x33\x95\x71\x7c\x2b\xb7\xd6\x48\x9e\x08\x14\xf6\xe3\x42\xe4\x91\x3d\x57\x07\x18\x33\x3c\xa7\xd7\xe6\x41\x28\x50\xa1\xfb\x0d\x46\x3e\xd8\x3c\x80\x1c\x5f\xd6\x43\x49\x96\x46\x30\xc1\xcc\x2f\x9c\x93\x4c\xa4\x88\x61\x16\xda\xc2\x79\x46\xea\x60\x4e\x64\x86\x09\x47\x0f\x45\xc5\x7e\x14\x5e\x4c\xe5\x94\x4a\x07\x2c\x11\xba\x92\xdf\x01\x5e\xf0\xde\x77\x95\xf9\x67\x3f\x29\x54\x08\x60\x42\xae\xef\xf0\x0f\x93\xdd\xcb\xc3\x34\x40\x2e\xcd\x59\xf5\x82\x11\x9f\xfa\x74\xfd\x54\xe6\x11\x89\x89\x8b\xa8\x38\xcb\x0b\x75\x8d\xe9\xa4\x38\x25\x78\x74\x45\xad\xdf\x2a\x07\x3d\x9f\x3b\x03\xf2\x84\x84\x48\xd7\x96\x12\x77\x7a\x94\x7d\x94\xa7\x24\x0c\xc0\x82\x36\x58\xe9\x6f\x50\x8d\xfd\xda\x79\x4a\x58\x68\x93\xfa\xba\x7a\xb8\x2e\xe6\xcc\x2c\xc7\x1e\x81\x36\xe1\xcd\x07\x1f\x91\xf2\x24\xe8\x83\x89\xcf\xac\x86\xbb\x99\x85\x91\x67\x61\xe4\x1d\x64\x36\x48\x33\x03\xe6\x5f\xbf\x6f\x96\xd2\x24\x1e\xb2\xbd\x76\xc7\x5a\x77\x87\xe3\xa2\x2c\x6f\x75\xfd\xd2\xef\x59\x66\xec\x10\x7b\x54\x7e\x37\xf7\xb9\xd5\x75\xaf\x78\x7f\x70\xdf\x2c\xb3\x58\x4e\x56\x0a\x63\x78\x6f\xea\xe2\x8f\x9e\x32\xb2\x8c\x21\x13\x58\xb7\xc7\x87\x62\x88\x44\x15\xba\x72\x42\xec\xba\x2e\x90\x67\x0a\x28\xef\x33\x3c\xbe\x1b\x4d\xfb\xaf\xa9\x7a\xb9\x21\x46\xb0\x8b\xf3\xc0\x5e\xde\x07\x8d\xf3\x5c\x86\x99\x85\x83\xa2\x55\x53\x33\xd9\xbf\x2d\x23\x8a\xb9\x10\xff\xb6\x3b\x3d\xa9\xcf\xec\xc4\xcb\xa2\x3a\x6c\x58\xdd\x16\xd0\x20\xf5\x6e\xb4\x9e\x81\x23\x72\xa6\x32\x8f\x1d\xaa\xe0\x87\x3b\x98\xf3\x4d\xe3\x61\x86\xb1\x6a\xc1\xaa\x25\xdc\x16\x15\x33\x7c\x4f\x3e\x0e\x59\x7f\x7e\x5e\x1e\x26\xce\x9d\xff\x4d\xb7\xe0\xf4\x8a\xe9\x1c\xc1\x62\xf4\x31\x9c\xd8\x0f\x14\xd7\xdf\x0b\x17\x7d\x71\xe3\x40\x29\x8a\xed\xad\x83\x2a\xac\x76\xb3\x1b\xa8\x9c\xe2\x81\x6d\xa0\x5d\xb7\xc7\x2b\x36\x02\x0b\x48\x8e\x44\xbe\xbc\xbb\xb9\xb9\x7b\xfc\xbc\xbf\xf9\x6a\xad\x81\x4f\x7e\x3c\x26\x88\xaa\xbb\x2d\x56\xba\xa8\x8c\x7e\xe8\x35\x03\x3f\x21\xb7\xf9\x4d\x12\x5e\xad\x6e\x35\x56\x2c\x58\x20\x1d\x99\xb1\x56\x1c\xd7\x98\xa5\x00\xf3\xa4\x43\x46\xc2\x1c\xe9\x9c\x77\x75\xf5\x0c\x27\x56\xf4\x70\x19\x46\x12\xc1\xb8\x8f\x3f\xad\xba\x56\x2b\xd5\x2c\xcd\xbd\x46\xf0\x7d\xeb\xf3\x09\xc6\x91\x34\x7f\x75\xc6\x43\x07\x30\x36\xd2\x62\x16\x09\xfb\x33\xc7\x93\xbb\x09\x25\xb9\x8a\x50\x37\xbc\xdc\xea\xfa\x06\x4e\x5a\xd4\x4c\xcc\xfc\xc2\x8c\x52\x00\x33\x6b\xfd\xfb\xd3\x55\x84\xfb\x9f\x3c\x24\xa4\x24\x71\xc8\x21\x73\xb6\xdc\x1a\x63\xd4\xc0\x6a\x44\xfd\x3c\x86\x2e\xb5\xc5\xdd\xf3\xcd\xf3\xd3\x66\xff\x7d\x71\x7f\xbf\xde\xf5\xa3\x31\x63\xb4\xb7\x17\x96\x5a\x97\x2e\x58\x37\x79\xd5\x28\x0d\x30\x11\x4a\xea\xbb\xea\xf5\x27\x07\xce\x4f\xe7\x24\x32\x8f\xdc\xde\xac\x26\x5b\x1b\x87\x71\x9e\x8d\x41\x45\x3b\x7d\x38\xf4\x16\x1f\x8b\x33\x86\xbe\x87\x95\x56\x0a\x86\x5f\x21\x45\x05\x64\x57\x17\x67\x43\x50\x66\x5b\xb6\xdd\xf9\x5c\xfa\xd0\x33\x4b\x68\xe2\xf1\xf5\x8b\xd5\xfd\xb3\x2e\x21\x25\x34\xcc\x83\x9c\x1a\x32\x49\xe3\x8c\x04\x39\xed\x27\xa7\x89\x72\x87\xc8\x89\x94\xe9\xa7\x26\x12\x84\x43\xbb\x6e\xd8\x05\xea\xcd\x75\xf4\xac\x9b\x9d\x06\x80\x86\xc9\xd9\x9c\x93\x27\xe5\x54\x08\x3f\x28\x13\xde\x47\x42\x7d\x90\xfe\xb6\xd6\xa7\x9d\xbe\x5b\x2d\x36\x73\x80\xde\xfc\xd6\x4a\x2a\x94\x6d\x85\x6c\xf6\x62\xa4\xb0\xb1\x8c\x58\x27\x29\x9c\x8a\xd6\x7c\xed\x33\x3a\x99\xe5\x35\xf4\x3a\xcb\x40\x21\xfe\xa4\xe9\xb8\x4f\x24\x9b\x3e\x26\x53\x14\x7d\x4b\x25\x6b\xda\x1e\x33\xba\x6f\xda\xc1\xd3\xc8\xf2\x88\x63\xb2\xd3\xcf\x55\x32\xfb\xe7\xdf\xf1\x2c\x6a\xce\x18\x25\x18\x5d\x6c\x47\x0b\x80\xee\xc5\xb9\x17\xf2\xba\x70\x62\x8c\xc6\x98\xb9\xb0\xff\x19\x94\x87\x31\x91\xa3\x13\xff\x73\x5d\x80\x1a\xa5\x8a\xbb\x61\x11\x25\x49\x38\xc0\x75\x58\xd5\x5e\xfe\xd1\xe9\xd6\xdb\xf1\x7f\x0d\x82\xc2\x44\x9a\x22\xce\x54\xbf\x55\x50\x6f\xa1\x5d\xb1\x6a\xd9\xd5\xd5\x28\xb2\xcd\x64\xc8\xd0\x76\x78\x5e\xdf\xaf\x17\xdb\xf5\x7e\xb3\x7e\xbe\x7b\xba\xf1\x8e\x12\x26\x33\x5b\xe7\xa0\x62\xf3\x14\x4a\x33\x84\x3a\xdc\xf6\xad\xa8\x0e\x0e\xfb\xbc\xdd\x0c\x60\x5c\x26\xb3\x04\x71\xef\xcf\xeb\xc5\x4d\x9f\x24\xc5\x64\xc6\x51\x28\xd4\x50\x02\x6b\xe0\x9b\x73\x11\x0e\x98\x7b\x3f\x4f\x84\xb6\x32\x80\xfd\xd2\x2f\xac\x99\xd9\xf5\x0c\x58\x9c\x5b\xc1\xfa\x5a\xc0\xdb\xa2\x93\x73\x5b\x8e\x81\x08\xd0\x88\x59\xae\xd7\xab\xc5\xf6\xcb\x72\xb1\xfa\xed\xcb\xd3\xf0\x2a\x00\x2a\xb3\x7c\x7d\x62\x08\x7e\xb0\x98\x2a\xa2\x69\x34\x8b\x6c\x4f\x70\x61\x13\x3a\x56\x79\x86\x19\x24\x0e\x55\x20\xe1\x74\xc6\x30\x57\x57\xaa\xa2\x2c\x07\x97\xb6\x9f\x2e\x69\xee\x02\xc6\x8b\xb2\x5c\x41\x59\x1a\x75\xd8\x90\xde\x7e\xf7\xae\x86\x42\x7f\x8d\xc0\x14\x8a\xf5\x7d\x51\x79\x1d\x94\x07\x59\x8c\x61\xc2\xcf\xbf\xaf\xbe\xf8\xdf\x48\x4a\xa5\x4b\x9b\xed\xdf\x7c\x53\xeb\xb3\x6e\x06\x70\xe4\x94\x59\x73\x1a\xa6\x91\xa1\x9c\x6f\x50\x37\x5d\xb3\xa8\xa1\x62\x63\xce\xc8\x69\x4c\x10\xde\xf8\x0a\xad\x7e\xd0\xef\x9d\x3e\x3c\x8c\xd2\xc8\x5a\xec\x56\xe3\xb2\x89\xdd\xa8\x28\xf8\x7b\x84\x69\x10\x45\x7d\x9e\xb9\x73\x5e\xfa\x31\x91\x60\xbc\xce\xe8\x0d\xdb\xd7\x73\x10\x90\x9f\x3b\xe7\x78\x14\xa5\x98\xc5\xc8\x84\x80\x73\xfb\x00\x46\xd5\x18\x23\x22\x7f\x9d\xb8\x15\xae\x1f\x5d\x1e\x93\x18\x55\xb5\x6f\x05\x87\xdf\x57\xf3\x34\x76\x1e\xd3\x04\x05\x20\x6a\xbd\x76\x25\x1f\x58\xd5\xb1\xb2\xbc\xfc\xc9\xdb\xc5\x34\x4d\x59\x0f\x2b\x87\x72\xa6\x76\xf1\x38\x8e\xd1\x1e\xec\x05\xcd\x4d\xad\xcf\xeb\x3e\x59\x8a\xc7\x09\x63\xa9\xe3\xa0\xdb\x4b\xd5\x1e\x3d\x0b\xb5\x90\x99\xd9\xe6\xc5\x79\x86\x7a\xa3\x45\xe5\x77\xb5\x39\xbc\x23\x89\x30\x9c\x7e\x1e\x73\x8a\xa7\xdf\x05\x95\x9f\xa1\x39\xeb\x6a\xe6\xd5\xf2\xa1\x74\x9e\x64\x11\xfa\x80\x58\x51\xdf\x8c\x72\x75\xbd\x2a\xc2\x13\x9e\xa2\xb6\x6f\xb7\xe0\xe7\x00\x2d\x9e\x26\x21\x4e\x76\x69\x15\x75\xf1\x5a\x94\x70\x80\x49\x42\xd4\xf8\x4d\xd3\xc4\xe2\x23\xd7\xaf\xd6\x87\x88\xb8\x9f\xeb\x4e\x14\x9e\xe6\x12\x01\x58\x2d\xfb\x51\xbe\x96\x6b\xa1\x2b\x7d\xba\x7c\xba\x0a\x9d\xba\xe2\x08\xe0\xa9\xa2\x81\x85\x62\xde\x00\x1f\x52\xa3\x78\xc6\x52\x34\xde\xee\xaa\x16\x8c\xdd\x51\xbc\x82\x05\x7f\x4c\x88\x24\x27\x59\x2e\x07\x7f\x9d\xd0\x73\x9b\xc3\xcf\xcb\x22\x7c\xca\xcd\xf2\xe6\xcb\xf4\x06\xb9\x42\x87\x82\x61\x6a\x34\xeb\x7f\x05\x8e\xf2\xc2\x68\x14\xd6\xd5\xf2\xce\x85\x34\x5b\x61\x16\xe4\xd4\x02\xe0\xf7\xce\xcc\xf6\xf7\x62\x21\xc4\x41\xef\x13\x90\x9d\x68\x17\xad\x83\xd5\x35\x1f\xa4\xff\x4e\x57\x88\x49\xe1\x53\xcc\xc4\xab\x6e\xa1\x29\xe4\xa7\xe9\x04\x60\xa8\x03\x9d\x59\xd3\x3e\x55\x70\xd3\x67\x0e\x72\x0e\x02\xc1\x6d\x67\x76\xd9\x42\xfd\x5a\x08\xf0\x6e\x09\x3f\x43\x64\x21\x33\xbb\xf7\xe3\xcf\x60\xbf\x33\x27\x21\x17\x2c\xc5\xb7\x42\x5d\x60\xaf\x67\x76\x30\x17\xdc\x66\x6f\x79\xce\x67\x03\x4f\x73\x2a\xbd\x16\x71\xe7\x32\x8c\xb1\xc2\x84\x27\xbe\x9d\xb6\xe1\xf4\xc9\xa9\xf7\xf9\x17\x5c\x26\x2a\x12\x93\xac\xa0\xb9\x56\xde\x8d\x43\xb9\x63\x2a\x97\x10\x84\x2e\x70\x7f\xd3\xd9\xfa\x21\x5e\x14\x73\xa9\x38\x66\xb8\x16\x55\xd3\x32\x14\x21\x76\x40\x04\x34\xc4\x02\x32\x35\xbc\xea\x17\xe8\xb7\xf2\x9d\xba\x36\x72\xc0\x08\x92\x5a\x5d\xbe\x81\x76\x8a\x3c\xfd\xf5\xaa\x96\x74\x9d\xad\x09\x02\x36\xdf\xdb\x3d\xc9\x98\x4e\x2e\xb3\xdd\x4d\xa0\x79\x84\x47\x46\x82\x28\x59\x0d\xdf\x8b\xaa\x9a\x5b\x80\x82\x72\x0b\x1d\x31\x84\x74\xab\x3f\x40\x51\x8b\x30\xb4\x01\xb4\x73\x0d\x67\x56\xcc\xa2\x29\x22\xa2\x24\xb5\x05\x17\xcc\x03\x6e\xa0\x85\xfa\x54\x54\x30\x8e\x3f\x8b\x28\x8c\x9d\x4f\xbe\x65\xa5\xc5\xf9\x35\xfd\x98\x00\x65\x6b\x1d\xfc\x06\x17\x6b\x50\x5c\xa1\x7b\x11\x27\x49\xea\x9c\x69\x8f\x70\x40\x0e\xf0\xb9\xd6\x6f\xed\xf1\xd3\xe4\x5d\x63\x65\x03\x5e\x67\xf4\xd7\x4f\x74\x7f\x91\x52\xc2\x9c\x5f\xe7\x0b\xab\x66\x96\xb5\xc8\x28\xc5\xd8\xd7\x4c\x73\x9d\x38\x11\xe9\x4c\x61\x15\x19\xe7\x91\xf3\x78\x3e\x40\x09\xb0\xc1\x8a\x1a\x9d\x05\x5a\xba\x39\x79\xc0\x44\x86\xe5\x44\x5a\x6d\x58\x88\x51\xd3\xfe\x24\xe6\xe3\xaf\xcc\x32\xc8\x9c\x8f\x09\x93\x85\x57\x2e\x59\xae\xa7\xbf\x3c\xa7\x81\xb3\x40\x06\xa0\xd6\x54\xbf\x11\xb9\xc8\x30\xe2\xb4\x37\x12\xec\x16\x60\x0b\xef\x04\x84\x9b\xc9\x78\x86\xb8\x5a\x23\xbc\xdc\xb9\xb1\x1b\x72\x95\xcb\x09\x06\x31\x42\x2a\x1b\x3d\x2e\xf8\x34\x7d\x38\x27\x0c\x89\xfd\x04\xed\x51\xcb\xdd\x91\xb5\xbb\x63\xad\xdf\x9a\x91\x1e\x2c\x78\x44\xc0\x2b\xdc\x3e\x73\x84\x97\x70\xc3\x06\x88\xb2\x30\x62\x5c\xb9\xd4\xae\xea\x70\x5b\xf4\x79\xcf\x42\x90\x18\x83\xac\x25\xa6\x38\xaf\x2b\xf1\x2e\x82\x25\x44\x94\xa1\xcb\xcc\x06\xe7\x10\x56\xbf\xb9\x16\x29\x10\x82\x0b\x44\x3b\x63\x5e\xf8\xa0\x39\x3a\x20\x72\xff\x44\x25\x19\xef\x01\x3b\xb7\xba\x3e\x14\xaf\x20\x57\x47\x56\x7f\xba\xc6\xb2\x85\xe4\xb6\xa8\x8f\x95\x1d\xa8\x4d\x4f\x17\x49\x82\x85\xcb\x38\xbd\x7c\x61\x0b\xa5\x5d\x97\xb0\x02\x68\x10\xdb\xc4\xc7\xe2\x70\x80\xda\xe1\x0a\xfd\xbb\x41\x14\x25\x74\x84\xe2\xd9\xbf\x15\xed\x71\x8f\x51\x3d\x3f\x23\x03\xef\xe3\xff\xda\x0c\xa8\x3e\x01\xb9\xf2\xf9\xe3\x1b\x38\x1c\x1c\x56\x6f\xba\xff\x57\xdf\x48\x12\x42\xf1\x10\x3c\xb0\xb2\xd4\xf5\x0c\xea\x20\x49\x9a\xba\x28\xa3\x32\x96\xdc\x95\x22\x07\x92\x8a\x10\x91\x1f\x07\x73\x30\x9b\xe3\xb6\x38\x54\xac\xed\xea\x39\xe2\x47\x86\x01\xf0\xdc\x6f\xcf\x77\x80\x17\x1b\x95\x43\x87\xda\xf3\xc0\x6e\x64\x48\x59\x1a\x7b\x8c\x9b\x82\xfa\xe6\xf6\xf1\xe7\x02\x5b\x86\x71\x8a\x90\x9d\x55\xd7\xb4\xfa\x24\x74\x31\x24\xe8\xcf\x3e\x27\x54\x31\x61\xa8\xa7\xd6\x6d\x67\x98\x19\x2b\x8b\xf6\x82\x0a\xab\x7f\x7c\xc4\x53\xa4\x22\x27\xfa\x1f\x0a\x69\xe3\x82\x23\x5f\xb7\x8c\x78\x1e\xe7\xd6\x11\x4e\x90\x2b\xfa\x81\x98\x86\x08\xf0\x2e\x75\x63\xb3\xee\xfd\xef\x89\x44\xd8\xd0\xb6\x65\x07\xd8\xbd\xe9\x75\x35\x0a\x80\xcb\x58\xb2\xc0\x79\xe2\xf0\x51\x37\xd0\x88\xba\x40\xe2\x9d\x68\x07\x32\xe5\x56\xc2\xaf\x7f\xe8\xc6\xbb\xfc\x65\x0a\x39\x16\xcf\x28\x59\x25\xd1\x8b\xb7\x71\x85\x01\xfa\x09\x2a\x96\x58\x65\xab\x3b\xb1\x8a\x6c\x5b\x56\x49\x56\x5b\x02\x99\x9b\xf6\xdd\xbb\x34\x6f\x99\x05\xe0\xd3\x2d\x3e\x77\xac\x96\x05\xab\xde\x97\x89\x92\x59\xa4\xe4\x00\x8f\x9c\xe0\x5c\x65\x9e\xe4\x91\x43\x92\xda\xcd\xb6\x95\x9f\xa6\x37\xc8\x15\x8d\xa0\xaf\xf7\xf2\xd8\x9d\x2c\x80\x68\x4e\x44\x3c\x0f\xa4\xc7\x85\xb2\xca\x33\x9c\x25\x28\x5d\xc3\xba\x92\x23\xc6\x24\x39\xcb\xd0\x02\x37\xf2\xac\x2f\x2e\xb1\x6d\x75\xcd\x0e\x30\x2b\x10\x62\xe6\x22\x16\x12\x41\x10\x4f\x9b\x6d\x8f\x80\xf8\xfb\xd3\xdd\xe3\xce\x42\x23\xfa\xb9\xc0\x43\x97\x10\xb4\xa9\xf5\x49\xaf\xb4\x84\xde\xa2\x75\xa0\x46\x37\x15\x08\xf0\x08\xad\x04\x65\xbe\x19\xea\xc6\xca\x34\xeb\xc8\x2c\x2a\x1f\xd6\x96\x90\x85\x58\x5d\x63\x0b\xad\x0d\xe9\x5d\x95\xe5\x12\x20\xc2\xf4\xb3\xa2\x2a\x5a\x57\x80\xc9\xdf\x41\x45\x24\x1e\xa5\x06\xfd\xeb\x87\x58\xb1\x73\x3f\xc8\x14\xe6\xaa\x1a\x41\xc7\xea\x17\xf8\x53\xfc\xee\xec\xb9\x4a\x52\xc2\x06\xae\x73\xa3\xc5\x9d\xbc\x9a\xa0\x2a\x95\x0a\x91\x5f\xdc\x16\x5c\x57\x7f\x14\xfd\x0b\xa8\x04\x75\xf6\x33\xab\xdb\x0a\xea\xd1\xc9\x9f\x1e\x50\x08\x92\x10\xd1\x70\x4e\x80\xfd\x03\xa5\xf8\x6c\x8a\x88\x71\x11\x8e\x43\xe6\x08\x10\x92\x13\x97\x39\xb2\x2a\xd9\x69\xc7\x7e\x8c\x83\x5e\x40\xf2\x0c\x8d\xee\x43\xcd\xaa\xf6\x1b\x34\x43\x6a\xf7\x07\x21\xb7\xee\x7d\x7d\x47\xa0\x79\xe4\x12\xfc\x4a\xe5\x81\xe5\x37\x77\x8f\x86\x06\x9f\x01\xa5\xe8\x4c\xb9\x82\x90\x24\x08\xf0\x3e\x69\x59\xa8\xcb\xe7\xce\x68\xb2\xdd\x50\x78\x63\xfe\x80\x30\x4d\x30\xf3\x0f\xfd\xe1\xcf\x18\xf4\xf8\xe3\xb6\xf8\x31\xf8\xfb\xe6\x79\x2a\x10\x66\x11\x09\xfa\x38\x41\x51\x1d\x1e\xa0\x65\x92\xb5\x6c\x7a\x6a\x20\x0a\x01\xdc\xf2\x3c\x60\xe4\xc7\xa8\xc7\x58\x08\xe7\xba\x2e\x01\x51\x62\x71\xb0\x78\x01\xa6\x63\x6f\x58\xd3\x5c\xcf\x67\x84\x28\x4d\x32\x1f\x71\xc3\x28\xc2\x55\x2e\x0d\x51\x9a\xa2\x88\x62\x52\x5a\xbc\xa1\xae\x2f\x77\xf2\x81\x9d\xcf\x23\x38\xc4\x74\x45\x22\x25\x70\x01\x3d\x04\xeb\x11\x5a\xf5\x0c\xaf\x50\x75\x33\xfe\x03\x31\xb5\x7e\x6b\x54\x93\xb6\x2f\x45\x59\xae\x5f\x59\xd9\x8d\x61\x5d\xbf\x5e\x77\x68\x5c\xa5\x78\x88\x95\x40\x20\x72\xcd\xde\x6c\xb2\xd5\x74\x7d\x12\x12\x28\x6b\x8c\x35\xcd\x9b\xae\xa5\x39\x8c\xd7\x8d\x14\x7f\x32\x20\xa1\x09\x46\x13\xff\xd0\x37\xac\x28\x2f\xe3\xc8\x3d\x24\x91\x4a\x6c\x96\xcc\xa1\x2b\x59\x8d\x2e\x9d\x62\x28\x1e\x08\x09\xe3\x98\x86\xb7\x3e\x1c\x6e\x99\x68\xdf\x89\x69\x48\x78\x8e\x10\x69\xb3\xff\xe5\xd8\x28\x86\x34\x4e\x10\x82\x5f\xeb\x12\xdc\xa1\x5a\x94\x05\x6b\x7a\xb3\x11\x52\x49\xb3\x7c\xa4\x74\xdc\x9b\xff\x56\xef\x20\x2a\x90\xc5\x24\x61\xd6\x19\xb6\x75\x45\x5f\xae\x13\x4f\x16\x53\xac\x23\x83\xce\xd3\xfb\xa1\x1a\x1b\x64\x79\x68\xa3\x84\x5e\x3a\xe3\x9b\x22\xcd\xdc\x40\xa5\x4f\x45\x35\x2a\xa8\x02\x79\x9a\x21\x9a\xde\x55\xb5\x78\x66\x2f\xd0\x0f\x89\x00\x15\x67\x1b\xcb\x18\xa7\x39\x4e\x77\x91\x11\x82\x39\x0c\x82\x95\x62\xc5\x5e\x1c\x9c\x72\x36\x27\xb4\x21\x8c\xb3\x6e\xda\xcf\x5a\xcb\x39\xb4\xd0\x4f\xcb\x08\xd6\xa3\x39\x5d\xdb\xe9\x8f\xb2\xca\xfa\x7f\xf5\x37\xb1\xb5\x28\x4f\x0e\x82\xd0\x6f\x30\x93\x29\xa2\xf1\x66\xc8\x84\xa9\x21\xea\xe7\x82\x14\x56\xd4\xb6\x75\x01\xaf\xf0\x8d\x55\x45\x7b\xb9\xd5\xf5\xb5\x1c\x47\xe0\x31\x55\x4e\xb7\xb8\x6b\x30\x91\x04\xcf\xc4\x20\x27\x81\x8b\x3c\x71\xc1\xd2\x5e\x6d\x5a\x57\xf2\x7d\xed\x3f\x90\x01\x89\xdd\x41\x5f\xef\xbe\x7c\x70\xcc\x25\x8d\x73\xea\x2a\x49\xa0\xd9\x7f\x9d\xc9\xf6\x17\xa8\x20\xa6\x3e\xa8\xb3\x2c\xe4\xf2\xe2\xca\x28\x7c\x00\x8c\x77\x17\x11\x4a\x50\x03\xdb\x9e\x41\xb4\x75\x77\x7a\x84\xf6\x4d\xd7\x2f\xee\xcf\x27\x3f\x2b\x4d\xd1\x3b\xe8\x8a\x17\x2f\xda\x89\xb9\xa9\x88\x48\x7d\x8a\xcb\xe0\x46\xbf\x05\xb8\x4e\x02\x8a\xe6\x12\x71\x8a\x45\x83\x59\x49\xf3\xd4\x6c\x7f\xd2\x15\x15\x11\xe1\x8e\xea\xba\x92\xb5\xb0\x73\x29\x44\xba\x6b\x2d\x09\x2e\x2a\xb9\xd2\xa7\x53\xd1\x34\x83\xdf\x5e\x85\x04\x52\x8b\x95\xd9\xd4\xd0\x18\xab\x60\x7a\xdb\x30\x0b\x94\x55\x26\x4e\xa7\x0e\xb7\x7c\x48\x7a\x52\x21\xa4\x16\x4a\x5b\x0f\x9a\xb4\x8a\x82\x2c\x74\xe5\x11\x76\xfa\xad\x12\x75\x01\xf5\x8a\x95\x25\x67\x2e\x31\x72\x90\x74\xd3\x47\x45\xa1\xe5\x47\xdb\xc2\x9c\xf3\x3d\xc2\xb9\xb0\x66\xee\x0e\x4e\x67\x5d\x63\x91\x65\x5b\x1b\xc3\x5f\x10\x47\x61\xd6\xa3\x74\xad\xbe\xac\xad\xaa\x41\x03\x92\xf7\xd3\x72\x8a\x9e\x84\x2f\xac\x96\xfb\x41\x3f\x51\x71\x14\x8b\x91\x3b\x64\x09\xa5\xae\x0e\xcd\x4e\xff\xd4\x96\x52\x71\xa4\x50\xa9\xb0\x74\x4f\xfb\x9b\xc5\x11\xd6\x02\xd2\x67\xa8\x3e\xbf\x8b\xbe\xa8\x38\x96\xe8\x66\x94\xd0\xb4\xb5\x9e\x31\x52\x95\x50\xbb\x8e\x46\xf0\x21\x08\x0f\xc3\xac\xfd\x59\xe8\x57\x28\x89\x00\x6b\x57\xe0\x2a\x6c\xb4\x2e\x87\xf0\x8d\x4a\x92\x04\xb3\xdd\xfe\xd1\x41\x07\x16\x69\x5a\xf7\x63\x82\x21\xdd\xd6\x5d\xb5\xaa\x41\x0e\x75\x9d\x54\x4a\x22\x64\x8e\x5e\xd6\x5d\x67\xae\x2a\x0d\x43\x14\xe5\xe7\x02\x84\x51\x3b\x47\x85\x10\x54\x9a\x45\xa8\xe6\x21\x79\x4e\xe0\xe1\x7f\x2d\xec\xa5\x52\x11\x73\x5b\x6e\xc8\x0b\x83\xab\x31\x38\x95\x51\xc2\x1c\x26\xcf\x48\xbe\xeb\x8e\x5a\x95\x33\x91\xba\x1c\x42\x23\x43\xaf\x4a\x2e\xc5\x82\x8c\xd8\x22\xce\x88\x20\x2f\xc4\x48\x04\x28\x96\x72\x04\xaf\xae\xab\xd6\xc5\xc9\xfa\x11\x91\x62\xe9\x0d\xc3\xac\x1a\x09\x4c\x96\x43\x71\x25\xc5\x54\x24\xe5\x28\xe0\x74\x53\xbc\x16\xcd\x70\x57\xc1\xa2\xc4\x6b\xd1\x05\x2b\x5d\xd9\x22\xcf\xf2\xdc\x24\x29\x52\xd4\x32\x7b\x33\xb0\x9a\x15\x41\x51\x52\xda\x02\xa4\x7c\x0e\x1f\x9a\x2d\x2a\x04\x21\x3a\x48\x0a\xa1\xb7\x5a\xb5\x2b\x76\xbe\xab\xbe\x83\x57\x8d\x15\x44\x29\x8a\x5f\xd4\xfa\x6c\x49\x84\xdf\x7c\x61\x84\x31\x94\xde\xfa\xb0\xfe\xcf\x5f\x95\xc7\xb9\xd3\xfc\x1e\xd8\x8f\x3b\x73\x86\xfb\x1b\x8a\x08\x2b\x67\x32\xd5\x42\x7d\xab\xeb\x17\x24\x61\x87\x21\xe9\xe7\xb8\xc2\x9b\xc5\x2b\xdc\xe8\xb7\x0f\xe2\x01\x4a\x51\xe5\x5c\x4a\x87\x3d\x9d\x9d\x23\x95\x58\xf8\xc8\x0d\x28\xa8\x9a\x5e\xfa\x7c\xec\x05\xb5\xea\x22\x09\x82\x24\xc1\xba\x45\xff\xd1\x45\x85\xa0\x9e\xfb\x39\x7c\x9e\x04\x41\x46\x53\xe7\x99\xdb\x40\xdd\xe8\x8a\x95\x86\x5d\x5c\x5b\x60\x12\xd0\x30\x40\xb1\x54\xea\x83\x39\xef\x37\x46\xff\xbd\x96\x25\xdd\x2f\x65\x77\xad\xa6\x97\xbf\x59\x64\x35\xdf\xa7\x0a\x36\x66\xb7\x27\x45\xad\x48\x40\x95\x40\xc5\x4f\xfa\x92\x64\x30\x94\x10\x71\x53\xc2\x88\x22\x9f\x66\xaf\x60\x4c\xcd\x59\x62\x29\x09\x42\x91\x63\xac\xac\x6b\xa0\xf6\x91\xfa\xe9\xd7\x47\x51\x12\x3a\x99\x7d\x03\xaf\x50\xea\x33\xd4\x8d\x33\x58\xa6\x9f\x1e\x65\x31\xaa\xa9\x27\x61\x8b\xca\x8c\x5d\xa6\x24\x88\x93\x30\x71\xc6\x72\x77\x36\xd2\xe2\x5a\x65\xf5\xe9\xa3\x13\x92\x22\x32\xa3\xa8\x10\x7a\x86\x90\x58\x4f\xf8\x08\x36\xf1\x4e\x3d\x33\x95\xc1\x50\xea\x6f\x51\xa3\xe4\x6d\x96\x97\x2d\x6e\xf9\x38\x1c\xd2\x2f\x6e\x12\x65\x08\x18\x32\x1f\xa6\x45\x77\x1a\x09\xb9\x99\xf2\xe4\x2f\x48\xe3\xc8\x39\x17\x37\x08\x82\x5f\x8d\xe5\x81\x9f\x94\xa5\x88\x71\x5e\x2c\xef\xaf\xd2\x31\x09\x12\x2e\x10\x69\xb4\xf9\xb6\xf6\x6f\x9f\x86\xc4\xd5\x17\xac\x24\xa6\x4c\x83\x44\xb7\xf2\xf4\xf9\x29\x8b\xb0\x1c\xd0\xef\xcf\xcf\x58\x80\xad\xa7\x83\x94\x65\x93\xfa\xce\x7b\x84\xf2\xfb\xd1\x2c\x10\xc8\x61\x98\xd3\xb7\xfa\xe0\xf1\xa2\xe6\x45\x5b\xbf\xc7\xfa\x93\x20\x0f\x62\xac\x62\xf6\xfd\xee\x5f\x77\xdb\x2f\x4f\x9b\xcd\xdd\xe3\xe7\xd5\xd3\xdd\xe3\xa7\x7e\x5c\x44\x0e\x70\x88\x95\x15\x6b\xfd\xe3\xe2\x65\xcb\xf4\x63\xf3\x40\x20\x98\x12\x6b\x25\x3d\xa9\x4d\xd7\x16\xfd\x6b\xe7\xb1\xad\x0a\xdf\xbb\xc9\x8d\xd2\x87\x5e\xb3\xab\x69\x22\x24\xc8\x15\xc5\xd4\x7a\xd4\x0c\x07\x59\x43\x02\x16\x66\x6a\x9c\xa8\x7d\x27\xfb\x91\xd4\xd6\x8c\x6d\xeb\x8b\x77\xe1\x7d\x70\x70\x19\xe7\xd2\x31\xb1\x15\xab\x6d\x31\x9e\xd9\xf3\x19\xc4\xe8\x9d\x14\x28\x2c\xc7\xe5\x92\x48\xc0\x94\xb0\xb8\x63\xa3\x9e\x7c\xaf\xd9\xf9\x0c\x72\x28\x89\x7b\x1a\xbe\x9a\x27\x09\x96\xf1\x3f\xb9\x3c\xef\x41\xf5\x20\x01\xcf\x6c\x21\xcb\x23\x6b\xb6\x1d\x6f\x26\xb4\x3b\xf2\x83\x91\x80\xb3\x08\xab\x1f\x59\x76\xdf\x5f\x2e\x29\xea\x84\x37\x9b\xc7\x8f\x8b\x97\x92\x40\x88\x3c\x1d\x47\xb6\xac\x6a\x74\x57\x19\xc3\xa6\x78\x05\x0c\x00\x7d\xb0\x48\x92\x12\xdc\x78\xef\xeb\xda\xd4\x5a\x15\xd7\x71\x98\x66\x72\x14\x25\xbd\x6f\x8a\x97\x70\x9a\xad\xa7\x0c\x6d\x85\x52\xde\x5d\xbe\x36\x45\x75\x78\x06\x35\x71\xc3\xcc\xde\x5b\x72\xe5\x34\xe4\x21\xf2\x3e\x84\xdd\x48\x00\x61\x8e\x7e\x33\x9b\xc1\xf5\x02\x15\x02\x24\xe0\x9d\xfb\x75\xf6\x9a\x10\xda\x58\xa6\x31\x4a\x2a\x65\x73\x5f\x6c\x3c\x7b\xf6\xba\x90\x51\x0c\x08\xb1\x49\xd0\x7a\x2c\x4d\x54\x9a\x86\xb1\xc3\x07\x5e\x73\x69\xda\x69\x24\x00\x86\xca\xf5\x8e\x19\x55\xe2\xf7\x3f\xf5\x7b\x12\x42\x22\xe9\x51\x2b\x7d\x06\x7a\xe8\xea\xd5\x13\x42\x98\xad\xd7\x7a\x62\x3f\x8a\x53\x77\x42\x47\x3b\xe6\x6b\x7c\xee\x58\x6d\x9e\x01\x72\x5c\xf1\x90\x10\x4a\x25\x36\x9f\xc0\xd5\x5e\x57\xb5\xc6\x40\xe4\xcf\x2c\x23\x42\x68\x16\xcb\x99\x6e\x34\x88\x22\x42\x81\x62\x92\xf5\x4a\xb7\xed\x38\x85\x95\x90\x90\xf2\xd4\x79\x6f\x7e\xdf\x7d\x73\x36\xd1\xba\x92\xba\x6e\xae\x15\xf7\x25\x24\xe4\x34\x71\x2e\x4d\xab\x27\x3c\x29\xcc\x58\xb8\x56\x94\x92\x90\x28\xc9\x10\x7e\x52\x6a\x26\x07\x1b\x84\x90\x88\x29\x62\xd3\x22\x7d\x89\xc6\xbd\x7b\x96\x9f\x91\xe4\xd6\x3b\x68\xcd\x84\x75\x7b\xdc\xbd\x54\x37\x36\x73\xf5\x5a\x8d\xa2\x09\x2d\x92\x84\x8b\xd8\xb6\x4a\x68\xda\x95\x91\xb7\x63\xd1\x42\x12\xae\x90\x9f\x2f\xbb\xcb\xd7\xf3\x01\x01\xbd\xd3\xb7\x4e\x69\x10\xa0\x4a\xa1\x54\x51\x16\xe3\x5c\xc2\x7e\x02\x61\x4e\x6b\xfc\x66\xab\x7b\x5c\xa9\x6e\xec\xe7\x86\x2c\x9d\xd0\xfd\x94\x07\x93\x94\x87\xd4\x39\x5c\x77\xd0\xb4\xc5\x49\x57\x85\x8f\x12\x10\x92\x51\x5b\xaf\xd0\x95\x0e\xfc\x5e\x54\x33\xec\xa1\x9f\x17\xa5\x08\xd9\x2c\x10\x8a\xe9\xf2\x69\xfc\x58\x9c\x22\xef\xe4\xb6\xa8\x3d\xd4\xad\xd7\xee\x08\xc9\xd2\x5c\xf2\x7e\x99\xbd\x06\x33\x81\xa6\x7c\x90\x71\x4b\x48\x96\xe5\x98\xa5\x5a\x63\xcd\x07\xe7\x86\xba\xbe\x08\x19\x24\x28\x4c\xb6\x05\xbc\x80\x38\x76\x43\xb9\x04\x1c\xcb\xac\x31\xdb\xf3\x02\x5b\xc5\xa2\x9f\xa0\x58\x34\x90\xc2\xf5\x43\x9b\x33\x69\xc1\x3b\x65\x81\xbe\xa1\x99\x9e\x44\x58\x64\xd3\xbd\x31\x31\xfa\x76\x2c\x9f\x09\xcb\x00\x1b\x67\xdc\x20\xc7\x84\x33\xab\x01\x9d\x11\xb3\x15\x66\x8c\x63\xe4\xe5\x49\x74\xe5\xe0\x35\xbd\x02\x6e\x21\x84\x29\x89\x58\xb0\x23\x94\xa5\xa6\xfe\x39\x9c\xb0\x94\xcf\x9c\x27\xd3\xec\xe4\xc9\x4d\x38\xcd\x47\xb9\xd4\x2b\xdd\xd5\xcd\x9c\x4e\xb9\xa0\x40\xc6\xde\x03\x1b\xfb\xef\xcf\x90\x08\xa5\xaf\x76\xe7\x4a\x6e\x6d\x5b\xd6\xce\xcf\xa8\x80\x10\x0f\x0b\xca\xd4\x67\x10\xac\x2c\x3f\xd8\x45\x19\xa4\xc2\x5b\x12\x97\x3b\x09\xac\x7f\x92\x0c\x38\xd6\x80\xe1\xdd\xc5\xa8\xe8\x46\x30\xa2\x76\x14\xfb\xf1\x34\x47\x6d\x6e\xe4\x35\x62\xbc\x87\x57\x10\x22\x79\x8c\x6c\xa8\xff\x92\x27\xde\xb2\xa2\x9a\x15\xaa\x20\x44\x42\xca\xac\xce\xd9\x1a\x92\x2b\x17\xef\xfb\x4e\x10\x02\x01\x41\x62\xbb\x2d\xa1\x16\x23\x42\x83\x24\x42\x77\x93\x05\x88\xd9\x7a\x14\xfd\x18\x27\x99\x18\x34\x54\x87\xb5\xa8\xf5\xc9\x97\x2f\x9c\xda\xb5\x84\x06\x44\x04\x3e\x83\xe8\x08\x13\x6d\x83\x06\xb9\x44\x51\x64\xc3\xd0\x88\x6b\xfd\x40\x6a\x52\x92\x64\xd6\x76\xfc\xf0\xfc\xf5\xdf\x45\x49\xa2\x90\x2d\x99\x45\x5a\xb7\xc7\xbe\xea\xdf\x6c\x16\xcf\xf1\x8e\xaf\x7a\x96\xbf\x68\x86\x00\x7d\xe4\x7b\x97\x21\x3d\xcf\xb9\x23\x7e\x62\x18\x46\xc8\xb3\xcc\x4e\xdd\x55\x9b\x5a\x1f\xd0\xd7\xe2\xbf\x2f\xcc\x53\xa5\x7c\x78\x16\x9b\xb3\x9c\x47\x56\x0b\x0d\x73\x86\x0a\xef\x89\xfd\xd8\xe8\x7e\x51\x42\xa6\xd0\xd6\x59\x76\x35\x56\xe2\x1a\x8b\x21\x1a\x91\x0c\x6b\x25\xad\x16\x77\xcf\x93\x81\x38\xb0\x69\x8c\xab\x9a\x15\x87\xcf\x46\x5c\xae\x59\x7b\x53\x78\x47\x31\xa1\x71\xa8\xf0\x60\xb7\xc7\x1a\x9a\xa3\x2e\x25\xe9\x47\x18\xf8\xa4\x85\x07\x68\xa1\xc6\xc2\x6c\x9f\x66\xee\xd2\xc9\xfa\xc4\x32\x45\x77\xe9\xdd\x66\xf1\x4f\x0c\xe4\xf9\x5b\x25\x3c\xc3\xcc\x24\x34\xbc\x7d\x65\x05\xbb\xe7\x36\x9e\x88\xe5\xdc\x46\x7e\xf0\x77\x49\x04\x84\xa6\x54\x50\xeb\x60\xae\xc6\x09\x0c\x5e\x2a\xd1\x14\x78\x80\xfd\xa0\xaa\x03\x94\x93\x8a\x5b\x6e\x42\x46\x12\xac\xdb\x61\x4b\xc7\x61\xb1\xb0\x11\xb6\x6a\x52\xcf\xbf\xbf\x22\x43\x6b\xe7\x05\x84\x60\x2f\x34\x4e\x0c\xe5\xcc\xe8\x38\x8b\x98\xab\xb7\x34\x23\xfc\x8d\x2d\x32\xf1\x81\xd9\x4d\xb3\x34\xc2\x8a\x5e\xeb\xf6\xd8\x3c\xc0\xa6\x9e\x16\xb7\x9a\xcd\xcd\x01\xbb\x9c\x2c\x5e\xa1\x12\x13\xfd\x83\xe6\x21\x8f\xc5\x00\x1a\xf8\xfa\x7c\xb7\xee\xb5\x04\xca\x82\x0c\x43\x15\xfb\x31\x2d\xbf\xcf\xdf\x25\x94\x31\x1a\xc3\x80\xab\xd8\x8d\x5b\xd6\x5c\x05\x02\x98\x4b\x32\x3c\xa3\x77\xd6\x7a\x35\x14\xf9\xb5\x99\x25\x71\x13\xca\x89\x42\xcc\x13\xab\x6c\x25\xd0\x75\x25\x31\xcd\xa7\xa7\x75\xce\x6c\x5a\x28\x93\x78\x0b\x2c\x83\x3b\x36\xd3\x3f\x78\x3a\x07\x9b\xf3\xff\x0a\x46\xd5\x72\xe5\x79\xbd\x31\x4e\x85\x24\x01\x96\xdb\xd1\xaf\x23\xfd\xd8\x0d\xca\x84\x80\xcd\x72\xb9\x3c\x83\x2c\x6a\xe8\xd5\x12\x2a\xc1\xaa\xe0\x47\x56\x1b\xb5\x6a\x9a\xc5\x40\x28\xb0\x30\xb5\xe9\xcb\x35\x26\x69\xd7\x00\x78\x26\xde\x15\x6d\xbb\xae\x63\x52\x15\x53\x2c\x29\x09\x8d\x40\x64\xcf\x6c\x54\x06\xe8\x9c\x5a\xe3\xa8\x73\xc7\xbe\x7b\x7b\x05\x02\x17\xf4\x37\xf6\xd2\x35\xc7\x29\x17\x08\x83\x30\x45\x07\xdf\xc3\xe2\x77\xd7\xec\x67\xff\xb8\x1c\x1f\x44\x33\xc3\x95\x56\x52\xe6\xb8\x3f\xe8\x8a\xd5\xe2\x78\x31\x3b\xd2\x4c\x94\x9e\x30\x88\x23\x97\x53\x29\x01\x4e\x13\x75\xdf\xcf\x48\x43\x74\x44\xcb\xa2\x39\xdb\x30\xea\x5b\x8f\x75\x70\x53\x48\x18\xd8\x48\x8e\x51\xdd\x59\x39\x14\x14\x37\x52\x67\xe7\x18\x8e\x9f\x4c\x13\x81\x31\x59\x51\x02\xab\x67\x45\x70\x48\x48\x85\xc8\xfa\x26\x6b\xb7\x36\xc4\x3f\x6d\xd0\x45\xc2\x30\x24\x18\x0d\xb0\xb1\xaa\x7e\x74\x42\xeb\x61\x98\x0b\x8a\x8e\x36\xd6\x55\xe2\xd8\x5f\x2a\x39\x1e\xb1\x8a\x9d\xe0\x49\x5d\x75\x08\x93\x30\x04\x82\x08\xbc\x67\x73\x65\xf7\xd7\x50\x1d\x24\x8c\x02\x1b\xa5\x31\xbb\xb2\x7a\x7a\xdc\x3d\xdf\x2d\xbf\x62\x01\xb3\xaf\xdb\x1b\xff\xf8\x28\x8e\x6d\x7d\xb2\xbf\xdf\x4f\x16\x30\x8a\xad\xdc\x1f\xe3\xf9\x3f\xd7\xec\x7c\x84\x0a\xd0\xe9\xe0\x27\xc6\x84\xa2\xb6\xb3\x5a\x2c\xdb\xf1\x0d\x92\x30\xc6\xf0\xc2\x3b\x37\xf3\x10\x67\xf5\x1c\x36\x4c\xe2\xc8\x85\xfa\x58\x7b\xbc\x61\x2d\xdb\x2b\x1f\x4f\x20\x61\x92\xa6\x58\x54\x60\x53\x5f\xfe\x40\x47\xdb\x6c\x59\x53\x9a\x63\x2e\x41\x8b\xa8\xb5\xef\x47\xa8\x5c\x04\x0c\x3b\x2e\x19\x1e\x7f\x83\x95\x41\x8a\xea\xb0\x78\xdc\xf9\xbb\x66\x8c\x09\x32\xa0\x1d\xfa\xec\xce\x9f\x18\xf8\x61\x06\x21\xee\xf2\xfe\x3f\x0b\xf9\x71\x51\x88\x29\xad\xe6\x71\x88\xc0\x36\x86\x31\xa1\x5b\xc3\x32\x54\x57\xc9\x3b\xe5\xdc\xc4\x8f\xba\x7d\xc6\x8a\xe1\x3d\x35\xe6\xb1\x0c\xfb\xea\x08\xa8\x66\xa2\x2b\xf9\x56\xf7\xf9\xff\xa3\xbb\x0b\x5b\x1e\xfe\x8c\x71\xa7\x0f\x01\x1f\xc8\x78\xa7\x57\xb2\x00\x30\x3d\xe4\xcc\x8a\xfa\xad\x68\xe0\xa9\xfe\x34\x8a\xca\x93\x90\x65\x21\x16\xf6\xe7\xc0\xa6\xd8\xf8\xb1\x61\x1e\xb2\x5c\x20\x56\xda\xea\x4b\x33\xef\xf0\xf4\x81\x3c\xca\x11\xa9\x63\xa7\xde\xb0\x39\xec\xd7\x4d\x13\x2a\x40\x9c\xc1\xd9\xe1\x90\x67\xcc\x2a\x94\x51\xc6\xa5\x47\x2a\x41\xd3\x4c\x11\x0e\x7e\x52\x12\x71\xd9\x03\x88\x56\x63\xbd\x78\x86\x64\x1e\xec\xe3\x50\x72\x6b\xd9\x8a\x41\xc5\xb7\xda\x93\xdf\x18\x88\x23\x5f\xc3\xf2\xb3\x2e\xa5\xa1\xd3\x77\x79\x1b\x24\x84\x54\x84\x6e\xd6\xd7\xba\x44\x57\xe6\x28\x6a\x30\xfd\x58\x90\x11\xe6\xea\x33\x4c\xee\x25\xfd\x2d\x80\x4b\x87\xc6\x3a\xb1\x1f\x82\xd5\x72\x94\x30\x46\x42\x50\xb6\xbb\x52\x6b\x23\x70\xeb\xf6\xb8\x7d\x63\xe7\xa7\xae\x3d\x77\x3f\xcf\xd2\x21\xa1\xca\x42\x31\x18\x64\x98\x40\x3f\x45\xf8\xf4\x47\x52\x65\x91\x62\x7d\xca\x8d\x77\x18\x0c\xe5\x09\x49\xa8\x04\x45\x3d\x62\x7b\x2a\xca\x12\x9a\x91\x61\x18\x05\x10\x62\x00\xac\x69\x47\x20\x5e\x4b\x38\x83\xb3\x7e\x04\xd1\xf8\xc0\x4f\x1f\x05\xc0\x32\xa7\x08\x3e\xea\xfa\xc4\xca\x67\xad\x4f\x0f\xc5\x4c\x1e\x44\x04\x6c\xfb\xaf\xbb\xd5\x13\xbb\x46\x54\x11\xcd\x69\xe4\xdc\x3c\xdf\x50\x6e\x2f\xce\xbd\xa7\xa5\xb1\xde\xe6\x31\xe3\x8c\x28\xcf\x10\x80\x76\x62\x2f\xf0\x00\xf5\x4b\xe9\xa2\xc5\xd7\x57\x35\xa2\x22\x93\x30\x84\x91\xac\x4f\x68\x40\x3b\x9a\x09\x39\xb3\x15\x96\xb7\xba\xc4\xce\x15\x7e\x40\x46\x88\xf4\xac\x74\xfb\xa5\xab\x0e\xf5\xec\x7c\x47\x54\xa6\x88\x2d\xb3\x04\x62\xc8\x6c\xe9\x5d\x60\x1f\x18\xec\x11\x55\x39\xaa\x20\xbe\xe2\x8c\xb5\x54\xb5\x7a\x2e\x0e\x1f\xaa\x0b\xee\xd2\x90\xa6\xb6\x84\xa9\xaf\x77\xe4\x90\x0a\xd3\xc5\x0c\xa3\x18\x75\xed\xed\xfa\xf1\x66\xfd\xbc\x5f\x2e\xee\x17\x8f\x2b\xef\x72\x8f\xa2\x14\x30\x30\xe5\x6a\x49\xcd\xd5\x88\x28\x86\x10\xb9\x5b\x51\x15\x7f\xb9\x74\xb4\xbb\x34\x89\x52\x1b\x73\x99\x75\xe6\x18\x90\xfb\x24\x4a\x52\x1b\x26\x72\x73\xcc\x2e\x14\x7a\xba\xb9\x89\x0c\x5c\x7c\xa2\x92\xdf\x86\xa4\x41\x37\x9a\x13\x15\xd8\x48\x5d\x03\x66\x0b\xef\xaa\xd5\x50\x13\x94\x44\x39\x65\x01\xf7\xed\x71\x8b\xea\x30\xb5\x86\xa3\x1c\x00\x53\x0a\x5f\x0b\x78\xdb\x1f\xa0\xdd\xef\x6a\x60\x4d\xdf\x3c\x8a\x44\x2c\x8d\xe2\x70\xda\x88\x8d\xd2\x7e\x30\xb3\xe5\x9e\x70\x7f\xf7\xfd\xcf\x3c\x48\x31\x52\xe4\xcb\xd1\xda\x4c\xf6\x9f\xfa\xd1\x22\x0e\x32\xf3\x95\x03\x50\xf2\xec\xf4\x6f\xba\x78\x81\x2b\xea\x54\x24\x42\x89\x70\x3c\x47\xbe\x7b\xf8\x61\x0b\x9a\xef\xf9\xd0\x65\x91\x44\x22\x63\xa8\x51\xad\x96\x63\x3d\x21\x92\x81\x42\x24\xed\x91\xd5\x72\xc5\xce\x5f\x8a\xc3\xf1\x6b\xd3\xaf\x87\x0c\x13\xdc\xb2\x85\xaa\x47\xec\x01\x62\x85\xe7\x65\xf1\xfc\x1b\xfa\xe7\x74\x59\x42\xbd\x27\xfb\x20\xe8\x67\x24\x79\x6e\xa4\xe6\xbf\x76\xb7\xfd\x4f\x79\x8c\x84\x85\x0d\x6c\xfb\x08\x2d\x89\x54\xaa\x28\x75\x91\xc6\x11\x64\x99\x44\x4a\x90\x24\xf7\xb5\xfa\xc5\xcb\xcf\x81\x06\x24\x0e\x02\x8b\xac\xaf\xe1\x5e\x33\x89\x25\x11\xae\x9f\xb0\x38\x08\x58\x9e\x8e\x54\x23\xac\x9c\xe0\xe0\x1a\x1f\x5d\x42\xc2\x68\xd4\x48\xd5\xea\x00\x9f\xfc\x20\x8d\xb0\x80\x99\xc2\x32\x5b\x3e\x9c\xd2\xf4\xc3\x3c\x0e\x83\x01\x37\x01\xcd\xb8\x53\x18\x89\x09\xcd\x19\x71\xde\x7b\x3c\xea\xeb\xf1\x98\xe4\x43\xf4\xee\xce\xb9\x5e\x56\x1a\x94\x2a\x44\xd1\x07\xe6\xe8\xec\x6d\x49\x6c\xfd\x5d\x6f\x50\xec\xb4\x73\x56\xf4\xb7\xcc\x64\xea\x7b\xc8\xfc\x63\x9c\x38\xec\xc7\x85\x22\xb2\xc7\x03\x14\xd5\xc1\x65\xb5\x4c\x17\x3b\xcc\x32\xa4\x9a\xbd\x47\x43\x7f\x7d\xbe\xbb\xea\x4c\x8b\xa3\x3c\xe4\x2e\x15\x07\x75\x6f\xe4\xd9\x57\x40\x50\x24\x8e\x64\x88\x6d\x6b\x2a\xdd\xc2\x8f\xa2\x69\x25\x9c\xa7\x6c\x3d\x4e\xd2\x14\xa1\x32\x1c\x2a\x30\x0b\xc0\xea\x62\x06\xfa\x23\x71\x92\xe5\x88\x52\x69\xa1\x69\x1d\x71\x5a\x3c\xfc\xf7\xa2\x3d\xda\xf0\x64\x63\xff\x6c\xd9\x09\x4b\xe1\xf5\x41\xb1\x38\xe1\x21\x9a\x94\x0e\x75\xe2\xf4\xe6\x5a\x9f\xae\x6b\xf5\x71\x9a\x86\xae\x6c\x4a\xbb\x77\x95\x21\xf7\xd8\xfc\xcc\xc2\xcd\xa7\x0b\x9b\xc5\x11\x9a\xd4\xff\xed\x74\x8b\xc5\x08\xdd\xef\x39\xcb\x89\xef\xd2\xc4\x5a\x40\x0f\xea\x9f\x65\xf1\x91\x98\x91\xcc\xb6\xa7\x68\x59\x3d\xc5\x20\x91\x98\x45\xc0\xac\xe6\xae\x34\xb6\x37\x9f\xbe\x35\x03\xeb\xb0\x35\xac\xe5\xc3\x6c\xaa\x6b\xf0\x48\x12\x33\xc5\x30\x90\x66\x13\x91\xee\x7a\xbf\x54\xcc\x15\xc5\x10\x93\xcb\x35\x9e\x86\xc1\xaf\x5b\xe2\xb1\x20\x22\xb5\x59\x49\xb6\xab\xf4\xb4\x1b\xc1\x6c\x2e\x0f\xd1\xef\x75\x66\x5d\x33\xaa\x6f\x68\x06\x32\x61\xcb\x53\xfc\x28\x58\x25\x86\x1c\x01\x12\x0b\x21\x11\x13\x7f\x83\xcc\xe3\x9d\xfb\x3f\x96\x34\x08\x94\x4b\xc5\x71\xe6\xc3\x62\x50\x34\xfd\x24\x50\x71\x5f\x51\xc0\x82\x63\x56\xfe\x01\x10\xd9\x16\xb2\x07\x9f\x65\xf6\x75\xe4\xe6\x1a\x09\xb5\x18\x62\x2a\x7c\xc0\xcf\x17\x25\x09\xe9\xc4\x03\x16\xab\x90\x62\x21\x04\x81\x11\x52\x63\x26\x0d\xcd\x7d\xfd\x14\x96\x08\x27\x13\xbe\x43\xb1\x62\xe7\x19\x85\x29\x15\x62\x06\xeb\xe7\xc7\xa7\xed\x9d\x43\xc2\x93\x24\x48\x63\x1f\xc6\x73\x45\x29\x58\x7d\xd9\xab\xae\x7a\x8f\xc5\x24\x49\x90\x29\x84\x2a\x58\x6b\x67\x56\x6c\x87\x24\x01\x58\x14\xa0\x6b\xd4\x86\xc9\x0f\x93\xe2\xdf\xff\x0e\xc7\xa5\xf1\x47\xda\x79\x82\x3e\x12\xcb\x05\x0b\x73\x99\xb1\xe9\xad\x98\x9a\x03\xf9\xbc\x0a\x9b\x10\x19\x63\xf3\x49\xef\x33\x3d\x9d\x59\x71\x78\xdf\x40\xe8\x83\xb6\x6f\x53\xd2\x4d\x28\x21\x58\x97\x13\x21\x00\xf3\x7c\x7c\x33\x1c\x23\x8e\xd5\x1c\xfd\x75\x7b\xbc\x81\xd7\xa6\x1f\x0a\x6d\x32\x21\x67\x4d\x21\x46\x5a\x61\x42\x33\x9a\x0a\x7f\xcb\x80\x0e\xee\xb3\x84\xaa\xd4\xb7\xd6\x75\xce\x3c\xe7\xa6\xbb\xb5\x09\x06\x63\x39\x97\x84\xa9\x75\xcf\x1a\x4d\xdd\x43\xae\x67\xdb\x12\xca\x0c\xc9\xff\x41\x37\xed\x37\x56\x76\xa8\x99\x0d\x02\x39\x89\x22\x60\xa9\x2f\x17\x7e\x3a\xf7\xda\x5a\x12\xa5\x53\xbc\x9a\xd1\xc0\x3f\x8c\x62\x27\x71\x0c\x98\x34\xe1\x0b\x08\xf2\xd2\x30\x2a\xc4\x75\xbd\xaf\xff\x73\x1d\x9b\x92\xc4\x79\x86\xa5\x1d\xf6\xc1\x8f\x65\xd1\x0a\x5d\x54\x82\x35\xc7\xb1\xca\x91\x24\xb1\xcd\xa3\x58\xde\x3f\xad\x7e\x7b\x5e\xdc\xdc\x3d\xf9\x91\x34\x8d\x10\x37\x67\x6b\x7d\xb6\x57\xc0\x34\x49\x0a\xdc\xa5\xc1\xea\xaa\xff\xcc\x8c\x30\xeb\x70\x7e\x03\x38\xcf\x68\x36\xcb\x73\x54\x56\x0c\x6b\xea\xd7\x3c\x03\xeb\xf4\xf8\x3b\xda\x0f\xc3\x42\x66\x2a\x48\x7a\xdb\x7d\xe1\x0f\x81\x1b\x64\x99\x50\xb6\x27\xdf\xf9\xeb\x79\x66\x77\x59\x2f\x7e\xee\xa9\x8d\x71\x9b\x21\x6c\x0e\x9d\xab\x2e\x37\x02\x40\x5f\x29\x15\x44\x12\x1e\x64\x68\x2b\xad\x9a\xfe\x2d\x45\x92\x20\xec\x61\xef\x2a\xc8\x4f\x0a\xf7\x90\x44\x26\x01\x16\x34\xe1\xdd\x65\xdb\xea\x1a\x56\xba\xfe\x79\x29\x18\x92\xc8\x54\x64\xa1\xe7\xa3\xf7\xba\x6d\xbd\x02\x90\xf9\x09\x20\x46\xc5\xe0\x7d\xf4\x75\x7b\x06\x51\xb0\x49\xfd\x70\x92\x40\x10\x72\xe7\x81\xb1\x62\x74\xa7\x3d\xc8\x64\xfa\x50\x20\xd4\x76\x13\x46\x50\x84\x87\x48\x7c\x10\xb5\x4d\x80\xa5\xa9\x2d\x5e\xfa\xa8\x5b\x04\xe0\xb6\x2d\xcc\x7c\x46\x09\xf0\xcc\xb6\xdd\x9e\x26\x3b\xbc\xff\x60\x15\x46\x28\x0b\x05\x2b\xcb\x83\x73\xd9\xf8\xf5\x53\x2c\x20\x59\x8f\x5b\x6a\xab\x0f\x90\x5e\x29\x8d\xad\xcd\x20\xe1\xe4\xf2\xb9\x48\x1a\x66\xe0\x1b\xf2\xba\x00\xdf\xf4\xa3\xd3\x10\x42\x15\x0d\xee\xe9\x19\x19\xa7\x11\x10\xc4\x97\x9d\x2e\x3f\xfc\x2d\xe3\x80\xc4\xd4\x7d\xb8\x9c\xbf\x43\x92\xf3\x30\x75\x6a\x9b\xaf\xd2\xb4\x85\xd7\xbf\x5e\xa6\xe8\xa7\x65\x5d\x48\x9a\xf0\x18\x15\xf6\x9b\x1a\xd8\x69\xd9\xd3\x58\x9a\x06\x80\x5e\x9f\xc7\xdf\x76\xe3\x33\x9c\xa6\xb1\x42\x55\x69\x2f\x4a\xdd\xc0\x52\x6b\x5f\x98\x8c\xa4\x69\xc6\xd1\x71\xf8\xcf\x4a\x21\x78\xd3\xff\x9e\x05\xd6\x81\xd4\xea\xed\x97\x05\x8d\x93\x09\x35\xa5\x59\x26\x51\x0d\xba\x01\xc1\x78\xef\xbc\x35\x3f\xc7\xc9\x18\xbf\x69\x8e\x91\x38\xc2\xd5\x9a\xd9\x24\xcd\x78\xc6\x6d\xb3\x20\x97\xeb\x33\x11\x02\x69\xa6\xc0\x77\x06\xbb\x99\x27\xe0\x90\x34\x8f\xac\x85\x62\xe3\xbe\x37\xba\x2c\x59\x7d\x05\x6e\x95\xe6\x29\xf5\xc5\xc7\xec\x49\x46\x1d\xf1\x5d\xd2\x29\x49\x79\x20\x11\xa6\x78\xec\x5b\x0f\xde\xea\x7a\x6d\xe5\xdf\xec\x9e\x3c\xcc\x3d\x07\x7f\x28\xaa\xc2\xa8\x09\x66\xa2\x6f\x45\x4f\x52\x0e\x2a\x71\x68\xde\xf5\x8f\x73\xa9\x2d\x3e\x6d\x79\xd9\x7a\x90\xc5\x87\x87\x3e\x85\xd0\x36\x8f\x1b\x82\xd1\x9f\xd9\x09\xb6\x2d\x9c\xfb\x65\x86\xc4\xca\xfd\x1a\xb0\xc1\x51\xf1\x07\xb8\xa6\x42\x6d\x31\xec\x85\xa2\x29\xc2\x2a\x31\x36\xd9\xac\xcc\xc6\xcb\x7e\x8c\x91\x80\xf7\x5d\x9a\xbe\x5a\xb4\xc2\xa7\x09\x6a\x21\x55\x2c\xb6\xa6\x05\x36\x29\x7f\x86\x57\xa8\xdb\x8d\xb1\xad\x07\x35\x21\x55\x90\x05\x5e\x72\xa2\x97\x7a\xf2\x29\x19\xcd\x00\x31\x30\xff\xe8\x60\x14\x5f\xce\xc2\x24\xc0\xd3\xa1\x7a\x0b\x03\x0b\x77\xf7\xc3\x99\x42\x3e\xca\xa4\x1c\xb5\xf8\xc8\xa6\xb4\x93\x85\x2a\xc4\x3c\xad\xb3\xf6\x05\x56\x66\x0f\x37\x26\x2c\xd6\xec\x79\x1b\xf5\xb2\xf0\x63\xca\x7a\x0d\x85\x87\xe0\x4d\x43\x88\x59\xac\x22\xff\x5d\xbe\xf5\x8d\x9f\x31\xbd\x51\x12\x2a\xcc\xcb\x69\x8f\x45\x63\xd8\x2f\x13\x6d\x33\x89\x71\x67\x09\xb3\x95\xfa\x9e\x7e\x2c\x0b\x3d\x3e\x94\x59\x22\xc2\x04\x26\x1b\xbd\xfe\x21\x8e\xec\x00\xeb\xdd\x17\x3f\x27\x4d\x72\xf4\x11\x7d\x83\xba\xf8\x31\xca\xa9\x25\x59\xca\x12\x2c\xb6\xcd\xb9\x96\xae\x78\xc5\x2c\x3c\x96\xa5\x90\xa7\xb6\xc8\x44\x21\x8a\xea\xb0\xc5\xb6\x33\x87\xeb\x75\x36\xdf\xd1\x61\x96\x89\xc0\x56\x58\x29\x5b\x0c\x6b\xce\x46\x95\x55\x10\xb1\x1c\x20\xe2\xb5\x7c\xf9\xe0\x61\x4e\x1e\x64\x58\xb7\xa7\xef\x73\xe1\x5e\xe4\xd3\x4c\x75\xcc\x72\x2e\xa3\x21\xfd\x53\xab\x27\xb5\x81\x5a\x21\xc6\x1a\xdb\x9e\xe2\x7f\xa6\xa7\x35\x63\xd4\xd6\xea\x3b\x40\xbb\xec\x2e\x63\x34\x70\xc6\x38\x1b\x61\x05\x36\x25\xc8\xc3\xcf\xcb\x69\x93\x8c\x07\x89\x52\xae\x18\x6c\x75\xb5\x5d\x3b\xc9\x78\x12\xa1\xfd\xe8\xc0\x07\x36\xb2\x7c\x05\x71\xe6\xa6\xcb\x30\x42\x38\x39\x6b\x9a\xe2\x50\x61\xe9\xf0\xf7\xe9\x5d\xfd\x12\xc8\x44\xa1\x79\xd5\x1c\xf5\x1b\xb4\x47\xa1\xab\x99\x36\x9f\x49\x88\xb1\x4f\xe9\x00\x93\x5e\x2d\x57\xef\xe3\xe8\xf3\xb7\x50\x8c\x79\xc0\xc8\xea\x5d\xaa\x16\xc9\x80\x84\x88\x79\xaa\xba\xd3\x93\xf2\x64\x78\xd6\x7d\xc0\x2c\x53\x71\x94\x5a\x39\xf7\xbe\x72\x38\xc9\x14\xb3\xd5\xe0\x87\xc6\xdb\x1f\x00\x38\x32\xc5\x15\x92\xd3\x91\x35\xc7\x85\x6b\x22\xeb\x5e\x22\x0f\x72\x5b\xb4\x7e\x8f\xad\x8c\xb6\xd0\xb6\x45\x75\x30\x2c\xdf\x6e\xfc\x35\xc3\x34\x9b\x17\xe5\x9c\x46\x1a\xfc\x8d\x79\x86\x48\x10\x90\x45\x6b\x71\xd7\xac\x76\xdd\x14\xbf\xcf\xab\xcc\x8f\xb6\x3a\x0f\x20\xc3\x7c\x97\x65\xd1\x36\x42\xd7\x83\xee\x9a\x93\xdc\xb6\xe2\x68\xa0\x5d\x96\xfa\x50\xfb\x23\x37\xf9\xd8\x9c\xc8\x10\xa3\xf5\x4d\x77\x3a\xb9\x18\x66\x43\xfb\x5b\x48\x81\x71\x42\x5c\x72\x04\x30\x78\x66\x91\x87\x81\x2d\x16\x27\x59\xfd\x52\x69\x09\x37\xe0\xa3\x79\xd8\x4d\x76\xfa\x90\x30\x14\x08\xe4\xde\x3d\x7d\x7f\xb4\x65\x87\xf7\x9b\xe7\xbb\xde\x37\x9c\x47\x8c\xa3\xe0\x3b\xd7\xba\xd4\x3e\xab\xd9\xfc\x2c\x90\x21\xe1\xf1\x42\x13\xfc\xf6\xeb\xe3\xcf\x60\x5a\x79\x24\xb9\x2d\xfd\xd9\x9d\xe6\x47\x37\x4f\x32\x86\x12\xff\x54\x54\xa3\x84\xaf\xeb\x47\x22\x4f\x03\x8b\xa0\x6a\xa0\x35\xf2\xec\xa9\x82\x31\x2a\xe9\xdd\x64\x81\xf5\x64\x5b\x60\x27\x63\x00\xcb\x7e\x95\x52\x99\x23\x49\x7e\x5b\x6f\x77\x77\x8f\x9f\x5d\x99\x38\x3f\x9a\x45\x99\x5d\x5e\x36\x0f\x09\x1b\x5b\x87\xfa\x8a\x0e\xbe\x15\x89\x2b\x3a\xd4\xdf\x3c\x63\x16\x86\x88\x98\x1d\x23\x3b\x9f\xce\x3d\xcb\xce\x73\x12\xda\x5e\x10\xe2\x08\xb2\x2b\x61\x12\xeb\x72\xe5\xaf\xa6\x5f\x91\x27\x39\x86\x53\xa1\x3d\x6e\xa0\x1e\x59\x15\xa3\x64\x55\x92\xe7\x99\x05\x97\x7c\x2e\x35\x67\x16\xd4\xe2\x1b\x10\x4d\xbf\x20\x17\x29\x77\xb4\x83\x11\x22\x8f\x26\x75\xc3\x9c\xc4\xa9\xd5\xbf\xc4\x4b\x77\x9e\x0a\xb5\x9c\x87\x14\x95\xeb\xa1\x14\x90\x91\x7c\x8d\x53\xa6\x67\x0f\x12\xa1\x42\xe9\x59\xc1\xdb\xc8\xbe\xbc\x16\x05\xbf\x26\x49\xae\xcf\x9a\x10\x95\x88\x6d\xf9\x1a\xac\x2e\xba\xd2\xc6\x0c\x9e\xe3\xb0\x72\x49\x53\x6c\xe3\xec\x43\x10\x23\x2f\x4d\x0e\x71\x82\xbd\xa0\x55\x51\x49\xc7\xb7\xe6\xbd\x79\x48\xae\x62\x81\xf1\x89\x8a\xd5\x42\xa3\xc1\xe5\x07\x92\x48\xb8\xca\x4f\x4b\xd6\x7b\xdd\x73\x95\x05\xdc\xda\x8c\x5b\xac\xad\xfc\x01\x69\xaa\x0c\xb0\xae\x1d\xe6\x83\x5d\xcd\x18\xc8\x15\x28\xdb\x31\x10\x1a\x68\x6f\x8b\x0a\x26\x1c\x8f\x05\x01\x25\x2e\x3b\xef\x41\xcf\x36\x99\x05\x24\xf6\xed\x51\x17\xf6\xcb\xeb\xe6\x1a\x7e\x9e\x05\x51\x86\x2d\x46\xcd\xe1\x43\xa7\x3b\xb0\xd3\x34\x5a\xe5\x27\x66\x2c\x73\x20\xbc\xef\xba\x7e\x81\x1a\x1d\x5b\x57\x0f\x29\x0b\x24\x20\x6e\xa6\x70\x8a\x4f\x33\x49\x80\x61\x84\x2a\x19\x0e\x38\xa8\xd2\xa2\x64\xa7\x8f\x23\xb1\xcd\x8d\xef\xa1\xbc\xcd\xbd\x2d\xff\x3f\xa3\x8f\x9f\xca\x64\x46\xb8\xc5\xb0\x70\x2c\x6f\xd5\xfb\x7d\x19\x4d\x33\x5b\xd9\xda\xd1\xf1\xa6\x06\xdb\x14\x6b\xd9\x95\x2f\x23\x81\x78\x05\x62\xf6\xe1\xbf\x3e\xe8\x02\xe9\x9f\xa8\xa2\x6c\x30\x35\xb0\x1f\xd0\x86\xcd\xba\x8f\xcc\x5e\x9e\xaa\x34\x7e\x6f\x99\xff\x59\x8d\x08\x77\x71\x18\x05\xd8\x0e\x14\x1d\xd3\x4b\xdd\x1d\x8e\xed\x4a\x97\x3e\xdb\x8e\xb0\x88\x84\x3c\x77\x95\xbb\x6b\x5d\x96\xb3\xf6\x1f\x84\xc5\x41\x10\xd8\x48\x84\x51\x7e\xd7\xaf\x50\x5f\x48\x60\xfe\x77\x53\xb3\xb7\x74\x7a\xca\x58\x4c\x89\x74\xfe\xce\xad\x51\x68\xbc\x5d\xdd\xf4\x0a\x81\xd3\x78\x9a\xab\x8b\x3b\xdd\xfa\x38\x94\x21\x1f\x40\xfc\xcb\x0e\xcf\x97\xc3\x55\x8c\x63\x7b\x2c\x86\x50\xd9\x28\x6d\x2f\x8a\x67\x95\x28\x09\x4b\x32\x2a\xc8\x34\x80\x7e\xed\x1c\x24\x19\xc3\x0a\xed\x52\x57\x2f\x70\x19\x79\x88\x58\xc2\x38\x3a\xaf\x36\xac\x69\x40\x7e\x66\x2d\xbc\xb1\x0f\xa2\x46\x2c\x4d\x13\x1a\xa3\x16\xd2\xf1\xf5\xa8\xc7\xd5\xf4\x03\x53\x96\x61\x60\x8e\xb3\xf6\x5d\x75\x66\xc2\xb2\x20\x49\x86\x88\xbf\xb7\x1d\x66\x48\x8d\xeb\x8f\xcf\x32\x85\xe1\x48\xde\x5d\xb6\x00\xbd\xb4\x63\x99\x0c\x52\xe7\x8a\x75\x69\xdc\x1f\xdc\x67\x76\xbf\x3c\x54\x16\x11\x5f\xbc\xc2\xe2\x8d\x5d\xae\xf7\xe5\x26\x2c\x4f\x78\xee\x42\x3e\x7b\x2c\x71\xbf\xbf\x29\x1a\xf1\x5e\x55\x64\x9c\xb2\xc4\xfb\xc5\xb1\x90\x8c\xb7\x76\x19\xa7\x0a\x51\x4d\x0f\x6c\x48\xd8\x62\x3c\xcf\x10\x65\xb4\xfc\xfa\xcf\xe1\x27\x85\x25\x45\xf6\x0d\x53\x57\x64\xa7\x9b\x25\xc3\x18\xc2\x09\xf7\x70\x21\x3f\xf6\x91\x2b\x94\xc9\x30\xc7\xde\xc4\x56\xd7\x06\xe9\x83\xb0\x2e\xd5\x0f\x91\x68\x86\x78\xfc\xf4\xc4\x62\x29\x8c\xed\xc0\xc4\x0b\x54\xbe\x71\xa6\x1b\x07\x92\xe3\x89\xb8\xd7\x87\xfb\xa7\xdd\x47\x19\x57\x7f\x72\x88\x41\xa5\xb1\x73\x2a\x2e\xa1\xc1\xdc\x21\xc6\x8b\xb2\x68\x27\x2e\x3c\xa6\x64\x8c\xed\x9e\x59\xe9\x6b\xde\x9b\xcf\x7d\x60\xd5\xc5\x05\x50\xaf\x9e\x3a\x7f\x31\x70\x26\x2c\x14\x43\x0f\x6a\x0a\x0f\xe2\x94\x5b\xa7\x1c\xaa\x12\xdb\xfe\xcb\x78\x90\x2a\x97\x04\xfa\x9f\xce\x3a\xa7\xa1\x1f\x12\x89\xcd\x1e\xb0\xe2\xfe\xcf\xd2\x9c\xdd\x55\x84\xa4\xb9\x85\xeb\x1d\x0e\x25\xdc\x8f\xba\xbc\x10\x4e\x68\x8c\xc5\x8b\x51\x06\xee\xb0\xe5\xef\xf8\xd8\x72\x12\x91\xc8\x59\xd9\xb7\xbe\x34\xeb\x4c\x72\x71\x1a\xd2\xc0\xb7\xd6\x6c\x59\xdd\x0e\x5d\xe8\x87\x77\xa0\x86\x21\x3a\x10\x81\x31\x94\x55\x81\xad\xe2\xfd\x6b\x44\x79\x00\x0e\x33\x7d\x33\x36\xc0\x79\x1c\xa5\x91\xa3\xfc\xfb\xfb\x6f\x0e\x1e\x10\x4d\xdf\x31\xce\xad\x1b\xcc\x77\xd2\x05\xf9\xf4\x81\x76\xcb\x63\xa5\x84\x3b\xa8\xae\x90\xf0\x5f\x4d\x15\x9f\x20\xc7\xdc\xdd\x12\x1e\xa3\xcb\xee\xb5\x80\xb7\x87\xcb\xb8\xc2\xff\xc8\x01\xc3\xd3\x48\xa2\x89\xbf\x5b\x2f\x1e\xf6\xdb\x2f\x8b\x67\x2c\x9a\xbc\x5a\x3f\xee\x16\x9f\xbd\x21\xc0\xd3\x8c\x13\x6a\xad\x19\xa1\x8b\xea\x41\xf7\x81\x14\x9e\xc5\x14\x11\x4a\x58\xe4\x06\x5d\x68\xab\xfa\xad\x1f\x4c\x72\x45\x06\xb4\xf0\xb8\xce\xce\xf0\x67\x74\x72\x79\xc6\x02\x3e\xc6\x3b\xe1\x22\xac\xab\xd7\xa2\xd6\xd5\x50\x93\x8d\xf0\x3c\x61\x68\x99\xbc\xb1\x57\x58\xb1\x33\xed\x7f\xcf\x32\xb4\x0f\x0c\xb3\x6e\x5d\x1b\x2c\x3f\xc4\xc2\x3c\xf5\x71\x31\x5b\xca\x6b\xae\xed\xf1\x5c\x01\xe2\xa0\x5a\x68\xb0\x94\xd3\xa7\xc9\xf6\x30\xca\xb1\x3b\xa1\x6f\xa2\xbd\x28\x6a\x59\x6b\xef\x5e\xe6\x2c\xb1\xa6\x62\xa9\x9b\x71\xdb\xa6\xd9\x1e\x33\x46\x61\xdc\x91\x7e\xf0\x4f\x73\x1e\x01\xa2\xf9\x9f\x17\x77\x4f\xa3\x82\x86\x57\xe4\x15\xe7\x49\x8a\xfe\x70\x2b\x1f\xac\x23\xc1\xa6\xd2\x5c\x7f\x2a\x4f\x21\x66\xbe\x3d\xbb\x78\xc1\xa2\x92\xac\x28\x3f\xc0\x24\x71\x9e\xc5\x58\xb3\x60\xbf\x6f\x86\x23\x33\x7d\x01\x6e\x9b\x26\xbc\x9a\xd3\x72\x31\x47\x13\xe7\xcc\xc3\xc9\x7f\x46\xbe\x93\xd8\xdd\x84\x12\xb8\xb1\x1f\x6c\xdc\xe7\xdc\x8b\x77\xd7\xf3\x76\x14\xc8\xe3\x82\x86\xa9\x74\x2c\x82\xd5\xe2\x08\xf3\xfc\x11\x2e\xa2\x10\x1d\x18\xcd\x91\x79\x07\xe5\x34\x56\xc8\x45\x14\x23\x0d\xef\xd9\x28\x41\x95\x8b\x34\x4e\xdd\x9a\x35\x6d\x27\xa1\x6a\xb1\xa7\xcb\x74\xa5\x44\x1e\x87\x7d\x19\x4e\x2b\x6b\x3e\x63\x63\xb8\x76\xe0\x62\x32\xb2\xed\xd9\x64\xd1\xe8\xb7\x6a\xba\x8e\x60\x88\x0a\x23\x7d\x5d\xd5\x0e\xce\x39\x0e\x3c\x15\xce\x3b\xb6\x64\xf2\x00\xd8\xa2\xfb\xdd\xf2\x5e\x29\x71\xd3\x5f\xaf\xc2\xa1\x3e\xa3\xa3\x54\x2c\x74\x67\x3d\x22\xef\xe0\x94\x5c\x25\x49\x34\x14\x8b\xbb\xad\xf5\xe9\x83\x84\x04\x61\xcc\x6a\xc3\xd1\xf6\xe7\x5a\x0b\x68\x1a\x87\x8e\x99\xac\xa9\x20\x44\x62\x80\xe1\x61\xf1\xfb\xc4\xa9\x20\x88\xc8\x52\x77\x0e\x57\x47\x76\x3a\xbf\xf3\x8d\x0b\x22\x01\x2f\x55\x20\x8e\xdf\xb4\x51\x82\x94\xbe\xd5\xd8\x5f\xbf\x5e\x5e\xf0\x23\xae\xd3\xad\xa0\x11\xcb\x5d\x3d\x20\xa3\x3b\xee\x5d\x14\xc1\x3f\x9a\x66\x29\xe6\xbf\x99\x25\xd9\x43\x1f\xbe\x15\x94\x27\x48\x6b\x02\xa3\x4f\x37\xbe\x70\xc5\xf4\x83\xc2\xd8\x96\xe6\x64\xe7\xf3\x16\x8c\x7c\xd3\xb5\x83\xfd\x3b\x08\xae\x88\x42\x6a\x83\xaf\xb5\xae\x6c\xb7\x2d\xa8\x9f\xea\xaf\x15\x26\xd4\x4e\x4a\x8e\x10\x11\xb1\x00\x33\xcb\x85\x4d\x13\x74\x4a\x20\x09\x82\x56\xa7\xc1\x6c\xbd\x63\x92\x70\x32\x06\xba\x8e\xdf\x3d\x8e\x42\x44\xdf\x63\xbe\xf5\x53\x0d\x4f\x55\x79\x31\x9b\x87\x36\xc6\x3c\x34\x27\x62\x4e\x6d\x88\x5d\x9f\xce\xe6\x09\xcb\x71\x9b\xe6\x7f\x67\xc4\xa9\x05\x22\x89\x44\xdf\xc7\xe4\xc7\xe7\x3e\xfb\x4c\x24\x79\x84\x46\x3d\xaf\x59\x25\x7b\xf5\x62\xfa\x8c\x84\x49\xb4\x29\xc7\x1d\x07\x3e\xd8\xaf\x44\x11\x1b\xe4\x70\xe6\xc1\x73\x57\x2d\x2f\x63\x27\xe1\x54\x75\x16\xa9\xb0\xc9\x6f\xae\x53\xce\x43\x51\x02\x33\x67\x83\x79\xa5\x36\xbb\xae\x1a\x8b\x2c\x8c\xb1\x66\x89\x0d\x57\xd8\x4a\x7f\xef\xb3\x10\x44\x26\x72\x19\x4d\x1c\xea\x36\x0f\x7b\x38\x26\x22\x4f\x24\x06\x85\xff\x05\x5d\xb3\x3d\x16\x50\xca\x91\xb5\x20\x18\x91\xa9\xef\x17\x8f\x9f\xaf\xeb\xd3\x08\x42\x20\x78\xd0\xe7\xf4\x7e\x87\xe2\x70\x6c\xc1\x42\x1a\x5d\x47\x94\xd9\x5b\xf3\x90\xdb\x5c\xfa\x23\x88\x97\xcf\x1a\x4b\x63\x8e\x90\xe7\x82\x27\x21\xee\x12\xab\x6b\x76\xc1\x42\x10\x4f\x5d\xfb\xa4\x96\xba\xab\x64\x73\x73\xa9\xd8\xa9\x10\xb3\xcd\x11\xc0\x43\x57\xfe\x65\xfd\xe3\x5c\xcc\x91\x07\x42\x8a\x30\x75\x2f\xb8\x5a\x2e\x46\xde\xa6\x07\x68\x1a\x5c\x6b\xc4\xb2\x4d\xb7\x05\x62\x40\x9d\x10\x7d\x6c\x2b\x7d\xe2\x45\x05\x72\xac\x1a\x0a\x48\x48\x32\x38\xfb\xdf\xa0\xb8\x52\xf5\x8b\x08\xa5\x88\xcf\xee\xf6\x00\xe6\xde\x30\x75\xe8\x98\x51\x81\x2e\x33\x9f\x91\x31\xb0\xef\x7b\xd1\x1e\xed\x86\x4d\xee\x2b\x83\x9c\x85\xc2\xc3\xcb\x6d\xa5\x25\x43\xd3\xb3\x49\x4c\xb8\x88\x16\x4a\xf7\x9f\x74\xdf\x25\x92\x88\x14\x5d\x47\xcb\xdd\x6a\xbb\x5f\xef\xbe\xac\x9f\x87\xb6\xcf\x44\x52\x1a\x7a\xdc\xce\x1e\xab\x0c\x16\x20\xf7\x6f\xd0\x1e\xf7\x57\xd1\xce\x92\x4a\x8e\xf9\x3c\xae\xc3\xc6\x6f\x97\x59\xe6\x98\x8c\x68\x6a\x0b\x15\x1c\x8b\xa6\x68\x58\xd9\x68\x55\xcc\x8a\x2d\x9b\x49\x2c\xb7\x9d\x6c\x75\x83\xcd\xc7\x2b\xf8\xc0\x41\x23\xa3\x3c\x50\x72\x54\x5c\xce\x29\x9b\x5b\xe7\x93\xfc\x5f\x95\x4e\x7f\x57\xc5\xf1\x2d\x91\x0a\x7e\x03\x38\xf7\xdc\x4e\xc6\x84\x38\x3d\xd0\x56\xfd\xbd\xa2\xd2\xc8\x58\xd8\x4a\x8e\x07\x38\xad\xea\xa2\x2d\x04\x2b\x9f\xad\xe3\xe3\x15\xea\xa1\x24\x17\x91\x09\x84\xe8\x92\xeb\x2a\x07\xc0\xfc\xc0\x67\x25\x53\xe7\xb3\x62\x25\x16\x2a\x1a\x2a\xb1\x4c\xdf\x3b\x23\x04\xd3\x7c\x98\xcb\x36\x44\x2d\xbd\xd0\xd5\x90\x83\x84\x8d\xc6\x46\x80\xb2\xf7\x39\x87\x32\x23\xcc\x16\xa1\x2f\x0b\x31\x06\x9f\x8f\xbb\xde\x13\x99\xa5\xc4\x85\x5d\xcf\x25\x13\x30\x73\xfc\xcd\x88\x2c\x13\x80\x86\xd1\x6f\x67\x7d\xc6\x96\x15\x7e\x01\xf2\x80\xf3\x69\x7c\xd7\xb0\xcc\x07\xf6\x63\x5a\x0c\x89\xc8\x9c\xda\xa2\x74\x5d\xd5\xe8\x52\x3a\xe7\xba\xae\xfc\x3e\xcb\x7e\x5e\xaa\x82\xcc\x9f\x4e\x5b\xf9\xf1\x2a\xa8\x4a\xe6\x99\x44\x7b\xc7\xba\xb1\x9a\x1b\xa8\x8a\xe1\x2e\x2c\xb4\xa9\xfa\xfb\x06\xda\x0d\xd4\xbe\x90\xda\x9c\x98\xa6\x3d\x1e\x46\x1a\x88\x64\x69\xe8\x42\x68\x78\x0e\x3c\x0d\x8f\xd4\x1a\xc9\xd2\xbe\xcc\xeb\x92\x55\x2f\x8f\xef\x3c\xf4\x92\x27\x04\xbb\x68\x7f\x59\x3c\xdf\x98\x43\xb9\x5f\x7f\x7d\xf6\x6f\xc8\xa5\xc2\xd7\x47\x70\xdf\xe2\x83\xc4\x17\x29\x73\x5b\x84\x46\xe9\x5a\x80\x87\xe2\xf4\x5f\x29\x19\x0d\x86\xae\xb4\x1e\x61\x32\xbb\x83\xc8\x63\x67\x72\xee\x58\x7d\x00\xab\x40\x4f\x60\xc0\x52\x2a\x96\xdb\x33\xa8\xa0\x66\x25\x16\x9b\x9f\x68\x2b\x12\x52\x46\x86\x04\x1c\x9b\x07\xf1\x38\x2a\x9d\x36\x3d\x3e\x00\x01\xed\x4b\xbf\x9c\xb8\xd5\xef\x67\xef\xa5\x92\x2c\x1b\x97\x87\xf1\x46\x40\x37\x4a\x24\x92\x2a\x55\x08\x5f\xf6\x06\x8a\x6d\x30\x00\x72\x77\xac\x75\x05\x1f\x94\xd7\xbf\xba\x92\x10\x70\x86\x80\x49\x8b\xc1\xb3\xda\x82\x6d\x8e\x35\x9d\x47\x88\x40\x2f\xfd\x16\xca\x71\x9d\x4c\x02\x84\x0b\x95\x3a\x0c\xf9\x9d\xd0\xb6\x42\x6d\x3f\x28\x32\x94\xa5\xa7\xa2\xfa\x0e\xc5\x58\xdc\x00\x91\x84\xf4\xbd\x58\x50\x13\x6a\xfa\x21\x10\x3c\x9a\x27\xb0\x2e\x2a\x89\x95\x82\x6f\x75\xbd\xf6\x3d\x4b\x46\x45\x34\x20\x0c\x18\x7a\xd0\x78\x71\x18\xdb\xd1\x28\x68\xfb\x39\x61\x82\xba\x8c\x87\xde\x5d\x6f\x2a\x36\xfd\xf0\x30\x0a\xa5\x2b\x54\xf0\xa4\x54\x03\x33\x81\x08\xa1\x0c\xa3\x51\x3f\x7e\x5b\xc7\xf8\x6a\xc3\x2a\x33\x37\x25\x99\x57\xbb\x5a\x7d\x9d\xf5\x43\x14\xa8\xd8\xf9\xf1\x6f\x01\xbe\x17\x95\xd4\x6f\x98\xa2\x82\x74\x3a\x59\xc4\x28\x8d\x90\xfe\xd6\x7c\xb4\x7c\x11\xe3\x3d\x26\x75\x6e\x1e\xfc\x3a\x85\xc8\xb9\x2b\xe2\x24\x27\x83\x1f\xfb\x4a\x59\xd0\x0f\xc5\xcc\xe4\x60\x43\x9c\x08\x6b\x37\xb4\xfa\x6c\xcb\x36\xf6\x2f\x15\xa7\x0c\xe1\x20\xb2\x3f\x5e\x10\x33\xe6\x4b\xb2\xdf\x35\x4d\x07\x35\xf6\x07\x9e\xaa\xf4\x90\x64\x02\x8b\xc4\xb7\xc5\x09\x9a\x96\x9d\xce\xfb\x53\xe3\xa3\x9c\x90\xb0\x14\xfd\x46\xeb\xf6\x88\xc7\xf2\xae\x7a\xd5\xc5\x1c\x2b\x06\x69\xc8\x53\x8b\xc9\x2b\x5f\xbe\xe9\x77\xad\xf2\x08\xa4\x0a\xd0\x49\xcd\xa4\xc4\x66\x85\x36\x76\xfc\xc1\xee\x64\x19\x0d\x1c\xcc\xcd\xb1\xcf\x99\x4c\x83\x8c\x27\x38\x03\x73\x75\xf7\xdb\xf5\xea\xe9\xf1\x66\xbf\xfe\x7d\xf5\x65\xf1\xf8\x79\xbd\x7f\x5e\xec\xbc\x9d\x05\x39\xc9\x50\x15\xbd\x59\xaf\xae\xe6\x9f\x8e\xb9\x07\xb0\x84\xa6\xa3\xbe\x7b\x16\xa0\x3d\x55\x56\x66\xdb\xc1\x13\x85\xe5\xfc\x4e\xae\xaa\x73\xef\xcf\xf1\xe3\xc2\x76\xed\x39\x63\x3d\x23\x26\xe7\x4d\xc1\xcc\x0c\x81\xbe\x1e\xac\xc7\x85\x2d\x04\xe6\xf8\x63\xe0\x32\xc4\x08\xae\xed\x08\xb9\x1f\xe5\x25\x81\xb1\x70\xa9\xad\xda\xda\x95\x45\x8f\x6c\x02\x11\xa4\xb9\x05\x70\x6b\x55\xb4\xcd\xbb\x5b\x0a\x92\x20\xec\xe4\xb9\x2b\xa1\x71\x21\xd2\x49\x11\x92\x3f\xe1\x69\xc2\xa5\x76\x9f\x40\xb2\xf2\x86\xb5\x6c\x56\xb1\x06\x04\x13\x18\x7a\xb1\x32\xf2\xe9\xdb\x6a\x03\xd3\xc6\x5a\x6e\x9e\x4c\x15\x6a\x27\x03\x1a\xe3\xe7\x29\x42\x20\x39\xc1\x7c\x09\xc9\x2e\x77\xd2\xa3\x08\x41\x25\x02\xa5\x2e\x93\xf2\xef\x9a\xfb\x97\xb9\x05\x90\x7d\x41\xd1\x79\xd2\xb1\xbf\x32\x8d\x50\x29\xb3\xb0\xdb\xbd\x8d\xf4\x34\x7b\x36\x0b\x05\x81\xe2\x89\x70\x38\x19\xc4\x7e\x0f\x9d\x6d\x89\xa2\x8c\x0a\xd7\xbf\xf7\x56\xd7\xcb\x56\xfc\x6f\x2e\x6e\x15\x05\x2c\x8b\x7d\xe7\xfa\x5e\x7d\xb9\x7a\x38\x54\x9c\x4b\x8c\x78\x9e\xd8\x8f\xc1\x37\xab\x62\xa6\x7c\xb6\xcd\xdf\x35\xdf\x9e\x75\xd5\x68\x1b\xa4\xf8\x09\xbd\xab\x44\x32\x04\xad\xd4\xbe\xe6\xfb\x5e\xe9\x7a\x4c\x5f\x2a\x81\x04\x9d\x7d\xac\x29\x0e\x15\xab\x6f\xaa\x62\xba\x7f\x2a\xcd\x94\xaf\x82\x77\x5b\x03\xac\xbe\xdc\xad\x86\xf4\x79\x95\x42\x94\xb3\x89\x37\xc5\x21\xc2\xdf\xa1\x46\xdc\x05\x19\x71\xce\x73\x63\xc7\x2f\x6b\xfd\x32\xf6\x40\xab\x2c\x89\x85\xc3\x3d\x7c\x54\x98\x48\x65\xb9\x44\xcd\xe7\xec\x96\x11\x8b\x45\x35\x4f\xca\x15\x01\x9c\xcd\xce\x73\x86\x39\xab\x25\xa8\x36\x9f\x8f\xb1\x80\xb9\x8a\x80\x4f\xae\x26\x1d\xa6\x0e\x3d\xb0\x1f\xef\x8b\xc0\x28\x16\x42\xec\x0a\x33\x6c\x35\xc2\x86\x3f\x54\x93\x15\xe3\xd2\x97\x90\xf4\x55\xf7\xe6\x4e\x58\xc5\xa0\xcf\xb2\x71\xdd\x01\xa6\xed\x92\x89\xe2\x4c\x21\xdc\x1e\xc5\xfb\x3d\xab\x61\x3b\x14\x07\x50\x22\xce\xa1\x6f\x55\x77\x37\x73\x4b\x29\x01\x34\x75\x72\x01\x2b\xc1\xfa\xab\x24\xe1\xc4\x81\x01\x58\x59\xfc\x61\x8b\x0e\xb3\xa2\xfc\xa2\xf5\x4b\x3f\x27\xcb\x99\x33\x4f\x6f\x4b\x76\x68\xbc\xd5\xee\x86\x21\x8c\x30\xea\xb4\xfe\xbe\x82\xba\x2d\x94\xcb\x57\x5d\x41\xd5\xc2\xbc\x11\xf0\x84\x18\x01\xc0\x27\x04\xec\x8a\xb6\x84\x1b\x0c\xde\x4d\xdf\x5b\x25\x14\x1b\xa4\x20\x48\x50\x40\x5d\xbd\x6f\xf6\xe4\x67\x66\xb9\x77\x31\x6c\x74\xdd\x2a\x5d\x0e\x3d\xb9\xe7\x53\x85\x05\xa1\x36\xdd\xf9\xac\xeb\xb6\xc1\x0c\x0d\xc5\xbc\x01\x63\x35\x42\x1a\x04\x9c\x04\x72\x88\xeb\x80\xd5\x95\x1c\xc7\xa5\x01\xe1\xb1\x8c\x47\xfe\x9e\xa7\xd7\x3e\x00\x7c\x8b\xa0\x9b\x9f\xe9\x40\x34\x20\x40\x91\x7c\xbe\x1f\xf5\x17\x5d\xca\x66\xc3\x5a\x87\xc4\x18\xaf\x00\x0d\xa8\xb2\xe9\x62\xc6\x4c\x7b\xeb\x93\xee\x76\x7a\x42\x3d\x34\x08\x43\xe2\xcb\xcc\xde\x1a\xae\x3c\xee\xfd\x40\x83\x30\xce\x11\xab\xec\xcf\xc8\x6f\x45\x75\x90\x7a\x16\x13\x1e\x6c\x12\x1a\x44\x82\x60\x82\x80\x61\x3a\x4c\x82\xee\xb0\xbd\x44\x51\x7a\x46\x41\x83\x48\x06\xca\x1a\x59\x46\xc9\xc7\x18\xe9\xd0\xa7\x89\x06\x71\x4c\xd0\xe7\xb8\x28\xe1\x07\xf3\x3f\x26\xa1\x44\x21\x25\x58\x29\x1e\xd8\x8f\x49\x08\x98\x06\x49\x14\x52\x69\xab\x2a\xfd\x30\x04\xd4\xfb\x97\xcc\x10\xc7\x56\x26\x42\x57\x4d\x57\xee\x47\xc5\x80\x68\x90\xc4\x0a\xdb\x7a\x15\xcd\xbd\x66\xd8\xf8\xd7\x5b\x2d\x34\x48\x52\x48\x5c\x99\xff\xd1\x49\xa2\x41\x22\x01\xb3\x64\xba\xaa\x68\x1b\x04\x14\xdd\xea\xda\x57\xb0\xb2\x39\x49\x87\xe1\x01\x90\xba\x22\xcd\x42\x4b\xd8\xb0\x9a\x9d\x66\x0e\x46\x1a\xa4\x34\x4e\x73\xdf\x28\x11\xf3\x44\xfb\xd8\x21\x0d\xd2\x8c\x60\xfc\xb7\xab\x78\x67\x28\x78\x77\x39\x4f\xea\x39\xd1\x20\x05\x89\xd5\x17\x1e\x9f\xbe\x2d\xfe\xb4\x60\x06\x0d\xb2\x10\x30\x8b\xe7\x79\xed\x5b\xea\xd2\x20\x0f\x01\x4b\x42\xba\x93\x0c\xb4\x1f\x48\x18\x6a\x24\x36\xd7\xa9\x59\x5e\xec\x77\x8a\xcb\xec\x13\xf2\xdc\xee\x98\xed\xac\x55\x34\xfd\xf7\xe7\x2a\xcf\x6c\xa1\x93\x53\x51\xf5\x2d\xde\x68\xc0\x02\xa5\xe2\xbe\xcf\x45\x71\x9a\x34\x0b\xf1\x73\x04\xc7\x0d\xc0\x1a\x4e\x64\x39\xd4\x25\xa5\x01\x97\x2a\x8e\x06\x41\xb2\x6d\xeb\xe2\x7c\x1e\x9d\x2f\x19\x06\x99\xec\x45\x89\xab\xcc\x77\xbd\x00\x10\x0d\x64\x64\x5d\xdc\x4f\xa7\xd3\xa4\x38\x33\x0d\x24\x64\xa9\x67\xab\xcc\x4a\x97\x67\x36\x03\x4c\xd1\x40\xaa\x20\x1a\xaa\xd4\x2d\x59\xbd\xd2\x12\x66\x27\x51\xaa\xdc\x77\xd5\x76\x81\x05\x97\x73\x5a\xcf\xce\x22\x50\x19\x39\xcd\x01\xd5\xef\x2f\xac\x39\xde\x17\xbc\xbe\xcc\x6e\x08\x3c\x81\x01\xa4\xf1\x5d\xd7\x2f\x93\x24\xb3\x5f\xbb\x11\xac\x9c\x06\x2a\xcb\x51\xb4\x1e\x2f\xbc\x2e\xa4\xe3\xd5\xef\x71\xfb\x94\x04\x32\xf5\x28\xa8\x07\x5b\xb8\xc6\xad\x05\x21\x11\x21\xa4\xe7\x25\x3e\x78\xe5\x07\x45\x84\x56\x81\xf3\x78\x8e\x17\x91\x50\x69\xe3\x93\x67\x76\x59\x5e\xae\x14\xff\xa5\x84\x2a\x89\x9d\xa9\x5c\xb6\x9b\x4d\x7d\x7b\x66\xe7\x42\xa2\x1d\xea\x6f\x14\x46\xb6\x95\x9c\xd5\x12\xff\xa5\x4f\xbc\xb0\x8e\xa7\x99\x38\xa4\x24\x8c\xe3\xd0\x3b\x45\x8b\xea\x3f\x6c\xf6\xbc\x30\x8b\x13\x97\x14\xf4\xe4\xd1\x69\x94\x44\x81\x2d\x0c\x86\x45\x74\xf5\x97\xce\xbc\x4c\x33\xf9\x92\xc8\x35\x28\x3a\x63\x57\xc7\xdb\xa2\x2a\x9a\xe3\xce\xdb\x41\x7e\x52\xa2\x62\xdb\xd3\xd4\xb1\x5b\x5b\x4e\xeb\xdd\x2b\xa6\x04\x50\x27\x2e\x8d\x11\xb9\xd2\x55\xd3\xb2\xaa\xff\xd2\x94\xda\x0e\xc7\xae\xb9\x96\xd5\xb5\xdf\x8b\x41\x4a\xd2\x98\x83\x37\x86\xff\x98\x3f\x22\x63\x44\xf4\xc0\xcf\xfa\x8a\x87\xea\x3d\xef\x26\x79\xc0\x2c\x7e\xdf\xec\xf2\x33\x88\xae\x36\x33\x96\x45\x59\x16\xd5\xa1\xcf\x46\xfc\x5f\x14\x56\x4a\xf2\x34\xc7\xf7\x78\x2b\xc5\x44\xef\xa7\x24\xcf\x09\x38\x67\xf4\x12\xda\x66\x0c\x64\xa0\x84\x11\x22\x83\xbe\x41\xa1\x6d\x21\xbb\x7a\xba\x7e\x86\x09\x67\xb6\x18\xd7\xea\x7e\xf1\x7d\xb9\x58\xfd\x36\x81\xa7\x52\xc2\x79\x1e\xa5\xae\xb8\x2a\x56\x37\xbd\x13\xba\x1f\x13\x79\x1a\x79\xe5\x67\xa3\x75\x39\xf1\x29\x51\x22\xc2\x00\xcf\x0e\x66\xcb\x2c\x67\x2d\x87\xb2\x79\xbd\x18\x4a\x44\x64\xb3\xb9\x1f\x97\xff\xec\x6f\x91\xda\x62\x27\x18\xd5\x6a\xce\x18\x08\xbb\x93\xb3\xed\x92\xcc\x96\x61\x2f\xaa\x62\x54\x99\xea\xa3\x25\xbe\xbe\x0c\x52\x50\x25\xbc\x7d\x82\x89\x0d\xd5\xc1\x95\x78\xe8\x2b\xb5\x53\x22\x65\x66\x8b\xbd\x99\x2f\x7e\xd4\xad\x5b\xf7\xab\xba\x86\xb1\xc6\xd1\xdc\xc0\xe2\x4a\x8b\xd5\x6e\xbf\xb8\xbf\x7f\xfa\x3e\x94\xc3\xa0\x04\x58\x84\xae\x3b\x54\xc3\x77\x45\x89\x58\x1a\xec\x54\x5e\x54\x07\x8c\x4c\x21\x33\x1a\xe1\xff\xc6\x14\x07\x0a\x3c\x1e\x65\xc3\xde\xaa\xf7\xb5\x93\x29\x51\x41\x88\xc7\x61\x6f\x54\xe0\x06\x75\xdc\x0f\x5e\x56\x85\x09\x1b\x9c\xad\xcf\xd0\xe8\xae\x16\x33\x5e\x4c\x14\xc4\xc8\x6e\xbe\x7d\xdd\xd8\x30\x2c\xc8\x5b\x5d\x9b\xf5\xb9\x7a\x53\x1a\x24\x04\x0b\x7f\xb5\x85\x31\xb7\xef\x59\xd3\x6e\x3a\x5e\x16\x8d\x73\x9c\x50\x1a\xa4\x39\x76\x9b\x05\x71\xea\x4a\xc4\xc2\xfc\x69\xba\xc7\xfc\x11\x2c\x46\x9a\xb1\x5d\x2b\xd9\xb4\x60\x07\xa5\x81\xb2\x05\x4a\x99\x94\x1b\x5d\x16\xe2\x32\x24\xa5\x77\xef\x7a\x00\x39\x3a\xa4\x24\x08\x33\xdb\xaa\xea\xf2\xf4\xbe\x6e\x92\x9f\x94\x31\x69\xab\x52\x35\x4b\x36\xcd\xfe\xa6\x94\x28\xdb\x8b\x72\xe9\x6b\x09\x94\xfe\x8b\xa9\xb2\xad\x56\x36\xfa\x7c\xbe\xf8\x1f\xc3\x4c\x60\x5c\x7e\xef\xab\x85\xdf\xc0\x6b\x31\x5f\x7d\x1a\x66\x80\x36\xa0\xad\x10\x56\xc1\x5b\x3d\x78\x04\x29\x8d\xa4\x20\x23\x5f\xcd\xe2\x7e\x4d\xf6\x9b\xe7\x75\x3f\x0c\x56\xfb\x96\xf0\x7a\x0b\xbd\x6c\xa2\x71\x96\xa2\x41\x5b\x69\xe9\xf3\x71\x46\x99\xcb\x94\xc6\x39\x0f\xdc\xf9\xdb\x2c\x77\xbb\x5b\x5d\xcf\x63\x59\x94\x26\x54\x80\xf4\xe8\x01\x84\xa7\xf9\xe2\x9a\xb3\x55\x49\xa2\x00\xcd\x1e\xec\x0a\xb4\x83\x09\xa0\xcb\x8c\xf2\xc4\x25\xc3\x63\xad\x83\x9f\x76\xc1\xa0\x34\x61\x16\x46\x71\x86\xf6\xa9\xb2\x41\x59\xde\xc7\x97\x9d\x7f\x99\xd2\x04\xac\x52\x60\xc9\x7a\x84\x57\x9f\xbd\x5a\x16\xc7\x38\xef\x96\xd5\xa7\x2f\xfa\x0c\x9b\x5a\xff\x07\xc4\xb8\x3b\x31\xa5\x19\x04\x08\x6b\x79\x43\xf0\x9d\xb1\xb2\x87\x3e\x03\x6e\x4a\x4e\x22\x5c\x65\xfc\xc2\x66\xf6\x8c\x3c\x8f\xf2\x01\x25\x71\xb7\x7a\x72\xd5\xa9\xfc\x30\xf3\xf9\xd1\xcd\x49\x8f\xd4\x70\x9a\x73\x8a\xde\x45\x4c\xab\x35\x1b\xdb\x0f\x08\x5b\x9a\xde\xdb\x27\xae\x4f\xd7\x2d\xc0\xcf\xfb\xf4\x8e\x69\x3d\x87\x08\x3f\xdc\x75\xa7\x7b\xe8\xca\x6d\x71\x98\x20\xf1\x29\xe5\x69\x14\x3a\x9b\xfb\xd3\x95\xf2\x4c\x7e\x56\x66\xdd\xd6\x07\x68\xef\xa4\x5b\xbf\xfe\x0e\xb9\x2d\xd1\xfd\xd9\x28\x47\x53\x29\x41\xb9\x48\x89\x4f\x78\x84\x1f\x18\x33\xdd\x16\xbc\x1c\x49\x5d\x3f\x51\x52\x6c\x22\x78\xbc\x9c\x61\x4e\x83\x82\xc6\xd8\x0c\xe4\x0c\xd8\xe2\xc0\xba\xda\xe6\x1b\x20\x98\x85\x1f\x9a\xc5\xfd\x56\xc0\xdb\x64\x77\x81\x58\x34\xd6\xd7\xed\x72\xbd\xbe\xed\x7f\x15\xf9\x08\xd9\xe2\xea\x79\x5f\xe7\x44\x20\xa5\x2f\xed\x65\xeb\x1c\xaf\x7a\x8c\xa0\x9b\xa1\x44\x96\x8d\xca\x0f\x4d\x7d\xf6\x93\x9b\x85\x41\x60\x9d\xc5\xce\x58\x7b\xb6\xf1\x03\x7f\xd8\xc3\x80\x05\xa9\x18\xe2\x0a\xc6\x86\x9f\x2e\x56\x18\xc8\x0c\x7d\xac\x6d\x01\xf5\xee\x58\x3b\xf5\xdb\x0d\xd2\x9c\xd1\xdc\x53\xd4\x80\x37\xa0\x61\x98\x26\xa8\x6c\x4b\xd7\x9a\xe1\x6e\x73\xbb\xc5\xd4\x53\x3f\x2e\xf3\xc8\xd9\xbb\xb6\x1e\x64\xb3\xbc\xa0\x7e\x3f\x5d\xe9\xd0\x68\x84\x43\x77\xae\x6f\x45\xc3\xfa\x4a\xaa\x57\x17\x2f\x8c\x93\x1c\x9d\x40\x0f\xba\x2a\x46\xb4\x1f\xc6\x09\x88\xa0\x87\x52\xac\x74\x77\x1e\x05\xf9\xa6\x5f\x1c\x67\x29\x3a\xc7\x7f\xbf\xbd\xff\x89\x37\x8e\x86\x71\x6e\x7d\xc9\xfe\x8d\x30\xd5\xf4\x5d\xf1\x2b\x37\x39\x21\xb6\xfa\x91\x8d\xed\x94\xe5\xd8\x44\x0d\x13\xce\x63\x36\xe0\x56\xaf\x95\xac\xa3\x61\x0a\x8a\x50\x6f\xa3\xba\x50\xce\x58\xa7\x08\xb3\x34\x4d\x9d\x6e\xbc\x1a\xf5\x09\x76\x3d\x0c\xc6\x07\x31\xcc\x78\x8c\xab\xd4\x42\xd3\x0e\x9d\xb1\xfb\xc1\x14\x77\x1c\x2a\x6c\xdd\xdc\xc7\xae\x68\x98\x47\x99\xc7\x89\x18\x19\x8c\xf1\xc1\x2f\x08\x08\xe9\x67\xc4\xb6\xde\x5f\x79\x16\xfe\x27\x96\x50\x3c\x51\xb5\x99\x47\xc8\xf4\xbc\x85\x9c\xa7\x48\x08\x37\x8b\xdd\xda\x88\x19\xc3\x96\x6c\x52\x97\xbf\x5e\x90\x1c\xf1\x49\x0f\x97\xef\x45\x73\x1c\xe5\x82\xd2\x50\x50\x1b\x88\xc2\x82\x12\x7f\xcc\x0c\xa9\x50\x24\x41\xd4\x57\xd4\x14\x1e\xb0\x68\x7e\x27\x58\x99\x0b\xdd\x10\x7b\x76\xe8\x01\x9a\x34\x14\x19\x07\xea\x1d\x96\xbe\x16\xc5\xcf\x22\x0a\x34\x94\x89\xc0\x84\x97\xe7\xf5\xe6\x69\xbf\xd8\x6c\xf6\x8f\x8b\x07\xcf\x58\x43\x20\xae\xe4\xa7\x2f\xdc\x34\x8e\xc3\x8d\x5a\x20\xfa\xe9\x61\x82\x9d\x4f\x2b\xec\x13\xb8\x62\x4d\xff\x62\xa0\x94\x6f\xfb\x8f\xe0\xcd\xee\xc3\x72\x76\x34\x54\x11\x41\x4d\x1b\x49\xad\x7f\xe0\x70\xe6\x55\x64\xf1\xec\xe8\xbd\xde\x69\x87\x4e\x9c\x2d\x9e\x62\x52\x3a\x18\xe1\x33\x56\x48\x05\x89\x41\x33\x3b\x1c\x05\x41\x86\xbd\x34\xce\x4e\x0d\xb3\xfe\x2a\xea\x47\x23\x0e\x30\x6d\x57\xdd\x57\x12\x31\xa3\x4a\x70\x6b\xfb\x2d\x59\xc5\x3c\x42\x80\x46\x01\xe3\xa1\x2d\x1b\x6d\xcc\xba\x67\xdb\x93\xae\xef\x4b\x4a\xa3\x40\x72\x14\x1f\xe3\xec\xc2\xc8\x0f\x92\xc0\x96\xbd\x28\xb0\x01\xc6\x8c\xcf\x45\x24\x8d\xf0\x6c\xf8\x9a\xd8\xcb\xdd\xea\x3a\xc3\x8c\x48\x96\x32\x57\x3c\x48\xea\xb7\xe0\x5d\x2b\x1c\x1a\x11\xc5\x9d\x43\x05\x59\xc9\xb1\x28\x8d\xf2\x6a\xab\x35\x3d\xc2\xb4\x8e\x11\x8d\x28\x11\x28\xc9\xb7\x4c\xca\x12\x6e\xb7\xd3\x75\x8e\x68\x42\xb1\xc2\x82\xd5\x2b\x1e\xba\xb2\x2d\x9a\x41\x6e\xce\x6e\xc5\x62\x6b\x5a\x40\xd3\x3e\x83\xd0\xaf\x30\xf8\x24\x7e\xfd\x09\x45\x44\x94\x33\xcc\xff\xbb\x7d\x1a\x4b\xaa\x88\x8a\x08\x75\xb6\xd5\xb8\xd3\xda\xbb\x6a\x8d\xa3\x77\x95\xc0\xb3\x11\x00\x07\x8d\xd1\x13\xc8\x82\xcd\x12\x41\x69\x44\x15\xc1\x78\xd5\x6e\xe2\x08\x8c\xa8\x0a\xbd\x6f\x03\xc3\x8e\xfd\xcf\x02\x95\xeb\x57\xdd\xc2\xe3\xa4\x8e\x1e\x8d\x42\x12\x51\xa7\x78\x6f\xbb\x33\xd4\x36\x05\xe3\x3a\xeb\x8e\xc2\x50\x62\xb1\xa4\xaa\x3b\xed\x8f\xe3\x14\x41\x1a\x85\xa9\x75\x83\xd9\x0c\x80\xb1\x0f\xe9\xba\x41\x10\x85\x8c\x11\x3e\xc1\xab\x3c\xf2\xf1\x4b\x47\xa1\xf5\xc6\xe8\x0a\x5c\xb5\x07\x87\x0e\xf3\xe3\x9c\x21\xdf\xfb\xd2\xf1\x3e\x2c\x45\xa3\x08\x2c\x8d\x9b\x3d\x44\x3f\xf3\xa2\x76\xd9\x03\x37\x9d\xf9\xea\xa1\x2f\x0e\x8d\x62\x61\x4b\x20\x16\xa7\xb3\xae\xdb\x2d\xfc\xb7\x83\x41\xdd\x89\x92\x40\x12\xf0\x6d\x4a\x6d\x3e\xe4\x73\x9f\x34\xfb\x0e\x73\x3b\xfd\xb6\x34\xb2\x51\xf7\x33\xbb\x48\x76\xb9\xad\xed\xad\x2f\x77\xd5\x0d\xbb\xf4\x2b\x96\x46\x02\x15\x99\xd3\xc5\xa6\x92\xcf\x9d\xd6\x51\x0a\x01\x92\x55\xd3\x71\xc4\x6e\xda\x41\x9f\xcd\x81\x01\xb7\xeb\x84\x94\x05\x81\x72\x92\x0a\x83\x4b\x50\x0c\xa1\x10\x1a\x65\x71\xc6\xc9\x38\xf4\x2e\xdf\x75\x51\xfc\xb9\x0d\x1e\xe5\xc4\x42\xde\xad\x1f\xe9\x5e\xb7\xed\x58\x0f\x8e\x72\x48\x70\x67\x56\x5a\xc2\x03\x2b\x8c\x2c\xee\x9d\x47\x11\x8b\xad\xfd\x6a\x36\xe8\xae\x99\x2b\xe6\x11\x93\x1c\x01\x2b\xf7\xfa\x60\x53\xf4\xdf\x8a\x56\x1c\xc7\xde\xe9\x48\x44\x24\xb7\x8d\x66\xa4\xed\x7f\xfa\x01\x56\x8a\x46\x22\xb1\xc5\x04\x96\x4f\x8f\x5f\xb7\xfb\xbb\xd5\xd3\xfe\xfb\x7a\xfd\xdb\x7e\xf7\xdd\x4b\xdc\x48\xa4\x49\xa4\x7a\xd8\x71\x59\x02\xb6\x7a\xd0\xa5\xd4\x6f\xd5\xbb\xa0\x16\x8d\x84\x08\x6c\x35\x64\xd4\x32\x9f\x41\x14\xe7\xe2\xff\xd1\xf6\x66\xcd\x8d\xe3\xd6\x1f\xe8\x77\xf9\x3f\xcd\x43\x1e\x48\x2c\x24\x78\xdf\x64\x5b\xee\x76\xc6\x5b\x2c\x75\xf7\x4c\x52\x29\x15\x96\x03\x9b\x31\x45\x2a\x24\x65\xb7\xe7\xd3\xdf\xe2\x01\xc0\x4d\x94\x67\x72\xab\x6e\x1e\xd2\x53\x26\x44\x51\x24\x08\x9c\xe5\xb7\x04\x04\xf8\xac\xe2\x34\xa5\x91\xfb\xcf\x1b\x03\xce\x1c\xb6\xae\xab\x7a\x14\xcf\x31\x30\xae\x03\xa6\x8e\x1f\x5f\xa1\xae\x66\x5f\x6b\xb5\x4e\x74\xdf\xf0\xf6\xaa\x0c\xe1\x27\x58\x93\x20\xc6\x0c\xb7\x61\xbc\x9f\xfd\x81\x0c\x03\x9a\x2f\x63\x79\x08\xc2\xa3\x48\xa0\xdf\x89\x3a\x7e\x5c\x75\xdb\xa3\xae\xf2\xb2\x59\x3d\xcb\xbc\x44\xcd\xab\xbe\x80\xcd\x23\xe2\x7a\x9d\xee\xc7\xae\xf7\x87\xa2\xfa\x80\x65\x5e\x62\x37\x38\x15\xdd\x32\x7c\x7d\xb5\xfd\xf3\x0a\x3d\x8f\x94\x21\x53\x55\x69\x84\x30\x4d\xc6\x90\x58\x61\x63\xb7\x91\x6f\xb0\xfd\xd9\xce\x0e\x26\x0e\x28\xad\x1c\xf5\x04\xab\x15\xfa\x57\x98\x15\xed\x39\x51\x59\x86\xa1\x3e\x2a\x9d\x4c\x84\xd4\x08\xa7\x31\x45\xcb\x96\x43\x5d\xfd\x74\x2c\xb6\xfe\x88\xcc\x02\x2f\xe2\x4e\xfe\xbc\x83\xfa\x79\xf8\x10\x64\x94\x87\x26\xa8\x71\x0e\xbc\x0e\xc2\xe5\x64\xe1\x66\x17\x40\xad\x72\x12\xb4\xd5\xfe\x5a\xaa\x70\x12\x16\x31\x04\x14\xbb\x9e\xc3\x93\xcc\x1b\x30\xbd\x98\x37\xe1\x8c\x92\x80\xc6\x0d\x94\x39\x4c\xc0\x1f\xac\xed\x87\x08\x81\x31\xc6\xf6\x61\xbb\xba\x1d\x50\xa6\x5d\x72\x25\x99\x4b\x4e\xf7\xfb\xaa\xec\x45\x24\x09\x67\x90\xe0\x03\xfa\x52\x99\x62\x44\x65\xec\x0e\x58\x5c\xd3\xb1\x21\x79\x07\x26\x3f\xee\xc3\xa1\x60\xfe\x70\x98\xf8\x58\x85\x83\x89\xc1\xc6\xa6\x9b\x1e\x77\xf2\x3f\x55\xbd\xad\x61\x56\x0b\xe1\x09\x4f\xa8\x2b\x44\xd7\x39\x98\xc9\x46\xcf\x13\x9d\x62\x87\x64\x65\x87\xab\x49\xc0\x39\x09\xbb\xa9\xee\x7b\xff\x4b\x5e\x78\xff\x53\xf5\x89\xa7\xb1\xc2\x8b\xc5\x7c\x7f\x76\x89\x29\x89\xf1\x06\x5c\x57\xf5\x33\x5c\x5e\xdd\x87\x4b\x49\xa9\xf5\x0a\xf6\x4e\x57\xa0\x28\x64\x1d\x98\x97\xfd\x18\xe9\x04\xea\xab\xd2\xcb\x68\x05\xc6\xb9\xf9\x65\x84\x7b\x21\x3c\xd5\x4c\x38\x7c\xc8\x60\x78\x38\xdd\x5b\xb9\x88\x25\xea\x78\x55\x5d\xba\xe3\xfc\xfb\xcc\xe3\xc8\x39\xf4\xe2\x63\x1e\x28\x2f\xff\x54\x11\x6b\xe3\xbc\x18\xec\xb1\x34\x08\xe7\x06\x73\x01\xed\xec\x57\x0b\x1a\xc9\xa1\xd5\x60\x1c\xb6\xe0\x0a\x64\x71\x4a\x04\x0d\x9f\x60\x1c\xe5\x8f\xdb\x97\xbc\x7c\xdd\xca\xf2\xb5\xdb\x5f\xa7\xb9\x0d\x17\x29\xc7\x46\x93\xae\xf6\x07\x59\xe2\x15\x87\x43\x19\x25\x08\x2f\x56\x79\x9b\xbf\xfe\x91\xbf\x4e\x16\xa5\x8c\xa6\x08\x07\xdb\x6e\x9d\xc0\xd4\x06\x8a\x62\x38\xa6\x31\x84\xdb\x6d\x0e\x45\xdf\x0e\xe5\x32\xb1\xce\x0e\xa8\xd9\xe7\xc7\xfd\x4c\xa0\x98\x70\xa9\x0c\x17\x23\x50\x63\xa8\x65\x4c\x56\x11\x45\x88\x1a\xb0\x94\x37\xdd\x93\xeb\x92\xe9\x89\xd4\x44\x18\x9a\xa5\x41\xb0\xfc\xb1\xae\xde\x72\x74\x6d\xdd\xcf\x34\xac\x09\x57\xca\xb9\xa0\x96\xf0\x8e\x91\x86\xef\x33\x9f\x79\x54\x5a\x03\x46\xf9\xab\xbb\x6f\xb7\xeb\xed\x26\x5c\xbb\xb6\x22\xb3\x33\x0b\xf8\x25\x35\x00\xc2\x8d\x89\x10\xea\xfe\x50\x06\x7d\xd7\x71\x51\x8d\x43\x44\x32\x15\xa4\xe1\x64\x3d\x79\x87\xc4\xec\x5a\x80\x27\xc8\xbf\xbf\x87\x63\x5d\x5d\xad\xc2\x0e\xc9\x21\xd5\x64\x54\x29\x9b\x7d\x48\x44\xd9\xb8\xc9\x7f\x09\x67\xbc\x8b\x08\x07\xed\xcc\x63\x9f\xa1\xbd\x70\x13\xd1\x15\x15\xa7\xb3\xd2\x66\x0e\x48\xe8\x9e\x88\x13\x92\x2b\x6d\x55\xef\xdd\x33\x59\x28\x13\x70\x6b\x63\x32\x4e\xdd\x66\xa1\xc0\x09\xdc\x84\x24\x71\xe2\xd4\xe0\x9a\x63\x39\xf4\xde\x92\x58\x64\x68\xde\x71\x91\x63\xf0\x1f\x74\xa3\xba\x03\x80\xda\x18\xab\xa2\x9d\xf7\x86\x97\xea\x16\x49\x2c\x19\x66\xac\x98\xff\x5d\xdd\x5c\x2d\xdf\x90\x24\x06\x03\xba\xd7\x0d\xc5\x2a\xc2\xc5\xc7\xcd\xd5\x64\x86\x26\xc4\x68\xa4\xa0\x3a\x1e\x4f\x39\xc5\x19\x92\x84\xd2\xd4\x3d\x60\x6c\x61\x49\xaf\x70\x1a\xde\xc6\x84\x32\x8e\x98\x19\x0c\x2f\xeb\x29\x24\x8d\x24\x4c\x49\xc2\x82\x82\x76\xf7\x2c\xb6\xd5\xdf\xa5\x7e\xed\xf5\x11\x49\xc2\x63\x47\x52\x55\x49\xe2\xb3\xd8\xe9\xf9\x13\xee\x4c\xbd\x1e\xab\xaa\x58\x9c\xa0\x49\x92\xba\x7a\xc5\x6b\x5e\x14\x8f\xf2\xa3\xff\xa0\x92\xf8\xf2\x8e\x11\x4f\xfd\xe3\x49\x6c\xc4\x58\x6f\x6b\x86\x8e\xcd\xe1\x73\x82\xb8\x35\xb2\x81\x2e\x13\x74\xe4\xea\x53\x24\xc9\xf4\x12\x04\x17\x10\x32\xed\x6e\xa3\x72\xd4\x8b\xfa\xa6\x44\x34\x7a\x51\xf4\x35\xf6\x44\x80\x13\xbe\xb9\xfb\xc0\x38\x68\x8b\xa2\x05\xe1\x60\x16\x81\xf5\xbd\xba\x9b\xcb\x87\xf5\xcc\x3a\x2c\x0c\xca\x28\x38\x65\x2a\x23\xcf\x14\x34\x12\x49\x23\x6c\x5a\xec\xb0\x37\xd5\x03\xbf\x16\x8d\x99\x49\x22\x33\x1d\x80\x2b\x8f\x55\x2b\xdb\x59\x68\x98\xa8\xd8\x70\x3b\x12\x95\xf5\x7f\xd6\x91\x41\x17\xd5\xa7\xaf\x21\x32\x48\x4c\x04\x8e\xb7\x5f\x4b\x47\x0d\xb8\xcd\x35\x94\x23\x5c\xdd\x64\xe2\x99\x38\xc3\xe0\xef\x07\xd2\x6d\xa7\x15\xd0\x53\xbf\xe0\x93\xa5\x2d\x31\x89\x4c\xd2\xd0\x99\x95\x75\xbb\x69\xab\x03\xd6\xb3\xce\x14\xf0\x12\x60\x11\x09\xde\x2b\x13\x24\xc3\x6c\x98\x96\xae\x4a\xe7\x92\x17\x79\x78\xac\xbc\xdd\xa5\x4f\x0f\x12\x9b\x39\xad\xc0\xcd\x43\x28\x71\x25\x56\x5b\x11\xda\xc4\xb2\x00\xd7\xd6\xee\x0f\xda\x88\x43\x5f\x02\xc5\x66\x9e\x3b\x92\x46\x4c\x3a\xef\xab\x87\x9b\xfb\xe0\x87\xd3\x25\x11\x8f\x5f\x57\x9b\xf5\x8e\x86\x61\x71\x9c\x20\x1c\xdd\x57\x8b\xef\xe1\xdd\x49\x22\x8c\x8b\x32\x29\xcd\x62\x65\xfd\xcb\x76\x57\x95\xf0\xe1\x3c\x4d\xd6\x33\xc2\x0e\x49\x19\x61\x98\x00\x1d\x6a\xf0\x36\xc0\xed\xf8\x9d\xeb\x32\x4b\x15\x05\xc8\xc8\xd8\xa7\x8f\xa4\xcc\x70\x4c\xfb\x9a\xea\x58\xdc\x34\xdd\x45\x98\x8b\x59\xe1\x20\x65\x20\x51\x51\xfe\x3f\xf2\xcf\xbd\x4f\x96\x1f\x6d\x9a\x24\x1c\x29\x51\x79\x69\xf2\xb7\xdc\x1c\x9d\xdf\x73\x38\xd8\x85\x31\xee\x56\x77\x8b\xc9\x63\x35\xa1\xc7\xce\xce\x24\x22\xa7\x35\x77\x7b\x1f\xe0\x38\xa9\x88\x33\x14\x61\xd9\xb4\xb2\x34\x3d\x11\x6f\xf6\x31\x65\x10\x18\x22\x9b\xd7\xbf\x24\x7c\x42\x52\x61\x25\x52\xe6\xb6\x20\xf7\xaa\xee\x22\xb9\xb1\x30\x03\x49\xb3\x88\x06\xd5\x39\xbf\xd0\x99\x25\x18\x47\x9a\x71\xe7\xf2\x83\x8f\xc4\x19\xc3\xce\xee\xaf\x64\xee\xf1\xe1\x0a\x02\xc7\xfd\x55\x2e\xf7\x55\xdf\xfc\x4b\x51\x9d\x64\xa8\xf0\x7e\xf7\x1c\xa6\x51\x06\x9c\xca\xd4\x6b\xaf\x06\xe7\x87\xeb\xbc\x6e\xda\xcb\xe3\x0c\x3b\x94\x4a\x99\x05\x57\xdf\x6f\x65\x6f\x4e\x4f\x52\x15\x5b\x5c\x23\x9d\x04\xf0\xa6\xad\xea\xa1\x02\x9a\x2a\x25\x30\xb5\xb8\xbe\x1d\x0b\x79\x92\x54\x99\x4c\x8a\x91\xd9\x61\x51\xd5\x5f\x6a\x18\x1d\xb7\x12\xbb\xb7\xc6\xe7\x23\x60\x6e\xb4\x4b\x2b\x9b\x51\x69\x21\xd5\xd4\x79\x95\x0f\x7e\x00\x4b\x72\x53\x24\xd5\x2a\x45\x29\x6c\xb4\x6a\x1a\x2a\x90\x29\xa4\x32\xb2\x21\x6a\x6b\x65\xf1\x45\xee\xe1\xb1\xdf\x8f\x52\xd0\x82\x85\xc4\xe8\xe8\xe2\xa2\x07\x7b\x3b\x17\x6e\x20\x29\x58\x70\xb2\xaa\xf2\x15\x5c\x8b\x33\x10\x0b\xfa\xfc\xdc\x8d\x14\x51\xc4\x89\x6f\x89\xfe\x3a\x5c\x87\x88\x63\x81\x6a\xfc\x8f\x4f\xeb\x8b\x6f\xbf\xef\x1e\x1f\x9e\xd0\x70\xe9\x6e\xf5\x5b\x3f\x82\x29\xe1\x61\xc7\xbd\xac\x22\x11\xb1\x4a\x1d\xb6\xa4\x0b\x0d\x77\x0d\xb4\xbb\x53\x84\xc2\xe4\x52\x05\xe1\xd2\xe0\xaa\xfc\xe6\x74\xb4\xf1\x9e\xd2\x28\x9c\x90\x26\x16\xf7\xe8\x23\xfa\xa4\x8e\xae\x90\x5a\xa6\xbc\xb0\xec\x63\x5d\x1d\xa0\x6e\x3f\xae\xab\x1a\x57\xaf\x25\x4d\x54\x22\x58\xb7\x11\xf6\x78\xb1\x8b\x63\x3d\xd7\xe6\x22\x82\x1b\xce\xc7\xb8\x9e\x1f\x79\xfb\x32\x95\x0f\x58\x5c\x93\x45\x2a\x22\x94\xc6\xc6\x10\x31\xd4\xf5\xff\x39\xe3\x83\x12\x91\x66\x16\xa9\x88\xee\x92\xcd\x51\xb7\xbf\x2c\x0a\x79\x2d\x05\x55\x42\xb0\xcc\xb9\x0b\xf7\x16\x2a\xb7\xd5\x73\xae\x97\xfb\x2f\x42\x64\x96\xf4\xc6\x9b\x4d\x5b\x99\x5c\x7a\xe1\xb3\x27\xf8\xef\x34\xe4\x14\x42\x52\x67\x97\xe2\x2f\xfc\x0a\x8a\x3e\x50\x11\x42\x2a\x8e\x5e\x1e\x97\x97\xfd\x9f\x74\x84\xc2\x01\xa1\x99\x7b\x55\xed\x65\x5e\xfe\xb2\x54\xef\x11\x19\x64\x98\xa6\x97\xf0\xee\x5f\xf5\x59\xe1\x5c\x48\x2e\xd0\xb4\xdb\xe6\xa5\x59\x97\xe6\x50\xe5\x65\x7b\x92\xe9\x85\xb1\x19\xc7\x6f\xee\xb6\xd1\xa7\x00\x51\x9f\x44\x64\x42\x2a\xa7\xc6\xbc\xdb\x3d\xc3\x19\x40\x84\x90\x40\x55\x00\xea\x05\x83\xdd\x13\x3e\x3f\x11\xd2\xa6\x01\xc9\xbe\xe9\x56\xc4\x00\x00\xbd\x93\xa1\x20\x37\x9c\x52\xa5\xc2\xcd\x1c\x34\xef\xea\xf6\x58\xb7\xbe\xde\x94\xba\xaa\x6b\xd0\x5e\x2b\xc2\x8f\x86\xd8\xa5\x9e\x17\xb9\x91\x58\x89\x98\x9e\x0c\x68\x4a\x47\x9e\x5e\xcd\xc5\xc7\x55\xa5\x07\x5d\xdd\x30\x2a\xd1\x89\x73\x30\x6e\x1f\x6a\xa7\x22\xbb\xbc\xcb\x08\x50\x3a\xc8\xb1\x04\x25\xd3\xe5\x60\x4b\x58\x95\x60\x01\xde\x85\x02\x4f\x60\xa7\x53\x25\x8b\x18\x95\x83\x57\xe3\x45\x21\xf5\x6b\x17\xba\x6d\x0e\x50\x9a\xf9\xdb\x94\xc5\xb1\x46\x8a\xcf\x02\x93\xe3\x93\x3c\x2c\x8b\x53\xcb\x64\xcf\x7d\x90\x6d\x7d\xce\xd4\x97\x64\xb1\xca\xf0\x61\xff\xe7\x68\x9e\xe1\xa6\x41\x1a\xf8\x95\xcc\x8b\x8f\x09\xd4\xf4\x6f\x4b\x37\x25\x23\xa9\x21\x3e\x9c\x3d\x1e\xf0\x25\x6f\xbe\xe6\x4d\x5b\xcd\x3b\x0d\x19\xb1\x42\xc8\x00\x1a\x69\xe0\x0a\xca\x0a\xf1\x3b\x79\xb5\xdc\x47\xcd\xa8\xef\xcf\xfb\xc7\xe7\xf4\x7b\x67\x43\x88\xe5\x3d\x96\x36\x28\xfa\x87\x39\x9c\x51\x99\x86\x2e\xa8\xf3\xd1\x70\x45\x9b\xc5\x68\x3a\xa3\x56\x62\xcf\x66\x75\x35\x36\xb4\x21\x19\x8b\x8c\xef\xcb\x6b\x28\xdb\x63\x7d\xac\x86\x43\x24\x25\xcc\x57\xc7\xc7\x5b\x7d\x38\x9c\x29\x8c\xa2\xc2\x75\x4d\x4e\xcb\x4d\x8a\x4d\x0b\x6f\xb2\xe3\xbb\xfe\x23\xcd\x45\x92\x25\x9c\xa0\xa2\x8c\x4b\x61\x77\x2f\xae\x7f\x3b\xbd\xfb\x89\xa2\xb8\xdd\x6e\xb6\xab\xa7\xdb\x9b\x2f\x5f\x43\xa4\x9a\xa5\x42\x39\xf5\x59\xb9\x87\xaf\x55\x33\x5b\xd7\xb2\x54\xba\xf2\x42\x17\x3e\x74\xdf\x79\x27\x7f\x0e\x66\x98\x24\x13\x7e\xca\x85\x05\xbc\xfb\x69\xa3\xac\x20\x13\xa9\xc1\xf9\x7d\xe8\xed\xe8\x1e\xa1\xde\xc8\xb6\x6a\x5e\xf2\x7e\x4c\x66\xb0\xf8\xb0\x81\xa2\x70\x78\xdb\x33\x3d\x81\x30\xde\x70\x44\x22\x78\x7a\xee\x26\x7f\x2e\x65\x7b\xac\x61\x85\xdd\x6d\xb9\x4c\xf4\xf5\x9f\x95\x84\x3b\xfd\xbb\x2e\xbb\xbd\xaa\xca\xa9\x85\xf5\xbf\xc8\x90\xba\x8b\x7f\x4f\x1b\x70\xff\x22\xff\x0e\xe7\x10\x0a\xa3\x6f\x34\x5e\x1f\x83\x69\x33\x69\xa2\x40\xf6\xdb\x95\x6a\x36\x05\x95\x96\xa9\x83\xc5\x3f\xd6\xb0\xcf\x8f\xfb\xd9\x13\xd2\xb1\xc3\x39\x38\x7d\x26\x93\xb7\x17\xd5\xbc\xd8\x95\x99\xd8\xa9\xbf\xe3\xfc\x5c\xcd\xec\xac\xa6\xa7\x33\x4c\x61\x9c\x91\x37\x3d\x9a\xf6\xa6\x6c\x72\x03\x4f\x63\x27\xfd\xe5\xe8\x35\x33\x32\x46\xf7\x78\x8f\x67\x72\x9d\x59\xd2\x5f\x85\x4e\x0c\x96\xb1\xf3\xe7\xe7\x8f\x6d\x35\x09\x6c\x33\x03\xa0\x06\x67\xbf\x6f\x87\xaa\xc6\x78\x1c\x8d\x95\x51\x39\x78\x6e\xd2\x3a\xbd\x4b\x20\x15\xb6\x92\xc7\x98\x88\xfe\xe7\xdb\xd8\x20\x15\xf2\xd8\xc0\x84\x81\xec\x0e\xcb\x38\x32\x22\x0d\x15\x33\x74\x7c\x5c\x3b\xc0\xc3\x2f\x61\x80\x20\x26\x0e\x90\xd1\x40\xaa\xbf\x94\x87\x1b\x5d\x3d\xbe\xc8\x06\xb6\xef\xd5\x23\x6a\x56\x4c\x4a\xa9\x12\xa5\xf2\xf0\x56\xe2\x82\x77\x89\x4e\x29\xe1\x9c\x84\xc7\xa8\xc0\xf6\x86\xa6\x45\x63\x5b\x7f\x22\x49\x22\x82\xe4\x56\xb7\x30\xb9\x1b\x85\x25\x97\xe9\x85\x13\x2d\x30\x77\x7e\xfd\xd0\xa8\xaf\x33\x23\x0b\x76\x03\x5c\xe9\xf1\xfe\xe1\xd7\xdd\xc3\xbe\xcc\x9d\xc0\x55\xff\x35\x10\x23\x15\xfc\xe9\xf7\xd5\xfd\xc8\x3b\x95\x48\x62\x23\x44\x14\x3a\x6c\x55\xff\x8c\x24\x8d\x28\x36\x95\xf2\x32\x6f\x63\xe7\xd6\x15\x56\x0d\x3f\x82\x81\x13\x41\x30\xd0\xa5\xbd\x0d\xf4\x2e\xb7\x8f\x75\xf5\xf3\xe3\xf3\xe8\x4c\x32\x10\x01\x7d\x3a\xd1\x94\xcf\xc2\xd9\x79\x92\x60\x69\xf3\x47\xf5\x31\x68\xd1\x10\xc9\x33\x90\xae\x8c\xb5\x2e\xdb\xbc\x2d\x10\x42\x7a\x59\x1c\x9b\xb9\x2e\x27\x91\x5c\x47\xd8\xd6\x72\xfd\xc0\x8d\x7c\x96\xa8\x4c\xe0\xcb\x68\x4b\x97\x37\x41\xa4\xc9\x84\x6a\x34\x50\x44\xfe\xca\x1e\x5c\x62\x85\x8b\xcf\xaa\x79\x3d\x41\xc5\x4d\xbf\x3b\xb1\x04\x43\xac\x33\x0e\xc8\x67\x3e\x95\x12\xc9\x7a\x14\x31\xda\x5a\xfb\x74\x7d\x3a\x4c\x24\x29\x66\xcb\x2e\xea\x9c\xbe\xfe\x52\x48\x67\x77\xda\xed\x8c\xc7\xba\x74\xb0\x55\x6c\xea\x8d\xc0\xbf\x52\x92\x04\x71\x13\x28\xbf\x28\xdb\xeb\xaa\x3e\x35\xb7\xef\x46\xa5\x4c\x05\x7f\xac\x1a\x95\xe5\xa7\x8a\x08\x61\x5c\x42\x83\x59\xc5\x55\x88\x2b\x46\xef\xa4\x94\x99\x03\xd8\x1c\x4b\xb4\x6c\x5e\x9e\x11\x8a\xb9\x5f\x15\xf6\x3f\xe7\x4c\x31\xfd\x22\xa5\x18\x52\x38\xef\xf2\xa1\x2f\x26\xb5\x88\xd1\xef\xeb\x76\x64\x7d\x4b\xa4\x56\x12\x27\x4a\x5f\x83\xbf\x43\x77\xf8\xfe\xb0\x4e\xb0\x08\xf9\xe5\xde\xa5\x9c\xeb\xa7\x4b\x12\x7d\x56\x40\x95\xda\xa8\x10\xb0\xad\xca\x8f\xaa\x84\xb9\xfb\xa7\xbf\x35\xa3\xbb\x0c\x82\x62\x11\xb8\xad\x83\xcd\xcc\x99\xa0\x49\x82\xd0\x46\x0f\xbe\xac\x2e\x0f\x99\x0d\xd1\x04\x99\x6d\x8f\x75\x5e\xb6\x52\x15\x1e\x00\xb8\x9c\xac\x4c\xa3\x2c\x7f\x06\x4b\x5c\x5d\x7c\x2f\x9b\x66\x2e\xf3\x78\x5a\x90\x56\x11\xa3\x02\xfd\xf5\x6e\x9e\xae\x9e\x1e\x1e\x77\xab\xab\xab\xa7\xf5\x26\xf4\x03\x54\x94\x49\xed\xb9\xc3\x75\xde\x7e\xa0\x9f\x7d\x38\x46\x89\x74\x55\x80\x2e\x5b\x1f\x87\x2a\x8a\xd2\xcc\xc9\x27\xdc\x6d\xa7\x4c\xef\xc9\x8f\x55\x54\x51\x04\x22\x5d\xe5\x6f\x43\xe7\x4f\x31\xc5\x11\x3f\x9f\x37\xb7\xd5\x73\x85\xfe\xa8\xfd\x22\xab\x78\x2c\x6c\x70\x53\x41\x3a\xf1\x99\x05\x68\x79\x3b\x53\x1c\x34\xc2\x2e\x6a\xd9\xc2\xaa\x7c\x86\xa2\xb9\x92\x1f\xbd\x6d\x12\x51\x89\x50\xca\x8e\xf5\x40\x9b\x9b\x16\xf6\x41\xe4\x67\x32\x4d\x55\x02\x16\x99\x0d\x97\x4f\x95\xbd\x93\xaf\x50\x5f\x38\xc5\xa3\xe5\x87\xaf\x12\x4b\x30\x6b\xc7\x1b\x72\x22\x9e\x7b\x5a\xd7\xf4\x0b\x94\x4a\x23\xc5\xe2\x60\xe3\x52\xda\x3c\xf4\x23\x16\x53\x6d\x95\xc6\x0c\x41\x05\x6e\xd3\xbd\x7c\x01\xfd\x8a\x79\xdd\x72\x08\xab\x52\x26\x53\x08\xa1\x38\x82\x1e\xce\x3a\x7c\xf6\x33\x46\xf0\x14\xd5\x3d\x1d\xbd\xb0\x7b\xe1\xba\x9d\x35\x0e\xb7\x30\x13\x1c\x9b\x39\xb2\x3e\x0d\xdf\x96\x1f\x8a\xa4\xae\xfc\x5a\xc2\xcf\x16\x2b\xdb\xf1\xe0\x62\x1d\x86\x24\x56\xf8\x52\xb4\x4f\x15\xd6\x65\x5b\x9f\xf0\x00\xc2\xe8\x94\xe1\x09\xe1\x67\x0b\xa5\xf1\x56\x1a\x23\x95\xd8\xf9\x70\x91\x32\xe2\xeb\xa3\x93\xf5\x68\x3e\x4e\x5a\xf4\x7e\x28\x64\xd3\x76\xd3\x72\x4e\x4e\x52\x8a\xb8\x69\x0f\x58\xc2\xaf\xae\x8e\x4d\x3b\x32\x71\x20\x4a\x71\x93\xf8\xbb\xbd\x7e\x70\x3b\xcd\xa9\x2d\x1c\x51\x4a\xb0\x84\x0f\xd4\x9c\xb0\x62\x8b\xa5\x05\x4b\x69\xdf\x07\xf1\x5d\xcf\x4d\xde\x07\x39\x0a\x04\x30\x18\x78\xff\x5d\xa4\xb8\x99\x6b\xe5\x12\x05\x00\x88\xde\xef\xb2\xf6\xb5\x6b\x42\xba\xaf\x0b\x32\xd2\x7e\x9c\xa5\x31\x5e\x95\x57\x46\xfb\x56\x3a\x60\x70\x38\x9a\x5a\xe4\x1a\xfd\xfd\xb8\x3f\x8c\x3a\xfc\xca\x66\x80\xe0\x3c\xa7\xca\xd8\x47\xe8\x73\x8c\xd7\x67\x10\x37\x65\xc1\x61\xd3\x30\x65\x7b\xcc\x75\x35\xe0\x15\x74\x94\x28\xed\x60\x02\xf0\x36\xd1\x88\xf0\xc7\x63\xe3\x54\x0b\xf3\x4d\x17\x7f\xde\xc3\xfb\x70\x04\xb4\x37\xea\x69\x8f\xb5\xa3\x74\xbb\x32\x4d\x18\x40\x04\x8b\xa3\xa0\xac\xaf\x8a\x5c\xcf\x3d\xdb\x88\x26\x19\xc5\xf8\xc6\xe6\x3f\xcf\x62\x4a\xc3\x50\xe9\xc0\xb0\x70\xc8\x1b\xc4\x26\x8d\xc4\xf7\x88\xa6\x26\xc5\x9d\x1a\x4a\xb3\x1b\x40\xb9\x9a\x89\x2c\xf5\x38\xb5\xd5\xb1\xad\xea\xc7\x5c\xe3\xdd\x9b\xdc\x1f\xcd\xb2\x04\x83\xe1\x9b\xb2\x39\x06\x5b\xce\x6b\x38\xb3\x03\x6b\x96\xb9\x50\xf4\xe2\x21\x94\x95\x74\x42\x05\x96\x0e\xf1\x06\xfe\x8f\x3a\xaf\xe1\x14\xc6\x61\x27\x9e\xa1\xed\xf2\x47\x2d\x6b\x73\xa8\x1a\xb2\xbc\xec\xe8\xc4\x32\x1c\x1d\x40\xc1\xb7\xeb\xef\xeb\xdb\x5d\xc0\x7b\xea\x34\x36\x59\x10\xea\x2f\xaa\x12\xcc\x13\x1c\xaa\xfe\x60\x62\xb0\x71\xbd\xcf\xcb\xf6\xb2\xaa\x8a\xab\xea\xbd\x7f\x1e\x29\xa4\xd2\x75\x21\xfa\xba\xb0\x16\x3c\xcb\xe2\x49\x2d\xa4\x5b\xb2\x46\xbf\xf0\x74\x53\xd4\x59\xc4\x71\x53\xec\xd2\x0b\xff\x38\x91\x71\x35\x7f\xa8\x19\x37\xa1\x84\xfb\x55\x16\xed\x8d\xae\x46\xc0\x2a\x9d\x65\x29\x6e\x64\xdb\x9b\xcb\x5f\x77\xdb\x9b\x1e\x3a\xac\x33\xe0\xd4\xf9\x84\x43\x73\x6c\x66\x33\x56\xf2\x2c\x63\x23\x24\xe6\x27\x0c\x00\xad\x01\x22\x5f\xae\xb8\xaf\x5a\xb8\x0d\x9a\xfc\xc3\x08\x13\x59\xe7\xaa\x15\x24\x24\x67\x87\x75\x0c\x7e\x45\xda\x40\x69\xbe\x54\xe6\x8f\xd9\x08\xe0\x02\xbb\xc0\xbd\xa3\xf3\xa4\xef\xa3\x81\x5b\xed\xb8\xa0\x4e\x62\xb4\xbb\xb7\xae\xa4\x73\xe6\x92\x21\x25\x62\xd8\xa0\xc6\x25\xea\xfe\x94\x42\x22\x69\x27\x14\x45\x37\x23\xa2\x9e\x1b\x62\xa2\x58\x60\x3f\xf1\xab\xdc\xe7\x63\xbd\x44\x62\x22\xce\xfb\x02\x5e\x9d\x8f\xdb\x60\x26\xe2\x66\xb0\xd0\xe9\x61\x34\x26\x4a\x0c\xe6\x4c\xf8\x4e\x6d\x2b\x74\xd0\x1c\x15\x0a\x4c\x9c\x59\xac\x7b\xb4\xd0\x04\xeb\x82\x1f\x79\x51\xdc\x57\x2d\xb6\x73\x3f\xfa\x84\x28\x9c\x30\xd6\x31\x04\x7f\x5b\x5c\x74\x67\x9e\x6e\xcb\xb9\x92\x89\x0d\xb7\x10\x6c\x67\x9a\xfc\xb9\xff\x49\x84\x6a\x08\xed\xbb\x6e\x95\xf1\x22\xc2\x9f\x22\x71\x0c\xb1\x6e\x65\xea\xf6\x2a\x97\x8a\x4e\x16\x37\x43\xbb\x18\xad\x7b\x2b\x6a\xf9\x8e\x2d\x97\x66\xd0\x09\x1a\x5e\x87\xe9\x6b\x6b\xa8\x72\x7a\x27\x3a\xaf\xb1\x3d\x94\x97\xcf\x0e\x55\xb5\xeb\x4f\x6b\x0d\x3e\x3b\x75\xac\xcb\xbb\x7e\x17\x30\x8c\x01\x0f\x7b\xcc\x05\x8c\x36\xce\xc9\x42\x66\x58\x66\xb0\xbb\xb7\x73\x1d\xd6\xaf\xb9\x77\x1c\x1e\x91\x62\xfd\x48\x4e\xac\x63\x22\x3a\x3b\x24\xcf\x64\x5a\xd2\x21\x23\x86\x67\x0e\x79\xef\x73\xef\x00\x67\x9d\x9d\x31\x49\x1c\xe2\xea\x45\x36\x1b\xfd\x02\x7b\x39\xbb\xb6\x04\x9c\x75\x38\xc6\xee\xbf\x9d\xcc\x5a\x93\x58\x47\x92\xf3\x9c\xf9\x3f\xc6\x4b\xe8\xf4\xd1\xa4\x69\x16\xd8\xf5\xdf\xab\x16\xe6\xb1\x8e\x49\xb5\x7b\xde\xdf\x1e\x77\xef\x79\x39\xfe\x0e\x11\x45\x08\xdb\x30\x10\x38\x80\xbf\xc2\xc7\x04\xb4\x61\x44\xcc\x30\xc4\x70\x8d\xdb\x49\x41\xc6\x64\x2c\xc5\x13\xbf\x55\xa7\x06\x44\x61\x48\x96\xe0\xca\x84\x35\x73\x27\x18\x6b\x3e\x6d\xc3\xcc\x7e\x9b\x4c\x0c\xe6\xa5\xdd\xb4\xbb\x92\x61\xcd\x36\x8a\x18\x2c\xb6\xed\x3f\xbc\x32\xef\xf4\x5b\x95\xa5\x18\x95\x5f\x06\x7d\x6f\x62\x34\x01\xa4\x01\xfe\xf7\x08\x47\x78\x94\x1f\x7b\x98\xbd\x96\xda\x6a\xe1\x57\x2e\xac\xbc\x21\x61\xf1\xf3\x8b\x33\x89\x2b\xee\x7b\x0b\xed\xd5\x21\xf7\x92\x9a\xc3\x9a\x6d\x4c\x46\x34\x1b\xd3\x1b\x1e\xfa\x49\x0c\x44\x5b\x57\x94\xb8\xed\xe2\xe4\xf6\xb1\x06\xdf\x51\x19\x63\x0f\xa7\xb1\x8b\xb1\x91\x42\xed\x13\x03\x87\x1a\xb4\x6c\xe1\xe2\x63\xa6\x00\x43\x8c\x65\xdc\x35\x40\x8b\xaa\x01\xbf\xbc\x4e\xae\x1c\x22\x49\xac\x4f\x4b\x7a\xf9\xd1\x8b\x31\x41\x0e\x22\x45\x50\xbf\xe3\xb6\x7a\xfe\xbe\x90\x7d\x7f\xbe\x7b\x43\xa4\x63\xe6\x2b\x8e\x53\xba\x07\x44\x86\x23\x65\x62\xf5\xdf\xa3\x1c\x2f\xb4\x10\x47\x14\xdb\xd1\xfb\xaa\xec\x76\xa9\xeb\x02\x46\xae\xc8\x04\x62\xea\x7c\x7a\xbb\x1f\x5d\xe8\x00\x5d\x6c\xce\x86\x25\x40\x12\x8d\xdd\xe1\x3a\xd7\x2f\xd0\x93\x51\x80\xe8\xbe\x61\xf4\x04\x16\x6a\xa8\x97\xa4\x86\x08\x10\xeb\x5c\x6e\xd6\xb5\x26\xd1\x76\xd4\x22\xf7\xc7\x29\x89\xbd\xd0\x22\x16\xe5\xaf\x40\xa3\x0b\x5f\x38\x4a\x0d\x76\xce\xbf\x7e\x98\x7a\x82\x58\x06\x96\x29\x24\x1f\x23\x19\x46\xe7\xed\xc7\x74\xb7\x06\x06\x36\x49\xc6\x7d\xcb\x45\x85\x6a\x02\xcc\x26\xe8\x21\x62\xaa\xb0\xe5\x9d\xad\x16\x4d\x7f\x58\x42\x9d\xe1\xc0\xea\x26\xc4\xbc\x90\x70\xf7\x5b\xaf\xf2\xe7\xbc\x95\x05\x42\x3a\x3e\x2b\x6a\x40\x22\x39\xd6\x1d\x6e\x6f\x2e\x97\xc7\x8d\x03\x7d\x48\xa4\xb3\x77\x7a\x94\x1f\xce\xe5\x77\x02\xdd\x82\x94\x65\xc8\x4d\x58\x3f\x5d\xc6\x09\x1f\xae\x4a\x10\x86\x25\xef\x1f\xe0\xc8\x79\x7f\x29\x6e\x04\x61\x9c\xf5\x48\x70\x9f\x1a\xab\xf1\x7d\xfa\x36\x43\x96\x3a\x2a\xdb\x8d\x37\xf9\x5c\x37\xed\xb0\x54\x42\x26\x00\xeb\x28\x26\xb7\xf6\x2e\x2f\x8f\x0b\x89\x6d\x18\x99\x01\x6e\x6a\x88\xf0\x9c\x59\x80\x2f\x3f\x92\x4c\x9a\xc4\xbb\xd6\x1d\x64\xab\x5f\xce\xf1\xe5\x21\x33\x1c\x9b\xd3\x52\x6b\x38\xb4\x17\xf9\x19\x56\x28\x28\x96\x62\xdb\xea\x29\x7f\x7e\x69\x57\xa5\x79\xaa\x0a\x68\xe6\xd8\x34\x50\x52\x48\x27\x4d\x6d\xf2\x01\xb2\xd5\x2f\x3b\xfd\x1a\x06\x3a\x4d\xb1\x2a\xff\x9f\x2a\x2f\x1f\xab\x29\x7a\x1d\x0c\x49\x5c\xe5\x1b\x21\xe9\x0e\x45\xf1\x89\x12\x42\xf8\x14\x73\x81\xee\xe3\xb1\xae\x7e\xfe\x39\xc8\x1e\x80\x92\x94\x07\xd4\x53\x5b\x6d\xfa\x1e\x0f\x00\x75\x12\x18\xdd\x52\x56\x14\x53\xa7\x32\x02\xc0\x23\x04\xb1\xad\x8b\xbc\x9d\xe8\x9c\x00\x24\x12\x85\xf7\x02\x0f\x66\x71\x57\x0a\x63\x2d\xc3\x1e\xdf\xb7\x5f\xfb\x4f\xdb\x14\x45\x32\xee\x64\xd3\xe4\x6f\x50\x7c\x20\x1b\xeb\x80\x25\x9e\x87\xb2\x0b\x8c\x47\xbd\x2c\xb0\x54\x30\xbf\x43\x5f\x74\xf3\x21\x87\xe6\xe2\x63\x51\x0b\x05\x2c\xa3\xda\x59\x47\xe9\xaa\x36\xe7\xf4\xe2\xce\x14\xee\xc2\x39\x38\x89\x61\x14\xf1\x3b\x04\xe0\x24\xec\x1f\x3d\x5d\x9b\x68\x07\x73\x0e\x18\x9d\x90\x79\xce\xaf\x4c\x19\x8c\x5b\x55\x37\x45\x43\xe0\x3a\x97\x7a\x0b\x93\xcb\x46\xdc\xe1\x28\x9e\x51\xce\xad\xcc\xcb\xe7\xb1\x14\x6b\x7f\xad\x36\x12\x1c\xcb\xb0\x18\x1f\xf4\x48\x9b\x5f\xc2\x51\x9d\x51\x27\x04\xf2\x71\xd3\xc2\xfe\xa4\x7c\xbe\xb0\x38\xd9\x58\x59\x69\x42\x09\xaa\xdb\x42\x9c\x04\xe8\xec\x7b\x63\x30\x99\x5b\x87\xdb\x87\x12\x6b\x82\xb2\x38\x4d\x0c\x2c\x89\x9c\x32\xd1\x4b\x5e\xb6\xdf\x9e\x6e\x67\xc4\x98\x7e\x90\xca\x74\xe0\x3f\x1e\xaa\x7a\x8e\x05\xf1\xc3\x58\x4c\x63\xe6\x1b\x50\x79\x79\x84\x71\xd1\x7b\xf6\xb5\x5c\x44\x68\xb6\x8d\xcd\xc4\x9d\xea\xe6\x4c\x80\x71\xd8\x84\x47\x98\x81\x01\x2a\xd5\xc0\xc2\x2a\x30\xfb\xde\x84\x3b\x27\x9f\x26\x28\xb6\x43\xbd\x7a\x1e\x4f\xf6\x61\x32\x58\x41\x9d\x55\x61\xc8\x95\x50\xc6\x69\xfc\xde\xd8\xcc\x1a\x4c\x65\xbf\x7e\xfd\xb2\xdd\x7e\x09\x7f\x95\x52\x21\x50\xcb\x42\xab\x5f\xb0\xdb\xd1\xc5\x25\xdd\x4c\xba\x83\x6e\x0a\x0f\x82\x38\x93\x49\x65\xa5\xce\x92\x1e\x91\xfd\x55\x36\x97\xf2\xb4\xc9\x12\x86\xda\x18\x1c\x85\xe1\xad\x7a\x05\x17\x69\x8d\xa8\x64\x67\x3e\xa5\x22\x8d\x88\x48\x39\xce\x32\xad\xea\xe2\x10\xf7\xc4\x7e\xcd\xdb\xf6\xe3\x0b\xb4\x0f\xf5\x7d\x35\xdb\x64\xad\x8e\x9d\x98\x4a\x77\x75\xc6\x1b\x23\xcf\x87\x10\x81\xf1\xdd\x76\xf5\xb8\x7b\x7c\xb8\xbd\xdd\x5d\x7d\x7b\x5a\x6d\x6f\x1e\x42\xa7\xcc\x6a\x22\x1d\x44\x56\x1d\x97\x4d\xb5\x88\xd5\x34\x26\x69\x88\xb1\x91\x1e\x11\xac\xa1\x67\x5f\x66\x32\x63\x9c\x67\x41\x17\x8a\xec\xae\x40\x17\xb2\x0e\x9c\x8a\x81\x9b\xfd\x69\x93\xdb\xda\xd8\x8e\xc8\x12\x57\xf0\x06\x6f\xd5\x01\xea\x95\xee\xe6\xe5\xec\x0b\xad\x8e\x54\x34\x71\xd9\x0b\x7d\x63\x68\x1e\xec\xed\xe9\x8b\x4f\xa3\x98\xbb\x56\x5b\x58\x7c\x50\x04\xf1\xb4\xf3\xee\x47\x93\x58\x8b\xb4\x57\xcd\xc7\xe4\xec\x4d\x4e\x45\x9d\x69\x44\x48\x42\x83\x25\xa5\x93\x5a\x98\x54\xbb\x68\x44\x74\x22\x1c\x16\x20\x74\x48\x69\x44\xe3\x0c\x5d\x57\x7d\xf9\xc9\x35\x1a\x3e\xdb\x87\x69\x44\x49\x22\x9d\x74\x5e\xf3\x72\x92\xd1\xd1\x88\xda\x04\x0b\x29\x98\x74\x76\xef\x45\x88\x1c\xfd\x71\x26\x62\x33\xc8\xa2\x3e\xd6\xd0\x38\xd0\xf5\xf4\x2c\x4c\x70\x34\xf0\xa8\x31\xcf\x84\x81\xe7\xd1\x1d\x92\x6c\xc0\x03\x7b\x0f\x9e\x93\xa5\x7f\x6c\x85\x32\x42\x20\xd0\x88\x19\xa0\xa1\xef\x06\x48\xe8\x83\x37\xa8\x1d\x33\x61\x69\x2a\xd0\x88\x0b\x29\x4d\x40\x70\xa2\x23\x90\x2c\x73\x0b\xb3\x60\x93\x46\x5c\x19\x2c\x25\x6c\xeb\xaa\x7c\xee\x4b\x61\x34\x4a\x22\x95\x88\x00\xfb\xaf\x61\xcc\x88\xa2\x51\x42\x62\xe1\x31\x57\xdf\xf3\x46\xde\x82\x3d\x6b\xed\x17\x3e\x21\x4c\x50\x5d\xf3\xaa\x22\x5b\xf8\xd9\x06\x2c\xc5\x6c\x52\xa4\x11\x61\x76\x62\x3a\xe5\x95\x4d\xe6\xc3\x24\xd6\x91\xef\x56\xf7\x5f\x57\xdb\xed\xea\xfe\xf1\xe9\xe1\xb7\xdf\x9f\x6e\xbe\x5f\x3d\x85\x0b\x4d\x63\x1a\x8a\x5e\x97\x97\x5f\xbd\xc5\x15\xed\x8f\x32\x8e\x39\xf2\xae\xdf\x1f\x7d\xf6\xb8\xad\x26\xe2\x47\xc3\x2a\x4a\xa3\x94\xf7\x36\xfc\x97\x55\x13\xa2\x91\xee\xef\x06\x45\x6b\x60\x9f\xa3\x66\x73\xf7\x92\x3f\x75\x3f\xee\x1b\x16\xaf\xcc\xfc\xda\x05\x8b\x93\xc1\x53\xe0\xc1\xce\xa2\xc9\xd9\x68\xa9\xa5\xf3\x5b\x39\x7c\x9c\xd6\x5e\xc2\x20\x2b\x90\x86\xbb\xa9\x0a\xb3\x58\x08\x1c\xef\x6c\x34\x12\x54\xe0\x33\xd4\xd5\xfe\x50\x35\x70\xf6\xb4\x59\x94\x21\x20\x73\x17\xd2\x96\xd5\x79\x73\xb4\xf0\x91\xc4\x69\xff\x1f\xbc\xf8\x7a\x6f\x80\xdd\xdf\xad\x2c\x23\xd8\x07\xcd\x75\x75\x27\x7f\x8e\x09\xd3\x34\xca\x74\x6a\x3d\x29\xf9\x56\x36\xed\x26\xff\xd9\x02\x94\xde\x97\x7a\xfa\x45\x32\x15\x4e\xe5\x63\xf5\xdb\x6e\x73\xb3\x5d\xef\x9c\x58\x51\x48\x34\x68\xa4\xe2\x14\xf5\xaa\x9e\x1e\x1e\xd7\xfd\xdf\x24\x41\xac\xe4\x89\x1e\xd0\xf8\x85\x53\x5a\xe3\xea\xf8\x8f\xdb\xd5\xfd\xe5\x9a\x84\xcf\x6a\x9a\xb8\xb2\xc0\xb1\x7c\x86\xaa\x74\x7d\xbf\x53\x5f\x69\x1a\x69\x1d\xc7\x0e\x0a\x81\xc8\xab\xcd\x11\xf7\x34\x7b\x2c\x76\xfd\xa9\x40\xeb\xb4\xd7\xa3\xfc\x65\xfc\xea\xfb\x6c\x9f\x46\x86\x45\x5e\x41\xba\xad\x3f\x9c\x6c\xf8\xec\x7b\x4c\xc6\xd0\x67\xf3\xf1\xee\xeb\xa2\x4e\xf6\x49\xbc\x4d\x23\xa0\x11\xaa\xeb\x35\xc7\x03\xd4\xbb\x45\x9f\x9b\xe5\xc7\x0a\x89\xca\x44\xe0\xac\x3b\x7d\xca\xbc\x7c\x76\x04\x81\x4b\x79\xf0\x1a\x39\x5f\x65\x6d\x7a\xa0\x3d\x8d\x20\x8b\xc4\x20\xb8\xb2\x2a\x8a\xcb\xea\xb5\x5f\x15\x41\x5a\xe9\x25\x46\xb6\x83\x83\x7c\x38\x6a\x79\x1a\x0d\x02\x0b\x0b\x9e\x2b\x34\x8e\x62\xcb\x92\x9e\x82\xda\x87\x5c\x7e\x89\x59\x7e\x9b\xe2\x38\xb2\x84\xf6\xe7\xc5\x20\x61\x76\xda\x98\x10\xac\x7e\xc1\xcf\x17\x79\x6c\xda\xcb\x97\x5c\xe5\xcb\x39\x61\x37\xd6\xc9\x3f\xee\x90\x57\xf1\x73\x7e\xa6\x2c\x42\x00\x87\x73\x93\x9d\x4c\xf4\x38\x96\xc2\xfa\x1d\xf8\xdb\xa1\xa8\xa4\xb9\x47\x95\xc7\xe9\x09\x08\x89\x18\x0d\x0d\xbe\xfd\xa1\x85\x1d\x8b\xc6\x59\x1a\x8d\x29\x61\x68\x66\xd6\x3f\xca\xab\xfc\x2d\x5f\x2e\xa9\xd3\x98\xa6\x06\x4f\xd7\x3d\xc3\x5d\x5e\x36\x50\xb7\x3b\x9b\xbb\x62\xf1\xd7\xbc\x6c\x1f\x6b\x78\x7b\x42\xd8\xa8\x71\x0b\xd7\x57\x90\xe6\x97\xe9\x29\x84\x73\xb1\x38\x74\xd9\xcb\x8e\xef\x06\x15\xea\x31\x03\x84\xc6\x34\xe3\xd4\xe1\x85\x0c\xfc\x9c\x68\x34\xd1\x98\xc5\x16\x5b\x71\x5d\x7e\xf1\x28\xf3\xfa\xba\xaa\x83\xfe\xc8\xb9\x52\xc7\xb0\x06\xc7\x8c\x4b\xac\xbf\xfe\xc8\x0b\x73\x7d\x1c\x0b\x85\xd2\x98\x65\x04\x73\xc6\x6e\x7f\xfc\xa8\xca\x2e\x12\x97\xaa\x77\x0b\xa1\x31\x53\x1a\x95\xd4\xae\xbf\xdd\x5f\x79\xb2\x4c\x38\xc4\x53\x81\x1d\x21\xff\x0e\x06\x4a\xc2\xe4\x95\x8c\xb9\xe4\x31\x0d\xc8\x16\xac\xa9\x8c\xc0\x7c\x34\x4e\x94\xc1\x75\xe3\xb2\x42\x01\xac\x7c\xa1\x69\x4b\xe3\x54\xb8\x36\x42\x17\x6c\x84\xcd\x28\x4e\xb5\x83\x5d\xe5\x0d\x76\x09\xc0\xcc\x5b\x01\xd3\x07\x99\x5a\x95\x3a\x72\xc9\x7e\x0e\xe9\x5b\xfe\x80\xa4\x09\x0a\xa6\xaf\x2f\x2e\xce\xb7\x89\x68\x2c\x45\x8c\x45\xc8\xde\xda\x0b\x8b\x5f\x17\x72\x46\x5e\xa0\xb1\x34\x16\x67\x6f\xdf\xec\xc9\xcb\xa9\xce\x17\x8d\x15\x75\xbc\x19\xeb\x34\x5a\x66\x77\x41\x19\xe6\xc2\x6b\x5c\xb3\x6f\x6f\xee\x6e\xb6\xe1\x83\x86\x1b\xef\xdf\x2b\x8d\x17\x32\xed\x0f\xa5\x8c\xc4\xa3\x40\x6a\xea\x3f\x3f\x0d\x82\x62\x93\xa5\x14\x42\xb5\xd4\x17\xf9\xa6\x8f\x13\x62\xe5\xfb\xe7\xa5\xf1\x88\xc5\x55\x69\x7a\x17\x81\x33\x37\x09\x20\xd6\x62\x8c\x37\x3c\x6d\x52\xff\x79\xb3\x9a\xc6\x96\x38\x37\x45\x74\x98\xdb\x6d\xb6\xab\x2f\xeb\x41\xf4\xa1\x3b\x9c\x52\x1d\x10\x71\x3f\xfd\x3e\x73\xf1\xb1\xfd\x38\xcc\x27\xa5\xa5\x2a\x96\xbd\x20\x7c\xf7\x1b\x26\x0b\x8d\x4d\x1d\x8f\x5f\x1d\x9f\x91\xa8\xff\x86\xd2\x20\xe1\x60\x66\x52\x4f\xbe\x45\x87\xf0\x4f\xe3\xb8\xd8\x6a\x40\x26\x6f\xf7\xc0\x51\x9c\x6f\xc6\xb5\xa5\x24\xb2\x10\x02\xcf\x6f\x0d\x98\x8b\x8f\x4d\x65\xdb\x77\x59\xc3\x6c\x5c\x9c\x24\x0e\x7b\x54\x95\xed\x4b\xf1\x11\x2a\x13\x88\x17\x1e\xe9\x59\x51\x12\x5b\x81\x92\x69\xa5\xdc\xe7\x58\x8a\xd9\xe4\xcf\xe3\x66\x05\x25\x44\x38\xb9\x17\x17\x9d\x6f\x5c\x1e\x71\x21\xcb\xa9\xbc\x9a\x1f\x4c\xa5\xe4\x7c\x00\x02\x5f\x41\x01\x7d\x08\x7a\xf2\xa0\xfe\xf6\x09\xec\x94\x12\xaa\x35\xf5\x6b\xc1\xaf\x65\xf5\x8e\xf4\xd5\x4d\x5e\x6a\xe8\xe2\x96\x6f\xcd\x94\x05\x4b\x09\x05\xe7\x4e\x7f\x73\x7f\xb3\xbd\x41\x39\x84\xa7\xab\xb1\xbb\x20\x25\xd4\x3a\x45\x12\x07\xdc\xdf\x1c\x15\x2e\xe5\x27\x01\x32\x61\x51\x9a\x4e\xa4\xe1\x10\xe1\x72\xd2\x2e\xa0\x84\xc5\x4e\xc8\xdf\x65\x95\x5f\xaa\x22\xf8\x2a\x53\xc2\x4c\x84\xd5\xea\x10\xfb\x7e\xaf\x5a\x18\x21\x50\x28\xe1\xb1\xec\x7d\x95\xf2\x65\x58\x16\x25\x5c\x01\x36\x71\x54\x2e\xdb\x97\xa2\x2a\xfb\x4d\xe8\xf3\xd5\x88\x24\x71\x84\x2d\xb0\x6d\xbe\x87\x2e\xfc\x2e\xc2\xb7\x26\xa9\xc6\xdc\xee\xf2\x66\xfb\xbb\x13\x00\x9b\xde\xa2\x44\x39\x2e\xfa\xc8\xa3\x29\x1c\xd1\x2e\x58\x3a\xb6\xd6\x89\xec\x7a\xcb\xa2\xf1\x66\x49\xd2\x38\xc3\x3b\x8c\x25\x4d\x07\xd5\xf8\x4c\xdc\xd5\x7f\x4a\x10\x86\x52\x70\x2b\x2c\xce\x82\x59\x1d\x0e\x85\x17\xc8\xff\x34\xc8\x26\x59\x2c\xb2\x9e\x63\xbd\xf2\x44\xc8\xc0\x18\xbf\x70\xb5\x9f\x33\x49\xe0\xbc\x1e\x86\x80\xcd\xf9\xd8\xe9\x04\xcb\x58\x12\x7b\xc9\x94\xc7\x5c\xbf\xca\x9f\x33\xc5\x42\x4a\x64\x24\x1d\x07\xd4\xdc\x0c\x33\x41\x0a\x47\xb6\x0b\x01\xf1\x43\x79\x01\x2f\xb2\xb0\xb3\x1a\x05\x25\x52\x2a\x5c\xf2\x5f\x64\xb3\xf3\x9a\x3d\xbb\xb6\x7b\x80\x30\xa8\xb5\x53\xa2\xbc\x70\x8b\xeb\xda\xbb\xe4\xf3\x09\xfc\x3c\x5e\x5c\x08\x89\x8a\x1d\xb8\xcf\x56\xc7\xba\x75\xda\x6e\xeb\xed\x65\x7f\x42\xca\x22\x1f\x25\xee\x86\xbe\x11\x25\x2a\x61\x58\x68\xf6\xaf\x7d\xf7\x44\x57\xc8\x4e\xba\x5a\x50\x75\x0a\x9f\xd1\x09\x4e\x92\xa9\x21\x7f\x38\x08\x91\x70\x8e\x3a\xfa\xb5\x0b\xb7\x8e\x65\x7b\x27\x7f\x86\xaf\xd3\x91\x13\xcb\x43\x6b\x77\x59\xf4\x7e\x38\x48\x31\x19\xaf\xb7\x44\x2b\xcd\xfd\x7a\x94\x97\x23\xdb\xe6\x70\x58\x5b\x5c\x36\x8c\xfc\xe8\x49\x83\x94\x68\x2b\x9d\x63\x7e\xb5\x87\xe2\x42\xaa\x91\xf8\x09\x25\x46\x49\xf0\x35\xf2\x6d\x3e\x5a\x73\x67\xbf\x0e\x22\x11\x92\x76\xa7\x2d\x18\x94\x58\x28\x01\x95\x21\xdd\xe3\xf2\xf2\xb7\xbf\x04\x6f\xa5\xc4\xca\x14\x8b\x91\x9b\xef\xe3\x2b\xb1\x3a\xc6\x4a\xc4\xfb\x8b\x6c\x9f\x06\xbd\x58\x4a\x63\x06\x18\x86\x36\x68\xdc\x11\xfe\x4a\x74\xe2\x24\x64\x4c\x17\x4d\xe4\x0d\x62\xc6\x42\x8f\xd6\x8f\xa1\xdc\x44\xcc\x41\xe1\xbe\x54\xa1\xd1\x46\x29\xcd\x64\x20\x8e\x3e\x55\xaa\x72\xcf\x23\x90\x07\x27\x13\x93\x52\xc3\x32\x8f\x1d\x47\x3a\xf1\x63\x95\x97\x33\x00\x0e\x0e\x42\x1d\x9d\x7f\xe6\x45\x01\x75\x7e\x0c\x9e\x26\xe3\xf0\x91\xb2\xd4\x09\x1c\x75\x31\xb1\xf7\x8b\x31\xf0\xf3\x7a\x00\x55\x2f\xbe\x79\x94\x41\x8a\x4d\xc1\xeb\xd5\xed\xe5\xc3\xfd\xf2\xd3\xa1\xdc\x38\xb7\xdd\x6f\x9b\xf5\xd3\xee\xcb\x7a\xbb\xbb\x7c\x7a\xf8\x71\x85\xa0\xa6\x11\x00\x9f\x52\x0e\x31\xc2\x5e\xba\x57\x2b\xe8\xb4\x84\x63\xa9\xc7\xc8\xf9\xb2\x76\xfe\x07\xfc\xf2\xe7\x34\x77\x4a\x53\x29\x11\x7f\xda\x7c\x34\x2d\xec\x57\x0e\x96\x17\xb8\xa9\xfd\xb9\x81\xa2\xfb\xc1\xd8\x5c\x6c\x70\xcd\xf7\x83\x04\x50\xc9\x7b\x55\xfc\x9b\xb2\xbd\xce\xa1\x30\x21\x41\xa6\x19\x57\xae\x07\xfc\xed\x12\xa9\xa8\xf8\xc3\x36\xfd\x51\xe1\xf9\xaa\x55\x51\x0c\xf7\x3c\xb3\x34\x72\x29\xe2\x5b\x3e\x14\x22\xa6\x4b\x04\x95\x51\x8c\x78\x0f\xa4\xac\x22\xda\xc0\xab\xf7\xfb\xee\x0c\x90\x53\x8c\x56\xf8\x28\x15\x18\x93\xbf\xc1\x4b\x0d\xff\x85\x9f\x79\xd3\x9e\x79\x8c\x32\xd1\xb2\xff\x92\x5d\x8d\x82\x87\xb3\x59\xa4\x44\x82\x13\xe4\xe6\xf2\xe1\xf2\x69\xbd\x0e\x95\x06\xaa\x24\x37\xc1\x1b\x35\x2f\x8a\x41\xe0\x8a\x52\xcd\x18\xf6\x7d\xf6\x3b\x44\x25\xba\x06\x77\xbf\x5e\x52\x9d\x00\x38\x2d\x9a\x63\xe9\x05\xdc\xfa\xd7\x47\x0b\x86\x11\xf4\x3e\x2f\x87\x0f\x18\x99\x46\xbe\x18\xb8\x48\x2e\x9d\x5e\xb0\xb1\x19\x72\x63\x9a\x16\x0e\x0f\xe5\x5c\x5e\x8a\x52\x48\x9d\x7f\x4b\x6f\xa7\x59\x85\x6e\xda\xe2\x5a\x4d\x41\xb8\x37\x3a\xf4\xaf\xc6\x52\xf1\x94\xda\x54\xe9\xe0\x41\xde\x9b\xd1\x6d\xda\xe0\x33\x4e\x19\xea\xae\xfd\xdf\xff\xf3\x7f\x5f\xab\x16\x8a\x2e\xe9\xfd\x6b\xab\x11\x8b\x88\xc4\x48\xe6\xb2\x38\xaa\xd0\xea\x98\xb6\x9b\x29\x8b\x12\x48\x3d\x9d\xd6\xb1\x94\x7b\x72\xd8\x99\x05\x93\xc5\xc2\x59\xa1\x36\xd0\xae\xdb\x97\x6d\x75\x09\x73\x47\x60\xca\x48\x9a\xf0\x24\x80\xad\xac\x3c\x16\x6d\x17\xd1\x3e\x41\x53\x15\xce\x47\xcf\xc9\x45\xf8\xd1\xd4\x70\x3e\x29\xab\xcb\x62\x84\x2c\xeb\x8e\xbb\x92\x87\x33\xf8\x29\xdf\x64\x9d\xcb\xb2\x2f\x23\x32\x16\x45\x84\x04\xa8\xca\x66\x52\x64\x1e\x65\xc0\x8c\x75\xd9\x9c\x87\x64\x2d\xe2\x63\x87\xcb\x4f\x22\x8b\xa2\x6c\x5e\x77\xc6\x27\x97\xe1\xfb\x12\xe9\x34\x66\xee\x56\xbf\xdd\xdc\xad\x6e\x77\x8f\xab\xa7\xed\xcd\xe5\xcd\xe3\xa8\xcf\x41\x59\xca\x62\xe9\x2a\x72\xad\xad\xea\xfd\x8f\x59\xe1\xcc\x8f\x12\xa9\xcb\x8c\x37\x37\x5f\x4e\xd5\x10\x28\x13\x22\x43\x5c\xca\xb1\xbc\xae\xba\x6b\x98\x4e\x53\x26\x32\x86\xec\xa2\x7d\x5e\xb6\x81\xea\x38\x94\x91\x98\x4c\x15\xaa\xbf\x36\xb2\x6a\x64\xc5\xfa\x3f\xeb\x14\x3b\x12\x4f\x0f\xb7\xeb\xdd\x97\xa7\xd5\xd5\x7a\xf7\xf8\xf4\xf0\xfd\xe6\x6a\x1d\x4a\xc0\x4c\x2b\x22\xbc\x85\x5d\xf7\x75\x43\x50\x33\xae\xf7\x31\x6d\x5c\x37\x44\x1d\xbd\x31\xc6\x97\xba\x7a\x6f\x5f\x6e\x73\x0b\xfd\x89\xac\x70\xd2\xbd\x61\xf6\x15\x47\xb5\x9c\x1f\x32\x13\x09\xd4\x7b\xbd\xaf\x2e\x1a\x47\x36\x0a\x27\x31\x54\x45\xe3\xe2\xe3\x36\x3f\x5c\x57\xf5\x15\xbc\x41\x51\xf5\x96\xb3\x94\x19\xe0\x08\x1f\x47\xa0\x75\xfb\xb2\x54\xfb\x62\x96\x73\x6c\xdd\xf7\xc5\xeb\xcd\xc0\x0e\x0c\x2d\x1b\x66\xb3\x34\x65\x23\xc7\xc3\x2e\x6f\xf3\xc9\xd3\xf4\xfe\x5b\x6d\xb9\x57\xd1\x73\xaa\xc8\x97\x8e\xe4\x64\x4e\xcc\xd6\x29\x8f\x94\x36\xce\xc1\xaa\xcb\xb5\xb0\xfa\x1f\x8e\x98\x08\xbb\x6a\x9b\xfc\x79\x49\x05\x89\xf2\x58\x24\x28\xe4\x9c\x97\x8e\x22\xf6\x58\xe7\x7f\x38\xe9\x9c\x91\x69\x13\xe5\x71\xe6\x74\x5a\xb1\x49\x7a\x9d\x97\xe1\x21\x70\x12\xc5\x01\xe5\x3c\x90\xf1\x3c\x81\x6b\x72\x7b\x38\x89\x78\x90\xcf\x7e\xbc\x71\x95\xff\x38\xea\x4f\x93\xb8\xe2\xc5\xed\xf5\xd5\x3d\x38\x83\x31\x7f\x84\xb2\x08\xcb\x24\x17\x79\x0b\x83\xca\x20\xe5\x2c\x75\x3e\x61\xd8\x2f\x9c\x95\x66\xc2\x10\x93\x20\xff\x45\x7a\x67\xf1\x62\x64\x99\x4a\x39\x8f\x88\xf5\x02\xa6\x97\xb2\x85\xe7\xaa\xfe\x58\xea\x25\x53\xce\xa9\xc0\x0b\xef\x9f\xab\xc3\xaa\x4f\xa6\xc0\xfc\x23\x2a\x8d\x7c\x17\x6d\x73\x90\x1a\xba\x0d\xdb\x29\xd6\x0e\x1d\x1d\x9e\x10\x47\x35\x76\xe1\xf2\xda\x67\x4f\x9f\x6e\x1e\x3c\xc9\x98\xf3\x41\xec\xf6\xe6\xea\xd8\x34\xad\x7c\x06\x33\xec\x6d\x3c\xb1\xe0\xfb\x77\x25\x34\x79\x83\x6b\xa1\xeb\xa6\x86\x11\x69\xe4\x44\xca\x5b\x27\x8e\xfa\x19\xf1\x85\xf2\x94\xa6\xb1\x19\x42\x90\x33\xa3\x44\x94\xa2\xb8\x8e\x6f\x93\x5f\x1d\x61\x5b\xdd\x94\xd8\x06\xce\xdb\x8f\x5f\x46\x33\x55\x10\xab\xf9\x08\x12\x56\xcb\x62\xd2\xde\x9b\x9d\x97\x66\xd8\x19\xb8\xaa\xf6\x79\x39\xf1\xae\xa2\x5c\x68\x92\x05\x68\xaf\x0f\xbe\xfc\x2c\xe8\x96\xc3\x7b\x78\x7f\xfa\xf2\xdb\xc8\x18\x89\x72\x61\xb2\x84\x07\xeb\xcc\xd3\xca\x3d\x97\x5a\x60\xb2\x56\xc8\x06\xf7\x63\x57\x6e\x0d\x9f\xd6\x36\x66\x64\x60\x43\xee\x8f\xfb\x89\xcd\x56\x17\x32\x0b\xac\xab\xef\x6a\xf8\xef\x31\xaf\xe1\x1f\x03\xf4\x71\xfa\x3d\x86\x3a\x1e\xaa\x4b\xe3\xbd\x0e\xf4\xd2\x82\xc2\x41\x64\x22\xcc\xa2\x25\x19\x41\xca\x21\x8b\x30\xe3\xda\x40\xbb\xeb\x77\x77\xf4\x58\x5a\x9e\x97\x36\xe2\xa9\x09\xa4\xe7\x1b\xff\xca\x87\x6d\xf1\x2c\xa6\x9e\x26\x11\x81\x0c\x02\x27\x37\x7f\x9b\x96\x15\x93\x28\x51\x34\x0a\x9a\x4d\xd5\xc1\xcb\x0f\x8d\x1e\x7b\x12\xc7\x80\xbd\x95\xeb\x1c\xc9\xcb\xe1\x83\x31\xd1\xca\xcf\x86\xb6\xe8\x6b\x68\x13\x10\xf3\xfc\x4a\x48\x0a\x88\x1c\xc3\x37\x7a\xd3\x1e\xcd\x90\xb7\x24\xc4\xc4\xd6\x07\x06\x5f\xe4\x5e\x15\x50\xcf\x3d\x69\xfa\x3b\x91\x50\x1e\x63\x8c\xab\xf2\x3f\xf4\x30\xab\x12\xaa\x62\x6c\x1e\xb4\xa8\x6e\x7b\x26\xbb\x5f\x28\x81\x27\x2c\x15\x28\x40\xe7\x1d\x28\xf0\x71\x5e\xca\x43\x17\x99\x84\x73\x73\xa2\x91\xd2\xe3\x8c\x21\x26\x41\x5f\xc2\x13\x83\x44\x1e\xf0\x00\xc3\x3b\x68\x5f\x2a\x73\x13\x4a\xcf\x33\x06\xa3\xff\x50\xc2\x04\xe2\x2b\x71\x3d\x7a\x42\x9e\xf6\x42\x6b\x33\x49\x89\xd3\x2b\x75\xb3\x7e\x87\x24\xcb\x72\x3e\xc6\x3a\x27\x3b\x24\x43\x60\xbf\x68\xd2\xcb\xf6\xa3\x44\x96\x48\xbf\xd8\x63\x80\x38\x51\x48\x5c\x2c\xc9\x25\x32\xa6\xb1\x3f\x71\x58\xf5\x89\x98\x94\x80\x12\x99\x24\xe8\x72\xf1\x05\x25\x12\x8d\xcb\x85\x1e\xa1\xde\x80\xae\x66\x70\x63\x9a\x48\x48\xb0\xdc\xe4\xa4\x36\x42\x2d\xfa\x88\x2e\x3a\x7e\x88\xa2\x4e\xaa\xea\x20\xeb\xb6\x84\x7a\xd2\x29\x4f\x94\xa1\xa2\x17\x61\x5f\xb7\x2f\x58\xd9\xbc\xae\x6a\x14\x4b\xea\xad\x8f\x68\xa2\xa9\xbb\xa8\x1a\x0a\xf9\xe1\xe2\x3e\x0f\x12\xb8\xec\x7e\x6d\xd1\x2b\x34\x7e\x86\xad\xf6\x02\x8e\x31\x11\x9f\x95\x9d\x13\x63\x22\x31\xf8\x32\x7f\x19\x14\x6d\xcf\xe4\x90\x8b\x7a\x37\x27\x8e\x55\x34\x81\x88\xab\x41\x47\xfc\xf1\xeb\x6f\x67\xde\x05\x60\x84\x44\x83\xd6\x79\x5e\xba\xb2\xda\x3f\x8e\x55\x7d\xdc\x3f\xce\x68\xae\x34\x01\x10\x18\x51\x3b\xae\x7c\x4f\x4e\xf1\x47\x6d\xe2\x70\xee\xdd\x62\x80\x77\x7e\x85\xc2\xde\xf3\x12\x41\x1a\xf1\xd8\xf9\x73\x75\xaf\x82\x2b\x5c\xcc\x06\x68\x57\x0f\xdd\xd5\x70\x90\x1f\xb7\x95\x3c\x53\xf2\x4c\x23\xed\xa4\x6b\x83\x85\xd6\xc8\xc2\x81\xa6\x11\x24\x58\xc5\x39\xf4\x52\x02\x60\x56\xe1\x95\x4c\xe3\xc8\x29\x24\xf4\x2d\x33\x5f\x82\x18\x02\xdd\x34\x8e\x12\x2c\xe1\x68\x59\x14\x27\xcc\xcf\x51\xc4\x9a\xc6\xcc\x95\xf2\xd0\x48\xcb\x75\x80\x9e\xa0\x81\x65\x9c\x23\x4d\x29\x38\x87\xd6\x81\x7b\xf6\x3f\xb1\xb6\x68\xca\xe2\x88\xf9\xc4\xa6\x2f\xfe\xc9\x5a\xe5\x6d\xe3\xd2\xda\xf0\x03\x98\xd5\x89\x0d\x4e\x62\x4d\x8b\xae\x18\x67\xae\x89\x47\x26\x73\xc1\x69\xfd\xd6\xbd\x7f\xf3\x85\x27\xcc\xd8\x34\x8d\x29\xa2\xa8\xba\xb5\x42\xcb\xc3\x97\x4a\x16\x28\xaa\x00\x7f\xaa\x0d\xd7\x9f\xc0\x12\x2f\x08\xff\x60\x6f\x4a\x5b\xc8\x81\x30\x1d\xf6\x95\x34\x05\x27\x6a\x92\xb7\xb0\xff\x35\x2f\xcd\x38\x6f\x4b\x85\x15\xc8\x08\x32\xd0\xb4\x75\xf5\x71\x2d\x9b\x97\xb1\x0b\xf8\x78\x45\x48\x33\x62\xb0\x07\xd9\x6d\xed\x9b\xa3\x72\xcb\xd6\xf1\x03\xea\x19\x7f\x83\xa6\x19\xa5\xc6\x53\x94\xf5\x66\xfb\x8f\xcf\x82\xbc\x34\xe3\x09\x56\x15\xd7\x37\x8f\x71\xc2\x7b\x15\xd8\x3e\xd2\x4a\x25\x8b\x53\x3d\x68\xca\xeb\xfe\xef\x99\xc1\xfd\x32\x47\x19\xf3\x8d\x33\xe2\x0a\xc7\x40\x78\x13\x83\xdb\x4a\x9a\x91\x32\xf5\xec\xcb\x15\xb7\x08\x0b\xef\x66\xdb\x4e\x2d\x85\xbf\xa9\x4e\x04\xea\x8f\x9a\xbc\x91\xcf\x35\xc0\xe4\xf6\xe9\x4c\x50\xd7\xd9\xe8\x92\x0a\xa4\xe0\x0f\x12\xf7\xdd\xe1\x4c\xf9\x2d\xdd\x05\x51\xcb\x57\xa1\xbd\xf3\xc1\xd7\xa3\x3a\xf5\x65\x5b\x9e\x63\x5a\x26\xf8\xca\xc9\xa2\x58\x3d\xe7\xe5\x33\xf2\x89\x9c\x8d\x51\x18\x61\x1d\x85\xf6\x45\x36\xae\x83\xbd\x5b\x2e\x6c\xa7\x86\x59\x2b\x86\x37\x60\xf7\xfa\xa1\x77\xaa\xbb\xda\x9d\x09\x6a\x43\x7d\xa8\x94\x02\x01\xa4\x12\xde\x94\xcd\xb1\x86\xc0\x58\xa7\x29\x18\x0a\xa3\xd8\x15\x2b\x59\x9f\xf7\x4a\x52\xb0\x19\x62\x85\xba\xb4\xa1\x5e\x34\xe6\xf7\x03\x6d\xa6\xad\x2b\xa4\xbd\xcb\xda\x8c\x01\x11\x18\x00\xf4\xbf\x44\x44\x40\xac\x6f\x5c\x7d\x95\xcd\xcb\x83\xdd\xbe\x40\x97\xb2\x81\xb9\xf2\x46\x3d\xfd\x48\x6b\x50\x24\xb6\x84\xf7\x9e\x8c\xe0\x0f\xc5\x9a\x24\x7e\x41\xf8\x1d\x64\x5d\x7c\x7c\xdb\x5c\x6d\x64\x21\xcf\x75\x63\x45\xac\x55\x00\xb1\x3d\x55\xef\xba\x2a\xe6\x4f\x39\xa8\xe5\x50\x41\x98\xc5\x4a\xce\x8b\x44\xdd\xbe\x87\x63\x7f\x41\x44\xa4\xc4\x59\xb4\x56\xb5\x41\x83\xb6\xa6\x47\x47\xc2\x44\x82\x85\x0a\x74\x71\xea\x6e\xdc\x0b\xe8\x57\x54\xe6\x3a\x0e\x9a\x1e\x93\xff\x9f\x2c\x37\x82\xd2\x0c\xe3\x0e\x47\xe4\xf8\x02\x41\x3f\x69\xfa\xf2\x0a\x4a\x15\xa2\xb2\xb0\x8f\x38\x76\x74\xc1\xef\x5b\x00\x8f\x09\x9a\xb9\xee\x43\xeb\xf6\x75\x0f\xa2\x81\x87\x72\xd8\x00\x04\x95\x09\x3e\x44\x3c\xc9\x6d\xbe\xef\xf5\xdb\xe4\x54\xf2\x8a\x0a\x46\x7c\x5d\x51\xfe\x5c\xcb\xba\xdb\x4e\x1a\x9c\x4e\xcd\x93\x93\xa3\x09\xc3\x92\x38\x08\xcb\x7a\x6b\x67\x30\x3e\x92\x1d\x6b\x7f\x52\xc1\x44\x86\x22\xb8\x7d\xcd\x77\x26\x8a\x38\x7b\x9c\x3c\xf2\x2a\x87\xb2\x00\x5f\x51\x9e\x15\xe4\x04\x4f\x0c\x62\x9d\x03\xe8\xb5\x2c\xc6\x02\xf6\x54\x24\x32\x72\x24\xc1\xa2\x6a\x4e\x98\x79\x7e\x4c\x4a\x38\xf3\xc8\x41\x59\x3f\xef\xe2\x5d\x5e\x1e\xe6\xc9\x94\x48\x55\x84\x31\x67\x6f\x32\x33\x7c\x87\x88\x94\x74\x82\xad\xc3\xa9\xff\x45\xfe\xbd\xdc\xa8\xf7\x9f\xc9\x58\x46\x82\xf7\xa6\x0e\x19\x78\x7f\x43\x55\xec\x6a\x10\x55\xd9\x45\x1b\xfb\xbc\x5c\x95\xe6\xbe\x72\x90\xa8\x30\x46\x6b\xc0\xbd\xc4\xc5\x58\xf7\x70\xe2\x3a\xf7\x69\x20\x77\x76\x23\x13\x26\xf5\x24\x5c\xf4\x9b\xe8\x95\xf6\xa9\x80\x24\xc1\x6d\x17\xbc\xa0\x67\xb7\xba\x0e\x7c\x40\x2a\x20\xe5\x69\xda\x0b\x05\xd8\xfc\x79\x20\xaf\xce\x4b\x86\xc2\xc6\xce\xd5\xc7\x01\xa4\x42\x7e\x15\x0e\x92\x58\x3a\x45\xc9\xc3\xb6\x1a\x64\xa1\xe2\xfe\xc3\x1c\x9c\x55\x57\x2d\xdf\x91\x6f\x3d\x3b\xb7\x50\x09\x0b\x54\x83\xeb\x3c\xd4\x67\xef\xab\xed\x4b\x3d\x20\xf9\xff\xe5\x9f\x4f\xc8\xc3\x84\x95\xae\x8a\x8d\xcd\xa0\xfd\x3e\x3c\x8b\x2c\x8a\x33\x2c\x3a\x5e\xdd\x5e\xfc\x45\xfc\x5b\x16\x71\x1b\x3b\x1a\x51\x55\xc3\xaf\x65\xa5\x5f\xab\x63\xdb\x9c\x38\xb2\x8e\xb9\x6d\x34\x8b\x12\x12\x0f\xf6\x3d\xdd\xd3\x76\xc8\xec\xe9\xaf\xcb\x22\x13\x23\x02\xf8\xf7\xea\x78\x05\xb2\x18\xb7\x96\x32\x62\x08\x4a\x61\xe6\x8d\x87\x38\xcf\x93\xad\xc9\x55\xd2\x98\xa1\x68\xde\x77\x8c\x7a\x31\x8e\x5c\x28\x04\x67\x2c\xd6\x58\xe0\xa8\xca\x77\xaf\x6e\x15\x0e\x28\x67\x97\xf5\x0c\xed\x0f\x90\x87\xaa\x1c\x6c\x9b\x68\xc6\x33\x15\x98\x72\x5d\x48\xb0\x28\x33\x48\xb3\x24\x72\x60\xc7\x5a\xe6\x25\x96\x8e\x27\x69\x78\x96\x64\x29\x02\x43\x37\x27\x2a\xa7\xb3\xd3\x18\x07\xa5\x0c\xae\xe5\x17\x1f\xeb\xbb\x87\xfb\xed\x2f\xa3\x8c\xe5\xa4\x13\x93\x25\xa0\xb1\xe1\xb9\x81\xf6\x78\x98\x41\xc3\xc2\x10\x9b\x60\xd1\xab\xef\xa7\x7c\xf6\x26\x05\x03\x66\x9a\xa5\xdc\x59\x1c\xef\xde\xba\x65\x5b\xb6\x70\x01\xa8\xcc\x88\x5c\xd3\xd1\x22\x90\xa5\x89\x8a\x20\x28\x0a\xb6\x6d\x01\x83\xa0\xfe\x79\x56\x02\xcd\x44\x24\x35\xf3\xe0\xd7\x17\x68\x4f\x3b\x74\x53\xa4\xe7\x38\xa6\xcf\x04\x67\x41\x0f\xf4\x6e\xee\x5c\x4d\xb3\x2c\x96\xbd\x42\x38\xd6\xc7\xba\x10\xf6\x7a\xb4\xd4\x67\x19\x61\xa9\x13\x65\x74\xd3\xc6\xe9\x6e\xb9\x3d\xf1\x6f\x8b\xf7\x39\xa3\x8e\x4f\xd4\xc0\x98\x32\x4b\xb3\x8c\x3b\x21\xb8\x97\xaa\xe8\x5e\xfe\x66\x8e\x05\xc8\xb2\x2c\xc5\x7a\x58\x5d\x1d\x0b\x68\x5b\x18\xaf\xeb\x59\xa6\x29\xa2\xbd\x65\xd3\xe4\xcf\xe5\x75\x0d\xf0\x04\x28\x0b\x3b\x85\x25\x86\x3b\x9d\x59\x81\x19\xf4\xea\x69\xbb\xbb\x5a\x5f\xde\xdc\xad\x6e\x37\xd7\xab\xcb\xed\x43\x28\xe2\x67\x92\xc4\x4e\xd6\xa3\xfe\x70\x2e\xce\x33\xc0\xd5\x74\x01\xcb\xa4\xcd\x40\x79\xb3\xc2\x59\x3b\x27\x53\x24\x71\x35\x29\xe3\x24\xea\x26\x12\x91\x61\x4c\xe2\xfc\xda\xdc\xf5\x87\x99\xba\x18\x9d\x65\x4a\x26\x6a\xa8\x55\x69\xe8\x65\x76\x69\xa6\x0c\x47\x7f\x16\x5d\x95\x4d\x5b\xeb\x21\x3a\xcc\xb4\x60\x58\xbe\x59\x99\x89\x01\x07\xcd\x74\xf7\x53\x7b\x57\x8c\x11\xc3\xb1\x27\xb7\x4f\xbf\x5d\x67\x8e\xb2\x83\x2d\x2f\x28\xef\x8f\xfb\xd9\xa4\x31\x91\xb2\x32\xa8\x36\x14\xf6\xa1\x5f\x8e\x8c\x70\xfe\xe2\x5f\x1e\x7e\xeb\xff\x04\xce\x4f\x75\xb0\xbb\x41\x7a\xfb\x99\x5a\x4b\x06\x0c\x9c\xef\x53\xde\x1e\xf1\x2e\xee\x74\xf0\x26\x0a\x67\x84\x0c\xb0\xec\xe5\x58\x8d\x7d\x60\xb1\x7a\xbc\xe9\x47\x58\x33\xe4\xe5\x3d\x50\x3c\x1c\xb5\x51\x3c\xe1\x2c\xdd\xff\xd4\xcb\x45\x85\xcc\x46\x90\xe9\x41\x0f\xe0\xf1\x78\x38\xfc\xb9\xf5\xef\xf8\x54\x71\xb2\xf8\x4f\x38\x7d\xa2\x50\xfa\xed\x1f\x47\x69\x6a\x59\x3a\x1e\x79\x3f\x5f\xac\x62\xb1\x47\xea\xed\x0c\x34\xba\xce\xb1\xfd\xb8\x7b\xe9\xad\x2e\xa9\x8c\x4c\x22\x1c\xa6\xf8\x90\xd7\x1f\xbb\x51\xb1\x57\xc6\x89\x40\x26\xe3\x7f\x9c\xad\xc1\xad\x6c\x5a\x0f\x77\x0f\x03\x32\x89\x84\x88\xbd\xfc\x79\x55\x57\x87\xe6\x11\xea\xed\xcf\xfe\xa0\x12\x6e\x42\xe3\xae\xd2\xd3\xa7\x97\xef\x93\x8c\x95\x71\x16\xe0\xd8\x04\xea\x96\xeb\x8b\x6a\x90\x40\x9e\x0d\x26\x3c\xb2\x59\x78\x38\x3f\xaa\x7a\x86\x01\x95\x34\xe2\x54\x0d\x0a\x6d\xdd\x5a\x34\xa5\xef\x48\x96\x2a\xdc\x24\xda\x8f\xfd\xec\x45\x94\x3c\x72\x2a\xb5\xd2\x98\xaf\x55\xdd\x80\xeb\x0b\x4c\x66\xaf\xe4\x5a\x20\x42\xb2\x35\x30\xd6\x12\xa1\x32\x11\x06\xa7\xea\xd3\x7a\xac\xa7\x4a\x65\x92\x09\x14\x3e\x45\x8d\x1e\x5f\x52\x0f\x35\xb1\xe1\x9f\xb3\x73\x20\xec\x12\x32\x4d\x2c\xd2\x39\xf4\xe0\x89\x37\x8a\x4d\x26\xef\x81\x4c\x53\x9d\xca\x5e\xb8\xf7\x58\x8c\xa9\x9f\x0b\xb5\x5b\x99\x2a\x86\x3b\xd0\x7f\x8f\x50\x7f\x3c\x16\x55\xeb\xf5\x62\x5c\xac\xd2\x7f\xc9\xb4\x12\x2d\x53\x65\xd0\xb9\x1c\x73\x87\x2e\x5e\x3e\xa5\xf5\x9e\x31\x47\x3b\xa2\xd7\x4a\xf8\x67\x31\xce\xf1\x9f\xf2\x8e\x2c\x54\xaa\x24\x46\x05\x22\x34\x06\xad\x65\x69\xa1\x7e\x28\x27\x48\x19\xa9\xb9\x30\x8e\xbf\x20\xdb\x97\x2e\x8a\xd8\x59\xd1\x1f\x4b\x49\x1c\xe0\x4a\x23\xe3\xc4\xd3\x8c\x48\x6a\x99\x3a\xaa\x88\x03\x6d\xde\x8e\xb0\x19\x7e\x84\x61\x6a\xe4\xdf\xd4\x2e\x04\x79\x61\xa0\x74\x38\x0a\xd9\x7d\xd7\x75\x55\xfb\x64\x47\x2f\x58\xb2\x2c\x9b\x9f\xcd\xa6\x80\xd1\x0a\xfb\xab\xef\xb2\x78\xbd\xa8\xaa\xd7\x49\x98\x2b\x8d\xd1\x98\xc7\x1f\x5c\x6f\xe7\xa4\x97\x31\x9b\x23\x06\x38\xc5\x66\x6d\x5b\xb7\x0e\x88\x3c\xc6\x5a\x4a\x88\xdc\x86\x79\x05\x5d\x84\x51\x9a\x66\x53\xca\x43\xf3\x52\x9d\x69\x27\x48\xa0\x8e\x6d\x24\xb1\xee\x37\x2e\x56\x86\x01\x4c\xe3\x1c\x43\x54\xef\xeb\xf0\x3d\xa0\x30\x78\xdf\x75\x69\x40\x91\x43\xe9\x8b\xa6\x67\xbe\xc6\x12\x8d\xb8\x3c\xf7\x16\x04\xa4\xcd\xa2\xfa\xcb\xb9\xff\x12\x4b\x1a\x31\xfd\xa4\xb6\x29\x35\xb4\x97\x53\x2b\x0a\xd0\x2d\x18\xe7\xee\x36\xb9\x7f\x2a\xe2\x3a\xf5\xb9\xee\x4d\xd3\x1c\x03\x42\xe0\x11\xea\xa1\x88\xae\x22\xc9\xb1\xf8\x9a\xeb\xea\xf1\xad\x5d\x8f\x6a\x37\x2a\x02\x86\xeb\xf7\xee\x58\x1e\xa4\x7e\x7d\x42\x85\x42\x2c\x35\x2d\x34\x1e\x54\x1c\x51\x8c\xb4\xbe\x8f\xd5\x4f\xa6\x71\x5b\xf8\x09\x8a\xf0\x08\xcb\xd3\x97\x5f\x2e\xc7\xef\x87\x62\x40\x22\xdd\x63\x79\x7d\x80\x81\xa4\x56\xd7\x1e\xbe\x3e\x5d\x24\xfc\x27\xb9\x74\x4e\x67\x79\xa9\xab\x7d\x5e\x3e\x3f\xc9\xd2\x54\x7b\xdf\x55\x5d\x88\x9f\x14\x37\x0c\xeb\xa8\xad\x7c\x85\x5e\xb0\x95\xaa\x84\x40\xec\x74\xd8\xdf\xa1\x69\xaf\xf2\x3e\x59\x54\x09\x28\x24\x55\x96\xe7\xc4\x37\xa9\x4a\x63\x01\x3e\xac\xb9\xec\x6e\xd5\x31\x77\x81\xe0\xc2\x4b\xac\x52\xee\xaa\x98\x4e\xab\xf2\x0c\xaf\xdd\x8f\x15\x92\x60\x57\xaa\xee\x82\x86\x59\x34\xa3\xb2\x58\x60\x95\xb1\xcb\xbb\xdf\x77\x0b\x6a\xbe\x54\x65\x42\x47\xbd\x79\xb9\xec\x1d\x35\xa9\xca\x14\xb3\x73\xf4\x5a\xb3\x9c\xe0\xaa\xcc\x46\xca\x55\x3d\x2d\xd4\x35\xd4\x38\x11\x46\xd9\xb2\x92\xc4\x69\xac\xf5\x30\x8d\x89\x5e\x31\x55\x92\xca\x70\x03\x73\x7b\x22\xd3\x7e\x92\xd3\x8f\x22\x6b\x25\x0d\x4f\xc6\xe2\xd7\xeb\xa7\x4b\x42\xe8\x49\xf2\x32\xfe\x88\xe2\x4e\x12\xa7\x3a\x40\xf9\x45\xee\xe1\x09\x9a\x63\xd1\xae\x4a\x73\x0f\xef\x5f\x46\x8a\xc6\x7f\x5b\x22\x91\x29\xa5\xa4\xc3\x20\x97\x1a\xca\x6e\x0f\x3d\x5f\x18\x54\x3a\x86\x38\x1b\x64\x00\x4b\x9c\x4e\xd3\x7b\xa7\x13\x83\x08\x16\xb9\x87\xd2\x5c\xc3\xfc\xd5\xd1\xa0\xf0\xd5\xc9\xcb\xbc\x7d\x28\x51\x26\x6f\x5e\x29\x56\xda\xc6\xb8\x79\x4b\x55\xd5\xed\xa8\x0c\xac\xb4\xe5\xd8\x13\x77\xce\xbf\x60\x5c\x91\xb7\x3a\xd6\x3a\x2f\x9f\xaf\xf2\xe6\x70\x6c\xe1\xa2\xb7\x29\xa1\xca\xc8\xd8\x4d\x26\x99\x37\x70\x27\x7f\xde\x1f\xf7\x17\x30\x07\x70\x29\x03\x1a\x81\xa4\xe8\x3c\x9d\x64\xb3\xa3\xa0\x63\x7c\x94\x97\x7d\x37\xea\x93\x22\xbc\xb2\xcc\x86\xcc\x19\x1d\x49\xeb\x66\x39\x79\x56\x56\xb8\xc6\xb1\xca\xeb\xf6\xc5\x71\xcc\xc2\x11\x70\xcd\x6d\xe4\x1a\xe7\xe6\x26\xfc\x1a\x1d\x29\xab\x78\x8f\x62\xfd\xd6\x40\xbd\x19\x64\x4a\xa8\x8e\x69\x1c\x5c\x45\xbc\x8b\x5a\x1d\x4f\xbf\x54\xc7\xa9\x73\xd6\xc9\x9b\x27\xe8\x9e\x71\xb7\x9a\x2e\x02\x3b\x74\x6c\x62\xe3\xa4\x20\x71\xd1\x75\xf8\xbb\xc5\x37\x56\x13\xe3\xdc\xb9\x4a\xf8\xd9\x76\xb3\xad\x07\x2b\xdd\xb9\x16\x16\x0a\xe7\xfb\xb1\x94\xa4\xb6\x6f\xed\xe5\xe5\xf3\x09\xf3\x53\xb3\x28\xc6\xed\x7c\x75\x75\xf5\xb4\xdb\xfe\xfa\x65\xf7\xfd\xb2\x3f\x14\x6b\xc4\x01\xdf\xc3\xfb\x37\xf4\x11\x01\xb3\xfc\x2c\xa6\xeb\xa5\x66\x9c\x22\x9d\xca\x7a\x2f\xe8\x49\x07\x56\xb3\x8c\x23\x50\x02\xc5\xe4\x1f\xec\x58\xb6\x72\xf8\x8d\xcc\x64\xd8\x9e\x38\x48\x24\xa2\x7c\xa9\x8a\x59\x57\x5b\x73\x15\x1b\xdf\x67\xfc\xc4\xb5\x9f\x6a\x6e\x49\x22\x11\x1e\xa9\x8a\x5c\x63\x11\xf7\x4b\x70\xf5\xfc\xa5\x1f\x23\x11\x72\xd9\xc4\xc4\xf7\x75\xfd\x81\x84\x8a\x24\xeb\xbb\x24\x53\x8b\xe3\x30\x44\x0b\x5c\xe6\xb6\x2f\xb0\xfe\xa9\x61\x52\x62\xd2\xa9\xd2\x9e\x8b\x68\x8c\x57\x37\x9e\x7e\x3a\x35\x12\xa5\xdc\xf6\x79\xe9\xc3\x90\x99\x35\x07\xd5\x82\x3a\xca\xf4\xa0\x81\x78\x95\xfb\xa0\x24\x0c\xc9\x98\x96\x49\x2f\x6a\x50\xd9\xf6\x52\x1e\x42\x3f\xce\x0f\x91\x91\xc4\xf2\xc0\x01\x6a\x5b\xd5\xfb\x8d\x57\x2f\xf5\x32\x20\xe8\xb5\xd4\x8f\x04\x30\x9e\x09\x9d\xd7\x80\x3e\x28\x7b\xa8\x6f\x46\xa7\xf2\x00\x46\xf3\x96\x37\xd5\x9c\x46\xa6\x25\x75\x32\x30\x3d\x35\xff\x2e\x9f\xf9\xcf\x51\x2d\xb9\x13\xf0\xaf\x41\x9a\x5d\x2e\xfa\x33\xa7\xb1\x49\x42\x6e\xac\x8f\x5d\x48\xe0\x4a\xf7\xe3\xb8\x52\xcb\x54\x69\xa7\xa4\xa6\x8e\xcf\xbb\x42\x36\xed\xce\x5b\x68\xf5\x97\xa8\x64\x84\x55\x14\xec\x06\xad\x4b\xb3\xcd\xf7\x40\x78\xd4\x1f\xd6\x96\xa7\xa1\x25\xea\x49\xa0\xab\xf6\x16\x9f\xee\x38\xa8\xd4\x3a\x06\xea\x31\x62\xbe\xea\xea\x3a\xd5\x7f\x92\xbf\x86\x58\x44\x6b\xce\x11\xe4\xff\x5e\x43\xd3\xf6\xcb\xaa\xd6\xdc\xf9\xa3\x76\x8b\x16\xe8\x97\x32\xd7\xb2\x70\xae\x90\xd3\xdb\xa4\x53\x85\xe8\xbd\xf2\xb8\xf7\x5c\xce\x9d\x57\x70\x1d\x7e\xaa\x16\x80\xfc\xc9\x0b\x68\x5f\xf2\xf2\xf9\x47\x55\x17\xe6\xf2\x18\xba\x17\xda\x50\x70\xa6\xf3\x7e\x77\xeb\xfd\xc9\x3f\x6d\x71\x69\x63\x14\x71\x66\x52\x07\xa4\x54\xfa\xba\x7b\xff\xad\x90\x68\xce\x83\x9b\xd8\xb7\xc3\x99\x77\x0f\x32\x8d\xd5\x06\x87\x27\x68\xa6\xfa\xda\x7e\x8c\x8d\x12\x34\x54\x50\xf9\xf3\x85\xec\xab\xda\xda\x32\x6b\x92\x90\x9d\x2f\xd3\x81\x4e\xc9\x61\x93\x7d\x56\xdb\x24\x45\xa0\xdb\x5b\x20\x7d\xba\xbf\x9b\x48\x58\x1a\x24\x8b\xbd\xfb\xea\x76\xfb\xc3\x79\x46\x1a\xd6\x8f\x52\x4e\x88\x69\xef\xd0\x5e\xd7\x00\x8f\xc5\xb1\x99\xbf\x7a\x26\xd2\xce\xcb\xe1\x19\xda\xdb\x50\x01\x30\x24\x8e\x52\x1b\x2c\x70\xd0\xe2\x65\x72\x65\x86\x10\x81\xcf\x35\x08\x67\x4d\x44\xca\x27\x01\x07\x5b\x4c\x1e\xa7\xde\x2f\xd4\x10\x1a\x3b\x1c\x55\xfe\x5c\x42\x7d\x5d\xc8\xe7\xe9\x4d\x36\x84\x3b\xe5\x94\x06\x3b\xa5\xb9\x9e\xb3\x9a\x0d\x11\x1c\x71\xd7\xa5\xdc\x43\x35\x7d\xdf\x0c\x81\x2c\xe9\x76\x88\x3f\xf2\xb2\xdd\x95\xd5\x7b\xf8\x95\x34\x35\xf8\xe4\x9a\x97\xea\xfd\xb1\xaa\x8a\x69\x40\x1c\x06\x09\x92\x25\x81\x74\x8c\x46\xf1\x3d\x86\x6d\x7a\x05\x54\x26\x6e\x23\x7f\x39\xa2\xd8\xfd\xf6\xeb\x6c\x00\x8b\x41\x25\x43\x6d\x63\xb2\xa9\x18\x96\x65\x48\x10\x0f\xb0\x1e\x6c\xb9\xdc\x5c\x3e\xf8\x8d\xd9\xf4\xe3\xa0\x87\xd4\x85\xf6\xd6\x24\xa7\x58\x9c\xc7\x86\x47\x29\x36\x5d\xfb\x72\xda\xfa\x67\xde\x8e\xe0\x6a\x27\xc0\xb5\xf9\xe7\x63\x19\x8d\x91\xca\x3b\x6c\x0a\xed\xda\xca\x5b\xd4\xcc\x46\x4b\x37\xfa\x31\x7f\x46\xe6\x55\xb8\x76\x6e\x19\x0a\x44\xf8\x6d\x75\x22\xf8\xeb\x87\x24\x59\x86\xf9\xe1\xef\xcf\xcf\xa6\x96\xcd\x0b\xc6\x6b\x7f\x26\x56\xf7\x79\x87\xcb\x24\x2a\xc1\x36\xc9\xfa\x90\x3f\x43\x79\x29\x6b\x38\x6d\xf5\x9f\xab\xe3\x2d\xe6\x53\x26\x31\xa9\x0a\x2e\x5b\xb2\x28\xee\xe4\xcf\xcb\xaa\x99\x11\x81\x4d\x4a\x9c\x18\xba\xc9\x35\xec\x9e\xe7\x36\x21\xd4\xa4\x3c\xc1\x06\x54\x77\x2b\xa7\x8d\x1d\x93\x72\xa7\x64\xd5\x40\xfb\xed\xc6\x7b\x60\x2f\x42\x7b\x4d\x9a\xb8\x5e\xa6\xbf\xbe\xeb\xe1\x66\x8b\x2e\x06\xc1\x4a\x5b\x75\xd8\xf6\xf5\x53\x93\x19\xc2\x07\xfd\xf4\xb3\x3d\xc4\x51\xb2\x60\x64\xc4\xb0\x2e\x73\xf1\x14\xf0\xfb\x46\x8a\x0c\xb7\x74\x3f\x1f\x64\x7d\x75\xf1\xf0\x3e\xf7\x55\xa3\x46\x47\xae\x46\x81\x92\x31\xaa\x00\x07\xab\x6e\x66\x37\x4a\x27\x14\x71\x40\xb8\x81\x78\x13\xe4\x73\xc2\x25\x46\x83\x34\x2e\x98\xa8\x41\xb7\x57\xa0\xf2\x76\x04\xc0\x9f\x7d\xbd\x4d\x3c\xbe\xfe\x38\xb9\xbd\x86\xcb\x38\xc8\x4e\x38\xb3\xc0\x55\x5d\xcb\xfe\x55\x34\x42\x04\x54\xc6\xaa\x69\xb6\x23\x28\x92\x31\x3a\x8e\x7a\xc3\x37\x6c\x8d\x3f\xbc\x41\x5d\xe7\x66\xfe\x70\x8d\x96\x90\x05\x52\x06\xc6\xf5\x83\xfa\xf8\x2c\x83\x1c\xbf\x7e\xfe\xd3\xa0\x59\x42\x43\x5f\xa6\x6c\x1f\xde\x67\x3e\x82\xd4\xd8\xd8\x91\x42\xd6\x97\x4f\x24\xfa\x5a\x95\xf0\xa1\xab\xbd\x9a\xfc\x4a\x9b\xc4\xc1\xa5\xe3\x1e\xde\xbd\x58\xa8\x8f\x34\xff\x12\x40\x0b\xa2\x54\x11\xdb\x43\x86\x9f\xc0\xae\xdb\x97\x3e\x19\xf7\x63\x62\x45\xb5\xfb\x96\xa2\xdb\x64\x5d\x28\x72\x71\xfc\x58\x8f\x4a\xc0\xe7\x50\xa8\xd3\x6f\x23\x11\xc7\x35\xaa\xdb\xa8\x8b\x3b\x59\x1e\x65\xe1\x64\xf6\xff\xac\x1a\x39\xb9\x33\x40\x04\x45\x4d\x4c\x27\xaf\x77\xdf\xe3\x64\x80\x28\x67\x1b\xd9\x7c\x94\x7a\x70\xe3\xa1\x40\x69\x8a\x3c\xab\xcd\xfa\x71\x52\x6f\x01\x9a\xc5\xd8\x09\xbe\x80\xe7\x67\x59\x4f\x0f\xa9\xd8\x57\xcb\x7a\xda\x6e\x90\xbc\x5a\x9e\x8b\x40\x6d\x12\xba\xe5\x01\x3e\x3b\x9d\x32\x40\xad\xc4\xf6\x09\x98\xbc\xdd\xe8\xaa\x86\x45\x51\x64\x3f\x98\x99\xde\x03\xf3\x4a\x7a\x00\xfc\xf4\x74\x9c\x5b\xec\x20\x74\xaf\xf9\xba\xd1\x75\xf5\x3e\x37\x6d\x98\xdd\x7f\x2e\x2d\xee\xa0\xd2\xf4\x0c\x0d\x7f\x83\x27\xc3\x12\x1d\xc7\x3e\xf4\xbc\xd1\x88\x93\xb9\xcd\x9b\xf6\xe2\xe3\x46\x57\x4f\xc7\x02\x6e\xce\xa4\x31\x90\x2a\x06\x9e\x51\x19\x98\x02\xb3\x2b\x16\x54\x61\xa2\x73\xf7\xb1\xd8\x78\x1f\x6f\xe9\x20\x12\x27\x51\xb2\x85\x06\x71\x77\x2e\xf5\x08\x99\x33\x3a\x3c\x8d\xfa\xa4\x67\x26\xe2\xbf\xf8\xbf\x97\x4f\x2e\x68\x3a\xf2\x4b\x3a\xf5\xc7\xa1\x90\x11\x81\x15\xfa\xad\xd4\x23\x1f\xbf\xc5\xb3\x65\x54\x11\x98\x90\x8a\x55\xbe\xc8\x98\x81\x8c\x67\x62\x70\x65\x77\xd5\xd4\x89\x51\x6a\x58\x32\x21\x4b\x2c\xd0\x9e\x96\x1b\x1c\x42\xc2\x41\x48\xa2\x2c\xac\x1e\xa7\x3c\x16\xd0\xb1\x52\xbd\x4a\x73\xa8\x7d\x0e\x8b\x1c\x74\x7b\x44\xdc\xcb\xac\x8d\x61\x48\xb3\x13\x19\xe9\x84\xb5\x43\x4d\xcb\xcb\x5d\x5c\xf7\xd6\x55\xa3\xa1\x36\xc3\x3a\xcc\xa1\x90\x7a\x5c\x02\x1a\x57\x1d\x01\x84\x8d\x7a\x25\x2c\xb0\x76\x92\xca\x00\xc8\x88\xb0\xc0\x7c\xdf\xd6\x20\x9b\xe3\x39\x60\x18\x80\x62\x58\xd3\x73\x2e\x2b\x6f\xcd\x13\x98\x4d\xf5\x93\xc5\x59\xf8\x8d\x36\xa2\xca\x13\xdb\x2f\x8e\xc5\xeb\x5d\x6e\xbe\x74\x8b\xf4\xa5\xac\xe7\x6b\xe3\xbc\x39\x03\x96\x48\xa2\x27\x9d\xe3\x13\x05\xf0\xd1\xee\x09\x56\x71\x8c\x5c\x55\x55\x9d\x98\xf6\xba\x21\x36\xd2\x1a\x11\x2c\x32\x98\x52\x5e\x56\x66\x4e\xb4\xb7\x71\xe4\xdc\xf9\x6e\xae\xee\x1e\xee\xd7\x41\x62\xc6\xc6\xb1\x48\x1d\xba\xb7\xc9\xcb\x65\xbb\x61\x6a\x63\xa6\xf0\xdd\xf3\xb2\xf7\xfb\x43\x51\x7d\x00\x4c\xe7\xe0\x72\xa8\x63\x63\x06\x18\xfe\x7a\xdf\x3f\x4f\x91\xed\xbf\x3d\x49\x0c\x4c\x98\x45\x3e\x40\x9c\x0a\xc9\xcd\xae\x26\xa5\x28\xbf\x71\xf1\xf0\x38\x9b\x26\x36\x16\x29\xc8\x11\x75\xf4\x1a\xc2\x32\x6d\x49\xac\x30\x32\x3c\xd4\xa8\x77\x80\x28\xe0\x79\xa9\xc1\x52\xe5\xf2\x96\xc6\xbd\xb9\xb8\x8c\x4e\x6e\x7a\x78\x83\x2c\xd5\x20\xe3\xa1\x48\x30\x13\x99\xb2\x14\x48\xd0\xc3\x40\xcd\xb5\x11\xd6\xc5\x52\x48\xb5\xe8\x97\xf2\x1f\x00\xaf\x6c\x02\x31\xf5\xc3\x98\x48\x30\x00\xfb\xcd\xff\x2f\xe2\xe1\x04\x2c\xcb\x94\xe8\x5b\xf2\xe3\x92\x9c\x4d\x58\x9a\x9a\x11\x6c\x75\x03\x6d\x7b\x0e\xed\x6c\x93\x14\xe2\x81\x7f\x55\x1c\xc8\x6c\xca\xa4\xd4\xbd\x4f\xd8\x6c\xdd\xdd\x5c\x3e\x90\xd9\x25\xa6\x8c\x21\x90\xe6\xef\xd0\x34\x39\xac\xcd\xd1\x6d\x65\xe3\xad\xce\x22\x48\xd5\xd1\xd7\x0e\xd2\x79\x57\x04\x1d\xa3\xd1\xbb\x6b\x45\x14\x89\xd1\x9a\x79\xb5\x7a\x58\xf0\x15\xa3\x36\x4b\x33\x1d\x20\x7e\xeb\xd2\xf5\x5c\x10\xdd\x9f\x57\x23\xb1\x79\x6a\x33\xe5\x44\x74\x6f\x2b\xfd\x7a\x3c\xb8\x87\x1c\x80\xe6\xfd\xa5\x65\x3a\xf5\x75\xe8\xb7\x13\x19\x42\x2b\x4d\x12\xec\x6e\x70\xa1\xeb\x1e\xee\xf4\xd7\x2b\x6a\x31\xca\xf2\x53\xfb\x2e\x7f\x76\x98\xa3\x09\x9e\xd9\x2a\xc9\x50\x8e\x77\x57\xbb\x4c\xec\xe2\xf8\x71\x0f\x3f\xdb\x27\x59\xce\x60\x49\x56\x83\x53\xb8\xf7\xb5\x1c\xbf\xe9\x4e\xbf\xd3\x08\x8d\xd0\xe0\x5e\x32\xd5\xe1\x18\xbf\xca\xe6\xe5\x13\xdb\x13\xff\x61\x4b\x22\x19\x07\x79\xf8\x6e\xea\xf8\xc2\x50\xb8\x54\xcb\x01\x5b\x5a\x18\xf2\x8f\xff\x9e\x45\xd8\x7b\xd8\xe7\x65\x4f\x95\x0a\x87\xa4\x93\x81\xbc\x2e\xf2\xe7\x97\x16\x1d\x80\xaf\x64\x2b\x95\x9c\x69\xcd\xb0\x28\x4e\x53\x4c\x6f\x03\x71\xef\xca\x09\xd6\x85\xaa\x1a\x8b\x62\x23\x32\x1f\xe1\xf8\xa4\xee\xb2\xc8\xad\xed\x42\x2d\xbc\x98\xf1\x6f\x61\x11\x89\x15\x92\xc8\x76\x81\xb7\xf9\x99\x38\x15\x8b\x48\xe6\x14\xd6\x76\xe8\x39\xf7\x7c\x9d\xff\x0c\x1b\xe3\x28\x2d\x9a\xc5\x88\xfe\x5d\x67\x11\x23\x8e\x49\x7f\xa8\xab\x16\xfb\x81\xe3\xd4\x9b\x45\x3c\x22\xa8\x3e\xbc\xde\xef\xf3\xe3\x7e\xa0\xe8\xb1\x88\x53\xb7\x13\x62\x14\x7f\x59\x1d\xeb\x66\xfe\x33\x38\x63\x91\x2b\xe2\xea\x63\x0d\x08\xb1\xf2\x47\x12\x42\x64\xb7\xe6\x7e\xbb\xbf\xd9\x7a\x1e\xdd\x17\xd9\xc2\xbb\xfc\x18\xd6\x12\x16\x25\x69\x6a\xdd\x5e\x5b\xb6\xc8\xe0\xe9\x0f\x88\x14\x4f\xec\x2e\xd5\x61\x20\xd0\x26\x12\x15\x40\x3c\x51\xbc\x09\xa3\x53\x42\x11\x5e\xfa\x05\x9c\xff\xc9\x20\x16\xc0\xa2\xd4\x68\xdc\x21\xf6\x60\x7a\x86\xe1\x0c\x7c\xc5\x22\x91\x69\x5c\x77\x56\xb7\xdb\x12\x7e\xb6\xe3\x9b\x20\xd3\x94\xc0\xe8\xcd\xee\x0b\x48\xd3\x33\xe8\x28\x66\xce\x3e\x03\x57\xa3\xfb\x81\x04\x14\x06\x50\xc9\x7d\xc3\xf5\x49\xea\x5e\x92\x80\x45\xda\x46\xc8\xde\xe9\xe5\x13\x97\x5a\x6c\x2c\x32\x9c\x69\x4f\xbb\xbe\xce\x07\xb2\xdd\x9c\x62\x74\x1a\x82\x75\x1f\x05\x41\x3c\xa1\x2a\x97\xc5\x75\x91\x4f\xcd\x3f\x58\x64\xa4\xc0\x02\xba\x07\xcc\x4c\xc4\xe5\x58\x04\x94\x62\x13\x62\xf3\xf5\x69\xb4\x36\xb2\xa8\x0b\xb2\xfd\x2e\x31\x28\x08\xf4\xf8\x67\x16\x81\x24\xb6\x4f\x17\x37\x8e\x7a\x98\xa3\xa8\xd3\x62\x13\x85\x45\x36\x93\x1c\x26\xc5\xce\xa9\xd9\xf5\x6c\xb4\x8c\x30\x63\xc8\x1b\xaf\x74\xeb\xc5\xcb\x26\x32\x42\x6e\x6c\x1c\x25\x5a\xf4\xa8\xa8\x2f\xce\x2f\xa7\x57\xea\x60\x71\x04\x1a\x0b\x7a\x35\x76\x86\x9f\x10\xee\x3f\xa3\x7e\xb3\x38\xb2\x52\xa7\x41\xcc\xc2\x69\xfa\x6d\xeb\x63\xd3\x82\x71\x0e\xd9\x7a\xd9\x5e\x9a\xc5\x31\x8f\x45\xea\x5b\x78\xc3\xc2\xc4\xe2\x58\x69\x19\x02\xbe\x50\x99\x5a\x95\xcd\x7b\xf7\xc3\x9b\x63\x31\xcd\x90\x58\x4c\x78\xea\xbd\x68\x06\xea\xf9\x20\x03\xbe\x78\x47\x63\x92\xe8\x60\x1c\xdc\x2d\xb2\x9b\xa3\xf2\xc9\x47\xef\xbb\xc7\x62\x46\x85\x93\xd4\x07\xbd\xdb\x07\x48\x42\x38\x26\x2c\x7a\xd4\x8d\xa8\x6d\xf3\xfc\x73\x41\xab\x9a\xc5\x3c\x72\xfa\xbf\x5e\x24\xe1\x62\xb2\xe4\xc4\x9c\x3a\x97\xa1\x1c\x89\x43\x1e\x89\x34\xc5\xb4\x84\x91\x3c\x45\xa2\x92\xd1\x65\x5b\x1f\x8a\xb3\x06\x79\x27\xff\xf6\xdd\x74\x16\xf3\xd4\x99\xf3\x87\x17\xec\x09\xcc\x6e\x31\x36\x63\x31\x57\x06\x73\x5e\xf7\x73\x4f\xbe\x6c\x21\xe3\x66\x71\xc2\x99\xf3\x4b\x97\xed\x0b\x62\x90\x1f\x0a\x73\xb2\xce\xf4\x93\x28\xd1\x31\x2e\x6c\xd8\xac\xec\xde\xc1\x45\x86\x16\x8b\x45\xa2\x43\x8b\x63\x50\xe6\x6a\x02\x62\x36\xdc\x48\x91\x31\x04\x44\x4a\xd3\xc5\x51\xaa\x00\x5d\xe5\xf3\xa9\x2f\xa4\xc6\x7c\xe8\x58\x3a\xf3\xa2\xde\x97\xd2\x1f\xcf\x58\x42\x9d\x51\x69\xf1\x1a\xca\x4f\xe6\x2c\x97\x98\xc5\x99\x17\x6c\x69\xa0\xfd\x9a\x7b\xd4\xcd\xf4\x2e\x66\x9e\x89\x9d\x3b\xe3\x2e\x30\xa7\xc5\x31\x16\x67\xa0\x51\xd8\xc6\xdd\xea\xcb\x97\x7c\xd6\x21\x64\xb1\x54\xce\x91\xba\x0d\x8e\x45\xa3\x39\x2b\xc1\xb1\xb5\x9d\x12\x62\xf8\xab\x8a\x9d\x33\x2b\x6e\x58\x8f\xd5\xd5\xdc\xc7\x81\xc5\x4a\x68\xe7\x0d\x5d\x57\xc7\x65\x4b\x42\x16\x6b\x2a\x31\xaa\x3f\x1c\xcb\x57\x2c\x2d\x0c\x6a\xe1\x7e\x84\x89\x34\x0a\xc6\xf8\x54\xfd\xb6\x92\xe6\x33\x9c\xfc\x6c\xc2\x98\x98\xeb\x2c\x78\xdb\xb9\x72\xd2\x60\xca\x34\xde\xb9\x63\xc3\x22\x44\xb5\xaa\xe3\x87\x57\x5d\x99\x4e\x12\x23\x0d\xcb\x82\xf8\x43\xb7\x3d\x1e\xaa\xa6\xed\x43\x92\xd8\x18\x87\x36\xc4\x6c\x64\xbc\x72\xc7\xc6\x50\x0c\x89\x10\xfb\xe6\x96\x10\x47\x32\xed\x82\xcc\x47\xd9\xc5\x83\x8d\xfb\xe7\xbe\x6a\x6f\xca\x6f\x4d\xbf\x20\x80\x77\x17\x75\x7a\x11\x79\x8b\xcb\xa8\x17\x95\x7e\x58\x96\x77\x64\x31\x24\x4a\x38\x58\xe3\x7f\x40\xb7\xbe\x17\xdd\xdf\xcd\x2e\x23\x42\x68\x55\xf0\xd5\x3f\x79\x6a\x56\x3a\x59\x62\x9c\x09\x59\xff\x39\x88\x51\x0f\xb5\x2a\xb1\x61\x80\x4b\x37\x72\x1e\x97\xda\x49\x8c\xc4\x54\xa2\xd1\x07\x36\x27\xeb\xb7\x5c\x43\xaf\xd7\x34\xb9\x5a\x12\xcb\x8c\x69\x8f\xa1\xda\x1c\x40\xe7\xb2\xd8\xca\x2e\x1d\x7b\x94\xfa\x55\x3e\x9f\x89\xd1\x08\x21\xc2\xf4\x5a\x47\x0e\x29\x89\x75\x55\xbc\x4d\xa7\x6b\xc9\x52\x4e\xc3\x08\x31\xc6\xfb\x1c\x75\x6b\xed\xa3\x3c\x36\xa1\xf7\xc1\x08\xcd\x52\x5c\x68\x0a\xd9\xb4\x68\x5d\x0c\xc6\x55\xbe\xfc\x71\xa6\x12\x54\x1e\xf7\xbe\x95\x81\x6c\xb4\x7c\x37\x98\xc9\xbc\x36\x55\xb7\x8f\x79\x3e\xd6\x92\xcd\x06\x23\x5c\x71\xc8\xfc\xf6\x95\xcb\xa2\xcb\x49\x16\x37\x1b\xc2\x3d\x4a\xbd\xe9\x76\x99\x76\xd2\x97\x39\x05\xe7\x77\xc3\x9d\x7b\xa6\x4b\xcb\x83\x25\xef\x94\xbc\x71\x26\xbc\x19\x56\x77\xc2\xb5\x56\xe8\x63\x5b\x1d\x55\x31\x80\xc5\x19\xe1\x90\x60\xe6\xb6\x59\xff\x76\xbf\x85\x66\xdc\x43\x64\x24\x49\x05\xc2\x24\x5f\xab\x20\x28\xc2\x48\x92\x29\x54\xc1\xbd\xb9\x7c\x98\x08\xd9\x32\x92\xe8\x04\x63\x7b\xdf\x12\x47\x84\xe2\xf2\x2d\x48\x8c\xf3\x0f\x73\xfd\x85\x4f\x83\x7a\x92\x72\x8a\x0b\xe9\xdd\xe5\xe4\xd2\x84\x4e\x70\xb2\x23\x05\xf0\x22\xaf\x67\xc5\xa4\x6e\x80\xc4\x3d\xd1\x15\x30\xfc\x75\x04\xe9\x80\xe9\xe5\x64\x94\xe0\xda\xbe\x77\x8d\x2a\x11\x85\x2f\xc9\x94\x5b\x3f\xf5\xc8\xd5\x76\xec\x9a\xde\x8d\xc8\xb4\x1c\x75\xe4\xc6\x8a\x7c\x8c\x48\x65\xb0\x49\xf0\xf8\xb4\xee\x32\xeb\xdd\xdd\xcd\xfd\xee\x72\xf5\xd8\x1f\x86\x04\x4d\x60\x5f\xf3\xa2\x58\xa9\x6a\x40\x44\x31\xa2\xb8\x03\x02\xf7\xa5\xb0\xe9\xbc\xd4\x69\x8c\x31\xe5\x15\xbc\x35\x7b\x59\x63\x28\x7e\x5d\x1d\xc3\x12\x4f\xb4\x8a\xb1\xf2\x8f\x74\x27\xdc\xa9\x96\x7b\xf7\x8c\x98\x84\x07\xb1\x03\x27\xf8\xd2\x05\x75\xc3\x75\x00\x17\xce\x8d\xd8\xe5\xb5\x2e\xe2\x6a\x96\xda\x4c\x8c\x40\x26\xf1\xcd\xf3\xfa\xeb\x4b\xce\x26\x8c\x58\xaa\x90\xe3\x70\x05\x8d\xb4\x79\xb5\x19\x60\xf7\x8c\x46\x4c\x71\x1f\x86\x7d\xdb\x5c\xad\xfb\x39\x47\xa3\xc4\x20\x40\xe5\xee\xe1\x61\x33\x9e\x05\x34\x02\xe6\x24\x8d\x11\xeb\x52\x0d\x5e\xf7\x8c\x76\xc1\x6c\xd4\x4b\x28\xf8\xe7\xef\x2a\x4e\x93\x7b\x49\x63\x42\x50\xa0\xc6\xb7\xc0\x27\x02\x8b\xfd\xc9\x44\x8a\x81\xda\x73\xfe\x86\xbb\xd0\xb6\xba\x82\x7d\xa5\xe7\x49\xc8\xdf\x66\x67\x36\x66\xf0\x53\xbe\x77\x4e\xe2\x7f\xca\x14\x63\x94\x58\x8b\x65\x0d\x27\x43\xfa\x63\xbd\xfe\x35\xf8\x8e\x32\x4a\xa9\x23\xe2\x49\x63\x1e\xca\x71\x1a\x41\x69\x92\xc4\x9e\x4f\xfc\x72\x5b\x55\x87\xf9\xa2\x12\x86\x09\x03\x1e\xd3\xef\xe6\xea\x63\x0d\xbd\x9d\x2b\xa3\x34\x8b\x99\x67\x44\xa3\xaf\xe9\x35\x80\x17\xad\x09\xb5\x9c\xfe\x79\x53\x9a\x71\x4c\x98\xd4\xf1\x63\xe5\x49\x23\x76\xe4\x5e\xb0\xd8\x2d\x1c\x95\x72\x19\x65\x34\x25\x1e\x77\xd2\x25\x8d\xb3\x55\x82\x32\xc9\xb0\x36\xa6\x2b\x03\x9b\xfc\x8f\x7e\x9a\x30\xe0\x32\xe9\xd7\x19\xf7\x7e\xfb\x5e\xfa\xec\x04\x16\x30\x00\x79\x81\x50\xcb\x60\x94\xd3\x58\xc5\xbd\xa5\x05\x0a\xdd\xce\x9a\xf4\x8c\x72\x99\x22\x11\xb1\x69\x65\x7f\x7b\x13\xa2\x89\x47\x40\xac\x9b\xe7\x6a\xfb\xdb\xe4\xe6\xa7\x9c\x2a\x27\xd2\xf9\x0a\x57\xa0\x27\xe2\xb9\xa3\x65\x98\x0a\x50\x81\x1e\xe7\x60\x56\x17\x78\xe9\xdd\x7f\x4f\xc4\x21\xa6\x6f\x16\xcd\xb2\x44\x93\xbe\x62\xe9\xdb\x67\xb2\x01\xe3\x4a\x8a\xa3\x2f\xc8\x6c\x6a\x58\xdf\xf9\xc7\x28\x78\x86\x82\x5f\x0c\xe9\xa9\x04\x89\xb1\x07\xca\x86\xbd\x1c\x95\x5b\x0c\xb6\xbd\xcd\x1d\xa3\x2a\x65\xd4\xf6\x75\xb4\xaa\xee\x42\xf3\xcd\x4b\x55\xb7\x88\xaa\x9a\xde\x78\xa5\x38\x84\xf6\x8f\x81\xb2\xcd\xdb\xfc\xc4\x2d\x8c\x51\x2d\x44\xec\x84\x89\xef\xc2\x97\x68\x1b\xc5\x32\x38\x89\x63\x25\xe5\x8c\x36\xc8\xf4\x2d\xea\x3f\x4d\x99\xb3\xda\x07\x93\xb7\x37\x57\xeb\xfb\xed\xcd\xf6\xf7\xd9\xb5\x99\x88\x20\x35\x24\x00\xb7\x72\x0d\x28\xfe\xbc\x4c\xfe\x67\xd4\x70\x8b\x97\xb4\xbe\xbf\xdc\xfc\x35\xae\x27\xa3\x46\xa6\xd4\x87\x7f\xf7\xf0\x13\x6d\xd5\xfc\x11\x90\xca\x74\xef\xd7\xd3\xb7\xef\x9e\x8b\xc4\x58\x14\x0b\xcc\x1e\x5f\xaa\xc6\xb3\xe7\x6c\xde\x4e\x63\x69\x16\x51\x27\x3e\xb4\x0d\x86\x3e\x68\xed\xd0\xaf\x76\x2c\xd2\x02\xcb\x53\x13\xa0\xf9\x29\xc6\x9c\xb1\x38\x49\x50\xb8\xe4\xb1\x2a\x0a\x57\x30\x42\xcc\xd7\x59\xf4\xc4\xff\xf8\x6f\x78\xb8\x8c\xc4\x5c\xf7\x60\xbd\xd9\x35\x50\x9a\x6a\xcf\x5c\x79\xac\xea\xd6\x56\x45\x3e\x9b\x41\x8c\x52\xa5\x74\xe8\xf2\x4c\xa5\xc2\xc6\x77\x9a\x31\x1a\xdb\xa8\x57\xda\xc2\x6a\xa7\xd3\xdd\x1f\xde\x09\xc6\x34\xc7\x90\x73\xb3\x79\x0c\xc2\xed\x4f\x80\x1b\xeb\x72\x1f\x96\x31\x1e\x73\x8c\x6d\x1f\x9f\x6e\xbe\xaf\xb6\xce\x00\xfa\xdb\xe6\x6a\xf7\xb8\x7e\xda\xdd\x6d\xd6\xf7\x97\xe1\xb6\x73\x4e\xbd\x43\x4a\x69\xf3\xe7\x63\x0d\x17\xd5\xc8\x6e\xaa\x1f\x04\x83\x86\x57\x83\x85\xbd\x51\x80\xc7\x92\xd8\xba\x16\x80\x3c\xd6\xc7\xbd\x7b\xb9\xef\xa0\x18\x82\x01\x96\x80\xab\x8c\xa8\xe3\x47\x6f\x5d\x73\x0a\xc8\x67\x2c\x65\x31\x12\x1a\xff\x9e\xff\xac\xfe\xda\x5e\xc3\x04\x64\x34\x60\x11\xbb\xf8\x7b\x7a\xd0\xa6\x98\x5a\x76\x9b\xcd\xc1\x29\x0c\xc8\xe5\xb3\x4e\x6a\x0a\xb8\xce\x87\xeb\x9b\xa6\xc5\x2c\x93\x12\xf7\x17\xe9\x48\xc8\xdb\xea\x02\x06\xb1\x38\xc6\x24\x8d\x50\x13\xda\xd7\x07\x51\xed\xf2\xcd\x53\x96\xbb\x18\xb1\x99\x35\x6b\x4f\x13\x6f\x26\xb9\xc5\x28\x74\xff\xbc\x1f\xcc\x39\xa0\xff\x02\x30\xe9\x40\x8f\x08\x4d\xae\xe5\x65\x97\xa9\x58\x45\x7e\x7f\x7a\xac\x2b\x55\xc0\xfe\x53\x3e\xcf\xe4\xde\x29\xeb\x96\x6c\xd4\xc6\x43\x56\x1d\x96\x5b\x97\xbf\x48\xc7\xc6\xed\x74\x93\x6e\x6e\x38\x98\x79\xac\x82\xeb\x69\x0d\xb0\xa4\x33\xe7\xca\x12\x5c\x09\x5c\x0d\xef\x44\x65\x29\x8c\x02\x1a\x0d\xdd\x25\x54\x89\x59\x5e\xff\x98\x89\x14\x56\x0b\x2a\xdf\x2e\xdf\x21\x7f\x6c\x7a\xd2\xa0\xa0\xc1\x18\xe8\x24\x48\x22\xef\xf6\x32\x2f\x66\x6f\xbe\x8d\x33\x65\x06\x47\x4c\xb8\xac\xea\x3a\x37\x81\xa0\xca\x98\xe5\x14\xc3\x9b\x87\xc7\xcb\x5f\x16\xc9\x52\x61\x5c\x26\x31\x2c\xb5\x79\x69\xb6\x2f\x75\x55\x22\xb8\x30\xa4\x71\x6e\x10\x8f\xb2\x0c\x11\x3c\x4b\xf8\x43\x3f\x24\x66\xb1\x13\x8e\xec\x36\xb2\x8b\xa2\x7a\x9e\xbc\x00\x3c\x4e\x09\xea\x2b\x87\x4a\xeb\x20\xa7\xcd\x38\x89\x62\x27\x22\x81\x55\x00\x6f\x89\xd8\x1f\xa4\x0e\x4d\xe6\x6a\x96\x79\x89\xfd\x92\xe9\xb9\x09\xcd\x10\x5f\xdc\x1c\x55\xdb\xa3\x05\x3f\x4d\x85\x38\x25\x11\x1d\x84\xe4\xd6\x33\xfe\xe4\xac\xa1\xc1\xa9\x74\xd0\x4e\x5d\xed\x3d\x81\x21\xa8\x04\x32\x8e\xe0\x94\xee\x39\x6c\x6f\x7e\x0b\x7f\x63\x99\x41\x29\x07\xaf\xb2\x34\xa1\x68\x30\xce\x23\x47\x2c\xb8\xfb\xe8\xb3\x44\xd2\x1f\x63\xae\xb6\xd7\xdd\x9e\xa9\xba\x33\xe3\x5c\x70\xc9\x02\x0e\xfe\x84\x67\xc7\x78\x22\x1c\x9d\xde\x51\x75\x57\xed\x65\xb5\xdf\x1f\xcb\xfc\x54\xa0\xde\x8f\x4f\x63\x12\xc7\x81\xe3\xf7\x0a\xa5\xaf\x42\x7f\xd6\x13\x63\x3c\x15\x16\xf5\x11\xfe\xbe\x3d\xe3\x2e\x1b\xc6\x99\x14\x85\x52\xee\xa0\x91\xa7\x3a\x7d\xd3\x39\xc8\x05\x89\xd0\xa0\xd0\xe3\xe5\xc3\x5f\x33\x16\xf2\x29\x57\xef\x19\x0e\x64\x08\x5c\xb9\xbc\xd8\x4e\x72\x18\x9e\x45\x12\x39\x62\x38\x81\x86\xf6\xe5\xf4\x17\x64\x59\x84\xda\x93\x5e\x03\xe9\xd4\xde\x85\x71\x19\x3b\xe1\xf4\xa3\x2b\x1c\xd5\x9b\xc0\x1b\x62\x5c\x6a\x50\x58\xdc\x6c\xfa\x25\x75\x3a\x19\x95\x87\x6e\xe6\xcd\x45\x0d\xf2\x35\x2f\x9f\xc3\x8c\xbc\x94\x67\x0a\x80\x5c\xa5\x06\x77\xf1\x7d\xde\xd3\xf9\xc2\x91\x4c\xa7\xa4\x4f\x60\xb6\x37\x77\xeb\xdd\xe3\x13\xee\xa2\x61\x84\x8e\x09\x12\x1f\x9a\x43\x55\x36\x55\x7d\xb5\xba\x59\x5e\x7d\xb8\x4e\x34\x78\x15\x36\xe8\x02\xe5\x25\xb1\x16\xc6\xb5\x16\x30\x62\x61\xff\xb3\x32\xb9\xd4\xdd\xad\x1c\xf7\x14\xff\x12\x1d\xfb\x6c\x84\xcc\xb5\xb6\xce\xb0\xe4\xa3\x85\x84\x6d\x2b\x67\xf6\xe0\x89\x14\xff\x4a\x98\x5f\x01\xb9\x89\xa8\xc8\x46\x1a\x87\x67\xee\x9e\x21\xd2\x64\xc3\xd3\xea\xdf\x4c\xc3\x1c\xc0\x6d\x0b\x72\x8f\x26\x21\xa7\x62\x63\xff\xea\xbf\x8a\x39\x69\x2e\xaf\xa7\x71\x2d\x75\x5b\xd5\x1f\xb3\x69\x61\x58\xbf\x11\xf9\xd5\x65\x59\x42\x82\x71\x20\x2c\x9a\x5b\x78\xbb\x96\xd2\xb6\xea\xc5\x97\xc3\xd8\xd4\xd1\x82\x43\x70\xb6\x36\x79\x3b\x88\xf6\xce\xce\x2b\x05\xa2\x91\x6d\xde\xbc\x7c\x6c\x64\xb1\x9f\x80\x07\x18\x07\x45\x11\xd7\x0d\x3f\x0f\x18\x89\x03\x3a\x3f\x8d\x38\xd3\x93\x1b\x07\x9a\x63\x43\xbe\x2e\xcd\x4d\xa9\x77\xfd\x49\x40\xa6\x23\x57\x06\x28\xec\x49\x73\x91\x5b\xc2\xb3\x80\x98\xac\xaa\x96\xcc\x66\x91\x4d\x9d\xe2\x9f\xcc\xeb\xab\xba\x3a\x37\xed\xad\x77\x38\xbc\x7c\xb8\xff\x76\xff\x17\x13\x02\x6e\xb3\x41\x0c\xc9\x01\x09\xc6\xc4\xbe\xee\x38\xe7\xde\x0d\xe7\x11\xce\xa5\x22\xdc\x5a\x67\xab\xb2\xbd\x59\x3f\x91\xf5\xbd\x17\x81\x67\x49\xa4\x08\x6e\xd1\x17\x3f\x07\x91\x4f\x96\xc4\x71\x8c\x05\x49\x69\xcc\xf7\xa1\x95\x39\xb9\xae\x24\x26\x06\xbb\xaa\x4e\x78\x76\x65\x66\xa1\x6b\x12\x4b\x8d\xc9\x92\x69\x41\xee\xd1\xf0\xb2\x8b\xc2\x69\xf8\x0a\x2a\x20\x96\x93\xb9\x75\x0a\xb3\x9d\x4e\x86\x84\x6a\x93\xfa\x67\x80\x38\xf9\x09\x71\x9f\x25\x14\x18\x9a\x61\x79\x3a\x65\xdf\x47\x46\xdf\xe9\x66\xb7\xfc\x4c\x12\x66\x19\x12\x2b\xbd\x42\xae\x13\xc4\x28\x07\x9a\x66\x37\x42\x98\x28\x80\xb1\x27\x02\x54\x2c\xe1\xb1\x44\x1a\x8d\xcd\xeb\xc6\x69\x34\xde\x5c\x3e\x0c\x5d\x94\x84\x0b\x8a\xbd\xed\x7d\x65\x72\xfb\x81\x75\x8e\x39\x01\xb1\x1b\x24\xd1\x48\xf5\xbe\x72\x68\x39\x5f\x2b\x6e\xfa\x93\x64\xc2\x51\x1c\xe5\xe1\x5b\x33\x9c\x5a\xa6\x28\x48\xea\x1b\x80\x3b\x3d\x5c\x55\xc2\x78\x34\xea\xa8\x5f\x7c\x7c\xa6\xff\xc2\x92\x24\x25\x48\x17\xc2\x8a\x5f\x5f\x8b\x99\xee\x61\x9e\x67\xcf\x92\x44\xa7\xb8\x49\x05\x35\x38\x8c\x10\xc6\xdb\x76\x92\x46\x3a\x33\x9e\x3d\xb2\x19\xd7\x7e\x66\x77\x3e\xa5\xb4\xf7\xeb\x74\x13\x7b\xd2\xea\x9a\x8f\x4e\x1c\x03\xed\xb9\x77\x95\x4b\xfb\x2f\xd4\x14\xeb\xd0\xdb\x97\xbc\x36\xe3\x58\x25\x11\x4c\x49\x3a\x58\x83\x4d\x9b\xdc\xe7\x16\x6f\xff\xd9\x2c\xe5\x0e\x2d\x9a\x97\xed\xea\xd8\xbe\x54\x5d\x5a\xfc\xcb\xd2\x76\x9e\x64\x99\xc4\x4d\xab\xcd\x0f\xaa\xea\x9f\x42\x66\x12\xe6\xa2\xe9\xaa\x86\x0d\xe8\x1a\x5c\xc5\x7e\x11\x7d\x90\x48\xa0\xb8\xd6\xfe\x5e\x1d\xeb\xc7\x8f\x5a\xee\xfb\xc4\x3f\xd1\x2c\x45\x98\xf4\xcd\xc3\xb7\xfe\x4f\xc2\x41\x4a\xbe\xd4\x52\xa3\x88\x45\x7f\x00\x22\xaf\x9c\xe8\x97\xf4\x39\x6c\xd8\x8f\x33\x34\xc2\x56\xfb\xce\x75\x75\x66\x33\xd2\x70\xcd\x69\xaf\xc0\x1c\xf8\x5f\x33\x15\xe4\xe5\x80\x29\x31\x3a\x4e\xfa\xb4\xf0\xb9\x3c\xd3\x37\x4f\x40\x70\x9b\x05\xe8\x7e\x13\xac\x74\xc7\x06\xf9\x7e\xa0\x4d\x8d\x24\x3d\xc3\xd0\xff\x35\x8d\x12\x8b\x6c\xd0\xe7\xfc\x0d\xc6\x08\xd2\xe6\x42\xea\x57\x57\x06\xb9\x38\x3e\x3f\xf7\x41\x68\x1a\x89\x54\xeb\x50\xac\x6e\x3d\x1f\x62\x12\x7b\xa4\x71\xe6\xee\xdd\x1e\xb1\xe1\x1b\xf0\xf0\xb1\x65\x5d\x12\x96\x92\x4c\x8a\x9e\x43\xde\x6c\xab\x40\xaa\x59\xf9\x90\xe6\x4c\x0b\x3c\x25\x92\x62\x57\xc6\x54\x7d\x3e\x76\xe7\x70\x6f\xe7\x60\xf3\xe1\x83\x96\x63\x33\xb2\x96\xe1\xe6\xa4\xc4\xa6\x88\x15\xdd\x79\xdd\xb7\x05\x7b\x27\x3f\x92\x42\x94\xe9\x65\x35\xb5\xd9\x48\x16\xb9\x5e\x60\xb7\x97\x97\xcf\x50\x7c\xa6\x7f\xce\x52\xa6\x18\xca\xf9\xac\x8a\xe2\x63\x28\x06\xa7\xcc\x30\xe9\x3a\xd4\x7e\x61\x9d\x11\xe4\x58\xca\x63\x4a\x7b\x0e\xc2\xdb\x75\x55\x83\x96\x7d\xc9\x30\xe5\x09\x43\x34\x98\xf3\xd7\xfe\xee\x84\xaf\xe6\x8d\xb3\x34\x35\x49\x50\xda\xf3\x3a\x8e\x7f\x12\xb0\xf9\xcf\x89\x88\x63\x46\xe2\x98\xec\xf8\x94\x77\x9b\xed\x45\xf8\x72\x91\x1a\xe4\x11\xbd\xe7\xe5\x45\x6e\xae\xe0\xb5\x90\x7f\x6d\xd1\x48\x33\x9e\x68\x3b\xc8\x30\xcd\x07\x0f\x95\xa5\x34\xb3\xda\x44\xa1\x90\x75\xe8\x02\x8e\x87\x3a\x7f\xce\x47\x7a\x49\x93\xed\x36\x95\x29\xd8\x78\x94\x4f\xd6\xa3\x2d\x2a\x95\xc2\x20\xd5\xe7\xef\xd0\xbe\x07\x30\xcf\xec\x56\x29\x99\xa0\x06\xf0\x6d\xf5\x8e\x2c\xed\xda\xd5\x0b\x4f\xb0\x05\xa9\x4e\x29\x0a\xe8\xbf\x9b\xfc\xcd\x16\x95\xaf\x70\x07\x85\xe6\x20\x36\xc2\x52\x6d\x01\xa3\xd0\x17\xd9\x0c\x96\x3b\xd3\x53\x99\xc4\x29\xf8\xa2\x5d\x28\x0a\x97\x7d\xdc\x5c\xcd\xc7\xc8\x0c\x6b\xc3\x4e\xa5\xde\x9b\x8b\x3c\xbc\x41\x6d\x8b\x40\xa4\x63\xa9\x81\x18\x9b\xb6\x5d\x18\x39\x02\xed\xb2\x14\x88\x22\x23\x59\xb8\x00\x1c\x9d\xfe\x74\x9b\x25\x08\x63\xda\xcb\xd7\x93\xdd\xe5\x5f\x21\xf8\x4e\x6d\x96\x61\xb3\x7b\xf7\x36\x5f\xa4\xc3\x2f\xb6\x3a\xc3\x17\xa3\x99\xac\x1a\x16\x84\xf2\xf3\xf8\x5b\xd9\x04\x27\x63\x5c\x87\x86\x21\x0e\x10\x1f\x4c\x7a\x4a\x78\x77\x1e\x34\x67\xf6\xe5\xe9\xa4\x12\x11\xd5\x24\x60\x50\x64\xe1\x69\x1b\x33\xe5\xec\xa9\x08\xd4\xa0\x9d\x33\xfa\xa3\x08\xa7\x63\x4e\xe8\xb1\x81\xa2\x38\x53\x23\x0f\x23\x75\x16\x80\x28\xdf\xca\x5c\x57\x75\xb9\x8c\xbf\x12\x11\x70\x6c\x01\xa0\xd1\xd8\x71\x3f\x59\x56\x45\x4c\x24\xc6\x65\x28\x2a\xe2\x94\x44\xc6\xf5\xac\x25\x76\x60\x48\x53\x44\xcc\x79\xe6\x53\xe2\xee\x8e\x61\xaa\x52\x57\xfb\x3b\xa8\x5f\x0b\xd8\xd6\x00\x4b\x2b\x98\x88\x33\x8e\x5a\xf1\xd8\x67\xee\x12\x49\xd6\x5f\x8b\x56\x88\x68\x76\x6b\xf6\xaa\xa8\x41\x9a\x0f\xe4\x59\x8d\xfa\xf8\xd3\xdf\x46\x78\x86\x22\x3d\xdf\xb6\x93\x2e\xb2\xa0\x91\x31\xbe\xab\xd3\x6d\xeb\x75\xb3\x3a\x65\xfd\x4f\x2f\x8b\x4a\x27\xd1\x51\xe0\xb3\x9f\x67\x54\x7e\x10\xd3\x29\xae\x20\xab\xc3\xe1\x13\xa1\x1b\x26\x78\xe4\xe0\xc7\xd2\x18\xaf\x54\xe7\xd5\x98\x96\xbf\x9b\x0b\x8b\xbd\x3b\x7c\xf3\xff\x71\xcc\xff\x58\x2a\xed\x89\x84\xc5\x38\x51\x1d\x60\xa0\x8b\x1d\x5d\x2e\x3f\x85\x2b\x8a\x84\x13\x7c\x2a\xaa\x92\xb5\xb9\x83\xbd\x82\x7a\x75\x0a\x2d\x13\x09\x77\x1a\xd8\x7d\xbb\xea\xf3\xfd\x4d\x24\x59\x84\xcb\xae\x67\x70\x7b\xcc\xcb\x49\x53\x70\xb6\x1c\x4d\xc2\x53\x91\xaa\x14\x33\x97\x6f\x65\xde\x7e\xd0\xb0\xd9\x88\x14\xc0\xf8\x20\x02\x45\x26\xba\x48\x01\x2b\xc3\xbf\x8c\xde\x93\xf0\x82\x88\x54\x60\x6a\xd2\x25\x2e\xb8\xb4\x3d\x58\x5f\xa8\x99\x5e\xaf\x30\xca\xaa\xbe\xd1\x60\xf3\x7a\xef\x35\x19\x3f\x7f\x9d\xb3\xd8\xc9\x91\x7a\x3f\x58\x8c\xbf\xfe\x59\xed\x55\x0e\xbb\x7f\x3e\x5c\xec\x9a\xbd\x2c\x8a\xc3\xb0\x7a\x88\x8c\x24\x72\x60\xed\xdc\xc9\x9f\x8f\x2f\xb2\x81\x78\x76\x31\x19\xd1\x58\x70\xbf\x58\x6d\xd6\x0e\x2c\xf0\x70\xbf\x7d\xba\xb9\xf8\x36\xd8\x22\x31\x91\xf1\x14\x33\x8d\x26\x37\x70\x01\xed\xa3\xfc\x98\xf8\x66\x85\x51\x22\xc1\xce\x44\xb0\x27\x41\x93\xd5\xfe\x98\x20\x10\x40\x0b\x48\xa8\x6c\xee\xe4\xe1\xd0\x33\x6c\x99\xc8\xac\x4c\xa3\xbe\x4c\x8e\xd0\xba\xb6\x05\x13\x56\x8e\x93\x5e\x9e\x90\x1e\xaf\xf0\xec\xf4\xfe\x66\x73\x4d\x42\xac\x1c\xe8\xc7\xa0\x82\xdd\xa3\xac\x9d\x2a\xdf\x99\xd7\x55\x45\x4e\xfb\x40\x1a\x13\x84\x19\xee\x9f\xe0\xbf\xab\xcb\xcb\xcf\xb3\x4b\xa1\xa8\x2b\xf9\xee\x9d\x63\xc2\xd8\x12\x86\x09\xa5\x5c\x59\xea\xf2\xe6\x69\x8a\x5c\x11\x9a\x72\x2c\x65\x39\xad\x85\xbc\xd9\xd5\xa0\xf3\x43\xde\x0b\x52\x33\xa1\x65\xe2\x4c\xc8\x6b\xa9\x5f\x31\xf6\xfc\x5e\x15\xc7\xfd\xe7\xbe\xb5\x4c\x68\xe5\x24\xf6\x2e\x65\x5d\x54\xcd\x9d\x6c\xab\xa6\x3f\xa3\x76\xbe\x80\x17\xc7\xba\x5c\x54\xd7\x9e\x9f\xca\x0a\x30\x5e\xb5\x3e\xd7\x70\x05\x7f\x01\x11\x2f\x0c\xf0\x60\x78\x81\xe5\x10\xbc\xdd\xa4\x3f\xa8\xe9\xd0\x09\xed\x75\x39\x16\x43\x7d\x01\x04\x32\x16\xbc\x5f\x9d\x2d\x49\xfe\xc7\xb9\xaf\x05\xa1\xb1\xbc\x77\x9d\x9b\xa1\xff\xb1\x1c\x49\x0b\xc8\x08\xd6\xd5\x50\x02\x63\xea\xfb\x34\x09\xb9\xe6\x1f\x53\x02\x45\xb6\x77\x4d\xd5\xe5\x84\x87\x7f\x1c\xa1\x19\xa3\xdd\x85\x8d\x12\x4b\x82\xec\x77\xd5\x2e\xc3\x21\xb2\x88\xf2\x6c\x8c\x7a\xf5\xd4\xa5\x31\x61\x88\x65\x11\x8b\x23\xde\x67\x52\xf9\x63\x55\x15\x6b\x93\xb7\xbb\x6c\x52\x5e\xca\x22\xce\x10\x6e\xf0\x28\x6b\xb9\x87\x16\xea\xfc\x8f\xf3\x86\xb4\xff\x7f\xfd\x1b\xae\x45\xa7\x48\xec\x3c\x96\xda\x6d\x8c\x67\x10\xf9\x59\x0c\x46\xba\x5c\xf3\x12\xea\x56\xe6\x65\x40\x98\xfd\xc5\xea\xe8\x28\x1c\xce\x48\x12\x61\xc9\x02\x0b\x20\x67\x7f\xf8\xe4\x9e\xd1\x54\x63\x06\x79\x55\xd5\xb0\xcf\x7f\x1b\x6f\xce\x19\x4b\x28\xd6\x23\x67\x9d\xa7\xc5\x02\xfe\xbf\xd8\xbf\x67\x77\x80\x47\x16\x41\x1c\xbf\xfe\xf8\x7a\x5d\xd5\x5f\x64\xff\x34\x39\x8b\x9c\x39\x53\x5b\x1f\x75\x7b\xac\xe1\xb1\x86\x1b\x5d\xfd\x32\xfb\xb8\x76\xf5\xd9\x7d\x85\xa0\x2f\xd9\xcb\xbc\x0f\x43\x12\xc8\xa4\xc3\xe1\xe7\xcf\xcf\xce\x38\x25\xaf\x61\x5d\xd7\x7d\x3f\x2b\x4b\x00\xd2\x74\x80\xda\x36\xf9\xf9\xe4\x2e\x4b\x93\x04\x71\xee\x97\x05\xc8\x3a\x3f\xee\x27\xf7\x42\xa4\x02\x83\xe7\xff\x8c\xda\xba\xfe\x50\x16\xc5\x09\x71\x5a\xf9\xae\x3f\x3b\x5b\x9b\xb3\x8c\x09\xdc\x92\x8f\xcd\x0c\x55\xd0\x1d\x51\xbe\x2a\x76\xf7\xf1\xa5\x96\x07\x18\x0e\x81\xc3\x78\x3b\x9b\x74\x67\x15\xfe\x63\x1d\x30\x0b\x99\x24\x06\xd9\x32\x38\xbb\x1e\x9d\x05\xcd\xf4\xa5\x91\xca\x62\x1d\x1c\x1f\x9a\x63\xc8\xba\xcd\xe3\x94\xf1\xc5\x32\x09\x29\xa2\xc2\x16\xa5\x42\x3e\x93\x08\xf1\x9f\x57\xa9\xe0\xbe\xc8\xbd\x2e\xe0\x4d\x8e\x57\x82\x4c\x67\x2a\x58\xa0\x05\x33\x01\xbf\x84\xcd\xae\x42\x4b\x1d\xf7\x98\x85\xe6\xdb\xc4\x30\x93\x65\x5a\x0b\x87\x1c\xaa\x0a\x73\x5d\x05\xdf\x1e\x7f\x10\x12\xd7\xb8\x34\xce\xaa\x11\xa3\xd1\x11\x70\x2a\x8c\x52\x04\xef\x89\x83\x7e\x5e\x78\xbc\xf2\x09\x8a\x6c\xfa\x7c\xc1\x6a\xac\xf2\x38\x0b\x19\xac\x8b\x0e\x3b\x75\x66\x15\x27\xbd\x53\xd4\x84\xe3\xcb\x64\x94\xa6\x98\xbf\xdf\x7d\x74\xf3\xf7\xbd\xaa\xcd\xd7\xbc\xdf\xd2\x64\xa4\x13\x84\x9d\xac\xe5\x73\x55\x4f\xec\xe8\x98\x8c\x75\x82\x1e\xf0\xce\x98\x42\xee\xe4\x18\xd6\x28\x63\x50\xd8\x26\x2b\x64\xe3\x2c\x86\x77\x36\x4e\xbe\xca\xe6\x65\xe7\xaf\x3c\x0c\x24\x54\x81\x5b\x5c\xfc\xc4\xbb\x29\x91\x93\x81\x7d\xc0\xa5\x5e\x81\x24\x8a\x60\x05\xad\xcb\x24\x31\x42\xb8\x94\xe5\x45\x0d\x52\xbf\xf4\xe7\x04\x19\x9c\x60\xb7\xf9\x1e\xce\xfa\xaa\x31\x49\x93\x0c\x7f\x84\x53\xe6\x3c\xed\xf2\xff\x6d\x36\x3c\xa5\x18\x74\x34\x24\x1a\xcb\x63\x31\x49\x35\x89\x1d\x64\xee\x43\xc1\x3d\xbc\x8f\xfc\x87\x99\xa4\xc6\x60\x50\xba\x93\xc6\x6c\x2b\x44\xdc\x7c\x85\xe2\x0c\x90\x4b\x32\xa1\x43\xaa\xbb\x1a\x05\x66\x9f\x96\x76\x25\x93\xd1\x80\xe9\xca\x35\xdc\x55\x25\x84\xc4\xac\x3b\x88\xad\xaf\xed\xc3\x76\x75\xbb\xfb\xed\xc2\x59\xdf\xee\xae\x1f\x9e\x76\x8f\x4f\xeb\xdd\xa8\xe9\x26\x99\x4a\xd3\xa4\x8f\x41\x1f\x0e\x50\x7a\x63\x92\xd9\x7d\xe3\xc4\xf5\x6b\x9a\x16\x0e\x7a\x20\xab\xc9\x24\x22\xb1\x8f\xf1\x2e\x3e\xb6\x1f\x07\xa4\x6f\xcd\x18\x76\x0b\x09\x89\x4c\x63\x9a\x42\x70\x2e\xaa\x8a\x02\x50\x24\xec\xcc\x1d\x4a\x05\x81\x3e\x25\xd2\x55\x6d\x2e\x9c\xd9\xc1\x89\x2e\xc1\x22\x02\x3a\x9c\x24\x83\xcc\xb5\x17\xa1\x34\xc1\x45\xe3\xd3\xf0\x4a\xa6\x5a\xe2\xde\x85\xf3\x69\xc9\x61\x8c\xc9\xd4\x5a\xa7\x08\xd2\x85\x7f\xbd\x66\x04\x93\x82\x48\x63\x07\x80\x86\x97\x8d\x37\xdf\xae\xb7\xfd\x08\x96\x61\xa4\x25\xdf\x64\x91\x4b\x55\x4c\x64\x7d\x98\xd4\x54\x21\xcc\xd8\xfd\x66\x54\xf2\xd9\x4e\x9c\xd9\x26\x31\x8b\xd4\xa9\x33\xbc\x0a\x31\x0b\x0a\xa4\x9e\x03\xf8\x4a\x2d\x59\x8f\xa4\x2a\x46\x9a\xb1\xfe\xb0\x4d\x25\xf1\x25\xac\x10\x22\xac\x4a\xf3\x28\x3f\x1e\xbc\xdb\x45\x0f\x2b\x98\xa0\x0b\xa4\x35\x04\x91\x8c\xf8\xe5\x8d\x33\xac\x39\x2e\x15\xd6\x55\x44\x9c\x33\x03\xd2\x12\x42\xbf\x4e\x45\xa9\x23\xb1\xb9\x0c\xc3\xdd\xf0\x59\x65\x50\xc5\x31\x23\xfe\xd2\xbf\x1c\xa1\x59\xe0\x0a\x33\x15\x4b\x8b\xe5\x0d\x75\xfc\x20\x01\xb7\xad\x62\xed\xcc\x4c\x6e\x2e\x1f\x46\x78\x6b\x45\x94\xcd\xbc\xae\x74\x0b\x9e\xd0\x11\x8e\xd1\x34\xc2\x96\x48\xae\xab\x87\x37\xa8\x43\xb1\x41\x31\xaa\x91\x3b\x14\x6e\xf6\x3f\x1f\x2e\xa6\xd3\x42\xb1\x14\x88\x23\xd8\x39\x2f\x9b\x1f\x79\xfb\xb2\x2e\xf5\x58\x97\x80\x29\x06\x29\x32\xcc\xe4\xbb\xac\x4d\xe3\xa6\xc8\x64\x97\x52\x3c\x25\x58\xba\x32\x39\x0a\xec\xdf\xc3\xfb\xa6\x95\xaf\x30\x1c\x57\x4e\x0f\xf1\x50\xe5\x65\xbb\xad\xa6\x9d\xc7\xc5\x39\xad\x12\xe6\xac\x72\xda\xfd\x61\xf3\x72\xb4\xb6\x00\x24\x7e\x2c\x2e\x7f\x2a\xe1\x80\x96\xad\x18\xaa\x6c\xb6\xab\x2f\x61\xdd\x50\x49\xe6\xbc\x83\xff\x53\xe9\x57\xf8\x38\x63\x42\xc1\x54\x22\x21\xe9\xee\x83\x95\x79\x01\xc6\x39\x01\x8c\xfb\x6c\x2a\x31\xd4\x29\x50\xf6\x56\xb6\x75\x75\x3c\xe4\x27\x8f\x3d\x8d\x78\x1a\x24\xb0\xda\xd5\x33\x9c\x3c\xf3\xd4\x68\xa4\x1e\xbd\xc8\xe6\xe5\x04\x58\xa3\x84\x96\x98\xaa\xdd\xad\x7e\x1f\xab\x40\xfb\xa3\x19\x51\xd8\x27\xae\xde\xa0\x36\xb5\xb4\xed\x6a\x28\xba\x87\x21\x0c\x30\x40\xf4\xbc\x25\xfa\x99\x43\x34\x53\x2a\x06\x7c\x6e\x6e\x55\xf5\x72\xe1\xa7\xc1\xb1\x52\xa9\xc3\x14\xe2\x9b\x7d\x9d\x97\xb2\xd4\xc3\x36\xae\x94\xc8\x0c\x06\xa5\xf2\x0d\xee\xf3\xa9\x16\x20\x53\x4a\x13\x04\xc6\xe7\x4d\xb7\x01\x20\xb9\xbe\x96\x2d\x3c\xf7\xbf\xca\x44\xdc\xf0\x9e\x07\x97\x57\x26\xd7\xb2\x78\x2c\x6f\xfb\xe3\x82\xdb\xbe\xfd\x79\xd8\x4a\x35\x7b\x76\x40\x2c\x8f\x7c\xa5\x1f\x0d\x2a\xc2\x07\x6d\x0c\xa8\x37\xfd\xf7\xb6\x5a\xf5\x54\x4f\xfa\xef\x70\x94\xc8\x5e\x01\x0e\xd5\xe7\x9d\xd6\x45\x55\x8f\x71\x58\x3a\x4a\x79\xe2\x2b\xc8\x17\x63\x3d\xa9\x70\x58\x58\xc4\x84\xa9\xaa\xae\xab\xf7\x53\x5d\x10\xa6\x63\xe1\xd8\x0e\x0a\x4a\xb0\xb9\xce\xe5\x1c\x2a\xae\x89\x8c\x30\x14\x47\x78\x24\x6c\xab\xdb\xaa\x19\xb8\xc3\x9a\x74\xbb\xe4\x80\x84\xfa\x15\x3e\x2e\xab\xb2\x69\xe5\x3c\x62\xd0\x34\xa6\xd6\x0b\xc8\xf9\x44\xf0\x8b\xdc\x03\x7a\x20\x58\x39\xd3\x93\x65\x9a\x65\x96\xe8\x1e\x4a\xee\xee\xfb\x32\x59\x4a\x27\x0c\x88\xb3\xb6\x79\x03\x59\xdc\x7d\x7c\xaf\xe6\x56\x12\xe7\xa5\x8b\xc2\x29\x64\xe6\xd3\x16\x59\xb7\x37\xba\xba\xae\x6a\x07\xca\x6c\x26\xe6\xed\x4c\x27\xd6\xa6\x4e\x38\xf2\x6d\x0b\xd2\xa5\x11\xd3\xb8\x5f\xa7\x89\x70\x0b\x21\x3a\x3e\xfa\xee\xe2\x82\x30\x49\x37\x52\xda\xf1\x5e\xe3\xf6\x62\x7f\x50\x44\x9a\xea\x3e\x47\xf8\xfa\x70\x75\xbb\x4b\xee\xfa\x83\x54\x38\x2d\xf7\x3a\x7f\xcb\x65\xb1\x7d\xa9\xa1\x79\x19\xa0\x9e\x3a\x4b\xa5\xf1\x20\x60\xec\xf9\x62\x54\xe5\xa7\xf7\xec\xee\x65\x42\x62\xed\x3c\x58\xa7\x4c\xe5\xa5\xba\xe3\x8a\xf4\xb4\x65\xef\x6d\x18\x8e\x49\x92\xba\xf2\xb7\x2c\x66\x2f\x67\x18\x20\x13\x2c\x01\xa3\xb2\xf3\x13\xc8\xa6\x5f\x08\xb4\x8a\x53\x69\x7a\x43\x22\xf7\x80\xd7\xa8\xd4\xd8\xff\x0a\xa5\xd3\x2c\xee\xeb\x5e\x05\xf8\x67\x12\x0e\xeb\x94\x22\xdf\xfd\x7b\xf5\x13\x8a\xd0\x95\xaf\x67\xa6\x31\x13\x4f\xb0\xf0\x41\x9b\x60\x38\xf2\xa3\x96\x87\x03\xd4\xb7\x95\x7e\x5d\xb7\x2f\x67\x0c\x33\xa7\xd3\xd2\xc4\x0e\x69\xe0\x37\x12\xb7\x10\x87\x0b\x32\x9c\x84\x32\x8e\xab\x73\x2e\x58\xf2\x32\x0d\xb1\xc4\xa5\xbc\x9d\x48\x6a\xc8\x13\xf5\x46\x3f\xdc\x32\x86\x6b\x2a\x34\x6d\xbe\x97\x2d\x74\xd3\xea\xed\x14\x7b\x6e\xa2\x8c\x60\x26\xe3\x92\xc6\x6e\x1f\x0b\x33\xd2\x44\xd2\x35\x01\x9f\x61\x49\xf5\xa8\x3b\xae\x99\xe8\xaf\xc8\x37\x9a\xfb\x0f\x6b\x27\x77\x38\x68\xc7\xc6\xd1\xdd\xf6\x66\x9e\x08\x9b\xc8\x02\x52\xff\x50\x0a\xed\xb1\x6f\xf2\x9b\x38\x72\x2a\x58\x79\xe3\x3c\xd5\x10\xb1\xf9\xf7\xa6\x8f\x6a\xc3\xb0\x84\x21\xdf\xa5\x69\xbb\x5c\x56\xcb\x96\x7d\x06\x07\x0e\x1f\x12\xae\x65\x1b\xe6\xee\xdf\xab\xbc\xdc\x1c\x8a\x7c\xf8\x72\x15\x47\x0e\xf2\xec\x56\x27\x97\xf5\xf8\xe0\xab\xef\xd4\x19\xa2\x8d\xb2\x21\x73\xd0\x70\x40\x1e\xf3\xec\x26\x11\x03\x3a\x19\xdf\xc4\xe9\x6b\x6f\x28\x25\x92\x8c\x6c\xa9\x01\x1c\x7a\xb2\x99\x93\xf8\x0d\x8b\x19\x06\x03\x2e\xd4\xad\xea\xbd\x2c\xfa\x06\x7d\x55\xdf\x98\x66\xde\x09\x36\x5c\x28\x6c\x01\xde\xd5\xef\xe3\xc2\x85\xe1\x9a\xe0\xb2\xd5\x56\xeb\x2f\x4f\xb3\xf9\x90\x88\x54\xd8\xe0\xc3\x76\x97\xeb\x3a\xc8\x9d\xcf\x86\x65\x12\x21\x9f\x9b\xd0\x97\x3b\x6d\xc9\x8e\xe3\x63\x93\x18\x15\xf5\x2b\xe5\x66\x01\x29\xfd\x79\xed\xcc\xa4\x8c\x38\xcd\xe5\xfe\xf3\x9f\x8f\x17\xcc\x3d\xc1\xcd\x8f\x3e\xd4\x34\x42\x38\xa2\xcf\xd5\xd5\xdf\x07\xb2\xa5\xc9\x62\x9d\xc8\x60\x95\x29\xf3\x10\x7c\x1a\x65\x08\xfa\x11\xdc\x56\x3d\xee\xd2\xc1\x1f\x96\x5f\x38\xa3\xa5\x11\x81\x51\x70\x95\xdb\xee\x51\x96\x0e\x18\x33\xb2\x77\x60\x46\x6b\xc6\x64\x48\x95\x0f\xcb\xd9\x84\xe9\x66\x4d\x80\xa6\xa1\x7d\xe3\xdb\xe6\x45\xd6\xf3\x57\xd7\x74\x41\xa0\x0f\xc5\x7b\x5d\x88\x1b\x73\x5d\xd5\xa7\xa8\x6a\x03\x2c\xc2\x53\xae\xca\xb2\x9a\x4c\x06\x48\x5d\x67\xfd\x7b\xde\x1c\x65\x31\x92\xfd\x64\x06\x24\x28\x6f\xfe\x56\xe7\xf0\x86\xe8\xe6\xc5\xf5\xcd\x00\x38\xd4\x63\x30\xc2\xbd\x98\x20\x9e\xce\x12\x03\x0c\xd8\x38\x22\x61\xe9\xdb\xcb\xbc\xf4\x6a\x87\x5d\x06\xfc\x60\x1d\xc8\x69\xf9\x76\xdb\x48\x62\xe2\xfb\x7a\x34\x55\x73\xf1\xe1\x9a\x65\xe1\xc2\x2d\x13\xd8\x94\xeb\x72\x8d\xdb\xf5\xf7\xf5\x6d\x4f\xd6\x33\x16\x9c\x4e\xfc\xad\x2c\xcd\x5e\xd6\xaf\x97\x55\x8e\x94\xaa\x6b\x3f\x00\x62\x6e\x80\x07\xb5\xb2\x59\xd4\x03\xb1\x88\xb8\xdf\x20\x9d\x24\xc1\x75\x55\x23\x96\xe3\xf3\xa8\x1f\x62\x41\x12\x9f\x35\xdd\x1f\xf7\x23\x30\xce\x9f\xb4\xa8\x81\x24\x04\x15\xa7\xde\x0b\x6c\x30\x5e\x8c\xd0\xee\xc0\x65\xe4\x25\xc2\x9d\xe6\xd6\xb7\x0b\x68\x9d\x68\xf5\x62\x1e\xbe\xfc\xcf\x62\x18\xfd\xb7\xa5\x77\x0a\x12\x9a\x61\xb6\x63\xa1\xd5\x2f\x9b\xa2\x5a\x16\xc6\x67\x90\xc8\x0c\xd5\x8e\x5a\x90\xfb\xb1\x09\xdc\xc9\x30\x47\xc4\x6d\xa0\xee\xa2\x25\x2c\x7a\x7c\x7e\x33\x52\x6e\x31\x3c\x59\x52\xb6\x9b\x4e\x48\x48\x85\x74\xc6\xf0\x2d\x22\xa7\x07\xb0\x55\xb8\x79\xa9\xb1\xda\xf6\x5a\xa1\xd0\x3e\xc9\xbc\x99\x83\xb9\x40\x44\x90\x85\x5a\x2c\xf2\xe8\x2f\xab\x43\x88\xef\x41\x24\x80\xe4\x4e\x2d\x0b\xdd\x9e\x54\x6c\x40\x08\xeb\x0c\xf2\xe5\x87\xdc\x9e\x12\xae\x20\x13\x1c\x51\x7a\x33\x41\xa9\xcb\x99\xa1\x25\x03\x49\x1c\xac\xe9\xfa\xf6\xdb\x6f\xf8\xfc\xc7\xaf\x2f\x48\x26\x83\xda\x86\x77\x45\x30\x8e\xe5\x3d\xb6\x76\xf8\xda\x9b\x4f\x31\x90\xde\x67\xfe\xf9\xed\x00\xbb\x03\xd4\xbb\x5f\xa1\x6f\x80\x81\xf2\x00\x9d\x6e\x7e\xe7\x75\xe3\x13\x97\x75\x69\xae\x46\xa2\x22\x61\xac\x8a\x8d\xb3\x5f\xdd\xef\xab\xb2\x07\x23\xff\x25\x3c\x0f\x28\xab\xb1\x38\x7c\x0c\x32\x8d\xa1\x08\x01\x3a\x8d\xa4\x33\x13\x6a\xa1\xde\xe7\x25\xac\xda\x56\xea\xee\x21\x3e\xd4\x57\x60\x5d\x94\xf1\x70\x6c\x75\xb5\xc7\xb7\xaf\xf5\xe1\xc5\x5f\x16\x58\x09\xdf\x63\x24\x76\x7f\xbb\xa4\xcd\xd5\x8d\xc7\x35\x44\x30\x11\xb1\xc9\xb0\x04\xcf\x17\x02\x43\x2d\xee\x1a\x5a\x3a\xdf\x8c\x6e\x4b\x22\xfd\x67\x13\x8b\xe5\x9d\x7d\x5e\x5e\x5e\x6d\xb7\xd5\x40\x5f\x86\x7e\x88\x74\xec\xa2\xdf\xab\x63\x97\x17\x9d\x79\x45\x80\x33\xdf\x5d\x7f\xab\x5e\xc1\x01\xbe\x4e\xc0\x5a\x00\x59\xea\xdc\x20\xda\xaa\x06\xe7\x16\xe6\xb6\x0b\x7f\xdc\xc6\x34\x80\x0e\x71\xea\x74\x8f\xaa\x3a\xb6\xe3\xea\xeb\x90\x13\x83\x8d\x13\x44\x72\xd8\xbc\x34\x63\x1f\xee\x70\x58\x12\xac\x96\x5a\x80\x3b\xf9\x0a\xeb\x9f\x87\xaa\xee\x2d\x56\x99\x8d\xe2\x04\x15\x42\x42\x39\xc1\xd5\xc1\x4e\x36\x80\x30\xda\x0b\x87\x76\x91\x7a\xb5\x87\xef\x72\x38\x0f\x73\xba\xe2\x17\xad\x5e\xb7\x2f\x4f\xa8\xb3\xd2\x1b\x8c\x8e\x4e\xc0\x2d\x86\xfa\xff\xa9\x8a\x89\x4a\x82\x8d\x44\x4f\x5b\x7f\xac\x8a\x5c\x7f\x8c\x34\xef\xba\xa3\xe0\x08\x97\xf2\x63\xce\xd8\x19\x9d\x5b\x4a\x06\x13\xd5\x8d\x85\xba\x87\x8d\x29\x20\x79\xae\x7b\xc5\xba\x3d\x25\x5c\x40\xcc\xa2\x2c\xd8\x58\xcf\xd5\x41\x5c\xef\x74\x1c\x92\xda\x38\x55\x18\x4f\x61\xac\x10\xf4\x2f\x16\x97\x36\x1b\x0b\xa7\x4d\x95\xeb\xca\x01\x16\xd6\xa3\x6f\x05\x06\x5e\xde\xd9\x00\xe2\x26\xaf\xa0\x38\xa5\xb8\xfd\x69\x03\x71\x9a\x0a\x9d\x4b\x86\x87\x59\x63\x09\x73\x1a\x72\x8f\x85\x2c\xa1\x95\xcf\x75\xb5\x9e\x71\x2d\xfc\x40\x1a\x29\xea\xd7\xab\xeb\x63\x7b\xac\x9d\xa8\xcf\x8d\xf9\x79\x02\xa6\x0e\x1f\x88\x25\x66\x21\x5e\xef\xe1\xe6\xf2\x61\x73\x00\x1d\x7e\x30\x65\xee\x35\x75\xa5\x7e\xb4\xf5\xfe\x6b\x2b\x90\xa5\x4a\x83\x63\x1d\x7a\xf2\x8d\xff\x3b\xcb\x24\x95\x83\x30\x77\x40\xbe\x4d\x02\x34\xcb\x0c\x23\x3e\x82\x6e\x5f\xae\x8f\xe5\x18\x58\x6b\x99\x75\x48\xee\x5f\x7f\x7f\x0a\xb0\x4d\xcb\x09\x09\x75\x89\x75\xfb\x72\x97\x97\x67\xd5\x59\x99\xe5\x94\xa0\xd9\xea\x06\x4a\x33\x08\x2e\xd8\x84\x13\x74\xa7\x59\xfd\xca\xd2\x91\xcc\x9b\x4d\x38\xcf\x9c\xab\x09\x74\xab\xd0\x0f\xc8\xfd\x5e\x16\x8e\x0b\x27\xb5\x63\x7a\xc7\xf7\x2f\xe0\x1c\x8a\x9b\x7e\x88\x74\xbb\xa5\xad\xea\x2e\xf7\x58\x6f\xbf\xb6\xd5\x66\x7b\x19\xa2\xb9\xd9\xf5\xa5\x4c\xa1\x1c\x0d\xc2\xfe\x16\x62\xbb\x53\xa3\xbb\xee\x8e\x24\x88\x5d\x57\xb2\x81\xcd\xb1\xdb\x30\xc6\x51\xb1\x4d\x41\xa4\x3a\x04\x5d\x17\xdd\x7e\x70\x06\x9e\x65\x45\x94\x05\x39\x66\x67\xc5\x7a\xce\x71\x29\x8c\x17\x26\x8d\x47\xe1\xfd\x57\x59\x1b\x64\xb4\x84\xaf\x16\x52\x22\xe6\xea\xa6\xda\xc2\x6f\xa1\xe5\x36\xfd\xce\x8c\x38\x45\x8b\x5c\xbb\xd0\xb9\xb9\x05\xdb\x7f\x3e\x33\x0e\xdc\xdc\x7d\xc1\x2e\x0f\x65\xa9\x9d\xee\x42\x70\x3f\x44\x1a\x82\x80\xe6\x1c\x0b\x5c\x1a\x7a\x9d\x23\xab\x84\x63\x08\xec\x0c\x14\xf9\x5b\xdf\xae\xfd\x8b\xaf\x67\x38\x49\x06\x22\x0e\x29\xdb\x13\xfc\xf7\x38\x6e\x91\x5a\x1d\xc7\xa1\x0c\xb9\xd2\x68\xb4\x15\x0e\xa4\x3a\x19\x8a\xa4\x5d\x0e\x1c\x5c\x96\x64\x01\x4d\xef\xf0\x36\x4b\xd8\xad\x96\xc6\xe1\x65\xbb\x34\xf4\x9f\xdb\xaf\x3f\xe4\x33\x0c\xc5\x17\x6b\x48\x86\xc6\x6b\x3f\x1e\x6e\xaf\x49\xff\xc7\xcc\xa2\x92\x21\xa2\x50\x31\xec\x7d\xb0\x0b\xca\x5a\xd6\xc8\x08\x61\x54\xbb\x76\xd2\x6a\x39\xb7\x6a\x7d\x9a\x72\x5a\xc8\x18\xce\x29\x74\xa7\xbe\x87\xf7\xa7\xf1\xfe\x71\x66\x51\xb0\x8a\xab\x71\x48\x3d\x4d\x6d\x17\x23\x67\xfc\x24\x8f\xa2\xcc\x22\x67\xd2\xd3\xdd\x2e\xf2\x53\xad\xf6\xff\xa5\xb6\xc8\xa3\xc8\x00\xea\x7d\xe1\x94\x82\xa6\x45\x92\xe0\xb0\x5c\xcc\x4c\xeb\xc3\x9b\xc6\xa3\xc8\xba\xcf\x61\x4a\xf5\x9c\x57\x65\xe0\x80\xe4\x3f\xa1\x38\xc5\x25\xf3\x28\x8e\xe2\x90\x9a\xbf\x82\x07\x4c\xf8\xc7\xc9\xa3\x98\x43\xea\x82\xbc\xc2\x8c\xea\x8c\x3c\x8a\x85\xc1\x9d\xb7\x52\xff\x01\xdd\x3e\xca\xbe\x6e\xc4\xa3\x58\x39\x8a\x7a\xa8\x2d\xb7\xbd\x70\x20\x8f\x62\xc3\xb9\x27\x31\xac\xf7\x50\x3f\x43\xa9\x3f\x7e\x19\x5d\x3d\x89\x35\xc2\x0c\xff\xbf\xcd\x80\x70\x12\xc2\x5d\xfa\x9c\xbf\x81\x7c\x97\xcb\x4b\x09\x8f\x48\x42\x51\x10\x5d\xe5\xad\xae\xf2\x72\x6a\x93\xce\x23\xa2\x65\xe2\x01\x72\x27\x0d\x59\x1e\xd1\x8c\x81\x8f\xf1\xbe\x48\x6c\x01\x74\xd1\xe8\x55\x2d\xdf\xfb\x22\x18\x8f\xa8\xa4\x88\xb1\xeb\x9b\x2b\x2f\xa8\x01\x31\x99\xf5\x3c\x62\x31\x0b\x48\xbc\x5e\x1d\xf1\x6c\xce\xcc\x23\x1e\x3b\xe5\xd2\x76\x68\xa4\x74\x11\xdd\x15\xe8\x7c\xdf\xaf\xe9\x3c\x4a\x08\xc1\x7d\x53\x75\x8f\xa0\x1c\x81\xee\x78\x94\x30\x82\xe0\x8b\x40\x87\x74\xa4\xdd\xd1\x4f\x4f\x12\x81\xbd\xda\x6a\x0f\xcf\x72\xca\xa3\xe6\x91\xc8\x9c\xb3\x98\x92\xfa\x75\x5d\x9a\x87\x03\xd4\xb2\xf7\x33\xe6\x91\x00\x93\x45\xa1\x14\xe0\x78\xfe\xf3\xa7\xb5\xfc\x38\xb2\x28\x01\x39\x2a\xba\x5d\xc9\xfd\x02\xc7\x69\x54\x91\xe5\x91\x24\x80\x94\x6e\x93\x6b\x78\xaa\x8a\x62\x52\x5b\xe3\x91\xa4\x04\x3b\x28\xab\x3a\x6f\x5f\x6e\x73\x15\xfe\xae\x84\x4e\xbc\x2f\x7d\x5e\x6e\xda\xda\xa3\x35\x97\xf9\x28\x3c\xd2\x51\x86\xed\x6f\xef\x7e\xd2\x67\x3a\xf3\x51\xce\x36\x68\xb5\xdf\xab\xb1\xe7\x00\x8f\xb4\x10\x51\xd0\x7c\xc7\x1c\xf4\x3a\x37\x72\xfe\xe9\x8c\xc6\xae\xe2\x8d\x82\xb3\xf7\x93\xe7\x65\x12\x19\x3c\x54\x37\x50\x14\xa3\x9d\x93\x47\xc6\x66\x16\x03\xaf\xaa\x2a\xdc\x1a\xee\x97\x87\xcf\xa2\x1f\x1e\x01\xe1\x32\x1a\xd4\x35\xff\x5f\xca\xbe\x6c\xb9\x51\x24\xfb\xfb\x75\xfa\x62\x2e\xd8\x72\xe1\x52\x92\x65\x97\xa6\xbd\x8d\xa5\xaa\xea\x9e\x2f\xfe\xa1\xc8\xe5\xa4\xcd\x94\x04\x1a\x40\x65\xbb\x9f\xfe\x0b\x4e\x2e\x2c\xc2\xae\x9e\x88\x89\xa8\x1e\x93\x42\x08\x92\xcc\xb3\xfc\x96\xff\x35\x40\xf4\x67\x91\x1c\xf5\x9c\x96\xe7\x77\x21\xbb\xad\xf8\x5c\x7f\x36\x73\x4d\x62\xd2\x1e\x05\xbd\xac\xaa\x43\x33\xb4\xb2\xa9\xaa\x83\x1f\x1a\x47\x34\xc3\xb2\x29\xaa\x1b\xbf\x54\xe7\x06\x02\x39\x81\xc4\x51\xee\xf4\x9a\x51\x03\x62\xac\xe0\x3e\x88\xaa\x49\x1c\x41\xcc\x5d\x12\xb7\x2d\xd5\x65\xd7\x85\xc4\x71\xac\x62\xb7\x5a\x6e\x5a\x38\xda\xb6\xcd\xf8\xd9\xc4\x31\xa3\x58\xbc\x87\x52\x7b\xd3\x9b\x0f\x10\xaf\xa3\x8d\xb9\xfb\x20\xa0\x3f\xa2\xaf\x33\xef\x66\x4d\x31\x43\xd8\x34\xbe\x5b\x71\x2c\x32\x0c\x03\x51\x56\xaa\x19\xb6\xae\x49\x9c\x44\xd6\xbc\xd5\x2b\x84\x35\xae\x6e\xe6\xd7\xed\x38\xe1\x0c\x61\x53\xd8\x76\x19\xdd\x93\xd4\x58\x3d\xd9\xaa\x5c\x9e\xeb\x72\xf2\x53\x33\x69\x55\xa5\xab\xd7\x12\xf4\x0e\x8e\xa7\x83\x68\x21\xdc\xac\x4c\x59\x6d\xf5\xa7\xf5\xe2\xf6\xf1\x20\x14\xb8\xdb\xf5\xf9\x5d\xa0\x11\xc7\x8e\xb7\x13\xe1\xbb\xb2\xbe\x7a\xdd\x1b\xb4\xba\x68\x73\x90\x98\x0a\x13\x05\xdf\xfb\xb2\xdb\x83\x37\x7a\x3a\x44\xe5\xd8\xff\x32\x75\xf5\x17\x94\xb3\xd5\x67\x37\x92\x65\x69\x6c\xbb\xdb\x20\x46\xe4\x09\x12\x33\xc2\x70\x6a\x88\xb2\xac\xce\xa5\x72\x79\xb3\x75\x2f\x99\x00\xee\x49\xcc\x33\x86\x31\x94\x7a\x29\x5c\xb9\xfb\x03\xee\xd6\xe4\xfb\xb9\x30\x3a\x40\xb6\x76\xd5\x58\x9d\xd7\x8d\xc9\x25\x47\xf2\xed\x0b\xd4\x95\xf3\x04\xfb\x2d\x1c\x92\x3c\xed\x99\x10\xdb\x56\xb4\x13\xb1\x7a\x12\xe7\xca\x6d\xd0\xa6\x9a\x4c\x6d\x91\x50\x34\x27\x28\xc5\x11\x1e\xcc\xe4\x63\x82\x12\xec\xb0\x69\x10\x87\xbd\xea\x82\xd2\xc3\xbe\xee\x77\x80\x58\x70\xaa\xdc\xf6\xd6\x4e\x7b\x91\xa3\x13\xc9\xc8\x9a\x25\xed\x91\xf5\x32\x17\xa0\x92\x58\x66\xe0\xab\x9f\xdb\x73\xfd\x13\xde\x51\x9e\x6a\x18\xad\x91\x58\x8a\x84\x45\x9e\x90\xf2\xbc\xc2\x2b\x5a\xd4\xcf\xe7\x6e\x35\x0c\x3f\x49\x65\x02\x2b\x90\x0b\xad\x07\xc4\x01\x3e\xf9\x3a\x25\x69\xea\x08\xd4\xad\x65\x01\xd8\x0a\xce\x4c\x7f\xcf\x7d\x42\xe7\x39\x56\x0b\x5c\x8e\x89\xf8\x76\x5d\x88\x72\xe5\xf4\xa8\xaa\xb7\xf7\xc9\xe5\x02\x51\x88\x64\x35\x85\x68\xed\x06\xe9\xaf\xd1\x64\x06\x25\x3b\xfc\x9e\xbf\xf0\x79\x00\x49\xa2\xcc\x26\x76\xcd\x50\x19\x77\x36\x5d\xe5\xfe\x13\xa0\xb1\x5b\x70\xfb\xe7\xee\x13\xc0\x03\x49\x62\x62\x0d\x7f\x6c\xf0\xb9\x6d\x45\xa9\x45\xad\x2f\xcb\x8e\x24\x49\x52\xab\xbb\x8b\x92\xa5\xb7\x45\xe3\xea\xd8\xbd\xb8\x33\x49\x52\x9a\xe3\xe2\x62\x11\x91\xb7\x1e\x89\x31\xb3\x01\x27\x24\xcd\x50\x54\xec\x1b\xd4\xc1\x5f\x1b\x75\xcc\x67\x7f\x95\xbf\x7b\x09\x51\x02\x93\xb8\x93\x50\x3f\x10\x99\x3d\x7e\x38\x8e\x57\x15\x86\xd3\x98\xe5\xe0\xcb\x44\xc5\xa1\x5b\x97\x1c\x52\xc8\xa9\x84\x8d\x9e\x4d\x42\x63\x01\x56\xdb\xa0\x14\x68\x26\x33\xbe\x03\x4c\x0b\x7c\x2f\xf6\xde\x43\xb7\x9b\x4a\xf7\xd5\xb4\xe1\x46\x12\x2e\x25\x96\x56\x8b\x66\x7b\x96\xc1\xc9\x7f\x82\xc5\x76\x63\x73\xc6\x30\x07\xbb\x2b\x5c\xd3\x67\x7a\x9c\x6b\x6f\x0c\x16\xd0\x96\x23\xa7\x55\x3f\x4e\x02\xc6\xa4\xaa\xa8\x9d\x2f\x07\x2e\xef\x73\xe8\x1e\x92\xe4\x1a\x22\x4f\xdd\x0e\x0e\xe7\x60\xbb\xe1\xfe\x9d\x49\x44\xc4\xa8\xe9\x5b\xcf\xbe\x15\xdf\xc7\xdc\x89\xa0\x1c\x0b\x04\xd6\xc3\xd3\xf6\xeb\xfb\x08\x23\x11\x3c\xc1\x6e\x69\x59\xb5\xa1\xdb\xd7\x9f\x5d\x66\x78\x10\x9f\xc0\xae\xfa\xda\x3d\xbd\x01\xd0\x84\x24\x32\x11\x82\xf5\xe9\x48\xd3\xbd\x16\xe1\x85\x4e\x24\x8f\x15\xeb\xa5\x05\x96\x42\x3f\xf7\x57\xae\x84\xd5\x2d\x82\x52\xef\xfd\xdf\x34\x61\xc8\x40\xfb\xe7\x9f\xc3\x10\x2b\xd1\x39\x30\x98\x08\x8c\x5f\xa8\x8e\x91\x44\x83\x45\x11\x79\xbd\xbc\x66\xd3\x4e\x77\xfb\xc4\xc4\x02\x0d\x82\x96\x37\x7f\x8c\xbe\xc2\x30\x8d\x15\x3a\x83\xef\x8b\xe7\x5b\x0c\x04\xa7\x07\x49\x58\x1a\xc5\x31\xb2\x6c\xc5\xb9\x7d\x81\xb2\xc5\xe7\xf2\x69\xea\x49\xd2\x48\x48\x2b\x55\xff\x6a\xe9\xda\x7a\xa8\x7b\x4c\xd2\x34\x62\x88\xeb\x38\x9d\xe5\xa1\x40\xcf\x09\x9b\x40\xfb\xc3\x86\x20\x63\xe3\x69\xb1\xd9\xae\xaf\xf6\x8b\xbb\x87\xaf\xf7\x3b\x7f\x30\x13\x32\x72\x10\x9a\x95\x38\x35\x96\xe4\x87\x04\x8c\xd1\x8b\x93\x92\x28\x89\x5c\x10\xea\x9e\xf2\xf8\x12\x49\x26\x91\xee\x82\x1e\x82\x38\x47\x9a\x45\x0d\xab\x43\xd5\xcc\x8b\x0b\x90\x94\x80\x62\x6c\xb0\xf7\x0f\x7a\x12\x57\x41\x64\x94\xa4\x94\x48\x19\xf5\x32\x47\xb1\xff\x3b\xa3\x94\x38\xaa\x8c\xab\xf8\xfb\x23\xb9\x2b\xcf\x5f\xed\x56\xab\xfd\xe6\xf6\xe1\xbb\xef\xf0\x91\x34\x4f\x58\x22\x7c\xab\xf8\xca\xbb\xc3\x91\x34\xe7\xce\xcd\x16\x9a\xb6\xae\xde\xaf\xeb\xea\x38\x7e\xf9\xd2\x9c\xeb\x8c\x04\xe3\xb5\xbb\x62\x5a\xa0\x20\x69\xae\x28\x06\xf9\xe5\xf9\xb8\x6f\xfe\x7b\x16\xfd\x7b\x96\xe6\x20\x85\x13\x69\x46\x02\xdc\xf2\xfc\x8e\x5a\x34\xfd\xa4\x10\x52\xe3\x23\x74\x8b\xf4\x8b\xa8\xa1\x5f\x2a\xb8\x1f\x04\x89\x12\x3e\x30\x2f\xea\x55\x75\xa8\xea\x4b\xcd\x40\x92\x4a\xae\x71\xc5\xb7\x52\xaa\x4b\xa1\x7e\x3c\xa3\x23\xea\xe6\x38\x15\x05\x25\xa9\x4a\x09\x96\xf4\x03\x69\xc3\xa3\x96\x47\x91\x61\xaa\x88\xc6\xba\x1e\xec\x3f\x35\x6e\x27\xa9\x96\x29\xfe\x54\xb4\xe1\x03\x8f\xee\x19\x2d\x0c\x29\xa4\x31\x36\x27\xbb\x45\x76\xeb\xa5\xab\x06\xbb\x4c\x0a\xa9\xf5\x33\x7c\x2d\x4a\x5d\xbd\xa6\x23\x47\x14\x92\x02\x8b\xfb\x00\xd7\x42\x7b\x25\xd4\x0f\x26\x2c\x87\x5d\xbc\xd6\xbd\x04\xa7\x8b\x02\x2a\x49\x4d\x9c\x61\x9f\xf0\x20\x9a\xd1\x52\x96\x1a\x62\x41\x29\x27\x6c\x09\x58\xe8\x51\x00\x0d\x93\xd4\xb0\x2c\x1f\x18\xaf\xe2\x47\x37\xe5\x95\x28\x0e\xef\x8b\xf3\xa0\xc4\x4b\xb2\x28\x4e\x90\x9c\xaf\x41\x9e\x4b\x7d\xf8\x30\xc5\x75\xc3\x63\x19\x61\xab\xd3\x0a\x6a\x39\x53\x11\xfb\xf2\xb9\xe7\x9e\x25\xd2\xb6\x5d\x9a\xb2\xdd\x3b\x7a\x90\xff\xb2\x34\x15\x09\xb5\x1e\x21\xf6\x36\x34\xdd\xdc\xc5\xb4\x6d\xb0\xd2\x66\x69\xc6\x71\x6e\x16\xaa\xda\x34\x0f\xa1\xa2\x4d\xb2\x8c\x70\x8f\x08\x5c\x3d\xfd\xf9\xb8\x7b\xb8\xdf\xaf\xbe\xfa\xc5\x21\x23\x24\x42\x16\x8b\x68\x1a\xa8\xdb\xf5\x7f\xb9\xbb\xae\x7f\x0c\xff\xf1\x4b\x44\x46\x72\x93\x75\xb7\xe8\x3b\xc0\x8f\xc3\xbb\x8b\x57\x97\xe3\xb7\x24\x23\x22\x4a\x1d\x7f\xf3\xa6\xae\xce\xa7\xde\x04\x65\xfc\xa0\x32\x62\x38\x4a\xb4\xda\x32\x44\x20\x82\x5c\xf8\x11\x93\x8c\x72\x85\xf7\x00\xcb\xfc\xe8\xfb\x3e\x3b\x35\x33\x2a\x58\x46\x07\x7c\x54\x70\xfb\xd5\xc4\x37\x85\x64\x2c\xb1\x26\x9e\x77\xf7\x88\x94\xf3\x77\x83\x49\x2b\xfc\x78\xb5\xbe\x7e\x7a\xd8\xee\xf6\x77\x0f\xf7\xbb\x2f\xb7\x7f\xee\x1f\xd7\x4f\xab\xf5\xfd\x6e\xff\xf0\xfd\x7e\xfd\xe4\x07\xe7\x91\xe5\xad\xef\x85\xd6\xf7\xf0\x8a\x0b\x72\x97\x12\x15\xe5\x73\xe3\xd1\xc0\x9f\x26\x08\x59\x6e\xac\x26\xf4\x33\xb4\xf8\xab\xad\x09\xc8\xa4\xc3\x47\x32\xc1\x95\x87\x49\xdc\x14\xf5\x61\x72\x17\x45\x6e\xac\xfc\xda\x4b\x75\xba\x39\x54\x3f\xc3\x9a\x94\x49\x41\xad\x54\x10\x2e\x12\xfb\x1f\x70\xa1\xe3\x10\x06\x0a\xac\x08\xfd\x47\x84\x29\x2e\x21\xf2\xf6\xf6\x9b\xa6\x39\x77\x01\x39\x1a\x6a\x4d\xbe\x5c\xa5\x8a\xc5\xc1\xd0\xba\x79\x28\xc7\x86\x00\xfd\x40\x9d\x08\xdc\xa2\x57\x2f\xe7\xd5\xb9\xbc\x2d\xca\xe7\xc5\xe6\xe6\xe1\x97\x3a\x4d\x24\xd3\x4a\x62\x2b\x70\xe1\x4c\xbf\xed\x03\xfd\x3b\xa9\x67\xa6\x41\x27\x32\x94\x73\x6b\xf1\x57\x51\x95\xd0\xa5\x3b\x1a\x55\x2f\x46\xcb\x5f\x06\x8e\xdc\xde\xad\x1a\x18\xc3\x6e\xc2\x1b\x68\x12\xca\x5d\x00\x7a\xb5\x12\x2d\x3c\x57\x75\x01\xcd\xfd\x78\xfb\xcc\x4c\xca\xf1\x15\x86\xb2\xad\xe1\x54\x43\x09\xe7\xf0\x0e\x1a\xa6\x31\x4e\xb2\x39\x6b\xf8\xab\xb2\xf6\x36\xff\x2e\x4e\xa7\xbe\xb0\x24\x0e\xa8\xac\x34\x9e\x03\x24\x4a\x04\x52\xca\x96\x0f\xf7\x5f\xb7\x63\xed\xb6\xee\x15\xce\x13\x33\xd0\x95\x71\x99\xe0\x5c\x36\x46\xe2\x4c\x60\x15\xe6\xb5\x28\x91\x58\x61\x2d\x54\x47\x0f\xab\x0b\x2d\xad\x09\x8a\xd6\xbe\x11\x10\x9a\xd8\xe5\x05\xd5\x98\x90\x44\xd9\xa2\xf3\x5d\x55\xb6\x2f\xc3\xb8\x85\xa4\xa9\xf5\xa1\xc7\xda\x55\xdb\x76\xaf\xc6\xfc\xab\xdb\x6d\x69\xd1\x50\xd8\x71\x4e\x73\x82\x90\x14\x62\x2c\x20\x87\xe0\xfe\x83\x93\x19\x8d\xe2\x5d\x45\xa9\x66\xdc\x59\x08\xc9\xba\xb0\xc8\xdd\x30\x64\x4b\x14\xb3\x1c\x5b\x42\x32\x29\x33\xfb\x0a\x21\x63\x65\x57\x21\xa2\x65\xf4\xe0\x09\x4d\x69\x0e\xc3\x34\x1f\xc9\x26\xfe\x0e\x50\x1e\x61\x60\x77\x72\x9b\x2a\x56\x3d\xc2\xea\x4c\xa8\xa0\xd4\x6d\xe4\xc5\xcf\x2e\xac\x82\x0f\x85\x44\x09\xa1\xbd\xb8\xc9\x46\x55\xd7\xdd\x82\xf1\x32\xf9\x65\x4c\x26\x9e\x3f\xe8\x25\x8a\xa6\x32\xe0\x7e\xa4\xb6\xd4\x0b\xef\x2f\x7f\x3e\x40\xb3\xfd\x58\x4c\x60\x7e\x09\x23\x3c\x66\x58\xb9\x3c\x8a\xb7\xd5\x8b\x08\x66\xfd\x84\xe4\x4c\x73\xe7\xb6\x37\xc2\x4f\x72\x7f\x5c\xc5\xe8\xb5\x62\xd9\x26\x5b\x38\x1c\x2c\xf3\x6e\x7c\x7a\xc1\x52\x94\x57\xf9\xba\x5d\x77\x0f\xc8\x9f\x5c\xe8\xcc\x7a\x73\xba\xe6\x46\x0f\x3d\x26\x44\x4a\x86\xcd\x59\xef\xcd\xef\x93\xa7\x4f\xcb\xcf\x44\x31\x85\x52\x8d\xcd\xa1\x50\xb0\xb4\xcf\x77\x51\xd7\x97\x5e\xdb\x1f\xdc\x07\x25\x25\x72\x0e\x56\xde\x51\xd1\xc2\x70\x3e\x22\x12\x0e\xd3\x68\xa2\x34\xe0\x4b\xe2\xc4\x5c\xa0\x7d\x28\x77\xd0\x65\xc5\x13\x1b\xd4\xc9\x37\x1a\x63\x1b\xc2\x07\x51\x1f\xdf\x46\x6f\x1d\x44\x80\x6b\xd9\x12\x0e\x22\xfc\x8d\x6a\x2c\xfc\x9d\x0e\xe2\xbd\x4b\x7b\x11\x2a\xb6\x2c\x26\xf5\x28\x02\x60\xe3\x32\x0c\x42\xf6\xb5\x2d\x59\xd9\x63\x34\x32\x26\xcb\xfc\x44\xbf\x83\x56\x68\xd1\x8a\xd9\xd2\x2b\x8d\x13\x5b\x44\xd8\xd5\xe2\x27\x1c\x06\x78\x14\x42\x63\x4d\x70\x25\xbb\xe9\xb6\x4a\x31\xe4\xd4\x12\x1a\x83\x31\xd4\xdb\x02\x55\x25\x74\x9b\xfd\xa0\x66\x76\x59\xbb\xa1\xb1\x51\xc8\x00\x43\xcb\xf5\xe6\x7c\xbc\x24\xd3\xcc\x3f\x30\x9a\x50\x6b\x2e\x87\xb0\x19\xa4\xac\xcc\xd9\xaa\xcf\xfc\x57\xf8\xbc\x35\x8a\xba\x5d\x2c\xd7\xeb\x5f\x19\xdf\x76\xc3\x0d\x9a\x19\xb5\xc5\x11\xdc\x1b\x77\x69\x26\x4c\x68\x22\x6d\x3d\x3f\x80\xfb\x2f\xb1\xe0\x84\xa6\x69\x82\xbc\x15\xa7\x15\x37\xcf\x58\x1d\xad\x63\x34\xcd\x08\x6a\x6f\x14\xaa\x0a\x78\x91\x6e\xe1\x4a\x50\xb2\xe6\xd7\xbe\xea\x1f\xfd\x3b\xf9\x16\x29\xf1\xf1\x59\xab\x08\x97\x24\x86\x2f\xd3\x84\xd8\x4d\xe2\x28\xb6\x27\xd1\x1f\xc8\x44\xee\x6b\x04\x8f\xd5\xe1\xe0\x0d\x2d\xfc\x51\x6d\x32\x1f\x65\xd9\x96\xff\x16\xfe\x7b\x86\xd2\x35\x32\x87\x8d\xd0\xfe\x0e\x11\xa1\x32\x57\x3a\xdd\xcb\x0b\x8f\x4f\x42\x89\xb2\xac\x92\xd3\xb9\x79\x41\x00\xa7\xc5\xf8\x1e\x61\xac\xa1\x33\xff\xe6\x51\x9a\x29\x8f\xcf\x7d\x82\x9f\xe8\x2c\xd0\x87\x3d\x73\x32\x74\x84\x52\xa9\x62\x17\xc2\x5d\x81\xac\x2d\x6b\x68\x4e\x0e\x89\x50\xaa\xa2\xc4\x41\xe7\xb1\xc8\x00\xa8\x4e\x34\x16\xf1\xed\x46\x59\x1b\x9c\x62\x25\x9a\xd1\x96\x4b\x59\x96\x21\x44\xab\x3c\x1f\x83\x24\xea\xf8\x62\x18\x70\xdc\xae\x7f\x14\x87\x0b\xd5\x39\x37\x84\xc7\x11\xd6\x2a\xf7\x0d\x94\xba\xd7\x5c\x22\x94\x77\xd9\x0c\xea\x3a\x76\xf9\xc2\x9d\x28\x0b\x03\x4d\x88\xa5\xc6\x73\x5e\xd0\x0c\x69\x78\x28\x78\x22\x5a\xd8\x94\x3f\xab\x42\x4d\x30\x65\x84\x0a\x49\x13\xef\x09\xfd\x58\x55\xe1\x92\x3c\xa9\x89\x50\x19\xc5\x08\xdd\x3e\x16\x65\x3b\x67\x74\x42\xa8\x4c\xd2\x08\xc5\xf8\xdf\xbe\x36\x50\x0f\x95\x3c\x09\x95\x3c\x46\x70\x92\x25\x2a\x6c\x4a\x14\xcd\x0c\x07\x45\x84\x01\xc5\xa8\xe1\xec\x8f\x81\xc9\x03\xf1\xd5\xe2\x2a\xea\x09\x1a\xc0\x8d\x54\x86\x22\x48\xf3\x7b\xd1\x96\x7d\x0d\x9e\x42\x1c\x61\x4a\xfd\x77\xe4\x12\x26\x3f\x08\x12\x82\x4e\xd1\x96\xe8\xb2\x51\x55\x3f\x43\xa7\x93\x19\x32\xbb\xd3\x62\xa6\xbc\x19\x51\xe4\x09\x05\x6e\x33\x69\xdb\xb6\xa8\xaa\x1f\xcd\xc8\x0a\x98\x50\xd0\x09\xc6\x5d\x6b\xa4\x60\x8e\xb0\xc9\xb3\x88\xe1\x71\xdf\xca\x9e\x84\xc5\x91\xb5\xf0\xf8\x64\x1d\x1c\x85\xf8\xfe\x63\x9a\x23\x6e\xfc\xda\x02\x8f\x2e\xc5\xff\xc7\x37\x85\xa5\x69\xce\x7d\x91\xc5\x03\x3f\xa7\xf0\x8c\x4b\xe1\x2a\xc2\x32\x6a\x7b\xcb\xf2\x3c\xb1\x28\x9f\x0c\xe3\x12\xe1\x73\xdd\xed\x19\xc2\x85\x09\xa3\xa9\x31\xcc\x33\x92\x6c\xd3\x31\x84\x70\x8c\x2a\x89\x21\xdc\x4f\xa8\x0b\xf3\xbe\x13\x75\xcf\x98\x71\x23\x18\xd3\x08\x32\x7a\xc2\x87\x39\x53\x20\x66\xcc\xc4\x44\x0d\x7a\xf2\x8d\xeb\xf6\x84\xc3\x14\x03\xfc\xc7\xa7\xf5\xfe\x6e\xf1\x47\xcf\xa0\x25\x8c\x13\xc8\x54\x5f\xb5\x58\x9e\xdf\xc3\x11\xce\xa2\xee\xa1\x3c\x15\x32\x68\xda\x11\xc6\x21\x75\x00\xf7\x45\x7b\x57\x35\xf3\x28\x6e\xc2\xb8\x49\x89\xdb\x89\x9d\x27\x45\x3f\x01\x47\x5d\x57\x8f\x64\x49\xc6\x72\x10\x31\x71\xe1\x31\xcb\x75\x82\x55\xbc\xd3\x10\x7c\x72\xd9\x1e\x66\xc2\xc4\x68\xb8\x0d\x6f\xbd\x14\x81\x3b\x24\xa3\x2c\xa6\x41\xe9\xe6\x0a\x5a\x51\x1c\xe6\xa9\xf9\x84\xc9\x98\x61\x53\xba\xdb\x68\x7b\x5f\x57\xc2\x24\xb3\x38\x97\xde\xf2\x1a\xfb\xc1\xf8\x98\x37\xab\x87\xc9\xf3\x90\x9a\x20\x77\xa6\x11\x03\x5c\x2a\x61\xd2\x09\x3f\x58\xf1\x85\xc4\xff\x59\xa5\xca\xfb\x89\xee\xcd\x41\x78\x00\x08\xd3\x89\xc2\x72\xfe\x3f\xfb\x05\x94\x69\x9d\x21\x30\xbc\xcf\x07\x8e\x27\x51\xbe\xaf\x2e\x5a\x83\x3c\x4a\x28\x46\xfb\x48\xff\xf5\x41\xfc\xae\xda\xac\x16\x8f\x5d\xae\x68\xf9\x42\xa5\xba\x50\x3e\x1d\x2d\x4d\x3c\x4a\x72\x64\x18\x15\x0a\x0d\x28\x82\x57\x36\xe1\x91\x26\xf8\x63\x8e\xa2\x69\x82\xe4\x51\xf3\x71\x03\x9f\xc7\x69\x86\x3b\x38\xc2\xf4\x50\x4f\xa3\x57\x28\x1c\x3d\x04\x9e\x44\x14\xc1\xe1\x9b\xd5\x72\xd5\x83\x15\x09\x4f\x63\x85\xb1\x9f\x46\x52\xe8\xf5\xb4\xd2\xc1\xd3\x5c\xa2\x49\x9f\x53\x10\xda\x41\xff\x49\x01\x88\x18\xdf\x3c\x0d\xe5\xe2\x08\xa7\x91\x7d\xf9\x9e\xa1\x5d\x16\x7a\xdc\x95\x1d\xa5\x69\x9c\xc6\xdc\x11\x0e\xbc\xee\xec\x5f\x70\xd1\xaf\x19\x2d\x6b\x9c\x26\x59\xea\x49\x3d\xd7\x87\x4a\xb4\xbf\x83\x73\x70\x09\x03\x28\xd6\x5e\x42\x00\x65\xb1\x85\xb3\xaf\x14\x67\x2a\x96\xc2\x59\x97\x7b\xc1\x7e\xac\xe5\x3d\x74\xb1\xd2\x47\x40\xc6\xf9\xa5\x90\x73\x6e\x94\xf6\xfb\xd6\x85\x8a\xf8\xb4\x1e\xf9\xc1\xff\x77\xe7\x12\x34\xe1\x66\x72\x67\xa6\x4f\x46\x08\x9b\xc8\xeb\xe2\x67\x70\x20\x22\x5c\x48\x8e\x78\xef\x75\xfb\x82\x3d\xc0\x81\xa6\x19\xe1\xc2\xe4\x58\xde\x28\xc5\x11\x36\xcd\x42\xff\x44\x7a\xda\xfc\x6b\xcb\x65\x1a\x63\x93\xf8\x6e\x71\xbf\xb8\x59\xdf\xad\xef\x77\xfb\xdf\xbd\x5b\x3e\xe1\x8a\xc4\x88\xa1\x69\x84\x81\xdf\x8b\xd0\x52\xe5\x3a\xd3\x3e\x21\x46\x1a\xc7\xaa\xaa\x0e\xba\x7a\xbd\x58\xe0\xf1\x5f\x27\x66\x47\xb8\x66\x59\x9a\x86\x5a\x7d\x01\xcd\xac\xfc\x22\xe1\x46\x44\xd4\xd5\xc0\x6e\x44\x63\xc9\x99\xd7\x55\x8d\x33\xff\xb6\xaa\xda\xee\x2d\x5c\x55\x65\x53\x1d\xac\x0d\x5d\x7d\xd1\x6d\xec\x1e\x12\xe4\x03\xfc\xa9\x7f\x8d\xb1\xfd\xe0\xc7\x00\xd3\x79\xaf\x65\x55\x3e\x3f\x0d\x6f\xd3\xe8\x7c\x79\x1c\x49\xc4\xdd\x29\xd4\x60\x71\xc9\x4e\x16\xf9\xa3\x24\xce\x7c\xdf\x69\xf7\x7e\xf2\x4f\x22\x8f\x59\x8a\xd5\xf8\x53\x75\xc2\xa5\x0f\x27\xdd\x21\x68\xc7\x4d\x5b\x9f\x79\xcc\x80\xf7\xd8\xd0\xd0\x52\x73\x25\x12\x98\xae\x11\xdc\x7f\x0c\x64\x62\x8d\x25\xaa\x63\xe5\x65\x06\xdd\xb1\x84\x59\x53\xbb\x97\xea\xf5\x4e\x94\xef\xa1\x90\x6f\xb1\x65\xe3\x1f\x99\xea\x24\xcb\x82\xfc\xec\x05\xc4\xd7\x8d\xca\x22\x96\xb8\xf7\xf9\xe6\x66\xe5\xe5\xbf\xfd\xb5\x64\x31\xc3\x26\xc0\xfe\x19\x1f\xb2\xf5\x04\xdd\xe8\x49\xb3\x38\xcf\x52\x8b\xad\xda\xad\x17\x77\xfb\xed\x97\xc5\x93\xaf\xa9\xe5\x44\x8a\x4c\x79\x65\xfa\x73\xa9\xef\x0a\xb7\x59\x2c\xdf\x97\x13\x3e\x24\xc9\x69\x9a\x66\x56\x23\xbd\x8b\x63\x1e\x42\x6b\x2b\xa7\x52\x63\xa7\x60\x1f\x7c\x92\xaf\x51\x8b\x61\xf2\x79\x46\x09\xda\x09\x21\x8a\x18\xde\x4e\x45\xfd\x1e\x0c\xd6\x51\x52\xe7\x3d\x8d\xa2\x28\xf2\x67\x65\x3c\xc3\xba\x71\x3b\x02\xff\x84\x0a\x29\x88\x63\x18\x69\x52\x21\x3e\x98\xc2\xd3\xa9\x7b\x3b\xd0\x64\x73\x1f\xe7\x39\xe4\x4e\x5f\x66\x71\x09\x5e\xc9\xf3\x18\x30\x48\xb8\xae\x01\x5e\x45\xab\x5e\x7e\x5d\xcf\xcd\x73\x65\x7b\x27\x0d\xcc\xd9\x47\x91\x5c\x90\x28\x52\xc1\xb7\xcd\xea\xc4\x8c\xbf\x55\x30\x8d\x9e\x01\x4a\xd4\x7a\x7d\xac\xfe\x53\x98\xc2\xc3\xde\xdc\x08\xc9\xad\x65\x9e\x73\x72\x08\x5e\x45\x9f\x87\x97\xb9\xe4\xb6\x5d\xe9\x10\x88\x37\xa2\x28\x9b\xe1\xbb\xe8\x86\xa9\x28\x42\x35\xcf\xed\xee\xf6\xb3\x94\x3f\x57\x44\xe1\xa4\xb0\xed\xa6\x6b\x80\x55\x75\x38\x80\xea\xc1\x92\xb9\x12\x42\x07\xd7\xe6\xaa\x1e\x41\x94\x72\x05\x39\xf1\x42\xa8\x88\xaf\x98\xae\xc9\xb9\xce\x88\x16\xa1\x84\xd6\xcd\xf2\x6f\x8f\xd6\x43\xb5\x17\x1f\x20\xb9\xce\x2d\x77\xf6\x1a\xba\x80\xa1\x19\xee\x9e\x39\x48\x62\x49\x6c\x7e\xff\xea\x9d\x9f\x48\x0e\x46\x5b\x71\x10\xb4\x95\x2b\x4e\xd8\x8c\x9c\x3c\x0b\xc3\x25\x46\x66\x77\x5f\x6f\x77\x9b\xc7\xdb\x4d\xe8\x8e\x88\x48\xd9\x56\xbd\xaf\x49\x0f\xc9\x33\xa3\x5d\x56\xc4\x51\x84\x2f\xb2\x1c\x00\xd2\xe6\x8b\x36\x22\x8e\x00\x41\xeb\xbe\x3c\x82\x7a\x2c\xe3\x66\xf5\x78\x5f\x11\x31\x33\x8a\x8e\x44\x12\xaf\x01\x2e\xc1\xd9\xf3\x5f\x97\x46\xdc\x88\x01\x3b\xbb\x16\x87\x6d\xf1\x5c\x9e\x4f\x73\xfd\x71\x91\x46\x16\x3a\x70\x10\x4d\xeb\x66\xee\x55\x8f\xa9\x12\x29\x4f\xb0\x2d\xa6\xba\xdb\x78\x3a\x78\x1f\x43\x22\x52\xb0\xba\xa8\xb5\x68\xe1\x11\xea\xef\x50\x58\x42\xda\xb0\xaa\x29\xb2\x2c\xc1\xe6\xe4\xae\xf6\x7e\x5f\x63\x31\x62\xbf\xb9\x09\x12\x51\x69\xb7\x44\x8b\x80\xe8\x8d\x07\x42\x2b\x5a\x10\xc9\xf1\xa6\xb8\x8c\xe5\xcd\xa9\xfd\x8e\x42\xa0\x80\x48\xfc\xc7\x67\x07\xfd\x09\x0d\xb7\x7c\x4b\x94\xdb\x71\x85\xe7\x45\xa9\x57\xe2\x70\x18\x01\x4c\x67\x31\xfb\x1f\xdc\x7d\xce\x52\xed\x48\x33\xbe\xd8\xb8\xbd\xd8\x61\x05\x97\x06\xb5\x65\xb6\xeb\x3f\xfe\xfc\x7d\xb3\xdb\xad\xef\x3f\x7b\x29\x45\x4e\x08\xaa\x26\xbf\x60\x03\xe9\x76\x80\xb5\x0e\x03\x0c\xa2\x25\x9c\x84\xa0\x2b\xe3\xfa\x83\x0a\x50\x0b\x0d\x6b\xb4\x77\xe1\xe1\xe4\x26\xe9\xb9\xf9\x4e\x82\x7a\x98\x3f\x0a\x01\x10\xf7\xee\xba\xdd\x8a\xbe\xc5\x62\x91\x3b\x2c\x33\x2b\xe3\xd5\x7c\xae\x8d\x4f\x84\x62\x39\xf2\xda\x77\xe2\x07\x36\xfd\x67\x52\x49\xa1\x80\xb0\xd4\x11\x33\x0b\x5b\x1a\xbf\x2b\x4a\x3b\xa5\xfc\xa2\x20\x80\x5a\x39\xd7\x73\x03\xf5\xe3\x59\x1e\x0a\xe5\x8a\x92\xeb\x2e\xa4\x39\x97\xed\x9d\x98\xc4\xf4\x02\x1c\x73\xf4\xe9\xea\xee\x46\x1c\x47\xf0\x14\x01\x12\x84\xf3\xc6\x2d\xad\x6b\x45\xef\x0e\x4a\x04\x28\x85\x62\x5a\x9b\xc5\xf1\x1b\xd4\xef\x8f\x55\x35\x42\x48\x0b\x13\xc5\x5e\x01\xe3\x6b\x03\xf5\xbf\xce\x05\x7a\x0d\x1c\x2b\x6b\x3a\x31\xbe\x0c\x93\x08\x84\x5a\x75\x9b\xc7\x15\xfc\x84\x43\x75\xb2\x02\x35\xfe\x38\x4d\x11\xb7\xff\x78\x2e\x7f\x4c\x29\xe8\xf3\xeb\xbe\x30\xc6\xd8\x6e\x51\xf3\x45\x94\xfa\x60\x65\xf1\xc7\x81\x82\x8c\xb8\xb5\x05\x39\x3e\x07\xe3\x85\xd1\x49\x64\x94\xdb\x9a\xfb\x33\xa0\xc5\x9b\x83\x70\xcf\x7e\xa1\x8c\xe3\x94\x0d\x89\x01\x36\x08\x9a\x1f\x9b\xc8\x08\x09\x69\x3d\xc4\xab\xa8\xca\x15\x36\x19\xc7\x77\x46\xa6\x59\x16\x47\x7e\x37\x29\xaa\x72\xb0\xf8\xc8\x94\xe4\x49\x3f\x43\xcf\x6f\xab\x01\xae\x52\xa6\x5a\x59\xda\x4b\x55\x1d\xbb\xad\xdc\xff\x3d\xa3\x64\x24\xb4\x75\x70\xa8\x8b\xf0\xc1\x2c\xa7\x48\x5d\x38\x81\xed\xc6\x6d\x1d\x45\x65\x8b\xd0\xc1\xf6\x03\x81\x59\x22\x33\x03\x58\xf7\x71\xab\xe4\xb5\xed\x8a\xce\xff\x7e\x92\x25\x3a\x0f\x4a\x32\x55\xdd\x8a\xc3\xcd\xd9\x4f\x1d\x49\x58\x8c\x6f\xce\xa1\x9b\x09\xfb\x74\xa4\x8a\xd8\x1d\x25\x28\x4c\x38\xa4\x56\x5c\xce\x06\x3f\x58\x46\x5a\x05\xdc\xe3\x76\xc4\xb6\xf1\x91\xb1\x24\x5a\x24\x2e\x75\xb0\x10\xd4\x11\xaa\x7c\x7c\x42\x9a\xe5\x79\xea\x77\x0f\x4c\xf9\x2c\xae\xd5\x86\x5c\x77\xb6\x5e\x13\xb8\x25\x61\xa6\x51\xa6\xb0\xdb\xbc\x2c\xda\x9b\x73\x71\xd0\x1f\x17\xe7\x3f\xed\x7e\x4b\xaa\x13\x5c\x18\x3d\xb2\x23\x9a\xab\xd1\x4a\xaa\x73\x5b\xf3\x0a\x42\x2d\xb0\xb4\x84\x98\x15\x52\x5a\xeb\xe7\x29\x07\x8c\x48\x96\x69\x6e\x61\x5d\x8f\x56\x5f\xef\xd1\x72\x0f\x87\x3e\xdc\x44\x32\x4a\x82\x8a\x85\x9d\xbb\x68\x90\xd0\x4e\xdf\x68\xc9\x65\x82\x71\xc6\x09\xf5\x35\x86\xb8\x36\x99\x13\x8e\x76\xc4\x80\x5b\x99\x5b\xa2\x6c\x6d\x6d\x7a\x96\x9c\xc6\xa8\x27\xff\x28\xde\x2d\x98\x7b\x7a\x5c\xc9\x34\xf0\x66\xae\xe0\x00\xcf\x43\xb1\x37\x22\x45\xa2\x11\xdd\xe6\x6c\xcd\xba\x5f\xdf\xad\xb0\x9b\xd2\x29\x59\x3e\x98\xef\x80\x7d\xf9\xf1\xf4\x94\xc6\x3a\x99\x5a\xb8\x59\xa5\x10\xb1\xfc\x58\x39\x30\xf4\x04\x3f\x23\x55\x9e\x63\x0d\x02\xda\x97\x7d\x33\x65\x13\x13\xa9\x94\xc6\x26\xd1\xfa\xe6\x66\xf5\xb0\xf1\xa8\x14\xa9\xb5\x45\xf7\x2d\xbe\xdd\xed\xa0\x69\xb7\xe7\xa2\x7f\xb1\x21\x63\xd8\xd6\x53\xe2\x80\xa9\xdd\x1f\x2d\x0a\x8e\x7e\x1e\x47\x49\x93\x5a\xb4\xe1\x75\x0b\xea\xa5\xf8\x6b\xe2\x32\x4f\xa4\xc9\xa0\xb7\x2e\x7a\xc4\xac\xb1\x2e\xda\x77\xd7\xc2\x9f\x14\xf1\xfa\xb7\xc3\x30\x4b\xfd\x6a\xa0\xbd\xee\x72\xa6\xb1\x71\xca\xf8\xb7\x9a\x1c\xb0\xa6\xbf\x59\x3d\x6c\xcf\xa8\x0a\x19\x92\x45\x15\xd1\x14\x13\x6f\xf7\xda\x5c\x41\x2b\xd4\xcb\x25\x80\x48\x45\x54\x4b\x4b\x45\xfd\x4f\x55\x3b\xc9\xdb\x31\x0c\x5e\x45\xdc\x06\xeb\x1e\x49\x76\x4d\xc3\x91\x3c\xb6\xdc\xe1\x06\xda\xd5\xfa\x61\xfc\x28\x54\xa4\x2d\xc1\xed\x6a\xfd\xf8\xb0\xdd\xec\xf6\xdf\x37\xf7\x57\x0f\xdf\xc3\x67\x21\xc3\x96\xc2\xea\xca\x76\xa0\x95\x8f\xda\x55\x6c\x08\x62\x75\x4e\x55\xa8\x92\x74\x7f\x33\xae\x46\x15\xd0\xbf\xe3\x37\x61\x7c\x6f\x54\x92\x65\xb8\xc7\xd5\x16\x4a\xb0\x3d\x04\xb0\x97\x9f\x49\x2a\x61\x11\x24\x5e\x81\x14\x7e\x16\xd5\xb9\x41\xb6\x9d\xdb\x77\x66\x1f\xbb\x4a\xe3\x2c\xf7\x6c\xd8\x7d\x55\xc2\xae\x3e\xc3\x02\x97\x87\xfb\xea\xce\xea\xb3\xfb\x6b\x4e\x09\x20\xd6\xfe\x6e\xb3\x5a\x7f\x16\x50\xa9\x54\x49\xde\xbb\xbc\x3d\x4f\xa2\x06\x95\x09\xe3\x33\xc8\xc7\xba\x6a\xab\x11\x91\x45\x65\xd2\x86\x78\xdb\xf2\x5d\x43\xdd\x0e\xa6\xa0\x22\x99\xd2\x36\xb3\xb8\xdf\x3c\x2d\xbe\x2c\xee\x36\x57\xfe\x10\xa3\xd1\x40\xdf\xef\x06\xca\x9b\xb3\xed\xe9\x8c\x7f\x2d\xe3\x39\x16\x13\xdb\x97\xa2\xd6\xdf\x01\x7e\x4c\xe5\x78\x88\x62\x4a\x67\xb2\x47\xfe\x2f\x30\x39\xee\x12\x5d\x5b\x60\xfd\x09\xf5\x25\x1e\xc2\x86\xac\x73\x7d\xfd\x0b\xaa\xbc\xff\x16\x43\xb0\x6d\xb1\x5c\xac\xb6\xfe\x9b\x39\x51\x99\x2b\xcb\xba\x70\xb0\x0e\xf3\x85\x0b\x4b\xe3\xbf\x86\xf3\x5f\xc1\x76\xc6\x1d\x13\x71\x8c\xc2\x25\xbb\xcd\x1d\xf9\x75\xb6\xad\x44\x4a\x08\x73\xd9\xf4\x42\x57\x08\x97\x7c\x30\xc1\x87\x8c\x4c\x26\x88\x48\x79\xe6\xe0\x5c\x0f\xae\x67\x35\x80\x5d\x28\xa1\x04\x16\xe9\x7c\xdc\x12\xca\xbf\xdb\x6e\x9a\x4e\x56\x5c\x25\x63\xc6\x6c\x7a\x6a\x53\xa7\xc7\x29\xce\x48\x49\x16\xa3\x8c\x2e\xda\xbc\xdd\x56\x55\x78\x6b\x55\x96\x6b\x3d\xda\x95\xa6\xf6\x6e\x44\x29\x96\x60\x87\xec\xba\x38\x1c\x9b\x6e\xc3\x1a\xdd\x27\x65\xac\x8d\x48\x51\x7a\xfa\xd5\xaa\x3a\x4a\x31\x9d\x23\x3a\x63\x18\x7a\xae\xdf\xd6\xff\x3d\x17\x6d\x78\x8d\x81\x10\xa3\xdc\xac\x2e\xe1\xe0\xb4\x55\x82\x53\xe7\x30\xe3\x52\x86\xd8\x52\xec\x11\xb4\xa5\x37\x23\x04\xdf\x9f\x4a\x47\x26\x26\xc1\x1b\x05\x67\xdf\x77\x28\xfc\xc1\x38\x4e\x10\x9c\x69\xdf\x9e\xd5\x8b\x75\x12\xfd\x5e\x94\x77\x95\x3e\x4f\x11\xff\x3a\x16\x06\x59\xa7\xe2\xdc\x20\xb2\x32\x9c\xc5\x28\x2c\x15\x2c\x36\x4f\x57\x4f\x0f\x8f\xfb\xbb\xc5\x1f\xfe\x50\x12\xa5\xf8\xed\x47\x6b\x85\x65\x31\x43\x61\xa5\xd5\x09\xe1\xde\x6d\xe5\xae\x78\x2b\xca\x67\xdb\x7d\x9f\x5f\x3f\x74\x42\xa5\xb2\x12\x40\xa0\xa7\x94\x58\x9d\x98\x14\x67\x2d\xaa\xad\x3f\xc1\xa9\x9a\x79\x77\xa6\x9f\xc8\x13\xe1\x1b\x1c\x7b\x0d\xa7\x0f\xc4\x38\x88\x4e\x89\xf5\xa5\x47\x91\xc8\xa2\xc5\xc8\x4c\x1c\xae\xee\x17\xfe\x77\x64\x69\xa4\x6d\x08\x8f\x0a\xc8\x18\xc0\x0f\x5f\x04\x9d\x51\x2b\x51\xb5\x7a\x7a\xf8\x7e\x85\xee\xe1\x08\xfc\xdc\x86\x13\xb0\x14\x6b\x29\xa2\x69\x8a\x52\x3c\x76\x2b\x6f\xa9\x3c\x78\x46\x93\x04\xa0\x3b\xfd\xc3\xdd\xe3\x5b\x28\x47\xfa\x63\x29\x8f\x9c\x84\x9b\x8b\x83\xe6\xaa\x03\x9a\x90\x08\xa3\x41\xdf\x0b\x76\x7b\xdb\xa4\x20\xa9\x09\xb5\xb2\x23\x37\xd0\x5e\xa1\x1a\xd7\xfd\xf9\xf8\x04\x3f\xab\x1f\x5d\x00\xd4\xa5\xd2\x70\xf1\x09\x26\xb0\xc9\xec\x80\xed\xfb\x01\xdf\x5a\x53\x6a\x3d\x07\x8e\xfb\xf6\xad\x09\x7f\x64\x19\x75\xe9\xd6\x0e\x3e\xce\x3c\x34\xcb\x22\xe4\xc9\x6e\xa1\xd4\x8f\x75\x10\x51\x26\xfe\x3c\x8c\x66\x6e\xb7\x2f\x75\x17\x98\x7f\x24\xc7\x44\x34\xe3\xd6\x7c\x5f\xd5\xa2\x85\xe6\xae\x78\xae\xb1\x34\x3c\x1e\xc4\x09\xe0\x13\xb8\x94\x81\x27\x9a\xd3\xd8\x58\xe9\x27\x67\x45\xbc\xd0\xdf\xaa\xb3\xea\x69\xc9\x9a\x53\x8a\x2f\xa1\x55\x02\xf3\x12\x2a\xb3\xdb\xab\xe6\xcc\xe0\x4c\xc5\x3e\xd6\x2d\x74\x89\xca\x83\x59\xd5\xa0\x2f\x5b\x37\x93\x5b\xc2\xa5\xc4\x7d\x5f\x68\x5d\xb8\x39\x08\x32\xcc\x04\xae\x18\xd6\x68\xf6\xf2\xfc\xfe\xa5\x50\xcd\x67\xa9\xbc\xce\x05\x41\x97\x9b\xe6\xb9\x4c\x9a\x67\xf1\xc1\x1b\x27\xa4\xc4\x9f\x65\xbd\x8d\xbe\x88\xa6\x47\xef\x68\xa1\x63\x15\xa4\x27\xba\x44\x7e\x0b\x6d\xbf\x26\x08\x88\xd1\xc6\x61\xf5\xd2\xc5\xf0\xdb\xf6\x63\x13\x3b\xa2\x65\x2a\xb9\x43\xbe\xbf\xf6\x6b\x53\x17\x63\xf0\x5e\x03\x69\x44\x4a\xd6\x3a\xb2\x33\x6b\xef\xb8\x1d\x3e\xd5\xbe\x08\x69\x2e\xfb\x88\x5a\x27\x29\x76\xd3\xf7\xf6\x0d\xbd\x11\xe3\x12\xb0\xd6\x94\x63\x4f\xef\x6e\x73\xbf\xb7\x22\xea\x96\xd0\xb2\xdf\x3d\xec\x9f\xd6\xab\xf5\xe6\xdb\x7a\x1f\x24\xfc\x88\xd6\x2c\xc5\xe6\x90\x37\x0a\xdc\xb6\x7d\xbb\x55\x6b\x6d\x27\xe9\x53\xd5\xbe\xa0\x87\x83\x3f\x00\x99\xf1\xf9\xba\xad\x99\xb6\xb6\x47\x30\x79\x6d\x81\x5a\xd9\x95\x1e\x9d\x8b\xcc\x95\xcf\x17\x36\x43\x00\xd9\xa5\x7f\x3c\x2e\x86\x9b\x92\x36\xcc\x26\x0b\xa6\xaa\x64\x68\x2a\x6b\x03\x1a\xa5\xa8\xb0\xe0\xef\x20\x48\xfe\x0d\x86\x58\x6a\xae\x86\x6d\xeb\x8d\x13\x84\xf8\x7c\xa6\x42\xac\xf2\xcc\x6a\x47\x21\x92\x6f\xda\xdb\x75\xa3\x92\xc8\xaa\x72\xef\xbd\xe2\x85\x07\x04\x4e\x01\x4c\x90\x64\x02\x97\xaf\xab\xcd\xd6\xda\x1f\xad\xaf\xf6\xdb\xdd\x62\xf7\xd5\xaf\xa0\x90\x48\x8a\x6a\x4e\x36\x2a\xdb\x77\x29\x4e\x7d\x89\x18\x87\x04\x00\x3c\x40\xb5\xae\xc5\xfb\xd0\xb4\xd9\xaf\x69\x90\xa6\x12\x5d\xb8\xc2\xaf\xbe\x13\xcd\x8f\xf9\x57\x04\xd2\xd4\xf6\x00\x05\x76\x79\x7a\x90\xf2\x78\x54\x96\x26\xe8\x51\xbc\xf8\xeb\xb5\x98\xf1\xea\xee\x06\x30\x49\x42\x53\x70\xdb\xc2\xe9\x43\x49\x31\xff\x89\x2c\x45\x3a\x09\x9a\x19\x7c\xa9\xda\xeb\xe2\x6d\x7a\x4e\x92\x11\x6f\xd9\xba\x40\x50\xcd\xa6\x71\x1d\xd6\x9e\xac\x0d\x19\x21\x48\x5a\x18\xb6\xcd\x06\x2a\xdd\x04\xb2\x5c\x63\x91\xc3\x14\xa5\xfe\x3e\x32\xee\xf1\x03\x04\x23\xae\x52\x7a\x3e\x39\xe3\xda\xf9\xb5\x0f\x48\x02\xc8\xfc\x2f\x1d\xa3\x66\x29\x1a\x68\xb0\xea\x3f\x3e\x25\x49\x09\xb6\xbe\xab\x93\x53\x96\xc4\x7b\x36\x6e\xea\x01\x61\x0a\x61\x3f\x2b\x2c\x35\xde\x54\x95\x1e\x4e\x77\xa0\xa9\x8d\x08\x10\x81\xb7\x2e\x75\x93\x86\x23\xd2\xda\x58\xee\xe1\x58\xb4\x16\xcb\xef\xf2\xb6\x27\xec\x65\x5c\x98\xc6\x4d\x6e\x3d\x05\xc0\xbe\xbb\x6c\x55\x0f\x4b\xf9\xb0\xa8\x3f\x07\xb0\x02\xc6\x38\x92\xc3\x6d\xe4\xe5\x36\xb7\x19\xa1\x5b\x02\x9c\x01\x86\x29\xdd\xae\x0f\x6d\x85\x80\xf1\x6d\xf1\x3c\x89\x03\x80\x73\x69\x9b\xac\x96\x21\xda\x63\xf5\x20\xcf\x13\xcc\xff\x5c\x61\xe5\x0a\xce\x81\x7b\x35\x0e\xdd\xc7\x57\x28\x63\x6e\x69\xb2\x75\xf5\x1f\x50\xed\xf2\xfc\x7c\x71\x69\x4a\x45\xa8\x3a\xda\x94\xe2\xd4\xbc\x54\xed\x62\xb2\x7c\x81\x4e\x94\x76\x35\xa8\xf6\x00\xcb\xe5\x15\x4a\x73\x0e\xfa\xb7\x53\x38\x8e\xff\x1c\xa3\x2a\xeb\xe5\xb1\x06\xdc\x2c\x80\x84\x21\xa2\xec\x49\xfc\x2c\x01\x46\x75\x03\x00\x96\xe0\x4b\x74\xc2\xda\xd8\xba\xd4\x88\x34\xae\x4a\x73\x28\x54\xbb\x39\x9e\x0e\xc3\xc5\x65\xe4\xb0\xd8\xf7\x16\x3e\x14\xc8\x19\xff\x74\xe0\x1a\x93\x2a\x4f\xe6\xc4\x7a\x9a\x38\x8c\x6c\xce\x08\x80\xce\xf1\xdd\x7a\x15\xb5\xe8\xee\x3d\x4a\x1e\xc2\x40\xcf\x04\x0c\xe5\x19\x1f\x68\x29\x3c\x56\x13\x43\x26\x62\xa2\x0c\xec\x49\xea\xa2\x05\x5b\x2d\xb7\x46\x18\xbf\x4d\x2f\x75\xf4\x34\x67\x93\x41\x13\x19\x8a\x10\x18\xeb\xf0\x0c\x77\xef\xeb\xe7\x50\x50\x35\x49\x94\xea\x3c\x28\xfe\x4d\x97\x6b\x93\xe4\xd2\xe2\xdf\x8e\xa2\x6e\xb7\x27\x00\xbd\x16\x75\xd9\x2b\xce\x98\x94\x26\x28\x19\x70\x5f\xb4\x75\xf5\x1c\x9e\x8b\x49\x85\x35\xe3\x69\x7f\x84\x3f\x65\xa9\xb4\xe4\xab\x00\x58\xaf\x87\x90\xa8\xf1\x3c\x32\x24\xb5\xc0\x9c\x67\x68\xb7\x3f\x8a\xc3\x61\xb8\x3e\x19\xa2\x2c\x87\xcc\xd6\x71\x6d\x35\xfe\x6f\xb2\x08\xc6\xd3\xce\xd0\x24\xb5\xe9\x90\x28\xb1\x45\xed\x8c\xff\xfc\x51\x66\x25\x27\xbf\x7e\xdd\x5e\x85\xbf\xe9\x14\x2f\xec\x50\x1c\x0b\xfb\x00\x3d\xde\xdf\x0d\x60\x94\xe2\x52\xb3\x3d\xa9\xcf\xea\x18\x86\x47\x16\x76\xdb\xbd\x29\x4d\x14\xcf\x47\xb2\x86\xcb\x48\xb9\x0a\xd7\xfa\x69\x35\x8f\x4c\x30\x5c\x52\x84\x83\xed\x6b\x78\x2d\x6a\xd8\x68\x28\xdb\xa2\x2d\xa0\xf9\xed\xc2\x91\x73\xf4\x6f\x98\x23\x5c\x13\xdc\x37\x84\xd6\x98\x62\x8f\x27\xb5\xc9\x23\x8e\xa5\xce\xcd\xea\xe1\x71\xfd\xb4\x79\x08\x37\x23\x97\xd6\x05\xc8\xe7\xe7\x8d\x23\x41\x5f\xf7\x98\x34\x93\x4b\x83\x5d\x82\xc5\xaf\xdd\x20\x3f\x7e\x4e\x22\xd2\x98\x4d\x39\xb9\xab\x5d\x71\x80\x45\xfb\x9b\x7d\xb5\x87\x3f\x44\x45\x04\x03\x21\x79\x7e\x77\xca\xf8\x17\x13\x63\xf4\x10\x94\x4e\x90\x97\x23\x3f\x17\x10\x9e\x46\x94\x46\x27\x89\xb6\x66\x09\x58\xac\xac\xa6\x35\x66\x03\x51\x8a\x17\x5c\x17\xcf\x2f\x6d\x1c\x45\x93\xe9\x0d\x32\x47\x40\xc5\xf6\xe1\xdb\x53\x60\x03\x1a\x50\x99\x84\xa1\x96\x83\x05\x58\x7c\x22\x39\x62\xc0\x68\xc1\x7c\x32\x58\xa8\x4b\x59\x52\x37\xce\x44\x9c\x2b\xdf\xdc\xc7\xaa\x36\x8a\x62\x4c\x06\xb1\x18\x19\x65\x41\xac\x61\xd4\x28\x30\x86\xe5\x96\x04\x83\x5d\x85\x75\xa3\xc4\xc9\xb7\x12\x86\xdd\x59\x1a\x45\x84\x11\x2f\x05\xf2\x04\xcf\xa3\x0a\x29\x8d\x22\xc1\x29\xf1\x85\xf1\x10\xe6\x06\xc4\x28\x8d\x22\xc9\xe3\x40\xfb\xb0\xe6\x4e\x13\x01\x04\x1a\xc5\xb1\x8c\x7d\x0b\xaf\x2c\xda\xe1\x8f\x99\x9d\x42\x34\x4a\x62\xcb\xd9\xf7\x4c\xae\xef\x55\xfd\xb9\x72\xb1\xff\x5c\x96\x60\xf3\x41\xb4\x2d\x1c\x4f\x28\x1c\x7a\x07\xed\x4b\x35\x4f\x09\xa5\x51\x42\x6d\xb3\x42\x68\x1d\xf0\x4b\x3b\xdb\x59\x1c\x2b\x6d\xf9\xf1\x8c\x33\xea\xb2\x5a\x2b\x45\xf8\x58\x57\xcf\xb5\x38\x7e\x66\xeb\x48\xa3\x2c\xa2\xc8\x43\xf1\x8c\xa4\x41\x2b\x84\x46\x99\x22\xbe\xc1\x79\x5d\xc3\x05\x5c\xcf\x8d\x22\x91\x05\xf9\x56\xd6\x1b\xd5\x7f\x98\xe8\x08\x53\xc0\x2e\x54\xc2\xb5\x77\xfb\x71\x79\x7f\xb4\xd7\xd0\x88\x69\xcb\xe3\xb3\x2d\xad\xd5\x4b\x35\xa0\xea\xbb\x21\x9c\x01\xd6\x87\x10\x3c\x77\xd0\x33\x01\x10\x8d\xb8\xc8\xb8\x2d\xe4\x79\x24\x3f\xea\xb3\x85\x7d\x87\x46\x79\xc4\x52\x8f\xad\xd4\xe7\x43\x7b\xa1\x98\x46\xa3\x9c\xe6\xc8\x28\x90\x78\x4f\x11\xea\x52\x40\xb8\x43\xb9\xb4\x90\x3c\x71\x84\x52\x3f\x41\x97\x8e\x85\xe6\x9b\x1b\x22\xa2\x04\x19\xa9\xfb\x17\xd1\x6c\x54\x35\x10\xbf\x47\xa8\xdb\xf8\x92\x45\x1c\x11\xeb\x00\xb4\x7e\x2b\x9a\x76\x68\x72\x36\x19\x48\xa8\x1e\x08\x2b\x58\x9e\x9a\x3b\x26\x93\x38\x71\xa1\xc1\xba\xd4\xe8\x8e\xf0\x60\x56\xe2\x78\x12\xc5\xf3\xd8\xdc\x95\x46\x52\x58\x83\xdc\x17\xa1\x7e\x2c\x34\x9c\xa6\xdf\xa3\x12\x27\x91\xfe\x02\xea\xc7\x9d\x78\x5b\xf5\xfd\xf5\xc9\x4c\x52\xcc\xe0\xad\x58\x7c\x5b\x6c\x6e\x17\xcb\xdb\x35\x3a\x87\xad\x17\x4f\xb7\x7f\xee\x37\xf7\xdf\xd6\xdb\xdd\xc3\xd3\xd6\x5f\xa2\x32\x19\x58\xab\x02\x8f\xeb\xa5\x91\x8e\x89\xf1\xe6\x2e\xdd\x34\xbf\x16\x88\x39\xfa\xfc\x75\xd4\x49\x84\x19\xd7\xb1\xd2\x85\x79\xbf\x10\xa2\xeb\xd5\x2d\x68\xa4\x33\x83\x3a\x11\x4a\x94\x57\xd5\x6b\x79\xa8\xc4\x25\x6e\x7f\x7c\x73\xb4\x50\x9e\x0b\x68\x79\x08\x93\x57\x69\xfe\x46\x80\xf3\xd1\x6b\xca\xf0\x44\x4c\x6a\x05\xe3\xbf\x4a\x18\x32\xde\x68\x64\xb2\x28\x92\x01\x0a\x85\xf8\xc6\x59\x68\x32\x8d\x0c\xe1\x2a\xed\xc1\x06\x03\x19\x64\x3f\x20\x8f\xbd\x37\xf6\x08\xba\x32\xfe\x49\x26\xcf\x31\x40\xfe\x77\x71\x38\x88\x9b\xab\xf1\xc5\x18\x99\xe7\xa1\xe7\x71\x2c\x1c\xe9\x73\xe6\x5e\xc6\x11\x44\xa9\x15\x99\x09\x7a\x25\xc3\xaf\x89\xe3\x28\x45\x15\xcb\x7f\x15\xc5\xf0\x2b\xe2\x38\xd3\x29\x75\xb5\x1f\x5b\xec\x5a\x7a\xba\x01\x8d\x63\x01\x48\x99\x12\xce\x11\x62\xd9\xa3\x19\xc6\xb7\x38\x4e\x12\x40\x83\x4b\xb7\x8d\x5b\xf7\xee\xf2\xbd\x8f\x9f\x68\x9c\x50\xae\x59\x8f\x5a\xee\xfb\x7a\x17\xe0\x8a\xf1\x95\xa7\x51\x2a\xec\xe7\xba\x10\x6e\xd3\x2c\x7e\x8a\xe2\x30\xd8\x56\xe2\x34\x62\x08\x54\x32\xc5\x9b\x6d\xa5\x3f\xd6\xd0\xed\x50\x73\x84\xc2\x6e\xb4\xea\x15\x21\x4e\x85\x5a\xb4\x16\xeb\x3d\xfe\x3d\x69\x22\x53\xde\xc7\x25\x73\xb2\x42\x23\xd7\x76\x1a\xa7\x4c\xe5\x2e\xd4\xda\x1f\xce\x13\x6e\x2f\x8d\xd3\xee\xbd\xed\x8d\xd2\xe7\xf6\x80\x70\x26\x9d\xa7\x34\x90\x53\x70\x19\x18\xa1\x02\x46\x91\x24\x8d\xb3\x38\x76\xdd\x11\x55\xfd\x84\x3a\xd4\xb3\x68\x4c\x08\xe4\xc8\xc8\x39\x9e\x0e\xd5\x3b\x80\xf5\x30\xdb\x55\xeb\xed\xc3\xe3\x78\xae\xc6\xc4\xbd\x22\x05\x02\xf8\x3f\x80\x36\xd0\x98\x18\xa6\xd2\x80\x02\xbd\xae\xea\xc7\xe5\x6e\x37\xb9\x75\x94\x10\x8c\x48\xfc\xfa\x86\x7c\xe0\xc9\xd7\xd1\xdc\xd0\x74\x64\xc6\x34\x86\xf5\x0d\x26\x36\x15\x80\x74\x0b\x67\x4d\x01\xab\x97\xe2\xf4\x79\x56\x10\xb8\x95\x34\xa6\x4a\x59\x77\x28\xbb\x99\xde\x55\x61\x2b\x8d\x59\x2c\x30\x34\x7e\x38\x79\x03\x4b\xef\x0c\x38\xbe\x54\xc6\x18\xe8\x61\x51\xed\xe1\x04\xa5\xaf\x9d\xa1\xd7\x3d\x9a\x2b\x4f\x6e\x02\x63\x52\xb8\x15\xdf\x31\xbe\x07\x70\x7f\x1a\xf3\x4c\x20\xb5\xf8\x58\x95\xed\xcb\xe1\x7d\xa8\x0b\xb5\x0a\xfd\x5e\x1a\x73\x15\x59\x8e\xdc\xfd\x62\xb5\xdb\x7c\xdb\xec\xfe\xf4\x47\xf2\x9c\x61\xb3\xb4\x16\x45\x03\x16\x26\x27\x0e\x1f\x2b\x66\xf5\x17\x26\xb8\xe5\x6a\x18\xcf\x94\xc2\xf6\x5c\xb8\x30\x21\xad\xd8\x5b\x6d\xbd\x0a\xeb\xdd\x6b\xe5\x0f\xc9\x34\x41\x55\x1b\x0f\xe2\xd9\x5d\x48\x73\x4f\xbe\x4a\x71\x1e\x79\x92\x79\xd9\x5e\xa4\xb8\xe3\xb1\x79\x94\x45\xfd\xeb\x81\x61\xdf\xfc\x14\xd4\xc4\xae\xdc\xb7\xc5\xcf\xa2\x7c\x6e\xda\xee\x8e\x15\x61\x39\xd3\xdc\xca\xc5\xec\x91\x6a\x67\x9b\x6c\x53\xfa\xf3\x45\x21\x99\xc6\x90\xe5\x99\x09\xea\x13\x93\x67\x09\x84\x23\x8a\xdc\xff\xf0\x01\xdb\x64\x76\xfe\xcd\x27\xec\x34\x06\xc6\x33\x32\x20\x8f\x4d\x79\x71\xf3\x77\x11\x04\x47\x04\x85\xb2\x90\xf1\x4b\xb9\x63\x1a\x1b\x46\x31\xe9\x68\xce\xa7\x53\x55\xb7\xcd\x65\x55\x92\x26\x51\x6c\x3d\x8f\xbb\xad\xe4\x76\xb1\x1b\x34\xaf\x69\x12\xc9\x04\xa1\x8c\x8f\x50\x8a\x7f\x9d\x45\xd9\x9e\x8f\xb7\x20\x4e\xc3\x7d\x22\x89\x33\x96\x38\xc3\xd5\xda\x62\x84\x27\x5f\x10\x0b\x03\x19\xfa\xbf\xd4\xcf\x45\xf9\x1c\xe0\xbf\x34\x89\x65\x66\xa8\x73\x24\x5b\x1c\x0e\xae\x2c\xf0\x77\x18\x25\x34\x49\x12\x89\xbd\x59\x79\x7e\xdf\x78\xd5\xec\xdf\x26\x43\x52\x5b\xf5\x7e\x86\xf6\xea\x69\x85\xd8\x8c\xe9\x08\x6e\xd7\x41\x53\x43\x40\xb1\x6e\x5a\x38\x7a\xf4\xeb\xf8\x87\x24\xc0\x6c\x2b\xdf\xc3\xa5\xfa\x6e\xff\xfd\xf9\x38\x14\xa9\xa5\x49\x9a\x58\xc1\xa9\xea\x04\xe5\xe2\xb9\x06\xe8\x05\x79\x3e\x9b\x0a\x49\xca\x62\x2c\x3b\xee\xbb\x40\xbe\x38\x74\x8b\x89\x5e\x56\x6f\x5d\x62\x1f\x56\xbe\x24\x65\x24\xa1\xbd\x2b\xfc\xa0\x52\x42\x93\x2c\xd2\xcc\xb5\x5b\xbf\x43\xb1\x29\x57\x17\x74\x4e\x9a\x64\x42\x79\x8b\x4d\xa7\x7a\xe5\xee\xdf\x25\x59\x98\x26\x44\xa7\x7e\x7f\x42\xd5\x90\x55\x55\xd5\xba\x28\xbb\xbd\x6f\x60\x98\x4b\x13\x9a\x98\xd8\x56\x06\xce\xb3\x41\x5d\xc2\x08\xa7\xd6\x9f\xf5\x80\xc8\xbd\x7b\x71\x9c\x2e\xff\x09\xcb\x35\xba\xf5\x23\x93\xaf\x4b\xf3\x7c\x0e\x99\x70\x46\xb1\x3b\xa0\x8b\x1a\x54\x7b\x05\xb2\x68\x2f\x40\xf7\x6e\x68\x1e\x59\x31\x4d\xdb\x37\x6a\xc1\xbb\x52\xda\x4a\x8a\x5d\xcc\xd1\x8b\x6f\xc6\x8c\x98\x26\xc2\xa4\x78\x03\x8b\xc6\xb9\xdc\x5e\xd0\xa6\xc6\x4f\xcc\x33\x87\x7b\x9b\x46\x51\x86\x17\x48\x4a\x20\x8e\x78\xb3\xd6\x45\x0b\x7a\x57\x9f\xa7\x97\xab\xa3\x9e\xb7\xdf\xb4\xe0\x83\xec\x44\x67\x22\xcd\x7a\x9f\x00\x57\x1a\x78\xb7\x19\x63\xcf\xc0\xa0\x89\x96\x84\xf5\x21\x96\x85\xb8\xfc\x0d\x63\x9e\xd9\x5f\x0f\x59\x8a\xd6\x3a\xaf\xa1\x19\x35\xb7\x66\x00\x49\xb1\x1c\x57\x94\xed\xf5\xb9\x54\xbf\x8d\xab\xab\xa3\xb9\x66\x20\x42\xac\xa1\xed\x85\xef\x43\xca\xe1\x2e\x3e\xed\xee\x9e\x53\x10\xfa\x5a\x22\xf9\x75\x36\x43\x4c\xa3\x5c\xe0\x86\xbd\x2d\x9a\x56\x0c\x81\x18\x34\x8d\xb4\x48\xb8\xa7\x06\x5f\x41\xf3\xc3\xea\x69\xce\xae\x1b\x69\x2c\x62\x94\x13\xf2\x40\xba\x85\x1e\x9a\xd8\xce\x7a\x16\xb9\x4f\x26\x22\x31\xe9\x40\x75\x7c\x02\xd2\x9d\x7c\x4f\x62\x18\x66\xeb\x4f\xa0\x75\xe1\x95\x09\xdf\xc7\x6f\x98\x8b\x16\xdd\x27\x52\xa5\xd3\xa4\x0f\x83\xdd\xe9\x57\x97\x1e\x17\x34\xcd\x98\x06\x2f\xb8\xe5\xf8\x68\x4e\xde\xac\x8b\x3b\xfa\xb0\x35\x9c\x9b\x30\xa2\xc1\x3d\xd6\xa2\x1c\x95\x0e\x52\x62\xac\x07\x91\xad\xa8\x5b\x6c\xf9\xa8\xc2\xea\xc6\x51\xcd\xfc\x72\x8a\x7a\x10\xa8\x19\x89\xf6\x87\x93\x81\x79\x42\x14\x9f\xfa\xba\x7f\x0c\xc3\xa7\x69\x9e\x29\xcc\x87\x6c\xd0\x10\xf4\xbe\xc7\x67\x15\x2c\xc3\xa0\x21\x98\x51\x35\x50\x3f\x4c\xc4\x79\x3f\x6f\xcf\xb8\x13\xc9\x98\x20\xe8\xe0\x24\xea\xf6\x7d\x57\x4d\xbe\x46\xf6\x65\x68\x9b\x33\x8c\x45\x71\x27\x57\x2e\x85\x42\xd4\xfd\x73\xf1\x13\x70\x75\xdc\x55\xdd\xca\xb2\x7c\x9f\x34\x41\xfc\x70\x0d\x88\x91\xbe\x5b\xfc\xb1\xff\xb6\xb8\xfd\x1a\xde\x02\x45\x99\x4a\xbc\x0f\x54\xab\x5e\x30\xcc\xf1\xc7\x04\x49\xbc\xa8\x6b\xd5\x34\x85\x3c\xc0\x5d\x25\x9b\xdf\xc6\x11\x6d\xaa\xc0\x8a\xb8\x9d\x6a\x28\xcf\xa7\x7e\xcf\xf1\x87\x8d\xf0\x66\xb0\x4e\x63\xda\x91\xba\x3e\xa4\x02\xd2\x2e\xdd\x40\xb7\x04\x7f\xcb\xff\x46\xf1\x2c\xd5\x92\x63\xbe\x70\x12\xef\x03\x40\xd5\xc5\x66\xde\xef\x0b\xa9\xd6\xc2\xca\xc6\x58\x68\xcb\xf2\x42\x4c\x83\xa6\x10\x4b\xe6\xb3\x7b\x5b\x16\x1a\x96\x7f\xc2\x2d\x00\x96\xd9\x92\x8c\x05\x0c\x58\xb2\xd3\xb8\x16\x99\x82\x4a\xf0\x3e\xdc\xad\xaf\x36\x8b\xfd\xf6\xeb\xe3\xe3\xc3\xd3\xce\xab\xaf\xf9\x41\x26\x23\x18\x74\xde\x56\xcf\xcb\x5f\xeb\x15\xd9\x0f\x65\x11\xb3\xca\x70\x37\xb5\x98\x4d\x58\xb2\xc8\x70\x6c\xa5\x3d\x2e\xfe\x5c\xdd\xae\x7b\xf8\x2d\xcd\xba\xe8\x34\xb1\xf2\x7d\xf5\x19\xf4\x55\xf1\x73\x3c\x2b\xb3\x24\x4f\x30\x6b\xb0\x9d\xef\x2b\xf1\x3f\xb8\x51\x4d\xae\x32\x65\x60\xe5\x94\x47\xbe\x53\x63\x85\x63\x9a\xa5\xd2\xca\x6d\xb5\x43\x32\xe9\xfc\x09\xb3\x0c\xf2\x78\x6e\x92\x0c\x2a\xc9\x34\x23\x79\x1c\x7b\x96\xea\xee\xa5\xae\x5e\x1b\x1f\x6f\xdd\x57\xad\xff\xcf\x41\xee\x9e\x11\x19\xcc\x8d\xef\xde\x51\xdd\xc7\xf2\x69\x3c\x46\x93\x66\x34\xb5\x4e\x0f\x1e\x7d\x17\x5c\x72\x70\xa9\xc9\xdc\x28\x16\xc5\xca\xf5\x07\x56\x2f\x1e\xd4\xe0\xd7\xc5\x8c\x65\x1a\x6f\x3c\x6e\x9a\x1b\x3d\x51\xb1\xa6\x19\x63\x69\xea\xdf\x4b\x84\xfd\xf8\xa2\xc0\xec\x0b\x93\x31\x19\xa3\xb6\xf8\xb6\xad\xea\x8f\x0d\x28\x47\xf1\x43\xc6\x0c\x45\xc0\xcf\x57\x7b\xd4\x65\x5d\xe3\xf3\xe6\x91\x41\xd6\x6d\xb7\xed\x78\xfc\x0d\xcd\x84\x88\x30\x04\x5e\xec\xee\x2e\x59\x3a\x34\x13\x26\x03\xf0\x75\xd7\x3a\x70\x5c\x3f\xad\x19\x64\x2a\x03\xa9\x9c\xf7\xc2\x15\xfc\xfc\x59\x39\x6f\x52\xff\x9d\x4a\x31\x67\x9e\x86\xf0\x76\x68\x96\xef\x0e\xe9\x3e\x5d\xb0\x33\xa5\xd9\x00\x78\x68\x55\xa0\x2f\x5c\xde\x68\xa6\x8c\x42\xe0\x1d\x96\x2d\x37\x4d\x97\x44\xfb\x2f\xd3\x99\xc6\xd2\xd4\xfe\xe8\x99\xb1\xe1\x88\x20\xe0\xa0\x35\xcb\xc5\xe2\xeb\x45\x2f\x7f\x7c\x25\x5a\xd0\xcc\x31\xdb\xac\xf0\x5b\x97\x6f\x3c\x77\x69\xff\x27\xe6\x61\x34\xd3\x4a\xc6\xcc\xa5\x27\xf3\x0c\xc0\x0f\xdf\xb9\x51\xf5\x66\x3e\xd4\xcf\xb4\xd6\x5e\x5c\xb9\xcb\x39\x9a\x51\x57\x91\x66\x26\x33\xb6\xba\x25\x5a\x58\x3c\xf7\x7f\x26\x5a\x59\x5d\x75\x05\xdd\x03\x3d\x14\x7f\x81\x5e\xab\xaa\xac\x8e\xef\x61\x0c\x65\x78\x77\xba\xbd\xdc\xa3\x1d\xc6\x77\xc4\x40\x82\xc0\xab\xcd\x5b\x51\x16\xe7\xa3\xa3\x3d\x0c\xf2\x65\x12\x25\x42\x45\x9e\x1a\xd7\xcd\xfc\xed\xa0\xd0\x39\xbe\x51\x04\x4d\xb4\x9d\xf9\x24\x80\x46\xbd\xde\x25\x84\xd8\x9d\x44\xd2\x1a\x48\xc9\xf3\xa1\x8b\x9a\xa6\xdb\x22\x89\x79\x86\x88\x44\x5f\xfb\x9f\xd4\xc0\xdc\xa8\x84\x58\xe4\xb0\x12\xa5\xa7\x4e\xf8\x2f\x48\x34\xc3\x76\xa8\x79\x0b\x26\x0e\x94\xa4\xd4\xea\xd2\xc8\xf3\xfb\xf2\xc7\xf3\xa2\x5d\xbf\xa9\x97\xe7\xbf\xb7\x96\x93\x4c\x59\xd2\xa9\x12\xa5\x45\x7f\x7c\xf0\xcb\x33\x23\xb1\x46\xdb\xed\xff\x1f\x53\xac\x28\x21\x89\x71\x01\x73\xf1\xb1\xfc\xc2\xf8\xe7\x12\x45\xb8\x2b\x12\x87\x04\x77\xdc\x38\x9f\x7c\x07\x4d\x08\xb3\xb2\x2b\x3b\xa8\x8f\xbd\x3e\x2b\x25\x54\xeb\x28\xf1\xba\x27\x83\x54\x68\x72\x83\x19\x51\xd8\xfb\x77\x35\xb1\xef\x00\xe1\x06\x33\xe7\x43\xde\xdb\x16\x9d\x6c\x74\x74\xb1\x0d\x5d\xd6\x50\x08\x33\x36\xa7\x30\x88\x0c\xde\xa8\x0f\x0a\x38\x84\x8b\x0c\x43\x2f\x8c\xae\xbf\x88\xe6\xc5\x0b\x34\xfa\xe3\x92\x20\x07\x12\xf5\xd4\x50\x86\xd8\x21\xbb\x86\x01\x08\xc9\xf3\x04\xab\x8c\xaf\x50\x3c\x42\x7d\x37\x02\x6d\x53\xd2\x2d\xd0\xdd\xb5\x1c\xe6\x79\xc0\xdc\x0f\x4b\xe3\xd4\xc5\xfa\x57\xa2\x15\xab\xea\x70\x10\xfb\xc5\x62\x1f\x25\xe3\x2f\x53\x54\x7a\x13\xbe\x5b\xf8\x09\x87\x89\xb5\xf2\xe4\x09\x69\xb0\x7c\x90\x63\x51\x16\x55\x69\xdf\xcc\xc9\x33\xd0\x60\xdb\xc4\xba\xae\x4e\xf7\xa0\x5a\x51\x5f\xbc\x2d\xda\x44\x96\x43\x6e\x7d\xa0\xaa\x12\xa3\xf5\xdd\x4c\xda\x77\x1e\xe7\x65\x1f\x2d\x52\x33\xe0\x25\x4a\x80\xa4\x74\x50\x20\xdd\x15\xfd\xdb\x06\x2a\x41\x70\xc0\xde\x6b\xe0\x06\x20\x52\x77\xcc\x26\x13\xe8\xac\xbb\x7b\xad\xae\xac\x28\xbc\x3f\x6c\x98\xc8\x79\x6f\x31\x6d\x85\x9b\x07\x9c\x74\x4a\x8c\xd2\xc6\x0c\x71\xf9\x45\x55\xee\x5e\xea\x69\x0f\x85\x18\x48\x30\x8e\x79\x01\xeb\xec\x7a\x28\xca\xc9\x10\x1a\x49\x2e\x93\x10\x34\x41\xfb\x32\x45\xf8\x53\x1a\xcb\xc4\x7b\xff\xa3\x44\xca\xe3\xea\xf7\xc9\x49\x62\x93\xb8\x55\xda\x56\x99\x71\xd8\xfd\xf9\xe8\xe2\xa6\xff\x97\xb9\xc7\x42\x93\x88\x6b\xf0\x45\x4d\x2b\x46\xee\x05\xd5\xc6\xdf\x99\xc4\x56\x81\x70\xf1\xef\xf5\xfa\x0e\xa3\xc0\xf3\x87\xa0\x11\xda\xbd\xd4\xd8\xb2\xf5\x6b\xe3\x50\x68\xd2\x0d\x49\x5d\x3f\x59\x9d\x9b\xb6\x3a\x06\x5e\x7e\x77\x40\xf9\xd2\xde\x3d\xbc\x8e\xb2\x3e\x9a\x72\x40\x24\xf1\x47\x9a\xcf\x7e\x9b\xa2\x59\x44\x91\x78\x7b\x5b\x55\xed\xda\xca\xc8\xf8\xca\x03\x25\x22\xa2\xbd\x2b\xc4\xd4\xbb\xe6\xd3\x25\x96\x12\xc5\x51\x3a\x57\x57\x53\x31\x70\x37\x80\xc6\x42\xea\x80\xd6\xf6\x7f\x4c\xa9\x16\x03\xb2\x15\x5e\xd1\x83\x71\x16\x64\x03\x83\x55\x4a\xa9\xb0\x43\x1b\x68\xbf\x96\x07\x14\x17\x86\x45\xa9\xaf\x61\x62\xba\x4c\x29\x55\x91\x97\x18\xf6\x1d\x91\x2e\x01\x5b\xbe\xdf\x8b\xe3\x48\xc2\x9c\x52\x96\x0a\xac\x92\x3f\x1c\x4b\x68\x66\x93\x4f\x37\x90\x1b\x8a\x9e\x07\x07\x71\x94\x55\xb3\x3b\x97\xa3\x32\x1d\x15\x82\x20\x55\x1f\xe7\xe6\xaa\xfa\x01\xa3\xf2\xe4\xa8\x30\x40\x85\x31\x3c\x75\x38\xaa\xf8\x09\x5c\x49\xe6\xc9\xa9\xac\x84\x3f\xa0\x1a\xaf\xf7\x8e\xa7\x54\x46\x29\x52\xa2\x3d\x39\x33\x8d\xdc\x83\x8d\xfe\x31\xfe\xd7\x3f\xe8\x6e\xcd\xa3\xbd\x43\xd4\xf6\xac\x14\x34\x8d\x39\x1f\x26\x13\x42\x6a\x85\x85\xbe\x5b\x78\x86\x52\xef\x9f\xaa\xf7\x21\x73\xf4\x23\xa2\x10\xa5\xd2\xc4\x16\x67\xdc\x05\x7a\x37\x95\x98\xd4\x89\xa9\xca\x33\x84\x8b\x1d\x8b\x72\xf7\xd6\x93\xbb\x29\x55\x3a\xc1\x10\xde\xce\x32\xe4\x16\xa1\x14\xcf\xc0\x50\x63\xba\xe2\x8d\x9f\xaf\x32\x04\xc9\x01\x3f\xc5\xf9\xd0\x5a\x9a\xba\xa8\xdf\xbf\x96\x16\xf2\xee\xbf\x46\x67\x56\xcc\x4c\x89\xc3\x01\xbd\x89\xad\xce\x5a\x38\xcc\xa8\xe9\xbd\xa5\xc6\xc0\xe3\xc9\xf7\x41\x66\xfd\x72\x7b\x44\xb5\x06\xb1\x3c\xcf\x6b\x63\x77\xc3\x15\xc6\xf1\x96\xbb\xdb\x05\xa7\x9f\x82\xbf\x29\x35\x5c\x60\x89\x72\x8f\x02\x8e\x65\x09\xaa\x75\x64\x1e\x3f\x40\x73\x6c\x0f\x0b\xdf\x11\x75\xc6\x40\xa3\x1b\xce\xa2\x28\xc1\xca\x65\xaf\x8f\x5b\x94\xcf\xa1\xfc\x1d\xbe\x8e\xc5\xa9\x4a\x1d\x7b\xf6\xed\x7d\x72\x8e\x84\x13\xdf\xca\x76\x6e\x4a\xab\xc7\x21\x77\x89\xb2\x44\xd9\x5f\x67\xd3\x80\xbb\xa2\xf4\x7d\x14\xfe\xff\x62\xc2\xdc\xea\xc9\x52\xc5\xa5\xad\xa2\xfe\x1b\xea\x49\x4d\x86\x65\x8c\x22\xb1\xd6\x4e\xe5\x41\x25\x9c\x65\xdc\x20\x3c\x78\x5f\xa3\x0d\xcf\x6f\xfe\xcf\x39\x43\x58\xf0\x6d\xf5\xec\x63\x27\xbb\xcb\xf8\x4e\xde\xf8\x07\x66\x46\x63\x87\x42\xfc\x84\x32\x48\xe2\x51\x46\x94\x8c\x3c\xb1\x69\x59\x55\x87\xf0\x77\xc8\xad\xc4\x98\xcb\x81\x36\x8d\x5b\x7e\xfc\x00\x2a\x84\x76\x0c\x1b\x2b\xbc\xe5\x16\xe6\xde\x95\x28\xe6\x7e\xa8\xd4\x78\x77\x3c\x15\x7b\x18\xac\x30\x16\x47\x58\xf2\x42\xb8\xce\xea\x20\x5e\xbb\xac\xcc\xb2\x48\xc2\x45\xb2\x44\x4a\xbb\x3c\x3f\x6f\x83\xbc\x62\x31\x75\x71\x74\x83\x79\x64\x55\xe4\x4e\x35\x6c\x54\x35\x54\x10\xa4\x8c\x67\xd2\x1a\xcc\x2c\xfe\xf8\xbe\xb9\xdf\x17\xe5\xee\xcb\xc3\xd7\xed\xe2\xfe\x6a\xf7\xc5\x55\x47\xb6\x61\x28\x93\xb9\x2b\xc7\x7c\x11\x07\x73\x5b\x18\x5b\x45\x1a\xdf\x55\xae\x12\x6e\xa3\xce\x16\xbc\xf7\xf5\x79\x04\xc7\x75\x03\xf3\x28\x45\x34\x89\xaf\x39\x67\xbf\x85\x03\x14\x9f\xae\xa5\x6d\x43\x5d\x85\x19\xce\xf2\x38\x47\xe1\x80\x25\xd4\xf5\xfb\xad\x97\x68\xe9\x8f\x1a\xac\x40\x42\xd9\x42\x3d\x14\xfc\x9c\x7e\x33\xcd\x45\xea\x4c\xcc\x92\x05\x7a\x27\xf4\x90\x23\x26\x62\xf0\x9a\x80\xb6\x2a\x6a\x3b\xb5\xe3\xb9\x29\x9c\xe5\xdc\x4d\x55\xa9\x17\x2f\x9c\xf2\xe9\x42\xc8\x04\x95\xd8\xb8\x3e\xbe\x3f\x0d\x7e\x91\xe0\xd6\x6a\xd0\x87\xd8\xe0\xc2\xba\xa1\xa9\xcd\xe4\xab\x35\x73\x1e\x11\xa6\x5b\xd8\xb0\x70\xd6\xf4\x2e\x8b\xdd\x00\x40\x66\x0a\xf2\x33\xb6\x00\xba\x47\xac\xb8\x11\x2a\xd1\x58\x58\x43\x02\xeb\xc4\x41\x83\x32\x65\x62\x9e\x0c\x62\x1f\x47\xb9\xb3\x84\xec\x49\x47\x9d\x41\x44\xc1\x7b\x28\x21\x57\xd3\x15\x4e\x47\x3f\x1d\x54\x84\x80\xc2\x3f\x7e\x28\xbf\xee\x32\x00\xc0\xba\x72\x0b\x47\xa7\x7a\xe3\xf2\xbf\x89\xa5\x02\x65\x46\x51\xcb\xb8\xb4\x3b\xef\xbc\x42\xbf\x1d\xcb\xa3\x84\xc6\xa9\x7b\x79\xaf\xab\x7a\x65\xf5\x8f\x1a\x9c\x0c\xa3\x49\xc0\xa3\xcc\x36\xbe\x7b\x85\x22\x24\x39\xcd\x2e\xbd\x3c\xd2\xc4\x01\xd5\x4e\x07\xa1\xc0\xf9\x76\x8f\xaf\x93\xc7\x02\xd0\x6a\xec\x7a\xf1\xb4\x1b\x94\xf9\x78\xac\x04\xba\x80\x1d\x8b\x03\x34\x6d\x35\x0e\x09\x78\xda\x45\xcf\x36\x5f\x45\xd9\x37\xbf\x68\x4c\x56\x2b\x9e\x32\x62\x3d\xe7\xec\xba\xbd\x7c\x9f\x99\x96\x3c\xd5\x84\x8a\x81\xd3\x48\x30\x88\x2f\xaa\x71\x29\x85\xa7\x5a\xa1\x85\xc3\x48\x03\x72\xf3\x61\x4d\x3d\x7c\xca\x68\x9f\x9d\x22\xf8\xd8\x14\x50\x37\xab\x0b\x62\x1d\xe5\x59\x6c\xb5\xe7\x02\x01\x68\xe3\x2d\x8c\x47\x85\x3a\x9e\x11\xe9\x99\xfd\xfe\x2a\x16\xb2\x38\x14\xed\xc0\xbe\xb5\x1b\xa5\xac\x5f\x59\xf5\x6c\x2b\x4a\x35\xa6\x51\xe2\x83\x37\x9c\x67\x2a\xb6\x51\x66\xa0\xf9\x8e\xcd\x64\xe6\x3f\x45\x12\x2b\x7f\x7d\x53\x8b\xe6\xb4\x3d\x8a\xda\x76\x7c\xf0\x05\x47\x79\x7e\x3f\x4e\x5a\x3d\x94\x21\xfa\x71\xf9\x6e\xd1\x70\x1f\x34\xa0\xba\xcf\x24\x56\x7d\x4c\x34\xaa\x0b\xb7\xdd\xdf\x29\x33\xb8\xa9\x0b\xab\x21\xb5\x08\x7f\xd7\x8a\x3b\x8b\xa2\xfb\xf5\xf7\xbf\x8b\x7a\x77\x1f\x66\x69\x16\x3b\xb4\x89\xaa\xaa\x83\x3e\x3b\xe1\x42\x1f\xcc\x71\x26\x25\xde\xcf\xa0\x15\x2a\xea\x0b\x9d\x50\xca\x79\x6c\x74\xec\x3d\xb1\x1b\x7b\xef\x6e\xa0\xbd\x5c\xf4\x39\xcf\x62\x2f\x86\x75\x0f\xa0\xbb\x9b\x35\xd0\xce\xe9\x8e\xdb\x95\xd9\x51\x88\x92\xf0\x77\x2a\xac\x28\xfc\xb9\x7e\x38\x41\xb9\x1c\x52\x01\xbb\xa3\x06\xc1\xd7\x87\xea\x19\xc3\xcd\x0f\xcc\xbb\x29\xe7\x32\x4e\x6d\x9d\x42\x15\xa7\x02\x82\x80\x2a\xe5\x1c\x94\x53\x0e\x84\x42\x55\x8b\x32\x68\xd9\xd9\xb7\x61\x92\x12\xf0\x3c\x33\xd8\xb8\xf5\x32\x48\xfe\x34\xb9\x8e\x30\x3d\x6d\x8b\x23\xec\xaa\x20\xb9\xe7\x0f\x0b\x61\x64\xf7\xf3\xee\xe1\xb4\x1e\xc1\x07\xb9\x80\x08\x27\xe2\xd5\x62\xb7\xde\xdf\x6e\xee\x36\xbb\xfe\x88\x94\x43\xca\xbb\xd7\x83\xf9\xc7\x79\x76\xa1\xe5\x92\xa5\x38\xe9\x8e\xe2\x2d\xd0\xbc\x29\x97\x4a\x73\xaf\x82\x70\xb9\xc6\xa9\x28\x66\x4e\xc3\x43\xd9\xb8\xf7\x83\x65\x53\x71\xc0\xfa\xc8\x0d\xb4\xb7\xa2\xd4\x28\x55\xee\x0f\xe5\x14\xa1\xff\x57\xb5\x78\xf5\x02\xb9\xe3\x6f\xd1\x24\xa5\xe9\x60\x23\xdf\xcb\xe2\xcd\x7f\x1a\x44\x22\x5c\xe2\x76\x2b\x5e\xdf\xfb\x4a\xfa\xe8\x14\x79\x14\x89\xcc\x9a\xfb\x0e\xcc\xa0\xbb\x3f\x2b\xac\xfd\x75\xc1\xe1\x63\x55\xfe\x55\x84\x03\xa9\x6d\x54\x54\x5d\x56\x50\x94\xcf\x5e\x38\xf8\x83\x37\xbb\x1b\x8f\xa0\x99\x9b\x6f\xeb\x70\x0a\x66\x1d\xf1\xe4\xf0\xb6\xf8\x63\xb9\x41\xd4\x90\x05\xc0\xcf\x09\x83\xd3\x3c\xd6\x11\x2a\x73\x0f\xab\x39\xff\x18\x44\xc0\x79\x12\x13\x94\x30\x2d\x54\x85\x5a\x59\x76\xc6\xf9\x28\x27\x4f\x62\x81\xce\x2d\xce\x71\xc5\x47\x59\x79\x9a\x31\x92\xfa\x3b\x56\x3e\x9f\xc5\xb3\xdd\x2f\x3c\xef\x9f\xe6\xa9\x8c\x85\x0b\x50\x87\x3b\x49\x9e\x02\x45\xba\x6a\x3b\x28\x1a\x5e\x57\x75\xc8\xb3\xc3\x30\xa0\xe0\xb5\x11\xa6\x9b\x7f\x9e\x71\xa7\xea\x5b\x16\xe1\x2d\xca\x33\x1d\x4b\x08\x90\xcb\x61\xb1\x3e\xcf\x4c\xae\xdd\x9b\xff\xaf\xf6\xfd\x9b\x6d\xca\x54\xa1\x18\x91\xd3\x98\x60\x41\xe9\x6a\xf1\xf0\xcb\x45\x6c\xfc\x10\x28\xcd\x10\xc7\xe8\x0c\xf0\xbb\x1c\x60\x6f\x89\x8a\xed\xcb\x97\xa2\x6c\xef\xe1\xad\x5d\xb4\x8f\x95\x0b\x7b\xfd\xa7\xa4\x48\xb2\x40\x74\xda\xa1\x66\x4d\x33\xd3\x96\xcb\x29\x58\xcf\xcf\xa7\xcd\xea\x4b\xaf\x84\xf4\x8b\x96\xb2\xfb\x2c\x17\xb6\x73\xad\xc1\x2a\x69\x7e\x87\xe2\x49\x20\xf3\x72\x3c\x2e\x8f\x6d\x06\xba\x47\x7b\x29\x34\x71\xb1\xb1\xd8\x10\x2f\x3e\x39\x77\x9e\x2a\x6c\x0c\x21\x27\xac\xf6\x7e\x80\x98\xc6\x3c\xc1\x51\x14\x3d\x2b\x8b\xe6\x39\xcf\x70\x8a\xe1\x5e\xf5\xad\x7a\xbd\x30\xf6\x98\xd4\xfa\x3e\xf8\xf3\xdf\xfe\xc7\x7f\xad\x8e\x58\x2f\x93\x72\x27\xde\xbe\x79\xf7\x7f\x9a\xe7\x26\x46\xbf\xfa\xdb\xe2\xf9\xa5\x1d\x29\xc2\xd3\x5c\x24\xc0\xd2\x41\xac\x6b\xb3\x57\x2b\x8d\x36\x69\x23\xe5\x82\xe6\xd6\x66\xbc\xd0\x1a\x74\xa1\x7c\x5f\x3c\x97\x84\xe4\x56\x96\x1c\xc9\xfe\xbb\x97\xba\x3a\x3f\xbf\x3c\x94\x70\x5d\xd5\x3f\xc2\xa0\x3c\xc1\x06\xde\xea\x05\xca\x3f\x0a\xe1\xa5\x4e\x3e\xa9\xb8\xe5\x52\xe7\x58\x66\x0e\xa6\xca\x73\xe6\x36\x34\x57\x39\xd3\x58\x98\x2b\x9f\xe1\xd0\xec\xbb\xc5\x63\xaf\xc5\x7b\x98\xef\xca\x98\x34\xf3\x0d\xcc\x63\x55\x23\x3b\xcb\x1d\xd3\x54\x23\xb5\x5d\x1d\xaa\x06\x2e\x4d\x69\x68\xae\x73\xab\x3c\xd2\xbc\x54\xaf\xb6\x01\xf1\x49\x77\x21\x07\x02\x24\x88\x7c\xc2\xba\xe9\x22\xd9\x5f\x62\x22\xe6\x27\x34\xe4\x1a\x8b\x30\xbe\xdc\xd8\x3d\x13\x59\x83\x08\x37\xd4\x10\xc3\x7c\x47\xb4\x28\x01\xf5\x1f\x07\xbe\x7c\x34\x37\x2c\xc3\x70\xfa\x2f\xa5\xfa\x3f\x01\x27\xde\xae\x0d\xe0\x47\x63\x5d\x36\x90\xee\xe0\x3f\x27\x22\x21\x71\x83\x04\xcb\x37\x6c\x1e\xa1\x1e\x98\xba\x50\x91\x64\x34\x8b\xbc\x77\xe2\x5b\xfb\x58\xb5\xfd\x11\xab\x35\x19\x1c\x94\xfc\x81\x34\xb5\x96\x0d\xcb\xcd\xee\xe1\x8f\x5f\xb5\x5d\x3e\xbf\x31\x22\xa5\xc2\xa7\x37\x5f\x1b\xa8\xbb\xcc\x6d\x92\x8f\x89\x8c\x32\x5c\x76\x4f\x67\xd9\x2d\x21\x57\x20\x34\x56\xa5\xfd\xe1\x3c\x35\x36\x75\xd0\x00\x73\x8e\xc1\x61\x9c\x51\xe0\x45\x11\xac\x91\x58\x98\x39\x82\xa4\x36\x9e\x0d\x65\xdb\x70\x80\x13\x70\x6a\xfa\x1b\xc7\x57\x0d\x5c\xc0\xf4\xff\xfe\xdf\xff\x7d\xbe\x90\x09\xa2\x24\x6a\x00\x82\xaa\x9a\xf7\xa6\x85\xe3\x18\x36\x21\x88\x89\x90\xe3\xd4\x14\xcf\xa5\x03\xfd\x8c\x4f\x40\x13\x8e\x42\x3b\x27\xa1\x7e\x0c\x8a\x77\x82\x2a\xab\xfc\x6d\xb5\x22\xaf\x8a\x9f\x85\x1e\x58\x9a\xba\x41\x2c\xb3\xef\x38\x4a\xac\x3f\x7f\x2f\xca\xc1\xd3\xe5\x31\x41\x7c\xc1\x1e\x31\x81\x7b\xdc\xd3\xf6\x8f\x5e\x45\x99\x0a\x4e\xac\x50\x96\x53\x45\xb4\x8e\x63\x3a\x48\x7d\x51\xc1\xa9\x5d\x7b\x1f\x97\xbb\xdd\x75\x55\xdf\x88\xf0\xa3\xb8\xe1\xb8\xc5\x89\x2e\xd4\xf0\x7b\x9c\xc8\x89\xc4\xb7\x49\x1e\x84\xfd\x5f\x38\xc0\x0d\xae\x68\xdd\xbc\xdf\x63\x42\x10\x8e\x38\x8f\x6c\xbb\x0e\x76\xbb\xe8\xbc\x3e\x16\x15\xb9\x8e\xd1\xd9\xb2\xdb\x3e\x6b\x51\x34\x45\xf9\x3c\x9d\x27\x22\x8b\xb0\xdc\x5b\xa8\xea\x3b\xc0\x8f\xd8\x02\x62\xfc\x41\x65\x59\x70\xcb\xba\xfa\xe1\x14\x57\xe7\xfb\x87\x42\x92\xdc\xeb\x08\x6e\xcf\xb2\xac\xb4\x6b\xe4\x4f\xd1\xd6\x93\x4f\x89\x08\xe2\x41\x7d\xdd\x29\xd2\xb9\xa3\x2a\x26\x68\xfc\xa2\xc4\xc9\x16\x8f\x26\xb3\x44\x25\x63\x9d\x8c\xe5\xb9\x6d\xc3\x8e\x2c\x14\xe1\x78\x97\x4e\x5d\xd2\x86\x64\xf8\x6e\xf7\x03\xfd\x28\x8a\x81\xa8\xc7\xa8\xd8\x2c\xb4\xb4\xe6\x5f\x5e\xaa\xda\xd7\xe7\xd7\x6f\x6d\x2d\xe6\x08\x9f\xe1\x93\x90\x67\xb6\x6a\xee\x9a\x9d\xc8\xd2\x0a\x57\x0a\x26\xa6\x2e\x1c\xf5\x82\xf4\xbd\xa2\xe5\xfc\x0d\x05\x43\x51\x4e\x65\xdf\xe3\xdc\x3f\x62\x69\xa2\xc7\x3c\x19\x78\xd2\x17\x7f\xc1\xea\x5c\xff\x84\x0f\xb0\xee\x3e\xb6\x17\x26\x55\xcc\xdb\x3c\x94\xf0\x66\x45\x57\xf6\x35\x28\xd1\xb4\x7b\x53\x57\xc7\x7d\xd1\xc2\x71\x7a\x16\xff\x61\x96\xe1\xdc\x40\xb1\x91\xa6\x5d\x38\xe3\xf9\xe3\x54\x05\x90\xca\x88\x24\x96\x4c\x27\x0c\x7c\x1f\xfb\x40\xf9\x11\x79\x3c\xaa\xc9\x7d\x96\x2e\xcb\x48\x59\xe5\x52\x2f\x62\x0c\xa5\x82\x61\x27\x69\x7c\x9d\x32\xa6\x56\xe3\xeb\x64\x9d\x5d\xbd\xad\xbb\xef\x77\xc8\x58\x66\xd6\x78\xa8\xd4\x41\x8d\xc7\x5f\x57\x0c\x06\xbd\x45\x4e\xe7\xe6\x05\x93\x93\xe1\xd6\x2d\x13\xae\xa0\x37\xc0\xf5\x8b\x0d\x56\x53\x5e\x40\xfd\x38\x75\x1b\xce\x87\x90\xb4\xe9\xdf\x47\x3f\x31\x91\x96\x6c\x72\x12\xef\xdb\xf6\x3d\x54\xed\x64\x02\x14\x35\x5e\x6e\xec\xea\xd3\x0c\x3c\x55\xa8\x4c\x0c\x24\x16\xd1\xe9\xc2\x35\x7b\x17\x87\xb1\xba\x4c\x8c\x85\xf6\x28\x51\xa2\x1a\xdc\xb4\x0d\x26\x53\xa9\xb4\x7b\x23\x37\x27\xe3\x29\x29\xe3\x9e\x8c\xcc\x54\x8a\xdc\xc0\xc5\x72\xf5\x49\x23\xd8\x0d\x26\xa9\x55\x15\xf9\xe7\xaa\x2a\xca\xbf\xfc\x85\x10\x46\x23\x97\x40\xae\x26\xfe\xc1\x0e\x24\x3e\x24\xaa\x48\x22\x74\xcc\x7b\x72\xd1\xfb\x2c\x98\x5a\x12\x99\xc4\xae\x75\x70\xaa\x1a\x98\x12\xba\xfc\x28\x13\x25\xda\x65\xa7\x41\x00\x76\x76\xfd\x94\x94\x72\x0c\xb8\xbb\x97\xc3\x99\xc3\xee\x1c\xfc\x69\xe3\x75\xa3\xa8\x64\x91\xc1\x0a\x3d\x6a\x86\x6f\x37\x37\x43\x57\x55\x2a\x59\x62\x3d\x96\x9b\x50\xd8\x99\x53\x57\xa5\x92\xb1\x9c\x05\x47\xad\x40\xc3\xe9\x8b\xf8\xe1\xee\xf3\xc4\xf6\x63\x34\xf8\x80\x76\x8b\x62\x18\x41\x4f\xd2\xa7\x82\x92\x77\x89\x40\xb7\x7c\x2f\x97\xfe\x6a\x38\x58\xf7\x31\x2b\xec\x3f\x98\xa7\xee\x78\x4e\x25\xd6\x85\xbf\x54\x87\x6a\xfb\xbf\x18\xa8\x8d\x7f\x8c\x88\x78\xde\x6b\xe7\x7c\x07\xd9\x14\x97\x2b\xdd\x28\x10\x96\x22\xc9\x3d\xaf\x79\x1b\x20\x50\x4e\x54\x6c\x1e\x0a\xea\x3e\x28\x63\x8e\xd8\xa1\x7b\x78\x5d\xd5\xbd\x78\xab\xff\x45\x52\x82\x17\xab\xec\x42\xa9\x25\xb4\x3d\xee\x6e\x7e\x33\x93\x8a\x01\xe2\x67\xac\xcf\xac\x0d\x70\xc6\xea\x28\x54\x2a\xb0\x68\xb1\x06\xda\xbd\xf3\xf9\xde\x8b\x5a\x16\x6d\xb3\x6f\x2f\xb9\x1f\x52\x99\x08\x1b\xeb\xf6\x86\xf4\xe9\xef\x78\x94\x66\x42\xa8\xb0\x8b\xea\xc2\x7a\xb1\x5d\x38\xbf\x53\x09\xdc\x5a\xe5\xef\xd1\xdb\x7c\x53\xfe\x2c\xa6\x58\xc8\xfe\xa4\x00\x09\x66\xd1\x2b\x51\xb7\xef\xbd\xae\xe0\x27\x49\x89\x8a\x62\x42\x62\x4f\xfd\xab\x8e\x57\xe5\x58\xce\xcb\x4f\x30\x15\x81\x05\x49\xf9\x75\x7b\x28\x2e\x4e\x55\x1c\xa5\x58\x7b\xf4\x92\x0c\xff\x0b\x6e\xba\xdb\xfb\x11\xdc\x78\xb3\xbb\x0d\xe7\x63\x0a\x99\x9b\x68\x69\x79\x0b\xe5\x73\xfb\x82\xe0\xce\x70\x9c\x53\x0c\xc0\x5b\xf1\x03\xfa\xde\xc3\xec\x9b\xad\x62\x2e\x50\xb5\x69\xf5\x2e\xa1\xfe\x06\xc5\x07\xd0\xee\xd9\x3b\xaa\x62\x19\xd9\xb4\x45\x23\x1d\x27\x98\xb2\x53\x15\x6b\x63\x2b\x5f\x68\x46\x89\x14\xf4\xf3\x71\x44\xfb\x56\x09\x25\x58\x00\xf8\xb6\x59\xad\x1e\x86\x45\x3b\x95\x30\x2b\xed\xfa\xe5\xa8\x82\xb3\x7c\xe0\xf8\xa8\x44\x12\x6c\x4b\x4a\xb0\x14\x9a\xf0\x77\x13\x91\xc8\x3b\xd2\x96\x7a\x57\x6d\xbb\x6d\x16\xe3\x25\xa7\xf4\x3b\x75\x50\xa7\x2a\xed\x1e\x1c\xee\xdd\xdf\xd6\x7f\xe0\x35\xac\x9f\x56\x49\x92\xfa\x73\xa6\x26\x4e\x99\x2f\x06\x35\xed\xfd\x13\x20\x0c\x1a\xe1\x97\x3f\x0b\x05\xae\x4b\x30\x6a\xf7\xa9\x8c\xa8\x44\x78\x4f\x6b\x74\xfc\x0f\x12\x0f\x13\xa4\xd6\xc7\xe8\x2d\x95\xf1\x18\x97\x70\xbb\x13\x7c\xbf\x7d\xbc\xec\x02\x2b\x22\x73\xac\xcf\xfe\x51\x88\xea\xee\xbc\x2c\x44\xd5\x5d\x7d\xe4\x2f\x9e\x2a\x2b\x3f\x75\x14\x4d\xe3\x94\xfb\x2f\x41\x97\xe1\x0b\x19\xc4\x48\x38\xda\xc2\x4f\x28\xb7\xad\x28\xb5\xa8\xf5\xec\x1b\x72\xd9\x5b\x53\x3c\xb2\x24\xc0\xda\x82\xdb\x17\xb2\xc1\x35\x02\x3f\xbe\x9f\x7f\x1d\x15\xcf\x29\x6a\x01\x3b\xce\xe2\x3c\x86\xca\xff\xdb\xbf\xf2\x8a\x1b\x83\x04\x50\xdb\x87\xf1\x36\xc6\x41\x02\xe2\xba\xae\x8e\x17\x2c\xf7\xf0\x2b\xf3\xd8\xb6\xc5\x9f\x7d\x85\x54\x89\x24\xc6\x4c\x49\x57\xee\xa5\x1d\x5f\xa5\xa0\x56\x48\x6d\x53\xea\xaa\x11\x93\x88\x4e\x89\xdc\x6a\xed\xe0\x3a\xb6\xbf\x87\xd7\xbe\xdf\x3a\x38\x85\x49\x31\x47\x84\x2e\x78\xbe\x72\xe6\x8f\x93\x31\x32\x02\x14\xb3\xb1\xcb\xe2\x62\x7a\x0a\x99\x59\xb5\xc0\x06\x4a\xed\xbd\x53\xdc\x21\x15\xc5\xd2\x2d\x95\xcb\xf3\x3b\x0a\x76\x35\xdd\x62\xb9\x3c\x4d\xea\xc4\x4a\x25\x91\xab\xd2\xff\xac\x7e\xc0\x75\x17\xcd\xc3\xf1\x34\x54\x0f\x0c\x03\x95\x76\x12\x73\x55\xad\xb7\xd5\xc1\xbe\xde\xd3\xd3\xd1\x14\xab\x49\xb6\xb9\xdf\x6d\x29\x98\x1d\x74\xe1\x61\x3a\x9f\x56\x28\xa5\x13\x74\x93\xc0\x37\x63\x2c\x68\xec\x46\xe8\xcc\x7a\xff\x3c\x9d\xe5\xa1\x78\x1b\x4f\xbf\xf1\x45\x9a\x24\x41\xa0\x8d\xaf\xdf\x77\xe1\xe6\x80\xf3\xff\x77\xb1\xc2\xf6\x6c\x3a\x8a\x24\x56\xf7\x75\x05\xcd\xc3\x6b\x39\x45\x36\xfb\x51\x59\xc4\xc0\xd3\x52\x4b\x30\x85\x2a\x44\xfd\x7e\x5d\x94\xbd\x88\x0f\xd5\x91\x96\xc8\x08\xa9\xd1\x5c\xa8\x2a\xe1\xfd\xeb\x69\x57\x7d\x7f\xa9\x0e\x70\x5d\x94\x25\xbc\xaf\x27\x0c\x6d\x1d\x67\xb6\x52\xfd\x0c\xad\x83\x04\x77\xd1\xce\x75\x85\x64\x9b\xf1\xb3\xd1\x31\x63\x18\xb4\xed\xbe\x3f\x6c\x2a\xdf\xcc\xe8\xfe\xaa\x9c\x89\xd7\x63\x55\x1d\x16\xc7\x36\x1c\xc9\x35\xe5\xbd\xe8\x41\x17\xec\x8a\x43\xd0\x9a\xec\x8e\x83\x4c\xfb\xfd\x78\x44\x2c\xfa\x9c\x0b\xaa\x53\xc6\x63\x0b\x8f\x1f\x33\xc3\x74\x96\x25\xd8\xde\x46\x11\x38\x54\x8d\x9d\xfc\x60\xc2\xad\xbd\xc0\x51\xbc\x3d\x5a\x4a\xd1\x6f\xe1\x88\xb1\xca\xb1\x07\x51\x1c\x17\x36\x89\xe8\x36\xd4\x5f\x6d\x48\x93\x4b\xa3\x44\x60\xe0\xe2\xc8\x2d\xd3\x2a\xbb\xee\x32\x2d\xe4\x84\xb8\xbe\xc5\x98\x8e\x36\x3d\x37\x4e\x06\xff\x49\x20\x71\xda\xe3\xe6\x7f\xff\x73\x35\x9f\xb7\x6a\x9e\x26\xb9\x53\x0d\xe8\x5e\x89\x7d\xcc\x46\x49\x53\x77\x1c\x41\x10\x88\x32\xc1\x0b\x9c\x44\x56\x9a\x53\xab\x57\xe1\x67\xf8\xef\x03\x94\x9f\x1b\x92\xc7\xe0\xa5\xf8\xd7\x6f\xd5\xe9\x20\xca\x29\x5b\x5a\xe7\xcc\xc2\x31\xad\x5d\xcf\x15\x9c\x44\xdd\x9e\x6b\xb8\x2d\x26\x78\x23\x2d\xd2\x14\x09\x91\x6e\x7d\xb9\xf4\x5b\xf6\xe3\x8c\x50\xee\x87\xdd\xd4\xf0\x3e\x43\x54\xd4\x32\x4d\xc1\x15\x61\xbf\x55\xc8\x56\x08\x25\xb5\x51\xce\xa9\x25\x17\xc6\x3a\xb8\x76\xeb\xf7\x8c\xa7\x2d\xd5\x8a\x68\xe4\x33\x60\x30\x69\x13\x73\x68\x7d\xfb\x56\x2b\x9e\x67\xf9\x85\xf9\x63\x37\x8d\x67\x96\x2c\xad\x34\xc1\x0d\x73\xb5\xd8\x21\x31\xd2\x9f\x45\x67\xb9\x57\x27\x53\x70\x09\x03\xfb\xd5\xff\x1f\xfe\xfb\x01\xed\x40\x1b\xaa\x70\x1f\x29\x1c\x30\xca\x73\xf5\x07\xc0\x11\x88\xa3\x04\xc9\x96\x1f\x78\xc5\xff\xdd\xd4\x63\x3c\x11\x21\xa6\x22\xa5\x43\x48\x31\x04\x33\x77\x0a\x71\xce\xb0\x28\x80\xe9\x98\x1a\x62\x3e\x21\x49\x13\xe5\x1e\xe2\xed\x59\xfd\x78\xc7\x46\xdd\x26\xf4\x94\x21\x21\x11\x8f\x7b\xed\xa3\xd9\xb5\x7a\x4a\xbe\xf9\xc7\x0c\xd5\x19\x12\x43\x54\x3c\x30\x64\xbb\xec\x6f\x43\x1a\x5b\x33\xdf\xeb\xc5\xfd\xdf\x76\xcd\xf0\x1f\xcd\x62\x62\xd5\x48\x0e\xed\x00\x38\xef\x8f\x0a\xe6\x35\x11\xf0\x1d\x2c\xca\xe7\x2d\x80\xbe\x18\xa6\x59\x20\x24\x39\x42\x93\x3b\x92\x25\x16\x95\xb6\x7f\x45\xfd\xce\x7f\x8a\x2e\x8f\x9c\xbc\x83\x90\xa5\x91\xe9\xbd\xaa\xe0\xd4\x7a\x99\x87\x70\x33\x33\x4e\x52\xde\x83\x8a\x3c\x19\xb3\x3f\xae\x53\xef\x86\xb9\xad\x4c\xbb\x12\xa7\x27\x10\x2a\xe8\x7d\x53\x20\x29\x10\xe5\xb9\xa9\xe7\xd2\x69\x6f\xf6\x47\x6d\xb9\xe3\xf5\xa5\x50\x2f\xa8\x3e\xbd\x69\x76\x2f\x45\x38\x3d\x31\xb6\x55\x80\x4a\xa5\xa1\x61\x79\x9e\x4a\x3a\xf2\x99\xd8\x0f\x68\x6a\xd0\xfa\xc2\xb6\x08\x67\xbc\x48\x28\xd0\x2c\xc7\x72\x4d\xbf\xef\x00\xcb\x09\xf0\xe0\x8c\x34\x65\x47\xcd\xae\x3c\xc0\x24\x11\x16\x88\x64\x65\xdb\x2f\xd6\x43\xe0\xa9\x95\x19\xf4\x75\x54\xdf\x7f\x0c\x87\x21\xf1\xc2\xd6\x7f\x2f\xc5\x01\x9e\x45\xb8\xc2\x06\xb9\x11\x14\x5c\x6e\xda\x42\x7d\x50\x2b\x81\x3c\xd6\x08\xb6\x7a\x7a\xf0\xea\x20\x90\xe7\x06\xfc\xf7\xae\xc3\xe2\x05\x22\x56\x5e\x60\x7c\xd1\x65\xcc\x16\xb7\x7e\x0d\xf0\x08\xf5\x3f\xcf\x17\xdb\x26\x88\x24\x47\xba\x6a\x59\xb5\xeb\xff\x9e\xc5\xe1\xb7\x90\x3d\x84\xff\x18\xdd\x76\x19\x29\xfc\xb9\x21\xb1\x89\xf6\xed\x50\x60\x78\xee\x51\x49\x2a\x54\x30\x7c\x7e\xb4\x98\xe4\x1b\xd1\xc2\x6b\xc8\xed\x40\xf2\x18\x15\xaf\x5e\xb0\x71\xb8\xde\x7d\x99\x3c\x04\x09\x56\x99\xb9\x28\x95\xe5\x30\xdd\x54\x95\x7e\x82\x0f\x68\x4c\xa0\x62\x8a\xf3\x47\x59\x13\xbd\xc9\xc9\x14\x4d\xac\x34\x81\x78\xb7\xd0\xac\x8f\xce\xc2\xad\x8c\x50\x03\xed\xca\x3b\x77\x8c\x56\x60\x50\x39\x65\x32\x14\x33\xbe\x9c\xe4\x7d\xa5\x61\x96\x30\x0c\x2a\x97\x68\x5c\xb3\xde\x7d\xd9\x3f\x3e\x6d\x56\xeb\x7d\x10\xa6\xa4\xa0\x04\x41\xad\x88\x73\xf9\x22\x0e\xe8\x30\xec\x0f\x28\xa5\xa4\xe3\x78\x3e\x42\xdd\x54\xa5\x38\x2c\x3e\xd1\xec\xa5\xa0\xa9\x75\xfd\x0a\x0a\x24\x5d\xf2\x32\x09\x03\xba\x41\xe8\x85\xd2\x05\xfe\x35\x28\xd1\xc2\x4a\xb4\xf0\x5c\x4d\x68\xed\xfd\xad\xd0\x4a\x63\x0b\xfe\x45\x20\x52\x00\xf4\xc3\x41\x63\x41\x68\x52\x69\x03\x48\xad\xb0\x2d\x5a\xdc\x20\x7d\x0c\xcd\x7e\x06\x60\x05\x80\x2c\xc7\x18\x0f\xd7\x8c\x3b\x81\x4c\x53\x7f\x48\x48\xd1\x7b\x55\x5e\xa3\x4f\x4b\x39\x38\x6e\x48\x8a\x95\x85\x6e\x57\x6e\x5a\x27\x6f\xec\x8f\x71\x82\xa0\x16\x68\x5f\x9e\xe0\x50\x80\x09\x07\x34\x60\xa2\x83\x65\x0b\x5f\xb7\xfc\x40\xef\x9d\x9a\x38\x8e\xb1\x02\xf8\xb4\xbe\x5e\x3f\x3d\x2d\x6e\xf7\xcb\x87\xfb\xaf\xdb\xfd\xed\xfa\xdb\xfa\xd6\x37\x96\x4c\x9c\xda\xbd\x03\xa5\x27\x87\x45\x60\x93\x48\x5b\xaf\xc4\xe8\x49\xcd\x30\xfe\x4d\x9a\xc6\x68\xa3\x88\x9a\xa5\x63\xef\xb7\xee\xa0\x80\xc4\x33\x1d\xba\x30\x4e\x4f\x21\xb9\xc3\x6d\xce\xa4\x54\x61\x94\xff\x02\x87\xd3\xb2\x2f\xe9\x9a\xd4\x28\xac\x0b\xdf\x89\x53\xa5\x26\xdf\x9f\xb1\x08\x0b\xcc\x1e\x27\x66\xbd\xdc\xc7\xcb\x82\xc9\x64\x9c\xf4\x82\xc7\x3b\x28\xc5\xb4\xf3\x60\x32\xc3\x74\xaf\x28\x79\x55\x3c\x17\xad\x38\x2c\xea\xf6\x43\xf4\xb9\x21\x4c\xe8\x20\x68\x02\x3f\x46\x5d\x4f\x43\xd3\x1c\x41\xf9\x6d\x01\x75\x3a\xf9\x2a\x4a\x23\x2f\x92\xe0\x08\x39\x43\x6d\x1b\x43\xb9\x89\x7b\x76\x10\x02\xfe\x97\xe7\xf7\xfb\xf3\x07\xdd\x15\x43\x73\x8e\x51\x86\xaa\xab\xa6\x9b\x64\x88\x6b\x1b\xa7\xc0\x86\x45\x09\x46\xf3\xa2\x6c\x5e\xa7\x19\xa5\x61\x99\x44\x61\x57\x14\xb9\x40\x10\x64\x19\xd0\x12\x86\x81\x05\x7b\x9c\x6a\xd8\xac\x1e\x86\x2d\x3f\xc3\x4c\x6a\x5c\xae\x87\x4b\xe7\xa3\x78\x9d\x50\x8a\x0c\x0f\xd4\x85\xf2\x09\xbb\xcb\x5f\x77\x7f\x3c\x8c\x7f\x47\x12\x0d\x36\xce\x49\x2e\x61\xb8\x50\xd8\x5b\x3f\x22\x1b\x74\xa0\x77\xed\x8e\x0b\x67\xbe\x7f\x27\x9a\x91\xaa\x92\x11\xb9\x36\x56\x93\xb0\x79\xf1\x00\x9c\x66\xa0\x10\x4a\xb3\xff\xf7\x7f\xf6\x9b\x7c\xa4\x6d\x04\x48\x09\x5e\xbf\xb4\x3a\x56\xbb\xca\xd9\x2a\x8d\xb2\x12\x23\x0d\x8d\xa8\xaf\x26\xd4\xb8\x17\x75\xcb\xd7\xf8\x77\xeb\xc8\xae\xd8\xfe\xa5\x09\xf3\x42\x13\x6b\x7f\x27\xcf\x75\x89\x99\x6f\x38\xa0\x01\x3b\x94\x28\x03\xd7\xff\x0d\x11\xb0\x4d\x5b\x9f\x55\x97\x92\xec\x7f\x8a\xba\x10\x65\xbb\x77\xa6\x3d\x96\xc5\x35\x78\x83\x34\x58\x31\xa9\xa7\xf5\xbf\xbe\x6e\x9e\xd6\x57\xd6\xd7\x77\xbb\xdf\x3d\xec\x97\xeb\xfd\xf2\x61\xf1\x74\xb5\xbf\x5b\xdf\x2d\x43\xcf\xc1\xa0\x30\xbf\x0b\x2d\xf1\x09\xd9\x66\xca\x6c\x0d\xc0\x40\xa4\x90\x08\x69\x09\x93\x77\x1e\x2d\x3c\xbe\x41\x10\x1b\xed\x2a\x82\x8f\x42\xfd\x10\xcf\x80\x6c\xa5\xf1\xa4\x85\x24\xc1\x49\x6e\x6f\xcf\x77\x51\xcc\xd4\xb8\x8d\xe1\x76\xf1\xff\x67\xf5\x3e\xcc\x9e\x8d\x51\xe0\x01\x68\xf8\xf7\x41\xff\x87\x45\x51\x62\x30\x64\x50\xa2\xdc\x34\xcd\x79\x7c\x4e\x16\x45\xd4\x42\x9d\x6d\x27\x0e\x1f\x74\xaf\x42\xcd\xa2\x98\x1a\xea\xd4\x28\x1e\x1f\x1e\x6e\xf7\xa0\x8b\x76\x9f\x90\x70\x58\x0b\x2c\x18\xa2\xe4\xb2\xcf\x06\xe6\xb6\x5b\x16\x25\xa9\xc0\x78\xd5\x16\x0c\xbe\x14\xcd\x1c\xf4\x76\xf2\x99\xb4\x5b\x89\x9d\x2a\xcf\xdb\xa9\x18\xb3\xf4\xa6\x63\x8d\xf1\xed\x37\x74\x5e\x07\x6d\x51\xf0\x50\x5b\x79\xb7\xf0\x93\x32\x4e\x84\x93\xfa\xb9\x39\x54\x52\x1c\x1e\xbb\xf7\x7c\xb4\x26\xb1\x28\xcb\x33\xc4\x76\x60\x0a\x83\xc0\xd8\x4d\x39\xc1\xeb\xcc\x4d\x09\x16\x91\x8c\x68\x3b\xd3\xdb\x2e\x64\x1c\x3e\x65\x16\x11\xce\x23\xeb\x20\x61\xcb\x1f\x3d\x44\x99\x45\x34\x51\xa6\x7b\x4e\xb6\x71\x11\xfe\x4a\x73\xac\x04\xba\x6e\xce\x60\x5f\x1b\x9f\x99\xa5\x0c\xb7\xac\xbd\x9f\x03\x01\x4c\xe8\xdd\x6a\x7f\xbb\x28\x8c\xb2\x88\x71\x96\x2a\xbf\xf2\x5a\x2c\xca\x50\xb7\xcd\x8f\x12\xb1\x7f\xc3\xbb\xad\x6a\xdd\xbe\xec\xaa\x71\xee\x36\x7e\x12\x3c\xa6\x26\x1e\x54\x21\x76\x20\x8e\xf1\x27\x7d\x69\x16\x71\xc2\x91\xf7\x8f\x8d\x3e\x8f\x03\x68\x26\x33\x35\x27\x96\x7c\x8e\xf9\xca\xc1\xa3\x66\xe2\x7f\x8c\xfe\xf1\x63\x75\x1c\xfb\x45\xc9\x2b\x26\xbb\x3a\xfd\xf8\xb7\xe5\xda\xa0\xa2\x1b\x32\xce\x26\x3c\x06\x16\x09\xce\x79\xdf\x7a\xb2\xdc\xac\x59\xb2\x28\x8b\x04\x38\x4b\x5f\x7c\x8f\x7c\x44\x86\xbf\xfa\x7b\xd1\xbe\xd8\x1d\x6d\xa6\xcb\xcb\x22\x99\xc7\x38\x71\x7f\x56\x43\x43\xbd\x51\x1d\x7b\xfa\x09\x95\x61\x8c\xb1\x77\xee\xd4\x5f\xcb\xe2\xbf\x67\x28\x3f\xd2\x38\xea\x3e\x40\x70\xde\x6d\xcf\xa7\x1a\x8e\x9b\x87\xdd\x65\x09\x86\x45\x12\x08\x66\xac\xcb\xed\xda\xcf\x3e\x15\x65\xd2\x35\xb3\x86\x71\x26\xfa\x80\x8d\x3f\xac\x52\x95\xb8\xf2\x19\x1a\xd0\xd9\xca\xf8\x00\x7b\xc3\x22\xc5\x19\x6e\x41\xd6\xc0\x71\xd0\x77\x60\x91\x12\x26\xb5\xf5\x6e\x17\x91\x58\xe4\xe5\xc7\x50\x3a\x16\x29\x13\x29\xeb\xf2\x14\x14\x74\xae\xcf\x87\xc3\xbb\x55\xc8\x9c\xbc\x77\x26\x02\xac\xac\xe1\xfa\x34\xa0\xa4\x84\x35\xc1\x10\x4b\x2f\x56\x22\x94\x59\xfa\x43\x0a\x8b\x5c\x18\x0d\xf8\x3a\x8b\x3f\xc6\x12\x74\x9f\xdb\xf7\xe8\x91\x9b\xb0\x5f\x75\x87\xf3\xc4\xd9\x0a\x96\x7a\xf9\x7e\x65\x33\xf5\x2e\x46\x55\x2f\x70\x21\xec\xf1\x81\x21\x72\xbf\xfd\xb3\xc8\x68\x99\x7b\xe5\x53\xf1\x03\x3b\xb2\x1f\xd6\x4f\x46\xcf\x27\x8e\xd3\x9c\xba\x95\xb4\x5f\xc7\xd3\xe1\x46\xc5\xe2\x24\xe2\x98\x38\xd9\x29\x7c\x8d\x70\x50\xe7\x5e\xf1\x8b\x3a\x92\x3f\x41\x6c\x5d\xaf\xf7\x35\xfc\xf7\x5c\xd4\xb0\x2c\xb4\xee\x15\xeb\x67\x9f\x63\x9c\xe4\x80\x3d\x9d\x6d\x71\x3c\x1d\xba\xb5\x65\x29\x4a\x3f\x65\xe2\x34\x55\x28\x6b\xf8\x65\x35\xd8\xef\x58\x9c\x66\x92\x07\x1b\xb5\xe6\x1e\x40\x83\xde\x55\x37\xdd\xfe\xfa\xde\x47\x43\x2c\x4e\x09\x73\xc4\xe4\x52\x1d\xce\x1a\x82\x5e\xf3\xf8\x12\xb2\xc4\x9a\x6b\x3c\x3e\xad\xf7\x68\x07\x76\xb7\xf8\x63\xbf\x5a\x3c\xfa\xd3\x64\x59\x86\x61\x87\x13\xdc\x9c\xf5\xcf\x61\x71\x46\x19\xea\xdb\x9f\x1b\xa8\x9f\x44\xf9\x63\x84\xb8\x62\x71\xa6\x28\x42\x4c\x44\x59\x75\xb3\x3a\x68\xe0\xb8\xc3\x24\xd5\xa9\x0c\x55\xa5\x76\xe8\x0f\xe0\x47\x50\x8e\xca\xed\xe6\x50\x9c\xb6\xaf\x45\xab\x5e\x76\x55\xdf\xd7\x66\x31\x91\x11\xe6\xd0\x65\x75\xfe\xd9\x6d\xb1\x8f\xbd\xf7\xc8\xf8\xe7\x12\x50\x88\x77\x5d\x97\xdd\x44\x6f\x41\x6f\x5f\x06\xe9\xe6\xc7\x4d\xb5\x49\xd6\xc8\x62\x9a\x53\x18\xf6\x53\xae\x17\x9b\xab\xed\x87\xfd\x42\x16\x33\x93\x5a\x13\xf9\xa2\x41\xd4\xf9\x23\xd4\x3f\xb0\x90\xe3\x88\x14\x69\xf2\x7f\x83\xf4\x87\xc5\xb9\x13\x34\x74\x8a\x74\xab\xc5\xe3\x3e\xe4\xce\x2c\x16\x84\x5a\x58\xaf\xf6\x02\xa8\x33\xd8\x08\x16\x0b\x46\xb0\xcf\xbe\x5c\xef\x16\xfe\xa3\x92\x59\x54\xf3\xf5\x47\x3a\x17\xb3\x85\x41\x16\x4b\x61\xac\x2f\x50\x11\x9e\x9b\xd4\x11\xb3\x8e\x6b\xc7\x6a\x72\x9f\xa5\x36\x38\xfb\x1e\x0f\xe2\xbd\x0f\xc5\x59\xac\xa2\x14\xb7\xd3\xa0\x82\xec\xbc\x46\x3c\x6f\x95\xc5\x8a\x5b\x0a\x4a\x23\x8a\x6f\xd5\x9b\xff\xab\x16\x16\x07\x81\x65\xed\x25\x1c\x04\x3a\xde\x6b\x7f\x18\x62\x6d\xd5\xcb\xeb\x4a\x41\xd3\xb8\xb6\xd0\xa7\xec\x30\x16\x43\x2e\x50\x91\x60\x60\xae\x38\x67\xd9\xe1\x47\x83\xed\xfc\xb8\xd2\x67\x17\xc6\x7a\xab\xd0\x8f\x0b\x44\x2c\x36\x42\x51\x17\x99\x2d\x0e\x87\x3b\xb4\x46\x0c\x85\x4a\x16\x1b\xc8\x65\x2f\x5c\xbc\x29\xb1\xac\xe0\x0e\x26\x51\x92\xf9\xf8\xd3\xd1\x96\x1f\xe4\x7f\x86\x50\x1d\x96\x44\x39\xe0\xdd\x0a\x2a\x93\x17\xdc\x00\x3f\xd0\x28\xc6\x43\x1b\xf8\xe1\xa2\xe5\xeb\x86\xc5\x54\x7a\xe5\x82\xee\x82\x5c\xe4\x65\x3b\x0d\x77\xe2\x34\xf9\xa9\xfe\x43\xdc\xd2\x8d\xe4\x19\x9f\x75\xf3\x0b\x15\x1b\xff\x29\xc7\x93\x44\xe5\xa7\xe3\xa9\x85\x7d\x92\x8f\xd6\xe4\x24\x89\x62\x0f\x4e\x5f\x42\x6b\xc5\x0e\x6c\x47\x6e\x3c\xdb\x92\xc4\x81\xec\x51\x33\xbf\x6c\xaf\x0f\xa2\xbd\x12\x85\x97\xeb\x60\x49\x16\xe7\x76\x87\x73\x29\xbf\x38\x4e\x45\x36\x58\x92\x65\x1c\x7b\x2b\xc7\x02\x95\x3a\x30\xb9\x1d\xe6\x12\x09\xa1\x31\xb3\x1d\x7f\x55\x95\x1a\x85\x54\x7a\xb1\x63\x96\x90\x5c\x47\x21\x1b\xb8\x11\xcd\x20\x8d\x67\x09\x01\x9e\x0f\xcd\x75\xba\xd4\xfc\x52\x0a\x97\x25\x34\x12\x59\xea\x34\x53\x61\x77\x21\xe0\xe5\x77\xc5\x2e\x2a\x1a\x6c\x8d\x09\xa5\x31\x96\x9d\x4a\x68\x5f\xab\xfa\x87\xb3\x83\xb7\xfa\x08\xbd\x6c\x09\x4b\x98\xd0\x38\x87\x0f\xa2\x69\xf7\x72\x68\xa6\xc2\x12\xae\x09\x78\x31\x19\xd7\x74\x07\x3d\x92\x7c\x9a\x7f\x8c\x79\x6a\x41\x7d\x0f\xdf\xef\xf7\x3f\x8a\x83\x7f\x8f\x93\x3c\x95\x28\x28\x7e\x14\x6f\x28\xb3\x92\x2c\xac\x0a\x7b\x51\x95\x8f\x50\x07\xf4\xb7\x1f\xcd\x13\xcc\x78\x6f\xec\x16\xe0\xdf\x8f\x44\xa6\xc6\x36\xac\x46\x91\xe5\xdf\x6d\x6f\x4e\x2e\x55\xf2\x04\xf7\xba\x6f\x8b\xc7\xb5\x2c\x06\x5f\x92\x2b\x04\xe1\x2e\xde\x8a\x2e\x34\x63\x49\xbc\x14\x0d\xac\x4b\x94\xcb\x0d\xba\x30\x38\x0e\xb3\x94\x46\xbd\xc0\x51\x8c\xc3\xac\x44\x6a\x29\xdd\x23\xde\x22\x0a\xaf\x99\xd3\xc9\x60\x89\x06\x66\xd2\x8b\x16\xdc\x65\xfb\x8d\x25\x90\x70\xe5\x0a\x66\xab\xa7\x3b\x51\x8a\xe7\x8b\xf9\x02\x59\x1a\xd9\x3e\x08\x32\xdd\x1e\xcc\x4c\x3f\x81\x25\x20\x68\x6c\x5f\x8f\xb6\x7e\x0f\xda\x53\x2c\x8d\x22\x62\x5c\x41\x66\x37\x94\xd0\x9b\xdd\x00\xd2\x28\xcb\x52\x87\xfa\xfd\xbd\x38\x1c\xc2\xe2\x9b\x46\x22\xc5\xdd\xfd\x13\x49\xfc\xd9\xe7\x91\xc6\x2c\xc6\x74\xf1\x16\x44\x03\xcb\xe2\x70\xb8\x08\xb5\x86\x3f\x23\x4d\x98\x2d\x5f\xca\xf3\xfb\xbe\x7d\x71\x20\xfb\x31\xc6\x94\xa5\x29\x85\x94\x04\xf7\x31\xd0\x2b\x71\xf2\xcf\x39\x4d\x25\xe7\x7c\xd0\x39\x6b\x16\xaa\x2d\x26\xe2\x46\x2c\xcd\x12\xcb\x47\xf7\xfe\x66\x16\x13\xd5\xe5\x31\xb8\xa6\x60\x7e\xed\xcf\x98\x11\x7b\x07\x97\x45\x7b\x35\xd0\xdb\xfb\x9f\xa6\x65\xca\x28\x0b\x1e\xbb\xb6\xc3\x79\xb1\x3a\xa5\xdd\x5b\x66\x7b\x39\xf7\x55\x8b\xe2\x13\x73\x77\x28\xcf\x34\x92\x08\xba\x15\xae\xcf\xb1\xe7\x1f\x67\xae\x34\xc6\xe7\x6d\x83\x1a\x2a\xa0\xfb\x07\x2a\x53\x89\xc9\x8a\xfb\x00\x62\x4f\xbe\x15\x87\x83\x78\x9e\xd4\xc4\x59\x2a\x33\x9b\x04\x1c\x8b\xb2\xfd\xd5\x53\x9f\xfc\x6c\xa5\x88\x75\xe3\x81\x57\x8f\x2b\x98\x06\x62\xbf\xea\x24\x0f\xd6\xc0\x54\x13\x83\x93\xc9\x13\x15\x6c\x0d\xe2\x83\xb6\x3c\x4b\x75\x6e\xe5\x78\x7d\xfc\x26\xec\x54\x70\x47\x21\x36\x88\x36\x78\x2e\x7e\x82\x12\xa5\x7e\x37\xb5\xd7\xed\x60\x29\x68\x08\xb0\x9c\x2e\xbb\x77\x3b\xf2\x3f\x2e\xff\xf1\x2f\x7d\x6a\x52\x7b\x9b\xee\xc4\x51\xb4\x7f\x0f\x25\xc6\xb2\x38\x8b\x5c\xbf\x4b\x9d\x6b\x98\x40\xd2\xc6\x3f\x27\x8b\x89\x15\x28\x76\x47\x1f\x0c\x7e\xc9\xd7\x06\xf4\xa2\xb1\xa9\xbb\x63\x72\xb2\x2c\xd6\x2a\x86\x29\x68\xde\xbe\x45\x7c\x3e\x52\xca\x92\x48\x64\xb1\x6b\xc8\x8d\x45\x5a\x26\x03\xbb\x9c\x25\xfb\x5f\xa5\x96\x2e\x51\x6b\x2c\xcb\x94\xed\x78\xb8\x6e\xf9\x97\xe2\xd4\xf7\x52\x58\x46\x54\x8c\x81\x11\x76\x62\x1e\xeb\xaa\x8f\x8c\x33\x1a\xdb\x54\xc3\xe2\x37\xee\xc4\xdb\x6c\xc8\x92\x51\x69\x90\xef\x2f\xcf\x56\xb6\x13\x1b\x32\x7e\x16\x8e\x7f\x13\x8b\x25\x62\xc8\xfb\x30\xd1\x89\xed\x7d\x3a\xbd\x33\x26\x24\x42\x73\xc6\x46\x95\x9f\x02\x71\x58\xc6\x20\x43\x7f\xe5\xd7\x53\xf8\xad\x3c\x17\xd8\xa9\xc3\xc8\xf7\xba\x28\xc5\x01\xb7\xd3\xfe\xb0\xc9\x13\x6f\x38\xd5\x54\x4e\x9b\xa5\x8b\x5c\x26\x3f\x43\xc4\xd6\x7b\x09\xc1\x64\x8b\xe7\x4f\xc2\xe3\x7f\x4c\x3f\x68\xe1\xb1\x27\x8b\x0a\x4d\xfc\x37\xcb\xd8\x92\xb0\xbd\xad\x79\x83\xde\xf3\xfb\x70\x98\x24\x28\x2f\x71\xb0\x18\xd0\x65\xa1\xc3\x11\x15\x47\xce\xb4\x72\x98\xd9\x66\x2a\xe2\x58\x08\x79\x7c\xb8\xab\xaa\xaa\x1a\xfc\x3d\x07\x4b\x0b\x6f\xc5\xa1\x7a\x0e\x7f\x76\x80\x0b\x57\x9f\x12\x2d\x3c\x1e\xc4\x65\xb6\xee\xde\xaf\xd1\x2e\x91\x29\x16\x23\x41\xa3\x8b\x6b\xc6\x42\xde\xe3\x55\x32\x53\x39\x45\x24\x80\xfd\x12\xac\xc9\xcc\xf8\x02\xb2\x4c\x09\x45\x55\x3f\x5f\xef\x8a\x12\xea\x6b\x6b\xc6\x88\x45\x91\xf1\x59\xbd\x0a\xc9\x5e\x68\x7d\x7b\x1e\x2c\xd1\xe3\x93\x42\x64\xbc\x93\xca\x9d\x78\xb3\x1e\x80\x5d\x3c\x12\xa2\xcb\xc9\x70\x9a\xe0\x82\x2a\x0f\x8e\x4e\xf2\x67\x75\xae\x1b\x38\x18\x7f\xc7\x80\xe7\x8e\xb6\x7e\x3c\x89\xf2\x7d\x86\x1c\xc5\x32\x13\x09\x7c\x7f\xac\xa0\x60\xd9\x62\x2d\x72\xfe\xde\x18\x65\x50\xfc\x76\x8f\x75\xe2\xdf\xe1\xfd\x82\x37\x34\xba\x3e\x12\xc5\x11\x4b\x03\x15\xb6\xa8\xca\x1b\xaf\x5e\x3d\x23\xe9\xcf\x48\x1c\x05\xbe\xce\x12\x6f\xc0\xf8\xe7\x92\x98\x2b\x1e\xaa\xd4\x2f\xa2\x79\x99\xe8\xe2\x32\x92\x70\x1e\x8b\x91\x63\xc5\xec\x7d\x26\x29\x8d\x2c\xbe\xae\xfa\x09\x36\x30\xd8\x55\x63\xd9\x16\x3f\x90\x09\xa4\x0f\x22\x23\x16\x33\xad\x9e\x31\xc0\x48\x9a\x47\x48\xc9\xbd\xad\x9e\x7d\x78\x6b\x9f\x19\x7c\xb0\x5c\x92\x54\x18\x4c\xe3\x6b\xa7\x9e\x83\x05\x8b\x0f\x99\xcc\x8c\xa4\x2a\x8d\x94\xe5\x90\xda\xd6\xf6\xe4\xfa\xb2\x24\xa5\xda\x53\xed\x9d\x2d\x18\x04\x47\x9d\xee\x38\xc1\x8c\x77\xd9\xdd\xf4\xf2\x67\xf3\x04\xe2\x70\x27\x74\x1d\xde\x4d\x92\xd1\x98\x39\x07\xec\x7e\xbd\x25\x59\xce\xd1\xd6\xc0\xd6\xa9\x56\x2f\x41\x02\xea\xd7\x85\x13\xff\x34\x33\x60\xe8\x42\x52\xa8\xca\xb8\xec\xdc\x1d\x21\x91\x25\x2c\x8a\x1a\x16\x07\xef\x5b\x7a\x7f\x3e\x8c\x15\xdd\x18\xa1\x91\x41\x28\xe1\x10\xc1\xea\x33\xf0\x4f\x02\x03\x42\x0d\xe1\xc6\x27\x36\xc6\x14\xea\x7c\x68\xdf\x17\xcd\x75\xf1\x06\xd6\xcb\x0c\xe9\x96\x47\x98\x48\xd8\x30\xc2\xe2\xd8\xd7\xdc\xa1\xd4\x3a\x20\xcf\x18\xe1\x59\x84\xc0\x38\xeb\xe1\xb6\x37\xbd\x76\x08\x23\x9c\x12\x8f\x03\xbb\x43\x3a\xd5\x77\x51\x5f\x81\xe8\xb9\x93\x8c\x70\x66\xa3\x8b\xdf\x8b\xa6\xb9\xfb\xb4\x7c\x40\x38\x8f\x91\x05\xe4\x3b\xda\xee\x7d\x19\x5f\x28\x17\x39\x62\x7b\x9b\x13\xa8\x42\x1c\x6c\x5f\x76\x3c\x33\x72\x91\x12\x57\x86\x58\xad\xbe\xb8\x0a\xa8\x2f\x41\x13\x91\x4a\xc2\x7a\x3c\xba\xde\xcd\x8b\x9f\x32\x22\x94\xb5\x75\x7c\x16\x4d\x00\xcd\x32\x22\x63\x81\x55\x62\x9b\x17\x6d\xc2\x64\x92\x52\x21\xc9\xfa\x69\xbd\x5d\x3f\x7d\x5b\x5f\xed\x5d\x31\x6b\xb7\xf9\xd7\xe3\x66\xb7\xdf\x3e\xdc\x7e\xdd\x6d\x1e\xee\xb7\x61\xbc\x61\x38\xf9\x5a\x0c\x5f\x5b\xdf\x77\x66\x44\x45\x99\xb0\xfa\x38\x96\x2b\xe7\x05\x4c\xe7\x2f\x52\xc5\x36\x93\x57\xe1\x15\x58\xbe\x3b\xcb\xe1\x5f\xd1\xea\xdc\x19\x74\xc6\x50\x52\xca\x99\xe1\xf9\xcb\xd0\x4c\xfa\x12\xd0\x55\x55\x3a\x65\x90\x3e\x68\x21\x1a\x64\xee\x1c\x72\x6e\x44\x29\x26\x8f\x00\x22\x81\xcc\x9f\xd7\xa2\xd4\xd5\x6b\x8a\x3f\x70\x94\x9e\x13\xc3\x41\x25\x43\x77\xff\x41\xe5\x8c\x18\xb0\xb6\xe2\xeb\xab\xab\xfe\x4f\xb6\x76\x3b\xb2\x30\x18\xb5\xc8\xe6\xb7\x74\x1a\xe7\x09\xb6\xbe\xac\x76\xa0\xdd\x07\xe6\xec\xa3\x18\x8d\x45\x14\x59\x35\x5b\xe8\x8b\x3f\x83\xb7\x8b\xc6\x8a\x58\xfb\xae\x4a\xfd\x70\x96\x13\xcd\xd7\xb2\x2d\x0e\x58\x91\xea\xa6\xd2\xad\x38\x97\xca\xdf\x43\x9a\xc4\x51\xea\xd3\xe4\x53\x55\x36\x15\xb2\x6d\x86\xc8\xed\xc9\xb5\x26\x54\x78\x0d\xa7\xc5\xa9\xd8\xe8\x51\x89\x88\x26\x2a\x8d\x7b\x99\xd9\x7b\x78\x7d\xac\xe6\x8b\x54\x34\x8d\xc0\x71\xa4\x9c\x0c\x6d\xb3\xab\x2c\x9c\x29\x94\x6a\xff\x31\x29\x6b\xd3\x34\x49\xac\x1d\x93\x86\x43\xf1\x13\xea\x47\x31\xd9\xab\xb9\x1f\x98\x29\x19\xda\x73\xe7\x53\x88\x5d\x68\x2a\x99\xd7\x47\x7e\xfc\xb6\x9e\x6f\x9f\xd1\xd4\xa4\x19\x84\x48\x0a\x6a\x17\x62\xbb\xa3\x99\x60\xc8\xc8\xbf\x2e\x4a\x0d\xf5\x97\xf7\x53\x58\x97\x69\x06\x52\xf7\x8c\xee\xf5\x1b\x16\xfa\xf5\x14\x1d\xd8\xcf\x50\x9a\x19\x02\x51\xef\xc9\x73\x05\xa7\x43\xf5\x7e\xa9\x87\xc5\x28\x8d\x22\xe4\xa8\x22\x92\xe7\xaa\xf8\xe9\x97\x37\x4a\xa3\x1c\xeb\x88\x8f\x35\x9c\x44\x0d\x23\x39\x70\x46\x59\x4a\x91\xab\x7e\x14\x6f\x1e\x16\xd9\xd3\xec\x19\x65\x24\xc7\x55\xe8\xeb\xe9\xb9\x16\x1a\x1e\xcf\xf5\xf3\xc5\x8c\x63\x3a\xc6\x2f\x78\x45\x4e\xf7\x74\x4f\xa7\x3c\xca\x64\x10\x02\x73\xbf\xf4\x1b\xd4\x85\x09\x26\x9a\x8c\x72\xe0\x78\xc7\x4e\xe2\x7d\x61\x4c\x71\x28\xb0\xca\x32\x47\x9f\x64\x34\x27\x29\xd6\xb0\x71\xbf\xac\x0e\x5b\x8f\xae\x98\x7c\x6d\x2e\x00\x4f\x69\xe7\xd9\xa2\x2c\x8e\xa0\xba\x67\xf4\x99\x08\xc9\xf8\x0c\x22\xb6\xd6\xd3\x7f\xf9\x34\xf9\xb6\x6a\xba\xb8\xb8\x6f\xce\x53\x91\xe6\x08\x11\xfb\xf2\xf0\x75\xbb\x5e\x5f\xdd\xac\x3f\xd1\x37\x64\x54\xd0\xcc\x4b\x4d\xdc\x89\x62\x5e\xe1\x95\x51\x01\x29\x52\xd3\xad\x21\x8f\xeb\xe2\xbb\x63\x92\x18\xa4\xd1\x5f\x07\xc5\x11\x77\x40\x65\x9c\x05\x49\xc7\x0f\x4e\xac\x48\x82\x40\x79\x09\x5e\x05\x8c\x51\xa5\x24\x02\xd9\x5b\x68\xda\x5b\xd0\xcf\x50\xff\x1b\xea\x0a\x75\xa9\x5b\xa8\xc3\x7a\x4e\x21\xe6\xc2\x15\xb6\x9d\x28\x65\x5f\x04\x0b\x6a\x51\x8c\x1a\x6d\x7c\x87\xfe\xb6\x52\x3f\x9c\xa1\x46\xd3\x8a\xe3\xc9\xf3\xd8\x18\x35\x46\xa0\x26\xc4\x7e\xbf\x2f\x7c\x41\xc7\x1e\x62\x91\xb0\x01\x99\xd0\xff\x39\x37\xbe\x14\xfa\x69\xd6\xc6\xe2\x94\x88\x81\xf4\xb3\xcb\xa3\x17\xd6\x3f\xd2\x4f\x30\x16\x13\x83\x71\xe0\xd2\x33\xf1\x7e\x1d\x07\x0d\xbe\x82\x6a\xa4\x0b\xbd\x88\xc6\xeb\x04\x8c\xe7\x24\x8b\xb9\xc0\x7e\xd8\x52\x94\x3f\xb0\x4a\xbc\xf7\xbc\x8e\xab\xaa\x14\x16\xbd\xe4\x86\xa6\x11\x20\xda\x71\x79\xae\xcb\x45\x30\x00\xf0\x07\xb3\x08\xf5\xd0\x83\x6f\x73\xa9\xad\x35\xf9\x07\x75\xe5\xf9\xeb\x4d\x85\x40\xb0\xb3\x73\x48\xe8\xe2\x63\xa8\x9b\x19\xfb\x23\xc6\x52\xa0\x8e\xe0\xa8\x1f\xa1\x76\xcc\xaa\x8b\x6d\xda\x2f\xaf\x2c\x63\x0c\xd5\xb1\xbb\xd8\x48\x3c\x0f\xc5\x31\x19\x86\xff\x51\xf0\x0e\x3d\x41\xed\xd9\xf5\x8c\xd1\x04\xac\xf4\x4d\x01\xaf\x77\xe7\x43\x1b\xfe\x0e\x99\x71\x52\xca\xa1\xb8\x3d\xbb\xa7\x30\x46\x6c\xc5\x6d\x18\x4a\x56\xe7\x60\x20\xfa\x81\xd8\x11\x63\x8c\x46\x49\xf0\xb0\x72\x15\xfc\xa1\xb5\xea\xf8\x15\x61\x8c\x59\xb6\x85\xff\x1a\x6c\xf0\xaa\x1f\xbb\xea\x82\xa8\xd4\x0d\xa5\x89\x35\x40\x75\x4e\x15\xd3\x49\xc1\x8c\xc0\xe0\xc2\xc2\x03\x7e\x5f\xf9\x5f\xcd\xb3\x84\x88\xfe\x46\xa1\xac\xd8\xf2\x7d\xc6\xf2\x88\x31\x4e\x75\xe4\xb7\xc0\xc5\x60\x8b\x61\xb9\x30\x40\x3f\x02\x7a\x8f\x6f\x41\xae\x23\x43\x82\xb6\xd6\xe2\x34\x03\xa6\x60\x22\x22\xae\xb3\x73\x38\x6c\x6d\x4c\x1a\xba\x1e\x9e\x65\x3d\x7f\x76\xc1\x01\x7b\xde\x42\x8a\x52\x57\x25\xe8\x8d\xaa\x82\x4b\xb4\x1b\x23\xe3\x08\x79\x3e\x7b\xdc\x02\xec\x32\x33\x0a\x0a\x98\x8c\x13\xb4\xc0\x13\x5a\x6f\xcf\xa7\x41\xb3\x61\x7c\x99\x4a\x67\x28\x89\x76\x82\xf6\xcb\x69\xf7\x52\x43\xf3\x12\x6c\xff\x18\xd3\x89\xd5\xa6\x2c\x54\xe5\x3f\xdf\x04\xd6\xe4\x78\x77\x60\x3a\x35\x28\x1a\xbd\x2e\x9f\x6b\x38\x8a\x70\x0a\xa1\x71\x89\xec\x22\x4f\xf7\x2b\xb0\xa8\xdc\x14\xcf\x93\x4b\x81\x2c\x95\x59\x4f\x9c\x5d\x8a\xc3\xa1\x0a\xf3\x1a\x68\x8a\x6d\x30\x28\xf5\x00\x33\xc5\x4c\x1c\x45\x76\xa9\xfa\x39\xb0\x89\x9b\x7f\x87\x4d\x92\x64\x62\x24\xf4\x31\x6f\xde\x68\x87\xf3\x28\x96\xc8\x8e\x28\xe1\xad\x45\x5e\xde\xcd\xc3\x6e\xf5\x45\x04\x74\xd2\x6f\x7e\x9c\x93\xd2\xfb\x4f\x55\x94\x37\x43\xa3\xbc\xf1\xd7\xf3\x88\xca\xd8\xd2\x8e\x6a\xed\x44\xf9\xec\x46\xdb\x0c\x28\xce\x8c\x47\x22\xce\x7b\x09\x6d\x3b\xf0\x83\x33\xc6\xca\x3a\x10\x06\xfe\xd2\x27\x65\xe7\x3e\xfe\xe1\xb1\xc9\x70\xed\x85\x63\xd1\xf6\x22\xba\x8c\x27\x89\x95\xb5\xec\x96\x14\x61\x81\x03\x87\xe2\xb2\xc4\xe7\x47\xb3\x28\x77\x0b\xcd\xef\x75\xf3\xb5\xb9\xa4\xe0\x30\x9e\x18\xe5\xd8\xa3\x98\x52\x61\x27\xd1\x97\x60\x79\xaa\x12\x0f\xfa\x5d\x9c\x75\x61\x51\x0f\x93\x13\xa4\xda\x5a\x54\x75\x81\xf2\x7b\xf3\x64\xc5\xb5\x3e\xdf\xbd\x78\x26\x22\x36\xb2\x25\x00\x3d\xb2\xe4\x70\xc3\x48\x14\x61\x3f\x48\xe0\x5f\x51\xe4\xdc\x1f\x21\x06\x57\x64\x5b\x58\x3d\x08\x55\x94\xcf\x8f\x81\xdc\xd2\x7f\x11\xe1\x26\x02\x2f\xb5\xd9\xcd\x55\xdb\xcc\x3c\xcf\xc1\x6f\x38\x51\xc2\x3a\x66\xd8\x57\x00\xc5\x23\xa6\xe7\x53\x12\x8b\x93\x57\x28\x9d\xbe\x2c\x6a\xcf\xfa\x60\x9c\x9a\x28\x0e\x06\x41\xd5\x8f\xaf\xa7\x8b\xe6\x08\xa7\x86\x25\x0e\x1e\x0f\xf5\xb8\x9e\xc5\x59\x14\xd1\xd0\x65\x6e\x8a\xe7\x12\xea\x2e\x4d\x0a\xfa\x4a\x8c\x33\xa9\x12\x0b\x6a\xae\xba\xec\xb2\x9e\x44\x88\x9c\xa7\x56\x30\xeb\xae\x98\x56\xfd\x38\x27\x56\xf5\xc4\x41\x6f\xba\xfd\xa3\x1c\x10\xe2\xfe\x16\xc6\xc9\x9f\x2a\x27\x48\x9c\xb9\x91\x00\xff\x1b\x9d\x9c\x71\x6e\x68\xee\x38\xcd\xab\xa2\x7d\x7f\x2c\x46\x11\xec\x78\x6c\x9e\x49\xbc\x9d\xdd\x4a\x70\x27\xea\x6e\x35\xf0\x37\x22\x37\xca\xd6\x65\xcf\xa8\x6d\x36\x50\x01\x70\x03\x84\x20\xb8\x3a\xb7\x08\x09\xb0\xae\x27\x7d\xf2\x74\x1e\x23\x5e\xb8\x4c\x32\x64\xff\x36\x2f\xd5\xf9\xa0\x97\xb0\xeb\x22\x82\x72\x10\x46\x71\x49\xac\x1a\x98\x7d\xdf\x6f\x0b\x59\x8b\x5e\xa2\x65\x74\xd5\x52\x27\xf8\x8c\xaa\x73\x7b\x3a\xb7\x93\xcc\x9a\xab\x28\x23\xae\xe6\xff\xcf\x4a\xae\xaa\xe3\xe9\x00\xad\xc7\xc1\xf9\x31\xa9\xc1\xce\xc4\x3e\x00\x33\xab\xcd\x6a\xf1\xd8\xed\xfc\x41\x0d\x68\x4a\x10\x19\x5f\x83\xca\xac\xa1\x88\xe3\xa8\xd8\x69\xec\x8f\xa9\x58\xc9\x01\x2f\x0e\xea\x06\x15\x08\x66\x73\x0e\xae\x0c\xe0\x99\xfa\xd5\xf8\xb1\xee\x6d\x33\x7e\xd5\x25\x19\x4f\x41\x1d\x27\xc4\x35\x7e\xae\xeb\xaa\x69\xe7\x0b\x9d\xd3\x0f\x71\x8e\x80\x0d\xa7\x7f\x09\x7a\x16\x9c\xc9\xb5\xcc\x91\x82\x71\x07\xa7\xea\x7c\x0a\xd3\x40\x1b\x89\xc6\x4d\xfe\x4e\x5e\x86\x41\x16\xa0\xd0\x2f\xbb\x10\xe5\xf8\x12\x42\xa9\x1f\xcf\xf2\x50\xa8\x8d\x17\x48\x64\xdc\x70\x0b\xfe\x5a\x55\xe5\x4f\x6b\x65\xba\x90\x55\xdd\x5e\xd8\x5d\xfa\xe1\x79\xca\x7a\x8f\xb9\x47\x51\x8b\x23\xb4\x83\x97\xf6\xef\xf5\x5c\xb9\xd1\x39\xbe\x6e\x8d\x38\xc0\x4a\x38\xc9\x47\x96\x47\x39\x11\xdd\x9c\xfd\xf6\xf5\x76\xb5\xb8\xdf\x3f\x3e\x5c\x85\x23\xc0\x79\xe4\x41\xb5\x95\xfa\x21\x4e\xd6\x78\x7b\xfc\x68\xf3\x38\x12\xcc\x95\x37\xe2\x68\x14\x8d\xe7\x31\x4b\x10\x5a\x73\xaa\xab\xca\x6c\xbd\xa4\x3d\xcb\x13\x16\x7b\x01\x9b\x90\x0f\x4c\xde\xf9\xf1\x77\xa4\x11\xcd\xb2\x31\x0f\x67\xa1\xc5\xa9\xed\xeb\xe8\x7e\x60\x62\xeb\x69\xff\x39\x6b\xf7\xa6\x72\x7f\x24\x17\x58\x36\x59\x7e\xfd\x73\xfd\xb4\xdf\xee\xd6\x8f\xfb\x74\x96\x1e\xc5\x72\xc2\xac\xc5\xce\xcf\x2e\xc9\x7e\xff\x45\xc8\x9b\x53\x95\xa2\x33\xf8\x6d\x25\x06\x35\xde\x9c\x9a\x1c\x99\x0e\xd7\x9b\xa7\xed\x6e\x7f\xb5\xf8\x73\xbf\xbe\x0f\xb7\x96\xa5\x0a\x29\x27\xe7\x06\xea\x01\xe1\x88\xe5\x8c\x58\xf9\x7c\xdd\x65\x3d\x70\x55\x8a\x11\xdf\x6b\xee\x41\xfb\xdf\xc7\x84\x96\x56\x8a\x59\xe8\x75\xf9\x5c\x94\x00\xf5\xc3\x61\x20\x14\xcc\x72\x4e\x09\xb6\xf5\x6e\xaa\xea\xf9\x00\x48\xd8\x9a\x0b\x4c\xff\xf6\xbf\xf3\xf7\x83\x6b\x06\x26\xc0\xae\x1e\xd1\xd1\xc0\xb2\xfc\x2e\x40\x94\x79\x9e\x1a\x6f\xb5\xf6\x28\x4e\xd3\x2a\x6f\x9e\x0b\xab\x9d\xdc\x3a\xb1\xe7\xfb\xdd\xd3\x9f\x9f\x07\xeb\x79\x6e\x62\x99\x0c\x14\x4c\xff\xbd\xfb\xdd\x2e\x5b\xf3\xf9\xea\x67\x55\x8c\xc9\x5f\xe7\x5e\xaa\x5c\xc4\x79\xda\x3b\xa4\x5e\x18\x1f\x4f\x47\x0b\x89\x68\x0c\xec\xff\x77\x51\x75\xdd\x43\x53\x72\x99\x52\x62\x4b\x62\xa7\x0a\x5b\xbc\xa6\x68\x7f\x1b\xc4\x73\x93\xdb\xac\x22\x0b\x0f\xc4\x02\xf3\xfe\xfb\x66\xf7\xe5\xea\x69\xf1\x7d\x71\xbb\xdf\xee\x16\x4f\xdd\x84\xdb\x79\x58\x77\xae\xd2\x8c\x58\x5c\xd2\x7f\xaa\xe9\x2d\x56\xb9\xc1\x46\x90\x28\xea\xab\xba\x3a\x6d\x07\x9d\xbb\x89\xef\x1e\xcb\x95\x10\xa8\x63\xf7\x5c\x8b\xb2\xf5\x32\xdd\xe3\xd5\xd7\x8f\x84\x34\xb1\xd5\xf5\xee\xad\xf8\xa3\x1c\x10\x60\xe6\x57\xa7\x5c\x19\x46\xc1\x03\x55\xaa\x49\x96\x9d\xeb\x24\x41\x80\x8a\xa9\x01\xbd\x75\xbe\x9e\x06\xf5\xfa\xf1\x89\x74\x62\x31\xd3\x9b\xc6\xc3\x7f\x03\xf0\x72\xf2\xd3\x35\xb3\xba\x01\xaf\x56\xd9\x2c\x48\x5b\xb2\x1c\x22\xc0\x58\x0f\x09\x81\xcb\x73\x71\xd0\x83\x4d\xff\xf2\x3f\xce\x56\x0f\xdc\x7f\x58\x18\x6f\x0f\x8d\x49\xef\xcc\xe6\x9e\x03\x50\x2c\xab\x0b\xad\x83\x03\x40\xd9\x7e\x8c\xa5\x15\xb1\x12\xc8\xa8\x85\x52\x0f\x9b\xab\xc3\x78\x4a\x24\x42\x28\x3b\xf5\x51\xae\x6e\xf9\x1e\xe4\x49\x99\x48\x54\x86\x8d\xcb\x2b\x51\x8a\x76\x50\x63\x17\x69\xc4\x51\x2d\x64\x55\x95\x96\x66\xb5\x7c\xf7\x46\x26\xb3\x0f\x4a\x64\x29\x18\xdc\xd8\xde\xd0\x73\xc2\xfd\x95\x32\x23\x1d\x94\x6e\x7f\x9a\xca\x9c\x33\x41\x21\xf3\xb0\xc6\xab\x4a\x4d\x72\x49\xc1\x92\x98\xdb\x8a\x7b\x8d\x5a\x7c\x4b\x3b\x53\x86\xc1\x8c\x60\x19\x25\xa6\xd7\x7c\x83\x52\x8b\xb2\x6d\x1e\xcc\xee\x65\x2a\x08\xc1\x04\x63\x19\x76\x5d\xf7\x45\xf3\x50\x2e\xe6\x40\xd1\x82\x27\x81\xf6\x65\x25\xc1\xd6\x4e\xdd\x76\x3c\xf1\x04\x67\x1c\x79\xf9\xab\xdb\xc7\x61\xad\x46\x70\x61\x90\x6d\x0f\x6f\xa7\xa2\x1e\x01\xa4\x04\xd7\x26\xb3\xdc\x82\xd3\x26\x44\x3b\x3e\x00\x14\x79\x06\x98\x8e\x9d\xaa\x57\xa8\xaf\x44\xaf\x18\x8d\xe7\x98\x32\x52\x44\x4e\x18\x66\xb1\x76\x7d\xb9\x05\xa1\xa1\xf6\x1d\xc0\xe1\x8c\x12\x39\x01\x9e\x86\x22\xc5\xd7\x52\x59\x3e\x2a\xb6\xef\xa7\xf7\x3b\xcf\x53\x20\x03\x73\x35\x47\x87\x2e\xa0\xc1\xa5\x72\x5a\x44\x11\xb9\x66\x58\x21\x7c\x11\xcd\xca\x12\xef\x40\x2f\x4e\xa7\x43\xa1\x86\x86\xba\xe3\xcf\x48\x91\xa6\xda\xfb\x0d\xbc\x4d\xb2\x08\xa1\x62\x02\x49\x4f\x01\x1d\xf2\x46\x84\xe2\x56\xd1\xf6\x19\xda\x7f\x9d\x0b\xf5\x63\x79\x7e\xc7\x5f\x61\xcb\x92\xa3\x54\x47\xe8\xd4\x5a\xd9\x1c\x44\xd3\xf6\xd2\x7e\x36\x1e\xd5\xa1\x72\x1a\x46\xe7\x60\x43\x56\x61\x60\x3b\xac\xfb\x8c\x2f\x0e\x12\x66\x73\x8b\x2e\x11\xd8\x5f\x05\xe9\x68\x26\x20\xb5\xa2\x30\x0d\xb4\xf7\x55\x7b\x57\xd5\xb0\x7b\x11\xd3\xa9\x05\x86\x21\x7a\x65\x79\x73\x33\x9a\x32\x5d\x08\xe9\xd6\x05\x74\xc9\xb2\x4a\xe3\xda\x39\x66\x8d\xee\x9e\x8c\x33\xe6\xba\xde\xf2\xfc\xfc\x4d\x1c\x9c\xdc\x18\x43\x8b\x6c\x17\x39\x39\x6e\x4a\x8f\x31\xfd\x7c\x67\x94\xb1\xb4\x1e\xd7\x5e\xe9\xfc\x51\x14\xb5\x05\xf6\x76\x4b\xd0\xdf\x43\xc6\xc8\x84\x5a\x2d\x29\xa1\xad\x67\x4d\x32\xb9\xf0\x84\x26\x31\x0b\x9b\xbf\x5b\x79\xad\x59\xc8\x45\xda\xe4\x3f\xc2\x18\xae\xed\x4b\xd1\x14\xea\x09\x9e\xcf\x87\xa1\x67\xed\x07\xd7\x91\x32\xab\x4a\xe2\x24\x4b\x9e\x50\x87\xca\xdf\xa4\x34\x0f\x3e\x50\xb8\x23\xfb\xf8\xe9\xf6\x02\xfc\x2d\x09\x0b\x65\xf9\x9b\x33\x34\xed\x7d\x4f\xe7\x91\xc4\x28\xd2\xa3\x6d\xbc\x68\x69\x73\x1d\x20\xbc\x92\x12\x86\xac\xc1\x6e\xfa\xe1\x1c\xde\xff\x8c\x59\x38\x28\x19\xb5\xcb\x31\x42\x9b\xaf\xcf\x87\x43\x97\x4f\xf7\x31\xc2\xe8\x07\x51\x43\xd1\xaa\x15\x7d\x98\xa1\x69\xbf\x88\xba\x84\xa6\x59\x9c\x43\x59\x40\x72\x2a\xb3\xc0\xb3\x13\xb8\xaa\x35\x0f\xe5\x7d\xf5\xfa\x6d\x62\xd9\xc6\x24\xe7\x4a\x0e\x75\xdc\x1f\x9c\x0b\xc3\x47\x22\xc3\x93\xbb\xcb\xc1\xe0\x54\xf9\x59\xb5\xd0\x6c\xcf\xa7\xc1\x4a\x2f\xf3\x3c\xa5\x3e\x93\x5b\xbf\x15\xed\x38\x00\x97\xb9\x50\xa8\x64\xd8\x6d\x21\xbb\xfa\xdc\xb4\xd3\x52\xbf\x14\x49\x6c\x1f\x5d\x55\x94\xdd\x04\x1e\xc1\x10\xbb\xa3\xd8\x32\x3e\x89\xf7\x78\xfa\x41\x91\x62\x5b\x74\xf1\xf4\x47\x0f\xf9\x77\xc7\xa4\xb4\x39\xd2\xb2\x3a\xa3\xd9\xfb\x67\x19\xe1\x07\x53\x4a\x51\x83\xda\x21\xaf\x53\x41\xa9\x51\xed\x62\x9a\x2c\x48\xc5\x39\x96\x7a\x9a\x97\xea\x75\xd7\xad\x74\xfe\xef\x26\xc2\x26\xcd\xea\xfa\x8f\xe1\x32\x20\x21\x4a\x3c\x6b\xfc\xd1\xf6\xda\xa7\x49\x8c\x04\x0a\x26\x40\xe7\x4f\x2b\x0b\x5d\xda\x5a\xe0\x5f\x8f\xb0\xef\x96\x13\x6c\x84\xd8\x25\x1f\xe9\x0d\x9f\x17\xcb\x24\x28\x4a\x1d\x6b\x61\xaa\x63\xc7\x24\x40\x66\xa1\x08\x55\x2b\x0e\x77\x2e\x37\xb0\x90\xda\xc1\xf6\x26\x0d\xe1\x58\x00\x3d\x97\x8e\x79\x02\xfa\x5f\x67\xe8\xf6\xc0\x66\x7a\x46\x93\x5b\xe7\x20\xab\xb9\xb0\x5d\x2d\x6e\xd7\xe1\x2c\x42\x38\x27\x8c\x65\x9a\x5c\x72\x20\xfb\x8d\x5f\x1a\x05\xa9\xd5\x10\x0b\xb9\x95\x8a\x52\x86\x55\x99\xfb\xe2\x34\xbc\xb7\x2a\xc9\x22\x4e\x7b\x51\x2f\x3d\x12\xf0\x66\x2a\xc9\xad\x3a\x0a\xec\x3e\x5f\x5d\x54\x02\xb1\x87\xb6\xa1\x09\x40\x63\x25\x34\xfd\x79\xd2\xcc\xbb\x24\x60\xa1\x13\x4b\x99\x71\x38\xc8\x09\xa2\xc9\x9e\xee\x96\xa3\x6b\x4b\x75\x8e\x6d\x71\xe9\x3d\xb4\x10\x0d\x11\x36\xea\xbb\xe2\xe0\x77\x40\x95\xa5\x11\x32\x89\x9e\x2a\x59\x94\x23\x0c\xc7\x4c\x2c\xd9\x05\x76\x23\x99\xbb\xeb\xaa\xb6\x16\x2d\x9f\x6e\x07\x2a\x83\x1c\x1b\x97\xbb\xea\xf9\xf9\xe0\x5c\xc0\x2f\xdd\xca\x99\x22\x69\x2a\xba\x3d\xef\x6e\xb7\x1d\xc4\x8d\x8a\xe4\x39\xe2\xb8\x90\x94\x64\x44\xd3\xb6\xc3\x1f\x4b\x65\x82\x7d\xa9\xbd\xd0\x98\x81\x6e\xdb\x1a\xc4\x71\x9a\x83\x8d\x66\xbd\x62\xc2\x8a\xa3\x04\xe7\xaa\xf6\xfd\xd1\xd5\x27\xc7\x0b\x81\x62\x52\x20\xf2\xf7\xb6\x7a\x0e\x98\xaf\x0b\xbd\xf1\x71\x19\x5c\x71\x20\x38\xf5\xaf\x51\xe4\xe9\xe3\x48\x5b\x71\x23\x31\x03\xff\x02\x87\x13\xd4\x5b\x10\x75\x40\x72\xa8\x5c\x69\x64\x0f\xab\xde\x10\x72\x7c\xb3\x44\x9c\xa1\x56\x73\x89\x62\x18\x0f\xc6\xa7\x20\x3e\x82\x50\x22\x95\x28\x9e\x73\xc2\xc5\xb8\xbf\x3c\x41\x73\x5c\xfe\xb7\x6d\x2d\x5a\x78\x7e\x1f\xc7\x39\xaa\xcb\xed\x7b\x3f\xd7\x55\xfd\x7e\x6a\xab\xc5\x4f\xd1\x8a\x0b\x39\xfb\x8f\x92\x74\x7f\x22\x93\x63\xff\x5b\xd8\xec\x0d\xd5\x35\x6e\x2b\xf5\xa3\x97\xbe\x63\x4a\xa6\x29\xe6\x0a\x4f\x38\xbd\x03\x63\x2d\x1c\xce\xb2\xd8\xb3\x5f\x7c\x77\xc4\x19\x76\x0e\x7e\x90\x04\x8e\xf8\xa5\x1a\x5d\x57\xba\x9c\x6d\xa6\x6d\xa6\x94\x73\x8d\x5d\xde\x2f\xef\xb7\xce\x50\xcf\x37\x3d\x95\xa2\x11\x42\x27\x44\x51\x8f\x8a\xf9\x4a\x09\x6d\xfb\x82\xeb\xc5\xdd\x1e\xe9\xad\x16\x65\xe5\x8f\xeb\xcc\x16\xfb\x3d\x76\xea\x6a\x60\x59\x3c\xe0\xdd\x29\x4d\xac\x9c\x03\xa6\x79\x16\xb7\xf8\xc9\xc4\xd0\x00\x96\x97\x53\xf9\x42\x9e\x02\x42\x30\x7a\x40\x59\x4b\x04\x2a\x17\x7f\x01\x1a\xd8\x7f\x04\x7e\x76\x1f\x34\x22\x8e\xbb\xe7\xf9\x7d\x7d\x7b\xbd\x78\x5a\xef\xbf\x2c\xee\xaf\x1e\xbe\xee\xfc\x79\x8d\xa1\x26\x19\x28\x8b\x7c\xa4\x41\x30\x3e\xab\x8e\x5c\x4f\x6e\x88\xf7\x19\x40\x55\x74\xa4\x05\x96\xa7\xef\xab\xfa\xe8\xfa\x93\x9f\x88\xaa\xba\xc2\x92\x8e\x89\xc1\x84\x6f\xdb\x42\x5d\x1c\x8a\xf3\x71\x38\x1b\x74\xac\x32\x5c\x8a\x37\xab\x07\xb7\x43\x55\xc7\xaa\x3f\x68\x65\x42\x4b\xc4\x6f\xfb\xd9\xac\x93\x08\x1c\x75\x11\xb6\x01\xbe\xed\x0f\xa6\x31\x45\x6d\x80\xb6\x0b\x1e\xae\x40\x5c\xf4\x74\x75\x2a\xad\x54\x48\x33\xf1\xe7\xff\xb0\x2e\xaf\x53\x9d\x63\xe4\xb4\xda\x3c\xad\xbe\xde\x2e\x76\x9b\xfb\x9b\xfd\x72\x11\x78\xef\x3a\xd3\x32\x1d\x76\xad\x9f\xa0\x29\xf4\x59\x1c\xb6\x0a\x91\x4d\x1f\xf4\xf8\x34\x49\x08\x52\xdc\x4e\x43\x39\xb4\x21\x00\xfb\x82\xca\xaf\x49\x66\x1b\xf6\x0f\xf5\xe9\x05\xce\xcd\x43\xfd\x2c\xca\x42\x35\xbb\x97\x2e\x50\xf6\xda\x67\x4c\x13\xc9\x13\x67\x91\xbf\x38\x1c\x9c\xcc\x7b\x33\x5f\xae\xd4\x04\xa4\x71\x2c\xa5\xab\xba\x2a\xfb\xfb\x4c\x05\x41\xcc\x86\xae\x8b\xd3\xc7\x9e\x08\x4c\xb3\xd8\xee\x67\x8e\xb0\xd9\xbd\x0d\xc8\x0e\x40\x60\xf0\x14\x23\xaa\x19\x15\x90\x0f\x36\xc7\xee\x19\x6d\x4f\x10\x52\x5c\xcd\x38\x24\xd8\x54\xa9\xca\x33\xda\x5e\x6e\x4a\xd7\x58\x89\xc3\x10\xc3\x91\xdb\xb3\xb8\xff\xf2\x75\xb3\x5f\xdc\xdf\x7f\xdd\xec\xfe\xdc\x5f\x2d\x1e\xf6\xa9\x4f\x75\x34\xa7\x0c\x8b\x65\xc6\xbd\x57\x4f\x80\x5b\xe5\xe4\x6a\xf2\xcc\xfa\x3e\x2b\x51\x76\x29\xdd\x77\x90\x37\x85\xf1\x2b\x85\x16\xb1\x95\xf5\x58\x68\xe4\xf5\x7d\xda\x31\xd6\x82\x72\xbc\x8f\x4d\xeb\x0d\x91\x98\x96\x29\x83\x31\xb0\x72\x3e\xdf\xd5\x32\x4b\x10\x27\x21\x7b\xd5\xd7\xc0\xa6\xf2\x01\xa5\x1f\xca\x0c\x78\x0b\x8a\x87\x72\x4e\xd7\x98\xff\xaa\xd4\x3a\xde\x3a\xb5\xd4\x24\x71\x8f\xe4\x16\x44\xd3\xae\xdf\x4e\x50\x36\xc5\x4f\xb7\x53\xdc\x88\x63\x00\xd0\x69\x45\xa5\xb7\x0c\xc4\xe7\x8b\xfd\x04\xd7\x94\xfe\xbb\x95\xdf\x70\x2a\xab\xd4\xf4\xff\x69\xfb\x93\xe6\xc6\x71\x6c\x7f\x18\xfe\x3a\xb5\xe8\x05\x67\x00\x4b\x59\x96\x33\x5d\x65\x5b\x6e\x4b\x99\x59\xdd\xff\xb8\xa1\x38\x00\x0e\x6c\x5e\x4b\xa4\x9a\xa4\xec\x74\x7f\xfa\x37\x78\x30\x70\x90\x9c\x55\x37\xe2\x7d\x36\x95\xdd\x26\x44\x89\x24\x08\x9c\xe1\x37\xd8\x00\x34\x28\x27\xfd\x32\xb7\xd0\xca\x20\xe1\x06\xaf\xbf\x3d\xdd\x2e\x1e\x6e\xfe\xf4\xbf\x4b\xf3\x84\xc5\x83\x7b\x26\xc9\xdd\x9d\xbd\xfa\x9a\x23\x95\x5b\x0f\xd8\x8c\x48\xc8\xb3\x2f\x0c\xaf\xbd\x86\x82\xe8\xab\x6f\x25\xbe\xb3\x28\x7c\x91\x2e\xac\x25\xd7\x6b\x59\x5d\x05\x21\x33\xa6\xb1\x60\xda\xfa\x3f\xbe\xe2\xf7\xb2\x2d\x7d\xc1\xd0\x3b\x77\x33\x8d\x1c\x69\x7d\xf5\x0f\xd6\x01\xe8\xf6\xe7\x80\xb1\x79\x92\xab\xd1\x70\x0a\x0c\x3a\x84\x43\xeb\x54\xde\xc7\x85\x7f\x8d\x46\x11\x56\xf3\x58\xfe\xf7\xbf\x30\x96\x66\x64\xda\xc4\x5c\xa7\x2e\x35\x8c\xbe\xd7\x01\x93\xad\x8d\x6b\xf0\x59\x56\x20\xa9\xfd\xe8\x9b\xba\xb9\xb2\xef\x9d\x45\x2e\x0d\x67\x71\x9a\x7b\x8b\xbb\xbb\xf5\x72\xb7\xb8\xfe\x7e\xbb\x59\x3f\x6d\x76\x57\xeb\x6f\x0f\xdb\x5b\x6f\x6e\xc7\x30\x8a\x24\x45\x61\xaf\x65\xdb\x5e\x6d\x97\x4b\xd8\xef\x25\x0c\xcd\xeb\xe9\x65\x61\x94\x25\xb1\x71\x35\xeb\xb6\x45\x2b\x2b\x4d\x80\xd8\x70\x3e\xb4\xe2\x30\xe3\x56\xcf\x27\x4d\xe2\xf9\x4d\xc3\x38\xc9\xc0\xb5\x8f\xfa\xe8\xdf\xb6\x12\x7e\x9b\x8d\x11\x05\x73\xc0\x04\xef\xc4\xf6\x02\x0d\x3e\x9d\xf6\xf8\xa5\xa9\x4f\xc7\xdb\x4f\xaa\x3c\x98\x30\x91\xdb\xec\x49\x9f\x14\x3a\xdf\x9b\x59\xa5\x0c\xd3\x34\x8e\x5c\xb9\xe5\x1e\x3b\x78\x6c\xea\xff\x9d\x0b\x10\x32\x4c\xf3\x24\x2b\x06\xf8\xfb\xe1\x74\xf8\x51\xb6\x2f\x5b\xb7\x5c\xf8\x41\xa0\xa9\xce\x1a\x04\x7b\x46\x52\x62\x0c\x8b\x34\x8b\x13\x6f\x12\x49\xb4\xaf\xe9\xef\x28\xf2\x9c\xf8\x40\x0d\xb6\xd8\xf9\x40\x23\x7c\xb8\x10\x8a\xca\x9d\x36\x2c\x9d\x6b\x78\x4c\x7f\x6c\xbf\xb7\xf4\x97\xfd\xef\x6f\x7f\x8c\xf7\x71\x64\x46\x64\xde\x49\xb4\xff\x65\xd8\x7e\xbe\x9f\x22\x4f\xc0\x75\xd4\x35\xfe\x74\x78\xd5\xd8\x0f\x8c\xc7\x71\x37\x72\x81\x64\x39\xf1\xf8\xed\xea\xee\x76\x69\xf5\x36\x48\x30\xd1\x7f\x31\xd7\x09\xcf\xc6\xcc\xcb\xc7\xfa\x1d\x9b\x3d\xbe\xe1\xac\xa8\x81\xc2\xd8\xda\x52\x8b\xdd\x35\x1a\x55\x57\x44\x48\x1f\xcb\x05\x33\x84\x22\x57\x7c\x40\x15\x2d\xf6\x23\xc1\xd1\xc9\x1d\x05\x48\xf9\xd0\xb8\xd9\x20\x61\x63\xda\x5d\x5d\xed\x3f\x76\xd7\xf8\xf6\xcb\xb0\x7a\x2c\xe6\xcf\x50\x16\x31\x49\xe1\xdc\xd5\xcf\x56\x60\xe2\x91\xa4\xe2\xfc\xf5\x49\x96\x27\xe8\x75\xaa\x5a\xcf\x3d\x9a\xea\xd1\xa0\x8a\x90\x6a\x0f\x9e\xad\xaf\x5e\xdc\x64\xbe\xd8\x4d\x47\x95\x49\x8a\x91\x4e\x55\xa9\xea\xa6\xba\x6a\x10\x75\x59\x3d\x4f\x93\x06\x54\xda\xd0\x46\xfd\xe7\xe2\x5b\x3b\x79\xd6\x5a\x46\xb4\x5d\xf4\x49\x7e\xdb\x35\xe8\x66\xe4\xa7\x25\xc0\xd1\xe3\x44\xa1\x29\x32\x7d\xb8\xde\x26\x93\x73\x9a\x14\x21\xb6\xa2\x29\x0a\x1f\xf0\x67\x37\xa6\xec\xa1\xe1\x32\x25\xff\xa9\xed\x97\xf0\x27\x61\x91\xbf\x1a\x89\x48\x6b\x63\xc0\x0b\xe1\xad\xbf\xcd\x46\x1a\xeb\xd3\xba\xfa\xbe\xba\x5b\x3f\xae\x9e\x36\x37\xdf\x42\x43\xd5\x44\xac\x70\xce\xfe\x44\x98\xb3\x9c\x91\x76\x7a\x43\x4c\x24\x18\x79\x92\x52\x39\xf9\xae\xee\x3a\x1f\xa8\x9a\x38\xc9\x91\x05\x0a\x65\x37\xa1\x9a\xcd\x1a\x7f\x97\xff\xaf\x3f\x0f\x8b\x25\xf3\x50\xed\x2f\x75\x9f\xea\xeb\x71\xcd\xc6\xc4\x28\x23\x1d\xbe\xa8\x5f\x2b\xa6\xea\x5d\x96\x92\x30\x7d\xfb\x4d\x1a\x19\xc2\xe5\x11\x36\x39\x59\xff\xe1\x4f\x96\x1a\x56\x50\x57\xa5\xd6\xf7\xb5\xfe\x54\xd8\xde\x8d\xce\x32\x4b\x1e\x34\x24\xf4\xb3\x3f\xbe\x80\x53\xd8\xf0\xa7\xcb\x72\x9b\x22\xff\x71\xbb\x08\x7f\x42\x50\x38\x14\x54\x26\x69\x98\xc9\x4c\x4a\x12\x13\xd6\xfd\xff\x42\x7a\x67\x72\xce\xe9\x25\x7b\xab\x3b\x8c\x92\x7f\xe1\xd8\x61\x89\x99\x5c\x32\x42\xce\x5b\x40\xdb\x25\x6f\xcf\xe9\xd9\x8a\x8c\x51\xa3\xfd\xb9\xee\x46\x4d\xb3\xf0\x74\x99\xd0\x44\xb3\x70\x16\x33\xeb\x23\x56\x0e\x3e\x1d\x46\x00\x90\x51\x18\x58\x5e\xf1\xbc\xad\xee\x46\x71\x13\x47\x81\x69\x4b\x39\xbe\x3b\x20\x22\xa4\x9e\xd1\x9e\xec\x8d\x82\x6b\x24\x33\x22\x37\xca\x33\xc8\xec\x2f\x3b\xed\xa1\xa1\xaa\xfa\x78\xd5\xf8\x7f\xd9\xff\xcc\xae\x48\x18\xe6\xcd\x21\x08\xfd\x44\x88\xf5\x72\xce\x38\x37\x90\x45\x54\xaa\xf1\x95\x49\xd7\x0e\x99\x8d\x92\x69\x41\x05\x47\x05\x47\xcf\x48\x35\x32\x65\x94\x01\x58\x98\xef\x64\x26\xca\xac\xa0\x42\xed\x66\x39\x41\xc8\x1b\xc9\x94\x57\x60\xf9\xe3\xa4\xeb\x76\x83\x55\x67\xd3\xf7\xcb\x91\xaf\xd1\x69\x41\xfd\x1a\x07\x49\x74\x7f\xc5\xd8\xb2\x40\xbe\xde\x8d\xaa\x46\x06\x31\x81\x62\x78\x46\xae\x51\xb3\xe8\x86\xe3\x79\xe4\x38\x5b\x0f\xae\x84\xe2\x05\x40\x87\x53\x9b\x38\xb3\x0e\xf2\x7d\x18\x46\x7c\x96\x0d\x18\x9c\xc8\x39\x0c\x5b\xd7\x10\x5b\xcc\xa2\x43\x63\x0c\x90\x5a\xc7\xd1\x02\x91\xbc\x02\xc8\xe8\x26\xf1\x28\x4a\x0d\xe3\x0e\x1f\x36\x4e\x53\x79\x14\x41\x94\xdb\x8a\x4c\x1f\x61\x7b\x68\x98\x3f\x28\xb9\xf0\x00\x3e\xab\xc4\x5b\x62\xeb\x9c\xee\x27\x4f\x8d\x47\x11\x5a\x2b\x4c\xa2\xd1\x1c\x0e\x38\x03\xdc\x71\x52\x64\xd4\xde\x0c\xd8\x16\x29\x82\x06\xfa\x03\xc9\x75\x04\x4d\x11\x1e\xc5\x12\x14\x39\xf2\xc2\xfe\x75\x5b\xff\xa8\x9b\xfd\x84\x3c\xc4\xa3\x24\x4a\x8b\x78\x2a\x00\x54\xfe\x3c\x37\x36\x98\x85\x62\x3c\x4a\xd2\xdc\xc5\xaf\x6d\x47\x4e\x42\xab\x9f\xa8\x4e\xd6\x0e\x82\xb2\x40\xea\x1c\x4e\x40\x97\x3c\x4a\x44\x4c\x72\x8e\x16\x4c\x7c\x73\xf2\xf9\x2d\x8f\x52\x6e\xf1\x91\xae\x9e\x05\xcd\xb8\x18\xe1\xc6\x64\x3a\xa2\xc7\xfc\xe8\xcb\xcc\x23\xf9\xd3\x5f\x95\x6f\x79\x94\xc7\x96\xc1\xb5\xd0\xfa\x01\xdf\x27\x60\xce\xff\x53\x86\xc3\xa3\x3c\x33\xae\x14\xf6\x56\xbf\x62\x20\x74\xf3\x28\x67\x31\x3a\x87\xe7\x6e\x51\xe9\xcf\x74\x20\xdc\xe8\x22\x8f\x08\xdc\x20\xcb\xe7\xdb\x70\x8a\x42\x24\xd2\x6d\x05\xf4\x42\xd3\xc4\xbb\xad\xbe\x6d\xae\xa7\xf7\x81\xc5\x8a\xee\x22\x68\x5d\x5e\x86\xe7\xf2\x88\xc7\xa9\x15\xfd\xdc\x23\x34\x44\x60\x1a\x8b\xbd\x8e\xc6\xa5\x11\x15\x3a\xca\xd6\x31\xd1\xc6\x0a\xee\x2e\x9d\xe4\x11\x37\xa9\x63\x9f\x57\x57\xa7\x8f\xd9\x84\x15\xa9\xa1\x8e\xf8\xb1\x6e\xbb\x99\xb7\xdc\x59\xa4\xc8\x23\xc1\xd3\xb4\x18\xaa\xde\xe4\x20\x5a\xef\xb7\xf5\x16\xe1\xe0\x6f\x84\x10\xb1\xad\x44\x37\xa7\xb6\xdb\x63\xdb\xee\xe6\xce\xbe\xbf\x54\x60\xe7\x91\x30\x82\x16\x66\x6a\xa5\x4e\x6f\x1e\xe4\x56\x84\xf0\xdd\x8b\x3f\x9d\x01\xd8\x78\x24\x93\x34\x77\x28\xc7\xd5\x9f\xb3\xb7\x4f\x26\xc0\xbd\x02\x9f\x55\x8a\x5f\x8e\x67\xb8\x4c\x59\x3c\x18\xfc\x8e\x15\xac\x79\x24\xb5\xa1\xae\xb9\x24\x47\x50\x47\xd8\x6a\xa6\xda\xdd\x3c\x92\x46\xa3\xcd\xb7\x2a\x3d\x39\xb5\xe2\xc0\x6d\x9f\x85\x9a\xe3\x23\x71\xc0\x49\xf2\xcf\x23\x05\x29\xe9\x1f\x53\xdf\xc6\x76\x29\xc3\x1c\xd3\x3c\x8b\x5c\x23\xe3\x09\x2a\x5d\x3b\x75\xdb\xe9\x09\x90\x65\xc6\x76\x58\xba\xab\x8f\x5b\x3d\x3b\x6a\x12\x2b\xde\xd3\x27\xd1\xbb\x06\x41\x7f\x0c\x5b\x2a\x8f\x8c\x44\x69\x75\xeb\xbb\xd3\x99\x81\xd8\x3f\xa6\xf7\xd9\xe8\x84\x5b\x43\x3d\xd7\xe3\x75\xfa\x1e\xfa\x8f\x0f\x15\x2a\xfd\x76\x6c\x1c\x6b\x4d\xd1\xe1\xa6\xde\x43\xb3\x52\xfb\xf2\xd8\x8e\xab\xd0\x3c\x4e\x92\x84\x5e\x29\xb7\x97\xd3\x1a\xf4\x15\xda\x97\xdd\xf4\xe7\xc7\x89\x32\xd2\x8c\x3a\xa1\x9e\xd8\x30\x13\xaf\x75\xa3\x33\x6e\xac\xa3\x79\x79\xc0\x79\x87\x8c\xc7\x99\x48\x63\x70\xe2\x41\xf0\x8a\xb3\xcf\xe6\xb1\xb6\xa5\xf5\xae\xbb\x90\x30\x8f\x7a\x5a\x3c\xce\x59\x4c\x27\x7a\x39\x58\x6f\xaa\x33\x8a\x96\x1b\x57\xe4\xd6\x0d\x69\x0b\xcd\x47\x35\xb9\xfc\x82\x81\x27\x6a\xff\xde\xd6\xd5\xb6\xb6\x0f\xf6\x17\xf5\x2d\x1e\xb3\x58\xd3\xd9\xaa\xd3\xa1\xdf\x56\xfb\x54\x05\x35\xd5\x6b\x47\xfc\x2a\x1e\x33\x1e\x59\xe5\xb0\x7e\x2d\x71\x8d\xf5\xe9\x3d\x65\x68\xed\x38\x4e\x96\xd3\x78\x9f\x5f\x8c\x0c\x78\xcc\xe3\xc4\x28\xcf\x63\xb5\x8f\x7a\x76\x47\xb9\x8e\xa9\xfe\xef\x64\x53\x3e\xb3\xbf\xfb\x3b\x00\x57\x1e\x8b\x48\xd1\xc9\xbe\x6e\xfd\xa5\x88\x1c\xc9\xb3\xe9\x00\xaf\x04\xb5\x23\x39\xdb\x2c\x1c\xe5\x31\x01\xee\xdc\xd9\x07\x99\xec\x5f\xae\x36\xb1\xd4\xe8\x29\xcf\xdb\x66\xcc\x8e\x9d\xde\x24\x69\x12\xea\x93\x96\xed\x7a\x7d\xf5\xdb\x3c\x6d\xe4\xb1\x42\x8b\x81\xd5\x65\x0b\xfb\x7d\xfd\xbe\xf0\xf9\xef\x06\x9d\x29\xd4\x27\x77\x55\x27\x11\x65\x31\xc7\x3d\xa9\x39\x0e\xf6\x30\x3c\xc6\x58\xda\x32\x42\xf9\x66\x85\x3b\xc2\x81\x24\x26\xb2\x0d\x78\xf0\xc1\x23\x94\xfb\x7d\xf9\x09\xd3\x91\xc7\xc8\x2d\x85\xe0\x11\x3e\xd6\x67\xaf\x81\x61\x19\xd9\xfb\x2c\x1a\xf5\x42\x35\x46\x84\x41\xda\x92\xc7\x46\xc4\xa2\xbf\xe9\x7d\x40\x35\x9e\xb3\x49\x24\x19\x15\xde\x6c\xc3\xdf\x4b\xab\x4e\xce\x9d\xc4\x51\x46\x92\x6c\xb2\xfe\xb9\x7c\xa9\xe7\x82\x1f\x3c\x89\xf3\x44\x66\x67\x7d\xe3\xb9\x72\x2a\x4f\xe2\x42\x8d\x1a\x66\x5f\x4f\x07\xf8\x3f\x3a\xd6\xf1\x24\xe6\x4a\x38\xb9\xa4\x21\xb7\xfa\x7f\xe9\xb0\xc7\x65\xff\x33\x25\x11\xfa\xcf\x29\x6e\x49\x00\x50\xdd\xc3\xcf\x9b\xc6\x23\x3c\x79\x92\x66\x85\x16\x83\x35\xeb\x62\xbf\xb7\xea\x8b\xe3\xb2\x7e\x91\xfd\x23\x28\x81\xfe\xe3\xbc\x02\x93\xfc\x8f\x3f\x97\x4c\xb9\x1e\x6b\xaa\x2d\xde\xb0\x0f\x41\x1f\xcb\x9f\xe8\xf4\xf4\xfd\x4f\x8e\x8b\xff\xb9\xfc\xc6\x24\xa9\x4e\x49\xdb\xe0\x7b\x3d\x51\x9a\xae\xeb\xfd\xf4\x56\x64\x59\x42\x95\x71\x83\xf8\x08\x1f\xc3\x05\x65\xb9\xa1\x47\x4d\xae\xc6\xb2\xbd\x2f\xc3\xb3\xce\x13\x43\x3d\x9a\x65\xad\x49\x62\x72\x32\x11\x98\xc8\xe8\xe1\xfc\xe7\x54\x06\x5b\x93\x10\xc3\x26\x0c\x64\x96\xfa\xaa\x66\x3f\xbb\xe3\xc8\x1f\xe2\x4c\x08\xc7\x39\xd8\x96\xd8\xb4\x24\x5e\x3d\xa9\x5c\xff\xc2\x3b\xb1\xcf\xbf\xdc\x79\x44\xa4\x55\x1e\x54\x66\x36\xe7\xd3\x10\x32\xeb\xe1\xe5\xdd\x0a\xf7\xfb\x75\xa5\x70\xa0\xa2\xf1\x04\x18\x52\x9a\xb4\xf6\xda\x04\x3c\x01\xae\x68\x4d\x86\x06\x2b\x98\xed\xf3\x89\xcc\x19\x15\x63\xb6\xb7\xab\xa7\x6c\x5c\x01\xe3\x89\x64\x8a\xa4\x28\x6e\x10\xdb\x0b\x0e\x83\x3c\x91\x3a\x23\x3a\xea\xd5\xdd\xe2\xf6\xc1\xea\x1d\x4e\xee\xa7\x4a\x72\xda\xe5\xef\x87\xdf\xa2\x1d\xc2\xbe\x8f\x4f\x6f\xca\xf6\x65\xd6\xd7\x0c\xb3\x8b\x5f\xf8\xd7\xd9\x02\xf8\x18\x2e\xd1\xdc\x0a\x12\xee\xd1\x74\x59\x3c\xfb\x6d\x18\x59\x20\x64\xbf\xc4\x9e\x8e\x77\xf8\x8c\xfd\x4b\xf6\x31\x1f\x95\xf0\x38\xf3\x39\x75\x40\x52\x3d\x62\x53\xd6\x3e\x56\x49\xb0\xd0\xdc\x8a\x2b\x29\xa4\xf5\xa1\x54\x84\xf5\x75\x6a\xaf\xd3\x13\x9a\x42\x50\x86\x65\x27\x89\x7b\x4a\x16\xf8\xe7\xcf\x67\x80\x39\xb2\x60\x9f\xb7\x3d\x62\xb3\x6d\x4e\x95\x7a\xf1\x93\x37\x8d\x0a\xab\xba\xea\x23\x03\x82\x7e\x8d\xa7\x7d\x4a\xbe\xdf\xfd\x2a\xb8\xf8\xd7\xfa\xdb\x76\x77\xf3\xb4\x58\xee\xae\xd6\x7e\x77\x49\xe3\x8c\x09\xee\x66\xa3\xe5\xe4\x5d\x66\x70\xf0\x34\x36\xd2\xe3\x49\x6c\x8c\x78\x57\xb6\xdd\x18\x53\xc2\xd3\x44\x0a\x2a\x6e\xc0\x19\x84\x7c\xde\x4e\x99\xac\xd4\x69\xa2\x0c\xb9\xf7\xdd\x6c\x1f\xb6\x43\xa6\xcd\xd3\xc4\x98\xdc\x12\x59\xaa\xae\x6e\xd5\xe8\x48\x06\xd2\xe1\x53\x2b\x85\xfb\x1f\xf0\x6c\x81\x0a\xcd\x54\x95\x80\xa7\x99\x8e\x91\x05\x29\xd2\x76\x73\x3a\x5c\x7d\x50\x6f\x7b\xd6\x11\xe4\x69\x66\x90\x10\x28\x77\x65\x87\xfd\x37\xad\xab\x70\x93\x73\xe9\xbc\xe5\xfa\x27\x93\x50\x65\xd9\x3e\xf5\x24\x8c\x40\x46\x28\x3b\xdb\xb4\x7e\xda\x6c\x67\x3f\xa3\x28\x94\x18\xcc\x3c\x97\xff\x7e\x9a\x08\xfc\x4d\x7f\x48\xa1\xad\x48\x5a\xe0\x8e\xfb\x99\xf6\xc9\x78\xc6\x23\xd2\x13\xd0\xf0\x31\x33\x00\xe4\xa9\x88\x52\x8d\xde\x8b\x60\xd0\x29\xb4\xdd\xfd\xe9\x4f\x14\x18\x19\x39\x56\x79\x7a\xb2\x53\xb8\xd9\xd9\xb0\xd8\x0f\x33\x09\x49\x60\xfd\x28\x2b\x59\x5e\x96\xc4\x9b\xcc\x1a\x88\xb2\xd4\xe5\x1e\x1b\x74\x5a\x83\x16\xf6\x47\xa4\x8e\xe9\xa5\x40\x0a\x84\x2e\x6d\xb0\x0b\xb5\x8a\x6d\x3d\x15\x37\xe7\x29\xc8\x54\xa4\xbe\x35\xbb\xf5\x0b\x2c\xd5\xd1\xb7\x2f\xc3\x4e\x95\x02\x46\x04\x80\xef\x93\xbc\x1f\xa5\x37\x8c\x1f\xef\xb0\x29\x60\x6c\xbc\x5d\x88\xb5\xb9\x98\xbe\x3c\x32\xb1\x86\x68\xca\x77\x90\xfc\xdf\xc1\xc4\xde\x49\xff\x38\x94\xf1\x9c\x23\xf4\xec\xce\xaa\x22\xa5\xda\x3a\x56\x7a\x84\x11\xe6\xa9\x02\x4d\x5e\x79\x2e\xfa\x0f\xad\xc7\xcb\x8f\x59\x29\xeb\x9f\xb3\x73\x8a\xde\x17\x35\x8f\x2f\x6f\x91\xa9\x8e\x53\x35\xbb\xaf\xce\x5b\xc6\x32\x58\xfd\xba\x9a\x0c\xdb\x0d\x77\x4b\x69\xd8\xc8\xfd\xa6\x9d\xea\x0c\x08\x4b\xf5\xcf\x7a\xbc\x7e\xa7\x5a\x20\x45\x5b\x47\x7a\x33\xb2\xe0\x81\xc6\x53\x94\xd6\x47\xa5\x54\x04\xe4\xf8\x0a\x8d\x0e\xd4\x2d\x9e\xa2\xb6\xf6\x9a\xcf\xd8\xb9\xde\x5a\xf3\x7b\x2d\xdb\x9b\xba\xe9\xa3\x0e\x4a\xb8\x1b\x8b\x6e\xbf\x1c\xe6\xa5\x88\x40\xf1\xe2\xb7\xca\x58\x91\x84\xc9\xb5\x67\x51\x06\xd4\x4c\x21\x0c\x8a\x46\xa7\x4c\xcd\xb3\x48\x58\xf2\x69\x8b\xdd\x72\xc8\x3a\xdc\xc1\x18\x24\x61\x3e\x2c\x79\xea\x01\x7f\x76\xdb\x53\x73\xa6\x42\x34\x8e\xa3\x52\xbf\xf5\xc4\xac\x70\x77\x2a\x4b\xe2\x22\x1b\x14\x18\x5c\xac\xd8\xbf\x9e\xd4\xd7\xbc\x9c\x2e\x65\x49\x8c\xcc\x1a\xf9\x10\x37\xb5\xbd\xba\x48\x46\xe4\x59\x9a\x21\x85\x33\xde\xe6\xc1\x0a\x3e\xe3\x60\x23\x30\x0d\xe5\xb3\xb4\xc8\xbd\x88\xea\xb7\x16\x9b\x76\xf1\x0e\x65\x9f\xae\xdc\xd4\x8d\x7f\xd1\x8e\x71\xee\xa3\x94\x2c\x63\x40\x04\x28\x2a\x9f\x06\x4d\xd2\xd3\x65\xfe\x58\x3f\x5c\x51\x63\x76\x53\xee\xdf\xb0\x39\x53\xa9\x1e\xba\x2f\x3c\xcb\xb9\x05\xc7\x52\x1b\x70\x30\xf2\xf5\x5f\x9c\x8b\x84\x7a\xb7\xfd\x4c\x1d\xfd\x15\x13\x52\x09\xdd\x94\x55\x9f\x77\x37\x65\xf7\xb1\xc5\xd6\x8b\x1a\xf2\xac\xc8\x64\xc1\x07\x0a\xd3\xd3\xea\xe6\x82\xd0\x05\xcf\x0a\x15\xa1\xed\xf9\xbd\x39\x0a\xe5\xf4\xb9\x17\x0a\x52\x15\xcc\xd3\x5c\x7a\x3d\x67\x7c\xf1\x8c\x65\x9a\x34\x22\x89\xa0\xe7\x36\x6e\x9b\x64\xae\x7e\xce\x11\xa4\x3c\x63\x22\xa3\xf9\xbf\xd3\xf8\xd6\x87\x47\x54\xbd\xf1\xc7\x50\x10\x94\xa6\x3a\x1d\xae\xa1\x79\xad\x6a\x8d\x6d\x3f\xdd\x56\xc7\xda\x23\xf6\x78\x26\x84\x2d\x38\x5b\xf9\xba\x19\x59\x79\x94\x8e\x65\x02\x62\xf2\x79\x5a\xbd\x61\xd5\x39\xb1\x9e\x25\x4c\x0b\x7a\x53\xa7\x43\xff\x41\xa5\x84\xc3\x5e\x2c\x9a\x06\x3e\x26\xdb\x7a\x06\x59\x44\xa4\xfd\x50\x7f\xa2\x2d\x70\x13\x4c\x0b\x78\x06\xb2\x70\xea\x12\x34\x0d\xef\x6a\xf8\xbc\x11\x77\x56\x53\x98\x47\xea\x99\xcc\xe2\xc8\xd3\x2e\x08\xe5\x75\xbe\xb1\x67\x92\x87\x7e\xb5\x65\x20\xf4\x1b\x6f\xe7\x05\x2b\x2e\x1a\x1b\xf7\x1f\x32\x5c\x5f\x36\xf1\x6f\xeb\xfd\x2c\x22\xc8\xa4\xb4\x9d\x16\xfb\x86\xed\x2c\x9a\x73\x06\xff\xf4\x43\x35\x10\x1e\xe4\x8d\xec\x6e\xae\x3c\x3a\xf6\xf2\x52\x9e\x29\x65\x31\xf0\xea\x6a\x71\x16\x43\x65\x0a\x6d\xc4\x77\x84\x8f\x4f\x71\x7c\x3c\xd3\x71\x9c\x4a\xdf\xd3\x6f\x5e\xf7\xb8\x6d\x10\x89\x73\x36\x5a\xb5\xc7\x5b\x5d\xa6\x99\x75\x0b\x71\xe1\x5b\x59\x3d\x3b\x44\xd6\xec\xaa\x11\x0b\x9b\x74\x12\xaf\xb7\xfb\x81\xa5\x33\xce\x69\x67\x03\x0d\x58\x6d\xf4\x27\x30\xc6\x85\xb6\x4e\x3e\x77\x06\xee\xe2\x79\xc4\x25\xb7\x56\x8a\xed\x15\xd2\xde\xd3\xaf\xf3\xb3\x47\x9a\x47\x1a\x29\x03\xe8\x03\x8e\x7e\x89\x1a\xbb\xfa\xfc\x15\x96\xc8\x9f\x02\x33\x42\x11\x6c\x4e\x55\xf5\xe1\x17\x87\x3c\x66\x05\xbd\xae\x5d\x50\x70\x52\xaf\xa8\x2f\x82\xc9\x66\x3f\x3c\xd6\x11\xf7\x0c\xfd\x17\x28\xab\xed\xc7\x71\xba\x62\xe4\x09\xb7\x85\x02\x17\x5c\xcd\x99\x1f\x7e\x14\x80\x13\x55\x07\x03\xaf\x30\xde\x38\xf3\x34\xb3\xea\xd6\xc7\x81\x4b\xee\x96\x94\xf9\x0d\x4a\x65\x44\x51\x07\x31\x35\xec\x3d\x0a\x27\x41\xce\xf2\x20\x99\x44\x6e\xfc\xbf\xd8\x64\xf2\x14\x81\x76\xa6\xdd\x9c\xad\x76\x21\x84\xcb\x53\xc3\xa8\xba\x6b\x9a\xba\xea\x9e\x4e\x7d\xe8\x3f\x49\x7a\xf2\x2c\xe2\x0e\x42\x75\x18\x75\x24\x03\x5c\xf6\xc6\x05\x4f\xb4\x2b\x8c\xe9\x2b\xb3\x87\x97\xa5\xb1\x9f\xa1\x5f\xe0\x40\x8e\x6c\x4d\x89\x1d\x34\x1f\xe7\xa1\x62\x9e\x19\x9e\x17\x1e\x6c\x52\xef\xfb\xb9\xe2\xad\xd4\xa6\x67\xcd\x63\xc8\x53\x27\x6a\x33\xdc\xaf\x3c\xd6\xa9\x35\x8f\xdc\x77\x5e\xf1\xac\x0d\x07\xf3\x8c\x20\x49\xd7\x5f\xbf\x5d\x0d\x7f\x83\xc8\x42\x74\x54\x5d\x69\xc2\x05\x3c\x11\x2a\xf8\xb6\x0a\xca\x57\x3c\x2f\xd2\x0c\x07\x49\xf0\x3e\xb8\x3a\x85\xb3\xb2\x14\x22\x39\x50\x69\x1e\x4f\xd5\xeb\x60\x27\x30\xbd\x38\xce\xac\xc3\xc5\x6e\xa2\x10\xe8\x0e\x8a\x1c\xa9\xe2\x77\x3c\x1d\x8f\x1f\x9b\x63\xdd\x74\xe1\x2b\x04\xf2\xc0\x30\xef\x5e\xce\xd4\x4d\x78\x0e\xb1\x26\x30\x92\xb5\xc2\xb4\x4e\xa4\xc3\xde\x9b\x43\x6a\x25\x83\x77\xde\xd3\xe8\x1e\xba\xa6\xae\x36\x65\x33\x52\xd9\x9c\x4d\x25\xc8\x18\x75\x76\xca\xb6\x3d\xa1\x6d\x5e\x5c\x96\x63\x98\x56\xa9\x86\x80\x20\x97\x90\xe7\x72\x24\xef\x4e\x37\x77\x55\xe9\x50\x18\x19\xbe\x4c\x2a\xe9\x29\x98\x1b\x38\x1c\xf7\x84\xf0\xfc\xbd\xac\x9e\xe7\xb9\x75\xae\x62\x45\x3b\x7d\xe7\x25\xd5\x47\x50\x25\x9e\x2b\xb0\x15\xba\x23\xa1\xb1\x56\xd3\xc0\x3c\x57\x50\x30\x67\xb6\xb6\x70\x8c\xe2\x17\xd0\xf5\xfb\x16\x2c\xdc\x7d\x76\x07\x14\x08\x2a\x99\x1c\xe1\xe3\xa6\x84\xbf\xe8\xeb\xe5\x0a\x65\x3a\xf8\x89\x0e\x81\x70\xae\x63\xe1\x01\xac\x81\x10\x50\x37\x57\x1f\x56\xae\x72\x7a\x12\x9d\x71\x9e\x8e\xb4\x4f\xc2\x39\x44\x6a\x55\xf4\x87\x9c\xe4\x5c\x55\x94\xe7\x1a\x35\xe1\xd9\xca\xea\xbc\x19\xf7\x7f\xb2\x01\xff\x0c\xc6\xcd\x73\x2c\x72\xbf\x72\x3a\x29\xa9\x4b\x01\x59\x8e\x22\x67\x22\x74\x8e\x8f\x1d\xee\xd2\xdc\x5f\x8c\xe1\x28\x07\x63\xf8\xba\x39\x8c\xf7\x98\xf9\x3f\xfe\x33\x90\x47\x03\xd5\xf4\x1e\x9c\xa0\x2e\xa8\xee\xd6\x5a\x4b\x5e\x5e\x7a\x8c\x8e\xa9\xb4\x53\xa7\x13\xb4\x0d\xcf\x8d\x49\x45\x50\xe9\xc2\x43\x79\x3a\x2c\xa1\xe9\x27\xdd\x77\x6b\xe2\x38\x7d\x2e\x45\x14\xa7\xca\xc1\x2e\x94\x95\x80\x9b\x76\x1d\x8a\x3e\x1b\x2e\x9c\x42\x13\x55\x21\xed\xd3\xf5\x47\x41\x50\x07\x94\x30\x32\x57\xa7\xa6\x1a\x4b\x83\xfb\x41\x71\xa2\xbc\x9f\x83\x03\xfc\xe9\xd1\xfe\xcc\xfd\xa8\x2c\xb5\xf4\x41\xd2\x60\xb8\xc0\x6f\xef\x87\x14\x3a\x99\xa8\xf9\x4d\x96\xf5\x22\xe1\x89\x74\xcf\xe6\xf6\x68\xda\xaf\xd0\x7a\x0f\xbd\x5b\x7d\x69\xa3\x28\x12\xa3\xa9\xd4\x44\x45\xfd\xf1\x1e\x57\xa4\x4c\x27\x83\xf0\xee\x40\x5f\xe0\x45\xce\x73\x4a\x8e\x6f\x1a\xe8\x9f\xcf\xe2\xa4\xba\x4f\x1a\x40\xd3\x47\x56\xe4\x1a\xb4\x9b\x60\xc4\x14\x3a\xd3\x97\x18\x56\x98\xa2\x88\x23\xba\x52\x75\x6a\x9a\xc7\x52\xf5\x57\xe2\xbf\xbf\x60\xd6\x32\xf6\xe8\x9c\x8c\xef\xe1\xa7\x0a\xef\x64\x51\xa0\x51\xca\x6a\x78\xe2\xa2\x19\x71\xce\x79\xc1\x50\x99\x91\xb6\xf2\xa9\xed\x6a\x5d\x42\x38\xcc\x63\x5b\xca\xe8\xca\x03\xae\xcd\x1d\xb4\x56\x6a\xc9\x17\x75\x20\xdc\x00\x11\xdb\x90\xa5\x0f\x46\xaf\xfb\xfd\x7f\x54\xfe\x2b\x84\x4c\xbd\x75\xf6\xd5\x80\xc9\xf6\x73\xf4\xf2\x8d\x11\xda\x2e\x30\x48\xf8\xe2\x4a\x7d\x0c\xdf\x49\x32\x8b\x83\x92\x0f\x2f\x20\x96\xd4\x19\x7e\xa7\x77\x93\x60\xb7\xfd\x03\x0a\x87\x85\xa2\xac\x6b\xa1\xf5\xbd\x6d\xf2\x21\x91\x15\x26\x6b\x86\x9f\x71\xa0\x0a\x1d\x90\x8d\x4e\xe7\x7a\x16\x52\x17\xe0\xf8\x5a\xfd\x94\xb3\x6a\x4e\xdf\xda\x99\xf1\x1d\x2f\xc0\x30\x42\xa1\xf7\xc1\xc4\xf8\x05\xd8\x0e\x7e\x01\xbc\x90\xa9\xf5\xe5\x92\xd0\xe2\x62\x79\x17\xfe\x5c\x44\x5a\x8f\xa1\xee\x65\xed\x70\x69\xb3\xc9\x2f\x79\x9a\xc6\x2e\x63\x29\x1b\xd4\x36\x26\xbc\xa9\x1b\xb2\x69\x7c\x1a\x0b\x7b\xfb\x4f\x68\x43\xe0\xd7\x0a\x0e\xfd\x5c\xb8\x58\x24\x2d\x54\x82\x24\xa9\x1c\x10\x4e\xfe\xd3\x8a\x33\xda\xe4\x1e\xf0\x7d\xb9\xaf\x2b\xfc\x9c\xca\xc0\x0b\x6d\x2c\xf2\xc6\x43\xa5\x1e\xeb\xf7\x97\x41\xcb\x95\x17\x98\xa1\xd7\x4d\xf2\x0e\x4c\x13\x57\x3c\x5e\x18\x19\x1b\x57\xd5\x75\xec\xa8\xe7\x55\x15\x58\x49\xbc\x30\x3a\xf3\x36\x0d\xc1\x89\x70\x02\x0a\x60\x51\x64\x28\x5a\xb9\xaf\x2b\x20\x9f\x97\xbf\xf5\x56\xb2\x28\xe5\x44\x6f\x6d\xc9\xec\xed\xae\xfc\xcf\xa9\xd4\x7d\xd6\x34\xbc\x8c\x2c\x2a\x22\x16\x54\xfe\xe4\x99\xa4\x22\x67\xe4\xa1\xea\x2e\x8f\x80\x49\xcb\x93\x65\x7e\x8c\xad\x1c\xcf\x0a\x22\x2c\xe2\x11\x91\xf5\xb7\xd8\x1c\xda\xb5\xf9\xb6\xc1\x70\x2d\x26\x26\xd9\x24\x67\x2f\xe6\xe5\x16\x17\xfa\x82\xcd\xc8\x84\xef\xf2\xf7\x7a\xb6\x2c\xce\x24\x25\xf1\x5b\x6c\xbb\x59\xcb\x84\xc5\xa2\xe0\xd6\xf2\x71\xfd\x16\x6c\x05\x89\x8b\x7a\x41\xa9\x9e\xb3\x24\xca\x4d\x34\x32\x9c\xba\xfa\xb8\xbd\x9e\xbe\x43\x2c\x49\x90\xe0\x5c\xd8\xbd\x10\x1e\xc3\x3f\x54\x96\x28\x6e\x71\x1c\xfb\xba\xc5\x2b\xf4\x92\x39\x9c\x65\x12\xc8\xe2\xea\x48\x80\xd2\x7c\x26\x29\xc0\x59\x1e\x25\x34\xdf\x1e\xd7\x7f\x5e\xc4\xd0\xfa\x61\x09\x2f\x9c\xf7\x86\x15\x43\x99\x74\x2e\xfd\xeb\xcb\xf2\x34\xa2\x46\xcf\xfd\x62\xbb\x23\x72\xdb\xe6\xdb\xe3\xe3\xdd\xbf\x76\x77\xb7\xf7\xb7\xbe\xed\xc0\xfa\xfd\x89\x76\x3a\x5f\x66\xfe\x1c\xb7\x3b\xe4\xb0\xac\xe0\xca\xaa\x5a\x23\x01\xb1\x5a\x2b\xf2\x71\x55\x57\xfa\x22\x0c\x92\xb3\x02\x65\x14\x04\x71\xef\x7d\x65\x7b\x36\x88\x65\x59\x3c\xa4\x70\x57\x4d\xa9\x67\x06\xe9\x9c\xf1\x24\xa3\x4b\x5f\xbc\x96\xfb\xda\xbf\x87\x8c\x67\x09\xa9\xee\xbd\xd5\x1d\x5c\xae\xba\x31\xce\xad\x82\x84\xa9\x4f\x4d\xf7\xb2\x0b\x15\x14\x12\xb5\x2d\xc3\xf2\xc0\xb8\xc8\x13\xbb\x1c\xbd\xd5\xaf\xf8\x54\x5f\x76\x06\xe4\x8c\x4b\xe5\xf5\xe0\x17\x5d\x07\xea\x05\xdb\xae\x1e\x6f\xfc\x4c\x44\xb9\x12\x63\x1d\xfb\x71\x29\x89\x89\x02\x1d\x60\xb9\x4f\xc1\xaf\xb6\xdb\xcd\xe4\xcd\xfa\x25\x8d\x67\xaa\x0e\xc6\x99\x94\x05\xdd\xb7\x6f\x9b\xeb\x3f\xbf\xf8\x46\x20\x53\x51\x94\xbb\xb6\xe4\xad\xaa\xfb\x65\x95\x64\xc5\x67\x93\x58\x31\x4b\xc0\xee\xb0\xed\xba\xfa\x98\x84\x4f\x43\x5e\xb8\x85\xeb\x4b\xbf\x27\x35\x1f\xeb\x0a\xcf\x4d\x33\x38\x53\x52\x7b\x15\xe5\x4d\x57\x37\xf3\x07\xa6\x94\x25\xe8\x10\xb1\x72\x75\x7d\xbb\xdd\xa5\xe1\x2b\xd0\xba\x69\x2c\x1f\x97\x2b\xa7\xdf\x36\x31\x5a\xe7\x4c\x03\x8b\xf3\x90\xcf\x7a\x58\xe4\xe4\x39\x68\xd4\x85\xc5\xa4\x96\x7b\x4d\xa5\x81\x30\x2b\x30\xca\xbd\xb0\x2b\x09\x8d\x3c\x5f\xf5\xe1\xce\x78\x1a\x63\x2e\x09\x76\xb9\x79\x29\xcd\xd9\x82\x81\x22\x29\x5c\x5c\x13\x60\x76\x0c\xd1\xa2\x15\x1a\xc2\x3f\x4d\xbb\xc5\x6e\x88\xc9\xd0\xca\x38\xf4\x6b\x0b\x19\x49\x7d\x78\xe9\x37\xce\xa3\x22\x26\x98\xde\xa1\x26\x69\x11\xac\x34\x36\x83\x44\xf7\xf4\x4c\x3c\x32\x92\x62\xd4\x33\x9d\x38\xff\xaa\xba\x71\x31\x28\x9d\x7a\xef\xfc\xd2\x65\x93\x21\xb6\xe0\xb1\x01\x8b\x12\x7f\xf1\x4c\x34\xce\x93\xcc\xc8\x41\xf6\x7d\x59\x76\xe5\xa8\x60\x3f\x5d\x6e\x78\x52\x14\xd2\x26\x96\xcb\x3d\x42\x33\x6a\x6b\xf1\x34\xb1\x3a\x9c\x84\x6a\xe8\xc3\x9b\xaf\xe5\xb9\x86\xcb\xa7\xb4\xb3\xcf\x12\x98\xd1\x23\xe2\xa9\x92\xb4\xd2\x50\xd7\xc0\xca\xcd\x5f\x5c\x14\x79\x86\x39\x19\x3d\x3c\x91\x8e\xfe\x28\x40\xe4\x79\x9a\x53\x33\x94\x84\x58\x0b\x1b\xc2\x3c\xe1\x01\xaa\xa0\xaf\xc6\x79\xc1\x2c\xe8\xfa\x69\x75\xf3\xed\xe1\x7a\xf7\xb8\xbe\xbb\xdb\x5d\x7f\x7b\x5a\x6c\x6f\xd7\x0f\x7e\x0c\xe3\x0c\xdc\x6d\xa6\x20\xcc\x2a\xe7\x4e\xa0\x52\x97\x7f\x1a\x07\x4d\x65\xc6\xc7\x9b\xe5\x72\x4c\x31\xf7\x27\x16\xb1\x8a\x9c\xea\xf3\xf7\xba\x3b\x87\xd1\x4c\x97\x32\x2e\x32\x46\x4b\xc7\xa9\x2a\xdf\xb0\xe9\xc3\x55\xef\x8b\x3f\x62\xcd\x73\x0e\x58\xe0\x48\x40\xf5\x9c\x26\xc6\xb9\xcc\xe3\xd4\xe1\xbe\x82\xce\xbb\x9d\x93\xd3\x48\x90\xab\x24\xa2\xe0\xfc\x56\xfd\x9c\x76\x1a\xa7\x17\xaa\xa4\x61\xb6\xaa\xaf\x1a\x0a\x65\x46\x70\x22\xae\x4d\x11\x27\xa1\x53\x3c\xc0\xf4\xc7\xab\x9a\x1b\x8a\x69\x4e\xa0\xa8\x2f\xf5\x5e\x7f\xc7\xf2\x13\x5e\xb1\x1f\x8c\x8c\x4a\x3d\x36\xa5\xb1\x69\x11\x91\xd7\x46\x0e\x18\x9c\x9b\x38\xb6\x29\xd1\xa9\x7a\x6d\x49\xc0\x84\x82\xcc\x73\xb4\x06\x37\x39\x92\x20\x24\x45\xed\x54\xf0\xbe\xfc\x76\x9a\x7e\x85\x19\x84\x9c\xf7\x65\xe8\xe5\x4d\x97\x40\x6e\x54\x0c\x3e\x8c\x7e\x44\x8a\x7c\xb6\xb5\xe3\x08\x4d\xbf\x5b\x44\xb1\xa1\xb5\x03\x7f\x1e\xa1\x1a\xc9\x84\xf9\xc3\xdc\x26\xe9\x7f\x2c\xee\xc6\x7c\x19\x2e\x22\xe4\x84\x5f\x2c\x55\xed\x49\x63\xa1\x16\x26\xe2\xc8\x8a\x53\x93\x63\x44\x59\x3d\x61\x7b\xda\x77\x67\x49\xcb\xf4\xea\x44\x1c\x2b\xed\x76\x8f\xce\xb5\x29\xa9\x25\x38\xbd\x36\x11\x9b\xd4\xcb\x2b\x3d\x42\x59\x75\xa8\x09\x32\x64\x43\xd8\xb3\x8e\xd9\x3f\xa6\xfd\x0f\x77\x8e\x84\x01\xa9\x10\xfd\x3e\xc2\x15\x88\x34\xb1\xe9\xe0\xfd\xc7\xe4\x42\xd3\x54\xc7\x6e\xdb\xfd\xbd\x2e\x2d\x3b\x70\xf6\x93\xd2\x02\x28\xf5\xdf\x4d\xab\xa0\x97\x43\x7c\x91\x32\x53\x24\xa3\x35\xd6\x79\xf3\x3c\x42\xf3\x0b\xde\xfd\xaf\x62\x23\x91\xc5\x69\x14\x6e\x89\x57\xd7\xa4\x4c\xd7\x3f\xce\xd8\xb7\x70\x45\x16\xf3\xd4\xb1\x06\x14\xd6\xc6\x5f\x65\x56\x44\xdc\x05\xde\xfd\x04\x6d\x3d\xbc\x32\x1c\x77\xc6\xbb\x81\xd8\xb0\x7d\xaf\xc3\x31\x69\x39\x55\x94\xa9\xbe\xc0\xde\x9c\x3d\xb3\x4c\x15\x04\xb8\xfc\xcf\x09\x6d\x45\x77\xde\xf0\x76\xe3\xf2\x82\x51\x67\x07\x9b\xba\x2b\x7f\xf6\x71\x9e\xcb\x3d\x87\x70\x49\xe4\x85\xb1\xf9\xcd\x47\xa5\x6e\x06\x17\x1f\x2e\x72\xce\x94\xf6\x70\x83\xe6\x6d\xf8\x44\x91\x44\x13\xe9\xf8\x2f\x0d\x54\xf4\x2c\xa9\x1b\x77\xf1\x55\x13\x05\xcf\x88\xc0\x7e\xaa\x0c\x29\x8b\xcc\xde\xb3\xf9\x68\x91\xd2\x2a\x44\xbf\x76\x8e\xa5\x3f\x6f\xe1\x08\x26\x2d\xe8\xc8\x9b\xf7\xd8\x06\xe2\x24\x0b\x13\x3c\xcf\x08\x9f\x70\x77\xf7\xe5\x57\x28\x0b\xc1\x39\xb7\x7a\x2d\xd0\x8c\x6b\xb0\xd3\x89\xe2\xfe\x3b\xbd\xdb\x22\xb6\x99\xe0\x80\xcf\xfe\x84\xf4\xcc\x85\x48\x12\x99\x3b\x1e\xc9\x37\x4b\xda\x9b\xad\x23\x82\x03\xf5\x6e\xc7\xd9\xf7\x12\x8e\xe3\x12\xb9\x10\x5c\x11\x7a\xc3\x02\x28\xaf\xc6\x66\xb6\x5c\x08\x10\xa4\x5a\xa6\xc0\x2e\xa6\xfe\xef\x10\xe7\x54\x37\x68\xeb\xea\x79\x5b\x76\xfb\xe1\x00\x70\xd2\xf1\x78\xc7\x92\xdc\x69\x49\xaa\xee\xeb\xfa\xe1\x4b\x18\xa0\xd2\x62\x2a\xad\xbd\x24\x0b\xa2\xe9\x0f\x07\xb4\x62\x5b\xab\xf5\xe6\xcb\xfa\xee\x3a\x7c\xd8\x88\xd8\x21\x37\xec\x84\xf7\x07\x64\xa6\xb3\x60\xee\xb7\xac\xeb\xd7\x72\x6c\x5d\xee\x07\x49\x21\x86\x5a\xe4\x03\x1c\x70\x51\xe9\xcd\xc7\x41\xd6\xfb\x4b\xe5\x33\x21\x11\x88\xd4\x6e\xc7\xaf\x4f\x9f\x18\xb8\x71\xa1\x92\x04\xf4\x00\xc1\xfc\x58\x98\x6e\xd6\x92\x11\x4a\x88\xc2\x67\x4a\x4d\x39\x92\x89\x73\xc7\x75\x9c\x10\x87\x62\xd3\x56\xca\x7f\x46\xe7\x09\x25\x4b\x3f\x6e\xef\xee\x48\x8b\xe4\xaf\xf1\xa5\x42\xe7\x2a\xb3\x70\xf8\x63\xb8\x39\x5a\x09\x12\x3b\x3a\x40\xf3\xba\x68\x5d\xd0\x18\x7e\x19\x46\x60\x3d\xb8\x4e\xe5\x5e\x5f\x6f\xee\x43\xb1\x4d\x18\x66\x28\x71\x7c\x81\xf6\xa9\x6c\xcf\xfc\x4f\x7f\x29\xea\xc6\x85\x01\x2e\xad\xb0\xd8\xc7\xa6\xde\x9f\x02\x7b\xd8\x6b\x5a\x72\x88\x4c\x9a\x38\xe1\xa8\x87\xfa\x7d\x3a\x03\x20\x8e\x0c\xbd\x69\xb0\xdf\x3f\xe1\xfb\x23\x04\x96\x0c\xc4\x89\x14\xc1\x5a\xfb\x83\x5c\xf0\xf5\xbc\x35\x07\x71\x5a\x50\x2c\x45\xce\x53\x6a\x63\xd5\x89\x9f\xb0\x4f\xd0\x86\x13\xc9\x9c\x65\xa3\xdc\xde\xd7\x21\x9c\xb2\xbe\x1f\x96\x40\x4a\x35\x39\x52\xc7\xab\x6b\x73\x19\x9a\x0d\x69\x01\xa4\x0f\x43\x53\xd0\x96\xb8\x08\x06\x37\x7c\x5f\xc6\x12\xc2\xa0\xde\x2d\x97\xe3\xcd\x0c\x32\xa6\x52\xb7\x54\x3b\xc8\x3a\xa5\x0a\xa3\x24\x12\x32\x13\xb1\x64\xb4\x99\xcc\xde\x17\x28\x22\x4b\x4e\xba\xdb\x5c\x9f\xcb\x2d\xf5\x87\x19\x53\xbe\xc7\x31\x16\xae\xf1\x3f\xa1\x48\xb4\xed\xa6\x75\xf5\x91\x98\x58\x43\x4c\x0c\x45\x9e\x8b\xd8\x6a\x1c\x7f\x59\xaf\xaf\x37\x3f\x6e\xb7\x5f\x97\x4f\xff\x7a\xdc\xae\xaf\xd7\xdb\xe5\xfa\x3e\x8c\x33\x56\x87\xd6\x17\x80\xdb\xcb\x35\x00\x60\x71\x2a\x8a\x01\x65\x69\x5f\x99\xd9\x18\x1e\x19\x33\x71\x5c\xe9\x4f\x78\xa6\x99\xec\x07\x2b\x8c\x1d\x5d\xe4\x06\x54\x47\xbc\xb8\xd1\x3a\x3f\x04\x94\x20\x62\xe6\xb3\xf5\xfb\x8f\x1b\x28\x43\x01\x0e\x84\x04\xee\xde\xcf\x4d\x7d\x6a\x14\x4e\xd0\xce\x7e\x90\xd6\x89\xeb\x43\xad\x2a\xbd\xd2\x21\x43\x05\x81\x8a\x85\x3e\xde\xf5\xe2\x78\x9c\x06\xce\x00\x69\x4e\xb1\xcd\xd5\xfd\x63\x83\xbb\xa1\x6c\x0a\x50\x58\xfe\x6c\x59\xe9\xd3\x20\x53\xd4\xff\xdd\xaa\xea\xf8\x7b\x58\x37\xd3\xea\xd8\xc5\x1d\x01\x64\x16\x11\xde\xa4\x74\xb2\xab\x21\xc9\x06\x09\x39\x4c\x15\x0d\xfc\x4a\x3f\x3b\x83\x66\x54\x9a\x03\xad\x09\x78\xb2\xad\xcf\xb0\x43\xe1\xfd\x55\x31\x27\x7b\x10\x43\x61\x89\x6b\x59\x8c\x64\xdd\x38\xa8\x34\x89\x30\x68\xc0\x7c\xe9\x57\xdc\x31\x97\x0f\x54\x9e\x50\xd3\xf8\x00\x3f\x9d\x84\x7a\xb0\xf4\xe7\xa0\x18\x27\x2e\x69\xbf\x13\x4e\x01\x0f\xff\xb8\x58\xe8\x02\x6d\x98\x8c\xc7\x9a\x65\x4d\x7d\xb8\x87\xe6\x15\xbb\xe3\x1e\xd4\xaf\x99\xcc\x1c\x90\x17\x64\x02\x77\xbc\xbd\xa6\x1e\xd0\xce\xff\x0e\xd4\xe0\xad\xc7\x56\xcf\xd6\xc5\x81\x9a\xe6\xee\xb0\xc9\x34\x4d\xfb\x31\xdf\x62\x36\x6f\x4c\x81\x52\x85\x36\x30\x36\x8e\x22\x3d\xd9\xc2\xc0\xb0\x84\x92\xb0\x80\xbd\xdf\xbc\xc0\xb4\x8a\x0c\x86\x67\xc6\xd5\x58\x02\xb7\xdb\x19\x19\x5e\xbe\x26\x63\x04\x31\xe4\xc7\x1a\xab\x97\x73\x36\x19\xa1\xa0\x42\xb9\xd3\xd2\x1f\xa3\x53\x6f\xea\x26\x78\x5f\x72\x19\x67\x11\xf5\x79\x56\xae\x9d\x81\xe1\x00\xd8\x6e\xd3\x13\x51\xa1\x7e\xc5\xac\x74\x1f\x48\x18\xd2\x15\x0f\xb6\x4a\x1f\x94\xde\x9f\x93\xbe\xb9\x4c\x23\x41\x0d\x62\xd2\xed\xd9\x1d\x47\x74\x5a\x99\x66\xcc\xc5\x28\x7b\x75\xbb\xa6\x08\xdb\x63\x24\xe3\xe8\x7f\xfc\x20\x16\x91\x36\xba\xea\xe3\x7a\x02\x85\x4d\x0d\xcf\xb9\xcc\x22\x46\x44\x9f\xd0\xa6\xf9\xe4\x46\xf5\x97\x4f\xe2\xbd\x8f\x5f\x1e\x57\x4f\xab\x2f\x4f\xb7\x0f\xbe\xd6\x26\xb3\x34\x26\x0c\xe3\x01\x7e\xf6\xc9\xd7\x13\x6a\xc4\xc3\xe0\x7c\xcf\x65\x26\x22\x7a\x82\xab\xc5\xd3\xdd\xbf\x76\xb7\x0f\xdf\x57\x9b\xed\xfa\x69\xb7\xb8\x5f\x7f\x7b\xd8\x86\x41\x06\xa8\x20\xf6\x05\xbb\xe5\xbe\x54\xaf\x63\xf2\xb0\xcc\x45\x0c\xb9\xd3\x63\x86\xfd\xfa\x38\x5f\xeb\x65\x0e\x3c\x87\x11\x02\x7d\x55\xe9\x63\x5d\x56\x53\x0a\xa3\x2c\xb8\x05\xd2\x40\xdb\x96\xcf\x15\xf1\xcb\x27\x6a\xaf\x17\xf7\x74\x59\x48\x99\x0f\x85\xeb\x11\x76\xf8\x4c\x04\x95\x4b\x96\x4a\xdf\x35\x20\x53\xad\x3e\x26\xda\xd4\x7b\x7d\xc1\xf6\x97\x4b\x96\x69\xc2\xf9\xdd\xd5\xcf\x8f\xf5\xbe\x54\x1f\xab\x9f\xc7\xb2\x99\xb7\xab\x24\x53\x16\x65\x45\x8a\xfd\xc3\x33\x4c\xa2\x70\x9c\x53\xa4\xe3\x1b\x35\xbf\x83\x7a\x7d\xac\xcf\x7e\x99\x01\xfa\x65\x96\x0c\x10\x34\xa6\xb8\xe4\xa9\x24\xa8\x17\x1c\x8f\xfe\xde\xfa\x23\xda\x82\xb0\xda\x51\x85\xe4\xb1\xa9\x9f\x1b\x38\x7c\x92\xdb\xba\x0f\x02\x43\xaf\x01\x41\x37\x19\xcf\x93\xe0\x4f\xfe\xf5\x27\xd0\xb1\x0b\xcf\x15\x1e\xbb\x49\x24\x75\xfe\x7c\xa4\x16\xe4\xb2\xfc\xbc\xaf\x25\xec\xb7\x23\x78\x95\xbf\x10\x05\x39\xd5\x12\xc1\x0a\xfc\xe2\x27\x8a\xe7\x5c\xea\xcc\xee\x75\xb7\xcb\xf5\x6e\xb9\x78\xf4\x1b\x89\xd4\x05\x66\xd6\x72\x99\xf2\x85\x0a\xdb\xd6\x01\x1b\x3f\xf9\x4d\x5a\x9b\xd4\x29\xd6\xaa\x13\x2e\x28\x9c\x1b\x9b\x8e\xfa\x61\x68\x45\x05\xda\x7e\x6b\xf6\xbb\xde\xfc\xc9\x61\x2e\x69\x89\xd9\xe9\x7a\xc2\xcc\xff\x65\xaf\x62\x14\x00\x48\xe4\x2c\x8a\x7c\x65\x0a\x5a\xec\x27\xc8\xb1\xfe\x84\x00\x2d\x4d\xa2\x3d\xee\x91\xa8\xa0\x57\x75\x7d\x59\xb3\x88\x4b\xa3\x35\xa5\xe2\x0d\x9a\x53\x8b\xe7\x4b\x9f\xdf\x34\x55\x14\x23\xf5\x1d\x37\xaa\x24\xad\x5a\x77\x5f\x55\x1c\x89\xc8\x83\x6e\x9c\x11\xb8\x9f\x59\xd6\x52\xde\x8d\x4b\x30\x82\x22\x94\x9b\xb6\x35\x85\xc0\xed\xad\xd9\xd4\xa6\x5b\xc2\xf1\xa1\xee\x7c\x94\x3b\xf9\x81\x2a\x2d\x90\x9c\x1c\xda\x34\xb2\x27\x8c\xfd\x01\x96\x50\xbf\xbb\xa4\xdf\xbc\xe9\xf0\xd8\xce\x3f\xca\xac\xa8\xca\xaa\x69\xea\x89\x43\x18\x57\xa9\x34\xa9\x18\x48\x9b\xcb\xba\xac\x24\xb4\xb3\xb8\x49\x65\x91\x20\xe0\x48\x10\xb0\xc4\xfd\xbe\xb5\xa2\xba\xfe\xf2\x73\x96\x48\x67\x87\x79\xab\xea\xb1\x9d\x6b\x7f\x8c\x53\x70\x7a\xfd\xcd\x3b\xed\x72\xc5\x94\xb1\x09\x36\x2d\xb1\x97\x9b\x86\x17\x27\xb6\x62\xc8\xc8\x93\xcb\xa0\x7a\x21\x64\x13\xed\xf6\x57\x1f\x54\x43\x7a\x38\x1d\x66\x17\xcf\x19\xa7\x7d\xf1\x00\x3f\xa9\x73\x4b\x88\xa8\xb9\x80\x2d\x57\x5c\x5a\x5b\x13\xe2\x40\x10\x8e\x75\x55\xe9\xeb\xa1\xec\xa9\xb8\x04\x9a\x79\x04\xff\x59\xc2\x5e\x3d\x86\xbe\x95\x12\x8c\x05\xa1\x18\xf8\x79\x8d\x3f\xc9\xeb\x73\xfa\x3b\x04\x28\x6a\x48\xe9\xfa\x24\xf7\x18\xbc\xdc\xa6\x37\x1a\x00\x28\x0d\xfe\x76\xdc\xd7\xa0\xef\x4f\x6d\xa9\xe6\x39\xe3\x18\x8d\x71\x79\x95\x57\xa0\xa3\xdc\x56\x52\xeb\xd7\x99\x0f\x14\x57\x32\x41\x0a\x4c\x17\xbf\x5f\x8f\x93\x18\x25\x53\x49\x8c\x9b\x2f\xd8\x7d\xab\x8e\x7d\xba\x36\x3d\xa9\xcc\x94\x1c\x95\xa1\xed\x2e\xf0\x48\x6a\xf5\xfe\x14\x98\xc4\x69\xe1\xab\x60\x63\xbd\x23\xae\x50\x30\x42\x75\x5a\xe8\x2f\x91\xb7\xca\xff\xe2\x17\x98\x4d\x55\x1d\x15\x8c\x22\xad\xb2\xd2\x2e\x95\x9a\xb6\x92\x74\x04\xcc\xc5\x01\x7d\x74\x73\x16\xdb\xfa\x51\x0a\xa8\xfc\xb0\xfd\x76\xfb\xb0\xda\xfe\x58\x3f\xfd\xe1\x3f\x1f\x47\x4a\x04\xbf\xb4\x6f\x55\x59\x4f\x18\xd4\x3a\x49\x53\xad\xbc\x54\xcf\xb8\x10\xa6\x13\x21\x48\x95\x65\xd7\x62\xb7\x3e\x75\x6d\x07\xb6\xf7\x5d\xbf\xcf\xd1\x86\x3a\x8d\x59\xb0\xfd\x5b\x36\x1f\x6d\x07\xfb\xcb\xab\x8e\x4e\x53\xcc\x3c\xe6\x26\x28\xb6\xcf\x02\x1b\x9d\x8a\x94\x47\x5e\x79\xfe\xa6\x3e\x35\x63\x44\x8b\xce\x22\x46\xa5\x47\xeb\x54\xd6\xfc\x2d\xeb\xa4\xf0\x51\xa4\xc0\xeb\x6f\x99\xb4\x73\x9d\x09\x1d\x5b\x22\x45\xd3\xe2\x03\xbe\xd3\x92\x6a\xbf\x2a\xc9\xa6\xad\xcd\xb9\x52\x88\xce\x14\x88\x84\x7a\x4f\xb7\x07\x78\xc6\x75\x75\x5e\xb0\xd7\x99\x96\x71\x16\xea\x02\x17\x7a\x94\x3a\x8f\x90\x04\xcc\xfb\x0d\xcd\x5f\x7f\x11\xe5\x54\x27\xdd\x36\xa7\x89\x16\x80\x2e\xb8\xa4\x5c\x6a\xf7\xec\x9c\x8a\x96\x75\xdb\x8d\x3a\x7d\x0e\xe9\xc6\xfd\x70\x69\x75\xb3\x9f\xeb\xbd\x1e\xf4\xde\xb9\x66\xb9\xf5\x75\xa6\xb2\xc0\xb7\x56\xcf\xca\x2f\x9a\x09\x46\xf6\x39\xdb\x72\xdf\xef\x07\x53\xcd\x17\xcd\x00\xe8\x16\xbf\xd4\xa7\x16\xb7\xf5\xf1\xdb\x31\x1c\x91\x3a\xb1\x84\xd6\x69\x27\xe6\xf2\xa3\x22\x7c\x7e\x50\xdf\x45\x6d\xa5\x7b\xac\xb6\xee\x68\x7f\xd4\x22\xd2\x54\x13\xbe\x5a\x7c\x5d\x2c\x17\x67\x05\xa7\xf1\xda\xaf\x05\xb0\x80\x1b\x81\x3d\x5e\x82\x13\x6a\x00\x43\xe5\xa8\xdd\xb1\xc1\x43\x10\xcd\xe6\x5a\xca\x98\xa3\xb7\x63\xa8\x9b\xd3\xe1\xdc\xb9\x8f\x6b\x55\xc4\xb9\x27\x38\x42\xd3\x40\xd5\x7d\x5c\x44\x5f\x6a\x65\x32\x13\xd4\x27\xf7\xfb\x8b\x49\x98\xd6\x71\x66\x2c\x95\xc4\xc0\x69\xdf\xf5\xbb\xcc\xf8\x3d\xc0\x82\x5b\x64\x59\x5d\x77\x92\x3a\xdd\x0b\xa5\xb0\x6d\x9d\x1c\x63\x18\xc6\xac\x2a\x48\x87\x6d\xf7\xa5\xdf\xaa\x15\x96\xc7\xce\x57\x8c\x46\xf5\x7f\x8d\xd2\xd6\x5e\xb1\x6a\x4f\xe4\x58\x53\x5d\xcc\xb8\x35\x9a\xc8\xf6\x99\xca\xaa\x1b\xa6\x8d\xe1\x05\x01\xcd\x6e\x4e\x1d\x34\xea\xe5\x23\xfc\x1d\x0d\xbd\xf1\xa7\x63\x8b\x4d\xff\xd2\x9f\x17\xb4\x07\x5c\xc0\x74\x12\x60\x94\x4b\xaa\xe7\x95\x55\xbf\xfa\x58\x50\xfa\x59\xc0\xff\x7f\x41\x97\x06\x32\xda\x5c\xc5\x7e\x1a\xc3\x62\x9c\x80\x4e\x07\x4d\x84\xb5\xa1\x34\x6f\xbd\x9f\x10\xb8\x31\x4e\x23\x25\x82\xf7\x9b\xdc\xcf\x77\x37\x8c\xf3\x88\xb0\x4c\x77\xf5\xb3\x5d\x72\x2e\x2f\x34\x98\x24\x9c\xb9\x79\x63\xb3\xe3\xef\xfd\x03\x6f\xad\xf6\xf6\x6f\xb3\xb1\x4a\x47\x9e\x6c\x7e\x03\x65\x88\x99\xaf\xd0\xd4\x0d\x4e\x45\x11\x39\xa6\xa9\x10\x8e\x37\xf1\x72\xf6\xf3\xd2\xcc\x12\xc5\xb0\xd2\x13\xd4\x1e\x66\x85\x42\xa7\x38\xd9\xcf\xa8\x45\xa5\x49\xd7\x88\x0a\x79\x33\x54\xc9\x94\x2e\x4d\x84\xea\xf0\xbf\xfc\xd9\x78\x46\x6d\x44\x5d\xaf\x5a\x05\xae\x4e\x38\x93\xe4\xc1\x4c\x14\xf4\x95\x6f\xfd\x95\x3b\x9d\x5c\x27\x0e\xef\x7f\x55\x21\x33\xaa\x57\x92\xfe\xed\x1d\x3e\x83\x0a\x3f\x98\x47\x51\x34\xee\xcd\x6c\x50\x9d\x9a\xb2\xfb\x98\xf7\x5b\xa6\xd7\xcf\x39\x90\x58\x5f\x85\xef\x9e\xbb\x39\x7b\x3e\xe1\x1a\x38\x07\xbb\x58\x96\x6f\x38\x05\x32\x7e\xfa\x09\x50\xa4\xc3\xf6\x82\x3f\x37\x5d\xe3\xf8\x11\x93\x58\x14\x45\x22\xa8\xfc\xf3\xaf\x53\xf5\x7b\x09\xf7\xe5\x64\x72\x09\x61\x45\xe3\x9c\x23\xd5\xa4\x0c\x85\x42\x5b\x06\x25\xd5\xc5\xa8\x7a\x38\x9d\x24\xc2\x30\x7a\x45\xbf\x60\x85\x4d\xa9\x06\x9f\x88\x5f\xa6\x6e\x28\x33\x14\x3c\x74\xba\xc3\x8b\x9a\x0f\xad\xa7\x62\xb6\xcf\xa1\x94\x46\x59\x91\xa9\x43\x59\xd9\x05\xc8\xcf\xc8\xe6\x5c\xc2\xc4\x7f\x48\xa7\xf4\x7a\xfd\x71\xf5\xc7\xe4\x9a\x55\x6c\xa5\xf0\xfa\xb9\x7d\x8d\xfa\xa4\xc6\x70\x08\x54\x45\x4c\x1d\x09\x55\xef\xeb\x2a\xc8\x0a\x0f\x47\xf3\xd8\x8c\x2c\x64\x5f\xf7\x70\x55\xea\xb9\x0a\xe8\xf8\xdf\xd8\x5f\x83\x8e\x92\xb4\x08\x68\x7d\xdd\xd4\x47\xc7\xbb\x18\xf6\x19\xd4\x5c\xc7\x6e\xcc\xd6\xc6\x69\xd3\xa3\x96\x78\x74\xb0\x3d\xec\xfe\x8b\xf7\xfb\xfa\x3d\x6c\x9a\xa8\x4d\x4e\x1c\x07\x9a\xbb\x5f\x63\xff\x67\x4c\x53\x70\x76\x4e\x4f\x3a\x98\xa0\x71\x44\x66\xcd\xf4\x02\x69\x7f\x89\x55\xd7\xfe\x40\x7c\x1d\x48\xe5\x68\x72\x61\xcc\x48\xab\x74\xf3\xd1\x76\x17\x32\x8b\xff\xe3\xbf\xfe\xe4\x1a\x69\xfa\x5d\xff\xf9\xaf\xf1\x23\x32\x91\x8c\x29\x2b\x7b\x7c\x5a\xed\x7e\xdc\x3e\xec\xee\xbf\xdd\x6d\x6f\x1f\xef\x56\xbb\xc7\xd5\x93\x1f\x13\x47\x82\xb8\x80\x12\x81\x78\x38\xe1\xef\x49\xe6\x9d\xbd\xfb\x0c\x9f\x54\x96\x26\xdf\x6a\xe2\x4c\x13\x5c\x78\x59\x1f\x8e\xa7\x0e\xef\x3f\x46\xa0\x55\x93\x44\x45\x1a\xf9\xdd\xb5\xdf\xba\xfd\xb6\x39\x7e\xa9\x4c\x92\xe6\xa8\xbc\x43\x16\x6d\x9c\xce\xa3\x35\x9c\x06\x13\x1f\x82\x0e\xfc\xe0\xdf\x6b\x69\xf7\xe9\xbf\xd8\x5d\xc2\x39\x18\x75\x2f\xee\xaf\x96\x03\x12\xdc\x64\x85\xa4\xb4\xef\x0e\xe1\x38\x9a\xb8\x26\xe3\xb6\x68\xec\x42\xa5\x55\xd5\xef\x15\xb3\xfe\x8f\xc9\x53\xeb\x97\xe5\x22\x63\x12\x3f\xb8\x18\x17\x98\x3e\xce\x23\x51\x28\xec\x2c\x97\x68\xbb\x85\x59\x80\x61\x0a\xb4\xb6\xd2\xa4\x6b\xfc\xaf\xdd\xea\xcf\xe5\xd7\xc5\xc3\x97\xd5\xee\x29\xf8\xe1\x71\xc3\x72\x4d\xbc\xe9\x43\xfd\x86\x3b\x5b\x9d\x9b\x10\x6f\xb8\x1f\xa7\x73\x16\x8d\xc1\x31\xb0\xbf\x25\xc7\xce\xbf\x19\x76\x1b\xc1\x52\x2a\x32\xde\x58\xde\x39\x36\x5b\x68\x9e\x31\x3c\x10\xc1\x38\xd5\x27\x83\x6e\x00\xd1\x76\xdc\x41\x88\x50\x38\xf0\xcd\xf6\xaf\x14\x68\xfc\x47\x90\xd1\xae\x7b\xbb\x5c\xef\x1e\xbf\x2e\x36\xab\x78\x67\xad\x57\x1e\x57\x4f\xcb\xd5\xc3\x76\x11\xa0\x86\x46\x72\xe0\x7c\x24\x7f\x4b\xfd\xfe\xe9\xdd\x56\x89\x15\x5b\x71\x6c\xcf\x7b\xf8\x39\xc9\xf5\x8d\x12\xa8\xec\x29\x4e\xd5\x6b\x71\xdb\xda\xae\x87\x3f\x88\x8a\x8b\xe0\x94\x85\x4f\xe4\x69\x58\x56\xcf\x5f\xa0\xb5\xe1\xfe\xb0\x86\x18\xcd\x8b\x62\xc4\x1c\xde\xef\x97\xf5\x1b\x36\x94\x3d\x84\x57\x00\x93\x94\x84\x0d\xdb\xff\xcc\x9e\xb7\xc9\x85\x53\xec\xc2\x66\xa7\xe0\x18\xfa\x28\xc6\x28\xeb\x77\x75\x6c\x50\x63\xbf\x3c\xd7\xd3\x04\x59\x44\x51\x9c\xdb\x97\x6e\xfd\x70\x73\xfb\x65\x77\xbf\xf8\x73\xf7\x7d\x71\xf7\x6d\x15\x8e\x67\x28\x63\x0f\xb9\x77\xa8\x22\xee\x8f\x31\xee\x9d\x2b\x57\xeb\xcd\x1f\xf8\x71\x53\x5f\x16\x53\x12\x51\x64\xa2\x38\x1a\x2a\x2f\xbf\x4d\x8f\xc6\x11\x12\xc9\xce\x49\xff\x7a\xf0\x43\xb8\x3f\x22\x8a\x85\xa2\xa2\x0e\x56\x23\xbf\x53\xfb\xe0\xf9\x18\x97\x23\xa2\x18\x52\x8a\xae\x9d\x2b\xd6\x38\xd1\x1c\xdf\x35\x11\x25\x32\x71\x8e\x90\x3f\x47\x50\x7b\x11\x25\x8e\x88\x40\x32\x8f\xf5\xb7\xb2\xea\x46\x81\xb2\x88\x12\x13\x83\x9a\xf0\x67\xc2\xbd\x4c\x0c\x4b\x5c\x37\xca\x66\x8b\xe3\xcc\x56\x44\x7d\x34\xd6\x7f\x21\x54\x55\x7d\xb2\x42\x80\xd5\x27\xbd\x10\x11\x65\x85\x55\xb8\xba\xd9\xde\x3c\xf8\xee\xc6\x68\x2d\x16\x51\xa6\x24\x29\xe6\x3c\xc3\xc1\x6b\x88\xce\x2e\x30\x07\xa0\x84\xc4\x97\x97\x27\xea\x9d\x22\xca\x4d\x5e\x4c\x88\x1e\xa4\x9f\xeb\x0e\x16\x29\xa3\xe8\xe8\x8b\x2d\x04\xff\x76\x2e\xf2\x24\x48\x26\x8d\x1c\x88\xea\x1b\xc4\xc7\xba\xfa\x6f\xf9\x5b\x38\x62\x61\xc6\xdb\xe5\x6a\xf2\x9b\x45\x9a\x72\x70\x3e\xec\x5f\x11\x9a\xee\x0a\x61\xe0\xfb\xb9\xe5\x63\xf2\x1d\x22\xb3\x62\x74\xd8\xbd\xb8\x8c\xcd\x1f\x10\x9c\xe4\xe3\x3e\x93\x4b\x1b\x3f\x32\x81\x9c\xc4\xfd\x36\x60\xb0\xbf\xc8\x81\xc7\x32\x9d\x86\x10\x1b\x61\x61\x30\xc7\xd2\xa2\x72\xfd\xb7\x49\xc6\xd1\xbd\xca\xd6\xd0\xcb\xe6\x02\x5f\xa1\xd2\x73\x6f\x0e\x11\x49\xae\x29\x47\xde\x3c\xde\x5e\xaf\x9e\xc8\x64\x63\xf7\xb4\xfa\x67\x38\x97\x14\x29\xa9\x05\x75\x6a\x00\x1a\x8a\x48\x9a\x94\xb0\xad\x7b\x34\x5d\x22\x66\x8f\x52\x45\x31\xa1\x1e\x50\x97\xb6\x65\x79\xd9\x99\x52\x44\x0a\x25\x85\x05\xa7\xea\x1a\xf7\xf8\xec\xb3\xd4\xb3\xd4\xc7\x0f\x37\x16\xa7\x7a\x5d\xc2\xa1\xae\x34\x69\xe4\x4c\x9e\x98\x4e\x52\x29\xbc\xe3\x7b\xf5\x3a\xbb\x52\x9d\x5b\xac\xc1\x97\xeb\xf5\x42\xbf\xfd\x22\xfd\x16\x91\x16\x19\x25\xac\x03\x9b\xa8\xa5\x8e\xc5\xec\x84\x42\x90\x7e\x6f\xb0\x79\xf6\x34\xc4\x25\x1c\xb7\x25\x36\xf1\xec\xbe\x60\x9e\x15\xae\xf1\x5e\x56\x21\x84\x12\x11\x72\x36\x8a\x07\x1f\xf0\x7d\x73\x92\xdd\x25\x08\xe8\xec\xf6\x21\x14\xc6\xd9\xaa\x90\x91\xf7\x3d\x54\xf0\x4c\xdb\xde\xa5\xdd\x58\x44\x26\xb3\xdf\x7f\x24\xc9\xaa\xeb\xd1\xe3\x34\x22\xa1\x39\xf7\x5a\x76\x9d\x43\xee\x12\x9c\xde\xa3\x37\xed\xb0\x38\x52\x16\x2b\x2e\xfb\x5b\xf5\xc7\x87\xfe\xf8\x3a\xa7\xd4\x8b\x38\xce\x99\x37\x85\xda\x60\xe3\xbc\x34\xe7\x46\x02\x7e\xac\xd4\x86\x4d\xe1\xaa\xa3\xbe\xd7\x7c\xb0\x46\x5a\x2a\xff\x59\x1f\x8f\x30\xc4\x2c\x22\x4e\x74\x4a\x8c\x0f\x8f\x3a\x76\x35\xa0\x5f\xde\xbb\x38\x31\x20\xad\x1a\x5b\xf5\xa3\x19\xeb\xad\x4c\xa6\x5c\x9c\x46\x12\xe2\x51\x77\x99\x7a\x02\x17\x2b\xe2\xe1\x03\xc6\xdb\x94\x2e\xf6\x7b\x87\xac\x6c\x6f\xea\x66\xb1\xdf\xd3\x19\xd6\xd5\x14\x04\x2f\xe2\x34\x2f\x94\x83\x02\x3d\x36\x7d\xc0\xfe\x3c\xbf\x4f\xa9\x51\x34\xd1\xf6\x88\xaf\x9b\x0e\x61\xff\x58\x77\x3b\xff\xf1\xac\x28\x28\xd7\xd8\xc9\x53\x53\xfd\x76\xc1\x8c\x5b\xc4\x19\xa4\x44\x40\x50\xb5\xa9\x4f\x95\xc6\xa6\x1d\x07\x06\x22\xce\x63\xcb\xf6\xa2\xca\x2a\x25\xb2\x8f\x4d\xf9\x5f\x6c\x7f\x58\xd5\x94\x30\x2c\x35\xb4\x88\x9f\x88\xa7\xe6\x6a\xc0\xd3\x1d\x3a\xce\xb5\x24\x65\x9c\x55\xa5\x85\xff\x5b\x91\x58\x40\xfe\x33\xf6\xeb\xa8\xb6\x4b\xe3\xd0\xe6\x17\x71\x21\x62\xba\x03\x8b\xe7\xa6\xa4\x95\xec\x01\x7f\x76\x83\x0f\xb6\x88\x0b\xb0\xd2\x8c\xed\x4b\xfd\xee\xcd\xaf\x2e\x77\x05\x45\xcc\xd2\x8c\x30\xc3\x4f\xeb\xab\x55\xf7\x32\xee\xb5\xfb\xb3\x31\xc3\xc9\xeb\xf8\xf7\x1a\xaa\x6a\xac\x4f\x20\x62\x91\x19\x74\xc6\xa9\x33\xbd\xdd\xc9\xec\x01\x26\xa4\x83\x0c\x7d\xaf\x3b\x5c\x54\x64\x5d\x7a\x79\x95\x8b\x81\x01\x41\x39\xd6\x47\x2b\xfd\x6c\xc3\xae\x71\xaf\xc0\x0f\x54\x3c\x2a\xc6\xd6\x96\x75\x87\x56\x31\x6f\x3a\x29\x65\x6a\xd5\x87\x7c\x09\xe1\xbe\xdc\x63\xdb\xd5\x55\xb8\x40\x09\xa9\x76\x88\xa3\x06\xfb\xfb\xb8\xa8\xf4\x48\x47\xd6\x8d\x52\x1a\xa9\x2b\x76\x5d\xb6\xf2\xd4\xb4\xb4\x70\x5c\xdc\x23\x62\x9d\x58\x63\x9f\x2f\x8b\xcd\x98\xd9\x24\x62\xcd\x22\x8a\x38\xed\xca\xf5\xbd\x6c\xe1\x2c\x2b\xb9\xe4\x80\x24\x62\x2d\x25\x85\x2d\x2e\xee\x21\x0d\x17\xcf\x00\xe9\x8f\x2a\x62\xd0\xfa\x37\xc5\x69\xec\xff\x15\xb7\x61\xfe\x15\x86\x78\xb0\x14\x84\x5d\x95\xfa\xa6\x6e\x1e\x4f\xd5\xeb\x6c\xb9\xd2\xc6\x50\x98\xea\xc3\x8e\x9b\xa6\x3e\x50\x49\xcb\xff\x16\x4c\x8d\x57\x57\x77\x33\xa2\x7d\x29\x8f\x4e\x37\xfb\xb3\x9a\x8a\x88\x51\x58\x19\xe3\x16\xf7\xfb\xaa\xd6\xf3\x55\x12\x05\x14\x16\x18\xf8\x31\x5e\xca\x10\x81\x9b\xd1\xaf\x21\xa4\xf4\x35\xd4\xfe\xb8\x49\x8c\x87\x66\xd3\xa1\x06\xab\x8b\x5c\x2c\x91\x44\x3c\x11\xb6\x80\x7c\x28\x2b\x8a\x8b\xda\x6e\xf3\x52\x1f\x07\x4d\x6f\x91\x44\x3a\x25\x10\x10\x81\x44\x9d\xb2\x49\x38\x24\xbc\xcb\xea\x83\x73\x3c\x68\x89\x2f\x1a\xb8\xfa\x01\xd0\x7c\xe9\x29\xb8\x98\x3b\x89\x33\x20\x9c\xb6\x65\x48\x8e\x0c\x26\x44\x12\x73\xa4\x66\xcf\xd1\x89\xb8\xfa\xbf\x27\x98\x13\x82\xcd\x49\x42\x5d\x70\xec\x99\xdc\xc9\x24\x8d\x0b\xcf\x1a\xf6\xa9\x8a\x6d\x1e\xce\x86\x15\x31\xc9\xa8\x2f\x1b\x30\xdd\x01\xf7\xc3\x17\x66\xb1\x45\x82\xbe\x43\xbb\x39\x51\x55\xc8\x9c\xf6\xe1\xa0\x91\xd4\x59\xba\x3d\x04\xe6\xba\x48\xf2\x28\x86\x28\x50\x52\xbd\xa4\xd3\x38\xae\x4f\xf2\x98\x83\x95\xd8\xff\x65\x75\x6f\x76\x2d\x45\xa4\x2d\x63\xe8\x34\xff\xf9\x45\x52\xd0\xf9\xae\xca\xae\x8f\x7a\x76\x30\x59\x75\x93\x22\x31\x64\xc5\x54\xb6\xbb\xb6\x7c\xae\x3e\x8b\x30\xc3\xcf\x2b\x72\x4e\x35\x1e\xd3\x20\x7e\x21\xe9\xc6\x5a\x9f\xd4\xdc\x0e\xcd\x0f\x66\x8c\x4a\xdb\x55\xdd\x41\xbf\x2d\x6c\xdf\xeb\x33\x75\x39\x91\x14\x32\x4d\x60\x04\xf8\xdc\xf4\x1b\xc8\xfc\x2a\xb0\xa0\xa2\xd9\xff\xf6\x81\x1b\xc2\x61\x76\x98\x45\x68\x5c\x5d\x21\x5c\xe0\x64\x21\x4a\x58\x81\x24\x56\x52\xd5\x1d\x69\x73\xfb\xeb\xe7\x79\x46\x3c\x1c\xe5\x41\x7e\x22\x81\xc4\xba\x90\x92\x60\xb3\xad\xf6\x2d\x9c\x05\xf2\xf5\xe5\x9d\x23\x81\x5c\x11\x33\x44\x63\xdb\x35\xf5\xc7\x6c\x9f\x4e\x20\x37\x04\xb7\xbf\xc6\xb7\x7a\xff\x86\xcd\xce\xe9\x8b\xcf\xae\x02\x94\xa0\xdf\xe2\x94\xee\xae\x3e\xae\x2e\xdf\x56\x99\xe4\x3e\x4a\xb7\xe2\x09\x97\xb6\xee\x44\x39\x21\xfa\x03\xfc\xdc\x7c\xd9\x4e\xb6\xed\x44\xa7\x1a\x33\xcf\x81\x5d\x54\x1f\x5f\x60\x1e\x8d\x25\x5a\x23\x69\xdf\x5c\x75\x84\x1f\x18\xef\x75\x09\x2a\x43\x45\xea\x86\xde\x7c\x8b\x1c\x19\xd7\x6e\x45\x62\xd2\x22\x71\x01\x26\x75\xe9\xae\x6b\xfb\xef\x98\x69\x31\x9b\x59\x46\x68\xa2\xcf\x5c\xaf\x1f\x88\xd8\xb5\xfb\xb1\xb8\xbb\x5b\x6d\xc3\x19\x31\x77\x3a\xae\x95\xa6\x96\xff\xe5\xb7\x3a\x8d\x84\xe5\x4d\xff\x17\x9b\x7a\x1a\x61\xa4\x91\x49\xe8\xd0\x3f\xbf\x4f\x85\x27\xfb\x23\x85\x76\xa1\x27\xe1\x96\x9b\x09\x11\x6c\x3a\x36\x8e\x14\xad\x07\xf7\x65\x75\xea\xf0\x00\x93\x5b\x93\xc6\x0a\x0b\xc7\x2f\x59\x54\xe5\x01\xf6\x63\xa6\x82\x48\x13\x95\xaa\xc2\x07\xde\xa5\x95\x99\x1d\x9b\x69\x8a\x34\x65\x85\xf7\x0c\xb6\x7e\xb4\xb3\xaf\x27\x69\x49\x6f\x83\x4e\x6f\xec\x8c\xa8\x2c\xd2\x14\x0a\xaa\x65\xd5\xc6\x90\x1d\xf4\xf4\xc9\xa6\xa9\x14\xa9\x95\x26\xae\xf0\xfd\x1e\x0f\xd2\xc1\x77\xfd\x61\xb4\x42\xc1\xad\xd7\x91\xbf\x08\x18\x16\x69\xce\x52\x5f\xcb\xbb\x3a\x7d\x4c\xa2\xa5\xe9\xf7\xe5\x3c\x77\x96\xff\xf0\x8c\x93\x79\x98\xe6\x46\x91\x37\xe0\xd5\x4b\x59\x55\xf8\x0a\xb3\xaf\x28\x12\x28\x06\x6a\x00\xcd\xf5\x7e\x09\x99\x0d\x2a\xac\xcb\xbe\xae\xdf\x2b\x5d\xd7\xb3\xf5\x2f\x65\x12\xad\x90\x3b\x05\x1a\xe4\x80\x61\x39\x00\xdf\x8f\xc6\xe2\x92\x3f\x7e\x9b\x7a\xd4\x86\xfd\x68\xde\xf5\xbe\x1c\x2e\xa4\x0c\x0b\xca\xf6\xc3\xbe\x33\x7a\xde\x64\xd5\xe2\xb2\x80\x3e\x52\x99\x89\x89\xcd\xce\xc4\x0b\x45\xb3\x63\x8f\xcf\xcf\xe5\x7d\xfb\x3c\xbb\x14\x2e\x91\xde\xe8\xa7\x5a\xbd\x6e\x54\xd9\xb6\x75\xf3\x08\xc7\x79\xcc\x95\x8a\x08\x8c\xdb\xea\x5d\x8f\x09\x9e\x71\x8a\xef\x9b\x7d\xaf\x40\xee\x82\x64\x68\xf0\x65\x64\x48\x27\x52\x61\x0a\x5a\x59\x83\x5c\xd5\xe7\x58\x02\x91\x02\x2f\x2c\xd5\x15\x3a\x7c\x0f\x5e\xfa\x22\x05\x95\x13\xb9\xf0\xfe\xf6\x61\xb9\x78\x74\x0e\xae\x03\xde\x5a\xa4\x80\x82\x4a\x09\xab\xed\xd7\xdd\xea\x1b\x15\x30\xfd\x21\x95\xa1\xe7\xc7\x39\x4d\x3f\xdf\xb0\x9d\x2c\x1f\xa9\xca\xad\xb7\x98\x2d\xb0\x92\x9a\xb0\x3f\x85\x8e\x63\x9f\x8a\xf5\xef\x5b\x3b\x55\xba\x98\x5d\x83\xce\x8d\x76\xc5\x3e\x1b\x76\x97\x75\x35\xf1\x84\x16\x29\x8a\x22\x75\x54\xd3\x07\x7c\xf7\x05\xf8\x33\x64\xba\x48\x4d\x1e\x53\xab\xe9\x30\x72\x10\x98\x6c\xe0\x71\xc2\xfd\xbf\xf6\x23\x59\x94\xdb\xfe\x8f\xfd\xfa\x6a\x09\x95\x26\x01\x46\x7f\x2f\xb3\x38\x8e\x89\xb2\x7d\xb3\xbc\x5f\xae\x6f\x7f\x85\x05\x10\x59\x9c\x48\xaa\x37\x6a\xdc\x5f\xd5\x97\x1b\x84\x22\x8b\x59\x4c\x25\xcb\x7e\xfb\x87\xee\xd4\xe0\xd5\xa9\xa9\x7c\x6f\x68\x7c\x8b\xb3\x04\xb4\xcf\xc6\x1e\x6d\x99\x74\x83\xa1\x2f\xe7\xb4\x85\x44\x96\x25\xba\x28\x26\x7a\x39\x03\xee\x2e\x5c\x45\x96\xe7\x2a\x0b\xec\x0d\xfd\x0b\x39\x9b\xc9\xd3\xc9\x32\x91\x7a\xb1\x9d\xc5\xa3\x5b\xde\x87\x7b\x93\x61\x4a\x29\x74\xbf\x22\xea\xa1\x1f\x78\xf9\x54\x79\x5a\x90\x7e\x0a\x2d\xdf\xd6\x7a\x77\x12\x88\x5e\xbc\xa3\x8c\x5b\x66\xf6\x8e\x80\x23\x94\x96\x5f\x93\x74\x90\x0f\x8d\x33\x11\x67\xd4\xb8\x68\x0f\xad\xf3\x01\xd1\xd4\xb8\xba\x3a\x86\x9f\x29\x8c\xf2\x72\xba\x56\xb2\x75\x59\xef\xf7\xd0\x61\x43\x25\x8f\xd9\xeb\x9c\x49\x91\x91\xeb\xe9\xd5\xd3\xfa\x8f\xd5\xd3\xee\x69\xb5\x59\x3d\x7d\x5f\x39\xb9\x08\x7f\x4a\x95\x08\x22\x78\x1d\xb1\x31\x75\x73\xa0\xc2\x44\x12\x0e\x66\x22\xb6\x92\x6a\xa4\x88\x5b\xca\xd1\x86\x95\xa9\xc2\x08\x3e\x76\xe6\xba\x81\x72\x1f\x0e\x72\x49\xf2\x60\xd6\x98\x84\xd8\x8e\xe1\x10\x58\x84\xce\x93\xb5\xf0\x3c\x75\x2f\x75\x33\x12\x7e\xf4\xa3\x74\x8e\x18\xea\xfd\x8f\xf5\x4c\xf5\x53\x64\x3a\xe7\x84\x1d\xde\x55\xf8\xfe\x65\x50\xe5\xbe\x64\x52\xfc\x77\xfb\x7a\x22\xd3\x32\xcf\xe4\xa0\x15\xb8\xb3\x08\x3e\x6a\xa6\x3e\xd5\xfb\xfd\x2c\xee\xca\x8c\xe4\x45\x90\xdb\xb1\x26\xde\x57\x27\xfd\x8c\xe7\x16\x29\x22\x8f\xb8\xf2\xd2\x3c\xb6\xd1\x81\xda\x99\xe8\xfe\xe6\x47\x60\x06\xde\xfd\xf1\x01\x7f\x76\xe7\x90\x27\x91\x47\xc6\x8a\x93\x10\xaf\x85\x10\xa2\xcb\xaf\x37\xb3\x31\x31\x67\xb6\x59\xe0\x99\x07\x56\xe9\xe4\x12\x86\x4a\xe4\xb1\x4c\x41\x0d\x82\xea\x7a\x50\xc3\x76\x03\x92\x84\x13\xd0\xef\xe4\xe4\x7f\xe7\x12\x8d\xfd\x08\xcd\xcc\x20\xbc\xa7\x87\x8e\x42\x38\x87\xca\xa3\x6c\x90\x2f\x0d\xc4\x9f\x39\x8b\xd3\x0d\x4f\xd3\xd4\x7b\x37\x07\x44\x1f\xea\x33\x25\x1b\x91\x67\x91\x4d\x79\x40\x6b\x12\x88\x3a\xf8\xdc\xe7\x92\x6d\xf5\x7c\x19\xbd\xe0\x2f\x2f\xf2\x2c\xd6\x64\x11\xa8\xcb\xf6\x3f\x27\xd8\x97\xe6\xe3\xaa\xd4\xf3\x6f\xe5\xa2\x08\x44\xd4\x7e\x81\xfa\x56\xb5\x33\xa4\x94\xc8\xf3\x54\xd2\x22\xe1\xfe\x7a\x8d\x6f\xfe\x66\xe4\x80\x41\x0b\x76\xb8\xcd\x2c\xe3\x71\x34\xdf\x3d\xc6\x8c\x12\x91\x33\xc5\x23\xe6\xa5\xe4\x6f\xea\xe6\x75\xa8\x93\xe5\x4c\x23\x91\xe8\x4e\x23\x3d\xa7\x49\x3f\x20\xe7\x20\xf3\xc8\x42\xee\x68\x55\x9d\xb4\xe0\x45\xce\x8d\xa5\x2c\x4f\x84\xee\x2f\xf1\x55\x63\x3f\x73\x04\xd7\x46\x8f\xac\x97\xaf\xb0\x1b\x37\xbf\x72\x21\x75\x6c\x89\x0b\x13\x48\xef\x14\x40\x2d\x72\x10\x82\x5b\xd7\xc7\x6f\x21\xdd\xcd\x65\x21\x58\x10\x8f\x46\x68\x48\x55\xa8\x54\xb8\xac\xf5\xa4\xa0\x94\x4b\x89\xa4\x60\x6f\xca\x41\xa3\xe6\xea\xe3\xbe\xd6\x5b\xfc\xd9\x4d\xa7\xa9\x54\x5a\x8e\x65\x37\x7e\xc9\x8d\x10\xb9\x8a\x18\xc9\x40\x3e\x9f\x08\xe3\xd3\xce\x71\x9d\x22\x57\x26\x57\x01\xf4\x30\x40\x7f\xdc\x51\x9d\x03\x1b\xa9\x8f\x13\xce\x78\x3e\x04\x42\xeb\x90\x04\x22\x3c\x61\xf1\x72\x80\x91\x6b\x95\x2b\x13\x64\x53\xbe\xdf\x3e\xce\x4e\x87\x69\xe1\xd9\x59\x56\x99\xe6\x07\x58\x77\x6e\x7f\x57\x31\x17\xc4\xd5\x75\x8c\xb1\xef\xf5\xd9\xd4\x46\x2e\x40\xf9\x36\x0e\x54\x2d\x69\xad\x9e\x47\xe6\x39\x02\x23\xe4\xa5\xbb\xb8\x4f\x7e\xb0\x49\x0c\xa1\x42\x3a\xf4\x02\x39\xa2\x88\xa2\x28\x19\x5b\x2d\x2d\x8c\x09\x87\xd2\x98\xa0\xd9\xfd\xbd\xd8\xd9\xf7\x79\x3f\xdb\x16\x8a\x88\x59\xe9\x48\xef\x81\x3a\xdf\x16\xa8\x9c\xa1\x46\xb3\x72\xf5\xb3\xec\xa6\x2b\x71\x11\x8b\x98\xf0\xb8\x68\xdd\xe9\x46\xc2\x6f\xb3\x73\x25\xc6\x0a\x32\xed\x9e\x27\xb5\xe3\x22\xcd\x02\x90\x71\xf3\xe8\x83\xca\xe9\xef\x4c\x45\xca\x06\xcf\xaf\x7f\xd7\x07\x59\xce\x15\xbe\xfc\x48\x19\x53\x21\x9c\xba\x2f\x1e\xc7\x79\xf1\x7e\x16\xa9\xce\xa4\xf7\xeb\xf0\xb6\x9c\xae\x54\x3c\x5d\xd4\xdc\xf8\x2c\xb5\xe8\x69\xdb\xe5\x08\x1b\x4d\x91\xf1\xd8\x99\x68\x98\x53\xa5\xaf\x11\xf4\xbe\xac\x70\x10\x80\xe9\x47\x58\x3d\xdd\x67\x74\x0a\xf6\xd3\x3b\x98\xcb\x88\x7e\x88\x41\xf5\xb2\xd8\xef\x6f\xea\x26\x84\x9b\x57\x1f\xb6\xe4\x36\xfd\xe5\xb9\x44\xda\x28\x0f\xd4\x2e\x6a\x56\xdb\xaf\x72\x90\x0b\xed\x0f\x1b\xa6\x07\x44\x9d\x7f\x0f\x86\xe3\x2a\xa3\xda\xb7\xf2\x1a\x38\x0f\xd7\x8b\x75\x38\x68\x0a\x3b\x67\x4f\x47\xf2\xc7\x7b\x2b\xf7\xf8\x8c\x84\xee\x0d\x23\x34\xe5\x52\x77\xf0\xf3\x50\x52\xed\x73\x16\xfb\x9e\xe6\xc4\x6b\x51\x14\x91\x35\x77\x71\x62\xb9\x67\x68\x1c\x51\x14\xa9\x42\xe3\xab\x4f\x1d\xec\xa7\x91\xad\x1b\xc4\x62\x43\xf3\xd5\xa9\x91\x9e\x51\xa5\x44\xc1\xb2\x98\x05\x0e\xd4\x91\xae\xee\xfc\x85\x2b\x98\x32\x9e\x2a\x18\xc2\xd3\xc1\x8d\x62\x3a\x96\xa7\x39\x71\xeb\x08\x93\x6d\x91\xf5\xff\x3c\x61\xc8\x56\xfd\x28\x1e\x45\xde\xf6\xca\x2b\xf4\xf6\x0f\x72\x5f\xe2\x27\x5a\x3f\xe1\xf1\x73\x93\x14\x63\xab\xd1\xf1\x8a\x5c\x88\x88\x53\x15\x7a\x07\x1a\x8f\x63\x95\x4a\x51\x88\xc2\xc4\xe0\x6f\x86\xb3\x29\x98\x70\xb8\x45\x21\x44\xee\x25\x32\x1e\x6f\x77\xa8\xcb\x6e\x17\xa7\xd3\x1f\x2e\xc0\xb6\x2e\x1f\xd7\xcb\x2f\xfe\x63\x10\xc7\xa9\x9b\xaf\xcb\xf2\xf8\x72\x6e\x0a\xe8\xc7\xa5\x8c\xc2\x27\x22\x90\xf6\x1b\xd6\x50\x3f\x29\x80\x83\x64\xa3\xb5\xcf\x76\x04\x6f\x70\x7e\x7b\x01\x34\x95\xec\xea\x79\x14\x43\x4f\x37\x6c\xd7\x05\xa8\x94\x42\x89\xe7\x13\x3c\x9f\x7c\x5b\xa9\x90\x99\x35\x57\x94\x65\xb7\x3f\x1d\xb0\x6a\xaf\x71\x5f\xbe\x0d\xb4\x72\x51\xa8\x48\x51\xab\x08\x28\xd9\x5c\x9b\xbb\xfa\x2d\x98\x40\x8b\x42\x65\xb9\x8c\x43\xed\x99\xd4\x1d\xa7\x3f\x4f\x09\x5d\x98\xf0\xea\x36\xdd\xd7\xfa\xd4\x3c\xef\xa1\x9d\xe5\x64\x85\x32\x29\x75\xd9\xeb\x6a\xff\x71\x8d\x03\x48\xa3\xd0\x2c\xa3\x1e\x4d\xdb\xd5\xc7\x1f\x75\xf3\xea\xff\x8e\x09\xd3\xd6\x16\x72\xbc\x62\x5e\x4c\x0d\x0b\xcc\x18\xb5\x38\x36\x4e\xa3\xab\x39\x4c\xf6\x3f\x8f\x36\x1e\x6e\xbe\xc9\x22\x4a\x7e\x0e\x65\x85\x83\x5e\x4c\xff\x77\x20\x5b\x21\x9a\xf4\x94\x64\x78\xcd\x94\x4b\x2b\x1e\x4b\xb8\x5d\x28\x0e\x1e\x87\xe4\x5b\x96\x2c\xe5\x9a\x30\x83\xce\xa4\x78\x62\x92\x21\x58\x96\x2b\xcb\xe2\x7a\x81\xa6\xfc\xcf\xa8\x3d\xc2\x32\x23\x32\x35\xf0\x68\xcb\xff\x7e\x8a\x12\xfd\xcb\x7f\x7f\x99\x7a\xb0\x5c\xa5\x84\x88\xbd\xfe\xe3\x8f\xdd\xfa\x50\x95\xba\x4f\xed\xfc\x64\x62\x85\xc8\xd0\x85\x0a\x37\xe5\x1e\x2f\xe1\xe6\x05\x2b\x50\x80\xed\x6d\x77\xea\x65\xbc\x41\xf8\x6f\x4b\x93\xe9\xed\x62\x89\xe1\x6e\xae\xb8\x72\xde\xb8\x06\xc5\x18\xe7\xd4\x31\x5b\x5c\x3f\xae\x7f\x78\x00\xa3\x60\x4c\xf0\x74\x80\x85\xfd\x81\x78\x56\x49\x62\x9c\x01\xb5\x79\x2a\x7c\x9f\x19\xd6\x4e\x7f\x80\xe0\x48\xd1\x80\xeb\xc9\x1d\x1b\x2c\x55\x3d\xde\x1a\x98\x10\x8a\xcc\x7e\xfb\xd9\x38\x82\x0f\x30\x21\x70\xa2\xd1\xb1\xad\x37\x74\xe2\xd9\x2d\x11\x86\x51\xb2\xf9\xde\x6f\x3b\xfd\xf2\x7c\x53\x37\xbf\xaa\xe2\x30\x99\x16\x56\xe0\x94\x36\x6e\xca\x39\x7c\x14\x3c\xf9\xe5\x32\x43\x74\xe2\x5e\xdb\xda\x33\xfc\x3e\xe9\x0f\x33\x99\xe7\x94\x21\x9d\x7b\xef\xfb\xe2\x07\x93\x22\x23\x71\x92\x03\xea\xd2\xf6\x87\x5b\xa7\xb6\xe2\x0a\x9f\xb3\x33\x2a\x13\x76\x0d\x6a\xf1\x53\xc5\x77\x52\x6d\x62\x2a\xb5\xb7\x68\xa1\xf5\x97\xd2\x5c\xac\x93\x4c\x0d\xe4\xfc\xe7\x4c\x4a\x45\xfa\x7b\xac\x9e\xc7\xeb\x37\xd3\x99\x85\xaa\xb7\xd8\x3d\xdc\x6c\xe7\x44\xd9\xe9\x7d\xd4\x79\x4c\x32\x85\x2f\x7d\x3a\x32\x44\x16\x4c\x2b\xd4\x03\xf3\xeb\x0e\xde\x3f\x3e\x5b\xac\x99\x36\x40\x93\x83\x16\x6b\xbf\x45\x5d\xc0\x8d\x31\xe4\x06\xdc\xea\xbf\x7d\x41\x4f\x5f\xf2\xdf\x68\xe2\x98\x40\x4b\xf7\x65\x35\xac\xa3\x3c\x8a\xf3\xc8\xd9\xc0\x9c\x19\x03\x7d\x82\x72\x0d\x9f\x64\x94\x86\x5d\xaf\x7f\x3c\xec\xde\xcb\x6a\xd4\xe6\xe7\x49\x1c\x09\x27\xaf\x75\x0d\xe5\xfe\xe3\x7b\xdd\x2f\xf2\xfd\x42\x33\xb9\x3b\x3c\xc9\x80\x47\xa3\x28\xf8\x9c\x22\x2f\x78\xc2\x81\xc8\xbf\xc7\xa6\x3e\xd4\x8f\x70\x6a\xc3\xb7\xa4\x51\x44\xfc\xcb\xe7\x7a\xaf\xaf\x51\x51\xb3\x20\x1c\xe3\x52\x3b\x7e\xa3\x03\xa7\x90\x8a\xbe\x3f\x9c\x99\x48\xc5\xae\x19\x72\x8f\x6d\xdb\x87\x6a\x67\xae\xb1\xe3\x26\x1b\xcf\xa3\x8c\x2e\xe9\x50\x56\xa7\xf6\x86\x74\x9a\x56\xbf\xc2\x1e\xf0\x22\x96\xb4\x85\x9b\x7d\x5d\x37\xa8\x37\x27\xf9\xd9\x40\x2c\x32\xd7\xf1\x70\x13\x77\x7a\x9c\x09\x2b\x1a\x54\xc1\x01\x5f\xa0\x7d\x99\x84\x01\x9c\x17\x05\xed\x0c\x67\xe9\xdc\x74\x94\x02\x1e\x08\x7c\x9f\xc9\x7e\x0a\x2e\xb2\x2c\x09\x2e\xf3\xad\xd5\x99\xb3\x1d\xb2\x33\x6c\x41\xd8\xb3\xb8\xc8\x0b\x70\x8e\x3f\xeb\xbd\x93\x97\xba\xad\xbe\x96\xfd\xe4\xfb\x70\x9e\xa8\xd3\x2b\x02\x96\x50\xb6\x0a\x5a\x13\x7f\x9e\x44\x32\x6e\xa7\xdb\xa2\x6b\x23\x8c\x0a\xbc\x93\xe0\x8b\x03\x4b\x89\x38\x4a\x56\xdf\xd7\x27\x1c\x2d\x8a\x1c\x64\x41\xf5\xea\xb6\x82\x63\xfb\x52\x4f\x3a\x0a\x1c\x90\x13\xeb\xe1\x09\x09\x9d\x3c\x08\x48\x5c\x6a\x02\x72\x29\xac\x30\x7b\xd9\xae\xaa\xfa\xf4\xfc\x32\x0c\xbf\x80\x74\xe4\xd2\xe4\x24\xeb\xe6\x0a\x3c\x3e\x22\x5a\x9b\xd5\xf6\xeb\xe5\x05\x82\x2b\x9e\x52\x2d\xb3\xaa\x83\x44\xe7\xe3\x05\x4e\xc4\x8c\x3a\x28\xb8\x96\x86\x92\x2f\x97\xbd\x7d\x66\xaa\x3d\xbb\x1c\x8d\x48\x55\x2c\xeb\xd7\xaf\xea\x66\xa8\x9d\x70\x4c\x33\xab\x23\x65\x37\x21\x8a\x54\x06\x89\xb7\x30\xaa\xc8\x09\xa6\x2d\xfb\xcd\xd5\x82\x2a\xad\x12\xd8\x69\xe4\x8c\xf8\xb9\xb9\xe4\xac\xec\xc1\x91\x5b\x66\x48\x8b\x1d\xc9\x16\xfe\xba\x1a\xc1\x51\x5a\x13\xba\xa0\xfc\x85\x97\xac\x10\xfc\x60\x6d\x0b\x45\x47\x5b\x20\xf7\x36\x4b\x93\xdd\x81\x9b\x88\x59\x6d\xc1\xf6\x09\xff\xd7\x0a\x8b\x4e\xcf\x62\x64\x96\x7b\x26\x00\xe2\x58\x65\xa8\x5d\x90\x89\x44\x77\x6a\xb7\x2f\x0d\xb6\xfd\x12\x1f\x6e\x93\x51\x16\xc7\x7c\xf7\xb1\xff\x2b\xf3\x3a\x21\xa2\x38\xd7\xc2\x93\x29\xaf\x4e\x4d\x85\x7a\x6d\x82\x58\x52\xf8\x29\x22\xca\x54\xe4\x54\x75\xeb\xb6\xec\x26\x85\x2d\x11\xe5\x52\x4b\x4f\x33\xbe\xa9\x9d\x89\xb6\x72\x58\xf9\xa0\x8c\x26\x44\x2c\xa5\xa3\x7e\xbf\xe2\xe6\x88\xcd\xac\x62\x23\x62\x93\x07\x1b\xa8\xb2\x7a\xee\x97\x38\x4a\x88\xea\x41\x51\x54\x88\x24\xc9\xac\x45\x67\x83\x3f\xc7\x9b\xa3\x48\x84\xed\x0a\xf8\xc9\x2c\xc7\xca\x6b\x42\x24\xce\x39\x47\x0d\x70\x96\x7b\xf8\xd9\xef\x0c\x17\x9f\xa1\x48\x63\xa4\x4b\xfe\xe7\x8f\xba\xd6\xd7\x8b\xf5\x5f\xb3\x42\x85\x48\x0b\x45\x5a\xa9\x37\x77\x68\xcd\x1c\x2f\x46\x23\x22\x45\xce\x1c\x33\x66\x83\xfb\xbd\xaf\xad\xcd\xee\x79\x96\x58\xa2\xab\x83\x7f\x6c\xe0\x00\x4d\xd9\x41\x35\xe9\xc3\x8a\x0c\x22\xc2\xa5\x5c\x6f\x7c\x91\x21\x3c\x97\x9c\x21\x55\x4f\x2a\x7c\x27\x40\xe7\x54\x31\x6f\xfa\x65\x39\xb7\x3e\x8a\x8f\x4f\xab\xcd\xe2\x6e\x65\x1b\x7d\xbb\xdb\x87\xdd\x8f\xd5\x6d\x38\x9f\xc8\x52\xe1\x97\xf2\x5d\xf3\x32\x12\x86\x99\x16\x71\x45\x2e\x80\xb6\xac\xdf\x97\x3f\x96\x7f\x3d\x09\x73\x34\x5e\x07\xf7\x85\xfc\x2c\x34\x4e\x80\x35\xa2\x80\x82\x52\x87\xfb\xcd\xe3\x63\x1f\x8a\xd8\x3e\xe7\xfd\xd8\x61\xf2\x93\x7f\xfd\x09\xa4\x85\xf6\x5e\x95\xdd\xf2\xa5\x6e\xf4\x19\xe1\xcc\x8f\xc3\x88\x60\x1c\xd6\xe2\xef\x76\xbb\xde\x1d\xfa\x1f\x34\x11\xf8\x13\x82\x33\x93\x86\x2d\x6d\x31\x93\x53\x13\x82\x0b\xe5\xe5\x8d\x96\xa6\x5c\xb5\x5d\x79\xc1\xb6\x47\x08\x11\x15\xd6\x73\x8c\x84\xfd\xae\x3a\xe5\x3f\x2f\x44\x66\x35\xc0\x4f\x72\x62\x33\x36\x7d\x60\x10\xc5\xbe\x40\x74\x35\x7c\x37\xe4\x40\xaa\x0f\x64\xa0\xb4\xaf\xd5\xeb\xee\x2d\x21\xbf\x75\xf7\xe1\x30\x0e\x0b\x2a\x4c\x99\x7d\xfd\x8e\xcd\x62\x2c\xeb\xd7\x1f\xb4\x4e\x40\x65\xfb\x63\x52\xe3\x16\x52\xe4\xa4\xf3\xa2\xbc\x86\xd6\x7b\xd5\x76\x2f\x65\x7b\x80\xea\xe3\x31\xbd\xf6\xc3\x54\xa6\x98\x6b\x92\x2d\xe1\xd8\x9e\x13\x6a\xfd\x1a\x2c\x14\x03\xca\x16\x4d\x83\x68\x5b\xfb\x3e\xb2\x71\x03\xb4\x52\xca\xed\xf0\x5b\x84\x83\xcd\x91\x6c\xdc\x1b\x86\x68\x8c\x98\x8b\xb7\x46\xbc\x1d\x21\x30\x02\x12\xb7\xdc\x97\x6d\xf7\x08\x65\xd8\x48\x04\x66\x31\x35\x81\x25\xa8\x57\x0c\xc5\x59\x61\xb2\x08\x68\x2d\x7c\x69\xea\xf7\xf6\xc7\x0b\x56\x8e\xad\x5a\x56\xcf\x0f\x75\xb7\xaa\x34\xea\x11\x30\x1a\xa2\xc8\x50\x21\xe0\x56\x8d\x7d\x22\x05\x44\x49\x5e\x78\xd7\x11\xac\xda\xba\xf9\xac\x9c\x08\x51\x1a\x51\xd5\xad\x2b\x8f\x77\xb5\x7a\x25\x12\xeb\x34\xb2\x86\x48\x19\x0b\xf7\xa1\x54\x6f\xf9\x02\x87\x63\xfb\x30\x96\xa6\xbf\x14\x3b\x40\x9c\x39\xa4\x49\x59\xbd\x6e\x70\xef\x0b\xbc\x90\x48\xdb\xe0\x82\xf6\xe0\x64\x1a\xa7\x9f\x4b\x39\x67\x56\xcc\xd7\xc6\xfa\x33\x95\xb0\xcb\x57\x91\x72\x43\xf7\xd9\x20\xea\x38\x8a\x16\xfd\xde\x3d\x2b\xe4\x42\x2a\x18\x73\x1b\x62\xbf\xd5\xf5\xf3\xca\x33\x42\xc2\x08\x9b\x3a\x5b\x9b\x92\x85\x0e\x51\xd1\x04\xd1\x31\x59\x38\x20\x95\x88\x66\x64\xed\xfb\xed\xe9\xf6\x62\x89\x17\xb2\x2c\x4d\x87\xbb\xb8\xf2\xa6\x50\xbf\x5c\xcc\x21\xcf\x18\xf5\xcc\x5d\x89\x7d\x51\x69\x32\xa9\xba\x88\x75\x9d\xfe\xae\x3c\xcf\x55\x14\x14\xe2\x2d\x2b\xfe\x93\xef\xc8\x25\xa1\xf3\xdf\xea\x0e\x1f\x1b\x0c\xfd\x87\xe9\xa8\x42\x58\x0c\x36\x75\x2e\xcf\x10\x5b\xc0\x62\xab\x84\xd2\x67\xc2\xd0\xbe\x5e\x5e\xe7\xff\x5e\x11\x04\x58\x6c\xc8\x12\xd0\x20\xb6\x8f\x4d\x6d\xca\x6e\xa2\xf7\x21\x80\x69\x29\x2d\xaa\x84\x2a\xc1\x4f\x64\xb8\xda\x0e\x47\x2d\x67\xef\xf1\x69\xb5\xbb\x5d\xae\x77\x9b\xdb\x07\xef\xa0\x2d\x80\xeb\x94\x34\x08\xeb\x0a\x57\x21\x0c\x02\x91\x01\x55\x0e\x77\xb6\xc0\xd3\xe1\x72\x0f\xe5\xe1\xb7\x4b\xcd\x41\x10\x4c\x52\x69\x6d\x47\xfd\xde\x0e\x9f\xeb\xe6\xe3\x56\xcf\xaa\x30\x00\xa9\x56\x66\x94\x81\xf9\xcc\xd5\x7f\x23\x14\x42\x0d\x82\xd9\x37\xfb\x32\xc8\xe6\x08\x00\x26\x09\x04\xb6\x3b\x94\x33\x47\x15\x01\x32\x8f\x48\xcd\xea\x76\x83\xf8\xbd\x2e\xd5\x84\xed\x04\x92\x43\x94\x0e\x9d\xeb\xe9\x42\x06\x92\x5b\x4c\xa9\x76\x9c\x97\xc5\x99\x81\xf4\xec\xbb\x40\x80\xb4\xb0\x1a\x1b\x6c\xcd\x58\x44\x6e\x98\x4a\xad\xfd\x43\x43\xe4\x0d\x8d\xcd\x24\x32\x03\x1d\x2b\x9f\xe0\x7d\x6b\xb1\xb1\xb6\xe5\x17\xfb\x25\xa0\xb9\x7d\x97\xb6\x57\x9b\xed\x1f\x71\x38\x01\xb7\xc2\xe3\x16\x12\x4c\xf0\xe3\xd0\x1c\xbd\x40\xc6\x14\xa0\x85\x26\x1c\x11\x51\x8a\xc8\x3f\x7d\x1a\x44\x00\x26\x82\x34\x3b\x09\x52\xb6\x4b\x77\x76\x89\xd9\xd4\xfb\xb0\x12\xa0\xc8\xc8\xfc\xc5\x0a\xd6\x10\xc9\x85\x34\x99\x3e\x0b\xd0\x3f\x99\xc9\x08\x3c\xf7\xa5\x35\xf8\x49\xe4\xcc\xe9\x6b\x63\xa2\x38\xb3\x8d\x30\x53\xee\xf7\x13\x9d\x5e\x01\x26\x93\x31\x09\xb3\xd7\xf8\x73\x54\x8d\x04\xc3\xad\x8a\xea\xb8\x29\x39\x99\xa3\x32\x4a\x32\xfa\xde\xbb\x3a\x6c\x9c\x32\x52\x48\x11\xc3\xf5\xf2\xfb\x78\xce\xc8\x38\xd5\xc4\x56\x36\xa7\x4a\x37\x50\xf6\x41\xaf\x65\xec\x8d\x9b\xf7\x32\x66\xd6\x6f\x64\xb7\xdb\x1d\xfb\xbb\x61\xf3\x62\x77\x30\x49\x20\xd3\x41\x2d\xd1\xd2\xc3\xc3\xb1\x34\xf2\x5a\xd1\x14\x60\x6e\x8e\xe8\x68\x61\x23\x37\x38\x21\x93\xdc\x92\xcf\x70\x04\x04\xbc\x55\x75\x38\xdc\x07\x60\xfd\x6b\xdb\x94\xcf\xfd\x86\x38\x2a\xb7\xc8\x34\x42\x52\x33\x87\x3e\x99\x5e\xd9\x84\x70\x3a\xb1\x64\xc6\x2d\x23\xfb\xee\x76\x71\x75\x7b\x77\xbb\xbd\x5d\x6d\xfc\xa7\xf3\x22\x27\x2e\x93\x2d\x45\x59\x64\xed\xe6\x74\xb8\xbc\x5b\xca\xdc\xa1\x33\xfc\x8c\xf8\xa5\x98\xb3\x90\x85\xeb\xbd\xed\x1c\xfd\xc5\x7f\x29\x73\xf2\xbc\x2d\xee\xf7\x5f\xb0\xc2\x4f\x78\x6a\x92\x29\xcb\xa1\x06\xad\x6f\xad\x74\xe7\x6d\x87\x67\xbf\xed\x1f\x17\x21\x0e\xee\x14\xbc\x30\x3c\xf3\x16\x8e\xd5\x7f\xcb\x0b\x42\xc5\x42\x72\x4c\x29\x36\x75\x7a\x9d\xd8\xdf\xc5\x49\xa1\x45\x72\xc3\x98\x93\xbb\x38\xd6\x4e\x47\xfb\x0d\x9b\x8f\x3f\xd0\x67\x01\x12\x32\xc8\x26\x1a\x85\x07\x28\xf7\xd3\xb3\xc8\xc8\x52\xae\xfb\x28\x1b\x0f\xe5\xa0\x8d\x2a\xa4\x4c\x63\x8a\x43\x6e\x1a\xd4\x93\xf9\x29\x59\x4c\xa1\x8c\xad\xc5\x7e\xb1\xd8\xc0\x70\x50\x24\x1e\x2f\x3b\x80\x2b\xa4\x14\x96\xaf\x57\xb6\x54\x16\xdd\x1c\x41\xe1\x15\x74\x41\xd1\x5a\x48\x15\x5b\x33\x4d\x52\xe7\x1d\x32\x45\x27\xef\x3c\x7d\x08\x2a\x8b\x88\x18\xa0\xf1\x0d\xf7\x75\x1f\x1b\x6c\xbd\xe4\x80\x0a\x9c\xf9\x7e\x98\x95\xe5\xb4\x2a\xe6\x83\xa2\xb0\x3f\x2c\x22\x42\x90\x3f\x62\xb3\x9f\x5c\x9f\x8e\xad\x81\x04\x89\x95\xcc\x98\x7b\x52\xa7\x5c\x64\xd4\x42\xa9\xf4\xd4\x5e\x6e\x36\x53\x74\x6e\x79\x1d\x2f\x81\x6b\x2f\xa4\x16\x1c\xb2\xb0\x70\x0e\x30\x13\x89\x32\x8a\xdd\x06\xab\xf3\x68\xf6\x95\x26\xe1\x56\x8c\xa6\x82\x4a\xbd\x84\x0a\xaa\x34\x05\x66\x14\x27\x9f\xba\x93\x6d\x9f\x8c\xe9\x2a\x2a\x32\x8c\xb9\xde\x84\xab\xac\xdc\x87\x38\xc0\x2d\xcc\x2a\x8e\x23\x8b\xa4\xfc\x2f\x01\x2c\x57\x43\xb1\x6f\x7a\x35\x2a\x4e\x94\xe7\xf2\x3d\x58\x0f\xbf\x03\x56\x63\xe2\xa0\x8a\xc1\x2a\x33\x51\xd1\xe0\xb6\x6d\x4f\xfd\xc2\x39\x62\x6e\xa9\x24\xc7\xc2\x99\xca\x51\xab\x68\xf5\xd3\xf1\xca\xc3\x00\xc9\x48\xdd\xfe\xfe\xf6\x61\xb9\x7e\xd8\x3e\xdd\x5e\x7d\x1b\x0c\x41\x84\x4a\xb9\xa4\xa8\xbf\x6c\x5d\x66\x62\x49\x8e\xfe\x76\xa8\x0c\x12\x0a\x53\xcb\xf6\x3b\x76\x67\x9b\xa2\xca\xa4\x4c\xe4\xa0\x8c\x76\xde\xa0\x55\x99\xe1\x84\xc4\xfc\x82\xa1\xf4\x45\x5d\xf6\x2d\x36\x87\x92\x30\x81\xeb\x3f\xfc\x97\xe5\xb1\x24\x7d\x46\x68\x5b\x6c\xba\x0d\x54\xf8\x75\x7b\xb7\x0c\x37\x6f\x72\xde\x1c\xad\x4b\xb2\x2b\x8d\x8d\xdb\xb2\x2a\x47\xe9\xbd\x05\x82\x7d\xf2\x5d\xfd\x5c\xaa\x19\xe5\x40\x15\x09\xd0\x0c\x59\x3f\xac\xc6\xb2\xd6\xfd\x01\x45\xf5\xa0\x37\xa8\x24\xfe\xec\xf3\xa1\x29\x4a\x5e\xb1\xb8\x10\xc1\x79\xd3\x9b\xd2\x5e\xde\x3b\xa7\x77\x8c\x25\x92\x42\x78\x6a\xfc\xdc\x56\x24\xc9\x5b\x84\xb3\x16\x39\xcd\xae\xda\x6f\xfc\x8b\x59\x07\x5d\x89\x24\x41\x87\xc3\xa1\x7e\x37\x7e\x81\xf6\x02\x1f\x47\x09\x96\x6b\x33\x98\xe3\xcd\xdd\xce\x26\xfb\xa8\x12\x42\x53\x1d\x6b\xd7\x76\xb0\xc7\x03\x8c\x2a\x8d\x6e\x04\x64\xe1\x8e\x7a\x7b\xc7\x7e\x97\x1b\x77\x77\xc2\xd9\xa0\xb0\x65\x77\xbb\x92\xdd\xc1\x41\xd6\x17\xd3\x1a\xdf\x0e\x52\x32\x49\x68\x67\x93\x54\x7c\x7b\x24\xc2\x9d\xff\x62\x95\x19\x91\x8f\x44\x2f\xb7\x9b\xd9\x85\xaa\x3c\x27\x76\x79\x47\x02\x63\xe3\x65\x58\x61\x06\x44\x81\x7a\xba\x5b\x3e\x62\xb3\x59\x6c\xd7\x9b\xaf\x3e\x38\x52\x28\x99\x74\x76\x23\x36\x56\x21\xfc\xa9\x47\x83\x2a\x13\xa5\x24\x21\x6a\x53\xa7\xe6\x8f\x0b\xdc\xa2\x5f\xd6\x41\x94\xe1\xcc\x02\x7c\x1b\xa0\x9b\xd5\x07\xaa\x3e\x3a\x6e\xc6\x73\x4d\x47\x89\xf4\x52\xee\x4f\x70\xd0\xf5\xa1\x1a\xe6\x99\x8e\x52\x4d\xf3\xec\xc6\xee\xac\xdf\xaa\xb1\x5b\xc8\x74\x39\xd1\x91\x8c\x29\x15\xfd\x5e\xe2\xbb\x67\xc6\x4e\xdf\x57\x1d\x49\x6b\xc7\xf4\x80\xb5\x2e\x4f\x87\x07\xec\xde\x87\xae\xb7\x8e\x63\x15\xf7\x9b\xd3\xbf\xfb\xd8\x64\xf2\x1b\x93\x38\x22\x35\xd1\xc5\xf5\xea\x62\x71\xce\x0f\xcb\x03\x2d\xe3\xd1\x8a\x64\x8c\x22\x18\x9d\xe8\xc8\xd3\xc7\x37\xd8\xbc\xf5\xf3\xc7\x56\x6b\x2f\x90\x35\x75\x1a\x6b\xb2\x57\x07\xad\x1f\x29\x4f\xbd\x68\xc3\x2e\x74\x9a\x9a\xd8\x8d\x7b\xb2\x05\xf9\x4f\xee\x4e\xca\x6c\x90\x71\x3c\xb5\x2f\xd4\xf4\x98\xf5\x71\x75\xaa\xa4\x76\x32\xe3\x96\x10\x79\x8d\xfb\x79\x76\xad\xb3\x3c\xa6\x64\x21\xe0\x4d\x69\xeb\x6d\x2f\x08\x03\xf7\x63\xed\x4f\xdb\x59\x5c\xaf\xeb\xd9\x4e\x5e\x3d\x9d\x15\x11\xe5\x9b\x36\x79\x7d\xbe\x2c\xde\xa0\xf3\x4c\x26\x71\x28\x83\xd9\x5f\xfd\xf7\x9a\x01\xba\x88\xa2\x42\x78\x7b\xab\xdf\x2e\xac\xa4\xba\x88\x34\x15\x57\x48\x90\x08\x2f\xe1\x29\x75\x91\x31\x9a\xa2\xd7\xf8\x76\x53\x37\x0a\x07\x79\x61\xa1\x0b\x66\x81\x76\xf5\xa9\xd9\x75\x7f\x43\xd8\xd6\x7f\x4c\x46\xe4\x44\xf5\x19\x42\xf1\xbc\x84\xa5\x0b\x9d\x12\x4d\xfb\x01\xdf\x97\xa7\xe3\x65\x46\xb9\x66\x99\x52\x79\x58\x7d\x7e\xaf\xd5\x2b\x9e\x13\xca\xff\xff\xf5\xef\xf4\x56\x33\x66\xa5\xe2\xfa\xbd\x7c\x04\xb6\xd1\x8c\x23\xa9\x08\xaf\xb6\xcb\xbb\x5a\x51\x95\xef\xe2\x9a\xa1\x19\x37\x94\xb9\xda\xfd\x6f\xf5\x9f\xcc\x4e\x96\xcc\x5e\x62\xe6\x47\x81\xa4\x18\xd5\x99\xea\xf7\x81\xb5\xeb\xcb\x30\x7f\xa7\x18\x0a\x65\x53\x60\x55\x6b\xd4\xb6\x77\xe3\x8e\xf1\xcc\x36\x63\x64\x49\x22\x9e\x9b\x03\x34\xdd\xad\xc6\xaa\x23\x6b\xcd\xc9\xbd\xe4\x0c\x5c\xb5\xd8\xcd\x39\x07\x60\xff\xef\x27\x72\x5e\x42\x73\xc1\x28\x0c\xa7\x1c\xf0\x61\xec\x61\x26\x34\xd7\x90\xd8\x26\xcc\x20\xea\x2c\xb4\x48\x84\x2e\x86\x08\xa2\x3f\xe4\xd6\xba\xd6\xa7\xc6\x1a\xf2\x84\x78\x8d\xcf\x0d\x0e\xd8\xe3\x49\x1d\x48\x43\x6e\x0d\x81\xfa\x2d\xbf\x86\x46\x5f\xd2\x2b\x14\x5a\xe6\x56\x18\xba\xaa\xfb\x24\x7d\x12\x80\x6b\x09\x11\x61\x73\xbf\x2c\xfd\x5f\x54\x51\x90\x24\xd7\x97\xed\xaf\x6a\xea\x5a\x47\xc8\xfd\x57\xf7\xab\xb3\x7a\x81\xb2\xfa\x8a\xe0\xb3\x6c\xad\x63\x46\x5c\x38\x20\x93\xc5\xc7\xc6\xf5\xf5\xa7\x77\x4e\x33\x99\x3a\xe3\xef\x4d\x50\xed\x13\x5a\xab\x9c\xa7\x7e\x45\xed\xc3\x82\x6e\x30\xb0\xf7\xe8\x64\x8d\x59\x9c\xb9\xd2\xed\x8f\xb2\x9a\x06\xec\x1a\x45\x42\x49\xd8\xd3\xea\x61\xe5\xeb\x43\xda\x44\x05\xe1\xbf\xb6\xb7\xc3\x9f\xd2\x84\x4e\x62\x5d\x47\x9c\xd4\x8b\x13\xdc\x98\x71\x01\xb4\xc9\x23\x0a\xc3\xf7\xf5\x73\x7d\xea\xce\xc1\xea\xda\x68\xc5\x46\xba\x3b\x8f\x1f\x0d\x1c\x4a\xff\x50\x16\xc7\x3e\xb7\x2e\xfb\x38\x23\x34\x57\xb4\xc1\x94\x24\xbd\x76\xb4\xc6\xf5\xf9\xdf\x1c\x84\x88\x11\x78\x27\x90\x3e\x18\x0e\x59\x33\x46\x20\x30\x74\x2b\xaf\xca\xb9\xe7\x98\xc0\x18\x62\xca\xba\xdd\x9e\x14\x8a\x54\xbf\x5c\xa1\x30\x56\xd6\x70\x63\x79\xfd\x18\x02\x21\x4c\xb2\x9c\x60\xbe\xff\xc6\xe3\x72\x5f\x9f\x74\xf8\x7b\x1e\x53\x7a\x23\x4b\x7d\x5b\x4d\x8b\xfc\x98\x18\x27\x83\xae\x75\xc8\xc2\x06\xe9\xa5\xc9\x8d\xc3\x2c\x16\x04\x8d\xf1\x70\xc3\xbb\xba\x7a\xee\x43\x65\x7a\x27\x28\x24\xb4\xa4\x0b\x7f\xee\x9c\x33\xb0\xd0\x93\x43\xa9\xca\x20\xd9\x83\x05\x44\xc4\x19\x5c\x2d\x36\xdb\xc5\xf5\x46\x91\xb9\xa9\x8f\x2a\x90\x39\xb6\xf6\x33\x76\xdf\x4b\x8d\xf5\x17\x38\xa0\xd7\x01\x9d\xde\x04\xc6\x73\xc2\x62\x59\x4d\x13\x42\x8f\xbc\x79\x1d\x46\x81\x4c\x5b\xcd\xfa\x06\x41\xbd\x7c\xa9\x47\x07\x9c\xa7\xc8\x33\xf6\x9f\x49\xf2\xe2\x1e\x3c\xde\x1d\x79\x94\x51\x91\xc3\x9c\xf6\x7b\x53\xee\xf7\x0b\xfd\x56\xb6\xc1\x3b\x43\xa0\x88\x15\xd5\x45\x3b\x27\x53\x3c\xfc\x6c\xc1\x44\x70\x81\xfb\xcf\x09\x1a\x9c\x04\xa1\x7e\x90\x60\xa4\xde\x70\x8f\x1d\x68\xe8\xc0\xee\xe5\x67\x7d\x81\xc9\x3b\x8c\x42\x59\x95\x3d\xbb\x6b\x5c\xd5\xf5\xab\x87\x57\x9d\x63\x13\xc6\xff\x9c\x6d\x02\xd8\x2f\xbe\x49\x00\xae\x07\xa8\xf0\xec\xb6\x0a\xe4\xb9\xcd\x9b\x40\x2f\xf6\xfb\xfe\x0d\x0a\x57\x09\x45\x4a\x90\x56\x87\xf6\x7a\x6c\xd0\x32\x58\xc7\xd8\x95\xec\x13\xb9\xf8\x8b\x61\x19\x4a\xa5\x3d\x75\xc7\x52\x69\xfb\xef\x23\xe1\x8b\x8b\xab\x38\xaa\x42\xa9\x91\x6e\xcc\x58\x20\xdf\x8f\xc0\x82\xa8\x88\xae\x90\x4c\x36\x11\x93\xbd\x03\x95\xc9\xe2\xa1\xe0\x44\xd3\xf7\xf2\x8c\xd7\x31\x23\x79\xdf\xa0\xc9\xe0\xa6\xea\xf4\x0b\xfb\x40\x89\xd9\x7e\x75\xd0\xe1\xe8\xb3\x7a\x42\xb2\x58\xc5\xea\x72\x4f\xbe\x58\xed\x11\x14\x5e\xac\x69\xa3\xce\x0b\x96\x86\xe4\xfd\x74\xac\xab\x01\xce\x1a\x7a\xb9\xa8\x8d\x55\x56\xfb\xb9\xeb\x17\xf1\xe1\xd5\xc7\x14\x89\x81\xff\x85\x0c\x0a\x76\x36\x0f\x52\x1f\x3b\x27\xfc\x15\x86\xb1\x1c\x2c\xd3\x56\x9d\xfa\x74\xfe\xb6\x9b\xcc\xa3\x22\x1b\xe9\xa3\x4e\x2b\x5a\x93\x19\x89\x4a\x13\x1e\xb1\x6c\xa9\x5a\x15\x08\x27\x9f\x3c\x62\x34\x19\x6d\x1f\x2f\xd0\x7e\xaf\xcf\xf2\x74\x34\xae\xae\x59\xb6\xbb\x0a\x0e\xb8\x3b\xcd\x9d\xd2\x05\x1a\x25\xb9\xa5\xb8\x80\x6f\x44\xf8\x29\x69\xa2\x54\xc3\xd4\xdd\xbf\xcf\xf4\x47\xb1\xbd\x89\x0c\x52\x82\xb0\x87\x83\xc6\x6a\x0b\x27\x7f\x20\xce\x20\x71\x1d\x13\x4a\x8f\x37\xe5\xf3\x05\xc3\xb2\x7e\x9c\xd5\x66\x27\xa4\xf1\x06\xbb\x31\x55\xda\xb6\x84\x27\x17\x6c\x12\x2e\x08\x39\xfc\x97\x82\xa6\x7f\xaf\x1b\x63\x12\xa1\x1d\xfd\xaf\x6b\x4a\x7c\x9b\xf5\xe3\xfc\x20\x59\x50\xdf\xd2\x16\x76\x97\xcb\x5f\xc5\x05\x26\x8d\x10\x6c\x85\xa9\x24\xa1\xd0\x8d\x6f\x29\xdd\xe1\x1b\x06\x10\x9b\x49\x13\x41\x19\xc0\x1e\xda\xce\xce\xfd\xba\x79\x84\x0f\xd4\xeb\x53\x17\xc6\x80\xa6\xa2\x41\x9f\x75\x50\x9e\x3a\xfb\x5d\x59\x11\x67\x7a\x00\xc1\xf8\xc0\xc9\x64\xc6\xb2\xf0\x29\x39\xb2\xb0\xcd\xcb\xd9\x91\xc9\x79\x24\xad\xc4\xff\xbe\x7c\x0b\x50\x5c\x93\x2b\x20\xfe\xd6\x97\xbb\xab\x71\xb0\x64\x8a\x4c\xbb\x58\xee\x56\x59\xbc\x9e\x0e\x87\x38\x8a\x81\xbc\xdf\xa7\xbd\x9b\xb3\xee\xbf\x29\x94\x7b\x9d\x9d\x3e\x4d\xf7\x32\x2e\x93\x1b\x16\xd9\xd3\x53\x17\x8e\x92\xba\xc1\x1a\xe7\x33\xb0\x94\x61\x85\x35\x33\xd5\x08\xdd\x8b\x25\xad\xef\x4a\x5f\x2c\x35\x3c\xd2\x04\xbf\x31\x88\xcd\x68\xde\xf2\x8c\xf9\x8d\xea\x69\xf0\x43\xf6\x2f\xeb\x70\x72\xae\x14\x01\xca\x9c\x64\xe1\xe2\x19\x2b\xb7\x96\xfa\x33\x89\x28\xa6\x09\x69\x5c\x31\x68\x9a\x9f\xf8\x41\x8e\xab\xff\x5e\x37\x9a\xc2\xbc\xc9\x8c\x11\x45\x4a\x38\xcd\xab\xd5\xf6\xeb\x05\x94\xa4\x11\x32\xa5\xdc\xe6\x19\x3b\xb2\x9c\x9c\x36\x52\x0c\x14\x86\xee\xfc\xbb\x75\xb8\x6f\xaf\xa0\x25\xfd\x0c\x7f\x58\x44\xc4\x63\xb2\x06\x2b\xd3\x1f\x2f\xe3\xa2\x18\x60\xce\xf7\xf0\xf3\xca\xc6\xee\xd7\x67\x58\x19\x23\x21\xa5\xd8\x0f\xf6\xfd\xe6\xf5\xf1\x15\x9a\x37\x0c\x1a\x78\xe1\xcb\xa4\x4c\x12\x2b\x61\x69\xeb\x36\x76\xd1\xa4\xf8\x01\xdb\xee\x52\xba\x6c\x54\x0c\x18\x0d\x25\xab\x2d\x6d\x2a\xb3\x21\xa9\x22\xb6\xa7\x3c\x35\xd5\x0f\x68\x9a\xb2\x6e\xe6\x23\x58\x44\x2e\x12\x74\xd3\x9d\xd4\x72\x32\x2e\x0e\x1a\xc5\x0d\xc5\x07\xa5\xad\x6f\x3b\x03\x98\xd9\x6a\x68\x94\x48\x43\x3e\xe1\x4b\x88\xfd\x22\x34\x7d\x20\x0a\x04\x85\x88\xa0\xd4\xe9\x40\xe5\x00\xbd\x33\x03\xa7\xde\x28\x0d\x64\x2d\xfb\x08\x1f\x8f\xd8\x7c\x2f\xf1\xdd\x1f\xd1\x91\x15\x91\x27\xd2\x5f\x9f\x77\x9f\x01\x83\x67\x13\x50\xf3\x24\x76\x2e\x02\xd5\x65\xeb\x07\x61\x30\x37\xd4\x46\xef\x9f\xdc\x23\xbc\x87\x87\x81\x5c\x50\x91\xd7\xf5\x4b\x6d\x99\xd2\x1d\x33\x59\x4e\x49\xf5\xe3\xcd\x66\xf8\x93\x64\xb9\xf3\x27\xa9\x86\x8b\x31\x06\xa9\xd5\xee\x33\xf6\x6d\x4d\x4a\xcf\x93\x07\x00\x51\xc4\xb8\xb4\xab\xde\x06\x2f\x93\xe9\x21\x8a\x78\x16\x59\x54\x0f\xec\xf7\x58\x3d\xe3\xee\x38\x32\x9c\x84\x28\x12\x89\xa4\xbe\x1e\xbc\x62\xd3\xbe\xb5\xd6\x0f\xbb\x0d\x87\x11\x29\xd6\xbe\x7d\x78\x58\x8f\x56\x25\x88\xe2\x3c\xb7\x98\xa2\x3e\x81\xd6\xb3\x1f\x16\x83\xce\x46\xbc\x2b\xa7\xb7\x19\x0e\xda\x53\x6e\x4e\x47\x6c\xaa\xfa\x0d\xc2\x01\xa9\x08\x97\x1d\x6e\xb9\x0b\x62\xca\xf6\x8e\x88\xba\xbf\x4d\xaf\x2c\x89\x52\x0b\x55\x2f\x9b\xfd\xfa\x18\x7e\x71\x12\x09\xdb\x08\x0b\x7c\xd5\x75\x65\xdd\x62\xc2\x08\xc6\x6d\x00\x6a\x17\xc4\x3e\xec\x1d\x0e\x09\xaa\xe0\x6b\xec\xa8\x66\x8e\xd7\x65\x4b\x65\xb3\x3e\x78\x51\x2f\xe8\xc7\xa5\x71\x4a\x9b\x53\xd9\xd1\x0a\x47\x61\xc3\xec\x1e\xa4\xb9\xad\xb4\xee\x9e\x9d\x28\xce\xc3\xcd\x76\x39\xae\xc0\xb9\x71\x99\xd6\x24\xd3\xb6\x7d\x81\xaa\x6e\xff\xbc\x88\x2b\x3b\xcd\x79\x64\x10\xe5\xb1\xd5\x45\xbb\x5d\xad\x09\xc2\xe3\x7f\x59\x61\xd2\x1c\x47\xf2\xd4\xd8\x06\x66\x42\xeb\xd7\x5b\xb7\x9c\x07\xb1\x78\x88\x58\x0e\xd6\x5a\xf2\x08\xef\xd5\x03\xbe\xff\x1b\x9b\x9a\x54\x67\xfd\x71\x04\x6b\x35\x42\x62\xd7\xb6\x60\xd5\xde\x97\xb3\x75\x05\x22\x66\x52\x12\xb5\x55\x75\xd5\x91\xb7\xfe\x10\x47\x71\x37\x84\x67\x19\x4b\x7d\xca\xf1\x88\x4d\xc0\x4c\x00\xd9\x26\x38\xc4\x5c\x5d\x75\xcd\x89\xf0\xa8\x43\xfd\x0b\x22\x11\xd9\x6e\x8f\x3c\x7d\xfc\x59\x8d\x89\xc4\x93\xc8\xdc\x2d\x2c\x10\x89\x84\x53\xfb\x10\x2b\xdd\x2e\xc2\x33\x16\xdc\xb2\x2c\x9d\xb4\xf0\x78\x2d\x85\x08\x12\x4e\xc5\xf7\xd7\x72\xbf\x77\xaa\x80\xe1\x10\x67\x54\x7c\x6b\xbb\xfa\xb8\x71\xad\x67\x7f\x4c\xa6\x31\x61\x08\xbd\x3d\xc0\xba\xea\xff\x8b\x7a\x5a\xdb\x87\x48\xe5\x36\x74\x03\xad\x37\x5e\xdd\xe2\x42\x88\x06\x91\x62\xc1\x87\xd1\x0b\x4e\x6e\x60\x3f\xa2\x92\xfe\x63\x7a\xe3\x95\xe6\xca\x51\x28\x4e\xc7\xeb\x10\xb7\x43\xa4\xf3\x9c\xc0\xa9\xca\x6a\x7b\xf7\xb1\xe4\x79\x54\x03\x11\xa6\x8a\xae\xbb\xc2\x9f\x5d\xff\x5c\x6f\x90\x50\x3b\xf3\x51\x8c\x53\x85\xc4\x6b\x9c\x9e\xb9\xc8\xd0\x10\x74\x09\xf8\xc3\x7a\xe3\x05\xfe\x2f\xff\x68\xc3\x63\xbb\x13\xe2\x54\x18\x09\x22\x03\x8a\x7a\x5d\x65\x4b\x6d\xf1\x75\xe3\x6c\xe6\xa7\xaf\x8e\x91\x05\x79\x20\xfb\x55\x32\xa4\x6f\x7d\x04\x73\xa1\xf4\xf7\xb7\x20\x16\x10\x47\xa9\x7d\xd0\x15\xbe\x3f\xe1\x71\xff\x41\x3a\x39\x67\x75\xcd\xcf\x3d\xe6\x21\x8e\x18\xa8\x74\xc6\x36\x14\xe3\xf8\x03\xe2\x48\x1b\xe6\xcd\x93\xca\xea\xd9\x0b\x06\x42\x1c\x67\x96\xdf\x8d\x3f\x3b\xac\x34\xf9\xdb\xc1\x18\xd6\xe5\x86\x25\x60\x5d\xfd\xef\xea\xe7\x20\x0d\x75\x99\x2f\x0d\x71\xa2\xb8\xe8\xd7\x84\xab\xed\xed\x18\xff\x73\x36\x4a\x50\x44\xb4\xd0\xfa\x01\xdf\x97\x7e\xbf\xf8\xcb\x82\x2e\x39\x88\x4c\xae\x2d\x4b\xad\x04\x6b\x7d\x44\x67\x1f\x3f\x15\x32\xf1\xcb\x4e\x9c\xe5\x11\x35\x86\x8f\xbe\xfc\x35\x63\x04\x43\x9c\xf1\x4c\xb8\xe5\xac\x5f\x08\xae\xb0\x3b\x27\xa8\x41\x9c\x3b\xb5\xf0\x6d\x7d\x6a\x96\x63\x41\xaf\x0b\xaf\x56\x9c\xf7\xcb\x54\xa8\x1a\x78\x43\xec\xcb\xf7\x24\xd7\x29\x58\x19\xa0\x9b\x5f\x15\x26\x21\x2e\x8a\x28\xc7\x41\xee\x62\x73\xb4\xc6\xfd\xbf\x72\x1e\xef\x3f\xe4\xe4\xc3\x09\xe0\x39\x8a\xca\x21\x2e\x44\x4c\xc1\xab\x17\x57\x79\x5c\xaf\xef\x9c\x4c\x51\x18\x02\x79\xea\x60\x82\xcb\xb2\x2b\xff\x3b\x0b\x61\x21\x2e\x30\x49\x5c\x08\xdb\x07\x82\x4d\x39\x53\xcc\xea\x47\x18\xeb\x7d\x0f\x5a\x93\xfc\x5f\xd7\xa1\x0e\x0e\xab\x17\xe9\x53\x10\x33\x6d\x39\x2d\x65\xdb\xef\x12\x97\xf8\x77\x10\xf3\xdc\xca\x97\x5d\x95\x84\x03\xbf\x1c\x9b\xc4\x5c\x59\xfc\xe2\x35\x56\x3e\x0d\x82\x98\xa3\x36\x16\xf3\xd1\x9d\x9a\x6a\x49\xa5\x03\x02\x10\x36\x63\xb4\xf1\xff\x4b\xff\x67\xba\xd8\xc7\xdc\xd8\xaa\xf4\x71\x0f\x1f\x37\x75\xa3\x4a\xe9\x0b\x9e\x10\x8b\x84\x13\x50\x69\x67\x6b\x4e\xcb\xe6\xe3\xd8\xb5\x1f\xbf\x9d\xd7\x98\x66\x2d\x2f\x88\x45\x6a\x19\xe9\x77\xf5\x33\xc9\xea\xfc\x95\xf7\x65\xff\x89\xc2\xe3\x40\x68\xbb\x9f\x79\x16\x43\x2c\x64\x4c\xbb\x52\xf7\xff\x9d\xaf\x8e\xfb\x26\x28\x98\x43\x2c\x43\xa3\x5e\xba\x72\x1c\xd9\xc5\xc0\x23\xca\xfb\x48\x2c\xe6\x11\xc2\xbd\x02\xc9\xc8\xff\x08\x9a\x06\x3e\xd6\xc6\x93\x3c\xb6\x2f\xd0\x7d\x85\x37\x0b\x63\x9c\x07\x7c\xb1\x42\x49\x12\x11\xa7\x16\x3e\x73\x9d\x83\x58\x1b\x49\x8e\xa3\xfd\x1e\xf3\x80\x3f\x07\x80\x37\xc4\x98\x5a\x5e\x27\x15\xc4\xdb\x17\x0b\xb9\xea\xef\xf5\xa5\xaa\xcd\xe7\xa5\x1c\x88\x91\xc5\x3a\x24\xcb\xb3\x1f\x89\x8c\x11\xe5\x73\xd1\x35\x30\x02\x9b\xf5\x07\x80\x0b\x4f\x6d\x3e\x69\xac\x7c\x26\x1c\x06\x08\x43\x6f\xb7\x8b\x27\x4f\xe1\x80\x89\xb4\xb0\x95\x8c\x39\x17\x0f\x62\x13\x8b\x6c\x58\x67\xa8\xb2\x37\xdb\xc0\x62\x93\x73\x02\x22\xf5\x91\xa6\x0d\x56\x03\x77\x18\x62\xc3\x0b\xa2\x98\x19\x77\x5a\x98\xd5\xda\x21\x89\x40\x42\x16\x2c\x19\xd7\xdd\x0b\x36\x34\xb5\x2f\x7b\x75\x42\x12\xa7\xd6\x53\x72\xfb\xe3\xf6\x7e\x1c\xcc\x27\x09\x4f\xa0\xbf\x3e\xef\x83\xea\xff\x8c\xc8\x9c\xa7\x68\x3f\x07\x9c\x95\xea\x64\x06\xba\x91\x99\xca\x89\x39\xf8\x81\xd0\xec\x3f\xfa\x00\x62\xb8\x90\xa4\x48\x4c\xc6\x7d\x95\xc2\x6a\xc0\x9f\xa3\x57\x20\x61\x45\xc1\xc7\x39\xcf\x99\x8d\xf7\xec\x6a\x18\xb7\xdc\x7c\xaf\xc8\xa1\xbf\xd6\xfb\x7e\xcd\x6d\x17\x95\xde\x22\x1c\x26\x81\x5d\xc2\x95\x95\x96\xb6\x82\x09\x6b\xf3\xa3\xec\x5e\xa8\xbb\x73\xf9\xe4\x82\x47\xa9\x2b\xe3\xde\x34\x88\x57\xa7\xfd\x3e\x9c\x4a\x98\x3c\xb2\xf5\x89\x7d\x0d\xda\x46\x1c\xae\xe1\x3c\x9e\x8b\x09\x08\x88\x5c\x45\x68\x6a\x7a\x36\xfb\x2e\xd0\x91\x49\x9d\xce\x91\x93\xc5\x98\x4c\x93\x44\x45\xaa\x70\x0b\xf9\xe2\x0d\xca\x7d\xff\x8e\x59\x06\xe8\x28\xdb\x86\x44\x81\xa1\x22\xd8\xd5\xe3\x93\x1a\x34\xf4\x21\xd1\x69\x0c\xda\x53\x8a\xd7\xc7\xfe\xbd\xb2\x1a\xfb\xb3\xb5\x65\xc2\x2b\x1b\x0a\xa7\x53\x86\x19\x24\x9a\x15\xd4\xd8\x3b\xd4\x55\xf7\x12\x27\x0e\x26\xe1\x0f\x8a\x82\xc9\x60\x10\x6f\xdf\xc2\xd0\x9e\x85\x44\x9b\x18\xad\x54\xf9\x7e\xef\x42\xba\x51\xbf\x15\x12\x94\x69\x14\xbb\x2e\xe8\xa1\xac\xca\xb6\x23\x99\xe9\xd9\xfd\x40\xa9\x28\xda\x7e\xf8\x7e\xbb\xb9\x5d\x3f\x2c\x17\x9b\xaf\xfe\xfb\x8d\xb6\x10\x15\x0f\x3b\xfc\x03\x3f\x2e\x36\xaf\x21\x4d\x52\xa3\x6d\x15\x0e\x1a\x3d\x48\x03\x40\x9a\x2a\x8b\x9e\x6b\xfb\x9c\xf1\x52\x1d\x1d\xd2\x1c\xac\x83\x38\xe5\x0f\x25\x36\x83\x88\x0b\xa4\x45\x91\x79\x80\xee\xe6\xa5\x3e\xd2\x2c\x76\x8a\x72\x34\x6c\x3c\x45\x52\xc6\x4c\x0a\x83\xc4\xd5\x1f\x0f\xcb\x0b\xf6\x78\x90\xf2\xac\xa0\x09\x10\xc8\xb7\x63\xc8\x2f\xa4\x5c\x66\xce\xad\xb6\xcf\x5a\x51\x97\xa0\xeb\x66\x71\x6c\xea\x37\x20\x81\xd7\x93\x82\xf1\x53\x48\x45\x96\x90\x92\xaa\xae\xb1\xf5\xb5\xca\x65\xad\x5d\x1a\x3b\xf9\x81\x02\x13\xda\xec\xc7\x68\x03\x5f\x84\xbf\x18\x1e\xa4\x10\x59\x36\xcd\x01\xaa\x13\xec\x2f\xc9\x96\x4e\xa7\x7f\x2a\x23\xc8\x9c\x79\xc7\xec\xb2\x65\xac\xb4\xdb\x4a\xbf\xd6\xdd\xfb\xa5\x3b\x23\x99\x76\x91\xdf\x2b\x56\xf7\xa0\x9a\x1a\xaa\xd6\xef\x65\xa9\x8a\x2c\x94\x46\x52\x35\xdc\x52\x43\xfc\xa1\x34\x22\x1d\xf0\xc5\xd3\xed\xbf\xd7\xde\x99\xbb\xff\x73\x46\x0d\xb1\x36\xc8\x27\x8f\x34\x3b\xda\x5d\x18\x96\x69\x42\x34\x1d\xb0\x51\xa7\xfd\x34\x19\x4c\x95\x2c\x8a\x01\xb6\xf9\x38\x2e\xb7\xa4\x9a\x59\x5d\x5e\x0f\x3b\x48\x98\xb3\xa6\x66\xff\x98\xfc\x1b\xa6\xa9\x36\x92\x08\x24\xcf\xa5\xe9\x96\x2f\xd0\x80\xea\x66\x00\x0e\x1e\x46\x5a\x64\xd9\x1f\x64\x7c\xb0\x85\xfd\x2b\xce\x1e\x26\xe6\x2c\xb6\xfd\xb2\xb7\xfa\x15\xbd\x21\x84\x63\xe0\x5e\x48\x32\x52\x54\x9a\x30\x46\xfd\x30\xab\x19\xd6\x8e\xf1\x67\x90\x9a\x28\x4e\xcd\x14\x93\x38\x12\x7e\x85\xd4\xe4\x9c\xcc\x31\xbd\x2e\xca\x90\xec\x67\x51\x1c\x91\x85\x45\xc0\xdf\xf9\x8e\x26\x64\x51\xc2\x08\x17\xea\xcd\xa7\x1f\xea\xe6\x00\xfb\xfe\xe4\xfd\xce\x72\x86\x57\xfd\x75\x3a\x97\x45\x89\xad\x6d\xdc\x81\x86\x5f\xb0\xf6\x5c\x44\x35\x99\x5e\x59\xc4\x19\x29\xa9\xae\xfe\xdc\x2c\xeb\xb2\xda\x20\xa9\x77\xfb\x83\x26\xa6\x37\xdd\x89\x1d\xed\x2f\x11\x9e\xfb\x51\x92\xb6\xf1\x23\x36\x4e\x5e\xfb\x1e\x9a\xd7\xd1\x33\x1c\x5e\xcc\x2c\x4e\x80\x68\x51\x20\xeb\xb7\xfe\x5a\xcb\xc3\xe9\x30\xa5\x79\x40\x16\x67\x59\xe2\xc2\xfe\x07\x7c\xb7\xcb\x45\x3c\x7d\x2b\xb2\x58\x1b\x12\x39\xb4\x4d\xc5\x9d\x01\x85\xbb\x63\x53\xd7\x66\xd7\x4c\x02\x9b\x2c\xc9\xc1\x0b\x87\x6e\x1b\xc4\xdb\x99\xdd\x36\x64\x89\xe1\x5e\xf5\xe5\x86\x3e\x5b\x79\xfb\x3f\xc8\x32\x29\x88\x90\x62\x05\x65\x6e\x17\x87\x75\xd0\x7d\x83\x2c\xcf\x52\x32\x04\xbb\xaf\xab\xba\xc1\x99\xfb\xa8\x1b\x53\x24\x39\x81\x3e\x06\xe9\x4a\xbf\xc7\x66\x45\x9e\x53\xc1\xa9\xac\xfa\xf7\xe4\x22\x1e\x0d\xb2\x82\x45\x36\xff\xaf\x97\xf5\x61\x76\x6e\x16\xf3\xdc\xed\x34\xea\x01\xde\x2e\x57\x20\x32\x96\x45\xe4\xda\xa2\x4b\x0a\x5c\x07\x1e\x1c\x64\x0c\x18\xb1\x76\x0f\xa7\xae\x3c\xc3\x7f\x7d\xc6\xfd\x83\x8c\x6b\xe5\x15\xcc\xb0\xd2\xdf\xfa\x39\x15\x24\x44\xc6\x13\xcd\x0d\x17\x45\x46\x97\x40\x3c\x98\xb2\x1e\x89\x3e\x40\x26\x34\x2a\x0c\x48\x74\xdc\xd7\xc7\x03\x56\xa4\x77\x3b\x69\x46\x40\x26\x30\xf7\x9a\xbe\x8f\x75\xbd\x1f\x57\xfb\x86\x4b\xed\x5f\x56\x08\xe0\xe0\x41\x3a\x67\x94\xfd\xf8\x1f\x05\xb9\xe5\x18\xb8\x2a\xde\x6f\x67\xf1\x81\x1b\x27\x65\xe2\x95\xff\x6f\x3b\x3c\x2c\x2a\xbd\x20\x0e\xef\xa5\x9a\x48\x26\x0d\x50\x2f\xe0\xf6\xfe\x7a\xf5\xa7\x6f\x40\x4f\x3a\x2f\xb3\x0f\xa8\x94\x51\x9e\x24\xcb\xa6\x7b\x79\xc4\x66\x1b\xe2\xd5\x4c\x15\x40\x1b\xd8\x76\xb5\xb8\xdf\x7d\x7b\xb8\x79\x5a\xad\xfe\xbd\x0a\x07\xc1\x2a\x81\x8c\xf4\x79\x3f\x9e\x46\x16\x3a\xb3\xaf\xd1\x79\x41\x35\x88\x6d\x89\xdf\x8e\x77\x75\xdd\xe2\x2a\xa8\x54\x42\xa6\x99\xd2\x4e\xbc\x89\x1a\xf9\x0e\xbc\x75\x5d\xab\x89\x01\x1e\x64\x1a\x12\x52\xe9\xbd\xff\x58\xe8\xb7\xfe\xe1\xd8\x78\xfe\x7b\xf2\xab\xb2\x41\xa6\xd1\x86\x88\xdf\x57\xdb\xa7\xdb\x5f\x8e\x34\x90\xd8\x91\x25\xbe\xef\xc8\x0a\x69\xef\x81\x89\x76\x73\xda\x39\x85\xdc\xc9\xd5\xe5\x11\xa6\x0e\x7d\x52\x51\xa5\xda\xae\xe2\x93\x82\x7c\x1e\xa7\x92\x20\x08\xcb\xfb\x2b\xd7\xa1\xe9\xdf\x85\xf3\xa6\x18\x90\x02\x68\x36\x10\x89\x97\x6b\xc2\x51\x66\xfe\x44\x89\x8e\x89\x5a\x70\x84\x8f\x91\x99\xc0\x2f\xd3\xe5\x3c\x37\xd2\xc3\x58\x2d\x0d\xf6\x72\xad\x20\x2f\x22\x41\x2d\x85\x45\x53\x62\x3b\x4e\x5e\xf2\x22\x11\x94\x07\xf4\x61\xe8\x24\xe6\xcf\x8b\xcc\x72\xd7\xfa\x0b\xa7\xc9\x9e\x84\x23\x02\xb9\x97\x66\xd8\xbc\x40\x33\xcf\x55\xf3\x02\x2c\x87\xa7\x32\x6d\xff\x4a\xdd\xa1\xf1\x6b\x66\x2e\x98\xa6\x1d\xb9\x3c\x1c\xf7\x3b\xd0\xba\xb4\x9b\x97\xed\x37\x87\xef\x16\x9c\x53\xe5\x68\x8b\xcd\x21\xfc\x4d\x72\xea\x7b\x1f\xb0\x85\xd6\x33\xdf\xc2\x31\xeb\x5b\xd3\x92\x46\x76\xdb\x9f\xb1\x6c\x69\x49\x58\xce\x35\x6a\x21\x17\xaa\x20\x8d\x85\xc5\x49\x75\x27\x7b\x37\x7c\xb1\xfa\xef\x74\xe0\x21\x87\xc8\xe2\xc6\xbd\xca\xd1\x2f\xe1\x59\x90\xf7\x19\xb0\x77\x16\xb9\xee\x5f\xdb\x32\xf4\x5b\x72\xc8\x90\xb8\x91\x8b\xfb\xab\xc5\x66\xb3\xb8\x5e\x3f\xed\x36\xdb\xc5\x1f\xab\x70\x3c\x97\x71\x3c\x84\x08\x1b\xf2\x4e\x0c\x07\x65\x4c\xb0\xdd\x37\xfb\xeb\xc7\x48\x58\xc8\x95\x92\x89\x0d\x8e\xd5\x1e\xe1\x6f\x13\xe5\x46\x1b\x6a\xae\x94\x95\x62\x97\x75\xfd\xfa\x54\xd7\x87\xd9\xd2\x34\x52\x52\x9f\x25\x09\x17\x4f\x66\x04\x25\xb9\x0f\x78\x6a\x5c\x64\x1b\xe2\xc9\x5c\xab\x24\xf3\x66\x49\x16\xb9\x69\x9f\x9e\x7b\x2b\xa7\xb3\x4b\xab\x9c\xda\x47\xb2\x9f\xb3\x4e\x2e\xa7\x1d\x03\x79\xfd\x38\x64\xf4\x8d\x87\x52\xaf\xcd\x6c\x0e\x20\x0a\x42\x11\x6c\x3a\x78\x45\xef\xd7\x7d\x56\xac\xfd\xe4\xb2\xdc\x39\x4c\x9e\x53\x67\xf4\x50\x56\xdd\x54\x15\x6a\xb8\x41\xbf\x82\xde\x43\x6e\x78\x64\xb2\x80\x64\x5c\x68\xfd\xcb\x8a\x67\x11\xb1\x82\x76\xc7\x3e\x90\xea\x17\x99\x1b\xbf\x03\x0d\x43\xe2\xc4\x4a\x1d\x35\x48\x41\xe3\x64\x19\xf2\xbb\x6c\x11\xf3\xcc\x6a\xe5\x55\xf8\xf5\x54\xe9\xa0\x72\x07\x45\x92\x02\x4d\xb7\xd0\xc1\x1b\x0b\xdc\xfb\xce\xd7\xf8\xdf\xfe\x01\xcf\x77\xb6\x22\xd1\x92\xe2\xa2\x7f\xfd\x95\xcc\x03\x14\xa9\x60\x84\x17\xa9\xf7\xda\x4a\xc9\x52\x5b\x7f\x5c\xcc\x2d\x52\x81\xda\xa6\x8b\x06\xaf\xcb\xb7\x9d\x46\x75\x39\x1e\x29\x52\x40\x92\x40\x7b\x38\xbd\xe2\x45\x97\x03\x28\xb2\x38\x4b\x83\x51\xbc\x8f\xe1\xab\xf9\xa0\x44\x3b\x02\x6d\xd7\x40\xd9\x79\x5f\x4a\x28\x32\x69\x01\xe8\xbb\x37\x6c\x4a\xf3\x61\xab\x01\xfd\x0a\x77\x8d\xa6\x81\x59\xa9\xb2\x28\x74\x21\x2c\x63\x69\x83\x30\x37\x4f\x85\x82\xe9\x84\x36\x0e\xbf\x2c\x9c\x1d\x36\x52\x0e\x3a\xb6\xd6\xb8\xcf\x6a\xf9\x4f\x07\xf2\xd8\x50\x45\xfe\x61\xf5\xe7\x76\xf7\xb8\xde\xee\x6e\x9e\x16\xcb\xdd\xd5\x7a\xeb\x7f\x35\x37\xa9\xa7\x6d\x2c\xb6\x65\xd7\x7d\xcc\xe6\x8c\x48\xd2\x8c\x8d\x70\x6d\x57\x30\xdc\xfc\x3e\xee\xa1\x3c\x3f\xad\x26\xfb\x46\x01\xa8\xac\x93\xd8\xbe\xae\x7c\x55\xaa\x26\x23\xf0\x30\x99\x64\xca\x6c\xec\x7e\x6a\x5f\xe8\xb3\xb7\xf3\xd9\x2a\x31\x42\xd2\x42\xb7\x11\x99\x1e\xb9\x31\xf6\x07\x81\x00\x12\xc7\xa6\xac\x54\x79\xdc\x4f\x20\x28\x50\xa8\xa8\xb0\xf4\x37\xd2\xbf\x7e\xb4\x05\xee\xd9\x06\x5e\x20\x32\xd2\xb6\xfc\x7e\xbb\xd9\x2e\x82\x5a\xe1\x63\x7c\x79\x9b\x2c\x10\x05\xdd\x89\x7e\xfa\x9d\x8e\x53\x0e\x16\x14\x26\x09\x4f\x84\x98\xda\xfd\x43\x5b\x6d\xbf\x8e\x6a\x03\x85\xc9\x35\x2d\x09\xbb\xff\x05\xf5\x7a\xac\xbb\xb9\xc9\x2d\x14\x46\x4a\x32\xdc\xd9\x90\x13\xd3\xac\xff\xc7\xa2\x34\x27\xf9\xac\xdd\xce\x58\xdf\xd9\xe9\xa7\x59\xa4\x22\xe3\x35\xd5\xea\xe7\xe7\x3d\x9e\x6b\xc4\xf4\x83\x02\x3c\xc5\xdd\x58\xbf\x73\xb3\x58\x64\x94\x71\x3e\x8e\xba\xb7\xd3\xe9\xc4\x62\x1d\x39\x18\xdc\xff\x9e\xda\xee\x06\xa9\xcb\x7a\xe9\x6b\x92\xc8\xd0\x32\x6c\x03\x8f\x8d\x07\x0c\xfc\xed\x8d\x66\x76\xb6\x9c\x6b\xaf\x62\x07\x07\x24\xc5\xfb\x66\x24\xc2\x75\x49\x53\x06\x58\xc2\xad\xd9\xfe\x3d\xbc\x62\xbf\x2a\x4e\x74\xe8\x3e\xed\x06\x4c\x2f\x38\x4d\xb4\x77\x46\x0d\x10\xbd\x69\x43\x95\xa5\x79\xa6\x5d\x89\x7b\xfd\x5e\xa1\xde\xbc\x94\xc7\xf6\xea\xe3\x62\x79\x8b\xa5\x3c\xa5\x25\x6d\xc0\xbe\x9c\x6d\x27\x61\xc2\xb0\x94\xe7\xa4\x3d\xb6\x28\x3b\x68\x47\xde\x9d\xc0\x52\xc3\x88\xfd\xf0\xe5\xe1\xe1\xfe\x57\x4b\x68\x9f\x84\xb1\xcc\x63\x4b\xaf\xa1\xc3\xd6\x9b\x47\x5f\xdc\x45\x58\x26\x2c\xe7\x97\x52\xc6\xfa\x38\xd7\x80\x3c\x0f\x08\xc6\x58\xb6\x7f\x4c\x13\x36\x96\x81\x15\x2d\xb6\xe0\xd9\x3e\x97\xc7\x4a\x77\x67\xe5\x69\x96\x17\x26\x12\x83\x9d\xf4\x60\x3e\x06\xac\x48\x24\xbd\xc8\x8f\x4f\xeb\xfb\xd5\xf6\xeb\xea\xdb\x66\xf7\x7d\xfd\x6d\xf9\x75\xf5\x64\xb5\x02\xc2\xb8\x42\x19\x70\x1c\xed\x51\x80\xec\x8e\x32\x19\x91\x86\xac\x47\x63\x86\xbf\xab\x94\x6a\xa6\xfd\x53\xbd\x3e\x35\x44\xa6\xef\x7f\xe6\xa4\xb0\xc4\x78\x2c\x69\x23\x2e\x47\xd5\x50\xc6\xd1\x3a\xcd\xd2\xaa\xd6\x3c\x20\xea\x27\x34\x0d\xb6\x2f\x9f\xdc\x58\x11\x21\x99\x36\xdc\x2f\xfe\xdc\x2d\xb6\x5f\x57\x0f\xb7\x8b\xd0\x6f\xec\x0f\x3a\x1d\x5b\xe2\x93\xcd\x5f\x7c\xc1\x0d\x39\x1e\xd7\x47\x2b\x37\x5d\xe1\xa7\xc2\x87\xfe\x13\x22\xcf\x5d\x6e\x45\x54\x2c\x7b\x59\xa3\xc5\x88\x41\x64\x05\xc7\xf0\x0d\xf6\x27\xe8\x48\x59\xd7\x1f\x8a\x95\x15\x08\x18\x01\xd2\x81\x41\x62\x48\xee\x01\x0f\x65\xb7\x84\x23\xc8\x72\x5f\x76\x1f\xd6\x11\x62\xf6\x26\x66\xe3\x94\x97\x81\xa3\xd5\xb7\xd8\xdd\xd7\xd5\x2b\x4e\x44\x8d\x81\x01\xe3\x29\x78\x83\xe1\x73\x5c\xc1\xaf\xda\x53\x93\x6f\xe1\x8a\x72\xf0\x3e\x5b\xa6\x2a\x50\xb8\x1c\x15\x0b\xaa\xb3\xca\xb2\xc3\x9f\xfb\xf2\x0d\x87\x03\x2a\xa5\xd2\x6f\xff\x99\xd9\xe6\xc0\x54\x8c\x82\x36\x4e\x94\x78\x9a\xec\x6e\x4c\x99\x84\x00\x24\xef\x58\x4e\x34\x69\x81\xe9\x44\x00\x04\x24\xf7\x89\xfa\xd4\xfe\x18\x82\x26\x31\xff\x5d\x50\xcc\xbe\xc8\xe2\x70\xa3\x4d\x96\xa4\xde\x71\xc0\xb6\x88\xfa\xd3\x5d\x8e\x5b\x98\xc9\x0b\xaa\x96\xdd\x86\x22\xb5\x67\xea\x03\x33\x2c\x25\x32\xb2\xff\xda\xed\x99\x23\xbc\x1f\x28\x59\x56\x84\x9e\x5a\x30\x8b\x9c\x70\xe0\xc6\x37\xdc\xa8\x94\xa8\xb9\x9b\x3e\x6d\x7f\x1b\x6a\x2b\x3c\x42\x96\xe4\x4e\xa5\x8e\xaa\xd9\x36\xee\x5d\xb4\xce\x73\x2e\x0c\x33\x99\xeb\xbc\xdc\xb6\xcb\x7d\xdd\x0e\x87\xe2\xd8\x90\xc0\xc1\x75\xf9\x5c\x92\x4a\x77\x5b\x0f\x0c\x2c\xe0\x89\xb1\xb5\x29\xcb\x47\x1c\x4c\xc5\xa7\x4f\x90\x27\x46\xc7\x6a\x64\x47\xd2\x74\xa6\xde\x97\xb3\xce\x25\x4f\x33\xa0\x3e\xfd\x66\xbb\x78\xda\xee\xb6\xde\x49\x1d\x78\x1e\x47\x84\x20\xb8\xab\x9f\x3f\xab\x51\x4d\xef\x20\xcf\xa5\x74\x17\xfe\x39\xc1\x6c\x04\xa3\x05\x5e\x64\x09\x29\x04\x6e\xef\xaf\x96\x9b\x0e\x2a\x0d\x8d\xfe\x9b\x20\x35\x5e\x14\xc6\xbf\x36\xdb\x97\x51\x05\x6c\xde\xb6\x9e\x7e\xc8\x14\x64\xe3\xd5\x61\xdb\xed\xa2\x5d\xff\xcf\x15\xb4\xa5\xda\xfe\x1c\xda\xc2\x6e\x28\x4b\x45\xac\x42\x03\xb4\x6e\x5a\xdf\xad\x0e\x03\x32\x6d\x48\x2c\xab\xae\x5f\x4f\xb3\x06\x2d\x67\x79\x4e\x10\x9c\xdb\xe5\x7a\xb7\x7a\xb8\xde\x6d\x6f\xef\xc3\x8d\xe5\x29\x23\x2e\xf0\x11\x3e\x9a\xba\x5f\xad\x87\x76\x0b\xe7\x1c\x28\x70\x0c\x95\xeb\xe0\xf0\x37\x3d\xbf\x60\x09\x29\x96\xdf\xd5\x6f\xb8\x28\x9b\x65\x6d\x0c\xce\x9f\xbf\xe0\x19\xa9\xfb\x55\xb5\xc6\xf6\x3b\x84\x02\x28\x17\x18\x59\x00\x18\xd9\x4d\xde\xd7\x1a\x37\xf5\xba\xda\x7f\xac\xbc\x69\xf8\xa6\xab\x8f\xed\xa2\xd2\xab\x56\xc1\x11\xbf\x5a\xcb\x97\x25\x54\x57\xf8\x6d\x34\x4b\x21\xc9\x2c\x19\x81\x6c\x7d\x2e\xe0\xa4\x81\x4b\xce\xe9\x1e\x6d\x56\xcb\xf5\xc3\xf5\xee\xfb\xfa\xee\xdb\xfd\xca\x7a\xf7\xfb\xb3\x48\xa5\x89\x4d\x3c\x76\x16\x9d\x75\x81\xdc\x48\x15\xa7\x14\x3e\x3e\x2c\x16\x57\x5f\x17\xe3\x15\x89\xab\xd8\xb6\xe6\x68\xd7\x1e\xd1\x24\x81\xeb\x28\xa5\xda\xc7\x3f\x4f\x50\x75\xce\xa2\x33\x1c\xcb\x0d\x49\xbf\x75\xa8\x5e\x1e\x9b\xfa\xad\x0c\x2c\x11\xe0\xc8\x05\x29\xb6\xdf\xa3\x56\x41\xa4\xa2\xff\x33\x46\x5e\xfe\x22\x0d\x7f\xd4\xa9\x35\xd4\x23\x8e\x78\xa8\xc5\x5f\x9e\xfa\x7e\x53\xe3\x86\x1b\x69\x85\x55\xdf\xca\x16\x9b\x76\xc2\x3f\x01\x6e\x50\x73\xe1\x51\x77\x97\x53\x3a\x11\x45\x71\x6c\xc2\x2e\x37\xaa\x05\x4c\xc2\x14\xee\x47\x3b\x79\x16\x07\x54\xa9\x0f\x87\x53\x55\x76\x1f\xbf\xc4\x41\xfc\xcd\x30\xf5\x32\x70\xeb\x97\x31\xad\x88\xe3\x88\x94\xec\x1e\xf0\xfd\x1a\x3a\xf0\xb0\x88\xd3\x67\xd0\x2f\x11\x0b\x2b\x09\xf4\xcf\x6f\xab\xd5\xc3\x76\xe5\xb4\x2f\x40\xc4\xca\xca\xd3\x54\xf8\xb3\x73\xc5\x8a\x41\x7b\x03\x44\x6c\x12\x70\xeb\xec\x8e\x58\x29\xbb\x99\xda\x09\x88\x24\xcf\x30\xf3\x94\x71\xff\xb9\x44\x26\x45\x36\xa1\x14\xfc\xad\xfa\x97\x48\x33\xf9\xff\xe3\xec\x4d\xb6\x1b\xc7\x91\xef\xe1\xd7\xa9\xc5\x6f\x41\x70\xc6\x52\x96\xe5\xb4\xba\x3c\xb5\xa4\xcc\xac\xea\x3e\x7d\x74\x02\x40\xc0\x66\x25\x45\xaa\x49\xca\x4e\xf5\xd3\x7f\x87\x01\x80\x93\x28\x67\x7d\xff\xda\x38\x4b\x00\x67\x0c\x31\xdc\xb8\x97\x68\x06\x0f\x90\x91\xc4\x54\x2f\x2d\x34\xb1\x85\x79\xe8\x19\xd2\xea\x2f\xd9\x2b\x18\xe6\xb0\xf5\xa7\xf1\x00\x1e\xa2\x24\x8f\xb0\x7d\xd2\xaf\x83\x0a\x06\x77\xcb\x91\xc7\x18\x3a\x63\xbd\xfd\xc8\xc6\x10\x78\x3a\x1d\x76\x99\xfc\x51\x1b\x6d\x63\xd7\x57\x86\x74\x9b\xa4\x8a\xf9\x7c\x6a\xb6\x1f\x88\x5d\xe4\x8d\x47\x4a\x90\x39\x69\x99\xdc\x86\xa5\xa1\xe3\x61\xcc\x63\x3f\x16\x16\x4d\xfa\x90\xfd\x77\xc6\x15\xe2\x71\xaa\x22\x83\x9b\xa9\x4f\x48\x6a\x96\x14\x30\x1d\x4e\x45\x9e\xf0\xc8\x28\xf6\xca\x4b\x25\x6a\xe0\x69\x98\x3a\x89\x17\xca\xdd\x0f\x31\xf3\x03\x7f\x81\xa7\x71\x64\x18\x67\xdf\xb2\x02\xb2\x42\x76\xc7\xa7\x29\xd1\x69\xd7\xf0\x8e\xb6\xf0\x69\x51\x89\xac\x31\x4b\xec\x1d\x0e\x44\xb2\xc7\x0f\x47\x3e\x65\x57\x4f\x71\x8b\xef\x6d\xdf\xd6\xb1\x99\x7c\x49\x48\x52\xb2\xd2\xf3\xf2\x75\x91\xe7\xed\xf2\xe9\x2e\x0d\x10\x99\x92\x7f\xc8\xf3\xc5\x23\x36\x6f\xa5\x62\xbf\x82\x3d\xba\x43\x65\xe0\x92\x0d\xe6\x3b\x62\x35\xc7\xfb\x01\x1c\x30\xa6\x4f\x29\x84\xbb\xaa\x0a\x91\x02\x5d\x7b\x61\x65\xd8\x2d\x9c\x2b\x1e\x03\xd2\x5c\x6f\xf4\x53\x2b\x20\x65\xc1\x9e\x13\xf2\x9e\xbf\xf9\xd7\x9e\x0e\xfd\x50\x32\x57\x2a\x56\x15\x73\xa8\x03\x8e\xda\x94\x7d\x15\xf8\xb1\xcb\x0e\x56\x19\xf4\x33\x24\x0b\xd7\xd2\xa3\x6c\xa1\x09\x2e\x75\xb4\x7f\x53\x6f\x76\x3a\x47\xe7\xcc\x00\xae\x51\x52\x52\xab\x36\x7e\x4e\xe7\x9d\x5b\x0a\x16\xd7\x4b\x1b\x59\xd7\xf7\xb2\xc1\xaf\xeb\xdb\xfe\x67\xa1\x0d\xea\x99\x32\x5d\x4e\x7c\x6c\x32\xe8\xb5\x36\x1a\xc5\x2e\xcf\xfc\x49\x36\x0a\x3c\xee\xd1\xc2\xf6\xb8\x7e\x5a\x3f\x7e\x7d\xdc\x3b\x46\xd9\x97\xaf\x9b\xe5\xfd\x62\xbb\xda\x2f\x1e\x9f\xbf\x3e\xed\x46\xb4\x70\x00\x9e\x30\x71\xb8\x57\x53\xe2\x7d\xbe\x19\x02\x76\xc0\xd3\x82\x6a\x28\x8a\x9e\xaf\x67\x9c\xd9\x03\x06\x68\xa8\x51\x1e\x97\xbb\xee\x37\x44\x4a\x58\x1d\x8c\xb2\x02\x39\xe9\x03\x00\x0a\xf8\x9e\x41\x6d\x91\x5a\xf0\xaf\x33\x97\xee\xa8\x50\x47\x7d\xd0\xc4\x71\xdd\x8f\x0a\x16\xe6\x2d\x4a\xf0\x53\xe3\x18\xd7\xc7\xbc\x5d\x1c\x2d\xdd\x48\x77\x37\xc2\xd4\x81\xca\xd3\x61\x83\xff\x7d\x84\x4a\x74\x92\x7d\x6d\xa3\x20\x23\x27\x87\xba\xf9\x9e\xe5\xb9\xe3\x28\xe9\x9a\x4d\x5c\x90\x2c\x41\x3f\xde\x1b\xd0\x04\xc9\x93\xc0\x2b\xfa\x9e\xe7\x11\x78\xa7\x3b\x5d\x10\x4a\x32\xe8\x8c\x2b\xff\x8f\xc7\x99\xd2\x27\x80\x00\x4c\xf1\xa3\xe1\xc7\xbb\xf2\xb5\xc3\x58\x12\x52\xa2\xbd\x32\x09\x85\xdd\x64\x84\xeb\x27\xf0\xf1\xf3\xf3\x8d\xbb\x62\x14\x32\x12\xba\x58\x57\x1a\x8a\xbb\xaa\xfb\x39\x0e\x0c\xb0\x3d\x87\xec\xb0\x2d\x65\x06\xb9\xa5\x7f\xe9\xd8\x1f\xae\x05\xea\x4f\x73\xb8\x4e\x77\x5a\xae\x09\x5b\x7f\x20\x15\xae\xbb\xec\x1d\x5f\x72\xe8\xde\x56\x04\xe0\x0f\xa5\xf4\x17\x85\x7a\x2a\x9b\x4c\x9f\x3f\xcf\xc0\x41\xac\x42\xca\x94\x97\x56\xd3\x67\x5f\xd1\x4e\x7a\xbb\x35\x90\x01\x2a\xa3\x3f\xef\x89\x32\x78\x58\x16\xed\xee\x6e\x34\x6b\x21\x49\x53\x0a\x57\x3e\x66\x45\xd3\x67\x11\x67\xaf\x9b\x70\x2d\xe3\x4e\x2d\x6a\xc0\x80\x30\x5e\x86\x20\x0d\x74\x64\x39\x38\xea\xd3\x01\x7f\x9b\x59\x1d\x21\x8d\x13\xa2\x1f\x7a\x3a\xfd\x05\x43\x5a\x36\x00\x1e\x68\xca\xf0\x9b\x31\x71\x63\xee\xbc\x5b\x9c\x87\x40\x37\x77\x00\x18\x04\xd0\x11\xce\x2f\xd5\x50\x96\x65\x64\xae\x7d\xbe\x2d\x00\x97\x11\x91\x25\xb7\x43\xec\xb9\xfa\x3d\x73\x71\xbd\xd1\x8a\x67\xfb\x02\x47\xf2\x69\x77\x4f\xdd\x14\x17\x10\x9a\x72\x1c\xc8\xb1\xb6\x48\x3f\xdb\x24\x99\xd7\xd5\x55\x7f\xc0\xf1\xf9\xd4\xbc\x96\x53\x79\x12\x00\x19\x29\x17\x65\x25\x4b\x7b\xa8\xbf\x02\x20\x2d\xb8\xf1\xd8\x3e\x9f\xc9\x05\x77\x73\x48\x31\x1d\x08\x2b\xc1\xb5\x3d\x1d\x9e\x4e\x87\x39\x15\xae\xf9\x59\x83\x09\x90\xcf\x9b\x0d\xca\xdd\x5d\x93\xe6\xc4\xe5\x00\x4a\x3d\x42\x71\xbe\xa8\xaa\xeb\x5e\xbf\x86\x90\x90\xc4\xeb\xe7\x6f\xa3\x82\x33\xd0\x68\x1c\x81\x7f\xf6\x58\x65\xe1\x05\x48\x09\x55\x9a\xa6\x26\x1f\xb7\xb1\x54\x81\x1d\x0b\xd7\x6b\x1f\x91\x14\x9e\x8c\x65\x4f\xde\x51\xb4\x03\xf4\x65\xa2\xcf\x0c\x82\x25\x21\xb1\xe5\x9c\xe8\x04\x3f\x26\xad\x3e\x53\x36\x0a\x56\xc8\x55\xf3\x36\xb0\x80\x84\x0f\x9c\xee\xf0\x50\xaa\x4c\x9f\xff\x71\xaa\x0c\xbb\xc8\xf8\xf8\x40\x08\x73\xcb\x65\x03\xb9\x8d\xbe\x7c\x29\x21\x5f\x17\xeb\x9b\xa5\x3b\x53\x68\x19\xcf\xf6\xba\xac\x34\x66\xcd\x38\x45\x3d\x7e\xeb\x22\x0c\x4d\xf4\x74\x91\xe7\x4f\xf8\x51\x2f\x7b\x4f\x48\x84\x69\x18\xcb\x4e\x67\xf5\x01\xea\x26\xa1\x3c\xcd\xe4\x04\xd2\x23\x74\x61\x7d\x12\xaa\x6c\xa7\xf9\x48\xc3\x7d\xc6\xc6\x15\xa1\x84\x28\x9a\x88\x3a\xfe\xd1\xde\xdd\x04\x02\xd5\xbb\x18\xa9\x3b\x52\x21\x95\x4d\xd6\x6f\x65\xd5\xdc\x9c\xba\x2f\x19\x31\x41\xd6\x23\x9c\x0e\xdd\x4f\xa9\x91\x99\xd9\x66\xc5\xeb\x29\x87\xea\x76\xf7\x6d\x10\x74\x15\x91\x40\x02\x5c\x1c\x73\x68\x48\x61\xd6\xfa\xa6\xe3\x3d\x44\xc4\xb1\xa0\x35\xf3\x08\xe7\xed\x49\xd4\xb2\xca\x8e\x17\xac\xe5\x20\xe2\x34\x49\xec\xf0\x74\x15\x7f\xf3\xee\x9c\x88\x11\xa8\xac\x6f\x75\x55\x75\x1a\x44\x6c\x35\xb6\x25\x1c\x29\x34\x54\x96\xf9\xb3\x9e\x5e\x51\x6b\x66\x25\x3b\xee\x4e\x39\x8d\x84\xdd\x1f\x57\xae\x99\x44\x09\x45\xb1\x9c\xfb\xbd\x5a\xbf\x24\x49\xf2\xf9\xb6\x2c\x92\xd8\x58\xa6\xc7\x32\x3f\x1b\xd1\x43\xac\xea\x71\x56\x40\x24\x89\xc9\xb5\x02\x85\xbd\xbe\x16\x59\xb3\x21\x01\xfd\xd1\xc2\xe7\xfa\xa2\xb4\x50\xd5\xbf\x50\x36\x2f\x86\xf1\x7a\xd2\x27\x0d\x91\xb2\x0c\xc7\xec\xfd\xa7\xbb\x46\x1a\x81\x13\x20\x25\x39\x3b\x87\x93\x18\xae\xdf\x22\x4d\x0d\x43\x7d\x85\xed\x12\x3f\x18\x17\xa9\xc5\x34\x83\x21\x1e\x99\x24\xb4\x04\xf7\x22\xde\x36\x3f\x57\xc7\x37\xa7\x7b\x3f\xbe\x25\x1e\x70\x62\xc7\xf9\x82\x43\xd5\x12\x10\x3c\x34\x44\xf3\xa0\x94\x79\x6d\x33\x7c\x5d\x20\xb8\x12\x91\xa1\xbb\x29\x7e\x74\x71\x07\x01\x49\xa0\x3a\x8a\x50\xc8\x2f\x34\xfc\x40\x40\x8a\xc4\xc5\x2c\xaa\xf2\x07\x56\xeb\x0e\x10\x29\x80\xa7\x54\x64\x75\x2a\x28\xf7\xdf\x7e\xf6\x7a\x5d\xac\x6a\x59\x95\x1f\x9f\xb2\x8b\x81\x10\xb1\x11\x4d\x16\xa7\x73\x51\xaa\xe9\xba\x22\xd2\xd0\xe3\x3d\x06\x6c\xb5\xbb\x1f\x9b\x92\x42\x68\x9f\x2a\x23\x76\x08\x07\x32\xe5\x3f\x45\xb3\x4d\x06\x93\x14\x42\x2a\x27\x71\xf1\x96\x35\x4b\xa2\x06\x19\xdf\x9f\x62\x09\xb3\xc9\x45\xda\x00\x66\x63\x15\x93\x43\x7c\x41\x20\x19\x53\x0b\xda\x4b\x11\x81\x40\x0b\xea\x31\x6c\x0a\x19\xc1\x2e\x47\xc7\x4a\x4f\x04\x4c\x0f\xd9\xe1\x48\x36\xf7\x98\x67\x64\xf9\xcc\xd4\x38\x4a\xe6\x49\xaf\x97\xe0\x9a\x02\x66\xe6\xb6\xf9\x38\x1c\xff\x71\x27\x8a\x8c\xb6\x31\xa1\x37\x1c\xd9\x0e\x48\x16\xa7\xa6\x3a\xb5\xfd\xdd\x0c\xf3\xae\x09\x7c\x4a\x32\x91\x30\xe1\xbb\xc9\xa5\x7f\x9a\xd3\x93\x7e\x84\x64\x48\x99\x9b\x7d\xa9\xca\x43\xb9\xcc\xcb\x8f\xe2\x93\x54\x9c\xf4\x53\x13\xd4\xee\xd5\x72\x14\x12\x30\x75\x7a\xa9\xe1\x62\x2e\x7d\x9e\x2a\x39\x8c\xbd\xb8\x9b\xf6\x81\x51\x7a\x9f\xe8\x33\xad\x9c\x60\x4f\xfe\xdd\xb6\x23\xf9\x87\xc6\xf1\x75\x53\xd3\x49\x43\x4e\xb7\x82\xc9\xfb\xfd\x77\xf4\x9f\xb9\xad\x45\xfa\x5a\x3b\xde\x85\xc7\xac\xc8\x6e\xce\x23\xb9\x24\xdb\x29\x60\x01\x5a\x26\xfa\xd6\x02\x76\xac\x44\x93\x4e\x52\x52\xfa\x91\x88\x3c\xbe\xfe\x59\x92\x1a\xce\xec\x02\x2b\x43\x3f\x0a\x2c\x89\x30\x21\x66\x09\x9b\x32\x39\x5d\xe4\x01\x61\xae\x96\x2f\xf3\xda\x1f\x97\xe1\x6f\x19\x31\xe1\xd6\x89\x0e\x19\x4d\x30\x9f\x17\x53\xe6\xd4\x9a\x5d\xfd\xdc\x33\x87\xfe\xfb\x3f\x5d\x82\x72\xb4\x14\xc9\x08\xe2\xc4\x0a\x8b\x1d\xb0\x68\x2c\x6b\xb1\x5b\xca\x65\xa4\xc3\xd0\x92\x47\x19\x94\xf2\x5d\x59\x19\xf2\x81\xf9\xf1\x15\xfb\xe8\xf9\x94\x29\x1b\xc4\x93\x07\xb9\x37\x19\x27\x46\x42\x8f\x88\x8c\x3e\x86\x00\x77\x99\x04\xa6\xee\x76\xbd\x79\x7e\x6a\x9c\x4a\xfb\x95\x57\x9b\x70\x4e\xf6\x77\xc7\x57\xf8\xc7\xd8\xcb\x9e\xdd\xbc\x64\x22\x13\x01\x23\x00\x80\x13\x15\x1b\xf6\x77\x92\x56\xdc\x6e\x23\x32\x55\x86\x83\xe5\x0b\x36\x0f\x50\xa8\xf5\xc5\x24\xb3\xfd\xb8\x1f\x52\xf1\xec\x23\x55\x4c\x5c\x79\x43\x3c\x34\x42\xa6\x96\xf5\x76\x18\xfb\x74\xfb\x96\xe4\x31\xf3\x02\x77\x9f\x35\x7e\xad\x1c\x1e\x4c\x72\x21\x0c\xfd\x1d\xfe\x6c\xb6\x68\x4a\x92\xbb\xb0\xbc\xe4\x2a\x88\x1c\xe3\xbf\x09\x5c\x5a\x49\xee\xf1\x7d\x82\x97\x12\x3d\x12\xc5\xff\xbe\x64\xef\xb8\xe8\x88\xaa\x41\x42\x12\x5a\x66\x7e\xca\x99\xed\xeb\x8f\x81\xe8\xcf\xfc\x6b\x05\xae\x68\xde\x10\xb2\x8a\x98\xdc\xdd\xf0\xf3\xfb\xb5\x3f\xf9\xcf\xd8\x09\xfd\xb7\xff\x1f\x77\x38\xa8\xd0\xae\x14\xdf\x31\xeb\xcb\x8e\x27\xb8\x20\x09\x56\x2f\xd2\x80\xc2\x56\x9d\xcd\x26\x45\x28\x8d\x78\xb9\x34\xd9\x38\x43\xab\xeb\x5a\x65\x18\xa4\x7e\x37\xf5\x49\xe7\xce\x19\x75\xc3\x98\x8f\x54\x32\xa0\x24\xef\xfe\xb6\xcc\xde\xc0\xa6\x20\x52\xd7\xa8\x62\x4a\x89\xee\x9e\x77\x8b\x87\xfd\xf6\xf9\xe1\xd6\x8a\xfe\x6c\xbf\xbe\xbc\x3c\xfc\xb9\x7f\x58\x3f\xae\x9d\x9f\x25\x31\x95\xdc\xe6\xa7\x5c\xa5\xfa\x68\x02\x23\x0f\x63\x1b\xdf\x3f\xc0\xcf\x51\x2d\xcb\xf8\xc5\x6a\x4f\x50\xda\x03\xd4\x21\xa3\x74\xd0\xde\x38\x01\x73\x49\x49\xa9\xc3\x84\x5c\x2c\x0a\x93\x52\x52\x71\x62\xd6\x48\x1d\x0a\x92\x4a\x1d\x2c\xfe\xe3\x59\x33\x87\xb0\x56\x1e\x98\x3a\xb2\x76\x55\xb4\x09\x5b\x8a\x26\x5f\x50\xc1\xcf\xec\x1d\x8a\x05\x06\xac\x61\x73\x2c\xbf\x0a\x2b\xba\xa3\x52\x5f\x48\xb7\xc2\x99\xf2\xd2\x49\x07\xe9\x6b\x3b\x91\xe7\xf3\xc2\xca\xf7\x92\xd0\x6c\xa6\xaf\x86\x33\x81\x82\xdc\x9f\x0f\x64\xe5\x7b\x9c\x85\x23\xd2\xa2\x9b\xb3\xfd\x07\xce\xb2\xfd\x81\xf2\x03\x70\x62\x8e\x66\xae\x3d\xeb\x0d\xb4\x16\xc0\xdd\x3c\x3f\x20\x28\x3f\x8c\x68\xb4\x5e\x04\x0e\x95\x9f\x24\x3c\xed\x75\xc3\x6c\x96\x7c\xde\x1b\x50\xa1\x17\x90\x48\xcc\xef\x7f\x2e\xaf\x74\x9c\x0f\x22\xa8\xd0\x53\x9a\xb9\x4a\xe2\x42\x67\xaf\xa7\x39\x26\x00\x15\x0a\xa3\x69\xaf\x33\x51\x16\x20\x65\x66\x2a\xe4\x6d\x6b\xe4\x49\x5a\xe7\xc5\xe9\xec\x48\x2d\xd7\xc5\x6a\x77\x3f\x64\xb5\x04\x15\x85\xd2\xac\x25\x04\x14\x31\x40\x0c\x92\x31\x1e\xc6\x9f\x54\xc4\x35\x51\x93\x2d\x4b\x09\xcb\x32\x77\xc4\x2d\x2a\x0e\x12\xe2\x93\x7c\xcf\xaa\xe6\x84\x06\x6c\xf2\x52\x66\x7d\x1e\x56\xc5\x11\xa3\x57\x99\x97\xaf\x8e\xac\x98\x78\x01\xe6\x55\x0a\x40\xc5\x00\xd4\xdf\x52\xb4\x90\xaa\x86\xea\xa8\xd8\xdb\x76\x99\x1a\xf6\x99\xab\x91\x34\xdb\x33\xd1\x3e\xad\x07\x4b\x38\x1c\x21\x7b\x75\x9c\xeb\xd3\xc1\x38\x39\x2a\xf5\x34\xed\xa6\xdf\xcb\x2a\x57\x23\x52\xbe\x39\xa3\x45\xf1\x48\x50\xca\x5a\x54\x99\xc0\x0e\xd6\xa0\x78\xaa\xc8\xf7\xa8\xdf\xca\x0f\xf2\x7d\xba\x06\xa9\x8d\xe0\x0b\x95\x7c\xba\x18\x6d\x85\x6a\x59\x66\xe3\x54\xc7\xfc\x90\xe2\xca\x23\x2d\x91\x43\xa9\xb0\x3b\x29\x40\x42\x4c\x3e\xf8\xf3\x98\x55\xb8\xa8\xeb\x52\x66\x17\xb5\xa4\x0a\x90\x27\xbe\xc1\xc7\x42\x96\xd7\x53\xbf\x54\x09\x16\x10\xc4\x7f\x93\x1d\x4e\xe5\x7b\xf6\x52\x95\x1a\xeb\xba\xac\xa6\xe7\x91\xa0\xc8\x6a\xb4\x0c\x38\xfb\xf7\x4b\x0a\x1c\x25\x95\x09\xef\x56\xa8\x10\x0f\x83\x50\x89\x52\x9e\x69\x39\xc0\x4f\x13\x6a\x6e\x4d\x9a\x6e\xb4\xa8\x94\x51\x8a\xc8\x92\x28\xbc\x4c\xd4\x41\x40\x29\x0c\x53\x6b\x58\xb9\x95\x6e\xb8\x43\x28\x0c\x39\xa5\x7a\x8c\x5f\xd1\x9a\x2e\x93\xd4\xb1\xc2\x84\x99\x1e\x8e\x1a\xff\x36\xab\x50\x36\xb7\x28\xb2\xe9\x02\x85\x3c\xf4\x79\xaf\x1c\x70\x8d\x3b\xea\xca\x24\x46\x91\x78\x7d\x76\xea\x9f\x27\xa2\x38\xcf\xcf\x9b\x01\xd5\xc5\xe4\x08\x1d\x04\xc6\x8f\x6a\xa0\xc1\xad\xa9\x43\x9c\xbc\x58\x9d\x70\xd6\xc9\x8a\xde\x62\xdd\x54\xe5\x79\xe0\x51\x8c\xef\x5f\x8b\x90\x58\x32\x57\x39\xb6\x6f\xb9\x1f\x85\x5a\x18\x81\x07\x53\x8c\xeb\xe4\xb4\x40\x69\x25\x43\x87\x12\x6d\x9d\x18\x54\x16\x1b\xfe\x1d\xb2\xc6\xe0\xf7\x27\x37\x84\x5e\x9a\xf0\xa0\xcf\xb7\x2c\x0a\x75\xa9\xfa\x05\xc8\x3c\x8f\x10\x92\x06\x45\x05\xc5\xdd\xa9\x18\x19\xee\xa3\x49\x85\x4c\x98\xfa\xee\x63\xd9\x55\xcd\x4e\x3a\x68\x83\x8a\x21\xed\xcd\x69\x31\x0a\xfa\x91\xa4\x30\x5e\x5f\x6a\xd4\x7a\xbe\xdb\x06\x8f\xe1\xe4\xe6\x03\x66\xa8\xbc\x6a\x6c\x8c\x1a\x65\xcf\xdd\x3f\xbb\x3a\x60\xe0\x23\xcd\x21\xe2\x6e\xbf\x2f\x8b\xd7\x9b\xac\x18\xc6\x2a\x31\xf2\x80\x80\x51\x5f\x2c\xf5\x53\xf7\x3b\x26\x06\x30\x55\x41\xd1\x2c\xcc\x97\x1d\x9f\x3a\x8e\x53\xdf\x21\x5f\x4f\xe7\xcb\xd2\x0f\x4c\x22\xa4\x20\xa3\x53\x71\xbf\xd9\x2c\xea\x4e\x65\x08\x30\x81\x80\x75\x5a\x09\x8f\xd8\xc0\xe4\xf0\xd4\x93\xc4\x22\xfb\x23\x93\x46\xaa\xac\x75\xb2\xd6\xcb\xe7\xc9\x6d\xa4\x89\x47\xaf\xe4\xf1\xaf\x32\x2f\xb2\xee\xfe\x53\xed\x3b\x5d\x6f\x97\xdc\xdb\xe1\xcf\x86\x64\x64\x86\x2a\xa0\x80\x10\x26\xbd\x61\x70\x98\x1a\xb6\x08\x52\x44\x38\x0a\x0a\xc9\xb2\x4f\xe4\xa0\xf0\x74\xd2\xbe\xa7\xaf\x35\x56\x4e\x10\x6b\x7b\x2d\xeb\x88\x82\x45\xb4\x1a\x9a\x5a\xc1\x6d\xd3\xae\x47\xaf\x96\x5f\x9b\x45\x17\xf3\x74\x34\x86\x44\x68\x24\x22\x68\xa1\x5f\x5a\xc4\x74\x57\xd5\x81\x22\x16\xe1\x50\x4f\x79\x9c\x82\x9e\xde\x07\x1a\x49\x0d\xb2\xd6\x27\x0f\x2c\xa5\xe4\x36\x3b\xbe\x95\xed\x2e\xf1\x39\x86\xd0\x1d\x85\x7e\x60\xdf\xe2\x1d\x3a\x9d\xa7\xd1\x79\x55\x60\xb2\xa4\x0d\xd6\xcd\xba\x5e\xf6\x75\xa2\x6d\x0b\x30\xe7\xbf\xc1\x14\x57\x8e\x2a\x02\xca\x79\x3f\xc1\x21\xeb\x10\xa7\xe3\x41\xd0\xee\x82\xa6\xfc\xba\x9d\xf2\xad\x57\x39\xf4\x02\x51\xa5\x66\x16\x54\x65\x33\x20\xdd\x1d\xd8\x94\xa8\xb8\x34\x65\x7a\xc6\x34\xdc\x96\xb9\xba\x2b\xab\xdd\x5b\x56\x7f\x81\x2e\x8c\x80\x3a\x8d\x8c\xce\xdb\xc1\x21\x08\x47\x7a\x4f\x6d\x87\x98\xa2\xcd\x2f\x7f\x3c\x38\x13\x66\x72\xa7\x5a\x46\x94\x14\xf9\xfd\x2c\xb0\xba\x87\x42\xe5\xd7\xea\xc8\x50\x6b\xa0\x60\xf7\x6a\x77\xbf\x7f\x5c\x3f\xed\xbf\x3c\x2f\x1e\xec\x85\x34\x8b\x34\xb9\xf8\x86\xe1\x8b\x98\x6b\x46\x52\x4a\xae\x5b\xc2\x5d\x4d\xe0\xed\xd3\xd6\x0d\xdd\x51\x52\xcc\xf5\xd4\xc8\xec\x37\x58\xe4\xf9\xcb\xc6\x01\xaa\xb4\x1f\x08\xb3\x26\xef\xee\x57\x9b\xcd\xea\x76\x28\x7e\x0a\x3a\xe0\x5e\xe0\xb2\x8f\xad\x8b\xda\xbe\xb1\xae\x0d\xe3\xd8\x2e\x10\xa6\x96\x62\x3d\xf1\xbe\x74\xc8\xd2\x44\x75\x17\xfd\x44\x8e\x0d\x74\x18\xfb\x54\x93\xd9\x5e\x68\x83\x43\x17\x44\x87\x52\xc5\xd6\xf8\xbc\x87\x7c\x2a\x93\x00\x3a\x8e\x8c\x6b\x6a\x84\x0d\x0d\xf1\x33\x15\x51\x0c\x93\x9b\xfd\x58\xd0\xb1\x34\x71\x00\x32\x66\xf3\x2b\x30\x82\xff\x9b\x5c\x43\x1b\x89\x0b\x33\x3a\x09\x45\x33\x83\xdc\x1a\xb8\x56\x3a\xf1\x0d\xcc\x28\xab\xbb\x65\xc0\xb6\xa4\x7e\x44\x7c\x79\x5d\x1c\xe2\x97\xea\xec\xc3\x0f\x99\x0a\x45\x81\xf2\xdd\xfa\x76\x31\xc4\xb8\x6b\x1e\x25\x91\x25\x42\xb5\x3e\xed\x6c\x64\x5c\x73\x95\x72\xe9\x80\x00\x59\xd1\xd8\xa1\x35\x67\xd0\x6b\x08\x12\x2a\x8a\xfb\xe3\x71\xf1\x87\xbb\x0e\xc4\x4a\xd9\x05\xd3\xee\x4d\x0f\x65\x3d\xbd\x08\x70\x83\x56\xeb\xd8\xf7\xe6\xec\x01\x2d\xb8\x66\x93\x45\xfc\xe6\xbc\x56\xeb\x66\x72\x37\x93\x8f\x21\x3d\x88\x86\x44\x72\x63\x0d\xcd\x71\x5f\xe5\x33\x2a\xbb\xd3\x90\xe5\xc3\xd8\x50\xd7\x9c\x24\x3d\x03\x6a\x3b\xe3\x69\x97\x34\x63\x62\xd6\x17\xd3\x2a\x0a\x53\xd5\xf1\x80\x55\x30\x4c\x06\x5c\xc5\xc0\xb8\x63\xa5\x91\xed\xa5\x82\x4d\x22\xae\x77\x16\xf7\xe3\xf6\xf1\xd7\x25\xdd\x5a\xfb\x9e\x13\xe4\x79\x80\xda\x45\x1b\x1d\x63\x9b\xf0\x3c\x1e\x51\x05\xe4\x9f\xe5\x69\xa8\x36\x23\x3c\x0f\x18\x4d\xff\x2e\xdb\x39\xe5\x47\x1f\xde\xa7\xf0\x3c\x85\xf4\x8c\xa7\xc2\x6d\x37\xdf\xcb\xea\x07\x56\x0b\xad\x51\x36\x63\xee\xa9\xc9\x91\xed\xfb\x71\xf5\xd0\x8b\xdb\xdb\x8d\xbb\x03\x16\xb1\xc4\x0d\x3b\x72\xcb\x46\x49\x01\xe1\x11\x51\x97\x33\xa1\x8c\x32\xe1\x84\xc3\x41\x78\x3e\x4b\x3a\x14\x46\x81\x4d\x5f\x72\x36\xfc\xa8\xc2\x0b\x40\xd1\xc3\xf6\x77\x3f\x17\xb2\xb0\x9d\x63\x2f\x25\x34\xe6\x43\x99\x43\x8f\x9a\x16\x5e\xe2\xa5\xb4\x63\xdc\xc2\x6b\xd3\xfd\x16\xa4\x26\x3d\xf9\x06\x15\x06\xdd\xaf\xa1\x07\x76\x42\x90\x80\x41\xeb\xf3\xee\x4a\x63\x6d\x8d\x6f\x2c\x49\x34\x01\xf2\xbe\xbf\x41\x07\x3d\x11\x5e\x92\x9a\xa8\xf7\x75\x22\x0e\xdb\x11\x42\x41\x5f\x17\xea\x1f\xf7\x5d\x6a\x55\x78\x22\x56\x91\x21\x0a\x39\x1e\xcb\xaa\x59\x1f\x8e\x08\xf2\xed\xd0\x01\xfd\x84\x27\x84\xa2\xfb\x6e\x5f\xc0\xae\x5c\xd4\x32\xcb\x2c\x0f\xc0\xf8\xe3\x49\x1f\x0d\xef\x11\xd6\xcd\x5e\x40\x9d\xc9\xf6\x15\xef\x3e\xca\x05\xdd\xda\xee\xad\x2a\x3f\xdc\x39\x65\x14\x53\xd5\xc3\x6a\x14\xb7\x1c\x2e\xb7\x93\x91\x21\x53\x33\xd9\xb3\x22\x6b\x48\x7e\xe4\xd7\xd1\x57\xe1\x49\xee\x0b\xa3\x5d\x5a\x9b\xc9\x56\x56\x77\xe5\x25\xb0\xbc\x5b\xdd\x85\xa7\xbc\x80\xb2\x15\x1a\x3b\x11\x7b\x45\x88\x87\xfa\xce\x30\x6c\x57\xbf\x75\x3d\x4d\x15\x49\xcf\x6c\x7b\x83\x05\xea\x4c\x66\x50\x65\xfd\xe7\x41\x16\x28\xa7\x99\x8e\x64\xd8\xef\x3e\xca\xae\x51\x19\xf1\x17\x12\x20\x29\x7f\xcc\x94\x3d\xdb\x8e\x3a\x49\xc2\xc0\xa1\x1a\xd5\x20\xff\x27\x98\xe7\x01\xa1\x4a\x8e\x65\x9e\xc9\x0c\xeb\x71\x63\xc2\x8d\x48\xa2\x83\xc8\x3f\x4f\xb2\x5d\x82\x79\xc2\x70\x98\xdf\x67\x55\x79\x3e\xfd\xc8\x88\xc1\x19\x9c\xbe\x93\x60\x0c\x62\xca\x3b\xaf\x36\x5f\x9e\xd7\x4f\xdd\xaf\xa8\x62\x7b\xe7\xfd\xf2\x7f\x57\x56\xdf\xb3\x42\x95\x1f\xb3\xab\xa9\x60\xbe\xe7\x39\xb1\x24\x2b\x9a\x3a\x51\x18\x1b\xdf\x99\xcf\xe4\x00\x42\x4c\xf2\x4b\xd7\xc0\x8c\xee\x08\x30\x9a\x26\xfb\x1e\x5c\xf8\x64\xc4\xd5\xd7\xc5\xf1\xd4\x4c\xcf\x8f\x46\x75\xa1\x2e\xcb\x8f\x37\xe8\xde\x59\x10\x79\x86\x0d\xa4\x26\x9e\xaf\xf2\xe7\xd9\xb5\x84\xcc\x60\x0d\xcb\xa2\xfd\x92\xeb\x7a\xdb\x88\xae\x29\x08\xdc\x5e\x74\xc9\x74\x39\xb9\xcb\x88\xa5\xac\x93\x9d\x29\x4e\xf5\xcd\xf9\x76\x68\x77\x4e\x3a\xc7\x11\x45\x50\x2b\x28\xd4\xfa\x4a\x32\x5f\xb0\x28\x09\x84\x2d\xd9\x23\xb8\xeb\x43\x29\x7f\xcc\x80\xc6\x04\x4b\x59\x14\x5b\x2d\x51\x74\x51\x7c\xc1\xd2\x88\x51\xfd\x20\xb1\x1c\x96\x45\xdd\xb3\x48\x09\x06\x01\x0b\xc3\xae\x74\x74\x61\x20\xba\x6a\xc6\x68\x11\x0c\x52\x64\x96\xe3\xf2\x11\xda\x85\x73\x8b\xd5\xbb\x9d\xde\xd6\x77\x16\x0c\x78\x48\xab\x18\xc5\x59\x5c\xd0\xc3\xc5\x13\x5d\x1f\x6d\x88\xd6\x0c\x75\xe8\xee\x76\x35\x79\x0a\x11\x9b\x60\xac\x9b\x7b\x37\x20\x7f\x3c\x2e\x9e\x16\x8f\x50\x9c\x7f\xbb\xb6\xff\x09\x26\xb8\x4f\x5c\x2c\x77\x8b\xe5\xee\x79\xb3\x67\xec\xb7\xae\x01\x1c\x6a\x3b\x3f\xc9\x1f\xe7\x53\xdd\xcd\x73\x26\x20\x8d\xfc\x01\x2a\x97\x02\xa5\x4b\xbc\x82\xb8\x13\x4c\xe8\x80\x46\xd5\x97\x76\x84\x43\x3d\x62\xd7\x10\x4c\x86\x91\x74\xd9\xed\xb7\x2c\x07\x85\xf9\xf1\x2d\x83\x9b\x69\xc0\xb9\xed\x09\x89\x05\xb3\x50\x20\x6d\xfe\xc3\xcb\xc8\x68\xec\xd1\x7a\xf5\xad\x6c\xf0\x11\xb2\x62\x5d\xe8\xf2\xe6\xbc\x2d\xe0\x58\xbf\x95\x96\x8e\x73\x72\x18\x84\x1c\xfa\xf2\xa3\x11\x5f\x85\xed\xa2\x82\x38\x56\x03\x63\xe1\x03\x2a\x45\xf2\x1f\xe3\x33\x29\x29\x09\xce\x2b\x5a\x27\xdf\xb0\x44\x0e\x87\x84\xd2\x46\xe4\x5d\xff\x3c\xde\x66\x17\xe4\x35\x93\x87\xc1\xd0\xf3\x46\xa6\xed\x5d\x55\x1e\x76\xe5\x7a\xb9\x78\x69\x77\x12\x62\xf8\xc2\xa1\x13\x30\xe5\x38\x18\xbd\x6a\x8c\x80\xea\x9a\xaa\x32\xc7\x7b\xa8\xaf\xa4\x71\x5d\xe7\x44\x13\x21\xf0\xb1\xac\x27\x84\x33\x82\xa1\xe4\x44\x30\x49\x33\xcb\xb1\x5d\x5c\x79\x92\xc9\x13\xe9\x20\x25\xab\xba\x38\x1d\xf6\x6f\xed\xa9\xf7\x95\xcb\x9a\xbb\x1e\x32\x90\xd6\x0d\xfa\x66\xa2\x84\x66\xde\x12\x51\xc7\xe8\x64\x3e\xf3\x20\xb1\x69\xa5\xdb\xea\xf4\x7a\xf9\x31\x7c\x16\x7a\x60\x91\x15\x5f\xb7\xb7\xf3\x03\xd4\x67\x2a\x0c\xad\xd6\x82\x51\x09\xf9\x58\xc2\x05\x2c\x41\xf8\x7e\x64\x6b\x41\xef\x17\xdb\x55\xb8\xb7\x15\x5b\x5d\x65\x91\xf0\xc3\x24\x15\x0e\xc0\xd7\xae\xb0\xf5\x73\xd1\x37\x19\x6c\x98\x79\x59\x8b\xe5\xfa\xca\xad\x44\x52\x50\x55\xc6\x5d\x83\xf2\x2d\xfb\x9f\x3b\x3c\x66\x01\x05\x2b\x0e\x04\xb2\x9d\xd3\xc3\x16\x7e\xcc\x53\xde\x71\x31\x66\x72\x80\x1c\x74\xd3\xdd\x4f\x34\x50\x9d\x4e\x51\x3e\x6b\xb2\x16\x16\x06\x1d\xdd\xfa\xee\x2e\x78\x5f\x76\x40\x2c\xe1\xa7\x1e\x50\x7c\x34\xab\x6f\x5a\xdb\xda\x54\xd2\x4f\xde\x30\xf7\x8c\x9a\x10\x28\x45\x24\x51\xf3\xcf\xc5\x43\x41\x38\xa7\x2f\xce\x5a\x75\x3a\x49\xb3\x83\xcf\xe7\x3c\x0e\xac\xdc\x09\x69\x18\x4f\x46\xea\x5c\x9c\x96\xf9\x76\x86\xf9\x10\xcb\xc4\xbe\xac\x1f\x84\x06\x74\xab\xa8\x0f\x52\x04\x13\x3e\xba\x81\x2f\xd8\xb6\x4b\x61\xc7\x93\x95\xff\x82\xd7\xee\x60\x19\xa5\x69\x57\x05\xf1\x8e\x45\x73\xaa\x70\x12\x90\xb0\x3d\x95\x1f\x99\xdc\xae\xc3\xaf\x2c\xdf\xa0\xca\x9a\xf3\x1d\x4e\x5f\x1e\x7a\x86\x66\xe1\x90\xbd\xb6\x3e\xed\xa0\x9a\x44\xf8\x98\x84\x84\x7f\x3f\xc0\xcf\x2d\xca\x53\x7b\x82\x2f\x27\xa8\x94\xd1\x53\x74\x9d\x30\x41\xde\x59\x04\x57\xe7\x60\x6f\xcf\xf9\x3a\x06\x02\x49\x93\x5e\xbc\xf9\x16\x63\xdc\xed\xe4\x53\xe8\x58\x52\x4a\xb6\x9d\xae\xed\xb3\x3a\x3b\xce\xd7\x12\x13\x2b\x37\xfd\x05\x2a\x85\xc5\x15\x0c\x86\x08\xbc\x48\x12\x17\xaa\x49\x41\xad\x0a\xf5\x05\x0e\xb8\x2c\x0b\x9d\x67\xb2\x19\xb1\x54\x99\x2f\xd9\xdf\xf7\xd0\x5f\xbf\xe4\xc2\x1d\x57\x76\x8d\x10\xd5\x74\x51\x7a\x33\x0a\xeb\xa6\x97\xfd\xfa\xcd\xb5\x72\x49\x51\x6d\x13\xc1\x74\x3f\x82\x20\xba\x42\x71\x12\x22\xc7\x6d\x59\x35\x5d\x8b\x96\x89\x41\x0e\xd7\xcd\x38\xf1\x6a\x3b\xb0\x24\x26\x36\x3c\x57\xae\x78\x89\x57\x13\x41\xbb\xb2\x01\x95\x95\xc2\xa1\x1c\x15\xe0\x88\x20\x64\x86\xb7\x11\x6c\x9c\x65\x84\xe6\x13\x41\x18\x87\x32\x70\xcd\x78\x8f\x55\xf9\x05\x8b\xf2\x30\x59\x02\x82\x50\x1b\x52\x8b\xc7\xf6\xd3\xda\x00\xc0\x42\xa9\xcb\xfc\xc1\xe4\x03\x45\x81\x4f\x0b\x97\x30\x0b\x8b\x0d\x90\x4d\x12\x48\x22\x88\x42\x8f\xb0\xab\xdb\xd6\xdd\x6e\x3f\x60\xdd\x54\x27\xd9\x94\xd5\x4d\x59\xe6\x04\x30\x19\x0c\xb4\x20\xe2\x29\x81\xc0\xf7\x35\x42\x7e\x0b\x0d\x6c\x9b\x0a\xe1\xaa\xa0\xe5\x25\x3d\xcf\xe8\x73\x46\x08\x26\x68\xd5\x94\xc7\x2f\xa7\x41\xde\x64\x74\x49\x8d\x64\x99\x19\x60\xfb\x4a\xf9\x51\xc4\xf8\x38\x7c\x37\x9c\xef\x41\x9c\xc6\x7e\xd2\x13\x18\x3d\xe7\xaa\x17\x85\x16\x41\x92\x40\xea\xe8\xf8\x4e\x87\x75\x21\xcb\xca\x24\x92\x6a\xe2\xf7\x47\xb5\xc1\xd6\x3f\x34\x18\xa9\xe9\x80\x48\x05\x90\xd1\xb3\x27\x34\xb0\x09\x02\xf6\x54\x53\x22\xe0\x01\x10\x48\xf1\x71\xf1\x74\xbf\xd8\xed\x16\x4f\x2f\x9b\xe7\x3f\xfe\x64\xdb\xdd\xe2\xdb\xaa\xeb\x13\x29\xb2\x1e\xf7\xa0\x48\x6b\x6c\xf5\xf3\x88\x55\x36\xda\xef\x07\x76\x64\xc0\x01\xc8\x66\xb5\xfa\x24\xab\xff\x9e\xb2\xe6\xec\x48\x9d\x5d\x1f\x19\x20\xeb\x71\x64\x0f\x25\x5c\xa9\x93\x64\xe3\x45\x64\xaa\xdf\xc6\xa6\x28\xba\xa1\xa1\x11\x70\xdd\xcb\xb2\xb8\x9a\xe2\x59\x8f\x26\x00\x5f\x6b\xe5\xcc\xf4\x33\xe4\xcd\xb9\xdd\xc4\x2d\x65\xe5\x2c\xac\x40\x04\xa0\x39\x15\x81\x5a\x75\xf9\x97\x09\x4a\xb8\x8f\xfb\xd9\xfe\xc2\x37\x44\xa7\x26\xa5\xe6\xfc\xa0\xab\x21\x97\x40\x08\xcf\xb7\x08\x84\x1d\x16\xd0\xad\xc8\x81\x90\x3e\xc5\xc9\x88\x49\xa2\x1a\xba\x95\x81\x54\x9e\xd9\x73\x4e\x79\x93\x39\x95\xb1\x29\xf1\xee\x64\x3b\x0e\x54\xc2\x12\x03\xd6\xc7\xf7\xfd\x07\xe2\x8f\xbd\x2b\x73\x12\x01\x72\xb3\xe2\xb4\x86\xf7\x64\xc5\x5c\x1f\x8e\xf9\xe5\xaa\x39\x5c\xee\xff\xde\xb2\xe9\xae\xa4\x0c\xc5\x20\x55\xb4\x38\x26\xf4\xe9\x70\xd6\x8c\x53\x14\xc0\xb2\x29\x12\x13\x12\xc9\xf0\xf6\x93\x4f\x63\xe0\x68\xce\xee\x21\xd7\xed\xca\xba\x68\x7e\xdc\x94\x93\x14\xa7\x08\xbd\xc4\xe8\xcd\xd9\x4d\xef\x1b\xb3\xb5\x94\xf5\x9c\xa3\x32\x7d\x69\xad\x3d\x17\x5a\x28\xcc\x0d\x14\x3f\x3e\x4b\xe7\x89\x90\x05\x26\xcf\x41\xab\x25\x0c\x57\xdc\xd0\x0f\x8d\x86\xf3\xfd\xfd\xed\x3c\xea\x6f\x38\xa2\x43\x5f\x19\xf2\xf1\x1b\xfc\xab\x2c\xb0\xfe\xff\x57\x2d\x2f\xc2\x40\xc6\x64\x24\x19\x0e\xef\x62\x10\x17\x0b\x43\x4f\x13\x1f\x55\x56\x64\x3d\xc5\xcb\xd5\x8d\x7c\xfc\x78\x61\x90\x12\xb6\xba\x3e\x66\xc5\x22\xcf\xdd\x29\x23\x34\x21\x38\xaa\x62\x5b\x2e\x5e\xdc\xef\x71\x28\xa8\x1c\x9c\x50\xac\xf5\x36\x2b\x24\xb6\x8e\x4c\x47\xd6\x2e\xc2\x38\xf2\x08\x3d\x77\x97\x41\x33\x46\x2e\x89\x30\x4e\x84\x25\x44\x7f\x2f\x7f\x0c\xe9\xa9\x45\x98\x84\x11\x35\x3d\x2c\x16\x9b\xd1\x4b\x4e\x3d\x83\x42\x6f\x7a\xe9\xf7\xdd\x5b\x85\x23\x65\x16\x11\xa6\x81\x49\xce\x34\x25\x65\x35\xba\x9f\x41\x7b\xc2\x71\x1f\x63\xdd\xf4\xfb\xd1\xe4\x35\xf0\x38\x04\x9b\x7c\xbe\x3d\x15\xaf\x58\x16\x4f\xf8\x71\x97\x97\xe5\x65\x1c\x6d\x3c\x12\x81\x19\x1a\xce\x6f\x59\x9d\x19\x3e\x91\x5b\xac\xb2\xf7\x6e\xb9\x0c\x41\x1a\x36\x4a\xa2\x3c\x3a\x40\x73\x8b\x32\x3b\x40\x3e\x1d\xd1\x22\x32\x25\xb6\x5f\xe0\x90\x35\xe7\xd1\x1b\x10\x22\x66\xda\x6a\x6d\xf5\x36\x25\xf3\x3c\xef\xe0\xba\xc8\xc4\xa7\x75\xbb\x83\xdf\x1b\x38\xc3\xf8\x19\x25\x30\x82\x69\xab\x72\x22\xbb\xf1\x99\x4e\x80\x08\xa5\x4e\x9d\x50\x84\x01\x23\x2e\xcb\xbc\xac\x76\xe7\xa3\x33\x6b\x43\x05\x31\xe1\x71\xd6\xb5\x35\x06\xdd\xef\x22\x26\x6b\x65\x57\x41\x53\xfe\xe8\x7e\xd5\x92\x10\x4f\xd2\x0e\x8e\xc7\xa1\xe8\xc8\x15\x0a\x88\xf1\x1d\xa1\x17\xb1\xa0\xe7\xc5\xa6\x97\xd5\x17\x7f\x88\x10\xb5\x22\x47\x7c\x53\x8a\xb2\xb9\xd9\x7d\x26\x0e\x28\x42\xcd\x7c\x1a\xd1\xa6\x04\x8c\xca\xa4\xc7\xed\x81\x0e\x54\xc7\x96\x3b\x69\x4b\x38\x65\x51\x37\xf8\x17\xfe\xc8\x7e\xcf\xba\x8d\x3f\xf2\x38\x32\xe5\x90\x6d\x94\x8a\xa7\xe8\x86\x6d\x65\x41\x4a\x2f\xec\x08\x55\x8d\x8e\x0e\x67\x30\x1b\x22\x16\x18\xcb\x93\x08\xc3\x3a\x5e\x1b\x11\x31\x9e\x72\x1b\xec\x1b\xd1\xd3\x0f\xef\x2a\xf2\x3d\x53\x84\xa2\x2b\xb4\xfc\xd2\xb7\x0e\x1b\xe6\x7a\xf8\x40\x60\x20\x8a\x9f\x5e\xe8\x36\xda\x4e\x21\x4f\x49\x41\xfa\x40\x38\xb8\xcb\xb2\x70\x11\x85\x52\x68\x47\xe1\xd6\x0e\x87\x41\x8c\x22\x8a\xbd\x94\x96\x4d\x8b\x9c\x24\x21\x34\xe3\x1e\x3e\x17\x57\xc2\x72\x51\x1c\x9b\x75\xec\x44\xa4\xf1\xa8\x96\x65\xde\xba\x3e\xd5\x74\x3b\x8e\x62\x15\x92\x5d\x08\x26\x15\xfc\xe4\xca\x82\x44\x14\x6b\x8f\x0a\xf2\x8d\x33\x63\xbc\xfe\xbb\xaa\x3c\xac\xfe\x78\xde\x0c\xa0\x7c\xb3\x6b\x61\x94\x04\x31\xf1\xeb\x61\xf3\xb6\x33\x90\x4a\x97\x0a\x7a\x3e\x35\xc7\xd3\xa5\xca\xcf\xe4\x70\x50\x14\x75\xa0\x83\x3e\xc0\x11\x41\x88\x28\x91\x06\x90\xb4\x7c\xfe\xb6\xda\x2c\x9f\xd7\x4f\x66\x7a\xcf\x11\x4c\x8f\x5f\x48\x1a\x70\x87\x79\x6d\x07\xa6\x25\x8a\x37\x56\xc3\xc8\xb6\x8d\xd2\x58\xd3\xe6\xba\xc7\x43\xd6\x7c\x2f\xab\x1f\x1b\xaa\x95\x99\x87\x38\x8b\x28\x55\x92\x9e\x74\x4b\x34\xd1\xbd\x58\xf6\x8a\xaa\xde\xdc\x44\x8a\xb8\x27\x09\xca\x3d\x28\xb2\x1a\xae\x4c\x11\x67\x8c\xd6\xe6\x1c\xaa\x57\xac\x9b\x17\x2c\x5c\x2a\x5a\x44\x3c\x8c\xd0\xfa\xba\x46\xde\x6f\xf3\x30\x3f\x5c\x79\xc2\x88\xc3\xa8\x2c\x2c\x15\xd1\x06\x41\xbe\x4d\x52\xca\x22\xe2\xa9\xaf\x2d\xe7\xca\xf3\xa9\xe9\x6a\xb6\x5d\x2b\x44\xd2\x04\x54\x4d\xec\x93\xb0\x72\xfd\xbd\x28\x4d\x15\xb7\x5d\x89\x94\xa9\xa8\x39\xf5\x65\x1b\x22\x02\xcf\x50\xf2\x58\x50\xe1\x9f\xe8\x44\x67\x44\x04\x22\xa0\x09\xa5\x0c\x96\xea\xb6\x0f\xf2\x46\xa0\x18\x45\xaf\x4d\xee\xae\xf5\x7a\xc8\x01\xa7\x18\x4d\x59\x4d\x4c\xd5\x08\x94\x29\x37\x7d\xed\x18\x1d\x3a\xc9\x15\x11\x09\xf0\xe8\x63\x13\x9c\xb1\xb6\x48\x44\xd7\x28\xfd\x80\xb8\xae\x5e\xf3\x52\xb4\x0b\x86\xc4\x99\x64\x56\x24\x03\x4d\x03\x6d\x4e\x65\x74\x7c\x27\x12\xcc\xfe\x6e\x72\x1f\x37\xed\x88\x72\x01\x81\x48\x31\x19\xb8\xbc\xff\x03\x6d\xb7\x50\x3c\x57\xab\xff\x9e\xa0\x5b\xc0\x54\xcc\x29\x26\x66\x1e\xfb\x11\x7e\xce\xa9\xbc\x8b\x48\xf1\x50\xdb\xdc\x28\xe5\x7b\xcc\x22\x72\xcd\x7b\x1b\x1f\x8b\xcc\x30\x98\x92\x70\x75\xeb\x11\x6f\xfb\x59\x8e\xbe\x4f\x10\x88\xfb\x53\xf1\xf3\x74\x0f\xc7\xe3\x68\xc3\x8c\x30\xe5\x86\xed\x4c\x96\x84\x62\xea\x3f\x17\xa2\xe7\xc5\x1d\x68\x96\xb6\x9f\x27\x38\x8c\x70\xdd\x22\xd2\x3e\x3a\x87\xc2\x52\x4d\x6c\xa6\xba\xd1\x22\xd2\x11\x3a\xf8\xed\xe2\x1d\x1a\x98\xab\xde\x15\x91\x06\xcd\x13\x67\x18\x7f\x77\x25\xd2\xdd\xac\xd5\x52\x53\xe1\x0f\xd2\xb4\x5b\x9c\x9a\xd2\x8d\xeb\x89\x79\x10\x7b\x91\xa6\xbd\xdb\x08\x94\xec\x4a\xef\xa7\x68\xe4\x7e\xda\x49\x02\x85\x8d\x2b\xc8\x6a\x24\x26\x48\xff\xeb\xd6\xb9\x03\x31\x63\x3e\xa1\x56\x33\x2c\x2d\x4b\xdd\x37\x68\xad\x00\xd7\x1c\xfa\xa4\xec\x23\x48\x42\xdc\xfd\xea\x7b\x22\x1d\xaa\xa0\x5f\x45\x7e\x8f\xef\x24\x48\x63\x2a\xbf\x24\xc8\x8d\x2d\x6e\x5f\x56\xe7\xba\x99\x29\x37\x9a\x5d\x4c\xe3\x40\x30\xc2\x70\xeb\xde\xd4\x9b\x74\xd0\x86\x20\xc3\x71\x91\x7d\xc2\x09\x28\xe2\xd0\x57\x06\x8d\x64\x18\x8d\x1f\xca\x9a\xc4\x06\xe6\x3b\x47\xcc\x4b\x0d\x11\x73\xd5\x85\xee\xe2\x28\xc4\xc4\xea\xc9\x64\xf5\x1b\xaa\x0d\x48\x1c\xba\x6f\x71\x1c\x60\x6c\x0b\x2e\x0e\xe5\xb8\x45\xfa\xc4\xba\x59\xcb\xb2\xc2\x1d\xc2\xa1\x1e\x47\xcb\x4c\x2d\x0f\xfd\x3d\x8d\xff\xf1\x7f\xc3\x24\x4f\xbb\x3b\xea\xc8\x39\x88\x35\x16\x6a\x36\x5b\x7b\xe9\xef\xc4\x89\xe7\x29\x07\x51\x28\x5f\x5d\xa2\x34\x4e\x52\x43\x22\x65\x12\x42\xed\x70\x59\x15\xea\xf6\x62\xa8\xc7\x09\x57\x24\xbf\xb4\x59\xfd\xf3\xeb\x6a\xbb\xdb\x2f\x17\x4f\xcb\xd5\xc3\xea\x76\x7f\xf3\xe7\x7e\xb9\x59\x2d\x76\xcf\x0e\x51\x10\xa7\x7e\x6c\x70\x3f\x70\x9e\xac\xd0\x71\xea\x4b\x53\xa1\x7d\x7a\x03\x91\x35\x5d\x6a\x30\x4e\x43\x65\x1c\x1b\x23\x53\xf6\x5c\x90\xb1\x30\xb9\x07\x1e\x85\x44\x1c\xfa\x48\xe4\x06\xd6\xdb\xfb\x14\x20\x24\x62\x9e\x04\xb1\x3f\xe1\xa5\xda\x9e\x44\x4f\x6c\xdf\x77\x15\xa9\x61\x32\xaa\xe1\x70\xcc\xd1\x54\x89\x3b\xa4\xb6\x88\x85\x45\x89\x1f\xa1\x6a\x0a\xac\xd8\xfe\x23\xeb\x6c\xb9\x58\x26\x51\x68\x56\x52\x87\xc6\x75\x0d\x1c\x28\x30\x6b\x8d\x94\x23\xaa\xa1\x2e\x8b\x88\x55\xe0\x11\x74\xa0\x1d\x90\x3a\x2f\x3f\xf6\xa7\xe3\xb1\x5b\xf0\x63\x95\xb0\xa8\x2f\xf2\xf8\xd2\x2f\x52\x57\x1e\x56\xa5\xca\x64\xd4\xa8\xff\xed\xe2\xf9\x17\x2f\x07\x3d\xa6\xba\x4a\xf3\xbd\xc0\x66\x0f\x4e\x3c\xc8\xdd\x02\x86\x06\x60\x65\x56\x27\x8b\x7d\xbc\x08\x55\xc7\x18\x1b\xe2\x1f\x59\x16\xef\x58\x35\xbb\x72\xf5\xb0\xfe\x63\xde\xc2\x8a\x51\x68\x92\xf5\xf8\xfd\xfb\xfd\x28\xa2\x63\x9b\xb5\x17\x05\x1d\xd8\xa1\xf9\x28\xd7\x05\x25\x34\x57\xff\xb5\xcc\x0c\xae\xcc\xcb\x75\xf7\x35\x15\x6d\xdc\x43\xfd\x36\x1c\x33\x73\x76\x7e\xac\xc3\x18\x95\x15\x8d\x24\x3b\x54\x4d\x9e\x43\x47\x82\xb6\xbd\xed\x5b\x95\x1d\x8e\x77\x50\xf5\x61\xdd\x58\xc7\x46\x99\x73\x09\xc5\x9f\x04\x49\x19\xee\x37\xb1\x96\xcc\x72\x05\x43\x76\x20\xc5\xa7\x6a\xfa\x60\x52\xb9\xcd\x6c\x55\xe8\xb2\x92\xb8\xc1\xf7\xac\xbe\x50\xc8\x14\x89\x27\x91\xe0\x8c\x37\xd8\xe8\x21\xfb\xa2\x48\x98\x85\x9a\x2c\x94\x1a\x40\x4d\x12\xa6\x35\x69\x01\x3e\xee\x6e\x97\xab\xcd\xd2\xf7\x5c\x83\x1f\x70\x2a\xef\x7f\xb7\x62\x47\x6e\xc3\xfb\x9e\x35\x6f\xcb\x72\x30\x7b\x86\xaf\x29\x09\x3c\x4d\xc8\x99\xf5\xf2\x99\x68\xcd\xca\xca\x77\x27\x0c\x58\x4c\x43\x6c\xd5\xbc\x89\x4b\x45\xe1\xcf\xb7\xf3\x24\x48\x0c\x64\xe3\x35\x7b\xc7\x45\x9e\xf7\x1c\xcc\x22\x09\xc0\xc0\xf2\x0e\xf5\x6b\xfd\x1d\xb2\xd6\xdb\x20\x8d\xd2\xf1\x09\x42\x2f\x09\x45\x07\x46\x82\x73\x79\xea\x4c\xa7\x24\x0c\x3c\x82\xab\x1a\x09\xc4\x3d\x55\x77\x75\x6d\x91\x11\x51\xa8\x91\x64\xc2\x4f\xc7\xf1\x67\x4f\xc2\x44\x11\x39\x88\xe1\x35\xd9\xf6\xb6\x5d\x12\xb6\xdb\xdf\x48\x2a\xa2\x1e\xf0\x90\xf4\x17\x47\x25\x1d\xc8\xf6\x2e\x2b\x20\x1f\x7e\x9d\x50\xc7\xbd\x84\x0a\x28\x7c\x81\x0a\x0e\xd8\x38\xa9\x9c\x61\x3c\xfd\x17\x15\x03\x93\xf7\x19\x79\x89\x43\x38\xed\xa0\xfe\xb1\x98\x51\xbe\x14\x49\xec\x07\x54\x28\x09\x82\xd0\x7e\xd6\x37\x4b\x12\x1e\x98\xf1\xfa\x86\xf2\xc7\xb7\xd2\x96\x39\x19\x6a\x72\x2a\x3b\x1b\x8f\xde\x24\xd1\xa6\xde\xc6\xc9\x44\xec\xde\xf0\x80\x6a\x7b\xb4\xdc\x20\x9f\xdf\x68\xca\x82\x34\xb2\xa5\x8e\xae\xcc\x66\x8c\x33\x4b\x52\xcd\xa5\x2d\xd8\xbd\x9e\x95\x4f\x40\x68\x8a\x1b\x98\xda\xbd\xa1\xda\xa5\x48\xa8\x46\xa9\x2f\x24\xc3\x29\x44\x23\x51\x4c\xa1\x0d\xf8\x96\xfa\x59\x6f\x1f\xbb\x43\x55\x1c\xd0\x57\x96\x1d\x37\xf2\x20\x83\x96\xa8\x84\x53\x5c\x29\x2f\x27\x72\xb7\x22\x51\x4a\x51\x5c\xa4\xc6\x66\x43\x06\xd7\x1c\x36\x24\xc1\x10\x09\x1f\x57\x9f\x44\x6d\xec\xcd\xcb\x52\x4e\x91\x20\x97\xa1\xd5\xc6\x28\xa7\x90\x9a\x04\x75\x4a\xa1\x31\xd9\x95\x54\xee\x4a\xf7\x26\xc7\xe7\x49\x3d\x9f\xc9\xd0\x95\xbe\x98\x2a\x62\x35\x67\x3d\xa5\x5e\x20\x46\xe2\xb8\x0e\x82\x32\x9b\x17\x4e\x3d\x11\x12\x61\x16\x51\x30\x42\xfb\x2e\x86\xeb\x5f\xea\xe9\x54\x99\xf8\xe3\xfb\xa1\xbc\xe2\x72\xa6\x8c\x49\x11\xf7\x05\xb3\x1d\xfd\xd7\x6c\xae\x26\x65\xb1\xe7\xa8\x55\x6d\xe5\xde\x65\x66\x3e\x65\xe8\xb3\x78\x40\x58\xde\xd1\x59\xf5\x21\xe5\xd4\x87\xc8\xea\xb5\x35\x6b\x59\xae\x0a\xd5\xd7\xa8\x8b\xd4\x57\x01\x2d\xf9\x3d\x33\x3c\x3d\xfd\x6d\xa6\x1d\x28\xc2\x76\x0c\xfc\x94\xc0\xfb\xa6\x24\xf8\xa2\x32\x65\x7c\x5b\x41\x98\xc6\xbd\xea\x81\xbb\xa9\xcf\xab\xb6\x44\x1a\x28\xa4\x71\xb8\xb8\x59\x8f\xb7\x84\x34\x64\x21\xad\x21\xd0\x0e\x4c\xf3\xa1\xe0\x0a\x50\x26\x0d\x43\x0f\xa5\xab\xca\xa7\x8f\xd4\xfa\x2e\x0f\xf8\x8e\x79\x0f\x91\x4b\x43\x29\x49\x3c\xc7\xa9\xba\x4e\x73\x91\x69\xc4\x38\x15\x82\x9c\x11\xaa\x70\xa8\xe1\x27\xd2\x28\x35\x80\xcf\xac\x5e\x2f\x17\x2f\xf3\xee\x65\x1a\xa5\xa9\x09\xc3\x60\x96\x3f\x94\xaf\xfe\x95\x31\x11\xf3\x94\xd2\x24\xcb\x89\xc4\xb3\x48\x93\x28\xf1\xcd\x98\xb7\x1c\x97\x03\x8d\xa3\x21\x1c\x5e\xa4\x49\xec\x93\x7c\x02\x05\x31\x58\x3a\x1a\x98\x89\xd4\x6c\x3c\xb7\x0d\xfc\xc0\x36\xa7\x68\x15\xa2\xb0\x36\x31\x8a\xf1\xba\x94\x72\x1f\x29\xd7\x2f\x31\x47\x31\x7d\x45\x90\x08\x6d\xc4\xcc\xb3\x42\x40\x8d\x43\x75\x12\x91\x8a\xc4\xa3\xdc\x9c\xd5\x94\xbd\xad\xca\x02\xa7\x98\x72\xd7\x15\x0c\x22\xff\x6b\x91\xe5\xa5\x01\xaf\xed\x20\x33\x8a\x57\xd3\xae\xc2\xc0\x4a\x3f\x50\x7c\xc9\x74\x63\xb8\x52\x87\x46\x65\xaa\x3c\xb3\x54\x1b\x39\x3c\xbf\xfb\x99\x2b\xde\xa3\xfe\xb6\xc7\xb2\x6a\xea\x1b\x6c\xe6\xb4\x98\x44\x8a\x69\x48\xe0\x47\x71\xaa\x8a\x3b\xc4\xbb\x8e\x45\x4c\xa4\x88\xc2\x00\xcd\xe1\x80\x5d\xe5\xb6\x48\x75\xeb\x3f\x1a\xda\x23\x13\x78\x19\xe2\x36\xcf\x7d\x2f\x24\x24\xd2\xc3\xfa\xfb\x57\x4b\x66\x24\xb8\xc7\x64\xea\x3b\x3b\x74\x83\x47\xc8\x14\xad\x32\x59\x17\x8f\xe0\xcc\x33\x46\xa3\x23\xd5\x7b\x5c\x3f\xed\xd7\x4f\xdf\x56\xdb\x5d\xd7\x03\x41\x1b\x90\x89\x53\x76\x9c\x18\x77\xdc\x8f\x91\xfc\x67\x32\x86\x5a\xf7\x17\xbf\x75\xd1\x0c\xee\x27\x31\xe5\x71\xca\x4a\xe1\xa5\x90\xcc\x2f\xf6\x65\x7b\x8e\x20\x30\xea\x3d\xf5\xc8\x09\xe0\x41\x0c\xb4\x69\xdd\x9e\xa0\xf8\x57\x36\x93\xd2\xe7\x81\xd0\x9e\x4b\x5f\xa2\xac\x4e\x59\x73\x8f\x55\x79\x81\xf3\xe0\x61\x1a\x53\x38\x56\x19\x71\xf5\x81\x7a\xfc\x98\xc0\xfe\xf3\xdb\x8c\x64\x4a\x66\x03\xbc\xbe\x66\xa7\xe2\x35\x7b\xac\x47\xb2\xa4\x82\xc7\x3e\x52\xc6\x7a\x91\x1f\xdf\x80\x8a\x19\x06\x49\x7a\xf7\x54\x71\xe8\x91\xcd\x69\x85\x79\x1e\xe1\x78\xcc\x8a\xd7\xed\x94\x16\x48\xf0\x38\x09\x3d\xd9\xe1\xfc\xac\x66\xdd\xb0\x52\xfe\xae\xac\x16\x79\xfe\xf2\x06\xf5\x74\x0d\xe2\x71\x12\xd1\x03\xbf\x97\x0d\x0e\x59\xc6\xe6\x5d\x0b\x1e\x27\x5a\xf9\x1d\xfa\x6e\x7f\x80\x61\x45\x56\xdf\x07\x93\x01\xac\x9b\xa5\xb6\x0e\xcc\xd2\x19\xb0\xd4\x75\xc4\xc4\xb7\xd9\xe7\x9b\xc5\xf6\x82\xa2\x72\xf4\xc6\x12\x5f\x53\x90\xeb\x03\xb3\x97\x0a\x97\xad\x8b\x24\xfb\x90\x13\x4f\x84\xa4\xd1\x4b\x76\x6b\xcf\x6a\x2b\x78\xa2\x25\x01\xfa\xbf\x63\xf6\x82\x95\x09\x06\xba\xb6\x94\x79\x84\xcc\x6f\x9f\x97\xe8\xcb\xdd\xef\x81\x27\xa0\x0b\x03\x19\xbe\xc1\x3e\xa5\xd5\x6f\x7b\x3c\x0d\x4d\x80\xee\xfb\xca\x7e\x43\x47\x15\xec\xda\x35\x4f\xac\xf1\x72\x49\x86\x23\x38\xf7\x7c\x32\xc9\x5d\x42\xfc\x05\x2b\x5d\x56\x53\x65\x67\xc1\xb9\x94\x24\x25\x98\xc9\xd2\x37\x9c\x57\xb6\x01\xc0\x23\x48\x6c\x56\x13\x90\x22\xbb\x56\xd6\xc0\x41\xa6\x91\xc5\xed\x2e\x4f\xd5\x3b\x7e\x2d\xea\x81\x6f\xe1\x5e\xfc\xe8\xa2\xa0\x24\x29\x03\x18\x56\x74\xeb\x1a\x8e\xf7\x4c\x2e\x3c\x13\xae\x79\xcb\x5e\x07\x2c\x6c\x82\x8b\x94\x05\xc3\x92\x3d\xda\xd0\xd5\xf5\x5a\x04\x2e\x78\x4c\x15\xf2\x5b\xc8\xb1\x36\x6b\xfc\xa7\x75\x1a\x5c\x68\x88\x0d\xeb\x78\xff\xd2\xe7\x7b\x4a\x40\x53\xfa\x9f\x15\xd8\x64\xff\x74\xb7\xa8\xa2\x34\x4c\x1c\xea\xd9\x96\xde\x8d\xdf\xba\xe2\x29\xf2\x41\x7d\xe4\x90\x03\x50\x70\xe4\x29\xf9\x89\x4b\x28\xa0\x3a\x7f\x4b\xee\xa0\x6e\x76\xa6\x3a\xa3\xeb\x02\x1d\xd3\x9d\x8d\x70\x6e\xbb\x2a\xd1\xb6\x95\x1b\x71\x44\x4b\x2b\x40\xc2\x87\xcb\x76\x7b\x9d\x50\xe9\x4c\xd6\x16\xcd\x90\x60\xb3\x1f\xc7\x37\x39\xdc\x86\xb9\xf6\x53\xb2\xd3\x8a\xf2\xe3\xe3\xe3\xa3\xff\x55\x42\x3c\x48\x91\xdd\x9c\x32\xa3\xd0\x3c\x5b\xb9\xe0\x0e\x8a\x99\x67\x88\x6e\xdf\xeb\xc3\xbc\x55\xc1\xb5\x4c\x29\x2d\x45\xee\x0d\x56\xad\x43\x3e\xb0\x08\xc1\x83\x80\x92\x76\x3b\xf8\x61\x64\x5d\x0c\xdb\xf8\xdf\x5a\x3f\x81\xf9\x32\x0d\xac\x5d\x92\x39\x06\xe7\xdf\x5c\x63\x92\xf8\x4e\xbf\xb8\x03\x89\x74\x73\x02\x98\x4e\x1c\xc7\xc4\xfa\x70\x04\x97\xc8\x19\x0e\x37\xf0\x83\xd0\x54\x36\x50\xb6\x71\xe3\x04\xd8\x5c\x6b\x68\xc8\x5d\xa5\x63\x6c\x9b\x1f\x59\xe0\x27\x09\xcd\x6e\x3d\xc1\x88\x81\x8f\x46\x77\x0e\x5a\x73\x79\xa4\xee\x20\x20\x8c\x63\x3f\x74\x4b\xc2\xa9\x68\xce\xc6\x11\xba\x5c\x5c\x20\x54\x3e\xa1\x58\xeb\x30\xb0\xeb\xa7\x6d\x88\x52\x4e\x3b\x7c\x51\x36\x78\xd3\x5e\xa3\xb9\xc5\x63\x4e\xd5\xe7\xa3\xe9\x09\xb1\xf2\x93\x5e\x56\x85\x78\xce\xe6\x07\x15\x24\x68\x6a\x21\x6d\x95\x5f\x3e\xb1\x9e\x20\xe5\x2c\xee\x19\x3c\x1f\x5b\xd7\x7a\xa0\xea\xec\x3a\xa9\x84\x52\x4c\x94\x1d\xba\x72\xa1\x14\x05\x3a\xda\xae\x4b\x17\x08\xb8\x9f\x26\x86\xd4\x23\xa7\xea\xf4\xec\x7f\x06\x5f\x84\x55\x93\xe9\x4c\xb6\x4b\xcc\xe8\x43\xf2\x88\x3b\xc6\xb5\x47\xf8\x39\x32\xd2\x00\xc0\x10\xe1\x75\xd4\x1d\xb4\x86\xfd\x76\x01\x2e\x03\x11\xaa\xd4\x7e\x12\xe2\x99\x75\x79\xd8\xed\x49\xd8\x3a\x47\x27\xa8\x36\x7e\x16\x91\x18\xe2\x59\xf3\x52\x96\xa7\xaa\xbe\xe8\x60\xf6\xac\x03\xd6\x75\x36\xdd\x1c\x40\x7a\x81\x21\x10\xa8\xce\x5f\x8b\x87\x52\xfe\x98\xf5\x0a\x41\xb2\x88\x6c\x89\x97\xaf\x37\x0f\xeb\x65\x6b\x9a\x75\x27\xf0\x0d\x42\xbb\x75\xe8\xad\xaf\x74\x57\x9e\xaa\x99\x1c\x32\xc8\x40\x5a\x4d\xef\x5b\x34\x2c\x17\xd3\xab\x70\xb3\x67\xdb\x1c\x68\x01\x07\xbc\x39\xcf\x04\x3b\x40\x05\x21\x09\x02\x9a\xe4\xde\x35\x0a\x8f\xff\xb7\x70\x0b\xa8\x30\x4c\x99\xe3\xf2\xdf\xe0\xeb\x60\x15\xfc\x37\x8b\xff\x73\xed\x68\xab\x20\x67\x92\xbb\xff\x66\x7e\x6a\x43\xf2\x80\x3e\x23\x58\x34\x68\x9d\xe5\x19\x34\xb8\xab\xb0\x5b\x47\x30\x30\x6c\xde\x16\x04\xde\xfd\x1c\xc6\xe4\x54\xfd\x5e\x1e\x32\x39\x42\x22\x81\xf6\x84\x74\x83\xb7\xb5\x31\x5a\x27\x77\x8a\xbd\x14\x5e\x98\x12\x67\x97\x2c\x0b\x09\xcd\x95\x31\x27\x3c\x4c\x7d\x9b\x43\xdc\x83\x52\xe7\x59\x48\x95\xed\xcb\x6c\x35\xc0\x97\x32\x57\x08\x97\x22\xbe\x42\xb0\x54\x81\xe3\x6d\x37\xc4\x31\xff\x28\xb3\xe2\x0a\xf5\x96\x10\x7e\x18\xd0\xc2\xb5\xde\xfd\xb1\x1f\x3e\xa0\xf0\x23\x03\xd8\x33\xaa\xd9\x63\x19\x42\xd7\x45\xaa\x58\x58\xb9\xc2\x45\xa1\xee\xa8\xe7\xec\xb2\xee\x72\xbe\x22\x00\x8f\x0c\xff\x53\xe1\x78\xe9\xa7\x9a\xf2\xdd\xa3\x86\x42\x80\xab\x73\xb4\x84\x17\x8e\x28\xe8\x5b\xd9\xf4\x98\x66\x11\x62\xac\xc3\xc1\xe6\xfc\x1d\x33\xd7\x14\x05\x31\xbd\x0c\x9d\xbd\xbe\x35\x8f\xd9\xcf\x2b\x2f\x21\x8a\x4d\xa8\x34\x2f\x5f\x47\xd2\xc0\xae\x19\x63\x72\x8d\x57\x5f\x9c\x13\x25\x12\xcf\x73\x24\x7d\xdb\x06\x9a\x49\x4c\x59\x24\x60\x68\x97\xff\xf5\x76\x7a\x3b\x8d\x06\x8e\x48\x05\x27\x54\xf0\xff\xb2\xa2\xd9\xdb\x08\xfe\xf8\x72\x3c\x0a\xa9\xb8\xa6\x63\x50\x2d\x3a\xcf\x63\x57\xde\x40\xf1\xa3\x2a\xbb\x64\x88\xe0\x88\xb4\xae\x1b\x3f\x73\x63\x16\xa7\xb2\x3a\xcf\xd4\xbf\x8b\xd6\x02\x20\x6c\xea\x76\xb9\x78\x1c\x46\xae\x05\x04\x86\x72\xd6\x6a\xd0\x34\xe7\xbb\x2c\x6f\xba\x60\xbc\x80\x38\xa6\x6d\xb6\xb4\x99\x22\xf7\x33\xf8\x89\xc1\xc6\xa0\xda\x96\xa7\x4a\xe2\x4d\xd7\xa4\x62\x96\xf6\xb3\x97\xe2\xf4\xae\x4d\x85\x46\x54\x51\xa1\xae\xca\xba\xb1\x1a\x1e\xed\x53\x3a\x55\xc2\xee\xd3\xaa\xc8\xa3\x1b\x7e\xc2\x0f\x72\xbd\x67\xd6\x33\xa1\x84\x21\x05\x7b\xc5\xe6\xe1\x24\x7f\x9c\x09\x28\xb7\x3d\x62\x31\xd9\x02\x05\x7a\x48\x25\x80\x5d\x04\x2e\xcf\x47\x42\x45\x93\x81\xdb\x0d\x44\x54\xbe\xa5\x18\x26\xaa\x15\xc8\xb1\x3c\x62\x91\x15\xaf\x83\xc0\x96\xd0\x7e\x42\x80\x87\xac\xd0\x15\x18\xef\x6d\x72\x9f\x3a\xf1\x08\x49\x44\x0e\xf1\x8c\xee\xa2\x10\x3a\xd5\x81\x7d\x69\x8f\x59\xd1\x23\xfc\x84\x56\xc2\x21\x3b\xbe\xd6\xb3\x51\x4f\xe9\x71\x49\xa9\x23\x27\x5e\xd0\x3e\x40\xfc\x1f\xf7\x0c\xd2\x93\x06\xd1\x66\x01\x15\x23\x12\xc7\xf1\x64\x90\xcc\x0f\xe2\x8e\x0b\xe4\x07\x16\xe3\xcb\x4d\x3b\xc7\x9a\x9c\xf0\x63\x85\x75\x0f\xb7\x92\x2c\x09\xc8\x6c\x02\xa5\x7a\x86\x80\x7a\x3a\xc5\xa5\xcf\x92\x6e\x5b\x86\xba\xb1\x82\xdf\xf3\x57\xf2\x03\xb3\x1e\x8d\xaa\xd2\xb1\xde\x5e\xcf\x8b\xb8\x03\x21\xa0\xcf\xb7\x7d\x2b\x3f\xb0\x1a\xd4\x04\xca\xc0\x03\xf0\x86\x6c\x69\xdf\xb3\xa2\x98\xb3\x87\x5d\x7f\xc6\xd0\xd2\xd3\x51\x71\xc2\xf8\xf3\xc9\xc0\x07\x8a\xb7\x92\xab\xb8\x2b\x89\x71\xeb\xe6\xbc\xfd\x21\xbb\x9d\xf1\x4a\x80\xc3\x1d\x1f\x08\x82\xd8\xda\xd6\x7f\x60\xf1\xa3\x47\xd4\xc8\x00\x7c\x1a\x60\xbf\x63\xfe\x3e\xce\x86\xc9\x10\x0d\xaf\x07\xe9\x84\xdc\x56\xe3\x58\xb1\x8c\x38\x10\xae\xbb\x35\x4c\x58\xf4\x54\xbe\xfb\x1e\x4b\xbb\x46\xe1\x13\xbd\x27\x41\x60\xf6\xfe\xde\xb8\xb9\xfb\x5a\x0e\x8a\xbb\x64\x84\x11\x33\x69\x49\x8a\xe5\xb6\x1f\x29\xe8\xda\xb4\x89\x08\xff\x78\x6d\x46\x57\x8d\xb9\xa1\x44\xb2\x55\xaf\xcb\xe7\xcb\x8d\x4f\xc6\x22\x21\xd7\x82\xe8\x0f\x6f\xb0\xd9\xad\xb6\xbb\xe7\xa7\x87\x3f\x27\x43\x3b\x16\x86\xab\x41\x41\x96\x9f\xdb\x89\xdd\x74\x17\x91\x26\x57\x60\x78\x0d\xb4\x9b\x8c\x32\x49\x62\x13\x04\x71\x51\xc8\x6d\xe7\x89\xc9\x24\x8d\xa8\xa8\x69\xb1\xdc\x8d\x6e\x38\xd1\x8a\x8a\x4b\x9a\x72\x77\xca\x26\xd6\x9b\x4c\x79\xea\xc8\x37\x6f\xfe\xe9\x12\x5d\x32\x15\xa1\xec\x09\x12\x5d\xd8\xfc\x6b\x56\x34\x8f\xd0\xcb\x0f\x8d\x32\xa4\xf6\x48\x1e\x85\xca\xce\x8f\xd5\xeb\xab\x85\x45\x4d\x4a\x79\x26\xa3\x83\x4b\xf3\x16\x5c\xad\xe3\x30\x2f\x2b\x81\x19\x99\x22\x82\x71\x57\x4a\x9e\x8e\xbb\xea\xd4\xb7\x86\x21\x4d\xd2\x1b\xa2\x37\xd9\x5d\x30\x84\x8e\x87\x31\x44\xdc\xeb\x72\xab\x8f\xa8\x1c\x72\x96\xb9\x3b\x01\xe1\xa7\xd0\xa9\x8a\x6c\x50\x62\xf6\x7e\xc1\xf2\x37\x6b\xf5\xcd\x0b\x29\x08\x29\x52\xf0\xbb\x02\xf2\x42\xdd\x66\xef\xc4\xb0\x3e\xf9\x08\x02\x14\x55\xb2\x7c\x7f\x78\xdc\x0d\x98\x6f\x84\x14\x42\x51\x32\xb2\x4b\x9c\x4a\x81\x01\x85\x6d\x73\xa8\x4d\xe1\xe8\x5e\x33\xde\x35\x6a\x24\xab\xce\xe5\x20\xf6\xab\xe6\x6d\x72\x29\xe5\xc5\x3c\xec\x4d\xe0\x65\xd6\x64\x13\x49\x72\x21\x55\x20\x5c\xa2\xd1\x58\x76\xee\xf7\x34\xa1\xb4\xb7\x82\xfa\x4d\x94\x50\xa9\x71\xa0\x5d\x62\xec\xd3\x2a\x42\x69\xf1\xf5\xf2\x99\xd2\x46\xf2\xf9\x88\x45\x3f\xe3\x30\x95\x4a\x0f\x68\x1a\x5b\xb7\xb6\xac\xd6\x53\x1e\x7f\x21\x51\x9b\x34\xdc\xaa\xa1\x05\x2c\xdc\x0e\xe9\x0c\xff\x96\x83\x2d\x35\x8f\x89\xfe\xf2\x15\x9b\xdb\x52\x9e\x88\xf9\x6d\x88\xa6\x51\x5e\x6a\x22\x5b\x13\x29\xfd\xcf\x10\xf4\xe3\x21\xa5\x18\x4b\x79\xe8\xd4\x6d\xb2\x5c\x5d\xe1\x78\x15\x8a\xf9\x8c\x52\x32\x8f\x8f\x4b\x67\x6a\x29\x96\x2a\xb2\x32\xb2\x8e\x98\x6e\xfc\x0e\x94\x1f\x07\x84\xf1\x73\x11\xa6\x97\xf5\xed\xb4\x07\x98\x2f\xbe\xda\x7c\x77\x67\x0d\xd2\x84\xc2\x65\x24\x55\x00\x85\x21\xd0\x76\x6d\x80\x14\x5c\x5f\x2d\x36\x0f\x7f\xee\x6f\xd6\x9b\x5b\xcb\x56\xda\x75\x90\x9a\xca\xf1\xda\xd5\x50\x94\x07\x57\x3e\xaf\xa2\x34\xe4\x81\x15\x14\x7d\x3c\x2f\x8e\xc7\x09\xd5\x8a\x50\x91\x30\x3d\x8e\x70\x7e\x29\xdb\xc5\x1a\x3e\x36\x78\x01\x91\x1f\x7f\x21\x15\x7b\x4c\xe9\x3e\xa1\xee\x52\x6a\x93\x4e\x0c\x89\xa3\x6b\xaf\xb3\x02\x72\x5b\x3e\x5f\x63\x55\xdf\xb5\xb6\xaf\xbb\xc3\xd8\x37\x48\xe5\x3b\x28\x1a\xa8\xcf\x26\x2f\x31\xb0\xe9\x54\x1c\x2a\x02\x2a\xdf\xd4\xd7\x20\xb3\x97\x5f\x2d\x86\xd0\xb3\xf7\x67\x19\x52\x46\x4b\x81\xeb\x25\x93\xd8\xc8\xef\xc1\x45\xc1\xe9\xe4\x81\x13\x11\x8b\xb4\xe7\xb6\x51\xfb\xd6\x8d\x21\x8c\x9d\xbb\xcd\x34\x62\x91\x35\x95\xbe\xae\x8b\x26\x35\x32\x5d\x43\xf0\x7a\xda\xf5\xe4\x9c\x48\x8b\xda\x21\xed\x94\xca\x84\x4a\x81\x51\xbc\xd5\x12\xd9\x13\x8c\x80\xb4\x17\xbb\xf6\x00\x85\x8d\x42\x0e\xe3\xac\x8a\x07\xa6\xaa\xef\xeb\xcb\xea\x8f\xe1\x8b\xe3\x41\x42\xc6\x9b\x89\x00\xd0\xfa\xd5\x7e\xa5\x2f\x30\xc9\x62\x2b\x2e\x0d\xb9\x75\xd5\x7e\x97\x30\x98\xb4\x82\x7d\xff\x46\x85\x65\x34\x0f\x41\xa4\x04\x54\xe9\x59\x21\xee\x9f\x96\x97\xbe\xe2\xe4\x5d\x4a\xcf\x0b\x98\xd3\xaa\xbc\x79\x78\x5e\xfe\xbe\x7b\x74\x67\x94\x09\x8f\x3a\x69\xa2\x9b\xd3\x90\x74\x60\x2c\xc3\x22\x94\xe4\x46\xf7\x74\xe9\xca\x63\x2d\xa1\xfa\xa7\x6b\x8b\x52\x22\xa5\xb5\x85\x92\xa3\x63\x76\x04\xa5\x94\x20\x92\x30\x22\xb7\x79\x3e\x7d\x4e\x3e\x25\x94\x42\x46\x78\x5c\x5b\xee\xf8\xac\x3b\xdb\x5b\x21\x53\xa6\x18\xca\x45\xac\x0c\xc9\xd6\xae\x1c\x15\x3a\xb8\xbf\xa3\xb3\xea\x40\x51\x44\xc5\xd4\xf8\x50\xf9\x42\x26\x87\xca\xad\x42\xe9\x28\x20\x3e\x34\x43\x5b\xbc\xb8\xbd\xdd\xac\xb6\x0e\xcb\x80\x5e\x18\xd1\x03\x1a\xb7\xf1\x16\x0f\x65\xd7\x92\x18\xba\xc4\x57\x39\xca\x9e\xa2\xa7\xe3\xc4\x28\x82\xbf\xfe\x36\x23\xb4\x25\xd0\x67\x08\x4e\xf4\x77\xb7\x7e\x5c\xed\x57\x7f\xbc\x3c\x3c\x6f\x5c\xa8\x07\xfd\x00\xa8\xfe\x65\x83\x90\x3f\x96\x05\x76\x67\xf6\xd3\x88\x0c\xbd\x83\x21\xde\xc7\xa9\xd6\xd4\x65\x38\x01\xc3\x34\x24\x28\x8e\x61\x0d\x83\xbc\x63\xcf\x17\x18\x85\x01\x4d\x6a\x4a\xa4\xf6\x36\xc3\xac\x8d\x8d\x51\xec\x09\xf2\xd3\xa0\x2a\x32\xf8\xba\xbd\xdd\x75\xa7\x91\xe0\x45\x7d\x7d\xe3\x50\x26\xdc\x38\x7e\x30\x17\xdf\x1e\x7f\x7b\x8c\x50\x53\xe0\xfa\x8c\x50\xf9\x44\x0a\x32\xda\x52\x31\x16\x40\x0e\x3a\xa1\xb0\x89\x31\x12\x95\xd3\x1d\x99\x5d\x52\x31\xf1\x7c\x9a\x66\xfb\xf7\xd0\x9d\x24\xf1\x05\x31\x45\x40\x9e\x3f\x6b\x8d\xed\x17\xf9\xe7\xa9\xec\x0a\x4c\x30\x89\x35\xf1\x02\x19\x9d\x2f\x2a\x06\x99\x9c\x33\x31\xda\x9e\x36\x7b\x3f\x7e\x43\x49\xa2\xa3\x78\xf8\xd9\xed\xef\xa9\xa7\x83\x2e\x32\xe9\xa8\xd4\xc6\xe7\x4d\xad\x2c\xba\x19\xde\xdf\xb2\x3a\x6b\x0c\xb9\xe3\x55\x20\xd0\xe7\x3b\x3e\xa6\x7e\x9a\x58\x0f\xef\x1f\x46\x55\x9e\x2c\x0b\xdb\xca\x59\xca\xad\x24\xcc\x87\xd3\x1d\x33\xb8\xe5\xf9\x57\xc9\xfd\x90\x6a\xcd\x9b\x0c\xab\x3d\x71\xcf\x76\xaf\x94\xc7\x86\xc9\x93\x86\xb2\x41\x8a\x0d\x82\x96\xc8\x35\xa7\xd4\xd0\x66\xf5\xf0\xeb\x72\x3c\x14\xdc\x33\x98\x17\x59\x0e\xc8\x65\x05\x0a\xe5\x69\xab\xdc\xe2\xaa\xd5\xca\x01\x97\xdb\xfc\x4d\xcb\xc0\xa7\x55\xf1\x0b\xe4\xf0\xf3\x3c\xa0\x90\x13\x28\x31\x34\xc2\x87\xd8\x50\x96\x94\xb2\x75\x9f\x56\x2c\xa2\x8a\x03\x02\x9e\xee\xb3\x7a\x8e\x6e\x01\x91\xc9\x80\x72\xc0\x0e\xf0\xb9\x5e\x3e\xef\x3f\x9c\xb5\x8a\x28\x3c\xb0\xd6\x9e\xd9\xc7\xa6\xc9\xb8\xf1\xd5\x50\x09\x82\x7a\x2f\x54\x49\xda\x39\x8e\x68\xdb\xc6\x3b\xa2\xf9\x5d\x1a\x35\xa6\xbe\xa1\x39\x57\x37\x24\x9f\xf2\x52\x65\x85\xcc\x8e\x16\x11\x34\xa9\x84\x41\xdd\xde\x96\x35\xa1\x2d\x5b\x48\xcf\x12\x29\xb4\x17\x49\xce\x69\x79\x00\xed\x18\x09\x66\x5f\xb5\xf6\x38\xa7\x69\x51\x1e\xb1\x18\x21\x81\xa7\xfd\xd0\x08\x8a\x1e\xce\x46\xd7\x73\x3c\x81\x34\x93\x49\x98\xb8\x08\xc6\x69\x90\xef\xd5\xbe\x8c\x5c\x3e\x7f\x79\xf7\x3c\xc7\x11\xa1\x7d\x34\x54\x6e\x26\x1e\x51\x97\xc5\x28\xe2\xa6\x03\x96\x12\x37\xad\xb6\x56\x40\x5f\xa0\xe5\x3a\x84\x86\xd0\x6d\x39\xaa\xc6\xd1\x41\x9c\x52\x71\xc3\x4d\xf6\x0e\x83\xc0\x82\x0e\x93\xd0\xcc\xd8\x71\x75\xae\x5b\x87\xff\x06\xb9\xbf\xd0\x91\x17\x44\xaa\x8b\x3a\xfd\x89\x50\xf5\xf0\x0f\x1d\x31\x1d\xf4\x25\x74\x9d\x35\xe8\xc2\xac\x3a\x0a\x62\x16\x0c\xb8\x99\x9e\x2e\xd5\x6c\xfa\x9e\x46\x1a\xcf\xa8\xb9\x4d\x0b\x68\x74\xcc\x34\x0d\xb6\x66\xbf\xcd\xe1\xdd\x2d\x86\x3a\x0e\x64\xec\xb9\x82\xde\x3a\x93\xcb\xd6\x6b\x30\xcc\xce\x58\x05\xde\x2d\x9c\x27\x2e\xb4\x8e\x53\x4e\xbb\xd3\xed\xcb\xf6\x97\x95\xbb\x3a\x56\x82\x0a\x42\xbe\x41\xd1\xd5\x66\x8e\xef\x2b\x89\x0c\x03\xd4\x7b\xd9\xe0\xf6\x74\xc4\xea\x9f\xa7\xb2\x3a\x1d\x66\x08\x06\x74\x12\x25\x54\x70\x7b\x5f\x1e\xb3\x91\x9a\xb1\xd0\x49\xc2\x53\xc3\x37\x21\x4e\xaf\x7b\x07\x2c\xda\xfd\xdc\xbe\xc1\x6f\x97\x94\xb2\x42\x27\x5a\x44\x83\xd4\x48\x27\x78\x3e\xb9\xb9\xd4\x4f\x99\xd7\xf9\xea\x2f\x06\xc4\x3e\x5b\x4b\xaf\xd3\x30\xa1\x7a\x95\xcd\x62\xb7\xda\xdf\x3d\x6f\xf6\xdf\x57\xab\xdf\x1d\xa3\x93\x4e\xe3\x84\x22\x0c\xff\xc2\x03\x14\xdd\xcb\xe7\x7e\x40\x60\x90\xdf\xb3\x3c\xef\x49\x17\x5d\xa3\x8c\x3c\xa7\xc3\xf3\x84\x3f\x9b\x27\x1a\x00\x53\xac\x87\xe6\xda\xa0\xd7\x3f\xa0\x7e\x81\x6c\x12\x2a\xd5\xc0\x18\x67\x3d\x2d\x0d\xda\xf2\x95\x0b\x8e\xce\xf1\x39\x15\x33\x39\x46\xcb\x3a\xbd\xaa\xa4\xef\x91\x11\x02\x72\xb0\x4e\xb9\x1b\x6d\xad\x7c\x7f\x30\x46\xb1\x36\x91\xc6\x45\x87\x8a\x9f\xad\x45\xd5\xa8\x8d\xd0\x98\x89\x2c\x8d\x54\x76\x5d\x2d\xab\x23\xb5\x18\x8e\x02\xed\x83\xb4\xd2\xc9\xc4\x8b\xe3\x6e\x43\x43\x2a\xc2\x01\x60\xe6\xd5\xec\x1b\xed\x8e\xb8\xc5\x66\x8a\x68\x91\x9e\x97\x44\xd0\x49\x8c\xe4\x79\xd9\x3c\x1f\xcd\xec\xee\xda\x53\x4c\x69\x53\xdb\xae\x36\xdf\x56\xb7\x6e\xe3\x5b\x3c\x7d\x71\x3b\x9f\xf4\x98\x9f\x92\x0f\xb0\x70\x14\xb4\xd2\x63\xc2\x07\x9c\x53\x17\xf8\xd4\x03\x9b\x28\x43\x49\xcf\x67\x11\x55\x4e\xdc\xc3\x3b\x45\xcc\xff\x5e\xb1\xbb\xf4\x7c\x9f\x53\x34\xe3\x2d\x7b\x7d\x6b\xd7\x13\xfa\x24\x03\xf1\x63\xe9\x05\xcc\x68\xef\x1b\xdc\xde\xe9\x42\xc6\xd2\x75\x0b\x0c\x33\x28\x55\x91\x35\x98\xff\x36\x69\xe6\x1c\xc2\x8e\xa7\xbe\xab\x90\x95\x5e\xa0\xfd\x10\x5c\x85\xee\xed\x24\xbb\xdb\x36\x77\xda\x3d\x4f\xa7\xc3\x0b\xd4\x75\x56\xbc\x4e\x24\x77\xc7\x57\x8a\x59\x44\xaa\x27\xf8\x0e\xf9\x69\x40\xbc\x3f\xb3\xe0\x48\x2f\x8e\x7d\x48\x7b\x9a\xb0\x01\x2d\x85\xeb\x20\x03\xc2\xdd\xbc\x67\xf8\x71\x5f\x9e\x6a\xbc\xc3\xee\xcd\xc4\x5a\x11\xbe\x61\xf1\x6d\xfd\xb4\xec\xd8\x05\xa5\x97\x68\x20\x9b\xcf\x0a\xda\xbb\x9f\xd3\x24\x21\x00\xde\x90\x3f\xb9\x6b\x12\x7d\x38\x96\x51\x29\x5d\xd7\x24\x74\x9a\x0e\x19\xf2\xbb\x06\x94\x54\xa8\x93\x1d\x5a\x67\x7e\x67\xcb\xd5\xb6\x99\x42\x2a\x30\xfd\x15\x75\x8b\x3d\x0b\xe7\x2c\x30\xfc\x88\x4b\xdf\x33\xf5\xdd\x20\x29\x91\x64\x3b\x40\x24\xc9\xfb\x34\x38\x89\xc5\x69\x50\xcc\x35\x9e\x20\x90\x00\xed\x28\xed\xdd\x77\xb3\x02\x94\xcf\x79\xbf\x22\xce\x70\xf2\x4a\x4f\xa4\xa6\x94\xc9\xd6\x83\x4e\x78\x5d\xa5\x27\x10\x22\x49\x61\xee\x02\x72\x53\x2c\xdc\xaf\xe5\xd2\x93\x2c\x20\x88\xcd\x7f\x4f\x58\x9d\xfd\xbd\x76\x52\xd6\xd2\x93\x0a\x09\xdb\xf5\xaf\xf5\xcd\xaf\xb6\x1e\xe9\x61\x64\xd0\x81\x1d\x0f\xd4\x97\x0a\x8e\x24\x81\x37\x67\xb6\x48\x0f\x63\x45\xe1\x3c\x83\x3d\xee\x85\xcb\x47\x85\xbd\xd2\x43\xed\x0b\xc3\x84\xdc\x5a\x51\x43\x54\xac\x64\x5e\x90\x06\x6e\x2f\x53\xf7\x50\xb5\x36\xf7\xf8\xdd\x30\xe6\x47\xc4\x13\xa6\x4f\xe3\x8a\x46\xc9\x18\x37\x02\x11\x15\x18\xd6\x3c\x77\x52\xa6\x90\x58\x02\x8f\x70\x9e\x9e\x4b\x07\x04\xb5\x3b\xb8\xdd\xcb\xca\x59\x8e\x9e\x8b\x05\x2c\xa6\x7c\xf9\xe6\xf6\x6e\xf8\x9a\x59\xe8\xa5\x5e\xe7\xd2\xf7\xc9\x72\xc9\x22\xc1\x63\x03\x9a\x86\xac\x58\x34\x0d\xf4\x3e\xd0\xf8\x95\xb1\x48\xc7\x94\xca\x39\x60\xde\x7c\x36\x85\x59\x1c\xa7\x81\xc9\x57\x3e\x8c\xee\x21\x4e\x53\x9d\x10\xfd\x41\x53\x75\x5b\xfa\xec\x68\x64\x89\xf2\x28\xb4\xac\x0c\xc7\x04\x75\x1d\x93\x64\xb4\x7d\x42\xdf\x91\x84\xe5\xc7\x37\x98\xbc\x89\x34\x30\xe0\x2f\x33\xc1\x6c\x85\x7b\x57\xd9\xde\xbf\xb8\x7f\xff\xe7\xff\xc6\x09\x2e\xc9\x52\x64\x94\xca\xb5\x41\x8b\x75\xb1\x3d\xa2\xcc\xb4\xc1\xa8\xcb\x37\x9c\x5c\x89\xfb\x91\x51\x0c\x6a\x5a\x07\x72\x7e\xe1\x1f\x0e\x56\xc6\x7d\x4d\xa6\xcd\xe6\x66\x39\x7a\x41\x3c\x52\x34\xdd\x08\xe3\x6b\xc7\x64\x57\x97\xe0\xfa\xc4\x90\x84\xfd\x42\x5d\x61\x7d\x59\x75\x2b\x19\xd7\xa9\x87\x0e\xda\x35\x2d\x71\xb6\x7d\x20\x15\xe4\xe3\x37\xe5\xf6\xa5\x2c\x27\x2b\x3e\x03\x6e\x90\x9d\x05\x76\x5a\xa0\x43\xce\x09\xdb\x4b\x04\x81\xf2\x1d\x28\xf7\x00\x54\x74\x38\x03\x3a\x90\x4c\xa0\x91\xef\x31\x2b\xc9\xd6\xd0\xfd\x5e\xf9\xf8\xd2\xe3\xf4\x88\x79\xd6\x90\x0a\xe3\xfa\x76\xf5\x33\x9b\x32\x23\x4a\x26\x03\x49\x95\xaf\x23\xf9\xd4\xf5\xed\x68\x03\x62\x92\x27\x04\x76\x31\xd5\x50\x34\xd9\x87\xa3\x5f\x02\x23\x9c\xa8\x4b\x2a\x50\x86\x75\xe5\x04\x18\x24\x93\x2a\x25\x38\x34\x16\xea\xe5\xbd\x19\x1e\xa9\x42\xa0\xc1\xfc\x50\x9a\xfd\x6c\x41\xe2\x9f\x57\xd0\x8e\x92\x29\x11\x05\x8e\xee\x6e\xbd\x47\x95\x35\x7b\x3f\x75\xe7\xc2\xc0\x58\xeb\xf5\x49\x1c\xb2\x6e\x17\x1b\xd8\x60\x17\x81\x96\xe1\x37\xc0\x40\x9b\xa5\xac\xc2\xf7\xac\x3c\xd5\xdb\xa6\xdf\x66\x18\x46\x8c\xaa\x10\x2c\xd1\xd4\xae\xdc\x36\x16\x08\xcd\xe2\x11\xfb\x54\x3a\x08\xbf\x4a\xa6\xe3\x84\xec\x91\x7e\x47\x35\xa3\x70\xa1\x1b\xac\x6e\x11\xd4\x43\x47\xf5\x27\x99\x06\x15\x59\xb3\x73\xdb\x61\x0a\x16\x93\xd1\xa6\x31\x14\x9d\x8a\xcf\xe0\xc9\x4c\xb3\xef\x85\xca\x29\x5d\xdc\x75\xbf\x25\x01\xb9\x96\x0f\x78\x28\x8b\x2d\xe6\xfa\xb6\x2a\x8f\xbe\x6b\x65\xe0\x53\x61\x79\x81\x3f\x9b\x76\x71\x7e\xcc\x8a\x9b\xbe\xfe\x42\xfa\x0c\x93\xc8\x26\xd7\x1e\x1e\xbe\x99\x57\xce\x47\x83\xc3\x0f\x12\x43\x07\x5f\x63\xf5\x6e\xab\x40\xea\x6e\xda\xb9\xf3\x04\x52\x87\x96\xd6\x72\x09\x95\xfa\x23\x9b\xf7\x84\xa5\x1f\x79\x8a\xc6\x4a\x5e\xbe\x7e\x2d\xec\x60\x18\x2d\xfa\x7e\x14\x49\x6e\x98\x42\x7e\xfa\x51\x7c\xed\x34\x32\x96\x43\x82\xde\xd6\x54\x1e\x66\x76\xa4\x1f\x83\x81\x89\x1e\xdf\x8f\x8f\xf0\x73\x5d\x48\x2c\xda\x7d\x69\x79\x1a\xf4\x90\x14\xa2\x21\xde\x92\x15\x54\xf9\x99\xa2\x0e\x1d\xfa\x46\xfa\x31\x86\x3e\xba\xba\x21\x62\x64\xbb\x87\xfa\xed\xae\xa4\x59\x44\x85\x79\x73\x66\xbc\xf4\x13\x4f\x87\x66\xd2\xc9\x1c\x61\x8a\x42\x93\x7e\x12\x24\xca\xa8\x88\xc8\x8a\x84\x72\xe8\xce\x67\xaa\xdf\x5c\xff\x38\x49\x9c\xb2\xd9\x06\x86\xf1\x41\xe9\xa7\xe8\x93\x3b\xf3\x52\x95\xfd\xa3\xf1\x50\x47\xbd\x18\x04\x9d\xbd\x3b\x80\x63\x94\xf6\x0c\x8d\x8f\xe7\xd5\x58\x24\xbe\xcb\x62\x3a\xa4\xd9\xe5\xed\x40\x98\xa2\x01\xc7\x43\x9e\x35\x67\x5a\x3e\xdd\xd9\x41\x04\x84\xfb\xdc\x2e\x9e\xba\x9f\x14\x47\x43\xe6\x47\x62\xe9\xa7\x0b\x95\x53\xe9\x0b\x16\x3a\x84\xc7\xb2\xac\x9b\xd3\x61\x1e\x29\x21\x7d\x11\x20\xf1\x53\xef\x88\xd5\xa3\xea\x93\x14\xd2\x17\xa1\x48\x23\x47\xff\x78\xc0\xeb\xba\xeb\xd2\x17\x71\x4c\x5a\x27\xdb\xdb\x8d\xef\x7f\x66\x31\xf9\x42\x06\x44\x82\x9e\x59\x70\x7c\xbf\x1d\x5e\x38\xe3\xd2\x97\x11\x28\x35\x2a\xad\x9b\x8d\xfd\xce\x67\x8a\xa5\x2f\x53\x46\xc9\x55\xa7\x32\x6d\x11\xb5\xc3\x10\xbb\xf4\xa5\x30\xa2\x3d\x35\x36\xb7\xad\x63\xff\xdb\xe0\xfa\x2a\x61\xb4\x7a\xa8\x52\x52\x51\x8a\x3b\x06\x43\x31\x62\xb0\x58\x74\xe3\x04\xa5\x17\x19\xcb\xcd\x71\x53\x94\xa7\x42\xdd\x11\x2b\x41\x07\xe6\x95\x3e\x2a\xc9\xac\x11\xe1\x40\xe4\xd6\x42\x98\x8f\x1a\x4a\x5f\xc7\x86\x1e\x9a\x50\x0a\xed\x8e\x60\xa8\x83\xd6\x85\x8b\x6d\xca\x80\x05\x1e\x47\xa7\x0d\x61\x02\xe8\x96\x6e\xa5\x6a\x17\xe7\xd3\x38\x9a\x20\x03\x16\x2b\x8a\x0c\xdc\xee\x9e\x2f\x83\x26\x32\x60\x5c\x51\x08\xfb\x26\x53\xd7\xcc\xa6\x59\x10\x8d\x0c\xfc\x28\x51\xbd\x6c\x16\xe5\xc4\x73\xa8\xaf\xd8\x6d\x81\x1f\x07\xb4\x6a\xec\xb3\x7a\xbd\x7c\x76\x0f\x13\x78\x21\xd5\x8d\x1d\xb2\xa2\x79\xec\x86\x7e\x10\x04\x11\x79\x49\xa3\x18\x73\x6f\x4b\xfd\xdf\xc5\x2f\x6e\x88\x06\xa1\x07\x86\xf3\xaf\x7c\xc7\xaa\x70\xc5\x32\x32\x08\x23\x53\x00\xbb\xc1\x02\xb6\xdd\x8f\x71\xe8\x0a\x56\xd7\x7d\x79\xcd\xfc\xd3\x86\x9c\x93\x27\xb2\x6f\x37\xa2\x1f\x59\x9e\x5f\x3c\xe8\xfc\xac\x0f\x42\x9d\x42\x34\x8a\x45\x63\xbd\x2b\x7b\x75\xfd\xa1\x22\x40\xf7\x18\x71\xa2\xc9\x70\xbe\x5d\xac\xfe\x98\xfb\x6a\x31\x28\x92\xe9\xca\x66\xa9\xe3\xaf\xb9\x77\xe3\x73\x24\xd6\x2b\x27\xd9\x41\x42\xf0\xcc\x1b\xde\xb3\x66\x66\x90\xc4\x88\xb6\xec\xf3\xe5\xbd\x19\x4b\x8d\xd8\x2e\x69\x62\x28\x3c\x5e\xb1\xd9\x43\x9e\xef\x8f\xc6\xc5\xdb\x67\x3d\x33\xe4\xf4\x08\xee\x09\x0b\x7b\xdd\xbd\xf5\x98\xcb\x89\x40\xf5\x68\xfa\x07\x3c\xf5\x28\xd7\xf0\x84\x3f\x1b\x93\x80\xbc\x87\xfc\xbd\x9f\x85\x01\xf0\x98\xf2\xc2\x8f\xbb\xaf\xdf\x98\xfb\x51\x04\x82\x78\x1e\xbf\x16\xd9\x5b\x59\x0d\x54\x52\x66\x56\xb3\x40\x24\x82\xc7\x66\x94\x3a\x5f\xda\x84\xbf\xdd\xd9\x64\x18\x79\xb6\x02\xc7\x88\xc8\xbe\x40\xb7\xd3\x04\x92\xfb\x2e\x92\x9c\xd5\x6f\x84\xc5\x81\x63\xd7\x88\x42\x83\xfb\x90\xbb\x72\x7e\x63\x0c\x54\xc4\xa2\x21\x5b\x1b\x2d\x47\x3d\xd4\x50\x06\x4a\xe8\x30\xe8\x91\x40\xc4\x64\xda\xb5\x69\xa0\x9b\xdb\x3e\x94\xd0\xc9\xeb\xc9\x00\x7d\xe5\xab\x01\x44\x96\xf0\xff\xa6\x86\xba\xeb\x12\xc8\x28\x75\x8a\x36\x06\x97\x8b\xd5\x43\x56\x77\xa7\xc6\xd0\x23\x8c\xd1\x97\x8a\x88\x58\xba\x4d\x25\xc0\x28\xa6\xc8\x0d\x64\x95\x55\xa5\x26\xe9\xef\xcb\xb4\xa3\xed\xaf\x3d\xc3\x31\x5b\xe0\x07\x65\x14\x46\xc0\x91\x09\x1d\xdd\xf4\x48\x09\xb2\x8f\xd2\xd8\xb4\xc3\xe8\xf3\x69\xa6\xc9\x96\xb7\x69\xf8\xe1\xbe\x10\xe8\x38\x14\xda\x22\xdf\xdf\x27\x93\x4c\xc7\x40\x72\x09\x36\xf8\x30\x34\x7d\x43\xcf\x47\x95\xf6\x71\xcd\x47\xa3\x17\x34\x1e\xce\xa1\x1f\xfa\xae\x72\xa0\x9b\xef\xe3\x35\x7a\xb0\x0d\x86\x81\x1f\x3b\xe8\xe1\x23\xfc\x55\x56\x8f\x59\x51\x56\x2f\x14\x97\x1c\x8d\xf8\x30\xf0\x4d\xcd\x9a\x84\x5c\xfe\x03\x14\x5a\xb8\xd5\x15\xd3\x31\x0c\x7c\xa3\x2f\xf2\x46\x1c\xd7\xed\x4b\x1a\xc0\x4b\x5c\x9f\x00\x95\x81\x18\x48\xcc\x8e\xcd\xd7\xfa\xd2\xd7\x98\x9e\x35\x01\x48\x9c\x22\x42\xd1\xbe\xd8\xb5\x31\x91\x27\xab\x40\x18\x0a\x08\xdd\x63\x9d\x0d\xa6\xb2\x77\x93\xc7\x77\x11\x05\x06\x91\x2a\x2d\x71\xd7\x5e\x0e\x2c\xd3\x30\x0a\x23\xb2\x3e\xf6\x1a\x07\xcf\x3a\x7e\x35\x11\xa6\x14\x12\xac\xca\xf2\x50\xf7\x51\xe3\xb1\xbf\xec\x56\xd9\x30\x0e\x19\xa5\x0f\x6f\xfe\x31\x72\x95\xc3\x58\x4b\x6e\x04\x38\x69\xe8\xb6\xaf\xac\x0f\xeb\x8f\x2f\x98\xc6\x40\x4b\x83\xe5\xe1\x75\x04\x48\xf3\x5f\x22\x8d\x25\xc1\x06\x96\x4f\x9b\xd1\xf5\x52\x40\x83\x47\x31\x7c\x79\x6a\x9b\x97\xd3\xaa\xe0\xcb\x9a\x06\x77\xac\x8c\x85\x1a\x58\xf4\x8f\x26\xd3\x9f\x61\xb5\x68\x26\x5f\x22\xc5\x88\x82\x8c\x66\x1e\x7c\xc3\x42\x5d\xdb\xed\x42\x9e\x78\x83\x52\xe5\x45\xf1\x6a\x83\xb6\xa9\x6b\x97\x1e\x81\xe8\x1f\xd7\x4f\xfb\xe5\xf3\xd3\x6e\xb3\xbe\xf9\xba\x5b\x3f\x3f\xed\x17\x8f\xcf\x5f\x9f\x76\xbf\x75\xdd\x02\x2a\xc3\xab\xe1\x7c\x9f\xb9\x1f\x21\x08\x08\x15\x43\xf2\x93\x17\xa8\x25\x19\x42\xc4\xa2\xbe\xba\x8b\x84\x65\x66\x32\xa8\x32\x84\xd4\x94\x53\x6f\x77\x8b\x2f\xab\x7d\xb0\xbf\x5b\x3f\xad\xb7\xf7\xdd\x55\x78\x4a\xd0\xa2\x5e\xeb\xa8\x0b\xf1\x8c\xbf\x20\x28\xa0\x4a\x3d\x09\x95\xaa\xf7\xaf\x65\xae\xa6\xd7\x41\x66\x59\xe0\x0b\x89\xf9\x54\xcd\x66\xfc\xde\x84\x06\xba\xa7\x1c\x75\xc3\x82\xc9\x89\x64\xe8\xa7\x91\x43\x64\xd6\xd3\x59\xad\x62\xc3\xac\x4f\x1e\xd5\x4d\x56\xa9\xba\x07\x20\x8d\xcf\xa3\x14\x53\x5d\x24\xa7\x07\x7f\xdb\x56\x94\x60\x92\x17\x66\x65\xb2\x79\xc6\xb9\xb4\xb1\x0c\x75\x1c\xb9\xc1\x43\xc1\x89\x11\x86\x42\x86\x3a\x35\x1a\xb8\x15\x12\xf1\xe0\xb8\xd6\x79\x6a\x87\x47\x9e\x60\xe4\x39\xde\xec\xee\x09\xe7\x6c\xcf\x12\x31\x8f\x45\x26\xd1\xfa\xd7\xa9\x6e\x76\x13\xf0\x93\x8c\x18\x4b\x98\x1a\x80\xcb\x49\x84\x70\x9a\xef\x76\x7d\x63\x9f\x2a\xff\x4c\x05\xca\xfd\x59\x54\x99\xb2\x45\x60\xd6\x8d\x1d\x9f\xdb\x0f\x19\x6d\xaf\x0f\xcf\x0f\xb1\xbb\x1f\x3f\x8a\x28\x25\x05\x55\x05\xe7\xad\xcd\x0f\xb2\x6e\x46\x45\x7e\x92\x7a\x46\xe3\xcb\xd4\x95\x9d\x6f\x6d\xb1\xf7\x78\xb5\x8a\x7c\x21\x0c\xa0\xfd\xa4\xb2\x76\xb5\xa2\x8d\x71\x7c\xf9\x30\xf1\x28\x93\xd7\x8e\x2a\x2c\xcc\xe2\x37\x50\x1b\x95\x51\xc8\x95\xb2\x85\x0a\xcb\xd5\x2e\xbe\x21\xbe\xf8\xc9\x75\x42\x69\xc8\xd0\x5f\x0c\x6b\xca\x26\x23\x0c\xa1\x6d\x8c\x02\x03\x5a\xa9\xb3\xe2\x35\x37\x5a\xe2\x4e\x9a\xf1\x8a\xf5\x3e\xdd\x7b\xa3\x28\xe6\x84\x22\xfe\xd9\x9d\x33\xe5\x04\xb5\xbb\xc5\x76\xfa\xd7\xd8\xc7\x69\x66\xca\x0c\x64\x14\xf1\x24\xb2\x3b\x01\x65\x41\x56\xea\x75\xc8\x42\x2a\xa3\x48\x71\x3f\x1a\x97\x0a\x8f\xb0\x79\x7d\x37\x18\x0c\xdc\x6d\x03\x3f\x7a\x2b\x2e\x8a\x74\x4a\xd5\x23\xcb\xdd\xd7\x31\xe0\x4a\x46\xb1\x27\x89\xea\xe3\xeb\xf6\x76\x72\x6b\xa9\x67\xaa\x74\x1a\x84\xc3\x43\x29\x7f\x38\x6f\x6a\x8b\x2e\x11\x10\xa5\x61\x4a\xd0\xe6\xed\x97\xdd\xe3\x14\xa2\x23\xa3\x54\x18\xbe\xb4\x55\xf3\xf6\x70\x8d\xeb\xed\xff\x26\x87\x58\x41\xd0\x7f\x91\x37\x94\xc9\x2f\x5d\x51\xaf\x8c\xb8\x30\x7e\xcd\x7b\x86\x1f\x44\xd1\xf0\x3b\x54\x07\xb8\x39\x6f\xcf\x07\x51\x8e\x68\x6d\x65\xc4\x65\x44\x16\xea\x12\xea\xb7\x5d\xd5\x05\xb3\x22\x88\x02\x62\x41\xa1\xea\xd1\x9b\xd3\x79\xf0\x8e\x80\x27\xae\x98\xd7\xb1\x0f\x3f\xc1\x74\x7d\x8d\xa4\x2f\x5d\xb6\x92\x2a\xf8\xa8\xcb\x20\xe6\x17\x49\x8c\x08\x90\x5a\x1e\x07\x0f\x3b\xe5\x1e\x1f\x9f\x53\x71\xc6\x95\x5b\x92\xea\xd3\x31\xef\x2c\xac\x08\x03\xcd\x4c\x28\xad\x6e\x50\x51\x3d\xc2\x23\x14\xe7\x5d\xb9\x2d\xaf\x85\x2b\x22\x14\x82\x6a\xa5\x4e\x35\x56\x77\x65\x25\x89\x7a\x6d\x65\x61\x22\x57\x69\xd2\xaf\x9c\x4b\x71\x82\xb7\x6e\x56\x37\xee\x96\x34\x37\xaa\xca\xd0\x65\x66\xee\x70\x3a\x1a\xb5\x0a\x99\xe5\x74\x7f\x1e\x31\x52\x5c\xfb\x7b\xe5\x05\x4d\xee\x46\xab\x50\xf8\xd6\xe1\x6d\x46\xa3\x69\xd4\x2f\xf6\x7c\x9f\xd2\x1c\x2e\x76\x6c\x33\x5f\x73\x35\xa0\x32\x66\x7e\x44\xe0\xad\xef\x50\x35\xf8\x3a\x34\x2d\x62\xdf\x0b\x79\x38\xc6\x41\xba\x65\x7c\xac\xef\xe9\xfa\x0b\x13\xfe\x3b\x64\x94\xab\x1a\x19\xcb\xb1\x2f\xb4\x10\xc4\xa7\x62\x81\x04\x7d\x51\xbf\x8c\x83\xd8\xa3\x80\x1a\xa8\xf2\xd8\x2c\x7e\x66\x97\x14\x52\xf3\x7e\x68\x1c\x5a\x44\x58\xeb\x26\x22\x05\xd5\x46\x76\x5f\x1c\x82\x51\x64\x3e\x56\x99\xc4\x3d\xfe\x3c\x96\x05\x8e\x5a\xb5\x65\x9c\x30\x19\x82\x4b\x8b\x22\x8e\x12\x83\x5b\x12\xa3\x42\x39\x19\x47\xa9\x4f\x9c\x4e\xbf\xf6\xe9\x2f\x70\x92\x32\x8e\xd0\xa7\x64\x98\x93\xb6\x26\x60\x18\x91\xa2\xbb\xd3\xc7\x3e\x27\xa7\x6c\x9f\x8f\x28\xcf\xe6\x47\x46\x1c\x83\xd2\x63\x3a\x00\x0a\x2a\x5d\x30\x2e\xc9\x38\x65\x3c\xec\x2a\x01\x4e\x55\x8d\x6b\xf5\xac\xb7\xcd\x49\x4d\x71\xf0\x32\x4e\x81\x91\x83\x66\x59\xec\x28\xa2\xdb\x67\x20\xe2\x54\x18\x85\xe1\xac\x26\x45\x9a\x0c\x8a\xe9\xf1\x9a\x5b\xe3\xa8\xb5\x7d\x1c\x06\xb2\xa3\x8d\x9a\x1f\xbb\x3c\x60\xcc\x09\x3f\x95\xcd\x15\x29\x21\x19\xf3\xd0\x73\xa5\x53\x8f\xb8\x2b\x17\x79\x6e\xe2\x8f\xae\x59\xb0\xb4\x03\x4c\x39\xda\x52\xdb\x06\x01\x23\x34\xbe\x05\x54\x4c\x36\x84\x18\x22\x41\xb1\xfd\x45\x85\x3f\xb3\x01\x00\xe8\x2a\xd4\x21\x86\xd8\xe8\xa7\x75\xb5\xda\xc3\xf2\x53\xdb\x47\x30\x13\xa2\x25\x0c\x05\x55\x71\xb8\xeb\x09\xad\x28\x12\xd6\x2e\x98\xbb\x37\xdc\x80\x10\x59\x73\x5f\x76\xbb\x74\x2c\x85\x26\x87\x22\x07\x72\x11\x9e\xbb\x88\x73\x2c\x55\x12\x74\xfe\xff\xf2\x57\xe8\x69\x19\x2b\x86\x5a\xf4\x4a\x27\x2b\x90\x6f\xa3\x14\x5e\xac\x94\xf4\x54\x0f\x47\xba\x90\x17\x76\xdd\x30\x72\x05\xc6\xbb\x92\x1c\x87\x9e\x74\x4f\xc6\x4a\x07\x91\x89\x88\xde\x94\x85\x32\x6c\x48\x13\xe4\xf0\x64\x12\xa3\x6f\x82\xd5\xf5\x49\xd4\x24\x9e\xbd\x2b\x29\xef\x67\x9b\xb5\xe4\xb4\xec\x59\x9e\x58\x62\x7d\x30\xcb\xea\xb5\x35\x62\x18\x27\xbe\xb6\xd6\xba\x93\x63\xec\xb2\x96\x1d\x96\x78\xc0\x71\x6b\x7a\x25\x9e\xc7\xc8\x74\x6c\x9d\xf0\x2f\x79\x29\x20\x5f\xb4\x86\x5b\x57\xdf\x72\x09\x13\x93\x89\xc7\x02\xe9\x28\x95\xa6\x0f\x3e\x08\x47\x4e\x96\x86\xc4\xd3\x5e\x34\x22\xeb\xdf\x90\x6c\xd4\x90\x70\xb6\xbf\x2f\x16\x33\x32\x23\x55\xf6\x5e\xeb\xb2\x82\x6e\x79\x4a\x58\xe2\x19\x0c\x7b\x99\x97\xa7\x6a\x7d\x3b\xd8\xfd\x46\x09\xb5\x84\x89\x90\xe4\x82\x6e\x76\xcb\x41\xf6\xab\x76\xa9\x38\xdb\xcb\x17\x06\x56\xbc\xa8\x9a\x5d\x79\xfa\x6b\xac\x84\x2b\x13\x5f\x23\xd9\x26\xfb\x23\x9c\x6f\x32\xb5\xb8\xbe\x37\x26\x41\x8c\x5e\xd8\x15\x24\xdc\x95\x15\x11\x3e\x59\x4c\xdb\xc4\xff\x4f\x02\x08\xb8\xdf\xf1\xde\x12\x3d\x91\x6d\x09\xbd\x24\xb0\x8a\x63\x2f\x99\x6c\x4e\xd5\xc8\x51\xef\x75\xac\xc6\x7f\xe6\x42\x82\xee\x84\x91\x4f\xd6\x5a\x6b\x5e\xbd\x60\x93\xb5\x77\x6f\x98\x40\x5b\x13\x76\x8a\xd7\x1d\xdf\x66\x28\x90\xb0\xf9\x04\xaf\xdf\x3d\xef\x1f\x17\xbf\xb7\x7f\x1f\x17\xbb\xe7\x95\x5b\x58\x92\x88\xc5\x84\x41\x2c\x4e\x87\x97\x76\xe1\xed\x7e\x0f\x05\x65\x34\x6f\x4e\x67\x07\xfd\x9a\x2e\xf6\xc3\xb5\xc7\x1d\xc5\x43\x06\x63\x1e\x6c\x57\xc3\x37\x7a\xac\x38\x60\xf1\x90\x20\xef\xa5\x74\xcb\x47\x12\x07\x9a\x82\x9f\xf5\x5b\x4f\xb6\xf0\x58\xbf\x6e\xb1\x98\x96\x12\xcb\x24\x81\xb8\xa7\xc1\xa6\x62\xd5\x3e\x65\x97\x24\x22\x0c\x2d\xd4\xec\x01\xd5\xeb\xb5\x79\x9e\x70\x2f\x20\xb7\xfa\x00\x3f\xed\xbd\x2e\xdf\x7a\x4c\x4f\xc2\x53\x49\x0c\x0d\xdb\xe5\xf2\x13\x04\x46\xc2\x41\x3b\xca\xbf\xca\x30\x5a\x8f\x3f\x06\xc7\xc0\x05\x97\x97\xd5\x59\x55\x16\x6b\x38\x79\x20\x90\x09\x15\xd7\x42\x25\x32\x43\x18\xb0\xfa\xd9\x54\xd0\x4b\x3f\xc9\x44\x44\x31\x99\x33\xad\x51\xb0\xa7\xa8\xe9\x7e\x02\xe4\x95\x89\x40\x2d\xac\xc2\xd3\x0f\x2c\x1e\xe0\x8c\x55\x4d\x98\x80\xc9\x4d\x49\x88\xa9\xe4\x75\x51\x55\x16\xb4\xb0\xae\xef\xaa\xf2\x7f\x58\x8c\x65\x4e\xbb\xee\xca\xd4\xfc\x99\xf2\xea\xc7\xee\x7a\x2a\x95\x94\x8a\xda\xbb\xc0\xc4\xbc\x73\x9e\x28\x8c\xc8\xa6\x46\x95\x4d\xb8\x98\x86\x4b\x14\x06\x26\x64\x4e\xeb\xbd\x22\xcc\xed\x5d\x55\x1e\xbe\x63\x36\xb9\x1f\x94\x10\x63\x47\xa8\x5e\x0f\x3d\xb4\x04\x75\x40\x86\xd0\xfd\xd7\x9b\xdd\x68\x51\xd0\x5e\x42\x07\x59\x16\xda\xf3\x66\x20\xf6\x51\x5f\xb0\xeb\xc8\x44\xfb\x09\x41\x1e\x96\xcf\x0e\xd7\x98\x7a\x5e\x28\x22\x93\x66\x30\x87\xed\xaf\x4c\x44\xf3\x6c\xa9\x3b\x4c\xc5\xb4\x23\xb7\x73\x79\xdf\xee\x9b\xfb\xca\xe8\xa5\xcc\x8e\xa8\x94\xb1\x90\x42\x79\x7b\x5d\x56\x1f\x50\xa9\xeb\x6c\x36\x32\x65\x81\x41\x01\x92\x2e\x14\x1c\x2e\x39\xfc\x65\xea\x7b\x9c\x86\xd6\x01\x8a\x13\xe4\xce\x01\x36\x54\x7f\xdd\x02\x9d\xfa\x01\x50\x89\x8b\x41\x01\x4d\xc0\x34\xa9\x2f\x38\x11\xf4\x7c\xb8\xd0\xef\x86\x82\xf3\x93\x8a\x77\x99\x06\x3e\x6a\x83\x0c\xae\x9b\xb2\xc2\x61\x7c\x20\x0d\xe2\x84\xb6\xfb\xfb\xc5\x83\x23\xd3\x95\x69\x90\x18\x31\x51\x95\xbd\x2f\x4f\xcd\x60\x9b\x4d\x43\x1e\x4b\xe9\x12\xef\xcd\xa9\x2a\x6e\xce\x2f\xd0\xa3\xf2\xa6\xae\x7f\x1a\x25\xc2\xa9\xca\x3c\x94\xef\xf8\xe0\xe4\x54\x5d\x82\x39\x8d\x04\xa3\x9d\x65\x8b\x1d\x33\xd4\x48\xf2\xe4\x57\xbb\xf7\xe4\x72\x1a\xc9\xe2\x3b\x40\x23\xdf\x8c\xf6\xf4\x5c\x5a\x3b\x8d\x99\x22\x54\xc4\x02\x7b\xbf\x37\x4d\x82\x88\xb4\x79\x6e\x16\x4f\xcb\xe7\xcd\x7e\xf9\xfc\xf4\x6d\xb5\xd9\xad\x36\xfb\xaf\x2f\x5f\x36\x8b\xdb\xd5\xa6\xeb\x18\x59\x4a\xb7\xa9\x0a\xfa\xe4\x6e\x38\x78\x14\x70\xeb\x65\xae\x2f\x28\x5a\x65\xca\x45\x42\xe4\x24\x96\x98\x98\xd0\x27\xee\x42\x1c\x35\xd5\xbf\xbd\x41\xbd\x2a\xca\xd3\xeb\xdb\x85\xb1\x35\x1f\x3b\x6f\x0f\x24\xa0\xfa\xcb\x1f\x8f\xcb\x39\xca\xec\x4b\x03\x35\x85\x98\x39\x15\x66\x57\x80\x53\xaf\x76\xf7\x93\xbb\x05\x19\xeb\xa1\x72\xf7\xa2\x38\x4f\x72\x7a\xf3\x37\x24\x7c\x4e\x40\xe3\xb7\x52\xe5\xbb\x2c\xcf\x87\x58\x97\x54\x84\x9c\x72\xf9\x1b\x50\x50\x6d\x8f\x88\x6a\x50\x1b\x23\x53\x01\x18\x49\x5b\xe0\x6a\x2e\x76\x57\x56\x37\x8d\xbc\xa6\xf5\x39\xb9\xb2\x32\x64\x03\x46\x03\xfb\x6f\x25\x9e\x53\xa1\x24\x05\xf5\xbe\x60\xf3\x52\xe6\x99\x3c\x7f\x06\xe3\x4d\xa5\x67\xec\x8f\x76\x06\x1a\x92\xb1\xbf\x37\x58\xa5\x97\x46\xbd\x4c\x88\x25\x34\xee\x26\xb7\xd2\x06\x50\x71\x80\x9f\x0f\x59\xf1\x03\x95\x93\xfd\xee\x1d\xd7\x14\x03\x46\x63\x07\x08\xbd\xb5\x68\xde\xb0\xc8\x80\x68\x39\x7b\x44\x47\x7f\x3d\xe4\x9c\x40\x6c\xdd\x72\xb1\x3f\xb6\x33\xfb\xf3\x0f\xa7\x59\x6c\xaa\x8e\x6d\x25\xd5\xf3\x83\x83\x14\xa7\x3a\x49\x9d\x2e\xd0\x17\xa8\xe7\x22\x77\xdc\x8b\xcd\x1a\xfb\x8a\xcd\xbf\x4a\x95\x81\x9c\xb6\x2b\x23\x33\xbb\x2a\x94\x43\x46\x71\x16\xc9\x24\xec\x1d\x90\x76\x92\x51\x88\x7e\x7e\x5d\xe6\x0c\x8c\xb8\xc6\xfa\xcb\xae\x53\xc1\x90\x9c\xa1\x61\x39\xfb\x4e\xe4\xd5\xbf\xcd\x14\x88\x4b\xce\xb4\x61\x3f\xac\x28\xa7\x7b\x57\x56\xdf\xcb\xea\xc7\x75\xe4\x72\xb7\x23\x72\x5f\xb0\xa4\x63\x9e\xbb\x39\x55\xc5\x68\x59\xe6\x81\x6f\x08\xff\xaa\xac\x39\x41\xde\x43\xb6\x79\x90\x4a\x43\x34\x4b\xa1\x92\xad\x71\x64\x8e\xce\x02\x1e\xbf\x99\x80\x03\x31\x59\xff\xfe\xe7\xe6\x79\x5d\xbc\x77\xa7\x90\x9c\x9e\xf6\x98\xc3\xd9\x54\x14\x5c\x8d\x1f\xf0\x38\xf2\x63\xe1\x9c\x84\x06\xbf\xd6\x6e\x13\xe5\xb1\x0c\xd1\x68\x80\x67\xaf\xaf\x58\x59\x08\x95\x6b\x4d\x7c\xb3\xfa\xd3\x9a\x0d\xc5\x08\xbd\xc5\x93\x28\x0c\x4d\x25\xe9\x07\x79\x6d\x83\x00\x0d\x4f\x84\x30\x92\x5f\xa7\xca\x54\x13\xb8\x86\xd4\x33\x40\x80\xa1\x36\x35\xe5\x7b\xe7\xf7\x4f\x9e\x32\x45\x69\x61\x02\x80\x51\xba\x76\xfc\xe5\xd2\x24\x22\x2c\x2f\x6d\x97\xa0\x75\x8e\x77\x15\xe2\xc3\xf3\xee\xca\xf9\xb8\xe7\x0d\xd4\xf0\xc7\x70\xec\x5f\x45\xd7\x46\x8e\x09\xe7\x2a\xf5\x6c\xd1\x9d\x11\x80\xee\x04\xc2\xad\x59\xc1\x21\x96\xfe\x90\xc5\xa1\xcc\x0a\x93\x2d\x37\x11\xe9\xd3\x48\xb6\xd6\x1e\x23\x3c\x46\x59\x2c\xfc\x79\x5c\x37\x78\x30\x28\x17\xd7\x16\x25\xf4\x52\xa9\xb0\xa5\xfb\x51\x18\x9c\x9a\xc2\xe2\xdc\xee\xc0\x75\xfd\x51\x56\x16\xaf\x97\x0e\xe1\x95\x5c\x48\x9f\x48\xd7\x3b\x64\xf9\x53\x59\x7c\xa3\x40\xe9\x18\x51\xf1\xf7\x36\x58\x2e\x30\x8c\x5d\xd9\x9b\x91\x2a\x9e\xab\x30\x92\x5c\x32\xe9\x4a\xe5\x17\x79\xd3\xda\x4a\x57\xfa\x09\x4d\x15\x0e\x16\xa0\xaf\x4e\x33\x54\x6e\xe3\x3b\x50\x60\x2a\x42\xde\xe5\xcf\x21\x17\xb3\xe4\x4a\x1a\xdf\x8c\x66\xe5\xaa\x79\x6b\x2f\x6a\x79\xf3\xc6\x59\x27\xae\x54\x90\x1a\x3d\xb7\x76\xe2\xbb\xb8\xc3\x75\xed\xdb\x2b\xef\x42\xc7\x26\x43\xff\xaf\x61\x4d\xbe\xe4\x3a\x4d\xe9\x8d\xff\x2b\x7b\x2d\xba\x80\x12\xd7\x3c\xf5\x0c\x0c\x60\xb9\x7d\x9e\xbc\x04\x2d\x51\xda\x72\xdc\x0b\xde\xef\xf9\x97\xa0\x55\x44\x4f\x60\x18\x6e\x89\x76\x65\xb0\x3e\x69\x8c\x88\x46\xe0\x65\xfd\xc7\xea\x61\xbf\x1c\xe4\x4b\xb9\xd6\x46\xec\xa0\x5d\xfe\xd7\x4f\x0e\xab\x0a\x1e\x47\xf2\x3c\xfe\x28\x4f\x6a\xf0\x2c\xc0\x78\xea\x00\x36\xc5\xe9\x30\xbe\x6d\x60\xb2\xd3\xe3\xa7\x70\x88\x21\x59\x75\x87\xfa\xc2\x50\xc2\x65\x84\x49\xfd\xe8\x89\x8c\x6f\x4f\xed\x5a\xdc\x43\xb4\xc0\xd7\x3e\xf9\xbc\x94\x58\xa6\x45\xa5\xf3\xa0\x1e\x7b\x2b\x01\x82\x28\x4e\x07\xe2\x3e\xe3\xf5\x12\x82\x48\xfa\x16\xca\xbd\x95\xe5\xe9\x58\x76\xa2\x6e\xcb\x72\xea\x68\x41\x10\xfb\x04\x7e\xc2\x9f\xd9\x24\x59\x0b\xa1\x97\xc6\xa6\xe2\xe4\x48\xd1\x51\xb7\x2d\x41\xc8\x02\xb0\xf3\xba\xf5\xc5\x36\xed\x12\x5e\x77\x8d\x41\x64\xf2\x22\x15\x88\x9b\xb2\xec\x6a\x6b\x20\xd4\x29\xa5\xa2\x6f\xa8\xd2\x7a\xc8\xbf\x28\x21\x12\x8a\xf2\xa8\x45\xf9\x0e\xed\x2e\xd2\xfd\xae\x13\x5f\x77\xfb\x52\x2f\x05\xd9\x49\x4a\xda\x7e\xb1\xcf\x60\x40\xfe\x70\xcc\xb3\x06\x0a\xb5\xea\xaa\x94\x25\xc4\xa0\xc9\x0f\x59\x35\x7a\xe8\x74\x41\xac\x02\x66\xb1\x8a\x4f\x70\xc0\x97\x8c\x42\x23\xa7\x19\x14\x16\x24\x3e\x1a\xe2\x6e\xac\x9b\x2f\xd8\x3c\xc0\xc7\x79\x24\x68\x2b\x21\x09\x78\x64\x6e\xb7\xf5\x07\xee\x06\x14\x55\xe3\x41\x0b\x49\xca\xa9\x2a\xc2\x86\x40\xcb\xa2\xc0\x11\x1c\xce\x86\x5f\x86\xf8\x56\x7b\x64\xaa\xcd\xf0\x14\xa7\xaa\x18\x28\xbe\x49\xe0\x2c\xa5\x54\x58\x26\x4b\x0b\xca\xdc\x98\x7a\x7f\x95\x99\x6c\x46\x3b\x9a\xd6\xc5\x54\xa2\x5d\x02\x4f\x0c\xdf\x10\x92\xfa\x53\x21\xc7\x85\x65\x17\x40\xd0\xcf\xe0\xa1\xc0\x53\x4e\x95\x3e\x32\x6b\xf0\x05\x8e\xd3\xb0\x08\x70\x2e\xe9\x3b\xbd\x19\xdd\xbb\x75\xd1\x71\x05\x4a\xe0\x92\x51\x54\xe4\xa5\x3a\xbf\x2f\xbb\xef\x03\xcc\x10\x82\x66\x04\x9f\xfe\x52\x41\x31\x0c\x72\x8f\xbe\x0f\x44\x46\xd7\xa4\xed\x78\x6b\x02\x01\xf3\x86\x12\x40\x1a\x7b\x51\xc7\x1e\xf8\x8a\x41\x57\xda\x2b\x01\xc0\xe0\x88\x6c\x74\x73\xd9\xee\xbb\x57\xd0\x3e\x00\x22\xa5\x80\x72\x6b\x3c\x0e\x15\xe5\x24\x08\x2f\x26\x5f\x2e\xab\xbf\x19\xc6\xf0\x0d\x09\xc0\x76\x57\x91\x51\x48\x01\x0b\x8a\x0f\x7d\x1e\xee\x05\x29\xb4\x6f\x81\xd2\xdb\x63\x59\xd4\x65\x55\xbf\x65\xc7\x7a\x4b\x6e\xf0\xcd\xd9\x5a\x9b\xf3\x03\x4d\xc9\x88\x44\xca\x2d\xba\xc6\x30\x5f\xdb\x36\x0c\xa4\xe8\x6c\x37\x7a\x0f\xcb\xb2\x50\xd9\x00\xcc\x0f\x28\x02\xc2\xde\x9e\x0c\xed\x6f\xbf\x6f\xf7\x57\x40\xf4\xc7\xba\xfd\x46\xa9\xe6\xf3\xd0\x3a\x68\x66\xe4\xa7\xbe\x54\x88\xc5\xaa\xc0\xea\xb5\x7b\x75\x9a\x2b\x0a\x9d\x92\xba\x0c\x64\xf9\xae\x2c\x1f\xa1\x38\x3f\x12\xed\x43\x77\xf3\x1a\x84\xb2\x19\x9c\x21\x19\x95\x04\x8d\x9a\x32\xec\xcb\xfc\xef\xd4\x5d\x0a\x2f\x4d\xd8\x40\x58\xf3\xf6\x5c\xc0\x21\x93\x57\x29\x3b\xda\x03\x90\x18\x47\xf6\xae\x58\xbd\x5f\xbe\x85\xc7\x03\xcf\x44\x7d\xcf\xf5\xa8\xd2\x59\x0a\x0f\x42\x72\xb3\x8d\xb4\xd4\xba\xe7\x52\x72\xed\x32\xa1\xc0\x04\x49\x25\x51\x58\xc2\xa8\xd3\x8c\x27\x90\x60\xdc\x90\x08\x98\x85\xe3\x69\xf1\x6d\xfc\x35\x04\x53\x3e\xa5\xc1\xd6\xcb\xdd\x67\x28\x4b\xc1\x54\x4c\x0b\xae\x2e\x4f\x55\xf3\xf6\x1d\xd1\xed\x2d\xc2\xe7\x31\xb9\xa7\x5f\xf0\x40\x18\x2c\xf7\xc6\x45\x10\x18\xc1\x49\x62\x47\xac\x6b\x54\x86\xe7\xdc\xc4\xad\xb7\x39\xd4\x6f\x73\x7e\x8f\x88\x74\x4c\x08\xa3\x02\x3f\x86\xb5\xc2\xb6\x35\xf6\x42\xba\xdf\x43\x56\x0c\xcc\x67\x11\x33\x95\xc0\x48\x90\x90\x46\xae\x5d\xbc\x26\x57\x88\x01\xa8\x7e\xe4\x07\x4e\x8a\xde\xa5\x88\x5b\x93\xb1\xe3\x8e\xb9\x5d\x2d\xd7\x8f\x5d\x68\x47\x24\x61\x00\x36\x58\xf6\x3c\x05\x22\x89\x24\x34\x41\xa9\xbb\x53\xbb\x21\x90\x6d\xbb\x84\xfc\x22\x0b\x67\x87\xd4\x24\x62\x38\xac\x5c\x1f\xfd\x65\x57\xe6\x83\x48\x78\x84\x76\x38\x3b\x19\xb9\xcb\x64\xa4\x48\x50\x84\x72\x54\xeb\x41\x09\xd8\xf1\x2b\x4d\x99\xaf\x1c\xa2\xa0\xf5\x18\xcb\x93\x2b\xdd\x38\x42\xd5\x53\xb3\xff\x3b\xec\xc7\x76\xd0\xe9\xf0\x85\x6e\x98\x73\xdf\x23\x92\xb9\x7f\x94\xd5\xeb\x10\x6d\x2a\x78\xa2\xa3\xa4\x8f\x52\xd6\x26\xfd\xe3\x1a\x15\x10\xd3\xdd\x06\x15\x1e\x8e\x73\x72\xf4\x93\xe7\xe6\x28\xe9\xfb\xef\xf0\x70\xc4\x0a\xda\x77\xfd\x88\x50\x9f\x4c\xc9\xc9\xcd\x74\x43\x1c\x46\xae\x04\x47\x0c\x45\x57\x40\x62\xc0\xa8\xcf\xe2\x2f\x94\xcd\x43\x3f\xef\x20\x4a\x69\xf8\xb5\x73\x29\xb7\x52\x05\x0e\x0b\xdd\x9d\x89\xd8\xb9\xed\x0a\x5b\xca\x0c\x72\x1b\x73\xae\x0d\xcf\x8b\x3b\x97\xf0\x34\x65\xb5\xb0\x68\xaa\xf3\x70\xe3\x17\x92\x4b\x4c\x6c\xee\x6a\x57\xee\xca\x06\x1f\xb2\xff\x9e\x32\x05\x4d\x59\x8d\x4c\x73\x81\x0c\xc9\x34\xff\xba\xbd\xbd\x7d\xfe\xfe\xf4\xf0\xbc\xb8\x7d\xd9\xac\x97\x2e\x82\x2b\xb4\x67\x6a\x33\x8b\xd3\xc1\xc6\xfc\xeb\xed\x4c\x05\x92\xd0\x51\x48\xd5\xb6\x96\x3f\x6b\xac\x77\x2c\x85\x4e\x18\xa5\x3b\x1e\xca\x57\xbb\x83\x75\x0d\x68\x94\xa7\xa8\x8c\xce\xd4\x34\xac\x65\xd9\x35\x23\x27\x16\x33\xb3\xbe\xd8\xf6\x2d\xe4\x14\x7b\x78\x2c\x8b\xe6\x2d\x3f\x1b\x51\x31\x47\x49\xfd\xb7\x1c\x04\xe9\x79\x82\x0c\x64\xe3\xff\xbd\xe4\x20\x2f\xea\x4e\x5c\xcf\x00\x69\xea\x1b\x69\xb9\x0b\x1a\x42\x29\xbd\x50\x44\x06\xe3\x7f\xc8\x8a\xaf\x1d\xe2\x70\x94\xc6\x91\x5e\xec\xbb\x3d\x93\x32\xb3\x36\x87\x30\x25\xf0\x93\x92\x79\x11\xed\x70\x37\xeb\xe1\x72\x2d\x7d\xcf\xa8\x2a\xef\xa0\x6e\x26\x0d\xe0\xd9\x29\x78\x5f\xe6\x6a\x05\x15\x31\x96\xae\x2d\xb5\xca\xfc\x33\x05\xa0\x68\x19\x7a\xc7\xaa\xb5\xc6\x56\x46\x10\x4a\x8d\x80\xc9\xd3\x43\x94\xa0\x04\xd2\x7e\xce\x51\xbf\xf6\x77\xfc\x68\x61\x10\xd0\xad\xbe\x67\x75\x67\x07\xcb\x50\x0b\x12\xcc\x35\x81\x17\xc3\xd3\x93\x5f\x53\xc2\x94\x32\x0e\x12\x8a\xd3\x50\xba\xc6\xd5\xd5\xb4\x2b\xf5\x63\xd6\x91\x90\x4a\x19\x73\xa0\xf9\x63\xbe\xee\x71\xf4\x75\xc7\xf7\x14\x73\x41\xc4\x90\x4f\xcf\xbf\xaf\x17\xee\xf0\xc4\x4b\x8d\x10\x31\x14\xad\xf1\xff\xb5\x21\x55\xf9\x2b\xef\x32\x09\x04\x95\xd8\x10\x95\xda\x76\xff\xb2\xda\xec\x37\xcf\x5f\xbb\xea\x7e\x99\x70\x48\x23\x27\x3c\xd8\xf1\xc6\x49\x99\xfa\x9c\xd2\x2e\x1f\xbf\xf8\xaf\xeb\x9f\x08\x53\x4f\x54\xe6\x6a\x5c\xb2\xe1\x3a\xa4\x46\x82\xef\x0d\xea\x31\xff\x8e\x6b\x97\xdc\xb1\x0a\x3d\x57\xa6\x84\xe1\x09\x7f\x36\x77\x88\xdf\xb3\x42\x95\xdd\x85\x38\x13\xc2\xba\xbc\x04\x47\x7d\x81\xca\x0a\xee\xf5\x75\x2b\x73\x03\x65\xf2\x5e\x78\x1c\x6b\xb0\x04\xc4\xd7\x02\x77\x73\xf9\x7e\x7b\xb8\x8c\x4d\x19\x61\xe7\x05\xdc\xe5\xf0\xba\x28\xd4\x7d\xa6\x14\x16\xcb\xae\x88\x42\xca\x38\xb5\xb8\x24\x7a\xa4\xfd\x21\xa3\x21\x74\xa1\x18\x33\x7f\x97\x32\x4d\xa9\xfc\xab\xfd\xce\xa7\xe3\x17\x38\xe0\x4d\x1f\x6e\x93\x52\x9b\x50\x89\x5d\xd4\x0c\x82\xd0\x35\x2a\xf4\xe8\xd0\xcc\x70\x91\x1b\xb4\xd4\xcb\x14\x47\x2b\x51\x06\x3c\xee\x42\xc9\x76\x9b\xec\x5a\x75\xe0\x39\x11\xe3\x0d\x16\xcd\x25\x7e\x49\xea\x08\xa8\x10\x6d\x7f\xac\xb2\xff\xe1\x08\xee\x2b\xb5\x52\x14\x03\x38\x96\x0d\x16\xed\x4d\xe4\xe7\x65\x56\x91\xd9\x9b\x15\xaf\x2f\xa5\x7b\x49\xca\x8b\x0c\xa7\xa7\xa8\x4a\x50\x12\xea\x11\xc3\xb8\x54\x9e\x0c\x0c\x72\x1e\xed\x7d\x74\x3b\xa8\x62\x29\xf3\xb5\xdd\x49\x28\xaf\xb6\x2b\xe7\x27\x82\xf2\xbd\x88\x3e\x44\x17\x21\xb8\xa0\x39\xfe\x45\x0c\xc7\x9d\x27\x45\x6e\x03\xd3\xb4\x86\x99\xc1\x7c\x09\xb0\x55\xbe\x08\x0c\x8c\xc5\x28\xe7\x59\x5f\xa4\x35\x67\xff\x51\x8a\x8b\x7d\x60\x34\x19\x54\xe0\x25\xa9\xc5\x41\xca\xf2\x70\x84\x62\x52\x56\xae\x02\x99\x50\x36\xa5\x75\x85\x9c\xfa\x8f\x54\x81\x06\x0a\xee\xed\x05\xd4\x18\x87\x0a\x65\xa9\x46\xf8\x49\x15\xda\xfc\x5c\x17\xd7\x51\x91\xef\x53\xb6\xc0\x38\xe1\x94\x87\xee\x43\x93\xfd\x05\xa3\x08\x08\xcc\x5b\xe0\xcf\xe6\xa9\xbc\x00\xed\xa8\x08\xc1\x6c\xf6\x0e\x22\x3e\xd9\x62\x55\x1c\x32\xe1\xbb\xa5\xf1\xae\xac\x96\xe5\x28\xa6\xa1\xe2\x10\x06\x25\x7b\xab\xe6\xed\x16\xb2\xfc\x6c\xa8\xd3\xc6\xb7\x12\x4b\x24\x27\xed\xa6\xcc\xd5\x01\xba\x0b\x24\xa1\x24\xbc\x32\x36\x6f\x38\xb6\x22\x54\xa2\x3c\x02\xe2\xb5\x6e\x6e\x8e\xd5\x6d\x79\x12\x79\xd9\x93\xe0\xa8\x34\x36\x52\xf4\x2e\x40\x34\x7e\xb4\x54\x29\xcf\x66\x2b\xfe\x78\x19\xa9\xd2\x8e\xfb\x71\xc0\x5e\xe7\xb3\xf5\xc4\xaa\x53\xdd\x7c\x7f\xc3\x62\xdb\x90\xba\xaf\xbb\x1a\xd7\x86\x77\x48\x9c\xce\xcc\xc5\x65\x15\xa4\xa9\xb4\x6c\x88\x7e\x14\xdf\x9c\xaf\xd6\x49\x2b\xa1\x03\xd5\xe9\x81\x19\x82\x83\xfa\x11\x8e\x97\xa5\x88\xce\x07\x53\x92\x1b\x0a\xdf\x76\xc3\xc0\x25\xc1\xe5\xa6\xc0\x7d\xa5\x42\x3f\x30\x25\xda\x13\x75\x4f\xa9\x94\x08\x89\xef\x63\xf9\x74\xbb\xb3\x26\x8e\x6b\x42\xab\xa2\x54\x97\xf9\x3b\xfe\x66\x6f\x77\xee\x8f\xeb\x1f\x7b\xe4\xf1\xfd\x6e\xab\xd5\x46\x1c\x8d\xe3\x1b\x42\x15\x91\x87\x77\x20\x8a\x23\x1c\xa4\x92\xd1\x4b\x21\xe4\x1d\xc6\x67\xce\x8d\x42\xe6\x49\x02\x6e\x9a\xd1\x44\x0e\xe2\xae\xfc\x17\x56\xce\x72\x43\xc6\xbc\xd0\x6e\x23\x37\xad\xbd\xee\x56\x83\xcf\x98\xf3\xda\xa3\xc0\xb2\x39\x90\x00\x34\x4c\x56\x53\x24\x1a\x93\x5e\x6c\xa6\x79\x5b\x35\x6f\x97\x2c\x15\xc8\x52\xd0\xc6\x5c\x12\x43\x6b\x09\x99\x0e\x09\x30\xd1\x94\x37\x4e\xb0\x6a\x9c\x4d\xb0\xfd\x02\x16\xd1\x66\x6b\x78\x30\x8d\xdc\xd4\x06\xf3\x51\xd9\xe2\xc8\x81\xc5\x20\xf5\x93\x4e\xd7\x3e\x2f\xab\x3f\x31\xcf\xbb\x3d\x15\x03\xc5\x0d\x5d\x0b\x36\xf2\xcd\x0c\x90\x1c\x95\xc9\x82\xdf\x95\xd5\x23\x56\xed\x7b\x74\xd3\x09\xc3\xd8\x78\x21\xb5\x7c\x43\x75\xca\x71\xe4\xe9\xd1\x7d\x86\x03\xa7\x6e\xc4\xb3\xd0\xba\x4f\xd1\x7f\xdc\x79\x24\xe7\x9e\xf5\x66\xf1\x1d\x8b\x13\xee\x4a\x5b\x92\xd7\x5d\x0a\x0d\x48\x54\x14\xe6\x4d\x8d\xe6\x35\x46\x3e\x12\x46\xa0\xc9\x0e\xb8\x2f\x8b\x7d\x53\x81\xc2\xc3\xb0\xc2\x10\x23\xf0\xb8\xf5\x14\xbf\x97\xd5\x90\xa1\x56\x62\x1c\xa6\xb1\x4d\x35\xbc\x20\xc5\x00\x47\x11\x9b\xf1\x1b\x8c\x85\xf2\x63\x97\x39\x5a\x42\x25\xba\xa5\x0d\x13\x16\x44\x56\x93\xc9\xc0\x4f\xaf\x8c\x69\x4c\xc3\x90\xdc\x05\xf3\x14\xdd\xe4\xc7\x34\x0a\xa9\x24\x71\xd5\xfa\x0b\xdd\xec\x42\xee\x21\x71\x80\xe5\xf8\x8e\xf9\xd7\x49\x6d\x0a\xf2\xd8\x48\x69\x98\xba\x4a\x3b\x10\xef\xaa\xf2\xf0\xcf\x13\x4e\xc3\x4e\x08\x71\x08\x36\x99\x93\x6f\xcb\x03\x3a\xd5\x9d\x6f\x19\x3c\x9f\x9a\xfe\x7d\x43\x62\xd8\x7e\x1d\x9e\xeb\x11\xaa\xd7\x89\xd6\xba\x44\x40\x41\xfa\x8f\x28\xcb\xfa\x5c\x37\x78\x30\xc6\x45\x47\x84\xe2\x4e\x26\x99\xd1\x54\x7c\xc5\xe6\x25\xfb\x89\xbd\xe4\x55\x57\xfb\x8c\x52\x27\x24\x47\xd9\xee\x9f\x59\xf1\xda\x8d\xbd\x09\x37\xa4\xed\xad\x22\x41\x5a\x6b\x1d\x5e\xc7\x24\xc5\xfc\xd4\xb5\x2b\x8f\x66\xfd\xfe\x15\x9b\x5b\x0a\x24\xd2\x94\x20\x51\x66\x9a\x1b\x97\x2a\x23\x12\x91\x25\x34\x88\x3a\x15\xf8\xa9\xfa\xbb\x44\xf4\x7d\x74\x31\xb6\x2d\x11\xa9\xb5\xf7\xb9\xc5\xa6\x1e\x81\xd0\x51\x27\x8a\x5e\xcc\xf7\x9b\xef\xbf\x8e\xa5\xa1\xb6\x6e\x00\x28\xe5\x0f\x1d\xbd\x4f\x5d\x43\xd4\x10\x2a\x43\x87\x54\xbc\x58\x1a\xdc\xde\xdc\x44\xad\x7d\x6f\xf8\xfd\xec\xbc\x1a\x3f\x8f\xf6\x98\x67\x88\x4b\xda\xdd\x7e\xa4\xf2\x25\xb5\x17\x58\xb4\x2c\x36\x37\xa7\xb3\x25\xc1\xa3\x6d\x98\x68\x77\xde\xa7\xe0\x55\xed\x85\x21\xf6\x2a\xf0\x7b\xfc\x79\xcc\xcb\xd1\xd6\xaf\x99\x32\x94\x04\x5d\xc1\x40\x9e\xef\xca\x4e\xba\x6e\x76\xaa\x68\xa6\xcc\x12\x59\xa1\xae\xb0\x9e\x59\x44\x35\x53\x8a\xf0\x5f\x06\xb1\xf0\xac\x77\x6f\x58\x1d\xca\xe3\x39\x87\xf9\x57\x98\x5e\x2d\x8f\x18\xad\xf1\xda\x6f\xbd\x83\x4b\xcd\xdf\x2b\xf7\x19\x28\xb3\x23\xac\x1e\x46\x75\x9a\x3a\x8c\x04\x45\xcb\xac\x80\x19\x49\x5d\x9c\x30\xf7\x27\x0f\x11\xc5\x9a\x1c\x46\x50\xea\x06\x89\x01\xc7\xec\xe9\x97\x94\xf3\x93\xbb\x8c\xb8\x94\x3d\x89\xf4\x56\x66\xad\x85\x5d\x37\x77\x65\xb5\xca\xf1\x7a\x9d\xa7\x8e\x55\x9a\xd8\xd4\xdb\x62\xb3\x2e\xde\x77\xbd\xa0\xbf\xd4\x09\x37\x02\xac\x2e\xdb\x7e\xe5\x1c\x89\x0e\x08\x36\x67\xae\x3d\x12\xb9\x19\x85\x9c\x74\xea\x7b\x48\x39\x43\x8a\x0b\x3d\xeb\x0d\xca\xb2\x9a\x4c\x2e\x9d\x06\x29\xe1\x15\x76\x58\x37\xfe\xd8\xa4\xd2\x69\x24\x29\x82\x57\x37\x44\x17\x56\xbb\xb0\xab\x4e\xe3\xd4\x10\x22\xdb\x40\xf4\x80\x62\x57\xea\x54\x48\xb0\x06\xdb\xba\xc1\x2e\x5f\x40\x4f\x7a\xe9\xcb\x69\x1e\x44\xd2\xd6\x04\xdc\xe2\x6b\x85\x38\xdc\x24\x34\x0f\x4c\x41\xce\x7a\xf9\xfc\x81\xf8\x83\xf5\xb9\x0f\xcd\x43\xb3\x7f\x51\x46\xe0\xf1\x76\x72\xef\x3c\x94\xca\x45\xfa\xd7\xc5\x7b\xd6\xd0\x9c\x98\xb3\x56\x34\x78\x01\x15\x90\x59\x57\x81\x52\x7a\xf3\xc3\x0d\x98\x22\x9d\x92\xaa\x50\x04\x28\xdd\xbb\x7b\x81\xd4\xf8\x61\xa6\x90\xad\xd3\x42\xbd\x39\x8f\x11\x30\xe3\xb3\x89\x20\x01\x63\xce\xbc\x23\xe4\xb6\x88\xef\x05\x2b\xdd\x7b\x00\x83\x4c\xd6\xe8\x2f\x8b\x3f\xff\x7f\x17\x79\xd3\x42\xc7\x32\xb6\xca\x63\x63\xa6\x48\xdb\xa1\xf5\x72\xa9\xca\x8d\x34\x0b\xf6\xcb\xc5\x8b\x6b\x51\x1e\x50\xbd\xc0\xfa\xe9\x76\xdd\xfd\xe6\x4b\x8a\x67\x6c\xa8\x00\x90\x42\xa6\xa7\x9c\xe2\xa0\x50\xd7\x8f\xa8\x32\x18\x44\x5f\x35\x2a\x9f\x52\xc9\x47\x38\xd5\x46\xad\x67\xf0\xdd\x75\xe8\x91\xfb\xbc\x00\xf9\x06\xd5\x79\xa8\x7b\xa5\x3c\x8f\xfb\x14\x50\x6a\xdd\xe7\x91\xfc\x90\x6d\x67\xcc\x4b\x6d\x91\xfd\x3b\x56\x8d\x3f\xa1\x83\x98\x74\x8e\xba\xd0\xeb\x5e\x19\x60\xc1\x43\x97\x9f\x56\x9e\x1f\xc4\x14\x6b\x69\xe0\x07\x6e\x31\xcf\x9f\x67\x65\x86\xe7\x3c\x45\xe5\xf9\xa1\x09\xb2\xde\x96\x1f\x85\x91\xf6\xfa\x3b\x70\x0c\xe5\xf9\xe8\x59\x68\x5c\xbb\xcc\xdb\xca\xff\xee\xe5\x28\x2f\xf0\x63\xa7\x71\xd2\xed\xeb\x4b\xe3\x8a\x8e\xf8\xa2\xba\x0f\xa9\xbc\xd0\xce\x14\x3a\xe4\x03\x2a\x55\x8f\x61\x8e\x83\x68\xc7\xf8\x19\xc2\x44\x9a\x28\x17\x7e\x58\xec\xf7\x67\x56\x78\xdb\x5f\x85\x76\x0d\xbb\x83\xfa\x2d\x2b\x8b\x7a\xd1\x34\xd5\x80\xd9\xce\x76\x8c\x98\x24\xd6\x58\xa2\x6c\xea\x1d\xff\xbc\x34\x99\x80\xca\xdd\x79\xe4\x9b\xf2\x83\xd7\xf6\x65\x54\x05\x01\x8c\xae\xe1\x29\xdc\x21\x91\x62\x68\x03\x0f\x37\x59\x3e\xde\x14\x95\x17\xc5\x09\xa5\x85\x72\x68\x6d\x86\x91\x97\xa0\xbc\x28\xd5\xb4\xc5\x9a\x90\xd0\xd4\x52\x18\x5f\x27\xf6\x79\xd4\xde\xda\xdd\x1f\x94\x94\xf9\xb4\x50\x4b\x79\x31\xf8\xe8\x64\x89\xb1\x40\x8d\x32\x83\xe9\xc8\x05\x66\x94\xa9\x0c\x53\xb3\x93\x33\xbb\xf8\x9a\x10\x0b\xed\x77\x3a\x26\x65\xb5\xa7\x97\xb8\x41\x6d\x92\xa2\x93\x73\x0a\x4d\x2f\xfa\x40\x29\x89\x1b\xa7\x79\x30\xe9\x25\x3c\x83\xcf\xcb\x4b\x50\x4f\x06\xfa\x74\x45\x07\x42\x11\xbb\x66\xec\x94\x0e\xe0\x54\xdd\xf6\x52\x71\x5d\x8f\xd4\xd8\x6d\x24\x8f\xbc\x69\x64\xd7\xa0\x05\xc5\x84\x04\xf8\x52\x94\x16\xc2\xde\x8d\x09\xe9\x49\xb2\x7d\x1e\xca\x57\xb2\x0b\x65\x76\xfc\x35\xa7\xbf\xf2\xa4\xef\x91\xf8\xd3\xee\xa3\x5c\x14\x6a\x71\x0f\xb9\x7e\x29\x8b\xff\x65\xbf\x75\xed\x92\xe8\x81\x1f\x9f\x77\xb7\x59\x3d\x28\x12\x54\x9e\x8c\x7c\x6e\x51\x71\x20\x9b\xa6\xce\xfb\x55\x46\xaa\x90\x56\x6d\xc8\x73\xe3\x13\xd8\x57\x37\x7d\xbf\xed\x78\x33\x04\xbc\x8f\x7f\x8e\x96\x29\x95\x28\x32\x56\x48\x6d\x64\xf5\x8e\x85\x93\x74\x57\xcc\x63\x09\xa9\x04\xae\x5a\xb3\x6d\x83\x45\x33\xa9\x2e\x50\xcc\xc3\xd4\xa0\xc0\x31\x1b\x06\xee\x14\x63\xcc\x04\x23\x44\x8f\x50\x9c\xdb\x40\x14\x63\x89\x62\xc6\x0a\x39\x15\x3f\xd8\xba\x5e\xa8\x2e\x84\xac\x18\x53\x8a\xaa\x84\x2d\x47\x89\x51\x77\xec\x10\xc2\x86\x8d\xd8\xf5\xf5\x59\x10\x0c\xd1\xc1\xcf\x94\xde\x2a\xab\x4d\x99\x8f\x23\x4d\x8a\x05\x91\x4f\xd4\x27\xc6\xcf\x5b\x74\xc0\x57\xc5\x02\x61\x02\x30\xed\x1a\xba\x90\x43\xea\x1c\xd7\x41\xa5\x84\xd3\x76\x57\x79\xcc\x8a\xcf\x18\x3d\x15\x0b\x10\x28\xbe\x71\xf3\xfc\xf4\x75\xbb\xf7\xf7\xb7\x8b\x3f\xb7\xee\x6a\x61\x64\x9e\x7d\x63\x33\x2a\xa8\x3e\xe1\x95\x57\x2c\x44\x45\x95\x91\x87\x4c\x11\x38\xe0\xf9\xd8\x7d\x45\x16\x25\x01\x4d\x9f\xbb\xb2\xfa\x91\x0d\xbf\x2f\x8b\xb4\x49\x85\x34\x46\xc6\xb9\xd3\x6d\x52\x2c\x16\x86\x7e\xb6\x9d\xea\xbb\xe5\x85\x7d\xac\x58\x2c\x85\x23\x77\x72\xa5\x3b\xd7\x0c\xe0\x81\x5b\xa2\x58\xe2\x03\xad\x0f\x23\xec\xf9\x20\xac\x3a\xff\x78\x49\x28\x9d\x38\xb0\x5b\xf5\xa7\x7b\x26\x4b\x40\xe2\x60\x40\xb8\x79\x32\xc5\xd8\x28\x96\x08\x49\xd1\xf5\xbd\xca\x6a\xe8\x03\x15\x8a\x25\x32\xa2\x30\xc6\x7e\x08\xd0\x98\x01\xc7\x2b\x96\xf2\x88\x32\xff\x5d\x70\x04\xa1\x1e\x98\xaa\x93\x52\x37\xc5\x78\x18\x13\xe2\xfe\x91\x64\xe1\x47\xdf\x00\x3c\x33\xb5\x6b\x6c\x5e\x40\xfe\xa0\x32\xb1\xf1\xc1\xe0\x29\x1a\x57\xe6\x4e\x1c\xe7\xd9\x55\xd9\xa0\xc9\xa5\x81\x1b\x8f\x6e\x8b\x55\x86\xb5\x15\x2f\x98\x5c\xa1\x75\x4b\x28\x54\x72\xaa\x25\x39\xa8\xf6\x77\x15\xa4\x60\xd4\xa6\xfa\xec\xf7\xc8\x00\x53\x4c\xa5\x8a\x80\x97\x79\x56\x53\x4d\x49\x37\x82\x94\x54\x89\x05\x35\x50\xbd\x95\xdd\xb4\x87\x60\x3c\xc5\x50\x01\xb1\xa0\x51\x60\x38\xed\x7e\x45\xcf\xb7\x22\x16\xce\xf0\x19\xdd\x2e\x6a\x95\x28\x97\x9f\x27\x85\x93\x66\x59\xaa\xee\xfb\xea\x20\xa4\xd0\x85\x31\x56\xad\x57\x30\xfe\x7e\x9a\x0b\x02\x14\x64\xf5\x8d\x91\x91\xea\x6f\x49\x4b\x0c\x1d\x13\xfb\xa8\x6a\x5a\xf9\x1e\xa4\x29\x77\x26\x88\x09\xd1\x15\xcd\x7a\x72\x6e\x9f\x05\x2a\x60\x7d\x68\xf1\x4a\xca\x40\xf9\x3e\x4b\x95\x29\x38\xcf\xf3\x21\xfb\x94\xf2\x7d\x2e\x28\x81\x4d\x75\xdf\x26\x30\xe5\x90\x59\xca\x0f\x03\x96\xb8\x28\x04\xa5\xfb\xef\x8f\xbf\x0c\x8d\x2a\x3f\x0c\x95\x0b\x46\x3d\x95\xcd\x06\x29\x1a\x39\xe4\x95\xb7\xfd\xa2\xc0\xf7\xe4\x48\x56\x69\x44\xb2\xa2\xfc\x28\xf6\x10\xdd\xbc\xef\x7e\x14\xb1\x76\xda\x7f\x65\xe1\x58\x63\x87\x69\x7d\xe5\xc7\x9e\x20\xfb\x6d\x4f\x69\x79\xcb\xf8\x3b\xcd\x53\x5d\x80\xdb\x27\x32\x89\xca\x8f\x65\xe7\x61\x76\xe4\x5d\xb4\xc3\x0e\xf3\x81\xca\x4f\x58\x42\x78\xd2\xeb\xc8\xee\xf9\x8f\x92\x84\xdc\x77\xb4\x24\x6f\x50\x14\x98\x5f\xf0\x48\x28\x3f\x49\x63\x5a\x6c\x4d\x90\xf9\x03\x8e\xcf\x5d\x4c\xb1\x6d\x04\x4a\x4b\xed\x50\xbe\x15\x65\x5e\xbe\x9e\x83\x2f\xfd\xde\xf8\x99\xdb\xad\xfc\xd4\x8b\x49\xa2\xdd\x20\x64\x08\x8a\xb0\xbf\x75\x27\x4e\x23\x45\x28\xb6\xd5\xee\x7e\xbf\x7b\xde\xff\x73\xbb\x33\x6c\xfa\xfb\xcd\x62\xb7\xea\x3a\xe9\x94\x26\x94\x29\xcc\x5a\xd7\x39\xf4\xca\xaf\x5d\xe4\x3e\xb8\x90\xdc\x68\xff\x69\xc5\xa1\x95\xcf\x3d\xdf\xf7\x7a\x2e\xd0\x76\xd6\xee\xce\xc7\xee\x63\x73\x4f\x19\x31\xb0\x11\xa8\x4a\xf9\x3c\x34\x1c\xd9\xf5\x31\xcf\x1a\xa3\x5a\xd2\x7d\x0e\x9e\x1a\x17\xf4\x0d\xe1\xb8\x2d\xab\xc6\x45\xd6\x9c\xdd\xe4\x03\x33\x88\x50\x52\x4f\xd6\x0d\x56\x6b\x59\x0e\x33\x8e\xad\xa7\x15\x52\x40\x86\x32\x3c\x0e\x96\xd3\x37\x9a\xf4\x1b\x65\x02\xbb\x52\x7a\xe5\x0b\xc5\x88\x23\xcd\xc4\x12\xee\x40\x8e\x72\x7f\xca\x17\xe8\x11\x81\x8a\x0b\xf9\x5d\x5d\x53\x7b\xdf\xc5\x97\x02\x99\x0d\x61\x35\x39\xde\x5c\x96\xd5\xb8\x7e\x32\x0a\x4d\xea\x4b\x64\x55\xf3\xb6\xf8\x99\xcd\x93\x7e\x28\x5f\x62\x60\xc2\xe7\x44\x54\xdc\xee\xc3\xb3\x44\x43\xca\x47\xcf\x14\x78\xbc\x22\x71\xf3\x56\xdd\x73\x62\xcf\xf7\x7a\x5f\x36\x98\x77\x0d\xda\xe7\x86\xf2\xc7\x68\x19\xff\x0f\xd5\xbe\xa2\x05\xf1\x0e\xb2\x1c\xd5\x73\xae\x4c\xf6\x62\x02\x7a\x74\x47\x73\xae\x7a\xe9\x8e\xe5\x5b\x76\x49\x4f\x34\xb9\x43\x2d\x7d\x8a\x63\x0f\x80\x12\x5f\xab\xec\xa2\x7e\xbb\xab\x7b\x1b\x46\x74\x54\xe0\xb1\xd8\xc4\x5d\x5e\xb1\x59\xbf\xdc\x6d\x89\x2c\x6a\x72\xc1\xae\xab\x24\xa9\x6e\x73\x6b\xed\xf4\xfe\x52\xe6\xea\x21\x9b\x90\xc5\xab\xc0\x03\x4d\x14\x18\xcb\xe7\xa7\xbb\xf5\x97\xfd\x6d\x3b\xa7\xb6\xeb\x5b\x57\xda\xac\x02\xe6\x99\xf4\xc4\x2d\x34\xb0\x2c\x8b\x86\xf4\x43\xfe\x4e\x30\x4f\x05\x2c\x4e\x28\x08\x73\x03\xd5\x01\x9a\xff\xed\x70\x84\x4f\x51\x81\x1f\x09\xdf\xa6\x81\x4c\x66\xcf\x79\x7d\xd3\x65\xa0\x1f\x5e\x81\xcf\x15\xd1\xaf\xac\x97\xcf\x64\x96\x0d\x63\xc0\x2a\x08\x42\x46\x64\xa2\x87\xbd\x84\x3c\x17\x20\x7f\x7c\x81\xba\x6b\x94\x1a\x3c\x4b\x25\x3f\x97\x44\x54\x41\xe8\x9b\xd8\x15\x9c\x9a\xb2\xfb\xe6\xae\x2d\x61\x24\x1d\x55\x9f\x0e\xf7\x16\x11\xbc\x7c\xa6\xf8\x4e\xd4\x75\xe1\x40\xa9\x3e\x0b\x48\x82\xec\x73\xae\x3c\x15\x44\x3a\xa6\x08\x5b\x83\x70\xb0\xbe\xa0\xba\xe2\xbf\x05\x71\x1c\x51\xdc\x6f\x9d\x97\xef\xf8\x67\x79\x72\x17\x8d\x53\x53\x8a\xa1\xd0\x68\xac\x4e\x0f\x93\x1e\xf1\xd5\xdf\x2c\x96\xbf\x7f\x7d\xd9\xef\xbe\x3f\xbb\x03\x93\x20\x11\x9e\x5b\x53\x5e\x3b\x78\xa7\x0a\x12\x90\x89\xc1\xd1\xbc\xbe\xe6\xe8\x22\xd4\x83\x6f\x90\x32\xa0\xbc\x81\x11\x00\xbe\x39\xcf\x84\x68\x82\x94\x49\xb0\x2a\x4a\xff\x28\xc5\x45\xba\x7f\xa0\xbe\xe2\x0e\x00\x8f\x8c\x6d\xd0\xda\x19\xf5\xee\x86\x52\x04\x22\xbf\xc5\xe6\xad\x72\x94\x86\xae\x49\x6b\xca\x72\x28\x2b\x9c\xd4\x03\x33\x55\xc0\x7d\x93\x93\x36\x9f\x63\x1e\xa0\xe2\xba\xa6\x66\x5f\x3f\x56\x16\xee\x3a\x90\xd3\x50\x01\xe7\x06\x20\xad\xc9\x54\xdb\x1e\xa0\x1a\x8f\x63\x88\x0c\xcd\xce\x1e\xba\x3a\xcf\x8b\x05\x72\x34\x3b\x41\x21\xc9\x19\x1a\xe6\xb3\x27\xfc\xd9\x0c\x39\xfe\x87\x1c\x0e\x2a\x10\x89\x89\x18\x74\x11\xf1\x61\x04\xc0\x6d\x10\x81\x64\x22\xb4\xfe\xc6\xc3\x9c\x1f\x34\x03\xac\x55\x81\x4c\x22\xc6\x47\xd6\xcc\xfe\x69\xb3\x73\x4f\x25\x45\xe8\xb9\x60\xb5\xfa\xeb\xa4\x32\xd9\xfa\x84\xe3\x68\x4a\x80\xa1\x47\x1c\x64\x22\x2b\xa0\x3a\xef\x6b\x84\xaa\x2f\x6e\x9b\x3c\xb5\x8e\x24\x8d\x60\x9d\x15\x6a\x99\x67\x2f\xad\xa1\xb3\x28\xd4\x16\x9b\x97\x4a\x5f\x48\xab\xbb\x83\x44\xc7\x7e\xe3\x28\xec\x9d\x21\x1c\x7a\x9e\x4f\x34\xfb\x7b\x71\xca\x72\xb5\x7d\xcb\x8e\xc3\x3a\x2d\x36\x61\x87\x76\x07\xa1\xb1\x2b\x6b\xa3\x06\x60\x25\x34\xac\x22\x94\xed\xc3\x98\xe1\xaf\xef\x70\xe2\x83\x42\xbf\x6b\x95\x66\xff\x1f\x67\x6f\xb6\xdd\x36\xae\x6d\x0d\xbf\x4e\x2e\xea\x82\x24\x40\x12\xbc\x94\x25\xd9\xd1\x2e\x77\xc7\x52\x92\xaa\x3a\xe3\x0c\x0d\x34\x0b\x16\xb7\x29\x52\x9b\x8d\x1d\xed\xa7\xff\x07\x17\x00\x76\xa2\x9c\x7c\xff\x4d\xb9\x22\x82\x1d\x88\x66\x35\x73\xcd\x39\x11\x11\x52\x34\x08\xa8\x67\x18\x5c\x70\xe8\xb5\x6b\x2f\xcc\x96\x53\x29\x1a\x84\x21\xc6\x99\x8a\x76\x22\x6d\x51\x21\xda\xb0\xe9\xe8\x09\xfe\x42\x51\xea\x6b\x1c\x8b\xb8\xf8\x3d\x72\xb9\xc9\xfb\xe4\xbc\xa2\x51\x68\x2a\x64\x78\x55\x41\x55\xdd\x42\xb7\xd5\xd3\x28\xa1\x86\x20\x2f\xe5\xf5\xae\x98\xb2\x00\x28\x1a\x69\xea\xb8\x79\x1c\x8b\xcf\x33\x6f\x1d\xc5\xf9\xbd\x96\x46\x9a\xe1\x74\x4d\xcb\xa6\x57\x33\x6b\x7f\x4e\x10\xcb\xf9\x76\x96\x86\x24\x2f\xed\xa6\x31\x8d\x03\x8d\x15\x27\x36\x6b\xb0\x17\x67\x7e\xb5\x98\x50\xd1\x38\x8a\x90\x8d\x0c\xb5\x48\x37\x8f\x77\xfb\xed\xd7\xcd\x6e\x79\xff\xf4\xe8\x8c\x39\xca\xbc\x24\xb1\x51\x52\xc7\x5a\x31\x43\x37\xac\x28\x23\x14\x5d\x96\xc7\xa7\xee\xcc\xc4\xc7\xc5\xa9\xc2\x5a\xaf\x55\x91\x43\x97\x1d\x9d\x92\xb5\x2a\xca\x78\x6c\x94\xaa\x32\x9e\x1e\x3f\xf5\x2a\xe7\x2b\x4d\x14\x65\xc0\xd0\x4e\x50\x85\x4b\x67\xd9\x03\x09\x35\x82\x97\x48\x7d\xed\xf4\x66\x15\x4d\x98\xb0\xe1\x4d\xb3\xce\x6c\x9f\x2d\x83\xc3\x28\xdb\xe3\x1a\x73\x0f\xa1\x1a\x5c\xa9\xff\xa7\x1c\xc2\xc5\x53\x72\x6a\xcc\xf6\x7d\x0e\x1f\x5f\x8b\xb2\x82\xed\xa1\xf8\x64\xd4\x77\xba\x59\xe3\xa1\xcc\xa3\x04\x47\xfd\x9f\xc5\x69\x14\x4c\xa1\x9c\x09\x84\x99\x7d\xe0\x47\xdf\x1b\xa2\xc6\xa9\xf0\xe6\x60\xfa\x08\x16\x78\x83\x18\xbf\x49\xfa\xaf\x8a\x2c\xe3\x57\x82\x3c\x54\x32\xdd\x87\x0a\xce\x45\x73\x3d\x1c\x6f\x4f\x50\x7e\xe8\x5b\x40\xff\xa5\xa2\xec\xf8\xb5\x14\x61\x48\xe4\xf2\xfc\xf4\x74\xbf\x5f\xaf\x36\x3b\x27\x5c\xa9\x28\x78\x04\x53\x68\xc6\x88\xde\xf1\xf2\x15\xea\x19\x0a\x35\x45\x81\x13\x8c\x59\x89\xe6\x7c\xcf\x73\xf5\x23\xad\x1d\x45\x93\xfb\x20\x2e\x82\xfe\xc7\x38\x94\x4e\x35\x37\xe3\x84\xcb\x03\xf4\xfb\x62\xe8\x05\x11\xd6\x9f\xee\xd6\x8b\x87\xfd\xf3\xfa\x65\xb9\x7e\xdc\xed\xef\xfe\x59\x77\xc7\x43\xa3\x44\x78\xb7\xfa\xcb\xfd\x14\x44\x9e\x05\x7f\xd7\x77\xbc\xb2\x36\xc7\x78\x44\x85\x41\x64\x34\xbc\xfb\x6d\x01\x33\x68\xbf\x50\xf1\x9d\xef\xe3\x90\x78\x01\x56\x62\xac\xd6\xdf\x97\xf7\x8b\xed\x76\xbf\xfe\x6b\xf7\xb2\x58\x22\x27\xec\xcd\x62\xdb\x3d\x2b\x21\x80\x2a\x34\x46\x10\x15\x83\xa9\xe3\xee\x0b\x89\xa0\x5e\x64\x71\x62\xa5\x5a\x57\xb2\x2c\x3e\x9e\xf2\x1b\xab\x8c\x31\xb1\x95\x43\x4a\x98\x19\x0c\xe9\xab\xa9\x76\x7a\x2e\x8b\xd7\x92\x1f\xd7\xab\x6f\x23\x93\x31\xa4\x92\x22\xc7\xae\x65\xa0\x5a\xe7\xea\xee\xc2\xa5\x0d\x43\x4f\xa0\x39\x7d\xb9\xc1\xcf\xee\x5a\x61\xc8\x35\x3a\x4e\x8b\xdb\x97\xcd\xd7\x6f\x37\xb2\x6c\x37\x2e\xb7\x16\x87\x51\x40\x11\x43\x77\x32\x50\xdd\xa1\xad\x11\x46\xb1\x26\x36\x12\x81\xbf\x8f\x54\x30\x6d\x9b\xd8\x8f\xa9\x1d\xe8\x77\x90\x43\x95\x5e\x48\x8e\x4e\xda\x73\x1a\xeb\xc1\x7a\x82\x29\xd6\xd6\x27\x78\x2e\x11\x4f\x3f\x6e\xcd\x02\xed\x1b\xe3\xc4\x38\x3f\x38\x4e\x0f\x25\x54\x87\x21\xfd\xea\xe4\x9c\x28\x82\xc0\xa9\x28\x9c\x4a\x30\x5a\x26\xe3\x3e\x49\x44\x18\xf5\x7a\x33\xbf\xd4\x99\x99\xdc\x21\x91\x86\x13\xea\x8e\xbf\x57\x69\x5e\xb8\xee\xe2\x3e\xc1\x18\xfe\x4d\x5a\x2b\xe0\x19\xa6\x1f\xc7\xb7\xe5\xa1\x44\x0d\x9c\xe5\xcb\xd3\x8f\xd5\x76\x71\xbf\xde\x3f\x3d\xaf\x1f\xdb\x0d\x65\xb7\x79\xe8\x86\x1f\x8f\x02\xdf\xd4\x97\xa5\x99\x72\xd6\xaa\x2b\x1b\x98\x1f\xd9\x02\x02\x65\x32\x1d\x59\x56\xd4\xf7\xc5\xeb\x95\xbe\x51\x91\x46\xe7\xf3\x26\xad\xd7\x67\x98\x22\x2f\x5c\x23\xd0\x58\xa6\x0a\x38\xac\xc7\x46\x56\xa8\xb4\x21\xf5\x47\xe5\xc9\xef\x3c\x73\x4b\x4f\x08\x3e\xd8\xda\x5a\x05\x70\x7c\x81\x53\x63\xf2\xdc\xb3\xc4\x41\x2a\x04\x6a\x08\x50\x2c\x2a\xf9\xb9\x75\x78\x7f\x40\x3a\x50\xee\x53\x21\xb0\x18\x3b\xb4\x35\x7d\x8c\x53\x86\xf1\xad\x9b\xf3\x3f\x3f\x96\x9f\x7b\x33\xa1\x66\xda\xb7\x6b\xcb\x5f\x3f\xae\x82\xfa\x5c\x63\x09\x58\xf9\xb3\xfc\xba\xf8\xd7\xe6\xf1\xce\xde\x3e\xf2\x42\x89\x51\x81\xc7\x6f\x0f\xfb\x4e\x15\x71\xf1\xd7\x66\xdd\x35\x60\x0c\x4b\xe6\x76\x07\x9e\xbf\xcd\xd3\x97\x8c\xec\xe7\xa8\x35\x12\x12\xb7\x2b\x94\xfc\x08\x73\xba\x30\xd7\xf2\xbc\xe3\x0e\x8c\x3c\x08\x06\xb1\x4b\x94\xa9\xc4\x52\xf4\xbe\xac\x48\x45\xbe\x47\x50\xe0\xaf\xc9\xab\x22\xb3\xd5\xfa\x37\xbc\xcb\x37\x47\x7e\xa4\x82\x21\x1e\x67\xe9\xc4\x4d\xfa\xf4\x5f\xe4\x73\xaa\x51\x98\xf1\xdb\x8e\xd0\xfd\xf7\xf5\x76\x87\x4c\x86\xdd\x61\x61\xec\x76\x30\xb5\x19\x1d\xeb\xe2\xe8\x73\x44\xbe\x54\x48\xaf\xdc\xee\x6e\x9b\xe5\x6a\x7e\x74\x46\x01\x01\xb4\xfb\x8a\x92\xcb\x0c\x06\x81\xac\x88\x00\x8b\x2d\xd4\xd5\x81\x8f\x2e\x20\xe8\x2a\x22\x5a\x21\xd5\x11\x4a\x31\x3e\x35\xf5\xa9\xa9\xb7\x48\x8f\xf1\x65\xb6\xb2\xcc\x9e\x45\x93\x10\xe9\xc9\xbe\xa7\xf0\xb1\x47\xe0\x40\x6d\x2b\xcd\xcd\x92\xb0\xb7\x39\xf1\xe9\x59\x3a\x71\xfc\x91\x69\xc5\x37\x0a\x72\x6b\x61\x7e\x9a\x3e\x8c\x42\x15\x22\x86\x78\xb7\x59\xbf\x10\xf7\x7a\x21\x10\xdc\x09\x37\xdb\xfd\x76\x73\xf7\xb8\xd8\x3d\xbd\xfc\x3d\x1e\xa3\x51\x44\x28\xb1\xf5\x33\xcf\xdc\x10\xf9\x5f\x72\x42\xa9\x28\x62\x1e\x8b\x2d\xc8\xa2\xd7\x5e\x68\x7f\x37\xcc\xc4\xca\x46\x4e\x7a\x19\x39\xd5\xda\xb6\x08\x7a\x5e\x9c\x52\x53\x36\xbf\x1d\x86\x3f\x7f\x31\x1a\xaf\x8c\xce\x38\x09\x71\x74\xb6\xe3\x0e\xd4\x68\x97\x8b\xe2\xc4\x48\x0c\x21\x71\xae\x2d\x06\xed\x8e\x29\x0f\xd7\xbe\xbb\x92\x2b\xb8\x29\x8a\x6e\xa8\x32\x65\x42\x99\x15\xd4\x37\xdf\xbe\x7d\x9b\x6a\x50\x5c\xe9\xed\x84\xfa\x18\xa1\xb1\x0f\xf7\x5c\xc2\x31\xcd\x61\x58\x72\xac\x22\x19\x45\x38\x49\x2a\xae\xa1\x6a\xc4\xfc\x0a\x1b\x29\xdf\x60\x9f\xad\xdc\x2a\x16\xd5\x3e\x0e\x68\x45\x46\xde\x6c\xa4\x7c\xc0\xfd\x65\x5d\xa6\xf2\xf7\x94\x4c\x55\xa4\x24\x17\xa4\xf3\x7a\x5a\xe3\x79\x5b\xf3\x37\x67\xe9\x8c\xbb\x17\x42\xca\xac\xbe\x0e\x86\x4b\xaa\xc7\xce\x61\x8c\x40\xfa\x91\xa1\x89\x78\x38\xa3\x08\xfe\x64\x88\xe8\x48\x1b\x14\x7b\x73\x3c\xee\x80\x77\xe7\xe9\x38\xc0\x0c\xd2\xea\xfe\xaf\xef\xfd\x6f\x86\x86\xf9\xc8\x7f\xbe\x76\xc1\xab\x48\x33\x8a\x30\x95\x63\x6a\x57\x64\x5b\xf3\xdd\x1f\x0f\xd1\xf3\x73\xcb\xca\x85\x87\x17\x69\x30\xee\xd7\x43\x51\xe4\x83\xaf\x1c\x7b\x10\x24\xa6\xfc\x7b\xd1\x45\x41\x77\xc5\xa7\x75\xde\xed\x49\x31\x90\x9e\xa4\x66\xfe\x03\xc6\x7e\x60\x0a\x44\xca\x42\x14\xf5\x7d\xca\x05\x16\x4b\xdd\xa7\xe2\x4b\xd7\x80\x29\x6b\xed\xdc\x15\x3c\x5b\xef\xbe\x7e\x99\x5c\x21\x0e\xec\x76\x94\x3f\xf0\x37\xf8\x96\x97\xa0\x9b\x8a\x8b\x0c\x90\x73\xb6\xbb\x0e\x37\xe9\x56\x7c\x9c\xa9\x8b\x14\x07\x09\x17\xd2\xd9\x54\xc5\x69\xc5\xcf\xd3\x06\x2a\x34\x7a\x75\x5c\xbe\x41\xcf\x79\x62\x8f\x12\x8f\xfb\x7d\x58\xaf\xc3\x63\xcf\x44\x54\x62\xc2\x0d\x96\x78\x2f\x4d\xf5\xe6\x2d\xcc\xa3\xbf\x54\x4c\xa4\xef\x81\xf3\xe3\x7f\x40\x6a\x52\x5c\x1d\xc9\x86\x03\x12\xc4\xa1\x9f\xa0\x3c\xb8\xdd\xb3\x8d\x3f\x68\xa6\xf6\x85\xd9\xd4\x39\x4f\x71\x48\x8d\xe8\x65\x05\xb0\xae\x0f\x83\x9a\x73\x15\x87\x2a\xc2\x61\xbc\x97\x3c\x5f\x15\x1f\x79\x56\x70\xf5\xe5\xd7\x7c\x09\x2a\x0e\x75\x84\x41\x8a\xf9\xf2\xd7\x45\x87\x1e\xfc\x03\xaf\xd1\xed\xc3\x7e\x34\xee\xa2\xd8\xa7\xb8\x12\x3d\xa7\xa0\x9e\xd3\x93\xd5\x1c\xfb\xe5\x54\x8d\x59\x18\x23\xf1\xb5\xe5\x97\x7a\xe0\x39\x7f\xed\x07\x00\x13\x12\x6d\x0f\x93\xd8\x59\x36\x55\x5d\x1c\x67\xb8\xb9\xc7\xdf\x20\x61\x01\x57\x76\xe1\x76\x42\x2d\xee\x50\x12\x93\xae\x80\x3c\xdf\xc2\x24\x0c\x13\xf3\xc4\xc3\x92\xd6\x23\xff\x89\xea\x83\x83\x04\x7a\xcc\x75\x1c\x44\xbd\x70\xda\x27\x24\x64\x2a\x16\x94\xcb\xa9\x5e\x60\x10\x7f\x19\xb7\x89\x12\xec\x31\x9d\x72\x5b\x61\x2e\xdd\x42\x1a\x0b\xc9\xa3\x61\x74\x70\xdb\xc8\xd6\x8b\xd1\x4d\x36\xce\x5c\xc6\x42\x87\x6e\x2f\xc3\xd8\x00\xe6\x0e\xe6\x67\xad\xf4\x4c\x20\xc0\xbe\x7b\xcd\x31\x00\xec\x42\x17\x93\xb6\xda\xa4\x0f\xd0\x96\x1c\x44\xa2\x62\x25\x8d\xee\xb8\x91\x81\xe1\xaf\x06\x16\x3b\xfd\x1e\x83\x21\x0b\xdc\x24\x06\x6f\x1b\xf5\x0a\xcb\x46\xbe\x75\xf3\x4f\xc7\xa0\xbb\x7c\xe2\xca\x4a\xfa\xa7\x1d\x72\x56\x31\x2f\x24\xd2\xa6\x77\x6e\xa0\x1e\xd6\x41\x2b\xe6\x45\x4a\x3b\xa3\x94\x37\x38\xd8\xa6\xf9\x7d\xe6\x09\x86\x08\xc1\x4e\x5c\x6d\xb0\x8b\x33\x4f\x18\x57\xae\xa3\x5f\x1b\x7d\x1c\xe6\x69\xa9\xc6\xce\xf2\x9c\x86\xba\x62\xbe\x67\x62\xc4\xc7\x4e\x86\xe5\x29\xff\xd1\xc5\xcd\x98\xcf\x0d\xa9\x7f\x67\x59\xae\x8a\xbc\x7b\x84\x20\x0a\xf0\x11\x4e\x1d\x93\xf8\x00\x71\xab\x58\x20\x05\xb1\x5d\xfd\x15\xd2\xf2\xcb\xa5\x2d\xdc\x3f\x06\xf1\x7c\x67\x42\x2d\x0f\xbc\xb5\x48\xa0\xbc\x28\xde\x57\x8c\xf8\x0a\x63\xbf\x96\x34\xd3\xe0\x38\x6e\x01\xaa\x9d\xf3\xbc\x18\x21\x9e\xab\xef\x6f\xbb\xac\xea\x7e\xe7\x24\x36\xf6\xaf\xf5\xa8\x41\xfd\x4f\x03\xe5\xf9\xc6\x0c\xc7\x69\xbf\x10\xa5\x18\xef\xbc\xfa\x47\xf8\x98\x75\x17\x58\x48\x23\x6a\x78\x37\x5f\x53\x87\x35\x63\x21\x18\x87\xe3\x9f\xe2\x28\x52\xf8\x58\x1a\x75\x20\x77\x34\x4a\x08\xd6\x23\x54\x37\x69\x3d\x08\x51\xb2\x28\xe1\x98\x95\x4a\x8f\xc7\xa2\xac\x3b\x62\x1e\xc5\x62\x12\x51\xea\xa8\xaf\x7f\xa7\x84\x79\x90\x78\x67\x31\x8f\x11\xc7\xfc\xe3\xfe\x66\x55\xf2\x8f\x6a\x75\xe3\x2e\xcb\x7c\x8a\x68\x44\xc9\x4b\xe3\x50\xf7\xb2\x87\xae\x45\xc0\x30\xbf\x71\xb3\x7b\xdc\x76\xa2\x10\x8a\x31\x2d\x2c\x9b\x32\xd2\x6c\xf1\xba\x86\x32\xff\x56\xb5\x1f\x6c\x58\xcc\x3e\x9a\xe7\x2c\x09\x01\x7c\x07\x2d\x2d\x07\x79\x99\xc1\x5c\x63\x22\x88\x3d\xab\x10\x8d\xe6\xf6\x6d\xd1\xfc\x92\x70\xdb\x9d\x1a\x6a\xee\x88\x85\xd0\xa8\x6d\x37\x3a\xc3\xf3\xbc\x1b\x80\x09\xdc\x3b\x88\xd8\xc3\x94\xe5\x6b\xc9\xf3\x7a\x81\x6b\xd3\x43\x7a\xb9\x10\xd8\xd6\xd2\xe7\x91\x29\x53\x2c\x5e\xb3\x91\xf0\x75\x7b\xcc\xac\xf0\x25\x70\xb5\xaf\x86\xc6\x2d\x93\x81\xa1\xcd\xdc\x67\x05\x32\x1c\xff\x00\x71\x97\xea\x1a\x73\x0b\xb9\xc2\x9a\xa1\xf9\x5d\x98\x49\x22\x83\x61\xa0\xbf\xf8\x85\x2b\xc1\xa4\x30\x42\xc8\x46\xd4\xf7\x61\x28\x3d\x6c\x5b\x40\x04\x81\x9d\x17\xdf\xa1\xac\x7a\xaf\x8e\xe9\x44\x9a\x4c\x5d\x8a\x06\xcc\x75\x1e\x64\xc5\xb4\x00\x07\x00\x5e\xa5\xaf\x29\x06\x6b\xbe\xa5\x97\x75\x05\x43\x4f\x97\x69\xc5\x30\x44\xb2\xfe\x09\x79\x3a\x46\x1f\x24\x9e\x9f\x80\x21\xc6\x5f\x6e\x9e\x37\x6b\x57\x81\xaa\x12\x2f\x48\x30\x67\x89\x50\xcf\x02\x29\x97\xdd\x11\x9a\x20\x6a\xc5\xe4\xaa\x8d\xb9\x35\xbd\xfd\xac\x7e\x96\x4a\x82\x38\x41\x3c\xda\x5f\xcf\x3d\x1e\x5c\x25\x81\x88\x92\x21\xb6\x6d\x05\x9a\x37\x99\x43\xa0\x55\x4f\xda\xa4\xde\xa6\xcb\x73\x12\x58\xde\xb7\x75\x6b\x51\x95\xa9\x34\x25\x56\xdd\x41\x85\x10\x86\xfb\x69\xd4\x70\xfe\x03\x26\x01\x10\x60\x2e\x9a\x3f\x66\xe6\x55\x09\xe1\x86\x35\xbb\x44\x02\xa4\x67\x28\x8f\x69\x55\xa1\xba\x46\x2d\x87\x64\xb9\xc3\x1d\x20\x09\x29\x41\xa6\x52\x4c\x41\xc2\x62\xb2\x72\x25\x61\x18\x18\x9e\x9d\x97\xdd\x8f\xa7\x97\x3f\xf7\x5d\x3e\x63\x40\xa5\xa1\x92\x50\x4a\xc7\x25\x67\x0b\xf8\x07\x09\xd7\x24\x22\x01\xb1\x02\x51\x77\x65\xf1\x51\x1f\x6e\x9a\xe3\x69\xd2\x4b\x31\x51\x4e\x5b\xb7\xdd\xbe\xaa\x9a\x1f\x4f\x5d\x64\x60\xb4\x46\x24\xb1\x26\x49\xd8\x85\x8d\xbe\xcc\xa8\x27\xaa\x84\x29\x29\x2c\x29\x85\x9b\xd7\xed\x83\x21\xbd\xc7\x08\x77\xf0\x5b\x30\xbb\x24\x69\x0d\x02\xf3\x06\x03\x3e\xfb\xc1\x2b\x26\x42\xa0\x43\xdc\xa5\xdc\xbe\x6d\x57\x3f\xd2\xfa\x60\xd2\x9d\x93\x8b\x81\xc2\x45\xe5\x64\x5c\xa0\x1f\x90\x0e\xf7\xc3\x24\xd1\x26\xf1\x56\x0d\x28\x71\x27\x1f\x45\x04\x31\xe2\x04\x6e\xd3\x12\xfe\x1a\x4d\x14\x11\xfb\x52\x76\xe1\xa2\xfa\xda\xca\x91\x28\x3f\x41\x26\x84\x7f\x23\x51\xe4\x80\xd1\x73\x32\x37\x5c\x73\x41\xb0\x96\xff\x3b\x94\x35\x54\xc3\x59\x01\x7e\x84\x90\xa4\x45\x76\x3a\x14\x79\xb7\xb9\x25\xc0\x0c\x16\xe1\x03\xa9\x50\xef\x79\x75\x05\x48\x93\x80\x0c\x30\x1b\xbf\x37\x3a\x28\x98\x94\xdf\x6f\x96\x4f\x2e\xd2\x91\xe8\x80\xf9\x96\x31\xe6\x5f\x85\x30\x7a\x26\x4b\x5e\xc3\x6b\x51\x4e\x1c\xa1\x44\x87\x1c\x4c\xcc\xe8\x27\x46\x96\x3f\x4f\xa0\x24\x3a\xd4\xe8\xbe\x16\xbc\x4a\xab\x55\x5a\x42\x17\xe0\x48\xb4\x14\xc8\xd4\xf6\xef\x06\x5e\x8b\x6d\x9a\x65\x7c\x59\xe4\x15\xe4\xd5\xb9\xf2\xfc\xf1\xd7\xe0\x1e\xf1\x0d\x7f\x08\xe6\x71\xbb\x7b\x8e\xff\x0c\x56\x3a\xee\x51\x8d\xbc\x7d\xdb\x63\x59\x0f\x3e\x1e\xf7\xe2\x00\x29\xdb\x72\xf8\xc0\xa0\x92\x89\x76\x5b\x4c\xe7\x84\x76\x78\xf8\x79\xb8\xef\x31\x34\x31\xff\x55\x60\xb0\xec\x09\x47\xdd\x08\xd9\xc7\x7d\x30\x2f\x64\x60\x93\x86\x6a\xe2\xb9\xa8\xd2\xae\xec\xd7\xe4\x6f\x22\xfa\xc7\x50\x5d\x41\xf1\x80\x52\xa4\xde\xc0\x5f\x1f\xe0\x58\x94\xe7\x45\x59\xf2\xf3\x80\x19\x40\xf1\x40\x9a\x7a\x6b\x53\x10\x82\xa3\x79\x5e\xbb\x5a\xf1\x00\x4c\xed\x8b\xa5\x39\x53\xd3\x30\x6b\xd7\x0c\x70\x67\x6b\xfd\xc6\x8e\x50\x7e\x2f\x27\x52\x77\xf3\x91\x24\x4e\x3c\x82\x23\xc6\x05\xab\x4b\xa3\xdb\x76\xad\x31\x45\x17\x00\x39\x94\x87\x73\x89\x3b\x48\x38\x1a\x54\x76\xc4\xa5\xe0\x5f\xbb\x0e\x44\x98\x77\x58\xd7\x87\x5b\x2e\x07\xc5\x06\x9c\xea\x04\x37\x0e\xb3\x13\xb5\x2f\x9c\xe6\x4d\xd1\x54\xdb\x21\x91\x44\xd7\x56\xa2\xa1\xd8\xe4\x0f\x4d\x0d\x3f\xdd\xcf\x61\xe2\xa9\x61\x69\xe6\x0a\xde\x07\xd9\x71\x1e\x6a\x86\xf0\x89\x26\xbf\xc9\xb8\x7c\x43\x4a\xe8\x71\x6a\xd2\x36\x8c\xfd\x04\x97\xa9\x22\x5f\xbf\x2c\x93\x84\x19\xea\xf6\xab\x38\x9f\xa1\x89\xc8\xe3\x48\xfb\x86\x2e\xb6\x35\xe4\x78\xb6\x02\x99\xa5\x39\xcc\xa3\x25\x38\xa3\x42\x1a\x79\xac\x8f\x4d\x5e\xc3\x6b\x99\xd6\xe7\x5b\xb8\x08\xf6\x8e\xc7\x31\x8b\x34\x06\x32\xfe\xf5\x6d\xbb\xeb\x40\x32\x9c\x09\x1e\x2a\x57\x2a\xf7\x02\xed\x6e\xdb\x93\xba\x4d\x96\x46\x9e\x84\x31\x7a\x94\x76\x7c\x8d\xbc\x1d\x9e\xc4\x86\x81\x2e\xb5\x44\x4f\x37\xe7\x45\xd6\x77\x72\x02\x86\x2a\x04\xe7\xe4\x46\x16\x13\x55\x7b\xc5\x39\x25\x18\x49\xb1\x18\xf4\xaa\xf5\x9a\x4f\x88\xdb\xf7\xbb\x26\x61\xec\xd9\x8d\xe2\xcb\x10\x59\x61\x0f\x8b\x08\x3c\x0b\x07\xe1\x86\x9f\xd4\x0d\x80\xc9\x26\xc1\x25\x51\x98\x50\x54\xc0\x55\xdb\xcd\xbb\x0f\xe7\xba\x70\x08\xb8\x11\x51\xde\x8d\xd6\x7e\xae\x03\x82\x29\x6a\xfe\x6a\xe5\xa2\x5c\x01\xdf\xf8\xca\x9a\xc4\x28\x42\x61\xdc\x9e\x2b\x40\x9b\x61\x04\xe3\x57\xa9\xd2\xc9\x0c\xd7\x31\x67\xae\x3a\xcc\x8d\x46\x8c\xc0\xe7\x83\x82\xa8\x41\x9f\xe8\x24\x42\x64\xda\xee\xc0\xd3\x1b\x7e\x30\x16\x63\x97\x90\xe0\x3a\x49\xb0\x02\xe6\x00\x65\x31\x9d\x2d\x5a\x86\xac\x1d\x2f\xcb\xe2\x78\x2a\x9a\x5c\xed\xf3\xe2\x63\xbf\x90\xb2\x6c\x40\xed\xd3\xf6\x9e\xe0\x44\x7d\x95\xf0\x82\x08\xb9\x5a\x11\xa5\x32\x28\xd3\x54\xc2\x23\x09\xd2\x5c\x59\x35\xa9\x67\xe7\xf8\x75\xc7\xa3\x00\xc3\x62\xff\xdd\xaf\xa0\x6e\xad\xaa\xdc\xaa\x4f\xda\xe3\xbe\x20\xc4\x86\xef\x1e\xe1\x67\xfd\xc0\x7f\xa6\xc7\xe6\x68\x2a\x3a\xba\x46\x41\x42\x24\x7a\xda\xa6\x18\x69\x05\x6f\x19\x9f\xc7\x59\x8d\xfb\x53\x10\x16\x20\xad\xda\x6a\x7d\xbb\xf8\x76\xbf\xdb\x2f\xef\x37\xb7\xb7\x5f\xba\x83\x1a\xb9\xd8\x6f\xd0\x21\x3e\x9e\xa6\xda\xd3\x4a\x10\x01\x18\xc9\x50\x20\x4d\xa8\xeb\xe9\x04\xf9\xc6\xf6\x4d\x6b\x98\x5b\x55\xe5\xf1\x59\x34\x91\x48\xcd\x39\xa3\x5c\xf9\xff\x34\x1a\x04\x15\x96\x9a\xa5\x35\x58\x57\x3d\xbc\x4d\x84\x4a\x60\x98\xe9\x03\xd2\x5d\x31\x82\xe0\x4d\xae\x10\xf1\x98\xe1\x78\x5d\xdc\xaf\xb7\xfb\xd5\x7a\xb1\xba\xdf\x74\x28\x1a\x11\x09\x9e\x08\x97\x5c\xbc\x43\x22\x22\xcb\xc7\xb0\x6d\x84\xb5\x7f\xbb\x6f\x10\xfb\x2a\xec\x8b\xe7\x2e\x71\xdb\x9f\xbf\x4a\x4c\x64\x1c\x20\x73\x2e\xbc\xf7\x78\x43\x11\x53\xce\xf9\x58\xc2\x60\x36\xd8\x24\xe2\x90\xa3\xcd\xf5\xad\x4a\xf3\xd7\xc5\xf7\xb4\xac\x1b\x9e\x6d\x31\x1c\xd4\x5d\x2b\xf1\x3c\x9b\xbc\xfe\x91\xe6\x50\x9e\x4d\x2d\x53\x6b\xc3\x9f\x5f\x50\xad\xb4\xf5\xf1\x66\xd5\xc3\x67\xe6\xea\x24\x76\x29\x98\x1f\xa2\x26\xfe\xc9\x16\x99\x2c\xd4\x34\x70\x39\x6a\x9e\x28\x86\xfb\x56\x2a\x8b\x75\x8e\x52\x6c\xfc\x15\x16\xee\x51\x79\x40\x3d\xcf\xed\x8e\x0f\xa9\xca\xd3\xd7\x43\x8d\x71\x34\xd7\x42\xc4\xa6\x12\xac\x3a\x14\x1f\xcf\x45\x91\x39\x5a\xd1\x71\xaf\x08\x69\x74\xa2\xa0\xbd\xc5\xcb\xd3\x76\xb9\x78\x81\xba\x4c\xe1\x1d\xb6\x4d\x79\xca\x9a\xee\xe3\x49\xa0\xc8\x5d\xd3\xe9\xde\xba\x3a\xe5\xb9\x50\xb6\x50\x61\x80\x11\xa9\xbc\x69\x6f\xfa\xa4\x6f\xb8\x7c\x1b\xcc\x46\x15\x82\x11\xf4\x81\x5c\xed\x51\xfa\xc3\x74\x98\x3b\xcc\x63\x4c\x78\x20\x95\xe1\x53\x7e\x0f\x5c\x59\x6d\xb4\x6a\x54\xf7\x20\x20\x8a\x51\xbf\x82\xbb\x0b\x03\x8f\x0c\xa8\xba\x10\x85\x2d\x5b\x1b\xef\x50\xa2\xf5\x5a\xac\x3d\xfb\x78\xbb\x13\x06\x9a\xbe\x99\x78\x8d\x42\xfb\x09\x2e\x17\xa6\x4c\xe0\x65\xb1\x5b\xef\xef\x17\x5b\xe7\xf7\x0a\x1d\x18\xe0\xc0\x3b\x1c\x52\x99\x81\xe3\x94\x19\xe1\x11\xae\x2a\x4a\xb5\xa7\x73\x62\x12\x3e\x8f\xf0\xd1\x53\x92\x2a\xa1\xc3\x00\xe3\x7c\xa6\x90\x67\x16\x35\x6f\x5a\x4a\x8f\x80\xc4\x04\xe4\xe3\xed\xfd\xe6\xfb\xaf\x23\xe0\xd2\x8b\x00\x99\x1c\x4e\x45\x55\xef\xfe\xfa\xdc\xcf\x95\x1e\xf3\xd1\x2b\xc5\xbd\xd8\x79\x70\xb8\x4a\x54\x87\xf4\x34\xee\x51\xe9\x7b\x56\xf7\xd2\xf2\x64\x8e\x6d\x49\xe9\xfb\xa1\x34\x50\xac\x34\xe7\xf9\xcf\x1a\x8e\xa7\xee\x50\xc4\xc3\xc8\x95\xef\x9f\x8a\x7a\xdd\x8b\xca\xb8\x16\x31\x15\x56\x44\x60\xa2\xa2\xaa\xa4\xcf\x7c\x44\x55\xb9\xf9\x64\x9c\x97\xfe\xbe\x09\xd1\x8e\x1e\xaf\x3e\x40\xf9\x32\x06\xff\x4a\x5f\x11\xa4\xf7\x4c\x2b\xac\x89\xe8\xc8\x01\x94\x0c\x02\x8a\x66\xda\xc9\x4a\x8f\xb5\x5f\x03\x23\x04\x83\x26\x11\x45\xf9\x0f\xc1\xf3\x37\xc7\xd5\xea\x0e\x01\x75\x90\x81\x9b\x7f\x7e\x5e\x88\x92\x7f\x9e\x86\x95\xc4\x23\x46\x4e\xcb\x10\x99\x2e\x4e\x27\x98\xe6\xe6\x25\x09\x62\xe4\x31\x3b\xf2\x9f\x66\x7e\x7d\xe9\x0e\x08\x5c\x22\xf1\x7d\xb7\x75\x71\xba\x2f\xfa\xef\x40\x22\x8d\x78\xd7\x2e\x48\x8c\x79\xc8\x7e\x1a\xdb\x66\xa1\xd0\xba\x0b\x67\x57\x8e\x0b\x70\xe4\xcd\xc8\x48\x70\xe8\x00\x4d\xb7\x88\xc5\xbb\x39\x9f\xf8\x34\xee\x2a\x23\x69\x44\x52\x9e\x9b\xba\x76\x90\x73\x19\x0b\x85\x6a\x0a\x35\x54\xa6\x64\xbb\xe9\xe2\xed\x92\x89\x10\x5d\xb0\xea\x50\x94\x35\xe4\x73\x08\x23\xc9\x34\xc5\xed\xfe\x79\xc8\xf1\x3a\x19\xbf\x49\xe4\xf9\x61\xaf\x15\xd9\xf5\x41\x22\x0d\x33\xbb\xa5\xde\xb0\xc1\xfa\x2b\xce\x92\x4c\x40\x68\xc0\xda\x4e\x57\x07\xd5\x7e\xcd\xbd\xbb\x18\x0f\x13\x69\x4a\xe1\x44\xd7\x33\x3c\x36\xf2\x00\xad\xdf\x9d\xe6\xaf\x46\xb6\x6d\xf2\x02\x5c\x11\x27\x5d\xbf\x4c\xeb\xf4\xbf\x90\xdf\xbb\x02\xee\x71\xf7\x71\x4d\xc0\x45\x4b\xf7\x15\xd4\xcd\x09\x13\x34\xd0\x17\xea\x4a\x41\x23\x24\xa2\xd9\x73\xa5\xec\xc6\x6b\x79\x5f\xec\x92\xe6\x3c\x02\x29\xc3\x04\xed\xce\xd5\xfa\xf6\xe5\x69\xbb\xdb\x6f\x1e\x37\xbb\xcd\xe2\xbe\x43\xfe\x3d\xfd\x78\x74\x62\x47\x4a\x4a\xc9\x71\x20\xb5\x7b\xc7\xed\x73\x3b\xf6\xeb\x3e\xa9\x21\xa5\x56\x40\x07\x52\x48\x06\x6a\x6c\xb4\xb1\x26\xa0\x03\x7b\x86\x8a\x63\x0c\x6b\x9a\x61\xb4\x9d\x09\xb4\x75\x0d\xb9\x91\x76\x87\x5c\xa1\x34\xc0\x36\x7d\x9d\x2f\x1e\xba\x5a\x4c\xd4\xfb\x4c\x52\x25\x31\x26\x1d\x9f\x9f\x67\x53\xfa\xa3\xf5\x51\x81\xc6\xa1\xd7\x7a\x14\x98\x25\x59\x61\x7d\xe0\x40\xf1\x71\xf2\xa8\xe0\x45\xf8\xf9\x5f\x0b\x9e\xe1\xee\x3c\x2d\xe3\x95\x20\x23\xd2\x53\x8a\xe1\xa4\x9c\xc1\xe0\x4a\x1d\x24\x96\x6b\x31\xcb\x50\x21\xae\x1a\x47\xdc\xa4\x26\x0c\xb3\xb8\x48\x45\xf3\xcc\xcf\xed\xae\x79\xa5\xa3\x35\x15\x4c\xbb\xc4\xf0\x0c\x38\x48\x79\xdc\x43\xf4\x1f\x22\x7c\x7b\x37\x40\x79\x52\x23\x90\x51\x3b\x16\x87\xc1\x12\xae\xfc\x40\xe1\xb4\x39\x16\xca\xd4\x76\x8f\x82\xf5\x9f\xa6\x49\x95\xaf\x7c\xd4\x8e\x59\x48\x43\x92\x7c\x1c\x92\x6c\xd9\x36\x41\xec\x23\xaa\x09\x6c\xc4\xc0\x74\xa6\x3b\xa8\x12\x1c\x12\xaa\x98\x40\x4f\xda\x23\x98\x35\x79\x29\x8a\x37\x59\x74\xcb\x93\x22\x9e\x91\x0b\x34\x5c\x6c\x9f\x18\xf7\x8a\x04\xb1\x99\xe1\xed\xd8\xfd\x13\x60\xca\xe3\xdf\xb6\x48\x10\xe1\xf4\x01\x99\x2c\x8e\xf0\x50\xbd\x76\x77\x01\x1f\x63\x9c\xcb\xc7\xdd\x54\xfd\x4f\x29\xa2\x15\x5a\x92\xa2\x39\x6f\x4f\xe9\x14\x54\xae\x42\x25\x30\x67\x63\xb9\x89\x71\x25\x72\x4e\xac\x0a\x21\x64\x86\x91\x01\xeb\x99\x7f\xbf\xab\x43\x00\x84\xe2\x8c\x4b\x79\xc6\x91\x01\x15\x91\x08\x74\x17\x2c\x72\xb5\x7e\x7d\x21\xb7\x2b\x56\x60\x5d\x7b\xc1\x49\x07\xe4\xc2\xe0\x93\xc9\x20\x4d\xf1\x3c\xa3\x47\x89\x38\x75\x05\x3c\x4f\xef\x50\x56\xad\x75\x3a\xe9\xd9\x08\xb8\xcb\x35\x19\xbd\xe1\x49\x1f\x31\x6a\x36\x0f\x54\x93\xf9\x85\x02\xda\xa4\x23\x98\x54\x58\xb1\x98\xe6\xa9\x2b\x26\x3e\x8f\x04\xe6\x66\xf7\x5e\x95\x10\x11\x46\x56\x32\x8f\x97\xb5\x15\xc7\x76\x9f\x85\x07\x9e\xf2\xad\x22\x99\x15\x0e\x5e\xc1\x91\xe7\x97\x98\xe6\x99\xe5\x45\x71\x12\xa2\x14\x8c\x6a\x8e\x27\x95\xbe\x77\x53\x8b\x87\x9e\xc9\xec\xa2\x24\xe0\x6d\x9a\xa7\x95\xdb\x0d\x95\xa4\x1c\x55\xb6\x7f\x7c\x7d\xba\x5f\x23\xf8\xd4\x08\x72\x75\xc7\x65\x88\xb1\xdb\x5d\xfb\xbc\x62\x14\xf4\x57\x52\x03\x02\x35\x30\x6a\x33\x9b\x15\x55\xca\x63\x01\x75\x4d\x30\x2a\x3f\x27\x80\xd1\xf7\x2a\x88\x88\x58\x0a\xb7\xe9\xc7\x77\x2d\x40\xd0\x8e\x43\xb9\x1d\xd3\xdf\x4e\x27\x28\x87\xe1\x75\x05\x3a\x34\x28\xd2\xea\x5b\xae\x51\xe6\x72\xf2\x54\xda\x13\x28\x0c\x63\x52\x4a\xaf\x5d\x47\x69\x4f\x52\xbf\x17\x12\xe9\xcc\x96\x4f\xf0\x11\x4a\xc7\x0c\x59\xf8\x54\xfa\x7e\x5b\x94\xb8\x00\xd7\x45\x0d\x2b\x78\x87\xac\x38\xb5\xde\xf8\x90\x94\x50\x81\x17\xc4\xbe\x81\x23\x9e\x8f\x48\x7b\x61\x2d\xc6\xd9\xe9\x06\x1e\xb5\x19\x29\xa8\x6a\x13\x26\x6e\x37\x44\x53\xf7\x72\x5b\x94\x90\xbe\xe6\xdd\x85\x85\x8f\x18\xa2\xd7\xf4\x1d\x6e\xd2\xb2\x3e\xdc\x9c\x51\x22\xc0\x1e\xf6\x35\xc5\xad\x64\x69\x43\x94\x0a\x7e\xb9\x5f\x41\x20\x02\xb4\x34\x8a\xd3\x20\x92\xec\x92\x4c\xbe\xdf\x97\x1e\xfb\xde\x80\xf3\xde\x56\x5e\x4c\x2b\xbf\x81\x84\x3e\xa2\x00\xd0\xd4\x78\xe7\x59\xaa\x5e\x9a\x0c\xac\x30\x83\x6b\x93\xc4\x04\xbd\x63\x59\x23\x93\xe8\x6d\xc6\xaf\x6c\xe3\x40\x84\x8f\xde\x69\x6b\x7c\xdd\x16\xe5\x3c\xc6\x14\xa8\xcf\x79\x37\x00\x37\xda\x8e\xd2\x4d\xd5\x15\xdb\x5d\x86\x46\xbb\x33\x01\x23\xae\xed\x2e\x76\x03\xaf\x4d\xbe\xa8\x07\xe2\x82\x0a\x42\x2a\x3d\x8b\x0c\xfb\x66\x22\x91\x7d\xb6\x79\x3c\xde\x20\xf2\x62\x69\x00\x73\x6f\x23\x75\xb6\xcd\x15\xcc\x2b\x44\x9c\xc7\x8e\xed\x3a\x47\xfb\x71\x59\x54\x75\x85\x05\x9b\xb6\x49\x42\x01\x23\x56\x5f\x0b\x95\x0d\x7c\x9a\xc9\x85\x92\x48\x61\xda\x00\x07\x45\x8f\xf1\x85\x44\x18\x76\x9c\x76\xa1\xe9\xca\xd2\x2e\x42\xbc\x90\x48\x2e\x8d\x43\xbe\xe4\x99\x4b\xfc\x00\x27\xa1\xc9\x6e\x61\xf8\xeb\x66\x1a\x59\x02\x4e\x18\x92\x33\x7c\x5f\x6f\x77\x13\x18\x3b\x48\x5f\x62\xde\xb8\x34\x16\xe4\x0a\x6a\x2e\x0f\xc7\xa9\x0c\x85\x02\x19\x2a\x24\x1e\xb7\xa8\xb2\xf4\xbf\x30\xdd\xff\x40\xf9\x09\xd2\x6a\x98\x42\x1d\x13\xc6\x7a\xd2\x4f\x39\x5c\x28\x63\x28\x50\xb1\xab\xbc\x91\x4e\x16\x7c\xdd\x9a\x92\xee\xb0\xd6\xc2\x30\x9c\x82\x5a\x58\xab\xf0\x94\x9d\xe7\xad\x32\x00\xe2\x05\x30\xa2\x40\x79\x01\x7d\xe5\x03\x00\x31\xd2\x34\xc6\x6f\x34\xb5\x14\xaf\xb0\x98\xbe\x2e\x10\x86\x01\xdf\x9c\x1f\x61\xdd\x5a\x54\x60\xd5\xf1\x86\x8b\xa0\x3f\xfd\x3c\x40\xb9\x36\x65\x5b\xbb\x43\x59\x7c\x4c\xae\xa9\x09\xc3\xc0\xa1\x5d\xcd\x0e\xbc\xcf\xc8\xfe\x6e\x84\xef\xff\xf7\xdf\x7e\x97\xd0\x1e\x65\xc8\xca\xb9\x8f\xf7\x65\x53\x55\x6f\xfc\xcc\xdb\x79\x5f\xbf\xb9\x80\x8a\xf6\xe2\x84\x79\xdd\xc7\xb9\x6f\x57\xce\x21\x20\x50\xb7\xab\x97\xdf\x85\x75\x71\xbd\xb8\x69\xce\x50\xea\x89\xb8\xa1\xd2\xbe\x47\x55\x6c\x9d\x53\x28\xf9\xc8\xaa\x77\x4d\x82\x90\xd8\x2d\x1f\xd3\x91\x1a\x33\x39\xd3\xeb\x30\x23\x80\x7b\x70\xd0\x5f\x3f\xb0\x58\x41\x4b\x26\xaa\xb4\x9f\x28\xe2\x96\x87\x66\x12\xae\xd0\x41\x10\x20\x5b\x87\xd9\x60\xb6\x3c\x7f\x6d\x8a\x61\x20\x5f\x07\x04\x90\xd3\xcc\x30\x8d\xa3\x1b\xbe\x3b\xa4\xd5\xf3\xa1\xe3\x6f\x57\x3a\x50\x12\xe9\xba\x9f\x94\xa5\x43\x76\x07\x08\x27\xf8\x74\x7b\x59\x64\xca\x09\x4c\xdb\x63\xd4\x27\xc8\x31\xba\x7c\x58\xee\xba\xdf\x02\x86\xc3\xe4\xae\xc8\x14\xe4\xb7\x19\x80\x1c\x2f\xfe\xb6\x5d\x14\x70\x5c\x7c\xef\xd3\x4c\xf0\xdc\xad\x15\x3a\x22\x01\x9a\xa7\xab\xa7\x87\xc5\xe6\x71\xbf\x5d\x3f\xaf\x5f\x16\xbb\x27\xe7\xc8\xe9\xd8\x8f\xbc\xc0\x71\xfb\xe4\x17\xe8\x73\x1d\x47\xc4\x10\x3d\xe1\xce\xb3\xc9\xdf\x8b\x54\xa6\xf9\xab\x33\x18\x66\x36\x1e\xcd\xa4\xf1\x8a\xd3\x6a\x99\x35\x83\x42\x6b\xcd\x80\x32\x6b\xd0\xf1\x0a\xa1\x08\x17\xbe\x8e\x4e\xfc\x18\xfd\x93\xfb\xf4\x08\xeb\x73\xe7\x98\xeb\x44\x85\xe6\xa3\x40\x5e\x97\xbc\x2b\x79\x75\x87\xb9\xef\xa3\xcb\xbc\x7f\x41\xe1\xc7\x55\x0f\x34\xd1\x3c\xf6\x11\x20\xd5\x7e\xad\x6a\x58\x89\xae\xb9\x62\xc8\x35\x77\x49\x57\xfd\xa9\x19\xa8\x85\x67\xf8\x03\x07\x1c\x99\x5b\x40\x3c\x6e\x6b\xc5\x06\x2b\xe0\xf5\x61\xf2\x5a\x22\x8a\x30\xde\xd0\x54\xbd\xee\xb6\x3b\xd4\x9a\x69\x48\xa4\x59\x1f\x78\x66\x52\xc3\xf5\xd7\xbe\x9e\x4b\xcb\x40\xe0\x3a\x5e\x94\xe9\x6b\xeb\xe0\x18\x3f\xda\x1d\x84\x20\xea\xc8\x9f\xdf\x8f\x7c\x3a\x63\x94\xc7\x70\x48\x6d\x96\x4f\x37\xf0\x9a\xe6\xd5\xa2\x7b\x7d\x45\x43\x9d\x74\x00\xb0\xaf\x90\x5d\x38\x37\x5a\xc5\x09\x82\xb7\x2d\xc1\x3d\xa8\xfb\x34\x7f\x1b\xe5\xec\xb4\x92\xc2\xb1\x4f\x5b\x7b\xd8\x8c\x23\xcb\x4b\x35\x34\x1b\xed\x19\x3a\x94\x18\x67\x17\x4e\x24\x00\x3c\xcf\x37\x52\x2c\xc2\xb1\x13\xb8\x4c\xd2\x2d\xc0\x60\xf6\x80\xe7\xfb\x01\x6e\x05\xc7\x42\xbe\x4d\x06\x01\x78\x3e\x95\xda\xe9\xf0\x4f\x99\x5d\x87\xef\x05\x5e\xc0\x3c\x8c\x02\x8b\xa2\x78\x7b\x29\x8a\x0e\xa4\xe2\x4c\xa2\xff\xbb\x88\x22\x0c\x5f\x01\xbc\x20\xf1\xd0\x30\xd9\x93\x7d\x51\xa6\xad\x5f\xd4\x3b\x02\xe0\x91\x58\x9a\xb7\x69\xb2\xb7\x59\xf1\x6d\xf0\x88\xee\x38\xbb\x3b\x60\xee\x08\x97\x0b\x1e\xe5\x31\xda\x6f\x69\x75\xc7\x8f\xd0\x93\xdc\x80\x17\xf2\x10\x89\x42\xab\xe6\x04\x65\x6b\x41\x2d\x5e\x4b\x18\xbb\xcc\xe0\x45\x94\xe0\xb0\x5f\xbf\x3b\x5a\xfb\xd9\x0d\x11\xbc\x08\x62\xf4\xf7\x1e\x6f\x9f\xe6\xb0\xd2\xa3\x67\x8a\x3d\x1f\xcb\x71\xd0\x0a\x2c\x72\x40\x60\xde\xfa\x3f\x5b\x6c\x83\x08\xb2\xd1\xa5\x63\xea\x1b\x01\x32\x2c\xb2\xad\xd2\xc2\x68\x10\x4c\x20\x58\xe0\xc5\x51\x88\x01\x0e\xc8\x52\x4c\xde\xc1\xf4\x38\x18\x35\x5f\x97\x5a\x78\xe4\x47\xf8\xab\xdd\x6d\xe7\xc0\x45\xe0\x71\xcf\x90\x5f\xbd\x42\x6d\xc3\x92\x93\xe3\x91\xee\x85\x6b\x1a\x97\x74\x00\x8f\x4b\x86\xa9\x8e\xff\xe9\x2b\x47\xc1\xe3\x5a\x30\x1b\x82\xfe\xf3\xef\xe5\x50\xe8\x6b\x16\x1a\x01\x9e\x20\xa6\x7c\x0a\xe9\xa7\x52\x28\xbf\xa6\xaf\x87\xfe\xdb\x09\x69\x48\xcf\x65\x71\x3c\x35\x46\x06\xe5\x0e\x72\x6f\xb0\x65\x82\x27\x89\x36\x32\xa9\xed\xf7\xdd\xd7\xd3\x52\x89\x71\xdf\x48\x16\xa0\xdb\xf3\xb0\xf8\x6b\xf3\xf0\xed\x61\x7f\xff\xf4\xf4\xbc\xbf\xe9\x65\x60\xc0\x53\x24\x44\xfc\xe2\xa1\x7d\x90\x8e\xb0\xd2\x14\xe7\x76\x98\x74\xf0\x54\x42\x51\x7a\x66\x79\x16\x50\x3e\xf3\xf3\x68\xde\x29\xa1\x30\xde\x67\xcc\x91\x5d\xb1\x85\x5c\xdd\x96\xc5\xd1\x6d\x60\xe3\xb1\x07\x41\xa4\xf8\x90\x60\x14\xc5\x8b\x86\x21\x62\xf0\x80\x72\x44\x42\xdd\x6f\x16\x8f\x77\x9f\x0e\x3a\x88\x89\x85\xdd\xfc\xac\xf7\x25\xe6\x91\x4f\xc3\xdc\x2d\x78\xba\x9d\x12\x7d\xc5\x1a\x16\x3b\x2c\xf9\x29\xad\x27\x1e\x05\x78\xda\xd7\x26\x2b\xd6\x71\x62\x2e\xba\x3a\xa2\x4e\xbd\x0e\x3c\x1d\x86\xb8\x3e\x98\x4a\x1d\xc3\xd9\x3a\x3f\x7b\x34\x48\xcc\x31\x2c\x4a\x91\xd6\xfd\x5e\x0e\xbe\xc7\x8c\xdb\xf0\x0a\xb5\xc9\xe0\x3e\xf0\x37\x28\x07\x6b\x37\xf8\x1e\x24\x18\xa6\xff\xce\x9b\x6c\x32\x46\x7d\x4f\x9b\x5d\xeb\xaf\xc0\xb5\xf6\xa9\x64\x2e\x6d\x80\x9b\x84\xd6\x69\x96\x5e\xab\x8e\x01\xdf\x8f\x02\x3a\x8a\xd3\xcf\xf2\x4f\x82\x4f\x22\x61\x68\x3a\xfa\xca\x5a\x77\x24\x26\x91\x45\x43\xdc\x14\x65\x59\x7c\x5c\x40\xb9\xc1\x27\x5c\x87\xae\xc8\xc1\xe1\x1d\x87\x3e\x33\xf8\x44\x74\xe2\x3f\x3d\x05\xff\xb0\x88\x12\x7c\x1a\x46\xb8\x60\x1e\xf9\x4f\x1b\xeb\x0a\x86\xa3\xcf\xa7\x89\x40\x0e\xc5\x97\x9b\x97\xf1\xef\xdc\x50\x37\x19\xd0\x94\x9b\x87\xe3\x8e\xa4\xda\x80\x07\x4a\xe0\xea\xbc\x2b\x44\x09\x03\x0d\xcb\x91\x88\x50\x67\xf6\x82\x1f\x12\x85\xe1\x37\xf3\xe5\xb0\x68\xeb\xb7\x6c\x03\xf0\xc3\x30\x42\x0c\x0a\xc6\x57\x2d\xeb\x9e\x7b\xdc\x30\x0a\xa5\x25\x6a\x5b\x66\x3c\x3d\x56\xa3\x05\xdf\x0f\x95\xfd\xc0\xe9\x7f\xe1\x49\xbb\x93\xa2\xc4\xc7\xcf\x33\x80\x38\x5f\xc0\xab\x46\x97\x61\xca\xf7\xa1\x67\xdd\xc2\x68\xed\xfc\x36\xe8\x33\xe0\xc4\x30\xcf\x14\x4e\xf7\x0c\xfc\x44\x70\x8c\x35\x3c\x3c\xdd\x6c\xee\x37\x8f\x7f\x76\xbf\xeb\xd8\x90\x5c\xf2\x37\xb0\x8c\xad\xd7\xca\xd4\x27\xb7\xe1\x5e\x80\x78\xaf\xb6\x83\x9f\xca\x17\x78\x87\xb2\xfe\x72\x21\xf4\xd5\xb6\x23\x88\xa9\xe9\x40\x9a\x2e\x7f\xc0\xb3\x19\x6a\x6d\xf0\x79\x02\x44\x4f\x90\x87\x8b\x12\xf8\xb4\x99\x64\x98\x03\x6e\x37\x16\xf9\x8b\x1d\xce\xe7\xed\xca\xd4\x0e\x35\x5e\x83\xa9\x4b\x18\xa5\x49\xc0\xe7\x3a\x74\x2c\x60\x5b\x59\x4c\x24\xd9\xc0\x17\x24\xc1\xec\xd8\x78\x0e\x48\xcf\x47\x54\x1d\x94\x65\x51\xee\x52\xf9\x06\x25\x56\x2d\xac\xdb\x7f\xcf\x6e\x62\xbe\x0c\x14\x8d\x7a\xb9\xd2\xf3\xf7\xad\x0d\x3a\xfd\x46\x35\x15\xf8\x32\xa2\x89\x3f\x20\xea\xbb\x81\xba\x36\x82\x1f\x68\xa3\x5e\x1d\x11\x92\x33\x5c\x49\x9f\x4a\x2e\xfb\x48\x3a\xf8\x52\xa9\x40\x75\x32\xb1\xb9\xe2\xa5\xc2\x48\x7d\x3e\x75\xfe\xc1\x97\x5a\x25\x1d\x4c\xab\x75\xc1\x66\xf7\x2d\x5f\x05\x20\x8d\x79\x83\xdd\xdc\x53\xd5\x83\xaf\x18\x43\x7d\x00\xae\xd4\x0e\xf2\x99\xb5\x77\x36\xbc\x0d\xbe\xe2\x11\x2e\xb9\x46\x49\x36\x3d\x42\xd1\x74\x5f\x00\x7c\xe5\xe9\x5e\x51\xa3\x2b\x45\xbc\xd2\x0f\x40\x12\xdf\x6c\xd3\x25\x0c\x01\xf8\xe0\x43\x18\x61\xc5\xcf\x2e\xfd\xe9\x7e\xd2\x91\x42\x60\xd7\x6a\x73\xb7\x1c\xc0\xb8\x3b\x63\xd2\x35\xe3\x01\xba\x36\xb2\xc8\x6b\x9e\xe6\x0f\x69\x8e\xeb\x61\xbb\x8d\x3e\x61\x11\xc1\x5c\xc6\x06\x7c\xad\x88\xdf\x33\xf2\x77\xa1\x2f\x5b\xc2\x7c\xf5\x76\x81\x07\x02\x93\x83\x65\xfb\xc1\x93\x68\xfc\x95\x02\x9f\xf8\x48\x8e\xf6\x0f\x16\x5a\x38\xbc\x30\x04\x7e\x94\x20\xa9\xc7\x0b\x4a\x46\xad\xeb\xc3\xae\xc0\xb0\xe8\xa1\xd3\xd7\x81\xc0\x8f\x4d\xa8\xba\x82\xfa\x76\x8a\x9f\x80\xc0\x4f\x88\x23\xdc\x76\x16\x12\x3a\x01\xc3\x69\x16\xf8\x3c\x42\x88\xed\x62\xb5\xda\xef\x36\xeb\x97\xed\x78\xd5\x0e\x7c\xc9\xd0\xea\xc2\xa4\xe3\xd6\x86\xb5\xf7\x8b\x87\x5e\xb5\x1c\x02\x5f\xc7\x8c\xba\x1b\xbd\x43\xb9\x39\x5e\x63\xc3\x6f\xdb\x4a\x2c\x28\xdd\x36\xaf\xaf\x30\x2e\xb2\x82\x20\x60\x11\x92\x05\x94\x2a\x7d\x9f\xdf\x4c\x83\x40\x19\x1a\x73\xcb\xca\x58\x1c\xdb\x99\xb8\x51\xd5\xcd\x79\x31\x31\x66\x03\xe2\x33\x44\x86\xb4\x9b\xf4\xf1\x36\xcd\x79\x2e\x5d\x65\xa5\xc3\xde\x5f\x1b\xce\xf3\xcf\x4e\xa8\x54\xd4\x65\xfc\x2f\x01\xeb\x10\x90\xd0\x13\x1c\xfd\xd8\x53\xfb\x29\xb7\xbd\x56\xb3\x6b\x90\x44\x48\xdb\xb9\x3d\x35\x75\x9e\xbe\x5d\x46\x56\x20\xa0\xa1\x8f\x70\x91\xfb\x34\x4b\x5d\xba\x1d\x02\x2a\xc3\x40\x0e\x0c\xef\xcf\xa0\x4d\xdd\x29\xcc\xb7\x6a\x34\xd2\xac\xda\x17\x38\xfb\xe1\xde\x1f\x84\x51\xa0\x1c\x0f\x98\xc1\xc4\x8e\xed\xe9\x20\x14\x46\x9c\x9e\x2b\x65\x90\x04\x93\x27\x8f\x48\x82\xc4\x2d\x7d\x40\xef\x06\xd9\xce\xae\x8c\x84\x48\x0b\x6a\x91\x45\x69\x73\x1c\xcd\xed\x20\x26\x01\x55\xbd\x56\xc3\x9f\x7f\x2f\x27\xf7\x8a\x29\x20\x6a\xfe\xd4\x64\xd9\xb0\xb6\x03\x82\x38\x14\x18\x4b\xe0\x65\xfd\x51\x94\x6f\x5b\x17\x1a\xea\x8e\x03\x51\xfd\xfa\xb3\x2c\xf2\xaa\x39\x4e\xdc\x6d\x08\x18\x21\x58\x11\x5f\xf2\x5c\x15\xc7\x4b\x43\x29\x60\xcc\x30\x66\x9a\xb2\xc7\xb3\x09\x85\xfe\xac\x4b\x7e\xb9\x0e\xb8\x33\x84\x61\xbc\x70\xd2\x60\xd6\x47\x1f\xd7\xb2\x7c\x96\x2c\x83\x20\xf1\x23\xf0\xfb\xa8\x6f\x3b\xb4\xd2\xfc\xd5\x12\xb4\x4e\x86\x62\xc2\x28\xe6\xc0\xcc\xed\x1c\x75\xce\xb5\xfb\x8c\x4f\x55\xda\x6a\xf5\xbb\xa2\x2a\x7b\x80\x7b\x06\x1f\xa4\x20\xe3\xe7\x27\xdd\x97\x2f\x43\xc0\x83\xd8\x59\x00\x5d\xc2\x07\x93\x8f\x98\x86\x1c\x96\x6a\x42\xc0\x93\x00\xcb\xfd\x4b\x3f\x1c\x81\xcd\x20\x10\x71\xe8\x8a\x32\x06\x99\x05\x03\x87\xdb\x9d\x4f\x30\x15\x1f\x80\x40\x6a\x70\xdc\x60\x43\x21\x66\x36\xe9\x39\xe5\x73\x44\xd4\x98\xba\xa3\x79\xea\x45\x08\x54\x10\xcb\x4e\x00\xfd\x1b\xf2\x7a\x0c\xe4\xec\x21\x50\x32\x31\x61\xaa\xcd\xfa\x65\x4f\xf6\x37\xdf\xfe\xde\x3c\xf6\xc7\x20\x42\x00\x43\xc6\xbb\x51\xac\x74\x82\x80\x47\x67\x3d\x5d\x20\x23\x46\xcf\x08\xd4\x33\xdd\x82\x03\xd3\x40\xb8\x50\xcb\xa3\x3c\x5a\x14\xed\xf8\x69\x81\x4a\xb0\xa5\xc9\xe9\xb1\x39\xde\x17\xf2\xed\x6f\xe0\x7d\x67\x82\x00\xcc\xc6\xdf\x41\xfd\x5c\x14\x59\xeb\x32\xd8\x2b\x4d\x2e\xa4\x3d\x8e\xbb\xc8\x07\xa4\x36\x8f\xe6\x2e\xa1\x43\xed\x68\x13\x10\x68\xd1\xfd\xce\x8c\xa8\x07\xea\xba\xdd\xfe\x8e\xaa\x1b\x04\x3a\xa1\xdc\x31\xb9\x17\x79\x35\x74\x1f\x88\x17\x51\x1c\x3d\xe6\x4b\x9b\xd8\xf4\x7c\x2e\x0f\x88\x27\x15\x8f\x07\x06\x15\x7e\xa1\xc5\x3b\x4f\xb3\x81\xe5\x42\xfc\x88\x8b\xbe\x33\x11\xc4\x3e\x99\xe3\x24\xe0\x86\x1b\x19\x01\x2c\xe8\x5e\x4c\x18\x2e\x27\x37\x26\x91\xf1\x58\x5b\xcb\x0b\x40\x55\xdb\x34\x97\x70\xcf\xab\xfa\xeb\xb0\x6a\xcc\x35\x06\x9f\x59\xb3\x6f\x7f\x2c\x54\x93\x15\xfb\x77\xf4\xb9\x86\x36\x63\xf7\xc7\x9e\x44\x99\x49\x2e\xae\x20\xbb\x4b\xf5\x78\x6f\x24\x54\x69\xc4\x1a\x14\x27\xc8\xd1\x70\x75\x2b\x1a\x09\xfd\x08\x59\xc3\xdc\xba\x6b\xd0\x75\xd7\x16\x22\x12\xb2\x04\xd7\xf9\xd5\x62\x73\xff\xf7\xfe\xf6\xdb\xe3\x6a\xbb\x7f\x59\xdf\xaf\xfb\x50\x0b\x89\x22\x89\xa9\xa9\xa2\xc1\x82\xa4\x7f\x71\xf9\x76\x2a\x5c\x58\xda\xb6\x61\x9e\x91\xeb\xe2\x4a\x39\x76\x9c\x6b\x18\x48\x20\x8c\xc5\x31\x75\xc1\x51\x33\x5a\x8a\x72\x73\x3c\x65\x93\x6e\x63\x89\x67\x28\x18\xf2\x77\x74\xc5\xc7\x57\x49\x84\x09\xa1\x3b\x2e\xf5\xbd\xef\x1e\x86\x7b\x14\x07\x85\x32\x90\x78\xc9\xab\xc3\x68\x80\xf1\x80\x28\xcb\xaa\x01\xed\x7a\x3d\xe9\x1c\xf6\xbf\xff\xe7\xcc\xf6\xe1\xff\xb9\x93\x93\x04\x13\xff\x86\x47\xdf\x20\x0d\x47\x98\x75\x20\x5c\x44\xbe\x72\x28\x91\xa1\x65\x61\x8f\x8b\xd8\xc3\x54\xf9\xb1\xc8\xeb\x03\x65\x93\x82\x09\x20\x42\x1a\x9d\x01\x14\x10\xbe\x5f\x74\x21\x23\x22\x80\x20\x39\xcf\x0e\x39\x5a\x1d\xc2\xa4\x43\x59\xdc\x16\x33\x75\xbf\x40\x24\xf3\x30\x5e\x70\x53\xd4\xa7\xf3\xaf\x12\xd4\x40\x64\x62\x38\x45\x4e\x56\x7a\xbb\xaa\x9a\x2b\xe6\x1b\x51\x41\x80\x59\x0a\x0d\x70\x9b\xfe\xec\x5f\x40\x09\x53\x44\x8a\x1d\xf0\xe8\xb4\x04\x80\x40\xc2\x31\xe4\x85\xe1\x96\x07\x43\x05\x3f\xb1\x53\x89\x8e\x09\x2e\xce\xbb\x03\x20\x8f\x82\xfb\x59\x31\xe7\xa4\x6f\x8b\x2c\x9d\x58\x77\xd4\x8b\x85\xb2\xaa\x98\x36\xda\xf1\xc0\x8d\xc9\x65\x2f\x40\x7d\x1a\x7a\xb6\xd8\x0a\xbd\xfc\x34\x7f\x35\x14\x6c\xe3\x0b\xf9\xb1\x67\xb5\xbb\xf1\xa1\xc2\xee\x74\x69\xf4\x72\xb9\x52\x5f\xd3\xaa\x1e\x14\xd1\x8d\x59\xa8\x6c\xf3\xc0\xd3\x8e\xac\x0d\xf7\xf4\x17\xa8\xda\x11\x3c\x88\x67\x5b\xea\xba\xee\x84\x04\xa4\xe1\xa2\x2d\xde\x53\x85\xb5\xd5\x4d\xf7\xec\x24\x0c\xd1\xd4\xc4\x04\xbf\x29\x93\x4a\xa7\x01\x23\x4a\x98\x67\x65\x9a\x50\xad\x77\x7a\x10\x60\xa8\xb8\xb7\x03\x3e\x2c\x15\x06\x4a\x54\x17\x17\xfb\x56\x01\x8a\x80\xdc\xa4\xf5\x91\x57\x6f\x93\x2b\xd1\x44\xea\x64\x30\xed\x46\xf6\x16\x8d\x68\x82\x43\xfb\xbe\xe8\xeb\x41\x46\x22\x76\x63\xc6\x3e\xa0\x51\x64\x12\xce\x23\x82\xe5\xa0\xbb\x1c\x0b\x10\x2f\x70\xca\x40\xa1\x42\xed\xe4\x6b\xc5\x24\x46\xe3\xe4\xbd\xc8\x9a\x23\xf2\x58\xd1\x2f\xdd\xa1\x04\x61\x5e\xfb\x12\x74\x93\x55\x87\x5b\x04\xad\x5c\xe8\xab\x03\x8d\x23\x70\xd2\xfa\x35\xe4\xa3\x65\x96\xc6\x89\x92\x4e\x76\xff\x50\x9c\xa6\x67\xca\x00\x61\x8a\xf0\x5e\x64\xef\x70\x73\x5e\xd4\xd6\x3a\x1c\x3c\xa0\x8c\x23\xc3\x85\xd3\xe1\x0c\x6d\x0f\xf4\x6d\x92\x48\x21\x6e\xe0\xfb\x66\xb9\x36\xe4\xf5\x9b\xe5\xd3\x7e\xb3\xdd\xdf\x2e\xfe\x74\x8b\x30\x4d\x18\xd1\xd6\xb9\xdb\x62\x4a\xd7\xa0\x9f\x27\xb7\xe3\x14\x0c\x67\x31\xc8\xc3\xf7\xa2\x86\xc7\xe6\x78\x5b\x94\xbf\x25\x4d\x06\x94\x83\xc2\x7d\xf7\x8c\x82\xc2\x66\x19\x9f\x0a\x85\x00\x15\x9e\xc0\xb0\x2f\x37\x5e\x41\x30\x76\x0b\xa8\xf0\x3d\xc4\x29\x60\xa0\x6d\xbd\xfb\x3a\x00\x11\x01\x15\x8c\x38\xad\x88\x75\x55\xff\x09\x67\x04\x7f\x3c\x4e\xdf\x42\x12\x8e\xc6\xc1\x53\xd9\x6e\xfd\x4e\xbf\x1a\x96\x07\xde\x39\xc4\x54\x85\x09\xc6\xdf\x9e\xbf\x2e\xb6\x6b\xdf\xd4\x57\x0f\x40\x11\x40\x15\x08\x84\xee\x6c\xbf\x6e\x9c\x6b\x4a\xc1\xf3\xd0\x8b\x4e\xab\x8d\x2c\x6e\xd3\xbc\x3a\x74\x6b\x16\x6d\xbf\x95\x70\xe6\x1e\xf6\x6d\xe2\x29\x7e\xee\x5e\x0c\x42\x85\xb6\xe5\x5e\xa4\x6a\xfd\xb2\x0c\xbc\xdf\x33\xd3\x43\xcf\xa3\x88\xdf\xdd\xb7\x9e\x17\xe6\xa2\xab\x67\xde\x97\x49\x41\xe8\xf9\x0c\x49\x67\x3a\x5d\xf3\x59\xde\x79\x08\xfd\xd0\x04\xfa\xc0\x70\x55\x1a\x8a\x48\x77\x4c\x7a\x9e\x93\xfd\xe4\x46\x95\x6c\xea\x8e\x86\x41\x90\x08\x6f\xc0\xf0\xf8\x65\x66\xdd\x0a\x83\x88\xa0\x46\xbb\xb2\x42\x31\x2e\x76\xfc\x0c\xa5\x65\x61\xb5\x0d\x49\x18\x81\xb4\x29\x27\x5c\xe1\xaa\xee\x48\xa4\xb1\xc6\xa2\xe4\x75\xaa\xcf\x0f\x43\xfe\x82\xd9\x71\x17\x92\x38\x42\x6e\xe6\xf7\xde\x5c\x0d\x09\xe7\x68\x4f\xc8\x22\xcf\x41\x5e\xd4\x72\x43\x48\x84\x61\x7f\x38\x95\x85\x6a\x24\xa8\x55\xca\x8f\x45\xde\xae\x1f\xdd\x35\xa8\xef\x23\xdc\x05\x95\xe8\xa6\x88\x1a\x08\x69\xa0\x2d\x8d\xa2\x6e\x72\x65\x10\xdf\xd3\xbb\x50\x62\x18\xbe\xda\x59\xc7\xf3\x9a\x2f\x33\xde\x5c\xb4\xe1\x8c\x59\xa0\xa5\xe1\x87\x68\x77\x9d\xd5\x45\xb6\x2c\xa4\x82\xc5\xc1\xc0\x69\x47\x44\xcd\x8c\x00\x19\x84\x54\xf9\xda\xec\x05\x4d\x0e\x98\xa3\x39\x14\x59\xbb\xd6\xce\x4f\xdc\x30\xa4\xc2\xf0\x69\x0d\xc5\x81\x67\x89\xf8\x46\xdf\x3a\x62\x89\x70\xe4\x40\xa9\x42\x62\xb3\xf9\xeb\x47\x3a\x34\xfa\x1f\x0d\x2f\x15\x2f\x57\x85\x6c\x8e\x90\xd7\xc5\x24\x42\x3a\x8e\x75\x86\x8c\x44\x89\x1e\x08\x37\x0f\x68\x36\xba\x16\xca\x60\x28\xd6\x8f\xde\x2c\x43\x02\x84\x2c\xe6\x4e\x5d\x6d\x6f\x0b\xff\xf7\xbc\x14\x69\x5d\xed\x4f\x50\xee\xe1\x2a\xcb\x07\x84\x4c\x79\xae\xa0\xb2\xaf\x7b\xbd\xe3\x35\x7c\xf0\xf3\xe4\x41\x92\x18\xd0\x08\x7e\x2e\x07\x88\xa8\x59\xc7\x25\xe4\x91\x44\xe0\xc5\x09\xc0\xa5\xc9\x43\xce\x39\x56\x6c\xa5\x79\x5a\x6f\x64\xf1\xd2\x74\x56\x47\xc8\xb9\xd6\x8e\x2f\x07\xb2\x2c\xcd\x5f\x37\x35\x1c\x6f\xce\x4f\xe2\xdf\x1b\x35\xac\x89\x82\x50\x7a\x26\x41\x70\x30\xdc\xe4\x93\x47\x94\x11\x47\x4c\xfa\xbe\xdb\xc1\x8b\x69\x0b\x10\x34\x1e\x06\x85\xa6\xa8\xd0\xe1\xce\x16\x2a\x2f\x31\xd5\xc1\x85\x82\x53\x91\x22\x13\xc7\x64\xc0\x2a\x2a\x30\xee\xef\x36\x93\xd6\xa2\x6a\xf7\xcf\xdb\x02\xb3\xdb\xd3\xaf\x09\x24\xc2\x10\xfb\x6e\xf9\xf5\x97\x65\x4d\x10\x02\x35\x99\x4b\x03\x60\x59\xe4\x6a\x6d\x92\x84\x33\x0c\xb1\xc3\x20\xea\xe4\x1b\x6b\x19\x63\x99\x3d\x57\xaa\x9d\x4e\xc3\x02\x42\xeb\x4e\x75\xdd\xab\x15\x57\xb4\x67\x12\xeb\x0c\xa0\xb1\xe2\x03\x84\x5a\x0b\x4c\xbe\x1c\x78\x75\x70\x54\x2e\x23\xf7\xcc\xfd\x99\xb1\x9d\x23\x4f\x01\xb2\xbe\x96\x69\xfe\x06\xe2\x6c\xc9\x18\x20\x0a\x3c\xa3\xcb\x66\x4a\x23\x3a\x8d\x16\x88\x02\xad\xc0\xa6\xb1\x17\xb5\xa5\x92\x6a\xcd\x98\xcd\x6a\xfc\x31\x22\x4a\x22\x04\x2e\x19\x72\x83\x4b\x32\x59\x88\x68\xcc\x70\x0f\xe8\x39\xa9\xfe\x5f\x6b\x4f\xff\x98\xdc\x52\x6b\xcf\x42\xf2\x14\x98\xc4\xc9\x27\xca\x6d\x10\x85\x21\x45\x14\x18\x57\xed\x7e\xd0\x94\xd0\x0e\xf5\x71\xed\x31\x44\x61\xbb\x8f\xa2\x60\xcf\xcd\x76\x26\xe0\x19\x45\x81\xd4\xde\xa5\xde\x74\xd4\x1d\xd6\x68\x7d\x16\x4a\xb5\xbb\x8e\x0d\xef\x4c\x2e\x11\x01\x06\x66\x9a\x0a\x4a\x5b\x97\x31\x6e\x10\x4b\xed\x62\x21\x3f\xf8\x2b\x94\xa0\x7e\x40\x3a\x8e\x74\x47\xb1\xa6\x08\x45\x77\xda\xc0\xbd\xe4\xdc\xfc\xc2\x10\x31\xca\xd0\x80\x3f\xf2\xaa\x7a\x2c\xea\x01\x90\xdf\xb9\x8e\x11\x8b\x7c\x03\xda\x32\x9c\xe1\xad\x85\xb4\x30\xac\xf8\x93\x8f\xcd\xe2\x10\xd5\x1f\xda\x4d\x49\xf2\xec\x11\x30\x78\x39\x79\x0b\x26\x03\xec\x29\x8d\xd8\xf3\xe7\x0b\x24\x3e\x44\x49\xcc\x50\x90\xed\x66\xb9\x73\x26\x50\x94\x30\x8a\x66\x4c\xa7\x01\x65\xcc\xf8\x4f\x3f\x6c\xc2\x12\x13\x12\x72\x62\xd2\xbb\xc7\xee\x72\xca\x8f\x84\x35\x03\x76\xc5\x36\x4b\x25\xdc\x10\x67\xbe\x47\x1c\x08\x2e\x09\x22\x55\x5f\x66\xeb\x6d\x6d\x3b\xe1\x71\x9b\x59\x3a\xf6\x0c\xc2\x5b\xa8\xeb\x34\x7f\xad\xdc\xec\x9b\x7f\x36\x11\x32\xc4\xbe\x5a\xb6\x50\xfe\xd3\x6d\xf4\xec\x7f\xfd\x30\x76\x3d\x2f\x24\xc1\x2f\xfe\xf4\x36\xc2\x2d\x45\xd2\xa3\x18\x09\x48\x65\xd1\x91\x5d\xfb\xdd\xc1\x50\x27\xfd\xa5\x5b\x3b\x77\xf2\x05\x24\x10\x9c\x71\x66\x0d\x7b\x84\x8f\x49\xff\x2b\x5f\x81\x35\x77\xef\x51\x94\x74\x44\x0d\x05\x91\x22\x1c\xcd\xe1\xa3\x61\x21\x1c\x54\xcf\x40\xa4\xb4\x54\x03\xb6\x9e\x4f\x53\x11\x11\xf8\x82\x58\xfd\xb1\x6d\x23\xfe\x0d\x72\x02\x5b\x88\x80\x6a\x6c\xd0\x9a\xdb\x26\x58\x61\x10\x0f\xe3\xf7\xd1\x81\xaf\x5d\xa8\x17\xc9\x8f\x60\x26\x91\xd5\xb5\x35\xa0\xae\x57\x7e\x84\x6e\x4f\xb2\x0f\x1f\x7b\x2c\xf0\x0c\x20\xb9\xf5\x21\x1c\xa7\x86\x3b\xc8\x85\x6f\xd7\xec\xb5\xcd\x40\xec\x8a\x9b\xe6\x92\xd9\x72\x74\xc3\xd8\xd3\xa6\x1e\x29\x3d\x1e\x0d\x73\xb0\xad\x12\xb6\x87\x7d\xc2\xb1\x4c\xb6\xb5\x12\x10\xfe\xc4\x6b\x30\xe0\x11\xa7\x0d\x38\x3f\xb8\x63\x9f\x9a\x18\x46\x89\x99\xb5\x61\xe9\x55\xb5\x2b\x76\x07\xb0\x18\x3b\x67\x55\xc6\x01\x61\xda\x77\xa2\x71\xe5\x91\x67\x2f\x45\x71\x7c\xe0\x3f\xc7\xdf\x3e\xa6\x3e\x27\x66\x61\xcf\xa1\xe4\x35\xb4\x3b\xe6\x16\x64\x09\xf5\x97\xb9\x29\x10\xd3\xd8\x93\x36\x93\x75\xdb\x64\xd9\x58\x05\xe4\x4a\x97\x84\xb1\x8f\xd9\x64\x6d\xeb\xab\x8c\x4b\x30\x93\x87\xa6\xdd\x09\x3c\x80\x5e\x54\x7f\x91\xab\xbb\x2e\x70\x18\xb3\xd0\xc3\x7c\xfc\xd2\x95\x72\x4d\x63\x23\x31\x8b\xa5\x34\xa4\xf9\xa0\xd2\xe9\x18\x8b\x93\x20\x24\x51\x17\x64\xbd\xcb\x0a\x81\x95\x6c\xad\xe9\xd7\x23\xd0\xba\x01\x3c\x97\x53\x8d\x13\xc2\x8c\x53\xd1\x33\xf8\xdc\x5a\xb2\x3a\xf7\x94\x49\x12\x39\x02\xc2\x9b\xa2\xc8\x6e\x53\xc8\x94\xdb\x66\x63\x1e\x28\x6a\x20\xae\x9b\x1c\x89\x69\x2e\xa4\xaf\x20\xe6\x49\x84\x5b\xf4\x7e\xc8\xdd\xd8\xe4\xf5\xf9\x12\xbd\x0b\xb1\x08\x13\x0c\x46\x7d\xe5\x99\x4b\xb3\xc6\x82\x01\xd6\xc1\x6e\x33\x48\x4f\x79\x5a\x76\xbf\x27\x1a\xe3\x91\x07\x5e\x21\x92\xfa\xbe\xa8\x6b\x28\x4d\x32\xe8\xc7\x34\xcc\x1e\x0b\xc5\x8d\xfe\xb8\x72\xc4\xb3\xed\xb3\xb6\x3b\xe6\x97\xa1\xbe\xc6\x85\x73\x39\xbe\x8a\xf4\x34\xf3\xba\x92\xb3\x65\x71\x3a\x63\x76\x4b\x15\x1f\x5d\x87\x49\xdf\xe8\xef\x38\x98\xea\x70\xfd\x8b\x65\xa8\x02\x31\x2a\x1f\x59\x1f\x4f\xf5\x79\xfd\x1f\xfc\x13\x84\x51\xd7\x10\x12\x84\xf4\x20\x5c\x7c\x2f\xda\x77\x1a\x98\x31\xb1\xa2\x09\xae\x84\x8e\x36\x60\x50\xbc\x0b\x31\x08\x89\xd8\x8d\x63\x9a\xb7\xce\xb3\xfb\x59\x07\x46\xd0\x71\x85\xb2\xe2\x15\x5c\x16\x8b\x8d\xbf\x85\x8e\xc3\xa8\x83\xf0\xe0\xd7\xfd\x96\x77\x70\x5c\x60\x9e\xaf\xf0\xbb\xd6\x26\x1a\x3e\x8c\x83\x8e\x2f\xc4\x3c\xc5\x10\xe8\x6a\x38\x02\xb6\x8b\x7b\xe7\x6d\x30\x3f\x32\xb4\x20\x27\x7e\xbe\x2d\xca\xbf\x8b\xa6\xbc\xcb\x78\xbb\xd8\x4c\xc0\xec\xc0\x88\x67\x6c\x8c\x0a\xea\x75\xfe\x9a\xe6\x13\x63\x8c\x91\x90\xe2\x3d\xcc\x20\x7e\x7a\xba\x9b\x7f\x29\x46\xb8\x46\x33\xc3\xa6\x36\x27\xca\x20\x57\xce\x51\x09\x7e\x34\x83\xb6\x7b\x6e\x9c\x16\x27\x30\xea\x05\x98\x7a\xbf\x7f\x58\x2d\xba\xdf\x98\xc4\x60\xf4\x23\x14\x37\xe9\x90\xa9\x09\x58\xe8\x05\xa6\xe2\xfd\xc2\x6f\xa4\x83\x22\x23\x60\x61\x14\x32\xe6\xb0\x35\xa6\xa9\xda\xa5\x47\x30\xfa\xf2\x53\xba\x24\x60\x21\x13\x2e\x1d\x7a\x53\xa6\xea\xd5\x2d\xc8\x45\x59\x5d\x8a\x86\x01\x8b\x62\x0f\x35\x6a\x2d\x10\x72\x88\xb9\x64\x91\x88\x08\xd8\xb4\x35\x16\x31\x04\x33\x99\x76\x16\x81\x44\x7b\x49\x15\x36\x45\x66\xb0\xde\xf6\x68\xec\x31\xe4\x26\x2d\x91\xd0\xf0\x9f\xfb\x5d\x77\x80\x1a\xcc\xd0\x3f\x69\x2e\xd7\x99\xe1\xaa\xb5\x87\x58\x2c\x1d\x54\xb2\x75\x2c\x1e\x8a\x1c\x26\x4e\x23\x63\xd6\xeb\x73\xec\x5a\xeb\x52\x06\xde\xa8\x7f\x99\xa4\x9c\x0e\xe4\x8a\x1f\xda\x71\x32\x21\x1c\x19\x5f\x33\x21\x14\xc9\xa2\x9a\x32\x9d\xbc\x62\x42\x09\x12\xb6\x54\x08\x7a\x73\x67\x0f\xbf\x12\xa7\xdc\xc5\x2a\x5d\x5d\xd9\x73\x99\xe6\x32\x3d\x4d\xa8\x00\x81\x09\x62\x04\x10\x5b\xc3\x63\xc7\x9d\x1f\xcb\x84\xf6\xd0\xe0\xb7\xd2\xbd\x4f\x7a\x2a\xd4\x33\x7e\x24\xe9\x49\x8c\xb9\xef\x8f\x69\x0e\x5c\x64\x63\x44\x0e\x93\x3c\xc6\x15\xce\x59\x9a\xcb\xc6\xaa\x27\xa4\xaf\x87\xa9\x49\xce\x14\xf7\xfc\xc4\xb1\xc1\xa4\x33\xfa\x27\xc0\x14\xd0\xb8\x63\xc7\x34\xd5\xaf\x9f\xa2\xc9\x19\x68\x0f\x13\x68\xd5\xb9\xaa\xe1\xf8\x94\x4f\x93\xff\x4c\x7b\x1c\x19\x11\x65\x71\x3c\x16\xf9\x58\x43\x1c\x12\x5f\x1b\xbd\x16\xb3\x9f\xdd\x70\x35\xe3\xae\x24\x01\x31\x18\x23\x23\x6f\x32\x22\x1d\x75\x2d\xe2\x04\xf5\x07\xcd\x26\x33\x22\xb0\x86\x24\x48\x22\xb4\x85\x50\x85\x15\x31\xe9\xd3\xc8\x7d\x12\x80\x88\x94\xad\x2a\x7b\x38\xcf\x48\x5d\x41\x42\x28\x45\xd3\xc8\xd8\xa1\xcf\x65\x71\x2c\x26\xba\xd8\xf3\x8c\x54\xf6\x74\xea\x69\x0c\x1f\x2d\xd7\xf7\xf7\xfb\xc5\x6a\xb5\xdf\x3e\x2f\xba\x08\x4c\x42\x59\x84\x05\xe6\x8b\xf2\x5f\x45\x73\x85\x8e\x10\x12\xca\x8d\x02\xee\xa9\x2c\x0a\x3d\x9c\x04\x49\x08\x7e\xe0\x18\x5c\xb1\x38\x68\x88\x10\xb7\x6d\x22\x3f\x30\x6b\xb7\x1d\x2a\x63\xf2\xd6\xd9\xd1\x97\x44\x09\x61\xc6\xdf\xaa\xe5\x01\xdd\xbc\x34\x7f\xbd\x49\x55\xf5\xa5\x2f\x95\x74\x03\x3e\x89\x03\x43\xc7\x97\x56\xdb\x13\xff\xc8\xd3\xfc\x75\x61\x78\xc4\xe6\xc1\x5d\x49\x1c\x6a\x1c\x6b\xa6\x72\x1f\x25\x57\xd7\xb9\x5a\x4d\xc0\x87\x97\xdd\x10\x33\xc3\x8f\xb3\x78\x2d\x53\x0c\x57\xbb\x58\xd9\xc4\x0d\x4e\x62\xa9\x95\x2d\xf7\x93\x30\x0b\x64\x9e\x5e\x19\x08\x82\xa1\xde\xad\x6d\xbb\x68\xea\x03\xe4\x75\x2a\x7f\xad\xa4\x0f\x49\xac\x79\x6c\xb9\x31\xd7\xbc\xcc\xce\x9d\x0a\x7f\x5e\x57\x17\x0a\x89\xff\x6b\x8a\x4d\xe7\xa2\x2e\xce\x93\x4d\x98\x66\xbe\xc1\x9e\x18\xf9\xca\xdd\x54\x94\x13\x92\x24\xd4\x48\xe3\x22\x55\xf7\x4b\x6c\xc0\x5e\x9b\xe7\x87\x01\xb4\x2d\x49\x04\x61\x8e\x56\xa3\x48\xf3\x11\x5c\x98\xba\x36\x3a\xc4\x30\x09\x06\xe7\x47\x5a\x88\xb6\x01\x4f\x4c\xe5\x38\x6a\xbb\xd5\x4d\x09\x53\xe2\xc7\xf1\x78\xe0\x3c\x70\x84\x72\xf6\x7e\xed\x0c\xfc\x89\x27\xda\x26\x22\x0a\x5c\x55\xd4\xb6\x11\x55\xaa\xce\x93\x59\x27\x85\xc0\x52\x79\xe7\x5f\x18\xf1\xd8\xb9\xa8\x7a\x22\xa5\xc0\x82\xf0\x9b\x42\x14\x07\x67\x48\x26\xca\x0b\x1c\xbe\xa5\x0b\xb2\xff\xb9\x1e\x42\x0e\x5d\xc3\x30\xe2\xc1\x00\xe4\xb0\xee\xf6\xb6\x04\x42\x8a\xf5\xbf\x56\x79\xa0\x63\x18\x9e\xa2\x59\x12\x90\x80\x8b\xf5\x11\x6f\xb0\xc9\x71\x1c\x75\x57\xd1\x09\xfa\x40\xff\x2e\xd2\x7c\xff\x5e\xd4\xfd\x02\xa5\x3d\xe6\x47\x33\xa8\xc1\xf1\x03\xea\x44\x33\x43\x10\xf8\x90\xe6\x69\xeb\x13\x01\x97\x7d\x6e\x25\xd1\xc2\x03\x9b\x9e\x30\x71\xf6\x2b\xca\x55\xd7\xc9\x41\xba\x6c\x76\xa2\x95\x8f\x51\xc9\x2c\x95\x90\x57\x70\x01\xb7\x37\xcd\xb8\xe7\x31\x44\x27\xa1\xa9\x2a\x79\x76\xea\xbe\x2c\xf7\x68\x18\x05\x3d\x70\xea\xa5\x47\x75\xf5\xa7\xfb\x41\x88\x98\x96\xd7\xb4\xcc\x36\xca\x31\xad\x4d\xdb\x44\xb6\x50\x6b\x10\xd0\x9f\xc3\x7e\x73\x3f\xe6\xa6\xac\x88\x6b\xd8\x1f\x9b\x79\x66\x12\xe0\xbe\xa6\x98\x4f\x5c\x7d\x5f\x0e\x97\x50\x1e\x04\x31\x5a\xca\xad\x4f\xb6\x2b\xf9\x3b\x64\xf7\x3c\xef\x5e\x87\xf8\x31\xb2\x8c\x6c\xbf\x3d\x2e\x9f\x3a\x08\x12\x27\xb1\x8c\x4c\xbc\xf3\x54\x54\x13\x4f\x8e\x53\x3f\x40\xc0\xdc\x7e\xb6\xdc\x0f\x38\x4d\x0c\x0d\xa5\x09\x7d\xcc\x65\x94\x79\xe8\xfb\x98\x7a\x55\xd6\x7c\x37\xa0\x19\xcb\xc6\xbe\x45\x19\xe8\x76\xe1\xbb\x05\xd8\xe4\x8b\xba\x2e\xa0\x3e\x3c\xe3\xca\x3e\xb9\x55\x08\x0a\xa9\xa8\x4f\xfc\xbc\x2b\x14\x3f\x8f\x55\x58\x26\x3d\x14\x45\x01\x36\x3e\x14\x4d\xf9\x5c\xb8\xd5\x94\xc7\x84\x08\x9b\xa6\x39\x9e\x47\xef\x33\x39\x3f\xe6\xbe\xd3\xbb\x5c\x1f\x4f\x59\x71\xbe\xa2\xd4\x01\x3c\x96\x0c\xd1\x5f\x3c\x2d\x57\x06\xea\x7d\xad\x21\x18\x35\xae\xd6\x85\x72\x86\xde\x22\x57\xa6\x22\xa9\x9b\x02\x9c\xf9\x26\x6d\xee\x54\xb8\x8a\x37\x38\x16\x26\x1d\xed\x5a\x40\xc8\x3b\xe7\x17\x5f\x62\x93\x5b\xee\x41\x9e\xed\x5d\xab\x04\xa8\x36\xa6\xee\xc6\x5c\xe9\x05\x4e\x45\xef\xa9\xdb\xc5\xdb\x36\xe6\xd2\x47\x0c\xa6\x59\x5e\x16\x4a\x5d\xc3\x51\x71\xae\x14\xd6\x3f\xed\xb9\x52\x63\x06\x79\xd7\x40\x53\xc9\x86\x82\xb4\x53\x08\x06\xe7\xda\x3c\x3f\x37\x50\xc6\x3d\x82\x3f\xf6\x3d\xff\x10\x70\x41\x0c\xf3\x4a\xdb\x07\x16\xf0\xf8\x4b\x4d\x2e\x77\x2a\x0f\x22\x6b\x8f\x1b\x31\x8c\xba\xf7\x29\x46\x78\x42\x2e\x14\x17\x7d\x18\x02\x01\xf3\xe0\x76\x93\xff\xfd\xbf\x3f\x26\x31\x59\x2e\x40\x6b\x70\xb8\x2f\x53\x1b\x39\x8b\xa6\xb5\xcd\x65\xc4\x1d\x0b\xdd\x32\x4b\x21\xaf\x17\xf5\x48\x2d\xce\x35\x8b\xb9\x37\xae\x66\x5f\xe4\x45\xbb\xf0\x0e\xa3\x88\x17\xab\xdd\xf8\x4e\x60\x2a\x95\xdb\xa1\xfa\x9f\x26\x3d\x8d\x23\xb4\xae\x91\x8e\x30\x77\x7c\xf3\xe7\x78\xc5\x50\xc4\xa0\xf8\x4f\xfc\x0c\xa6\x12\xf6\x19\xca\xe7\x4e\x70\x10\xb8\xe2\x14\x93\x73\x95\xd5\xf9\x40\x13\xa4\xba\x39\x3f\xf3\xeb\x53\x02\x02\xbb\xca\xb7\x9f\xef\x33\xcf\x80\x43\x4c\x0c\x1a\x07\x5f\x68\x57\xe0\x5b\x8f\xde\x0e\xc0\x20\x98\x91\xdb\xbc\x35\x43\x8c\x02\xe4\x97\xcb\x05\x9f\xeb\x84\x5a\x12\x71\x59\xe4\x6a\xd5\x40\x4f\x87\x09\x5c\x8b\xae\xa4\x6d\xc9\x4f\x9b\xfc\x07\xa4\xdd\x21\xeb\x2f\x0c\x8a\x57\x27\x32\x81\x20\xbc\x50\xa1\x1b\xff\x9e\xc2\xc7\xac\x54\x3a\x08\x8f\x1b\xd6\x69\x63\x5c\xaf\x40\x5c\xc5\xe7\xda\x13\x7c\x0a\x18\x53\x7e\x28\x72\xe5\x26\xb7\xf0\x43\x8d\x21\x74\x34\x60\xcc\x12\x87\xf8\xeb\xf6\xa5\x3b\x1e\xc5\x89\x47\x27\xfc\xc4\x28\x38\x9a\x55\xd8\xa6\x2e\x2f\xe3\xd0\x22\x60\x26\x24\x09\x97\x29\x34\xdb\x82\xd0\x18\xeb\xb0\x87\xe5\x60\xdd\x31\x1d\xa2\x83\x52\x7d\x00\x9c\x96\xc5\xd1\xb2\x7f\x8e\x47\xb4\x20\xba\x93\xdd\x5d\x94\xc0\xff\xa7\xe1\x59\x5a\x9f\x6f\xce\x4e\x56\x69\x82\x5e\x14\xd4\xa3\xc8\x53\xba\xc9\xe5\x73\x57\xab\x31\xbe\x24\xf5\x12\xb4\x2d\xd0\x22\xc9\x79\x53\x57\xa3\xba\x7b\x10\x94\x68\x53\x1d\x60\x90\xf3\xf2\xcd\xa1\xa4\x47\xf0\x8b\xc9\x45\x13\x53\xcc\x75\x6a\xaa\xc3\x32\x75\xda\x63\x20\xa8\x8c\x11\x64\x80\x9c\x25\x3b\xe0\x47\x33\xe0\xba\xce\x18\xf7\x28\x55\x26\x53\x53\x01\x12\x08\x36\xa7\xbd\xe2\x6f\x70\x68\x2e\x2d\x96\xf1\xdd\x43\xdf\xf3\x59\xa7\x2c\xa6\x1a\x59\x77\x4c\xa4\x53\x83\xf4\xca\x05\x02\x82\x8b\xe8\xf3\xcb\xe6\xfb\x62\xb7\xde\x6f\x77\x8b\xbb\xf5\xfe\x76\xf3\xb8\xd9\x7e\xfd\xd2\xb5\xa1\x98\xc9\x14\xed\x0b\xf8\xdd\xaf\xdc\x47\x40\xc4\x5f\xcb\xac\x68\xd4\x4b\x21\xdd\x81\x48\x87\x94\xe0\x9e\xa9\xb2\x76\x25\xaa\x79\x86\xe0\xb2\xe8\xc1\xb5\x60\x81\x44\x0e\x6e\x53\x45\xfa\xf5\x24\x1e\x0b\xd5\x2f\x02\x9f\xe9\x07\x83\x60\xca\x47\x6e\xd8\xc5\x66\x59\x94\x30\xb0\xeb\x05\x03\xcb\x17\xe8\x9c\xba\xdc\x70\x1d\x8d\x4f\xd7\x26\x61\x6a\x94\x69\xf2\x1c\xb2\xa1\x87\x2e\x12\x4a\x31\x0b\x82\x92\x51\xc3\x15\x4e\xf0\x48\x78\xd1\xe8\xc4\x21\xb4\x6b\xd4\xcb\xdd\xcd\x78\xac\xb1\x5a\x6a\x5b\x1c\xcd\x93\x5e\xe6\xa4\x26\x50\x71\x21\x3c\x45\x1c\xcc\xb7\x39\x1e\x79\x79\x36\x09\x41\xee\x22\xf4\xe3\x71\x23\xfc\x18\xe3\xc5\x3f\x36\xbb\xaf\xab\x97\xc5\x8f\xc5\xfd\x7e\xb5\xbe\x5f\xfc\xed\x9e\x5a\x40\x88\xa3\x50\xa3\x5f\x69\x00\x96\xf7\x23\x01\x41\x10\x42\x07\xf8\x35\x16\x4a\x3d\xf3\x66\x4a\xbb\x02\x42\xfa\x86\x72\xa1\x5d\xb3\xb0\x4b\x1e\x9d\x72\xad\x75\x37\x84\x92\xc6\x29\xd8\x20\x57\xba\xe9\x77\x67\x88\x08\xf0\x34\x66\x69\xbf\x72\x39\xea\x50\x20\xbe\x64\xce\xd2\x6f\xf2\x7a\x57\x76\xd4\x36\x20\x80\x72\xcc\x4e\xe0\x54\x7d\x28\x14\xea\x2f\x3e\x60\x70\xbf\x5b\xe2\xb4\x27\xb0\xcd\xed\xa2\x4f\x5e\x5f\x07\x00\x08\x4d\x4c\x29\x91\xa1\xf3\xb8\xe7\xb9\x3a\xf2\xf2\xad\x5b\x95\x74\xa8\x31\x6c\x60\xea\xa1\x71\x06\x05\xf3\x53\x5e\x7a\x91\x09\xd2\x9f\xca\xf4\xbf\xd0\xfb\x46\xd2\x8b\x19\x46\x4e\x6a\xd1\xfd\xc2\x44\xe0\x12\x72\x45\x71\x32\xd8\xb4\xd9\x89\x28\x3d\x2d\xc1\x8a\x6f\x0c\x30\x70\xbf\x65\xac\x48\x3f\x88\x30\x34\x61\xe5\xae\x47\xa9\xb6\xcf\xe7\xbf\xf4\x83\x18\xad\x49\x64\xe1\xce\xbb\xe4\x8c\xf4\x63\xa2\x06\xa9\x63\xa7\xcb\x3b\xcc\x8d\x4b\x5f\x78\x48\x8c\x6a\x69\xe4\xc6\xb0\x8f\x51\xe7\x4b\x5f\x02\x2e\xbd\xfb\xde\x9e\x7a\xe9\x77\x55\xe9\x43\x8c\xab\x90\x71\xb7\xcd\xfe\x39\x81\xc3\xdb\x96\x81\x24\x58\xc2\xd4\x5e\xe8\x5f\x7f\x3f\x2f\x67\xa2\xb3\x32\x90\xa1\x32\x4a\x99\xa9\x1b\x50\x92\x88\x80\xc6\x63\x41\xa1\x2d\xd4\xeb\x5c\x17\xa5\x84\x17\x78\x4f\x91\x80\xfa\xb1\xa8\xcd\x4d\xdd\x59\x3a\xc2\xfc\xd5\xe3\x66\xf7\xf2\xf4\xb8\xfe\xf6\x60\x76\x82\xc9\x60\x1b\xbd\x29\x65\x1c\x81\xb8\xff\x69\x78\x0d\xa5\x43\x87\x4a\xaa\x05\xaa\x85\xfc\xf8\xba\xd9\xad\xef\x37\xdb\xdd\xfe\x79\xfd\xb2\x79\x72\x48\x6b\x19\x06\x21\xb5\x7a\xae\x07\xc8\xf4\xc8\x78\x91\x61\x12\x79\x56\xe1\xc0\xc4\xd9\x76\x3f\x1d\x26\xf8\x37\x11\x17\xee\x42\x92\x22\x49\xbb\xf9\xaa\x58\xd5\x87\x73\xf2\x85\x77\xf4\xa3\x76\x4e\xcb\x28\x62\x56\xc5\xb7\x2e\xe1\x94\xaa\x2d\x96\xa3\xf4\x4b\xa5\x8c\x22\xa3\xbe\x83\xa5\xa0\x8d\x42\xcc\x31\xfa\xb7\x63\xfb\x58\x46\xc2\xc3\x0b\x61\x00\x60\x20\xa6\x3a\x7e\xb2\x98\xa9\xc4\xe2\xae\x7a\x22\x9e\x6b\xfc\x1b\xf6\x1c\x46\x89\x25\xda\xab\x1f\x9c\x5e\x25\x99\x89\xe4\x4a\x16\x06\x98\x67\xfe\x9f\xa6\xe4\x43\x16\x1e\x90\x2c\xd1\x98\xda\x68\x5d\xf3\xb4\x04\x85\xf2\xdd\x50\x55\x4f\xfa\xb9\x84\xf7\xb4\x68\xaa\x55\x93\xbf\x42\xd1\x9f\x20\x09\x8b\xc7\xf1\x89\x76\x20\x4f\xaa\xcd\x25\x83\x40\x50\x63\x93\xc1\xf9\x94\xf1\xbe\xdb\x38\x95\xc8\x56\x68\x96\xa1\xe7\x26\x7f\xab\x2c\xb3\xbb\x6b\x00\x31\x06\xde\x3e\x30\x6e\x3b\xaa\x4c\x1f\xfe\xbd\x52\xf1\x2b\x79\xeb\x9d\x76\xe6\xe3\x95\x15\x4c\x24\x44\x5a\x68\x26\x72\xff\x5f\x9a\xa1\x52\x70\x82\xf9\xf6\x9b\xa6\x4a\x73\xa8\xaa\x45\x53\x17\xa6\x7e\xe7\x5b\xde\x1b\x7a\x52\x79\x14\x47\x81\x02\x59\x1c\x4f\xed\xf9\x46\xc4\xa3\xb9\xc4\xff\x49\xc5\x7d\xdc\x68\xcc\x2a\xb5\xce\xd5\x85\xd0\x2f\x48\x25\x34\xda\x1a\x2b\xc0\xe2\xb2\x7e\x7b\x97\x4a\x25\x08\x47\x7d\x2d\x32\x75\x0b\xad\x51\xce\x6d\x6c\x74\xc4\xe9\x06\x12\x78\x82\xa6\x3e\x92\x0e\x3b\xaa\xf7\xc9\xdb\x69\x3f\xc1\xd5\xd6\xda\xea\xad\x69\x5c\x34\xb5\xa9\x2b\x54\x33\xf1\x3e\xe5\x09\xdf\x82\x0b\x1d\xef\x02\xca\x10\xce\xbc\xa6\xf2\x43\x85\x08\x11\xd5\x3a\xcc\x93\xcb\x04\xbe\xe7\x36\x04\xac\x73\x58\x54\x55\xfa\x9a\xc3\xbc\x3a\x07\xa8\x40\xcb\x24\x1c\xf0\x9d\xfe\xde\xa2\xae\x08\x8b\xa5\x2d\xff\x41\x52\xd1\xa5\xa9\x34\x9e\x50\x0e\x81\x22\x89\x87\xbc\x2c\xe8\x39\xe3\x4b\x2d\x8b\xe3\x89\xa7\xaf\x13\x63\x5c\x11\x15\x62\x76\xf1\x64\x80\xc4\x13\x9f\x56\x51\xcf\x10\xd4\x61\xe7\x2c\x4e\x27\xc8\xd5\x0a\x64\x3b\xc0\x41\x61\x84\x7c\x7c\x35\x1a\x25\x48\xd4\x76\x28\x9a\x0a\x69\x44\xed\xef\x21\xf5\x71\x8d\x34\x14\xf3\x96\x33\xa1\x77\xcc\x54\x98\x18\xfe\x70\x8b\xa8\x43\x29\xdd\x2f\x73\x60\x43\x15\xf2\x04\x49\xb0\xd2\xca\xd5\x3b\xba\x7b\x44\x3e\x45\x23\xf1\xc8\xdf\xe0\x39\xb5\x0e\xe0\xc4\x08\x53\x51\x98\x08\xbb\xb4\x75\xac\x3c\x3e\xeb\x2e\xc1\xb8\x53\x81\x7d\xce\x78\x0e\x66\xcb\x98\xe7\x86\x06\x15\x09\x1f\x53\x5f\xf7\x85\x29\xff\xe8\xd9\x45\x54\x6c\xc9\x07\x75\x93\xcb\xbd\xb7\x0c\x96\xdd\x01\xee\xe1\x7a\xf5\x5c\x42\x3b\xc0\x7f\x76\xbf\xcb\x04\x4b\xad\x6e\x79\x5e\x17\xa3\x72\x0a\xc5\x22\xed\x8d\x94\x67\xd2\xf7\xd4\xd9\x36\x2a\x11\x09\xe6\x1d\x45\x73\xde\xeb\xb2\x98\x62\xe4\x14\xd7\x14\x37\x1f\x74\x79\xcc\xb7\x7d\x99\x61\xaa\xb7\xad\xa5\x9f\x8c\x11\x50\xe9\xb1\x39\x7e\x2d\x54\xb6\xb2\x09\xb7\xc9\xe7\x96\x34\xc6\xca\xc2\xed\x7a\xed\xb6\x3b\x25\x43\xca\xcd\x10\xc8\x66\x1d\x22\xa5\x02\x83\x63\x3d\x41\xce\xb3\xce\xab\x52\x4a\x29\x83\x2b\xaa\xea\xdb\x26\x97\xd3\x82\x4c\x05\x9e\xd1\xe0\x4e\x65\x41\x1e\x78\xd7\x71\xad\x85\x6b\x56\x29\x5e\x1f\xda\x95\x63\xcf\xfd\xb8\x3b\x28\x3c\xac\xe4\xef\xa5\xd2\x31\xb4\x6d\xeb\x48\x3a\x65\x12\x50\x1a\x62\x70\x8a\x29\x46\xc2\xd7\xb2\x3b\x8c\x1e\x1d\xbc\x40\x25\x36\xf8\xfc\xa9\x84\x99\x01\x4c\xcf\x2e\xd0\xe0\xc5\x46\x64\x8f\xab\x7f\x37\x55\xbd\x4a\xb5\x4e\x65\xd3\xf6\xc3\xb8\x59\xe0\x2b\x65\x9f\xa8\x67\x8d\xfe\xb6\x5d\xfd\x58\x6f\xa6\x2d\x85\x67\x12\x1a\x9d\xbf\xbd\x2b\x7e\x8c\x51\x54\x10\x48\xe1\x82\x95\x23\x91\xcb\xf6\x08\x60\x74\xfa\xfb\x9f\x8f\xc8\x03\xe0\x7e\x27\xc4\x47\x62\x59\xbb\xf3\x8f\x10\x52\x40\x88\x41\x2e\x5b\x0d\xbc\x3d\xba\x8f\x55\x77\x34\x52\x42\x0e\x04\xf3\x5b\x5f\xfc\x34\x56\xa4\x03\x20\x92\xf8\xaa\xcf\x8a\x63\xe4\xeb\x29\x9f\xc9\x7a\x02\x0d\x8c\xbc\x34\xd2\xa3\xbc\x74\x59\xa2\xab\x35\x81\x40\x43\xaa\x1c\xae\xe7\xdb\xcd\x2c\x4f\x2d\x40\x18\x44\x88\x14\x00\x74\x69\x1e\xd2\x7c\x84\x67\x80\x50\x72\x5f\x77\x91\xa2\xea\x1e\xb4\x45\xe4\xbb\x06\x51\x20\xe3\xb8\xa3\xcb\x78\x85\xef\x58\x36\x34\x27\xdd\x0a\x10\x87\x1a\x91\x8d\xa6\x22\x67\xf7\x75\xf3\xb2\xda\xf7\xaa\x12\xee\x8a\x71\x62\x74\x95\x5f\xd6\x3f\x16\x2f\xab\xfd\xe3\xb7\x87\xfe\x88\xa9\x96\x95\x59\x51\x01\x3a\x8d\x90\xab\xe6\xd8\x75\x78\x2c\x19\x7e\x43\x01\xbc\x7e\xe0\x65\x9d\xf2\x6c\x68\xeb\x42\xac\x3d\x2c\x7d\x72\xf8\xe4\x2d\x64\x99\xa1\xc9\x9b\xef\x40\x16\x32\x57\x90\xba\xbc\x7d\x6a\x47\x7a\x9a\xbf\x5e\x6b\x0b\x04\x79\xc1\x5b\xeb\xfb\x96\xa7\xd9\x94\x05\xb7\xb2\x34\xb8\x8f\x45\xbd\xc9\xbf\x55\xe0\xb9\x87\x4a\x42\x90\xba\x97\xec\x31\xa1\xf6\xd1\x26\x06\xdc\xf7\x84\xcd\xba\x3f\xf7\x6f\x23\x22\x22\x92\x7e\xe4\xd8\xf0\x21\x7e\xbd\x4f\x93\xf8\x20\x54\x88\xb8\x87\xac\x78\xdd\x97\x20\x79\x75\xed\xfd\x85\x32\xba\xa9\x8b\x53\x99\x76\xb0\xda\xf9\x6b\x4a\x0e\x98\x0d\x1e\x4e\x36\x29\x03\xde\xc7\x40\x5e\xac\xfd\x89\x72\x50\x50\x7f\x00\xe4\xa8\xef\x3a\x19\x23\x52\x0a\xd6\x6b\xb5\x2e\x8c\x8e\xc6\x64\x26\x28\x19\x23\xfe\xea\x1d\x09\x8c\x3b\x9a\xda\xc9\x95\x94\x34\x65\xb8\x27\x7e\xee\x32\x5a\xfe\x1c\xfd\x33\x80\x56\x26\xef\x38\xd2\xf8\x78\x2e\x8b\x9f\x6e\x55\xd6\x7e\xc0\xf9\xa0\xb3\x7b\x46\x5c\x77\x9c\x8a\xc4\x45\x10\x30\xc3\x7d\x5f\xd4\x4f\x1a\x6b\x5b\x3a\xd4\x96\x0e\x42\x8d\xe4\x6f\xbb\x54\xee\xb8\xdc\x15\xf0\xd2\x64\xbf\x56\xc3\x18\x7f\x14\x1d\x44\xb1\x89\x3d\x01\x12\x89\xbb\x5f\x63\x0f\xa3\x3a\x4b\x87\x9b\x1d\x23\x44\x75\xa0\x62\xa4\xa6\xc2\xdc\xdd\xca\x2a\x79\xb9\x83\x94\x48\x61\x0a\x17\x10\xe9\x03\xe5\x63\xd1\xbc\x03\x6f\x9e\xcb\xe2\x54\xa6\x45\xd7\x8c\x19\x81\xc5\xd2\xf9\x92\xe3\x0e\xd7\xa1\x67\xf4\x79\x4f\x86\xfb\xe3\x2b\xcf\xfa\x02\x5c\x1d\x06\xd4\x15\xdb\x59\xb9\xd2\x61\x19\x93\x6b\xc4\x63\x18\x70\x96\xc1\xae\xe8\x6a\x47\x5c\x4a\xf8\x4a\xce\x48\x47\x1e\x50\x5b\x31\xff\xd2\x88\xa6\x32\x85\x6e\x9f\x56\xcc\xeb\x28\x66\xe8\xe9\xb8\xe9\xe2\x7e\x06\x91\x48\xe7\x00\x1d\x4f\x35\xec\x89\x83\x43\xea\xd8\x57\xe8\x9c\x9b\x4a\x5e\xa4\xd5\x99\x75\x52\x74\x1c\x30\x4c\xc1\xaf\x16\xab\xbf\x10\xb6\x60\xfc\x6a\x77\x34\x0a\xf0\x23\xba\x0d\x79\xbf\x28\xd3\x7c\xc2\xe6\xa4\x63\x29\x71\x21\x3c\x42\xcd\x15\xaf\xf9\xb4\x9a\x44\x33\x1a\x1a\xc4\x03\x72\x4a\x5f\xe1\xff\xfe\xb5\x38\xd3\x55\x67\x5a\x27\x11\x41\x16\x78\x44\x48\xdd\xce\x68\xfa\x0e\x7c\x55\xcd\xb5\xf4\xe6\x42\xcb\x57\x3e\x18\xd7\xca\xf3\x3b\x1b\xf3\x0c\xe5\x1d\x4f\xf3\xfb\xa2\xaa\x9e\xf2\x7b\x5e\xd5\xb7\x59\xea\x40\x54\x5a\x26\x46\x41\xe0\x98\x1a\x9a\x1e\x64\xbd\xeb\x0e\xea\x00\x1d\x08\xcb\x8c\x96\x9f\x67\xb5\x5a\x41\x2b\x2f\x31\x5e\x63\xd6\xb8\xe0\x95\x56\x81\xc4\xaa\xf0\x53\x51\x0d\xac\x56\x8d\xce\x80\x0b\x39\xb7\xcb\xf1\x27\x40\x7b\xad\x68\x82\x88\xf3\xbc\x39\x22\xe4\xa8\x9b\xed\x10\x6a\x64\x48\xb0\xa2\x8d\x7d\x42\x71\x64\xc8\x6b\x88\x8c\x5c\xbb\x55\x63\xfb\x3c\x1a\xae\xc1\x12\x44\x17\x08\x49\xdf\x1e\x0a\xb7\xba\x68\xcf\x53\x1a\x93\x24\x8f\x45\xde\x45\xc8\x79\xe6\x2c\x20\x87\x92\x1a\xce\x00\xed\x05\xb1\xc4\x08\xf7\xd1\x08\x62\x0d\xc3\x1a\xda\x23\x1e\xc3\x52\x03\x2b\x60\x78\x07\xc7\xee\x5e\x58\x36\x8f\x5f\xe4\x68\x61\xda\xe3\x22\x64\xed\x11\x30\x29\x26\x07\x5f\xb5\xeb\x51\x77\x05\xea\x4b\xe4\xe2\xfc\x33\xad\x6f\x9b\xba\x29\x87\x45\x04\xda\xa3\x84\xa0\x9a\xff\xfe\x15\xea\x55\x59\xe4\xb0\x10\x69\x96\x4e\x8c\x43\xed\x85\x9e\x92\xe0\xca\xed\x50\x9b\x7c\xc2\x8c\xf7\xc7\xd8\xe7\xfc\x63\x7c\x76\xe0\xe3\x88\x48\xd1\x81\x0e\x3c\x67\x2f\x6b\x2f\x4c\x12\x74\xe3\xad\x8a\xf2\xdc\x00\xd6\x5e\x14\xc5\x9e\xa9\xeb\x54\x3f\xd2\x7c\x34\xda\xb4\x97\x04\x12\x25\xd0\x1f\x36\xab\xbb\x97\xc5\x6a\xbd\xdf\xfd\xfd\xbc\x26\xee\xfa\x49\xe4\x23\x1f\x00\x2e\x0c\x67\xf7\xab\xe0\x71\xd4\xa7\x59\x97\x87\xa1\x84\xeb\xfc\x23\xc8\x20\xc6\x7d\xab\x35\x4d\x06\xd5\x34\x57\xb0\xae\x93\x93\x5b\xe7\x18\x6c\x00\x1a\x63\xef\xc7\xe2\x12\x8e\xa7\x3d\x4d\x74\x40\x07\x35\xae\x73\x3b\xa8\xf6\xbd\x08\xac\x63\x2b\x0b\x05\xcf\xad\xef\x50\x63\xe2\x6b\x3e\x18\xac\xfd\xc0\xd3\x38\x3e\x6a\xc7\xbb\xa0\x3a\x82\x4e\xed\x07\x81\x91\xbe\xd9\x63\x69\x36\x47\xe2\x91\x76\x5a\x43\xd9\x0f\x81\xd9\xe0\x90\xf6\x03\x12\xd2\x5e\x68\x06\xeb\x3f\x6e\x78\x05\xea\x69\x5c\x87\xd0\xdd\x49\x18\x6a\x84\x3b\x5e\x4a\x47\xa1\xa6\xfd\x40\x31\x8c\x0c\x61\xa4\x6d\x4c\x16\x7d\x0d\x57\xe3\xce\xd4\x1a\xc3\xbc\xa8\x25\x78\xfb\xf8\x6d\x3c\x60\x7d\x42\x05\x58\x55\x05\x17\x7d\xbb\xce\x88\xa2\x7d\x12\x52\x6d\xa4\x53\xca\x1c\x45\x4f\xe6\x6c\x78\xed\x93\x28\x0c\xba\x92\x7a\x5e\xc2\x48\xd6\xde\xb5\xe1\xda\x95\xd4\xda\xe8\xf4\x45\xee\x56\xfb\x44\x09\x65\xaa\x2e\x5f\x78\x7e\x19\x32\xd3\x3e\x0d\x7c\x03\x6e\x1f\x28\xb1\xcc\xbe\xc0\xe4\x09\x69\xa8\x70\xa1\x5d\xd7\x07\x01\xf3\xfa\xb7\xda\xa7\x89\xf2\xfa\xd0\xed\x4d\x53\xe6\x98\xac\x51\x93\x3e\xa4\x3c\x06\x13\x78\xb4\x0a\x3c\xd7\xa4\x63\x3b\x2f\x0b\xad\x33\xc7\x54\xd1\xda\x9f\xdb\x9a\x1f\x4f\xe3\x8a\xee\x39\xc4\x80\xf6\xc3\x30\x36\x58\xd4\x41\x98\x24\xf8\x32\x6e\xa2\xa9\x09\x34\x5a\x29\x08\x37\x86\xa2\xc8\x14\x47\xb6\x96\x4c\xe6\x7e\x64\xc4\x50\x5c\xb6\x96\xeb\x5e\x17\xe5\x5e\x3a\x1e\x81\xfd\x0a\xff\x7d\xdb\x91\x00\x69\x9f\x31\xb0\x9c\x27\x8d\x4a\x0b\x84\x6a\x4f\x3e\x07\xe3\x21\x31\x29\x0c\x38\xa2\xb2\x4b\x77\x2a\x97\xa3\x44\xe1\xd5\xef\x64\xdb\x27\x7e\x88\x93\x5c\xa7\x59\x36\x86\x4e\xf6\x3b\xbc\xf6\x13\x6d\xb2\x42\x58\xeb\xdf\xd3\x34\x6b\x9f\x47\x14\x57\x3b\x99\xa5\x5a\xf7\x89\x37\xed\x0b\x4d\x43\x1b\x66\xba\xe3\xd8\xef\xd3\x22\x7a\xed\x2b\x1d\xc6\x43\x09\xad\xf5\xee\xab\x3b\x1d\x88\x70\x1b\xf1\xd7\xa2\xa9\xe0\x99\x9f\x8b\x7e\x96\x02\x93\x01\x75\x0e\x7f\xbd\x03\x7e\x51\x6c\x3d\x01\x59\x6a\x1f\x94\x27\x2d\x19\xf5\xb8\x3b\x26\x4b\xa6\x6d\xae\x55\x84\x8f\xbf\xbe\x07\x5e\xe6\x36\x5a\xbb\x7e\xb1\x51\x2c\x1d\x78\x1e\xe5\xbe\x01\x21\x8e\xbf\x4c\xe0\xf9\x92\x47\x16\x2a\x56\xd6\x86\x15\xba\x1e\x23\x8d\xff\x98\x9c\x21\x12\x34\xe6\x3a\x12\xdb\x5e\x8f\x77\xdc\xd0\x0f\x39\x6e\xcb\x27\x7e\x6e\x1d\xd8\x2b\x7c\xbd\x3a\xf0\xb9\x87\xb4\x9a\x9d\x05\x50\xe4\x50\x1f\x38\x16\xd2\x7c\xab\xcd\x76\x6a\x9b\x06\x11\x27\x2e\x9a\x0a\xe5\x7b\x2a\x2d\x26\x77\x0e\x53\xe8\x56\xda\x20\x60\x1e\x8b\x47\x80\x9c\x61\x90\xab\xc7\x05\x75\xcd\x29\x42\x33\xb7\xae\x0c\x75\x7e\x15\x08\x02\x6e\xaa\xa8\x8d\x3d\x87\xf9\x98\x89\xba\xba\x0e\x08\x37\xd4\xd2\xed\xba\x88\x65\x2b\xc6\xe0\x99\x94\x94\xe8\x80\x08\x8f\xc6\xbd\x8d\xf9\x38\x50\x08\xd4\x01\x91\x02\xc9\xc3\x4a\x90\x67\xe9\xca\xcb\x75\x40\xa3\x18\x0d\xf7\x7f\xfe\x75\xdb\xfd\xa4\x2d\x2d\x5b\x31\xe5\x91\x98\x74\x79\xe8\x99\x73\x17\x23\xec\x90\x0e\x22\x12\x89\x8e\x53\xb4\x90\x6f\xed\x77\xc3\x69\x86\xe6\xe5\x64\x42\x04\x11\x05\xe4\x68\xd2\xbc\xf5\xc5\x6c\xe0\x69\x09\x65\x6d\xf8\xb8\x2f\x6b\x90\x3f\xb3\xf0\xed\x35\x13\x2f\xd4\x7d\x22\x73\xdb\xb3\x8f\xe8\x20\x01\x11\x1b\x50\xfe\x7b\xf1\xd6\x4e\xd1\xb7\x41\x94\xc3\xb6\x11\x32\xc4\xbc\xaf\x4e\x7f\x9a\x6a\x69\x9e\xc9\x9b\xc6\xed\xd7\x81\x4c\x08\xc6\xfc\xab\x53\x96\x5e\x59\xdd\x03\xc5\x7d\xb4\xd3\x31\x43\xbc\x85\xab\x85\x78\xf3\x3b\x48\xa0\xb8\x30\xa6\x7a\x93\xcb\xc3\x66\xec\x54\x38\xa3\x33\x80\x50\xa0\xdd\x70\x8f\x30\x14\xf7\x74\x3a\x11\x22\xee\x23\x2c\x03\xe2\xbb\x21\x28\xc3\x35\xe6\x06\xe2\x84\xe5\x5b\x3c\x43\x2e\xe5\xfd\xa9\x13\xb4\xd1\xc4\x4b\x02\x9c\x7e\x6b\x5e\x9d\xbf\x16\xc7\xce\xfe\x26\x9e\x34\x15\x20\x86\x65\x49\x64\xdd\x48\x23\x61\xd8\x29\x80\xdd\x14\x45\xf6\x7b\x55\x69\xfd\xee\x45\x22\x1d\x39\x8a\xdb\xf6\xcd\xc6\x7c\xa8\xb6\x4d\x0c\x71\x32\xc4\xfb\xa3\x07\x76\xe4\x6f\x53\x93\x9f\xc4\x5a\x19\x41\x1e\xf8\x09\xd9\xa0\xc0\xe6\x32\xd3\xab\x49\xe2\x07\x18\xa3\x85\xfa\xf0\xc2\x6b\xe8\xc2\xcd\x9a\x24\x32\xe2\xa2\xb3\x55\x91\xbb\xa0\x6a\xff\x3b\xb9\x19\xf7\x86\x61\x89\xe5\xd3\xcb\xfc\xc4\x21\xdc\x0b\x31\x9b\x01\x3f\xeb\x92\x5b\x8e\xbc\xd2\x32\x21\x4f\xae\xe8\x53\x3f\x70\xa0\xa9\x12\x41\xf6\xb3\x03\x86\x70\xe2\x23\x2e\x64\x7b\x3e\x8a\x22\xb3\xe5\xfd\xa3\xb7\xe3\x89\x8e\x7a\x3c\x42\x5a\x4c\x0c\x0d\xc2\x81\xfa\x96\xc2\x02\x43\x8d\x08\x0d\x35\xa4\x39\xf9\x15\xc6\x1f\x4d\xb8\x06\x8c\xa0\xb7\x43\x2b\xeb\x14\x1b\x34\x11\xc4\x0b\xa1\xa7\x93\x69\x2d\x64\xfe\x0a\x9b\xe9\x3d\x85\x22\x48\xf6\x54\x03\x3f\xfe\xab\xe9\x4f\x97\x49\x80\x96\x60\x47\x18\x7d\x7b\xbf\x5c\x16\xe5\xb5\xa7\x90\x82\xb9\xd0\xf3\x92\x97\xca\x0a\x3f\xa1\x09\x71\x15\x1e\x6a\x4f\x55\xb1\xc4\xfc\x83\x4d\x41\x0d\x8b\xab\x48\xf0\xbf\xe4\xff\xae\x33\xa2\x6a\xa2\x18\xf3\x1c\x13\x7c\x9a\x77\x55\xc2\xee\x28\x50\xe3\x29\xc3\x87\x0b\x0d\x0c\x1f\xc1\xcd\x62\x02\xb1\x87\xe6\xac\xcc\x80\x77\x9a\x7f\x88\xaf\x12\xe7\xc9\x68\x80\x84\x62\xd4\x55\x97\x45\x5e\xbf\x34\x3d\x7d\x9e\x26\x20\x62\x66\x59\xc7\xa6\x05\x62\xf3\x2f\xae\x3d\x40\x58\x03\x26\x55\x11\xd3\xf5\x90\xe6\xf5\x90\xca\x5f\x13\x1d\x12\xa3\x73\xca\x4f\xa7\xca\xa4\x13\x79\x26\xaf\x7c\x04\x2d\x42\x34\x97\xee\x8b\xd7\x2d\x46\xc7\x27\x04\xf6\xec\x8f\xb9\x94\xa8\x26\x5a\x06\x0e\x28\xb0\x34\xd5\x7b\x08\x7b\xb3\xc8\x94\xd1\xd3\xfb\x03\x62\x77\xe7\x16\xd0\xe1\x9f\x21\xa9\xaa\xa6\x5e\x98\xe0\xb7\xfd\x9e\xc2\xc7\xc3\xf9\xc6\x65\xe4\x35\xf5\x12\xc6\xba\xc2\xbb\xd6\x47\x2a\xca\x0a\x5d\x89\xae\x81\x8a\xa8\x89\xb2\x1c\xf9\x90\xa7\xda\x1e\xf6\x63\x93\xce\x6b\x5d\xad\xcd\xf2\xe9\x57\x49\xdc\xf9\x2f\x40\x7d\xc1\xa9\xe3\x36\xf8\xd4\x9f\xa0\x81\x67\xf2\xec\xfb\x6e\x3e\x5c\x40\x6e\x34\x0d\xb4\xd2\x66\x8d\x92\xc5\x3b\x94\xe7\xd6\x61\xd8\x95\xe9\xeb\x2b\x94\x03\x1b\x95\x92\xc4\xd7\x6e\x19\x68\xfd\x8d\x07\x2c\xfc\x1d\x0f\x34\x4a\x78\x84\x69\x8e\x77\x07\x91\x1e\x00\x45\x34\x25\xd2\x4f\x22\x57\x76\xd2\x94\x39\x3f\x42\xfe\x29\x5b\xa7\xa6\x21\x31\x80\x26\x03\x9e\xb4\x83\x7c\x94\x4c\x9b\x3a\x9a\x57\x0b\x39\x7a\x0b\x9d\x86\x92\x20\x81\xed\xd0\xee\x5f\xf4\x6c\x8c\xf3\x4e\x2b\x0d\xb5\x11\x4f\x7c\x85\x7a\xf7\x96\x3f\x69\x0d\xe5\xd4\x94\xa2\x51\x14\x3a\x6d\x79\xb4\x5c\x3e\x7d\xd4\x6b\xff\xfe\xc5\x2b\xd9\x5b\xc5\x7e\x14\x5a\x1d\x48\xfe\x0a\xe3\xb2\x3b\xd7\x84\x18\xaa\x9b\xfe\xfb\x77\xa5\x86\xcd\x05\x7d\x89\xa6\x31\x25\xe8\x47\x9c\xde\xeb\x7d\x9a\xbf\xef\x11\xd8\x60\x8f\x31\x5f\xa0\x65\x84\x62\xe0\x53\xf3\xee\xf3\x07\x65\xad\x51\x83\x88\x26\x4c\xfc\x6d\x4f\x46\x75\x78\xf2\xac\x2c\x00\xac\x1a\xb9\x4f\xdf\x60\x24\x3b\x33\x3f\x30\xb8\xd4\x86\x23\xf7\xc0\xcb\x5d\x71\x73\xae\x6d\x36\xc8\xb7\xc7\x85\x2f\xb5\x83\x79\xb7\xc3\x3a\x3f\xc2\x74\x93\xa4\x42\x28\x3d\xe4\xc5\x42\x9b\xff\x53\xb1\xfe\x71\xe8\xd8\x5e\x46\xea\x08\x81\x3c\x79\x73\xb4\x38\x7e\x67\xec\x50\xe5\x53\x48\xfa\xa8\xe5\xb4\x06\x45\x53\xa5\x63\x74\x9d\xb0\xda\x1b\x39\xa5\xfa\x73\xb5\x44\x91\x84\xcd\xf2\x09\x4d\x0f\x5b\x0c\x32\x2f\x60\xad\x29\x68\x66\x5d\xa9\x0f\x5e\xaa\x51\xb5\xa7\xa6\x9a\xf9\x98\x2e\x12\x3c\x97\x45\xe9\x04\x4e\xbb\xa3\x2a\x41\x9f\x23\x2b\x5e\xf7\x80\x3c\xd0\xa3\xf7\xd3\xed\xc8\x68\x47\x51\x71\x82\x1c\x09\xe0\x0c\xa5\xe4\xb5\xd5\x6a\x78\x72\xe8\xf9\x06\x8b\x5b\xf1\x77\xd8\xe4\xba\x58\x88\xa2\xa9\x1d\x16\xe7\x97\xd8\xc4\x81\x79\x17\x7a\x21\xf7\x0c\xc8\x8b\x67\x2b\x5e\xf3\x6d\x5d\xce\xf9\xb2\x53\x91\xd9\xd1\xa6\x11\xfa\x24\xd6\x89\xad\x69\xc5\x09\xda\x69\xa0\x8c\xdb\x05\x41\x84\x74\xff\xdb\x43\xa3\x75\xe6\x98\xfd\x75\x18\xc4\x01\x46\x48\xb6\xe9\xf1\x94\x0d\x40\xc7\x3a\x0c\x12\x81\xa5\x72\xab\xee\x07\x0b\xf4\xab\x80\x97\xf2\x70\x5b\x02\xe0\x9d\x2e\xb9\xd4\x7a\xf7\x7b\xf2\x7f\xec\x97\x2d\x2e\x99\xa9\x74\x48\x98\xaf\x9d\xc8\xe8\xb7\x0a\xca\x25\xcf\xb1\x9c\x87\x57\x60\x59\x60\x46\x0e\x5e\x48\x38\x8d\xbd\x0e\x39\xae\xd3\x6c\x62\x9d\x86\x44\xc4\x00\x36\x80\xd0\xe4\xa9\xe5\xab\x18\x8b\xf6\xb7\xad\x78\xe8\x1b\x3e\x81\x1f\xbc\x7a\xe0\x6a\x6c\x46\x86\x04\x02\x04\x7a\x3c\x5a\xec\xf0\xe4\x26\x61\x28\xd0\x0d\x7f\x48\x65\x59\x0c\xd8\xae\x75\x18\x79\xd2\x80\x38\x7b\x33\x31\x8c\x80\x22\x00\x68\x7b\x30\xf1\x6c\xf7\x7b\x4c\x05\xf2\xef\x56\x46\x96\x53\x8c\x41\x65\x3a\x8c\x63\x23\x45\xd1\xe7\xac\xfc\xa8\x3b\x57\x98\x44\xa8\xb1\xd5\xdb\x2d\xe1\xb9\x4c\xdf\xd3\x0c\x5e\x27\x4c\xb1\x3a\x8c\x41\xc4\x96\x3e\x47\x38\xb8\xbb\x0e\x99\xcf\xb1\xd6\x10\x2b\x11\x9b\xa3\x0d\xb5\xf7\x0c\x70\x9f\x15\xf0\xea\x90\x29\x23\x06\xf1\x81\x09\xcb\x27\x3d\xee\xbd\xc4\x93\xc6\xc5\x70\x54\x8d\xb7\xe9\xcf\xc9\x54\x9c\xb0\x7b\xea\x30\xe1\x91\xc9\xb5\xb7\x46\xda\x0f\x48\x4d\xa0\xb9\x4b\x36\xea\x30\x01\x81\xbe\x26\x52\x6b\x98\xa7\x7b\x32\x4b\xd0\x70\xfa\x7d\x36\x27\x13\xcd\x10\xef\xfd\x5a\xb8\x6b\xf2\x90\x46\x5d\xbd\xec\x8f\xb4\x3e\xbc\x40\x55\x64\xef\x57\xf4\x45\x74\xc8\x99\xc2\x2c\x62\xc9\xd3\x0a\x0c\xd1\x63\x85\x12\x35\x63\xdb\xc6\x8f\xbc\x3f\xcc\x1f\x77\x1e\x4f\x34\x71\x2a\x73\x46\xbb\x63\x5c\x8f\x3c\xb9\x8d\x4a\x90\x16\x3d\x2f\x14\xec\xd3\xcb\xc0\x6f\x28\x98\x87\x04\xc7\xb2\x51\x0a\x49\x14\xb9\x7b\x23\xc1\x45\x2c\x1d\xed\xb2\x5d\x57\xbb\xc1\x29\x99\xc4\x49\x6e\xe1\x83\xd5\xea\xc6\x1d\x81\x98\xd0\x0e\xd5\x6e\x27\xce\x4d\x6b\x34\xd7\x4b\xc8\xeb\x6a\xc0\x35\xa1\x43\xe0\x46\xfc\x16\xab\xd4\x67\x97\x07\xd6\xb5\x94\x1a\x2b\x57\x72\x35\x8c\x4e\x84\xa0\x12\xdc\x68\xa0\x92\x65\xf1\xe1\x4a\xcc\xc7\xaf\x08\xe0\xe3\x78\x68\x2a\x28\xb7\xe9\x6b\xde\x9c\x86\xd6\x59\xa8\x3d\x1f\x27\xf0\xdd\xcf\x5d\xeb\x05\x95\x95\xc9\xec\x8f\xaf\xa1\x7d\x03\xd6\x29\x5c\xea\xac\x1a\x65\xd0\x75\xa8\xa9\xc4\xaa\x8c\x26\x47\xf2\xcb\xa0\xfb\x9d\x85\x58\xc5\xf3\x00\x35\x6f\xbb\xe1\x13\xe8\xb4\x8e\x3c\xdf\xc8\x53\xb8\x02\xaa\x0b\xf8\xb7\x8e\x3c\x20\x76\xb6\x56\x58\x49\x6d\xb6\xc8\xfe\xb3\x45\xbe\x27\x5d\x99\x86\x63\x65\x52\xf7\x29\x17\xc3\x88\x5e\xe4\x07\x0c\xab\xe5\xf2\xa6\xfe\x2f\x96\x37\xd9\xdf\x83\x30\x0a\x4c\xca\x18\x5e\x73\x9e\xd7\x8f\x69\xfe\x6f\xee\x3e\x7a\x44\x02\x8d\xc0\xdc\x22\xc7\xe4\xfc\xec\x7e\x1c\x11\xc5\xa2\x61\x42\x68\x56\x99\x65\x1a\x79\x8d\xa8\x4f\x30\x08\x23\x78\x2d\x0f\x06\x13\xba\xad\x8b\xd3\xa9\x9b\xb4\x11\x65\x11\x66\x6e\xc6\xf1\xc4\x45\xae\x1c\x35\xc5\x15\x53\x3a\x0a\x03\x1f\xe5\x5f\x6e\x5f\x9e\xfe\x59\x3f\x8e\x84\xc1\x75\x14\xc5\x89\x6f\xcd\xa5\xaf\xbb\x87\xfb\xd1\xe2\x13\x45\x5c\x22\xa2\x61\x2d\x0b\xc3\x68\x81\xb8\x2b\x68\x8e\xee\xec\xd8\x53\xdc\x48\x13\x55\x75\x59\x9c\xef\x8b\xd7\x54\x8e\xa1\x85\x3a\x8a\x13\x23\x24\xf4\x49\x97\xc5\x9a\xe8\x78\xc4\x23\xb8\x2b\x56\xf0\x7e\xa5\x35\x23\x1a\x9f\x6a\x26\x2e\x33\x79\xf3\x44\x2a\x14\x29\xb4\x54\x37\xd5\x09\x46\x12\x58\xe3\xcb\x72\x3f\x46\x84\xe0\x25\x1d\xe7\xb8\x9d\x88\xe2\x30\x1a\x2a\x97\x6f\x2a\x9b\x87\x71\x0d\x04\xc1\xd4\x9d\x2a\x90\xf9\xc1\xd5\xaa\x4d\xac\xda\x61\x70\xcb\x9e\x28\xad\x70\x2b\x6a\x7a\xfc\xc4\x69\x1e\x2c\x3a\x79\xba\x67\xac\xa1\x37\x50\xe6\xf1\x13\x29\x62\x0a\xcd\xaa\xe6\x74\x2a\xca\xb1\x6a\x8a\x8e\x54\x64\x82\x54\x95\x05\x1c\xbb\xe1\x62\xab\x9e\x27\x97\x4a\x8c\xc6\xc0\xfa\x65\x31\x2a\x4f\xd0\x11\x50\xcf\xd4\x44\xd6\xbc\xac\xc7\xb4\x5f\x23\x0b\x2a\x02\x4e\xd1\x00\x7f\xd8\x6c\x97\xeb\xfb\xfb\xc5\xe3\xfa\xe9\x5b\xa7\xdb\xb3\xfd\xf6\xfc\x7c\xff\xb7\xbb\xa6\x0e\x75\x62\x41\x29\x8b\x5c\xdd\xda\xe0\xa9\x2d\x44\xfe\x01\xe9\xe4\xe1\x74\x6c\x2c\x09\xac\x84\x45\xe9\x91\xd6\x4f\x1d\xd0\x96\xeb\xd8\xf7\x22\xac\x32\xd9\xbd\x6c\x87\x11\xe6\xd8\xf7\x80\xf4\x98\xfb\xdb\x34\x87\x9f\xe3\xe3\xed\x46\x6b\x9d\xdc\xa7\xfb\xbf\xbf\x6d\xc7\x64\x98\x3a\x26\x81\x70\x60\xc1\x75\x8e\xc0\xe6\xb4\xc8\x17\xd9\x6b\x51\xa6\xf5\xe1\x38\x5c\x4f\x63\x22\xa8\xb6\x5c\x44\x88\xf7\x4d\xf3\xd7\xcb\x82\x77\x1d\x13\x15\xf8\x86\xbb\x52\xdd\x17\xaf\x93\x71\x3c\xea\xd2\x98\x72\x23\x4b\x22\x11\xca\xbc\x44\xaa\xcb\xb4\xc8\x2f\x78\xfe\x75\x4c\x21\xb4\x35\x4c\xf9\x31\x1d\x58\xa9\x31\x85\x88\x0d\x99\x03\x1e\xe1\xe3\xb9\x11\x7f\xc2\xf9\xb6\x28\x7b\x65\xd6\x60\x54\x31\xa5\xe3\xd0\x23\xd2\xac\xc7\x95\xa1\x67\x1b\x04\x06\xe2\x90\x79\xc8\x54\x7c\x57\xf2\xd3\x01\x72\x78\x2e\x3e\xa0\x9c\xc8\x7b\xeb\x38\x94\x2c\xb0\x81\xbd\x27\xf1\xef\x65\xc6\xab\x6a\xfd\xf3\x34\xe4\xa1\xd5\x71\x08\x46\x97\x2d\x45\xe2\xff\xf1\xbb\x47\x81\xc4\x6a\x69\x70\x45\xa2\xbf\x19\x3b\x71\xa7\xd3\x24\xe2\x1d\xd7\x9e\x59\x33\xc9\xe7\xd1\x93\x38\x12\x51\x68\xfc\x56\x5b\x2b\x0b\xa1\x7b\x9b\x48\xfa\x3e\x9d\x16\x85\xf7\xc3\x2f\x52\x80\xa4\x64\x19\xe8\x9a\x86\x93\x6f\x13\x69\xea\xa8\xc8\x5b\x07\xbb\xab\xa1\xeb\x5b\xc4\x34\x30\x80\xab\xa6\xbc\x5c\x2b\xff\x98\xb6\x4d\x88\xef\x08\x2c\x2d\x50\xfb\xdd\x66\x00\xe7\x59\x35\x75\x1c\x47\x5a\x20\xaa\xbc\xa9\x57\xe9\xfb\x78\x63\x8d\x63\xe9\xe3\xe6\x66\x89\x6d\x7b\x96\x96\x9b\x09\xda\x5f\xc7\x8c\x26\xd4\x02\x8e\x8c\x5c\xdb\xf8\x36\x2c\x0a\x30\x5a\xc6\x8d\x35\xb2\x2b\xda\xf7\x71\x5d\xc4\xe2\x50\x46\x6e\x1d\x11\x7d\xd5\x86\x8e\x99\xa2\x08\x86\xff\x57\xf3\x3e\x9a\x9b\x0c\x00\xed\xb0\x13\xbe\xdb\x7d\x5f\x42\xeb\x1a\x24\x52\xf3\xc0\x29\x81\x18\xee\xd4\xc9\x20\x4a\xc0\x47\xa9\x95\xbc\xbc\xe5\x69\xd6\x94\x9d\xa3\xde\x1e\x91\x3d\x91\x91\x21\xe6\x58\xc1\x3b\x64\xad\xa1\x33\xc7\x9b\xa8\x63\x4e\xc3\x04\xfd\xa6\x82\x67\x0b\x79\x48\xe1\xbd\x5b\xfb\x63\xce\x4c\x92\x43\x34\x69\x86\xc9\x8c\x07\x7e\x3a\xf5\xc8\x8d\x58\x28\x1f\xcb\xd4\x21\xaf\xa1\x34\x0a\xd5\x5f\xae\xf8\x73\xb1\xd0\x3a\xb6\x86\xcc\x57\x28\x8b\xd5\xcd\x3f\xed\x1f\xb7\xba\x8f\xdb\xca\xc4\x73\xd1\xdc\x5d\x81\x38\xab\x2f\x97\x69\xfe\x58\x26\x06\xcd\x81\x6a\xac\x03\x80\x34\x12\x01\x7e\xe7\xd9\x26\xef\x0b\x0f\x57\x20\xd3\x23\xcf\x26\x79\x94\x58\x45\x51\x6c\xa1\x39\x28\xfa\x64\x7f\x06\x3f\x42\xeb\xef\xc9\x46\x0a\xdc\xef\x3a\x89\x31\x35\x28\x79\x26\x1f\xe1\x63\xfb\x96\xe6\x8b\xd3\x09\x78\xd9\x91\x26\x0f\x24\xd9\xdd\x5f\x77\x2e\x8f\xd1\x16\x6b\x0d\x29\x97\xbf\x9c\x1d\xd7\xcc\x4b\x38\x42\xbb\x1c\xcb\xed\x1b\xe4\x33\xa6\x23\xf3\xb4\x44\xfc\x33\xfc\x9c\x91\x2b\xd4\xcc\xa7\x04\x4d\x6c\x95\x56\x92\x97\xea\x05\xfe\x8d\x35\x00\x1d\x5e\xce\x35\x4b\x34\xca\x1e\xa9\xb4\x42\xee\x9b\x26\x87\xa7\x4b\x7c\xad\x66\xbe\x0a\xd0\x0f\x80\x5c\x99\xf4\x89\x4b\x8b\xb3\x20\x10\x31\x73\x53\xf7\x73\x55\x5f\xcd\x82\xd0\x74\x78\x97\xef\x3d\x15\x23\xc5\x08\xcd\x02\x41\xb1\x9f\x9a\x79\x94\xf3\xe4\x0b\x32\x12\x08\x9c\x80\x35\x54\xf5\xa6\xba\xe7\x1f\xe7\x2e\x24\xc0\x88\xf6\x71\x4f\x5a\xf2\x0e\xe6\xbb\x3c\x00\x26\x0b\x47\xc9\x38\xc3\x77\xd5\x0d\x2c\x46\xdb\xfd\xd5\x85\x12\xa0\x82\x2c\xdb\x15\x7f\x42\x3e\x4a\x0e\xb0\x30\x0e\x07\x72\xa4\xfb\xd3\x64\x7d\x64\x91\x6f\x68\xbb\x78\xf9\x3a\x4f\x57\xd3\x36\x91\x08\x99\x36\x8e\xab\xf1\x34\xdc\xe5\x23\x6e\x08\x64\x8e\x85\x32\x29\xdc\x37\x28\x47\xe5\xb6\xae\x1d\x18\x69\x35\x05\x39\x1f\x2e\x23\x2c\xd2\x31\x52\x12\xc9\xe2\x78\xe2\x75\x2a\x32\x08\x02\x07\x49\x63\x31\xf7\xe8\xb0\xba\xc6\x9f\x5c\x95\x71\x8e\xdc\x4d\x70\x4c\xeb\x17\x90\x45\xa9\xa6\x60\xa4\xf9\x75\x9c\x31\xed\xf3\xb0\xa7\x53\x32\x9c\x6d\x9f\xaf\xfd\x2c\xd1\x1c\x03\xd2\x4f\xe5\x2b\xcf\xad\xff\xeb\xf0\x6d\xee\x81\x79\x1c\x63\x6f\x57\x6f\xfd\x4f\xcc\xe0\x79\xcb\x76\x09\xad\xb7\xb8\x08\x14\x4d\x29\x61\x96\xbf\x66\x72\x4f\x11\x7b\x32\x71\x2c\xa8\x13\x72\x31\xcd\x84\xe4\x4c\x0e\xca\x1c\x3c\x43\xe6\x6a\x8f\x4a\x8f\x42\x70\x51\x91\x78\x25\xa8\x75\x01\x53\xea\xe3\xf7\xed\x0e\x81\x80\x1e\x8c\x6c\x8c\x64\x0a\x5c\x83\x30\x61\xdc\x14\x23\xf2\x73\x3b\x77\x53\x09\x4f\x7a\x5b\xc8\x94\x67\xa6\xf2\x74\x80\x90\x1b\xbf\xa0\x92\x01\xc6\xcc\x97\x46\x8f\x7b\x21\x8b\x32\x1f\x3a\xeb\xac\x35\x6c\xed\x06\xb9\x2d\x8e\xf0\xa4\x1f\x78\x7e\xbe\x4f\x73\x98\x2b\x3d\x9f\xc6\x43\x19\x70\x1e\x53\xb7\x42\x5b\xf9\x47\x53\x2d\x73\x65\xb7\x66\xa0\x13\xdd\x89\x2e\x17\x15\x6e\x18\x69\x05\xbd\x74\x72\xdf\x54\x33\x61\xd0\x6b\xad\x87\xd3\xae\x4a\xf3\x0a\x73\x9a\x69\x29\x4c\x48\x17\x25\x0a\xea\x2f\x73\xc0\x4f\xa6\x15\x89\x88\xdb\x26\x4e\xd6\x1c\x5f\xd4\x75\x5f\xf7\xa3\x13\xcf\x0b\x59\xec\x72\xf6\x79\x53\x3d\x43\x39\x4c\x88\x25\x5e\x20\x64\xe0\xa4\xfa\x40\xed\x06\x09\x97\xcf\xb3\x2d\x89\x17\x0b\x9c\xe3\x9a\xa7\xd9\x92\x8f\x48\x5c\x74\xe2\x09\x13\x77\x52\x70\xca\x0a\x13\x8f\xec\x86\xe2\xf8\x32\x7e\x0c\x64\x98\xea\x69\x1d\xe5\x22\x47\xd0\xfc\xb5\xbc\x4c\x77\xa6\xc6\xfc\x62\xdd\x33\xcc\x75\xd4\xfd\x6e\xa0\x25\xbe\x34\x5e\x2d\x66\x90\x4f\xb3\x86\x42\xe2\x4b\x69\xe5\x12\x31\x55\xfc\x9d\xe7\x02\x7e\x5e\x5e\x2a\xd0\x84\xe9\x41\x35\x1d\x16\xe6\x4c\xde\x86\x78\x01\xee\xa3\xf7\xc5\xeb\xfa\x22\x50\x9f\x84\x24\x66\x46\xbe\xae\x6c\x2f\x52\x8f\x8b\xd2\xfe\x98\xb4\x15\x5d\x24\xf4\x28\xc7\xbe\x62\x12\x79\x11\xb5\x83\x14\x15\xab\x2e\xf0\x5f\x9f\x60\x68\x92\x48\x29\xe4\x76\x3d\x72\x07\x82\x39\xb9\xeb\xc6\x84\xe1\xb0\x7b\x48\xf3\xf4\xc1\x6c\xd0\x26\x90\x7e\xd5\x9a\x9f\x61\x71\x18\x6c\x38\x49\x4c\xc1\xd4\x47\xf2\xaa\x82\xf2\x66\x12\xad\x4a\xe2\x38\x8c\xfc\xbe\x1c\x65\xa8\x16\xa3\x93\x58\x07\x18\x27\x1f\xe5\xcf\x66\xd7\x84\x84\x71\x97\x20\x91\x6f\xf3\x7c\xf5\x57\x06\x31\x93\x09\x62\x94\xac\xdb\xfb\xbc\x7e\xd9\xaf\x77\x5f\xdb\xff\x2e\x5e\xee\xff\xee\x09\x80\x75\x92\x28\x4e\xf9\x68\x96\xcf\x28\x5c\xeb\x24\xd1\x5c\x74\xd9\xf7\x1f\x65\x7a\x45\xec\x5d\x27\x1c\x38\x86\x27\x32\x5e\xd5\x7b\x3b\xf2\xf6\xaa\x4f\xfb\x26\x82\x32\xf3\x68\xed\xfb\xdc\x5a\x1e\x6f\xd5\x1d\x0d\x8d\x1a\xf0\x91\xff\xdc\x42\x86\x78\x8e\x4d\xfe\x5c\x82\x4c\x7b\x1a\x79\x9d\x08\x16\x8b\x31\xd9\xd4\x0a\xaa\x3a\xcd\x4d\x24\x76\x64\x7b\x27\x82\x4b\xa4\x40\x59\xac\xbe\x6f\xb6\x4f\x2f\xdb\xfd\x62\xb5\x7a\x59\x6f\xb7\xdd\xb5\x04\x73\x1a\x8f\xd6\xa5\x6a\x3f\xd9\xff\x34\xa9\x7c\x43\xd0\xb5\xa9\xc5\xb6\x8d\x65\x12\x22\xf9\xd2\xdd\x6a\xb9\x90\xd2\xa3\xdd\xef\x40\xd1\xee\xc6\x00\x55\x70\xd7\x6d\xea\x09\xf8\x94\xaa\x61\xa9\xea\x43\x9a\x5f\xe9\x39\x20\x09\x52\xba\x1d\xd3\xfc\x26\x55\xa8\x9b\x71\xca\xd2\x6e\x47\x4d\x80\x06\x78\x6f\x23\x85\xf2\x36\xb8\x47\x28\x44\x4f\xca\x8f\xcb\xe0\x95\x35\x3d\xd1\x22\xc1\x85\xba\xfd\x3a\x37\x16\x6c\xbb\x76\x86\x21\xf7\x7c\xa3\xef\x79\x06\x5e\x3e\x69\x8b\x6b\xe8\xbb\x9d\x07\xc2\x88\xb2\xb9\xb2\xd4\x77\x32\x1f\xf2\xe3\x81\x8d\x41\xa2\x7f\xe5\x3a\x89\x53\x16\x31\x36\x04\xc9\x6c\x6a\x38\x6e\xd4\xf8\x7b\xf1\x90\x28\x61\xec\xdb\xf7\x54\x39\x37\x60\xc4\xa9\x30\x7e\x27\x1e\x79\x5e\x00\x36\xb5\xb6\x3c\xf0\x76\x2d\xb6\x13\xaa\xbb\x66\x04\x8c\x1a\x1a\x9c\xe6\x6f\xa4\xe7\xea\x7b\x8f\xc7\x3c\x4e\x98\x63\x6a\x84\xdc\xe2\xf9\x4c\x15\xe5\x9f\x70\x65\xb7\xe6\xb1\x88\x05\xe9\xd5\xf5\xb5\xc9\x1c\x8c\xdb\x30\x8f\xa0\xa5\xbe\x6d\xd7\xe8\x1a\x5e\x8b\xf2\xfc\x38\x21\x82\xd5\x9c\x85\x5c\x74\x35\xaa\x66\x8e\xdf\x16\x23\x62\x45\xd7\x30\x16\x46\x7d\x3b\x2b\x2a\x78\x38\xdf\x5d\xb8\xef\x9c\x09\x10\x64\x96\x32\x74\xf2\xf0\x4c\x87\x8e\xe2\xd2\xf1\x26\x4f\x57\x5a\xdb\x32\x09\x8d\x18\x11\x66\x88\x2d\x55\xc7\x7c\x9d\xb9\xe6\x89\x04\x35\x52\xf5\xba\x6d\x72\x28\x3b\xc7\x85\x27\x40\x59\x34\x08\x01\xcd\xf0\x11\x8d\xdf\x98\x07\x1c\x0b\xd6\x38\x2e\x48\x4f\xfa\x66\xbb\x73\x55\x8a\x93\xbe\xe1\x9c\x20\x0f\x4c\xbe\xe4\xb9\xf9\x88\x98\x8b\xc6\x7a\x24\x77\x7b\xe1\x69\x8c\xc4\x1c\x4d\x96\xec\x87\xc9\x92\x55\xdd\x61\x9f\xe2\xc7\xe2\xf8\xe8\x83\xba\x54\xcd\x05\x0d\x31\x55\xe4\x56\x9b\xed\x45\xc9\xf8\xa4\x27\x44\x1c\x92\x01\xc7\x42\x6b\x09\x99\x08\x5d\xe7\xb7\x4c\x3d\x18\x2e\x03\x0f\xf7\x6a\x05\xef\xbe\xd9\x3e\x83\xe7\xce\xbc\xe5\x92\x29\x19\x76\x55\x13\xd3\x58\x5d\x7b\xa9\xdf\xa0\xda\xd2\x5c\x26\x91\xe7\x66\x4a\x37\xd4\x7e\xf0\x77\xa8\x7e\x87\xaa\x4b\x73\x25\x42\xc7\xb7\xfd\xe3\x2b\x1f\x6d\xdd\x1c\x68\x80\xb8\x08\x4c\x25\x39\x79\x71\x7b\x4c\x07\x71\x1c\x1a\x64\xd9\x5d\x3f\x01\x7e\xb3\xd6\x6d\xfe\x59\x84\xc7\x19\x86\x8b\xcc\x2e\x8a\x0e\xba\x18\xec\xe7\x7d\xd7\x0a\x4f\x1a\x0e\x2c\xb3\x04\x1b\x72\xb3\x11\x51\x80\x8b\x03\x0a\x3f\xb0\x7c\x94\x63\xc8\xf4\x64\xab\x75\x61\x28\x11\x44\x1a\x4b\xfd\xab\x8f\xb4\x96\x07\x67\x62\xba\x1e\x11\x01\x18\x78\x86\x68\xce\x0f\xcb\x9d\x0d\x2d\x0f\x32\x5b\x57\x5e\x8c\x84\x06\x6f\xbf\x5d\xba\x75\x59\x10\x46\xa9\xa9\xb7\x31\xd0\x52\xfb\x33\xf5\x7d\x1c\xb2\xf0\x2e\xbb\x9f\x84\x17\x7b\x2e\x39\x50\x3d\xa4\x79\x0d\xea\xb6\x28\x07\x1f\x43\x50\x90\x06\xc8\x5e\x1c\x4f\x19\x4f\xf3\x2b\xf2\x3e\x5a\x84\x01\x35\x6c\xef\xbc\xaa\x11\x3b\xea\x7e\xa7\x1a\x6d\xe0\x31\x1f\xf3\x18\xf8\x21\xc2\x90\xa0\x12\xfc\xed\x7d\xf7\x16\x61\xa2\x31\xeb\x2b\x9a\xf3\x35\x8f\xa5\xe9\xc9\x9d\xb4\x08\x79\x84\x1c\x18\xca\x7d\x2b\xfb\x7b\x14\x1a\xd5\x09\x6e\xd3\xaf\x58\x15\x6f\x97\xed\xe9\xaa\x29\xa2\x28\x0c\x0d\x0a\xbe\xa9\xea\xde\x0f\xf8\xdc\x07\x10\x51\xa4\xb8\x03\x4a\x1a\x64\xcd\x93\xfe\x9e\x56\x13\x32\x15\x2d\xe2\x28\x8c\x4d\xe0\xb8\xcf\x93\x58\x70\xf3\xa4\x61\x12\x20\x99\xd5\xd3\xe3\x7a\xff\xf5\xdb\xe3\xea\x65\xbd\x6a\x8d\xb2\xe5\xcb\xfa\x71\xe7\x2c\x11\x11\xf3\xd0\x29\x63\x2d\x21\xaf\x9a\x12\xd4\xcd\xf9\xcb\xa8\x4f\x62\x29\x7c\xe5\xbc\xb8\x3f\xcf\x72\x58\x55\xe1\x9a\x40\xe4\x75\x4a\xb4\x6b\xb7\x16\xbb\x7b\x24\x24\x61\x7a\x44\xd7\x87\xe0\xa3\x49\x3c\x4f\x24\x8a\x21\xc6\x4b\x34\xe7\x11\xd9\xe7\x4c\xf1\x8e\x48\x94\xd1\xed\x79\x75\xa4\xce\x8b\x11\xc1\xd6\xf8\xc2\x9c\x18\x81\x80\x03\xb7\xc8\x17\x3f\x70\x47\xa8\x44\xb4\x16\x97\x12\x4e\x63\x07\x43\x70\xe6\x61\xe1\xd3\x29\x95\x6f\xe8\x7f\x4e\x60\x33\x82\x2b\xc3\x2a\x6f\x0b\x88\x6e\xcb\x8b\xdd\x51\x08\x22\x90\xdd\xa0\x3a\xa4\x75\x7d\xb6\x14\xc8\xee\x18\x48\x8c\xc9\x3c\x17\x15\xe2\x33\x32\xa8\xaf\x4e\x0b\xe9\x99\xa4\xa4\xc0\x48\xc9\x1e\x41\x06\xf3\xbb\xa7\x90\x9e\xd1\x5b\xb4\xba\x28\x06\xea\xec\xee\x09\x84\x10\xee\xa4\x92\xaa\xfa\x26\x55\xaa\x9f\x3e\x40\x80\x7a\x5d\xda\xa0\x3d\xde\x1d\x51\x09\xe6\x23\xd6\xb7\x8b\xdb\x9e\xfc\x58\x0b\x1d\x9b\x2c\x3a\x7e\xf6\xea\x47\xda\x6d\x7c\xd2\x23\x91\x89\xea\x17\xc5\x5b\xd1\xfd\x08\x09\xe6\xb2\xf6\x5c\x29\x57\x81\xd2\x13\x1e\xcf\x4f\x0b\xe9\x7b\x1e\x32\x5c\x2e\x17\xf7\xf7\xad\x2f\xf1\xd7\xf2\xeb\xe2\xf1\x6e\x48\x0f\xa1\xa5\x1f\x08\xdf\x14\x21\xdd\x59\x11\xfb\xfb\x1e\x3f\x23\x7d\xe1\x31\x5b\xb0\x65\xe2\x08\xd7\xd1\xca\xd2\x97\x0c\xf5\xff\xec\x86\x6d\x9d\xed\x8e\xac\xd3\xb6\x0a\xa8\x29\x6b\xfe\x87\x1b\x81\xa7\xa1\x6d\x27\x09\x31\xa5\x05\x59\x29\x47\x45\xe4\x5a\x12\x16\x45\x66\xe6\x6e\x0b\xdd\xba\xd0\x77\xc5\x84\xc3\xbb\x6d\xa3\x10\x53\xb9\x1c\xe5\xf2\x24\xe5\x3a\xb4\x34\x17\x39\x7c\x66\x11\x49\xaa\x03\xac\x06\xb6\xc5\x8e\x8d\x50\xe9\x7b\x75\x3b\xe1\x4b\xd0\x32\x0c\x15\x86\xca\x06\x6b\x81\x0c\x43\x93\x64\x16\x3d\xe9\xf0\xb8\x77\x22\xa2\xfc\x6e\xa5\x5f\xb8\xd3\xa2\x48\x23\x0e\xf8\xf9\x29\xa0\xdd\x6f\x89\x21\x1c\xba\x49\xd5\x73\xc6\xe5\x35\x20\x90\x8c\xc0\x10\x3f\x6e\x79\xdd\x65\xd8\x65\xec\x25\x8e\x14\x70\xe5\xb2\xe3\x53\x64\xf8\xd5\x4d\x5a\xc6\x81\x46\x75\xa2\x93\x85\x9a\x2f\x79\x96\x09\x2e\xdf\x46\xb3\x5b\xc6\xcc\xb0\xa8\x6d\x1d\x3f\xe3\xb8\x7b\x62\xe9\x3b\x68\xfe\xb7\xdc\xa6\xd2\x4d\x8a\x68\x57\x9c\xfc\xd0\x73\x8f\xca\x7c\x93\x22\x05\x95\xfe\x96\x02\xb5\x96\x2c\x94\xb8\x7c\x6f\x1e\x17\x7f\x0f\xe6\x92\x64\x9c\x8c\x14\xe3\x0c\x44\x69\xfa\xd9\x18\xd7\xae\x6a\xe8\xb6\x04\xd8\xe6\xfc\xad\x1b\x5e\x49\xc8\x30\xcf\x52\x1b\x45\xff\x6d\x91\x6d\xe6\x85\x17\xb4\xe4\x92\x86\x81\x5b\xd2\x5f\xf8\x1b\x0c\xd0\xaf\x92\x83\x4a\x0c\xdd\x06\xce\x6b\xbb\x90\xb8\xa3\x22\x4c\x98\xcd\x06\x9e\x06\x91\x42\x29\x18\xc1\xe8\xc4\x96\xe7\xb2\xf8\xf7\x38\x4a\xe5\x9a\x88\xd0\xb1\x93\x6c\x1d\x66\xad\xdc\x9d\x4f\xfd\x35\x84\x61\x37\xd8\x67\x45\xf1\xd6\x9c\xd0\x20\x76\x11\xcc\x4b\x05\x1c\x2d\xa5\x27\x31\x26\xac\xe0\x54\x82\xec\xfd\x7d\x29\x75\x80\xee\x99\xe0\xf9\xfe\x82\xdb\x53\x4b\xe5\x4b\xac\x54\x79\x4b\xb3\x6c\x93\x57\xf5\x55\x62\x14\x2d\x15\xf7\x63\xfb\xba\xbf\xcb\xa6\xa2\xa5\x52\xca\x8b\xfa\x12\x97\x97\xe5\xbc\xcd\x2e\xc1\x33\x84\xfd\x9d\x73\xaa\x9e\xf9\xf9\x08\x79\xdd\x69\x79\xbb\x86\x84\x62\x78\xee\x54\x9c\x9a\x8c\x97\x69\x7d\xb6\xb2\x7d\x33\x54\x6c\x5a\x02\x63\xf1\xb0\x22\xd7\x58\x07\x9f\x85\x21\x2f\xc1\x39\xca\x0b\xb4\x34\x5a\x1e\x88\x28\xfa\x96\x8b\x02\x91\xcc\xed\xc5\xe6\x5f\x47\x79\xdc\xe8\xce\xa3\xee\x45\x97\x6e\x54\x1e\x07\x5c\x35\xd2\xbc\x82\xf2\x0a\x1c\x46\x79\x40\x71\xf3\x69\xf2\xf4\x3f\x06\xaf\xdd\x3d\x89\x0f\xca\xf2\x0d\xd5\x0f\xbc\x7c\x4d\xf3\xdb\xa2\xfc\x9e\xca\xba\x28\xcf\x36\x75\x37\xa0\x70\xc4\xe6\x98\x69\xba\x7f\xba\xdb\x77\xa6\x48\xbf\xdd\x8c\xf5\x23\xdc\x39\x3a\xc1\x35\x03\x09\x63\x31\x0a\x38\xe0\xd6\xd3\x2a\x90\x80\xe8\x64\xdd\xe4\x72\x51\x96\xfc\xbc\xc9\x17\xe5\x2b\x2a\x8e\x54\xd3\x44\xb1\x22\x2a\xc6\x8c\xdb\x8f\x1f\x8b\x87\xe7\x32\x95\x28\x39\x58\xb6\xbe\xf8\x85\x5f\x3f\xe9\x03\x02\x80\x81\x92\xfd\xde\xc8\x11\x7e\xe6\xef\x29\xaa\x02\xf4\x6c\x6f\xb2\x06\xb6\x6f\xe7\x55\xc9\x5f\xbb\x0d\x4a\x85\x1e\xc3\x00\x1b\x96\x26\x3c\xa1\x24\xd9\xc4\xda\x52\x21\x65\x48\xb6\x70\x3c\x63\xf0\x66\xb8\xdb\xa8\x30\x32\x62\x7d\xf6\xce\xbb\xe2\xb1\x39\x2e\xd3\x7a\x2a\x86\xaf\x55\x18\x1b\xc1\xc3\x0a\xf8\x50\x50\x4a\xab\x90\x19\x24\x34\xfc\x3c\x61\x42\xd1\x14\xcc\x57\x43\xcc\x88\x8a\x02\x1d\xc6\x9d\x1c\xe5\x81\x97\xaf\xb0\x3f\x05\xdd\x51\x06\x28\x93\x9e\xc3\x87\xcd\x19\xbb\x03\x5a\x62\xc0\xa8\x9d\x23\x59\x96\xe2\xd3\xaf\xa5\x33\x32\x54\x4c\x7d\x44\xb5\xa4\xf9\xde\x0a\xf6\xa1\x85\xbc\x3f\x0d\xca\x8e\x54\x2c\x3c\x62\x48\x12\xe4\xdb\x2a\x7d\xef\x86\x2a\xe3\x86\xde\x02\xc1\x39\x45\x7e\x3e\x16\x4d\xb5\xe4\xa7\x49\xd7\x25\x2a\xc4\xa0\xd9\x03\xaf\x4b\xf8\x29\x87\xf8\xfd\x6b\x44\xbc\x5a\x71\x96\x78\x7d\x26\xf0\x0e\xf2\x97\xc7\x3b\xa7\x69\x35\xcb\x9f\xa0\x84\x2f\x71\xde\x7c\xa4\xf5\x61\xd5\x71\x28\x69\x25\x68\x84\xe6\xb4\x06\x18\xb9\x92\x4a\x92\xc8\x4b\xba\x5b\xac\xc6\xe4\x21\xae\x4d\x9c\x60\xa8\xd4\xe0\x3c\x16\xce\x27\xef\xe9\xc7\xb4\x02\x4f\x1b\xb2\xad\xa7\xfb\xf5\xfe\xfb\xfa\x71\xf5\xf4\xe2\x6e\x0d\x61\xc4\x2c\xae\x6a\x86\x3e\x6c\x98\xb6\x52\x9a\x87\x56\xaa\x08\x6e\x1a\x27\xd1\xab\xc1\x57\x1a\x6d\xc0\x8c\x57\x06\x51\x65\xf8\x45\xcc\x6e\x37\x10\x5b\xd7\xe0\xeb\xd0\x61\x4a\x4d\xf0\x7c\xb9\x58\x2d\x6c\x2c\xa6\xfa\xca\x4b\xd5\xc7\xda\x21\x20\x14\x54\xaf\xb8\x68\xa9\x6e\xfb\x72\x4b\x08\xb8\x40\x46\xad\x8e\x52\x72\x76\x5f\x84\x40\x86\x68\x15\xdc\xec\xb6\x0f\xc3\x19\x01\xc4\x0f\x71\x43\xe1\x86\xf1\x6a\xdd\x3f\x26\x91\x3e\xc2\x5f\x1e\x16\x8f\x5f\x17\xbb\xdd\xe2\xf1\xf9\xe5\xe9\xaf\xbf\xe9\xee\xeb\x76\xe7\x9a\x50\x5f\xa3\xb3\xc2\xe5\x7f\x9a\xd4\x84\xbe\xaa\x51\x3a\x04\x28\x21\xca\x94\x25\x39\x9a\xa3\xf1\x90\x03\x4a\x00\xd7\x40\x6d\x74\x64\x2b\x4b\x82\x55\xb5\x4b\x6d\x8e\x56\x49\x7b\xb9\xef\xbc\xb5\x3d\xdc\x29\xc0\x31\xb7\xd7\x6e\x72\x66\x75\x40\xb9\xb6\x6e\x53\xfe\x34\x22\x00\x71\x42\xd0\x0e\x35\x44\x03\x5f\x79\xae\xb2\x6b\xe9\x7a\x88\x65\x80\xa2\xa0\x2b\x8e\xa2\xdc\x95\x43\x0f\x74\xaf\x17\x2b\xc3\x9e\xf4\x00\xca\xe6\x96\x86\x7d\xcb\x88\xc0\xe0\xab\xe5\x88\x1a\xf7\x0c\x93\x31\xb3\x02\x8e\xc3\x72\xe7\xb9\xd8\x1d\x24\x91\x8f\xc1\xea\x21\xdd\x72\xdb\x5f\xad\xc3\xba\x2c\xba\x4b\x72\xeb\x40\x63\x18\x75\xfd\x53\x1e\xba\x03\xcc\xd7\xae\xc8\xae\x38\x62\xf0\x7f\x93\xf7\xd4\x03\xc0\x13\x81\xbe\xf2\xf2\x90\xe6\x87\xe5\x6f\x4d\x7b\xe0\x52\x52\x9b\x61\x3d\x16\xf9\x27\x45\xee\x20\x7c\x0f\xd9\xb0\xba\xa4\xf6\xe4\xe2\xa3\xcb\x0a\xdf\xe0\x44\x44\x83\x79\xba\xc9\x68\x11\x24\x46\xb7\x73\xf1\xf0\xf4\xed\x71\xb7\xef\x68\x8c\x34\x08\xc1\xd0\x39\x41\xa5\xfd\x0c\x8b\x54\xc6\x5c\xa0\x9f\x1b\xd7\x20\x79\x64\xf5\x72\x31\xc9\xe2\x86\x61\x17\xd8\xbb\x24\xf1\x76\x27\x82\xa6\x63\xca\xfe\x6a\x8e\xea\x5a\x83\x0a\x28\x06\xb8\xd4\x42\x5d\xb2\xd6\xf4\xab\x14\xa8\x50\x49\x8b\xa3\xdc\x42\xae\x10\x05\x3e\x58\xc5\x00\x48\x20\xdc\x52\x6e\x32\x0a\x23\x0a\x94\x49\xe7\x43\xc8\x69\x5f\x17\xf2\x9e\x2a\x14\xd2\xbb\x74\xb2\x47\x49\x63\xed\x71\xaa\x0c\x03\xec\x6d\xbf\x70\x69\x9f\x31\x39\x24\x41\x78\x4e\x7f\x42\x36\xac\xd4\xf4\x27\xcb\x8e\x0e\x28\xc5\x44\x97\x3b\xe3\xe6\xfc\x0b\xe5\x26\x77\x1e\x98\xf3\x38\x62\xa7\x97\xeb\xa7\x71\x5f\xea\xd6\x09\xb7\x15\xd9\x3c\xcd\xd3\xfc\xf5\x0e\x72\xa8\xd2\x6a\xc9\xbb\xcc\xa0\x26\x89\xb2\x45\x7c\x46\x41\xd7\x6e\x1b\xe3\x24\xa9\x26\x2a\x8c\xad\xf4\xb1\xa9\x85\x9c\xe1\x00\xc5\x56\xd0\xc9\x84\x54\x75\x06\x97\x68\x4d\x4d\x3d\xcf\x31\xa9\x59\xcf\x62\xa8\x28\xe0\x1a\x05\xc0\xed\xc7\x43\xbe\xdb\xa9\xb2\x89\xd6\x94\x48\x2c\x8a\xde\xdc\x2e\x1f\x6f\x86\xcb\x89\xa6\x32\xf1\x7b\x2c\xfc\x14\x36\xa0\xa9\x32\x6a\x9c\xc8\x8f\xd4\x54\x87\x7e\x72\x68\xaa\x7d\x2c\xb4\x29\x4a\x2e\xb3\xf4\xbf\xb0\xff\x4f\x03\xe5\x45\xdc\xd0\xfc\xf9\x5f\xdf\xda\x7b\x3a\x64\x1a\x87\xce\xb1\xc8\xeb\x43\x40\x6d\x50\xae\xf3\xe8\x75\x2c\x84\x67\x94\xf9\x74\x93\x2b\x23\x67\x33\xcb\x9e\xa1\x19\xe3\x4c\x75\x62\x0b\x13\xc4\xb3\x66\xcc\x70\x53\xbc\x14\x67\x9e\x8d\xe5\xf4\xb5\x66\x89\x44\x12\x1e\x93\xc0\x72\x2a\xc0\x73\x53\x58\x33\xa9\x93\xbe\x69\x3f\x6c\x93\x00\x2c\x5d\x6e\xd9\xee\x14\x57\x28\xae\x74\xc2\x39\x2e\x92\x26\xbe\xe0\xca\x7f\x8a\x09\xfb\xb8\xd6\xc2\x57\x18\x75\xf9\x70\x90\xca\xf1\xda\xd7\xcf\x54\x2d\x80\x22\xa1\x8e\xd5\x6c\x4a\xff\x0b\xff\x1f\x6d\x6f\xd2\xdd\x38\x8e\x6c\x8f\x7f\x9d\x5a\xf4\x02\x00\xe7\xa5\x2c\xcb\x4e\xbf\xb2\xd3\x6e\x4b\x59\x59\xdd\xef\xbc\xa3\x83\x21\x20\xb3\x2c\x91\x6a\x92\xb2\x53\xfd\xe9\xff\x87\x11\x00\x27\x51\x99\xf5\x5b\xfc\x17\xdd\xce\x12\xc1\x09\xc4\x10\xc3\x8d\x7b\xb1\xdc\xd4\xa3\xed\x4e\x0e\x28\xf7\xd3\x30\x91\x35\xca\xe0\x3a\x6b\x01\x7d\x59\xc2\x65\x74\x76\x49\x7f\x33\x1b\x03\x8b\x3b\x79\xdb\x0f\x99\x23\x91\xd4\xbd\xec\x49\x1b\xac\x55\x0a\xcb\x14\x9d\x2a\x97\x2c\xde\x5b\x13\x3e\xff\xef\x68\x24\x71\xc6\x18\xb7\x24\xbf\x03\x2e\x73\xd7\x8e\x76\x62\x75\xbd\x1a\xaa\xf0\x4f\xd2\x9e\x2e\x2c\x0e\xc4\xef\x65\xd5\xbc\xed\xa1\xae\x7d\xa1\xc1\x60\x03\xe4\x8c\xf1\x28\x40\xa1\x25\xe2\x91\x25\x25\x18\x7f\x48\x07\x59\x27\x65\x55\x3b\x39\x51\xb3\x29\x1f\x9c\x35\xcc\x19\x13\x49\x8a\xa2\x93\xe8\xc9\xbb\x0c\x89\xf0\x07\x83\x30\xb3\x98\x58\x2e\x4b\xb3\xbd\x39\xc3\xf6\x7b\x59\xed\x4d\x77\x34\x65\xa8\x00\x97\xd7\x2f\xa7\xe3\xf1\xbc\x3e\x96\x55\xd3\x3d\x55\x20\x35\x5a\xd9\xfa\x54\x37\xe5\xe1\xce\x87\x58\xa6\xcb\x55\x67\x10\xb6\xa7\x80\x30\xce\xa9\x98\x74\x64\x28\xc8\x41\xec\x96\x29\xd7\x9d\xbd\xd0\x21\x67\x2c\x8a\x23\x8f\x30\xdf\x9c\xaa\xa2\xfc\x18\x17\x9c\xb7\x2d\x32\x85\x4c\x91\xa6\x44\xff\xe9\x70\xec\x02\xf8\x9c\xb1\x58\x86\x68\x40\x39\xd9\x2c\x84\x6a\xcd\x16\x8f\x70\xc6\x12\x21\xb1\x34\x63\x0d\xcd\xe9\xe8\x9c\x8f\x4b\xf4\x47\xdb\xd0\x26\x18\x95\x83\xaa\xf5\x2d\xc6\xc7\x52\xa1\xac\xf5\x81\x83\xa6\xac\x6e\xf2\xfd\xfe\x4f\x03\x8d\xcc\xf7\x97\xdd\xd4\x8f\x8a\x34\x09\x12\x6f\xc9\x6e\xcb\x82\x34\x7d\x57\xff\xb9\xa1\xed\xc7\xbf\x4d\x2a\x85\x8c\x06\x52\x85\x8f\x54\x65\x8c\x0c\x22\xe3\x77\xc9\x62\x8d\xe1\x1a\x6f\xf8\x5e\x80\xa4\x26\xef\x9e\xa5\x92\x6c\x55\x3f\x35\x26\xd7\x93\x0c\x1c\xe1\x27\x12\x72\x50\x84\x63\xca\xea\xf8\x37\x60\xea\xed\xa5\x38\x0d\xb0\xf6\x25\x7a\x2d\xa5\x07\x53\x5f\x7d\x38\x19\x01\xa6\x24\x0f\x98\x63\x1a\xc3\xee\xdb\xc3\x3a\xe2\x8e\xdf\xff\xf5\x62\xa3\xff\xd9\x54\x94\x5a\x92\x4c\x46\xdb\x97\xdd\x56\x8e\x07\xc0\xba\x24\x58\x59\x39\xea\xf5\x7e\x1b\x6a\x1b\x58\x2f\xc1\x8f\xd0\x62\x6f\x2c\x72\xc6\x54\xca\x91\xb3\x68\x5f\x4a\xd3\x95\x6a\xb5\xbf\x6b\xc0\x0c\x5d\x53\x7e\x81\x1f\xe3\x8b\x29\x60\x99\x1b\xe2\x94\xdd\x9f\xe6\x32\x38\x63\x3a\xa6\x7d\x2f\x3f\x96\x2f\x7b\xd9\xd8\xb2\x3a\x0c\x6c\x2e\xdf\x28\x95\xc6\x09\x91\x2e\x17\x87\xd2\x9c\xf6\x27\x97\xbc\xf0\x0d\xb2\x14\x17\xf1\x76\x39\x70\x01\x11\x7f\xc4\x98\x8c\x7b\x1a\xa5\xbe\x72\x8d\xa2\x1b\x9c\x31\x93\x00\x06\x6c\xef\x4e\xfa\xfd\x4e\x6a\x50\x65\xf9\xde\xd5\x5c\x70\xc6\x80\xa7\x23\x8d\xd9\x2f\xe5\xfe\xba\x2a\x8b\x3f\x27\x24\xdd\x4e\xf8\x80\xea\xbc\x35\xf2\xbc\xcd\x0f\xdb\x9a\x8a\x91\xfb\x0b\x1b\x46\xd4\xe8\xbd\x8f\x84\xa4\xba\x54\x19\xf8\x13\x67\x86\x33\x66\x05\x31\xa8\x50\x2d\x49\x07\xf2\x5f\x18\x93\x4f\xc1\x3b\xd8\x1a\x12\x8a\x2a\x36\x50\x1d\xf2\xa2\x5d\x34\x65\x75\xbe\x24\x6c\x6f\xdb\x26\x11\x0a\x24\xac\x6e\xbf\x79\xc0\x53\x2f\x75\x8e\xc7\x65\x32\x2c\x41\x99\x87\xba\xfa\xc6\x86\x09\x97\xd9\x53\xe5\xc7\x74\x17\x1f\x0e\x95\x76\xb5\xc3\x38\xb0\xb3\xc3\x1d\xb2\x7d\x3c\x56\x38\x0b\x48\x3b\x12\x87\xb5\xcf\x3e\x3f\x14\xb7\xf2\xec\xd7\x71\xce\x93\x08\xd3\xb9\x37\xcf\x5f\xbf\xad\xb7\xb7\x8b\xcd\x6a\x3d\xb9\x08\xcf\x22\xd1\x55\x9e\xcd\x16\x69\xf8\x86\x32\x0e\xa2\x6e\xdb\xec\x93\x26\x77\x00\x97\xe3\x98\x07\xd2\xe0\xd2\xf9\xbb\xcc\xab\x72\x90\x40\xe1\x8c\x87\xc2\xb1\xb4\xa0\x55\x4b\x1f\x67\xbc\xa3\x70\xdf\x52\x12\x2b\x0a\x86\xed\xdc\x94\x29\xdd\xbc\xb9\x85\xa2\x3c\xe4\x45\xc7\xe7\xce\x19\x8f\x44\x16\xb5\x43\x08\x03\x7c\x3d\xd7\x09\x67\x3c\x4e\x12\xca\x19\x20\x68\x3d\x58\x75\x2b\x00\x8f\x25\x05\xc3\x6f\xe4\x3e\xff\xe8\x7e\x04\xc2\xde\xaf\x8e\xf9\x1e\x8e\xb5\xdf\xa3\x78\x12\x66\x18\x00\xbd\x2f\xbb\xf3\x13\x87\x12\xf9\x02\x79\x45\xa5\x91\x6f\xf9\x71\x49\xdc\xf0\xf3\xab\x1c\x4f\x79\xa2\x06\x49\xba\x95\xeb\xc7\xaf\x2e\x41\xd2\xb6\xb0\x22\x73\x41\x69\xca\x29\xf2\x78\xec\x5f\xb8\x76\x59\x1c\xe0\x1a\x44\x3d\xe9\xcb\x1f\x46\xdf\x2f\x9d\x7c\xc5\x2c\x76\xd4\x17\xb4\xa3\xbc\x82\xad\x27\x5f\x2e\x33\x3a\xca\x7a\x17\xf2\xc2\xa2\xe3\x8c\xcb\xc0\x7a\xc9\x80\x07\xfa\xb6\x83\x05\xfe\xf9\x08\xc5\x6f\xc3\xc6\x69\x8a\xf6\xe8\x63\xb9\xbb\x81\x02\x6c\xae\x73\x59\x9d\x5f\x64\x6e\xc6\x73\x8d\xcb\x8c\x27\xe0\x44\x2c\xb0\x6a\xf7\x76\xbc\x9b\x5e\x5b\xe8\xe7\x87\xab\xb4\x1c\x7d\x64\x8c\xe9\x57\x39\xd4\x23\xb3\x8b\xab\x98\x34\x3d\x5f\x91\x01\x6d\x45\x20\xea\x51\xf1\x9f\x6f\x98\x50\xa5\xce\x87\x6a\x46\xa3\x58\x65\xa4\x20\xda\x2e\xe6\x54\xe4\x7e\x5f\x95\xa7\xe3\x0c\x8e\xc6\x9d\xa0\x25\xc7\xec\xc8\xbf\xca\x52\xc9\x1b\x39\x40\x77\xf8\x4b\x9a\x88\x2c\x28\xe4\x87\x59\xb7\x3b\x92\xb9\xcb\xf7\x30\xc1\x77\xb5\x0d\x33\xaa\xec\x7b\xf3\x22\xb8\x93\x42\x13\xce\x38\x70\x2b\xb4\x33\xba\x7d\x86\xe7\x57\x60\x98\x51\xff\x41\x40\x8c\xf1\x15\x7c\xe4\x1f\x9d\x9e\x49\x7b\x20\x92\x58\x76\xd8\x8e\x8f\xd2\x36\x7a\x1c\x3e\x6d\x1b\xc4\x14\x4b\x3b\x56\xd0\xee\xde\xdf\x8a\x7d\x7e\xc8\x1b\x30\xe3\x62\xbb\xb6\x61\x9a\x61\x96\xca\x96\xd5\x50\xac\xd6\x1d\xb5\x3c\x40\x80\x3d\xd1\xd7\x0d\x64\x51\xe6\x58\x60\x39\x13\x2c\x8c\x71\xd2\x36\xe5\xe7\x00\xe3\xce\x99\xe0\x71\x3a\xc0\x22\x63\x21\xd1\x4c\x40\x96\x33\x21\x54\x80\xa1\x89\xa3\x8b\x6f\x8d\xa9\x41\x5c\xa3\xc0\x44\x88\x35\xc6\xe4\xd8\x2d\xe8\xd6\x34\x6c\x5f\x4a\x2c\xf4\xc0\x1e\x15\x61\x14\x11\x96\x5a\x16\x79\x73\xde\xe2\x27\xf5\xc7\x22\x37\x7d\x60\x0f\x7a\xa8\x69\x78\x2d\x6f\xdd\x9e\x92\x2a\xdc\xe1\x5c\xfe\xe8\x57\x73\xc2\x9d\x95\xf0\x20\x08\x7b\x63\xee\x61\xf9\x4c\xf0\xb4\x2b\xad\xd3\x08\x23\xf2\xbe\x1c\x84\x7c\xac\x71\x17\x25\xa9\xf2\x51\x19\x67\xb2\x8e\x52\xee\xe3\x2f\x92\x80\x08\xc5\x08\x06\xbc\x6e\x2a\xa2\x9b\x1e\xdf\x39\x15\x0a\xa1\xcd\x54\x0d\xd7\x97\xe0\xb7\x87\x62\x1a\x23\x47\x59\xd5\xf0\x3b\x9c\x3b\x90\x86\xb7\x58\x44\x9a\x6a\x64\x90\x42\x17\xa8\x75\x8d\x7e\x6a\x95\x8a\x14\x48\xa3\xa5\x79\x83\xe5\x59\x41\x45\xc9\x54\x22\xc7\xf4\x49\x2d\xce\x44\xc6\x00\xa1\x0f\x9a\x2a\x27\x9c\x4c\xe1\xcf\x2f\x2d\xb5\xc6\x94\x9a\xcd\x2b\xc0\x64\xf1\x63\xb9\xf3\x26\x7d\xfb\x86\x36\xe9\x64\xbd\x10\x2d\x08\xf9\x25\x2c\x9a\x33\xa1\x33\x81\x34\x0c\x72\xdf\x83\x40\xfd\x21\x88\xa3\x8e\xf1\x7e\x3f\x65\x7f\x77\x8d\x8c\xe3\xb2\x77\xf0\x60\xa2\x00\xa5\xd0\xf1\xf8\x63\x42\x94\x22\x80\xa8\xc9\x0f\x50\x9e\x9a\x45\xd7\xe9\x90\x2a\x67\xa8\xee\xf7\x45\xf9\xe9\x7f\xb6\x96\x21\x16\x94\xb0\x93\xc3\xd5\x30\x60\x59\x82\xa5\x42\x04\x17\x46\xc1\x87\xba\x91\x87\x63\x77\x5c\x92\x3c\xb5\xab\x93\x6a\x3d\xee\x6d\x31\x5d\xd7\x02\xa6\x09\xe3\x58\xa3\x54\x8b\xc9\x1b\x95\x4f\x9e\x39\x60\x20\xb0\xa0\x6a\x53\x95\xd7\x29\x45\xdb\x76\x56\x60\x5c\xd9\x19\x50\xc8\xc4\xe6\xbf\x45\xc0\x43\x0a\xd9\xdc\x3f\xff\x79\x3d\x0a\xdb\xb6\x8b\x89\xd8\x8f\x7c\xbc\xbc\x2c\xd0\xfb\x6f\xcd\x46\xca\x74\xdd\x9c\x2f\x54\x8b\xdb\xb3\xb2\x90\x27\x1d\xce\xe6\xcb\x44\x36\xbc\x6d\x00\x01\x5a\x23\x48\x13\x82\x79\xdb\x51\x5f\x72\x08\x62\x22\x8c\x3e\xd5\x23\x96\x6c\xce\x02\x91\x02\xd6\xdb\xb6\x26\xf9\x5b\x3e\x3a\x2d\x88\x32\xed\x25\x98\x87\x31\x82\x20\x64\x0c\xe9\x42\x30\x8c\x30\x04\x5c\x74\xa0\x80\xb6\x91\x30\x98\x12\x84\xc2\x20\x99\xbf\xac\x86\x14\x74\x7e\x4a\x07\x61\x22\x85\x2f\x1e\x18\x40\x8f\xda\x23\x69\x16\xf8\xa1\x29\x8b\xf7\xdb\x73\x21\x0f\xb9\x9e\xbc\x79\xcc\x95\x15\xa3\xcc\xf5\xee\xca\xf7\x8b\xb3\x08\xa3\x6e\xb9\x2e\x5f\xde\x64\x0d\x34\x53\xba\x2f\x18\x2b\x85\x9b\xc3\xd3\xe2\x4f\xc4\xbc\xad\xbe\x6e\xba\x43\xda\x10\xe8\xd6\x79\x11\x4b\x0c\x61\xcc\x27\x37\x38\x0b\x12\x91\x22\x2c\xaf\x75\x0b\xf3\x62\x77\x77\x42\x5d\xad\xd9\x09\x1e\x24\x11\x25\xc0\xb1\x88\xc8\xc5\x32\xe6\xdc\x86\x20\x49\x58\x4c\x8c\xe4\xad\x7b\xb8\xce\x77\x45\xbb\xfd\xb5\x23\xcb\xaf\x94\x43\x73\x57\xb0\x39\x1f\x20\x48\x24\x45\x44\xa8\x00\xf1\x63\xd2\x95\x69\x9a\x32\x37\x57\x7a\xf5\x92\x49\x45\x3e\x67\x41\xa6\x6d\xa0\x3d\x7f\xf3\x90\x7d\x83\xb3\x40\x82\x41\x82\xa1\xbc\xf6\x49\x23\xcf\x3e\x03\x93\xcd\x38\x50\x2c\x42\x73\xe9\x58\x41\x33\x0d\xcc\x04\x2a\x32\xd2\xf4\x6b\x25\xce\x89\x07\x33\x87\x5f\x6b\x1b\x5b\x86\x9e\x4d\xb3\x7e\xbc\x9d\x9d\xc0\x73\x1c\x69\x9c\x05\x5a\x29\xcc\xea\x40\xf3\x76\x3c\x57\xf2\x90\x77\xaf\xa1\xad\xc4\xdc\x1f\xf1\x20\x90\xc8\xe9\x9f\x93\xe7\x37\x22\x96\xda\x5b\xd4\x15\x16\x09\xd4\x73\xdd\x05\x29\x8f\xfc\xca\x87\x39\xa2\x9a\xa4\x01\xbb\xc8\x58\x00\x86\xe3\xc0\xdc\xee\xa0\x59\xbf\xe7\xfb\xfd\x6f\x43\x93\x3c\x00\x9b\x21\xe6\xba\x03\x92\xfa\x32\xdf\x9b\x33\xc2\x26\x86\xfe\xe8\xe4\x0d\x6d\x20\x53\xaf\x0d\x7d\xaa\xe4\xb2\xdc\x3b\x56\x0c\x4a\x00\xb7\x2d\x32\x11\x4d\xa9\xfe\xe6\xe7\x4f\xc8\x58\x18\xc6\x1d\xef\x06\xd6\x27\xef\x27\x96\x7e\xd8\xda\x4c\xac\xaf\xf1\x90\xb9\xd3\x08\x2b\xab\x7a\xe5\x3c\xe7\x99\xbc\x04\x9e\x18\xa0\xa5\x80\xe4\xa2\xdf\x8e\xb3\xde\xb9\xff\xe0\x21\x4b\x62\xe1\xc2\xa8\xab\x1f\x3e\xe6\xda\xc0\xc5\xc3\x18\xdd\x11\xda\x6f\x9e\xc9\xf4\xf7\x9d\x1e\x32\x70\xd6\xd4\x5b\xf9\x79\x23\xfd\x9a\x13\x0a\x41\x6c\xe0\x3e\x5b\x55\xec\x60\xff\x07\xe9\x37\xf8\x16\x31\x0b\xc9\xe5\xde\x54\x27\x12\xe1\x1a\x4d\xb2\x50\xa4\x49\xec\x62\xf2\xb7\x79\x7d\xdc\x4b\x2a\xa7\x18\xbf\xaf\xd0\xa4\x3e\xb9\x83\xe6\x3b\xc0\xfb\x83\xf9\xe1\xaf\x1f\x18\x02\x3e\xb7\x8e\xdc\x43\xfd\x34\x5b\xc0\xc4\x59\x18\x0a\xc9\x5b\x1b\xe5\xbe\xfd\x1a\xbd\xf9\xe9\x8f\x06\x52\x05\x5e\x26\x1b\x4d\x75\x5a\x54\x2e\x73\x30\x6d\xe3\x48\x92\xe6\xec\x5f\x65\x4e\x65\xe9\xb3\xeb\x5a\x18\x2a\x4a\x66\x9e\x10\x3c\x3c\x72\x7e\xc2\x48\x10\x56\xe1\xa6\x2c\x75\x1f\xdb\x09\xa3\x34\xc6\x58\xe2\xfd\xcd\x72\x39\xfc\xb9\xf5\xe0\x7c\xfd\x7f\x97\x5e\x9e\xd9\x2f\xc3\xc8\x00\xa6\xa4\xf3\x7a\x55\x18\x0c\xf2\xfb\x6b\xc4\x4a\xc7\xe9\xa0\xe2\xbb\x68\x06\x29\x6a\xdf\xc6\x30\x8c\xcb\xf8\xd1\xdd\x4e\x52\x1c\xe1\x57\x1c\xbd\xc9\x0b\xc7\x20\x30\xa7\x74\xb7\x2f\x4b\xb3\x5d\x37\xb2\x30\xb2\x32\x5b\x1f\x75\xdf\xce\x25\x74\xe7\xa2\xbe\x61\x12\x46\xb8\xff\x9e\x6a\xa8\xfe\x0e\xb6\xbb\x3d\xc5\x24\x14\xa8\xa8\x00\xfe\x3b\x70\x71\xc2\xd4\x61\x60\x76\x30\xe4\xa0\xf6\x34\x62\xdd\x07\x49\xa5\xc0\xc8\xc5\x47\x0e\x9f\xdb\x8a\x60\xc4\xf3\xf3\x3a\x0b\x82\xd0\xfa\xcd\xfc\x27\x28\xb5\xb6\xa9\x4d\xd0\xfc\xa6\x28\x97\x6c\x60\x85\x7c\x5a\x93\x5e\x97\x51\x86\x85\xb1\x8d\xac\x68\x0e\xa0\xf9\x8d\x56\x7d\xf6\x5b\xd7\x06\x92\x68\xba\x7a\x3e\x2e\x36\x33\x2b\x68\x28\x35\xb0\x21\x0f\xe5\x4f\x29\x28\xe7\x06\x91\x8a\x13\x24\x7a\xd7\x94\xe1\x1f\xd6\x00\xb4\x47\x93\x14\xb7\x0f\xb2\x41\xb1\x78\xd8\x8c\xe3\x7b\xa1\x52\x09\x72\x6e\xdc\x13\x01\xef\xc9\xa1\x92\xc6\x37\xd1\xd4\xe6\x51\x1e\x54\x2f\x38\x75\x61\xdf\x5f\xd9\x92\xbc\xef\x11\x2a\x1b\xf1\xbe\x08\xfc\x66\x31\x86\x45\xfe\x2d\x27\x2d\x54\xd6\x66\xa4\x24\x5e\x3b\x2f\xe9\xca\x8c\xd6\x99\x76\x7a\xa4\xb8\xda\x75\x14\x59\x18\x7e\x98\x2e\xa7\x1a\x38\x06\xdf\x1f\xe5\xa9\xd0\x6f\x7d\xff\x99\x88\x92\x5a\x5e\xe7\xa8\x57\x3c\x6b\x0f\x26\x0a\x73\xea\x8f\xa7\xff\x0e\x17\x00\x03\x91\xe4\x5d\xb6\xf6\x50\x36\x8e\x3a\xc1\x1d\x86\x94\xe3\x73\x6d\x1d\x8e\xf6\x17\x73\x05\xb2\x4c\x74\xe6\xe8\xc0\x04\x0d\xad\x30\xe9\xe8\x3a\x17\x11\xfd\x4b\x25\x94\xf6\x34\x90\x58\xc8\x82\x62\x1c\xd0\x8b\x87\xb5\x56\xa3\x18\xf7\x4a\xc4\x19\x68\xe7\x68\x5e\x55\x51\x6c\x9b\xa5\x12\x7a\xa6\xf3\xe7\xbd\xc1\x48\xf4\x78\xe2\x44\x3c\xb3\x68\x9e\x7d\x47\xed\xed\xae\xb7\x22\x6e\x14\x3a\xdd\x58\x0b\x8c\x10\xc2\xd5\xeb\x32\x11\xdc\x1f\x17\x81\xb4\x9e\x57\xa2\x7c\x87\x43\x59\x2c\x6f\x27\x8f\x29\x22\xe6\x81\xe4\x68\x3a\xde\x5c\xc8\x90\x8f\x1f\x45\x44\x71\xcc\x3c\xb0\xa5\xa8\x4f\x07\xb8\xc0\x3c\x73\x16\x85\x19\x15\x2c\x37\x4e\x1b\x1b\xba\x47\x0a\x4d\x1c\x11\x57\xd9\x07\xd4\x4d\x9f\xe4\x88\xa2\x90\x4b\xe8\x5c\x99\x97\x66\x2d\x2d\xac\x0f\x72\xef\xbf\x59\x14\xa7\x99\xa4\x9c\x5c\xbb\xcb\x98\xf2\xb3\xeb\x86\x84\x71\xdc\xa7\x0a\xf8\x1c\x05\xc6\x4e\x03\xda\xea\xce\x54\xf8\xe5\x9f\xd4\x5f\x55\x03\x51\x28\xe3\x84\x0b\x6e\xcb\xdd\x6e\x1a\xda\x8b\xb2\x10\x90\xc3\xfd\x7f\x5e\xee\x5f\xaa\xf2\x2f\xd0\x4d\x77\x44\x87\xa4\x52\xfd\xfa\xfc\xfd\x76\xbd\x78\x5c\x6d\xbf\x2f\x1e\x1f\x57\xde\x75\x88\xa4\xd3\x3e\xc3\xea\x00\xb9\x5f\x9f\xb4\x86\xba\xfe\xb6\xbe\xed\x1a\x40\xa0\x5c\xd2\x0f\x03\xd1\x0f\xed\x46\xe7\xdc\x05\xbf\xfe\x44\x4a\x10\x6f\xf6\xf2\x0d\x86\x0e\x5a\xa4\x62\xe2\x21\xbb\xab\x4e\xda\x57\x5c\x71\x16\x69\x41\x20\x8e\xd6\xa5\x22\x52\x95\xee\xbb\x98\x00\x18\xe9\x83\xb4\x96\xed\xae\x3b\xc5\x64\x24\xc5\x65\xf2\xba\x35\xb8\x07\x12\x5e\x9c\x45\xc0\x04\xa6\x2c\xfe\x67\xfd\xfc\xf5\x28\x9b\xb7\x6d\x3d\x72\x3c\x66\x96\xdc\x08\xe2\xd4\x3a\x0d\xbe\x1b\x59\xbc\xf7\x1b\x53\x04\x92\xdc\xb0\xae\x5e\xa2\xd7\x61\x6b\x8f\x1a\x93\x52\xc1\xea\xa6\x7d\xd7\x63\xf7\x3b\x64\xe8\x58\x40\x61\xee\x50\xb1\xf0\x7a\x6e\x2e\xb2\x9a\x6a\x24\x5f\x57\xff\xfc\xb6\x5a\x6f\xb6\x77\xcf\xdf\xbe\xde\x2e\x36\x0f\xcf\x5f\xb7\x04\x6f\xf2\x17\xb5\x96\x05\x94\x8a\x33\x00\x07\xc7\xf4\x36\x3b\x7f\x63\x96\x65\x54\xae\xd4\x3e\x00\x15\x70\xdc\x94\x55\x55\x7e\x76\xeb\x60\xcc\x74\x86\x42\x00\xff\x7e\x78\x7c\x7c\x78\xfe\xea\x7f\xe6\x2c\x43\x46\x90\x57\x59\xb4\x93\xe1\xe6\x6d\xf8\x05\x63\x9e\x26\x89\x33\xaa\x57\x9b\x2f\xdf\xd6\xb7\xa6\x9d\xbe\xe3\x69\x16\xf3\x2c\xc0\xcf\x8c\xf8\x4b\xc7\x27\x39\xda\xa0\x62\x11\x50\x0d\xaf\x34\x66\xb1\x6f\x9e\x2b\xa9\xa7\x69\xd8\x58\x44\x99\x76\x70\xaa\xaf\x25\x49\xc3\x4e\x40\x8f\x9c\xc5\x41\x06\x38\xf9\x28\xed\xf5\x94\xef\x06\x35\x6d\x9c\xc5\x91\x08\xd1\x68\x3e\x9c\xf6\x4d\xde\x76\xc5\xaa\x79\x9b\xe3\x29\x71\xcd\xe3\x20\xf3\x69\x89\xe7\x4f\x92\x58\xf1\xc3\x20\x8e\xb5\x41\x2f\xf2\xa3\x6c\x50\x13\x70\x8c\x72\xfa\xc7\x4c\xdc\x3c\x4e\x2c\x4b\x92\x0e\x6c\x77\x6c\x60\x1b\xf2\xd1\x1e\x1c\x27\x36\xc0\xa8\x1f\xa6\xaf\x28\x8b\x50\xae\xfb\x74\x6f\x9c\x32\xe5\x2b\x11\x7a\x08\xf3\xd8\x74\x8e\x53\x2e\xb4\xf3\x82\x5f\x1e\x3a\x49\xeb\xd1\x6d\xd2\x28\xd5\x6a\xe2\xb4\x3b\xa4\x44\x3d\x20\xf3\x69\x5b\x1a\x16\x39\x64\x91\x7b\x33\xe6\x0f\x49\x9e\x0a\xe5\x73\x36\x07\x55\x0e\x90\xce\x9c\xc5\x4a\x64\xdc\xf9\xa6\xdf\x6a\x43\xfc\x02\x4b\x18\x1c\x37\x54\x65\x4f\x08\x98\xce\x10\x3b\x8d\x88\x6e\xaf\x6a\x81\x8e\x47\x86\x82\xc0\xcb\x19\xb7\x9e\xca\x8d\x57\xb8\x19\xcf\x00\xcd\x64\x38\x60\xe0\x21\x88\xb8\xdc\xdf\x40\x43\x9a\x94\xe3\x6b\xea\x28\xe2\xfc\x52\x5d\xff\xd2\x48\x9e\x64\x93\x62\x1d\x93\xc4\x36\x6d\x94\xaf\x90\x17\xb6\xac\x34\x98\xce\xd6\xfd\x6d\x62\x31\xc5\x46\xa4\x3c\x18\x86\xf8\x5a\x17\x66\x36\x1c\x1f\x43\x2c\x32\x36\x88\x47\xcf\xa3\x4f\xba\x59\x65\x63\x89\x98\x6f\x52\x1a\xbe\x7b\x78\x5d\x6f\x66\xaa\xc9\xb0\xa1\xc5\x85\x84\x8a\xed\x68\xef\x18\x7d\x4e\x9b\x24\xb8\x7c\xe1\xc4\x79\x9a\xea\xfe\x5f\xd0\x9a\xb5\x67\x64\x22\x20\x6c\x67\xbb\x2a\x4d\xd3\x7f\x93\xb6\x5a\x25\x7d\x28\x14\xe7\xd9\x74\x77\x1f\xf6\xb8\x3f\xcb\x08\x13\xf5\x59\xb9\x9f\x08\x0d\xb4\x8d\xad\x32\x43\xa9\x51\xca\x36\xd1\x0c\xeb\xf8\x36\xa9\x6d\xd2\xfa\x66\x54\x63\x8d\x5b\xe5\xc4\x8e\x4c\x18\x28\xf4\x37\x7a\x7e\x05\xc7\xd3\x70\x7b\x82\xee\x12\x36\xc4\x21\xa9\xbd\xe4\x15\xa6\x06\x7c\x95\xc7\x28\xa5\x9b\x70\x9e\xe1\x50\xa3\x84\xf4\xe6\x61\xf5\xba\x8d\xb6\x8f\x0f\x4f\x0f\x7e\x9d\x4f\x78\x9c\x21\x08\x44\xee\xf7\x8f\x79\x01\xf5\xf7\xaa\xec\xe2\x9f\x09\x4f\x24\xf1\x32\x60\x79\xf4\x72\xc4\x6a\xd5\x6f\x2a\x09\x4f\xe3\x28\x1a\x6a\x5b\xc0\xa4\x42\x8e\xb3\x44\x68\x05\x72\x5a\x98\x3d\xff\xcd\x92\x80\xcb\x38\x1a\x11\x2a\x74\xb9\x5e\xff\x64\x41\xc4\x1c\x19\xa5\x34\x0d\xc8\xc3\x9f\xed\x95\x26\xb7\x0c\x74\x88\x8a\xc2\xf0\xe3\xb8\x2f\x2b\xb8\x69\x1d\x6a\x5f\xe4\xe3\x54\x3b\xfe\x97\x27\xf1\xff\xf9\xe6\x86\xdb\x41\x0c\x7b\x73\xac\x06\xd8\x95\x24\x8c\x6c\x02\x9d\xf0\xca\xc2\xc5\xe4\xbf\xa3\xb3\x34\x7e\xfa\x50\xc7\x68\x10\xd9\xfd\xa9\x7e\x5b\xf5\xbc\xfc\x9c\x25\x11\xa7\x9c\x0f\x0e\xf5\x17\x59\x35\xe7\x35\x14\xe6\xfa\x2e\x91\x44\x96\x63\x85\x80\xa5\x70\xe9\x4b\xb9\x5c\x15\x66\xe0\xf1\x26\x71\x28\xd0\xd3\xaf\xe5\xfe\x43\xee\x88\x83\xdb\xc1\x87\x87\x1a\xfd\xd7\x16\xbb\xf1\x93\xc7\xa9\x42\x6f\xe5\x70\xfe\x56\xe7\xc5\xae\xdd\x2a\x11\x40\xd8\xdd\x2c\x03\xa4\xd1\x7f\x79\x7e\x7e\xdc\xae\x6e\x1f\x36\x5b\xd1\x1d\xd2\x02\x99\xd6\x89\x59\xff\xcf\xe7\xa2\x53\x3f\xe6\x2c\x49\x78\x10\xc9\x01\x12\x74\x0d\xcd\x58\xf2\xd1\xb7\x8b\x63\x0a\x05\x14\x07\x2c\x6a\xf7\x3f\x5b\x86\x9a\x53\x07\xf9\x0e\xc4\x29\x34\x3e\x2d\x65\x9a\x34\x4a\x2b\x59\x34\x75\x97\xf7\x1c\x66\x44\x92\x34\x0a\x70\x2c\xac\x8f\x72\x10\x83\x49\xd2\xc4\x60\x86\x07\x13\x86\xb6\xca\x07\x5f\xc3\xb7\x90\x06\x05\xc7\xf0\xe6\xae\x3b\x5f\xa0\x3a\xc8\x02\x26\x5e\x6e\x92\x89\x08\xfd\xb9\x8f\x1c\x3e\xbb\x30\xf8\xb8\x45\xa0\x10\xda\x7f\xd8\xea\x81\x54\xe6\x97\xbc\x5d\x21\xbc\x5b\x98\x64\x31\xc1\xa7\xea\x46\x36\xb9\x5e\xb6\xe6\xff\x68\xe7\x1f\xee\xfb\x49\x96\x28\x52\x89\x3a\x15\x4d\x09\xd3\x54\x5f\x92\xa9\x14\xd1\x05\x58\xbb\x43\xcb\x25\x19\xbd\xbe\xd4\xcb\xb7\x03\xe3\x43\xed\xa8\x8a\x7a\x01\x99\x76\xed\xa4\xd0\x54\x54\x0e\x8d\x63\x44\x1a\xdf\x4f\xc6\x19\xda\x5a\xbe\x40\x6c\x22\xf7\x30\xeb\x52\x26\x32\x49\x30\x31\xe6\x0a\x8c\xe0\x0f\x24\x02\xda\xf5\xf5\xf8\xd3\x9b\xa4\x94\xaa\x3e\x56\xf9\x7f\xa1\x5e\xb4\x2f\xd5\x0f\x16\xc5\x2d\xba\x2c\x06\xd4\x69\xb7\x75\x62\x6c\x98\x5a\x1d\x21\x5f\x46\x7c\x71\x63\x4c\xcc\xf8\x66\xca\x06\x6c\xc8\xda\x87\xf2\xc8\x84\xb4\x1f\x37\x34\xdc\xe0\x22\x48\xd8\xd0\x91\xda\xd5\xe4\x92\x26\x54\x22\xc0\x6a\xde\x46\xcb\x6e\x28\x9a\x54\xe2\xfe\xbb\x7c\xbe\x59\xf8\xdf\x80\x4b\xe1\xec\x2d\x37\xef\x07\x19\x57\xdf\xa6\x7d\x65\x97\x23\xae\xca\xf7\x6b\xf1\x8c\x04\x52\x25\xc2\x81\x40\xe7\x4c\x00\xc6\xb5\xb4\x01\xd1\xac\x60\x08\x79\xa8\x28\x39\x52\x20\x6e\x1b\x46\x69\x42\x7d\xed\xa5\x39\xbb\x0a\xc1\x97\xaa\x6c\xb0\x54\xed\xa9\x34\xdd\x3a\x60\x93\x18\xf7\x1a\xb2\xa0\x49\x05\x73\x38\x24\xfc\x85\x53\x26\x92\xd0\x51\x48\x11\xb9\x56\x8f\xd6\x49\x99\x4a\x14\xf7\x7e\x75\x78\x9b\x7f\xd4\xcf\x9f\x13\x49\x98\xb6\x95\xa5\xd8\x3d\xd2\x3c\x3e\xdb\x47\x59\x98\xdf\x66\x70\x17\x29\x0f\x35\xfa\x76\xaa\xf4\x73\x21\xe5\x71\x12\x25\x23\x99\xc8\x9e\x29\xba\x6b\x63\x34\x92\x04\xfa\x92\xb3\x99\xc4\x64\x2a\x52\x85\xcc\x5f\x45\xf9\x3c\x16\x3f\xf1\xc7\x25\xc7\x72\xdb\xb5\xfc\x80\xd7\x5c\xbf\x2f\x0a\xf3\x54\x56\xcd\xb9\x3b\xae\x49\xfb\xa6\xab\x60\x99\xcd\x63\xa4\xc2\x10\x27\xe6\xf2\xf9\xe1\xeb\x6a\xfd\xe0\xc7\x4e\x1a\x18\x81\xa0\xc4\x06\xf4\x5b\x91\x6b\xb9\x1f\x59\xdf\x69\x60\x13\x74\x07\x64\x5d\xc3\x28\xb9\x9c\x86\x11\x91\x76\x90\x4d\xb7\xf8\xb6\x6c\xbd\xc3\xf5\xf6\xe9\xe1\xeb\xc3\xd3\xb7\xa7\xed\xeb\xe2\x61\xbd\xea\xda\xa6\xc6\x38\x0f\xfd\x56\x9e\xeb\x87\xe2\xa9\x2c\xa6\x8b\x50\x1a\x4a\x6e\xd5\x68\xeb\x9f\x38\x6a\xff\x98\xb4\x57\x1a\x67\x82\x95\xd5\x61\x9d\x17\xbb\xeb\x1c\x6f\xfe\x04\xad\x09\x3d\x20\x8b\xdb\xf2\xa4\xf6\x70\xdb\x47\x46\xd2\x28\x12\x71\xd6\x85\xd3\x7e\x9c\xd7\x4d\x59\x0d\x30\x8e\xae\x55\xcc\xa9\xec\xe0\x53\xd6\xb7\xb0\x87\xdd\xd0\x30\x9f\xbf\x69\x2c\xa8\x42\x1b\xb7\x0e\xc4\xcb\x3c\xdb\xef\x65\xf5\xfe\x73\xd4\x42\x1a\x27\x29\x3a\x6a\x20\x9b\x6f\x45\xae\xcb\xaa\x68\xd7\xca\xf2\xd4\x2c\xcb\xaa\x7b\xe6\x58\x66\x58\x9c\x30\x0d\xf1\x8d\x26\x49\x12\x46\x98\x1c\xae\xf3\x5d\x21\x9b\x53\x05\x3d\xe3\x51\x7b\x34\x92\x9a\x79\xfe\x13\x94\x1e\x7f\xcb\x8f\xab\x1f\xc7\xbc\x3a\xdf\xca\x66\xfa\xfa\x49\x0a\x34\xd6\x56\xf7\x0f\xeb\xcd\xeb\xbf\xb6\x0f\x5f\x37\xab\xd7\xbb\xc5\x72\xb5\x7d\x5d\xfd\xf3\xdb\xc3\xeb\xea\xa9\xcf\xf9\xa6\x69\x6a\x1d\xad\xee\x21\x2f\xb6\xf0\x63\x16\x93\x98\xa6\x59\x86\x90\xb0\x6d\x01\x9f\xcf\xa7\x66\x57\xb6\x73\xa8\x07\xae\xfd\x82\xb7\xcf\x5f\xc4\xb2\x60\xa2\xd9\xea\xb9\x3d\x5c\x8b\x2c\x22\x91\xd4\xdb\xdb\xff\xf9\xf3\xf5\xa5\xfb\x35\x0d\xd1\x85\x7e\x5e\xfc\x4e\x51\xe2\xab\x41\xe7\xd9\x9c\x5b\x9a\xa5\x12\x4b\x71\x5d\x58\x1c\x01\x0d\x53\x44\x55\x9a\x29\x1e\xbb\x0a\xb7\x97\x72\x02\x04\x74\x4d\x24\x67\x98\x8a\x7a\x93\xf5\xea\x70\x6c\xce\x2e\xd3\xb7\xde\x97\xd3\xbd\x33\x95\x59\x40\xfd\xd5\xfa\xad\x43\x6e\xb0\x29\x02\x6b\x7e\x1b\x4d\xa5\x55\x99\xf5\xf8\x9f\xe2\x54\x8f\xc5\x1d\x67\x61\x68\xde\x9b\x4b\x55\x42\x32\xe7\x14\x25\x26\x24\xd9\xba\xec\xaa\x17\x52\x1d\x50\x00\xff\x28\x4b\x97\x4d\x1a\x47\x06\x52\x9d\x4a\x08\x3d\x25\x11\x34\xb0\x91\xf5\xc5\x4c\xf0\x4d\xa5\x45\x10\xef\xb8\x94\xa5\xbb\x92\x61\x0e\x62\x5f\xc8\x76\x26\x83\x6d\x4d\xc1\x71\x77\x0c\x89\xb7\xda\x33\x42\x86\x86\xfb\xcb\xa9\xb9\xcf\xed\x24\x70\x9c\x9a\xd8\x22\xba\xc6\x05\x27\x47\x93\xc4\x64\x99\x57\x3f\x6e\x5f\x2b\x2f\x4e\x79\x33\xf4\xf0\xbb\xfe\x01\x1e\xe3\x67\xcc\x6b\xd2\x61\x59\x83\xdc\x4f\x02\x91\x29\x84\xca\x50\x9b\x19\x56\x9f\xf6\xb8\x94\x84\x43\xf1\xaa\x36\xe3\x6e\xb1\x31\x71\xb5\x92\xc9\xb2\x41\xba\xb6\xc7\x72\xa6\x68\x6d\x72\x9a\xe4\xb8\x8e\x17\xf0\xb9\x2a\x76\x7b\x59\x98\x9b\x3e\x92\x94\x5a\xa0\xf2\x6d\x69\x3e\xf2\x7a\xc2\x11\xc4\x59\xc6\x22\x86\x92\x2c\x7f\x49\xfd\x7e\x2c\x11\x1f\xfb\xcf\x93\xdc\xe7\x36\xef\xe6\x57\xc6\x9c\x14\x90\xc3\x17\x4e\x49\x56\x38\xcb\x84\x20\x20\x56\x03\xbd\xbe\xdb\xb2\xac\x9b\xee\x78\x42\xb8\x59\xaa\x6e\x98\x17\x1e\x4c\x67\xa7\x7f\x16\x24\x0a\x3d\x07\xe9\x60\x84\x4f\x65\x01\x7e\x83\xcc\x42\x41\xc8\xc7\x0a\x74\x59\xe8\x7c\x9f\xa3\xb1\x78\xeb\x89\x2b\xda\x16\x61\x02\x7d\xa4\x05\x45\x0a\xc8\xed\x8b\xfe\x6f\x1c\xce\xc8\xc2\x84\xc7\x7d\x95\xd2\xa4\xf6\xaf\x3d\x6e\x18\xe2\x3f\x1e\xcb\xcf\x7b\x39\x0e\x64\x65\x11\xa3\xc9\x81\x84\xb8\x1f\x65\xae\x61\x08\xb7\xfd\x79\x3e\x2a\x8b\x82\x54\x0f\xfd\xe2\x85\x81\x63\x33\xf1\x79\xc7\x8f\x12\x05\x1a\x71\xe8\x24\x92\xba\x7c\x93\xfb\x3d\x20\xd2\x92\x96\x96\x3b\x98\x2c\xc4\x59\xa4\x62\xf4\xcd\xbc\x09\xdb\xb6\xf8\xe9\xde\x96\x45\x56\x60\xd8\xe0\xe5\x54\xbf\xf9\x08\xc6\x54\xab\x9e\xb3\x2c\xe6\x19\x62\xd4\x6f\xf2\xb2\xc8\xb5\xef\x8e\x84\x59\xa5\x06\xf1\x09\xf7\x62\x95\x67\x8a\xdf\x94\x4f\xc5\xf9\x22\xcb\x3c\xff\x20\x09\x27\x35\x7f\xd5\x2e\x68\xb7\xf2\x3c\x76\x5b\xb2\x44\x50\xf2\xb2\xaf\x50\x46\x6f\xa0\x3b\x9c\x46\x38\xf5\x9d\x84\xde\xba\x3c\xed\x27\x5d\x93\xa8\x0c\x3c\x9d\x5e\x27\xb2\xd1\x2f\x2d\x59\xa2\x29\x7b\x06\xc7\xbc\x2e\x0d\x74\x7a\xab\x57\x9e\xd6\x44\xa1\x1c\x96\x75\x4e\xfa\x2b\x81\x08\x57\xbe\x55\xd1\x74\x6b\x50\x96\xb5\x4e\x06\xee\xf5\xa4\x04\x53\x9f\xae\x5d\x3e\x33\x01\xe1\xc0\xdb\xc9\x77\xda\xc3\x70\x33\xbd\xb6\xab\x0d\x7c\xc5\x2c\xb3\x31\x16\xa8\x39\xda\xf9\x97\xe7\xf5\x24\xac\x3f\x78\x71\x99\x91\x58\x93\x3a\xed\xf7\x30\xc7\xa8\xd0\xb6\xd1\x21\x72\x23\xd5\xd2\x82\x93\x5b\x9a\x74\xaf\x8a\x13\x34\x93\xf3\xc3\xa1\xac\x9a\x81\x14\xc0\xe4\xcd\xb4\x60\xc1\x80\x65\x6b\x68\x8e\x66\x26\x14\x5e\x54\x62\xe3\xf5\x72\x7e\x89\xad\x9e\x15\x1f\x1b\xdf\xd3\xd8\x18\x79\x19\xaa\xb2\xdd\xdb\x6f\xf2\x86\x32\xbb\x63\x37\xd1\xb5\x85\x88\xb8\x78\xd7\xfa\xed\x00\xfa\x7d\x0f\xfb\xd1\x23\xb6\xae\x15\x77\x32\x03\x7b\xf3\x24\xcf\x65\xbf\xd2\xce\x11\x93\xfb\xf0\x4e\x06\x59\x88\x58\x2a\x4d\x65\xac\xdd\xaf\xc6\x93\xc8\x3d\xc9\x1f\x37\xa7\xf3\xa4\x57\xc1\x8a\xc4\xe5\xfa\x6e\x4f\x8d\x7e\xc3\x51\xfb\x3a\xd5\xbe\xed\xda\x4b\x16\x28\x5c\x30\x5e\xbe\x2c\xd6\x2b\x3e\x14\xd0\x69\x0f\x1a\xa2\x32\x46\xb7\xf5\xd9\x4e\xab\xc0\x5a\xfb\xc5\x5b\xf8\xbf\xc3\x19\x4b\xaf\x66\x01\xe1\x52\x30\x85\x89\xe1\x76\x17\x78\xca\x8b\xe6\xfe\xe4\x17\x6a\x29\x6c\x82\x39\x01\x5a\x86\xc7\x52\x07\xa3\xf5\x5e\x06\x9c\x65\x7c\xa0\xa5\x61\xe4\x64\x9b\x94\x41\xa2\x85\xeb\x1c\x8a\x21\x8d\x0d\x11\x19\x80\x26\xc4\x06\xd4\xcd\xd6\xe6\x1f\x18\xf2\x6d\x57\xa1\x2e\x80\x2a\x43\x6b\x70\xbd\x7e\xd9\xcb\x76\xcb\xf7\x9e\xa5\x8c\x94\x1a\x68\x40\x2c\xdf\x64\x35\xcb\x6a\xef\x5a\xc7\x61\x86\x5f\x61\xf1\xfa\xe8\xa4\xe8\x4f\x73\x68\x17\xdf\xda\x1a\xdd\xf3\x88\x61\x54\xf0\x67\x17\x4f\x02\x8b\x71\x16\xb7\x31\x57\xfd\x9e\x26\x93\xd4\xe2\x22\x73\x44\xc7\x78\xf3\x59\xbe\xc2\x07\xc8\xfd\x95\xaf\x92\xc8\xc8\x49\xef\xea\xd2\xe9\xbe\x39\x9c\x93\x6b\x90\xb2\x20\xf3\x2c\xec\x27\xb3\xbb\xae\x1a\xef\xdb\x0b\x5a\xc3\x7a\x3e\xeb\xc9\x07\x48\x63\x96\xba\x5c\xda\x43\xd1\xdc\xe5\xb0\x37\x81\x3f\x96\x85\x42\x0d\x83\x29\xcb\x32\x2f\x4c\x55\x1e\x47\x15\x4b\xb2\x1d\xfe\xcc\x0b\xe1\x62\xb6\x6e\xfc\x08\x32\x30\x18\xe2\xf9\x23\xaf\xea\xf3\x61\x86\x83\x76\xd6\xa4\x97\x2a\x8b\xd1\x18\x78\xfc\xd7\xd7\xdb\x67\x7f\x2f\x65\x24\x66\x9a\xf6\x20\xcd\xc5\x58\x52\x86\x64\x38\x6f\x5b\x6b\xaf\xda\x7e\xc9\x9b\xe7\x0a\x91\x4e\x17\xa5\xd0\x9c\x49\x0d\x1a\xad\x9c\x6d\x2d\x3f\xae\x56\xd0\xfd\x63\x76\x8c\xfc\xdc\x44\x90\x46\x31\x0c\x9d\xd7\xb2\x78\x92\x3f\x46\xe9\x67\x69\x8c\x44\x6c\x99\x05\xa8\x17\xd3\x22\x53\x1a\x0b\xce\x5f\x94\x10\x12\xac\xce\x19\x72\x83\xf0\xda\xac\x41\xd6\x9d\xa5\x41\xf8\x2a\x4a\x47\x42\xef\x04\x9a\xc7\xdb\x81\xb4\x99\xc0\x8c\x66\x6b\x1c\x2e\x65\x61\xfc\xf4\x57\x4c\x86\x38\xfd\x1d\x87\x1e\x54\x1f\xb9\x86\x27\xf9\x83\x32\x52\xf5\x4b\x3b\x15\xca\x8f\xbc\x9e\x3e\xca\xd4\xc3\x51\x4c\x45\x26\x1a\xd7\x3c\xfb\xa5\x54\x71\x45\x15\x38\x8f\x65\xb1\x43\x8e\xbc\x2e\xaa\x2e\xfa\x15\x38\xfd\xbf\xf9\x2e\x56\x22\x20\xf6\xc8\xbc\x5e\x98\xbf\x64\x4f\x82\xf5\x8f\x8b\xff\x77\x27\x04\x26\xc2\x9c\xf7\xc3\xf2\x79\x8b\xc9\x15\x31\x4c\x7a\xa9\x30\xa4\xda\xd3\xc7\x72\xf7\xad\x86\xca\x87\x70\xae\x15\xa9\xa9\x98\x01\x66\x3c\x88\xd2\x1e\xcb\xb1\xfe\x9e\xfd\xa8\x92\x34\xc1\x0a\x62\xf8\x90\xfb\x93\x6c\x60\x7b\x28\x0d\x4c\xcc\x1c\x95\x64\x29\x2a\x1e\x62\xd4\xe5\x15\xec\xf8\xcb\xa9\xc4\x64\x88\x3b\x41\x3c\xdc\x0e\x9a\xed\x41\xe6\x45\x03\x45\xbb\xa3\x0f\xe2\x77\x2a\x55\x94\x7f\x7c\x69\x3f\xdc\x7b\x3d\x02\xc4\xab\x0c\x22\x12\x90\x78\x3b\x35\x83\xf8\x8b\xd2\x2c\x0c\x5d\x7c\xb2\xed\x8a\x47\x59\xec\x4e\xa8\x73\x7c\xe5\xfd\xba\x2f\xaa\x03\xed\x61\x70\xce\xb8\x7b\xca\x7b\xdf\x4d\x19\x66\x10\x04\xf8\x08\x3b\xe8\x48\x23\xaf\xf5\x59\x3f\x4f\x95\x89\x0d\xce\xf8\xed\xd6\x35\x12\xdb\x6d\x77\x4d\x1d\x63\xc8\xee\xaf\x32\x2f\x76\x48\x62\x30\xee\x47\x08\x52\x96\xf6\x15\x3e\xe6\x3b\xe4\xf3\x16\x8d\x02\xc7\xe2\x8b\x18\x3e\x6b\xf7\x18\x46\xf5\x0b\x8b\x02\x45\x82\xd5\xcf\x05\x78\x90\xee\xb0\x2f\x35\x8b\x13\x23\x7c\xcc\x2a\xd7\x70\x57\x56\x5d\x40\x95\x70\xd7\xb3\x0c\xf4\xed\x99\xd2\xca\x81\xa8\xe8\x5d\x59\x39\x1b\xcf\x1d\xe7\x3c\x45\xf6\xd9\x03\xc6\x84\x1e\xfa\xdf\x45\x86\x55\x14\x5d\xe2\xb1\xdd\x5c\xf3\x62\x77\xa5\x7a\x49\xf3\x2c\x50\x99\x47\x13\x6c\x31\x6c\xf0\x09\x79\x77\xb5\x2c\x14\x44\xb0\xda\xc5\xb4\x34\xcf\x22\x61\x3d\xec\x16\xf9\x75\xfd\x01\x15\xa2\x20\xda\xa1\xfc\x80\xeb\x1c\x6d\x6d\x43\x43\x48\xa3\x7b\xc7\xad\x62\xe6\x72\xf1\x9a\x5b\x2b\xf8\x30\x62\xe4\x70\x45\xfe\x76\x42\x06\x38\xd5\x5e\x2a\xf0\x64\x25\xed\xaf\x9a\x6b\x07\xba\x5b\x54\x2a\x1f\x12\x06\x8d\xe6\x8a\x0e\x62\x3a\x7d\xdd\xe3\xab\xab\x19\x03\x5a\x07\x8a\x47\xa3\x4c\xae\x4f\x19\xba\x55\xd4\xdf\x38\x8c\x04\x12\xc7\xf5\x31\xf4\x6d\x33\x2a\x42\xd1\x61\xcc\xb1\x4e\x0e\x7e\x1c\xcb\xaa\x81\x8a\x30\x43\xdd\xd1\x8c\x94\xa0\x96\xb2\xda\x97\xf5\x00\x19\xa7\x43\xc5\x33\xc7\x96\xfe\x24\xdf\xa1\xba\x81\x66\x90\xd0\xd4\x21\xa4\xca\xa1\x90\xfc\x4f\x91\xa2\x50\x69\x59\x19\xa8\x9e\x64\xa3\xdf\xd6\xb0\xbf\x10\x52\xfa\xb9\x5d\xad\x23\x15\x60\x58\xfb\x90\x17\xcd\x3c\xfb\xb6\x6b\x98\xb0\xd4\x89\x72\x23\x66\x9e\x8e\x4d\xa7\x9c\x4e\x42\xab\x1d\x08\xe8\x7e\x5f\x2a\x39\xab\xeb\xd4\xb6\x4b\x89\xc6\xad\x86\x7a\xa2\x53\xcd\x99\xce\x78\xe0\xf9\x47\x37\xf9\x01\x82\xf1\xfa\xa7\x33\xa9\x9c\xec\xc8\x3b\x39\x55\x57\x06\x60\xa6\x13\x57\x67\xd2\x6e\x64\x2f\xe5\x3b\xe8\x32\x2f\x16\x85\x41\x64\xa1\xac\xde\x3b\x4f\xe9\x72\x79\x73\x97\x90\x26\xe6\x8e\xba\x5b\x61\x60\xeb\x22\x9c\xd2\x36\xf1\x94\x3e\x37\x55\xae\xdf\x1f\xcc\x25\x01\x4a\x57\x95\xf7\x8b\x8f\xa1\xc2\x00\xb7\xa9\x5b\x1f\x65\x43\xff\xf2\x22\x31\x75\xf5\x6c\x13\x13\xe0\xff\x2f\xd0\x7e\x11\xa6\x84\x0c\x32\xe8\x8d\x4c\x4d\xad\xa2\x18\x3f\x7c\x8e\x34\x6a\xcf\x76\xf2\x21\x55\x16\xa1\x7f\x40\x2b\x4f\xbd\x3d\x9e\xea\xb7\x2b\x9d\xa4\x20\x44\x38\x8d\x3c\x1e\xf7\xe7\xa7\xa5\xef\x18\x1d\x03\xce\xec\x5b\x79\x3c\xd6\xbd\x07\xad\x75\x16\x63\xed\x6c\x7d\x3a\xa8\xbc\xb9\x2b\xab\x95\xaf\xf4\xf4\x0d\x9c\x61\x4f\x75\xa1\x7f\x94\x0d\x4c\x5c\x59\xad\x15\xc4\x6e\x94\x2d\xf6\xcd\x52\x1e\xf3\xa6\xe3\x3a\x9c\xbc\x07\x30\x52\x5e\xd0\xb2\x58\x7f\x4a\x9f\x60\xd6\x20\x6c\xe0\x28\xc4\x82\x41\x42\x7f\x26\xb5\x3f\xcc\xe2\x0e\xfd\x73\x0d\x31\xd1\xc8\xd6\xd0\x6c\x5d\xc8\x62\x6b\xa7\xd1\x1c\x6d\x23\x83\xe9\x61\xf9\x29\x73\x14\x06\xc5\x2a\x4e\xff\x18\x56\x6b\x5c\x23\xf7\x60\x1b\x9e\x8c\x4f\x35\x8c\x91\x0a\x02\xe1\x87\x90\x7a\x74\xd2\x20\x01\xac\x0a\xd9\xee\xc9\x11\x5f\x0e\xe4\x5d\xc7\xdf\xc8\xb0\x14\x10\x8f\x4b\x7d\xba\xfd\xa4\x7c\xbe\x3f\x68\x09\xf6\xdc\x2d\x7e\x1b\xc7\xa9\x43\xdb\xe6\xe4\xae\x22\x0e\xb0\x0a\x68\x87\x4e\x5f\xb5\x79\x93\xc5\xbc\x37\x63\x84\x15\x9e\xca\x78\xdb\x85\x8f\xb7\x14\x29\x1e\x82\xa4\x4d\xa0\x8c\x18\x46\xd5\x30\x6e\x48\xc1\xc3\xd9\xa9\x6d\x42\x11\x63\x36\x67\x4b\x7d\x33\x1e\x1e\x26\x4c\x35\xc6\x20\x30\x36\xeb\xd8\xf2\xdd\x4c\x7f\x9e\x00\x12\x4d\xc4\x19\xfa\x01\x25\xf2\x6d\xc0\xb5\x92\x86\x4b\xc5\xfe\xff\xfd\xbf\xc1\xb4\x9e\x94\xdd\x9a\x28\xa5\x8a\x30\x7c\xa1\x3b\x80\x65\xf7\xc9\x4d\x04\x14\x0e\x38\xc8\x1f\x8b\xa6\x81\xc3\xb1\x3b\x12\x4b\x8e\xfc\xe4\x9d\xce\xf0\x65\x26\xd3\x24\x82\xca\x16\x9c\x74\x3d\xb2\x97\x74\xf2\x8b\xed\x71\x95\x21\x25\xcb\xed\xc3\xe2\x71\xbd\x7e\xf9\xe6\xb1\x9b\x26\xcd\x4c\x40\xe5\x6c\x7e\x1f\x44\xc5\x13\x7f\xd4\x24\xa1\x19\x58\x30\xf3\xa9\x3e\x93\x09\x16\x13\x57\x11\x89\x82\xdc\xcb\x7a\x58\x4c\x6e\xb2\x24\xb3\x71\x5f\x4c\x39\x9b\xeb\x35\x32\xb3\x68\x28\xae\x1b\x79\xbe\xc9\x3b\x61\xb9\x3b\xa9\x07\xb0\x0a\xa3\x19\x04\x94\xac\x46\x39\x9a\x67\x3b\xba\x91\x91\x12\xb3\x48\xdb\x1a\xad\xcd\x8f\x19\x4d\xcd\xee\x5b\x18\x13\x13\x8d\x4d\x59\x20\x40\xff\xca\x90\x02\x65\x2c\xad\x87\x8b\x93\xc9\x9b\xbb\xbc\xc8\xeb\xb7\xe9\xe0\x07\x16\x1a\x74\x8e\x08\xa1\x15\x31\x8f\x81\x04\x06\x8a\xa4\x60\xe4\x7e\xbf\x6e\xca\xef\x79\xf3\x76\xd3\xe8\x5f\xa1\xf4\xaf\x47\xc4\x66\x72\x47\xce\x99\x01\xae\x23\x70\x96\xf6\xef\x15\x02\x87\x16\x8e\xa3\x7b\xfe\xd5\x80\x1b\x2a\xfe\xa7\x0a\xf2\x01\xbe\xb2\x6f\x22\x84\x09\xf9\xc4\x54\xf6\x87\x54\xc6\x3d\x12\xe1\xb2\x0c\x26\x9e\x5c\x28\x8a\x33\x74\x5b\xdf\xe1\x3c\xfc\x62\x10\x29\x6b\x3d\x63\x21\x59\x78\x53\x8f\x14\xe2\x8c\x07\x44\xae\x36\x48\x0a\x40\x2c\x05\xc2\x2f\x7c\xc5\xea\xfa\x54\x7d\xe4\x1f\x65\xd5\x59\xbc\x93\x8b\x28\x08\x7c\x35\x0e\x9a\xd2\x50\xfd\x36\x7a\xc0\xd8\x90\xc2\x71\x03\xf2\x40\xa4\x20\x43\x5c\x30\xc4\x26\xc1\xd2\xc0\xed\x61\xa8\x5e\x3e\x0c\x0e\x41\x0c\x04\x70\xfa\x28\x1b\x57\x34\x37\xee\x82\x24\x89\xc1\xb8\x98\xcb\xac\x2c\x5f\xdb\x46\x52\x3d\x32\x76\x24\x66\xe1\xbd\xc5\x0b\x09\xa4\x3e\x31\xd8\xae\xf9\x6e\x01\x40\x78\x94\xad\x4a\x1f\xfe\x82\x94\x19\xbc\x8b\xd4\xfa\x74\xc0\x55\x7b\xdb\x94\xdd\x41\x11\x60\x56\xce\x31\xb6\x22\xad\xc3\xb4\xa7\xd2\x8c\xe2\x8c\xb4\x94\x6c\x0d\x38\x63\xcd\x2f\xdf\x90\xc5\x2a\xe8\xcb\x09\x9e\xca\x0a\x1c\xc1\x82\x23\xa7\x9b\xd8\x7e\x20\x79\x60\x3a\x6a\x51\xca\x43\x1c\xfa\x38\x29\xc8\x98\x4a\x3f\x30\x34\x21\xcd\x73\xb1\x3f\x0f\xf6\x00\x90\x90\xa1\x15\xf1\x69\x7e\xea\x1b\xfa\xd6\x36\x61\xbe\x74\x0c\x45\x21\x4f\x35\x5c\x41\x41\x81\x0a\x88\x93\xe3\x7a\xda\x70\x04\x32\x01\x15\x91\xb4\xe5\x40\x48\x70\x29\xf7\xfb\xbb\xf5\xe6\x67\x14\x6f\xed\xfc\x47\x02\xc3\xc5\xfa\xee\x66\xe8\x1e\x82\xb2\x9c\x8d\x6b\x5a\x6e\x60\x52\xf5\x0e\x3a\x32\x18\x0f\xb1\xa4\xe0\xb4\x28\xcc\x4d\x5e\x35\x6f\x13\xb9\xc6\xf1\xfe\x0a\x5a\x52\x97\x21\x55\x5b\x2f\x5f\x76\x9d\x80\x6f\xd6\x6e\x04\x0d\x19\xda\xec\xba\xac\x2a\xf4\x59\xbf\x40\x55\x8e\xe8\xeb\x39\x03\x13\x19\xc4\xa7\x6c\xe1\x90\x63\xbd\xff\x07\x50\x46\x6b\xb8\x91\x03\xf0\x0c\xc1\xae\xf5\x49\x1d\x28\x2b\x4e\x20\x9a\x45\x61\x36\x55\xbe\xdb\x41\xe5\xec\x9f\xf1\x13\x40\xc4\x31\xab\x76\xff\xe7\x1f\xcb\x35\x14\xcd\xcd\x19\x43\xae\xd7\x6a\x1b\xfd\x59\x2a\x46\x8f\x49\xb6\x1e\x60\x35\x0c\xa8\x0f\x9e\xc8\x32\xa9\x5d\xb5\x05\x02\xb2\x3a\x1f\x12\x2c\xcf\xbc\xda\xf2\xea\x78\x98\x54\x0b\x52\x1b\xcb\x38\x60\x90\xec\xf8\x70\x8b\x2e\xcf\x76\x7a\x5c\x87\x88\x5d\x3f\xc8\x1f\xed\x2e\x75\x31\xe8\x2d\x0f\x68\x2c\xb5\x8b\x27\xfc\xb8\x82\x65\xf6\x6d\x1d\x1a\xcf\x15\xae\x0c\x90\x5c\xdd\x3b\x5b\x9e\x08\xf4\x69\xf2\xfa\xd6\x55\x69\x2d\x9c\x1f\x6a\xba\x5b\x4a\x91\x84\x1d\x97\xc6\x44\x54\x9f\x33\x2b\x44\x6c\x9c\xca\xb2\x63\x65\x99\x0c\xb2\x0b\xa7\x65\xf0\xaf\xae\x63\xad\x50\xc4\x7e\x8e\xea\x68\x43\x66\x45\x2b\x80\x73\x4d\x29\xfc\x03\x34\x6f\x70\xaa\xff\x9c\xf7\x1c\x6c\x20\x32\x94\x6b\xb9\x87\xe6\x9f\x27\x38\x8d\x6b\x75\x6c\x20\xa9\x80\xf9\x82\xc7\xfe\xab\x47\x24\xf9\x1c\xa5\x3f\x23\x64\x29\x26\x18\x65\x6b\x10\x3f\xc9\xbc\xe8\x28\x95\xa7\x50\x7b\x1b\xf2\x84\x47\x43\x26\xcf\xd6\x38\xc7\x7c\xc9\xec\x24\xb1\x61\x18\x62\x8d\xfc\xf2\x2d\x2f\x64\xff\x9d\x67\x53\x09\xa7\x09\x13\x32\x67\x36\xb2\xdc\x6b\x1e\x6e\x8f\xb2\x6a\x72\x9d\x1f\x65\xd1\x6c\x71\xec\xd6\xdb\xf7\xb3\xee\x2d\xe4\xc9\x18\x8b\x6c\x8c\x1c\x98\xb6\x02\xd8\xb6\x7b\xce\xd6\x96\xd5\x56\xcb\xc2\xe4\xed\xa3\x6f\x3d\x84\xcc\xc6\xb1\x46\xc3\x7c\x41\x8b\xfe\x73\x71\x25\x33\x69\x63\x10\x32\xf6\xd5\x27\xa7\xc2\x65\x66\x6e\xce\x14\x88\xfd\xe9\x62\x61\x63\x4b\x54\x18\xf7\xad\xeb\xb5\xef\xd2\xd9\x0f\xb7\xdd\x47\x48\xc2\x10\xc1\xa9\xef\x67\xdd\x07\x52\x97\x1e\x40\x5b\x56\x93\xe5\xd9\x26\xda\x06\x4e\x3e\xa9\x39\xd5\x63\xa1\x21\xce\x6c\x1a\x59\x54\x28\x5d\x2d\x16\x83\x70\x89\x4d\xd3\x08\xf7\x69\x03\x7a\x2f\x2b\x58\xbe\xc1\x54\x30\x84\x33\x9b\x71\xc0\x48\xc1\xa7\xdc\x43\x2d\x6f\xe5\xa7\xfc\xeb\xa9\xfc\x0b\xd6\x4d\xf9\x94\xef\xf3\xb2\x67\x6f\xb1\x59\x48\x42\x6b\x3e\xd5\xb1\x29\x5f\xca\x72\x3f\x03\x1c\xb5\x92\x71\x4c\xf7\xe5\xf5\x8d\x6c\x9a\x3d\x91\x40\x96\xd5\x0c\x29\x37\x47\xb1\x41\x5c\x5a\xbf\x9c\x55\x95\xbb\x8d\xed\x6a\x19\x83\x95\x2a\xd6\x89\x97\xb5\x27\x3b\xcc\x89\x61\xfd\x7c\x37\xb4\x12\x62\xf4\xee\xec\xa9\x39\x11\x1d\x73\x5e\xec\x28\x71\x34\xce\x91\x58\x15\x68\x2f\x1b\x7f\x4b\x42\xbd\xb3\xb2\x85\x93\xeb\xab\x48\x28\x3b\xe4\x42\xb8\x73\x4c\xec\x3f\x65\x42\xb0\x9a\x49\x04\x5c\xbd\xe6\xbb\x65\x25\x6d\xe3\x90\x4a\x2f\x52\xbf\xcb\x1d\x8c\x6b\x97\xad\x66\x24\x26\xdb\xc3\x0e\x71\x47\xab\xf3\x5d\xd7\x22\xe0\x1a\xfa\x60\x29\x32\x6e\x53\x54\x70\x72\x5b\xad\xb0\x60\xcf\x65\x4e\x6e\x4e\x55\xf1\x22\x4f\x75\xbf\x42\x6a\x23\x11\xfb\x7b\x7b\x7b\xf7\x77\xe7\xaf\x36\x80\xa1\x66\x0b\xfa\xed\x8f\xb2\x41\xee\xf0\xbb\xb2\x6a\xff\x79\x05\xc1\x6b\x21\x14\xca\xab\x39\x9b\x63\x5f\xa0\xf6\x05\xf6\xc7\xfe\xa4\xff\xe5\xbe\xa2\xc1\x42\x24\xd1\x0b\x6e\xb7\xb2\x95\xac\xf6\x67\xcc\xff\xf9\x6c\x9c\x85\x44\x23\x89\xf8\xb1\x9d\xa5\x17\x16\x84\x85\x4c\xc2\x50\x31\x60\xf2\xe1\x41\x31\xef\x8b\xbf\x94\x9f\x93\x82\x0e\xd7\xc6\x86\x44\xc4\xb0\xc7\x80\xef\x48\xea\x05\x5b\x70\xc6\xc2\x14\xe9\x2a\x64\xd3\x48\x47\x1d\xdf\xfe\x2a\x33\xe3\x84\xef\x47\xc8\xaf\xb9\x51\xc1\x19\x97\x8c\xf8\x28\xf7\x32\x3f\x74\x56\xfc\xc4\xe1\xf9\x59\x2c\xa6\xf3\xb3\x39\xe3\x20\xa5\x1d\xc8\x1d\x55\x83\x52\x25\xce\xb8\x95\xe8\x85\x7f\x7f\x6b\x9d\xe9\x37\xf9\x6b\xce\x7a\xce\x99\x88\xb9\x93\x6c\x6c\x9e\x30\x46\x88\xfd\x3d\x2d\xcd\x70\x8d\xc3\x98\x4c\xfd\x1a\xa5\x4c\x2b\xd9\xa0\xde\x09\xee\xdb\xdd\x56\xc9\x59\x98\xc5\x10\x79\x29\xdf\xcb\xe8\x33\x67\x21\xb0\x8c\x18\x49\x8d\xd9\xc3\xfa\xad\x44\x70\x49\x47\x2b\xc7\x59\xc4\x62\xdb\x93\x91\x8c\xe2\x3c\xc3\x51\x80\x35\xc7\xb8\xf9\x5b\x74\x5f\x6f\x17\xc7\xe3\x68\x39\xe5\x2c\x02\x8b\x09\xc2\x2d\xc2\xc5\x9b\x4a\xba\x95\x66\x22\x42\x3c\xf9\x66\x71\x00\x88\xe2\xa6\xdd\xf2\x1b\xca\x67\xdc\x4e\x31\xa4\x9c\x25\x5c\xe3\x2e\xb7\x6c\x87\x70\xed\xe1\x37\x73\x50\x4b\xce\x12\x1d\x20\xe5\x17\x46\xaf\x97\x65\x61\xf3\xea\xd0\xa3\xa6\x7d\x23\x48\x12\x3d\x28\xa1\x9b\x91\x1c\x6c\x5b\x59\x89\x45\xa5\xcd\x5b\x5e\x51\xd2\xbc\xdf\xcf\xbb\x2e\xcc\x24\x43\x6a\x33\xa2\x92\x26\xfe\xa6\x29\xc4\x0e\xd1\x1a\x99\x98\x90\xc8\xf4\x20\x8b\xb9\x89\xce\x99\x84\x84\x0a\x04\xdf\x40\xbf\xbf\x82\x85\xaa\xf2\x09\x7e\xff\xb2\x2a\xb2\x84\x3e\x40\x47\x5d\xee\x6f\xa1\xc8\xaf\x64\x17\x39\x53\xa9\x8c\x7b\xf9\x4c\x4f\x74\x7b\xb7\x97\x3b\xff\x2e\x3a\x4c\x90\x5e\xbc\x7d\x8e\x59\xa1\xde\xc9\x13\x6a\x80\x98\xd8\x3f\xf2\xdd\x5b\x83\x0b\xbf\xb3\xc3\xc7\x77\x36\x41\x84\x4b\x96\x3a\x9d\xa9\xf4\x6e\x7c\x19\x93\x01\x56\x2f\x39\x2d\xa3\x6b\xb1\x8c\xf9\xb7\x32\x3a\x41\xa3\xc3\xb8\x22\xbb\x6e\x01\x0c\xfc\x64\x36\xb6\xe3\xae\x77\x1e\xe6\xc3\xed\xe4\x09\x6c\x4a\xc3\xfb\xb3\x2b\x58\xb1\x5d\x8e\x84\x33\x6b\xe2\x88\x1c\xd0\x1b\x70\xe4\x17\x74\x84\x33\x26\x30\xcf\x46\xf3\x07\xd1\xae\xc3\x49\xcf\x99\x30\x18\xff\x32\xf0\xf1\x2a\x9b\xbc\xec\xce\x0b\x22\x24\x8a\xc0\xb5\x70\x4b\xa4\x2d\x73\x5b\xb1\x63\x38\x6a\x3f\x1e\xf7\x1a\x83\x6e\x69\xeb\xf4\x7e\x07\xbe\x35\xe7\x3c\x02\x84\x69\x6a\xda\x16\xfa\x10\x1f\xe7\x5c\x1b\xe1\x50\x72\x37\xa7\xf3\x2b\x92\x0b\x8c\xbb\x81\x8b\x28\xcc\xba\xf2\x61\x03\x53\xae\x38\xce\x85\xe2\xbe\x7a\xe4\xe6\xe4\x02\x31\xb3\x83\x97\x07\x71\x82\xf1\x69\x84\x31\x4f\x6e\x13\x80\x41\x75\x97\xdf\x57\xaf\x5f\x57\x8f\xdb\xc5\xcb\xcb\xf6\xe1\xd6\x3f\x66\x60\x05\xda\x41\x5b\x69\xb0\x76\x7a\x76\xe1\xe0\x61\xca\x11\x8a\x75\xb7\x58\x6e\x9e\x5f\xb7\xd9\x6f\xdd\xef\x11\xe6\xd1\xf2\x02\x99\xf8\x4f\x72\xbf\xd5\x3e\x3a\xcf\x79\x98\x11\x85\xf3\xce\x29\x20\x4c\x9e\x2b\xb4\x1a\xa8\xe0\x10\x64\xe5\x62\x1b\xee\x50\xac\x15\x16\x8e\x7d\xff\xfe\xb5\xb7\x16\x39\x8f\x6d\x1c\xb8\xe4\xd5\xdd\xa9\x20\x12\x74\xf8\x80\xe2\x92\xa3\x85\xf3\x44\x04\x60\x7c\x65\x75\x7e\xf4\x64\x4b\xb3\x33\x8b\xa7\x8c\xb2\x3f\x40\xb5\xbd\xbf\x9f\x35\x45\x84\xc6\xbd\x90\x06\x19\x09\x87\x9c\xea\x37\x54\xcb\xdc\x97\xe5\x68\xab\xe2\x69\x18\x64\x3d\x31\x0c\x95\xaa\xdf\x82\x34\x7d\x5d\x1e\xe7\x69\x92\x62\x74\x55\x1a\x67\xb4\x8d\x1f\x25\xe3\xdc\xcb\x13\x51\x5c\xab\x1d\x7c\xb3\x8a\x24\x6d\xe3\x98\x73\x37\x82\xda\x2d\x1b\x01\xf3\x77\xcb\xbb\xc1\xae\xc5\xb3\x58\x6b\x22\x50\x3e\x55\xed\x08\x2b\x2e\x62\xa2\x7e\x1b\xe6\x59\x96\x26\x9e\xf5\xd4\x97\x37\x2c\xdb\xd5\x70\xba\x54\xf3\x0c\x52\x5c\x05\xf2\xa2\x9d\x8a\x35\xcc\xe4\x84\x39\x97\xdc\x42\x36\x10\x69\xa8\x6f\x4e\x3d\x5d\x12\xe7\x32\x09\x85\x7b\xf6\xaf\xf0\xb9\x68\x5c\x11\x6b\x3d\xc3\xba\xc4\xb9\x0a\x98\x4c\xba\x2f\x6f\x64\x95\x4b\x47\xe6\x3c\x1b\x2d\xe2\x5c\xc5\x01\x96\xe8\xb5\xc3\xe7\x28\xab\xf7\x41\x28\x87\x73\x95\x08\x1d\x50\xd0\xad\xfd\x7a\x53\x88\xf4\xa5\x4e\x4a\x7b\x8e\x8e\x70\x0a\xfc\x91\x2b\x18\x8e\x49\x6d\x33\xcf\x51\xf7\x50\x34\xb0\x83\xea\x0f\x79\xda\x4f\x3f\x94\x49\x44\xc8\x47\x5f\xa1\x1b\xeb\x26\xe5\x28\x81\xbf\xc3\x7e\xe8\x7f\x96\x01\xbe\xf1\xb1\x3c\x22\x33\x0b\x06\x88\xab\x4a\x9e\x27\x3e\x30\xe7\x90\x04\xc8\x4d\xb3\x6e\x7d\xb9\x5c\xd6\xd3\x0a\x06\xdf\x4c\x2a\x64\x52\xa0\xcd\x9f\x70\xce\xd7\xf3\x23\xbf\xcc\x8e\x70\x6e\x95\x44\x1f\xf2\xeb\x6a\xf3\xe4\x9e\x5a\x30\x45\x65\x94\x8b\x63\xb9\xdf\x97\x6b\x38\x36\xd0\x6f\xbc\xab\x1f\x0d\x20\x95\xc8\xec\xd6\x22\x84\x48\x10\x10\xb3\x79\x58\xbd\x06\x84\xef\xf1\x97\x15\x81\x44\x18\x03\x0a\xa0\xf5\x42\x15\x7c\x7b\xd7\x85\x52\xb9\x08\xa4\x41\xeb\xc6\x55\x8f\x78\xee\x20\xaa\x0a\xfc\x5a\x76\xcd\xb4\x41\x58\x8e\x01\x9d\x1b\x58\x1f\xf7\x33\x9c\xa7\xc3\xb1\x27\x02\x88\x89\x47\xa9\xdc\x11\xff\xc4\x95\x45\x58\x04\x60\xbd\xa0\xef\xd7\xd3\x01\xf5\x38\xb0\x7a\xa5\xdb\xc0\x44\x60\x5d\xd1\x2c\x34\xab\xc3\x71\x5f\x9e\x01\x2e\x34\x21\x39\x17\x61\x22\xb0\x7a\xdf\x95\xcf\x57\x15\x02\x1e\xee\x00\x5e\x41\xe7\xc7\xa1\xf8\x8a\x3f\x41\xb3\xc8\xd3\x6d\x97\xbb\xc9\x92\x22\x42\xc8\xc0\x95\x16\xda\x52\x9f\x6a\x2d\x2b\x73\x1d\x2a\xef\x4e\x8a\x05\x67\x51\x77\xc9\x9f\x7a\x96\x5c\xc4\x0e\x3c\x5b\x93\xa4\xe7\x7f\xe1\xae\x5d\x18\x2b\x18\xea\x3a\x5d\xb9\x4f\xa2\x20\x4b\x5c\x3d\x01\x52\x2b\x3e\xca\xba\x59\x7c\x40\x25\x3b\xa1\x07\xdf\x7b\x69\x42\x1a\xcc\x79\x8d\x43\xaa\xe7\xd1\xe0\x22\x55\x51\xd6\x41\xd6\xd1\x76\x14\x38\x6b\x3a\xa5\x91\xb6\x09\xd1\x0b\xd3\x6e\x84\xe4\xc7\x7e\xe9\x18\x3f\x51\x16\x32\x9b\x39\xb9\x2e\x62\x1a\x9a\x2c\x7f\x22\xb3\x31\x06\x33\xd6\x9b\xc5\xef\xab\xed\x7a\xb3\x78\xdd\x6c\x37\x0f\x4f\x2b\x7f\x2b\xc9\x33\xf4\x67\x56\x05\x71\xa1\x4d\x4e\x57\x81\xc6\x94\xf3\xd3\xe9\xc7\x10\x81\xc4\x85\x0a\x43\x54\xfa\xde\xca\xe3\x11\x0a\xb3\x91\xbb\x1d\x98\xeb\xa4\x36\xed\x09\x54\xbb\xad\x1a\x5d\x0d\x2d\x25\xa1\x13\x86\xd9\xb9\x27\x59\x9c\x5a\x3b\x95\x64\xf4\xfc\x41\xcd\x30\x68\x86\xe2\x78\xcb\xd7\x67\xff\xbb\x71\xa1\x7d\x4c\xba\xd8\x1b\xb9\x5f\x43\x4f\xcc\xcb\x85\x49\x62\xae\x5d\xc4\x11\xb9\x83\x1c\x5a\x6f\x8c\x1e\xf4\x8d\x4d\x88\xbd\x8d\x62\x6f\xa4\x5e\x48\xbc\xcc\xee\x38\x04\xa4\xa3\xec\x61\xf5\x58\x71\x3d\xfe\x0e\x10\x32\xe5\x7c\xdd\x2e\xff\xb2\xda\x7c\xb9\x32\xf9\x40\x92\x66\x70\x47\x4a\xe9\x35\xb0\x26\x9d\x0f\x26\xb0\x91\x53\xbb\x68\xbe\x43\x3e\x17\x31\xe6\xc2\x46\x80\x26\xb4\xcb\xbc\x8c\xea\xc1\xe7\xef\x6f\x55\xa2\xb3\xce\x65\x73\x68\xa9\xbc\xd8\x0d\xf6\x62\x61\x15\x64\xc3\x9a\x4c\x47\x92\x3c\x28\x0d\xa1\x86\x01\x13\x29\x4f\x7d\x08\xc9\xce\xc6\x76\x7c\xcb\xd4\xc4\x3e\xac\xf8\x28\x8b\xa1\xf0\x88\x6b\x21\x2c\x15\x89\x6d\x4f\x4d\x49\x61\x51\xe7\xce\x04\x41\x14\xc8\xb4\x27\x51\x86\xe1\x1e\x3e\x6f\xfe\x07\x81\x4d\x33\xd3\x11\xf0\xde\x57\xe5\xe7\x40\x8d\xcf\xb5\x09\x99\x16\x6e\x43\x5b\xdd\x6f\x50\xdb\x65\x28\x83\xc3\x83\x50\x50\xc4\xdf\xd5\xaa\x60\x00\x28\x2f\xab\xbc\x19\x92\xb2\xce\xa0\x6c\x7e\x06\xef\x4d\x67\x19\xd3\x79\x10\x66\xe4\x85\xb9\x68\xfc\x16\x3a\x3f\x23\x08\x55\x82\xe6\x29\x1c\x8e\xcd\xf9\xa6\x34\x63\xc4\x3f\x0f\xa2\x28\x4a\xfd\xf8\x6b\xbd\xcd\xc7\xfc\x30\xb5\xad\x83\x48\x05\x18\x4f\xf6\x69\x4d\x64\x0e\x29\xe4\x9e\xa2\x76\x7e\xb4\x07\x71\x28\x7c\xae\xd7\xf9\xc8\x38\x25\x96\x17\xc4\x49\xad\x21\xaf\x04\x45\x44\xeb\xa6\x2a\xcf\x9d\xbd\x14\xc4\x52\x12\x2e\xa8\xd4\xef\xc8\x87\xfb\x01\xe4\x70\x8c\x9f\x28\x65\x0c\x67\xe9\x1e\x8a\xdd\x5b\x03\xc5\x5d\x55\xfe\x17\x0a\xb4\x0c\xe7\x8d\xdf\x20\xcb\x18\x8e\xf5\x97\xd7\x87\xe5\x6a\xfb\xf4\xed\x71\xf3\xf0\xf2\xf8\xb0\x7a\xf5\x37\xce\x64\x10\x0d\xf4\xf2\xee\xca\x6a\x4c\xea\xcf\x03\x99\x02\x6e\x7c\x77\xf9\xde\xef\xc6\x81\x12\x40\x8c\x79\x27\x84\xe2\xa2\x83\x37\x1e\x4b\x2a\xd2\x7d\x2d\xef\x68\x8c\xfb\x06\x2a\x25\x89\x8a\x0f\x28\x9a\x9f\xb2\x54\x76\xbd\xa7\x23\xca\xba\xae\x0f\xb2\x6a\x6e\xf2\xfd\x3e\x2f\xbb\x35\x27\xd0\x92\xa8\xcf\x9a\xbc\xed\xc1\x99\x08\x4e\xa0\x21\x44\x66\x0a\x02\xd6\xdc\xe4\x86\x98\xdf\xdd\x51\xc3\x33\x5c\x54\x7b\x32\xa7\xfa\xae\xac\xda\x6d\xe8\xf6\xd4\x2e\xca\x0f\xcb\xe7\xb0\x6b\x1b\x08\xa4\x57\xd8\x74\x06\x9f\xb7\x32\xc7\x9d\x6f\x1c\xa5\x74\xeb\x0d\xb4\xe3\xc0\x6b\x22\x8f\xc9\xe6\x2f\x0a\xb6\x86\xbb\x40\x00\x82\xc0\xff\x1f\x65\x97\xfd\xf0\x47\x22\x85\x82\xdc\x46\x9e\x37\xe5\x20\x8c\x12\x40\xac\x68\xd9\xc8\x8f\xf5\xc2\x98\x4d\xf9\x08\x66\xe7\xe3\x36\x82\x4d\x66\x3d\x64\x06\xd1\xc4\xb7\xf9\x2e\x6f\xe4\xfe\x77\x38\x0f\x2c\xe0\x00\x1c\x06\x59\xee\x73\x4d\x54\x21\xb5\xa7\xf0\x9f\x15\x57\xbd\x7c\x1d\xba\x50\xc8\x98\x49\x49\x54\x21\xff\xd8\x5a\x59\x37\xf7\x6e\xe6\x7d\x91\xf5\xdb\x76\x3b\x43\x25\xc0\x43\x6e\x12\xd3\x9e\xf3\xed\xf5\xc1\x3d\x4f\x28\x98\xc5\x4a\xf6\xa7\x7f\x3d\x7c\x7d\xd8\x3c\x2c\x1e\x87\xb5\x37\x3c\x14\x21\xe0\x94\xed\xb8\x0b\x71\xce\x5a\xa9\xc7\xce\x77\x28\x52\x8d\x91\xd8\xdb\xcd\x9f\x97\x51\x56\x1e\x0a\x13\x22\x57\x73\x7d\x6c\x5d\xaa\x53\x61\xfc\x30\x0b\x83\x34\x42\x43\x7b\xd1\x2e\xde\x9f\xc3\x20\xdf\x2c\x31\xe8\x68\x3c\x84\x81\x66\x34\xfd\xa9\x5c\xec\x61\xf9\xbc\xfe\x94\xc7\x47\x2f\xe4\xcc\x79\x18\xa6\x12\x47\x71\xad\x4f\x4d\xd3\x59\x40\xc8\x1f\xe0\xb2\x0e\x53\x31\x0d\x1e\x46\x52\x20\xc9\xde\x68\xb7\x1d\xd7\x2b\xcc\x62\x5a\xd2\xee\xfc\x30\xd3\x03\x45\xaf\x4d\x75\x72\x25\x3e\xfe\xf6\x31\x23\xb1\xf9\x1a\x9a\x76\x00\x6e\xc7\x80\x12\x1e\xc6\x3c\x46\xf8\xc9\xf1\x54\xbf\xbd\xca\x06\x5e\xf6\xf2\x22\x8c\xdb\xad\xe0\xdd\x84\x0c\xe3\x80\x61\xf9\xc8\xe2\xf6\x8f\x87\xf5\xf3\xeb\x7a\x8b\xcc\x57\xeb\xed\xf8\x93\xc6\x81\x64\xbc\x0b\x39\x1d\x8e\x1d\x10\x84\x87\x71\xcc\x31\x95\xfd\x52\x41\x53\x56\xb9\x9c\x17\xa2\xf0\x8d\x13\x33\xa1\xd6\xf8\x56\x5f\x49\x0c\xf0\x30\xe1\xc4\xe1\x84\x06\x72\xb1\xbb\xef\xe2\x1e\x61\xc2\x49\x6a\x9b\x34\xed\x5e\xa0\xc2\x34\xb8\xe8\x0e\x2b\x8e\xe0\xaf\x27\xa8\xb4\x6c\x4e\xf5\x2d\x78\x99\x59\xce\xc3\xd4\x64\x98\x8f\xed\x85\x04\xcd\xab\x6c\x72\x7b\xee\x1b\x38\x57\x08\x6d\x58\xf8\x5e\xe5\x4d\x33\xe0\x63\x1d\xbd\x4f\x96\x68\x84\x16\xbf\xec\xe5\x79\xf9\x26\x8f\x43\x63\x33\xcc\x14\x15\x29\xbd\x90\x4a\x8e\xcf\xe3\x8c\x47\x79\x66\x93\x80\x18\x96\x8f\x52\xbf\xf7\x71\x16\x1f\x29\x0b\x55\x68\x71\xbb\x79\x2b\x3f\x9f\x64\x71\xbe\x3f\xc9\x4a\x16\x0d\x74\x56\x63\xa8\x80\x88\x9f\x3b\x31\x36\x5a\x38\x6d\x97\xf5\x71\xed\x0c\x73\x18\x79\x59\xbd\x7f\x29\x4f\xd5\x45\x2e\x61\x3c\xef\x4d\x90\xe2\x24\x2b\xca\x66\xf5\x43\x03\xb4\xaf\x40\xa4\xfe\xc7\xc9\xc8\x33\x71\xa6\x5c\x54\x63\xf9\xfa\x28\xa7\x8c\x55\x3c\x34\xa9\x02\x57\x48\xf8\x15\x3e\x2f\xf4\x5c\xdb\x16\x32\x80\xc0\xa1\xab\xbf\xe7\xcd\x1b\x6e\x48\x57\x86\x85\x01\x16\x79\x95\x51\xc2\x72\xb4\x5e\x5b\x59\x99\x7a\x1a\x6f\x09\x21\x4c\xd1\x81\xd6\x65\xd1\xba\x95\xa7\xbd\x24\x59\x65\xf8\xd1\x4d\x2b\x88\x55\xe0\xe2\x1e\xb7\xd0\xfa\x04\x50\xe8\x7c\xa6\x8c\xe3\x17\x7f\xdd\xd5\x2c\x03\x64\x78\xa1\x2a\x36\xbf\x57\x85\x36\x23\x6a\xbc\xa3\x3c\x5f\xac\xd8\xa3\x45\x82\xda\x47\x2c\xce\xb0\xcc\x02\x99\xa0\xdd\xf7\x1c\x16\x67\xb7\x2d\x0c\xea\x95\xd8\xb2\xda\xe5\x1f\xb0\x79\xcb\x27\x7b\x7b\xc4\x03\x25\x9d\x71\xb5\xd9\x7c\x1f\xa5\xba\xc6\x0d\x23\x21\x90\x7e\xf8\x4b\x69\x2e\x44\x07\x7d\x13\xc3\x70\x42\xf5\x18\xaa\x3e\xe7\x12\x45\x36\xc6\xa5\x0f\x03\xec\x37\x48\x97\x5c\x35\x57\xd4\x0f\x78\x14\x07\x0a\xa1\x07\x2b\x7a\x22\xb2\xfe\xfd\xa5\xe2\xd8\x98\xa4\xe7\x05\x7b\x92\x3f\xba\x23\x89\xcd\x22\x47\x8c\xd6\xee\xf6\x7f\xca\xd9\x77\x49\xb2\xc0\x84\x54\x43\xba\x6c\xf7\xb5\x83\xec\x6a\x0a\x78\x94\xf2\x14\x63\xce\x79\xdd\x4e\x0c\x5d\x12\x3a\xa7\x3b\x9a\x09\xc4\x6c\x6e\x29\xf6\x4d\x94\xc6\xb3\x5f\x39\x4a\x6d\x9c\xc5\x3d\xe0\x4b\x56\x55\x2e\x77\x70\x31\x9d\xae\x60\x14\xdd\x45\xb2\x24\xd6\xa1\xe7\x00\xe0\xfe\x29\x32\x1b\x8c\x1c\x18\x97\x57\x39\x1d\xf3\x6b\xcb\x64\x94\x59\x12\x49\xcb\xeb\xc5\x7c\xf6\x2d\x92\x61\x00\x59\x07\x02\x6b\x3d\x01\x17\x9c\x9a\xcc\x97\x48\x25\xa4\xbb\x5e\x43\xf3\xfc\x01\x95\xf3\xdc\xd0\x2c\xff\x52\xee\xcd\x5c\x49\x08\x8f\x94\x09\x1c\xc1\xdc\x5f\xa0\x9b\x1e\xf2\xe1\x51\x28\x9e\x69\xbf\x6d\x69\x21\xe9\xe2\x47\xfa\xfc\x24\x8f\x93\x27\xd5\x10\x04\xc2\x15\xac\xe1\xef\xce\x67\x1a\xb7\x82\x20\xf3\xa4\x75\xe8\xfc\x68\x8f\xb3\xf3\xc7\xb3\xc0\x97\x58\x7d\xa3\x37\x7c\xea\x8c\xa9\x08\xb4\x46\x0b\xb4\x1d\x63\x8e\x34\xa7\x57\x44\xc7\xe3\x10\xea\x61\x7e\x78\x96\x6f\xc4\x35\xb6\x82\x14\x44\x48\xe1\xf4\xe6\x74\x86\x8a\x9c\x98\xf1\x03\x5b\x41\xcc\x32\xdd\x7e\xd5\xb1\x01\xf3\xc8\xc6\x09\x8e\x6c\x8d\xb9\xc0\x9e\x9d\x84\x47\xd6\x30\x8c\x16\x63\x1e\xda\x53\xd1\xff\xbd\x44\x3c\x8f\x99\x4c\x99\xb3\x56\xbe\xe7\xc5\x06\x0d\xf2\x2b\xc1\xf9\x98\xa9\x0c\xb5\x75\x3b\x5c\xfb\x8b\x3c\x57\xe5\x7e\xff\x7a\x2a\x3e\xe5\xd9\xb1\x1f\xf9\xde\x8d\x39\xd3\x22\x22\xb2\xb4\xee\xa7\x20\x04\x12\x5d\xab\xdf\xfb\xdf\x2c\xba\xeb\xbb\xd2\xdc\xc8\xa2\xff\x39\xe3\x88\xd2\xd9\xc9\x06\x3e\xbb\xd8\x51\xcc\x65\xa4\xd3\x2e\xae\xff\x74\xfe\x52\xd4\x73\x48\x11\x1e\x73\x23\xd0\x7c\xeb\xd1\x41\x0d\x3c\xd4\x28\xec\x3d\x35\xfd\x63\x21\x42\x1c\x27\x7b\x59\x37\x9b\xcf\x72\x71\x50\xb2\xae\xa5\x29\xab\x76\x74\x75\x1b\x68\x1c\x0a\x8e\x51\x99\x23\xe5\x3a\x57\x07\xa8\xe4\x50\x8f\x72\x7c\xd1\x10\x38\x77\x83\xcf\x27\x6e\x7d\x81\xed\x30\x53\x11\x47\x82\x63\xaa\xec\x6b\x89\xd5\x51\x97\xfc\x9f\x93\x17\x8b\x0c\x55\xa4\xb6\xe3\x0e\xe4\x01\x79\x29\xdc\xa1\x38\x09\x82\xc8\x2f\x15\xaf\xd0\x54\x39\x7c\x74\x99\x76\x74\x77\x77\x81\x6f\x9b\x80\xc6\xcd\x98\xa2\x24\x23\x0b\x20\x4e\x93\x44\xf7\x9a\x4e\x4e\xa6\xa5\x17\x9a\x74\xad\x64\x6c\x11\xb6\x3b\x20\xd7\x4c\x86\xe4\x9a\x3c\x96\xa9\x20\x62\x80\xbc\x5d\x9f\x8e\x9b\x4a\xea\x77\xa8\xb6\xfe\xb0\x8a\xa2\x58\xf9\xc8\x14\x54\xbc\xfb\x3d\x91\x32\xeb\x73\x29\xf7\xb9\x6d\x9e\x0b\x0d\x33\xf2\x55\x3c\xd6\x41\x88\xfc\xa6\xdb\x1e\x68\x44\x24\x1b\x93\x87\xd5\x31\x69\x80\x53\xcc\xd1\xe6\xcd\xa5\xde\x18\x8f\x75\x26\x54\xe2\x91\x7c\xfa\x62\x3a\xa7\xff\xb8\x4c\x45\xc5\x26\x25\xe5\x3f\x24\x12\x23\xd3\xed\x70\x11\x16\x8e\x21\x4d\x44\x3c\xac\xca\xbb\x95\x8e\x47\x9c\x40\x9f\x03\xad\x42\xdf\x0b\x20\x33\xd6\x43\x14\x56\x9b\x2f\x4b\x59\x19\xa7\x99\x92\x2b\x97\xd7\x18\xd6\xe6\xfe\x2a\x30\xd3\x77\x9a\x55\xc2\x2f\xdf\x9b\xce\x32\xde\x7c\x99\x74\xad\x05\xe2\x6e\x5a\xee\xf3\xe3\x11\xaa\x39\x45\x8b\xcb\xf5\x24\x61\xa1\x8d\x5c\xc2\xbf\xdd\x9a\x1f\xfb\x9d\x33\x61\x32\x41\x36\xc6\xcf\x6e\xc1\x5f\x96\xe5\x9e\xb2\x6a\xb9\x17\xb9\xe4\x09\x8f\x02\x4c\x5b\x2f\xcb\xea\x88\x37\x9d\x9d\x5f\x09\x8f\xb4\x97\xad\xc4\x90\x45\xeb\xcb\xdc\x95\x0e\x76\x71\x83\x30\x89\xc9\x09\x49\x84\xbe\xc9\xc3\xea\xee\xe6\x95\x87\x93\x60\x59\xc2\x33\xe3\x37\x8b\x2e\x4f\x52\xdf\x95\xd5\xd0\xf1\x70\x4d\x45\x0a\x9a\x96\xe9\xdf\xaf\x54\xd4\xf0\x24\x10\xa9\xca\x9c\x10\x65\x6e\x28\xeb\x7c\x85\xfc\x67\x70\x52\x62\x12\x37\x4a\xef\x2a\x80\x41\x16\x3b\x09\xd2\x04\xe7\xb6\x2a\x94\xdf\x30\x57\xae\xf0\xc7\xb7\xd0\x12\xc5\x9e\x97\xb2\x7e\xbb\x91\x7a\x94\x68\x4b\xc2\x18\x7c\x09\xe0\xfa\x28\x35\xd4\x6f\xf9\xd1\x69\x6e\x0d\x57\xa3\x24\xd4\x52\x74\x8a\xe6\x8f\x65\x5d\x0f\xe3\x2e\x49\x14\x12\x83\x61\xbb\x50\xbe\xc8\x0a\x0a\x8a\x0a\xf8\xc3\xb1\x60\x51\x07\xf5\xf9\xe1\xd0\x25\xff\x3c\x95\x3d\x08\xd4\x35\x4c\x44\x82\x0d\xff\x7d\x8d\x09\x77\xd2\x2f\x49\x10\x21\x5c\xe7\x2b\x7c\xfe\xb3\xbd\xe6\x9c\x02\x20\x4f\x92\x38\x8c\x54\x57\x40\xf6\x31\x6f\xe4\x24\x49\x9c\xa0\x21\x4f\x99\x0b\x14\xba\xfd\xc5\xcd\x13\x12\xf0\x26\xc9\xfd\xa1\x0d\x90\x24\x69\x26\x3c\xe7\x18\xd9\x40\x37\xe7\xc5\x8c\xbd\x99\x24\x46\xe3\xd6\x51\x9c\xf6\xfb\x3b\x39\x0d\x72\x27\x29\x23\xb7\xe6\xf9\xfb\xd7\x2e\xda\x97\xa4\x8c\x7c\x69\xa8\xb4\x60\x4d\xd7\xc9\x69\xa6\x90\x06\xa7\xf8\x4b\x8d\xbe\x70\x6a\x29\x2d\x7a\x52\xb9\x6c\x64\xd5\x7a\x9a\xa3\x67\xcd\x78\x10\xa7\x1d\xf4\xc7\x55\x33\x3e\xe8\x92\xf0\x2e\xbe\x51\x42\x40\x18\x8c\xf4\xd7\xf0\x52\xc1\x21\x3f\x1d\x26\x5f\x2f\xd3\x16\xf3\xa4\xfb\xf2\x13\xfd\x69\x9c\x7e\xa3\x71\x22\x99\x24\x8e\xa6\xb2\x3e\x94\xa3\xa7\x94\x61\x28\x9c\xb7\xf1\xf0\xb0\x5d\x4f\xae\x2c\x23\x85\x01\xa3\xcb\xe2\x73\x9e\x28\x9e\x61\x4c\xaa\x2e\xf7\x0e\xa5\x4c\x16\x94\x3f\x1c\x26\x8c\x0c\x7f\xfa\xe8\xe3\xa1\xa1\xe2\x48\x90\xc6\xc6\xa7\xac\x4c\x5e\x34\x50\x7d\x74\xf6\x66\xa2\x25\x60\x18\x1c\x4c\x4e\x5e\x09\xa2\x86\x7b\x94\xdc\xc4\xfc\x4d\x4c\x48\xd4\x95\xc8\xd0\x61\x5c\xa8\xde\xab\xa1\xf2\xc4\xa4\xc2\xc4\xce\xb9\xc3\xc9\xe5\x77\xb6\xc4\x64\xa1\xa3\x23\xe9\xa4\x02\x86\x74\x24\x3c\x31\x46\x62\xc6\xeb\x13\x72\x02\xdc\x3c\x14\xa3\xad\x39\x31\x20\x30\x9b\x73\x1c\xc1\x8d\x26\x23\xd6\x58\x0a\x43\xfa\x85\x76\x9c\x75\x4a\x20\x16\x3e\xff\x86\x29\x3e\xd2\x5b\xaf\x1d\xbe\xe6\x26\xef\x46\x83\x75\x12\x4d\x4e\xec\xfd\xdf\x3f\x2e\x75\x1d\x79\xca\x92\x94\xbe\x0b\xc8\x4a\xbf\x39\xdd\x39\x7f\xcc\xc4\xb8\xa6\xb6\xa7\xef\xef\xba\x04\x14\xee\xbd\x5f\x4f\x07\xd2\x2a\xeb\x1a\xdb\x34\xe8\xf9\x67\xee\x9e\x5e\x3c\xbb\xe8\xac\x3b\x9a\xf2\x40\x84\x3d\xad\x46\x35\x3d\x1a\x05\xe8\xac\x22\x29\x72\x6b\x27\x2d\xcc\x47\x5e\x97\xd5\x28\xff\x91\x72\x19\x12\x3f\x30\xfa\xcf\x88\x7c\xe9\xd0\x22\x93\xfd\x21\x15\x42\xa3\x71\xf0\x6d\xf3\xf2\xd8\xfd\x16\x98\x10\xe7\xed\x92\xa0\x8d\xfd\xef\x40\xb8\x79\xba\xe9\x80\x6b\xc4\x37\xd0\x49\x16\x77\x34\xbd\x79\xbd\x35\xdd\xc6\x9f\x06\x5c\xe0\x5a\xd1\x40\xdd\xdc\xc9\x7c\xff\x72\xda\xef\xbf\xbf\x41\x31\xd2\xd3\xe3\x69\x10\x0a\x1c\xb4\x34\x9f\xbb\xc2\xeb\xd6\x11\xec\x09\xf1\x27\x76\x81\x1f\xc1\x69\x18\x4a\xd9\x4b\x54\x8b\x4e\xa2\x9a\xa7\x11\x57\xb8\x34\xdf\x3c\x2f\x5e\x6f\xb7\x41\xf7\x73\x02\xe8\x71\xd7\x47\x28\xcc\xc2\x7c\x40\xd5\xe4\xb5\x67\x13\xbf\x58\x33\xd3\x48\xc6\xca\x79\x92\x37\x37\x77\xb2\x3a\x0c\xd3\x5d\x69\x1c\x86\x08\xbc\x79\xfe\x71\xd3\xe8\x5b\xb8\x54\xd7\xff\x5b\x66\x4c\x1a\x47\x24\x8a\xfc\x67\x5e\xfc\x99\xcb\xe2\x3a\xa5\x7a\xdb\x34\x66\x30\x80\xc9\xac\x9a\x37\x07\x68\x1b\xb7\x4b\x02\x40\xcf\x73\x0d\xcd\x7d\xbb\xd1\x5c\x04\x70\xd3\x24\x24\x9f\x92\x86\x9d\x1f\x24\x97\x59\x1d\xff\xae\x49\x1c\xe2\x8a\xda\x7e\xcd\x87\xa2\x6e\x64\x6f\xc2\x76\x48\xbd\x34\x49\x03\x84\x19\x3c\x50\xac\x71\x84\x6b\x9f\x7f\xa1\xc4\x50\xbe\xf9\xa3\x6c\xa0\x87\x54\xa4\x29\x4f\x31\xfb\x5e\x37\x65\x05\x6b\x2c\x17\x19\x4c\xc7\xd4\x4d\x99\x76\x09\x5d\x7e\x5f\xce\x57\x5f\xf9\x35\x33\x4d\x03\x1d\x1b\x47\x0b\xb0\x7d\xf3\xe4\x81\x3f\x01\x26\x5e\xf9\x4c\x69\xac\x30\xd6\xf2\x91\xc3\x67\x10\xfb\x67\xc9\x82\x10\x7d\x0c\x64\x28\xee\xf5\xdd\xfd\x61\xc9\x68\x80\x4a\x83\xd5\x53\xd3\xce\xf8\xf9\x1d\x65\x66\x14\x89\xb7\x7c\x40\x71\x02\x32\xf5\x27\x4d\x24\xa9\x4c\x75\x2a\x02\x48\x20\x36\xee\x00\xc5\x2c\xce\xe2\x5a\x8e\xf4\x67\x79\xaa\x22\x62\xa2\x7b\x2c\x77\xed\xd2\xe2\x5c\x8e\x9e\xe8\xef\xca\x20\xd4\x4a\x63\xad\x2b\x72\x5b\x7e\x6f\x57\xf8\x2e\x0d\x94\x6a\x90\xe8\xee\xb6\x96\xd5\xc2\xfc\x75\xea\x9c\xba\xd4\xc8\xd8\x3a\x9b\xb0\xf5\x86\x7a\x02\xd8\xf1\xc5\x8d\x49\xb1\x2a\x17\x71\x17\x50\x2f\x6c\x03\xd5\x72\x5f\xd6\xd3\x17\x07\x6e\x91\x35\x72\x87\x6c\x12\xb8\x7d\xad\xa1\xca\xbb\xcd\x30\x85\x80\xab\xc4\xdb\xd5\x55\x85\x12\x88\x57\x75\xdf\x78\xc6\x22\x8e\xa3\xe4\x9e\x34\x9a\xe7\xd7\x83\x8c\xc5\x61\x42\x7c\x7a\x67\xa8\x3c\xe1\xfb\xdf\xfa\x98\x19\x8f\x35\x4e\xc9\x76\x95\x7b\xd0\xe5\x84\x22\x65\xb6\xa7\xb3\x20\x00\x1c\xe8\xf8\x4d\x0e\xa7\xe6\x12\xe9\xf4\x8b\x9b\x06\x89\xd6\xc6\x7b\xd2\xdf\x88\xb8\xa9\x35\x0c\xbc\xfc\xc0\x95\xb3\x20\x48\x3d\x21\x2e\x01\x05\x83\xf9\xa1\x90\x85\x60\xb0\xda\xe6\x28\xcf\xa8\x53\xdd\x4f\xd2\x2c\x12\x01\xb1\x90\x14\xaf\x54\x8b\xef\x7e\x8f\x19\x89\x4b\x16\xf0\xb9\x3c\xeb\x7d\xff\xbb\x20\xab\xd7\x4b\xe0\xdd\x3e\x7c\xed\x0e\x85\x59\xe0\x42\x54\xff\x53\x2a\xbf\x56\xd5\x73\xeb\x54\x16\xc7\x19\x0e\xce\x7b\x2c\x44\xcc\x8f\xf7\x79\x63\xbb\xeb\x18\x30\xd2\x63\x0d\xba\x01\x7f\xe5\xd5\x62\xab\x62\x36\x52\xc3\xd8\x94\x2f\x08\x03\x29\xcb\xfd\x4f\x72\x3e\x59\x12\x64\xd6\xba\xa4\xa3\x6c\xb0\xd4\x64\xd5\x27\xf3\xb2\x2c\x31\x58\xfa\x73\xb3\x58\xaf\xb6\xb7\xdf\x5e\x51\xb5\xc9\x1f\x94\x2e\x2c\x84\x19\xec\x3b\xa7\xf0\x3e\x88\x94\x67\x4a\x08\x5a\x12\x5a\x23\xa4\xa3\x53\xe7\x99\xe6\x5a\x04\x3e\xe2\x86\xd1\xa1\x9f\x8c\x75\xad\x84\xb5\x3d\x4d\x70\xae\x9d\x2c\xde\xc4\x54\xcd\xb4\x02\x34\x00\xab\xc6\x29\x1d\xf4\x66\x44\xa6\x35\xf1\xc3\xd4\xd0\xf8\xa2\x9f\x19\xe5\x4d\x9e\x69\xc8\xd0\xfb\xfe\x70\xc5\x31\xb3\xf4\xe7\x3c\x33\x4c\x23\x34\xe7\xf6\x74\x50\x83\x54\x70\x66\xb2\x04\xc0\x55\x65\x87\xa3\xd2\x95\xf6\x98\xc2\xd2\xd3\xdf\x4f\xa6\xa4\x28\xc4\x88\x2b\x80\x67\xc6\x70\x35\x28\xf8\x41\x3b\x7b\xc4\xd2\xc2\x33\x60\x34\xea\xb0\xc3\x9f\x7a\xbe\xac\x81\xcb\x9a\x41\x44\x72\xa5\x18\xc1\x70\xca\xb6\xdd\x31\x45\xd2\xd2\x3b\xac\x9a\x40\xa4\xc6\xd2\x45\x7b\x5f\xaa\xd2\x95\xb3\xfb\xb6\x5a\x05\x51\x17\x15\x95\x48\x26\xb5\x83\xaf\xbe\xd8\x8c\x67\x00\x21\x06\x77\x94\x6c\x90\x7b\x4d\xc3\xde\x1b\xb5\xd3\xd0\x75\x06\x4e\xaf\xdc\xc8\xca\x27\x0d\x32\xdb\xae\x9f\xb4\x30\x6f\xca\xd6\x7d\xee\x0f\x00\x51\x22\xee\x65\x7e\xe8\xf8\x12\x4f\x3d\x0d\x39\xcf\xac\x70\x75\x73\x5e\xea\x1a\x56\x37\x9b\xe5\x14\x1a\x9a\x59\xa1\x11\x0e\xe1\xe3\xf5\xcb\x19\x3d\xb1\xc9\x44\xb2\x81\x30\xdd\x1a\xf4\x50\xdf\x82\xec\x7a\xdf\xa6\x04\x32\xaf\x4f\xc7\x63\xd9\xa5\x7e\x33\x6b\x80\xc8\xea\xde\xa4\x88\xe2\xd2\xae\x67\xb4\xd8\xa8\xa9\x64\x2c\x40\xcc\x2f\x49\xa4\xf6\x5e\x4c\x77\x7b\xc9\x32\x89\xeb\xae\xcc\xab\xdb\xcb\xe0\x9d\x64\x9a\x63\xf4\xcf\xd4\xff\x39\x0d\xb6\xd7\xf1\x3b\x48\xce\x22\xe2\x06\x46\x05\x9d\x4d\xf9\x15\x7e\xa0\xa2\xd0\x78\xb0\x4b\xce\xe2\xac\x6d\xb6\x7a\x5d\x0a\x11\xfc\xcd\xd0\xb5\xe4\x51\xe0\xb9\x39\x31\x0c\xf1\xf5\x74\x58\xe7\x85\x86\x87\x7e\x9c\x49\xae\x02\x4e\xbc\x00\x87\x83\x2c\xcc\xbd\x0b\x16\x0d\x86\xa9\x0c\x75\x82\x89\x69\x75\x3a\x5f\x41\x75\xca\x48\x26\x88\xde\x38\x76\xf0\xef\x4d\xf9\x7b\xee\x99\xa3\x78\xeb\xb6\x22\x5d\xec\x81\x50\xa9\x14\x14\x99\xb0\x31\xfe\x34\xaa\x2b\x93\x38\x11\xd9\x24\x9f\xf3\x50\xa0\x94\xd2\xb5\xbd\xce\x8f\x2d\x99\x32\xa2\xb1\x76\xc7\x27\xd4\x43\x5c\xa6\x29\x07\xbf\xe4\xc0\xf8\x4b\xf1\xe9\x07\x4b\x53\x40\x37\xfa\x58\x0d\x6b\x90\xb9\x4c\x6d\x88\x4a\x5a\xfb\x76\x65\x76\x72\x84\x7e\x38\xca\x2c\xe5\xd8\x3d\xab\xcd\x97\x41\xf9\x88\xcc\x74\xa0\x85\x63\x17\xbe\x7d\xde\x2c\x27\x01\x46\x99\x59\x8e\xfc\x92\xc5\x28\x44\x20\x65\x02\xc2\x41\x58\x7f\x87\x8f\x7c\x52\xab\x21\xa5\x4d\xd1\x29\xfd\xb2\x7c\x19\x9d\xa6\x38\x11\x88\x7b\xa2\xdc\x4d\x39\x04\xbc\x8d\xaf\xa1\x04\x11\xcc\x7d\x39\x9b\xaa\x6c\x97\x4d\x57\x49\xd9\x5d\x2b\xe0\x58\xb2\x40\xa9\x2a\x0f\x52\x1d\x9b\x87\x52\x0b\xa6\x7b\x41\x3c\xc7\xdd\x3b\xaa\x4a\x91\x46\x49\xe9\x3d\xed\xbc\x6e\x9e\x6d\xcf\x8f\xe5\x5a\x40\xc8\x30\x0c\xef\x1f\xe0\xda\x68\x19\x3f\x3f\xc4\x12\x57\x77\x22\xd5\xf8\x7b\xa7\x40\x40\x42\x3e\x98\x28\x1b\xc6\xfc\xa4\x65\x09\xf4\xba\xb2\x5b\xf8\x98\x48\xfb\x70\x69\x03\x27\xa8\x9c\x0f\x2b\x8d\xfc\xc1\x38\x8a\xc7\x2c\xd4\x63\x1a\x1b\x2e\xad\x95\x91\x2b\xda\x5f\xed\x76\x1b\xe9\xa3\xd7\xdc\xd3\xf0\xfb\xa1\xac\x58\x44\xd4\x09\xed\x7b\x21\x49\x73\x55\x1e\x5b\x57\x13\xae\x60\xe9\x95\x50\x02\x6b\x3c\xef\x5e\x7f\xf7\x69\x07\x15\x44\x54\xd8\xb9\xb8\x5f\x0f\xb6\x44\x15\x3a\x1a\xac\x9e\x99\x4d\xfc\xf6\xf3\xb0\xb9\x3b\x31\x0a\x63\x4b\x10\xad\xaa\x46\x49\xee\x4d\xb7\xff\xfb\x6b\xc7\x41\x46\x0c\x93\xd4\x01\x4e\x99\xb7\xef\x63\x15\x07\x12\x91\x28\xbd\x18\xa8\xc3\xcf\x7c\xfd\xf6\xe4\xc1\xf5\x2a\x61\x0c\xc1\xa6\xaa\x2c\xdf\x31\x76\x5e\x5f\x89\xf0\xa8\x24\x61\xf8\xda\x0f\x87\x76\xfd\xdf\x40\xdd\x2c\xba\x8b\x98\x30\x0d\xfa\xd5\xe0\x5e\xe6\x97\xe6\xb2\x6b\x9a\xda\x8c\x94\x58\xe5\x19\xfd\x85\x49\x81\x8c\xca\x92\x00\xab\x9e\x06\x29\xb4\x2e\x34\xbe\x86\x3d\x72\x5b\x4c\x77\x3a\x95\xa5\xc0\x29\x35\x3b\x22\x0c\x98\x73\xb7\x55\x66\x01\x57\xa6\xbb\xb2\x7a\xf7\xf5\x2d\xf3\xdf\x59\xc6\xc4\xd1\xb3\xad\xa1\xf9\x76\xdc\x55\xd2\x80\x54\xf9\x3e\x6f\xce\x33\x30\x11\x25\x25\xe0\x1a\xb1\x1c\xc8\x4c\xfd\x3d\x77\x43\x49\xc5\x42\x3f\x9a\x91\xa0\xf5\xee\x54\x98\xb1\x01\xa5\x94\x60\x68\x0f\x0f\x14\xef\x9a\x3d\x50\x04\x74\xfe\x7b\x29\xc5\x11\xb9\xb9\x2b\x1f\x3b\x7d\x39\xae\x94\xb1\x98\x91\x3f\xc8\x1f\xcf\x47\x28\x16\x4d\x23\xf5\x7b\x77\x17\xcd\x24\xc6\x81\x6e\x4e\xe7\xd1\xfe\xfc\xab\xe8\xc8\xe4\xd6\x3a\x0a\x10\x63\xde\x3e\x68\x87\x71\x50\xda\x44\x48\x2b\xb4\x06\x1c\x3d\x93\xfe\xd3\x26\x0d\x10\xb8\x97\x17\xe3\xd8\xa1\x32\x69\x84\x2b\x5a\xdb\xeb\x46\x74\xbf\x5a\xa2\xa6\x6c\x1d\xee\xaa\x99\xd6\x52\x73\x05\x21\x03\x36\xd8\xdd\xae\x79\x63\x97\xb1\x56\x05\x9a\x21\x9a\x7c\xf5\x47\x37\xbf\xc1\x04\x98\x62\x82\xfc\x28\xd8\xe2\x6f\xc8\x40\x73\x65\xe3\x14\x33\x36\xdb\x1c\x09\xe6\xaf\x81\x39\x47\x63\x6f\x88\xb4\x51\x16\x18\xce\x5f\x02\xec\x7c\xcf\x0b\x94\x25\x1f\x77\x9b\x66\x49\x1c\x66\x9e\xb9\x3c\x2f\x7c\x0e\x71\xf4\x28\x9a\x65\x9c\xf2\x7a\x3e\x89\xfe\xf5\x74\xf8\x0e\xf9\xa6\x24\xee\xfb\xd9\x8f\xa8\x99\x62\x38\x13\xb7\x88\xea\x3b\xec\x68\xb0\x09\x31\xbd\xb6\xcd\xb0\x2c\x4f\xe5\x85\x41\xe0\xed\x83\x81\xa2\xc9\x9b\xf3\x9c\x0d\xa8\xb9\x20\xca\x8e\xc7\xe5\x70\x23\xd5\x3c\x08\x11\x85\x55\x9f\x0e\xa3\xd8\xb3\xe6\x91\xc1\x90\x8d\x2f\x0e\x77\x81\x81\x69\x2f\xf0\x8c\xe4\x5b\xd7\xc7\xdc\x40\x85\xc1\x3f\x7f\xc4\x68\xa4\x27\x39\x94\x85\x7c\x2f\xff\xca\x0f\x92\x31\xde\x1f\xa4\x6a\x20\x69\xcc\x13\x18\xb9\xbf\xa1\x84\xd9\x69\x80\x71\xd3\x22\x05\xde\x4b\x9b\x3a\xe2\x55\x3f\x61\x74\x10\xc4\x98\x5b\xa8\xca\xb3\xdc\x37\xe7\xd6\x6b\xea\xe0\xdd\x23\x27\x4c\x07\x32\xc6\xbc\xcd\x3d\x34\x8f\x27\xfd\x7e\x26\x52\x9d\xfe\x42\x16\x30\xcd\x45\x40\xe1\xc7\x21\xe3\xf5\xf8\x55\x43\x13\x5a\x27\xfb\x72\x38\x15\x79\x83\x25\x70\xbf\x75\x07\x15\x1e\x94\xe4\x8a\xbc\xc2\xf1\xd4\x48\xfa\x57\x4f\x49\xcb\x75\x08\x5c\x90\x67\x5a\x36\x5f\x64\xfd\xf6\x6c\xc7\x76\x86\x8e\x04\x68\xd6\x65\xd5\x50\x72\x71\x4a\x42\xc3\x75\x94\x90\x6a\x57\x93\xff\x40\x52\xb6\xf1\xb4\xd5\x91\xa4\x98\xf2\xbe\xdc\x39\x15\xae\x0b\x73\x5a\xc7\x2c\xe4\x2e\x41\x84\x91\xf0\xc9\x67\x4d\x0c\x49\x77\xe2\x0c\xfa\x0a\x9f\x6b\xa8\xf2\xce\x8e\xd1\x29\x58\xc4\xf2\xee\x73\x0b\x8b\xc9\xb3\x65\x9c\xe3\x97\x3d\x15\x15\xd6\x51\x5e\x59\x24\x75\xc6\x89\x18\x2d\xaf\xbf\xb5\x7e\xf1\x0c\xca\x5f\x67\x81\x41\xea\xa7\x2e\x8f\xbe\x85\xe6\x6d\x5b\x0d\xab\x96\x75\x16\x06\xb8\x62\x2c\x9f\x9f\x9e\xbe\x7d\x7d\xd8\xfc\x6b\xfb\xba\x5a\xaf\x5e\xff\x58\x75\x0d\xd2\x84\xbb\xf4\xcd\x53\x8d\x28\xed\x1b\xb0\x65\x05\xdd\xf1\xcc\x62\x22\x02\x33\x34\xa3\xfc\x8c\xce\xb4\xb6\x71\xe7\x36\x75\x2a\x87\xe3\x9e\x92\x81\x8e\x91\x0a\x5a\x36\x65\xfd\x96\x8f\x2a\xa7\xb5\x62\x4a\x3b\xa7\xe5\xa5\xe7\xad\x21\xc9\xdc\xef\x79\xf3\x76\x29\xa5\xc6\xb5\xb6\x29\xa6\xd3\x94\x47\x09\x78\xc7\x43\x9b\x2c\x45\x43\xb5\x0b\x63\x2e\xf6\xfb\xde\xbe\x9a\x16\xd0\x69\x23\x43\x9c\xf1\x47\xe8\x76\x02\x6d\xac\x48\x9c\x6a\xc7\x1f\x50\x0d\x59\xc8\x5d\x03\x60\x22\x4e\x5c\x4c\x59\xee\x60\x3a\x97\x20\xa0\xf2\xea\x63\x59\x37\x4f\x65\x71\x57\x56\x4f\xae\x38\x7b\xac\x97\x47\x2d\xdb\x31\x72\xff\xcf\x2f\x7f\xd3\xc5\xd3\x10\x46\x08\xb1\x26\x99\xdd\xcd\xf3\x76\xf9\xba\x5a\x6c\x9e\x5f\xbb\x9b\x2b\x81\xa0\xd7\x7f\xe7\xbb\x7f\xcb\xdd\x28\xb9\xa3\x41\x93\xce\xf8\x0e\x6b\x34\x0c\xdc\x9c\xe7\xfa\xd6\x2a\x8e\x75\x34\x94\x02\x22\xd7\x61\x5a\xb9\x63\xb8\x08\x11\x1f\xda\xfa\x3e\x2b\x59\x9f\xc9\x23\xf0\x03\xc6\xf0\x88\x60\xc6\xed\x35\x5e\x01\x71\x0f\xf5\xf4\x0a\x09\x20\x4f\x31\xba\x86\x50\x6d\x5d\x51\x89\xbf\x82\xc8\x22\x24\x84\xd9\xba\x22\xe9\xaf\x72\x5a\x4e\x62\x82\x58\x75\xe5\x52\xd5\x07\x60\xd1\x1d\xb1\x7a\x75\x0d\xb4\x67\x1a\xbf\x29\xcb\xfd\x1d\xbf\x13\x77\xa4\x53\x3b\x91\x8c\xe2\x26\x64\x0c\x53\xcb\x78\x7e\x21\x4f\x4d\xfd\x87\xc7\x1e\xeb\xb7\xde\x00\x34\x21\x0f\xb1\x7c\x8e\x52\x72\x0f\xba\x1c\x70\x68\xa5\xbe\x8d\x0d\x3c\x9d\xe1\x4d\xbb\xdd\x0d\x40\xb1\x97\xdb\xb9\x89\x85\x41\x88\x21\x86\xfd\xd7\x03\x75\x9f\xf1\xca\x6a\xe2\x80\xe8\xa1\xbe\xc8\x43\xdd\x40\x35\x60\x0e\x19\xee\x55\x26\x51\xa4\xf2\x77\x2a\x86\x02\xe8\xee\x60\xca\x13\xeb\x90\x52\xdf\xea\x61\x8d\xed\x68\x7d\x35\x69\x1c\xe1\x04\xf0\xfa\x9b\x8b\xc2\x10\x99\xc3\x5d\x59\x7d\x29\x8f\x60\x4f\xbf\xe4\x80\xf6\x57\x4a\x74\xe8\x21\xe3\x7f\x47\xc1\xcc\x9f\x96\xd9\x40\xf6\x85\xe6\xb2\xd2\x6f\x8b\xc2\xdc\xc2\x07\xec\xcb\xe3\x25\x98\xc8\xc8\x98\x29\xd7\xe3\x7d\xd9\x81\x91\x59\x94\x39\xff\x57\x50\x77\x8d\x74\x00\x7e\xf1\xe8\x52\x52\x95\xcc\x5f\xc7\x41\x89\x7b\x77\x2c\x91\x5d\x56\x7e\x8e\x3d\xc9\xb7\xd3\x32\xe5\x8e\x3e\xfe\xa5\xec\x3e\x83\x04\x39\xa0\xdd\xed\x08\xdf\x5b\x9f\x85\xbe\xd7\x15\xf7\xc4\x48\x1b\xa1\x10\x67\x6b\x4b\xdd\x49\x55\x79\x8d\x25\x6e\x14\xe3\x09\x81\xe1\x1f\x4b\xfd\x4e\x85\xae\x93\xe9\xa2\x02\x85\xe1\xab\xbc\xf8\x28\xdf\xe1\x8f\x01\x73\xed\xd5\x8f\x39\x06\x95\xfc\xaf\xf0\x63\x56\xc5\x80\xc9\xc3\xf2\xb3\xa8\xd7\xe5\x69\x3f\x9d\xdb\x2a\x35\x18\xaa\x55\xad\xc5\x52\x4d\x9f\x43\x71\xa7\xd2\xd5\xbe\xfd\x4b\xb9\xcf\xf5\xf9\xf5\xb4\x77\x36\x68\x38\x55\xb5\x77\x67\x69\x91\xa0\xbc\xb8\xf3\x27\xe7\x2d\x2d\xa3\xc3\x48\x0f\x01\x55\x18\x66\xbf\x68\x93\xb0\xa0\xbb\x3f\x82\x99\xc6\x0f\xa8\xe3\xd4\xb3\x84\x74\xf1\x6f\xf4\xa9\x86\x88\x0e\xa3\x01\x5c\xb1\x43\xae\xb1\x68\x45\x49\xfd\x7e\x59\x55\xd4\x2f\x31\x46\xa4\x08\xb3\xd9\xba\x44\x69\x27\x24\xd8\x8f\x2b\x13\x64\x38\x8e\x29\x80\xe2\x0d\xf9\x71\x47\x98\xc8\x71\x8e\xd7\x50\xa1\x87\x38\x3d\x9e\xa6\x61\x47\x4f\xaa\xcb\xca\x8c\x02\x17\xc6\xd8\x98\xca\xae\x30\xcf\x4e\x23\x6f\xc6\x61\x34\x96\x67\x88\xf1\xd9\x1e\x5a\xd3\xf3\xb2\x52\xd2\xd8\x2c\x23\xf4\x6d\x1f\x50\x00\x66\x80\x52\xbb\x04\x9a\xe5\xec\xfd\x38\x88\x09\x00\x0f\x34\x62\x94\x09\x1f\xf9\xb0\x7c\xde\xae\x37\x8b\xfb\x15\xdf\xbe\xbc\xae\xb6\xeb\xc5\xe3\x2a\xec\x5a\x86\x0a\xc7\x08\xb8\x4a\x74\x6f\x55\x81\xe0\x82\x38\x3c\x21\x5f\x97\xb6\x59\x76\x95\x2d\x10\xc4\x11\x52\xb3\x50\xef\xba\xc4\xf2\x4c\x75\x14\x04\x69\x88\xa1\x1b\x5a\x12\x54\x29\x2b\xf3\x98\xa3\xc0\xb0\xcf\x24\xfe\x6a\x85\x18\xaf\x14\x10\x98\x98\xb9\x10\xcd\x36\xef\x40\xdc\xad\x1d\xe6\x9f\x2d\x4c\xb5\xe9\x51\xcc\x0e\xfc\xd0\x6e\xad\x4d\x67\xb8\x40\xa4\x32\x74\x88\xd1\xb3\xdd\xd6\xb0\xbf\x28\x29\x98\xdc\x36\x02\x49\x06\x2e\xc8\xc3\xd8\x28\x83\x38\xd1\x74\xa8\xbd\x81\xf7\x96\xbb\x3e\x8c\x1d\x3d\x16\x21\x3f\xb1\x10\x79\x42\x41\xe2\x1a\xa6\x61\x82\x29\xd8\x2f\x8b\xcd\xf2\xcb\xcd\x62\xf9\xfb\x6f\xdd\x01\x8d\x78\x27\xcc\x02\x4c\x18\x27\x5d\x93\x2c\x8a\x75\xea\x82\x1e\xed\x7e\xf5\xb5\x93\x0d\xe1\x90\xc5\x94\xda\x6d\x97\x2a\xa7\xf9\xf2\x8b\x77\xcd\x32\x92\xb8\x93\x55\x95\xf7\x30\x25\x50\xae\x96\xe3\xfe\xc7\xe2\xd4\xf7\xb6\x52\x16\xed\x2f\x8a\xde\x8d\x7b\x46\x27\x31\x26\xf5\x1e\xcb\x1d\x96\x03\x7e\x91\xfb\x8f\xbc\xd8\xad\x4f\xaa\xce\xcd\x05\x72\xf1\xca\xd3\xe8\x44\x85\x03\x4d\x8d\x17\x4a\xcf\x0d\x6a\xfe\xc1\xb4\x0e\x36\x3e\x6f\xf3\x59\x56\xef\x64\x66\xf9\x63\x89\xc2\x92\x10\xe4\x92\x6a\x9d\xe6\x81\xc2\x3e\x07\x60\xe0\x4b\xb7\xfe\x5d\x16\x93\x35\x1c\x6c\x4a\x2f\x6c\x9c\x24\x2d\x85\xee\x2f\x93\x8f\x69\xea\x4f\x50\x36\x76\xe5\x67\x77\x00\x17\x3b\x19\x58\xd0\x44\x95\xff\x26\x2b\xa0\x4a\x85\x9b\xf3\x1c\x65\x0a\x58\x6b\x51\xa8\x80\x0c\x0b\x5a\x5a\x16\xc6\x5c\xec\xe8\x3f\xa9\x20\xb4\x4c\xe8\x34\xe9\xe5\x17\x91\xb2\x70\x42\xaa\x3f\x3d\x23\x50\x18\xbb\xbb\xcf\x6d\xf3\x6b\xc9\xd6\xc9\xb9\x2a\x65\x6e\x1d\x47\x59\x34\x97\x01\xdb\x94\x48\x15\x38\x8e\x60\x59\x1e\x31\x0f\x76\x5d\xf4\x0a\xc8\xe3\x0b\xf2\x88\x22\xc6\xa4\xce\xf6\x3b\x9c\x1d\x6e\x7d\xd2\xca\xea\x6c\xb8\x07\x6d\x2a\x90\xf5\xa9\x9a\x44\xdc\xad\xe0\x89\x76\xa8\x82\x76\x6e\xcc\x42\xba\xac\xc8\x12\xaf\xf7\x5d\x9f\x0f\xaa\x4b\x17\xfb\xc3\x32\xc0\x35\x18\x0d\x35\x0f\x82\xf5\x6f\x24\x00\xcc\x00\xd0\x81\x3a\xe5\x4f\x03\x39\xaf\xd1\xd3\x04\x09\xe9\x1d\x21\x7b\xe8\x60\xcd\xb6\x01\x80\x36\x2e\x65\x31\x50\xef\x70\xe3\xcb\x86\x01\xc7\x95\xa6\x3c\x42\x41\x9c\x6c\xfe\xc4\x30\xb2\xe8\xc5\xab\xd3\xf9\x8f\x87\x9b\xd5\xa6\xfb\x3d\xe5\x58\xde\xfb\x50\x34\xd5\x28\xcd\x61\x43\xc7\x58\xfd\x3b\x54\x05\xec\x47\x65\x44\xbe\x85\x92\x98\x49\xcf\x31\xc8\x3b\xcf\x7c\xcd\x6d\x14\x46\x44\x5a\x7c\x90\x4d\xf5\xfc\xff\x26\xf4\xcb\x6d\x94\x42\xe6\xa4\xc6\xe9\x7d\x07\x85\x25\x36\xca\x52\xec\x8d\x76\xcd\x7a\x81\xaa\x2e\x0b\xb9\xff\x5a\x36\xf0\xdb\xec\x70\x8f\xe3\x10\x27\x57\xc7\xfb\x30\x25\x83\xb3\xb1\x24\xed\xa1\xbd\xac\x1d\x47\x6a\x97\x43\xb2\x89\x08\x11\x11\x87\x2a\xaa\xfe\xc7\x54\x90\x3c\xd9\x16\xa9\x9e\xf7\x79\xfd\xd6\xa9\x54\x8e\xaf\x2c\x03\x83\x4e\xc8\x23\xc0\xfb\xb2\xcc\x7f\xa2\x77\x3c\x6b\x6a\x5a\x19\x58\xf4\x9d\x3e\x21\xff\x56\x1b\x6f\xa3\x0e\x00\x3a\x56\x26\x46\x0a\xaf\xeb\xe6\x77\xbd\x1a\x33\xf3\x93\x4b\x69\xe9\x15\xc3\x3a\xa9\xb0\xb9\x89\xa3\x22\xca\xba\x60\xb7\x4f\x6a\x3e\x7b\xc7\xa9\x6b\x9c\xe2\x1a\xdc\xba\x8f\x5a\xb6\x2e\xf8\xf4\xb6\x4a\x9a\xd8\x29\x38\xfc\x05\xba\x2f\xd2\x9f\x5f\x2c\x8c\xb5\xbd\x30\x6e\x59\x21\x34\xc3\x1d\x02\x4e\x48\x89\xbc\x6e\x57\xbd\x0f\xb8\x04\xea\xf8\x86\x09\xd9\xa8\x07\x38\xe8\xe3\xf9\xe7\x8c\x79\xd6\x2a\x6e\xc2\x2e\x70\x32\x57\xad\x65\x2d\x10\x6f\x87\x73\xd7\x6e\x4b\x7d\xc9\xc8\x23\x18\x8b\x20\xa2\x1a\x77\xf8\x31\x98\x4f\x82\xb1\x98\x63\x19\xb8\x0b\xb7\x8d\x7a\x5b\x30\x96\x64\x44\xe0\x6e\x8c\x9b\x48\x9b\xf2\x7e\xea\x64\x0b\xc6\xc3\x4c\x72\x57\x3e\xb8\x3c\xa9\xb1\x35\x2a\x18\x4f\x43\x94\x10\xdd\x7d\x2c\xef\xfc\x7d\x85\x02\x82\x69\x37\x6f\xe2\xe0\x9d\x4f\xc1\x02\x01\x91\x1b\x2f\x6b\x14\x1f\x94\xd5\xf9\xd2\x42\x15\x2c\x88\xb4\xe7\x0e\xc6\x72\xed\x60\xf2\x44\x41\x4a\x28\x70\x34\x6e\x06\x3e\xe1\xdd\xa9\x30\x2b\x89\x21\x52\xdf\x32\xb3\x18\x0b\x3a\xe4\x45\x83\x11\xd4\xc9\x95\xc2\xc8\xa0\x44\xcb\x1f\xbf\x6f\xc6\xe1\x97\x71\x07\x87\x4a\x2a\x8a\xe7\x1c\xfb\xf0\xb5\x8b\xe1\x08\x16\x6a\x40\x85\xca\xdb\xd6\xa0\x9e\x55\xb5\x10\x2c\x34\x02\xc1\x5e\xad\xad\x4c\x82\x3b\x37\xa7\xaa\xfb\x4e\x51\x94\x44\x1d\x54\x67\x64\x8b\xfb\x64\x20\xe7\xff\xe7\xdb\xa6\x49\x1c\x8e\x99\xff\xef\xab\xf2\x74\x9c\x0d\x20\x0a\x16\x65\x36\x26\x7e\xa8\x0f\xf0\xb5\x5b\x97\x81\x6f\xc1\xe2\xc8\x02\x1b\xc1\xf6\xfd\xc3\xc5\x46\x47\x43\x98\xc6\x20\xee\x30\xaf\x47\x2c\x58\x12\xca\x30\xee\x87\x6d\x2f\x3f\x2d\x58\xa2\x14\xe2\xc1\xba\x68\xe5\x20\x67\x28\x58\x62\x19\x6a\x6e\x61\x40\x75\x33\x2f\xa3\x21\x58\x2a\x45\x14\xf7\xea\x05\x57\x5a\x65\x2c\xc1\x98\x3b\xb9\x03\x9d\xbb\x38\x69\x14\x33\x64\x68\x70\xe2\x3a\x0f\xbd\x93\x2e\x58\xa6\xb8\xed\x19\x39\x46\xcf\x99\xd9\x04\xc7\x55\xe7\x65\xee\xc1\xec\xba\xa3\xca\x50\x55\x8d\xd3\xea\x9f\x47\x85\xb5\xcd\x52\x87\x7c\x6f\x1c\xd7\xce\x0d\x90\xe0\xc5\xe4\x21\x75\xc4\x7d\x59\x8f\x2b\x76\x7a\x05\x12\xfe\x1a\x99\x30\x6d\x43\x52\x0e\xeb\xf2\x28\xb7\x70\x38\x55\xd5\x80\x9a\x6f\xf2\x08\x3a\x01\xe2\xc9\x85\xaa\xc9\x6d\xee\x03\x67\x82\x69\x9d\x65\xb4\xe2\xa1\x46\xfd\x40\x22\x5d\x30\x23\x81\x64\xfd\xdc\x73\xcb\xfd\x28\xa7\x38\xbe\x03\xc4\x1a\x5d\xe9\xad\x6d\x37\xb7\xf3\xa6\xf4\x71\xfa\x6e\x01\x81\xd4\x22\xbc\xa2\x7b\xe8\xa7\xbc\x68\x86\x15\xdb\x82\x59\x48\x30\x87\xb3\xa9\xca\xe3\xb9\x77\x37\xdb\x03\x69\xe6\x4b\xd8\xca\xbd\xaf\x62\x15\x9c\x73\xca\xd7\xac\x4f\x47\xa8\xa8\x80\x73\xae\x56\x6b\x38\x03\x38\x8f\x42\x5c\xff\xbb\x6f\x2a\xab\x26\x9f\xae\x18\x9c\xc7\x31\x75\xf1\x1e\x64\x45\xaa\x8c\x94\x19\x9b\x04\x2d\x2e\xf2\x67\x97\xb1\x67\xc1\x85\xe6\x18\x41\xa0\x45\x70\x44\x56\x2d\x78\x10\x67\x3c\xed\x72\x1c\xed\xe6\x65\x27\x09\x80\xd9\x7d\xa5\x3d\x11\xd0\x22\x5b\xbd\x2e\x93\x24\x59\xbd\x2e\x05\xbb\x91\x35\x5c\x63\x06\xbf\xc4\xc2\x0b\x1e\xc6\x02\xbd\xad\xb7\x7c\xf7\xb6\x76\x80\xaa\xd1\x14\xe7\xa1\x54\x98\xb7\x7a\xcc\x77\x6f\x4d\xd1\x61\x35\x05\x8f\xa2\x44\xb6\xa3\x63\xf1\x21\x1b\x59\xe5\x1e\x56\x28\x78\x14\x07\x08\x5f\x5e\xfc\xc8\xcb\x43\xdd\xff\xaa\x49\x66\xab\x28\x3f\xed\x5e\xbe\x8f\xd9\x3f\xe6\x9f\x76\x9a\x8a\x14\x3c\xb2\x29\x7e\x95\xaa\xd3\x23\x3d\x79\x52\x6b\xc1\x63\x48\xd0\x57\x85\x1f\xc7\xbc\xea\x5d\x0d\xbf\x7e\xf3\x24\x93\x48\x38\x7d\xa4\x78\x2f\xb2\xeb\xca\x49\x44\x4b\xf0\x44\xc5\x08\x74\x1c\x48\x6c\x7b\x46\x61\x73\x73\x7e\x02\x93\x63\xe1\xc6\xfc\x27\x49\x83\xcc\xd3\x6a\x0e\x29\x96\xd0\x25\x1e\x8d\x88\xd4\xc4\x8a\xb4\xff\x74\xe5\x69\x02\x04\xcf\x04\x25\x51\x71\xf3\x79\xb6\x83\x24\x49\xdd\x37\x51\x8c\x79\x5b\x0c\x33\x81\x5f\x5e\xc6\x19\x87\x7f\x8c\x5e\x3a\x53\x1a\xb1\xd1\x4f\xe5\x50\xb8\x5a\xf0\xcc\x10\x6a\x74\xf1\xf2\x84\x64\xac\x5f\x17\x9e\x39\x4e\x70\x19\x26\x18\x80\x2e\x4a\xd2\x91\x24\xae\xc3\xdf\xe1\xfc\xe7\x64\x92\xc8\x30\xc3\x02\xd0\xc7\xd3\x11\xf5\xf0\x66\xad\x25\xc1\xa5\x8a\x23\xef\x8a\xa3\x71\xb9\x3e\x96\x45\x0d\xb3\x9e\x90\xe0\xd2\x32\x5c\x76\x6e\xef\xd6\xbf\xb4\xe8\xdd\x29\x2a\x92\x62\xb4\xb4\x2c\xcb\xc3\x11\x8a\x7a\x50\x77\x22\xb8\x8a\x53\xdc\x73\x08\x68\xd7\x09\x92\xcd\xae\xd9\x5c\x0b\xc2\x5d\xaa\x53\x55\xbc\xfc\xf9\x48\x69\xcb\x97\x3f\x1f\x7f\x88\x8b\xc8\xc1\x2f\xfe\xdb\x5f\x30\x22\xe3\xe1\x78\x6a\x9e\x7f\x2a\x64\xee\xda\x9b\x38\x74\x48\xb0\xc2\x60\xd2\x73\xbc\x5b\x73\xa3\x74\xc0\x7b\xda\x34\xf9\x63\xf2\x69\x80\x19\x8c\xc7\xef\x4a\x83\x84\xf5\xfe\x3c\x88\x53\x8c\xcc\x59\x64\xe4\xba\x95\x67\xa4\xbe\x97\x55\xd3\x2f\xfc\x1c\x52\x8e\xab\xc2\xa9\xf8\x27\x31\xa9\xe4\xc5\x95\x6f\x05\x2a\x1b\xc0\xa7\xda\x05\xdd\x55\x3e\x5e\xf4\xd2\x68\xf4\x83\x15\x61\xd0\x9d\x86\x81\xd9\x19\xb7\x4a\x70\xcb\x24\x27\x8d\xb0\xba\xdc\x7f\x5c\x76\x99\x8f\x5a\xfb\xd0\xab\xe0\x56\x30\x8c\xc3\xb7\xae\x14\xa5\xb0\x5b\x67\xf9\xae\xac\x20\xdf\x15\x54\xb6\xe9\xde\x52\x30\x1d\x3b\xa0\x1b\x81\xc7\x2f\x63\xa3\x42\xf0\x24\xc0\xd4\x95\xaf\xbb\xbb\x88\x8e\x0a\xc1\x25\xa3\x08\xd9\x41\x37\xfa\xac\xa0\x3a\x94\x1f\xb9\xef\x6e\x21\xb4\x88\xa8\x52\xc9\x00\x1c\x46\x6b\x80\x10\x90\x20\x0e\x38\xaf\x7b\x32\x51\xd4\xfa\x42\x16\x32\xd7\x28\x88\x63\xdc\xb9\x5f\x16\xcb\xe5\xf3\xc3\xd7\x9f\xed\x6c\x22\x48\x78\x4c\x0a\x32\xed\xfb\x7c\x91\xfd\x45\xda\x6e\x19\x56\x1f\x9b\xc3\x4f\xc3\x70\x42\x84\x81\x8a\x7b\x8c\x2c\x09\x3f\x4e\xfa\x26\x4c\x28\x2a\xf9\x50\x68\x28\x9a\x65\x69\x2d\x0c\x13\x54\x42\x44\x81\x44\x98\x6c\xdd\x94\xc7\x71\xe6\x54\x88\x38\x60\x9e\x33\xf8\xa6\x2c\xf7\xa9\xf8\x6d\x9c\xa7\x6b\x5b\xc4\x8a\xfb\xe8\xf6\x41\xe6\x05\xb2\x8a\x9d\xeb\x4d\xb9\x79\xcb\x2b\xf3\xf2\xd6\x29\xa9\x0a\x11\x27\x12\x51\xa0\x44\x1e\x17\x77\x3f\x4b\x8b\x46\x5f\x71\x3a\xb8\x38\x75\x77\x44\x01\x12\x1c\x7d\x2d\x9b\xdc\x9e\x9f\xe6\xb3\x3a\x42\xc4\xda\x50\x5e\xc9\xc5\x71\x7d\xb1\xe3\xa4\xb3\x62\x1b\x21\xfc\xf2\x13\xf2\xed\x11\x2a\x82\x66\xf8\x5b\x25\x69\x8a\x6b\xd3\xfd\x24\xa1\x2f\x44\x62\x18\x82\x24\x76\xf2\x00\x04\x91\xf4\xe7\xa4\x2c\x33\xba\xb7\x56\x6b\x97\xe5\xef\xfc\x1d\x91\x46\x11\x26\x81\x6e\xcb\xa2\x97\xeb\x11\x22\x8d\x09\xd5\x42\x5a\xd2\x6b\xf9\x91\x17\x3b\x1f\x30\x1e\xdf\x3b\x4d\x62\x41\x3b\x4d\x51\x9f\xf6\x4d\xbb\xc3\xfc\x0e\xdd\x98\xce\xb2\x34\xa1\xd4\x3a\x5a\xa1\xc4\x1a\x80\x06\xc6\x64\x0c\x64\xd2\x22\xef\xf0\x5d\x05\xf5\xdb\xeb\xf3\xc3\xfc\xb6\x28\x24\xcf\x70\x5f\x43\x07\x66\xcb\xfd\x6d\x64\x92\x60\xe0\xe8\xde\x59\xdd\x9e\xaa\xc8\x1f\x57\x0c\x52\x17\x21\x1d\x26\xb1\x1e\x5b\x4f\xb0\x6b\x63\x28\xd3\xb0\x79\x83\xc3\xef\x6f\xa5\xfc\x52\xea\x29\xfa\x78\x96\xf0\x6c\x34\x71\x4c\x10\x1a\xc2\x70\x35\xa7\xaa\x18\x19\x50\xe3\x17\x31\x99\x44\xb4\xfc\x31\xf7\xd5\x30\xee\x00\xb0\x10\x69\x05\xbe\x3f\x6c\xbe\xdc\xbe\x2e\xbe\x6f\x17\xb7\xb7\xaf\xab\xf5\xba\x3b\x9e\x10\x5a\x66\x87\x74\x9f\x8f\x60\xbb\x99\x60\x21\x4e\xa3\x81\x36\xfb\xc8\xd2\x17\xd6\x26\x98\x1f\xc5\xe4\x78\x53\xa1\xa6\xd1\x2d\xfc\x68\xa0\xca\x9b\xf3\x1f\x28\x55\xda\xfc\x3c\xfe\x20\x02\x26\xb2\x80\xf8\xc0\x29\x67\xb1\xb0\x36\xdf\xe7\x5d\x7c\x47\x04\x9c\x67\xda\xf8\x8a\x9c\xee\xc7\x84\xf2\xfe\x0a\xad\xff\x91\x9d\x1e\xf0\x94\x49\xd1\x15\xf6\xa1\x15\xe2\xb6\xa7\x76\xfd\xfa\x0a\x9f\xbe\x61\x10\x28\xbc\x35\x16\x10\x5d\xc6\x1c\x82\x20\x4b\x91\x4b\xff\xaf\xf2\xad\x28\x86\x16\x7f\x10\xd8\x08\xb7\x88\xbe\xb6\x20\x8a\x9e\x26\x80\x4b\x11\x84\x42\x20\xdc\x95\x72\x0b\x7b\x80\x61\xb1\x9a\x08\x62\xc6\x23\x4e\x20\xcf\x97\xb2\x79\x44\xa1\x7f\x7f\x2c\x61\x02\xb7\xae\x23\x0e\xee\x71\xb7\x07\x49\xc0\x1d\xf1\x10\xfe\xec\x79\xf7\xaf\x78\x78\x41\xa2\x48\x04\x09\xb7\x87\xde\xb3\x0c\x52\x26\xd0\x3d\x41\x3e\x77\xa2\x9f\xa4\x6a\xc9\xee\x78\x82\x08\xe8\x83\xac\xde\x07\xc6\x1e\x21\xd7\x6c\x0e\x13\xb6\x4a\x11\xa4\x21\x47\x04\x4d\xbb\xd3\x82\xb9\xaf\xe0\x4a\xd5\xa7\x08\xd2\x38\x4c\x1c\x92\x6d\xf5\xe3\xf8\x6c\x6d\x0d\xcd\x98\xbb\x70\x4a\xb3\xed\x4e\xcc\x40\xa3\xca\x18\x16\x94\xfc\x1d\x09\x53\x77\x9e\x62\x31\xd2\x6f\xba\xb4\xad\x23\x74\x9b\x31\x61\x03\xc5\x0d\xd5\x37\x6a\x6f\xe7\x4e\xde\x52\x45\x90\x39\x8f\xa8\x63\x64\x5f\xe7\xbb\x29\x87\xc4\x05\xdb\xea\xf8\xef\xa4\x43\x94\x0c\xc8\x54\x21\x25\x8c\x2a\xff\x2f\xd1\x6e\xff\xbf\x29\xdc\x89\x40\x07\x12\xc3\xa5\x3e\x6a\x4c\xd6\xc0\xc3\xf2\x59\xfc\xd6\xb7\xf0\x8a\x03\x18\x8b\xc2\x40\xe9\xe4\x22\x9a\xa5\x2e\x50\xfa\x3f\x65\x5e\x80\xe9\x69\x37\x26\x7d\x61\xb2\x2c\x19\x94\x3a\xef\xf7\xe5\xe7\xb2\xa8\xa7\xfc\x0e\x17\xde\xe8\x28\x76\x17\x40\xc8\xb9\x4b\xaa\xc9\x33\x66\x45\x54\xfb\x61\x86\x12\x65\xdd\x77\xb4\x11\x0f\x3c\xcb\xe2\x2d\x48\xb3\x7c\x6b\xb7\xce\x62\xd9\xcd\xfe\x90\x25\x16\x3f\x4f\x53\xa2\xc5\x32\xc8\xba\x89\x90\x49\x83\x6e\x45\xbb\xe7\x1f\x2f\xcc\x77\xdf\x48\x05\x68\xa4\xbd\x40\x75\x90\x15\xbc\x8f\x26\x6d\xc8\x0c\x24\x3e\x1a\xfe\xad\x40\x67\x0e\xcc\xd8\xfa\x0d\x79\x40\xd9\x7f\xf8\x91\x3b\xba\x83\xf1\x37\xff\xc7\xd5\xdf\xfc\x05\x4c\xe2\xa9\xfc\x89\x4a\xc4\xc5\x27\x7b\x03\x24\xe4\x00\xb8\x09\xd2\x02\x31\x79\x05\xc1\x02\x44\x63\xfe\xfb\x4d\x96\xf7\xa7\x1e\x6a\x2f\x42\x11\x02\x86\x1a\x5d\x50\xa8\xfb\x39\xc9\xf0\x86\xc8\xe9\x48\xa3\xb9\x1a\x92\x21\x89\x50\x40\x36\x90\x18\x77\x30\x96\x81\x95\x13\x06\xc2\x62\xe5\x83\x96\xc5\x1a\x0a\xf3\x1d\xd4\x7d\x6e\x47\x0b\x73\x18\x86\x42\x41\x7f\xf3\x07\x57\xf2\x3d\xbf\x46\x84\x61\x1a\x73\x18\x94\x8d\x8c\x24\xeb\x66\xf6\xc9\x30\xd2\x31\x06\xa0\x3d\xb9\x7d\x47\x4b\x27\xc2\x08\x82\xd0\xe7\xa8\x67\xd4\xc2\x44\x18\xd9\xd0\xb3\xb0\xbc\x9e\x90\x6d\xa1\xab\x53\x73\x2d\x62\xe6\xa4\xa3\xc9\x73\x5e\x42\xbe\x6f\xdd\x74\x99\xd7\x93\x58\x74\x18\xa7\xda\xa7\x4e\xbf\xe7\x36\x7f\xf9\x1c\x07\x96\xc3\x24\x0c\xd1\x7b\x3b\x15\x8e\xdd\x00\xc5\x5b\xcd\x38\x7d\xea\xdb\x6a\x89\x3b\x33\x79\xa6\xae\x2e\xf1\xe9\xb4\x5f\xe7\xbb\x89\xcf\x33\xe9\xbd\x54\x71\xd6\xa5\xc6\x6f\xe5\x79\x32\x42\x32\x2e\xd1\xa6\x78\x85\x0f\xa8\x6a\xa0\x82\x56\x33\x47\xd8\x25\xc2\x4c\x90\x66\x13\xd9\x1f\xab\x1f\xfa\xc2\xd3\x0a\xb3\x90\x53\x42\xac\x76\x2c\x73\xfe\xf7\x48\xa2\xe6\xf4\x30\x34\x37\x2e\xaa\x9c\xcd\x7e\x89\x30\xd3\x51\xea\x4b\x42\xba\x8b\x99\x40\x51\x2a\x7f\xa5\xcb\x0e\xbc\xe0\x03\x2c\xa1\x54\x0a\x8b\x96\x48\xf8\xdb\x49\x99\xae\xa5\xbd\xaa\x74\x7d\xb1\x94\x0e\xa7\xa0\x62\x19\x8a\xb4\x49\x2c\xd7\x96\xfb\xfd\x8d\xf4\x74\x3a\x22\xd4\x22\x91\x0e\x11\x4d\xc8\x9e\x13\xd5\xcc\xfc\x9d\xb4\x7d\x7b\xb6\x41\xc3\x1f\x7e\x80\x3e\x35\x28\x70\xf6\x33\x8c\xbc\x08\x75\x20\x30\xf7\x01\x45\xd3\xeb\x46\xfd\x63\x20\xbb\x24\x42\x6d\xa9\x2e\x20\xaf\xbb\x9c\x06\xc9\x74\x4d\xb4\x87\xdb\x96\x6e\x07\xed\x89\xad\x26\x75\x69\x22\x34\x41\x80\x29\x3f\x17\xc8\xea\x90\xe6\x22\x04\x09\xa8\x62\xd0\xc1\xd7\xdd\xef\x96\xa9\x80\x77\x34\x2e\xb7\x24\x65\xed\xd2\xfc\x37\xe7\x0b\x0e\x6e\x11\x5a\x41\x98\x66\x72\xe1\x6e\xe8\x9d\x28\xec\x3c\x9e\x4d\x56\x27\x98\x12\xf0\x04\x11\xe3\xb2\xb1\xc9\xb0\xb1\x56\xf8\x48\xec\xe2\x2c\x71\x0d\xc8\x9b\x95\x2e\x8b\xf2\x90\xff\xe7\x04\xdb\x65\x79\x38\x36\xb0\x8d\xdc\x63\x47\x2c\xe4\x2c\xeb\x09\x57\x44\xf8\xb6\x26\xcb\x60\x54\x32\xe2\x1b\xa7\x20\x43\x57\x69\xd0\xc3\x0d\xba\x25\x39\x62\x5a\x06\xa6\xcf\x37\xbc\xc8\xb3\x92\xfa\xbd\x4f\x55\x8a\x88\x73\x8d\xc9\x50\x9f\xc4\xa0\xc5\xdd\x33\x4a\xfb\x46\xa1\x52\x43\x89\xf8\x71\xc7\x45\x22\x33\xc2\xa5\xaf\x5e\x65\xf1\xce\x99\xbf\xb8\x90\x92\xa8\xc0\xf3\xdd\x5b\x73\x93\x8f\xb6\xad\x48\x68\x8d\x3c\x16\x47\x2a\xe1\xdd\x8c\x1c\xce\x28\x48\x23\x4b\xc0\xec\xc7\xe7\xd7\xed\xfd\xeb\x6a\xf5\xb5\x3b\xa4\x52\xe1\xf2\x2e\x1f\xb0\x1f\xa6\x1f\xa2\x10\x62\xe4\xc7\xeb\xde\xa6\x79\x1b\x62\x39\xc7\x8f\x1d\x5a\x66\xc8\xdd\x96\x55\x33\xec\x93\x28\x32\x78\xef\xff\xca\xfa\x47\xfb\xbf\xff\xc8\xff\xfc\xc7\x1f\x8b\x53\xd2\x45\x55\x73\x09\x76\x11\x25\x3c\x36\x71\x2f\x77\xec\xe9\x3e\x26\x24\xe9\x6d\x3b\x19\x04\x7d\x11\xa8\x27\xa0\x9f\xb4\x4a\x85\xe6\x0e\xec\x89\x28\xfb\xa7\xd2\xc0\x60\xc7\x8d\x32\x41\x76\x41\x5e\xe8\xf2\x00\x53\xe6\x18\x11\x65\x19\x65\xf1\xee\x91\xbf\x61\x55\x40\xb5\x3b\x3b\x36\x70\x52\xe4\xf3\xed\x34\x43\xad\x29\xd4\xb9\x46\x44\x4e\x53\x9a\xbc\xc6\x18\x92\x99\x7c\x6c\x95\x5a\x46\x12\x9c\x0f\xc5\x57\xf8\xd1\x78\xcd\x84\xfe\xae\xca\x12\x4b\x39\xae\xf3\xbf\xd6\x93\x16\x91\x89\x0c\x99\xde\xc8\x9a\x70\x2c\xf5\x5b\x27\xba\xed\xaf\x09\x91\x40\x0c\xca\x00\xc4\x2c\x22\x1b\x27\x44\xc0\x72\x2a\xaa\xbc\x1e\xe8\xfb\x88\x98\xb1\x50\xf5\x73\xf9\xb5\xec\x7c\xe4\x98\x31\x89\x61\x78\x5d\x16\x5a\x36\x54\xf5\x3c\xa7\x5e\x24\x62\xa6\x39\x92\xe6\xd4\x6f\xe5\xe7\xc3\x88\x05\x4a\xc4\x9c\x29\x8c\xd0\xba\xd0\xb8\x93\xe2\x9c\xca\x38\x88\x98\x27\x59\x34\xcc\x87\xdd\x77\x31\xa6\x58\xc4\x02\x1f\x04\xb5\xbf\xae\xd4\x38\xfd\xff\xf5\xd7\x3f\x82\x89\xd1\xfa\xb1\x65\xd5\x14\xed\x1c\x45\x46\xa0\x76\xd9\xe9\x1e\x12\x14\x96\x7e\xfd\xe7\x04\xd5\xd9\x45\xb5\x86\x49\xaa\x38\x60\x0c\x2d\xe5\xc7\xd5\xf3\x70\x76\xc7\xa1\xc8\x88\x26\xab\x30\xae\x5c\x75\xe0\xfd\xc7\x51\x16\xe3\x97\x23\x64\x37\x34\x1e\x24\xda\x15\x83\x8e\x06\x48\x1c\xb3\x80\x75\x79\xcd\x5d\xd9\x75\x61\xdc\xc3\x27\x7a\xd3\xd9\x1f\x33\x91\xf5\xfc\xb4\x79\x53\x60\x21\xed\xd0\x7c\x8c\x13\x26\x10\xa9\x7c\xfb\xfc\x7d\xbb\xf9\xb6\xea\x7e\xe6\x16\x53\xda\x0e\xc1\xb6\x70\x15\xed\x73\xc3\xd8\x9f\x11\x25\x3c\xf0\x24\x9b\x75\xe3\x4a\x3e\x1f\xea\xfa\x84\x16\xf8\xec\x8e\x1b\x27\x59\x8c\x38\x60\xca\x45\xfd\x3f\xa6\xa1\xe2\x34\x26\xc6\x1b\xbf\xce\x3d\xa2\x68\xa8\x7f\x85\x54\x2b\x9c\x4f\x7f\xde\xbc\x8c\xbe\x49\x16\x44\xee\x9b\xb4\x6b\xfc\x0c\x93\x84\x88\x65\x42\x02\x9c\xa6\xa8\xab\xb1\x1e\xa4\x88\xa5\x25\x80\x3f\x41\x35\xfd\xf2\x36\x76\x34\x62\xc5\x85\x83\x52\xe7\x4d\xbf\x49\xc7\x2a\xa6\xaa\x07\x53\x7e\x16\x93\xa4\x48\xac\xd2\x08\x1c\x93\x26\x46\xaa\xfe\x39\x17\x0f\x77\x6d\x35\x0f\x34\xb9\x52\x7b\xf3\xaf\xf2\xb4\x2e\x27\xcf\xa8\x45\xe2\xd5\x67\x56\x9b\x2f\x08\x57\x9b\x2c\xbd\xb1\x11\xcc\xba\x38\xe9\x0d\xd4\x0d\x56\x40\x9d\x9a\x6e\x55\x89\x4d\x44\xb8\x3a\x4c\x9d\x96\x7b\xf2\x17\xba\x21\x67\xb2\x14\x1d\x51\x72\x3a\xda\xd1\x38\x28\x93\x77\x6d\x40\xea\x30\x18\x6c\x02\x57\x8a\x4a\x5d\x6b\x9b\x65\xa4\x3e\x5f\x56\xed\x86\xe2\x63\x9a\xb1\x55\x2a\xe8\x1d\x59\xd2\x2a\xf8\x5b\x1e\x77\xc2\xc2\x00\x85\xd2\x2c\x40\x3d\xd8\xd7\x12\x16\x13\x51\xcd\xd7\x87\xfb\x87\x7f\x77\x3f\x66\x44\xa3\xb7\x3e\x19\x03\xc5\x2d\x68\x79\xce\x8b\x1d\x31\x7d\x38\xb5\xbe\xae\xa9\x0c\x4d\x9f\xdf\x5e\x5f\xf8\xa9\x09\xe7\x12\xa9\x09\x3f\x1b\xd0\x6f\xde\xbd\x4f\x78\x94\x38\xdd\x36\x62\xe7\xbf\x85\x8f\x7c\xc2\x6a\x28\x12\xae\x88\x70\xfa\x44\xf5\xba\x13\x66\xfc\x7f\x4c\x1a\x5b\x46\xe2\xf3\x93\x7a\xce\x59\x0b\x2c\x69\xdd\x9f\xcc\x7b\x6d\x94\x95\x70\xd3\xe6\x36\xaf\x25\x91\xfc\x3e\x4e\xa5\xbf\x45\x12\x58\x5a\xa3\x6e\x1e\xee\xd7\xab\xc7\x47\xff\x36\x61\x0c\x59\x5f\xe6\xf2\x22\xab\x81\x56\xd6\xfc\xe7\x08\x75\x60\xf1\xfd\x8b\xa2\x3c\x15\x1a\x29\x5f\xbf\x74\xc4\x21\x22\x89\x79\x6c\xb3\xde\xb4\xc5\xa0\xee\xf7\xbc\x79\x23\xfc\x7b\x1f\x40\x1a\x3f\x5e\xc2\x43\x0f\x92\xbc\x39\x99\x5d\x17\x51\x48\x92\x14\x52\xe3\x54\xa6\x7d\x2c\x70\x58\xd6\x38\xb9\x8c\x62\x18\x18\xa0\xcc\xd2\x4d\x6e\xe6\x71\x3a\x49\xa2\x88\x3f\xcd\x8b\xe0\x16\xe6\x3c\x1b\xf1\x4d\x12\x10\x18\xee\x39\xca\xf3\x73\x81\x8b\x7e\x47\xeb\x2e\x92\x94\x13\xfb\x04\xce\x8c\xc3\x51\x16\xe7\xee\x48\x40\x6c\xd6\x7f\xac\xd6\x9b\x87\xaf\xf7\x28\xcc\xb5\xee\x0e\xa6\x16\xd5\xc6\x6e\xd8\x0f\xcf\x7d\xf0\xd3\x8d\x2d\x49\x35\x60\x38\x92\x80\x83\x2f\x32\x37\x63\xf2\xff\xe1\x3e\xdf\xee\xd0\x09\xe9\x18\x37\x6b\xf9\x01\xe8\xd4\x8f\x1a\x48\x46\xd5\xa6\x35\x34\xff\x73\x3e\xea\x4b\xfd\x47\x91\x48\x0b\xc8\x45\xf0\x24\xdf\xa1\x1a\xb0\x7b\x91\x92\xeb\xec\x5a\x96\x28\x96\xa1\x3f\x6c\x60\x2f\xcf\x8b\x53\x53\xba\x01\xe0\xdf\x5a\x85\x46\x3a\xa7\x9d\x16\xa1\xbb\xb2\x5a\xbe\xc9\x6a\x37\x35\xc0\x13\x1d\x18\x5f\xd8\xd0\x9a\xf9\x8f\xb9\xaa\x3a\x72\x60\x91\x68\x4d\xa9\xf3\xf9\x72\x05\x91\x68\xcb\x90\x7f\xef\xd0\x0e\xbc\x07\x2c\x81\x69\x87\x5f\xb0\xa8\xfa\xca\xb4\x7f\x8c\xe7\xe1\xbc\x42\xb4\xbb\x9e\x31\x09\x3a\x7e\xa6\x2c\x28\x99\xdf\x41\x1d\x12\x08\x33\x2c\xef\x41\x76\x84\x61\xda\x2e\x01\x2d\x03\xdb\x41\xd7\xbc\x08\x20\x09\xd2\x0c\x1a\x59\xe9\x6b\xa6\x73\x5f\x1a\x3b\xfa\x54\x60\x2d\x06\x88\x4b\xe7\x69\x8e\x63\x2a\x49\xeb\x13\x5a\xcf\xec\x34\xb4\x06\x12\xcb\x19\xc2\xc1\x8e\x39\x68\x18\xc0\x7c\x45\x62\x05\x55\x22\xd6\x6f\x58\xe5\x75\x2b\xf3\x49\xef\xdb\x20\x48\xc2\x61\x32\xbd\x86\xbd\x7d\x36\xa6\xbb\x40\xc6\x70\x68\xbb\x1e\x6b\x57\xf2\x57\x57\xdb\x4a\x2d\x52\xc6\x12\x0a\xbb\x43\x03\xd5\x21\x2f\x80\xc6\xed\xbc\xe9\x90\xb2\x98\x82\x4a\x84\x7f\x19\xee\x30\x18\xfd\x1a\xd7\x79\x8b\x94\x19\x32\xe1\xf0\x73\xc0\x3c\x82\xc4\x35\xe5\xcc\xa2\x96\xf8\x23\xd4\x75\x59\x6c\xe3\xf9\x81\x9b\xf2\x80\xa3\xe8\x87\x3a\x5d\xcd\xa4\x4c\xcf\x88\x39\x3a\xc1\x6b\x00\x47\xf1\x30\xc2\xa7\xcd\x4e\xe2\x94\xa7\x76\x84\x3b\xfa\x2a\xf5\xe4\xd5\x78\x96\xfa\xa4\xe8\x9f\xf2\x74\x57\x56\xf7\xb2\x5e\x9e\xaa\x99\x18\x43\xca\x0d\x8b\x7c\x90\x74\xdb\xbc\x55\x00\x08\xb8\x5d\xfd\xe7\xa6\x83\xb3\x8a\x54\x38\x3e\xcb\x1a\xf6\xfb\x0e\x3c\xec\x8f\x85\x31\xa5\xf8\xde\x40\xbf\x6f\xf2\xe3\x00\xeb\x2d\x52\x11\x5b\x17\xeb\x40\x07\x05\x4e\x87\x9b\xa1\xf6\xb6\x6f\xa5\xb5\x90\x9d\xd2\xe4\xf0\xc3\xd5\xb7\x0f\xb7\xf3\xe6\x41\x1a\xe8\x20\x49\x50\xa5\xeb\x07\x98\xa5\x3c\xae\xe5\xe1\xb8\x1f\xfa\x3a\x69\x00\xc4\x12\x86\x6c\x7e\x53\x0f\x24\x0d\x45\x48\x81\xdb\x01\x54\xc9\x4f\xd5\x34\xd4\x84\xb4\xf3\x76\xe4\x5a\x5a\xe8\x22\x28\x69\x6c\x32\xcf\x05\xf4\x5a\x7e\x2e\xcb\x7d\xe9\x50\xda\xdc\xab\xb7\xcd\x7f\xed\x18\x82\xac\x2f\x23\x7b\x91\x55\x33\x03\x15\x48\x93\x30\x4e\xd3\xce\x9a\x68\x77\x9e\xf1\x55\xd2\xc0\x60\x49\xee\x5e\xf7\x30\x73\x91\xa6\x59\x1c\x64\x5d\x3d\xe3\x1d\xc0\xcb\x49\x5d\x8d\xa2\xcd\x0f\xdf\x54\x87\xf8\x19\x5e\xaa\xbc\xf6\x2b\x53\x9a\x09\x95\xb8\x82\x58\xb5\x2f\x8e\x50\x41\x2f\xab\xec\x9b\x44\x02\x5c\x8e\x6b\x45\x1a\x54\x9d\xda\x4d\xd7\xa1\x92\x29\x5c\x2c\x9c\x65\x72\x37\xd0\x4f\x1b\xc6\xf2\x52\xc9\x75\xd2\x17\xe2\x10\x69\xe0\x6b\x5e\xbf\x5f\xd3\xfb\xf0\xa7\x05\x49\x1c\x0d\x40\x76\xf8\xd1\x1e\x8a\xfa\xb2\x98\x4b\xa4\x4a\x90\x20\xb7\x34\xe6\xa6\xca\xcd\x8e\xe6\x1d\xc9\x91\xa2\xe8\xfc\x64\x0f\x4b\x55\xa0\x90\x3b\xa0\xa3\xc7\x27\x9b\x73\xbe\x13\x95\x34\x68\x65\x3c\xdd\x79\xcb\x28\x55\x56\x4b\xf0\x6e\xfc\xba\x91\xef\x57\x7c\x9f\x54\x27\x29\x3e\xd9\xc3\x72\x81\x10\x0d\xff\xb3\x4d\x30\x48\xbd\x5e\x2d\xb7\x2f\xab\xd7\xed\x6a\xf3\xc5\x13\x5c\x8b\xd4\x24\x82\x47\x5e\x5b\xf1\x3f\x03\x5e\x6f\x7f\x3c\x13\x69\xa7\x03\xef\x7b\xa6\x33\x60\x7f\x1a\x7f\x48\x81\x85\x22\xf0\xf0\xeb\xa2\xaf\x07\x13\x29\xf0\x00\xb3\xfe\xa5\xb5\x50\x7d\x81\xfd\xf1\x5b\x9d\x17\xbb\x2b\x24\x97\xd3\xab\x72\x89\xe3\xb7\xeb\xcd\xaa\x3c\xbc\x94\x93\xbc\x48\x0a\x41\x82\x55\x48\xb8\x23\x6e\x40\xf6\xcb\x42\xd9\x15\x3c\x88\x14\x52\x8a\x38\xba\x2a\x39\x0c\x00\x4f\x1c\xde\x14\x54\xc8\x3a\x34\x1f\x18\x57\x72\x32\x1e\x13\x60\x39\xa1\x7d\x30\xd8\xf6\xe4\x45\xed\x45\x6a\x59\x48\x6e\x1b\x96\x8f\x38\x23\x6b\x5a\x49\x7a\xb9\xd7\xa7\x36\xf5\xe4\xc5\x87\xbc\xd8\x52\xae\x66\x7b\x94\x67\x0c\x22\x52\x9b\x8c\x71\x8b\xc8\x2c\x4f\x05\x32\xa8\x95\x99\x23\x86\xfd\xe9\xa6\x90\xb1\x04\x10\x99\xb3\x97\x35\x11\xb9\x6d\x6d\x8c\x42\x73\xee\x72\xdd\x4d\xa5\x40\x37\xbe\xca\x77\x6f\xa4\xdf\x80\xab\x79\xeb\x0e\x3d\xdb\x2e\xcd\xd3\x35\x06\x34\xf0\x16\xba\xac\x8a\x97\xb2\x19\xc9\x0b\xbb\x36\x3c\x33\x99\x67\xd6\x28\x0b\x38\xcf\x29\x6f\x89\x8c\x83\x32\x66\x50\x20\xeb\x72\x28\x8b\xe9\xd5\x84\x01\xa6\x3a\x45\x4e\xa7\x42\x31\xeb\xbe\x64\xa1\x4b\x61\x6f\x35\xde\xf7\xef\xed\xb8\x59\x98\x86\x58\x48\xe8\x08\xb2\x87\x22\xc4\xa3\xa4\xf6\xcf\xfe\xf8\x4b\x99\xd0\x38\xd5\x8a\x7c\x57\x20\x0a\xb4\x92\x17\xc2\xaa\xae\x71\xc4\xd2\xc4\x6d\xc9\xcf\xd5\x52\xea\x37\xda\x67\xf3\xe6\x7c\x53\x16\x93\x25\x3e\x8b\x52\x92\x21\x73\x76\x2b\x12\x19\xb8\x43\x71\x1a\xb0\x61\x24\xf7\xa5\xf2\x19\xed\x31\xaa\xf8\xe7\xbd\x10\x4b\x40\xd7\xab\xc9\x0f\x40\x95\x38\x0f\xc5\x53\x5e\x9c\x9a\xfe\x3e\x26\xc4\x6d\xbd\xc6\x8b\xbb\xba\x62\xf4\xce\x7e\x95\x9a\x99\xdc\x09\x20\x16\x83\xe7\x75\xc9\x9e\xf9\xd5\x33\x4b\x02\x69\x89\x1f\xe5\x6b\xd9\xdc\x9e\x8e\xfb\x5c\xcb\x06\x5c\x39\xdc\x24\xdd\x90\x25\xa1\xe0\x69\x37\xf9\x3b\x6c\x97\x13\xb1\xf4\x2f\x92\x44\x31\x16\x10\x1e\xc0\x38\x95\xf5\xda\xe5\x3c\xbe\x15\xf9\x34\x08\x92\xa5\x89\xce\x68\x1a\x55\x1d\x3c\x3f\x4b\xb3\x00\x03\xe2\xe8\xd4\xb6\xa6\x68\xee\x49\x2e\xae\x84\xa5\xc6\x2f\x95\x05\xc2\x10\xed\xd6\xb1\x29\x7f\x09\x12\x18\x3f\x4f\xa6\x53\xe4\x66\xb8\x07\x5f\xe8\xff\x50\x93\x06\xea\xcd\xf9\x16\xf1\xa9\xbd\xad\x9e\x65\x96\xd4\x72\x28\x06\xf3\x15\x7e\x34\xdf\xf3\xc2\x94\x9f\xc4\x85\xdc\x6e\xcc\xaf\xad\xe3\xf1\xdb\x45\x3e\x24\x93\x5c\x62\xa1\xf9\x6d\x17\xdc\x9e\xff\x3e\x32\x52\x59\xd6\xab\x4e\x43\xd5\x9c\x5d\x18\x7f\x8e\x59\x55\x64\x32\x35\x88\x59\x7b\x2c\x77\xbf\xff\x6b\x39\x44\x32\x4f\xfa\x5d\x66\x54\x42\x87\x79\x33\xf2\x49\xfd\x92\xca\x1d\x87\x80\xc8\x54\x9a\x20\xa7\x8c\x34\xe6\x8f\x72\x40\x93\x3c\xbe\x94\xd2\x44\x3e\x36\xa6\xb3\x18\x0f\x1d\x2d\x25\x0e\x9d\x37\xb9\x1f\x44\xe3\xb2\x76\xa7\x55\x44\xa5\x06\xf9\xae\x20\xf3\x60\x7a\x9b\x49\x5d\x99\xc8\xc0\x50\x49\xa5\x83\xa1\x0c\x2d\x78\xd7\xc2\xa6\xcc\xf6\xca\x09\x4e\x87\xed\xa9\xf5\xf2\xaf\xee\x20\x92\x31\x85\xba\x3f\x9d\xf7\xb4\x55\xb2\x86\xed\x01\xc7\xf8\xb6\x1a\x49\x71\xfa\x53\x42\x22\x72\xa9\xa5\x85\x5e\x10\x4c\x8c\x1f\x46\xb2\x58\x63\x4e\xfb\xeb\x9d\x2f\xbf\x92\x4c\x05\x68\x9d\xf9\x49\xfa\x0a\xed\x80\xd6\x0d\x98\x75\x33\x53\x2f\xf3\x8f\xc9\x6d\x55\x80\x59\xb0\x3f\x9e\x1f\x9f\x5f\x7e\x96\xf6\x97\x5c\x70\xe6\xea\xb4\x88\x1d\x64\x04\x3a\x90\x3c\x52\x08\x6d\xc6\xfd\x0b\xf5\x2d\xf7\x1b\xa8\x47\xd9\x31\xc9\xd3\x84\x56\xae\x72\xb7\xdb\xf7\xf9\xe2\x7e\x2c\x4b\xae\x85\x25\x41\xca\x41\x4e\x44\x0a\x46\xb1\xbf\x1d\x34\x77\x79\x21\xf7\x8b\xa2\xfe\x84\xea\xc1\x3e\xc9\x46\xbf\xc1\xa5\x3c\xe3\xf0\x95\xa7\xe6\xa6\x14\x09\xf1\x75\x4b\xdb\x8d\x67\x6f\x1a\xc9\x40\x04\x28\x69\xe6\x86\x9f\x63\xf9\x27\x3d\xa3\xf1\x55\x02\xf5\xff\x71\xf6\x26\xdb\x6d\x23\x59\xd7\xe8\xbb\xfc\xa3\x1c\x7c\x03\x44\x87\xe6\xce\x28\x89\x92\x59\xa9\x86\x25\xd2\x76\x56\xd5\xfa\x17\x57\x34\x27\x28\x94\x41\x80\x09\x80\xb6\xf5\x3d\xfd\x5d\x38\x11\x81\x8e\x90\x33\xef\x9d\xa4\x9c\x44\xa0\x0b\x44\x73\x9a\x7d\xf6\x56\x18\x37\x3e\x48\x63\x3e\x55\xf5\x1c\x9c\x20\x99\x76\xd5\x92\x8e\x4e\xe7\xe9\x61\x7e\xba\x75\x2a\x7d\x98\x49\xe8\xd9\x9e\xc3\x63\xf0\x2c\x42\x49\xb2\xf3\xa1\x09\xc5\x96\x55\x67\xf7\x19\x9f\xe9\x5d\x36\x41\x25\x57\x29\xce\x43\x47\xd6\xeb\x13\x14\x23\x82\x30\x2a\x63\x96\x61\x39\xd9\xab\x0b\xca\xa0\x41\xb3\xb8\x58\xc8\x84\x00\x78\xcb\xe0\x26\x37\x66\x00\x6a\xcc\xe1\x10\xd3\xf1\x99\x24\x46\x99\xa1\x58\x2b\xac\xb4\x1f\xdc\x43\x39\xba\xab\xa3\x83\xff\x86\x87\x4c\x59\xa2\xf8\xaf\xb8\xf2\x16\x70\x04\x32\xd5\x8e\xb0\xb4\x73\x85\x03\x66\xc1\x57\xca\x6f\xca\xd1\x96\x22\x33\x1f\x98\x3c\x22\x3d\xcc\x3b\xd4\x13\xe8\x92\x94\x54\x47\xa6\x8f\xc6\xdc\xf4\xc9\x31\x29\x05\x43\xe8\x85\x34\x66\x55\x9c\xdf\xe4\x6c\xf7\x98\x7e\x7d\x29\x75\xe2\xeb\x33\x7e\x87\xf7\xdf\xe6\x07\xad\x03\x01\xe1\xfc\x39\x9c\xf2\xa2\xfb\xbe\x65\xff\x84\x2a\xa1\xdc\x27\x80\x2e\xe7\x5d\x2b\xf5\xb7\x3b\x38\xb7\x6f\x8f\xb9\x9a\x2d\x06\x4a\x49\x1c\x83\x5f\xdf\xaa\x66\xd3\x3e\x54\x65\x29\x6f\xfa\xab\x68\x92\x62\x05\xcb\x4a\x55\x97\xfe\xed\x34\x97\xc8\xb3\x81\x5e\xb5\x1e\x5e\x4e\x0b\x25\x3d\x87\xfd\x44\xd0\xc1\x51\x49\x17\x60\x6e\xde\xf7\x50\xca\x61\xb6\xeb\x4c\x61\xcd\xdf\x01\x1a\x5d\x57\x3f\x3e\xf8\xc0\xa6\x73\x9f\x46\xe0\xfa\x1d\xe8\x1a\x66\xcb\x79\xe7\x72\xd1\x08\xd1\x9b\xef\xe7\xb6\x5a\xa3\xba\xd7\x68\x4a\x1a\xa3\x32\xa7\x41\x80\x6c\xe8\xbc\xff\x1d\x22\xf4\x9d\xaa\xd2\x8d\xf1\x4d\x79\x9f\xcb\xf6\x2b\xe4\xa1\x01\xd8\x54\xf7\xc4\xe6\xcd\xd4\xb0\x90\x56\xe9\x24\x08\xd8\xfc\x28\xc1\x6c\xab\xbc\x6c\x17\xaa\x6d\xa5\x05\xa7\x16\xe0\x82\x5b\x72\xd1\xf1\xfa\x0b\x63\x6a\xda\x29\x2a\x52\x4c\xcb\x19\xd1\xf1\xbe\xda\xdc\xae\xb6\x9d\x6d\x35\xe4\x52\x55\xa4\x62\xea\x14\x47\x8a\xbc\xdd\xb5\xf5\x52\x3e\x57\x45\x86\x45\x2e\xce\xee\x56\xfd\x49\x2a\x60\xfa\x2e\x8a\x68\xed\x05\x14\x91\x8e\x61\x24\x68\x11\x1a\xd8\x54\x66\x7d\x8c\x03\x69\xff\x16\x3f\xac\xa2\x89\x43\xce\xbb\x0d\x6d\x2c\x0f\x4a\x15\x05\x8d\x51\xe3\xbc\xcc\xdb\x83\xea\xba\xf4\xfd\x70\xae\xab\x63\x2d\x4f\xb3\xe7\x61\x19\x05\xe8\xfd\x2c\x8f\xb0\x0b\xc7\x24\x0f\xd1\xdf\xf5\xeb\x6d\x42\xc9\xb3\x6d\xaf\xdc\x2b\xdf\x96\xa7\x8e\x6f\x11\xbf\x5f\x3d\x12\x04\xa7\x8a\x67\x42\xfa\x94\x79\x90\x22\xa7\x8a\x2b\xe9\x4a\xc4\x4e\x1e\xbd\x81\x63\xdd\xc5\x2b\x66\xe1\x2d\x25\x52\x16\x18\x2d\x31\xca\x3c\xcd\x0c\xaa\x98\xca\x68\xc2\x8a\xf9\x09\xea\x6a\xee\xa1\xaa\x38\xa5\xb1\xaf\x74\x31\x79\x7b\x57\xcb\x63\xf5\xc1\x9a\xd8\x35\x4d\xbb\xde\xfb\x11\x14\x6c\x9e\xf2\x72\x5f\x7d\xfb\xe0\xcd\x63\xb0\xc8\x2b\xdc\x19\xc5\xcd\x98\x55\x63\x36\x34\xaf\x4d\x14\x95\x44\x31\xae\x42\xea\xf2\xbe\x75\x54\xd7\xb3\xc1\x90\x6a\x89\x71\xc3\x43\xde\xdc\xe5\xf2\x54\x95\xe6\xe5\xd2\x36\xf9\xac\x86\x4d\x65\xcc\x25\x09\x6e\xdf\xba\x75\xb4\x1c\xd1\xe3\xcd\x8c\x89\x0f\x1e\x2d\x5c\x26\x49\x1d\x38\xd5\x98\x17\x6b\x01\x69\xdb\x27\x31\xa6\xeb\x22\x4b\x7f\xa6\x04\x8e\x41\x1b\x44\x97\x0f\xc2\xf2\x54\xa9\x48\x58\x1b\xb6\x43\xb2\xf5\x60\xa6\x79\x85\xdc\x52\xbd\x9c\x52\xb1\xc0\x39\xfa\xb4\x7a\xfe\xb4\xda\xef\x57\xcf\xdb\xd7\x97\x3f\xfe\x95\xec\x3f\xad\x02\x89\x62\xd7\xc6\x20\x63\xd2\x63\x75\xf4\x85\x61\x39\xe6\xab\x3f\x88\xd3\xcd\x9e\x5a\x65\x86\xb9\x75\xc5\x5e\x4a\xd3\x6d\xc4\x7d\xec\xa3\xb3\xfe\x46\x7a\x30\xcb\x5f\x5e\x27\x1c\x51\x02\x3d\x03\x6f\x55\x06\x89\xf7\x59\x43\x9d\xba\x6a\xf3\x1e\xb8\xd2\x6c\xca\x9b\x4b\xf1\xed\x63\xf3\x55\x19\xaa\xc1\x43\x74\x36\x27\x79\xc4\xec\xd1\x6d\x51\x5d\xae\xa4\x8a\xa7\x6b\x91\xd1\x29\xa6\xff\x6d\x0d\x60\xbe\xe6\xe5\xb6\xaa\x8a\xfb\xaa\xc6\x4a\x9d\x11\xef\x15\x55\xc6\xe8\x6c\x90\xd7\x7c\xbd\x14\x9d\x0d\x37\xa1\xe9\x9b\x11\xf6\x51\x05\x49\x8a\xec\x26\x0e\xca\x79\x38\x77\xf6\xc2\xf8\xb0\x8c\x91\xcf\xe4\x5b\xae\xbf\xe1\x40\xe8\x1c\x83\xf9\x17\x98\x7c\x00\x6b\x13\x4c\x60\x98\x2a\xac\x96\x1f\xd4\xb7\xeb\x48\xda\xcc\x03\x35\x3a\xcf\xa5\x7e\x29\xc3\x26\xf5\x97\x31\xda\xd9\x85\x0c\xc1\x6e\x75\xaf\xfd\x78\xd1\xdf\x26\xb0\x13\x4d\xa2\x14\x81\x6d\x7d\xb5\xc3\x50\x68\xab\x29\x8b\x70\x1f\xba\xab\xf4\x05\x9d\x41\xbf\xa5\xc2\x5c\xd2\x3f\xb4\xf7\x0a\x6d\xf7\x55\x85\x8a\x6e\xf3\xc8\x9a\xa6\x89\x8e\x79\x50\x29\x39\xb3\x10\x95\xd3\x0c\x20\xc8\x7c\xef\x46\x7c\x97\x55\x51\x40\x7d\xbb\xac\x47\x36\x7b\x4d\x66\x13\xc1\x91\xe4\xd6\xf4\xd5\x3a\x43\xba\x14\x0f\x27\x5e\x83\x29\x87\xba\xc9\xe7\x0c\x22\x54\x73\x61\xf1\xd9\x4e\xf2\x67\x7e\xba\x9c\x46\x08\xfb\x70\x11\x21\x24\xe6\x5e\xaa\x33\x4c\x09\x9a\xa9\x16\x19\x0f\x21\xf8\x0f\x9e\xf3\xd7\xd1\x38\x1d\x13\x49\x23\xbf\x81\xc9\x41\x09\x57\xc9\x63\xd8\x9a\x75\x1c\x0b\xe2\xea\x69\x6b\xac\xbd\x59\x6d\xfa\x23\xd2\x55\xc0\xbf\x82\xae\x4a\x9d\x5f\xdb\xd7\xd3\x75\x40\x27\x94\xc1\x90\x82\x0e\xaf\x32\x9f\x66\x23\x4b\x57\x27\x09\x8d\x7c\x8e\xfc\xf1\xf1\xcb\xa1\xdb\x51\xfa\x62\x2a\x9d\x18\x9b\xb0\xde\x59\x1d\x11\xd8\x51\x9d\x46\x02\x07\xfc\x8f\x1e\xfb\xa0\x53\x9a\x66\x9e\xbd\xf7\x7c\x19\x58\x6d\x7e\x15\x10\xd1\x69\xb7\xa4\xf8\x20\xdf\x6b\xa5\x2e\x1f\xa1\x5a\x74\x2a\xa2\xac\x27\xa6\x0b\x2e\xe9\x15\xa5\x10\xd5\x69\x96\xc6\x7e\x87\xed\x36\x4f\xcf\x93\xb7\x80\x98\xd2\x59\x6c\x31\xc4\xfe\xef\xd5\xbf\x56\x63\xbf\x52\x67\x59\x84\xa4\x02\x18\xa4\xdf\xbe\xae\x87\xa8\x80\x96\x5a\x21\x76\xa6\x57\x38\x78\xea\x89\xc9\xa8\xd6\x51\x1a\xf8\x31\xb7\x52\x7f\x93\x47\xf0\x8e\x51\x67\x1b\x41\xf3\x81\x80\x45\x38\x99\xb8\x72\xc3\x06\xda\x03\x78\xbe\x9c\x43\xdd\xf9\xfa\x79\x79\xb8\x4a\xb4\x68\x9d\x19\xc4\x99\x5c\x9a\x5e\x37\x82\x6a\xad\x38\xf5\x72\xf7\xdb\x42\xb6\xb6\xaa\x4f\x9b\x52\x57\xa7\xbc\x3c\x4e\x2a\xcf\xfb\xcd\x60\x3a\x52\x0d\x75\xe0\xf3\x60\x4a\x2e\xc8\xab\xce\x72\x39\xda\x50\xee\xd0\x71\x88\x70\x9f\x5f\x4f\x38\x02\x9a\xbc\x3c\x5f\xda\x19\x8d\xcc\xd5\x1a\x37\x59\x6e\x8c\x66\x58\xa0\x82\xcc\x73\xfb\x51\x96\xc4\x1f\x87\xc4\x45\xe1\xb4\x2c\xba\x2d\x61\xf9\x31\x43\x5b\xcf\xc7\xdb\x20\xc2\x7a\xe2\x9e\x69\x1b\x01\x42\xa5\x54\xe0\x82\x5a\x5d\x23\xdc\x27\x37\xb6\xa9\xab\x70\x6f\x68\xec\xfc\x0e\xd2\x1f\x70\x55\xc5\x9d\x61\xf7\x7e\x86\xc9\x4a\x6c\xa2\x48\x53\x2f\xb5\x59\xf5\x3c\x5b\x93\x37\x32\x11\xc4\x62\x58\xcc\x47\xf2\xc5\x8b\x35\xd2\x86\x70\x11\x3b\xce\x82\x3f\x2f\x79\x0d\x66\xfd\xf3\x1c\x02\xf6\x4e\x7b\xe8\xb7\xd0\x30\x26\x98\xc8\xd3\x45\xd5\xe0\xd2\x3b\xcf\x0a\x19\xa2\x1c\x84\xf3\x5c\xe5\x4d\x53\xb9\x7a\x0d\x7f\x88\xea\x0c\xd1\x15\x79\xd3\x2b\x20\x82\x09\x01\x84\xd9\x13\x71\x26\x31\x3f\x7f\xac\xbe\x87\xd3\xe3\xc8\xa6\x4e\xe7\xa1\x28\x3e\x9f\x07\x31\xa8\x70\x98\xc7\xa9\xd3\xc3\x6b\xaf\x6a\xc2\xae\xad\x08\x13\x27\x8e\x4a\xc6\x83\xbe\xbb\xe7\x7c\xc4\xd2\xc5\xfe\x7a\x19\x4b\x3d\xf5\xd6\x67\xec\xfd\xfe\x80\x4e\x22\x1f\x18\xd8\x3f\x5d\x66\xa4\x1c\x26\xa1\x2e\xdc\x68\x20\xf8\x95\x5e\xc7\x77\xd6\x2e\x8b\xd3\xd4\x2f\x94\xaf\x55\x51\x20\xa5\x76\xb8\x83\x8c\x81\x7a\xe5\xed\xba\x7d\x1b\xa1\x38\x8d\x8e\x22\x2c\x9f\xae\xa5\x86\xfa\x90\x0f\x4c\x7e\xd4\x68\xc6\x11\x5c\x69\xf2\xa6\x33\xd8\x76\xd0\x93\x4c\x8d\x32\x43\x46\x0b\x2d\xa3\x20\xaf\xdb\x87\x60\x7e\x41\x72\x31\x64\x9c\x07\x83\xc6\xe8\x98\xa3\xdf\x81\xa9\x7d\xe7\x8f\x1d\xde\x7a\x01\x24\x6a\x74\xaa\x91\x19\x70\x2c\x98\x38\x30\x4d\xce\x7a\xa2\x1b\x15\x41\xa2\xbb\x6e\xbd\xa9\x35\xcc\x38\xa3\x55\x9c\xb8\x3a\x84\x93\xcc\x4b\xbf\x14\x86\x3b\x19\x9e\xa0\xf3\x72\xc0\x55\x66\xd3\xc2\xe9\xd7\x39\x42\x63\xd2\x04\xc9\x29\x6e\xe1\xbb\xd4\xf7\x3d\x2f\x39\x35\x26\x73\xae\xbc\x34\x66\xa1\x18\xc3\x37\x02\xe2\xd8\x2a\x07\x9e\x9c\xee\x12\x28\x06\x32\x67\x43\xa7\x06\x52\x19\xbc\x06\x4c\xe1\x40\xa9\xc1\xd5\xf7\x7f\xcd\x4b\x08\xb5\x19\x79\x55\xde\xbc\xbf\xc2\xf1\x52\x20\x86\x62\x79\x97\x9b\xfe\x3a\xb9\x8b\x25\x09\xf5\x8f\xb4\xd3\x0b\xa4\x0d\xa1\x19\xb5\xdc\x65\xf1\xeb\xef\xb9\x86\x5d\x3b\x06\x90\x1b\x9b\x29\xec\xc6\x15\x92\x82\xb4\x23\x85\xde\x69\x07\x00\x61\x42\x86\xc8\xdb\xe5\xfd\xda\x11\xf0\xcd\x28\x4d\x5d\xb6\xc5\xcf\xee\x29\x28\x08\x68\x1c\x27\x5e\x59\xe3\x69\x77\x1b\x7e\x65\xb1\x60\x51\x90\x18\xa8\xbf\x15\xb0\xaf\x01\x5e\xab\xaa\x9d\x86\x50\x7d\x6b\xce\x4c\xd6\xf5\xee\xea\xcb\x6a\xf3\xb8\xba\x79\x5c\x1f\xb6\xaf\x6b\x94\x6e\xd9\x7d\xde\x6e\x1f\xff\xf5\xdb\xd0\x0e\x57\x9d\x6f\xef\x3a\x90\xa4\x84\x89\x06\x82\x45\x58\xdb\xfb\x49\xea\x6f\x4d\x7e\x9c\xbd\x84\x88\x2d\x46\xb0\x5c\x8e\xb5\x5f\x53\xc2\xd1\xc4\xe2\xa6\xf1\xf4\xf2\xbc\xfe\xd7\xfe\x75\xbd\x46\x12\xf4\xfe\xa8\x4a\x90\x8a\xec\xc1\x85\x70\xea\x76\x94\x69\x83\x98\x13\x1e\xb4\xcc\xe5\xe9\x2c\xf3\x63\xd9\xfb\x87\x37\xef\x1b\x33\x8d\x41\x41\x22\x9c\x15\x86\x26\xeb\x7b\xf8\x3e\x4b\xc0\x3a\x48\x14\xc5\x80\xf9\x77\x59\xe6\xc5\xac\xd3\x53\xa0\xda\x83\x98\xc2\x76\x7e\x05\xa4\x85\x14\x94\x71\xc4\x9a\x67\x79\x69\x46\xb1\xfe\xe5\x09\x01\x59\x24\x94\x1b\x0f\x85\x9d\xdd\x2f\x33\x8a\xfa\x60\xe5\xc1\xb3\x04\x1c\xd4\x2c\x8f\x3f\xbd\xb9\x8c\x14\x42\xa1\x37\xcf\x5f\xc2\x45\x64\xe2\xe2\x6f\x37\xd5\x6e\x6c\x54\x81\xcc\x62\x44\xf9\xe7\x48\x7a\x5e\x8f\x85\xce\x29\x48\x05\x49\x5f\x62\x78\xf9\x0e\x57\x3b\x7a\x68\xa7\x2d\x2e\x53\x9d\xb9\xb1\x29\x9b\x4b\x3d\xda\x4f\x40\xc9\x24\x71\xb4\x53\x5e\x9b\xd8\x07\x6c\xef\xf3\xba\x69\xbd\x25\x66\xfa\xc6\xda\x91\x68\x77\xef\xea\x02\x46\xa8\xef\xeb\x8f\x6a\x29\x63\x3a\xe8\x18\x87\x9a\xe2\xe9\x96\x07\x36\x8b\x22\x15\xe4\x49\x7e\x3e\x56\xd2\x57\xb4\xfb\xac\xf6\xcd\xfb\x63\xdb\xdf\xcf\x66\x0c\x9f\xbc\xc4\xb8\xe4\x6d\x71\x51\x4e\x45\xf5\x6f\xf9\x10\x60\xc1\xa9\xc4\x9c\xf2\xf2\xce\x23\x06\x37\xe5\x10\x9c\x04\x6b\xb5\xaf\xc6\x5f\xe2\x2a\x74\x8d\x6c\x24\x5c\xed\x96\xf6\x23\xd8\x45\x63\xfb\x2e\xb1\x91\xcd\x06\x79\x41\x40\xee\xf9\xf7\x65\x44\xac\x25\x04\x8c\xcf\xa0\xdc\x41\xf9\x1e\x64\xcd\x27\xb3\xc0\xd2\x08\xe8\x58\xd5\xc7\x0b\x74\x3b\x9c\xd3\xf4\xd1\x68\x4c\xb8\x5f\xa4\x7a\x4b\xe3\x83\x5b\x53\x95\xb2\xb4\x4f\x6c\x7a\x90\xa0\x19\xfa\xc2\x32\xa2\xd0\x4e\xe8\xd1\x22\xa3\x29\x11\x9a\x18\x02\x7e\xe7\x45\x46\xc6\x57\x68\xaa\x4b\x7d\x45\xf0\x66\xb9\x56\x88\x79\xe8\x33\x8c\xde\xc9\xb0\x82\x65\x22\xea\x25\xec\x87\x2e\x14\xa9\x42\x54\xfb\xeb\x6a\xbf\x3e\xdc\x7e\x5a\x3d\x3f\xac\x0f\xfb\x4f\xaf\xeb\xdd\xa7\x97\xc7\xbb\xd0\x28\xa6\x0a\xeb\x9f\xdc\x1b\x7c\xa4\xc8\x15\x1a\x33\x83\xd1\x02\x94\x39\x30\x37\xef\xc8\x6b\xb3\x38\x48\x6c\xdc\x2d\x53\x9d\x13\xfb\x4d\x9e\xf2\x27\xf9\x73\xeb\xb1\x24\x87\x70\xe3\x44\x5b\x04\x54\x2d\x41\xc2\xd3\x71\xbd\xbe\x4d\xac\x42\xf3\xf2\xb5\x0a\xec\x67\x61\x91\xb0\xa9\x04\xd6\x53\xa8\x18\x80\xd3\xfa\x23\x97\xcd\xa6\x8a\x39\xb5\x47\x87\x87\xfe\xbb\xfc\xbb\x7f\xcf\xaf\xb6\x99\x50\xe8\x1a\x3f\x6c\xc2\x7e\x64\x65\x6c\x31\x6c\x03\xe3\x6f\x22\x93\x38\x73\x60\xeb\xdc\x4c\x72\x8c\x56\x09\xc7\x47\x33\x05\xdd\x6c\xca\xce\xdf\x5b\x0c\x93\x59\xcd\x09\x96\x74\x3e\xbd\xef\xf4\x1b\xf4\xfb\x83\xd5\x29\x47\x62\xc2\x43\x2d\x4b\x53\x9d\x1e\x2f\x7a\xa4\x5c\x43\xad\x96\x19\xde\x28\x68\x97\xc6\xd6\x83\xae\x82\x89\x6a\x4d\x9c\x28\x0f\x7b\xf4\x24\xa7\xa3\xa4\x85\x35\x36\xc1\xf3\xef\x2f\x0d\xc8\x67\x40\x52\xe8\x70\xcc\x52\x57\x12\x7c\x5b\x95\xcd\x18\xbe\x3d\x7d\x70\x1b\x8b\xb4\xeb\x84\xbb\x53\x3e\x0d\x69\x5b\xab\x44\xd6\x0b\x8f\x0e\x8a\x14\xe1\x28\x70\x5c\x13\x0e\xc8\x29\x26\x1b\x70\xe8\x0f\x59\xac\x8a\x62\x82\x7d\x5e\xea\x2f\x16\x45\x71\x82\x81\xcf\x20\xee\xfd\xc1\xac\x66\x51\x24\x63\x43\x3c\x08\x65\x20\x32\x61\x51\xa4\x35\x1f\xe2\x74\x61\x61\x1b\x6d\x2c\x2c\xc2\xec\x29\x46\xde\x9e\xe4\x79\x69\x93\x65\x11\xc9\x5c\xec\x19\x81\xa7\xfb\x3e\x37\xc8\x22\xa2\x52\xb4\x54\xd7\x27\x95\x1f\x8f\x50\x4e\x79\x3c\x97\x6d\xb9\x61\x9e\xb0\x88\x68\x8e\xe6\x88\x4b\x36\x95\xf9\xe5\x34\x74\x2d\x8b\x08\x40\x34\xc6\xbb\x74\xa7\xaf\x07\x2d\x53\xdf\x8a\x92\x34\xd5\x53\xbf\x66\xa8\x7c\x60\x11\x4d\x2d\xf7\x56\x6e\x37\xf7\x7d\x6c\x18\x33\xe6\xbf\x56\x6d\x66\x11\x35\x51\xd0\xc1\x18\x14\xec\x97\x9b\x32\x1e\xa3\x80\x63\xae\x2b\x8c\x7a\x84\xbb\xb3\xc4\x95\xad\xfe\xcc\xab\x32\x1f\xbf\x1b\x93\x3c\x0d\x4a\x4d\x39\xe2\x49\xc2\x11\x1e\x29\x4d\x86\x44\x99\x17\x01\x31\xfd\x61\xe1\x94\xdb\x9e\x5e\x9e\xf7\x9f\x1e\xff\x75\xd8\x3c\xef\xd7\xaf\xcf\xab\xc7\xc3\x97\xd5\xe7\xc7\xfd\xe1\x76\xb5\xed\x5b\x66\x8e\x31\x0e\x0b\x21\x30\x15\xf3\xd8\x6f\xd1\xac\xdb\xcc\x30\xe2\x7d\xd3\x6d\xbe\x21\x06\xc3\x22\x61\x28\x56\x69\x3b\x3f\x7a\x55\x14\xb7\x55\xe3\x78\x11\xe8\x02\x78\x63\xcc\xe8\x30\x27\x06\x64\x51\xcc\x48\xea\x40\xfa\xeb\x46\xcb\xa9\x53\xcf\x90\xf4\x14\xd1\x9d\x55\x09\x75\x75\x5b\xc8\xa6\x09\x82\x1a\x2c\x4a\xe2\x58\x8b\x80\x61\x79\x1c\x00\x44\x2c\x4a\x0c\x45\xe1\xff\xf5\xea\xf5\xf1\x5f\x87\xdb\x97\xe7\xfd\xeb\xe6\xe6\xf3\xfe\xe5\xf5\xb0\xdb\xaf\x7e\x5f\x87\x66\xa9\x76\x52\x81\x3e\xec\x78\x5f\xd5\xdb\x3a\xff\x9e\x17\x70\x84\xd9\xf8\x49\x21\x45\xab\xed\x91\x64\x87\xed\xea\x71\x32\x37\x52\xc8\x5c\xda\x1d\xe1\xa6\x3f\x00\xce\x0e\x73\xea\x0f\x67\xa9\x40\x9a\x82\x07\x68\x7b\x4a\xd5\x29\xa9\x16\x8b\x32\x29\xd0\xd1\xd8\x34\x48\xf9\xd6\x7f\xc7\xcc\x30\x4c\xcd\xbf\xae\xbe\x6c\x0e\xab\xc7\xc7\x97\xdb\x91\x80\x34\x8b\x24\xcb\x14\x19\xf0\xcd\x9e\xec\xfa\x0a\xd6\xee\x5b\x2b\x2d\x25\xbd\x6a\xdd\x35\xec\xe9\x9b\xfa\x8f\xe6\x4f\xd1\x11\xa4\xe9\xc0\xb8\xfc\xfe\xe5\xf3\xf6\x0e\x9a\x36\x2f\x47\x6e\x12\x8b\x4c\xc4\x4d\xe4\x43\x92\xb2\x7c\xff\x54\x15\x9d\xef\x47\xdf\xfb\xe3\x49\x16\xc5\xa3\x94\xf2\xf4\x13\x9b\x2c\xc3\x08\x7a\x91\x5b\x1f\x56\x39\xe4\x79\x1e\xce\x05\xc1\x71\x33\x38\xd7\xf9\xff\x42\xf3\x36\xa4\xad\xfd\x71\xab\x94\xf4\x9f\x70\x9b\xff\x84\x62\xb4\xb8\xf0\xe9\x9e\xe7\xf2\x44\x8c\x90\x88\x60\x28\xa2\xfd\x01\x65\xfb\x3e\x61\x83\xea\x0e\xa6\xb8\x7b\x7b\x25\x59\xb4\x6a\x71\x41\xeb\x55\x2c\x18\x21\x5c\x24\x63\xf0\xce\x24\x56\x30\x14\xa4\x2c\xaf\x17\x84\x70\x89\xd2\x4d\x58\x5f\x72\xdf\xcb\x66\x30\x42\x14\xf7\x98\xff\xf6\x41\x36\xf7\x55\x7d\xfb\xb4\xff\x6d\x76\xae\x4e\x11\xcf\xf0\xfb\x68\x91\x70\xe0\xf9\x6e\xdf\xfa\xfc\x7c\xb7\x79\x7e\xe8\x46\xf8\xeb\xde\x95\x2d\xed\x57\x4f\x61\xa2\x13\x96\x38\x86\x56\xa4\x2a\x7f\xab\xab\x1f\x8d\x4b\x9e\x3e\x3a\x6d\x5c\xf8\x8e\xc9\xc8\xe7\xaa\xc5\x9f\x87\xe0\x08\x23\x4c\x27\xcc\x07\x7b\x6f\x72\x73\x5f\xd5\x1e\x55\xd2\xf9\x64\x3f\x17\xfd\x6a\x46\x98\x8d\xf1\x6e\x21\xe5\x11\x84\x63\x66\xa8\x9f\xff\xa4\x7e\xa4\x11\x0e\x34\xf1\x51\x81\x5e\x6e\x76\x5f\x05\x9e\x86\x66\x3e\x32\x89\x20\x99\x03\x10\x57\xe1\x31\x85\xe0\xb8\xe6\x15\x70\x94\xfa\x7d\x3c\x43\x49\xcc\x5c\x4d\xdf\xed\xfe\xe5\xb0\xcb\x8f\xa5\x6c\x2f\x75\xff\x7a\x71\x26\x55\xd2\x87\xdf\x9f\x64\x79\x91\xcb\x68\x49\x46\x12\x92\x41\xe8\xc3\xb6\xea\x07\x44\xc2\x23\x2c\x33\x70\x89\xf3\x89\x9e\x13\x23\x89\x50\x68\x75\x1f\xe0\x94\x23\xb8\xd4\x91\x1b\x7e\xac\xed\x3f\x31\x18\x67\x54\x4f\x13\xf2\xa7\xbe\x2f\x92\xd4\x85\xde\x6e\xc7\xe2\xf5\xc3\x06\x4c\x12\x25\x44\xe6\xd2\xc6\xa8\x21\xd1\x0f\xb9\x54\xb9\x5d\xf1\x21\xe0\x6a\x0e\xa8\xe0\x7c\xf7\xdb\x08\x84\x95\x86\xb6\xda\xe0\x0a\xd8\x79\xec\x9b\xe1\xf5\x32\x96\x31\x34\x10\xd7\x4f\xeb\xd7\xd5\x74\x2a\x88\x28\x3c\x61\xc6\x63\x4c\x68\x3e\x55\x4d\x33\xa6\xf9\xf5\x87\x65\x14\xa7\x91\x17\x6b\x9b\xa4\xaa\x19\x91\x86\x04\xa2\xea\xaf\x55\xfd\xad\x99\xa2\x1f\x7d\x23\x15\xb9\xe5\x73\xbd\xd9\xaf\x5e\xef\xc2\xa3\xa9\x94\xc8\x09\x07\x03\x72\x8a\x54\x1f\xe4\x0c\x19\x51\x99\x0e\x11\xcc\xb5\xac\xcb\x2b\x3d\x34\x46\x94\x8a\xd0\xa9\x80\xf6\xad\x33\xb3\x46\xda\x30\x8c\x28\x60\xc8\x99\x78\x46\xf5\xc9\xda\x45\xae\x06\xfb\x92\x11\xcd\x19\x26\x3c\x76\xd5\xa5\x34\xba\xb3\xf6\x27\x91\x01\x46\x0c\x4d\xbd\x6b\x1d\xb6\x07\x07\x3c\xed\x8f\x83\x20\x49\x0f\x50\x72\xe2\xe1\xf5\xac\x27\x21\x72\xd0\xc0\xe0\x0e\xbe\x74\x6b\xd7\xfa\x6e\xfd\xc7\xec\x4d\x80\x38\xfd\x24\x54\xef\x6a\xf3\xba\x9a\x1d\xb7\x92\xa4\x6c\xe4\xa6\xce\x73\xd4\x8c\x46\x11\x45\x9c\xd0\xf7\xaa\xcd\xcb\xe3\xdd\x65\x4c\xbd\xc0\x68\x64\x63\xe2\x4b\xd1\x8a\x5d\xe7\x3c\x2e\xf2\x84\x76\xed\x9c\xa3\xe9\x82\x38\x87\xcd\xed\xcb\x00\x09\x98\xb6\x24\x86\x66\x8e\xe8\x45\xea\xf6\x50\xe4\x7f\x5e\xbc\x01\x7f\x38\xe2\x33\xd6\x07\xf8\x73\x61\xe6\xce\xee\x47\x40\x12\x5f\x62\x78\x25\x36\x30\x5b\x62\x28\x8d\xdc\x07\x1b\x65\x9b\x11\xe0\xf8\x17\x50\xa2\x70\x36\x35\x48\xb9\x73\x76\x56\xe4\x7a\xff\x69\xd6\x81\xb4\x5b\xf2\x11\x8b\x20\xcb\x9b\x90\x0a\x65\x94\x72\x8b\x46\x0d\x46\x10\x7d\xfd\x73\x73\x1f\xb4\xab\x42\x23\xc8\xdc\x8e\xdb\xf9\x13\xce\x4e\x7d\x05\x69\xde\x47\x1c\x75\x8c\x32\xa6\x9d\x36\xe9\xf9\x5c\xe5\x65\xbb\x3a\xce\x45\xd9\x18\xe5\x34\x61\x2c\x84\xdb\x2f\xa5\x79\xb1\xbb\xfc\x67\x0b\x50\x76\x2e\x7d\x33\xfb\x02\x42\x0b\xb4\xb4\x51\x96\x6a\x07\xed\x73\xf5\x63\xd6\x22\x89\x14\x92\x5d\xf4\x62\x1a\xe3\xd2\x46\x46\x13\x9a\x45\xc6\xc7\x8e\xf0\x29\x56\xbe\x10\x7b\x3e\xb6\x12\x9e\x26\x76\x28\xd4\xfe\x08\x51\xc1\x68\x62\x18\x0e\xd3\xb7\xb1\x4c\xcd\xfc\xb9\x13\xc3\x4c\x3a\xd3\xb6\x98\xdf\xd0\x2a\x10\x21\xa9\x58\x1a\x39\xbb\x42\xea\x15\x78\x8e\xd0\x3a\xd2\xec\xf9\x71\x6b\x52\x1b\x22\x35\x4e\xa5\x69\xbc\x88\xd1\x2c\x8b\xc3\xca\x32\x4e\x8d\x31\x2a\x35\xc1\x2a\x8d\xbc\x85\x53\x80\xbb\x4d\xba\x4c\x82\x40\xe5\xc1\xf2\x72\x0a\x29\xa1\xb0\x5e\x50\xcd\x54\x40\x7c\x84\x05\xe3\x3a\x03\xcb\xa8\x4e\x5d\xc4\xe2\x98\x7f\xef\xd7\x12\x6a\x22\xaf\x4c\x3d\xb0\x34\xfe\x43\xea\x6f\xe7\xaa\xbf\xb3\xb1\x71\xec\x88\xfe\xb7\x35\x04\xb4\x91\x3f\x06\xdc\x22\x78\xcb\xca\xbc\x98\xdd\x0d\x62\xb7\x00\x39\x42\xd7\xb4\x3f\x23\x55\x08\x1b\x43\x6e\xc2\x49\x76\x8e\xf4\xfb\x18\xb5\x56\xe0\xa2\xb1\xfb\xe7\xe7\xd5\xdd\x61\xb7\xf9\x77\x30\xd4\x59\x94\xc6\x18\xad\xde\x9d\xdf\xa0\xf6\xf5\x63\x68\x2a\xbe\xf7\x2d\x24\x25\x9e\x58\x1f\xc1\xdb\x03\xdd\x00\x63\x94\x70\xe6\x7d\x9c\x87\xaa\x30\xa3\x2c\xad\x27\xe2\x18\x7f\x2c\x46\x85\xa3\x84\x3c\xd6\xbd\x38\xd9\xe2\xe0\x63\x34\xb6\x18\x87\x9a\xd8\x81\xfb\xca\x55\x6e\x2d\x5b\x10\x8c\x1a\x83\x40\x80\x43\xde\x38\x01\xc0\x91\xb7\xc5\x18\x61\xb8\xc4\x39\x78\xd7\x46\x57\xfd\x01\xea\xc8\x26\x1a\x68\x1f\xe1\xfb\x75\x8d\x5d\xd7\x42\xe3\xee\x73\x7a\xff\x52\xb5\x30\xeb\x1b\x16\x3b\x7d\xfa\x07\x68\x5f\xf3\xe3\x98\x2b\xce\x37\xe0\x52\x20\x30\x09\x45\xf4\x7b\x9d\x3c\x17\xb1\xfa\xe5\x2a\xc7\x04\x65\x8c\xfb\x22\x7b\xdc\x56\xc3\x3d\x05\x8f\x11\x6d\xf1\xdf\x2a\x2f\x1f\xe4\xc9\xd1\x23\xfb\x30\xf7\x72\x77\x8a\xc4\x21\x8b\x6d\x5d\x9d\x66\xcf\x27\x94\x40\xb6\xf2\x07\xd9\xec\xa0\x28\x7e\x1b\x7e\xce\xd2\x20\x88\xd4\xea\x83\xbe\xc2\x82\x32\x26\xac\x45\xfb\xc4\x6d\x64\x58\xe8\xb0\x2a\x8d\xe3\xe8\xc3\x1a\xf9\xc5\x40\x59\x1a\x60\xe8\x4b\xbb\x89\x3b\x48\x66\x5b\x0b\x8b\x65\x82\x85\xbd\xe7\x1a\xbe\xe7\xd5\xa5\xd9\x42\x9d\x57\x66\x3c\x0e\x63\x6d\xad\x63\x2c\xf2\x36\xa2\xd7\x80\x9c\x3e\x71\xc2\x12\x4c\xe8\x9e\xab\x1f\x50\x2f\xeb\x27\x31\x96\x18\x47\x81\xdd\x40\x69\xee\x8b\xae\xe5\x15\xf2\x6e\x0c\x72\xbe\x7a\xd8\x94\x58\x65\x7b\x97\xac\x1b\xe9\xcd\x56\xe6\xb3\x75\x98\xa5\x3a\xc3\xd5\x67\xd7\x74\x2e\x6d\x69\x64\x6d\xfe\x9e\x06\x2e\x63\xa9\xe5\x5e\x9e\xe2\xb6\xe8\x45\x67\x19\xcb\x22\x8d\xe8\x8d\x2f\xab\xdd\x7e\xf1\x52\x93\x8b\x64\x94\x4a\x13\x56\x38\xf4\x2d\x3f\xbf\x6e\x7e\x9b\x35\x89\x5d\xb9\x53\x67\x8b\xb9\xcd\xf2\xc5\xee\xdf\x06\x1b\xaa\xbf\x33\x8b\xc4\x10\x78\x7f\xc5\x10\xe2\xbf\xab\x93\xca\xe1\xd0\x7d\x06\xf7\xcf\xbe\x71\x9a\x44\xbe\x0a\x08\xd1\x11\x37\x55\xf5\x6d\xa7\x3f\x24\x6d\x65\x2c\xcb\x0c\x22\x13\x36\xcf\xb7\xaf\xff\xda\xee\x7f\xfd\x56\x5a\x05\x51\xa6\x19\x3f\xb6\xe3\xa7\x1b\x51\x47\x32\x26\x79\x82\x11\x98\xa6\x00\x38\xf7\x3f\x02\xc3\x9c\x48\x3b\x94\x97\x9a\xd9\xae\xc7\xa4\x4d\x95\xdf\xda\x37\xda\xb1\x8d\x38\xfe\xc1\xa6\xf7\xaf\xc6\x3b\x0d\x53\x42\x21\x8e\xf8\xad\x2a\x3b\x0f\xbf\xdb\x8d\xfa\x63\x5a\x58\x1b\x08\x20\xcc\xa9\xd7\x88\xef\x27\xbb\x56\x10\x62\x60\xce\x9d\xdc\x57\xcf\x73\x4f\x9d\x19\x12\x21\x3d\xde\xa7\xed\x58\xb9\x9d\x31\x43\x13\x70\x78\x1a\xa4\xb2\x27\x07\x39\x31\x8b\x99\xa1\x12\x2b\xb2\x4e\xef\x56\x7e\x14\x5a\x63\x46\x38\xd2\xfc\x06\x5a\x0c\x66\x34\xf9\xb1\x5c\xe0\x15\x62\xcc\xa4\x02\xbd\xc4\x5e\xf9\x0d\xf7\x92\xba\x3a\xad\x0b\xfd\xc1\xb5\x81\xd9\xc4\x07\xe3\x5f\x0a\x73\xe8\xa7\xe4\xcc\x88\x60\x96\x73\x33\x48\xc6\x3a\xde\xeb\x0f\x90\x1c\x8c\x59\x11\x61\x97\xa2\x05\xd7\xb9\x85\xeb\x9f\x79\x33\xab\x8e\x63\xcc\xc6\x12\x2b\xa1\x41\xd6\xc5\xfb\xb5\xc0\x17\x63\x36\x95\xd4\x5b\x1e\x58\x39\xe4\x33\x70\x18\xd2\x58\x7e\x1b\x0b\x9e\x3f\xbc\x57\x5c\xb8\x5c\x33\xe9\xba\xb6\x3c\x8a\x22\xed\xf1\x36\x0f\x75\x1e\xa2\x52\x3c\x4a\x13\x37\x80\xe5\x09\x1e\xab\x63\x1f\x90\xe3\x91\x71\x74\x38\x79\x83\xd8\xfc\x0f\xae\x4a\x98\x43\xb7\xba\x2d\x10\x3b\xb3\x5e\x7d\x97\x79\x31\x29\x6d\x99\x74\x04\x27\x5c\xe2\xf7\x35\xd5\x5d\xde\x9c\x2f\x28\xc6\x55\xd5\xef\x5f\xeb\xbc\xbd\x16\x2c\x9e\xdd\x2e\x53\xc8\x05\xf4\x38\xc4\x97\xbe\x87\x07\x26\x8a\x31\xdd\x33\xde\x74\xf7\xff\x92\xc3\x8f\x97\x7a\x07\xe3\x72\xf9\x80\xf0\x60\x9c\x72\x85\xa5\xd4\x3e\x0f\x7c\xe0\xe1\x42\x34\x36\xa9\xa7\x8e\x5a\x9f\xf2\x76\x14\xf1\x98\xbe\x07\xcd\x5c\x62\xa7\x84\x1f\x13\x5b\x6d\xf6\xcc\x54\x47\x48\x78\xf0\xe5\xdf\xfb\xc3\xd7\xd5\xe3\x63\x90\xe6\x63\x9c\x49\x26\xac\x5f\xf8\x3b\xcf\x61\xf9\x2b\x73\x06\x26\x72\xa0\xa2\x5d\xe7\x53\xef\x60\x6a\xe4\x70\xc1\x52\x57\xd5\x85\xb1\x9f\x6e\xbc\x3e\xc8\x3e\xff\xc4\xb8\x88\x9d\x0d\xe4\xe8\xe8\xaf\x75\x16\x19\x8f\x99\x63\x0a\xd9\xbf\xd5\x55\x09\xa8\xd3\x09\x66\x52\x47\x18\x1a\xa6\x99\x93\x47\x1c\xd7\xb5\x3a\x51\xdc\xbf\x70\xa4\xae\xfe\x4e\x0a\x6e\xc3\xe5\x35\x8d\x3c\xb5\xee\xcd\xe5\x4a\x1c\xd4\x37\x4a\x38\x41\xd8\xb7\x7b\x1d\xa4\xc3\x5f\x7a\xa7\x44\x65\x89\x2f\xe2\xd9\xdc\xbe\x7c\x05\xf8\x46\xaf\x29\x76\xb0\x19\xd2\x0b\xdc\x56\xa7\x53\x55\x2e\x58\x63\x3c\x95\x6a\xd0\xc6\x76\xd8\x31\x17\x2b\x98\x5e\x28\xb5\x46\x0f\x90\x6a\x74\x7c\xdb\x39\x1b\x28\xe3\x99\xa6\x18\x16\xb8\x2d\x40\xd6\x6b\x57\x53\x8f\x86\x43\x5e\x1e\x27\x64\x42\xa1\xbd\x15\xd0\x5d\xf5\x70\x76\xc2\xb1\xb7\x6f\xb2\x5e\x4e\x62\x84\xf8\x09\x97\x11\x47\x4f\x42\xd5\x00\xa6\xdb\x8d\x6e\xc2\x40\x90\x82\x21\xf8\xc4\xe5\x96\xf0\x5d\xdd\xb8\x75\x72\x0a\xa1\x95\xb2\x71\x90\x3c\xf9\x82\xf1\xe1\xe3\xec\x25\x54\x9c\x22\x19\xd3\x4e\x5a\x78\xc8\x6d\x3b\x2b\xbd\x5f\xd8\x26\xb9\x8e\x28\xfa\xc7\x26\xff\x7e\x5f\xd5\x53\x9c\x09\xe3\x9a\x48\xc4\x4a\x3f\xd2\xdb\x85\x1a\xe9\xd0\x28\x23\xca\xef\x0a\xf7\x79\xf1\x11\x56\x76\xf1\xe6\xda\x60\x01\xe9\xe6\x66\xf3\xef\xd5\xed\x6a\xf7\x29\xdc\xd7\x68\x11\x4c\x12\x5f\x78\xff\x2b\x60\x35\xe3\xc0\xb2\xc0\x0c\xf3\x44\x67\x5f\xca\x92\x14\x6d\xa4\x63\x85\xc8\xa7\x70\x0b\x6b\x12\x74\xee\x0f\x5e\x15\x74\x50\xe4\x1a\xfa\xd3\xda\x2c\xe9\x29\x2e\x7a\x7a\xfe\x99\x48\x3b\x13\x91\xcc\x90\xaf\x6a\xa5\x35\x34\xcd\x43\x67\xe7\x4d\x9f\x41\x44\x52\x63\x86\x21\xa0\x84\x9e\x56\x7f\x1c\xd6\xfb\xf0\xba\x82\xd0\x54\xd3\x50\xa6\x03\x28\x37\xf3\x3e\xc1\x6e\x33\x41\x12\x0b\x4e\xbb\xe4\xe7\x6d\xd5\x0c\x3f\x6b\x8b\x0b\x44\x03\xed\xaa\x0f\x07\xcc\xfb\x6a\x58\x5a\x05\x25\x8e\x43\xd3\x83\x2d\x9b\x83\x81\x73\x80\x1d\x32\x41\xad\x04\x1d\x66\x14\x6e\x71\xd7\x21\x22\xc1\x20\x41\x93\x27\xa4\x9a\x9f\x60\x34\xe7\xa6\x4b\x82\x88\xb5\x40\xcf\xbb\x96\x1a\x59\x86\x47\xa1\x4e\x91\x70\x8d\x79\xba\x7e\x8b\xfc\xbd\xac\x7e\xa0\x7e\xdc\xcd\x35\xd1\x50\x38\x47\xa5\x68\x87\x86\xec\xf3\xae\x2a\x72\xb3\x1b\x98\x43\x99\x48\x80\xa0\x79\x80\x96\x6a\x67\x6c\xbf\x5c\xfa\xce\x4a\xa9\x8a\xbb\xcf\xf9\x69\x73\x77\xb7\x7e\x1e\xe5\xe7\x44\x2a\x32\x1d\x4d\xd4\x14\x36\xb7\x2f\x0b\x6a\xc2\xc3\x93\xa4\x19\x45\xd3\xbe\x33\x0a\x97\xea\xa3\xba\x16\x0c\xc3\x2b\xfb\xf5\xea\xe9\xf0\xe9\xe5\xf1\x2e\xb0\x9b\x30\x91\x45\x04\x23\xe5\x2e\x0c\xee\x98\xb5\xd7\xa5\x19\x77\xf6\xec\x76\x59\xca\xb9\x8b\x38\x96\x3e\x69\x7e\x0f\x70\x23\x1b\x6f\x03\x34\xfd\x95\x53\xc7\x05\xd9\xcb\x91\x05\x82\xa2\xbe\x81\x76\x8c\x35\x8e\x92\xcd\x03\xe8\x42\xa8\xa0\x9c\xe4\x8c\x44\x66\x75\xe6\x07\x57\x2f\x71\x75\x55\x51\x3c\xfb\xeb\x4f\x95\x94\x63\x86\xe7\xbf\xd5\x7b\x53\x4d\xa2\x31\x42\x49\xd3\xab\x5a\x5e\xca\x23\x54\xa5\x8f\x36\x2f\xbf\xb9\xb2\xdc\x81\x34\xe4\x09\xea\x4b\xb0\x67\x85\x8e\x92\xc8\xe9\x45\xd5\xc7\x80\x6a\x9a\x7d\x00\x23\x99\xa6\xbd\x94\xe3\x22\xa6\xb0\x6b\xe4\xf0\x08\x8f\x50\x96\xb2\x6e\x47\x29\x1f\x01\x99\xc4\x38\xb4\xbd\x14\xf7\x79\x51\xec\xff\x98\x4d\x04\xd0\x1c\x27\xf5\xca\xe0\x86\x8b\x3c\xec\x4b\x39\x7b\x01\x26\x51\x26\x08\xe4\x63\x04\x90\x84\x7b\xd8\x88\x18\xcf\xda\x13\xea\x57\x7e\x0b\xbe\xe4\xd8\xd0\xba\xd2\x72\x08\xe7\x4b\x88\xf9\x50\xad\x59\x6f\xeb\xea\x5c\xe7\xd0\xca\xfa\xfd\x3a\x02\x21\xac\x76\x68\xd6\xce\x57\xfc\x24\x4b\x53\xcc\x22\x28\x7e\x6a\xc6\x11\xa1\x18\x6f\x40\xb3\xf9\x15\x81\x58\x79\x55\x3a\x96\x85\xd0\x84\x27\x72\x10\xb8\x0f\xfb\xc6\x47\xec\xcb\x2c\x26\x94\x60\x48\xd8\xcf\xb0\x85\xfd\x3c\x26\x54\x60\xdd\xdd\x43\x55\x98\xfb\x5c\xb6\xf7\x30\xcd\x52\xc4\x24\x75\xbe\x7f\x0d\xd2\xb8\xdc\x68\x29\x4f\xf0\x47\x0b\x32\x0c\xef\x98\x92\x34\xf2\x7b\xd1\xa6\x85\xd3\xf3\x48\x52\x65\xda\x73\x31\xa5\x34\xe4\x20\xa5\xc3\x06\x8f\xb0\x41\x2c\xa6\xc6\xb0\x20\xe1\x92\x97\x3f\xc3\xcf\x9c\xd1\x58\x07\x05\xba\x2f\x55\x0b\x1f\x0c\xdb\x98\xb3\xd8\xa9\x39\xf6\x58\x67\x59\xf7\xac\x8d\xdd\xe1\xcc\x38\x49\x99\x4b\x33\x5b\x60\x63\x41\x08\x75\x6c\x86\x6e\x56\x7a\x36\xc0\xba\x3a\xdd\xc8\xb2\x67\x7e\x98\x9f\x43\xb1\x3e\xc1\x51\xcf\x63\x8e\xf6\xb5\x5b\x02\xe6\xcd\x98\xc2\x4b\xbf\xae\x6f\xef\x17\x6c\xb3\x58\x40\x8c\x24\xc5\xaf\xeb\x9b\xf5\xe3\xed\xcb\xe6\x79\x5c\x5b\xc4\xe2\x58\x65\x58\xbc\xed\x58\xd5\xfc\x37\x77\x72\x4e\x87\xb6\x3a\xe8\x69\x30\x20\x4e\x62\x4e\x60\x60\xba\xf4\x50\xc6\x71\xdd\x3d\x8b\x93\x8c\x73\x1f\xf4\xdd\x98\x9b\x77\xfc\x60\x93\x8f\x9e\x32\xc1\xfc\x2c\xf6\xaf\x7e\x2b\xcf\xb3\xc7\xce\x6c\x1c\x74\xfc\x7d\x91\x0c\x4e\x86\x1b\xac\xbb\x0c\xa8\x4a\x16\x4b\x99\xe0\xee\xf1\x0a\xa7\xce\x7b\xf8\x90\xae\x97\xc5\x52\x73\x5c\xdd\xbf\x76\xf3\x1e\xa9\xa9\x07\x54\x48\x2c\xad\x40\x4e\xd8\x12\x7e\x4e\xc5\x35\x7e\xf9\x5f\x7f\xb2\xe2\x6e\x1f\xc7\xd7\x69\xf3\xef\x70\x9f\x0f\xc5\xc6\xb3\xa7\x50\x5a\xe1\x1c\xfb\x9a\x97\xa6\xa8\xea\xe0\x19\xc6\x5a\x70\x31\x4d\x8d\x6f\xeb\xaa\x9b\xa4\x93\x85\x36\xd6\x69\x82\x70\x9b\xaf\x37\x63\xf8\x2a\x8b\xb5\x15\x9a\xf4\x64\xd9\xde\x92\xec\x86\x97\xaf\x6a\x9b\x4d\x4b\x43\x22\x91\x0c\x3c\x20\xde\x31\x1f\x47\x35\x62\x23\x24\xa6\x3e\x8f\xf9\x77\xf8\xfd\x62\xaa\x66\x91\x55\x94\xc5\x26\x96\x7d\x8e\xdb\x5d\xe6\x66\xb1\x28\x84\xc5\x46\xb9\x57\xaf\xe1\x3b\x94\x17\xb8\xaf\xe5\x88\x9a\x96\xc5\xe0\x05\xb3\xd4\xe5\xfd\x1e\xcb\x75\x76\x27\x59\xb7\x0b\xdc\x35\x7d\x7b\x8d\x35\xd3\xcd\xa5\x39\x43\x69\x1e\x7a\x3c\x34\x8b\xc1\x00\x32\x41\x7e\x87\x1a\x01\xce\xe7\x1c\x7c\x0a\x33\x9f\x51\xf3\xb0\x18\x2c\x49\xa5\xd7\x3b\xfb\x11\xd6\xbc\xab\xac\x79\x6c\x49\x84\x69\xbf\x37\xd9\xdc\xcc\x43\x23\xb1\x15\x0a\xab\x63\xaa\xda\x40\xdd\xdc\xca\x12\xa9\x3a\x0e\xfd\x45\x08\x1f\x52\xcf\xe1\xdf\xe9\x7f\xe2\x0f\x01\x3e\x0b\x63\xcc\x4a\x87\xcb\xa9\x65\x0b\x3b\x80\x71\x85\x29\x4b\x22\x42\x11\xdf\x67\x7b\x5d\x4d\x96\x10\x22\x19\x19\x34\xb6\x0e\x72\x46\x2d\xcf\x12\xe2\x95\xe4\x1f\x56\xfb\xf5\x63\xff\xa3\x48\x74\x34\x14\xfa\x20\x0a\x7a\xb0\x35\x13\x62\x24\x12\x8d\xf6\x05\xdb\xa3\xbe\xf2\x4d\x58\xe4\x12\x93\x08\x46\x2f\xbf\xcb\x66\x2b\xf3\xb2\x0d\x5c\x75\xa1\xdf\x13\xc6\x65\xe6\xd9\xfa\xd0\x07\xee\x09\x43\x1d\xe9\xc7\x48\xd7\x37\x9c\x90\x18\xe4\x05\xdd\xe7\x58\xe8\x37\x1e\xfe\x09\x8f\xb4\x75\x31\xd3\x7d\x9d\x1f\x7b\xa1\x59\x96\xf0\x54\x22\x86\x20\xac\xbb\x07\xda\x1f\x51\x94\x7a\xa9\x9b\x73\xd5\xc8\xc2\x47\x91\xa6\xf7\xe4\xe0\x80\xa6\x9e\xe0\xe3\xe6\x1d\x99\xf5\x97\xb7\xc3\x44\x10\x42\x06\x45\x13\x07\xb5\x0c\x77\x13\xdc\x62\x7c\xa7\xac\xda\xcf\x48\x8f\x2c\x55\x01\x9b\x12\x43\x0c\xa1\x4d\x2c\x5c\xc7\x99\x51\x59\xa4\xaf\xd1\x66\x49\x9c\x50\x4c\x84\x79\x32\x73\x87\x6d\x5d\xdd\xef\x7f\xef\xcf\xb6\x54\xc3\x8c\x48\x7d\x9a\x11\xee\xbb\x3e\x11\x0e\x49\x2d\x4f\x27\x28\x4d\x50\x05\x45\x02\x84\xc5\x45\x2b\x49\x62\x25\x43\x7a\xe5\x71\xb5\xbf\x95\xf5\x35\xa9\xe0\x72\xda\x38\x49\x3c\x08\x7d\x8b\xc9\xfd\x3b\x64\x14\xbe\x1d\x08\x61\x59\x92\x48\x40\x3e\xc4\xc3\x02\x78\xe0\x6f\x11\x77\xb1\x24\x4d\x63\x11\xc0\x25\x87\xaa\xec\x69\x41\xbb\xe9\xf3\x5c\x3d\x56\xc7\x70\xaf\x8c\x09\xa4\xb7\x42\x47\xe2\xc1\xe9\x7c\x02\x18\x2f\x3c\xdd\x83\xc7\x92\x4c\xc7\x41\x30\x7c\x73\xfb\x12\xac\x78\x7f\x50\x12\x8e\xe6\x59\x6e\xd7\x27\xa8\x8f\x50\xea\xf7\xdd\x00\x69\x49\x24\x73\x7c\x27\x3d\xeb\x99\x23\xc0\x5d\x4e\xdd\x24\x8a\x29\x6d\x02\x29\xcc\xa5\x6c\x6e\xde\x3d\x06\x78\xf9\x4d\x55\x12\x23\xe2\x6b\xd7\x39\x73\x48\x4f\xbc\x8c\xb6\x66\x89\x4a\x13\xea\x43\xaf\xfb\x1c\xea\x6b\x80\xe5\xe2\x6a\x9e\x28\x29\x11\x14\x7f\x93\x1f\x27\x13\x4c\x13\x07\x5d\x56\xae\x46\xa7\x2a\xf7\xfb\xa7\x9b\xf7\xce\xdd\x5d\x7e\x2f\x1d\xb3\xd4\x9b\x00\xeb\x9f\x6d\x2d\x7b\xa2\x0f\x96\x68\x88\x10\x19\x87\xd7\xf7\x00\x79\xa7\xed\x36\x9b\x7c\x1a\x52\x0c\x3f\x7e\x5a\xbd\xde\x75\x8e\xdd\xe1\xf3\x2e\x20\x54\x12\x93\x44\x48\x48\x28\x55\xbe\x2e\x75\xd5\x2b\x55\x4f\x02\x5d\x61\xf1\xee\x16\x8e\x91\x5c\xfa\x75\x5f\x5c\x3b\xd5\x09\xb0\xc4\x41\x00\xdc\x0e\xf9\x30\x5f\xf3\xd3\x88\x64\xa1\xe0\xf7\x53\x75\x06\x7b\x29\x36\x33\x6f\x31\x25\x19\x43\x55\x81\x97\xfd\x7e\xdc\x99\x29\x01\x8e\x25\x63\x1a\x2b\x1c\x26\x73\x33\xa5\x8c\xc5\x9e\xfd\xfe\xa5\xe7\x7a\xb9\x8a\x62\xa4\x34\x71\x08\xff\x23\x38\x66\xc4\x37\x4c\x50\xf4\xd1\xa7\x94\xca\x58\x50\xbf\x20\x5e\x9a\x16\xcc\xee\xad\x9a\xa1\x76\x52\x0a\x89\x80\x01\xba\xbb\x1c\x52\x9a\x8e\x8f\x94\x91\x38\xf3\xb9\x91\x47\xf8\x9e\xb7\xb2\xb3\x33\x3e\x97\xb9\xae\xea\x72\x6a\x21\x84\x95\x2b\xe5\x1c\xe2\x28\x4c\xba\x97\x2f\xb7\x03\x15\x2c\x4b\xb9\x30\xb4\x4f\x2d\x0d\x5b\x53\xca\x33\x81\x30\xd9\x71\x14\xf5\xaf\xcb\xb5\x59\xca\x8d\xc6\x0a\x39\x28\xcd\xfe\x0a\x60\x37\x6b\x2b\x22\x81\xf9\xa1\xfb\xe2\xfd\x56\xfa\xd4\xf8\x4e\x7e\x5c\xc2\xfe\x97\x7f\xc7\xe7\xc5\xfc\x3f\xe2\xff\x86\x1b\xc5\x14\x4b\x8b\xba\x41\xbe\xcf\x4f\xe0\x6a\x25\x96\x37\x91\x54\x24\x4e\x2f\xc6\x3a\x51\x2e\xa4\x9a\xf6\x20\xd3\x5e\xc2\x9e\xa5\x22\xb3\x8e\x90\xe8\x04\xad\x34\x57\x4e\x61\x2a\x0c\xe5\xba\xa7\x1e\xeb\x89\x0c\x46\xcc\x35\x2c\x8d\x63\x47\x18\xd2\xad\x9a\xff\x18\x5c\xe4\x34\xce\x18\x22\x5b\x5e\x01\x8b\xfd\x5d\xc0\x39\x1c\x93\x94\xf3\x40\xb3\xda\x76\xdf\x3e\x98\x7a\x63\xd3\x2c\x8d\x8d\xc6\xbd\xb5\xaa\x8f\x43\x99\x1a\x4b\x13\x12\x63\x6c\xbe\xae\xaa\xf6\x60\xaa\x93\x1c\x6e\x9a\x50\x9b\x06\x42\xab\x83\x3c\xca\xbc\x6c\xda\xfb\xaa\x7f\xdf\x24\x31\xb8\xfc\xdc\xdf\x3c\x0e\x25\x96\x2c\x4d\x74\xea\xb2\x79\xdd\x59\x79\xf9\xbd\x5b\xf7\x5f\x2f\x05\xb8\xe8\x4b\x68\x95\x72\x47\x34\x71\xf3\xb8\x79\x7e\xe8\x7f\x4c\x04\x56\xfb\x21\x63\x7a\x31\xd2\xde\x60\x69\x9a\x0a\x37\x05\x2f\xf5\xb9\x08\xb5\x06\x2c\x95\x49\x84\x90\xf2\x03\x3f\xa0\xe6\x49\xff\x7b\x9a\x62\x04\xaa\x7b\x88\x07\xef\x36\x3b\xcb\x36\x20\x5a\x46\x76\x5c\x2a\xb5\x42\xc0\xde\x97\x1c\x7e\x1c\x9c\xb2\x3a\x8c\x71\x15\x87\x2b\xe5\x44\x96\x2a\x26\x11\xac\x5c\x5e\x4e\xdb\xa2\xea\xb7\xce\x54\xa5\x11\x3a\xae\xd2\x84\x21\x02\x7d\x86\x12\xf6\xd5\xd5\x3a\x17\xd6\xc3\x54\x19\x8b\x01\xe2\xc6\x4d\x2f\x68\xe6\x8b\x9b\xd6\x19\x0f\x3b\xea\xba\xae\x87\x20\xf2\xbe\x72\xa1\x03\x1f\x98\x0c\x44\xd3\x2c\x05\xca\x30\x5a\x1b\x32\xa6\x4f\x57\x28\xea\x14\x52\x23\x49\x90\x71\xf7\xe5\x1a\xa1\xe8\xba\xe7\x06\xfd\xff\xcc\xdb\xc9\x52\xb0\x26\x72\x51\x5f\x4c\x50\xef\xab\xb9\xe4\xc4\xb4\x7d\x16\xd1\xc8\x38\x5f\x09\x4c\xb0\xe8\xe6\x2d\x9c\x40\x44\x5e\xe6\x8e\xe2\xde\x21\x12\xfe\x16\x6f\x2b\xcb\x22\x91\x45\x9e\xe7\x18\x3f\xc1\x23\xd6\xa5\xf7\x5f\x66\x53\xde\x74\xde\xc1\xfc\xa3\x64\x91\xaf\x65\x90\xaa\xce\xeb\xbb\x4a\xea\xaa\x87\x9b\x66\x91\xa2\xdc\x03\x18\x9f\xd5\x0e\x8a\x02\x73\xeb\xfd\x51\x63\x71\x1c\x54\x85\xf9\x63\xbb\xf2\x8a\x29\xfe\x18\x89\x33\x24\x47\xfd\x01\xf9\x24\x4a\x95\x91\xd8\x15\xfd\xab\xdc\xbc\x94\xb7\xb5\xb4\xed\x6a\x46\x81\x30\x7d\x2b\xa2\x9d\xe0\xf3\xba\x34\xdd\x26\xda\x93\x4e\xb0\x8c\x58\x87\xe6\xb1\xd0\xea\xb7\x2f\x55\x0b\xdd\x10\xbe\xaf\x6a\xa4\x8f\x99\x8e\x81\x8c\x6a\x8e\xbb\xa6\xdb\x89\x37\x2d\x9c\x5c\x52\x64\xd1\x1a\xc9\x58\xa4\xad\x0f\x2b\xfa\x18\xc0\x17\xa8\xb1\x3a\x78\xbc\xdc\x64\x8c\x32\x24\x71\x79\xcb\x8f\x58\xdc\x8e\x9f\xcc\x15\x50\xfb\x16\x9c\x45\x6e\x4d\xbb\x79\xb9\xed\x7f\xb3\x14\x3d\x3a\x94\xdb\x43\x57\x7b\x89\x0f\x98\x65\xb1\xe0\xe0\x48\xa0\x4b\x53\xfd\xa0\x68\x53\x8f\x80\xef\x59\x1c\x1b\x25\xbc\xa8\x60\x4f\xfc\xc2\xb2\xc4\x24\xd2\xdb\xe3\xdb\x8d\xe3\x2d\xa1\x7c\xfa\xdc\x89\xed\xe9\x03\x77\x0e\x5d\x3c\x31\xce\x7a\xcd\x5a\xdf\x3c\x25\xa9\xf4\xa1\x5b\x0f\x6f\x5d\x1e\xdf\xa9\x52\x36\x19\xb4\xdc\x7a\x5a\x1d\x96\xa5\x10\xf9\x58\x61\xdb\x42\x9d\xcf\x0a\x0a\x59\x96\xf1\x0c\x8b\x8c\x9b\xd5\x50\x3a\x1f\x0e\x69\x8d\x45\xf5\x9f\xbf\xf6\x1d\x28\xe3\x38\x71\xd2\x88\xb2\xd0\xcf\xf0\x73\x09\x43\x97\x29\x96\xa0\x21\x72\x40\xfc\x1a\x41\xca\x90\x70\x01\x9d\x44\xdc\x79\x8a\xa8\x3f\xe6\xb6\xe0\xa9\xfd\x1b\x5a\x6a\x43\xa0\x97\x55\x47\x6b\xbd\x47\xa3\xf7\x43\x5d\x9b\x0c\xab\x3e\x31\xea\xbd\x1c\xe8\x9f\xf5\x94\x31\x80\x00\x89\x2d\xfa\x80\xb0\xf5\xae\xe0\x47\x0c\xee\x1f\x5d\xc5\xd2\x28\xea\x09\xa3\x1d\x40\xaa\xc1\x65\xdc\x37\x00\xca\x94\x37\x15\x83\x97\x3b\x3e\x6c\x89\xf3\xfb\x9e\x2b\x1c\xb8\x6d\xde\x17\x94\x33\x19\x25\x91\xf2\xd9\x71\x57\x07\x3c\x1d\x9c\x32\xd2\x19\x52\x5a\xdf\x38\x32\xf9\xe0\x85\x48\x42\x22\xc5\x7b\x62\x47\xef\x4a\x86\x91\x24\x49\x06\xb8\xfe\xe7\x8e\x4e\xe1\xb6\x92\xfa\x2a\x5e\x35\x25\x6b\x08\x27\x1a\xe7\x4e\xb7\xc7\xda\xef\xff\x0d\xd2\x16\x74\xd7\x18\xa9\x24\xf9\xd6\x94\x4a\x24\x9f\x44\x41\x8d\xf6\xa0\x2e\xef\x87\x76\x98\x38\x98\x4e\xe8\x9e\xf1\xe6\x52\x97\x97\xf3\x83\x3c\x81\x4b\xb6\x79\x06\xa6\xbe\x59\x2a\x02\x1f\x81\x73\xc6\xae\x74\x1f\x99\x64\x51\x44\x86\x82\xd7\x59\xb6\x50\xb2\x2c\x36\x69\x80\x0d\xb9\xa4\x72\xc8\xc4\x8d\xb6\x66\xc9\x4c\x26\xc9\xa8\xd8\xa6\x0f\xde\x7f\xa8\xa2\xce\x24\x8f\xdd\xf7\x69\xab\x4b\x9d\x37\x63\x2b\x5f\xf2\x98\x53\xd1\x4b\x45\x28\xa8\x5f\xac\x47\x60\x98\x5d\x0b\xe7\x66\x5b\x57\x77\xd5\xc0\x85\xd2\x9d\x90\x22\x03\xa2\x1d\x2b\x0e\xfc\xad\x2d\x50\xf2\xce\x8f\xec\x3c\x8d\x00\xd0\xf7\x04\xfb\xd7\xc5\x12\xe1\x04\x6b\x58\xa0\xa5\xf2\x75\xa5\x3d\x68\x52\x0a\x92\x60\xa4\x14\xf2\xe3\x5b\xfb\xb6\x54\xa3\xcc\xa4\x90\x12\xb5\x8b\xce\xce\xbd\x75\x7c\x13\x3e\x0e\xbc\xad\x73\x67\x1b\x2c\x3f\xac\x30\x19\x8a\x30\x38\xfe\x8d\xe3\xf3\xfe\xf5\x5f\xe1\xaa\x71\x1c\x4b\x1f\x65\x7b\x05\xa9\xdf\xc0\xec\x2a\xdb\x0e\x15\x44\x32\x89\x92\xc8\x8e\x40\x48\x77\xf0\x1d\x8a\xea\x0c\xf5\x6d\x9f\x12\x94\xa9\x8c\xd0\xc4\x72\xfa\xbe\x70\xba\x62\x65\xff\x65\xe5\x2e\x93\x19\xd1\xda\x0f\x97\x2f\x85\xfb\xa6\xd3\x7a\x03\x99\xd1\x44\x27\xbd\x79\x8d\xc1\x3e\xdc\x16\xd6\x1f\x45\x50\x64\x46\x6d\xe4\x2a\xf6\xbb\x85\x3b\x80\x18\xab\xda\x81\x80\x66\xf7\x67\x2e\xdd\x79\xc4\x5a\xa6\x97\x5a\x6a\xac\x50\xfc\xe7\x05\x7a\x60\xaa\xcc\x44\x1a\xf8\x01\x76\xb2\xe8\x5f\x3d\xd3\x4e\xd2\xa1\x90\x4d\x7b\xb7\xde\xdf\xf6\x8b\xb5\x94\x3c\x75\x0a\x42\x79\x09\x5b\x38\x7f\x00\x25\x95\x32\x71\x01\xaf\xef\x39\xfc\xf8\x5c\x6a\x07\x4e\xf1\x93\x25\xac\x5d\x7d\x37\x28\x63\x12\xac\x22\xd4\x55\xf3\xde\xb4\x70\x9a\x64\x16\xa4\xa6\xca\x78\x0e\x6c\x9f\xdf\x7c\x82\x6e\x1e\x4c\x72\xd8\xe3\xff\x8c\xe3\xb2\x52\x8b\x54\xa9\x91\x42\xab\x93\xbb\x5f\x64\xa9\x4a\x67\x2f\xa1\x15\xc7\xbd\xaa\xdb\x97\xee\xaa\x8b\x2a\xe0\x26\x2f\x0d\x98\x9b\x22\x2f\xd1\xc0\x64\x73\x03\x71\x7a\xbe\xe1\x24\xac\x17\xbb\x6f\x79\x31\xf5\xd0\xa5\xc9\x34\xf4\x15\xe6\x67\xb7\xdc\xdf\xca\xf3\xa6\x5c\xb5\x6d\x05\x7d\xe2\x5d\x76\xae\x68\xb7\xfa\x3d\x6d\x1e\x82\xd7\x21\x81\x0b\x4a\x43\xf1\x29\x7b\x6a\x5a\x38\x0f\x19\xeb\xee\x68\xe2\x18\x87\xf2\x12\xaf\x38\x04\x3c\xa4\xe5\x11\x0b\x71\x81\x2b\x25\x16\x26\xad\x0c\x92\xe9\xd2\x43\x74\xcf\x85\xd4\x80\x04\x25\x81\xc8\x8d\x29\x22\x54\xa8\xda\x44\x63\xf0\x61\x9e\x75\x51\x24\x8d\x71\x81\x3f\x07\x0d\xfb\x0f\xb8\xcb\x99\xa2\x94\x86\x92\xf0\xa7\xf7\x6d\x55\xbd\xf5\x77\xa1\x71\xcc\x5c\xf7\x37\x6f\x87\xda\x47\x17\x27\x96\x8f\xa2\x69\x94\x84\x60\xa5\xa7\x7b\x58\x97\x8e\x96\x76\xcc\x57\xb2\xc0\x4f\xc3\x14\x85\x18\x73\x17\xbd\xd0\xf5\x52\xf2\x4c\xb1\x44\x06\x09\x40\x87\x58\xfd\x7c\xe9\x61\x78\x8a\x65\x2a\x1b\x49\xbc\x74\x8e\xf9\xb2\x2d\xa5\x98\x36\x98\x2e\xd7\xce\xe8\xb8\xaf\xea\xd7\xf5\x3f\xbb\x0d\xeb\x0a\xa8\xd3\x35\x45\x63\x15\x9d\xc3\xe6\xf1\xf3\x7e\x7e\xdc\x5a\x3b\x04\xa1\x3a\x17\xb5\x84\xc2\x9b\x9c\x57\xda\xf6\x93\xde\xe2\x8c\x04\xb5\x5c\x74\xc2\xfa\x78\x25\x16\x41\x2e\xfb\x3a\xe3\xe4\x81\xe2\x59\x86\xb1\xe1\xed\xeb\xfa\xb0\xb9\x7d\x39\xec\x37\xeb\xd7\xc3\xfd\xe6\x75\x17\xc0\x71\x4a\x30\x87\x5e\xc8\x1b\xcf\x3f\xd4\x1f\x48\xe2\x34\xf6\x7c\x2c\x87\x6e\x59\x39\xd4\xd0\x5c\xfa\x15\x47\x89\xce\x98\xf8\x3f\xff\xcf\xff\x79\xb8\xd9\x4e\xb6\x3f\x25\x0c\xa7\x51\x1f\x0d\xff\x0a\xaa\xc9\x5b\x18\xd8\xbb\x98\x8a\x99\x8d\x07\x80\xd4\xcd\x25\xc7\xda\x57\xe4\x07\xd7\x0b\x4a\xc8\x4c\xc5\x3a\x95\x01\xcb\x9f\xbb\x04\x17\xc0\x42\x70\x4c\xc5\x96\x62\xdc\x6d\x6c\x93\x84\x28\xf7\xdf\x0b\x5b\xab\x84\xd3\x80\x43\xeb\x3a\x04\x81\x00\x28\xd8\x3d\x97\x96\x63\x2a\xc9\x62\xdb\x9b\x5a\x9e\xdc\xba\x33\x51\x56\xa5\x83\xb0\x4f\x2f\x9c\xf2\xc8\x15\xb4\xc8\xd3\xc4\xde\x9d\x4e\xae\x2c\x96\xd8\xab\xe5\xe5\xf4\x62\x9d\x5c\x54\x3f\xbd\x24\x13\x58\x1e\xf5\xf5\x4d\x16\xd0\x1c\x8e\x75\x75\x39\xf7\xc7\xb4\xa3\xf8\x73\x7d\x1a\x72\x7f\x0b\x86\x8b\x92\x96\x40\xdc\x43\x6e\x3f\xe6\x2d\x67\x4a\x25\x0a\x6b\x8f\x5c\x04\xff\xd7\x8c\x0a\x4a\x49\xc8\x54\xef\x54\xfd\x5c\x94\x58\x61\x4a\x33\x47\x0a\xed\x79\x09\x3e\x55\x2d\x14\xfd\xfb\x69\xae\x8c\x1c\xe9\xbf\xed\x50\x5f\xe5\x43\x83\xe8\x2a\x55\xa6\x4c\x24\xd0\xbe\x68\xf2\xa2\x42\x48\x74\xb8\xb2\xe1\x40\x3d\xbe\x0f\xce\xb2\xee\xbe\xd0\x0e\x7a\x22\xd9\xd0\x48\x30\xec\x18\xd9\x6d\x65\xc1\xc8\xfd\xed\xb2\xa4\x95\xf5\xc1\xd8\x31\x19\xb8\x1a\x9f\x4b\x69\x50\x5b\x7f\x1c\xda\x54\x46\x29\x92\x85\xbc\x76\xd3\x56\xa7\x8f\x42\xf8\xca\x58\xa9\x3d\xc4\xa4\x4f\xcb\x2a\x60\x04\xdd\x4a\x5f\x66\x3d\x45\x94\x29\x2b\x1d\xca\x36\x6f\x42\xce\xbc\xde\xca\x26\x24\xd9\x5f\x41\xce\x59\x10\x99\xb2\xda\x69\xe3\x1d\xeb\xea\x47\xfb\x36\xc3\xfe\xeb\x88\x11\xcc\x02\x3b\xca\xc6\xf7\x91\xe2\xd4\xf4\xa5\x75\xc4\x13\xe4\xb5\x6c\x2e\xea\x94\xb7\x37\xb2\x28\xe6\x34\x5b\x61\x03\xd5\x24\x02\x47\x19\xd1\xb6\x52\x7f\x83\x7a\xfd\xf3\x3c\xc8\x7e\x84\x1b\x13\x66\xb0\x70\xc5\x8d\x64\xbf\xcb\x2e\x92\x73\x68\x12\x53\x5c\xcd\x0f\x47\x70\xb4\x4d\x18\xd2\x59\xb5\xff\x02\xb9\x5c\xa3\x32\x3c\x35\x01\x57\x5f\xff\x0a\x65\x2b\x47\x38\x21\x4d\x85\x72\x80\xa6\x8b\x6a\x97\x45\xfc\x98\xa6\x0a\x30\x80\xea\xd5\xcf\x07\x1b\xf9\xbe\xaa\x17\xd1\x4b\x9a\x51\x82\x0e\xef\xc1\x53\x90\xce\xe9\xb2\x98\x66\x19\xa5\x9e\xc7\xbe\xbe\x82\x9f\x69\x4e\x75\x88\xa0\x8d\xc2\x26\x24\x1c\xb5\x99\x08\x22\xc6\x63\x14\xfb\xf4\x1a\x82\x12\x42\x7a\x3e\xfe\x17\x3b\x81\x6e\x68\x91\x6a\xb4\xba\xf0\xe9\x9f\xab\xdb\x22\x1f\xe5\xea\x74\x1c\x27\x66\x22\xf4\xe1\x16\xaf\x9b\xea\x72\x7c\x6b\xc7\xb4\x34\xd3\x97\x8a\x53\x86\x1f\xfc\x0b\xd4\x7d\xd1\xb9\x4e\xa2\xcc\xf0\x09\xe0\x01\x33\xf8\xcb\x0f\x9d\x18\x85\x51\xf1\x22\x3f\xe5\xed\x8b\xbd\xa9\x65\xa9\x83\xa1\xa5\x53\xaa\xbc\x10\x53\xbb\xe9\x2c\xe6\x6f\x79\x79\x74\x03\x66\x60\xf7\x18\xb6\x11\x9d\x66\x32\x94\x1c\x06\x7d\xa7\xae\xb7\xa6\x63\x14\x65\xda\x70\x79\x44\x06\xa6\x79\x6e\x4a\xa7\x10\x47\x53\x74\xca\x1d\xa8\x99\x0d\xa2\x33\xe2\x48\xb5\x1a\x68\x75\x95\x97\xf6\xea\x6b\x87\x54\xe2\x11\xda\xbb\x4f\xb2\xdb\x2f\xca\x09\x49\x72\xd7\x22\x45\x92\x91\xaf\xb2\x85\xfa\x04\x45\x55\xe2\x08\x5f\x96\x64\x9f\xf6\x99\xe4\x4c\x3a\x60\x8f\x3c\x39\x10\x49\x88\xfd\x69\x4d\xa9\xa3\x66\x76\xcc\x47\x3d\xe3\xf1\x6c\xb8\x69\x2d\x1d\xb9\x53\xd7\xeb\xaa\x06\xf9\xed\xf0\xba\x7e\x5c\xaf\x76\xeb\xfe\x42\xa0\x42\x96\xd1\x95\xc8\x84\x49\xb0\x19\x98\x24\x99\x36\x82\x22\xc4\xe2\x94\x4b\x63\x7c\x2c\x62\x92\x23\xd2\x40\x04\x96\xd0\x14\x60\xdb\x38\x99\xf5\x12\xf0\x88\xa8\xb1\x86\xc5\x2b\x68\xcc\x41\xce\xa7\x07\xa8\x34\x14\x9b\xde\x56\x67\xe9\xc6\xc0\xd4\x75\xd3\x16\x9c\x52\xac\x4f\xb2\x37\x87\x4b\xd9\xe6\xc5\xe1\xbf\x93\x12\x4e\x13\x31\xe6\x50\x10\x45\x1e\xd4\x9c\x99\x89\x12\x86\xe8\xe2\x5d\x7e\xfc\x98\x27\x76\xba\x51\x8c\xb7\x5c\x43\x32\x97\xb3\x73\x3f\x36\x6b\x2c\xba\x5e\xd8\x9b\x0d\x91\x4e\xb7\xc2\x2e\xcf\x27\x43\x94\x83\x58\x23\xf6\xf0\xbe\xaa\x9f\xba\x99\x38\x51\x6f\xf1\x0d\x79\x04\x09\x59\xa6\x5d\xdf\x9c\xce\x57\x00\xdf\xc5\x4c\xd6\x70\x5b\xae\x34\x7a\x0f\xea\xf2\xee\xe1\xec\xd5\xcf\xf7\xe9\x27\x30\x5c\xc7\x68\x37\x1d\x02\x92\x18\xad\x94\xdb\x61\x7f\x35\x82\x69\xfc\xd4\x08\x6a\x9b\xc7\x7d\x97\x97\x69\x23\x78\x8c\xcc\x1f\x67\x0c\xc3\xbb\x52\xf7\x23\x24\xfd\x25\x45\x82\xd1\x8f\x60\x31\x38\x70\xc4\xcd\xfb\xb6\x73\x62\x70\xef\xfd\x80\x53\xff\xda\x78\x30\xc2\x53\x42\xe5\x8d\x2f\xb8\x30\xfb\xd5\x22\x9c\xc9\x88\xcc\xbd\x88\x97\xbb\x1e\x08\xb5\xb0\xa4\xca\xc2\x90\x97\x6a\xa0\x6e\x0f\x36\x2f\x4d\x37\x3b\x3e\xe5\x65\xfb\x0c\x3f\x7d\xed\xc8\xd0\x2d\x00\x8e\xfc\x4c\xeb\xad\x2b\xe7\xea\x8f\x58\x82\x17\x33\x9e\x28\xe0\xc5\x3a\x6c\xed\xa8\x9e\xd3\xc4\xc2\x15\xac\xe3\x0d\x19\x3f\x38\xea\xd3\x07\xd9\x7c\x6e\xba\x8e\x8a\x22\xe4\x21\x08\x93\xc0\x24\x4c\xa2\x02\xdf\xea\xe9\xe5\xf3\xf3\xfe\xeb\xea\x61\xfd\xba\xbe\xeb\x0f\xc6\x19\xe6\x5e\x3d\x23\x72\x20\xdd\xf8\xf5\x17\x4a\xd3\x18\x99\x5d\x4e\xf9\x10\x2f\x9b\xe5\x93\x2f\x57\xa5\x8e\x26\xd5\xa9\x0b\x27\xca\xbc\x7f\x95\x2c\xa2\x88\x1c\x70\x05\x7e\x07\x75\xa9\x67\x80\x46\xa3\x23\x82\x7b\xd4\xcd\xef\x37\x01\xfd\x62\x34\x44\x58\x25\xe1\x69\xf7\x2a\x64\x93\xdf\xd6\x81\x25\x75\x71\x9a\x69\xeb\x7b\x01\x37\x31\x5f\x88\xb3\x6c\x04\x1b\xa3\x62\xc4\xef\xdc\xbe\xbe\x7c\xbd\x73\xa4\xa0\xfb\xd5\x6b\x70\x9f\x8c\x31\x4c\x42\xd0\xcd\xf8\x06\x5b\xa8\x7b\xc6\x3f\x66\x0c\x68\x33\x2e\x9c\xdb\xdc\xbe\x4c\xc4\x83\x99\x01\xea\xf8\x3b\x4f\x2e\x96\xba\xbb\x60\x1c\xf4\xf3\xee\xee\xeb\x7a\xd3\xb7\x51\x36\x09\x56\x4e\x60\x20\xf2\xf2\x5c\x53\x17\x62\xba\x0d\x18\xb0\x8e\x24\x10\xfd\xf4\xdb\x5a\xaa\x7e\x14\x58\xea\xb8\x67\x7d\xda\x2c\x3f\x01\x2a\xde\x86\x32\x94\xe5\x8e\xb0\x4c\x18\x87\xd1\x56\x45\xae\xf7\x0f\xeb\x81\x2d\xb3\xbb\xc2\x18\xb7\x6f\x6c\x12\xa1\xf3\xdc\x0d\x8a\x55\x51\xfc\x36\xbe\x10\x44\x11\x43\xb4\xec\x6a\xb7\x6b\x3f\xc8\xef\x2f\x8b\xd3\x32\x88\x20\xc1\xcd\x17\x3d\x6d\xc7\x93\x53\xcf\x16\x22\x20\x86\x98\x3e\xbf\xeb\xa8\x24\xb1\xbe\xbb\xaa\x6f\x65\x69\x72\x33\xd2\x51\xbe\xe6\x85\x01\x62\x29\xb2\x90\xde\xad\xf6\x0b\xa8\x66\xa0\xb1\xc1\x3a\xbc\x53\x5e\x86\x80\xf2\x6f\xe1\x90\x96\x40\x3c\xc8\x51\x16\x63\x31\xf6\x0f\x1c\xa7\x2b\xd0\xfd\xf2\x3b\x53\x63\x3d\xc0\x73\x12\x8b\x9b\x4e\x0d\x60\x44\xe0\x56\xf9\xf4\xbe\xde\x6e\xc7\xee\x38\x30\x66\x9d\x98\x64\x30\xdd\x86\xfa\xac\x2c\x9c\xcd\x49\x96\x90\x20\xc5\xf4\x97\x34\x88\xff\x3f\xff\x86\x7b\xc5\x7d\x91\xed\x17\xe4\x41\xd9\x57\x2e\x6b\xef\x76\x95\xd0\x4a\x09\xe2\x75\xdd\x47\xa4\x73\x20\x22\x8d\xd4\x55\x8e\x09\x2a\x97\xed\x88\xfa\x9f\x81\x90\x0c\xd3\xe5\x3b\x68\x3f\x9f\x97\xa3\x57\x20\x4c\x8a\xdd\x11\xe8\x5e\x9b\x55\xdb\x9f\x0e\x34\x76\x30\x3e\x9d\xd7\xae\xaf\x1e\x25\xda\xea\xb3\x74\x19\xc4\x51\x84\x6b\xf6\x8b\x1b\x87\x6d\x5e\xc3\xa7\xca\xcc\x6a\xd5\x20\x61\x94\x05\x0e\xfa\xbc\x3c\xae\x7b\xf8\x02\x24\x82\x46\x71\xe0\xce\x40\x6f\xcd\xce\xcf\x95\x0e\xb4\xef\x80\xd2\xd0\x34\x55\xbd\x9c\x2a\x85\xc4\xb8\xd4\xde\x6e\xbf\x7e\x7d\xde\x7c\x7e\xfa\xf4\xf9\x61\xbd\x7e\x7c\xdc\x3c\xac\x9f\x6f\xd7\x83\x44\x2f\x83\x94\x38\xd0\x7e\xcf\x2a\x89\x60\x7f\xf4\x5e\x7a\x5d\xd0\x7e\x3a\xcc\x6e\x92\x32\x67\xf5\xea\xbe\xca\x04\x02\xa5\xd5\x6d\x75\x3a\x17\xd0\x23\x0d\xf1\xc4\xbe\xcc\x0d\x52\x10\x86\x0e\xfa\xe9\x54\xf6\x4f\x03\x89\x23\xf6\x86\x9f\xa0\x3f\x5d\x54\xff\xbb\x35\x68\xa1\xee\x7f\x3a\xe0\xae\xdf\x80\x82\x5d\x0c\xda\x2a\xcc\x54\xa2\x86\xec\xe5\xbd\xdf\x2d\xc1\x44\x29\x9f\x8c\xf3\xd7\x89\xfc\xe0\xec\x85\x8c\xb0\x81\x2d\x74\xa2\x40\xe0\x69\x9d\xc7\x58\x8c\x65\x2b\x1b\x80\x2b\x24\x9d\x39\xcb\xf7\xf9\x4c\xbf\x5e\x57\x6c\x14\x3b\x15\x05\x4f\x5b\xec\xd2\xb8\xd3\x54\x65\x68\x99\x64\x91\xee\x69\x0a\x77\x55\x81\xc6\xc3\x48\x6f\xbf\x6b\x62\x31\x56\xff\xa2\xfe\x0b\xbd\xc7\x6e\x23\xd0\x64\x9a\x21\xf9\x56\xc8\xdf\x16\xa2\x82\x96\x46\x26\x89\xfd\xc0\xbc\xcb\x8f\x79\x2b\x7d\xf2\x32\x5c\x8a\x32\x57\x6c\x03\xdd\xd0\xc0\xf0\xd9\x93\xcc\x47\xf2\x72\xcc\x52\x01\x38\x8d\x9e\xf3\xf2\xbf\x72\xd1\x29\x09\x0d\xb3\x24\x4e\x3d\xd6\xac\x6c\xaa\xc2\xac\x7a\x38\xb2\x83\x32\x4c\xdc\x2f\xcb\x19\x41\x40\xf3\x0e\xda\xdd\x45\x35\xba\xce\xcf\x5d\xd3\x51\x18\x68\xfc\x19\x2d\xe7\x8e\x43\xa0\xa7\xc7\x19\xe9\x01\xcc\xfa\x95\xc7\x4e\x89\x68\x77\xae\xca\x9b\x5f\x84\xbd\x2c\x4f\x2c\x5a\xbb\x0e\x1b\x74\x07\x05\x1c\x65\xdb\xd3\x0a\xcd\xaf\xaa\x38\x06\x51\xce\xf9\x4f\x28\x9a\x2d\xd4\xb7\x83\x71\x66\xb9\x4e\x90\x82\x65\xf3\xfc\x65\xbd\xdb\xbf\xbc\x1e\x1e\x5f\x6e\x7f\x3f\xdc\x7d\x7e\x1d\x33\x12\x5a\x0e\x19\xaa\xee\x9e\x26\x34\xf0\x0f\x55\x9f\x72\xb3\x82\x0a\x04\x31\x68\x79\xee\xbe\xd5\x23\x98\x01\xe8\x6c\x45\xec\xa4\x50\x1c\x6e\xfb\x29\x2f\x5d\xf5\xfc\x95\x96\x23\xb3\x02\x2c\xa6\xab\xbb\x6f\xf9\xdb\x98\xea\xc2\x1f\x8f\x05\xb5\xc1\x96\x81\x9f\xd3\xea\x67\x1b\x03\x60\x8c\x01\x1d\xa3\x29\x8f\x75\x78\x92\x84\x09\x2c\x28\x39\x61\x21\xdc\xfb\xca\x93\xd5\xd7\xb2\xd8\x76\xce\xdb\xaf\x49\x41\x6d\xc6\x25\x0f\x42\xde\xb9\x87\x04\x6c\xe6\x14\x0d\x36\xd3\x16\x87\xae\xd7\x26\xb8\xb9\x94\xa6\xe8\xbc\xfe\x6e\xb3\x6f\xaf\x6b\x60\xac\x8c\x32\x5f\xfb\xdd\x8e\x58\x18\x97\x68\x0e\xac\xd4\x14\x0b\x92\x7e\x42\x00\x6f\x5b\x09\x06\x43\x82\x7a\x28\xd2\xb4\x8a\x3a\x02\xcc\x75\xe9\x6b\xb7\xfd\xef\x5a\x48\x0c\xb5\xfb\x7d\xba\xf3\xce\xde\x77\x50\xcc\x16\x76\xab\x63\x19\xea\xd8\xf0\x74\x0c\x2b\x4f\xe7\x80\x96\x56\x84\xe0\x80\xbb\xd8\xb5\x62\x1f\xb3\x46\x2b\x2c\xef\x34\x21\x11\x7a\xb8\xad\xf2\xf2\x70\xfb\x26\x6b\xa9\xdb\x9e\x3c\x2c\xb4\x36\x4e\x52\x7b\x9f\x17\xf0\x73\x92\xad\xb3\x36\x8b\x11\xf9\x7b\x1e\x04\x3a\x67\x0d\x8c\x93\x37\x3c\xca\x93\xab\x14\x99\x53\xab\x58\x6b\x13\x64\xf0\x36\xd5\x4d\x58\x44\x78\x14\x11\xcb\x7d\xfd\xe9\x2e\xaf\x3f\x54\xd6\x0c\xad\xb9\x53\x7b\x46\xb3\xed\x34\xca\xcb\x5c\x2d\xa6\x3c\x8a\x12\x8d\xd2\xa6\x25\xfc\x6c\x47\xf4\x5d\x3c\x8a\x0c\x81\xbe\xd4\x6d\x5e\x7d\xc4\x23\x42\x05\x16\x9a\xe4\x4d\x58\xce\x06\x38\x0f\x8f\xa8\x30\x18\x75\x75\xe0\xdc\x1e\xd0\xc3\x23\xd4\x67\x76\x2f\x22\x17\x9f\x9d\x6a\x86\xab\xd0\xf3\xfa\xeb\xee\xe5\xf7\xcf\xc3\xa6\xcb\x23\x6a\x23\x47\x21\xe9\xaa\x13\x56\x18\xf9\x74\x95\xa2\x5e\xa8\xcd\x7f\xf6\xae\x69\x1a\x39\xb8\x43\x01\xba\xdd\xc3\xe9\x5c\xc8\x09\xbd\x37\x8f\x58\xc4\xd1\xca\xdb\xc2\x51\x36\x97\x71\xda\x85\x47\x2c\xb6\x58\x0f\xf5\x45\x55\xa1\xfa\x80\x47\x2c\x75\xd4\x07\x87\xbc\xf1\x65\xf0\x93\xe1\xc8\x23\x4e\x23\xe9\xba\xe4\x55\xb6\x0e\x3f\x3f\x6b\x21\x12\x81\xda\x05\x8f\xd5\x71\xa8\x65\xf7\x38\xcb\x85\x68\x07\x8f\xe2\x88\x6b\x1d\xd0\x7e\x08\x33\x71\xdf\x68\x7a\xd9\x98\xb8\xe2\xdf\x06\xb9\x56\x9e\x66\xfc\x86\x3c\x8a\x33\x85\x80\xde\xa7\x3f\x9e\xb6\x77\x4f\x93\x37\x8d\x55\x86\xb1\xa7\x61\xf6\xf1\x28\x36\x0c\xcb\xd6\x8b\xea\x07\x34\x6d\x60\x4f\xaa\x2e\xed\x3f\x2f\x55\x7d\xe9\xfb\x23\xe1\x04\x93\xa9\x26\x64\xb4\xb1\xae\xae\x99\x0d\x68\x1e\x25\xc2\x29\x44\xf6\x12\x28\x28\x75\xb1\x75\xec\x00\x33\xde\x20\x7f\x4a\x1a\x39\xd6\x99\x07\x59\x1e\x4b\x79\x9a\x3c\x71\x4a\xdc\xca\x28\x8d\x59\x9f\xf3\xa6\xea\xc5\x05\xff\x67\xfa\xd2\x29\x01\xe6\xa4\x35\xda\x35\x0a\x8e\xce\xe3\xc4\x3c\x4a\xa9\x2b\xb4\xb6\x79\x69\xbc\x1e\x0c\x26\x4e\xa7\xad\x32\x95\x86\x50\xa7\x1b\x6c\xcb\xa5\x59\x3c\x92\x71\x8a\xf1\xd5\xce\xb9\x0c\x10\xbb\x70\x28\x91\x3a\x1e\xa9\x11\xef\x74\x55\xc3\x6f\xb3\xa9\x28\x0d\x45\x58\x78\x73\xce\xdb\x72\x4c\x00\xce\x23\x09\xe0\xa0\xca\xd1\xcf\xbb\xea\x08\xba\xca\xcb\x49\xa7\x28\x92\xa0\x11\x7c\x92\x3f\x3f\x3d\x6e\x9f\xf6\x9d\x09\x12\x12\x5a\x3c\x52\x54\x1b\x33\x36\xe7\x9e\xde\x9d\x41\x77\xe7\x09\xbf\x97\x2d\x3b\x1e\x29\xce\x11\xc4\x0b\xce\x7c\xdc\x9d\x01\xf7\x53\x8f\x8b\x69\xc2\xf5\xb5\x16\x31\xf5\xcc\x91\x53\x58\xd9\x6d\x55\xd7\xa0\xaf\x6b\x04\x26\x96\xd4\xcc\x6d\x0b\x13\x54\x9b\x04\x27\x4b\xde\x34\x17\x58\x8e\xd5\xfe\xca\x3b\xe2\x91\x61\xe0\xb4\x4b\x9d\xf4\xbf\x2b\x9c\x5d\x4c\x7f\xf0\xc8\xc8\x58\x25\x81\x62\x08\x0f\xdc\xe7\x50\x04\xa0\x27\x8f\x8c\x06\x8d\x70\x9b\x6e\x8c\x53\x36\x1b\x22\x36\xe6\xb8\x23\x3c\x54\xef\x72\xfa\x61\x6c\x62\x83\xd2\xe4\x31\xf8\xb7\x9c\x44\xd4\x27\x84\x5c\x59\x99\x43\x59\x4e\x1e\x88\x44\xb1\xc2\xf5\xf5\x1f\x97\xa6\xcd\xed\x3b\x06\x56\xe6\x4d\x12\x47\x83\xa7\x3c\x2b\x80\xef\x38\x42\x88\xdb\xfd\xf3\x06\xd7\x20\x3f\xe1\x26\x1b\x23\x27\x44\x30\x8c\x06\xe2\x1e\x31\xe6\x9b\x19\xef\x11\xb3\x1a\x10\x4e\x48\xac\xf1\x96\x3b\x0c\x9f\xe4\x95\xd9\xd6\xb0\xd9\xbf\x1c\x9a\x1e\xcf\x39\xe9\x18\x42\x12\x4a\x3d\x08\xe4\xb9\x6a\xe1\x77\x78\x5f\xc2\x0a\x73\x42\x4c\x82\xc9\xe6\x22\xd7\x50\x36\xb0\xe9\x3e\xf9\x35\x44\x8d\x13\xca\x1d\xc3\x4f\x5f\x39\xb7\x83\xb6\x85\xa9\x90\x0d\x27\x34\xb1\xc4\x6b\xaa\xa0\x5d\x7c\x9f\x17\xc5\x61\xd1\xe5\xe3\x84\xa6\xcc\x7a\x77\xfd\x19\x7e\x38\x63\x66\x99\x4c\x83\x13\x46\x62\xe2\xdb\xde\xbe\xe5\x2a\xbf\xaf\xea\xfb\x4b\xf3\x11\xda\x97\x13\xc6\x64\x12\x76\x6d\x59\xc0\x35\x03\x26\x27\x2c\xcb\x30\x93\x6d\xf2\x6e\x9e\x54\xf5\x4d\x78\x07\xce\x1c\xc5\x00\x12\xb7\xec\xce\xa0\x73\xa4\x6b\xde\xcb\x6f\xd0\xbf\x27\x97\x02\x67\xbd\xed\x1c\xa1\x63\x3e\x1e\x78\x84\x83\x45\xb5\x62\x17\x97\xda\x94\xdf\xab\x39\xac\x94\x93\x98\x02\x0e\xce\x4d\x75\x79\xad\xaa\xb6\x19\x09\x16\x7f\x54\x2d\x12\xc6\x58\xcc\x1c\x32\x64\x5c\x28\xf7\x81\xd4\x63\x38\x23\x71\x59\xd5\xca\x43\xb1\x0e\x7f\x22\x14\x6b\x72\x8b\x7e\x9c\x25\xdc\xa2\x95\xde\xf9\x5f\x77\x73\x21\x35\x4e\x92\xc4\x28\x6f\x89\x3e\x86\x44\x4e\xb3\x7c\xdb\x24\x4b\x71\x09\x2b\xaa\x63\xd5\xcc\x2f\xa3\x32\x1e\x07\x31\xe1\x97\xa1\x1c\x81\x93\x44\xa7\x58\xd5\xf9\x54\xd5\x3d\xc7\x2e\x27\x69\x26\x11\x70\x53\x5d\xda\xa6\x95\xb8\x14\x8e\x62\x26\x9c\x64\x34\xb6\x83\x12\x42\xc8\x5e\x8e\x37\x74\x92\x31\x8e\xf6\x4f\x30\x9a\xd6\xb3\xe8\x13\x27\x59\x4c\x94\x1e\x29\xb8\xcc\x1f\x3a\xd3\x0c\x8d\xbb\x63\x2d\x4b\x73\xb0\x63\xaa\x45\x4e\x64\x6a\x10\x74\xe5\x31\x39\xfd\xfb\x28\x93\x51\xd9\xd7\x17\x17\x55\x7b\x55\x20\xc1\x91\x20\x38\xc6\xac\x69\x5d\x4d\x86\x92\xf6\xb5\x47\x3a\xc8\xf5\x2e\x86\x83\x38\xd1\x19\x47\x5c\x56\xe1\x70\x25\x43\xb9\x1f\x27\x5a\x52\xed\xd8\x55\x9c\x94\xcb\x46\x57\x33\x75\x51\xde\x2d\x01\x49\x67\x90\x05\x70\x39\x27\x46\x41\x1c\x4f\xc8\x47\x6e\xf6\xb7\x37\xf3\xbb\xf7\x83\x06\xa8\x63\xe9\xec\x76\x7c\x83\x29\x8b\x27\xf9\xb3\xeb\xe4\x19\xf2\x20\x34\x37\x12\xf3\xc0\x9d\x8b\xd5\x75\xe3\xe5\x63\xa5\x1e\x7f\x86\xa5\x04\x49\x25\x9b\x52\x9e\x9b\x37\x14\x49\xfd\x06\xb3\x52\xc3\x0f\xce\x8c\x53\x74\x17\x7d\xf8\xca\xab\x94\x39\xe6\x83\x4d\xf9\xb9\xe9\x77\x06\x6b\x98\xb6\x7e\xcf\x2a\xa1\x78\x45\x98\x50\xb7\x10\x56\x97\x49\x2d\x2b\xa7\x11\x77\x99\x93\x7f\xfe\xfb\x21\x8a\xc8\x48\xe6\x8a\xd3\x28\x71\x3a\x83\x79\x73\x73\x79\x7f\x9c\x14\x4a\xf9\x16\x84\xa4\x11\xf3\x85\xd8\x97\xf7\x11\x91\x34\xa7\x24\xb3\x88\x37\x6e\xfe\x9c\xde\x8f\x68\x82\xe1\xc2\xef\x55\x0b\x07\x5b\xd5\x07\x1d\x42\xc0\x87\x5b\xfc\xff\xa1\x6e\x9a\x53\x2a\x14\x26\x11\x1d\x03\x02\xa6\x5c\xc2\x56\x4a\x19\x21\x98\xdd\xb2\xc5\xe5\xe7\x3d\x8c\x6c\x8f\xa9\x7e\x2f\xa7\x4c\x64\x88\x09\xb2\x79\x28\xd5\xe8\x95\x29\x67\x1a\x95\x9c\xb2\x98\x3b\x85\x93\xca\xd7\x7c\xf9\xc4\xd3\xee\x47\xde\xea\x37\x6f\xb0\xcc\xcb\x36\xc3\xb9\x9a\x07\x6a\x8c\x9b\x8b\x39\x42\xfb\x62\x03\x9e\x6e\x79\xd3\xa0\x5c\x93\x94\xfa\xc4\x76\x6d\x66\x0a\xac\xbe\x8d\x60\x4e\x4a\x50\x43\xdd\x6d\xe0\xb3\x0f\x20\x0c\xb5\x72\x52\xf0\x3f\x9e\x72\x34\x66\x16\x03\x57\x77\xd2\xe4\xba\xef\xd5\x84\x47\x98\x76\x7d\xde\x3c\x63\x34\x72\xf2\xd1\x93\x38\x93\xd2\x13\x18\x41\xe3\xd1\xd2\x8b\x40\xad\x34\x9c\x91\x45\x69\x1c\x9c\x0b\xb4\xe2\x2f\xb2\xb8\xed\x47\x73\xdf\x3f\x89\x25\x18\x76\x2a\xaa\x23\xbd\xa9\xae\xb8\x1e\x39\x4d\x3d\xef\x32\xd6\xdf\x9a\xf7\xdb\xaa\xa8\x6a\xb7\x30\xce\xda\x25\x63\xe5\xf3\x6d\x9d\xff\xaf\x63\x6e\x0b\xaf\x90\x49\x16\xfb\xd4\xf3\x8b\xe7\xa9\xbf\x07\xf8\x8a\x25\x23\x37\xef\x2e\xac\xb6\x04\x5d\xe7\x34\x03\xc7\x3e\x82\x25\x98\xfe\x37\xc5\x04\x56\xac\x61\x3c\x23\x94\x5e\x8d\x78\xb0\xaf\x9d\x61\xaa\x34\xc5\x0c\x94\xc3\xda\x0f\x38\x3b\x4e\x0d\x65\x68\x78\x68\x59\x06\xc9\xa5\x59\xc2\x68\xfa\x40\x46\x67\x22\x94\xe2\x2d\x14\x63\x70\x0a\x91\x93\x74\x7b\xac\x8e\x41\x82\xf1\x97\x75\x16\x9c\x02\x61\xcc\x86\x78\xbd\x1f\x34\x77\xd5\x8f\x7e\xcc\x40\x0a\x54\x04\x35\x91\x53\xbe\x4c\x1b\xcc\x29\x64\x52\x79\x00\xe0\xbe\x96\x06\x7e\x1b\xcd\x38\xc8\x14\x92\xa5\xfc\x00\x79\xee\x6c\x80\x6b\x19\x2f\x4e\x2d\xf3\x34\x09\x97\xd2\xdc\xc9\x2a\xdc\xdd\x0a\x17\xe6\x6c\xb0\x2e\x63\x24\x30\x39\x1d\xf8\x2c\x4a\x05\xea\xdd\xf9\x1c\xa3\x2c\xbf\x39\x76\xf7\xc5\x77\x66\x51\x96\x21\x4c\x4f\xe5\xe6\x23\xbe\xf4\xd9\x19\x44\x39\xcc\xe1\x11\x46\xe1\x20\x7f\x8c\x12\x82\x61\x9e\x12\x7e\xdc\xc9\x0a\x35\xc4\xfb\x6a\x95\xbf\x9b\x80\xc1\x45\x6a\x7a\x4b\x2a\xb8\x93\x4b\x0f\xee\x95\x27\x4d\x1f\x11\x09\xcf\xcf\x88\x29\xf1\x0f\xb9\x05\xf9\x6d\x1c\x22\xe2\x8c\x51\x8d\x6e\xe0\x0e\xb1\x5a\x36\xaf\x4f\x08\x33\x1e\xe7\x04\xd2\xd1\x32\xc9\x44\xe4\x10\x05\x7d\xd0\xb2\xdb\x5a\x90\x5b\x78\x5b\x57\x6d\xa5\xab\xe2\xca\xf3\x65\x42\xb8\xe0\x4e\x9b\x9f\x60\xfd\xb3\x85\x72\xe4\xac\x32\x91\x46\x08\xd1\xd8\x3e\xdc\xad\xfa\xdf\x32\x8e\x5b\xf1\xf3\xcd\xfe\x4b\xff\x1b\xb0\xcc\x73\xcb\x0d\x81\xe8\x5f\xad\x38\x2c\x26\x16\xf3\x9e\x4d\x5e\x1e\x8b\x5e\xc6\xf0\x29\xef\x6f\x1d\x33\x08\x85\xdb\xd3\x6a\xc1\x30\x45\x59\x9c\xb8\x9a\x6c\x97\x1a\x44\xb7\xca\x57\xe4\x4e\xdf\x30\xb6\x0a\xdd\xff\x43\xde\xb8\xd4\xd8\xa2\x79\xc8\x12\xa2\xd1\xd0\x6c\xaa\x13\x3c\x41\xfb\x56\x19\xf1\xcb\x24\x3d\x67\x09\x4b\x49\xcf\x21\x52\x05\x15\x2b\xce\x12\x9b\x49\xff\xd9\x0e\xef\xd5\xa5\x3e\x1c\xe5\x09\x0e\xa5\x5b\x86\x31\x91\x13\xae\x20\x89\x23\x4d\x3d\xe7\xc5\x5c\xc0\x8f\x33\xa5\x1c\x72\x12\x13\x6a\xaf\x55\x51\xdc\x05\xbb\x3d\xac\xc7\x4c\x8b\x18\x6d\x04\x93\x37\x4e\xe3\x2d\xfc\x1e\x1b\x4c\xdf\x3b\x22\xf0\x1e\x11\xb6\xbc\x42\x31\x9d\x48\x5c\x4e\x5e\xb6\xab\x7f\x85\x2b\x80\x10\x58\xa5\x07\xb5\xec\x7f\x8a\x69\x94\x8d\x74\xfd\xb7\xb2\x6e\x9b\xdb\x2b\x76\x85\xfe\xe5\x6c\x9c\xea\x6c\x90\x8e\x3b\x61\xca\x21\x30\x6f\x87\x36\x99\x71\xd9\x15\x80\x6f\xdc\x61\xf0\xc2\x11\xc5\x63\x13\x78\xf6\x3c\x37\xb1\x9b\x4d\x0b\x61\x66\xce\xac\x56\x0a\xfa\x30\xe3\x4d\x55\x61\x9d\xde\x34\x1c\x34\x92\x30\xe9\xa3\x0d\xfd\xe4\xe1\x11\x07\xe4\x43\xa9\x51\x7e\x60\xb0\x98\x79\x24\x28\x26\x65\x6e\xb9\xee\x11\x8d\x9c\x47\xd6\x91\xdb\x6d\x5f\xd7\x07\x04\x30\x6c\xd7\xaf\xb7\xeb\xe7\x7d\x38\x4e\x58\xec\xab\x9f\xd0\x23\x9e\xdb\xb8\x9c\xb0\x14\xab\x62\x1c\x60\xf8\xa1\xa8\x14\x16\x7d\x35\x6d\x2d\xf3\xb2\xdd\x8e\x2c\xd0\xa5\xb5\x9b\x13\xe9\x10\x5e\x75\xc8\x31\x86\xdf\x35\x75\xfa\xf5\x6f\xd5\x8f\xcf\xe5\x59\xe6\x66\x53\xb6\x50\xcf\x4b\x92\x39\xa7\x8c\xa1\x6c\xcd\x03\x86\x9f\x4b\x9b\x1f\xc3\x25\x68\x9c\xc0\x50\xfc\xb5\x03\x7d\xc1\xe2\xa3\x5f\x6e\x49\x9c\x2a\x81\x50\xcc\x7f\xef\x77\x7d\x17\x30\x6a\x31\xf3\x7b\x85\x15\xff\xf5\xa5\x18\xe7\x2a\x84\xeb\x66\x42\xe8\x9c\x77\xdb\x0b\x62\x1f\xd7\xaf\xbb\xcd\xcb\xf3\xe1\x79\xf5\xb4\x0e\xf7\xe3\x09\xa0\x53\x8e\x71\xea\xee\xbd\x1a\x94\xa2\xb8\xaf\xea\xdd\x39\x2f\xcb\x1e\x85\xcf\x39\xcf\x74\xe6\xc3\x7d\x79\xf3\x86\x8b\x6a\x70\xb7\xb9\xc8\x58\x94\x05\x34\xd8\x41\x77\x9f\x44\x96\x2d\xed\x0f\xeb\x18\xe1\xd4\xa1\x8e\x66\xdb\x19\x7c\x0b\x98\xa8\xff\x24\x83\x51\x91\xba\x7f\x32\xfa\x1f\xfa\x7f\x47\xb5\x39\xe3\x40\x27\x17\xd6\xc5\x3d\xde\xe0\x67\xd3\xd6\xfb\x0a\xd9\x56\x26\x1e\x23\x8f\xa9\xc2\xed\x00\xa1\x4f\x6f\xb9\x7e\xbb\xdd\xdf\xcd\xbe\x6a\x9c\x3a\x4a\xb6\x12\x7e\xb6\x37\xb9\x71\xd1\x69\x44\x93\x8c\xc5\xb3\x39\x4f\x38\x23\xa1\x60\xe4\xf6\xd3\x52\x39\x2d\xe7\xa9\x72\xa8\xf2\x36\x30\x39\x4c\x63\x2b\x3c\x4b\x5c\x79\x8d\x2c\xcb\x4b\x71\x8b\xb6\x6d\x3e\x31\x5e\xa6\x8f\x96\x69\xe6\xe2\xcb\x39\xfc\x38\x1c\xa1\xc5\x55\x11\x63\xd8\xc3\x15\x75\x6c\x7c\x88\x6c\x81\xd1\x61\x36\x4c\x24\x75\x95\xb0\x47\x54\x3a\x5e\xc6\xec\xcc\x4f\x61\xd4\xb9\xaf\x68\x50\x76\x9b\x4e\x30\xd8\xff\xea\x3c\x8e\x74\xbc\x79\xf9\x84\xdc\x4b\xe5\x68\x09\xe3\x32\x4d\xe5\x50\x77\xe1\x10\x95\x03\xe9\xb4\xdf\xa6\xaf\xfe\x4c\xae\xaf\xa8\x4c\xc7\xca\x81\x0b\x75\x01\xa1\x25\x24\xa0\x82\xe5\x17\xca\x20\x6f\x07\x2c\x1a\xe7\x3a\x01\xc4\x80\x21\xfb\x3b\x7a\x05\x97\xbf\xc0\x8d\x71\xae\x95\x41\xe4\xd2\x73\xa5\x26\xce\x07\xb7\xd4\xa2\xe6\xb6\x83\x8d\x85\x1f\x65\x6c\xfc\x66\x7f\x0d\xe6\xe1\x22\x8a\x22\xa4\x25\x73\xba\x1b\x61\xde\x08\x2a\x14\x5a\xf4\x1e\x06\x37\x24\x82\xba\x23\xda\xa9\x0a\x6f\xf6\x9b\xd5\xe3\xe1\x66\xf5\xb8\x7a\xbe\x5d\xf7\x87\x63\x8b\xd2\x50\x37\x97\xf7\x8f\x6a\x73\x26\x7d\x24\x18\x97\x68\xb4\x3c\x56\x47\x3f\x2a\x31\x2c\x38\xf7\x7c\x05\xe3\x0a\x99\x85\x14\x86\x41\xd6\xa5\xae\xdf\x71\x8b\xda\x5e\xd4\x37\x08\x36\x98\x60\x71\x42\x4c\x6f\x53\xf5\x7c\x83\x4b\x26\x84\x60\xca\x22\x08\xe7\x7b\xde\xad\x09\x23\x22\x97\x70\xdc\xb8\x94\x17\xce\xfb\x98\xef\xab\x1d\xbe\xcf\x22\xae\x9f\x0b\xc1\x52\xc4\x6c\x9c\x3b\x17\x83\xcc\x55\x94\xb9\x88\x13\x22\x17\x44\x44\x17\x3d\x5b\x11\x27\x2a\xf5\xd8\xe9\x1d\x14\x76\xd5\xf4\xc5\x3c\xd5\x24\xa7\xc9\x45\x9c\x25\xdc\x47\xd4\x9e\xe5\x09\x5c\x91\xc3\xc6\x5c\x11\x1d\xcd\xae\x9f\x25\x81\x7e\xec\x19\x7e\x2c\xab\xdb\x70\x91\x50\x63\x6d\x58\x3c\x4f\x50\xb6\x9f\xcb\xfc\xcf\x0b\x94\xd0\x34\x23\x84\x33\x17\x49\x2c\x31\xe4\xfd\x0c\x3f\x76\xd5\xf9\x6d\x89\xdb\x9a\x8b\x24\xd1\x48\xa0\xef\x29\x85\x1e\xe1\x3b\x14\xf3\x2f\x92\x7a\x8d\xbb\x23\x04\x3a\x86\x29\xe3\xd8\xac\xb5\x75\xdf\xef\xcb\xeb\xfa\xc5\x6f\xea\x9f\x56\xbb\xf5\x81\x1c\xd6\xcf\x77\x28\x64\x17\x1e\x30\xe3\x22\x91\x43\xc5\x77\xfe\xbf\x7f\x29\xed\x3c\xbb\x55\xa6\x01\x23\x1a\x2a\x70\xf8\x3f\xe5\x65\x3f\x23\x32\xd0\x98\x62\x28\x64\xd3\xba\xc0\x42\x3e\xee\x1d\x19\x49\xe3\x83\xc9\x9d\x63\xf3\x98\x7b\x94\xfb\x3c\x67\x28\x64\x62\x71\x9b\x6b\x2a\x9d\x0f\x82\x54\xe1\xa0\x25\x5c\xf4\xb8\x7d\x5c\x43\x1e\x31\xcd\x37\x36\xc3\x84\xa2\x52\x39\xda\x65\x3d\x09\x05\x0a\x25\x53\xee\x8a\x7f\xe4\xfb\xea\x87\xac\xcd\x82\x87\x28\x74\xc4\xb0\x7e\x2a\x98\xa0\x9d\x23\xe4\xf5\x33\x36\xe5\x77\x28\x31\x60\xf9\x41\x26\x28\x5c\x42\x46\xf8\x4d\x3e\x97\x43\x7c\xf7\xea\x94\xc9\x5b\x6b\xc5\x31\xa5\xd2\x99\x40\xe3\x6d\x29\x1c\xb6\x91\x76\xe2\x51\x7e\x0c\x06\x4c\xc4\x64\x87\x14\x26\xa5\xc6\xa7\xa7\x7f\xcf\xcb\xa3\xa9\x4e\x5e\xcb\xe6\x75\x1b\x9a\x00\xc9\xb8\x07\x70\xff\x36\x66\x98\x08\x87\x63\x47\xbf\xbb\x6b\x01\x4e\x79\x3b\x10\xed\x70\x01\x29\xc1\x44\xe2\xcd\xea\xf1\xcb\xe6\xb9\x67\x3d\xee\x0e\x58\xe4\x90\xfa\xf4\xe5\xa6\xff\x49\x71\x14\x2c\xfa\x74\x91\xfb\xcb\xf4\x1b\x00\x44\xf8\x0d\x7c\x32\xee\x1e\x60\x54\x35\xd3\xaf\x3a\x96\x11\x4c\x02\xd5\x83\x22\x03\xe9\x8f\xa5\xbd\x02\x08\xd2\x0a\xce\xcb\x30\xb9\xb0\x32\xcd\xc6\x5a\xdd\x8f\x79\xd3\xf6\x1a\x6b\xb3\xa6\x26\x4d\x64\x40\xed\xb6\xb2\xf8\x24\x9b\xb7\x57\xd9\xce\x35\x63\xb8\xb0\x36\xd3\x8e\x67\xa8\x3e\xe5\x65\xe7\x3d\xbd\x55\x75\xdb\x5b\x52\xae\x55\x1c\x45\x8e\xaf\xec\x58\xe7\x1f\x04\x05\xe2\x28\x26\x91\x93\x90\x38\x93\xe9\x3d\xe2\x28\xb1\xee\x33\x3b\x8e\x00\x8c\x6d\xfc\xcf\xac\x49\x46\xec\x20\x5a\xda\x8d\xcd\xc1\x79\x7d\xcc\xe7\x16\x73\x1c\x29\x11\x79\x8f\xf4\x2b\x96\xf2\x37\x73\x97\x34\x8e\x20\xc6\x60\x6a\x79\x39\xdd\xc9\xfa\x5b\x59\x99\xde\xb8\x89\x09\xe5\x18\x4d\xc5\xad\xfb\xae\x8f\x63\x07\x94\x3b\x8f\x89\x10\x6a\xd0\x85\xf9\xdc\x40\x7d\xf3\xbe\x3e\xc9\xbc\x40\x01\x8f\x6b\x56\xe9\x69\x57\x90\x4c\x27\x76\xaa\xc1\xb5\x1a\x13\x5c\x2c\x84\x2b\x62\x9a\xa4\x08\x87\x7c\x78\xf9\xb2\x7e\x7d\x1e\x6d\xba\x31\x63\x11\xfa\xcc\x5f\x64\x99\xb7\xae\x3c\xe1\xf0\x9d\x85\xa3\x3c\x65\x36\x0b\x29\x1f\x7c\x58\xb7\xd1\x7d\x2c\x24\xc1\x63\xae\x1c\xbd\xe8\x0f\xf4\xde\xee\xa5\x06\x55\x55\xdf\xfa\x2b\x5a\x81\xe4\x31\xdf\xab\xb6\x6a\x70\xf0\x0c\x1d\x27\x98\xc5\xf0\xe9\xee\xd3\x66\xfb\x6b\x8f\x3c\x16\x71\x86\xb5\xcc\x5b\xd0\x97\x22\xbf\x4c\xe0\x02\xb1\x90\x12\x83\x14\x8e\xae\xf8\x38\x2d\xcd\xe3\x71\x9c\x50\xa4\x0f\x6f\x2e\x0a\xfb\x5e\xb6\x6d\x01\x2e\x76\x79\xb5\x42\xf5\x5e\x63\x9c\x44\xa9\xe8\xe9\x7e\x19\x9b\x55\x0a\xd0\x69\xa5\x00\x8f\x13\x66\x18\x09\x5e\x2d\x26\x40\x16\x2d\x89\x38\xe1\x91\x53\x29\xbb\x14\xdf\x56\xc6\x3c\xc9\x6f\x8b\xf0\xea\x79\xd8\x32\x4e\x32\xd7\x01\x0f\xdd\x9e\x3a\x46\x1f\xf2\x38\xf5\x10\xa9\xf3\xa5\x6c\xc7\xc2\xe8\x9d\xcf\xe0\xa6\xe3\xa3\x6c\xf3\x1e\xd4\x11\xa7\x56\x23\x25\xa0\xd7\x84\x78\x93\x35\x74\xfe\x04\x94\x8e\x66\x4a\x2f\xac\x00\x71\x16\x11\xe3\xad\x8c\x7b\x99\x17\x7d\x9a\x3b\xce\x22\x85\x9c\xfa\x23\x54\x28\xa2\xf2\xc1\x80\xd9\xdc\xae\xb6\x57\x85\x2b\x53\x4b\x2f\x5c\x25\x71\x4c\x12\xc8\xa3\xf0\x49\x16\xdf\xf3\xf2\xd8\xec\x2e\xaa\xc9\xcd\x9c\x7c\x87\xc7\x59\x9a\x62\xce\x7f\xd8\x02\x46\x6b\x8b\xe2\x19\xda\x0e\xaf\x9b\xdb\x4f\xa8\xc2\xb1\xcc\xd6\x17\x5a\x8b\xd4\xd8\x10\x1e\xef\x61\x80\xd3\x67\x53\x20\x31\x67\xd5\x79\x5e\x58\x29\xe9\x7f\xd7\x69\x42\xa2\x01\xaa\x3b\xac\x85\xb3\xa1\xab\xa5\xc0\x91\x81\xe1\x87\x70\xb2\xf1\x05\x8e\x38\x5c\xfe\x8e\x1d\x16\x1b\x43\x91\xf4\xe4\xe6\x71\x3f\x19\xfc\xc6\xa4\xe0\x88\x6d\xbc\x8c\x70\x38\x00\x4c\xf7\x64\x3a\x75\x95\x9b\x66\x33\x8c\x56\x48\xc0\xe9\xfa\x55\x97\x22\x88\x02\xf6\xc7\x32\x82\xe7\x35\xf9\xb1\xec\xa7\xd2\x5c\xf1\x6b\x98\x27\x90\x31\x27\xbe\x72\x39\x9d\xfe\x01\xe5\xb7\x9e\x46\x9c\xc7\x00\x22\x21\x43\xba\xe2\xbe\x06\xe8\x97\xc7\xd1\x27\x03\x4b\xd1\xdd\xf4\x16\x93\x17\x02\x0c\xfe\x45\x12\x31\xa1\xe4\x50\x3d\xea\xc8\xf8\x43\x80\x7e\x39\x00\x9e\x44\xdc\xb1\x11\x1c\xc7\x5e\x70\xdc\x5f\x31\x13\x8e\x4f\x07\x46\x94\xf7\x3c\x89\x8c\x95\x6e\x10\x56\x8d\xcf\x48\x8c\x31\x17\x49\x64\x35\xc2\x88\x7d\xe2\xd5\xf1\xbb\xbd\xd4\xc7\x45\xda\x9b\xa5\xe1\x96\x10\x0a\xd4\x17\xc2\xfe\x7c\xf7\xd9\xab\x8f\xac\xa4\xd9\x1b\x91\xd4\x39\x5f\x16\xa0\x09\x11\xdb\x84\xa6\xa9\x55\xbf\x28\x9f\x1a\x17\x92\xf0\x84\x1a\x11\x23\x81\x33\xae\x64\xeb\x3f\x89\xaf\x8a\xfd\x9f\x51\x71\x2c\x4f\x18\xe5\x0e\xcd\x82\xc5\xf4\xb3\xb5\x34\xe1\x0c\x30\x3d\xee\x65\x33\x61\x08\x5b\x0f\xf7\xe1\x2a\x49\x1d\x3f\x75\x5d\xfe\xb1\xfd\x85\x90\x04\x4f\x04\x38\x89\x1f\x8c\xa3\xb6\xa3\x61\x9d\xc4\xc0\x91\xbf\xc6\x97\xa5\x14\xc5\xc7\x29\x9d\x24\x55\x31\xa2\x88\xa4\xaa\x6a\xa7\x2d\x1d\x06\x73\x92\xd1\x2c\x82\xde\x12\xb8\xa9\x2e\xa5\x9e\x55\x6f\xf2\x24\x63\x91\x18\x60\x14\xdb\xb7\x0a\xca\xfc\x67\xbf\x4b\x25\x19\x4f\x90\x91\x26\xe0\xc4\xbf\xba\x88\xd3\x6c\x55\x4a\xa4\x70\x84\x20\x07\x67\x76\x07\xb5\xeb\xcd\xd9\x36\x9d\xb9\x04\x9e\xdd\x90\x46\xa1\xbd\x94\xd8\xcf\xc7\xdc\xb3\x0a\x34\x1f\x85\x71\x13\x65\x0d\x06\xe6\x1f\x2e\xb2\x36\x60\x6e\x00\x6a\x5d\xe5\x65\xcf\x2c\xc7\x13\x9d\x59\x8c\xa9\x7a\xde\xd6\x65\x84\xcb\x6c\x44\x19\x91\xa8\xc8\x67\x73\x0e\x4e\x57\xda\x7f\x82\xe5\xa7\x30\x99\xc8\x3c\xd3\xc3\xe7\xdd\xdd\x35\x85\x19\x4f\x8c\x64\x18\x17\x2e\xe1\xc7\xee\x2c\x35\x34\x6f\xf9\xd9\x63\xee\x7c\x74\xdc\x0d\x35\xba\xfc\x67\x7a\x31\x20\x5c\x3a\xf2\xa3\xb6\xce\x21\xf4\xd1\x5f\xbc\x13\x08\xe2\xd2\xc9\x48\x78\xb2\x7f\x83\xa7\x6a\x28\xf3\xe4\x69\x94\x44\x68\xaa\xd8\x22\x3f\xdf\xca\xb3\x4b\x1c\xef\xab\x51\x7a\x2c\x25\x91\x90\x9e\x97\xe1\x46\x96\xdf\xea\x2a\xc0\xd3\x79\x4a\x12\xae\xfb\x6a\xaa\x1d\xb4\xb7\xb2\xc9\xcb\xa9\xaa\x31\x4f\x89\x8e\x78\x30\x95\xff\xd8\x2d\x64\x48\x53\x62\x38\x5a\x60\x8e\x81\x1e\xe5\xba\xbb\x5d\x6f\x53\xde\x5c\x8a\x6f\x33\xb2\x43\x9e\x52\x4a\x5d\x22\xa0\x42\x73\xfa\x9b\xcf\xf9\x11\x3a\xe5\xf2\xe1\x29\x55\x06\xc7\x9f\xfb\x92\x3e\x1a\xff\x24\xcf\xb3\xe7\x63\x69\x8c\xa9\x8d\xbb\xf5\x97\xc3\xf6\xe5\x75\x00\xd6\x77\xa6\x9f\x4e\x3d\x4b\x26\x86\x23\xc6\x1a\x1a\xe3\x88\x66\xca\x09\xc1\x6a\x6c\xf8\xd9\xd6\xd2\xdf\x69\xcc\xbe\xcf\x53\x2e\x15\x7e\x87\x1e\xc3\xb5\x3a\x9f\x8b\x7c\xc9\xb2\x48\xb9\x36\x41\xe2\xa0\x9b\x59\x81\x38\x81\x4c\xb2\x4a\x29\x87\xcc\x69\x22\xb5\xb2\x6e\x43\x5d\x6b\xd8\x22\x52\x41\xe3\xc8\xbb\x74\x2b\xad\xab\x53\x77\x2f\xb8\x59\x86\x01\xa6\xc2\x5a\xed\x20\x07\xae\xe6\x7d\x7f\x17\x8c\xe3\x34\x89\xa4\x08\x4a\x4a\x55\xd9\xbe\x39\x5d\xc9\x6b\xe3\x30\x4d\x22\xc7\x05\x11\xd6\x84\x55\x51\x8c\x37\xe5\x34\x4d\xb4\xd7\x9f\x5b\x97\xed\x28\xc6\x1e\x0e\xdb\x0c\x91\x55\x8f\xd5\x71\xa8\xbc\x9f\x36\x91\x2a\xe2\x30\x6c\x8a\x87\x7e\x9b\xea\x8e\x20\xea\xeb\x69\xfd\xf5\xf0\xba\xde\xad\x5f\xbf\xac\x0f\xf7\x9f\x9f\xef\xc2\x71\x05\xd2\x65\xd8\xe5\x49\x15\x50\x23\xaf\xe9\xb4\xcb\xb5\xc9\x70\x04\x86\xa8\xe4\x0d\x68\x79\x69\xe0\xda\x82\x99\x49\x79\xfd\xcf\xec\x32\xe0\x66\x28\xee\x3e\x68\xb9\xa1\x2d\x79\xc8\x1b\x34\x06\x75\xd5\x33\x6f\xf2\xd4\x30\x40\x23\xea\xfe\x9f\xa3\x1d\x37\x35\x32\xb1\xa3\xea\x84\x91\x09\x16\x1a\x18\x82\x9e\x76\xfb\x96\xd7\xe6\x76\xc4\xb4\xef\x8f\x5b\x0a\x02\xfc\x1a\xf6\x15\xf2\x59\x1f\x5a\x99\x20\xbf\xd9\x7f\x2f\x4d\x4b\x22\x04\x40\xba\x23\x59\x14\xb1\x6c\x30\x81\x5f\xa5\x86\x2b\xc5\xf6\xe9\xf4\xca\x08\x4f\x03\xd3\xf9\x6d\xde\xbe\x6f\x0b\xe9\x81\xf9\xe1\x92\x24\x15\x29\x8c\x33\xc4\x3b\x68\x2f\x67\x4f\x9c\xf0\xb9\x6c\xf3\x61\x07\x23\xf1\xb4\x5e\xac\x3b\xd9\x45\x07\xce\x50\xdb\xaa\x3e\xf9\xe4\xfa\x9c\x4c\x8e\x67\x2c\x32\xb8\xfd\x86\x2f\xf7\x0a\x0d\x22\x3a\x6e\x74\x75\x39\x57\x1f\x6d\xb3\x19\x27\x90\xfa\x87\xef\x8c\xb0\x89\x93\x90\xf1\xd8\x79\x4f\xb7\x55\x0d\xbf\xd0\x4b\x1d\x4f\xc7\x8c\x83\xb6\x0e\x23\x5a\xb6\x55\x23\xff\x08\xd7\x12\x91\xc5\x95\xe1\x15\xbe\x57\xdf\x82\x07\xe4\xbe\xdb\x6c\x80\x67\x22\x4b\x90\x39\xb7\x5b\x00\x9f\xa0\x69\x46\xda\x1b\x13\xa3\x29\x8b\xa3\x04\xd9\x2a\xd1\xb8\xad\xa6\x13\x2d\x8b\x93\x0c\x53\x4a\x0f\x2f\xeb\xfe\x27\xab\x31\x76\xb2\x87\x62\x94\xd6\xcb\x12\xa1\x11\x9e\xf6\x26\x6b\x73\x2b\xcf\xe3\x58\x58\x96\xc6\x56\xa8\xe0\x62\x57\x85\xa9\x7e\x94\x41\x84\xe1\x3f\x24\x8a\xfe\x6f\x68\x96\x25\x91\xec\x0b\x4d\x8a\xea\x1d\x8c\xea\x46\x23\xae\x8d\x4f\xb2\xae\x73\x79\x1c\x06\x44\xc6\x13\x8c\xbd\x77\x06\xd9\xb8\x4c\x18\x5b\x3b\xa0\x5a\x1a\x96\xf9\x2c\xd3\x8e\x65\xb9\x09\x15\x8e\xb3\xde\x92\xda\xc9\x22\x18\x59\xa1\x63\x1e\xc8\x10\x79\xa6\xd2\xd8\x85\x71\x10\x60\xb0\x29\x6f\x7d\x2d\xe6\x60\x60\x67\x5a\x44\x68\x3f\x74\x1f\x42\xc3\x8b\xf5\x16\xcc\x74\x55\xc8\xb4\x26\x38\x19\x0f\x61\x61\xbc\x81\xf6\xc3\x9a\xdc\xd9\xa9\x26\xc2\x1c\xad\x2c\x5a\xf0\xa0\x9e\x2d\x38\x46\x81\x2b\x5c\x42\x66\xac\x45\x5f\xaf\xbc\x9c\x5c\xb9\x71\x01\x66\x86\x36\xcf\x20\x4e\x30\xd9\xd9\x7d\xf1\xdb\xa2\x33\x58\x27\xa2\x18\x5d\x83\x54\xf8\x4f\x71\x7f\x29\xcd\x35\xa4\x3f\x03\x90\x58\x4c\x7e\x92\x4d\x0b\xf5\x4c\x9e\x87\x67\x96\x5a\xef\xd0\x16\xc5\xb5\xea\x29\x97\x51\xe4\xea\xd8\x5d\xd9\xed\xb4\x3c\x88\xcb\x88\x41\xe2\x94\x90\x4a\x5d\x5c\x0c\xa0\xa8\xca\x38\xd0\x2d\xa3\xd8\x79\x87\x9e\xbc\x1f\x03\x74\xcb\xb3\x53\x46\x19\x71\x44\x0f\xd8\x71\x7d\x30\xf4\x53\xde\x2c\x45\x51\xfd\x49\x84\x32\xcc\xaf\x1f\x3b\x9b\x30\x97\x25\xed\x9e\x32\xdc\x9c\xc6\x69\xd8\x0f\xb7\x35\x7c\xae\x73\x32\x7d\x7c\x6a\x32\x8c\xe9\x5f\xab\xf5\x71\xc9\x38\x04\xae\xdd\x9e\xa5\x6b\x99\xcb\x88\x4b\x26\x44\xe2\xa8\x07\xdb\x1a\xce\xb9\xf9\x52\x5d\xf4\x1b\xd4\xbb\xaa\x18\xab\xf2\x73\xc9\x14\xc1\xce\xec\xd3\x60\x5d\x4f\x81\xb9\x2a\xb2\x98\xef\x3b\xfe\xf4\xce\x9f\xf3\x04\xc4\x07\xe5\xca\x0c\x7f\xa5\x88\xc8\x25\x97\x4e\xcf\xf2\x0c\x38\x92\x5d\xf5\xe4\xb9\x5f\x35\xa4\xa0\x8e\xfd\xeb\x93\x6c\x1e\x72\x3b\x85\xef\x4a\xc1\x33\xd2\x53\x0f\x1e\x64\x7f\x4e\x62\xb0\x7a\xe0\xb1\x3a\x6e\x1d\x2b\xd6\xb6\x86\x09\x99\xeb\xdf\xaa\x58\x90\x22\x83\x90\xb8\xc0\x6c\xa8\x13\x24\xf0\x28\x20\xe9\xaa\x6a\xaf\xa0\x64\x52\x68\x43\x3d\xe4\x02\x69\xab\x83\x02\xec\xb4\x55\x2c\x09\xa2\x63\x5f\xd7\xff\xfc\xbc\xde\xed\xd7\x77\x87\xdd\x7e\xb5\xff\xbc\x0b\xef\x90\x64\x5c\x38\xfc\x20\x8a\xa2\x14\x45\xb7\xeb\x19\xcf\x83\x3d\xbd\x54\xa2\x5d\x0e\xd8\x63\xac\x06\xef\x59\xa6\x1e\xce\x5e\x23\x70\xe5\xa3\x41\x9d\x2a\x83\xd5\x59\xeb\x3f\x6e\x3f\xad\x9e\x1f\xd6\x87\xd7\xd5\x7e\xdd\x5f\x42\x4b\xa4\xbc\xb3\x75\x75\xba\x96\xb1\x99\x5d\x49\x46\x80\xd9\x30\xb4\x30\x6e\xd0\xba\x1d\x6f\x01\x52\xd1\xd8\xbb\x78\xce\x51\x08\x05\xd6\x66\x5b\x57\x95\x9d\x96\x44\x48\x95\x45\x2c\x20\xe3\xf6\x8f\x4b\x3a\x0c\x5c\x2a\x19\xe1\xd2\xf0\x94\x97\xb0\xba\xfb\xe0\xfd\x34\x21\x91\x37\x5b\x0f\x18\xf8\x3d\xe4\x2d\x9c\x9a\x43\x5e\x1e\x1a\x2c\xdf\x9a\xde\xd7\x70\x97\xde\xdd\xfd\x90\xe7\xc9\xd3\x03\xa1\xd4\x47\x5c\xb1\xb6\xea\xbe\xaa\x7b\x5c\xc7\x12\x2e\x2d\x9c\x66\x14\x86\x11\x9d\xb6\xb4\xcb\x5f\x78\x92\x8b\x70\x65\x1b\x65\xc8\xda\xf1\x87\x91\x1a\x9b\x0d\x48\x95\xd9\x2b\x2d\x05\x1e\x67\xaf\x6b\x09\xe0\xfe\x84\xfa\x23\xf5\x83\xfc\x0e\xb7\x5f\x6f\x7f\x9d\x5c\x97\x96\x39\x18\xe0\xd3\xfb\x2f\x74\x29\x42\x5b\x93\x20\x8f\x1f\xfa\x56\xf3\xb4\x82\x8a\x04\xc1\x39\xb3\x2a\x9c\x48\xca\xa7\x30\x67\x16\xec\x7b\x15\xa5\x8a\x9b\x3e\xfd\xe5\x71\x00\x55\x3d\x1b\xe0\x2a\x02\x1a\xfb\x45\xe5\x66\x5e\xc4\xa7\x08\x71\x0e\xc5\xcd\xcb\xf3\xe7\x1d\x32\x41\xee\xf6\xab\x87\x75\x70\x38\xba\xe3\x41\x79\x74\x5b\x55\xc5\xaa\x34\xbf\x42\x8a\x2a\x42\x52\xe4\x7f\x75\x32\x5b\x3d\x1e\xf1\x23\xd4\xcc\x78\x39\x52\x04\x88\xed\x23\x85\x16\x6a\x11\xfd\x14\xd1\xec\x95\x29\x77\x00\x2e\x0c\x96\x3c\x5c\xba\x85\x71\x1a\x22\x51\x54\x1b\x0c\x8b\xa2\x34\x66\xf7\xc8\xe1\x4d\xa8\x89\x31\xe5\xe8\x0b\x89\x96\x54\x38\x67\x2f\xc3\x49\x16\xd0\x5f\xab\xa2\xe8\xcc\xb7\x59\x8c\x5b\xf1\x4c\xb3\xae\xf7\xb6\x55\xe7\x87\x1d\x44\xb8\x97\xa0\x11\x7a\x4d\x4d\x37\xdb\x0f\x77\x79\xa3\x47\x9b\x84\x12\x3c\xc6\x02\xab\xce\x42\x75\x41\xbe\x5e\x35\x81\x2b\x91\x24\xc1\x2d\xdf\x98\x55\x5d\xcb\xf7\x4d\x0b\xa7\xab\x1e\xfc\xc5\x10\x53\x09\x8d\x10\x9f\xdf\xfe\xbc\x07\x40\xd6\xd8\x9e\x7a\x86\xab\x24\x49\xb2\x14\xb9\x52\x9d\xea\xee\xfb\xdc\x11\x57\x49\x2a\x1d\xe1\x5b\x51\x95\x70\x05\x29\x1d\x97\x87\x7f\xcc\xd2\x34\x7f\xa2\x0c\x10\x38\x73\xf0\x35\xd0\x21\x99\x1a\x18\x7c\x3f\x38\x4b\xc7\x28\xaf\x71\xf7\x10\x5c\x3e\x95\x46\x3c\xa2\x5e\x8a\x5b\xb6\x70\x07\x4d\x5b\x5f\x06\x9d\x26\xae\x52\xa1\x89\xea\xc3\x60\x58\x2f\xe1\x2a\x95\xc2\xf1\xc4\x55\x97\x3a\x82\x0d\x47\x68\x3b\x3a\x0a\x99\xec\xcb\x84\xcf\x55\xee\x53\xf2\xe1\x70\x46\x9d\x82\x52\x51\x7d\x87\x60\xc9\x87\x43\x8c\x05\x0a\xe0\xaf\x90\x6f\xa1\xde\xc9\xb6\x6a\xde\xfa\x6e\x97\x42\x47\x59\xd8\x65\xfa\x8f\x2d\x2d\x48\x8f\x11\xf7\xd7\xeb\x27\x9e\xe2\x06\x49\x7a\xbe\xca\xef\xd0\xf4\x70\xe1\xd9\xe7\x9f\xf6\x97\x92\x3c\x80\xa1\xfb\x21\xf7\x17\xdf\xe7\xea\x0a\xa9\x1c\xc8\x42\xbd\xad\x1a\xea\x83\x43\x1b\xa0\x44\x4f\x7c\xea\x12\x6c\xae\x73\x39\x23\xdc\xe1\x4a\x33\x40\xdf\x09\x4a\x73\x53\xd5\x75\xf5\x63\x75\xac\x01\x16\xf8\xd3\x97\x1f\xc6\x44\x3a\x30\xc9\xf9\xaa\xbf\x60\x0b\x8d\x42\x34\xca\x30\x2f\x16\xaf\x35\x9c\xdb\x17\x6b\x67\x16\xac\x32\xa9\xe3\xcc\x3c\xc9\xc6\x13\x78\xc9\xe2\xb7\x71\x26\x71\x76\x5b\x10\x24\xce\x86\x5c\x73\x67\xa5\xae\x50\xd2\xab\xfb\x57\xff\x79\x20\x49\x32\x57\x96\xb8\x75\xd5\xf1\xa3\xc4\x82\x02\xc5\x10\x3d\xeb\x90\xf7\x5b\x59\xcb\x53\xd3\x1f\xb3\x3a\xf1\x74\xca\xdf\xf2\xf2\xf8\x62\xe7\x5b\x80\x35\xb1\x89\x42\x1d\xd7\x6c\x2d\xd7\x11\xb1\xb8\x74\x8c\x04\x40\x57\xaa\x9a\xe3\x85\x75\x24\x19\xa6\xb1\x71\x83\x76\x7d\x0f\xf5\x1d\x58\x79\x29\xe6\xa2\x5a\x5c\x47\x4a\x63\xbe\x05\xdd\xce\x9b\x00\xe6\x98\x3e\x95\x8e\xac\xc5\xd5\xb3\x73\xda\x2f\x85\x9c\x5d\x82\x08\x11\x67\x13\xf5\xce\x97\x4b\x7b\xbe\xb4\x3b\xa3\x9b\x62\x8c\x49\xd0\x24\xb6\xe8\x0c\x07\x3a\x5a\xe9\x00\x49\x2e\x20\xd2\x0f\x32\x4d\x59\x26\x9d\xd0\xa9\x3c\x9f\xc1\x4c\x19\x5b\x42\x1b\x91\xa1\xa5\x81\xa1\xb7\x43\xe0\x42\xeb\xaf\x90\x51\x84\xfe\x39\x7c\xe4\x66\xff\xd2\x1f\x30\x14\xe3\x1b\x6f\xa8\x8c\xfb\x0a\xd7\xb1\xa0\xc5\x71\xa1\x19\xd3\x81\x29\x7b\x87\xd4\xe6\xeb\xd2\xb3\x13\xcf\xc3\xc3\x9a\x09\x82\xfa\x04\xf8\x09\x77\xd0\xde\x03\x7c\x6e\xcc\x5d\x1e\xf0\x6e\xf3\xe6\x40\xd1\x49\x79\x7e\x79\x5e\x87\x72\x31\xcd\x09\xf1\x45\x66\x0e\xf2\x00\xbe\x72\xbc\xe9\x1b\x70\x88\xb2\x5e\x9b\xc0\xbd\xfc\x00\x49\xd3\x3c\x15\x61\xf3\x7a\xea\x16\x3a\x59\x3c\xe6\x4d\x3b\x88\x4c\x70\x2d\xd2\xd4\x04\x39\x92\xba\x3a\x55\x0f\x50\x46\xb3\x27\x13\x96\x84\x62\x80\xe2\xa9\x32\xb9\xcd\xc1\x5c\xad\x45\xd3\x53\x62\x11\xe3\x7c\x3c\x1c\x03\xc6\xc0\x85\x84\x96\x3b\x35\xa1\x80\xd6\xd0\x01\x6b\xc9\xeb\xee\x01\x47\xf5\xb4\xf3\xfc\x87\x4e\xb8\xcb\xf6\x37\xd0\x7e\x82\xfc\xa3\x47\x48\x12\xc7\x36\xfe\xb4\x79\xde\x6f\x9e\x1f\x0e\x8f\x9b\xa7\x4d\x40\xf4\xea\x24\x75\x5a\x56\x28\x3e\xf2\x0a\x4d\x55\x7c\x87\xd5\x9f\x17\x59\xe7\x97\xd3\x1c\x0c\xa1\x13\x65\x30\x6b\xea\x88\x4b\x1c\x67\x62\xb8\x50\x9a\xa6\x26\xf0\x41\x03\xf8\x49\x3e\x0a\xe8\x5e\xbf\x6c\x0a\xc2\xf2\x21\x4b\xf8\x49\x96\xc7\xbc\x3c\xce\x38\xf4\xb9\xce\x22\x86\x21\xb2\x3f\x2f\xb9\xfe\x76\xeb\x64\xeb\xbd\x7e\xc2\x38\x7c\x7a\x6d\xc1\x2e\xfe\x5d\x96\x94\xe6\x3a\x53\x29\x7a\x50\x98\x03\x5c\xcb\xba\x78\x9f\x7d\xfb\x0c\x00\xd7\xa1\xaa\x2c\xde\x9d\xce\x88\x3f\x20\x85\x13\x37\x79\x42\x40\xbb\x9b\x9a\x57\x83\x62\xf9\xcb\x48\xc1\xd0\xf8\x70\x94\xc0\xf7\x97\xa2\xf0\x72\xa2\x08\x3d\x5a\x32\xd2\xff\x8e\xf0\xee\xec\x1e\x31\x44\xde\x62\xbd\x29\x40\xea\xb7\xa5\x19\x2a\x53\xd7\x08\xf5\xc1\x1c\xe0\x95\x2e\x67\x58\xb5\x54\x06\x9d\xa4\xff\x56\x79\xe9\x1c\xad\xe9\xa5\x94\x8c\xd0\x24\x39\xd8\xaa\x1e\x77\xc5\x7d\x5d\x9d\x7a\x0a\x2d\x64\x1c\xfc\xb5\x15\x3c\xbb\xad\x52\x19\xba\x95\xef\x10\x1c\x73\xad\x4c\x16\x94\xf6\x5e\xbd\x20\x09\x98\xe9\xa2\xa0\x8c\x42\x6c\xf9\xba\x39\x8f\xc2\xcf\x5a\x33\x8d\x68\x97\xfb\x97\xcf\xcf\x77\xeb\xd7\x9d\xe3\x1b\xda\xae\x5f\x37\x2f\xc1\xb4\xd2\x26\x89\xb0\x54\xf7\x5e\x7e\x83\x6b\x3d\x01\xae\x8d\xb1\x38\x55\x7f\x04\x08\xd5\x53\x5e\x4e\xe2\xab\x1a\xa8\x8d\x09\x96\x03\x9f\xcf\xdd\xc0\xae\xca\x0f\x7c\x66\x0d\x3c\x42\x7c\x1b\x3a\x41\x07\x3b\xac\x5a\x96\x50\x8c\x65\x35\x4e\xe3\x63\xc4\xc2\xa2\x2d\xc9\x90\x84\x68\xbf\x59\xbf\x92\x03\x42\x73\xfb\x43\xc2\x91\x5a\x3c\xde\xac\xfa\x9f\xe2\x2c\x90\xfd\x07\x29\x63\x28\x66\xf8\x41\x6d\x55\x4f\xb0\x74\x9f\x97\x25\xbc\xa3\xdd\x56\xc0\x53\x55\xc3\xfe\x4d\xf6\xdd\x67\xad\x41\xb3\xa8\x79\x2f\xa1\x6e\x6b\x98\x20\x8c\x4d\xc4\x00\x89\xa1\xf7\x75\xfe\x3d\x14\x8a\xfd\xda\xc0\xb9\x02\x56\xfe\x72\xe7\x31\x11\x07\xf4\xd1\xee\xab\xaa\xfa\xdf\x6b\xdf\x76\xf2\x4e\x26\x8a\x63\xe3\xa5\xc6\x06\xd8\xc8\x1c\xc5\x6a\xa2\x44\x22\x27\x49\x01\xb6\xa5\xe9\x6f\xb3\xfb\x59\x82\x38\x84\x53\x65\x1c\x7b\xea\xcc\xed\x31\x24\xca\xa8\x43\x62\xb4\x4d\x5b\x83\xfc\x36\xe9\x0f\xc2\x23\x4c\xb7\xea\xea\x74\xba\x94\x79\xfb\x3e\xf2\xc2\x0c\x8d\x9c\xbf\x69\xe0\x7b\xb7\xa5\x6d\x6b\xd0\x83\x75\x6e\x28\xd3\x08\xf1\x7d\x92\x9d\x53\x54\x39\x46\xd3\x3e\xb7\x62\xe8\xc0\xab\xbf\xad\xe1\x94\x5f\x7a\xb3\xca\x50\x23\xd0\x71\x3e\x78\xcc\x02\xbe\x12\x8f\x66\x9d\xc3\x22\x86\x2c\x2f\xb2\x69\xf2\x63\xe9\x93\x0f\x77\xf2\xfd\xd7\xaa\x50\xdc\x30\x26\x99\x47\xc0\xf4\x5c\x91\x4b\x92\x6d\xdc\xb0\xd8\x3a\x36\xac\xce\x3e\x73\xa8\x37\x47\xd3\x17\x1e\x94\x19\x1b\x7b\x6e\x8e\xdd\x93\xc7\x0c\xb8\x69\xb4\x85\x7a\xdd\x59\x42\x2d\xd4\xa5\x2c\x66\xdf\x84\x27\xae\x98\x31\x28\x11\x0d\x56\x77\x0e\x73\x69\x6a\x6e\x38\x38\xf2\x57\x03\x36\x2f\xc1\xd3\x51\x2f\x2b\xd6\xf9\x33\x84\x49\x31\xec\xe1\xeb\xee\x50\x95\x25\x98\xdb\x8b\xeb\xa2\x89\x93\x34\x00\x7b\x30\x70\xfd\xc1\x85\x63\x4d\x91\x7a\xf1\x70\x92\x79\xd9\x1e\x9c\xdd\xb7\xb0\xbe\x98\x84\x12\x1c\x19\x25\xfc\xec\xd5\x91\xbe\xca\x23\xd4\xcd\xbe\xc2\xdc\x61\x28\x1c\x0f\xed\x85\x0b\x2f\x7a\x30\x83\xcf\xbe\xfb\x83\xa9\xce\xd2\x20\x2c\x38\x72\x9f\xfd\xd1\xcc\x50\x10\x81\x15\x1a\x55\x25\x3f\x9f\xb1\x7a\xf4\xd7\xf3\x50\x6a\x97\x3c\xf1\x49\x3c\xc4\x92\x7e\x6e\xa0\x46\xa0\xa5\x6f\xa3\x3c\x0f\xe8\x9b\x6c\xba\x43\x5b\xa8\x3d\x2d\xe2\x34\x2b\xc2\x43\xf3\x54\x87\xe0\xe3\x43\x21\x4d\xde\xcd\xb6\x6d\x67\xac\xcf\x9e\x58\x49\x86\x53\x32\x50\x78\x2e\x3f\xa0\x52\x02\x03\x61\x5e\xbc\x6e\xe2\x07\x19\x6d\x44\xea\x68\xae\xeb\xf3\x28\x5d\x64\xb4\x75\x01\x93\xef\x50\x9a\xaa\x9e\x64\xb7\x0d\x64\x5a\xf7\x11\xe2\x07\xaf\xc9\x66\xfa\xa3\x32\x45\x44\x5c\x55\xba\xf4\xc6\x15\x02\x6e\xfa\x0e\xa0\x22\xa9\x07\x18\xd9\x6a\x56\xc1\x3e\x7b\x17\x9b\xc5\x18\xf7\xcb\x1b\x44\xde\xe4\xe5\x11\x55\x27\xff\xe2\x13\x59\x69\xd0\x97\x39\x40\x10\x62\x7e\xac\xfa\x40\x21\x44\x94\xc7\xde\x64\x7b\xca\x4b\x24\xf6\x19\x99\x2c\xe3\x0b\x01\x56\x4f\xf7\xee\xc3\xd3\x12\xae\x18\x98\x95\x98\xaf\x43\x74\xc0\x41\x55\xe5\xa5\x39\xc8\xf1\x8e\x08\x5c\x26\x14\xcb\x28\xa5\x05\xb4\xb1\xc3\x01\xe1\x41\x4e\x8f\xd5\x71\x63\x00\x33\xe7\x81\x55\xf9\x6f\x81\xef\x21\x8e\x38\x56\xf4\xad\xff\xd8\x3e\xbe\x60\x19\xd9\xdd\xfa\xf9\xe5\x69\xf3\xbc\xda\xbf\x04\x28\x36\xc4\x32\x45\xb0\x8c\xa9\x50\xb2\xd5\x97\xbb\x4f\xec\x40\x48\xa3\x0c\x2b\x27\x35\xf2\xfa\x7f\x1d\xd2\xfc\xe1\x22\x69\x9a\xa0\x44\x6b\x3b\x66\xc3\xbc\x74\xab\x54\x68\x91\x45\x1c\x5b\x3c\x56\xc7\x9b\xdc\xf4\x51\xe9\x29\xa2\x62\x6e\x80\x82\x94\x1c\xad\xf4\x80\x2c\x58\x64\x5e\x9c\x44\x08\x41\x25\x02\x23\x53\x6e\xf9\x7e\xad\x06\x84\x2d\xa8\x24\x96\x83\x94\x4e\xb7\xb5\x2c\xa2\x52\x41\x49\xa7\x12\xed\x45\x4e\x40\x9e\xa6\x0a\x54\x7d\x33\xe1\xa8\x47\xac\xcd\x8b\x5c\x3a\x83\x27\xdc\xcb\x48\x86\xd1\xbd\xdb\x97\x7f\x07\x13\x04\x40\x46\xe8\x1f\x6f\x7a\x78\x02\x58\x69\xd3\x90\x8c\x3c\x82\xf1\xaa\xdf\x23\xb2\xc1\xe5\x1d\xdc\x46\xd6\x22\x4e\xe4\xfe\xf3\xb3\x27\xb3\xe6\x9d\x1b\x86\x23\xb7\x42\x62\xcf\x5e\xb2\x97\x5b\x62\xb4\xd4\x41\x01\x12\xa0\x33\xfa\x66\x31\x03\x4b\x7d\x5d\x0b\x8a\x40\x20\xb3\xeb\xac\x01\x8b\x81\x24\x03\x55\x75\xe9\x08\x8b\xc2\x1d\x98\xe5\x88\x30\x3c\xa3\xd8\xcb\x0c\x26\x67\x05\xd5\xc8\x82\x70\x53\x54\xc7\xd1\xaa\x62\xe3\x28\x0d\x0b\xf0\x3f\x2a\xe5\x44\x23\x66\xb7\x8d\xbb\xcd\xc1\x95\x9f\x0e\xf4\xd9\x87\xaf\xeb\xf5\xef\xa4\xbf\x4a\x2a\x10\xa8\x88\xa1\x89\xcb\x49\xf5\x21\x16\x1b\x6b\x47\xeb\x76\x84\x76\xbd\xff\x14\x7e\x4d\x28\x20\x94\x79\xdd\xf9\x9d\xbb\x56\x96\xa6\x33\xc8\x97\x52\xfd\x97\xab\x12\x32\x9b\x24\x2c\x88\x0a\x78\x30\xc3\x12\xd7\x81\x4d\x92\x14\xf7\x9d\x87\xd7\xd5\xed\x9b\xcc\x3f\x02\x11\x4c\x2f\x9d\xc5\x18\x8c\xf0\x40\x64\xac\xf3\x2e\x8d\x4f\x96\x8e\x9e\x3f\x8d\xa2\x40\x44\x84\x44\x0f\x4d\x7e\xfc\x22\x2f\xc5\x2c\xf0\x6f\xd3\x8c\x8c\x4b\x77\x5c\xc5\xbd\x47\x93\xf6\x97\x52\x9c\xf2\x00\xc6\xdd\xdc\xf5\x3f\x5b\x12\xbb\xe8\x47\x83\x9f\x79\xb9\xd6\xca\x66\x99\x27\x16\xc5\x07\xf6\xd2\xbe\x0d\x98\xe5\x4c\x84\xcd\x80\xe1\xce\x78\xac\x07\x8a\x41\x2b\x23\x85\x18\xb4\x67\x28\x65\xe3\xba\x2a\x1c\xa1\x09\x02\x17\x9e\xf2\xa3\x8b\x5b\x6c\x4a\x5b\xed\x60\xba\x61\x59\xa5\x29\x55\xfd\x06\xff\x09\xea\x2b\xe2\x5d\xdf\x50\xd3\x94\x78\x48\x81\x7f\xd2\x2b\x94\x91\xd5\x89\x72\x89\x95\x46\x2f\x14\x62\x59\xad\x32\x81\xcb\x87\xca\x65\x2b\xeb\xce\x23\x9c\xec\x84\xd6\x44\x9a\x20\xb5\x15\x48\x53\xe4\x25\xb8\x32\xfc\xfe\x28\xe5\x76\x28\xa0\x1c\xf1\x8f\xcc\xd4\xd4\xb8\x35\x46\x25\x64\xb0\x7f\xa7\xb5\xe4\xd6\x80\xd6\x81\x4a\xa1\xdb\x2e\xae\x51\x64\x16\xac\x0e\x92\xaf\x87\xb7\xf9\xd5\xad\x00\xc9\xc6\x33\xd9\x5c\x35\xb0\x59\xe6\x11\xf4\x73\xa6\x31\x6b\xd3\x4c\x07\x05\x93\xaa\x6c\x25\x12\x08\x5e\xf3\x9b\x59\xab\xa4\xd5\x01\xa2\xb6\x6e\xdf\x1e\x42\x37\x89\x28\xf2\xb4\xf5\x5a\x16\xda\xe7\x3b\x17\x6d\x15\x11\x45\x8c\x21\x0f\x4b\x58\xfe\xd7\x4f\x2f\xa1\xf2\x5c\x44\x91\xa6\x0e\x9e\x16\x98\xd8\xb6\x35\x84\x63\x44\x59\x2c\x50\x09\xf1\xe7\x7b\xdc\xd4\x7e\x15\x77\x10\x11\x8d\x74\xef\x92\xc8\xd2\xec\xab\xea\xdb\xea\x47\x08\xc3\x8b\x88\x66\x11\xee\x93\x2d\xd2\xd5\xc3\x39\xfc\xce\x62\x3b\x0a\x87\x1f\x02\x37\xe4\xdf\x0a\x18\x8a\x88\xf3\x18\x81\xbd\xe7\xea\xdb\x34\x49\x2a\x22\x2e\x04\xe6\x19\x3e\xbd\xec\x6f\x57\xbb\x4f\xbf\xf5\x3f\x6b\xc7\x14\x09\x65\x3e\xf6\x31\x45\xc4\xb5\x63\xff\x3b\xcb\xf7\xce\x04\x1e\xcd\x13\x11\x71\x93\xda\xa1\x24\x78\xe7\xe9\x9c\xfa\x33\x81\xa3\x14\x0e\x5a\x51\xeb\xd2\x7c\xa0\x67\x20\xa2\x98\x26\xb8\xb9\x7a\xb6\xe1\x51\xd2\x48\x44\x71\xa2\xf1\xb3\x9e\x0f\x41\x27\x70\xb1\x7e\x4a\x44\x49\xc4\xa3\x10\xb3\x7f\x3f\xa9\xe0\xf7\x89\x28\xa1\x89\xb5\x21\x98\xaf\xab\x32\xe0\x1a\x26\x13\x40\x44\x69\x62\x93\x81\x6a\xf5\x06\xda\x29\x9f\xd2\xf4\x66\x19\x03\x1c\x09\xfe\x89\xfd\xa2\x3d\x7a\xec\x4c\x73\x4f\x60\x1b\x7e\x91\x22\x46\x63\xf7\x98\x7f\x07\xc4\x91\x5c\x41\xbe\x44\x24\x63\x8e\x18\x32\xd9\x5d\xcf\xa5\x81\x27\xab\x85\x88\xa4\xb4\xc8\xf2\x7e\xf3\xe9\xe6\x2f\x21\x64\x22\x92\x86\xe2\x26\xe6\x82\x1d\x61\xd8\x3a\xc5\xf8\x31\x0e\xcf\x37\x57\x82\x9a\x21\x83\x15\xf8\x1b\xeb\xea\xe4\x45\x40\xfa\x12\xb6\xf9\x79\x71\x9a\x3a\xa7\xa6\x94\x75\x75\x07\xdf\xc3\x0e\x12\xde\x5d\x25\x12\x03\x55\x55\xb9\x7e\xbd\x4d\x28\xf9\x4b\x4e\x83\x21\xcd\x22\x22\xa5\x39\x72\xc4\x77\x0e\xfd\xd3\x7b\xfb\xf6\x80\xda\x60\xe1\xd2\x9a\x41\xea\xb7\xce\x8d\xf9\x89\x59\xcb\xd9\xc0\x30\x31\x4d\x92\xde\xf4\xbe\x41\x46\x94\xdd\x39\x9f\x8f\x1f\x93\x90\xd8\x95\x4a\x7a\x60\x33\xfa\xc7\x2f\xf6\xa5\x44\x4f\x6b\xf6\xca\xa0\xb8\xc9\xa6\x31\xf2\x31\x78\x4a\x44\x96\x38\xab\xb0\x69\xab\xf3\x19\xcc\xd6\x31\x54\xfa\xa7\x26\x91\x96\x09\xca\x71\xae\xfe\x38\x0c\x2a\x1e\x43\x8d\xac\x20\x84\xb8\x50\xc6\x28\x17\x04\x26\x0c\xd9\xc9\x93\x13\xaa\x9d\x1a\xc3\xe1\x5c\x83\xaf\x1d\xf6\x30\xcf\xe5\xf9\x46\x58\x6c\xb1\xfa\xe4\xf6\x2d\x47\xea\xa2\x30\x46\x09\xcb\x2c\x06\xf6\xd7\x3f\xe5\xc3\xcd\x36\xfc\xca\x29\xa0\x38\x56\xf3\x76\x69\xef\xaa\x1f\x65\xe0\x64\x9d\x5e\x94\x33\x83\x76\xa2\xba\xbc\xbf\xfc\xec\x4f\x8d\x09\x62\x29\xbf\xbb\xaa\xb1\xbb\x49\xa6\x44\x10\x9e\xc6\x3c\x9b\xaa\x5f\x61\xaf\x8f\x80\x4d\x82\x70\xe5\x0a\xac\x5e\x7f\xbf\x1d\x2f\x4c\x84\x2b\x8d\x51\x00\x47\x4a\x7f\x5f\xd5\x7d\xbd\xca\xf2\x5b\x73\x90\x81\xc2\xfa\xb1\x6a\x1a\x68\x10\x49\x3b\xfd\xae\x44\x70\x89\x8b\x45\x9f\xb5\x11\x44\xa4\x12\x51\x66\xa5\x8f\x0c\x84\x42\x82\xd5\x77\x99\x17\x54\x9c\xdd\x5e\x33\xcd\xb4\x0b\x22\x94\x46\x13\xe2\x4d\x36\x88\x70\x36\xe1\x40\x9c\x52\x8c\x7e\x7f\x5a\xed\x3e\x21\x60\xe7\xf0\xf4\xf9\x71\xbf\xd9\x3e\x6e\x42\x21\xab\x20\xb1\x52\xda\x27\x1b\xba\x91\x75\x6d\x88\x09\x12\x1b\x85\x9f\x4a\x3a\x80\xd1\x0c\x7a\xd1\x1d\x07\xd4\x5d\x77\xbc\xa4\xf9\x71\xb2\xe1\x0a\x92\x18\x12\x25\x3d\x15\x42\x55\xa3\x68\xb6\x17\xf2\x0c\x6d\x52\xe6\x2a\x69\xda\x1f\x88\x83\xba\xa9\xda\xd9\x45\x32\xa2\x31\xa6\xfe\x96\x2b\xa8\xcb\x39\x9f\xb2\x20\x19\x97\x99\xf5\xc6\xe2\x5f\xaf\x56\x44\x45\x0a\x02\x6a\xeb\x5c\x95\x4d\x85\x6b\x54\xbf\x4e\x2f\x7f\x55\x45\x19\xa7\x81\xeb\xcc\x31\x62\xde\xca\xa2\x50\x52\x7f\xeb\x53\x52\x82\x28\x4d\xe2\x24\x88\x70\xf6\x5b\x03\x51\x5a\x7b\xba\xdf\xa6\xe9\x35\xab\xe6\x09\x85\x99\xf0\x84\x20\x3a\x72\x55\x00\x3a\xc4\x43\x47\x25\x61\x82\x68\xe6\x48\xa2\x9b\xb6\xaa\x67\x36\x6e\x68\x11\x13\x15\xf7\x45\x1e\x13\x60\xe4\xf4\x46\x26\x71\xb0\x7d\x5b\x5c\x9a\xb7\x59\xb2\x46\x10\xa0\x32\x92\x21\xde\x77\x38\xb7\xfa\x50\x5e\x4e\xb3\x51\x02\xa0\x70\xd3\x09\x4b\xbf\x9f\x65\xb3\x56\x56\xc6\x0a\x7c\xb5\xc4\xb1\x5b\x3c\x9a\x3b\x70\x7e\xb4\x6b\x40\x69\xac\xc2\xd4\xf1\x85\x97\xb3\x8f\x12\xda\x59\x82\x53\xe5\x5c\x43\x0d\xc7\xef\x79\x31\xa3\x14\x10\x94\xa7\x0c\x41\x10\xea\xf2\xee\xeb\x61\xc2\x3d\x44\xca\x8c\x77\xab\x56\xad\x2f\xef\x6d\xfa\x83\x99\x93\xc0\xf9\xba\x7a\x7c\x5c\xef\x0f\xab\xc7\xc7\x97\xdb\x91\x60\x81\xa0\x42\x71\x2b\xbc\xba\x8f\x5b\x2b\xff\x86\xe6\xbe\xa0\xc2\xc4\x69\x90\x1f\xb8\x36\xce\x05\x15\xd6\x19\x05\x7e\x22\x2e\x90\x27\x09\x1a\x33\x37\xd3\xbe\x7c\xfa\x1a\x9e\x26\x89\x3c\xef\x7e\x5f\xa8\x3c\xdf\xe9\xae\x2a\xac\x04\x4d\x08\xc3\x5a\xfd\xe6\x72\x5a\x21\xa2\x00\xcc\x97\xbc\x6e\x2f\xbd\x9c\x7d\x7f\x75\xce\xb1\xb0\xf0\xa6\x72\xd2\xfd\x3d\x30\x37\x6c\x3e\x34\x31\x4e\x95\xd8\xc9\xdd\x7e\xaa\x7e\x3c\x5d\xf4\xdb\x53\x55\x77\x0e\xdf\x33\x96\x8d\x4e\x47\x1a\x4d\x69\x0c\x99\x57\x49\xae\x2e\xad\xec\xdd\x5d\x41\x53\x21\xd1\xb0\x47\x65\x80\x11\x8a\xeb\x7f\xa6\xbd\x90\x5a\xce\x3c\xc3\xfa\xf6\xe5\xe5\xd1\x95\x03\x92\x28\x5c\x25\xcb\x98\xf4\x92\x1b\xbd\x23\x77\x25\xf7\x20\x68\x26\x63\x16\xf4\x48\xab\xa2\x90\x2d\xd4\x3d\x47\x5f\xb8\x94\x64\x36\x70\x21\x8f\x97\x89\xe5\xf5\x81\x4a\x9b\x62\xfe\xc9\x81\x34\x06\x05\xd4\x7e\x96\xf7\xed\x24\xc2\x1b\xa4\xc9\x75\x5e\x95\xb2\x5e\x35\x4d\x8e\xe4\xdb\x72\x41\xaf\x4b\x50\x15\x3b\xb0\xf8\x9b\x6c\xee\x9e\x9f\x67\x43\x42\xdb\xcc\xa8\x01\xd8\xe9\x08\x6d\x7e\x65\xb1\x53\x48\xb9\x4c\xfa\xcd\x6c\x54\xe0\x1e\x9e\xcf\x2a\x82\xac\x84\xbb\xfc\x74\x2e\xe0\x29\xff\x39\x3c\xba\x55\xc2\x0e\x82\x74\x87\xf1\x36\xc4\x22\x96\x24\x03\xe8\xc1\xa9\x9d\x2c\xa9\x96\xf7\x4f\xc2\x48\x94\xc4\xfe\x43\xae\x8e\x55\x39\x58\x54\x53\x99\x44\xc1\x08\x55\x22\xea\x9f\x08\x67\xcf\xaf\xd4\xba\x04\x23\x82\x5b\x13\x56\x91\xce\x1f\x82\x72\xae\x00\x2b\x18\xd1\x14\x57\x6a\x9b\x9f\x9b\x90\x6a\x44\x73\xf2\x8a\xaf\x70\x34\x6e\x18\x31\x0e\x69\x0e\xed\x5b\x5b\x35\x7d\x11\x8a\x60\x34\x75\x1c\x07\x67\x04\xfc\x0f\xb2\x78\x82\x31\x2e\x70\x8e\x6a\x2f\xf4\xb4\x50\x7c\xff\x41\x0f\x31\xae\x82\x41\xf9\xe0\x58\x98\xea\x16\xea\xb0\x3e\x5f\x63\x6d\xfb\xd3\x2c\x7e\xe2\xdd\xcb\xed\xfe\x4a\x15\x44\x30\x16\xdb\x34\xea\x31\x11\x95\x9d\x78\x5a\x8c\xa5\x09\xc6\x54\x4e\x60\x72\xb9\x40\x08\x29\x18\x53\xd2\x05\xa0\x9e\x6e\x26\x76\x12\xe3\x24\x45\x67\xb0\xb7\xff\x97\xab\x61\x27\xc3\x9b\xf1\x84\xa5\x51\xe0\xf1\x42\x87\x6c\xe9\x99\xb9\x22\x56\x8f\xc5\x30\x83\x38\xbf\x6c\xe5\xec\xf1\xb8\x62\x99\xdf\xa7\x9f\x2f\x27\x5c\xa2\xeb\xf9\x2b\x70\x48\x07\x99\xb4\xd9\x58\x5a\x2e\xdc\x9f\x2f\xa2\x4c\xa4\x29\xba\x8b\x65\xd5\xca\x3a\xff\x5f\x40\xa1\xae\x89\x07\xcc\xe2\x24\x41\x90\xb9\xc1\xf2\x92\x97\x6e\xef\xfe\x60\xdc\xce\xbe\x7b\x2c\x63\x0c\xc4\xac\xcf\x6f\x30\x55\xba\x10\x2c\xd6\x12\xe9\x27\x7c\xee\x73\x42\x1e\x11\x9a\x58\x08\xda\x05\x07\x28\xcd\xa1\xed\x33\xcc\x82\x25\x91\xc8\xd2\x89\x82\xeb\x53\x65\x86\xa3\x2c\xc1\xcd\xed\xe5\xeb\xf3\x61\x58\x1a\x9c\x60\x77\x77\xa3\x83\x9b\x20\xd7\xe8\x8c\x1e\xcc\xdc\x5d\x03\x98\x73\x6f\x1b\x2c\xb6\xb8\xae\xb8\x13\x2c\x89\x13\xc4\xd7\xfd\xd9\x1a\xd8\x56\xdf\xe0\x54\x95\x8d\xcf\xa8\xcf\xde\x25\xa5\x02\xb3\xe8\x8f\xd5\xd1\x7f\xf2\xb9\x4b\xe7\x1b\x66\x84\x21\x0d\xc9\xe6\xf6\xe5\xf0\xd8\x07\x8f\x05\xcb\x52\x89\x29\x75\x5d\x9d\xba\xa9\xf9\x7c\x39\x41\x9d\x6b\xc7\xe8\xd4\x2c\x2d\xb8\x4c\x12\xcb\x02\xa9\xc3\xc7\x26\x5a\x3f\x10\x64\xac\x30\x43\x82\x85\x73\xdd\x8a\x80\xc1\x9a\x7d\x35\x8d\x22\x0b\x26\x13\x87\xb4\x55\x97\x77\x14\x5f\x59\x9a\x5a\x52\xba\x45\x14\x8d\x65\x17\xf2\x1c\x69\x5f\x09\xa6\x22\x13\xf8\xe0\x6e\x0a\xa9\xbf\x15\xf9\x98\x23\x79\xe8\x5f\xc5\x08\x2e\x80\x4d\x7e\x2c\x7f\xbd\x08\x6b\xed\x38\x77\x3b\xef\x21\x58\x99\x6e\x9d\xe9\x57\x36\xc3\x44\x42\xfb\x12\xd7\xad\xfc\x31\x9f\x9c\x06\x1c\x7c\x3d\x20\x2f\xc2\x89\x10\xc7\xc8\x8c\xa9\x2e\xef\xbf\x8e\x5d\x31\x88\x4d\x12\xf5\x2c\xa2\xdd\xaa\xe6\x34\xc2\xbe\xbe\x41\x89\xac\x45\x73\x3b\x82\x59\x69\x31\x3f\xe1\xef\x79\x70\xf6\x5a\xb8\xb3\x55\x2a\x0d\xbc\xff\xab\xed\x52\x96\x44\x30\x0b\x22\xa0\x27\x46\x01\x88\x5d\x7e\x9c\xa4\xf8\x96\xa1\x45\xdd\xd9\x31\xd6\x31\xb8\x92\x8c\x83\x27\x45\xf3\xf7\xe7\x51\x9a\x30\xb7\xc7\x3b\x4e\x90\x5f\x13\xa2\x8d\xbe\x1c\x8f\x32\x8d\x3c\x66\x9d\xbb\x9c\x97\xc7\x40\x49\x1f\x8e\x5a\x40\xc2\xf6\x1f\x90\x7b\xda\x58\xa7\x44\xe1\x0f\x13\x70\x1e\xc1\x3f\xaa\x4b\x5d\x06\xda\x37\x7f\x8c\x46\x2e\x28\x1b\xd6\xe6\x6d\x0d\x98\x1b\x34\xdd\xc2\x35\x5e\x92\xfe\x56\xe0\x8f\x53\xc5\x90\xf7\x15\x59\xcf\x0e\xfc\x50\x07\xf2\x4f\x57\x75\x1e\x46\x2c\x67\x84\x85\x4d\x3e\x54\xd9\x79\x02\xa7\xc9\xd7\xe0\xcc\x17\x31\xb9\x0c\x63\x28\xbb\x1c\x3c\x78\xce\xad\x8e\x93\xff\x97\xb3\x2f\xeb\x6e\x1c\x37\xbe\xff\x3a\xfd\x30\x0f\xdc\xb0\xf0\x51\x9b\xbb\x95\xb1\x2d\xc7\x52\x77\x4f\x92\x93\xa3\x83\xa5\x60\xf3\x67\x8a\x54\x48\xca\x6e\xe7\xd3\xff\x0f\x0b\x00\x37\xd1\x9e\xc9\xff\x25\x3d\x31\x41\x8a\x0b\x50\xa8\xe5\xd6\xbd\x7d\xe8\x50\x56\x56\x0e\x76\x72\x19\x92\x58\x81\x18\x0f\x21\xb8\x47\xda\xcc\x0a\xa6\x75\x3a\x37\x9c\x07\x0a\x53\x31\x36\xad\xe8\xc0\xa3\xab\x52\xc2\x4d\x95\x0d\x64\x26\x3f\xc4\xb6\xcc\xbf\x9b\x34\x00\xcc\x32\xf6\x7d\x9d\x88\xec\x9c\x9d\xfa\x49\x1a\xd9\xf4\x8b\xc9\xaa\xba\xd9\x9c\xce\x4d\xeb\x63\xfb\x63\xcc\x36\x26\xe7\xa5\x7a\x99\x7d\xdc\x54\x82\x97\x0d\xdb\xf5\x12\x07\xd3\x41\x2a\x04\xcc\xf0\xd6\x8e\xf6\x70\x34\x2f\x04\xd3\x38\x2f\xd6\x8b\xc3\xe6\x18\x87\xc7\xf5\x66\x75\x8c\x82\x30\xed\x8e\xeb\x18\x83\x8e\xd5\x00\x34\x71\x3f\x94\x2c\x9f\x31\xa1\x89\x30\x54\x86\xae\x93\x17\x93\x1f\x63\xe4\x04\x9f\xad\x9e\x93\x44\xc6\x56\x34\xcb\xab\xd7\xe0\xfc\xfc\x30\x13\x3d\xe3\x9e\x25\x9a\x50\x74\xcf\x94\xc8\xf3\x6f\x65\x03\xf9\x5c\x5c\x9c\x68\x0a\xa1\x8b\x0d\x1f\x84\xb2\xac\x6c\xf6\x9e\xbc\x76\x23\x49\x34\xb3\xac\x61\x05\xbc\xad\x44\xe5\x8b\x4b\x24\x81\xd8\x02\xc0\xa0\x40\x36\x81\x4f\xed\x5a\x02\x89\xcd\x81\x3b\x75\xb1\x7d\xeb\x13\xfb\x43\x3c\x24\x43\x22\x8a\x31\xe5\x2e\x49\x20\x25\x26\xec\xbc\xc6\xf6\x8d\xd7\x67\xdf\xd9\xfc\x65\x06\x4d\xd7\x9e\x21\x11\x15\xf5\x70\x39\x89\x07\xf1\x3e\xfa\xca\x86\x71\x2c\xdd\xde\x3c\x6e\x36\x48\x37\x79\xd8\xec\x0f\xf3\x55\x8b\xc4\x08\x43\xb4\x2f\xb0\x68\xf1\x3e\xe8\x84\x24\x24\x88\xf4\x40\x70\xcf\x36\x2c\x61\x16\x73\x7d\x95\x55\x20\x01\x95\xc6\xea\x70\x9f\xca\x57\x18\xb6\x22\xcc\x15\x85\x09\x09\x53\x61\xc7\x2f\xee\xbf\x6e\x6c\xa5\xd4\xd5\x4d\xfd\xaf\x87\x40\xb1\x17\xc5\xda\x98\xce\x13\x98\xf6\xb5\x7e\x9a\xec\x1d\xce\x84\x36\xde\xf7\xd4\x32\x77\xe2\xd7\xb8\xed\xc7\x0f\x61\x41\xe0\x34\x53\x1f\x5a\x63\xe7\xf3\x6f\xbd\xfb\x1d\xfb\xdb\x8b\x94\x0c\x12\x4f\x37\x51\x43\x27\xc7\x38\xc1\x2e\x11\xb4\x66\x48\xb8\x07\x02\x7a\x48\xee\xdc\x52\x22\x09\x0d\xb1\x35\x14\x6a\x25\xce\xf0\x0d\x01\x59\xfe\x90\x8a\x70\xf5\x1f\x6b\x68\x16\xe7\x49\x8e\x9d\x10\x88\x63\x97\x89\x72\xe0\xcc\x2b\x96\x3d\x42\x88\xb1\x0c\x30\x8f\x48\x5f\xd8\x46\xe3\x33\xa2\xe9\x93\xcf\x4a\x43\x5b\x47\xbc\x2d\xdf\x1e\xb3\xfa\x65\x29\x7c\xf6\x9d\xb0\x84\xc6\x03\xf0\xef\x61\x50\xbd\x3a\x94\xe8\xce\x64\x5d\x30\x49\x38\xb5\x34\x74\x9d\xca\xdf\xc8\x5d\x22\x3c\x65\x28\xa4\x66\x27\xda\x1a\xd6\xb3\x14\x5c\x84\x70\x21\x99\x27\x0d\xd8\x34\xcf\x4b\xbf\x9e\xfb\xfb\xe5\x02\xb0\x85\xcc\xb7\x9c\xfb\x5f\x48\x93\x54\xb9\x3c\xf2\xbe\x29\xbb\xe6\x7f\x42\x52\x1e\x63\x6e\xe0\x2b\x34\x3e\xd3\x8b\x98\xf2\xf1\x0f\x0b\xe5\xc4\x15\x91\x77\xa4\x68\x4d\xe2\x68\x73\x21\x52\x0b\x64\x9c\xdd\x6f\xbe\xde\x2c\xbe\xdf\x1e\x7a\x65\x3c\x42\x14\x24\x98\x70\x7b\x6c\xe3\x81\x06\x3b\x4e\x8f\xb6\x45\x38\xfb\xcf\x05\x8e\x03\xfe\xad\xe9\xf3\x6a\x25\x93\xf6\xb3\xfe\xf3\x6f\x37\xb8\xfa\x3c\x35\xae\x3f\xac\x09\xfa\x62\xde\xac\xdc\x5c\xa9\x3f\x10\x62\x02\x40\x14\x6c\xa7\x03\xd7\x53\xa6\x10\x62\x42\x8e\xf6\xcd\x35\x68\x16\x97\xba\x97\xb1\x27\x34\x08\x2d\x0c\x46\x68\x5f\xdc\x3a\x94\x1f\xd5\x6c\xc6\x66\x85\x86\x71\x82\xe5\x3d\x10\x55\xfe\xde\x7e\x26\xa8\xea\x61\xfd\xb9\x1d\xa1\x53\x27\xa5\x92\x15\x5b\x3d\x50\xea\x21\x34\xa4\x3a\x92\xa3\xb8\xc5\x2a\xad\xf8\xe3\x89\xb6\x7a\x6a\xed\x56\xb9\xf5\x66\x8f\x92\x54\xfb\x54\x1f\xa2\x76\xda\xd5\x3d\xfa\x48\x94\xc8\x00\x53\xa4\x96\x06\x77\xbb\xda\x25\xdd\xb9\x2a\xc6\xce\xf6\x46\xbc\x8c\xf2\xae\x94\x98\x30\xea\x09\x00\x31\xc4\xf9\xc8\x00\x8d\x0a\x7b\x1f\xb7\xb3\x11\xca\x98\x25\x71\xb6\xcc\xfc\x7b\x2c\xe5\x4c\x12\x16\x94\x69\x66\x33\x37\x9d\x07\xe7\xaa\xe7\x22\x9f\xec\xb1\xf3\x1f\x80\x8b\x50\x58\x66\xe7\x42\x65\x83\xad\x88\xa6\x21\x41\xaf\x72\x91\x37\x7b\xa4\x20\x75\x5e\xe7\xc3\xdb\x15\x99\xe1\xac\x33\x4c\x53\x6e\xc1\x09\xb6\x13\x79\xf3\xcb\x76\xd1\x4f\xde\xb4\x08\x88\xcf\xa6\xb9\xad\xae\xb6\xca\xa8\xe3\xbb\x14\x91\x41\x13\x2f\xb3\xf1\xce\xdf\xed\xcc\x54\x9a\x44\x39\x9b\xfd\x7b\xa3\xc6\x95\x02\xaa\x02\x5b\x42\xda\x2b\x51\x40\xa3\x7a\x44\x06\xa1\x2a\x02\x3e\xdc\x71\xbf\xfe\x9a\x8b\xc1\xa8\xa2\xd2\xa9\xd8\x61\x0e\x7b\x55\xd4\x53\x40\xc8\x07\x6f\x41\x09\xa5\x7a\x6a\x8b\x02\x3c\x47\x1f\xa1\x10\xa5\x48\xc6\x30\x54\xf6\x9c\xf7\x1d\x29\x10\xcb\xe8\x58\x0b\x03\x42\xcf\x23\x59\x09\x85\x94\x04\x0e\xd4\x0d\x87\x81\xba\x88\xff\x41\x93\x72\xa2\x7a\x42\x85\xda\x39\x8f\xf6\x28\x0b\x82\x18\x4b\x8a\x4d\x06\xd5\x4a\x9c\x27\xe6\x81\x05\x51\x82\xe9\xe1\x33\xc2\x4d\x01\x1d\xed\x61\x47\x9b\x1b\x16\x71\x81\x9e\xc0\xd7\x12\xfb\x1b\x86\x92\x18\x84\x25\x61\x44\x6d\x55\x1a\x9c\x68\xd6\x80\xe9\x85\xb0\x84\x47\x24\xe8\x98\x9d\xe6\xdd\x01\x46\x22\x81\x1a\xd3\x18\x12\x38\x10\xb1\x13\x5e\xf1\x53\x97\xd1\x24\xc6\x1d\xe7\xdb\xbb\xac\xb2\xee\xaf\x2c\xd0\xa9\x17\xb0\x1c\xf3\xb2\xb9\x01\x3c\x54\x3c\xf0\x15\x0d\x6f\xe3\xad\xfe\xe7\xa7\x9f\x87\x71\x4a\x90\x9f\x23\x2f\x9b\x06\x2a\xab\xc3\xb4\x11\x55\x4f\x5a\x4f\x18\x17\xa1\xc5\x43\x42\xa1\x8f\x77\xa0\xb3\xf6\x7e\x07\x06\x7d\xde\x3c\xb2\x14\x88\x1a\xf3\xfc\xba\x99\x0d\xf5\xce\x5c\x63\x89\x09\x13\x21\xc7\x3c\xf2\x62\x7d\xb7\x1b\xfa\x7a\x4c\x50\x4b\x83\xe8\x84\xe4\x10\x01\xf5\x81\x65\x18\x0a\x06\x8e\xdc\x0e\x26\x34\x41\x63\xa1\x44\xe1\xf1\x92\xcb\xf2\x1a\x16\xe2\x46\x4b\x29\x31\x6f\xf4\x96\x15\x7f\x13\xea\xe5\xa1\x6c\x3e\xeb\xe2\x24\x4c\x49\x1a\x8d\xd3\x79\x85\x98\xac\x43\xa6\x49\x8a\x2c\xdc\x59\xfd\xd5\xe2\xfe\xfe\x59\x9e\x64\x06\x6f\xd3\x61\xc2\x44\xd0\x55\x20\xc6\xd2\xac\x7e\x88\x8c\x31\x87\x24\x6c\x4b\x7d\x67\xc9\x99\xd6\x86\x9b\x7e\x86\x75\x39\x17\x7f\x1c\xa2\x00\xc3\xc3\xc5\xfe\xb0\x1c\xbd\x62\x13\xc7\xf8\xbc\x48\xdc\x66\xa5\x0f\x7b\x45\x2e\xc2\x0c\xa1\x58\x9d\xaa\x9f\xcb\xb7\xaf\xe2\x04\x9d\xf8\x3d\x61\x86\x5a\xa4\xa9\x37\x42\xc7\xd3\xfb\x38\x62\x66\x86\x1b\xec\x46\x37\x00\x0f\x22\xd3\x3e\x9b\x3f\xf7\x8f\x3f\x43\x6a\x24\x9f\x83\x53\xe6\xf4\xf2\x97\xf9\x48\x43\x6c\x6c\xa8\x78\x10\xa7\xa1\xc3\x53\x7e\x19\xec\x4c\xfe\x68\x62\x89\xf2\x6b\x68\x9a\x1c\x1e\x2e\xd7\xfd\xb5\xa3\x0f\xc0\x03\x92\x42\x8f\xaa\xb7\x98\x31\x54\xea\x99\xb7\x5d\x3c\x90\x80\x59\xd1\x6f\xbb\x87\xcd\x80\x24\x90\xf0\x90\xda\x0d\xb7\x86\xe6\x0e\x2a\x75\xc9\xa1\xb9\x6e\x6b\x22\x3c\x64\x16\x75\xe9\x32\x55\x4f\x36\x5d\xb5\x46\x81\x82\xc9\x48\x49\xb1\x89\xeb\x6d\xc2\x06\xef\x0e\xc7\x01\xc5\x0a\xa1\x45\xda\x8e\xf7\x82\xeb\x3c\x1f\x8f\xb5\x15\x1e\x91\x97\x3a\x2b\xa0\xae\x27\x57\x4b\xe2\x08\x91\x80\x0f\x50\x9e\x73\x18\xe5\x6c\x79\x92\x12\x6d\x7c\xd8\xe2\x65\xbd\xdd\x76\xc6\x69\x64\x81\x00\x79\x59\xbe\x5c\xce\xb3\xbd\x81\x7e\x64\x12\x1a\x6f\x22\xaa\x26\xab\x9b\xed\x64\x8f\xe5\x94\x53\xd9\x0b\xa8\x1e\xc5\x75\x72\x98\x33\xd2\xe9\x6b\xbb\x64\xb4\x17\xe8\x1a\x8f\xe3\x24\xc5\xb8\xdf\x35\x02\x78\x89\x1a\x7d\x35\x4e\xd9\x16\x4d\xec\xb1\xb3\x72\xbb\xef\xb6\x6b\xce\x3f\x7d\x4a\x22\x6c\x22\x6c\xb2\x33\xe2\x5b\xc6\xb7\x9c\xa6\x14\x53\x7f\x4d\x1b\x6a\xd6\xcb\x6c\xb4\x92\xb8\x08\x43\x6c\x8f\x6f\x57\x2d\xa6\x83\x3c\xf8\x7c\xfc\x66\x44\x92\x22\xc3\x90\x1e\xe7\xac\x3f\x28\xd5\x71\xc9\x01\xdf\xc1\xad\xa8\x3b\x0c\xa1\x3f\x04\x04\xe1\x70\x3f\x0f\x37\xfe\x4f\x3a\x34\xe8\x52\xf4\x55\xf8\x42\x83\x46\x5e\xdc\xba\x36\x97\xbc\xb3\x17\x5c\x83\x8a\x2c\x4b\xd1\xaf\xfd\x45\xba\xa6\x88\x6e\x86\x00\x4b\xb9\xe7\xa8\x40\x2d\x83\x45\xa1\x91\x8d\xa8\x35\xb0\x0f\x2f\xb3\xf2\x02\xed\x59\x56\x7a\xfe\x24\x7e\x3d\x54\xb0\x55\xe5\xb0\x1f\x8d\x70\x00\x2b\x5a\xd7\xf5\x02\xec\xa1\x99\xd9\x2d\x38\x98\x04\x5d\x34\x53\x56\x0a\x2c\xab\xe6\x54\x22\xbc\x1d\x94\x62\xe6\xbb\xa7\xcb\xef\xde\x8b\x61\x06\x3d\x0a\xaf\x07\x79\x63\x45\xfb\xdc\xe1\x34\x88\x84\x6b\xd4\x6d\x43\xfd\xdd\x19\x0a\xab\xe3\x5a\x95\xa7\x65\x59\xbe\x7c\x19\x79\x70\x69\x90\x06\xc8\x4a\xd4\xba\xd6\xfe\x0a\x61\x00\xc4\xe6\xba\x9e\xba\x0d\xd9\x15\xa0\xfe\x34\x35\x39\x7a\x63\x69\x48\x34\xca\x93\x58\x85\xd6\xbb\xcc\x51\xc7\x7f\x30\x19\xd2\x90\xd9\x06\x39\xbb\x66\xac\xd2\x41\xcf\x1f\x37\x49\x9e\xcf\x7a\x2a\x69\x98\x02\xe2\x49\x16\x15\x14\xa2\x7b\x20\x69\xed\x78\xbb\xc7\x5d\xe4\xef\xf0\xbe\xa8\x2a\x12\x5c\xf5\x8f\x4c\xcc\x4c\x1a\x6a\x85\x9e\x13\x0a\x41\x8a\x0f\x79\x88\xdc\xe8\x28\xb4\x85\xac\x1a\xf9\x87\x9e\xa0\xbe\x13\x85\x78\x9a\x7e\xfd\x34\x12\xc2\x6d\x92\x4f\x59\xdd\x7c\x2b\xea\xd9\x0c\x52\x1a\xa9\x80\x0f\x23\x8c\xc3\xa5\xd6\x0f\x55\xf9\xeb\xfd\x8a\x4f\xcf\x9d\x10\xb3\x94\x5a\xf8\x81\x7e\x44\x79\xaf\x69\x24\xe4\xc7\x09\x8e\x8d\xde\x50\xe8\x5b\xeb\x39\xf9\xb7\x14\x83\x42\x3e\x87\xdb\xdd\xd7\xe3\xd6\x69\xf5\x0c\x98\x03\xc7\x4f\x9b\x04\x14\x81\x28\x8e\x53\xba\x6f\xf4\x46\xa1\x07\x74\xcc\x8e\xf5\x70\x07\x4f\x93\x14\x34\xf3\xba\x6d\xbe\x4d\xc9\xf6\x31\x8f\xd3\xd0\xbf\xcd\x6e\x95\x69\x22\x9c\xfe\x19\x34\x43\xf8\xcc\xfe\x39\x33\xd3\x9b\x23\x26\x42\x9f\xfc\xf0\xfb\x61\xf2\x96\x68\x6a\x91\xa5\x0e\xc3\x89\x1f\x6a\x02\x50\x4b\xa9\xb4\x3a\x55\x3d\x11\xc4\x0d\xd8\x62\x55\x4f\x0f\x47\x52\x6a\x04\x22\xd4\xea\x91\x7a\x3f\x49\x19\xd3\xb8\xf9\xe4\xa0\x9f\xa6\x16\x36\x65\x00\x98\xc9\x84\x42\x95\xae\xff\x8b\x77\xd3\x8d\x07\x0c\xa3\x72\xeb\x89\xef\xcc\x20\x17\xea\x57\x2b\x0f\x29\x71\x0e\x81\xed\xad\x98\xd9\x95\x53\xde\x4e\x05\x57\x75\x85\x5f\x8d\x47\xe8\x0e\xbd\xfe\x94\x53\x5b\x6b\xc2\x54\xf7\xe1\xb9\xbc\xd4\xa2\xd0\x96\x72\xc6\x8f\xe0\x4c\x87\x43\xda\x45\x4b\x86\x34\xbf\x1f\xa6\x5c\x46\x9e\xc5\x71\x0f\xa2\xb1\xca\x94\xe3\x21\x69\xa4\x70\xef\xb9\x14\xd9\x7f\x5c\xe3\x7a\xf7\xe8\xa9\x08\x52\x1b\x95\xfd\xb2\xe5\x40\x5f\x06\xba\x14\x6a\x7e\x7d\x88\xd8\x6a\xcf\x2d\x7e\x2e\xfe\x18\x6e\xf0\xa9\xa0\x09\x23\x9d\x5a\xfc\x13\x54\xe7\x2a\xbb\x9a\xbd\xc2\x41\x80\x2c\x42\xe2\x52\xf7\xd6\x53\x26\x90\xfa\x74\xf9\x01\x4e\xe7\xbf\x82\x28\x4a\xa5\x8e\x50\x56\x18\x44\x55\x80\x2d\x3a\xfa\xeb\xa9\x90\x4b\xd5\x59\xe3\x2e\x0d\xb9\x3b\xbb\xd9\x34\x7e\x2a\x15\xd9\xb4\xcb\xf2\xf2\xfe\x3b\xbc\x7f\xe0\xb6\xa5\x8a\x06\xe8\xb8\xfe\x73\x7d\xd7\x77\x5d\x93\x54\x41\x40\x98\x87\x5a\x34\x9d\xfc\x10\x49\x75\x47\x25\x91\xe7\xff\x2c\x8b\x79\x3e\x30\x92\x6a\x12\x21\x0d\x77\xfb\xc5\x31\xd0\x1c\xd6\xd1\xff\x15\x06\xbd\x1f\x96\xf8\xef\xa6\xb9\x15\xaf\x07\x9d\xbd\x7e\x74\x55\xc1\x23\xdd\x31\xc1\x67\x0d\x2e\x35\x8c\xef\x5c\x83\xa8\x1f\x27\x2d\xa2\xea\x18\xfc\x5a\x67\xa2\x1a\xe5\xcc\x53\x0d\x01\x26\x28\xdb\x57\x2b\xaa\x4c\x60\x32\xac\x97\x07\x21\x29\x84\x60\xcb\xf4\x6d\xc0\x0f\x97\x93\x63\x49\xf1\x87\x0d\x8f\x3c\x66\x01\x21\x4d\x2e\x61\x35\x84\xb6\xa4\x46\x26\x28\xa8\xd0\x8c\xc8\x82\xae\x00\x90\x22\x88\xd3\xd8\x12\x10\xd6\xf5\xdd\xfb\xe0\x03\x88\x20\x0d\x54\xe0\x19\xfe\x5a\xb7\xeb\xa7\xa8\x10\xbd\xee\x68\x38\xfc\x30\x6d\x12\x5f\xa5\x3e\x3c\x57\xe5\x9b\x6d\xc5\xbb\x87\x37\xcf\x6d\x7d\x5f\x36\x03\x45\x6d\x22\x02\x10\xb4\x63\x6a\xbb\x01\x98\xc4\x67\x22\xa2\xd6\x41\xf4\xde\xf5\x14\x3d\x39\x19\x9d\x06\xb1\x5b\x21\x07\x51\xbf\x8c\x4d\x94\x88\xa4\x66\xd4\xc3\xd1\x77\xd5\x23\xb4\xcb\x4f\x35\x56\xdf\xd1\x8e\x4d\x06\x55\x52\x11\x73\x69\xd5\xdd\xea\x5d\xae\x3d\x4a\xd8\x1f\x53\x56\xf3\xfd\x6c\x1b\x44\x8f\x8e\x3b\x64\x02\xd6\x16\x09\x0f\xb0\x30\x69\x19\x61\x2e\x4d\xd3\x5f\x21\xd1\x31\x6a\xbc\xdd\x97\xaf\x62\xd0\xd3\x43\x04\x09\x84\xe9\x05\x06\xda\xe9\x84\x0b\xc6\x1f\x6d\x37\x01\x9b\xd4\x77\x0d\x77\x93\x18\x41\x90\x28\xf6\x34\x73\x5e\xe3\x7f\xfc\x96\x48\x94\x4a\xda\x25\x01\x90\xd9\xe9\x8a\x56\xd1\x0f\x25\x71\x32\x14\xe8\x1e\x72\x24\x10\x41\x74\x8a\xbd\x7d\x6a\xa0\xf0\xee\x8f\xd1\x40\xe2\xcb\x3e\x2a\x91\xdb\x32\xbb\xcb\xf7\xe1\xb4\x1a\xff\x0a\x25\xb1\x18\x42\x92\xdb\xf8\xb8\xac\x9a\xe9\xcf\x51\x4e\xd1\x16\x21\x59\xcf\xce\xfb\xea\xf5\x24\xa7\x2f\xa8\xb0\x72\xdc\x88\x9d\x04\xd3\xec\x5e\xa1\xfa\xe7\x6a\x77\x28\x47\x79\x60\x41\x45\x8c\xf1\xec\x23\xa6\x13\xef\x0e\xdf\x07\xf9\x69\x41\x0d\x51\x6e\x47\xbe\x45\xea\x21\xbc\x93\x07\xf1\xae\xc5\x35\xca\x60\xd6\xe3\x13\x8c\x18\x34\x78\xe7\x5c\xbc\xdf\xf4\xe6\x70\xbc\xf5\x8b\x54\x58\xe1\xa5\xe2\x72\xb2\x05\xdc\x1a\x71\xd8\x88\x58\x1c\xbf\x24\x21\x82\xd4\x4a\xa9\x6d\x56\x9e\xb9\x96\x08\x01\x06\xcb\x71\xc7\x3e\x5f\x9b\x9d\xca\x4a\x77\xf4\x09\x9f\xdf\xa4\x8c\x48\xa0\x3b\xf1\x96\x7a\x5a\xfa\x15\x92\xdb\xb9\x84\x6b\x7d\x31\x48\xe7\x0a\xa9\xc2\x81\x7c\x9e\xc7\xe9\xeb\x89\xa4\xf6\xbf\xe2\x7f\x5f\x65\x83\xc2\xf0\xdf\x73\x8d\x11\x42\x25\xca\x8b\x0b\xad\xc5\x3b\x36\xf0\x5b\xdc\xc1\xf8\x96\x15\x89\xb1\xd0\x82\xa1\xe0\x12\x9a\xbe\x7b\x8c\x08\x25\x02\x04\x9a\xdf\x96\xe3\x1e\x67\x7f\x58\x59\xea\x67\x51\x9d\x5d\x41\xa3\x0b\x3d\x84\x0e\x25\x22\x7b\x2e\x45\xe5\xec\xc2\xe4\x55\x40\x40\x3d\x9d\x66\xbf\x7b\x4c\x5e\x27\x84\x29\x8b\x3c\x5b\x5d\x4f\x0d\x4b\x04\xa8\x10\x55\x17\x5c\x72\x48\x68\xdd\x1f\x61\x58\x4a\x41\x1f\x06\xed\xc0\xaa\xbc\x54\x75\x7f\x26\x24\xd8\x89\x6e\x49\xbf\x6b\xdb\x99\xf8\xf9\x47\x35\x34\xc1\x6e\xf2\xbf\x2d\x46\xc8\x39\x61\x44\x8a\x74\xd3\x88\xfb\xd9\x34\xcf\x47\x77\x40\x06\x91\xc0\x8a\x38\x1e\xd8\xae\x76\x03\xbc\xac\x0c\x62\xe3\x8b\x1b\xee\xd7\x70\xd4\xf8\xcd\xca\x80\x19\x9a\x3a\xca\x81\xd1\xfd\xcb\x80\x47\x58\x59\x6c\x57\xe3\xfa\x71\x3f\x5c\xfd\xe3\xdb\x96\x51\x18\x38\xf5\x74\x9c\x42\xab\x4b\xdd\x94\x3a\x13\x3e\xdb\x36\xfa\x1a\x32\x8a\x01\x0d\xd3\xae\x18\x49\x91\x11\x19\xc9\x10\xb5\xba\xf7\x36\x71\xd3\x5c\xea\x2f\x73\xc9\x41\x19\x27\x31\x36\x4d\x6b\xf8\xf5\x7f\xa2\x1a\xa6\x88\x64\xcc\x78\xea\xf8\x35\x7f\x7f\x97\x50\xdd\x43\xf3\x56\x56\x2f\xb3\x16\x52\x26\x01\xe0\xce\xa8\x1d\xee\x64\xf2\x62\x12\xa9\xa2\xa8\xdb\x38\xa1\x72\x41\x85\xff\x29\x12\x4b\x64\xde\x3a\x94\x97\xaa\x10\x6d\x30\xd2\x8b\xcd\x12\x49\x08\xd5\x9d\xbb\x9e\xe7\xe8\x11\x2f\x4c\x03\xd5\x41\xfc\xea\xc6\x50\x99\x74\x44\x7b\x63\x76\x2f\xef\x83\x4a\x4a\x0d\x98\xa1\xc3\x8b\x4e\xac\xad\xc3\x22\xd1\x4e\x96\xe7\x56\x95\x63\x6e\x62\x79\x37\x42\xb2\x58\x20\x6a\x68\xbb\xda\x8d\x32\x98\x92\x09\x19\xf8\xb6\xd1\xa7\x2a\xc3\x59\xec\x68\x24\x06\xa9\x68\x37\x98\x07\x01\xbe\x78\x79\x79\xb7\xe4\xd2\x0e\xeb\xfd\x9b\xfb\x67\x4e\xd1\x8a\x48\xce\x65\x6c\x13\x5f\x42\x7d\x46\x39\xee\x86\xa7\x82\xcb\x6e\x67\x2a\xf3\x1c\xaa\x61\x0f\x8e\x14\x29\x88\x21\x80\x67\x6a\x9c\xff\x45\xfe\x3d\xf6\x2c\xa4\x54\x21\xc2\x15\x5c\xa6\xff\xee\x61\x42\x76\x30\x8c\x65\xa4\x4a\x13\xa4\x66\x53\x96\x72\xea\x50\xae\x37\x37\x93\x79\xa1\x59\x8c\x28\x84\xd2\x18\xa8\x6c\xc8\x77\xfe\x50\x30\x8b\x48\xcd\xa5\x8c\x7c\xe7\xf9\x09\xea\x46\x9c\xce\xcb\x77\xb4\x43\xa3\xe7\xd6\xda\x60\xeb\xc3\xf1\x68\x59\xc1\xc5\x09\x1a\xdf\x4c\xf3\x01\x9d\x04\x91\x10\x59\x66\x6a\x8b\x07\x14\x39\x0c\xe1\x5e\x12\x8c\xed\x65\x1d\xf2\x99\x0c\x33\x98\xfd\xae\x29\x4d\x24\x31\x19\x91\x8b\xba\xe9\xb0\xf2\xd2\x24\x31\xee\x31\x9e\x4b\xc3\xff\x99\x29\xcd\x06\x0b\xc7\xb5\x94\x4d\x76\x73\x69\x18\x68\xab\x54\x25\xf3\x4c\xdd\x58\x02\x8b\x07\xa8\xea\xb2\x40\x23\x36\xbc\x57\x15\x44\x24\x54\x1e\x6f\x9f\x15\x6e\xc3\x1f\xf0\x84\x10\x15\x46\x1a\xb7\x0f\x7c\xd8\x9f\x90\xfd\xec\x3c\x32\x15\x2a\x22\x6d\x8f\x3c\x54\x85\x68\x2f\x30\xb9\x19\x15\x01\xa0\xc3\xf3\x08\xd8\xba\xdc\xda\xe4\x42\x65\x22\xbf\x15\x72\xe0\x2d\xab\x38\xb0\x60\x8e\xa3\x6d\x32\x45\xde\xaa\x2b\x42\x2f\x3f\x36\x8a\xbc\x5a\xfa\x4a\x8c\x73\x9f\x83\x57\xab\x62\xa5\x51\x7c\x55\x89\x0e\xea\xff\x7d\x7f\xb0\x89\xf5\xc1\xb0\x24\x16\x58\x56\xf4\x1e\xd9\x20\x79\xa1\x08\x0d\x30\x3d\x22\xb4\xcd\x7e\x6e\x8b\xd7\x32\x53\x7f\x22\xad\x4b\x14\x51\x29\x06\xe6\x59\xfd\x60\xd5\x94\x40\x1f\x7e\x8d\x3d\x6b\x45\x65\x88\xbc\x07\xab\xc7\x87\xc5\x97\xee\x6f\x89\xed\xe7\xc9\xcb\x02\x6e\x00\x06\x40\x72\x37\x82\xc5\x02\xf1\xa3\x95\xe5\x8e\xdb\xf8\xe4\x62\x77\xdc\x18\x2c\xbb\x65\xf5\x83\xc8\xc6\x7a\x08\x6e\x04\x8f\x18\xb6\x1b\x63\x3e\xa6\xac\x9a\x1a\x39\x7f\x8c\x50\x30\xfe\xe8\x3c\xb6\xdc\x0e\x98\x37\x78\xdb\x36\x70\xba\xd6\xce\xf2\x43\x35\xc5\x02\x72\x81\x4d\x64\xcb\xcb\xfb\x68\x82\xa5\x61\x18\x22\x20\x51\xbe\x68\x13\x7d\xf9\x88\x3b\x8d\xa8\x94\x87\x9e\x61\x6c\x25\x4e\x67\x91\x3d\x15\x23\x12\x7e\xa2\x44\x12\x62\x21\x77\x04\xed\x9e\xcd\x35\x2a\x41\x09\xf6\x25\x9f\xa7\x0a\x56\x7f\x01\xac\xa6\x84\x4c\x95\x6b\x62\x3a\xa2\x04\x13\x0c\xa1\xda\x4a\x32\x02\x56\x10\xf2\x9c\x0b\x05\xab\xe7\xec\xfc\xfc\xf1\x9d\x48\xa3\xd1\x2f\xde\x3b\x95\x49\x57\x02\xc2\xc8\x73\xf2\x6d\x14\x44\x9e\xe5\xf1\xc6\xf3\x7c\x8d\x47\x68\x0e\xd8\x50\xbd\xdf\xac\x76\xf7\x6b\x27\xaf\x7a\xb7\xf8\xe3\xb8\x7f\x58\x78\x0c\x8b\x82\xc0\xaa\xb8\xbc\x59\x01\x82\xce\xfa\x75\xc7\x55\x8c\x2d\x61\x47\xa8\x55\x55\xbe\x8d\x26\x73\x12\xb8\x41\x26\x11\xa4\x2f\x56\x6e\x72\xb0\x1b\xd3\xd0\x74\x2a\x43\xba\xa8\xc8\x46\xad\x06\x9c\xa2\xd7\x18\x24\xa2\x0c\x13\xb8\x15\x19\x50\xcf\x3f\xca\x06\x6c\xc4\x7d\x53\x56\x3d\xa1\xd5\xfb\x38\x33\x35\xeb\xef\x28\x63\x48\x62\x4b\x8f\x5d\x2c\xe3\x2b\x6a\x76\x84\x0e\x03\x83\xcc\xe3\xa8\x4e\x2a\x6a\xd8\xae\x76\x6a\xc2\x83\x40\x74\xc4\xad\xd0\x39\x1a\xb4\x5b\xfb\x59\x46\xd9\x7b\x1d\x19\xc5\x45\x47\xed\xbf\x55\xe5\xa6\xd0\xf5\x62\xe2\x57\xeb\x58\x5a\xa2\x16\x2f\xd8\x39\xd0\xf5\xf3\x23\x94\xc1\x1a\x1c\x06\xb3\x2b\x51\x3f\x3f\x74\x8d\xff\x3a\x86\x40\x0c\xb9\x04\x0e\xe5\x5e\x18\xe8\x8e\x1a\xdb\x6a\xb0\x84\x26\xb9\x15\x5d\x6e\x43\x27\x51\x1c\x79\x15\xc6\xbb\x4b\x7e\x77\x4d\xaa\x35\x6f\x94\x74\x92\x44\x81\xdd\xc0\xdb\x77\x5f\xf7\x92\xc7\x03\xd2\x01\x9d\xa4\x89\xea\xc5\x66\x5a\xa7\x24\x3a\x86\x47\xaf\xd5\xde\xce\xa4\xe5\x3b\x09\x82\xa0\x1b\xaf\x08\xc6\x52\x67\x64\x6a\x86\xbb\x19\x1c\x85\x1f\x69\x22\x74\xcc\x8e\x99\xe3\x18\xfb\x33\xd6\xc6\xc9\xf9\x24\x64\x08\x7f\x3a\x5b\x50\x53\x74\x7c\xcb\x3a\xc4\x98\x26\x51\x98\x3a\x6f\xed\xb6\x14\xc5\xf8\x5b\x92\x58\x63\x07\xdf\x11\x7e\x65\x75\x63\x39\xaf\x7f\x87\x31\x5f\x30\xd1\x94\x58\xca\x52\xcc\xaa\x0c\x64\x4b\x88\xa6\xc2\x16\xa3\xdf\x50\x37\xa9\xe7\xe2\x21\x9a\x05\x0c\xb7\x8e\xdf\xd7\xc1\xd0\xa1\xd6\x2c\xe0\xc4\x3b\x8f\x8f\xa2\x78\xc1\x1c\xe0\x54\xa2\x83\x68\xc6\x43\x6c\x1a\x30\x59\xa1\xff\x61\xca\xea\x8f\xe9\x71\x19\xf9\x1e\x60\x57\x11\x9c\x2d\x22\x68\x26\x4d\x92\x0c\x5d\xb3\x29\x28\x68\x3c\x9c\x13\x4b\x93\xf0\x77\xd9\x7e\x52\x91\xfb\x34\xb0\xe6\x4c\xe3\xef\x59\x32\x2e\xa7\x9a\x3a\x39\x97\x5b\xa8\x93\xb2\x42\x0a\xae\xbc\x6e\x1f\x7e\xd6\x0b\xd5\x69\x2a\xb0\x8a\xb3\xca\x41\x14\xfb\x37\x10\xdd\x5c\x4b\x45\x0a\x30\x64\x95\x13\x15\xe6\xc1\xa7\x77\x3f\x21\xfd\x9e\xfc\xdf\x91\xb1\xd5\xa9\xd0\x76\xe7\xcd\xf3\xec\x3f\x97\x4c\x8f\xe1\x37\x3a\x6d\x63\x7f\x9b\x09\x1a\x7d\x30\x11\x74\xde\xf8\xca\x13\x07\x4e\x9e\x5c\x24\x11\x02\x75\x5d\x38\xba\xdf\x6c\xd6\xfb\xac\x18\xa8\x21\x4d\x9b\x84\xb5\xa0\x36\x45\x83\xaa\x4a\x58\x5b\xc0\x69\xe5\xda\xc7\x87\x14\x17\x5a\x50\x62\xf9\x50\x2d\x82\xee\xef\x6d\x30\x97\x95\x7d\xf5\x53\x0b\x25\x61\x28\xed\x71\x53\x95\xd7\xb4\xec\xf3\x0b\x4f\x40\x10\xbb\x68\xf4\xf0\x7e\xee\x5e\x85\x34\x80\x9b\xb6\xa9\xca\xd3\x23\x88\xfc\xcb\xb0\x10\xa8\x15\x0f\x28\x74\xf2\x19\x4f\x30\x6c\x76\xd1\xda\xc4\x89\xab\x54\x77\x29\xec\x31\x0a\xfe\x8a\xa1\x7d\xfc\x2e\x21\xa1\x81\xcb\x4d\xef\xde\x8a\x1b\x51\x3f\x5f\xe3\x29\x35\xf0\x20\x72\x83\x16\xff\xb9\xd8\xef\xb5\xb8\xe8\x15\x14\x4d\x3d\x5a\x9f\x20\x04\x92\x88\x6d\xef\x0f\x8b\x47\xdf\xb3\xaf\x4d\x68\x0b\x9f\xc7\xf6\x01\x67\x79\xeb\x26\xef\xc9\x18\xdb\x7c\xfb\x58\xe6\x70\x8b\x25\x7f\x77\x29\x08\x92\x08\x7d\xd3\xd9\xde\xa4\x31\x6e\xde\x9d\x11\x86\x09\x95\x03\xc2\x1e\xbb\x87\x1c\xde\xbc\x63\x09\xa1\xa2\xc4\xd1\xd1\x81\x3e\x36\xe5\xb1\x79\x86\xa3\x14\x85\x5f\x8b\x10\x71\x16\x04\xde\xf3\xc4\x3c\x5a\x56\x5d\xc1\x96\xc7\xaf\x15\xe2\x90\xa3\xa1\x13\xa7\xed\x47\xbc\xe8\x04\xe2\x38\xc5\xd5\xaf\xb3\x27\xa8\x9b\xb9\x94\x0c\xc4\x42\xc6\xed\x64\x2b\x94\x1a\xae\x12\x88\x75\xcc\xf4\x58\xf1\xbc\xdd\xc2\xb1\xba\xe3\x86\x10\x01\x68\xd2\x7e\xcf\x7a\xea\x4c\x02\x44\x51\x4b\xb4\x7c\xfe\x94\x9f\x01\x58\x60\xd5\x3e\x4e\xef\x07\x51\x65\xc6\x9f\xce\xc3\x48\x68\x0f\x50\xac\xa1\x6f\xea\x07\x1e\x01\xd6\x45\x6f\x2a\x80\xe3\x6b\xd9\xc0\xd1\x94\xd5\x51\x79\xa7\xe2\xb8\xec\x06\xc6\xa9\x4f\x4e\x7e\x83\xaa\x44\x79\xdf\xf9\xb8\x11\x52\x15\x21\xaa\xe0\xa1\x8d\xc8\xcb\xac\xf0\x72\x49\x04\x52\xa3\x22\x87\x83\x59\x0e\x88\xcc\xba\x08\xd8\xe5\x0e\x40\x24\x11\xd5\x3d\x0d\xe3\x4f\x47\x94\xc1\xa7\x65\xf1\xb1\xed\x02\x01\x06\x27\x4d\xe3\x10\x1d\x7f\xce\x69\x4c\x40\x18\xeb\x31\x3e\x41\xd3\x46\x90\x7f\x13\x1a\xfa\x2c\x82\xd3\xe8\x1c\x7f\x7f\x4d\x75\x40\xbd\xef\xb3\x2c\x0b\x3d\xca\x4b\x80\x4e\x19\xa2\xdd\x86\x4c\x22\x0b\xc4\xe1\x7c\xf0\xcd\x20\x8c\xd0\x99\x2c\x5f\xa1\xaa\x32\x0d\xab\x67\x51\x7d\xac\x63\x4d\x00\x62\x66\x65\x91\xd1\x61\xbc\x83\x5a\xcc\xb7\x93\x03\xa8\x8e\x23\x01\xe1\xa8\x76\xf5\xcd\x35\x06\x82\x89\x52\x8c\x0b\x70\x57\x7a\xba\x38\x81\x35\xc7\x8a\xfd\x09\xba\x17\x8c\xe2\x69\xdc\x6f\x67\xd8\x4a\x79\xf0\x79\x22\x30\x86\x63\xfa\x78\x9d\x89\x53\x59\xe8\x8f\xb8\x75\x27\x8b\xdf\x04\xd4\x36\xe6\xd8\xdc\xc0\x10\xc0\x6e\x02\x0a\x98\x19\xc4\xb8\x61\x79\x79\x47\x2c\xc6\x40\x06\x7d\x0a\x3a\x30\x81\x8a\x90\xec\xf6\x84\x52\xd4\xad\x9b\x3a\x75\x31\x4d\xc8\xd2\xa0\xe7\x89\x5a\x41\x0e\x72\x8e\x6f\xae\xbd\x6a\x2f\x88\xf7\x2f\xea\x7f\x21\x8a\x22\xda\x4b\xb7\x5a\x94\x5a\x79\x3d\xed\x66\x50\x83\xfd\x5e\x3c\xbf\x25\x0f\xf3\x3b\x26\xe2\x0a\x5d\x22\x2b\x5f\xee\xd7\xa5\x89\x20\xf4\xd5\xf5\x1b\xc4\xad\x8c\xa0\xe0\xa3\xaf\x6c\x22\x88\xf0\xbd\x22\x7d\xb4\xed\x42\x19\xd0\xe5\x98\x08\x24\x67\x5d\x7b\xf1\xc6\xb6\x4a\x7c\x15\xa7\xfe\xed\x47\x06\x12\x27\xf1\xbe\xc6\x66\x35\x5d\xae\x9d\x54\x72\x53\xce\xca\xc3\xfb\xbb\x8f\x43\x1a\x5a\xe8\x71\x3d\x23\x67\x3e\x4a\xc6\xf9\x33\xa2\x08\xc9\x10\xac\x0a\xf0\xb0\x76\x3a\x5e\xf5\x86\x30\xcb\xdd\x28\x2f\xd5\xa7\x04\x94\xc4\x90\x34\x88\xe3\xae\x3d\xfc\x0c\x55\xf3\x7e\x2b\x6a\xa7\xc4\x5b\xf5\xff\xe9\x79\xe0\x67\xd7\xab\x21\x20\x42\xe6\x58\x89\x8e\xc2\xa5\x1b\xdd\x31\x9a\x30\xe3\xf0\x87\xad\x1b\xed\x2c\xc9\x02\x23\x60\xac\x01\xfb\xa4\x58\x9f\x3e\x31\x94\x32\x04\xc8\x63\xbf\x61\x84\x6b\x64\x50\xf3\x30\x2c\x8e\x51\x96\x3b\xb3\x65\xb9\x39\x74\x93\x61\x5c\x05\xca\xb6\x75\x2c\xfb\x2d\xd0\xf0\x44\x23\x68\x2b\xab\xed\x1d\x74\x2a\x60\xd3\x42\xb9\x49\x03\x2b\x79\x51\x43\xd3\x5e\xfd\x5a\x0e\x96\x98\x34\x82\xd8\xb5\x29\x2c\x41\x4c\x02\x39\x23\x42\xea\xc3\x3d\x74\x7b\x9d\x86\x6a\x47\xc8\xe2\xf3\xb9\x46\x86\x02\xbb\x2b\xeb\xbc\x8d\xe5\x86\x5c\xb9\xf3\x98\x27\x23\xa3\x90\x93\x81\x1a\xc3\x4c\x5b\xb8\x91\x52\x60\x3d\x5b\x43\xee\x7a\xae\x5b\xf7\xee\x4e\x8c\xd2\xac\xe3\x1b\xd6\x86\x62\x29\xe9\xf4\x00\xd5\x1e\xf2\x1c\xdb\xed\xdd\x31\x88\x25\x16\x50\x9b\x41\xa7\x0f\xa6\xc0\xbd\x08\xaa\x1f\x68\xb8\xc1\x39\xea\xe5\x4d\x47\x42\xb5\x34\x08\x22\x83\x1a\xbb\x68\xc7\x16\x17\xd7\xf4\xe2\x0e\x86\xa1\x6d\x21\x13\x5a\x5b\x65\xf5\x39\x60\x06\x0d\x22\x11\xe2\xfe\xd4\xd1\x99\x75\x89\x7c\x1a\x44\xca\x92\x44\x7a\xa7\xe0\x11\xd4\x5f\x96\x8c\x71\x06\x92\x06\x71\x92\x40\xe4\xc9\xfa\x46\x10\x26\x8a\x8a\xe6\xc1\x20\x3c\xff\x51\xe6\x97\x13\x6c\x3c\x73\x18\x0d\x62\x2e\x11\x3a\x71\xca\x0a\x8c\xb0\x3e\xa5\x8c\xe9\xc8\x2f\xfc\x3f\x5d\x22\x71\xf2\xcc\xb1\x22\x28\x1d\x53\x9e\xa1\xa8\xcb\x4b\xa5\xa0\x35\x6d\x3e\x74\x73\x83\x92\x34\xf0\x7c\x9f\xad\x8d\x5a\xbe\x6f\xd7\x43\x02\x17\x1a\x24\x2a\x41\x62\xac\xe2\x72\x3a\x64\x39\xd4\xe8\x66\xf9\x3c\x07\x0d\x12\x93\x82\xe8\x2b\x3f\x03\x87\xb8\x3d\x26\x6c\xb9\xef\x19\xd4\xcb\xd6\xb8\x24\xf2\xa6\x8d\x7e\xc7\x04\xbc\x34\x20\xcc\x16\x33\xd1\xcd\xbc\x6e\x14\x1a\x3f\x18\x61\x1c\x5b\x7d\xea\x67\x11\x0e\x64\x70\x68\x40\xd2\x90\x59\xb5\x86\xfd\x45\x5a\x3a\x66\x98\x67\x89\xa1\x01\x11\x1c\x65\xcb\xd7\xc8\xbd\x0e\xd5\x37\xa1\x5e\x44\xf3\xec\x8d\x10\x0d\x88\xb4\xa4\xae\xfb\x1f\xd6\x48\x23\x42\x24\x08\x83\xf0\xcb\xe4\x42\x5a\xd3\x70\xd4\x26\xbe\x7c\x77\xb4\x7f\x03\xeb\x42\x03\x2a\xc2\x4e\x48\xeb\xa2\xb3\xe6\x11\xce\x65\xd5\x6c\x1f\x6e\xf6\xb3\xe9\x4c\x1a\x30\xad\x53\x3d\xc2\xac\xee\xcf\xa0\xb2\x81\x92\xd8\x70\x2d\xd2\x80\x27\x29\xc6\xc4\x67\xdf\x47\xd9\xc0\x76\xb5\xbb\x9f\x24\xd6\x06\xe3\xc1\x92\x1e\xeb\xa9\x93\x14\x76\x23\x4c\x68\xd9\xb2\x1d\xc4\xd7\x2d\xe2\x41\x3b\x18\x0d\xd2\xc0\x76\x6a\x3c\x41\x83\x02\x60\xef\x6b\x68\x44\x96\xd7\x1e\x94\x31\x7e\x59\xa9\x88\x31\x65\x7e\x29\x9e\x45\xde\xd4\x98\x33\xef\xd6\x72\x2a\x43\x6e\x7b\xde\xce\x17\x8b\xc8\x19\xb8\xfd\xed\x61\x89\x7b\xf4\x52\x54\xd9\xa9\xcf\xd9\xb7\x07\x34\xea\x3b\x6e\x36\x77\x43\x9c\x40\x7b\x00\xb0\xea\x55\xbf\x01\x4c\x31\x53\x93\xfb\x02\xcb\xc3\x9c\xc3\x2b\xe4\x88\x17\xbf\x9c\x27\xf9\x4a\x1a\x88\x84\xc4\x56\x93\x04\x1c\x12\xa8\xbb\x75\xc1\xd2\x88\x4c\x61\x84\xf5\x64\xa6\x08\xa9\x52\xed\xda\x6a\xc2\xbe\xc4\x4c\x03\x19\xd8\xc6\x2b\xf5\x9c\xe5\x76\xe9\x4f\x38\x47\x67\xf7\x50\x1a\xc8\x38\x8c\xdd\xaa\x59\xd4\x75\xa9\xb0\x93\xe4\x03\xc2\xfa\xc9\x03\x2b\x12\xc5\x16\x8f\x2b\xb4\x53\x34\x7c\xca\x4b\x29\xf2\x2e\x36\x6a\xff\xac\x45\x67\xc4\x34\x89\xac\xe0\x7d\x53\xde\x8b\xa2\xbc\xdf\xde\x7e\x19\xdf\x8c\xa6\x14\xab\xb7\x6d\xf8\x33\xfa\x6e\x5a\x59\xca\x73\x79\xb1\x2a\x6e\xd3\x1b\xfb\x90\x32\x98\x06\x10\x1b\x7c\xc0\x27\x54\x2e\x1d\xff\x1e\xa4\xa1\x4b\x6e\x15\x96\xa4\xca\x71\x4b\xfb\x9f\x35\x2a\x66\x49\xc7\xa2\x89\x1e\xee\x10\xda\xe0\x0d\xb8\xfb\xcf\x79\x1a\x07\x1a\x18\x08\xc0\xeb\x95\xfb\xe2\xfb\x00\x9d\x4f\xc3\x40\x92\xd4\x8a\xa2\x9a\xf2\x26\x83\x7c\xc2\x2d\x4e\xc3\x40\x59\xaa\x07\xec\x21\xc1\x8a\x84\x53\xc8\xa3\x61\x98\x58\x55\xae\x0a\x54\x1b\xb6\xcc\x74\x9b\xd1\x30\xe4\x21\x38\x36\x5c\xa4\xd9\x47\x50\xea\x6e\x86\x22\x8c\x86\x11\x28\xf4\x2b\x45\x1b\x48\xcd\x0d\x88\x49\x64\xc9\x58\x5b\x2b\x7d\xb8\x7d\x08\xfd\x8d\xc4\xa0\xd2\x0e\x0e\x97\xb5\x2e\xf0\xc0\x1f\xa3\x61\x92\xd8\x86\xa1\x65\x59\x4f\x20\x3b\x34\x4c\x48\x8c\x39\xec\xed\x7e\xb1\xf3\x7f\x23\xa9\x97\xfe\x2a\x74\x1b\x31\x1c\x4a\xab\x39\x36\x29\xb1\xd3\x90\x68\x0b\xfa\x72\xc9\x2c\xbb\x7a\xc9\x43\x7f\x75\x02\x21\xae\xe0\xf5\xe2\xf1\x77\xff\x37\x9a\x24\x8e\x97\xa9\x40\xcc\x4a\x56\x81\xde\x5f\x64\xad\xaa\x4c\x3a\xb1\xd9\xc9\x73\xd3\x44\xa2\xc7\x9a\xa9\xf2\x20\xaa\xa7\xce\x40\x84\x34\x01\xac\x09\xd5\x88\xd7\x82\xba\x29\xab\x21\x61\xd0\xa7\x99\x6c\x1a\x52\x4a\x41\x0e\x6b\xf3\xc3\xa5\xe7\xe7\x07\x35\x04\xbd\x97\x9b\xdd\xf7\xc7\xc3\xb7\xe3\x61\xbb\x79\x3c\x0e\x98\xbe\xfb\xc8\x81\x86\x2c\x36\xb6\xb5\x2f\x2b\xbe\x8c\x7e\x88\x09\x8d\x11\x87\xa5\xd5\xda\x1e\x76\x47\x27\x0d\xb3\x2d\xbe\xef\xd7\xfe\x74\x1e\x00\xb7\x11\x94\xe8\x83\xb3\xf1\x1d\xf3\x50\x20\x51\x65\x56\xb4\xd1\xc0\xa4\x05\xab\x1b\x23\xb1\xfd\xa6\x7e\x2e\x2b\xc4\x2e\xb8\xde\xd1\x31\xe9\xc9\xfc\x1b\xe1\x5c\x21\x99\x68\x56\x2f\x85\x9e\x9b\x81\x3c\x25\xf8\xca\xd0\x4d\x5a\x5e\xbc\x75\x09\xd3\x48\x23\x49\xad\xb0\x40\xb3\x6d\x61\x4a\x27\x8f\x3b\xb9\x40\x4a\x89\x76\xbb\xe8\xe3\x7d\x77\xb6\xb1\xbc\xd4\x59\x91\x75\xd4\x8b\xfe\x98\x24\x90\x0c\x01\x94\xa3\xde\x87\x79\xbb\x1a\x4a\x46\x64\xd4\xb5\x8c\x3d\x7a\xe6\x92\x91\xc9\x0f\x65\x6a\x45\xdc\x57\x1d\x4e\x61\xec\x5a\x85\x2a\xe6\xc8\xcb\x76\x0f\x6f\xdb\xd3\x94\x84\x8b\x86\x8a\x93\xd4\x65\xd5\x7f\x3f\x97\x67\x6c\x0d\x58\x0d\xd0\x78\x1f\xe9\x1d\xd3\x50\x47\xc2\xb6\xab\xd9\x45\x35\xec\xda\xff\xb0\x1d\xb7\xdb\xb0\x43\xad\x62\xcc\xe8\xb5\xce\xe6\x4d\x59\xed\xc5\xe9\x9c\xc3\x23\x3c\x65\xcd\x44\x7d\xba\xb3\x60\x46\x11\xcc\x48\xe2\xbe\x78\x0f\x6f\x88\x86\x99\x7c\x17\x63\x6c\xaf\xd4\xb9\x2a\x7f\xbd\xff\xef\xea\x4f\x93\xa4\xfa\xe8\xda\x51\x10\x5a\xa4\xb0\xcd\x2c\xb4\x01\xa6\x0d\xc4\xbe\x4c\x86\x11\x81\x58\x88\x47\x64\x6a\xc9\xb3\x57\xa8\xe0\xc3\xa2\x94\x3f\xc7\xd5\x99\x6a\x47\x86\xf3\xfd\x71\xfb\x65\x26\xe8\xa5\x51\x18\x40\xd4\x69\xba\xba\xb0\xcc\xea\xd2\xd6\x36\x52\xeb\x88\xc4\xef\xc4\x79\x72\x63\x61\x14\xd1\x4e\x65\x6c\x24\xdb\x4b\xa3\x90\x1a\xb7\x0f\xb7\x53\x2d\x8c\xfd\xdf\xa3\x20\xc4\x86\xa5\xc5\xac\x43\xec\x07\x45\xb6\xbe\xff\x54\xe6\x70\x72\xb2\xc0\xdd\x05\x08\x41\x2d\xce\xd3\xd1\x20\x84\xb3\xfb\xbb\x96\x90\x4c\x38\x97\x3e\x7f\x47\x71\x6c\x62\x33\xc0\xf1\xde\x95\x55\xf3\x24\x9e\xe6\x08\xaa\x68\x94\x44\x1c\xa1\x99\xd2\x4b\x28\x8e\x16\x4d\x94\xc4\x31\xf6\x6c\x8e\x59\xc7\x68\x94\x24\x69\xd0\xf7\xd8\x2c\x8a\xec\x24\xae\xd4\xf2\x66\x32\x22\x34\x4a\x0c\x45\x2a\xb3\xbe\x23\x69\x2e\x33\xe6\x06\xd3\x80\x85\x56\xaf\xd2\xc2\x5a\xe7\xa1\xb3\x34\xa2\x71\x88\x59\x71\xef\x0a\xdd\xc3\xdb\x27\xa4\xb1\xfd\x9b\xa2\x84\xe2\x92\xc6\x14\x03\x4e\xc3\x8b\xa7\xf6\xc7\xf2\x70\xf7\x1a\x28\x91\x89\xd5\x75\x69\xb7\x9b\xda\x4b\x99\x55\x13\xd2\x32\x1a\x51\x29\x18\xf4\x7a\xbd\xfb\xec\x09\x89\x20\x27\x0b\xdd\x0d\x66\x81\xa5\x08\x45\x52\x6d\xdc\x07\x97\xd9\x74\xca\x30\x92\x60\x8e\xa3\x28\x4f\x59\x61\xf1\xdd\xd7\xdd\x60\x34\x62\x2c\x25\x8e\x12\xa8\xba\x2d\x5f\x91\xf4\x79\xfa\x96\x58\x1a\x10\x9b\x17\x99\x15\x44\xa0\x11\x53\xb1\xb2\x29\xfe\xd7\x9b\xb2\x3a\x80\x38\x6d\x9a\xe7\x89\xff\x10\x31\x1d\xa3\xf3\x6e\xf3\xb0\x73\xb9\xcd\x39\x9b\xe1\xbf\x28\x0f\x93\x80\xd8\xd9\xfc\x47\x7b\xfc\xd3\x2c\x08\x8d\x38\xa1\xc6\x22\x0e\x4e\x6e\xa7\x00\xcb\x3d\xa3\x67\xc3\x95\x88\xa7\x4c\x05\xae\xef\xc2\x32\x56\xda\x36\xc7\xd2\x82\xef\x86\x29\x6b\x1a\xa5\x61\x10\xbb\xe2\xdd\xdf\x2f\x22\x47\x9d\x48\x47\x7d\xf1\x29\x4e\x87\x46\x69\xc4\x30\xc5\x3c\x94\xed\xfa\x84\x45\x6a\x72\x93\x82\x03\x31\x33\xbd\x8d\x98\x6b\xd9\xaa\x72\xf9\x3e\x80\xed\xd3\x48\xca\x18\xdb\xf2\x5d\x50\x67\x69\xd0\xbb\x83\x8a\xe3\xf4\xf8\x39\xd4\xa3\x19\xb7\xcd\xd2\x48\x9a\x10\x3c\x69\x06\xee\x8f\x18\xfa\x0f\xcc\xdf\xac\x05\x55\x12\x90\x67\x6f\xf1\x63\xb1\xbd\x5d\x2c\x6f\x37\xc7\xc5\xf6\x71\xfd\xb8\x7b\x38\xee\xbf\x3f\x3c\xdc\xfe\xc3\xdf\x82\x26\x34\xd6\x43\x16\x86\xfb\x5d\x77\x88\x69\xac\x73\xcb\xcb\xfb\xdf\xf7\x87\xee\xaf\x9a\xda\xf6\x51\xcf\xc3\xf1\x50\x95\x26\x6b\xba\xc5\x06\x91\xa1\x7d\x67\xa2\x95\x08\xad\xca\x93\x6f\xca\xf8\x93\x6f\x03\x89\xd1\x41\xd7\xb9\x23\xf2\xdd\xa5\x51\xe5\x09\x96\xef\x1b\x14\x2c\x1a\xbf\x9a\x38\x64\x29\x7a\x1b\x45\xd9\x64\xe6\xfd\x00\x75\x93\x9d\xca\x62\x10\xb3\x77\xe3\xc0\x91\xd2\x34\xb7\x58\x20\xb6\xe1\xee\x73\x05\xf5\x73\x99\xeb\x89\x6a\x84\x3f\x09\x64\x60\x83\xe7\xd6\x98\x7c\x42\x1a\x46\xe3\x28\x60\x81\xf2\x32\xe2\xed\xb8\x75\xf6\x9a\xd5\x13\x54\x35\x8d\x23\x1a\xa2\xdb\x75\xa8\x2e\x75\xb3\xf9\xee\xab\x96\x34\x8e\x78\xcc\xb8\x45\x1e\xa9\xa9\xd6\x9e\x1b\x12\x07\x8a\x38\xdf\xf9\x51\x98\x4d\x31\xf1\xed\xe3\x38\x64\x68\x99\xcd\xa5\xd0\x0b\x6d\x7f\xdd\x1f\x4a\x29\xd2\x20\x1d\x6f\xb6\x3f\x36\x87\x6f\xbb\xef\xfb\x85\x57\x0c\xa2\x31\x61\x21\x53\x3e\x16\xa9\x9b\xea\xd2\x06\x75\x75\x77\x14\x42\xcc\x15\xb6\xf6\x7e\x79\xc9\x72\x3d\x50\xa4\xfa\xb3\x64\xdd\xe4\x1d\x51\x66\xb9\xdd\x90\x6f\x66\x40\x3e\xd5\x97\x37\xfd\x40\x6e\xd5\xc8\xb5\xa5\x7f\xf3\x5d\x52\xf5\x12\x1d\x1d\xf5\x3c\xe6\xf5\xa1\x31\x05\x8d\x91\xe7\x93\x68\xe0\x4d\xbc\xef\xce\x50\x74\x09\xb3\x98\x25\x01\x76\xb0\x7d\x1b\x89\x5b\xd0\x98\x87\x31\x8f\x7c\x62\xb8\xf9\xee\x68\x7a\xf9\x6f\xbd\xb1\x8b\x39\x30\x4c\x92\xad\xb7\x9b\xc3\xfe\x0d\xa0\x7f\x2b\xdc\x58\xe4\x5b\x17\x89\x3c\x58\x89\x0c\xff\xe0\xa3\xe7\x4e\x63\xab\x27\xb4\xcc\x4b\xab\x59\x38\xc2\xa5\x8f\xdf\x91\x10\x01\xfe\x64\x2e\x6a\x37\x91\x36\xcd\x33\xee\x65\xc3\xee\xa1\x76\x1c\xb5\xe9\xf5\xda\xe9\x26\x8d\xdf\x88\x90\xc2\x53\x32\xff\xfd\x02\xd5\x7b\x57\x3a\xa5\xb1\x0a\x62\x04\x9e\xba\x36\x95\x4e\xbe\xa0\xbf\x07\x15\x32\xe4\x8a\x7b\x2a\x73\x7d\x33\xe6\x03\x99\xff\xb0\x2a\x01\xfc\xb5\x55\xf5\x7e\x6e\xca\xaf\x55\x76\xb6\x22\x87\xe8\x33\x7e\x34\x37\xc6\x93\x5b\x4b\x16\x4a\x9f\x73\xee\x88\x4e\x07\x89\xe7\x58\x4b\x91\x46\x9e\x69\x13\x77\xc7\xf1\x4d\x80\xd4\x58\xbc\xbe\x13\x59\xe1\x3b\x43\xef\xef\xfc\xd9\x60\x08\xf6\x69\x36\x4f\xd5\xde\xf6\x41\xd4\xed\x0c\x1c\xe1\x6c\x69\x6c\x28\xf5\xe4\x63\x1d\x11\xf9\x7c\xb2\x30\x36\xcc\x52\xf4\x64\x58\xea\xed\x95\x51\x27\x8b\xd6\xa4\x32\x19\xfa\x72\x22\x1f\xee\x0d\xb1\x11\x34\x71\xf5\x87\xfd\x4b\x96\xe7\x58\x77\x5e\x95\xf5\xd4\x12\x19\xc1\x85\xe3\x98\xed\x7b\x71\x1f\x84\x7a\x69\xc3\x9c\x39\xd7\x28\x09\x43\x6a\xb8\xd3\x38\xbe\x6e\x0f\xa5\x49\x18\x13\x8c\xc4\x1d\x03\xc2\xa1\xc4\x38\x7c\x32\x26\x15\x98\xe0\xac\xf3\x4c\x41\x48\x67\x30\x03\x34\x09\xa5\xc2\x4e\xeb\xff\xb3\x2c\x23\x5f\xc5\x09\x06\x24\xec\xf3\xb3\x3c\x89\x8c\x55\x1c\xda\xff\xf3\x4f\xb5\x01\x68\x12\x87\x0a\x65\x9e\x2c\xd2\x70\x71\x7f\xf7\xc1\x45\x93\x98\x23\xc0\xe1\x9f\xd9\x53\x96\x5f\x5c\x55\x84\x26\x09\x57\xa9\x53\x4b\x40\xa6\x9a\xf9\xb4\xe4\xf4\x5a\x32\x42\xb8\xe5\xf2\x39\x2b\x0a\x78\x11\x7f\xca\x13\x44\x93\x04\x74\x60\x57\xa4\x2d\x37\x3c\x82\x50\xcf\x9d\x19\x4a\x48\x10\xa4\x91\x9f\xe0\x2b\x0f\x86\xa2\x09\xe1\xd6\x76\xd5\xcf\xe5\xdb\xb1\x43\x45\x1e\x7f\x64\x6d\x70\x91\x95\x97\xfa\x98\x15\xc7\x0e\x85\xe9\x4f\x32\x01\xce\xe6\x63\x7b\x5f\x5e\xca\x6f\xb6\x87\xc9\x9d\x40\xb9\x85\x23\xb6\xe3\x37\x85\xfe\x07\x08\x3f\x05\x13\x96\x58\x9a\x9b\xb3\xc5\x94\x83\xe3\x9e\x70\x47\x79\xcc\x30\x1f\x24\x65\x39\x82\x54\xd1\x84\x4b\xa0\x81\xa7\xc2\x74\x4c\x72\x8b\x42\xb7\x1f\xff\xa1\xac\xb3\x0f\xa5\xe6\x68\xc2\x4d\x8c\x79\x13\x87\x30\x75\x6b\x75\xbc\x70\x92\x94\x0a\x9c\x9f\x65\x81\x0a\xfc\xc3\x7b\x4a\xa5\x45\x32\x9f\xc4\xaf\x35\xfc\xda\xf7\xb9\x87\x24\x55\x1a\xf3\x7b\x0d\xd4\xcd\x57\x2b\xc2\x89\x75\xf8\xee\xb8\x66\x58\xc8\x70\xa8\xc5\x7b\x78\xbb\x2f\x9b\x29\x54\x86\x26\x22\x08\x10\xb6\xf2\xf3\xdb\xf6\xb0\xb9\xdd\xee\x51\xcf\x7b\xfd\xfd\x71\x20\x3b\x40\x13\x29\xa2\x04\x7b\xcc\x6c\x16\xd4\xdb\xa9\x44\xa5\x12\x01\xc8\xb8\xc5\x77\x7f\x04\x86\xa2\x41\x97\x1a\xf2\x41\xae\xb8\x3b\x2a\x99\xaf\x57\x55\x42\xc3\xf2\xbd\x0b\xe0\x57\x03\x60\x9c\x1b\xad\x63\x83\x86\xce\x36\xe3\xcd\xfb\xee\x6e\x28\x50\x2b\xb6\xde\x71\xcf\x4d\x9b\x46\x69\x62\x78\xa8\x46\x48\x88\x99\xf8\x2c\x31\x22\x81\xa1\x15\xb3\x04\x39\xe3\xa7\x20\x01\x89\xe3\xce\x2d\x2e\xdf\x71\x5f\xaa\xae\xa9\xc3\x29\x09\x43\x41\x59\x87\x3c\xf8\x56\xea\x7c\x1a\x0e\x91\x30\xa2\x1e\x10\xbd\x78\xc2\x46\xe1\x4b\x8f\xdb\xf9\x17\xf9\xb7\x1f\x96\x04\x24\x1a\x57\xc6\xd7\x8b\xf3\xf9\x9a\x1e\xac\xcb\xc6\x90\xd0\x44\xa9\xe8\x98\xd1\x6e\xca\x6a\x91\xe7\x37\x1e\xbd\xec\x3f\x22\x89\x42\x11\x0d\xaa\x74\x7f\x13\xea\xe5\x5c\x4e\x8c\x32\x89\x44\xaa\xbb\x34\xcd\xbc\xce\xed\x6f\x93\x33\x1c\x47\xef\x1f\x50\x64\x5d\x35\x92\x44\x60\x59\xc9\xdb\x5d\xa7\xae\xe1\x9a\x42\x9d\x92\x38\x91\x58\xa0\xdf\xff\xfe\x38\x74\x62\x48\xcc\x04\xb7\xfc\x26\x2f\x50\xab\xe7\xb2\xcc\x47\x87\x93\x84\xe1\x1c\xb5\xca\xe7\x7b\xc8\x6d\x5a\x1e\xe9\x4d\xfc\x1a\xfd\x80\xfe\x62\x58\xec\x74\x57\x23\x51\x9c\x76\xdc\xbc\x65\xd5\x77\xb0\x52\x42\x44\x82\x4e\xc5\x43\xd9\x38\x4f\xc8\x1d\xa0\xda\x60\x67\xc3\x91\x1c\xc5\x6b\x53\x4e\xde\x20\xd7\x09\x36\xfc\x1f\xc4\x49\xd4\x83\x0a\x13\x49\x19\x43\x69\x17\x51\x14\xe5\xa5\x50\xed\xe7\x29\x1c\x31\x1d\xf7\x43\x04\x20\x1d\x65\x63\x05\x7a\xff\xb1\x29\xda\xe8\xca\xdb\x5b\x22\x02\x2b\xd3\xd5\x1a\x97\x02\xf2\x7a\xd0\x9a\x40\x89\x8c\x22\xd5\x51\x2a\xde\xff\x52\xfd\xdf\xa9\x07\x38\xba\xa6\xc7\xfb\xcf\x37\x0a\x22\x53\x81\xd1\xca\xdd\xee\x6e\x77\x44\xea\x6b\x34\x12\x23\xf6\x6b\x4a\x54\x22\xb0\xa9\x1c\xd9\xed\xcf\xbd\xe8\xfd\xe4\x62\x8a\xdb\x1e\xb6\xca\x76\xb7\xfe\xec\x7c\x86\x47\x50\xd9\x39\xeb\x6b\x2d\x44\x89\x04\x59\x78\xbe\xef\xd7\xeb\xec\x29\xeb\xf8\x79\x28\x51\xc6\x8a\xf1\x1d\x9e\x61\x7b\x3a\x95\x55\x23\xf2\x6e\x56\x6b\x99\x60\x18\xe0\xa2\x83\x7a\x51\xf8\x78\xb9\x46\xc5\xb1\x8f\x45\xb9\xc6\xf7\x09\x11\x80\xf3\x5a\x6e\x86\x9d\x70\xc3\xf0\x93\x18\xa6\x11\x90\x2f\x2f\xef\xdb\xa2\x29\xf7\xef\x85\x1e\x10\x9d\x52\x62\x8c\x0e\xad\xca\x15\xe6\xa6\x67\x51\x32\x94\x06\x31\x23\x0e\x7a\xd7\xfa\x59\x2b\xd1\xc0\x53\x59\x5d\x65\xd2\xdc\xe8\x90\x03\x96\x86\xb7\xab\xdd\x1b\xc0\x4b\xdc\xd1\x7c\x51\x1a\xf1\x20\x74\x16\x65\x99\x35\xaa\xcc\x8a\x2b\xd5\x1d\x4a\x23\x2d\xbc\x54\x6f\x17\x94\xf4\x82\x85\xa3\x25\x49\x63\x93\x60\x50\xbe\x3f\xe7\x59\xb3\xf9\xcf\x65\xd2\xe7\x49\x69\x12\x71\xcc\x65\x3c\x94\x65\x8e\xe4\x43\x4d\xf3\x81\x0c\x1e\xa5\x49\x9c\xc4\x81\x8f\xed\x1a\xd8\xb4\x11\x12\xe2\x6f\x93\xe9\x45\x65\xaa\xfa\xee\x8c\x21\x37\xc8\x2c\x56\xc1\x9d\x45\x92\x88\xba\x7e\x85\x11\x53\xf4\xf8\x89\x08\x50\x4c\x3b\xbb\xac\x08\x9a\x8a\x63\x57\xc2\x63\x7d\x09\x8f\xfd\xfb\xb7\xe9\x0f\xf3\x21\x95\xaf\xff\xdf\xce\x74\x50\x2a\x09\xbe\xfd\xc7\xec\x0c\x43\xa2\x0e\x4a\x59\x20\xd5\xa0\xb1\x69\x9d\xd5\xe7\x4b\xf3\xd7\xe4\x38\x28\x65\x61\x9a\xba\xd4\xfa\x4a\x9c\xef\x3a\x62\x00\x4a\x59\xc4\xd1\x43\x32\x00\xbd\x26\x08\xa5\x8c\x04\x98\x07\x74\x82\xbd\x59\xd3\x17\xd9\xbf\x7c\x5c\x16\xa5\x8c\xa4\x18\x95\x21\x7c\x34\xab\x6d\x60\xf6\x00\xd5\xb8\x65\x65\xfc\x36\x99\x66\xb4\xe7\x65\x7e\x84\xa7\x36\x4e\xec\x48\xd2\x07\x96\x8c\x72\xc2\xf1\x29\x9e\x2f\x08\x93\x19\x42\x3a\x28\xa7\x01\x6e\xaa\x0f\x37\x7f\x1c\xa0\x6e\x06\x36\x92\x72\x16\x63\x1f\xb1\x7a\x16\xd5\x13\x3c\x54\x65\x53\xaa\xb2\xdd\xcb\x3e\x37\x59\x34\x0d\x39\x9e\x27\xb4\x76\x0a\xb9\xf3\x0f\x90\x26\x5a\xdb\xda\x92\x45\x4e\x20\xf9\x7d\xaf\x02\x4c\xa9\x88\x6d\xce\xb2\xa7\x5d\x9d\x6c\xe3\x54\x9a\x50\xf6\x8d\xef\xab\x70\x32\x99\x55\x22\xb9\x25\xc9\x29\xc6\x3e\x0e\xd5\xb1\x85\x1e\x9c\xc5\xfb\xee\xd2\xfc\xad\x94\xf3\x51\x18\xd5\x84\x86\x58\xec\x13\x8d\xa5\x79\xf3\xf7\xa6\x53\xab\xb7\x30\x30\xc9\x0e\xed\xd4\x8d\x50\x49\xec\x32\x42\xb6\x8e\x84\x21\x55\x55\xfe\x7a\xf7\x60\xb7\xb9\x40\x95\x02\xb1\xf5\x30\x55\x9e\xda\x89\xba\x47\xc1\xa4\xd6\x9c\x0c\xda\x3c\xa6\xa7\xc8\x04\xe7\xe2\xc3\xa5\x99\xed\x95\xa0\x14\x20\x44\x3f\xad\x80\x37\xef\xcd\xdf\x86\x57\x98\xfa\x8f\xfe\x1d\x5d\x8b\x05\xd4\x2e\xb5\xbb\xf7\x75\xa6\x80\xf9\xda\x37\x0b\xb8\xc4\xf4\xd0\x09\x1a\xa1\x45\x23\x06\x7e\x33\x0b\x94\x44\xce\x97\x12\x33\xb4\x0b\xff\xe7\x30\x20\xd8\xc8\x0b\x8e\xa7\x79\x00\x2e\x1f\x76\xda\x50\x94\xaf\xb2\x1e\x9d\xe5\xff\x1e\x30\xc6\x51\x16\xb2\x10\x6b\xdd\x77\xdb\xfb\xed\xdd\xf7\xbb\x23\xc2\x38\x17\x77\xbb\xef\x5e\x79\x95\xb2\x38\x08\x63\x07\x2a\xfb\x76\x96\xf7\xa5\x86\x76\xef\x73\xc0\xdf\x59\xd8\x82\x3f\x91\x58\x18\x48\xed\x54\x04\x37\x95\x8a\x02\x8c\xb0\x2d\x3a\xbd\x37\x41\xac\x8d\xd8\xb9\x23\x8f\xb9\x02\x59\x77\xd9\xeb\xa9\xde\x27\x65\x89\x14\x1a\x3a\x0d\xc9\x59\x05\x52\xca\x48\x62\x73\x73\x76\xa2\x2f\x2a\xf0\xe1\x27\x23\x26\x21\x5d\x9c\xfd\xbd\xca\x26\x27\x52\x62\x9b\x34\xac\x41\x1a\x74\x21\xff\x49\xa9\x68\xde\x20\x32\x16\x25\x18\x65\x7e\x2b\x9e\x5a\x53\xb1\x1f\x70\x85\xcf\xbe\x3f\x16\x49\xdc\xf0\xf6\x38\xf7\xb3\xff\xc2\xa1\x74\xae\xd6\xff\xe7\xef\x27\x29\x1d\xe6\x92\x17\x8f\x87\xc9\x03\xf3\x58\x62\x4e\xc1\xe2\x63\x37\xff\x09\xb9\x5d\x13\xa1\xdb\x41\x42\x3e\x5e\xe2\x8c\x53\x01\xbd\x95\xc1\x52\xa8\xb8\x12\xfd\x77\x63\x53\x4a\xac\x44\x75\x8d\xd1\x17\xe8\xe5\xfb\xfc\x9a\x64\xc2\x51\x70\x59\x57\x0b\xb7\x68\x94\x84\x1c\x4e\x04\x37\x54\x47\x21\x46\x83\x8f\xbb\xdb\xcd\x1f\xfe\xb3\xea\x18\x52\x74\xc8\xe7\xc8\xfd\x28\xd3\xda\xf8\x36\x9a\x45\x85\x8c\x08\x93\xd7\x00\x2c\x8d\x42\x5f\x07\x6d\xac\x8c\xac\x9a\xa9\xbf\x33\x43\xa9\xad\x88\xb4\x4e\xd2\xce\xac\x27\x1a\xa7\x94\x19\x93\xd8\xb5\x7b\x76\x89\x45\xfb\x77\x1e\x84\xda\xeb\xab\x2f\x45\xd3\xe4\x23\xec\x2d\xe5\x81\x08\x3a\x81\x97\xbc\xc4\x98\xe3\xce\x7a\xa7\x30\x80\xa5\xcf\xed\x89\xbf\x8d\xaf\x63\x6c\x8e\xd4\x97\xfb\x1d\x0f\xef\x7c\x5d\xc8\x9d\x13\x86\x01\x92\xd3\xd8\x54\xcc\xf1\xa6\xac\x8e\xc3\x3b\x0f\x23\x4d\xac\x16\x6d\x53\xb5\xe6\x04\xcb\x00\x43\x72\x71\xca\x43\x12\xa2\xc1\x79\x28\x9f\x3e\x9d\xe0\x3c\x64\x96\x0b\x75\xb3\x5f\x2d\xaf\xd8\x74\x28\x8f\xc2\x18\xc1\x96\x9b\xc3\xb7\xe3\xe3\x66\xb5\xd9\xfe\xd8\xac\x8f\x77\x9e\x15\x9e\xf2\x28\xd5\xd0\xd3\x77\x6e\x9a\xe7\x99\x54\x1a\x8f\x8c\x85\x07\x7c\x45\xc9\x82\xec\x74\x39\x2d\xa1\x39\x0e\x18\xca\x29\x8f\x43\x8e\xcd\x70\xcb\xbb\xed\x6a\xb7\xf0\xf2\xfe\x0f\x55\xf9\x54\x89\xd3\xc9\x8f\x4a\x22\xc2\xfb\xa9\xee\x41\xad\xa3\xe7\x49\x78\x92\xc8\x89\x9c\x8a\x2d\xc4\x79\x2c\x7e\x37\x71\x79\xa2\x18\xa6\x50\x0e\xa2\x7e\x59\x95\xa7\x33\xea\x3a\xda\xf6\xe3\xf1\x03\x50\x42\xb1\x74\x8d\x33\xd9\x46\x1d\xf0\xb6\x79\x5c\x45\xc1\x27\x49\x3c\x4e\x39\x23\x4e\xb3\xc3\xb2\xd0\x39\xe4\xc1\xe4\x15\xb3\x20\xf2\x7c\x64\x87\x2c\x87\x35\xd4\xaa\xca\xce\x9d\x0d\x1d\x32\xdb\x51\xce\x68\xca\x1c\x23\x27\xd6\x2f\xfd\x9b\x61\xdc\x56\x62\x6c\x53\xb6\x07\x00\xd4\xdd\xe1\xd4\x36\xa6\xa9\xf2\x74\xca\x5c\x28\xee\x7c\x95\x91\x31\xe1\xcc\x84\x48\xba\x99\x83\x69\xc8\xc4\xb7\xe6\x69\x4c\x11\x36\x6c\xf1\x27\xfe\xda\x29\x48\x1b\xc7\x88\x46\x3d\xef\xa1\xd0\x7f\xc2\x4b\x4b\xb9\xe0\x01\xe6\x05\xac\x3c\xd3\x22\xcf\x0f\xe5\x39\x53\xdd\xcd\xca\x58\xa1\xff\xd5\xc3\x48\xb2\xb2\xf0\xaa\x9b\xf3\xba\x44\xfe\xcc\x44\x90\xde\xa5\x5c\x95\x79\x59\xa1\xe8\x54\x77\x65\x1a\xc5\x61\x4f\xe9\xb0\xd5\xfd\x6f\xa6\x21\xd2\xaf\x15\x97\xd3\xce\xac\x41\xe5\xa2\x02\x6d\x3b\x62\x77\xc6\x40\xfb\x9b\x0f\xb9\x28\xfa\xf1\x32\xb2\xb8\x22\xc4\x2d\x0d\x05\x7a\xb7\xae\x8b\x77\xf2\x95\x15\x0f\xb1\x5f\x65\xb5\xbb\xbb\xdb\xee\xf7\xad\xbf\xb5\xde\xfe\xf0\x97\x53\x9a\x09\xf0\x9b\xe0\xdf\x2f\xa5\xc7\xac\x53\xae\x59\x88\x0b\x6c\x20\x6e\xe7\xb0\xbc\xe3\xeb\x43\x12\x02\x9f\x32\x0a\x4d\xed\x3f\x07\x05\x98\xcb\xac\xe0\xb5\x7c\x01\x5f\x37\x5a\xda\x62\xd3\x28\xdb\x31\xbe\xba\x89\x23\x4b\xd0\xe4\xcb\x39\x77\x59\x81\x2b\xfd\xa6\xac\xee\xe1\x97\x15\x1f\x9f\x0f\xda\xb9\x61\xdc\xa1\xc0\x1e\xcb\x3c\xbf\x2b\x3f\x2e\x79\xf8\x13\x24\x43\x7f\x68\x20\xaa\xc2\xdc\xeb\x48\x03\xa6\xc2\xbe\xa7\xa7\xfd\x24\xd0\xdc\x66\xa2\x2e\x3f\x6c\x62\x1c\x99\xbb\x34\x4c\x58\x27\xc5\x69\x9b\x38\x26\x61\x6b\x1a\x12\x96\x38\x2e\xf9\xd2\xdc\x66\xbe\xeb\x82\xa6\x11\x81\x01\x6b\xb4\x53\xbb\xf2\x49\x95\xde\xaa\xa4\x11\x8f\x62\x07\x5d\xfc\x91\xc1\x1b\xe2\x29\x06\x84\x31\xed\x00\x91\xf4\xe8\x21\x57\x61\x19\x2e\xfb\x71\xd7\x90\x3b\x2b\x66\x9a\xf8\x95\x0f\x75\x7d\x57\x16\xf0\x3e\xce\x38\xa7\xb1\xe4\x96\x57\xa6\x9d\x8e\x0e\x23\xde\x1d\x4c\x38\x20\x2c\xd4\xde\xbe\xaf\xf1\xfc\xd5\x4a\xa5\xbb\x08\x09\x3a\x5e\x03\x0f\x6b\xd3\xdb\x42\x67\xaa\xc3\x4c\xa7\x84\xc4\xb1\x17\x72\xbb\x05\x51\xc3\x4c\x63\x1a\x4d\x89\xc3\xe5\x75\x2d\xce\x1f\xd0\x86\xfb\xe1\x3a\x65\x3d\x3d\xe4\xe3\x15\x63\x3a\x4d\x69\xc4\x93\xb4\x7b\x3c\xf7\x62\x1e\xe1\x9c\x43\x91\xd5\xcf\x6d\xe8\xb2\x6f\xca\x4a\x4c\xd3\xe8\x29\x8d\xa4\xef\x7f\xec\x5d\x0c\xa7\x4a\x3d\xfd\x05\xcd\xb0\x4f\xdf\xee\x3e\xbf\x67\xcd\xb4\xa4\x30\x7c\x67\xdd\x77\xa3\x31\x67\x91\x5f\xda\x0f\x56\x32\x12\x91\x41\xfe\x85\x51\x96\xf8\x9e\x5f\xec\x81\xc9\xea\x66\xc0\xa0\x4a\x53\x16\xf1\x58\x78\xbe\x4a\x04\x36\x40\x75\xdb\x71\x94\xd2\x94\x25\x11\x4a\x35\x40\x3b\x5f\x26\x33\x82\x13\xbb\x7d\xa3\xce\x96\xa8\xb4\xd5\x87\x1f\x20\xbd\x53\xce\x88\x05\x2d\xb7\xe1\xc0\x27\xbb\x59\xca\x53\xfb\x5d\x4f\xef\xfb\xa6\x2a\x8b\xa7\x6f\x1d\xf5\x02\x4d\xb9\x62\xc6\xf4\x5c\xca\x95\x9a\xbc\xe4\x34\xe6\x96\xe0\xb0\xf9\xf5\x0d\x44\x77\x5a\x4a\x2d\xfa\xe9\xe7\x1f\x5f\x87\x29\x8f\x54\x30\x85\x4f\x0c\xed\x56\xfc\x13\x64\x9d\xf5\xf7\x2b\x43\x62\x10\x20\x00\xea\xf9\x9f\xdf\xbb\xbf\xa6\x36\x43\xd0\x4e\xba\xe5\xfb\xd7\xaa\x2c\x4f\xdd\x21\x4d\xd0\xb2\xdf\x21\xf8\x61\x96\xed\xc9\x6e\xb3\xa3\xf9\x29\x4d\x14\x3b\x26\x93\xb2\x6a\xd6\xe5\x45\xe6\x80\x3c\x25\x1d\xd1\xe7\xbf\x27\xdd\xad\x34\x55\x61\x0c\x56\x6b\x16\x79\x33\x66\x04\x14\xdc\x40\x1d\x52\x83\xbd\x3f\x97\xe6\xb9\x6c\x83\x8a\xaa\x6b\x80\xa6\xa9\x56\x0c\x85\x06\xee\x96\x9b\x79\xd2\xbd\xf1\xb5\x20\xe4\x36\xdc\xb6\x0d\xf2\xdf\xb2\x66\x18\x5b\xa6\x10\x51\x7c\x0e\x9c\x7d\xe8\xbe\x2c\xf4\xa4\x04\x9b\x82\x88\xb0\x12\xaa\xab\xf2\xdc\x6e\x8b\x33\x5b\xb7\x1b\x69\xa8\xcd\xbf\x9e\xca\x02\x1a\x51\xbd\xef\x2f\x67\xa8\x86\x40\x8a\xd4\x08\x49\x31\x61\xbd\xfd\x63\x06\x6d\x9b\x1a\x13\x23\xeb\x2c\x9a\xf6\xcd\xfd\xfa\x18\xb9\x13\x45\x10\xa7\xb6\xa0\x88\xc2\xd7\xa3\xe8\x59\x04\x60\x8b\xf5\x96\x95\x04\x8b\xa7\x23\xa0\x93\x08\x43\x81\x9b\x64\x03\x75\x73\x23\xb2\xfc\xe1\x92\xe7\xad\xb3\x55\x5e\x9a\x61\x95\x49\x84\x91\xd5\x02\xaa\xa1\xe9\x78\x63\xfb\x3c\xc6\x5c\xda\xc0\x2f\x63\x11\x11\x65\x09\xc0\x9b\x7c\xec\x32\x89\x88\x05\xa1\xaf\x9f\xbe\xd9\x6e\x07\xff\x7b\x91\x08\x94\x03\xbd\xd8\xe7\xf2\x90\xc8\xd1\x5b\x11\xb1\x01\xac\xf6\x1e\x95\x28\xec\x9e\x3c\xb1\x52\x82\x04\x51\xe4\xfa\xb1\x30\x4f\x6f\x3d\x93\x9b\xac\xaa\x9b\x41\x60\x20\x48\x94\x06\x43\x98\xe0\x4f\x10\xe7\xb2\xf8\x53\x23\xef\xcf\x4e\x02\xee\x72\x05\xfb\x4c\xc3\x12\x9a\x0f\xf4\x7a\xdb\xa1\x21\xfe\xd0\xdf\xca\xec\x13\xbd\x3b\x3f\x98\x70\x2c\x01\x1c\x9f\xa0\xc0\x87\x7b\x14\x85\x2e\x4f\xcf\xa2\x7e\x76\x98\x8d\xf1\x78\x9a\x8a\xd4\x19\x3c\xaf\x5c\xb6\xef\xa9\x9e\xa8\x60\xdc\x36\x38\x20\xbb\x82\x23\x25\xbd\x8c\xda\x6e\x3f\x80\x52\x8c\x97\x8e\xe0\x10\x24\xae\x8f\xfa\xf6\xa2\x5e\x3a\xac\xd3\xe4\x76\xd2\xc8\x78\xdd\xed\x75\xa9\x7c\x1f\xcc\x1c\xa6\x40\x08\x4e\x90\x5f\xf1\xd8\xba\xcf\xe3\x29\x2a\xa4\xed\xe7\x35\x96\x74\xcc\x29\x18\x0c\xbb\x79\x84\x90\x76\x8a\x95\x45\xfe\xee\x2b\x10\x2b\x51\xac\xcb\xc3\x73\xe6\xb7\x57\x21\x23\x19\xc4\x9d\x3e\xd4\xbc\xad\x16\x32\x91\x21\xeb\xc4\x62\xca\x32\xaf\xfb\x44\xbf\x90\xba\xd3\x6d\x5f\x0e\xd3\xac\x42\x27\x96\x4d\xe0\x19\x51\xc4\x88\xee\x1d\x5f\x56\x0b\x82\x3c\x89\x03\x9c\xac\x80\x30\x40\x00\xe3\xf7\xfd\xfa\xb8\xdf\xdd\x1c\x8e\xab\xc5\x43\x77\x2c\x01\xc4\x32\xdf\x1c\x8e\xbb\x87\x8d\xad\x0e\x2f\x6e\x8f\x37\xdf\x3b\x6c\x95\x00\x62\x09\x2f\x7e\x17\x2f\x9f\x6c\x3e\x02\x9c\xb4\xa1\xed\xe3\x6d\xf7\xaf\xc5\xd3\x87\x89\x59\x01\xe0\x92\x5e\x22\x87\xf5\xa5\xfd\x4e\x9e\x9e\x17\x46\x6c\xca\x54\x98\x20\x40\x8e\xb7\xd6\xaf\x45\x26\x8f\xc5\xf4\x99\x0d\x67\xc2\x7d\xfd\xbd\x78\x05\x6d\xf9\xd7\xa6\xee\xbd\x30\xda\x38\x27\x37\x87\x21\x8d\xc3\xe7\x2b\xc3\x40\x14\x3a\x7b\x24\xaa\xa7\xe3\x24\xfd\x2b\x03\x16\xa3\x2e\xcf\x5b\x56\xb8\x14\x73\x57\xbe\x93\x41\xbb\x71\x5b\x8b\x50\x56\x1b\x9d\x35\xf5\xc0\xf0\xc8\x40\x59\x02\x9d\xcb\xf9\xa9\x42\xe6\x03\x30\xd9\xaf\x4e\x3f\x75\x0f\xaa\x74\xee\x3a\x1f\xe6\x1d\x64\xa0\x14\xee\x95\x9b\x5f\xcd\x8c\x96\xa8\x1f\xa4\x55\xe0\xb9\xad\xb2\x26\xfb\x2f\x14\xb7\xf0\x0a\x57\xba\x92\x7e\xb4\xb1\x89\x3f\xd7\x45\x3f\x6c\xf2\x1d\xed\xb8\x32\x4c\x00\xcd\xe8\x3e\x2b\x9e\x2e\xb9\xa8\xb2\x06\x37\xec\x38\xf1\xcf\x14\x92\xd0\xf3\x31\x6f\x90\x9e\x6b\xe8\x54\xcb\xd0\xd8\xda\xcc\xea\x71\xf7\x73\x8d\xed\x2c\x96\x02\x2c\xb4\x6d\x2d\x7e\x58\x14\x70\x6c\xf7\x38\xaa\x1c\x44\x65\x9b\x80\x44\xbe\x98\xc9\x78\xce\x4e\x44\x19\x85\xda\xb8\xba\x77\xbb\x11\x79\xb1\xdb\xf1\x33\x47\x4a\x5b\x2d\x5d\x8b\xac\x6f\x06\x1b\xb2\x8c\xa3\x14\x83\x1b\xa4\x5b\x6f\xd7\xd8\xce\x2c\xcb\xb2\x03\x62\xcb\x38\x06\x07\x77\xb9\x18\x93\xc3\xfd\x1a\xae\x90\x5c\x32\xd6\x09\x46\x8b\x47\xe1\x9b\x98\xe6\x6f\x36\x09\x6c\xd1\xd9\xab\x00\x14\x5a\x94\x93\x5b\x4d\x80\xa5\xca\x33\x06\x5a\x6a\x39\xf4\x51\x97\xef\xbd\x52\xcb\xe4\xaa\x84\x11\xe4\x8f\x79\xc9\xf2\xdc\xee\x6a\x93\xdb\xa3\x81\x15\x3a\x3e\x65\x45\x73\xb7\xf8\xc7\x27\xeb\x5a\xd2\x84\xa3\xb6\xf7\xd7\xcd\x7d\x70\x3c\xec\x0e\x8b\xdb\xe3\x6a\x90\xf7\x96\x94\x18\xec\xd4\x5b\x6e\x0f\x7f\xec\xfe\xd8\x75\x7f\xa6\x81\xe5\x20\xcf\xa0\x0a\xa7\x76\x54\x52\x1e\x25\x3d\xda\xee\xa7\xa8\xaa\xac\xac\x56\x3d\xca\x45\x52\xc5\x48\x1f\x0a\x59\x8b\xf0\x3f\x46\x42\xed\x35\xe4\x30\x91\xfb\xbd\xf0\xf8\x29\xdd\x1b\x9b\xb1\xb7\x39\x72\x1b\x24\xe3\x21\x42\xe9\x90\x8f\xad\x8d\x4f\x06\xbc\x70\x54\x32\xcd\x11\x84\xfe\x63\xfb\x70\x74\x75\x01\x7f\x88\x53\xcb\x1b\x69\x65\x65\x76\xe6\x0e\x44\xb3\x2d\xbe\x17\x99\x2a\x3d\x97\x3d\x95\x9c\xb1\x38\xf5\x5c\xcc\x0e\x2e\xeb\x13\x3e\x5d\xa8\x2a\xb9\x10\x48\xac\x52\xa3\x41\xb0\x2a\x0f\xa2\x81\x81\x7d\x97\x29\x35\x01\x19\x10\x3d\x76\x52\xfe\x96\x00\x66\xfc\x52\x04\x0b\xb1\x99\xf6\xe7\xf6\xf0\x6d\xfd\xb8\xf8\xe9\x2f\x22\x44\x8a\xd9\xc8\x85\xd6\x58\x47\x9f\x64\x83\xa5\x50\x31\xb6\x8d\x94\xaf\x50\x35\xcf\x55\xf9\x36\xca\xe9\x49\xa1\x18\xba\x77\x79\xa9\x5e\x96\x5d\xaf\x9c\x6c\xd7\xbc\xa3\x54\xaf\xb2\x27\xcc\x81\x96\x97\x42\x0f\xd9\x10\xfc\x48\xaa\x42\x47\x83\xb0\x14\xf5\x0c\x7f\x20\x95\x5a\x5a\xc4\x3b\xb2\x2d\xc7\xc7\xf3\xa0\xc6\x28\x4d\x4c\xf0\xf6\xad\xd4\x20\x0a\xa4\x6d\x0b\x55\x9e\xae\xf5\x46\xff\x6a\x35\x60\x62\x24\x4d\x42\x49\xcf\xd0\x31\x01\x4c\x49\x03\x11\x36\x7f\x74\x82\x39\x56\xf0\xd4\x1d\x56\x01\x11\xc2\x8a\x9d\x23\x20\x03\x13\x03\xdd\x31\xa1\xb0\x36\x63\x97\xc2\xbe\x11\x5d\x4a\x50\x85\x11\x4b\x7a\xe2\x76\x2b\x97\xd2\x1d\x4b\x99\x77\x79\xa6\x50\x35\x3f\x42\x1b\xdc\x04\x7e\x96\xd5\x0b\x54\xad\x8b\x31\x2d\x43\xfd\xa5\x27\x57\x51\x62\x7f\xa9\x3d\xba\x2d\x16\x55\xd5\xa7\xef\x7f\x1b\x9f\x38\x0d\x46\x54\xc4\x14\x42\x43\xbf\xdf\x6f\x0f\xfb\xec\x74\xce\xc1\xbd\xb8\xaf\x16\xe5\x3c\xb9\xe3\x38\x08\x50\x50\x06\xdd\xf4\x36\x46\xbe\x69\x8d\xc2\x5c\x9b\x88\x8a\xb9\x8c\x95\x27\xd8\xb9\xd4\xa3\xf4\x8e\x8a\xd3\x58\x50\x5f\x0a\xcc\xfe\x0b\xcb\x76\x55\xfb\x17\x97\x10\x85\xf5\x15\x51\x81\xe3\xc4\xb2\xc0\x87\x59\xec\x86\x4a\x8c\x42\xd5\xed\xa7\xd2\x17\x07\xc6\xeb\x49\x91\xd0\x12\xc1\x3d\x0b\x54\x0e\x2e\x2c\x50\x75\x10\x9f\xf9\x71\x2c\x8d\x86\x35\x86\xd5\xe5\x5a\x35\x83\x2a\x0a\x0a\x6b\x5f\x96\x03\xdb\xf5\x9d\xce\xe6\xfb\x14\x35\x09\x73\x24\x5b\xf7\xf0\xf6\x28\xfe\xfb\xd7\x42\x08\xc5\x22\x86\x55\x1b\xd3\x4e\x8b\x6e\x86\xb2\xc8\x0a\xb4\x16\xf0\xab\xb9\xa9\xca\xa2\xb1\x60\xb2\x85\xfe\xbf\x8b\x05\xea\x3e\x8a\x26\x2b\xbb\xd1\x86\x21\x65\xe1\x90\xa5\xc3\x72\x9c\xf9\x2f\xb7\x28\xb4\x55\xee\x18\x48\x88\x50\xc5\x09\x43\xbc\x8c\xbc\xbc\x5b\x86\x90\xa2\xd4\x7e\x09\xab\x54\x06\xd8\x05\xf6\x13\x8a\x9f\xa2\x18\xa0\x04\x94\x88\x25\xc2\x10\x3c\x95\xa3\xf7\x09\x3e\x2b\xd0\x28\xa1\xac\x3a\xd0\xcf\xe7\x71\xf9\x41\xc9\x34\xc4\x5e\xc6\xcd\xe1\xdb\xe6\xb1\xb5\xdc\xc7\xd5\xee\xfe\xf0\xb8\x5d\x7e\xe9\x06\x08\x44\xc1\xda\xf2\xde\x8d\xc8\x6b\x70\xc4\xbb\x83\xcb\x4b\x07\x9c\x43\xff\xdd\xca\x3d\x8c\xf2\x3a\x4a\x9a\x94\xb3\x09\x8f\xf2\xd7\xaa\xbc\xcc\x77\xba\x28\xc5\x68\xea\xe9\xe6\x51\xb2\xf7\xdd\xaa\x27\x4f\xa6\x9b\x4a\x03\x84\x6c\x1f\x0b\x78\x73\xbc\x05\xe3\x69\xa1\xb9\xd5\x31\x5d\xe4\xfd\xae\x82\x0a\xd3\xbb\xe2\xda\xe5\x9d\xf5\x07\x95\x36\x96\x11\xa3\xfd\x04\x7f\xcd\xe7\x52\xc0\x05\x75\x7b\xd9\x47\x0d\x16\xdd\x48\x85\xee\x84\x4b\x02\x66\x0d\x5c\x43\xc5\x15\x08\x91\x92\x01\x83\xdf\xd0\x8d\x54\x26\xa4\xc4\xa7\x03\x2b\x99\x8d\x2a\xcd\xd3\x55\x67\xb8\xb1\x32\x5c\x56\x8a\xbf\x2a\xb3\xe9\x0b\x35\x26\x40\xef\xca\xcd\x86\xc5\x1f\x7e\x36\x1c\x1f\x1e\xb7\x3f\x16\x87\x4d\xf7\xb3\x86\x84\x61\x07\x18\xc3\x9c\xd1\x4d\xf6\x0a\x33\xc5\x34\x1d\x90\x00\x91\x7f\xa6\xdd\xf0\x6e\xcb\x4e\x93\x87\xea\x80\x86\xc2\x3d\xd8\x60\x07\xd7\x81\x14\xa1\x25\xfc\x75\x95\xd8\x0f\x28\x08\x7f\x9b\x0a\x2b\x52\x1d\xa6\x01\x38\x25\xb7\x9f\xdd\x8a\xd1\x91\x54\x64\x24\x85\x89\xdb\xee\xb6\x30\x65\x47\xd6\x72\xf5\x69\x74\x9c\x06\xd2\x01\xf4\x67\x1b\x9e\xfd\x30\x61\x9b\x18\x6c\xb8\xe0\x27\xc8\xe3\x20\x23\xe2\x5f\xbf\x4e\x42\x41\x1c\x16\xed\xfe\xe6\xb0\x1a\x92\x54\x7f\x5c\x8e\xd5\x09\xa1\xa1\x4f\x15\x1d\x83\x23\x14\xf5\xa5\x82\xb5\xed\xa3\x41\x0d\xc8\x3d\x34\x87\xd2\xae\x4b\x7f\x8a\x62\x83\xe4\xb3\xa3\xd5\x45\x15\xa8\xf1\xf2\xd0\x89\x96\x18\xc2\x34\x20\x4e\xab\xf2\x74\x16\xc5\xfb\x20\x51\xab\x49\x92\x18\xdf\x58\xd2\x8c\x90\x42\x9a\xc6\xc6\x72\x4f\x65\x27\x4c\xea\xec\x64\x9e\x59\x82\x97\x21\x9d\x8c\xa6\x49\x88\xcc\x8f\x47\xec\xa2\xc2\xf6\x14\xd7\xf2\xdb\x5d\x48\x42\xe2\xa8\x2d\xb0\x6e\x05\xad\x57\xf7\x02\x1f\x34\x6e\x6b\xce\x62\x44\xcb\xf9\x17\xbd\xd3\xda\x96\x65\x67\x57\xa2\xe6\xd2\x4a\x0d\xb6\x21\x70\x79\xea\x76\xcf\x39\x9b\xa3\xb9\x09\xb1\xc9\xcd\x21\xc9\xa0\x68\xb0\xdd\xe5\xa7\xa5\x5e\xb6\x20\xd8\x61\x1f\xcb\xb0\x6a\xe5\x2e\x91\xc6\xa4\x47\xdd\x64\xff\x85\x23\xf2\x9c\x8c\xbf\xae\x17\x59\x6a\x47\x1b\x5f\x77\x71\x80\xc4\x45\x51\xbf\x41\xf5\x3b\x28\x25\x5e\x22\x42\x27\x0b\x29\xa5\x81\xec\x21\x29\x87\xe7\xd6\xac\xcc\x24\x77\x6d\x76\x98\xfb\x93\x52\x85\x80\xad\x7b\x78\xeb\xfc\xcc\x19\x85\xdc\xc9\x7b\x13\xa1\x25\x5f\xf5\xfb\xb3\xce\x6a\x04\xf3\xe9\x59\xb6\xd2\xc9\xb9\x4c\xa7\x76\xd6\x94\xd5\x93\x28\xb2\xff\x7e\x80\xa2\xd2\x42\x4a\xe3\x1c\x3a\x6b\xbc\xf7\x43\x3d\x13\xaa\x25\x09\x59\xd4\xd9\xbd\x97\x81\x21\x18\x5f\x47\xa5\x0c\x41\xb0\x5e\x40\xc7\xf2\x3f\xf9\x8f\xdd\xcd\x34\x4d\xb9\x0c\x7d\x1b\x62\x55\x37\x9e\x07\x6b\x53\xe8\x75\x5f\x5f\xd0\x5a\x01\xe6\x87\x7e\x66\x79\x3e\xd8\x76\x35\x04\x31\xae\x5e\xbb\xbb\xf9\xed\x51\x1b\x01\xde\xf5\xfa\x0a\x85\xa8\xca\x35\xbc\x22\xec\xa2\xce\x9e\xc6\xab\x0d\x82\x08\xb0\x55\x30\x2b\x5e\xa1\x68\xf7\xb4\xdb\x01\xdf\x35\x85\x30\xd0\x18\x1d\x6c\x57\x3b\xcf\xa4\x51\x8f\xd2\xca\x10\x46\x1c\xb1\x38\xcb\xcd\x08\x71\x09\x21\xe3\x58\xb7\x3f\x74\xfc\x21\x10\x0a\xab\xd1\x6d\x85\x10\x6c\xa9\xb4\xa7\x59\xa8\xa7\x6f\xd2\xdb\x28\x88\x92\xc8\x09\xf6\x57\xc5\x50\xad\x77\xf4\x89\x21\x62\xb6\x4a\xf3\x84\xec\xe6\x3d\x96\x79\xa6\x12\x06\x71\xa4\x11\x02\x71\x6c\x2f\x69\xcd\xaf\xad\x0a\x8f\xa6\xd2\xf8\xfa\x71\x6c\x23\x84\x27\x0b\x9d\x3f\x46\xbe\x9c\x0a\xb1\xb2\xe8\xec\x6f\x8b\x7f\x2c\x0e\x3b\xbb\x43\x2d\x1e\xbf\xee\xfa\xe3\x46\x79\x4e\x6d\x4b\xd8\xf8\xbd\xdf\x70\x20\x21\xcc\x04\x4e\x30\x6d\xe1\x39\xa7\x29\x24\x3c\x8a\x46\x2c\x24\x5e\x6e\x7a\x8a\xd7\xfb\x8b\x41\xd2\x6f\xd7\x5d\x0a\x90\x18\x8a\x7b\xaf\x4d\x08\x6e\x57\xbb\x59\x0c\x32\x10\x42\x23\xea\x73\xb7\x4f\x43\x68\xaf\x1f\xc0\x45\x68\x3b\x29\x1b\xa1\x9e\x87\xd2\x16\xde\x0a\x01\x8b\x19\x52\x1c\xda\xb6\xd8\x35\x9c\x4a\x55\x09\xf5\xde\x7f\xfe\x0f\x3d\x9f\xff\x29\xa3\x00\x2c\x31\x81\x9b\x05\x03\x34\xff\x00\x37\x01\x4c\xf1\x40\x7b\xa4\x08\xaa\x9c\x57\xcd\xa2\xd0\x6e\xc5\x7d\xc8\x31\xec\xce\xe6\x01\xc3\x6c\xac\xd0\x7a\x26\x73\x3c\x1d\x1c\x69\xdc\x18\xee\xee\xd0\x52\xf8\xbf\x12\x89\x31\x54\xad\xc4\x19\xbe\x89\x46\x3d\x77\x47\x8c\x65\xe4\x7e\x04\xd5\x88\xe2\xe9\x5a\x56\xc8\x8d\x4b\x63\x86\x9c\x9c\x42\x6b\x84\xaf\x7c\x40\xc8\x3d\x0e\x94\x20\x35\xc0\xbb\x9d\x73\x98\x27\x01\x11\x30\x2c\x8c\x58\xd2\xd6\x4b\x95\x81\x1e\x1d\x97\x94\x62\xba\xbc\xca\x9e\x9e\x1b\x12\x4c\x16\x9e\xd4\x14\x49\xda\x35\xbc\x3e\xc2\xa0\x9d\xa0\x3b\xdb\x30\x66\xb1\xd7\xaf\x20\xf2\x55\x59\xd4\xad\xbf\x70\xf5\xa2\xdd\x68\xa5\x28\x77\xf5\x84\xcb\xf9\xaf\x65\x80\x41\x41\xaa\xa5\x85\x46\x0d\xf7\x13\xf4\x62\x2e\x96\xad\xf2\x32\x20\x40\x03\x1d\x09\x24\xcb\xd8\xdd\x6f\x8e\x87\xdd\xef\x9b\xfb\xbd\xbf\x57\x1d\x53\xcc\x4c\x6e\xae\x3f\x0e\xa4\x89\xe5\x12\xcd\x5e\x01\x43\xec\xb7\xb2\xd2\xf5\x28\x70\x01\x10\x0c\x99\x98\x1e\x85\x31\x39\x0c\x84\xff\x3e\x8c\xdd\x01\xa4\xc6\x24\x73\x2e\x2e\x85\xea\xb1\x5c\x60\x62\x46\x5d\x8e\xf4\x61\xa8\x30\xe1\x0f\x1b\x8b\x52\xa8\xa1\x0d\xe3\xcc\xe5\x5a\xa2\x7d\xfe\x5d\x99\x20\x0c\x31\x6d\x77\x2e\x4b\xff\x85\x4c\x00\x51\x14\x76\x04\xb7\x87\xec\x04\x77\x5e\xce\x88\x9a\x88\x68\x4c\x13\xde\x66\x85\x16\xff\x7b\xae\xe6\x4f\x02\x9a\xb9\x46\x02\x13\xc7\x46\x45\x7d\x7e\xf8\x72\x5e\x41\x3e\xa9\x15\x98\x98\xda\x8e\x46\x9f\x3a\xc4\x2d\xf0\x5b\x89\x7d\xa1\xd3\xc2\x82\x89\xb9\x0d\x4f\x9f\xa1\x2a\xb1\xf9\xc9\x3f\x5c\xac\x24\xb1\xea\x3c\x2f\x1d\xdf\x3f\x35\x89\x50\xa6\x8f\x80\xac\x73\x38\xef\x2f\x98\x44\xdb\x68\xaf\xc9\xba\x4f\x67\x08\x8b\xc1\x81\x4c\x9a\x52\xe6\x42\xbd\xe4\x57\x24\x2f\x86\x06\x06\x21\x03\xfb\x87\xed\xef\x3e\x82\x31\x3c\xe5\x48\xa6\x70\x5b\x3e\x39\xd7\xd7\x6e\x4b\xde\xb3\xac\x3e\xca\x52\x1b\x0e\x56\x8b\xee\x6c\xb5\x28\xf7\x22\x07\x27\x0a\xe1\x33\xba\x26\x55\x80\x1b\xe4\xb1\xce\x4b\xe4\xa1\xcf\x9a\xfb\x89\xac\x3e\x35\x22\x32\xcc\xf4\xbc\x64\x05\x92\x47\x7e\xca\x5b\x64\x44\x9a\xca\x4e\xc4\x6c\x7f\x39\xe7\x1d\xbb\x9c\x51\xa1\xc0\x7a\xf4\x8d\xb8\x01\x47\xb4\xd4\x1f\x02\x9a\x78\x6b\x64\x9b\x6e\x11\x1b\x3b\x1e\x44\x6d\x7f\xc5\x43\xff\x54\xcb\xcb\x24\x27\x65\x94\x96\xd8\xa5\x74\xca\x8a\xe5\xe5\x7d\xd8\xd7\x60\x74\xcc\x43\xd1\x69\xda\x2f\x61\x12\xc5\x1a\x9d\x70\x64\xe8\x3b\x3c\x57\x00\x75\xf6\x34\xe2\x19\x34\x3a\xb5\x2d\x0c\xae\x49\xcb\x61\x8c\x2c\x0d\x85\x1f\x03\x3a\x86\xa8\xc7\xa4\x57\x23\xe5\x47\x6a\xc0\xa4\x18\x26\xd7\x97\x42\x97\x6f\xdd\x73\x99\x50\x31\xcf\x0c\x02\xc8\xef\x77\xe8\x80\x2d\xdd\x18\x32\x24\x1c\x76\x3f\xee\x2e\xcc\x82\x30\x0c\x30\xd6\x5d\x96\xe5\x0b\x62\x28\x37\xcd\xf3\x8f\xb0\x3b\x9a\x1a\x99\x38\x5b\x85\x39\xe6\xf9\x66\x83\xde\x17\x60\x41\x68\x40\xb4\xaf\xea\x6b\x29\xb3\xff\x0e\x3e\x02\x0b\x22\x30\x41\x8f\xf6\x3a\x97\xb5\xc8\x77\xd6\x89\x16\x43\xb0\x9b\x1b\x1d\x87\x26\xb5\xd4\xf3\xaf\x59\x0d\x55\x6d\x0b\x03\x4e\x74\xd9\x8f\xe1\xa1\x71\x60\xf7\xad\x2a\x3f\x60\xc7\xea\xc6\x2a\x24\xed\x42\xfa\x4b\x91\xdf\x94\xd5\x9b\xa8\x9c\xec\xed\xf0\x63\xb2\x20\x16\x01\xd6\x01\xff\x73\x29\xab\xcb\xa9\xfb\x2d\xc9\x8c\xeb\x2e\x48\xd6\xd9\x6b\xbd\x7b\x1b\x38\x51\x7e\x8c\x0a\xc3\x41\xa7\x59\xdf\xa8\x31\x9b\xda\x64\x41\xe2\x08\x87\xfc\x5e\x37\x91\x58\xfc\x6d\x7c\x5f\x89\x8a\x98\xf3\xf1\xf7\xcf\xd9\x79\x90\x29\x61\x01\x49\x13\xd5\xd1\xa5\xb7\x7b\xf9\xb0\xde\xcd\x02\x22\x62\xac\x8f\x9c\xb2\xa7\xa1\x6c\x34\x0b\x18\x49\x31\xc2\xcf\x05\xca\xba\x82\xb8\x7a\x1b\x0c\x02\x0c\x0d\xf2\x52\x78\x2a\x97\x9e\xbf\xe1\x5f\xfc\xdf\x83\xee\xa9\xc9\xfd\xf2\x94\xa0\xb1\xac\xc4\xa0\x7a\x79\xed\x45\xb3\x80\x0b\x16\xb9\x82\xc0\x63\x59\x7e\xca\x6e\xc6\x02\xae\x19\x96\x93\x2f\x85\x47\xab\xb5\xbe\xf6\x30\xe7\xed\x07\x1a\x6a\x11\xe5\xa2\xf6\xe0\xc8\x31\xf9\x1b\x0b\x84\xb4\xf4\x40\x88\xb1\xf8\x2f\x4c\x9e\x5c\x68\xd2\x03\x5d\xbe\x17\xca\x32\xdb\x0e\x09\xab\x58\x20\x03\xc6\xbd\x7e\xfa\x7b\xdd\xc0\xb4\x23\x79\x72\xf3\x32\x4d\x11\x1f\xd4\x54\xd9\x6b\x07\x3a\x63\x81\xd4\x32\xb6\x2c\x55\x1f\xb1\x83\xb2\x40\x45\x5c\x44\x2e\x78\xc9\x5f\xf3\x8f\xeb\x78\x2c\x80\x50\xa3\xb5\x93\x58\x0f\xfc\x21\x3a\x24\x3a\x0b\x20\xb2\x38\xfa\x4b\x61\x05\xbb\x5d\xc9\x74\x9a\xc4\x66\x01\x50\x9d\xb8\xc5\x7a\x7b\x51\x2f\xef\xc5\x80\xcf\x83\x05\x20\xa3\x84\x74\xa5\xaa\x76\xbe\x4d\xdd\x35\x16\x00\x48\xf4\x61\xb2\x8e\x01\xc2\xfa\x17\x13\xd2\x09\x16\x18\x13\x83\x6b\xa7\xc1\x52\x77\x3d\x2d\x70\xb0\x30\xa0\x01\x74\x8c\xdf\xea\x65\x92\xeb\x61\x61\x18\x02\x3a\x6e\x6b\x78\x7d\x2d\x1b\xac\xb0\x5f\x0a\xed\x80\x83\x6e\x4c\x14\x5a\x3e\xdb\x63\x65\x49\x21\x1d\xb3\xd1\xf8\x42\x51\x02\xf8\x81\xda\x8d\xb3\x12\x0d\x3c\x7c\xa0\x04\x31\x0c\x4a\x58\x18\xd1\x04\x37\xcd\x2a\x57\x47\x47\x54\xd2\xfd\x2a\x25\x9c\x76\x1a\x22\x50\x0d\x40\x3c\x93\x5f\x16\x2c\x32\x56\x4b\xaf\x34\x4e\x31\x6f\x68\x3e\xc3\x48\x25\x3c\xf5\x22\xaa\xcd\xb5\x2e\xc4\x78\x12\x84\x31\x91\x4c\x8e\x64\x9b\x5e\x60\xf0\xa1\x27\xa3\x93\x40\x2a\xcb\x1c\xef\xe0\x08\xd7\x64\x6a\x2c\x24\x49\x10\x24\x3d\x61\xb3\xfd\x9c\xbd\xa8\xed\xc8\x7e\x87\x84\x50\x6c\x33\xb0\x09\x9d\xa5\xd0\x4f\x53\xea\xb5\x81\xc7\xcb\x42\xc2\x2d\xa6\xaa\xce\x9e\x8a\xcb\x19\xf5\x28\xa6\x32\x22\x93\x9a\x13\x0b\xa9\xb4\x11\x6f\x5e\x16\x4f\x07\xa8\x4e\xcb\x8b\x7e\x1a\x02\x47\xfd\x9b\xa3\x26\x61\xae\xbd\x65\x75\xa9\xaa\x61\xde\x81\x85\x8c\x10\x9f\x39\xf9\xfb\xa5\x6c\xba\x0f\xc7\xa4\x44\x6c\xf3\x8f\xf2\x17\xe4\x0f\xb9\x98\xca\xe9\xf1\xeb\xff\x75\x67\xf2\x58\x09\x97\xa7\x5d\x89\x3c\xbf\x41\xee\xeb\x4e\xfc\x8e\x85\x9c\xda\xe3\x5f\xa1\xb9\x15\x35\xd2\xf9\x4c\xb3\x97\x2c\x4c\x43\x9b\xf7\xb1\x33\xf9\x9a\x97\x80\x85\x69\xcc\x49\x62\x7b\x7a\x16\xc5\x13\xa0\xd0\xc9\x5a\x34\x48\x12\x79\xb5\xd5\x84\xa9\x64\x36\x59\xf9\xe4\xa8\x0c\xdd\x5b\x98\x9f\x3c\xa9\xb6\xea\x17\x75\x53\x9e\x97\x22\xcf\xcb\xee\x75\xa9\x20\xb0\x69\xf6\xd6\xad\xac\x86\x2d\xbd\xfd\xd9\x9a\xc7\xb1\x67\x76\x3f\x36\x6f\x25\x72\xd3\x6d\xfe\x33\x72\x69\x58\xa8\xd3\x28\xe9\xda\x6a\x76\x66\xd3\xc6\x84\xfb\x2c\xef\x44\x52\x59\xa8\x45\x1c\x7a\xb2\x91\x07\x27\x7f\x86\x90\x15\x7f\x5c\x83\xa5\x70\x80\xd7\x7a\x64\x96\x43\x6d\x2c\x8f\x4d\x83\x65\xb5\xe3\x73\xd6\xdd\x3f\x98\x00\xdd\x00\x70\x3c\x1e\xc7\x4a\xf4\xdf\x1c\x8c\x8a\x2d\x72\xd6\x54\x50\x3f\xff\x14\x59\xf3\x20\xb2\x6a\x09\xcd\x76\x5d\x2f\xdf\x2d\x65\xf8\xd4\xfb\x63\xa1\x51\x61\x12\x8f\x24\x49\x87\xc9\xaf\xf6\xb8\x24\xa2\x0b\x5c\x1d\xca\x6e\xf4\x79\xa2\x20\xb6\x54\xd4\x27\xf1\x02\x43\xc7\x90\x45\x01\xe5\x58\x58\x7d\xf3\xcb\x01\x91\x51\xad\x69\x73\x9a\x79\xdd\x40\x05\xa1\xcb\xe9\x1f\x7e\x1d\xca\x47\x2f\x5b\xfe\x27\xf9\x1d\x77\x76\x18\x86\x68\x2e\xbe\x5b\x8c\x92\x90\x59\x9e\x35\xef\xb6\xc1\xd4\x0f\x49\x04\xaa\x0f\xb8\xb6\x62\x07\x9c\x76\x8e\xc6\xf8\x71\x42\x6a\x1b\xfe\x11\x63\x98\xa9\x3d\x14\xba\xfb\xac\x51\x98\x1a\xcc\x02\x6c\x9e\x4d\x56\xd5\xdd\x83\x86\x20\xa5\x40\x38\xeb\x0b\x14\xf7\xe2\x04\x8e\x09\x7e\x68\x26\xa2\x48\x70\xcc\xf8\xb6\x5f\x0d\x67\xfd\x5a\xbc\x77\x68\x3a\x16\xc5\x11\x51\xac\x5b\x35\x5d\xf7\xa3\x3f\x4a\x18\xc2\xdc\x0f\x97\xa6\xac\xfa\xed\x37\x8a\x53\xab\x3b\x5d\x43\xd3\x59\xb3\x99\xd4\x20\x8b\x92\x30\x45\x16\xd3\x7f\x42\xf5\xf2\xa5\xff\x9b\xe0\x5e\x0e\xf2\xbc\xb4\x7d\xf0\xd3\xf3\x94\xe1\x16\x1b\xb1\x5a\x7c\xc0\xbd\xc4\x22\x42\x02\xdc\x29\x30\xd0\xfb\x3f\xa1\x5e\xe6\xd7\x66\x44\x24\x47\xdc\x5f\xbb\xd1\x2d\x9e\x2a\xe8\x26\x00\xd1\x5c\x88\x7e\xab\xd1\xad\x93\xb8\x68\x46\x84\xc7\x93\x4b\x51\x25\x15\xef\x70\x72\xed\x63\x3b\xab\x30\xbe\x33\xaa\x23\x45\x3c\xe6\xdd\xb8\x1d\x6c\xe2\x27\x46\x2c\xb2\x5c\x88\xad\x27\xb9\x6a\x37\x08\x4b\x03\x56\xfa\xbb\x63\x89\x90\x1e\xe8\xd8\x58\xc1\xa6\x65\x79\x79\x7a\xfe\xdc\xdd\x8b\x18\x23\x60\xfc\x4c\x12\x0d\xf4\x8c\x20\xe2\x1d\x30\xa4\x1c\x62\xd8\x3e\x4a\xf3\x7c\xbc\xf1\x44\x3c\x0a\x10\x94\xf1\xbb\xc8\xb3\xe1\x7e\x1b\x71\xa1\x90\x85\x60\xff\x80\xa9\x9d\xee\xcf\x5a\xe3\x62\xff\x2a\x4e\x70\x93\x15\x59\xfd\x7c\xf5\x25\xb9\x91\x08\xe6\x78\xdc\xdd\x6e\xb0\x7f\xf8\xfb\x83\x3f\x3b\xa5\x81\x76\x32\xe6\xdd\xfe\x36\xc5\x80\xb3\x28\x4d\x55\xe0\x12\xdc\x8e\x61\x60\xaa\xca\xc7\x22\xc1\x62\xd2\x57\x74\xd6\xa5\x42\x22\xbc\x87\x32\x1f\x23\xa2\x59\x24\xd2\x04\x3b\xc2\x16\x55\x0d\x85\xc8\x5f\xeb\x3b\x51\xac\xb2\xa6\x5b\xd6\x42\xd2\x2e\x2c\x73\xf0\x92\xd6\xa3\xfe\x56\x8e\x6a\xbb\x7e\xb0\xb2\x74\xe3\xed\xf2\x47\x8d\xd9\xc9\x8f\xc9\xd8\x76\x4f\x7f\xdd\xed\x6e\x17\xc7\xef\xf7\xdb\x83\xff\x19\x99\x5a\xc2\xd9\xd6\x1e\x37\x3d\x18\xff\x28\xdf\x8f\x55\xf9\x36\xf9\x19\x45\x43\xe8\xc2\x99\x85\x2e\xcf\x0d\xe8\xc5\xaf\xcc\x39\x3d\x7c\x10\x6f\x46\x2a\x15\x01\xd8\xde\xaf\x73\x56\xcd\x13\xd5\xb1\x48\x19\x86\xc1\x00\x76\xd2\x91\xc9\xaf\x69\x2e\x3c\x9d\xc5\x3a\xab\x40\x35\xa5\x6d\xe9\x98\x5f\x7f\x10\x24\xc4\x25\x16\x8f\x67\x47\xe3\x73\x54\x6e\xd3\xfd\x0b\x13\x0e\x42\x20\x91\x67\x59\xff\x91\xc1\x9b\x7b\x43\x71\x10\xa5\x4e\x36\xb9\x6a\xc3\xed\xf9\x9a\xdc\x38\x0b\xcd\xe2\x80\x32\x11\xfb\xab\x61\x0e\xba\xbb\x1c\x44\xa1\xbb\xcf\xbd\x55\x1d\x51\x2f\x63\xda\x1f\x37\x30\x4a\x22\xcc\xe7\x9c\x73\xf1\x3e\x86\x80\x77\xbf\x12\x25\x04\x27\x7d\x81\xf6\x54\xe4\x59\x93\x41\xbd\x1b\xf7\x4e\xb2\x38\x0e\x92\xd8\xf4\xc2\x6b\xcf\x59\xae\xb7\x13\xbe\x7b\x16\xc7\x4a\x62\xa1\x6f\x65\x19\x9c\xf0\x82\xf7\x00\xba\x0f\x2a\xaf\x56\xef\x28\xc1\xeb\x2f\x63\x00\xbb\x1f\xf7\xbf\xff\xc3\x53\x7d\xb2\x38\x89\x38\xfa\x9c\xae\xf9\xb1\xf1\xe8\x11\xcb\x9b\x34\xf0\x23\xfb\xf9\x13\x27\x91\x8e\x3d\x43\xf0\x35\xb8\x60\x80\x77\x9a\xc1\xc9\xb2\x38\x49\x05\xe6\xac\xd1\x72\xac\x41\x65\x27\x91\x4f\x2c\x63\x4c\x68\x27\x14\xff\x23\xab\x2e\xf5\x28\x87\x11\x53\x66\x6d\xf0\x8f\xf5\xfd\x9f\x76\xc2\xb0\x98\x87\x16\x18\x87\x2e\xf8\x1e\x5a\x5f\x03\x2b\xcb\x93\x2f\xc1\x23\x4b\xfb\xe0\x5a\x80\xae\x5a\xbe\x59\xcc\x55\x3c\x68\x12\xfa\x81\x52\x9a\x08\x33\x1d\xdf\x7b\x1a\x1b\xb4\x44\x0f\xdf\x1f\x57\x88\xe0\x5d\x6f\x7f\x6c\xd7\x9b\x47\x7f\xf7\x29\x23\xc2\x76\xe4\x37\x9b\xfb\xaf\x9d\x28\xe5\xa7\x36\x3d\x16\x81\xad\xfa\xaf\x41\x74\xea\x7b\x2c\x16\x51\x38\x48\x96\xfe\x84\x01\x17\xf0\xe4\xf4\x48\x5a\xfa\x65\x97\x44\x1a\xf9\xf3\xb1\x48\xb8\x48\x46\x74\xb7\x37\xdf\xd7\xeb\xeb\x18\x62\xbc\xaa\x63\x91\x58\x52\xb3\x02\xde\x7c\x72\x6a\x1e\x73\x34\x96\xfb\x62\xb1\x60\x01\xe6\x5f\xd1\xa6\x9d\x32\xaf\x30\xe9\x8e\xaa\x54\xa3\xdb\x8d\x33\xb2\xe3\x3d\x2f\xab\x75\x86\x78\x00\x87\x33\xfd\xb8\x3d\x97\xc5\x4a\x32\x0d\x5d\xfa\xee\xd1\x22\xda\xeb\x9b\x12\x7b\xa9\xaf\xca\xf4\x2c\xd6\x11\xc3\x4c\x61\x53\x89\xac\x08\x27\x9f\x53\x53\x25\xa2\x4e\x62\x64\x48\xf9\xc7\x62\x2d\x35\x92\xcd\x7c\x2d\x2d\x3e\x51\x96\x8d\x15\x4a\xf7\x50\x5d\x16\x6b\xc5\x12\x17\xa9\xa3\x17\x7a\x28\x87\x91\xcb\xe7\x1e\x66\x0c\x49\x8a\xbc\x61\xcb\xb2\x3c\x21\x3d\x80\xa7\x5b\xfb\x20\xbc\x8b\x41\x44\xf1\x00\x3f\xd4\x28\xcb\xc8\x3c\x99\x0d\x20\xe2\x24\x74\x22\xe6\xd9\x6b\x96\xc3\x13\xcc\x26\x00\x63\x13\x45\x18\x2d\x56\xad\xc3\x70\xb1\x32\xa2\xbf\x5d\x06\x72\xa2\x2c\x36\x2a\x08\xad\x69\x76\xd8\x7c\x74\x64\xec\x0b\xe6\xff\x53\x41\x91\x8f\x8c\x95\x01\x89\x38\xf7\xd6\x0f\xa6\x69\x27\xa8\xca\x92\x40\x26\xe8\x91\x3e\x89\x13\x38\x79\x00\x1b\x7f\x0b\xcf\xd4\xce\x92\x90\x44\xd4\xf8\x36\x69\xbb\x20\x86\xa4\x65\xed\x00\x8b\x67\x38\xda\x0e\xee\x69\x12\x71\xf4\x16\x92\x28\x54\x5c\x0d\x29\x2f\x70\xf1\x7c\x92\x4d\x4a\xe2\x90\x22\x7e\x1e\xfb\x0a\xbe\x9f\xbf\xcc\x65\x40\x92\x98\x4a\xac\x3e\x21\xf8\x68\x77\xfe\x13\x15\x53\x96\x24\x51\x68\x01\x07\xdb\x87\x28\xf0\x0f\x92\x28\x83\xe5\xb4\xaf\x56\xd7\x0d\x0d\xe5\x73\xd3\xc3\x3d\x59\x92\x68\x2b\x40\xdb\x8b\xbd\xda\x92\xf3\x7c\x77\x04\x4b\x48\x1c\x23\x8b\x4a\x3b\x26\x08\x77\xaa\x89\x82\x90\xfb\x9f\x23\x49\x14\x29\x1f\x30\x5d\x4d\xe2\xe1\x22\x4f\x68\x90\xa2\x6d\xfa\x7e\xbf\xf2\x67\xd3\x88\x23\x12\x04\x3b\x93\x77\x66\xdf\xc7\x98\x09\x95\x7a\x28\x9a\xd5\x2b\xf5\xb3\x04\x2d\x66\x6b\x0f\x2a\x10\x2f\x3e\x3e\x59\x42\xf3\x06\x50\xb8\xa4\xcf\xa2\xd0\xdb\xd5\xae\x3b\x41\x18\xac\x32\xa3\x9f\x6b\x71\xc1\xcf\xd9\x79\xae\x8e\x33\xfe\xce\x4c\x26\x5c\x62\x09\xb8\x8d\x39\xc7\x66\x20\x61\xda\xa0\x17\xda\xcd\xa7\xae\xd4\xc2\x12\x9e\x48\x74\x07\x1f\xf7\xbb\xee\x59\xd3\x40\x63\x8c\x73\x2a\x75\x66\xde\x0f\x6d\xec\xb4\x76\x92\xb1\x93\x2b\xa7\x52\x1b\xdf\xd3\x9f\x8b\xba\x7e\x14\xc5\xcb\x97\xd1\x4c\x49\x55\x48\x6d\xa6\x69\x83\xb9\xc0\x41\x41\x95\x25\x29\x24\x34\x1a\x64\xcb\x6c\x58\x7f\x25\x6d\xc0\x12\x41\x23\xe6\x69\x1a\x7e\xad\x45\x23\x86\xa4\xc3\x73\x05\x61\x96\x08\x9e\x20\x52\x7f\x89\xe2\xc9\x48\x2f\xf1\x65\x98\xb5\xfe\x14\x1b\xcd\x12\x19\x04\x3d\x9d\xa0\xc7\xa8\x7d\x85\x22\xf8\x67\xa9\x33\xa1\xa6\x65\xbd\xcf\x8d\x61\x22\x53\x23\x92\x3e\x25\x05\x45\xb3\x16\xef\xae\x3e\x34\xe0\xfe\x63\x89\x8a\x82\xc0\xa7\x7d\x17\x85\x5e\x77\xbc\xd3\x2c\x51\x3a\x95\xb1\x8b\xb8\xf0\xf1\x8f\x22\x4c\xfd\x41\xad\xc0\x87\xa5\x0e\xad\xba\x28\xb4\xad\x40\x7e\x20\x1e\xe5\x4e\x04\xa6\x1d\x6d\xff\x23\x08\xfd\x7e\x28\x17\xea\x8a\x41\x88\x25\x60\x74\xe8\x18\x5a\x97\xd9\xb0\xc8\xcf\x12\x43\x42\x34\x76\x6f\x59\xb1\xd3\xba\xfb\xab\x48\xb0\x25\xab\xdf\x96\x97\x87\xd5\xd7\xe9\x3d\xf8\x5d\x8f\x04\x86\x60\x55\x6f\xb8\x1d\x7f\xe4\x1e\x5e\xae\x45\x6b\xdd\x55\x42\xad\xd2\x9e\xd0\xcb\x13\xc6\x3c\x3c\x97\x50\x64\xbf\x60\x56\xd0\x74\xba\xff\x92\x28\xb0\x74\x97\xc7\x0a\x84\x5e\xda\xa6\x87\x5e\xb4\x78\xee\x57\x23\xae\xb0\xf4\xf9\x38\x2e\xe5\xed\x27\x00\x5e\x46\xe2\x28\xc6\x6f\xa4\x3c\xd6\x00\x36\x87\x6f\x5f\xfc\x41\x41\x2d\x7f\x7a\x56\x3c\x2d\xdf\xa7\x67\x6a\x8a\x9d\x72\x4e\x2d\x64\x18\xb7\x92\x84\x52\x84\xa9\xa3\x61\xb2\xea\xe8\x37\x22\xeb\xb8\x26\x19\x49\xb8\xcd\x62\xec\x1f\x0e\xdb\xee\x6f\xa9\x71\xa9\xd4\x57\xc0\xa9\x84\xf1\xc4\xf1\x76\xf7\xa3\x1b\x21\x35\x7e\xc0\x53\x56\x20\xd8\x65\xc2\x46\xc8\x48\xa2\x01\xdb\x26\x6a\x28\x74\x1b\x66\x9d\xb0\xf5\x61\x76\x4f\x21\xc4\x18\x04\x0a\x9c\xcb\x32\x1f\xa7\x05\x09\x35\x46\x3b\xbe\xb7\xbb\xb2\xa8\x1b\xe4\xc6\xaa\xeb\xa5\xa8\x33\x35\x44\x04\x5d\x69\x0c\x7d\x94\x95\xbd\xce\xd0\x12\x1e\x30\xee\x72\xe3\x7d\x5e\x8a\xf0\x34\xc2\x62\xe7\xb9\x82\xd7\x2c\xcf\x9e\x50\x36\xea\x0a\x80\x3e\xff\x40\x29\xb3\xc5\x0e\x87\x34\x00\x6d\xf7\xd5\xa3\xea\xdb\x5f\x26\xfe\x08\x11\x41\x40\xad\xe4\x68\xdd\x08\x8f\x19\x60\x44\x70\x89\xed\xe8\x77\xbe\x54\x37\xea\xad\x74\x83\x64\x10\x61\x7e\x0d\x25\x63\x56\x96\x33\x74\xf2\x39\x24\x27\x18\x89\x2f\xb3\xe6\x2d\x2b\x14\x76\x92\xcf\x46\xa7\x7e\xbc\x10\x56\x29\x53\xa9\x6a\xc0\x0e\xf9\xdb\xe4\x87\x01\x84\xf6\x55\xd9\x72\x2c\x73\xc7\x88\xa2\x0c\x41\x53\x7e\x7b\x9a\xaa\xad\x77\x1b\x39\x51\x9c\xa2\x5c\xdc\x3f\x37\x9e\xa4\x8a\x11\x95\x72\xec\x78\x7e\xd8\xed\xf7\xab\x9d\x67\x35\x62\x44\x47\x0c\x2c\x69\xe9\xfd\xe1\xdb\x71\x7b\x7f\xdc\x6f\xfc\xce\x44\x40\x5a\x48\x1c\xe6\x08\xb2\xb2\x70\x30\x5b\x6b\x2b\xc8\xbc\x29\x27\x86\x6a\x2c\x2d\xff\xed\x52\x37\x8b\x02\x8d\xa1\xaf\x78\xd3\x20\xd2\xda\x6e\x4f\x37\x79\xf9\x06\xd5\x62\x28\x3d\xcb\x68\xe0\xbc\xfd\xda\x91\xdf\xce\x87\x28\x34\x14\x06\xc1\x8c\xae\xe3\xf3\xcf\xd0\xf8\xbf\x4d\xce\x06\x21\x9d\x06\xcf\x6d\xd9\x17\x99\xff\x15\xf5\xd6\x89\x4c\x64\xe9\xfe\x15\x3b\x7b\x45\xa3\x58\x39\x7f\xb8\xe3\xc1\x79\xe8\x15\x1f\xef\x4b\x9f\x6e\xa0\x51\x0c\x08\xe0\xb9\x14\x1d\xf3\x81\x57\xa8\x1a\xdf\x4e\x9c\x58\x8a\x3e\xb4\xa2\xad\xbb\x92\x77\x30\xea\xf6\x20\x28\xab\xcf\x3f\x57\x4e\x1c\x7c\x72\x9a\x84\x14\x3c\x13\x4b\xd9\x40\xed\xbc\x9e\xcf\x1d\x45\x9a\x44\x04\x19\x79\x51\x58\xe9\xdd\x57\x19\x3b\xa1\x9b\x0f\x75\x0c\xc7\xfb\xc1\xd0\x3e\xd3\x84\xc4\x21\xe9\x8a\xe1\x70\x3c\xf7\xda\x0e\x93\x27\x4f\xb4\x42\x10\xf3\xd7\xec\xd5\x01\x2b\xa0\xba\x46\x08\x8f\xdc\x0c\x4a\x62\x49\x1d\x26\x61\xf5\x2c\xb2\xe2\xb1\x2c\xa7\x97\x25\xc4\x2a\x8e\x74\x9a\x63\xcd\x33\x54\x08\xbe\xc0\x39\xf5\x41\x8d\x8e\x92\x54\x60\x8d\xe0\x7b\xa1\x3d\x9b\xcc\xfc\x40\x6a\xac\x62\xed\x05\x25\x69\xfa\x7a\xd8\x1a\x7a\x3f\x8f\x32\x97\xcb\x56\x22\x57\x08\x86\xb5\x30\xc7\x8e\x89\xa1\xbf\x5c\xeb\x29\x27\x1d\x41\xd4\xa6\x68\xc6\x2c\x5f\x8c\x32\x6a\x61\xee\xaf\xad\x1b\xd0\x6e\x73\x43\xca\x1c\x3f\x46\x0b\x6c\xc6\x6f\x43\x47\xeb\x8f\x5c\xd7\xe3\x29\x27\x89\xf1\x1c\x00\x4e\x26\x7e\x2f\x5e\x01\xab\x1c\xe3\x57\xc8\x53\xae\x52\x2f\x60\x62\x2e\xd8\x2e\xd9\x9a\x9a\xc1\x7c\xe3\x32\xc1\xc4\xce\xe6\xb0\xda\x5f\xaa\x57\xe8\x9e\x9c\x1b\xed\x03\xaa\x3b\xf1\x0b\x1b\x87\xd1\x58\xbb\xf5\xb2\x7c\xbf\x6d\xfc\x5e\x49\x53\x12\xe2\x46\x6b\x32\x6d\xf9\x9e\xc6\xbb\x15\x4d\x85\x89\xfa\x44\xcb\x4d\x55\x9e\xd0\x6f\xbd\xc2\x69\x31\x9a\x9a\x00\xb3\x6c\x06\xe0\x28\x87\xfd\x43\x8c\xca\x00\xb0\xaf\xf6\x49\x61\xa2\x6e\x50\xd4\xa1\x92\xc6\xc6\x66\x82\x41\xef\x51\xa4\x77\xd1\x1f\xb2\xa4\xd3\x08\xcf\xba\xc9\xb3\x73\x77\x80\x53\x7c\x3e\x91\x37\x50\x2d\x45\xf1\xe2\xdb\x95\xae\x96\x46\xff\xb2\x94\x4e\x70\x99\x3d\x7c\x5f\xde\x6e\x57\xc7\xdd\xcd\xcd\xe6\x71\x24\xbc\xc3\xa8\x0e\x18\x1f\x38\x53\x99\xaa\x4a\x07\x73\x9a\x5f\xb9\x40\x0c\xea\x1d\xb5\x91\xe6\x1a\x75\xc1\xba\x56\x48\xc6\x82\xc0\x04\xe1\x48\x3a\x56\x77\xe0\x78\xc6\x82\x10\x30\xfd\xeb\xa0\x10\xdd\x9f\xa9\x6d\x62\x68\x32\xa8\xe2\xdb\x9d\x4f\xfb\xb1\x30\x14\x9e\x3a\xc2\xea\x2f\x65\x27\x74\x62\xe6\xf8\x3d\x18\x0b\x25\xb3\x4a\xe6\x99\xae\x11\xb7\x0d\xfa\xa8\x06\x19\x24\x16\xea\xc4\xc3\xcb\x17\x79\xe6\xd0\x23\xe3\x35\xc1\x42\x50\x78\x87\x36\xfb\xfe\xad\xbc\xd4\x5d\x8a\xde\x39\x19\x2c\x62\x02\x9b\xcf\x7c\xa4\xbd\x12\xe7\x9e\xf9\x9a\xb1\x38\x8a\x91\x1a\xef\xa5\x56\x4b\xd1\xa8\xe7\xe5\xa5\x2a\x7e\x3e\x43\xf1\xbd\x86\x6d\xb1\xcf\x34\xa8\xd6\x7a\xcc\x25\x86\x46\xfb\x36\x8b\x63\x3b\x79\xde\xdb\x48\xab\x1f\x3d\x71\xa8\x59\xcc\x38\x3a\x78\x0d\xd4\x8d\x65\xf7\xad\x3a\x7d\x45\xc6\x62\xae\xb0\xca\x82\x82\xff\x9b\x76\xa3\x9d\x82\x92\x27\x35\x5e\x96\x84\x31\xaa\x2a\xc9\xbe\x6b\xd1\x1f\x89\x42\x74\x14\x57\x8f\x8b\xeb\xd6\x5e\xc6\x92\x38\xc6\xac\xce\x9d\x78\x01\xcb\x7a\x3a\x39\x9e\x5a\xf2\x71\x54\x22\x9f\x20\x52\x27\x23\xb5\x89\xc7\x21\xc5\xdd\xe2\xeb\xd7\xed\xe6\xcf\x72\x7d\x2c\x01\xea\xe7\xcb\xf7\xf6\xd1\x46\x9f\xcd\x2b\xc6\x39\x85\x81\x0e\x00\xf2\xc1\x3e\xe3\xce\x22\xb1\x42\x1b\xb9\xde\x7e\x3d\x3c\x76\x2e\x0d\x23\x69\x92\xda\x1a\x77\x23\xf2\x87\x72\xef\x72\x33\xde\x7c\x30\x4a\x39\x3e\xc2\xb9\x0d\xfe\x5e\x27\x6f\x82\xca\x24\xb6\xa5\x76\x94\xbc\x74\x5d\x13\x1e\x44\xb3\x2d\x7a\x0c\xad\x3b\x81\x51\x0a\x1e\x6b\x82\xde\x10\x6e\x40\x93\x99\x8b\xf6\x01\x59\x25\x9e\x33\x99\x35\xc3\xd0\x81\x71\x13\xa2\xf3\xb3\x5d\xed\xd0\x12\xf5\xad\x23\x8c\x89\x14\x52\xdd\x95\x56\x6f\x26\x5a\x51\x8c\xc9\x38\x70\x04\xe9\xb6\xbe\xe9\xb5\x6a\x66\x7c\x4d\x26\x53\x96\x42\xa7\xca\xd7\x80\x1a\x89\xbe\x31\x26\x35\xb7\x7b\xe8\x7b\xa1\x9c\x74\xeb\xb9\x19\x62\xa2\xba\x45\x70\x1d\xb0\x31\xc5\x08\xf2\x31\x94\xad\x2b\x88\xce\x1d\xe8\x87\x0c\x70\xc3\xd9\xcf\x20\x8e\xfd\x69\xc6\xb2\x7f\x7c\xbf\xdf\xfe\x71\x5c\x2f\xbc\xd9\x63\xca\xd8\x76\x8d\x06\xc4\xe9\xf0\x56\x3a\xb5\x53\x77\x50\x73\xc0\x8c\x15\x9c\x32\xab\x88\x33\x8c\xf2\x3e\x4f\x01\x30\xad\x52\x20\x3e\xaf\x77\x3a\x37\x70\x0c\x49\x77\x5d\xa5\x01\x21\xb6\x23\xf4\xce\x07\x8e\x01\x83\xc0\xb0\x70\x80\x8e\xd2\xd6\x2e\xbb\x5c\xb1\x9e\x71\xc6\x18\x50\x8b\x5c\xc7\x5e\xc8\x9b\xdb\xcd\x1f\xab\xa9\x8c\xd7\x64\x82\x83\xb0\xc4\x5d\xf2\xe2\x7c\x7e\x9b\x20\x1d\xe7\x5a\xe6\x52\xa0\x93\x3e\x6b\xc6\x83\xc0\xc2\xbd\x96\xab\x43\x79\x5e\x55\xc2\x34\x2b\x51\x14\x42\x7a\x56\x1d\xc6\x83\x28\xc4\x46\xc7\xf6\x76\x3a\x29\x28\xc6\x03\x90\xa1\xcb\x07\x57\x59\xf3\x7e\x73\x29\xac\x2c\xda\xc4\x5f\xe1\x61\xac\x71\xdd\x2c\xb3\xe6\x2b\x36\x39\xfd\x69\x59\x85\xc7\x89\x2b\x02\xd5\x2e\x29\xfe\x4d\x54\x7a\xd5\x4b\xd5\xf9\x61\x69\x82\x35\x6c\xfb\x96\x07\x8a\x7f\x57\x6e\xa8\x3b\x21\x09\x18\x76\x1c\x2d\xcb\x81\x16\x9b\x3f\x46\x02\xbc\xd8\x46\x96\x6d\x74\x36\x5c\x88\x9c\x24\x0c\xb3\xb4\xc7\x73\x05\x88\x9e\x99\x81\xa2\xf9\xa1\xc6\xa2\x14\x67\x28\x5d\xba\x11\x5c\x6b\x44\x96\xc1\xe1\x09\xd6\x76\xc7\xf5\xbf\x44\x63\x82\xb9\xca\x45\x9e\x4b\xa8\x9b\xac\x87\xd1\x76\x23\x20\x46\x47\xb1\xac\xb4\x9f\x87\xd3\xca\x1f\x67\x61\x68\x89\x4b\xce\x6d\xf0\x2f\xaa\xa7\xcf\x59\x25\x19\xe7\x81\xa4\x3e\x7f\x87\xcd\x22\x65\x55\x95\x6f\x59\xf1\xe4\x62\xfe\x6e\x2e\x70\x0e\xc6\x15\x7b\x5a\x73\x32\x8a\x37\x39\xd7\x80\x2e\x09\x20\xef\xa3\xdd\xfb\x3b\x11\x7a\x37\x26\x65\x06\x19\xfb\x1f\x41\x3f\x0a\x39\xb1\x78\x5c\x70\x85\x9d\xe8\x4e\x58\xb8\x9e\xad\x7a\x73\xc1\x0d\xa6\xc0\xf3\xb2\xd9\xea\x7a\x5e\x16\x94\x71\x91\x02\xf6\xe3\x34\xd9\xaf\xaf\x16\xad\xe0\xfb\xd2\x06\x6f\x53\xa4\x06\x1b\x43\xbe\x89\x4a\x96\xd5\xc7\x6d\x10\x1f\xd8\x10\x7f\x15\x49\x65\xa7\x93\x6c\xad\xf5\x13\xf0\xee\x37\x0c\x89\x93\xb1\x66\x66\xed\x08\xd8\x1e\x01\xab\x85\xdd\x40\xe9\x79\x49\x5a\xcb\x58\xdb\xb4\x4e\x6f\x26\xb8\xa4\x1a\x7a\x5a\x8a\x19\x45\x57\xc6\x25\x97\xc2\x78\x0a\x9d\xd5\x30\xcd\xe0\x07\xa4\x1a\x41\xd1\x98\xab\xb0\xd4\xbb\xfe\xf7\x55\x10\xa1\x99\x3b\x57\xe5\x09\x9a\x67\xb8\xd4\xfb\x32\xd7\x43\x60\x33\x57\xa1\xc5\xf8\x39\x9e\x47\x4b\x56\xe6\xf2\xbc\x73\x9d\x55\x8c\xab\x04\x30\xb5\x80\xf9\xaf\x63\x69\x8e\x67\xa4\x67\x3b\xbe\xc0\x7b\xd8\x5d\x15\x6c\xd3\x74\x0d\xcd\x72\xf1\xfd\xa3\xcc\xa2\x1b\x0c\x34\xc0\x22\xcd\xe2\xe1\xe1\xb8\x58\xaf\x1f\x8f\xf7\x8b\xbb\xcd\xfe\x61\xb1\xda\xf8\xcb\x81\x89\x91\x37\xcb\x37\x69\xe2\x8b\x1a\xf5\x02\xb3\x34\x48\x2c\x93\xa9\xcc\x9a\xb3\xc8\x50\x3a\xc1\x73\x60\xfa\x11\x44\x5a\xb5\x45\x71\xa9\xba\xbf\x49\x4b\x8b\x3d\xc8\x23\xd9\x2d\x6d\xf2\x96\xd3\x30\x08\x91\x08\x63\xbd\xe9\xfb\x3a\x59\x8a\x9a\x3b\xf8\xee\x41\x54\x43\x2c\xc1\x1a\x1a\x91\xe5\xdd\xb0\x34\xb1\x26\x39\x6b\x8a\xf2\x55\x74\x7f\x56\xd6\x49\x17\x55\xf5\x3f\xf1\xf1\xb0\x34\xd4\x12\xf3\x7b\x48\x74\x78\xd7\xe3\x8f\xd3\x48\x06\x52\x4d\x51\xa9\xdd\x3b\x8a\x94\xa2\xdd\x69\xae\x9a\x8e\xd0\xcb\x6e\x44\x1c\xda\x38\xa5\x86\x66\x37\xc1\xee\xa6\x31\x0f\xb5\xe3\xef\xda\xae\x76\xd7\x1d\x81\x7e\x98\x0c\x8c\x6b\x7a\x73\xbc\x0b\x73\x75\xdd\x34\x56\x16\x7c\x68\xf1\x4c\x62\x46\x9d\xda\x0d\x4c\x42\x6a\x1d\xf9\x2c\xcf\x27\x8e\x4c\x9a\x88\x64\xa0\xaa\xb1\x86\xd7\x2b\x49\x2b\x96\x26\x52\x76\x92\x95\x4e\xa2\xf8\xd3\x5c\x63\x4a\x38\x60\x0d\xa9\x3c\xc1\x93\x18\x5a\xb3\x94\x86\x3a\xb0\x2d\xda\xba\xfb\x13\x37\x18\x28\xeb\xf2\x23\x28\xb3\x1f\x28\x6d\x73\xec\xa5\x68\x8d\x78\x73\xac\x87\x0d\x04\x29\x4b\xe2\xb4\x27\x74\x9d\x50\x67\xff\x25\x21\x5a\x96\x32\x42\xb0\x13\xd5\xf1\x64\x89\xa2\x5e\x89\xfc\x33\x66\x0f\x96\x32\x1e\x62\x4d\x7a\xbb\x58\xef\x7e\x3e\x76\x37\x03\x0a\xe1\x74\x56\x9c\xae\x12\x12\x65\xc8\xba\x47\xe6\x54\xf3\xb8\xcb\x0d\x18\xa8\x44\x7e\x05\x9f\x4a\xd3\x18\x10\x6e\xbd\x7d\xec\x92\x89\x69\xca\x38\xeb\xda\x17\x11\x42\xe7\x8f\x08\x92\xe0\x46\x73\x42\x2a\x93\x0a\x6a\x44\x5e\x4c\xbf\xb6\x50\x96\x70\xa9\xee\xf9\x78\xaf\xb4\xbd\xc6\xaf\x44\x86\x16\x75\x70\x5b\x3e\x21\x6d\xfc\x55\x13\x42\x2a\x49\x88\xf0\x64\x4b\x54\x9f\x41\xfd\x65\x7c\x98\xd9\x30\xcc\xd2\x7f\x89\x4a\x77\xd5\x92\xf9\x6f\xa0\x48\xec\x85\x65\x5b\x8b\xef\x6f\xcf\x55\x9e\xdc\xbe\xe6\x08\xcb\x27\x0e\x4b\xaa\x63\x46\x7c\xbd\xf4\x1a\x8f\x9c\x6a\x6d\xf1\x46\x3d\x2b\xb5\xa8\x5e\xa0\x79\xc8\x7e\x41\x3e\x13\x42\xa7\xda\x48\x13\x77\x8a\xa6\xd6\x1e\x0e\xa0\x13\x29\xa4\xa1\xe9\x8c\x41\xed\xb2\xea\xcd\x30\x17\x34\xdb\x5a\xcb\x52\x30\x31\xf2\x8a\x17\xe2\x04\x03\xb4\xe5\xa7\x46\x3e\x35\x2a\x45\x9e\x1b\x18\xf0\xbb\x4c\xdd\x9c\xd4\x18\x60\x6e\x3b\xbc\x2b\x5f\xb3\xc9\x13\x89\x80\x5b\x56\x49\x24\x46\xe8\x89\xd0\xda\x41\x49\xe0\xc6\x44\x31\x60\x78\x89\x98\xc2\x63\xad\x44\x0e\xeb\xf2\xed\x2a\x0b\xea\x47\x0b\x81\x65\xc2\xbe\xbb\xe2\xa1\x82\x93\x95\xf8\x9e\x7d\x0e\x11\xa9\x20\xa2\x63\x0a\x39\xd7\x91\xfc\x21\x89\x1c\x13\xb1\x88\x31\x8b\xf5\xf5\x76\xe9\x43\x57\x91\x04\x90\xf6\xdc\xde\xb6\xd9\x71\xfa\xde\x1d\x30\x62\xb6\xac\xf0\xdb\x4c\xd6\xda\x35\x0b\x25\x3e\x56\x13\x49\x1c\x19\x17\x03\x2d\x54\x73\x11\x76\xa2\xec\xcc\x4a\x54\x7a\x57\x60\x70\xe0\x13\xf0\xe3\x3b\x26\x91\xd5\x0e\xbf\xd4\xb0\x2d\xea\x4b\x85\xf6\x79\x32\x44\x27\x96\x1e\xd7\x51\xdb\x58\xbc\xe1\x08\x2c\x24\x88\xe1\x48\x09\xeb\x9d\x0b\x4b\x62\x3e\x47\xf9\xcd\x04\x0d\x42\x04\xae\xdd\x2d\xfe\x38\xee\x0f\x8b\xd5\xef\xc7\xf5\xe6\x01\x85\x18\xfe\xfe\x7d\xfb\xb8\xb9\xdb\x78\xa2\x3c\x26\x28\xb1\x4c\xb3\x50\x34\x50\x1d\xeb\xff\x5c\x06\x5a\x1d\x7e\x08\x0d\x82\x8e\xe1\x6c\x29\x6a\xe8\x69\xa0\x99\xa0\x3c\xc5\xa5\x81\x8c\xbe\xfb\x97\xf7\xfb\xce\x65\x12\x4c\x59\x1d\xb2\x37\x80\x17\x64\x19\x58\xb9\xac\x7c\x37\x00\xa4\x4d\xc6\x96\x0d\x04\xd1\x7d\x39\xf4\xa6\x04\x33\x09\xde\x98\x01\xd0\xbb\x02\x49\xb3\x3f\x98\x79\xcc\x10\xcc\x4c\xe0\x07\xf9\xf6\xfb\x57\x4b\x53\xf5\xb9\x57\x2f\x98\x49\x11\x5c\xaf\x2c\x17\x9e\x33\x27\xdd\xee\x2d\x38\x93\x36\x85\x88\x17\x73\x00\xf2\x91\x6d\x98\x5c\x30\x25\x01\x26\xb7\x04\x4e\x8e\x0f\x96\xa5\x48\x69\x8a\x4d\x58\xe7\xcb\x2c\x07\x22\x13\x22\xe2\xb8\x7b\x35\xe5\x32\x8e\xbe\xcc\xc0\x09\x85\x10\x80\x3a\x2f\xed\x97\x18\xf2\x29\xfd\x69\xe5\xe6\x53\x04\xc1\xfc\x43\x09\x9d\x20\x80\x1b\xc5\x9e\x36\x8f\x7b\x2b\x31\x64\xa9\xf5\x0f\xdb\x3b\xef\x55\x0a\x49\x1d\x21\x59\xbb\x8f\xe9\x76\x49\x74\x2f\x52\x85\x29\xc2\x67\x34\xbc\x3a\xf7\x7e\xd0\x70\xca\x84\x4a\xc2\xc0\x4d\xfd\x06\x74\x33\xf4\xb1\x84\xe2\x29\x26\x51\xbf\xe6\xa5\x14\xf9\xf2\x52\x67\x05\xd4\xb5\x6d\x5e\x1b\x3a\x13\x42\x83\x64\x9e\x8c\x12\x85\xb7\x1e\xaa\xf2\x35\xd3\x50\x7d\xdf\xae\x3f\x30\x3e\xda\xd8\x24\xbf\xcb\x9d\xed\x0a\xe8\x73\x8c\x02\x42\x5b\xf5\x40\xd5\x0b\xcc\xeb\x86\x83\x43\x1e\x60\xbe\xad\x1d\x17\xcf\xf8\x13\x03\xd1\x9c\xa3\x77\xf2\x50\xc1\x56\x79\x3c\x8d\x30\x89\xe6\xa2\xa7\xa2\x2f\x73\x58\xe4\xf9\xa8\x3a\x21\x8c\xe0\xc2\xb9\x03\xc7\x0a\x85\x4a\xab\x39\xfd\x74\x26\x8c\x0e\x53\x31\xe4\x80\x5c\x0f\x1e\x74\xf6\x81\x65\x04\x96\x2a\xd1\x96\x46\x66\x9a\xf7\xa6\x79\x58\x19\x0b\x9b\xf6\x3d\x0a\xad\x9d\x78\x56\x36\xa8\x62\x8d\x59\xcc\x99\x4c\x54\x82\xdc\x63\x77\x9b\x83\x4f\xfc\x4b\x92\x5a\x11\x0a\x5b\xfc\xf5\x0e\xc6\x07\x36\xf9\x72\x45\xc5\xdc\x31\x6a\xe0\x3f\xbd\x04\xdf\xc8\xda\x49\x62\x18\x6e\x09\xc7\xd6\x34\x5b\x13\xbc\xd5\x3d\x23\xe0\xb8\xd3\x9e\x49\x4a\x04\x06\x8a\xcf\xa2\xde\x9c\xce\x79\xf9\x0e\xd5\x1d\x6a\x16\x0e\x99\x46\xe6\xdf\x21\x23\x12\xa8\x97\x3a\x7c\xc2\x60\xb6\x3c\x9f\x87\x34\x7f\x4c\x32\x15\x63\x77\xd8\xee\x0c\xc5\x43\x39\xe4\xae\x61\x92\xc7\x42\x50\xcf\x09\x7c\xe5\xd2\x60\x75\xe4\x4e\xfc\x1a\xcf\x27\xc9\xb9\x46\xac\xf5\xfd\x66\x35\xef\x9a\xc9\x94\xdb\xa6\xd4\xac\x5e\x5c\x2a\xb1\xff\xa8\xcc\x21\x53\x11\x59\x79\x60\x91\xab\x31\x53\xc8\xe7\x66\x40\xa6\xc0\x6d\xce\xe4\x72\x72\xd9\xa6\x76\x6a\xaf\x76\xb1\x7f\x30\x11\x52\x9c\x8f\xdf\xde\x65\x95\xe9\xcd\x1f\x9f\x80\xf4\xa4\xe0\x14\xa3\xf0\xf6\x05\xb5\x6f\x00\x0a\xd7\xf8\xe1\x8e\xcb\x80\x60\x31\x06\xf3\x43\xce\x2e\x5b\x93\x3e\xf1\xf2\xa4\x74\xe2\x6a\x05\xbc\xd9\x9c\xf3\x07\xbf\xa8\xc3\x08\xb9\xd9\x9a\x5f\xf5\x3c\x57\x37\x93\x3a\x8d\x98\xef\x03\x43\x8a\xa6\x4b\xbb\x1f\x22\x58\x68\x61\x1a\xa8\x16\x6b\xb0\x2c\x7f\xfe\x2e\x21\x36\xc2\x53\x8b\x7e\xf6\xb4\xc0\x89\x72\xae\xe3\xa6\x8d\x8b\xbb\x1d\x46\x02\x4f\x4d\x5f\xa4\xc2\xb8\xe0\xca\x05\x9f\x7e\x96\xc1\x3c\x33\x11\xc5\x4c\xea\xc3\x7a\x57\x74\x77\x65\xb8\x21\x81\x03\xb6\xe0\x5d\xb5\xdb\xee\xfa\xa3\xa6\x1a\x15\xc8\xc0\xa4\x96\xfa\xa3\x2a\xdf\xae\x7e\x75\xf4\xb6\x55\x48\x63\xcc\x80\x60\xab\xc8\xfe\xb0\x38\xd8\x86\x91\xe3\xc3\xe3\x6e\x88\xb3\x56\x51\x10\x8a\xd0\xef\x05\x27\x91\x15\x59\xf1\x74\x97\x15\x30\x6a\xf3\x56\x51\xc0\x11\x14\x8f\x93\xfe\x6b\x56\x79\x2d\x55\xa6\xa2\xc4\xa2\x15\x95\x43\xbe\x75\xba\x38\xfe\xb8\x4e\x11\x11\x73\xca\x8a\x7d\xf6\x5f\x70\x5f\xde\x1f\x34\x71\x1a\x74\x10\x64\xcc\x70\xec\x2f\x4a\x41\x5d\x9b\x4b\xbe\x6f\xe0\xdc\xfd\x4c\x1c\x86\xd8\x08\x7b\x00\x71\x5a\x14\xda\xf3\xa6\x77\x87\x23\x81\x70\xcc\x36\x3a\xa8\x2d\x1d\xc9\xfd\xb0\xaf\x58\xc5\x04\xd0\xcc\x6b\x00\x8d\xfc\x40\xe3\x57\x1b\xa7\x11\xa2\x2f\xa0\x50\xa5\x86\x65\x96\xe7\xed\x6b\x70\x0a\x81\x7f\x6d\xd9\xb5\xd7\xf0\x0d\xb9\x2b\xd1\xdf\x5a\xa2\x98\xdf\x6c\xf7\xcf\xd9\xb9\xa7\x5d\x1e\x9f\x9d\x98\x00\xdf\xb0\xb8\x34\xa5\xcb\xaf\xe3\x94\x68\x2d\xcf\xdf\xee\xba\x8b\x19\x25\x5d\x85\x79\xf3\xeb\x0c\xaa\x01\xfd\x55\x9c\xa0\xd7\x30\x64\x8a\x84\x01\x77\xef\xf4\xce\x71\x65\x21\x17\x81\xbf\x68\x5f\x03\x56\x24\xb2\x13\x6a\x05\x55\xd3\x64\xe6\x7d\x26\xf8\x52\x84\xc7\xb8\x0f\xd6\x4d\x79\xbe\xb3\xd9\xa5\xd1\x2e\xa8\x88\xb1\x3c\xc5\x1d\x6d\xed\x40\xae\xb7\xe7\xfb\x64\x8a\xc6\x61\xd2\x89\x32\x5d\x8a\xc6\xb6\xee\xad\xec\x2e\x35\x9e\xbb\x94\x58\xbd\x7d\x5f\x47\xaf\x6b\x5c\xd5\x87\x11\xe2\xc5\x7f\x84\xd1\x3f\xfe\x02\x00\xd8\xa5\xf9\x20\x32\xbd\xbb\x7c\x10\x23\x2b\x16\x68\x2c\x55\xb8\x62\x51\x56\x16\xc3\x97\xc3\x62\x8a\x40\xc4\x6d\x93\xbf\x0f\x76\x05\xc5\x62\x0b\x68\x1b\x28\x3c\x0d\x45\x8e\x99\xe2\xb1\x25\x11\x43\xea\xfe\x42\x7b\x92\xba\x19\x0a\x71\xa6\x44\x28\xa8\x83\xae\xac\xaa\xf7\xba\x11\x79\xbd\xbf\x9c\x4e\x53\x29\x76\xa6\x44\x04\x1d\x40\x7e\xca\xd7\x32\xb0\x33\x4a\x30\x43\x9d\x01\x6b\xbf\x96\x8d\x94\x91\xdc\xe9\x23\xbc\x99\x3f\x51\x29\xc4\x59\x1f\x25\x64\xc5\xd3\x8f\xed\xc3\xe4\x06\x24\x4d\xa2\xae\x71\x6a\xf2\x5e\xfd\x10\x48\x91\xbe\xc9\x9a\xff\x76\xb2\xef\x21\xcf\x2d\x49\xeb\x64\xa8\x4a\xc2\x98\xbb\x1c\xd8\xf7\xcd\x61\xf5\xd3\xa7\x4a\x94\xa2\x4c\x22\x9a\x21\xab\x6a\xab\x37\xe5\x6b\x86\xdd\x08\x63\xe5\xc9\x2a\xd1\x80\xaf\x6b\x29\x9d\x68\xcf\x12\x89\x36\xca\x29\xf0\x6c\x2e\x55\xb9\xba\x72\xc8\x94\xe6\x41\x64\x4b\x8e\x67\xcb\x25\xdc\x5d\x46\x72\xfc\xe8\x87\xcd\xe2\xee\xf8\x63\x63\x15\xef\x87\x1a\x9d\x4c\x41\x12\x49\xed\x48\x05\xae\x10\x2b\x0a\x52\x21\xc0\x3b\x9c\x16\x71\x8f\xd6\x68\xf9\x3e\x9c\x5b\x90\x6a\xaf\x43\x7c\x07\xf5\x33\x12\xa0\x2c\xdf\xd1\x2e\x8d\xae\x66\x74\xa0\xd1\xf9\x29\x2f\x35\x1c\x41\x77\x29\x5d\x65\x34\x20\x88\xb3\x2c\xf6\x17\xf9\x1d\x53\xc2\x57\x85\xe4\x7e\x5a\xe8\x20\x64\x98\x42\xe9\xb9\x2d\x1e\x44\x36\x4f\xce\xc9\x74\xc0\x18\x6e\xf9\xf7\xe2\x94\x8d\x28\x9f\x3f\x18\x2e\x04\x72\x8d\x1c\xfe\xd8\x35\xd7\x65\x79\x1d\x72\x85\xcf\x70\x54\xe2\xbc\x7b\xf3\xf0\x73\x1d\x71\x8a\x42\x69\x4d\xf9\xf4\xd4\x8b\x0f\xdf\x4c\xd8\x8c\x99\x8e\x20\x01\xdb\xae\x2e\xf2\x35\xbc\x5a\xc9\xe1\x9f\x90\x3d\x3d\xfb\x8f\xa6\x63\x62\x12\x36\xac\x52\x8e\xbf\xb6\x8e\x53\x82\xdd\x63\xcd\xa9\xcb\xbb\xe9\x84\x5b\x78\x1f\xae\x13\x8f\x87\x9c\x5b\xa2\x3a\x01\x4b\x33\xbf\xf9\xe3\x70\x5c\xed\xee\x1e\x16\xf7\xff\x68\xf7\xd3\xdf\x37\xc7\xc3\xb7\xc7\x8d\x8f\xa9\x34\x71\xca\x86\x0a\x5b\xb9\x6f\xaf\x00\xec\x9a\x10\x8d\xaf\xa9\xc9\x4e\x70\x0b\xa6\x39\x94\x03\x24\x84\x1f\x03\x89\x25\x2a\x82\xba\x59\x57\xd9\x87\xec\x62\x6e\x38\x0d\xe2\xb4\x7d\x37\xcb\x2a\x13\x45\x13\x0d\x83\x2c\x4d\x35\x84\x9e\x81\xa4\x10\xe7\xfa\xb9\xf4\x70\x6d\x04\x85\x7c\xdc\x17\xa4\x59\x60\xac\x73\x85\x32\x77\xdd\x1b\x63\x22\x24\x49\xbf\x8f\x61\x71\x6d\x23\xaa\xc2\xbd\x6e\xef\xdf\x6b\x26\x12\xe6\x79\xbf\x10\x7f\x36\xa8\x63\xf2\x0f\x1e\x84\x69\x60\x6a\xa0\xcb\xed\xfe\xcc\x93\xc0\x2f\xea\xef\x35\x54\xfe\xfb\xcc\xf1\x59\x32\xcd\xa9\xbd\x3f\xdf\x95\x38\x93\x19\xd4\xdc\x68\xcb\xdb\xad\x14\x9c\x1b\xd0\xcb\xb2\x7c\xc9\x8a\x27\xa3\x26\xe3\xd2\x88\xe3\x06\x84\x30\x92\xfb\x9b\xc3\xe7\xd9\x09\x9d\x26\x42\x5b\x8f\xde\xd2\xde\x3b\xbc\xd7\xe4\xe3\xa6\x42\x23\xde\x1b\x13\x33\xc7\xf8\x68\xa3\x67\x9b\xa9\xeb\xde\x72\x2a\x13\x21\x3b\x49\x97\xaa\x3c\x95\x23\x8b\xa0\x53\x69\x94\x1c\x76\xd9\x0c\x24\x2d\x66\x1d\x41\x9d\xaa\x00\x7d\xac\xac\x75\xcb\xab\xa7\xfe\xa7\x44\xc2\x89\xe9\xb6\x8a\xac\x78\x5a\x67\xc6\x64\xea\x92\x77\x1d\xbc\x5a\x92\xd4\xb6\xbc\xa1\x4d\x85\xcb\xc9\xa9\x9a\xde\xc3\xd5\x9e\x3a\xf9\x55\x29\x12\xac\x33\x7f\x7d\x5c\xac\xa2\xc1\xf6\xa9\xa5\x30\xa9\x05\x87\x22\x90\x6a\xd0\xa7\xaf\x25\x58\xe2\x5c\xa4\xbc\x14\x75\x7d\x2e\xab\xcf\xfa\x87\xb4\xe2\x54\x39\x6d\x94\x9f\x90\x8d\x78\x5a\xfd\x88\xd4\x66\x01\xd5\xa0\xc1\xd5\x1d\xd2\x01\x67\x96\x21\xe9\x53\x99\xdf\x51\x02\xd2\x9f\x9a\x28\x15\x7a\xba\x29\x78\xcd\xca\x8b\x43\x72\x8d\x02\xdd\x76\xfd\x21\xa2\xf9\x6b\x05\xdf\x84\x7a\x19\xbe\x04\x88\x4c\x68\xf9\x25\xb0\xd9\xc3\xb6\x51\xfa\x63\xca\x5a\x5f\x3d\x28\xaa\xdd\x64\xbf\xfa\xef\x66\x42\x86\x77\xde\x46\xb3\x7d\xc2\x42\x1b\x42\x53\x6a\x09\xa3\xb3\xfa\xf9\xa1\x42\x2e\xb2\xa4\x3b\xca\x12\x74\xf5\x84\xa7\x21\x98\xcd\x54\x68\x93\x0a\xbc\xb6\xc9\x8a\x59\xf6\xc8\xd1\x13\x42\x10\xaa\xd4\x76\x74\xd8\x3c\x8e\xe3\x4c\x1e\xcf\x7b\x08\x12\xbb\x55\x3d\x94\x7b\xd1\x94\xf5\xb3\xef\x51\x83\x40\x80\x74\x65\xb5\x07\xd7\xee\xdc\x1a\x94\xef\x45\x93\xe5\x43\x56\xc4\xee\xf6\x20\xd0\x06\xd3\x80\x52\xa8\x17\x4f\x40\x30\xbb\x24\x21\x8c\x53\x5c\xc1\xf6\x8e\x06\x65\x53\xff\xe3\xa1\xb4\x74\x74\xa7\xac\xc8\x4e\x97\x93\x0b\xea\xbf\x4c\xae\x22\x0d\x2e\x59\xa1\xf5\xb6\xa8\x9b\xac\x19\xb3\x00\x0f\x67\x05\x44\x11\xc5\xca\xe4\xff\x95\x59\xd1\xfa\xe4\xad\x1b\xbc\x2d\x5e\xb3\x06\xaa\x9e\x2d\xdb\x8f\x4d\x43\xac\x11\x39\x2c\x7f\x69\x8e\x8b\xdd\xea\x68\xca\xea\xb8\x2b\xe0\xd8\xf7\x6a\x40\x1c\x18\xe4\x58\x6c\x9d\x07\xc4\x5c\xcd\x0a\xdb\x8d\xf3\xe2\xfe\xd4\x94\x0b\xbb\x01\x64\xff\xf5\xe4\x52\xa3\x64\x1e\xc4\xc6\x6a\xec\x29\x91\xe7\x77\xa5\xc6\xca\x8c\x8f\x69\x47\x44\xf4\x0c\x92\x54\x2b\xa7\x0f\x1c\xc4\x3e\x8f\x00\x24\x60\x18\xfb\xb9\xf8\xc2\x6a\x9e\xff\x19\x48\x69\xf2\xa1\x48\x68\x1b\x36\xba\xc4\xe8\x0c\xe1\xea\xe4\x8c\x88\x20\xc6\x6b\x73\xf8\x86\x4c\xb6\xb7\xdb\xbb\x8e\x0c\x00\x68\x2c\xb1\xa4\x8e\x44\x12\x0f\x50\xdd\x95\x45\xd7\x11\xdd\x1e\x34\xc6\x33\x77\x6e\x57\xbb\x71\xd3\xfa\xe4\x67\xa8\x08\x90\xdd\xee\x24\xaa\x97\x1b\xab\xe6\xf5\xc1\x0d\x79\x35\x84\x1f\xb7\xc3\x1d\x18\x18\x0d\x30\xf0\x7b\x2d\xdb\xa0\xc9\xef\x09\xfe\xa0\xd6\xbe\x75\x7b\x59\x96\x39\x88\xc2\xb6\x3a\x8d\x17\x18\x67\x04\xf1\x4a\x68\xe2\xcf\xa2\x12\x3d\xd9\x0f\xa4\xc4\x48\xd5\x4b\x51\xf9\x88\xd8\x6f\x92\x7e\x14\xe7\xc8\x40\xb2\xfb\xea\xff\x22\x12\x61\xb9\x4a\xca\xf2\xe5\xaf\x01\xca\x40\x72\x7b\x1b\xbe\x2c\xb9\x2c\xa7\x74\xfb\x0c\xa4\xb0\x54\x27\x77\xdb\xfb\xe3\xc3\xe3\x76\xb5\x39\x6e\xef\x8f\xab\xcd\xfd\x61\xef\x7f\x58\xc7\x21\x22\x8e\x0f\xdb\xc5\xa0\x09\x03\xb4\x91\x58\xaf\xc0\x96\x99\xab\x8d\x76\xb4\xc4\xc0\x24\x4a\x77\x62\xe1\xc2\xc1\x46\x6e\xca\xca\xea\xe4\x0d\x31\x78\xee\x0c\x43\x99\xf2\x45\x2b\x77\xf3\x93\xe2\x3e\x18\x11\x63\xa5\x74\x7f\x12\x6e\xbb\x19\xcc\x40\x3b\xc6\x84\x89\x45\x96\xd9\xd2\xf5\xe6\xd7\xb9\x2c\xfa\xa0\xc1\x84\x29\x20\xf2\xe6\x9f\xa5\xa8\x86\x33\xc0\x84\x9a\x62\x23\xc4\xb3\xa8\xb7\xaa\xf4\x0a\x0a\x7d\x77\x62\x77\x9f\x26\x04\x40\xbe\xb8\xb3\x78\xdf\x83\xba\x54\x59\xf3\xfe\xd0\xd1\x9f\x32\x93\x50\x15\x12\xdf\xe1\x70\xe9\x49\x58\x99\x21\x1a\x52\x5f\x3b\xb2\x44\xb1\xc7\xfd\xee\x76\xfd\xff\x38\x7b\x97\xe5\xc6\x71\xec\x4f\xf8\x5d\x66\x55\x8b\x5e\x80\x77\xe0\xdb\xc9\xb2\x6c\xab\xcb\xb7\x96\x94\x99\x55\x33\xf1\x0f\xc5\x01\x70\x60\xb3\x2d\x91\x6a\x92\xb2\x53\xf5\xf4\x5f\xf0\x00\xa0\x48\x8a\xca\xea\x99\x4d\x65\x85\x09\x51\x14\x09\x02\xe7\xf2\xbb\x74\x87\x4d\x42\x16\x9b\x7f\xfc\xb9\xd9\x2c\x3a\x39\x03\x93\x86\x89\x95\x04\x5b\x2d\xac\x87\xd6\x62\xd5\x3e\xaa\xd9\xfd\x62\x1b\x77\x63\x54\x46\xa9\xd0\x8b\x24\x4d\xc9\x71\x8f\xff\x97\x30\x22\x93\x31\x6e\x64\x57\x3d\x3f\x0b\x6e\xf9\xc3\x90\x44\x16\x7b\x53\xee\x0f\xc7\x06\x9f\xf1\x67\x43\x8e\xf6\x3d\x7d\xc9\xcc\x70\x66\xed\x7c\xdc\x0c\xff\x67\x79\x1a\xdc\x5d\x1e\x26\x21\x0e\x3c\x2f\x07\x25\x1f\x23\x12\x8b\x5f\x76\xa8\x00\xd2\x6c\xab\x26\x72\x66\x23\x44\x48\x31\xd7\x7a\x31\x7f\x79\xbe\xdd\x7e\x7f\x79\xfc\xf6\xb4\xd8\x2e\xfe\xd8\xac\x66\xdb\x9b\x97\xe7\x6f\x7e\x06\x1b\x48\x53\x2a\x2b\xb4\x0b\x26\x56\xb7\x38\x12\x06\x34\x00\x16\x1f\xdf\xd1\x2f\x3c\xab\xb6\xdd\x0b\x46\x58\x79\xff\x11\x69\xcb\x3e\xf9\xd9\xcf\xc0\x1f\x51\xc8\xfb\xf2\xb1\xf3\xae\xbb\x31\x9a\x3b\xa0\x33\x02\xb2\x0d\x95\x00\x7e\xa1\x38\x7f\x19\xf3\x1b\x19\x5b\xc7\x8f\x8a\xfc\x56\xec\xb6\xd4\x26\xf9\x37\xa0\x3e\xd6\xe5\x1d\x8c\x30\xb9\x46\xc6\x9a\xfc\x3f\x6f\xb1\x6e\xaa\xf2\xd2\xe5\x7e\xf8\x23\x65\xaa\x08\x75\xeb\x9e\x84\xe7\x91\xf7\xcb\xa4\x83\x17\xdd\x28\x66\xfb\xdd\x8f\xf8\x86\x85\xae\x69\x6f\xf8\x95\x82\xb0\xff\x58\x64\x28\xd2\x80\xe2\x0d\x77\xf7\x65\x57\x84\x34\x4a\x58\x05\x88\xf7\x72\xa7\x07\x7d\x5a\xa3\x94\xa4\xdc\x11\x2b\xe5\x5c\xde\xeb\xb1\xda\xa7\x1b\x89\x51\x96\x74\x6c\xf9\xfd\xbe\x2f\x79\xe7\x47\x24\x76\xef\x81\x43\xb9\xdb\x95\xeb\x03\xaa\x1c\x76\x17\xe6\x27\xc3\x4b\xc6\x34\xe0\xb6\x30\xfd\x37\xdd\x0c\x83\x59\x68\x91\x79\xd8\x78\x37\xea\x89\xb9\x6c\x98\x22\xd9\x8c\x1f\x08\x84\x37\xe8\x75\x17\x7e\x19\xb0\x1b\x03\x9c\x5e\xc9\x26\xff\x79\x57\x1e\x8b\x1e\xc0\xcc\x18\x15\x85\x16\x80\x7d\xe9\x1e\xec\x87\xe8\x90\xb4\x33\xad\x5b\x72\x05\x79\x71\xc9\x9c\x1f\xff\xfb\x7f\x12\x3f\xfb\x0c\x06\x59\xe0\x82\xb5\xc9\x9a\x04\x67\x2c\xb6\x1a\x5e\xfe\xd5\xa2\x86\xd1\x99\xef\xe3\xc2\xdd\xab\x59\x2d\x67\x2c\xd1\x04\x98\xff\x67\x5e\x1c\x7b\xcb\x08\x67\x4c\x31\x92\x7a\xc5\x9f\x4d\x05\xe7\x22\x0d\x67\x0c\xd3\xae\xff\x42\xb0\x93\x3e\xa4\xac\x3d\xec\x68\xab\x96\xda\xb6\x85\xfe\x74\xe1\x2c\x48\xac\xef\x5b\x4f\x91\xe8\x7c\x4c\x4b\x42\xec\x2d\x7e\xc2\xfc\xe1\xae\xfb\xab\x61\xcc\x8c\x98\xc9\x53\xf3\xbc\x1d\x19\x39\x17\x4a\x82\x69\xfe\x36\x3e\x2a\xd1\xa5\x45\xcd\xb8\xfd\xd7\x0d\x31\x01\x3b\xeb\xe9\x38\x89\xa1\xe1\x98\x30\x06\xe5\xdb\xfd\x23\xf6\x10\x67\xa1\x11\x24\x3c\xfc\x5a\x7e\xe0\x1c\xdb\xf7\x65\xba\xae\xc8\x59\x94\x49\x82\x3e\xe5\x75\x7d\xc4\xea\x9f\xc7\x2a\xaf\x75\xde\x63\x3e\x72\x16\x89\x30\x62\x7d\x9f\x99\xfb\xb2\xd4\x17\xcc\x7c\xce\x62\x2e\x88\xe6\xd7\x13\x04\xbd\x8e\xf0\xe2\x2c\x09\xac\x6f\x98\x55\xea\xeb\xa4\x31\x38\x4b\xe2\x90\x50\x6e\xf8\x13\xd5\xb1\xc1\xf5\x21\x2f\xea\x61\x93\xd3\x0d\x4c\x59\x84\xb2\x23\x1e\xd8\x1a\xd1\x1d\xe2\xd6\x9f\x28\xe5\x19\x7d\x83\x75\xe8\xb3\xa5\xa7\x65\xf1\x1d\x6b\x6b\xb9\xee\x47\x49\xa4\x5a\x9f\x93\xcb\x76\x7e\x2e\x57\xee\x56\xaa\x64\xec\xca\x87\xf7\xb9\x69\xd6\xe5\x8e\xbc\x43\x36\xa7\x03\x8e\x9e\x72\x96\x45\xa4\xde\xf2\x34\xfb\x63\xf9\xf4\xed\xc9\x3b\x0e\x7d\xdb\x50\x41\xfa\x61\xb9\x59\x3c\x2e\xd7\x9b\x76\x67\x5f\xbe\xdc\x6e\xbf\xad\x6f\xfd\xf5\x70\x95\xca\xd4\x6b\x52\x59\x93\xbf\xba\x03\x70\x8e\xca\x6f\x9c\x71\xb4\x39\x9a\x33\xbb\x1e\xcd\x11\x11\x07\xce\x19\xa2\xcd\x84\xdd\x73\x25\x20\x59\x30\x08\xdd\x38\x13\x49\x4c\x28\x28\x07\xfa\x69\x27\xdd\xde\x46\x51\xdd\x8d\x12\x0a\xb5\xa7\x79\x5b\x77\x9a\xc1\x19\x20\xb2\xc2\x0c\xed\xe1\xdb\xbc\x57\x21\x1f\x3c\x33\x70\xa8\xf3\x36\xae\x3e\x35\xc4\x9b\x6b\xff\xe5\xbf\xf5\xba\xd7\xdc\x8f\x8d\x43\xea\xdf\x3f\xe6\x06\xd7\xd8\x6c\x19\x4b\xfd\xb5\x80\xab\xd5\xd0\x42\x68\x65\x13\x86\xb7\x1f\x8c\x75\x61\xb9\x85\x9f\x24\x62\x3e\x64\xcc\x70\x26\x99\x26\x38\x9c\x41\xbc\xc5\xa2\xdc\xe7\xc5\xd9\xeb\x9d\x33\x19\x5a\x3b\xdc\x1d\xd4\x9e\x4c\xe1\x0f\x29\xa6\xa9\xe9\x6c\x51\x14\xb3\xba\xc6\xa2\x19\xac\x57\x8a\x69\x63\xd7\x9d\x9f\x37\x8e\x32\xd1\xdf\xd2\x38\x53\x22\x22\xae\xf4\x3b\xd4\x13\xba\x36\x9c\x29\x08\xb8\xb5\xe6\x2a\xc9\x84\xda\x53\x50\xbb\xcf\xcb\x98\x54\x06\xee\x3d\x45\x9f\x33\x0d\x71\xe2\x7c\xe2\x36\xb9\xf5\x69\x9a\x15\x63\x82\xc2\xf4\x5a\xa5\x65\x20\x5d\xd9\x70\x51\x55\x45\xd9\x9d\x52\x45\xc4\xb9\x28\xad\x23\x61\xaf\x84\xc8\x19\x62\x44\xd2\x24\xa6\xac\xde\xda\x94\x72\xfe\x0e\x55\x3d\x7a\x00\xe8\x44\x1d\x41\xa9\xe3\x9e\x96\x67\x7d\x0f\x35\xa1\x60\xdd\x08\x13\xab\xd0\xb6\xc1\xe5\xde\xd9\xa5\xdf\x1c\x4f\x24\xf3\x77\x4d\xba\xd2\x7f\x92\x9b\xd8\x38\x23\x3b\x8a\x48\xc3\x17\x33\xfc\xfa\x20\xc8\x40\x9e\xbd\x45\x29\xd0\x9b\xb0\x52\xe3\x41\x98\x46\xa1\x8b\xdc\x49\x92\xfc\xa6\xdd\xe8\xfd\x31\x8e\x54\x83\x96\xc7\xd3\x53\x59\xf9\xaa\x1b\x0f\x42\xc1\x43\x8b\xa5\x52\xef\xb3\xdd\xee\xae\xac\xe6\x50\x68\xa2\x6a\x8c\xae\x22\xd4\x21\x80\x37\x1e\x27\xd9\xa4\x89\x6a\xd9\x3f\xc6\x9f\x11\x54\x27\xaa\x3d\xd3\x79\x12\xba\xc7\x83\x48\xa6\xdc\x89\x16\x2c\x55\x69\x93\x16\x77\x28\xe1\x48\x55\x89\x1b\x7d\xe8\xe5\x4a\xf6\x0d\xf3\x43\x84\xc5\x60\xb6\xdb\xe2\xfa\x7e\xfe\xad\xc6\x91\x4c\x01\x0f\x12\x85\x9d\x41\x35\xa8\x0f\xec\x5a\x65\xa3\x71\x29\xd3\xc4\x32\x69\x7a\xc6\x3a\xfe\x50\xc6\xd0\xb2\x6b\x66\xce\x22\xf7\xc5\xc6\x03\xd3\xcb\x6b\x90\x66\x31\xb5\x41\x4a\x43\x32\x1b\xbb\x7b\xd8\xe3\xb7\x6a\xd7\x9d\x0e\x33\x11\xfb\xbe\x63\x5e\xf4\xde\xe7\x20\xe3\x56\xef\xe7\x50\x7e\x9c\xff\xa6\x12\xb0\x9a\xa0\x9f\xe5\x07\xde\x57\x63\x9a\x37\x0f\x40\x04\xde\x22\x83\xe8\xcf\xbf\x7e\x32\x00\x01\x09\xc1\x37\xf0\x71\x66\x27\xf1\x40\x46\x92\xd4\x58\x8c\x73\x8c\xeb\x00\x04\x3c\x90\x89\x20\x06\xc4\xa1\x4d\xcd\xb6\xf1\x56\xb6\x93\xa0\x3b\x88\xcc\xdb\xc8\xd8\xda\x42\x6f\xed\x0b\x14\x47\xaa\x07\x12\x90\x70\xa4\x43\xe5\x86\x68\x9e\xd0\xf6\x97\xbb\x8e\xfe\x0a\x35\xe2\xb4\xf7\x10\x0f\x34\xd8\xa2\xe4\xa2\xac\x5f\xf3\xbf\xfe\x82\xf5\x2e\x57\x78\x5b\x5a\x59\xbf\x0a\xf2\xb1\x0e\x31\x0f\xb4\x92\x3e\x99\x7f\x82\x9f\x24\xda\x37\xed\xf7\xc7\x03\x64\x41\x18\x8f\x30\x0a\x14\x8d\x0c\x87\xb5\x69\x7a\x46\x7b\x95\x45\x4b\xc9\x1d\xf6\x62\x85\xf1\x58\x91\x26\x54\xe8\xdc\xed\xd6\xb8\xdb\xd1\xb2\xf0\x6a\x15\xfc\x77\x17\xd0\xc5\xd1\xf5\x98\xb8\x13\x6a\x74\x08\xa6\xf5\x65\x1c\xd6\x8e\xf2\x4a\x42\x36\x36\x58\x37\xd5\x51\x35\xe7\x58\xea\x57\xf1\x3e\x0f\x8c\xe6\xd6\xbd\x98\x1a\x4a\xfd\xe8\x76\x18\xcc\x05\xc6\x28\x4a\x4c\xee\x6d\xcc\xd0\x73\x92\xe3\x21\x13\x21\x09\xc1\xb8\x96\xec\x69\x2f\xcb\x01\x88\x8d\x87\x4c\x26\x14\x0d\x91\x4d\xcf\x38\x55\x18\x5c\x51\x18\x28\x1b\x42\xff\x1b\xd4\xc7\x6b\xd9\xf4\x5c\x39\x79\x18\xa0\x2d\xb4\xd8\xce\xca\x40\x39\xf0\xca\xd9\x42\xc9\x09\x2e\xd1\x03\xd4\xd8\x8f\x4d\x91\xfb\x78\x18\x2a\xe9\x8b\xfd\x6d\x78\xb5\xac\x07\x05\x35\x1e\x86\x86\x93\x50\xbb\x2d\x7f\xaf\xc1\x8c\xb6\xbd\x30\xca\x62\x0f\xb1\x76\x35\x32\xda\x12\x2e\x46\x21\x53\x1d\xf1\xeb\xe6\x78\x92\x3d\xbd\x5c\x37\x26\x8e\x04\x85\x5e\x94\x0d\x6d\x2d\xb6\x6a\x82\xc1\xc4\xc3\x38\x4e\x03\xed\x19\xc7\x6d\x88\xd5\x45\x00\x61\xcc\x4d\x08\x7d\xe8\xcf\x2f\x53\x68\x1e\xc6\x22\x22\x6e\xc9\x61\x07\x45\x83\x7a\x84\x54\x6d\x8f\x0b\x8a\x0a\x72\x55\x8e\x32\x91\x30\x86\x98\x16\xa1\xb2\x70\x12\xcc\xfe\x40\x12\x85\xc4\xe6\x6a\x88\x3a\x55\x9f\xf5\xd6\xfd\xf1\x2c\xb1\xc2\x2d\x5e\xc5\xe3\x6e\x57\x3a\x76\xee\xa8\xfb\xc6\xc3\x44\x33\x6c\x27\xda\xb6\x7d\x3e\xf3\x36\xdc\x9c\x7e\xea\x69\x6c\xa2\xc8\xf3\xcb\x9e\x86\xa6\x11\x3c\x4c\x8d\x24\xef\xf7\x6d\x97\x73\xad\xdf\x09\x9d\x3a\xf5\x1a\x86\x99\x02\xe3\x96\x05\x72\xa5\x1c\x3d\xa6\x0c\x35\x15\x48\x57\x08\x07\xac\x82\xc0\x7f\x09\x4f\xb0\xe7\x86\x4d\x0a\x65\x03\x4d\xfa\x31\xbb\x74\xf4\xad\x3c\x43\x13\x9e\xd3\x07\xcb\x87\xbe\xf2\x6b\xb9\x88\x09\x3f\xac\xac\x12\xd7\x52\x95\xb6\xe4\x3c\xe2\x40\xb7\x03\x39\xd5\xe9\xba\x5b\xad\x27\x76\xcc\x90\xcb\x30\x89\x5d\x5c\x62\xf9\x6e\xbd\x7a\x19\x0f\xb9\x96\xf4\x6d\x14\x52\x39\x25\xbf\xe1\x09\x44\xc4\x14\x5a\x83\x6e\xd4\x9b\x92\xea\x72\xfd\x4c\x6b\x44\xb3\xed\x6d\x18\xa1\x90\x19\x35\xd1\xe5\xb1\x3d\xef\x20\xe2\x0c\x21\x4b\x98\x5b\x0f\x9f\x6c\x3b\x65\x4c\x8b\xe1\x21\x60\x62\xc2\x9e\x48\xcb\x5d\x59\x2d\x1b\xdc\x8f\x47\x19\x91\xba\x94\xeb\xb8\x83\x6a\x51\x10\xbc\x69\x70\x79\x67\x8f\x98\xe9\x37\x45\x32\xc9\x98\xef\xa0\x3a\x0f\xe4\xd2\x35\x27\xfc\x05\xcb\x20\x8e\x95\x37\x03\xde\x63\xd1\x8c\x7a\xe2\x7e\x58\x6c\x21\xb5\x05\x5e\x33\x50\x19\x2d\x52\x3a\x0a\x53\x97\xbe\x11\x50\x6d\xf8\x22\xea\x8c\x11\xec\x92\x3a\xbe\x16\xc2\x30\x8a\x6a\x43\x2d\x6d\x31\xba\xcd\x58\xdf\xa1\x79\x80\xc3\x01\x8b\xf3\x22\x87\x4c\xc5\xe2\x6c\x1c\x52\x75\x0e\xf4\xb3\xba\x0d\xe7\x7a\x76\xe2\x3c\xc4\x2c\x89\xce\x2c\x18\xe7\xf4\x35\x9e\xda\xd3\x53\x1c\x39\xa4\x67\xdb\x61\x32\x1c\xb6\xd8\x69\xaf\x85\xe2\x3f\xed\xeb\x4e\x3c\x44\x01\x01\xf6\xf4\xf5\xbe\xe3\x7b\xae\x76\x68\xd9\x80\xe3\x79\x8c\xc8\x32\xd3\xa9\x50\x77\x5d\x4e\x37\x77\x46\xb7\x04\x4d\xc6\xfd\x3d\x7d\x3a\xfa\x58\x2d\x34\x4e\x9e\xd8\xb9\x62\xe8\x73\x82\x1f\x31\xa6\x28\x2a\x9a\xb7\x77\x8f\x9c\xe8\x3b\x12\xef\xf0\xdc\x11\xd3\x29\x49\x0f\x2c\xeb\xfb\xb2\x99\x12\x6d\xf3\xe3\x8c\x55\x5b\x78\xc3\xe6\x0c\xc5\xb6\xb7\x21\x76\x43\xc2\xd8\x22\x08\x3d\xbe\x66\xf8\xec\xa3\x28\x10\xdc\x38\x19\xfe\x27\xdc\xdb\x79\x19\x5e\x2d\x91\x0d\xae\x32\x92\x76\x6f\x75\x2e\xd0\x93\x24\x61\x1e\x45\x06\xe2\xb3\x6c\xf7\x14\x35\xfd\xef\x9a\x71\x3c\x8a\x43\x45\xc8\x61\x47\x9b\x3a\x2b\xb4\xf2\x28\x16\xcc\x4a\xa4\xbc\xe7\xd3\x15\x52\x1e\xc5\x68\xa8\x78\x61\x05\xd6\xf0\xb4\x19\x31\xbe\x79\x94\x60\x42\x21\xbf\x47\x56\xdd\x7e\x5b\xcd\xa8\x60\x11\xff\xe9\x87\xa4\x49\x60\x8d\x6c\x28\xb1\x75\x98\xb5\x36\x8c\x5b\x9f\xf3\x95\xb2\xdc\xfd\xd2\xad\x6d\xea\x87\x4e\x14\x78\xa2\x54\x80\xb3\x16\x25\xbe\xc8\xa0\xe7\xc9\xa3\x2c\xe0\xda\x03\x16\xdb\xb5\xa4\x3c\xf6\x4b\x60\x11\x8f\xb5\x5f\xd0\x3c\x50\x74\x9c\x25\x46\x5c\x03\x74\x44\x0b\xd8\xed\x2f\x3a\x54\x3c\x12\x10\x13\x0f\x77\x6b\xe3\xbc\x45\xf3\x7e\x29\xbb\xcc\x23\x21\x81\x0a\xe2\x7f\xdd\x5b\xe5\xcf\xd1\xa5\x42\x26\xa8\x8a\x7d\xa8\xf0\xad\x80\xa2\xf9\x3d\x6f\x9a\x0e\xbb\xcc\x23\x90\x48\xd5\x7a\x2b\xd1\xf2\x05\x95\x5e\xdf\x0c\xa2\xc0\x48\x46\x41\xe2\x4c\x29\x89\x90\x35\x3a\xbf\x74\xae\x17\x33\xad\x6f\xa0\xf8\x20\x0d\x0e\xe3\x6a\x22\x7c\x34\x87\x54\x22\x88\xdb\x7b\x9b\xbf\xe5\x0d\xec\xee\xcb\x9d\x5f\xbe\x22\x1d\x26\xe4\x65\xb7\xb6\xab\xdb\xe8\x4e\xe8\x58\x19\x02\xdd\x3c\x6f\x46\x21\x4c\xa4\x8d\xd5\xea\x27\xdf\x8f\xbc\xf8\x84\x5d\xae\xd7\xc7\x5c\xe5\x5d\x30\x13\x19\xe1\x7d\x66\xfe\x65\xdd\xb5\xfc\x62\x1e\xf9\x97\xd8\x18\x46\xa5\x76\x6b\x32\xe3\x63\x8e\x98\x05\xdc\x46\xae\xed\x7d\x79\xc8\xdf\xde\xd7\xea\x3c\xed\x63\x66\x18\x91\x57\x29\x60\xa4\x8d\x6b\x78\xd5\x71\xc0\xb9\xf1\x3e\x4d\x4d\x79\xb8\x28\xf7\x9f\xd7\xc8\x38\x8c\x18\x19\x02\xae\xdf\xcb\x2f\xec\x77\x0a\x79\x1c\x45\x92\xea\x4d\xb7\x15\x7c\xbd\x56\x48\x06\x28\xee\x50\x92\xb2\x98\xf4\xad\x8e\xaa\x71\x19\xfe\xf0\xbd\x8b\x53\x11\x53\xa9\x79\x07\xb5\xab\xa0\xbe\x42\xae\xcf\x47\x6d\xbd\x48\x81\xcd\x52\x9c\xee\xff\xb0\x92\x17\xa7\x3a\x08\x2d\x94\x83\x96\x7b\xe7\x90\x31\x1c\x93\xa5\x5a\x3a\xe9\x4c\xcb\x96\x3f\xa7\x95\x7f\x27\x2c\xc0\xe3\x2c\xcb\x84\x6d\x3b\x1f\xbd\x63\x25\x8f\x33\xc5\x68\xbb\xcf\xf5\x68\x35\x8b\xb9\xb0\xd0\xf8\xe6\x3d\x2f\xde\xe8\x6a\x7e\x1b\x32\x58\x78\x2c\xe2\x80\x38\x41\xba\xec\xab\x16\xf3\x58\x48\xeb\x08\xbc\xb0\x01\xda\xe6\x97\x3a\x79\xd3\x17\x2b\x9c\xaf\xca\x9b\x6b\x9f\x70\xe6\x0e\x80\x50\xd4\x08\x7e\x2c\xdf\xc2\xad\x29\xd4\x35\xc2\xe8\xa4\x4c\xff\x70\x2d\x0a\xae\x7c\x37\xe8\x84\x40\x0a\xdf\xff\x7d\x3c\x43\x86\x78\x2c\x03\xe1\x75\x51\xdb\x4d\x72\xfb\xd6\xb5\xb7\x78\x2c\x45\x42\x6f\xef\x94\xd2\xfc\x30\x3a\x8a\xa5\xb6\x90\x41\xbb\x97\xb4\xeb\xd1\xe4\x6e\x12\xab\x8c\x45\x56\x90\xe4\xad\x9d\xf5\x4b\xa7\xa7\xf3\xdf\xb2\xf5\x47\xbf\x49\x33\x0b\xb6\x69\x10\xf6\xcf\x24\x5c\xac\xf1\xe7\x60\x05\x8a\x75\x00\x94\x2d\xdb\x04\xf2\x26\xd7\x43\x5b\xe4\x09\x98\x37\x8f\x75\x2a\x68\x79\xcd\xeb\xae\xc3\xec\x5b\x63\x7e\x84\x8c\xa4\x71\x77\x66\x51\xa9\x90\xdd\x62\x4f\xef\x75\x3c\x73\xe9\xef\x21\xeb\xfe\x1d\xde\x12\xe4\x89\xb7\x6f\x7e\x5d\x6e\x51\xe7\xcd\x36\xf2\x49\x45\x6c\xa4\x45\x05\xb7\x61\x18\x05\x40\xf3\xbe\x09\x92\x1f\xa4\xd3\xa4\xdb\x20\xf7\x2b\xdc\x41\x33\x76\x24\xe3\xb1\x31\x9a\x62\x92\xd5\x6c\xb3\xd8\xce\x57\x2f\x3f\x6e\xa9\x45\xbf\x0e\xdd\x57\x25\x2c\xc8\xac\x6a\xe2\x0e\xa1\xfa\x27\xa8\x8f\x43\xd9\xbc\x9e\x95\x06\x2d\x56\xbe\x1f\x57\x75\x1f\x4c\x03\x6d\x89\xf8\xba\x5c\x36\xdd\x5f\xb3\x30\xb0\xfa\x5d\xfb\x03\xd1\x27\x5e\xcc\xa5\xac\x3f\x4f\x02\xc1\x8c\xb3\x0c\x9d\x1f\xeb\xa6\xdc\x63\xf5\x95\x37\xef\x8b\xcd\xc3\xaf\xab\x5a\x49\x80\x16\xae\xf3\xb2\x2f\x72\x5d\xee\x76\xe0\x73\xe0\x24\x64\xb6\x51\xb5\xf8\x6c\x23\xf0\x7c\x80\x23\x6d\x8f\x6a\xab\xd5\x83\xc5\xb4\x7f\xfa\xaf\xbf\x36\x44\x4e\x71\x44\x97\x49\xda\x8d\x6f\x3a\x51\x4b\x22\xcd\x22\xe7\x9c\x35\xab\x3f\x72\xe7\x04\x6a\x6d\x64\xfc\xe5\xc6\x61\x48\xe1\xfb\x6a\x71\xb7\x58\xad\x66\x8f\x16\x1b\xb0\x7d\x5c\x7c\x5f\x3c\xfa\x79\x90\x24\x68\x8d\xff\x5c\x57\xf0\xc5\x8c\x12\xf5\x24\x85\x94\xc8\xc3\xaa\x3c\x1e\x76\xb8\xdc\xc3\x1b\x2e\x5f\xef\xd6\xef\x50\xfb\x55\x31\x49\xa5\xa2\x46\xe0\xcd\xf1\xe4\x1c\x91\xc6\xe7\x50\x01\x09\xcd\xed\x21\x2f\xb6\xbd\x2a\x65\x92\x22\x0b\x5c\x8f\xf8\x7b\x69\x23\xb8\x49\xad\x0a\x9e\x64\x91\x34\xe7\xdb\xe3\x6f\xce\xf4\xad\xcc\x32\x43\x52\x36\x0a\x76\xed\x5a\x30\x3e\x93\x40\x85\x7e\x3a\xb6\x41\xc3\xf8\x6a\x79\x0c\x64\x04\xfc\x0e\xf5\x6c\x57\x21\xe8\x13\x6d\x52\x7a\x3c\x2c\xb3\x64\x14\x8d\x9f\xb8\x2b\x0f\x5d\x3d\xdd\x1f\x56\x92\xca\x61\x56\xae\x93\xbc\xec\x7e\xeb\x29\x70\x76\xd3\x46\x04\x19\xd5\x89\xce\xda\x6d\x9b\x92\x1a\xda\x57\x9e\xbc\x90\xa1\x76\x55\xba\x5b\x5b\xa0\xbb\x85\x06\xae\x0d\x56\x1c\xc3\xb3\xf7\xac\xd3\x9c\x19\x8e\x81\x24\xf5\x9a\x59\x3e\x18\x98\x5c\x62\x13\x48\xad\xd4\xae\xce\x6b\x8a\x2e\x28\x55\x69\xa7\x1e\x35\x2c\xc7\x83\x33\x4d\xa8\x50\x87\x44\x5b\x1d\x77\xe3\x48\x24\x91\x82\x51\xd6\xf6\xaf\x23\xe8\xde\xce\x91\xa8\x38\xcc\x6c\x3f\x88\xb8\x80\xe7\x8e\x73\xa2\x54\x96\x04\xce\x81\xf3\xca\x2f\xd6\x01\x78\xe1\xcc\x6f\x85\xca\x2b\xfb\x2e\x69\x5b\x86\x9f\x58\xe3\x12\x2d\xd0\x6a\xda\xbc\x3c\xfe\xad\x3c\x16\x4f\x90\x31\xe3\x6a\xd4\x2e\x2e\x21\xa5\xa0\x0d\xfe\x1c\x9f\x17\x63\x2b\x7a\xe8\x74\xcd\xe7\xe0\x25\xfc\xfc\x71\x61\x3b\xd2\x3d\x33\x03\x9f\x7c\x0e\x27\x88\x09\x23\xb2\x30\xdf\x42\x25\x73\xd7\xd5\xf5\x60\x58\x3b\x24\x0d\xa2\x24\xe9\x3b\x1c\xb6\x29\x64\x87\xe5\x19\x3e\x98\x34\x50\x32\x74\x54\x8e\xe7\xf2\xcb\x35\x7f\xa9\x5f\xeb\x07\x60\x42\x74\xcf\x36\x76\xa5\x93\xf4\x03\xbf\x34\x54\x01\xeb\xe3\xb9\x5d\xe0\x5d\x6f\xca\xc7\xf2\x2d\x57\xe7\x61\x80\xca\xb3\x62\x48\x93\xc9\x73\xb1\xdc\x80\x38\x48\x14\x3b\x63\xa5\xea\x72\xb7\xcb\x35\x6c\x10\xf6\x03\xd4\x42\x1a\x3b\x09\xb3\x8a\xfc\xbf\x7b\x82\xf0\x3c\x8d\xb5\xcc\x82\xb3\x6c\x1c\x36\xf9\xc0\xa2\xbc\x7b\x14\x69\x92\xda\x5c\xdf\x58\x9c\xc8\xa0\x16\x94\x26\x02\xb4\x17\x90\x92\x79\x33\x78\x89\xd3\x44\xd9\xfc\xef\x8d\x30\xfa\x5d\xf9\x2b\x4d\x59\xa0\x6c\x33\xaf\x21\x1b\x65\xdd\x1d\x08\x6c\x83\xa3\xdd\x6d\x6f\xdd\x7b\xf2\xeb\xe2\x7c\x9a\x0a\x46\x46\x6e\xb2\x2a\x41\x2b\xa8\x9b\x27\xac\x6b\x78\x1b\x30\x6b\x78\x9a\x82\x6d\x3e\xbd\xc2\x69\x55\xee\x76\x0f\x79\x7d\x21\xe8\xc9\xd3\xd4\x64\xa4\x1a\x34\x2f\x8b\xba\x81\xa2\x81\xc1\xa3\xcb\x02\x4d\x0f\x76\x76\xd4\x79\x73\xd9\x72\x1a\x46\x0f\x69\x26\x05\xdd\xf8\x2d\xcd\xc6\x4d\x79\x63\x27\x65\xbf\x5a\x9f\xf2\x50\x04\x0e\x62\xb4\x3c\x0c\xaf\x97\x27\x01\x11\xc5\x7e\x7f\x5a\x0c\x2e\x82\xab\x10\x3c\xfd\xb2\x7d\x7b\xd0\xe1\x6e\xd2\x78\xf4\xfd\x22\x51\x84\xcf\xbc\x5d\xdb\xcf\x4f\x56\x7e\x52\x01\x8c\xc7\xe7\x69\x64\xfb\x16\x57\x54\x5e\xdd\x47\x64\x6a\x68\xc7\xb3\x75\x87\x3b\xd8\xed\x24\xa8\x0f\x8f\xa7\xf6\x83\x32\x41\xf8\xe1\xbc\xf6\x5c\x7f\x1f\x51\x8e\xb6\x81\x54\x82\x2d\xae\x13\x33\x8c\x38\x02\x4f\x79\xe1\xf3\xdd\x5e\xfe\x9d\x4a\x29\x99\x57\xf8\x38\x1c\xe6\xa5\x1e\xa5\x34\xa9\x54\x40\xe0\x84\xb2\x68\xca\x5d\xf9\xe6\x9b\x86\xa9\x12\x32\x08\x3c\x22\x65\x5a\x64\x6f\x58\x07\xf5\xea\x22\x6d\xee\x31\xe2\xd1\xf3\x54\xe9\x4c\x5b\xb5\xe3\x4a\x6f\xc9\x61\x6f\xdb\x33\x1f\xe4\xa9\x16\x8a\x0a\xe3\xb0\xdb\x95\x5f\xb3\x4f\x68\xa0\x1a\x0a\x6b\xb4\x43\xbc\x04\x81\x6c\x7f\xef\xe4\x6e\x91\x6a\x19\xd2\xfc\x41\x55\xd6\x24\xa9\x70\x73\xcc\x49\x51\x6e\xf8\x7e\x63\x94\x11\x5d\x73\x3e\x7f\xd8\x2e\x6e\x97\x1b\x8f\xe7\xe4\x29\xc6\xa1\xc8\xce\x22\x87\xf3\x2e\x61\x4a\x31\x63\x54\x3d\x30\x65\xa5\x70\xa6\x3f\x7b\x99\x7f\x8a\x92\x53\x86\xa6\x8a\x66\x7b\xc0\x6a\x8b\x65\xf7\x55\x86\x45\x96\x70\x03\xc6\x0f\xcf\x18\xe3\x44\xac\xcb\x09\xf8\x3e\x6f\xc3\xbd\x06\x2b\x92\x1f\xaa\xba\x31\x71\x46\x72\x27\x8f\xe5\x1b\xb1\x7a\xf4\xd8\xb8\x97\x67\x0c\xb2\xa8\xd3\x61\x7a\xde\xdc\x76\x1f\x05\x1d\x78\x01\x5d\x77\x97\x86\xd8\xf7\x5e\xba\x9d\x31\x65\xb5\x2a\x74\x59\x58\xbc\x82\xf5\x70\xbf\xcf\x3f\x47\x68\xbc\xf3\xbb\x32\x9c\xda\x59\x10\x5b\x07\xad\x83\x03\xbf\xfe\xc8\x9b\xf7\xbb\x7c\x5c\xb8\xc8\x68\x49\xfc\x5f\xff\xdf\xff\xfa\x63\xf1\x3c\xef\xbf\x9c\x59\x14\xd9\x7a\xc7\x62\x5f\xfe\x3b\xef\xfe\x98\x21\x61\x3f\x6c\x3b\x15\x2f\x69\x7b\xd3\xd7\x92\x70\x2b\x14\xf5\x55\x56\x3b\x3d\xaa\xab\x65\x09\x80\xf5\xf8\x77\x1b\xd6\xb9\xb0\xef\x07\x28\x65\x9c\x54\x85\x05\x96\x10\xfc\xc6\x79\xf2\x8d\x6b\xf5\x59\xca\x90\x3a\xce\x2b\xf2\x33\xce\x8b\xb7\x99\x6b\x4b\xf4\xa7\x6d\x96\xc6\x31\xed\x17\xb3\xe7\xcd\xed\xe0\x67\xa7\x9a\x01\xe1\x20\xeb\xe6\xd8\xe0\x0e\x7c\x87\xcb\x1d\xce\x8c\x15\xd9\xfa\xcf\x31\x57\x1f\xeb\xb2\x3a\xdb\xf0\x86\xc1\xff\x4c\xe5\x79\x19\x0f\x53\x4a\xc7\x57\xe7\x3d\x3a\xe3\xda\x8a\x38\x2d\x36\x0f\x16\xf8\x4c\x0a\x7a\x8b\xf5\xda\x0f\x10\x09\x27\xf8\xef\xf7\x97\xe1\x43\x11\x59\x4c\x85\x88\xc5\xf3\x66\xb1\x5a\xdc\x6e\x9f\x66\xeb\xdf\xcf\xc7\x14\xf5\x9f\x70\x9f\xfb\x26\xe1\x5d\x55\xfe\x75\x85\x81\xc4\x33\xa1\x42\xca\xa8\x9e\xf1\x6b\xd0\xa0\x1d\x8d\xd2\xf6\xe6\x3f\x2d\x9f\xdd\xa5\x12\x40\xde\x7f\x29\xa4\x21\x39\xbd\x7d\x96\x0d\x2e\x2e\x49\xd4\xbf\xf5\xa6\x34\xa8\x58\xc9\xbe\xdb\xba\xd7\xd5\xf7\xc7\xb5\x21\x48\xb4\x69\xe3\x1e\x30\xb8\xad\x8f\xd2\x4e\x94\xc9\xbd\x32\x93\x81\xed\x42\x7e\x7f\xf9\xdf\x83\x7b\xa4\x24\xb8\x6a\x50\x7d\xc4\xe7\x72\x3f\xd6\x5e\x6c\x47\x68\x5a\xf6\xea\xa3\xb4\x5b\xbc\x5f\x16\x32\x1d\x46\x34\x2d\x1e\x5f\xee\xb7\x4f\xf0\xb3\x93\x17\xf6\xa2\x10\xc3\xf3\xe8\x48\x78\x56\x21\x91\xed\xa8\xeb\xda\xc1\x3a\x47\xcb\x82\xe6\x9c\xfc\x5d\xed\x56\xf3\x7b\x79\x86\x44\x4f\x51\x37\x79\x86\xca\x06\x3b\x64\x1b\xd5\xdb\x68\x33\x74\x32\xc0\xab\x97\xee\x29\x98\x8c\x91\x4d\xed\x4c\x7f\x62\xd5\xe4\x35\xb5\x85\xee\xf2\xe2\x02\xb3\xcd\x33\x03\x2a\x64\x3d\xa6\x21\xc5\x63\xc1\xe8\x87\x19\x6d\xb5\x1d\x9f\x96\xcf\xcb\xed\xfd\xec\x69\x41\x0a\x3c\xdb\xdb\xc5\xdd\xec\xdb\xa3\x03\xe2\x73\xce\x62\xc9\x1c\x08\xe2\x16\x3b\x35\xe2\x0b\xf3\x35\xce\x59\x2a\x42\x17\x1a\x58\xb2\xc3\xef\x78\xea\x09\x30\x71\x1e\xa4\x49\xea\xe0\x02\xeb\x03\x5e\x4b\x77\x78\x20\x19\x6d\x8a\x1f\x27\x65\x1d\x5c\x86\xbf\x8d\x07\x46\x70\x1b\x47\x82\xde\xe6\xa9\xdf\x3d\x78\x18\xc4\x14\x7e\xdb\xf9\xfb\x3c\xf3\x62\x42\x9c\x87\x3a\xa4\xb4\x63\x97\xff\xe7\x98\x6b\x27\x9f\x3b\xac\x50\xf2\x28\x15\x1e\x58\xb3\xa5\x8d\xf0\xaa\xea\x21\xe7\x91\x0e\x89\x73\xb8\xfc\xf6\xda\x9f\x93\x3c\x56\x49\x90\xf5\x1a\x2c\x3f\xca\xea\x03\xab\x99\x31\xa8\x9a\x41\x1d\x65\x74\xbe\x24\x4d\x85\x35\x19\x28\x4e\x03\x8c\x12\xcf\xc0\x90\x6c\x20\x45\xda\x37\x13\xe4\x06\x37\x8e\xa7\x29\xf9\xcf\xf8\x6d\xa0\x1f\x35\x73\x91\x30\xa6\x1c\x4d\x08\x1b\x92\x39\x1f\xbe\x94\x5c\xa4\x22\x0b\xe9\x65\xba\x39\x9e\xee\x8e\xde\x90\x85\x73\xc1\x63\xf2\xeb\x6c\x33\x78\xdf\xfb\xf2\x87\x44\x46\x36\xf8\x33\x63\xf2\x5d\xde\x49\xde\x5d\xe3\x20\x71\x2e\x8c\x22\xf9\xca\xbe\xae\xef\x18\x6a\x3a\xd9\x2f\xe5\x10\x74\x5c\xf4\x97\x63\x3b\xf7\x8f\x15\x6e\x35\xd6\x5b\x5d\x95\x79\xf7\x5a\x73\x99\x44\x59\xd8\xb3\xcb\xbd\x4e\xcc\xe4\x5c\xf2\x0e\xf3\x77\x0f\x7b\x5c\x14\xa3\xb7\x9e\xab\x34\xe5\x96\xbb\xa4\xca\x4a\xdf\x22\xec\x6c\x32\xb7\x42\xa8\xcf\xfc\x86\x7f\x8c\xda\xbe\xbd\x7f\x46\xd4\x20\xce\x15\x68\x92\x27\x20\x1d\xa6\xca\x53\x83\x9c\x43\x45\x97\x4f\x70\xcd\x2c\x3d\x5f\x1e\x4f\xe7\x80\xa0\x27\x07\x72\xe5\x1e\x69\x69\x3b\x8a\x75\x87\x1d\x59\xd6\xa3\x8d\xe1\xbc\x4a\x73\x54\x51\xe2\x90\x26\x67\xad\x3e\x77\xcc\x04\x86\x3c\x94\x8a\xb2\xc9\xcd\xe9\x45\xd2\x13\xaa\x2e\x54\x9d\x06\xfb\x1f\x37\x5a\xea\xa1\xc0\x55\xcf\x5c\x9c\x0b\x16\x73\xa3\x06\xc8\x16\x72\xd4\x1b\xbe\xd9\x82\x25\x21\xed\x87\xdb\x1a\x9b\xbb\x0a\xf1\xaf\xbc\x78\x73\x04\xb8\xfe\x6f\x18\x3e\x4a\x11\x04\x52\x5a\xb5\xb6\x52\xdf\xf5\xdf\x47\x11\x44\x3c\x70\x4b\xd7\xea\x65\xf9\xdb\xe8\x63\x2a\xa3\x26\x90\xed\x4b\xbb\xb4\xd7\x0b\xb7\x4f\xdd\x62\x11\x06\x56\x8c\x03\xb4\x3e\x77\xfa\x86\x75\xf3\x69\x37\x2d\xba\xea\xcb\x9e\xad\x08\x95\x35\x02\x34\x5f\xfa\xd5\x89\x3c\x0c\xbf\x31\x66\x36\xd7\xd9\xbe\xd1\xe2\xdb\xe4\x16\xac\xb6\xa9\xa0\x50\xef\xd8\xdf\x2f\x44\x1c\x02\x95\x07\x0b\xfc\xda\xda\x39\xfb\x6b\x70\x93\x88\x53\xa4\x76\x6f\xbb\xa7\xbf\x14\xaf\x50\xc1\x1e\x9b\x1e\xb6\x69\x30\x38\x89\x25\x29\xe2\xa9\x72\xb7\x43\xd5\x2c\xea\x26\xb7\xee\xb5\xbf\x0d\x87\x25\xd6\x09\xf1\x2b\xdf\xed\x36\xef\x95\xf7\xdb\xe1\x22\x49\x39\xe5\xb2\xb4\x5b\x3f\x5e\xad\xe5\x88\x84\x0b\xd7\x26\xd0\xf9\x67\xae\x8f\xb0\xb3\x36\x09\xfe\x30\xf2\x84\xbb\x8e\xfa\x30\x6f\x17\x69\x94\x7a\x71\x4f\xe2\xf8\xae\x47\x6a\xa2\x5c\xa4\x1c\x98\x23\x0e\x0f\xc4\x46\xa7\xb3\x61\x91\x9a\xcc\xab\xed\xae\xb0\x2e\xc9\x9b\x7f\x8a\xd6\xcf\x45\x96\x1a\x52\xc9\x27\x4d\xb2\xef\xd0\x29\xfe\x72\x91\x49\x1f\xd3\x3a\x01\xe9\xe9\x20\x47\x70\x08\x94\x23\xf1\x5a\x37\xda\x29\xfe\x2e\x17\x22\xb1\x89\xe7\xe2\x8f\xd7\xb9\xff\x0a\x61\x02\xd0\x9d\xe5\x4e\xf5\x76\x2e\xe5\x4d\xae\x13\x02\x12\xa0\x3d\xaa\x28\xf5\xb8\x0c\x2a\x00\x03\x52\xe3\x2d\x8e\xfb\x59\x25\xf3\xb3\x14\x39\x17\x60\x62\xda\xdc\x0f\xe5\x57\xbd\xbf\xf2\x2b\xc0\x98\x11\x42\x68\x00\x85\x6d\x73\x5a\x5a\x04\x66\x5a\x53\x11\x60\x84\x65\x11\x32\xb5\xfb\x54\x6d\x25\x16\xda\x10\xe3\xe6\xf4\xa3\xca\x9b\xcb\x3b\x3f\xac\xa8\x0a\x25\x62\xf0\xa2\x14\x3e\xbd\x5f\xb7\x5b\xae\x5a\xe7\xbe\xfe\x24\x14\x44\xde\x13\xfa\x7b\xd9\x38\x74\xcb\x68\x8e\xe8\xc0\xb6\x3f\xda\x59\x74\xac\x8a\xd5\x05\x9e\x59\x60\xca\x6d\xf6\xda\xce\x4b\xcf\x4e\xf8\x3b\xca\xe1\xe8\x46\x21\x22\xad\x58\x79\xfd\x84\x7b\x69\x6b\x76\x53\x82\x0c\x5c\x18\x66\x55\x75\x3b\xe2\x49\xfd\x9a\xab\x8f\x41\xdd\x45\x98\x58\x47\x71\x07\x6d\xfa\x36\x9f\x97\x79\xb1\x46\x92\x87\x1a\x74\x3f\xfd\x70\xc1\x48\xa6\x87\x50\x70\x65\x85\x23\x1f\x5a\x3b\x0a\x18\xd7\x94\x25\x6f\xde\xed\x00\x47\xf7\xe6\xc0\xd0\xa2\x68\x6d\xe1\x63\x80\x28\x1e\xfe\x4a\x20\x1d\x00\xe2\x1f\x34\x70\x7b\xec\xf6\x17\x08\x63\x99\x9c\xe5\x15\xfa\x0b\x36\x44\x4c\x07\xa9\x07\x23\xd4\x87\xb2\xe8\x48\x07\x10\x09\x45\x51\xf8\x01\x4e\x77\x65\x45\xad\x00\x7f\x04\x80\xe2\x7c\x17\x4b\xf4\xea\xca\x10\x07\x36\xbb\xed\x3a\x2c\x93\x7a\x9b\x17\x4d\xb6\xe1\xef\x88\x13\x6b\x2a\xd6\x2e\xab\x98\x7f\x22\x81\x4a\xbf\x1d\x36\xa3\x9a\x23\x24\x81\x65\xd7\x5b\x24\x85\x6e\xd3\x84\xc1\xfc\x87\x24\x46\x82\x13\xb7\x77\xde\x6a\xa9\x95\xd5\x6b\x45\xd5\xc4\x2e\x05\xb9\x72\x2f\xd3\x30\xa0\xf5\x53\x39\x5a\x9f\x6f\xe6\x40\x9a\x26\x24\xa6\x34\xfb\xd7\xb2\xfb\x13\x17\x00\x67\xa5\x92\xd7\x5c\xf5\x21\xf4\x7e\x90\x54\xa4\x89\x67\xd5\xc6\x7b\xdc\x1a\x7f\x5c\x27\xa4\x89\xe6\xf5\x8e\x37\x78\x95\xee\xde\x0e\xce\x08\xa9\x7c\x33\x7b\xfe\x7d\xf5\xf2\xf8\xe8\x64\xdc\x88\xd7\x73\x3e\x21\xaa\xa4\xa7\xad\x65\xa3\x9f\x9b\x53\x17\xda\x74\x97\x96\x49\xd0\xee\x3d\xbd\xb3\xc6\x6a\x17\xbe\x0e\x1c\xb8\x01\x5b\xad\x53\xa5\xbd\x77\xfd\xdd\x73\xfa\xb5\x03\x11\x33\x62\x71\x1d\x8e\xcd\xba\x29\x89\xf0\xda\xa8\x8b\xc9\x70\x85\x77\xf1\x6b\xb4\x8e\x07\x66\xfa\x6f\x12\x81\x71\x72\x3f\x6d\xba\x0c\x3b\x7d\x29\xf5\xc2\x41\x28\x15\xd8\xde\x30\x39\x49\x8f\x0e\x9a\x50\x38\x00\xda\x40\xe4\x2d\x08\x87\xfd\x09\x00\x80\x24\xe8\x25\x1d\xb6\xe3\x33\x4a\x86\x41\x72\x4e\x05\x3c\x27\x26\xb5\x2e\xab\x66\xd9\xbd\x41\x92\x2b\x4a\x42\x9b\x7c\x8f\x9b\x72\x0e\xbb\x7d\x77\x44\x5a\xd9\x6b\x8b\x80\x7e\xcc\x65\x05\xd5\xc9\xc9\xcc\x4e\x2a\x3b\x8c\x6e\xb9\x34\xda\xa8\x21\x31\xc2\xea\xf6\x0e\xb9\x48\xa0\x99\x95\x47\xaf\xc1\x74\x42\x4b\x37\xa7\xae\x86\x34\xb9\x95\x81\x0e\x39\x35\x9c\x72\x55\xfe\x80\xfa\xac\xca\xe7\x4f\x8a\x41\x42\xf1\xda\xed\xcd\xfc\xef\xfb\x3c\x80\x81\x50\xae\x71\x36\x5d\x79\x06\x0c\x03\xaa\x93\x3e\x1f\xcb\x3f\xf3\xc7\x1c\xfe\xde\x5c\x85\x83\x09\x53\x83\x5d\x14\xe1\xa0\x90\x53\x34\x1c\x30\x31\xa3\xa2\xcf\xeb\x6c\x35\x7b\x7c\x5c\x3c\x3e\x2f\x36\x3f\x5e\x56\xbe\xee\x03\x26\xc1\xcc\x05\x9f\x15\xe9\x0a\xbb\xf2\xf5\x78\xcb\x00\x93\x31\x5a\x86\xa8\x54\xba\xad\x06\x26\x52\x76\x88\x64\x91\x72\xac\xc1\x3d\xe4\x85\xc6\xca\x53\xe7\xfd\xeb\x2f\x99\xd4\xc6\x6b\x4f\x61\x51\xc3\xbf\x47\x73\x57\x32\x34\xd2\xd2\x5a\x16\xfb\x43\x73\xa1\x0b\xc6\x65\x10\x46\x54\x32\x7a\x87\xfa\x06\x3d\x4c\xee\x52\x7a\xc3\x8f\x4e\x90\xaa\x3c\x2f\xc5\x9b\xa7\x5f\xc9\x90\x31\xdf\xa5\x74\x36\xc1\x13\x2f\x91\x0c\xb3\x88\xb0\x08\x6f\xf9\x27\x2e\x9a\x77\x07\x36\x18\x26\xf7\x32\x0a\x8c\x88\x7b\xef\xc8\x23\x16\x6f\xcd\xfb\x9d\x63\xab\x4c\xcf\x64\xff\xd1\xd0\xe6\xfa\xb6\xa0\xb3\xcd\x6d\x9b\xa5\x3b\x31\xcf\x08\x12\x62\x8e\x7f\xe1\xcf\x81\xae\x05\x97\x11\x04\x81\x6f\xf7\xf9\xf9\xfe\x04\x3f\x57\x90\x77\xbb\x9a\x8c\xa4\x5d\x66\x1f\x60\xff\x17\x6c\xb7\xbd\xbd\x4b\x46\x2a\x23\x46\x09\x3d\xc7\x15\xaa\xf2\x13\xab\x73\xb5\xfa\xa5\xb8\xc1\x77\xd8\x99\x17\xb3\x42\x75\xac\x26\x54\x0f\x26\x63\x55\x19\x29\x4d\x59\xfb\x7f\xbe\x50\xf5\xbe\x2c\x66\x60\xf5\xc2\xe1\x67\x9b\xe3\xcf\x5d\x17\xf5\x5c\x4a\x95\x71\x94\xd1\xae\x32\x7f\x79\x7a\x5a\xac\xe6\xcb\xd9\xe3\xeb\xcb\xf2\x79\x33\x7f\x98\x2d\x9f\xd7\x7f\xae\x37\x8b\xa7\x6e\xa4\x90\x74\xc7\x66\x4f\xaf\xcb\xfe\xee\x2e\x63\xc8\xc8\xce\x79\xf1\xda\x53\xd7\x68\xff\x2c\xe8\x87\x7e\x21\x7e\x6c\xf7\xf0\xd3\xff\x3d\x8d\xb5\x8b\x13\x88\x26\x3c\xb5\xa4\xcb\x2c\x16\xca\x45\x05\x96\x8f\x39\x3a\x2c\x6d\x1f\x65\xd1\xbc\xaf\x4a\x5f\xde\x96\x99\x93\x83\xd4\xb8\xcb\x3f\xb1\x72\xd6\xe3\x43\x7a\xc4\x65\xb6\x26\x79\x98\x51\xb6\x06\x9a\x90\xef\xc3\xe9\x2e\x02\x71\xd6\x32\xed\xb8\xad\x0b\xbf\xfd\x49\x88\xad\xc3\x16\xcd\x10\xc2\x2f\x12\xa4\x64\xd4\xf9\x95\x90\x28\x4a\xa3\x09\x1f\x3f\xd3\x1e\x00\xbf\x9b\x00\xc0\xfb\x4f\xa4\x22\x8b\xba\x5e\x3e\x75\xe7\xef\xca\x6a\x7f\xdc\xc1\xa4\x3d\x2b\x97\x32\x44\xea\x7e\xee\xe1\xe7\xca\xb1\x86\xcf\x90\x6c\x29\x33\x45\x88\xb5\xad\x0b\xc2\x37\xe5\xa8\xd7\x33\x58\xde\xa4\x44\x4d\xfc\x86\x9b\x63\xbb\xa2\x9d\xe7\x93\xd2\x91\x66\x53\x32\x13\xe3\x40\x53\xea\x30\x20\x4c\xc5\xf6\x30\x36\x9b\x1b\xfe\x4e\x1d\x71\xd2\x45\xdb\xe1\x27\xee\xb6\xbe\x86\x52\x5b\xf7\xc2\xad\x3c\x75\x78\xcc\xe9\xdb\xa4\x13\x8b\xc4\xab\x9b\xf2\xd0\xbd\x8d\xbd\x5e\x9d\xd4\x99\xed\x72\x3f\xe3\xd7\x7d\x5e\x5d\xf2\xb6\x7f\x19\xd1\x4b\xcd\x35\x55\xbd\x8f\xa6\x2c\x75\x39\x98\xf5\x5a\x06\xd4\xec\xa5\x3a\x6c\xbb\x86\x74\x06\xf7\x5c\x6a\x95\x11\x5e\xe7\x00\x27\xba\x43\x2f\x45\x17\x2d\x4a\x6d\x8c\xec\xd0\x24\xf9\x18\xad\x2d\x11\x05\xe5\xbb\x54\x20\xea\xe2\x36\x69\x98\x55\x39\x20\x2b\x07\x8a\x54\x5f\x2e\xac\x4a\xfc\x50\xa3\x68\xca\x7e\x96\x0d\xd1\x0f\x08\x7d\x3f\xf8\x59\x8a\x21\x23\x50\xad\x7f\x36\xeb\x06\x3a\x6e\xa1\x0a\x18\xd0\x33\x76\x36\x96\x57\xa0\x39\x2a\xd0\x56\x17\x9f\x88\x7f\x83\x9c\x5d\x05\x46\x51\x5d\x4f\x1e\x4f\x2f\xc5\x75\xdd\x96\x5e\x99\x43\x85\xcc\x90\xd7\x20\x11\xfa\xab\xd9\x3f\x8f\xf8\x36\x8a\xc3\x55\x98\x46\xbc\xfd\x5d\xfb\xe3\xae\xc9\xdb\xd0\xf0\x29\x2f\x2e\x31\x87\x83\xf6\xe9\xa4\x5b\x1b\x57\xa1\x8e\x95\x38\x83\xaf\xd7\x79\xf1\x76\xe6\xeb\x3d\x8d\xdc\x05\xb9\x8a\x58\x4a\x00\x3b\x42\xef\x9e\x5d\x7a\xc3\x21\xa5\xe1\xc2\x94\x97\xab\x48\x59\x8b\xad\x45\xf3\x4e\x5b\x9c\x6f\x40\xfb\xfb\x14\x07\x60\x1d\x58\xda\x1f\x72\xae\xe2\xa9\x98\x23\xf1\x64\x65\xde\x78\xaf\x8f\x51\x4a\xaf\x92\x08\x14\x74\x4a\x89\x75\x47\x69\x1f\x0f\x93\x9a\xd6\x1d\xaf\xb6\xb3\x79\x58\xae\x6e\xb7\xb7\xb3\x3f\xad\x34\xbf\xbf\x90\x04\x23\x8a\xb8\x48\x6c\xcc\x47\xdd\x03\x25\x08\xff\x2b\xc3\x78\x34\x0d\x12\x4c\x68\xf1\xbf\xc7\x3e\x44\x5d\x71\xa9\x49\x02\xec\xb5\x2a\xd5\x19\x51\xac\x44\xc4\x6d\xe1\xab\xee\x6d\x9e\xd4\xc4\xe8\x53\x44\x95\x40\x43\xe9\x71\x7b\x63\x16\x9b\x07\x0b\x11\xbb\xb2\x04\x28\x00\x4e\x35\x72\xdc\xe7\xcd\x3f\x4b\x79\x93\xf7\x45\x8e\xce\x93\xed\x7c\x7b\x55\xac\x28\xad\x21\x22\xd8\xa2\x78\xcb\x8b\x0e\xaf\xae\x74\x92\x50\x65\x47\x41\xe1\x4a\xb4\x76\x19\x1d\xde\x56\x0d\x01\x7a\x89\x37\xaf\x3a\x3d\xea\x03\xf5\xbf\x10\x03\x20\xb8\xc6\x0d\xe4\xbb\x97\xe3\x80\x53\xaf\x10\x39\xb8\x2c\xff\x75\x07\x8d\x29\xab\xfd\xb9\xb7\x74\x59\xa7\x50\x26\x50\xa1\x55\x6d\x29\x3f\x8e\x07\x4f\x73\xbd\xf2\x8e\x1a\x9e\xe8\xc0\xb3\x00\xd7\xd8\xcc\xf3\xe6\x34\xc0\x98\xfd\xb7\x49\xd1\x7f\xb5\x5a\x2a\x03\x31\x99\x14\x39\x98\xfc\x35\x33\x67\xae\x19\xcb\xa8\xec\x48\x4f\xc0\x2a\x30\xed\xda\x3c\xb9\xa3\x17\x6b\x16\x84\x14\x38\x3a\xb3\x71\xf2\x8b\xef\x5b\xe9\x70\xcd\xa2\x2c\x75\xa5\xe7\x3b\xa8\x9b\x7b\x38\x74\x47\x20\x53\x8e\x62\x85\x45\x73\xd9\x13\xd2\x4c\x45\x61\xe7\x32\xfc\x08\x7b\x59\xd6\x3d\xbe\x89\x66\x28\x45\xbf\xa0\x38\x2b\xf4\x6d\x0f\xd2\x77\x7e\x78\x3a\x62\xd2\xc0\xd9\xdb\xf9\xa9\x74\xbe\xce\x94\xd0\xf9\x1f\x1b\x85\x01\xc1\xb4\xe6\x8f\xdf\x57\xe3\x04\x49\xc7\x91\xa1\x2e\xdc\xb1\xf6\x6a\xa5\x54\xdb\xb9\xa8\xca\xfb\xe1\x32\xa6\xf6\xf8\xfc\x65\x3e\x68\x2d\xeb\x18\x79\x14\x7b\x61\xc8\xfc\x33\xdf\xe1\x1b\xf6\x71\x4e\x3a\x0d\x25\x71\x0d\x5e\x1f\xfe\x38\xfb\x2a\x73\x9d\xa6\xf6\x2e\x92\x69\xc3\xc9\xa2\x10\x47\x39\xa6\x4e\x85\xa1\x10\x71\xdd\x94\x07\x77\x23\xfc\xc7\xb3\xd8\x66\x98\xd6\x2b\x82\x7c\x44\x87\xaf\x8a\xce\x52\x46\x35\xb1\xbe\x1b\xd4\xe4\xaa\xac\xb3\xd4\xca\xb5\xcc\xe7\x83\xf0\x52\x7b\xfe\xfb\x72\xfe\x32\x5f\x3c\x6f\x56\xb3\x47\x7f\x84\xb3\x20\xe5\x7e\x1a\x7d\x2b\xf2\x66\x45\xd0\xb2\xe9\x97\x41\x73\xa6\x49\x33\x85\x96\xf1\xed\xa1\xea\x84\xcb\xb9\xe6\x71\x92\x44\x83\x7a\x92\x85\xf5\x0f\x2f\x90\xa3\xb2\x38\x50\x37\xb9\xad\x7e\x67\x7d\x86\x22\x0e\x1b\x45\xe7\xcf\x19\x8b\x40\xc2\x4a\xa5\x59\xd6\xf4\x7f\x9b\x08\x2d\x40\x95\x6a\x4b\x14\xb4\xd1\xfb\x49\x30\x67\xdd\x66\xa2\x7e\x5c\xc2\xc8\xb8\x48\x97\x6d\x66\x67\x41\xd2\xfd\x80\x4d\x8b\x2c\x8b\x02\x2f\x87\x92\x2b\x5c\x37\x78\xc8\x46\xcf\x11\x18\x0b\xac\x2e\x10\x42\x7d\xac\x4e\x23\x28\x87\x86\x34\x61\x43\x95\x1b\x5a\xdb\xe6\xd5\xe9\xd0\x94\xe3\x73\x65\x49\xec\xe5\x1f\x8e\xa7\xa7\xbc\x98\x50\x2a\xd1\xa0\x03\x5b\x18\x6b\x77\xec\xbe\x3c\xd8\x70\x8e\xf7\x9d\x9d\xc7\xd1\xb9\x96\x2c\x24\xda\x03\x5a\x3d\xdf\xc7\xc5\xcb\xf3\xaa\x37\xad\x25\xcb\x88\xac\xa1\x7a\x12\xac\x0e\x51\xec\x47\xa4\xa1\xe9\x64\x6d\x27\x0a\xa7\x5a\x69\xe3\xaa\xb6\x2b\x6c\x72\x4b\xca\xf4\x55\xdb\xcb\xdd\x43\x6b\x91\x39\xe1\x19\x55\x92\x45\xfb\x1b\x76\x62\x80\xeb\xde\x9b\x8d\x0c\x3c\xbe\x74\xc8\x0c\xd0\x28\x19\x71\xa2\x88\x33\x71\xec\xf3\x98\xae\x55\x2e\xff\x4f\x38\x71\x8b\xba\xb3\xe9\xd0\xf5\x18\x6c\x14\xe6\x55\xdf\x2f\x54\x52\xa6\xd7\x62\x34\x16\xc6\x77\x5e\xe2\xf4\xbc\x42\x9d\x5b\xa7\x7f\x7f\xcd\x86\x85\x14\x48\x58\xde\xf4\xdf\x08\x08\x68\x13\x04\xd4\x6a\x5c\x3b\xed\x9e\x8b\x2a\xc1\x95\x8f\xa5\x56\x2f\xb8\xdd\xf6\x6d\x31\xaa\x99\xe0\xb6\x6b\xa3\x0c\xe1\x25\xb6\xb9\xab\xae\xf6\xd1\x08\xc8\x82\x80\xea\x2d\xf2\x58\x15\x43\x0d\xaa\x7e\x6c\x86\x2c\x94\x5a\xf4\xfc\xd5\x27\x88\x07\xc8\x74\xca\x3d\x8f\x75\xb6\x9c\xee\x12\x61\x10\x5a\x95\x70\xb7\x53\xbd\x82\xfa\x80\x37\x9c\x5b\xb7\xa8\xd1\x09\x83\x38\xa5\xa4\xa8\x17\x64\x95\xbb\x5c\x9d\x3c\x40\xe5\x3c\xcd\x30\xd4\x69\x66\x31\xe9\xb5\xaa\x72\x89\x9b\x7c\x87\xbf\x75\x1c\x64\xbf\xb6\x60\xe8\x64\xbb\x89\x88\x6e\xef\xc6\xf4\xd6\x81\x51\xa6\x48\xcb\x64\xb9\xb9\xef\x2f\xaf\x18\x49\x4b\x48\xa6\x82\xe4\xbe\xac\xa6\xcd\xb3\x38\x46\x5a\x08\xca\x74\xdb\x2d\xac\x9d\xe8\x8b\x42\xf7\x22\x3e\x8c\x93\x98\xe6\xe1\x97\x4f\x6c\x71\x8c\x15\xc3\x18\x2c\xc6\x89\x68\x9c\x26\xaf\xf6\xe3\x22\x17\xc6\x2a\xa2\xf0\xeb\xfe\xe9\xe5\xe5\xb9\xfb\x98\x0e\x29\xb3\xdd\xce\x96\x8b\x9f\x8e\x3d\xd4\x2f\xc0\x63\x12\xa5\xd2\x35\xa9\x6d\xdc\xd4\xc3\x9f\x61\x0a\x92\x88\xa5\x66\x5a\x48\x75\xf4\x2b\xb3\x04\x02\x65\x7d\x85\xdb\x6d\x7a\x71\xfb\x6d\xf8\x55\x19\x4a\xe2\x65\xbf\xae\x16\x5b\x8a\xa8\x83\x1f\x8b\xc5\xef\x7d\xad\x46\x8e\x3c\xc9\x88\x1b\xf4\x9f\x23\x56\xf9\x18\x76\x84\x02\xed\xd1\xf6\x16\xad\xf3\xfd\x61\x87\x6b\xac\x3e\x7d\x01\x6c\x68\x6b\xd4\x5f\x02\xfe\x67\xf4\x3c\x41\x49\x4a\x12\xee\x49\x4c\x6b\xf4\x8e\xa0\x54\x8a\x60\x0e\x6d\x62\x67\x75\x87\x46\xbf\xf7\xff\x24\xe7\xb5\x36\x3a\x63\x4b\x3d\x65\x11\x95\x4a\xbd\xc2\x01\x89\x55\x74\x82\x5d\x64\x8c\xe0\x43\x29\x54\x98\x46\x16\x8c\x75\xf0\x3e\x0f\x7f\xb3\x38\xa0\x36\x31\x85\x2a\x5b\x2b\x5e\xe3\xa6\xc2\x30\x8c\x1d\xfe\x18\x64\x4c\x5a\x1d\x7f\x7a\xf8\x97\x51\x31\x62\x20\xa9\xaa\xee\xb7\x2e\x5b\x34\xf2\x07\x85\xb6\x58\xc8\xf6\x8f\xcb\x42\x95\x6f\x45\xde\x94\xdd\x51\x34\x94\x84\xd9\xc5\xd3\x37\x60\xd0\x64\x16\x4c\xde\xa9\xfe\x59\x91\xdb\x5f\x78\x96\x73\xc3\xb4\x24\x7f\xa9\xca\x2b\xc5\x38\x32\xf3\xd8\x58\x9e\x9b\x20\xd0\xc4\xe6\xb8\x59\xaf\x7b\xb5\x41\x13\x86\x01\x15\x43\x16\xaf\x7f\xd0\xca\x37\x98\x7b\x26\x04\xab\xea\x6b\x75\xab\xba\x57\x68\xd3\x97\xf9\x1b\xdc\x38\x13\xb1\x88\xd6\xf6\x75\xbb\x3a\xd8\x34\xc5\x6d\xbd\xc7\x4b\xfa\xac\x89\xc0\xee\xff\xaa\xf4\xc5\x21\x4f\xfc\x32\x91\x01\x74\xe1\xc5\xcb\x27\x56\x35\xb5\x58\x87\xdf\x95\x06\xca\x7d\xba\x30\xf9\xdb\xea\xd8\x73\x34\xe1\x26\x0b\x05\xa1\x15\x1d\x6e\xff\xb1\x54\x1f\x97\xe8\x36\x93\xa5\x10\xba\x90\x7e\x3e\x7f\x70\x3c\xb7\xee\x14\xda\x6a\x9a\xef\xa0\xb6\x48\x80\xad\x09\xa2\x07\xa8\xdf\xb7\xee\x57\xf8\x81\x9c\x49\xb2\xf1\xb0\xbd\x8d\x6e\x0d\xea\x87\x4b\x86\x47\xc2\xfa\x94\xff\x3c\x60\x51\x9f\xe5\x19\x0c\xcf\x22\xcb\x91\x7a\xa7\x10\xa0\xe3\xd4\x9e\x57\x66\xc3\xb9\x6d\x28\x78\x47\x54\xbc\x87\x7a\xa2\x82\x6d\x44\x98\x5a\xda\x3a\xec\x3e\x46\xf5\x40\x23\x92\x98\x14\x68\xca\x03\x16\xaf\x76\x8f\x7c\x85\xaa\x99\xb7\x7b\xab\x7f\xb7\x8c\x48\x63\x6f\x5b\xb3\x7e\xcf\x0f\x9e\x53\x32\xfa\x96\xd4\x66\xbf\x8f\xf0\x17\x74\xde\x58\xdc\x08\xc9\x28\xe5\x04\xad\x5f\xe1\x84\x57\x12\x31\x23\xa4\xa6\x8d\x1a\x2c\x5a\x29\x2f\x0b\x02\x2c\x0e\x07\x41\x10\x80\xec\xc4\xa6\x9c\x1c\x45\x39\x4d\x2d\x32\x10\x86\x04\x16\xb8\xbf\x9f\xfb\xf2\x82\x91\x59\x42\x6b\x89\x82\xdd\x6e\x88\xce\x37\x2a\x4d\x82\xc8\x91\x08\xa0\x38\xf9\x86\x80\x05\x07\xb9\x31\x3a\x8a\xa9\x45\xf2\x70\xdc\x43\x91\xff\x67\x39\x7f\x99\xde\xe2\x8c\xe6\x82\x59\x61\x86\xbf\x55\x6c\xe5\x46\x2b\x90\xae\x9d\xba\x3e\xee\x2d\x93\xe4\xc5\x38\x2a\x10\x01\xc3\xea\xd7\xaa\xbc\x2d\xd5\xb9\x0a\x67\x30\x00\xa2\xa3\x49\x28\x2e\xa5\x48\xb9\x41\x9d\x30\x77\xca\x36\x1d\x8c\x89\x68\x31\x7a\xf2\x26\x88\x88\xd8\xb1\x87\xe2\x08\xbb\x36\x72\x6e\xfe\x86\x08\x30\xb8\x6a\x13\x05\x74\x05\xcd\x7b\xd9\x67\xf3\x08\xc6\x22\xae\x55\xa7\x13\x3d\xd3\xff\x3e\x92\xf7\x8d\x3f\x1a\x87\xa4\xa5\x38\x9f\xad\x66\xdd\xdf\x9c\xfe\xab\x75\xc0\xb2\x28\xb8\xcd\x85\x64\xa8\x60\x0c\xac\x00\xc0\xdc\x62\x84\xe6\xef\xf9\x61\x38\x09\x05\x0b\x18\x97\x9e\x10\x71\x82\xa2\xb9\xad\xca\xbc\x59\xa8\xb2\x28\xf7\xf9\x7f\x8e\xb8\x9d\x97\xfb\x43\x83\xfe\x5d\x16\x2c\x48\x02\x95\x9e\x0d\xd0\x9d\x78\xf2\xd4\x73\x12\x2c\xe0\x09\x4d\xf0\xf9\x00\x4c\x2d\x58\x18\x1a\x82\xc2\x6e\x36\x9b\xee\x4f\x28\x98\x75\xc1\x6e\x7f\xfd\xa2\x4d\x69\x77\x38\x68\x20\x4f\xbd\x05\x82\x45\x59\x06\xbe\x87\x0d\x0d\xbe\x95\x43\x6b\x1d\xc1\x22\x29\x91\x39\xbc\xd6\xbf\x8e\x58\xb5\x89\xf2\x95\xcb\x8d\x54\xc0\x5c\x63\xb0\xa3\xea\x0e\x4f\x16\xb3\x94\x72\x78\x45\x5c\xd6\x2e\xa2\x41\xd5\x37\xc0\x9d\xbe\xd0\x38\xb1\xe0\xe8\xca\xb6\x8d\x26\xa4\x43\x05\x4b\x12\x2b\x0e\x71\xb0\xba\xb4\x74\xcf\xfc\x97\x9c\x33\x27\xc1\x12\xf7\xb2\x3c\xe3\xd7\x2b\xd4\xb5\x47\xc8\x8d\x2f\x60\xd8\x43\xeb\xcf\x65\xc1\x12\xa7\x44\x59\x63\xf3\x8c\x5f\x13\xdd\x4f\xc1\xd2\x50\x72\xd7\xee\x6e\x9c\xd7\x0e\x5c\x7a\xdf\x0a\x96\xa6\x11\xba\x32\xd8\x7d\x85\x04\x58\x1b\xdc\xb4\xd4\x18\xc1\xcf\x1a\x3e\x3d\xf1\x21\xc1\xb2\x4c\x2b\xf0\xe8\xb1\x73\x47\xc2\x1d\xe5\x2a\xa6\x7b\xb6\xdf\xee\x10\xbf\xe0\xe4\xff\xde\x66\xcc\x0e\xd6\xbc\xdd\xfb\xf2\xd3\x36\x2f\x4c\x39\x0a\x46\xba\xf1\x9c\x94\x63\x9c\x60\x78\x33\x3e\xac\xad\xb5\xfa\xfd\xfc\xb5\x6a\x77\xc7\xc1\x5c\x85\x30\xa5\x2e\xbd\x7d\x0a\x74\xf1\xdd\x2b\xd4\x46\x5f\xe7\xda\xa7\x60\x90\x88\x4c\x9e\x15\x76\x2f\x5d\x5b\xff\xae\x26\x37\xb8\x6f\x90\x02\x74\xd9\xd0\x64\x01\x7e\x30\x79\x80\xa7\x41\xe4\x29\x85\x9a\xcc\x82\xe6\xef\xf9\x4e\xff\x36\x7c\xf0\xc0\x2d\x28\xaf\xc1\xba\x21\x3c\xe0\x73\xe9\x04\xec\xfa\x94\x20\xc1\xa4\x12\xe4\x47\xf6\xb5\xa5\xf0\xa9\xc3\x9d\x09\x26\x0d\xc4\x96\xb4\x5e\xbc\xed\xf0\xf6\xfb\xf2\xf5\x5f\xcd\xe9\x7c\x50\x69\x76\xae\xcf\xd3\x39\x6d\xe6\xde\x0d\x40\xe0\x0e\x7f\xd7\xa9\xef\x08\xa6\x1c\xbf\xd2\x97\x3b\x37\x3f\xef\x10\x5f\x21\xd7\xf7\x63\xdb\x3d\xc1\x54\x2a\x08\xdc\x77\x2c\xba\x4e\xdc\xb7\xb1\x52\xa0\x60\x5a\x84\x89\x67\x50\x3a\x6b\xdf\x61\x52\x23\x18\xc6\x8a\x5a\xc5\xc5\x71\xff\x62\x9c\x99\x48\x27\x80\x22\x18\xf2\x90\x92\xfd\x3d\x7c\xe0\x6b\x55\xea\x63\x17\x8a\x5c\xd1\xc7\xf1\x9f\x83\x6e\x7b\xba\x50\x71\x15\x0c\x8d\x95\x77\xab\x10\xf4\xac\x80\xdd\xa9\xc9\x55\xfd\x04\xdd\xa4\x37\xb1\x22\x7c\x86\x2e\xe7\xbe\xa4\x75\x15\x1d\x35\x7c\xb4\x06\xad\xf6\xfe\x81\x2a\x60\x8b\xcd\xc3\xf0\xbe\x05\x01\xd3\xc4\x7d\xbb\xdd\xcc\xe7\xdb\xe5\xe3\xcb\x8f\x2d\xff\xcd\x1f\x8a\xa4\x2b\xb0\xd1\x82\xd6\x40\x63\x17\xdf\xfe\x84\x0c\xc2\x48\x05\xb6\x23\xdd\x46\xe1\x47\xaf\xa2\x22\x82\xd0\x70\xea\x49\x51\x2a\x15\xf6\xad\x35\x44\x10\x05\x11\xe1\x00\x17\x85\x7e\x31\x0e\x52\x3b\x1d\x84\x8b\x20\x8a\x33\x6d\x3c\x45\x62\xb8\x8a\x04\x51\x66\xd1\x8e\xa4\x6d\xa5\xd7\xea\xdd\xc2\xe9\x1c\xa5\x98\x2e\xfb\x52\x54\xb6\x0b\xfd\x44\x10\xf1\x98\xea\xe9\x9f\x39\x7e\x79\x6e\xa7\x3b\x14\x07\x01\xb1\x14\x24\x14\x1f\xab\x72\xd7\xe6\x4b\x38\x72\xaa\x10\x41\x1c\x87\xb4\x86\x3c\x1d\x77\x4d\xbe\xce\xdf\xec\x92\xd9\x26\x2d\xb7\x90\xef\x4e\xb6\x86\x76\x51\xe8\x19\xfd\xc0\x24\x4e\x09\x4c\x77\xd7\x35\x70\x44\x90\xb2\x88\x70\x64\x5f\x79\xf3\xbe\xa2\x1e\xea\x78\x2a\x07\x69\x08\x5e\xeb\xfa\xcf\xe3\xfe\x87\x13\x50\x18\x9e\x3a\x4d\x12\x9e\x9d\x39\x98\xe3\x33\x18\x45\x4a\x31\xf7\xb0\x83\x9f\xa7\x80\x31\xff\xed\x59\x18\x91\x3c\x76\x1b\x95\x7b\xc6\xe6\xf4\xb5\x67\xc2\x3e\x9c\xbc\x5e\x37\xe5\xc1\x97\xc4\x44\x90\x81\x4c\x54\x8f\x85\x3b\x7c\x6c\x19\xa6\xae\x8d\xa1\x5d\x3c\x76\x99\x2a\x07\x23\xb4\xce\xaf\xfe\xeb\xcc\x7d\x86\x7e\xbf\xa2\xdd\x5f\xc9\xd0\x62\x9d\x5b\x55\x5f\x17\x8c\xde\x5e\x6a\x5a\xf9\x0f\x28\x93\x86\x36\x7a\x5e\x34\xef\x54\xfd\xf6\xef\x7d\x20\x8c\x97\x94\x26\x07\xdf\xcb\x04\x41\x04\xa0\x03\x2a\x77\xb5\x49\xc0\xd6\x54\xd8\xcd\x25\x30\xb1\x74\x82\x57\x95\xae\xda\x94\xe9\xd0\xdb\xef\x02\x99\xc4\x24\x4b\xf6\x7d\xf9\x7d\xd6\x6d\x0f\x94\x96\xff\x36\xe9\xdc\xdd\x9b\xc0\x92\x87\x29\x3b\x07\x5e\x6b\x85\xc5\x04\xd4\x7d\xfa\xc5\x92\x98\x49\x87\x1d\xa2\x18\xc8\x76\x96\x87\xf1\xad\x08\x74\x06\x94\xc2\x6e\xbe\xf7\x77\xc0\x40\x73\x45\xb7\xe3\x00\x75\x7d\x19\x3a\x8b\x00\x23\x21\x1d\xdc\xc1\x6a\x98\x1c\xa7\x89\x63\x22\xc0\x24\xb4\x0b\xc8\x85\xa8\x9a\x08\x90\x6b\xea\x54\xb4\x71\xda\x0a\x46\xdc\x0f\x11\x18\x96\xa2\x87\xef\x91\x91\xed\x1d\xb4\xb3\xe9\x34\x16\x15\x1b\x5c\x5a\xc8\x82\x98\xb2\x17\x79\x3c\xfd\x8e\xc4\x8e\x5b\xa1\x31\x83\x19\x1a\x32\x19\x92\x74\xf6\x4d\xde\xbc\x14\x37\x70\xfa\x95\x57\xd2\xe0\x9a\x42\x86\x3a\xb6\x22\xf5\xb6\x02\x79\x1c\x48\x5c\xfe\x63\x78\x29\xed\xe2\xe6\x5e\x84\xbb\xd5\x6c\x74\x9d\x41\x22\xe8\x1a\x1e\x73\x12\x02\xb0\xed\xcb\xbf\xb5\x42\x18\x7f\x43\x6a\xb9\xda\xd6\x60\x6c\xe9\x51\x98\xa5\x6f\x73\x74\xc3\x90\xd2\x10\x43\x40\xce\xbb\xb2\x3a\x5f\xfc\xc5\x13\x0b\x03\x8e\x1a\xba\x8a\xf9\xb5\x80\x34\x0c\x44\x44\x79\x7b\xf3\x2b\x1f\x91\xe1\x89\x55\x6c\xb1\xc3\xed\xdb\x61\x97\x6f\xaa\x0c\xf8\x33\x86\xed\x2e\xdf\xce\xc5\xd9\xef\x8f\xcb\xa7\xd9\xef\xb3\xe7\xee\x88\x88\x88\xd3\xee\xdb\xeb\x1d\x36\x11\x0b\x24\x7d\xe6\x5e\x77\x64\x78\x83\x42\x14\x9e\x60\xf4\xcf\x52\x7a\x95\xb8\x51\x42\x14\x86\xc6\x44\xc2\x01\x40\x8e\xe3\x53\x44\x51\x42\xec\xe0\xd9\xed\xf7\xe5\xfa\x65\xb5\x76\xee\x39\xfe\xda\xa2\xb4\x13\xe2\x5f\x03\x55\x51\x66\xbb\xfc\x73\xb4\x78\x84\x91\x10\x76\x2b\xb2\xb2\x0f\x53\x16\x2f\x22\x8c\x20\x86\xc8\xd3\x33\x9c\xd2\x04\x41\x42\xa6\xc8\x59\xfe\x33\x98\x50\xcc\x56\x94\x56\x78\xf1\x06\x76\xbb\xb2\x71\xaa\x5c\x6e\x4c\xcc\xd2\xb4\x13\x1a\x69\x13\x4d\x3d\xfa\xe2\x38\x09\xc8\x0e\x85\xc0\x31\xa8\xd7\x60\xd0\x02\xcb\x47\xbf\x22\x36\xd6\xc7\xe0\xf5\xfb\xeb\x76\xf9\xbc\x59\xac\xbe\xfb\xee\x9e\x08\x93\x30\x21\xe5\xa6\xf5\x7b\x55\x96\xfb\x3b\xa8\xf6\x5d\x3e\x1b\x26\x31\x86\x5d\xd9\xbb\x3e\x92\xf8\x8b\x6b\x0f\x0f\x2f\x24\x0d\x30\x75\xd1\xc0\x62\x35\x0f\x99\x2b\x51\x92\xaa\x1e\x99\x0a\x74\x6b\x63\x98\xca\x94\x74\xa7\x6a\xf8\xc4\xd7\xb2\x1e\x76\xff\x44\x98\x6a\xe4\xc2\x85\x5c\x4b\x5b\x70\x1a\x0e\xc8\x20\xa3\xd9\xa8\x2b\xc8\x8b\x5e\x01\xb2\x3d\xc2\x11\x5c\xc9\xf7\x2e\xdf\x5d\xc6\x18\x6e\x1c\xcf\x2c\xd1\x62\xa4\xc8\x31\xf3\xbc\x3d\x11\x72\x19\x29\xa7\xea\xf7\xea\x38\xd4\xa3\xab\x10\x81\xca\x3c\x01\xae\xdc\x69\x7b\x53\x1e\xa1\x6e\xe0\xa8\xf3\x26\x1f\x3f\x28\x88\xe3\x30\x74\x00\xdd\x73\xdf\xcf\xe9\x6a\x0c\xaf\x4e\x46\xb6\x07\xb9\xcf\x8b\x76\x6d\xe8\x08\x6e\x83\x90\x3f\x94\x51\x4a\x80\xac\x9b\xf2\xbc\xfc\x5e\x97\x24\x0b\x42\xfe\xeb\x7f\x7f\x65\x34\x27\x42\x99\xda\x47\xd6\xbe\x04\xfd\x5a\xa9\x08\x65\x96\x51\x38\x36\xcf\x9b\xea\x58\x5f\x26\x51\xc3\xf3\xe8\x34\x51\x0e\xd2\x49\xfb\xe8\xcd\x69\x35\x72\xc9\x16\x21\x26\x59\xa0\xfb\x94\x8d\x4b\xd7\x5c\x11\x62\x06\x2e\x79\xa3\x00\xca\xea\x54\x0f\xbf\x0b\x55\x47\x7a\xb4\x2d\xb7\x51\x6f\x55\x84\x26\x60\x59\xea\x3b\x2d\xb5\xed\xb4\x9c\x15\x7b\x45\xc4\x38\xf3\x93\xc0\xaa\x64\x4c\x2f\x55\x11\x33\x8a\x98\x70\x77\x50\x37\x96\x23\xfa\x8c\xcd\x57\x59\xf9\xf5\x31\x0a\x82\x44\x9e\x15\xd9\x1e\x72\xad\xa7\xfa\x60\xed\x38\x4e\x30\x87\xf9\xeb\x7c\x04\x60\x10\x51\x18\x65\xe4\x73\xb9\xcd\x6b\x22\x7f\x9e\x19\x74\x93\xc0\x55\xff\x29\x29\x89\xd5\x76\x2e\xe6\x42\x10\xfa\x53\x46\x99\x4e\x5d\x47\xea\x31\x2f\x06\xac\x18\x11\xc5\xcc\x7a\x11\x75\x0d\x98\x1e\xa1\x5d\x44\xb1\x4e\x08\xcb\x99\xd7\xaf\x58\xed\xa1\xc0\xa2\xd9\x9d\xae\x75\x1f\xdd\x67\x12\x06\xf4\x76\x16\xb0\xbf\x20\x7e\x8b\x28\x89\x33\x67\x94\xdf\x75\xe8\xad\x3c\xce\x68\x98\xe1\x44\x56\x59\x16\x75\x03\xaa\x54\x25\x5c\x99\xfc\xc3\x8f\xa5\xa1\xb0\x16\x84\xde\x42\xa5\xdd\x0e\xd6\x0f\xb3\x55\xf7\x8b\x52\xe0\xca\xeb\xd6\x20\xea\x9b\x93\x73\x0d\x1d\x4c\x99\x28\xd5\x9a\xca\x2c\x5f\x55\xde\xe0\x50\x75\x66\xfa\xe5\x1b\xdc\xd3\xd4\x35\x11\xc1\xf6\x38\xfc\x57\x67\x49\x4a\xe5\x34\xf5\xde\xa6\x29\xde\x6b\xa2\x3b\x9a\x05\xd4\x09\x53\xb6\x0f\x71\x8b\x87\x5d\x69\xb9\x8e\xe3\x42\xe6\x60\x81\x8a\x32\x99\xd1\x64\xba\x39\x56\x85\xe9\x6f\xf1\xc3\x5f\xc4\x21\x24\x9b\xee\xba\x34\x8d\x82\xc3\xb2\x18\x2c\x33\x91\xc8\x90\x4a\x04\x17\xa2\x97\xd7\xfe\xbd\x0c\x86\x23\xc1\x19\xe9\xe6\x6e\x5e\x5f\xe7\x21\x0b\xf8\x7f\x1d\xb4\x45\x42\x05\xa6\xef\xb6\x76\x99\xb3\xb9\x81\x10\x87\x24\xdc\xb7\xcf\x0b\x6f\xe4\xe8\x8f\xf0\x90\x76\xf9\x2d\x52\x24\x3a\x7a\x9e\xc0\xc1\x77\x9e\xbb\x4e\x48\xe8\x13\xed\x48\x05\xf6\xd6\xfb\xaf\xb7\xb7\x66\xc2\x6d\x7e\x74\x35\x8a\x6b\x8b\xe0\xfe\xc8\xfb\xfc\x2c\x11\x29\x21\xd1\xeb\x2f\xd9\xc4\xa0\xcd\x65\x2e\x65\x8b\x45\xa4\x94\x15\x20\xd0\xb6\x8c\x6f\x39\x44\x65\xbf\x72\x72\xe5\xbb\x75\x22\xbd\x25\xc1\x7d\x6e\xcc\x4d\x17\x0c\x74\x13\x43\x9b\x0c\xe1\x9a\xcf\xfc\xf0\xb5\x41\x96\x52\xa1\x67\x0e\x3b\x35\x22\x12\x0f\xbf\x15\x53\xdb\x45\x7f\x82\xea\x2d\x2f\x6e\xa0\x50\xfe\x27\x9b\x54\x80\x77\xd2\x25\x97\xf4\xb3\x7f\x85\x88\x8c\xca\x08\x29\xb3\x25\x05\xeb\xb7\xbc\x20\xd5\xc8\xdf\xf1\x34\xbc\x1b\x31\x8b\x55\x68\x95\x97\x0f\x3b\x38\xcd\x8a\x1a\xab\x1f\xfd\x0c\x7c\xdc\x73\xfd\x9f\xc1\x7b\x17\x33\x10\x51\xea\xa4\x89\xac\x7a\xee\xe8\xfc\x61\x1c\xd2\xee\xec\xdc\xeb\x66\x85\x9e\xc3\xee\x8a\xf7\x94\xbf\x8f\x71\xa8\x22\x52\xc5\xdb\x36\xbf\x72\x67\x16\x71\xc4\x32\x69\x95\x6d\x2b\xaa\x2e\x75\xd9\x78\x1c\x67\x48\xfd\xd6\x63\x8d\x95\x87\x84\x0d\x3f\x1b\x0b\x25\xc3\x6e\xe7\x98\x75\xc4\xd0\x39\x5c\x08\xfe\x89\x38\x96\x8a\x76\x69\x0a\xd3\x37\xef\x15\xd6\xef\xe5\x4e\x8f\x42\xe6\x38\x0d\xad\x0e\xfd\x1c\xaa\x55\xdf\xf5\x0a\xf2\xdd\xa8\x87\x2e\xe2\x34\x11\x16\xaf\x45\x5f\xbf\x1c\x19\x18\x8a\x38\x35\x16\xbe\xbe\x6b\x57\xea\xef\x58\xd5\x1d\xe1\x41\xc4\x59\x1a\x12\xd2\x38\x57\xe5\xf3\x71\x8f\x15\x34\x65\xdf\xfb\x51\xc4\x99\xd4\x5e\xef\xe2\x09\x0e\xa3\xdf\xc2\x99\x4d\xb2\x2c\x36\xb0\x26\xad\xf5\xbb\xe5\xdd\x6c\xa9\xeb\xb5\x07\x40\x8b\x98\x47\x8a\x82\x73\xc2\x1c\x3d\x74\xfa\x8a\x22\x16\x3c\x26\xad\x80\x9b\x97\x6f\xcf\x9b\x3f\xb7\xab\xc5\x8f\xd9\xea\x76\xb0\xe0\xc7\x90\x01\x35\x72\xe6\x2f\xcf\xcf\x8b\xf9\x66\x7a\x3d\x72\x63\x65\x62\xfd\x15\xb6\xa0\xf5\x0a\xd5\xe8\x2e\x49\x1e\xd8\x35\xf2\xfe\x67\xff\x6d\x8f\x55\xc6\xb5\xdb\xd2\x66\x87\xc3\x6f\x53\x2b\x5c\xac\xb8\xf5\x70\xff\x66\xe9\x31\x84\x16\xde\x2e\xe7\x2f\x24\x25\xb2\xde\xcc\x9e\x5e\x47\x5f\xa6\x99\xed\x68\xdb\xc2\x82\x85\x1c\x5c\xab\x58\x4f\xbe\xab\xb1\x0e\x45\x66\x9c\x8c\x08\x16\xfa\x82\x1a\x3c\x98\xed\xfe\x33\x88\x51\xd8\x43\xf1\x78\x0c\xd6\xf4\x8c\xc7\xc0\x7a\x10\x54\x47\x17\x35\x8f\xae\x00\x63\x50\xb6\xaa\xfa\x9f\x4f\x7c\xaf\xf0\xed\xb7\xe9\x2e\xc8\xd4\xa3\x40\xc9\x08\x38\x32\xcf\xf7\xb2\xdc\x9f\x9b\xfa\x22\x36\x71\x26\x5c\x77\x69\xd9\xe0\xbe\xb6\x24\xa5\xee\x28\xe7\x67\x03\x03\x27\xad\xf3\x50\x5e\x5b\xf9\x62\x23\x32\x09\xde\x55\x76\x57\x56\xf7\x15\x9e\x1f\xac\x41\xeb\x99\xde\x69\x31\xe5\xcd\x3b\xad\x6b\xf8\x6b\xff\x1f\x91\xb0\xc4\xfa\x6d\xe4\xb5\xdf\x50\xc9\x8d\x63\xf0\xdd\x09\xcb\x34\xb5\xe7\xc1\x82\xe3\x36\x65\xb7\xf9\xfa\x01\x22\xa5\xdd\x6e\xb9\x3f\x80\xea\xc2\xa5\xe9\xa5\x39\x61\xca\x31\x67\xda\x77\xe4\x82\x0d\xe3\x06\x05\x42\xf8\x0e\xd3\x2d\x82\xde\xe5\xc5\x28\x0f\x4e\x02\x23\x24\x38\xf4\x1e\x35\xa6\x5d\x3b\x7d\x74\xa2\x88\x19\x8a\xa9\x87\x50\x44\xf2\x36\xbf\xb2\x77\x27\x71\x16\xb3\xb8\xef\x93\x72\x59\x1a\x1e\x7e\x47\x6c\x22\xe1\xaa\xd4\xbd\x70\x3d\x49\x43\xcb\xee\xcf\x8b\xbc\x79\x5a\x6c\x86\xea\x25\xbf\x7e\x2c\x59\x1c\x51\x19\x9f\xec\x5e\xd6\x4f\x2b\x53\x56\x6d\x32\x38\x1c\xc4\x23\xab\x46\xb7\x2f\x75\x6e\x4e\xae\x4b\x3b\xdd\x9e\x17\x09\x4f\x43\xea\x7a\xdd\xe4\x8d\x2a\xf3\xe2\x75\x77\xac\xbb\x0b\xe5\x4a\x49\x8f\x21\x85\x0a\xf6\x13\xa4\x29\x37\x52\x64\x19\xad\x82\x38\xc6\x7c\x8a\x44\x00\xa3\xa0\xb1\xdd\x3b\x68\x61\x1e\x7e\x3f\x40\x44\x61\xc0\xfa\x50\x56\x4d\xdd\xf3\x15\xf7\xc7\xb5\xa0\x05\x12\x8e\xcd\x3b\x16\x4d\xae\xc6\x58\x1f\x91\xc8\x34\xa0\xf4\x60\x7b\x2c\x28\x4d\x5d\xc3\x1e\xd7\x6d\x1e\x44\xaf\xd7\x35\xc9\x99\xd1\x2f\xd0\x2c\x35\x8e\xf1\x70\x93\xbf\xbd\x56\xe5\xbe\xec\x47\x00\x89\x46\x4e\xe1\xc1\x1c\x0e\x2b\x04\xf5\x7e\x85\xe1\x28\x12\x8c\x38\xed\x84\x8b\x02\xab\xb7\xd3\x53\xa9\x1d\xbf\xce\xf7\x53\xfd\x30\x6e\x3b\x80\x2f\x75\x5e\xe5\xdd\xb7\xa0\x12\x88\x9d\x19\x66\x5f\x49\xd9\x8f\x30\x31\x67\x59\x0f\x86\x65\x81\xc9\xe7\xc3\x60\x9b\xb8\x16\x12\xf4\xec\x55\x7c\x44\x62\x74\x18\x76\x4a\x83\x7d\x99\x4c\x91\x32\x1e\x10\x34\xe4\x3b\x36\x55\x7e\x26\x0b\x8a\x94\x69\xab\x39\x39\x53\xaa\xdc\xef\x4b\x4d\xbf\xa3\xb7\x92\xa5\x41\x66\xa8\x49\xdb\x7e\xa8\x0d\xdf\x97\xaa\xec\x0e\x71\x70\x32\xdb\xb5\xf3\x76\xbc\xab\x6c\xa3\xd7\x6b\x85\x8b\x34\x10\x36\x8d\xa4\x96\x16\x85\x8f\x3f\x3a\x83\xe1\xb1\x82\x96\x48\x43\x6d\xf5\x0c\xd6\x70\x02\xdd\xb7\x5f\x6e\x0f\x19\x2a\x83\x6e\x0f\x58\x99\xb2\xda\x6f\x7a\xeb\x1d\xc5\x5e\x38\xa1\x19\x39\x99\x80\xa5\x11\x57\xd4\xfa\xb7\x20\xe7\x5d\x6e\x70\xf0\x4d\x11\x30\xda\xc8\x5f\x7e\x3c\x6f\x8d\x23\xad\x0f\x5e\xab\x5e\x3e\x91\x46\x90\x12\x6f\x60\x59\xb4\x9b\x60\x4d\x15\x92\xaf\xab\xf2\x95\x22\x8d\xb4\xa1\xd6\xa0\x6e\xee\xb1\xf9\x51\x56\x3b\x4d\xdc\x0c\x77\x34\x4e\x52\xba\xa3\xb3\x8f\x26\xef\x9e\x6b\x1a\x6b\x45\x41\xdb\x7a\x3e\x3f\x73\x2d\x45\x9a\xa4\x32\xb6\x36\x0b\x7f\xef\xc1\xec\x3f\x82\x01\x1f\x48\xc3\xf9\x02\x64\x9a\x46\x86\x36\xe2\x4e\x43\x78\xef\xd4\xe8\xf6\x37\x50\x7c\x74\x0e\x56\xbf\xd2\x23\x11\x69\x9a\x66\xb6\xa1\xdf\x40\xd5\x6c\x61\x30\x03\x53\xa5\x29\xdf\x3c\xe4\xea\xc3\xa5\xb3\x53\xcc\x6c\x91\x66\x59\x4a\x80\xd1\xcd\x62\xf6\x64\xb3\xfd\xa7\x6f\x8f\x9b\xe5\xeb\xe3\x72\xb1\xf2\x27\xcb\x44\x4a\xf8\x3d\xdc\x1f\x9a\xd3\xb2\xa0\x0e\xd2\x54\xea\x92\xf2\x50\x92\x39\xa5\xe7\xcc\x74\x44\xeb\xf8\xb6\x3c\xca\xdd\x35\x81\x2b\x91\x72\x81\xb4\x77\x90\x43\xfa\x3e\x27\x1a\xc3\x54\x16\x9e\x72\x69\xcd\x1b\xad\x57\x4b\xdd\xce\x7d\x62\xd6\xd9\xd2\x27\xea\x4e\x92\x69\x9a\xde\x21\x52\xae\x82\x94\x75\xa8\xad\x36\x99\xb6\xa0\xaf\x6b\x7c\x1d\xf7\x31\xa1\xc2\x00\x3a\xcb\xf3\xd7\xfc\x27\xee\xea\xf6\x71\x59\xe5\xae\x61\x81\x30\x95\x18\xdb\xdb\xf0\xb8\x59\xac\x37\x93\x39\xef\x71\xcc\x77\x17\xa9\x0a\x52\xaa\x39\x11\x2c\x91\xc2\xe5\x65\xb1\xe8\xa2\x98\x54\x09\x41\x27\xdd\x4a\xab\x21\xe0\xff\xac\x23\x6e\x9b\x1b\x2b\x1b\xa8\xd7\xb9\x46\xfa\xdf\xbf\x6b\x4b\xb8\x13\x60\xa2\xe2\xd4\x35\xfa\xd7\x88\x1e\x77\x2a\x52\x54\xba\x33\xb7\xfc\x2a\x50\x0f\x56\x90\xf1\x49\x50\xa8\xac\x0f\xcb\x9c\x43\xb7\x82\xa6\x26\xe1\x49\xd0\xc7\x79\xbe\x9d\x9d\x8c\x44\x6a\x04\x78\x64\xd0\x23\xea\x37\xf7\xc4\xb9\x3f\x0a\x19\x2d\xce\xf7\xb3\xa7\xc5\xd3\xec\x7e\x39\xa7\x12\xf3\xaf\x22\xf6\x2c\x08\xb4\xf5\x37\x82\xfd\x01\xf2\xb7\xe2\xf6\x68\x43\xbe\x5b\x38\xf9\x2f\xcd\xc2\x20\x73\xa2\x09\x4d\x4f\xef\x4d\x64\xa1\x6b\x0c\x6c\xde\xf1\xbe\x74\x1e\x27\xdd\x31\x19\xa7\xf1\x99\x04\x47\x46\x2e\xaf\x65\xdd\x4c\x88\x7c\xfe\xf2\x8e\x67\xa1\xb2\x38\xb2\xc5\xdb\x9b\xa9\xb0\xf8\xcb\x3f\xcb\x2c\x12\x41\x90\x5d\xb2\x20\xc7\x6f\x6e\x07\x26\xbe\x44\x97\x64\x91\x4a\xb4\x73\x8a\x7b\xad\xb0\xe7\xeb\xd9\x1e\x02\x6a\xcd\x75\xbe\xa7\xbd\x08\x2a\x8b\xd0\x46\xd0\x35\x2d\x93\x1f\x87\x32\x2f\xa8\xdc\x5b\x56\xcd\x9c\xac\x6b\x86\xef\x61\x16\x87\x09\x95\x07\x9a\xae\x2c\xfc\x62\xfc\xb9\x62\x60\xb4\x63\x6e\x69\x61\x72\x1e\x8a\xe7\x83\x49\xdc\xbe\x7f\x54\x04\xb6\x4e\x11\xee\x48\x02\x82\xae\xaf\xdc\x6a\x3c\xd6\x93\x0c\x26\x91\xa5\x9c\x51\x37\x63\xb3\xa1\x5d\x73\xf0\x6e\x67\x59\x2c\x09\xf2\x29\x8f\xbb\x73\xb8\x3b\xc6\xec\x3b\xda\x4b\x3b\x5a\x93\x4f\x77\xd9\x26\x52\x77\xf9\x6e\x57\x8f\xd7\x00\x3f\x30\xb1\xf7\x06\xfe\x73\x84\x2a\x3f\xee\xe7\x65\xdd\x4d\x98\x4c\xda\x52\xf3\x01\x0f\xf8\x5a\xe1\xfe\x22\x7a\xce\x32\x93\x10\x10\x6f\x56\x1c\x65\x17\x96\x64\x3c\xe4\x14\x08\xca\x63\x1b\x55\x3d\x94\xbb\xbe\xff\xf2\x70\xc9\xca\x78\x6a\x95\x0e\xda\x84\x04\x0e\xde\x4d\xf7\x82\xc8\x23\x32\x0e\x9c\x4a\xe3\xb6\xff\x47\x2f\x8a\x3b\x02\xed\xad\xb3\xa7\xb0\xf7\x63\xdc\x4e\xca\x20\xe4\xfd\xaa\x13\x54\x8f\x47\x55\x95\xdd\xe7\x45\x40\xa8\x85\xe7\x52\xe3\x6c\xf0\x3c\xa5\x70\x0d\x42\xb0\x92\xe5\x83\x26\x66\x26\x55\x44\xe5\x97\xf7\x72\xa7\xb1\x9a\x8d\x22\xd9\x4c\x31\x43\x65\x0b\x9b\xd1\xbe\x96\xe5\x85\xcf\xf8\xff\x13\x4d\x92\x84\x5e\x93\xa4\xeb\x24\x8c\x61\x01\x99\x8a\x03\xaa\xe5\x3e\x9d\x9c\x20\xb2\xcd\x3e\xb2\xbf\x5f\xa5\x33\x25\x13\x02\x0e\x48\xdb\x38\xb2\xdd\x81\x6f\xa3\x1a\x46\xa6\xc3\x18\xf4\xd9\xd4\xab\x0d\x59\xb1\x4f\x29\x9b\x8c\x94\x32\x04\x4b\x4c\xdf\xe7\x45\x33\x6b\xd7\xf1\x41\x41\x36\x33\x91\x22\xec\x7b\x51\x36\x8f\xf9\xc7\x28\x75\xcc\x0c\x07\xeb\x46\xd8\x26\x32\x2b\xfc\xc4\x4e\x27\x71\x7a\xcd\xce\x8c\x48\xac\x5e\xc1\x1b\x36\x8b\x9f\xea\xfd\xad\x8d\x36\xdc\x77\x71\x96\x5a\xff\xfb\x3a\x08\xec\xac\x0c\xdc\x81\x80\x19\x12\x3a\xf3\x0d\x34\x07\xc9\x18\x9c\x9a\x07\x81\xa1\x66\xcf\xe6\xf5\xe5\xe9\x7f\xfb\x53\x06\x3a\xa1\x78\xf9\xe0\x63\xf0\xa6\xcf\x48\x16\x3c\x4c\xec\x1c\x73\xf7\xcc\x67\x2d\xc3\x33\x87\x69\x4c\x42\x67\x5f\x04\xeb\x19\xb1\x7f\x04\x0f\x55\x4a\xb9\x8d\xbf\xba\x97\x4f\xac\x0e\x1d\x20\x91\x87\xa8\x93\xb3\x61\xea\x0a\x8f\x35\xce\xa1\x7e\x5f\x16\x0f\x50\x7d\x81\x37\x1f\xeb\xe1\x57\x02\xff\xbd\x51\x10\xf8\xd6\x14\x25\x09\x3d\x85\xe5\x01\xee\xc4\xbf\x8b\x3c\x32\xb1\xd7\xc4\xb9\xcd\x3f\xeb\x81\xe5\x96\xe0\x31\x30\xd2\x9e\x5a\x37\x50\x49\xa8\x71\x01\xd5\xee\xe4\xa5\x64\x66\x7b\x2c\xf4\xbe\x53\x43\x6e\x47\x0b\x2a\x60\x1c\x2a\x84\x41\x4b\x70\x90\x75\xf0\x58\xc7\x5e\x35\x85\x68\xf0\x75\x5e\x16\x23\xac\x90\x1b\x99\x40\x1c\x5b\x93\x70\xdb\xd5\xea\xea\x08\xdd\x71\x65\x3a\x97\xc5\x01\x64\xca\x0f\x30\x96\x9b\xf8\x86\xcd\x9a\xb8\x53\xd3\xd1\x16\x4f\x9d\xf3\xd5\x0a\x6f\x2b\xf8\xf2\xa7\x4f\x85\x7d\x3b\xf1\x13\xd4\x91\xd4\x46\x7b\xd2\x7f\x82\xa7\x52\x25\x89\x13\x9c\x20\xeb\x46\xab\x33\xd9\x1d\x36\x99\x2b\x1a\x34\x9b\x2a\x7f\x7b\x9b\xb2\xe3\x6a\x47\x69\x8f\xb2\x70\xe1\xf4\xb9\x00\x32\xbc\x19\x99\xe4\x3c\xeb\x15\xb8\x5e\xcb\xaa\x19\x17\x58\x79\xa6\xc1\x7d\x29\xd9\x8a\x5a\xe0\x6f\x6f\x03\xe5\x19\x26\x4c\xf9\x26\xd2\x6e\xd7\x89\x4e\x8c\xd4\x29\x87\xef\x20\xe7\x26\x25\x06\xa3\xce\xb5\x4f\xd4\x9c\xf9\xda\xb5\xd2\xdc\xf0\xf3\x02\x12\x2a\xcd\x28\x28\x6e\xcb\xc7\xb2\x3c\x5c\x0b\xfa\xfc\x78\x1d\x90\x1f\xf0\x9f\x8b\xd9\x6a\xbb\x79\x58\x2d\x16\xdb\xf5\xb7\xd7\xd7\xc7\x3f\xfd\xcf\x80\xd0\xda\xa8\xe5\xf5\xcc\xc1\x0e\xa6\x3b\x9f\x1c\x92\x98\x52\xdc\x83\x65\x71\xb9\xd6\xcb\x7d\x09\x3b\x9f\xcc\xfb\x81\x98\xd1\x19\x0f\x70\xda\x54\x45\xbd\x81\x9f\x57\xee\x85\x4c\x34\xb1\x5b\x9c\x58\xee\x6b\xb9\x6e\xfa\xcb\x1f\x57\x81\xf1\x82\x7e\xbf\xe3\xa9\x36\x55\xb9\xef\xc1\xeb\xae\xfc\x60\x95\xc4\x76\xef\xa4\x18\xc5\xae\x87\x6b\xf8\x3c\x5f\x9e\x36\x16\x12\xf3\x58\xbe\xe5\x05\x61\x16\x86\xc1\x3c\xc7\x50\x92\x6a\xa1\xdd\xa3\x7e\x9b\x88\x38\xb9\x01\xe1\x30\x20\x6d\xd0\x36\xc1\xc1\xfc\xa5\x03\xad\x3d\x89\x60\x81\xa1\x15\x86\xae\x71\x50\x61\x1d\xfc\xa2\x76\x5c\xc8\xba\x4c\x84\x60\x8e\x87\x1d\x3a\x36\xad\x9b\x74\x7d\xe2\xaf\xff\x58\x28\x63\xd6\xad\xae\x73\xa8\xf4\xac\x19\x21\xec\x83\x8e\xb1\xd6\xff\x3f\xff\x79\x21\xf4\xd9\x80\xd2\xbd\x52\x96\xfe\x7e\xbd\xff\x27\x18\x68\xaa\x9e\x1f\xac\x56\xdf\x56\xe3\x8e\x2c\x36\x9b\x06\xf5\xaa\x1c\xd7\xd9\x04\x33\x76\x8b\x70\x44\x42\xff\xe8\x45\x90\xa4\x18\xf7\xe4\x89\x1d\x75\xf0\xa1\x3c\x97\xd6\x44\xa0\x23\xbf\x24\x11\xbf\xbb\xdc\xed\x60\x3b\xbb\xd9\xb2\x70\xd0\xb8\x10\x81\x4e\x49\x29\xb7\xbd\x7b\x8e\x55\x5c\x95\x7b\x8b\xe3\xf7\x98\xa9\xd1\x65\x85\x81\x95\x49\x9c\x1d\x9b\x77\xeb\x05\xee\x0e\x44\x41\x46\xb6\x84\x7b\xca\x79\xb6\xc7\x42\xed\xb0\xef\x5b\x34\x7a\x74\x51\x68\x33\xbc\x5e\x4b\x3e\xbc\xa4\x57\x09\x11\x25\xdc\xf5\x7d\xdb\x7b\x4c\x2b\x8e\x23\xc2\xfb\x11\x31\xe8\xbe\x49\xcb\xe2\xed\x6d\x80\xcd\x10\x09\xb3\x3c\x7a\xbf\x0f\x7e\x2b\x0e\x55\xd9\xa0\x6a\x50\x0f\x00\x13\xbf\xe8\xdd\x8a\x24\x8a\x22\xe9\x70\xed\xf6\x43\xc3\x5f\x93\x48\x9e\x9e\x63\x9c\x35\x49\x1d\xdb\x09\x31\x1c\x97\x66\x29\xe5\x86\x56\x5c\x9c\x8c\xcf\x62\xb6\x7d\x5d\xac\xe6\x8b\xe7\x4d\x9f\xd6\x29\x44\x16\x85\x54\x1e\x03\x5a\xf0\xbb\xaa\x77\x1b\xd9\xc6\x16\x18\xf4\x6f\x6c\x77\x2b\xaa\x42\x7f\x2b\x0e\xd0\x7b\xfe\x3c\x09\x7b\x0e\xa9\xb4\x29\xdf\x94\x4d\x53\xee\x97\x45\x83\x6f\xe3\x42\x42\xbb\x80\x51\x02\xb3\x7a\x98\x77\x67\x00\x24\x1f\x4a\xe9\xed\x15\x85\x20\x62\x95\xf3\x45\x03\x97\x99\x32\x77\x4c\xa4\x9a\x60\x0b\xb7\x79\x51\xd6\x70\xac\x06\xf0\x29\x21\x94\x21\xd9\x86\xf9\xc3\xf2\x79\xb1\x5e\x6c\x17\x7f\xcc\x1f\x66\xcf\xf7\x8b\xed\xcd\xb7\x3f\xbb\xa2\x92\x10\xa8\x08\x65\x0f\x4d\xe3\x9d\xc8\x5d\x38\x24\x20\x0d\x19\x74\x96\x79\xcf\xf8\x56\x36\xb9\xa5\x8f\x5d\xc2\x47\x84\x04\x41\xfa\x7a\x12\xea\x5c\x79\x71\xb6\x15\x36\xc7\xca\x6f\x9b\x42\x71\x69\xfd\x29\x51\x7d\xb6\xbb\xed\x06\xbb\x2c\x46\x28\x69\x15\x42\x49\x6b\xf0\xbb\x4d\x0f\xdc\x21\x9d\x31\xd3\x69\xa9\xf9\x3d\x6a\x45\xcf\x61\x9c\x43\x08\x9d\xc5\xd4\x5f\xb4\x15\x0a\x5f\xdb\xea\x26\x2d\x6a\xeb\x5f\xf6\x45\xf2\xb1\x67\x3b\xd5\xd1\x5b\x62\x58\x46\x86\x97\x7e\xee\xce\x8b\x66\xfc\xf0\x4c\xcc\x48\x8a\xed\x19\xbf\x56\x79\xed\xc1\x36\xc0\x62\x2b\xe4\xbc\xc6\xe6\xb6\x02\xd3\xd8\x16\x99\x3f\xc8\x59\xc2\x7d\x9f\x63\x07\x43\x0e\xf6\x90\xa7\x29\x80\x61\x92\x59\xea\x82\x75\x24\xbb\xba\xae\x42\x90\xc5\x94\x00\x2e\x9e\xd7\xc3\xbb\x01\x81\x4c\xa8\x54\xf5\x63\xb1\x6c\x67\xfb\x76\xb1\x79\xe8\x4a\x6a\x10\xa8\x54\x38\x65\xd4\x3d\x81\xe5\xf2\xdd\xd5\x32\x82\xff\x88\x49\x08\x1c\x66\x8d\xe9\x66\x4f\x2f\xdf\x9e\x37\xeb\xe1\x8d\x81\x30\x0a\xd0\xe1\x96\x3a\xbd\x17\xc7\xb7\x1b\xa1\x88\x21\xcc\xb8\x14\x9e\x79\xef\xea\x8c\xfe\x90\x34\xda\x5a\xd6\x54\x08\xda\x61\x5d\x26\x0a\xc8\x10\x85\xb6\xbc\x5a\x63\x63\x25\x87\x3b\xf9\xa5\xf1\xce\x37\xfc\xee\x48\x5b\x9a\x6d\x7b\x99\xa7\x75\x53\xe5\x87\xc3\x79\x9e\x40\x84\x91\x62\x5d\xc9\xbe\x4d\x65\x8a\x8e\x97\x02\x09\x33\xb4\x14\x14\xc7\xfd\xb7\x1e\xdb\x05\x92\x20\xb1\x7e\x35\x6d\xec\x71\xdc\xe1\x33\xfe\xec\x4a\x0f\x93\xb1\x29\x24\x61\x44\xea\x62\xdf\xf3\x92\x5c\xcf\x7e\x9b\xca\xc9\x20\x51\x48\xc5\xab\xb2\x02\xb5\xcb\xff\xc2\x7b\xa8\x17\x3f\x9b\x0a\x66\x55\x1f\xe7\x05\x69\x1c\x50\x7c\xd8\xe6\x83\xc7\x43\xba\x1f\xdd\xa8\x54\x5a\xd1\x78\xbb\x38\xad\x9b\x76\x13\x7b\x3b\x3d\x82\x44\xe7\x57\x19\x24\x83\x90\x02\xb2\xd0\xd0\x5a\x74\x5b\x95\x05\x2e\xf6\x87\x5d\x79\x42\x5c\xbd\x74\x73\xec\x1f\xa3\xa9\x32\xfc\xba\x0c\x13\x52\x76\x84\xba\xc6\xaa\x59\xfc\x27\x76\x6e\xd6\xff\xe8\xff\xd3\x3d\x0d\x9e\xa5\x96\x6d\xdb\x94\x87\xd7\xa3\xb4\x96\xaa\xee\x98\x08\x02\x62\x7d\x1f\xaa\x72\x57\x16\x6f\xa8\x7d\x35\xad\x1b\x90\x62\x16\xfa\xe2\x44\x55\x95\x4d\xed\x42\x92\x7c\x58\xc9\x03\xa1\x42\x13\xf4\xf6\xf0\xa5\x1e\xec\xcb\x00\xc6\x50\xf1\x86\xf2\xd7\xd9\xee\xcc\x86\x1f\xdd\x4a\x19\x27\x91\x1a\xd9\xa1\xba\x43\x2a\xcc\xe8\x2e\x6f\x96\x8b\x55\x40\x3b\x8d\xbf\x4a\x95\xc5\xd2\x6b\x00\xcd\x5d\x5d\xf0\x4a\x5e\x0c\x8a\x5b\x83\xc6\x03\x9c\xe6\x5e\xed\xc0\x9f\x47\x6b\x4b\x9f\x36\x90\x57\x35\x71\x0e\x68\x57\x6d\x57\xe5\xbb\x3b\x3f\x08\xb9\xf5\xc3\x68\xb0\x6e\x82\xd1\x0b\x8a\x2a\xa6\x68\x12\xad\xb2\x83\xa3\x65\x76\x07\x53\x62\x92\x15\xf8\xb5\x79\x6f\x5f\x3d\x12\x3a\xfc\x6f\xe0\x52\x60\x02\xab\xb5\xf1\x03\x73\x52\xc9\xf4\xeb\x37\x98\xd4\xc4\xbc\x8f\x74\xb4\xf1\x65\xe7\xdb\x2c\xc0\x00\x0f\x5d\x3e\xe5\xc0\xfa\x44\x64\x37\x30\xc6\x3a\x83\xd1\xc6\x52\xd4\xdf\xcb\xaf\xae\x93\xee\x72\xd0\xc1\x48\xc9\x42\x61\x45\xeb\x0b\x53\x6e\x5d\x0e\x3a\x4e\xd6\x25\x4b\xec\xab\x6c\x77\xb8\xe1\x8d\x92\x4c\x18\xea\xcd\x1c\xc0\xc3\xf1\x86\x1f\x0e\x8c\x88\xe5\x99\x08\x4c\x36\x6d\xaf\x30\x6e\xc6\xca\x30\x4e\xf9\x59\x83\x94\xf8\xaa\xa7\x5f\xaf\xb3\x32\x4a\x6c\x51\xaa\xac\xde\xa0\xc8\x6b\xb0\x3e\x79\x1a\x7f\x8e\x4e\x1d\xa5\x01\x51\x53\x5c\xc0\x61\xdb\xb9\xff\x4f\xe5\x2a\x19\x19\x88\x65\x17\xd3\x2f\x28\x3e\x1e\xff\xe0\x84\x31\x5a\x11\x5c\x81\x6e\x9b\x3b\xb5\x81\xae\xf2\x10\x9e\x0b\x82\x83\xff\xbd\x7a\xe0\xbf\xfe\xdf\xd1\xd5\x26\x41\x46\xfe\x3a\x7b\x52\x60\x27\x47\x69\x2f\x3a\x3f\xbe\x66\x9e\x51\x19\xec\x70\x24\xd3\x41\x28\x4e\x2f\x05\x21\x5b\x27\x9b\x2c\x32\x0d\x14\x3b\xcb\x0a\xac\x41\xeb\xdd\xd9\x79\xe7\xd7\xac\x0a\x99\xc6\x8c\xd0\x34\xaa\x2c\x0a\x6a\xce\x0f\xf1\x04\x7e\x54\x9a\x39\x9e\x44\xe3\xa5\xb2\xa8\x1b\x31\xba\xee\x14\x41\x7a\x2d\x7b\xdb\x6d\x19\xac\x98\x32\x93\x8c\x50\xbd\x67\x3b\xe3\xf1\xc5\x8d\xc6\xeb\x4c\xba\x62\xc4\xcd\x51\x8f\xfd\x3f\x85\x14\x59\x12\x39\xb8\x50\x1b\x69\x43\x95\xc3\x6b\x59\xee\x26\xf1\x05\x52\xf0\x44\x5a\xed\xb4\x9f\xb0\xf7\x21\x9c\x04\x26\xd3\xa8\xa3\x9a\x4b\xac\x88\x29\xd9\x86\x69\x75\x37\x24\x49\x33\x65\x8b\x05\x0a\xdb\x93\x53\x24\xe9\xa2\xe9\x6e\x90\x0e\xa8\xd9\x6e\x6d\x8f\x9e\x16\x4b\x7f\x40\x46\x16\x62\xb6\x42\xad\xf3\x4b\x9b\xc6\x8b\x56\x84\x94\x60\xcb\xd6\x5b\xfb\x82\x2c\x8b\x76\x31\x2b\xab\x7c\x82\xff\xd7\xcf\x34\xa5\x36\x2a\xb3\x88\xbf\x36\x7c\x3d\xa7\x68\x0f\xe5\x4e\xbb\x9f\x34\xea\x8b\xba\x0f\x62\xc8\xc9\x46\xd3\x92\xca\xd4\x69\xfd\xd5\xb1\x35\x25\xa6\x09\x55\xb4\xee\xcf\xee\xf7\x93\x5b\xa7\x44\x85\x81\xcd\x7a\xac\x32\xd2\xf8\x3b\xd0\x0a\x25\x50\xa4\x4c\x59\x51\x4f\xd4\xc9\x7f\x99\x61\x01\x05\x30\x64\x15\xd8\x46\x04\x67\x9d\x0e\xa1\x58\x28\xad\x98\xd4\x40\xfc\x62\x72\x29\x52\x2c\x12\x54\x6c\x86\xbc\xba\xad\xca\xc3\x3f\xcb\x7c\xc4\x45\x50\x2c\x8b\x32\xab\xca\x52\xe0\x05\xd4\x43\x85\x90\x90\x68\x00\xd8\x40\x68\xbe\x2b\xbb\x7c\x49\x85\x32\x56\xd1\x79\x01\x75\xd3\xc0\x2b\x9b\xb7\xbb\x75\x48\xd0\xf6\xfb\xc5\x33\xdb\xce\xbe\xcd\x37\xcb\x97\xe7\xed\xed\xb7\xd5\xac\xfd\x1f\x3f\x28\x0a\x91\xa4\x5f\xdf\xf7\xa0\xea\x77\xe8\x18\x1b\xfd\x89\xa0\x22\xae\x9c\x18\x17\xe5\xfe\x76\x43\x1d\x04\x88\x8e\x1e\xa8\xe2\xd4\x50\xb0\xf5\x51\x2b\x2a\xfc\xdd\x1c\xab\xe2\xc7\x3b\x16\xa4\xfa\x57\x3e\x41\xbb\x11\x4c\xb0\x37\x47\xa0\x4f\x15\x67\x61\xe0\x08\x1a\x94\x66\x7b\x78\x62\xff\xa2\x62\x8c\x69\x97\xc7\xc2\x1a\x12\x6f\x4e\x87\x71\x19\x5b\x25\x71\x94\x9c\xd7\xa3\x5b\xaf\x23\x7f\xb1\x22\xaa\x24\x81\xc8\x8a\xc0\x40\xa5\xde\x6f\x4e\xf7\xbe\x80\xd7\x1d\x57\x08\xdd\x9b\xd7\xae\x17\xff\x37\xaa\x90\x17\x15\xa3\x7f\xf4\xe2\x2a\x95\x80\x95\x4b\x02\xad\x5d\x55\x66\x85\xa0\x2f\xc1\xc2\x7e\xb8\xab\x76\x92\xa6\xec\xba\x13\xe8\xa3\x03\x24\xe2\x74\x3b\x98\x41\x09\x1a\x7a\x1d\xca\x82\xf4\xee\x7a\x64\x32\x95\x06\x32\xb5\x1b\x12\xec\x88\x35\x3c\x10\x71\x11\x2a\x55\x29\x41\xfd\x36\x0f\xab\xdb\xee\x33\x88\xd2\x31\x33\x96\xaf\x77\xeb\x11\xf8\xcf\x0d\xca\x52\x4b\x2c\x39\x73\x74\x8a\x8f\xea\xa2\x58\xa4\x78\x62\xf9\xed\x2b\xf8\x38\xbe\x95\x67\xd6\xc4\x95\x7d\x62\xfc\xaf\xcf\xe0\x14\xcf\x0c\xb1\x1d\x9b\x72\x98\x06\x29\x2e\x13\xca\xd1\x6c\xb7\xc0\xaf\x2a\xb3\x76\xf9\x9b\x30\x56\x14\x4a\x64\x81\x77\xbb\x6b\xdf\x28\xeb\x26\xd0\x7f\xf5\x05\xc4\x24\xbd\x75\x70\x2a\xa4\xce\xc6\x6a\xf8\xad\x90\x1a\xb4\x80\xd3\xff\x37\x06\xb5\x02\x91\x52\x21\x64\x9b\xd7\x2f\x07\x0b\xbe\xbd\x2b\xab\x81\xf1\xd1\x35\xf6\xa3\x02\x8c\x29\xa6\xd1\xb9\x31\xb9\x3a\xee\x3a\x9c\x81\x92\x51\x92\x38\xe0\xe6\x31\xaf\x50\xf7\xf4\x8c\x85\x92\xc8\x28\x09\x50\xae\x56\xec\x8d\x64\xfe\x6b\x41\x85\xc9\x6d\x53\x29\x16\x12\xd7\x14\x88\xa3\x7b\x38\x93\x99\x95\x0a\x90\xaa\x37\x7b\xf8\x39\xef\xc9\x12\x0e\xfa\x21\x4a\x6b\x4d\x6f\xc6\x3b\xa8\x8f\x76\xe5\x9c\x28\xdd\x2a\x8c\x63\x42\xb7\xde\x3e\xbd\xbe\x1f\x4b\xe7\xb7\xea\x4f\x80\x32\x25\xac\x88\x7d\x92\xdb\x3e\x84\x59\x33\x93\xd0\xec\xa3\x65\xdc\x69\xcc\xfb\x9b\xa5\x83\x24\x24\x18\x96\x63\x0e\xf6\x4f\xaa\x03\x21\x88\xbd\x6b\x2b\xd2\x7d\xf4\x81\x0e\x64\xaa\xd2\x81\x54\x25\x05\x9f\xab\x0b\x29\x28\xa1\x03\x2d\x08\xe4\xf0\xf4\x32\xf3\xf5\x2b\x1d\x0a\x41\x92\xaf\x87\x77\xa8\x31\xf0\x89\xda\xb2\x78\x28\x8f\x5d\x9e\xac\x43\x83\xdc\x92\x89\xfc\x4b\xa9\xa3\x30\xca\x1c\x19\xe8\x5c\x39\x65\x2c\xd8\xb2\xae\x76\x3a\xb8\x69\x3a\xca\x3c\x94\xf5\x11\xe1\xed\x88\xab\xb2\x6e\xb0\x1a\xa9\x36\xe8\x48\x62\xec\xfb\x8b\xaf\x40\xa6\x19\xd7\xe8\xe3\xee\x13\x31\x93\xd4\x91\x04\xcf\x26\xf2\x7f\x0f\x2c\xc9\xb4\xb1\xcf\xa1\xcf\xd4\xd6\x71\x22\x9c\x99\xe5\x3f\x4b\xf9\x00\xf5\x5d\x85\x48\xfb\x7b\xd5\x5f\x81\x75\x9c\x00\x9d\x7a\x07\xc7\x42\xbd\x8f\x2f\x35\x4e\x2d\xda\x6d\x0f\x1f\xf8\x03\xf1\x63\x77\xb2\x5d\xf2\xe1\x0b\xae\x63\x15\x71\x17\xa6\xdd\x60\xdd\xdc\x1f\xb1\xae\x6d\x79\x96\x9a\xcc\x1b\x2c\x1a\x68\xf2\x4f\x52\x2d\x25\xb9\xa9\x53\x79\x6c\xba\xf8\x60\xca\xfa\x51\xe8\x24\x35\xdc\xca\xc0\x9f\xe6\xef\x04\xa6\x20\x2f\x8e\xd1\x37\x67\xcc\xee\xb3\x3e\x32\xde\xa1\xaf\x6d\x4c\x6e\x48\x3a\x13\xb6\x12\x57\xe1\x63\x09\xfa\x8f\x7c\x84\xee\xd7\x1c\x14\x15\x5a\x77\xb4\x4e\x0d\x5c\xec\x84\x16\x61\x40\xf3\x61\x9f\xeb\x0d\x56\x7b\x0f\x4e\xf0\x47\x15\x27\x7d\x81\xb5\x82\x1d\xbe\xc8\x2b\xa0\x09\x0d\x5c\x09\x57\x5e\x5a\xce\x5f\xfa\xba\xc2\x42\x83\x92\xa6\x7d\x18\x5e\xa8\xea\x97\xd0\x2b\x0d\xda\x9a\x63\xf7\x78\xeb\xaf\x58\x3d\xe5\xbb\xdd\x85\x82\x8c\x96\x10\x69\xd7\x75\xb5\x81\xfb\x44\x0f\x59\xab\x30\xa1\x29\x43\xa6\x63\xed\x82\x5a\xe0\x6e\xa1\xc6\x82\x3f\xd7\x77\xde\xde\x99\x78\x14\xf4\xd9\xa4\x0f\xf0\xf9\x79\x91\x74\x68\x2d\xe2\x24\x19\x9a\xd7\x5f\xdc\x73\xad\x13\x6a\x21\x6d\xe5\xf1\xf4\x47\x01\xfb\x8b\x14\x69\x74\x7b\x91\x85\x02\xfa\x19\x4a\x57\x97\x19\x7e\x37\xaa\x94\x44\x9e\x3d\xbd\xe5\xad\x42\xec\xb5\x96\x91\xc5\x31\x3d\x8a\xa7\xce\x4f\x6a\xf0\x79\x64\xa9\xed\x36\xed\xf3\xa2\x59\xd6\xf5\xd1\x1b\xdc\x4f\xc6\xab\xed\x2e\x40\x39\xaa\x2f\x73\xd1\x43\x3f\x6f\x4d\xc8\x80\x29\x33\xc0\x7b\xff\xc8\x9b\xf7\x36\x42\xfe\x45\x13\x09\x19\x4a\xd2\x7b\x52\x56\x2c\x82\x42\xba\x1e\xe3\x03\x83\x48\x11\x28\xf4\xcb\xbe\x76\x1b\x84\x3d\xd1\x46\xfd\xe1\xc4\xda\x51\x52\xb7\x60\x1b\x74\x7f\xd6\x9c\x48\xd8\x8f\x47\xf5\x41\xce\xdc\x75\x77\xc4\x28\xc2\xf8\x3b\x10\xbe\xff\x73\xc4\xed\xc2\x6d\xf9\x1a\xdf\x6a\xac\xa8\x10\xd8\x2e\x99\xe1\xf4\x4b\x80\x11\x04\xda\x32\x75\xcb\x3d\x81\xa1\xb0\xea\x49\xab\x5d\xca\x40\xf4\x7f\x75\x9c\xc4\xcc\x15\x38\x7a\x98\x50\x7f\x31\x49\x68\xf1\x88\x34\xd1\x8b\x63\x7d\x11\x8d\x60\x22\x2d\xd3\xd9\xf3\xef\xbb\x4f\x6a\xe6\x5c\x86\x8b\x66\x59\x58\x6a\xd7\xfc\x92\x8b\x8c\x69\x6a\xe1\x21\x7f\x0d\x74\x96\x30\x05\x49\x7d\xdf\x5c\x95\xde\xb2\x9f\xfc\x28\xbb\xfb\x9a\x62\x40\x75\x76\xdb\x4b\x28\x9b\x71\x54\x8d\x59\xcc\x7c\x79\xf7\x19\x7f\x36\xdf\xed\x1e\x39\x51\x61\xc1\x2c\x53\x51\x07\x70\x5d\xef\xca\x66\xd6\xfd\xfe\x4c\x08\x7a\xa8\x9f\xa5\xfd\xb0\x29\xbb\x23\x46\xaa\xd0\x7f\xff\xa2\x79\x7f\x2d\xbb\x07\xcb\x43\x6d\x4b\x8c\x26\xdf\x7e\x4d\xd3\x21\x90\x87\x96\xcd\x7e\x53\x95\x1f\x58\xb5\x77\xfe\x2a\xdc\x7d\xf4\xc1\x84\x63\x62\x2b\xa5\xed\x02\x7e\xf6\x9b\xf9\xbf\x86\x34\xf5\x26\x01\x4f\x99\x0a\x7a\xb0\x03\xea\xa2\x5a\xcc\xd1\x20\xd6\xc1\xf6\xb9\xa2\xe7\xa4\x97\x4e\x05\xa9\x97\x67\xb9\x61\x90\x06\x5a\x76\x6e\x7f\xf9\xce\xe7\x9f\xb7\xde\x88\xc2\x8f\xe3\x8c\xaa\x6f\x54\x64\x52\x04\xdc\xde\xaa\xb2\xf8\xc4\xea\x5a\x39\x72\xf4\x3d\x1c\x04\xf7\x3c\x07\xf5\x41\x1b\xd6\x08\xd5\x3d\xfa\x00\x46\xa9\xc3\xb8\x3d\xc1\x4f\x7a\xc5\x3d\x1c\x66\x59\xbc\x14\x78\x3f\x62\x70\x23\xa0\xf2\x0c\xed\xf6\xe9\xcf\x71\xb7\xb3\xb5\x77\xff\x13\x64\x0c\xc2\x4d\x33\x27\xc8\xe9\x0f\x24\x9a\xa2\xac\x01\xb5\x73\xdc\xd7\x41\x99\x0a\x7a\xc1\xd4\xb1\x6a\x5f\xf5\x2e\x2f\x46\xc9\xad\x9a\x88\x82\xa2\x9d\xdd\x57\x56\x42\x25\xa3\x80\x9d\x55\x1f\xd1\x86\x90\x57\x7e\xbc\x42\x4d\x3b\xdc\x7e\xfe\x6d\xb5\x5a\x3c\x6f\xb6\xeb\xcd\xb9\x76\x8d\x5a\x31\x8a\x82\xf7\x79\x91\xef\x61\xd7\xf3\x6c\xf3\x03\x90\x13\x23\xfb\xe1\xa4\xab\xf2\x0a\xbb\xd6\x0d\xc5\xc0\x04\xaa\xd3\xb0\xff\x8b\x60\x1b\xfe\x34\x98\x48\xd2\x78\xb3\xfb\x89\xb3\x39\x76\x15\x53\x3b\xc4\xb0\xd0\xba\x5f\xd5\x97\x3f\x65\xf8\xfb\x4d\xa0\x34\x7a\x4e\x75\x9b\x29\xe8\xa1\x0b\x9e\x1f\xa5\x33\x6a\xc1\xfc\x8e\x45\xf3\x71\x66\x41\x98\x50\x8a\x28\xe8\xea\xa1\xd5\xac\xae\x73\xc2\xc2\xc2\xa0\x65\x60\x22\x06\x74\x67\xde\xf3\xca\xae\x7e\x67\xaf\x7f\xff\x1c\x4d\x94\x44\xd2\x22\x10\x7c\xa5\xbe\x1f\xc6\x9b\x28\xb3\x5a\x91\xf9\x94\x64\x8e\x89\x50\x53\x45\x69\xeb\xc4\x06\xa6\x8d\x5a\x84\x89\x8d\x09\x9d\x04\xc6\x1d\xe2\xaa\xdd\x88\x87\xd3\xd5\x24\x59\x26\x5d\xea\xa7\xf0\xe6\x78\x1a\x08\x06\xbb\x31\x5c\x23\xb9\xca\xe4\xf5\xa2\x79\x27\xf5\xa8\xc2\xf2\x0d\x7d\x69\xcc\x88\x0c\xe2\xf4\x42\x77\xd5\x22\x1c\x27\x1e\xb7\x81\x24\x91\x0e\x52\x03\xf5\x6c\x27\xa1\xea\x92\x0d\x03\xdc\x50\xfb\xba\x2b\xf6\x2f\xf5\x76\xb1\x9a\x07\x69\xd2\x8d\x10\x86\xb2\xba\xdb\xe7\xe7\xfe\x16\x60\x40\x71\xe3\x7d\x53\xaf\xfb\x68\x08\x23\xa3\x34\x30\x83\x17\xed\x3a\xec\xe0\x1c\xaa\x1b\x99\x84\xce\x65\x29\x2f\x5e\xcb\x72\x67\xe3\x3d\xd5\x06\xd7\x9d\x16\x98\x51\x51\x4a\xf3\x8b\xa8\x15\xab\xd9\xf3\xfa\x6e\xb1\xb2\xc4\xc9\xd7\x4e\x82\xc6\xa8\x48\x0a\xed\xdb\x8c\xc3\x30\xd6\x50\x21\xc4\xbe\x55\x8b\xe6\x7d\xb0\x98\x1a\x95\x68\x4a\xdf\x1e\xcb\xb7\x9e\x5a\xcd\xfa\xda\xfb\x6b\x94\xc0\xc4\x8a\xaf\xd6\xef\xd7\x2d\x15\xfd\xe0\x76\x03\xa4\xc1\x07\xba\x7b\xfd\x57\xd9\x68\x11\x51\x66\x75\x2c\xbc\xdf\xda\xba\x1e\x61\x4b\x0d\x6a\xc8\xac\x94\x80\xf6\x8d\xc1\xff\x8e\xeb\x66\x4c\xa0\x09\x5e\xf3\x8e\xbb\x9d\xdf\x2f\x8d\xc9\x18\x89\x5c\xab\xb2\x6e\xb6\xa5\xe9\x28\xcd\x6e\xbd\x04\xc6\x58\xe2\x05\x0b\x1f\xcb\xa6\xe9\x64\xa9\x08\x07\x39\xb8\x36\x60\x2c\xe1\x26\xf1\x41\x4b\xa3\xde\x69\x63\xee\x5f\x04\x30\x96\x26\x84\x0e\x7f\x6f\x67\x64\x85\xa0\x4f\xe4\x07\xeb\xf7\x1e\x60\x4c\x84\xa9\x83\xa2\xcf\xaa\xea\xa6\x2c\x77\x77\x39\xee\x74\xf0\x9b\xb5\x82\x76\xa3\x82\x48\x90\xfc\xcf\x1b\xec\xd1\x49\xe0\xfc\x36\xad\xf6\xf7\x8f\xe1\xf7\x07\x99\x89\xfa\xb3\xb2\xf3\xf2\x98\xa6\x9f\x01\x0b\x53\x45\x37\xe8\xab\xaf\x5e\x0d\x2c\x04\x43\xcf\xd1\x82\xd4\x96\x85\x4b\xc8\xea\x17\x73\x09\xd0\x00\x16\x71\x4e\x5e\x63\x77\xab\xc5\xe2\x7f\x2f\x68\xa6\xfa\x13\xc5\x41\x9c\x5a\x49\xdd\xa6\x3a\xbd\xb8\x36\xf3\x9a\x30\x9c\xa5\x19\xdd\xbc\x58\x27\xaa\xf3\xd5\xc9\x8b\xb7\x3b\xc4\x01\xb2\x14\x58\x12\x65\xf4\xb4\x8e\x85\xec\x3c\x62\x87\x90\x9f\xe1\x19\x93\x34\x70\x3b\xbd\x29\x37\xb9\x0f\x13\x81\x25\xd2\xea\xf0\xf6\x44\x56\x83\x01\x92\x0a\x58\xca\x18\xf5\x32\xb5\xeb\xd4\x9e\x37\x13\x60\xa9\x50\xe7\x8a\x10\x55\xc7\x27\x8b\xfe\xd3\x60\x38\x60\x59\x98\x10\x8d\xf8\xab\xdd\x83\x7a\x2c\x81\xf6\x48\xaa\x1d\x01\xe8\x01\x9a\x4b\xb3\x09\x60\x9c\x59\x79\x34\xbb\xd4\xa2\xf7\x7f\x98\x32\x81\xf0\x9f\x08\x22\x6a\xbf\xe4\x75\x1b\xa8\x90\x3c\xb3\x3f\x02\x99\x13\xe6\x2d\x4c\xfe\xd6\x47\xbe\x03\xe3\x32\xe0\xce\xde\xe0\xce\xc2\xb0\xa6\xfa\x35\xc0\x44\xe0\x90\x73\xdd\x3b\xfd\xdb\xf0\xc7\x8a\x30\xf1\x22\xd4\xb7\x64\x45\x70\xe8\x7f\x8d\x48\x02\xc2\x01\xe5\xfd\x00\x79\x24\x55\x0f\x0c\xb8\x21\xf9\x46\x45\xbe\x12\xce\xca\x71\x1a\xfe\x3d\xfa\xf1\x20\x80\xe0\x59\xbf\x3f\xbf\xfc\xf1\xdd\x7f\x29\x48\xed\xbd\x6e\x9e\x4e\x2e\x4d\xef\xaf\x91\xc0\x64\x60\xb9\x16\xd4\x57\xee\x6d\xa9\xc0\x64\x9c\x26\x56\x24\xed\x93\xde\xcc\xba\xb7\x79\x00\x93\x2a\x11\x96\xe9\x55\xe8\xb2\x82\xee\xcf\x68\xa5\x62\x6f\xf3\xfa\xd0\x2e\x1c\x0f\x47\xe9\x0f\xa9\x28\x76\x36\x0d\x8e\xf3\xe7\x04\xc1\xa6\x35\x1a\xfe\x31\x98\xa2\x8a\x47\xc6\xd9\xa4\x61\xf5\x08\x75\xf3\x0a\xb9\x9e\x4d\xbb\xa2\x02\xd3\x59\x46\x90\x18\x5a\x90\x86\x3f\x57\x6b\xeb\xf8\x46\x1a\x35\x03\xab\xac\x69\xdf\x7a\xf7\x31\xcc\x42\xe2\x19\x3d\x96\x6f\xb7\xd6\x32\x71\xf1\xfd\xf9\xca\x9b\x68\x98\xec\xd6\x7e\x6f\x77\x6a\xb5\xab\x89\x18\x71\xec\x69\x36\x75\x3d\xb3\x90\xfb\x0f\x87\x26\x71\x69\xcb\xe0\x76\x9b\xc4\x8a\x59\xbb\x26\xb5\x55\x55\x1a\x35\xc0\xdc\x89\x87\xe7\xf7\x9f\x07\x54\x8e\xc4\xfb\x8c\x5f\x4f\xb8\x1f\x7b\x28\x5c\xe5\xeb\x03\x33\x92\xc7\x99\x75\xb9\x3b\x60\x55\xe3\xaf\x3c\xc6\x20\x60\xca\x50\x3f\xca\xfa\x1c\x6d\xb1\x68\x2e\x7d\x32\x46\x1f\x09\xe2\x80\x5c\x07\x5e\x57\xcb\xef\xb3\x8d\xb5\x5f\xbb\x99\xad\x9d\x60\xd1\x76\xf9\xbc\xfd\xe1\xfb\x97\x10\x84\x2c\xe6\xe4\x72\x53\xec\x3a\xeb\x0a\x08\x42\xcc\xc0\x3d\x57\x92\x65\xe9\x15\xf6\x9d\x68\x25\x04\x71\x2c\xec\x8e\x5d\x6a\xb4\x66\x70\xed\xab\xb8\x29\x07\x82\x7c\x7e\x6c\xa2\xfc\x8b\xf3\x7c\xdc\x2f\x9a\xf7\xcd\x17\xa2\x6f\xc1\x42\x10\xf3\x94\x94\x31\x0a\xfc\xba\x2d\xd5\xb1\xa7\xdd\x3a\xb8\x75\x41\x8c\x82\xc0\xac\xf2\x78\x9a\x51\xd4\x3f\xfe\x1a\x63\x0d\xaf\x08\x20\x62\xf5\x64\x66\x54\x37\x2c\xaf\x88\x01\xb4\x1f\x31\x99\xc7\xc7\xfa\xcb\x49\xe2\x10\x53\x8f\xf3\xbf\x87\x3d\x3a\x2b\x43\x7f\x58\x86\xcc\xb3\x77\x7e\x41\x25\x81\x20\x65\x86\xde\x0e\x3a\xcf\x44\x93\x6f\xf0\x9a\x05\x19\x03\xb0\xdc\xa7\x93\x77\x5c\x1e\x2c\x88\x41\x96\x45\x84\x39\x2c\x9b\x77\x6c\x73\xc0\xbc\xa8\x29\x9b\xaf\xb1\xbb\x34\x1e\x72\xea\x4e\x3a\x75\x73\xfc\x9a\x63\xd5\x90\xd9\x63\x37\x02\x2d\x73\xb0\x76\x4d\x40\x67\x59\x34\xbc\x70\x91\x25\x14\x05\xc2\x27\xe4\xbb\x36\x03\x1e\xa2\x59\xbc\x70\x74\xfb\x4a\xc7\xff\xe3\x3f\x23\x19\x61\x08\x9c\x2a\x93\x75\xb7\xc3\xea\x5f\xd4\x45\x1f\xfe\x52\x60\x9a\x42\x19\xdd\xf5\x88\xd7\xab\xe7\xcd\x15\xce\x3f\x0d\xcf\xce\x28\xb1\x4d\x79\xc8\x55\x7f\x43\x98\x00\x8a\x41\x00\xb1\x15\x41\x7d\x98\x3d\x7e\x5f\x3e\xdf\x6f\x6f\x17\x8f\xb3\x3f\xfd\x3d\x80\x4c\x50\x65\xac\x6a\x17\xdb\xfd\x70\x56\x03\xd7\x04\x3d\xfd\x81\xf2\xd5\x33\x64\x20\x00\xb0\x2c\x67\xeb\x30\xbf\x6d\xf2\xfd\xa8\x7e\x03\x01\x48\xb4\x22\x7e\xf9\x5f\xde\xe5\xc2\x1d\x91\x5c\x53\xc9\x68\x5e\xee\x0f\xed\x4b\xbc\x2c\xf2\xee\x81\xa9\x44\xa0\xc3\x89\xdd\xe4\x7a\x7d\x94\x6e\x8e\x50\x94\x53\xcf\xb4\x1e\xdd\x3a\x85\xd6\x7f\x56\xed\xca\x02\x07\x3e\x89\xbd\xdc\xf6\xef\xba\xa8\x5d\x25\x05\x02\xad\xc0\x4f\x87\xc7\x52\x7d\x0c\x42\xa2\x8b\x07\xa1\x4d\x44\x08\xae\x76\xbd\xfc\xad\x77\x12\x64\x01\x39\x33\x1f\x8e\xf5\x3b\x41\x13\xf7\x5d\xc7\x7d\x78\xf5\x88\x40\xf8\x27\x7f\xe1\xae\xbb\x4e\x3f\xbb\x69\x43\xd5\x6b\x57\x3e\x51\x4d\x81\xc0\xa0\xb5\x06\x69\x7e\x7a\x1f\x8c\x5e\xdb\x08\x42\xc6\x63\xbb\x71\xd0\xb4\xf1\xae\xa6\x83\x53\x84\x4c\x64\x99\xd5\x41\xfa\x6e\x4d\x51\xaf\x44\xbb\x61\x20\x25\xe9\x21\xbd\xae\x16\xdf\x97\xaf\xda\x2b\x82\xf8\xa3\x2a\x24\x0a\xda\x5b\x05\x0a\x6d\xed\xf0\x09\x7e\x6e\xa0\x7a\xeb\x5e\xcd\x30\x62\x82\xa0\x16\x9d\xe0\xda\xf2\xe5\x79\xfb\x34\xfb\xa3\x3b\x2e\x11\x23\x0b\x81\x7b\x31\xab\x97\xf5\x7c\xb6\xc2\xa6\xca\xf1\x13\xef\xd0\x57\x69\x20\x8c\xa5\xad\xbf\x78\xb7\xb5\x3b\xc4\xf3\x21\x74\x92\x1d\x08\xa4\x45\x63\x39\x68\x84\x69\x1b\xfe\x98\x24\xb6\x5e\x98\xf3\xd2\x18\xb4\xae\xcd\xa3\x1b\x7d\x1c\x33\xfc\x20\x4c\x9c\x45\x56\x0d\x5f\xde\x1d\x0e\xc2\x04\x6d\x12\xe4\x2d\xa8\xc6\x38\xd7\xe1\xdd\x4e\x03\x63\x61\x46\xaa\xac\x70\x44\x0e\x84\x30\x45\x4d\x45\x18\x6f\x72\xe7\xc4\x42\xf5\x8f\xbc\xd0\xe5\x17\xf5\xe4\x27\xf7\xbb\x10\x62\x20\x38\x87\x6f\x37\xdc\x22\xd8\xa0\x7b\x78\x7e\x48\x43\xea\xdf\x14\xf8\xb3\x21\x69\x63\xbb\x78\x52\xbf\xf1\xfe\x65\x33\x7f\xf0\x3f\x0a\x34\xb3\xe4\x6a\xb2\x09\x77\x8c\x5c\x5f\x49\x85\x50\x46\x31\x55\x61\x94\x7b\x9d\x6f\xca\x92\x04\x3d\x87\x17\x25\x23\xeb\x7f\x4d\x88\x7d\xdd\xb7\xa0\xeb\x03\xc2\xae\x8a\xc5\x4d\xff\x52\x19\x2b\x2a\x9c\x3b\xe0\x4b\x1b\x00\x6d\xbb\xcb\x4a\x43\xeb\x47\x07\xc5\xab\x15\xa7\xb8\xc6\xb7\x71\x1f\x50\x71\x44\x7b\xf2\x5d\x59\x35\xc7\x02\xef\x4b\x3d\xf1\xca\x86\x2a\x4b\xa8\x53\xd2\x60\x6d\x39\xe1\x5d\xb1\x00\x42\x1d\x49\x82\xd7\xef\xa1\x0d\xdf\x9f\x4b\x4d\xd2\x3d\xfe\x60\x66\xdd\xef\xb6\x70\xc8\xb7\xaf\x3e\xe9\x38\xaf\x1a\xa1\xe6\x69\xe8\x5a\x61\x79\xef\xf6\x62\x28\xbd\x15\xcf\x03\xd1\x63\xfb\x79\x4e\x88\x00\x54\x6a\xfb\x56\xf4\x04\x44\x20\x34\x41\x4a\xb1\x88\x55\x7b\xb0\xcd\x47\x77\x2c\x62\xcc\x16\x5d\xc9\xf9\xb5\x2c\x77\xba\xfc\x2a\xbc\x83\xd8\xe4\x6d\x8e\x58\x92\x59\x40\x82\xbd\x8f\xe4\x9a\x7d\x0e\x1e\x23\x86\x8a\x26\xfd\x62\xf3\xd0\x77\x1f\x86\x28\x08\x04\x81\xde\x69\x76\x75\xa6\xcc\x10\x05\x71\x48\xf5\x26\x87\x51\x9c\x15\x1d\xab\x6d\x38\x69\xa2\x20\x4e\x92\x90\x96\xa3\x6f\x35\x56\x05\xec\xd1\xa9\xdf\xf6\xdf\xc4\x28\x70\x8f\xc4\xde\xf6\xa2\xd4\xe3\xbd\x28\x0a\x30\x23\xc4\xbf\xeb\xb8\xd6\xbe\x94\x30\xb9\xb6\x45\x61\xa6\x89\x41\x26\xf3\x66\x0f\xf5\xc7\xb6\x9a\x56\x46\x84\x28\xe6\x8c\x5e\xb4\x0a\x1a\xbc\x45\xd5\x06\x60\x7e\x61\x8a\x62\x69\xb1\xd5\x2f\xff\x6e\x06\x37\x2b\x36\xc8\x6d\x0f\xf9\xe7\x40\x8b\x03\xa2\x24\xe2\xd6\xf0\x76\x57\xd6\x68\xc5\xd6\x48\xc3\x72\x67\x65\x6c\xfa\x77\xc9\x7d\x22\x65\x36\x9a\x5f\xfc\x78\xea\xfe\x14\xd9\xec\xe0\x2d\xff\xc4\xa7\x01\x31\x18\xa2\x34\x31\x56\xcd\xa0\x81\xfd\xe1\x7a\x70\x1a\xb5\xc9\x48\x68\x57\x6f\x32\x00\xf2\x61\x9a\x5d\x04\x07\xaf\x43\x94\xb5\x33\xd0\x16\xb0\x5f\xf3\x0a\x8a\x77\xa8\x2f\x8b\x39\x51\x16\x09\x54\xbe\x0a\x4f\xde\x0d\x2b\x3c\x58\xfe\xa4\x1b\xc1\x05\x52\x4e\x85\x3f\x0f\xbb\xb2\xc2\xbb\xf6\x51\x16\x8b\xa7\x97\xe7\xcd\x79\x45\x8f\xb8\x01\x0a\x34\xcf\x71\x92\x83\x5d\x4e\xe4\x58\xee\x23\x42\xa4\xce\xad\xa4\x20\x61\xff\xb5\xef\x90\xfc\x85\x5e\x44\x90\x77\x31\x5b\x24\x34\x47\xe3\x9b\x42\x83\xcc\x2e\x12\x18\xf8\x0c\x67\x66\x4c\xbe\xcb\x3b\x88\x13\x44\x90\x66\xb4\x0c\xfd\x75\x8f\x4d\x1b\x1e\x2f\x6f\xbb\x23\x98\xfa\x68\xfa\x75\x07\xcd\xb0\x08\x13\x49\x2e\x09\xf7\x3a\x9f\xdd\x94\x3f\x47\x7a\xae\x10\x29\x19\x9f\x8b\x64\x56\x7e\xb8\x87\x55\x80\x48\xe9\x44\xc0\xb9\xb5\x31\xba\xe5\x9a\x59\xd1\x1a\xdb\xdf\x3a\x56\xe5\xb7\xdd\xa1\x9b\x09\x5a\x58\xcd\xa5\xa5\xb6\x6e\xb3\xae\x8a\x3f\x8c\xaf\x23\xad\x22\xa1\x3c\xce\xa4\x8d\x8a\x5f\xcb\x66\x6d\x7d\xd4\xba\x13\x61\x42\xd9\xd8\xb6\x63\x4f\x43\x84\x71\xe8\x45\xed\xd6\xf9\x5b\xf1\xed\xf0\x52\xbc\x18\xd3\x5b\xe9\x22\x4c\x62\x32\x12\xa2\x9d\xed\x96\x1a\x7b\x70\xd1\x85\x82\x08\x45\xe0\xa9\x27\x9b\xbc\x39\xc3\x81\xed\xe1\x38\x0c\x02\x16\x75\x3c\xe6\x03\x56\xe7\x89\xf0\x8f\xd1\xc8\x34\xb1\x5b\x41\xfb\xda\xbb\x29\x33\xdc\xe0\xfd\x40\x01\xd4\x42\x5e\xcf\x9f\x6f\xb7\xf3\xd5\x8f\x5b\xca\x15\x09\xcb\xe8\x7e\x5d\x1c\x45\x9a\x0c\xba\xbf\xce\x3c\xdc\x43\x59\xa3\x1e\x14\x7d\xe2\x28\xcb\x08\x02\x42\xa2\x11\x2f\xc5\x5d\xfe\xf6\xde\x5c\x81\x62\x0c\xd7\x94\x38\x52\x11\xa9\xad\xb6\xbb\xe9\xb1\x9b\x62\x71\x9c\x45\x14\x0c\xd4\x4d\x9b\x9f\x93\x8b\xbf\x3b\x92\xc4\x48\x0a\x60\xf3\x97\xa7\xa7\xe5\x7a\xdd\x46\x51\x67\x4a\x03\xc4\x89\x01\x2f\xb9\x52\x7e\xe2\xa0\xe6\x38\xd9\xa1\x84\x38\x8d\x6c\x50\x6a\x57\xa7\x15\x2a\xcc\x3f\x47\xba\x8f\x10\xa7\xb1\x81\xc0\xdf\x52\xd7\x47\x3c\x1b\xfe\x0c\x6f\x7f\xc6\x64\x4a\xae\xc5\x5f\x88\x07\x37\x95\xfd\x54\x8c\xb3\xd4\xfa\x20\xe4\x85\xce\xc9\x20\xba\xd0\xeb\x52\xe5\xb0\x23\xae\xf7\xc0\xa3\x0c\x62\x1e\x44\xde\xca\xe1\x06\x6a\xab\x59\xff\xcb\xfa\x8a\x9d\x08\x41\x3c\xf8\xbf\xd1\x8d\xf7\x6b\x45\xcc\x39\xd0\xa5\xfc\x75\xf8\xeb\xbf\x13\xe3\x81\x98\x1b\x19\xf9\x68\xe0\x96\x2a\x12\x8f\xf0\x75\xea\x96\xb5\x58\x70\x16\xd9\xb2\xe9\x27\xd6\x24\xb2\x65\xa9\xbf\xe3\x2e\x67\xbf\x6a\x73\xa5\xd8\x19\x43\x00\xa4\xb6\x26\xb1\x40\x43\x0c\x8c\xa1\x5c\x00\xc4\x32\x8b\xa9\x29\x3d\x7f\x87\x0a\x54\x83\xd5\x90\xb0\x0f\xb1\x54\x8a\xea\x05\xf4\xe2\xd1\x6f\x9c\x52\xab\x87\x58\x62\x42\x0b\xda\xc3\x72\xd3\x73\x45\x6c\xff\x6e\xd7\x8d\x79\xd9\x6e\x4c\x45\x63\xeb\x9d\xbf\xf5\xf3\xa8\x5e\x32\x15\xab\x30\x26\x93\xd5\x43\xd7\xa2\x75\x5c\x84\x2b\xad\x72\xf7\x31\xef\xd7\x4b\xa8\x81\x1b\xef\xcc\xeb\x0f\x06\x48\xde\xd4\x4d\xde\x2d\x67\x31\x0a\xf0\x06\xe4\x67\x1d\xb3\xb3\x97\xe5\x28\x1a\x88\x4d\x22\x09\x14\x97\xd7\x77\x55\x59\x34\xab\x63\x51\x60\x65\xb3\x94\x97\xcf\xf3\xb3\x33\x32\x4d\xdc\xfa\x72\x7f\x8b\xfb\x52\x8d\x4f\x23\x11\x5d\xdc\x4b\xd9\x1a\xd6\xb3\xaa\x82\x13\x6d\xac\x84\x94\xe8\x4e\x95\x04\xb1\x8d\x28\x2a\x52\x45\xf9\x3c\x6f\x1d\x49\x00\x21\x57\xfd\x02\x78\x59\xd5\xb3\xce\x02\xd0\x8f\x0a\x53\x11\xc8\xce\x4e\xef\x6e\xa0\x3d\x38\x5c\x3f\x92\x28\x36\x56\xf0\x14\x76\x6a\x0e\xc5\x8c\xa8\x07\xc3\x72\xc5\x3f\xfa\xde\x24\xfe\x63\x59\x82\x81\x77\x05\xe9\xf9\xf5\xfa\xc3\x4a\x53\xb2\xe3\x68\xfc\xfe\x25\xb6\x10\x03\x7f\x95\x49\x22\x49\xdb\xe0\x19\xbf\xe6\x6d\x3a\x3e\x15\x3f\x27\x09\x68\x2a\x49\x6d\x2d\x63\xd2\x76\x2f\xfa\x79\xfa\x04\x25\x1a\x92\x44\x72\xd3\xde\xc0\x9b\xd9\xfc\xf7\x6f\xaf\xdb\x97\x67\xbf\xbe\x25\x3c\x14\xa9\x0d\x11\x9f\xac\xb2\xcc\x5d\x5e\xe4\xf5\xfb\xf9\xaa\x78\x14\xd3\x36\x69\xb0\x51\xef\xce\x8a\x83\xda\xaa\xf5\x5d\x59\xbd\x5a\xf9\xf8\x99\xde\xe7\xe3\x0b\xe5\x51\x4c\x91\x8d\x95\x4d\x7b\x3b\x0b\xcc\x0f\x56\x80\x44\x84\xd2\x42\x2f\x00\xea\x57\x38\x91\xfe\xb2\x3b\x04\x32\x22\x60\xb0\x0d\x8a\x33\xff\x67\x19\x70\x8a\x0c\x9f\xe7\xb3\xf5\x03\xb1\x9d\xbb\x23\x59\xa8\x5c\xca\x4b\xbc\x8a\xa8\x3b\xc0\x0d\x55\xc3\x9f\x66\x7f\x6c\xd7\xcb\xcd\x62\xdb\x45\x18\x89\xd4\x99\x51\x5e\x71\xe4\x48\x31\xf2\x08\xa3\x03\x89\x8e\x2c\x3d\xf9\x0d\x9b\x59\x5d\x63\xb3\xd4\x13\x61\x5f\xa2\x53\x26\x75\xb7\x53\xdc\x94\x50\x4d\xeb\xb4\x43\xa2\x25\x52\x50\x95\x9b\x1d\xfa\xd2\x7c\x82\xed\x7e\xdc\x35\xba\x5e\xb1\x5a\x34\xef\xfd\x82\x7f\x82\xa9\xc9\x5c\x9b\xf5\xa5\xa0\xe4\xc7\x1f\xc8\x38\x45\xf9\x1f\xb0\xcb\xfb\xfc\x74\x48\x50\x82\xd5\x4e\x1c\xc0\x2c\x87\x0f\xc0\x08\x6b\x94\x76\x8b\x9f\x4f\xc4\xaf\x77\xb1\x0a\x56\x8b\xcd\x43\xcf\x84\xa4\x1d\x29\xa9\x19\xec\x62\xcc\x6f\x75\x5e\xbc\x4d\x48\x43\xd8\xd1\x69\xc8\x80\x60\xb2\xb3\xb7\x2a\x27\xca\xc4\x13\x5c\xc2\x57\x21\x0d\x13\xeb\xb8\x44\xba\x8f\x3e\xad\x7d\x7d\xf8\x63\x3a\x65\x48\x43\x21\x09\xb4\xee\x73\xa8\x7a\x53\x3e\x11\x3f\xea\xda\x78\x25\xc2\x1e\xd6\xb5\xb7\x34\x4c\x3e\x9a\x34\x34\x29\xbd\x28\x56\xcb\xdc\x51\xbb\x7f\xd9\xd9\x49\x23\xb0\x00\x79\xc7\xdd\x1c\xce\x8a\x34\x16\x11\x89\x45\xa9\x1d\x42\x71\x3c\xcc\x24\x14\xba\x7d\xb7\xc9\xc8\x6d\xf8\xdd\x31\x68\x6a\x2e\x59\xe1\xa8\x5f\x55\x82\xd3\xc4\x49\x2a\xda\xe6\xdb\x04\x31\xea\xa2\x44\xd7\xdf\x0a\xd3\x44\x47\x04\xde\x5a\x17\xf0\x81\x7d\x42\x3d\xa4\x09\x86\x24\xa6\x28\x8f\x27\x5a\x84\xab\xd3\xe8\x07\xa5\x5c\xc5\xa1\xd5\x8d\xce\xeb\xf7\x99\xc5\x8c\xfb\x4f\x67\x71\x92\xe2\x90\x1e\x45\x4a\xc1\x37\xa7\xcd\xe9\x80\xb3\x42\x0f\xd4\x99\x86\x3f\x3f\xd3\x29\x21\xbb\x9e\x20\x27\x61\x0e\xa2\xd1\xf8\x65\x28\xe5\x32\x80\xc0\x77\x86\xbc\xb9\xbd\x8f\xbb\x87\x27\x12\x2c\xa3\xf7\xe1\xdb\xed\x7c\xee\x3f\x2e\x92\x90\x7a\x8f\x63\x9d\x7b\x7f\x58\x58\x3d\x96\xcf\x1c\xbf\xd2\xd8\x7f\x08\x22\x45\x11\xf2\xbd\x77\x59\xea\xd9\x06\x40\x0a\xc6\xba\x48\xa9\x63\x55\x9d\xe9\x07\x90\x4a\x86\x99\x33\xac\x9d\x55\x23\xbd\x71\x48\x65\x10\x61\xd8\x97\x5f\xca\xf7\xc7\xfd\x06\x3e\xb0\x7a\xad\xca\xa6\x54\xe5\x6e\x8c\x31\x84\x54\xa2\xd2\x69\xc7\xd4\x3e\x33\x76\xdd\x61\xc5\x84\x97\xd8\x5f\xbf\xe7\x87\x35\xba\xcd\xad\x7b\xdc\x2a\x45\x8a\x89\x9f\xe0\x2d\x57\xeb\xa6\xac\xc6\x33\x4f\x09\xeb\x78\xdc\xa9\x4d\x91\xfa\xc6\x45\x3c\x78\xe5\x05\xd0\x59\x92\xba\xc6\xaa\xd3\xa7\x69\xf3\xa9\x17\x63\xc3\xec\x5e\xf0\x91\x6a\x30\xe0\x7e\x88\xeb\x9d\x52\x35\x6c\xe0\xbf\x0e\x29\x86\x31\xc9\x0e\x38\x63\x25\xe7\xe0\x36\xfc\x4e\x84\x98\xea\xd6\x4f\xb3\xe7\x87\xd9\x66\x33\x7b\x7e\x5d\xbd\xfc\xf1\x67\xb2\x79\x98\x7d\xf7\x5b\x5b\x6a\x02\x41\x24\x32\x6d\x51\x77\xcf\xa5\xc6\x3e\xde\xbf\x1b\x96\xa4\xc0\xce\x52\x63\x6e\x53\x0e\xff\x1c\xdd\x23\x23\xa3\xd8\x61\x9e\xfd\x32\xd5\x87\x5b\x43\xc6\x18\xa3\x85\x34\xb7\x3e\x8c\x8f\xd7\x44\xff\xdb\x91\x40\x4a\x77\xff\xfa\xf1\x00\x87\xc3\xa9\x3b\x41\x90\x12\x2f\xf3\x61\x31\xbb\xed\xfe\x16\x71\xeb\x3a\x6a\x6d\x0c\x7e\x60\x3e\xbc\x11\x19\xd3\x96\x90\x89\x4e\x53\xa5\x1e\xd4\x2c\xb2\x20\x91\x94\x76\xef\xe0\x38\x29\xd7\xec\x87\x65\x11\xb1\xbd\x35\x5a\x0d\xfd\x5f\x2c\x94\x97\x45\x82\x2c\xd0\x11\x41\x89\x48\x57\xf6\x6c\xe1\xe4\x57\x80\xe1\x8d\xcc\x22\x16\x11\x86\x12\x87\x65\xb0\x2c\x0a\x45\x74\xee\xa1\x5e\xe8\x68\x0f\x27\x5d\x96\x30\x41\x93\xe4\xb3\x6c\x90\x45\x7f\x62\x5f\x10\x0f\xb2\x24\xb0\x45\xbf\x3d\x7c\xe0\x53\x59\x34\xef\x93\x54\x03\x68\x93\x27\x12\x43\xdc\xdb\xf7\xf0\x5c\x2b\xc9\x52\x8c\x28\x18\xb3\x32\x10\xb7\xb3\x3f\xc3\x11\x2b\x0f\xb2\x2c\x95\x74\xd3\x2a\xb4\xaa\xd6\xc7\xea\xb0\x3b\xd6\x8b\xe6\x7d\xf4\x83\x79\x26\x82\x0e\x4d\x32\x2f\x0b\x4b\x6c\x1a\x75\xe3\x32\xc1\x2c\xe7\x7d\x5b\x63\xf3\x5a\x7e\x61\xd5\xb5\xa3\xcf\x97\x2b\xe2\x34\xc6\x0e\x00\x77\x73\xac\x2e\x10\x30\x99\x10\x69\x90\x9d\x2d\xae\xc9\x4b\x6f\x74\x12\x29\xd1\x57\x62\xec\x47\x37\xa5\xdd\x9b\xc7\xa7\x72\x22\x97\xb5\xa5\x57\xd9\xba\xf9\xf4\x6e\x9f\x81\xe0\xe8\x75\xd8\xca\x3d\xe4\xa3\x00\x38\x03\x64\xa4\xa0\xe5\x9a\x27\x65\xdd\x7c\x5b\xdf\x5e\x8c\xd1\x54\x3d\xd8\x52\x7f\xf3\xe9\x34\x7b\x1b\xab\x9f\x43\x26\x83\x80\x8a\x3a\x78\x28\xd5\xfb\xd6\x9c\xa1\x30\x99\x14\xc6\x5b\xe2\xcd\xcb\xe3\x81\xa0\x72\x0e\x1f\xd8\xdd\x63\x95\xa2\x64\x1e\xd5\xb2\xfb\x6c\xa7\x6a\x0f\x92\x0e\x99\xca\x02\x12\x20\xdf\x6e\x77\x25\xe8\x20\xe4\xfd\x82\x51\xa6\xd0\x5a\x45\x38\x0a\x83\xbb\x79\x77\x55\xb9\x9f\x97\x25\x51\xc0\xf2\x4f\x5c\x93\x3d\xf0\xd9\x3b\x68\x94\xa2\x5d\xa0\x9b\x8f\x17\xd0\x3c\xc8\x94\x49\x49\x61\x8e\xea\xbe\x8c\x16\xe3\xde\xfa\x98\x21\x53\x09\xf3\xa5\xa9\x36\x8f\x7f\x84\x0a\xd7\xe5\x4e\x2f\x0b\xa7\x98\xe6\x47\x1a\x6e\xfb\xae\x4b\x6f\xca\x00\x99\x01\x45\x29\x68\xa5\x8a\xf3\x9f\x90\x00\x04\x87\xa3\xfc\xc0\x53\x1d\x0e\x1f\x0b\x67\x41\x48\xaa\x50\x79\xbd\xb5\x92\xc4\xbf\xf9\x03\x42\x5a\x81\x74\xab\x10\x64\x7d\xb7\xfd\xc1\x20\xb4\xe2\x4a\xf3\xf9\xc3\xf6\xee\x7e\xb5\xf0\x8c\x00\xe0\x01\x30\xc2\x2b\x5a\x7b\xfd\x2e\x1e\x1c\xdd\x98\x2b\xf5\x88\xab\x18\x10\x1e\xa8\x08\xdc\x0c\x6c\x93\x88\xb1\x9e\xda\x70\xbe\xf2\x00\x33\x6f\x7e\xb7\xf8\xd9\x60\xd1\x29\xd8\x00\x0f\x79\x1c\xbb\x8c\x60\xb1\x9a\x67\x61\x60\xb3\xbf\x57\xf8\x2a\xa6\x01\x2d\x3c\x44\xa4\x93\x95\xea\x40\x2b\xda\x28\xc6\xe5\x51\xa4\x3b\x2c\x9c\x7a\xc7\xce\xac\xa3\x3b\x9e\x0a\xda\x7e\x7f\x74\x4a\x27\xc0\xe3\x40\x06\x9d\x29\xd1\xdb\xb1\x42\x92\xcf\x6a\xca\xaa\x43\x67\x02\x8f\xa3\x10\xad\x63\xc0\xb7\xc2\xa1\xd5\x1d\x7d\x61\x78\x7d\x71\x1c\xd2\xb4\x5e\x43\x5e\x34\xf3\x32\x2f\x48\xa2\xdb\x9f\x25\x11\x9a\xc8\xa2\x95\xc5\x8d\xb8\x53\x8c\x92\x7e\x9e\x48\x4d\x35\xc7\xad\xc9\xc7\x2b\x0a\x4f\x94\x15\xdc\x5a\x51\xff\xbb\xe7\x81\xce\xfd\x00\x13\x53\xef\xe6\x5b\xb5\x7b\xc8\x8b\xe6\xb7\xe1\xa7\x4d\xa6\x9d\x35\xcc\xee\xe4\xea\xa3\xff\xd7\x0a\x0f\x7f\xf7\xaf\xfb\xae\x94\x69\x4a\x29\x67\x5a\x53\xa6\x39\x0c\x44\xc7\x83\x03\x1d\x5a\xc3\xe3\x9f\xfd\x46\x30\x4f\xe3\xc8\x12\x65\x60\xa7\x08\x9d\x49\x8d\x51\x9b\x36\x5d\x04\x6f\x3c\x4d\x22\x82\x8d\xdf\x63\xf3\xe3\xbd\x74\xe5\x2b\x4f\x95\xee\x67\x62\x3c\x05\x45\x4a\x46\xce\x2c\xda\xad\x2f\x9d\x19\x0b\xf0\x54\x27\x32\xed\x78\x3d\x2f\xcd\x3b\x56\xb4\x7e\x11\x76\x23\x98\x4a\xaf\x79\x16\xd8\x5d\xe5\x40\x90\xa4\xae\xb0\x35\x54\x65\x72\x63\xb9\xb4\x04\xf2\x7a\x57\x76\x5f\xc9\x95\x8a\xbc\x9f\x52\x07\x42\x1e\xcf\x0d\x6e\x22\x96\x8e\xfc\x2e\xff\xe6\xfd\x13\x51\x48\x42\x2a\x9d\xd0\x66\xf8\x27\x42\xf7\x42\x88\x38\xd2\x94\x14\x7e\x62\x65\x88\xf8\x59\xe7\x54\x30\xf3\x52\xfc\xbf\x2e\x02\x73\x91\x58\xab\xea\x63\x71\xe1\xbf\xe4\x46\x40\xa2\x6d\xf1\x29\x6f\xf2\xbf\xb0\xa8\xed\x3b\xee\x37\x02\xde\xce\xca\xc8\x23\x6d\xea\xe3\x7e\xfc\x69\x93\x01\x3f\x3b\x9b\x93\x89\xba\x3b\x24\x03\x4e\x41\x27\x92\xd5\x6d\xaf\x54\xc5\x55\x16\xc6\x3d\x29\xc7\xad\x4d\xa0\xfc\x51\xad\x22\x11\xfa\x6f\xf4\xfb\x32\xc2\x7e\xf3\x55\x8e\xbe\xdc\x70\x43\x89\xf5\xd3\x3f\xe7\xf3\x7e\x00\xc5\x8d\x12\x94\xc4\x2c\x9f\x97\x9b\xe5\xec\xd1\x69\xe1\x8f\x45\xb1\x40\xb0\x54\x28\xdf\x4a\x26\x6d\xcd\x41\x20\x22\x98\x61\x44\xfa\x2d\x8e\xfb\xcd\xb1\x6a\x33\xec\x15\x7e\x96\xbb\x6e\xdd\x17\x01\x97\xf4\x74\x40\xeb\x4d\xe5\x95\x92\xcf\xc8\xc0\xd1\xc2\x2c\x42\x4c\xa9\x4b\xff\x1d\xf1\xad\x1c\x88\x3d\x0c\x9f\x9a\x88\x52\xa6\xb5\xbf\x05\x67\xd1\x4f\x10\x91\x0e\xbc\x86\xc2\x3d\xd4\xfd\x77\x51\x9c\x25\x5d\xac\x8e\xcc\x5f\xb8\x3e\xca\x9e\x62\x15\x88\x38\x4c\x94\xb5\x17\x75\x80\x8c\xe1\x97\xc6\x3a\xa6\x4c\x9a\x00\x6d\x37\x8b\xcd\xf0\x56\x25\x09\xa3\xd4\xa6\xbd\x17\xfd\xe0\x7b\x74\xe5\x89\xb4\x2c\xcc\xfb\x0a\xa1\x79\x80\x6a\xdf\x65\x17\x22\x31\x81\xb5\x66\x5b\xce\x7f\x5f\x6c\xfa\x1e\x7f\x20\x52\xce\x88\x70\xbb\x77\x26\xda\xa3\x07\x91\xc5\x92\xda\xa3\xbf\xbf\xcc\x9f\x5e\x7c\x26\x2b\x32\x1d\x58\x0b\xc3\xc7\xd9\x7a\xfd\x67\x7f\x02\x08\xae\x19\x05\x6c\x1d\xe9\x0a\x75\xdf\x89\xa3\x6f\xd7\x03\x42\x04\x86\x36\x1d\x57\x19\x59\x1f\x68\x13\x74\x6d\xd8\x51\xc1\x73\xf8\x6b\x45\xc4\x6d\xcf\xd2\xd5\x62\xaf\x1a\x49\x80\x10\xb1\xb1\x6b\xbb\xd6\xdf\x73\x8d\xe5\x7d\xaf\x0c\x78\xe5\xe4\x12\xe9\x13\x8e\xaf\xb6\xee\x23\xfc\xff\x2b\x50\x83\x68\xc3\x8b\xb3\xca\xcf\x7d\x47\x51\x6c\x8f\x58\xcf\x2a\xd2\xa6\x53\x1d\xde\x8f\xfb\xc3\x90\x51\x05\x8e\x4a\x51\xae\xdb\x74\x29\xc7\x06\x02\x10\x08\x2a\x4c\xc0\xef\x81\x71\x10\x08\xc9\x24\x81\x42\xf2\xda\xc9\x29\xf9\xbf\x87\x29\x45\x27\x1a\x55\xa9\x71\xe8\xd9\x74\xe5\x77\xc8\x8c\x19\xfb\x91\xba\xa9\xca\x13\xad\xf4\x97\x36\x9c\x20\x24\x46\x7e\x89\xbe\x83\xba\x21\xb6\x64\xf7\xb5\xc6\xbe\xea\xf2\xcc\xd2\xed\x5e\x0c\x15\x27\xc4\xc6\x6e\x27\xca\xe2\xed\xad\x5e\xea\xf3\x21\x00\x79\x56\xe4\xb8\xc7\x82\x8d\xde\x1a\x9d\xc6\x8a\xdb\x90\x71\x97\x2b\x5a\xce\xdc\x45\xf9\x53\x68\x13\x50\xdd\x8b\x4a\xc5\xaf\x90\xff\xad\x7a\xbf\xfb\x1c\x46\x48\x66\x4a\xf4\x10\x6e\x8e\xa7\xf9\xb1\x7b\xd7\x4d\x90\xfd\xff\x9c\xbd\x5b\x77\xa3\x38\xba\x3f\xfc\x75\xea\x62\x5f\x00\x42\x42\x5c\x3a\x8e\x53\xe5\x7f\xe7\x34\xb6\xd3\xd5\x33\xb3\xf6\xf2\xd2\xe1\x91\xc3\x04\x83\x07\x70\x52\xe9\x4f\xff\x2e\x1e\x49\x9c\x8c\xd3\xbd\xdf\xab\xea\x0e\x32\xc6\x20\xa4\xe7\xf0\x3b\xe0\x8c\x95\xe7\xcf\xb5\xb2\xf8\xdb\xb0\x3b\xc6\xac\x8f\xde\xb6\xa9\xb2\x63\xbb\x6e\x76\x07\x84\xf0\x64\x72\xcb\x28\x9d\x45\x8f\x8b\x20\x8a\x10\x81\xfe\x22\xd4\xf0\x95\x12\x41\xa4\xa9\x03\xae\xee\xcd\x74\x6f\x17\x01\x15\x92\x79\x79\x7e\xc8\xf3\xdd\x47\x39\xba\xc7\x22\x4c\xa9\x6d\x95\x14\x0d\x54\xd5\xf9\x64\x35\x60\xca\x3e\x4e\x16\x11\xb3\x34\x4d\x5f\x7a\x59\xd4\xce\x0f\x60\x5a\x5f\x16\x84\xa6\x18\xb9\x17\xf0\x31\x8a\x32\x47\xc2\x16\xe8\x4a\x84\x58\x8d\xc5\x59\xb7\xa1\xde\xe8\xd7\x10\x11\x04\x76\xdf\x1a\x92\x55\x85\x88\x49\x90\x38\x96\xce\x20\xd1\x10\x71\x0c\xa6\xd7\x8d\x7f\x14\x47\xd0\x96\x66\xaf\x2e\xe8\x89\xfd\x3b\x2f\xe2\x34\xc2\x18\xeb\x3b\x34\x83\xaf\xa0\x09\x20\xa5\x02\xaf\xe7\x5e\xc8\xaf\x8b\xaa\x82\x72\xa9\xad\xd6\xef\x02\xda\x38\x67\xd9\xce\xfe\x91\xc7\x81\x10\x54\x52\xea\x7a\xba\x07\xd8\x7d\x94\x03\xcd\x58\x21\xa8\x4a\x02\x57\x89\xbc\x5d\xac\x27\xb7\x92\x41\x84\x72\x7b\xaf\xa2\x7e\x2a\xa0\x8d\x3c\x26\xd0\x10\x91\x30\x7b\x6e\x6b\x17\x37\x74\x95\x11\x22\x01\x8a\x09\x82\x3e\x17\x07\x28\x8b\xdb\x89\x88\x87\xc0\x90\xda\x69\x07\x5b\xa9\x6b\x91\x55\x97\xf5\x8c\xf1\x04\xe4\x8c\x24\x41\x97\x20\xff\xb1\x7e\xbe\xdb\x3e\xe3\xcb\xf5\x1b\x7c\x8e\xc2\x44\x21\x13\xbb\x2d\x74\xe6\x56\x3e\xe9\x1b\x3c\x03\x99\x0a\xfb\x03\x11\xf1\x34\x2c\x8d\x08\x29\x8c\x69\x6f\xcc\xcf\x57\xaf\x52\xe7\x8f\x28\xc2\xf1\xa5\x16\x5a\xf7\xa5\xbb\xfe\xa6\x29\x1d\x60\xb9\x03\xb7\xe7\x47\xf8\xb0\x28\xf7\xc9\x7b\xa4\xa9\xa5\x05\x5b\xdf\xfa\x6a\x20\x03\xe7\x07\x70\x69\xf5\xf3\x45\xae\xce\xb9\x68\xe0\x58\x56\x4d\x06\x35\x4c\x84\x67\x84\xd0\xc2\x5a\xe0\x0f\x64\x3a\x8a\xe6\x12\x87\x27\xb4\xb2\x58\x70\x47\x9c\xfd\x5e\xc1\xa7\xf5\x92\x3b\x4f\x94\x2f\x84\xd0\x5a\xdb\x84\xc9\x99\x55\x7c\xcf\xde\xfb\x9f\x0f\x24\x76\x9d\x74\x5b\x80\xb7\x7b\xe0\xb4\x7c\x25\x0c\xb1\xaf\x21\xde\x86\xbd\x27\xe5\x8c\x07\xc9\x80\x01\xb8\x67\x34\x1f\x32\xc8\x80\x5b\x69\x08\x91\xcb\x72\xac\x4d\x23\x64\x18\x44\x38\xf9\x1a\xef\x86\xba\x2e\x9c\x01\x8e\x1f\x10\x49\xdc\xa9\xac\x58\x4e\x73\x0b\xef\x7d\xe5\x4a\x46\x8c\xfb\x6a\xb1\x47\x08\x6f\xdb\xff\xac\x9b\x75\xb1\x68\x9a\x72\x28\xf7\x2d\x64\x94\x04\xf8\xab\x5f\x0a\xf1\x95\xb9\xb0\x90\x51\x4a\xf0\xa2\xfc\xc6\xec\x04\x40\x3d\xef\x7d\x46\x8e\xfb\xff\x94\x9a\x49\x12\x70\x2c\x5c\x1d\x5c\x84\x77\x57\x56\x9e\xa5\xe5\xaf\x95\x08\xa6\x9c\xac\xd1\xb3\x68\x7f\x78\x7d\xe7\x04\xe8\x26\x1e\xd7\x42\x12\x45\xb1\xe6\x26\xbd\x28\xa2\xcd\x8f\xc3\x49\x55\x57\x12\x1d\xa0\x68\x84\x0d\x16\xb0\x8f\x79\xf1\xa6\xfa\x48\x56\xc6\x4c\x63\xf9\xad\x42\x57\x54\x91\xa3\x24\xc0\xd2\x4f\xe4\x2b\x0f\x9a\x86\x02\xb1\x5b\xf2\xfc\xb9\x7a\x7e\xf1\x3f\x85\xa6\x2c\x74\x38\x6d\xd4\x14\xb7\x70\xe3\xf2\x63\xa8\xed\x24\x24\x55\x54\xba\x37\xf2\x5c\x5f\xb7\xa1\xf4\xa3\xb5\x85\x82\x0c\x88\xa0\xee\x08\xe3\x21\x02\x2b\xfd\x26\xb3\x6a\x5e\x2f\xb6\xe3\x51\xec\x29\x13\x42\x04\x19\xba\xb5\xa1\x5c\xfe\x64\xd7\x94\x89\xb6\x00\x3a\x61\xd3\xe9\xaf\x5a\x56\x92\x33\xab\xf5\xdb\xbd\xf8\x9b\xd2\x61\xe5\xa7\x50\xf2\xe9\x07\xa5\x42\x32\xc7\xbe\x1e\xa8\xed\x0e\x48\xae\x33\xa9\xac\xe4\xc6\x20\x6e\x64\x6f\xdd\x4d\xff\x1c\x16\xfc\x65\xca\x6c\x2b\xe9\x66\x7b\x7b\xd3\xfd\x2d\x09\x85\xec\x2a\xab\xa3\xaa\xa1\x94\x81\x14\xe9\xd0\x94\xc2\xbe\x75\xed\x9a\xeb\xb7\x71\x29\xc3\x00\xac\x07\x64\x76\xda\x9e\x60\x70\x20\x09\x31\xaf\xfb\xa7\x4f\xd6\xce\x7f\x05\x8a\x91\xca\x79\xf7\xec\xca\x53\x03\xca\x07\xec\x52\xc7\x41\xea\x84\xc0\x8f\xa7\xda\xf9\x83\x0e\x97\x76\x09\x9c\xd8\x04\xb0\x23\xc7\x0e\xd7\x77\x09\x12\x30\x6b\xbd\x2f\x0f\x5b\x68\x9c\xd5\x6d\x0f\xfa\xb2\xa3\x54\x18\x68\xec\xac\xb4\x31\x0d\xe6\x33\xaf\x50\xed\x5e\x45\xf1\x54\xad\xfe\x7b\xf6\x36\x4d\xed\x30\x2b\xe7\xd5\xee\x42\xd9\x2f\xc8\x2f\x88\xc9\x42\x85\x71\x84\x65\xcc\xf6\x4c\xab\x6e\xc5\x51\x11\x15\x88\xe0\xf4\x2b\xc7\x6d\x75\x3e\xf5\xe7\x8d\x28\xa4\x16\xc8\x88\xc1\x8d\x6b\x25\x20\xcc\xe1\xd2\x90\xdd\x3e\x26\x8b\xfe\x49\xa3\x61\x0d\x55\x11\x22\x07\x9e\x37\xbb\x4a\x4c\x1c\x07\x84\x22\xa9\x35\xcd\xf9\x0e\xb9\x68\xca\x01\x4c\x47\x11\xad\x61\x28\xeb\x7e\x07\x93\x86\x99\x8a\x59\x94\x06\x1e\x36\x6f\x31\xea\x43\x0c\xe1\xe8\x79\xaa\x38\xa1\x2e\x47\xd5\x00\xc7\x0b\x10\x4f\xff\xbe\xab\x38\x49\x91\xa3\x6a\x9c\xb4\xf8\x16\xfa\xfd\x49\x51\x9e\x4a\x27\x20\xfb\xff\x4a\xec\xd4\x5f\x14\x9b\x14\xe5\x1a\x99\x13\x6f\xd9\xb1\x76\x58\x8d\xee\xe3\x2a\x65\xc6\x3d\x8d\x7d\xbc\xaf\xcb\x23\xf4\xda\xe4\x42\xb1\x10\x10\x48\xd3\x1e\xbe\xc9\x4b\x69\x3f\xdd\x1d\xe5\x02\x97\x2b\xab\xbc\xf3\xbd\xcc\xf5\x08\x68\xa0\x12\x08\x11\xa9\xe4\x3c\x3b\x41\x2f\xf2\x1c\x69\x06\xb3\x6b\x81\xe2\x6d\x42\x64\x4d\xfe\x8e\x03\x84\x81\xe2\x42\xc4\xe0\xdb\x31\xe5\x47\x07\x8e\x50\x69\xc8\x31\x9a\xc3\xbd\x6b\x03\xd9\x4c\x2f\x47\xb5\x2b\xaa\xab\x5b\x3c\x99\x65\x79\xec\x93\x70\x95\x26\x14\x41\x06\x2f\xaa\x7d\xcc\xb8\xd6\x5a\x85\xb7\x79\xa5\x01\xa1\x52\x63\x53\x8d\xa3\x13\x59\x56\x03\xa4\x9c\x1b\x22\x82\x00\x83\xe3\x77\x51\x65\x88\x53\x1f\x9f\x41\x84\x11\xea\xca\x38\x23\x07\x64\x97\x6d\x4f\xa0\xb2\x01\xbd\x66\xf0\xe4\x65\x94\x78\x53\x99\x47\xf8\xe5\x65\x22\xe7\xb7\x62\x25\x93\x20\xf1\xad\x8e\x76\x17\x7c\xf6\xea\x1a\xe3\x4b\x90\x86\x81\x15\xc7\x30\x02\x6f\x5c\x1f\x24\x28\x15\x31\x94\xbc\x74\xbd\xd1\x61\x4d\x45\xa9\x38\xe1\xa2\x17\x52\x82\xa2\x79\x40\x83\xcd\x4b\x3b\x83\xf1\x0b\xa5\x68\x82\xbb\xd5\xe2\xfb\xea\x71\xf9\x4f\x1b\x34\xef\x97\x8b\x67\x7f\x5e\xcd\x23\xd4\xea\xbf\x5f\xfd\xf6\x6d\x56\x64\x79\xb8\x84\x2b\x08\x22\xdc\x81\x36\xe2\xd4\x94\x55\xfd\x5e\xff\xcc\xfe\x14\x95\xae\xe3\x88\xfa\x13\x42\xac\xb1\xae\x2d\xb3\xc3\x08\x6c\xac\x80\x73\x94\x16\xaa\x40\xe4\x58\xeb\xb6\xb1\xaa\x37\x56\x1e\xfc\x9f\x0b\x1c\xba\xdf\x60\x58\xcc\xa9\xd3\xdf\x73\x88\xc3\x76\x05\x10\xf9\x5d\x55\x1e\xed\x5d\x9a\x7d\xc7\x8d\x0e\x10\x43\xef\x6c\xc4\x87\x78\xa8\xf1\xc3\xd3\x01\xb3\xaa\x6e\xa7\x0a\x4e\x62\xa6\x41\x34\xfb\xc6\xe8\x30\xb4\xb0\xb4\x5d\x95\x8d\x82\x76\x1d\x09\x6d\x09\x3c\x4d\x79\x72\x7e\x1d\xfe\x10\x0d\x28\x72\x87\x6b\x61\x00\x3b\x8a\xf3\x93\x5d\x53\xc7\x24\x7a\x78\x59\x0f\x38\x10\x9a\x05\x56\xf3\xf4\x7e\xf5\xc7\x7a\xda\xd2\xd0\x2c\xb0\x0a\xbf\x7b\xb7\xf5\x2f\x07\x1b\xc9\xe4\xf4\x2c\xb4\x0a\xa8\x88\xdc\x40\x55\x43\xb7\xf5\x58\xcd\xe7\x41\xbc\xa3\x19\xb3\xca\x09\x30\xf4\x69\xaa\xef\x4b\xd1\xf9\xeb\x09\x9d\xf0\x10\x97\xc1\x67\x28\x8a\xcf\xef\x95\x90\xdd\x01\x15\xe2\xce\xa1\x44\x8e\x82\x48\xfe\xef\x3c\x89\xf1\x03\xae\xee\xfa\xd4\xfd\x40\x6e\x18\xba\x77\xf4\x70\xf8\xbd\x29\xab\xbd\x33\xfb\xa8\xfb\x61\xda\xb1\x37\xd1\x80\xe3\xf3\x28\xcb\x7c\xbc\x95\xe8\x94\x26\x18\xa2\x74\xe6\xe2\xfe\xb3\xa9\x09\xbd\x3a\x4e\x7b\x97\x7e\x94\x4d\xbb\x76\x7a\xd0\xe8\x70\x06\x69\x91\x04\xb8\x3b\xe7\x28\xaf\x33\xd6\x7f\x6f\x73\x21\x4b\x23\xc4\x4e\xb3\x8d\x65\xc7\xd1\x96\x1b\x27\x63\x1e\x47\x3d\xff\xee\x7c\xda\xff\x27\xab\x5f\xb3\xbf\x60\xa7\x6b\xc9\x48\x38\xbe\x15\xcf\xe7\xd3\xe9\xb3\x5d\x2d\x1f\x40\x67\x7d\x01\xdc\xc7\xc2\x5a\x6a\x83\x01\xd3\x36\x6b\x53\x0c\x4b\x16\x87\xa9\xce\xae\x1b\xab\x08\xc3\x72\x92\x2e\x01\x89\x28\x4f\x1f\xc5\x12\x72\xb8\xa8\x01\xb8\xe1\x9a\xc6\x38\x6f\x51\xe1\xbe\xfc\x28\x06\x2c\x20\xad\x99\xc5\x33\x60\x9f\xf9\x2c\x73\xf8\x0d\x94\x12\x6f\x11\x65\xdf\x26\x27\x11\xd6\x84\xbf\x0b\x37\xff\x0e\x4b\x5f\x9b\x48\x5a\x6d\x63\x54\x90\x1d\x18\x5b\xb4\x87\xec\x8b\x66\x05\x58\x67\x57\xc2\xd9\x0c\xe7\x82\xec\xad\x4d\x6c\x99\x4c\x18\x3c\x40\x3b\x5b\x06\xaf\x80\x61\x29\x6a\xdc\xec\xdd\x74\xfb\xef\x59\x54\xd0\x7b\x9f\x4d\xce\x05\x81\x73\xea\xdd\xa2\x03\x7e\xbb\x51\x15\x9d\xa9\x95\x7f\x56\x10\xc8\x18\xeb\x11\x96\xe0\x43\xdd\xee\xe9\x0f\xaa\x84\x27\x03\xd9\xbc\x32\x6f\x23\x99\x07\xf1\x0b\x63\xdd\xf5\xd1\x3b\xf0\xf5\x6c\x6e\x88\x48\x82\xc4\x06\xf8\xa5\xfa\xac\x15\x48\x64\x33\xfb\x76\x4b\x71\x6a\x9d\x90\xbd\x4f\x27\x03\x10\x61\x39\xd7\x1a\x93\xd6\x5e\xe9\x56\x00\xd1\xd6\xcd\xbf\xf3\xd0\xf9\x4a\x42\x5a\x40\xcc\x02\xb0\x92\x94\x6b\x14\xb0\xf1\xa7\x89\xb5\x91\xee\x07\x29\x51\xe9\x91\x6f\x9c\x1b\xc2\x88\x85\xc3\x22\xef\x96\xf9\x0f\x32\xc9\x00\x7a\xe1\x6e\x5b\x6c\xfa\xf9\x0a\xc5\xb3\x38\xd7\xd7\xd8\x4e\xc0\x54\x80\x37\x03\xd5\xfa\x1d\x8d\x7c\x8c\x2b\x07\xa6\x09\xe2\x47\x17\x59\xb5\xfd\x10\xa7\x2f\x7d\xd3\xdd\x47\x12\x12\x63\x78\xfd\x54\x40\x8e\x76\xad\xc3\x45\x1f\x92\x98\x88\x21\x5e\x6b\x8f\xdb\xfb\x5e\x14\x7a\x0f\x5d\x85\x1f\x12\x99\xe0\x3c\xfb\x8f\x85\x5a\x6d\x8f\x22\xcf\xfb\x63\x1c\xfb\x5f\x05\x7c\x8c\x27\xf4\x70\x4d\x82\x04\x0c\x56\xba\xff\xb1\xde\xfe\x58\x3d\x7e\xff\x42\xf3\x4a\x00\x8f\x53\x8c\xdd\x3c\x58\x7d\x57\x9e\x9c\x18\x7d\xef\x31\xda\x4d\x73\xe0\x89\x75\xd2\x71\x06\x83\x03\x5c\x1d\x70\x21\xb9\x43\xfa\x3d\x66\xea\x6d\xa8\xd2\xe8\x47\x18\x85\x53\x56\xe8\x0b\xdb\xb4\x8b\xe2\xc3\xe8\x1a\xd3\xc4\xda\x37\xd8\xa0\xec\xf1\xf2\xcc\xa9\x01\x66\xe5\xc8\x9a\x27\x63\x6e\x32\xdd\x01\x85\x41\xc4\x3a\x30\x9d\x74\xda\x16\xa6\x5d\x70\x10\x94\x62\xd8\x24\xce\x3a\x6b\x2c\x3f\xeb\xeb\xd5\x06\x64\x18\x08\x5f\x3e\x76\x2b\xa8\xff\x36\xa9\x24\xef\x4d\x06\x4d\xd6\x3c\x43\x85\x6d\x66\x3f\x40\x45\x0a\x23\xee\xed\x59\xd6\x23\x6b\x40\x7f\x1c\x02\xc4\x64\x3d\x6f\x56\xd6\x6f\x7a\xf5\x78\x3b\xd4\xc3\x01\x1d\x04\xe8\x6d\xb5\xb7\xae\x5a\x4f\x05\x6c\x21\x9f\x14\xbb\x40\x73\xc0\x41\xdf\xb3\xc3\xac\x23\xf0\x30\x7b\x9d\xd2\x17\x40\x83\xa5\xe7\x66\x85\xca\xcf\x1a\xea\xe9\xb9\x0d\xc5\xad\x0a\x2a\x65\x05\x47\xdb\xad\xcd\x5f\x1d\x10\x83\x45\xe4\xe7\x8d\xd5\x9b\xb8\x5f\x3f\xac\x77\xfe\xa0\x71\x1e\x43\xb7\xab\xe5\xfa\x61\x71\x7f\x61\xa5\x2d\xc0\x28\xc0\xfc\x1f\x37\x51\x0c\x06\xba\xc2\x82\x8b\x2f\x4d\x18\x26\x58\x9a\x5f\x8a\x73\xae\xab\xb2\xa8\x1f\xb2\x22\x3b\x88\xa3\x77\x3d\xf3\x02\x1c\xa3\x8b\x36\x51\x98\x08\xab\x9a\xf5\xcb\x96\x76\xdd\x6c\xff\x36\x19\xc6\x8c\x8a\xbc\x5c\xee\xea\xd7\x29\xab\x3c\x19\xdd\x0f\x50\x29\x66\x0f\x85\x47\xc9\xba\x8a\xa4\x5f\x4d\x0d\x09\x35\xf6\x4f\xbe\x43\xd3\x2e\x6e\xab\x02\xc1\x23\xc8\xcf\x1e\x4e\x69\x43\xa2\x28\x72\x85\x9a\x3d\xf6\x4c\xc6\x33\xda\x10\x26\xb0\xb4\x9f\x5b\xf5\xc8\x49\xe4\x3e\x9e\x90\x86\xa4\x29\x32\x95\xf7\x59\xf1\x50\x16\x70\x61\xe1\xe1\x86\xc5\x09\x13\xae\x8f\xb6\x3a\x1c\xac\x40\xd5\xcc\xe6\x64\xe2\x44\x29\xf7\x9e\x62\x77\x04\x77\x60\x9f\xda\xcc\xab\x48\xf9\x4f\x72\xc5\xa9\x2f\xb2\x3a\xcd\x89\x36\x07\x9b\x20\x0f\x0c\x0d\x14\x75\x10\xb5\xdb\xac\x96\xe7\xaa\x46\x5c\xb0\xcb\x06\x26\x63\x43\x86\x28\x1c\xcb\xdb\x39\x57\xc5\xb5\x25\xdd\xd0\x28\xc0\x52\xe7\x09\x39\x2d\x64\x8a\xd7\x31\x34\x62\x1e\x46\x86\x60\x5b\xff\x67\xad\x51\x60\xa8\xab\x39\xa2\xaf\xcd\x05\x2f\xcf\xb0\x88\x07\xae\x8c\x79\x9f\x29\x28\x6a\x18\xe2\xfc\x0d\x93\x2c\x70\xca\xbf\xc7\x2d\x38\x77\x59\x7f\x30\x09\x19\xe2\xe8\x86\x50\x8b\xbf\xb5\xf6\x99\x24\xe9\x22\xc3\x55\x4a\xa6\xcd\xa3\xf1\x15\xf2\xc8\x60\x37\xec\x3d\x83\x0f\x0f\x37\xf6\x54\x67\x7f\x25\x9c\x52\xd4\xfc\x71\x90\xdf\x2b\xb7\x92\x73\x4b\xef\x68\xa7\xb1\x68\x32\xb0\xee\xfb\x57\xbe\x55\x85\xb8\x80\xae\x8b\xcc\xd7\x7d\xda\xc1\x29\x0b\x81\xa6\x44\x12\x96\x46\x81\x48\x58\xa2\x85\x4e\xa8\x49\x8d\x16\x41\x92\x44\x24\x22\xa1\x4e\x65\x92\x5c\xb9\x82\x34\xe9\xc2\x81\x1b\x21\x3f\xbf\xbb\x34\x79\xec\x3c\x2b\x8c\x60\x76\x35\x5a\x64\xd5\xf2\x6f\x09\x18\x18\x21\x38\xde\x24\x94\x66\x32\xe7\x42\x3b\xf9\xbc\x27\x63\xdf\x08\x37\x4c\xd1\x38\x70\x0a\x5f\xfb\xfa\x52\xa0\xd3\x8f\x52\x29\x75\x3a\x9b\xcb\xe5\x0f\x2b\x04\x16\x85\xdd\x39\x94\x41\xf3\xf6\x4e\xa0\xe3\x0a\x03\xd1\x33\x80\xba\x35\xd8\xe8\x80\x0b\xef\x1b\x35\xa0\x74\x5d\x27\xab\x1b\x9d\x32\x3d\x74\x1e\xbe\x2b\xab\xdd\x6b\x05\x30\xc0\xe7\x18\x20\x10\xba\x17\xc0\x15\x43\xb1\x61\xd4\x4e\x95\xba\x7f\x4d\x80\x32\xab\xa8\x29\xaa\xb7\x0d\x88\xc9\x7e\x69\x0c\xb1\x70\x8f\x83\x25\xfd\x6e\x9b\xce\xcb\x5e\x18\x23\xb8\xb7\x96\xf0\xf5\xb5\xe7\x2a\x7b\x9f\x9e\x41\xe9\x04\x06\x3a\x8d\x58\x7b\xca\x06\xb5\x98\x2f\x7b\xcd\x32\x08\xa8\x40\x5c\xbc\xb0\xf9\xe8\x9f\x50\x3d\x79\x0d\x0e\x19\x04\xc6\x3a\x92\xb5\x9b\xf3\x8f\xcf\x53\xd9\xbc\x42\xed\x8d\xc5\x65\x10\x3a\x23\x28\xac\xa6\x65\x45\x0d\x55\x83\xc8\xb8\x9f\x59\xf3\xfa\xa3\x83\x03\xc9\x20\x4a\x64\xec\x3d\x32\xce\x9f\xcf\xce\xcb\x78\xd6\x98\x47\x06\x84\x84\xcc\xf8\x75\xa5\x97\x1c\x90\x41\x1c\x4b\x8f\x6d\x6d\x5f\xb7\xad\x7a\x85\x2b\xcf\x4f\x06\x31\x0f\x10\x1e\xe4\x4d\x02\x1e\x4a\x8d\x82\x3d\xa3\x1e\x93\x0c\x62\x11\x13\xd4\xcc\x71\x89\xa6\xfd\xc2\x7a\xad\x4a\x3f\x82\x32\x5b\xa4\x5b\x3f\x0f\x56\x20\x19\x50\x01\xd8\x7e\xfc\x99\x15\x0f\xa2\xa9\xb2\x5f\xdd\x01\x45\x53\x27\xba\x84\xa0\x8b\xf9\xcb\xa3\x20\xb0\xce\x88\x1e\xb0\xcf\xae\x06\xe2\x8e\xb1\x30\xe2\xde\x0a\xf3\x1e\x4c\x53\xbe\xc3\xd0\x5f\x88\xfb\x61\xa0\x88\xec\xe8\x10\x98\x73\x5a\x54\xd8\x5a\xd7\x37\x9f\x56\x4a\x75\x3d\xee\xc8\xc9\x20\x09\xad\xd6\xc0\xee\xe9\x5f\xa3\x9f\x93\x10\x85\x61\xc0\x1f\xdf\x57\xe3\xbf\xb3\x48\x3a\x14\xc9\x19\x9d\xd4\x06\x2e\xcf\xdd\x10\xc0\x37\x45\x8b\x46\x6c\xcb\x73\x35\x38\x62\x94\xb2\xd0\x8a\xe2\x6d\x7d\x3c\xb5\xf1\xe9\x60\xe9\x90\x01\x8f\x82\xc0\x45\x77\x1d\x6d\x7d\x72\x72\xce\x4d\x12\xf4\x3c\xe6\x7b\x10\x63\x91\x42\x19\x70\x6d\x0b\xba\x15\x74\xb3\x4d\x84\x41\xd4\xe9\xce\x82\xce\xae\x6b\xd7\xcb\x40\x50\xdb\xcc\x42\x14\xf1\xb3\xa8\x9a\x02\xaa\x61\x51\x57\x06\x82\x71\x07\x40\xb1\x8a\x70\x0f\x59\xd1\x5c\x53\x85\x73\x1f\x91\x69\xc0\x3a\xc7\x41\x2c\xb3\xe9\x19\xe3\x32\x19\x48\x11\x22\x67\xaa\xef\x54\x58\xc1\x06\xff\xd5\x2a\x89\xb4\x85\xd1\x6c\x40\x65\xa7\x76\xdf\x58\x58\xec\xf1\x5c\x2e\x28\x03\x25\xad\x06\x6a\xaf\x37\x3d\xb7\xcc\xca\x40\x93\x08\xf7\xd6\xbb\x2a\x83\x42\xd7\x7d\xd1\x5f\x06\x5a\x26\x06\xba\x59\x65\xb5\x8c\xb7\xe7\x63\xcf\x82\xe9\xc6\x59\x02\xfb\x51\x14\x67\x91\x3b\x51\x99\x2b\xb7\x43\xab\xd8\xe9\x6f\x2c\x66\xfc\x44\x65\x00\x11\x45\xd4\x7c\x59\x38\x59\x87\xec\xcf\xfe\x1e\x00\xb1\xd8\xb3\x9b\xe5\xcf\x2f\x12\x2f\x19\x80\x30\x18\xe1\xd5\x4d\x79\xda\x97\xd5\xbe\x82\xfa\x7c\x84\x7d\x97\x19\x75\xbb\x81\x0c\x0c\x25\x48\x3c\x59\xbe\x8a\xea\x00\x8f\x30\xf0\x56\x94\x81\x49\x6c\x9b\xeb\x54\x95\xbf\xc6\xb5\x3c\x3e\xe8\xac\xc8\xc0\x08\xdb\x65\x72\x21\xc8\x57\x11\x88\xff\x84\x0a\x11\x1f\x6a\x7d\xbc\x96\xaf\x6d\xce\x37\xb5\xff\x95\x61\x90\x98\xc4\xca\x6b\x94\x15\xbc\xa0\x30\xd6\xc8\x0b\xe8\x5a\x94\x33\x8c\x77\x65\x18\xf6\x2a\x8f\xcf\x56\xf6\x6c\x7b\x3e\xde\x7c\x8e\x88\x10\xe3\xc9\x13\x86\x3c\x45\xf9\x22\x5b\xb0\x5e\x2f\x9f\xc2\x61\xba\x21\xc3\xc8\x05\x64\x4a\x14\x37\xe7\xcf\x19\xc3\x33\x19\x92\xc0\x1a\xcd\xd7\xe0\xc4\x31\x2e\x32\xbf\xe1\x23\x0b\x49\x28\x91\x2a\xba\xaf\x4f\x79\xd6\x4c\xcf\xc5\x94\xdf\x05\x6c\xa1\x1a\xaf\xfd\xe2\x1b\x13\xca\x5c\x91\xfe\x2e\xab\xea\xe6\xa6\xac\xaa\xf2\xa3\x37\x1e\x98\x7d\x4f\xc2\x58\xd9\x8a\xb9\x25\x0f\xdf\x97\xea\xad\x6f\xaa\x4d\xb5\xb2\xfe\xaa\x9d\x3f\x62\xd9\xbb\xf3\x33\x46\x55\x4f\xf3\xc0\x7a\xf9\x33\x54\xc8\xc0\x99\xdf\xf3\x42\xc6\x19\x42\xa8\x9c\xeb\xc0\xaa\x71\xd2\xbe\xdd\x7b\x10\x26\x34\xa5\x66\x00\x5a\x1a\xf5\xf2\xe6\xaf\x66\xc2\xfd\x97\x21\x0f\x81\xba\x90\xfb\xa9\xdf\x54\xfc\xc1\x14\xb0\x4e\xb2\x7a\xd9\x0c\x45\x34\x65\xc8\x4d\x4a\x23\xb7\xc9\x07\x61\xff\x57\x83\xce\xd6\x03\xb5\xb7\xf6\x02\x46\xff\xb8\xa1\x29\x15\x89\xed\xfd\x67\xb9\xf6\x8e\x46\x93\x07\x99\x1a\x26\x48\x87\x40\xd8\x20\xb4\x60\x92\xc5\xc9\x50\x24\x02\xaf\xdf\x22\x45\xbd\xad\x83\xbf\x22\xc9\x2c\x8e\x34\x2b\xb2\x66\x25\xd4\xeb\xf3\xcb\xb6\x9b\xbc\x2a\xa4\xd8\x11\xb4\xa8\x8f\xbb\xb2\x9a\x64\x9a\x32\x54\x4c\xf8\x92\xea\x4b\x56\x34\xa8\x02\x4c\xba\x83\x4a\xc5\x2e\x7a\xbe\xdd\xee\x7a\xbf\x07\x19\x6a\x26\x30\xfe\xdf\x3f\xdf\xbf\xec\x9e\x46\xd7\xa3\x53\x6a\xfc\x0c\x2e\x3f\x26\xbf\x57\x8b\x50\x0c\xcc\x2b\x5e\x47\xe5\xcd\x8b\x6d\x2a\x04\xaa\x9d\x21\xd2\x7f\x40\x35\x0f\xa2\xf8\x9c\x94\xa2\x65\x08\x86\xa3\xf8\x66\x17\xc6\xe9\x1b\xcb\x23\x9f\x7f\x07\x4c\x64\xb0\x4d\x75\xaa\x60\xf7\xdd\x95\x43\x64\x14\x38\x11\x6b\x8b\xbf\x2e\x34\xb2\x4f\xed\xaa\xd1\x2f\xa0\x51\x40\x43\x63\x2b\x36\x47\x5b\xc6\xab\x9d\xee\xc1\xb8\x70\x22\xa3\x80\x27\x58\xc3\xd6\x90\xc3\x41\x34\xbd\x62\xd7\x5f\xa1\x64\xdc\xe7\xa3\x30\x42\x9e\x93\x29\x2b\x99\xe9\xdb\xac\x02\xd5\xdc\x82\xf4\x4d\x3a\x19\x11\x65\x91\xb5\x0b\x05\x07\xb7\x28\xf9\x43\x94\x5b\xc7\x6c\x1f\xc1\x4f\xcd\xa8\xfc\x30\x1d\x60\x5f\xe3\xf9\x69\x3b\xe8\x59\xc8\x88\x19\x81\x2b\x0b\xfa\xff\x6c\x1b\x38\xf9\x99\x1f\x25\x51\x12\x7b\x5b\x83\xe7\x73\x17\xb7\x45\x89\xe2\x8e\xf1\x8a\xf1\xbf\xa3\x20\xe2\xb2\xe4\xd8\x9b\x3d\xaa\x10\x47\x63\x58\xd1\x88\x37\xb8\xb9\xc0\xa5\xb6\xc7\x2d\x69\x1d\x57\x8d\xda\x56\xbf\xba\x63\x90\x58\x82\x96\x29\x2b\xa4\x5b\x5c\xae\x8c\x11\xa7\x29\x4a\xbd\x40\xad\xc4\x09\xae\x8b\x32\xcb\x88\xa7\x1c\xab\x07\x0f\xa5\x37\xb2\xf4\xdf\x93\xea\x04\x0b\x9f\x1f\x90\x0d\x69\x4d\x32\x12\x3c\x41\x5c\x51\x51\x36\xeb\xa2\x2f\xb4\x8f\x97\x9b\x48\x28\xc0\xc9\x94\x63\xa3\x66\xaa\x62\xe7\x07\x01\x4f\xd3\xee\xc5\x7f\x28\xf5\x39\x87\x0b\xcc\x5a\x3b\x2c\x65\xce\xb9\x68\xae\x71\xed\x46\x49\xcd\x03\x8b\x97\xac\xcf\xb0\x68\xda\x30\xfe\xeb\x09\x26\xc1\xa6\xef\xbe\x90\x50\x81\x5e\x34\x36\xfe\xb3\x6a\xcf\xe3\x8b\x95\x86\x60\x90\x71\x73\xff\xe0\x6f\x85\x8e\x18\xaa\x91\x3e\x7d\x3c\x61\x8f\x75\x74\x03\x35\xb5\xb0\xf7\x1a\x9a\xc5\x78\x2d\x8b\x74\x4a\x90\x6f\x9b\x97\x42\x8f\x25\x35\xae\x65\xb5\xb3\xef\x71\xa4\xa5\xcd\x24\xb0\x0b\xee\x54\x49\xfb\xb0\x7f\xb4\xe1\x46\x10\x07\x48\x55\xbb\x5f\xff\x6b\x61\xaf\xf3\xb2\x01\xcd\x27\x77\xc8\x84\x21\x06\xe9\x75\xe1\x1b\x23\xb9\x2f\x52\x4b\x12\x44\x22\x64\x7e\x59\x1d\x59\xe4\x4b\x12\x0a\xa9\x45\x9f\xd8\xde\x42\x23\xb2\x7c\x32\x4b\x49\xa8\x28\x56\x08\x37\xab\xed\x6a\xf3\xfb\xea\xd6\xb3\x35\x9e\x9e\x57\x96\x65\xba\xb8\xdf\xaf\xfe\x78\x5e\x3d\x6e\x57\x5b\x7f\xe2\x88\x87\x28\x7e\xf0\xde\x3e\xa0\x5d\x79\x03\xdb\x4e\xd3\x5e\x12\x12\xd2\x44\x8c\xe5\x5e\xbb\xd0\x75\x86\x65\x28\x09\x11\x31\x8a\xaa\xb4\x33\x00\xd1\x62\x3e\x96\xf5\xc7\x75\x8c\x98\x8f\x12\xfb\x03\xd7\x32\xea\xd9\x37\x8b\xc4\x4c\x60\x3c\xd4\xae\x14\x0f\xe5\x3b\x3a\xda\xef\xaa\x73\xdd\x5d\x6d\xec\x0c\x35\x6b\x68\x50\x21\xe7\x4a\x3d\x6a\xfc\xc8\x49\x9c\x08\x01\x4e\xc3\x3d\x83\xf7\x61\x27\x5c\x12\x1a\x0b\xa4\xf8\xbf\xd5\x6a\x5d\xfc\x85\x86\xf5\x70\x72\x10\x9a\x24\xd4\x81\x79\xee\xe1\x20\xd4\xe7\xe3\xdd\x6e\x36\x7d\x20\xd4\x50\x1f\x9a\xb9\xba\x47\xfe\xb9\x39\x5b\x17\xb2\x5e\x53\x4a\x12\x16\xa4\x78\xeb\x46\xde\x27\xc8\x14\x75\x89\x56\x3d\x27\x60\xd4\xdf\x3e\x96\x1a\x31\x90\x12\x69\x97\x91\x7b\xa4\x73\x4c\xae\x87\x29\x89\xe2\x25\xab\xe6\x15\xda\xb1\x45\x1b\x30\x5b\x37\xeb\xf1\xc0\x24\x10\xde\x09\xfe\xb9\x82\xf7\xac\x3c\xd7\x8f\x1d\x0f\xc1\x8f\x51\x12\x0b\x07\xbf\x3f\x2d\x47\xdb\x39\xe1\x91\x45\x0f\x62\x19\xb7\x68\x9c\x51\xfd\xd7\x31\x3f\xe1\xd4\x20\x2a\x57\x9e\x3f\x9f\x8e\x70\x10\xab\xc3\xa1\x3b\x5f\x62\xdd\x0b\x84\xd6\xbb\xd2\x79\x2b\x54\x16\x65\x28\xb2\xab\x30\x52\xf7\xe1\x34\xd4\xf8\x56\xa2\x8a\x13\xa8\x4c\x74\xaf\x64\x4a\x24\x0a\xd5\xc0\x11\xaa\x03\x14\xea\xd3\x2b\x07\xf8\xe3\xb1\x56\x8e\x5e\xfc\x76\x83\x42\xe5\xc7\xe6\xda\x03\x48\x13\x8d\x62\xe8\x4f\xe7\xb1\x37\xd1\xf8\xae\xa6\xc6\xca\x69\x61\x1b\xb1\xcb\xc2\x89\xe0\xd6\xdb\x48\xe3\xae\xdd\x91\x48\xe6\xe2\xc4\x51\xb8\x48\x44\x1a\x62\x64\xd9\xde\x98\x0c\xaa\x7a\x58\xa8\x9c\x23\xbd\x4a\x22\x84\x09\x5c\x25\x7e\x53\xdb\x88\x64\x7e\xe6\x4a\x9a\x60\x79\xf3\x59\x7c\x3a\xe5\x05\x7f\xb5\x2a\x89\x3c\xcc\xda\x7d\x14\x8d\xa6\xba\xc3\xc2\xfa\x56\x58\x00\xf2\xcd\xe0\x7e\x6a\xc2\x34\x5c\x74\xd8\x27\xcb\x5c\xbb\x2d\x75\x45\xf7\x0d\x1c\xda\x81\x65\xb5\x85\xea\xbd\xab\x78\x4b\x02\x61\x80\x25\xd2\xe7\xcd\xaa\x0d\x44\x86\x24\x29\x49\x20\xb2\x4b\xf7\x21\x33\xcd\xa6\x54\x6f\xf3\x49\x1c\x81\x24\x88\x7b\xbf\xc7\x81\xfd\x97\x3f\xce\x95\x6d\x46\xd5\xab\xe6\xf5\x59\x7c\xf6\xa0\x02\x49\x40\x27\x28\xc6\x7b\xec\x2d\xf5\xfd\x11\xa3\xad\xdd\x75\x2e\xb2\xa3\x55\x8f\x9a\x9c\xd7\x44\x46\x77\x4c\xc1\x85\xd7\xb7\x9e\xc1\x66\x48\x62\xb8\x60\x89\x9f\xf7\xdb\xcf\x42\xdd\x4f\x79\x89\x92\x18\x6d\xc9\xb8\xbe\xef\x85\xf2\x03\xfe\x6a\x8c\x49\xfd\xf2\x73\x57\x56\xa0\x44\xdd\x8c\x2c\xc5\xfe\xe7\x02\x58\x26\xe3\x80\xd8\x40\x32\x17\xb5\x15\xe8\xde\x9b\xe4\x87\xa8\x5f\xf7\x6e\xec\x37\x3f\x0e\x80\x5b\x2b\xa9\x3c\x5f\x54\xb6\x30\x30\x40\x46\xc9\x38\x0c\x8d\xe2\x5d\xb1\x75\xc0\x61\x91\x71\x48\x74\xe4\x92\x84\xfb\xb3\x47\xf3\xc9\x38\x8c\x13\xec\x73\xbc\x8a\xfa\x36\xab\x55\x5e\xd6\xe7\x6a\x60\x8d\x37\x9a\x28\x71\xa8\xec\x3c\xab\xd1\xc9\xa8\x6a\xea\x45\xf3\xb2\x5b\x5e\x0c\x0a\x71\x51\xf1\x6a\xa6\xb7\x25\xd4\x8f\x65\xf3\x20\x1a\xd5\xe7\x97\xa3\x68\x23\x8e\x98\xc6\xe4\xe0\xfe\xe9\xfb\x1e\x51\xa4\x77\x22\xcb\x87\xe9\xee\xe8\xfe\xc7\x91\xb4\xfd\x3d\x5f\xf3\xda\x8a\x1c\xea\x29\x0e\x61\x7c\x51\x91\x49\x83\xd8\xc2\x6a\xef\x2a\x80\x3f\xb1\xd4\x9a\x8d\xa4\x33\xc6\x1f\x20\x89\x0e\x94\x2b\xed\x89\x0a\xee\xdb\xc7\x28\xf2\x5c\x8b\x46\x0c\x17\xe4\x38\x16\x14\x2c\x4b\xa5\xd0\x39\x6c\xb3\xe2\x90\xc3\xba\x81\x0b\x35\xd5\x2f\x81\xf5\x32\x8e\x4d\x8c\xfe\xff\x28\xc2\xe4\x13\xbb\x98\x2a\x82\xca\xee\xa2\xc6\x86\xf6\xa5\x7e\xa5\x8c\x59\xcc\xa4\xf1\xc0\x2d\x03\x95\xc8\xeb\x87\xac\xb0\xf9\xe3\x08\x0a\xd7\x8d\x4f\x30\x52\xed\xa8\x4c\x36\x1d\xb8\x72\x17\x18\x07\xed\x76\x95\x1f\xf8\x03\xab\x5d\x79\x01\xbd\x77\x63\x13\x66\xc5\x3e\x34\xbc\xdb\x37\x6b\xad\x4a\x9f\x95\xc4\x49\xc2\x08\x19\x6a\x97\x38\x62\xca\x45\x70\xfe\xef\xff\xfd\x9f\xd1\x42\x3a\x2f\x14\x28\xe3\x44\x4b\xb4\xa5\xf7\xea\x9e\x4e\xca\x7b\x12\xbf\xc7\x3c\xb2\xc5\x3d\x54\xcd\x2b\x0a\xa8\x5e\xaa\x7c\x72\x47\x52\xcd\x51\x31\xf6\x3f\x6d\x84\x93\x9f\xe5\xe4\x0c\x22\x0a\xf0\x19\x1c\xb3\x62\x1c\x7b\xc5\x22\x25\xb8\x28\x6f\xa1\x39\x9f\xee\xce\x35\x08\x5f\xac\xbb\x0e\x9c\x8c\xae\x9b\x31\xbb\xb3\xca\x50\x19\xbb\x06\xae\x97\x4f\x36\x71\xf5\x5f\x28\xa9\x97\x3e\x2c\xcb\x1a\x16\xfe\xcf\x2a\x4c\x85\xea\xac\x01\xe7\x6c\x9f\xff\x56\xa7\x25\x56\x54\x60\xc3\xc8\x71\xdb\xee\x06\x8b\x87\xe2\xb1\xb6\x35\xd2\x5d\x25\x34\x0c\xd6\xe5\x58\xe9\x08\x77\x98\x76\x4f\x70\x44\xac\x0e\xc0\xd0\x1e\x8d\xc1\xf4\x2a\xc8\xcf\x8b\x3f\x76\x9b\xc9\xfd\xd7\x41\x84\x41\xb6\xb5\xd6\x5b\x1c\xfa\x70\x39\xd6\x21\xc7\x12\x7d\x25\x1a\x78\x32\x88\xcc\x35\x99\xf2\xf6\xcd\xe3\xd3\x98\x38\xe2\x2e\xe9\xcb\xcc\xe7\x23\x7c\x4c\x64\x16\x26\xb7\xd9\x30\x15\xf7\xe5\xce\x79\x55\x4f\x19\x1b\xc1\xd0\x59\x09\x9b\xf6\x56\x74\x6f\x0c\xb2\xc4\x21\x42\x7a\xc7\x1a\x23\xce\x79\xbb\x34\xaa\x37\x6c\x9d\xb8\x31\x34\x20\x02\xe3\xa1\xfb\xf2\xb0\x39\x0e\xab\x1e\xfe\xb8\xb0\xf1\x92\x2d\xb7\xcc\xda\x97\x4a\x1a\x26\x21\x22\x40\x6d\x3a\xfe\x5b\x96\xe7\x70\xa5\x58\x4a\xc3\x84\x61\x64\x7f\xcc\x0a\xab\x18\xff\x64\x4c\x1f\xfb\xd0\x28\x90\xcc\xc2\x0d\x9a\x57\x47\x90\x59\x34\x3f\xb2\xa6\xbe\x9f\x36\x00\x25\x8d\x84\xd4\xd0\xe1\xe2\x37\x58\x95\xba\xb2\xc8\x52\x12\x5a\x93\xe9\xda\xe9\x43\xec\x85\xee\x30\xa1\x92\x12\x2e\x95\x1a\xc5\xe5\x97\x8e\x98\x92\xc6\x91\x10\x09\xea\xa8\x96\xd2\x7f\x92\x4a\x81\x30\xc1\x01\x77\x50\x52\xaa\x42\xf4\x1e\xbc\xc9\xac\xe3\xb0\x9e\xb8\xd5\x5e\x54\xa0\xdb\xe4\x75\xb0\x57\x52\x0a\x2a\xa6\x9e\x31\xf2\x06\xc5\xae\xbc\x39\x57\x45\x77\x7a\x03\x9d\x8a\x4f\x79\xae\x9a\x57\x17\x77\xcd\x69\x89\x4a\xca\x42\xab\x6b\x83\x4d\xc1\x22\x2b\x27\x0a\x7a\x92\x32\x12\xe2\x6d\x7c\xc0\x86\x84\x2d\x0f\xe0\xcf\xb9\xbd\x46\x4a\x92\x34\x09\x03\x04\xc4\xef\xad\x0d\xcc\x22\xcf\x9f\x85\x7a\x03\xbd\x81\x77\x44\x2c\x74\xc6\xb9\x63\x95\x22\x49\x79\xc0\xa2\x60\xe0\x12\x1c\x4e\xae\x96\x2b\xab\x57\x55\xd9\xa7\x39\xd3\xf4\xa0\x5c\xa5\xb1\x43\xac\x3c\xde\x88\x3c\x2f\x7d\xdb\x57\x52\xc1\xb5\xd5\x07\xcb\xde\x61\xd5\xbc\x7a\x47\xfa\x71\xeb\x92\x0a\x15\x63\x2b\x4f\xc8\xfa\xdb\xe8\x57\x09\x88\x10\xd6\xa7\xc5\x67\xf0\x2b\x9c\x7f\x3b\xa9\x0a\xbb\x5d\xcd\x1a\x2a\x6c\xe0\x64\x83\xdb\xa5\x38\x59\x86\x1c\xf4\xf4\x28\xff\xa1\x54\x80\x47\xd9\x40\xa3\xf6\x72\xf6\x51\x69\x13\x53\xd2\xd3\xa1\x7e\xbe\x96\x08\x0f\xf9\xab\x42\xfa\xdf\xda\xc6\x29\xc4\x36\x90\x13\x8e\x96\xf8\x52\x64\x4d\xfd\x74\x6e\xea\x4c\x3b\xde\xda\x40\x3b\x5e\x52\x48\x28\x6e\x62\xf0\x8e\xdd\x3d\x71\xac\xaf\x79\xd2\x4f\xb1\x40\x3e\xb9\xa0\x00\x4c\x38\x36\x86\x23\x12\x7d\x95\xf3\x53\x13\x10\x2f\xee\xb6\x29\xcf\xcd\x08\xa7\x24\xa9\x61\x0a\xa9\x97\xcf\xe4\xb6\x71\x24\xe9\xfd\xf8\x26\xb3\x50\x84\x89\x93\x43\x90\xed\xc2\xf1\xcd\xff\xdd\x10\xe4\x43\x39\xc5\xc1\xdb\x4e\x6f\x50\xb2\x88\x47\xd0\x95\xbd\xaa\x5b\x57\x6c\xf5\x47\x63\x19\x3a\x77\xb4\x4b\x9c\xbd\x1b\x42\xc3\x38\xd6\xae\xe5\xbc\xf3\x25\xf2\x5e\x42\x49\x32\x1a\x59\xa1\xa0\xef\xa8\xfd\x39\x12\x1f\x1e\x5f\x3d\xa5\x01\xba\x13\xb6\x61\xdc\x78\xc2\x32\x16\x18\xcc\x22\x56\xcd\xab\x8f\x29\xc6\xaf\x15\x63\x24\x20\xba\xa7\x1d\xcc\xfa\x96\x70\x3f\x56\x59\x09\xcc\x6e\x02\x5f\xca\xc4\x4a\x96\x44\x21\x75\x64\xa1\x87\xd5\x62\xd1\x38\x54\xf7\x85\xae\x8e\x1f\x9e\x58\x4b\x78\x6c\x06\xef\xeb\xa2\xd9\xab\xa1\x5b\xa0\x64\x89\x90\x18\xc9\x6c\x9b\x0a\xc4\xd1\x05\x23\xc3\x2a\x01\xe3\x9c\xa2\x09\xcf\xf3\xcb\xcd\xfd\x7a\xb9\xef\xea\x5a\xcf\xab\xcd\x76\xf5\xb8\x5b\x74\xa5\x76\x96\x26\x52\x7a\x8f\x9a\x36\x0f\x9f\xcd\x58\x99\x10\x14\x89\xfb\xba\xcd\x46\xcb\x13\x54\xfb\x02\x3e\xbc\xca\x80\x05\xea\x5f\x88\x21\x48\x26\x34\x0b\xa6\xf8\xa8\x9f\x59\xf3\x6a\xe3\xab\x21\x4e\x69\x76\x12\x33\x01\xb6\x41\x86\xda\xfd\x0e\x56\x6b\xaa\xf2\xb8\x2f\x8d\x41\x99\x9d\x2f\x4b\x49\x4c\xc6\x16\x39\xf6\x52\xd8\x2c\xd0\xca\x07\x3f\x8b\xcf\x51\x4f\x0e\x9f\xee\xa4\xdc\xc8\x24\xd3\x08\xe4\xbb\x5f\x3f\xfe\xe6\xef\x94\xe4\xd6\xe3\x0d\xef\x54\x05\xe2\x7c\x0d\xf8\xe3\xc7\xcb\x84\x78\xa6\xe2\x6b\x05\x98\x5a\x4c\xfb\x3d\x4c\xaa\x98\xb8\x55\xca\x4a\xa7\x2e\x94\x9a\x04\xdc\x4c\x85\x81\x25\x62\xe1\xc2\x98\x15\x87\x5e\x0f\x10\x1f\xfa\x76\x40\x79\x9e\xfc\x0e\x25\x84\x76\x8a\x09\xcf\x50\xd5\x65\x21\x06\xb3\x6f\x90\xde\x30\x20\x09\xc2\xad\x9b\xd7\xac\xd2\x3f\x01\xde\x30\x5a\x58\x17\xed\x7f\xfa\x6b\x05\x66\x21\x44\x15\xd4\xea\x0c\xfe\xa7\xcc\x7f\x73\x12\x10\x0a\xbe\x92\x61\x03\xb4\xa1\x40\xa3\x4c\x82\xd4\xea\x54\xda\xde\xf2\x12\x2d\xfc\xae\x14\x80\x92\x40\x44\x88\x8f\xde\x41\x75\x1a\xa0\x04\x92\x28\x4c\x63\xd3\x13\x3a\x6e\xb3\xf7\x6b\x67\x88\xe2\x10\x09\x60\xab\x5c\xe8\x89\x37\x81\x4c\x22\x0e\x3a\x1e\x28\x0a\x6f\xc4\xc7\x03\xf4\xbd\x6e\x37\x2a\xe6\x04\x3b\x04\x3b\x10\xc7\xe1\x45\x50\xa2\x85\xf5\x9b\x6d\x5e\xab\x2c\xef\xfe\x9c\x10\xc4\xcf\x81\x65\x4c\x4c\xda\x64\x09\x0b\x2c\xc5\xac\x7b\xee\x93\x52\xf9\xe4\xfa\x59\x44\x70\x03\x39\x89\x4f\xa4\x2c\xc2\x15\x29\x46\x99\xb0\x34\xf2\x3e\x07\x16\xa4\xf1\x5d\x1c\xa1\xbb\xeb\x2c\x05\x14\x44\x6a\xa0\x6e\x27\x65\xf9\x51\x6f\xac\x6a\xd2\x63\x69\x15\x39\x06\x11\x7f\xc2\xb4\x4e\x3c\x2d\xcd\x01\xa2\xe7\xde\xb3\x24\x21\x1a\x49\x54\x5d\xaa\x99\xe7\xdf\x66\x7f\x45\x42\x19\xb1\x5e\x59\x4e\x1f\x3c\x2b\x8b\x4e\x92\x7f\xd4\x7c\x38\x5f\x75\xae\x94\x49\xc2\x2c\x62\x73\xef\xfc\xfd\xb2\x5f\x90\x3f\x88\xd3\x69\x06\xf7\xf8\x75\x9b\xdc\x2f\xf8\x09\x8f\x62\x0b\x44\xc9\x7e\x65\xdd\xaf\xe7\x40\x54\xdc\x7b\x9b\xff\x38\xa3\x20\xf7\xb5\x94\xab\x7b\xb0\x69\xec\x3c\xbf\xb0\xf4\xb5\xcf\x5c\xf1\xdb\xaf\xdd\x49\x2a\x22\x14\xb3\xca\x45\xdd\xa0\x2e\x76\xef\x8f\xe5\x47\xe8\x38\x70\x5b\xf7\xcf\xd7\xf2\x39\x13\x97\x6a\x2d\xff\xc7\x7f\xdd\x89\x85\xd0\xc8\x2b\x5a\x3c\x3c\xbd\x3c\x7a\x1d\x8d\xfd\xdd\xd3\x66\xbf\x5d\xdd\xdf\xfb\xaf\x97\x89\xc4\xfa\x5f\x2e\x9a\xec\x7c\x1c\x03\xa1\x12\x99\x28\xdc\x1a\x7d\xe5\xbc\xcd\xa4\xba\xa9\x3d\x79\x4e\x52\x02\x0a\xd1\x29\x0f\x31\x71\x76\x37\xe3\x7b\x2f\x21\x46\xd8\xe0\x76\xf7\x8f\x39\x53\x72\x99\xa8\x80\x72\x98\x01\xe8\x8e\x7f\x9b\x52\xf6\xc2\xf6\x1e\x98\x60\x69\x59\xce\x72\xa1\xbe\xe6\x3d\xe6\x3f\x0d\x0c\x1f\x8a\x23\x60\x8e\x51\x25\xfd\x95\x18\xdf\x23\x54\x1e\x02\x35\x95\xd4\x90\x89\xa6\x86\x5b\x1d\x52\xac\x77\x87\xfc\xe8\xef\x9d\xe6\x04\x5c\xa5\xdd\x25\x90\x4f\x27\x07\x65\x1e\xff\x16\xcd\x05\x36\xe5\x57\x85\xe6\xdd\x87\xa5\x0d\xbb\xea\xcf\xda\xf2\x19\xdd\xdf\x21\x48\x83\xa8\xe7\xd7\x5c\x4a\xa1\xcb\x04\x12\x6e\x7a\x87\x3d\x6c\x04\xdb\xbc\xc4\xea\x89\x8f\x07\x9b\xc0\x9a\xef\x7b\xe2\xc8\xcd\xb9\xd0\x5d\x27\x74\xf8\xd6\xf3\x20\x10\x78\xc7\x3f\x44\xa3\x5e\x9f\x51\x85\x01\xaa\x7a\x27\xea\xb7\x2b\x8b\x30\x0f\x63\x83\xd7\x8a\x38\x1b\xdb\x0a\x76\x47\xa2\x20\xc2\x64\xf0\x1e\x0e\x22\xf7\x29\x95\xaf\x83\xf9\x31\x14\xb8\xb5\x44\x6d\x84\x7a\x45\x3e\x7d\xdf\xc7\xe6\x91\x61\x98\xea\xbc\x65\xc5\x41\x97\xc7\x3b\xb4\x94\xf0\xe0\x39\x4e\x24\xc7\xed\xdc\xd6\x0c\x5c\x49\x6a\x7c\x71\x71\x68\x70\xbf\x2a\xe0\x57\x73\x0b\x28\x16\x97\xb9\x9e\xd6\xf0\x7b\x62\xce\xf0\xe5\x94\x5e\xca\x6e\x85\x8d\xed\x99\xa8\x8f\xc7\x90\x44\x38\x25\x6d\x91\xd6\x8a\x56\xff\x3d\xc4\x01\xa7\xa1\xc5\xf4\xa2\x87\xaa\x75\x0d\x99\xbf\xa7\x94\x06\x1e\xd2\x8a\xd6\x63\x57\x4e\x27\x04\x56\x1d\x1f\xd6\x8f\xfb\xf5\xe3\xef\xab\x0e\x91\xc2\x59\x14\x60\xb5\xb8\x16\xef\x93\x42\x0b\x67\x3c\x95\xcc\x5b\xf2\xd8\xbd\xde\xa1\x2c\x3a\x2e\xa8\xd5\x30\x1b\xff\xec\x84\x9b\x24\xf4\x1a\x4f\x68\x1c\x57\x4d\x47\xa4\x31\x76\xfa\xe5\xf9\xf3\xb9\x44\x31\xa6\x71\xb9\x38\xfc\x37\x73\x26\x46\x92\x27\x4a\x09\x18\xa9\xfd\xaf\x1b\x38\xee\x3e\x4f\xd3\xab\x4d\xb4\x25\xfc\x60\xb2\xf2\xd0\xbd\x20\x9c\x07\x69\xac\xbd\x70\x8d\x43\x2f\xf6\xc7\x2c\x7f\xf1\x37\x94\x73\xee\xc3\x67\x9e\x02\x90\xd0\xbb\x57\xdd\x54\x99\x3e\x74\x13\x00\xbd\x7e\x51\x1e\xf4\xe3\x36\x13\x65\x31\xe3\x0b\x21\xb9\x48\x03\xfc\xfc\x0d\x34\xae\x66\xf1\xb7\x2a\x73\x5c\x48\x86\x17\x8b\xdb\x73\xa9\x3d\xfa\x97\xcb\x90\x88\x64\x6c\x5e\xe4\x29\x76\x92\x4b\xc2\x02\x27\x6f\xe3\x9f\xd3\x65\x2f\x83\xcb\xd8\x32\x0b\x2d\xae\x6e\xbb\xb8\x5f\x45\xdd\x09\xd2\x28\xd4\x8e\xab\x3b\x0e\x8b\xfd\x00\x4d\x13\x5f\xd1\x11\x95\xee\xc4\x15\xfc\x22\xce\x25\x08\x84\x6b\xde\xdc\x3f\x2d\x7f\x9b\x48\x33\x4b\xae\x44\x14\x26\x23\x6f\xa3\x6c\x5a\x0e\xe2\x3a\x00\x16\x78\xac\xea\x8d\x28\xde\xfa\x17\x5f\xcb\x04\x63\x96\xfd\xd8\x98\x51\x72\x0d\x31\x57\x23\x9e\xec\x6e\xb9\xd8\xfe\x98\xee\x20\x1c\x58\xa8\x1c\x60\xdb\x89\x9b\x3f\x57\xb0\x56\xe5\xe4\x12\x20\x8d\x51\x89\xa4\x67\x41\x4a\x0e\x26\xf0\xad\x5a\x6b\x7c\x99\x15\x87\xa5\x38\x09\x75\xb1\xf0\x73\x13\x31\x7c\x65\xff\x7b\xce\xd4\x1b\x02\x96\xda\x55\xb6\x80\xfc\x2a\x96\xef\xda\xff\x0f\x9c\x43\xfc\xb9\x89\x4d\x47\xde\x2a\x81\xeb\x91\x1a\xdc\x1e\x43\x2d\xc0\x08\xfb\x65\xdd\x1f\x19\x43\xce\x3d\x2e\xce\xa0\x5f\x36\xf7\x33\x82\xa4\x92\x1b\x15\x99\x60\x20\x7c\x73\xe1\xe5\xd3\x8d\x63\xa8\x3a\x6c\x33\x10\x04\x15\x35\x13\x62\xa5\x4c\x83\x40\xe1\x52\x22\x0a\xf4\xb0\x75\x15\x29\x77\x30\x8a\x25\x6e\xf3\x36\x1c\xc6\x18\xd6\x08\x35\x95\x1f\xf4\x83\x99\x55\xda\xe9\x7c\xb8\x64\x1a\xa5\xd6\x8f\xf8\x74\xae\x5f\xd7\x45\x83\xe6\x34\xdd\x8d\x1d\x3e\x87\x34\x52\x80\xa8\xe7\x9f\x4f\xde\x70\x40\xa6\x44\x58\x63\x77\xd4\x2a\x52\x6f\x9d\x6a\xaf\x4c\x89\x61\x4c\xfb\x9e\x22\x68\xef\xa0\x30\xbe\x9e\x38\x8c\x71\x11\xca\x1a\x38\x0e\xfc\x1d\xba\xa3\xa9\x73\x8d\xcf\xf3\x36\x39\xc3\x2c\xb3\x0b\xe7\xd2\x38\x0e\x47\xde\xfb\xab\x01\xfa\x72\x76\x4d\x4f\xe3\xd4\x60\x85\x1b\x13\x23\xb7\x19\x0e\x48\x99\x32\xa5\x24\xc5\x32\x72\x87\xb1\xf3\x81\x84\xaf\x98\xcf\xb6\xd3\x52\x4a\x35\x5a\x0c\x7b\x29\x7f\xe3\x51\xb8\x7c\xae\xb4\x91\xb2\x48\x59\x23\x5f\x54\x49\xb4\xa5\x5c\x35\xa9\x95\xa4\x8c\xd8\x56\xf6\xe2\x03\x50\xc4\x64\xb0\x8a\xa6\x8c\x87\xcc\x42\xdf\xd0\x6d\xe2\xae\xea\x95\x5b\xae\xba\xd8\x8e\xaf\x98\xc9\x08\x79\x95\x96\x2b\x8d\xca\xae\xf3\xb7\x2c\x89\x23\xc4\x78\xad\x9a\xd7\x5d\xf9\x52\x6b\x8f\xcb\xfa\x72\xb9\x4d\x79\xa8\x11\xf7\x72\x12\x96\xc2\xdf\x3b\xf4\xde\x64\x13\xcd\x65\x99\xf2\x44\x21\x96\xd9\xc3\x5d\x56\xbf\xac\x74\xcc\x84\xca\x3e\xfe\x01\x5c\x51\x9f\xa1\x7a\xe0\xd9\xf2\x5c\xbd\xc3\x78\xe7\xfc\x9f\xd9\x89\xcc\x95\xc6\xea\xbd\x13\x2d\xe9\x7c\xfa\x86\xbf\xc9\x3f\x2b\x6e\x98\x50\x63\x09\x9c\x7a\xba\x0e\xa6\x69\x10\xe0\x6b\x75\xae\xa1\xda\x94\x79\x7e\x3b\xe5\x62\xcb\x34\xa5\xb6\x2a\x7f\x93\xa1\x5c\xd9\x50\x12\x63\x32\x90\x6b\xfc\x42\x7b\x71\x0f\x4b\x1f\xca\xa5\x22\x0d\x45\x3c\x51\xb7\x9a\x7f\x66\x32\x90\xb8\xa8\xfd\x56\x9d\x5f\x4d\x33\x02\xfb\xa6\xd2\xd8\x4e\xc0\xbe\xcc\x6d\x4c\x5b\x3f\x4d\x18\x17\xa9\x4a\x0c\xee\xb1\x3f\xa1\x92\xd0\x4b\x65\xc8\x54\x49\x8d\x08\xe2\x93\x6d\x88\x8c\xce\xab\x00\x4c\x38\xe2\x45\xa3\xb5\xb9\x15\xf7\x1b\x54\x1a\x53\x1d\x5a\x7b\x9d\xf6\x86\x3e\x3d\xdd\x5b\x0e\x58\xc8\x47\x65\xd4\x54\xc7\x8a\x83\xaf\x08\xe9\x03\x5c\x25\x3e\xfb\xf1\x32\x02\xd3\x49\xa6\x79\x29\xd8\x6f\xd3\x41\x4a\xd8\x48\xb6\x69\xa0\xa8\xd7\x75\x7d\xee\x17\x13\x08\x99\xd0\xa3\xaa\x4a\x6f\x5e\x2b\x53\x48\x05\xae\xc0\x9e\x82\x75\x3c\x95\x45\xef\xb6\xee\x06\x99\x94\x21\x88\x58\xa0\x77\xfa\xc3\xa7\xab\x54\x8f\xe7\xad\x01\xe5\x21\xda\x98\x25\xec\xca\x36\xba\xbc\x2b\x2b\x6b\x96\x3e\x79\x37\x44\xc8\x62\xde\x0b\xae\xd8\x37\x62\xb8\x62\x89\xd0\x84\x03\x01\x9e\x9d\xf8\xe5\xe8\x79\xe2\x70\xad\x0a\x2a\xa2\x28\x40\x22\x00\x28\xa1\xbb\x25\x77\x68\x4e\x4e\xfe\xd7\x8f\x24\x26\x84\xd1\x2e\x86\x62\x15\xef\xd7\x34\x7b\xa4\x20\x91\x15\x28\x55\x22\x57\x96\xc8\xfd\x65\xb9\x5f\x90\x54\xa0\xc8\x64\x3b\xbe\x3d\xf7\xa5\x68\x90\x14\x44\x58\xec\xc9\x01\xc5\x3e\x44\xde\xd1\xae\x42\x7f\x96\x98\x29\xa4\x19\x63\x97\x7f\x5c\x95\x16\x34\x4a\xac\x4e\xe0\xdb\xf4\x40\x6c\x61\x86\x7d\x90\xb3\x6a\x57\x8b\xbb\xb2\x5a\xdd\xfc\x73\xb7\x1a\x64\xdf\x5f\xae\x75\x82\x4a\x62\x35\xd1\x6c\x4b\x0e\x37\xf0\x91\x5f\x90\x14\x14\x2c\x27\xb7\xe9\xac\xb7\xfe\x71\x86\x33\x6c\x3b\xd1\xbf\x76\x08\xa0\x40\x6a\x9b\x25\xed\xfa\x2e\x9a\x60\x81\x41\xe1\xe6\xce\x53\xfe\xf6\xf0\xeb\xf1\xd0\x1d\x85\x50\x5a\xaf\x2a\xbb\x64\x4e\x79\xda\xff\xf3\xb7\xfa\xe8\xee\x64\x49\x10\x92\xb1\x3a\x8a\xf6\xc0\xe5\x8e\xe8\x29\x05\x27\x8a\x28\x4f\xae\xc9\x8a\xc3\x77\x31\x9d\xb3\x9c\x33\x66\xdd\xc1\x6f\xb2\xf2\x88\x9a\x4a\xb6\x66\xf0\x54\xe4\x9f\x33\xad\x32\xc1\xc1\x58\x3d\x9c\x1c\x54\x53\x95\x79\x76\x78\x6d\x76\x50\x37\x45\xd7\xe7\x11\x69\x18\xa3\xe3\xd2\x33\xb4\xfb\xd0\x8c\xc0\xdc\x5c\x59\x4c\xa4\xa1\xc2\x36\x1e\x6a\xdd\x60\x59\x17\xe7\x6f\x9d\x75\x37\x30\x4d\x53\xe4\xe2\x09\xfd\xde\x46\x5c\x43\xbc\x8f\x10\x20\x53\xc7\xb1\x99\xd0\x47\xe2\xc9\xf7\xc8\x20\xf5\x10\xa0\xdf\x45\x9e\x69\xec\x44\x8d\x16\x67\x16\xff\x8d\x7f\xfc\xd9\xb8\xed\xcb\x9a\x73\x6e\xb2\x3c\x6f\x37\x67\xcf\x26\x9f\xab\x12\x0a\x25\x8d\x6b\xb4\xaa\x73\xd5\x8b\xd3\x8c\x2f\x51\x19\x8d\x0f\x05\x55\x02\x66\x52\x11\xa1\x43\x1d\x61\x2d\xbc\x2c\xb2\xa6\xac\xe6\x16\x2f\xa1\x49\x8a\xf0\xeb\xba\x11\x6f\x08\x76\xf5\xb4\x58\x0b\xb2\x18\x7f\xa3\xa6\x94\x0e\xd5\x18\xc9\xf4\x64\x29\xf0\x41\x8d\xd9\x6d\x18\xa6\xbc\x52\xe4\x10\x5a\x10\x15\xf8\xd4\xf1\xb7\x7f\xfa\x10\x54\x68\xa9\xb1\x19\xe1\x0b\x82\x8b\xba\x3e\x57\xa2\x78\x07\xd7\x8f\xb8\x7a\x3e\x23\x85\x5b\xdc\x3a\x40\x8e\x6d\xd4\x8e\x2a\xa6\x6e\xb4\x09\x63\xa4\x7d\x8e\x6b\x69\x93\x53\x9a\x24\x44\x84\x9d\x3a\xd7\x4d\xa9\x3f\x47\x3e\x16\x52\x18\x1e\xe1\x2a\xf0\x08\x1f\x1e\xd9\x35\x0b\xe3\x16\x46\x11\x24\x1a\x28\x4b\x65\x7e\x84\x8f\x61\x05\xc2\x0f\x32\xd6\xed\x6a\x10\x0e\xa0\x16\xe6\xec\x95\xc9\x20\x88\x71\x6f\x5a\x22\x44\xa4\x28\x8f\x99\x12\x16\xf0\x33\xb4\x90\x94\x32\x88\x0c\x6e\xf1\x0f\x3f\x17\xbf\x77\x7f\x93\x09\x7a\x27\x2e\xa2\xc5\xcd\x70\xcf\x97\x81\x62\xcc\x92\x6e\x7e\xc0\xaf\x2d\xfe\x82\xf1\x33\x96\x61\x48\x51\x4d\x68\x55\x55\xa5\x9d\x91\x7e\x96\xcb\x50\x1a\x9c\x6f\x0d\x88\x63\xf8\x8f\x33\x74\x35\x25\x19\xa5\x51\xd8\xa1\x78\xcb\xff\xa0\x46\xce\xb3\xf8\x2c\xcf\xcd\x68\xd5\x97\xc4\x58\x83\xce\xd2\xc5\xe8\x48\x18\x9a\x8f\xd3\xff\x3a\x13\x94\x71\xc0\xac\x83\x1d\x32\x76\xcb\x32\xbf\x2d\x8b\x49\x10\x27\xe3\x20\xc5\xdd\x0d\x2f\xf7\x66\xd0\xbc\x95\x31\x0b\x10\x9a\xf1\x65\x01\x7e\x72\x32\xc7\x99\x16\xa7\x13\x14\xda\xe9\xcd\xae\xd0\x8a\xee\xcb\x0d\x47\x52\x12\xa3\x38\x82\xb1\x92\x04\xd3\xe2\x8b\xa4\x5c\xa2\xae\xe3\x66\xf5\x37\xb5\x38\xa5\xa4\x26\x10\xd1\x80\x7c\x76\x23\xaa\x5e\xc0\x3d\x9d\xac\xb1\x5f\xfc\xe3\x4e\xc7\x88\x85\xfe\x3d\x96\xef\xc2\x5f\x15\x53\xd2\x53\xac\x6c\x99\xd0\x57\x49\x64\x42\x04\x8a\xca\x49\xd1\x59\x6f\x5a\xe9\xb4\xdb\x4a\x7c\xa0\x4b\x8a\x1f\x98\x26\x0e\xdc\xba\x56\x25\x96\xf8\xbb\x23\xca\x3a\xfd\x59\xed\x73\x7d\x5b\x5a\xa7\xe8\xd9\x9c\x5b\x26\xca\xda\x18\xfc\xfc\xb1\xde\xad\xee\xd7\x5d\xc9\x4e\x72\xc2\xa8\x19\x42\x7d\x51\xc5\xec\xfc\x39\x1f\x47\xc9\x94\x69\xe4\x7f\x39\x09\x25\x04\xa3\x4c\x19\x2b\x52\xc6\x06\x81\x44\xf7\xe5\x01\xb5\x46\xb0\xcc\xe2\x4e\x37\x1e\xc8\x52\xe4\x23\xd5\x1f\xe2\xe4\x73\xd3\xe9\x95\xb7\x49\x40\xea\x73\x6a\x7c\xe1\x27\x7b\xaf\x54\xb1\x44\x93\x3c\x94\xb1\xe9\x8b\x01\xfe\x68\x92\x7a\x2c\x9f\xf7\xc2\x6e\x43\xf3\x9e\x98\xd6\xbd\x5b\x2a\x4d\x15\xeb\x6e\xa8\x17\xc7\xf0\xcd\x89\xcb\xce\x84\x4f\x85\xa4\x6a\x43\x65\x14\x2b\xd4\xdb\x66\xea\xba\x21\x25\x84\x3c\x1c\x0a\xee\x3a\xad\xc8\xee\x11\x43\x64\xb0\x5f\xb0\xeb\x73\x7a\xa8\x2c\x6b\xb8\xbd\xc7\x16\xf4\x7f\xad\x69\x33\xbe\x15\x90\x6a\xee\x60\xe6\x77\x28\x75\x37\xb9\x99\xa0\x62\x44\x1c\xa9\x32\xd7\x76\xb7\xeb\x66\x24\x18\xdb\x91\xcc\xea\xdf\xcb\xde\xc7\x5c\x4a\x23\x83\xc8\xf5\x16\x77\xbf\xfe\x8e\x1e\x89\x94\x46\x01\x4a\x7a\xca\x4c\x3f\x15\x37\x15\x40\xfb\xca\xba\x19\xb3\x3b\x37\x65\xe5\x95\x32\xe3\xc0\x7f\x42\xdb\x26\x45\x8d\xe1\xd0\x2a\x37\x83\x4a\x82\x7f\x3e\x2a\xa0\xdc\x12\x8f\x9a\xd2\xe2\xe1\x07\x29\x96\x0a\x38\x47\xfc\x70\xdd\xd4\xca\xff\x2d\x8c\xac\xd5\x8b\x45\x97\x38\x13\xdc\xed\xce\xd3\xe1\x54\xa4\x35\xfa\xf7\xe8\x12\x6a\x3f\xfd\xb0\xad\x34\x1f\xe8\x2b\x92\x5a\x59\x8b\x0a\xac\x75\xd3\x5c\x15\x4c\x11\xc5\x29\x1d\x6c\xb1\xf7\x59\xdd\xb4\x33\x33\x9a\xc4\x02\x2a\x0e\x23\x4c\x49\xce\x85\xca\x07\x62\x69\x52\xc5\x71\x84\x41\xfa\xad\xa8\x85\xcc\xf6\x59\x39\xdc\x80\xda\xa3\x38\x9b\x1e\x16\x7f\xec\x6f\xd6\xb7\xfb\xbb\xcd\x62\xb9\xbf\x79\xda\x75\xc7\x15\xc7\x9d\xe4\x1f\xe7\xec\xcf\x7f\xb4\x01\x54\xbf\xd3\xa9\x58\x69\x54\xeb\x73\xab\xf4\x50\x71\x7d\x3c\x91\x54\xac\x19\x02\x39\xfe\xf8\xe3\x8f\x3f\x46\x5f\x4f\x03\x89\xf5\x61\x25\x0a\xfb\x9e\x3c\xc2\x2f\xe4\x42\x3d\x97\xcd\x16\x29\xcf\x7e\x60\x2a\x10\x33\x64\xfd\x29\x16\xde\x0c\xa8\x3b\x0c\x10\x0e\xd1\x1c\x7b\x68\x5e\xf7\x4d\xb9\x57\x63\x08\x9c\xe2\x71\xec\x73\xc7\x85\xd6\x4f\x85\x83\x99\x8e\xde\x5c\x25\xc2\x04\x13\x86\x0d\x14\x6d\x00\x3f\xec\x44\xfd\x15\x8e\xd6\x9f\x81\x32\xec\x07\xbd\xa2\x0a\x6e\xed\xb7\xb1\x36\x31\x6a\xdf\xc6\xf1\x8a\xa3\x44\xa2\xb1\xce\xf7\x98\x1d\x20\x47\xd9\x8e\xb3\x6f\xcc\x29\x91\xf2\xd4\x5b\xeb\xf9\xf0\xee\x01\x53\x54\xbc\xae\xb1\xea\xde\x64\x25\x51\x42\x93\x44\x0c\xf5\xa8\xcb\x8e\x57\xa5\x24\x33\x56\xef\xa5\x10\xa7\xfa\xb5\x6c\x30\xea\x16\x08\xff\x18\x5f\x9d\x54\xe0\xa4\x09\x56\xa2\xf2\xee\x88\x9e\xbb\xb9\x11\x59\x3d\x5d\xb0\x95\x4a\x25\x3e\x8c\x5d\x75\xf6\x8e\x03\x57\x6e\xd7\xe4\xb6\x69\x9a\x60\x31\x7c\x18\x02\x0c\xf5\x5a\xa5\xd2\x92\x83\x35\x4c\xa8\x4f\x25\xae\x48\x5f\x76\xd3\xa9\x37\xa3\xf7\xff\xfb\x57\x8f\x71\x76\x9b\x52\x5a\x53\x34\x54\xfe\xa8\x32\x3b\x43\xd7\xd3\x9f\x0c\xcc\x2e\xba\x12\x0e\x5d\xb1\x47\x01\xd8\x82\x55\x65\x4d\x0b\xe6\x02\x55\x65\x62\xc6\xad\x7b\x5b\xdd\x8c\xeb\x41\xca\xd0\x28\x0e\xbd\x3b\xfb\x32\xcf\x6c\xfb\xb2\x3b\x98\x74\x3c\x75\xa5\xce\x27\xdf\xb5\xe0\xfe\x38\xa3\xa9\x2b\xc6\x3c\x64\xc5\x4e\xe4\x17\x44\x0a\x1d\xa8\x18\x8b\x54\xb6\xee\xb1\xda\xfd\x70\xe7\xd6\xa1\xc3\x4c\x7c\x47\x49\x84\xe3\x54\x3c\x5a\xea\x90\x69\x44\x46\x9e\xec\xd3\x1d\x4b\x90\x4a\x1d\xd1\x10\x9f\xbf\xd0\x1a\xa7\xcc\x02\xab\x39\x5f\x12\xf6\x74\x94\x44\xc8\xea\xd8\x5b\xf7\x70\x14\x56\xcc\x07\xfe\xe1\x0f\xd0\xa6\xe5\x53\xba\x9a\x8e\x24\x71\x2e\x3a\xd6\x98\x72\x03\xaa\x3a\x67\xa8\x13\xd2\x5d\x8d\x8a\x42\x6f\x6c\x76\x93\x1d\x0e\xfd\x9c\xf1\xef\x89\x8e\x74\xec\x51\xc1\xf8\x74\x0b\x0d\xbf\x86\x77\x53\x13\x4a\x91\xf1\xb6\x7b\xb5\x05\x24\x0f\x7b\xd7\x94\x30\xe2\x3e\x79\xf3\x2c\x46\xd5\x11\x4d\x75\x88\x15\xaf\x47\xf1\x9e\x0d\x1f\xac\x66\x81\x40\x3e\xac\x3c\x7f\xb6\x71\xe2\x0c\x40\x54\xb3\x10\x10\xf2\x64\x9f\xcd\x0f\x10\x55\x73\x03\xa2\xfb\x4d\xcc\x50\xbc\x5b\x55\x9b\xe7\x4f\x14\x4d\xdb\xa3\x12\x3d\x3d\x6c\xc9\xe0\x0b\x5e\xb3\x4e\x22\x5b\x6f\xb3\xfe\x91\x16\x24\xe8\xbf\x83\xcb\x20\xb6\xc2\x7a\xeb\xe5\x6a\xbf\x7e\x5c\x6e\x56\x8b\xed\x6a\xbf\x5d\x2e\xee\x57\xdd\x18\x93\x2a\x31\x84\x51\x74\xc2\xd1\x52\xa7\x34\xb4\x3b\x17\x4e\xf7\x5d\xf9\x92\x4d\xaa\x7d\x3a\xe5\x04\xcb\xb1\xd8\x86\xdc\x42\xee\x64\x54\x67\xdf\x41\x9d\x8a\x04\x63\x8d\xfb\xf2\xf0\x08\x1f\x5d\xba\xf9\x32\xe3\x76\xe0\x3f\xa1\x6c\xc1\xa3\x86\x66\x7d\x74\x46\x39\xee\x90\x60\x1a\xaf\xed\xd4\xd5\x56\xb7\x65\xae\x47\xec\x72\x2d\x78\x2c\x5d\x9c\x85\xc2\x97\xa8\x19\x34\xd3\x50\xd5\x82\x27\x28\x43\xb9\x13\xe5\xb9\xd7\xde\xb9\x9e\x2a\x68\x49\x0c\x26\x7d\xff\x2a\xcb\xe3\x68\x62\x48\x21\x5d\x44\x60\x73\x88\xe7\xaa\xd4\xe7\x81\x85\xce\x54\xba\x62\xfe\x4e\x49\x05\x71\x3a\xc9\xca\x2f\x22\xad\x3e\x2f\xd7\x2a\x0e\xc8\x10\xb3\x64\x0b\x60\x6d\x6c\xd3\x4c\x4b\xfa\xfd\x97\xe8\x30\xc5\x22\x38\xfa\x8a\xb7\x71\xfb\x90\x90\xee\x02\xad\xe9\x47\x94\xc1\xa2\xcc\x5e\xd4\x9f\x85\xba\x90\x39\x18\x0f\x86\x34\x4d\xb9\x07\x1a\xb9\x1f\xe1\x40\x7a\xd3\xc6\xc4\xf8\x69\x40\x6a\x75\xe4\x2a\x90\xa2\x81\xfc\x3d\x5f\xa9\x36\x59\xff\xfc\xf6\x77\x53\x2f\x08\x68\x84\x9b\xf7\xa4\x55\x0c\x41\x12\x62\x47\x66\x6f\xfd\x2f\xbb\x3f\x9b\xd0\x97\xbd\xb7\xa7\xac\x78\x3a\x37\xa7\xf3\x25\xd1\x6e\x36\x4e\x80\xc0\x24\x28\xca\xfb\xb2\xbd\x5d\x39\x5b\xe6\xf1\xe4\x82\x90\x05\x58\x2f\x5a\x14\xf5\x47\x37\x7f\x21\x94\x06\x2f\x65\x07\x75\x5d\xfd\xe1\xff\x1a\x05\x0a\x9b\xc4\xd6\xf4\xc9\xcb\xa9\x4b\x88\x22\x8a\xd6\xf6\x3b\x50\xaf\x45\xa6\x44\xbe\xc9\x3a\x72\x26\x90\x30\xa1\xb6\x68\x55\x35\x07\x31\xd5\xda\x01\x42\x65\xe0\x78\x3d\xcd\xb9\xb6\xbd\xbc\x7e\xa9\x87\x58\x08\x11\x0e\xf8\x0b\x6d\x78\xf2\x03\xaa\x6c\x88\xbd\x1c\xff\xa0\x58\x0b\xd4\xaf\x7b\x10\x0d\x54\x99\x78\xae\xb2\xa3\x4f\x70\x81\xc5\x29\x12\xcd\x6f\xce\xea\x0d\x1a\x6f\x4b\x30\x37\xdb\x7d\x0d\x04\x98\x02\x74\x1b\xf5\x34\xbc\x8e\x44\xe3\x9c\xaf\x2e\x14\xa5\x80\x69\x8d\xe4\xb3\x53\x99\x75\x3e\x8e\x12\x92\x80\x62\x87\xdc\x52\x71\x16\xba\x3c\xb5\x3f\xd3\x2a\xde\xda\xd8\xc1\x0f\x24\x10\x59\xc3\x90\xd7\xb1\xf2\xe5\xff\x29\xa4\x80\x44\x59\xca\x9e\x39\xe7\x58\xa2\xbc\xb3\x5a\xe2\xfe\x72\x38\x23\xb8\xc3\x3e\x9f\xeb\x57\xd4\x36\xf2\x7f\xe7\x0c\xe5\xee\xca\x02\x9a\xec\x08\xf7\xe2\x5c\xa8\x49\x59\x0b\xb8\x96\x58\xca\xd7\xf5\xc3\x39\x9f\x5f\x4d\x41\xc4\xc2\x3b\xb1\x3f\xc9\xff\xf4\x1b\x5e\x77\x5f\x05\xb3\x9e\xf5\x37\x77\xb7\xc3\x25\x0a\x04\x4b\x1d\x8e\x7e\x2c\x5d\x3f\x7a\x83\x04\x0f\x82\x4e\xf3\xe0\xc6\x8b\x5c\x5e\x99\x10\xc2\x08\x2c\x49\x3c\x6f\x9e\x1e\x56\xbb\x1f\xab\x97\xad\xa5\xf5\xee\x77\x3f\x36\xab\xed\x8f\xa7\xfb\x5b\xff\xdd\x32\x62\x21\xf5\x3e\x77\xe7\x29\x14\x19\x24\x49\x50\x00\x06\x65\xa9\x2c\x40\x0b\x25\x3e\x47\xbb\x32\xc8\x58\xe2\x7c\xc7\x38\x63\x61\x05\xe0\x6d\xe3\xe8\xe6\x73\xeb\x62\xe1\x19\xf0\x19\x48\x13\x12\xe5\x84\x9b\x70\x9f\x1a\xb1\xe7\xff\x2a\x2f\x98\xdc\x7e\x93\x06\x68\x16\xe7\x9d\xfc\x47\xb7\xd8\x28\x89\xd9\xab\x3c\x7f\x6e\x44\x05\xab\xc3\x61\xd2\x08\x1f\xff\x6c\xa3\x23\x5b\xf5\x80\xe6\x16\x6a\xac\xb2\x83\xb6\xaa\xc2\x50\xfd\x14\xf5\xb2\xac\x2a\x18\xa9\x7b\x99\x20\xe2\xb2\x7d\xfa\x4f\x5a\xdb\x39\x3c\x7b\x95\x26\x88\x53\x69\xaf\x72\xac\x10\xe7\x6a\xf7\xf1\xff\x0c\x4f\xc9\x08\x75\xb4\xab\xef\x65\xae\xef\x60\x56\xbe\x52\x9a\xb0\x5d\xa0\xdb\x10\xff\xe9\xe1\x61\xbd\xdd\xae\x9f\x1e\xf7\xcf\xab\xcd\x72\x84\xfb\x37\x51\xc0\xb0\xbb\x8c\x72\xc7\xed\x34\x1b\x9b\x27\x4a\x13\x85\x29\x32\x99\xee\xc4\x59\xc1\x45\x35\xc3\x0f\x12\xa9\x45\xf8\xa3\x60\x40\x59\x37\x6b\x55\x76\x99\x45\xd9\xee\xe7\xd3\x34\xd2\x10\x2e\x23\x47\x35\xb5\x41\xeb\xe5\x32\xe6\x76\xb8\x19\x44\x34\x89\x26\xbb\xca\xdc\x76\xed\x22\x4a\x13\x47\x56\x9e\xd5\xba\x69\xe6\x65\xd3\xf8\x4e\xa9\x89\x53\x8e\xd8\x36\x1b\x05\x58\x2e\xe2\xf8\x97\xd1\xc4\x60\x68\x56\x8b\x1c\xa6\x71\xb5\x1f\x22\x2d\xc4\xdb\xd9\x1a\x81\xaf\xe7\x4d\x87\x99\x04\xad\x6d\xda\x49\x6d\x6e\x3b\x48\x8b\x61\x34\xc4\xc2\xdc\x3f\x6f\x7e\xfc\xb3\xfb\x5b\xc2\x95\xe3\x43\xa1\xa3\xf0\x63\xbb\x9f\x90\xdb\xc9\x19\x99\x14\x08\xa6\xd9\x0f\x89\x15\xa3\x96\xd5\x64\x96\x31\x65\x6b\xd5\x2f\xdb\xdb\xee\x9b\xc0\xd2\xfc\x4d\x55\xfe\x09\xc5\x54\x32\xc9\x30\x48\x91\xbc\x20\x94\x1a\xe3\x30\x4d\x12\x10\xe9\x5c\x44\x97\xa2\x81\x43\x59\x7d\xce\x55\x55\x4c\xc2\xac\x7e\xa4\xc9\xaa\xba\xf9\x81\xd6\x77\xdd\x29\x74\x82\xd1\x93\x3a\x57\xef\x53\x24\x98\xe1\x24\x54\x03\xe3\x65\x0f\x6d\x99\xd1\xc1\x31\x5c\x05\x69\xdc\xf3\xdf\xf4\x6c\xd3\x63\x72\x2b\xda\x80\x98\x4d\x76\xd3\x2f\xf4\xf5\xa5\x49\x25\x89\xa8\x13\x8f\x6a\x23\x37\x6f\x03\x38\xbe\x94\x54\x12\xee\x30\x66\x6b\x55\x5e\xf8\x2f\x49\x93\x6a\x40\xa8\x95\x7f\xcd\x06\x40\x7b\x23\xa8\xc6\x89\xf4\x2a\xea\xd7\xbd\x35\x7e\xdf\x37\xa5\xfb\xaf\xf9\xdd\xc5\x88\x34\x90\xc6\xa3\x33\xad\x4e\x58\xd8\x9d\xcf\xd8\xb4\xc0\x9b\x67\x8c\xc8\x68\x46\x26\x11\xf2\x21\x9b\x2f\x7a\x44\x46\x0a\x8a\xe2\x84\xd8\xae\x3a\xfa\x86\x31\x82\x11\x86\x0e\x86\xd2\x28\x9a\x32\xd9\x1b\x7a\x58\x92\xa9\x3d\xe5\xb2\xcc\xf5\xb8\xb9\x64\x14\x97\x3a\xec\xed\x47\xa0\x6e\xd6\x7a\x57\x62\xbb\xb3\xfb\xff\x2b\x3f\x58\x01\x47\x3e\xdf\xd0\x0f\x70\x72\x8f\x75\xcc\x29\xf7\xf7\x51\xcb\x71\x51\xd7\x68\x66\x65\x6c\x77\x9b\xc5\xe3\xf6\x6e\xb5\x59\xdc\x74\x49\x96\x81\x80\x38\x2f\x4e\xd4\x7d\x2b\xf3\xf9\x9e\x97\x01\x42\x2d\x35\xab\xc2\x2c\x77\x03\xaa\x7c\x87\xea\xd3\xff\xe0\x99\xe8\xd2\x40\xc2\xb1\x04\xb0\xc8\xf3\x36\x59\x9c\x75\x74\xb7\xa3\x2c\x6f\xf4\xd7\x6d\x55\x9e\x36\xc3\xf0\xd7\x80\xe0\x18\x8a\xca\x09\xfa\xca\x98\xd8\x0a\x9b\xa1\x2b\xe7\x2d\xe4\x8d\x18\xc0\x41\x8c\x89\x25\x32\xcc\x51\x9d\x25\x53\x99\xa8\x3e\x77\x1f\x83\xa3\x0a\xe5\xc5\xef\xcf\x6f\xa2\xe7\xb3\xa8\x20\x08\x6d\xf7\xe8\x60\x6d\x0a\xef\x10\x55\xe6\xe4\x05\xb8\x1b\x13\xc6\x0a\x91\x5d\xaa\xcd\x61\xca\x11\x0e\x50\x05\x21\x27\x18\xbe\xec\x3e\x00\x1c\xc1\xce\x59\x46\x7e\xfa\x21\x51\x12\x20\x64\xee\x2d\xcb\xf3\x31\x83\x56\x05\x91\x60\x88\x2b\xdf\x42\xb3\x52\x65\xfd\x59\x37\x70\x9c\x8e\x89\x19\xc1\xbd\x29\xab\x1d\xc4\xd8\xe1\x3e\xfc\x71\x1a\x46\x78\x0e\x47\x18\xb0\xd3\x76\x3e\x3b\xf9\x2a\x79\x50\x01\x8d\x25\xce\x19\x44\x15\x6f\xda\xa7\x3b\x98\xfc\x2a\xa0\x49\x8c\xb9\x45\xd7\xdd\xdc\x2c\x93\x28\xbc\x5a\x89\x1b\x3e\x72\x15\x24\x26\xf0\xae\x7e\x6e\x52\xfc\x06\x9f\xe3\x79\xa1\x02\x1e\xc4\x41\xec\x05\x84\x2d\xda\x61\x5c\x95\x56\x01\x27\x0c\xdf\x40\x8c\x04\x9f\x97\xbb\x39\x35\x2d\x3f\x34\xb6\x6a\xa1\x98\xee\xbd\x8a\xce\x51\xe9\x1a\x93\x6d\x72\x37\x38\xb5\x62\x70\xb8\xdb\x63\x59\xf2\x27\x64\xfe\x5e\x70\xce\x31\xb1\x78\x58\x3f\xae\x36\xfb\xc5\xcb\xb2\xcd\xeb\x26\x58\x60\x15\x70\x15\x20\x64\x0a\x7b\x43\x37\xe5\xc4\xb7\xa1\x5d\xcf\x6d\x7f\xc9\xef\x6c\xed\x15\xce\x5b\xcd\x5d\x14\x22\xc7\xff\xe7\xcf\xa7\xc2\xd4\x13\x9e\xd6\xa8\x0c\xfd\x60\x75\x65\xc0\x25\xfe\xf5\xba\x68\xca\x65\xc7\x37\x57\x81\x50\x52\x53\xdf\x0a\xb9\x7d\xcb\xb7\x59\xd5\xf7\x42\x66\x33\x11\x7e\xc5\x70\x66\xf4\x57\x7f\x76\xcd\x10\x3e\xae\xca\x0a\x46\x51\xb3\x0a\x24\x23\xd8\x28\x76\x84\xa3\x81\x94\xf2\xb7\xb9\x33\x49\x09\xe8\x9f\x6d\xc1\x5e\x6e\x06\xdd\x95\xd5\x85\xec\x80\x0a\x14\xd1\xc4\xcb\x04\x2c\x7a\x5d\x46\xd1\xa8\xd7\xf6\xfe\xba\xf7\xf7\x7a\xbf\x4c\x05\x0a\x9c\x71\xfa\xcb\xcd\xca\x5f\xaf\x0e\xa3\xc4\xed\xbe\x43\x95\xf4\xc1\x7a\xa9\x02\x0d\xa1\x74\x7d\x45\x9b\x00\x4c\xc8\xfb\xd3\x06\xb7\x0a\x20\x88\x70\xbb\x3d\x66\x45\x17\x4f\xf9\x43\x89\xd5\x80\x13\x1a\xb1\xa4\x78\xd1\x17\x11\x4f\x0f\x84\x72\x9f\x32\x61\x64\x6d\xa1\x87\x22\xfd\x7f\xa7\x37\xa7\x02\x93\x32\x69\xf3\x68\x8c\x80\x9e\xdb\xa4\xc7\x16\xf0\x1e\x4a\xf5\xf6\x7b\x38\xb9\xcd\x26\xb5\x02\xa3\x8e\x37\xbc\x7a\xd9\xd8\x96\xe5\xf0\x8e\x84\x61\x2c\xb1\x12\xa4\x44\xb1\x01\xa1\xd7\xa8\x12\xf6\x24\xff\x03\xaa\x99\x56\x5d\xfc\xdd\x0f\x43\xa3\x20\xea\x4f\x7c\x7d\xdf\x56\x21\xa1\x9c\x77\x42\xe9\xa2\xd2\x4b\xe1\xe0\x5d\x2a\x8c\x83\x10\xab\x7b\x4f\x3f\xdb\x17\xd4\xef\x82\x23\x3b\xe5\x76\x90\x2d\x8f\x61\x74\x77\x3c\x89\xec\x30\x55\xe7\x9b\x18\xc6\x4f\xff\x1d\xfd\xd8\x38\x4c\x50\x05\xec\xbb\x78\x1f\x6c\x31\xed\x2d\xb0\x60\x6e\x51\xd7\x53\x01\xb3\xd1\xe7\x69\x94\x72\x17\x6b\xae\x74\xd6\x58\x7f\x9a\xa9\x3a\x9d\x23\xf0\x8e\x9e\x45\x48\xa5\x55\x09\x69\x17\xd7\xa3\xcc\xa0\x68\x7e\x9c\x8f\x99\xce\x9a\x4f\x27\x1f\x88\x9a\x39\x63\x32\x9a\x0a\x59\x9a\x78\xb6\xc9\xde\x05\x34\x7b\x51\xc9\xac\xa9\xf7\x27\xdb\xf0\x9a\xbe\x5b\x21\x4b\xa5\xa0\x1e\xef\xa3\xf7\xfe\x27\x32\x65\x4d\x81\x94\xc8\xd5\x22\xab\xda\x3d\x7d\x26\x64\x51\x61\x92\x50\xab\x85\x58\x1e\x9c\x64\xfe\xd0\x0e\x76\x3c\x36\x25\x54\xb9\xab\xfb\x91\xd5\x4d\x59\x65\xea\xd2\x4f\x49\x85\x29\xd3\x89\x6d\x89\x34\xe7\xaa\x70\x96\x34\x58\x6a\xb9\x85\xda\x72\x89\xc6\x1f\x90\x3c\x41\x66\xbe\xad\x4d\x4e\x7e\x9f\x54\x1c\xe9\x05\xb6\x72\xf6\x2c\x3e\xe1\x62\x84\x76\x71\xd5\xfa\x61\xf5\xf4\x32\x94\x85\x51\xa1\x8a\x6c\x9d\xef\x5c\x43\xd5\x06\xcd\xee\xcf\x3a\xa1\xa1\xad\x28\xe9\xb1\xf0\xb5\x0a\x0d\x13\xc4\x74\x91\x98\x35\x09\x1c\x8a\x5a\x8f\x2e\x3d\x0a\x24\x24\xee\x96\x38\x68\xca\x15\x9b\xaa\xf1\xf4\x88\x22\x16\x62\x81\x2a\xf3\xb1\xea\xef\x65\x73\xc5\x6c\x59\x45\x91\x50\x96\xab\x8b\xfa\x85\xb7\xf0\x5e\xe6\x67\x25\xca\x3e\xdb\x57\x51\x24\x43\x6c\x16\xf8\xe8\x7e\xb7\x59\x38\xe4\x97\x8a\x22\x93\x60\x29\xfa\xcf\xd7\xf2\xac\xc5\x67\xf6\xf7\xd0\x2e\x2a\x22\x91\xdd\xba\xac\xd2\x99\xef\xf2\x75\x07\x39\x76\x5c\xbe\xff\x6b\xfb\xb7\xcf\x47\x09\xb2\xa8\xb3\xba\x53\xe8\x1c\x3f\xc9\x88\x50\xeb\x20\x8c\x13\xec\x54\x37\x50\x1d\x5d\xc7\xe7\xbf\xdd\xf7\x72\x40\x6d\xf7\x76\x4f\x3e\x5f\x48\x8d\xfb\x41\x10\xa1\x5a\x40\xaf\x7e\x79\x77\x85\x27\xae\xa2\x38\x8d\x7d\x0e\xe7\xa1\x29\xfe\x88\x09\x10\x35\x2a\x4e\xa7\xfc\xf3\xae\xac\x7a\xe7\x99\x76\x4f\xf8\x5b\xc1\xdc\xfc\x6e\x7d\x01\x54\x50\x11\x25\x24\xd4\x9d\x9f\x54\x76\x3c\x1f\x1f\xcb\xde\x7b\x7a\xee\xcd\x8d\xa8\xb1\x8a\x53\x4d\x79\x3a\x9f\x9c\x56\xff\x78\x44\x02\xd6\x7b\xdf\x3e\x40\x5c\x00\xc7\xf7\x29\x31\x04\x51\xd1\xf7\x6d\x12\xe1\x7f\x36\x97\x29\x76\xa3\xdb\xf5\xa7\xee\x7a\x3d\x2a\x4a\x99\xb4\xce\xea\xd5\xe7\x09\x7d\x35\x6a\x17\x93\x4c\x82\xe3\x48\x28\xdb\x96\xac\xcb\x7a\x88\x43\xc0\x03\x88\xd9\xb7\xb0\xa4\x8e\x8b\xaf\x22\x19\x02\xea\x53\xa0\xbe\x9a\xdb\xec\x6c\x60\xdd\x67\xa9\x2a\x92\x52\x87\xdc\x1a\xcd\x59\x98\x37\x1c\x4f\x79\x07\x82\x50\x91\x66\x84\xb2\x01\xf3\x3c\x6b\x3e\x1f\x07\xd6\x13\x6e\x14\x44\x09\xbe\x29\xfe\xaa\x97\xed\x9a\x6e\xb7\xd6\xc9\xdd\x31\x91\x49\x8d\xc3\x6e\xbc\x43\xb5\x28\xf4\x16\xad\x38\x2a\x47\x75\x1c\x57\x80\xfc\x87\x08\x37\x96\xd2\xe1\x78\x3a\xae\xda\xaa\x48\x40\xe3\xd4\x95\x56\xf6\x95\x28\x34\xaa\x57\xcc\x4f\x4a\x12\x06\xa1\x76\xaa\x0c\x3d\x6e\x6d\x74\x75\x24\x8c\x22\x2c\x2e\xdd\x9c\x3f\x71\xde\x66\xc5\x61\x5b\xa0\xb4\xac\x1f\x60\x92\xd0\x71\xab\x6e\xfa\x04\x6c\x72\x96\x28\x34\x08\x5a\x84\x5f\xa0\xce\x0d\xdc\x97\x4d\xd3\x41\x0c\x15\x89\x92\x18\x7f\xcc\x73\x2e\x3e\xff\x08\x03\xff\x67\xc2\x59\x10\x5e\xfa\x1d\x63\x0d\xa0\xfe\x1a\x71\x3c\xdd\xbd\x07\xc9\x41\x7b\xda\x38\x1e\x27\x33\x51\xf0\x95\xeb\x9f\x22\x34\xd0\x98\x7a\xec\x36\xf7\xc3\x99\x46\xa8\x4c\x50\xc0\xec\xf7\xa7\xfb\x97\x07\xa7\x9b\xb8\x5f\x3e\x3d\xde\xae\x07\xb9\x00\xa1\x90\x48\xd1\x99\x37\xdc\xb9\x2a\xda\x00\xdc\xac\x08\x23\x80\x7b\xcb\x2d\x88\xe6\xd5\x92\x7a\xf7\xef\xfe\x20\x37\x1c\x51\x37\x0e\xd2\xde\x4e\xeb\x81\x65\x86\x22\x29\x0f\x12\xea\x88\x59\xcb\x3c\x3b\x22\x27\x22\x2b\xea\xc5\x41\x64\x45\xdd\x5c\xc2\x44\x14\x49\x25\xc5\xe4\x17\x2b\xa2\x6d\xca\xda\x57\x2e\x15\x49\x95\x75\x0e\x94\xe7\xcf\x97\x22\xeb\x3d\x22\x50\x81\x00\xeb\xd9\x33\x2a\xbf\xa3\xff\x9a\x04\x76\x44\x10\x86\x26\x8b\xe8\x9d\x77\xc4\x8e\xba\x1d\x32\x5a\xb9\x89\xa0\x89\x87\xa3\x79\xd3\xa1\x11\xfb\xc8\x55\x0b\xe6\x9a\x75\x8a\x08\xce\xd1\xf3\x5c\x59\x0d\xf5\x3e\xf8\xf5\xc7\x75\xec\xd9\x99\x37\x8b\xed\x95\x93\xc8\x20\xb5\xca\xa1\x28\xf7\x3f\x8a\x53\x67\xeb\x6c\x8a\x48\x62\x1b\xe4\xf0\xeb\x24\xd0\x8d\xc9\x43\xaf\xfd\x74\x93\xed\x2b\xe2\xeb\x83\x6e\x77\x5b\x15\xfa\x56\x34\x10\xfa\x3b\xae\x02\x1a\xd8\xd6\xff\x80\x84\xdd\xfe\xd9\x7a\xa7\xd7\xd0\xac\xf0\xc5\x99\x50\xe8\x15\x51\x51\x4a\x61\xd0\xe5\x5d\x17\x75\x93\x35\x16\xec\x52\xd7\xd0\x7c\xfb\x32\x98\xf5\x27\x91\x06\x2b\x24\x96\x04\x0e\x75\x13\x46\xa4\xbb\x04\x43\xb5\x7b\xbb\x57\x56\x5f\xf2\x59\xa8\x37\x0c\xc7\xbc\xde\xf1\xb8\xa3\xe0\x3e\xa7\x63\x83\x58\x7f\xc7\xc0\x9f\xd7\xb2\xfc\x92\xca\xa1\x88\x96\xa1\xe5\x2c\xda\x79\xbf\x39\xe7\x03\x61\x8a\x6e\x4c\x8a\xb7\xc8\x09\x77\xdc\xe5\x68\x39\x3c\xbf\xda\x69\x08\x92\x91\x3b\x6b\xfb\x96\xa0\x58\xd6\x78\x9c\x89\xac\xb4\x81\x06\x91\xd7\x8f\xe8\x95\xe7\x6f\x87\x49\x18\xba\x49\x67\xb5\xab\xc4\xfc\x58\x2f\xe7\x8a\xe6\x8a\x18\x88\x90\x15\xff\x5d\x64\x79\xde\x26\x28\x55\xf9\xa1\x07\x91\x4d\x1c\x48\x81\xd2\x5a\xab\x97\xcd\x13\xd2\x79\xdd\xdf\x43\x1d\xa2\x52\xd9\x6f\xcf\xbb\xd1\x62\x13\x87\x10\x69\x07\xc4\x5e\xe9\xf3\x10\x28\xae\xe2\x88\xd8\x37\x47\x68\xfd\x5c\x95\xc7\x72\x59\x6a\x98\x6c\x1c\xe3\xe0\xc0\x7f\x8e\x85\x96\x2a\x89\xc9\xf5\xf7\xcc\x34\xe3\x4c\x21\x8e\xd2\xd0\x82\xca\xab\xcf\x4d\x99\xe7\xf8\x5e\x7d\xf9\xd4\xe2\x28\xa5\x28\xcc\x72\xb4\xf1\x45\x9f\x98\xc5\x91\x16\xa8\x94\xf6\x91\x15\xa8\x3b\x33\x49\x03\xdd\x28\x42\x79\x12\x79\x9a\x37\x06\x65\xa6\x82\xfa\xf5\xbe\x54\x6f\x83\x48\x34\x26\x3c\x8c\x87\x06\x1d\x8b\x7a\x9b\x8b\xf7\x4e\x63\xdd\x8f\x92\x31\x56\xc1\xdb\x55\xcc\x3d\xa7\x45\x8d\x95\x91\x71\x1b\x61\xfc\x21\x6d\x5b\x5a\xab\x42\xdb\xc6\xdc\xe0\x6b\xe3\x28\xc1\x10\xe2\xe4\x79\x6d\xcd\x15\x44\xb9\x8a\x63\x1e\x61\x41\x74\x7b\x3b\x7a\x8c\xb1\x14\x08\x4c\xeb\xd9\x47\x37\xa2\x78\x5b\x9e\x7d\x5c\x13\x33\x4a\x31\x73\xbe\x2d\xa7\x68\xa9\xf6\x18\x78\xdf\xdc\x5d\x79\x7a\xea\xab\x91\x31\x4b\x34\x9a\x08\xff\x78\xba\xbd\xaf\xda\x49\xfd\x33\x2b\x26\x1f\x4e\x58\x14\xcb\x9e\xe2\xe1\x0a\x43\xf3\xe8\x66\x15\xf3\x40\xb9\xd6\x51\x9b\xa0\xcc\x80\xa4\x55\xcc\x9d\x9b\x65\x0d\x85\xb6\xfd\x15\x7f\x35\x3c\x4e\x90\xdf\x22\xf2\xf2\x55\xf4\x7f\x14\x18\xd9\x59\x6e\xf4\xf6\x7c\x82\xea\xb6\x12\x87\xa1\x1b\xb7\x8a\x39\xe7\x58\x17\x79\xf0\xfa\x6f\x3e\xd0\x88\xd3\x80\x23\x98\xfa\x01\x72\x24\xae\x62\xa7\x79\xbf\xaa\x54\x14\x91\xd1\x1d\x4e\x65\x88\x71\x43\x9b\xda\x3a\x28\x22\x5c\x50\xb1\xbe\x6a\xa9\xab\x38\xd5\x61\x6a\x3a\x7c\x2e\x6e\xd5\x3e\xcf\x89\x85\x8e\xf1\x95\x70\xb4\x92\x91\x04\x87\x8a\x65\xa0\xbd\x4d\xe5\x43\x56\x8c\xf1\xdc\xfd\xf9\x65\x68\x4c\xe2\x5b\x9c\xe5\x05\x2e\xc1\x8f\x4a\x92\x58\x0e\xe5\x10\xa6\x67\xe1\x8c\x3a\xe5\xad\x9b\x52\x54\xda\xaa\xf5\x6e\x4f\x42\x4d\xf5\xff\x87\x19\x81\xff\xb0\x92\x72\x4c\xb8\x43\xbb\xf6\x5d\xf9\x95\x4a\xbc\x8a\x25\x50\x2c\x4e\x99\xb2\x7a\xbb\x6a\x2f\x72\xe5\xa3\x46\x59\xf5\x84\xf2\xd7\xb8\x83\x30\x19\xa7\x12\x4b\xa2\x6c\x03\xec\x0a\x84\x45\x14\x8c\xde\x50\x4d\x99\x37\xb3\xb4\xb6\x74\x48\xf1\x82\x66\x00\x86\x1f\xef\x71\xb1\x4e\xe2\xd4\x39\x9b\xfa\x09\x8f\x90\x24\x67\xf0\xe5\x46\x01\x53\xb8\xdb\xb5\xf1\xfc\x06\x0e\xdd\x9f\x0d\x43\x3e\x03\x34\xaf\x6e\xe7\x5b\x9d\xab\x72\xd9\x01\x03\x55\x6c\xb4\x95\x9a\x6d\x2c\xf8\xdb\xf8\x33\xd2\x00\x38\x0f\xa6\xf6\xce\x6d\x58\x3f\xd5\x58\xf2\xf1\x3b\x0d\x85\x85\xa5\x7a\xf3\xc4\x83\xa3\xf2\x0c\x6f\x00\x25\x4e\x80\x75\x57\x9d\x4f\x5d\xea\x44\x89\xb1\xee\x38\x52\xa8\xb7\xed\xe1\xd0\x6e\x6f\x03\x76\xaa\xa2\x71\x68\xa5\x2a\xf7\xce\xdf\x6d\x79\x9e\x24\x7b\x34\x8e\x22\xec\x96\xaa\xbd\x82\xa2\xa9\x9f\x1d\x11\x6c\x68\x0c\xa8\x68\x4c\x83\xd8\xb2\xd5\x7f\x39\xdb\xda\xd5\xed\xcb\x28\x24\xa5\x31\x57\xe8\xdc\x61\xca\x0a\xb2\x43\x61\xa5\x45\x30\xf9\x19\x5f\x10\x58\xf9\x3e\x07\x96\x6c\x57\xa5\x75\xff\x35\x46\x7a\x21\xda\xed\x6b\x76\x72\xb8\x6a\x8f\x07\x9b\x7d\xcc\x94\x72\x89\xa2\x2c\x4f\x9b\xf5\xcb\xc3\xf2\x69\xed\x63\x70\xca\x02\x83\x30\x00\x0b\x04\xf2\x45\x86\xd9\xf9\x47\x19\xb1\x0a\xfb\x56\x4c\x2e\x2b\xb5\x63\xb1\x4f\x46\x31\x30\x6e\x9f\xea\xa0\x4c\x03\xd1\xb9\xd9\x7c\xc4\x7f\x94\xa7\x91\x53\x48\x7a\x06\x64\x0d\xb5\xbf\xfc\xbe\xcd\xc0\xab\x49\x84\x47\x13\x17\x8c\x1c\xa0\xb1\xfa\xc9\x8e\x4e\x3c\x8c\x31\x69\x42\xac\x89\xb8\xd0\x7a\xdf\xa6\x91\x95\x1e\x4f\x97\x84\x1a\x67\x7c\x51\xe8\xdb\xec\xbd\xde\x95\x5e\xe5\xd4\xdf\x9f\x44\x10\xec\xb0\x95\x95\x50\x6d\xb0\xbf\xff\x2f\x72\xc0\x86\x21\xc4\xbf\xc3\xff\x9d\xdc\x28\x1e\x46\x88\xb8\x6f\xb0\x56\x3c\xe3\xb9\xa7\x28\x57\xc4\x18\xdf\x4a\x79\xc8\x0a\x18\xcf\x13\xae\x03\xd4\x61\xde\x9f\x8b\x5a\x18\xb8\x45\x09\x06\xdb\xaf\x9e\x2c\x76\x34\x4d\x23\x3c\xd3\xbf\x44\xa1\x45\x37\x83\x52\xc1\x70\x0b\x72\x8a\x56\x37\x5e\xae\x68\x22\x0a\xa0\x68\xaa\x42\xac\x16\xde\x2d\x97\x43\x48\xb8\x3f\x8f\x20\x29\xea\x3b\xdc\x3c\x3f\x3f\xdd\x77\x7f\xa4\xc2\x03\xa3\x37\xe8\xbb\xf5\x78\xbe\x52\xa0\xa3\x82\x4a\xd5\x07\x52\xdd\x7c\x9d\x54\xaa\xae\x6e\x38\x54\xa4\x01\xde\xca\x76\x69\xd8\xe0\x8e\x3b\x6b\x2a\xd3\x0e\xd4\x18\x5e\x89\x76\xe1\xba\x28\x63\x52\x09\x76\xee\x3a\x02\xba\x57\xd4\xf5\xbf\x48\x09\x8a\x76\x25\xeb\x53\x55\x16\xcd\xa8\x6c\x42\x95\x10\x98\xe4\x6e\x44\x03\xa9\xff\xa3\x26\xb6\x03\x5a\xb7\x8b\xe5\xba\xfe\x29\xb2\x26\x2b\x0e\xa8\x69\x3f\x69\xe1\x51\x9d\x1a\x21\x26\x16\xea\xa3\x4b\xd7\x42\xe0\xb5\xed\x8f\x22\x2b\x9a\x7d\xe7\xf5\x5a\x95\x47\xd4\xf9\x19\x9f\x0e\x84\x88\x1c\x45\x46\xdf\x7c\x5a\xa7\xa2\x1d\xfc\x6a\xc6\xe7\x04\x43\x03\x7b\xd1\xf5\xa9\x5f\x57\x4c\xc4\x7d\x4d\xa2\x80\x8f\xf2\x82\xe4\xac\xa8\x21\x61\x82\xdb\x74\x79\x84\x07\x68\x5e\x4b\x1d\x7f\xc9\x8d\x57\xd4\x70\x96\x50\xaf\xdc\xb3\x3b\x9f\xba\x48\x9e\x1a\xb0\x52\x10\x3b\x10\xc7\x21\xc5\x40\xb1\x80\x69\xac\xaf\xd8\x5d\xc7\x22\xcd\x90\x38\x31\xfb\x15\x2c\x48\x4c\xe8\x6a\x84\xb7\x9f\x85\x38\x66\x0a\xf5\x5f\x90\x98\x3e\x19\x29\x42\x9c\x99\xbb\xd5\xe2\xc1\x76\x36\xf6\x56\xed\xae\xfb\x66\x43\xa4\x75\x35\xfd\x5c\x35\xaf\x4b\x51\xe9\x79\xfd\x01\xc5\x42\x29\x50\x72\x71\x09\x79\x9d\x9d\xeb\x4b\x3f\x8d\x76\x88\xc6\x88\xb4\x7e\x2d\x3f\x2c\x3e\xc5\x1f\x30\x91\x54\x88\x3c\x54\x6f\x59\x71\x40\x33\xf5\xe8\xdb\x45\xb3\x8b\x45\x44\x3b\x30\xf2\x28\x81\x3f\xcf\xe9\xe1\xcf\xba\x84\x2b\x16\xc5\x02\x27\xe2\x7f\x9b\x4f\x47\x40\xeb\xd4\x45\xdb\x83\x1a\x2b\xd7\xc7\xac\x68\x9e\x64\xf6\xa7\x2a\xb3\x62\xa2\x57\x32\x3e\x1b\x49\x52\x8c\xa3\xf7\x35\x34\x3d\x61\xb0\x39\x8f\x05\xf4\xb8\x1f\xcd\x49\xc2\xba\x42\x54\x1b\x34\xf7\x0b\xfd\xcd\x67\x67\x30\xf2\x17\x32\xf9\xc3\x79\xcb\x88\x62\x8a\xb8\x53\x5a\xd5\x6c\xf1\x17\x92\x8b\x8a\xc5\x01\x43\x50\xe2\xf1\x73\x5d\x98\x4a\x0c\xc5\xaf\x26\x3f\x2f\x76\xf2\x19\xa7\xb3\xc4\xea\x9f\xfb\x33\x4d\x02\x44\xb1\x8b\x36\x77\xb5\xe4\x9b\xf9\x70\x89\xd1\x44\x39\x6b\xc9\xc6\x71\xfe\x5e\xb6\xb7\x98\x8e\x15\x22\x1f\xbd\x81\x8c\x71\xcb\x2a\x3b\x40\xf3\x1d\x8a\xb2\x99\x4a\x96\x29\x96\xb4\x3b\x79\x6f\xe2\x81\x2b\xe9\x4d\xf9\xeb\xdb\x4c\x8d\x8e\xc5\xa3\x5f\x1f\x46\xfe\x11\x24\x22\x11\xc2\x37\x1e\x96\xe5\xf1\x94\x43\x5f\xb1\x62\x09\xa4\x3e\xe8\xb6\xf1\x8a\x7b\x96\x5d\x5a\xc1\x38\x4d\xb0\xf0\x8d\x00\x07\xec\x89\xf9\xe2\x0b\xe3\x8c\x2b\x0b\xd4\xfb\xcf\xb9\x6e\x10\xd8\x33\xb0\x46\x57\x8c\x1b\xc0\xe6\x5c\xbb\xad\x78\x9e\xa6\x3f\x96\x0a\x8d\xa5\x39\x87\xa7\xf2\xa5\x4b\x26\x02\x85\x91\xd8\xf7\xb3\x28\x0e\xcf\x50\x1c\xd0\x07\xa3\x3b\xca\x19\xb3\xf4\x64\xec\x84\xed\x85\x52\xd5\x19\xf4\x3e\x73\x92\xa7\x7b\x51\xe8\x0e\xf3\x76\xe5\x11\x4b\x96\x22\xa8\xb6\x12\x0d\x0c\x22\x51\x26\x13\x15\x6a\xef\xce\xf4\x57\xfe\x7f\xfe\x33\x6e\xf3\xb7\xfa\xcb\x2e\xd5\x98\x1f\xaa\x20\x45\x30\x87\x2b\xe4\x6e\xa1\xd0\x4b\x71\xca\x9a\x2b\xe6\xbc\x8a\x69\x12\x62\xcc\xf9\xeb\xd7\x2f\x7f\x89\x3a\xa6\xc9\x50\xa8\xbe\xb6\x8b\xa6\xab\xa8\xec\xca\x0e\xad\x31\x39\x13\x8b\x31\xff\x73\xa5\x1e\x27\x85\x3a\x75\x27\xf7\x83\x41\xe2\xfa\xf7\x52\x64\x65\x81\x37\x7f\x14\x78\x30\x20\x56\xe3\xb2\xbd\x06\x6b\xe1\x36\xfe\x32\x30\x24\x89\x5d\x51\xbe\xb2\xbc\x6e\x14\x84\x79\x32\x37\xd0\x4c\x5d\x5f\xbc\xb5\x47\xf7\xa6\x1a\x16\xa4\x96\x89\x65\xd9\xf0\xd9\x3b\xa0\x52\xda\xe8\x1e\xb9\x45\x26\x4c\xa3\x4b\x78\x00\x33\x8c\xa0\x8a\x04\xc6\x63\xb0\x6e\xfe\x31\x0c\xc7\x86\xef\x5f\x12\x10\x16\x39\x49\xa4\xad\xf5\x29\xb0\x36\xc2\xd7\x48\x14\x5f\xfd\x33\x1c\xee\x2e\x6f\xbc\x14\x26\x41\x6c\x99\xf5\x76\x29\xfc\xf5\xb9\x3c\x5f\x2a\x7b\xb6\xf9\x1b\x03\xf7\x3e\x3e\xe1\x0f\x58\x3c\xaf\x67\xcb\x64\x49\x94\x30\xac\x82\x39\xef\xd6\xf3\x84\x1e\xe9\xbf\x36\x02\x8b\x96\xb0\x2f\x45\x59\x1d\xb7\xd0\xce\x94\xaf\xca\x7d\x09\x09\x12\xe3\x00\x5e\xfb\xa6\x3c\xe5\x5e\xc6\x7b\x7e\xc9\x4b\x48\xa4\x71\x7a\x61\xe2\xb3\x2b\x7f\x42\xf6\x6d\x72\x3e\x6a\xed\x9e\xff\x53\xca\x7e\x01\xb2\x9c\xc0\xbf\xf4\xad\xf5\xa7\x60\x41\xe8\xda\xb8\x2f\x85\x2a\xab\x0a\x72\x44\x58\x3f\x4e\xbe\x2a\xd6\x14\x97\xa4\xed\xf9\x0a\x72\xd8\x8d\xa3\x2c\x46\xe9\xd9\xdb\x9f\x0f\x8e\xa1\xa1\x12\x2a\x99\x17\x3a\xbf\x85\xf7\x8b\x12\x52\x42\x4d\x60\x9d\x94\xdb\x68\x65\x84\xcc\x49\x58\x68\x11\x93\xf2\xfc\x79\xfb\xb4\x5b\xfe\x98\x7c\x92\x45\x56\x76\xa9\x0d\x03\xf6\xae\xa4\xbb\x2f\x4d\xbf\x6c\x49\x10\xed\xc4\xdc\xeb\xb1\x94\xa7\xfb\x78\x22\x62\xac\x50\xdd\xc3\xf1\xd8\x05\xde\x49\xd2\xe6\x08\x96\xf7\xdd\xae\x85\x58\x6a\x71\xf9\x96\x1b\x21\x02\x8e\xf4\x86\xac\x5e\xf8\x98\x77\x7c\x5d\x82\x58\x29\xe2\x7d\x5f\xca\xb0\x6b\xd8\xc5\xa3\xfe\x9f\xe9\x07\x55\xaa\x7d\x7d\xdd\x36\xfb\xae\x58\x02\x76\x1f\xd0\x03\x9a\x63\x9b\xb2\x22\x7c\x7f\xce\xf7\xf5\xa2\xc6\x3d\x3e\x93\x0c\x03\xdc\xcf\x8e\x50\xbd\xe5\xb0\xab\x00\x36\x65\x39\x41\x4b\xaa\x44\x52\x12\xd8\x90\x5a\xa1\x02\x67\x23\xf2\xd1\x32\x96\x48\x63\xed\xe5\x9a\xf6\xf6\xbf\x23\x3b\xfe\xe7\x2b\x14\xbe\xf1\xed\x37\xc8\x44\x53\x82\xa5\xb7\xdb\xa7\xcd\x65\x7f\x36\x31\x44\xa4\xae\xa3\xe9\x4c\x29\xda\x9d\xba\xac\xda\xf5\x24\x47\x54\xec\x1d\xa0\xea\x40\x3b\x13\xfd\x67\x68\x82\x58\xde\x36\xe4\x5a\x76\x7f\x64\x36\x8b\xea\x54\x25\xb0\x16\x55\xbf\x66\xa7\x87\x52\x43\x7e\xf3\x69\x6b\x39\xf3\x4f\xc3\xa4\x5c\x39\x86\xf1\xe6\x5c\xf4\x00\x4f\xc5\x83\xc0\xd2\x6c\x32\x04\xb6\xed\x5f\x21\x3f\x0d\xb8\x7d\x9d\x90\x76\x77\x2a\x1e\xd2\x08\x45\x68\x1e\xdb\x6c\x65\x98\xe4\xf0\x50\x2a\x63\x55\x95\xbc\x86\x42\xf3\xfa\x21\x3e\xeb\xee\x38\x58\xef\xb5\x4a\x64\x35\xcc\x75\xbb\x79\x94\x5a\xbd\xec\x39\x5f\xd4\x51\x25\x87\x47\x22\xc0\xa2\x3c\x72\x7f\xfa\xfa\x7f\x1f\x95\xf0\x38\x0e\xb1\x5c\x21\xc5\xdb\x9b\x18\x5d\x67\x9c\xa6\x60\x2d\x01\x00\x3a\xb2\xa1\xe2\x34\xb1\x18\x8b\xfa\x7c\x5c\xd9\x27\xe3\xfc\xfa\xa2\x6e\xf3\xe1\x54\xf3\x34\xb0\xf8\xba\x36\x54\x6d\xc3\xc4\xac\x38\x8c\xeb\xfa\x9c\x02\x50\x47\xda\xb9\x11\x75\xa6\xd6\x85\x2a\xbb\xc6\x13\x67\x49\x80\x16\x8f\x50\x58\xd6\x2d\xaa\x7b\xc4\xdd\x51\x4e\xb1\x42\xf5\xf3\x8f\xed\xfd\x17\xea\x4f\x6e\x74\x12\x50\x04\x5b\x8c\x28\xfd\xff\x3f\xff\xed\x7e\x63\x12\x58\x4e\x6b\xed\x4a\xd9\x50\x39\x41\xc3\x71\x53\xc1\x3f\x89\x84\xab\x34\xe9\xc5\xaa\x11\x9f\x8c\x6e\x8d\xed\x7f\xf9\x40\x90\x27\x69\x67\x3b\x6d\x5f\x83\x36\x19\x1f\xf9\x07\x28\x9e\x68\x00\xd5\x81\x8e\xf0\xd7\x3b\xe1\xe2\x31\xc3\x71\x7c\xb7\x53\x9a\x86\xbe\xce\x85\xfd\xa4\x27\xd3\xc9\x21\x8d\x67\x57\x6a\xc2\x24\x1e\xf6\xa8\xda\x9f\x77\x93\xf9\x17\x99\x8b\x10\xb0\xaf\x76\x44\x31\xfd\xf6\xcd\x1a\xaf\xe1\x5c\x10\x1e\x39\x18\x36\xf2\x51\x1c\x19\x6c\xc6\x1b\x50\x71\x91\x24\x08\x7e\x17\x95\x7a\xcd\xde\x2f\xb3\x6b\xae\x62\xea\x91\x88\xdb\xac\x8d\xf6\xae\x64\xae\x5c\x09\x8a\xad\xba\xba\x29\x4f\x5b\xab\x0f\x3a\x9c\xe7\x4a\x0a\xe2\x4b\x79\x67\xc4\x00\x62\xaa\xb8\x85\x66\x3b\x67\x5b\x3f\x39\x37\xd8\xf9\xac\xb3\x5a\x9e\xab\x7a\x52\xf1\xe0\x3a\xa2\x98\x83\x9e\x30\x10\x04\xbd\x1f\xc0\xc0\xfd\x4d\xd1\x34\x04\xd6\xd9\x19\x35\xa3\x24\x9d\x6b\x6a\xb3\x5b\xcc\x8a\x66\x31\x55\xe3\x87\xa9\xb5\xb6\x2a\x6f\x3a\x6b\x06\x1c\xa0\x2f\x60\xa5\xbc\x4d\x4f\x8c\x35\xdf\x3b\x66\xcd\x4f\x6f\x73\xd8\xff\x46\x10\x0a\x95\xf9\xa1\x40\x8e\x75\x27\x72\xa2\xb8\x49\x68\x12\xf4\x86\x63\xf7\xe5\x21\x53\x7f\xaf\x89\x91\x06\x90\x22\xc3\xa4\xdd\x1c\x2c\xa4\xd0\xc9\xac\xab\x34\x4c\xad\x7a\xd7\x4e\xbc\xc1\xd3\xb4\x0a\x9c\x86\x82\x21\x59\x0b\x1d\x13\x56\xbf\xb2\x09\x6b\xf8\x32\x5c\x4d\xa3\x10\xd0\x99\x18\x13\x88\x1f\x90\x55\xbd\x01\x99\x1f\x21\xad\xf1\xaf\xf2\xae\x14\x36\x8b\x1f\xef\x67\x69\xa4\x84\x25\xdd\x9c\x9b\xd2\x67\x40\xea\xa2\x98\x97\x92\x90\x84\x64\x9e\xa7\x76\x7b\x1e\x54\xbd\xc6\x3f\x8b\x84\xb1\x37\x2a\xb1\x74\xf6\x2f\x37\xfb\x94\x10\x88\x4c\x6f\xd0\xf9\x79\x0b\x2a\x3b\x8a\x1c\x23\x94\xe7\x0a\x54\x56\xcf\x8b\x86\xaa\x34\x66\x0c\xb7\xc1\x36\x30\xca\xf3\xac\xee\xb6\x97\x34\x4e\xa5\x36\x83\xbc\x7a\xe0\x33\x35\xfe\x72\x2a\xe3\xc8\x19\x61\x0c\x94\xad\x54\x4a\x15\x4f\x47\xb6\xf3\x77\xde\x44\x7c\x36\xce\x48\x99\x8c\xf0\x52\xa4\x67\x4e\x6e\x60\x9a\x2b\xa5\x0c\x0c\xf2\x82\x5d\x31\xff\x6b\x48\x61\x9a\x84\x04\xa7\x7f\x6f\x33\x2c\x91\x62\xfb\x54\x74\xc1\xd3\xe4\xfc\x09\x51\xd4\x9b\x89\x59\x81\xa1\xac\x71\x7e\xdf\xe3\xfb\xc6\xa3\x80\xd9\x96\x23\xb6\x7c\xbf\x8b\xe3\xc0\xc3\x5d\xa5\x9c\x10\x5c\x9f\x8f\xe2\xd7\x4d\xa6\x5d\x29\xbc\x3b\xc8\x78\xe0\x18\xd5\x1a\xe0\x78\xf3\xe9\xbc\x07\x9c\x04\xd9\xd5\x50\x70\x66\x32\xa7\x01\x4b\xac\x30\x88\xc8\xbd\xd6\xd2\xf4\xf9\xa4\x61\xc2\x3d\xd4\xfc\xa5\xc8\xfe\x7b\x76\x12\xfa\xe5\xa4\x6a\x3b\x99\x19\x69\x42\xe2\xbe\x4c\xdc\xae\xeb\x5f\x49\x24\xab\x34\xe5\x21\xd6\x11\x74\x59\x0c\x77\x97\xb9\x4d\x2e\x4d\x35\x71\xc2\xbd\xc7\xf2\x1d\x9e\x45\x35\x91\xee\x56\xa9\xa0\x5a\x9b\x6e\xf3\xba\x29\x7d\x46\x9e\x0a\x49\x3c\xef\x1c\xf1\x3d\xc3\x72\x94\x1f\xa2\x13\x9c\x78\x05\x7c\x4c\x01\xd3\xd7\x56\xa3\xf1\x1d\x93\x2c\xc4\x19\x9d\x3b\xfe\xda\x94\x31\xa9\x52\x45\xe3\x54\xbb\x9a\xe5\xe1\x30\xac\xc1\xa4\x4a\x80\x4b\xc7\xdb\xdf\xb6\x1d\x79\x6b\x8d\xaf\x53\x09\x63\xed\x91\x45\xf1\x6d\x7c\xc0\xd0\xd8\x35\x52\xb6\x4d\x1b\x00\x8c\xda\x15\x93\xb3\x40\x9a\xa6\xb6\xa0\x78\xa8\xd0\xc1\xb0\x38\xc0\x15\x56\xc4\xdf\x55\xf2\x51\xa9\x89\xb8\x4f\x37\x3a\x22\x01\x1b\x6d\xb8\xa9\x91\x32\x0c\xbb\xbe\xb3\x6b\x53\x79\x30\x4e\x6a\x80\xe2\x6f\xbb\xd9\x3c\x3d\xfe\x6b\xb5\xf7\xfe\x26\xcf\xbb\x7e\x80\x40\x90\x76\x56\x5b\xbc\x50\x77\x6f\x45\x10\x24\x58\x72\xc2\xc5\xac\x86\x42\x47\xd7\x5e\xf3\xcb\xed\x4b\x04\x44\x3a\xfd\xdf\x36\x94\xf8\x21\x6a\x24\x8e\x0d\x2f\x5c\x04\x22\x42\xa6\x13\x9e\xff\x5a\xd9\x69\xe6\xd4\x61\x0a\x98\xc0\xac\x6b\x71\x2b\x72\xf1\xe1\xc1\x02\x22\xd2\x0c\xeb\x5b\x96\xd3\xf7\x55\xbf\x58\x44\x90\xc6\xc2\xd7\x24\x70\x09\xb3\xbe\xe8\x83\x02\x82\x20\xcc\x66\x52\x36\x73\x9b\x95\x0c\x56\x82\xe8\x18\xbf\x33\x53\x25\x9e\x21\x5e\x75\x4d\x4f\x11\x93\x14\x4b\x3a\xb7\xab\xdf\xf7\x58\x75\xff\xf1\x74\x7f\xbb\xda\xf4\x87\x15\x26\xa9\x8b\x5b\x4f\x45\x1e\xc0\xc3\x45\xcc\x34\x52\xe4\x65\x76\x58\xbe\x66\xaa\x8f\xf3\x05\xd5\x76\xed\xc5\xfb\xe6\xa0\xdd\x83\x40\x62\xf2\x83\xe7\xe1\x76\xee\x54\x2c\x10\xe0\x68\xd3\x0f\x90\xb7\x27\x9a\x5f\x8f\x45\x42\x03\x63\x1d\x7f\x30\x9b\x6e\xa7\x98\x7d\x23\xb7\x65\xde\xfd\xde\x44\x2a\x07\x53\xb9\xb1\x2b\xd4\x80\x9c\xe3\x6f\x2a\x8f\x29\x42\xee\x36\x8b\xc9\x37\xf0\x18\x8c\xea\xf3\xd6\x9d\xf8\x35\x0a\xb9\x04\x97\x4c\x49\xdf\x15\xb4\x15\xdb\x61\x18\x20\x52\xa1\xe3\x5e\xe0\xb9\xdd\xac\x51\xf6\xe5\x0d\x8a\xdf\x05\xca\x32\xfb\x71\x46\xe2\x1b\xe5\x9f\xaa\xfb\xb9\x7f\xf1\x5a\xba\x0f\x8b\x40\xd9\x98\x55\xe4\xe0\xd3\xff\x8d\x68\x80\xfa\xb3\x0b\xaa\xf0\x2a\x6b\xeb\x6b\x79\x3a\xcd\xef\xb1\x42\x8a\x38\xb4\x9e\xb0\x18\x20\xa0\x47\xa2\x3f\x87\x54\x14\xf5\xb5\xcf\x35\x54\xbf\x97\xa8\x67\xfc\x75\xb8\x2b\xa4\x4a\x3c\xa3\xc3\xe6\xd0\xb7\x60\x60\xca\x1f\x13\x12\x08\xce\xb7\x13\x34\xaf\xcf\xab\xcd\xd4\x3c\x52\x09\x45\x42\xdf\xc4\x76\x96\xc8\xb6\xb5\x53\xcf\x48\xc9\x2a\xa1\x12\x89\x0d\x62\x24\xb5\xed\x16\xfe\xea\x35\x15\xf1\x20\xf8\x44\xa4\xec\xd7\x35\x15\xa1\x75\x8a\x04\xcf\xac\xc8\xdc\xf5\x77\xf7\x02\x12\x15\x99\x01\x79\x00\x41\xaa\x16\x9d\xea\x47\xa4\x71\x22\x7a\xac\x24\x4e\x4f\x1b\xaa\x8d\xe7\x8f\x09\x13\xc4\xa4\xb7\x67\x78\xcf\xf2\xbc\x5b\x35\x8c\x0a\x71\x7f\xc5\x4a\xd0\xf9\x70\xf0\xac\x3d\x19\x24\xd6\x3f\xa8\xdd\xaf\x1f\x06\x8e\xaf\xfe\x30\xe7\xc8\xdf\x78\x58\x6d\xd6\xb7\xeb\xc5\xa3\xfd\xa5\x33\xe9\xac\x0c\x74\x6c\x89\x47\x5d\xf8\x33\xd7\x66\xba\x7c\x3d\x65\x18\x05\xa8\x7c\xbd\x7a\xdc\x4e\x68\xa2\x32\x4c\x6c\x2d\xa5\x86\xe6\x7c\xfa\x3f\x6f\x32\x17\xed\xa2\x8b\xaf\x8e\x02\x83\xe9\xcf\x2d\xbc\xf7\x02\xf2\x4a\x46\x34\x32\xf6\x51\x75\x32\x6c\x9d\xb2\xb4\x92\x91\x96\x68\xa7\xb4\x01\xed\x38\x81\x5f\x6f\xf7\xee\x63\x44\x4a\xcc\x2c\xec\x2b\xf9\x3d\x2f\x65\xfb\x46\xa0\xb6\x7a\x36\x05\xc9\x4b\xa2\x53\xec\x3d\xa2\xf1\xe1\x4a\x67\x4d\x59\x6d\xb2\xc3\xeb\x14\x8b\x26\xa9\x34\xca\xb9\x9d\x0f\xcb\xef\x7f\x91\x06\x4d\xae\x8c\xc5\x96\xbb\x02\xcd\xeb\x16\x4d\x7f\xfd\xdf\x85\x45\xce\x35\x67\x79\x27\xa4\xff\x6b\xc2\x39\xfa\x82\xee\xb2\x26\x87\x5b\xa4\x47\x4c\xc4\xe9\x94\xe4\x91\x4e\xd2\x0e\x83\x58\x89\x6a\x08\x6e\x91\xa9\x08\xa2\x11\xdc\xf4\x8b\xb0\x45\xa6\x0a\xac\xc3\xb1\x78\x83\xe5\xbc\x3f\x8d\x92\x82\x19\xfc\xbe\x7d\x56\x5b\x06\xee\x74\x81\x9f\x0f\x6e\xfd\xa7\x05\x08\xb7\x22\xec\x4f\xb6\xfa\xb0\xd7\x13\x98\xd8\x68\xaa\x0b\x80\xc8\x2f\x90\x88\xfd\x1f\x04\xe3\x52\xb2\x04\x1f\xc9\x5d\x59\x5e\x32\x31\xa5\xa2\x02\x21\x94\x37\xe7\xaf\xe5\x73\x95\x54\xd2\x0a\x83\xdc\x40\x9e\x8b\x9b\xfc\x3c\xac\x82\xb5\x5b\x10\x32\x0d\xb1\xbc\x59\x9f\x33\x95\xe9\xee\x02\x74\x40\x43\xa7\xdc\xd0\x2e\x0d\xf7\xf0\x0e\x93\xc4\x46\x6a\x91\x22\x3d\xfa\xe4\xe4\xa8\xf6\xc7\x8d\x0d\x0f\xf2\xb2\xb9\x85\x77\x9f\x41\x8c\x2f\x08\x04\x27\xba\xab\x27\x88\x7c\x03\xa2\x9e\x78\x57\xb7\x83\x6c\x34\x70\x80\x69\xf2\xf8\xef\xff\xb5\x05\xc9\xbe\xfa\x21\x41\x00\x82\xb4\x3f\xd0\xb0\x7d\x72\x26\x23\xc1\xda\x14\xa0\xcf\xab\x5d\x4d\x9c\x52\xc0\x29\x87\xde\x47\xf3\x6a\x08\xa5\x02\xb0\x22\xb3\x6f\x99\x7a\x53\x59\xf3\x39\x54\x41\x50\x2a\x24\xba\x07\xe0\x9c\x46\x0b\xb2\x0a\x95\x41\x92\xae\x9b\x0d\xd8\xdf\x7d\xef\x56\x00\x15\x42\x82\x95\x15\x2b\x89\x8c\x5e\xcd\xcd\xb0\x18\xa6\x22\x1a\x60\x48\x2f\xec\x02\xd1\xab\x49\x28\x15\x73\xe3\x11\x7a\x1b\xa8\xcb\xfc\x1d\xaa\x45\x57\x5f\x99\x31\xc3\x51\x8a\xc6\x11\x32\xc0\xf1\x42\xbf\x43\x01\x75\x47\x5a\x83\xee\x8a\x59\x2a\x50\x91\xcb\xde\xad\x47\xf8\x78\x16\x95\x82\x7c\x8c\x4e\x9d\x9c\x98\x49\xd1\x79\x41\xfe\x5c\x3f\x77\xa7\x02\x81\x88\x9b\x53\x79\xb2\x6f\x27\x5e\x94\x33\xa9\xf4\x63\x4c\x48\x7c\xc4\x5e\x1e\x4f\x79\xd6\x5e\xfe\x16\xaa\xf7\xec\x1a\x55\x44\x25\x41\x4a\x5c\xd7\xe9\xb9\xcc\x33\x5b\x62\x04\x3d\x0f\xdc\x52\x49\xa4\xf0\x47\x2f\xbd\xcc\x75\x5f\x37\x99\xbd\x49\x09\x07\x04\xe5\x6e\x16\x8f\xdf\x57\xab\xc7\xdb\xbd\x2f\x5e\x2a\x1e\xa4\xb8\xb9\xde\x3d\xbd\x6c\x76\x3f\xf6\xbb\xf5\x6a\xb3\xbf\x5d\x6f\x97\x03\x50\x88\x12\x21\xd1\x56\x70\x69\xef\x0c\x93\xc6\x2f\x8c\x92\x91\x65\xdc\xdc\x95\xa5\xf6\x5d\xd8\xb1\x36\x51\xb7\x2c\x0d\x8a\xee\xf3\x6f\x76\x7b\x2b\x7c\x91\x06\x73\xb9\x45\xf3\xed\x5a\xc7\xb1\xff\x90\x8e\x12\x94\x7b\x5a\x8a\xe6\xb5\xbd\x7d\x03\x3a\xad\x82\x24\xf0\xfe\xa5\x3f\xca\x8f\x07\x51\x7c\xfe\xc4\x37\xaa\x9b\x1d\x86\xa5\x1e\x8a\x70\x03\xd3\xd2\xaa\x32\xdc\x02\x5d\x4e\xaf\xd9\xcf\xae\xff\xa4\x83\x10\x50\x7c\xce\xf5\x9f\xc6\x55\x05\x1d\x24\x1c\x2b\xa4\xb7\xc7\xfc\x0b\x36\xb2\x0e\xa4\x15\xae\xb8\x21\x64\x33\x5c\xc0\x74\x44\x12\xcc\xe7\x8a\xf2\xfc\x0e\xe2\x6c\xd7\xeb\x8b\xbb\x79\xf9\x52\x6b\x12\x84\x88\xb1\x3c\x89\x4f\x29\xd4\xdb\x06\xfe\x7b\xce\xaa\x2e\x9d\xd3\x24\x48\x50\x39\xcc\x47\x21\xdb\xb3\xfc\x3a\x2e\xd3\x24\xb0\x4e\x33\x15\xc2\x2f\xbe\x43\x31\x8f\x39\xd6\x44\x3a\x80\x7b\x05\xeb\xe5\x53\x1b\x2e\xd4\xf7\x60\x26\x8b\xa4\x8e\x69\x92\x38\xa6\x4e\x75\x9e\xd6\x95\x35\xe5\xdc\x11\x02\x91\xc7\xbd\x01\x0d\xc7\xd3\xac\xac\x40\xbf\x4a\x6a\x16\x08\xee\xd4\x89\xef\xb2\x5a\x89\x7c\xda\x65\xbf\xea\xa5\x34\xbe\xb4\x84\x44\xb8\x44\x38\xd6\xc8\xca\x61\x76\xbf\x75\x87\x79\xdc\x37\x9c\x9f\x2b\x38\x66\xe7\xe3\xd2\x6d\xd1\xd3\x46\xb6\x4e\x58\x8c\xd2\x81\xaa\x2a\xeb\xfa\xae\xac\xde\xee\x7a\xd2\x96\xe6\x32\xc5\x9c\xfa\x54\x96\xf9\x2d\xf2\x13\xfc\x01\xcd\x45\xea\xc5\xeb\x77\xd0\x9b\x4f\xb8\xe3\x29\xd5\x18\x19\xec\x4d\x05\x70\xa5\xfe\xed\x56\x08\x2d\x48\x82\x30\x53\xa8\x44\x0d\x1b\x44\x23\x4c\xd8\xdc\x5a\x68\x83\x6c\x6e\x57\xe3\x7b\x2c\x9b\xd5\x7f\xcf\x97\x80\x8c\xd1\xe6\xae\x65\x90\xf2\xd4\x37\x3b\x7e\xad\x8e\xa7\xea\x5c\x34\x43\x0b\x5f\x3f\x8e\x53\x6c\x51\xe5\x60\x9a\x68\x32\x0b\x14\x31\x18\xb7\x6e\x77\xff\x78\xc6\xe9\x32\xbf\x26\x6a\x45\x2d\x23\xdf\xcf\x07\xd1\x74\x2b\xba\x56\x60\x25\xa5\x6d\x81\xfa\xa9\xe8\x1e\x14\x04\xc6\x04\x03\x9a\xde\x56\x89\xe3\x4a\x54\x45\x2f\x41\xaf\x34\x10\x85\xfa\x28\x37\xb7\xeb\xd1\x6b\xd7\xee\xb8\xae\x07\xbe\xfd\x2c\xca\x53\x9d\xd5\xa3\x4c\x5f\x83\x21\x98\x96\x89\x43\x05\xf3\x2e\xed\x0a\x82\x40\xd1\x60\xc0\x30\xb1\x51\xac\xfb\x0a\x08\x03\xe1\x45\x71\xf7\xdb\x53\x59\xd4\x65\x05\x7a\x6f\xd3\x94\x7d\x56\xec\xff\x5f\x29\xf7\x37\x9f\xfb\x89\x6d\xfb\xe4\x2b\x42\x08\xd1\xa9\x0a\x19\xb8\xf3\x6b\x0b\x44\x0c\x94\x53\x2a\x18\x86\x97\x10\x31\x0b\xb7\x74\xbe\x03\xab\x42\xd7\x8b\xa6\x3b\xc8\x21\x89\xbc\x99\xec\x71\xda\x8a\x07\x12\xa4\x91\xab\xc8\x3e\xcd\xbe\x98\x6e\x5c\x9c\x24\x9a\x77\x79\x78\xa7\x02\xdf\x91\x62\xbe\x06\xfc\x03\x75\xb0\xac\x8b\xaf\x71\xc7\x59\x44\xb8\x05\x13\x9d\xd0\x56\xe2\x5b\xf7\xf7\x18\x53\x25\xb4\xc7\x00\xbd\xdf\x3c\x6f\xbb\x43\x49\x88\xf2\xc9\xcb\xf2\x7c\x2a\x8b\x89\x67\xe8\xbf\xa3\x7e\x21\xe5\x13\xb0\x32\x30\x61\x31\xa1\xbf\xdd\xfc\xf6\xff\x86\x93\x05\x12\x9d\x5a\x1f\x03\x55\xee\x6d\xdd\xad\x3b\x02\x4e\x89\xf9\xb3\x41\x60\xf2\x62\x7a\x1f\x79\x98\x20\x44\xfd\xb1\xb4\x3b\xd1\xc5\x2b\x37\xf3\xe6\x81\x0c\xa5\x97\xd0\x5a\x8a\xc2\xda\xe8\x7d\x61\xae\xa6\x40\x0a\xee\x83\xcd\x1f\xe4\x26\xd3\xba\x9f\x04\x4a\xa6\xc4\x16\xfc\xb6\xd9\xa1\x00\xfd\x58\xae\x0a\xe5\xb6\x59\x37\x44\x47\x0a\xd1\x56\xdb\x53\x95\x35\x7f\x0e\xf6\x53\xd0\x86\x7b\x61\x9e\x5b\x51\xbd\x15\xa5\x86\x4b\x3f\x20\x05\x20\x12\x6c\x5e\x7e\x87\xe6\xc1\x49\x76\xf7\x74\x6d\x30\x91\x44\xa0\x92\xd5\xc8\x74\x32\x9b\xf3\xd3\xc1\x10\x85\x01\xc1\xb6\x41\x08\xb7\x76\xa2\x07\xed\x12\x38\xfd\x4e\x93\x46\x32\x1c\x32\x5f\xc6\x7a\xad\x76\x94\x09\x78\x88\x29\xaa\xd3\x6c\xb0\xfd\xee\xac\x2c\x2e\x40\x2f\x26\x4c\x19\x56\xbe\x3d\xc8\xe3\xe8\xda\xc5\x73\x23\x2d\x48\xf9\xe1\x5c\x78\x5f\x52\x65\x42\x29\x93\xa8\xef\x1f\xeb\x39\xa8\xbb\x89\xa8\x56\xa9\x95\x12\x83\xa2\xc9\xde\xb3\x3a\x2b\x0e\xe3\xee\xac\x89\xb8\xc0\xfe\xbd\x65\x8b\x0e\xfe\x8a\x4a\x52\x7b\x44\x27\xb6\x59\x56\xd8\x1d\xd2\xd0\xd1\xa1\xa0\x72\x86\x1a\xf3\xf3\xc4\x10\x6d\xf9\x92\x28\x42\x73\x38\xe7\xa2\xb2\x32\x20\x26\xab\x8e\x23\xc1\x3e\x97\xa1\x0c\x37\x11\x13\x87\x02\xeb\x1a\x1a\x4e\x79\xf9\x39\x2d\xa5\xf9\x41\x44\x32\xfb\xc2\x3a\x47\x82\x53\x59\xb5\x93\x01\xdd\xa7\x60\x04\xdb\x31\x34\x32\x18\xa2\x38\xd8\x0e\xb8\xa2\xc7\x54\x77\x5b\x19\x9a\x18\x84\xf0\x9b\x73\x73\xae\x60\x8f\xfa\xd1\x7b\x0c\x3c\xfc\xa9\x58\x92\x44\x2e\xf0\x5b\x1f\x4f\xf9\xd2\xf9\x3a\xfe\x77\xbc\x0f\x9a\xc4\xcd\x2f\x2b\xb1\xf0\x76\x25\xd5\x36\x49\x6c\x4b\xce\xed\x8e\x36\xd1\xbb\x56\x26\x0d\x65\xc7\xea\x68\xdf\x85\x45\x53\x1e\xeb\xe5\xf5\x4e\x81\x49\x15\xe7\xc2\xcb\x3c\x0e\xca\x24\xee\xb0\x88\x23\x64\x14\x65\xf5\xc6\xce\x1d\xbb\x85\x5b\x2f\x87\xf1\x99\x84\x62\x58\x65\xbf\xc9\x9a\x2d\x9a\x4d\x3c\x94\x1a\x2a\xd1\xcf\x42\x19\x03\xaa\x1b\xae\x8b\xfa\x5c\x01\xfa\xb9\x75\xb7\x48\x26\x0a\x15\x68\x32\xe3\x25\xc2\xe6\xf2\x07\x23\x55\x82\x97\x83\x52\x8e\xce\x62\x17\x29\x2e\xab\xc2\x99\x13\xb8\x81\x8a\x93\xc8\xd5\x86\x3c\x83\xce\x03\x2d\xe7\xbc\xe5\x95\x51\x8a\xca\xce\xb0\xe7\xbb\x38\xc2\x36\xd3\x30\x16\x94\x98\xdc\x39\x05\x16\x75\xda\xd5\x47\x86\x9a\xe1\xca\xe8\x30\xd4\x2e\x98\x77\xed\x97\x09\xa7\xcd\x8f\x33\x69\xd0\xcb\x9b\xbb\x8c\x60\x90\x8a\x1a\x08\x62\xac\x7b\x28\x51\x3c\x7b\x55\x4a\x65\x80\x59\xf9\x89\x03\x34\xb8\x04\x65\xc5\x61\x7b\x3e\x1e\x45\xf5\x39\xd1\x88\x54\x06\x0c\xc3\xce\xd1\x76\xb5\xba\x5f\xed\x77\x4f\xbb\xc5\xfd\x7e\xfb\xf2\xfc\x7c\xff\x4f\x7f\x32\x13\x25\x78\xb7\x10\x19\xb7\x70\x68\xde\xb5\x83\xc5\x4d\xce\x66\x08\x20\xa6\xa2\x4d\x47\xed\x7a\x69\x6d\xae\x26\xf2\x16\xc6\x24\xa9\xd2\x3d\xd2\x76\xae\x20\x64\x0c\x4f\xb4\x45\xf9\x57\xc5\xc3\xe7\x3f\x5e\x16\x7e\x8b\x46\x11\x89\x42\xb7\x7f\x29\xb7\xe5\x11\x06\xe6\x49\xa3\x19\xa1\x83\x20\x90\xd8\x9a\xb8\xf1\x4e\xf9\xdf\xfc\x81\xc4\x8a\xa4\xd8\x25\xf3\x76\xf1\xf4\x6d\xfc\xc1\x30\xe0\xb8\x2d\x38\xc6\x8b\xc8\xc1\x01\xe9\x6d\xed\x74\xf2\x6d\x7f\x55\xab\xf3\x27\x8d\xac\xd3\xe4\x41\x1c\x61\x5d\x3f\x75\x72\x21\x3a\x08\x13\x2b\xa7\x5a\x43\xf3\x52\x94\x1f\xed\x5e\x77\x3e\x3e\x99\xd5\x2f\x4b\x62\xa9\x6d\x97\x7c\x78\x56\x37\x35\x75\x10\xa6\x11\x0a\xc2\x80\xce\x9a\x15\xea\xf4\x5d\x5f\x08\xdb\x7c\x10\x30\xb0\xbb\x79\xfe\x03\xc5\x90\x3a\x33\x03\x1d\x44\x81\xf5\xeb\x3d\x96\x45\xf3\x3a\x9e\x87\x3a\x88\x52\x66\xdb\xaf\x8e\xb7\x8a\x9d\x8a\xee\x93\x46\x62\x5a\x5b\x60\x48\x33\x08\x3f\x74\x40\x78\x8c\x89\x7b\x59\xc0\x73\x7e\x9e\x9e\x35\xe6\x21\x71\x48\xda\x1b\x51\xc3\xb6\x11\xc7\xac\x10\xd3\x41\x2a\xc5\xa5\xd6\x16\x6a\x7e\x03\xd7\x5c\x77\x2b\xc0\x68\x28\x95\x0a\x85\xca\x3c\xfe\xad\x1e\xc8\x50\xe8\x80\x2a\x6a\x05\x57\xbd\xb3\xa6\x84\xbb\x2a\x83\x02\x8b\x01\xc3\xfa\xed\x5f\x75\x3c\xaf\x3c\x5e\xaa\x43\xcd\x07\x4a\x31\x1d\x78\x66\xd5\x5f\x03\xa3\x5a\x8f\x44\x5f\xdb\xef\x9e\x60\xd2\xe7\x96\x62\x1d\x24\x94\x33\x17\xf4\x3a\xb9\x44\xbf\x66\xd5\xfe\xe4\x49\x6a\x2d\x08\xd7\xab\xdd\xa5\xfc\xbe\x0e\x12\x99\xa4\x89\x57\x85\x2e\x3f\x77\xaf\xf0\x52\x64\xef\x50\x79\x89\x73\x1d\xf0\x80\x09\xe8\x55\x5b\x07\xa9\xa5\x0e\x38\x27\x89\xec\x9f\xd5\x85\x38\xaa\x0e\x52\x29\x10\xab\x8d\x5e\x0b\x21\x9d\x1c\x15\x44\xe1\xf4\xaa\xcf\x35\x2a\xf9\xea\x0e\x23\xe6\x06\x48\x41\x90\xbf\xd1\xf7\x1e\x9c\x05\xd4\xe4\x67\x60\xe9\x6e\x20\x08\xbe\x9b\x42\x7d\x75\xa0\xc0\xba\x16\xac\xcb\x62\x58\x64\xd1\x81\x26\xd4\xd8\x88\x72\xf0\x78\x26\xe7\xd7\x34\xc5\xbe\x9f\xbf\x8e\x1b\x68\x3e\x00\x8a\x97\xba\xab\xc5\xe8\x00\xb8\x40\x8b\xf7\xac\xde\xbe\x4e\x8c\xa6\x75\x60\x22\xeb\xf9\x55\x43\xe3\x16\xfd\xd9\xf9\x12\x06\x24\x44\xc4\x8e\xea\x02\x36\x2c\x94\x7d\xf3\x87\x13\x86\xcd\x53\x2c\x19\x3a\x3c\xd1\x48\xa4\x53\x87\x61\xa8\xc3\xa1\x72\xe5\xcd\xe3\x8d\x3f\x14\x85\x1a\xdb\x1f\xed\xc9\xcf\x45\xd6\x7c\x7e\x6f\x83\x93\x7a\xd8\x69\xd2\x61\x44\x38\x56\xc4\x84\xd5\x36\x7b\xf4\x6e\x3a\x3a\x8c\x62\x03\x8e\xac\xf5\xd2\x64\x79\x1d\x8d\x7f\x63\x18\x71\x86\x61\xfe\xf1\xb3\xc3\x90\x3c\x96\xdd\x87\x25\xc5\x97\x7e\xf1\xdb\xd0\xc3\x4f\x87\x24\xe8\xe2\x79\x3f\x09\xfc\xa1\x98\x70\xb4\x3c\xc8\xac\xc8\xa7\xff\x2b\x50\x2c\xef\x2a\x0f\x2f\xbd\xb5\x48\x11\x77\x98\x12\x86\x91\xd3\x72\x7d\xf3\x78\x9f\xbd\x5b\x43\x72\xa4\x0e\xc2\xe8\x7b\x91\x0f\xd7\x6e\x71\x2f\x77\x77\xeb\xe5\x7a\xf5\xb8\xdb\x6f\x77\x8b\xdd\xcb\xd6\x0f\x60\x3a\x94\xb2\xaf\x84\x0e\x9b\xe7\xe3\x0d\x25\x64\x3a\x15\x81\x03\x0b\xf4\x6b\x67\xc8\x63\x2b\xeb\x90\x0b\x0c\x02\x75\xd9\xdd\x48\x0e\xc0\x5d\x1a\xe2\x0c\x2c\x7f\x88\x4a\x2b\xaf\x1b\xa1\xc3\x34\x4d\xf0\x8c\x39\xc6\x97\x5d\x79\x63\xda\xee\x1a\x66\x59\x3a\x4c\x1d\x22\x11\x11\x69\x77\x00\x1b\xf4\x70\x18\x03\xd9\xae\xd4\x96\x78\x77\x8a\x04\x37\x23\x0d\x9e\x6c\xf9\x03\xf4\x15\x14\x82\x0e\x53\x63\x90\xd1\x75\x46\x34\xd0\x5a\x4f\x56\xf2\x50\xb0\xd4\x5e\x50\x59\x34\xa2\x0d\x6e\x47\xdb\x4e\x28\x12\x45\x22\x7b\x58\x89\x66\xc8\xa1\x0b\x87\x10\xa5\xd0\x0f\x57\xcc\x2a\xb5\x67\x87\xe2\xe9\xdc\x4c\xe6\x9e\xd0\x02\x21\x93\x56\x71\x28\xff\x5c\x0c\x9a\x0b\x57\x2e\x5f\x09\x86\xa2\xeb\x37\x9b\xa7\xdf\x56\x9b\xfd\x66\xb5\x5d\x6d\x7e\x5f\xed\x17\xb7\xb7\x9b\xd5\xb6\x9b\x06\x4a\x31\xb4\xd4\x74\x0f\xea\xd6\x02\xee\x9d\xad\x34\xb6\xf0\xf7\xdd\x50\xe0\x68\x22\xf6\x7b\xd9\xd8\x84\xab\x99\xc9\x0c\x27\x17\x01\x5a\x50\x6f\x34\xdd\xee\xe7\x50\xdf\x95\x15\xc2\xf9\xbe\xd9\x1d\xdd\x3d\xed\x4e\x5a\x48\x87\x60\x8c\x35\x66\x47\xa6\xc4\x06\xde\xcb\x37\x98\xdc\x0d\x03\x21\xf6\x22\xda\x28\xc9\x37\x54\xbe\xba\x17\x51\x90\x32\x6c\x0d\x38\x09\xc5\xbc\x57\x07\xd3\x51\x20\x52\x95\xfa\xec\xbd\xd2\x4e\x3f\xa0\xab\x63\xea\x28\x0c\xb5\x6d\x37\xb8\x56\x4e\xaf\xf9\xa2\xa3\xd0\x44\xde\xf1\xaf\xbd\x90\xaa\x01\x6d\x77\x90\xd1\x05\x47\x24\x94\xb8\x4d\xec\x65\x2e\xd4\xdb\xbd\x6d\x3d\x8e\x87\xc4\x61\x8a\x8a\x41\xdf\xa1\xf9\x9e\x19\xeb\x8e\x3d\x9c\xff\x51\x4c\xc2\xc0\xb5\x2e\x7c\x50\xf8\x80\x1e\x92\xfd\x95\x52\x12\x1a\xd7\x0e\x10\x79\xa7\x82\xa0\x23\x2a\x28\x02\x49\x96\xdf\x87\x6b\x44\x44\xa5\x14\x4e\xa4\xb2\x0d\x29\x97\x3f\x97\xf5\x15\x83\x53\x1d\x51\x15\x0a\x17\xbc\xef\x2b\x38\x8a\xac\xc8\x8a\xc3\xfe\xbf\x67\x61\xc3\x2f\x37\x8a\x45\x89\x5f\x54\x56\x99\x2e\xcb\x19\x68\x82\x8e\x18\x91\xa8\x87\xad\x44\x9e\x5b\x1d\x82\x61\x9e\xd0\x1e\x77\xe9\x63\x9e\x9d\x86\xbf\x2e\x49\x58\x6a\xc6\x4a\x2d\xe3\x3b\xc4\x53\x6b\xf7\x51\x59\xfe\x66\x56\x16\xf5\x9d\xf5\xf8\xed\x16\xdd\x28\x0d\x53\x7c\x91\x06\xc0\xed\x0e\x8c\xad\xa3\x94\x50\xac\x5d\xb6\xd1\xea\xb3\xf8\x7c\x3a\x37\xe3\x32\x90\x1f\xc6\x80\xdb\x52\x61\x01\xf7\x42\x8e\x77\xe2\x28\xd5\xb6\xf3\xab\x72\x10\xd5\x22\xcf\x97\xa2\xd0\x98\x70\x75\x23\x04\xd3\xca\x74\x17\xb1\xa8\xd4\x6b\xbf\xcf\x46\x42\x50\x0c\xe8\xea\x37\x8f\xb5\x6d\xff\x26\x11\xb8\xf2\x90\xa9\xaa\xbc\xc9\x9a\x8e\x0e\xdb\x0d\x30\x56\xb3\xfe\x24\x3e\x03\x4a\xf3\xf2\x73\x82\x09\xd5\x91\x74\xa6\x21\xdf\xfd\x0f\xbf\xf2\xa0\x65\x62\x25\xd8\xfd\x0a\x69\xdd\x91\xba\x92\x80\xcd\x76\xa7\xe7\xe6\x1a\x1b\xf1\x0f\x59\xd1\xcc\x14\x8d\xa7\xdf\xa0\x04\x6e\x4d\x0f\x9f\x7f\x4f\x00\x52\x47\xd2\x50\x54\x50\xb2\xf6\x5f\x65\x56\x2c\x0e\xf3\xdd\x3a\x1d\xa9\x50\xa2\x82\x8a\x55\x3b\x98\x6e\x0e\x5f\xf2\x79\xdd\x19\x74\xac\x88\xef\x2e\xee\x45\x5d\x43\xd5\xcd\x4c\xcd\x63\x6b\x69\x0e\x39\x1c\xda\xfc\xb6\x7c\x84\x8f\x59\x4c\x56\x3b\x96\x69\xc7\xab\xc3\x10\xa7\x3e\x1f\xc7\x1b\x44\xa4\x53\x9b\x42\x20\x33\xc5\x96\x60\x47\xbf\x5a\x4b\x69\x97\x66\x54\x1a\xf1\x95\x3a\x7f\x2d\x10\x72\x65\x01\xfa\xe2\x00\x4f\x85\xed\xe7\x77\x07\x23\x85\xbd\xfc\x4e\x1f\x57\x47\x40\x6d\xbb\xa8\x86\x66\x4c\x5a\xd1\x11\x68\xcb\xc4\xbe\x5d\xbf\x8c\x26\x15\x40\x84\x9a\x1f\x8b\xe2\x00\xb9\xff\xa3\xd1\x11\x73\x95\xe6\xa5\xa8\xbc\x41\x35\xb6\x03\x07\x4a\xd3\xdd\x8f\x34\xa0\x11\x47\x6e\x93\x79\xdb\x28\xb0\x20\xd7\x39\xe8\x9b\xfd\x10\x09\x82\x18\x29\x0f\x8f\xe7\xea\x3c\x9e\x23\x93\xb9\x72\xa1\x14\xae\x49\xa0\x09\x66\xd0\x57\x99\xb2\x33\x30\x5e\x4d\x22\x12\xea\xae\x57\xdd\x6f\x6e\xfe\xa8\x48\x70\x6d\x3e\xdb\x24\xe4\x01\x17\xbf\xf9\x08\x97\x44\x42\x62\x24\x5c\x56\xd9\x61\xe0\x4d\x32\xfb\x2a\x90\xc8\x84\x38\x05\xca\x13\x14\xff\x2a\x0b\xd8\x41\x9e\x7b\x4f\xa1\xa8\x1b\x13\x61\x21\x68\x8b\xd0\x78\x54\xc4\x1d\xcd\x13\x42\x22\x86\x18\xab\x0a\xb7\x4a\x8c\x79\xc7\x91\x0a\x69\x87\x50\x0b\xa5\x3e\x96\xef\x80\x29\xab\x28\x9a\xbb\x4a\x1c\xae\x3b\x78\x6b\x42\xd2\x00\xfd\x9b\x94\x68\xd3\xbb\x7c\xeb\xd2\xc6\xbb\xec\x17\xe8\xef\xe2\xe2\x53\x93\x4f\xc7\x0e\x07\xe1\x9e\x3c\x26\x88\x57\xb3\xcd\xd1\x9b\x41\x62\x65\x58\xbf\x48\x63\x18\x92\xf5\x2b\x24\xa1\xa1\xc1\x0d\xc4\xdb\x3a\x75\x38\x84\xeb\x1d\x5d\x4d\x28\x03\x70\x6b\xae\x6b\x32\x20\x50\xed\xae\xac\xbc\x90\x6e\xaf\x83\xa0\x09\x23\x29\x58\x0e\x0a\xdc\x7e\xff\xd7\x14\x4c\xa9\x09\xa3\x8c\xa5\x83\x84\xe9\x36\xab\x00\x55\xa3\xc6\xd3\x75\xfe\x52\x18\x04\xd8\x66\x6c\xac\x8d\x87\x86\x5f\xbb\xd2\xd6\xe9\xa7\xe3\x2c\x07\x63\x73\xb3\xfc\x82\x90\xa5\x49\xc2\x44\xdc\x11\xd8\x2c\x3d\x77\x72\xa6\x24\xa5\xc0\x3d\xf0\xf1\xae\x02\xf8\xde\x6d\xb7\x24\x51\xdc\x53\xed\xbd\xa6\xd6\x65\xa2\x4b\x78\x18\xc5\x4e\xf0\xf1\x37\xf8\x9c\xb5\xdd\x1a\x0c\xe6\x0c\xfb\x1b\x6d\xa2\x98\x0d\xaa\x90\x9a\x70\x09\xd2\x26\x91\x2e\xbb\xf3\x25\xa6\x41\x62\x44\x38\xc4\xa8\xfa\x7e\x10\x6d\xb4\xb8\x5e\xdc\x76\x07\x8c\xc2\xc6\xce\xb8\xcb\xea\x23\x47\x22\xa8\x96\xe0\xba\x92\x59\xd5\x46\x62\x60\xb2\x5f\xfe\xc3\x32\x05\xec\x18\x34\x5d\xf4\x79\x79\xe1\x0a\x28\x1f\x08\x14\xb6\xfb\xd9\x20\x54\x24\x3a\x56\xa8\x4d\x72\x14\x6f\x80\xee\xb1\xed\xb2\x3f\x96\xc6\xd4\x44\xa7\x04\x97\x12\xbf\x81\xda\x25\x52\x8d\x05\x54\x35\x81\x48\x87\xb2\xab\xc6\xd9\xa2\xcc\xfc\x9e\x46\x20\x26\x48\x1e\xfe\x7d\xd9\x83\xfd\x34\x81\x34\xc0\x3e\x0d\xb2\xfd\xb6\xcf\xeb\xdf\x56\xfe\x88\x61\x26\x74\x51\x98\x23\x8b\x21\xfa\x68\x9b\x1d\xe6\xa8\x29\x9a\x18\xce\x50\x95\x4c\x39\x1a\xc0\x52\x9c\xda\x84\x66\x32\x03\x4c\x1a\x28\xe6\x05\x17\x06\x00\x40\x7b\x38\x0e\xa4\xc4\x98\x66\x2f\xb4\x76\x98\x9b\xd1\xb7\xc4\x61\xc8\xc2\xc8\xeb\x18\x14\xed\xee\x51\xbf\x8e\x23\xa7\x38\x22\x04\xa1\x63\x26\x3f\xd7\xaf\x2b\xdf\x79\xd0\x71\xa4\x0c\xa6\x9a\x45\xe9\x6c\xf0\xdc\xdf\x09\xd1\x18\x7d\xef\x0f\xd0\x38\xa3\x8b\xa6\x3f\x98\x24\x58\x5b\xa9\x26\x3d\x1b\x1d\x13\xc9\x70\xfd\xa8\xcf\xf2\x98\x35\x43\xbb\x82\xd9\xf7\x35\x26\x4a\x21\x66\x20\x73\xfa\x98\x43\xda\xee\x78\x64\x9c\xc6\x68\x8e\x6a\x2f\x73\x71\xca\x5e\xaa\x91\xb8\x86\x8e\x29\xa4\x60\xf1\x23\x2e\xe9\xbd\xd8\x03\xff\xfd\xbf\xa3\xb7\x3b\x66\xa1\x45\x83\x89\xac\xd2\x55\x79\x7a\xb8\xbd\xbf\x84\x8e\xb9\xa1\x89\x00\x0c\x5d\xfe\x89\xad\x04\xff\x73\x13\xc3\x95\x6b\xbd\x2d\x50\x69\x41\xe4\x57\x56\xfc\x98\x07\x1a\xc3\x48\x94\x0f\x36\x98\xb1\xd9\x62\x9d\xb9\xf6\x89\x14\x02\xec\x32\xad\xfe\x58\x2d\x5f\x76\xab\xfd\xea\x8f\xdd\x66\xb1\xff\xbe\xf0\x71\x47\x2c\x62\x8e\x10\x7c\x8c\x4f\x92\xee\xaf\x69\x14\xa4\x7d\xd5\x2d\xfb\x13\x7a\x97\xed\xbf\x59\x91\xf4\x67\x52\xd6\x25\xe1\x13\x44\xd5\x80\xf0\x45\x88\x58\x06\x56\xae\xd9\xe9\x26\xfd\xda\x36\xa2\xab\xbb\xc5\x32\x0c\xb1\xd4\x83\x42\x42\x4f\xe6\x5e\x14\xfa\x41\x14\x9f\x7d\x05\x62\x04\xde\xd1\xb1\x04\xa2\xdd\xe6\x81\x6f\xd4\x64\x42\x29\x0e\x54\x77\x64\x96\x0e\xe3\x76\x57\x95\x47\xbc\x87\x33\xfa\x55\x3a\x56\xa0\xbc\xba\x12\x26\x7b\xf3\xb1\xaa\x1b\xac\x59\x8a\x22\x20\x6d\x32\x73\xb1\xef\x5e\xab\xc8\x7f\x55\xa1\xbf\x50\xe9\xf1\x5f\xc4\x19\x6a\x61\x5b\x7e\x92\xf5\xdc\xf8\xd6\x1d\xe3\x98\x76\xb7\xaf\xdb\x1d\x80\x95\xf2\xff\x1c\xc5\x7b\x31\x08\x83\x11\x0d\x02\x72\xef\xb2\xfc\xb2\x40\xf3\xd7\x56\x9b\x33\x60\x57\x1d\x9b\xc8\x81\xfb\xa1\x79\xf8\x6c\x5e\x33\x25\xf2\xef\x95\x78\x17\x8d\xe8\xae\xcf\x10\xe0\xae\xad\xbe\x1c\x09\x52\xeb\xd8\xa4\x12\xb3\x9f\x47\xf8\xd8\xed\xee\x47\xdb\x97\x63\x77\x6b\x1a\x84\x2c\xf5\x26\x7e\x5f\x1a\x72\x8d\x5f\x01\x1a\x86\x16\x58\x2c\xcf\x76\xf7\xaf\x3d\xed\xce\x1d\x8f\x48\x80\x81\xd0\xf2\xe9\xe1\xe1\xe5\x71\xbd\xfb\xe7\xc8\xb9\xa2\x3d\x1e\xa2\x5a\xef\xf6\xe9\x6e\xb7\x5f\x2e\x9e\xf7\xeb\xc7\x51\xe3\x86\x46\x34\x21\x5e\x00\xdc\x5d\xd2\xfe\x66\x7e\xaf\xa0\x24\x12\x58\xf0\xf6\x6b\x15\x8a\x06\xd7\xbd\x7c\xc0\xf8\xd2\xe3\xc0\x8a\xf0\xbc\x42\x7e\xc2\xbc\x6a\x34\xaf\x69\x4c\x53\xd3\x87\x70\x77\x83\x89\x3f\xfe\xd2\x98\x6a\x7c\x9b\x3b\x2a\xe8\xaa\xd0\x83\xbd\x81\xc6\x42\x62\x05\x65\x8f\xba\x6b\x0d\xf4\x96\x92\xfd\xa5\x24\x41\x88\x54\xc1\x53\x05\xef\x59\x9e\x1d\xa0\xfd\x2e\xbf\x5e\x7d\x9d\x51\xd2\x44\x2a\xbc\x4e\x54\x31\xbb\xcf\x24\x16\x45\x8d\xe8\x8a\xc6\x34\x0d\x12\xc4\x3c\xed\x60\x08\x47\xd6\x34\xe5\x1a\x21\x24\x2e\xa5\xbe\xe9\x23\x40\x9a\x2a\x8d\x2d\xfc\x0a\x9a\x2a\x83\x77\xe8\x90\x4a\xe3\x9f\x2e\x52\x83\xcf\xa6\x44\x12\xf4\xbe\xf9\x3c\x4d\x7c\xe1\x34\x15\xca\xda\x69\xfe\x6b\xbd\xdb\x3c\x75\x0f\x55\x46\x0c\x01\x11\xce\xad\xc3\xf2\xd3\xbb\x83\x29\x60\x25\x1b\x7d\x6f\x4c\x03\xd5\xa0\xe6\x44\x55\x02\xc6\xf3\x49\x6c\x3f\x01\x25\x3e\xad\xc8\x1c\x76\xb6\x07\x3a\x7f\x5d\x96\x47\x35\x10\x14\x4a\x58\x2d\x9f\x46\xf7\x00\x08\x41\x54\x94\x0f\x65\x37\x50\x43\xf5\xee\x39\x7d\x93\xdf\x02\xc4\xd8\xb7\xf0\x7c\x7c\x32\x8f\x7f\x8b\x97\xa3\x29\x08\x82\x2f\x48\x01\x1f\x2f\xb5\xf3\xb1\x99\x64\x63\x33\x61\x2d\x35\x2c\x42\x16\xd8\xb9\x78\x16\x99\xbe\xf1\xec\xfc\xe9\x25\x19\xb0\x72\xf5\xde\xcc\xd0\xa5\xa4\xa8\x70\xe0\x7e\x23\x0b\xa2\x80\x5b\xb1\x29\xf8\xb3\xec\xa2\xa1\xa8\x34\xe4\x4b\x6e\xac\x66\x41\x9a\x12\xc7\x18\x7a\x83\xad\x12\xd3\xc8\x9a\x45\x82\x60\x54\xd3\xbc\x66\x95\xb7\xba\xb8\xed\xa3\x10\x16\x89\x18\x59\xac\xae\xe3\xbd\xf4\x5e\xd8\xfa\x5a\x8e\xf0\x97\xff\xfe\x25\x50\x57\xb3\x48\x51\x67\x10\x8b\x65\xdc\x3e\x6f\x61\x31\x65\x58\x18\xb8\x14\xa3\xfa\x32\x99\x63\x31\x95\xa1\xab\x73\x62\xa5\x62\xb8\x63\xf9\x21\x49\x02\x16\x23\x8a\x15\xfa\x36\x6e\xbe\xef\x20\x31\x9a\xc5\x69\x82\x62\x84\x3f\x6e\x96\x0f\xfe\x6f\x94\xd2\x50\x0f\x52\xc4\x62\xf5\xab\x57\x28\x99\xaf\xab\x30\x9a\x86\x18\xbc\x2d\x45\xf1\x24\xdb\x30\x75\xe9\xa5\x19\xfd\x1e\xc4\xa8\x66\x08\x20\x78\xde\xac\xf6\xeb\xe5\xd3\xfe\x61\xf1\xc7\xff\x47\xd9\x97\x2d\x37\x8e\x23\x5d\xbf\x4e\x5d\xf4\x05\x01\xee\x97\xb2\x2c\xbb\x3c\xe5\x6d\x24\xb9\xaa\x7b\xbe\x98\x50\x24\x80\x84\xc5\x29\x8a\xd4\x90\x54\xd9\x9a\xa7\xff\x83\x09\x80\x9b\x68\x57\xff\x7d\x51\xee\x10\xc0\x1d\x4b\x2e\x27\xcf\x19\x2f\xb9\x51\xc4\xbc\xd0\x92\xe9\x5d\x57\x50\xbc\x3a\xf4\xb0\x8a\x22\xad\x13\xec\x03\xba\xed\x0e\x37\x5f\x31\xac\xa2\x24\x88\xa8\x30\xca\xe4\xfc\x37\x3f\x9e\xe7\x4d\xa4\x28\x11\x41\xd0\xad\x8e\xc4\x1a\xd5\xbd\x94\x94\x45\x20\x86\x7a\x23\x1f\x04\x3a\x5c\x77\x3f\xa5\xa1\xfe\x9c\xe1\xff\x5a\x53\xb8\x73\x06\xa2\x54\x4a\x8a\x36\x59\x7e\x21\x7d\x22\xe9\xda\x29\x79\xc5\x78\xaf\x8f\x20\x11\xe4\x4e\x19\xfa\x66\x53\xee\x5c\x81\x9a\x04\xaf\x23\x11\x2a\xc7\x47\x75\x5d\xc0\x43\xf6\x8e\xd5\xec\x36\x10\x89\x24\x8a\x6d\x41\xee\x2d\x1c\xd0\x14\x8b\x4d\x46\x89\xf4\x94\xb6\x56\x8f\x89\xb4\x7f\xc5\x6a\x3a\x92\x24\x37\xba\xf9\xab\x1c\x65\x4f\xe9\xa9\x22\x09\x8c\xcc\x2c\xb7\xbf\x7e\x64\xff\xfc\xcd\x19\x65\xcf\xaa\x12\x45\xc1\x86\x43\xa9\x32\x7d\x7e\xc8\xf2\xf6\xa3\x17\x38\x89\x84\x0f\xa9\x96\x55\xa4\x43\x34\x05\xf6\x24\x74\xe9\x38\x63\x3e\x48\x41\xb9\x63\xe2\x90\x80\x8e\x6f\x13\x32\xb4\x79\x73\x6c\x72\x93\x1a\x19\xb1\xbb\xac\x9f\x36\xcb\xe6\x37\x0c\x2d\x2a\xf6\x82\x28\xb1\x99\xcc\xab\xac\x80\x42\x12\x31\xfe\x25\x6d\xb5\x8a\xbd\x28\x8e\x5d\x34\x6f\x56\x5b\x47\xc5\x5e\x9a\x52\x8d\xc1\x11\xce\xed\xca\xbd\xf8\x90\x54\x63\x76\xf4\xc7\x5e\x0a\xc2\xde\x4b\xb7\xe8\xec\x5e\x61\xb2\x8a\xc7\x2c\xe1\x89\x05\x12\x60\x55\xd9\x1a\xd2\x7a\xf1\x0b\xb2\x61\xb2\x26\x66\x29\x27\x2c\xc7\xc3\xdd\xe2\xe1\x6e\xe0\x0d\xc7\x0c\x98\xb4\xd5\xec\x96\xf9\x66\xf4\x46\x78\x00\x31\x0c\x0c\x78\xac\x66\xf0\x87\x2a\xf6\x99\x4f\x58\xf2\x0e\xc1\x34\x94\x9d\x98\x1f\x3f\xb1\xcf\x42\x43\xa0\xd6\x5a\xbc\xa3\xb2\x46\x15\xfb\xad\xed\x67\x13\x05\x95\xa5\x4a\x9c\x3c\xb8\xcf\x23\xda\x9a\x9e\xbf\x5e\xff\x8e\x7a\x47\xc5\xbe\xef\x93\x5a\x41\x97\x02\x29\x9a\xb5\x05\x33\x4f\x13\x4a\xb1\xaf\x05\x49\x3c\xc2\xa9\x29\x3f\x0f\x43\xc6\x41\xcc\xfc\x4e\xa8\xbd\x81\xdc\x98\x5d\x7d\xc4\x2d\x0e\x24\x83\xc4\x3a\xf7\xdb\xf2\x66\x18\xc9\xeb\x2d\x8c\x38\xd0\x3e\xe5\x88\xae\xef\xd6\x5b\x77\x64\x18\xa4\x2e\xec\x6c\x52\x29\xcf\x39\x48\xbc\x76\xbc\x5e\x1f\x21\x95\x55\x1c\x86\x32\x31\x3e\x95\x6c\xcd\xaf\xb9\xe5\xcc\xf5\x4c\x39\x91\xac\x1e\xb2\xe2\x21\x2b\xae\x4e\xe7\x3e\x49\x1d\x87\x10\x50\x44\xe1\x57\x86\x6f\xbd\x80\xa0\x6b\x8d\x7c\x8f\x10\xe9\x35\x41\x6d\xb7\x03\x9d\x3d\x83\x4a\xf8\xff\x5d\x58\xe6\x24\x48\x54\x1c\x07\x31\x49\xc7\x82\x52\xed\x2d\x5c\x9d\x87\x5a\x0e\xa3\xcf\x1b\xc7\x49\xd8\x49\xa3\xd7\x37\x65\xd5\x1a\x3d\xee\x66\xe3\x24\x22\x83\xb4\x38\x1d\xb6\xe5\xcf\x7a\xf3\x96\x51\xc1\xcf\x00\x52\x15\xc7\x2a\x4a\x1d\x55\x7d\x29\x7f\xbe\x98\xdb\xb2\xf1\xf6\xc9\xfb\x4d\xbc\x34\x32\x52\x76\xa7\x1a\x6f\x07\x72\x47\xc3\x2f\x9a\x58\xfa\xf4\xb7\x4c\xd9\xda\xa1\x4e\xaf\x75\x32\x8c\x93\x38\x22\x84\x4a\x87\x20\x81\x2e\xe8\x17\x27\x12\x28\x21\xe6\x64\x9f\xcc\x16\x38\x3f\x14\x53\xcf\x00\x49\x8e\x50\xd5\x48\xac\x15\x97\x12\x92\x2a\x4e\x59\x08\xca\x51\x24\xe2\xbc\xf0\xae\x8a\x53\x1f\x29\x72\x2e\xa0\x91\x7b\xb3\x48\xb7\xff\x16\x7d\x59\xe1\x5c\x0e\x62\x72\x12\x50\x8a\x00\x1c\xb6\x66\xae\x5d\x43\x9f\xcb\xcc\xf1\x3c\x45\x81\xf3\xe7\x63\x11\x18\x9a\x3e\xf3\xf1\x5c\x28\x55\x0d\x4a\x70\x55\x2c\x42\xa3\xde\x5e\x63\xd3\x7e\x9c\x2f\xf3\xae\xf1\xf8\x06\x44\xa4\x42\xcb\xbc\xfe\x73\x51\xa8\x35\xb1\xa1\x74\x27\x14\x46\x42\x64\x49\x7a\xb6\x03\xd8\x4f\x2c\xa4\xb1\x3a\x68\x65\xcf\x51\x4c\xbe\x97\x0c\x25\x0d\xca\x53\x8d\x95\xad\x7f\xab\x2d\xdc\x77\x3c\x7a\x65\x92\xa4\x81\x43\xa9\xdc\x96\xb9\xfa\x2c\xd1\x1e\x4b\xe0\x14\x82\xad\x4f\x2e\x2b\xba\x2d\xa9\x16\xe2\x7e\x26\x04\x12\x2b\xa6\x29\x13\x78\x75\xf3\xa7\xbb\x6d\x95\x28\x02\x5e\xd2\x40\xc3\xd3\x81\xde\xb5\x6b\x44\x66\x38\xdf\x5f\x0d\xe7\x3f\x16\xcd\x1a\x8a\x9f\x1f\xdc\x8a\xe6\x48\x49\x1b\x93\x62\x7e\x2c\xd5\x54\xaa\x71\x3c\xf7\x74\xe2\xf9\x96\x71\x18\x29\x16\x34\x89\xeb\xc6\x5a\x44\xdc\xc9\x7b\xd3\x6a\x34\xba\x5c\xe2\x79\x1e\x0d\xb6\xaa\x2c\x8d\xca\x97\xfb\x1d\x23\x53\x34\x6c\xa4\xc7\xec\xf4\xa8\x9f\xdb\x69\x37\xd9\x0b\x12\x16\x04\x89\x25\x7a\x6b\x4d\xce\xd6\xc8\x5e\x96\xa7\xaa\xc6\x2b\xa8\xf1\xa9\xb8\x53\x9b\xe6\xa4\xa6\x05\xae\x2a\x61\x61\x44\xc8\xac\x43\x56\x9c\x1a\xac\xef\x0a\x2b\x5a\xe4\x9a\x53\x23\xe0\xdd\x60\x6d\x62\x8e\x59\x43\xba\xcf\xae\x9d\x63\x4a\xc4\x10\xd3\xd0\x5d\xe2\xfb\x40\xd0\x38\x55\x95\x17\x4c\x09\xd3\xd8\x63\xe2\x07\x81\x41\xc1\xb6\xe3\x9d\x48\x14\xeb\xee\x3c\x01\x50\x3c\xda\xb0\xfd\xcd\x4f\xd6\xc4\x8f\x00\xdb\xe3\x57\xff\x7c\xb9\x5b\xfd\xd9\x1d\x8a\x3e\x15\x5e\x39\xa3\x69\x37\x1e\x9d\x49\x10\x69\xe2\x05\xb4\x01\x7b\x93\x2a\x35\xb9\x7f\xcb\xef\xea\xce\x14\xa4\x9c\x7b\x03\x8e\x5a\x22\xc9\xe8\x63\x14\x49\xa0\x7d\x32\xe9\x56\xdb\xe7\xa5\xfb\x2d\x0c\xe3\x01\xf7\xba\xe1\x83\xb3\x4d\x11\x37\xe8\x7a\xaa\x0a\x3d\x4e\x3e\x48\x1c\x31\xf2\x5c\x9f\x9e\x49\x4a\xf8\xf9\xe9\xe9\x7e\xf7\xbc\x5a\xdf\x3d\xb9\x4c\x46\x12\x43\x64\xee\xdb\xe2\x85\x5b\xa7\x47\x94\x4e\x10\xc4\x9a\x99\x49\x22\x8d\x9b\x52\x3b\xd6\xd0\x71\x7c\x26\x49\x13\x4d\xf1\xef\xbb\x87\xee\x17\x25\x08\xcc\x62\xee\x78\x48\x82\x31\x60\x8f\xbd\x7c\xf9\x90\x28\xda\x26\xb1\xd9\x93\x3a\xf2\x24\xc0\x99\x00\x84\x38\x78\xcd\xbd\x93\x66\x78\x59\x5c\x2f\x69\xf2\x0e\xa4\x5e\x52\xe6\x96\xb5\x76\xb4\x59\x27\xa0\x44\x0c\x9d\x5e\x21\x51\xfd\x99\x18\xc6\xe4\x15\x02\x46\x24\x12\xbc\x41\x79\xaa\xb2\x66\x8e\x29\x57\x25\x82\xf9\x5d\xea\x0a\xab\xba\x2c\xa6\xa8\x87\x44\x04\x8a\x96\x39\x07\x7f\x2d\x6c\x99\x43\x79\xcc\xa1\xe8\xd5\xb4\x86\x6f\x65\xbc\x0e\x77\xa4\xe6\xe3\x0b\xc7\x1e\x79\x4e\x65\x3b\xce\x77\x15\x4a\xcc\x7e\xe1\x48\xa2\x41\x25\x02\x04\xd5\x4c\xae\xaf\x5d\xcc\x27\x91\x11\x93\x96\xc5\x7e\xfb\xb0\xfa\x73\xd6\x8b\x4a\x64\x6c\x10\xad\x99\x25\xe7\xde\x60\x9e\x77\x6a\xa2\x24\xef\x76\x11\x97\xbc\x20\xcc\x54\x89\x44\x41\x39\x41\x5b\xd8\xd1\xee\xb9\x59\xf1\x3a\x2f\x48\x3d\xe5\x2d\x36\xa7\x48\x3d\xae\x69\x46\xda\x8f\x7e\x35\x49\xb0\xa4\x5e\x10\xc9\x21\x78\x75\xd3\x3b\xe2\xa3\xaa\x62\xd7\x3d\xe9\xc4\x8a\x1e\xc8\x19\x71\x54\x35\xcb\xf2\x70\x84\xe2\x7c\x75\x3a\x77\x67\x96\x86\xa5\x50\x02\xc5\x54\x3a\x67\xcf\x96\x40\xa9\x94\x09\x45\x50\x20\x77\x69\x3b\x86\x66\x5f\x68\xca\x63\xcd\xdd\x56\x77\x3d\x65\xa1\x56\xa9\xaf\x12\x95\x12\x2f\x91\x18\xca\x27\xa8\x34\xf0\x3c\x12\x89\xf9\x40\x44\xd9\x9f\x5c\x26\x4a\x3c\xaa\x4a\x28\x73\xf5\xa3\xca\x1a\x74\xfa\xc0\xc3\x41\x91\x46\x2a\xa0\xf9\xf9\xfd\x6e\xbd\x72\xeb\x6c\x1a\x47\xe8\x85\x83\xa7\x71\x5c\x01\x97\x1c\x24\xee\x80\x44\x53\xa9\xc3\x50\xf7\x62\xe0\x07\x7c\xc6\x40\xa6\xd2\x84\xc5\x64\x4f\xec\x76\xb5\x1b\x0d\x77\x35\xa9\x2a\xed\x76\x17\x01\x83\x4f\x52\x05\x69\x12\xfa\xb4\x21\x3a\xf1\x99\x6d\xa7\x7f\x35\x95\xa1\x51\x69\xa2\x7d\x49\xb5\xc0\xa0\xbb\x3d\x70\xb9\xcf\xf2\xcb\x30\xd8\xfc\x4d\xa7\x4c\x6b\xc3\x2a\x75\x55\x66\x39\x56\x74\xbf\xf3\x1b\x7f\xda\xbe\xcf\x94\x68\x89\xd5\x2b\x56\x86\x9d\x9e\x22\xc3\xdf\xb1\x32\x0e\xae\xed\x28\x3c\x43\xf9\x36\xf2\xc8\x19\x1f\x2b\x32\xab\x54\xb4\xfe\x77\x7b\xef\xad\xb9\x7d\xba\x4c\x50\xf5\xdd\xa8\xdc\x79\x8d\x7d\x49\xb1\x4a\x85\xe2\xa2\xdb\x16\x37\x65\xae\x9e\x8a\xbb\xe5\x53\xd7\x8a\x92\x42\xb9\x4b\x68\x16\xaa\x3c\x76\xfc\xd3\xe1\x47\xb9\x1d\x7b\x9c\x04\x88\x52\x9b\xaa\x98\xd7\xa1\x9e\xb5\x25\x53\xa9\x95\x4b\xa2\x0c\x22\xca\xa9\x62\x82\xa2\x47\xe2\x74\xa6\x00\x90\x29\x31\x73\xad\x18\x19\x40\x54\xfb\x99\xcb\x7a\x4a\xf6\x70\x31\x38\xb5\x2f\x45\xd8\x19\x3c\x1b\x50\x2a\xc7\xcd\xbe\x3c\x8e\xc2\x0f\x93\xfb\xd2\x51\x02\x7d\x20\xf0\x01\xde\xaf\x4c\xdd\x1c\x49\xf0\x8e\x87\x12\x78\x21\x23\x0f\x61\x0f\x7d\x78\x60\xd9\xee\x9c\xae\x3d\x55\xae\xcc\xa8\xdd\x5e\x4c\x0d\xd7\x53\xb1\xa1\x5c\x95\x81\xdc\x4e\x3c\x34\xf0\xb4\xa0\x8d\xcb\xee\xf3\x86\x74\xfd\x02\x23\xf0\x69\x44\xd6\x9e\x89\x45\x26\x05\x75\x93\x55\x75\xb3\x81\x93\xca\x86\x4b\x0a\xf0\x08\x12\x31\x90\x35\x98\x4f\xe2\x00\x57\xa6\xfc\xe3\xee\xba\x73\xa4\xc1\xd7\x26\x02\x64\xf3\x05\xdf\xcb\xfc\x74\xc0\x51\x8d\x8c\xed\x18\xa0\xd9\x61\x77\x86\xab\xcb\x64\xea\x17\x87\x61\x5c\x02\x02\x54\xae\x34\xdf\xd6\x8c\x4d\xe5\x5a\x14\x84\xa1\xd1\xc1\xfc\x0b\x6d\x2e\x60\xbe\xde\x08\x42\x9d\x92\xf5\x09\x54\xf7\xda\x7e\x8d\xb1\xf1\x00\x51\xc2\xb9\xe3\x7c\xd9\xee\xab\xf2\xad\xee\xea\x8e\x29\xf0\xf8\x58\x76\x80\xd6\x41\xa8\x07\xe2\x00\x29\x34\xf5\x36\xaa\xae\x81\xd8\x82\x92\xea\x7d\xf9\xb6\x2d\x8f\x23\xc2\x08\x05\x89\x1f\x86\xde\x30\xdc\xf0\xf7\x72\x78\x90\xf8\x08\x06\x02\x51\x5c\xa3\xae\xca\xba\xb1\x69\x90\x45\xa1\xb6\x7d\x56\x19\x92\x44\x0a\x74\xfa\x56\x6f\xf3\x01\x09\x48\xfd\x84\xb8\x14\x04\x61\x05\x7e\x62\x31\x2c\x2a\x81\x34\x0e\x69\x67\x5e\x6d\xbf\x36\xe5\xbf\x7e\x60\x56\xf5\x7b\x2a\xa4\xb1\xa6\xea\xa0\xaf\xa7\x76\xf7\x1f\xf8\x73\xd0\x2e\xb7\x49\xa7\xbb\xb4\x5a\x6c\xcb\xa2\x26\xce\xdd\x2e\x9c\x01\x29\x02\x79\x3c\x7b\x23\x9f\x7f\x57\x0c\xe5\xf6\x14\x00\xfa\x56\x8c\xa6\x1d\x17\x94\x1f\x31\x88\x21\x6d\xf4\x99\x8a\x1f\x98\xb9\xbe\x82\xf3\xd8\x2a\xf5\x6e\x4e\xaf\xaf\x58\x37\xad\x4d\xf8\xc9\x14\x06\x09\x8a\xe2\x58\x4b\x6c\x6d\x2c\x92\x97\xb5\x50\xa4\xcb\x3a\x37\x05\x52\x25\xda\x32\x43\x5e\x67\xb5\xa4\xdd\xee\xf3\x2f\xa4\xb8\x47\xbb\x8d\x6c\xfe\x17\x05\xd6\xf7\x76\x4d\x61\x4c\x31\xe5\xa2\x6c\x32\x7d\x5e\x96\xad\x03\x80\x15\xe4\x8f\x65\xb3\x26\x62\xcc\xa9\xa3\x05\x2a\xf2\x29\xff\x4f\x95\x6d\xae\x7a\x79\x1a\x79\x1b\x4c\x6b\xc4\xc4\x10\x27\xd1\xab\xbb\xef\xc9\x26\x6d\xbb\x8e\x63\x9a\x2b\x9b\xeb\x23\x9c\x7f\x0f\x68\x15\x1e\x37\x86\xe0\xa1\x35\xf2\x48\x60\xdb\x7d\x25\xe1\x05\x46\xe9\xe5\xa9\x18\x15\x74\x08\x2f\x04\xaa\x25\xba\xf9\xf3\xf1\xe9\x47\xf7\xa3\x2d\x17\x24\xd5\x1b\xc3\xbe\xf9\x21\x8c\x45\x78\xa0\xc2\x8e\x8b\xed\x02\xc0\x23\x3c\x6d\xcc\xbd\xd5\xf2\xeb\x62\x7d\xeb\xc0\x44\x82\xa5\x29\x01\x6a\xd7\x8b\xed\x6a\xb7\x59\xdc\xaf\x36\xdb\xc5\xed\xea\x7e\xb1\xd9\x76\x3d\x64\xe2\x85\x8e\xbb\x97\x28\x5a\xd7\x78\x3c\x35\x74\x2b\x37\x65\xf5\x00\xc5\x49\x83\x6c\xed\x8c\x6a\xb6\xd4\x54\x09\x1e\x46\xf4\x39\x7e\x2c\x97\xbd\xc4\x9b\x12\x3c\x05\xe7\xb2\x3d\xe7\xe5\x4c\xce\x49\x70\x04\x5a\x23\x76\x29\xdb\x3d\xac\xdd\x71\x7e\xa2\x08\xd7\x4e\xd3\xa3\xe3\xcd\x9c\x0e\xaf\xd1\x2a\x26\x02\x8f\x71\x1b\x3f\x7e\xae\xca\xff\xa0\x9c\x2a\xed\x9a\xaf\xd8\x7b\xbf\x93\xc3\x85\x47\x7c\x31\xae\x56\xd0\xdd\x4a\xa0\x62\xe0\x3d\x41\xeb\x58\x35\x77\x86\xdd\xa0\xb3\xb5\xfe\x8f\xdb\xfd\x54\x84\x89\x47\xa3\x5b\x9b\xb8\x75\x3d\xf8\xce\xae\x87\x34\x64\xdc\x02\x65\x79\xc0\xc5\x2b\x7e\x50\xa1\xab\x44\xa8\x53\x4a\xc4\xef\xb3\xd7\xfd\x80\x85\x58\x89\x88\x87\x54\xeb\x42\xe1\xf3\x5f\x58\x37\x7d\x45\xfd\xe4\x95\xc7\x4c\x1b\xbe\xfd\xf2\xbe\x2c\x8f\x93\xcd\x47\x24\x7e\x40\xb1\x86\x47\x7c\x6f\xae\xcb\x93\xf8\x40\x92\x4f\x89\x24\x16\x68\xe2\xfd\xad\xef\x34\xad\xab\x57\x22\x49\x3d\xc7\x34\xb1\x84\xba\xc6\xa6\xc1\x4d\xf6\x3f\xdc\xf5\xed\x81\x21\xa4\xa4\x32\x18\x1b\xb0\x36\x94\x05\xa6\xc6\xa3\x97\x1b\x50\x22\xf5\x53\x8a\x1b\x75\xee\x82\x13\xfd\x39\x8d\xa4\x07\x5d\x6f\x94\xb4\x5f\xad\x1e\xaf\xaf\x17\xdb\x6e\x22\x40\xca\xc1\xee\xdd\xdf\xf0\xfc\x41\x00\x4c\x08\x4f\x50\xf9\x96\x38\x9d\x0d\xf0\xf1\xa3\x18\xf1\xa7\xc9\x22\x21\xd2\x84\x50\xd6\x86\x39\xb7\x63\x67\x50\x42\x28\x53\x85\x47\xdd\xb7\x25\x45\x11\x0d\x5c\xd8\xb3\x3d\xa4\x17\x80\x2d\xb9\xb1\xf4\xa3\x33\x85\x91\x42\x4a\x13\x41\x5d\x67\x58\xdf\x56\xb0\xef\xb6\x38\xa1\x38\xa3\xa1\x70\x0d\x14\x80\xeb\x7e\x56\x11\xc5\xea\xee\xef\xee\xef\xb6\x5f\x87\xd3\x54\xa9\x98\x8a\x07\x1f\xee\xae\x6f\xd7\x8b\xeb\xd5\x6e\xfb\xd7\xf3\x6a\x37\xe0\xa9\x52\x42\x61\x24\x2d\xd1\xf3\x80\x1c\xf4\x6e\xf9\xb4\x7a\x74\x21\x11\x81\x7e\x40\x33\x70\xbb\x1e\xfc\x16\x85\xa6\xd0\xa7\x14\x34\x99\x6b\xc7\x0f\xf2\x11\x73\xd0\xd4\x8b\x18\xec\x39\x42\xfb\x82\x6e\x82\xca\xf0\x26\xe3\x56\xc7\x46\x05\xc9\x98\x9c\x86\xe4\xd0\x28\x3c\x7d\x92\x8e\x91\x5e\x68\xe2\x97\xf5\x49\x5c\x92\x2b\x28\xe9\x25\x8c\xdc\xb4\x5d\x56\x5f\x55\x88\x2a\x2b\x5e\x49\xd7\xa0\x71\xcb\x51\xe0\xfd\x61\xfe\xd8\x03\x18\x8b\xc8\xd3\xd8\x97\x55\x8d\x94\xb6\x1f\x9f\x90\xc5\x92\x3c\xee\xef\x8b\xfb\x97\xd5\xee\xfa\x6e\xb3\x5d\xdf\x5d\xbd\x50\x8c\xe9\xdb\xea\xaf\xdd\xd3\x8f\xc7\xd5\xda\x79\x95\x92\x25\x92\x72\x59\xa8\xb2\x86\xa2\x9f\xd3\x77\x34\xe2\x7b\xb1\x8b\x4f\xb7\xe5\x49\x96\x68\x32\x23\xf7\x50\xef\x3f\xa9\xfa\x57\x92\xc9\x10\x6d\x7e\xf0\xa1\x2c\xd0\x39\xf1\xd2\xf7\x84\xb2\x25\x29\xff\x00\xf9\xf3\x58\x36\x61\xd7\x04\x92\x0f\x39\x19\x1e\x33\xf9\xf3\x11\x0e\x53\x1f\xc6\xf6\x0e\xfc\x48\x5a\x62\x9e\xbb\x6b\x72\x1a\xd7\x68\xcb\x7b\xf6\xd9\x91\x00\x2f\x9d\x5e\xe7\x33\x98\x72\x04\x22\x0e\x79\x6e\x87\x0a\xb9\xc6\x1a\x2b\x2c\x24\x5e\x65\x86\x89\xff\x6f\xf0\x5e\x2a\x19\x84\x3c\xb0\xc1\xe6\x07\x07\xac\xf9\xd2\xb5\x59\x30\x1a\x55\x74\x56\xd7\x0e\x88\x3e\x85\x2b\x8d\xcf\x18\x86\xd2\x28\x88\x63\x73\x81\x29\x98\x74\x8d\x98\xd1\x40\x20\xf2\x85\x3b\xbd\xc8\xf3\xc5\x7a\xdb\x65\xcd\x3a\x93\x4f\xc6\x11\xc6\xa6\x12\xee\x6c\xb9\x65\xa1\x01\x5b\xa3\xf3\xa9\x3d\x25\x63\xcd\x84\xa5\xe0\xb0\xb7\x40\xfa\x8e\xb6\x35\xe1\x9c\x1c\x84\x32\x57\xe3\xfa\x5b\x99\x80\xd1\x21\xbc\x62\x23\x91\x66\x25\x53\x96\x44\x3d\x21\xf3\x0f\xcc\xcc\xa8\x19\x42\x51\x65\x0a\x06\xe0\xdb\xc1\xe6\xcb\x03\x58\x49\x5b\xa2\xc8\x9b\x4d\xa0\xc9\x54\x08\xfa\x12\x7b\xa8\xfb\xf7\x66\xdb\x84\xa7\xc8\x60\x7e\x2d\xaf\x40\xfe\xdc\x96\x4e\x08\xd6\x35\xfb\x1e\x05\x9d\x74\x76\xac\x6f\x6d\x12\xb6\x6b\x8b\x22\x53\x69\x5b\x92\x20\x18\x34\x58\x3f\xe9\xc9\x8c\x53\x9e\x6f\x42\x33\xe5\xa6\xa9\xc6\xa1\x4c\xa9\x42\x03\xfd\x69\x27\xd8\x5c\xb0\x47\xaa\x54\x84\x46\xdb\x45\xd4\x43\xc9\xdf\x0f\xbe\x88\xd2\xdc\x69\x8a\x98\xa8\x7f\x3d\x1a\x73\xe8\x89\xd0\xa2\x2b\x1e\xcb\x06\xdb\x3d\x68\xdc\x1e\xc7\x64\x20\xde\x67\xc5\xcf\x03\x85\xac\x0e\x38\x6c\x35\xd2\x11\xa2\xdd\x94\x08\x3a\xe2\x82\xc3\xdd\x38\x19\x6f\x50\xee\x38\x08\x88\x58\x0a\x2b\xc9\xbd\x66\xf0\xbd\x95\x27\x63\x72\x9a\x0f\x67\x2b\x79\xeb\x02\xb9\xb6\x9d\xf9\x81\xe3\xd3\x6a\xe7\x36\xe5\x44\x46\xe7\x56\x2c\x30\x35\xca\x46\x7a\xac\x29\x65\x99\x7f\xc7\xea\x52\xf4\x65\x70\x80\x91\x35\x6a\x7a\x00\xf6\x33\x64\x79\xde\xc7\x74\x14\x0b\x35\x69\x0e\xd9\xda\x8a\x8b\xdc\x93\xeb\x16\x29\x42\x0d\x93\xe4\xf7\x61\x68\x0a\x29\x16\x63\xac\x3a\xf2\x71\xd2\xfb\xee\xb5\xa8\xff\x66\x48\xc0\x9e\xca\xf7\x3c\x43\x4c\x03\x75\xe3\xd8\x17\xbb\x64\xa0\x0a\x22\xe9\xb4\xc3\xb6\xef\xc3\x4f\xa9\x82\x94\xd1\xa8\x75\x81\x29\x4a\x86\x3d\x55\xe4\x3c\x8f\x07\xa8\x0a\x52\xee\x68\x39\x6f\x66\x32\xa1\x7f\x4c\x7b\x4b\x30\x15\x12\x07\x7a\x33\x73\xc0\x64\x15\xfa\x1e\x23\x44\xc2\xfa\x6e\xb9\xda\x3d\xaf\x57\x57\x2f\x7f\xb9\x3b\x0b\x63\x4e\x95\xdb\xba\xac\x9a\x53\x81\xbb\x1a\xf3\xfc\x37\xd7\x8c\x7c\x43\x39\x86\x07\xac\x48\xa2\xa7\xfd\xd6\xc4\x0e\x46\xe5\xab\xae\x97\x4e\xc2\x1e\x4c\x75\xff\xf4\x6d\x7e\x61\x54\x31\x0f\x88\xcd\xb0\x2b\x81\xa5\x82\xe8\x0f\x51\x6c\xc3\xf9\xa8\x62\xdf\xa7\x19\x04\x56\xa7\xa0\x5b\x4c\xb6\xa5\x0b\x23\x4c\xf6\xc8\x0b\x1e\x47\xa5\x62\x69\x10\x90\xaf\xd8\x7c\x3d\x1d\xa0\xb8\xf4\x4a\x54\xe2\x85\x49\x34\x2b\x9a\x65\x12\x3d\xc4\x65\x44\x98\xc6\xf3\x44\xa6\x50\xa9\x24\x34\x24\x03\xa0\x0e\x59\xb1\xc1\x66\x55\xfc\xca\xaa\xf2\x32\x41\xa2\x12\xed\x85\x56\xaf\xc2\x4a\x98\xff\xc0\xec\xa6\xac\xee\xa4\x33\x7b\x55\x1a\x02\xd5\x2d\x2c\xee\xd6\xd7\xeb\xa7\xe7\xcd\xc8\x26\x53\x29\xf8\xa6\x60\x83\xea\xfa\x6d\xba\x75\x72\x11\x08\x25\xcd\x85\x06\xeb\xe6\x06\xb2\x7c\x73\x12\x76\x3b\xb8\xc2\xbc\x7c\xfb\x17\x56\xdd\xc5\x40\x18\x7b\x41\x53\x25\xcb\x24\x06\xaf\x44\xca\x3c\xcb\x2d\xa3\xb2\xc6\x30\xa9\x4c\xed\x91\xf1\xa5\xa5\x67\xb2\x96\x70\x52\x59\x37\x31\x94\xef\x39\xfa\xd6\xef\xbb\xb5\x3f\xb9\x5b\xe5\xa7\x84\xc4\x01\xa5\x88\x6d\x2a\x27\xa2\x3c\xd7\x28\x34\xa1\xac\xa5\xa1\xcf\xea\x56\xbf\xf9\xab\x2b\x8c\xa9\xf4\x0a\x2c\xd3\xfa\xc2\x70\x12\xbb\x93\x69\x16\x90\xbb\x67\x58\x6b\x51\x91\xab\x53\x8d\x09\x7f\x94\xd2\x69\xcc\x53\xa2\x77\x6a\xfd\xb2\x2d\xbc\x2f\x21\x97\x5d\xa3\x32\xae\x7b\x7d\x3a\x1e\xcb\xaa\xa9\xb7\x15\x98\x45\x34\xbb\xc4\x64\x8e\x56\x41\xf4\x18\x97\xc6\x50\x7e\xe9\x9c\x70\xf4\x7c\x0e\xd6\x09\xbf\xab\x37\xcd\x49\x65\xe5\xe5\x69\x3a\xeb\x0e\x3d\x4c\xc8\x71\x76\x1a\x4b\xae\x30\x1e\x2b\xa7\x5f\x5e\x34\x99\x5b\xa9\x90\x05\x2c\xee\x3c\xfc\x1c\x5f\x41\x95\xd7\xb8\xaa\xe5\x09\x73\xa0\xa0\xfa\x79\xbc\xb2\x23\x0b\x0c\x81\x7e\x57\x29\xbe\x7a\xfe\x73\x28\x08\xa0\x90\x21\xc6\xb6\xd2\xc4\xa0\x54\x87\x55\x65\xa3\xb1\x83\x9c\x09\x12\xeb\x7d\x66\xee\x60\xce\x8d\x77\x74\x85\x60\xdc\xed\x0e\x6d\xf1\xf7\xe0\xac\xc8\x43\x4f\x98\xdd\xb0\x75\x39\xe7\x42\xe5\xc8\x23\x53\x7c\xa7\xe6\x3d\x0e\xd7\x2b\x36\x4a\xd1\x12\x8e\xbb\xe6\xf0\xde\xdd\x60\x92\x74\x02\x39\xad\xfd\x33\xb6\xa1\xd0\x4f\x3c\x8a\xe5\x1d\xe0\x27\x56\x84\x62\x1b\x9f\xd5\x57\x06\xb5\x64\x19\xc6\x28\x80\x3b\x97\xda\xc2\xc0\xf7\x03\x70\x8a\x98\xd9\x01\x77\x39\x71\x13\x53\x6d\xda\xa5\x43\x82\x41\x04\x71\xe2\x16\x17\xdf\xdd\x4d\x10\xfb\x68\x53\xb2\xcb\xe0\xc6\x0d\xe2\x31\x3e\x6e\x88\x7e\xc4\x30\xd0\x34\x00\x4f\x85\xb9\xdc\x63\xf9\x76\xe5\xd4\x88\x26\x37\x18\x6b\x1f\x7d\xc7\xa0\x63\x04\xea\x8f\x63\xe2\xe4\xfe\xee\xd2\xd0\xf0\x2c\x2c\xd6\xab\x9b\x21\xe5\xb5\xc2\x34\x51\xa9\x6f\xeb\xae\xad\x80\xda\x79\x75\x80\x2c\x9f\x0c\x3b\xf0\x3a\x5d\xa2\x35\x42\x7e\x85\xd3\x17\x00\x2c\x8c\xb5\x83\xce\x67\x45\xeb\x1c\x2f\xaa\x66\xca\xdc\xa6\x10\x7c\xed\xc9\x4e\x2c\xf6\x49\x6b\xb2\x98\xdc\x28\xfb\x30\xa6\x3c\xdc\x6d\x10\x54\x42\x96\xd3\xce\x3e\x70\xeb\xcf\xdd\x0d\x92\x3f\x28\x3c\x48\x7a\x3e\x2e\x83\x2e\x18\x4c\x51\xc1\x98\xa1\xdb\x1b\xca\x6a\x99\xb9\x62\xb9\x59\x5d\xc7\x54\x90\x9b\x49\xc0\xec\xab\x49\x5a\xac\x7b\x37\x42\x18\xf1\x2b\x50\x6a\xf5\x7e\x9c\xe5\xd5\x42\x99\x84\x4e\xa9\x62\x88\xa2\xbf\x3a\x0f\xe2\x84\xa8\xb8\xa2\x1d\x6a\xa6\x6e\xee\xff\xf8\xbf\xff\x18\xc1\xb5\x06\xd1\xac\x6e\x23\xf5\xff\xdd\xfd\xea\xfe\x77\xe8\xa6\xa3\xf2\x99\xd1\x25\xb2\xf4\x0c\x2e\xc8\x3d\x1e\x58\x2a\x4c\x08\x6b\xfc\xb5\x6c\xf2\x8e\x1a\x4e\xa1\x92\x91\xb6\xab\x7c\x7d\xea\xef\x59\x07\x46\x17\x74\xdb\xf1\x2c\x5d\x6d\x97\xe5\x6a\xf2\xd5\x75\xe8\x51\xdd\x69\x03\xf5\x4f\xd2\x69\xb7\x87\x6b\x8f\x25\xb4\x58\x5d\x3d\x3d\xbe\x6c\xac\x4a\xcf\x66\x47\x5e\xf8\x66\x7c\x0e\xed\xf1\x50\xf5\x65\x67\xb7\x25\xe4\x43\x82\x23\xed\xa1\x1f\xa6\x1d\x1e\xe1\xa6\xac\x50\x82\x91\x88\xf9\xd4\x88\xd2\xcc\xd7\x44\x96\x76\xb7\x7c\x32\x7a\xd6\x66\x4c\xf1\x37\xc4\xee\xdc\x2c\xe5\x74\xee\x6f\x7b\x10\x70\x86\xa2\xfb\x1d\x65\xe2\x34\x3c\x0d\xb0\xa8\x9a\xa9\x36\xd6\x9c\x07\x92\xf5\x22\x32\x43\xdf\x4e\x73\x21\x85\x1c\x09\xf2\xb4\xcb\xc4\xf8\x93\x68\x3f\x32\xbc\x17\x0a\x73\x07\x9d\x9f\xf6\x40\x43\xa3\x7c\x7b\x82\x4a\x41\x7b\x33\xf0\xe5\x93\x3a\x30\x7b\x54\xc0\x98\x43\x79\x3c\xe9\xf6\xe3\x4d\x65\x27\x94\x0e\xb8\xd9\x6f\xda\x49\x74\xc9\xa4\xa0\x83\xd8\xa7\xdb\x2f\x06\x6c\x0d\x83\x21\xa7\x83\x18\x4c\x30\x0c\x8f\x39\x38\xfb\xb4\x0f\xb0\xea\x40\x4a\x2d\x9d\xdf\xd1\x07\xe3\x74\xa0\x8d\x38\x89\x13\x94\xfb\x32\xba\xa9\x10\x12\x52\xe5\x31\xd1\xa4\xab\xad\x83\x15\xe9\x10\x63\xf2\x0b\xc9\xe8\x1a\x32\x27\xe9\x28\x61\x24\x6a\x62\x29\xf8\x30\x37\x48\xaa\xf9\xc8\x8b\x8e\x54\x42\x15\xae\x3b\x71\x3a\xdf\x23\x7c\xdc\x31\xf6\xb5\xd3\x06\xbd\xa9\x10\x37\x47\xac\xba\x4b\x26\xb1\xa4\x67\x27\x16\x8a\xab\xd3\x99\x2e\x68\x71\x54\x1f\xd3\xfb\x7c\xf8\x97\x02\xaa\x9e\x3b\x37\x02\x45\xbf\xeb\x7d\xd9\xa3\x6f\xab\xed\x5b\x39\xca\x9e\xe8\xd4\x0f\x0d\xc2\xd1\x10\x1f\x4f\x94\x29\x94\x4e\xc3\x98\xec\x69\x2c\x7e\x61\x5e\x5e\x14\x58\x69\xf0\x24\xb1\xc6\x5a\x66\xd4\xeb\xac\xa6\x3c\xb5\x6b\xf5\x25\x61\x97\x4d\x85\x0e\x54\x8d\x25\xd2\xf8\x84\xf9\x40\x0b\xcd\x79\x6c\x37\xe8\xbe\xf7\x34\xc5\x3e\xff\xb2\x65\x6a\xa8\x24\x6c\xe6\xcf\xe8\x53\xfc\x66\xe7\xb0\x87\x2a\xcf\xec\xfb\xe2\x74\x5e\x1d\x8e\xcd\xf9\x39\x7b\xc7\x49\x5a\x56\xab\xd6\x3a\x25\x37\xbf\x6e\x1e\xcb\xe6\x3b\xe4\x9b\xac\x98\xe2\xfa\xb5\xc2\x00\x42\x47\x62\x62\x55\x76\x75\x66\xf8\x1b\xbe\x66\x45\x3b\x8b\x7f\x2d\xba\x00\x99\x7b\x55\x1a\x7c\xc2\x01\x48\xfa\xfc\xff\x28\x27\xa0\x51\xad\x95\xe7\xaa\x80\xda\x4d\xd8\x02\x63\xba\xa3\x95\x20\x51\x9a\x86\x6a\x48\x3e\x79\x47\xe8\x79\x2c\xa1\x55\xd2\x09\xd5\x7c\xb1\xbf\x33\xaf\x13\x74\x74\x26\xd3\xf8\x40\x96\xc6\x68\x40\xb6\x0e\x6b\xd2\x1d\x0a\x1e\x9a\xc2\xd5\x09\x39\x76\xdb\xc4\xa8\x7c\x9c\x20\xac\x8e\x43\x63\x9a\xd9\x40\x8f\x33\xc1\x2d\x40\xc9\x2a\xed\xd6\xc6\x06\x72\xed\x42\x13\x1b\x21\xc5\xe4\x9e\x4e\x6d\x2b\x8d\xd7\x7f\x9e\xb0\xca\xb0\xef\xa6\x4d\x3a\xac\x4b\xa5\x8c\x86\xce\xf8\x92\x3e\x03\x22\x94\xf9\xe7\x29\x93\x3f\x6f\x72\x47\xf8\x83\x5e\xc0\x52\x1a\x44\x54\xd4\x66\x33\xd9\xae\x09\x0d\x48\x5c\x75\x2c\x16\xb3\x28\x82\xb6\x23\x62\xea\x04\x9d\xf7\xd9\xf1\xa5\xa8\x41\x63\x7e\xc1\x8a\x63\xbb\x87\x09\xa7\xee\x3b\x05\x67\x2a\x5d\xbe\x1e\xd2\xab\xcd\x7f\xc7\x10\x3d\x99\x38\x4e\x80\x9e\xdb\x6b\x10\xcc\x40\x2f\x62\x9e\x8e\x7a\xa3\xac\xb9\xd0\x8f\x71\xfd\x7c\x45\xde\xea\xc3\xfa\x7a\xb3\xdd\x2c\xc7\x0c\x47\xe8\x45\xd2\x2c\xf1\x9d\x76\xcd\x4b\x91\xbd\xf7\xab\x04\x7a\x11\x72\x8a\x20\xfc\xab\x2c\x63\xce\x26\x43\x20\x0e\x41\x74\x50\x70\x93\xfb\xfc\x4e\x49\xed\x31\x9a\xd9\x7a\xf9\xe8\x25\x5e\x10\x5a\x2f\xbf\xdd\x2b\xd5\x16\x8a\x9f\xf5\xe4\x9c\x49\x60\x96\xad\x3c\x93\x58\xd4\x78\x11\x08\x40\x2f\x0d\x91\xa8\x9c\x6e\xbf\x3e\x8f\x9e\x25\x8d\x23\xed\x77\xc9\x2f\x34\xb8\x24\x9b\xd3\xfb\x68\x61\xed\x2c\x43\xf4\x52\x8c\xc8\x1c\x59\x43\xdd\xec\xfb\xb3\x82\x67\x58\x53\xb2\x42\x97\xbb\x25\x14\x57\xe8\x4c\xa7\xf1\x5d\x01\x0f\x84\x29\xd4\xfb\x85\x55\x73\xa7\x4d\x8e\xfc\x1e\xeb\x7a\xbb\x87\xe2\x21\xeb\x4e\x28\xe2\x88\xac\x60\xb3\x1b\x7c\x58\x76\xfe\xd1\x1d\x4f\x52\x0b\x33\x79\x2e\xf4\x44\x22\xc9\x98\xdc\x43\xbd\xf9\x99\xe5\x97\xc4\x04\x1f\x0c\x3c\x19\x79\xb4\x0e\x6c\x6e\x1d\x16\x1e\x3d\x19\xa3\x0a\x1c\xa3\x61\xa1\xb3\xd7\xab\xb2\x1c\x90\x1b\xf7\xef\x0f\x99\x49\xca\x52\x9d\xe2\x43\x46\xb5\x9d\x5f\xc6\xf7\x85\x7e\x4a\x2c\xdd\xc5\x40\x96\xdb\x35\x69\xa0\x3a\x47\x3a\x7a\xa7\xd0\xc4\x90\x5c\xab\x8e\x90\xa2\x5d\x1d\xc6\xf8\x86\x08\xe8\x3f\x8e\xcc\x4d\x1e\x4c\xa7\x46\xc1\xd9\x00\x4c\x6e\xb2\xf1\x12\x8c\x8c\xc5\x11\xb1\x7e\xdc\xc2\xe1\xe3\x53\x4f\xd6\xde\xd1\xb0\x65\xdc\x43\x4a\xe0\xb6\x9b\xf2\x4a\x9d\xcc\xb0\x9b\x63\x62\x46\x16\x78\x46\xac\x94\xa6\x6e\x3b\x48\x3e\xad\xc3\x46\x16\x30\x21\xbc\x9e\x55\xbd\x9d\x9d\x56\x63\x1c\x59\xa0\x12\xee\x1b\xff\xc3\xd4\x3a\x1f\x73\x90\xf3\x02\xb3\xc8\xa2\x90\x53\x6c\x59\x1b\xfa\xb6\xab\x53\x55\xac\x8d\xd4\xc4\x97\x19\x5f\x0b\x59\x94\x26\x9e\x74\x5c\xc2\xa2\xdd\x1a\x44\x8e\x33\xe4\x73\xc8\x62\xa6\x62\x83\x91\xa9\x6f\x4e\x3d\xe9\x0c\xb2\x98\x23\x11\xc3\x39\x17\xe1\x2b\x15\x7c\x0c\x5e\xee\x14\x55\x39\x39\x6f\xc2\xa8\xb2\xe3\x54\x18\x72\x1a\x17\x30\xba\x88\xbd\x20\x8b\x53\xc0\x21\x12\x7d\x36\xb4\x80\x2c\xd6\x3c\xb5\x9b\xed\xe2\x79\xbd\x7d\x9f\x7c\x9b\x24\x14\x54\x57\x70\xb5\x5d\xf5\x75\x70\xc8\x92\x08\x89\xda\x7a\x8b\xb5\x55\xf7\x73\x0d\x32\xa0\x52\xb4\xfd\xa9\x2a\xa5\xfb\x31\x65\x46\xa5\xfa\xb5\x84\xbc\x4f\x9b\x20\x83\x20\x91\x43\x7c\xed\x03\x36\xfb\x52\xdd\xa9\xbe\xdd\x90\x29\xd5\x36\xbe\x41\xcf\x31\x17\xa2\x40\x06\x36\x91\x5f\x16\xcf\x70\x2e\x4f\x1f\xec\x84\x0c\x54\xc8\x6c\x76\xc3\xea\x65\xef\x9e\x26\xf9\x4f\x64\x82\x19\x91\x6b\x69\x29\xe0\xdc\xcf\x1c\x3d\xed\x64\xa0\x89\xf6\xe1\xb9\x35\x34\x5d\x3d\xcb\xf8\x1c\x32\xe6\x3a\xe8\xa5\x4b\x6e\x66\xbf\xd6\x68\x70\xc9\xc4\x08\x97\x2e\x97\x0e\x19\x62\x1b\x14\xf7\x63\x1b\xc0\xdf\x94\x55\x83\xca\x38\x8d\xe3\x88\x31\x32\x15\xa5\x51\x5f\x01\x72\x9f\x89\xf9\x17\xa5\x14\x98\x3a\x42\xeb\x5d\x99\x70\x9c\xbb\x16\x7a\x86\x48\x53\x95\x94\x48\x19\x23\xd4\x2f\xbd\x26\x64\xe8\x9b\x97\xf2\x0b\x4e\x79\x67\x4c\x0d\x7b\x70\xcf\x8f\x5c\x69\x1e\x7d\xbf\x07\x6c\x40\x41\x03\x57\x50\xe3\xcb\xfa\x6e\xd2\x39\x00\x1a\x11\x5f\x9f\xae\xef\xab\x4d\x99\xab\x1f\x33\x38\xf4\xd9\x25\x8d\x7b\xc2\x58\xb5\x2e\xec\xbe\xc8\xf3\x97\xa2\xbe\xa8\x24\xb2\xbd\x59\xa8\x49\xab\xf9\x55\x34\x23\x48\x08\x72\x16\x0b\x9d\xf4\xab\xcb\x4b\x21\xcd\xf6\xd6\x8e\x97\xae\x13\xf7\x59\x60\xb9\x67\x09\x83\xd9\xfd\x1e\x05\x4e\x91\x71\x53\xc0\xb1\xde\x97\xcd\x04\x8d\x33\xb9\x6b\x1e\xfb\x60\x23\x09\xed\x36\xc9\xc3\x68\x5b\x92\xd4\xf6\xa4\x9b\xd6\x64\x68\x2f\xf3\x4c\xfe\x5c\xbf\x5c\x7d\x82\x17\x40\xee\xfb\x1e\xf1\x47\x19\xf7\xee\x3a\x83\x43\x59\x4c\x79\xfd\xff\x06\x3f\x8a\x3d\x5b\x10\x45\x44\xc8\x74\xb7\x7c\xda\x62\x75\xa0\x0c\xa6\x9b\xa1\x3c\x40\x8f\xf7\x81\x06\xbb\x78\x2e\xea\x67\x2a\xc9\xee\xb3\x1b\x6e\xa8\x7e\xaa\x4b\x3b\xba\x6a\xa8\x24\x25\x60\x68\x69\xe8\x7c\x61\xe4\x11\x37\xc4\x46\x26\x5c\xd5\xe0\x03\x09\x2d\x0f\x73\x79\xb3\x0b\x27\x8f\xb4\xf2\x5d\x84\x90\xf6\xeb\x6e\xa1\xe4\xb1\x1f\x75\x25\x6c\xed\xf4\x6c\x9d\x37\xaa\x79\xed\xbe\x76\x1c\x2a\xa2\xb4\x3f\x94\xf2\xe7\xae\xf5\x4a\xee\x2e\x95\xcd\x5c\xd7\x14\x7c\x1b\x1b\xdc\x89\xf1\x97\x77\x3d\x20\x25\x96\xbc\x7f\x9c\xf2\x1c\xaa\xa5\xe3\x32\xe9\xae\x05\x18\x28\xb7\x19\xca\xb2\x52\x5f\xcb\x5c\x4d\xa2\x28\xc8\x13\x30\x35\xb0\xd0\x34\x20\xf7\xfd\x49\xe6\x6f\x2a\x11\x06\xe1\xf6\x17\x96\xff\x19\xdb\xbb\x3c\xd1\x3c\x1d\x84\xff\xb6\x3d\x01\x1e\x72\x48\x55\x60\xe2\x11\xc7\xd3\x45\x65\xd6\x64\x1c\x03\x0a\x9d\x1a\xb8\xe9\x6a\xbd\x5c\xaf\xae\xef\xb6\xee\x34\x22\x52\xc2\xee\x30\x57\xea\xb8\x2a\x9a\xea\x6c\xca\xed\xdc\xf8\x60\xd1\xbf\x5d\x57\xa5\x9d\xcc\xfd\x42\xfd\xba\xac\x24\x47\x2e\xb9\x2f\x0c\x75\xf7\x6a\xba\xe6\x72\x19\x07\xe4\x02\xb4\x16\xde\xf0\x03\x4b\xf0\xc8\x0e\x36\xc1\xb2\x7b\xd4\x6e\xfd\x9e\x7c\x19\x15\x46\x14\xbf\xb0\xec\x8c\x54\xf4\xe0\x1e\x42\x81\x4f\x6e\xcb\x33\xbc\xd5\x3d\x5e\x16\xb9\x42\x6d\x56\x37\xf2\x17\xca\x23\x39\x26\x0d\x1c\x9c\x8b\xc5\xd1\x0f\xc1\x98\x8b\x79\xfe\x5c\x96\xfb\xba\x6f\x80\xc8\xfa\x81\x2e\x4b\xd4\xb7\xc5\x60\x38\x3b\xad\xf6\x49\x3b\xc0\x07\x4e\x08\x47\xc5\xa8\x22\x6b\xb5\x7c\xda\x6d\xfe\xda\x6c\x57\x0f\x3b\x0a\x1a\xba\x76\x1d\x24\x54\x38\x64\x78\x45\x0d\xf0\x61\x51\xb5\xeb\x7d\x9d\xd5\x4d\xef\xce\x72\x2d\x03\x0a\x64\x92\x03\x7f\xc8\x06\x0d\x88\x54\x8f\xb9\x84\xe6\x9a\xe0\x5d\x1d\xfd\x2e\x72\xad\xd3\x40\xf7\x15\x3b\x17\x8f\xac\xb5\xd1\xb4\xde\x90\xaa\x45\x9e\xef\x6c\xe9\x8d\x6d\xf7\x3d\x3f\xa5\xf0\x78\x66\xea\x41\x08\x92\x33\x9c\xfc\xbe\x27\x42\xc2\xde\x3f\x57\xa5\xc4\xba\x6e\xad\x2c\xf7\x6a\x7c\xc6\x4d\x15\xe2\xee\x68\x24\xd8\x4c\xa9\x2c\x56\xbe\x77\x0d\xe7\xae\x97\xef\xa7\x94\xd6\x7b\xd8\x6e\xbb\x9f\xc2\x34\xea\x0a\x67\x77\x36\x96\xd6\xa5\xf4\xd1\xf7\x21\x52\x36\xfb\x74\x0b\xf5\x0b\xe1\x2c\x2c\x85\x68\xd8\x2f\x53\xa1\x1d\xaa\x7e\x20\x43\x87\x6d\x37\x6e\xc0\x6c\x50\x0c\xfd\x10\x43\x43\x33\x8c\x8d\xdc\x53\xd4\xeb\xea\x7c\x47\x01\x92\x07\xac\xda\xcf\xde\x8c\x9f\x3d\x52\x26\x6a\xd7\xd1\x43\x39\xd2\x46\xdb\x1e\x73\x45\x3c\x09\x0b\xf5\xab\x5d\x5c\xd4\x6e\x51\xe0\xa1\xcc\x3e\xdb\x10\xfc\xd6\x2d\x4d\x9d\x2f\xb1\xb6\xd4\x07\x03\x34\x02\xfa\x89\x17\x44\x36\xa7\xd9\x4e\x08\xbf\xfb\x1d\x3c\x66\x01\xda\xeb\xf2\xd4\xe0\xcc\x94\xf4\x53\x16\x9b\x34\x53\x56\x64\x87\xd3\xe1\xb6\x84\x7c\x00\xf2\x46\x3f\x0d\x52\x23\x5f\x6f\x0b\x5b\x2e\x65\x6a\x27\xaf\x0c\xc2\x84\x78\x02\x96\x8e\xe0\x65\x3c\x4f\x7d\x91\x72\x87\x29\xba\x85\x1c\xde\xcf\x93\x1b\x12\xa9\x42\x97\x5f\xa0\x53\x4c\x62\xc8\xe8\x0b\x60\x94\x75\xdb\xb9\xb4\xe8\x22\xcf\x3b\x36\xa7\x7a\x7c\x73\xae\xf4\xba\x3d\x2a\x25\xa5\x8e\x4d\x83\xef\x5b\xc8\x7f\xba\x07\x94\xb1\x4f\x6c\x93\x57\xca\x54\x9f\x6c\x9a\xb2\xea\x46\x4f\xe2\x3a\xa5\xbe\xa1\xf0\x1e\x2a\x19\x75\xa7\x56\xa9\xd1\xf3\x34\xd4\x6e\xf7\xd9\xa0\xdc\xb8\x8f\x20\xa3\x8f\x91\x4f\x05\x39\x24\xa9\xb5\x29\xc0\xe5\x4e\xd1\x47\x08\xa9\x65\x83\xc5\x54\x14\xec\x53\xb3\xc9\xd7\x8c\x21\x0e\x51\x04\x06\xbf\x94\x2f\x9a\xa6\xb2\xf8\xf7\x41\x56\x0e\x7d\x0d\x9a\x40\x75\x96\x27\xf0\xf1\x74\xb0\xf9\x52\x0c\x3c\x3f\xa6\x6d\xb2\x5d\x7f\x07\xbc\x26\x23\x97\x37\xf0\x52\x4e\x1f\xe7\xe6\xe9\xe5\xf1\x7a\xb5\xb6\x69\x0e\x77\x0a\x16\x44\xc2\x1b\x30\x59\x2c\xcb\x83\x68\x2d\x8e\xac\x2c\xbe\xa1\xf9\xce\xc9\xff\x05\xff\x76\xbd\xc3\x84\x10\xc9\x96\x0b\xc8\xba\xd0\xdd\xb9\x04\x52\xe0\xc4\xa4\xf3\x16\xc7\x63\xee\x82\x1f\x53\xe4\x3d\x06\x4c\x1b\x92\x1d\x22\x70\xc8\x47\x64\x8a\x18\xf0\x28\x75\xe5\x34\x1b\x59\xc1\xd1\x12\x0c\x5c\x9f\x2a\xb8\x8c\xef\x05\x81\x87\x14\x5c\xdf\x7e\x5b\x5e\x8f\x14\xcb\x7e\x0b\xd8\xc7\x20\xe0\x29\xb3\xa6\xc8\xc2\xd6\xe2\x92\x0e\xac\xcd\x92\x9e\xfa\x72\x04\x0c\x02\xdf\x97\x76\x16\x7c\x87\x6a\x7c\xc7\x81\x30\xe7\xf9\xb6\x78\x5e\xfc\x35\xcc\xfc\xce\x2d\x0f\x41\x20\x19\xc5\x5b\x75\x56\xa8\x5d\xdb\x62\x25\xb0\xec\x97\xb7\x2e\x63\xf7\x05\x03\x8c\x1c\xbb\xc0\xf3\xdd\x0e\x55\xd6\xec\x98\x37\xbe\x7e\xe8\x73\x22\xa8\xb4\x16\x50\x6d\x04\xca\xc6\x93\x30\x08\x15\x12\x61\xd9\xad\x29\xa2\x99\x82\xb3\x31\x88\xb8\x8f\x66\xf1\x21\xfe\xe0\xa9\x47\x72\x11\x5b\x0c\xa2\x20\xa0\xd0\xd4\xa2\x96\x58\xa8\x5b\x57\x9b\x8e\x41\x14\x21\x9a\x1a\xd2\xec\xf5\x15\xab\xef\x65\x2e\xa1\x28\x57\xd5\xe9\xd8\xc7\xa5\x31\x48\x55\x08\xa2\x8f\x3b\xdf\x15\xba\x5c\x90\xda\x4c\xbb\xba\x8f\xef\x1d\x18\xa7\x9c\xc8\x15\xea\xb2\xc2\xe5\x3e\x3b\x1a\x96\xa8\x2f\xa3\x37\x05\xca\x10\xc6\xbd\x61\x66\xe4\x35\xd4\xe4\x34\x22\x8c\x9c\xde\xe4\xb7\xc7\xe5\x05\x1f\x2e\x06\x02\x02\x13\x6c\x7a\x83\xe3\xef\x6a\x18\x3f\x9f\xe8\x81\x10\x26\xed\xf8\x75\xc2\xea\x8e\x81\x50\x01\x21\xd1\x69\x12\x2d\x6c\x19\x70\xdd\xb7\x6a\x1e\x0f\x22\x16\x56\xb9\xc0\xb5\x6a\x6d\x54\x77\x48\x3b\xf7\x35\x2b\xbe\x8c\x2e\x2a\x23\x34\xbe\x2b\x34\x59\x53\x7e\xe9\x7e\xd5\x14\x1d\x11\x50\xe3\xce\xec\xc7\x35\xa2\xda\xc1\x20\x5f\x83\x81\x8c\x63\x3f\x1a\x54\xeb\x15\xe7\x7b\x28\x14\x91\x75\x74\x3e\xc3\xac\xf3\x10\x48\xa9\xa4\x59\x4d\xeb\x53\xde\x50\x31\xae\x6d\x51\x2c\x96\x4e\x2c\xf6\x54\x28\xca\x46\xcd\xd2\x4c\x61\xa0\xb4\x4f\x38\xc9\xaf\x6b\x42\x68\x0f\xa3\x1c\x81\xd2\xa9\x3f\xa4\x11\xa2\xba\x36\xdb\xa6\xd3\x90\xf0\xdf\xc7\xec\x88\x03\xa4\x32\x86\x5e\x20\x2d\xf1\x63\xc7\xa6\x33\xb3\x9d\x86\x2c\xf0\x94\x11\x20\x29\x6b\xdc\x5a\x35\x22\x9d\xe5\x38\xd4\xf6\x70\x43\x2c\x64\x91\x91\xff\x78\x7a\xb8\xfb\x7e\xb7\xd8\xae\x1c\x54\x07\x43\x96\xca\x40\x8e\xb2\xec\x0f\xa5\x1a\x14\xa6\x62\xc8\x20\xf5\x1c\x7c\xc4\x70\x73\xb4\xa6\x58\x3d\xc5\xc7\x4c\xaa\x50\x30\x64\x52\x10\x3f\xd8\xee\x21\x2b\xb0\x8b\xd6\x84\x3c\xf4\xc9\xd2\x75\x0f\x47\x21\x9b\xbd\xf1\x5e\xc6\x27\xe0\x69\xe4\x48\xb2\x1f\xce\x5d\xfa\xb1\xbe\xca\x41\xfe\x34\x51\x3b\x52\xcd\x46\x07\xa2\xc5\x90\x03\x98\x89\xd2\x40\xd5\x5c\xb5\x2f\xb0\xbf\xac\x04\x62\x4e\x59\x3f\xdd\xaf\x76\x9b\x97\xe7\xd5\xba\x6b\xd1\xb1\x08\x9d\xd2\x7b\xb3\x2d\x9f\xe1\x7c\xa9\xf6\x8e\xa1\xef\x7b\x12\x5c\xc2\x85\xce\x5d\x3b\xdc\x58\x32\xc5\x46\x4d\xde\xbe\x9f\x1a\x70\x5b\xdd\x43\xad\x17\x85\x32\x92\x0e\x5f\x66\xd6\xce\xd0\x07\x9f\x80\x8d\x1b\xec\x88\xe7\xe6\xd5\x3b\x31\xf4\x51\xbb\xf8\x1d\x99\x6a\x63\x74\xbc\xed\x14\x70\x4d\xeb\xc3\x42\x51\xb9\xd8\xdf\xcd\xa3\xda\xa3\x43\x4f\x9a\x08\x35\x54\x5b\x78\xcf\x46\xe1\x35\xd7\x85\x23\xe5\xa4\x1f\xa0\x2a\x32\x1c\x78\x3e\x61\x18\x33\x61\xc7\xd7\x16\x8a\x9f\x1b\x07\xd1\xec\x9e\x35\x62\x8a\x62\x49\x7d\x96\x39\x2b\x5e\x8d\xb2\x56\x36\x57\x3f\xf6\xc1\x4d\x46\x91\x22\x30\xe9\xee\xe0\x4a\x6f\x3e\x44\x5f\x99\x09\x72\x19\x0b\x0d\xa3\x38\x34\xd8\x84\x77\x17\x93\x0c\x63\x34\x00\x73\xca\x8e\xaf\x1d\xb5\xc2\xac\x73\x1b\x26\x5e\x64\x24\xeb\xa0\xde\xdf\x75\x2f\x20\x49\x3d\x5a\x65\x6a\xf8\x85\x83\x31\xd3\x1f\x96\x8a\x90\x48\x3b\x1f\x50\x41\x9e\xf7\x1b\x4d\x98\xca\x90\xa2\x26\x4e\x21\x78\x4e\x10\x09\x43\x88\x42\x4a\x14\x3e\x5c\xdf\x2d\x9f\x08\x21\xc3\x7e\x87\x3b\xfb\xe0\x15\x8a\xc0\x27\x3b\x89\x4a\x63\x5d\x59\xbc\x89\xfd\xb9\x5b\x12\xca\x70\x89\x98\xc5\x69\xac\x69\x3d\x7c\x93\x32\x62\x84\x92\xbb\xca\x9a\xe5\xbe\xac\xd4\x6f\x42\x0f\xa1\x62\x40\xab\xd0\xaa\x18\xf1\x56\x60\xa8\x38\x06\xcc\x5a\x7a\xcb\xb2\xfa\x4d\x0a\xb0\xed\x4e\x98\xb2\x9d\xd5\xdf\x2e\x4b\x9b\x46\x48\x26\x1d\x31\x8a\x08\xee\x44\xfe\x56\xbb\x59\x3c\x40\x3f\x66\x31\x01\x48\x3b\x1f\xb0\x47\xe9\x63\xa8\xfd\xc0\x18\x35\x27\x31\x38\x6d\xd2\xb5\x1a\xeb\xda\x0c\xe5\xd5\xdd\xf3\x40\xa8\xf0\x43\x6b\xae\x3d\x8a\xe2\x0e\xcf\xc4\x72\xd6\x5d\x29\x65\x2e\xdc\x64\x33\xae\xe3\x35\x45\xcb\x84\x28\xae\x8c\xa6\xeb\x3e\xab\xd4\x8f\x0e\x7d\x83\xa1\xd6\x01\xa1\xa6\x9b\x0c\x2b\x5b\xe8\x82\x91\x67\x29\x24\x16\x5a\x67\x79\x46\x81\xb8\xc9\x78\xbe\xfc\x92\x91\x97\x7a\x3a\xe8\x05\xdb\x40\x36\xd7\x78\xac\x50\x0e\xc2\x7b\x91\x07\x82\x18\xfe\x9e\x21\x07\xd9\x0e\xf2\x76\x89\x73\x00\x43\x8c\x78\x68\x54\xc7\x36\x98\xeb\x67\x38\xbb\xa2\x88\xbf\x0b\xe2\x18\x8d\x94\x88\x47\x41\xcf\x4a\x76\x03\x79\x2e\x40\xfe\xa4\xdd\xde\x75\x48\x12\xc3\xe9\xe8\x62\xba\x03\x29\x05\x8c\x78\x0a\x46\xae\xb8\xdd\x21\x1e\xf1\x7d\xc8\xcc\x8a\x11\x87\x90\xfc\x58\xf9\xf5\xc7\xd2\x84\x8e\xba\x86\x94\x59\x83\x60\x37\xa0\xbb\xdb\x35\xe5\x31\x77\x2c\xc8\xf3\xab\x42\xc4\x85\x91\xd8\xbd\x32\x9f\xef\x99\x82\x2d\xee\xbc\x7e\x1a\xa7\xc6\x42\xa8\xf1\x22\x56\xf8\xbb\xbf\xee\x1c\xc2\x57\xa6\xc0\xbb\x90\x65\x3b\x61\x49\xf9\x69\xcc\xce\x83\x51\x98\x58\xd6\x63\xe2\xd8\xca\x5e\x8b\x97\xe3\xec\x7a\x12\x85\x29\xa3\xaf\xf5\xfc\x7d\xa8\x1d\x87\x51\xa8\x24\x71\x22\xd2\x4a\xf8\x80\x87\x2e\xd6\x12\xc5\x5e\x40\x8e\xed\x01\xb2\xa2\x41\x62\x78\xdc\x90\x67\xd2\xee\x44\xf5\x0c\xd7\x16\x46\x49\x22\xa9\xfa\xdb\xa5\xd4\xda\x9e\xd3\x52\x65\xdb\x55\x78\x18\x58\xf0\x81\xc2\xaa\x8f\xf1\x46\xa2\x35\x10\x07\x7a\xbc\x96\x67\x6a\xfc\xf6\x85\x0a\x9c\x68\xe3\x22\xcf\x6f\x61\x82\x07\x88\xa4\xaf\x88\x9d\xf5\xea\x7e\xb1\xfc\xb6\x7c\xba\xdb\x74\x0d\x61\xea\x77\x35\x4f\x14\x1f\x98\x21\xfd\xc1\x48\x05\x8c\x48\xb2\x48\xf8\x66\x18\x2b\x89\x54\x98\x50\xb9\xc5\xe2\xeb\x62\x37\x7a\x91\xa8\x65\xe2\xbb\x35\x94\x2c\x15\xe2\x27\x1d\xdd\xfd\xf8\x22\xda\x63\x10\x8f\x5d\x29\xee\x7f\x19\x77\x49\x4d\xf9\x06\xa8\xff\x9c\xea\x66\xe7\x96\xef\x9d\x22\xd2\xba\x6e\x3a\xc7\x1e\x8b\xe9\x7e\x1f\xee\x96\xeb\xa7\x81\xea\xea\xdf\x9b\x7d\xb1\x07\xdc\x41\x62\xda\xd7\x99\xe9\x66\x8b\x87\x63\x0e\x0d\x29\xd2\xd9\x4e\x8c\x21\x25\xc6\x8e\x39\x14\x3b\xa3\x06\x48\x78\x60\xd7\xce\x7d\x8f\xac\x6b\x81\xc5\x1a\x41\x9d\xfb\xdf\x19\x95\xc1\xa8\x8c\x62\x79\xcf\x7b\x2c\xca\x03\x16\x65\x31\x5e\xfa\x62\x1e\x04\x44\x61\x9e\xc9\x72\x9b\xe5\x79\x77\x78\x18\x26\xee\xde\xcc\x4d\x1b\xd2\xfb\xd6\x49\x2b\xc8\x62\x35\x6f\xcc\x0d\xc2\x98\x43\xac\xe5\x90\x5f\xf3\x3b\x54\x59\xef\xab\x5b\xbf\x36\x0a\xfe\x18\xf8\xd3\x31\x57\x11\x09\xc2\x5d\xe1\xff\x60\x54\x5e\x8d\xb1\x1f\xc7\x5e\xea\x32\x70\xa7\x4a\xa2\x59\x79\x3e\xdd\xb1\x62\x5f\xf8\x34\x40\x5d\x75\x4d\xc7\x0a\xd5\x4e\xb3\xf1\x60\x8e\x03\x8f\x11\x39\xd0\xa2\x92\x65\x01\xf3\x5a\x44\xff\x9f\x6b\xc8\xe4\xfb\x06\xa1\x71\xb6\x7b\x86\x2a\xac\xa7\xbc\x54\xae\x2b\x70\xe5\x77\x0c\x4a\xd9\xe1\x74\x58\x15\xaa\x7c\x1b\x84\x56\xe2\x40\x06\x34\xcb\x7f\x40\xbd\xef\x4a\x1c\x6c\x5b\xc8\x63\xe1\x0d\xaa\x2e\x9d\x1d\x3c\x3b\xec\x42\x69\xea\xe1\x57\xdb\xfb\x21\x90\x6d\x6c\xa1\xc7\x71\x94\x2a\xe3\xbe\x9f\x6f\xca\x4a\xa2\x81\x27\x0f\xb9\x9a\x30\x8e\x53\x9f\x22\x38\xe3\x7a\x0b\xd7\x28\x38\xd9\xd2\xbd\x3c\xd4\xfc\xa3\x27\x52\x53\xc4\xc1\x86\x32\x6d\x2a\xd9\x36\xa6\xa9\xef\xeb\x2e\x46\xb7\x85\xd7\xab\xf3\x43\xa9\x4e\x39\x6e\xcf\x47\xc7\x7b\x36\x66\xf3\xc3\x18\x42\x2f\xd4\x43\x4b\x6f\x36\x28\x16\x43\x28\xba\x30\xfc\x43\x56\x34\x8b\x53\xb7\x43\xc5\x80\x31\x21\x92\x48\x44\x82\x4d\x4a\x07\x31\x16\xc8\xc9\x19\x7b\x73\x85\x56\x13\x3f\x36\x16\xa8\x23\x57\xb2\x51\xc8\x93\x68\x2d\xbb\x79\x3c\x44\x2c\xb9\x07\xce\x65\x2c\x0f\xc7\x06\x77\xdc\x01\x2b\x62\xc9\x63\xd2\x86\x5b\x5c\x3f\xdc\x3d\xee\x96\x4f\x8f\xdb\xf5\x62\xb9\xed\x5a\x03\x8f\x3b\x0b\x93\x90\xe8\x4f\x9a\x77\x6d\xa8\x28\xb1\xbd\xfd\xb6\x1d\xcd\x2a\x95\x04\x72\x08\x84\x3b\x4d\x0a\x09\x30\x56\x98\xc8\x4e\xdc\x2c\x13\xd9\xed\xea\xd1\x9b\x71\x99\x63\xe4\x5e\x14\xd8\x2a\x0f\xc4\xea\x02\x67\x15\x63\x20\x42\x4b\xd5\x7d\xb7\xd9\xbc\xac\xae\xc7\x61\xc7\x18\x21\x71\x64\x3e\x37\x15\x22\x05\xad\xaa\x25\x34\xf8\x5a\x12\xe6\x6e\x76\x4e\x25\x1e\x93\x89\xb9\x3d\xc8\x6f\xca\x6a\x69\x73\x38\xa3\x7b\x4b\x98\x97\x38\x2e\x24\xa3\xde\x44\xdf\xf7\x75\x08\xd6\x1b\xf7\x0f\x4d\xd5\x43\x56\x5f\x9d\xce\x4f\xc7\xee\x75\x25\x4c\x4a\x4a\xa3\x1d\x89\x34\xc8\xfe\xc8\x3d\x9f\x6c\x10\xc7\x4a\x3f\x50\x65\xc6\x84\x73\x16\x78\x23\xd9\xdf\x7b\x2a\xa4\xf8\x34\x23\x9d\xf0\x94\xfb\x5e\xb7\x52\x18\x9d\xaf\xd1\x68\x4d\x78\x1a\xd1\xdb\xbc\x5e\x6e\x9d\xaf\x9d\xf8\x81\xe1\xa5\xa4\x18\xd2\x78\x58\x25\xbe\x00\x1a\x00\x75\x56\xbc\xe6\x78\x57\xfc\x2a\x7f\xe2\x8f\xac\xd9\xf3\x45\xd5\x0b\x1d\xfc\x31\x5f\x2d\xed\x4e\x21\x15\x85\xe6\x2c\xcf\x5c\x77\x55\x89\x54\xda\xb9\x2f\x4f\x35\xde\x20\x6e\xf7\x15\xd6\xfb\x8e\x88\x1e\x13\x1f\xa3\x34\x1e\x80\x0f\x9e\x28\xe0\x57\x7f\x31\xfa\xdd\xee\x1f\xdb\x39\x60\x1d\x1b\xcd\x16\xeb\xa6\xb5\x48\xc6\x77\x11\xc8\x98\xde\x76\x57\x63\xf8\xa1\xfa\xdb\xf8\xb8\x90\x79\x26\xde\x35\xc0\xd4\xc3\xe5\x50\x09\x43\x46\x55\x2c\xbf\xca\xd6\x82\xb7\x1a\xfb\x2f\x45\xd6\x4c\xfb\x61\x42\xc9\xad\xed\xbd\x55\xf0\xd8\x6d\xfe\x7a\xb8\x7a\xba\x77\x0f\x1d\x79\x2a\xb0\x76\xc8\xa3\x43\x87\x96\x55\x7d\x51\x9f\x8a\x49\x24\x0d\x31\x58\xbb\x56\x53\x6d\x7b\xbb\x34\xcc\x32\x72\x60\x12\x33\xdf\x33\x4e\x6b\x7b\x67\xf5\x2e\x53\xd3\x0e\x5c\xdb\xcc\x95\xcd\x24\xdc\x43\xdd\xbc\x18\x5d\x9c\xec\x30\x59\x92\x93\x38\x31\x14\x75\x1b\x10\x55\xe6\xf6\x3c\xd7\xa6\x91\x39\xfe\xb0\x03\xe4\xf9\x12\x8e\x5d\x1d\xe9\x73\x6f\xa4\x7f\x30\x80\x13\xc6\xc9\xed\x22\xa3\xad\xf7\x4f\xc7\x9d\x52\x26\x3d\x87\x4a\xc9\x0e\x38\xe4\xd0\x70\x3d\xb8\xe4\xac\xe3\x54\xb9\x29\xab\x35\x2a\x3c\x1c\x3f\x43\x4f\xba\x23\xfd\x80\x30\x00\x64\x3a\x12\x0d\xb1\x7b\xb0\x34\x8d\x89\xe0\xf2\xf9\xe5\x71\x39\x7a\xe2\x54\xba\x4c\x06\xa8\xdd\xdb\x1e\x2b\xdc\xbd\x82\x7a\xc5\xe9\xa7\x4f\x55\x48\x6c\x0b\x94\xbe\x9c\x8e\xbe\x8b\x32\x52\x4c\x20\x35\x08\xab\x97\xe7\x1d\x65\xb5\xaf\xb0\x43\x35\x24\xc2\x53\x86\x8a\x94\x0a\x7a\xa0\xf8\x59\x9d\x8e\xdd\xcc\x12\xda\xf3\xa2\xa1\x80\x29\x59\x5c\x9b\x51\x7d\xf9\x60\x0b\x75\xdb\x70\x22\x34\xd3\xa9\x7d\x90\x3b\xba\x97\x7a\x42\x71\x8b\x89\x8c\x4d\xfe\x2e\x2b\x64\x45\xdc\x69\xbf\x20\xcb\xaf\x2e\xf9\x0c\x86\x73\x53\xb1\x90\xb6\xb9\x6f\x78\xbe\x99\x51\xf8\xeb\x7b\x11\x76\xe7\x1e\xea\xef\xf8\x0a\xdd\xa3\x6a\xc6\x1c\xef\x96\xca\x71\x59\x76\x80\x9d\x44\x0b\xa0\x20\xb3\x2e\x2b\x62\x75\x1a\x2e\x5f\xf6\xc9\xc6\xd7\x48\xbd\x34\xb1\x81\x8b\x66\x75\x38\xe6\xe5\x19\xab\xdf\x84\xf2\x52\xc6\x7d\xa2\xb6\x3b\xc0\xfb\x75\x59\x94\x1d\xc2\x22\xe5\xbe\xb6\xc5\xed\xad\x61\xbb\x6b\x3a\xe1\x4d\x4c\x79\x60\x60\x48\x86\xe7\xd9\x96\xe8\xb5\x0b\xc2\x90\x75\x17\x53\x6e\x19\x5e\x1b\x84\x83\x89\x10\x76\x27\xf7\x43\xb0\x00\x5c\x42\xe5\x10\x15\x70\xd7\x26\x8d\x30\xd6\xb1\x7c\xc3\x6a\x10\xbd\x4e\x7d\xe5\x53\xd2\x8c\x06\x18\x79\x5f\xff\x5f\xc5\xe8\x98\x06\x41\x4c\xb3\x6f\x0f\xf5\xf5\xc9\xa4\xdc\xc6\xd9\xfd\x34\x48\x7d\xc2\xae\xae\xb6\x5f\x49\x33\xe3\xf6\x69\xe1\x96\xae\x34\xe2\x48\x46\xf3\x8d\xe7\x79\x7c\x38\x43\xd2\x48\x68\xcf\xf0\xcd\x1c\x81\x02\x37\xb3\x93\x3f\x4d\x78\x80\x96\x96\x66\x48\x4b\x5b\x5f\x06\x75\xd2\x84\x0b\xda\x1e\xdb\xd5\xe1\xe9\x17\x56\x77\x43\x88\x45\x9a\x28\xf3\xcd\xb2\x22\x6b\xd6\x60\x4d\x8e\x3e\xf7\x98\x26\x2a\xa4\x80\x19\x28\x65\x79\x5c\xca\xa2\x6e\x2a\xc8\x2e\x36\xf6\x59\xbe\x76\x4c\xc1\x0b\xac\xef\x27\xcb\x42\xd1\xc6\x6d\xe2\x7c\x55\x37\x06\x20\xe2\x54\x51\x50\x16\xd7\x98\x67\xbf\x3a\xa1\xa9\xb6\x25\x0d\x0d\x04\x96\x68\xba\xe7\xdf\x85\x60\x86\x39\x02\x8c\xc3\x3e\x8e\x1b\xa4\x22\x65\x54\x19\xfc\x3d\x93\x4d\x6b\xe5\x9c\x0e\xed\x66\xb1\x7c\x1a\xbf\x76\x81\x11\x18\x56\x53\xb5\x6a\xf6\x03\x86\x39\x4c\x85\x36\xec\xb4\x2a\xab\xcb\xb7\xee\x00\x89\x1a\x7a\xb0\x8d\x9d\x21\x0e\x24\x3b\xeb\x7b\xa6\x8a\x2b\xaa\x3a\x7b\xc4\xb7\x31\x43\xfc\x07\x1c\x46\xf3\x4f\xab\x7c\xc3\x49\x7c\xff\xaf\x3f\x47\x4f\xa0\x2c\xc8\x94\xfc\xfd\x76\xb9\xf9\x32\xb9\x7a\xc2\x29\x83\xb2\xdd\x1b\x7e\xfa\x49\x2b\x30\x42\x55\x16\x3b\x45\x24\x22\xdd\xeb\x53\x2a\xa5\xb4\xd8\xcf\xb3\xb4\xb5\xc9\x97\x31\xb6\x14\xc3\x80\xe0\xa6\xdb\xd5\xe2\xc1\x6a\xc3\x38\xb3\x38\xc5\x28\xa5\x38\xa0\xc9\xa7\x39\x71\x8f\xb9\x93\xa4\x9c\xb4\x62\x6e\xaf\x9e\x87\x11\xaf\x14\xc1\x48\xb9\xdb\x24\x2b\xf9\x95\xcc\x33\xff\x8d\xb7\x8d\x14\x45\x48\x68\x3a\x85\xd0\x50\x50\x74\xf7\x8b\x39\xcb\x3e\xd5\xbe\xe4\x96\x29\x30\x49\x92\x6e\xc3\xdc\x4c\x8a\x1b\x52\x1d\x29\xb2\xd7\x1b\xc3\x97\x79\x03\x12\xb7\x65\xfb\x6f\xaf\xfc\x83\xa9\x96\x92\x2a\xbe\x9d\x2c\xe5\x87\x3a\x1e\xa6\x3f\x78\x91\xa9\x2a\xdd\x41\xdb\xd1\xd0\x2c\x98\xfc\xa3\xe5\x51\xe9\xc3\xe6\xe0\x29\x8f\xdc\x40\x2c\xd4\xba\x53\xdd\x42\x60\x9e\x4f\xea\x01\x6b\x0b\x96\xea\x7e\xf7\x0d\x20\xf4\x19\xe5\x29\xcf\x4e\x87\xa7\xee\x2e\x81\xf9\x06\xc8\xdd\x3a\xf4\xb2\xac\xba\x88\x17\x30\x0c\x79\x87\xd9\xbf\x71\xbf\xfa\xbe\x29\x5d\xde\x39\x58\xc2\xf5\xa9\x91\xfb\xa1\x10\xf1\xc5\x3a\x08\xbe\x34\x44\xe3\xf6\x71\xb7\xa5\x0d\x9b\x3d\x80\xc3\x49\x41\x90\x24\x84\x41\xcd\x0c\x46\x7c\x32\x30\x21\x04\x83\xcc\xc6\x42\x95\x55\x3d\x4f\x88\x88\x10\xa2\xa6\x2c\xc4\x11\xaa\xa6\x75\x10\x77\xad\xf5\xa8\x6c\x98\x7c\x77\x80\xaa\xca\xe0\x15\x77\xa3\x1a\x23\x88\x40\x27\xbc\xb3\xe5\x52\xf7\x73\x2c\x3c\xda\xbc\xaf\xb2\x3c\x13\x8e\xd3\x00\x21\xe1\x51\x18\x0e\x40\x19\xcf\xe6\x52\x33\x32\x59\x08\x89\xf0\x08\xba\x85\x05\xe1\xef\xdd\x29\x52\x2f\xa2\x54\x5c\x8e\xba\x19\xa5\x97\x21\xf5\x80\xfc\x9d\x1e\x1f\x55\xdf\x94\x95\x01\x90\xba\x2e\x3c\xe1\xd1\x10\x6f\xd6\xae\xd5\x0a\xdf\x5d\x3b\x44\xd2\xb2\xef\x54\xb5\x39\xfb\x88\x91\xdc\xf6\x12\x1e\xa4\xae\x56\x2d\x2b\x5e\xfb\x3d\xdb\xb5\x4b\x83\x09\x12\xa7\xf3\x28\xb2\x00\x02\x35\xc1\x91\xfe\xfa\x36\x5c\x57\x40\x41\x1c\x75\x3c\x3a\x85\xca\x8c\x63\x31\x7e\x1b\x18\x6a\xed\x62\xfd\x90\x51\x51\x2b\xf6\x32\xf1\x08\x98\x84\x34\xa5\x8e\x86\x20\xf3\xb3\x52\xa8\xc9\x67\x47\x19\x53\x8c\xf4\x66\xf5\x78\xf7\xe7\xe4\xaa\x1a\x3d\x1a\xdd\x59\xbd\x38\x60\xa1\x50\xad\xa0\xca\xcf\x5d\x71\xe0\xa8\xb3\xf0\xb8\x17\xdb\xe2\x8b\x97\xbb\xa2\xd9\x9e\x8f\x2e\x90\x6a\x36\x3c\xbb\xdf\x09\xce\x12\x8a\xaf\x03\x15\xb2\x3f\x40\x91\xe9\xd6\xad\xb8\x99\xca\x54\xa2\xe0\x5c\x04\xa1\x45\x3c\x1a\xa6\x28\x31\x53\x93\xe8\x3a\x87\x8a\xf9\x44\x5e\x31\x28\x3f\xef\xce\x14\x22\x19\xe9\x44\xa6\xf1\x7a\xaa\xa6\xf7\xee\xa7\x61\x2c\x7a\x0b\xe7\xda\xea\xa5\xab\xa1\xf4\x9b\xed\x1a\xf0\x90\xf7\xdb\xd2\xe7\x60\x61\x11\x28\x90\xa6\x12\x54\x19\x59\x87\x1f\x88\x3f\xbb\x52\xf8\x76\x31\x95\x04\x14\x5d\xae\xee\xba\x9f\xa4\x88\x22\x0b\x39\x98\xc0\x19\x45\xa8\x0c\x96\xd2\x96\x3c\xcf\x0c\x4e\x11\x22\x70\xec\x9d\x8d\x01\xd4\x5c\xc4\xdc\xc0\x6d\x1c\xd9\x82\x7b\xdb\xa3\x4b\xc4\xa9\x89\xa5\x1b\x2d\xe3\x5b\xe7\x96\x8b\x44\xd8\x2a\x1c\x72\x05\x1f\x50\x65\x30\xad\x97\x46\x91\x72\x3f\x8a\x5c\xdc\x5a\x96\x07\x1a\x34\x86\x1e\xfc\xcb\x05\x06\xa0\x1b\x10\x69\x04\x61\x5f\xc5\xd9\x91\x6b\x51\xed\xf4\x97\xae\x8f\x01\x7a\x3c\xc0\x1e\xf2\x91\x8f\x27\x20\x96\x8e\xa1\xdf\xd2\x79\x0e\x63\xf1\xb6\x93\xe0\x01\xe5\x98\x77\xc7\xb2\xcf\x5c\x7e\x2d\xcb\x4b\xcd\x9c\xf1\xc0\x10\x32\xa4\xac\xce\x03\xfc\xc4\xca\x50\x22\xe1\x1b\x69\x54\x4e\x46\x90\xc0\xc8\xe9\x2b\x58\x0c\xd2\x05\x59\x0e\x0a\x29\x24\xf1\x42\xb8\x38\x0a\xb1\xe3\x13\x0d\xfd\xf8\x3d\x4a\x25\x20\x70\xb3\xdd\xa0\x64\x06\xf6\xa6\x90\x9a\xeb\x01\x5a\xed\x19\xaa\x1a\xe5\x92\x98\x6a\xdc\x4b\x51\x09\x8f\xac\xe7\x6e\x43\xaf\x57\xa7\xf3\x5c\xe2\x5f\xa8\x04\x29\xac\xf4\xe7\xea\xfb\xea\xf1\x65\xd5\x9d\x00\x74\xe2\xe2\x70\x8f\xf8\x66\xf7\x9c\xaf\x50\xff\x0b\xab\x72\x44\x0f\x82\x42\x29\x3f\x05\xf7\xec\x8e\x35\x8a\x12\x6e\x93\x4b\x61\xec\xf4\x4e\xcd\x6c\xa8\x5b\x3b\xd9\x86\x92\xce\x23\x97\xd0\x1e\x81\xcc\x70\x52\xac\x9a\xfd\x7d\x59\xbc\xae\xde\xb1\x92\xd9\x80\x36\xe5\x37\x8c\xa4\xf3\x4b\x9e\xc0\xd0\x0b\x99\xcd\xf0\xfd\x6f\x34\x96\x30\x34\xf5\x45\xb5\x95\x8e\x5f\xe4\xf9\xd3\xa9\xba\x85\x7a\xf5\x2e\xf1\x78\x11\x27\x98\x9e\x37\x61\x96\x7c\xcd\x71\x28\xbf\x6c\xae\x7f\xf4\x53\x1b\x45\xe2\x0d\xf4\x26\xea\xfe\x77\x41\xd0\xf9\x1d\x59\x96\x8b\x42\x6d\x4e\x62\x96\x79\x16\x05\x2a\x85\x36\xa0\xb1\xc8\xf3\xde\x21\xf9\x70\x7d\x17\x68\xd9\x14\x76\x2e\x7d\xf0\xb8\x58\x7e\xb0\x84\x6a\x4f\x59\x8c\x6e\x9e\x2f\xf2\xdc\x0e\x97\x8f\x90\x02\x1f\x9c\x83\x69\x92\x00\xd9\x43\xbd\xa1\x65\xfb\xf6\x04\x15\x14\x4d\x97\x94\x13\x3a\x30\xb8\x4d\x03\x12\xb9\xb9\xff\x7d\xfe\x5b\x68\xe0\x4e\xce\xf8\x3a\xab\x4d\xd2\x70\x58\x92\xdf\xf6\x30\xde\x26\xc5\x88\xca\x1e\x48\x3e\x70\xbc\x47\x3e\x9b\xd0\x4a\x82\x49\x2e\x8c\xb4\x84\x4c\xab\xe4\x29\x84\x8e\x77\xc5\x51\xf5\x8c\x2e\x28\x7d\xae\x0c\x92\xc3\x20\xd2\x87\xfc\x2f\x28\x03\xc6\x68\xf6\x19\x1e\xb5\xa2\x98\xa6\x5a\x65\xc0\x15\x79\x5d\x3b\x13\x1b\xfd\xd1\x1a\x57\x65\xf5\x11\xc3\xd4\xe7\x3b\xb8\x8c\x12\x41\xe6\x5d\x0d\xbf\xf0\x01\x1b\xa0\x99\x37\x86\x45\x7f\x4a\xe2\x3a\xc4\x66\x5e\x30\xbf\x4e\xaf\x25\x22\x13\xed\x6a\xbd\xcb\xef\x25\x31\x81\xb8\x26\x25\xa8\x70\x6e\x93\x1d\x8e\x39\xe5\xef\x87\x53\x4b\xc6\xa1\x47\x21\x4f\x85\x86\x14\xa1\x72\x4b\x45\xd7\x21\xe2\xb6\xbe\xa1\xc9\x7f\xe5\x3f\x50\xd4\xd9\xc4\xe1\x97\xb1\x54\x60\xc3\xf3\x96\x02\xdc\x48\x8e\x7c\xbe\x88\xcb\x18\x8d\x4a\x5e\x33\xcd\xf5\xcb\x24\x16\x8e\xf9\x6c\x5b\xc1\x2f\xcc\x67\x92\x02\x32\x01\x0b\x06\x55\x99\x3e\x8f\x9e\x29\x11\x82\xe2\xf6\xaa\x23\xba\x34\xd1\xd6\xf9\xf9\x25\x13\x15\xea\xb8\x2f\x91\xb1\xa1\x98\xeb\xb2\xe8\xef\x47\xa7\x54\xf6\x7d\xb4\x83\x6e\xa2\x28\xe0\xb6\x4c\x99\x4a\x4e\xf9\xd3\xcd\x49\xcc\x5b\xf3\x32\xb5\x90\xb5\xbc\x2c\x5e\xdd\x2a\xfb\xa5\x6b\x93\x04\xc6\x38\x1a\xea\xac\x1b\xc4\xba\x5f\xb7\x27\x59\x1f\x09\x69\x32\x52\x4d\xd9\x96\x0b\xcb\x31\xf6\xc1\x53\x0a\x3f\xa1\x24\xeb\xea\x54\x95\x24\x52\xec\x2e\x2b\x82\x90\x02\x2f\xd7\xf8\xeb\xe8\x36\x76\x29\xbd\x50\x73\x2a\xfb\xcb\x33\xe5\xec\xae\x0f\x42\xf9\xee\x90\x30\xa2\x43\xda\xd7\xd8\x3e\xda\x34\x93\x25\x65\x14\x50\x59\xc9\x2f\xac\x47\xe0\x0d\x29\xc1\x27\xcb\xbc\xc0\x77\x4a\xcf\x6c\x7b\x0c\xa3\x54\x36\x88\xf9\x5c\x6e\x9e\xb1\x5a\xf6\x39\x4a\xa9\x7c\x4d\x79\x0c\x1a\x3e\x4e\x6d\x38\xe8\x5a\x53\xa3\xd6\xd2\xa5\x88\xaf\xab\xd3\xeb\xd5\xe9\xfc\xc1\x77\x51\x5a\x71\x0b\x49\xb8\x5b\xdd\xcd\x02\x46\xa5\x56\x81\x34\xbc\x3e\x3f\xc7\x73\x48\xa3\x2d\x59\xf9\xcf\xcc\x87\x9f\x5f\x1d\x94\xc7\x34\xe5\x6b\x0f\xf0\xfe\x03\x5e\xb1\xea\xeb\x29\x94\x27\x39\x65\xc5\xee\x33\x8d\x1b\x6c\x76\x9e\x17\x74\x4d\xe8\x51\xbc\x21\x6f\x14\xb1\x49\xba\x95\x4b\x31\xe6\x83\xab\x21\xed\xc4\x79\x06\x95\x05\x8a\x29\x8f\x06\xf9\xb7\xea\x7c\x6c\xca\xdb\x4c\x37\xb5\x25\x1b\xed\xcf\xa1\x19\xd1\x62\x1e\xc7\xec\x5b\xa8\xb8\xe7\x53\xda\x5e\x3a\x2a\x6c\x54\x3c\x60\xae\xbe\x7c\x14\xaf\x54\x3c\xf6\x8d\x49\x4f\x2b\xe8\x5d\xf1\xab\x1c\x72\xfd\xcf\x9a\xe3\xca\x0f\x13\x34\xb6\xb5\x3c\xcb\x1c\x17\xc7\x23\xb6\x9b\x93\x3d\x8e\xf1\x64\x50\xa0\xf3\x87\xfd\xc9\x1d\x1a\x27\x60\xed\xbb\xaf\x67\x51\x65\x2a\xfb\x9f\x21\xf0\xbd\x5c\x30\x54\x10\x1a\x32\x93\x03\x1e\x04\x56\x33\x48\x51\x15\xfa\x3e\x95\x6c\x19\xfb\xdd\x99\x35\xc7\xe1\xb9\xe6\xa4\xfe\xdc\xfc\x57\xa1\x02\x1a\x45\x7d\xdd\xed\xce\x0e\x25\x57\x43\xa1\xa2\x40\x93\x4b\x93\xd5\xbb\x9f\x59\xf1\xba\xd3\x65\xb5\x1b\x94\x07\xaa\x28\x35\x4b\x48\x27\x43\x5d\x95\x6f\xca\x32\xda\x74\x7d\xc0\xc8\xfd\xe2\x21\x6b\x6e\xd0\xaa\xeb\x67\xcd\xd9\xe4\x62\x26\x18\x74\x15\xe9\x80\x3c\x23\xf3\x50\x43\xde\x92\xf1\x74\xb6\xdd\xe3\x58\x11\x17\x87\x15\x08\x19\xed\xa0\x2a\x4e\x7c\x5a\x2b\x6c\x30\x62\xdc\x98\xf8\xda\x11\x27\x0c\xa0\xfc\xae\x51\x7b\x74\x17\xc4\x66\x4e\x5a\x2b\x23\x96\x43\x54\x69\x84\x14\xa6\xb3\x18\x12\x72\x06\x3a\xde\x45\x54\x10\xa4\xa4\x98\xb1\xd8\xa3\xd9\xdf\xae\x2a\xc8\x0a\x5d\x96\x8a\x77\x5d\x22\xc3\x98\x33\x20\x63\xc5\xc9\x1c\x56\xc2\x43\xd2\xd4\xb8\xbd\xbb\x1f\x4e\x61\x25\x83\x80\x0c\xb8\x5b\x38\xe0\x94\x33\x44\xc9\x50\x12\xba\x60\xf3\xf2\xfc\x7c\xff\xd7\xee\xe6\x69\xbd\x7b\x58\xac\xbf\xad\xb6\x77\x8f\xb7\x5d\x9f\x44\x7b\x43\x11\x20\xc8\x2f\xea\x17\xdb\x3e\x24\xe5\x55\x1e\xb1\x98\x04\x97\x6c\x0f\xc5\x4c\xf5\xab\xc8\xd4\xea\xfd\x98\x55\x48\xaf\x6b\x64\x04\x29\xed\x19\xc0\x10\xd1\xf9\x15\x8a\xd0\xef\x53\x14\xf3\xf8\xac\xda\x93\x44\x77\xb9\x5d\x6d\xb6\x14\xa4\xec\x4e\x15\xa4\x44\x5d\x7c\x38\xdf\x74\xa1\x95\xae\x4d\x19\xb6\x64\x50\xea\x3f\x65\x56\xe4\x59\xdd\xec\x4a\xf5\xc1\x1e\x8a\x5e\x00\xe6\x12\xf7\xdb\xc9\x87\x45\xe6\x2b\xb7\x22\xa8\xac\xb9\x86\xb2\x6b\x88\x22\x22\x47\xf9\xb1\x78\x18\x5e\x19\x59\x0c\x24\xea\xb1\xdd\x67\xa8\xbb\x1f\x13\x43\x34\x5f\x95\x39\x1a\x89\xfa\xd9\xe1\x8b\x3c\xb1\xac\x24\xa5\xfc\x69\x7c\xd6\x0f\xee\x98\xa3\x81\x76\x9f\x8a\x1a\x1b\x42\xa6\xe7\x17\xf9\x53\xe4\x1a\x29\x04\xab\xd0\xd0\x31\x7c\x70\x2e\x3f\xe5\xd2\xda\x2b\x0f\xf0\x4e\x70\xfe\x66\xe1\x12\xc1\x4f\xfa\x6b\xd9\x67\x66\x30\xe0\x11\x7d\xe2\x55\xb3\xe7\xc7\x0a\x1f\x37\xcf\xe3\x31\x80\x41\x60\x4a\xf4\xdb\xdb\x59\xe3\x7f\x4f\x59\xf5\x11\x0b\xd2\xe4\x2e\x82\x50\x59\xdb\x39\xcf\x57\x85\x1a\x24\x3b\x30\xf4\x91\xb0\x97\x76\x52\xaf\x07\x9b\xb9\xeb\x11\x7a\x89\xe7\x68\xca\x9b\x3d\x56\x7d\x8c\xc8\x79\x39\x18\xea\x94\x72\x69\x75\x53\x1e\xb7\x08\x07\x27\xf5\x6d\x92\x94\xb6\x53\x2c\x8d\x4b\x7f\x5f\xbe\x3e\x52\xad\xd5\x9c\x9a\xc8\xbc\x80\x60\x7b\xb0\x34\xb5\x15\x15\xde\xc9\xb2\xcb\x6c\x77\xa8\xb0\xc9\xab\x4a\xb5\xa9\x4e\x7f\x5e\xaf\xee\x96\x4f\xbb\xaf\x8b\xf5\xf5\x72\xf1\xec\xee\x04\x52\x4e\x4c\x74\x79\xbb\xd2\xaf\xde\x8f\x0b\x42\xd8\x0d\x60\x4e\x08\xe0\x93\x4d\xd4\x4e\x25\x1b\x99\xea\xe3\xf2\x08\x32\x24\xd0\x08\xd5\x68\xb4\x6b\xf1\x08\xb7\x65\x3b\x49\x89\x34\x2e\x4d\x1a\x6f\x91\x57\x08\xea\xfc\x40\x7a\x2c\xee\x2a\xca\x6e\x9f\xd0\x57\xa8\x39\x26\xeb\x2d\x0c\x89\x3b\x06\xd7\x56\x9e\x29\xca\x21\xa6\x3c\xe3\xb1\x4e\x2e\xac\x18\x23\xf7\xa2\xc0\x37\x4a\x7a\x8c\x66\x81\x0a\xd0\x01\xda\xbe\x97\x0d\x5e\x4d\x2a\xa1\x11\x53\x23\xa7\x0c\x4a\x19\xf9\xb4\x71\xb3\x4e\x0d\x2e\xb4\x75\x67\x5b\xc3\x19\xd5\x8b\xe5\x23\x31\x9b\xbd\x0d\x13\x4c\xee\x48\x2b\x45\x53\xef\xb5\xea\x83\xf7\xda\x8b\x38\x39\x9e\x47\x42\x0c\xec\xf8\xf8\x18\xed\x25\xa1\xea\x02\xa4\xbe\x85\x42\x4f\xba\xa4\x92\x26\x2a\x1a\x05\x16\x67\x8c\x8e\xaa\x4c\x47\xbe\x91\x3d\x8e\xc5\x29\x25\xd7\x4c\xe6\xc5\x40\xd5\x66\x33\x75\x9a\xcb\xc8\xa8\x3b\x52\x45\xce\xa9\x2a\xae\xce\x5f\xa7\x0a\xdb\xa8\x7d\x26\x3c\x45\x14\xe6\x65\x93\xbd\xf7\xe2\x6c\xa8\xfd\x38\x0c\x8d\xc6\x74\x3d\xc8\xee\xe9\x80\x19\x72\x21\x12\x6c\x56\x3d\xca\x63\xf0\x9d\x75\x28\x52\x4f\xf7\x64\x14\xbb\xe9\x13\x5d\x1a\x19\x3a\xf2\x02\x2a\x4c\x36\xa1\x44\x07\xd6\x75\x17\x8d\x03\x46\x8b\x27\xc9\x3e\x62\x6d\xad\xb3\x5d\xd7\x1c\x7a\x49\xd0\x23\xc0\xca\x53\xa1\x9e\x73\x98\x0c\x6a\x1d\x87\x82\x40\xe8\xb7\xb7\xe3\x7a\x8c\x59\x4d\xb8\x3f\x26\xc7\x0a\x23\x44\xee\x7c\x25\x82\xaa\x1f\x1b\x0a\xbb\x8d\x82\x26\x3a\x4d\x62\x69\x6d\x37\x33\xd3\x3b\x67\x7e\xfc\x79\x40\x45\x04\xdb\xc9\x6a\x0b\x40\x1f\x62\x4f\xb5\xf0\x22\xda\x9c\xcd\x7a\xf3\x59\x1e\x52\x0b\x16\x63\x0f\x21\xa4\x55\x79\xd6\xd2\xd7\x02\x22\x69\x0a\x26\xdf\x51\x0d\x73\xa2\x5a\xa1\x20\x90\xd6\xbe\x54\x39\x56\x23\x44\xb2\x46\x1f\x84\xee\x20\x15\x5b\xa8\x7f\x76\x5f\x45\x73\x61\x59\x53\xc9\x47\xbb\xab\xeb\x13\x5a\x55\x95\xf9\x2d\x45\x6b\xe9\x51\x12\xdd\xd8\xd1\xcf\x58\x0d\x90\x5f\xda\xf3\x64\x48\xb3\xca\xa4\x1c\x77\xdd\xa2\xa7\x3d\x1e\x47\x04\x8d\xdd\xbd\x92\xbe\xcc\x2c\x29\x90\xf6\x7c\x21\x59\x1f\x36\x26\x26\x5c\x02\xd3\x40\xa5\xda\xd5\x8e\x6a\xb2\xbb\x51\xaa\xbd\x20\x85\xa0\x2b\xab\xa8\xaf\xa0\xf8\xe9\x2e\x17\x88\x30\x70\xa2\x6c\xbb\x65\x59\xd4\x58\xd4\xe7\x7a\x8d\x20\xf7\xa8\xfa\x4e\x48\x0e\xcd\xf1\x68\xa8\xa6\xfa\x9d\x49\x7b\xa1\xd6\xb4\x84\xeb\xaa\x3c\xfc\xc0\x6c\x5b\xde\x8c\x55\x70\xb5\x17\x85\x9a\xf6\xae\x6f\x50\xbc\xde\x9e\x4a\x77\x60\x24\x13\xa2\x29\x3d\x56\xe5\x21\x9b\x6e\x0d\xda\x8b\x13\xc3\x06\x50\x63\x73\x93\x97\x6f\x38\x0f\x89\x6c\xfb\x99\xb3\xbf\x65\xc5\x38\xdf\xf5\xc7\xb8\x5f\xc2\x42\xe3\x6f\x97\xaf\xaf\x39\x3e\x57\xe5\xa1\x1c\xbe\xa1\x54\x78\xc0\xbb\x50\x58\xbb\xd8\xdd\x62\x31\xe2\x27\xb7\x1d\x81\x33\x27\x39\x4e\x0e\xfb\x08\xcd\x38\x99\xeb\xda\x13\x3c\x8c\xd8\xa8\xc6\xef\x6a\x0c\x31\x73\x6f\x43\x84\x61\xd8\x11\x24\x9b\x9a\xdc\xae\x09\x22\x99\x76\x7c\x8a\xf6\x47\xe9\xf9\x54\x1c\xa2\xcb\xaa\x5d\xe0\x9d\xb9\x30\xbe\x57\xc9\xd0\x65\x51\x09\x43\x34\xaa\x1f\x9b\x1f\x58\x32\xd4\x94\xca\x5b\x42\xbd\x7f\x28\x7f\x5d\xe6\xfa\xe7\x3c\x40\xed\x29\xe0\x69\x32\x8a\x66\xd0\x6e\x6a\x09\xe5\x4d\x6c\xe8\x37\xa5\x51\xee\x4c\xc8\x99\x23\x3a\x38\x15\x07\xaa\xcf\xfc\xfc\x08\xcd\x25\xa9\x86\x39\xcb\x9d\x72\x94\x6b\xd4\xa7\xc9\x0e\xa0\x3d\x1d\x33\x42\xea\xaa\xac\x96\x65\xd1\x64\xc5\xa9\x7b\x9f\x5a\x31\x32\xed\x69\x1e\x34\xfb\x0a\x91\xa8\x2f\x56\xff\x7d\xe9\x38\x37\xda\x4e\xa9\x67\x9d\x66\xca\x55\xdc\xa9\x25\x54\xaf\xe5\xd0\xc8\xd2\xcc\x63\x21\xf7\x3a\x13\xa8\xa3\xd1\xd3\xcc\x8b\x23\x2a\xef\x20\x9c\xf0\xa6\x1d\x3e\x03\x0d\x5f\x37\x62\x18\x0b\x02\xe2\xde\xfc\x9e\xe1\x9b\x49\xd5\x8c\xec\x2e\xd7\x4b\x85\xe4\xad\xb4\xee\xce\x26\x93\x57\xe5\xdf\xb1\x30\x35\xe3\x81\x49\xa1\x82\xd1\xc9\xb2\x0a\x97\xc6\xed\xbc\xdc\xdd\x34\xe3\x0a\x1c\xc8\xcc\x69\x65\x59\xc1\xde\x87\x52\x61\x0f\x1f\x5c\x41\x55\x18\xa6\xf8\x41\x62\x56\x33\xdf\x8b\x23\xd6\x2d\x3b\x9b\xce\x70\x6b\x5b\x14\xd3\x9d\x14\xf8\xdc\x22\xae\x99\x2f\x42\x0a\x89\x3c\x96\x3f\x4f\x0f\x50\x37\x76\x54\xcd\x06\x80\x34\xf3\x15\xa6\x26\x7a\x75\x89\xdf\xd7\xcc\xd7\x8c\x72\xc1\x8f\x28\xab\xf2\x80\xa7\xa1\x7f\xa8\x59\xa0\x34\x55\x8f\xb9\x6a\xf8\x59\x10\xb8\x66\xa1\xe7\x13\xf6\xe0\xbe\x7c\x6d\x57\xdc\x97\xa2\xea\xb5\x76\x67\xa7\x05\x0b\xed\x32\xdd\xfa\xc4\x79\x5e\xbe\x75\xb2\xef\x3d\xfb\x82\xeb\x89\x26\xb4\x7d\x0f\xa7\x42\xee\xd7\xa5\xfc\x89\x93\x02\xd5\xcf\xfe\xd8\x93\x44\x2c\xa4\x0a\xf2\x3e\x6e\xfa\xe7\x5f\xff\xba\x5c\x9d\x5c\xef\x38\xa1\x95\xbb\xc0\xf7\x41\x09\xb6\x66\x91\x4c\x84\xb5\x3d\x57\x54\xce\x8d\x4f\x7a\x09\x87\x23\x64\xaf\xe3\x7a\x10\xcd\x22\x6d\x02\xc7\x1f\xa1\x1d\x2f\x8c\x21\x7b\x5c\xe2\x47\x54\x29\x46\x16\xc1\x88\x18\xd7\x75\x48\x8c\x12\x20\xbe\x37\x58\xa8\xcd\x14\x1e\xaa\x59\x82\x61\x84\x1d\xd6\xdf\x38\x8a\x44\x6a\x4b\x18\x95\xf3\x87\x0f\x9d\x06\x46\xcd\xd4\x02\xc9\xbf\x65\xb9\xdb\x90\x58\x1a\xfa\xb4\xb2\x83\x52\xcf\xe5\x4f\x3c\x94\xc5\xb6\x34\xe3\x6e\x76\x8b\xd7\x0c\x10\xe8\x1e\xb2\x22\x23\x19\x5d\xff\x6f\x17\xd6\xcd\x0f\x61\xc1\x98\xb4\xf2\xbb\x0f\x59\x81\x15\x01\x3a\x2f\x1f\x5d\x28\xcf\xad\x42\xeb\x52\x2e\xcb\x6a\x2c\xb4\xda\x76\x88\x68\x2a\x34\xf8\xde\x4d\x38\x99\xf0\x58\xbb\xea\xbb\xdb\x9e\xd0\x67\xe8\x7c\xb7\xbd\x02\x02\x82\x2b\x2b\x64\x45\x78\x88\xe6\x02\x44\x3d\xbe\x1f\x29\x22\x2a\x2d\x38\xe2\xab\xbb\x9a\x92\x11\x13\x0e\xd2\xf5\x0c\xe7\xfb\x12\xba\xc9\xa6\xd0\x94\x11\x56\xf8\xfa\xd8\x29\x4d\x69\x86\x8c\x53\x40\x32\xab\xad\x88\xdf\xe4\xa9\x91\x4b\x1a\x32\x12\x72\xf9\x52\x3c\x40\xfd\x93\x60\x13\x05\x81\xed\xe7\x6f\x0c\x23\x19\xe0\xa0\xa4\x26\xcf\x51\x36\x99\x98\x29\x80\x1c\xcf\x45\x04\x03\xc6\xfa\x5a\xe6\xb0\x2f\x8f\xa3\xa5\x02\xa5\xf1\x58\x0d\x4c\xe1\x1b\x9e\x2f\x03\x95\xba\x75\xa5\x1c\x73\xd4\x50\x9a\xbb\x75\x18\xaf\xce\x06\x19\x33\x3e\x40\x87\x18\x1b\x99\x11\x45\x7b\xe5\xb6\x1c\x1e\x37\xed\x9c\x70\x82\x45\xee\x8e\x50\xd5\x78\x57\x34\x1b\x99\x61\xd1\x64\x3a\x93\x43\x27\x52\x73\x8f\x29\xe2\x76\x20\xff\x79\xf7\x9f\x93\x7a\x1d\x51\x10\x8f\x1e\x9a\x7b\x0c\x7d\x2b\xfd\x6f\xc9\xc8\x57\xef\x28\xdb\x29\x75\x0b\xf5\x3d\x29\xa8\x4c\xb3\x5c\xb3\xa3\x98\x7b\x3a\x26\xc3\xcd\x28\xcd\x4f\x92\x9d\xe3\xae\x8c\x33\x2f\x72\x59\x2f\x57\x43\x1d\x7f\x71\xad\x89\x24\x8e\x92\xbb\xe5\xd3\xee\x79\xb5\xbe\x7b\xba\xee\x5a\x74\x4a\x88\x8b\x03\x51\x11\x10\x86\xc0\x35\x71\x4f\x98\x42\x22\xe2\xf6\xed\x88\x64\xe6\x8d\x97\xc9\xed\x70\x66\xe8\xd4\x6c\x05\x33\xd5\x30\x65\xcd\xf9\xb3\x6a\x0c\xcd\x79\xac\x29\xdc\x9a\x1d\x8e\x65\x65\xa1\x53\x34\x71\xa9\x0e\xed\x52\x72\x51\x73\x1f\x52\x57\x97\xbf\x20\xad\x64\x54\x8b\x42\xad\xf1\x3f\x24\x86\xd4\xba\xfb\x17\xb9\x67\x77\xa4\xe4\x8e\x99\xfa\xe9\x88\xc5\x55\xa6\xea\xf1\x82\xcc\x43\xa9\xa1\xd7\x92\xb8\x2a\x27\xd6\x32\x8f\x58\x4a\x5f\xf9\x08\xe7\xab\x4c\xcd\xdb\x80\x3c\x4a\x13\xa3\x70\xd9\x7e\x96\xce\x0b\xe0\x71\x18\x13\x12\xe8\x58\x21\xf9\x55\x93\x4b\xc7\x89\xa2\xf8\xef\xc3\x19\xaa\xc6\xf0\xc7\xb9\x16\x48\x84\x2b\xe1\x75\x06\x62\x35\x71\x51\x78\x22\x13\xde\xdb\x0a\xcf\x15\x0e\x63\x30\x9a\xa7\x51\x44\x0c\xd9\xa2\xca\xe4\xcf\xd5\xf6\xeb\xc0\xa9\xd3\x3c\x4d\x25\xeb\x25\xe7\x2c\xcc\x70\x5e\x46\x46\xf3\x54\x28\x47\x09\xb1\xd8\x34\x65\x75\x21\x64\x3e\xee\x0e\x3e\x9a\x31\x2a\xb3\xba\xee\x90\xe1\x9a\xcb\xc8\x54\xd8\xf5\x35\x8f\x57\xd0\xc8\xfd\xd5\xd9\x15\x3d\x3a\x39\x4e\xb7\xe9\x71\x15\x71\xf3\xdd\x5b\x9b\xcd\xbc\xda\x45\x63\xc4\x41\x5d\x8f\x44\x45\x23\x4c\x7f\x3b\x18\xc6\xb3\x9f\x2b\x19\xa2\xb1\x61\xc9\x13\x75\x87\x62\x18\x90\xa9\x75\xff\xf4\x72\xbd\xfa\xb3\xfb\x35\x49\x22\xe7\xdd\xf5\x39\x8d\x4e\xfd\xc2\x90\xed\xd4\x46\x29\xc1\x1d\x92\xc6\x34\x9e\xeb\x1c\x7e\xd9\xe4\x81\xf5\x56\x2c\x02\x2c\xfb\x5f\xff\x55\xda\x0d\xd0\x33\xb0\xd5\xdc\x4a\xf7\x8d\xdf\x1e\xca\x54\xa6\x36\xa5\x50\xe6\x6a\x7e\x35\x98\x0c\x3f\xd4\x40\x55\xba\x8e\x27\xf4\xae\x68\xca\xf6\xe0\x19\x5f\x7b\x72\xa4\x8e\xb5\xb4\xf6\xcf\xf1\x74\x89\xd4\x33\xbd\x7c\x2f\x44\x8a\x51\x1a\xd3\xa1\x9d\xab\xdf\xce\x92\xc4\xbd\x47\xf7\xee\x7b\xa8\xa8\xdf\x72\xfb\xd4\xa7\xe4\x6c\x1b\xe3\x7e\x1c\x0e\xf8\x65\xc8\xab\xeb\xf1\x62\xda\xe7\x71\x94\xb8\x7c\xde\x49\xf4\x29\x9b\xd1\x9c\xf1\xb9\x64\x89\x03\x60\x54\x59\x31\x8e\x9c\x69\x3f\x08\xc3\x01\x63\xec\x03\xbc\xdb\x34\xf8\xb4\x57\xe4\xcb\x8b\x40\xe2\x68\x63\xf7\x03\xc5\x94\x3f\x28\x73\x5c\x1c\x8f\x4e\x62\xef\x23\xf0\xb6\xe3\x56\x9b\xe0\xca\xb4\x1f\x0a\x19\xd8\xfa\xd1\x0e\x8b\x3c\x6b\xc1\xfb\x91\x6f\x92\x32\xed\x93\x8d\x1f\x3c\x4a\x34\x81\x1a\x56\xef\x4d\x05\x22\x1b\x66\x2e\xb4\x1f\x27\x82\x22\x50\x15\xf9\x70\xc6\x9c\x1f\x9f\x38\xf1\xfc\x40\x76\x9f\x90\x24\x80\x66\x50\x77\xda\x4f\xa4\x81\xaf\x74\x43\xc9\xc6\x3c\xbb\xfb\x48\xbd\x94\xbe\xe3\xc3\xe2\xcf\xdd\xf6\x69\xbb\xb8\x37\x85\x93\x56\x4d\x75\xe3\xee\x28\x0d\x7c\x02\xca\x6c\x5e\xd6\xdb\xc9\xdb\x4f\x63\x66\x88\xf9\x5e\x5f\x2b\x8a\x6b\x0e\xd4\x86\x26\x03\x2f\x05\xe6\x0a\x53\x8c\x27\x3e\x96\x53\x1d\x3f\x22\xf8\xe0\x74\xdd\x9a\x2f\xb3\xa7\x83\xc0\x54\xf2\x83\x52\xc4\x5e\x3c\x94\xdc\x9f\x9c\x2b\x96\x04\x90\xba\x79\x7a\x59\xef\xfe\x5a\x2d\xd6\xbb\x6f\xab\xd5\x73\x97\xfc\xd2\x3e\xa4\x89\x62\x8e\xd3\xd4\x8c\x68\x83\x81\xb2\xed\xc2\x67\x94\x4b\xc2\x42\xad\x8e\xa5\xdc\x4f\x18\x25\xb5\x2f\x50\xfa\xa2\xab\x95\x80\xea\x6c\xc2\x7c\x94\xd3\x1f\x26\x19\xb5\x2f\xd3\x94\xe6\x68\x5e\xbe\x76\xa5\xbb\xda\x97\x68\xf8\x9a\xb2\xa2\x37\x3c\x21\xc7\xd9\xb0\x86\x2f\x51\x38\x19\x93\xd6\x92\xbd\x88\x4c\x6a\x5f\xf9\x9c\x56\xc3\x7f\x9c\xea\xe6\xc6\x44\x48\x26\xe7\x50\x52\x26\x86\x39\xe1\xfd\x16\x6a\xcb\x51\x59\x90\x2c\x81\xed\x81\xcc\xf4\xb8\x2f\x8d\x70\x72\x7d\x29\x2e\xf6\xa9\x39\xef\x63\x68\x04\x0f\x5c\x5c\xe2\x6a\xb9\x7a\xea\x4e\x1e\x05\xe8\x00\x32\x7f\xb6\x1d\x96\xa5\xc2\xc9\x57\x43\xe4\xcc\x6e\x54\x2f\x54\xdc\x31\x2a\x6a\xb7\x9d\xb4\x0a\x89\x1b\xe9\xf9\x6e\xb7\xba\xbe\xdb\xee\x98\xbb\x82\x46\xf3\x49\x5b\xeb\x89\xa8\x47\xd9\x6e\x73\x7f\xfb\xb8\xbb\x5f\x6d\x36\x7d\x1f\x45\xcb\x8f\xd9\x73\x49\xa3\xbd\x35\xa8\xba\x4c\xb5\x0e\x3c\x2f\x88\x0d\xb4\xe6\xde\x80\x5a\x7a\xad\x46\x1d\x78\xdc\x27\x4b\xbe\x35\xc3\x5c\x74\x6e\x51\xb7\xdb\x44\xb7\x43\x04\x2c\x36\xda\x9e\x66\x10\x18\x0c\xd3\x34\xe6\x11\x70\xe6\xd1\x0a\xb6\x78\x2b\xab\x9f\x13\x37\xdf\x76\xf1\xad\x34\x3c\xda\xda\xc7\x01\x02\x57\x07\xbe\xf6\xd3\x0b\x3b\x32\x74\xad\x01\x37\x2c\x2f\x96\x4f\xa2\x34\x84\xf4\x55\xd7\x0c\x01\x45\xf0\x21\xab\xae\xab\xf2\xb8\x19\xea\x0f\x7f\xe0\x45\x06\x81\x60\x54\xe8\xf0\x1d\xf2\xac\xd9\x0f\x17\xaf\x20\xf4\xbc\xa8\x63\xaf\x58\x35\xfb\x35\x10\xb0\xd2\xb5\x86\x29\xe7\x7d\x89\x3a\x1d\x38\x5c\xb1\x82\x10\x14\x81\x76\x0f\xa5\xca\xf4\x99\x68\x00\x0a\x4b\x35\x38\x4a\x33\x4d\x6e\x28\x62\x9a\x72\x1b\x5d\xf6\xba\x5d\x0b\x68\x79\xb9\x99\xa0\x89\x75\x10\x25\x3c\x08\x87\xc8\x1a\xc3\x8c\x87\xea\xaa\xa7\xad\x76\x5d\x51\x50\x58\x0f\x5e\xb1\x68\x48\xb3\xba\x1e\xca\xb2\xda\x5e\xb1\x27\x68\x21\x6a\x4d\x99\x97\xa3\xb9\xec\x44\x01\x4e\x07\x31\x03\x65\xc2\x62\xe5\x3b\xe5\xd7\xe6\xed\xe9\x20\x16\x21\x3d\x49\xeb\x01\x13\x17\xc5\xd3\x8f\x9e\xd4\xaa\x6d\x06\xf2\xbf\x6a\xd0\xb8\x2d\x1f\x4e\xb9\x5b\x1b\x47\x27\x49\x82\xc4\xf1\xd2\x6f\xe1\x27\x4e\x0b\x85\x75\x90\x80\xf6\x86\x22\xc5\x70\x2c\x3f\xa0\x60\x1c\xed\xa3\x41\xa2\x0d\x5e\xba\x5d\x95\x1f\x7a\xef\xa3\x13\x7c\xb6\xdd\x52\xd0\x14\x9d\x5d\x2c\xef\xff\xba\x96\x59\xf7\xf9\x53\x09\x60\x21\xd9\x2f\xf5\x00\x3b\xa6\x03\x08\x0d\x4d\x9c\x95\xa5\x1c\x88\xaa\x2d\x74\x83\x15\x81\x09\xce\x93\x87\x80\xc8\x58\xdc\x76\x17\x74\x08\x03\x1d\x80\x08\x58\xef\xf8\x92\x51\xf0\x81\xef\xe6\x0e\xc0\x20\x4a\xba\x94\xd4\x6a\xfb\x55\x97\xd5\x63\x59\x1d\x20\xbf\x3a\x9d\x3b\xc2\x69\x1d\x88\xc4\x71\x42\x35\x7d\xf0\xef\xae\x7b\x3c\x09\x3c\x31\xbc\xc1\x0e\xcb\xb6\xb5\x91\x3f\xaa\xa0\xb3\x25\x92\xae\xb7\x8a\x91\x0a\x63\x0a\x7c\xeb\x94\x75\xb3\xff\x19\x00\xe3\x6f\xf9\x38\xa7\x21\xa5\x40\x09\x20\x83\xeb\xe9\x79\x3b\x42\x7f\xe8\x40\x29\xa4\x90\xcf\x3f\xfa\xf0\x79\x80\x96\xcf\x03\x44\x5d\xe6\xa7\xa6\xdd\x68\x86\x96\x78\x80\x2c\x24\xba\xd7\xd3\xf1\xb5\x02\x35\xc1\xba\xe8\x00\xd3\xd4\xe1\x8c\xf2\x1c\x8b\xd7\xa1\x27\x13\xe8\x38\xa6\x14\x53\xe3\x36\xc9\xbf\x25\xa2\xa3\x03\x9d\x9a\x72\xd0\xfa\x74\xc4\x8a\x5e\xdf\xd0\xfc\xff\x63\x78\x05\xc9\x53\x63\xfe\xe8\x81\xac\xb6\x0e\x3d\x0e\xcc\xd4\xa7\xe7\xa7\x03\x76\x90\xde\x39\x6a\x1b\x1d\x32\x3f\x22\xf8\xa5\x6c\xca\x71\xfc\x28\xe4\x3c\xa4\x50\x8c\x2a\x0d\xb1\xeb\x30\x4b\xa6\x43\x1e\xa5\xe4\x84\x92\xa0\xc0\x80\xf9\x58\x87\x5c\x4a\x3f\xec\x17\xb7\xea\x54\x37\x56\x51\x74\x58\x7a\xeb\xbe\x58\xe8\x73\xe1\x18\x6d\x9c\x90\xfb\x78\xcd\x08\xfd\x20\x26\x30\xb0\x21\x1b\x7c\xa7\x4c\xf7\xdf\x4d\x68\x1a\x11\xfb\x3f\x2e\x5e\x5e\xe8\x87\x89\xef\x0f\x4c\xf7\x76\xe7\x5d\x7c\xb0\x1a\x85\x3e\x48\x8f\xbb\x22\x88\x5f\x33\x4a\x22\x3a\x0c\x54\x42\x0b\xd6\x2f\x2a\x32\x5c\x12\x76\xe9\x92\x47\x64\x34\xf1\x92\x99\x25\x3c\x8c\xb8\x4f\xdb\xd4\xbf\x50\x64\xc3\xf1\x1b\xc6\xdc\x8c\xc5\x7f\x90\xb0\xf9\xb8\x21\x1a\xaa\x73\x4c\x01\x4b\x3a\x4c\x7c\x8f\x64\x75\x48\x95\xe0\x16\x0d\xe0\xc3\x10\x65\xce\x2e\x76\xf6\xb0\x34\x0a\x7d\x4b\xeb\x41\x79\xfd\x0f\xe2\x11\x61\xaa\x0c\x9a\xcc\x04\x5b\x3e\x8f\xc6\x85\xe0\x09\x81\x4e\x78\x12\xe5\x69\x5a\xe6\xa2\x43\x60\x71\x3c\xe4\x62\xb1\x09\xd6\x8d\xa5\xa5\x6e\xd7\x85\x41\xe2\xec\x83\x0a\xa1\xff\xbf\x98\x6b\x08\xdc\xf0\x56\xb6\x1e\x18\x1c\xe0\x15\x67\x8c\xac\x50\x88\x94\x4a\xbd\x4d\x52\x69\x47\x23\x3b\xc7\xba\x1e\x4a\x5f\x4e\x8e\x50\x3a\x34\x24\x21\xeb\x2e\x47\x70\x51\xda\xaa\x43\xe9\x03\xbd\x68\x9b\x8f\x79\x30\x9c\xe7\x17\xa1\xa6\x6e\xca\xc8\x48\x47\x71\x1f\x00\xca\x0c\x06\xf9\xea\xbc\xb9\x90\x51\xd5\xa1\xf2\x44\x30\x60\x0c\xff\x14\xcb\xad\x43\xa5\x0c\x7f\xc7\x8f\x21\x19\xd2\x6c\xfc\x31\x54\x5a\x12\xac\x26\x87\xda\x84\x2f\x76\xe0\x62\x76\x21\x26\x09\xd9\xac\x3b\x71\x3a\xcf\xc8\x7a\xb4\x1d\x74\x20\xed\x8b\x69\xc7\x9c\xec\x6d\xc5\x10\x53\x20\x29\x9b\xe5\x59\x60\xf5\x90\xe5\x58\x8f\x86\x3b\xa2\x60\xbe\xb3\x56\x37\x58\xa8\x1b\xc8\xf2\x53\x35\xa2\x15\xd3\x91\xe7\x07\x5a\x39\x50\x42\x93\xb4\x6b\xef\xd5\xb9\xb1\xd1\x18\x16\x8c\x91\x26\xcc\x1d\xa4\x52\x23\x17\x3a\x00\x6b\xee\xa0\x87\x3e\xd9\x6e\x2c\x86\xc8\xeb\xea\xb0\x30\xfb\x35\xe4\x3e\x1f\xac\x31\x11\x8f\x43\x21\x9c\xd2\x9c\xf1\xf5\x0a\xd5\x85\xd1\x3f\x8d\x3e\x47\x3e\xf8\xa1\xbd\x48\x93\xe3\xec\xc6\x3d\xaf\xa2\xa5\xa3\x40\x32\xcd\x87\x80\x8c\x92\x38\x92\xab\x7e\x4c\xbb\xd4\x5c\x14\x85\x3e\xb3\xaf\x69\x55\xbf\x96\xdb\x71\x89\xa2\x8e\x62\x9e\x92\xf7\x73\x0d\xff\x75\x4f\x1f\xc7\x8a\x7e\x2a\x5d\x25\xd9\x10\xd6\xa8\xa3\x44\x73\x0f\x2c\x67\xf0\x20\x12\x12\xa5\x61\xe4\x6a\x3e\x6c\x71\x81\x9e\x24\xbf\xa2\x14\x20\x64\xb6\xf8\x34\x8e\x27\x77\x92\x2a\x43\x77\x53\x63\x43\xf3\xe3\x1e\xd5\xab\x4b\x29\xcf\x47\xee\xfe\x98\x9c\x40\xa7\x64\x32\x36\x08\x87\xef\xae\xb6\xf4\x54\x34\xdd\xc6\x15\x01\x33\xec\x4e\xed\x88\xbe\xce\xb4\xce\xe4\x29\x6f\xce\x3d\xdc\xcc\xa9\xa2\x0f\x4d\x84\x08\x18\x52\x9a\xcc\xc2\x9a\xbe\x4c\x15\x6c\x75\x04\x7e\x4a\x34\x2f\x99\x2c\xaf\x40\xfe\xec\xd4\xc1\x74\x24\x3c\x48\x3b\x0d\x11\xb2\x8a\x5a\x5b\x50\x67\xf9\x40\x70\x67\x3e\xdf\x37\xb3\x5c\x47\x82\x27\xc2\x48\xfc\xe4\x27\x7c\xd2\x5f\xc6\x8d\xa1\x88\x95\x1b\xb3\xed\xd0\x36\x02\xc3\xae\x35\x15\x44\xbf\x43\x22\x5c\x2e\x72\x91\xfc\xd1\x97\xf5\x4c\xde\xa5\xf4\x80\x4a\xaa\x06\x77\xfd\x21\x5d\xd1\xf4\xd0\x38\xb2\x82\x4b\x14\x15\xb8\x76\xf5\x2a\xf3\x64\xf8\xee\x20\x34\x71\xab\x76\xff\x05\x62\x22\x9e\x04\x4d\xc6\xdd\x15\xf7\x92\xc8\x69\x3e\x94\xb9\x2a\xdf\x8a\x99\x74\x4b\xa4\x7c\x53\xd3\xda\xda\x3d\xf6\x3e\x6e\xab\xf2\xe4\xa2\x19\x91\x92\xc6\x87\xdb\x20\xe5\xf5\x36\x0d\x1e\xa7\x67\xc0\x90\x28\x19\x9f\x33\x54\xcf\xd9\x11\xab\x47\x6c\x5a\xe7\x75\xe0\xaa\x44\x18\x32\x66\x17\xeb\xa5\x65\xcb\x1c\x1b\x5a\x11\x46\x46\x9b\xe4\x3a\x7b\xcd\x1a\xc8\xb7\xfb\x72\xec\x4c\x46\x28\x22\xa2\x1a\xc5\x5a\xc2\x11\xbf\x42\x23\xf7\xed\xa9\xfa\x91\x8b\x18\xbb\x22\x4d\x1b\x9e\x1d\x56\x29\x75\x9d\x04\x59\xf7\x92\x54\xfd\x9a\xab\x53\xd5\x5d\x40\xfb\xd2\x49\x66\x6d\xf6\xd9\xf1\xd9\xe8\x5d\x9a\x77\x4c\xec\x69\x38\x4e\xe9\xc7\x5e\x24\x89\xc9\xcb\x46\x66\x1c\x62\xdd\xb6\x32\xcd\xc3\x9e\xc6\x6d\x5b\x1e\x33\x39\x82\x9b\xb0\x70\xbc\xd8\xc5\xdc\xc3\xd8\xc1\x2e\xb6\xfb\xca\x64\xc8\x09\x3f\x52\x3e\x40\x71\x1e\x56\xa2\xeb\x98\x47\x11\x26\x6e\x01\xea\x88\x16\xdb\x15\x7e\x7b\x29\x72\x3f\xfa\x5e\x31\xa5\x08\x8c\xf7\xd9\xba\xd2\xc4\x85\xfc\xe9\x70\x8d\xb9\x8a\xd5\x30\x22\xb5\x84\xe3\x97\x51\x07\xdf\x0f\x08\x1d\xd8\xdd\x07\xa1\x94\x7e\x73\x1f\x81\x42\x17\xba\x22\x48\xe1\xd3\xa9\x91\xe5\x20\xe0\x30\x5a\xcf\xe3\x98\x03\x51\x9c\x58\x06\xf6\xf3\x41\x38\x1e\x18\x1d\xc7\x00\x54\x67\xf0\xdf\x13\x56\x94\x73\x98\xe2\xa3\x26\x57\x4e\x3d\xa0\x1a\xe7\x2b\x28\xa0\x80\xdb\x3e\xf3\x1a\xa7\x41\xe0\xdb\x58\x14\x2d\x70\x5f\x8d\x84\xf0\xe8\x68\x08\x18\xe5\xe2\x2a\x78\x7b\x84\xc3\x40\xdf\x7d\xf2\x3d\x21\xe6\xda\x70\xe3\x0a\xaa\x16\xae\xaf\xe7\x65\xf3\x3f\x87\x13\xc5\x20\x58\x68\x17\x2d\x85\x32\x3b\xc0\x44\x92\x50\xc7\xa0\x19\x45\x64\x25\x14\x96\x4b\xb7\x1d\xda\x44\x42\x75\xdf\xe9\x80\xeb\x58\x04\xa6\xc6\xa8\x2a\xf3\x7c\x72\x06\x11\xfa\x2c\x19\x3c\xb6\xe1\x94\x1b\x4e\xbf\x58\x58\x07\x3b\x1f\x6e\x74\xb1\x48\x22\xce\x3b\x6c\x6e\x56\xbc\x5e\x23\xa8\x3c\x2b\xba\x17\x2a\x03\x41\x96\xbc\x09\xdb\x8c\x78\x9c\x75\x2c\xa5\x24\x64\x6f\x56\x64\x06\x44\x74\x93\xe5\xf8\x99\xfa\xf5\xdc\x92\x1f\x4b\xa5\x68\x1d\x3e\x15\x99\x2c\xab\xa2\xbe\xcd\xf4\x60\x1a\x2a\x66\xd4\xcf\x0f\x24\xcc\xdb\xee\x60\xc6\x73\x19\x2f\x3f\xb1\xd2\x69\xd4\xdb\xdb\xf7\xe5\xeb\xe5\x2c\x1a\x5d\x14\x7d\x8c\xb9\xc3\x48\x95\x85\x43\x48\x99\x02\xe3\x01\x4e\x2a\xc6\x20\x25\x74\x63\x7d\xae\x1b\x3c\x0c\x29\x03\x74\xac\x6d\xb1\xb2\xc5\xda\x2c\x3a\x19\x36\xdb\x21\xf1\x3c\x4c\xb0\x47\xd4\x1a\x79\xd6\xae\xd1\x07\x69\xa9\x2f\x8d\x7a\xeb\x54\xb9\xd5\xf5\xb3\xd2\x04\x2e\x1e\x76\x53\x21\xda\x8a\x8d\x09\xbc\x2e\x61\x61\xc2\x65\x17\xfb\xe8\x7f\x8e\x24\xd5\x6f\x1b\xa0\xa8\x4d\xbc\xd8\x36\xee\x69\x72\x1a\x0e\xa4\x6d\x86\xab\x53\x55\x1a\xf2\x3a\xf2\x86\x67\xe7\x5f\xe2\x0b\xa9\xe2\xc1\x1d\xe5\x93\x51\x93\xf8\x8a\x31\x0b\xe9\x26\xdb\xb7\x29\x0b\xac\x17\x85\xda\x0c\xc4\xe6\xe6\x8b\x97\xa6\x6e\x42\xe2\xab\x98\x2a\x10\x6c\x22\xdb\xa8\x13\x38\x69\xcf\xe1\x27\x4d\x7c\x1d\x04\xb6\x6a\xe0\x19\xce\xed\x48\xb9\x3a\xcf\xe6\x10\x92\x08\x4c\xd0\xdd\x06\xa8\x1c\x9a\xa2\x33\x8e\x93\x48\x6b\x62\x1b\x32\x5b\xc2\x55\xf6\x61\x98\xdc\xf6\x8f\x19\x87\x81\xc8\xd4\x54\x1a\xbb\xeb\x15\xf3\xc8\x6d\xa2\x44\xf7\x78\xfe\xd1\xee\xb3\xed\xb7\x6f\x37\xa0\x35\x8e\xab\x14\x75\x12\xa7\x81\x13\x92\xdb\x94\xf9\xaf\xa9\xcf\x95\x24\x2c\x20\x98\xcf\x2a\x3f\xcf\x7a\xc2\xa3\x28\xd3\x98\x81\x50\x27\x49\x14\x80\x74\xcc\xc7\x24\x22\x34\xfa\xe6\xae\x57\xac\x28\x30\xbe\xa4\x5a\xbd\x0d\xbc\xc2\xf5\xa9\x78\xc5\xb2\xf8\x8e\xd5\x25\x45\xfc\x67\x8e\xec\x4c\xf9\xf0\xcc\xcf\x53\x2b\xf1\xff\x82\x7f\x0f\x6f\x3a\x0d\x0c\x4e\xdb\x72\x33\xbe\x0c\x32\x4a\xa3\x5a\xe4\xc9\x07\x4a\x31\x65\x6c\x00\x35\x37\xa2\x00\x33\x78\x97\x04\x64\xe4\x59\x18\x98\xe7\x86\x03\xa0\xaf\x6d\xbc\xb7\xd4\xad\xa7\x86\x6a\x10\x24\x4b\xa4\x67\x49\x68\x1b\xa8\x9a\xe7\x21\xed\xc9\x07\x77\xa3\x98\x72\x6e\xd1\xb6\x6c\x26\xfa\x8b\x3a\x51\x69\x4a\xc4\xf1\x40\xb8\xcc\x81\xd7\x3d\xf9\x34\x4a\x73\x69\x77\x96\x5b\x2c\xd0\x42\x67\xea\x19\x81\x56\x9d\x60\xa4\xc5\x90\x56\x62\x03\x97\xae\xf9\x07\x77\x8b\x31\x4f\xe4\x64\x32\x7f\x19\x19\xd4\x76\xda\x26\xdd\xa4\xc5\xd4\x28\x56\x1a\x4c\x48\xfd\xed\xfa\x6e\x72\xeb\x08\x21\x1a\x1a\x70\x2a\xce\x26\xd1\x93\xe1\x76\x95\x20\x48\xaa\x53\xa9\x8f\x34\x8f\x29\xa5\x6d\x9b\x34\x53\x84\xae\x68\xef\x87\xaa\x27\x2f\x2a\x3a\x47\x96\x47\xa2\xa3\x94\x98\x2e\x35\xca\xfd\x22\xcf\xbf\x13\xe1\x65\x7d\xca\x9b\x9b\xb2\xb2\x40\xe6\xee\xd4\x09\x23\x64\xc6\xb6\x3e\x76\x65\x23\x3a\xd1\x52\x52\x92\xe1\x3b\x14\x0d\xa8\x69\xa8\x27\xf5\x7c\xcf\xa9\x30\x5a\x76\xf6\x2f\x5d\x8b\xa0\xad\xff\x68\x4a\x05\x36\x47\xe2\x3a\xd9\xbe\xcf\x29\x13\xeb\xd4\x13\x9c\x4a\x42\x6b\xa7\xe5\x39\xf0\xd0\x52\x4f\x1b\x68\xce\x42\x29\xbb\x07\x8d\x0f\x66\x51\x44\x4b\x7c\x81\x6f\x4f\xd5\x2b\x14\x59\x3d\x52\x9f\xba\x8c\x2d\x26\x83\xd1\x91\x32\xf4\x5d\x89\xce\xd5\xe9\xdc\x3a\x78\x33\x53\x23\xe5\x5c\x11\x7c\x44\x75\x54\x7b\xae\x41\x1b\x35\xd9\x1a\x9b\xab\x46\xbe\xd4\xea\x42\x5c\x48\xa7\x7e\xc0\x89\xab\x49\x42\x2e\x97\x66\xdd\xad\x1f\x11\xd5\xa5\xd4\xb3\x3d\x20\xf2\x42\x32\xa7\x8f\x99\x2c\x8f\xf5\x6e\x8a\x67\x75\xbd\x7c\xed\x4a\xc5\xd6\x78\x2c\xab\xd6\x86\xf9\x91\x15\xaa\x7c\x9b\x30\xab\xe8\x34\x4a\x7d\xf2\xf9\x95\xa1\xb7\x9b\x9b\x01\xae\x27\x28\x2a\xde\x5c\xee\xab\xb2\x28\x47\x09\x9e\x59\x1b\x2f\x8d\x03\x4d\x19\xbd\xc7\xd5\xfb\xd6\xbd\x94\x38\x45\x2a\x32\xbd\xc5\x66\x9d\xbd\x76\x54\x27\x89\x6b\x06\x6e\x55\x7d\xfe\x83\xb2\x59\x62\xd5\x18\xbd\xf4\xe9\x7b\x8b\xa5\xe7\xa1\xb3\x9b\x97\x15\xd2\x67\x7d\x80\xf7\xee\x32\x08\x34\xc6\x56\xd7\x2f\xbb\xe7\xd5\x7a\xb7\xda\x7e\xdd\x3d\xaf\x57\xbb\xcd\xe2\x7e\xd5\xf5\xd1\x1c\xb5\x0b\xe1\x58\x23\xe3\xc6\xb0\xaf\x42\xe7\xc8\xa7\x89\x9f\x52\xe5\xb8\x80\x3a\x93\x23\x23\x21\x4d\x03\xe6\x1b\x53\xb8\xcc\x11\x8a\x91\xe6\x9c\x9b\x67\x69\x1a\x22\xd9\xd5\x5f\xaf\x97\x5b\x1c\x15\x70\xea\x34\x4d\x12\x87\xfb\x1f\x60\xea\xa7\xa8\xa6\xc9\x67\x48\x65\x60\xc5\xe8\xeb\x86\xc4\x82\xee\x07\x27\x54\x49\xd4\xd9\x6f\x07\x92\x72\xde\x39\xf7\xc6\xc4\x11\x7d\xa2\xa6\xb3\xdd\xc1\x4b\xa4\x81\x61\x60\x7e\x57\x0c\x29\x3f\xd8\x05\xf5\x9f\x3b\xc4\x4f\x99\xe3\x83\x06\xf3\xe6\x0d\x41\x71\x3d\xb3\xbe\xa6\x20\x18\xd1\xf6\x50\xf0\x61\xf4\xa1\x65\x18\xd2\x08\x5d\x3c\xdc\x6d\x26\x83\x57\x86\x11\x91\x10\x54\x27\x71\xaa\x9f\x2a\x28\x5e\x27\xf0\xd7\x54\x46\x01\xe5\x7b\xbe\x92\x18\x0c\x11\x20\x90\x8f\xea\x6e\xf9\x93\xea\x27\x9d\xaa\x18\x44\x32\xa0\xc2\x98\x4f\x9e\xa4\x08\x9c\x46\xd0\x8e\x12\x03\xb4\x37\x4e\xb4\xa3\x5d\x47\x01\x14\x04\x10\x59\x23\xcb\xac\x30\x61\xb9\xcf\x2d\xa3\x14\xa5\x49\x04\x6d\x5b\x87\xf2\xee\x00\xaf\x38\x50\x34\xd5\x29\xea\x58\x43\x67\xb3\x95\xa7\xe6\xf1\x74\x30\xd4\xc0\xa3\x77\xa8\x99\x41\x20\xd5\x46\x6f\xe3\xcd\xd4\x1f\x8d\xef\x4e\xa3\xa2\x11\x41\xc9\x6a\xa3\xf4\x84\xd5\xa8\xea\xc0\x74\x04\xcf\x07\x2e\x86\xe8\x5c\x35\xc8\x2b\xff\x31\xe9\x9b\x18\x81\x4c\x9b\x3b\xbb\xc6\xf7\x06\xab\xac\x99\xac\xbe\xe0\x25\x60\x58\x46\x1b\xb9\x9f\xc3\x35\x81\x97\x32\x82\xef\x8a\xd3\x79\xd3\xc0\xe1\xe8\x3e\x30\x78\x69\x44\xe0\x89\xac\x6e\x5f\x67\x55\x4f\x77\x17\xf0\x94\x8c\xbd\x4e\xf8\xa7\x35\xeb\x37\xd0\x94\xf5\x3e\x9b\x5f\xbb\x80\xf9\x40\x70\x11\x22\xf5\xc0\xea\x30\x0a\x3b\x00\x0f\x00\x8c\x37\x45\x4a\x17\xad\x53\x55\x34\xf9\xb9\xab\xb3\x1a\xbc\x74\xf0\x3d\xc3\x62\xa6\xca\x8f\x53\xdc\xe0\x4b\x3f\xe6\x1d\x37\xe8\x78\x5a\x77\x5d\x34\x50\x30\xf5\x20\x3f\x0f\x17\x43\xe0\xc5\x9e\x13\x7a\x6f\x47\xc9\xf7\x47\x77\xdf\x01\xe7\x54\xd2\x84\x50\xe5\x19\xd1\x4d\xbd\x37\x1b\x0a\x2a\x1f\x2e\x45\x61\x35\x04\x21\xa7\x0a\x18\xa8\x2a\x38\x3f\xe9\x65\xde\xfa\x1f\x93\x17\x1b\x58\xd2\x92\x83\x61\x9e\x68\x4a\x55\xfe\xca\xb0\x3b\x83\x0c\x28\xfa\x66\x90\xb3\x6b\xac\x8d\xf9\xed\x5a\x95\xd1\x08\x90\x56\x39\x4c\x2d\x94\xca\x8a\x57\x62\xd9\xca\xbb\x97\x1d\x20\x38\x9a\x36\xac\x7e\xd1\xc2\x3d\x9e\xde\x10\x62\x40\x50\x23\x53\xcf\xea\x82\x8f\x53\xbc\x01\x44\x5c\xbb\xfd\x95\xa2\xbd\xd5\x79\x93\x97\xaf\x30\x4d\x2a\xbb\xde\x9a\xa5\x62\x84\xe6\xbc\x29\xab\x7f\x9e\xb0\x47\x91\xda\x8e\x69\x24\xd2\x01\xd5\xa1\x51\xcb\x82\xdc\x18\x47\x13\xeb\x04\xd2\x24\xa0\xcd\x5f\x9f\x0a\x45\x1a\x04\xee\x77\x65\x90\x3d\xd7\x8b\xcd\xe2\xea\x6e\x77\xf7\xb4\x9b\x24\x98\x01\x30\x11\xd6\xcf\x6d\x0f\x9c\x49\x4a\x81\xf0\x78\x14\xda\x6f\x91\x5d\xe3\x2f\x77\xa8\xe8\x59\x1c\x4c\xb5\x1e\xaa\xed\xfb\xe4\xe5\x08\x61\x62\x1f\x0f\x8b\x3f\x77\x8b\xfb\xfb\xa7\x1f\xab\xeb\xdd\xd5\x5f\xbb\xcd\x76\x71\xbb\xea\x20\x44\x20\x30\x92\xda\x01\x95\x9b\x13\xe4\x56\xf4\x2d\x2b\x0b\x4a\x67\x9b\x90\xde\x6f\xe5\x0e\xed\xd9\x54\xa0\x82\xa8\x0f\x35\x0e\xa5\x27\xba\x1e\x18\x1b\xb0\xe8\x2f\x2c\x0c\xbf\xd3\x98\xcc\x48\x03\xc6\x21\xb6\xdf\xe9\x4f\x28\x94\x23\x12\xd5\x80\xa9\x6f\xb4\x33\x08\x27\x49\x23\x7b\x60\x6c\xbb\xb9\x89\x92\x25\x4e\xe6\xba\x8b\x74\x8f\xef\x51\x33\xa4\x77\x67\x12\x9a\xdb\xac\x9b\x1c\x3a\x49\x53\x43\xe3\x6f\xb5\xf0\x3e\x62\x6c\x18\x6f\x88\xa0\x25\x27\x13\xd4\x78\xe2\x57\xa7\x3a\x2b\xb0\xae\x2d\x30\x6e\xd6\xd1\x16\x9e\x27\xa9\x00\x2c\xa3\xad\xa2\x7d\x01\xd6\x2a\x73\xa4\x29\x5a\xb0\xd0\x08\x9b\xed\x04\x34\x72\xcf\x76\x99\x2c\x07\x68\xb9\xe1\xac\x16\x2c\x34\x4a\x7e\x28\x0f\xa7\x3e\x8c\xe0\x4f\x00\x4d\x82\x45\xc9\xc0\xaf\x3d\x5a\x39\xd3\x7e\xaf\x16\x4c\x33\xc7\x31\x67\x79\xf8\x3e\x08\xd9\x0b\x1e\x6a\x27\x5a\xd8\x5b\x68\x17\xd0\x57\xc1\x53\x26\xc5\x20\xd9\x7b\x37\xaf\xb7\xa0\x05\x57\xc8\xe5\x50\x6f\xb9\xde\x96\xdb\xb7\xdf\x04\x7c\x05\xd7\x9c\xb8\x14\x5a\x5b\xc7\x44\x24\xee\xa1\xfd\xff\x35\xfe\xca\xea\x3e\x6a\x21\x7c\xab\x71\x61\x28\x29\x4c\xdd\xd5\x4d\x49\x86\xae\x81\x45\x8f\xbd\x71\x7b\x54\x10\x6b\x72\xc5\x96\xa7\xbc\x39\x55\xf8\xbc\xcf\xf2\xb2\x2e\x8f\xfb\xf3\x0d\x64\xcd\x9e\x3c\x33\x77\x81\x40\x48\xca\x1d\x9b\x5c\x42\xf3\x0c\x75\xfd\x56\x56\x6a\x96\x87\x4e\x8b\x40\x31\x0a\xf8\x6f\xf7\xf8\x70\xa2\x29\x47\xeb\x8c\x74\xe1\x33\x11\xa6\xda\x68\x35\xbf\xc1\xf1\xb9\x2a\xdf\xc7\x21\x72\x11\xa1\x91\x72\x3e\x9a\x60\xce\xc0\x59\xb0\x32\x3a\x5a\x24\x5c\x71\x4b\x02\x51\xe1\x73\xeb\x9d\x8f\x42\x42\x22\x49\x62\x5b\x0c\x6f\xf0\x11\x83\xb2\x3d\x91\x48\x0f\x55\x1f\x9b\x5b\xfd\xf3\xe5\xee\x47\xb6\x6f\xca\x53\xf3\xed\xaf\x65\xd7\x49\x85\xb4\xd0\x13\x40\xc4\x45\xe9\x5c\x63\x1a\x4b\x3f\xe8\x26\x04\xb1\x96\xd8\x8c\xce\xa7\x08\x25\x01\x22\x48\x3b\x10\x9f\x71\xb4\xa6\x03\x60\x88\xa9\x98\x1c\x2d\x02\x8f\x10\xc5\x6b\x90\x59\xf1\x3a\xb4\xb2\x85\x08\x14\x4d\x90\x65\xc7\x33\x65\x74\x22\xa7\x8b\xb9\x10\x3a\x10\xb6\xe4\xfa\x5b\x46\x52\x89\xb7\x30\x49\x0b\x09\xa9\x0d\x63\xc5\x2e\x37\xfa\xf5\xa3\xd0\xa7\x50\x7e\x18\x05\x7d\x59\x50\x7b\x8d\x07\x8a\xd0\x56\x5d\x8f\x38\x26\xff\x4d\x65\x6a\x53\xea\x66\x09\xc7\x71\x25\xb6\x50\x29\x10\x92\x77\xbd\xba\x79\x79\xbc\xde\x2c\x96\xdb\xbb\xef\xab\xae\x11\x62\x82\x5f\xdd\x67\xa2\x82\xea\x3c\x7a\x4c\x64\x69\x6c\x68\xff\x6b\xd9\x55\xbd\x0a\x0c\x12\xc3\xd9\xbe\xcf\x8e\xdb\xf2\x61\x56\x74\x47\x0b\x8c\x83\xd8\x6a\x98\xa8\x55\xa1\x8e\x65\x36\x13\x26\x1c\x9b\x25\x02\xc1\x80\xf8\x8d\x2d\x40\xa5\x11\x9f\x97\x91\x09\xc4\x88\xc6\xd6\xf2\xf1\x2f\xa3\x34\x94\x9f\xa6\xc6\xf7\x28\x36\x67\x0f\xd3\xb1\xf4\x71\x90\xa7\xb1\x6b\xeb\xe4\xc3\x68\x8c\x28\x24\x0f\x27\x95\x59\xa7\x77\xe4\x91\xcc\xfb\x33\xd2\xf3\x01\xbc\x7e\x1b\xbe\x3a\x9b\xb2\x8c\xf1\xc9\xa5\x17\x6a\xb2\x7b\x48\x94\x08\xf2\x8e\x09\x4c\x4b\x2f\x32\xb0\xcc\x22\x93\x78\x7b\x3a\xd7\xd3\x03\x13\x43\x61\xf3\x74\xaa\xae\x1c\x53\x92\x96\x1e\x86\x44\x4c\x4d\x35\x22\x26\x2a\xeb\xe6\xb7\x64\xc8\x29\x99\xde\xba\x77\x33\xb5\x45\x92\x07\x9c\x92\xd2\x65\x41\xd8\xb1\xb9\x05\x55\xf2\x40\xc2\xa8\xaa\x60\x00\x63\x99\xde\x21\x8f\xd1\x70\xc2\xd5\x77\xb2\x1c\x0a\x0b\x6b\xc9\xd1\x23\xb6\xd4\x87\xac\x40\xb5\xdd\x67\xf5\x5f\x08\x6e\x20\x4b\x1f\x42\xd2\xb7\x6e\x8d\x3d\xa2\xef\x6b\x8d\xf0\xc9\xb9\x43\x61\x94\x00\x5c\x94\x62\x52\x1a\x37\x1e\x50\x32\x94\xa9\xb3\xe7\x5a\x43\x76\x22\xda\x36\x3e\x73\xc4\x35\x99\xa9\xdb\x2a\x23\x59\x4f\x4a\xde\xcf\x0f\x54\x19\x21\xf3\xc1\x55\x53\x9e\x0a\x35\x5f\xd2\x27\xe3\xd0\x20\x1f\x6d\x58\x6a\x84\x69\x97\xb1\x8a\xc8\xe9\x3e\x4e\x62\xd8\xff\xc7\xa2\xc9\x46\x2b\x13\x8e\xa3\xe2\x96\x97\x82\xb8\x66\x51\xdd\x60\x97\x92\x90\x49\x14\xfa\x96\x58\x9c\x02\x5a\x54\x5d\xc2\xbb\xd6\x38\x4c\xec\x06\xbb\x23\xd3\xd6\xf0\x15\x8d\xc0\x32\x32\xe5\x09\x15\x4f\x37\xf0\x3e\xfe\x3d\x46\x5a\x7f\x6f\xb1\xc8\x4e\xdd\x05\xd3\xc4\xa7\x6f\xb9\xdc\x63\x5e\x23\xfc\xaa\x17\x55\x8d\x45\x87\x67\x95\x10\x72\xe2\xa0\xde\x67\xaf\x7b\xe2\x63\xef\x1b\x4c\xd0\xff\xae\x5e\xc3\xff\xd6\x27\x32\x0c\x26\x6f\x0e\xb4\x01\x99\xdf\x94\x07\x5b\x4e\x3b\x70\x66\xa5\xe0\x29\x57\x03\x74\xc8\xcd\xa9\xe8\xf1\x54\x89\xeb\x24\xd0\x08\x4b\xb6\x2f\xa4\x2c\x9b\x0b\x46\x00\xdb\x4f\x7a\x1c\x3b\xa1\x44\x3c\x1d\xa6\x21\x15\x29\xb9\xa1\x1d\x36\x94\x32\xcb\xaa\xbc\x0c\xde\x4b\x29\x19\x7d\xcc\xc6\xd5\x3c\xaf\xba\x70\x8f\x54\x9e\x11\xf6\x59\x00\xa8\x3d\x54\xd7\x78\x28\xbb\xa6\x18\xc1\x95\xca\x3f\x3d\xdd\x1b\xad\x40\xdf\xef\x9a\x35\x12\x46\x3a\x93\xe5\xb0\xf6\xc3\xb6\x6a\x1e\x0a\xec\xf8\x32\xdd\x64\xdc\x9c\xc6\xb8\xef\xf1\xc3\xea\x30\x24\xee\x2f\x97\x50\x1a\xea\xe7\x9b\x2e\xca\x63\x1e\x31\xcd\xec\x6a\xcc\x73\xa7\xdc\x36\x3a\x8b\xf2\x98\x22\x36\x2b\xc3\x91\xfb\x54\xac\xd6\xcb\x98\xb3\x0f\xe5\x49\x47\x56\xae\x3b\x05\xf7\x09\x3a\x76\x73\x63\xf2\x1d\x13\xfa\x35\xad\x9c\xcc\x15\x0d\xd6\x65\x79\xaa\xea\x6e\xa8\x2b\x1e\x19\x9a\xf4\xff\x80\xfc\xf9\x5c\xba\x52\xb3\xbe\x19\x8d\xca\x8d\x59\xab\x96\x39\xd4\xf5\x00\xcc\x3d\x7e\x23\xca\x57\x8a\xc0\x2c\x4f\x85\xd1\x5a\x58\xfd\xf7\x04\x79\x7d\x57\xf4\x0b\xb2\x0a\x98\xd1\x74\xa8\x89\xe8\xcb\xb1\xd6\x98\xf2\xd6\xf1\xc9\x82\x38\x22\x0a\xa5\xc5\xa9\x29\x8b\xf2\x50\x9e\xea\x76\x47\x7e\x83\x0a\x9f\xaa\xd7\x2f\x63\x34\xd6\x69\x88\xc9\x72\xc7\x8b\x80\xfc\x72\x32\xcc\x89\x8f\xcb\xe9\x0a\x68\x15\x86\x90\x80\x83\x9b\x91\xba\xc9\x11\x8b\x6e\x93\x57\xb1\x48\x08\x74\x4a\x72\xe0\x54\x0a\x3e\x02\x01\xff\x31\xb7\x49\xab\x58\x07\xbe\xd5\xc6\x5a\x2e\xbf\x9a\xe1\x17\x8f\x2c\x3b\x95\x78\x89\xa9\x79\xc9\x0a\xf3\xc4\xee\x77\x9e\x52\xe6\x11\x0b\x65\xf9\xc5\xba\x96\x08\xa8\x00\xed\xc6\x68\x9f\x4c\x5e\x51\x1a\x09\xa2\x4d\x30\x46\x8c\x9a\x04\xc0\x06\x91\x3e\x95\xc6\x92\x84\x4e\x96\x8f\x65\x83\x75\x47\xd4\xae\x55\x9a\x98\xf8\xbd\x35\x28\x6f\xca\x8a\xa8\xf0\x1d\x7a\x6d\x7e\x9e\xab\x54\x18\x4a\x5b\x83\x6f\xff\xee\x22\x7c\x6b\xc3\x32\xdf\xad\xbe\xfe\x25\x01\x01\x1b\x90\x57\x0f\xc7\x70\xaa\x19\xad\xa9\x12\x9a\xc7\xf2\xbe\x2c\x5e\xb1\xb2\x5e\xc0\xe4\x99\x21\x30\x12\x64\x0f\x99\xf5\x46\xdc\x93\x40\x68\x48\xf5\x2b\x33\x75\x8c\xc0\x16\x61\xdd\x3e\xcd\xb4\x28\x48\xcc\xd2\x6a\x40\x97\x20\xf7\x17\xfd\x47\xcb\x93\x02\x54\xb4\x23\x5f\x95\xe5\xc1\x14\xe8\x56\x13\x4d\xc6\x01\xef\xc2\xcc\xa7\x00\xed\xd3\xf1\x56\x50\x7e\xf1\x5a\x21\xc5\x83\x66\x34\xa3\x2e\x48\xde\xa6\x21\xa8\x79\xdf\x4b\x89\xd0\x04\x0b\x41\x29\xf3\x21\x0f\x14\x29\xc1\x3b\x59\x7e\xf0\x41\x05\x24\x54\x5f\x76\x95\xa1\x71\xf0\x06\x2f\x56\xea\x90\xc2\x6f\x04\x31\x6e\xf6\x9f\x56\x63\x2b\x15\x47\x8e\xd6\x54\x9c\xce\xc7\xcb\x8d\x5c\x29\x61\x38\xe0\x49\x6d\xeb\xfb\x8b\xe3\x5d\x52\x18\x44\x9e\x8b\x17\x39\xa2\xc3\x9b\x8b\x88\xa9\xc2\x24\x88\xd2\x4b\xf9\xa2\x51\x20\x43\x69\x2f\x66\x43\x58\xef\x85\xa0\xe0\xe0\x7b\xe8\xc8\x70\xf4\x1c\xab\xb2\x41\xd9\x7c\xcb\x8a\x57\x55\xba\xbc\x9d\xd2\x10\x90\x01\x49\x21\xfb\x1a\x9b\xd3\xf1\xaa\x84\x4a\xad\xcb\xf2\xb0\x28\xd4\xa2\xae\xb1\xea\xa6\xb1\x46\x03\xbf\xef\xea\x7a\x28\x4f\x7a\x7d\xa9\x83\x6a\xfa\xa3\xe7\x01\x6d\x86\x59\xa1\x5a\x97\xe7\x04\xf9\x03\xbc\x2f\xe1\x38\xf2\x28\xd1\x8b\x39\xa9\x17\x6f\xae\x57\xb3\x45\x19\xc3\x15\x06\xbd\x04\x49\x28\x68\x5f\xbe\xed\x0e\x50\x9c\x77\x50\x89\xac\xa9\x77\xaa\xdc\x65\xbb\x3d\x74\xc6\x23\x7a\x5a\xd3\x26\xab\x29\x42\x65\x42\xd3\xe3\xbb\x63\x21\xb3\xb2\x8c\xed\x44\xdb\x22\x1c\x56\xcd\x7e\x12\x26\x43\x16\x2a\x61\x64\x04\xaa\x9f\xd8\x88\xf6\xd5\xdc\x67\x16\xe1\x69\xa2\x8c\x7f\x2f\x5f\x8b\x4c\x70\x2f\x71\xa3\x02\x7e\x39\xc3\x07\x79\x84\xe4\x4f\xb7\x76\x6c\x59\x60\xd1\x0c\xb1\xc6\xc8\xc1\x30\x26\x1b\x67\xf6\x1f\xa7\x57\x50\x30\x53\xaf\x81\x5c\xa6\x04\x49\x78\x31\x11\xf1\xab\xb3\x19\x61\x1f\xc0\xea\x91\x2b\x8f\x22\x65\x50\xd7\xd9\x6b\xb1\x06\xad\x73\x7c\xae\xb2\xff\x4d\xb0\x11\xc8\x91\xf3\xd4\xd9\x4e\x0d\xe4\x84\x4b\x9f\xf4\xf1\xc1\x14\x3b\x2f\x6f\x97\xb7\xc3\x69\x85\x01\x62\xac\x7b\x86\xc1\xbb\x06\x0f\xb3\x29\x56\x0c\x99\x91\xa2\x39\x62\x55\x67\x75\x33\xdc\x39\x30\x0c\x93\xc8\x94\x52\xbb\x08\x1d\x46\x2c\x21\xbd\xa0\xe7\xc5\x7a\xfb\xb8\x5a\x6f\x76\x8b\xeb\xeb\x75\x5f\x73\x88\x51\xa0\x99\xd9\x34\xde\xb3\xc3\xe9\xf0\xb5\x54\xf9\xf5\xc9\xc8\x08\x39\x89\xa5\xf9\xb7\x12\x07\x09\x4d\x6d\xda\x4c\xe5\x3e\x93\x3f\xbb\x31\x1a\x8b\x88\x07\x9d\xb6\xc7\x43\x8f\x44\xc2\x58\x6b\x0a\x1e\x6d\x8e\x55\xd6\xe0\xe8\x05\x24\x2c\x48\xfb\x22\x29\x6a\xba\x3a\x7f\xfd\x31\x4f\xe2\xaf\x31\x09\x3d\x2b\x6f\xd6\xb4\xef\xaa\x23\x19\x18\xbf\xee\x24\xe2\x46\xb2\x21\xeb\xd1\xfc\x6d\xf7\x7a\x51\xa8\x6b\xac\x9b\xaa\x3c\x8f\x7e\xfe\x2d\x5d\xa0\xc6\xd4\x8f\xe3\x6e\xc1\xc2\x9b\x0a\x6a\x67\xcd\x60\x1a\x23\xed\x39\x6f\xfb\xf2\xae\x5e\x96\x85\xc4\xaa\x98\x22\x1e\x30\x45\x10\xb2\x33\x79\x26\x1f\x17\xd2\x48\xaa\xae\x64\xe7\xa5\x36\x70\x4a\x62\x53\x9d\x51\x0f\xd7\x08\x32\x0e\x85\x8b\xaa\x3b\x1d\xca\x8f\xc6\x31\x20\x3a\x00\xec\xa6\x5d\xba\xba\x2a\xaf\xa9\xab\x67\xfb\x0b\x4f\x52\x6a\xaf\xdd\x2a\x96\x4f\x14\xdd\xa2\xf2\xb3\xcf\xd3\x65\x28\x58\xaa\xa2\x9e\xfe\xbd\x9d\x27\x33\x6f\xf3\x62\xef\xfa\x74\x9b\x45\xe1\x87\xd1\x45\xf2\x75\xd7\x94\x9f\x6e\x3f\x28\x3d\xa4\xec\xc0\x7d\xf9\xea\xbc\x87\x85\x1a\xa6\xeb\x67\xb0\x3d\x69\x97\x53\x3d\x5d\xaa\x19\x6a\x94\x21\x10\x0a\xa7\xb5\xaa\x63\x57\x67\x81\x32\x52\xb2\x1f\xbc\x16\xd5\x6e\x7d\xe2\xdf\x15\xc2\xcc\x3f\xb0\x12\xd2\xf3\x5d\x78\x1e\x2a\x74\x1c\x75\x37\xa5\x13\x34\x9c\x75\x43\x50\xa9\x98\x22\x52\x75\x91\x1d\x8d\xe5\x6f\x6c\xef\x0b\x0d\x1d\x8d\xe8\x1b\x6a\x89\x76\x45\xd8\x6d\xbf\xdd\xee\x1e\x9f\xae\x57\x5d\xa3\x95\xec\xa9\xb1\xd9\x1d\xb2\x62\x77\x80\xf7\xdd\x4d\x56\x14\x78\x7e\xc6\x91\x21\x36\xb9\x3e\x6a\xcf\x11\x2d\xcc\xe0\x82\x34\xf3\x2d\x22\xbc\x1d\x16\xe3\x96\xc0\x67\xcc\xcd\x2b\x8b\xc3\x75\x02\x8d\xe3\x8e\xe0\x93\x85\x76\x80\xf7\xf6\x3e\x6a\x52\x4c\xeb\xac\x75\xcd\x2d\x29\x0b\x69\x20\x43\x95\x35\xe7\x4b\xb3\x41\x07\xdc\xd0\xad\x5b\xdd\xea\x9d\x84\x7a\xbf\x23\x68\xd4\x0e\x86\x9e\xa0\x0e\x59\xac\xb5\xbb\xab\x6b\x14\x93\xf5\x5c\x87\x51\x64\xa4\x11\x4c\xd2\xf9\xa6\xac\x6c\xbc\xb2\xab\x86\xd6\x21\x32\xaa\x51\xdd\x65\x0d\x1e\x6c\x8d\xc6\xf8\xa5\x44\xa1\x1f\xc9\x01\x83\x83\x01\xb9\x43\xd5\x4c\xfb\x41\x18\x88\x4e\x41\xe8\x06\x7e\x75\x7c\x23\x3a\x02\x15\x86\xc3\xd2\xf1\x71\x40\xc6\xf5\x92\x3c\x30\xa0\x41\x42\x0b\xa2\x7a\xd9\x38\x12\x1f\x1d\x87\x09\x7d\x70\xb3\x79\xde\x2d\x9f\xe6\x4a\x24\x5d\xdf\xc8\x44\xd8\xd6\x4f\x57\x2e\x77\x32\x2d\xce\xd1\x31\x18\x43\x9a\x7c\xfa\x47\x7c\x1d\x99\x31\x3a\x09\x13\x2a\x3f\x76\xb2\x77\x94\x0c\x1d\x10\x30\xea\x04\x64\x62\xe3\x40\x37\x59\x01\x79\x5f\xcd\xab\x13\x15\x92\x69\x68\xa8\x23\x37\x6f\x9d\x23\xa7\xd3\x48\xc6\x36\xa2\xfb\xb5\x2c\xca\xd3\x24\x32\xa8\x81\xc7\x24\x2f\xb6\x87\xba\xaf\x9e\x9e\x24\x7c\x34\x04\xa1\x05\x4d\x90\x45\xfe\xb7\x24\x8b\xb5\x16\x91\xa4\x78\x83\x4d\x55\x7d\x1a\x5b\xd5\x42\x18\xfd\xed\xac\x1e\xd9\xa1\xae\x55\xfb\x34\x82\x1f\x5e\x36\xcf\xeb\x85\x7b\x36\x99\xc6\x14\x18\xfb\x8a\xea\x15\x97\x50\xef\xbb\x06\xc1\x68\x08\x16\xa7\xc3\x3f\x5b\x7f\x8b\x1e\xc9\xb6\x29\x1f\x28\x9a\x9e\x97\xaf\xcc\xbb\xc9\xcb\x72\x8c\x23\xd7\x2a\xe0\x20\x86\xd8\xe9\x0d\x31\xa3\x2c\x3e\x16\xea\xd3\x5a\xa5\x29\x15\x8e\xb4\x3e\x4e\x37\xfe\xd0\x97\x94\xb0\x7d\x59\x2d\xc7\x15\xa1\xe3\x63\x31\x90\xb2\xd3\x55\x19\xa0\x6d\xb5\xe6\xca\xb0\xdc\xc2\x79\x5b\xce\x89\xda\x6b\xad\x43\x49\x9c\xaf\x22\xb3\x24\x24\x78\x3a\x4c\x83\xde\x23\x5f\xae\x1d\x83\x14\x80\x18\xc2\x25\x07\xb3\xea\x8f\xc9\xf9\x05\xc6\x76\xc4\xfd\xa3\x14\x9b\x63\x59\xd4\x25\xd5\x55\x8d\x2c\x30\xee\x79\xcc\x37\x84\x7c\x34\x57\xb7\x86\x12\xd3\x36\x71\x0f\xfc\x5e\xad\xc1\x08\x68\x8d\x31\x9d\x83\xb2\xa4\xe1\xf5\xdb\x63\x63\x4e\x61\xfd\xda\xcd\xfe\x1e\x3c\xd7\xb6\x4a\x4e\xec\x15\x35\x65\xcd\xeb\x41\x0e\x89\x7b\x9e\xef\x1b\x7f\xed\x01\x5e\xb3\xf7\x35\xca\xb2\x52\x3d\x44\xa5\x6d\x0f\x91\xe0\xd7\x99\x2c\x5d\x59\x7a\xfb\x6b\xec\x13\xa0\x49\x23\xd6\x3b\xf7\x63\x20\x22\x1a\xc7\xdb\x3d\xfe\xd8\x43\x8e\x3f\x9c\x84\x67\xdb\xa6\x34\xdd\xc3\x15\xd4\x99\xec\x7f\x6d\x87\x84\xad\xc1\xef\x2d\x3a\xee\x79\xa1\x9f\x10\x8b\xfb\xf5\x76\xd5\xfd\x14\x1b\x59\xc3\xad\x1c\xa3\x25\xdb\x26\x25\x22\xd5\xf1\x74\xfe\x8e\xba\x6f\x6a\x98\x71\xcf\x8b\x83\x98\xf0\x29\xcd\x1e\xd7\x48\xee\xfe\x97\xf1\x0b\x8e\xa3\x88\x18\x6e\x17\xad\x13\x64\x00\x3a\xb6\x25\x91\x5c\x1a\x5a\xfa\xda\x85\xbc\x26\xc7\xa6\xe0\x85\xd6\xcf\xbc\x87\x42\xd9\xc2\x9c\xac\x2c\xac\xf9\x98\x5d\x5c\x0d\x78\x48\xd5\x93\xcf\x7b\x18\x3f\x28\xd8\x58\x3c\x28\xe5\xaa\x93\xdf\xba\x12\xfb\x0f\xac\xa1\xee\x50\x49\x50\x2a\x71\xaa\x8a\xc5\xbf\xee\xb7\xab\xcd\x76\x32\x36\x85\x67\x88\x7c\x5a\xe3\xab\x2b\x57\x4f\x5c\x63\x62\xd0\x71\x40\x7e\xea\xea\xbf\x63\xae\x86\xe1\xe4\x31\x9d\x69\x3f\xd8\xf5\xec\x95\x7f\xc7\x79\xe3\x9e\x27\x99\x71\x29\x8e\x15\x1e\xb2\xd3\xe1\x19\x9c\x6b\xd0\xb6\xc5\x86\x56\xf0\xcd\xc9\x93\x4f\x67\xf0\xe4\x54\x71\x4c\xc8\x21\xd1\xee\xc9\x67\xe7\x98\x74\x27\x53\x9a\x6c\x0d\x81\xad\xb1\xf0\x9c\xc9\x9f\x39\xae\xb3\x7e\xce\x28\xe6\x51\xea\xfe\xa9\x3a\xee\xf1\x54\x1b\x50\xa9\xac\xef\xa1\xec\xee\x47\x71\x54\xdc\x2c\x48\x4e\xee\xb3\xfd\x15\x05\x65\xd7\xad\xa2\xcb\xe6\x32\x1e\x73\x19\xf3\xe3\x9e\x87\xc2\x04\xf3\x3b\xb0\xda\xb6\xbc\xcd\x7e\xe1\x64\x60\xa0\x4e\x63\xa3\xf9\x71\x7e\xdc\x6e\xdc\x25\x35\x37\x08\x5f\xcb\x68\xed\x82\x77\xae\x55\x48\x6d\x13\x5f\x37\xa7\x3c\x3f\x7f\x9f\x61\xf7\x1e\x8f\x15\xd6\x4e\x7a\x1b\xc9\xbf\x3d\x15\xf5\x9d\x72\x4f\xc7\xbc\x40\x49\x13\x5f\x6c\xdd\xf2\xc3\xa9\xc8\x9a\xf3\x10\xd4\xd3\x76\x11\xc6\x9e\x35\x7e\xc8\xa6\x63\x40\xf8\xe0\x5a\xdc\x33\xdd\x17\xd7\x0f\x77\x8f\xbb\xcd\x6a\xbb\x6b\x87\xe6\x6e\xbd\x78\xbc\x7e\x7a\x18\x04\x3d\xb9\xc7\x7c\x2f\x26\x1e\xa5\xae\xc2\x6c\x83\xcd\x63\xd9\xac\x91\x02\x09\x20\x72\x7c\x2c\x07\x34\x06\xdc\x63\x41\xe8\x53\x10\xc3\xe6\xc7\x30\x2f\x8b\x63\x39\x4b\x52\xdb\x76\xb6\x42\x86\xcd\x6b\x45\x69\x29\xa8\xba\xd2\xdb\xee\x7c\x2a\x26\xcb\xda\x46\x83\x16\x79\xbe\xa8\x2e\xd1\x13\x93\x27\x0c\x90\x51\x46\xe6\x87\xf7\x13\x17\x37\x17\x22\xf9\x1f\x46\xe2\x46\x0e\x1b\x9d\x27\x54\x86\x7b\xdd\x65\x67\x6c\x43\xe8\x21\x67\x36\xbe\xd2\x9b\x90\xa3\xf1\xc5\x42\x5f\x11\xde\x96\x62\xb2\x0b\x55\x1e\x5b\xdf\x6d\x90\xb9\x68\xbb\x04\x48\x56\xd7\xa9\x38\xc2\xa9\xc6\xe7\xef\xcf\x5d\x4b\x22\x49\xf1\x52\x67\x79\x3e\x82\xb7\x71\x8f\xc5\x81\x51\x66\xb0\xca\xd4\x33\x44\x7d\x6d\x27\x30\x0a\x4b\xff\x8f\xb3\x7f\xd9\x6e\x1c\xc7\xb6\x85\xe1\x77\x39\xad\x6c\x9c\x06\x00\x92\x20\xf9\xf7\x64\x59\x76\x28\xd3\xb6\x54\x96\x1c\x51\x59\x7b\x9c\xa1\x81\xcb\x82\xcc\x32\x45\xaa\x48\x2a\x6c\xd7\xd3\xff\x83\x0b\x00\x6f\xa2\x23\x73\x7f\xbb\xb1\x23\xcb\x00\x29\x12\xc4\x65\x5d\xe6\x9a\xd3\xf9\x75\x76\x86\x7f\x2b\x73\xdd\x7f\xaa\x18\x00\x87\x16\x29\x6c\x41\xe4\xbd\xea\x2c\x23\x34\x09\x52\x04\x3a\xac\x8a\xa3\xab\x82\x1a\x6e\x8b\x34\x89\x04\xc2\xe3\xf2\xec\x3f\x97\x4c\x67\xcd\x67\x87\x35\x1a\x0f\x42\x92\xe8\xd0\xa3\xa0\xb0\x22\xd8\x71\x5a\xf8\xe2\xf8\xf1\x43\xa7\x44\xd9\xfa\x82\xf6\x40\x5d\x66\x15\x46\xe2\xfa\x2d\x84\x4a\x61\xc0\xa6\x26\xcb\x02\xaa\xec\x32\xac\x8e\x62\x84\x6a\xa5\xd1\x26\x28\xe0\x7d\xd9\x71\x8b\xcc\xee\x7a\x54\x03\x47\x96\xd2\x53\x01\xa7\xb2\xdd\x66\x96\xc3\xef\x02\x89\x55\x63\xb7\x93\xf8\x87\xdf\xfd\x96\x65\x55\x40\x85\xe5\x08\x16\xe3\x03\x43\xf6\x72\x1f\xb2\x6a\xaf\x4f\xad\x5b\x25\x5b\x9b\x60\xb2\x0f\x22\x15\x32\x1f\xe4\xd9\x56\x0e\x8a\xd5\x36\x71\xc0\xdc\x45\x99\xeb\xc5\xf9\x5c\x81\xca\xf0\xca\x67\x64\xd9\xc9\xba\x5e\x29\x87\xc8\x17\x25\x9f\x6d\xf4\x6e\x29\xce\xeb\x62\xd1\x34\x25\x8c\xfd\x15\x46\x18\x61\x29\x42\xdd\x00\x25\x75\x9c\x27\x4a\x99\x6f\x0d\x2d\xd2\x0f\xd5\x8f\x33\x35\xd2\x95\x98\xb1\x7b\x18\x81\x14\xc5\xa2\x65\xa6\xc7\xa0\x66\xd7\x4e\xb5\x41\x48\x10\xb2\x66\x1d\x6e\x5f\x9e\x17\xfb\xf5\xe6\xe9\x10\xb8\x87\x67\x8c\xdb\xb0\x86\x2d\xb7\x2e\x46\x31\xc9\xb6\x39\x0d\x30\xa3\xe5\x22\x05\x56\x34\x75\xfc\x04\x01\x4b\x95\xb3\x82\x0f\x22\xcf\x0f\xe8\x94\x64\xcd\x67\x31\x79\xef\x90\xd3\x18\xc6\x91\x8d\x79\xc2\x93\xbf\x72\xf9\xff\x3f\xfe\xeb\x1e\x23\x22\x8c\x87\xbe\x08\xbb\x11\x87\x68\xf2\x98\x51\xc2\x51\x12\xeb\x3f\x17\x91\x67\x26\x83\x7a\x51\x77\xfb\xfc\x8d\xc8\xf3\xb2\xf9\x6d\x34\xc0\x11\x44\x18\x94\xb3\x46\x6b\xa7\x68\x58\x5b\xba\x7d\xd7\x89\x13\x9e\xc6\x5d\xa7\x79\x59\x88\x76\xca\x0e\xf7\x15\xc6\x03\x48\x2c\x5d\x59\x6b\x52\x65\x8e\x61\x6b\x7c\xd6\x30\x2e\x08\x26\x14\xec\xd2\x40\xf1\xae\x83\x98\x58\x05\xc3\x23\x84\xc5\x31\x60\xe9\xde\xfd\x8f\xfb\xbb\xed\xc3\xcb\xee\xeb\x10\x78\xdb\x59\x5b\x29\xa1\xd5\xfe\xdb\x83\x05\x01\xfd\xdd\x80\x4c\x77\x83\xd8\xe3\x24\xbd\xb9\x36\x5c\xd9\x2c\x76\x25\xf1\xcb\x8d\x4b\xa3\x31\xc2\x12\x9a\xa6\x04\x23\x67\x16\x8e\x8a\x41\x27\x8b\x5f\xfb\x6a\x8a\x8c\x1e\x3a\x09\xb4\xb0\xd1\x2e\xdc\xdf\xfc\x4e\xb8\xda\x7f\x9b\xb7\x93\x58\xca\x08\xfa\x79\x77\xbb\xbd\x7f\x86\x14\xa2\xd4\x9b\x99\xa5\x9e\xe1\x97\x66\x84\x89\xd0\x22\x4a\xf3\xec\x94\x59\x56\x05\x7f\xb5\xe0\x56\xa2\xeb\xe9\xee\x9f\x03\x47\x82\x09\x15\x60\xf0\xd2\x27\xb9\x87\x2c\x0b\x93\x6f\x2f\x93\x18\x73\x95\x1e\x59\xb1\x2f\x3b\x36\xbb\x76\x8f\x2d\xab\x2f\x88\xbc\xdb\x4b\x65\x80\xae\xc0\xef\x7b\x74\x81\x54\x87\xdf\x6b\xdb\x54\x0c\x71\xc7\x27\x02\xd5\x4f\x91\x2f\x4b\x30\x26\xc3\xca\xb1\x81\x35\xfe\xf7\xd6\x92\x0a\x69\xe0\xea\xcf\x9e\x32\xf5\x86\x44\xb1\x97\x39\x7b\x98\x29\x41\x3a\x05\x21\xf1\x59\x95\x79\x3e\x6b\x81\x30\x1d\x51\x84\x9c\xef\xf6\xcf\xfb\xfd\xc0\xdd\x62\x9a\x83\x30\xc3\x34\x5c\x59\xd5\x57\x40\x62\x46\x18\x04\x29\x0b\x3b\x52\x19\xb7\xd3\x4f\xba\x28\x88\xc3\x2e\x19\x63\xa1\xb9\xe3\x35\x6d\x40\x22\x51\x20\x26\xaa\xd8\xc1\x5a\xfc\xf7\xa2\x7e\x69\xed\x59\x4a\x08\xa6\xad\xfc\x12\x0c\x48\xcc\xad\xaf\x52\x96\xf9\xba\x9b\xc6\x01\x31\x31\xda\x24\xc5\xe5\x74\x28\xe5\xbf\xc1\x8b\xbf\x33\x12\xb0\x20\xe6\x81\x23\x67\x87\xca\x94\xd5\x09\xc3\xb0\xd7\x54\x19\xc9\xd5\xff\xa7\x7c\x70\xb0\x05\x8c\x3b\x92\xa1\xf2\x52\xe8\xcd\xb9\xb3\x07\x82\x20\xe4\xc8\x92\x60\x79\x9c\xbe\xfa\x9c\xff\x73\x25\x7e\xfc\xb5\x87\x18\x04\x69\x92\xba\xaa\xbb\xfb\x2a\xf3\x95\x77\xa3\xcf\x17\x04\x3a\x45\xa0\x4e\xfd\x9e\x35\xea\x75\x5f\xde\x7a\xef\xa7\xf5\xf5\xda\x75\x34\xfa\x12\x41\xa0\x21\x0c\x3a\xe1\x17\x24\xe9\xb4\xbb\xc4\x5f\xcd\xbf\xf9\xf9\x18\x44\xcc\x72\xd8\x23\xb7\x96\x2f\xd6\xf7\x6d\x9a\x4b\xe7\x5e\x38\xf7\x00\x2b\xb2\x86\x9c\xda\xae\x27\x0f\x03\xc2\xbb\x1c\xc3\x43\x56\xbc\x81\xb6\x5b\xf6\x40\xa9\xde\xf7\x05\x4b\x11\xd0\x4b\xa2\x5c\x25\x52\xfb\xc7\x8b\x23\x9e\x7a\x4d\x52\xaf\xb7\xe3\x9b\x8c\x92\x43\xfc\x4b\x9f\x6a\x9e\xdc\x23\xd1\xd4\x1b\x1b\x78\x1c\x3c\x66\x05\xaa\x2e\xca\x5f\x72\x22\xb5\x17\x02\xc3\x3a\x93\x8e\xc8\xed\x41\xd4\xdd\xe0\x24\x90\x20\xdd\xcd\x29\xfb\xb8\x2b\xab\xd3\x25\xf7\x26\x50\x90\x32\xca\x89\x9f\x61\x74\x57\xe6\xba\x6b\xe1\x4e\xe4\x45\x18\x98\xa5\x2e\xc4\x3e\xb1\xb0\x81\xd5\xdb\x0c\xc6\x66\x73\x90\x26\x91\x76\x47\xc3\x0f\x80\xb7\xfc\xd3\xeb\xd8\x8e\xa7\x54\x9a\xa4\x88\x51\x10\x32\x1b\x6b\xb8\x62\x9b\x4c\x02\xb7\x92\xb7\x15\x9c\x45\xa6\x57\xcd\xeb\xfe\x1d\x06\xa7\xeb\x9c\xaf\x19\xa4\x32\x48\x6c\xd1\xcd\x37\x51\xbf\xee\xb2\x63\x01\x7a\x7a\x6f\x9d\x1a\xdd\xc7\xa6\xb1\xba\xfa\xcb\xe0\x1c\x23\x81\x08\x2c\xfb\x71\xa6\xca\x03\xda\xcb\xda\x27\x0b\xda\xc6\x38\x35\xb6\xd0\xa2\x29\x8d\x19\xe3\xda\xdb\x66\x99\x20\x01\x8b\x8b\x2c\x6f\xaa\xec\x98\x15\x22\xbf\x81\xee\x03\x49\x16\x60\x91\xbe\x43\x36\x59\xba\xac\x89\x87\x13\x28\x12\x20\xb2\xac\x3d\x73\x4c\x9e\x75\xb7\x57\x12\x90\xdc\x03\x83\xc9\xdb\x2f\x24\x10\x7c\x38\x2c\xd0\x81\x95\x61\x6c\x77\xd0\x4a\x43\x75\x33\x23\x80\xef\xbb\x0a\x85\xb1\x3c\x27\xa3\xe2\x04\xb1\xfc\xcf\x02\xd1\x18\x21\xdb\x5d\xce\x72\xe8\xac\x04\x10\x30\xac\xb0\x3e\x96\xb9\x5e\x9b\xbb\x91\x96\xa1\xeb\x62\x84\xb0\x5a\x78\x02\xd5\x79\x9b\xab\x76\x19\xf9\x12\xe0\x21\x6f\xd9\x2c\xb2\x6b\xf2\xa1\x0c\x28\x3c\x62\x1e\xca\xe3\x5f\x45\xa7\x47\xe7\x7d\x48\x48\x8a\xd1\x0e\x9f\x45\xbb\x2b\x2b\x3c\x31\x7b\x3d\xc0\xde\x92\x9b\x6c\x9e\x21\x49\x25\x56\x33\xdb\xfc\x80\x03\x4c\xcf\x00\x94\x19\x09\x69\x44\x11\xd8\xd4\x21\x1f\xb6\x13\xc5\xd7\xd1\x48\x84\x54\xa6\x69\xec\x73\x17\xd9\x7f\xc1\x4b\xdb\xfc\x76\x2d\x8b\xcc\x48\xc8\x98\x0d\x37\xd6\xd0\x2c\x2e\x8d\xd3\x34\xbc\xf9\x1c\xa9\xf7\x0c\x0e\x98\x90\x85\xb6\xb0\x21\x07\xf1\x13\xb0\x06\x7b\xfc\xb0\xcc\x91\x63\xd8\x3d\xef\x65\xc8\x27\x3c\xee\x07\x91\xea\xd9\x3d\x7b\x66\x93\xf1\xd3\x05\x2c\x89\xb4\x57\xae\xec\xf8\x48\xfd\xb1\x19\x86\x92\xa1\x10\x07\x7c\x28\x00\x5d\xb7\x73\x6d\x39\x46\xad\x33\x12\x46\x2c\xc2\x7d\xee\x74\xc9\x59\xc4\xfd\xa5\x9c\x58\xc1\xce\xe2\x58\xfd\xd7\xa3\x16\x7d\x5b\x0c\x21\x9a\x16\x9e\xe7\x07\x49\x3e\x9b\x2f\xf2\x37\x8c\x84\x89\xb2\xa0\x9b\xac\xb0\x3c\x4b\xe3\x77\x48\xc0\xea\x77\x6f\xc5\x67\x6b\x12\x8e\x7e\x29\x8d\x42\x6f\x05\xdd\x54\x00\x3a\x2b\x8e\x8e\xc7\xe3\x17\xf8\x73\x46\x42\x91\x24\x2a\xb2\x99\x97\x1e\xe2\x34\xda\x4d\xdb\xa1\xc1\xd0\xc8\xe2\xfb\x62\xfd\xb0\xb8\x79\x58\x59\x9e\xe4\xe0\x60\x65\x62\xfd\x13\x48\x6e\xed\xca\xe2\xe2\xd9\xc3\x56\xad\xf7\x0f\x93\x5d\x37\xd4\x81\xe6\x91\x47\xf7\x5f\x8a\xc6\x22\xc0\xea\x8d\x99\x99\x03\xc0\xe3\xd0\xa2\xf1\xdf\x45\xa5\xe7\x23\xb1\xa3\x2b\x22\xa2\x18\x9e\xd3\x0e\x7f\x7c\x57\x5e\xaa\xe6\xd5\x43\x0a\x19\x89\x68\x48\x54\xec\xf3\x86\xe8\x73\xa2\x08\x6f\x9f\x03\xc3\x3e\x56\xdf\xae\x79\xc3\x5e\xfe\xcf\x8c\x39\x75\x68\x2b\x9a\x6c\x25\x7f\xe6\x3f\x64\xc4\x02\x8d\x78\x24\x54\x5a\xec\x06\x16\x19\x5b\xb3\x13\x94\x97\x61\xf6\x21\xf9\x1f\xd6\xf9\x67\xe3\xff\xf4\x37\xd3\x40\x79\x47\xcc\x6c\x05\xb9\xca\x4b\xc7\xb3\x3d\x1e\xb3\x28\x70\xb5\x0a\x36\x57\xf4\x98\xb5\xdb\xf9\x36\x17\xe3\x0a\x1d\x3a\xf1\xa6\xa2\x80\x13\xe8\x28\xfb\xba\x22\x53\x1e\x4e\xde\x2b\x00\x8e\x0e\x54\x73\xa9\x8a\x8d\x31\x9b\x4a\x28\x74\xb7\x5d\x73\x18\x12\x4a\xc6\xd5\x4f\x77\x65\x65\x13\x1f\x7d\xcd\xfc\x98\x2d\xa4\xbd\x2c\x16\x21\x1b\xd4\x26\xdc\x8a\x0c\xeb\x46\xfd\xe6\xfb\x1d\x79\x5a\x2d\xd8\x76\x02\x9c\x6e\xaf\x96\xd6\x93\xb4\xb6\xf4\xfc\x3c\x8f\x22\xc5\xf0\xe8\xd9\x41\xa5\x5e\x5f\x6a\xa8\xa6\x3c\x2a\x93\xfe\x9c\x0b\x48\x9c\x41\xf5\x58\x16\x08\xc7\xce\x45\x5d\xef\xb2\x06\x76\xdd\xe1\x19\x71\x21\x31\x81\xf3\x04\xef\x4f\xa5\xb6\xfb\x29\x1a\x1b\xd5\x28\xba\x1a\xc5\xcc\x52\xdc\x59\x7b\xc0\x85\xaf\x71\xf4\xe0\xb7\xbf\x64\x2c\x6c\xaf\x0f\x08\x9a\x0c\xbb\xd5\xc3\x83\xff\xed\x38\x64\x88\x28\xf0\x86\xdd\x48\x85\x6f\xf2\x3a\x49\x40\x70\xe7\x6f\x1d\x78\xbf\x8d\x5b\x1f\x67\x36\xa6\x18\xa5\x8c\xa0\xd0\xce\x37\xf8\x1c\x6e\x33\x51\xaa\x22\x4b\x70\xef\x24\xc3\x37\xa8\xd6\x50\x8f\x38\x7a\x18\x89\x24\x4d\xd1\x37\x7f\x15\x75\x17\x03\x1c\x03\x6e\xda\x4e\x69\x40\x1d\xd1\xa9\x1d\x89\x09\xf5\x6d\xdb\x45\x50\x34\xa6\x6e\x77\xbf\x77\xaf\xad\x58\x82\x91\x54\xff\xda\xfb\x59\xb0\x64\xdb\x31\x56\x26\xf2\xcc\x04\x4b\x28\x9a\x4b\x75\x15\x87\x8c\x54\x6a\x85\x78\xdf\xfd\xed\x35\x21\xdc\x32\x7a\xc0\x5e\xbc\xc1\xea\xc3\x79\xc4\xbe\x99\x2b\x7c\x22\x5f\xc2\xb0\x3a\x1e\x87\x2b\xc5\xfb\x79\x91\x56\x04\xe3\x97\xe7\xb2\xf4\xfe\xe8\x52\x9c\xf7\x19\x54\xd4\xdf\x0a\x08\x30\xee\x33\x0b\x50\xd5\xcb\x3c\x33\xc6\x37\x9a\x40\x46\xc9\x88\x7c\xbc\xb5\xb0\x96\x97\x89\xd1\xce\x89\xa0\x91\xa3\x8f\x39\xfb\x0d\x8c\x53\x12\x63\x11\x93\x06\xd1\xbc\x62\x28\x4a\xb0\xae\x2d\x8c\x10\x60\xff\xed\xdb\xed\xf0\xcb\x72\x46\x0c\xd2\x30\x94\x5e\xb1\x7b\x55\xe8\xd1\x1c\xe6\x2c\x49\x30\xa0\xa2\xe1\x9c\x97\x9f\x18\x01\x70\x65\x3e\xbe\x03\x84\x91\x3b\x83\x6e\xb3\x0a\x94\xa7\x4a\xda\xbf\x56\x50\xbf\xb6\xf6\xfd\xf8\xd9\x03\x6a\x75\xb1\x2f\xc5\xc0\x93\xbe\xb6\x70\x78\xc0\x53\x34\x3e\x17\xcd\x6b\x0e\x43\x74\x1a\x23\x3c\xe4\xf6\x4c\x3c\xa0\x40\x3f\x12\x92\x0e\x93\x14\x3c\x8c\x01\x83\x9e\x58\x5c\x5f\x88\xdc\x71\xa1\xfa\xe6\x88\xea\xc8\xf2\x52\x0c\x0a\xaf\xc6\xe7\xcc\x97\x96\x17\x6f\x8f\xdc\x18\xf3\x96\x0d\x66\x75\xbf\xd3\xee\xb6\xa1\xb5\x49\x6e\xd7\x8b\xc7\xcd\xd3\xad\xff\x33\x27\xf1\x00\x07\xb9\x14\xc5\x1d\x34\xea\xf5\xb7\x7e\x27\xe4\x71\x64\x39\x8c\x5f\x3f\xcf\x58\xea\x09\x95\xf1\x64\x31\x6d\xab\x4a\x90\xf4\x7e\xcc\x74\x71\x57\x95\xa7\x2e\x84\xf3\xcb\xb4\x1d\x4f\x92\x08\x31\x8a\xb5\xc8\x61\x3d\xc9\x74\xf0\x24\xb5\x0a\xa5\xee\xe8\x74\x40\x15\xd7\x98\x06\x09\x62\xdf\x51\xc1\xce\xe1\x00\x86\xa5\xfb\x33\xc3\x93\x86\x1a\xa9\x8b\x84\xd6\xa8\x03\x3b\xf1\xe8\x79\xaa\x01\x99\xf6\xf6\x65\x21\xf2\x7f\x5c\x44\xd1\x5c\x4e\xdd\xcf\x19\xce\xd5\x50\xf8\xae\x7e\x2a\x9b\x55\xa1\x41\xaf\x8b\x85\xfe\x89\x31\x8d\xae\xab\xc2\xbd\x06\x3e\x54\x7e\xd1\xb0\x38\x49\x51\xd7\x42\x97\xd5\xac\xc2\x29\x23\x5c\x84\xa1\x09\x3a\xf5\xa0\xdf\x66\x0c\x79\x2e\x79\x28\x43\x1f\x2a\x17\x0d\x3c\x75\x3a\x45\xf4\x8b\x00\x01\x57\x46\x63\x74\x48\xe5\x20\x0a\x5f\x50\xde\xc5\x89\x26\xfe\x14\xd7\x84\xb2\xc8\x1f\x94\x76\x1f\x2b\x10\x51\xd8\xce\xc3\xd1\xc7\x4b\xfc\x15\xd4\x68\x87\xab\x7c\x84\xa3\x98\x8d\x71\x71\x1d\xf2\xc4\x22\x03\x33\xe5\x8e\x97\x7e\x12\xcd\x1e\x74\x1c\x54\x2c\xa8\xff\xb0\xad\xb7\x7b\x55\xb1\xfd\xe5\x17\x8e\x09\x4d\x11\xd6\xea\xb8\xce\x5a\x2b\xc3\x94\xd5\xc9\xbf\x51\x67\x3a\xc5\x24\x0e\x11\x0a\xf3\x4f\xa8\xca\x1b\xe8\x82\x03\x31\x49\x25\x42\xb1\xff\x2d\xd4\xdb\xb9\x6c\xb6\xe2\xe2\x79\xef\xdb\x46\xc9\xf1\x8d\x3d\xbd\xfa\xb6\x13\x3e\x64\x24\xa6\xa1\x41\xbf\xb6\x86\x66\x07\xb9\x41\xcc\xe8\x45\x35\x37\x50\x80\xc9\x54\x26\xc6\x88\x53\x46\x62\x16\x84\x58\xff\xf8\x08\xe5\xfb\x70\x07\x89\x59\xc2\x03\x8f\x4b\x7b\xdc\x4c\xaf\x4a\x6d\x18\xa0\x8b\x36\xc1\xcd\xa5\x69\xca\x62\x5d\x20\x1d\xa5\xef\xa5\x34\x7a\xc1\x4f\xf0\x5e\x77\x08\x20\x46\xe2\x80\x27\xa8\x51\x8c\x4e\xfb\x0e\xb0\x18\x76\xde\x60\x8c\xc3\x88\x23\x8e\x72\x69\xab\xdc\x7a\x21\xa5\xb9\x48\x7b\x1c\x2a\x7b\x0a\x3d\x66\x6f\xe3\x2a\x22\x46\xe2\x88\x25\x08\x93\x6a\xb7\x84\xb2\xfb\x23\x00\xda\x48\xe8\xca\xe1\x5a\xcb\x9a\x0c\xfc\x81\x11\xf3\x04\x20\xe9\xf5\x4b\xcb\x5a\xe4\x6b\xbf\x6b\xc5\x31\x51\xe8\xc4\xdc\x3f\xbf\x0c\x42\xce\x71\x1a\x12\xf4\xcf\x6c\x9e\x73\x10\x90\xeb\x86\x25\x4d\x39\xb1\xb1\x87\xe2\x27\x54\xcd\xad\x65\xa8\x1c\xaf\x84\x38\x35\x12\x91\xc0\x75\x6b\x19\x55\x93\x75\x12\x0b\xae\x10\x11\xde\x1d\x83\x2e\x14\xf6\x3d\xab\x2e\x93\xc9\x1f\x0b\xae\x91\x0c\x67\x7f\x79\xbb\xb9\x78\xac\x41\x2c\xa4\xc0\x75\xf9\x68\x39\x08\xbb\x3f\x2b\x89\x21\xa6\x43\x77\xe7\x67\xf8\xcf\x25\xab\x1c\x85\x91\x87\xaf\xce\x7f\x2c\x99\xa4\xf8\xbd\xbd\x11\xf0\xe0\x99\x8e\xda\x36\x6d\x2b\xcb\xd1\xad\xf0\x41\x00\xdf\x06\x32\xf2\x4c\xfe\xa2\x81\xb5\x2a\xdb\xa5\x82\x55\x8b\xbe\x8b\xe2\xa1\xb1\xaa\x01\xb6\x58\x67\xf2\x8e\x4a\xc6\xd6\xc0\xae\x44\xd1\x25\xd0\xaf\x99\x1d\x19\x89\x81\x87\xb8\x36\xcf\x19\xdc\xcc\xd0\x5b\x31\x12\x9b\xd0\x04\xee\xf3\xfc\x52\xba\x92\x91\x84\xe8\x04\x01\x1b\xab\xef\xfb\xe5\xfe\xe1\x17\xb1\xaa\x84\x06\x14\xb3\xad\x1a\x3c\x61\xc1\xd8\x9b\x4c\xa8\x63\xcb\xeb\x8d\xe8\x24\xa0\x09\x96\x90\x21\x2e\xf5\x30\xca\x9b\x27\x01\x63\xd4\x45\x15\x36\xe7\x6b\x76\x24\xec\x61\x85\x50\x16\x4d\x95\x89\xea\xed\xaf\x4a\xa1\xdb\x2b\x42\x40\x8c\xe3\x42\x6b\xe7\x7c\xce\xef\x8d\x49\x10\x41\xa2\x7a\x26\x0c\xff\x57\x15\x23\x57\xea\xe1\xb5\xdd\xac\x57\xc7\xe3\x64\x60\x93\x40\x49\xed\x8c\x64\xb5\xb0\x6a\x39\x7f\x6d\x4d\x20\xc5\xa4\x71\x71\xa9\x3b\xc8\xfd\xde\x99\x44\x0e\x99\x53\x43\xb3\xaa\x94\x8b\x14\xd6\x73\x2a\xdf\x6d\x67\x63\x25\x39\x3d\x86\xa2\xd0\xa3\x34\xef\xe0\x40\x49\xb8\xd0\x18\x7e\x7d\xcc\xe0\xfd\xbe\x0f\xbe\x26\x31\xb5\xea\xbd\x77\x65\x05\x4a\xa0\x23\x7f\x27\x54\x53\x4e\x77\xd4\x24\x09\x12\x95\xf8\x3d\x65\x0b\xd5\x0f\xe1\xf3\xd6\x49\x12\x69\x5b\xdc\x70\xbf\x22\x6c\xf9\xcd\xff\x39\x25\x21\x1a\xdb\xb8\x1f\xb6\xc7\x5d\xd7\x10\x33\x3c\x6f\xb7\xa2\x6a\x32\x91\x3b\xbb\xf1\xab\x0a\xaf\xc9\x94\x4b\x35\xb1\xc1\xc0\x77\xa1\x5e\x5f\x55\x99\x4d\x6c\xfc\x44\x90\x34\xed\xf3\xa8\x7f\x64\x4d\xf3\x65\xda\x62\x3e\xd7\x98\x88\x14\xd0\x38\x6e\xde\x41\xbc\xf5\xf4\xe0\xdd\xb2\x4d\x84\x21\xa9\x13\xd2\x59\xb7\x2e\xef\x5b\xbb\xd3\x0f\x26\xa9\x24\x09\xe9\xf5\x26\xad\x4a\xcd\x55\x35\x65\xdb\x2f\xb0\xc2\xd3\x05\x7c\xcc\x72\x77\xb7\x5d\x62\x1b\xe9\x59\x1c\xab\x0c\x19\x34\x30\xe4\xf7\xd1\x4d\x4f\x45\x09\xae\x98\x9b\x87\xcd\xf2\x8f\xc3\xcd\x62\xb7\x5e\x1e\xb6\xcf\xeb\xe5\xaa\xeb\x90\xd8\x5c\x01\x2a\xa6\x7d\x09\x82\xf4\x9d\x45\x8c\x77\x6b\x4f\xaf\xf5\xf6\x7e\xf2\xb8\xda\x74\x9c\xf5\xe8\x4d\xce\x15\xfe\x33\x92\x00\x55\xc8\x46\xfb\x5e\x65\x18\xa1\xd4\xd9\xc8\x26\x1a\xaf\x4e\x48\x52\x2b\xd7\xd6\xdc\x5d\x8a\x49\xaa\x25\x01\x29\xd0\x3e\x3e\x74\x89\xce\x5f\xc2\x83\x12\x90\x06\xc7\x33\x3f\xdf\x64\xda\x86\x11\xdc\xad\x52\x12\x6b\x3c\x78\xd0\x91\x59\xe6\x5e\x64\xad\x6d\x49\x43\x8b\xd9\xb6\xba\x8f\x93\x25\x3c\x16\xb9\xc2\xee\x06\xc9\x0f\x94\xcf\xe5\x8f\xb8\x48\xda\x0e\x92\x08\x04\xc6\xa3\x54\xc2\xfb\xb6\xca\x7e\x66\x39\x1c\x3b\x4b\x27\x25\xca\x20\xac\x4d\x95\x45\x7d\xc9\x9b\x49\xed\x84\xef\xa4\x2d\xdd\x41\x5e\x96\x6f\x97\xf3\xcd\xe7\xb6\x2a\xff\x0d\x6a\x32\x81\x52\xa2\x13\xc4\x19\xb6\x9b\xc3\xdb\x46\xeb\x69\xb3\x09\x10\xcd\x96\x43\xf3\xea\xd4\x18\x17\xcd\xb7\xac\xa9\x1f\x40\x74\x8f\x43\x79\x88\xa8\xa3\x83\x63\x01\xbf\x0a\x95\xcc\x4e\xcc\x94\xc6\x29\x42\x5a\x8e\x79\x29\x45\x0e\x83\xac\x75\x4a\x0d\xc3\xd8\xf0\x7a\xb9\x29\x7f\x42\xb5\xcf\x50\xd9\xb3\xcb\x52\xa4\x2c\x8d\x49\xa7\xba\xec\x0c\x09\xdf\x16\x12\x2b\x67\x21\x1b\x35\x08\x09\x39\x3b\x69\xf2\x7a\x21\xa4\xb8\xf3\x16\xf0\xfe\x7b\x29\xe7\xb8\x63\x18\x49\x23\x1e\x20\xd8\xbe\xce\x33\x05\x6c\xce\xfe\x4f\x23\xc3\x90\xdf\x08\x0a\xdd\x43\xca\x5c\x1b\x8f\x58\x14\x0d\xe6\x7c\xf7\xf7\x44\x3b\xb9\xcc\x77\x51\xe9\x6f\x59\x7b\x32\x7f\xda\xb2\x82\x31\xe9\x56\xdb\x57\xc6\x3c\xf1\x31\xd0\xb1\x2e\x75\xdb\xaa\x52\xf4\xfd\xef\x57\xff\x9c\xcc\x3d\xdf\xc1\xd8\x60\x56\x2f\x9b\x51\x77\x92\x28\x5f\xba\xd1\x69\xac\x35\x09\xbd\x28\x55\x03\x75\xb3\xb8\x34\xaf\x65\x95\xfd\x17\x29\xc6\x5c\x9e\x61\x3c\x0e\x31\x44\x08\x6f\xc4\xd0\x92\x14\xc5\xdb\xd0\xd2\x4c\x93\xd8\xe2\xad\xdb\x05\xe4\x84\x0e\x50\x85\xb0\x6b\x06\x1e\x4e\xcb\x5b\xe7\xcd\x86\x34\x81\x00\xf1\x5c\x0f\xe5\xf1\xa6\x2c\x8b\x4e\x02\xeb\x6f\x01\x5b\xd3\x34\x0d\x31\xe4\x89\x54\x67\x9b\x2e\x0c\x95\x8a\xc8\x0a\x64\x22\x14\x7c\x77\x39\x2d\x06\xbc\x6e\x57\xb7\x9e\xbd\xb3\x90\x31\x5a\x2b\xde\x98\xf1\xaa\x8f\x93\x0f\x22\x63\x82\xc6\xd6\x72\xf1\xf0\x70\xff\x17\xe5\x9f\x6d\xf7\x84\x28\x17\xa4\xfe\x99\x95\x97\xba\x6e\xc4\x11\xf2\xb2\xee\x17\x8c\x94\x56\xe6\x7e\xd5\xbc\xc2\xc7\x97\x39\xa4\xf1\xb3\x2a\x65\x99\xb3\xdb\x33\xa6\x80\xbc\x53\xf0\xb3\xf9\xc0\x61\x22\x2e\x05\xa9\xd0\x32\xcf\xea\xad\xc8\xba\x75\x6f\x02\x85\xe7\xe4\xe3\xfa\x69\xfd\xb8\x78\x38\x6c\x17\xcf\xfb\xf5\x72\xbd\x45\x5c\x97\xeb\x24\x08\x09\xa3\x76\x4c\x77\x8b\x87\xd5\x61\xf5\x74\x7b\xd8\xaf\x1f\x57\x5d\x23\x65\x88\x86\x5b\x2f\x37\x3e\x3e\xee\x5b\x52\x0d\x0a\xd1\x38\x8f\x8f\xe3\xc4\x81\xa0\x3c\x91\xb6\xf8\x25\x2b\xea\xad\x95\x67\xf2\x4d\xb1\x64\xd6\x9a\xfc\x18\x30\x89\x30\x22\x98\xa4\xe8\x38\x9a\xb2\x7a\xdb\xbf\x66\x7e\xe9\x88\x20\x8d\x6c\x89\xc6\xe7\x1e\x6a\x54\xbd\x1c\xce\x58\x11\x42\x82\x24\x53\x87\xd6\x4b\xaf\x3c\xa3\xfa\x2d\xe4\x70\x14\xcd\x97\x11\x03\xc1\x89\xb0\x3c\x29\xe8\x1a\x5c\xaa\x3e\xbe\x24\xe2\xc0\x2a\x9e\x62\xda\xdf\x21\x2e\xfa\xbc\x92\x88\x25\xc3\x6f\x72\x68\xdd\x76\x9b\x4f\x6f\x1d\xac\xf1\x32\x13\xb1\x8e\xac\xd6\x27\x14\x7a\x8c\x72\x19\x17\xc3\xbb\xee\x69\x2a\xb5\xe5\xec\x3a\x9d\x73\x94\x1f\x1d\x3f\xae\x50\x16\x59\x77\x84\xa6\x6e\xca\xf3\x75\xa4\x4e\x48\x41\xf0\xc0\xa9\x5e\xcb\xee\x4f\x26\xa4\xce\x36\x3b\x62\xda\xa4\x4f\x9a\x08\x25\x15\x7a\xc1\x7d\xc8\xd5\xc7\x9d\x5a\xff\xe5\xda\x57\xfd\x8b\xf9\x7a\xf5\xef\xf0\xe5\x74\x90\x20\x84\xe6\xa7\xcd\x21\xe1\x11\xd5\xa3\x87\xb6\x15\xa8\x9e\x97\xac\xed\x9e\x88\xc4\x95\xc3\xed\x41\x38\x92\x48\x5f\x2a\x30\x1e\x65\x60\x5d\xa9\x80\x2b\xaa\x1d\x48\xd0\xba\x3e\x86\x24\x78\x36\x1c\xce\xe2\x73\x2b\x3e\xe1\x2a\x3e\xfe\x7f\x27\xfd\x19\x09\xd9\x80\x3d\x71\x0b\xd5\x54\x05\x85\x11\x49\x58\x80\x96\xb2\xce\x6a\xf1\xb3\xf4\xa1\x66\x49\xa2\x28\x74\x80\xf3\xf2\xd2\x9d\xfa\xbe\x31\x0e\x11\x7f\x83\xb6\x32\xad\x2d\xe9\x4e\xd7\x98\x72\xf4\xf1\xcf\xab\xbf\x07\xa7\x92\x04\x04\xba\x95\xdb\xf2\xc7\xb7\xf0\xb6\xbb\x8d\xf1\x94\x71\xcd\x3d\x1e\xda\x58\x79\x7a\x55\xa6\xfa\xbf\xfa\xd7\x1f\xb3\x92\x4a\xe2\x4b\x98\x76\xcd\x45\x59\xc9\x97\xd9\x51\x94\x54\x13\xf4\x5a\xf6\x8b\xc5\xee\xf0\x7d\xf1\xf2\xe0\xc1\x72\x92\xc5\x96\x6c\xb3\x76\xd5\x66\x28\xaa\xdd\xdb\xd5\x92\x25\x42\xbb\xaa\xc6\xf5\xf6\x6e\xf7\xad\x0f\xbe\x48\x26\xac\xf8\x80\x3d\xe5\xba\xbf\xea\x14\x31\x98\x0f\x88\x66\xbe\x85\x53\xa9\x2a\xa1\x3e\x9f\x2f\x83\xf4\xc3\xbc\x9c\x29\x23\x32\x70\x2a\xdd\xeb\xc2\x64\x45\xf6\x31\x82\x24\xcb\x30\xa0\x48\x17\xa5\x1d\x48\xfc\x76\x20\x3c\xde\x36\x87\x92\xf9\xc3\xb2\xf3\xb6\x07\x6f\x12\x46\x31\x62\x58\x8b\xcb\x09\xe7\x7c\x17\x9c\x91\x28\x63\xe8\x52\xbb\xf2\x5a\xbe\x99\x11\x19\xd1\xd4\x53\xae\xdd\x88\xaa\xca\xa0\x5a\xd4\x08\xd9\x1a\xdc\x9f\x47\x4c\x3a\x36\xab\xac\x00\xed\xf9\x83\xba\x5f\x89\xc3\x04\xab\xc7\x9e\x57\xf7\x2f\x0f\x8b\xe7\xc3\xfe\xcf\xed\x2a\xe8\x1a\x15\x20\xdb\xef\x33\xfb\x67\x33\xd8\x4f\xa5\x88\x24\xfa\x90\x59\x81\xa9\xb7\x2b\xf7\x41\x0a\x65\xd0\xb5\x17\x5a\xdf\x96\x6a\xfc\xd4\x92\x00\x22\x57\x4a\x87\x49\xc1\x8f\x37\x1e\x70\xc9\x12\x4c\x71\xc9\xcb\x67\x74\x4d\xdb\x31\x2a\x5b\xbe\x02\x3c\x5e\x3b\x33\x52\x32\xa1\xbd\xa4\xbd\x2d\x4e\x1d\x8a\xe3\xcc\x04\x17\xa4\x0a\x43\x1f\xa7\xfd\x56\x76\x71\x4b\xa9\x24\x20\x54\x0a\x01\xff\xb8\xe7\x8c\x18\xbf\x47\xdb\xb1\xd4\x24\x74\x1a\xe8\x35\x34\x0e\xeb\x3a\x59\xec\x3a\xb4\x24\xe7\xb8\xb9\x42\xeb\x03\x57\x9f\x0b\x0b\x1f\x9c\x98\x64\xd2\x10\x85\xd3\xfa\x16\x2a\x64\x1e\x9a\xb4\x32\x13\xfa\xf3\xe6\x0a\x3c\x32\x57\xd1\xdc\x5e\x93\xda\x22\xab\x32\xd7\x3b\x80\x7c\x74\x62\x4a\x23\x52\x4c\x39\xc8\xb2\x7c\xb3\xd1\x04\xf5\x0c\x27\x61\xb3\xca\xb6\x8e\xa8\xeb\xaa\x01\x0f\x95\x9a\x85\xbf\xf5\xaa\x71\x6d\x03\x58\x9a\xe1\x1f\xa2\x51\xaf\x1d\x7f\x17\x23\x8a\x38\xb2\xc2\x23\x34\x3f\xda\x79\x5b\x56\xcb\x57\xa8\x1b\x8b\x4a\x71\x7d\x28\xb3\x1e\xdc\x19\xec\xf2\x5f\x17\x88\x02\x87\xdf\x2f\x43\x6c\xc1\xb5\xb9\xab\x18\x95\xc2\x91\x3a\xf5\xdc\xb0\xc1\x78\xbc\x14\x4b\x24\x32\x3f\xd5\xea\xd5\x85\x67\x47\x63\xa3\x98\x8e\x90\x7c\xbd\x23\x8f\x32\x26\xcb\x33\xd1\xc0\xb6\x6c\xa6\x5d\x4d\x88\x73\x55\x97\x1d\x45\xe2\x3c\x62\x55\x05\x09\xc5\x80\xaa\xca\x9a\xcf\x6d\x59\xe6\xfb\x01\xca\x40\x05\x12\xec\x17\xb4\xd1\x8a\x7f\x95\x27\x99\xcd\xf1\x0d\x32\xa2\xa2\x90\xa5\x96\x1a\xf4\x67\xf9\x36\x81\x01\xa8\x28\xb4\x24\x87\xcf\xcd\xcd\x20\x6a\xab\x3c\xa5\x92\x73\x2c\x16\x77\xfb\x3f\xa2\x47\xf1\xd9\x35\x27\x31\xe6\x64\xb6\xdf\x9e\xba\x3f\xc9\x30\xb5\x7e\x8d\x6a\x7d\x37\x4f\xfb\x8b\xc9\x0a\x9c\xc4\x96\x1b\xf3\x0b\x5a\xca\x71\x3e\xdb\xdf\x12\x2c\xfb\xc3\xaf\xf3\xfd\x3b\x9b\xce\x9b\xbc\x57\xcc\x2c\xd8\xf2\x67\x06\xef\xad\x83\xaa\x2f\x53\x1f\x58\x25\x51\xe2\xc5\xba\xdc\x23\x4e\x29\x51\xda\x4e\x3c\x42\xc4\xcf\xc9\xe9\x1e\xbb\x3f\xa7\x84\xa2\x25\xdf\x17\xd7\x2d\x6f\x6f\xaf\x67\xd9\xe4\x4b\xa4\x81\xe2\xcc\x7b\xdd\x13\x15\xe5\xb6\x59\xc7\x28\x5f\x89\x41\x5d\xc7\xb2\xbc\xd6\xd3\x4e\x26\x88\x1d\x2b\xd7\xcb\xf9\x8a\xb3\x90\x11\x25\x48\xe8\x85\x98\x56\xb5\xaa\xca\xf7\x9b\xeb\x9b\x08\x96\x32\x04\x7f\xbc\xdc\xdd\x0c\xd7\xb1\x12\x9a\xa3\x17\x9d\xd5\xdf\xa1\x6a\x0d\xa8\x87\xf2\x98\xa9\xb9\xfa\xdc\xb6\x33\x08\x54\x9c\xad\x2f\xd5\xb9\xca\x6a\xd8\x8a\x42\x7b\xd8\xa6\x92\x2c\x36\x76\xd6\x61\xbc\xbc\x2b\x99\x69\x8d\x35\x30\x65\x05\xe3\x90\x8d\x92\xb1\x54\x96\x61\xcf\x0e\xf4\x2f\x83\x79\x4a\xf1\x24\x71\x21\xf2\xc5\x4f\xd1\x88\xea\xe6\xb3\xc3\x7f\x0f\x4f\x0f\xa5\x62\x19\xf6\x85\x3b\xb3\x29\x5b\xd7\x53\x33\x1a\xd2\xbe\x82\xef\x01\xd5\xb7\xbb\x4a\x06\xd7\x09\x42\xc5\xf9\x00\xbe\x2e\x7a\x0e\xc7\xb6\x55\x52\x3c\x60\x77\x80\xdc\xe1\x9e\x8d\x74\xfc\x3b\x20\x23\xab\x0f\x56\x89\xa2\xd9\x97\x3b\x68\x5e\x6c\xb1\x97\x1e\xeb\xe1\x0e\xce\x17\x65\x02\x40\x86\xeb\x76\x47\x6d\xa0\x68\xe7\xea\xe1\xe4\xa5\xe3\x19\xd1\x84\x10\xfc\xe6\x2e\x41\x36\x70\xaf\x35\xa1\x02\x0d\x44\x0c\xff\xd5\x0d\xba\x7b\x57\x04\x1a\xc3\xc3\xd2\x5f\xa7\x68\xa0\xbc\x5d\x26\x9a\x4b\xfd\x58\x6a\x47\x8b\x3f\x7a\x1f\x4d\x53\x8a\xa6\x75\xc7\xbe\x86\xf9\xd7\x61\xf1\xb3\x0e\x04\x91\x3d\x0f\xf4\x28\x63\xac\x03\xa3\x18\xf1\x48\xab\x1d\x80\xee\x69\x04\x18\xd1\x9c\xda\x0c\x39\x3e\xba\x55\xfe\xf2\x67\xf1\x6d\x56\xbb\x72\xc3\x55\xd1\xfe\x47\x77\xc7\x98\x6a\x44\xda\x1d\x2a\x38\x97\xe7\x5f\x81\x33\x47\x73\x4a\xc7\x9c\x52\x8b\x89\x3f\x65\xc5\xa1\xf1\x4e\xdc\x6f\x93\x5e\x89\x2d\x81\xee\xa4\xe1\xf3\xa1\xfa\x65\xdb\x41\x07\xb8\x35\x60\x10\xcf\xf3\xda\x58\xce\xe4\xbe\x4b\x82\xf6\x90\x78\x3d\x09\x7d\x25\xcf\xcf\x88\x4e\xe2\x10\xbf\xf7\x1d\xf4\xaf\x95\x68\xab\xf8\x8e\xf0\xae\x6e\x39\x4d\xe1\x32\x3a\x8d\x0c\x42\xaf\x2c\xce\x71\x8d\x77\x1d\xe7\x56\x74\x9a\x30\xe6\x72\xc4\x8b\xe2\xb3\x2c\x60\x29\x8a\x51\xfc\x7f\xa0\xd6\xe4\x2f\x11\x36\x95\x75\x44\x56\x0e\x5b\x48\x87\x14\xec\x73\xf0\x2f\x2d\x89\x42\x23\xf5\x86\xd1\xd9\x15\xf7\xd5\xbf\xfe\xf2\x80\x6a\xee\xa7\xc4\x5d\x59\x35\x97\xa2\x33\x06\xb4\x4c\x29\x3e\x89\x3d\xf7\xb6\xa2\x6a\x66\x44\xc2\xbe\xf8\xc2\x2a\xb0\xea\x31\xf2\x6c\x57\xf7\x64\xe8\x54\x48\x62\x57\xfd\xaf\xb3\x51\x11\xab\x56\x21\xc7\x5d\xf7\x94\x15\x96\x82\xd7\xe1\x95\x46\x59\x28\xad\x14\x60\xcd\xce\xf6\x79\x75\x58\x3e\x6f\x7e\xdc\x62\xf4\x63\xb9\xd8\x76\x1d\x20\x8d\x93\x31\xdd\xd9\x17\x35\xb9\x5a\x73\x62\x7c\x3e\xa7\xb0\xda\x9e\xdd\x80\x0f\xcb\x24\x3c\xfc\x4f\x9b\xd8\x60\xac\xe3\x76\xb1\x5f\x1d\xf6\x9b\x3f\x56\x4f\xbb\xc3\xcb\xd3\xc3\x66\xf9\xc7\xca\x7b\x72\xda\x28\x8d\x49\x01\x9f\x91\x74\x87\xcc\x64\xf6\x19\x23\x2d\x7b\x57\xbb\xe8\x90\xab\x64\x07\x9e\xa7\xdd\x76\x01\x12\x5b\xba\x2b\x47\x24\x29\x2a\xbd\x6c\xed\xde\xd1\x7d\x10\x7d\x8d\xb6\xc5\x1e\x4d\x8b\x19\x46\x3c\xd7\x91\x12\x1e\x58\x81\x19\x70\xf4\x27\x37\xfb\xa5\x28\xf4\x30\xe5\x09\x94\x09\xc4\xc6\xd9\x0f\x6f\xfd\xdc\xd9\xc8\x2d\xb0\xc8\xd6\x37\x76\x85\x06\x2e\x4e\xe8\xef\x14\x04\x36\x54\x7c\x5f\x96\xfa\xa6\x3b\x81\x20\xd0\xd2\x33\xfd\xa3\x3a\xd0\xc4\xc8\x83\x28\x88\x31\x72\x9b\x0d\x85\xaa\x17\x79\x05\x42\x7f\xda\x80\xe1\x15\x28\xc2\x5f\xc9\x29\x42\x49\x6e\x6c\xa1\xfb\xab\xa8\x44\x39\xf1\x61\x20\x8a\x03\xac\x32\x40\x88\xfc\xb0\x74\x0f\xa2\xd4\x26\x7b\x6c\x0d\xec\xab\x38\x9d\xb3\xb2\xe8\x14\x27\x19\x01\xce\x24\x56\x75\xed\x9a\x0a\xc4\x29\x6b\x3e\xed\xb9\xdf\x35\x87\x31\x50\xbf\x71\xdc\xb4\x2f\x97\x7b\x6d\x93\x29\x89\xe2\xe4\xb9\x79\x64\x01\x97\x35\x1e\xca\x65\xb5\xc8\x2a\x3d\xcc\x52\xce\x04\x66\x80\x0b\xa6\x3a\x7f\xbe\xba\xcb\x20\xd7\xb4\x7b\x12\x48\x11\x33\xdf\xcc\xa5\x91\xfd\x64\x88\xb9\x46\xe6\xcd\x03\xea\x5d\xdc\x0f\x2b\xba\x66\x57\x35\x24\x31\xf1\xee\xc1\xed\x6e\xbf\x43\x59\x4f\x54\xc1\xf2\x3f\x9b\xa4\xb1\x2d\xe7\xdb\xfc\x78\xf6\x7f\x4b\xe3\x14\xa3\x89\x96\x14\xee\x46\x14\x6f\x93\xaf\x9d\x26\xd2\x84\x7d\x65\xd9\xc8\xaa\x80\x54\x58\xdd\xc4\x33\xe6\x85\xfb\xe8\xe9\xf8\x16\x82\x45\x81\x65\xc9\x76\x01\x74\x9f\xb0\x1c\x96\xfc\x5c\xc7\x8c\x26\xaf\x27\x02\x8a\xc1\xc8\x23\xd6\x5f\xce\x87\x1e\x41\x24\x3a\xe1\x9d\x8d\xef\xc4\xad\x66\x4a\xcf\x40\x32\x91\x74\x3a\x1e\x13\x85\xd3\xbf\xb5\x3b\x83\xe4\x36\x44\x6b\xaa\xf2\xbf\x50\x78\x39\xce\x5f\xbf\x83\x14\x96\x25\xf3\xe8\x24\x94\x8e\x5d\xec\x16\x14\x31\x84\x8e\xe4\xcf\x7f\x52\xd6\xfa\xf8\x07\x77\x8b\xae\x63\x6c\x4d\x81\x1a\x44\xa5\x5e\x31\x05\x34\xac\x4f\x07\x4d\xad\xf4\xbc\x14\x7a\x46\xce\x7e\x38\xc3\x74\x1a\x76\xdc\x58\xd6\x80\x3b\xa8\xb1\xd9\x0f\x5a\x40\xd4\x13\xc1\x5c\xd7\x8e\xcf\x39\x5a\x00\x44\xa5\x6e\xca\xbc\x54\xf9\xf8\xd0\x05\x88\x42\x24\x97\x43\x72\x89\x41\x6e\x6f\x3c\xb8\x20\x38\x06\x01\x56\xbb\xcd\x16\x85\x83\xbe\x20\x0d\xee\xb4\x09\xfd\x75\x52\xa0\xc1\xe0\xec\x24\x8b\x72\x2a\xab\x97\x3a\x2b\x8e\x4f\xf0\x3e\xf1\x6a\xc0\x44\x31\x92\x4b\xc8\xcb\xe9\xec\xcd\x97\xd1\xbb\x18\xc2\x63\x4c\x46\x6e\x9f\x57\xfb\xdb\xd5\x28\x84\x65\x08\xb7\x64\x41\xb8\x21\x1d\xda\x13\xe6\x65\x3b\xbd\x3c\x8e\x50\x0f\x1d\x01\xe0\x13\x0f\xc5\xb4\xfe\xb4\x41\xe8\x51\xd6\x97\x7b\x7f\xa1\x3d\x3e\x5c\x76\x06\x4f\xff\xff\xf3\xff\xfb\x3f\xdf\xa1\xca\xcc\x12\x1c\x15\x50\xbb\x6d\x75\x9c\xf3\xc3\xbd\xc8\x50\x22\xc0\x86\x39\x6c\xc5\x6a\xbd\x7a\x5e\x52\x1e\x5d\x63\xdd\xf0\xa2\xb0\xbb\xca\x68\xdd\x09\xe3\xe3\x9b\xf7\x2c\x8d\x6d\x7b\x62\x63\x1d\x06\xd4\xeb\xf7\xb2\x81\xdd\xe5\xf4\x74\x39\xdd\x95\x55\x7b\x64\xcd\xa0\x71\x0c\xd5\x49\x24\x3b\x93\xcc\x2b\x3e\xcd\x42\xf3\x4c\x40\xad\xdb\x64\x1d\x4b\xd5\x2d\xd2\x71\xee\xcf\x04\xad\x85\xee\x42\x79\xed\x21\xb9\xfa\x68\x2a\x31\x1f\x36\x35\x01\xa7\x28\x7e\x53\x22\x08\x7b\xe5\x20\xd9\x93\x0f\x16\xe8\x90\x7a\x85\x1c\x51\x79\x11\xdf\x51\x3a\xc0\x84\x84\x86\x18\x14\x38\x97\xf9\x98\x0b\xbc\x6d\x4c\x6d\xa3\xa3\xf9\xf8\xb4\x32\xb6\xa3\x6d\xd3\x84\x3a\x16\xa2\x53\x6a\xb2\x6a\x5b\xfe\xfa\x28\xa4\x88\xde\xf5\xa6\xc9\xa2\xfe\x87\xab\x7f\xd7\xde\xc8\xf3\x3d\x05\x91\xb6\xda\x43\xe8\x3d\x88\xd3\x0c\xfb\x21\xf6\x32\x18\xc4\xdb\x78\x79\x7d\xef\x37\x58\x61\xef\x2b\xc3\xd9\x44\x90\x68\xed\xe3\x6f\xe3\xc0\x9b\xe1\x51\x42\x79\x2f\xf9\xf9\x0b\x37\xd2\xc4\xd4\xba\x62\x8b\xff\xf8\x9c\x89\x89\x59\x8c\x26\xab\xd3\x1a\x9f\xf4\x8f\x2c\x31\x76\xeb\xc9\x56\xa7\xcf\x5d\x99\xeb\x0c\xaa\x7a\x39\x94\x65\x77\x5d\x13\x42\xd1\x40\xb1\x89\x80\x5f\x7b\xc8\x26\xe1\x80\xc6\xd7\x21\xab\x6d\xfe\xfe\xa7\xc8\x72\x14\xd8\x72\x1d\x04\xb7\x85\x58\xd0\xbc\xee\xa0\xd0\x3b\x71\x72\xba\x48\x5f\x84\xb5\x8d\x88\x89\x24\x9d\xcf\x6d\x6f\xd6\x61\x38\x65\x6e\x8d\xc9\x2f\xe6\xa0\x64\x12\x37\x6f\x8c\xa7\x62\x52\xfe\x66\xbf\x1c\xc4\x9d\x8d\x0c\x38\x06\xbb\xda\x79\x95\xfc\xee\x9f\x51\xa6\x12\x5d\xb9\x87\xf2\xb8\x2b\xab\x06\xb4\x15\x53\x1b\xdf\x5b\x85\x49\xe2\x85\x55\x5b\x13\x07\x05\x35\xa6\x7d\x0c\xc3\x48\xec\x52\x0c\xa8\x64\x8c\x4e\x12\x2b\x74\xe4\x88\x01\x46\xc9\x43\x03\x22\xf2\x7a\x4d\x2f\x35\x54\x7b\x51\xbf\x2d\x9a\xb9\xa9\x06\x90\xa0\xea\xe0\xa1\x35\x38\xb7\x7e\xa2\x52\x42\xa4\x41\x7f\x22\x2f\x73\x31\x58\x2b\x94\x50\x47\x89\x73\x84\xe6\xe1\xe1\xbb\x25\x17\x67\x89\x6f\x65\x71\x80\x69\x0e\x79\xf9\x84\xca\x01\x04\x7e\x79\xbe\x52\xc2\x52\xe3\x6a\x8e\x32\xf5\x06\xc5\xb7\xce\x27\xa1\x84\x69\x63\xcd\x29\x4b\x81\xe8\x40\xb2\xb5\x6f\x0e\x15\xc3\x90\x05\x6a\x6a\x81\x38\xad\x8b\xba\x11\xfd\xd5\xa1\xd2\xb6\xe2\xb0\xbd\xd8\xee\x06\x1b\xb3\x53\xe2\xd4\x67\x2f\x29\x09\x75\x82\xfa\x0a\x0b\xad\xbf\x41\x0e\x45\x36\x50\x87\x18\x3f\x67\x08\xd2\x50\x07\x79\xbb\x34\x30\x4b\x11\x43\x49\x68\xac\x2a\x4b\xfd\x96\x15\x6b\xbd\x2f\x7b\x6d\xab\xbe\x4f\x94\x02\xef\xbd\x81\x8e\xa8\xa1\xd0\xe8\x9e\xd5\xaf\x13\x79\x42\x7f\x95\x22\x9e\xaf\x7e\xb9\x1b\x83\x78\x29\xe1\x91\x41\xd0\xe4\x29\x2b\x6c\x70\xa7\xe8\x13\xf8\xb3\x8b\x8c\x12\x1e\xcb\xa0\xcb\xbe\xa1\x4b\xd2\xbe\x12\xca\xf0\x0c\x92\x86\xf3\x89\x4c\x77\x76\x53\x12\xa7\x04\xd3\x7e\xad\x21\xfa\xe3\xb5\xcc\xad\xf9\x76\x1c\x91\xc4\x50\x12\x8b\xd8\x2a\xa5\x59\x15\xc8\x3e\xd0\xf5\x85\x00\xe3\x2f\xc5\xcf\x07\xbc\xf7\xee\xf6\x89\x8b\x08\xb6\x2f\x7f\xf8\xe2\xeb\x25\x21\xc7\xda\xfa\xac\x3e\xbc\x7d\xaa\xc9\x06\x4a\x49\x4a\xa4\x9d\x69\x1a\x54\x85\xe0\x89\x75\xf1\x13\x0a\x9c\xbe\xf3\xd3\x36\x8d\x89\x8a\xba\x42\x87\x83\xba\xda\xf3\x28\x49\x65\x88\xbe\xa8\xcc\x9a\xfa\x51\xd4\x6f\x7e\x38\x52\x65\x45\x57\x7d\x71\x74\xf3\xfa\x0b\xaf\x84\x12\xc1\x01\xbc\xea\x95\xc7\xc0\x4c\x0e\xe0\xab\xdc\x00\x25\x22\xb1\x84\x9d\x96\xd3\x0e\x97\xb0\x25\x4c\xaa\xe7\x91\x30\xed\x15\x7a\xc0\x13\x74\x5f\x89\xe2\x92\x8b\xa9\x5a\x63\xdb\x4f\xda\xed\xae\xb8\x9c\x36\xe6\xf7\xac\x38\xe6\xd0\x2d\x27\x01\x16\x57\x55\xf7\x75\xd2\x2e\xd6\x35\x2e\x8d\x73\xdd\x65\x0c\xb8\x5a\xd0\x5c\x19\xf0\x78\xce\x7f\x43\x29\x52\xdc\xf2\x34\x9c\x2e\x55\xfb\xfd\xef\x00\x06\x91\x0e\x4a\xa4\x0a\xe3\xae\x54\xdb\x81\x86\xb2\xc2\x6b\xc6\xb7\x1d\xb4\x25\x27\xe8\x09\x07\xbe\xa1\x01\xf9\x90\x29\xc0\x30\x7f\x97\x95\xa1\x44\x51\x5b\x2b\x82\xf5\x8d\xc8\x59\x31\x19\x07\x15\x09\x94\xf6\x3e\x58\xdb\x08\x7f\xa9\x9a\xcc\x2b\x15\x59\xda\xc2\x89\x51\x32\xfc\xbc\x9a\x86\x98\x78\x94\x97\xaa\xd8\x3e\xaf\xd6\xcb\xcd\xb0\x54\x93\x12\xcd\x24\x66\x35\x11\xe0\x78\x78\x7c\x79\xd8\xaf\xb7\x0f\xeb\xd5\xf3\xc1\x76\x66\x5d\x3f\x00\xe6\x32\x7f\x0e\x08\xbe\xb9\x34\xbf\x0d\x06\x1b\x58\x98\x38\xdd\x91\xdb\xac\xf6\x68\x0e\x05\x45\x23\x8e\xf0\x00\x3f\x21\x0f\xfc\xbd\x20\x0e\x42\x5b\x9b\x72\x53\x7e\xac\x1b\x38\xad\xa7\x2f\x0f\xa9\x08\x1c\xd2\xca\xd5\x24\x21\x6e\x48\xe4\xf5\x64\x04\x4c\xa4\xb5\x18\x73\x6b\xff\x4a\x5f\xc0\x5f\xa5\xa4\xe1\xc3\x2d\xf2\x54\x2e\x2f\x4d\x06\xb3\x2e\x64\x6b\xf4\x5a\x29\x86\x3a\xfb\x2f\x0c\xec\x5d\x4a\x0c\xa4\x81\xa5\xad\xb5\xa7\xdf\xbe\xf4\x2b\x67\xf4\x7b\x78\x70\x69\xef\xe1\x20\xe9\xb1\x5b\x2c\x56\x50\x67\x86\xc1\x86\x52\x12\xe9\xc0\x79\x45\x95\x55\x89\x7c\x2a\x8b\xa1\x7a\x6d\xdb\x87\x53\x54\x86\x36\x59\x21\xf2\x8e\x00\xb9\x6d\x10\x11\x32\xf3\xb6\xa7\xf3\x6c\xe4\x85\x52\x4a\x08\x62\x5c\xec\x18\x5c\xed\xe6\xfd\x97\xa5\x34\x4c\x11\xf6\x26\xbd\x00\xa6\xe5\xd3\x19\x8d\x11\xa5\x89\x55\x22\xb0\x6c\x0f\xeb\xe5\x06\x83\xd5\x7e\xfa\x50\xaa\x08\xf2\xd3\x5a\x2d\xcd\x5b\x2b\xf2\xfc\x78\x69\xb2\xaf\x33\x43\xf3\x07\x3a\xa5\xda\x46\x39\x37\x85\x8d\x1c\xbb\x52\x50\xff\x43\x2c\xb5\x62\xc8\xb5\xc8\xa1\xfc\xd9\x2d\x5e\xca\x20\x36\x0e\xe7\xf0\x90\x59\x60\x93\x5f\x03\x34\x08\x42\xa6\x3b\x2a\x64\x87\x3e\xd8\xb6\xb6\x52\xdf\x45\x08\x8c\xd3\xdf\xec\x1f\x0e\xeb\xc7\xc7\xcd\xf3\x7e\xf1\xe0\xdb\x42\xaa\x82\x5e\x7a\xd1\xd7\x14\xdc\x5d\x06\x34\x77\x53\x70\xad\x2d\x75\x64\x49\x77\x07\x8d\xb5\xc3\x56\xbd\x6a\xd5\xbc\x3a\x6e\xeb\xb2\xfb\x09\xa3\x31\x21\xb7\x40\x5e\xb2\xa1\xc5\x44\x23\xdd\x59\x4c\x3b\x38\x65\x56\x1f\x74\x32\xff\x22\x63\x39\x94\x9f\x41\x65\xf0\x13\xf4\xe8\x03\x4e\xc6\x97\xf3\x10\x0b\x57\x17\xcf\x4b\xff\x13\x5c\x46\x88\xd7\xb7\xb4\xf9\xb8\x27\xb2\xc9\xe7\x4f\x08\x0d\x2c\x1e\x6e\xb9\x98\x35\xff\xdb\x2e\x31\xf3\x0c\x2b\xbf\x8d\x7e\x32\x89\x29\x6e\xac\xf7\x53\x07\x91\xd2\x24\x21\x08\x1f\x3c\x89\x0f\x2c\x81\x43\x2b\xc2\x86\x96\x6f\x44\x0d\xc3\x38\x28\xa5\x29\xb3\x7a\xcc\xb6\x2e\x6d\xac\xaa\xec\xbb\x84\x52\xd9\xc3\xf1\xe7\xf2\x32\xd8\xa0\xfc\x2d\x04\x09\x3b\x72\x66\x51\x37\x50\x37\xbb\xb3\x50\xd0\x7a\x49\x83\x2e\x5a\xfa\xd9\x72\x5d\xb5\xd3\x76\x30\x98\xfc\xeb\x69\x49\x3a\x8d\x88\xf1\xc3\x08\x2a\x45\x32\xce\xc0\xb9\xa0\x51\xde\x4f\x5c\xc9\xe2\xa8\xef\x74\x63\x45\x0e\xf7\xd9\x09\xee\xca\xca\xcb\x0a\xcd\xbe\xaa\x0c\x0d\x1a\xcb\x68\x81\xb9\x2c\xcb\xa4\x47\xcc\x04\x52\xb4\x5c\x24\x9d\xb7\x43\xa8\x96\xb6\x36\x04\x53\x36\x4f\xf0\xbe\x6b\xc4\x5b\xbf\x70\x80\x25\xd2\xb1\xf1\x3c\x58\xf1\xc5\xc1\xb6\x01\x9a\xa3\x44\x61\xbb\xe4\xc7\x75\x3c\x94\x1a\x22\x7d\x60\xd2\x6a\x77\x3f\xc3\xf9\xd2\xe0\xe9\x8c\xef\xf2\x52\xb4\xfb\x43\x0d\x7d\x7f\xc0\xed\x63\x27\x72\xd8\x98\xe5\xab\x38\x41\xf3\xdf\xae\x31\x48\xd1\xb2\x58\x2d\x37\x87\xdd\x9f\xbb\xfd\xea\xf1\xf0\x6d\xf3\x70\xbb\x7a\xee\x3a\x00\xa8\xa8\xb7\xad\x71\xf6\xdf\x42\xde\x88\x1d\xe4\xf9\x97\xbc\x65\xbf\x5a\xba\x57\x55\xe6\x73\x62\x92\xed\x2f\x9b\x94\x58\x55\x88\x4c\x41\xf7\x6d\x27\xe6\x21\x23\x10\x31\x87\x1c\x7c\xf3\x88\xbd\x5f\x46\x76\x29\xa3\x31\xf7\xf8\xe7\xdb\x4a\xbc\x0f\x4e\xff\x9b\xcf\x01\x6b\xd6\xe0\x02\xad\xe2\xa8\x0f\xd1\xb7\x87\x69\xe7\xf1\x52\xc6\xa2\x58\xc3\x20\x69\x71\xfe\x8b\x9f\x0f\x08\x8d\xc0\x93\x70\x59\xec\xd2\xc1\x64\xd6\xc6\xff\x96\x15\x28\x9c\xb7\x76\xd8\x04\x6f\x1e\xb1\x20\x8c\x79\x17\x1c\xc3\x50\x5c\xd6\x20\xfb\xd4\xb6\xcc\xf3\xc9\x90\x04\x11\x49\x82\x8e\x10\x7e\x77\x91\x35\xd2\x77\x4f\xa3\xb6\x94\x85\x14\xc2\xb0\x3f\x26\x37\xc6\xce\x9f\x1a\xf4\xa2\xb6\x3c\x0c\xde\xec\x60\x91\xe4\x18\x6c\xea\x62\xec\x2e\x44\x36\xfa\xf0\x2c\x74\xbd\xb9\x48\x91\x8a\xa6\x02\x3b\x13\x67\x77\x4b\x16\xab\x80\x08\x17\x6d\x6a\xbf\x01\x42\xb0\x46\x07\x2d\x8b\x0d\xa4\xae\x8a\x77\x53\xd8\x14\xee\xfc\xbd\x92\x24\x24\xc4\xc5\x7b\x7d\xc5\xc0\xbe\x23\xfd\xa5\x2c\x49\x2d\x19\xe6\x63\xa6\x5e\x05\xe4\x3d\x28\x85\xb2\x44\x58\x19\x7b\xdc\x93\x0e\x28\xf4\x77\x50\xa5\xee\x56\x2a\x4b\xa3\x50\x3b\xa0\xe2\x42\xeb\xd9\x19\xe6\x7b\x02\xc3\xf8\x2e\xda\x14\xa3\x60\x0f\x65\x82\x1b\xcb\x08\xd8\x1a\xad\x2b\xcc\x8f\xf9\x96\x24\xb2\x22\x64\xaf\xe5\xfb\xe3\xe7\x30\x38\x46\x99\x50\x21\xe6\x85\x5f\x8a\x4c\x95\x55\xd1\x8b\xd6\x62\x5b\x8c\xd4\x28\x27\x9c\x34\xef\xbb\xf3\x68\xee\x7e\x31\xfb\xa4\x09\x28\xf7\xe2\xff\xe7\xaf\x5e\x44\x05\xc6\x31\xfd\xb6\x87\xaa\xa7\x2d\x76\x89\x9a\xf3\xd4\x80\x61\x2a\x32\x48\xd6\x89\x06\xf9\x60\x1f\x63\x2a\xa1\x91\x03\xb4\xe0\x2e\xe8\xd7\x4f\x37\xb6\x9a\xc7\x38\x53\xce\xe2\xf3\xb9\xfc\x14\x79\xd3\x8d\x0a\xe6\xdb\xf0\x41\x5d\x92\x70\x00\x54\xa2\x0c\xa4\xd4\x7c\x40\xaa\xdc\x6e\xa1\xbf\x8e\x66\x30\xc3\x09\x82\x2c\x00\xf3\xfa\xd7\x45\x01\xde\x3f\x0b\x48\x2a\xc0\xb1\xb7\xb5\x67\x85\x07\x44\x76\x6e\xdc\xd4\xa1\x0b\xa8\x72\x72\x0f\xa2\x1c\x05\x54\x69\xc0\x38\x43\x43\xd1\x39\x22\x73\x31\xc5\xb6\x93\xad\xc7\xb0\x32\x4b\xf7\x5d\xb5\xb7\x5f\x05\x01\x4b\x43\xa4\xab\xed\xb0\x10\xdf\x44\x8d\x70\x88\xee\x67\x14\xe0\x4a\xba\x59\xec\x56\x87\xc5\xe3\xe6\xb0\xdf\x1c\x56\xfb\x6f\x87\xe7\x85\x27\x59\xa7\x01\x03\x89\x23\xbd\x6f\x37\x96\x4b\x35\x62\xf0\xa1\x41\x10\x09\xed\xa0\x86\x0e\x41\xb3\x38\x1e\x2b\x38\x8a\x6b\x7e\x6f\x7f\x45\xa2\xa9\xec\x2a\x4e\xea\xbe\xec\xda\x46\x4d\xfa\x87\x0b\xb4\x06\x87\x0f\x6d\x72\xb8\x81\xe6\xfb\xf8\xc0\x4c\x7c\x3f\x08\x30\x00\xdb\xf3\x43\xf5\x16\xc6\xec\x17\x0d\x42\x92\x68\xaf\x38\x89\x47\x61\x59\x39\xfa\x18\xdf\x81\xd1\x50\xfa\xca\x62\x28\xdb\x59\x54\x4f\xc6\x36\xe4\x80\xf1\xd9\x5a\xfc\xec\x64\xea\x47\x23\x13\xa6\x2c\xf6\xb0\x06\xcb\x4d\xb1\x15\xd5\xd7\x30\x65\x77\x55\x14\x25\xdc\x23\x89\xec\x55\xed\x54\x42\x07\x68\xfa\x04\x51\x42\xad\x73\x7f\xa9\x9c\x36\xde\xba\x7b\x81\x48\x33\x44\x00\xb6\xdb\x1a\x7a\xe2\x03\xfe\x6f\x1a\xf0\x98\x4a\x8f\xdf\x69\x4f\xf7\x83\x35\x83\x3c\x74\x9e\x06\x3c\xa1\xca\x45\x81\x2d\x0d\xce\xe4\xa7\x63\x92\x86\x3d\x25\xc4\xaa\x79\xbd\x12\x55\x6d\x3b\x71\x6d\x35\xd7\xd4\x2b\xe8\x4b\x0e\x7a\x18\x61\xa7\x41\xaa\x98\x70\xbb\xf8\x3b\x6e\x40\x7d\x65\xa1\xff\xb2\x82\x71\xb4\x5e\x4b\x63\xa0\x5a\xd4\x3b\xa1\xaa\xcc\x64\x0a\xee\xaa\xf2\x34\xc8\x49\xd3\x40\xc4\x0c\x49\x5f\x1f\xb2\xe3\x6b\x53\x9a\x7b\x91\x8b\x8f\xcf\xae\x51\xa5\x18\x0f\x14\x5a\x8f\x5c\xb3\xd1\x5c\x9a\x4d\x39\xd3\x40\xe8\x10\xcb\x58\xdb\x8f\xf0\x03\xe0\x6d\xff\x5e\x76\xb7\x85\x14\x63\x38\x05\xbc\xdf\x5f\xf1\x7c\x5e\x8b\xeb\x0d\xfd\xcc\x40\x80\x96\xce\x92\x58\xe4\xb9\xf5\x8b\xbe\x12\xb8\x66\x34\x90\xa9\x05\x32\x3b\x78\xec\x1c\x93\x19\x0d\x54\x10\xc4\x4e\x20\x2e\xb7\xa4\x91\x56\x72\x55\xe4\xb9\x14\xea\x8a\xb1\x6e\x1a\x98\x1b\xc4\x2f\x02\xcd\xad\x50\x35\xd8\x92\x47\xe4\x85\x1c\x3f\x91\x4e\x4c\xe8\x3e\x9e\x8b\xba\xd8\x05\xf4\x74\x39\x4d\x7b\x4a\x86\x7c\x31\xed\x36\x36\x9f\x06\x9d\xbc\x2c\x70\xe2\x1d\x8a\xfd\x5b\x81\x11\x76\x07\x6b\x99\xf4\x4b\x42\x3c\x17\xbd\x97\x62\xb7\xf3\x41\xa4\x20\x00\xc1\xa5\x1c\x50\x31\x38\xdd\x53\x7f\x46\x06\x26\x0c\x3d\xd6\xbf\x9d\x18\x6e\x0b\x46\x1a\x36\xdf\x23\x15\x7a\xc8\xa8\x31\x07\x6e\xa6\x81\x01\x12\x86\x1e\x85\x57\x37\xed\x4e\x30\x97\x4d\x6b\x3b\x32\x19\xf7\x12\xe1\x95\x50\x13\x76\x47\x1a\x32\x22\x30\x6a\x71\x70\x91\xc4\x71\x95\xfc\x78\xa8\x42\x16\x42\xac\x2d\x1b\x71\xa7\xc1\xf3\x9b\x6f\x13\x96\x6c\xd0\xeb\x40\x57\xc7\x6c\x62\xc6\x85\x41\x04\x5e\x14\xd1\xfe\xcc\x18\xf1\xe7\x7b\x69\x81\x59\xce\x76\x96\x6e\xcc\xfe\xb5\x2a\x3b\xf8\x13\x0d\x43\x12\x21\x57\x04\x1e\xa7\x1d\x0a\xec\x8b\xc7\x0d\xb9\xc2\x70\xc0\xa5\xc8\x9a\x5b\x30\x50\x4c\xd2\x7e\x34\x8c\x42\x6e\xcb\xb4\x36\x2f\x4f\xb7\x37\x9b\x3f\xfd\xcf\x44\x22\xf4\xd5\x8b\xcf\xd0\xce\xe6\x41\xdc\x25\x8c\xc0\xea\x1d\xb5\x76\xf1\x4d\xd6\xec\x5a\x2f\x32\xb3\x64\xf1\x9b\xcd\x8d\xef\xc5\x19\xc5\xd7\x90\x99\x0e\xc6\x40\x0f\x77\x30\x27\xfe\x58\x0e\x79\x08\xb1\xa5\xa6\xdf\x14\xd0\xe9\x5e\x33\x1a\xc6\x71\x62\xe3\xeb\xa7\x6c\x98\x6d\xa4\x61\x9c\x32\xde\x65\xd3\xaf\xf4\xd5\xc6\x0b\x35\x4c\xc2\x18\xc1\x11\x45\xd9\xb4\xbb\x19\x4e\xcd\x0e\xcb\x4b\xc3\x84\x27\x81\x9b\xd7\x76\x4d\xbd\x14\x59\x33\xcd\x97\xd1\x30\xa5\x60\x49\x71\x40\x95\x85\x76\x8b\x70\x88\xff\xa2\x61\x1a\x25\x18\x66\xc4\x9a\xea\xe5\xcb\xf3\x73\x47\xc6\x4b\xc3\x94\x33\xab\x1c\xa0\xa1\x68\x1f\x03\x2a\xb4\xa2\x87\xbb\x54\x98\xa6\x71\xe0\xe6\xc7\x5a\x95\x6c\xce\xe1\x0d\x53\xc5\xb1\xd2\xda\xb8\xca\x8c\xfd\x6b\x75\xad\xe0\x3b\xbf\xad\x85\xc2\x70\x3c\xb8\x85\x52\x70\x6e\xfa\xf2\xac\x76\x31\x7e\x35\xe5\x25\x0d\xb9\x4d\x71\x94\x95\x25\xb8\x99\xdb\x60\x43\x29\x39\xc6\x6e\xd0\xa0\xce\x7a\xa3\x22\x54\x4c\xf8\x93\xdd\x69\xa4\xbe\x3c\xaf\x27\x33\x5e\xa5\x1a\xd9\xa9\x7e\x54\x59\x03\xad\x6d\x32\xac\x9a\xa7\xa1\xd2\x32\x21\x83\xea\xca\x3e\x7f\x3f\xc8\xdb\xd3\x50\x6b\x91\x58\xd9\xc2\xe3\x25\x17\xd5\x80\x07\x86\x86\x10\xd9\xe2\x05\xef\x15\x79\xd1\xb1\xf9\x09\x03\x91\x09\xdc\x66\x7b\x57\x56\x38\x25\xf0\xdc\xbd\x03\xa8\x7b\x1e\x31\xdf\x39\x11\xa1\x97\xe5\xc3\x40\x3e\x06\x09\x26\x86\x77\x68\x62\x6a\xc0\x47\xe9\xef\x2e\xb9\xc9\xf2\xbc\xb5\x69\x3d\x0a\xda\x9b\xb6\xec\x2a\x42\xf8\x3f\xf1\xff\x1b\x9f\x98\x1e\xf2\x47\x23\x42\x52\x44\xe1\x35\xd9\xc9\x89\xe3\xfa\x06\x15\x79\x0c\xf8\x1f\xf0\x59\xf7\x7f\x8e\x91\xc6\xaa\x80\xf7\x75\x03\xa7\x5f\xa1\x59\xda\xce\x3a\x72\xfe\x47\xbb\xf8\x47\x04\x9d\xae\x0b\x35\x29\x96\xb4\xef\x97\xfb\xd1\x44\x8e\x18\x51\x58\xf0\xdf\x5b\x88\xd6\x12\x71\xef\x31\x38\x78\xfd\x05\x32\x44\x4f\x78\xf3\xe3\xe9\xb0\x3b\x59\xcf\x19\xb7\xeb\xc3\xf4\x4b\xf5\x3e\x4b\xc4\x14\xc7\x6c\xde\xc3\xe6\xfb\xea\xcf\xcd\xcb\x70\x83\x88\x58\xbb\x6b\x0d\x76\x7e\x47\x01\x3d\x77\xb0\x45\x41\x6c\x99\x6b\x90\xd4\xd0\xb2\xbb\xa0\x9b\xfb\x8f\x0b\x5c\x6c\xa9\xf2\xa4\x7f\x22\x10\xe2\xe6\xd8\x33\x96\xa2\xb5\x28\xba\x41\x0e\xa4\xad\x35\xfb\xd7\xef\xff\xfa\x7d\xf4\x48\x81\x34\x68\xd7\x7f\x04\xa3\x3f\x87\x2c\xb6\xf2\xd4\xe2\xad\xb5\xb9\xe7\x97\x61\x14\x46\x09\x26\xdf\x6b\x91\xff\x14\x47\x78\x2a\xbb\xd2\x24\xcb\x16\x8a\x72\x1c\x57\x88\xae\xc9\x3d\xb4\xc2\x90\xdd\x49\x7c\x3c\x66\x45\x33\xd8\xdc\xa2\xc8\x69\xca\xdc\x77\xe6\x05\x3a\x53\xe8\xc8\x8f\x98\x6e\x7c\x7f\x61\x30\x51\xe2\x82\x4d\xf3\xb9\x37\xea\x37\xf8\x88\x8b\x94\xab\x81\xaa\x20\x0a\xff\xf9\x7b\xc5\x01\x43\xb3\xfa\x67\xd9\xf4\xa8\x18\xdf\x16\x59\x9c\xbf\x1e\xd0\x78\x0f\xc1\x48\x34\x8a\x85\xad\xfd\xbd\x87\xe6\x46\x14\x6f\x50\xf5\xea\xb7\xce\xaa\x8d\x52\x66\x05\x94\xff\x14\xe5\xa3\x40\x3d\xf5\xbf\x64\x7f\xa1\x51\x1a\x52\xcc\x06\x77\xd9\x13\x27\x18\xd5\x1e\x0e\xf4\x06\x1a\xe1\x1f\x40\x04\x52\xb9\xa0\x83\xdb\xb6\x46\x16\x6d\x24\xc2\x04\x8b\x3e\x20\xcf\x8e\x99\xcc\xe1\xae\xac\xc6\x91\x89\xf1\x9a\x12\x5c\x41\x2f\xc6\xed\xb3\xc8\x13\x88\x35\x8d\x84\x0a\x51\xe2\xbe\xdd\x47\xc6\xe8\x2e\x1a\x09\xe0\xdc\x09\x93\xb7\xfb\xd7\x0f\x90\x75\xd6\xfc\xa2\x08\x8a\x46\xc2\xd8\xf5\xea\xa2\xbd\x6f\x50\x0c\x79\xd3\xfd\x7d\x65\x00\x68\xd7\x9b\xaa\x3c\x59\x80\xe5\xc0\x86\x8d\x64\x14\x62\x10\xbb\xc3\x16\x3b\x3b\x78\x53\x2c\xf0\xb8\x99\xa9\x39\x98\x3e\x86\x14\x1a\x7f\x60\xbf\xdd\x4f\x62\xa9\x91\xd4\x01\xe9\xf3\xfd\x3f\xca\xea\x0d\xaa\x6d\x59\xe6\xbf\x7d\x91\xfd\x9e\x1f\x5c\x69\x38\x71\x71\xb4\xbb\x0a\x00\xa7\x74\x75\x07\xa0\x47\x06\xfb\x34\x16\x7a\x85\x58\xa6\x91\x92\x89\xee\xf3\x4a\xeb\xdc\xaa\xde\x7c\xcd\x78\x44\x23\xa5\x48\x40\xc7\x15\x2b\xb3\x36\x6b\xa4\xb9\xe4\xae\xe3\x3e\x83\x6a\x63\x66\x78\xee\x69\xa4\x53\x82\x35\xb9\x0e\x91\xe4\xd0\x56\x03\xb6\xd8\xc9\xcf\x6b\xe8\x42\xfe\x5b\x51\x75\xca\xcb\xe3\xa9\xaa\x21\x4e\xfd\x4f\x8b\xe2\xad\x3b\xed\xbb\x0e\xc0\x22\x0c\x1f\x5d\xac\xf2\xb2\xa5\x39\xe8\x3f\x92\xa1\x0a\x6d\x9c\xd2\xf1\xbd\xee\x2c\xbf\xeb\x75\xa8\xcb\xf7\x4f\x78\x04\x1e\x72\x85\x75\x66\xb3\x23\x62\x14\x60\x1c\xdd\xb3\xe2\x7c\x41\x6f\x4f\x39\x49\x03\xe1\x5e\x72\x5d\xef\x5f\xb3\x4a\x0f\x8d\x00\x4e\x43\x83\x2b\xb1\x12\x85\x2e\x4f\xbb\xb7\xac\x58\x9c\xcf\x20\xaa\xc1\xc6\xc6\xa9\x26\x48\x9f\xd2\xb8\x48\xda\x36\xb8\x3d\x4c\x7e\x85\xc5\xb6\xbe\xa4\x3d\x5a\x44\xe5\x57\x1d\x0f\x74\x98\x0a\x57\xb9\x0b\x7a\x59\x56\xdd\x3d\x03\x30\x48\x8a\x78\x2f\x8a\x63\xe1\x8a\xcf\xe7\xab\x40\x29\x0f\x13\x5b\xfb\x90\xa9\x72\x8c\x49\xa5\x3c\x22\x34\xb4\xf9\xad\x9f\xe5\x38\x0b\xc1\x23\xb0\x45\xc5\xbe\x28\xa5\xab\xbd\x74\xdb\xf6\x5d\x59\x3d\x8a\xe2\x22\xf2\x67\x5b\x9d\xf7\xd9\xdd\xd3\xd8\x94\x83\x57\xf9\xd8\x35\xad\xd7\x75\xcc\xd4\x28\x7f\xce\x79\x9c\x86\x64\xc4\x24\xb2\x28\xb4\x03\x32\xce\xef\x63\x3c\x26\x86\xb1\x2e\xea\x34\xbf\x28\x78\x4c\x2d\x0c\x62\xf5\x51\x3e\x66\x45\xe6\xd2\x59\x5f\x0c\x4d\x12\x87\xe8\xf5\x15\xf0\x7e\xbb\x98\x80\x77\x78\xa2\x52\x24\xfa\xeb\x39\x2f\x3d\x84\xe7\x01\xf4\x71\x30\x03\x47\x33\x9e\x27\x4a\x60\xb4\xb9\x70\xd0\xa6\x01\xa2\x98\xf2\x94\x04\x38\x38\x8e\xb7\x70\xff\x31\x5e\x2e\x3c\x8d\x43\xdc\xf9\x2b\x64\x7a\x7a\x2a\x6d\x06\x2c\x13\x13\xf5\x41\xca\xd3\x84\xe3\xe1\x0d\xed\x07\xd5\x02\x95\xcd\xcb\x49\xee\x82\x8b\x28\x0a\x83\x2e\x44\x71\x57\x56\x4e\x46\xb6\x37\x84\xb9\x10\x04\xfd\x8b\xb3\x83\x3b\x0d\x8a\xac\x28\x97\x60\xeb\xb0\x5e\x4b\x9d\x4f\x9c\x06\xae\x28\xc7\xd7\xb4\x41\xf3\xd5\x87\x13\x75\x1f\xe0\x31\x26\x63\xad\x40\x7b\x5d\x8c\x2d\x14\x22\x6f\x3e\x6f\xb3\x5a\x5e\xaa\x7a\xc2\x69\x42\xb9\x4e\x03\x9c\xb0\xe7\x2a\x53\x57\x9e\x3a\xd7\x40\x63\xe1\x5b\xd1\x9a\xa0\xfe\x79\x81\x89\xb4\xa3\xd8\x1e\x14\x97\x50\x0e\x41\x18\xa6\x93\x9a\xbd\x19\xf0\x00\x07\xc1\x02\xa7\x5c\x89\xd8\x09\x2c\x18\x98\xdf\x6a\x38\x88\x08\xec\xb7\x6a\x57\x86\xfe\x6a\x4b\xe2\xa0\x78\x2a\xbd\xdd\x98\x97\x97\xfe\xa1\x94\xc1\x88\xd7\x5e\x8a\x32\xef\xfe\x68\xec\xba\x38\x57\xe5\xc7\xa7\x93\xa3\xbf\x06\x19\xf4\x87\x64\x4c\x40\x22\x0f\xed\x49\xbc\x41\xd5\xe9\x02\x61\xa2\x7a\xf4\x1c\x71\xeb\x9a\x0b\xaf\x9c\x98\x41\xfd\x07\x7c\x4e\x7b\x44\xcc\x49\x8d\xc0\xbb\x14\x6f\xde\x1e\x89\x69\x0c\x18\x6b\xac\xb3\xaa\x67\x77\xef\x1a\xb5\x8a\x03\x8b\x2d\xfc\x67\xfb\x7c\x7f\x11\xa4\x72\x57\x31\xa1\x30\x4a\x70\xa8\x6c\xd8\x13\x27\x50\xfd\x3c\xc9\x19\x8d\xe6\x45\x1c\x50\xea\x0d\xf0\x1f\x65\xa5\x47\x8a\xa7\x34\x0e\x02\xc3\x7d\x40\xf8\xf6\xe7\xc8\x79\x88\x03\x41\xd1\x95\x5c\x3f\xad\xf7\xeb\xc5\xc3\x61\xbb\x79\x78\x38\x3c\x6d\x9e\x3c\x35\x19\x8d\xc3\x48\xa1\x4a\xa0\x5f\xb5\x43\x73\x32\x0e\xe3\x18\x61\x2f\xeb\xe5\xe6\xb0\x5d\x3d\x2f\x57\x4f\xfb\xc5\xfd\xca\xeb\x8d\xd1\x38\x94\x09\xa2\xcf\xfd\x4e\x61\xad\xc6\xf1\xac\x8e\x43\xad\x2c\x0f\x0d\x42\xf1\x10\x3b\x33\xc5\xc8\xd3\x38\xa2\x1a\xf7\x87\x9b\xcb\xf1\x06\x05\x2e\x3b\x4e\x21\x1a\x47\x2c\x45\x7e\x12\x55\x9e\xce\x55\x79\xca\x6a\x98\x58\x69\x31\x8f\x22\x4f\x82\x6e\xd3\xca\x7d\xc4\x61\x06\xfc\xde\xf6\xd7\xcc\x49\xf6\x3c\x74\xe9\xf1\xbf\x55\xf8\x46\xe3\x98\x11\xed\x7c\xd4\x6f\x90\xeb\x11\xc7\xc6\xf8\xc5\xe3\xd0\xa0\xbb\xbe\x7c\xd9\xed\x37\x8f\xab\xe7\xc1\x10\xfa\x07\x8f\x13\xab\x91\x90\xd5\x1b\x4f\x02\x8d\x03\x13\x12\xdf\x41\x74\xc4\x32\x96\xed\x04\x2b\xbf\x5d\x63\x42\x03\x4b\x7c\x89\x46\xe1\x42\xd6\x3d\xa2\x7a\x72\xd0\xc6\x69\xc4\x11\x1c\xb4\xdf\xec\x37\xd3\xd2\xa3\xf1\x53\xa7\x49\x2c\xac\x54\x4a\x7e\x15\x0c\xf2\x5d\x0c\xc1\x95\xb7\x9a\x68\x22\xd0\x58\x08\x89\x59\x9d\x83\x97\xc6\xf0\x42\xfc\x93\xc7\x11\x3a\x88\x84\x17\x1d\x17\xf9\x40\x6f\x8b\xc6\xc2\x50\x34\x2d\x3a\x5d\xd4\x3f\x3e\x65\x17\xe0\x9c\x3c\x89\x4c\x63\xb4\xf0\x91\x17\xf2\x51\x7c\xf4\xd5\xba\x34\x96\x9a\x20\x4b\x71\x3b\x6d\x2e\x0d\xb4\x16\xee\x28\xc4\x14\x2b\x21\xd1\x97\xb9\x87\xa6\x8f\xfe\x8d\x9f\x53\xa7\x12\x5d\x03\x0f\x8d\xfc\xe8\xe9\x03\x47\x7b\x91\x96\x09\x58\x62\xc6\x9b\x81\x3c\xc0\xd8\x85\x73\xf6\x6e\x6c\x98\x9d\x7c\xcb\xe7\xef\xa3\xb1\x33\xc0\x95\x63\x70\x7f\x2e\xbf\x98\xb9\x09\x8d\x04\x15\x5d\xf2\xc2\x82\xc2\x10\x1f\x86\x21\x8b\xd1\xc3\x27\x34\x05\x2c\xae\x70\x03\xb0\xa8\x9a\xac\x6e\xf6\x1f\x77\x00\x73\x82\xf9\xed\x05\x8a\x62\xe5\x0b\x52\x73\x3f\xc1\xbb\x9b\x91\x76\xbf\xa1\x2c\x19\xb1\x7f\x4c\x1c\x8e\x84\x01\xd7\x16\x37\xf8\x79\xc8\xcb\x9f\x80\xe7\xe9\x18\x39\xfc\x0b\xc5\xd8\xf6\x7a\x89\x7b\xed\xe5\x6b\xd6\xbb\x2f\xff\x1d\x0d\x11\x33\x31\x22\xaf\x90\x53\xeb\xe5\xf1\xb0\x7d\x79\x5e\x7e\x5b\xec\xfc\x9a\x4b\x98\x31\x2e\xb7\x95\xe7\x8f\x4f\xcb\xc9\xa0\x05\x91\xc0\x2d\xef\x70\xd0\xd9\x71\xda\x06\x41\x4a\x7c\xcc\xb9\xc9\x27\xd0\xa3\x24\x64\x12\x53\xa8\x63\xdd\x73\xbf\x99\x26\xa1\x8b\xd8\xef\xa1\x6e\x58\xff\x47\x5b\x1f\xaa\xab\x1f\x59\xb1\x7c\xb5\xa4\xb1\xe3\x5f\x0d\x13\x9b\xaa\xef\xab\xba\x04\x0d\xbb\xeb\x4d\x8a\xc5\xb4\xfb\xe7\xc5\xd3\x6e\x8d\x6a\x90\x3f\xd6\x4f\xb7\x9b\x1f\x7d\x07\x4b\x38\xd4\x19\x73\xa0\x5e\x9d\xe8\xdc\xe4\xf1\x23\x12\x33\xa7\xd7\x70\x86\x62\x07\xc7\x53\xe7\xda\xf8\x1e\x01\x41\xf4\xe0\x59\x54\x4d\xa6\xb2\xb3\x28\x2c\x50\xdb\x86\x7a\xbf\x28\xaf\xea\x5f\x24\xe2\x56\xb9\x01\x81\xa9\x50\x37\x9b\xf7\x2e\xb4\x99\x44\x09\x45\xe4\xed\x6c\xc2\x3c\x89\x12\x2b\x10\xd4\x38\x51\x29\xf7\x67\x4e\x04\xc1\xc8\xf5\x78\x43\xf3\xad\x54\x59\x25\xde\x97\xdb\xf5\x7e\x75\x7b\x58\x3c\xdd\x1e\x16\xdb\xed\xf3\xe6\xbb\x2f\xe2\xa5\x49\x2c\x6c\xbc\xba\x86\xe6\xbe\x02\x18\xd2\x3a\xd3\x24\x96\x36\x90\x63\xad\xc8\x81\xe2\xa0\x6b\x4f\x62\x85\xe9\x8e\x57\x31\xd9\x96\x92\x34\x22\x18\x25\x7f\x7e\x98\x27\xa5\x1b\x44\xde\x12\x11\x51\xdc\x3a\x5e\x8a\x3b\xac\x02\xc4\x47\xb0\x02\x89\xf3\xc3\x28\x62\x6e\x8b\xe2\x31\x5e\x3f\x21\x1a\x9e\xf6\x4d\x79\x48\x7a\xae\x2e\x1f\x54\xb9\x0a\x1a\x26\x52\x59\x9b\xce\x85\x4a\xb2\x2b\x63\xf6\x2b\xdc\xd2\xf4\x3e\x3a\xc2\xf9\x08\xed\x37\xee\x0b\x6b\x69\xa2\xb4\x25\x3d\xdf\x6e\x36\xdb\x8d\x8f\xe4\x27\x3a\xe2\x81\x65\x3a\x11\xb9\x8d\x45\xfd\x80\xec\xf8\xda\xcd\x38\xcd\x15\x2a\xe1\x2a\x91\xab\xa9\xf8\xca\xe4\x97\x75\x9a\x84\xb2\x8b\x6c\x57\x9f\xdb\xd6\x8e\xec\xee\xa3\x03\x4c\x78\x63\xdd\xee\x1a\xd3\x06\xcd\xe7\xd8\x05\x49\x20\x8c\x78\x9f\x17\xbe\xf1\xd8\xd5\xc9\x6a\x84\x50\xd0\x4e\x4b\xa7\xcc\x75\xf9\xde\xcd\x17\xe0\x49\xec\xc5\x18\x2c\xbf\xdd\x10\x16\x92\x40\xcc\x63\xed\x29\xed\x26\xfc\xbe\xe3\x33\x38\x01\xb0\xf9\x11\xa1\xf5\x42\x7b\xd4\x91\xfb\xe7\x57\x7b\xa8\x91\xb6\x9e\x54\x89\x3c\xff\x31\xa1\x6b\xf5\x5d\x34\x55\x21\x5a\x63\xa7\xb3\x28\x3e\x9f\x06\x9f\xc8\x40\x18\xa7\x83\x84\xe1\x33\x14\x83\xb7\x33\x46\x22\x06\xfb\xee\xf2\x35\x61\xfd\x97\x10\xb8\x2f\xfe\xbd\xe2\xca\xa0\x29\xa1\x06\x21\x8e\xfe\xf1\x2d\x2a\x76\x76\x76\xa7\x24\x8c\xd1\x0e\x79\x14\x75\xeb\x9f\x96\x1a\xec\x4e\xb4\x1b\x90\xfa\xb9\xae\x94\x59\x3e\x82\x76\x21\x2c\x36\x6e\xf4\x67\x6d\x8a\x94\x86\x80\x40\x7b\x2d\x3e\x19\x96\xc6\xfe\xe6\x1b\x4c\x88\x52\xa4\x75\x53\x56\xff\x1e\x62\xf3\x53\x96\x44\x58\xda\x73\xb6\xca\x09\x96\x18\xc4\x46\x09\xba\xe8\x6a\xca\xa4\xa5\x29\x3f\x65\x45\x1f\x47\x2f\xab\xa9\x04\x0b\x4d\x83\x88\x63\x0d\xfa\xfd\x07\x62\xde\x44\x8f\x2a\x4e\x83\x98\x22\x91\xb0\x71\x6a\x07\xad\x61\x99\x15\xbd\xf6\x20\x4d\x83\x84\x53\xb7\xe2\xc9\x87\x8f\xef\x4c\xde\x30\x50\x5a\x7a\x8f\xe1\x20\x3c\xef\x35\x4d\x43\x13\xe0\x6a\x6b\x5d\xf0\x7a\x58\xc0\x45\xd3\x88\x13\xdc\xbb\x31\xa1\xf0\x5c\x5e\x72\x68\x1a\xf0\xc8\xe7\xae\x53\x12\x46\x43\xdd\xc3\x45\xde\x28\xcf\x95\x3f\x1d\xe5\x28\x11\x91\x63\x04\x6f\xff\xba\x83\x2b\xdd\x2a\x9a\x72\x01\x88\x25\x7d\xcd\xfa\xf0\xda\x28\xe5\xcf\x88\xef\x69\x40\xf4\xdb\x97\x95\xe6\xc0\xb4\x8c\x57\x90\x70\xff\x7a\xd6\x32\x3a\x63\xc1\xa4\x31\xb1\x8a\x64\xe8\x81\x7e\x2f\xd1\xad\x1f\x3b\x1a\x69\x4c\x14\xa2\xd6\xce\xe2\xf3\x50\x8d\xa0\x5b\x69\x1c\x0a\xf4\x52\xd0\x96\x7d\x82\xe6\xbd\xac\xde\x1c\xf7\x81\xef\x91\x00\x02\x73\x1d\x2e\x6a\x37\x10\x4d\xf7\x3d\x24\xc3\x51\xbe\x2f\x73\xfd\xef\x4b\xd1\xa1\x8c\xd3\x84\x5a\x09\x19\x74\xf0\x5f\x0a\x65\xa9\x78\x6f\x32\x3d\xd2\x3c\xa7\x69\xc2\x19\xd6\xb2\x9e\x70\x04\xfe\x00\x29\x64\x37\x77\x12\x88\x13\xe2\x89\xe1\xf2\x5c\x54\x13\xcd\x7c\xd4\xd2\xf1\x03\x9a\x26\x56\x15\x05\x6b\xdb\x4f\xe7\x06\x0e\xf1\xc8\xb3\x4c\x53\x1d\x29\x3d\x48\x24\x0e\xd1\x29\xae\x8b\xe0\x80\x9e\xc4\xe3\x7a\xf9\xbc\x39\xdc\x6e\x1e\x1e\x16\xcf\xbb\xd6\x09\x3a\xdc\x3c\xed\xff\x3c\x6c\x9f\x57\xbb\xc5\x83\x37\xcb\x52\xc1\x8d\xe7\xca\xbd\x6b\x8d\x0a\xa8\x5c\xb0\x76\x3c\x44\x52\xc5\x98\xfe\x50\x0e\xb9\xd1\x76\x5d\x77\x22\xd4\xdd\x54\x54\xb1\xd0\x2e\xfc\xfa\x6e\x65\xb1\xdc\xb3\x51\xd2\x75\x11\x42\xd8\xda\x57\x1c\x4e\x94\x19\xed\x2a\x5c\x27\xaf\xa2\x09\x58\x46\x25\x9f\xf3\xd4\xa7\xac\x68\xfb\xb1\x69\x47\x11\xe2\x44\x7c\x86\xfa\x72\x1a\x20\xb4\x07\x73\x48\x0b\x09\x72\x30\x72\x93\xb4\xe5\x64\x8f\xd3\x8a\xdb\x60\x1c\xa8\xd7\x22\x53\x22\xf7\x4c\x9b\xbe\xdd\xc4\xa8\x7a\xf4\xaf\xfd\xb7\xfd\x1f\x4f\xfe\xaf\x26\x22\x51\x7f\x96\x6d\xcb\x37\xb7\x26\xe6\x77\x3c\x13\x33\x95\x7a\x9c\xad\xaf\xc4\x08\xba\x7b\x69\xab\x30\x26\x94\x25\x73\xe9\x06\x59\xd0\x54\x32\x9b\x03\xfd\x09\x95\xce\x00\xa5\xb6\xbc\x1f\x27\x98\xd0\x81\x70\xc4\xea\xbb\x5c\xd4\xaf\x83\x26\x15\xe3\x85\x37\x19\x6e\x10\xb7\x48\x03\xd3\xa3\x22\x44\xc0\xac\xe7\xf2\x5d\x20\xb9\x77\xc7\x07\xfd\xcb\x8c\x84\x08\x82\x18\x03\x6d\xb7\x55\x99\xe9\xd5\x7a\xeb\x25\x3e\x47\x03\x2a\x82\x00\x10\x34\x7b\x14\xf5\x33\xfc\xa7\xfb\xc5\x24\xc5\xf8\xe3\xf6\x79\x75\x40\xa6\x99\xe0\xc7\x6a\xf5\x87\x95\xdd\xeb\xfa\x18\xcb\x5c\x27\xb4\xfe\x6e\xb5\x22\xca\x6a\x26\x97\x2a\xc2\x14\xb0\x40\xf7\x61\x00\xb8\x15\xa1\x88\x10\xcf\x03\x96\xa4\xd7\x06\x5a\x70\xa0\x7b\xe9\x56\x2a\x42\xc5\x95\xad\x2f\x87\xc2\x7e\xb1\xf1\xa7\x12\xa1\xd2\x18\xe5\xfd\x76\xbb\x1c\xda\xaa\x22\x22\x3e\xfc\xdf\x5c\xaa\x62\x20\xb0\x37\xbe\x3c\x52\x54\xb9\x98\x55\xbb\x3d\xb2\xee\x72\x6d\xd1\x2d\x28\x49\x83\x2a\x92\x97\xab\x3a\x59\xd7\x95\x07\x09\xfa\x79\xad\xf9\x09\xd5\x29\x1b\x56\x76\xce\x7f\x17\xee\x72\xcb\xe7\x4e\x58\xb4\xfd\x98\xa3\xf3\x45\x70\x65\xcb\xd9\x4f\x70\x14\xb2\xac\xeb\xb9\x5a\x0b\x11\x27\x06\xa3\x0b\x15\x98\xee\x4f\x9a\xe3\x44\x5f\xfd\xe3\x65\xbd\x7d\x5c\x3d\xed\x0f\xcf\xab\x1f\x8b\xe7\x5b\xcf\xda\xf3\xf4\xf2\xd8\x7d\xbf\x84\x84\xc6\x62\xeb\x5f\x61\x5c\x13\x23\x92\x20\x0e\x7a\x74\xfc\xb1\x2c\xf0\x78\x7f\x9a\x78\xd4\x22\x11\x16\x5b\x56\x43\xb3\x2d\xab\x91\x76\x3c\x15\x29\xd5\x18\x4e\xd8\x56\xaa\x68\x06\x18\x1f\x91\x2a\x13\x84\x5d\x11\xa2\x9e\xc7\x57\x09\x41\x63\xd2\x51\xd3\xb8\x31\x6a\xbb\xf7\x67\xbb\x10\x0a\x3c\xf5\xad\x35\x22\xcb\x6a\xb7\x9d\x3c\xa2\xa4\x81\xb0\x24\x7b\x1f\x53\xae\x5d\x2a\x64\x40\xf0\x8c\xf2\xdb\x58\xb7\xdd\x6d\xcc\xae\x29\x2b\x31\xb5\x14\x84\x8c\x38\xb5\x5b\xf8\xd3\xe1\x66\x7d\x7b\xb8\x7b\x5e\x2c\x0f\x37\x9b\xbd\x7f\x22\x19\x1b\xf4\xb5\xed\x79\x73\xce\x85\x82\x83\xe5\xfc\x52\xd3\xba\x14\x21\x53\x8a\xe6\xb1\xc9\x3e\xac\x06\xc8\x7d\x25\xce\xaf\x99\x9a\x05\xc1\x08\x69\x22\xa4\xb6\x34\x00\xb5\xc7\x41\x09\x45\x28\xce\x3d\x47\x45\x3f\x8f\x2f\x9b\xf7\x4c\x84\x8a\x84\x65\x63\xcd\x9a\x4f\x57\x7b\x37\x53\x0c\x2d\x14\xb7\xfa\xa1\xba\x3d\x15\x2a\x78\x5e\x7e\x1f\x9d\x7b\x42\x25\x56\x80\x09\xb5\xcf\x1b\x40\x7e\xe9\xf1\x2d\x24\x75\x30\x1d\x64\xbc\x1e\x72\xa6\xf9\xf6\x20\x40\xc6\x10\x94\x2e\x6d\xc4\x38\x2a\x25\x29\x44\x26\x71\xc6\xd9\x95\xcf\x29\x59\x62\x57\x1f\x14\x7a\x87\xe0\xa9\x61\x3d\x93\x0c\xb8\x20\x0e\x6b\xe9\x1f\x6b\x9a\xed\x96\x61\x10\xc7\x71\xcf\xcd\x37\x74\xf0\x65\x98\x10\x92\x78\x30\xa0\xd3\x65\x1f\x2a\xed\x8f\x9f\x25\x94\x01\x96\x08\xf8\x14\x4a\xbd\xec\xef\x14\x45\x2a\x1c\x90\xcd\x29\xd1\xb7\x48\xcb\x0d\x81\xd9\xd6\x31\x14\x42\xf2\xc4\x2e\xa1\xdb\xcf\x63\x56\x94\x23\xdd\x39\x2a\xb9\xb0\x8c\x8f\x79\xa9\xde\xee\xfb\xe5\x25\xb9\x0a\x30\x38\xd0\xce\x60\x0f\x2e\x18\xb3\x59\x51\xdf\xd3\xe9\x72\xb7\xfe\xc1\xdd\x65\x4a\xfc\xed\x1d\x41\x99\x90\xd4\x73\xba\xf5\x00\xef\xd9\x45\x2b\x5b\xbb\x0c\x25\xae\xb2\x8f\x6e\xa2\xcb\x44\x52\xfc\xe3\x01\x3d\xf4\x5b\x90\xcd\xf3\x48\x98\x67\xfa\x45\x12\x9d\xc6\x41\xb7\x77\x23\x94\xed\x1a\xc2\xf4\x3f\x89\x33\x53\x65\xca\x08\xda\x0f\x2e\x71\xbc\x17\xc5\xdb\xd0\x45\x74\x61\x46\x29\x94\xf1\x65\x7e\xb7\x60\xc4\x25\x6f\x7a\x9c\x9e\x94\x71\x8a\xfb\x7d\x7e\x51\x6f\x9f\xb7\xe5\x71\x00\x78\x92\x32\xe1\x42\x8e\x89\xd5\xfe\x1e\x26\x4e\xaa\x24\x34\x56\xec\x18\xd3\x77\x65\x3d\x65\x51\xed\xfd\xbd\xe9\x95\xa9\x40\x8c\xa4\xbc\x7c\x4e\x16\xf5\x78\xbc\x95\x8a\x90\x7b\x02\xcf\xa9\x9b\xa1\x82\x20\xd2\x09\x5f\xfd\xcc\xb5\x83\x29\xb5\xb4\xb9\x9e\x93\xf8\x70\xbb\xec\x08\x04\x23\x35\x68\x6a\x43\x0e\xe7\xac\x11\xf9\x56\x35\x37\xd9\xb9\x5b\x61\xc0\x18\x26\x4e\xbd\x48\x76\xbb\xe3\x8d\xb4\x0d\xfe\xe2\xdf\xee\x36\x1c\x6c\x90\xbd\x23\xb4\xf2\x66\xe2\x15\xc5\x28\x95\x20\x45\xea\x01\xf1\xfb\x0f\x5f\xba\xd5\x3d\x12\x68\x64\xd7\xc2\xbf\x5b\x18\xc6\x70\xdd\x28\x42\x13\x64\x84\x53\x98\x32\xcd\x2d\xf8\xcc\xb7\x31\x5b\xa1\xee\xb3\x3f\x98\xf8\xbb\x0c\x59\x2d\x14\x09\x6c\x6e\xd1\x9d\x5e\x59\x71\x1c\xf3\x5c\x53\x45\x64\x80\x6b\x1d\xcd\xe8\xf9\x0f\xa7\x08\xa4\x98\xe8\x40\x92\x9d\x4b\x61\x59\x78\xc7\x8b\x49\xd1\x58\x20\x52\xfc\x52\xd8\x1d\x05\x1e\xb3\xbc\xdd\x83\x7a\xc8\xae\x62\x21\xc1\xc4\xec\xfd\xed\xf2\xaf\x71\x47\x8a\x71\x8a\x00\x78\x9d\xd5\xcd\x17\x7c\x6b\xae\x67\xa8\xb9\xd3\xf4\xcc\x30\xc3\x7f\x23\x6a\xe4\x43\xf4\xbf\x1b\x19\x89\xcc\x9a\xce\x56\x3f\xe8\xf2\x22\x73\x38\xd4\x97\xd3\xe1\x2c\x32\x7d\x30\x55\x79\x3a\x34\xaf\x70\x90\x63\x15\x33\x77\x39\x27\x02\x43\xfb\x3a\xfb\xf9\x5b\x8f\x28\x49\xba\x56\x15\xf7\x30\xa5\xc7\x52\xe2\x56\xf1\x17\x60\x9c\xd1\x8b\xf2\xa0\xc3\x4d\x5a\xdd\xfd\xe1\xae\xae\xb8\x4c\x91\xa3\xeb\x06\x05\x62\x96\xd5\xe7\xb9\x29\xd5\x48\x30\x87\x2a\xae\x63\x2c\xcc\xbc\xc9\x1a\x29\xe4\x68\xe3\x55\x49\xcc\x99\xbb\xfb\x4b\x61\x21\x19\x57\xb6\x99\x4a\x62\xab\x67\x67\xa9\xfe\xb1\x7c\x7f\x08\x1c\x53\x49\xc2\xc0\xb3\x6a\xdd\x43\xb3\x14\x35\x2c\x86\xa4\x63\x6d\x8f\x00\xdd\x63\x51\xd8\x3d\x60\xa0\x69\x38\xff\xd1\x52\xc1\x91\x77\x2e\x2f\x95\xc8\x91\xae\x66\x3a\x27\xa6\x31\xcb\xf1\x9f\xdd\x6d\x24\x8d\x9c\x55\x69\x37\xe9\x45\x85\xbe\xfb\x55\x8c\x6b\x3e\x92\x7b\x15\x26\x1d\x09\x2d\xb7\x77\x4f\xd0\x4f\xb6\xe4\x78\xdf\x61\x48\x33\x3a\xfa\xa8\xee\xa0\xee\xff\x19\xde\x04\x6c\x69\x3f\x4a\xb2\x39\x7d\xcb\x45\xe3\xaa\x88\xeb\x9b\xcf\x67\x84\xe9\xb6\xee\xc8\xfc\xc3\x8d\x26\x8b\x16\x96\xc2\xcf\xc2\x72\x5a\x1b\x68\x52\x5e\xaa\xb4\x24\x81\xab\xcd\x3b\xef\x5e\x33\xf0\x4a\x65\x54\x69\x48\x10\x21\x68\xb2\xe3\x2b\xa2\x87\xd1\x8e\xba\x92\x11\xa7\x0a\xa8\x8d\x95\x65\xc5\xbf\x41\xfd\xb2\x10\x40\x81\x01\xd5\x3d\xcf\xcd\xe5\x73\x60\x3a\x2b\x13\xd8\xb8\x87\xc7\x3c\x8c\x35\x52\xa9\x32\x11\x0d\x98\x9f\x75\xc5\xc5\xe9\x2b\xcd\x50\x7b\x28\x93\x5a\x0c\xcd\xe5\xac\x71\xeb\xb9\xc6\x75\x69\x1a\x26\x78\xf0\xbd\x43\x76\x57\x56\xff\x14\x97\xdf\x7c\x83\x70\x80\xb9\x76\x8e\x59\x3c\xd0\x84\x06\x9e\x6a\x2a\x63\xd4\x91\xdf\xff\xee\x9d\x2a\xcd\x78\x8a\xf6\x91\x11\x75\x3b\xdf\x5f\x91\x19\xd1\xb7\x69\x81\x70\xdf\x4b\x71\x87\x04\x07\x33\x9e\xaa\x0e\x22\x66\x39\xac\xd1\x12\xfa\x26\xaa\xd6\x22\xbb\xeb\x34\x29\xa8\x0e\x78\x84\x91\x4a\x03\x33\x65\x63\x7d\x1f\xb4\x67\xbd\xb2\x94\x13\x8a\x9f\x55\x5f\xf0\x97\xc4\x5c\x41\x3f\x41\x8c\x35\x93\x47\x8b\x46\x07\x9a\x81\xe5\xaf\xb1\xe4\x1e\x59\xd9\x29\xb0\xfa\xa7\x0b\xa9\xe5\xa9\x5a\x3f\x97\xb2\xec\xfe\x18\x49\x50\xbe\x18\x02\x31\x0f\x43\x82\xea\xf1\xa3\x87\x92\x60\x85\x61\x71\x39\xb5\xbb\x5a\xbd\xcf\xf2\xdc\xa5\x24\x6d\x5c\x76\xdc\x3d\x22\x2c\x0e\x46\x6c\xb6\x7e\x77\xd3\x51\x60\x10\xac\xef\x03\x93\x0f\xa5\x7a\xbb\x9c\x47\xb8\x2c\x1d\x29\x82\x89\x3f\xe3\x44\x2f\x16\xc7\x3e\xca\xa2\x23\x25\x71\x0b\xfd\x09\x15\xd2\xa8\x61\xb4\x6b\x3c\x22\x3c\xb2\x5a\x98\x12\x79\x99\xfd\xe3\x4d\x57\xb5\xef\x1c\x6b\x21\x7c\x2a\xac\x10\xb9\x1d\xbb\x71\x28\x57\x73\xa5\xa5\x55\xa6\x7b\x77\xb3\x7e\xfc\xc2\x71\x90\x22\x03\x94\x7d\x0f\xcb\x76\xf0\xc5\x50\xc6\x52\x1b\xd3\x57\x52\x5f\x8a\xe6\xb6\x0f\xed\xeb\x84\x10\x07\xe8\x69\xfd\x32\xaf\x95\x3e\x01\xdf\xea\x84\x50\x4a\x3d\xf0\xa1\x9a\xb8\xc6\x3a\x11\x3a\x54\xe3\xf2\xa0\x61\x85\x83\xeb\x95\xea\x08\x9d\xb0\xf6\x14\x78\xc6\x28\xa8\xa3\x01\x70\xed\x82\x5a\xed\xbb\xec\x74\xce\x0f\x36\x8f\x1a\x2e\xb3\xca\x71\xfb\xcf\xbf\x9b\x48\x43\xf0\x45\x03\xab\x9d\xea\xc1\x82\x5a\x08\xf0\xa4\x30\xff\xb8\xe0\x22\x6a\xcf\x75\xcb\x99\x31\x79\x30\x61\x08\x7a\x5d\xbd\x20\x75\x07\xc8\xfc\x0a\xd6\x33\x6b\x03\x6b\x49\x6c\xf0\xfe\xbd\xcc\x4d\x38\x76\x6f\xb4\x24\x49\xec\x29\x45\xda\x03\x72\x99\x35\xd9\x7f\xa1\x18\x5a\x7c\x57\x77\x33\xc4\xe1\x23\xd7\xa7\x53\x59\x35\x22\xaf\x37\xc5\xfe\x15\x6e\x44\xd3\xe4\x60\x70\x6f\x1e\xaf\x5e\xc9\xec\xce\x82\x24\x78\xf6\x24\xbb\x0c\x70\xa7\x5a\x91\x10\xcd\xc5\xef\x99\xac\x44\xd1\x89\x49\x50\xad\x22\xca\x6c\x08\x09\xfd\xf8\xdd\x6e\xeb\x19\xb7\x27\xbf\xa0\xe2\x10\xe9\x05\x85\xd6\x88\x9b\x78\xb0\xbe\xcd\xfc\x66\xa2\xa4\x44\xa2\xab\x6f\xd9\xf1\xf5\x77\x4b\xa9\x6e\x51\x0b\xfe\x67\x81\x4b\xe2\x62\x2a\x7f\x34\x6a\x2a\xa6\xdd\xef\xe0\xda\x10\x2d\xbc\x91\x33\x30\x4f\xb4\x61\x20\x5c\x46\xee\x09\xde\x7d\x11\xdb\xe4\x99\x4d\x22\x11\x8b\x86\x2e\x59\x83\xe7\x84\xb6\x14\x7d\xb3\x03\x0f\x84\xda\x42\xec\xbc\x3c\x22\x9d\xf7\x2f\x3f\x3a\x10\xc3\x98\x15\xc8\xc7\x50\xb3\xad\x66\xf7\x3b\x0b\xb0\x34\xf0\x25\x30\x37\xa2\xce\x94\x55\x32\xbe\xd6\xa2\xa4\x10\x24\x90\x74\xc4\xc5\xd6\xa2\xf1\x2d\x4a\x63\x60\xbf\x3d\x0b\x6e\x27\x93\x17\xa2\x20\x09\xdc\x07\x99\x08\x19\xfe\xdf\x69\x47\x8d\xbe\xff\xe1\x2f\xfc\x2c\x88\x34\x41\x5c\x8d\x8b\xd1\x1f\x76\xfb\xc5\xf3\xfe\xf0\x63\xb5\xfa\xc3\x9f\x6e\x10\x01\xc3\x44\x62\xfd\x2a\x2a\x98\xc8\xed\x51\xe0\xa9\x44\x9f\x40\x8b\x46\x3c\x42\xf5\x96\x77\x98\x93\x2f\x14\x1d\x28\x70\x19\x61\x3a\x7d\x24\xb5\xfe\x45\x40\x1e\x62\x9e\x60\x65\xe6\xbd\x38\xc9\xdc\xcf\x25\x48\x38\x97\xe0\x37\x21\xcc\x6f\x62\x85\x74\x56\x16\xcb\x4e\x4a\x86\x42\xd2\xfe\x9f\xcf\x6d\xe4\x65\x95\xcc\x55\x66\x43\xca\x34\x46\x2d\x3b\x6c\xdb\xa7\x3d\x07\xe7\x47\x36\xe5\xd2\xdf\x13\x13\xcf\x56\xaf\x00\x11\x14\x97\x6b\xa6\x7f\x0a\xa9\x64\x38\xbf\x56\x16\x73\x7e\x15\xcb\x9a\xff\x15\xc1\x64\xe2\xb0\x59\xe2\x73\x63\xd6\xcb\xcd\xca\x4b\xdd\x53\x50\x84\xa2\x35\xf0\x6d\xf1\xf2\xaf\xee\x6f\x51\x8a\x13\xea\x77\x78\xfb\xcc\xf3\xc3\xba\xce\x45\xa1\x0f\xeb\x42\xf9\x0e\x9a\x18\x1e\x76\x7c\xaa\xab\xd3\x39\x2f\x3f\xa7\x01\x2d\xd0\x21\xc7\x44\x8e\x4d\x1b\x75\xf3\x5a\x87\x31\x92\xa1\x8a\xa2\xb5\xbc\xb6\x65\xdf\x20\x81\x75\x56\x5b\xbd\x28\xb4\x27\xaf\xcb\xa0\xde\x98\xdb\xa1\x4c\xcb\xe4\xdf\x09\x51\x26\x05\xa0\x84\xf5\x7c\xaf\xab\x8f\x06\x8a\x7a\xc0\xc8\xe6\x7b\xf1\x30\x72\x3e\xea\xa1\xf5\xe8\x0f\xa2\x92\x59\x53\x5b\x9e\xc6\xc9\xcb\x80\x4c\x6d\xb9\x75\x79\xdc\x89\x1c\x96\xe2\xfc\x0c\x42\xbd\xc2\x17\x5b\x30\x18\x4a\x0c\xe9\xe8\xa0\x77\x90\xfb\xd8\x33\x98\x24\x40\xc7\xe1\x56\x34\xc2\x16\x0d\x2d\x8a\x12\x5d\xac\xaf\xd8\xa0\x07\x90\x31\x30\x26\x36\x33\x55\x55\xe3\x37\x33\x24\x60\x58\x28\x7c\x93\x35\xb7\x8b\xcd\x70\xdf\x33\x44\xc4\xe8\x96\x15\xa5\x86\x43\xd5\x1a\xe4\x07\xf5\x9a\xe5\x13\x2b\xc1\x10\x19\x20\x96\xe0\x52\x48\x2b\xbb\x9a\xc1\x14\x54\x6d\x28\xb5\x12\xa6\x0e\xfd\xf1\xb9\xdc\x6c\xbe\xf0\x3f\xfd\x05\x82\xa2\x69\x26\xf1\x18\xb2\x27\xf9\xe4\x77\xa9\xb4\x34\xff\x36\x05\x35\x2c\xfd\x9a\xdc\x8b\x31\xa6\x5d\x5e\xfc\x07\x64\xa3\x60\xa8\x61\x22\x45\x37\xe2\x30\xf0\x3d\x47\x82\x73\xbd\x07\x6a\x98\x12\xc8\xad\x76\x29\xbe\xce\x49\x1a\x06\x1a\x0f\xb9\x5e\x32\xac\xaf\xcd\x59\x15\x7a\x80\x1f\x34\x41\xc4\x11\xed\xb4\x5c\xec\x0f\x77\xeb\xe7\xdd\xbe\x6b\x48\x14\x46\x90\xe4\xa5\xd0\x79\x56\x1c\x47\x9a\x19\xd4\x04\x26\xc0\x5c\x82\x0f\x8b\x2e\xa1\xa8\x4b\xdc\xc3\xfa\x00\x9c\x09\x8c\x09\x1d\x4d\x15\x72\x28\x3e\x97\x79\xee\xd7\x8f\x09\x49\x82\xdb\x58\xf3\xd6\xfd\x25\xa5\xd4\xed\xf0\x77\xd9\x4f\x34\x6e\x1d\x00\xeb\x4b\xa9\xa9\xf9\xc8\x93\x09\x35\xf3\x15\xea\xad\x1f\xe4\x39\x51\xc7\x9f\x84\x53\x82\xb3\x0e\x0a\x8d\x7a\x5b\xa3\x84\xa0\xe1\x32\x42\x7e\xe3\x6b\x66\x94\xc9\x97\x8d\x99\xc6\xa9\xf7\xe7\x66\x9c\xad\x32\xb1\x50\x68\xd6\xa8\x52\xc3\xea\xe3\x5c\xb6\x36\x69\xb7\x3f\x9b\x44\xc4\xcc\x97\xf7\x38\x73\x60\x64\x89\x9a\x44\x0b\x34\x8c\xf7\xdf\x9e\x57\xbb\x6f\x9b\x87\x5b\x0f\x87\x33\xa9\x48\x50\x14\xe2\x09\xde\xbf\x89\xfa\xb5\x5d\x1a\x7b\x8c\x40\x77\x21\x2f\x93\x2a\x01\xa6\x23\x0a\xb2\x60\xf9\x2f\xf2\x57\xbf\xc4\x1d\x5e\x33\x3a\x8d\x07\x5a\x50\xab\x59\x7e\x23\xf2\xbc\x9c\x30\xf6\x7d\x11\x3c\xf8\x15\xbe\xd2\x08\x13\x92\x60\x28\x22\xf3\x50\x1e\x87\x61\x1e\x23\x83\x14\xeb\xfd\x3b\x28\xfc\xcf\xb9\xb8\xe4\xd7\x4c\x0d\x46\xa6\x3d\x7d\x87\x3e\x65\xc5\x43\x39\x01\x40\x1a\xc5\x6c\x51\xd2\x53\x79\x19\x41\xe5\x8c\x16\x89\x43\x06\x7e\xce\x46\x43\xe7\x12\x83\x8c\x90\x94\xe2\x5c\x14\x5a\x3b\x89\xa4\x39\x76\x88\xb6\x9f\xc5\x64\x22\xd3\x8b\xcd\xef\xfd\xe6\x9b\x94\x63\xd0\x47\x07\x6a\xfb\x7d\x35\x7a\x62\x46\x68\x6c\xab\xf1\x6e\x77\xae\xf4\x72\x52\xb6\xcf\x08\xd3\x0a\x0f\xb7\xbb\xc5\x72\xbf\x79\x3e\xc4\xfe\xce\x41\x6a\xb0\x5c\x32\xab\x5d\xad\xf5\xac\xfe\x3b\x23\x81\x90\x58\xdb\xbb\xb8\x59\xcf\xc2\x6a\x19\x09\xc1\xf8\xb2\xed\x47\x98\x29\x44\x67\x24\x0a\x0d\xd2\xf9\x5d\xce\xda\xe7\x5d\xfc\xa6\x72\x65\x08\x33\x12\xc5\x52\xc5\x1d\x2e\xf1\x19\x7e\xa2\x3c\xe7\x80\xd1\xcb\xad\x17\x87\x8e\x61\x84\x43\x82\x28\xbb\x4b\xa1\xb3\x5a\x8c\x4b\x8d\x5c\x97\x38\x66\xc2\x43\x00\x5e\xce\xff\x1a\xf8\x77\xb3\x93\x85\x91\x58\xa4\x68\x73\x62\x4c\x71\x5d\xbc\xec\xba\x4f\x92\x50\x45\x2d\x18\xca\x4a\x59\xbb\x29\xe1\x5b\x99\x8a\x9d\xfa\xcd\x6d\x59\xe0\x79\x8a\xd5\x6a\x23\x2c\x8a\xef\x0b\x40\x9d\xfa\xd0\x44\xea\x98\x91\x14\x52\x27\x53\x59\xe8\xaf\x4a\x7d\x19\x11\x04\x10\x50\xf3\x50\x1e\x8f\xa0\x91\x5f\xef\x57\x71\xe3\x49\xf4\x8e\x11\xc1\x98\x0d\xac\xb6\x9b\x2e\x54\x1e\xcc\x3e\x03\xcd\x66\x44\x86\x02\xe3\x0f\xfb\xe5\x76\xe9\x9f\x52\x51\x8e\x68\x15\xc4\xa7\x67\xc5\x71\x77\xee\x54\x88\x18\x51\x71\x1c\x88\x21\xcb\xc5\x1b\x60\x68\x06\x54\x76\xbe\x3a\xa4\x19\xd1\x91\x46\xe3\xef\xcf\xac\xec\xf7\x33\x46\x74\x6c\x45\xa9\x9e\xba\x7c\xd9\x78\x08\x74\x12\x23\x51\x06\x42\x19\x0e\xb7\x8b\x3f\x83\xc3\xed\xcb\xf3\x40\x60\x98\x11\x9d\xa6\x98\xd4\x78\x14\x59\xfe\xed\x52\x37\x39\x4c\x24\xb8\x19\x81\x30\x44\xff\xa3\xf5\x1c\x7e\x09\xc3\x60\xa4\x75\x1e\xda\x31\xff\x4f\xfd\xaa\x67\x45\xdc\xdd\x96\xc6\x08\xf0\x14\x29\x29\x16\x0f\x0f\x9b\xe5\x61\x71\xfb\x7d\xbd\xdb\x3c\xef\xba\x9f\x94\x29\xee\xf2\xd5\xa5\x98\xc1\xdc\x33\x02\x8e\xc3\xc6\x17\xc9\x1e\xf4\x95\x30\x2f\xaa\x40\x58\x1a\xce\xb2\xb8\x9c\xb6\xd5\x08\x74\xf5\x25\x4a\x71\x3c\x80\x86\x32\x62\xf3\x8e\xef\x50\x37\x8b\xfa\x6d\x54\x57\xdd\xb6\x0b\x0c\x85\x59\xe3\xc9\xe2\xc6\xbe\x88\xc3\xce\x9d\x14\x8c\x98\x88\x21\xdb\xe0\xfb\x6b\xb9\xae\xf7\xaf\x43\x0e\x61\x46\x4c\xaa\x8d\x8b\x00\xdc\xf9\xa0\xab\x43\xfa\x8f\x85\x2b\x18\x31\x1a\x7c\xde\x72\x07\x79\xde\xd3\x1a\xd1\xc9\xe2\xa5\x84\x5b\x30\xee\xef\x2f\x0f\xeb\xc5\xd3\x01\xc7\x7f\x38\x23\x28\x49\x6c\x31\x21\xf2\xa6\x0f\x52\xcc\x8c\x12\x1d\x79\x79\xce\x67\x31\xd1\x51\x67\x94\x00\xf1\x88\xcc\x76\xe1\xfb\x3f\x53\x46\xad\x04\xe2\xf3\x63\x03\xfe\xa0\x47\x72\x4d\x2b\x82\x80\xc2\x21\x83\xc4\x14\xa3\x54\x05\xe8\x5b\x40\x25\x5c\xb9\xcf\x9c\x7d\xcc\x28\x63\x0a\xfb\xa1\x6d\x6b\x41\x11\x5f\x02\x46\x19\x65\x5a\x2a\x77\x86\x1e\x3a\x45\x23\xff\x93\x01\x8b\xd2\xc4\x86\x1b\x5d\xe0\xa4\x7b\xad\x20\x0a\x94\x18\xc4\x06\x6f\x3e\x47\x0f\x1b\xc4\x29\x86\xe7\x9d\x36\x62\x6d\x4d\x9a\x6e\xa1\xd3\x40\xc5\xba\xa3\x95\x76\x93\xb0\x8f\x72\x33\x1a\x1a\x1e\x59\x3a\xd9\x1f\x90\xfd\xd2\x05\x44\xc6\x04\x9b\xed\xbb\x54\xc5\xe5\xfc\xad\xcc\x35\xc2\x14\xaf\xa5\xa0\x7d\x7f\x2e\x65\x3b\x7b\x7f\x40\x6b\xe9\xfc\xad\x82\x7d\x46\xa3\x54\xe3\xd9\xe7\xf0\xf6\x36\x47\x30\x79\x0e\xa3\x12\xb7\x8f\x6f\x9e\x56\xfb\xf5\xe3\x6a\xb7\x79\xf0\x67\x00\xe5\x91\xe5\x2f\xf6\xf1\x4d\x4f\xed\x78\x5f\xe6\xfa\x0f\xf8\x9c\xd3\x49\x61\x94\xa7\x02\xbf\xa5\x0d\x36\xf8\xd0\x03\xde\x7a\xbf\x78\xdc\xfa\x7b\xc7\xa1\x2d\xca\xb3\x22\xb0\x37\xfb\xee\xef\xd2\xc4\x89\x0f\x2d\x7b\x72\x50\x0b\x08\xbe\x36\x92\x87\x06\x25\xa3\xa9\x48\x91\xe8\xf1\xf6\xc7\xcd\xde\x92\x11\xff\xdd\xa8\xdf\xe4\xeb\x08\xce\x75\xda\x03\x81\x3b\x83\x9f\x51\x21\x13\x60\x03\xde\xc7\x01\xed\xee\x20\xe5\x33\x7a\x2a\x49\x15\x2e\x8f\xc3\xd3\xe5\xb4\x31\xbb\xe6\xa2\xa1\x68\xea\xad\xe8\x97\x9b\x0c\x08\x96\xce\xcb\xa6\x47\xc7\xcf\x4f\x1b\x19\x81\x62\x03\x7a\x3f\x98\x32\x2a\xb5\x5d\xcc\xa0\x16\x5b\xd7\x03\xe3\x92\x51\xe9\xe8\x1a\xed\x59\x85\x41\xb6\x3c\x87\xca\xaa\x63\x4d\x83\x76\x73\x46\x1c\xd5\xa1\x0d\x41\x3b\xfa\xe8\xd9\x0c\xd5\x35\x3d\x00\xc6\xa2\xd0\x32\xb9\xef\x03\xcb\xad\xfd\x0b\x56\x08\xd8\x22\xd0\x1a\xd0\x37\x9f\x7b\x28\x44\xff\xc0\x90\x06\x31\x71\x1a\xaa\x95\x06\xac\xd3\xb3\x89\xfe\xbb\x72\xc0\x6b\xd1\xbf\x3e\xe8\x40\x59\xb9\xfc\xa7\xdd\x7e\xf5\xf0\x30\xda\x0f\x41\xc7\x61\xe2\x83\x5d\xcb\x4f\xd5\x1d\x8c\x14\x4c\x1a\x6a\x5b\xb6\x54\x75\xa9\x90\xf1\xad\x19\x25\x54\xd3\x5e\x60\xfd\x51\x9c\xcf\xad\x2d\x90\xfd\xd7\xdf\x85\x51\x4e\x94\x2d\x0a\xf7\xf2\x0b\x2b\x64\x03\xc1\x12\xc6\x69\x02\xf2\x3a\x9a\xc0\xd0\xfc\x07\x5b\x8b\x62\x77\xd3\x1b\x8f\xad\x63\x2c\x20\x46\x85\x5e\x30\xff\x2e\xab\x5f\x17\x48\x85\xdc\x35\xa7\x90\x20\x16\xa4\x14\x05\x5e\x3b\xd0\x4a\x60\x2c\x10\x91\x16\x8e\x57\xa0\xfa\x09\x1d\xcf\x1e\x63\x21\x09\x43\x57\x6c\xa0\x7e\x60\xca\xcc\xda\xb6\x33\xbc\x30\x8c\x85\xcc\x46\x21\x30\x85\x86\x27\xd3\x7c\xb7\x48\x62\x38\xea\x71\xf1\xcf\xe5\x62\xeb\x41\x7c\x1d\xf5\x13\x63\x21\x67\xc4\xd2\x31\xe7\xd0\xc0\x2a\xc7\x10\x5b\xeb\xf1\x8c\x82\xb9\xae\x73\x44\xac\x57\x82\x6c\xf9\x0e\x33\xf6\x6b\xe3\x85\x45\x69\x88\x67\xb1\xc9\x0a\xfd\x58\xea\x4b\x8e\x3c\x4d\xf3\xfc\x12\x8c\xf1\x28\x4c\x2d\x73\xc8\x07\xe8\x87\xf2\xc8\x26\x0f\x90\x84\x09\x1a\xbb\x4e\x44\x6e\x7c\x71\x12\xa7\xd4\xf1\xdf\x0f\xb1\x90\x8c\xa5\x3a\xc0\xc9\x26\x9a\x46\xa8\xb7\xc7\xb2\xa8\xaf\xf6\x4a\x26\xa2\x00\xb1\xae\x37\x9b\x1f\x7b\x6b\xd6\xfa\x86\x34\x42\x6b\xe4\x41\xd4\xcd\x63\x7d\xec\xfe\x6c\x9c\xb9\x8c\x0b\x6c\x5f\xbe\x64\x85\xe7\xd4\x1e\x6d\xfd\x4c\x12\x8d\x55\x2a\x27\x51\xd7\x96\x1d\x61\x52\x9f\xc0\x98\x4c\x52\x34\x8a\xc7\x2c\x6f\xb3\xbe\x0f\x53\xd4\x96\xcc\x9d\xc4\x87\x15\x7b\xec\x60\xaf\xfe\xc9\x94\x01\x04\xb7\x9c\x3e\x11\x39\x7f\x53\x95\xf5\xf2\xda\x17\x60\x3a\x8e\xe3\x9e\xb7\xdf\xfa\xb6\x33\x21\xaa\x6b\xee\xc2\x41\xde\xad\xbd\x8b\xcd\x08\x0d\xd1\xe3\x83\x1a\x0f\xc6\x4c\x44\xc1\xf9\xc0\x28\x91\xdc\xcb\xdb\xb7\x6d\x12\xbd\xb4\xa6\x53\x3f\xfa\x1b\xc2\x26\x2c\x20\x91\x41\xe2\xbc\xdd\x6b\xf9\xee\xaa\xea\x66\x55\x25\x26\x97\xd1\x30\x0a\x4d\x17\x3f\x5b\x8a\xd3\x59\x64\x47\xaf\x83\x7b\x15\x61\x1c\x7e\xc3\x80\x72\x86\x19\x31\x1f\x09\xc0\x02\x51\xbd\xfa\x38\x23\x6b\xdd\x5f\x9c\x6c\xfe\x1e\x26\x66\x8e\x8a\xa7\xec\x62\xf0\x03\x63\x92\xfa\x8e\x8c\x24\x68\x2a\xbe\xe3\x1c\xc6\x9c\xdf\xe8\xcb\x05\x8c\x47\xc8\x25\xf6\xe3\xc6\x61\xfd\x59\x10\x68\x89\x50\x3e\xef\xec\x76\x89\xa6\xbe\x1d\x8d\x9c\x77\x81\x24\xbf\x33\x52\x16\x2c\x08\x63\x8d\x67\xb6\x67\x94\x98\xe5\x0b\xf8\x5f\x05\x70\xdc\x8d\x23\x2a\x91\x75\xfa\x7b\x36\xc2\xc1\xb0\x80\xf3\x04\xdd\xa4\xac\xf6\x78\xbe\xce\xc4\x0b\x78\x9a\x22\x77\xf9\xa5\xc8\x9a\x3a\x20\x67\x1b\x9d\xb4\x52\x62\xae\x4b\xcc\x62\x44\x23\x7d\x5b\xef\xbb\x3f\xe9\x28\x72\x83\x6c\x95\xc2\xbc\x10\x06\xee\x66\x74\xbc\xe6\x83\x24\x4c\x91\xb4\xc4\xed\xa1\x68\x61\x8c\x32\x8c\x2c\x48\x03\x30\xa1\x0f\x4d\x02\x8a\xe7\xfc\x1a\x24\xeb\x17\x75\x90\xf2\x10\xf3\x96\xff\xb9\x40\xf5\xb9\x50\xf8\x14\x93\xed\x2e\x48\x95\x25\xbe\x71\x04\xf1\x96\xa2\xc1\xb7\xe9\xd0\x46\x5f\xb3\xa2\x79\xb4\x55\xdd\x78\xc0\x8d\x5f\x21\x05\x5b\xcd\x70\x44\x59\xbf\xbb\xaa\x3c\xfd\x01\xe3\x3a\x3c\x16\x08\x1e\xa0\xf2\x6b\x01\xef\x8b\xba\x2e\x55\x36\x25\xf9\x67\x81\x90\x69\x38\x14\xbf\xbc\x2b\xab\x6d\x55\x22\xd2\x04\xc4\xbc\x60\x12\x0b\x24\xa1\x68\x85\x6b\x50\xed\xd3\xd5\xab\xfd\xb7\x7d\xd9\xc7\x2d\x02\x19\x05\xc8\x9d\x25\x8a\x26\xfb\xcf\xc5\x63\xce\x58\xa0\x5a\xd3\x72\x00\x1e\xc0\x01\xed\xa9\xeb\xbe\x58\xf5\x2a\x4a\x91\x50\xe3\xa5\xc8\xf2\xd2\x32\x80\xed\x45\x96\x5f\xab\x8c\xb3\x40\x69\x4b\xda\x55\xf7\x3a\x1f\x5f\x1c\x38\x81\x16\x3a\x26\x5e\x7b\xa7\x3e\xee\x8a\x6b\xda\x09\xdf\x53\x06\x58\xa7\x88\x05\xb5\x07\x4b\xab\xd2\xbd\x92\x56\x16\x71\x96\x83\x69\x68\x38\xf9\x46\x10\x09\xac\x53\x3b\xe7\x5d\x7f\x48\x63\x09\x1e\xf4\xdc\x6e\x9c\xb3\xa1\xfc\xb6\x9f\xa1\xb1\x0d\xd8\x68\x80\xd3\x4e\x9c\x60\x99\x8b\xba\x5e\xe8\xf2\xdc\x80\x5e\x7c\x64\x93\x4a\xd5\x64\x72\x03\xa3\x24\x56\xa2\x1c\xf2\x01\x2c\x80\x05\xc6\x58\x76\x98\x23\x34\xbb\xd7\xec\x5c\xaf\xbb\x57\x09\x49\xcc\xad\x90\x1b\x1c\xd7\xf5\x0e\x9a\xcb\xb9\x6b\x49\x42\x4c\x2c\x2f\xaa\x06\xbd\xfe\xff\xa5\x45\x3f\xf7\x7c\x21\x91\x1c\x97\x60\x6b\x8c\x62\x22\x65\x29\x1a\x38\x96\x93\x14\x39\x0b\x29\xd3\x88\xef\x7c\xfc\x74\x80\xe4\x2f\x3c\xd2\x90\x8a\x18\x0b\x90\xef\x37\x0f\xb7\x87\xc5\xe3\xe6\xe5\x69\x7f\xf8\xe7\xd6\x2b\x11\xb0\x90\x45\x06\x61\x45\x16\xe2\x93\x95\xfa\x76\xa4\x65\xc5\x42\x16\x13\x3c\x8c\x07\xac\x80\xfd\xdd\x59\x4a\x92\x5e\x14\xea\x0e\xe0\xd7\x0c\xce\x2c\x64\xca\xc4\x1d\xdd\x44\x71\xe3\xa9\xc7\x59\x18\x84\x49\xc0\x7b\xff\x61\x9e\x42\x9d\x85\x81\x91\xbe\x3a\xb6\x3d\x39\x2b\x4b\x68\x7d\x2b\xa6\xe3\x13\x72\xab\x33\x0b\x3a\x6b\xb6\x50\xd5\xe5\xb5\xae\xf5\x4c\x81\x2b\x0b\x23\x1e\x47\xc6\x53\xf7\x5a\xa1\xb9\x5d\x76\x2c\x44\x73\xa9\xbe\xf0\x7c\xc2\x98\x02\x72\xbf\x67\xae\xea\xd7\x6b\x46\x4e\x9e\x28\x0e\x58\xe2\xc1\x56\x84\xfe\x09\x23\xf7\x27\x4c\x42\xae\xa1\x33\x3b\x5d\x48\xb3\x3b\x84\x07\xee\x4a\x98\x44\x21\x46\x40\xf6\x55\xe6\xf7\xc6\x30\x4d\x83\x91\xf3\x85\xd4\x08\xe3\xa7\x14\x34\x46\x02\xe4\xbf\xc8\x36\x4f\xde\x4d\x70\xab\x9d\x5b\xc0\x47\xb3\xf5\xa7\x6b\x28\x12\x8a\xab\x7b\xbf\xda\xed\xfb\x99\x24\x52\x8e\x0a\x3f\xcb\xfd\x6e\x10\x3e\x0c\x65\x28\x31\xbe\xb4\xff\x73\xb9\xd9\x3c\xcd\xc5\x07\x86\xa6\x45\x28\x23\x1b\xbe\x55\x65\x51\x5f\xae\x39\x53\x7c\x2f\xb0\xec\xd9\xbd\xa5\xa4\xe1\xe3\x0b\x70\x12\x0b\x15\x55\x9e\x27\xe8\xa9\x74\x10\xc9\xbe\xfc\x7a\xfc\x99\x54\xc8\x31\xd3\x6b\xcd\xc0\x51\xf6\xe6\x7f\x82\x3e\xc2\x18\xfc\x3f\xdf\x5f\x29\xcf\x7f\x94\x15\x68\x13\x5b\x70\xd3\x95\xec\x02\x0b\x75\xa4\x51\xfe\xe4\xfd\x33\x2f\x2f\xc3\x83\x3f\xd4\x8a\x61\x64\x41\x67\xdd\xb6\x03\x11\xe0\xb0\xdd\x3e\x2d\xbe\x64\x80\x61\x21\xc4\xa1\x65\x49\xc3\x04\xa9\xbd\xe7\xf8\x47\x0d\x65\xb1\x53\x65\x7c\x82\xf7\x81\x14\xfd\xd4\xa7\x1e\xed\x9a\xdd\xc5\xa1\x07\x96\x74\x81\xf1\x88\x10\x81\xf9\xea\x2b\xb1\xce\xf9\x67\x8c\x68\x22\x62\xb7\x64\xbf\x97\x0d\x54\x75\x27\xbd\xda\xfe\x4f\x7f\x57\x2a\x12\xe1\xb2\x21\x56\x5a\x43\xce\xd0\x3d\x0c\x67\x4a\xc4\xb8\x65\x9c\x39\x8b\xcf\xcd\x65\x7c\x60\x4c\x76\xd5\x88\xa5\xc6\x18\x1f\xb9\x31\x50\x55\xd7\x36\xb5\xef\xa9\x23\xe5\x44\x0f\x4f\xe7\xe6\x11\xc9\xd4\x71\x5b\x73\xed\x41\xc2\xb1\xae\x61\x97\x9d\xce\x39\x0c\x1d\xa3\x28\x30\xc6\x50\xa7\x26\x94\x89\x7c\x59\x16\xc7\xeb\x03\x36\x0a\x99\x91\x96\x34\x06\x29\xa9\xf1\x93\x21\xf1\x1d\x7a\x09\x83\x04\x44\x14\x06\x91\x13\x06\x6a\x84\x7a\xed\xfe\x1a\xa7\x48\x4d\xe8\x53\xd0\x1d\x5c\x77\xae\xca\x89\x45\x11\xb5\x98\x26\x8b\x27\x9f\x85\x1c\x4f\x07\x2b\x0a\x8d\x07\xb5\x79\x3b\x32\x8a\x22\x89\x5c\x82\x2f\x4f\xeb\xfd\x4f\x36\x79\xa5\x88\x4b\x1d\x4f\xc4\xde\xc7\x40\xe8\x09\xea\x82\x45\x91\xd0\xd4\xca\x4b\x99\xcb\x11\x06\xdb\x45\xc4\x43\xe2\x69\xc7\x37\xd5\xd2\xf1\x79\xc2\xcf\xac\xbc\xd4\x77\x00\x3f\xb2\x42\x7b\xb1\x74\x16\xf1\xc4\xd2\x34\xa3\xe6\x8b\x67\xe0\x1b\x1b\xac\x51\x1c\x12\x0e\x3e\x37\x76\x9a\x66\xa2\x51\x65\xc6\x88\x6e\x05\xf9\x3d\xbf\xfd\xec\x37\x0f\x5f\xcc\x91\x34\xa0\xd1\x94\x67\x61\xe9\x23\x39\x51\x1a\x04\x18\x40\xd8\x9d\xc4\x44\x43\x86\x45\xa9\x66\x98\x78\x7e\xc8\x0c\xec\xa0\x39\x10\x12\xf9\xcb\x04\xd5\x48\x26\xb4\xdd\xdc\x7e\xeb\xfe\x96\x12\x3c\x8c\x9e\xe0\x7d\xa4\x37\xf3\xb7\x1c\xac\x48\xf2\x28\xb6\xd4\x45\xf5\xcd\x34\x6e\xe7\xfd\xd5\x48\x85\x56\xcd\x4a\x7d\x4a\xa8\xac\x7e\xca\xf8\x91\x55\x14\x61\x39\x5a\x87\x6c\x05\xd3\x0c\x71\xad\x2c\x52\x40\x90\x02\xec\x60\xbf\xff\x90\x65\xea\x6a\x3a\x2a\x93\x7a\x82\x9b\xc5\xb1\xca\x50\x78\xa5\x3d\xe5\xe0\xa3\x99\xfe\xae\xd1\x51\x6a\x53\xb7\xdb\xaa\x3c\x65\xf9\x75\x5a\xc5\xf5\xd4\x22\x86\xe1\xc9\xe6\x3c\x58\x4f\x80\xe1\x7a\x99\x90\x20\x89\x99\xbc\x7c\xae\x8b\x5d\x7b\x9e\x6b\xd1\x37\xa6\x36\x26\x51\x37\xe5\x79\xdd\x74\x7f\x55\x90\xb8\x78\xe5\x3d\xc6\x68\x6c\x55\xe1\xf8\x41\x5b\x3b\xc3\xa2\x82\x3d\x7d\x32\x46\x19\xe0\x72\x72\x84\xfa\x93\x30\x20\x27\x32\xb5\x75\x87\x2e\xd4\xef\xf2\x39\xae\x95\x26\x31\x42\xba\x6d\xf1\x90\xd7\x46\x1c\x62\x56\x18\xa7\xca\xc6\x80\x1d\xa9\xb0\xdb\xc8\x17\x5a\x4f\x6d\x0e\xce\x94\xc6\xd0\xc7\x7b\x55\x96\x27\x7f\x79\xc0\x81\x47\x63\x55\xf9\x91\x96\xf0\xac\x61\xc4\x03\x01\x58\x3d\xbf\xdd\x7c\xbb\x0d\x68\x77\x2f\x48\x30\xf4\x50\x95\x17\xcb\x66\xa0\x27\xec\x42\x8c\x07\xc6\x26\x9f\x06\x7a\x88\x75\x77\x7d\xe8\xea\x4a\x7e\x2f\xdf\x5c\xee\xc0\x37\x44\xa1\x72\x10\x8d\xfb\x32\xd7\xb7\xa2\x11\xb7\xa5\xba\xf4\xb1\x0d\xd7\x2f\x8a\x39\x16\x0f\xf9\xba\x9a\xdd\x15\x42\x9d\xf1\x76\xc1\x5e\xe1\xfe\x66\x0d\x9f\xc4\x5f\x21\x52\x4c\xa8\x7f\x17\xf9\xe7\xa5\x11\x63\x84\x07\xe3\x3c\xb2\x4e\x44\x0d\xcd\x30\x92\x3f\xfe\x55\xce\x35\x42\x9e\x4e\xe2\x0d\xee\x2f\x53\x05\x46\xc6\x79\x62\xe3\x68\xdf\xb3\x3a\xeb\x3e\x6d\x1c\x10\xc4\x74\xf4\x98\xc8\xae\x45\x32\xe4\x7e\xfa\x09\x15\xe8\x4c\x35\x97\x53\xdf\x12\x10\xdd\xed\x60\x8e\xda\x60\x32\x11\x12\xce\xb0\xfc\x28\xc3\x7a\x98\xb9\x65\xc4\x13\x11\x0c\x54\xdd\x10\x33\x54\x67\xc7\xc9\x7d\xd2\x90\x01\xf2\x0e\x95\x79\x3e\x4b\x21\xf4\xeb\xf4\x05\x4f\x35\x03\xa7\x88\xf0\x04\xef\xdb\xb2\x11\x0d\xe6\x9a\x6b\x47\xa1\x39\x19\xa3\xd4\x50\x1c\xe8\xd6\x66\x5e\x4c\xda\x84\xab\xca\x74\xf0\xaf\xf6\x9b\x3e\x7f\x85\xe1\x66\x5c\x1a\x4b\x53\xd9\x6e\x27\x42\xbd\xb5\x93\x64\x2e\x89\xc0\x35\x33\x48\xac\xf4\x06\x9f\x1e\xab\x38\x90\x69\xf5\x9d\x74\x8c\x38\x96\xd7\xf2\xfd\x51\x14\x36\xac\xb8\x2e\x7e\x40\xb6\x2f\xad\x20\xe1\xee\xf3\x24\xcb\xbc\xa7\xbe\x61\x1c\x98\x4c\x7d\x61\xb7\xf8\x54\xa2\x2a\xb2\x89\x6c\x48\xdb\xc7\x1e\x8a\x27\x2c\x34\xe9\xae\x84\x30\x76\x21\x9c\xc3\xcf\x29\x2b\x80\xed\x13\xd3\x24\x42\x5e\xcf\x1d\x14\x9a\xde\x83\x67\xff\x62\x31\x93\x04\x63\x67\xaa\x1e\x6b\x28\xb1\x98\x69\xc3\xe3\xee\x73\xbb\x59\x33\x1b\x13\x88\x99\x49\x90\xb6\xc7\x06\xe0\xac\x86\x81\x6b\x0a\x98\xad\x90\xf2\x50\xb4\xad\xa8\x3b\x39\x01\x16\x07\xa1\x25\x33\x71\x86\x81\x78\xff\x82\x89\x62\x7e\xb2\xc4\x61\x6b\x0d\x60\xc4\x28\x53\x6f\xcb\xb2\xf8\x09\x55\xb3\xad\xb2\xb2\x42\x54\xbb\xbe\xce\xfb\xff\x6f\xa2\x70\x71\x18\x84\x18\x85\xfb\x29\x2e\x79\x33\xa6\xd0\x60\x71\x94\x08\xcc\x8c\x75\x14\x81\x5d\xbe\x3c\xe6\xc4\x92\x30\x0d\x24\x75\xa1\xb2\x95\xde\xdd\xe0\xb6\xbb\x25\xf5\xe7\x49\xb1\x3a\x41\x75\xec\x6b\xe1\x58\xcc\x39\x47\x6c\xae\xcc\xf4\x6a\x9a\x26\x8a\x79\x1c\x87\x6a\x70\x3e\x3c\x7b\x12\xd4\xee\xee\x71\xc8\xed\x93\x23\x20\x03\xb9\x80\xba\x26\x1e\xfa\x14\xa5\x05\x1e\xaa\x89\xc7\x1e\xa7\xcc\xd6\x49\x22\x8d\xf3\xf6\xb5\x84\x22\xfb\xe8\xcc\xdb\x38\x4d\x14\x4e\xc1\xc7\xc5\xd3\xb7\xc5\x7e\xbf\x78\xda\x3e\x6f\xfe\xf9\xe7\x62\xb9\xbd\x79\xf8\x7e\xdb\x75\x32\x22\x74\x65\x33\xce\x51\xed\xae\x17\x71\x8a\xe6\x04\x82\x76\x90\xe5\xbd\x7f\x36\xa1\x08\x4a\xb4\xdf\x43\xeb\x91\xef\x20\xcf\x3b\xa0\x81\x8f\xf5\xc6\x42\x0b\x04\x12\x61\x81\xc0\xaf\x54\xb9\xa7\x80\x87\x91\x41\xeb\x6e\x26\x0d\xc7\x72\x4f\x68\x5e\xcb\xaa\x86\x4d\x25\xd4\x8c\x09\x3c\x25\x4c\x63\xb1\x8a\x43\xe1\x31\x39\x2b\x4b\xe4\x35\x9b\xcb\x89\x95\xd0\xb6\x58\x58\x7c\x64\xa7\xcb\xa9\xcf\x88\xc5\x9a\xda\x0a\xed\x7b\x70\xfc\xab\x4b\x51\xe9\x5e\x3b\x87\xc5\x3a\xb0\xbc\x06\x18\x6a\xdd\x7f\x58\xd6\xcd\x9e\x11\xbc\x7b\xb5\x61\x0e\x2e\xd6\x51\x80\xf6\xe0\x8f\x32\x7f\xeb\x6e\xa4\xe3\xc4\xca\x9c\xde\x21\x53\x46\x67\x71\xbb\x76\xa0\x21\xe6\x1b\x5c\x42\xe2\xd6\x43\x65\x7d\x33\xe3\x98\xba\xb3\x71\x87\xe5\x15\xbc\x97\xc5\x26\x4a\x31\x4e\xbf\x5f\xff\xf3\xde\xf2\x76\xcd\x99\xa0\x5f\xfd\x3b\xbf\xb2\x4d\xca\x03\x47\x8f\xba\xb1\x26\xed\x78\x33\x9e\x76\x97\x01\x72\xf7\x3d\x96\xb5\xc8\xda\xe3\x62\xba\x5c\x8d\x16\x88\x54\x76\x74\x2f\x3b\x71\x12\x55\xd6\x08\xbf\x61\x27\x34\xa4\x54\x0e\x98\xb3\x17\x85\xb6\x55\x71\xf3\xa7\x45\x42\xe3\x00\x8d\xcf\xc3\xc8\x64\xf0\x7c\x0e\xae\x13\x0b\xa5\xec\x28\xdf\xee\xb2\x62\x5e\xa0\x84\x25\x4c\xa7\x86\x0d\x63\x15\xf5\x08\xcf\xcb\x92\x30\x11\xb8\x4d\xee\x97\xfb\x11\xbe\x6a\x2e\x3e\x92\x84\x82\x1b\x31\xe0\x38\x74\xe5\xbe\x1d\xea\x32\xf1\xfd\x24\xc1\x82\xb2\xa3\x38\xc1\xb3\x28\x74\x59\xd0\xee\xf7\x20\x41\x1f\xf6\x7c\xa9\x5f\x0f\x65\xe5\xa8\x54\x0f\x6f\x13\xd6\x62\x96\x44\x91\x34\x56\x65\x17\xd4\xdb\x0d\xd4\x57\xb2\x00\x93\x37\x8d\x22\x4b\x50\xee\x7d\xd3\xaf\x02\x03\x93\xd1\xe6\xb1\x8e\x6d\x7d\xec\x59\xcc\x93\xc2\xb0\x84\x4b\x2b\x07\x6a\x41\x66\xeb\xe5\xa6\xb5\x8e\xee\x57\xf4\xe0\xf9\x74\xfc\x91\x97\xc4\xce\xc4\xd0\x65\x01\x22\xaf\x40\xe8\xab\xe5\x3b\x58\xec\x49\xac\x85\x66\xc3\xca\xe6\x9b\x4f\x1b\x21\x5f\x8f\x65\xdd\x58\x12\x43\xca\x87\xbc\xed\x93\xaf\x98\x50\xab\xbc\xdd\xb8\x1a\xca\x85\xcf\xa8\x75\x1d\x12\x83\xf1\x0a\x97\xd5\xdc\x56\x70\xca\x2e\xa7\x39\x26\x86\xaf\x44\x64\x58\x92\x18\x81\x07\x3d\x88\x2a\xff\xf4\x88\x8c\x89\x65\x99\xa4\x94\xda\xc4\x95\xf5\x9e\x73\x51\xc0\x34\x95\xe9\x7a\x0a\x65\x95\x41\x10\x37\x84\x99\x0d\xd7\x20\x63\x8b\xcf\xf6\x5f\xb2\x35\xd6\x2e\xf2\x0f\xf8\xbc\x2b\x87\x52\x48\xe3\xa9\x29\x63\x89\x25\x6e\xdf\x45\x2d\x54\x6f\x2e\x27\x52\x9a\xd0\x05\x80\xd6\x0d\x9c\xa6\xb6\xde\xe4\x99\xa4\x31\x91\x8d\x39\xa9\x7d\x79\x2b\x3e\xa7\x6f\xa7\x98\x36\x9e\x3a\xfd\xef\x19\x12\x89\x8a\xad\xe6\xed\xf3\x45\x7f\xd6\xc3\xc0\x5b\xa2\xa4\x8d\x8e\x57\x03\x81\x43\x96\x28\x27\xbe\x77\x12\x1f\xff\xb8\x88\x02\xbd\xa3\xba\x6b\x04\xea\xf5\xcc\xfe\xc8\x8a\xa3\x2e\x4f\xfb\xcf\x33\xfc\x36\x1a\x09\xcd\x12\xac\xe6\xd7\x59\xdd\xce\x11\x6b\xbb\xd4\x48\x7a\x30\x98\x7a\x3a\x8c\x63\x37\xfa\x7b\xf1\x36\xe0\x63\x9f\x2c\x2b\x6d\x0c\xed\xf8\xdd\xcf\x63\x5d\xa7\xf1\x14\x85\x90\x4a\xe7\xb1\x6a\x38\x37\x6a\x08\x80\x98\xdc\x14\x22\xcb\x59\xee\x32\x37\x37\x65\x31\x4f\x2f\xcf\x12\x48\x2c\x5b\x49\xa6\x4a\xf4\xae\xa6\x1f\x04\x52\x86\xe7\xfa\x9f\x17\x51\x3c\x64\x62\x88\xdb\x66\x29\xe1\x01\x16\xa1\xe8\xac\xb6\x62\x06\x1d\xa7\xe5\xe8\x26\x29\xd1\x1c\xd1\x4b\x50\x34\xd5\xe7\x1d\xc0\xa1\xbb\x81\x96\xe8\xb9\xc8\xcb\xe7\xaa\x80\xea\x78\xc5\x68\xf9\x7f\x27\x37\x02\x8a\xe0\xd0\x53\x56\x34\x37\x97\xcf\x2f\xbc\x3d\xd7\x99\x05\x94\x93\xce\x87\xe8\xf9\x00\xbe\x2c\x93\xba\xba\x3e\xc0\x60\xde\xdd\xe6\xf9\x70\xb7\x79\x79\xea\x14\x9e\x59\xca\x12\x19\x5a\xe2\xed\xf5\xb9\xb4\x99\x95\x4d\xa7\xae\xd7\x36\x6b\xde\x97\x1d\x8d\x94\x17\x47\xa3\x9f\x06\x91\xf2\x42\x90\x8e\x85\xae\xf7\x47\x6c\xc1\xca\x6f\x93\x0b\x62\x70\xac\x73\xcd\xa5\x2a\xd6\xf8\xb8\xbf\x8d\x9e\x3a\xe4\x04\xb3\xf7\x96\x63\xae\xa9\xac\xc2\xe7\xe9\x3a\x67\x91\x86\xb1\x35\x16\x35\x5c\x6a\x68\x7c\x0c\x32\x0d\x53\x83\x56\xbf\xdb\x30\xcb\xcb\xf1\xb5\x99\x5e\xe9\x32\xb9\x59\x91\x35\x56\xb1\xcc\x35\x44\x6e\x73\x42\x12\xa7\x29\x85\xe8\x2f\xeb\x23\xae\xeb\x21\xc6\x1f\x23\x02\x88\xe4\xd8\x21\x6c\xcd\xcf\x97\xe7\xf5\x68\x71\xa6\x3c\x49\x12\xb7\x1d\x75\x49\x80\x89\x41\x91\xf2\xd4\xd1\x3d\xa2\x77\xb4\xb8\x34\xaf\x93\xf7\x8b\x13\x88\xe2\x8e\x8a\x19\xf4\xc2\xf4\x2e\x42\x9a\xb0\xd0\xe2\xa1\x7c\x48\xc8\x62\x07\x7e\xb9\x49\xa5\x89\x4c\x95\x5b\x66\xed\x44\xf1\xa7\x75\x9a\x12\x8e\xa0\x45\xfb\x5a\x56\x3b\x66\x07\x0d\x06\x8d\x26\x86\xc2\x24\x80\x33\x7a\xeb\x94\x51\x4c\xba\x3a\xee\x68\x38\x9d\xcb\x4a\x54\x5d\x6a\x7c\x0e\xf3\x95\x8a\x20\xc0\x49\x7a\x53\xea\xcf\x47\x51\xd7\x03\x36\x0d\x96\x8a\x30\xc5\x53\x5b\x8a\x01\x65\x00\x4b\x25\x09\x11\x3c\x79\x16\x97\x1a\x1e\xcb\x2e\x7f\x9f\xca\x88\x21\x2b\xf9\x3b\x64\x3b\xd5\x03\xbf\x53\x99\x4a\x65\x99\x79\x32\x84\x9a\xee\xcb\x97\x22\x73\xfc\x22\xe3\x11\x52\x46\x05\x6c\x38\xac\xdf\xb3\x4a\xe4\x1e\x80\x39\xee\xab\xb5\x46\x81\x17\x53\x56\x90\x1d\x8b\x19\xb6\xb9\xf1\xf0\x68\x13\x21\x81\x0a\x0a\xc3\x1d\x7f\x1b\x8e\x02\x48\x4a\x5c\x9e\x41\x8c\x29\x08\x58\x6a\x02\x4b\xe5\xea\xe0\x98\xab\x7e\x1c\x4c\x68\x75\xca\x4e\x59\x71\x03\xcd\x80\xcc\x95\x09\x12\x70\xed\xe8\xb9\xd8\x10\xfa\x2c\x68\x94\x20\x2e\x4b\x36\xca\x39\x2b\xbe\x01\x54\xe2\xb2\x92\xbb\xf2\x04\xcd\x6b\xfb\xf1\x27\xa8\x29\xc1\x62\x13\x48\xcf\xc7\xf4\x13\xf2\xf2\xdc\x3b\xf4\xae\x4b\x00\x02\x75\xaf\xbd\x09\x53\x78\x3a\x99\x71\x01\x14\x13\x61\x90\x60\xc8\xcc\x54\x4e\x28\xf5\xd6\x61\x1a\xc6\xc3\x2c\xc2\x98\x22\x4a\xcc\x86\xf5\x66\x92\xe0\xbe\x5f\x9a\x06\x6a\x90\x80\x01\x3d\x03\xc1\x12\x3c\x88\x70\xdd\x7c\x1b\x1c\xed\xae\x29\xa6\x14\x63\xb1\x5d\x5d\xf1\x5d\xaf\xc9\x72\xb5\x5b\xf4\x67\xac\x88\xa3\x20\xb0\x98\x0c\xd1\xbc\xde\x8a\x46\x1c\x04\x4d\xfd\x70\xc4\x29\xf1\xda\x07\x88\x40\xde\x96\x59\xd1\x78\xd2\x98\xd9\x13\x43\xc4\x42\x61\x72\xa4\x12\x6f\xdd\xd7\x89\xa5\x95\x2c\xc3\x62\x50\x0b\x01\x9d\x96\x37\x88\xc4\x48\x14\xf9\x33\xe8\x76\xe4\x3f\x73\x87\x80\x99\x29\xbf\x11\x29\x21\x4e\xbc\xb2\x41\x04\xd8\xcf\x49\x89\x29\x13\x29\x53\x61\xe4\x50\x1a\x5e\x46\xbc\xb5\x5a\xfd\xaf\xb5\xa3\xed\x88\xc5\xff\xb8\xf8\xb3\x58\x88\x98\x62\xd8\xc1\x9e\xf8\x87\x77\xcc\xa5\x1c\xa0\xd0\x07\xd9\x6b\xd3\x30\x21\x64\x14\x58\x0a\x85\x13\xe6\x96\x2e\x55\xeb\x40\x74\x78\x3a\x21\x94\x15\xb5\xce\x0a\xe5\x61\xd6\xbe\x05\x84\x0f\x72\x79\xc9\x4d\x9b\x0c\x98\x10\x4e\x31\x21\xd3\x30\x08\x3a\x09\x69\xa7\x1f\xa0\x57\xfb\x72\xff\x0a\xdf\x44\x6e\xf0\x3f\xa6\xd7\x48\x8a\xb1\xe2\x9e\x42\x6a\x14\xf2\x9e\x47\xfa\xba\x6b\x55\x64\x90\xa6\xdc\x58\x31\x47\x07\x97\x74\x8d\x3a\x90\xb1\x25\xe6\x10\x3d\x85\x19\x13\xc0\x83\xd0\x0c\xb9\xea\x4e\x30\xdd\x92\x04\x18\x1a\x58\x62\x0b\xd4\x5a\xb1\xd1\x3f\xa7\x4b\x38\xec\x3e\x7e\x1a\x43\x08\xfa\x70\x12\x9a\xe9\x82\x32\x54\xa2\x27\xfb\x52\x9c\x85\x7a\x5b\x28\x05\x75\x7d\x6b\xf5\xe9\x07\x7b\x92\x30\x61\x8c\xd1\xe0\x66\xc0\xcc\xb1\xc8\xfc\x87\x90\x84\x5a\xf0\x66\xd6\xf1\xd6\x2e\xea\x1a\x9a\xba\x1d\xd6\xac\x5e\x9c\xcf\x79\x36\x8a\x68\x4a\x12\x81\xf7\x82\x1c\x85\xfb\xf0\x81\x25\x49\x28\x52\x8f\xf8\x4a\x98\xef\x99\x86\xf2\x7e\xca\xbe\xc1\x24\x81\x14\x77\xdd\xd5\xe2\x79\xff\x6d\x68\x07\x4a\x62\x38\xc0\xf0\x07\x36\x66\x0e\x50\x22\x29\xa5\xdc\x85\xd6\x2d\x66\x15\x5d\xee\x2f\x72\xd5\xfe\x9a\x88\x89\xf6\x6d\xad\xae\x9b\x68\xe0\xa1\xac\xfb\x94\x8a\xa4\xa9\xa5\xb4\xce\x4e\x8b\x3c\xfb\x09\xdd\x9f\x85\x95\x5e\xf6\x7b\xa1\x0f\x65\x39\xa8\xa0\x98\xaf\x39\x65\x92\x9a\x20\x1d\xf0\x03\xaf\x8b\x9f\x65\xbf\xb7\x4b\xc6\x03\xac\x86\x40\xc0\x04\xa6\x8b\xd6\xb7\x7d\x5b\x8c\x36\x11\x26\xe4\xf2\x2b\x0e\x09\x26\x59\x22\x44\xe8\x63\x73\xbf\x40\xc1\x48\x06\xc2\xe9\x75\x59\xf7\xec\xdb\x8f\xe5\x2d\x9c\xc7\xdf\x8c\x19\x8a\xe7\x33\x2a\xa0\x5c\x4e\xb7\x99\x31\x99\xba\xe4\xcd\xe7\xfe\xb5\x82\xfa\xb5\xcc\xf5\x0f\xc8\xfc\xa3\x05\x5c\x5b\x76\x81\xa6\x3c\xef\xf5\x80\x55\x9e\xc9\x30\xd2\x98\x91\x42\x38\xfc\x8d\x50\x6f\xbf\x26\x14\x66\x32\x4c\x52\x6a\x49\xfa\xce\x3d\xae\x5a\x46\x2c\x34\x6e\x02\xf4\x6a\x7e\x5f\xdc\x21\x0a\xec\x17\x13\xd5\x98\x03\xa7\x6d\x91\x98\x98\x11\x4a\x55\x17\xd0\x0f\xd9\x7f\x26\x43\xc8\x0d\xa4\xee\x67\x16\xc7\x0a\x70\x11\xee\x46\x74\x65\x6d\x1f\x83\xbb\x63\x56\x23\x9f\xb0\x7e\x39\x4f\x6e\x12\xa7\x9c\x05\xfe\x3b\xac\xce\xa5\xea\xdd\x74\xd7\x23\x89\x39\xa1\x23\x9a\x99\x2d\x14\x7a\x30\xe9\xd2\xc0\xd6\x29\x7d\x5f\xed\xf6\xeb\xa7\xfb\x03\x3d\xdc\x2e\xf6\xab\xae\x35\x0a\xd1\x53\x3e\x97\x65\x7e\x07\xc3\x52\x1d\x99\x72\xc9\xdd\xce\xb8\xde\xde\xed\x86\x64\x8d\x63\x67\x4f\xa6\x32\xc6\x32\xc8\x9b\xd5\x1e\x7f\x62\xb3\x5d\x3d\xed\xba\xdb\x48\x4b\xe8\x25\xf4\xbf\x2f\x75\x6b\x7e\xfc\xd7\xea\xd3\xb4\x66\xea\x8f\x01\x04\x67\x3c\xf0\x42\x59\xa6\xb2\x63\x25\x8a\x66\xa1\xad\xc0\xb9\xc8\x11\xde\xfb\x05\xc0\x4c\x0a\x08\x52\x5f\x77\x02\x05\xa8\xcc\x64\x62\x9a\x45\x96\x92\x58\xed\x16\x4b\xe3\x3a\x48\x78\x4a\x19\x9a\xc8\x71\x53\x42\xd1\xfe\xdc\xa3\xf8\xe8\xda\x84\xc6\xb8\x1f\x7a\x29\x17\x1b\x68\x1e\xff\xb8\x22\x1a\xcb\x1f\xc5\xf9\x0c\x85\x5e\x15\xaa\xfa\x3c\x37\xc8\x5b\x3e\x0f\x17\x97\x2a\x90\x89\x9f\x1f\xd5\xf1\x72\xbd\xa5\x4b\x95\x26\xe8\xdc\x48\x51\x67\xca\x81\x60\x87\x1f\x48\x09\x89\x7c\x6b\xae\x74\x60\xb1\x5c\xae\x1e\x56\xcf\x8b\xfd\xc6\xbb\x7e\x52\x73\x8d\x55\x87\xaf\x59\x8f\xdf\x95\xda\x30\x04\xa4\xe1\xd0\x5a\x08\xd2\xea\x76\xf5\xcf\x2f\x06\x15\x52\xcb\x78\x58\xcd\xeb\xa4\x0d\xac\x05\x09\x32\x45\xea\xa9\x5a\xbd\x82\xbe\xe4\x70\x5b\xae\xa7\xaf\x64\xa8\x60\xae\xb8\xbf\x7a\x28\xd5\xdb\x8b\x87\x30\x4a\xc3\x2c\x91\xc6\xf3\xc6\xe6\x1b\xef\xee\xba\x96\x54\xdb\xb4\x53\x2e\x6a\xcb\x81\xa9\x4a\xfd\xd7\x64\x45\xfe\x6a\x29\x30\x80\x8a\xfa\x86\xa8\xe0\xd8\x1a\xf5\x4e\x5f\xd2\xf7\xd1\x0a\x09\xab\x9f\x85\x31\x39\x8a\x19\x16\x47\x78\x28\xcb\xf3\x78\xcd\x2b\x12\x0b\x6d\x0f\x33\x7d\x77\x69\xad\x11\xbf\xfd\xb8\x76\xaa\x09\x9e\x5d\x87\x4e\x15\x60\x4c\x3b\x3f\x7a\x32\xc5\x28\xe0\x8c\xf9\xd7\xb7\xf5\xb7\x97\xf5\xfd\x8b\xdf\xa0\x14\x8b\x54\xa7\x17\x10\xf7\x7f\xd4\xde\xf0\x3e\x38\x1b\x7f\x4c\xfd\x31\xff\x23\x01\xb1\x20\x9d\xce\x53\xd9\x35\x70\x1e\x7f\x14\x15\xea\x14\x6f\xfd\x2a\x6a\x4c\xe4\xb7\x1b\xe2\xbe\x7c\x06\x95\xc1\xcf\x39\x6e\x6d\xa6\x42\x43\x79\xd2\x11\x65\x5a\x5c\x32\xc0\xb6\x2a\xa7\xb7\x8e\x28\x8f\x5c\x8d\xc1\x00\xf0\xf5\xaf\xb2\x98\x1c\x38\x2a\x92\x2c\x76\x59\xd1\x87\x21\xb4\x61\x9a\x5e\x71\xdd\x39\x85\x01\x01\x9a\xf7\x99\xb7\x65\x39\x3a\x79\x14\xe7\x02\xe2\x1e\x07\xdd\x0e\x9c\xb2\x75\xcd\x07\x9d\x99\xd6\xfa\x2f\x14\x1c\x0c\xe2\x33\xfc\x40\xf3\xd4\xe2\x3a\x9b\xd6\x53\xbe\x5d\xac\xe7\x37\x28\xc5\x85\xb0\xe5\x6f\xd9\x51\xfd\x05\x92\x50\x71\x01\xd4\x51\xb9\x8e\xab\xe0\x5c\x7b\x12\x30\x8b\x76\xcf\x41\x54\xa8\x44\x36\xb1\xc9\x5d\xbf\x34\x64\xb1\xa5\xad\x52\x9f\x2a\xef\x35\x29\xc6\x4f\x26\x94\x0d\xe8\xd4\xd0\xbc\xec\x6e\x6f\x1a\x35\x69\x97\xad\x0f\x87\x27\x86\x13\x15\xad\xb1\xe8\xc0\xef\x0f\x4a\x69\x82\xb0\x21\xc4\x6e\x8e\xb8\xe8\xbf\xac\xa2\x54\x3a\x02\x94\x32\x41\x5e\xd4\x1b\x68\x26\x0b\x07\xa8\xc1\x19\xf6\x3d\xfb\x50\xa5\xe3\x23\x67\xbf\x1c\x32\xe0\x14\xad\x97\x63\x5e\x4a\x91\x3f\x42\x33\x64\xae\x65\x0a\x52\xab\xd3\xed\xc9\x5c\xbf\x97\x0d\xd4\xcb\x8e\x5d\x9e\x29\xd0\x04\xe3\x8f\x37\xfb\xea\x52\x0f\x49\xb4\x98\x32\x34\xc6\xd1\x7e\xd9\xed\xc7\x11\xb9\x2f\x0b\xf3\x94\x89\x2c\x36\xe9\x5c\x65\x3f\xb3\x1c\x8e\xa0\xaf\x12\x0a\xa3\x79\xea\x2f\x4b\xad\xef\xda\x71\xbc\x16\x4e\xb3\xef\x8b\xc5\x6a\x84\x46\xb6\x83\xac\xbe\xbb\xe0\x19\xfe\xd4\xb9\x06\x9a\xe8\x00\x05\xcb\x36\xb7\x74\x88\x5c\x75\xad\x94\x59\x4e\x83\xc7\xcf\x3d\xd4\xce\x5e\xf5\x5b\x87\xa6\xd2\xea\x23\x3b\x3b\x31\xff\xb4\x65\x73\x03\xd3\x4a\xb7\xbf\xad\x3c\xb1\xd8\x47\xe3\x8a\xcd\x26\x3f\x12\x50\x62\x52\xcf\x40\xd9\x9e\x9e\x13\xf8\x9d\x0e\x42\x46\x9d\xed\x7e\xe8\x83\x74\x3a\x24\x12\xbd\x3d\x0d\x46\x75\x86\xbe\x0e\x81\x20\xac\xf4\x2c\x3e\xd9\x57\x51\x37\xd7\x95\x13\x4d\xe3\xce\xc7\xd8\x42\xd5\xdb\x8b\x9a\x83\x4c\x62\xef\x1b\xfd\xff\x69\x7b\xb3\xe6\xc6\x71\xa4\x6d\xf4\xef\xf4\xc5\x5c\x10\x04\xc0\xe5\x52\x92\xe5\xb2\xa6\x6c\x4b\x63\xc9\x55\x3d\xdf\xc4\x1b\x0a\x2c\x09\x9b\xaf\x29\x52\x43\x52\x55\xa5\xfe\xf5\x27\x98\x00\xb8\x49\x72\xf5\x77\xe2\x9c\x9b\xa9\x1e\x13\xa4\xb8\x00\x89\x5c\x9e\x7c\x1e\x53\x86\x9f\x27\x65\x75\x1c\xb1\xd0\x7b\xff\x0a\x8a\x49\xd8\xa0\x13\x4e\xa9\xed\x7b\x41\xd9\x83\x79\xd6\xae\x6d\xe7\xf3\x6f\x2a\x30\xd9\xaf\x61\xf0\xa3\x13\x95\xe0\xb4\x9f\x69\xfd\x24\x1a\xa8\xb2\x2b\x02\x01\x93\x1f\x50\x06\x53\x83\x58\xc8\x7a\xad\xa1\x42\xe4\xe9\x69\x42\x94\x1b\xea\xd4\x10\xcb\x64\x8c\x71\xdc\xe2\x75\x7b\x37\x79\xd7\x82\x04\x28\x0e\x6b\x3b\x64\x3a\xbe\x86\x7a\x3a\x8c\x5a\xe2\xa6\x55\xf9\xb4\x1b\xae\x02\x2d\xb8\x0e\x98\x7f\xa7\x9e\x3a\xec\xc9\x63\xbd\xfc\x28\x19\x9a\x58\xf6\x04\x17\x6b\x63\x10\x5d\xbc\x99\x70\x9f\x8c\x9f\x51\x32\xe2\x1a\xf6\x9e\x5f\xb7\xfb\x8e\xb9\xa6\xbb\x66\x44\x3c\xe9\xf6\xa9\xc8\x9a\x3b\x30\x50\xd4\x16\xe6\x73\xcc\xb3\xbf\xc1\x42\x38\x98\xb7\x52\x18\x8b\x25\x87\xba\xd9\x97\x05\xac\x0a\x04\xa6\x2c\xff\x3b\xb7\xf6\xa7\xfb\x4d\x47\xf2\x76\x14\xe7\x45\x79\x40\x12\x91\xed\xb1\x2c\xea\x29\x7e\x45\x4b\x13\xe9\xb0\xef\x01\xbd\x07\xd8\xf9\x96\xc5\xab\x21\x9f\x56\xd4\x96\x0b\xdc\x1b\x72\x20\x3b\x6f\xda\xb5\xe2\x02\x53\xbc\x88\xcf\x15\xa3\x1c\x98\x56\x09\x78\x89\x85\xd5\xb7\xfd\xcb\xa4\x07\x4a\x2b\x48\xbc\xfa\xfd\xb2\x56\x27\xc8\x45\x77\x66\xeb\x67\x60\x9d\x76\x39\x7b\xda\x7f\x5d\x2e\x37\xab\xe7\x2f\xdd\xb1\x54\x22\xba\xbf\x81\xc3\x11\x37\xfc\xa1\xe1\xd4\x5a\xdb\xd4\xf4\x1b\x34\x8f\x2f\x8b\x6b\x54\x24\x5a\x03\x53\xda\x97\xbd\x5a\x6b\xf0\x84\x42\xb9\x5d\x02\xc8\x0d\x83\xd0\x12\x91\x29\x6c\x0e\xf9\x06\x55\x66\xce\x5f\xe1\x3c\x44\x9b\x5f\xa4\xc9\x47\xbb\x82\x36\xc4\x26\x26\xd1\x11\xf5\x32\x10\x23\x77\xe3\x92\x48\x03\x02\x42\xbc\x93\x6f\x53\x99\xd7\xca\x89\x10\x84\x12\xc3\x52\xec\x84\x5d\x76\xa6\x08\x08\xa1\x18\xa0\x9b\x9e\x89\x76\x4c\xc0\x38\xb9\x0e\x09\xe3\xd0\xa2\x50\xfe\xdc\xb7\x73\x78\xd9\x71\x76\x40\xc8\xed\x87\x6f\xad\x03\xef\xfe\x28\xad\x95\xb6\xb9\xed\xcf\xdc\x3f\xa0\x31\xb1\xc4\x03\x1f\x79\x59\xd7\x5d\x55\x0f\x68\x9a\x60\x8b\xc0\xe1\x94\x37\xcf\xa7\x03\x58\x4a\x3d\x77\x90\x91\x10\x53\xf3\xed\x43\x7f\xc0\xe6\xd4\x74\x07\x22\x8b\xe1\x6b\xca\x1c\xda\xd7\xb9\x3d\xc9\xeb\x8e\x0b\xf0\x84\xf3\xb8\x0f\x7f\x97\x6f\x6f\xdd\x4f\x73\x21\x6c\xbe\xad\x75\x28\xb1\x3b\xbb\x1a\xa4\x66\x20\x0a\x03\x6a\x37\xf9\xb2\x86\xbd\xec\x28\x7e\x43\x88\x28\xe5\xae\x65\x06\x4b\x94\x96\x50\x76\x34\xad\x20\x8a\xed\x6c\x3f\x0c\xa5\x4b\x43\x88\x0c\x41\xb6\x95\xb7\xec\x07\x52\x26\x40\x61\x6b\x39\x93\xb3\xe3\xd8\x18\x8a\x70\x9c\xbf\xa6\x47\x12\x96\x04\x63\x7c\xe6\xf6\xe3\xe4\x2f\x9f\x04\xb6\x1f\xa5\x6b\x36\x41\x46\xf6\xee\x28\x8b\x30\xbf\xe9\xcc\xfd\x40\xaa\xec\xd3\x3c\x0f\x24\x3c\xc6\x8d\x3d\x87\x37\x91\xd7\xe3\xd4\x36\x24\x2a\x89\x5d\xe9\xb3\x35\xf0\xed\x0d\x0d\x0e\x59\x22\x3c\x71\x90\xb7\xca\xce\x90\x68\x83\x31\xff\x6a\xb1\xde\x7b\x61\xcf\xc5\xfa\x79\xf7\xb2\x9a\xbf\x0e\x1a\xf5\x21\x25\x21\x4b\x3c\xc5\xaa\x18\x8b\xf7\x85\x90\x72\x13\x39\xf9\xae\xf2\xd4\xec\x8b\xb2\x3a\x60\xfa\xad\x9b\x4a\xa9\xb0\xb9\x07\x55\x1a\x0b\xb9\xab\xad\xa5\x70\xac\xc9\xad\x83\xa3\xde\xfb\x69\x29\xc2\x10\x03\x09\x9f\x78\xfb\x84\xe7\xba\x1d\xac\x53\x57\xc3\x98\x97\xe5\x47\x2f\xb9\x10\x82\x0c\x15\x52\xcc\xfc\xc8\xe0\xa7\xe7\x07\x71\x1d\x7b\xe3\x77\x2c\x25\x45\x97\xe4\x2e\x83\x1a\x2c\xc3\xcb\x06\xde\xba\xcb\x28\x86\xd4\xaf\xe6\x28\xaa\xc6\x26\x4f\x46\xa5\x45\x50\xc4\xaa\x17\xd4\xef\x62\x18\x83\x7f\x1a\x56\x80\x8e\x68\xe0\x8c\x4b\x9f\x37\xbf\xfe\x88\x3a\x8d\x3c\xf7\x6c\xa7\x1f\xd2\xa7\x6c\x01\x88\x46\x54\xd5\x09\x59\x6b\x66\x8d\x67\xb1\x19\x01\xab\xfc\x58\x16\x69\x8b\xf1\x3d\x8e\xba\x70\xc1\x24\x14\xf9\xdb\x66\xa7\xe6\x7d\x55\x64\xd3\x35\x61\x00\x42\x37\xd1\xf6\x03\x9d\xd2\x7d\x71\x3a\xec\x4b\xb3\x3f\x56\xe5\xbe\x12\x8d\xd8\x5b\xb7\x69\x8f\xe4\x6c\xd3\xc2\xaa\x09\x20\x42\xd2\xda\x8e\x93\xe9\x09\x9a\xf7\x52\x8f\xe7\xb4\x09\x4c\x88\xae\x9f\xb5\x6b\x93\x1a\xa5\x21\x91\x4a\x3a\xfc\x91\x8f\x4a\x26\xdf\xd3\x84\x3c\x32\x4e\x34\x77\xb5\xf6\xce\x80\x09\x4d\x82\x79\x5a\x91\xe7\x5d\xff\xc8\xa8\x1f\xcd\x50\x08\xb5\x75\xc9\x9c\xdb\xea\xfe\xce\xa8\x94\xb6\xf2\x00\xba\x57\xdf\x0c\x0d\xe3\x29\x96\x52\xf6\x07\xf1\x6b\xb4\xf7\x19\x96\x58\x72\xff\xed\x6a\xb6\x98\x6d\x1f\x16\xeb\xd5\x73\x77\x48\x18\xbc\x18\xd2\x42\x7f\xbd\x50\xc3\x0b\x0d\x83\x14\x5b\xeb\xbe\xe8\x63\xf5\xf7\x44\xba\x42\x13\x05\x56\x52\x7c\x94\xe3\x37\x91\x30\xd8\x06\x62\x17\xd0\xb8\x64\xfd\x39\x7a\xc4\x44\x46\x58\x62\x00\x77\x73\x65\x87\x6b\xda\xcf\x55\x79\x3a\x5e\x36\xda\xbb\x13\xe3\x20\xd5\x6e\xa6\x58\xfd\xe9\xab\x66\xcd\xc4\xb1\xc6\xec\x8c\x5d\x90\x48\xc8\xe1\x8f\x48\x48\x1c\x52\xff\x3e\x47\xd5\xd2\xd3\xb0\x3f\xfe\xc6\xfd\xc6\x9a\xe0\x27\xb7\xc6\xe7\xfe\xe4\xb9\x58\x43\x93\x70\x10\xae\x07\xc2\x36\xb6\x8d\x4f\x4c\xe2\x10\x71\x8f\x1e\x25\x37\xb2\xda\x26\x11\xa1\xf4\xd0\x52\x71\x5e\x9b\xef\x00\x93\x1e\x43\x93\x06\x56\xe3\xf5\x0b\x76\xf1\xb6\xfb\xe8\xb0\x73\xd1\xa4\xd4\xe0\xd7\xc4\x4a\x76\x56\xbc\x7d\xcb\x84\x2b\x73\x0e\x83\x50\x23\x88\x31\x8e\xa2\x63\xbf\x79\x59\x3f\xad\xf7\x5f\x56\x2f\x8f\xde\x03\x30\x22\xe1\xca\x33\x7c\xdf\x8b\x2c\xf7\xad\xf2\x7e\xee\xcc\xde\x44\x07\x3d\x32\x42\x70\x3d\x80\x59\xbc\x3c\x5e\x75\x5c\x8c\x30\x01\xed\x40\x16\x75\x53\x9d\xd4\x40\xea\x60\x3c\x54\x72\x4b\xd5\xdf\x41\x03\xef\xab\xf2\xf0\x3d\x6b\xde\x6d\x5d\x73\x48\x8d\x7c\xa3\x30\x35\xfe\xfa\x32\x26\x66\xd0\xe8\x60\x8b\x23\xdf\xa0\xd0\x65\x85\x5c\xf0\x93\x4c\xaa\x91\xb1\xc5\x42\x5a\x85\xc6\x6a\x6d\x76\x3f\xb3\xa6\x41\xb8\xda\xe4\x46\x35\xa0\xdf\xf0\xdf\x46\xa3\x3e\xdf\xe1\x22\x4c\x31\xd2\x58\x65\x60\xa1\x75\x57\x31\x9e\x0c\x51\x94\x30\x5f\x8f\xf1\xa9\xa4\xae\x80\xe0\xaa\x18\x1d\x4d\xc5\xf8\x06\x40\x71\xb0\x29\xf0\xa1\x79\x35\x60\x00\xb7\x34\x0d\x3f\x4e\x90\xff\x80\xcd\xa9\x68\x4e\x42\x65\xa8\xc2\x32\xda\x18\x8c\x21\x04\xd1\xc8\x0b\x64\xd2\xdc\x42\xee\xd8\x34\xff\xa6\x28\xac\xbf\x4a\x9c\x62\xee\xf9\x75\x3b\xb3\xf7\x40\x03\x12\x5b\x97\xcb\xc2\xbe\xbe\x5d\x22\xc0\x69\x40\x20\x96\x36\x2b\xb0\xf2\x8c\x5a\xc8\x0a\xe4\x8f\x87\x81\x44\xec\xef\x16\x1a\x83\x2c\x08\x3b\xf1\x6b\xf4\x02\x68\x10\x52\x5b\xce\xd9\xeb\x72\x21\x1a\xf5\x7e\x9f\xd5\xef\x93\x15\x3c\x7c\x5e\x1a\x84\x8c\xa1\x3a\x96\x19\x28\xe0\xfa\x43\x2a\x45\xb7\x03\x0d\xc9\x5d\xe7\x04\xd2\x80\x06\x56\x95\xf8\x5d\xd4\xbd\xaa\xf5\xf8\x5c\x1a\x0b\x6f\x46\xda\xc0\xa2\xa7\x6d\xeb\x6f\x95\x05\x14\x8d\x74\xd9\xae\xc7\xec\x2f\xd8\x23\x4b\xc3\xa8\x8b\xef\x3f\xec\x7f\xfc\x60\xca\x30\x5a\xdb\x81\x7a\x2f\xca\xbc\x7c\x3b\xf3\x2f\x97\xd6\xf9\x9a\xb1\xa3\x01\x03\x8d\x21\xe1\xcc\xf1\x65\x5e\xb5\x89\x34\x88\x08\x33\xd2\x0b\xc5\xef\xae\xf5\xed\xfc\xc7\xdf\x4d\x44\x35\x6a\xca\x3e\x40\x9e\x67\x85\xf0\xef\x25\x8a\x42\xd3\xb7\xb3\xb4\x9f\xcf\xf5\x85\xdd\xf8\xc5\x24\x56\x18\x99\xef\xb3\xda\xa6\xa9\xfb\xce\xe0\x1b\x8f\x92\xa4\xb6\x88\xd3\x61\x84\xb3\x1c\xdb\x45\x7b\xd1\x37\x12\x4d\x4f\x11\x8c\x60\xb9\x02\x43\x94\x17\x91\xd5\xa0\xe7\xe7\xc9\xb7\x48\x13\x91\x5a\x2b\x5d\x15\xb3\x36\x46\x99\xc6\xcb\x34\x10\xc4\xca\xec\x21\x9c\xe2\x2d\x2b\x0b\x57\x6e\x5f\x1d\xc4\x1b\x4c\x2c\x41\x3b\x9a\x61\x23\xe9\xcb\x6a\xfb\x75\xff\xb8\xfc\xb6\x7c\xf4\x2f\x49\x50\x85\xd0\x16\x55\x3a\xab\xf7\x1d\xc4\xb1\xb4\x08\xbe\x4b\xc9\x80\x7f\x4c\x2e\x9b\x04\x61\x30\x62\xd1\xbd\xa4\x48\xa2\x81\x24\x80\x7b\x3c\x46\x37\x2f\x36\xbe\xb7\x98\x85\x69\x5f\x0d\x0d\x64\x6a\x85\xc7\x11\x15\x50\xb6\x0e\x0d\x72\x11\xde\x67\x90\x4f\x00\x3e\xed\x58\x8d\x31\xe5\x11\xe9\x22\xa6\xab\x57\xea\xd0\x75\x39\x60\x5d\x7e\xb8\x93\xd1\x40\xf1\x00\x4b\x91\x33\xaf\x8c\xd5\x75\x31\x74\x39\x0e\x1a\xa8\x34\xc2\xb2\xca\xdc\x03\x4e\x5a\x1b\x3f\x33\x26\xcb\x2f\xe8\x42\x68\xa0\x0c\x23\x5e\x8c\xae\x7b\x6b\xd7\x5f\xde\xe4\x25\x6a\xca\xb0\xde\xad\x44\xe1\xb5\xd0\x3a\xe5\x2d\x1a\xe8\x08\xbc\x14\x66\xd7\x34\xfd\xc7\xd8\x66\x68\x63\xa2\x76\x53\x6d\xde\x41\xe5\x27\xe9\xcf\x34\x2c\xc5\x44\xb9\x3c\x9d\xad\x27\x7a\xb1\x6e\x4c\x04\x89\x2b\x34\x2e\xaa\xb3\xae\xbe\x65\xf0\x73\xdb\x88\x42\x8b\x4a\x3f\x8b\x03\xf4\xc4\x44\x94\x04\x92\x26\x6c\xd0\x93\xb2\x6d\x3a\xf8\x0b\x25\x84\xdb\xe4\xde\x76\xbb\xae\xde\xec\x1a\xbd\x2d\x21\x4e\x09\x0a\xa4\xd9\x74\x6b\x59\xb5\xf1\x67\x31\xdc\xfe\x29\x21\xda\xd6\xd7\x75\xd9\x74\xbf\xa0\x15\xee\x79\xc7\xb2\x6e\xae\xea\xef\x8d\x75\xf8\x28\x21\x40\x31\xd9\xdc\x2e\xfb\x7b\x77\xcf\xd7\xd3\xbf\x94\xd0\xf6\x09\x06\xc4\x73\x96\x47\xf0\xa2\x60\x43\x09\x23\x46\x7b\x6a\x94\xcd\x8d\x8b\x31\xae\x6c\x80\x54\x56\x0a\x06\xfa\x0a\x94\xb0\x48\xf9\xd5\x82\xb0\x54\x9f\xde\xfc\x24\xa7\x47\x09\x13\x5c\x0d\x19\x07\xc7\xd3\x8e\x30\x61\xd1\xe0\x28\xa4\xe7\x88\xeb\x27\xc6\x9f\x70\xce\x2d\xe9\x8c\xbe\xd2\x30\xe5\x27\x03\xe1\x89\x12\x6e\xd4\x95\xae\x1b\x37\x28\xe2\x12\xd3\x7e\x42\x29\x38\x36\xf3\x4c\xdf\x97\xd5\xe6\x54\x7c\xdc\x1a\x9e\x02\xa2\xb9\x0e\xa0\xc5\xa0\x17\xae\x3d\x60\x63\xe0\xe5\xdd\x2b\x8a\x35\x2f\x77\x0f\xfb\xe5\xec\xe5\xf1\xdf\x1d\x98\xbf\x1b\xa9\x03\xa5\x27\xe8\xad\xc8\x1f\x8c\x93\x24\x18\x60\x6f\x66\x95\xcc\x1a\xd7\x9d\x32\x5a\x22\x24\x56\x21\xd6\x7c\x0f\xa0\x33\x61\x6d\x1b\x22\xbc\xc6\xb7\x1b\x2b\xcb\xce\xb0\x87\x42\xdb\x1e\x76\x7f\x00\x6c\xa7\x9c\xf5\x21\x11\x48\x73\xe3\x73\xc5\x26\x35\x0e\xa8\xbd\x15\xc5\x93\xf8\x75\x85\x82\x8e\x92\xc4\x18\xe5\xb4\x04\x5e\xca\x8f\xcf\xf4\x34\x28\x49\x89\x44\xef\x70\xc0\x0b\xea\x1e\xb3\xac\xa6\x4b\xc0\x9f\xc2\x18\x66\xc8\xd0\xe1\x2d\xb2\xe6\x26\x23\x4b\xf7\xf1\xd3\x44\xa6\xc9\x40\xf5\xd5\xf6\x3f\xec\xaa\x4c\x9e\x06\xe4\x63\x6e\xb0\x08\x02\xd5\x23\x63\x11\xbe\xf8\x32\xd0\x5b\xf0\xa3\x42\x89\xf8\x24\x07\x3e\x19\xf2\xab\x22\xd9\x41\xf7\x11\x05\xa3\x29\x78\xd6\x4a\xa1\x3e\x5a\xff\xf2\x0e\xea\xa6\x2a\xa7\x9d\xd6\x94\x08\x05\x98\x55\xb7\x99\x51\x8b\xfb\xdc\x40\xb5\xdc\x3d\xcc\x7b\xfc\x1a\x25\x32\x08\x71\x18\xba\x65\xe3\x23\x2c\xf1\x58\xea\x36\xfe\xa8\xb7\xd0\x7c\x87\x6c\x03\xd5\x93\xd3\x90\x9f\x3c\x85\x22\x0a\xac\x5e\xe0\xa9\x06\x6d\x43\xf4\xc9\x3d\x29\xa2\x99\xb5\xa2\xd8\x1a\x35\xad\xda\xf9\x51\xd2\x2a\x5e\x2e\x9f\xb7\xfb\xed\xeb\x7c\x3f\xdb\x6c\xf6\xcf\xb3\xa7\x6e\x9e\xeb\x24\xc6\x7e\x41\x55\x1e\x8e\xd0\x64\x6d\x88\x39\x55\x3c\xa3\x44\x0b\xee\x99\x0c\xb6\x50\x68\xa8\xec\x76\xeb\x8e\x42\x10\xf3\x60\x00\x09\xfa\x5b\xd9\x60\x4a\x80\x58\xda\x8d\xe3\xa9\x82\x3e\x54\xa4\xc4\x88\x04\x3d\x83\x55\xbd\xb0\x3a\xbb\x17\x84\x21\x76\x60\x48\x02\x85\xc2\x01\xdb\xc6\x0c\x39\x4d\x68\x48\x98\xf1\x3a\xc1\x9b\xaa\x34\x59\x33\xf3\x92\x0a\x6b\xf3\x50\x9e\x7c\x5f\x20\x0d\x09\x44\x48\xf8\x7b\xec\xe9\xfb\xa0\x50\xed\x57\xe9\x52\xc8\x34\x0c\x89\x21\xee\xe1\x9f\xe5\x37\xdf\x4c\x71\x59\xc3\xa4\x98\x71\x40\x86\x32\x87\x6c\xfd\xd7\x49\xd8\x1e\x3e\x77\x9c\xa6\x31\xae\x0f\xa1\xb5\xaf\xf7\x0e\x17\x46\xef\x94\x8f\x97\x62\x48\x45\x80\x86\xf4\xbb\x78\x13\xa3\x07\x65\x81\x4e\xc8\x80\xd1\x6f\x20\xc8\xfb\xad\xcc\x4f\x07\xb0\x44\x00\x1d\xe6\x85\x86\x8c\x87\x24\xea\x2c\x4a\x17\x57\x4d\xb7\xe8\x90\x29\xcb\xa8\x63\x79\xd8\x3b\x1e\xa2\x76\x67\xf6\xb1\x12\x73\x43\x79\x48\x71\xaa\xe2\xc6\x73\x87\x0a\xdb\x6b\x33\xcb\xf3\x2e\x4b\xe6\x7f\x3b\x0a\x44\x22\x3b\xe4\x25\xf2\x6a\xd8\x80\xc0\x6e\xa0\x81\x1f\x16\x46\x76\x57\x6c\xc3\x4c\x0c\x90\x7a\xa1\x1c\x3f\x24\xd2\x1e\xd1\xb5\xae\xde\x44\x91\xfd\x05\x95\xcf\xca\x42\xff\x7b\xda\x20\xee\xa5\xce\x1a\xd8\x9f\xaa\xbc\xfb\x3b\x58\xb9\x3c\x4b\xf1\x71\xf7\xb4\xbd\x60\x1c\x1c\x7e\x06\x3f\x5f\xc3\xc8\x08\x93\xfa\x1d\xb1\x06\x51\xa9\xf7\x2b\xfc\x4f\x34\x4c\xb8\xcd\x4f\xdb\xa4\xca\x67\x80\x35\x1a\xa6\xd2\x32\x2a\xa1\x70\xe5\x5d\xef\xf6\x84\x22\x54\xc4\x2a\x09\x83\x3a\x35\xd0\x7d\x00\x6b\x52\x93\xff\xfc\xcf\x80\xdf\x64\xf2\x5f\xfe\x0a\x34\x88\x1c\xdf\xc5\xfd\xa9\xd0\x93\x10\xc4\x0f\x8a\x24\x42\xf3\x6b\x9b\x50\x75\x7f\x55\x4c\x23\x34\xa7\x3e\xc9\xbd\x59\x94\xfa\x6a\xcd\x85\x86\x2a\x92\xc2\x02\x9c\xf3\x55\x81\xa2\x23\x27\x91\x2f\xa0\x6a\x32\x63\x15\xef\xaf\x48\x52\xd2\x50\x09\x40\x8f\x2a\x17\x75\xb3\x2f\x8d\x81\x6a\x9f\x75\xbf\xac\x65\x80\xe5\x58\x21\xcb\xaa\x71\x35\x71\x7f\x0c\x78\x8c\xbc\x0c\x25\xb6\x6d\x0e\x33\x7d\x34\x84\x18\x52\xb7\x10\x1c\x51\xf5\x75\xcf\x20\x84\xd4\xf5\x26\x9e\x8a\xba\xef\x1d\xa0\xa1\xd1\x76\x5d\x38\xe9\x90\xbb\x72\x52\x29\xa6\x6d\x4c\xad\xdd\x76\xe1\x9e\xd1\xd1\x95\x8f\xaa\x49\x43\x7b\x40\x83\x08\xb4\xbb\xe8\x93\xdd\x8d\xb0\xd7\xc9\x1f\x35\x96\x7f\x3f\xab\x5d\x34\xd0\x4c\x66\x12\x25\x01\xf3\x4e\xd6\xa6\x82\x1a\x59\xbe\xe0\x0e\x9e\xa0\x16\x63\x3f\x83\x92\x30\x10\x0e\x75\x8d\x88\xdd\xf3\xeb\x8b\x8f\xb4\x28\x11\x26\x1a\x12\x0a\x0e\xb3\xaa\x94\xd2\xc4\x8a\x3b\x69\xc8\xaf\x50\x51\x52\xca\xa8\xf0\x8e\xc5\xa2\x2c\x4c\xf6\xf6\x59\xa1\x84\x52\x16\x85\xd4\xf8\x98\x6b\xb9\x7b\xf2\x3f\xc3\x03\x60\x36\xed\xf1\x26\xb2\xc2\xe6\x24\xfd\x21\x1e\x63\x9e\x67\xf5\x51\x7e\x94\x43\xf3\x46\xb9\xa6\x48\xb5\xb5\xba\xdf\xba\x9b\xfe\xac\xd6\x4e\x69\xac\xad\x68\x20\x14\x7a\xdd\x4e\xac\xac\x78\x5b\x1d\x8e\x7e\xdd\xd3\x84\x07\x58\x80\x83\x43\xd6\x38\xa6\xb4\x4f\xc1\x03\x94\x26\xa9\xc2\x86\x40\x5d\xaa\x49\x10\x48\x13\x15\x60\xe5\x60\x2f\xda\x79\x88\x30\xc5\xdf\x5c\x2c\x0d\x62\x41\xbb\xb5\xe6\x6e\x60\x56\xe8\x85\x40\x03\xeb\xef\x32\x65\x80\x6c\x3c\xbb\x2a\x3b\xce\xf2\x6e\x8a\xd3\x54\xdb\xed\xfe\x41\x99\xab\x9c\x7f\x6e\x98\x08\x18\x38\xce\x86\xa5\x05\x51\xb6\x83\xeb\x01\xe2\xa0\xbf\x23\x11\x33\x35\x68\xd0\xb6\xdd\x16\x03\xd1\x20\xff\xd3\x42\x28\xb4\x7c\xb3\xa2\x28\x4f\x85\x82\xfd\x4f\x8b\xa6\xfb\xfc\x79\x85\x24\x81\xee\xa4\xe1\x60\xd9\xbc\x2f\xc4\x71\xd3\x23\xaa\xc7\xa3\x25\x4d\x2d\x3b\x62\x56\x64\xc8\xd1\x7d\x07\x8d\xc8\xf2\xeb\x37\x2e\x63\x86\xab\xb8\xb5\x21\x18\x10\xb6\xf1\xc0\x64\xe2\x4a\x13\xe3\xb6\x7d\xbf\x5e\x8c\x26\x95\x0e\x23\xd6\x11\x7d\x62\xe9\xb1\x9b\x89\x1a\x08\xe2\xb2\x4b\xed\x39\x18\xdb\xbf\xd9\x9e\x4f\xf1\x03\x2a\xf1\x66\xf9\xed\xfa\x72\x26\xa5\xe0\x38\x19\xa6\x1c\xe5\xfe\x30\x0d\x43\xeb\x1b\xd9\x57\xb7\x3d\x1d\x5b\xb3\x61\x77\xc6\xee\x1a\x5c\x23\x00\xeb\x7b\x59\x61\x1a\xf6\xad\xbb\xba\x31\x0c\x23\xd6\xbd\x99\x92\x7a\x53\x16\x04\xca\x38\xeb\xf2\xb8\x5e\x0c\x4a\x28\x94\x05\x69\x80\x14\xf5\xcb\xe5\xff\x51\x03\x06\x37\x77\x94\x84\x80\x96\x6c\xdb\x94\xed\x23\xf9\x66\xe2\x3e\x03\xc1\x88\x20\x58\xa8\xaf\x2c\x8f\x90\x43\x93\x7b\xca\x84\x0b\x9e\xee\x01\x7f\x77\x9f\x74\xa7\x8c\xe8\xd8\x32\x42\x64\x3f\x60\x97\xfd\xba\xda\xe3\x49\x59\x18\xa6\x54\xf7\xac\x64\x59\x59\xf4\xa4\x67\x94\xd1\x58\xf3\xc0\x37\x71\x9e\x8a\xa6\x83\xaa\x50\xc6\xe2\x34\x09\x7b\x4d\xc7\xab\x1b\x1c\x63\x42\xe9\xae\x27\x6c\x6d\x4c\x0d\xdd\x4b\x62\x32\xc0\x34\xea\xa9\xca\xf7\x48\xb6\xb1\x3f\x8a\x63\x37\x19\x18\x03\xe6\xd5\x5c\x1f\xb2\x69\x24\xc5\x78\x28\x2d\x14\xdf\x2a\x2d\x5d\xf0\xd1\xf9\x61\xc6\x8a\x1e\xfe\x3a\x8e\x84\xcb\x29\x8b\x68\x82\xf7\x65\xd1\x37\x0f\xa2\xd2\xca\xb3\x8f\x53\x16\x13\x4d\x5c\x54\x84\xb3\xfb\xaa\xfb\xcb\x92\x90\x5a\xdc\x87\xfb\xcd\x4d\x95\x1d\xa6\xf0\x67\xca\x12\x0a\xcc\xb6\x7e\xe7\x2f\x65\x0d\x45\xbb\x77\x59\x81\x87\xc9\x38\x43\xc0\x32\xa5\xab\x8f\x59\xd3\xc0\xa1\xbb\x9b\x94\xc4\x9a\x79\xee\xfc\x3c\xb7\x64\xbe\x36\xb8\x19\x6d\x42\x2c\x8d\x19\x56\x05\x9f\xa0\x28\xab\x72\x21\xea\xf7\xd1\x26\xcd\x52\xb0\x02\xa8\x0e\x39\xb3\x6d\xe0\x58\xcf\xcf\xc3\x74\xc7\x78\x99\x33\x11\x00\xa6\xf1\xc5\xf1\xf8\xd0\xe5\x97\x98\x70\x99\xa9\xbe\xc3\xe4\x92\x78\x96\x32\x01\x04\xd3\x21\xdf\x45\x9e\xdf\x65\x15\x0c\x18\xb9\x28\x93\xa1\xc2\x62\x6d\xc7\xb1\x32\xec\x4b\x19\x6e\xe1\x4c\x05\x02\x6c\x9a\xf2\x20\xb3\xde\x27\x98\xb0\xca\x51\xa6\x98\xc4\xa4\x97\x86\x63\x5e\xe2\x33\x0d\xc8\x6a\x28\x83\x20\x40\xbc\xc4\x62\xbd\x7a\xde\x6f\x5f\x37\x9b\xc7\x7f\x23\x93\xc0\xe6\x61\xb6\x5d\xee\x49\x37\x8c\x5b\x99\xdf\x26\x6b\x9a\xf3\x24\xb1\xc8\x80\xdb\x1a\xd6\x6e\xf5\xb4\x9c\x60\xac\x28\x03\x41\x70\x3e\xa2\xfc\x42\x5f\x2b\x60\x86\x00\xb6\x09\xff\xf3\xdb\xd5\x9c\xf7\x75\xd3\xcd\x4c\x6a\x13\x65\x7d\x9f\xea\x4a\xb9\x82\x3e\xe5\x41\x98\xe2\x4c\xd9\xfe\x6b\xd7\xfd\x29\x05\x4c\x25\xea\xb2\xf8\x80\x73\xbd\xcc\xb3\xb7\x4c\xe6\x70\x5f\x56\x83\xb5\xcc\x03\x88\x91\x31\x72\x50\xba\xf6\x5d\xb8\x2b\xe3\x1c\xa4\x0e\x07\xd9\x4c\x94\x0b\xdd\x35\x48\x68\xdb\x7c\x86\x94\x5e\x9e\x1c\x63\x32\x52\x0a\xab\x6b\x02\xea\xfd\x5b\xd9\x60\x6e\x73\x34\x45\x38\x51\x36\x4f\x8f\x8a\x29\x48\xe2\x34\x68\xc5\xa7\x3c\xe4\x1c\xa1\x3d\x52\xf6\xec\xee\x43\x32\xfb\x76\x84\x15\xea\x3c\x88\x5f\xcf\xa7\x83\xdc\x40\x65\xb9\xf2\xba\xe3\x91\x40\x6f\xb6\x39\x55\xc5\xda\x98\x6d\xd7\x94\x47\x39\x0d\xac\x61\xb7\xad\xb5\xcf\xf0\x0b\x79\xde\x56\x45\xd6\x88\xd6\x0f\x9b\x43\x73\xc1\x30\x4d\x39\xa5\x84\x26\xae\x02\x6e\xcb\xf7\xd7\x17\x0e\xa7\x71\x82\x21\xc8\x0e\xea\x66\xf4\xab\xa9\xc2\xa5\x7c\xc8\x8a\x36\x86\x29\x4f\xd5\x75\x15\x1d\xca\x59\x18\x62\x15\x64\x8f\x29\xb4\x57\xa7\xe4\xed\xaf\xc3\x12\x99\xb8\x00\xbb\x13\x4d\xa0\x9c\x49\x0a\x83\xcc\xf7\x56\x34\xf5\x10\xb1\xd5\x8d\xb2\xb4\x90\xe2\xa4\xb3\x66\xc4\x4e\x36\x86\x1b\x8f\x76\x94\xe9\xdd\x81\xc2\xb0\x49\xfa\x26\xea\x75\xf1\x7a\xb4\x19\xea\x6e\x13\xe3\x9c\x5a\x72\xc0\x53\x51\x1f\xa1\x68\x16\x15\xe8\xac\xa9\xfd\x8c\xf3\x96\x98\x73\x15\xa1\x23\x87\x65\xa7\x5d\x79\x4d\x95\x8f\xf2\xc8\x30\x24\xe0\xf8\x5a\x16\x4d\xde\xad\x84\x98\x08\x47\xc6\x06\xc5\x03\x54\x13\x9e\x30\xca\x63\xa5\xa9\x6d\x22\xf9\x21\xf4\x58\x4e\x88\xf2\x84\x89\xd0\x73\x76\x6e\x1b\xd1\xd4\x9f\x11\xd1\x50\x9e\x44\x51\xc2\x3b\xcd\x8f\x9b\x24\x16\x94\x27\xb1\xe5\x95\xb8\x5b\x7e\x5b\x3e\xae\x37\xcb\x97\x3d\xc2\x32\xfd\xcf\xa6\x84\x44\xf6\x23\x99\x2c\xbf\x04\xaf\x8e\x3e\x55\xca\xe2\x34\xbe\x00\xdd\xdb\xb2\xcf\xf8\xa3\xa6\x71\x8c\x8b\x6d\x23\x2a\xa1\x33\x07\x16\xda\x5e\x01\xd3\xfc\xed\x7f\xaf\x7a\xb7\x3c\x95\x3a\xb0\x7c\x2d\x19\xfa\x50\x57\x9a\x15\x28\x97\x04\xa4\xab\xe5\xac\x7f\x40\xd5\xe5\x08\x13\x7f\x5c\x27\x48\x56\xbf\x77\xec\x8a\xad\x63\xb3\x11\x55\x43\xae\x07\xe9\xbc\xf5\xf4\x87\x24\x7e\xeb\x6b\x88\x8a\xe9\x39\x61\xec\xe5\xff\x96\x07\xac\x92\x4f\x6e\x52\xa5\x91\x97\x3c\x6c\x57\x7f\xdf\xe6\xb2\x2a\x50\xc3\x7f\x3c\x1a\xb8\x76\xb1\x22\xe6\x87\x3d\x75\x97\x9f\x9f\x51\x60\xb8\xb0\xb1\xb1\x7d\xed\xa3\x8d\x37\x0a\x89\xc5\xdc\x68\x30\xe2\x94\x37\xbe\xda\x33\xd8\x27\xa2\x90\x09\xac\x77\xa3\x1d\xbc\x9f\xa8\xe4\xd2\x28\x8c\x02\x4c\x44\x37\xef\x59\xa5\xb1\xb8\x70\x2c\xb3\x62\xd8\x5b\xde\x8e\xd1\x26\x1e\x93\x3b\x7e\x1a\x2b\x46\xa1\x0c\x71\x2a\xce\x2e\xbb\xe8\x69\x44\x63\x88\xbc\x28\xf4\xa8\x6c\xdc\xa3\x81\x69\xc4\x62\x9a\x26\xae\xf8\xb5\x7b\xaf\xca\x9f\x2f\x60\xd5\xd9\xcb\x66\xc0\x97\x44\x23\xce\x35\xa2\x9a\xef\x45\xd1\x78\x36\x4a\x1a\xf1\x98\x60\x3a\x4e\x43\x83\x52\x3b\x60\xab\xaf\xcb\x69\x5d\x28\xe2\x0a\xac\x78\x13\x34\xdf\x5b\x1f\x13\x11\x7e\xe3\xea\x0f\x77\x43\x63\x20\xa2\x93\x41\x2f\xde\x9a\xf7\xb5\x79\x12\x4d\x8f\xab\xa3\x51\x6c\x28\xd6\x07\x95\x2f\x5b\x2f\x0b\xdd\xa5\x5e\xa2\x84\x4b\x5c\x72\xf2\x38\x74\x17\xa3\x44\x87\xbe\xa1\xa4\xc9\x8e\x79\x6b\x4b\x76\xe5\xcd\xec\x5d\x24\x48\x84\x09\x43\x07\x73\x5c\xd5\xf5\x09\x33\xfd\xbf\x59\x74\xfe\xec\x44\xa7\x7a\xc8\xc0\x53\x5e\x32\x48\xf8\xa1\x10\x60\x02\x55\x0f\xa2\xc6\x0e\xa3\xe1\x6f\x5e\x02\xc5\xf7\x8c\x3e\xa3\xca\xcb\x93\x1e\x3d\x9b\xd6\x01\xe6\x0f\x8f\x22\xd3\xf3\x4c\xf7\xb5\xd9\x76\x1a\x8e\xcc\x70\x04\x41\x84\x21\x0f\xb8\x19\xfc\x79\x3e\x20\x02\x22\xf0\xad\x6d\xaa\xf2\x50\x5a\xa5\xec\xac\x78\xca\x8a\x66\xcc\xa5\x40\x23\x70\x42\xee\x35\x34\xb3\x76\x5b\x6a\x9f\xf8\x0a\x56\x21\x02\xcd\x45\x34\xe0\x93\xf6\x82\x46\x57\x54\x5d\xda\xc1\x09\x66\x4e\x10\x3d\x3b\xa1\xa6\x75\x43\x4c\x12\x09\xcb\xa8\x7c\x10\x58\x59\xb8\x66\xcf\x22\x63\x84\x05\xc4\x15\x99\x25\x0b\x18\x1f\x8f\x03\x1a\x6a\xdb\x54\x6a\x7b\x64\xff\xf0\x7f\x4f\x42\x4f\xc9\xe3\x33\x56\xfa\xae\x54\x57\xee\x35\x26\xd2\x36\xb7\x6e\xa1\xb1\x32\x9b\x43\x50\x3b\x8d\x43\x66\x2c\x91\xfa\x98\xe7\xf6\x2a\xdd\x3c\x8d\xc3\x34\x46\xf0\x09\x26\x70\x87\x8d\x77\xed\x21\x4b\x64\xb5\x78\xdd\xee\xd6\x4f\x7b\x04\xc9\xef\x17\x2f\xcb\xd9\x6e\xb9\xdf\x2e\x5f\xbe\xad\x16\xcb\x61\x75\x22\xa6\xa1\x40\x5f\x7f\xbd\xdd\xc1\xa8\xab\x87\xc6\xd4\x04\x98\xf2\xdb\xd7\x98\x5d\xbb\xb0\xb0\x31\x4b\x8d\x77\x4a\x2d\xca\x10\x17\xda\x20\x76\x8f\x39\x81\xd4\x76\xaa\xea\x17\xd0\xf2\x94\xe7\xff\x6a\x1d\x97\xc9\x75\x38\x4b\x8c\x2d\xdd\x54\x19\xd4\x23\x6e\x5f\x1a\xf3\x38\xc2\x07\x3a\x15\x79\xbb\xcc\x27\x3e\x7b\xcc\xb5\x48\x68\xc7\xa7\x30\xab\x2e\x88\x23\xdc\xb8\xc8\x00\x6a\x5f\x38\x01\x53\x94\x59\xff\x7c\x87\x89\x63\x6a\x12\xdf\xe8\xb7\x13\xc7\x21\x4f\x2f\x8d\x13\x63\x91\xa2\xf7\xb3\xcd\x7d\x9f\x84\x0e\xfd\xe1\x34\x06\xed\xd5\x70\x8f\xc7\xf9\xf9\x4a\x51\x32\x16\x94\x4b\xd7\xe7\x60\x00\x5b\x4d\x46\xa5\xd4\x58\x30\xab\xcd\xe9\xbc\xbd\x75\x01\xaf\xaf\xab\xbb\xeb\x5b\x68\x2c\x39\x20\x3e\xd8\x8a\x78\xbb\x3f\x2a\x87\xd9\x7f\x5a\xec\x6e\x23\x2c\xc7\xd7\xd1\x61\x14\x5a\xca\xc1\xfa\x74\x03\x91\x3c\x4c\x41\xc4\x90\x32\x6c\x1e\x70\x69\x74\xbf\x5e\xc7\x1c\x56\x6e\xac\x21\x0c\xc1\x90\x56\x12\xe8\xb1\x9f\x69\x86\x58\x4f\xed\x5d\xd4\x2b\x27\xb4\x30\x9e\x22\x49\x10\x6b\x91\x74\xd8\xe0\x32\x53\x59\xe1\xf3\xa4\x76\xb5\x0d\xb7\x93\x24\x50\x14\xed\xab\x14\xea\xe3\x15\x59\x03\x87\x9b\x55\x12\x72\x8a\x09\xaa\xed\xee\xc5\xff\x89\xca\x0e\x74\xb3\x3d\x55\xc7\xdc\xf3\xb6\xd0\x84\x71\xf0\xfa\xbb\xad\xdb\xd0\xeb\xae\xd1\x84\xa9\x00\x59\x75\x85\x2d\x35\x51\xff\x77\xce\x15\x66\x17\x6c\xe8\xe1\xeb\x13\xb7\x84\xd8\x6e\xfd\xff\x29\x45\x24\x5e\x57\x53\x9f\xef\x43\xbf\xfc\xbe\xb4\x32\xe5\x57\xab\x5a\x09\x4f\x28\x6a\x84\xd5\xd9\x5f\xb0\x36\x1e\x75\xd3\x3d\x59\x14\x30\x64\x00\xc4\x8c\xd9\x64\x5d\x25\x51\xc4\x30\x12\xfa\xdf\x32\x2b\x16\xef\xa2\x28\x20\x9f\xfe\x8a\x67\xae\xa3\x49\x14\xa7\xb1\x9b\xed\x0f\x20\xf2\x11\x4b\x3b\x4d\x22\x4d\xb1\xf1\x6a\xdf\x40\x71\x2a\x4f\x43\x92\x36\x9a\xc4\x0e\xda\xef\xeb\xd3\xf5\xb6\x9c\xb0\x54\xd2\x24\x86\x98\x03\xd6\x7b\x2c\xe0\xc7\x12\x41\xb6\x5b\x88\xdd\x7d\xaf\xb2\x56\xba\x73\xd3\xc4\x46\x74\x4f\x65\x01\xe7\x9e\xe7\x99\x26\xa9\x08\x91\xad\xbc\x7d\xc0\x2f\x53\xdd\x29\x9a\x08\x6a\x60\x98\xd3\x1f\x65\x6d\xaf\x2e\xc1\x44\xa8\x94\x76\xe9\xe7\x6e\xb2\x49\x43\x11\x58\xb1\x79\x59\x3f\x2d\x77\x0f\xcb\xd7\xed\xde\x82\x5f\x57\x8b\x65\x3f\x46\x8a\xb0\x2b\x2e\xb4\xef\xba\x0d\xa2\x26\x77\xa4\xb8\x44\xf2\xb3\x4c\x95\x5e\xe8\xa9\x97\xb1\x7f\x84\x1f\x90\xfb\x2c\x47\xa2\x29\x4f\x1d\x1e\x65\x57\x36\x22\xdf\xbd\x43\x59\x41\x93\x29\x4f\x61\xd3\x0d\x14\x56\x3a\x1a\x86\x74\x87\x34\x01\x2e\x09\xf3\x28\xb5\xcb\x86\x26\x9a\x40\xaa\x31\x6f\xb4\x6d\xca\xe3\xfd\xa9\x06\xf1\x0c\xa8\x79\x7a\x25\xb7\x9d\x98\x38\xc6\xb4\xba\x05\xba\x6f\x41\x95\x9e\xd7\xa6\x1b\xa1\x2c\xb7\xe0\xdd\x6a\xbb\x40\x0d\x1b\x6c\xbf\xf7\x82\x36\x3b\x6f\x54\xd3\x80\x07\xe8\x64\x2e\xd6\x4f\x4f\xaf\xcf\xab\xdd\xbf\xad\xea\xef\xf2\x65\xbb\xdf\xee\x66\x5f\xfd\xeb\x4c\x09\xb5\xc9\xd5\xe7\xe5\x9f\x5d\x58\x96\x12\xad\xd1\x59\x78\x17\x85\xce\xe1\xf1\xa4\x3e\xce\x9e\xd6\x61\xf4\x19\x53\x62\x02\xf4\x45\x51\x4d\xb1\x01\x35\x5e\xb9\xce\xee\xa5\x21\x53\xa8\x3a\xb1\x03\x71\x78\x2c\xd5\x47\x56\xbc\x59\x22\xb8\xe8\xa9\x2c\x9a\x77\xff\x6c\x69\x18\xc5\xd8\x29\x9a\x99\x3b\xb0\x62\xf9\xa3\x37\x99\xb2\xd4\x8a\xa2\xd7\xd0\x3c\xdf\xef\x6e\xb8\xf5\x7e\xac\xb0\xd1\xe2\x41\x7c\xc0\xc3\x59\x56\x99\xce\xfe\x1a\xcb\x43\x8c\x9f\x84\x29\xc5\xae\x49\xce\xe5\xbf\xd9\xf9\x52\x0e\x56\x3c\xb9\x3e\x82\x72\xa4\x74\x3f\xa7\x4e\x48\xea\x99\x3d\x91\x1b\x0f\xf5\x2e\x5d\x3f\x97\x7f\xf4\x18\x98\xb6\xe1\x4a\x9e\x5f\x41\x60\xa4\xb1\x49\x91\x5a\xe9\xeb\xf3\xdd\xd0\x24\xa4\x09\x8f\x91\x1f\x61\xbb\x9b\x3d\x8f\x0f\xc4\x51\x1a\x0c\xc9\x02\xba\x03\x22\x12\x91\x47\x6f\x55\x17\x69\x9d\x34\x91\xb6\x49\x68\xbb\x78\x58\x3e\xcd\xf6\x0f\xb3\xed\x83\x3f\x35\x15\xdc\x6a\x15\x5b\x9b\x35\xd3\x97\xc2\x24\xe3\x6b\xa5\x40\x4c\xd8\x6b\x17\x94\x96\x45\x63\x51\x1e\x8e\xa2\x38\x5f\x13\x15\xbc\xfc\x2e\xa9\x49\xe2\x9e\x99\xf0\x3e\xcf\x8e\xb3\x42\x3f\xdd\xed\x6e\xf5\xec\x4e\x4e\x17\x21\x67\x1d\xea\xf2\x39\x7b\x7b\x6f\xba\xd9\x26\x64\x18\xd8\xf6\x80\x26\x33\x67\x0f\x30\xbd\xce\x34\x43\x53\x01\x10\x44\xfd\xde\xfd\xf7\x52\x97\xa9\x8c\x34\xce\xd8\x7f\xbd\xae\x9e\x3f\xa1\xb4\x9d\x9e\x25\x3b\xc7\x7e\x51\x76\x30\x7c\xcb\x78\xe7\xef\x5e\x05\xa1\x6c\xf7\xe5\xf5\x66\x3b\xfa\xee\x9a\xd2\x54\x0e\x58\xf2\xc4\x1b\xcc\xcf\x03\x37\x33\xd5\x82\x60\xe1\x6f\x7b\x2c\xab\x66\xdb\x88\xea\x49\xf4\xac\xde\xed\x61\xcb\x2f\x8b\xe0\x1a\x54\xe3\xbf\x07\xb8\x83\xa2\x44\xf5\xd7\xae\x4a\x94\x42\x9c\xa0\xc3\xf7\x65\x39\x5f\x2e\xba\x3f\x26\x14\xeb\x08\x6f\x27\x51\x69\xd0\xb3\xaa\x12\xe7\x17\x5b\x10\xf9\x63\xb0\x45\x0f\x37\xea\xd4\x84\x96\x10\x69\x0e\x4e\x2e\xa2\x75\xc3\x43\xef\x1f\xa4\x26\xb4\xbd\x23\x36\x8e\xaf\xa1\xa8\x4f\x1e\x3e\x33\x99\xb8\x46\x19\xcc\xb0\x5d\xa3\x14\xa2\xa9\xd1\x51\x62\x46\x94\x5c\xae\xa7\x0b\xbb\xb9\x47\x57\x12\x41\xa2\xd3\xb8\x6f\x44\x84\xd5\x62\x2d\x7e\x88\x2c\xcf\xba\x96\x14\x2a\x88\x24\x48\x2d\xe1\xfa\x09\x11\xff\xe5\xef\xab\x1b\x62\x39\x33\xee\x44\xd1\xb3\xc0\x52\x41\x54\xe8\xfb\x6e\x37\x65\xf1\xf6\x43\xe4\x7f\xf4\xb6\x52\x10\xb0\xe8\x9a\xf2\x08\xc5\x23\x08\x0d\x95\x2c\x45\xa5\x5d\xe1\x71\xe8\xb9\x89\x90\x09\xea\x5d\x9c\xd9\xec\xa2\x19\x60\xf4\xfc\x22\x8c\x43\x2c\x1e\x3f\xc2\x96\x0e\xef\x86\x12\x16\xd1\x81\x5a\xf2\x23\x56\x52\xba\xa4\x86\xa0\x94\xa2\x70\xe2\xfc\x74\x32\x87\x11\xa7\x29\x15\x34\xd2\x68\x94\x0e\x99\x2b\xd7\x7e\x1e\x01\x0b\x1a\xab\xc0\xb1\x6c\xbc\x3c\xef\xe6\xd7\xc4\xc6\xa7\x67\x08\x1d\x77\x62\xb6\x2f\xe5\x24\x83\xe7\xdf\x19\x0f\x62\x04\xed\x43\xa1\x47\xb2\x17\x93\x8b\xf1\x30\x42\xbf\x15\x7e\x1d\x45\xa1\xff\xf4\x4f\xc1\x13\x8e\xac\x67\x7f\x41\x55\xce\xcb\xd2\x17\xe8\x45\x24\x13\xdb\xa1\x68\xa7\xcb\x1c\x0a\x30\x99\xca\x44\x75\xee\xb3\xcc\x22\x89\x2d\x27\xac\x25\x3c\xb3\x22\x46\x97\xa1\xba\x48\x40\x23\xf8\xfb\xb1\x54\x19\x86\xc5\x1d\xf0\x42\xa4\x01\x70\xf0\x34\xfa\x56\x74\x67\x87\x53\x0a\x25\xd3\x1d\x2c\xf6\x69\xf1\xfd\x2a\xf9\x11\x15\xa9\x20\x58\xcb\xd9\x3e\x7b\x88\x85\x10\x91\x20\xf1\x28\x2c\x99\x15\xbe\xc2\xff\x69\xcf\x18\x15\x22\x06\x12\xfa\x16\xaf\x32\xcf\xa1\xba\x83\x1c\xde\xfa\xd4\x9c\x90\x82\x20\x19\x5c\xb6\x10\xa3\xa4\x90\x90\x20\x98\x67\xb2\xc3\x0a\xed\x57\x38\xdf\x30\xa6\x42\x51\xe3\x8b\x78\x9b\xf5\xfa\x71\x0f\x3a\x6b\xf6\xbe\x5d\x9e\x0a\xc5\x64\xe0\x58\xd1\xff\x75\xca\xd4\x07\xee\x1d\x96\x20\x72\x72\x9d\x54\x60\x2e\x67\xa1\x3c\x60\xfb\xaa\x91\xbd\xb2\x76\xb4\x8e\x51\x65\x0f\xb3\x02\x57\xc3\xbc\xe4\xd2\x56\x09\x0d\x12\xc1\x80\xeb\x02\xda\x0f\x7e\xa5\xc5\x69\xfc\x3a\x81\xd9\xc0\xe0\x0d\x9a\x47\x51\x5b\x11\xdc\x61\xe1\xda\x0f\x13\x51\x6a\x29\x72\x9f\xe1\x57\x33\x3f\x69\xfb\x0e\x8b\xa7\x4e\xf5\x93\x0a\xd0\x61\x98\x38\x07\xa1\xdf\x06\x04\x68\x85\x55\x2c\xc4\x0f\x0c\xf3\xf0\x43\x6c\xf3\x8d\xe5\x68\xa4\x40\x89\x8f\x47\x4b\x41\x66\xff\x2a\x03\x21\x01\xf9\x11\xde\xcb\x9f\x08\x51\xbd\xbc\x61\x19\x48\xab\x82\x85\x18\xee\x3c\xaf\x0f\xb8\x85\xbc\xc0\x7f\xbb\x8b\x68\xe9\x84\x8b\xed\xec\xd9\x87\x17\x3c\x92\xff\xf9\x9f\x7f\xf4\x30\xec\x31\x59\x3f\x95\x84\x50\xec\x0f\xb1\x7e\xf0\x9d\x68\xc0\x4f\x0e\x49\x88\x94\xa4\xeb\x8d\x38\x42\xd5\x9c\xdb\x77\xeb\x2a\x2e\xa7\x5e\x44\xa1\x1d\xaa\xb1\x04\x6c\xdd\x8f\x5f\x13\x77\x52\x92\x38\xc6\x84\x9c\x73\x20\xef\xa0\x13\x96\x1a\xf3\x29\x0e\x27\x8e\x24\x60\xd1\xd1\x7e\x6f\x16\x45\x33\xc8\x43\x48\x62\x12\x6c\xeb\xc9\x45\x6d\x37\x18\x7b\x5f\xdd\x7a\xf6\xe3\x42\xc9\x12\x97\x91\x6f\x7f\x63\x57\x3a\x08\xe6\x93\x38\x4e\xee\x92\x46\xcc\xeb\x80\xcd\xda\x4d\xa8\x0d\x3e\x6c\x8f\xfa\x10\x64\x21\x69\x2c\xad\x1b\xfa\xdf\xaa\x19\xa5\xcb\x24\x15\x26\x71\x56\xd7\x02\x9a\xaf\x47\x7f\x92\xca\x38\x18\x91\xf5\xbe\x16\x8d\xf8\x05\xfa\x53\x19\x27\x2a\xa9\x8a\x63\xd2\x37\xf4\x6f\xdf\xab\xac\x7f\x4c\xc6\x14\x3a\x93\xa2\x6e\x03\xbd\x67\xf8\xb9\x11\x95\x82\xdc\x0b\xef\x4c\x5c\xb7\xd1\x8b\x66\x29\xf5\xa8\xca\x36\x6c\xbf\xcf\x44\xa7\x68\x36\x1a\xc7\x85\xc0\x8f\xbc\xdd\xcd\x7c\x05\x58\x72\x19\xf2\x8e\xb1\xe5\x41\xd4\xed\x8d\xed\x46\xf4\x28\xe3\x47\x8f\x42\x0b\xe8\x3f\x88\xac\x18\x15\x55\x65\xa4\x00\xa9\x77\xe4\xe9\xdc\x06\x92\xd9\x31\x87\x55\x03\xd7\x2d\xc6\xc5\x0a\x93\x91\x51\x58\x99\xb4\x0d\x8c\xaf\x1d\xe8\x53\xc6\x84\xab\x81\x97\x36\xc4\x6b\xf5\xeb\xe2\x72\x01\xfb\xb3\x25\x61\x1e\x4c\x59\x01\xfc\x85\xee\xdd\x64\x08\x28\x2c\xf6\x61\xfa\x68\x6d\x46\xf5\x19\x19\x1b\x95\x44\x5e\xa6\xde\x16\x9b\xf7\xef\x38\x35\xbc\x73\x2c\x93\x20\xc5\x64\x64\x2d\x72\xe8\xe9\xba\xa9\x4c\xe2\x50\x0f\xab\x4f\xf7\x55\x79\xf8\x3c\x08\x90\x89\x01\xa4\x8a\xa9\x85\x81\xa7\x53\xbe\xd7\xa0\xae\x6f\x0b\x32\x4d\x4c\x1a\x4e\xb7\x05\x8f\x90\x97\x82\x32\x04\x2f\x35\xfb\xa7\x4c\xbd\x8b\xac\x7b\x99\x82\x45\xb1\xcd\x38\x77\x46\xd6\x1f\x92\xc4\x66\x5d\x8f\x15\x1c\x45\x05\xbb\x72\xab\xca\x0a\xc6\x6f\x43\x26\x41\x18\x8e\x74\x6c\x5e\x44\xd3\x3a\xcd\x58\x35\xec\x2b\x07\x52\x26\xb6\x9a\xe2\x9f\xbd\x3d\x76\x1d\xc7\x30\x7e\x2c\x29\x18\x8a\x8f\xf9\x52\x54\x26\x6d\xf4\xfb\xbb\x49\x34\xb9\x8c\x0a\x53\xc4\x90\xd4\xe7\xba\x81\xc3\x12\xc3\xf1\x61\xc9\x4b\x2a\x21\xc0\xc9\x39\x6f\xca\x7a\x9c\xe6\x93\x9a\x69\x7c\x49\xa5\x45\x28\x0f\xdb\xcd\xa4\x4e\xad\x3e\xfe\xbe\x5d\xfa\x23\xd8\x81\xd4\x22\x40\xef\xfc\xe9\x6c\xdf\x8d\xd7\xee\xa1\x12\x18\xb7\xed\x15\xa2\x51\xef\xd8\x8e\x5a\xff\x71\xb1\x63\x4a\x30\x5c\x3b\x41\xb9\x0a\xbe\x43\x6e\x86\xc8\xc4\xd1\x0d\x9a\x80\x61\xf1\xc6\x88\xba\x59\xf6\x5f\xd0\x84\xa9\x05\xa1\xbc\x81\x23\xfb\xae\x37\xa2\x6a\x9c\x4e\x53\x37\x5f\x8d\x8a\xe3\x5e\xc5\x09\xe7\xc0\x1d\xe4\x62\xd2\x52\xa8\x82\xc4\xd6\x1e\xb3\x22\x6b\x9e\xb2\x62\x48\x8f\x41\x15\x09\x38\x66\x96\x20\xcf\x30\xd8\x81\xd1\xe4\x1e\x5f\x88\x84\x34\xf2\xbd\x89\xa8\x91\x38\x95\x91\xbe\xee\x60\xa9\x90\x45\x56\xa3\xac\xdf\xac\x26\x57\x0e\x25\xc3\xbd\xd5\x60\x55\x68\xf3\xb2\xec\x41\x66\x2a\xd4\xc0\xb9\x95\x54\xac\xba\xb2\xe6\x42\xd4\x59\xe1\x51\x00\x8a\x86\x1a\x9d\x5c\x55\x37\xbb\xf2\x29\x53\x55\x7f\x44\x5b\x36\xba\x67\xf8\x69\xd9\x35\x26\xef\x86\x25\x8c\x58\x66\x80\xb7\xb7\x1c\x2c\xc4\x62\x7e\x3a\xf7\xce\x86\x62\x29\x4b\x1c\x08\xed\xae\x2c\x2e\xe4\xb7\xa8\xe2\x22\x48\xfa\x64\xee\xa2\xac\x27\x31\x9a\xe2\x8a\x73\x2f\x3e\x78\x10\x6f\xb0\xa9\xb2\x1f\xd3\x21\x90\x62\x71\xf7\x70\xca\x43\xac\xa2\x4e\x8e\x47\x34\xf5\xfb\x82\x14\xea\x46\xcf\x95\x8a\x52\xcb\x25\xe0\xd5\x7e\x3c\x57\x9d\x3f\x2c\x15\x4d\x07\xdb\xef\xa4\x48\xa8\x22\x65\xb5\x09\x05\x02\x7d\xd1\x3e\x3b\x03\x89\x31\xed\xe4\x96\x62\x4a\x0c\x12\x41\xd7\x0b\x51\xf4\xe2\x46\x54\xc5\xa9\xc0\xf4\xd8\xa2\xcc\x8a\xfb\x53\x97\xc4\x53\x09\x0f\x5c\x37\xbe\xad\x69\x7e\x19\xfc\x74\x12\x05\x98\xbd\x5f\x3d\xef\x5e\x96\x9b\xd5\xdd\x7e\xfb\xb0\xda\x8c\x52\xa0\x2a\x49\x45\x10\x0c\xa0\x2d\x9d\x2e\xb3\x77\xa3\x92\x11\xf8\x5e\xa5\x8c\x22\xb5\xe8\x10\x59\x3b\xce\x3b\xab\x34\xb5\xe0\x21\xd4\xcb\x52\xcd\x3f\x4b\x39\x9a\xc8\xde\x58\x2a\xa1\x35\x82\x88\x0e\x03\xb8\xb2\x3f\x64\x14\x42\x27\x7f\x94\x0d\x3c\x97\x6d\x1c\xd9\x2e\x8a\x43\x56\xcc\x5b\x0b\x71\xb9\xbd\x5d\x76\xdf\xa9\x76\x67\x73\xb0\x5b\x93\x9f\xa0\x50\x30\xcb\xdf\xca\x2a\x6b\xde\x0f\xd7\x90\xb7\x4a\x0a\x8e\x64\x1b\x12\xa3\xef\xaa\x7c\xab\xc4\x61\x58\xc0\x56\x8a\x44\x28\xa7\x2e\x51\x01\xc2\xe2\x5c\x27\x85\x9a\xf1\x43\x28\xca\xb0\x34\xb4\xaf\xa1\x79\x39\x15\x60\x5b\x79\x09\x99\x7c\x71\x15\x73\x91\x0c\xda\xd1\x06\x6b\x54\xc5\xb6\x61\xe4\x54\x43\xb5\xd2\x03\xa5\x00\xaa\x54\x2a\x30\x27\x87\xda\x7b\x1d\xea\xec\xf3\x18\x42\x69\x1e\xa4\xc3\x7e\xa6\x5d\xe9\x8b\x13\x93\xf7\xaf\x63\x85\x74\xe4\x4f\xa5\x06\xbf\x37\x2a\xad\x13\x2c\x67\xe7\xe5\xdb\xa8\x01\xc2\x1d\x06\xe9\xe8\x68\x7d\x04\xef\xc8\x42\xae\x1a\x3d\x1d\x44\x01\x71\x25\x5c\xe7\xae\xae\x74\x6b\xfc\x2e\x26\xe0\xf0\x37\x34\x89\x05\x73\x4f\x5d\xcd\x5f\xfe\xdc\x78\xb5\x51\xaa\x89\x90\x56\x08\xc8\xd5\x44\x9d\x87\x59\x3d\x0e\x24\xe9\xa9\x26\x32\xc1\x80\x04\xf3\x43\x8e\x2b\xdb\x1f\x52\x29\x87\xce\xc1\xb7\xc5\xb4\x2b\xad\x50\x9a\x18\xb0\x04\x51\x61\xf8\xc7\xb0\x3f\x56\x87\xcc\x60\x6f\xc9\x63\xf9\x66\x9f\x7c\xd9\x4c\xcc\xa2\x0e\xa3\xd4\x4a\x66\x69\x8d\xd5\x78\x57\x58\x99\x6c\x62\x93\x37\x15\xc6\x56\xd7\x0b\x7d\xe7\xc7\xac\x0b\x9f\x75\x28\x29\xb6\x46\x3c\x88\x72\x50\x60\xd1\x34\xd4\x91\x18\x74\xcf\x69\x24\x90\xeb\x8e\x32\x93\x38\x07\x02\x21\x6a\xb3\xa2\xfe\x09\xd5\x68\x7f\xd7\x8c\x69\xdc\xa8\x1d\x70\x19\xf4\xa0\x49\x67\x34\x4f\x34\xa7\x14\x7b\x69\x97\xf3\xc5\x7c\x18\xc1\x6b\x2e\xa2\xc4\x4b\x3f\x1c\x85\x82\xfa\x3d\x3b\xbe\x1e\xdf\x2a\xa1\x61\x18\x6a\xe8\x28\x4a\xb5\xec\xe8\xb6\x5c\x49\x09\xd5\xf7\x26\xb1\x81\x8e\x64\x80\x29\x56\xeb\xfe\x83\xb6\xf5\x11\xe4\xb4\xc7\x0d\x7c\xe8\x85\xe8\x48\xa5\xa1\xe9\xbd\x5a\x4b\x8c\xbd\x11\x95\x38\x4c\xc2\x7e\x1d\x13\x69\x91\x8e\x4d\xe5\xa4\x87\xf3\x7c\x2e\x7a\x01\x98\xc9\xc7\x88\xa9\x12\x1d\x4b\x5f\xe6\x28\xfa\x0e\xc7\xe6\xfc\x5c\x36\xeb\xa2\xfb\x34\xb1\x12\x36\x11\x69\x5d\x83\xd1\xab\x89\xc1\x36\x6b\x60\x61\xb3\xc1\x8d\xcd\x1d\x49\x82\x44\xbb\x50\x18\xa1\x35\x43\x6c\x97\x4e\x02\x8d\xf4\x1a\x2b\x33\x84\xab\x4d\x6b\xfa\x3a\x89\x42\xd0\x23\x02\x01\xbb\x02\x2c\x66\xe7\xba\xa5\xd2\x49\x62\x75\xd1\x8f\x15\xac\x94\xed\x54\x19\xd5\xab\x74\x0a\xc2\x33\x93\x61\xff\x09\xfa\x8a\x0b\x51\xe8\xc9\xf6\xa5\x45\xaa\xb0\x6a\x8b\x08\x9e\x76\xfb\xb2\x6c\xfb\xfe\x3a\x92\x02\x82\xde\xf7\x98\x84\x9b\x55\x20\xb0\x4d\xa4\x81\xb7\x81\x88\xf4\x75\x9f\x55\x4b\x93\x5c\x20\x72\x16\xe5\xe1\x98\x43\xbf\x24\x14\xb1\x95\x57\x23\xb2\x7c\x2b\x0c\x3c\x66\x87\xac\xe9\x0f\x5a\xca\x86\x99\x9e\x0d\x94\x23\xa9\x56\x21\xc1\x64\x6f\xaf\x4b\xf7\x99\x8c\x7b\x7f\x43\x8a\x52\x99\x76\x84\x27\x51\x77\x39\x6a\x30\xcf\x68\x9f\xf1\x4b\x95\xfd\x86\xf3\x41\x2b\x16\xa2\x33\x85\x38\x4d\xf2\x09\x97\x2c\xd5\x4a\x30\xbc\xd5\xed\x49\xb6\x0f\x36\x2a\x59\xbb\x42\x19\xe9\x2e\xab\x24\xf6\x58\x3d\x96\x6f\xf7\x65\x9e\xf7\xce\xcf\x8d\xc7\xd1\x01\x55\x2e\xe9\xf6\xf8\xf8\xcd\x06\x4c\x5d\xee\x5c\x6b\x1e\x52\x2b\x75\xe3\x37\x8f\x27\xe8\xe0\x34\x83\x8b\xc4\x69\xec\xd6\xf3\x72\xbb\xde\xdc\x98\x6f\x5a\x0b\x2c\x38\xd4\x28\xf8\x6e\xc5\x9a\xef\xc4\xf1\x38\x11\x5a\xa4\x1a\x48\x8a\x1b\x60\xeb\x67\x8e\xb8\xf4\x06\x58\x39\x0d\x51\x84\x3d\x33\x70\xc8\x9a\xbf\xa5\x8e\x47\x35\xb4\x3e\xbe\xbd\xcd\x07\xc8\x26\xbb\x9f\x36\xa9\x46\x1f\xcc\xc9\x78\x4d\x1e\xd1\x80\xcd\xe8\xb7\x3f\xe7\xa7\xee\xf2\x87\xc8\x4f\xa2\xb9\xa2\xae\x7f\xba\x80\xfc\x76\x57\x02\xa2\x29\x77\x09\x81\xaf\x70\x7e\xad\xc1\x3b\x52\xd3\x61\x09\x72\x24\xb4\x93\xda\xc2\x7c\x30\xfd\xe3\x56\xb4\x1f\x64\x6c\x0d\xc5\xd5\x56\x2f\xfb\x36\xae\x7e\x09\x08\xb9\x71\x30\x80\x42\x3b\x22\x91\x4f\x9b\xe7\x51\xda\xb2\x9d\x25\xad\x53\x8e\x89\x42\x7f\x03\x34\xb6\xd1\xd9\xde\x09\x8f\x8c\xa1\x8d\x9f\xae\x00\xa0\x3a\xc6\x86\x69\x0f\xdc\x70\xc9\xb3\x1f\x98\x2f\xac\x0e\x63\x9c\xc1\xb8\xda\x35\xfe\x07\xe7\x4f\x18\xf8\xcb\x1a\xa9\x07\xe2\x80\x3d\xf9\x8c\x3b\xce\x48\x6c\xe1\xaf\x50\x0f\x76\x9f\xb5\xb9\x03\xcb\x57\xe1\x1f\x8d\x31\x2b\x21\x74\xb7\x19\x1a\x72\x60\xed\xee\x35\xcc\x52\x6f\xca\xaa\x31\x65\x9e\xf9\x30\x09\x38\x95\xa1\x43\xdf\x6d\xb3\xf6\x06\x1d\x58\xee\x53\xf4\x28\xf0\xd4\xc2\x75\xda\xc0\xd2\x66\x90\x2e\x2d\xd1\x8d\x33\xb5\x55\x4e\xd1\xa0\x72\x51\x39\xd4\xe7\x95\x25\x03\x1c\x12\xcc\x53\xf4\xd5\x96\xcf\xc1\x31\xfe\x34\x43\x50\x56\xea\xbd\x3c\xf9\x2c\x0e\xc4\x69\x02\xde\xdb\x77\x62\xe2\x2b\xfd\x3d\x6b\xde\x31\x95\x39\xb4\x5e\x10\x8b\x34\x70\xb9\xa6\x95\x2a\xa7\x2a\xbd\x14\x62\x9d\x22\x30\xcb\xa2\xb2\xbd\x08\xc8\x2d\x62\xaa\xd1\xa5\x13\x05\x98\x1c\x84\x42\x95\x1a\x56\x66\x99\xd7\xbf\x41\x5c\x41\xca\x63\xcc\x72\xf6\x7c\xf2\x98\xcf\x19\x3f\x71\x1a\xd1\xb8\x13\x89\x32\xcd\x42\x1c\x57\xc5\xe2\x42\x33\x81\x42\xaa\x6c\x97\x6d\x0d\x9e\x17\xe7\x33\x9f\x0e\x84\x62\x72\x88\xbe\x19\xb5\x79\x4c\x5e\xba\x0c\x48\xea\x95\x73\xad\xcd\xed\xa8\xed\x6f\xac\x51\x49\x13\x64\x03\xf3\x9d\x7b\x0b\x71\xb4\x35\xa5\xe9\x0b\x97\x49\xe4\x52\xe3\xc8\x85\x0c\xda\x2b\x94\x3b\x32\x80\x27\xf1\xbf\x5d\x95\x16\x14\x4f\xe9\x50\x03\xcf\x46\x40\xe2\x36\x31\x2c\x05\x95\x18\xac\x28\x60\xe6\xd0\x0a\xeb\x0d\x5a\x93\x41\xc9\xc8\x4b\x45\xf9\xb6\xf9\xbb\x0b\x32\x1e\x50\x8a\x21\x94\x14\xcb\x2b\xd6\xeb\xdb\x76\x49\x55\x50\x86\xa0\x5b\xf8\xd4\x06\x41\xc5\xd7\x51\x9b\x2d\xe8\x40\x84\x30\x88\x77\xbe\x97\xd5\xc7\xe0\x3d\x4f\xb7\xcf\xf1\xef\x6a\x16\x47\xd6\x2d\x00\x51\x9f\xaa\xf3\xb6\x2f\xc7\x82\x36\x32\x49\xbb\x26\x39\xec\x9f\x79\x87\x62\x23\x4e\x17\x7e\x2b\x98\x10\xb0\xc8\x55\x37\xe5\x71\x83\xfe\xd5\x53\xd6\x5f\xc8\x84\xe0\xe9\x66\xe7\xb3\xd5\xc5\x5c\x1f\x5f\x29\x0a\x98\xe9\x18\x0e\x10\x2f\xfb\x5c\x5e\x8a\xb3\x8f\xbf\x81\x09\x42\x83\xbf\x80\xa8\xec\x61\x7b\xb2\x09\x64\x28\xa3\xae\xfa\x61\xb2\xfc\x7a\x36\xcd\x10\x06\x49\xe4\x31\xc4\xcd\x2d\xe7\xc8\x0f\xd6\x12\x91\x4d\x6d\xac\x9e\xe9\x1e\x28\xe5\x7f\x34\x54\xd2\x66\x70\x2d\x67\xf5\x17\xcf\x04\x4d\x0d\x15\x1a\x2b\x75\x1b\x51\x1d\x50\x9b\x7b\xf8\x29\x0d\x53\x16\x8f\xbd\x78\x87\xaa\xea\x2c\xac\xe1\x2a\xf2\x7a\x52\x7b\x2d\x1a\xb1\xc7\xa9\x76\x61\x2e\x47\xcf\x13\x11\x86\x3b\xd5\x2e\x2b\xce\x96\x2b\xf1\xb1\x2c\x3f\x4e\xbe\xd0\x60\x22\x66\x3b\xe9\x6b\x68\x90\x74\xd9\xde\x47\x6f\x3d\x4d\xc4\x6c\xce\xdc\xed\x2b\x96\x22\xf8\x86\xb1\xb9\x56\x3b\xf3\x97\x49\xb8\xa7\xb2\x7c\x2d\x2c\xf5\xa0\x7e\x10\xf9\x8f\xac\x78\xdb\x9e\x64\x9d\x4d\x9d\x6b\x13\x81\x25\x70\xf3\xec\x8c\x37\xdc\x8d\x9b\x26\xcf\xc4\x5a\x21\xaf\xd5\xbb\xa8\x5f\x10\x0f\x80\xd4\x13\x57\xd7\xae\x49\x82\x48\x76\x75\x8f\x99\xfe\x91\xd5\x65\x75\xb6\xb6\xad\x17\xb5\x6d\x87\xa5\xae\x57\xd7\x46\x9b\x33\xed\x39\x4d\xb6\xea\x1d\x0e\xe2\xa6\xd6\x0e\x35\x69\x10\x23\x56\xf7\x69\xf6\x27\x32\x03\x2f\x77\x0f\xcb\x97\xfd\x76\xb3\x7c\xf6\xcd\x7f\x26\xa5\x09\x58\xb8\xbf\xf7\x63\x1e\x07\xe2\x9c\x93\xa9\x27\x68\x6c\xdb\xb2\x4f\xf5\x11\x0a\x0d\xfa\xb5\x68\xba\xcc\xbe\x11\x2c\x75\x12\xb8\xcd\x7d\x6e\x35\xc9\xc6\x0f\xac\xb4\xf4\x64\x52\x4e\x6c\xac\x8d\x7b\xbb\xe9\xa9\x03\x12\x5b\xea\x7f\x24\xd2\x71\x4d\x57\x93\x6b\x68\xc6\x31\x07\xb0\x7e\xf2\xf5\x23\x03\x41\x8c\x28\xcc\xb9\x28\x54\x59\xfd\x6b\x20\xbb\xdf\xaf\x44\x20\x5a\x0c\x19\x89\xdb\xed\x73\xb9\x7b\x18\xef\x45\x06\xb8\xc4\xec\xcd\xbb\xa8\xf4\x42\x1c\x5d\x43\xe1\x97\x52\xe4\x7e\x4f\xf2\x03\x23\x82\x8d\xf6\xc7\x53\xfd\x8e\x32\x66\x55\x3d\x6d\xa4\x30\xa0\x03\xe4\x08\x7a\x17\xf5\xb2\x28\x4f\x6f\xef\x03\xc3\x6c\x4c\x28\x8c\xdb\xa8\x67\x4d\x73\x89\x63\xfa\xff\xfa\x5f\xff\xb3\x4a\xe1\xab\xda\x40\xbb\x1f\x0d\x5a\xa2\x59\x10\x48\x8e\x2d\xd1\x7b\x04\x22\xdc\x9c\xf6\xd3\xa2\x01\x0b\x88\x96\xc4\x13\x8c\x79\xda\x8d\x6b\x13\x9e\x05\x21\x21\x88\xfc\xd8\xd7\xd0\xac\xab\xec\x2d\x2b\xba\x5e\x8d\xc9\x40\x9e\x62\xea\x7a\xfe\x3c\x84\x4b\xb1\x20\x8c\xa4\x91\x3e\x7c\xaf\x3e\xda\xab\x20\xe5\xd3\x69\x92\xba\x66\x41\x28\xac\xd0\xe9\xbf\x4f\x3a\xfb\xab\xcf\xdd\xb0\x80\x86\x49\x14\x79\x8c\xca\x12\xe1\x61\xad\xbb\xe8\x38\xf5\xc4\x4d\x74\x0b\x0b\x68\x42\x69\xef\x42\xa3\xf3\x3d\x2b\xf4\x10\x6c\x75\xed\x9d\xb7\xe7\xe9\x10\x06\x53\x6f\x56\x1d\xce\x93\xbb\x65\x51\x90\x98\x4e\xc6\xd3\x27\x82\x06\x26\x95\x05\x9c\xc7\x32\x71\xb2\x2f\x16\xd7\x53\x7f\xc2\x18\xcf\x02\x2e\x1d\x70\xec\x67\x56\xd7\xf3\x6c\xfa\x7e\xb8\x0e\x28\x74\xa2\x8a\xf6\x7a\x53\x1a\x82\xe9\x15\x81\xa2\xd6\xa8\xeb\x9d\xde\xd7\x83\xfc\x05\x0b\x22\x16\x11\xd7\x38\xf7\x54\x8e\xbb\x65\x59\x10\x29\xf0\x39\xa8\x8d\x50\x1f\xe2\x0d\xac\x3b\x36\xd9\x8c\xfd\x68\x88\xc2\xa8\x17\x02\x1f\x74\xb4\xfd\xbf\x9a\xf5\xed\x05\x53\xec\xc2\x38\xe6\xe2\x6c\x65\x9d\x26\xf7\x17\x07\x1c\x93\x96\x5e\x8a\xa9\xb5\x0e\xed\xac\xfc\x6c\xdf\x6f\xcf\x32\x78\xd6\xde\xde\xe8\x1f\x97\x01\x69\xe2\x46\x26\x51\x60\xdc\x7e\xf7\x20\xea\x45\x79\x70\x02\x1c\x50\x0d\x7b\x7b\x9c\xd9\x66\x41\x12\x5b\xfa\x89\x1f\x36\x62\x82\x5e\xc7\xf1\x4b\x55\x9e\x8e\x53\x53\xc3\x82\x34\x22\xba\x43\x81\x94\x65\x7e\xd9\xd3\xcc\x82\x54\x1b\xac\x97\xb5\xcf\x87\xa5\x18\xf7\x77\xa1\x13\x74\x94\x91\x8b\x64\x56\x77\xe9\xea\x4f\x82\x40\x77\xa6\xd4\x29\xc6\x25\x77\xaa\xac\x8e\x08\xd9\xb0\xac\x48\x17\x7b\xa6\x1b\xaf\xc2\x18\x01\x65\x4d\xe9\x09\x35\x6f\xcc\x34\x65\x08\x7e\x2f\x5b\x1e\xc4\x87\x71\xac\xed\xe3\x57\x3c\xe5\x08\x1b\xff\x9c\x36\x3a\x02\xe7\x16\x2e\x8b\xaa\xcc\xf3\x43\xe7\x5f\xb2\x00\x82\x18\xbd\xa8\xec\x70\xcc\x2d\x0f\x0b\x7b\x01\x0d\x70\xbd\x84\xd8\x8e\xb7\x81\xe6\x3f\xb3\xe2\xeb\x49\x14\x6f\x8f\x99\xe8\x6c\x0a\x38\x69\x51\x9f\xde\xfa\x96\x89\xdf\x77\xe1\x30\x12\x24\x0c\x71\x0c\x3f\xca\xeb\x04\x6c\x8c\x10\x25\xac\xac\x64\x23\xaa\x66\x53\x65\x3f\x44\x83\xc2\x17\x77\x1d\xc4\x8b\x11\x02\x11\x2e\xf4\xe7\xb2\x58\xe2\xb4\xfa\x01\x57\x95\x8a\x4e\x03\x58\xd5\xb5\x90\x89\x91\x50\x6a\x34\x31\xd3\x0e\x39\x77\x98\x52\x1b\xcb\xef\xa0\x6e\x96\xbb\xc5\xc0\xa8\x12\x46\x0c\x26\x05\x17\x2f\xff\xde\xec\xd6\x0f\xcb\xbb\x2f\xcb\xc5\xe7\x3a\x57\x8c\x30\x19\xa1\x05\xb2\x05\xd1\xb9\x18\x10\x32\x8e\x7f\x97\x01\xc1\x22\xd6\xf3\xf2\xfb\xa2\xdd\xaf\xc6\x47\x39\x95\xb1\x95\xf2\xad\xdf\x7f\x8b\x24\x63\x24\x8a\x2d\xe1\x98\x5f\xe9\xf8\xaa\x76\xe5\xb8\x40\xdd\x0e\xb3\xb2\x4f\xdb\x77\x71\x80\x1c\xea\xfa\x75\xb9\x7b\xc9\x8e\xa5\x31\x7e\x44\x6c\x28\x56\x57\x90\x27\x6e\xa8\x46\xe2\x8e\xa7\x21\x41\xf9\xad\x06\xc4\xa1\x67\x17\x1b\xbf\xf0\x14\x0c\x8a\xad\x2f\x4a\x4b\x10\xe3\xcf\x15\x21\x45\xe0\x1a\xc6\x8a\xb7\xd2\x4b\x17\x05\x39\x46\x64\x1c\x20\xeb\x40\x79\x84\x62\xe3\x79\x48\x19\x91\x49\x22\x2d\xd7\x6a\x05\xf0\x94\xe5\x79\x56\x16\xbb\x9f\xe5\xc3\xa9\xd0\x15\xe8\xdd\x7b\x79\xaa\x85\xf7\x4c\x18\xd1\xc4\x86\x7b\x05\xfc\x6a\xee\x00\xe7\x5c\x37\xa5\xfc\x90\x50\xc5\x1d\xe2\x79\xb8\x05\x8d\x5e\xb5\x8e\x05\x96\xc6\xe7\x20\x4e\x0d\x36\xa8\x8c\x2f\x02\x29\x38\x46\x8f\xdb\x2b\x65\x32\x43\x21\x30\xa2\x87\x97\xcf\x6d\x2a\x2a\x2b\x6c\xf9\x65\xa4\x96\x30\xca\x53\x31\x02\x22\xc0\xb4\xcd\xa6\x82\xb7\x42\x5c\x6e\x9a\x37\x7e\xcf\x44\x31\xf6\xdb\x2e\x9e\xd6\xfb\xed\xc3\xec\xc5\xd5\x74\x59\x18\x44\x0a\xad\xc1\x40\xb4\xfd\xb3\xa0\x8d\x85\x41\x6c\xf7\x5b\x6f\x22\xbc\xce\x42\xf3\x5e\xb5\xae\xe1\x1e\xdf\xc2\xbe\x29\xf7\x6a\xca\x27\x77\xd5\x76\x84\x84\xd8\x4f\x6d\x53\x05\xd7\x9a\x2a\x58\x18\x86\x21\x03\xd7\xb5\xe3\x5c\x8a\x61\x78\xc0\xc2\x90\x0a\x7c\x2b\xc2\x67\x3b\x3e\x05\x4b\x4d\x2e\xae\x53\xcf\x9a\x36\xbb\x7b\xf1\xef\x85\x3a\x48\xc1\xeb\xf3\xd7\xe7\xf5\xf7\xe7\xfd\xee\xdf\x9b\xee\x9d\x31\x02\xd2\x51\x70\xe6\x39\x14\x6f\xe8\x83\x6f\x44\x6d\x81\xb4\xfa\x52\xe9\xbc\xe7\xa6\xeb\xe3\xbb\x71\xfa\x9a\x85\x2c\x8c\x51\xb9\xc4\x6a\xf4\xe0\x82\x71\xc5\xce\xa1\x2e\x50\x17\x59\xb2\x90\x25\x56\x8d\xf0\x0d\x9a\x79\x25\xd4\x07\x34\x36\x29\x85\x17\x76\x5b\x8a\xdd\xbc\x1d\x24\x8f\x85\x3c\x48\x78\x9f\xca\xb3\x84\x1e\x57\xa7\x7c\xc8\x15\x50\x3b\x2d\xb0\x0e\xb7\x13\x13\x96\x59\xe7\x0f\x84\x11\x35\x98\x1c\x6f\xaf\xb8\x5a\xac\x3f\x91\x47\x61\x61\xc4\xad\xc2\x9e\x12\xc5\xc2\x56\x0b\x87\x48\x14\x32\xb9\x30\xb7\x54\xec\xf7\xe2\xa4\x5a\x1f\xf9\x2a\x75\x78\xf7\xf2\x22\xce\xc4\x50\xef\xc6\xb2\x39\xfd\xd1\x1d\xe5\x08\xfb\x3d\xa2\x94\x19\xe8\x25\x26\xfe\x26\x73\x2c\x0e\xb4\x27\xb8\xf4\x0a\x93\x07\xf1\xcb\xce\xe2\x09\x58\xdc\x9f\x11\x32\xec\xa8\xdb\x5b\xc8\xcc\x80\xb7\xd7\x0d\x48\x02\x85\x04\xbc\xce\xfd\x3b\x1d\x8f\xe7\xad\xc8\xa7\x5d\xd0\x9f\xaf\xdc\x30\xe1\x02\x1b\x23\x66\xf9\x31\x2b\xe0\x09\xde\x44\x9e\x35\x7f\x63\x83\x08\x53\x26\x89\xf1\x5b\xee\x7d\x56\x8d\x20\x6a\x2c\x4c\x65\xcc\xb9\x6b\xa1\xc2\xed\x18\x35\x69\x4e\x45\xd1\x01\x6f\x58\x98\x02\x84\xae\xa7\x1a\x83\xf9\x8d\x38\x0f\x88\xb9\x58\x28\xa2\x60\x24\x67\x6f\x09\x51\x07\x73\x54\xc4\x0c\x6b\x78\xde\xff\xdb\xc1\xc8\x66\x5d\x6b\x89\x64\xa1\x10\x0c\x49\x0f\x9c\xde\x67\xcf\xa0\x39\x7e\xfd\x02\x04\x32\x21\x62\xa3\xdd\x0f\xa8\x06\xdb\x78\x28\x03\x11\xd3\xae\xdc\xb6\x11\x67\xd0\x93\x8c\x3e\x0b\x25\x04\x48\x9c\xda\xc6\x70\xb3\xe3\x71\x65\x9e\xe1\xe7\x05\x69\xeb\xf8\x14\x15\x87\x04\x5c\x11\x60\xeb\x59\x37\x6b\xa8\x5e\xeb\xac\x78\xbb\x43\xd2\x23\xd0\xe3\x2e\x4d\x16\xaa\x54\xe1\xf6\xb0\xf7\x98\xad\xdf\x18\x44\x05\xb6\x83\xce\x54\xe5\x5f\xc8\xeb\xd3\x4c\x38\x80\x59\xa8\x49\x88\x4d\x20\xdf\x21\xfb\x0e\xd9\xd5\x16\x08\x3f\x32\xd6\xb2\xd3\xb6\x9a\x0d\x58\xef\xfd\xdd\x69\xd7\x1f\x8e\x24\xa2\x56\x7b\xc0\x96\x02\xbe\x88\x5e\xd8\x87\x85\x5a\x76\x7a\xf1\x36\x5e\xf5\xcd\xef\xce\x5e\xfb\x61\xda\x50\x87\xf5\x9a\x97\xe5\xc7\xad\x7c\xbc\x1f\x0d\x04\x7d\x93\xdd\x50\x8c\x6f\xfa\xfa\x40\x47\xa9\xcb\xaa\x5b\xfa\xc3\x9e\x24\xa4\xfb\x59\xa3\x28\x3a\xc8\x4a\xd4\xef\x83\x88\x80\x06\x3c\xc2\xb2\xe6\xcf\x2a\x6b\xe0\x09\xda\xa0\xb0\xd0\xd9\xc0\x7d\x19\xad\x18\x1a\xc4\x56\xc6\xcc\x66\x6a\x5f\x40\x9d\xaa\xf6\xe8\x3c\x43\xe8\xfb\x55\x95\x0d\x46\x03\x9d\x78\xf6\xd9\x47\x51\xe3\x3d\x4e\x2d\x05\x25\x51\xec\x35\xed\xf0\x73\x7e\xcf\x46\x6a\x3f\x8c\x92\x44\xf2\xa1\xb0\xe7\x43\x89\x6a\x54\xd3\xcb\x18\x12\xb1\x9e\x3a\x6c\x7f\x74\xdc\xe5\xee\x70\x18\x86\x2a\xe8\x0f\xdf\x63\x09\x10\x15\xea\x3c\xa9\xd7\x68\xd3\xa4\x61\x98\x78\x21\xa5\xc7\xb2\xb5\xc9\xa7\xa2\xb9\xbf\xd0\x00\xf3\x83\xa9\x95\x02\x79\x52\xf7\xf9\x19\x1b\xd5\x6f\xb5\x74\xfc\xff\xfd\xaf\xbf\x21\x90\xa8\x17\x36\x65\x3d\x79\x14\x56\x13\xfc\x07\xca\x1d\x3e\x97\x16\xa1\x3f\xd8\x0e\x28\x55\x69\xec\x88\xe5\x4e\x47\x5b\xfc\x9c\xc6\xa1\x94\x9a\x2e\x09\xb0\x5a\x6d\xf0\xa3\x0d\x51\x0e\x8c\xb2\x94\x73\xe2\x3a\x0d\x7a\x56\xa0\xf1\x1e\x79\x9d\x9f\xd6\x5f\x40\x19\x7c\xa1\xaf\x35\xcc\xcf\xdb\xd2\x34\x3f\xc5\xa4\xa2\xc4\x28\x03\x9b\xe4\x72\x35\xba\xc7\xb2\xbe\xb0\x9d\x6e\x24\x0f\x63\xe1\x3a\x1e\x07\xf4\x03\x93\x31\x1c\xb0\xbd\x2f\xab\x67\x93\xdf\xe1\x69\x82\x3b\x19\x26\xc4\x67\x93\x6d\x8c\x46\x44\x21\x07\xe0\x31\x53\xe5\xb1\xde\xcb\x9e\xd1\x9b\xd1\x28\x24\x4e\x2c\xe0\x24\x73\x58\x16\x4d\x75\x1e\x60\x83\x19\x8d\xa2\x54\x68\x6f\x7f\xdc\xbb\xf6\x87\x24\x41\x15\x93\x67\x14\x7a\x7b\x7d\xde\xbd\xac\x96\xdb\xee\xa0\x66\xc8\x5f\xbe\xfb\x59\xfe\xdf\xb5\xd8\xb4\xa7\x72\xec\x54\x76\xc4\x8e\xf3\x29\x1d\x25\xa3\x31\x89\x10\x19\xb1\xbb\xc7\x26\x66\xff\x9b\x71\x68\x6c\xa2\x29\x7b\xf3\x7a\x1e\xae\xb6\x35\x4a\x60\xd1\x38\x61\x98\x5f\x94\xc5\xda\x5c\xe5\x80\x67\x34\x06\xa2\xc2\x9e\xb3\x56\xe4\x30\x06\x14\x39\x70\xe3\xf0\x9f\x9b\x1e\x00\x4d\x22\x49\xfd\xae\x83\x7e\xa1\xf7\x72\xa8\xbf\xf3\x24\xb6\xb2\xbf\x8e\xa2\xca\x51\x01\x0c\xeb\xdc\xb7\x16\xd3\xc8\x25\x1d\x5a\xe9\xc1\x4c\x4d\xa4\xed\x5f\xfb\x99\x15\xba\xfc\x19\x5a\xbc\xde\x05\x7b\x12\xa3\x89\x96\xdc\x49\x15\xb9\x16\xce\x1b\x31\x04\x15\xa1\x85\xd6\x59\x9f\x1f\xf4\x77\xc8\xae\xef\x5f\x54\x18\x6b\xa3\x6a\x6c\x28\x3d\x9d\xa7\x66\x49\x86\xa1\x72\xbb\xc3\x17\x71\x80\x17\xa8\x4f\xf9\x74\xfe\xca\x50\x60\xba\xd3\xbe\x9d\xbb\xac\x3e\x9e\x9a\xcb\x52\xf1\xf5\x35\xa3\x28\xc5\x6c\x7b\xfb\xee\x6d\x4e\x68\xfb\x5e\x56\xcd\xca\xef\x9f\x54\x87\x14\x45\x10\x6c\xf4\xd4\xfd\x95\x26\x61\xec\xeb\x03\xad\x0b\x72\xd1\xcc\xc4\xa8\xe6\x04\xe9\x17\x25\x34\x77\xdd\x79\xaa\x43\x75\xdd\x97\xdd\xd5\x20\x4c\xac\xfc\x46\xeb\xb0\xd7\xef\xe3\xd9\x08\x32\xc1\xfd\x11\x0a\xbd\x52\xe5\x93\xc8\x8a\x9e\xeb\x8e\x51\x13\x49\x9e\x74\x75\xc0\xaf\xff\x5e\x4c\xde\x9f\x89\x20\xe8\xd5\x04\xf6\x16\x77\x3c\xb9\x51\x03\xb6\x91\x62\x76\x77\xf7\xb2\xdf\x7d\xfd\xb2\x9f\x6d\xb7\xeb\xc5\x6a\xd6\xab\x32\x32\x46\x78\x8a\x50\xdf\x1c\x81\x26\xcb\xff\x9e\x84\x6f\xb6\x19\xb4\x81\x0d\xef\xbb\x3d\x43\x74\x05\xdd\x4c\xc1\x7a\x04\x7d\x63\x98\x97\x48\x7d\x68\x5e\xb7\x1b\xd3\x03\x88\xbc\x19\x02\xdd\x58\x1b\xa7\x48\x5c\xc9\xcb\xed\xee\x8a\x5a\x24\x6b\x5d\x58\x4c\xb9\xac\xf3\xec\x07\x7c\x11\x95\x86\xa2\x7e\x81\xba\xf4\x58\x14\xc6\x42\x65\xac\x75\x3b\x35\xf3\xa6\x6c\x23\xb9\x6d\x73\xd1\x28\x72\x95\xe1\xf5\xda\xbf\x53\xff\x71\x74\xb3\x40\x94\xcf\xf9\x67\x79\xeb\xd3\x4e\xe8\xb5\x19\xa3\xcc\x06\x68\xf2\x74\x5e\x17\x73\x78\x17\xb9\x69\xef\xc8\x37\x68\xae\xc6\x79\x43\x12\xfa\x4b\x53\x41\x83\xbe\x1d\x74\x55\xd4\xa7\x0a\xaa\x4e\x59\x70\xf9\xe3\x96\xc2\x09\x63\xd4\x04\xc2\x6e\x31\x55\xf6\x03\x2c\xcc\x75\xc8\x10\x81\x35\xb9\x41\xd4\xda\xf9\xf6\x8c\x31\xcb\x58\xdd\xda\xef\xcd\x7a\x37\xdb\xad\x3b\xf3\xcd\x98\xa6\x3c\x9c\xa8\x96\xad\xbb\x94\x13\xe3\xa1\x41\x95\xca\xa6\x3a\xcf\x4f\x17\x58\x3e\x3f\x88\x76\xbc\xe1\x7d\x83\xaa\x75\x61\x6f\xb5\xa5\x32\xc6\x99\x51\xae\x4d\xae\xf7\x13\x97\xa2\x2a\xb0\x81\xa3\x2c\xf3\xfb\xb2\xb2\x61\xd0\xf5\xd7\xc1\x39\xc4\xbd\x25\x75\x8c\x19\xd7\xe5\x74\x3e\xfd\xd7\x7f\x18\x1e\x07\xd4\x02\xeb\xd4\x07\x72\x92\x0f\x88\x88\xba\xb7\xa1\x04\xe6\xd4\x91\x07\xea\x77\xdd\xfa\xfe\xc2\x11\x55\x88\x30\xf7\x4d\x84\x22\xcb\xcf\xae\x85\x66\xb4\xc2\x59\x04\x04\xe3\xc7\x4c\x95\x88\x95\xf5\xbf\x1a\x1b\x20\x81\x2b\x82\xcc\xab\x4c\x77\x51\x1d\x4b\x0c\x84\x36\x23\xa3\x77\x20\x0e\x23\xbf\x87\xa5\x51\x10\xf6\xd2\x09\xff\x3a\x95\x53\xca\xa9\x76\x48\x8c\xdd\x07\x18\x78\xee\xdf\xba\x2e\x45\xc6\xd2\x38\x09\x53\x0b\xa9\x6e\xdf\xc3\x38\x78\x60\xa9\xd6\x9c\xbb\xf2\x5b\x5f\x59\xf0\x47\x65\xc8\x31\x16\xdd\x8a\x76\xcf\x18\x99\x0a\x49\x19\x42\x8d\x30\x36\x0d\xef\x40\xe8\x3c\x2b\xba\x1f\x95\x46\x44\xd2\xae\xa9\x05\xe4\x20\x91\x62\x7e\xfc\xd5\x55\x48\xa1\x13\xa7\xfc\xbd\x8b\xc1\x54\xcc\x63\x31\x6a\xdd\x5a\xa9\xd2\x51\x86\xf9\x21\x29\xd1\xcc\xab\xc6\xff\xf2\x95\xd5\xc9\xcf\xa6\x96\xf8\x4c\x95\x87\xa3\xa8\xc0\x35\x33\xb9\x95\xfd\x8f\x1b\xff\xfa\x73\x65\x8a\xd5\x63\x9b\xe9\xd8\xba\xee\xdc\xc9\xf5\x01\x90\x5a\xf0\x1d\xf2\xbc\x44\x5a\xed\xef\x20\xfd\x0d\xea\x80\x21\x70\xd1\xb7\x12\xd8\xd4\x4d\xbf\x75\x30\x2d\x74\xd0\x6f\x9b\x7a\xc8\x61\xe4\x47\x80\xed\xed\x5a\xf4\xd5\x8d\x21\x48\xc0\x8d\x82\x40\x25\x43\x9a\xd2\xfb\xe9\x71\x21\x53\xcb\xb9\xfc\x03\x5a\xd7\x72\x7f\x1c\x38\x90\x0c\xa4\xc0\x49\x61\xa3\xe1\x3b\x71\xae\xef\xcb\x91\x9c\x31\x63\x86\x25\xa9\x5b\xf3\x9e\xd7\x14\xa6\xab\xc0\x24\x61\x22\x2c\xb5\xdb\x83\xaf\xd2\x12\xff\x9e\x8c\xb2\x68\x12\x3b\xa7\x5f\x20\x47\x40\x9f\x37\xe1\xc3\x2f\xcf\x83\x00\x02\x3e\x41\x3a\x6c\x44\xd5\x0c\x1c\x5b\x1e\x50\x21\x5d\x45\xfc\xce\x72\x4d\xfa\xcc\xf7\x17\x31\x99\x02\x3c\x88\x6c\x86\xe5\x6b\x29\x72\x81\x06\xc2\x5f\x85\x44\x36\x5b\x36\x6a\x4a\x0c\xa3\xee\x70\x2a\x10\xb9\xdf\x88\x0f\x18\x16\xf8\x3e\x4d\x3b\x73\x22\x92\x34\xc5\x10\x60\x7b\xb2\x60\xeb\xc9\x71\x49\xb5\x63\xcb\x42\xe9\x7f\x57\x41\x73\x47\xc3\x84\xe1\xd9\x7b\x24\xe9\xc0\xa6\xb8\x6f\xa2\xca\xda\x09\xd8\x3d\x3c\x65\x56\xa8\x5c\x68\xfd\x74\x6a\xd7\x63\x71\xdf\x09\xa7\x5e\xde\x0f\x35\x06\xfb\x59\xca\x76\xea\x0f\x23\x62\xce\x88\x89\x93\x81\x21\x47\x20\x79\xf9\xeb\x3c\xaa\x2f\x72\xc6\x0d\xba\xe2\x8f\xaf\x8f\xaf\x43\x93\xc0\x99\x26\xc6\x5a\x37\x85\xbf\xff\x3d\x2b\x26\x8f\x1a\x85\x31\xeb\x30\x2b\xb5\x95\x31\xf2\x67\x47\x71\x82\x5b\xcf\xd3\xea\x79\xbe\xdc\xf9\xbf\xc6\x24\x46\x1a\xbb\xe7\xe5\x76\x77\xdf\xd1\xf3\x31\x1e\xeb\x38\x42\xb8\xd1\xc3\x76\xe1\xff\x96\x68\x16\x8f\x9b\x3b\x47\x0c\x11\xdd\xa8\x28\xf8\x94\xc9\xf1\x5a\x75\x8b\x27\x26\xc4\x97\x56\xff\x14\xd5\x61\x57\x4d\x31\x07\x3c\x31\x11\x46\x73\x59\x51\x63\xb3\xde\xb0\xb3\x98\x71\x11\x50\x2b\x8d\xa0\xde\x41\x9f\x5a\xd3\xd1\xac\x6e\x7d\x9e\xd6\xab\x70\x32\x0a\x77\xa2\x11\x3e\x71\x39\x5a\x5a\x5c\x50\x2b\x92\xe3\x44\x67\x6f\x74\x17\xf9\xc1\x91\x89\x99\x27\x6e\xfa\x75\x7e\x84\xb7\x89\xbe\x33\xe3\x22\x21\x81\x6b\x7c\x79\x82\x46\x5c\xd2\x8c\x5e\xfe\x7b\x19\x5e\x73\x01\x56\x29\xbb\xce\x45\xfd\xde\xda\xae\xa2\xdd\x87\x2e\x75\xa8\x19\x97\x3c\xe2\x96\x88\x2e\xcf\xcb\x66\x59\xa8\xea\x6c\xb5\x55\x40\x7d\x80\x37\x32\x5c\x0a\x4e\x5c\xe7\x9e\x4d\xa9\xdc\x80\x49\x33\xae\x94\x96\x0e\x2f\x7e\x0f\x57\x08\x34\x19\xd7\xc4\x73\xbe\xbd\x15\xed\xad\x2d\xae\x14\x29\xb9\xe6\x1c\xb1\x78\x7b\x9b\x61\xc0\xd0\x7a\x6c\x7f\x39\x84\xa1\x86\x11\xff\x59\x05\xaa\xf9\x0d\x73\x14\xe3\x10\x07\x26\x70\xe8\xeb\x43\xd6\xcc\xf1\xb9\x6f\xbe\xe2\xe1\x35\x7c\x21\x81\x1b\x6e\x41\xd8\xa2\x3e\x17\x6a\x0b\x85\xde\x66\x39\x14\xc3\x9f\x1e\xff\xa4\x11\x21\x92\x09\x14\xf0\x73\x2e\x8a\x8f\x6b\x2a\x05\x2c\x0a\x02\x82\x48\x97\xc5\xeb\xbc\xf3\x24\xa3\x20\xe0\x18\xfc\x3e\x22\xdf\xf2\x27\xde\x51\x37\xde\x60\x67\x82\x4f\x49\xdf\xa3\xc6\xba\x3f\x68\x02\x24\xbc\xb0\x29\xcc\x2e\x69\x33\xa1\x9c\x9e\x3c\xc2\x7f\xb8\x9b\x53\x11\x09\x25\xce\x94\x2f\x50\x48\x79\x1e\xda\x9b\x88\xa4\x96\xcf\xfb\x05\xd4\xbb\xa8\xde\xa0\x8d\xc3\x26\x8f\x17\xc6\x1c\x0d\xce\x0f\xab\x34\x8f\x62\x5f\x7f\xc7\x95\xbc\x58\x96\x51\x28\x02\xac\xd2\x9b\x53\xa1\xee\xab\xf2\xb0\x20\xfe\x36\x42\x13\x79\x78\xc6\xbd\xd0\x50\x9e\x90\x69\xa9\xa9\xaf\x35\x55\xb2\x88\x6a\xe0\xce\x8d\xd9\x88\xba\xb1\x79\xdf\xae\x67\xa0\x7b\x6b\x2c\xe4\xc4\x76\x02\x76\x05\xaf\x4d\x59\xd7\x3d\x2b\x11\x8b\x18\x0f\x3d\x3b\xc5\xb0\x2f\x21\x19\x2f\x8d\x88\x71\xab\x24\x83\xd9\xa0\x9e\x1d\xdb\x1f\x8d\x14\xb0\x4e\xa1\xb1\x75\x69\xb6\x5e\x89\x93\x45\x4c\xd8\x34\x70\xd7\x32\x60\x63\x61\xa8\x16\xa7\xe6\x8f\x91\x6b\x14\xf1\xd0\x32\xf5\x6d\x00\xaa\xf9\x49\xd7\xa3\x0f\x15\x31\x82\x26\xd7\x92\xbf\x1f\x6f\x60\xd9\xfd\xe0\x98\x63\x89\x6d\xfd\xf2\x65\xf6\xbc\x5a\xfc\xde\x33\x8c\x62\x4e\x10\xdb\xbd\xf9\xea\x5e\xc0\x68\xc5\x46\x71\x24\x30\xad\xb5\x3d\xfc\xa5\x0f\xa3\xfb\x4a\x93\xd0\x07\x2e\x1b\xa8\xea\x09\x49\x2e\x8b\x52\x91\x20\x4e\xcf\x92\x34\x8b\x06\x30\x07\x3b\x7c\x7d\xa9\x22\x0c\x3a\xbd\x8c\x4b\xac\xaf\x1b\x26\x68\x48\x59\x27\x8a\xbe\x78\x37\xc3\x7c\x5d\x24\x98\xd5\xd4\xcd\xea\x67\x00\x8d\x01\x83\xdb\xbf\x7a\xb1\x79\x16\xa9\x80\x28\xcb\xc6\x70\x76\x8d\x7a\x7f\x0c\x32\x59\x49\x37\x2a\x84\x0e\xa0\xb6\xd7\x70\x6c\xde\x47\x7e\x57\xa4\xa4\x40\x29\x43\x6c\x90\x6b\x7e\x96\x2b\xd7\x23\xf7\xdf\x71\x60\x10\x69\x16\x20\xc1\x75\x79\x84\x02\x9b\xf8\x5c\xe5\xb2\x3b\x4c\x84\xdd\xef\x54\x05\x07\x6c\x34\x6e\x44\x8e\xd4\xc4\xdd\x25\x40\xa6\x51\xd2\xa5\x6b\x5f\xab\x6c\xf2\x7a\x4d\x10\x4a\x89\x9a\x13\xea\x03\x9a\x7a\x2f\xad\x40\xfd\xb5\xfd\x37\x32\x81\x42\x66\xdf\xaf\x27\x91\x7d\x15\xd7\x6d\xd2\x95\xa9\x61\x08\x90\x9e\x47\x7e\xcc\xf9\x7f\xf5\xec\x1b\x46\x60\x94\x55\x1e\xbe\x6f\x93\xc8\x34\x1a\x61\xbe\xbd\xe7\x16\x93\x90\xe0\xbc\x7b\x42\x1d\x95\x43\x56\xb4\x11\xfe\x45\x23\x3d\x8b\x89\x11\x08\xf2\xdf\xcb\x53\x96\x5f\xf0\x2e\xb2\x38\x64\x92\xcb\x2e\x5d\x34\x3b\x64\xb5\x73\x2e\xc6\x97\x61\x54\x23\xe8\xd9\x90\xf1\x8e\x15\xb3\xd4\xa6\x08\xe5\x05\xa9\x12\x8b\x99\x08\xf1\xb7\xbb\x4e\xd2\x01\x00\x9d\xc5\x0c\x42\x0c\xa4\x31\x63\x8b\xf4\x9c\x88\x03\xb6\x2a\x22\x7e\x10\xa7\x0c\xb3\x81\xdf\x2b\x71\x3c\x4e\xf0\xbf\xd7\x63\xf8\x2e\x8b\xd0\xe5\x35\x62\x2e\x52\x0c\x5f\x5f\x77\x7f\xae\x2d\x90\x0a\xf4\x98\x5e\xf2\x1a\x84\xf4\x73\x20\xd7\x78\x06\xc5\x49\xc2\xc2\xb4\xfb\x52\x16\xbb\x79\xf1\x2d\x92\xc4\xd2\x13\xe7\xa0\xdf\x06\xea\xfa\x5a\x77\xef\x24\xe5\xd6\xda\xfb\xbd\x0e\x5f\xd8\xea\xa2\xef\xfd\x34\x06\xd7\xc4\x69\xac\x89\x55\xac\xb3\xad\x4b\x3d\x0b\xc1\xf8\x2e\x85\xb4\xd2\x1f\x07\x51\x7d\x20\x9c\xae\x8d\x09\xe0\x62\x14\x48\xbb\x72\xd0\x8f\x3e\x1d\x27\x87\x25\x09\x31\xa1\xf2\x94\xad\xfe\xe6\x42\x89\x25\x49\x90\x04\x21\x53\xe5\x65\xe1\x25\x96\xd4\xb6\x2a\xce\xb3\x66\x51\xe1\x34\xf2\x07\x84\x40\x4f\x61\xf6\xf8\x10\x76\x7f\x93\x56\xcb\xf8\x68\x4b\xdc\x5e\x0f\xad\x23\x52\x6b\x47\x30\xea\x95\xa3\xf7\x42\xeb\x59\xa1\x5f\xf0\xab\x6c\x5a\x43\x5b\x5b\x99\x4b\x37\x56\x45\x2a\xb6\x05\xb6\x4c\xc1\xe3\xa2\xfb\xb3\x21\xd8\x5b\x6d\x73\x9f\xcf\x65\x63\xd3\x9f\x17\xa0\x8f\xf1\x53\x2a\x63\xb0\x39\x0e\xf1\x1e\x59\xf1\xe6\x7d\x22\x77\x18\x94\xc0\xd2\x3a\xae\x94\xbb\xaa\xbc\x0e\xbd\x67\x49\xc0\x14\x20\xd9\x1f\x74\x35\xdd\x24\x88\x34\xf3\x34\x59\xe5\xa9\xa8\x57\x85\x4d\x79\x4d\xce\x74\xa0\xc7\x36\xe6\x9f\x65\x95\xbe\xfd\x1b\x84\x5a\x0e\xbf\xe5\xaf\xa6\x35\xb0\x83\x42\x7b\x42\x12\x4e\xc4\x20\x8b\xf0\x3c\x60\xe9\x1d\x3d\x6f\x42\x52\x2b\x61\x2d\x9b\xb3\x12\x5a\x1f\xca\x02\x6e\x78\x8b\x09\x31\x69\xa8\x7c\x53\x45\xa9\x3e\x26\x71\xc7\x64\x34\x8d\x23\xab\x50\x73\x3a\x93\x0f\x67\xbf\xfd\xed\x31\x22\xb1\x30\x82\xcc\xe8\x46\x28\x98\xfb\xdc\xd1\x0d\x90\x4a\xc2\x38\xc1\x7e\xa8\x63\x55\x62\x9b\xc5\x1d\x08\xdf\x38\xc9\x12\x26\x02\xac\x39\x5a\x5e\xa5\x1d\x32\x03\x74\xfc\x34\xd7\x63\x37\x77\x26\x0f\xc0\xf9\x50\x98\x5c\xb0\x5e\x69\x6f\x74\x12\x4e\x2c\x15\x4e\x56\x63\xc3\xc4\xc8\x12\x24\x9c\x25\x88\xae\x53\x39\x88\xea\x0b\x14\x28\x07\x3a\x2b\xf4\x93\xa8\x2f\x7a\xcf\xaf\xbb\x8c\x09\x67\x52\xf7\x0c\x29\xbb\xf7\xac\xd2\xcb\x5f\x7d\x05\x67\x32\x38\x09\x65\x30\x10\x3e\xb3\x65\xe6\xfb\xb2\xfa\x52\x96\x1a\xc9\x9f\x97\xa2\xea\x56\x64\x12\x05\x0c\x67\x72\x53\x5a\x1c\xdb\x1f\x53\xb3\xd8\x5f\x39\xa2\x14\xfd\x44\x4f\xef\x84\xf2\x46\x4f\xe2\x57\x1f\x7b\x27\x71\xc4\xac\xf8\xa5\xd6\xe8\x99\xec\xb2\x29\x00\x38\x49\x98\x51\x1d\xf9\xdc\x06\x7a\x96\x51\x96\x24\xb1\x42\x32\xb1\x6d\x06\xc3\x6c\x4a\x92\x24\x04\x7f\xd8\xa7\x9b\x7d\x24\x93\x24\x89\x64\x16\xe2\x82\x0e\x83\xa3\x80\x18\xbf\xff\x24\x05\x3a\x10\xa0\x3e\x8c\x0b\xe5\x3d\x9a\x60\xc8\x31\xe2\x4f\x35\x36\xa7\x69\xa9\xa0\xb1\xf3\xb3\x5e\x15\x9b\xb2\xce\x7a\x0a\x02\x96\xa4\x91\xc0\xd0\xa0\x0d\x08\x37\xb3\x51\x8a\x23\x91\x81\x47\x70\xe0\xdb\x25\xd1\x27\xaf\x57\x0a\x81\xd3\xfd\xfe\xf5\xf9\x6e\x3f\xbb\xeb\xd0\x6c\x89\x62\x8c\xa6\x9d\x0c\x2a\xae\xa6\x75\x71\x2d\x36\x4d\x54\x44\xb1\x7b\xdf\xc2\xfa\xda\x60\xad\x2a\xf3\x7c\x7e\x3a\xaf\x8a\x61\xe5\x25\xd1\x84\x61\x09\x0f\x11\x77\x03\xc6\x39\xff\x8b\x40\x78\xe0\x2b\x59\x59\x55\x37\x6e\x0d\xd7\xa8\x93\xae\x31\x67\xd9\x7e\xbd\xbb\xd1\x29\x69\xea\x28\x41\x9f\xb2\xc2\x2a\xac\x4d\xee\x0e\x98\xb6\x48\x2e\x51\x7c\x10\xda\x9d\x98\x44\x68\xc9\x36\x55\xf9\xbf\xa0\x9a\xbf\xb9\xcf\x24\xa0\x28\xa6\xb2\xef\x66\xab\xc7\x7f\xef\x1f\x57\x4f\x2b\x9f\xea\x49\x8c\x52\xe8\x99\x2e\x5e\xb6\x5e\xa3\xd8\x1e\x49\x83\x40\x63\xb6\xa3\xd7\x5d\xeb\xa7\xc1\xff\x15\x80\x21\x0d\x42\xb0\x1c\x20\xeb\x2f\xe1\x7e\xd9\x5d\x5f\xda\xbf\xfa\x94\xd0\xf2\x54\xed\xca\x29\x3b\x08\x4b\x03\x20\xa8\x30\x0a\x3a\x6b\x36\x19\x28\xc0\x34\xc9\x27\x81\x71\x7b\x86\x57\xaf\xb6\x79\x82\x39\xba\xb8\x23\xac\x6f\x1a\x32\x69\x62\x87\x05\xee\x73\x39\xfd\xe1\x34\x44\x16\x83\x76\xb3\xb4\x2d\x9a\xa0\xef\x3c\xaf\x0a\x4b\x69\x60\x1b\xfa\xfd\x66\x80\x3a\xe2\xce\x76\xfb\x21\x21\xc1\xfe\x40\x68\x0d\x32\x26\xbc\xc7\xc1\x5b\x4a\x63\x82\xcf\x6f\xa0\x51\xef\x1b\x91\x69\x9b\x15\xbf\x2f\x2b\x87\xdf\xe9\xbe\x04\x15\xa1\x09\x7d\x1b\x6d\xe1\x28\xeb\x5b\x6b\x86\x3c\xeb\xeb\x69\x6d\x2d\xa5\x3a\xc0\xc8\xaf\x8d\x22\xbe\x03\x7c\x74\xd7\x71\xad\xd9\x5d\xa7\xec\x97\x4a\x14\xcd\x2d\x48\x7f\xca\x08\xc1\xb5\x6a\x41\x42\x6e\xca\x4d\x7e\x8a\x51\x15\x5b\xed\x98\xba\xcc\x7f\x8c\x4b\xce\xe4\x12\x28\x33\x34\xd9\x24\xba\xe1\x49\x0e\x16\x5f\xca\x04\xa0\x14\xe9\x88\x83\x7d\xb5\x58\xef\xb7\xbb\xd9\x97\x25\xe9\x64\xfc\xbd\x1f\x94\x32\x08\x91\xdc\x6a\xf1\xe7\xe3\x95\xca\x7d\xca\x29\x08\xd1\x1b\x38\x3f\xa1\xef\xab\xf2\x70\x4b\x5e\x87\xa5\x9c\x5b\x68\x87\x0b\xc8\x5b\xf3\xb9\x3e\x35\xaa\x3c\x4c\x5f\x3c\x4f\x22\xfc\x50\x38\x57\xb1\xc0\xe8\x92\xc7\x03\x6e\x25\xd2\x0d\x56\x81\xf2\xbd\x0e\xed\x25\xfd\x2d\x46\x89\x88\x5d\x3a\xfc\xa1\x3c\xc0\x66\xca\xf1\xc5\x5a\x1b\x8a\x3b\x77\x55\xca\x8d\xc0\x6c\xd9\xf5\x0f\x18\xc9\x38\x8d\x1c\xa3\xe9\x93\xcd\xe2\xd4\xcb\x3c\xfb\x95\x79\xdf\x2b\x4d\x68\xa0\x1d\x40\xa8\x6b\xb6\xdc\xe4\x65\x73\xc5\x5e\xa6\x69\x18\xa1\xbd\xdc\x42\x6e\xbe\xc2\x79\x2c\xe1\x11\xb1\x7f\x0c\xfe\x19\x9c\x94\x2a\x74\x4b\xd1\xb9\xc3\x3e\xa9\x7c\xa0\x25\xcf\xd2\x54\x70\x44\xdb\x7d\xde\xc7\x94\x0a\x42\xb0\x0b\x31\xcf\x14\x14\x35\xec\xa0\x3a\xd4\x4f\xe2\xd7\xa2\xac\x9b\x0d\x54\x5b\x50\xd7\xd1\x29\xa9\x10\x61\x1a\x76\x14\x2e\xc3\xf8\x3f\x95\x4c\x07\xb2\x9b\x09\xd8\x8f\x06\xda\x56\xaf\xc6\x15\xd7\x7e\x3c\x1b\xf2\xa1\xf8\x30\x05\xab\x45\x63\x7b\x27\x63\xe5\x84\x2f\xc1\x09\x3e\x0d\x36\xee\x54\xaa\x30\x1d\x6a\x39\x3c\x65\x45\xe3\x18\xc2\xc7\x97\x51\x92\xda\x96\x1a\x51\xac\x0e\xc7\x1c\x03\xfe\x95\x77\xef\x06\xf0\xb5\xab\x08\xce\x14\x04\x30\x47\xcd\x7a\x81\x2b\xbd\x0c\x95\x52\x43\xac\x48\x7a\x56\xd4\x50\xa1\x20\xd2\xb6\xac\x9a\x3e\x06\x9a\x5c\xdd\xc4\x31\x3a\xe3\x0b\xdb\xea\x8d\x8c\x25\x18\x73\x4c\x26\x8d\x89\x05\x26\xa7\x61\xb0\x16\x6d\x12\xb8\x9e\x0f\xd0\x55\xa9\x31\x89\xe7\xf1\x75\x8f\x35\x3f\xb7\x1e\x76\x3d\x21\x3f\x61\x22\xa0\xa9\xc2\x05\x3e\xff\x04\x0d\x2a\x82\x84\x69\xe3\x2a\xac\x76\xc2\x5d\x1f\x47\x42\xd0\x0e\x9b\xe1\xf6\xed\x95\x76\x32\x26\xb3\x42\xaf\xf4\x05\xa9\xae\x3f\x2f\xb1\xed\x5e\x8f\xeb\x47\x6f\x7a\x04\x51\x04\x1c\x0d\xd7\x40\x15\x7d\x56\xe8\x79\x56\xe8\x70\x9c\x3e\xb8\x05\xa3\xe8\x2e\x65\x21\xda\x8e\x4f\x6e\x51\x82\x31\x99\xca\x7a\x08\xa4\x08\x03\x61\xc9\x1c\x01\x34\x09\xc6\x6f\x5d\x84\x94\x46\x0e\xa9\xd9\x3a\xd9\xb3\xc6\x82\x1c\x60\x60\x86\x86\xff\x4b\xc3\xff\x10\xe2\xdf\x6f\x18\x4b\x04\xab\xd9\x28\x17\xa7\x99\xed\x72\xf6\xbf\x4c\x03\x2b\x58\x7d\xd8\xa3\xc1\xc8\x8a\xb7\x55\x3d\xd4\x18\x67\x82\x26\x14\xcb\x47\x9d\x45\x05\xbd\x3d\x88\x3c\x5f\x88\x1b\x71\x97\xa0\x32\x20\xc8\x47\xdd\x34\x42\xbd\xef\xca\x4b\x85\x57\x26\x18\xb5\x7e\x58\xbb\xab\x2d\x44\x55\x9e\x6a\x4f\xc2\xd6\x1e\x53\x9c\xf4\x41\xc7\x93\x93\x4d\x9b\x5a\x72\xc1\x18\xc1\x0e\xa0\x3b\x40\xb8\xc4\x0e\x86\xcb\xee\xa6\x37\x33\xbe\x57\x4c\x04\xb4\xcf\x0f\xd5\xb4\xcc\x25\x98\x30\xd8\xf7\x2d\xb4\x18\xc4\x8e\x22\x4a\x18\xb8\xef\xb1\x3f\xb6\xb6\x6b\x9c\x2c\x12\x91\x53\xa9\x47\x17\x13\xbb\xeb\x27\xcf\x1e\x09\x86\x15\xea\xa7\xd5\xf3\xee\xdf\xdd\x55\x85\x0c\x7c\x1f\xc5\x28\x73\x20\x62\x0a\xdc\x0c\xf2\x1e\x37\xa9\x31\x06\xd9\x20\x11\xc7\xa9\xd5\x74\x5c\x3e\xae\x2d\xa3\xc6\x94\x2a\x99\x89\x58\x87\x71\x3c\xdd\x3e\x91\x9d\x33\x17\xea\x63\xb8\x79\x8e\xed\x85\x48\x02\x89\x5b\xd6\xfc\x54\x67\x05\xd4\xf5\x6b\x31\xec\x0b\xb8\xe9\xb9\x8a\x84\x87\xd8\xc0\x7a\x2a\x6a\x70\x95\x1b\x7f\x04\xec\xa7\xec\xe4\xf4\xff\xba\xd2\xf8\x3f\x7e\xcd\xa9\xa6\xda\xf2\x53\xe4\x39\x66\x3f\x10\x44\xf2\x49\x7b\x9d\x48\x75\x82\x60\x2f\x03\x30\xef\xca\x04\x42\x44\xa1\x71\xf9\xe7\xb5\xfc\x5f\x2b\x62\x7d\x4d\x31\xa1\x1d\x69\xd5\x29\xb0\x04\x68\xf3\x1e\x07\x5c\xcf\x23\xe4\xb7\x10\xa9\xe5\xcc\x7a\x83\xe6\x5b\x3b\x25\xb5\x5b\x73\x23\x97\x55\x48\xa3\x82\xd0\x63\xab\x4f\x58\xe6\x2b\x9a\x2e\xa5\xd5\x43\xd8\x85\x62\x56\xc3\xdc\x3a\x6e\xcf\xf0\xd3\x02\x16\xb0\xea\xec\xc9\xf5\xba\xa1\x80\x15\x5d\x27\x46\x01\x68\xf9\x1c\xbe\x63\xfc\x05\x95\xb2\x98\x51\xdb\x7d\x8c\x02\x46\x93\x87\x55\xa0\x50\xac\x60\x23\xce\x00\x9d\xd2\x6f\xbb\x61\x0d\xd9\xfc\xae\x46\xed\x42\x53\x8e\x2b\x64\x93\xd5\xa2\x78\x1b\x06\xb4\x42\x6b\x83\x60\xef\xfa\xa7\x38\x3e\x75\xcf\x08\x09\xc3\xb8\xa5\x13\x17\x76\x75\x82\x61\x1f\xc5\xe4\x09\x00\xac\x22\xd2\xa9\x86\x4d\xf9\x73\xc2\x78\x72\x69\x15\x93\xff\x90\x38\xf2\x86\xc3\x30\xe5\xbb\xa1\x9f\xe1\x67\xfb\x92\x6c\xe5\x61\x84\x3c\x1d\xcd\x5c\x63\x62\x66\x4d\x8d\xcc\x6e\xac\x0a\x19\xb0\x14\x31\x16\x6f\x99\xf1\x5f\x44\x06\x91\x48\x1d\x18\x6c\x96\xe7\x4b\xa7\x91\x5e\xaf\x4d\xd7\x83\x71\xeb\x62\x31\xf1\x9f\x72\x7f\x74\xbc\xed\x7b\x23\x54\x96\x5f\xc0\x80\x64\x60\xac\x92\x87\xd3\x9f\xb3\xf3\xac\x5d\xc7\x5f\xb3\xe2\x0d\x91\x81\x1d\xe1\xe4\x6f\x8c\xe2\xe7\xf8\x40\xf7\x73\x24\x0d\xb8\xf4\x74\x03\x6d\x8c\xfc\x9b\xc4\xad\x24\xa9\x16\x5d\xbf\xc4\x35\xb1\x2b\x3f\x4e\x84\xe8\x22\xe9\xac\x6e\x03\xed\x59\x25\xb3\x0b\x3f\x4a\x12\x29\x10\x3a\x89\xdb\x95\x47\xc8\x4d\x5e\x08\x91\x46\x5b\x24\x98\x27\x1f\xf2\xdf\x23\x8c\x0d\x92\x39\x2e\xca\xff\x9e\xb2\xf1\x11\x15\xa2\xb1\xff\xf2\xef\x11\x22\x43\x52\x6a\xb0\x78\xba\x17\x93\xf6\xa7\xf1\x6d\x51\x0e\x66\xc4\x36\x75\x43\xda\x6e\x6c\xc4\x24\x4d\x19\xa6\x1b\x6a\x71\xfe\x52\x96\x7a\x7e\xf6\x4b\x42\xb2\x34\x44\x85\xa3\x2d\x34\xab\x22\x6b\x46\x71\xf2\xdf\x2a\xb7\x4a\xa6\x00\x3d\x98\x76\x8b\x9d\x77\x5c\x8b\x83\xe3\x60\x09\x68\xe5\xe9\xbc\xfe\x79\xc3\xf5\x92\xcc\xa8\x04\xbc\x0e\xe6\x40\x40\xac\x3c\x35\x48\x3f\x7a\xec\xa6\x3a\x0f\x12\x34\x29\xed\xbe\x31\x3f\x63\x9f\xfc\x08\xf1\x2b\x79\x00\x5e\xf1\xe2\xa9\x7e\x1b\x92\xa6\xf8\x01\x84\x62\x44\xdb\xbc\x55\xb7\xb9\xab\x99\xe4\x71\x20\xd2\x4e\x6e\xa6\xec\x6f\x40\xd9\x36\xe5\xe2\x74\x58\x64\x4d\x06\xfd\x09\x60\xb0\x81\xc0\x6e\x11\x0b\x1b\x18\x7d\xca\x14\xc8\x64\x24\x13\xb4\x53\xfb\x5a\x18\xf8\x1d\xe3\xde\x68\x79\x44\x26\x46\x25\xbd\xd6\x1d\x99\x8b\xe6\x7d\xf7\x6b\x62\x9a\xae\x64\x39\x64\x1c\x46\x18\xe8\xca\xd3\x19\xb3\xf4\xdd\xbd\xc7\xb1\x41\xa3\x22\x94\x82\xa3\x6d\xf6\x45\x6b\xd5\xeb\xf7\x4f\x66\x54\x9c\xda\x52\x58\x27\x50\x4f\xad\x84\xf4\x7e\xb3\x7c\x59\x2c\x9f\xdb\x40\xdb\x5f\x3b\x09\x05\x76\x11\xff\x28\x51\x8d\x62\x08\xc2\xbc\xde\xe2\x26\x93\xd4\x20\x5c\xc0\xe9\xad\x35\x70\x7c\x2c\xbb\xb6\x3b\x99\x18\x69\xa2\x01\x15\xd5\xb5\xc8\x4b\xa6\x4c\xa0\x0f\x20\x9a\xc6\x03\xc5\xa5\x20\x82\xd9\x0e\x8f\xed\x51\xfc\x2c\x86\x80\xa9\xc9\x32\x13\x3c\x88\x5c\xef\xcf\xb3\xeb\x39\xc2\x8f\x23\xac\x5d\xed\x2e\x08\x92\x84\x2e\xdb\xd5\x6d\x24\x8e\xe3\xe8\x4a\x7e\xa2\x7f\x40\xc9\x52\xac\xd2\x38\xd0\xdf\x53\x56\x9c\xea\x7b\x80\x7a\x7d\x6a\xea\x46\x58\x6a\x15\x3f\x34\x8e\x2d\xb5\xb3\x83\xae\xdf\x9d\xaa\x01\x3f\x6b\x7b\x5c\x61\x9a\xee\x88\x8c\x59\xa3\xd2\xaf\x94\x3a\x40\x0c\x72\x6b\x2d\xd6\xc7\xde\xd8\x28\x06\x18\xe1\xfe\xeb\x04\x50\xfc\x39\xdc\x38\xa5\xd2\x46\x3a\x25\x01\x0d\xbd\x7b\x20\x15\x44\x41\xdf\x7f\x7b\x63\x15\x6b\x61\xac\x56\xaa\x2c\x4f\x13\xaf\x46\x6a\x93\x3a\x2e\x5d\x8c\x7e\x5f\xc0\x5c\x53\x84\x62\x2a\xa0\x0c\xbf\xfd\xf2\x65\x11\x87\xe4\x2a\xa6\x4a\x05\x5c\x21\x7c\xcc\x31\x6d\x3f\x96\xa2\x98\xd8\x66\x15\x68\x89\xf5\x94\x4c\x95\xc4\x25\xea\xb5\xed\x15\x74\x03\x48\x68\x67\x11\xf6\xba\xfa\xbf\x19\x1b\x26\x62\x3b\xc5\x9e\xee\x85\xf6\x45\x23\x85\x52\xd4\x0e\x26\x5b\x9d\xb7\x65\x6e\x9d\xb8\xc9\xaf\xd2\x80\x24\x56\xc5\x18\x40\xdf\x97\x07\x3f\xf5\x14\x25\x29\x52\x40\x60\x11\x5e\xd4\xf0\x4f\xa1\x3e\x8e\xe5\x4d\xaa\x2b\x7f\x16\xd5\xe8\x7c\x54\xad\x69\xda\x4f\x7f\x2b\xe6\x81\x27\x62\xc9\x8a\x79\x07\x61\x53\x4c\xa5\x1e\x28\xe2\x35\xb5\x5e\x96\xbb\xbb\xe5\x7c\x50\x0e\x54\x0c\x3a\xef\x71\x23\x9a\x36\x48\xb4\xfd\x03\xb8\x01\x8c\xdf\x36\xe7\x36\xe7\x6d\x69\x43\xbb\xa4\xcb\xa7\x86\x4d\x45\x3c\x0d\xe3\x01\x52\xfc\xa7\xff\x92\xd7\x5c\x66\x15\x71\x83\x94\xd3\xb6\xfe\xf2\x82\xde\x62\xc7\x67\xc6\x54\x04\x06\x5b\x5e\xb7\xad\x91\x44\x22\x07\x6f\x29\xdd\x80\x98\x29\xf4\xeb\x1f\xcb\xb7\x51\x24\xf4\xf9\xd6\xd5\x9e\x86\x28\x4a\x85\x91\xf7\x04\x3f\xa6\x52\xa2\xb0\x10\x9c\xd5\xed\x4b\x79\x01\xe4\x59\x03\x64\xb7\xbc\xe9\xe0\x5c\x90\x79\x33\x95\x52\x8a\xfb\x11\x54\x55\x39\x62\x87\x66\x2a\x95\x06\x89\xb2\x51\xf0\xaf\x7b\x5a\x11\xc7\xc0\x1d\xa3\xc4\x73\x07\xf1\x51\x22\x4d\x98\x63\xd5\x7e\x29\x4f\x17\x1e\x8b\x12\xc6\x7a\xc3\xad\x0d\xda\x8b\x11\x44\x44\xc9\x80\x60\x89\x72\xbf\x7e\x5e\x76\x7f\xe3\xb1\x6e\x57\xf4\x4f\x1f\x70\x2f\x8b\xa6\xca\xe0\xba\x38\x14\x53\x8a\x5a\xf5\xbb\xbd\xab\xc1\xb9\x3f\xeb\x50\x80\x6d\xd3\xe9\x74\xb8\x5e\x91\x62\x7d\xba\x20\x21\xe4\x48\x60\x68\x3f\xf1\x17\x71\x80\xed\x11\x54\x66\x32\xf5\x5b\x4e\xac\xee\x0a\xe9\x00\x21\x72\xf3\x13\x5f\x75\x74\x15\xa4\x3a\xf4\x4a\x8e\x36\xb1\xfe\x69\x6c\xa1\x00\x28\x5a\xe8\x31\xf8\xf0\x77\x0e\xad\x3d\x59\x07\x4a\x05\xbe\x79\x07\x33\xba\x93\xbe\x2c\x4d\x22\xc1\xb4\x93\xc1\x7c\x6d\xbd\x8e\x3c\xbb\x64\x49\xfa\xc7\xe8\x9a\x44\x85\x49\x8f\x2d\xf9\x56\x36\xf0\x72\xca\xa7\x4c\x23\x3a\x4c\x15\x12\x67\xed\x6d\xb0\xbd\xb5\x3a\xae\xe3\x1f\xa7\x01\x43\x69\x1e\x17\xe9\xb5\xf6\x6f\x38\x2b\x35\x0d\xac\x96\x92\x55\x54\x7d\xc2\x8c\x45\x1f\xf2\x6b\x0a\x02\x55\x48\x31\x3b\xeb\xd2\x94\x94\xfa\x6a\x93\x66\xa1\xc5\x3e\x1e\xab\x6c\xa2\xb9\xca\x34\x83\x14\xdd\xd0\x7c\x02\xdf\xd2\x9c\x5a\xdd\x0e\x0d\x99\x3a\x88\xdc\xcf\x5b\x1d\x91\x08\x33\xc1\x58\xca\x7c\x2c\xd5\x87\x93\x68\xf1\x87\x75\x14\x10\xe7\x59\xdc\x97\x17\x9f\xd4\x8d\x8a\x03\x8d\xfc\x24\xc8\xcf\x36\xe2\xfa\xf3\x03\x68\x8c\xe8\xf7\xc3\xbe\x47\xde\x75\xb7\x10\x27\x01\x36\x27\x67\x35\x22\x83\x26\xa7\x26\x91\x09\x82\x41\xd2\x64\xdb\x88\x8f\xeb\x42\x77\x4c\x27\x29\x41\x49\x26\xfb\x05\x9f\xdb\x1d\x22\xc3\x12\xd3\x4c\x5f\x74\xe5\xe9\x34\x16\x58\x78\xfd\xc8\xf2\xbc\x4b\x03\x6b\xc1\xac\xf3\x6b\x17\xd1\x93\xf8\xd5\x0b\xe1\x4f\xce\x17\x3c\x42\x49\x95\xd9\x97\x61\x98\xa1\x85\xd6\xca\x36\x91\x34\x2f\xd0\x7e\x75\xd5\x80\x1e\x7e\x5d\x49\x0c\x52\x12\x1c\xac\x3c\xd3\x5f\xa0\xc7\x61\xc6\x35\x12\x46\x1f\x81\x69\x29\x53\x34\xc3\x3e\x61\xb3\x18\xa4\x4a\x26\x69\x9b\xf1\x6b\x54\x71\x4a\xdd\x82\xf9\x7a\x9e\x90\x35\x32\xad\x74\x00\xc3\x2c\x7a\xe7\xa9\x5f\xff\xde\x3a\x64\xc8\xdb\x8e\x89\xb1\xac\xb0\x3b\xc2\x7c\xe7\x01\x29\x5a\x4b\x8e\xa4\x73\x47\xa8\x4c\x59\x1d\x5a\xf7\x72\xd4\x06\x7e\xba\x02\x5f\x1a\x18\x74\x0d\xd4\x92\x7c\x75\xec\xe9\x80\xf5\x7e\xab\xab\xff\x19\x7a\x42\x03\x55\xd8\x87\xf6\xf6\x13\x32\x7f\x37\x90\x06\xb8\x1a\x7f\x66\xfd\x9c\x33\xa1\xc6\xd0\xf7\x3e\xcb\x0f\x47\x51\xf7\x7f\x8f\x39\xe6\xa2\x3a\xf4\x6e\x55\x1e\x70\x57\x9e\x64\xd0\xb5\x51\xa9\x76\xbe\xc1\xdc\x1a\x95\xf1\x00\x08\x58\x82\x73\xf1\xbd\xac\xea\x76\xe9\x6c\xaf\xc8\xaa\xfb\xa1\x12\x90\x02\x67\xf9\x0d\x46\x7d\x45\x40\x14\x45\x43\xb0\x79\x59\xec\xf6\xcb\xdd\xc3\x7e\xbd\xe9\x0e\x19\x81\x0c\xfb\xf7\xab\x97\xed\x6e\xff\x7d\xb5\x7b\xb8\x7b\x99\x7d\xdf\xbf\xcc\x76\x7e\xfb\x81\x90\x28\x0d\x2e\xbc\xdf\xb5\xce\xa6\xad\x04\x4c\xd1\xc5\x17\x93\x0c\x42\x25\xd0\x79\xf5\x2f\x01\x65\x60\xf4\xf2\xd7\x11\x8a\x4b\xaf\xa4\x3b\xc7\xe2\x8f\xdb\x60\x09\xad\x7f\xf8\xc7\x64\x80\x96\xda\x46\x95\xc5\xc7\x0b\xa8\xec\xd8\x7a\x44\xcf\x1d\x26\xde\xfb\x04\x40\x19\xc3\x58\xe6\x70\xde\x36\x65\x05\xda\x2b\xd8\xf8\x4f\x04\x9c\x72\xdc\xd2\xff\x09\x55\x35\xc2\x40\x03\x4f\x88\x1c\xc2\xd1\x67\x79\xbe\x2b\x87\x30\x44\xe0\x52\x7b\x9f\x0c\x7b\x12\x2f\x75\xe1\x19\x70\xb0\xb5\xc8\x3a\x2f\xdf\x3a\x62\x32\x88\x38\x20\x3e\x66\xa6\x75\xe5\x7b\x60\x20\x16\x34\x71\x34\x9d\x5f\xa0\x80\xad\xca\xc0\xca\x03\x57\x17\xfc\x05\x10\xab\x04\xeb\xca\x6e\x4d\x78\xff\xea\x93\xe2\x0f\x24\x2c\x42\x67\x59\x95\x85\xc9\xaa\x03\x20\xda\x76\x08\x4a\x84\x44\xda\x5e\x8a\x37\xc7\xfe\xda\x6e\x27\x36\xfe\x9b\xe4\xb2\x21\x4d\x13\xd5\x09\x73\xd4\xef\x7d\x66\x0b\x52\x2d\xb0\xd8\x88\x01\xf2\x42\xe4\x17\x14\x81\x6e\x9c\x48\x34\x22\xad\xee\xcb\xaa\x29\xb2\x06\x7a\x31\x55\x06\xc2\x10\xb0\xdd\x4d\x85\x9e\x0b\x7d\x65\x3b\x1f\x5f\x4b\x45\xc6\x52\x47\xe2\x06\xb9\x28\x8b\x06\x5c\x39\xb5\xbb\x61\x15\x5b\x79\xf2\x43\x56\xf4\x41\x12\x68\xc2\xbc\x54\x87\xdd\xa8\x66\x79\x26\xea\xfb\xf2\x3a\x1f\x35\x03\x1d\x6a\x0b\xe5\x2b\xb2\xe6\xa2\x3f\x6c\x3a\x96\x6a\xcc\x14\x6c\xca\xfc\x3c\x2b\x44\x7e\x6e\xb2\x5f\x23\x44\x47\x37\x0e\xd0\xa7\x9d\xcf\x16\x5f\x5f\x37\xfb\xdd\xc3\xcb\xb2\x5b\x73\x5a\xc4\x84\x3a\xcf\x72\xf7\xb3\xfc\xde\xbf\x22\xad\x42\xec\xb5\xfb\xbe\x7a\xf6\x28\x0f\x80\x20\xb0\x5a\xdd\xe7\x27\x68\xde\x07\xc2\x68\xa3\x09\x09\x51\x08\x76\x1d\xab\xb2\xd0\xdf\xc5\x0f\x18\x56\x4c\x01\x52\xe9\x83\x91\x6f\x59\xd5\x9c\x7a\x69\xfd\xeb\x8f\x09\x52\x21\x7e\x60\xfb\x7d\xb6\x59\xac\x57\xcf\xff\xc7\x5f\xc8\x00\xc3\x29\xd2\xba\xb6\xbb\x12\xe7\xd3\x63\x76\x99\x22\xb6\xa3\x4d\x10\x53\x6e\x03\xec\x46\xbd\xaf\x5c\xd0\x65\xc5\x56\x7b\xba\x98\xcb\x49\xdd\x9e\x27\x5c\xe0\xdf\xfa\x35\x6b\xf3\x28\xea\x66\x9e\x79\x8f\xc3\x90\xd0\x10\xeb\xb1\x97\x26\x6b\x5a\xd3\x93\x15\x6f\x4f\x03\x20\xad\x1f\xc7\x53\xc4\x60\xc1\xaf\x06\x8a\x21\x4a\xd2\x10\x50\xd4\x09\x69\x21\x85\x15\xd4\x75\x67\x70\xfc\x98\x50\xd9\xa4\xbd\xad\x40\x0f\x94\x37\x98\xa1\xa1\x6d\xe9\xb2\x4e\xc4\x83\xe5\xaf\x1d\x1b\x77\x43\x39\x67\xa9\x67\xf0\xf8\x63\xfa\x88\xa8\xd5\x65\x23\xd9\xf6\x85\x40\xd1\x64\x0a\x16\xef\x30\x45\x0c\x18\x96\x10\x65\xbb\xcf\x84\xca\x61\xd5\xfc\xeb\x04\xd5\xf9\x3a\x5d\xe4\xd5\x9d\xc3\xb0\x44\x7a\x67\xe3\x7b\xfb\x1d\xa6\x9e\xa8\xe1\x8c\xe1\x3e\xd7\x6d\xec\x48\x51\x3a\x86\x14\x19\xce\x01\xd1\xc0\xef\x48\xa8\x39\x90\x28\x77\xc7\x23\x62\x59\xef\xbe\x40\x73\xb7\xde\xbd\xc0\x8f\xf2\xa3\x35\x34\x98\xf8\x1b\x66\x5f\xfc\xda\x35\x11\x07\x88\x7d\x49\xe4\x03\x8a\x3b\x50\xd9\xc0\xe9\x34\x51\x1a\x08\x44\x5a\x57\xe7\x63\x53\xfe\x14\xd5\xe0\x48\x64\x5c\x98\x89\xb7\xfa\xbb\x7c\xdd\x00\x94\x62\x62\x4a\xb0\x2b\x65\x93\x0b\x05\x03\x32\xac\xa1\x6b\x61\x62\x46\x75\x57\x9d\x3b\x0a\x05\x53\x5a\x26\x13\xb3\x28\x8d\x5d\x39\x4a\x0a\xf5\xf1\x45\xd4\xa3\xf9\x11\x8b\x14\x83\xf5\xef\x22\xb3\xcd\x2d\x53\x44\xb2\x49\x42\x6e\x59\x57\xf3\xb2\x86\x41\x5e\xcd\x24\x06\xd0\xd9\x5e\xea\x37\xa4\x42\x74\x0a\x76\x7f\x2b\xe4\x31\x29\xd1\x58\xbe\x6d\x4d\xd9\x6f\xa2\x63\x7f\x46\x1c\xa0\x5f\x21\xac\x0b\x0b\x28\xe1\xb6\x36\xce\x81\x9a\x18\xcc\x6e\xf6\xa6\xa9\xc4\xee\x82\xc5\x7b\x66\xdb\x94\xfc\xdd\x8b\xc8\x50\xe9\x72\x42\x59\x05\x1a\x91\x02\xf5\x32\x17\xc7\x1a\xf4\x7d\x59\x7d\xcb\x54\xd3\x17\xa4\x8d\x90\x32\x71\x6d\x68\x28\x79\x77\x5b\x36\x80\x19\xa1\x23\x2c\x92\xb8\x80\x08\x61\x17\xfd\x0e\xe9\x06\x49\x1e\xa1\x0b\x6b\x51\x8c\x3b\x07\xb4\xfd\xfc\xa5\xa9\xd0\x76\x6f\x41\x25\x06\x8a\x64\xcc\xa8\x88\x7b\xe5\xa1\xd5\x05\x91\x90\x1f\x13\x07\xc6\x0c\xf0\x5d\xeb\x01\xaf\x3a\x33\x4a\x26\x81\xab\x74\xd5\x30\xc1\x7c\x74\x43\x14\x66\x70\xad\x1f\x55\xfe\x5c\x56\x2a\x0c\x3e\xdf\x19\x8d\x0e\x04\x77\xc1\x90\x17\xbd\xbd\x2f\xbb\x77\x31\x82\x8e\x1a\x1d\x4a\xcc\x47\x3c\xa3\x57\x2d\xf2\x41\x6d\xdb\x68\xce\x13\xdb\x5d\xfd\x0b\x5d\xb7\x6b\xe4\x79\x46\x47\xa0\xd2\x4e\x01\xbc\xcf\x5d\x19\x88\x43\xa7\x45\x80\xe9\xbf\xd7\x02\x73\x9f\xfd\x51\xab\x50\x9b\xd5\x2f\xf0\x76\xca\x45\xb5\xae\xe6\xa5\xa8\xb4\x13\xd9\x19\x7f\x5a\x48\x00\x1b\x5f\x1c\xd2\xe9\x56\xc7\xc9\xa7\x66\x0e\x4c\x84\x53\xbf\xdb\xc1\x27\x08\x39\x37\xcc\x28\x81\x2e\xf7\x8f\xac\xce\x9a\x4e\x84\xd1\x3f\xac\x01\x81\xfe\xcb\x71\xc0\x31\x6a\x9f\x88\x07\x01\x67\x69\x8f\x4e\x5e\x16\x4d\xd6\x9c\x9f\xa1\x17\x21\xea\xbe\x3b\x0f\x02\x50\x1e\xdb\x7e\xf7\x20\x1c\xa8\xdd\x7d\x72\x1e\x90\x20\x21\xce\x3f\xd9\x5b\x38\xfe\xd5\xc9\xc5\x03\x12\x46\xd8\xca\xfc\x75\xf9\xf2\xbc\x7c\xdc\xcf\x36\x1b\x7f\x2f\x24\xb6\x48\xed\x4e\x6d\xf5\x24\x3b\x7d\xe6\xab\xa0\x22\x1e\x10\x23\xac\xd0\x57\x95\xbd\xbd\x41\xf5\x02\xc8\x47\xe7\x95\x39\x6d\x82\xe5\x96\x8f\xc4\x83\x50\x59\x0a\xa5\x36\x62\x9d\x0f\x44\x6c\xd0\xff\xbe\xe6\xcc\xf2\x80\x92\x10\x41\x72\x32\x07\xa1\xde\x67\xc7\x23\x88\xaa\x6b\xba\x9b\x72\x05\xf0\x80\x6a\x05\xfd\xeb\xed\x3a\xe7\xa6\xbc\xd0\x64\x7a\x67\x3c\xd4\xbe\xb4\xee\x81\x72\x2f\xc8\xd8\x53\xfb\x97\xc5\x69\x8c\x52\x2a\x8e\x38\xda\xd1\x3a\x62\x67\xe0\xf5\x57\xc5\x59\xa0\x8c\x13\x52\x79\x12\xbf\x7c\x3d\x7c\xf2\x7c\x3c\x0d\x90\x3e\x64\x00\x95\x79\x14\xd5\x1b\xdc\x82\xca\xf0\x80\x2b\xc6\x86\x6c\x06\x7a\x79\x85\x62\x82\x07\xdc\x50\xef\x38\xe0\xf3\x3c\x61\x63\xc0\x8d\x0f\x13\x85\x21\x5a\x50\xab\x13\x71\xd7\xe9\x6b\xf2\x20\x4a\x04\x8a\xa2\xdb\x5a\xc1\x05\x8e\xc4\x8f\x92\x06\xb7\x61\x4f\x7e\x38\x3f\x6f\xcf\x07\x59\xe6\xc3\xdd\x9d\x07\x31\xd3\x48\x55\x38\x10\x6a\xb8\xd1\xa3\x34\x3a\x2d\x61\x32\xb0\x55\x93\xe2\x24\xf2\xf5\x0f\xa8\xaa\x4c\xc3\x52\x23\xae\xfc\x21\x7b\x6b\xdd\x9d\x79\xa6\xf5\xcd\xa7\x4b\x23\x83\xcf\xf0\x15\x9d\x80\xa3\xfd\xbe\x4f\x1d\xf8\x8c\x07\xa9\x21\x18\xac\x6d\x1f\xbb\xb5\x21\x88\xcd\x42\x3b\x01\x24\xb8\xee\x2b\x0d\x56\xab\x48\x34\x7a\x89\x59\xed\x7c\x9e\xeb\xf3\x59\xa4\x14\x99\x71\x36\xeb\xe5\x9f\x57\x95\x8d\xfd\x38\x15\x20\x0a\x60\x7e\x3a\xbf\x94\xf5\xa0\x11\x85\x07\x92\x58\x80\x7f\xe3\x51\xc0\xb4\x3b\x42\x39\xce\xfe\x79\xa6\xb7\xe2\x87\xef\x92\xe1\x81\x54\x1c\xdf\xe0\xec\x20\x45\x5d\x0b\xed\xd5\x6b\x78\xa0\x52\xee\x91\x2c\x4f\xe2\xd7\x2d\x86\x1a\x1e\x28\xd5\x35\xac\xae\x4f\xcd\xb6\xa9\x40\x1c\x26\xfe\x0c\x0f\x34\x97\xe8\x64\x3e\x7a\x6d\xbf\xee\xc6\x34\x84\x68\xf5\x96\xcd\x3b\x06\x0c\x5b\x10\x95\x7a\xff\x67\x29\xa7\xaf\x47\x83\xb0\x3d\xab\xa5\xce\xcc\xf9\x33\xcd\x2d\x1e\x40\xac\x11\xe4\xb6\x78\x59\x7f\xbf\xdb\xce\x1e\x97\xfb\xc5\xe3\x7a\xbb\x7a\xfe\xb2\xdf\xad\x3c\x65\x01\x0f\x20\x21\x91\x1c\xc6\x71\x5b\x10\x39\x68\x5f\xfa\xc0\x0c\xc2\x6d\x8b\x05\x49\x8c\xfb\xd6\xf1\x5c\x89\x43\xd6\xbd\x50\x30\x69\x44\x7c\xbf\xe7\xa2\xac\x2a\x50\x7d\x31\xc5\x8d\x31\x40\x98\xa3\x45\xf1\x9a\x4d\x43\x23\xff\x99\x60\x97\xbd\x02\x09\x02\x89\x99\xe5\xa3\x77\x33\xaf\xf0\x74\x70\x12\x84\x06\xb3\xe1\x9b\x97\x25\xbe\x84\xed\x6e\xf6\xb2\x1b\xbe\x02\x12\xc4\xb6\xe7\x62\x50\xf6\xb4\x65\x19\xd0\x33\xd3\x40\xb5\xac\x95\xc8\x2f\x13\x8f\x9c\x90\x30\xc0\x79\xf3\xe7\xe2\x79\x37\xdc\xc5\x08\x09\x63\x5f\x97\xdf\x8a\xbc\xe3\x04\x44\x27\xd5\xc2\x3a\x47\xaf\x91\x10\x6a\xe5\x50\x2c\x49\xdc\x8f\xc5\x84\x2f\xd9\x8f\x4a\x25\xa2\xd6\x94\xc5\x0c\xb8\x36\x31\x27\x13\x3e\x1d\x2b\x6d\x75\xee\x90\x15\xf3\xd3\x19\xb1\x1f\x87\x3e\xd2\xe0\x24\x4c\x24\x1a\xf4\x85\x38\x1c\x45\xf6\x56\xbc\x40\x7d\x3a\x4c\xfc\x67\x4e\x68\x6c\x98\xbb\xaf\xf6\x39\xea\x4d\x76\xbc\x8d\x95\x73\xe7\xf8\x50\xaa\x81\xba\xb1\x30\xc2\xce\x67\xea\xdd\x7f\x4e\x98\x88\x24\x1b\xa4\xb6\xfa\xec\xd2\xf8\x72\x3c\x88\x8c\x4f\x68\xdc\x8b\x6a\x94\x22\xe2\x24\x22\x80\x58\xf0\x87\xaf\x77\x0f\xbf\x63\x04\xe0\x24\x12\x24\x31\x5d\x5b\x09\x32\x41\x5e\x7b\x77\x91\x70\x71\x27\xee\x64\x8f\x65\xd3\x40\x4f\xb8\x70\xd5\x31\xe2\x24\x52\x91\x72\xcd\xe4\x8e\x06\xdb\xbf\xe9\x48\xc7\xd4\x42\xc8\xd5\x09\x77\x71\xbb\xa4\xb0\xed\xab\xab\xe6\xb7\x13\xfe\xea\x8e\x4d\x62\x66\x02\xd7\xac\x81\x4e\x97\x75\x9e\xc7\x37\x9c\x84\x10\xdb\x5c\x69\x61\xbf\x32\xf3\x3f\x9e\x70\x8d\x5e\x77\xbb\x3d\x8d\xf4\x96\x39\x49\x43\xa3\x6c\xbb\x53\x7d\x6a\xff\x7e\x57\x09\x33\x9d\x71\xa9\xa0\xf1\x50\x64\xf8\x05\x70\xad\xed\xaa\x13\xbc\x6e\xef\xfc\x95\x44\x62\x6d\x31\x56\x14\xf6\x3f\xb3\xa2\xde\x77\x49\x5f\x4e\x84\x30\x88\xc3\xd0\xfe\x03\x6f\x04\x2a\x3c\x61\x2e\xd3\x0f\x92\xdc\x24\x9e\x59\x7e\x6f\x3a\x6e\x62\x4e\x14\x11\xb6\x0a\x80\xf0\x88\x1e\x26\xce\x89\x8a\xed\x0c\xaf\x01\xf4\xfe\x60\x01\xad\x99\x4f\xc8\x71\xa2\x29\x4f\xdc\xfe\xfe\x5a\xc3\x72\xb5\x89\x49\xd8\x47\x0d\x9c\xe8\xc4\x18\x0f\x58\x13\x3f\x26\x93\x0e\xa8\x76\x5d\x1b\x23\xd1\xca\x11\xf8\x62\x32\x01\x40\xa7\x88\x07\xf8\x89\x30\xe6\x2d\x34\x57\xda\xa1\x39\x31\x82\x4a\x4f\x22\x78\x2f\xb2\xfc\x16\x53\xe9\x20\x57\xca\x89\x91\xb6\xe9\xac\x75\x65\x9b\x4a\x64\x45\x56\xbc\xed\xb3\x3e\x88\xe2\x61\x10\xc4\x24\xe9\xa3\x04\x54\x09\xbe\x56\x7d\xe6\x61\x90\x86\x58\x5e\xde\x54\x70\x14\x15\xbc\x94\xf9\x98\xc5\x96\x87\x81\x34\x68\xd4\xea\xf7\x93\x31\x9e\x53\x80\x87\x81\x0e\xc1\x22\x88\x85\x46\x37\xa6\x2a\xf3\xbc\xfe\xb3\x7d\xbc\xf1\x33\x86\x21\x11\xd8\x08\x80\xc9\xab\x0e\xf7\x8a\x90\xe3\x09\xde\x98\x87\x21\x95\xd8\xc5\xa5\xcb\xa2\xdb\x74\x43\x4a\x63\x6b\xbb\xc4\x5b\xa6\x8a\xd3\xa1\xce\xde\xba\x43\x2c\xc1\xa4\x41\xd5\x7a\xaf\x50\x2d\x7d\x43\x26\x0f\x19\x4d\x02\xd7\xfb\xb9\x5f\xfe\x52\xef\x6f\xfb\xf9\xc7\xdb\xe2\xfd\x76\x57\xe4\x55\xeb\x15\x32\x6e\x85\x7d\x6b\x28\x5a\xc7\xf1\x66\xfa\x8c\x63\x73\x64\x8c\x59\x00\x0d\xbf\x7e\x64\x30\xf1\x5c\x43\x96\x26\xc2\x35\x25\xbd\x56\x63\x4f\xaf\x75\x3f\x3d\x85\xcc\x97\xbc\x94\x22\x1f\xd5\xdb\xc6\x7b\x6c\xc8\x85\x88\xbd\x42\x36\xee\x20\xdc\x3f\x33\x37\x5c\xf5\x38\xd6\x79\x76\x81\x35\x72\xe3\xa2\xc8\xa4\x91\xa3\x72\xf8\x69\x83\x76\xec\x0d\x6f\x72\xf8\xe3\x4a\x8d\x8a\x87\x91\x4e\x71\x96\xa8\x7c\xa8\xab\xc2\xc3\x98\x52\x22\x47\x9a\xb7\xb6\xb3\xc1\x91\x7c\x4e\xb8\x45\x3e\xad\x71\xe3\xc5\x4c\x2f\x2b\xde\xc6\x91\x68\x1a\xba\xdf\x4a\x22\x74\xa9\x30\x9d\x86\x9b\xe6\x36\xfb\x0b\x56\xc5\x20\xed\xce\xc3\x24\x20\x91\x75\x99\x51\xa6\x69\xdc\x73\xf3\x09\xe1\xff\xe4\x56\x92\xd8\x16\xab\xb0\xce\x0b\xf5\x97\xec\x47\xb7\x97\x87\xa9\x4c\x83\xd8\x6b\x4d\x9f\xf2\xc6\x53\xf6\x8d\xaf\x90\x6a\x2b\x4d\x64\x4e\x1d\xa3\x36\x0f\xa5\x88\xad\xb4\x43\x0d\x95\xe5\x04\x1f\x49\x4b\xf8\x51\x32\xc5\x6c\xef\xe6\x61\xbd\x7c\x5e\xfd\xb9\x5f\xac\x5f\xb6\xb3\xd5\xcb\x7e\xf9\xe7\xee\x65\xb6\xd8\xad\xd6\xcf\xfb\xf9\x6c\xeb\xbd\x95\x50\x49\x66\x86\xea\x84\x9d\xec\xf8\xe4\x51\xbb\x89\xaa\x94\xf0\x0a\xbd\x88\x0a\xb2\xbd\x08\xf3\xae\x37\x9a\x87\x0a\xb4\xa2\x7e\xd2\x23\xf5\xe0\x4f\x18\x64\xed\xae\x6c\xa5\xa1\x26\x1c\x27\xe5\x30\x07\x36\xe8\x6f\xff\xfc\xcb\xeb\x18\x24\x1d\xa3\x76\x10\x3a\xb0\x1a\xda\x34\x2d\x15\x8d\x06\x01\xda\xa6\x2c\x73\x87\xa8\x1b\x5f\x0d\x58\x20\x49\x97\x95\xaf\x37\x50\xfd\x1b\x44\x37\x43\x40\xcb\xd8\x5d\xe6\x75\x55\x34\xc9\x55\xb4\x9a\xdb\x6c\x43\x43\x18\x76\xd8\x62\xfb\xff\x15\xac\x2c\x0f\x8d\x83\x6c\xe5\x65\x0d\x55\x27\xdd\xcd\x43\xc3\x52\x04\xfe\x3b\x9d\x37\x1b\x22\xaf\x8a\x79\xd1\xd8\xff\x9e\xba\x74\x93\x37\x62\x24\xc5\xca\xa8\xbb\x29\xfb\xaa\x47\x49\x2c\x4e\x83\x24\x45\x1e\x80\xfa\xf0\x6b\xd7\x0b\xb0\xfc\xe1\x8f\x2a\x0b\x95\xae\xc4\xa4\xbd\x9f\x53\x12\x19\xe3\x80\xcf\x73\x68\x5e\x33\x87\xc2\x4f\xfe\xd1\x3f\x39\x25\x82\x7a\xc8\xda\x1d\x58\x71\x0d\xd0\x2f\x70\x2c\xab\xc6\xf5\x2c\xde\x9d\xa0\x23\x04\xf2\x3f\x1a\xc6\x12\xa1\x5e\x39\xee\x5f\x98\x55\xdb\xfd\x1a\x21\xe8\x39\xa5\x52\x22\xd3\x92\x16\x8d\x58\x40\xd1\xd8\x4c\x46\x77\xd4\x98\xd4\xc9\xdf\x5b\xb2\x1b\xd7\x3b\x7c\xcb\x6a\x0f\x27\x21\x65\x41\xec\xc8\xde\x2d\x4b\x7b\x47\x76\x32\xb9\x05\xc6\x53\x70\x5d\x0a\xf5\x16\x90\x0b\x15\xb0\x29\xc3\x7a\x44\x58\x2b\xf9\x95\x1d\x44\x03\xbe\x45\x84\x53\x4e\xb8\x76\x28\xd1\xea\x04\x7a\x7e\x42\xd5\xff\xd1\x64\xa0\x5c\x12\x04\x10\xd8\xec\xf9\x3f\xb3\xe2\xad\xa3\xbf\xe3\x94\x6b\xcd\xdd\x24\xef\x12\x88\x3d\xe8\xdf\x8b\x5f\x21\x87\x61\x8f\x27\xea\x4e\x36\x71\x34\x54\xb1\x68\x4f\x1c\xc2\xd5\xae\xc0\x64\x39\x8d\x48\x10\x75\x52\x84\x06\xaa\x4a\xe4\xdb\x46\x34\xa7\x49\x10\x49\x23\x1d\x63\x51\x1f\x0a\xbd\x36\xbd\xc9\x74\x47\x13\x16\xc7\x81\x43\x7a\x57\x3f\xc0\xa1\x2e\x3a\xa3\x46\x93\x18\x30\x61\xdb\x88\x3c\x3f\xef\xde\x11\x9e\xd3\x3d\xb4\x90\x86\x89\x9e\x78\x1e\x83\x86\xfb\xb2\x9a\x61\xdf\xf8\x94\xf6\x92\x53\xa9\x38\x3a\xae\xca\x16\x3b\x3c\x8e\xd8\x1f\xd5\x31\xd2\xa7\x61\x14\x79\x7d\x6b\xa3\x2a\xb1\x0e\x84\x63\x2d\x1e\xe9\x78\xfa\x21\xc2\x4e\xb1\xd6\x90\x88\xfa\xa3\xbe\x9a\x78\xa0\x3a\x21\xe8\xbf\x6d\xc5\x8f\xac\x78\xab\x51\xbb\xc9\x1d\xc2\x4a\xf8\x80\x92\x7f\x7b\xac\xb2\x06\x6a\x94\x52\x9d\x9f\x2f\xfa\x1b\x39\x85\xd8\x82\xe5\x25\xa8\xf2\x00\x1b\xa1\x32\x93\xd5\xcd\xc1\xf6\x30\xfa\x31\x52\xa7\x36\x1f\xb2\xcb\xa0\xfa\x67\x99\x15\x93\x2c\x2a\xa7\x26\x08\xd3\x01\x78\xc3\xae\x8c\xcd\xe2\x8f\xee\x30\xe7\x2e\x72\xb7\x74\xa7\xcb\xce\x6d\xa6\x26\x4c\xb0\x1f\xaa\x34\xd8\x89\xd9\xe5\xe2\x6e\xc0\x1f\xfe\x71\xcd\x4c\x53\xc3\x15\x46\x2e\x42\xeb\xa6\x7c\x44\xe5\x4f\x59\x7a\xfb\x3b\x6e\x68\x75\x99\x70\x4e\x4d\x92\x4a\x57\x2c\x5e\x0c\xf4\x52\x5e\xb7\x77\x0e\xa9\xcb\x59\x10\x08\xd4\xcc\x91\xa7\xf3\xe6\xf4\xd7\x5f\xee\x6e\x12\x7f\x34\x04\xc4\x20\xfd\x50\xbf\x06\x2c\x90\x9c\x05\x2c\x64\x0e\xa1\x08\x06\x37\x8a\x55\xf1\x82\x78\xb5\xd1\xd9\x11\x4b\x02\x5f\x8b\xd4\x0e\x41\x35\x7a\x2a\x16\x28\x86\xad\xb2\x47\x4c\x6f\x14\x83\xee\x67\xce\x08\x68\x6c\x9a\x29\x0d\x54\x8d\xf0\x7f\xa5\x3c\x46\x8f\x78\x20\x8c\xe4\xda\xc9\xc6\x57\x66\x34\x35\xe0\x1d\xdf\x0f\x28\x2e\x6a\xb6\x7e\xd6\x32\x96\x2a\x4c\x51\xcd\xaa\x06\x4e\x43\xf6\x2f\xce\x78\x94\x44\xb6\x6d\x6b\x5f\xe7\x65\xb3\xcf\x8a\xbd\xcc\xf4\x65\x63\xa2\x1f\x2e\x02\x24\x5e\x7d\x5a\x2f\x47\x97\x89\x08\xc5\x9c\xde\xd3\x76\x73\x51\xb2\xe5\x2c\x62\x29\x46\xff\xb3\xd7\xc5\xa2\x3b\x83\x73\x9c\x6d\x77\xe0\xa1\xbc\x9c\x45\xda\x66\xc0\x7f\xfc\xae\x41\x89\xb3\x98\xc5\x98\xf9\xc6\xc5\xda\x19\xbc\x4f\xe4\x1c\x39\x8b\x23\xf0\xcd\xd5\x4d\x0e\xb3\x42\x7b\xf3\xb8\x30\x7a\xc4\x05\xc0\x59\x12\x04\xb8\xcc\x1d\x63\xde\xb6\x97\x90\xe7\x2c\x91\x96\xd9\xc5\x9f\x2d\x72\x27\xd9\x67\xc9\xae\xa7\x53\x7d\x60\x31\x59\xca\xd3\x34\xe9\x70\xc5\xd9\xe1\x74\x58\x94\x45\x7d\x3a\xa0\xbb\xd6\x13\x33\x73\x96\x26\xc4\xb3\x58\xcf\x4f\x67\x9f\xab\xe8\x75\x8a\x3d\x91\xec\x75\xcd\x7e\xce\x52\xa1\x31\xf3\xf0\x34\x7b\x7e\x98\xed\x76\xb3\xe7\xcd\xcb\xfa\xcf\x7f\x2f\x9e\xbf\x3d\xef\x66\xdf\x96\xdd\xaf\x80\xf5\x64\x50\x86\x43\x7d\x80\x1e\x87\xec\x4c\xb0\xc8\xa0\xb1\x3b\xab\x1c\x9e\xda\x70\x60\xd0\xd5\xc8\x99\xa4\x41\x68\xa3\xd6\x1f\xe5\x47\x6b\xb8\x9f\xce\x9e\x9d\x9e\x33\xa9\x2d\xc5\x85\xc3\xa4\xe3\x1e\x3c\xbe\x47\x15\xdb\x5a\x70\x27\x4c\xdf\x35\xc8\x74\xf3\x56\xa5\x44\x7a\xa5\x8d\x79\xd6\x3c\x97\x6d\xa0\xeb\xf9\x63\xdd\x98\x36\x4e\x0c\x5d\x8d\x1a\x0e\x65\x9e\xd5\xef\x8b\x41\x8b\xfe\xe4\xc5\x68\xa1\xd0\xe3\xba\xcd\xc6\x33\xda\xf2\x99\x56\x06\x42\xf4\x38\xea\xa1\x08\x8c\xb8\x84\xce\x73\x66\xb4\x15\xbc\xf3\x9b\xe8\xeb\x62\xb6\x7d\xb8\x3e\x17\x79\x40\x22\xcc\x5a\xe1\xf4\x5d\x99\xe5\xaf\x63\x5e\xea\x6e\x2b\xe2\x41\xcc\x84\x0b\xd8\x9e\x30\xcd\xde\x19\xb7\x1b\x50\x4c\xce\x03\xc5\x10\xe7\x6d\xf5\x03\xf7\x7d\xbe\x84\x93\x84\x27\x2e\xa5\x73\x9f\x8b\xb7\x71\xb1\x92\xf3\x90\x12\xe4\x15\x69\x1f\x11\xe3\x9e\x21\x9d\x34\xe7\x94\x09\x84\x65\xd4\x1e\x82\xf4\xe2\x20\xff\xdd\x80\xd8\x4a\x16\xcf\x2a\xf1\x56\x16\xa3\x29\xc2\xa9\x50\x81\x1e\x7c\x63\x7d\x51\x7d\xf6\x03\x21\xc0\x3c\x3c\x6e\x72\x4f\x65\xd5\x75\x13\x70\xce\x04\x45\x21\x81\xff\x9e\xa0\x3a\x3b\xff\x7d\x57\x09\x64\x72\x19\xe0\x61\x38\x67\xd2\xd2\xa7\x7d\x7c\x7c\xf4\x0c\x8f\xd7\x7f\x8e\x47\x04\x4b\x82\xb3\xf5\xd7\xcd\xec\xdf\xfe\x02\x51\x62\x10\xda\xb7\xdf\xb7\xeb\xae\xf7\x92\xee\xcb\xea\x4e\x58\x96\x8f\xfa\x0a\x63\x2a\xe7\x91\x04\x4c\x1a\x1a\x00\xdc\xc8\xc7\x47\xe3\x20\x42\x7f\xd8\xb2\x92\xd7\x36\x76\x0d\x6f\xdc\x59\xcc\x45\x60\xd1\x62\xe3\xc5\xc8\xe3\x34\x46\x1b\xaa\x44\xae\x4e\xad\x03\x7c\x57\x9d\xde\xe6\xa7\xb3\x8d\x88\xc7\x6b\x8b\x27\x41\x84\x18\x9d\xd6\x09\xde\x96\xa7\x4a\xc1\x17\xb0\x22\x5c\x6b\xb3\xcd\x7e\x35\x00\xc5\x15\xc1\x0a\xce\x13\x6a\xb1\x57\x7b\xeb\xe2\x4e\xf4\xc2\xfc\x20\x0e\x58\xd6\xd0\x99\x38\x94\x85\xc6\xcd\x71\x57\x5a\x04\xd0\x34\xa5\xcb\x93\x84\x59\x96\x7f\xa7\x95\x75\xbe\xa4\xb2\xe0\x3c\x85\x00\x35\xc6\x2b\x14\x6a\xf5\xe0\xf5\x0b\xfe\x25\xce\xa5\x4e\x91\x2f\xbb\x8d\x18\xe6\xe7\x79\x95\xe9\xee\xfd\xa8\x24\xc4\xfc\xbe\x18\x48\x4d\x6d\x2a\xe8\x79\x2a\xdb\x21\xc6\x92\xad\x43\xdd\x9c\x77\xbd\xc3\xce\x21\x34\xa8\xa4\x24\xf4\xff\x9e\xea\xe6\xae\xcc\x73\x61\xb9\x6f\xa0\x7a\x11\x4d\x56\x4e\xee\x02\x18\xb3\x7c\x97\xc8\x00\x90\xd5\x5d\x64\xcb\x81\x45\x58\x7c\xef\x72\x27\xdd\x01\xa1\xac\xcc\x12\xfc\x7c\x71\xf9\x87\x9b\xc4\x62\x9c\x9b\x24\x04\x6b\xfe\x45\x3e\xe8\x73\x1b\xad\xdb\x28\xe0\x0a\x43\x28\xcf\x6e\x6e\x3c\x07\x34\x8f\x02\x61\x5b\xdf\xde\xcb\x53\x0d\xd0\x11\xec\xf3\x28\x90\xb6\x57\xbe\x9b\x44\x1b\x71\xb6\x2c\x4b\x55\x51\xf5\x8e\x49\x44\xa2\xc0\x37\xc0\x3c\x8a\x42\x1f\xd1\x3e\x63\xa7\xe8\x1d\x18\x28\x34\x54\xab\xbb\xc1\x06\xd4\xdd\x13\x49\x94\x70\x5b\xac\xcd\xf7\x0c\xc9\x03\x6f\x29\x3b\xf2\x88\x00\xa0\xed\x6a\x77\xdb\x36\x2c\x9a\x9f\xce\x3d\x43\xcf\xb8\x0c\x1f\xb5\x4f\x81\xf2\x7c\xed\x6c\xb6\xc4\xb1\xd7\xdf\x62\x14\x4a\x16\xc6\x4e\xc3\x28\x2b\xe0\xeb\x59\x8d\x17\x66\xd4\x06\xb1\xed\x2e\x69\x7e\x76\x5b\xf9\xf8\x4b\x47\x94\xcb\xa8\xaf\x5f\xcf\x45\x8d\xbd\xcc\x05\xa2\x5d\xae\xe5\x1c\x88\x3f\x91\x01\x41\x52\x55\xc7\x60\xe6\x3b\xf3\xc5\x00\x28\xc3\xa3\xd6\x39\xc4\xd0\xe6\x54\x15\xed\xda\xf0\x7f\x8f\xd2\x18\xfd\xf9\x4c\xaa\xae\xd7\xb6\xb3\xb7\x51\x1c\x02\x72\x4e\xad\x8f\x50\xcc\x33\x7d\xb9\x81\xfd\x1d\x54\x11\x8f\x62\x9a\x60\x2b\xfc\xec\xcb\xce\x5f\x39\x89\x80\xf0\xa1\xd4\x5a\xfd\x52\xaa\xd5\x64\x45\x47\x49\x0c\xe8\xea\x35\xa7\x02\x1e\x45\x6d\x83\x01\x9c\xec\x13\xfd\x26\x1e\xa5\x24\xc5\x2a\x85\xc9\x7e\x0d\xd6\x61\x94\xfe\x3f\xa4\xbd\x6b\x73\xa3\x48\xd6\x2e\xfa\x77\xfa\xc3\xfb\x01\x48\xc8\xcb\x47\x59\x96\xab\x34\xed\xdb\xb6\x54\xd5\x3d\xef\xc4\x84\x22\x2f\x2b\x6d\xb6\x11\x68\x00\xb9\xec\xf9\xf5\x27\x58\x99\xc9\x4d\xd8\xdd\xe7\x9c\x1d\xb1\xdf\xea\x31\x09\x82\x24\x59\xb9\x2e\xcf\x7a\x1e\x4a\xf0\x15\xf6\x3b\xce\x41\xc6\xd1\x77\xd9\xbc\x1c\xfc\xe9\xfd\x40\x46\x42\x26\xfa\x36\x6f\x5b\xcc\x5a\x8e\xbd\x74\x2a\xb8\xe1\x8e\x55\x3e\x94\x4d\xc2\x01\x6d\xd0\xad\x97\x4d\x93\x37\xad\x1c\xce\x90\xc2\x7d\xea\xce\x63\x87\x11\x13\x4c\x46\x15\x37\xe8\x50\xef\x6b\xf9\x06\x85\x96\xcd\x4b\x7f\x44\x3b\xda\x14\x74\xb5\x43\x83\x59\x38\x66\xa4\xf4\xf1\x5e\xb0\x18\x13\x96\xff\x8c\xea\x48\xa0\x2f\xf4\x54\x61\x97\x57\x55\x15\x43\x14\x3c\x5d\x91\x3a\x8e\x10\x2b\x7a\xc4\xe9\x4f\xa2\x24\x1e\x14\xea\x86\x15\xa0\x49\x42\x92\x20\x60\x03\xdb\xf5\x03\x42\x78\xbc\xef\xbb\xfc\xb6\x75\x66\xb5\x53\x03\xa9\xf2\xe6\xef\xd1\x94\x65\xd4\xd8\x14\xad\x00\x32\x54\x36\x27\x79\x74\x6d\x0b\xe1\x36\xac\x10\xd8\xb7\x57\x61\x23\xfc\x7f\xa1\x6e\x0e\x27\xcf\xba\x10\x46\xc8\x24\x9d\xc2\xf9\x3f\xeb\x78\x08\x27\x80\xe6\x61\x65\xec\xd0\xce\xf8\x4b\xb1\x48\xc7\xd8\xea\xfc\xed\x6a\x54\x7b\x67\x11\x90\x20\x9d\xb9\x0c\x6e\xf3\xe3\x62\x99\x22\x0b\xf8\x9d\x7c\xbf\x82\xd6\xcd\x94\xdb\xc9\x67\xab\x9b\x91\x18\x10\x04\xf8\x9f\x73\xde\x76\x7b\xf9\x70\x07\x24\x8d\xd1\xb6\xf9\x98\x00\xd7\xe1\xbc\xe6\xce\x88\x94\x58\xc9\x29\xc1\x81\xe7\xe7\x87\x35\x24\x63\x60\x46\xe7\x1a\x5f\x7d\x8c\xf1\x94\x7e\x60\x4a\x93\xcc\xa7\xda\x7f\x56\x33\x9a\xc4\x8c\x65\x91\x2b\xfe\x38\xb3\xb4\x7e\xb1\x6b\x28\xdb\xc6\x17\x28\x66\x43\xa9\x11\x3e\x49\xf3\x07\xc8\x53\x55\x3e\xc9\x3a\x6f\x3f\xb0\xbd\xa1\x9b\xb1\xf9\xe7\xcd\x32\x93\xa2\xe8\xf2\xe6\x98\xb7\x1e\x3a\xb1\x7e\x91\x75\x7b\x0d\xad\xcc\x8b\x4f\x61\x77\xd3\x17\xc9\xa8\x64\x6c\x10\xfa\xf7\xf9\xfa\x2e\x6a\x59\x6a\xda\xcd\x18\x8b\x53\xa3\xa6\x9a\x0b\x4f\xa3\xb4\x5c\x18\xc5\x63\x60\x3d\x95\xf2\xf6\xf1\x66\xb7\x30\x73\x4c\x24\x42\xf5\x51\xde\x5c\x1e\xaf\x1f\x44\x6c\x2f\xf1\x54\x3a\xae\xb8\xaa\xde\x57\x67\xfd\xd2\x27\x97\x18\x8f\x63\x16\xa0\x0a\x55\xbb\x6a\x6e\xf2\x77\x30\x8f\x55\xee\x08\x29\xe5\x11\x2e\xe6\x8e\x33\xa7\xec\x90\xeb\x6a\xda\x4b\x9c\x31\x0e\x02\x4b\xf4\x4f\xdf\xff\x79\xff\x10\x5a\x35\x32\x26\x84\x8a\x7d\x44\xf8\xa3\xf4\xec\x0f\x66\x55\x8f\x9d\x0a\x26\x8c\x41\x89\xe1\xa1\x70\xb1\xaf\xbe\x57\x27\xb0\xe7\x62\x6b\x66\x79\x25\xa6\xb4\xa1\x72\x0c\x52\x98\x39\x0f\x53\x27\x82\x69\x42\x83\x83\xee\x5d\x6b\xef\x76\xde\x54\x75\xa8\xd5\xcf\x26\x58\x73\x8e\x79\x61\x7d\xae\xff\xcf\x59\x0e\x29\x26\x66\x88\x51\x1e\x93\x7c\x7f\x3e\xba\x28\x62\x96\x81\x63\x26\x1b\xaf\xdc\x1d\xa6\x30\x5d\x32\x7e\x79\x13\x67\x86\xa7\xb8\x47\xff\x2f\x3c\xcb\x7a\x99\x60\x71\xa1\x5e\xc0\x8c\x50\xa8\xc3\x7e\xb7\xbd\x47\xb6\x66\xc7\x54\x17\xee\x14\xa2\x0c\xd9\x54\xa5\x31\x2e\xf0\xed\xae\x7b\x3d\x9b\x49\x88\x2d\xf7\xf2\x66\x81\x6a\x3c\x1c\xc9\x34\xb2\x1c\x1c\x65\xab\x5f\x5c\x5b\x5a\x38\x62\x33\x64\xed\xf2\x6f\xd2\xa9\xc5\xcc\xb1\xcc\xfd\x58\x16\x39\xce\xc2\xa2\xd8\x5d\xb4\x4e\x7e\xb9\x79\x33\x2b\x1c\x85\x86\x6b\x45\xec\x3e\xe6\x71\xf2\x27\x0c\xd2\xdc\x23\x01\xda\x27\x47\x07\x88\xcc\x5b\x3d\xac\x79\x72\x49\x1e\xb1\x04\x5b\x63\x4d\xde\x74\xee\xde\x61\xe4\x0e\xf2\x48\x03\x4f\x7b\x2d\x57\xe4\x29\x96\x79\xf9\x60\x97\xad\x2d\x8f\x23\xc7\xa7\x6d\x5c\x52\x63\xdd\xf9\xd3\x2d\xd4\xb2\x08\xca\x62\x0f\x16\x25\x4e\x9b\xcb\x6e\x91\x45\xf3\xc0\xe3\xc8\x89\xd3\x35\x85\x7c\x03\x57\xe8\x7e\x9c\xec\x34\x3c\xe6\x2c\x0b\x85\xee\x43\x55\xba\x56\xe2\xcd\x7f\x7e\x74\xce\x69\x3f\x46\x3b\x35\x41\x9f\x4d\x68\x1e\xea\x1b\x99\x17\x18\xbe\x3c\x3c\x5c\xf5\xa3\x6c\x86\xdb\xf9\xb0\x67\x05\x8a\xe2\xf3\x1c\x37\x3d\x2f\x7d\xf1\x44\x59\xd4\xd4\x71\xab\xfb\x1a\x0a\x78\x96\x2d\xfc\x3e\xd0\x0d\xfb\x71\x24\xce\x30\x52\x5d\xed\xff\x9a\xd9\x3f\xe3\x84\x30\xfc\xfe\x47\x77\x54\x1a\x47\x82\x39\xee\xa7\xcc\x38\x91\x31\xf6\xb0\x55\x5e\x4e\x17\xbb\x0a\xfa\x94\x0c\x27\x2a\x81\xfe\x2d\xfe\x31\x16\xef\x5f\x15\x21\xda\xe6\x69\x22\xb0\xc9\xea\xdc\x40\x8d\x20\xc8\x6e\x61\x05\x2b\xfa\x89\xff\xce\x19\xa8\x20\x00\x80\x66\x7b\xf2\xf2\xb8\x15\x98\xa9\xf3\xea\x46\xab\x67\x28\xdb\xdd\x1c\xa9\xc0\x45\x62\x31\x3f\x1d\xc2\xc8\xab\x8f\x4f\x16\x97\x90\x36\xc0\x70\x7d\x8f\xce\xef\x67\x53\x35\x2e\x31\x7e\x41\xbe\xd7\xbf\x1a\x49\x63\xe3\x38\x09\xaa\xda\xa0\x8c\xc1\xbe\xda\x9a\x2e\x7c\xb3\xf9\x8c\x7a\x68\xb8\x75\x49\xb5\xa4\x21\xe5\x5d\xd5\x1f\x9b\xf7\x53\x1e\xa0\x39\x71\x12\x06\x41\x86\xf0\x01\x47\xcd\x3c\xad\xf7\xf9\x21\x2a\x93\x24\x1b\xcb\xb6\xef\x70\x73\x1a\x89\xc2\xf0\x7f\x25\x03\xb9\xfe\xe4\x3f\xfb\x4b\xe8\x88\x8e\xa0\x31\x7f\x59\x7a\xee\xcf\x33\xd2\x31\x7a\x60\xf8\xfd\x47\xcf\x77\x9c\x71\xc5\x33\x9f\xe4\xec\x6e\x1c\xb7\xd2\x05\x53\xca\x75\xe4\x1c\x02\x97\xf7\x6f\xcf\x0d\xe6\x39\x51\xa0\xc1\x04\x62\xd1\x7e\xa8\x6b\xe1\xf1\xd2\xb4\xdd\xc3\xce\xac\x1e\xd7\x89\xc4\xa4\x61\xe7\x53\xe4\x41\x49\x2b\xe3\x3a\xb5\x58\x58\xff\x12\x6b\x36\x5b\x09\x3a\x33\x98\x35\x68\x2a\xdb\xcb\x6f\x85\xeb\x19\x62\xb0\x54\xf7\x58\xc8\x8f\xef\xb2\x28\xc6\xc9\x6a\x6e\x64\xaa\x52\x0f\xe5\x09\x8d\x1c\xe1\x90\xc9\x30\x8b\x10\x22\xd1\xc1\x30\x5f\x86\xa2\x1c\x68\x84\xed\x31\x98\xd8\x99\x20\x2e\xb8\xa5\x0a\x37\x8f\x6f\xf9\x1b\x84\xe2\x98\x73\xff\x7d\x68\x30\x7b\x16\x6b\x52\x6c\xf8\xc4\x60\x2a\x1e\xb5\x1e\xbb\xe3\x22\x8e\x58\xe6\x77\xac\x75\x85\x96\x73\x86\x7c\x1d\x6f\xd1\x22\x4e\x49\xe2\xdb\xd0\x87\x22\x9f\xe8\x0c\x39\xed\x99\x04\xfb\x42\x5b\xb7\xd3\x7f\xca\x20\x1c\x4e\x05\x91\xc4\xfd\x52\xf1\x8a\xb2\xfe\x18\x01\x93\x78\xe5\x97\xed\xfa\x21\x7e\x1c\x81\x2e\x45\xaa\x1c\x41\x83\x43\x29\xed\x7f\x85\x4c\xbf\xa0\x19\x51\x7c\x6c\xd3\xf2\xaa\xf4\x4b\x2a\x8c\xd0\x02\x9b\x4e\x1c\xcc\xd8\x45\x38\x23\x56\xc3\x4c\x50\xa0\x89\xbe\x34\xf9\xd8\x94\x8b\x45\x67\x3f\x8e\x11\x40\x66\xe1\xf5\xf6\xe6\x69\xfd\xb0\xbd\x1f\x29\xef\x66\x82\x09\xc1\x03\x14\x61\x5f\xad\xe6\xe8\x24\xc1\xe3\xcc\xc9\x46\x14\x67\x0d\x7b\xe8\x4c\x61\xfe\x25\xe8\x4f\xf0\x24\xc3\x46\xc5\x20\x8f\x38\x94\x37\x04\xcf\x12\x3b\x64\x13\x02\x9d\xfa\xfc\x17\xa5\xab\x5f\x7b\xe9\xfe\xba\x3a\x56\x3b\x00\x33\x4e\xc5\x8d\x0b\x33\x7f\x83\x4c\x6a\x6a\x11\x84\x88\x0c\xc2\x58\xf1\x93\xb8\x39\x17\x16\xdb\xe0\x87\xaa\x49\x67\x7e\xc2\xc6\xc6\xff\x3d\x3f\x59\xd3\xc0\x64\xf9\x2c\x8f\xa0\x65\x8d\x46\x08\x39\xf5\x43\xf0\x3e\x3d\x43\x26\x1c\x71\xf7\x3f\xee\x6f\x1f\xd6\xbf\x1f\x1e\x37\x4f\xdb\x87\x90\x9a\x16\x2a\xd1\x48\x70\xd5\x13\x65\x3c\x0d\xe0\x9c\xa9\xe1\x10\x2a\x8b\x31\x70\x3f\x60\xdf\x61\x32\xf6\x4f\x84\xca\x28\x82\x11\x1e\xf7\xb7\xfd\x9f\x34\x0d\x20\x04\xdc\xc6\xdc\xee\xe0\x0f\xea\x28\xc3\x83\xd7\x9b\x9f\x87\xfd\xea\xcf\xc3\xf5\xf6\xe7\x76\xf7\xf0\xd4\x1f\x4e\x04\x38\x78\x1b\x7a\xd1\xa8\xbb\xdb\xbb\xb9\x42\x8b\x0c\x53\x3b\x87\x6e\xcd\xfc\x01\xea\x5b\x6e\xdb\xcf\xa9\x4f\x33\xa1\x01\xc0\x11\xb1\xbb\x4d\xd4\xed\xd9\x23\xc2\x9c\x4c\x98\x58\xa3\x41\x82\xf6\xe5\x60\x5c\xcb\xdc\xa1\x0c\xf4\x24\x99\x30\x84\xe8\x38\x70\xd5\x74\x36\x78\xe6\x55\x0b\x50\x22\xf3\xc4\x10\x6f\x79\x01\xcf\x70\xd9\x3f\x37\x09\x03\xa6\x2b\xd6\x1a\x83\x7a\xb8\x4d\xe7\xc9\xae\xab\xe3\xf1\x5c\xe6\x1e\x46\xd2\xcf\x98\x05\x8b\xf9\xf9\x2e\x64\x2e\xa6\x50\x10\x19\x47\x3d\x41\xf2\xfa\x25\x2f\x66\x65\x65\x19\x8b\x48\x3b\x91\x9c\x5c\x23\x6f\xb9\x74\xdb\x08\x2a\x39\xbd\x41\xde\x5f\x27\x49\x62\x74\xf5\x4f\xdd\x9a\x47\x32\xa8\x1f\x83\x3d\x90\x24\x72\x92\xfd\x27\x97\xd3\x1d\xe5\x6d\x24\x89\x63\xdc\x5e\xaf\x1d\xeb\x5c\xff\xe7\x54\x6a\xd9\x6b\x3d\xdf\xc9\xfa\xb9\x4f\x1c\x48\xa2\x64\x1a\x02\x40\xa8\xdb\xce\x45\x1b\xcf\x89\x4c\x93\x88\xc7\x01\x21\x9d\x6b\xd8\xb5\x70\x22\xd3\x59\x97\x29\x01\xe9\xe3\x9d\xb6\x19\x38\x5f\xa7\xa6\x53\x66\x11\x25\xd4\x63\x0e\xba\x5d\xd1\xc5\x04\x17\xd4\xed\xc1\x51\x91\x59\x62\xdc\xf7\x7f\xee\xa2\x31\x9f\xe0\x0c\xc7\x38\x41\xd4\xd7\xa1\x86\x95\x4b\x55\xe7\xd6\xe6\xfa\x5c\xcc\x08\x05\x33\x49\x75\x96\xba\xe5\x5f\x76\x8e\x37\x8a\x40\xfb\x43\x8c\x3a\x7e\x7c\x05\xcf\x79\x89\xda\x4a\xd3\x53\x19\x8f\x50\x0c\xed\x1a\xd6\xc5\x59\xfd\x25\xca\x59\x72\x6a\xb0\xd6\xb0\xd9\x7f\x3f\xfc\xd8\x5d\x1f\x36\x7f\xae\xbf\xaf\xee\xbf\x6d\x0e\xeb\xcd\xfd\x7e\x17\x7e\x95\x03\xb5\xbe\xa2\x75\x0f\xbf\x36\x26\x9f\xf3\x41\x66\x52\x98\x34\x0b\xeb\xa8\xc8\x87\x50\x34\x5c\x42\x25\x4e\x2c\x13\xf1\x26\xdd\x2b\xdd\xe5\xff\x9d\xdf\xbc\xca\x12\x2c\x67\xdf\x6d\xf7\x17\x14\xd6\x5f\x86\x54\x52\x09\xa7\x8a\x22\x8d\xb9\x46\x49\xf9\xf5\x4b\xf7\xe3\xb7\xf9\x40\xe7\xbe\xc4\x49\x9a\x49\xa5\x49\x3c\xb4\x0d\x6f\xd7\x0f\x0b\x15\x0e\xa9\x13\xe1\xe5\xb5\x4b\x84\x03\x0d\x10\xcd\xd9\xd5\x34\x24\xb2\x07\xa1\xa0\xbf\x39\x7c\x02\x86\x59\x6c\xce\x7b\x28\x71\x3d\xf6\x7f\x16\x31\xf6\x64\xb9\x1d\x03\xf1\x21\xe1\x88\xd5\xe8\x85\xec\xb0\x9d\xe4\x2e\x2f\xa1\x6e\xfe\x74\x2a\xfa\xd3\x5f\x05\x95\x06\x11\x7f\x9f\xb1\x9e\x3f\xf3\x85\xf7\x23\xc1\x32\x74\x95\x30\xa8\xc4\xd6\xdb\x4b\xee\xa6\xc9\xaf\xa8\x28\x73\xd9\x3d\x57\x4e\xf0\x19\x94\xc9\x1a\x50\x71\xe4\x58\xfa\xb7\xf7\xdb\xfd\x76\x75\x7b\x78\x7c\xda\xae\x37\x87\xed\xfd\xfa\x69\x73\xb7\xe9\x03\x78\x15\x0b\x27\xe3\x9e\x97\x97\x71\xaf\x8a\x65\xc4\x7c\xf1\xfc\xdb\xc3\x23\xe6\x4e\xe7\x6b\x4d\x25\xc2\xf0\x41\x8b\x0c\xea\x11\x09\x7a\xa6\x12\xa9\x11\x5c\x37\xd3\xee\x19\xab\x59\x66\x8a\xc4\x12\x13\x85\xa7\xd9\x32\x0b\x87\x55\x86\xd9\x42\xc7\x7b\xd3\x4d\xbd\x99\x94\x46\x15\x51\x16\x3d\xa0\xbe\x41\xbb\xae\x8e\x5f\xf7\x88\x66\x8a\x80\x31\x43\x56\x6d\x5f\xcb\x7c\xbe\x15\xa8\x2c\x76\x64\x72\xce\x1b\x5b\x58\x8a\x2a\xa3\x6c\x44\x1f\xe6\x98\xfa\x16\xbd\x3e\x95\x51\xa7\x79\x21\xdf\xa0\x96\xcf\xb0\xd3\xb5\x3c\x8d\x2b\xae\x8a\x92\x14\xeb\x4c\x3e\xdd\x71\x9d\x37\xaa\xf3\x4d\x8f\x43\x60\xae\x68\xaa\xb0\xe0\xde\x20\x5d\x52\x80\x3b\xdc\x57\x9f\xd1\x14\x64\x8a\x4a\xe0\x5e\x40\x75\xb7\xba\xdd\xec\xf6\x3d\xb3\x49\xa6\x58\x92\x60\xcb\xda\xee\xdb\x7e\x36\xdf\x2c\x53\xcc\x49\x4b\xd5\xa3\xfa\xda\x20\xf2\x91\x29\xde\x7d\xab\x2e\x35\x7b\x07\x26\x97\x97\x5d\xa9\x4b\xc4\x8e\x99\xe2\x9c\xba\x9a\xd9\x90\x28\x6c\xfa\x6b\x0a\x8d\x38\x8d\x55\x5e\x5f\xd7\xd5\x69\x1c\x65\x28\x11\xb9\xc6\x14\xd7\xdb\x53\xe4\x25\xe4\x83\x15\x56\x32\x72\xac\x20\xcf\x9d\xaf\xe3\xda\x5b\x67\x4f\x24\x23\x8b\x29\x0d\x64\x40\x9c\xc3\x39\x67\x43\x13\x83\x86\xe1\x98\x97\x9d\xef\x30\x79\x47\x12\x62\xcc\x30\x82\xac\x8b\x8f\x60\x13\x9d\xab\xbd\xea\xdf\x92\xe2\x80\x02\x28\x07\x25\xcd\x33\xfc\x28\x7d\xa2\x7f\xba\x70\xb4\x86\x80\x30\xbf\x99\x50\x15\xfa\xe3\x26\x75\xec\x07\x27\x67\x41\xfa\xc4\x83\x32\xcc\x49\x86\xf4\x14\xe6\x8f\x85\x6c\x6d\x55\x1f\xfb\x01\xca\xe9\xca\xfa\xfe\x25\x47\xe5\xdb\x1f\x63\x8e\xe3\x14\xeb\xf1\x21\xef\xd3\xbf\x01\xa3\x63\x84\x0c\xf9\x0c\xd7\x6f\x7d\x6b\xcb\x70\xdf\xc6\x68\x9c\x81\xeb\x6f\x7f\x5e\xd4\x5d\x66\x13\x09\x71\x82\x89\x0c\xbc\xd3\x24\xfc\x06\x64\x04\xf3\xce\xaf\xb9\x7e\xc5\x78\x71\xbb\x7e\x58\x76\xf6\x74\x44\x33\x84\xd4\x1c\xf3\x72\xd7\xca\xd7\xbc\x7c\x9e\xf4\x41\xe9\x38\x4a\x52\xcf\x12\xba\xed\xa1\x75\x3a\x89\x32\xd4\x3d\x2f\x64\xd3\x1e\x6a\x59\x9a\xea\xd8\x1f\x4a\x15\x62\xa5\x6d\x55\xe4\xd5\x78\x7d\x69\x12\x8d\xd2\x39\xd7\x55\x39\x2c\x4b\x9d\x72\x4b\xba\x49\xb9\xfb\xe7\xf5\x66\xbd\xbd\x5b\x05\xaf\x58\x67\x91\x45\xa3\xe5\xda\xed\x1f\x5f\xa0\xac\x8e\x50\x56\xb3\x14\xaf\xce\xd2\x34\x73\xea\xc0\x79\xd3\x36\xcb\xed\x61\x3a\xd3\x10\x39\xeb\xe0\xc1\x57\x0f\xa5\x53\x1a\x0e\xc7\x4d\x8a\xd6\xa3\xcd\x0b\x18\xcb\x88\x05\x4f\x47\xd3\xc4\x20\x70\xe4\x6e\xf5\xe7\xc1\x8b\xeb\xad\xb6\x4f\xd7\x4f\x0f\x8f\xbb\xc3\xd5\xc3\x8f\xfb\xfd\x36\x88\xb1\x66\x9a\x45\x12\x37\x1b\xd4\x86\xa8\x56\x35\xc8\x49\x89\x4d\x33\xee\xb8\x76\xa5\x31\x78\x13\x9f\x14\xd8\x34\xd3\x26\x66\x93\x7c\xb7\x03\x1a\xfa\x2f\xd0\x8f\xe2\xa9\x63\x70\xd4\xd5\xf1\x38\x5a\x6c\x5a\x90\x08\xab\x3b\x58\xb8\x84\x05\xb4\x8c\x16\xc4\x58\xc7\xca\xfd\x4b\xd6\x0e\x96\x37\xad\xcb\x85\x71\x59\x46\xb8\xef\xa4\x3f\xb9\xe2\xde\xd8\xe8\x68\xc1\x12\xa4\x20\xf8\x47\xe5\x7c\xb4\x55\xe3\x8b\x51\x93\xc8\xcf\x0f\x96\x99\xd6\x9e\x54\xc7\x60\x59\x69\x9f\x17\xc5\x66\xff\x7d\xd5\x34\x03\xea\x5e\x4b\x91\x11\x13\x28\x95\xbd\xc1\x5a\xce\x7b\x69\x29\x13\x9a\xf4\xa2\xaa\xfd\x05\xa4\x0c\xd5\xd8\xbb\x8f\xf5\x4b\xae\x47\x8b\x51\x25\x4a\xfb\x4c\xd9\x55\x5d\xbd\x42\x2f\x86\xb1\xfc\x03\x8a\x50\x6a\xfa\xe0\xfe\x2e\x7f\xae\x2f\xaa\x3d\x5a\xa5\x36\x71\x0a\x7a\x95\x75\x16\x50\x76\x0e\xcc\x34\xf8\xd0\x2a\x53\xda\x3b\x8d\x2e\x3b\x37\x0a\x0c\xb4\xa2\x04\x3d\xc6\xbc\xd9\xb6\x5b\x5d\xf5\x7f\x16\x1c\xb1\xd6\x2e\x7b\xee\x45\x95\xcd\x25\xb0\x56\x2b\x43\x11\x39\x65\x73\xdb\xbe\xec\x41\x1e\x07\xcc\x5f\x7f\x2d\x70\xb0\x9c\x36\xc0\x34\xab\xba\x1d\xb1\x86\x74\x03\x14\xba\xdb\xd7\x5b\xfc\x12\x77\xa3\xbf\xb3\xde\x6b\xab\xea\x66\xf6\x5c\x9a\xa4\xe8\xba\xb9\xb6\xc6\x53\x51\x7d\x80\x13\xce\x18\x46\x18\x95\xea\x41\x93\xa2\x39\x9d\xcd\x68\x83\xd1\xda\x12\x8c\x60\xdc\x36\x7f\xb0\x55\xdd\xad\xc8\x61\xa5\x6a\x4b\xd1\x19\xfb\x7d\xf3\x10\xfe\x64\xb4\xc4\xae\x80\x2e\x06\xac\xca\x41\x7f\x27\x1c\x86\x14\x5f\x88\x73\x12\x91\x67\x76\xe8\x73\x5f\xe9\x09\x4d\xc1\x28\xfb\xa9\x81\xb9\xb6\x14\x03\x6f\x67\x28\xde\x60\x53\xea\x33\x34\xad\x34\xd5\x0c\x8a\xa6\x41\xa5\x0a\x77\x98\xb3\x3a\xe6\xed\x48\x90\x24\xd3\x36\x8b\x31\xa5\xd5\xf4\xb4\x6b\xce\x65\x5b\x2c\x6b\x69\x2b\x38\xc6\xdc\x1b\x73\x5e\x17\xd5\xd9\xf4\x57\x91\x19\xd2\x4f\xa1\x15\xcf\xcb\xe7\xf1\x4e\x69\xa2\x28\x4a\xe3\x49\x9d\x6d\xdc\x20\x62\xa2\x34\x42\xb6\xe0\xdf\xf7\x11\x5b\xca\x02\x5d\x66\xee\x4d\xa4\x52\x64\xd7\x3b\xe6\xe5\xcd\x19\xa9\x87\xbf\x55\xfd\xd2\x31\x71\xe4\x0c\xa4\x8b\x4f\x7f\x7a\xa8\xa9\x17\x47\xef\x07\x19\xc9\xd3\x31\xc8\x72\x99\xde\xc0\x90\xc8\x38\x96\xef\x12\x25\x2d\x0e\xbf\x43\x15\x56\x8a\x21\xd2\x89\x4f\xbb\x94\xb9\xeb\xde\x99\xdc\x27\x51\x4e\xd5\xc1\xe9\xe5\xca\xba\x96\x1f\x48\xd0\x3b\xfb\x09\xa5\x4d\x60\x41\xfd\x2e\x6b\xa3\x83\x96\x65\x66\x88\x89\xb0\xe3\x21\x38\xc3\xf3\xce\x0d\x93\x2a\x83\x4e\xd4\x6d\x55\xbd\xae\xda\x75\x10\x5a\xbd\x81\x7e\x3d\x9b\x4c\x30\x54\x53\xec\xc9\xe7\xc6\x7c\x8f\x61\x0c\x48\xdb\xcb\x38\x1f\x4e\x55\x3e\x18\x67\xc3\x28\x50\xbf\x42\xd6\xd5\xf1\xd4\xc2\x21\x61\xd3\xc7\x64\xdc\x60\x4a\x71\xab\x2b\xcc\x52\x0e\x02\x10\xb3\x27\xe5\x44\x61\x7d\x46\xf6\x4a\x16\x87\xee\xaa\xb2\x36\x8f\x50\xbf\xee\xe1\x7d\x1e\x1e\x85\xf3\x32\x87\x45\xf5\xbc\xe6\xa7\x73\x31\x4e\xe2\x1a\x2e\xdd\xf2\xde\x9d\x72\x3d\xa1\x21\x31\xdc\x68\xe4\x9e\x57\xd0\xae\x4a\x73\x53\xe4\xfd\xc4\x71\x4b\x65\x36\x6a\x67\xbd\xa9\xea\xef\x79\x33\x42\x11\x19\x11\xc7\xa8\x3c\x83\x0e\x5e\xff\xd1\x5e\x75\xd1\xfd\xc8\x16\x1a\x91\x00\x0c\x24\xb1\x37\x00\x33\x01\x9c\xe9\x0c\x08\xce\x95\xe7\x64\x76\xfd\xc5\x9f\x37\x5d\x85\x33\x84\x3b\xa3\x77\x07\xae\x02\x2e\x6d\x36\xb9\xc2\x64\xb8\x89\xbe\xe4\xcf\x2f\x21\x17\xb6\x83\xa2\x18\x7f\x1a\x02\x34\x27\x43\x83\xe9\xd5\xf9\xa3\x5b\x15\x9b\xfd\xf7\xd9\xb5\xa4\xce\x70\xdd\x5d\x57\xfa\xdc\xbd\x47\xc7\x1c\xb8\xbc\xe9\x18\x95\x1a\xd3\xd9\xa1\xff\xeb\xf0\x3b\x57\xe3\xe4\x82\x51\xd4\xd1\xb2\x8c\x98\xeb\x1d\xcd\xd1\x23\x92\xb5\x3f\x0f\x03\x21\xca\x3c\xdc\xe7\xba\x2a\xf1\xfd\xfa\x5a\x5c\x33\x01\x2f\x1b\xad\x25\x66\x3c\x4e\x55\xd3\xde\x41\xd3\xc8\xe7\xcb\x36\xa3\xc9\xea\x31\x11\x0c\xaa\xd5\x98\x1f\x1c\x2b\x9a\x8f\xea\x8c\xc6\xa4\x0e\x72\xfb\x04\x08\xcd\x0e\xb7\x66\x8c\x63\x83\x77\x99\x88\xbb\xfc\x7d\x83\x6e\xde\xa8\x0d\xd9\x58\x65\x31\x1c\x43\x8d\xcb\xca\x9c\x07\x0d\xfa\xaf\xc8\xc7\xc2\xc9\xda\xf2\xa0\xa1\x39\xef\xd3\x81\x28\x21\x6a\xe8\x9c\x46\x7f\x6a\x9a\xbf\x81\x88\xba\x0f\x5c\xd6\xf0\xe4\x9a\x7d\x3c\x01\xea\x25\xc8\x0d\x22\xcd\x5d\x1b\x5d\xd5\xfc\x15\x15\x98\x3f\x23\x8e\x79\xec\x30\x9c\x26\x08\x4d\xce\x22\x2a\x88\x49\x86\x3d\xbb\x4e\x53\xeb\xd0\xbb\x4b\xbf\x2d\x58\xf0\xc9\xab\x81\x98\x46\x94\x4c\xf5\x8e\xe7\xd7\x56\x19\x7a\xe3\xc8\xfd\xff\x08\x75\x78\xe3\xe1\xb0\xa6\x58\x84\xc0\xe4\x75\x78\xa2\x87\xa7\xdd\x67\x48\x28\x20\x31\x43\x70\x95\xc3\xbc\x15\x32\x3f\xfa\x32\xf4\xa5\x96\xd2\xfc\x4c\x12\x39\x9e\xe2\x40\x88\xee\x10\x3f\xcb\x28\x52\x20\x4c\x25\x2e\x6e\x2e\x06\x11\x9b\xd9\xb3\x11\x43\x70\xd1\x60\xe6\x68\x84\x1b\x5e\xee\xc9\x01\x62\x18\x66\xb3\x65\xd3\x05\xfd\x8e\x43\xf4\x92\x82\x71\x7a\xd3\x69\x6c\xa4\xaf\x2b\x3c\x61\xfc\xe3\x76\xf7\xe9\xa0\x2c\x49\x91\x49\xb4\xce\x9f\x5f\x5a\x3e\x3b\x48\x13\x81\x26\xb4\xf3\x49\x6a\x99\x37\x79\xf9\x7c\x0d\x45\xdf\x55\x03\x34\xcb\x42\xc6\xc7\xb5\x1b\x5c\x55\x4d\xf3\x87\x2c\x4b\xb9\xae\x3f\x2e\xa8\xd9\x33\xa0\x9a\x44\x7d\x78\x35\x66\x11\xcf\x80\xda\x2c\xee\x0b\x69\xd7\x30\x90\x34\xf9\xe3\x2c\x8b\x53\x2f\x65\x27\x03\x45\x42\x7f\x4c\x8b\x9e\x05\x11\xd1\x14\x47\x87\x23\x43\x70\xed\x20\x0c\x37\x7d\x36\x06\x44\xdb\xa1\x88\xbb\x2a\x8a\xa1\x13\x1d\xb8\x48\xd0\x56\x06\x15\x83\x49\x95\x0c\xb8\x25\xc8\xc8\x5b\x54\xcf\x3f\xb6\x8b\x29\x47\x90\x09\x15\x9d\xeb\xb0\xd3\x79\xd3\x0c\x51\x24\x48\xab\x30\x87\xbc\xca\x5f\x75\x95\x4f\x91\xfd\x60\xc0\x89\x51\x7a\x8c\xc7\x0e\x74\x0d\xc8\xe6\xb8\xe0\x01\x02\x70\x89\x7b\xc3\xaf\xbc\x2c\xf3\xf2\xb9\xf3\xa4\x77\x7d\x26\x0d\x00\xb4\xd2\x7e\x8b\x6b\xf2\xaa\xbc\xfa\xf8\x5f\xa8\x83\x1f\x0b\x56\xb8\x2d\xff\xf6\xe1\xdb\xa1\x84\x5f\xbb\x53\x5e\x36\x7d\x30\x70\xc1\xeb\xbd\x68\xf9\x6d\xc4\x2d\x96\x6c\x0c\x68\xf9\x01\x4e\xdd\xf7\xc1\xee\x7f\xe5\x6d\x0b\xf5\x1c\xc5\x65\x23\x9b\x22\x83\x44\x9f\x65\x73\xf9\x39\x80\xa7\x85\x4e\xd1\xfe\x1c\x93\xf8\xcc\x7c\xe7\xa7\x2d\x3b\x69\x36\xa1\x09\xf2\xba\x8e\x89\xa7\x82\x51\xb7\x09\x8f\xd5\xd0\x5a\xe8\xaa\x0e\xd0\x5e\xb4\x04\x5b\x22\x24\xda\x22\x93\xbf\xfd\xe6\x29\x3c\xc6\xbd\x4b\x96\x18\x99\xf9\x86\x98\x2e\x66\xf4\x18\xbe\x49\x98\x6a\x89\x4d\xd0\x31\xfd\xbf\x15\xf2\xb5\x84\xfe\xd5\xe9\x33\xa5\x04\x8c\xaf\x6f\xdc\xc1\xb1\xb9\x48\xb6\xdb\x54\xb3\xc8\xcb\xe6\x06\xde\xe8\x25\xd9\xad\xcc\x66\x5a\x05\x98\x26\xd2\xb9\x60\xd1\x79\xdf\x37\xf5\x8f\x21\xa1\xe1\x0c\xd0\xbe\x7e\xd1\xae\x5f\x40\x9e\xa0\x41\xf7\xeb\x0f\x14\x2a\x9f\x0e\xa5\x8c\x60\x31\xef\xb6\x7a\xfb\x9a\x7d\x36\xb3\x8c\x78\xae\x98\x60\x80\x83\x55\xba\x1a\x48\x07\x2c\xe7\x19\xba\x09\x6b\xd9\xbc\x3c\x9c\xc7\x22\x67\x99\x15\x54\x61\xfe\x11\xfb\x3e\x27\x1f\x84\x15\xca\x3a\x05\xc6\x87\x7b\xec\xa3\x3f\x3c\x6d\xbe\x6d\x77\xfb\xa7\x7f\xf6\x03\x6c\x8c\xdb\xfb\xc5\xf6\xb8\xbc\x66\x65\xe4\xe4\xc0\xf3\x06\xbf\x86\xf0\x40\xe3\x6d\xc9\xca\x4c\xc2\x10\xe3\xed\x5e\xe4\x09\x76\x2f\xb9\x6d\x47\x3d\x4a\x28\x57\xba\xb0\xa5\x59\xc9\x1d\x6d\xc6\xc1\x76\x96\x27\x60\x41\xa7\x53\x2b\x4d\x84\x60\x42\x94\xff\xee\xee\x35\xd8\x06\xab\x52\x27\x6f\xff\xf8\xf0\x47\xe0\xa7\xcf\xac\xa2\x34\x90\x2c\x7f\x87\xba\xda\xb6\x70\x9c\x59\x32\xab\x33\x96\xc9\x51\x9a\xd6\xbf\xfe\x89\xe7\x64\x75\x66\x31\xa6\xfe\xbe\x7d\xfc\x1e\x88\xaf\x33\xab\x99\x88\x5c\x44\xdc\xff\xc5\x13\x18\x63\x69\x4d\xce\x39\xf1\x33\xab\xc1\x44\xb1\x17\x26\x70\xab\xec\x11\x59\x5f\xc3\xf9\x26\x76\xf4\xa7\x4f\x1b\x94\xad\xde\x6f\xef\x36\x87\x9b\xa7\x55\xcf\xd4\x64\x8d\x8c\xd1\x0b\x29\x2b\xd4\xb0\x58\x5e\x54\x46\x31\xf4\xbf\xef\xb6\xf7\x07\x7c\xf9\xdb\xab\x1f\xc8\xa2\x30\x40\x6d\x2c\x28\x47\xc0\xe1\x12\x09\x83\x57\x6e\x2d\xe5\x88\x61\xd9\xf6\xa2\xce\xcb\xea\xbf\x99\xb5\x4a\x5e\x74\x85\xba\x6e\x6b\x1c\x40\xa3\x28\x52\x32\x19\xf5\x2a\x38\xef\x3b\x04\x9e\x93\xf7\x40\xa3\xd8\xc4\x68\x73\xd1\xd7\x44\xc5\x88\x21\xe7\x4a\xa3\x44\xb9\xba\xd1\xa1\x1d\xd3\x4f\x7e\xaa\x2a\xd6\x53\x60\xfd\xcf\xf4\x47\x48\x24\x89\x8b\x5d\x4f\x55\xdd\x4e\x62\x7d\x1a\x11\xa9\xc1\x29\x09\x3e\xc1\xf3\x58\xbd\x6a\x81\x21\x84\x46\xc4\x32\x2c\x6b\x38\x42\x3c\xd0\x05\x3a\x91\xdd\x5e\x7f\x93\x97\x79\x00\xea\xd3\x28\x4d\x2d\xc6\x99\x28\xe2\x6c\xf2\xb7\x7e\x76\x52\xea\x28\xb2\x64\xd3\x78\x66\x23\xd7\xbf\x6f\x2e\xb6\x90\xe9\x0f\xa7\x8a\x51\x9f\xf4\xda\x3c\x3f\x37\xbb\xbc\xd4\xd8\xf5\xf0\x7d\xac\x98\x36\x3f\xc7\xa6\x98\xdb\xbf\xf9\xb1\xff\xf1\xb4\x39\x5c\x77\x66\xa0\x5b\x14\x9b\xb1\xd4\x37\x8d\xb2\x04\x2c\x9d\xe4\x22\x77\x55\xf1\x36\xb3\x6f\x34\xca\x14\xc1\x4d\xe3\x34\xc8\x62\xcf\x46\x50\x2a\xd1\x50\x57\x63\xc1\xd7\x29\x6b\xd0\x68\x3b\xa6\x11\x95\xb1\x97\xda\xc5\xf7\xe2\xff\xca\x22\x86\xf0\xc8\x4b\x8a\x2a\x1a\x31\x12\xa1\xa5\xd7\x55\xf9\x5c\xcb\xd6\xc7\xb5\x37\x75\x75\xbc\xaf\x82\xea\x27\x8d\x38\xd5\x2c\x1a\xd8\x28\x7f\x42\xdd\xcc\xbb\x24\x69\x24\x22\xc2\xf4\x88\x3b\xa8\x56\xf9\xbc\x19\x6a\xba\x50\x44\xac\x91\xdc\xdd\x19\xeb\xab\x8f\xce\x03\x28\x3f\x81\xec\xd1\x48\x10\x85\x0b\xbb\x91\x16\x90\x9c\xfa\xb8\xd0\x94\x1b\xc6\xa6\x1a\x09\x0c\x50\x6d\xb9\xa9\x0a\x1f\x8e\x2c\x30\x29\xd1\x48\x64\x5c\x66\x53\x84\xfa\x6c\x41\x0b\x8f\x29\x0f\x86\x6d\x97\x5f\x68\x08\xd3\x48\x66\x49\xe2\xf3\xff\x01\x0c\x1b\xe4\xfd\xc0\xcc\x9b\xa4\xce\x23\x86\xae\x0b\x59\xee\xfe\x82\xce\x27\xee\x16\xd1\xea\x93\xf5\x28\x79\x8c\xb9\xa1\x73\xd9\xeb\x7a\xe1\x45\x78\x38\xae\x2c\x3e\xdb\xc6\xab\x92\x5c\x90\xb9\xd2\x48\x45\x8e\x4b\xf0\x24\x3f\xf6\xd5\x03\xb2\x56\x7f\x32\xa9\x8a\x5b\x44\xde\x7d\x83\x76\xf3\x26\x8b\xf3\xdc\x67\x0a\x3f\xaa\x2c\xcf\x06\xac\xac\x73\x83\xf7\xd5\x5e\xbe\xc2\xaa\x79\x9a\x67\x7e\x68\xa4\x93\x24\x4e\x03\x2d\x4e\x91\x9b\x4b\x3c\x1e\x8d\x34\x91\x48\x34\xb1\xd5\xf2\x34\x7f\x49\x5f\x22\x8c\x69\x64\x08\xc7\xf2\xa1\x0a\xfc\x51\x3f\x1a\xe4\x21\xbc\x60\xeb\xf7\xe3\x81\x72\x6c\xf4\xbb\x92\xff\xad\x51\x5a\x76\x94\xce\xa1\x11\x08\x9a\x46\x7e\xab\xff\xd4\x74\x4e\x6f\x00\x24\x45\x94\xcc\xb1\xef\xf6\x9e\x44\xcf\x34\x02\x23\x9d\x3a\xc1\xb9\x3e\x15\x5e\x73\xbe\xb7\x6e\x96\x13\xd7\xc5\x5f\xb6\x50\x3b\x7a\x90\xc3\x33\x38\x75\xea\x35\xfe\xcf\x51\xa6\x93\xc6\x91\x70\xc9\x0e\x97\xce\x86\x5f\xe1\xef\x71\x2c\x55\x12\xda\x9c\x76\xf0\xc9\x77\x13\xc7\x24\x45\x5a\x26\x97\xa6\x5d\x9d\x4e\x45\xd0\xf7\x98\x4c\x52\x1c\x0b\x19\x0d\xba\x3a\x37\x00\xdd\x8e\x38\xbd\x54\x12\x5b\x24\x65\xb2\xe1\x16\x48\x4a\x48\x7a\x09\xef\x9d\x7e\x6b\x31\x51\x12\x25\x58\x42\x21\x31\xb4\xcf\x2f\xae\xff\x38\x8d\x45\xe6\x25\x50\xee\xe5\x71\x90\x5e\xa3\x71\x6a\x52\xd7\xbb\x75\x82\xd2\xac\x6b\x30\xf9\x25\xb1\x74\x18\x6a\x9d\x94\xb0\x23\xf7\x7d\xb0\x2e\x49\xfe\x58\x83\xcd\xdf\x17\xb3\xd0\x34\xa6\x31\x45\x7b\x68\xaa\xf2\x15\x3e\x9e\x64\xf9\x7a\xb1\x11\xc7\x34\x8b\x90\xd8\xd4\x80\x95\xe7\xa2\x1d\xd8\x21\x68\x4c\xa9\xc0\xb0\xbb\xf3\xa5\xa0\x19\x2f\xb0\x98\x72\x08\x2c\xd6\x7b\x84\xaa\x56\x65\x3e\x6b\x5e\xa4\x31\x63\x19\xde\xf1\x55\x51\xbd\x7e\xab\xcf\xa7\x70\x32\xb3\x3a\x26\xa1\x10\xa4\x65\x6d\x26\x6b\x83\x47\x09\x6e\x5e\x25\xfc\x5a\x07\xb8\xf2\x6f\x97\x61\x3e\x8d\x39\x13\xe0\x05\xcd\x7f\xcf\xdb\x76\xb9\x21\x32\xc9\xe8\xbf\xb2\x7f\x87\x33\x78\x8a\x05\x24\xc7\x94\xea\x53\x40\x9f\x4c\x37\x97\x19\x52\x3a\x5f\x6f\x7e\x6e\x6e\x1f\x1e\xef\x36\xf7\xfb\xc3\x7e\xb3\xba\x3b\xac\x57\x8f\xe1\x56\x45\x26\xd0\xbf\x2b\xcf\xc7\x55\x39\xe2\x99\xa7\xb1\x50\x92\x59\x87\x49\x1a\xbd\x6d\x49\x12\xc7\x09\x8e\x65\xcd\x71\x6e\x98\xc6\x52\xc6\x48\xa8\x2f\x8d\x23\xb2\xf5\x90\xd3\x49\x9b\x01\x8d\xa5\x4e\x98\xf7\x70\x57\xa7\xfc\xea\x63\x6b\xbc\x92\xe6\xf5\x47\x29\x8f\x23\xbd\x2d\x3f\x5e\x25\x1a\xd1\xf4\x0d\x0a\xe1\x60\x82\x7f\xda\x18\x44\x63\x95\x26\x88\x5d\x84\xff\x9c\x65\x81\xa5\x8d\x7d\x85\xff\xfc\x36\x97\xc7\xa1\xb1\x32\x4e\x1e\xe7\xea\xc7\x3f\x0f\x57\xab\xf5\xef\x4e\x17\x32\x5c\x49\x47\x3c\x1b\x33\x75\x0d\xaf\x6f\xd1\xe6\xc5\x3a\x4d\x8c\xe9\xa3\xb2\xc0\x06\xd8\xa7\xee\xfd\x0d\x24\x51\x18\xae\x22\xd4\x3c\x51\xe7\xba\x7c\x44\x45\xc4\xc1\x91\xa5\xb1\x01\x86\x21\x36\xe6\x66\x08\x99\xcd\x03\x08\x8a\xf8\x02\xdf\xab\xdc\xa4\xf3\xe3\xd2\x89\xba\x22\xdf\x81\x8b\x0a\xe6\xfe\xe0\x65\x62\x72\x41\x22\xf8\xe2\xff\x4e\x05\x0a\x68\x0c\x26\xc6\x90\xc1\xca\x3a\x48\x8c\x4e\xee\x24\x89\x22\x0a\xfe\x0d\xbb\x7e\x67\x9f\x59\xde\x9a\x2b\x68\x7f\x01\x20\xa4\xa4\xc1\x2d\xa8\x73\x7f\x96\x2d\x64\x12\x45\x2c\x54\x25\xaf\x5c\x0c\x1f\x0e\x30\x65\x1c\xa8\xc3\xa0\x46\xe8\x28\x72\xa7\x49\xc4\x33\x11\xbb\x4d\xb6\xa7\x27\x1d\x26\x22\x0c\xb2\x34\x76\xba\x5d\x55\x0d\x4e\x91\xef\x3c\x41\x94\xcf\x6f\xc5\xba\x04\x5f\x67\xfc\xe0\x1d\xa5\x37\x2e\xae\x68\x52\x19\x34\x2d\xb6\xeb\x87\xbf\xb7\x63\x25\xb1\x70\x3c\x72\xce\xba\xa3\x79\x1a\xd1\x48\xd2\x24\x56\xd4\xb1\x60\xe5\x25\x12\x43\x3d\x7b\x87\x3d\x1c\x27\x89\xc0\x02\xe8\x7f\xdb\xe1\x2f\x12\x61\x2c\x27\x6f\xd5\x87\x4f\x37\x21\x96\x72\x16\xb0\x7f\x6f\x50\xce\x72\x83\x34\x49\x33\xc1\x74\x1f\x0a\xef\x03\xd2\xc4\x71\xb2\x7c\xd6\xb3\x38\xb6\x00\x49\xaa\x12\x04\x57\x39\xee\xce\xc3\xf5\xc3\xdd\x6a\x7b\x7f\xd8\x6d\x1e\x57\x4f\xab\xfd\xc3\xd3\x61\xb7\xfe\xbe\xb9\x5b\x1d\xbe\xaf\x76\xdf\xc3\x5d\xa5\xda\x49\xe0\x23\x84\x0c\x8e\x55\xb9\x29\xa1\x7e\xfe\x98\xcd\x6f\x06\x8e\xca\xf2\x54\x5d\xca\xb1\x4f\x77\x8c\x84\x71\xcb\xa9\xf7\xd4\x7a\x09\xb1\x70\x4c\x08\x4c\x21\x3f\xca\xff\x9c\x65\x9d\x7b\x1e\x9f\xce\xfc\x27\x7f\x59\x8a\xa4\x09\x27\xa9\x09\x54\x73\x0f\x48\x49\x36\xc3\xc4\xd1\x84\xf3\x88\xb8\x6a\x25\x96\xe3\x9f\x36\xc1\xd0\x26\x82\x38\x96\xec\xda\x0b\x35\x76\x2b\xff\x8f\xdd\x32\xb6\xb8\x7f\x16\x91\xa9\x6c\xa0\xb5\xfd\x26\x0b\xe9\x25\x61\xf9\x74\x7b\x4e\xa4\x14\x48\xe5\x7e\xfd\xf0\x6d\x82\xc9\x0a\x87\x2d\x41\xa5\x4e\xf7\xd3\x30\xa9\x93\xe3\xd1\x60\xc4\xd6\x85\x6c\x9a\x9f\x39\xfc\xba\xcc\x1d\xd3\x44\x09\x8b\x79\x50\x8b\xe1\x22\x52\x61\xac\xc2\x35\x94\x76\x5d\xfe\xc7\xbc\x6c\xaf\xaa\x6a\x22\x7c\x3b\x32\x22\x0b\x76\x25\xf1\x9b\x61\xa2\x23\xc5\x92\xb1\x2c\xa1\x43\x48\x8d\x35\xf5\x68\xa2\x09\xc5\xea\xb3\xaf\xc5\x07\xb3\xec\x33\xf8\x9f\x78\xf8\x89\x91\x14\xd9\x00\xf6\xf3\xa4\x95\x7b\x8d\x79\x55\x2e\x2e\x72\x7f\xb6\xf5\xb4\x18\xdf\xbf\xed\x1e\xd6\xdb\xd5\xed\x17\x50\xde\x6e\xb0\xe3\xa5\xec\xfc\xbf\xfc\x08\x63\xe6\xe8\xf9\x65\x21\x4b\x43\x6b\xf8\xfa\x05\xf4\xeb\x4e\xbe\x81\xde\xb4\x2f\x53\xaf\x95\x44\x09\x8b\x7d\x51\xb6\xbb\x9a\x9c\x45\x38\x83\xf3\x4e\x22\x1d\x27\x36\x14\x50\x7c\x84\x11\x0e\x19\xc1\xfc\x45\x56\x6d\x75\xbc\x85\xb7\x29\x6c\x2f\x0c\x03\x10\x2e\x4b\xfe\x06\xb2\x18\xe7\xa2\xe7\x0b\xf5\x93\x66\x97\x65\x43\x47\x22\xb0\x81\x19\xf2\xfe\x7c\x7c\xb0\xb8\x43\xee\x5a\xf0\x0e\x57\xf8\xf9\x98\xa6\x21\xfb\xb5\x93\x85\xf4\x12\x65\x0e\xe8\x3f\x22\x2d\xe8\x06\x42\xc6\x03\x2d\xf4\xb3\x7b\x85\x6e\xd7\x9b\x7e\x90\x24\x49\xc1\x7a\x40\xbc\x39\xeb\x8b\x20\x84\x24\x99\x53\x56\x43\x35\xbe\xcd\x1b\xd4\x1f\x55\xd9\x4f\x5a\x22\x12\x6c\xf3\x28\xc0\xb6\x24\x9a\x7e\x0d\x24\x51\x16\x49\xc9\xce\x25\xd6\x74\xee\x86\xb3\xac\xc6\x5e\xc3\xbb\x5c\xbf\xe4\xcf\xb2\x7c\x6b\x6e\xab\x8f\xaa\x90\xe1\x78\x9a\x09\xec\x70\x2c\xaa\x67\xc7\xd6\xd8\x78\xba\x46\x83\xdd\x5e\x66\x18\x67\xb0\xda\xfc\x13\x30\xfb\x74\x27\xf5\x4b\x3e\xdc\x5b\xca\x49\xe2\xa8\x25\x65\xed\x90\x3d\xba\x0d\x54\x71\x7e\x48\xc6\x22\x1d\x05\x40\x57\x55\xcb\xe7\x45\xea\x58\x4a\x32\x9b\x9a\xb1\xd3\x73\x9b\xab\x5a\x86\x1e\xbd\x8b\xb1\x19\x2e\x10\x0c\x8b\xac\x9c\xd4\xe0\x29\xa1\xc4\xe5\xdf\xe1\x5c\x57\xd8\x4f\x9f\xfc\x82\x7c\x36\x6f\x4c\xa9\xc4\x09\xa0\x84\xaf\x71\xa2\x74\xbd\xd0\x00\x40\x09\x8f\x15\x3a\x78\x5a\x96\x9e\x3a\x69\x12\xbb\x75\x81\x27\xb2\x2c\xdc\x54\x75\x7b\x1e\xe6\x88\xab\x24\xd3\xbe\x49\xcd\x4b\x81\x86\x43\x92\x1a\xe6\x3b\x2a\xda\x3c\x94\x28\xa6\x94\x54\x4b\x79\x1f\xa2\xa8\xc0\x8d\xfe\x6e\x7b\x87\x4d\xd1\x93\x6c\xa5\xeb\x90\x3e\x74\xfb\xbf\x1f\xae\x23\x07\x07\x3a\x34\xd0\xde\xca\x67\xdf\xf5\x35\xda\x62\xe2\xe9\xf7\xa7\x53\x81\xca\x84\x0e\x5c\x78\xf0\x95\xa1\xe6\xb7\xd1\x47\xae\x29\x68\xc7\x50\x6b\xf6\xd5\x8c\xb1\x61\x72\x29\xa0\x32\xb0\x16\xb8\x9a\xd1\x63\x17\x9c\x5d\xb2\x6e\x51\x62\x52\xce\xf8\x58\x02\x65\xe4\x63\x10\x93\x49\xcc\xe5\xbf\x75\xb1\xd5\x40\x9f\xd6\x1f\xb6\xae\x1a\x7e\xa8\x5d\x6f\xea\x4f\x24\x00\xb8\x54\xbf\x1c\x73\xbb\x50\x02\xc4\x64\x48\xdb\x02\xf5\x11\x3b\x49\x17\x49\x06\x28\x01\x6a\xb0\xb7\x7e\x7b\x7f\xfd\xd0\xb3\x4c\x51\x02\x2c\x85\xd0\x10\x72\x6e\xc1\xc9\xef\x4c\x7f\x80\x39\xe6\x55\x69\x7c\x4c\xba\xd3\x55\x3d\xef\x42\x08\x63\x55\x86\x3d\x88\xb2\x69\xa0\x6e\x37\xff\xf1\x84\xb3\x7e\x33\x09\xf3\x09\xd6\x89\x9f\x94\x00\xe6\x09\x6c\xb7\xfb\x8d\xc0\x14\x33\x7b\x67\xa9\x4c\x13\xcf\xc6\x74\x03\xd0\xdc\x9f\x8f\xde\x5f\x08\x03\x64\x8c\x35\xcc\x3f\xff\xf9\xbf\x93\x2f\xc8\x2a\xd3\x17\x6d\xfc\x94\x38\x12\x49\x5c\xbd\x5d\xb4\x34\x0d\xe3\x89\x55\x80\x35\x5b\x07\x00\xd0\x6d\xf4\x7e\x0f\xed\xaf\xaa\x7e\xfd\xbc\xed\x93\x12\x6b\xb9\x72\x22\x6b\xb9\xcf\xd8\x5d\x0a\x39\x4d\x9f\x28\x8d\x18\xb8\x1e\x9c\x40\x7b\x84\x45\xe9\x66\x5b\xee\x5f\x60\xe6\x4e\xce\xcf\x14\x11\xee\x73\x57\xd7\xab\x81\x77\x84\xa6\x91\x4a\x31\xf2\xdc\xf9\x86\xe7\xd9\x49\xd6\x75\x26\x06\x56\x12\xa4\x92\x7a\x38\xb7\xa7\x73\x7b\x09\xc8\xa7\x69\x4c\x18\x75\x0c\xa8\x9d\x95\x77\xc5\xe9\xe6\x5b\x55\x79\x80\xc6\x67\x34\x51\x34\x8d\x8d\x83\xf8\x61\x89\xda\x15\xf8\x5c\x5d\xa0\x2a\xc2\x17\x90\x26\x24\xc1\xd6\xb0\xb7\x1c\x7e\xad\xfb\x2a\xee\xaa\x34\xa1\x2e\x30\x7c\x9d\x69\x92\x51\x07\x49\xac\xf2\xf2\xa2\x22\x4e\xd3\x84\x27\x36\xf1\xe4\x34\x5f\x68\xb1\x76\x03\x53\x84\x1f\x1f\x3c\x51\x47\x39\xcb\xfd\xa7\xc4\x67\x20\x9a\x13\xd4\xc7\xa2\xaa\xcd\x13\xfc\x27\xdc\x70\x6a\x85\xf5\x58\x70\x87\x5f\xf5\xd0\xdc\xe9\x4f\x64\x49\x84\x6f\x74\x8b\xe0\xf8\x73\xd9\x5e\x12\x32\x85\x91\x24\x75\xe9\xe3\xbb\x8b\x5e\xfb\xf1\x87\x94\x66\x5c\xb9\xca\x41\x17\xf5\x79\xe2\xb0\xa1\x7d\x80\xa6\x94\x65\xae\x6d\x12\x7c\xb5\x6c\xd5\x1f\x51\xae\x4a\x84\xbe\x5f\xee\x60\x48\x63\x1a\xdc\xd9\x0d\x51\xe5\x0a\x1f\xb7\xd5\xf3\x1f\x43\x26\x9b\xf7\x47\x5d\xa3\xdd\x49\x4e\x1f\x28\x4e\xf8\x34\x66\xf0\xe3\x59\x24\x83\x12\x0c\x5a\x12\x47\x31\x35\x9b\x2d\x46\x13\xc7\xb1\x8f\x90\xba\xe9\x5b\xe5\x44\x39\x12\x2a\x54\xe1\x39\x17\x6d\xbe\xc8\x57\x41\x53\x9e\x3a\x08\x36\x76\x3b\x93\x3f\x47\x7d\xbe\x34\xe5\x2c\xa1\xe3\x1e\xc7\xcd\x3b\xe8\x01\xce\x43\x53\xce\x33\x2c\x66\x2a\x59\xce\xb4\x0d\x26\xef\x80\x4b\x86\x5e\x83\xe7\x19\x34\x00\xc7\x95\xd6\x70\x6a\x3f\x4b\x13\x75\x3b\x0e\xf5\x12\x1b\x01\x91\x84\x04\x03\x0b\x1e\x66\x2a\xa8\x76\x24\x40\x79\x01\x4d\x5b\x95\x70\xd8\xea\xca\xb3\x49\xda\xf3\x04\x12\x49\x53\xa1\x15\xf6\x15\x9c\xee\x3d\x0b\xef\x40\x14\x32\x2b\x56\xd3\x54\x18\xea\xda\x2f\xba\xd9\xbb\xcb\x3f\xf3\xc5\x53\x49\xc0\xf8\xde\x9c\xc7\xaa\x28\x96\xd9\x14\x68\x2a\xa9\x89\xfd\xe6\x77\x28\xe1\xbd\x3d\x60\xcd\xea\x60\x7c\x26\xe2\x60\xeb\xea\xd8\xff\xaf\xe5\xd4\x63\x2a\x41\x60\xcf\x43\x00\x2c\xad\x5d\x5f\xfd\x27\x37\xa6\x12\xc5\xa1\x47\xa2\xce\x64\x7e\xfc\x18\x9d\x24\xca\xe7\x11\x02\x66\xe5\x1b\x94\x73\x5b\xa6\x13\x6d\xf4\xa8\xcf\xcd\x81\x79\x3c\xf8\x60\xa1\x0c\x90\x6a\x0e\x98\xc9\xfd\xf5\x22\xdb\x3f\x64\xb3\x7f\x81\x9f\x01\x06\x48\x53\x2d\x2d\x26\xfd\xa5\x31\x3f\x11\x18\xf3\xb7\xd8\x87\x68\x6a\x12\x8a\x11\xf7\x76\xfd\x70\x58\xaf\x1e\xe3\x70\x3d\xc3\x98\xe8\x13\x90\xcd\x55\x75\x7e\x7e\x99\xd5\x79\x52\x23\x9d\xbe\x3c\x94\xe6\xaa\xaa\xeb\xea\xd7\xea\xb9\x06\x57\x44\xfa\x42\xa9\x8e\xa6\x40\xa2\x98\x87\xa5\x8b\xc0\xa3\xef\xb2\x34\x73\xfe\x03\x9a\xda\x84\xdb\xb1\xbe\xca\x84\xf8\x95\xa6\x36\xf3\xca\x1a\x55\x69\xe4\x2e\x2f\x7a\xcf\x3b\xb5\x5d\x1c\x84\x50\x47\x07\x3a\xec\x69\x38\x97\x5f\xa9\x95\xa0\x78\x48\x98\xa0\xa3\x8e\x66\x72\xc6\xa8\x48\xb3\x28\xd2\x08\x8b\xf2\xfd\x33\x35\x6a\xd6\x87\x63\x09\xd7\x1e\x49\xe2\xd4\xa8\xb6\x65\x7f\x48\xa6\x4c\x4f\x01\x71\x9f\x95\xe4\xb2\x44\x70\xb4\xd5\xab\xeb\x9f\xdb\xdd\xe6\xe9\xb0\xdb\xaf\x7e\xdf\x84\x0b\x25\x2a\xc5\xda\xd3\x8f\xeb\x55\xff\x27\x1d\x21\xed\xec\x8b\x6c\x02\x36\x7f\xd5\x7a\x80\xa0\x0b\xed\x17\x1f\x39\x4b\x34\xc3\xc6\x55\x8f\x1e\xaf\x25\xd2\x2d\x4c\xbe\x8b\x8c\x24\x06\x77\x97\xe6\xac\x10\x56\xb1\x7c\xc7\x44\xaa\xd8\x87\x72\xc3\xae\xe1\x8f\xa5\x40\x13\x3f\x61\xe7\x23\x84\x6e\x49\x7f\x30\xe3\x91\xed\x35\xe0\x11\x45\xfe\xd1\x99\xc2\xed\xf5\xec\x36\x32\x63\xb0\x32\x82\x49\xbc\xed\xd7\x7d\x93\x34\xa3\x44\xa5\x93\x2e\x79\x4f\x8f\x11\x7e\x95\xa6\x99\x13\x6a\x2a\x64\x7e\xdc\xb4\x2f\x37\xf3\xd4\x4e\x46\x15\x63\xa6\xd7\x48\x71\x4a\x1c\xe3\x64\x7e\xc6\x62\x82\xdd\x00\xef\x27\xb9\x79\x77\x19\xbd\x70\x75\x11\x3b\xb5\x9f\xab\x87\xfb\xd0\x8f\x43\x33\x61\x38\x78\xbb\x1b\xc6\xdf\x54\xf5\xf1\x5c\xcc\x9c\x86\x4c\x12\x69\xc7\xd2\x36\x57\xdd\xae\x31\x9d\x0c\xc9\x5d\x87\xf4\xe1\x98\x97\xed\x4d\xde\xbc\xfc\x55\xf2\xc5\x3b\xb7\xc1\x5f\xce\xa4\xa5\x98\x54\xed\xb5\xdb\xcf\xa5\x69\x56\xa5\x79\x94\x1f\x4f\xd5\x87\x2c\x2e\xd3\xbc\x99\x22\x8e\xf6\xbb\xf7\x08\xb7\x4d\x73\x86\x6f\x55\x61\x02\xb5\xf2\x04\xe5\xd0\x6f\x22\x99\xca\x8c\x20\x81\x23\xf1\xbd\xdb\x14\xbe\xe0\xdd\xa3\x99\x16\x49\x34\x96\x12\xf5\x41\xd4\x5f\x64\x58\xff\xea\xdf\x70\x71\x63\xf0\xa5\x5d\x8d\x60\xdc\x4b\x40\x8c\x4c\x5b\x57\x14\xdf\x1c\xf3\x51\x32\x3a\x33\x22\xc2\x55\xf8\xab\x05\xfd\xd2\xff\x51\xbb\xa4\xc2\xae\x95\xa5\x09\x3d\x4c\x7f\xd4\xf2\x74\x9a\xdb\xb2\xcc\x46\x04\xe7\x22\x08\xf9\xfd\xb5\x1c\xca\xfc\xdf\xd9\xf5\x2c\x60\xaa\x1a\xda\x97\xbb\xde\xd7\xa6\x51\x92\x62\x15\xed\x45\x36\x2f\x2e\x37\x1b\xb0\xb5\x93\x65\x44\x23\x12\x53\x97\x3d\xfe\xa8\xef\xe5\x11\x9a\xc3\x22\xe4\x95\xd2\x28\x63\x98\xab\xab\xa1\x94\x47\xd8\x9f\x8b\xfc\xf4\xd9\x48\x95\x51\xbf\x61\x77\xfe\xf0\x21\x99\xf8\x08\x34\x66\x3a\xe1\x3e\x40\x76\x15\x91\x91\x37\x4d\x93\x0c\x52\x9f\xed\x3b\xca\xb6\x57\x42\x9e\xbc\x19\x9a\x30\x83\xcd\xae\xed\x4b\x5e\x9b\x43\xff\x81\xa3\x97\xde\xab\x4b\x51\x4a\x68\x1c\xd8\x2c\x6e\xab\xb6\xad\x7a\xaa\x6c\x1e\x06\x30\xa7\x6c\x70\x70\x3d\x4d\x2e\x88\x58\x5e\x93\x94\x70\xe9\x78\xc1\x4e\x79\xf9\xdb\xf4\x88\x4c\x21\xc8\x82\xec\xab\xdb\xea\x57\xa8\x9f\xc7\x7e\x40\x96\x1a\x34\xb1\x35\x46\xd9\x8f\x97\x88\x94\xbf\xb7\x72\x69\xc6\x38\xc6\xe5\x87\xbc\xe9\xe2\xa7\x95\x6e\xcf\xf3\xf2\x25\xcd\x98\xeb\xc2\xfe\x52\xf2\xd1\x8f\xa5\x24\x89\xc6\xf8\xec\x9b\xba\x3a\x6e\x1a\x5d\x57\xbf\x96\x41\x25\x94\xc5\x11\x72\x43\xb8\x06\xb4\x1f\x63\xc8\x54\x73\xa8\xca\xe2\xe3\x70\x0d\x6f\xbf\xf5\x83\x29\x16\x52\xbf\xed\x77\xe3\x78\x97\x32\xcf\x8f\x79\x38\x9c\x26\x5d\xd4\x23\xff\x9c\x72\x96\x62\x12\x45\x62\xd8\x75\x46\xde\x83\x06\x33\xa6\x33\xe5\x91\xf1\x04\x06\xb3\x4c\x45\x42\x51\xc5\xfe\xe6\xc7\x97\xc1\x0b\x15\x9c\xa1\x39\x3e\x25\x27\xf4\x53\x67\x5f\x2a\x15\x22\xc3\x10\xe5\x54\xc8\x8f\xdd\x47\xd3\xc2\x71\x91\xad\x82\x52\x15\x65\xc2\x33\x79\xed\xa0\x34\x0b\xbd\x8b\x94\xaa\x04\x30\x3d\xb1\xae\x4a\x2c\xe1\x86\xe9\x50\x86\xa0\x3a\xcb\xdd\xc7\x63\xfe\xdf\xff\xca\xc7\x7c\x92\x5f\xa3\x3a\x89\x91\xb5\xf4\x70\x42\xcd\x98\xf0\x57\x1d\xe3\xd7\xfd\xcf\xe4\x1f\xfd\x9f\x20\x49\xf9\xd0\xa0\x3e\x2c\xe5\x60\xf0\xa9\xb6\x71\x24\x3c\x1e\xba\xee\x2f\x65\x98\x32\xd2\xa3\x2e\xce\xa7\x69\xce\x8c\x1a\x9e\x20\xe4\xe1\xba\xce\xdf\xe0\xa5\x2a\x72\x3d\xb9\x39\xab\x53\xdc\x83\x7c\xaa\xd5\xec\xf2\xce\x19\x5a\xcb\x53\x33\x8c\x70\x02\x2d\xad\xcb\xe7\xf6\x74\xec\x8d\xd3\xab\xf7\xc3\x58\xa4\x8c\xf5\x98\xa2\xcd\xd3\x9a\x31\x36\x7d\x13\x2c\xd2\x1a\x5d\x5a\x8f\xac\x7b\x55\x55\xf1\x58\x9c\xdb\x4a\xd7\x72\xe6\x8a\xb2\x38\x61\x30\x4e\x23\x84\xbe\x94\xf0\x53\x31\x63\xa0\x3c\x77\x91\xe7\x50\x5c\x2c\xf4\xb2\x58\x51\x4c\xc2\x23\x91\xc1\x53\x75\x6e\x47\x62\x3f\x73\x3c\xcc\x78\xf1\xb2\x18\x92\xac\x47\x0a\xec\xeb\x6e\x36\xa6\x57\x4e\xb8\x8a\xd3\xbe\xdd\xf5\xf1\xcf\xdb\x65\xd7\x8c\x25\x8a\x80\xeb\x7c\x2a\x70\x07\xda\xb4\x1a\x93\x22\xe1\x51\x12\x2d\xb2\x5e\x5c\x4f\x57\x79\x9f\x1d\x65\xc4\xf3\x9e\xed\x1f\xf6\xab\xdb\xc3\xe3\xc3\xc3\xed\x61\xfd\x70\x77\xb7\xdd\xed\xb6\x0f\xf7\xfd\x20\x4a\x10\x12\xbd\x7a\x7c\xda\x96\xd6\x81\xd3\x16\x4a\x49\x2c\x8d\x1d\x01\xc5\x56\x57\x93\xfe\x0c\xca\xd2\x34\x42\xb8\xc1\x1f\xb7\xa3\x34\x0f\x4b\x33\x81\xeb\xec\xf1\xe9\xfe\xdb\x61\x28\xa7\x87\xa3\xd4\xa2\xdb\xd5\xd3\x39\xf9\x72\xcc\x84\x32\x7c\xfa\x7d\xb1\x94\x73\x8c\xc4\xb1\xb7\xe8\x71\xd4\xbf\xd6\x1d\x12\x42\x0d\x4d\xf0\xdf\xab\x73\x3d\xbf\x7d\x11\x21\x04\xa8\x0b\xd2\x1e\xca\x47\x27\x67\xdd\x9f\x2e\xa4\xeb\x80\xf6\x04\x7a\x17\x9c\x7d\x7e\x5c\x16\x25\xda\x0b\x15\xae\x7c\x21\x71\x3e\x42\xc7\x88\x65\x47\x92\x80\x3e\xb7\xe9\x0f\xd2\xc8\x84\x82\xce\x9d\x7c\xdf\x1f\xe7\x2b\x82\x32\x27\x2d\xfb\x94\x1f\xcf\xd5\x5b\x8e\x9c\x23\xb3\xeb\x53\xa6\x9d\xc8\xed\x8b\xac\xc1\x7d\x3d\xfd\x24\x50\xae\xb0\x99\xe1\x00\xc7\xbc\xbd\x06\x47\xb8\x30\xa0\x25\x18\x03\x8b\xd0\xa3\x43\x03\xb2\xf8\xda\x6d\x66\x3c\x71\xbd\xf6\x27\x57\x83\x70\x9a\x77\xc3\x31\xa4\x54\xea\xe9\xf4\xd0\x85\xbd\xea\xa2\xdf\x0a\xa5\x32\xc3\x38\xe2\xd8\x20\xfd\xbe\xda\x0d\xb8\x78\x1e\xc1\x53\x14\xfc\xd9\x9c\x1b\xf3\x19\x51\xc3\x67\x25\xa6\xd9\x2d\x0b\x4e\x9d\x3b\x50\x3d\x75\xcf\xd7\x1d\x0b\x46\x8f\x49\x4f\x69\xfd\xec\x29\x89\x9a\x47\xa8\xb1\x92\xf1\x36\x2d\x44\x31\x45\x05\x92\x90\x42\x67\xa3\x60\x06\x9d\x62\x3a\x75\x09\x23\x0f\x82\x09\x7f\xe5\x19\x6e\x65\x7d\xc7\x63\x08\x31\xa6\x8f\x6a\x93\x08\x31\xc6\x87\x41\x91\xef\x93\x2f\xde\x5a\x86\xf5\x56\xbf\x1c\x9f\x16\xf4\xe4\x29\x8f\x63\x8d\xdf\xd7\xfd\xcf\xab\xb1\x35\xe6\x71\x66\x10\x3a\xe0\xbf\xac\xaa\x98\x40\x94\x38\x66\x09\xbb\xcf\xf2\xc7\xd3\xfa\xfb\x6a\xb7\x59\xbe\x05\x9e\x50\x65\x7d\x9d\x6d\x7b\xec\xfd\xc5\x70\x50\x3a\xf5\x91\xde\x67\xc5\x1b\xd8\xbc\xcf\xfb\xe1\x96\x42\x81\xd9\xef\x90\x54\xa0\x55\x29\xcf\xc8\xc2\xda\x67\xbd\x38\x11\x10\x24\xb9\x7e\xe4\x65\xeb\xdb\xb7\x27\xaf\x83\x13\x61\xe3\x51\x1f\xcd\x24\x8e\xf6\x43\x52\xe2\xb8\xa0\xbd\x7e\x7d\x7c\xc0\x0c\x9c\x19\x72\x93\x3c\xcd\x62\x7c\x2d\x41\xe6\xb3\x73\x48\x0f\x58\x48\x3d\x9c\xcb\xee\x95\xf6\x03\xb9\xe4\x41\xf8\x37\xd7\xed\xb9\x86\x89\x47\xcb\x53\xee\x2a\xe1\x4e\x48\x39\x4c\xcd\xb4\xa6\xcb\x29\x8d\x3d\x6c\x16\x05\xf0\x3c\x2e\xe6\x09\xa4\x19\xed\x4e\x9c\x69\x9a\xf6\x29\x41\x8c\xdd\x71\xb1\x96\xf2\x93\x24\x14\xe7\x71\x16\xf3\x00\x43\x19\x29\xc4\x87\xc3\x69\x86\xc5\xab\x1f\xe1\x07\x78\xe6\x3e\xcd\x47\x59\x37\xa0\x3f\x65\xf6\xf8\x9f\xd9\x65\x98\xa3\x04\xd8\x57\xe7\x7a\x2d\x9b\x97\x49\x98\xf3\xd7\x38\x0a\x2e\x32\x01\x03\x77\xc0\xe7\x3a\x9a\x94\xcb\xd4\x51\x07\xea\xea\x78\x82\x36\x77\xc2\xfa\x23\xc0\x3e\x57\x51\x9a\x89\x90\xa2\xe9\x1c\x99\xc5\xc4\x1b\x57\x19\xc1\xbc\xeb\x63\x21\x4b\x68\x1f\xec\xc3\x85\xe6\x18\xe5\x4a\xa4\x68\x1b\xda\xaa\x5b\x68\x7c\xff\xd2\x79\xbe\xe1\x98\x62\x98\xdc\x3b\x61\xeb\x37\x4c\xbd\xd4\x65\x3b\xc4\x95\xa6\x58\xe2\x72\xca\x7c\xe7\x1a\x09\x3c\x42\xe7\xe1\x54\x64\xe9\x82\x06\x97\x72\x2d\x28\xe6\xf4\xe0\x08\xf5\x33\x94\xfa\xe3\xba\x96\xbf\xf2\xf2\xf9\xa9\x73\x23\xc2\x6d\x69\x95\x59\xd6\xcb\xba\x8c\xa0\x31\xfd\x65\x4c\x16\xe1\x3e\xe1\x9a\x6d\xa0\xfd\x5e\x9d\x1b\xd8\x98\xe7\x59\xce\x91\x1b\x19\x79\xe1\xf1\x9b\x76\x6c\x45\x80\x45\xcc\x79\x6c\x88\xa7\x4b\x26\xdf\x3f\x48\x86\x3e\xfd\x13\xb8\xa6\xbb\xd9\x35\x41\x45\x99\x4f\xe4\x8c\x1b\xfc\x9c\x73\xfe\x3f\x93\x0b\x59\x86\x64\x81\x2f\x55\x11\x00\xdc\x71\x7f\x07\xd6\x31\xeb\xed\x5a\xb3\xed\x4e\xfc\x6d\xe4\xdb\x73\x1b\xc7\xd9\x80\x9f\x72\xfd\x17\x23\x33\xce\x2d\xa4\x89\xd3\x70\xc9\x8b\x8f\xf1\xd4\x89\xc8\x46\xe8\x8a\x62\x1d\x0f\x5d\x8e\xdb\x9e\x29\x81\x8a\xd8\x23\xd8\x8c\xfc\x58\x0f\xdd\xc1\xdd\x9e\xc0\x63\x33\x00\xef\x2f\x76\xbc\xc5\x95\x20\x12\x03\x49\xe2\x9d\xcc\x55\x51\x4c\x74\xa4\xfd\x10\xa2\xe3\xc0\xdb\xe6\x8b\x57\xfb\x5c\xbf\xc2\xdc\xf3\x10\x04\x74\xe0\x81\xd8\xdd\xec\xaf\x11\x0e\x39\x86\x42\x0a\x02\x46\x04\x75\x92\xa1\x90\x35\xbd\x1f\x02\x8e\x1d\x0a\xa5\x53\x1f\xab\x2a\xe4\x8a\x45\x9a\x66\x48\x21\x8f\x3a\x6b\x07\x3a\xe2\x87\xa4\x22\x15\x09\xc2\x1d\x42\x78\xf8\x47\x55\xae\xab\xa6\x0b\x12\xc7\xfc\x77\xcb\xdf\x82\x48\x2d\x55\x8e\xba\xe0\x39\x3e\xd8\x52\xcf\x23\xca\xff\x59\x0c\xcc\xa6\xfe\x74\xfc\xc9\xb5\x69\xac\x70\x97\xc4\xa7\x15\x42\xbf\xc8\xbf\xc1\x2b\x41\x05\xcd\x8c\x74\xa0\xe1\x53\x51\x7d\xec\x5a\x38\xf5\xd2\xa0\x54\x50\x91\xb9\x0c\x73\x5d\x55\xc7\x9f\xbd\x1d\x10\x2c\x4e\x8d\xe3\x5c\x79\xcf\x8f\xe7\xe3\x5e\xd6\xcf\xc3\x92\x62\x89\x63\xaa\x08\x65\x64\xea\x3e\x16\x7f\xfb\xe1\x76\x19\x05\xe2\x3c\x5e\xe4\x43\x37\x53\x2c\x96\xe0\x4c\x39\x19\x5f\xd7\xcd\x32\x62\xcf\xa0\x42\x30\xd7\x55\xd7\x4d\x78\x90\x12\x98\xce\x85\x90\x0c\xbc\xf0\x2d\xba\xf9\x60\xf2\xf6\x40\xe2\xc9\x06\x25\x84\xe6\x91\xef\xe0\x33\xf0\x70\x1a\x17\x47\xff\x45\x06\x4b\x34\xfa\xcf\xe4\xdf\x93\x3d\x7b\x94\xcb\x13\x92\x69\xe2\x35\x9c\x57\xe5\x25\x65\xe6\x74\xf5\x4a\xa9\xb5\x4f\xa8\xf7\x7a\x6c\x2e\xe8\xfa\x7a\xf9\xa8\x88\x21\xe8\xf9\x5a\x56\x6b\xd9\xe4\xe5\x98\xc4\x89\x0a\x9d\x2a\xcc\x43\xbc\xe5\xf0\x2b\xf4\x50\x4e\xe0\x21\x42\x53\x40\x76\xbf\xc2\xd5\x9f\x7e\x55\xdf\x65\xd3\x2b\x2f\x52\xa1\x8d\x94\xe3\x44\xfc\xa4\x4c\xe5\xc7\x18\xc8\xf0\xc3\xdb\x9c\x72\x3d\xcb\xee\x0a\x48\xad\x17\x17\xb0\xe7\xd2\xfc\x11\x74\xd4\xa9\x00\x95\x71\x9f\xfb\xba\x01\x44\xfc\x21\xe9\x4b\x7f\x58\x6b\xec\x38\x50\x52\xbf\x42\xcf\x5e\x33\xcf\xb3\x0a\xd0\x36\xe1\x43\x4e\xde\xeb\xfa\xfc\x91\xb7\x2f\x8f\x9d\xbb\x33\xa6\x8c\x59\x9a\xc6\xce\xd6\x0e\xef\xcb\xa6\x14\xc3\x3c\xef\x53\xde\xe5\x65\xfb\x55\x1d\x5a\x58\xe1\x7a\x2a\xbc\xe3\xb4\xeb\x3b\x7c\xc2\x43\x58\xe0\x09\x78\x83\xd3\x59\x42\xb7\xb3\x75\xcf\x7a\x03\xc1\xd7\x9f\x5c\x52\x46\x82\x08\xdf\x21\xb1\x43\xf7\x47\xd6\x1f\x5f\x69\x1b\x51\x19\x67\x09\x66\x54\xa4\x2f\x9a\x21\xad\x89\xe3\xaf\x04\xf3\x50\xae\x51\x68\xcb\xf3\x84\x4c\x7f\x2b\xe6\x2e\x9f\xd2\xf4\x8a\xae\x79\x91\xb7\x1f\xa3\x1c\xa3\x4c\xe2\xcc\x6f\x71\xaf\x50\x3a\xcd\xab\xdf\xc2\x21\x6a\x31\xa2\xdd\x3f\xc3\x1e\xe4\xd1\xb1\xaf\x8f\x08\x66\x66\x81\x9d\x24\xca\x38\x0e\xf7\xb3\xc2\xbf\xcf\x9c\x91\xe5\x18\x4b\x12\x9b\x66\xc6\x43\x91\xd0\x31\x89\xa7\x46\x5f\xa6\xdc\xc1\x95\xd7\x4f\x0f\x7f\x5c\xdf\xfc\xb8\xbf\xde\xde\x7f\x9b\x90\x00\x53\x99\x0a\xa7\x37\x7f\xba\xc4\x46\xc8\x54\x73\x8c\xe1\x8e\xf2\xfd\xd6\x85\x71\xdb\x16\x8e\xfd\x99\xc0\x4d\x32\xd2\x6c\x5e\x92\x5a\xa5\x32\x4b\x22\xa7\x7e\xfe\x0c\x65\x7b\x27\x5f\xe1\x6f\x29\x2d\xcc\x5e\x23\xcd\x74\x1c\xf5\x49\xa9\xeb\xfc\x39\x6f\x65\xb1\xaa\xdb\x01\xa3\x2c\xa9\xb1\x4e\xa9\xb6\xaa\x9e\x0b\x18\x3a\x87\xfc\x61\x26\x5c\xc3\x93\xab\x1c\xa0\xf8\xa3\x2c\x8a\x6f\xb2\x1f\xc0\x13\xc0\x64\x9f\x3c\xb7\x95\x07\x20\x04\xad\xc3\xe5\xc9\xe7\x26\x46\x5f\xf4\xe0\x09\x3f\x5c\xc8\xb6\x3d\x9e\x8a\xd9\x0c\x08\x92\x5a\x2f\x4b\xf6\x84\x9f\xc2\x05\x14\x4a\x8a\x34\xe2\xba\x2f\x01\x7b\xfc\x74\x5d\x1d\xbf\x57\x85\x99\x50\xd6\xce\x5e\x50\x67\x5c\x48\x60\x06\xcf\x07\xe2\x61\x04\xc7\x7f\xbd\x76\x64\x1c\x21\x1f\x88\x17\x24\x7a\xf2\x15\xa2\x99\x2e\x2d\x95\x92\xe9\xcc\x37\x07\xa0\xaa\xef\x27\xb3\xa1\x08\x73\xd3\x67\xcc\x5d\x55\x4d\xf8\xd4\xa8\x54\x5a\x60\xed\x7f\x7d\xd4\x98\x5d\x99\xfd\x84\xb2\x10\x09\xdf\xdb\xf0\xa3\x34\x73\x3e\x12\x2a\x0d\x71\x22\xb2\x18\x7a\xed\x73\xec\x97\x7d\x06\xd2\x1f\x66\xae\x42\x77\x30\x15\x34\x88\xc4\xc4\x47\xfa\x2e\xdf\xe0\x16\xb3\x91\x13\x20\xb0\x34\xdc\xc4\xbd\xb2\x4c\x13\x42\x03\x77\x61\x47\x9b\x34\x09\x12\x25\x24\xcc\xb8\xd6\xf1\xf2\x08\x47\xf9\x11\xae\x03\x4a\x62\xc3\xc0\x8d\xac\xff\x9b\x0f\x9a\x87\xfd\x51\x2b\x9d\x0c\x47\xf1\x28\x7d\x23\x1a\x0f\x60\x12\x3f\xc6\x82\x40\x77\x0a\xbd\xf0\x09\xea\x56\x25\x84\x63\xab\x84\xa9\x02\x1b\x21\x55\x24\x11\xb8\x63\x9a\x59\xbf\xd5\x62\xf9\x44\x11\xce\xd0\x73\xf2\x09\x18\x67\xf4\x66\x5f\xa7\x22\x92\x62\x94\xbe\x83\xc2\xfe\x0e\x1f\x0b\x69\x3b\x95\xc6\x14\xe1\x42\x5e\xe5\x39\x20\x97\xfe\x16\x7a\x57\xa5\x99\x72\xb9\x62\xe4\xc5\x83\x3a\x0d\xcf\x92\x6a\xc0\x1e\xa1\xfb\xc7\xaf\x52\xeb\x2a\x8b\x75\x00\x8e\xcb\x62\x44\x49\x46\x55\x96\x58\xf4\xee\x11\x31\x14\x98\xe1\xc6\x6c\x1f\x54\x51\xaa\x51\x52\x5a\x1e\x51\x6c\x6c\x33\xe6\xe0\x6c\xfa\x41\x3a\xf2\x72\x04\x2e\xbf\xbb\xfb\x95\x8f\x48\x62\x56\x23\xb5\x53\xaa\x98\xe1\xd1\x58\x5c\xff\xea\xfc\x31\xc6\x16\x2b\x66\x9d\x92\xde\x37\x99\x97\xbb\xf6\x6c\xed\x52\x2d\x75\x98\x1c\x9e\x01\x02\x25\x8e\x1f\x53\x57\x4e\xf1\xcc\x22\xda\xe0\x98\x97\x79\x89\x32\xb5\xfe\x8b\xe8\x75\x45\xa9\x12\x31\xc5\xfb\xde\x41\x7b\xc0\xd8\x1e\x9a\xf6\x70\x09\x87\x53\x22\x91\x88\x2a\xdf\x55\xc7\x32\x9f\xc8\x0f\x53\x25\x88\x40\xce\xd0\x7f\x54\xaf\x50\xeb\x21\xf5\xaa\x84\x86\xd8\x73\x4b\xf4\x96\xd4\xf5\xa7\x8e\x8b\x6c\x4a\xc6\x3a\xf6\xb4\xd2\x57\xf2\x79\x55\x9a\x6f\xb9\x6d\x57\xae\xcb\x65\x66\xc8\x67\x8f\x2e\x13\x70\xd9\x41\x99\x9b\x39\xb1\x14\x55\x32\x25\xb1\xcf\x92\x5e\xe7\x35\xe8\x8b\x6e\x09\x25\xb5\x8c\xf5\x20\x8b\xd1\x24\xe1\xce\xb5\x8c\x02\x80\xed\x70\xfc\x38\x0c\x9c\x7c\x54\x69\x50\x18\xf1\x1f\xcf\xc5\x88\x28\x7f\x76\x63\x26\x35\x02\x11\x9d\x2e\xe9\xd5\xf3\xfd\x84\xc3\xcc\xc1\x1f\x6f\xab\xe7\xa9\xe0\xf0\x24\x2c\x49\xbf\x0a\xef\x95\x31\x49\x14\x7a\x82\x2a\x87\x61\x35\xc8\x89\x3b\x80\x3c\x95\x31\xdc\xa7\xf6\xb1\xd4\x37\x49\x36\x2b\x1b\x25\xda\x06\x82\xc8\x06\x6e\xe1\x0d\x8a\x1f\xa7\x61\x2f\x54\x36\x89\x30\x67\xf5\x7b\xae\x5f\xd7\xd5\x11\xeb\xce\x28\xdd\x3e\xed\x55\x98\x4e\xa9\xd5\x06\xd5\x00\xbe\xdd\xad\x27\x8b\xc4\x1a\x92\xe9\xbe\xca\xb0\x0a\x0b\x50\x47\x91\x70\x58\x39\xc7\xd3\xbc\xd5\xd5\x08\xf9\xa8\xa3\xce\x68\x07\x74\xbc\x83\x05\x4f\xf1\x8e\x3a\x16\xa0\x1c\x41\xbc\x34\x53\x36\xc1\x51\x1c\xae\x63\x60\x18\xde\x9e\x30\xff\x32\xdb\xff\x74\x12\xb3\xc4\x37\x7e\x4c\xb0\x30\xfb\xca\x7f\x51\x23\x66\x69\xaa\x13\xa5\x3d\xc7\x0b\xe8\x57\xa7\x30\x3b\xab\xfa\x68\x12\x29\xfc\xb9\xab\xed\x7e\xf7\xd7\xa1\xa0\x26\x89\xc5\xad\xdd\xc0\x31\xff\xca\x8e\x69\xc2\x99\xa3\xce\x0b\x39\xc2\x63\x5e\xb6\x87\x5f\xae\x7d\xf1\x20\x8d\x39\xf8\xdc\x6f\xfb\x71\x68\xab\x03\xa6\xed\x2a\x14\x70\x99\x3c\x2f\x31\xb4\x5f\xdd\x7e\x17\x38\xb4\x50\x1f\x97\x37\x65\x9d\x92\x0c\x85\x8c\xb1\x6a\xf6\xa3\xe9\x51\xa7\xfd\x61\xa7\x53\xfd\x52\x99\xa2\x9b\xb3\x59\xab\x84\x4e\x99\x2b\xc0\xec\xfe\x9c\xac\x08\x9d\x2a\x8e\x91\xc0\x9f\xdb\x87\xe9\xdf\xad\x24\xbe\x3a\xf1\x60\x51\xbd\xb7\xe8\x02\xce\x81\x6d\xdd\x8f\xcb\x74\x8c\x24\x6e\x70\x44\x66\xcd\x59\x53\x91\xa6\x86\x50\xb7\xaf\x96\xa3\x72\x90\x66\x60\xb0\xfe\x62\x8b\xfc\x94\x8e\xb3\x49\x9a\xc7\x04\x13\x0c\x85\x6c\x50\x17\xe3\xd7\x88\xb6\x9f\x6a\x41\x08\x17\x23\xb5\x2e\x80\xff\xa2\x58\xf9\x92\xb7\xaa\x05\x17\xc6\xfa\x7c\xd2\x34\xf1\xaa\x85\x70\xfd\x0b\xb7\xd5\xdb\xa4\xb4\xaa\x85\xd2\xe9\xd8\x0f\xde\x96\x0e\x74\xd0\xc5\x14\x9f\x13\xba\x51\x2d\x7c\x17\x8f\x82\xa6\xad\x7e\x5d\x44\x62\xd3\x1b\x53\x49\x82\xb5\xff\xea\x3c\xee\x52\xd6\x8a\x3b\xae\xdc\x90\x29\x73\x52\x2e\xcb\xb2\xaf\xe1\x14\xc5\xad\xe3\x61\x7b\xcb\x5b\xa8\x83\xe3\xd7\x5f\x11\x7a\xe9\x8e\xef\x50\x57\x83\xb8\xfb\x2c\x49\xa7\x75\x92\x20\x4d\xb1\xe7\x25\x43\xe3\x30\xde\x7e\xb5\x36\x0c\xd5\xea\x07\x4a\xc9\xb3\x7e\x75\x29\xf6\xe9\x1d\x01\x31\x18\x21\x6b\x47\x4c\x39\x69\x22\xd0\x00\x44\xb2\x71\x7e\x6b\x6b\x2e\xaa\xa7\xd3\xcb\xd9\xcc\xcd\xc9\xd5\xfe\xb6\x8b\x75\x76\xdb\x55\x28\x55\x6a\x4b\x9d\xe0\x5e\x5b\x9f\x9b\x16\x0c\x86\x22\xaa\xaa\x5e\xfb\xe3\x22\x46\x24\xed\x29\x7f\x87\xe2\xb9\xce\xfb\xbb\xb0\x9a\x51\xd7\x06\x96\x3f\xe6\xe3\x65\x69\x22\xc3\x3c\x1b\x60\x53\x15\x38\xfd\x81\xe5\x73\x66\xac\x4c\x1c\x3b\x18\x49\x59\xf5\xef\xcf\x24\xc2\x49\xb0\x38\x3b\x7f\x95\xcf\x12\x6e\x26\x51\x3c\xf5\x8d\x38\xd7\xd2\x3c\x41\xb1\xd0\xe9\x6f\x12\xad\xe4\x20\xeb\x77\x07\xad\x44\x84\xca\x7c\x96\x16\x6b\xcd\x73\xec\xaa\x49\x40\x21\x93\x5f\xd3\x56\xa7\xc7\xaa\x69\xb7\xba\x5a\x95\xa6\x0b\xc7\xc3\x3d\x93\x38\xb1\xcc\x27\x25\xff\x52\x81\x85\x1a\x42\x92\xcc\xf4\x1c\xc1\x48\x3c\x3a\x53\x39\x08\x03\x95\xc1\x80\x0a\xde\x41\xaf\x7f\xec\x36\x0f\x23\x5a\x37\x6a\x88\xb1\x68\x15\x0c\x80\x69\x66\xb4\x96\xd4\x10\x70\x79\x60\x6c\xca\x69\x65\x31\x66\x87\xea\x8e\x72\x34\x01\xd8\x2f\x87\x21\x24\xe6\x40\x24\x32\xf7\xde\x54\x35\xe4\xcf\x81\x6f\xbc\x1b\x6c\x90\x32\x38\x6f\x76\x27\x28\xdb\xf5\xb9\x69\xab\x23\xd4\xfb\x77\x7f\xd7\x37\x55\x7d\xb7\xfe\x63\x19\xd9\x62\xb2\x34\x56\x51\xcf\x5b\x87\xeb\x75\x6c\x52\x0d\x4d\x2d\x51\x7e\xd3\xdb\x83\x3c\x4e\x43\x0d\x43\x41\x4b\x57\xf2\x6f\xeb\x1c\xde\xc0\x7d\x56\xb3\x79\x62\x8a\xe0\x36\x76\x2e\x67\xdf\xae\xe1\xc4\x20\xec\xb4\x33\x51\xff\xfc\x9b\x35\x15\x23\x39\x60\x0d\x0c\x13\xfd\x0e\x16\xb3\xae\x9a\x76\x5f\x75\x01\xf2\x83\x17\xb3\x9b\xdd\x82\x22\x3a\x92\x21\xf3\x81\xe0\xbd\x4f\x5e\xbe\x62\x14\xd1\x24\xbe\xfc\x61\x02\x2b\x8d\x3f\xac\x95\xb6\x0e\x08\xd8\xfa\xd9\xf5\xe4\xb4\xbd\x27\x64\x4c\x9c\x39\x28\x78\xf7\x49\xa2\xad\x19\x75\x71\xa4\xff\xb3\xf4\x4f\x38\x93\x53\xbc\xc9\x6e\xab\xfd\x51\xe6\xff\x39\x83\xef\x07\xb9\x08\x9c\x26\xf3\x61\x24\xa8\x71\xa5\xb7\x5b\x2a\xae\x4d\xc8\x0f\x00\x9d\x66\x1e\x44\xfc\xa3\x81\xba\xfb\xff\xa5\x9c\xf7\x75\x1b\xb0\x92\x79\x45\x93\x55\xd8\xda\x67\x43\x2c\x8d\xb1\x0a\x72\x82\x1a\x5d\xb4\x01\x35\x30\x59\x33\x56\x39\x4f\x5f\x9a\xb7\x16\xe4\x71\x94\x76\x37\x16\x32\x2c\xd8\x23\x3b\x91\x2c\xae\xf3\xcb\x62\x0a\x44\x71\xa4\x7d\x7f\xad\xe7\xb9\x72\x62\x3c\x13\x63\x0d\x31\x61\xda\x7b\x52\x7d\x83\xde\xf6\x78\x2a\x10\x7c\x2d\x47\xe5\xb3\xa9\xa3\xeb\xcf\x4e\x48\xca\xb3\x00\xea\x43\x79\xde\x06\x15\x71\xd7\x2f\x32\xbc\x48\x20\xc4\xf1\x71\xdc\xc3\xaf\xff\x73\xce\xff\xfb\xdb\x82\x76\x1a\x85\x34\x96\x48\x12\x21\x1d\xdd\xa6\x4f\x18\x5e\xc8\x0a\x4e\x57\x19\xa4\x5e\xfb\x34\xc4\x2a\x3b\x28\x3e\x85\x27\x4c\x5e\x36\x64\x91\x93\x15\xbe\xca\xdb\xaa\x2c\xf2\x12\x90\xc3\x36\xdc\x72\x46\x35\x36\x0f\x76\x71\xfd\x5a\x9e\x9e\x40\xea\x97\x3e\x2b\x01\x99\x54\x84\x0f\x84\xaf\xf2\xbd\x97\xc1\x9b\xde\x5d\x26\x2d\xfa\x14\xff\xcc\x4b\x8b\xf6\xa9\xbf\x80\x8a\x14\x78\x53\x8b\x81\x46\x38\x40\xa3\x2c\xf2\x8e\x94\x83\xac\x6e\x75\x35\x72\x9d\x81\x46\x0c\x29\x2e\x6d\x5d\xfd\x17\xca\xa9\x9f\x02\x94\x13\x64\x20\xbd\xaf\xda\xee\x6d\x8f\x5d\x15\x60\x89\x21\x71\x80\x14\x79\xda\x2b\xec\xc6\xee\x9e\xb0\xe9\x47\xb1\x08\x6b\x58\x63\x47\xa6\x3f\x14\x23\xd2\xd1\x7f\xad\x83\x63\xff\x49\xb8\x37\x9d\x6d\x1e\x51\xf4\xae\xcf\x27\x67\x1a\xf1\xa7\xff\x2e\x78\x71\x39\x9a\x02\x2e\x28\xda\x76\x84\xf8\xdd\x54\xf5\x1a\xea\x36\xb7\xf9\xa4\x71\x6b\x56\x14\x9a\xd7\x88\x86\x89\xe5\xda\x11\x49\xaa\x4a\xdd\xc9\x57\x68\x36\xed\x4b\x68\x11\x58\x64\x32\x4a\xa2\xfe\xdf\x31\x72\x10\x44\xc4\x58\x36\x51\xfa\xaf\x47\x46\xf4\x93\x27\x11\xcc\x62\xad\x01\x43\xa6\xcf\x1b\x59\x40\x58\x23\xa0\x77\x68\xa7\x3c\x21\x20\x29\x45\x6d\xda\xbb\xaa\x6e\xe5\x2c\x13\x09\x92\xa5\x30\x12\xc8\x35\x3d\xcf\xc5\x7c\x3f\x05\xc9\xa4\x1a\xd6\xb6\x1c\x17\xda\xc3\x08\x91\x20\x58\xe1\x66\xb3\x39\xec\x36\xb7\x9b\xf5\xfe\x70\xb7\xfa\xf3\xf0\x73\x75\xfb\x23\xb4\x17\x80\x04\xc0\x7c\xbd\x81\x37\xbf\x93\xf9\x03\x4a\x73\x4c\xde\x74\xb6\x73\xd5\xd3\x7c\xdf\x54\xf5\x62\xeb\xe1\xd4\xbf\x03\x05\x91\xb2\x3d\x16\xb0\xdb\xc2\xbf\x49\xa4\x80\xe8\x2f\xaf\x25\xc3\xfe\x88\xef\x50\x14\xd5\xb7\xaa\x30\xb8\xd0\x62\x44\x7c\x65\x61\x90\x49\x58\xea\xe4\x32\x1d\x51\x2f\x96\x20\x70\x62\x3e\x03\x49\x80\x61\x02\xbf\xbb\x63\xa5\xf2\x22\x2f\x5f\xbb\x1d\x7c\x1a\xbc\x80\x91\x31\xa6\xfd\x4e\xe7\x9e\x76\x7a\xf2\x09\x58\xae\x90\x6a\xf7\x74\x6e\x07\x04\x9e\x8d\xb8\x04\x5f\xee\xa9\xba\x47\xc1\x52\x64\x83\x0f\xd8\x38\x4f\x66\x72\x23\x36\x12\x51\x1a\x20\x27\x08\x37\xb8\xaf\xba\xc0\x66\x52\x5f\xb1\x71\x44\x31\x60\xf1\x6f\x3b\x24\x11\x26\x93\x69\x93\x38\xc2\x14\xa4\x74\xcc\xa0\xfb\xaa\x27\x3a\xb0\xf3\x91\x69\xc6\x9d\xa3\x8b\x15\xec\xc7\xe5\xde\x27\x4b\x32\x8b\x7d\x8a\x12\x89\x70\x4b\x68\x9a\xa0\xdf\xbc\xb8\xea\x2d\xd1\x80\x4b\x61\x8a\xee\xb5\x29\x23\xb8\xc8\x6f\xab\xe7\xab\xf3\xc7\x72\xa1\x69\x76\xa5\x94\x0b\xdc\x4e\x0f\x5e\x98\xfd\x2f\x08\xe3\xa9\x4d\x15\x31\x41\x6d\x77\xff\xff\xad\x32\x61\x33\x11\x59\x1a\xd8\x11\x7c\x96\x6e\x49\x1d\xb4\x1f\xae\x30\x4d\xfe\x58\x57\xdb\xf5\xc3\x84\xc7\x9f\x5a\x0a\x9a\xf8\xc4\xd0\x94\x1d\x27\x80\x32\x2c\x4b\x89\x19\xea\x20\xdf\xce\x0b\x1a\x1f\x9f\x4c\x0e\xe3\x1c\x53\x93\x7f\xfe\xf9\xe7\x1a\xeb\xdc\xfe\xef\x9c\x32\x4c\x62\x1f\x72\x54\x62\xb6\x5f\x45\xac\x96\x4b\x15\x84\xdb\x9f\x64\xf9\xfa\x50\x06\x7c\xf0\x74\x4e\xa4\x88\x50\x93\x77\x53\x9e\x8f\xf9\x5b\xc8\xbf\x59\x29\x21\xf5\xd5\xbb\x89\x52\xe1\x72\x20\x62\xa5\x36\x28\xe6\xd3\x7d\x64\xf8\xfe\xaf\x47\x6a\xa5\xf3\x5f\x84\xc8\x90\x80\x8b\xbc\xe4\x72\xb0\xd2\xc6\xb8\xa3\xed\x7e\xde\xe6\xcf\x2f\x93\xda\xb8\x95\x56\xa0\xe7\xb3\x91\xed\x1d\x60\x64\x37\x3d\x57\xa7\x9a\xd9\x59\x6d\x66\xd9\x3e\x58\xc3\x53\x4c\x47\xf5\x66\x7f\xf3\xdc\xad\xde\x4f\x56\xbe\x51\x29\x36\x7f\xf5\x94\x22\x4f\xc8\x5e\x7c\xd1\x8f\xe4\x87\x43\xcc\x21\x09\xc4\x15\x65\x9b\x97\xcf\xbe\x62\xf0\xc9\xf0\x24\x0a\x4c\x62\x4f\x03\x7e\x3f\x1c\x64\x4e\xf1\xc0\x53\xd7\xb6\x72\x2c\x6d\x13\x2f\xa6\xb0\x2c\x08\x91\xc5\x5e\x5e\xf8\x19\xa5\x6b\xeb\xbe\x34\x61\x41\x49\xa4\xaf\xbc\x93\x55\xdd\x0b\xb5\x86\x63\xc6\x21\xf4\xba\xf7\xee\xea\xad\x5d\xe4\x7d\x93\x23\x63\xc5\x22\x66\xda\x5a\x19\x73\x9f\xd6\x70\x69\xe7\x5e\x0c\x7b\x70\x83\x58\x14\xd1\x18\x33\x93\x87\x67\x68\x77\x2f\xf9\x09\x75\x16\xc7\x17\x62\x51\xcc\xa9\xe3\xf1\xd5\xd5\xc8\x87\x67\x51\x6c\x52\xec\x0c\x9a\xf0\x5e\xb0\x28\x06\x85\x55\x97\xfb\xeb\x3d\x09\x7f\x4b\xb8\x94\x9d\x95\x78\xab\x5a\x78\x28\x5d\x35\xee\xb7\xf3\x88\x1c\x72\xe2\x43\xb0\x28\x11\x80\x3e\xf9\x55\x58\x2d\x93\xf5\xc4\x22\x92\x45\x98\x4a\x58\x57\xe7\x53\x55\xce\xb8\xf3\x16\xe4\x5f\xf9\x58\x99\x7a\xfa\x74\x04\x32\xaf\xca\x89\x5c\x7d\xdd\xf3\x3f\x9e\x55\x91\xeb\xd9\x4f\xa6\x24\xf3\x6c\x16\xed\xb7\xce\x24\xe7\x8d\x53\x87\x5e\x4a\x10\xb1\x28\x05\x0e\x3e\xab\x8f\x2c\xad\xdd\xfc\x6f\xcd\xaa\xae\xe5\x07\x96\x7f\x67\x6b\xff\x5f\xff\x5e\x26\x09\x9b\x5f\x54\xa2\xdc\xca\x21\x77\xf4\x5d\xbb\xd7\xfc\x92\x2e\x63\xfa\x74\x19\x49\x31\x30\xf5\xf6\x7c\x07\x61\x83\xef\x0e\x39\x86\x2f\x4f\x89\x0f\x75\x4f\xeb\x31\xfd\xd5\x4c\x03\xf5\xe4\x5a\xbe\xfb\x23\xc8\xc2\xcf\x06\x52\x0a\xa1\xbf\xb6\xfb\x1c\x3d\x52\x61\x6b\xe6\x17\x64\xb1\xc5\x0b\x3a\x59\x0e\x0f\x07\xbc\xfa\x70\x06\x65\xc9\x28\xb0\x88\x13\x87\xbd\x91\xbe\x43\xfa\x2a\x37\xa9\x9c\xc4\xfd\x2c\xe2\x92\x61\x90\xdb\x7d\xd8\xdf\xa1\x38\x2d\x6c\x43\xd3\xfb\xe0\xc6\x51\x61\x7b\x38\xd9\x2d\xc8\xb7\x45\x8a\x0a\x16\x49\xc2\xb3\x5e\x26\xfb\xba\x17\x14\x62\x91\xcc\x52\xcc\x9a\xaa\xf3\xc7\xcd\x6e\xdf\xff\x95\x3b\xbd\x66\x04\x28\x23\x77\x4c\xfd\x0a\xed\x44\x84\x3b\x8c\x54\x8e\x98\xc7\x09\xcf\xea\x41\x6b\xcb\x1f\x57\x92\x44\x3d\xc0\xd2\x75\x63\x5e\xcb\x56\x8e\xb9\x96\xc3\x48\xc5\xa5\x09\x50\xe1\x63\x20\xe5\x99\xcd\xbc\xb2\x1a\x31\xd2\x3e\xe0\xf0\xc4\xea\xe1\x12\xda\x26\xd8\xa8\xb0\xb9\xdf\x3d\xc1\x1b\xd4\x0d\xf4\xb9\x91\x69\x10\xd0\x8f\x77\xa5\xb7\xd0\xdd\x31\xbb\x9c\x89\x5d\x0c\x95\x37\x9d\x21\xdb\x1a\x97\x3e\x18\xb7\xc1\xb0\xc8\x68\x81\xbd\x95\xce\x45\xbe\x97\x47\x58\x22\xf8\x67\x11\xa4\xda\xfa\x79\xee\xbf\xb8\xfd\x9c\xd9\x79\xf9\x2d\x83\x25\x18\x56\xaf\x6f\x57\xdb\x3b\xcf\x11\x13\x6e\xd1\xd2\x38\xb6\xbe\x68\x1e\x7a\xa7\xfa\x63\x2c\x09\x1d\xb4\xff\x28\x1d\x1b\x88\x2b\x26\x84\xe3\x82\x60\x25\x6c\xf3\x7e\x2a\xaa\x59\x0d\x84\x45\xd6\x98\xb8\x5b\xe3\xdf\xea\x5c\x0f\x76\x9c\xc5\x49\x64\xd0\x2e\x94\xbe\x27\xbf\xdb\x36\x9a\x9e\x48\x32\x0c\xea\xbc\xce\x99\x1e\xff\xd8\x8c\x8d\xbc\xa1\x6e\xb0\x72\x92\x29\x85\xcc\x8f\xd7\x32\x2f\x3e\x6e\xab\x6a\x9a\xbf\x60\x71\x62\x44\xec\x3d\xac\x9d\x2c\xf7\xfb\x3d\xc2\x55\xa7\x63\x48\xa2\xa0\x27\x73\x6e\xda\xea\x88\x50\x85\x3b\x79\x3a\x61\x32\xe2\x3c\x23\x6d\x66\x31\xa1\xae\x3d\xd0\xd3\xe7\x0d\x14\x3e\x3b\xa8\xdf\xf2\x19\x0a\x98\xc5\x44\x3a\x76\x22\x9f\xf2\x09\x81\xfe\x62\xb3\x3e\x8b\xb3\xc8\x46\x6e\xa7\x7c\xbb\x01\x40\x9d\xdc\x70\x24\xce\x10\x55\x5a\xc2\x3b\xca\x35\x84\x3f\x73\x27\x9f\x79\x77\x33\xf2\x81\x59\x4c\x63\x81\xab\xd0\xa5\x2c\x7b\xc8\x90\x5f\x32\x9f\xb8\x7d\xb3\x05\x35\x8b\x75\x17\x23\xe0\xf0\x73\xa9\x8d\x7d\xe6\x3f\x40\xc5\x9a\x41\xba\x98\xc5\x94\x71\x2c\xef\x0c\x00\x8d\xcd\xd3\xb7\x4b\x20\xf2\xfc\xaa\x4a\xca\xde\xfe\xe0\x33\x9c\x9d\x93\xec\x8f\x33\x1a\xa3\x29\xc7\xd2\xe4\xc0\x07\xb1\xaf\x65\x5e\x86\xc4\xc2\xa2\xd4\x09\x8b\x19\x8f\x83\x9a\xc7\x13\x34\xed\xee\x7c\x44\x5c\x48\x4f\xa2\xc4\x62\xa6\x35\x06\x82\x7d\xaf\x64\x0b\x66\x5b\xfe\xac\xda\x25\x04\xc3\x92\x2b\xc2\x62\x1e\x39\xaf\xf5\x97\x2c\xdb\x6d\x7b\x57\xd5\xb0\x7f\x91\xe5\x3f\xab\xf3\x6c\x09\x72\x26\x84\xd7\xac\xc6\x1a\xc7\x25\xd7\x0c\x8b\x65\x16\x19\xe5\xb7\xa3\xe7\xaa\xbc\xc9\xe7\x0c\x08\x2c\x96\x96\xeb\x38\x64\x56\x67\xc9\x50\x16\x2b\x02\x18\x83\x35\xa5\x7c\x85\x23\x7a\xba\x3d\x79\x0b\x8b\x55\x46\x62\x6f\xd4\x42\xdb\xe6\x2e\x40\xc8\xe7\x30\xb9\x85\x06\x8b\x65\x0a\x3c\x16\x2b\xa9\x03\x43\xa5\xeb\xa2\x46\xee\x91\xc1\xe3\x89\x35\x49\x8d\xeb\xa2\x28\x3f\x7a\x89\xb3\xe9\x93\x6b\xa9\x31\x66\x47\x05\x9e\x95\x31\xfb\x6a\x10\xb8\x9b\xd9\x40\x1f\xec\xb0\x58\x1b\xc7\xcc\x83\xcc\x2e\xfa\x55\x3e\xc3\xb5\x0a\x8f\x6a\x44\x24\x22\x8c\xf0\x4b\x8f\xf6\xe9\x8f\x98\x38\x53\x3d\x79\x95\xe3\xbe\xf8\x4a\x0e\x91\xc5\x06\x34\x66\xa5\x1c\x14\x7d\x24\x60\xf5\xa5\x7b\x12\x1b\x4b\xc1\x33\x8b\xdd\x56\x6d\x0b\xf5\x47\x17\x82\x87\xdb\xb0\x9c\x07\x58\xc9\x42\x1b\x27\x8b\x2d\x70\xcc\xfd\xa9\xf3\xc7\x7d\x55\x1f\x67\xa9\x1a\x96\x44\x90\x62\x5c\x79\xeb\x65\x4a\x59\x12\x13\x92\xf6\x2d\x90\xae\xbe\x31\x7e\xf0\x24\x96\x31\x42\x06\x10\x4c\xe4\xb9\x6d\xc6\x7b\x5e\x92\x50\x81\xc4\x48\xa8\x9f\xd9\x79\x4e\xbd\x0a\x0c\x4b\x12\x1d\x21\x41\x7f\x2d\xf3\xc6\xa1\x04\xb6\xb6\x73\x46\x3e\x61\xb8\x60\x09\x49\x41\x63\xcf\x83\x7c\x85\xbf\x00\x2b\x4e\x37\xb5\x84\x50\x12\x3a\xed\x1e\xf3\x77\x28\x56\x35\xc8\x75\x55\x54\x9f\xcb\x1c\x4c\x7f\x39\x25\x31\x92\xe0\xdd\xe5\xba\xae\xbc\xda\xed\x6c\xf2\x52\xe2\x7a\x64\x54\x55\xbd\x1e\x65\xfd\x3a\x9d\x87\x14\x22\x92\xf4\xdd\xc7\x9b\xd2\x5c\x07\x4c\x17\x4b\x32\xae\x30\x82\xcb\x9b\x11\x20\x6e\xf2\x39\x24\x34\x8d\x48\x28\xe5\xaf\x65\xb9\xc7\xdc\xc6\xe2\xfe\x9d\x50\x99\x11\xbf\x82\xbf\x57\xa6\xf8\x2e\x9b\x2b\x80\xb2\xdf\x3d\xa6\x4b\x22\xa1\x2a\x8b\xfc\x26\x36\x67\xd4\x9e\x0d\xb4\xae\xe5\x42\x23\xb4\xe3\x67\xd5\x8e\x85\xec\xff\x67\xe0\xb5\x5c\xf8\x2f\x7f\x05\x16\x65\xb8\xe4\x9b\x5f\xf2\xb4\x9a\x88\x94\xb1\x84\x65\x12\x33\x05\xbb\x73\x0d\xed\x6c\x8d\x31\xe3\x78\x56\x1e\x8b\x73\xf3\x28\x3f\x6e\xf3\xde\x8e\x27\x9c\xb9\x96\xae\x93\x3c\x37\x72\x76\x49\x91\x19\x34\xc3\xbe\x40\x29\xdf\xd1\x84\x24\xb3\xe7\x17\x36\x4d\x03\xff\xe5\xfb\xbe\x0a\x4e\xe3\xa7\xbd\xb2\xcb\xcb\x43\x12\x82\x95\xc0\x91\xbb\x9d\xcc\xde\xa0\x24\x80\x1e\x85\x4b\x5e\xfc\x51\xcd\x5f\x84\xe4\x29\x46\xfc\xdf\x57\xdb\xbf\x26\x55\xf8\xd2\x48\x24\x12\x22\x95\xfd\x05\xe9\xdf\xe3\xd3\x66\xd8\xb2\x12\x2d\x2d\x3a\x50\xc8\x16\x35\xaf\xe4\x87\x31\x46\x72\x47\x77\x83\x2d\x5d\xd7\x57\xe1\x80\x49\x22\x60\x3d\xdc\xf9\x60\x10\x3c\x15\x0e\x42\x12\x21\x06\xe5\x70\x90\xaa\xaa\xdb\xc3\xa1\x3f\x60\x40\x8e\xb4\x4c\xef\xf2\x12\xc6\xda\xb9\x6e\x14\x89\x62\x41\xd3\x51\x39\xff\x1a\xde\xbe\x48\x86\x30\x12\x81\x53\xb5\x47\x45\x4b\x2c\x90\x74\x9f\x53\x59\x19\xb8\x29\x42\x5f\x04\x23\x71\x42\x94\xdb\x3b\x8a\xab\x6a\xf6\x1d\x93\x38\x53\x99\x57\xd0\x6f\x8b\x89\x54\xe4\x27\x75\x86\x89\x93\x4f\x12\x41\x78\xd4\xb7\x78\x41\x19\x1a\x64\xd6\xe3\xc7\x4a\x84\x23\x88\x74\xbc\x89\x97\xf7\x40\x12\xc7\x38\x73\x28\x9c\x91\xff\xda\x65\x27\x69\xac\xb9\xab\x1e\x6f\x8e\xa7\xf6\x63\x62\x79\x48\x9a\xa4\x48\xb1\x71\x75\x2e\xcb\xc9\x87\x45\xa8\xa0\xc8\x03\xb6\xeb\x42\xa0\x71\xd5\x6d\xd9\xb2\x10\x2a\x33\x44\xe5\xfa\xc6\x58\xa9\x5f\x4d\xd5\xbb\x09\x84\x5a\x6a\xc4\x18\x99\x5d\x9a\x31\x32\x70\xf6\xa2\x58\x44\x88\xed\x09\x2d\xb1\xda\xfb\xff\xb6\x24\xb3\x7c\x93\x2c\x8d\xd0\xa1\xb4\x5e\x11\xf0\xa6\x57\x46\x63\x84\x71\xca\x7b\xc5\xbe\x34\xfc\x95\x47\x3a\x19\x0c\xc5\xaa\x7c\x86\x62\x2d\x6b\xb3\x83\x3a\x64\x43\xf9\x92\x27\x48\x78\x9c\xa1\xe9\x40\x64\xd7\x53\xf5\xea\xb3\x34\xe1\xa8\xb2\xa9\xe7\xdf\x71\x7a\xd3\xaa\x92\xb5\xf9\x22\xd3\xc9\x08\x07\x83\x1c\xa9\x6e\xc5\x1c\xae\x42\xf3\xff\xf2\x0c\x0a\x42\x44\x34\x9a\xef\xc6\xc3\x06\xf3\x79\xd0\x4c\x64\x94\x22\x6e\xf1\xd0\x40\x61\xc3\xfd\xc9\x8c\xa1\x12\x12\x14\xf9\x73\xae\x8a\x49\x1a\x9f\x11\x69\x01\x67\xf1\x51\xd6\x79\x33\x59\x34\x2a\x36\x98\xf5\x7c\x02\x59\xdc\x49\x53\xe7\xe6\xad\xb9\xcd\xdf\xa0\x3e\xf5\x25\xe2\x6e\x90\x45\x65\x48\x05\xad\x3a\xeb\x2e\x96\x2f\xfb\x97\xa0\x52\x8a\xbe\x52\x80\x8f\xaf\x9e\xe1\xe1\xed\x13\x88\x37\x23\x4a\xba\x56\xac\xc1\x58\x11\xa5\x89\x1e\x87\x84\xfb\x97\xba\x2a\xfb\x38\x94\x68\xc9\x03\x4a\xf3\x0e\x9e\xe5\xa4\x50\xc9\x88\x56\x99\x70\xfa\xd0\xce\x34\x3c\xd8\xb5\xe3\xf1\xfe\xf0\xe2\x40\x8f\x30\x82\xab\x75\xe3\x65\xa0\x25\xc5\x69\xb8\x1d\x92\x19\x44\xeb\xc4\x09\xb5\xba\x8d\xf3\xe1\x34\xcc\x92\x31\x19\x06\xca\x87\x21\x6e\xf9\x5e\xd5\x4d\x7f\x1b\x90\x68\xa4\x30\xbd\x49\x7e\x3c\xf6\x8e\x00\x01\x49\xb0\x09\x3a\x0f\x2a\x36\x63\x09\x37\x46\x6c\x6c\xc0\xe1\x57\x3f\x76\xd0\x85\xd6\x37\x70\x21\x3b\x37\x9b\x3e\x9b\x8a\xd4\x2f\x92\xc5\xac\x27\x23\x56\x48\xed\x81\x05\xee\xd7\x9a\xdf\x66\x1b\x37\xb1\x42\x41\x68\x0d\x9d\xc2\xfd\x91\xd5\xe4\xd3\xc6\xf7\xbf\xfa\xa0\x2f\x09\x7b\x19\xb1\x26\xc3\x04\xd1\xa6\x7d\xc1\xf7\x76\x03\x60\x94\x1c\x7e\xc4\x0d\x4b\xa3\xcc\xe9\x1b\x9f\x6b\x95\xb7\x7d\xb2\xbe\xf9\x29\xcf\x45\x78\x3d\x69\x04\x34\x55\x01\x5d\x10\xac\x8c\xc3\xdf\xb8\x36\xae\x71\x6e\xff\xbb\x6c\x5e\x46\xb8\x4d\x96\xc6\xc4\x29\x57\x3c\xd7\xb2\x0c\x5a\x77\xe3\x0f\x21\x8d\x39\xa3\x72\x50\x8b\x74\xad\x50\xfe\x58\x62\xb2\xd8\xc7\x65\x7d\xc8\x01\x66\x06\x66\x58\x7c\x63\x29\xa1\x2a\xb4\x08\xaf\xe5\x18\xc7\xc3\xd2\xee\xc3\x49\xdd\xfb\xbf\xa9\xea\xbb\x0f\xfc\x9c\xcf\x23\x70\x3f\x4b\x33\xa6\x42\x35\xe7\xee\xa3\x8b\x2d\xca\x41\x37\x98\xa5\x19\xa7\xb8\x9b\xba\x6d\x07\x9f\xc6\x67\xf5\xc3\x08\x96\x72\xf0\x79\x8f\x6d\x89\xd5\xb4\xbc\xfd\x70\x8d\x44\x9e\xd9\xfc\xa2\x5e\x7a\xd1\x1e\xcf\x52\x9e\x39\x5a\x79\xd7\x70\x6a\x26\xed\xcb\xd3\xf7\x9d\x72\x2a\x1d\x89\x7f\x75\x54\x79\x89\xf5\xb3\x79\x05\x8a\xa5\xdc\x30\x24\x30\xc0\x94\xcd\x63\x51\x21\xf4\xbe\x27\x44\xba\x6c\xc4\x5c\xd8\x97\x53\xa1\x0c\x0f\xc9\xb7\xbe\xe7\x62\xf9\x15\xc8\xd8\x26\x7e\x27\xbb\x87\xf7\xd6\x07\x5a\xfb\xfd\x9d\xa7\x9e\x4d\xc7\x44\x6a\x2c\x95\x42\xc5\x5e\x24\x1d\xd3\x6c\x15\x86\xe2\x03\x7e\xde\xcc\xd6\xae\xd4\x8a\x78\xae\x5f\xbc\x90\x70\x5f\x84\x08\x3f\xaf\x62\x8a\xb6\xf7\x15\x3e\x7c\x44\x7d\x21\x6c\xcb\x52\x45\x8c\x4d\x07\xdb\x73\x80\x50\xd7\x65\xa9\x12\x0a\x75\x4d\x36\xfb\xef\xef\x49\xff\x47\x1d\x47\x81\xbd\xfd\xd0\xbe\xd4\x00\x78\xed\xcd\x7f\x9c\xf0\x88\x1f\xa5\x49\x8a\x61\xc6\xf7\xfd\x7a\x3d\x59\xec\x9a\x39\x82\x89\x53\x9d\xbf\xe5\x05\x3c\x0f\x8d\xa0\xd3\xa9\x33\x2a\xc5\xb6\x15\x4f\x45\xd0\x56\xaf\x65\xe7\x6a\x86\xcb\x80\x49\xd0\x87\x34\xa0\xda\x0b\xb1\xe8\x31\xba\x87\xa5\x56\xb0\x20\x47\xfd\x04\xa3\x62\xf4\xec\x5d\x59\x29\x85\xd7\x5b\xef\x67\x1c\xf5\x99\x7b\x86\x91\x6e\x8c\xc1\xb0\x36\xa4\xf4\x31\xd9\x36\xee\xf1\x9e\x35\x4c\x4c\xd6\x8d\xb5\x4c\x83\x4f\x79\x8e\xe5\x3f\xdc\xe1\x2c\xa2\x91\x08\x9f\x6b\xf7\xad\x7a\x6f\x2f\xf4\xec\x2f\x46\xa3\x59\xd4\x7d\x8a\xb8\x09\x75\x3b\xe7\xfc\x8a\xd6\x6d\x0d\xdd\x27\xd8\x78\x65\xd7\x21\xac\xc9\xe2\x88\x60\x06\xf8\x65\x64\xea\xb2\x24\x66\x28\x9f\x78\xcc\xcb\x3e\x55\x37\xb7\xbe\xa3\x6b\x24\xdc\xe9\xba\xac\x57\x8f\x43\x03\x06\xcb\x08\x07\x11\x05\xd3\x73\xf2\xbd\x87\x4f\x55\x01\x8b\x00\x2c\x96\x11\xc3\x5c\xd5\xbd\x46\x06\x67\x4f\x44\xfb\xd1\x5f\xce\x26\x88\xb8\xee\x8e\x81\xd9\x57\x46\x7e\x6c\x4b\xd7\x42\x19\x5e\x4d\x96\x5a\x17\x78\xe0\xb2\x4c\x0e\x50\x36\x67\x24\x88\xc1\x74\x8e\xa3\x94\xcd\xab\xb2\xd7\x35\x76\xfa\xdc\x57\x1f\x71\x14\x85\x2b\x64\x32\x46\x8b\x67\xab\x5a\x03\xf2\xd7\xcc\xe6\x33\xd3\x26\x41\xf8\x6d\x50\x58\x67\x19\x8d\xe2\x20\xc3\xb7\x2a\x8a\xc7\xba\x7a\xcb\x0d\xd4\x9e\xa8\x6f\xfa\xaa\x28\x55\x8e\x9e\xc5\xef\x7a\xbd\x8e\xfd\x25\xa6\x98\x65\x94\x51\xec\x91\x40\x59\x8a\x5c\xff\xac\x8a\xd7\xe6\x97\x7c\xee\x3f\xa3\x8c\x32\x9d\xea\xf0\x6e\x1f\xab\xea\x34\x71\xd5\x33\x6a\x08\xbe\x97\x6d\x55\x8e\xea\xe5\x2c\x63\x71\x14\xa4\x50\x5c\x41\xf1\xb2\x69\x81\x65\x4c\x46\x68\x49\x77\xbb\xeb\xeb\xfd\xfe\x8b\xc6\x00\x96\x31\x10\x98\x02\x0f\x0f\x55\x83\x19\x55\xa7\x59\xc6\x59\x8a\x1d\xc2\xb7\xab\xfd\xf6\x7e\x0c\xb7\x67\x19\x17\x4e\x2b\xea\x88\x2a\xb2\xd8\xe2\x85\xc5\xa0\x9e\x96\xa6\x1f\x47\xb0\x0b\x20\x44\xdf\x79\xd9\x42\xd9\x7d\xef\x8b\xe5\xbf\x4c\x10\x00\x18\x76\x8c\xfb\x11\xb4\x71\x7a\xeb\x82\x59\xc4\x57\xea\xaa\x69\x6f\xaa\xda\x13\x66\x23\xeb\xc1\x27\x8e\x72\x26\x40\xa6\x8e\x24\xac\x7a\x3d\x9f\x76\xa7\x3a\x6f\xe7\x6b\x44\xc6\x4e\x82\x4c\x9d\xd1\xb3\x72\x64\x3b\xe1\x51\x24\x49\x90\xdb\xe2\x6a\xbd\xda\x2d\xe2\x5b\x27\x37\x28\x85\xeb\x93\xc1\x91\xa1\xf1\xeb\x22\x90\xff\x0b\x17\x29\x5c\x4b\x2b\xf4\x07\x8b\xf2\x4b\x14\x17\xcb\x14\x05\x44\x00\x0f\x6c\xe7\x00\x06\x01\x89\xb3\x71\x52\x01\x04\x2c\x45\x0d\x97\xb5\xeb\x4c\x41\x84\xc1\xd0\xdd\xd3\xd5\xed\xe4\xc5\x2b\x9b\x10\x0f\x0a\x0f\xf5\xa4\x2a\x14\xb0\x16\xb7\xf6\x4c\xf3\x04\x1b\xdd\xbf\xc9\xe6\x47\x03\x66\xf6\x43\x5a\x39\x79\x1f\xbf\xc9\x3e\x56\x55\x31\x6a\x51\x9d\x8d\xd5\x2a\x26\x03\x7f\xfe\x2d\x48\x3b\xf8\x08\xb3\xa9\x30\x34\x0a\x48\x5a\xd7\x7d\xb8\xbc\xe0\x20\x31\xe8\xa2\x34\x6d\xaa\x5f\xc7\x5e\x56\x06\x89\x13\xe4\xb9\x7b\x78\xc2\x42\xd4\x5f\x84\x9f\xe1\xac\xcc\x48\x5f\x15\x57\xb3\xd2\x4c\x66\x89\x41\x44\xda\x5b\x0e\xbf\x0e\x35\x48\xf3\x31\x96\x64\x9a\x5e\x88\x46\x5c\x27\x0e\x68\xdd\xcb\x53\xfe\x16\x0e\xe9\x0c\xc9\xda\x0b\xd9\xb4\x8f\x83\xd3\x46\x63\x9e\x22\x58\x00\x6a\x9d\x44\xd3\xac\x0d\x4d\x52\x8e\x8b\x7f\x77\xb5\x9d\x5c\x2b\xd1\xd6\x35\x37\xfb\x64\xcf\x85\xee\xab\x1f\x47\x0c\xc7\x72\xd0\x8d\x54\xa3\xb2\x1c\xcd\xac\xc3\x27\x60\x5b\xb3\x2c\x5c\x16\xbb\x8b\x58\xba\x27\xdb\xd7\xd0\xbc\x54\x85\xf1\x1f\xf3\xec\x8a\x34\xca\xd4\x10\x6e\xfb\xee\x20\xec\x85\xbd\x1a\x8b\x27\x86\xd1\x82\xa1\xdb\x06\xc7\xbc\x1d\x2f\xd7\xbf\x97\x0a\xa3\x8c\x1b\xed\x3b\xb0\xbf\xff\xb1\xf6\x73\x33\x7e\xdd\x94\x33\x43\x3c\xd0\x39\x6f\x02\x15\x43\x2f\x85\xe3\x07\x89\x84\xe9\xcc\xcb\x0a\xef\x4e\x52\x03\xea\xda\x2f\xff\xa4\x50\x82\xaa\xfe\xf9\xb6\x2d\x1c\x27\x55\x99\xf9\x68\xcd\x85\xaf\x73\x78\x4d\xde\x7a\xd2\xca\xe8\x87\xc9\x84\x4b\x32\x34\x4e\x3b\xca\x87\xd9\x18\x25\x52\x27\x0d\x5d\x9d\x3e\x4e\x5d\x70\x1b\xee\x5e\x59\x8a\xa1\x4c\xde\x74\x57\x36\x7f\x45\x60\xc1\xa8\x16\xae\x1b\x41\x05\x17\xed\xa1\x98\x39\xb1\x54\x9b\x04\x33\x9e\x57\xfb\xfd\xe3\xe6\xa9\xd7\x3d\x66\x14\x88\x40\x88\xa6\xca\xdb\x4f\x61\x62\x61\x28\x4d\x59\xe2\xc1\x3d\xad\x13\x8b\x18\x9b\x52\x0a\x4a\x63\x84\xb5\x7e\x91\xf5\x33\xec\xa1\x8f\xbc\x59\x24\x53\x3e\x56\xf5\xee\xe2\x81\x45\x38\xc4\xf4\x17\xbb\x7d\x94\x78\x6e\xde\xdd\xa9\xfb\x12\x97\xc4\xcb\x19\x4b\x04\x60\x92\xa0\x3a\x41\x28\xb3\x8c\x78\x7a\x18\x4b\x8c\x45\x1f\xec\xad\xea\x45\xfb\xc2\x21\x12\x03\xf3\x66\x6d\xbd\xfe\xee\x18\x4d\xc4\xe4\xb1\x18\x49\x93\xa4\xd7\xcc\xf0\x7d\x92\xcd\x24\xd2\x67\xa9\x89\xb2\xe0\xcf\x75\xa1\xe5\x18\x5a\x3e\xb9\x56\xc6\x28\xae\xef\xf6\x05\xf6\x7d\xb7\x4c\xf7\x67\x9d\xa2\x5c\x4c\xf3\x53\xd6\xf9\x08\x4c\xcd\x18\x95\xbc\xe7\xa8\x3a\xb7\xf0\xe4\xf5\xbd\x9c\x5f\xf6\x5d\x86\x88\x32\x4c\x05\x55\x31\xf5\x20\x37\x64\xae\x36\x72\xc9\x9c\x32\x46\x9c\x12\x75\xf7\xd7\x55\x5e\x5f\xd7\x55\x70\xb6\x18\x4f\x5c\x2d\xb3\x06\xdb\xd9\x05\xe7\xd1\xa2\x1a\x47\x67\x23\xa0\x6e\x10\xe4\xd3\x8f\x26\x51\x60\x16\xda\x94\x6d\xfd\xd1\xc5\xe5\x5f\xf6\x9c\x33\x26\x88\xe5\xbe\x4b\x4d\x57\x81\xfe\x93\x31\x91\x26\x58\xf7\x3c\xca\xba\xce\xe5\x33\xdc\xe6\x1a\x4a\x0d\xc8\x0b\xb7\x7d\xbc\xd9\xbd\xc8\xa0\x21\xcd\x98\xa0\x11\x5a\xe8\x36\x6d\xc7\x56\x92\x09\x90\xbe\x31\xd7\x3c\x56\x4d\xfb\x50\x5e\x61\x12\xef\x4b\x98\x0c\x13\xa0\x3c\xb3\x25\xd6\xed\x9f\x64\x39\xcb\x5e\x30\x49\x5d\x6b\xd0\x40\x45\xed\x7b\xa9\x7f\x3b\x5f\xb6\x6c\x33\x26\x8d\x73\x57\x5d\x82\xbd\xdb\xd6\x6f\xaa\xfa\xa1\x84\x1e\xcb\xdb\x0d\xc9\x0c\xef\x09\xda\x10\x79\x7c\x27\x3f\xae\xf3\x66\x8c\x30\x61\xd2\x50\xc4\x43\x79\xaa\x09\xc7\x67\x1e\x00\x01\x4c\x25\x46\xd1\x71\xd3\x1b\x66\x53\x9a\xfe\x30\xcd\x50\xc7\xb8\x45\x16\xa1\xa1\x46\x11\x0e\x73\x6b\x75\xd0\x3f\x2c\xc1\x75\x62\x4e\x37\x23\xa6\xb5\x44\xba\xd6\x73\x59\xe4\x4d\xbb\xaf\xab\xd3\xcb\xc7\xec\xd3\xd3\xda\xa9\x48\x75\x06\xfb\xf7\x6f\x23\x0e\x40\xc6\x4c\xca\xc2\x77\xe3\xd4\xf7\x26\x8d\xe5\x8c\x41\xac\x62\x3a\x6e\x8d\x08\xbc\xf9\xb7\xf9\x31\x9f\x7f\xe2\xe0\x73\x69\xed\xa4\xe7\xbe\x8b\x5e\x96\x5c\xb3\x10\xeb\x33\x48\x28\x32\xab\x4d\x68\xf7\x0a\xa9\xa0\x98\xd0\xee\x31\x06\xd2\xe1\x16\x50\x3c\xfa\xdc\xb4\x41\xb6\x36\x1c\xb7\x94\x20\x46\x70\xb3\xff\xf9\x34\x79\x0a\xab\xa3\xa0\x46\xd9\xd7\xd1\x67\xcb\xc7\xea\x18\xa9\xdd\x8d\xfc\x68\xf6\x55\x88\xa8\xa6\xcf\x67\xc1\x62\x5c\x1a\x9e\x0f\x61\xe8\x61\x79\xcd\xb6\xce\x21\x32\xe4\x11\x95\x38\x87\xd7\xd5\xfb\x68\xbb\xe7\x91\x49\x82\xa2\xa4\xd3\x2f\x03\x07\xd1\xda\x3a\x41\xf0\x5c\x15\x79\xf9\x3c\x96\x03\x63\x3c\x8e\x14\x0d\x71\x73\x6f\xd8\x78\x9c\x71\x47\xf6\xd9\x40\xfb\x5d\xe6\x35\xa6\xdc\xe8\xf4\xde\x79\x4c\x13\x4c\x90\x54\xc8\x6d\xb1\x29\xcd\xe8\xaa\x54\x60\x19\x75\x65\xe4\xa9\xed\x93\x58\xcb\x7b\x2b\x8f\x35\x41\x92\xf8\xc0\x26\x67\x72\x0d\x4f\x55\x51\x2c\x7a\x84\x9d\xb3\x8a\xb4\xcd\x77\xdb\x7b\xac\x9a\x05\xaa\xc9\xc3\xf6\xfe\xd0\x53\x20\x30\x4e\xa8\x0d\x06\x1e\x4d\xc9\x38\x0d\xe5\x87\xa4\xd2\x38\x36\x63\x67\x62\x67\x8d\x87\xb3\x9b\x4c\x0d\xa7\x3c\x4c\x6d\x99\x77\x7e\xf0\xa6\xdb\x34\x42\xe6\x86\xa7\x40\x2c\xe9\xbb\x35\x1d\x8c\x64\x56\x03\x9b\x3e\x48\x96\xa6\x68\x7f\xe4\x58\x1d\x65\xfe\xb4\x19\x98\x24\x76\x50\x77\xdf\xbc\xe2\xf4\x9c\x83\xf8\xe9\xca\x18\xb8\x00\x4b\x87\x73\xad\x12\x7c\x24\xfa\xe4\x73\x2e\x73\x4a\x05\xc6\x69\x94\xa1\x65\xde\xff\x39\x5e\xe2\x9c\x0a\x8d\x6d\xc5\xcf\xc5\xb9\xdf\x97\x38\xb3\x12\x11\xd1\xb7\x55\x6d\xba\xa5\xf7\x58\x23\xa6\xe6\xef\xe6\x92\xa7\x93\xca\x23\xc0\xf4\xfb\xef\x1f\x0a\x6a\x2f\x30\x35\xbb\x37\x6e\x53\x9c\xd6\xd0\x6c\xd8\xad\x5e\x4c\x34\x87\xd8\x7a\xbc\xcf\x72\x11\x8b\xc4\x7a\x6c\x5e\x69\xf3\xfa\xd8\x85\x57\xae\x3c\xe3\x03\xe0\xd9\x1a\x10\x99\xc5\x90\xe5\x20\xcd\x5b\xe7\x43\xad\xd1\x9d\x5c\x4c\xc1\x73\x21\x34\x84\x17\xf6\xeb\x1e\x7e\x79\x9d\x8f\x59\x76\x81\x0b\xe1\xb8\xf2\x6e\xbf\x4d\x42\x72\x2e\x89\xab\x6a\xa1\x07\x5b\xd5\x93\x02\x2a\x97\xa9\x4e\xed\x18\xa4\xbe\xaf\x9e\xa0\x0b\xf9\x2f\xb9\x74\xc3\x19\x19\xb8\x8c\x2c\xc2\xa6\x77\x98\x24\x9b\xdd\x89\x54\x14\xb7\xcb\x00\xef\xec\x56\xf9\x7c\x88\x65\x18\x47\xe6\x0d\xf6\xb1\x75\x4f\xbf\x72\xbc\xbe\x41\xdb\xcf\x0f\x54\x5e\x80\xd2\xfd\xdc\xb4\x1b\xe2\x2f\x7c\xfc\xbf\x03\x24\xe2\x4a\xb9\x8a\x70\xb7\x65\xc8\xe2\x2b\xd5\x70\xc6\x95\x6f\x1d\x3a\xd4\xee\x0d\xdc\xc9\x57\x78\x2c\xbe\xe0\xba\xf7\xe7\xe9\x84\xa7\x97\xcc\xb2\x5f\xd0\xca\xf2\x70\x22\x89\x30\xa8\x76\x0c\x86\xc9\x61\xa0\x2f\x67\x5c\x53\xce\x21\x10\x6e\xe8\xd7\x4b\x96\x1c\xc6\xb5\x66\x71\x8f\x10\xec\xac\xa1\xdb\xb7\x6f\x72\xb5\x80\x4b\xe6\x86\x02\x16\xde\xec\xb9\xd4\x0e\x58\x5d\xae\xea\x67\xfc\xda\xc7\x50\x8e\x19\x22\x8a\x1b\x1e\x07\x56\xb8\x3b\xf9\xee\x25\xcd\x77\xa7\xca\xbb\xf7\xe1\x51\x8c\x70\x41\x46\xd1\x6d\xb6\x3d\xd4\xd4\x1f\x84\xc8\x25\x51\x1b\x58\x12\xca\x0a\x97\x00\x96\x38\xc1\x5a\x03\x4d\x5b\x57\x33\xd7\x80\x83\x30\x48\x84\xd3\xed\xbd\x77\x70\xac\xea\x8f\xce\x6d\x7a\xae\xf3\xf6\x03\xeb\x50\x84\x8c\x73\xd9\x1c\xb4\x81\xb8\xb7\x9b\xb3\x6b\xd9\x28\x43\x1e\x90\x5d\x55\x54\x47\x78\xc7\x17\x37\xc2\xe4\x73\x9b\xb8\x56\x34\x33\x6b\xc4\x5b\x7e\xff\x36\x15\xd8\xfc\xbf\x83\xf6\x7c\x7a\x92\xd6\x16\xb3\x76\x9c\x30\x4e\x5b\x04\x43\x48\x97\x37\x69\x6e\x65\xd3\xae\x0b\x90\xf5\x85\x44\x33\xe3\xd6\x4a\x9f\xf3\x40\x7b\xb3\xaf\x4e\x3f\x4e\x0b\x8e\x8c\x88\x12\xa1\xdc\xf6\x70\x74\xe0\xc5\xd5\xd3\x9f\xe3\x46\x74\x26\xa2\x14\x20\x20\x12\xa4\x52\x79\x7b\x87\xed\x5e\xbb\xf3\xf1\xe8\x1d\x02\x3f\x30\xd6\x2a\x0e\xb1\x4b\x91\x43\xd9\x76\xf7\xe7\xae\xb5\xbd\x5e\xae\x95\x88\x44\xa4\x58\x88\xbb\xda\x07\xcc\x98\x48\x80\x21\x9f\x41\x9f\x32\xad\xab\xf3\x29\x9f\x9b\x33\x41\x04\x48\x87\x7a\x6a\xce\x50\x07\x48\xaf\xe7\x49\x9b\xb3\x95\x31\x91\x11\xa7\xaa\xf0\x7b\x17\x2f\x95\x3b\x28\x6c\x17\x64\x24\xfd\x61\x4e\xd1\x9c\xaf\x8a\xf6\xea\xfc\xf1\x55\xb3\x75\xe7\xec\x6b\x44\x78\xbc\x79\xbc\xe2\xa6\x34\xd5\xaf\xa5\x2d\xfa\xef\xfe\x1b\xae\x1b\x53\xa4\xe1\x0c\xab\xff\x3a\x6f\x50\x61\xe9\x6b\xb1\x1f\x26\x68\x62\x07\xf8\x65\xb3\x84\xdc\x13\x2c\x02\xec\xe0\x73\x49\x05\xdf\xc8\x0a\xba\x3a\x1e\xc1\xe9\xfa\x7d\x6d\xa1\x04\x4b\x32\xdc\x23\xee\xf2\x12\x61\xab\xb2\xee\x99\xce\xba\x83\x0a\x7d\x45\x4c\x3e\x4c\xab\x9c\x82\x25\x80\x74\x2d\xdf\x9e\x7e\x4e\xff\x2e\x5c\x11\xeb\x19\x4a\xa4\x02\xda\xbc\x9f\xbe\x0d\x19\x6b\xc1\x20\xd2\x64\xa8\xbd\x62\x66\xe7\xfe\x1c\xbc\x5f\xc1\x59\x86\x02\xcf\x06\x6c\x17\x63\x04\x25\xaa\x90\x30\x5a\xb4\xce\x82\x6b\xd0\x23\x36\xdb\xb1\x5c\xe1\x72\x69\x79\xde\x38\x9b\x4e\xb7\x88\x70\x59\x13\x2b\x8c\xb5\x3f\x5c\x7f\xc5\x41\x4d\x10\x03\x42\x24\x8c\x9a\x50\xe7\xdd\xb6\x70\x0c\x16\x46\x48\x92\xa2\x36\x7f\x83\xec\x5d\x48\xde\x37\x5e\xb1\x32\x65\xb8\xcc\xf6\xff\xf8\x7b\xac\x08\x4c\x48\xe9\xe8\xf1\x90\x2f\xb0\x3c\x0f\xf1\xd3\xf4\x65\xaa\x14\x1c\x82\x1d\x21\xda\x7e\x5b\x5d\x5c\xbb\x1e\xb2\x32\x3a\x55\x64\x34\xf1\xb0\x9b\x90\xb2\xef\x9f\x47\x09\x8d\x88\xf0\xef\xff\x98\xbc\x6a\x25\x0d\xc6\x04\xf6\x0c\x21\xbd\x2f\x34\x4b\x43\x2c\xe6\x7c\xd1\x87\x5f\x33\xd4\x66\xc8\x20\x08\x2d\x52\x2f\xeb\x7b\xcc\xcb\x83\x34\xb3\x4c\x92\xd0\xe0\xa0\x7f\xf0\x0e\xda\x7b\x1b\x23\xd0\xfe\x7c\x3b\x12\xc6\x68\xea\x29\xc8\xae\x64\xf9\x0a\xf5\x5a\x96\xc6\xa9\xc5\x9c\x2f\x94\xc6\x99\x80\x28\x09\xf8\x0d\x27\x43\xd8\xb7\x1f\x4f\x39\xad\xfb\xe1\x22\xf6\xe1\xe7\x75\xf5\xab\x2c\x2a\x39\xe6\xa1\x67\x02\x62\x8d\x90\xd5\x83\xf6\xf0\x78\xac\x06\xe5\xea\x12\xab\x17\x4e\xf0\xc2\xae\xff\x0b\x2a\xef\xdc\xda\xff\x9f\xd8\x3e\x61\x33\xd7\x4c\x7f\xaa\x4e\x71\xb8\x29\x6b\x2c\x1d\x11\xcc\x8c\x41\x10\xdd\x31\x11\xe8\xdf\x5d\x2f\xae\x8b\xdc\xbe\x62\x30\x65\xc2\x82\xa0\x9e\x83\x73\xd3\xbe\xac\xe5\x69\x07\x45\xb1\x2d\x6f\x42\x52\x47\x46\x24\x02\xd5\x37\x65\x9a\xea\x18\x8a\xe4\x48\x03\xdd\x8f\xa2\x8c\xf8\xe4\xd1\xef\x1f\xba\x73\x94\xf3\x7a\x8a\xa8\x1b\x42\x4f\x19\x09\x61\x7c\x54\x11\xd4\xea\x9b\xfe\x42\x86\x52\x1f\x14\xcf\x90\x6a\x0b\xdb\xac\x8c\x65\xea\x34\x04\x5d\x7b\xf1\x6d\xa5\x5f\x67\x9f\x90\x8c\x8d\x48\x1d\xd3\xe1\x59\x15\xd0\xbd\xea\xf9\x00\x4b\x32\x9f\x97\x7d\x38\x81\xe7\xa1\xd8\x3c\x0f\x9c\x03\xa3\x3b\x4f\x62\x07\x8d\x6d\x2b\xc7\xd3\x7f\xc8\x75\xe8\x5f\x90\x89\x04\xf4\xed\x31\xd3\xd7\x0c\x34\x24\x4c\x92\xd8\x91\x73\x63\xa5\x3c\xe9\xff\x6a\x21\x8d\xfb\x70\xb0\x75\x3b\xfe\xe4\xe5\xc8\x54\x68\x44\x71\x77\xcb\xbf\xae\x8a\xc2\xb3\xa4\x2e\xbf\x4a\x99\xa5\x09\xf7\xf0\x7f\x34\xd4\xb3\xe7\xcc\x14\xc1\x6c\x3c\x6e\xd6\x79\x9b\xbf\xc1\xa3\x6c\x5f\x3e\xa3\xf1\x09\x27\x69\xa6\xa9\xcf\x7f\x5e\x83\x2e\xf2\x99\x28\x24\x93\x19\x38\x75\x97\xce\x57\x0b\x3a\x58\x3f\x9a\xbc\x7c\xbe\x46\xfe\xea\x81\x75\x24\x3c\x37\x15\x34\xed\x69\xd2\xfa\x0d\x34\x74\x7d\xfe\xed\x30\x70\x64\xd8\x25\x95\x0c\x3b\xad\x4b\xf8\xd5\x45\xd6\x47\x59\x60\xda\x68\xbe\x14\x58\x96\x62\x17\x69\x23\x8b\x37\xf9\x0c\xf7\x15\xca\x8a\xfe\x0a\xed\x78\x3b\x28\xdb\x7d\xf5\xa9\xc8\xc7\xec\x5a\x8a\x63\x8e\xcc\x6d\xd3\x9b\xd0\xce\x06\x17\x5a\x98\xa3\x53\xb4\xcb\x88\x8c\x53\xd9\x9b\xf7\xb6\xbe\xdc\xdb\x96\xdf\x05\x4f\x12\x24\xfa\x40\x61\xf5\xdf\xfa\x3f\x72\xe2\xd2\x2c\xe7\x13\x2a\x41\xf6\xf4\x2a\x8b\x95\x7c\xc9\xb9\xc0\x20\x2c\xc0\x6c\xbb\xf7\x73\x3e\x1e\xcf\x65\xe7\x5b\x7b\x11\x49\x3f\x54\xc4\x11\xca\x7d\x62\x52\x25\xa0\xca\x87\xfc\xbf\x14\x84\x62\x5f\x06\x6e\xf9\x48\x29\xe0\xc4\x07\x9f\xeb\xaa\x27\xd8\xea\x46\x69\x0d\x5e\x9d\x0a\xea\x6f\xd0\x7a\xd8\xdd\xfe\xfd\xea\x4b\x72\x65\x26\x05\x38\xb5\xce\xed\xf5\x60\x96\xa5\x12\x4e\xdc\x5e\x55\xae\xcd\x7a\x5f\x4d\xe0\x17\x7e\x94\x26\x54\xa7\x9e\x88\xa4\x9e\x6a\xb2\x33\xa9\x53\xc5\xfc\x46\x81\x52\x72\x27\x39\x5c\x5e\x33\x41\xd2\x71\x32\x6d\xb5\xc5\x18\xfd\xd4\xf6\x6d\xd4\xb3\x6f\x54\x0b\xc0\xbd\xff\x84\x98\xa9\xfb\x1e\x7a\x2c\xb5\xb5\xd8\xcd\xae\xa4\x79\x76\xbc\x70\x9f\x02\x5f\xfd\x19\xc6\xb8\x86\xac\x9f\xd5\x3b\x14\x4f\x70\x92\xae\x43\xe2\x7c\xa1\x90\x38\x0a\xa5\x24\x64\x1c\x83\xf8\xbb\xd5\x9f\x87\xfd\xc3\xef\x9b\xfb\xc3\xd3\xe6\x8f\xd5\xd3\xf5\x2e\xdc\x07\x88\x54\xd8\xbe\x11\x33\x9a\xdd\x3e\x48\x8b\x00\x69\xdf\xbf\xfa\xa3\xac\x97\x99\x7a\x99\x04\xe3\x94\x6b\x03\x93\x79\x7f\x7d\x90\xc8\x71\xb3\x7a\xcf\x03\x09\xc4\xe6\xbd\x85\x51\x2e\x4f\xda\xd8\x60\x1a\xc9\x04\x84\xe9\xf4\xca\x96\x19\xa1\x47\xfc\xf4\xde\x8c\x7c\x5d\x53\x92\x56\x80\x57\xba\x1b\xde\x9f\x8a\x22\x45\x7c\xf8\xe9\xb8\xa6\x9c\xf4\xc2\x60\xc2\x55\x94\x24\x48\x08\xe1\x3e\xd5\xee\x85\xce\x7d\xd1\xf1\x60\x96\x21\x3b\xdc\x4d\x31\x01\x49\xa9\x48\x53\xb4\x24\xfe\xeb\xef\x8c\xcd\x14\x7d\xaa\x08\x23\xd4\x21\x38\xeb\x06\x6e\x2b\x59\xa2\x3e\xd7\xc8\x78\xff\x4b\x0c\xad\xd8\xec\xdf\x1e\x90\xf4\xaf\xf4\xdf\x63\xc3\xa6\x08\x8f\xec\x58\xfa\x4e\x16\x3e\x07\x35\x8b\xf8\x15\x91\x1c\x71\x1c\xea\xfc\xb1\xf2\xfc\x03\x93\xd9\x52\x44\x59\xc4\x29\x22\xb0\x6e\x94\x7c\x50\x69\x2a\x51\x5d\xc4\xf3\xf8\xfe\x01\xf9\x24\xad\xa4\x52\x4a\x10\xfb\x8c\x5f\xc4\xf1\xdc\xc2\x05\x95\xfe\xdc\x9d\x59\xd8\xa8\x55\x0a\x49\xc2\x83\x3a\x72\x55\xdc\x00\x5c\x70\xc9\x32\x95\x65\x29\x73\x34\x4f\x6f\x39\xfc\xea\x19\x9c\x86\xd7\x91\x75\xab\xcd\x95\x88\x71\x83\x5d\xee\x5f\x50\x99\xe0\x99\x0a\x82\xa8\x9b\x77\x0d\xa7\xcb\x86\x5f\x95\x49\x89\x5c\x97\x4f\x9b\xdd\xe6\xe9\xe7\xc6\x7f\x3b\x93\x26\x58\x95\x19\x85\x28\x1d\x69\x8c\x67\xa2\xf0\x07\x58\x96\x60\xd2\xa0\x79\x91\xe4\x3b\xbc\x2f\xa6\x99\x15\x93\x89\x23\xe4\x93\x47\x08\xdd\x26\xb3\x3b\x65\xda\x62\x07\x6e\x51\x3d\x4f\x9b\x48\x14\x33\x11\xf6\x35\x6e\x4c\xde\x5e\x57\x5d\xc0\xbf\xe4\x00\x29\x41\x8d\x65\xbe\x2d\x66\xaa\x57\xcb\x94\x60\x49\xa0\xd3\xe8\xec\x9c\xb3\x93\xd3\xb3\xb5\x63\x7d\x44\x45\x5b\x47\xbb\xe2\x58\x98\xe7\x15\x67\xa5\xa2\x24\x72\x7c\xab\xad\xac\xd7\xe7\xfe\x37\x54\x6c\xd0\x7c\xec\x1e\x1e\xbf\xc8\x84\x85\xc1\x89\x41\xe2\x8e\x03\x6e\xfd\xd8\x9d\xb5\x35\x1b\x27\x55\x35\x1b\x49\x8c\x13\x6a\x6e\x5f\x1c\xbe\xb0\xff\x3d\x6a\xb8\xef\x6b\xab\xce\xed\x65\xab\xae\x52\x20\x89\x1c\xe1\x71\x6f\xf3\x66\x91\xa8\x92\x29\x4d\x04\x46\x2b\x4e\xbd\x60\x2d\xcb\xaa\xcc\xb5\x2c\x86\x20\x63\x1c\x9b\x5c\x34\x17\x2b\xad\x05\xd6\x63\x7b\x91\xb1\xaa\xb4\x79\x00\x6a\x28\x0d\x02\x49\xc0\x15\xb4\xdb\x60\x06\x95\xc9\x42\xdf\x44\x69\x7c\x2c\xf7\x7f\xce\xf0\x89\xb8\x3d\x53\x10\xbb\xc0\xfb\x54\x57\xc7\x6a\xdd\x4b\x37\x33\x65\x69\x86\x85\x84\x9e\xd3\x75\x66\x7b\x2c\xc8\x20\x54\xfc\x6d\x86\x49\x70\x23\x74\x4c\x69\x14\x7a\x71\x73\x73\xf5\xe1\xc0\x55\x50\xaf\x5c\xb7\xda\x14\x25\x19\xce\xb1\x69\xe2\x88\xba\xe1\xea\xfc\x11\x42\x12\x4d\xa8\x44\x9a\xd1\xe6\x04\x58\x07\xec\x3c\xaa\xa5\x76\xbd\x30\x5c\xb0\xb4\x87\x01\x56\xe5\x04\x9b\xfa\x63\xc0\x34\xfa\xd1\x69\xe2\x6a\xc4\xea\x9c\x17\x66\x6b\xa0\x6c\x73\x9b\x7f\xce\x5e\x30\xe9\xe1\x0a\xfc\x19\x63\x1e\x8d\x51\xd1\x75\x68\xfa\x1d\x7f\x12\x3a\x95\x09\x6a\x90\x7c\xdb\x8d\xaa\x62\x3a\x55\x06\x78\x2f\xd3\xe4\x2a\x92\x9f\x3c\x60\xa6\x0d\x84\xfe\xbd\xa4\x37\xf6\xd9\x60\xec\xb3\x7f\x87\x91\x90\x11\x07\xb0\x7b\xbf\xbe\xff\xfd\xeb\xdd\x4e\xa3\x8a\xa1\xef\x3b\xc5\x8e\xa7\xbe\xf9\x67\x91\x10\x43\x53\xcd\xd0\x4f\xf2\xf4\xc9\x7f\xc8\xa2\xe8\xa3\x35\xcd\x92\x0c\x13\xa6\x48\x6a\x66\xab\x7a\x0d\x43\x59\x68\x51\x89\x75\xf9\x9f\xc1\x32\x6b\xc6\xb5\x2f\xfd\xbb\x12\xc9\xf4\x66\x98\x75\xe4\x9a\x65\x85\x68\x80\x60\xfe\x34\x8f\x9d\x8e\xf9\xbe\x8b\x1d\x9e\xee\x7e\xef\xff\x4e\x22\x84\x14\xf6\x1a\x53\x5e\x80\x37\x1c\x36\x12\xb2\xa9\x5a\xfd\x6d\x5e\xbe\x42\x3d\x22\xc3\xf1\x43\x05\x4d\x10\x0c\xed\x1a\x56\x57\x65\x59\x9d\x4b\x1d\x7c\xaa\x30\x86\x59\xdf\xdc\xd1\x0b\xe4\xcd\xee\x5f\x1a\x13\x93\x50\xa9\x35\x9f\xc1\x0f\xb5\x8e\x2d\xc6\xb5\x27\x59\xb7\x1f\x87\xd0\x4c\xac\xb5\x8c\x31\x02\x2d\x30\x07\x2c\xf3\x23\x98\x11\xd5\x3c\xd3\xda\x28\x0f\x39\x6a\xdd\x6b\x9a\x87\x20\xfd\x38\x87\xd5\xf1\x9a\x52\x0e\xdc\xec\xbd\xd3\x71\xfa\x68\xc6\x58\xcb\xb4\x89\x1c\xe9\x38\x0a\x0c\xeb\x57\xf0\x44\xba\x87\x26\x3f\x9e\x67\x56\x51\x1b\x41\xc8\x88\x86\x6b\x91\xd1\x7b\x6a\x17\x8c\x14\x28\x58\xb5\xd2\xdd\x46\xdb\xa0\x33\x54\x9d\xaa\xe2\x63\x7e\x65\xa9\xb0\xff\xd4\xc2\x54\xdc\x99\x69\xc8\x9c\x50\x52\xdf\x98\xf2\x60\x1f\x1c\xc2\xa3\x5f\x29\x40\xad\x03\x99\x96\x4e\x00\x76\x76\x6d\xb0\x3c\xf1\x32\xd2\x37\x55\xfd\x9c\xbf\x81\x41\x6e\xc8\xc9\xa7\x6d\xc1\x51\x95\x5c\xaf\xfe\xe9\x2f\x6b\xe2\xc4\xa9\x90\x39\x3f\x6e\x42\x9b\x31\x24\xd4\x2e\x18\x6e\x47\xdb\x80\x89\x45\x1c\x1c\x2f\x4c\x50\x69\x1f\x77\xc7\x9f\x74\xad\x99\x58\x13\x39\x46\xe4\xae\x5f\xc6\xed\x09\x8b\x91\xa3\x89\xad\x63\x2b\x73\x2d\xf9\x21\xdd\x6f\x92\x98\x22\x16\x1c\xad\x63\x5e\x3e\x37\x07\xcc\x5c\xf6\x87\x89\x42\x78\xa3\x2f\x71\x2d\x47\x99\x61\x2c\x35\x14\x86\xae\xe3\xb2\x6a\x9f\xc0\x09\x50\xad\x7a\x77\xc8\x24\x2c\xd1\xfe\xbb\xbb\xc9\xeb\xa6\x45\x16\x8c\xa6\x27\x86\x67\x86\x48\xc7\xb4\x72\x5b\x3d\x3b\xef\xdb\xac\xab\xe3\xa9\xc8\xbb\x69\x79\xac\xab\xca\x2e\x92\xba\x31\x93\x26\x56\x47\xc1\x0f\x71\xd5\x01\x6f\xb0\xa6\x73\x97\xc5\x31\x62\x11\xb1\x5d\x05\x93\x72\x3e\x72\xbd\x19\x02\x4e\x93\xc5\x82\x89\x51\xc2\x72\x60\xed\x6c\xc7\x70\x40\x43\x95\x4c\xe2\xa0\xf9\xd4\x6b\x82\x8c\xdd\x7c\x43\xb5\x6b\xe5\x3e\xf7\x51\xd1\x6f\xe3\x49\xeb\xe6\x2c\x0a\x01\xf2\x65\x68\x68\xa8\xb1\xc8\x4a\x70\xb5\xdd\x0f\x93\xc8\xd2\x18\xa3\xf8\xdd\xea\x76\x73\xd8\xdc\x5f\x1f\xae\x57\xfb\x4d\x7f\x90\xb3\x80\x1a\x5f\x6f\x1e\x66\x97\x63\x22\xc3\x78\xdb\x65\x9e\x06\x89\x48\x66\x78\xda\x13\x30\xdd\xc9\xbc\xf4\xf9\xe9\xba\x5d\x95\x26\x28\x25\x2f\x5a\x2c\xc3\x99\x48\xd2\x91\x80\x7f\xe7\x27\xfe\xd9\xfd\xea\x6f\x4b\x9b\x8a\xe1\xd2\xe9\x23\xae\x2b\x54\xa7\xcb\xdb\xed\xfa\xe1\x33\x98\x66\x38\xc5\x2a\xc1\xfa\x4e\xd2\x5b\x79\xae\x41\xb6\xd5\xe4\xc3\x34\x82\x48\xe6\x01\xc7\xc8\x59\xf1\x59\x0b\x91\x11\x69\x8c\x0e\x64\x17\xeb\x3e\x3e\x6d\x7f\x8e\x66\x4e\x64\x3a\xd8\x90\xce\x7c\xca\x87\xf3\x5b\x6e\xaa\x3a\x9f\x21\x36\x8c\x90\x1a\xe3\xb2\x7b\xf8\xe5\xd2\xa3\x77\xf2\xf5\x13\x16\x1f\x23\xa3\x08\xfb\x33\x76\xa7\xbc\x34\x05\x4c\x96\x86\xcc\x34\x6e\x1a\x4a\xb6\x45\x55\x9b\x81\x26\xc3\x48\xe3\xa4\xfd\xf2\x32\xbf\x50\xee\x9f\x14\x04\xc6\xf9\xc5\xd1\x5e\x6a\x94\x00\xee\xf6\x52\x78\x93\xc5\xb9\x0b\x30\xf7\xdf\x17\xbc\x38\xa3\x64\xcc\x49\xa0\x12\x46\xbf\x5d\xaa\x02\x9a\x11\x23\x8c\x51\x92\xe3\xfe\xa7\xce\x1f\x03\xd1\xf0\x74\x52\x75\x22\x10\x6b\x7c\x38\xe8\xaf\x80\x11\xc6\xc4\x8e\x90\xc2\x73\x22\xac\xf4\x92\xc0\xd7\x85\x60\x24\x33\x86\x70\xe4\x92\x3a\x15\xb2\xec\x3e\xb0\x21\xf6\x34\xdd\x0b\x85\xde\xaa\x5f\xcb\x76\x26\x31\xc6\x8c\x51\x0e\xe9\x75\x2c\x3f\x6e\xc1\xb6\xdb\xd2\xb3\xca\x86\x2b\x40\x2c\x53\x2f\x65\xd2\xf6\xaa\x0c\xd0\xac\x82\xba\x79\x73\x49\x20\xd3\xdf\x18\xc4\x16\xbb\x4b\x6d\xfe\x3e\xa2\xd2\xae\x3f\x76\xf8\xd4\x8b\x74\x57\x06\x12\x27\xeb\xf9\xfd\x5c\x3e\x77\x27\xf4\x2e\xa2\x81\xc4\xd5\x42\x57\x98\xc4\x18\x65\x1c\x0c\x08\xf0\x56\x44\x55\xf3\xf2\xb4\x01\x2b\xb1\x10\x54\x95\xc5\xc7\xea\xa8\x64\xd3\x48\x33\xa4\xc3\x8d\xa5\xae\xb3\xf1\x98\x97\x8f\xb5\xb7\x79\x03\x0e\xa7\x1f\x65\xd5\x40\x82\xf3\x04\xcf\xe7\x42\xd6\x8e\x46\xc5\x0d\x80\x28\xa3\xd2\x37\xa2\x21\xed\x46\xfd\xdb\xd2\xc7\x0a\x11\xa3\xa9\x8f\x07\x3d\x5a\xfb\xe6\x0c\xc5\x3c\x18\x84\xc8\x3a\x4e\xcd\x43\xc0\x1d\x4d\xf2\x6b\x10\x47\x89\xc8\x1c\xef\x70\x0d\xc6\x2b\xa8\x4f\x7f\x28\xce\x12\xe5\x10\x9b\x08\x3e\x73\x4e\x55\x38\x66\x99\xb1\x3d\x56\x78\x75\xc1\x0d\xcb\x20\x21\x19\x36\x4b\xa8\xc0\x4b\x35\x3b\x6c\x1c\x28\xab\xaf\x58\x20\xb5\xdb\xf8\x35\x42\x9a\x46\xf8\x1a\x7f\x3e\x01\xb4\x3f\x42\xad\x03\x32\x9e\x22\x6a\xd2\xeb\x91\xaf\x9e\x76\x9b\xf5\x61\xfd\xb4\xb9\xde\xee\x0f\xbb\x1f\x8f\x8f\xb7\xc1\x71\x00\x9a\x45\xf8\x5d\x1d\xf3\xf2\x90\xf7\x90\xf8\x83\x17\xa3\x1b\xf5\xe8\x01\x4b\x38\x72\xaf\xba\x4e\xcc\x2e\x8c\xdb\xbc\x9f\xaa\x7a\x3e\x23\x2c\x71\xd5\x00\x5f\x27\xbd\x86\xa2\x47\xca\x02\xd3\x51\x42\x7c\xdc\xe8\xa6\x7a\x5f\xcd\xb2\x70\xc0\x20\x89\x3d\xb3\x75\xff\x27\x0b\x58\xd8\x78\xb8\xdf\x3c\x6e\x9e\xd6\x9b\xfb\xbd\x4b\x72\xec\x0e\x8f\x9b\xa7\xc3\x90\xc8\x05\xae\x13\xf4\x5b\x9d\x40\x56\xae\xab\xba\x9c\xf8\xe9\x20\x22\x89\x26\xa2\xb2\x16\xea\xab\xaa\xae\xab\x5f\x41\xac\xed\xcb\xa8\x05\x44\xe6\x00\xbb\xa7\xb3\x7a\x85\x8f\x20\xa3\xc3\x40\xc8\x08\x01\xa8\x36\x2f\xa0\x59\xc6\x4a\x81\x50\x71\xa8\xe7\xad\xea\xfa\x16\xca\xe7\x61\x52\x85\x4d\x84\x03\x42\x19\xbc\x8b\xc9\xcb\x95\x11\x55\x7c\xdc\x35\x8e\x53\xd6\x99\x8f\x70\xba\xa4\x36\x09\x95\x92\x4b\xa0\x05\x48\x2d\xb0\xaa\xe4\x80\x4a\xe3\xaa\x6b\xf0\x58\x40\x89\x4c\xbb\x45\x2a\x5d\x7f\xea\xe1\x2d\x0e\x94\x8e\xa0\xb4\x8d\x7a\x0d\xf4\x66\x22\x5e\x17\x46\x40\xea\x5c\xf9\xbf\xac\xeb\x7e\xba\xb3\x82\x4e\x74\x50\x8b\x5a\xbd\x3d\x3f\x9e\xfa\x8b\x1b\x12\xa3\x02\x47\xf7\x6d\x16\x98\xd6\xef\x53\x07\x60\x78\x1c\x0d\x0a\xef\x18\x86\x5c\xd7\xb9\x9d\xcf\x80\xb1\x91\x60\x7e\x45\x3c\x42\x3d\x22\x30\x0b\x17\x02\x29\xb0\x44\xbf\xee\xfe\xdf\x42\x52\x17\x00\x2c\xda\x24\xbf\x5d\x3c\x94\x97\xbd\x0e\x60\xb9\xc0\x92\xd4\xf5\xe6\xe7\x61\xbf\x59\xdd\x1d\x1e\x1f\x9e\xf6\xbd\xf4\x3f\x03\x2b\x38\x96\x3b\x37\xef\x8e\x89\x64\xe9\x77\xac\x8e\xd0\xcb\xc5\x6f\xd6\x9f\x68\xa3\xc4\x62\x7e\x56\x57\xf5\xd7\xb4\xd8\xcc\x46\x19\x60\x58\x32\xb4\xef\xbb\xf5\xf2\x58\xc3\x56\xcf\x7a\xa6\x6c\x44\x25\xba\xc9\x8e\x52\x1f\x69\x66\xe7\xc1\x5a\xd8\x5e\x6c\x44\xad\xb5\x43\x48\x7c\x93\x17\xc5\x8f\xd3\xec\x7a\x71\xa2\x39\x8c\xfc\xaf\x55\xb3\x3d\x76\xc6\x21\x2f\x9f\x97\x59\xfd\x99\x8d\x95\x42\xf6\x98\x53\x0d\x36\x7f\x07\xf3\x5d\x36\x2f\xc9\x7c\x8c\xcd\xd0\xb5\xfd\xfd\x5c\xc3\xa8\xed\xd3\x26\x69\x84\xeb\x5e\x62\xa8\xb6\x93\xba\xee\xc2\xfe\xd9\x5b\xb1\x89\x51\xb8\x5f\x4d\xe5\xf3\x51\xda\x32\xd8\x16\x4b\x04\xc3\x78\x4c\xa1\x31\x80\xda\x35\x60\xdd\xe4\xb2\x9d\x64\x8f\x2d\x11\xd2\x93\x69\xbf\x42\x89\x19\xc8\x49\x26\xc2\x12\xc9\x12\xd7\xd5\x90\x37\xd3\x2c\x96\x25\x56\x51\x11\x96\xaa\x7e\xc9\x4b\xf8\xbb\x54\x3d\xb3\x37\x9c\x0a\x8e\xfb\xbc\x27\xe3\x43\x25\x3d\x28\xcd\x1c\xa6\x64\x53\x15\x65\x3d\x41\xd2\xb1\xd2\xd8\x84\x34\x09\x54\x6c\x16\xc9\xc4\x04\xd0\x80\x9e\x02\xea\xc2\x10\x46\x11\x8a\x1c\x52\xf6\x37\x75\x75\xf4\x41\xcd\x72\x5d\xd0\x52\xa1\x11\x4f\x87\x65\x33\xd7\x5f\x55\xd5\xdd\x8f\x07\xe2\xcf\x51\xd6\xaa\xff\x27\x9c\x0b\x94\xf9\xb6\x85\x95\x67\x5d\xff\x36\x17\x8b\x60\x96\x29\x10\xee\x6d\x55\xdd\x2a\x9b\x55\x64\x2d\xcf\x74\x90\x63\xfb\xd1\x98\x4d\xfb\x32\x5b\x10\x5c\xbb\x4a\xcb\xb3\x3c\xc2\xe3\x20\xf1\xcf\x2c\x37\x4c\xc9\xc0\xa3\x6b\x3c\x8e\x77\x7a\xae\x20\xe0\x9a\x50\x26\x24\x83\x77\x70\x5c\xe6\x13\xb5\x92\x64\x01\x4e\xe4\xfc\xf3\x49\x0f\x97\x55\xb1\xc1\x82\xcc\x76\xfd\x30\xaf\xec\x58\xa5\x65\x08\x4f\xbb\x25\x5b\x42\x71\x03\x97\x04\x63\xb3\xc9\xd7\x89\x43\x10\xd8\xaa\x28\xaa\x5f\x4b\x60\x45\x6b\x80\xa3\x85\xc0\xa6\xbb\x6f\xbb\xfd\x38\x79\x64\x21\x72\x55\x31\x2f\xbc\xfc\xc7\x66\x1b\x6e\x15\x58\x86\x5c\x1a\x9d\x8d\x1d\x5a\xb9\xfa\x2f\xc8\xc6\x04\x4d\x14\xea\x62\x79\xb0\x6a\x9f\xe2\xb2\x56\x31\x6c\xf3\x3c\xf9\xb6\xd2\xa7\xa1\xa4\xca\xa3\x88\x2a\x44\x86\x1c\xe5\x2b\xdc\xe6\xff\x39\xe7\xe6\xb1\xce\xc3\xc1\x38\xa1\xd1\xdf\x83\x0c\x7d\x01\x45\x09\xd7\xa2\x31\xf3\xd5\xb4\xc9\x8a\xe2\x51\x0c\x8e\x3e\xa0\xcf\x98\x99\xdb\xea\xf9\xb9\xf3\x47\xa6\xe3\x12\xea\x38\x47\x3c\xba\xb2\xf3\xcb\xdd\x32\x5d\xfc\x16\x78\x94\x68\xa9\xf5\x14\x23\x7c\xf5\x81\x3e\xa0\x93\xd4\xf9\x80\xc5\xd0\x94\x47\x84\x51\x04\x47\xae\xf3\x9e\xbe\x63\x40\x79\xf2\x88\x18\x0e\x8e\x28\xeb\xde\x57\x7a\x7e\xdc\x6f\xf7\xe1\x68\x9a\x12\xac\x83\x8c\x40\x3e\xf8\xe5\xc5\xfd\x00\x9a\xe2\xbb\xb4\xe7\xd2\x34\xfb\xca\xfb\xbb\xd3\x5b\x4f\xa9\x25\x2e\x07\xd5\x05\x8b\xb8\xb5\x7a\x8b\x76\x0b\xe6\x79\xa1\x5e\x36\x3b\x5d\x25\xda\xe9\x6b\x3b\x41\xa0\xf0\xd3\x0c\x9c\x44\x74\x58\x09\xf7\x55\x38\xc2\x13\x17\x3d\xbd\x55\x3d\x22\xaa\xff\x1a\x78\xc4\xa9\x8d\x5d\x77\x9e\xd9\xec\xbf\xdf\x85\x4d\x80\x47\x5c\xbb\x24\x4d\x67\x72\xc3\xf7\x38\x31\xbd\x3c\x12\x91\x44\xf7\xbc\xa8\x9e\x77\xbf\x00\x2e\xd3\x53\xcb\x2f\x4f\x68\x97\x56\xce\x1b\x2f\x2a\xeb\xc3\x83\x7e\xe1\x0a\xcd\x70\x80\x5f\x95\x3d\x5d\xf7\x6c\x26\x85\xb1\x18\xf4\xdd\x41\x2b\x7d\x1e\x69\xa1\xf8\xc5\x23\x49\x08\x06\xca\xdd\x5b\x91\xb5\xd7\x22\xb9\x3a\x4f\x8b\x6c\x3c\x92\x96\x05\xf6\x76\x44\x12\x7e\x4a\x1d\xc2\x23\xc5\x39\xf2\xb6\x7e\x56\xcb\xe2\x7e\x9c\x4e\x68\x84\xd0\xb4\xf5\xea\x7a\x75\xa8\x1d\xdc\xa9\x39\xbc\xc8\xda\x1c\x7a\xc6\x7d\x1e\x69\x49\xe9\xc0\x3e\xb0\x71\x68\xa6\xfe\xbe\xb4\x89\x02\xab\xec\x15\xb4\x5d\xd4\xbe\x72\x6a\x29\xb3\xe9\x30\x92\xfe\x3f\xac\xbd\x59\x73\xe3\xb8\x92\x3d\xfe\x75\xfa\x61\x1e\x08\xae\xc0\xa3\x6c\xcb\x65\xdd\xf6\xa2\x6b\xc9\x5d\xdd\x33\x31\xa1\x48\x00\x09\x9b\x6d\x8a\xd4\x90\x54\xb9\x7c\x3f\xfd\x3f\x98\x00\xb8\x49\x72\xf5\x2f\xe2\xff\xa4\x08\x11\xdc\x40\x2c\xb9\x9c\x3c\xc7\x8c\x85\xce\x16\x45\x31\x76\xb8\x78\xa0\x75\x9c\xda\xf8\xc9\xdf\xc7\xa6\xbd\x45\xbc\x50\x5e\xcd\x03\x0c\x2c\x33\x2f\x09\xec\x13\x48\x28\xf0\x17\xc1\x94\x13\x8c\xbf\xf3\xa4\xc7\x2a\xc3\xb3\x6f\x6c\x44\xc2\x71\x14\xbe\xb4\x01\xe5\xaf\x04\x81\xe7\xbf\xce\x40\xe2\x2c\x08\x33\x69\x4b\x17\xd7\x75\xbe\x87\xfa\xd3\x83\xc1\xa6\x6b\x08\x0b\x42\x24\x76\x09\x5b\x14\xf7\xdd\xdb\xa0\x9d\x25\xab\xa9\xe2\x79\x0d\xb5\xc2\xe2\xcf\x89\x75\x38\xab\x16\xe7\x2c\x40\xa6\x6d\x34\x94\x10\xa8\xfe\x1a\x8c\x09\xee\x88\x34\x57\xaa\xb2\x7b\xca\xe8\x4b\x33\x16\xc5\x64\xa2\x96\x15\xbc\x8d\x02\x40\x9c\x31\x1d\x63\xe0\x9c\x32\x5b\x98\x75\x05\xad\x7a\xbb\x18\x6f\xe0\x2c\x14\x9c\x00\xb6\x95\xfc\xbb\xa7\xcd\xe3\x2c\x34\x9c\xbc\x95\xdb\x63\x7b\xac\xa9\x36\xe5\xec\x42\xc1\xfe\x99\x06\xe8\xec\xa5\x23\xc6\x95\x63\x2b\xdc\x1d\x4b\x63\x41\x28\xfe\x58\x64\x75\x9f\xda\xce\x96\x2d\xa1\xc5\xa5\xd3\x4b\x9c\x93\xa4\x9c\xfe\xf8\xce\x89\x40\x91\x65\x45\xe2\x0e\x13\x8e\x6b\xce\x22\x6d\x75\xbf\xda\xea\x75\x24\x98\x4d\xa5\x0b\x63\xde\x2d\xce\x62\xae\x03\x8f\x45\x87\x16\x5f\xab\xfa\xf3\x0f\xcb\xee\x3c\x7d\x97\x18\x22\xd2\x3c\xb7\x1b\xdb\x93\x59\xb4\x6f\x05\x5a\x1d\x8e\xb1\xff\xc7\x59\xac\x21\x52\xa3\x21\xea\x2b\x41\xa6\x97\x4b\x92\x2c\xcc\xdc\x26\x3a\xa0\x9b\x88\xea\xc3\xb7\xc8\x2c\x99\xda\xa6\xaa\xfb\xb7\x4a\x04\x9a\xb4\x0f\x67\xae\x54\x35\xb5\xa5\x38\x4b\x94\x8a\x1c\xd4\x45\x55\x3f\xb0\x7e\xc4\x0f\x9b\x34\x3c\xd9\x82\x87\xb5\x9a\x25\x26\x48\xdc\x20\xdc\x12\x74\xf4\xbc\xc2\xe2\x74\xcb\x63\x89\x49\x28\x49\x0e\x5a\x3f\x40\xf9\xb9\xad\xae\x0a\x50\xef\xc4\x79\x3b\xf5\x45\x38\x4b\x05\x5a\xdc\xb9\x4d\xf1\xff\xc8\x35\x5a\x51\x54\xbf\x86\x30\xd2\x9e\xb5\x84\x64\x58\xb6\xf9\x0f\xbc\xad\xea\x3b\xaa\xda\xf5\x2d\x32\xc6\x69\xb5\xb5\x1b\x14\xc9\x9e\xb8\x23\x3c\xb0\xf1\x09\x55\x54\x4d\x5e\xbe\x8e\x92\x5b\x9c\x89\x44\x70\xdd\x77\x58\xf7\x9c\xdd\x5a\xe1\x76\x06\xaa\xd8\x3c\xf3\xb8\x22\xd1\xb4\x16\x7d\xbb\x79\xfa\x82\x81\x83\x33\x91\x59\x2c\x8f\xd5\xfe\x2b\xaa\x1a\xeb\x81\xb5\x8d\x33\xc1\x91\x74\xc1\x9f\xef\xaf\x2d\xb6\xaf\x2f\x5d\xe0\x0c\x02\x63\x6c\x5c\xfa\x47\xf5\x8e\x73\xda\xfe\x39\x96\x65\xda\xf1\x80\x96\x1d\x71\xb9\xbd\x73\xc6\xc4\xf2\xcf\xeb\xbb\xc5\xe3\xb7\xe5\xee\x79\xb1\x5d\x3d\xf9\x7b\x48\x6d\x21\x26\x1f\x48\x51\x6d\x3d\xd0\xf6\x9d\x40\xdf\xdc\x19\x2a\x70\x7b\x73\x67\x14\x76\xbb\x64\x35\xe6\x05\xe3\x4c\x41\x46\xf0\xa6\x8f\x31\xb3\x89\xcf\x63\x8f\xaa\xd3\x39\xd3\x46\xca\xd4\x2d\x4f\xbe\x22\x75\xcc\xea\x3b\xbd\x2f\x32\x9b\x1a\xd3\xd8\xcb\x25\x4d\xe7\x14\x46\x82\x20\x5a\xbf\x02\x79\x70\x66\x20\xa3\xca\xaa\xd7\xfc\x07\x96\x23\x51\x0c\xce\x0c\xf2\x50\xf8\x30\x7f\x9f\x3e\xba\xbc\x60\x86\x81\xb6\x51\xcb\x9e\x77\x0d\x0a\x1c\x5f\x31\x0c\x4c\xec\xe7\xcd\x23\x7e\xf4\xc5\xc8\xf5\xd4\x67\xe6\x61\xd7\x6f\xcc\xf1\xa2\x9f\x06\xd2\x79\x18\x9a\x94\xdc\x3a\x72\xa8\xef\xab\xf9\xb6\x19\x46\x41\x44\xd0\xee\x9d\x9c\x25\x98\x79\x18\xa9\x90\x02\xd0\x6f\xd5\x87\x9d\x84\xa7\x96\x61\x18\x21\xb7\x2b\x17\xf4\xc9\xa8\x13\x32\xbf\xb3\xc9\xb9\x51\x8a\x8e\x87\x91\x91\x64\xc2\x7e\x90\x03\xdd\xed\xbb\x57\x55\xfb\x76\x5b\xd5\x38\x2f\x20\xe4\x61\x1c\x6a\xed\x3a\xe6\xfe\xfe\x0f\xcb\x4d\x10\x26\x93\x4f\x1a\xc6\x71\x40\x36\x2d\x61\xa7\xbf\x57\xf5\xbb\x0f\x7a\x3b\xe7\x92\x87\xb1\x48\xb2\x6c\x54\xfd\x09\xaa\xa5\x58\xd2\xf4\x5e\x49\xa0\x09\x28\xdf\xcd\x86\x7f\x7b\xee\x46\x1e\x26\xa1\x54\x0e\x6c\x8b\xab\xe6\x5b\x35\xac\xf8\x61\xca\xb8\xaf\xfc\xb7\xd1\x61\x17\x02\xf4\xfd\x95\x86\x9a\x5c\x68\x3b\xb7\xee\x9e\x6e\xee\x77\xe2\xa1\x3f\x39\x61\x06\x7b\x02\xee\x13\x22\x59\x1e\x66\x29\xd2\x46\x4f\xa3\x66\xcb\x97\x7f\x6e\xaa\x42\xef\xbe\x2d\x1f\x97\xcf\x3e\x40\xc4\xc3\x8c\xdb\x5c\x3a\xad\xfe\xb9\x7a\x8b\xcf\x9b\x3b\x61\xa6\x63\x42\xf9\x0c\x0e\xc5\xf4\x38\x37\x2a\x12\xbd\x85\xf7\x8c\x87\xaa\x6e\xb1\x3e\xf5\x5c\x79\x28\x58\x40\x91\xfc\x65\xe7\x61\xd4\xb9\x7a\x29\x73\x12\x92\xe8\x8f\x87\x60\x35\x73\xde\x1c\xab\xc2\xad\x67\x8d\x1b\xee\x26\x83\xd4\x43\xd5\x97\x7b\xc8\x8b\xe9\x07\x95\x89\x24\x59\x86\x55\x63\xd1\xa6\x7a\x46\xda\xe3\x9b\x01\x23\x83\xe3\x1b\xd5\x09\x8c\x9c\xa4\x50\x45\x8a\xc2\xff\x37\xcb\xdb\xc5\xcb\xbd\x15\x5c\xbb\x7f\xba\xfe\x7d\x77\xf3\x42\xeb\xda\xe3\xa8\x21\x2d\x9e\x16\x73\xba\x5d\xdc\xbb\x65\x70\x1c\x23\xe7\xa1\xe2\x16\xea\xe3\x65\x06\xb1\x1d\x41\xb2\xff\x9f\x0a\xae\x78\xa8\x23\x2b\x72\x48\x5b\xcb\xf9\x4f\xa5\xd3\x80\x9c\x16\xbc\x3a\xb6\x6d\x6f\x24\x86\x1a\x6d\x34\x98\x60\x64\xd7\x23\xfb\x3b\xc4\xc0\x60\x30\xd0\xb7\x90\x40\x55\xdd\x73\x3f\x5e\xf0\x8c\x2f\x3c\x1f\x9a\x20\x51\x83\xc6\x70\x35\x61\x01\xe6\x11\x0b\x2c\x07\xcf\xa1\x37\xcc\x9f\x51\xe5\x87\x1c\xcb\x96\xf5\x6d\x50\xd3\xc7\xfd\xeb\xe9\xe5\xdf\xab\xc5\xe3\xd5\xea\xab\xad\x2f\x0a\x65\xa2\x3c\xbf\x58\xd9\xb4\x50\xb6\x44\x11\xda\xdb\x14\x51\x88\x71\xec\x40\x90\xeb\x1a\x75\x7e\x36\x5d\x77\xf6\x97\x9f\x44\x05\x26\x03\x28\x8a\x18\x4b\x5c\xe5\x8c\xa5\xf8\x68\x4e\x3a\x6b\x76\x42\x8c\x54\xc8\xd3\x1c\xe5\x4c\x71\x73\xd2\x89\x51\x94\x59\x62\x6c\x8f\x0d\xdb\xd6\x47\xbc\x85\xa2\x9f\x23\x51\x24\x58\xe6\x23\x3c\x56\x5a\x8a\x22\xec\x16\xd9\xd8\xb7\xb1\x6a\xdd\x36\x7d\xf4\x8c\xaf\x23\xe8\xe7\xff\xb0\x74\xe6\x16\x90\x5a\x92\x23\x1f\xdc\xfc\xdf\x14\x46\xce\xa3\x24\xc9\x40\xcd\xca\xdf\x1d\x29\xe6\x6c\xe7\x8e\x12\x19\x27\xae\xe9\x72\x7b\x37\xbb\x4e\x9a\xc4\x14\xd4\x6a\xda\xaa\xfe\x7b\xea\x6b\x47\x29\x47\xb2\xe2\x9e\x0e\x87\xb1\x7f\x11\x65\xa9\x21\x88\xde\x20\x2a\x3c\x44\x84\x7d\x13\xc1\xa8\x22\x33\xdf\x1f\x48\xf1\x3d\x2f\x5f\x77\xc7\x72\xac\xd9\x35\x06\x2f\x4e\x1f\x89\x8b\x00\x8d\xaf\xc2\xf8\x86\x6d\xb7\x64\xfc\xfb\x04\xba\xc5\x23\x11\x46\xcc\xf3\x21\xfd\x13\x80\x0b\x8f\x04\x0a\x82\xfa\x82\x7a\xc7\x7a\x0f\xe5\x79\xce\x06\x1e\x09\xa3\x2c\x2d\xf1\x4f\x1b\x98\x9d\xed\x9a\x11\xc4\x49\x66\x7d\xf1\x3d\xbe\x83\x7f\x67\x48\x91\xf8\x80\xf6\xaf\xfb\xf6\xaa\xd2\x9f\x36\x9c\x3c\xf5\xf8\x23\x50\xd2\x0c\x39\x37\x27\xf8\x3d\x7d\x4a\xc9\x84\x34\x5e\x85\x6a\xac\x82\x7c\x36\xdb\xc2\x23\x19\x31\x70\x81\xd6\x6e\xaf\x6c\xce\xc6\xa2\xf9\xf9\xd5\x21\x92\x89\x11\x6e\xdc\xbe\x94\x43\xa2\x41\xf7\xc4\x98\xbb\xf3\x6b\x5a\x24\x21\x25\x4e\xac\x9e\xbb\x64\xa2\x5b\x7b\xd1\x72\x8a\xa4\xb2\x3c\xbe\x2e\x0e\xba\xad\x0e\x07\xd4\x2f\xe7\x61\x46\x1e\x2e\x29\xdc\xb6\x1f\x29\xd4\x34\xac\x6e\x9f\x5e\x1e\x6f\x68\xdd\xdf\x5d\x2f\xd6\xeb\xe5\xcd\x58\x7d\xb3\x6b\x66\xeb\x9d\x54\xfd\x79\x68\xe1\x58\x4f\x46\xaf\x56\x82\xf0\x80\x9e\x81\xe0\x3b\x5e\xd6\xf0\xe6\x91\xc9\x2c\x7c\xcb\xe2\x97\x7a\x40\x11\x8f\x03\x13\x0a\x87\x0c\xd9\xe6\x58\xb3\x69\x7d\x8d\x6b\xc4\x22\xa6\x1c\xc6\x61\x71\x38\xf4\xdb\x59\xcc\x78\xe0\x79\x6a\x36\xa8\xea\x79\x0c\x33\x0e\x23\xcb\x35\x2b\xf3\x76\xff\xcb\x92\x4d\x1e\x87\x1c\xe8\x95\x72\xca\xd0\xf4\x9a\x48\x67\x87\x4b\x1c\x45\x2c\x46\xbf\x46\xd2\x2e\x3c\x72\x4c\xe2\x48\x88\xd4\x91\x06\x6f\xf3\xbd\xa3\xdb\xfd\x67\x52\x8b\x3c\x8e\xa3\x90\xc2\x08\x16\xb7\xfc\x47\x35\x83\xd1\xf3\x38\x8e\x23\xee\xae\xfe\x0f\xaf\x7c\xe1\x4e\x49\xc0\x28\x5a\xe4\x15\xd2\x4a\x38\x34\x6f\xd5\xbc\x1b\x13\x61\xad\xdb\xa7\x1a\x9f\x6a\x9c\x10\xe9\x5d\x0c\xa0\xc5\x89\xe2\x4a\x8f\x4c\xfb\x59\x49\x2d\x8f\x53\xa1\x48\xfe\xab\xc8\xdb\x16\x4c\x3e\x0d\x2e\xc4\x29\x44\x89\xc5\x0f\xe4\x9e\x39\x66\xc0\x95\xf0\x38\x0b\x24\x81\x65\x77\xf0\x33\xc7\x66\xb0\xf8\xf9\xec\x05\xb3\x50\x51\xed\x03\x15\x45\x5c\x13\x87\x0b\x0c\xdb\xe4\xd8\xfa\x8e\x33\xc8\xc8\xd5\x2c\xf1\xc3\x67\x7e\x26\xb9\x21\x1e\x0b\x16\xf4\xf9\xd8\xa2\xd8\x1e\xeb\xb2\xf3\xff\x7f\xeb\x8f\xca\xc8\x69\x0d\x38\x4f\xc6\x5a\xad\x94\x7f\x3e\x0f\x28\xe5\xb1\x64\xe8\x88\x21\x4a\xac\xa1\x5b\x30\x3e\xdb\xfe\x25\x95\xb4\xc2\x55\x58\x6a\x47\xed\x3c\xee\x02\x65\xd0\x72\x62\xed\x0e\x75\x55\x19\xbf\x34\xc6\x3a\x34\xda\xb1\x7a\xb6\x7f\x7c\xa9\x47\xe3\x4f\x70\x5c\x73\xc4\xeb\xd1\x74\x96\x67\xa3\xea\xea\xe3\xc4\x92\x98\x0e\x0a\x64\x09\xc1\xac\xba\x7f\x6f\xbf\xdf\xf8\xbb\x63\x6c\x37\x70\xbb\xe2\x7f\xbb\xda\x9e\x75\x83\x63\x4c\x13\xb2\xce\x7f\x40\x29\xf1\xe7\x16\x61\xdf\x3d\x6a\x5e\xbe\xda\xf1\xec\xaf\x66\x02\x4e\x49\x88\x83\x05\x3f\xfd\x0b\xd4\xfb\xa1\x6a\xe7\x54\x36\xb3\xf7\x31\x32\x4a\x6d\x41\xfa\xa1\xa8\xa6\xd0\xfb\xd3\xb6\x3a\x26\x2e\x98\x57\x68\x96\x87\x4a\x39\xf8\x01\x4f\x02\x65\xb3\x96\x1a\xe5\xf1\x75\x87\x54\xed\xd4\x0d\x7c\x09\x0d\x6e\x7f\x3e\x1d\xdb\xc3\x29\xf1\x9e\x3f\x55\xc7\x14\xf4\xfd\xfd\xf1\xe9\xfb\x78\xc5\x4c\x58\x20\x74\x2f\x19\xd7\x42\x31\x48\x63\xf1\x84\x45\x19\xc5\xd9\x4e\x60\x7a\xb7\x75\xb5\xbf\x81\xc3\xe1\xe4\x9d\x07\x43\x30\x61\x26\xcc\xac\x26\x2c\x91\xa2\xe7\xfa\x9c\x8e\x1c\x4f\x42\x99\x59\x6e\x6b\xca\x0d\xff\xd6\xff\xab\xc9\x2b\xf9\x98\xc8\x29\xf1\x13\xf2\x10\x9e\x84\x0a\x7a\xd6\xed\xcf\x03\x76\x4f\xb6\xd4\xf9\x30\x9b\x98\xbf\x51\x04\x81\x2d\x1b\x7c\xfe\x73\xd2\x01\x91\x11\x54\x68\xee\xe3\x94\x84\x70\xe9\x46\x35\xc2\x7e\x6a\x33\x25\xb1\x93\x6e\xb4\x41\x25\x32\xda\x3d\x0d\xf3\xd9\x41\x9c\xc4\x12\x32\x3d\x36\x1c\xf5\x79\x5e\xf8\xfe\x06\x52\xf9\xc4\x17\x3d\xe3\x35\x4c\x33\xf7\x3c\x49\x53\x81\xc2\x43\x56\x3b\x1b\xf3\x11\x7f\x5a\x9a\xa8\xd5\x89\x29\xe1\x4e\xc9\x04\x8b\x86\xa7\xb6\x1d\x19\xf8\x63\x52\xa5\x96\x7c\x38\x7f\x7d\xc5\x7a\xd3\x92\xe6\x42\x79\x84\xa2\xf8\x8c\xce\x7f\xb0\x6e\x93\xf5\xf4\xa7\x5d\x57\x4d\xaa\x37\x79\xc2\x93\x20\xb3\xd5\x93\x37\xfd\x5f\x2a\x4b\xfb\xca\x5b\xc7\xce\x32\xbd\x26\xc4\x29\xb9\xb3\xcf\x54\xe3\xad\x61\xef\x4f\x05\x61\x31\x01\x07\xea\x36\x53\xd5\xda\x15\xd7\x5f\xe8\x70\x99\x68\xaa\xc8\x25\x41\x33\xab\x59\x31\x14\x33\xce\x92\xbe\x3c\x91\x26\xa6\x1d\xfc\xba\x33\x25\xaa\xeb\xea\xf0\x39\x19\x19\x2a\x0c\x49\xaa\x17\xb4\x7e\xaa\xf3\xd7\xbc\x9c\xae\xbc\x89\x4a\x98\xcf\x19\x3f\x7b\x6e\x14\x5b\x00\x7c\x5b\xd5\x63\x19\xfa\xfe\x82\x99\x89\xdc\xea\x74\x41\x3d\xfa\xff\x6d\xa7\x4c\x74\x16\xf8\x78\x4b\xf7\x9e\x53\x81\x22\x9e\x68\x48\x08\x2d\xa1\x30\x2f\xce\x45\x88\x12\x6d\x14\x4d\xbe\xc5\x3e\x7f\xad\x06\x54\x21\x4f\x90\xc5\xc1\xc0\x74\x77\x8b\x67\x49\x95\x79\x82\x3c\x61\xe9\x40\x0c\x15\x6e\x8e\xfd\x97\x33\x61\x14\xbb\x2c\xd3\x63\xd5\x7a\x90\x80\x27\xde\x6e\xfa\x66\x29\x24\x04\x5f\xbc\xb9\x79\xde\x5d\x3d\xbd\x3c\x6e\xff\xf2\x68\xb1\xc5\xf5\xf5\x50\x14\xc7\x13\xa3\x04\x0d\x2c\xd2\xe1\x1d\xb8\xab\x79\x62\xd0\x02\x5f\xe5\x10\xec\x3e\x35\x4d\xd3\x80\x85\x32\xf0\x28\x0b\x2a\xb7\x52\x58\x3c\xf7\x60\x66\x9e\x86\x22\xb6\x8a\x22\xc7\xcf\xab\xcf\x6d\xb5\xaf\xce\x0f\xb1\x34\x4a\x43\x8a\xae\x52\xc5\x91\x8f\xab\x79\xa4\xd0\x6f\x7d\xa3\xc4\x53\xac\x53\xf4\xd5\x95\x35\xb8\x9f\xea\x3c\x6d\x3b\x4f\x23\xa5\x69\xfe\x93\x9e\x5c\xf7\x45\x7b\x19\x82\x33\x36\xf7\xd8\x4e\x48\x23\x23\xa8\x62\xb3\x2f\x5d\xd9\xb4\xd5\x61\x14\x64\x49\xe3\xc0\xe2\xbf\xf3\x66\x47\x66\xc7\xce\x16\x0e\x4f\x07\x44\x1a\x07\x09\x21\x36\x0c\xb6\xea\xcd\x2d\x59\x56\x32\xf1\xb6\xaa\x1f\x48\xc1\xbd\xb7\x86\xd2\x58\x6b\x57\xfe\xee\xc2\x9b\x4f\xc6\xe5\x1a\x67\x57\x4d\x32\x70\xa0\xe5\xf2\x7d\xba\xa4\xa6\x89\x56\x21\x0e\x12\x94\xd6\x27\xb2\x8b\xe4\x6c\xb0\xa5\xa9\x04\xb2\x08\xee\xa0\xae\x3f\x47\x83\x35\xcd\x82\x0c\xec\x16\x50\x6e\x2b\xaa\x6c\xef\x16\x99\x0b\xc6\x4d\x9a\x25\x91\xd5\xc0\x71\xec\x7b\xcf\xbb\x21\x39\x7f\xbd\x58\xf7\x17\x4d\x78\x8a\x3e\xd0\xf1\xe3\x6c\x69\x0c\x4f\x33\x6e\x5d\x80\xe6\xd8\x1c\x70\xee\xeb\xa5\x99\x54\x62\xc4\x4b\xfa\x0d\xfa\xc2\x12\x9e\xf2\x40\x51\x12\x9d\x32\xa2\x2f\x84\x43\x5e\xf4\x1d\xcb\x33\xb4\x4a\x68\x54\xaf\x48\x01\xa4\x11\xf3\x21\x4f\x39\x6a\xe2\xea\xb5\x84\x27\x3e\x3f\x7b\xe1\x7d\x81\x0b\x61\x09\x45\x0a\x84\xfa\xaa\xce\xf5\x2b\x3e\x02\xa5\x5a\x70\x66\xc2\xa7\x32\xe1\x44\x75\x4f\x80\xcb\x6b\x28\x7f\x50\x5d\x4b\x1f\x7f\x9c\x1b\x2a\xa9\x62\x40\x84\x71\x8e\x42\xea\x5f\x55\x5e\x3a\x57\xf1\x8c\x4f\x9f\xaa\x30\x26\x05\xd6\xda\xaa\x7d\x74\x66\xe3\x4c\x8e\x9f\xa7\x3a\x44\x5f\x47\x39\xce\x46\xcd\x5b\xe9\xc8\x24\xfd\x96\xe6\xd6\xa6\x6e\xeb\x1f\xe4\x17\xe7\x27\xd8\x3a\xe5\x63\x49\x40\xa2\x19\xb7\x28\x4f\x11\xa4\x17\x09\xdd\x94\x90\x17\x33\x11\x4a\x9e\xa2\x8a\xc9\x4c\x22\x30\xce\x4e\x4d\xb3\x6f\x59\x90\x99\x48\x7b\x0d\x78\xe8\x8e\xb8\x6a\x1e\xef\xe4\xba\x0e\xcb\x58\xa4\x03\xca\xed\x1d\xfb\x64\xdb\x99\xbc\x48\xc6\x12\x4e\x76\x03\x15\x1c\x2c\xfe\x7a\x7a\xd9\xee\x6e\x9f\x17\xd7\xbb\xab\x27\xbf\x1c\x66\x4c\x32\xe9\x0d\x01\x68\x91\xa5\x69\xda\x1f\x32\x16\xd2\x41\x12\x2d\x9b\xff\x3b\xe6\x75\xed\x79\x75\x78\x16\x06\x3c\x1e\x94\x6c\x6d\xe4\xd8\x07\x56\x9c\x89\x65\x1f\xdc\xaf\x9c\x59\x08\x9c\x88\x4c\xdf\xdf\x7d\x76\x2d\x8b\x02\x46\x79\xbd\xeb\xa7\x87\x87\x97\xc7\xd5\xf6\xaf\x9d\x43\xfa\x2e\xbe\x79\x3f\x3d\x8b\x99\x3d\xed\xff\x4e\x4a\x4d\xfb\xde\x48\x22\x4d\x8c\x8c\x7e\x77\xb8\x3d\x96\xba\x39\xad\x87\xe7\x59\xca\x10\x12\x47\x67\xeb\xe9\x75\xfc\x7d\x52\x37\x62\x6a\x7d\x53\x4d\x94\xa4\x78\x96\xc6\x92\x28\x3f\xea\x72\x9c\x1b\xcc\x32\xb0\x51\xd1\xcd\x76\xf1\x3c\x69\x9f\xa9\xcc\xd2\x6a\x76\x0b\xa4\xe5\xc1\xec\x85\x3f\x5d\x13\xae\x23\xf0\xb9\x89\xe2\x88\x91\xff\x5f\x64\x99\x1e\x29\x80\xf4\x00\x50\x3e\x75\x07\x62\xd7\x1c\x74\x44\xe4\x08\x47\x6b\x06\x8c\x18\x80\xe8\x18\x5a\xe9\x36\xbd\xc6\x91\x6f\x95\xc9\x20\x0c\xac\x10\x05\x61\xb0\x1d\x93\x40\x7f\x34\x53\x8a\xf5\x0c\x78\xaf\x78\x8a\x30\xe6\x99\xe4\x9c\xc8\x99\x9a\x28\x71\xd6\x71\x7f\x40\x24\x9e\xcd\xe1\xe9\xea\x79\xb4\x10\x66\x52\x5b\x0d\xea\xee\xd0\xe2\xfe\xfe\xe9\x9a\x42\x33\x9b\xdd\x78\x73\xce\x94\xb2\x94\xe4\xde\x8b\x58\xb6\x6f\xd3\x85\x3e\xd3\x9a\xeb\xee\xd6\x77\x2b\xf5\x2b\x89\x03\x9e\x21\x4f\x3c\x45\x6d\xd7\x01\xd5\xd1\x31\xb7\x4f\xec\xaf\x0c\x85\x91\x6a\x60\x36\x5f\xe9\xeb\xb2\x9d\x85\x52\x33\xd4\x20\x42\xbf\x8c\x5b\x36\x2a\xaa\x53\x99\xb5\x32\xd2\x17\xa4\x3f\xe4\x3f\x6f\xab\x7a\x7f\x2c\xe0\xac\xc9\x93\x19\x17\xe3\x5b\x2f\xd7\xcb\xc6\x7b\x4a\x3c\x08\x0d\x73\xf2\x86\xa7\xc8\x5f\xdf\x26\x89\x83\xac\xa7\x0b\xb4\x9d\xf0\x8b\x74\x9c\x3f\x13\x25\x4d\x25\xfa\xec\xba\x7a\xb5\xfb\xe3\x03\xd4\xef\x47\x8f\xf9\xe1\x8c\x19\x0a\x9a\xdc\xf6\x7f\xa4\x56\xc8\x7b\x67\x6d\xb8\xb3\x6f\xc3\x43\x2e\x69\x1b\xa2\x11\xef\xf2\xc4\xb8\x28\xb5\x07\x26\xf8\x8f\x38\x68\x6e\xce\xcc\x0f\xfa\xef\xa2\x71\x32\xac\x22\x3c\x04\x49\x73\xeb\xea\x58\x97\xdf\xc0\x8f\x5a\x1e\x31\xe6\x45\x1a\xae\xab\xfd\x01\xca\xcf\x33\x15\x78\x9c\x47\x71\x44\x31\x33\x2a\x2f\xbb\xc8\xc9\xf6\xa5\xb1\xcc\xa3\xd4\x92\x6a\xd0\xf4\xa1\x78\xcb\xee\x87\x75\xef\xe7\xeb\x39\x8f\x15\xa3\xed\x60\x67\xf2\x32\x6f\xde\x7a\x69\x38\xde\x79\xa6\xb4\x35\x43\x51\x78\x66\x8d\x39\x93\x20\xef\xdc\x10\xda\x72\xf1\xa7\x45\x9d\xd2\x66\xf2\x3b\x5a\x58\xed\xb8\xa2\x80\xf3\x94\xe9\xd0\xaa\xb6\xd6\xef\x38\x9b\xae\x3c\x95\x71\x46\x40\xa3\xe5\xf3\xb5\xb7\x8a\xb7\x4f\xbb\xe7\xe5\xfd\x72\xb1\x59\xf6\x97\xd0\x59\x6a\x7c\x17\x16\x55\xbd\xc5\x7e\xb9\xe2\x19\x8b\x25\xfa\x94\x27\xfe\xc8\xab\x63\xe3\x34\x74\x7d\x83\x88\x51\x54\xef\x79\xb1\x5d\xee\x96\xdb\xbb\xdd\xf7\x3f\xbf\xf7\xc7\x1c\x1d\xde\xbf\xff\xda\xda\x7e\x1a\x2f\x96\xdd\x88\x53\xd2\xcb\x97\x2d\xac\x03\x30\x6d\x20\xdc\x62\xe3\xeb\x61\x6c\xb5\xd3\x97\xe0\x12\xce\x55\x16\x30\xcf\x10\x89\x40\xfd\x4b\x8b\xe3\xd9\xa8\x0a\xe7\x46\xe8\x60\x2c\xc1\x7a\x85\xfd\x47\x14\x69\x90\x8e\x2b\x5e\x77\xd5\xd8\x53\xf7\x8d\x90\x87\x96\x46\x0a\xf6\xd1\x34\x9c\xcf\x21\x4d\x88\x08\x61\xd7\xf5\xde\x91\x32\x20\x6e\xa3\x1c\xef\x62\x1c\x20\x25\x23\xe8\x8f\xbc\x3e\x36\x84\x82\x76\x07\x64\x06\x54\xdf\xf2\x56\xed\x49\x1d\x16\xeb\xed\xcf\xfe\x98\x32\x32\xf1\xf4\x85\x2d\xbe\x5a\x2e\xf4\xe1\x54\xcd\x8d\xaf\x2f\x7b\x9e\x90\x09\x4d\xdf\x5f\xc5\xb6\x14\xf7\xfb\xf3\x76\x56\x0e\x31\xeb\x28\x95\xa2\x0e\x7d\x50\x1a\xf5\x09\x83\x05\xe7\x4a\x2b\x52\xfa\x36\x39\x99\x9a\x93\xa5\x96\x6b\x05\x04\x32\x6d\x2a\xd3\x5e\xc3\xc1\x55\x69\x7d\xab\xa0\x58\x95\xe3\xe4\x26\xd7\xda\xb2\x8e\xfb\x8d\xe0\x2a\xd7\x3d\x21\x4f\x77\x14\x95\x43\xbf\x60\xdd\xe0\x4c\x1b\x61\xf6\xc8\x06\xb2\xc8\x4b\x0c\x14\xb9\x1e\x47\x9c\xa7\x83\x46\x04\x68\x43\x3b\xf2\x58\x97\x8f\xb7\xdb\xe9\x8b\x09\x16\x06\x54\x33\xf3\x5a\x6d\xab\x47\xfc\xd9\x5a\xb0\x9d\x3f\x98\x32\xc2\xe1\x59\x74\x97\x13\xfb\x19\x53\xc0\x9c\x0f\x34\x0a\xc6\x43\xaa\x6d\xb7\x66\xd4\xd5\xd5\xd3\x3c\x3a\x3b\xf6\xce\x04\x13\x92\x32\xdc\x12\x9b\x76\xf7\x0a\x03\xcc\x56\x30\x0d\xf4\x01\x2d\x33\xe7\x34\x96\x22\x42\x11\x64\x61\x5f\x35\xb3\x68\xac\x3c\x62\x4f\xc5\x33\x7d\xcd\x88\xc5\xf4\x26\x9b\x3d\xd4\xed\x7d\x5e\xbe\xff\x72\x9b\x15\x91\x4a\xc8\x27\x26\x51\xaf\xf1\xb8\x71\x6c\xf4\x5c\xc4\x19\xd3\x6e\x98\x3e\x95\x93\xb2\xe6\xce\xda\x1e\xc9\x19\x72\x11\x2b\x24\x6e\xdd\xc3\x51\x16\x79\xf3\xd6\x59\xcf\x4e\xe9\xd8\x35\x48\x43\x49\xc5\x53\x37\x1b\x36\x5e\x27\x44\xca\x79\xe6\xa4\x28\x8e\x16\x42\xe0\x63\xca\xd3\x17\xcc\x52\x4e\x9c\x2f\x96\xc6\xe5\xb6\xaa\xff\x35\x8e\xf9\x9f\x1d\xf6\x22\xcb\x52\x82\x81\xd1\x22\x45\xee\x49\xe7\x4c\xcc\xda\x08\x21\xdd\x16\xf4\x52\xe6\xa7\xda\x28\x5c\xf0\x98\x91\xe1\x45\x59\x03\x1b\x50\x9a\xbc\x01\x4f\x94\x8b\x0b\xb6\xc7\xba\x6c\xb6\x1f\xd5\x4b\x59\xc2\x1e\x2f\x44\xe4\x84\x60\x21\x85\xd0\xae\xef\xff\x1c\x00\x1e\x67\xd7\x43\x21\x32\x5b\xc4\xd9\xfe\xf2\x63\x0a\xe0\x54\xcd\x4c\x5b\xf9\xa2\x28\x7c\x45\x87\x5d\x37\xae\x3e\x9f\x4e\x57\x3f\x01\x60\x35\xe2\xbb\xd5\xcf\x6f\xf9\x63\x6a\x5f\x2e\x00\x6d\x88\xcc\x2d\x8d\x17\xfc\x2b\x21\x23\x20\xc8\xdb\xa2\xce\xfb\xbd\x4d\xc8\x38\xa1\x1c\x77\x73\x94\xd6\x91\xbb\x50\xba\xeb\x9b\x27\xd2\xa5\x7c\x29\x92\x4b\x0a\x5d\xc7\x13\xbd\x3c\x2e\x94\x74\xc9\x49\x6c\xda\x21\xad\xe1\x6f\xaa\xb4\xf0\x74\xe4\xdf\xdf\x70\xa6\x6c\xc0\x85\x32\x8c\xb2\x87\xeb\xe7\xe5\xe6\xe9\xfe\xc6\xed\xaa\xfe\x64\x8d\x29\x1b\x93\x8e\xde\x60\x0b\xb9\xdf\x4c\x05\x06\x86\x90\x88\x9b\xce\xcd\xd9\xb1\x1d\xf9\x0f\xfd\x41\x88\x68\x8c\x38\x50\xf6\x63\xd5\xfe\x37\xd6\xd5\x6c\x20\x19\xcd\x69\x49\x3b\x8c\x40\x65\xdb\x1c\x6b\xef\x46\x40\x10\xa4\xe0\x08\x88\x2e\xc8\xcf\xfb\x86\x59\x40\x51\x8c\x82\xea\x30\x86\x05\x0d\x98\xb2\xbc\xd2\x0d\xb6\x7f\xe4\x0a\xbb\x3b\x75\xee\x52\x8b\x37\xf8\x80\x0d\xfc\x12\x89\x31\x59\xf7\x21\x0c\x80\x32\x11\x7e\x0f\xfd\x73\xbd\xa0\x64\xcc\xa2\x9c\x15\xd8\xce\x71\xcf\x10\xc6\xb6\x2c\xa1\xc1\x76\x27\xa1\x41\x47\x7d\x0b\xcd\xae\x41\x1c\xb6\x04\x88\xb4\xc5\x5c\xee\x6a\xd4\x88\x53\xf1\x43\x0e\x71\x88\xc2\x05\xd0\x5d\xc4\xf4\x44\x51\x8c\x43\x9c\x04\x84\x7d\xed\x06\xc4\xb6\xfe\x5c\xd7\xd5\xcf\x4f\x02\x34\xfb\xe3\x82\x67\x8e\x6d\x60\xec\x68\x41\x12\xea\xc8\xd2\x5b\xfc\xbc\xcb\xbb\xa9\xf2\xf9\x8c\xaa\xaa\xf5\xea\xa6\x6f\x21\xd1\x4b\xa5\x2e\x1d\x5c\xa0\x73\xb6\x17\x67\x16\x09\x48\x94\xf5\x59\x5c\x87\xec\xda\xca\xbe\x72\xb3\x3b\xd4\xf8\x63\xf7\x81\xf8\x3e\x25\xc1\xe3\x90\x60\x6a\x02\xfb\x60\xc7\x02\xea\x41\xde\x97\x43\x16\x33\xca\xa3\xd1\x6a\xaa\x1c\xd5\x44\xd3\x1f\x4d\x83\xd8\x4d\x95\x45\xe3\x2a\xab\x4f\xdd\x66\xc8\x52\x5b\xcd\x43\xec\x2f\x2e\x30\xe3\x8d\xfc\x8b\x1f\x2e\x33\x61\xa2\x47\x9f\xfc\x5f\xd5\x3b\xd6\xe7\x59\x08\x39\xf0\xc4\x4a\xe0\x6c\x9e\x6e\xb7\xd7\x8b\xf5\xee\x7e\xf5\xd0\x97\xb7\x00\x47\x24\xbe\xa8\x7d\x5e\xe6\xfb\xe3\x7e\x0b\xef\x58\xaf\xeb\xaa\xad\x54\x35\x4a\xb6\x83\x08\xd1\x41\x62\x5d\x8c\xd4\xc6\x74\x46\xf5\xd7\x93\xf9\x0f\xc0\x80\x4c\xb6\x55\x71\xdc\xff\x39\xc9\xe5\x00\xc4\x9c\xb0\xe5\x6f\x58\x57\xdd\x1a\xb2\xad\xee\xb0\xae\xba\xe5\xb5\xf9\x6d\x6c\xb3\x01\x24\x96\x81\x6c\x46\xc0\x32\xda\xb3\x3b\xab\x8e\xcc\x06\x2c\xf5\xae\x86\x61\xd4\xc8\xd8\x64\x43\x68\xdc\xad\x96\xfd\xec\x19\x3a\x5f\x66\x11\xe5\x1c\x0f\x2e\x8d\xed\x46\x83\x8d\x70\x36\x8b\x1f\x90\x17\x20\xe7\xc0\x3e\x90\x1a\x12\xe6\x18\x24\xdb\x97\xba\x68\x7e\x9b\xd2\x34\x70\x50\x32\x20\x8b\xc1\x41\xbe\x6e\xd1\xbf\x9b\x93\xe8\xed\x5a\x58\x85\x63\x4b\x5c\xd5\x7e\x3e\x40\x09\xaf\x23\xa9\xd0\xb3\x9b\x12\x20\x47\xb0\x34\xef\xe3\x79\x78\x86\x7c\x86\x03\x42\x16\x4d\xf0\x50\xfa\x66\xb4\x02\x99\x4c\xd0\x8c\xee\xbc\xdc\xab\xed\xf5\x79\x83\x14\x8c\x88\x6d\x89\x80\xd6\x14\xe0\x9e\xac\x3b\x32\xc8\x02\x1c\x8b\xc7\x8d\xc4\x23\xb9\x0c\x30\x13\x96\x55\xe0\xc7\xd8\x39\x1d\xe7\x52\x07\x96\xad\x13\x59\x75\x2e\x99\x0c\xa8\x8f\xd1\x05\xed\x89\x80\xe2\xfc\x63\xca\x90\x59\x80\x1d\x96\x9a\x82\x86\x66\x48\xe7\xc8\x30\x4a\x69\x71\x24\x64\xba\xce\xa1\x9c\x59\x3c\x32\x44\x2b\x2d\xb7\xcf\xcb\x11\x9b\x1c\x97\x51\x8c\x23\xb9\xd8\x7b\x28\xf5\x44\x6a\xf8\x5c\xae\x4a\x46\x26\x02\xec\xab\x76\x46\x14\xee\xee\xab\xcb\x38\x96\x5e\x8c\xba\xc7\xf7\x9c\x0f\x5b\xcb\x18\x53\xca\x23\x97\x4e\xdf\x68\x8d\x75\xaf\xf4\xc4\x65\x12\x85\x64\xac\xee\x3a\x73\xfa\x1a\x6a\x59\x95\x37\x55\x51\xc0\x29\xfd\xd9\xb4\xab\x12\x91\xd1\xf6\x68\xa5\xb0\xdb\x0b\xa5\x76\x32\x01\x2b\x00\x6d\x50\xbd\xad\x6b\x5c\x90\xd6\xd4\xc0\x7e\xe7\x5b\x69\xcb\x7c\xd6\x60\xbb\x5e\x9d\x11\x39\xe3\x32\x41\x41\xc4\x17\x50\xb7\x63\xa5\x5d\x77\x34\x0d\x82\xa8\x57\xe6\x99\x89\xd9\x4c\x9f\x27\x55\x29\xa1\xea\xf7\xf0\x73\xf1\x5a\x95\x63\xfc\xa4\xcc\x24\x6a\x1c\xd9\x03\xb3\xaa\x0b\x99\xa1\x65\x42\xb1\x80\xaf\x85\x31\x79\x91\x8f\x5e\x82\x4b\x46\xa4\x6e\x3e\x42\xbf\x69\xab\x1a\xa7\x71\x31\xc9\xd1\x2e\x33\xf2\xf8\xb9\x6b\xdf\xfc\x2a\xe1\x8f\x8a\x38\xe4\xbe\x56\x09\x57\xd7\x4f\x9e\x8c\xa3\xa8\x7a\x5e\x32\x2e\x21\xcd\xac\x14\xbc\x57\x6f\x3d\xe7\x2a\x4a\x30\x11\xb1\x41\x5b\x1c\x85\xa5\xf0\x3e\x6b\x5b\x48\x99\x1a\x62\xe7\xf9\x40\xf9\x2d\x37\xd6\x8f\x9b\x60\x9d\xa5\x4a\x6c\x0e\x98\x28\x02\xbb\x6e\x77\x9c\xb8\x77\x27\x6e\xa5\x54\x09\x5a\xb4\x13\xbe\xe6\x25\xf9\x70\xfe\x00\x07\xaa\x65\x03\xbb\x2f\x6d\x0e\x38\xba\xbe\x16\xc4\x4f\xe9\xc8\x76\x76\xeb\xbb\x21\xde\x21\xb5\xb4\x8a\x8b\x07\xeb\xac\x39\x2d\xe6\x95\x7e\xee\xd6\x63\xdf\x08\xd3\xcc\x93\x50\xee\x6c\x01\x57\xd7\x3b\xbb\x66\xae\x58\xca\xa5\x09\x63\x0a\x4c\x81\x5f\x91\x6f\xab\xbe\x2e\x07\x8a\xc5\xfc\x7d\x4c\x1c\x64\xc2\xd1\xec\x6c\xc6\xa5\x6e\xb3\x61\x65\x32\x11\x3b\xc6\x03\x47\x25\x39\x3b\xae\xad\x1e\xed\x00\xcb\x5b\x95\xcd\xb1\x1e\x0d\x0d\x15\x24\x9a\x6c\xff\xe6\xad\xaa\xdb\x5e\x6b\xf5\x02\xd8\x4f\x05\x5c\x10\x0d\xf7\x7f\x2f\x9e\x77\x4f\xfb\x32\xd7\x76\xce\xfa\xa3\xd2\xe2\x2e\x77\x07\xa8\xdb\x1c\x0a\x02\x64\x4c\x3e\xbb\x62\xcc\x50\x08\x7b\x83\xed\x6a\xfd\x7c\x9e\xe5\xef\x0c\xb4\xea\x14\x70\x35\x9e\xa6\x2a\x8c\x20\xb6\xa9\x1a\xcb\x81\x37\x06\xcd\xaa\x28\x94\x98\xf6\x21\x51\x8b\xb2\xb1\x21\x3e\xdf\x40\xa7\x9e\xa8\x74\x5d\xc0\xe7\x88\xc7\xd6\x35\x88\xa5\x2d\x44\xdf\xc3\xcf\x35\x7c\x36\xeb\xe1\xda\x31\x86\xc4\x69\x55\x63\x5b\xe7\xf8\xe3\xb4\xc6\x66\xda\x7d\x89\xb2\xb2\xbf\x23\x5e\xcd\xf1\x54\x57\xa9\x40\x12\x71\x78\x83\x86\x28\x09\xce\xcf\x1d\x95\x2a\x4d\xf0\x59\xab\x5e\x3c\xa9\x97\x54\xa9\xe6\x38\x30\x59\x62\xdd\xdc\xe4\xcd\x01\xcb\xa6\xf3\x26\x7d\x9b\x2c\x8e\xa8\x47\xbe\x63\x61\xc0\x61\x18\x06\x96\x31\xae\x32\x1e\x52\xf9\x58\x75\xc0\xf2\xaa\x72\x04\x42\xe7\x87\xa0\xea\x76\xaf\xcc\xd2\x2d\xd6\xd5\x0f\x5c\xd7\x15\x15\x00\x9e\x7f\x7f\x8e\x3d\x57\x32\xad\x65\xc7\xb6\xea\x85\x0c\xfc\xcd\xb9\x89\xa8\xee\x1e\x6c\xa5\x80\xb7\x2b\xdc\x51\xa1\x80\x40\x93\x9e\xa8\xf2\x3b\xe6\xfd\x21\xc3\x48\x83\xd4\x63\x6e\x3b\xf7\x01\x7a\xab\xe9\x7f\x58\x30\xc4\x90\x47\x8c\x95\xf1\x10\x45\x8e\x9d\x93\xa8\x20\x0a\xd2\x70\x42\x18\x37\xb8\x80\xb6\xb7\x17\xa6\xc5\x7a\x61\x99\xda\x86\x0d\x41\x41\x02\x04\x75\x18\x84\x64\xa7\x1c\x83\xe7\xbb\x10\x64\xa0\xfb\xc2\xdc\xab\xea\xf8\xfa\xf6\xab\x33\x24\x0a\xc2\x6e\x1f\x1b\xfc\xbd\xac\x3e\x0a\xd4\xaf\x33\x1f\x54\xa9\x98\x45\xd0\xd7\xa1\x54\xe6\x6b\xc3\xac\x6b\x6e\x9d\x74\x1f\x2a\x18\xa1\x16\x94\x32\x86\x52\x03\xd4\xe9\xb6\xc4\xad\x1d\x66\x3d\x86\xcc\xd3\x52\x0f\x62\xf8\xd3\xab\x63\xa2\xc8\x82\xf7\x7b\xd4\x43\x5e\x62\x3d\x58\xe7\x0a\x39\x8f\x13\x4f\x6a\x4c\x5b\xc1\xd4\xe4\x75\xcd\x0c\x97\x14\x84\x5e\x3e\x5f\x87\x61\x34\x36\xca\x95\x31\x8a\xc2\xa0\x7f\xdd\x7a\xcf\x40\x07\x81\xf5\x95\x4c\x5e\x37\xed\x76\x0b\x3f\x27\xdb\x8b\x0e\x38\x8b\x5d\xb0\xd2\xc1\x68\xee\xf2\xd7\xb7\x46\x55\x35\xbe\x34\xfd\x80\xd3\x81\x0e\xc3\x31\x4b\xb5\x5b\xe8\xfd\x61\xc6\xb3\x38\x19\x74\xef\xc6\xd4\x26\xae\x45\x08\xc2\xe5\xd9\xdf\xaf\xc6\x59\xa1\xe9\x07\xd0\x11\x58\x25\xe7\xee\x7b\x55\xb3\xfd\x40\x47\x18\xa1\xb3\xf1\x76\xaf\x15\x14\xb3\x87\x88\xc3\x88\x3e\x1e\x96\x7a\xa5\x2a\xd6\xff\x1d\x27\x64\x01\xee\xc0\xe4\x73\xdc\x80\x8e\x95\x15\x68\xfe\xc8\x4b\x5d\x7d\x84\xd6\xf2\xe8\xec\x6c\xaa\x5d\xf7\x19\x1f\x9d\x20\xa3\xe9\xed\xf9\x86\xd6\x55\xd3\xe4\xb2\xc0\xeb\xb7\x6a\x10\x17\xe7\x3a\x55\x48\xb9\x69\x22\xe9\xda\x7c\xa5\x0b\xf2\xff\x94\x4e\xd1\x59\x1a\x13\xee\x54\x43\x0b\xb7\x55\xbd\xc1\x4b\x36\xb4\xe6\xb1\xa2\x00\xb9\xc6\x62\x51\xb4\x24\x87\x37\x9b\x12\x9a\x67\x82\xac\x04\xc7\xd7\x70\xca\x6c\xce\x35\x37\x8c\xfc\x9e\xc5\xd5\xd3\x9f\xfe\x3f\x11\x24\x3d\x23\x6b\xd3\x60\xbb\xd2\xdb\x3a\x3f\x10\xf9\x23\x7a\xce\xb7\xe9\xb3\x88\x40\x12\x0c\xf3\xda\x03\x9b\xc6\x36\xb4\x16\x91\xd5\x57\x2a\x8f\x7b\xc2\xd4\xf5\x9d\x28\x52\x01\x89\x77\xcb\xc6\xce\x48\x77\x04\xbd\xde\x4d\x0e\xc5\xe2\xf9\x4f\x3b\x4f\xc7\x51\x34\x2d\xb4\xd2\x43\x94\x79\x59\xab\x30\xf8\x65\x45\xa3\x86\x54\x92\x43\xe6\x60\xca\xfe\xad\x66\x3d\x07\x59\x4c\x75\x1c\x76\x2a\xe5\x7b\xbc\xcf\xcb\xbe\xcf\x20\x4b\x0c\xcc\x24\xd5\x09\x4a\x52\xcf\xaf\xc2\x93\xc0\x95\xa3\x2c\x8a\xa2\x67\x41\x9d\x3e\x90\x4c\xe2\xac\xaf\x9f\x23\x3b\xf4\x71\xc8\x76\x68\x29\x02\x88\x49\x34\x44\xbf\xe2\x08\x9e\xa3\x55\x64\x0d\xfe\x5e\x8b\xd6\x5a\x57\x5e\xb1\x80\x6b\x65\xb4\x2f\x77\xd9\xe4\xaf\x2e\x0a\x3e\xbb\x37\xb2\x84\xb6\xdf\x07\xf8\x9b\xa6\xf0\x08\xd6\xae\x31\xb6\x00\xb0\xc6\x96\x27\x1e\x0f\xce\x90\x38\x23\x5b\xca\x35\x66\x9c\x32\x46\xdf\xa1\xd4\x16\x47\xd6\x8e\xb4\x15\x2f\xe3\xf0\x35\x22\xa3\x0c\x8a\x8f\x8b\xd0\x18\x7d\x3a\x5e\xd8\x4f\xb5\x61\x22\xd4\x03\xd8\x65\x23\xc7\xba\xbf\x5c\x9b\x28\xa3\x64\xf0\x1d\x7c\xbc\x5f\x56\x18\xe5\xda\x64\x19\xe1\xe3\xb6\x35\xfc\xc0\xa2\xc8\xcb\xd7\xdb\x1a\xf1\x9f\xc9\x3d\x71\x0c\xb2\x30\x76\xf2\x7d\x83\x78\x33\xc7\x80\x33\xe2\xae\x22\xe7\x68\x31\x25\xd3\xfb\x72\x77\xc3\x40\x26\x81\x57\x2f\x22\x87\xe6\x14\xcc\x89\x81\x04\xda\xec\xc1\x98\x06\xcb\xd3\x02\x97\x2f\x97\x15\x64\x89\xfd\x3e\xf4\x38\x0e\x7e\xfd\x2b\x6d\x94\xcb\xc1\xcc\x3e\x6c\x82\x0c\x2c\x75\xc6\xd5\xb1\x2e\x27\xb4\x11\xd3\xdb\x47\xa9\x0d\x9f\xee\xec\x20\xbf\xa0\xaa\xce\x31\xe2\x31\x59\x97\x16\x84\xb1\xb3\xb9\x19\x4f\x92\xe7\x2d\x2d\x77\xe6\xf4\x44\x15\x13\x7c\x90\x92\x18\xf7\xe3\xb2\xc2\xc9\x8c\xc4\x38\x89\xd1\x6d\xdd\x37\x47\xea\x05\xff\xf5\xe2\x2c\x20\x93\xd7\x2b\x04\xdb\x10\x8c\xe5\xa9\xe9\xf6\xca\xc6\xfe\x6c\x60\x4f\xda\xf0\x2b\xed\xb9\x36\x30\x89\x24\x4d\x22\x67\x10\xfe\xfe\xd7\xf5\xa2\xd4\x9e\xa6\x60\x66\xe8\x7f\x15\x8c\xc0\xc4\x11\xf4\x7c\x20\xbe\x17\xe3\x7c\x36\x26\x98\x58\xd2\x93\xb2\xfa\x30\x05\xbc\x4f\x99\x25\x2e\xdc\xe3\xa4\xec\x01\xd3\x34\x41\x33\x82\x8a\x91\x19\x5c\xd5\x53\xd5\x47\x8e\x29\x47\x9f\xde\xbe\x87\x86\xc8\x23\x3d\xed\x3d\xc7\x54\x58\x0e\xcf\xc1\xf8\xb9\x10\x02\xc0\x2c\x50\xbe\x6a\x66\xdd\xf5\xc5\x39\xe6\xa2\xe9\xd7\xe1\x59\x96\xfa\x3a\x9b\x4f\x28\xdb\x9b\xba\xca\xdb\xa5\xaa\xca\x6a\x9f\xff\xdf\x11\x77\xdd\x62\xdd\xe2\x4e\xf8\x67\xe1\x52\x91\xa5\xd1\x33\x29\x0e\x19\x0b\xe4\xa8\x99\xf4\x7b\x4b\xaf\x13\x09\x5f\xa5\xc9\x51\xa4\x4a\xba\xe8\xfa\x8d\x65\x6e\x5c\x0c\x52\x54\xb3\xf9\x28\xa4\x31\x7c\x48\x3a\x0c\x1c\x08\x7e\x77\x43\x08\x8c\x1a\x2b\x04\x5d\xf7\xd5\xa4\x27\x11\x5f\x84\xd4\x66\x7a\xc8\x1e\x24\xe6\x07\x5a\x8a\xcf\x11\x16\x20\x88\x90\x4c\x84\xdd\x6e\xd7\x60\xbb\x25\x59\xef\xf9\xe5\x20\xa2\xb5\x7b\x57\x56\xdb\xb7\xba\xfa\x98\x0c\x97\xf1\x88\x50\x31\x23\x3a\x57\x47\x14\x39\x20\xf8\xe6\x6b\xc2\xf9\x0e\x53\x32\xa3\x4f\xfc\x6d\xd8\x77\x50\x27\x8a\x48\x09\x1f\xae\x3d\x3d\x03\x9a\x30\xa5\xc0\xc6\xbf\x96\x93\xc0\x32\x9a\x38\xb4\x6c\x48\x14\x85\xd9\x7c\xc0\x61\x64\x84\xa3\x49\x0d\xd5\xfd\x74\x4e\xd9\x1c\x5a\x88\x06\x2c\xf1\xb6\xab\x16\x79\x46\x62\x63\x3d\x3f\x10\x8d\x41\x2a\x5f\x79\x25\xdc\xe5\xfa\x6a\xeb\x2d\x66\x13\x44\x49\x62\x85\xd5\xe9\x2a\x33\x10\x9c\x09\x74\x4c\xc5\x16\x2d\xa9\xa3\xf9\x69\xd2\x4c\xcc\x6a\x13\x86\x16\x21\x66\xf1\xea\xd5\x0f\xd4\x8e\xcc\xbd\xbb\xd9\xe2\x70\x28\x3c\x15\xff\xa4\xeb\x4c\xc8\x13\x2a\x98\x34\x0d\xe5\x47\x69\x55\x7c\x3c\xee\x1d\x67\x8e\x6f\xa4\x63\xca\xfe\xe6\xbd\x58\xc2\x6c\x5b\x30\x91\x23\x01\x74\x69\x94\x63\x67\x91\xcf\xb8\xd4\xb8\x89\x32\x06\x74\x99\xc6\x63\x02\xfd\x0d\x22\x94\xe4\x89\x5d\xd1\x13\xf4\x74\x32\x26\x56\x99\x0f\xd1\x39\x65\x4f\x8b\x69\xec\x76\x4a\xc4\xae\x9f\x9a\xe1\x29\x63\x6d\xd9\x29\xda\xb7\x1a\x9b\xb7\xaa\xd0\xd3\x0e\x4a\x54\x46\x10\x70\xca\xf3\x2e\xb7\x77\xcf\x90\x0f\x61\x36\x93\xa6\xd2\xd3\x12\x2c\x8a\xe2\x0e\x61\x38\xc2\xb5\xaf\xc6\x9f\x14\x0c\x35\xbd\x25\x7a\x7e\x17\x31\x29\xc4\x1c\x7a\x3d\x8c\x71\xe8\xd1\x64\x86\x11\x14\x77\xa1\xa0\xd4\x9f\xbf\xde\xeb\x0d\x8f\x22\x4a\x63\x7b\xca\xb3\x09\x96\xc5\x88\x00\x2d\x0d\x40\x67\xb5\xc0\x3e\xd7\x61\x7f\x04\x12\xb2\x88\xf7\xf0\x73\x5d\x5b\x64\xec\xb0\x44\xac\xb1\xf6\x79\x64\xdf\x1e\x58\x46\x7d\x88\x4d\xf7\xf1\x4e\xc4\xc9\xb9\x91\xa1\x20\x34\xc6\xae\xb7\x94\x2e\x92\xf9\x8f\x4e\xd2\x82\xa2\xb0\xbe\xd4\xa8\xdf\xf2\x2f\x21\xe4\xe8\xff\x30\x98\xe6\x2b\x8d\x34\x21\x07\x07\x30\x81\xc2\x7e\x05\x5b\x2c\x3e\x4d\x30\x18\x85\x96\xa1\xe8\xbf\x97\x2f\x23\xc5\x0d\x6e\x74\x16\x92\x39\x6f\x43\xf3\xcf\xa5\x26\x12\x5f\x7f\x50\x59\xd5\x9b\x06\x0c\x5a\x7d\xe0\xeb\x02\x61\x88\x67\x19\x4c\x62\x32\x7d\x36\xdb\xc5\x76\xb9\xbb\x5a\x6e\x77\xcb\xc7\xc5\xd5\xfd\xf2\xa6\x6f\x20\x80\x8a\x18\x1c\x84\x93\xcd\xbe\x12\x2a\x4b\x21\x5c\x63\x5e\x36\x23\x98\x8a\x31\xb1\xe0\x30\xac\xe1\x96\xd7\x8f\x00\x9e\xbe\x01\xa6\xf4\x3e\x7f\x57\xf9\x7c\xfe\x1a\xc3\x69\xe6\x3c\x56\xef\xc7\xeb\xaa\x6c\x8e\x7b\x8a\x94\xaf\x0b\x28\xcf\xee\x2e\x22\x08\x23\xab\xba\x63\xa9\x2c\x9c\x51\xb3\xe9\x97\x1b\x11\x84\x32\x10\x16\x80\xae\x4b\xfc\x38\x45\x16\x88\x20\xd4\x56\x7a\xc3\x22\xb4\x77\x6f\x58\x1c\x66\x6a\x69\x22\x88\x22\x16\x59\xfe\x1e\x04\xab\xd3\x4f\xd1\x6b\xef\x75\x89\x20\xe2\xa1\xee\x16\xe8\x9b\xdb\xb1\x0c\x96\x08\x92\x04\xe9\x7f\xeb\x4e\x3d\xe2\x09\xf4\xfd\xac\x21\x78\xf1\xe0\xf9\x4e\x48\x24\xd2\xb7\x5c\xd5\x55\x79\x07\x23\x47\x62\xd6\x2e\x0d\x75\xd6\x93\x60\x8f\x49\x30\x67\x99\x55\x11\x64\x22\x24\x84\xd5\xf3\x1f\xcf\xc3\x90\x13\x41\x86\xd6\x4e\x39\x89\x3c\x4e\xcf\xe6\x71\x08\x6c\x9a\x11\x61\xe3\x8c\x88\x08\xb8\x91\x96\xc9\x81\xed\x9c\xdd\xe4\x6f\x21\x82\x30\xb0\x65\xd1\x56\x06\x77\xf6\xb1\x44\xa8\x03\x1c\x2a\xc4\x66\x07\x41\xa1\x2d\x1c\xd9\x1c\xe0\xa3\xa4\xec\xba\xc7\x65\x9c\xed\x10\xa1\x14\x25\x90\x0b\x34\x2d\x4b\x67\x6f\x21\x4c\x1a\xf1\x11\x29\xde\x57\xce\x80\x08\x40\x18\x08\x7a\x08\xe1\x2b\x76\xdd\xbb\x68\xdb\xaf\x53\x99\x22\x90\xcc\x6a\xe3\x75\x3e\xb9\x8d\xdc\x41\xf9\xee\xfb\x42\x66\xda\x38\x48\xc1\x88\x5f\xd8\xa1\x32\xc7\x8b\x84\x08\x54\x68\x7d\xb8\x43\x8d\x0f\x73\x88\xd4\x70\x37\x15\x09\x6e\x3c\xff\x67\x7e\x58\xe9\x66\xd8\xd1\x44\xa0\x38\x52\x11\x99\xae\x1e\x06\x99\xa1\xb3\x8b\xa0\x08\x94\xb4\x84\x7a\x0f\x79\xfb\x8e\x9f\xe3\x31\xa2\xa4\x5d\x37\x3a\x43\xb7\x0f\x1b\xf8\x63\x26\x26\x98\xcd\x01\x3e\x5d\xf6\xe7\x1c\xd6\x57\x04\x3a\x8c\x09\x7f\x45\x03\xf5\xea\x68\x7a\x3b\xba\x3b\x94\x90\x39\xeb\x41\x0e\x03\x7c\xcc\x35\x40\xa6\x28\xa5\xbc\x38\xb6\xd5\xad\x87\x38\x4f\x81\x90\x22\xe8\xec\x58\x1c\xa4\xcd\x6e\x76\x0f\x8b\xe7\xdf\x97\xdb\xd5\xe3\xb7\xdd\xb7\xe7\xa7\x97\xb5\xbf\x98\x41\x2b\x28\xf9\xea\x8b\x7a\xcf\x89\x10\x0b\x16\x64\x09\xb9\xbe\x4d\x55\xe8\xab\x4f\x47\x29\xe0\xd7\x06\x16\x70\x6b\x35\xfb\x4d\xa6\x47\x49\x3e\xf4\xa5\x61\x82\x05\x10\x79\xc2\x6d\x4f\xd2\x78\xa2\xff\x26\x58\x60\x6c\xbd\xf9\x7d\xf5\x7a\x95\xeb\x07\xd0\x5f\x0b\x26\x0a\xc6\x22\xa9\x2c\xb0\xb3\x1d\xd3\x0a\x0b\xc6\x62\x4d\x39\xc9\x0f\xc2\xd8\xae\xab\xaa\xd8\x0e\xca\x28\x82\x31\x11\x93\xff\xf5\xf8\xb4\xdd\x2d\x5e\x6e\x56\x5b\xbf\x31\x74\x87\x78\x88\x03\xb7\xfc\x93\x71\x91\xfd\xc9\x27\x64\x4c\x09\x8a\xf6\x6a\x68\xde\xbc\xa3\x23\x58\x1c\x49\x5a\x0e\xab\xf2\x03\x6b\xe3\x43\xb7\x82\xc5\x59\xe2\x21\x38\x84\xa0\xfc\xfd\xaf\xeb\xd9\xf5\x62\xae\xa8\x1c\xc5\x7e\x75\x5a\xc7\xaf\xaa\xea\xfd\xfc\x4a\xc7\x62\x63\x45\x0e\x0f\x55\xad\xaa\x19\x8c\x4e\xb0\x24\x0a\x29\xd2\x39\x68\x06\xde\xe7\xcd\xb8\x22\x6f\x7a\xb1\x04\x04\xb3\xea\x47\x96\x08\x10\xad\x04\x8f\x7f\xf6\xc4\x68\x1b\xb5\x3c\xca\x6d\x35\x46\x52\xcd\x3e\x45\xca\x2c\x85\xc3\x55\xb7\xda\xcd\x0e\x45\x36\x56\x01\x5a\xf7\xb0\x35\xd4\x73\x19\x41\x07\x3f\x13\x2c\xcd\x12\xe3\x9a\xef\xa0\x24\x01\xfb\x33\x88\x61\xc1\x52\xce\x08\xb9\xdb\x39\xfc\xc7\xc3\x4b\x83\xf5\x09\x28\x6e\xb8\xa6\x09\x5c\xdd\x39\xaa\xf7\x5d\x5e\x3a\x3d\xf8\x6a\xde\x77\x99\x61\xa9\x0f\x78\x57\x55\xa1\xab\x8f\x72\xa0\x60\x8e\x83\xbe\x55\x4a\x45\x16\x43\xca\x70\x46\xc9\x29\x18\x8f\x23\x5a\xf9\xcc\xb1\xdc\x35\x50\x6a\x59\xfd\x9c\x3d\x3e\x17\x8a\x34\x7d\x16\xdb\xed\x78\x86\x33\x11\x73\xa2\x0d\x27\xa8\x4a\xae\xaa\xdd\xb0\xdd\x33\x11\x8b\x34\xee\x89\x9a\xe7\x45\xc9\x82\x09\xa3\x08\x28\xfe\x0d\xaa\xd7\x23\xcc\x38\x6a\x04\x93\x2a\x25\xb0\xcd\xba\x46\x8d\x9d\xf7\x52\xf5\x9f\x59\x6a\xe6\xf8\x8b\xa8\x80\xcc\xbb\x91\x93\xab\xab\x40\x4b\x37\x89\xc9\x7a\xc5\x7d\x55\x9e\x5d\xe1\x98\x42\xe3\x14\x20\xa0\x6e\x37\x05\xec\xf7\x58\x53\x0c\x78\x36\x9d\xff\x27\xf9\xdf\xf9\x0a\xec\xe5\xd1\x04\xd3\x8c\x51\xca\xd1\x5a\x80\x2e\xff\x40\x0b\xeb\x98\x05\x40\x30\x1d\x1b\x4a\x98\xf9\x05\x08\xf5\x58\x06\x49\x30\x9d\x65\xa4\x0c\x63\x2b\x4d\x37\x58\x58\x5a\xe1\x13\x83\xf6\xfc\x5c\xc3\x34\xcb\x32\xc7\xa3\x37\x41\x3e\x4f\x7b\x1e\x21\x21\xf7\x59\x55\x65\xd3\xd6\x36\x1b\xbe\x1c\x3e\x9c\x09\x42\x82\xbf\xf6\xa1\xd7\xe7\xaa\xba\xa8\x9d\x30\x31\xa5\x05\x33\x51\x9a\x26\xe3\x15\xe9\x76\xce\x66\xd3\xb5\xc9\x28\xe6\x7b\x7d\xb7\xdc\x6c\x26\xc3\xc9\x24\x56\x5f\xe4\xe9\x79\xf5\x6d\xf5\xb8\xb8\xdf\xad\xd6\xb7\x9b\xdd\xdd\x62\x73\xd7\xb7\x50\x48\x0e\xfd\x76\x5f\x95\xf8\xb9\x25\xd9\x3a\x7f\x48\xdb\xa2\x84\xbc\x69\x8e\x78\x8d\xb5\x53\x89\xc3\x2f\xc2\xe5\x22\x0c\x82\x04\xc2\x9e\xbd\xcd\x52\x82\x8d\xf1\x68\x22\x64\x91\x05\x33\xba\xf0\xd7\x19\x52\x17\x11\xb2\xd8\x92\x1b\xef\x3f\x3b\x2f\x24\x3f\x92\x8c\x61\x1f\x7c\x13\x21\x4b\x75\x18\x0c\xb1\xe6\xa1\x3c\x4b\x84\x4c\x22\xc1\x8a\xa8\x48\x6a\x47\x3a\x4b\x8e\xfd\x6d\xc7\xfa\x36\x98\x52\xf5\xd0\xca\x3c\x54\xfa\x58\x38\x7d\xce\x33\x2c\xc3\x22\x0c\x23\xa9\xe5\x5c\x76\xcd\xd2\x12\x7f\xa1\xba\x26\xc2\xc8\x30\xaa\xa0\xd8\x60\xbb\xc3\xf6\x6d\xf7\x9a\x9b\x29\x65\x88\x08\xe3\x98\x51\xb2\xce\x2d\x47\xb8\x28\xf5\x37\x24\xe5\x2d\xdc\xdf\xe2\xd7\x99\x72\x11\xc6\x89\xa5\xc9\xa3\x59\x46\xf1\x9a\xd9\x71\x0c\x93\x78\x28\x6d\xa8\xd1\xe6\x25\x9a\x16\xf6\x87\x79\x53\x63\xa5\x9e\x77\x45\xa5\xde\x5d\xd4\x74\x3c\x8c\xc2\x84\x87\x99\x05\x9a\x20\x4c\x59\x9d\x45\x98\x18\x43\xd5\x83\xfb\x4a\xe7\xe6\xb3\xd7\xe4\xda\xc2\xcf\x53\xa5\xbc\xf3\x1b\x79\x98\x06\x96\xca\xf4\x70\x94\xc3\xac\x09\xd3\x28\xa5\x7d\xd3\xa5\x74\xf2\x06\x4f\x02\xd0\x5f\x5f\x36\x8b\x0d\xe5\x04\xe5\xf1\xf3\xea\x69\xfb\xf3\x02\x2f\xcd\xf9\xde\xe5\x3c\x21\xc6\xcb\xfa\x58\x36\x4f\xc7\xf6\xc9\xf4\xc5\x52\x9d\xf7\xd0\xf3\xb5\x5e\x0c\x89\x4f\x07\x83\x00\x0b\xb0\x18\xb6\x8c\x8b\xec\x4d\x22\x14\x5a\x05\x82\x44\x0b\x7b\xc2\x67\x67\x55\xf5\x4f\x00\x21\xcf\xc4\xa0\xd4\x33\x63\xfa\x9b\xdd\x1c\xb2\x38\x10\x43\xe4\xeb\xea\xf8\x79\x3d\x26\xbc\x9a\x35\x16\x56\xae\x09\xda\x16\xba\x79\x45\x38\x9c\x47\xfc\xa0\x84\xaf\xb3\x36\x27\x58\xc4\x13\x79\xbc\xe9\xf5\x64\x26\xa8\x3e\xf6\x0e\x9a\xb7\x67\xeb\x0d\xe9\xb3\x45\x44\x22\x54\x1c\xc0\xe7\xe3\xe1\xf3\xe9\x38\xd1\x92\x10\xa1\x82\x90\x92\x82\xff\xc2\xea\x00\xb5\xfe\xec\xff\x97\x92\xd0\x10\x37\x8b\xbf\x36\xcb\xeb\xa7\x47\x2f\x7d\x2d\x42\xa5\xad\xb2\xe3\x2b\xb6\xb7\x55\xdd\xbe\x11\x09\xc4\xf3\x50\xf5\xec\xdb\xe9\xd4\x72\x39\xfb\x2d\xe4\xae\x6a\xb1\xb8\xd0\x99\x5a\x58\xe6\x22\x28\x8a\x4d\x6f\x70\x86\x28\x33\xf2\xb5\xaa\x03\x96\x13\xae\x22\x11\x9a\xd8\x6a\x86\x4c\xab\x82\xa6\x17\x35\xa8\x28\x29\x92\x37\x04\x11\x26\x3c\xea\xa4\x45\x14\x28\xe3\x94\xda\xfc\xf4\x88\x02\x03\x54\x41\xbc\xbe\x5f\x6c\x6f\x9f\x9e\x1f\x76\xb7\x4b\x22\xa0\x5d\xfa\x06\x2c\xb0\x32\x9a\x7b\x2c\x10\x1d\x23\xc0\xd5\xe7\xe6\x28\xdb\xcf\x03\x9e\x8a\x44\xd3\x09\x96\x26\xb8\x3a\xd6\x25\x10\x59\xb9\x97\xae\xf0\x2d\x50\x52\x64\x8e\x60\xc1\xcd\x5b\x7e\xf0\x66\x5c\x7d\x2a\xdd\xef\x4e\x09\x43\x0c\x92\x89\x7a\xd1\xf9\x91\x17\x85\x51\x60\x11\xf3\xdd\x7a\xb6\xad\x61\x20\x89\x16\x51\x98\xa0\xec\xfa\xf7\x3f\x58\x57\x2f\xab\xbe\x73\xa3\x10\x2d\xd6\x85\x22\x10\xdd\x10\x5d\x3b\x9a\xfc\x73\x4b\x79\x14\x65\xd2\x96\xc6\x60\xdd\x54\x9d\x93\xdf\xd8\x5c\x7e\xd5\xf4\x17\x8c\x94\xe5\xc0\xec\x16\x4d\x8d\x70\x73\xe2\xa5\x44\x11\x5a\x06\x3a\x42\xb4\xd9\x4f\xbd\x9b\x61\xb8\x44\x94\x84\x56\x73\xe4\xdb\xd3\xbd\xbf\x72\x2a\x38\x73\x55\xb2\x8f\xc7\xbd\x83\x1f\xbf\x34\xa8\x6f\xab\x7a\xe6\x78\xcd\x3a\x26\x55\x61\x06\x7e\x18\x5b\xd9\xa7\x89\xb5\x19\xa5\x0a\x53\x4b\xc5\xe6\x92\x16\x4f\xe5\x6b\x35\xea\xbd\x54\x47\x89\xe5\x76\x2f\x8a\x7b\x54\x55\xd9\x8e\xb0\x2b\x22\xca\x42\xd0\x23\x6d\xd9\x7c\x6e\x16\x47\x59\xa8\x43\x5f\xe9\x71\x5f\xf5\x97\xcd\x32\xed\x62\x4b\x24\x30\x69\x91\xf1\x43\x1a\x5f\x44\x3c\x16\xc6\xc9\x34\x51\x90\x0c\xc6\x19\x1d\xdf\x26\xcb\x6c\xcd\x58\xfb\xd6\x5d\xc0\x67\xc1\xfc\x51\x6e\xb8\x43\xef\x2d\x6a\x99\xb7\xf5\x69\x60\x5c\x44\x22\x88\x32\x67\x0b\x50\x50\x7c\x66\x4b\x44\x20\x58\xea\xc2\xc2\x14\x3a\x19\xf2\xda\x7e\x27\x8e\x24\x63\x94\x21\xb9\xca\xdb\x22\x7f\xef\x7b\x46\xa6\x9c\x2c\x15\xb3\x39\xca\xf3\x96\x5f\x24\x31\x4e\x52\x4f\x04\x34\x26\x12\x74\xc7\x55\x68\x03\xaa\x9e\xa6\x67\x54\xf5\x46\x07\x29\x68\xde\x7c\xc0\xe1\xae\x6a\xaf\xab\xa2\x9f\xdd\x2a\xb2\x9c\xc3\x83\xc2\x06\xf5\xef\x80\x57\xf7\xed\x52\x2b\x78\x4d\xb5\x63\x67\x97\xe0\x48\x27\x41\xcf\xb7\x4b\xde\xec\xa3\xa7\x87\x11\x91\xce\xd2\x34\xea\x91\x7f\xcb\xba\xbe\xae\xf6\x12\x66\x31\xaf\x08\x51\x58\x64\xab\xc9\xbd\xf9\x7c\x3c\x01\x74\x8b\xc8\x84\x40\xdf\xb2\x45\xb0\x80\xe6\x66\xd5\x59\x8e\x37\xa3\x37\x36\x91\x15\x72\xa5\x64\x60\xbb\x87\xf9\xb7\x34\x31\xa7\x7a\x1a\x93\xbb\xe0\x46\x1a\xcf\xa8\xa6\x44\x64\x12\x4c\xdd\x7c\xd8\x11\xdc\x62\x77\x6c\xb0\xde\xd5\xa8\xa0\x99\x99\x58\x91\x11\x40\xdb\x78\xf3\x56\x7d\xdc\xe0\xfe\x58\xd7\xf0\xea\xb4\xba\xfb\xe9\x63\x84\x89\x6d\x92\x53\x55\xb5\xb6\xda\x15\x13\x0b\x63\x24\x21\xed\x4f\x31\x0a\xa2\xa1\x1c\xeb\x19\xfd\xa4\x88\x03\x63\x6c\x25\x37\xb9\x1b\x57\x38\x7b\xa0\x98\x25\x29\xf9\x70\xf2\xf8\x49\x18\x50\x8f\x8a\xed\x1e\xf0\xfc\xbe\x18\x87\x71\x46\xfb\x22\x65\xf9\xfe\xa6\x5d\xf9\xf0\x2f\x0f\x2e\x13\x71\x14\xa2\xd7\xf4\x72\x0f\xdd\xad\xdd\x93\xd8\x54\x1c\xc5\x48\x21\xde\xbc\x6c\xb0\xa6\x85\xf2\x4b\x9a\x34\x11\x47\x89\xa2\x91\xb9\x05\x0d\x03\x9b\xc7\x9a\xaa\x60\x06\x3a\x1b\x11\x47\x46\x27\xfd\xee\x66\x3f\xb7\x05\xe8\x7f\x1d\xba\xe9\x2c\x5f\xaa\x05\xba\x79\xfa\xbe\xdb\xbc\x3c\xfa\xcb\xc5\x51\x1a\x99\xde\xe9\x5b\x14\xc5\x0d\x1e\xb0\xd4\x58\xaa\xbc\x37\x7e\xe2\x18\x33\x4a\xf3\x59\x8b\xdc\xd6\x3f\x91\xe8\x67\x5e\x9e\x94\x35\xbb\x53\x92\x2c\xe6\xd1\x28\xad\xd1\x87\x43\xc2\x09\xcc\x71\xf8\xd7\x9f\x07\x49\x66\x99\xc1\x4b\x4d\x5b\xf3\xb4\x12\x6e\xb2\xbd\xc4\x29\x20\x19\x01\xee\xb9\xe0\xd8\x50\x45\x8b\xe9\x7a\x7b\x88\x44\xc6\x82\xc5\xe4\xac\xfd\x1d\x3a\x4e\x85\xdf\xfa\x03\x82\x22\xcb\xf5\x19\xd0\xfe\xd4\x39\xf4\x27\x48\x46\x50\xf2\xfd\xb1\xcd\x37\x58\xea\xe5\xf6\x8e\x88\x8a\x72\xd3\xf9\xc1\x65\x6b\xeb\x42\x2f\x1a\x9a\x31\xa4\x09\xeb\xf9\x6d\x2c\x4d\x2a\xc9\xf1\x77\x43\xf7\x5c\xa1\xa2\x88\xc1\x48\x13\xba\xcd\xfc\x2a\x7f\x5d\xd7\xd5\xbe\x1a\x51\xb2\x8b\x58\x4a\x6b\xbb\xbe\xbe\xaa\xd9\x9e\x18\x2b\x1d\x52\x29\xc1\xd5\xe2\x7a\xf1\x5b\xff\x9f\x09\x74\xaf\x0f\x66\xce\xdd\x52\xa1\x96\x7c\x10\xee\xa0\x6a\xff\x49\x9d\xcf\x7f\x8d\xfa\x56\x19\xc1\x5c\x00\xe7\xca\x8a\x5d\x9d\xf2\xbd\x8b\x18\xe3\x8c\x00\xc0\xb7\x45\x3e\x26\xdd\x15\xb1\x89\xb4\x07\x8b\xbf\x1c\x4e\x89\x3b\x44\x6c\x62\x5b\xee\x77\xb0\x1a\x16\xfd\xc4\xa0\x3c\x6e\x1f\x73\x88\x0d\xc4\xa1\x97\x1b\xba\x7a\xf9\x6b\xf5\x38\xa6\x4e\x15\x49\xc0\x40\x0f\xa5\x4b\x0e\xbe\xfb\x55\x3d\xbe\x48\x98\x93\xd9\x5f\x57\xdf\x1f\xee\x89\x9d\xcd\xdb\xbf\x09\x4b\x25\x64\x23\x85\x20\x67\x65\xd9\xa4\xe9\xcd\xd1\x96\xee\x8f\x6a\x33\xbb\x33\x14\x89\x4d\x4a\x6c\x1f\x48\xb4\xe4\xd8\xe3\xd9\xb9\x6f\x22\x14\xad\x9b\xf7\x8b\xdb\xd5\xe3\xe2\x3e\xf3\xa7\x86\x71\x34\xd1\x7f\x99\xc3\x55\xce\x3a\x53\x49\xc4\x02\xe9\x8a\x41\xbd\xc1\xf8\x0c\x13\x1f\x68\x14\xbf\x4e\x22\x08\xb9\xdb\x52\xbf\x61\x89\x8d\x67\x93\x99\xf6\x48\x84\x48\xce\xf3\xca\x46\xf3\xd6\xc7\xce\x4b\xb2\xea\xf3\xb3\x9b\x1b\x26\x5c\x85\xd3\x92\xea\xb0\x26\x4b\x63\x12\xa7\x19\x8b\x7c\xbd\x6e\xb7\xb3\xde\x41\xf1\x23\x2f\xfb\xed\x21\x49\x74\xac\xd0\xef\xf0\xbd\xd1\x38\xbb\x49\x1a\x08\xee\xf6\xd8\x6b\x38\xe4\x2d\x14\xf3\x06\x61\x4a\x21\x70\x2b\x16\x4d\xd0\xf5\xc5\x50\x92\x2f\x92\x54\x20\x5d\xc0\x99\x94\xeb\xa3\x5c\x5d\x3f\x8d\x56\xda\x24\x4b\x0c\xed\x7a\xcd\xf1\xd0\x0d\x96\x7d\x1f\x5d\x4f\xb2\x54\xf1\xb0\xa7\x09\x2d\x96\x3f\x0f\x13\x5b\xc5\x7f\xd2\x2c\xcb\x24\x0e\x58\x1e\x32\x27\x1e\xab\x91\xf2\xff\xf4\x81\x33\x1e\xe0\x48\x09\xbe\xaf\xf7\x74\x9b\x3e\xbf\x14\x38\x3b\x51\xe7\x9b\x32\x90\x88\x24\x53\x40\x7b\xd1\xd5\xd3\xe3\xcb\x66\xfb\xfd\x69\xa4\x80\x2d\x92\x4c\x73\xca\xbc\x12\xf3\x5a\x3f\xbd\x7a\x61\xdf\x79\x64\x37\xc9\x34\x10\xf6\x98\xba\xf5\x06\x9b\xb6\xae\xfa\x89\x91\x19\x34\x71\x5f\x49\x37\x00\xaf\xa7\xe3\x88\x87\x29\x19\x50\x05\x34\xed\xd5\x51\xbd\xf7\x4e\x5d\xc2\x85\xcd\x9d\xb6\x35\x68\xc2\x75\xdd\x9d\x49\x3e\x5d\x54\x70\x38\xdb\x2d\xee\xca\x22\xb4\xee\x62\x5e\x76\x8e\x4b\x83\x8e\x72\x85\x0c\xd3\xab\xcf\xa7\xb2\xff\xe8\xdd\x5a\x65\x6c\xb5\xc3\xdb\xa5\x88\xa5\x6f\x9a\x32\xd9\x2f\xe6\x84\x1e\x3f\xe5\xfe\x12\x09\x30\xa5\x42\x4f\x07\xf8\x31\xce\x8a\x24\x10\x0b\xaa\xe7\x79\x29\xd5\xa8\xac\x49\x24\x90\x84\xcc\xc5\x77\xfa\xe7\x02\x2e\xa3\xb8\xdf\xa7\x4f\xa2\x3c\x73\x20\x99\x48\x64\x14\x12\xa1\x9d\x65\x2d\xde\x56\x87\xb3\xeb\x6b\x22\x63\xab\x1a\x74\x80\xbc\xbf\xbf\x0a\x99\x50\x63\x49\x40\x92\xec\xfe\x7a\xb9\x54\x61\xa2\x1d\x5a\x7e\x50\x55\x9e\x75\x85\x8a\x84\x8f\x0e\x3c\x1e\xf7\x4e\xb3\xa1\xbf\x69\x8a\x7e\x27\xb8\xb2\xdd\xbe\x29\x7a\xfa\x93\xf3\x91\xda\x44\x07\xd8\xcb\x84\x2c\x4a\x6d\xf1\x80\x53\x88\xe8\x38\xff\xed\xcf\x0a\x35\x79\x27\x57\x55\x6b\x77\x82\x53\xef\x3f\xd1\x71\x46\x4e\x86\x95\x24\xde\x38\xd1\x85\xc5\xc3\x40\xfd\x24\x12\x0d\xce\x12\xab\xf3\x09\x2d\x82\x48\x30\x48\x82\x01\x56\x56\xe3\x57\x6a\x5d\xfe\x14\x16\x7b\x71\x7c\xf2\x27\x3b\x93\x7f\x43\x14\xf0\xb3\x0f\x86\x51\xd4\x67\x4c\x8e\x6d\x65\xcc\x09\xd6\x5b\x24\x26\x55\x94\x2d\x2b\xe0\x58\xaa\xb7\x81\x99\x45\x24\x06\x53\x32\x40\x7e\x74\x86\xca\xc2\x4f\xf3\xfb\x97\x29\x75\x88\x48\x03\x16\x50\xf9\x39\x55\x57\x3c\x5b\x77\xd3\x99\x99\xbe\x45\x14\x1a\x4b\x50\x7a\x6c\xa6\x1a\xd9\x83\x75\x90\x06\x09\x52\x30\xdf\x6f\x5e\x67\x05\xc7\x44\xca\x82\x30\x71\x64\xa7\x7d\x01\x86\x48\x59\x14\x06\xe3\x3a\xa6\x2f\xe2\x39\x69\xc4\x6d\x45\xc4\x6b\x8d\xde\x01\xe8\x8f\xd8\x72\xb3\x6f\xd8\x6e\xdf\xf0\xfb\x5b\xe5\x2f\x1f\x43\x4a\x32\x2a\x96\x6b\x10\xea\xf6\xc4\x12\x4a\x63\xb4\xdc\xc1\x56\x1d\xc8\xee\x13\xfd\x34\x4d\x93\x98\xdb\xfd\x01\x8c\x7d\xb6\xa1\x78\xae\xfb\xe0\x97\x81\x7a\xd3\xae\x4e\x92\xc4\x67\xd1\x37\xf9\x6b\x89\xf5\x08\x65\x2f\xd2\xc4\x00\x45\x3e\xe9\x43\x34\x3b\x57\xfb\x3c\x3c\x44\xaa\x2d\x1b\xde\xb1\x9c\x6b\x46\x8a\x34\x45\x41\xd8\xb8\xf7\x46\x5d\x10\x81\x9c\x98\xd3\x69\xc6\x21\x71\xc2\xf1\x9f\xdd\x63\xdc\xd4\xf0\xe1\xef\xc3\x63\x11\xb8\x9a\x0b\xac\x21\xef\xff\x16\x40\xb9\x1e\xac\x5f\xfb\x8e\xe5\x3a\x25\xd8\xdc\x5f\xf7\xd7\xff\x0c\xae\x2d\x52\x8e\x29\x39\x18\xf6\xce\x5b\x78\xef\xac\xce\xd9\x90\x14\x02\x28\x0c\xf4\x23\xc7\x8f\x8d\xcf\x4c\xf5\x3e\x4a\x2a\x64\x68\xc9\x50\xbb\x7d\xac\x67\x27\xdd\xde\x6d\x2e\x9b\xe3\xa9\xd0\x16\x1d\xf2\x81\xf9\xa4\xe6\x42\xa4\x92\x31\xe9\x66\xd9\x77\x27\x26\x65\xa9\x9c\x28\x28\xe2\x03\xb3\xae\xf0\x5c\xa4\x32\x4b\x29\x53\xd7\x7d\xfd\xf5\x5b\x55\x0e\xd7\x01\x2b\x67\x73\x5f\xbd\x5a\xdf\x60\xb2\x80\xa5\xca\xc1\xe0\x3e\x30\xa7\xc5\x79\x3d\x2c\xb3\x7d\x0b\x99\x24\x3e\xd4\x42\x36\x25\x95\x09\x9e\x4e\xfa\x54\xa9\x98\xd2\x1f\xa4\x6a\x3b\xa2\x7b\x10\xa9\xe6\xb1\x4e\x5c\x94\xc0\xf1\x55\x35\x13\x6e\xa5\xd9\x3d\xb5\x34\x11\x73\x3e\x47\xb7\x78\x7c\xcb\x4d\x1b\x9e\xc7\x80\xa4\x18\xa5\x23\xb8\xd3\xaf\x3c\xb6\x14\xb5\x95\xe4\xeb\x21\xdc\xdd\xc2\xd1\x8d\xe9\x7a\x55\x36\x47\x63\x72\x95\x63\x49\x11\xf6\x66\xcc\xb7\xe3\x9f\xcc\x30\x85\x6e\x95\xbc\xa3\x72\xc4\xba\xc5\x49\x80\x27\x35\x71\x10\x78\x35\x92\xd7\xce\xa3\xbd\x30\xf0\x27\x33\x25\x0b\x82\x94\x46\x3e\xf1\xd3\x4d\xa0\xd6\x22\x0b\x32\x0b\x3f\x52\x8f\xb9\xc2\x6f\xc7\xcf\x95\xfe\xd9\x1f\x52\x42\x51\x91\xdc\x72\xf1\xe0\x69\xca\x3c\x06\xc4\xb7\x61\x41\x44\xc3\x36\x6f\x2c\x80\x68\x7a\x63\x16\xa2\x55\xc5\xb0\x8b\x8b\x1b\x85\x6b\xcb\x24\x74\x3e\xeb\x77\xbe\x12\xd5\x5f\x2f\xb2\x85\xf7\x77\xc7\x3d\x94\x5f\x2c\x98\x19\x8b\x0c\xb7\x1e\x11\xc2\xc1\xda\x6b\x3f\xf2\xa2\xe8\xb9\xdc\x44\x16\x46\xa0\x9d\x15\xfe\x80\xda\x25\x04\x67\x83\x2e\x0b\x63\x4d\xcb\x13\xf1\xa6\x3e\x95\xf3\xa3\x32\x20\x9a\x8f\xbc\xe9\x55\xce\xce\x03\x80\x45\x16\x05\x08\x2e\x4a\xb3\xd2\xd8\x67\x7e\xb2\x48\x70\xda\xe2\xdf\xaa\x63\x5d\x7c\xae\xfb\xca\xe7\xfe\x38\x46\xc4\xa1\x94\x37\x8b\xe2\xf0\x06\x2f\x87\x83\xcf\x34\x33\xd7\x22\x4e\x22\xa2\x71\x6c\x5f\xeb\x0d\xb6\xf7\x79\x1f\x5b\xcf\x62\xb0\x14\x68\xd7\x27\x34\x06\xd3\xbe\x4a\x02\xe4\xc9\xa8\x46\xcb\x69\x1f\xcc\x1a\xa5\x09\xed\x98\x3d\xac\xc3\x95\x88\xf8\xc3\x2a\xa5\xb8\xf9\xc6\x29\xe0\x8f\x3a\x62\xd8\x2f\xb3\x34\x48\x3d\x1d\x63\x37\xb8\x6f\x5c\x68\x60\xe4\x2e\x7a\x9f\x2d\xcb\xa4\xb5\x3e\xbb\x99\x44\x10\xf8\xae\x21\xcd\x88\x66\x61\x19\x78\x5c\x43\x1e\x00\x01\xc0\xf1\x07\x96\xed\x1c\x04\x72\x7e\x4f\xca\x38\x43\xcf\x51\xb1\xfc\x89\xfb\x43\x7b\x5e\xdb\x4a\x64\x3c\xd6\xf4\x5a\x54\xa9\x8d\xe5\x56\xcf\x07\x08\xe7\x21\xad\x3d\x16\xb1\x68\xe9\xdf\x55\xfb\xb4\x2f\xf3\xb1\x0f\xfc\x5f\x27\xfe\x70\xc6\x25\xa7\xf5\x1c\xa8\xc0\xe4\xb9\x7b\xfa\xe3\xfc\xe2\xc0\x4c\x62\x0b\xac\xc6\xaa\x7d\x22\x03\xa1\x49\x0a\xcd\x62\x94\xba\xd5\xe4\xe2\xb8\x93\x89\x76\xf8\x76\xaa\xeb\xda\x35\xd8\xee\xf3\xf2\xb9\x9a\x27\x77\x33\x15\x33\x32\x17\xd6\x2f\x57\xf7\xab\x6b\x4b\x81\xb4\xdb\xae\x1e\xbc\x23\x95\x29\xa1\xb4\xd3\x0c\xd8\xb4\xd5\x61\x94\xee\xca\x94\x14\x14\x7b\xbb\x2d\xba\xad\xe4\x06\x0b\xf8\x5c\x28\x85\x4d\x33\x2c\x7f\xb3\x7e\xd5\x0c\xa2\xb8\x27\xd6\x1a\x48\x68\xfc\xe1\xcc\xe2\x52\x72\x07\x51\x6e\x28\x8f\x8c\xb3\x00\x50\x66\x98\xd5\x2b\xf2\xe6\xd7\xb6\x1a\xbb\xb1\x99\x89\x83\xcc\x55\x34\x38\x6e\xc4\xd9\xe9\x02\x68\xfa\xee\x2d\xdf\xea\xb8\x8b\x79\x10\x49\xb2\x57\x09\x76\x7b\x66\xa5\xe7\x01\x58\xb4\x74\x73\x40\x95\x13\xb7\x3e\xbc\xd2\x12\x31\xb9\x07\x67\x2c\x49\x6c\x41\x4d\xbe\xc6\xfa\x66\xeb\x51\x12\x9c\xa5\x82\x82\x08\x75\xd7\x65\x69\x34\xfd\x1a\x9c\x29\x85\xdd\xa3\xef\xf6\x79\xd9\x92\x28\x83\x4b\x63\x9c\xfd\xca\x3c\x0c\x33\xea\xce\xef\xfd\xcb\xf3\x10\x34\x85\xce\xcb\xca\x87\x32\x67\x21\x4c\x1e\x85\x2a\x70\xae\x20\x19\x66\xfa\x7c\xb4\x9f\x47\x3a\x4b\xc2\x81\x0b\xde\x7b\xc3\x3c\x0e\x35\x01\xbd\x6c\x19\x6b\xb7\x33\x9e\xa6\xec\xce\x07\x6b\x79\x9c\x02\x65\x5e\xad\x30\xc3\x3c\xd9\x3c\x6b\x0b\x81\x03\xcc\xb4\xb7\xb8\xef\x15\x1b\x67\x7e\x3b\x8f\xa5\x8a\x1d\xfa\x73\x51\x23\x50\x74\xe1\xc2\x05\x4d\xec\xa3\x41\x57\x2f\xe7\x23\xe4\x3c\x36\x82\xbc\x4b\xb2\x8c\xef\xbd\xe0\xfa\x00\x9f\xf7\x7d\x90\x04\x91\x1e\xa9\xd1\x3b\xb9\xd9\xaf\xe0\x2c\x3c\x49\x85\x71\x2b\xa5\x2b\xcd\x28\xdb\xb1\x20\xc3\x60\x59\x9c\xb1\x61\x79\x02\xa0\xbc\x35\x7d\xa8\xca\xce\xd4\x79\x9c\x8d\x9d\x34\x4e\x28\xb2\x67\x10\xc7\xa6\x36\x4f\x55\x40\x35\xb5\xf9\xf8\xcf\x0c\x94\x2f\xb4\xbd\x86\x43\x73\x2c\x4e\x79\xb8\x04\xcf\x14\x27\x78\xbc\xa3\x2d\xb7\x54\x8a\x13\x4b\x8f\x73\x8c\x08\xc2\xb6\xcf\x5f\x6b\x68\x71\xc6\x71\xe6\x1a\x89\x48\xab\x5e\x23\xec\xf7\x71\x7a\x6e\x6a\xa1\x71\x21\x62\xe5\x34\x06\xae\x97\xdb\xb4\x7b\xa4\xab\x4f\xa7\x83\xd1\xdf\x52\x80\xa2\xed\xad\x5b\x60\x6e\xf2\xf9\xbd\x20\x16\x94\x9a\xdd\x05\x3f\x6f\xaa\x57\x54\x03\xe6\x96\x03\xa4\x34\x5b\x4a\xfc\x39\x95\x61\x7b\xa6\xd5\xa8\x6f\xa6\x52\xab\xa1\x40\xb4\xfb\x0e\x0f\x3a\xf9\x18\xa0\x13\xf2\xb4\xaf\x6f\x9f\x66\x2f\xa0\x82\x2c\x8a\x9c\x89\x79\x32\x54\x15\x4b\x68\xc7\xa2\x2c\xa6\xad\x00\xfc\x6a\xc0\x28\x86\x8c\xb0\x58\x4f\xab\xc7\xdd\x7a\xf9\xbc\x5b\x6e\xef\x96\xcf\x04\x84\x7a\xf2\x34\x75\x82\xab\xc8\xee\x09\xa0\xf5\xa6\xad\xf3\x69\xc4\x8e\xa5\x93\x7d\xe8\x1c\xab\xc7\x65\xaa\x8f\xee\xda\x46\xb1\x41\x34\xa2\xae\xfe\x83\xe5\x9c\xc5\x6e\xf6\xcc\x29\xa3\x80\xb8\x13\x73\x7c\xb9\x5f\xad\x27\x62\x8e\x82\xeb\x20\x23\x40\x23\x05\xea\xd7\x55\x55\xcc\x7a\x50\x47\x56\xf0\xc7\x19\x25\x57\x57\x4f\xfd\x91\xc4\x44\x4e\x9d\x63\xc0\xcb\xbb\x63\x18\x1b\x82\xb1\xb8\xb3\x2e\x94\xbe\x4e\x47\x0a\xa6\x3c\xf1\xd9\x70\x7a\xb5\xd9\x48\x32\x32\xd0\x8e\xac\x73\xf9\x03\xcb\x6e\x8f\xdf\x52\x99\xd1\x6c\x96\x18\x69\x68\xbc\xd0\x52\x78\xb5\xbd\x9e\x8e\x15\x83\x56\x41\xad\xad\x3e\x4a\x55\xe7\x58\x5f\x43\x51\x48\x70\x45\x7d\x03\xad\xd5\x64\x5a\x89\x80\x89\xd8\xb1\xe6\xaf\xae\x9f\x36\x27\x0a\xec\x42\xb0\xc8\x92\x48\xd8\x15\x68\x4b\x65\x62\xe7\x3f\x8a\x60\x99\xb0\xbe\xf6\xcf\xbc\xed\x7a\xfc\x37\xff\x3f\xb7\xd8\x52\xc7\x6a\xfc\xb5\xed\x24\x98\x48\xa9\x40\xb6\xf3\x9c\xee\xab\xaa\x39\x9f\x59\x3a\x35\x7c\x4e\x76\x01\x82\x44\x11\x6a\xba\x6a\xd1\x96\xed\x4f\x84\xb7\x85\x88\x50\x87\xba\x4f\x7d\x0e\x48\xcb\xf3\x0f\x16\x27\x11\xf9\xa2\x4a\x06\x26\x41\xe3\x33\x0c\x22\x49\x02\xed\x51\xe0\xd6\xee\x9c\x05\x09\x45\x22\x84\x63\x3d\xc2\xd5\xf5\xd3\x3f\xdb\xc3\x44\x9a\x00\xd3\x23\x02\x72\x03\x0a\x57\xfb\x83\x45\xc5\x9c\x49\x87\x4e\x06\x95\x48\x8d\xc8\x7a\xfa\xcf\xab\x63\xdd\xd7\x1a\x09\x91\xa5\x82\x96\xa7\x07\x82\xbf\xd9\x0c\xe9\xef\xf8\xd9\xf3\x58\x70\xdf\x0e\x15\xf7\x28\x84\xf6\xa8\xb1\x6c\x57\x37\xa4\xa2\x3d\x5e\x25\x05\x67\x5a\x3a\x68\xd9\x42\xff\x20\xa0\xdd\x79\x97\x49\x70\x6d\x28\xe2\xb5\x39\x1e\xb0\x7e\x29\xda\x1a\xd6\xd5\x07\xd6\xa3\x6a\x05\x21\x18\x24\x72\x08\x09\x17\x9d\x71\x56\xe2\x65\xe1\x40\x21\x44\x62\x6c\x39\x75\x55\x95\x9b\x76\x88\x1c\x08\xa1\x32\xda\x30\xf2\x32\x6f\x1f\x61\x8f\x9b\xcf\xbd\xac\x8a\x73\xa6\x96\x80\x80\x65\x6a\xc2\x1a\xd2\xdf\xda\x5f\x0d\x32\xe9\xd5\x4b\xa7\xb2\x4d\xd3\x57\x04\x93\xc6\xf2\x02\xce\xee\x44\xe9\x4a\x08\xc9\x53\x9b\x7a\xa7\xc1\xf9\x52\xe6\x6d\xe3\x18\xd5\xa6\x43\x41\x25\x09\xed\x8f\x16\xa1\x6a\xc5\x6e\xfc\x93\x29\x95\x84\x43\x60\x7b\x09\x75\xf1\xb9\x2a\x55\x75\x8a\x5d\xf6\xed\xb5\x12\x43\xce\x97\x70\xd1\x27\x9c\xce\x42\x68\x13\x19\x36\x42\xf4\xf5\x8c\x3e\x0b\xd2\x6d\x3a\xf4\x35\xc0\x42\x60\x2a\x29\xb2\x75\x86\x7e\x5d\x08\xcc\x22\x36\xca\x85\x5a\x69\x84\xfe\xcc\x0c\x28\xea\x33\xe2\x77\xe8\xac\xe8\x66\x3a\xc0\x50\x24\xa1\xe3\x39\xfb\x1d\x3f\x9b\xf9\x0d\x74\x44\x50\xa3\x5e\xbe\x66\xe0\xef\x14\x02\x91\xd3\xce\x46\xcc\x21\xf9\x7f\xb0\xe7\xf8\x16\xc2\x24\x86\x24\x45\xd4\x71\xbf\x28\x72\x2c\x9d\x9d\xd0\xbf\x95\xc9\x42\x8a\x83\xc8\x89\xfb\x30\xbd\xb7\x31\x8a\x64\x04\xba\x47\x6f\xda\x53\x98\x1e\x04\x81\xa0\x81\x45\x3c\x9b\x25\x14\x9b\x4b\xfa\x53\x5d\x53\xa4\xa6\x7d\x5f\x78\x5c\x98\xb3\x19\xe6\x09\x8b\xe3\xa9\xaa\x8a\x80\x20\xd2\x04\x3e\xd2\x23\x95\xb0\x99\x58\xa8\x27\xa8\x1e\xef\x02\x10\xa4\x89\x74\xb6\xed\xfd\xd3\xeb\x74\x28\x00\x13\x82\x7b\x8c\x8c\x2b\x52\x8d\xff\x42\xf0\xfa\x11\x02\xc2\x34\xec\x11\x2b\x84\x18\x1a\xd0\x3a\x10\x02\xd0\x0a\xdb\xbe\x41\xf9\xfe\x57\x75\x9c\xf6\x20\x84\xca\x4a\xbd\x59\xb6\xfc\x7b\x68\xda\xb1\x93\x04\xa1\x8e\xa8\x3c\x56\xbd\xbd\x97\x95\x46\xcb\x57\x33\x7b\xbc\xc8\x80\x14\xee\x12\x45\x5f\xde\x2b\x20\x0e\x2c\xcb\x8c\xcd\xdf\x38\x7e\xec\x4d\x0b\x83\x18\xc4\x2f\x49\x20\xa6\x37\x4a\x42\x2d\xd3\xc9\x2a\xf1\xd2\x60\x7d\x5f\x29\x57\xe9\x38\x8d\x80\x42\xa2\x02\x13\x4f\x31\xb1\xcb\xde\x3b\xeb\x0c\xc4\x18\xfa\xb0\xdf\xe6\x78\xb0\x3a\xdc\xb3\xee\x49\xe3\x31\x60\xda\xc7\xc3\xd7\xdd\xb0\x08\x47\x18\x25\x48\x33\x1b\x87\x7d\xb9\x7b\xf9\xb6\x7a\xec\xff\x35\x11\x15\x3a\x55\x6e\xf4\xef\xa6\x82\x2a\x93\x95\x70\x04\x2b\x71\x67\x67\x71\x48\x18\x9e\x3b\x38\x1c\x3e\xef\x73\x33\x62\x66\x11\x90\xe9\x44\x79\xef\xd5\xd1\xc3\xfa\x43\x9c\x85\xa1\x8b\xfc\xd2\xbc\xe9\xd9\x98\xb9\x6f\x10\x45\xe8\xea\xae\x37\xc7\xfd\x09\x85\xa7\x00\x9e\x6a\x5f\x98\xdd\xd9\x00\xdf\xf3\x59\x58\x0c\xb8\xd2\x94\x07\x5b\x57\x05\xd4\x67\x73\xed\xc0\x8d\x22\x9b\x6a\x12\x33\xfc\x47\xd2\xd8\x02\x84\x12\x7e\xe3\x75\x1f\x7a\x7d\xaa\x78\x25\x00\x58\x1c\xf0\x11\x61\xfd\x6d\x91\x1f\xfa\x39\x01\x19\xaa\x41\x67\xa8\x73\x7f\xa1\x3d\xd6\x53\x8c\x13\x80\x50\x94\xdf\xde\xe7\xe5\x19\xc6\x0f\x01\x20\x03\xa2\xc1\x5d\x9f\xbc\x1e\x28\x4d\x42\x34\xab\x32\x6f\xa1\x58\x57\xfd\x7d\x65\xa0\x08\x5a\x41\xd9\xe5\x0d\xb6\xbe\x6e\x73\x24\x35\x31\x7d\x0b\xa9\x11\xbd\x00\x51\x95\x7f\x6d\x75\x83\x0e\x2d\xf4\x71\x0f\x3f\x6f\xe0\xb3\xbf\xa9\x8e\x6d\xb0\xa5\xaf\xdb\x7e\xa8\x4a\xfc\x7c\xa0\x4a\xa8\xdf\xce\x2e\x54\x18\xab\xcc\x06\x36\xbb\x25\x11\xeb\xa5\x5f\xbd\x89\x64\xb8\xc9\xfd\x16\x01\x28\xad\xa8\xb4\x43\xd4\x3f\x54\x9f\x63\x7e\x24\x01\xa8\x2c\xb9\x43\x81\x3f\xb0\x78\x39\xeb\x94\x7c\xfd\x63\xaf\x23\x83\x48\xf9\xda\xce\xab\xfc\x02\xdc\x5b\x06\x1a\x69\xbb\xa6\x5c\x91\xe7\xb0\x9b\x7c\x18\x19\x18\x83\x30\xa6\xd6\x72\xda\x19\xcb\xce\x0b\xec\x93\x2d\x92\x29\x9b\xac\x9d\x56\x98\x75\xeb\xc9\x89\x66\x95\x90\xcc\x25\x77\x08\xef\xe1\x15\xfb\xdd\xb2\x3e\x6d\x19\x06\x96\xa5\xa0\x3c\xee\x7b\x35\xa9\xe6\xcf\xed\xe7\x61\x32\x03\x65\x98\x4a\xeb\x6e\x15\x08\xf5\xd6\xca\x08\xa1\x0d\xd1\xdc\x41\xf3\x36\xe2\x4a\x3c\x81\x48\xcc\x67\xd0\x99\x10\x82\x8c\x23\xa0\x61\xeb\x42\x96\x13\x07\xfc\x76\x9e\xbb\x94\xb1\xb0\xf8\xc9\xc5\xcd\x1f\xab\xcd\xd3\xf3\x6e\xfd\xf4\x74\xbf\x5b\x3d\xf6\xc5\x37\x32\xd6\x8c\x52\xae\xc4\x85\xb9\x6b\x06\x92\x47\x21\xd3\x04\xa8\xf6\x71\xfd\x74\xfd\x57\xff\x9f\xd2\x14\x30\xa5\x70\xf6\xc8\x2b\x97\x59\x94\x11\x0f\xee\x3d\x8e\xd5\x46\x84\xe4\xb1\x05\x0e\xf5\xa4\x03\xae\x94\x75\x3a\x51\x24\x57\x60\x8c\x8f\xd8\x78\x6a\x83\xfe\x83\x72\x0d\x64\x05\x2b\x57\xf5\x95\xeb\x49\x55\xa2\x14\x9c\x91\xa9\x53\x51\x02\x37\xaf\xca\xc5\xd8\x19\x95\xc2\x44\xbd\xfa\x2c\x36\x4d\xb7\x28\xae\xeb\xaa\x33\xb9\x86\x5b\x00\x53\xde\xd0\x5e\xd7\xf9\x0f\x2c\xf0\x15\xf5\xd4\xe8\x9a\x5a\xa3\x12\x42\x24\xcb\x6c\xeb\x5d\xe0\xe5\xcf\x37\x70\x94\x40\xd3\x97\x83\x2c\x4c\x60\x0c\x77\xaa\xea\xbd\x65\x5d\xd9\xed\xf3\x4b\x2a\xa5\xdd\x69\x96\x16\xc8\xcd\xce\x11\x43\xa7\x90\xc0\x33\x82\x07\xe1\x4f\x54\x47\xc7\x94\x6d\x2b\xa6\xcf\x83\xc6\x25\x70\xed\xe5\x88\x1f\x6c\x90\xc7\x22\x1c\x56\xc4\xba\xb4\xc9\x65\x91\x97\xaf\x63\x39\x3b\x21\x65\xec\xc0\x7d\x6f\xd5\xc7\x40\x3d\xd3\x73\xf6\xb8\x56\x2a\x92\x94\x7e\xc8\x9b\x05\x49\xc5\xe2\x6c\x25\x97\x2a\xd1\x8e\x09\xad\x84\xe2\x73\xce\xe0\x29\xa4\x92\x96\xf5\x6a\x08\x03\x8f\xa2\x3a\x17\xba\x46\x07\x96\x4f\x82\xc6\xeb\x4a\x55\x96\x85\x37\x2c\xf5\x48\xd7\x53\x48\x9d\x58\xda\xf1\x1a\x7f\x54\xef\x5f\x28\x8e\x0b\x89\x3a\xa2\x44\xd7\xd2\x71\x64\x3e\x57\xc7\x02\xdb\xde\x04\x90\x88\x11\x31\x1f\x7e\xc3\x76\xd7\xd9\x51\xbb\x91\xc4\x86\x90\x26\x49\xad\x9e\xbf\x55\xaa\x58\x50\xa9\xcc\xca\x61\x79\x4e\x20\x29\xa7\x10\xce\xde\x65\x91\x46\xa4\x01\x78\x2a\x98\xe6\x58\xb4\xdb\x31\x17\xf9\xf4\xa1\x55\xc0\x25\x38\x5c\xc2\xba\xc6\x7d\xde\xdb\x85\x8a\x05\x48\x82\xa6\x26\x2f\xda\x1e\x93\xe7\x8f\x89\x28\x88\xbd\xe3\x4b\x03\xeb\x0f\xa8\x73\x59\x9c\x29\xce\x9a\x3f\xf8\x64\x44\x29\xa6\xac\x7b\x65\xeb\xbc\xd6\xd5\xc7\x65\x5e\x2e\xa1\x18\x5a\x50\xb2\x4b\x43\xc2\x24\x5a\xa4\xa2\xc8\x92\xe5\x79\x15\xd9\x66\xd7\xbc\x41\x8d\xfd\xe1\x54\x52\x96\xcd\x20\xea\x69\x9c\x49\xc5\x81\xa6\xe0\xc7\x35\x69\xd8\x56\x79\x71\x77\xdc\xeb\xf6\x73\xf9\xb3\x1b\x8a\x73\x55\x0b\x6f\x03\xa9\x24\xd0\xc6\x95\xc2\x2d\x57\x8f\xe7\xe7\xb7\x4a\x58\x20\xd3\x9e\xb3\xe4\x44\xe0\x7f\xda\x38\x4d\x63\x9f\xac\xb8\x5e\x6e\xd3\x59\x92\x79\xb4\x4b\xcf\x7f\xdc\xf9\x19\x53\x64\x4d\xda\xce\xbc\x45\xdc\xbc\x8d\x14\xcb\x7c\x23\x8e\x81\x23\x8b\xe9\xc5\x89\x85\xe2\x3c\xa5\xb1\xeb\x94\x89\xf7\x07\xc8\x5f\x4f\xf2\xaa\xff\x7f\xfd\xfa\x7b\xea\x88\xf2\x52\x60\xf9\x5c\xcf\x89\x20\x75\x8d\x80\x70\x3e\x76\xa7\x0a\xd9\x3a\xff\xcf\x7f\x60\x5a\xaa\xa2\x3c\xef\x63\x55\x6e\xe1\xb0\xae\x8a\xe2\x96\x7c\x95\xdf\x4e\x81\x51\x4a\x84\xb1\x32\x43\x8d\x9b\xd3\x39\xfa\xed\x74\x16\x29\x10\x96\x89\xda\x91\xc5\x60\x01\xb3\x9c\xa9\x02\x13\xa8\x3e\xf8\xd2\x7d\x22\x4b\x73\xd2\xb9\xc0\xe7\x62\x18\x4a\x8a\xd0\xa7\x27\x9c\xd1\x3a\x72\x44\x95\xd4\x8a\x56\x30\x79\xfc\xcc\x2f\xac\x30\x4a\x41\xcf\x13\xff\x57\x75\xdc\x1e\x25\xce\xb4\x2c\x85\x52\x32\xf6\xfc\x0b\x8e\xa7\x8c\xf9\xc8\xa8\xd2\x41\x60\x46\x9c\xc1\xfd\x4d\x26\x4f\xa9\x13\x5b\x9c\xbc\x6b\xeb\xcf\x65\x0d\x0d\x6e\xf2\xf2\xb5\xc0\xc7\x4a\xcf\x90\x1d\x4a\xa7\x21\xba\x1d\x69\x7d\x94\xef\xf8\x79\x32\xbc\x67\xed\xb3\x8c\x76\xd0\x5d\x8f\x2f\x53\x5a\x84\xf4\x39\x34\x16\xd8\xe2\x9d\x25\x92\x99\x9d\xe5\xc0\x98\x25\x7e\xfc\x81\x75\x33\x24\x5e\x14\x06\x82\x5c\x4f\x8f\x78\x3f\xbf\x68\x20\xb3\x66\x3e\x68\x7d\x0b\xdd\xe6\x33\xff\x8c\x18\xc9\x54\x8c\x70\x93\x16\x4e\x01\xc5\xa2\x28\x16\xf5\xeb\x2f\x22\xc7\x0a\x33\xe3\x79\xb7\x16\x45\xf1\x9c\xbf\xbe\xb5\x77\xd0\xef\x1e\x0a\x31\xa1\x8a\x7c\xeb\x3d\x8f\xd1\x65\xca\x88\xc0\xd8\x05\xbf\x28\x1c\xf1\xd9\xd7\xd4\x27\x3a\x08\x34\xa5\x44\x9f\xb1\xa8\x40\x53\xa4\xe5\x42\x43\x96\xd1\x5a\xb7\xc5\x86\x54\x86\xaf\x7d\x05\xf9\xe9\x5e\xe8\xa3\x74\x3a\xc8\x54\x38\xae\x66\xb8\xad\xea\x49\x28\x48\x07\xbc\x4f\xa5\x56\xe5\x85\x25\x5a\x77\xcb\x9d\xcb\x6b\x50\x0c\xd1\x32\x74\x4d\xba\x4c\x33\x66\x75\xbf\x65\xfb\xa9\xe4\x79\x00\xad\x0e\x63\xeb\x77\x4d\x0a\xbe\x37\xcb\xe5\xcd\xa4\xea\x5b\x87\x3c\x43\x8a\xde\x34\x76\xca\xdf\xd0\x54\x05\xf5\xd6\x1b\x20\x3a\xe4\x00\xdd\xac\xbb\xaa\xab\xf7\xb9\x2f\xa0\xa3\xd4\xb2\x76\xab\x63\xfd\x00\x3e\x21\xa6\xe3\x90\x2b\x18\xe4\x7e\x2c\xf0\x71\x52\x37\xaa\x93\x20\xe5\x2e\x21\x70\x3c\xac\x8b\xaa\x1d\x02\x50\x53\xbb\xdb\xc2\xd0\xc7\x1d\x9d\xa4\x11\xe1\x57\xdc\xab\xef\x0c\x8d\xca\xe9\xb2\xa7\x13\x11\x5a\xd0\x4c\xad\xaa\x12\xc6\xc6\xb0\x4e\x51\x89\x64\x28\x06\x3a\x7e\xfe\xb3\x7a\x68\x9d\x1a\x4e\xf9\xcc\x2b\x6c\x9f\xca\xab\xc1\xf2\xd0\x59\x68\x59\xad\x2d\xbf\x9c\xdf\x56\x67\x0c\xb1\x42\x67\x59\x4c\xa2\xdf\xbd\x37\xb4\x99\x87\x12\xb5\x60\x2c\xb5\x4c\xbf\x05\xb5\xba\x1f\xf1\x66\xfc\xd7\xac\x29\x87\x6c\xa8\x80\xdf\xe5\x25\x6d\xdb\x47\x12\xec\x98\x55\x92\x6b\x08\x0d\xe5\xf1\x6c\x81\xfc\xa4\x33\x20\x92\xb1\xee\x9d\xf8\xab\xaa\xae\xab\x8f\xbc\x7c\x5d\xb5\x33\xb5\x21\xa1\x21\xc9\x88\x9c\xc8\x1a\xb8\xe3\x18\x96\x06\x80\xc4\x31\x03\xdb\x25\x62\x70\x03\x35\x28\x99\x3a\x0c\xfe\xb2\x7d\x1b\x93\xc6\x09\x0d\xc6\x6e\x60\x76\x6f\xfa\x47\x7a\x9f\x42\x4b\x66\xcb\xde\xdc\x22\x7c\x5b\xd5\x8b\x39\x10\x43\x4b\x06\xb1\x71\x91\xcd\xdb\xaa\x1e\xc4\x03\x66\xcd\xa2\x30\x71\xe1\x2e\x8b\xdc\xbb\xaa\x7e\x4e\xec\x34\x2d\x39\x2a\x67\xa3\xb8\x0c\xfb\xc6\x55\x99\xf4\xa2\xf6\xb3\x4f\x28\xb5\xce\x06\xf1\x1c\xab\x91\xd5\x4c\x97\x64\xad\x64\xe0\x56\x6d\xd0\x45\xcf\x48\x2c\xb4\x0e\x32\x42\x2c\xfc\x0e\x75\x31\x51\xeb\xed\x0e\x49\xda\xdd\x0a\x68\x08\xfc\x3b\x0a\x8d\x69\x1d\xe8\x4c\x0f\x1a\x41\x57\x45\x65\x53\xed\xfd\x94\x9a\x23\x7a\xfc\x79\x5c\x12\x7c\x66\xf9\x6d\xc2\x76\xa2\x51\x58\x79\xa5\x06\xdb\x87\xe6\xf5\xfc\x56\xaa\x0d\xb7\xc9\x97\xc7\xbc\xa8\xf6\xd8\xeb\xf2\x09\x6d\xb4\xf6\xd1\x96\x47\xfc\xb8\xa9\xca\x6e\x63\x9b\xdc\x18\x59\xa0\x98\x73\x83\x16\xe7\xd9\xff\x04\x32\x6d\x2b\x8c\x4c\x8d\x78\x5f\xb5\x6d\x45\x39\x75\x77\x30\x0c\x52\x0a\xe6\x9a\xaa\x56\x78\x93\xff\xb0\xf8\xa6\x11\xaa\x18\x43\xa6\xa8\xc5\xcb\xea\x7b\x67\xc9\x4c\xef\x1f\xf2\x94\x52\xe3\x92\x38\xeb\xbb\x05\xbe\x3a\xb6\x03\x51\x8d\x6f\x25\xe3\x8c\xcf\xf8\xa1\x4f\xd8\x6c\xce\x0f\x52\x8c\x02\xc1\x02\xaf\xba\x45\xd4\x9d\x96\xdc\xfa\xa7\xcd\x55\x3f\x56\x43\x14\x15\xa3\x98\x51\x1e\x82\x04\xcb\x17\x5a\x3f\x57\xc5\x89\x96\xe3\xfc\xf2\x60\x69\xcb\x7f\xe4\x75\x7b\x84\x82\xe2\x1b\xcd\xe6\xb8\xdf\xa3\xe3\x49\x9c\x8c\x37\x8c\x53\xcb\xd1\x5e\x1d\xb0\x74\xf2\x81\x36\xdc\x37\x14\x35\x60\xa2\x81\x18\x12\xaf\x3e\xdb\x6a\xff\xad\x2a\x26\x68\x75\x4c\x99\x25\xdc\x05\xad\x6f\x86\x40\x28\x92\x26\xbf\xfd\x7b\xb5\xdf\x1f\xdb\xce\x4f\xea\x3d\xcb\x33\xac\xa7\x02\xd3\xcc\xd0\x94\x7f\xee\x8c\xd1\xfe\x32\x32\xa1\xcd\xea\x8f\xf5\x76\x7a\x57\x13\x99\x99\xce\x4d\x3a\x99\x9f\xc8\x03\x20\x0f\x7c\x97\x7f\x87\xb2\xfd\x73\xbc\xa5\xfb\x16\x4c\x59\x49\x92\xe6\x5f\x95\xb4\x74\x33\xd3\x74\x95\x6f\x17\xa7\x7a\xe2\xfd\x4c\xc6\x3d\xf7\xad\xa4\xf2\xae\x21\xf9\x06\x03\x78\xd9\xb7\x10\xb1\xc5\xf5\x3b\x5b\x0b\xf5\x55\x51\xc9\xdf\xfa\x83\x56\xdb\xc8\x8a\x1b\xfc\x4d\x28\xed\x7f\x81\x7a\x3f\x54\xfd\xa8\x13\xc2\x04\x99\x1b\x39\xb3\x57\x11\x10\x49\xd1\xcb\x61\x7a\xc4\xfd\x2f\x46\xa2\x00\x43\x46\xf6\xb2\x24\xe2\x48\x8d\x93\xcc\x13\x02\x63\x04\xa0\xdf\xc3\xcf\x6b\x38\x4c\xf4\x4a\x05\x02\x06\x89\x73\xa9\x1d\xc5\xca\xf9\xcd\x08\x01\x43\xda\xb7\x96\x55\x43\xac\xe1\xc3\x05\x32\x41\xa1\xda\x42\x8f\x60\x6c\xee\xa0\x0a\x6c\xc6\xf8\x1b\x25\x12\x4d\x5e\xef\x6d\xdc\xe0\x5c\xbf\x2b\xcd\x88\x0c\xc2\xea\xfd\x4f\xf2\xdc\xb3\xf7\xd5\x81\x09\x1c\x15\xaa\xaa\xf2\xf2\x1e\x5f\x3d\xc5\x81\xbf\xaf\x66\xa1\x70\x60\x28\xda\xe6\xe6\xfd\x77\x16\xcb\x31\x5a\x5a\x34\xb7\x60\xdf\x57\xa2\x17\x2e\x06\xa2\x57\x81\x5a\x00\xc1\xfd\x3d\x0a\xf4\xf9\x3a\x0b\xd9\xd7\x06\x30\x6a\x9d\x64\x0e\xd5\x7a\x5d\x1d\x0e\x17\xa4\xc8\xf8\x79\x9f\x00\xb5\x91\xb4\x4c\x7e\x1b\x23\xa1\xa6\x37\xc0\x20\xa6\x39\x72\x5b\x40\xeb\x08\x7b\x96\x3f\xe7\x63\x0b\x59\xc2\x5d\xb9\xfe\xc3\xe7\x17\x31\x04\x34\x4c\x90\x98\xb7\xce\x1b\x5b\x13\xe7\x64\x6a\xfd\xe1\x24\x49\x7a\xbb\xee\xbf\xab\x6a\x7f\xff\xc3\x2b\xf3\x4c\xc3\xa9\xb3\xab\x26\xa9\xf4\x5e\x40\xf3\x4e\x08\x85\xab\xaa\x7a\xdf\xb4\xd0\x8f\x46\x13\x40\x1c\x5a\x96\xfb\x77\x3c\xc1\xa8\x4e\x2e\x67\x18\x53\x94\x24\xec\x96\x8c\xf3\xc9\x20\xdf\x50\x1a\x13\x8f\x78\xd9\xa8\x28\xe3\x2d\x2f\xf4\xcd\xe2\x69\xda\x43\x26\x0c\x52\x36\x84\x7c\xef\xf3\x92\x08\xc4\x67\x83\xf0\xd2\xaf\x37\x5e\x4d\x98\x25\x64\x1e\xf8\xe8\xea\x98\x06\xce\x35\x89\x42\x86\xbe\x18\xdd\x2a\x51\xf5\xde\x75\xf7\xe9\xb9\x6f\x96\x44\x91\x1a\x11\x2c\x6c\x5a\x28\xf0\x5c\x16\xc7\xc4\x41\x46\x61\x0d\x07\x5d\xa6\xd8\xac\x45\x1e\xfb\x99\x34\x86\x19\xcf\xba\x32\x4e\x63\xaa\xd4\xf8\xbe\xf2\x28\x56\x93\x18\x49\xd1\xe4\x5c\x55\xbd\x42\x6b\xff\x95\xd2\xd0\x50\xda\xa3\xa8\x5e\xa9\xfa\xf9\xc7\x30\x38\x4c\x2a\x62\xab\xcf\x13\x4e\x03\x48\x26\xd5\x42\xf5\x64\xa7\xd6\x5b\x70\x4e\xe4\xc9\xe4\x19\x26\xa2\xc9\x12\x4d\x65\x73\x0d\xec\x71\x5d\x55\xc5\xe0\x6b\x99\x4c\x08\xd2\xdf\xde\xb4\x47\x9d\x57\xfd\xbf\x52\x4f\x04\x3b\x47\x41\xce\xbc\xa2\xe8\xf1\xac\xe7\x44\xc2\x89\x82\xc9\xc9\xf6\x4e\x89\x1d\xed\xe7\x88\xa7\xe9\x66\x77\x22\x64\x61\xea\xf0\x91\xe4\xc6\x9d\xa9\xa1\x36\x32\x11\x54\xb5\x2b\x89\xdb\xe0\x17\x23\x5a\x65\x92\x74\x62\xd6\xcb\xe7\xeb\xe5\xe3\x76\x77\xb3\xfa\x63\x75\xb3\x7c\xf6\x6f\xa6\x0c\x52\x21\xab\x4b\x5e\x6f\x3a\x07\xee\x58\xa0\x5b\x57\x7f\x8d\x29\xfd\xda\xf5\xe9\x2e\x4f\x8c\xea\x8b\x97\xeb\xed\xea\xe9\xd1\x22\x9b\xfb\xfa\x05\xa3\x83\x94\xec\xd9\x7f\xd7\xf9\xe1\x50\xf4\xc0\x48\xa3\x93\x80\xec\xd9\x22\x97\xb3\x0f\xae\x79\xe8\x95\xcc\x9f\xf1\x70\x6c\x5d\xbe\xc0\xb6\x99\x76\x13\xaa\x80\x08\xa7\x1e\x16\x7f\xee\x6e\x16\xab\xfb\xbf\x76\xce\xa7\x7d\xba\x7f\xda\x6d\xd6\xcb\xc7\xfe\x31\x4c\x1c\x22\xeb\x63\x85\x77\xb9\xd6\x58\x4e\x28\xeb\x2d\x29\x6b\x1a\x0f\x0a\xfc\x13\xc4\xd8\x9c\x44\xc9\x2f\xb2\xc6\xc4\xc6\xef\x83\x0e\x01\xb1\x78\xc5\xf9\x3a\x6b\x4c\xa6\x83\xd8\xeb\x77\x3b\x61\xf2\x09\x33\xca\x64\xe1\x87\x20\x88\xa5\x0e\xfa\xd8\x8d\xa3\xf0\xfc\xa7\x21\x43\x7f\x0d\x1d\x72\x7b\xcf\x0f\xa8\xf5\x33\x12\xe9\xcf\x45\xe4\xfe\xe4\xab\x42\x10\x18\x93\x3a\x11\xcf\x1c\xca\xeb\xaa\xec\x9e\x3b\x4c\x52\x39\xab\x00\x85\x80\x45\x22\x4c\x26\x51\xbf\x39\xcf\x21\x04\x21\x8b\xc8\xb6\xb9\x45\x7c\x1a\xa3\x7c\xcf\xdf\x3b\x0c\x0d\x2d\xe6\x67\xf8\xe0\x9c\x59\x08\x41\x94\xc8\xd4\xc9\x4b\x8e\xa9\x83\xfd\x51\x19\x93\xa4\x5b\x1f\x6c\xbd\x34\x94\xcf\xf7\x5c\x64\x2c\x0d\xd5\x75\xfd\x79\x68\xab\x6f\x4f\x23\x13\x01\x82\x38\x60\x26\x18\x98\x17\xa7\xdc\x84\xe3\xb1\xd1\x35\x55\x44\x50\xbc\xc5\xbd\xac\x06\xfc\x00\x04\x31\x72\xca\x8e\x60\xe7\xf5\xb6\xb8\x2a\x5f\x1a\x3d\xb2\xae\x20\xc8\x52\xeb\xfd\xba\xd7\xeb\xe6\x6a\x91\x3b\x66\xe3\x13\xb8\xdf\x7f\xcd\xd3\x15\x67\x1f\x46\x24\x8a\xc5\x93\xe0\x65\xf4\x5b\x7f\xc8\x48\x9b\xd8\x2d\xf2\xf2\x7d\xb9\xba\xf9\x6d\x54\x0f\x3c\xeb\x1b\x91\x46\x64\x21\xed\x3f\x27\xcc\x3f\x10\x40\x24\x69\x22\x3c\xe2\x07\xa1\xe4\x4e\xb7\x54\x08\x20\x31\x04\xa6\xbc\xca\xb5\x35\xb7\x2f\x10\xbc\x43\x00\x4a\x91\xb5\xb4\xb8\x79\xf0\x88\x0e\x08\x64\x98\xb2\x6c\xe2\x71\x7b\x1f\x7a\x7a\xb2\x14\x4a\x0e\xec\xa1\x9e\x90\xe7\xab\xf9\x26\x65\x46\xe1\xd6\xfd\xb1\x58\x35\x1b\x30\xe7\x2d\x9c\xae\x1d\x10\xe1\xf3\x6a\x7f\xc0\x7a\xf2\x49\x55\x12\x86\x36\xf2\xd4\xb6\x17\x12\x42\x10\xe8\x20\x45\x35\xc2\x4c\xac\x55\xfb\x93\x05\xfe\x12\x3a\xce\x04\xe5\x09\x8e\x6d\x55\xe7\x0e\x56\xd3\x1f\xcc\x04\xf6\xf9\x57\x07\x02\x18\x7c\x14\x08\x34\xda\x0c\xec\xab\xe5\x87\x5e\x94\x9a\xf6\x95\xe8\x1f\x05\xb0\x20\x30\x8c\x0b\x17\x6f\xbe\x86\xa2\x58\xb7\xf5\xac\x4f\x4d\xa4\x22\x27\x47\x48\xae\xdc\xa6\x33\xe2\xbe\x8c\xa9\x02\x0b\x40\xd2\xd6\x4d\xf3\x08\x8b\x6a\xf9\x7c\x1d\x06\x93\xd5\x1e\x58\x60\x4c\x18\x0d\xa2\x94\x7e\x82\x33\x26\x45\x32\x16\xb2\x25\x63\x61\xf6\xa1\x19\x53\x48\xcb\xe4\x5b\x55\xe8\xb9\x70\x02\xb0\x50\x26\x14\xbf\xda\x0d\x7b\xfa\x44\x37\xe6\xfc\x43\x47\x9d\xf1\xe0\x58\xda\x46\xe2\xb3\xc0\xe2\x88\x59\x81\x74\x68\x2b\xbc\xb7\xf5\x32\xfe\x90\xe4\xe4\xfa\x91\x46\xe4\x50\xbf\x00\x2c\x61\x81\xa5\x3b\x83\x72\x8d\xb5\xa9\xea\x53\x97\xe2\xbc\xaa\x3b\xb0\x14\x04\xb9\xd5\xb8\xcf\x5b\x5f\xf8\xb0\xc1\x93\x48\xfc\x74\x96\xb3\x54\x29\x88\xa7\x3a\x10\xe7\x8c\x06\x60\x59\x98\x0d\x72\x3a\x14\x7b\x38\xb7\xc5\x02\xcb\xe2\x8c\xb9\x18\x9d\x4d\x9b\xde\x56\x03\x60\xb2\xbf\x6d\x86\x6e\x55\x38\x16\x6d\xee\xcd\x95\x6d\xfe\xfa\xd6\x16\x9f\x6b\xa0\xae\x9a\xb2\x4a\x00\xe3\x21\x27\xf6\x6d\x68\xdb\xb9\xff\x07\x8c\x2b\xa0\x95\xd3\xe1\x09\x3a\x2b\x72\xc4\xda\x0f\x4c\xa4\x71\xe8\x0c\xdc\x53\x72\xf5\xe9\x0b\x40\x14\xf9\xbc\xfa\xa3\x43\xa5\x58\xa8\xd2\xac\x19\xd7\xf1\x90\x92\x5a\xa9\x6a\x5c\x7f\x07\x0c\x64\x92\xe1\x98\x8f\xe8\x12\x24\x17\x98\x94\x2a\x8a\x7b\x76\x8f\xb6\x1f\x3f\x12\x33\xaa\x1b\xe9\xfe\xbb\xcd\xeb\xa6\xfd\x8e\xf8\xde\xb3\x67\x02\x53\x59\x80\xd6\xfc\xd7\xb8\x2f\x1d\x6b\x89\x87\xde\x03\x53\xda\x58\xa4\x27\x49\xe6\x5a\x58\xe4\xa4\x6e\xde\xb5\xc3\xc8\xea\x7a\x40\xbd\x77\xfc\x14\xb4\x22\x35\xf7\x73\x94\x2b\x30\x04\x43\xc8\xed\x96\xa0\x0e\x63\x64\x11\x30\x94\x19\x79\xe0\x0f\x79\xd9\x6e\x2b\x6b\xa3\xce\xce\x36\x01\x45\xf2\xa9\x2c\x78\xd8\xd3\xa7\xdd\x6a\x52\x1b\xa6\xb1\x42\x82\x16\xb5\xb3\xf9\x95\xaa\x05\x30\xa3\xe2\xc4\x56\x43\xba\xbc\x51\x5d\xc3\xe7\x93\xb9\xc2\x12\x4d\xae\x72\xa8\x73\x6c\xe6\xda\x44\xa7\x9f\x22\x64\x49\x4a\x56\xcc\x6b\x0d\x65\xaf\x50\x34\x64\x13\x2e\x04\x95\xfd\xc9\x10\x81\x25\xd3\x7d\xac\xea\x3d\x14\x63\x12\x2e\xd7\x24\x64\x22\x75\x59\xc7\x3f\xaa\xa3\x7a\xc3\x7a\xb6\x21\x4d\x5f\x2b\x0c\x23\x4b\x95\xfd\x91\xbb\x94\x87\x5f\xfb\xc3\x30\xe5\x54\xb9\xb9\x28\x24\xd4\xae\xb0\xe2\x8f\xf8\xb7\xf3\x71\x87\x0b\x17\xe7\x96\xd6\xd5\xb1\x86\x0e\x6c\x02\x7e\x10\x87\x51\x6c\x6b\x42\x64\x51\xa9\xf7\x13\x7e\x01\xdf\x08\x14\x81\x29\xd1\x45\x49\x54\x9f\xc9\x86\x30\x96\x9c\xac\xe8\xdc\xa5\xbc\x76\x71\x7f\xc4\xc4\x64\x8f\xc1\x8c\x4a\x19\xc2\x84\xc5\x04\x82\x58\x28\x62\xb0\x19\x6f\x6a\x61\xc2\x39\xa1\x36\x96\xdb\xbb\xa7\x8d\xff\x33\x0d\x62\x62\x65\x97\xb9\xb6\x14\x57\x17\x3a\x33\x0b\x6d\x55\x64\x3b\x62\x32\xbb\xad\x6a\x2a\x5f\x23\xd1\x83\xed\x47\xe5\xaf\x99\x19\x3b\xbb\x4d\x55\x3b\x86\x22\x7f\x84\xa7\xc0\x44\x6f\x25\x6f\x0e\x45\x3e\x0d\x5b\x74\x2d\x50\x8f\x64\x93\x9d\xe5\x31\xdb\x6c\x42\x9e\x09\xd2\xef\xb2\x21\x00\xe2\xd9\xba\x1e\x29\x7f\x9f\x89\x47\x41\xc8\x79\x18\x8e\x72\x1c\xbe\xed\x99\x50\x10\xb5\xcd\x42\xcf\x74\xf5\x4a\x41\xdd\x6e\x20\x5f\x58\xde\x43\xae\x52\x5a\xb6\xdd\xbf\xbb\xb6\xda\xd1\x68\x9f\x3d\xb5\x08\x15\xd9\x99\xbd\x00\xd3\x58\xe7\xd2\xb7\x89\x58\x08\x8e\x6d\xef\x47\x4f\x30\x60\x41\x49\xaf\x25\xea\x07\x6c\x1a\x78\xc5\xdf\xe6\x1c\x32\x10\x76\x26\xa7\xc5\x7e\x40\x5e\x3e\x54\x65\xb7\x70\x36\xd7\x95\xc7\x8d\x00\x55\xce\x7b\xc4\x40\x55\x2b\x5c\x5a\xb0\xd4\xa0\xbf\x3e\x52\x84\x80\x50\x08\x0e\x76\xb7\x3f\x36\x78\x8b\xf8\x87\xa7\xc2\x01\xc2\x32\x38\xb8\xc0\x7d\x05\x65\x63\x55\x29\xae\x3e\xaf\x8b\x7c\xf4\x25\x85\x66\xc1\xf0\xad\x2f\x14\xcf\x42\x08\x69\x68\xd2\x3e\xef\x75\x09\x6c\xd6\x37\x8e\x5d\xa5\xad\xdb\x18\x2e\xc0\x50\x4e\x58\x77\xc7\x86\x71\x08\xda\x22\x0b\x96\x3f\x0f\x79\xf7\xb7\xa5\xd8\x1e\x4a\x76\x21\x94\x31\x37\x24\xe8\xdc\xad\xd5\x4d\xfb\x8c\x6d\xdd\x8f\x6e\x29\xb3\xb0\x5b\x64\x97\x05\x1e\xde\x80\x84\xec\x3e\xf7\x58\xb6\x23\xfb\x34\xd4\x19\x27\x37\xfd\x06\x6f\x2e\xb2\x32\xfb\xa6\xda\x16\x70\xee\x54\xb5\x3f\x1c\x5b\x5c\x1c\xeb\x13\xbd\x11\xd7\x14\x83\x80\x3c\x87\x6e\x97\xe8\x3c\x3f\xcb\x43\x34\xfa\x66\xc8\xa2\xd0\x22\x5d\x3b\x03\x6e\x36\xb2\x30\x34\x81\x23\xb1\xef\xdc\xcb\x95\x2b\x13\xf8\x67\x2e\x6a\x88\x69\x94\xb8\x0c\xc0\x43\x5e\x3e\xa3\x7a\xeb\xba\x66\x7e\x8b\x14\xad\x86\x66\x37\x67\xfb\x25\xaf\xb9\xad\xea\x33\xcb\x39\x6a\xed\x29\x0b\x5c\xb0\xe4\x92\xad\x78\xe1\x91\x4c\x94\xa6\x6a\x4c\xdc\x69\x1d\xb6\xff\x61\x59\xfa\xbf\xe3\x82\x2d\xdf\xdc\xd1\xdb\x6a\xf8\x6c\x86\x9c\xa1\x3f\x28\x75\x2c\x9d\x3e\xae\x4f\x96\x4f\x34\x72\x21\x34\xc8\x98\xed\xdc\xeb\xaa\x21\xee\x97\x9e\xe1\x18\xa2\x20\x16\x81\x33\xdc\xee\x8e\xe5\x18\xf4\x38\x7d\xe8\x28\x48\x52\x36\x16\xb1\xb3\x91\xac\xc4\x5a\xa4\xfe\x77\xd4\x9c\x4b\xa2\xdf\x6a\xbf\xa2\x02\x70\x0c\xa3\x10\x05\xd2\x72\x04\x83\xd6\x8b\xe7\xc5\xb4\xbf\x23\x96\x46\xe4\x32\xfe\xeb\x81\xc2\x36\x5f\x44\x63\x21\x62\x2a\xb1\xfa\x92\xa0\x35\x2d\xf1\x4f\x66\x5b\x1d\xce\x8f\xe0\x28\x0a\x65\x08\x9e\x6c\x9e\xb8\xf7\xce\x1a\xb7\x51\x94\x28\xef\x50\x5a\x85\x66\x28\xa0\xfe\xbc\x3a\x96\xe5\xe7\xc4\xbe\x8d\xa2\x4c\x5b\x45\x10\xaa\xa6\xb0\x1c\x7c\x67\xdd\xec\x28\xe2\x29\x15\xfc\xaa\xea\xc7\x7e\xca\x13\xe8\x1b\x18\x54\xbd\xac\x5d\xef\x42\x44\x49\x18\x20\x73\x59\x34\x68\x61\x55\x3a\xea\x06\x7f\x58\x04\x94\xdf\xd9\xe7\x7b\x6c\x3f\x0f\xc3\xff\x3a\x24\xee\xfc\x1d\x09\x10\x7d\x19\xd6\x88\xd2\x20\x24\xb8\xea\x0d\x7c\x92\x31\xfd\x30\x97\x3c\x84\x28\x15\xa9\x67\x53\x5e\x96\xfa\x50\xe5\x65\xbb\x86\x1a\xf6\xcd\x49\x19\xd7\xf4\x34\x99\x11\xca\x81\x3a\x71\x60\x2a\x86\x28\xd3\x09\x61\xb7\x69\xe6\x8d\xb7\xfe\x28\x43\x20\x8f\x5b\x1e\x3f\x89\xa9\x0d\x86\x4c\xec\x29\xfe\x72\xd2\xc3\x3c\xb3\xaa\x2d\xb2\xb9\x40\x10\xef\xdb\x71\x49\xbb\x8f\xc5\x72\xf8\x68\xc5\x85\xe2\x17\x7f\x8e\x30\x14\xd4\x5d\xd7\xf0\x19\xaf\x6b\xfc\xf4\x44\x3d\xce\xb8\xe4\xde\xb4\x8c\xb8\x8e\x79\xdc\xbb\x15\x1e\xdf\x3e\xbd\x9a\x48\x53\xe3\xb6\x37\xab\xa5\x66\x7d\x8a\xe5\xeb\xeb\x29\x28\xae\x6b\x6d\x49\x06\xe4\xb1\x2e\xd7\x7f\xde\x5b\x5b\x79\xfd\xe7\xfd\xa5\x1c\xd1\xec\xd1\x05\x04\xa9\x1d\x21\xe5\x20\xd5\xbe\x2a\x7b\x31\x79\x88\x84\x62\xd4\xe5\x15\xf1\xe4\x40\xf1\x52\xfb\xfd\x33\x82\x30\x4a\xdd\x93\x3e\xc0\x44\x46\x6e\x3a\x84\x24\x0b\x69\xa7\x79\xae\x64\xd5\x96\xf9\xfb\x69\xed\x09\x44\x2a\x54\x1e\x39\x61\xe3\x86\x4d\x5e\x95\xb7\x88\x0e\xe4\x33\x7d\x6a\x1d\x24\x6a\x24\x61\x8c\x7a\x54\x52\x0f\x91\x8e\x02\x32\x69\x3b\x3b\x74\x04\xe8\x85\x48\xab\x8c\x9c\x3a\x0f\x20\xec\xba\xea\x1e\xf5\xeb\x69\x8c\x7c\xd6\x4b\x1a\x45\x68\x26\x38\x41\xab\x50\xa2\xfa\x75\x13\x53\x49\x29\x3c\x1b\x49\xb6\x94\x6d\xbb\xd5\xf5\xd3\x6e\xb3\x5d\x7c\x5b\xb2\xdd\xfa\x79\x49\x31\xc9\xa4\x3f\x41\xc5\x16\x19\x0f\xef\xb8\xba\x7e\x1a\x3a\xbf\x71\xd5\x85\xfb\x7d\xde\x34\x17\x63\x4f\x11\x9a\x84\xf2\x01\xcb\x46\xc1\x01\x1d\xc2\x7b\xf2\xd4\x31\x0b\x6c\x25\x8c\x7d\x5d\xca\x2e\xfb\xf5\x24\x66\x51\x1a\xe8\xc1\xec\x7f\x32\xa6\xc8\xcb\xbe\x7c\xee\xa4\x3b\xa6\xd7\xd5\x8c\x1e\x7d\x51\xd7\xce\xac\x5d\x35\x8f\x95\x2f\xd3\x9e\x3e\x43\x88\x9c\x9c\x87\x87\xfc\xaa\xaa\x74\x81\x67\xc5\x97\xbf\xde\x1f\xe3\x28\x0b\x69\x8c\x3e\x5f\x5f\x8f\x85\xe9\x20\x8e\x24\xa7\x75\x67\xbb\x5c\x5c\xdf\x4d\x8f\x68\xbb\xdd\x10\x48\xe2\xd8\x9b\x8e\x71\xd2\x8d\x78\x2a\x82\x9a\x51\x26\x42\x9c\x26\x31\x29\xad\xbe\x62\xbb\x28\xf3\x3d\xaa\x39\xc9\x37\xc4\xa9\x0e\x28\xf3\xff\xb0\xd8\xee\x5e\xfa\x62\x0b\x88\xb3\x10\xb0\x8f\x8a\xac\x8c\xfb\x18\x93\xf5\x27\xce\x22\x5b\xfc\xb5\xfc\xf3\xa9\x4f\x71\x5d\x0a\xcd\xfb\x53\x30\xe0\xf6\x61\x5b\x68\xbd\xd9\x16\xf3\x20\xa4\xfa\xc9\x7f\xad\x1e\x37\xfd\x7f\x71\x44\x05\x4c\x96\xb9\xe3\x8e\xb8\xc3\xfa\x63\x29\xd0\xe4\xab\x09\x28\xd5\x57\xd3\x41\xcc\x95\x2d\x24\x6d\xb1\x69\x37\x1f\x70\xd8\x7a\x14\x06\xc4\x82\xf1\x2c\x73\xd8\xa0\x6d\xbe\x9f\x83\x01\x21\x16\x61\x48\xd9\xa1\xbc\xe9\x0c\xa2\x12\xf6\xb8\x85\xae\xfb\xa7\xef\x0c\x0c\x84\xc3\x27\x5a\xd6\xf8\xe9\x45\x80\x49\x2a\x43\xfa\x51\x5d\x26\x42\xf6\x4d\xb9\xb6\x45\x5d\xcf\x4b\x8a\xec\x7f\x5f\xae\x76\xdf\x57\xdb\xbb\x1d\xb1\x8b\xfe\xd6\xb7\x42\x72\x42\x9b\x6e\x52\x79\xb1\xd1\xf3\x7d\xab\x32\x95\xea\xbe\x08\xa3\x75\x1c\x62\xd3\xc7\x57\x60\x52\x97\xd6\xbf\xe9\xac\xf4\xb2\xc1\xb3\x06\x41\xac\x19\x10\x75\xe6\x35\xd4\x96\x59\x79\x52\x8c\x0b\xb1\x56\x29\x15\x83\x2a\x28\x8a\xfb\x5c\x86\xb3\x61\x85\x81\x4e\x92\x91\x44\x9e\xaa\xb4\x55\x33\xdb\xf4\x95\x99\x10\x63\x0c\xb4\x73\x98\xaa\xfe\xd9\xff\x67\x42\xa2\x27\xff\x38\xfc\xdc\x12\xcb\xda\xd8\x64\x88\x0d\x33\x14\x5b\x5e\x5c\xdf\xff\x75\x63\x4d\x25\x7f\x24\xca\x6c\xe9\x46\x55\x6f\x71\x24\x76\x0d\xb1\x31\x8c\x3c\xde\x3f\x8a\xea\x55\x11\xee\xe2\xec\xf7\x48\x82\xc0\x92\xfc\xf5\x26\xeb\x15\xb6\xe7\x75\x0d\x20\x09\x18\xc4\x91\x0f\xa7\xd0\xba\x79\x53\x57\x87\xf3\xe2\xd0\x90\x04\x3a\x63\x63\xf6\xa0\x6e\x9b\xff\x2a\xfe\x3a\x3b\x9d\x45\xda\x52\xbf\x58\xce\xe5\xbc\xcc\xf7\xc7\x29\xee\x10\x12\x96\x08\x52\xd4\xd8\x59\xf1\x93\x7f\x16\xeb\x4e\xc2\x08\xa9\xb0\x7f\x0f\x3f\x7d\x56\x6c\x8c\x79\x87\x24\x44\x4c\x07\xce\x07\xc7\x3d\xd6\xfa\xd0\x58\x12\xf3\x90\x84\x2b\x17\x9a\xb8\xe3\x72\x65\x19\xcd\x27\xef\xc5\xe6\x37\x8d\x75\x44\x56\xf6\x01\x4e\xeb\x31\xff\x59\x87\x24\x49\x4a\x11\xf1\xbb\xaa\xc4\xcf\xcd\x51\xbd\x17\x54\x6c\xdd\x3f\x75\xa2\x62\x82\xfa\x6d\xeb\xe3\xfe\x70\x0b\xf5\xbe\x0f\xa7\x26\x89\x02\xaa\x94\x78\x29\xf3\xce\x27\x1c\x8d\xc6\x24\x31\xe8\x50\xbe\x57\xc7\xb9\x6e\x1e\x24\x19\x93\xcc\x0a\x83\xd5\xf9\x7b\xe7\xbc\x77\xeb\xe2\x00\x84\x83\x84\x47\x52\x8c\xc5\xeb\x9e\xe1\xbd\xbf\x34\x4f\x62\xef\x94\xdf\xd6\x88\x9b\xce\x87\xa9\xb1\xe8\x0f\xcb\x88\x6c\xea\x12\x7f\xb6\x94\x45\xf3\xc2\x7c\x90\x88\x44\x53\xf9\xea\xb7\x3a\xd7\xea\x28\xc7\xb0\x54\x48\x64\x18\x58\xce\x8e\xa3\xfc\x55\xc9\x26\x24\x32\x61\x94\x82\x70\x74\xf7\xb3\x4d\x2d\x91\x29\xa7\xba\x47\x2f\xe8\x34\x72\x5d\x13\x69\x54\x66\x57\xc6\xdb\x63\x49\x51\xad\x11\x0b\xdd\x64\x7d\x49\x94\xab\x5e\xbf\xab\xf6\x78\x55\xe7\xfa\xf5\xc4\x14\x1f\x82\x93\x17\xbe\xae\x0a\x81\x60\x52\xab\xed\xb7\xc9\xd6\x98\xa8\x38\xcd\x12\xa7\x72\xee\x93\xc6\xfe\x50\x9a\x10\x1a\xa4\xa8\xaa\xf7\xe3\xc1\x6b\x46\x5d\x98\xe8\x2a\x13\x21\xf4\x60\xfa\xe9\x80\x57\x3a\x4e\xbc\x16\x34\xc9\x6b\xad\x6e\xae\x3e\x1f\x67\xa2\x04\x90\x68\xc8\x48\x4a\xa7\xdb\x55\xa1\xcd\x7f\x4e\x9e\x13\x53\x41\xd7\x20\x65\xdf\xfe\x4f\x19\x52\x1a\xef\x6a\xb5\xbd\x7e\x5a\x3d\x7e\x5b\x78\xbe\x33\x48\x50\xa7\x04\xa1\x74\x21\xfe\x71\x28\x7b\x1c\xea\x4f\x4c\x1a\x46\xc2\x39\x7e\x97\x92\xd8\x7d\x53\xf0\xe1\xa4\x3f\xa0\xce\xad\x56\xcc\xa7\x9a\x47\xb4\xd2\x20\x13\xc4\x81\xbb\xcf\xcb\xeb\x63\x3b\x36\x2c\xd3\xc0\x09\x3b\xfe\x91\xab\x6a\x54\xcf\x07\x69\xa0\x2c\xf6\xee\xf6\x65\xfb\xf2\xbc\xdc\xdd\x2c\xff\x58\xde\x3f\xad\x1f\x96\x8f\xdb\xdd\xed\x8b\xc7\x19\x40\xca\x00\x99\x25\x43\x51\xef\xe7\x48\x9a\x20\x65\x4e\x71\xdc\x56\x90\x55\xc7\x5a\xe1\x06\xc7\x75\xff\x90\x86\x59\x44\xe9\xeb\x5c\x55\xcb\x52\x0f\x70\x5e\x48\x43\x99\x19\xd2\xd6\x55\xd5\xb4\x4a\x0f\xd2\x28\xb4\x64\xc6\x56\x6b\xd0\xd6\x3c\x9e\x30\x2e\x42\x1a\x71\x41\x1e\xce\x6a\x42\x90\xf9\xe4\x40\x78\xa0\xda\x9b\x9e\xf6\x03\xd2\x58\xe8\x14\x7a\x1a\xb9\xdb\xfc\x67\xef\xaf\xa6\x31\xa6\x91\x55\x73\xdc\x1f\x8a\xc9\x04\x4d\x63\x63\x4b\x86\x1c\x17\xf1\x4d\x8f\xdf\x76\xc7\xd3\x28\xa5\xf8\x92\x39\x40\xed\xac\xfe\xdf\x46\x74\xa8\x90\xa6\x29\x12\x02\x64\x67\xc8\xfc\x39\x9e\x94\x63\x41\x9a\xa2\xb6\xbc\x5a\xf9\x0f\x7c\xc0\xc1\x16\x4a\xb3\xcc\x48\xe1\x5d\xfa\x6e\x8c\xdf\x56\x56\x22\x79\xd6\x0f\x3c\xb1\x45\x00\xbf\x3f\xfd\xfe\x34\x8a\x93\xa5\x3c\x4d\xa8\x6a\x61\x9d\x4b\x39\x7b\x2f\xe1\xe2\x62\x76\x47\xba\xae\xa1\x27\x69\x1c\x56\x8d\x54\x20\x23\xf7\xbe\x2a\x8b\xcf\x51\x6d\xf3\x35\x94\x37\x55\x7f\x21\xcc\x6c\xde\xe5\x1c\xae\x27\xf6\xbd\x00\x49\x44\xb2\xb3\xae\x6c\xec\x70\x70\x0c\xca\xcd\x49\x88\x36\x95\x2c\xc9\xc0\xbb\xd9\xdd\x71\x17\x88\x9b\x8e\xbc\xce\x67\x22\xac\xd7\x82\xa4\x65\x97\x7f\xae\x17\x8f\x37\xbb\xd5\xe3\x76\xf9\xfc\xc7\xe2\xfe\xb7\xbe\x55\x46\x99\x88\xf7\xbf\xdf\xd4\xa8\x5f\x94\x12\xd4\x5f\xff\x7e\x7e\xc6\x3e\xee\x9a\xea\x38\xa3\x14\xeb\xb1\xd1\x96\xb9\xe5\x61\x38\x43\xa7\x8a\x08\x02\x2c\x2c\x06\x64\x81\x33\x3b\x6e\xfa\x0e\x5a\xc7\x7c\x84\xdd\xd7\xb7\xb3\xba\x8d\xae\x05\xf7\x35\x61\xd3\x10\x7d\xaa\xb5\x85\x74\x91\x72\x9e\xa9\x16\xb3\x13\x31\xe2\x3e\x05\xb8\xa9\x0a\xbd\xa8\x11\x9a\xc9\x84\xc3\x08\x69\xed\x52\x55\x5d\xa3\x6a\x77\x16\x38\xb0\xef\xa5\x16\xc2\x24\xfd\x9f\x48\xfc\xaf\x6f\x6d\xac\x70\x35\x68\x4d\x09\x25\x28\x9c\x38\x94\xbf\x9c\x89\x04\xea\x1e\xbd\xb3\x28\x8a\x35\xd4\x23\x74\x47\x16\x84\xd6\x36\xdb\x7e\xbf\xd9\x3d\xed\xcb\x5c\x57\x45\xe1\xe5\x61\x20\x0b\x32\x4d\xb9\x4d\x2f\x7a\xb5\xf3\x7b\xeb\x39\x50\x2b\x64\x81\x90\xac\x4f\x83\xf8\xaa\x7c\x7f\x4c\x33\x4a\x29\xfa\xe0\xf4\xaa\xcc\x67\xce\x52\xc6\x98\xc5\x0d\x74\xa6\x7b\x67\x7a\x8e\xc6\x72\xc6\xe2\x20\xb3\x4a\x9d\xf9\xeb\x2b\xd6\xdd\xf6\xe7\xaf\xcc\x30\x23\xe8\xdf\xe3\xe2\xdb\xa2\x5b\xd9\xfd\xff\x61\x6c\x7c\xb2\xa0\xb3\xc3\x17\x45\xb1\x28\xf5\xd5\xb1\x9e\x05\x09\xb2\x50\x04\xc4\xfb\xbb\xba\xf9\x73\x3c\xc7\xb2\x50\x84\x7a\x44\xb7\x35\xf1\x31\xcf\x8e\x9b\x2c\x62\x1c\xd4\x48\x5c\x86\x48\x8e\xfd\xb2\x39\x6b\xaa\x65\x32\xa0\x8a\x7d\x05\x73\x37\x62\xea\xfd\x99\xe4\x65\x16\xb3\x88\x2a\xa7\x49\x4b\x77\x22\x84\x36\xde\x16\xb3\x38\x11\x19\x23\xb9\x9f\x4a\xbd\xff\x3e\xd8\xe0\x59\x9c\x00\x05\x9f\x4d\x51\x7d\x60\x4d\x2c\xab\x17\x54\xd7\x20\x8b\x79\x14\xb9\x54\x62\xe7\x88\x39\x4a\x94\x55\xb9\xed\xa5\xdd\x66\x2f\x93\x64\x89\x85\xdd\x7b\x81\xa9\x13\xbd\x84\xd9\x1d\x12\x08\xa9\xa3\xdc\xbf\x24\x43\xa8\xf7\x79\xd9\xe3\x3e\xfd\x63\x27\x4a\x66\x03\x27\x33\xed\x82\x4e\x53\x22\x9c\x75\x50\x1a\xc7\x04\xa8\xb6\x15\x0c\xf7\xcf\xeb\xf3\x73\x3b\x4b\xc1\x0a\x7a\x59\xaf\x96\x48\x2e\x0e\x05\xf6\x99\xb4\xc1\x46\xea\x06\x9f\x0f\xb1\x65\xa9\x31\x54\x91\xe9\x11\xd3\xed\x1b\x55\xce\xb9\xa4\xa0\x6b\x94\xc5\x8a\x70\xa3\x6d\xd5\xce\xe9\x23\x21\xcb\x52\x5b\x0b\xd1\x60\xfb\xfb\x5f\xd7\x33\xe2\xdc\xfe\x3e\x19\x67\x96\x9e\xac\x6a\xac\xb6\xfa\x2c\x69\x37\xb1\xf5\xb2\x4c\xc6\x94\x16\xbe\x5d\x2e\x77\x0f\x2f\xf7\xfd\xad\x4c\x48\x35\x12\xfb\xbc\x7c\x80\x9f\x57\xc7\xcf\x61\x4f\xca\x78\x90\x92\x9d\x56\x5a\x4c\xec\x04\x3b\x92\x71\x16\x11\x62\xc3\xa5\x5b\x49\x33\x6a\x8d\xd0\xc7\xe6\x32\xce\x4c\xe6\x88\x56\x7e\xff\xeb\xda\x0d\xf0\x35\x7c\x16\x15\xe8\xf1\xbe\x9a\xf1\x90\x07\xa1\x9f\x3b\x55\x3d\xcf\x8f\xbb\x56\x22\x34\xb4\xbe\xcb\xe3\xe7\xe2\x77\xa4\xe0\xeb\x34\x32\x77\x61\x9e\x89\x44\x53\xc8\xc4\x42\x52\x77\x70\xd2\xd9\xc2\x58\x6c\xd4\x16\xde\x71\x5d\x7b\x36\xb5\xe1\x02\x90\x04\x84\xaa\x5b\x95\x6d\x5d\xfd\xf6\x2b\x56\x44\xc8\x80\x07\xd4\x31\xa4\xe6\x71\x31\x27\xf4\x2b\x1f\xea\xb4\x9e\x03\x32\x19\x30\xca\xa5\xea\xaa\x6c\x37\x58\x14\xcf\x27\x81\xf0\x4c\x86\x4a\x10\xac\xf3\x50\xe4\x13\x56\x4a\xc8\xa4\xd3\x1c\xaa\xb1\x39\xee\x71\x56\x1a\x04\x99\x0a\x63\x2a\xd9\x39\x74\x73\xfe\x0c\xaf\x0d\x64\x0a\x18\x73\x31\xc8\x07\xdc\xe3\x58\xce\xbf\x6f\x01\xe4\x94\xdd\x3e\xbd\x3c\xde\x2c\x08\x56\xfb\x7d\x71\x7f\xbf\xf4\x71\xaa\x0c\x03\xa5\x86\x65\x92\x96\xfe\xaf\x7a\xf4\x6c\xfa\x39\xc3\x24\x20\xd4\x7a\x9b\xef\xd1\x82\xc9\xa7\x23\x05\x53\x5b\x5f\x4f\xd0\xd6\x1f\x08\x85\xb3\x2a\x66\x57\x31\x01\xcd\x9e\xd5\xcd\x72\xe1\x1f\xcf\x84\x29\x95\xc6\x7d\x23\x5f\xc3\x06\x5a\xd5\xe7\xea\xc6\xef\x80\x3c\x60\x96\xd7\x1e\xad\x8c\xfd\x17\x76\x01\x0f\x62\x1e\x25\x9e\x53\xce\x4a\x7c\x2f\x4b\x4d\x6b\xed\xc4\xd3\xf1\x29\x27\x1e\x24\x36\x10\x7e\x6e\x0b\x99\x5d\x9a\xdb\xaa\xcd\xce\x2e\x78\xcf\x8b\xe2\xfa\x84\xa1\x1a\x78\x20\xac\xe6\x7e\xde\xb8\x1c\xa7\x7f\x05\x16\x8a\x98\x79\x9b\xc3\xea\xdd\xfe\x07\x6f\xb0\x21\xae\x23\xd4\x9e\xa8\xc6\x85\x72\xc6\x4e\x06\x67\x29\x92\x42\xb4\xad\x4e\xfd\x3e\x0e\xf2\xf1\x90\x09\x0c\x27\x70\xda\xd3\x57\x3d\x7d\x93\x30\x33\x62\x6c\xf5\xba\x45\x9b\x38\x72\x7c\x13\xa3\xa9\xea\xcd\xd9\x57\x0b\x7d\x22\x28\x3b\x4a\x46\xf0\x28\xd1\x69\x36\xde\x55\x2d\x22\xea\x8c\x72\x00\xf0\x48\x69\x82\xf5\x3f\xd4\xcf\x08\x87\x09\xbd\x0c\xf0\x38\x91\x04\x6a\x5c\xdc\xac\xc1\x47\x50\x78\x92\x26\x64\x74\x7c\x5b\x5c\x6f\x87\xff\x8c\x2b\x7c\x94\x43\x9a\x66\x8c\xe9\x71\x5f\x79\xc8\xc4\x0c\x42\x45\x33\xc9\x22\xe0\x09\x67\x54\xbe\x48\x65\xb7\x75\xcf\xcb\xde\x1f\xcd\x8c\x15\xbd\x38\xc3\x2b\x3f\xfd\xfc\x09\x58\x20\x12\xd1\x48\x47\x7c\xf6\xe6\x89\xcc\xb4\xa7\x4d\x02\xf5\xee\x77\xa8\xd9\x10\x4a\x43\xcb\xb5\x57\x56\xed\x3d\x36\xcd\xf6\xad\xf7\x8f\x79\x8a\x48\x75\xea\x16\xcc\xea\xca\x66\x66\x37\xc9\x62\x43\x79\x21\x57\xe6\xee\x21\xcd\x93\x5d\x89\x67\xc0\x6d\x02\xe7\x2d\x37\xa7\x92\x47\xa3\x0f\xcb\x43\x4d\x51\x39\xfa\x48\x77\x84\x9b\xdc\x94\x70\x68\xde\x28\x4f\x7a\xa1\x17\x78\x66\xc5\x80\x64\xae\x77\x2d\x71\xb3\xf6\xc2\x97\xc0\x85\x66\x14\xc6\xee\xfc\x49\xf5\x56\xd5\xe7\x13\x03\xe7\x2f\x2c\x74\x6a\xf4\xb4\x30\xfe\x5b\x37\x84\x5f\x49\xaf\x64\xd6\x8f\xc0\x25\xb3\x3b\x50\x79\x6c\xee\x87\x25\x97\x03\x47\x8a\x7f\x1f\xcb\xbc\x25\xa1\xae\xfe\x80\xcc\x22\xd5\xd7\xd4\xe9\xa3\xb2\x81\xa6\x75\x9f\x9a\x1f\x7a\x19\x34\x52\x9e\x81\x52\x98\xd7\x70\x00\x35\x44\xfc\xb8\x66\x8a\xac\xd5\x3d\xfc\x7c\x80\xe6\xbd\xff\x3b\x93\xc4\x11\x47\xa6\xae\x93\x84\x9a\xe8\xef\x02\xd7\x68\x41\x72\x37\x35\x94\x0f\xfd\xbf\x18\x26\xb4\x03\xb8\x3d\xff\x71\x9c\xd9\xe0\x18\x59\xfe\xb5\x27\xcf\x95\x44\xa6\x5a\x7f\x54\x0a\x8a\x14\x43\x7d\x98\xcc\x33\x54\x9c\x96\xe1\x9e\x79\xab\x40\xfd\xda\x07\x07\xb9\x89\x52\x0a\x29\x78\x79\x89\xdd\xf5\xd3\xc3\x7a\xf1\xf8\xd7\xee\xdb\xf3\xd3\xcb\xba\x6f\x95\x02\xf0\x81\x04\xe6\xf6\xe9\x79\xf7\xb4\x5e\x3e\xd3\x0e\xb4\xe9\x1b\x81\x11\x76\x41\x56\x55\xa9\xa1\xfe\xfc\x06\xcd\x38\x62\xc3\x8d\xb6\x62\x3a\xb7\x05\xbc\xce\x2b\x88\x6c\x13\x11\xc4\x11\xc6\x8e\x9f\x61\xbc\x34\x8a\x20\x4e\xa9\x96\x45\xe7\xe4\x31\x7e\xb3\x18\xca\xc1\xca\x10\x41\x62\x19\x35\x5d\xa1\xc7\x5f\x0f\x57\x5e\xb1\xb7\x3b\xa6\x7c\x32\x91\x2c\xdb\x5e\x0c\x08\x44\x90\x71\x52\xf0\x7b\xfa\xfe\xb8\x7c\xde\xf4\xff\x8a\x90\x6c\x21\xb2\x48\x2f\xb8\xd8\x67\xf5\x36\x41\xb0\x90\xa9\xcc\x0b\xeb\xe0\x71\xbf\xb5\xb6\x5d\xb3\xfb\x6d\xd6\x0e\x24\x21\x59\x75\xb5\xc8\x6b\xaa\x8f\x1d\xac\xdd\xd9\x34\xfd\x9f\xff\x9d\xdd\x23\x0c\xad\x3a\x46\xaf\xda\x33\xc8\xaa\xcd\x1a\x46\x69\xe8\xc7\x39\xe4\x7a\x7e\x34\xe3\xc4\xd2\x51\x1d\x7c\x29\x93\x65\x5c\xef\xa5\xc4\x40\x84\x52\x12\x10\xe2\x69\xfd\xbc\xb8\x1b\xfe\x34\xc6\xa1\x28\x96\xd6\xd3\x5d\x77\xb6\x69\x1f\x54\xe2\xb3\xc7\x8d\x64\x42\xd3\x90\x24\x9d\xec\x96\xe1\x2f\x15\x47\x92\xd0\x0d\xf7\xab\xe7\xc5\x9f\x5f\xea\x92\xb8\x13\x92\x50\x86\xa3\xac\xe6\x74\xb5\xeb\x8e\x7a\x9e\x59\xef\x5a\x7f\xb9\x3f\x8a\x2c\x08\xe2\x01\x9d\xf7\x8b\xc2\x3c\x77\x0e\x47\x6b\x4e\x37\x14\x6e\x20\x1f\xb1\x54\x8e\x1d\x7f\xda\x12\x78\x6a\x09\xe5\xe8\xea\x4e\x93\x6e\xb6\x25\x09\x19\x8b\x5e\x93\xf9\x1c\x79\x1e\x08\x99\x0a\x8a\xf4\x52\x55\xd8\x23\x94\xe3\xfa\x02\x21\x53\x4d\xee\xde\x01\x9a\xf6\x36\xff\x81\x0f\x79\x79\x6c\xfb\xf9\x2d\x24\x04\x22\xb4\x46\x69\xfe\x1f\x24\x30\x64\xdd\x10\x6a\x76\xf6\xac\x3a\x88\xa9\x7c\xc5\xce\x9f\xf5\xf3\xea\x8f\xc5\xd6\x26\xb4\x77\xd7\x0b\xbf\x10\x08\x14\x99\xb1\x0b\x5e\xb7\x32\xe9\x1d\x21\x46\x77\xe5\x88\xd3\x0d\x04\x6a\x5b\x22\xe4\xb9\x16\x69\xe5\xbd\x60\x23\x08\x13\x18\x2f\x88\x44\x03\xa8\x73\x3b\x7c\xc0\x7a\xde\x9d\x86\x01\x79\x1a\x40\x74\x65\x0e\xcb\x36\xeb\x2b\x03\x92\x32\x04\x13\x45\xcc\xd3\x6f\x68\xa4\x20\x2e\xf3\xce\x76\x73\xe0\xc2\x53\xb3\xe7\xe4\x14\x7a\xd2\x63\x83\xf5\x54\xcb\x07\x20\x88\x43\x8f\xef\x5a\x14\x05\x19\x66\xcd\x39\xdd\x55\x80\x20\x49\x29\x54\x4e\x34\x59\xcd\xce\x15\x28\xec\x46\x42\xf3\x00\x41\x16\xd1\xbc\xcc\x55\x65\xe1\x21\xfd\x01\x6d\xb5\x43\x0f\xf6\xd5\x37\xd8\xb6\xa4\x6f\x39\x9e\x21\xc0\xd0\x0a\x2f\xf6\x89\xbb\x85\x31\xdb\x59\x42\x12\x42\x69\x59\x23\xb6\xfc\xfa\x32\xbb\x1a\x40\x68\x32\x88\x7b\xd2\x52\x5b\x62\xfb\x79\x2a\x38\x0f\x10\xb1\x2c\xb3\x4b\x42\x61\x76\x4d\x3b\x40\x39\x21\xca\x80\xcc\xe1\xe6\x28\x1b\x8a\x23\x7f\x99\x97\x81\x58\x58\xf9\x8c\x75\xfe\x33\x3f\xfa\x6b\xc4\x2a\x48\x5c\xe5\x5f\x6e\xaa\x4a\xdf\xe0\x8f\xb3\x69\x5a\x48\x22\xe6\x33\x4b\xf6\xdd\xc7\x6e\xbb\x6f\x13\x5b\x2f\xeb\x6f\xd0\xf8\x8c\xea\xfc\x00\xa1\x34\x04\x1b\x61\xa2\x66\xef\x9b\x1a\x41\xdb\x66\x31\x51\xe8\x03\xc8\x18\x86\xb1\x4b\x3a\x9f\x95\xf5\x00\xe0\x49\x28\xa3\x3e\x8a\x72\x4f\x69\xe7\x4b\x06\x16\x70\x89\x54\x94\xec\xd0\xc3\x58\x5f\x80\x8c\xf8\xba\xd2\xe9\xd9\x22\x4e\x89\xeb\xdb\xc2\x43\x1e\x3e\xbf\x57\xf5\x7b\x73\x91\x32\xe5\x4b\x04\x14\x40\x14\x70\xf4\x64\x80\x9d\x13\x7f\x29\x59\x39\x7d\x04\x88\x85\xb1\x3a\xbb\x9e\x68\xf5\xdf\x47\xe8\xfc\x1f\x5f\x64\x06\x20\x34\x6d\x01\x8b\x22\x57\x93\xbe\x94\x2c\x4a\xc6\xaa\xf4\x3d\xb0\x78\x8a\x39\x9b\x3c\xef\xf9\x92\x77\x00\x19\x86\x04\x68\xb1\x20\x70\x97\x2d\xba\x10\x35\x07\xc9\x03\xb2\xde\x87\x7d\xb1\x7f\x24\x19\x53\x27\x4c\x14\x2c\xf2\xaa\xbc\x86\x43\xdf\xc4\x18\xc7\x09\x41\x86\xca\x06\x8a\x33\x85\x9f\x00\x2a\x15\x96\xbd\xb3\xaa\x8a\x2b\xca\x7e\xfb\x03\x1c\xb4\x9b\x72\x54\x0c\xb2\x28\xf5\x86\x0c\x2a\xaa\x1c\x77\x8d\x74\x28\x42\x07\x48\x75\xd6\x60\xf9\xfa\x64\xcc\x89\x64\x3e\x80\x06\x83\xbc\x97\x85\x5f\xe8\x1f\x58\xb7\x79\x73\xa1\x64\x18\x00\x3b\x17\x9d\x80\x3f\xaa\x3d\xd6\x7d\x99\x0b\x20\xe7\x23\xe8\x73\xf7\x29\x46\x16\xd8\x59\x50\x00\x20\x32\x0a\xeb\xdc\xd4\xf0\x31\xac\x94\x68\xac\xf8\x62\x93\xff\x6c\xdf\xfa\x08\xf6\x4c\x64\xb7\x6b\x06\xe4\x1d\x2a\x82\x4b\x39\xe6\xd1\x11\x80\x10\x0c\x4b\x79\xe2\x76\x4d\x07\xd8\xb6\xc1\xc6\x6e\x03\xb1\x7b\xff\x06\xf6\x54\x6e\xdf\xa7\x8f\xc1\x48\x93\xb9\x38\xaf\xf5\x23\xfc\xff\x28\x28\x1c\xbe\x77\x5e\xb2\xfb\x5f\x06\x61\x12\x3a\x37\xce\xd2\x32\x74\xab\xce\x1a\x3e\x66\xd9\x62\x19\xf0\x48\x90\x11\x49\x15\x24\x37\xb2\x3f\x5f\x5a\x99\xca\xce\xfb\x26\x9e\xa7\x9e\x4b\x63\x74\xae\x34\xd1\x69\xec\x79\x12\x6e\x9c\x9e\xc0\xa2\x80\x28\x22\x7f\x54\x2d\x36\x8f\xde\x92\x92\x4c\x00\x15\x22\x7d\xab\xa0\x78\x80\x9f\xf9\xfe\xb8\xf7\xa4\x5c\x5f\x02\x6f\x64\xc8\x32\x52\x45\x69\x8e\xf2\xa9\x7c\xa2\xd4\xd5\xeb\x2f\xc0\x3a\x32\x0c\x13\xb2\x2a\xec\xc2\x62\xe9\xe9\x89\x1f\x98\x54\xbc\x4f\x95\x55\x4f\x74\x64\x41\x86\x31\x52\xd2\x49\x55\xfb\x7d\xde\xfe\x31\x06\x08\x7d\xc5\x68\x07\x32\x4c\x79\xc4\x3c\x01\x53\x3b\x32\x26\x65\xc8\x95\x27\x41\xd8\xd6\x78\x92\x6a\xf7\xad\x44\x60\x54\xff\xec\x7f\xe7\xe5\xeb\x7f\xde\xf2\x39\x60\x74\xfa\xba\x51\x0c\x82\x79\x7f\x6e\x59\x62\xfd\xea\x3d\xc0\xff\x8f\xb6\x37\xeb\x4e\x1d\xc9\xd2\x40\xff\x4e\x3e\xf4\x83\x86\xd0\xf4\x08\x18\xdb\x54\xda\x86\x02\x7c\x4e\x56\xd7\xea\xc5\x8a\x61\x07\xa8\x2d\x24\x4a\x83\x7d\xc8\x5f\x7f\x97\x76\x0c\x1a\x10\xce\xec\x7b\xd7\x7d\x39\xce\x24\x42\x73\x0c\x7b\xf8\xf6\xf7\x31\x12\x46\x98\xd7\x98\xb7\xc6\x86\x1a\x81\x38\xe5\x3f\x8f\x83\x24\xeb\xfd\x34\xbf\x8e\x5e\x8c\x6e\x92\x08\x07\x29\x31\xce\xf4\xd7\xbe\x57\xd8\x69\x5a\x81\xa1\x01\x3e\x13\x62\x8a\x8d\x44\xf7\x0a\x69\xe0\x28\xcb\xf0\x5a\x34\xf5\x3c\x3d\x0e\x04\x9c\x4c\x27\xe9\xa3\xd9\x37\xaf\x81\x9e\xfb\x10\x1f\xdb\x1e\x23\xaf\x53\x09\x79\xd1\xe4\x1c\xac\xd2\xaa\x6e\x8f\xdc\x08\x3f\x63\x6b\xf2\x34\x17\x45\x43\x2c\xba\x79\xca\x22\x4f\xd1\x27\xd0\xaa\x82\x7a\x25\xd6\x72\x10\x05\x30\x9d\x42\x1f\xe7\x89\xca\x6b\x23\x78\xa5\xa6\xe7\x0b\x8e\x44\xdf\x9e\x29\x51\xac\xa5\xf4\x01\xb3\x67\xa6\xba\x64\xf4\xe1\xfa\xa6\x10\x8b\x84\x8b\xd5\xf5\x07\x4d\x14\x08\x9f\x69\xbb\x79\xae\x2e\xb2\x7a\xa6\xd5\x09\x46\xee\x03\x8b\x05\x20\x9a\xed\x44\xab\xd3\xa1\x4c\x2f\x70\x16\x6e\xe8\x4c\xa6\xd7\x58\x2c\xb9\x27\x2c\xfc\x02\xaa\x8d\x8e\x6f\xed\x4a\x7e\x67\xe2\x26\x8e\x40\x3c\x27\xda\xc5\xad\x7d\x6b\x19\x9b\x29\xb2\x54\xb6\xdf\xfb\x79\xdb\xb3\xed\x19\xa5\x8a\xec\xf2\x92\xf2\xa2\xea\xf6\x18\x46\xb9\xa2\x67\xc4\xb2\x52\x9e\x5e\x68\x0d\x87\x34\x3f\xd0\x92\xa5\x75\x75\xb8\xa8\x4c\xc0\x41\xa6\xf4\x4e\xec\x94\x89\x48\xa2\x0e\x9f\x59\x7f\x1f\xa8\x9d\x44\x82\x81\xe2\xd0\x2a\x4a\x0e\xeb\x4f\xd4\x06\x38\xda\xcf\x29\xa4\x8b\xd5\xc6\x07\xad\x17\x3d\x2d\x21\xf9\xad\xff\xc4\x80\x48\xc3\xee\xb6\xca\x55\x58\x66\xd4\x21\xa0\x66\xd9\x5d\xd0\x5c\xa4\x56\x99\xda\x7e\x28\xd9\x6e\x11\x6a\x68\xbf\xd2\x5f\x33\x5d\x5b\xd6\x5b\xd2\x99\xa4\x8a\xa3\x4e\x14\x39\x1d\x71\xcf\xb5\x8d\xd2\x35\xe5\x45\x25\x74\xc4\x30\x5d\x20\x82\x49\x26\x10\x53\x79\x4e\xf3\x7a\x51\x9c\xcf\x4d\x9e\xd6\xd7\x61\x3a\x97\x3b\x6e\x48\x35\x6b\xd9\x9c\xf2\x8f\x9e\x88\x85\xe9\xe0\x05\x94\xd9\x5d\xb3\x57\x20\x85\x74\x5d\xc3\x6c\x92\x39\x24\x8e\xfc\x64\x80\x43\x7e\x68\x3e\x86\x70\x1b\xee\xba\x8e\xf1\x0f\x94\xe6\xc1\xae\x37\x94\xb8\xeb\x85\xc8\x92\xa0\xe0\xed\x37\x30\x55\xee\x26\x11\xc6\xe0\x57\x9b\xd7\x5e\x82\x96\xbb\x34\xc1\xe8\xcd\x73\x3a\xdf\x0f\x80\x46\xdc\x15\xcc\xe8\x34\x2d\xeb\x93\x8e\x67\x28\x5a\x40\xf4\x08\x50\x4c\xbd\x87\xc5\x70\xbd\xd8\xfc\xd5\x67\xf0\x1c\x40\x9b\x46\x59\xb1\x3a\x2a\x8e\x4c\xf9\x83\x0f\xcf\x3d\xaa\x38\x33\xd4\xe0\xc2\x02\x03\xa8\xa1\x1c\x4d\x53\xee\x3b\x21\x53\x6c\x01\xfd\x4a\x26\xee\x87\x04\x83\xc7\x1b\x9a\xd1\xcf\x92\x0e\x9a\x12\x82\x7e\x8c\x68\x94\xc9\x32\x87\xfa\x0b\x40\x6b\x80\xb4\x3e\xa0\xfd\xa6\x24\x56\xb2\x31\x16\x26\x32\x11\xfb\xe7\x84\x06\x2a\x12\xf7\x63\xf6\x62\x8c\x93\xc1\x2b\x0b\x1c\x81\x6e\x72\x6d\xd1\x36\x28\xb5\x62\xa6\x11\x0f\x63\xa6\x68\xe2\xa6\x3c\xd9\xe1\x74\x69\x0d\x45\x8c\xb8\xef\xea\x82\x7f\xbc\x98\xdc\xda\x60\x40\x84\xd2\xd5\x42\x52\x36\x2c\xff\xf0\xf4\xdf\x03\x28\x17\xf2\x14\x87\x6a\x47\x79\xdf\x3d\xd8\x5f\x65\x8c\x75\x7e\xb6\xc6\x6f\xc4\xee\xa3\xbb\xc5\x01\x20\x0d\x65\x5a\xfd\xa0\x59\x2a\xde\x6e\xcc\x18\x1e\x47\xae\xab\x2b\x36\xfb\x7c\x8d\x94\x27\x4c\x3a\x3a\x44\xfc\x7d\x2c\x86\x53\x4f\x45\xc4\x90\xdf\xfa\x13\xaa\xfa\xd7\x26\xa3\x75\xbf\x36\xde\x74\x14\xd4\x4a\x0e\x66\xd9\xac\xdd\x59\xec\x63\x72\xcf\x41\xdd\xa3\x8f\x34\xcb\x5e\xa1\x3a\x6d\x8a\x76\x74\xde\xc9\x09\x4e\xb0\xcd\x51\xce\xa5\x87\x84\xbd\x98\xe1\x1b\x80\x9a\x47\x1d\x85\x4b\x55\xbc\x33\xbb\x55\x92\xfb\x26\xbd\xc6\x85\xa7\xa4\x84\x8d\x2d\x0d\xf0\xe7\xd8\x6c\xe7\x22\x02\xf4\x9a\xad\xc0\x79\xbb\x67\xec\x8b\x3d\xd8\xe0\x36\x07\x29\x0c\xa8\x6d\x91\xd6\xd7\x5d\x56\x1c\xe9\x58\x13\x5b\x77\x95\x7e\x82\x88\x9b\x5d\x0d\x34\xab\x4f\x4f\x65\x2a\x26\x15\xb4\x87\x07\xc5\x01\xba\x5f\x97\x8c\x5e\x5f\xa1\x67\x8e\x4e\x0e\x53\xe1\x78\x2a\x77\xfa\x3a\xfb\xe3\xb0\xd9\x2e\xb1\x30\xa2\x27\x3c\x47\x85\x43\x09\x24\x26\x0a\xf8\x56\xd4\x1d\x83\x82\x70\x5d\x96\x18\x98\x61\xda\xba\x15\xb6\x34\x59\xb8\x5e\x82\xd6\xee\xfa\x0b\xcb\xdb\xfb\xb3\x4c\xb8\x8c\xe3\xd0\xaa\xda\xc7\xd2\x48\xb1\xc9\x6f\x2a\x3c\x9a\xc8\xb8\x0f\xac\x1a\xfb\xba\xe3\xee\xa0\xea\x6f\x55\x7c\x15\xb5\x6c\xe6\x98\xde\xee\xb3\x39\x75\xcf\xee\x7b\x11\x32\x40\xe8\x02\xdc\x1d\x3f\xc1\xd9\x3e\x9c\x1f\x38\x68\x54\x2c\x7f\xf1\x12\x6a\x8c\x08\xf7\x9e\xc1\x8f\x13\x45\x86\x6b\xd8\x82\x5b\xc3\x64\x5b\xb9\xdb\xca\xbb\x2d\x9c\x15\x3e\xc4\x98\x52\x79\x2a\x01\xf2\x1e\x6b\x5e\xdb\xa2\x28\xb4\x4a\x9a\x8b\x11\x02\x50\x90\xc0\xc7\xb9\xf9\x73\xb9\x3a\xbc\xae\xde\x56\xaf\xef\xaf\x87\xcd\xfb\x76\xf1\x3c\xdb\x2d\x6d\x1f\x11\x63\xf8\xbc\xa9\x5a\xbf\xb8\x1f\x0c\xed\x0f\x0a\x11\x12\x35\xf5\x5e\x67\x7f\x2c\x66\x1b\xa3\x4d\xbd\xd9\x2e\x0f\xab\xc5\xda\x9c\x2b\x76\xdc\xb0\x93\xef\x1a\x67\xaf\xa6\x67\xbf\x88\x29\xa5\xa1\x49\xe2\xcc\xce\x13\x35\x41\x22\x16\x71\x14\x98\x68\xf6\x15\x60\xf9\xeb\xa2\xa2\xdf\xe7\x3e\x7f\x65\xbf\x92\x52\xc4\x52\x85\x03\x5f\xa1\x2c\x53\x93\x81\xfc\xb6\x68\xbe\x97\x8d\x10\x89\x17\x61\x95\x9a\xaa\x24\x37\xa5\x33\xa3\xc5\x51\x24\x81\x87\x9e\xd7\xe9\x70\x31\x44\xd3\xed\x8f\x11\x62\x02\xbf\x6e\x05\x70\xa9\x48\x42\x17\xd5\xed\x87\xfa\x45\x7f\x85\x52\xbf\xe5\x31\x10\x89\x16\x09\x31\xf2\x6b\x8b\xa6\xbe\xa3\x68\x43\x45\x02\x12\xa1\x01\xef\x8c\x5e\xbf\x89\xf9\x09\xea\x05\x49\x68\x51\x08\xec\xe6\xe6\x19\x8b\x71\x08\x14\x39\x2e\x5d\x5d\xe6\x5b\x30\xae\xdc\xe0\x79\x53\xe2\x64\xb5\x4f\xf6\x7f\x7c\xed\xdc\x53\x22\x45\x23\xe1\xcd\xd9\x62\xbf\xfa\x61\x07\x2c\x8f\x04\xd5\xfc\x5a\x0b\x68\xc7\x7b\x36\xa7\xf9\x98\x6c\x9a\x0a\x11\x50\x4d\x17\x23\x8b\x26\xbf\x25\x83\x11\x22\x8a\x99\x62\x7d\xa3\x65\xfd\xcf\xc9\x41\x2f\x80\x1a\x85\xab\x1d\xaa\x06\x8d\x4e\x01\x21\xf7\x75\x7b\xbb\x33\x9a\xd0\xe4\xc0\x68\x11\x32\x54\xd7\x79\xdf\x6f\x5e\x06\x2b\x80\x8c\x34\xc1\x1c\xe4\x9d\xbc\x36\x05\xd7\x0d\x30\xf2\xf7\x89\x7c\xe0\x0a\x0b\xd0\x83\x70\x7d\x3b\x99\xc0\x0b\x05\xc6\xa9\x6a\xc8\x1f\x80\xa7\x67\x9a\x6d\x32\x6a\xa5\x3f\x28\xf8\x81\x92\xb7\x3c\xd9\xe4\x1c\x10\x37\x36\xa1\xde\x8d\xd2\xac\xde\x94\xe8\xca\x0e\x44\xbc\x06\x2f\x17\x08\xd3\xa5\x5f\xb3\x3f\x0e\xcf\xeb\xdd\xfe\xa0\x99\xe6\xcc\x39\x03\x8f\x70\x8d\xa7\xae\xb7\x69\xf5\x31\x2d\x0b\xaa\x3b\x87\x9e\x1b\x9b\x9c\x79\x53\x6a\x8c\xb2\x69\x8b\x02\x44\x0e\x3f\xd1\x33\xec\x52\x3e\x2f\xfe\x8a\x42\x71\x78\x9f\x91\x17\x10\xc4\xc3\x63\xf5\xff\x6f\x83\xcb\x46\x5c\xe1\x38\xd0\x7b\xc8\x53\xeb\xb9\x42\xc4\x55\x61\xc6\x2a\x57\x9c\xab\xdf\x87\x44\x20\xf6\x62\x7c\xa5\x87\x1c\xbe\x9e\xe8\x38\xcf\x01\x71\xe8\x63\x35\x92\xf1\xb8\x36\xdb\xdd\xf0\x6d\x98\x7e\x11\x8d\x1c\x5b\x3e\xda\xae\xe4\xd0\x43\xc2\x8d\xaf\x49\x3d\xad\x90\x9a\x0f\xcb\xaf\xee\xdd\x23\x8d\xd4\x66\x73\x02\xfe\x31\xf0\x41\x06\x63\x15\x62\x46\x54\x2e\x99\xd7\x0d\xcd\x9e\x8a\x7a\xb9\x7f\x1e\xdd\x67\x12\xc5\x98\x59\x7c\x9d\x6d\xb7\x6b\xe3\x44\x40\xc2\x43\x34\x6d\x2e\x65\x51\x17\xbc\xc8\x06\xe2\x01\x14\x28\x11\x9e\x8a\xe3\xd3\x8e\xd3\x07\x28\xf5\x54\x74\x05\xef\x6a\xe0\x62\x41\xeb\x88\x69\x48\xd4\x4b\xfa\x9f\x26\x15\x69\x7d\x9d\xe5\xc2\x50\xb6\xdc\x04\xb3\xcd\x61\x5c\xd1\x7a\x40\xdf\x38\x47\xcf\x6b\xad\x4a\x2f\xf3\xbf\x56\x5c\xa5\xc0\xb8\x92\x8d\x52\x00\x0b\x0c\x51\xe9\x16\xee\x53\x44\x42\x6e\xca\xa2\x90\x6b\xf9\xdc\x9c\x69\xeb\x1f\xce\x84\x58\xdb\x87\xe5\x09\x41\x77\x5f\x13\x07\xf5\xd4\x9d\xef\x7c\x1d\xe1\xfa\x58\x32\xf3\x71\x65\xbd\x5b\xb4\x8d\x89\x13\x98\x42\xdc\x9a\x9f\xd2\xfc\xb8\xc4\x45\xb6\xcf\xaa\x00\xc2\x0b\x70\xe7\x4d\x73\x45\x74\x52\x3c\xa4\x15\x9c\x19\x2d\x3f\x46\x34\x94\xc3\xd7\x25\x22\x89\x5c\xcf\x1a\x9c\x3b\x5d\xe3\x0b\xe0\x26\xdc\xb0\x0c\x77\xb1\xd6\x1e\x2d\x35\x05\xe9\xc7\x28\xae\xbe\x30\xb5\x59\x18\x0b\x9b\xd8\xcb\x41\x86\x52\x2a\x63\x1f\x39\x82\xf7\x25\x35\x25\x07\x0f\x69\x75\x93\x3a\x19\xbd\x29\xc9\x22\x74\x80\x65\x3b\xe6\x0f\x5c\x4b\xa0\xab\x46\xe9\x38\x04\x22\x83\x4e\x93\x50\x96\x34\x1b\x25\x8b\x86\x4f\x2f\x9d\x80\x63\x00\x34\xa3\x55\xad\xb1\x5c\x9d\x46\x48\xdb\x2c\xb0\xc0\xa3\xc9\x91\x1d\x47\x39\xe5\x33\x03\xae\x55\xd3\xce\x74\x6d\xdd\x2c\xed\x98\xe0\x43\x23\xaa\x5c\xd6\x50\xa2\xa2\xeb\x83\x05\x3a\x49\xd7\xf3\x99\x82\x33\x48\xf9\x5c\x34\xe5\x1d\x62\x20\xe9\x86\x2e\x2e\x1b\xaf\x2a\xed\x33\x69\xb5\x37\x3d\x6d\x69\x73\x18\x0b\xa8\xa6\xfc\xa9\x71\xf1\x7a\xc7\x9b\xbf\x59\x1e\x86\x07\x71\x8f\x68\xa4\x6a\x3d\xb5\xbe\x8e\xae\xe1\x79\x2a\x80\x7b\x84\xfa\x1f\x05\xbb\xb3\x44\x49\x3f\x62\xc8\xcd\xf2\x50\xe4\x9d\x4d\x69\xda\x62\xc0\xf0\x08\x52\xd7\xcd\xab\x4b\x5f\xed\x81\x4a\x3f\x61\xd8\x8a\xfe\x1d\xc6\x57\x84\x5e\x31\x07\xcf\x3d\xfc\x96\x3e\x53\xec\x65\xba\x20\xba\xee\x4b\x04\xfc\x45\x44\x5a\x12\xee\xf7\x54\x67\xa7\xc5\x4d\xa9\x0c\x3c\x65\x4c\xef\xb7\xb3\x89\x22\x77\x19\xf8\x41\x68\xa1\x3f\x7b\xa0\xe7\x81\x17\x2e\x03\x2e\x85\x30\xa2\x6d\x6b\xb9\xac\x4f\xeb\x7c\xf9\xbe\xb5\xcd\x10\x32\xaf\xc7\xcf\xbb\xb4\x52\x81\xdd\x1b\x0d\x25\x43\x72\x0f\x24\xcd\xc3\xb3\xaf\xce\x17\x93\xa1\x92\x11\x55\x64\xe3\x65\xdd\x8c\x8e\x8b\x38\xc1\xcc\xea\x02\xca\x3a\x95\xa9\x55\x50\x6b\x5b\x40\x15\xaa\x43\x55\x4f\x94\x06\xc9\x08\x38\xd7\x8c\xed\xdb\xa2\x82\xbc\x3d\x03\xe2\x68\x46\xcf\x1e\x53\x89\x98\x26\x71\xb4\x1f\x31\x66\x21\x51\x45\x6a\x48\x81\x3a\xcd\x8d\x21\x63\x29\xb0\xa2\x65\xb5\x3b\xb7\x06\x31\xd8\x60\x96\xa4\x9c\x7a\x4a\x6e\xf6\xfa\x7d\x7a\x5e\x32\x4f\xa1\xcd\x54\xe8\xc0\x90\x5c\x99\xf3\xb0\x44\x22\x57\x74\x5a\x2d\x68\x29\x90\xfb\xde\xea\x73\x19\x80\xa8\x64\x8c\x72\xa5\xbb\xab\xc3\x92\x77\xae\xc4\x7d\x2c\x48\x99\xe5\x39\xfc\x82\xc3\x6e\x7d\x78\x58\xfd\x98\x1d\x76\xb3\x9d\xbd\x1a\x28\x7d\xd6\x7f\xfe\xf3\x9f\x7d\x53\x4f\x72\x21\xf1\x1e\x55\x1c\xec\x09\x72\x47\x87\x2e\xff\x6f\xe5\xf2\x92\x4b\x82\xe8\x05\xfc\x58\xfb\xaf\x42\xed\x04\xbf\x75\xad\x48\xcb\x9d\xe2\x9b\x18\x7d\x4b\xe1\xd2\x48\x98\x2a\xb3\xe9\xfa\x1b\xdd\x13\x08\xf7\x23\xeb\xfc\x64\x20\xed\x47\x81\x44\xe2\x44\xd9\x43\xa5\x82\x64\xa3\xcd\x4a\x82\x08\xd1\x23\x52\xac\x34\xed\x12\xa9\xbd\x67\xdd\x2e\x5d\x07\x15\xdb\x5f\xd2\x1c\x68\xf9\x00\x9c\x5e\xdb\x45\xb7\x3d\x95\x29\xa9\xb4\x5d\xbd\x98\xf8\x7a\x9f\x68\x2a\xc4\x63\xed\x8c\x0c\x26\x95\x92\x24\x42\xaf\xf5\xbb\xf4\x4f\x98\xe5\x62\xdb\xab\xee\x18\xbc\x35\xe6\x38\x8e\x74\x9c\xbe\x94\xf0\x21\x87\x5f\xf5\x01\xb4\x17\x79\xf8\x82\xf4\x6f\x15\x0a\x33\xc7\xe1\x0a\x9d\xa8\xbe\xe3\x73\x51\x56\xb0\x3b\x15\xe0\xde\x03\x37\xea\xc3\xdc\x24\xc4\xac\xd9\xf6\x5f\x6f\xd6\x96\x60\x8e\xcb\x64\xe0\x76\xb1\xb5\x09\x9f\x8b\x39\x5e\xcc\xd0\x79\x78\xf9\x7d\x71\x9b\x0c\x65\x8e\x27\x12\x2c\x3d\x78\x5b\xbd\xce\x4d\xad\x3c\x73\x7c\x16\x63\xd4\x75\xf5\xfa\xb0\xfc\x43\xf4\x49\x59\x99\xe3\x8b\xc8\x51\xcc\xae\x22\xad\x2e\x4d\x0d\x8f\xf4\xd3\x24\x75\x98\x43\x48\x80\xc0\x54\x5c\x98\x97\xbf\xea\x92\xae\x2f\xca\xdc\x32\x1d\x62\x69\x12\x9b\xaf\xd7\x07\xb8\x64\xc5\x75\x36\x55\x8f\xc7\x1c\xa2\x05\x31\x54\xb0\xeb\xbd\x82\x12\xcd\xb0\xa7\xb2\x68\x6e\x78\xf6\xb4\x5b\xcb\x1c\x22\x62\x0c\xc1\xb5\x93\x70\x2d\x65\x8f\xde\x7e\xf8\x5a\x08\xc4\xc4\x31\x30\xdb\xfb\xa8\x12\xe6\x04\xc2\xc7\xf8\xe5\x82\x66\x99\xe1\xb9\x16\xa3\x77\x1c\x26\xb1\x1b\xda\xfd\xec\xb6\x34\x90\x39\x91\x0b\x44\x45\x06\x4b\xa0\xe2\x2e\xbd\x20\x73\xa2\x30\xc6\xa4\xa0\x65\x88\xd7\xae\x67\x7f\x2f\x60\x4e\x1c\xb2\xc4\xeb\x58\xae\xf6\xc5\xfe\x75\xf9\xc7\x9d\x27\x8d\x25\x48\x5d\x9c\x71\xa8\xfb\xdb\xce\x08\x1b\xc8\x9c\xc4\x97\x18\x66\x53\x38\xae\xd7\xf7\x97\xfd\x6a\xf3\xb2\x32\xac\xdf\xcc\x49\x92\x04\x91\xc5\x5a\x9b\xf2\x5f\x40\xed\x67\x4f\x20\x42\x4b\x47\x4d\xdb\xe7\xf4\x13\xec\xbd\x52\xea\x62\xe5\x9a\x56\x53\xaf\x4f\x8f\x30\x7e\x3b\x94\xab\xbc\xc2\xe1\x1b\x7c\xfd\xdf\xf2\xd7\x98\xc3\x99\x8b\xfb\x01\xfa\x8d\xf4\xeb\x1b\xb7\x91\x39\xc2\x71\x71\xb5\xcb\x1a\xfe\x71\x9d\x37\xd7\xdf\xec\xef\x8a\x28\x98\xb6\xe6\x17\x22\x29\x54\x7d\x10\xea\x45\xa0\xd5\xa6\x69\xb9\xdf\x9a\x73\x3f\xa5\xc9\x1c\x70\x95\x2c\x9f\x61\xa2\x98\xcf\x5e\x66\x6f\x8b\xa5\x9d\x57\x10\x12\x04\xf0\x08\xa8\xa1\x3c\xa7\x39\x74\x4c\x2e\xf6\x7d\x01\x53\x5f\xc1\xc8\xec\x89\x7f\x34\xe5\x75\xc2\xe1\x63\x8e\x64\x32\xf2\x4c\x89\x35\x43\xa6\xb8\xe1\x03\x4a\x11\x63\x70\x74\xb6\xed\xca\x2e\xdb\x5f\x99\x0a\xb7\xea\x78\xde\xeb\xec\xed\x7d\xf6\x72\xd8\xad\x9e\x30\x64\xb2\x5a\x3f\xd8\x9e\xd2\xc1\x6c\x5a\x96\x56\xf5\xc2\x30\x9e\x84\x64\x9c\xaa\x51\xaf\x55\x6d\x85\xcc\x75\x1c\xea\x6b\xc4\x15\xea\x29\xec\x9a\xf3\x7d\x33\x95\xb9\x4e\xe4\x62\xa2\x12\xa5\x6b\x2c\xa9\xee\x5b\x93\x65\x23\x92\x04\xe6\xba\x1e\x10\x93\xe0\x4a\x4b\x5c\x88\xd3\xfc\xd8\xcf\x6f\x33\xd7\x85\x08\x9d\x83\xdd\xea\xe5\xc7\x72\x6b\xb8\x76\x76\xbf\xbf\x98\x0e\x1e\xf1\x48\xa0\xe1\x66\x5b\x0d\x11\x7f\x58\xbd\x21\xb7\xa5\x91\x76\x9e\x1e\x2f\xae\x17\x04\x68\xb6\x62\x35\xe0\xed\x5a\xea\xfa\x22\x4a\x14\x17\xa0\x00\x38\x83\xb8\x11\x5b\x60\x2e\x09\x7c\xa1\xf3\x7e\xbb\x2f\x7a\xe9\x1b\xb5\xcc\x25\x21\xc1\x49\xa4\x83\x28\x48\x02\x63\x9a\x58\x84\xa6\x23\x15\x42\xf3\x0f\x7e\xe7\x7f\x32\x97\x70\x1a\x84\x1a\x0c\x6d\x21\xcb\x0c\xb9\x83\x43\x15\x98\xe7\x78\xfe\x1e\xd5\xb8\xc6\x3f\xdd\x52\x81\x0f\xcf\x1c\x00\xc3\x98\xf4\xbe\x68\xb7\xdd\x9b\xec\xc5\xb0\x73\xc8\x94\x49\x8b\x79\x99\x1e\xf4\x6f\xdc\x4d\xa7\x86\xdb\x4d\x75\x53\x14\x59\x2f\x10\xa9\x7b\x44\x7e\x80\xd5\xb4\x5a\x84\xad\xd2\xaf\x68\x38\x21\xdc\x88\x85\x14\x13\x46\x39\xeb\x19\x4f\xcc\x8d\x89\x8b\xc1\x0e\xa4\xa4\x14\x77\x29\xa6\x87\x4b\x89\x1b\x07\x11\xa2\x90\x8c\x44\xcf\x86\xd6\xa7\x2f\x7a\xbd\xb3\x9a\xb8\x89\x23\xdd\xb8\xa3\xa6\x18\x2c\xd8\x6e\xe2\x53\x95\x39\x7d\x5b\xed\x57\xb3\x97\xc3\x6c\x31\x48\x71\x30\x37\x89\xfd\x50\x17\x00\x5b\x2b\x7b\xf4\x74\x49\x1c\x63\x2a\x66\x9e\x15\x9c\xd3\xd6\x70\x2a\x6e\x71\xf0\xcc\xe5\x81\x2d\x05\xd3\xae\x66\x9a\xb5\x93\x68\x78\x32\x1e\x26\x28\x88\x87\xd3\x0e\xce\x17\xcf\xdc\x88\x10\xb1\xa0\x16\xf5\xf5\x08\x76\x21\x77\xc1\xd3\x00\x5e\x25\x25\xfc\x50\x9c\xfb\x14\x30\x7d\xb3\x9c\xb9\x10\x38\x6e\xd8\x19\xef\xfb\x13\x3c\x17\x22\xb3\x67\x12\x0e\x1a\x09\x5f\xb4\x04\x64\xde\xb4\xd7\x90\x51\x88\x09\xfe\xcd\xf6\xbf\xf7\x7f\xcf\x63\x65\xae\xe4\x5c\x51\x16\x9e\x2f\xd9\x41\xa5\xae\xd5\xb0\xbe\x5b\xb2\xc2\x5c\x29\x02\x64\x4f\x52\x59\xd4\xf9\x08\xdf\xce\x3c\x47\x93\x4f\x97\x5a\xc3\xc4\xac\xf0\x9e\x4b\x94\x2c\x4b\xbb\x24\xce\xb2\x6c\xde\x5c\xef\x98\x0f\xc3\xd1\xe1\xb9\x81\xe3\x59\xae\xf5\x65\x7d\xda\xf2\x4f\x61\xcf\x29\x1c\x14\x4c\x69\xdf\xea\x7c\xbf\xf8\x65\xcb\x3c\x99\xe7\xf9\x4a\xe9\xc8\x54\x72\x96\x56\xab\x92\x79\xc8\x69\xdd\x3e\x83\x2a\x9b\x84\x58\x6b\x3c\xf5\x87\xbe\xe7\x7b\x11\x66\x03\x2f\x4d\x96\xa1\xda\x8c\x59\x38\x8b\xbe\x8e\x14\xf3\x08\xf1\x85\x76\x60\x30\x09\xfb\x5e\x8d\x25\xad\xdb\x3e\x09\xb3\x81\xa4\x5f\x8b\xd9\x66\xdc\x4e\x29\x86\x90\xda\xe7\x98\x99\x1b\x08\x3c\x81\x65\x00\x87\x12\x25\xef\x7a\x35\x9c\xa3\x37\x14\xf8\x8a\x4a\xe0\x7d\xf7\xb0\x7f\x9f\x2f\xed\xf1\x34\x42\x64\xd6\x31\xfd\x84\xdf\x1b\x51\xdc\x99\x7e\x5e\x2c\x54\x95\x37\xbe\x60\xc5\x36\x66\x8a\x81\x5f\xe9\xe5\x62\x73\x0d\xcc\x4b\x5c\x50\xcc\x35\x4a\x1b\x5e\xc1\xeb\x7a\x55\xaf\xcc\x4b\x02\x1f\x09\xac\x44\xfb\xed\x53\xd6\xd4\xf0\xb2\x98\xed\x9e\x6f\x0d\xa7\xd1\x3d\x24\x91\x4c\xfa\x8c\xde\x0f\xb4\x18\x4e\x3b\x2f\x49\x1c\x8c\x54\xcf\x9f\xe6\x43\x3d\x64\xe6\x25\x52\x21\xb3\xda\x19\xf9\x48\xd3\xec\xf0\x59\xd4\x50\xbe\x15\xb5\x59\x0f\xec\x87\x67\x5e\x1c\x9b\xd8\xf8\x4a\x8b\xe2\x98\x02\xe8\xfb\xa6\xa5\xc7\xa8\x60\x46\x06\xaf\x11\x69\x3d\x2a\x2a\x63\x1e\x8f\x5c\xf4\x05\x44\x81\x5e\x6e\x21\x17\x45\xd6\x3a\x3b\xe5\x5f\xf3\xa7\xde\x79\x21\x3c\x71\x59\xd2\x41\x48\x47\x3a\xb6\xc3\xbe\x82\xbb\x98\x39\xdd\x2e\x17\xcb\x55\xbb\x77\x6f\x66\xff\x5a\xbf\xef\x0f\xfb\xe7\xed\x72\xf7\xbc\x7e\x31\x56\x89\x07\x91\x1b\xa0\xc5\x70\xbd\xc0\xbc\xfb\x31\x44\xdb\xf4\x65\x76\xf8\x52\x9c\xba\xba\x41\x12\x11\x93\x01\x01\xab\x66\x9f\xfc\xfe\xce\x65\x1c\x63\xd9\xd2\x7f\x1a\x9a\xd7\xa9\xa0\x02\x1e\x60\x86\x22\x0a\x7f\x52\x5e\x8c\x2a\xa0\x99\x27\x99\xa2\x20\x3b\xa7\xb9\x1a\x4f\xcb\xc6\x2c\x19\xbe\xe3\x29\x49\x4a\x49\xd3\xf2\x3a\x12\x00\x66\xbe\x43\x63\x0c\x21\x96\x45\x96\xed\xbf\x8a\xc1\xcb\xe9\x53\xbb\x32\xdf\x11\x1e\x06\xfe\xd2\xfc\xb3\x18\x01\x9f\x98\xef\xc6\x01\xde\xc0\x4c\x88\x87\x6b\x4e\xcf\x93\x0c\x52\xa3\x8a\x23\xe6\x7b\x6e\x88\xd1\x00\x8c\xcb\x66\x45\x65\x65\x61\x4c\x7b\xa2\xaa\x1a\xab\x2f\x8a\x52\x61\xfa\x67\x3f\x72\x11\x62\x88\x73\x2d\xad\x2a\x53\x6b\xc5\x7c\xe2\xbb\x8e\x22\x60\xfa\x52\x28\xfa\xce\xf8\xf0\x83\x04\x10\x52\x2e\x55\x0d\xea\x60\x83\xf4\x03\xa1\xe8\xec\x0c\x41\xf0\x6d\x30\x89\xf9\xa1\xaf\x92\xc3\x36\x42\x77\x84\xb1\x2e\x0c\xf3\x43\x1a\x62\xfd\xd5\x05\x1f\xdf\x9e\x3f\x4a\x3c\xb5\x3b\x67\x05\xa3\xd9\x03\x4d\xb3\xeb\xc0\x70\xf4\x23\x4d\xa6\x55\x0b\x5d\xea\x62\x1a\x62\x00\x34\xa5\xe0\x57\x5a\x3f\x02\x1c\xcc\xef\x94\x50\xcc\x88\x50\xf1\xbf\x4d\xd5\xb6\x2c\xf3\x3a\xad\x33\xb8\x8b\xc7\x61\x3e\x8b\xe3\x40\xcd\xfe\x7f\x2c\xbe\x01\x50\x30\x9f\x47\x01\xb2\x09\xd5\x29\x94\xfb\x53\x09\x1d\xf7\xa2\xee\x20\x68\x84\xab\xea\x7c\x3d\x5f\xa3\xbb\x66\xf6\x6f\x1f\x28\xa0\x63\x8b\xa1\x7e\x35\xda\xf6\xf4\x03\x8a\xcf\xfb\x3a\x3d\xe6\x48\x16\x29\xbe\xf5\x2f\x5a\xea\xc4\xf8\xa6\xb4\xd1\x6c\xe6\x83\x08\x3c\x0d\xb2\x79\x4c\x69\x3d\x19\xea\x6f\x7b\x01\x06\x68\x4c\x18\x6d\x96\x65\xa3\x1e\x32\x91\x8a\x8a\x07\x95\x16\x20\x17\x36\x22\x3e\xfa\x94\x92\xa9\xd0\x45\x05\xf5\x26\xfd\x05\xd9\xa2\xc8\x34\x81\x4b\x97\x8d\xe8\xbb\x1e\xbe\x94\x09\xba\x4e\x0f\x2f\x3f\x34\xa2\x80\x11\x97\xf8\x58\xa3\x3c\xa7\xd5\x07\xd4\xc3\xb2\x5d\x46\xdc\x20\xc6\xb8\x1d\x6b\xae\xad\xd1\x86\x97\xb9\xbb\x34\x0c\xdf\x17\x71\x69\x82\xcf\x71\x6c\x77\x36\x84\xda\x6a\xb6\x08\xbb\x52\x13\xcf\x67\x4e\x60\xe3\xc2\x5b\x4d\xb9\xfc\x9a\xe6\x1d\x11\xcd\x7f\x75\xc0\x67\x73\x10\xb5\xba\x29\x96\x09\x60\x9d\x67\xd7\x5e\x09\x47\x67\xc9\x10\x4f\x12\x8c\xfb\x6a\xc8\x19\x3a\xd0\xdf\x27\x1c\x19\xf1\x03\x65\x6c\xca\xbe\xfe\x61\xef\x9c\x7e\xe0\xa3\xa6\x80\x82\xff\xf6\x5c\x1c\x42\x84\x83\x69\xdb\x97\xd5\x6e\x66\x7f\x03\x25\xa7\xd9\xed\x96\x78\x2f\xfb\xe2\x4e\xee\x64\x7a\xf8\x11\x22\x05\x0a\xfe\x0a\x5d\x36\x63\x26\x1a\x09\x02\x8a\xf4\x47\x69\x5e\x41\x59\xbf\xa6\x19\x54\xb5\x51\xb4\xfe\x0b\x6f\x85\x04\x09\xa0\x78\xf3\xee\x02\xe5\xf9\x85\xb2\x6a\x0b\xac\x28\x73\x7b\x6a\xc6\xa5\x26\xb8\x4d\xcf\xcd\xf9\xf9\x2a\xca\x02\xe3\xb7\xc8\xe4\xad\x3b\x85\x41\xc8\xe3\x2e\xec\xf1\x5d\x01\xcb\xdf\x1b\x38\x21\xa8\x4c\xc3\xee\xe5\x7d\xff\xdf\x7d\x6b\x8d\x44\x41\xe4\x52\x8d\x0c\xb6\x81\xe8\x7d\x7a\x1e\x7b\xf6\x24\xe2\xaa\xb8\x72\x5f\x5c\x06\x27\x48\x78\xc2\x3b\x74\xfd\x9c\xe6\xff\x69\x26\x69\x29\x19\x49\x04\x41\xfc\x87\xe6\x4a\xdb\x94\xc5\xa5\xa8\x4c\xf5\x66\xdb\x9c\x80\x91\xe0\x4a\x8f\xa7\xda\xa0\x1f\x6c\x90\x6e\x6c\x5e\x10\xea\x45\x38\x95\x24\xf0\xd3\xa6\x84\x59\x96\xed\x9a\xf3\x5b\x73\x7e\x2c\xca\x0e\x8a\x6b\xfb\x0a\xa3\x6b\xba\xca\x65\x81\x86\xa9\x26\x46\x54\x21\xdc\xfe\x7c\xa0\x3e\xc3\x80\x02\x9a\x25\x96\x5e\xec\xfb\xc5\x8c\xd0\x24\xc4\x72\xce\x1c\xea\xaf\xa2\xfc\x78\x2a\x8b\x2f\x4b\x4a\xa2\xbb\x30\x21\x23\x1d\xb5\x9b\x8b\xcb\x2d\x75\xff\xbf\xdd\xd0\x3c\x1b\xa7\x2e\xb2\x3d\xed\xff\xf8\xe7\x7d\xfc\x0b\x23\x9c\x71\xee\x5b\x3d\x2c\x46\x47\xde\x3f\x11\x0e\x51\x5a\x55\xad\x4b\x74\x0b\x6c\x31\xbd\x22\xee\x6b\x48\x9b\x49\x56\xbf\x40\x2e\x46\x4a\xfb\x8c\x40\x4c\x70\xc7\x6a\x2a\x28\xdf\x7a\x65\x94\x8c\xc8\x28\x41\x4b\x8f\x35\xd7\x81\x92\x42\x2f\x93\xd5\xbf\x62\xe0\x7a\xaa\xd2\xea\x67\x6b\xec\xbd\x42\x0d\xe5\x0c\xe5\xed\x07\xb0\xa8\xef\x07\x75\xe0\xfa\x01\x06\x67\xce\xed\x73\xbd\xd1\x33\xcc\xd5\xc1\xbf\x8d\xba\x91\xc8\xc4\x70\xf6\x40\xcf\xa3\x4a\x07\xd3\x29\x26\x54\x3b\xc3\xbb\x4b\x91\x57\xc5\x20\x9b\x36\xfd\xc5\x03\x37\x8e\x30\xb2\xbe\xdb\x2f\x16\xfa\x45\x04\x9e\x4b\xd0\x0d\x95\x8a\xe8\xd7\x58\x03\x01\x49\x58\xec\xf5\xd8\x38\xff\x4f\x99\x94\xe9\x70\x41\x40\xb8\xd2\x57\xa3\x62\x12\x21\xa9\x7b\x05\xc4\x25\x9e\x8d\x11\xbd\xd2\xfc\x7a\xdf\x62\x0f\x82\x30\x56\x36\xc9\x57\x5a\xb7\xee\x44\x59\x5c\x2c\xd1\xd1\x20\xef\x32\x75\x6c\xe4\x20\xc2\x7c\x43\xeb\x14\xf2\x5a\x09\xa5\x9b\x7d\x2f\x08\x35\x0b\xb6\x48\xab\x4b\x46\xaf\x9f\x70\x4a\x79\x06\x42\x2b\xcd\x4c\xbf\xe0\xc8\x53\x85\x8b\x4a\x0e\x6c\xb4\x59\x07\x51\xa4\xa4\xcb\x37\xdb\xe5\xeb\xea\x6d\x79\xd8\x2e\x5f\x96\xb3\xdd\xf2\xfb\x9d\x28\x88\x9d\xc8\x70\x67\x3f\xd0\x9a\x56\x50\x4f\xa0\xa6\x59\x10\xbb\x81\xc3\x06\xe4\xfb\x0f\xcd\xb0\x82\xcc\x74\x8c\x02\x64\xcb\xbd\xa8\xf8\xd0\xb7\x2a\x97\x2c\x88\xc1\x73\x3c\x9b\xa7\x5a\x4b\x4c\xdc\xb6\x8b\x8b\x0a\x56\x7d\x7f\xeb\x89\x4b\x24\x18\x72\x44\x28\xc7\xd4\x96\x2c\x48\x42\x55\x6a\xc1\x0c\x89\x56\x9f\x64\x9b\x05\x49\x04\xa4\x8b\x8b\xcf\x8b\x22\xeb\x52\x9c\x76\x2b\x0e\x12\xe1\x62\xc9\x11\x2b\xca\x2e\x0a\x11\x50\xe1\x51\x61\xf9\x12\xd4\x06\x61\x9a\xa4\x83\x85\x2b\xad\xc1\x9e\x8b\x07\xe0\x28\x94\x26\xe6\xf7\x31\xd4\xff\x27\xce\x58\x16\xb0\x30\xc6\xf0\xf1\x6c\xb5\x7d\xd8\xae\x37\x3a\xc4\x6a\x2e\x2f\x68\x82\xec\xae\xed\x7e\x02\x65\x7d\xfd\x1e\xba\x67\x0f\xa2\x88\x78\xcc\xe1\x4b\x71\x85\x8e\xc4\xbc\xb5\x8d\xd4\xbd\x15\xe9\x29\xdc\x24\xe4\xbc\x10\x6a\xa5\xf9\xad\xab\x1d\x8b\x4d\x2f\x0a\x68\xfa\x1d\x38\xcd\xf8\x88\x6d\x6d\x78\x03\x92\x13\x25\x13\xbe\x7b\x7f\xeb\xef\xa7\xa1\xe3\x2b\x58\x06\xcd\xb2\xe2\xeb\x96\xfa\x8a\x85\xae\xef\x4b\xab\x0b\xb8\x4f\xa1\x34\x1e\xc9\x90\xc9\x80\x85\x5e\x10\xa3\xb4\x50\x67\x25\x6d\x60\x48\x12\xcc\x42\x0f\x14\xd3\x9d\x12\x89\x34\x1c\x47\x83\x1b\xf2\x7d\x95\x3e\x63\xed\x1d\xd5\x4a\xf1\xb0\x75\xa6\x86\x0c\x2a\x2c\x24\x84\xa2\xd1\xd2\x1a\xd9\xb3\x4f\x5a\xd3\x72\x25\xdf\x0a\xfd\x5f\xd5\x0e\xee\xb8\x28\x61\x20\xdc\x58\xe5\x9f\xca\xbe\x3c\x1a\x0b\x03\x70\xd0\xaf\xc0\x12\xa4\xae\xb0\x95\x85\x21\x11\x31\xed\x58\xe6\xaa\xf9\xf5\xa1\xe0\xa8\xbd\x30\xd8\xae\xc2\xd8\x49\x7c\x1c\x37\x6f\x6f\xeb\xf7\xb7\xc5\xf2\xf0\x73\xf5\xf6\xb6\xdc\x1e\x1e\x96\xb3\x87\x97\xd5\x9b\x09\xf8\x84\x31\x4b\xd0\xdc\x13\xa0\x50\xcd\xdd\xef\x8a\xbe\x41\x45\xf8\x86\x79\x63\x16\xc6\x92\x23\x3e\xec\xd8\x60\x01\x27\x80\xd8\xd0\x2b\xa3\xed\x37\xb1\x1e\x4c\x98\x48\xe2\xa8\x35\x51\x17\xc1\x97\x9f\x7f\xab\x16\x99\x85\x34\x66\xc4\xee\x48\xf4\x56\xad\x7a\xa2\x9e\x78\xea\xef\x37\xb1\xf2\x90\xd2\x30\x11\x4a\xec\x72\x12\x90\x67\xba\x09\x8a\xb0\x1e\xa5\x1c\xd4\xda\x88\xe8\xcc\xaa\x6f\xf5\x17\x01\xaa\x90\x45\x1c\x79\xac\x68\x5a\x8a\xb2\xb8\xac\x72\x8c\x6d\x37\x5d\x7c\xe7\x86\x1c\x69\xe2\x1c\x8c\xfb\x86\x74\x22\xcd\x8f\xad\x67\x62\xde\x2f\xe3\x09\x42\x2e\x68\x5e\x7d\x59\x82\x3f\xdb\x28\x5c\xc5\xba\x7f\xa2\x69\x8e\x98\x36\xdd\xc0\xa3\x00\xab\x11\xb2\xa2\x02\xbd\xdd\x1b\x53\x73\x70\x61\x11\x45\xc8\x0c\xd8\x49\x2f\xb6\x73\xe7\x95\xe6\x0d\xcd\xb2\xeb\xbe\xb8\xb7\x99\x8e\xee\x5f\x44\x14\x9d\x9f\x13\xad\x14\x45\xc2\x86\x8e\x8d\xe3\xc8\x89\x95\x8a\x7d\xd3\xda\x4e\x8f\x70\x63\x3e\x99\x6e\x92\x62\x44\xfc\x48\xcf\x70\xc0\xe2\x04\x33\xff\x22\xd7\x55\xbc\x03\xa9\x16\xde\xee\x93\x83\xb2\xc8\xf5\x85\xa2\x43\xa4\xf9\x47\xe7\x27\x0d\x4f\xee\x32\x07\x34\x64\x7d\x57\x53\x7b\xa8\xe7\x2a\x31\x18\xac\x4e\x83\x7d\x71\x4f\x8f\xd6\x74\x0f\x23\x54\x34\x5a\xee\x57\x0b\x7b\x0a\x1e\xe0\x9e\xf2\x38\x7b\x5b\xfc\xeb\xbb\x38\x44\xe4\xd3\x18\x63\xb2\x8b\xf9\x6e\x62\x21\xbf\x6b\x12\x8e\xd7\xeb\x88\xb8\x80\x54\x39\x1a\x6f\x87\x59\x85\x49\x2b\x2a\x22\x9e\x8f\xd0\x2d\xfa\x09\x65\xbf\x46\x73\xf8\x54\x24\xa2\x48\x15\x8a\x39\xed\x94\x7f\xc0\x28\xbd\xd1\x8e\x28\x2c\xab\x78\x58\xfd\x58\xed\xd6\xdb\xc3\x66\xbb\x5a\x98\x15\x26\x0a\xbc\x18\x53\x58\x98\x05\x9b\x43\x5f\x02\xd7\xfc\x3b\xb8\x5a\x10\x2a\x25\x30\x2a\xce\x69\x6e\x0b\xcf\x0f\x74\x1c\xd9\x88\x82\xd8\xe3\x8e\x06\xd5\x2e\xeb\x13\x12\x4b\x76\x7c\x69\x2c\x0a\x63\x0f\x0b\xb6\x57\x8b\xf5\x80\x19\xfd\xef\xed\xbc\x51\xe4\x80\x0a\x6f\x88\xff\xad\x29\xfb\xf6\xc3\x45\x44\xe0\x7a\xf5\x47\x9f\xe3\x8f\x45\xb1\x9b\xe0\x6b\x79\x9a\xed\x0e\xdb\x65\x47\x32\xcd\xa2\xd8\x57\xd4\x12\xf8\x8c\x83\xb1\x1a\xfb\x8c\x6b\xb9\xa5\x45\x6b\xb5\xe6\xad\x13\x5c\x4d\xd8\x2a\x51\x1c\x24\x18\xe8\x6c\x57\x86\x79\x8a\xf4\x03\x0d\xe7\x5d\x88\x3b\x8a\x63\x50\xd4\x29\xb3\x3f\x0e\xf3\xd6\x6a\xf8\x97\xae\x02\x19\xd8\x10\x51\xe2\x00\x86\xfc\xdb\x6d\x5b\x45\x31\x5b\x9b\x0c\x23\x2c\x3f\xef\x28\x3c\xb3\x28\x71\x9d\xc0\x37\x96\xa4\x59\x10\x47\x0a\x58\x6d\x2f\x81\x21\x44\xe4\x19\x11\x0f\x3a\xb3\x57\x8d\x24\x2c\x58\x94\x88\x88\xf5\x83\xf1\xaf\xc5\x27\x42\x56\x8b\xa6\xde\x97\x8d\x5d\xd4\x22\xca\x7d\x0c\x3b\x7f\x42\xa9\x52\x76\xfa\x77\xe6\xd3\x90\xf7\xe8\x7b\xd2\x4c\xa4\xf9\xb1\xef\x68\x0c\xdc\xaa\xa9\x7f\x7b\x2f\x96\x41\x8c\xce\x2c\xe2\x41\x77\xfc\x54\x14\xd9\xa8\x40\x42\x77\xe4\xbe\x8b\x31\x94\xd7\xd9\xdb\x52\xd1\x75\xd3\xb2\xce\x27\xe8\x2a\xee\xda\x7e\xdf\x6e\x83\x11\x87\x84\x77\x36\x2b\x1a\x1d\xad\xcd\x31\xfc\x12\xc2\xf5\x91\x32\xcb\xf2\xf7\x9b\x8f\x30\x49\xbd\x6b\x0f\x8a\x34\x33\x3e\xf2\xe6\xaf\xcb\xe3\x24\xe4\x96\x45\x42\x90\x38\x36\xb1\xe7\x97\xf9\xae\xc8\x84\x95\xf2\xf6\xcd\x7b\x00\x27\x44\x17\xfa\x09\xf2\x75\x53\x2f\x4e\xe9\xa5\x7a\xeb\x94\x1e\xee\x4c\x2f\xf0\x14\xa3\xac\x55\xee\x82\x2c\x1b\x3d\x1a\x10\x0f\xeb\xf6\xd2\xfc\x93\x0a\xd8\x64\x34\x87\x5b\x9e\xa8\x5b\x67\x2c\x02\x1e\x49\x30\x5a\x82\xba\x44\xf1\x96\x35\x48\x75\x8e\x5d\xa6\xca\x29\x68\x56\x02\x15\x57\x03\x52\xe8\x54\x11\x75\x3f\x2f\x52\xe2\xc1\x02\xb2\xf4\x13\xca\x59\x7e\x84\xac\xda\x2e\x1f\x26\x38\x70\x47\xf7\x13\x7b\x31\x20\xc8\xbd\xf5\x55\x7f\x0d\x91\x95\x64\x74\x37\x1e\x55\x4b\x77\xa5\x2a\xa7\x90\x7c\xf2\xb7\x51\x17\xae\x6a\xa2\x9b\x1c\xf3\x6e\xd3\x86\x4b\x4c\x28\xc5\x30\x61\x8d\xf3\xa7\x67\xa7\xc7\x44\x42\xec\x77\xf5\xf0\x8f\x00\xfb\xe2\x86\xdf\x99\xc5\x01\x88\x04\x39\x75\x75\x2c\xbc\xbf\x4a\xc5\xa1\x03\xa1\x18\x18\x07\xfb\x53\x59\x34\xc7\x13\xb2\xf6\xb3\xec\xde\x5d\x85\x6e\xe8\x25\x66\x41\x40\xf6\xa5\x67\xa0\x36\xd6\x62\x3a\x05\x02\x55\xae\xb4\xd9\x84\xe3\xf8\xc1\xd8\xf1\x69\xa1\x92\x6f\xdf\xbc\xee\x50\x10\x34\x91\x5f\x1f\x7e\xbf\x05\xfe\xb2\x38\x0a\x23\x4c\x51\xfd\xf7\xf3\xfa\xbd\x3f\x9d\xe3\x28\x12\x52\xe8\xfd\x04\x6b\x92\xf5\x17\x1a\xb3\x5c\x0c\x1f\x29\x8a\x39\x52\x95\xfc\xfe\xaf\x05\xc2\x02\x47\x57\x8b\x39\x41\x3b\x9a\x35\xd7\x55\x0d\x67\xf7\x37\xfb\x3b\x33\xf5\x12\xcb\x5f\x3c\x6b\xc4\x88\x12\x8e\xc5\xd4\xe5\x98\xdc\xa9\x3d\x74\x98\x27\x20\x30\x6d\x97\x40\xc7\xae\x9f\x1a\x5a\x8a\x94\xe6\x13\x01\xe6\x98\xfa\x21\x38\x96\xbc\xb9\x13\x77\x3e\x77\x27\x8a\xd4\x1e\xad\xca\x01\x9e\xe8\x19\x9e\x53\x21\x6e\x5e\x1d\x95\x61\xc0\x10\x57\xb1\x5f\x6e\x1f\x67\x8b\x25\xc2\x98\x66\xa8\xa7\xb0\xdc\x2e\xdc\x30\x30\x27\x64\x4e\x82\x90\xc6\xed\xf2\xe1\x69\xf5\x62\x7f\x75\x19\x27\xbd\x61\x33\xcb\xc5\x63\x59\x68\x6c\xea\xf7\x35\x31\x2c\x66\x61\x88\xe5\xd5\x02\x6e\x25\x9c\x4d\x17\xc6\x40\x6f\x9e\x77\x66\x3b\x8f\x15\x4c\x79\x20\xf9\xf4\x17\xfe\xc3\xf0\x36\x38\x57\x08\x45\x85\x65\x30\x56\xf7\xe8\x2a\x42\x55\x26\x9b\x35\xf9\x3d\x57\xe4\x29\xb5\x45\xc6\x8f\xce\x29\x02\x1e\x76\xca\xfe\x45\xde\xba\x4b\x8a\x3f\x5c\x27\x60\x74\x47\xe1\x70\x03\xa3\x5d\xf1\x42\x11\x53\xf4\x3e\x34\x10\x55\xcd\x8e\x70\xe2\xde\xef\xd2\x73\x88\xd7\xbb\x9f\x83\xec\x8a\x21\x58\x2c\x23\x8a\x41\x42\x8d\x3c\x7d\x2d\x72\xb8\x0e\x62\x2b\xb1\x8c\x13\xcc\xb4\xaf\xff\x2c\xf2\xc1\x16\x98\x38\x2e\x35\xa1\x65\x0c\xe7\x68\xd1\x91\x81\x2f\x9a\x38\x41\x80\x53\xe4\x9c\xe6\x56\xde\xb2\xfd\x95\x21\x76\x6c\xbf\x9c\xbd\x0e\xc8\x91\x59\xe2\x30\x25\x19\xd6\x79\xef\x4f\xc5\x68\x8c\x0c\x5e\x78\xe2\x7a\xaa\x36\x0c\xf9\x7b\xce\xb0\x4f\xb3\xcc\x0a\x18\xb3\xc4\xf5\x5d\xcd\x4a\xc6\x8b\x5c\x2c\xe8\x65\xd9\xa3\xe5\x35\x7d\x12\x55\xd5\x8a\xfb\xa1\xc9\xff\x75\x32\x3b\x2c\xf1\x1c\x8a\xf9\x54\xe3\x01\xe8\x75\xdf\x44\xfa\x86\xf7\xe3\x05\x0c\xc3\xfd\x3a\xd3\xd1\x29\xca\xd9\xb3\xb1\x18\xfd\x8a\x13\xad\x4e\x3d\xfa\x4c\x96\x78\x3c\xc2\x30\xb9\xf2\xbb\xe7\xcd\x75\x1a\x5c\xf3\xed\xde\x9a\x04\xbe\x23\xe2\x1b\xdf\x6d\x7c\x12\x33\x6d\x92\x20\x94\x32\xea\x62\x0a\xab\xd1\x1a\x96\x84\x71\x12\x28\x68\xf0\x67\xf1\xd1\xab\xb7\x30\xcd\xd4\xa1\xba\x98\xa6\x5d\x39\x2a\xac\x41\x1f\x5f\x23\xe4\x0e\xe2\x98\x29\x2b\x4a\xec\x36\xbd\x43\x24\x11\x57\x4c\xeb\x8b\x34\x2b\x7e\x99\x2b\xc4\x9e\x92\x59\xc6\x04\x46\x55\xa7\x35\xee\x03\xf3\x49\x4d\x50\x96\xc4\x41\x82\xa3\xfd\x25\xad\xeb\x0c\x76\xed\x56\xd3\x95\x60\xd8\x53\x06\x8a\x61\xaa\x35\x39\xdf\xe0\x48\x6b\x04\xd1\x0e\x6e\x25\x4e\x22\xd4\xb7\xaf\xce\x34\xcb\x16\xf4\x82\x36\xee\xd8\x76\x4d\x12\x37\x52\xeb\x81\x82\x5b\xf4\xc8\x83\xa7\x23\xe7\x49\x42\x9d\x58\xbf\xed\x97\xcb\xaa\xfa\x59\x94\x1f\xad\xc9\x3c\xec\x23\x58\x48\x6d\xa8\x54\x23\x39\xec\x78\x4e\xa4\x8f\x90\x0c\x4e\xcb\xb5\x34\x34\x7f\x77\x2e\x26\x7d\xd0\xf0\xd0\x55\xb5\x6f\xca\xfc\x81\xd6\x74\x47\x3f\xfb\xd5\x68\x2c\xa1\x81\x12\xbc\x3f\xe0\xfc\xc9\x60\x86\x44\x0c\x2a\x22\x60\x67\x31\x8d\x14\x99\xbf\x66\x94\x51\x80\x83\xf5\x27\x94\x65\x2a\x60\x35\xad\xf1\xcd\x12\x16\x05\x91\x71\x42\xf6\xdb\xd9\xdb\xee\xd1\xb2\xb7\xb2\x84\x81\x62\x47\x7b\xa2\x39\xc5\xaf\x33\x53\x5b\xfe\x65\x8c\xc6\x4b\x38\x23\xaa\x5c\x28\x4f\xff\xa3\x71\xb1\x76\x68\x71\xe1\x60\xa4\x5c\x49\xbb\xce\x84\x50\x1c\x0c\xed\xd8\xa7\xfc\x46\x14\x82\x25\x1c\x1c\x55\x3e\xa4\x72\x71\x06\xd3\xd3\xab\x63\x65\x09\x38\x81\x40\x45\x08\xa8\xdb\x55\xf8\xbe\xfe\x1a\x4b\x20\x70\xd0\x44\x96\x69\x56\x0f\x2e\x5b\xf5\x5f\x31\x24\x31\x73\x6d\x6e\x5a\x13\x83\x77\xc8\xcb\xdb\x2c\xf8\xf0\x9e\x41\x28\x67\xb4\x2a\x64\xbd\xa0\x17\x43\x18\xa6\x5b\xa5\x20\x9a\xf5\xe3\x99\xd6\xfc\xb4\xce\x0d\xcf\xba\xee\x40\x1d\xc7\x4d\xb4\xd2\xf2\xbc\xb5\xe5\xc6\x38\x0e\xea\x50\xc5\x73\xb2\xbc\x0e\xd6\x77\xea\x30\x47\x91\x7f\x0b\xf1\x06\x5f\x0b\x5a\xc3\xb1\x5d\xed\xb4\x65\xd4\x77\xa0\x06\xf7\x4b\x5d\x57\xc7\x56\xd7\x6f\x3f\x96\xdb\xdd\x6a\xfd\x76\x78\x58\x2e\x56\xaf\xb3\x97\xc3\xe3\x6c\xb1\x5f\x1b\x94\x3b\x75\x81\xf8\x1d\xd7\x3b\x92\xaf\xa4\x7f\xa2\x86\x26\xa3\xfc\x63\x52\xec\x75\x14\xeb\xa5\x9e\xce\xaf\x23\x40\x2b\x47\x7e\x2f\xf8\xc6\x1c\xa7\x5e\xe2\xb9\x4a\x02\x30\xd7\x8c\xa2\xd3\x5f\x96\x7a\x22\x42\x61\x96\x97\xa2\x14\x7f\xf4\x48\x1c\x18\xf5\x40\x98\xf7\xf9\x4a\x8f\x29\xd7\x09\xc1\xe1\xe1\x81\x9f\x38\x8a\x78\x1e\x51\xed\xad\x73\xa8\x91\xec\xe6\xc3\xd1\x80\x25\x8e\x2e\xf2\xd1\xdc\xac\x87\x42\x1e\x1e\xe6\x66\x6f\xa6\x61\x18\x98\xb0\xd4\x43\xc1\x47\x17\x08\x45\x8c\x7e\x4e\x5f\x89\xd1\x52\xc0\x32\x1a\xf9\xdc\x35\xbc\xfb\xeb\xf5\x70\x12\xd0\xd6\x83\xd7\x9a\xf8\xad\x57\x5e\xba\xf6\x28\xc9\x71\x79\xaa\x8f\x43\x64\x0e\x8d\x99\x86\x06\x22\xf7\x47\xbb\xad\x69\x07\x7b\x02\x3c\x44\x63\xa9\xd0\x2b\x58\x14\xb2\x2f\xac\x75\x3a\xfd\xa2\x93\x90\x20\x00\xa7\x52\x36\x4f\xa5\x6c\x49\x64\x97\x95\x94\x8f\x8a\x9f\x89\x39\x28\x09\x69\x60\x2a\x8e\xab\xce\xb4\xd2\xcd\xd4\xe3\x81\xe6\xa1\xfe\x4f\x43\xb3\x54\x5e\xe7\xe9\x14\xfc\x82\x52\x96\xa0\x3c\xc1\x63\x53\xa9\x69\x3e\xb9\x92\x52\xca\x18\x6e\x92\x48\xab\x39\x00\x33\x51\x26\x1c\xd7\x70\x61\x2b\x0a\xc8\xd1\xdb\xe0\x0e\xc3\xc0\xde\x27\xe0\xb4\x57\xc9\xf7\x85\xe2\x2c\x49\xd9\xfd\x38\x81\x39\xdc\x8b\xd0\xf4\x60\x54\x1c\xff\x22\xc9\x46\x81\x03\x53\x56\x32\x2f\xa1\x67\x71\x50\xe9\xa9\x9a\xb9\x76\x96\xec\x8b\xef\x6d\x6d\x2a\x89\x44\x6a\xaa\x43\x45\x25\x3c\xd2\xcc\x42\xa1\xa8\xe4\x31\x4e\x9e\xe5\x25\x45\x66\xc6\xfe\x6a\xc1\x1c\x9f\x22\x00\x11\x68\x99\x5d\x8d\x90\xcf\xc3\xfb\xe0\x6d\x31\xc7\x97\xe8\x3b\xfe\xd0\x8a\x7d\xc8\x89\xa3\x09\xec\xa7\x1f\x8a\x39\xe0\xea\x84\x24\xd6\x20\x6b\xd3\xcb\x9c\xd0\x25\x8a\x3c\xee\x7c\x45\x32\x46\xfd\xab\xe7\x48\x25\x32\x58\x34\x59\xb5\xeb\x72\x35\xcc\xf3\x54\xd5\x9d\xad\x2e\x7b\x28\x9b\xe3\x6d\xf4\x81\xf9\x82\x73\x1b\xfa\x58\xe5\x9f\x9a\xd0\xc9\x0c\x30\x46\x78\x24\x90\xec\x79\x5f\xa6\x03\x81\x43\xc6\x02\x97\x22\x10\x69\xf9\xb0\xfc\xe3\x6f\x11\x41\x30\x16\xc6\x01\x33\x74\x48\x06\x5d\xc6\x42\xce\xd1\x9e\x17\x90\x21\x86\xf4\xbb\xf2\x68\xc6\x22\x07\x02\xa2\x19\xfe\x94\x06\xb4\x19\x2b\xf6\x9e\xa3\x30\x46\x12\x41\x8c\x3b\x3e\x29\x3e\xa2\x1b\xe6\x5d\xc6\x62\x37\x20\xc6\x1f\x41\x31\xd6\xbe\x37\xd0\x6e\xc6\xae\x76\x69\xff\x98\xc8\x73\x0e\x6c\x7f\x96\x48\x89\xc5\x06\xe8\xab\x18\xf0\xb6\x6e\xa3\x9e\xc0\x91\xa0\xf6\xc4\x55\xfe\x99\xa2\xec\xc6\xd7\x58\xed\x97\x31\x46\x88\x16\xa1\x3f\xa7\x39\x4e\x9f\xd1\x1d\xf3\xc0\x61\x41\x2f\x9a\x64\x82\x3e\x1d\x30\x94\xf1\x44\x91\x9e\x5c\xa0\x4c\x0b\xb1\x5a\xac\x11\xd2\x68\xdf\xb5\xf0\x95\x5e\xcc\x6c\xbb\x3f\x2c\xd6\x6f\xfb\xed\x6c\xb1\x3f\xcc\x1e\x1e\xb6\xcb\xdd\xce\xf6\x09\x12\xac\x9b\x3d\xab\xd0\xd0\x90\x39\x84\x31\x11\x13\xb0\x23\xc6\xf8\x10\x68\xdd\xf7\x54\xbc\xdb\x6e\xb1\x02\xcf\xae\xe7\x6b\xfb\x5b\x6b\xb3\xa3\x7d\x63\x9c\xdb\x29\x72\x12\xc6\x04\x53\x09\xc3\x13\xad\x96\x79\xd1\x1c\x4f\xca\x36\xec\x68\x59\x47\xc3\x0a\x42\x4f\xa5\x02\x14\xe1\x25\xd4\xcd\x8d\xe2\xfe\x30\x8d\x30\x3d\x01\x81\x72\x64\x7e\xc8\x90\x76\xde\xea\x4e\x98\xbb\x97\x81\x8f\xbb\x7d\x5a\xa9\xf2\xf5\x71\xc9\x1e\x93\x81\x7a\x33\xa8\x51\xba\xab\x5b\x0b\xcf\xcc\x47\xee\x84\x34\xd1\x34\x78\xbb\x31\x33\x1f\xe3\x8e\x04\x5f\xf1\x34\xcb\xe2\x55\x05\x97\x87\x1d\x3c\x22\x10\x1d\xbb\xfa\x63\xaf\x13\x8d\xd3\x50\x49\xee\xbb\x5c\x51\xcb\xc1\x27\x64\xc5\xa5\x9b\x15\xdc\xf7\x5c\x2c\xb5\x95\x45\xc9\xd2\x1b\x1d\x91\xe1\x80\xe6\x7e\x18\x60\xac\x99\x35\xba\x4c\x4c\xb3\xaf\x4c\x2f\x5d\xdc\x8f\x03\x53\x9f\xd5\x0c\x0b\x90\xb8\x4f\x7d\xf4\xbb\x9f\x7e\xee\xbb\x88\xb1\x6e\x23\x8e\x87\xf0\xf4\xfd\x7a\x3f\x7b\x39\x6c\xb6\xcb\xd9\xcb\xcb\x7a\x81\x32\x0e\x5d\x17\x69\x80\x8b\x7a\xac\xbc\xaf\xf2\x3a\x1e\x57\x6e\x0f\xbe\x68\x6c\x8e\xf5\xa5\x92\xe6\xc5\xd9\xfd\xed\x5e\xc0\x49\x28\x3d\xed\xaf\xfc\xb3\x81\xaa\x5d\x03\x6f\x89\xc5\x19\x27\x94\x22\x98\xae\x3a\x15\x5f\x6a\xf6\xdd\xd6\xc4\x33\x1e\xf8\x1e\xae\x51\x58\x56\xff\xc8\xcd\x9c\xe0\x01\xf1\xa8\x11\xb1\xdb\x34\x2c\x4b\xf9\xc4\x56\xcd\x83\x48\xa0\x33\x71\xf8\x7b\xe0\x34\x9d\x26\x9e\x3a\x51\x1c\x03\xf4\xaa\xdd\xef\xc6\x92\x79\xc0\x29\xf2\xa5\xcb\x26\xcb\x50\x89\xb4\xdd\x29\xe6\x45\x2e\xaa\xf1\x93\x49\xa5\x60\xa8\x05\xed\x91\x49\xa4\x9b\xf4\x3c\x0c\x12\xf4\x37\x75\x90\xa5\xda\xa7\x59\xf6\x56\x7c\xd9\xe6\x88\x09\x50\x55\x82\x87\xfd\x6c\xf7\xfb\xe1\xc7\xec\xe5\xdd\xa4\xd0\x78\xec\x48\x25\x6d\x62\x7f\x08\x44\xd0\xcb\x0c\x58\xf7\x65\xa3\xad\xb9\xd1\xd0\x8f\x43\x81\x99\xb2\x99\x10\x8a\x7b\x09\x6b\x2b\xfb\x51\x61\x1e\x27\x8a\xe6\x63\xbb\xfc\x61\x2f\xd2\x9a\xb0\xb8\x83\x66\x29\x4f\x6b\xba\xa1\x47\x94\xb1\x2b\x46\x4f\xce\x62\x92\x74\x3c\xbd\x8f\x70\xef\x2e\x98\x90\x11\x6e\x05\x5e\xa2\x06\xa9\x6b\x1a\xc0\x35\x8b\xf7\x02\x32\x60\x58\x85\x38\xbc\x06\x8f\x12\x54\x55\x7f\x2d\xf8\xc7\x03\x8c\xd7\x17\xce\xa5\x83\xb0\x7e\x6e\x79\x7d\x8d\x3d\xcb\x21\x81\x88\x0d\x5f\xd5\x9d\xa9\x0a\xd2\x53\xa4\x37\xe9\x31\x5f\xe7\x76\x2a\x4a\x5f\x45\x2e\x5e\xbe\x05\x91\x73\x19\x44\xa1\xd3\x07\xa4\xfd\xbf\x42\xab\x72\x19\x27\x48\xd7\x23\xd2\x4f\x8d\xe6\x1b\x15\x6a\x73\xc9\x85\x91\x9f\x9d\x2b\x0a\xb6\x9e\x31\xc4\x25\x38\x18\xc7\x7a\x4c\x07\x95\x49\xc2\x71\x42\x2c\xdb\x32\xea\x32\x38\x96\x95\x0f\x5f\xd9\x3e\x4c\xe1\xa7\x71\xff\xda\x5d\x20\xaf\x37\x8a\x0b\x65\x70\x8b\xc2\xe1\x80\x7e\x8d\x0d\x51\x29\xc1\x2a\x8c\x53\x35\x1d\x4d\x03\x13\x6e\xe0\xa1\xb5\x71\xc0\xb8\xa6\xb5\x76\x1f\x34\xee\x6d\x78\x56\x37\x56\x9e\x8e\x42\x52\xf5\x36\x99\x51\x78\x47\x78\x6e\x84\x59\xb7\xc5\x6c\xf5\xd0\xad\x9b\x93\x26\x91\xf0\x02\xcf\x57\xfc\x80\xc5\x4c\x88\x2d\x7c\xa6\xf0\x35\x1e\x97\xc2\xa3\x49\x18\xe8\x7a\xc5\x37\xf8\x85\x92\xb7\xc3\x42\x3b\x8f\xfc\xd7\x9d\xff\xd7\xa7\xf0\x1d\x4e\x15\x39\x60\x55\x8f\xb0\x32\x82\x50\x4a\x6c\xa9\xd4\x41\x95\x6c\xdf\x61\xc5\xd2\x47\x04\xc4\xe7\x5a\xa3\x9e\xef\xd3\x33\x88\x7f\x36\x45\x17\x52\xfb\x7e\x00\x89\x20\x48\xb0\xf4\x82\x17\xb9\x4c\xcb\xb3\x2a\x42\x3f\x0c\x59\x05\x44\x3b\x56\x89\x59\xff\x37\x59\x51\xdb\x82\xa6\x9b\x95\xd0\x1e\x91\x20\x8a\x21\xe5\x77\xd9\x91\xc6\x7f\x6f\x57\x53\x11\x50\x82\x05\x59\x8a\xa8\xc9\x70\xf8\xdc\x10\x4d\x33\x11\x80\x8f\x6b\xcf\xa5\x35\xa1\x7c\x0b\x3f\xd4\xad\x91\xab\xf8\x05\x4f\xb4\x7a\x4d\xab\x0a\x04\xaa\x9a\x5f\x8a\x34\xaf\x77\x0d\x33\xb0\x7d\xd3\x39\xe0\x08\x03\xa8\x20\x17\xaf\xb4\xfc\x80\xf6\x9a\xb3\x5c\x6c\xdf\xb6\xb6\x0b\x57\x55\x73\xad\xf1\x3d\x98\x35\x89\x17\xab\xdc\x78\x71\x3e\x17\xf9\x83\x7e\x89\x93\xcb\x07\x5a\x70\x48\x65\x25\xd2\xfa\x89\xde\xc1\xbe\x89\x24\xe2\xa1\x30\x89\xf3\x2f\xf8\xb5\x43\xb5\xb9\xa6\x1c\xa2\x19\x05\x75\x08\x12\x27\xd1\xa6\x2e\x14\xf1\xa8\xb9\x25\xea\x52\xc4\x5c\x4a\x2c\xba\xd3\x62\x55\x7b\xa0\xe7\x2d\xf0\xf4\x92\x76\x1e\x9f\xa0\x9e\x8a\xeb\xcf\x9f\x57\xaf\x83\xa7\xa2\x04\x40\x87\x53\x95\xd6\xb9\x76\xc5\x8a\xb2\xb2\x3e\x77\x35\x60\x04\x63\x82\x8a\xb0\x47\x32\x32\xf0\xe8\x04\x73\x44\xa2\x2b\xe3\x11\x74\x39\xb8\x18\xf3\x7d\x83\xd2\x7e\xd3\x6b\xcf\x83\x62\xb2\x10\x0f\x40\xb3\x6a\x53\x16\x1a\x34\x6b\x8f\x88\x9c\xc4\xf0\x42\xf5\xaa\x8e\x47\x2f\x92\x71\x47\x11\xe2\xea\xe9\xa6\x8c\xb1\x2d\x18\x92\xa9\x61\x6f\xee\x04\xea\x7d\x56\x15\x94\xf5\xf2\x3f\x5e\xa8\xb6\x20\xcf\xcc\xe8\x91\xdf\x22\xb8\x50\x91\x19\xc5\xb3\x75\x4a\x2f\x93\x00\x63\x21\x3c\x2f\x71\x74\x60\xad\xb5\x7c\x7b\x79\x6f\xd3\x23\xf0\xd1\x77\x55\x02\x32\x48\x74\x45\x07\xe2\xed\x6d\x17\x15\x5f\xbf\xe1\xad\xfc\x8b\xa9\x2e\x98\xaa\x10\xe5\x34\x37\xe6\xd0\x4a\xbe\x4c\xd8\xdf\x42\xb4\xd6\x2f\x8e\x63\x8a\x65\xfe\xe6\xca\x40\x5c\x70\x6d\xe8\x74\xdb\xb3\xae\xff\xed\xff\xcf\x84\xbe\x55\xf4\x3f\x23\xa0\x5a\xfc\x6f\xd7\xfc\x14\x6b\xed\x57\xfd\xfb\xa4\xb8\xdf\xe0\x58\x93\xd5\x12\x10\x83\x21\xb2\x7c\xda\xec\x4e\xb4\x3a\x6d\xb1\x7a\xb5\x9f\x18\x11\x32\x0c\x95\xbb\x7d\xa6\x65\x7d\x8f\xa7\x32\x36\x9d\x99\xc0\xa8\xa2\xd2\x40\xa9\x60\x6c\x5f\x83\x93\x04\xa8\x1a\x83\x6e\x69\xbb\x0e\x99\x06\xd7\xf1\x31\x3b\x7c\x50\x3c\x28\xbf\x8f\xb1\x4e\xe0\x25\x0a\x4c\xa6\x7f\xd5\x90\x8f\xea\x94\x5e\xcc\xf7\x04\x8f\x0a\x5c\x71\xb2\xe2\xf8\x9e\xa7\x9f\x50\x56\xf0\x58\x94\x1f\x20\x16\x14\x69\xbe\x4d\x37\xa1\xf4\xf6\xd5\x96\xb0\x96\x5d\x96\xa8\x3b\x93\x74\x62\x63\x19\x15\x55\xfd\x58\x94\x5b\x03\x87\xd4\x8f\x0a\xbe\x27\x98\x2a\x25\x56\xb1\xd9\x7e\x9e\x1e\x7c\xa1\xe8\x1e\xda\x1d\xf8\xa1\x2c\x72\x78\x00\x49\x9b\xac\x9e\xe9\x2a\xf5\xc1\x78\x02\x42\x13\xc7\x1f\x52\xc0\x8c\x53\xac\x40\xa4\x42\xe0\xb2\x82\x96\xa2\xbd\xa7\xdf\x6c\x83\xc2\x0b\x20\x5f\xd1\x99\xa6\xf9\x2b\xcd\x1b\xfb\x20\x81\xab\x2a\xcd\xcd\x96\x66\x7f\xf7\x5c\xac\xa7\x4a\xf3\xd6\x74\xab\x60\x5c\xde\x3d\x39\xf7\x21\xf0\xbc\x44\x53\x8a\x9a\xb4\xb8\xa6\xed\x1e\x7e\xab\x20\x09\x41\x91\xe7\x20\x5c\x10\x17\xb7\xdc\x56\xdd\x40\x00\x89\xdf\x39\x59\x8a\x21\xe0\xf0\xbe\xd9\x2c\xb7\x88\x97\x32\x68\x2d\x08\x89\x22\xfe\xe9\xb0\x21\x16\x06\x38\x9e\xa8\xc3\xeb\x87\x01\x78\xb4\x23\x29\xf8\xad\xfb\x99\xd8\xca\x6e\xbd\x21\xb5\x2b\xdd\x5f\x54\xc9\x42\x28\x08\x8e\xab\xd9\xf6\xf7\x3d\x3d\x1e\xa1\x3c\xb8\x07\xc7\xb1\x67\x05\x8e\xb8\x90\xb7\xf7\x97\x97\xc3\xf2\x6d\xb1\xfd\xd7\x06\x75\x67\x67\x2f\x4f\xeb\xed\x6a\xff\xfc\x7a\x58\xd9\x27\x8a\x92\x18\xa1\x61\x79\x91\x3f\x36\xf9\xb1\xb5\xca\x46\xb5\x7a\x10\x6b\x09\xff\xff\xe5\xe5\x7b\x25\x7a\xa8\x03\x88\xb9\x87\x81\xd7\x61\x76\xf1\x36\xa6\x68\xba\x4b\x3f\xf2\x6d\x94\xe7\xe7\xcb\xab\xc2\xd2\x8e\x3e\x55\xe2\xc4\x18\x72\x02\x64\xc8\x52\x02\x18\xa6\x29\x56\xa5\x6a\xcf\x45\x53\x1e\x33\x5a\x55\x3f\x3c\xdb\x24\x68\xa2\x7d\xd3\x39\x54\x35\x82\x72\x4c\x1b\x05\x8a\x25\xea\x19\xad\x6a\x05\x3d\x53\xa1\xa5\xfe\xf0\xa3\x52\x55\xac\xe0\xb6\xf5\x07\x66\x09\x4d\x13\x8f\x14\x75\xd4\x99\xfe\x9a\x03\xd2\xd7\x3f\x74\xf9\x21\xe0\x2c\xc4\x68\xf0\x6e\x3f\xdb\xa2\x16\xff\x6e\xb3\xdc\xbe\x9a\x56\x11\x04\x4c\x91\xa1\xa5\x99\x78\xd8\x2d\x69\x75\x45\x03\xab\x4a\x8f\x7f\xf1\x89\x45\x98\x28\xa8\x86\x22\x22\x1a\xa8\xe4\x33\x00\xaa\x76\xb1\x1a\xaa\xba\x5d\x26\xa7\x6d\x0c\x00\xaa\x22\x1d\x5f\x56\xd9\xd8\x7c\x99\xfe\xde\x05\x92\x04\x89\xb6\x31\x94\x84\xea\xb4\x11\x2d\x1d\xe2\x3b\x83\xd3\x75\x22\x86\xa3\xd5\x41\x3a\x14\x90\xce\xe2\x21\x3d\xa6\x7d\x2b\x40\xba\x94\x62\xcc\x70\x59\x9f\x9e\x0b\x91\x41\xf9\xdb\x5d\x86\x09\xe9\xca\x44\x73\x62\x68\x80\x43\x3f\xa0\xa1\xfb\x78\x89\x40\x02\x85\xe5\x27\xe4\xf5\x16\xab\x7b\xb6\x69\x35\xe4\x4d\xb4\x5c\x39\xe3\x17\x24\x7d\x12\x18\x99\xb2\x76\x60\xfb\xc4\x7c\x75\xe9\x13\x30\x92\x17\xef\xcd\x98\xa7\x42\xfa\x11\x27\x9a\x17\x46\x81\xc6\x27\xa7\xbd\x24\x7e\xa0\xea\x1c\xaf\xaf\x50\x9f\x0a\x31\x30\xed\x24\x89\x42\x87\x59\x95\x86\x0d\x94\x72\x24\xe9\xcf\x24\x11\x31\xf2\xcf\xcc\x9a\x76\x37\xa0\xdf\x20\xf9\x24\x81\xc0\xa8\xce\x6b\xc6\x4b\x1c\xcb\x5a\xae\xce\x3c\x56\x90\xb8\x98\xe3\xa0\x42\xbc\x14\x45\xcd\x8a\x3b\xf9\x62\x19\x50\x0f\xb1\x57\xe7\x34\x6f\x77\x1b\xc3\x87\x65\xce\x13\x82\x52\x00\xaf\xe0\x26\xca\x36\xba\xaf\xc8\x4b\x12\x66\xd9\x2b\x36\x46\xff\x24\x1f\xe9\xd6\x30\x19\x25\x3c\xe9\xeb\x38\x4c\xa9\xf1\x31\x19\x09\x0f\x15\x05\xab\x53\xd1\x64\xad\x23\x07\x65\xad\x38\x84\xea\xa6\xec\x57\xe8\xca\x48\x86\x8c\x76\x35\x49\x3b\xc8\x32\xb7\xb5\x89\xb4\x5e\x8d\x79\x92\xd8\x15\xa2\x5d\x95\xde\x36\xfb\xc1\x40\x8d\x35\x8d\xdd\x85\x5e\x6f\x06\x53\x6f\xc8\x1a\x3b\x51\xc6\x71\xa0\x23\xea\x02\xb9\xe2\x06\x83\xd5\x73\x86\x23\x3b\x96\x14\xef\x6d\x96\x9e\xd3\x6f\x22\x11\x32\xa1\xcc\x0c\x91\x4d\x09\x15\x64\xd9\xfb\x65\x5f\xf4\x6f\x9f\x72\x11\x7a\xfd\x24\x86\x32\xfb\xa6\xd8\x9f\x99\xa4\xd2\xc7\x09\xa5\xf7\xc8\x81\xa1\x2b\xb9\xef\xe3\x1e\xf9\xfb\xc3\xca\x9c\x9c\x13\x6e\xa0\x99\x3b\xbc\xfd\xbe\x21\x26\x85\x47\xb1\x4c\xae\x63\xe7\x33\x94\x3d\xd3\xcb\x91\x14\x1e\x60\x25\x01\x6b\xae\x73\x5a\xa5\xfc\x3d\x4f\x6f\x38\xe6\x4d\xd7\xc4\x35\x9a\x6a\x1a\x7e\x89\x42\x72\xe5\xa8\x36\x72\x8a\x9c\x92\x49\x41\x15\xa7\x00\x0a\xb2\x8d\xcb\xdb\x25\x78\x04\xa9\x73\xcf\x69\x8e\x0c\xe2\x18\x2f\x7b\x2c\x4a\xc5\x09\x76\xd2\xb9\x4c\x35\x3a\x5d\x2f\xb6\x4b\x1a\x50\x07\x5d\x40\x6d\x43\x0c\x05\x25\x99\x04\x29\x02\xae\xdf\x86\x22\x3d\xec\x11\x29\x49\x49\x58\xa8\x88\x79\xe8\xe5\x91\x96\xd3\x02\x50\x4c\xca\x20\xf4\x15\xf7\x39\xe5\xa7\xbd\xe2\xd2\x1b\xdd\xbe\x0c\xa4\xa2\x34\xca\x79\x71\xbe\x64\x50\x77\xd7\xe0\x11\x68\x92\xab\xdf\x26\x34\x15\xb8\xe3\xba\x2a\x02\xf6\x95\xe6\x79\x9a\x1f\x0f\xe7\x22\xaf\x4f\xbf\x99\x46\xc6\x14\xc3\x63\x71\x7c\x83\xaf\xdb\xa9\xc7\x1d\x57\x04\x48\xcf\xa2\xe9\xe2\x5a\x3b\xc1\xca\x9a\x4c\xda\x67\xdc\xf1\x22\x60\x7a\x00\x69\xce\xc1\xb2\xa4\xd7\x17\x45\xea\x3d\xea\x2a\x94\x08\xce\xa5\x04\x3b\xa0\xcc\xbd\xf9\x81\x1b\x44\x83\x91\xa6\xf1\x54\x07\xde\x93\xf4\x33\xbd\x09\x89\x22\x23\x29\xa9\x22\xc8\xa6\x81\x49\x54\xb2\x33\xf6\xca\xea\x8f\xfd\x8d\x7d\xd9\x9b\xa6\xdc\x09\x3c\xc7\xb7\xc2\xf0\xad\xbf\x88\xda\x24\x8f\x45\xf9\xd6\x9c\xff\x06\x54\x91\x3b\x61\x10\x71\xbd\x4f\x60\x41\x31\xcd\x7a\x91\xba\x6a\xf4\x06\xc2\x38\xf4\xf4\x4a\xb9\xa0\xf9\xbc\xb9\x76\xab\x19\x77\x22\x3f\x89\xfb\xf2\xda\x6b\x86\xfe\xfe\xf8\x1b\x45\xb1\xaa\xa8\xab\x20\x17\x07\x83\xb3\xbf\xa5\x04\x18\x5e\x38\x4e\x1c\x12\x1b\x97\x1e\x93\x6a\x18\xda\x37\x51\x22\xee\xc4\x94\xe1\x8b\x5b\xbe\xfd\x03\x1d\x28\xd9\xe4\xd3\xb8\x4a\xee\xc4\xa0\x56\xac\x3e\x8b\xf7\x06\xca\xdb\x14\x00\x77\x92\x84\x70\xd7\xe0\x08\x78\x59\x28\x73\x70\xaa\x2a\x87\x3b\x09\x53\x6c\x8a\x98\x2e\xd8\x01\x0a\x9c\xeb\x26\xea\xf8\x21\x33\xc5\xfb\x56\xd3\x82\x3b\xd4\xf7\x31\xe1\x38\xef\x74\x9d\xed\xf2\xde\xb6\xca\x58\x41\xa7\x2a\x25\x65\x37\xfd\x01\x69\xc0\x15\xf9\x57\x73\x5d\x75\xc7\x46\xaa\x9e\xe2\xa2\xb2\xf8\xcb\xfa\xf4\xb3\x53\x45\x34\x7d\xa8\xc0\x87\xcb\xe1\x17\xa2\xdc\xb4\x84\xd2\x6b\x9a\xcf\x15\xf3\xa9\xe9\xc8\x12\x25\x8b\xd8\x41\x1c\x61\xbe\x7f\x1a\x19\x54\xdc\x61\xc0\x3d\x69\x30\xc9\x9a\x3b\x40\x8b\x10\xe9\x1e\x3c\x54\x08\xfd\x59\x5a\xee\x4b\x2a\x65\xca\x7b\xb5\xf5\xc3\x59\xda\x73\xe8\x87\x5f\x8f\xc7\x8a\xb5\x7f\xa7\x0c\xdd\xc9\x55\x8a\x3b\xc2\x11\x08\x29\x9f\x09\xa1\xb5\xd8\x47\x5f\x4b\x10\x40\x4a\xfc\xed\xbf\xde\xd6\xfb\xa5\xb9\x41\x70\x1c\x9b\x96\x5e\xe5\x4f\x8d\xf9\xca\xb1\x69\xf7\x63\x2c\xd3\x47\x4c\xf8\x2a\xff\xd6\xae\xe0\x8e\x74\x7d\xaa\x15\xe8\xac\x52\xf1\x8d\x06\x1d\x77\x64\xc4\x50\xda\x38\x6f\xce\xc6\x57\xab\x6c\x1b\x57\x2c\x24\x66\x4e\x3d\xd3\x5c\x8c\xb6\x45\xee\x3a\x90\x38\x5d\x52\xe3\x2e\x9a\x88\xbb\x6e\x98\x50\x9c\x24\x2f\x6b\x9d\x9e\xe1\xae\xc7\x39\x2e\x45\xcf\x4d\x73\x46\x8a\xe2\x5c\xb4\x8e\xc7\xdf\x62\x58\xe3\xae\x1f\x78\x5c\xaa\x08\x6e\x4d\x79\x3d\x8c\x7f\xb7\xcd\x0c\x9d\xdf\x33\xba\x8e\x56\x6c\x8e\xbb\x7e\xec\xf9\x61\x07\xec\xd7\x78\x98\x9f\x3d\x7e\x26\xee\x12\x2f\x40\x35\xd3\x43\x21\x65\x96\xe6\xd0\xaf\x1c\x9d\xdc\x56\xb9\x4b\x02\xc0\x09\xf5\xd0\xd4\xdc\x6c\x93\x7f\x55\xc7\x39\x19\xb8\xb2\x67\x0c\x88\x4f\xac\x3c\x8c\x35\x0c\x7b\xba\xff\xdc\x0d\x79\xc8\x75\xc9\xc4\xa6\x4c\x3f\xd3\x0c\x8e\x93\xcc\x1a\x6d\x4f\x55\x10\x5b\x02\x2f\x46\xb8\x01\xee\x46\xc4\x41\xdf\x73\x83\x39\xff\xdd\x44\x49\x8e\xee\x18\xbb\x89\x67\xc8\x2e\x4f\x34\xcd\x7f\x16\xe5\x87\xb9\x97\xd8\x97\x58\xfe\xad\x90\x33\x1f\x90\xb7\xd3\x1e\x8d\x98\xc9\x75\xd5\x4d\xa2\x04\xa7\xf6\x8f\xb4\xac\x1b\x9a\x99\x08\xc5\xf4\x80\x76\x93\x24\x8e\x15\x69\x97\x42\x92\x0f\x86\x42\x22\x14\x56\x05\xce\x69\x3d\xc3\xe2\xae\xa7\xf4\xb3\x67\x36\x0e\xbf\x54\x22\x15\x83\x8f\xc6\xf1\xee\x6f\xb0\x27\xba\x1f\x73\x15\x92\x6b\x5e\xe4\x73\x43\x55\x3f\xbc\x29\xe4\x61\xea\xa8\x8e\x15\x79\xf9\xf8\xe5\x32\xce\xb0\x22\xc6\xcc\x58\x1d\x79\x9c\x88\x93\x72\x97\xcb\x50\x76\x1a\x0b\x48\x78\xb6\xab\x69\xdd\xf4\x30\x92\x6d\xa7\x08\x81\x9c\xcb\xfd\x73\x6a\x8a\x76\x74\x93\x08\x15\x45\x32\x02\x7f\x70\xa4\x3c\xf7\x3d\x1c\xee\x82\xa3\x18\x48\x0e\xb8\xcb\xb7\xc6\xc2\xcf\xdd\x6a\x31\xba\x63\x08\xc1\x28\x6e\xcf\x1e\xce\x69\x8e\x2a\x06\xed\xb0\xde\x94\xc5\xaf\xeb\xe8\x1d\x40\xac\x18\xfd\x31\xbf\x7e\x4e\xf3\xe9\xe1\x07\x94\x84\x6e\x5f\x68\x58\x2d\xbc\xa6\x15\x44\xa0\x20\x80\x2a\xd5\x76\x67\x0c\x48\x57\xc6\xb2\x8b\x13\x69\x2b\xde\x3e\x9b\x04\x2e\xd5\xd7\x50\xcc\xb8\x1d\x87\x38\x77\xa5\x54\x82\x59\x67\x05\x9f\xc1\x7a\x21\xd5\xe4\x39\x3e\x08\xed\x1a\x62\x72\x6e\x94\x77\x1b\x0e\x0a\xcf\x25\x21\xa5\xa6\xb6\xee\x3a\x7d\xa3\x9e\x1b\x24\xc9\x90\xb5\xbf\x19\x88\x9a\x73\xcf\x05\xe5\xce\x41\x7d\x52\xca\x83\xa3\x2d\xdd\xf3\x1c\x05\xf0\xae\x34\x2f\xde\x16\x2e\x45\x89\x62\x5a\x93\x23\xc7\xf3\xa8\x44\xd6\x08\xae\x87\x61\x3f\xf5\xc0\x3d\x4f\x7a\x80\x2a\xf2\x4d\x99\xef\x2e\x59\x5a\x0f\x22\x26\xdc\xf3\xa3\xc4\xd5\xfa\x0a\xed\xec\x69\xbd\x41\x5d\xb2\xf1\x98\xd2\x69\x2f\x84\x7b\x44\xb3\x4e\x5a\xbb\xf3\x07\x8e\x45\x43\xad\xfd\x5d\x04\x87\x7b\x24\x71\x4c\x1c\xb4\x35\x30\x84\xb5\x85\x8c\x3d\xea\x11\xcd\xd2\x3f\x87\xbe\x8c\x36\xf7\x42\xcf\xc3\x98\xc6\xcb\x7a\xf1\xfb\x61\xf7\xb2\xde\xef\x6c\x4b\x9c\x98\x04\xb9\x62\x6c\x30\x63\xf1\x36\x11\xcd\xbd\xc8\x09\x15\x59\x11\xb4\x7e\xc2\x83\x96\xd5\xdc\x97\x94\x7f\xa4\xf9\xb1\x23\x34\x6f\x7b\x72\xe4\x75\x50\x39\x9d\xc7\xa2\x74\x97\xf5\x69\xe3\xd9\xe6\x30\x44\x82\x5d\x4c\xae\xad\x9b\xd1\x6e\xef\x45\x10\xc4\x8a\xeb\xb2\x35\xb6\x07\xee\x35\xf7\x62\x4a\x91\x64\x73\x3b\xdb\x2f\x0f\x8f\xeb\xed\xe1\xe7\x72\xf9\xbb\x6f\x5b\x65\xa0\x4c\xf5\xe2\xc5\x8a\xe6\x73\x2f\x09\x43\xa4\x7e\x1b\xd2\x77\x3d\xc0\xa7\xcd\x91\x8d\xc7\x52\x12\x29\xce\xf2\x4b\x59\x64\x45\x7e\x7c\x1e\x37\x83\x9a\x00\x95\xf6\xf7\x2c\xcd\xef\xb7\xd6\xbb\x47\x69\x88\x08\x9f\x4d\xf1\x01\x5a\xb1\xca\xdc\x22\x05\x8e\xd1\xef\xb4\xda\xa8\x01\xf5\x06\x60\x0a\x69\x38\x52\x79\x69\x54\xb0\x1e\x86\x6b\x89\xdc\x0d\x23\x9b\xc1\x43\xb8\x1a\x7e\xe9\x9f\xab\x7f\x9a\xa3\x39\x17\x58\x6e\xf0\x91\xd6\xf5\x75\x51\x94\xf6\x23\xeb\x76\x41\x7d\xae\xb4\x23\x2f\x63\xc6\x5e\xee\x09\x20\x0e\xb5\xe1\x96\xd6\x47\x6a\x87\xba\x15\xe2\x1b\xbf\x38\xf0\x55\x75\xa0\x21\x33\x9d\xe2\x3d\xe7\x9e\x14\xdc\x0f\x06\xac\xed\x4a\x12\xb5\x19\xa1\xb4\xb8\xef\x04\x14\xab\xd9\x7a\xa5\x01\xe2\xad\xf9\x9e\x35\x8a\xfb\x4e\xac\xf0\xd5\x25\x06\x71\xe6\x50\xcf\x72\xd1\xb1\xc8\x6b\x18\x01\xf7\x3d\x17\xb0\xbe\x84\xf6\x69\x86\xb9\xef\x45\x01\x86\x85\xb5\xb4\xcf\x43\x9a\xa5\x47\xc8\x39\x0c\x3b\x25\x80\x63\xf8\x85\x56\xf5\x81\xb5\x26\xa8\xc1\x59\xd3\x5c\xe0\x0f\x75\x7a\x86\x43\xc7\x25\xc0\x7d\x42\x04\xde\x15\xce\x0a\x15\x32\x56\x32\x9d\xb6\x43\x12\x22\x20\x4a\xc5\x03\xfa\x57\x23\x1c\x9c\xa0\x97\xcd\x10\xbd\x9a\x02\xee\x13\x08\x99\x2a\x6c\x17\x3a\x93\xfc\xcf\x9b\xda\x31\xee\x07\xc4\xc1\x32\x37\x40\x68\x7a\x5a\xe4\x98\x57\x5c\x0f\xe3\x01\xdc\x0f\x92\x04\x23\x71\x3f\x56\x6f\x83\x5b\x88\x62\x55\x67\x60\x8c\x5b\x2c\xe8\x91\xed\x30\x1d\xe5\x44\xb9\x1f\xd1\x00\xd7\x46\x86\x92\x0f\x37\x31\x32\xee\x27\x22\xc6\x54\xb3\x86\x12\xcc\x72\xf1\x58\x94\x88\xce\x9c\x06\x5a\x4d\x83\xf5\x27\xad\x4a\x3f\x11\x14\xf7\x09\x46\x6b\x7e\xea\xe3\xfe\x74\x6a\xd0\x19\x1b\xda\x3e\x75\x03\x14\xa8\x59\xa6\xa2\xa8\x26\x21\x36\xb6\xa3\x02\x47\xbd\x41\x59\xd4\xfd\x77\x43\x65\x82\xd6\xe0\x53\xeb\x39\x0c\xde\x1a\xa3\x09\xe8\xa4\xde\x2b\xcd\x7b\x45\xc0\x63\x87\xcc\xe7\xc4\xc3\x84\xd5\xcf\x97\x57\x73\x30\xa7\x09\x2a\xd1\x9e\xd0\x8f\xd0\xae\x11\xba\xd2\x6a\x14\x4c\x5b\x61\x3e\xe7\x0c\xf7\xd2\x0c\x3e\x21\x7b\xbf\xcc\xaf\x1b\xc8\x8f\x4d\x7a\x63\x67\xf9\xc2\x27\x88\x85\xe0\x5d\x02\xb3\xfd\x51\x21\x79\xad\x51\x6a\x8a\x97\xc6\xa9\xa8\xd1\xcb\x11\x5c\x70\x65\x91\x54\x0d\x3c\x34\xed\xbe\xd1\x3a\xcf\xd3\xb7\x28\x24\xa7\x3a\xbd\xb2\x39\x2d\x7f\x71\xb8\x74\x74\x71\xf6\x4b\x02\xc4\xb1\x4d\xfc\x09\x80\xf3\x84\x8c\x14\xf7\xa5\xab\x92\x08\x47\xa8\x77\x59\x51\xeb\x58\x90\x69\x0c\x29\x91\x9d\xac\xa8\xad\x5e\x19\x9d\x22\x61\xb1\x8e\xcd\x2b\x2a\x91\xc7\x8c\x1e\xad\x8c\x88\xce\x26\x73\xe2\xc4\x4e\xa0\x4d\xf9\x47\x5d\x46\x32\x5c\x49\x89\x93\xc4\x98\xc2\x7d\x2d\x58\xaa\x17\xc8\x59\x66\xb5\x6c\x38\x71\xc3\x08\x3d\x56\x31\xa8\x8b\xbe\x83\x2e\xec\xb2\x12\x9c\x78\x8e\xe7\xb8\x1d\xbf\x16\xa6\x62\xa1\x7c\x2c\xca\x5d\xc3\xfe\x17\xc6\xfe\x32\xf1\x5c\x07\x49\x8a\xe0\xd7\x25\x2b\x4a\x58\xee\x9f\x2d\x7f\x2b\x27\x5e\x10\x62\x1d\xc6\xb2\x3e\xed\x81\x76\x52\x5f\xc3\xa4\x77\xff\x9e\xb4\x54\xc0\x48\xa2\x9e\x93\xd6\x46\x52\x71\x9e\x76\x9e\xb5\x4b\xf8\xae\x2e\xca\x6e\xf3\x20\x84\x24\xc8\x02\x72\x28\x69\xfe\x31\xbf\x4e\x14\xb3\x70\x42\x02\x4f\x41\x2f\x2f\xf4\xba\xd4\x91\x95\x59\x2e\x6c\x5d\x36\x8c\xfb\x87\x04\x0d\xf6\x87\xf2\x4a\x85\xbd\x50\xec\x61\xfe\xea\x40\xab\x2a\x3d\x2a\xe2\x8b\xf2\x3a\x3e\x92\x7a\x68\x51\xeb\xbd\xa4\xdb\xb6\x91\x32\x17\xd7\xa7\xe1\x01\x81\x74\xc2\x81\x66\xac\x89\xd7\x2b\x90\xe1\xd0\xf9\x24\xa1\x1b\x09\xa3\x88\x82\xd9\x19\xa5\x3d\xd5\x37\xa1\x48\xc8\x3c\x5c\xc7\xff\xd3\x80\x49\x88\x72\x12\x8a\x18\x01\x08\x4b\x2d\x4d\x31\xba\x8b\x88\xb8\x18\x5f\xc6\x24\xe2\xe6\x69\xd9\x5f\x5f\x48\xec\x84\x58\x90\x59\xb4\x76\x78\x6b\x69\xd9\x86\x28\xc1\x3a\xb3\xd9\xe3\x4f\x1c\x6b\xc3\x73\xc6\xb1\x8b\x7a\x4f\xa6\x6e\x17\x4b\x73\xe7\x57\x25\xe9\x34\xea\x0a\x91\x62\x14\x57\x6b\xf5\xbe\xff\x2e\xba\x5e\x34\x26\x2a\x6d\x59\xd3\x5f\x83\x1b\xa4\x2c\x0c\x75\xfa\x95\xd7\x96\x74\x85\x66\x87\x23\x06\x7d\xcb\x03\xfc\xa7\xc7\x5b\x34\x6d\x38\x11\xca\xa3\xc8\x10\xb2\x18\xf6\x84\x81\xa7\x3a\xdc\x03\x08\x05\x8e\xc1\xb2\x8a\xb6\x96\xea\xbc\x28\xb2\x2d\xce\xd9\xca\x8e\x4c\xe6\xf9\xbe\x76\x16\xda\x49\x30\x0c\x15\x0e\x47\x39\xf3\x22\x2c\x4f\x6c\x3d\x81\x59\x8a\xec\x7d\xbf\xdd\xc4\xbd\x4c\x5f\x4e\x3d\xc5\x17\xa2\x61\x21\x0f\x40\x45\x96\xe6\xdd\x75\xa5\x92\xef\x35\x1b\x39\x66\x61\xea\x6f\x4b\x6f\x38\xe1\x5e\xe4\x26\xaa\xd4\x11\x95\x3e\x6c\x29\x16\x27\x9c\x11\x06\x16\x59\x61\x52\xed\xed\x54\x7c\xc3\x20\x61\xaf\x80\x53\x1f\x21\xbc\x00\x2d\xcd\x07\xa0\xf5\x49\x15\x19\x1f\xd2\xd4\x9c\x4f\x10\xa1\x3c\x14\x23\xdf\x57\x8f\x43\xc2\x04\x02\x95\x2b\xfe\x48\xb3\x0c\x46\x4a\xc3\x6d\x6b\xe2\x5a\x45\x37\xac\xda\xb5\x2d\x91\xaa\xb5\x2d\xbb\x40\x3c\x81\x38\xc6\x88\x46\x93\xbf\xa4\xf9\x47\x7b\xdb\xaa\xbe\x44\x7d\x0f\x0b\xab\x98\xdc\x71\x08\x24\x02\xe3\xdb\x3a\x74\x64\x38\x65\x6e\x56\xab\xd1\xdb\x04\x50\x0b\xc8\x9a\xa5\x65\x73\xde\xd3\xcc\xc4\x63\x88\xa4\x31\x6e\xc1\x6a\x11\x99\xe5\x45\xbb\x1c\x4d\x64\x2e\x02\xd7\x21\xf8\x0e\x5f\xf7\x9a\x8c\x89\x07\xae\x1b\xc5\xb1\x41\xe9\x5a\xbe\x5f\xcd\x24\x6c\xb8\x7e\x27\x20\xf3\x3c\x70\x3d\xc5\x65\x63\xf5\xe6\xa7\x47\x41\xe0\x85\x2e\x82\x99\x0e\xe7\x74\xbc\x09\x06\x9e\x48\x30\xcf\x23\x01\x1e\x8b\x72\x56\xd6\x3f\x8b\xf2\x63\x61\xdd\x1d\x4b\xdf\xc5\x03\xdf\x53\xba\x95\xaa\xd1\x8a\xbe\x5b\x26\xc8\x78\x74\x55\xdf\x8f\x84\xb0\x2a\xc6\xb3\x3c\x2f\x9a\x9c\xdf\x02\xc9\x4c\x6f\xe9\xe3\xd7\x47\x09\xe7\x9f\x69\x2e\x8a\x2f\x6f\x68\xfb\x05\xc4\x0f\x10\xac\x9d\xa5\x12\x34\xc8\xb0\xf7\x96\x4c\x27\x01\xb8\x6f\x0f\x90\x20\x77\x63\x83\xc3\x7b\x20\x10\x0a\x13\x71\xa3\xf9\x27\xed\x53\x76\xf1\x20\x74\x00\x11\xeb\xb8\x02\x77\xf4\x65\x3c\x08\x49\x88\x01\x71\x2a\x44\x7b\x3f\x5f\xbd\xa1\x3d\xfc\xf8\x61\x48\x11\x4f\xac\xa5\x64\x87\x8d\x91\x07\xe8\x50\x1f\xd2\xea\xb1\x41\xf4\xe5\xf0\xe6\x22\xa2\xac\x53\xd4\x1d\xab\x8b\x2f\x28\x0f\x29\x4e\x52\xd3\x1e\xf9\x28\x30\xa5\xe7\x1f\xfd\x80\xb1\xcc\x12\x0f\x22\x29\x24\xb1\x98\xf4\x1b\xd6\x2b\x3b\xfe\x75\xf7\xd8\xa1\x7e\x60\x8b\xec\x67\xb9\xd0\x50\x46\x73\xc9\xd8\xf5\x13\x55\xb0\x4e\xcf\xba\x8c\x74\xf4\x50\x34\xf2\x31\xe6\xdd\xa5\x14\x74\xf6\xa1\x27\x7d\xc9\x03\x2a\x95\xc4\x6e\x5a\x59\xfe\xec\x17\x95\xd0\x30\x3d\x98\xcf\x90\xe5\xc3\x60\xd7\x7a\x95\xaf\x3c\xe0\xb1\xaa\x9b\x37\xc4\x4f\x8a\x31\x6a\x87\xc4\xc3\xb3\x2c\x53\xa0\x31\xd3\x37\x11\xb8\x04\xcd\x21\x13\x90\xf7\x33\x0b\xa6\x83\xde\x75\x2a\x8b\x0f\x7f\x04\x50\xe3\x51\x85\x85\xd2\xfc\xd8\x67\x2f\xd3\x87\x09\x47\x95\xa7\xfd\xde\xd0\x6f\xd2\xe8\x3c\x10\xa1\xad\xae\x45\x27\xaa\x7a\xcf\xeb\x34\x6b\x47\xf3\x78\xb0\x40\xe0\xe1\x36\xbc\xa0\xb9\xb8\xb6\x5b\xc7\xaa\x5a\x5f\xec\xee\x18\xc8\xc0\xf3\x89\x96\x99\x57\x0a\x0d\x69\x85\x13\x61\xdb\xfe\x6b\x7b\x51\x8e\x91\xdc\xb4\x5a\xf1\x02\xb9\xb8\xd0\xe9\x52\xad\xa1\xe3\x24\x8a\x60\x22\x85\x2f\xc5\x45\xd9\xfe\xab\xf0\x5f\x48\x8d\xd6\xab\x1c\xef\xcc\xc0\xd0\xa1\x0e\xfa\x60\xaf\xf4\xb2\xef\xd6\x87\xd0\x75\x14\xc4\xa4\x82\x7a\x99\xa1\x2a\xde\x2b\x88\xb4\x13\xc7\xe2\xa1\xeb\x45\x4a\x0b\xd2\xd0\xbd\xcf\xc1\xe0\x0a\x79\xe8\x25\x1e\xba\xc5\x34\xcb\xd6\x17\x28\xfb\x85\x8d\x3c\xf4\x24\xc5\x52\x01\x5a\x55\x50\x8f\xc9\xba\xda\x66\x89\x8c\x36\x02\x32\x18\x32\xa9\xea\x0e\x7e\x1c\x2b\xe6\x40\x2c\x83\x53\xd9\xaa\xea\x19\x32\xfb\x2a\x7c\xe6\x63\x71\xf0\x19\xce\x45\xa9\x72\xc3\xc3\x2f\x1c\x12\x2f\x51\x62\xe0\x8a\xd0\x0b\xd9\x37\x8d\xe5\x7b\x03\x26\xb5\xc7\x48\x0d\xea\xc9\x3b\xaa\xb1\xe9\x91\x11\x12\xa6\x89\xd5\x5b\xa7\xf7\xe1\xbd\xb5\x2d\xcc\xcd\x85\x24\x42\x1b\x5e\x29\x1a\x1c\x2e\x50\x1e\xfa\x4e\x64\x18\x52\x05\x9d\x9f\x67\xe9\x9f\x7f\x5a\xb6\x39\x1e\x46\x31\x0f\x49\xa7\xd7\xd3\xfd\x4e\x63\x53\xc1\xbd\xaa\xe1\x5c\x4d\xe1\x5b\x78\x18\x13\xa5\x92\x82\x22\x68\x3f\x8a\x1a\xde\x8a\x05\xad\x4e\xf3\x01\xa5\x66\xdb\x4d\xe2\x06\x72\x29\x2a\x5d\xf4\x3c\x82\x76\x8d\x99\x5f\x87\xbf\xf6\x8d\xdc\x30\x96\x5c\x90\xbe\x3a\x9a\x02\xdd\x8d\xa3\x9b\xc3\xfb\x4c\x20\x54\xfa\x19\x18\x88\x9e\x8f\x27\x52\x98\x80\xc0\x39\x30\x87\xb2\xbc\xbe\x74\x09\x9d\x90\x3a\x2e\x56\x41\xf0\xa6\x2e\xa4\xec\x51\xaf\xf0\x90\x79\x5c\x15\x00\x9e\x80\x7f\xa8\xf5\xe4\xa5\xa8\xaa\x5d\x9a\x73\x58\x69\x42\x47\xb5\x0f\xda\x23\xa2\x48\xbb\xeb\xe7\x34\x3f\xa4\xd5\x86\x5e\x31\x26\xde\xe5\x12\x42\xee\xba\x98\xc1\xa5\x4d\x5d\xec\x81\x96\x0f\xc5\x57\xde\xfa\x2b\x03\x9a\x53\x1e\x82\x1f\x23\x48\xf0\x5c\x88\x54\x5e\xdf\xe0\x57\xbd\x29\xe1\x9c\x36\x67\x9b\x2b\x1a\xed\xb4\x21\x10\x0a\x03\xc9\x40\x7c\x0f\x39\xc8\x94\xa7\xd4\x7a\x0b\x21\x44\x41\xa2\x9c\xae\x59\xc5\xd3\x54\xe1\x68\x46\x2f\x0b\xe2\x28\x51\xc9\xdd\xba\x5d\xe9\xaa\xdd\x57\x5a\xf3\x93\xf2\x47\x4c\x17\x11\x62\x8c\x46\x7d\xb9\x7d\x81\xe4\xbb\xc1\xc0\x5b\x09\xa5\xeb\x32\x2b\x92\x64\xca\x41\x4d\x9b\x9f\x68\x4e\xab\xfa\x25\xe5\x90\x57\xe8\x49\x55\x66\xcf\x9c\x34\xa5\x43\x49\x3d\x5f\x3b\xda\x3b\x55\x71\xdd\xee\xc0\xe5\x99\x0e\x52\x7f\x7d\xaf\x2a\x94\x34\x26\x18\x33\xa5\x4d\xd5\x4b\x4f\x44\x4e\x14\xe1\x3e\xae\x60\x9d\x8f\x30\x0c\xe3\x76\x25\x79\x3c\x72\x58\x84\x19\x3f\x38\xa7\x35\x6a\x7b\x5c\x51\x1f\xae\x99\x4a\x37\x9a\x43\x84\x1a\x8c\x4d\xde\x49\x7e\xf3\xc8\x75\x54\xdd\x36\x6f\xdd\xc5\xd5\xad\xb4\x2a\x8f\x5c\x11\x60\xc0\x66\xc5\x8b\xc1\x98\x37\xcd\x10\x2a\x4e\xa3\x92\xde\x53\x74\x6f\x3b\x71\x9c\xb0\x07\x55\xd8\xdc\x1b\xcf\x91\x27\x85\xe4\x06\xbd\xa5\x78\xfe\xc7\x97\xf0\x03\x90\xda\x65\xc5\x44\x98\xca\x63\x9b\x13\x04\x11\x40\x17\xb7\xc6\x0a\x98\xd1\xf1\xa1\xe7\x21\xc0\xb4\xfe\x55\x94\xe9\xd1\xee\xce\x51\x18\xa9\x00\x84\x9a\x18\xb4\x5f\x27\xcf\xa3\x50\x04\xc8\xfb\xfc\x67\x9a\xd7\x07\xbd\x8a\xee\x0b\x3d\x32\x07\x4b\x78\x14\x33\x8a\xa6\xc4\xac\x64\xfb\x02\x0d\xfe\xe7\x1b\xa9\xfc\xb6\x97\x14\x5c\xbb\x5c\xad\x89\x3a\xf2\x49\xa3\xc4\x8d\xd5\x3a\x5f\xa4\x56\x81\xd6\xdc\x4c\xe2\x79\x91\x72\x38\xc5\xb8\x18\x91\x47\x09\x05\x2c\xa7\x6a\x57\x25\xa5\xf5\x31\xc8\xfa\x44\x34\x24\xb8\xb7\xa5\x95\xdd\xbd\x54\x44\x68\xf4\x18\x34\x0e\x82\xc4\x46\xc5\x9f\x52\x39\x1e\x09\xcc\x51\xf8\xfa\x4d\xc1\x3f\x74\xe6\xd7\x5c\x83\xd1\x20\x34\xae\xa7\x36\x6f\x55\x96\x50\x8d\xfb\xd1\x50\xe4\x44\xf1\xf1\xeb\x12\x0e\x1b\x78\x1f\x5d\x8f\x73\x57\xaa\x7c\x2e\x94\x47\xc8\xf9\x75\x59\x9f\x1e\x4a\x3a\xf6\xe6\x23\xce\x01\x09\xb7\xa8\xf2\x99\x5e\x53\x55\xde\x69\x23\x8a\xba\x1b\x38\x21\x02\x7d\xdb\x0d\x67\x49\xcb\xec\x8a\x20\x08\xd7\x36\x73\x0f\x61\x48\x07\xd9\x64\x32\xcd\xcc\x5e\xfc\x97\x95\x89\xc3\x47\x03\x88\xd1\x16\x9e\x7b\x2f\x94\x1d\x54\xad\x69\xd6\x8c\xd6\x8c\x08\x20\x21\x61\xb7\x96\x4d\x67\xd6\x62\x27\xf6\xd0\x08\xda\xa4\x73\xa8\xe9\xe0\xa3\x22\x4b\x22\xf2\x81\x4d\x3a\x13\xd3\xe7\xf3\x23\x15\x1f\x68\xa7\x5a\x6b\x22\xdc\xe9\x25\x22\xcc\x73\x1d\x0b\x59\x94\x16\xde\x14\x13\x26\xa9\x2a\x3b\xc9\xa1\xec\x17\x1a\xf5\x42\x7a\x31\x11\x01\x02\x82\x71\xd3\x1e\x8a\x55\xf3\x98\x80\xef\x1a\x67\x64\x44\x03\x39\xf6\x7e\x4c\x00\x39\x0e\x88\x2a\x81\x4b\xab\x15\xde\x23\x26\xd8\x57\x79\x48\x7e\x1b\xdc\x73\x40\x04\x82\x19\x67\xef\xfb\xe7\xc3\x76\xf9\xba\xfe\xb1\x5c\xff\x7c\x33\xea\xb0\x3c\x0e\x12\xc5\x17\xa1\xa3\x64\xaa\x0a\xe5\x95\xde\xaf\xee\x1f\xbe\x92\x40\xc6\x88\x33\x2f\x34\xe1\xce\x41\x85\xba\xa6\xcc\x85\xd1\x91\xa1\xe3\xab\x92\xca\x76\xb7\xd6\xfb\x47\x6b\x3f\xad\xf3\x91\x3f\x12\x87\x3a\x67\x6f\x76\xca\xb7\x62\x40\x9b\x7d\xe7\xce\xc2\xd8\x8b\xfb\xdc\x79\xfb\x76\xfb\x3e\xef\x6a\xb8\x8c\x16\xc1\x38\x14\x0e\x92\x12\xd8\x4a\xfc\x69\x58\x44\x1c\x8a\x24\x06\x1d\x68\xef\x85\x3d\xe3\x10\x7c\x46\x7a\x60\xe6\xd6\x65\x2a\xca\xc1\xde\x1a\x47\x7e\x14\xba\x56\x3f\xb9\xa4\xc7\xce\x4e\x8e\x23\x0a\xc8\xbc\xaa\x82\x7a\x87\x0a\xb2\xec\x90\x8d\x45\x48\x79\x1c\x31\xea\x7a\x86\x9b\xae\x6e\x32\x9a\x96\x70\x58\x14\xe7\x4b\x0d\x07\x93\x6b\x8d\x63\xcf\x47\x6c\xd9\x67\x51\xd3\x43\x93\x1f\xb8\xd6\x70\x29\x46\x27\x8b\x23\x1f\x0d\x77\x1d\xe6\xbb\x07\xdd\xf9\x2e\xf5\x12\xc7\xb1\x8f\xd3\xe1\x47\x81\x85\x27\xe9\xf1\x54\x57\x66\x64\xdf\x71\xa5\xe2\x58\x52\x4d\xca\x2c\x6c\xd4\x04\xc4\x0d\x3b\x29\x8f\x13\x27\x08\x54\xb5\xeb\xa6\x75\x9b\xbd\xd1\xfd\x27\x09\xc5\x6d\x73\x01\x7c\x61\x45\x72\x79\x9c\x68\xf3\x61\x71\x2a\x8b\xbc\xa8\x14\xd4\x45\xc3\x29\x4c\x1f\xca\x88\x97\xf4\x32\x5b\xaf\x30\x16\xfc\xe3\x31\xe5\x80\xa9\x5b\x1c\x0f\xaa\x9c\x43\x2f\xd7\x13\x70\xab\xff\x1a\x1d\x2b\x3d\x8c\xd1\x56\xa8\x9d\x78\xe7\x3d\x30\x8f\x8a\x01\x24\x55\xaf\xa9\x4f\xc5\x2d\x05\xc7\xf8\xd0\x98\xe1\x3a\xaa\x16\x8b\x12\x44\x5a\x83\x30\xf6\xed\x6f\xd3\x81\x7c\xcb\xec\x7d\xef\x9c\x5c\x20\xe9\x82\xf6\x93\xd2\x1b\x78\xe6\x98\xc4\xe2\xde\x79\x20\xc4\x1a\xf7\xf5\x9b\xc1\x51\xc6\xdc\x21\x48\x7c\x80\x0a\x04\x9d\x93\x38\xbb\x83\x7a\x8a\xb9\x17\x63\xae\x28\x2b\xa8\x78\x83\x2f\xa5\xcb\x67\xe9\x4b\xec\xf2\xc7\xe3\x04\xa3\x81\x26\xf3\x8c\xe6\xe8\x77\x01\xb5\x98\x53\x07\xa8\xa6\xd1\xca\xd3\xea\x64\x6f\x90\x29\xe9\xb5\x4a\x81\x66\x2c\xb4\x32\x16\x32\x4c\x14\x9a\x11\x6d\x57\xc3\x46\xa0\xb4\xf7\xc5\xe4\x2a\x0f\x3e\x68\xed\x33\x5e\xe4\xa2\xa7\x3f\xbd\xa5\x35\x3c\x40\x5e\x9c\xd3\xbc\xe7\x5c\xc7\x20\x88\x92\xd0\xae\x8b\x6f\xe5\xb3\x4d\x77\xf0\x80\x9b\x35\xf3\x67\x3a\x5d\xcb\xc1\x63\xe9\x32\x0c\xfa\x55\x05\x4f\x69\xb6\x42\xf2\xef\xfa\xba\x96\xc8\xc1\xd3\x31\xc2\x4c\x1e\x9c\x38\x21\xa3\x9e\x2d\xad\xd6\xba\x2d\xbf\x99\x46\xce\x99\x2e\x44\x6b\x7d\x1c\x04\xde\xcc\xaf\x03\xe2\xae\xe1\x2d\x27\xae\xef\xe1\x8c\x6c\x2a\x28\xab\x49\x70\x6e\xe2\x06\x14\xad\x34\x8c\x13\x74\x35\x41\xba\xd5\xa3\x1e\xd3\xa4\x9f\x1d\x4c\x76\x24\x9c\xc1\x13\x8f\x3b\xf8\xc8\x07\x2a\xc4\x86\x5e\xf7\x56\x97\x6e\xa8\x39\xf7\x7f\xf9\x63\xce\x0c\x01\x12\x61\xa9\xc8\xcf\x85\x72\x3d\xcc\xec\x95\x25\x4b\x12\x5b\x2d\x30\x56\xf3\xe6\x09\x89\x1d\x5f\xc1\x56\xf3\xe3\x1e\xca\x33\x6b\xc4\x11\x54\xa4\x78\x98\x4e\x4c\x08\xf5\xfc\xc0\x46\x0c\xfa\xf4\xba\xbb\x0b\xb5\xd7\x0b\xa8\xe2\xa9\xa1\x42\xac\x6a\x38\x0f\x2d\xd5\x24\x74\x02\x2c\xb9\xb0\x49\x2f\x6e\xb9\xf0\xcc\x09\x42\x37\x41\x8c\xf7\xe3\x62\xbd\x7a\x73\x1d\x3f\x9c\xc4\x93\x4e\xed\xd9\x49\xc8\x00\x51\x52\xaa\x40\x21\x55\x15\xf7\xc3\x32\xbc\x71\x38\x25\x89\xc3\x18\x29\x55\x35\xaf\xe5\x2c\xc7\xea\xd5\x91\xf7\xd7\x9f\x44\x49\xcc\x14\xe3\xd6\x4f\xc8\x78\x71\x86\xd7\xea\x38\xd8\x4b\x93\x24\x00\x8c\x3a\x63\xdc\xd6\xbc\xa6\x27\x54\x88\x34\xcf\x48\x1d\x9a\x18\x64\x68\x99\xf2\x34\x3f\xa2\x73\xd4\xae\x3a\xa6\x47\x1c\x0a\x2d\x96\xb7\xa0\x65\x9e\xde\xf2\x22\x98\x8e\x92\xb9\x3a\xd2\x5f\x3e\x52\x56\x6a\x5c\x74\x97\x03\x49\x98\x1b\x22\x49\xeb\xe3\xfb\xfe\x75\xbd\x37\x0b\x5f\xc2\x1d\x89\xb1\x61\x15\x12\x30\xf7\xd9\x0e\x4c\x04\xa9\xd9\xe5\xc3\xba\xae\x09\x17\x8a\x4d\xc7\xf2\x9e\x4c\x84\x5b\x12\x11\x26\x18\x19\x31\x76\xcd\xc3\x47\x36\xa0\xc3\xe2\x09\x50\x17\x47\x6c\x0e\xbf\xea\xdd\x07\x02\x01\x74\x8b\x74\x12\x0c\x7a\xab\xa8\xcb\xbe\x98\x88\x20\x25\x92\x48\xac\x08\x4a\xab\xae\x8c\x7c\xf8\x46\x64\x18\x61\x9c\x05\xce\x54\xe1\x61\xed\x08\x96\x89\x44\x87\x13\x03\x5d\xbd\x0a\x80\x44\x72\x81\xb9\x7d\x44\x91\xd9\xe5\x8f\x3a\x9e\x87\x98\x5b\xad\xd1\x37\xa6\xcf\xe4\xd4\xe1\xb1\x0e\x66\x4b\x28\x4b\x28\xd1\xcd\x5e\xd8\xfa\x8e\xc1\x7d\x51\x47\x28\xcf\x1f\xa1\x20\xe6\x7d\xbb\xf7\x06\x26\x75\xbd\x10\x7d\x67\xc8\x45\xdd\x39\xcd\xd4\x0d\x5c\x2c\x24\xa9\xd2\x63\x6e\x7f\x0b\x29\x92\x16\x20\x44\xad\x07\x74\x9e\x9a\x24\xd4\xa5\x14\x6b\x41\x35\x2d\x68\xbb\x31\xa1\xbd\xba\xe9\x56\x5e\xd3\x93\x45\x58\x4f\xb5\xd8\xae\x7f\x3e\x20\xf3\xe2\x72\xff\x3c\xa0\x30\xe6\xd4\xf3\x39\xa6\x46\x7e\xa7\x17\xc8\x68\x7f\xe5\xa1\x5e\xa0\xec\x2f\x95\x3c\x78\x2b\xea\x5d\x91\x89\xe1\x16\x68\x7a\x86\x31\xc6\xc7\xf7\x9c\x0f\x19\x48\x27\x06\x18\xf5\x7d\x85\xbe\xff\x57\xd1\xd4\x0d\x83\xb2\xea\x19\x58\xd4\x0f\x05\x82\x67\x32\x90\xb5\x9f\x8c\x3e\x80\x1f\xfb\x08\xff\xc7\x2a\x8b\xa5\x85\x65\xd0\x20\x51\xa8\x2e\x75\xa3\x9d\x3c\xf1\x9e\x7e\x8c\x87\x1f\x0d\x68\xe8\x75\x55\xbe\x07\x99\xd1\xe3\xe8\x2a\x01\xa8\xca\xf1\x12\x2e\xd9\x75\x96\x8d\x39\x23\xdb\x0e\xa1\x17\xf6\xf0\xaa\xda\x74\xfb\x77\xac\x6d\x07\x1a\x3a\x02\xbd\xf5\x4f\x45\x4d\x81\x1b\xa4\xb9\xd7\x50\x28\x31\x10\x04\x87\x28\x94\x70\xaf\xa2\x55\x77\x8a\x42\xc7\xf1\x7b\xfb\x70\x6e\x2f\x62\x3a\xc4\x2e\x12\xee\x49\x45\xd8\x69\xf6\x4f\x1a\xf3\x10\xab\x05\x0d\x7b\x4e\x2f\x96\x4e\x63\xce\x84\x46\xe2\xc0\xe6\x64\x52\x44\x34\xe1\x8a\x8b\x7c\xa4\xd3\x39\x6d\xe4\x50\x2a\x59\x40\x3a\x3d\x6d\xe4\x69\xef\x63\xf1\x28\x73\x1c\x01\xa6\xa4\x78\x30\xd7\x58\xc8\x43\xc3\x3b\xb2\x4f\x27\xb7\xcf\xd8\xfc\xcf\xf0\x75\x70\xa6\x38\xa9\x9e\x30\x50\x25\xd3\x7a\x49\xcb\x1c\xc4\xfc\xaa\xdd\xc9\xd1\xdb\xe3\x5a\x52\xa8\xa6\x1f\xd0\x7d\xa0\xbb\x56\x0f\x15\x09\xc1\x48\x79\x45\xb3\x4f\x7a\x04\x65\xbd\xd9\xc0\x38\x05\x87\x2b\xa6\x6b\x93\xdc\x5c\x55\xeb\x4f\x0b\x9d\xa6\xe0\x11\xa4\x37\x2b\x3f\x35\x58\x6e\x34\x09\x21\x54\x90\x0a\x25\x4a\x66\xd2\xa7\x06\xfa\xf1\x77\xea\x12\x7a\xa9\xe7\xde\x36\x46\x21\xa6\x86\xe7\x74\x43\xaf\xad\x39\x6b\x2f\x99\x50\x4c\xb2\xa2\x57\x3a\x86\x22\x53\x48\x38\xc2\x14\xab\x0b\xe4\xa2\x35\x79\x9e\xe8\x5f\xd4\x89\x51\x60\xb1\xb4\x76\xe1\xeb\xf5\x3d\xef\x06\x8b\x2d\xe5\x1c\x1d\x21\xa3\x50\x17\xe0\xce\x15\x03\xc3\x58\x47\x53\x77\x94\xae\x34\xe4\xaf\x4a\xb3\xa7\xfc\x67\xcf\xc3\x57\x9d\x98\xa3\x95\x12\x2a\xa8\x97\x22\xad\x47\x31\x74\xe6\x08\x70\x35\x9e\xf5\x11\x0c\xeb\xe6\x44\xb9\x00\x73\x83\x38\x24\xdd\x7e\xd0\x8f\x86\x32\x4f\x06\x1e\x0c\xf9\xb7\x5e\xa1\xa6\x82\xf6\x76\xee\xc1\x4d\xf9\x1c\x70\xcf\xd9\xaf\x96\x5b\xff\xb0\x9d\xd9\x4a\x22\x46\x88\x1b\x18\xa2\x5f\x28\x9f\xd2\x4f\xa8\x16\x3f\x17\xd3\x33\x8a\x11\xa9\x44\x49\x70\x51\x3b\xd4\xb4\x3c\xda\x2a\x18\x16\xb8\x09\x2e\x95\x07\xdc\x72\xc8\x21\xe5\x45\x45\x33\x18\x16\x14\xd9\xce\xb1\x1f\xc5\x9d\x32\x14\x6c\x8b\xa2\x1e\x5a\x6f\x2c\x8c\x42\x84\x77\xbc\xfd\x98\x0f\xc6\x04\x0b\x29\xc1\x7d\xb0\xc8\x11\xb8\xd4\x9f\xb7\x2c\x72\x29\xd2\x40\xaa\x00\x72\x83\xf2\x69\xd3\xb6\x0c\x8b\x49\x88\xc5\x48\x9b\xac\xa9\x9b\xea\xc1\xe6\xa1\x59\x1c\x28\x1d\x76\x71\xfc\x35\xb2\x6e\x58\x1c\xc6\x9e\x62\xda\x83\x95\xae\x95\x9a\x75\x8d\xd2\x43\x3a\x69\x05\x32\xb5\xaa\x4c\xc3\x90\x3c\xa3\xb1\x92\x25\xb8\x14\x17\x3e\x3a\x3b\x8b\xbd\x48\x0e\xa2\x34\x3b\xc8\x64\x3f\x88\xcb\x18\x13\x98\x27\xdc\x3d\xaf\x36\xdf\xc0\x35\x19\x13\x8a\xcf\x0b\x05\x58\xb3\x51\x32\x91\x71\xca\x68\x7b\xa7\xbb\xf4\x7c\xc9\xa0\xab\xf3\x63\x82\x05\x08\x97\xa6\x42\x2c\x4e\x4d\xfe\xe1\x6b\x3c\xc7\x4b\x6a\xb3\xa4\x0c\xc2\x08\x8b\xd0\xf7\x25\xfd\x84\x0c\xca\x8a\x53\xeb\x3f\x32\x90\x8e\x34\x02\xfd\x52\xa6\x59\x8a\x9c\xbc\xe7\x01\x7b\x14\x67\xd2\x65\x18\xbd\x59\xa4\x25\xcf\xa0\xdb\x12\x98\x74\x25\x26\x97\xdb\x1d\x35\x1c\x85\x39\x98\x24\x80\x10\x61\x85\xf7\xe9\x15\x39\xdd\x79\x07\x32\xe1\x58\x1e\xf3\x9a\xe6\x75\x17\x3b\x36\x8d\xc2\xd1\x14\x98\x75\x6b\x82\xb7\x4b\x4b\x97\x33\x8d\xff\x4d\xf4\xf6\xc8\x1d\xea\xe1\xc4\x39\x9c\x91\x02\x5b\xec\xe9\xb1\xe7\x7f\xff\xd7\xc8\x13\xe7\x0e\x53\x54\x8c\x69\xbf\x92\x69\xf0\xf2\xb9\xeb\xc7\x1a\xb6\xf4\x45\x4b\x31\xce\x53\x70\x97\x25\x9e\x2e\xd2\x2a\x0f\xbc\x38\x9f\x9b\x3c\xad\xaf\x46\x7e\xa9\xff\x0c\xdc\x73\x02\x34\x91\x15\xb5\x5c\xbb\x83\x88\x09\xa6\x7c\xd3\x39\xf2\x89\xa6\x67\x78\x4d\xf3\x57\x5a\x1e\xc7\x01\x72\xee\x87\x2e\x0d\xed\x0b\xde\xd3\xfc\x63\xb8\x24\xf1\xc0\x8f\xb0\x8e\xff\xe9\x17\x52\x44\x54\xe3\x66\x2e\x91\x17\xd5\x5a\xe3\x96\x14\xf4\xf1\x06\xdd\xce\x03\x11\xa2\x69\x4d\x4b\xfa\x35\x28\xa7\xe3\xa1\xef\xfb\x9e\x45\xb0\x2f\x8a\xe6\xd2\x25\xab\xfe\xed\x75\xc5\x82\xf1\xff\x0c\x23\x72\xff\xf6\xcc\x57\x08\xe3\x44\x71\x45\xd0\xf2\x43\x81\xcd\xab\x5d\xef\xfc\x49\x20\xb4\xca\xed\x02\xca\x3a\x95\x29\xa7\x37\x8c\xf6\x9c\x87\x5c\x79\x5e\xf3\xd9\x7c\x65\x0f\x15\x11\xa2\x22\xb7\x58\x17\x97\xe6\x47\x15\xd5\xf8\x41\x9b\x6c\x94\xb4\xe5\x51\xe0\x9b\x7a\xe7\x3d\xd0\x73\xb5\xce\x5f\x50\x95\x07\x39\x7e\xcc\xf9\xa2\xd0\x87\x08\x17\xdf\x2c\x4b\x87\x55\x36\x3c\xe2\x04\xf9\xd8\xd4\xae\x48\x33\x30\xd5\xc4\xd3\xb1\x0a\x1e\x49\x8e\x95\x8a\xab\xc5\xfa\x8e\xb3\xc2\x63\xcf\xf3\xf4\xfe\x85\xab\xa6\x3a\x63\x7e\x5c\x9c\x68\x9e\x43\x76\xd3\x3b\x0c\x4c\xef\x53\x8f\xd0\xd3\x34\xc7\x04\xd3\x62\x5f\x69\xd9\x69\xfb\x4f\x6e\x1b\x3c\x66\x24\x08\x74\x39\xe1\xa7\xb5\xfc\x1f\xcb\xe2\x6c\xa2\x18\x63\x8d\xe7\x49\x58\xb0\x3e\x5b\xe2\x31\x4f\xe9\x6c\xad\x16\xeb\xf5\x05\x72\x6b\xfe\xf0\x24\xf4\x0d\x8f\x2c\x94\x4a\x59\xf4\x37\x03\x58\xfd\xce\x6a\x31\x01\x0e\x9e\x70\xa5\x6a\xa2\x0a\xb6\x3a\x55\x8e\xe1\xab\xa6\x6e\x94\x68\x76\x00\x5c\x5d\xc7\x26\xdb\x58\xc7\x95\xb7\xae\x0b\xda\xc0\xed\x4c\xcf\x3a\x83\x8b\xd3\x80\x83\x21\x5d\xca\x8f\x69\x0e\x13\xae\x30\xa7\xa1\x2a\xc3\x53\xd8\x0f\xac\x79\xfb\xa9\x68\x07\xba\xf3\x44\x01\xda\xd2\xbb\xba\xb9\xa4\xa2\xe7\xa4\x70\x4a\x7d\x48\xba\xc4\x29\x94\xb5\xc6\x4a\x0c\x9e\x9b\xb9\x0c\xb3\xd3\x1d\xe8\xec\xce\xa7\x64\x42\x69\xd4\x55\xbd\xdd\x6d\x32\xc1\x31\xe1\x4d\x71\x4e\x02\xdc\xbd\x2e\x4d\x75\x9a\x5f\xeb\x51\x66\x91\xf3\xc4\x41\x6a\x02\xac\x6f\xea\xfc\xc0\x9d\x29\x71\xe2\x1c\x02\x34\xad\x14\x49\xe6\xd3\x48\xae\x98\x73\xe1\x24\x98\xbc\x80\x5f\x75\x49\x1f\x68\x4d\x5d\xcc\xb2\xb6\xfb\xd3\xdf\xbe\x47\x91\x28\x9f\x4b\x79\xd9\x34\x7b\xa5\x39\x3d\x5a\x0b\x9a\x0b\xc6\x3d\x1d\x97\x3a\x43\x7d\x82\xa6\xfa\x51\x34\xfc\x04\x65\x85\x80\x51\x3b\x12\x05\x10\x26\x7a\x6b\xe1\x2c\xcb\x6e\x05\x8b\x74\x5f\x70\x38\xa6\xc3\xa0\x3e\x1d\xea\xe2\xd0\x54\xf6\x2c\x40\x54\x49\xd1\x41\x05\x20\xdf\x0a\xab\xe1\x60\x3a\x44\x81\x6f\xdd\xfc\x99\x10\xf7\x58\x84\x38\x87\xd8\xa5\xb4\x87\xdb\xc2\xb7\x32\xf8\xb4\xd2\x0d\x71\xd5\x5c\xd0\xea\x84\xe4\x0c\xf6\x06\xa5\x17\x61\x24\x77\x43\xeb\x32\xe5\x1f\xcf\xcd\x35\x3f\x0d\x76\x22\x19\x0b\x0c\x1b\x3f\xff\x98\xbd\xd8\xdf\x78\x80\x3b\xe7\x23\x40\xb5\x05\x0e\xe9\xe7\x3d\xe8\xa4\x70\x48\x08\xcc\x14\xa2\xbe\x42\xeb\x0e\x9a\x6b\x0b\x47\x87\x20\xfe\x7b\xf9\xb6\xde\x61\x3e\xd6\x2e\x36\xb6\x87\x87\x05\xa8\x19\xad\xd4\xa3\x1d\xa4\xdf\x3e\xdd\x41\x5f\xc4\xf4\x73\xdd\xb8\x2f\xc9\x34\x13\x9f\x69\x55\xdc\xc1\x1d\x0b\x97\x51\xa6\x42\x62\xe8\xb5\x19\x96\x2f\x2e\x3c\xdf\xc7\xb2\xd2\xfa\x44\xbf\x26\x91\x1e\xc2\xf7\x69\xa0\xab\x35\x0d\x33\xa9\x69\x91\x02\x4d\xe4\x79\x53\xe6\x53\x25\x64\x82\x10\x07\x6d\xfe\xf7\xb7\xe7\xc5\x37\x91\x48\xdd\x3b\xf0\x55\x09\x2b\x15\x62\x29\x1a\xbd\x89\x0d\x7a\x84\xbe\x82\x64\x35\x79\x05\x59\x86\xb5\x55\xe6\x5e\x42\x22\x43\xbb\xbd\xb4\x63\xf7\x09\x33\xb6\x26\x6a\x28\xa2\x58\x09\xfd\x53\x5e\x63\xb1\xc0\xf2\xd7\xa5\x28\x5b\x97\x65\x71\x6a\xcd\x7e\xb5\x03\x8e\x9e\x3c\xe6\x09\xc2\xc5\x31\x2f\x6e\xb7\x8c\x69\xc2\x28\x2e\x12\xf0\x30\x3d\xf7\xcf\x86\x96\x75\x8f\x16\x6f\xd4\x8d\xba\x4a\x23\xa2\x4e\xeb\x6c\x8c\x5a\x14\x54\x10\x64\x5a\x49\xab\x55\x5e\x5d\x80\xf7\xb2\x3e\xba\x07\x73\x3c\xcc\xf9\x0a\x9a\x66\xd7\xe7\xa2\x29\x7b\x92\xd0\x5c\xb0\x18\x80\x0f\x1d\x29\xc5\xcb\x33\x7d\x2f\x8c\x46\x98\xd2\x39\x1c\x15\x03\x53\x51\x64\x1d\xc6\x53\x70\x97\x63\xe9\x49\xa6\x84\xd4\xcc\xaf\x4c\xc9\x9f\x7f\x95\x45\x7e\xd4\xab\xc9\xba\x7c\xcf\x2b\xa8\x57\xb9\xce\x42\x98\xbe\x82\x6b\x65\x48\xb3\x0c\xd3\x5f\x50\x4d\x6c\x09\x02\x5c\x25\xa5\xf3\x05\x29\x42\x39\xb6\x34\xed\xaa\xed\x04\x08\xc5\x9f\x83\xae\x95\xd9\xdc\xef\x79\xef\xdf\x6c\xb5\x42\x7a\x4c\x23\x9d\xb2\x6c\x43\x6b\xc8\xeb\x7e\x20\xa4\x7b\x2f\xd2\x8f\x30\x2b\x7d\xa0\xfd\x2a\x8a\x71\xa7\x20\xa0\xed\x60\xdc\x1a\xe0\x38\x38\x84\x79\x8e\x09\x91\xbe\x14\xfc\xa3\x68\x6a\x15\x45\xb5\x3d\xa8\x22\x1b\xac\x6c\xb5\xa4\xfa\x7c\x83\x33\x83\xd3\x3a\xa6\xca\xf4\x39\x3c\xae\xde\x56\xbb\x67\x7b\x3c\x57\x02\x63\x95\x06\xa2\xf4\x81\xaf\xff\x76\x1d\xbd\x38\x82\x4b\x04\x32\x8e\x1e\xbe\xd2\x2c\x7b\x1c\xae\xb1\xe0\x02\xc7\xe2\xc1\x67\xc8\xb2\x02\xb7\xd6\xd1\xa4\x6c\x6e\xe8\x26\xc0\x73\x54\x31\xee\xb9\xa9\xe9\x11\x72\xef\x71\x42\x70\xdb\x74\x75\x13\xcc\x99\x48\x80\xea\x30\x7a\x30\x2f\x71\x90\x65\x48\xab\xa9\x17\x4d\x79\x67\xd7\x35\xfd\x85\x42\x86\x19\x3a\x23\xc5\x2b\xd4\xd7\x6c\x35\x3b\x3e\xf8\x11\x73\x9d\x4e\xe9\xa5\x0f\x14\x07\xbf\x5d\x88\xec\xac\x30\xca\x20\x83\x79\x05\x24\x12\x18\xd1\xb9\xd0\xab\x0a\xfa\x55\x26\x2b\xdc\xfb\x63\x15\x10\x9a\x1b\xce\x6d\x0e\x81\x27\x14\x9b\xd9\x89\x96\xa0\x69\xe0\xd1\x4d\xec\x51\xba\x40\xc0\xbd\x98\x74\xb5\xe6\x76\x8c\x43\x20\x59\xa4\xb3\x1a\xcf\x45\x59\xc1\xee\x54\x8c\x2c\x54\x08\x63\x2f\xec\x27\xb7\xe7\xd7\x97\x1e\x6f\x5f\xeb\xbd\xd9\x09\x05\x51\x2c\x4d\xa8\xf3\x01\xce\x34\x17\xe3\x93\x45\x89\x63\xe8\xc3\x70\x99\x40\x4b\xae\xe0\x1f\x8b\x89\x77\x13\x7b\x2e\xa6\x25\x98\x1a\xb2\x26\xfc\x5e\x4e\x90\xd0\xf6\x66\x1b\x24\x0e\x47\x1e\x11\xcb\x98\x6c\x36\x41\x48\x5c\x81\xc0\x4b\xcd\x3e\x52\x94\x36\xd9\x07\x89\xa7\x04\x36\xd5\xb7\x7a\x4d\xf3\x27\x5a\x3d\x16\xe5\x43\x49\xbf\x0c\x64\xc8\xbe\xf1\x84\x28\x75\x9f\x1a\xa8\x75\x38\x81\x3a\x61\xa0\x11\x1b\x6a\xbd\xc8\x8a\x0a\xc4\x4a\xaa\xbf\xb6\x57\xe0\x33\xd1\x39\x65\x27\x7a\x86\xfa\x4f\xdb\x18\x29\x3a\xaf\xb4\x9a\xd9\xfc\x07\xd0\xc4\x41\x1d\xcd\xd5\xec\x75\xd9\xaf\x13\xb7\xcd\x04\x69\xff\xd0\xa8\x45\x32\xcc\xb4\x7f\x39\x41\xb0\x98\x48\xf3\x63\xad\xf2\x76\xed\xb9\xf1\xd1\x80\x8a\x10\x8b\xc3\x17\xc5\xf9\x42\xf3\x2e\xc2\x00\x14\x02\x4c\x0c\xce\x7e\xcc\x56\x2f\xb3\xf9\xcb\xf2\x30\x5f\xbf\xbd\xef\x5c\x4d\x48\x6a\xba\x31\x97\x69\xc9\x68\xb1\x29\x61\x99\xb7\xeb\x2e\x07\x63\x81\xdc\x24\x4b\x46\x33\x57\x44\x1c\x94\xea\xfb\x71\xd2\xbe\x34\xdd\x78\x80\x7b\x8c\x82\x6b\x6a\x49\xb6\x91\x8a\x0c\x07\x00\xd7\x53\x2b\x1d\xcc\x53\xd1\x63\xe1\x00\x49\x04\xed\xf6\x28\x55\x24\xb4\x28\x2e\x57\xdb\xce\x15\x86\xa3\x5d\xa4\x17\x46\xe6\x65\x84\xb0\x05\x09\xcc\xd1\xfc\xcf\xf9\xd8\x6e\x96\x8e\xef\x53\x9d\xf5\x7f\x03\x15\x86\x9d\x34\x6d\xa4\xc3\x80\x90\x81\x9b\xa0\xf1\x00\xe3\x14\xe6\xb7\x41\x6c\xe9\x08\x45\x44\xb3\x79\x99\x99\xdc\x8e\x74\xa9\x0e\x3d\x29\xb5\x3a\x4d\x83\xa1\x1b\x3d\xe9\xe2\x76\x57\xe6\x62\x0b\xa2\xe1\x60\x73\xde\x07\xd3\xc5\xf7\x18\xb2\xf2\x6e\xe8\xb5\x68\x30\xe8\x8e\xfe\xd1\x94\xb7\x17\x9b\x43\xa4\x2b\xb5\x2f\xa3\xb2\x6d\x93\xdc\x5a\x92\x78\x5a\x08\x1b\xbd\x8e\xe7\x2b\x2b\x53\x91\xfe\x39\x70\xc5\x4d\xcf\x20\x71\x34\x23\xe4\xf3\x85\xbd\x15\x02\x50\x38\xad\xbf\xe2\x4c\xd0\x37\x8f\x62\x48\x92\x08\x86\x3e\xa8\xb2\x1d\x11\x85\x6b\xd7\x50\x73\xeb\x04\x82\xb0\x1f\x2a\x9c\x63\xb9\xb9\x79\x17\x81\x4f\xb4\xd2\xa1\x45\x79\xce\xba\x8d\x63\x70\xcb\x81\x84\x58\x85\x4a\x7e\x2d\x4e\x69\x26\xfa\xfb\x80\x0c\x03\x8a\x45\x07\x59\x71\x4c\x47\xe5\x9c\x32\x64\x01\x46\x69\x76\xfb\xd9\xf6\xc5\x1e\x00\x11\xb1\x52\x48\xbb\xc6\xe0\xff\x65\x14\xa8\x95\xed\x60\x60\x81\x2f\xc5\xb1\xbf\x5d\xc4\xff\x75\xf3\x3f\xf1\xe0\x79\xe3\xd0\x71\xc2\x81\xbe\x94\x2d\x46\x18\x7e\x82\x98\xba\x18\x83\x5a\x2c\xb6\x7d\x0f\x45\x26\xae\xe3\xe9\x04\xc4\x63\x96\x1e\x4f\x35\xd6\x3f\x4d\x60\x1c\x64\xe2\xc6\x01\x37\xe8\x34\xc5\xba\x30\xb1\xc6\xcb\x24\x52\xd6\x4c\x5a\x6d\x74\x42\x56\x7b\x75\x93\xdb\xa5\x4c\x12\xa2\x28\xf9\x74\xd6\x74\xd8\x4a\x43\x47\x49\x3f\x7f\xf2\x65\x7d\xc2\x68\x99\x69\x89\x08\xa6\x45\x59\x73\xfd\x1d\xae\xd5\x64\x74\x5f\x52\x1e\x82\x29\x63\x1a\xc4\xca\x25\x63\x8a\x75\x0f\xab\x9e\xb4\x0a\x54\x6f\xcb\x91\x4c\x38\x86\x3e\xe1\x0d\xbe\x54\x8e\xe1\x0e\xfc\xcd\x8e\x4f\xee\x4a\xd2\xad\x47\x7d\x00\xf0\x74\x85\x84\x39\x8c\x78\x8a\xe4\x3a\xa3\xfc\xa3\x35\x91\x37\xb4\xac\x6f\x38\x71\x7a\x7b\xb2\x14\xae\x83\xcb\x92\x25\x1a\x7f\xed\xa0\xc4\x52\xf8\x8e\xa3\xd5\x60\xef\x44\x5a\xa5\xf0\x03\x74\x5b\xe1\x7c\xc9\x8a\x2b\xc0\xab\xaa\x22\xa9\xf6\xc5\x1b\x7c\x2d\x77\xeb\xcd\xe8\x2b\x08\x11\x21\x3a\x23\x87\x2f\xfd\xaa\x74\x03\x88\x44\xea\xf5\x71\x77\x81\x7e\xa2\x76\x10\x83\x13\x8e\x43\x5c\xae\x43\x66\xb3\x33\xa3\x55\x45\x45\xcf\xc3\xb4\x8f\x26\x1c\x87\xa9\xdd\xef\xd0\x81\xcc\xee\x84\xbe\xf4\x01\xae\x43\x70\xeb\xd6\x7a\x30\x69\x59\xd5\x0f\x0d\x64\xee\x6f\xa3\x6e\x44\x71\x50\x43\xe2\x0f\x73\x17\xc2\x71\x83\x10\x3f\x5b\x96\xd6\x08\xcd\x84\xbc\x5e\xfe\x4a\xab\x7a\xa8\x86\x25\x1c\x37\x51\x55\x92\x47\xa8\x0f\x88\x42\x3a\xa4\xed\x54\x19\x76\xf2\xdc\x10\xa7\xd3\x7c\x3f\xef\x4d\x33\xe1\x78\x34\x40\xb7\xb9\x82\xfa\xa9\x30\x39\xd5\xe1\x2d\xfa\x7e\x40\xb5\x21\xf5\x56\x8c\x79\x55\x85\xe3\x73\x82\xb1\x80\xfc\x17\xdf\x40\x39\xe7\x57\x73\x6a\xe2\xa8\x44\xa1\xd6\x02\x52\xe5\xbe\xb8\x0a\xab\xe2\x8e\x3e\xa2\xcf\x1c\xe2\x51\x4c\xa8\x6c\x8a\xfc\xcf\x74\x0b\x9f\xba\xf2\x61\x6e\x2b\x93\x84\x43\x82\x08\xf9\x0f\x54\xe5\xde\x57\x3b\x89\xe7\xcd\xd5\xaa\xe0\xfe\x4c\xeb\x53\xd1\xd4\x3f\xa0\x9c\x0e\x13\x0b\x87\x08\x07\x75\xae\x8e\x0a\xb4\x66\x24\x59\x0a\xfb\x4a\x88\x8c\xd1\xc9\x79\x58\xfe\x18\xc0\x19\x84\x13\xba\x51\x44\x2d\x41\x06\x46\x99\x86\xe7\x0e\x3d\x55\xdf\xb3\x4b\xdb\x79\xb4\x68\x67\xa7\xb1\xe5\x4d\x8f\x48\x10\xae\x35\xc0\xca\xee\x57\xea\xa2\xd0\xd5\xec\xe5\x71\x66\x7f\x93\xc2\x10\xb9\xa2\xc7\x68\x83\xf3\x8b\xc6\x0e\x91\x28\x52\xec\xde\x2f\xb8\x6b\x99\x1f\x99\x44\x9c\x8c\xf2\x41\x9e\x69\xc9\x8a\xd2\xd2\xaf\xe9\x3e\x71\x94\x10\xc5\xd6\x51\xcd\x9b\xeb\x5b\xf1\xd5\x31\xce\x74\x5f\x23\x16\x04\x8d\xd8\x3e\x31\xc9\x0d\xf7\x9f\x70\x92\xd8\xc7\x02\x1e\x45\xa0\x74\xb8\x34\xa3\xd5\x52\x38\x34\x8e\x9d\x44\x33\x76\xcf\x84\x68\x77\x48\x63\x2d\x09\x87\xb9\x04\x77\xcf\x07\xf8\x2c\xea\x1a\x06\xa3\x93\x45\x22\xf0\x7b\x0e\x01\x0a\xeb\xdf\x0d\xa9\x0b\x87\x73\x17\xb9\xe1\x5f\x0b\x2c\x17\x30\xf0\xf9\x09\x89\x84\xd1\xc0\x13\x24\xc6\x54\x15\xa6\x21\x57\xbc\x70\xef\x65\xf5\xff\xbf\xfe\x35\xd7\x4b\xb8\xe1\xc4\x5f\x68\xd7\x4f\x60\x01\x7a\x3b\x35\xd2\xaa\x4e\xb9\x7d\x3f\x22\x51\x42\x43\x9a\xcf\x4e\x33\xab\x54\xb8\xb9\x0c\xe7\xb8\xa0\x9c\xc6\x7d\x79\x8f\x40\xcb\x7b\x04\xff\x35\xf8\x6b\x0f\x80\x30\xf4\x43\xf3\xe5\xf6\x05\xda\x52\x7a\x56\x99\xab\xcb\x40\x29\x17\x97\xed\x16\xec\x07\xa3\x11\x22\xa5\x62\x9b\xc5\xdd\x6a\xb9\xde\xf1\x8c\x56\x95\xe1\x9c\x15\xae\xe3\x83\x20\x83\x32\xe5\xe7\xd5\x62\xca\x50\x15\xae\x23\x88\xd0\x8b\xd8\x22\xad\xaf\xaa\x90\xc5\x24\xd1\xa6\xd9\xda\x84\xeb\x86\x2e\xd6\xf2\x08\x48\xeb\xeb\x00\x47\x26\x5c\x37\x66\xac\xff\xda\x28\xa6\x96\x91\x88\xca\xf4\x90\x0a\xea\x54\x9f\xca\xe2\xab\xfa\x79\x02\xab\x1f\x92\xe6\x47\xad\xdb\xa9\x2c\x84\x39\xc8\xa2\x84\x45\x96\x4a\x39\xba\x6d\xcf\xa7\x58\x7b\xd2\x54\x46\x54\x62\xa8\x20\x20\x5c\x2f\xf4\x94\xb4\x2f\xcd\xf8\x2c\x17\x4f\x26\xad\xd5\xb6\x28\x4a\x80\x34\x17\x0b\x93\x36\x7c\xe8\x2b\x14\x09\xd7\xf7\x08\x46\x32\x58\x73\xdd\x60\x06\xbb\xef\x65\x0a\xd7\xf7\x95\x84\xcd\xef\xff\x5a\x1c\xf6\xcf\xdb\xe5\xee\x79\xfd\xf2\x60\x1b\x43\x21\x54\x25\x49\x9a\x65\xa9\x61\x38\x34\x8d\x09\x71\xa3\xae\x4e\x13\x37\xd8\x37\xf8\xea\x80\x14\xa3\xcd\xc8\xf5\xb9\x8b\x81\xce\x03\x2f\xce\x97\x06\x11\xdf\x4a\x22\x7f\x72\x22\xba\x84\x40\x38\xca\x80\xf4\xed\x1c\xe1\x86\x4e\x8c\x4c\x1d\xff\x2a\x9a\x97\x62\x90\x26\x15\x6e\xe8\x71\x8c\xba\x22\x0e\xa4\xa9\x6e\x6b\x25\x3a\x83\x48\xb8\x91\xeb\x11\xbd\x4c\xbe\xe7\x69\x5d\x75\xcc\x43\xdf\xc2\x4e\x84\x1b\x89\x24\x08\x0d\x96\x68\x7b\xcb\x3b\x29\xdc\x84\xb8\x5a\x33\xa9\xfe\x07\xe5\x1f\x97\xa2\xfe\xb6\x1a\xe7\xaf\x34\xce\xf4\x59\xa9\xaf\xa4\x70\x14\x73\xe9\xb9\x28\xeb\x14\xec\x17\xa5\x21\x89\x22\x5b\xaf\xbf\xec\xd3\x8d\xf4\xbc\xda\xc1\x5d\xd2\x50\x95\x81\xbe\x80\x38\xde\xd7\xc8\xd7\x9d\x99\xb6\xe9\x20\xe7\xed\xee\xa0\xb9\x79\x7e\x1b\x75\xa2\x0c\x44\x27\x0c\x50\x8d\x9a\x79\x10\x52\x9b\xc5\xde\xff\xfa\x51\x64\xcd\xd9\x4e\x3b\x0e\x22\xf6\x0c\xe0\x64\x5e\xfc\x72\x4d\x83\x88\x08\x51\x00\xf6\x0d\xad\xec\xf3\x0a\xcd\x22\xa6\x76\xa7\x91\xda\xe7\x68\x4c\x89\x44\x02\xeb\xe8\x43\xb6\xb3\xd1\x5c\x04\x27\x70\x43\x1b\x7a\xfc\xde\x3c\x73\xa5\xe3\xa0\xcc\xdd\x1b\xfc\xc2\x8a\xe4\x95\x9d\x37\xd2\x71\x8c\x9a\xc6\x03\xad\xe9\xc1\x8d\x6d\x0b\xf3\xd1\xf5\xba\x95\x8a\xe8\x0c\x45\x57\x0a\xc0\xd0\x26\xfc\xaa\x21\x17\x96\x52\x65\xf2\x73\x78\x8e\x27\x3c\x62\xfc\xf8\x5f\xf5\x2d\xa2\x55\x78\x8e\x64\xe8\xf3\x16\x5f\x39\x08\x55\xa8\x39\xec\xe0\x06\x01\xe2\x93\x54\xb2\x60\xfa\x3a\x6e\x24\x70\x92\xcc\xf2\x9a\xf6\x10\x91\xc2\x73\x39\xc5\xf8\xf5\x6a\xb1\x56\x62\x73\xb4\x14\x96\x4c\x57\x78\x5e\xa8\x8b\xe0\x4d\x9d\x02\x94\x9f\xcd\x80\x1f\x4f\x78\x1e\x25\x98\x11\x6d\xfd\x2a\x0c\x1a\x75\x0a\x3e\x9b\x2e\xeb\x23\x3c\x8f\x91\xb0\x63\x82\x58\x1e\x8f\xa3\x52\x76\xdd\x8d\xb8\x9e\x61\x27\x7d\x04\x68\x8d\xa4\x11\xf2\x54\x78\x84\xa8\xa2\x8c\x97\x79\xfb\x28\xff\xb0\x3f\x47\x1c\x81\x3a\xbc\xb0\x85\x82\x56\x7a\x52\x78\x51\xac\x5e\x13\x6e\x72\x36\xbd\x75\x67\xea\xda\x63\x54\x01\xe2\x25\xe5\x45\x47\xe4\x6d\x1a\x79\xcc\x05\xda\x6c\x2f\xeb\xc5\x01\x13\x9f\x4f\xcb\xb7\xe5\xd6\x24\xd4\x84\x17\x3b\x8e\x54\x2c\x74\xdd\x42\xea\xc5\x11\xe0\xa7\x48\x91\x53\x7d\xb8\x83\x7b\x71\x92\xb0\xd0\x70\xae\xd7\x0a\xdf\x32\xea\xc1\x98\xe3\xf5\x42\x20\x08\x47\x19\x4e\x50\x2f\x16\x84\xf7\x09\x49\x56\x52\x45\x88\x0c\x07\xc2\xb7\xd5\xed\xc2\x8b\x21\xc6\x64\xf9\xeb\xea\x0d\x19\x7c\x1e\xde\xb7\x3d\xc9\x55\xe1\x25\x8e\x40\x82\xda\xd7\xd9\x1f\x2a\xe9\xab\x1e\x7e\xbf\xfe\x7d\xf9\xb6\xb3\x9d\xbc\x00\x8b\x53\xed\x3d\xf4\x40\xd2\xf6\x43\x26\x21\x93\xfd\xda\xb5\xd1\x73\x24\xb1\x8a\x29\x36\x97\x63\x49\x05\x6c\x4e\x05\xe4\xe9\xaf\xd6\x42\xaa\xc6\x3d\x93\xc0\x1f\x44\x57\xae\xc8\xe5\x78\x5b\xaa\xdd\x3b\x84\x79\x09\xeb\x76\xc0\x5d\x71\x86\x51\x0a\x56\x78\x09\x8f\x3c\x55\x82\x5c\x5c\xde\xf1\x26\x6c\xf2\x48\x78\x8c\xb9\x18\x86\xfd\xb8\xf2\x3e\x1c\x46\x78\x8c\x0b\xdf\x28\xb7\x41\x46\xaf\xdf\x95\x99\x0b\x8f\x13\x22\x3d\x14\x02\x6f\x32\x7b\x0a\x1e\x04\x2a\xd7\xb7\x5d\xce\x76\xef\xdb\x7f\xd9\xdf\x13\x50\xd5\x59\x85\xac\x39\xbd\x6c\x81\xf2\x93\x12\xd4\xa2\xcc\xe4\x3f\x84\x27\x3c\x1f\x13\x70\x8b\xa2\x14\x8c\xe6\xf6\x77\xf0\x19\xfa\x7a\x8a\xb3\xe2\x31\xcd\x2d\x9e\x6d\x38\xc6\x64\x04\xa4\x9f\x0a\x9f\xa7\xe2\xb1\x28\xdb\x91\x36\x7a\xed\x32\x96\x89\xf6\x0c\x67\x42\xbc\xa4\x55\x8f\xdc\x5d\x78\x92\x2a\xd1\xdf\x53\xef\x16\x24\x24\x68\x11\x56\x35\xfd\x80\x9f\xb4\x9d\x83\x07\x8b\xb5\x16\xbe\x43\x95\x26\x54\x87\x00\xb5\xa1\x84\x6f\xaa\xa3\x84\xef\x26\x0e\xe6\x78\x37\xdb\xd5\x62\x79\x88\xcc\xe9\x5c\x91\x60\x88\xb1\x3d\xbe\x32\xb8\x12\xd3\x26\x3d\x34\x32\xde\xdf\xfa\xd2\x27\xc2\xf7\x62\xa5\x8a\x63\x40\xce\xcf\x34\xfb\xec\x80\x1b\xc2\x27\x41\x88\xc7\x69\x86\x1a\x4c\x9f\x0d\xbe\xa8\x4f\x82\x28\xe9\x25\x13\xd6\x72\x53\x42\x5d\x5f\xc7\xbd\x12\x8a\x55\xb3\x29\x2f\x5e\x6a\x6e\xcf\xce\x68\x94\x58\xa1\xe4\xc9\x98\x85\x1f\x10\x8e\xd0\xff\x43\x5a\x7d\x4b\x13\x2f\xfc\x20\x8e\x70\xf9\x7e\x9e\x6d\xff\x31\x34\x5d\xee\x25\xc2\x84\x1f\xd0\x98\x6a\x21\x6a\xac\xbd\x84\x3e\x25\x91\xf0\x43\xa2\x08\xf9\xea\xe2\xa5\xe1\x1f\x57\xfb\x33\x15\x18\x1e\xe1\x19\xd0\xfc\xfd\x32\x7a\xd6\xc8\x51\xe0\xd1\x4a\x51\x3b\xd0\x0c\xb4\x57\x8c\xc5\x89\x13\x10\xb8\xd1\xe7\x8d\xbc\x08\x6d\x79\xcc\x70\x3c\xa4\x9f\xe6\xaa\x91\xef\x21\x3a\xba\x03\x12\x7c\x92\x5b\x20\x81\xf0\x23\x08\x85\x8e\x10\xda\xf1\xd4\xd1\x29\x09\x3f\x76\x25\xe6\xac\x66\xfb\xfd\xf6\xf0\xb4\x7e\x79\x58\xbe\x3d\xad\xd7\xbb\xa5\x6d\x67\x32\xa2\x16\x01\xb8\x2c\xa9\x69\xa0\x89\x87\x71\x5b\x6d\x14\x2f\x46\xf4\xc0\xc2\x67\xbe\x8b\x20\x3e\x7c\x50\x43\x81\x7f\x07\x87\xd3\x19\x11\x7e\xbb\x55\x2a\x25\x55\xe5\x86\x98\xeb\xb1\xd0\x57\x15\xa2\x56\xc9\xef\x6f\xda\x9e\xff\x7f\xfd\x35\xf7\x95\x40\x90\xf4\xaa\x13\xa1\xcf\x64\x20\x7c\x1e\x08\x2f\x36\x05\x34\x20\x96\xf5\x49\x05\xfd\xef\xcc\x66\xce\x42\x4c\x5d\x9d\x9b\xec\x8f\x69\x83\xc6\x17\x6e\x88\xec\xa6\x17\x5a\xd2\x33\xd4\xd0\x5a\x63\xa5\x22\x88\xb3\x63\x52\x10\x07\xa1\x36\xfc\xd4\x2e\xcf\x58\xbb\x31\x3d\x5b\x46\xb3\x06\x3c\x27\xd4\x81\xca\x39\xd4\x9d\x09\xe1\x03\x89\xd0\x84\x3d\x1b\xb9\x3a\xdb\x10\x44\x89\xd6\xa3\xdf\x16\x19\x8c\xa3\x9b\xe3\xf3\x27\x80\x28\x10\x0c\x84\xf6\x3d\x1a\x13\xba\xed\x22\x2c\x37\xec\x9a\xc2\x07\xae\xf8\xa1\x15\x2c\x34\x3d\x37\xe7\x15\x2f\xb6\xe3\x7a\x22\xe1\x83\x70\x30\xdd\xda\x21\x26\x61\x54\xf9\xa3\x3b\x4a\xe6\x88\x60\x34\x39\x7a\xec\x2b\x6d\x87\x48\x29\x42\xab\xb2\xd0\x76\x63\x5d\x2d\xd6\x0f\x69\xc5\xfb\x0b\x83\xe4\x1c\x61\x58\x0c\xd2\xfc\xf8\x63\xa5\x49\xff\x04\x71\x02\x86\x43\xf9\x67\x3a\xdc\x89\xe3\xa1\x37\x37\xaa\xda\xb6\xcf\x41\x9c\x44\x51\xb0\xed\x4f\xa0\x6b\x55\x74\x83\x4b\x22\xb4\x3b\x15\x71\x6f\x7f\x0d\x27\x6e\xc8\x70\x03\x63\xad\x6b\xdd\x3d\xbf\x37\x2c\xf6\x1b\x1a\x9e\xc4\x8d\x22\xbc\xd0\x2e\xa7\x97\xea\x54\xd4\x8a\xb8\xfd\xbe\x0a\x69\xff\x25\x12\x37\x51\x5c\x1c\x47\xcb\xe7\x8e\xfe\xa4\x51\x43\x1d\x33\x89\x0a\xe2\x32\xae\x72\xe9\x75\xa1\x79\xd7\xe2\xdb\xb4\xe5\xf4\x6c\x23\x2e\x8f\x30\xe8\xf0\x96\x7e\x14\x86\xad\x51\x10\x9f\xb8\xbe\xce\x0c\x2c\x9a\xaa\x2e\xce\x50\xbe\x6d\xe1\x3f\x33\xce\xbf\x1f\xef\xc4\x0f\x22\x14\x4f\xcb\x68\x2e\xda\xa1\x3d\x32\xae\x88\x1f\x12\x04\x09\x29\x7e\xae\x6f\xb6\x61\x42\x62\x4e\xf4\xee\xb5\xf6\x86\x7b\x00\x21\x09\x43\x9d\xcf\x25\x06\x9b\x78\x47\x32\x22\x08\xe1\x0e\x1e\xa6\x6a\x0d\x11\xe3\x3a\x19\x84\x27\x41\xa2\x42\x1a\xf5\x14\x05\x25\x89\xfb\xf3\x84\x04\x3c\xd2\x9a\x41\xc8\xa0\x3e\x53\x3e\x5b\xd5\x63\xee\x13\x24\xf4\x94\xd9\x68\xc3\x2f\x3f\x53\x64\x22\xf9\xea\x3a\x28\x59\xd1\xb2\xc8\xb2\x97\xc2\xfe\x1a\x29\x86\xf3\x97\xd9\x66\xbf\xde\xa0\xdd\x6b\x9b\xa8\x2a\x4f\x3d\x42\xfd\x03\x2a\x84\xea\xa2\xbb\x23\xee\x54\x8c\x0b\x12\xb2\x00\xe9\x7b\x4e\xb4\x3a\xbd\x56\xc7\x1b\xb7\xf5\x5b\x80\x6d\x57\xc5\x37\x18\x8d\xa1\x0c\x84\xec\x85\x4d\x8d\x50\xcd\xf0\x8b\x44\x81\x8f\xd1\xb3\xa2\x4f\xea\xf1\x9e\x6b\xe9\xe0\x05\xd6\xe6\x1b\xb3\x87\x44\x54\xa0\x5c\xcc\x9c\xe6\xbc\x28\xdf\xa0\xfe\x2a\xca\x8f\xc1\xa4\x8b\xb8\x87\xce\x12\x12\x51\xe2\xf7\xad\x30\x42\x50\xf5\xe3\x3e\x24\x76\x28\x86\xef\xeb\xd6\x2a\xfc\x57\xd1\xd8\xdf\x7d\x06\xdc\x66\xb4\x6f\xd7\x33\x12\x33\x8e\x1d\x2e\x45\x91\x1d\x04\xb2\xc5\x0c\x1f\x27\xf1\x13\x34\x76\x4c\x84\x4a\xd1\x58\xd9\x52\x13\x41\x12\x19\x20\xae\x4b\x41\x85\x15\x2f\xc2\xe8\x14\x52\x72\x4d\x95\xa7\x65\x3c\x74\x03\x75\x23\x87\xf6\xb3\x99\xf3\x91\x2a\xa2\x20\x5c\x33\x62\x3d\xad\xf7\x4f\x8b\xf5\xca\x8e\x08\x11\x46\x68\xe7\x61\x64\x79\x0b\x9f\x40\xb3\x34\x3f\xf6\x3d\x63\x02\x84\x44\x1e\x46\xf1\x73\x81\xf8\xb2\xa5\x2a\x48\xf9\x0e\x7c\x22\x08\x08\xc0\x02\x7f\x65\xcd\xbf\x15\x62\x94\x98\x21\x92\x38\xdc\xc4\x43\x8a\x69\xef\x83\x48\x91\xa8\x62\x2e\xf8\x5f\xe0\xb5\x96\xa4\x1e\x3e\x59\xe0\xb8\x21\xe6\x82\x37\xcb\xed\x62\xf9\xb6\x57\xc0\x8c\xdf\x4c\x23\x78\x66\xf7\xd8\x35\x17\x28\x39\x08\xa8\x4c\x0c\xd4\xea\x68\xdb\xe8\x4a\xe0\xfa\x9e\x79\xc5\xeb\xe6\x33\x15\x45\x99\xd2\x65\xde\xde\xff\x79\x74\xff\x81\xeb\x2b\x9a\xde\x0a\xea\xd9\xe5\x92\x8d\xb2\x39\xc3\x45\x2c\xf0\x5c\x05\xb9\x6e\x5d\xb5\x0a\x32\x13\xe4\x6d\x7f\xc7\x34\xdc\xe6\x79\xb6\x5b\x1e\x16\xcf\xb3\x97\x97\xe5\xdb\xd3\xd2\x36\x0b\x97\x7a\xd6\xb2\xb3\x3c\xce\xad\x69\x9a\x5b\xda\x42\x11\x10\xca\x48\xa0\xab\x44\x2c\xbc\xff\x2e\x40\xef\xdb\xd5\x3b\x20\xd2\xc1\xcd\x49\x85\xbc\x14\xfd\x88\x2a\xcf\xff\xab\x9c\x83\x3e\x41\xe0\x04\x9a\x74\x0b\xea\x59\x09\xb7\xf5\x75\xb6\x1f\xc7\x40\x63\x71\x51\xea\x6b\xa9\xc1\x1b\x88\x20\xa4\x5c\x2b\xa5\xb5\x46\xc4\x8c\x73\xb8\x20\x0d\x87\x92\x8c\xbb\xab\x10\xd4\x1e\x28\x43\x4b\x76\xd5\xc5\x91\x82\x50\x04\x91\x7a\x8f\xc8\xc9\xf9\x4a\xf3\xeb\xfd\x8c\x51\x10\xb9\x8e\xd5\x28\x04\x10\x73\xca\x3f\x1e\x01\x66\x98\xc1\xed\x2f\x64\x41\xe4\x72\xde\xc5\x8c\x26\x62\x04\x41\x14\x2b\x46\xf5\xa1\x42\x95\xa9\xf4\xec\xf6\x8e\x20\x62\x21\x8f\x4d\x68\x45\xd1\x8d\x8c\x94\xec\x4d\x47\xa0\x98\xc3\x7b\x6c\x5a\x63\x3d\x55\x55\xcb\xf3\x66\xe4\xbf\x05\xb1\xa3\xe2\x7c\x54\x88\x69\x83\x22\x88\x5d\x30\x1a\xd9\x87\xa6\x1a\x07\xf6\x82\x38\x88\x91\x38\x42\x29\x87\xec\x0a\x59\x2f\xac\x47\x6f\x5e\x6b\xcc\x13\x1c\x9e\x47\xfb\xe5\x62\x49\x51\xd9\x00\xa3\x7d\x8b\x9f\x0b\xf3\x7b\xe2\x51\xcd\x11\x9d\x65\xbf\xa7\x55\x35\xdf\x2f\x46\x6f\x2a\x21\x89\xc5\x0c\x35\x67\x45\xb9\x59\x8d\xfb\x84\x3e\x56\x15\xb0\x33\xdf\x64\xb4\x96\x45\x79\xb6\x17\x08\x63\xac\xf4\xc2\xf5\x37\xb7\x70\x34\x11\x24\xb1\x88\x54\x75\x47\x47\xe8\x32\x7a\xd4\x24\x89\x82\x0e\x9e\xf8\x5e\x66\x93\x96\x68\x90\x08\x8e\x55\x66\x22\xad\x2e\x19\xbd\x9a\x12\x13\xd3\x0a\x0a\xd5\x53\x54\x9c\x96\x4f\x4d\x9a\x8b\x3f\x19\x94\xc7\x61\x6c\x30\xa0\x81\xc0\xf7\x60\x41\x0b\x23\x74\x47\x7f\x48\xd0\x58\x01\xde\xb1\xf0\x54\x21\xd2\xae\x6f\xf4\x0c\x3a\x50\xa6\xc4\xc1\x87\xdf\x94\x79\x80\x05\xa5\x8b\x97\xd5\x63\x51\x3e\x51\x7b\x5d\x16\x29\xd5\x26\x45\x4e\x90\xe6\xc7\x21\x99\xb6\x08\x58\x2c\x30\x2a\x70\xd1\x54\xa0\x6b\x69\x5b\x98\xc4\x6a\x82\xaa\x61\x15\x2f\xd3\xa1\xbe\x8e\xee\xc3\x7d\xc0\xf4\xd8\xef\x3f\x9f\xef\x17\x50\x8b\x80\xb3\x00\x57\x63\x95\xfa\xfd\x3d\xad\x7b\xb9\x85\x80\x0b\x85\xb4\x51\xb4\x12\x7f\x8e\x97\x5b\xa0\x31\xe8\xea\xee\x0b\x26\x6c\xec\x81\x52\xc4\x89\x4e\xa5\xe1\xf6\x84\x85\x1a\xc3\x1b\x0c\x1d\x1a\x61\xac\xee\x61\xb9\x59\xef\x56\xfb\xdd\xe1\xf7\xe5\xc6\xe4\xcd\x43\x97\xd0\xff\x87\xb3\x37\xeb\x6e\x1c\x47\xb2\xc7\xbf\x4e\x3d\xcc\x03\x57\x90\x7c\x94\x25\xd9\x56\xa7\x65\xbb\x25\x39\xb3\xea\x3f\xa7\x8f\x0e\x96\x80\xcc\x36\x45\xaa\x49\xca\x4b\x7f\xfa\xff\x61\x04\xc0\x4d\x94\xb3\xe6\xf7\x30\x93\xd5\x26\xc4\x15\x08\xc4\x72\xe3\x5e\xa4\xab\xf8\x05\xe2\x74\x56\xca\xc6\x4d\xcc\x73\xc0\x05\xdc\xc2\x40\x55\x4f\x7a\x22\xfd\xcd\x3c\x09\xd8\x17\x29\xa9\x4c\x3f\x23\xb0\xd9\xf0\xab\x30\x4f\x07\x5e\x6c\x32\xbf\xab\xaa\x3a\x83\xea\x80\x8b\x8a\xf9\x90\x20\x05\x71\x1f\x81\xf0\xb7\xca\xbb\xf1\xc4\xff\xef\x4f\x58\xe6\xeb\x08\xaf\xdb\x44\x72\x8d\x03\xd5\xb6\xf4\x8e\x77\x82\xc1\xaf\x02\x16\x61\xae\xc4\xb4\x9d\xde\xf1\x23\x58\x86\xc4\x3f\x26\x36\x7a\x16\xc6\x31\xe6\xe8\x37\x85\x28\x6a\x5e\x76\x24\x82\xc3\x37\xc5\x42\x9f\x93\xf3\x0d\x6a\xdf\xbc\x89\x6a\xff\xce\xcf\x59\x6d\x2b\x30\x8c\xc5\x8a\x77\x42\x33\x33\xa3\xb7\xbf\x3b\xc2\xa7\x59\x43\x73\x9e\x93\xa7\x08\xe3\x53\x73\x49\x84\x00\x45\x59\x9f\x73\xd8\x17\xa7\xb1\x1d\x66\x11\x8f\xd0\xfb\x23\xe7\x6a\xbc\xe8\x26\x9c\x54\x16\x09\x81\xbd\x3f\x3d\x70\xac\x62\x71\xe0\x89\xb0\xa5\x6e\xc4\x00\x17\xd9\x73\x09\xe3\x3f\xb9\x27\xb1\x38\xa4\x26\xef\x9a\xbf\xa1\xd0\xf1\xef\xea\x73\xf6\x67\x82\x48\xac\x5a\x0a\xd3\xa2\xdf\x44\x35\xb9\xbe\x58\x2c\x24\xd2\x9f\x37\x31\x32\x6a\x1f\x81\xaa\x2e\x11\x88\x8a\xc5\x0a\x90\xc1\xc5\xb2\x68\xd4\xdc\xca\x81\x76\xc5\x15\x96\x38\x1a\x67\xcf\x43\x71\xd8\x5a\x40\xe3\x25\xfc\x86\x71\x3f\xc0\x8a\x1a\xca\xc5\x3d\xa4\x18\x54\x5c\x44\x09\xc3\x47\xe3\x52\x60\xe6\x63\xb3\xdc\x2e\x37\x3f\x97\xfb\xe7\xa7\xa7\x87\xfd\x6c\xb1\xd8\xd8\x4b\x73\x4d\x6c\x0d\xe7\xbc\x71\x3c\x9a\xa9\xbb\x3d\xc1\x15\x59\x53\xc5\x84\x4b\x94\x07\x69\xbe\xaf\x5e\x79\xf3\x09\xf7\xa7\x9e\xff\xca\xa4\x1b\x71\x42\x69\x7c\xa4\x23\x45\x08\xc5\xa4\x17\x6a\xab\x4c\x78\x3c\x42\xe3\x55\x75\x4f\xe9\xb6\xa3\x42\x1e\xd3\xdc\x7c\x87\xf2\xa2\x22\xc9\x94\xcb\x90\x15\xf1\x9c\x63\xf4\xd8\x25\x99\x99\x0a\x24\x37\x90\x9c\xba\xe8\x08\xec\x2e\x19\x08\xa7\xe7\x8e\x52\x1a\xd1\x7a\x48\x93\xba\xa6\xf8\xb3\x99\xb9\x28\xbc\x62\xc7\x68\x1f\x7b\x48\x45\x51\x96\xbc\x34\x56\xa4\x18\xa3\xee\xcc\x60\xf0\x84\xa0\xf4\xf0\xe1\x9c\xf1\xf2\xbe\xe8\xe6\x36\x68\x1f\x03\x14\xbc\xd6\x05\x91\xa8\x62\x3a\x72\x74\xbf\x64\xf2\xd3\xf8\x1e\x43\xe2\xcd\xdf\x38\x9d\xf6\x5c\xb1\x63\x23\xf1\x9b\x2e\x3f\x52\x19\x0e\xfb\xf1\x85\x65\xe2\xb4\x81\x42\x7e\xae\xe0\x7b\x75\x37\x15\x39\x8c\x9c\x8d\xb4\x6a\xb6\xcb\xa1\xb1\x88\x5c\x87\x12\xe8\x2f\xd9\xa0\x83\x5b\x45\x5e\x40\x9a\xb4\x27\xfe\xb5\x2b\x14\xff\x32\x90\xbd\xe1\xaf\x03\x27\xf2\x3c\xfb\x92\xf6\xa7\x12\xf6\xa9\xb4\x81\x77\x14\x4a\x1f\xf3\x6c\x7b\x2a\x01\xcf\x33\xe0\x84\xd5\x48\x25\x20\x83\x24\x1f\xb7\x13\xa9\x88\x79\xc2\x51\x43\x4d\xde\x6f\x0b\x32\x11\xe3\x31\xc2\xe0\x9f\x9b\x7d\xfc\xcf\x79\xdb\x2b\xaf\x22\x26\x80\xba\x21\x71\x7b\xdc\x37\xfb\x28\x71\xc6\xef\x3e\x5b\xfc\xd9\x74\x78\x12\x31\x15\x99\x69\x81\xfe\xb1\x81\x95\x8c\x7f\x64\x06\x47\x81\xe2\x44\x62\xb4\x85\xba\xc3\x96\xaa\x28\x62\x11\x85\x7c\xc5\x47\xfe\x5e\x50\xa3\x3e\xe4\xf5\xb7\xd2\xa5\x2a\x8a\x62\x82\x5a\x50\x8c\xd7\xe7\x08\xe9\xbe\x68\x1c\xf9\xa6\x6f\xa5\x71\xb4\xa9\xd6\x05\x73\x5e\xaa\xdf\x06\x25\xdf\x07\x2b\x51\x2c\x22\x0c\xba\x5b\x35\x15\xeb\x7c\x4f\x50\xfd\xa8\x88\xf3\xd8\x40\x62\xb0\x5a\xd8\xac\xf3\xff\xb7\xcb\x72\x70\x30\xb7\xd1\xb8\xb9\xf7\xc5\xb9\xac\x2e\xde\x91\xdd\x68\x5b\x77\x30\xe2\xda\xd1\x7d\xac\xfc\x43\xc1\xf3\x69\x28\x42\x24\xbc\x24\x31\x08\x09\x94\x12\xec\x6f\x6c\x91\x88\x25\x92\x5e\xd3\x3e\xdb\x55\xc3\xab\x5d\x31\x7a\x5c\xa1\x13\x44\x3f\x10\xce\xb5\x71\xfb\x3c\xfb\xa9\x65\x98\x10\xb5\xc4\x6b\x91\x8e\x70\x5e\x91\x4c\xa8\x43\xd8\xa6\x77\xf6\x24\x91\x30\xb8\x09\xa9\x02\x49\x2c\x2d\xb9\x72\xdb\x93\x2a\x10\x6e\x6f\xcb\xfb\x63\xc4\x93\x3e\x88\x63\xcc\x6f\x14\x37\xca\xac\xe7\x0c\x66\xa3\x59\xa3\x64\xec\x4a\x43\x36\x3f\xd3\x35\x94\x2b\x59\x8c\x87\x00\x47\xd2\xb5\x1a\x2a\xa3\x82\x6e\xe9\xd7\x06\x45\xd3\x08\x12\x0f\xe3\xf4\xf9\xaf\x39\x35\x52\xa2\x1f\x37\x7a\x5f\x20\x38\xe6\xeb\x0e\x3c\xe7\x43\xb8\x57\x04\xca\x45\x10\xf8\xcd\xe3\x0d\x55\xa2\xf7\x54\x0b\x5c\x2c\x1f\x9f\x8c\x46\x99\x8a\x9d\x40\xe2\xc2\x22\xa0\xfe\x2d\x6a\xc2\x5c\x78\x0b\xbf\xab\xa4\x0c\x6e\x29\x76\x18\x35\xdc\x51\x84\x6a\x13\x6d\xe3\xc9\xd6\x85\xc2\xe6\x24\x57\xce\x25\x95\xc5\xdd\x60\x18\xf1\xc7\xe8\xb8\x90\xb1\x71\xe0\x1f\x4d\x75\xb2\x47\xaa\x51\x3d\x21\x09\x76\xd5\x3e\xac\x26\xf4\xd2\xb2\x7e\xc5\x37\xb5\x3d\x15\x79\x35\x36\x8f\xb1\x1b\xf1\x64\x30\x25\xce\x44\x37\xf5\x2f\x7b\x3c\x0e\x30\x3d\xb9\xb7\x0f\x08\x32\x2d\xce\x97\x6d\x1a\xfd\xc9\x17\xbb\x10\x23\x8a\xe9\xae\x90\x32\xb1\xf7\xe3\x31\xc0\xad\x96\x82\xc0\xfa\x1b\xda\xbe\xef\xf8\x77\x7b\x0b\x36\xf6\x12\x37\x20\x04\xd7\x17\xb6\xa4\x8d\xac\x49\xec\x87\x01\x8a\x85\x40\x25\xcb\xe2\x63\xb4\x8a\x62\x3f\x21\x2a\x3a\xd9\xdf\x45\xe6\x85\xb2\x53\x2a\xf6\x75\x88\x6e\x8d\x4a\xdf\x67\x47\x3b\x51\xe3\x40\xfa\xc8\x68\xd5\x98\xff\x6d\x7a\x68\x22\x96\xc1\xd7\x36\xc3\x42\x8f\xfa\x99\x28\x8d\xba\x98\x3d\xd9\xdf\x87\x4a\x20\x32\x8e\xb8\xfc\x97\xb9\xba\xf9\xb2\x58\xe2\xc1\xca\x89\x23\x5f\x63\xd9\x05\x8b\x32\x0b\x78\xef\x09\xcf\x0c\x1f\x33\x92\x94\x15\x5f\x1c\xb3\xd6\x01\xba\x8a\x7b\x88\x63\x9f\x47\x26\xf7\x72\xf3\x45\x9a\x4b\xa3\x01\x01\xc7\xfd\x3b\x95\xc5\xd3\x09\xf2\x66\x7b\x6b\xd9\x4e\x54\x13\x8a\x30\x02\x7f\x0d\xc0\x5a\xf6\x28\x27\x0a\x8e\x0a\xea\x67\x7e\x99\xf3\x88\x63\xa5\xb1\x0b\x26\x7b\x47\x12\x99\xeb\x6c\x8d\x2a\x4e\x42\xe2\x9f\xa7\xc5\xbc\x7a\xbc\x7d\xda\xac\x11\x86\x82\x8e\xec\x72\x6b\x33\x90\x71\x12\xd1\x2c\xa0\x0d\x1e\x1d\x18\xcb\x10\xde\x53\x08\x1d\x9e\x9c\x3b\x31\xa6\xd0\x4c\x06\x08\xc9\x51\xae\xbc\x2f\x1e\x28\x69\x4a\xbc\x48\x05\x00\x3f\x52\xf9\xf6\xb3\xa8\x2f\x66\x1b\xe7\xa4\x13\x49\xde\xc1\x2a\x3f\x9d\x47\x99\xa5\x58\xba\xa4\x24\x8a\x5a\x87\xfb\xb3\x0d\x04\x62\x15\xb4\xda\x81\xc6\x80\x58\x0f\xa5\x63\xe2\xf9\x05\xe9\xe8\x6c\x2a\x61\xe8\x58\x57\x75\x21\xdf\x9a\xb8\x67\x0e\x65\xcd\xd3\xfc\x5b\x52\xb2\xd1\xc3\x29\x4d\x1a\x80\x3c\x4b\x8f\x3d\x7d\x0f\x15\x83\xef\x61\xc6\xe6\x27\x91\xcc\x0d\xf6\x96\xe6\x20\x71\x41\x95\x3c\xaf\x9f\xa1\xb4\x64\x41\xc3\xfb\x03\xa1\x31\x68\xfc\x77\x91\x92\xe6\x04\x25\xdb\xa6\x6f\x04\x54\x1c\x18\x3c\xf4\xf2\xf3\x94\x96\x5f\x8b\xae\x00\x19\x6b\x27\x89\x0d\x13\xce\xf3\x6a\xdf\xac\xa7\xbd\x1b\x0c\x6e\x29\x71\xbc\x84\x74\x13\x78\x99\x91\x64\x42\x47\x83\x3f\x5d\x68\xb4\x3f\x64\x31\x62\x1d\x91\x2d\xe8\x54\x14\xd9\x30\x9f\x94\x38\x8c\xa3\x9c\xd9\xb6\xc8\x78\x69\x55\x6e\x54\xe2\x70\x48\x86\x7d\x75\x94\xbc\x30\x87\x5d\xc7\x47\x56\xb7\xf7\x26\x6c\xbd\x2d\x8b\xa3\xa5\x8a\x99\x7c\xfa\xc4\x65\x21\x7a\x5f\x87\xf4\x1d\xe6\x45\x5e\x35\x23\x27\x42\xe6\xc4\xe5\x0a\x9d\xe3\xbb\xb2\x38\x9f\xf6\x61\x7b\x35\xa1\x5d\x0a\xcf\x3f\xe5\x44\xb7\xf3\xe0\x14\x9e\x1f\x32\xd7\xe4\x09\x91\x81\x75\xfa\x8e\xbc\x80\x68\xa1\x28\xcd\x68\xb9\xe9\x3a\x5a\x34\x95\x78\xc2\x95\x8e\x45\xaa\x60\x39\xe3\xc2\x55\xec\x67\x7e\xfb\x35\xed\xa2\xc8\xec\xfe\x92\x78\xc2\xb7\x49\xd2\x9f\x3d\xf1\xb4\x49\xb7\x2b\xf1\x03\xc6\x4d\x73\xf8\xec\x00\xf9\xa0\xcb\xc3\x0a\x02\x8e\xe3\xa2\x81\xd1\x4f\xfc\x50\xe1\xab\x6a\x0b\x39\xe8\x6b\x3c\xe5\xd9\xd7\xcd\xf9\x6b\x22\xfa\x4e\x7c\x16\x21\x2b\xe4\x2b\x47\x7e\xf7\x1f\x00\xa7\x34\x3f\x0c\x29\xf0\x55\xe2\x47\x1a\x37\x85\xb4\xba\x81\x03\x56\xa9\x51\xd4\x76\x04\xa2\x4e\x7c\x4e\x9b\x69\x33\xcb\x4d\xa9\xa7\x37\xcf\x13\x5f\xf9\x5c\x5a\x32\xde\xb2\xa2\xb4\xc1\xc0\x4d\x4a\x02\x15\x60\xc6\x6c\xb1\xfc\x39\x7f\x98\x6d\xb7\xfb\xdb\xdd\xc3\x7e\xfb\xbc\x5c\xda\x02\x4b\x12\x7a\x21\xee\x06\x7f\xf1\xfc\x0d\xa0\x71\x0a\x8a\x0c\xaa\x20\x6e\x8f\x47\x11\x76\xce\x37\x0e\xd9\x06\x8e\x45\x0d\xbf\xfa\x5b\xff\x77\x2e\xf6\x54\xc8\x79\x41\xaf\x3e\xfa\x64\x61\x4c\x32\x20\x23\xc0\xc7\x35\x27\xab\x37\xc1\x42\xad\xac\x3a\x19\xe9\xb9\x20\x59\xd6\x2c\x9b\x56\xd8\x53\x09\xf3\x14\xf6\x49\x88\x73\x99\x3f\x80\xae\x07\x50\xc3\x84\x25\x1e\xd6\x09\x7e\xa4\xf9\xe1\x1f\xfc\x38\xa0\x41\x56\x09\xe3\x1e\x62\x7e\xb9\x52\xdb\xb6\x20\x7f\xb9\x2a\x22\x16\x98\x62\x03\xc6\x47\x46\x12\x69\xfc\x4c\x83\xf5\x16\xc5\x2c\x8a\x0d\x41\x9a\xe7\x8f\x26\x57\xa4\x65\x68\x9d\xf4\xe9\xdc\x4b\x12\x3b\x94\xf9\xe0\x59\x56\x7c\x34\x6e\xdc\x32\x4b\x91\x86\xfb\xa2\xfc\x64\x7f\x10\x4a\x6c\xcb\xad\xed\xfc\x2b\xb2\x0d\x60\xf1\xf1\xd1\x60\x1a\x3a\x65\x1a\x95\xc4\xca\xc3\xcd\x7e\x56\xd6\xbc\xf8\x1d\x81\x89\x4a\x12\x4f\x10\x13\x17\x76\xa8\x5a\xbe\xb8\xef\x31\xe7\x09\xf7\x23\x65\x3c\x8e\x35\xff\x34\x13\xc1\x1e\x13\x1c\xcd\x6f\x4b\x11\x73\x65\xae\x99\xe1\xc2\x0d\xb1\x3e\x81\x6a\x5f\x65\x31\xb0\x76\xc3\x8b\x8a\x80\x23\x8d\xb0\xc8\xf2\x13\x94\xd0\x42\x0c\x13\xe9\x3b\xe8\x98\x19\x7f\x96\x9f\x3a\xa6\xe2\xe9\x33\x49\xe6\x58\x29\xac\x21\x81\xd0\xb6\x18\x74\xdf\xaa\x44\x85\x74\xcd\x0e\x85\x3a\x34\x49\xdf\x45\x18\xd3\x32\x05\x2a\x51\x40\xb5\xe1\x0a\x8c\xb5\x1b\x71\x84\xa9\x04\xe2\x40\x98\x16\x94\x72\xce\x8f\x27\x9e\x1e\xf2\xd5\x62\xda\x9b\x49\x20\x8e\x6c\xbf\x23\x85\x18\x43\xb6\xcb\x66\x00\x28\x53\xd6\x5a\xe6\x58\xc2\xfd\x0b\xf8\x25\xd5\xcb\xf8\xb4\xd2\xc7\x74\x53\xe3\xac\xed\xee\xf7\xcf\x9b\x25\x41\x82\xef\x37\x4b\x5b\x6a\x4d\x40\x92\xda\xe0\xcd\x72\x77\xbf\xdc\xc8\xae\x78\x98\x68\xc6\x4c\x34\x9d\x2b\xcc\x84\x97\xd7\xfd\xd7\x44\x73\x12\x8c\xae\xce\x95\x2c\x53\x01\xbb\x32\xe5\xd9\xe8\x95\x68\xed\x12\x19\xed\x1e\x77\x65\x1b\x54\x73\xc7\x0f\xb0\x0f\x4d\x67\xe7\xea\xd5\xa8\x78\xc3\x28\x13\x31\x9c\x71\xdc\x49\x34\x97\x66\xbf\xbc\x79\x3b\xcc\xea\xe5\xa7\x7c\x9d\x16\x76\x51\xdc\x91\x1e\x06\xa1\xd8\xfc\x40\x0e\x7e\xd9\x5e\x5b\xb9\x88\x0f\x68\xa6\x10\x4e\x1d\x7b\xc0\x75\x05\xf2\x08\x88\x54\x29\x6a\x1a\x6c\x69\x15\x14\x77\x7d\x85\xa8\x99\xf9\xd3\xe3\x6e\xb3\xba\x79\x69\x1c\xe0\xed\x7e\xdd\xc2\x0b\xb8\xcb\x22\xb4\x7a\xaa\x45\xb8\xc0\xf5\xf2\x2d\xf7\x82\x00\x29\x34\x6d\xe6\x00\xb1\x4a\x57\x18\x08\x15\xf7\x13\x6a\x5d\x32\x65\xbb\x0a\xca\x2d\x85\x59\xe6\x78\xe0\x50\x61\x62\xc7\xab\x37\x8b\x96\x1a\xcc\xe9\x76\x1c\x47\x70\x14\x1c\xd3\x2b\xaa\xa1\xa3\xdb\x0c\x94\x52\x5d\x50\xbd\xfd\xaa\x6a\x38\xf6\x50\xa3\xb6\x11\xbd\x03\xcb\xd9\x3c\x32\x0f\x79\x10\x04\x2d\x28\x62\x9b\x1a\x53\x6e\x97\x13\x0f\x45\x1c\x5b\x09\xda\x1a\xb6\x50\xf7\xf8\x8f\xaf\xba\xc9\x3c\x54\x20\x4c\x1f\xdb\xcd\xb9\x4d\xa5\xf6\x3b\x86\x06\x66\x92\xb3\x20\x66\x84\x6b\xcf\xde\x4c\xca\x95\x7e\xd4\x6c\x60\xf4\xe4\x30\xc1\x56\x31\xf2\x8d\x38\xe3\x8e\x32\x25\xeb\x9b\xe2\x28\xfa\x90\x4a\xce\x44\xac\x6d\x18\x8a\x9d\x8e\x95\x21\x0c\x18\x92\xb6\x28\x1e\x79\x09\x32\xc0\xa6\x15\xe2\x33\x2a\x54\x63\x1c\x7e\xe7\x28\x8c\x31\x39\xd9\xdc\x2a\x2f\xe5\x2b\x7a\xeb\xd8\x6c\x7a\x6c\xe9\x0d\x15\x8f\x9d\x18\x93\x8f\x98\xfa\xdf\xfb\xfb\x4e\x1a\x57\xf1\x58\x78\x48\x7b\x66\x08\x81\x05\x7a\x3d\xd7\xb1\x73\xf6\x57\xca\x07\xa4\x9f\x2c\xba\x13\xe9\x88\xf4\xa6\xce\xe2\x98\xd6\x3f\x53\x05\xc5\xe4\x1b\x4e\x3c\x70\x8c\x1d\x5b\x9a\xf0\x63\xce\x4f\x43\x33\xc0\x13\x11\xba\x96\x8b\xc8\x74\x12\x1a\xa4\x9d\x1b\xb1\x7f\x5d\x16\xf7\xec\xcf\x94\x83\x1d\x28\xb8\x69\xfe\xf3\x0c\xe3\x34\x14\x17\x8e\x1f\x05\xc6\x5e\x91\x70\xea\x2d\xd5\x7c\x6d\x4e\xea\x2a\xf2\x81\x0b\x1f\x22\x3e\xd2\xd3\xca\xf8\xe5\x16\xd1\x59\x64\x2e\x22\x92\x2d\x90\x45\xfe\x0e\x65\x6d\xd4\xef\x2c\x64\xd0\x0e\x12\x24\x96\x56\x1a\xb9\xd4\xe1\x8b\x90\x6e\x64\x41\x37\x37\xbc\xae\x33\xf8\x71\x1e\x57\x98\xb9\x54\x1c\xab\x0f\x26\xd1\x73\x97\x96\xd9\x1f\x13\xf2\xea\xdd\x0f\x94\xa7\x6d\x9f\xd4\x03\xf0\xaa\x89\xdb\x20\xaf\xd2\x77\x40\x23\x71\xc5\x00\xa9\x30\xc6\xed\x2c\x87\x8f\x59\x5d\xb7\x9c\x4d\x8a\x2b\x26\x10\x49\xbd\xbf\xc2\x14\x6e\x87\x29\x81\x24\x16\x3f\x7f\xf6\xfd\x37\xae\x74\x84\x11\xe2\x8f\xb3\x2a\xaa\xa7\xf2\xc0\x73\x83\xf4\x1b\x05\xe9\x1c\xfc\x10\x01\x25\x9b\xbb\x3f\xa9\x97\x6a\x3a\xc9\xd4\x9f\x0e\x90\xc4\xe8\xc1\xdd\xf0\xfc\x0d\xb7\x93\x3d\x69\xa8\xcc\x8b\x3c\x07\x59\x37\x7f\x6e\x49\xa1\x1f\xe1\x03\x87\x0c\x83\x48\x0e\x82\x58\xbc\x9b\x0d\xf7\xf9\x7c\x3a\xb5\xbc\xe9\x8a\x83\x22\x41\x0c\x6c\x88\xb8\x88\x58\x87\x2f\x4f\x3b\xe0\xd2\xf6\x82\xa0\xf0\x87\x66\x8d\x9a\xf3\x08\x47\xb9\xc8\x29\xf3\x73\xb5\x98\x3d\xf4\xf0\x67\xc2\xf3\x89\x0a\x70\x3d\xdb\xdc\xad\x1e\xf7\xdb\xe7\x87\xd5\x6e\x6f\xa0\x5c\xb3\xbb\xe5\xfe\x66\xd6\xe2\xdc\x85\x17\xd2\xaa\x3a\xe0\xec\x1c\x31\x2a\x29\xe1\x31\x85\x9d\x86\x88\x97\x30\x73\x7d\xcc\x5b\xa8\x04\xf2\x73\x37\x53\xf1\x68\x9b\xce\xa7\x08\x36\x94\xf0\x0d\xda\xe3\xb6\x2c\xfe\x0b\xb9\x19\xb3\x87\xeb\xa9\x18\x11\x68\x8f\xba\x8d\x71\x86\x6e\x8a\xe2\xf8\xc7\x54\xea\x48\x84\x51\x82\x2d\x35\xcb\xdd\xfd\x73\x7f\x9a\x88\x30\x01\x2c\x2f\xac\x91\x51\xd3\x6e\xb2\x82\x71\xe5\xdb\x1c\xf5\xf2\x78\x6a\x61\x52\x82\x81\xa3\x89\x1e\xef\x93\x7a\x58\x6f\x7b\x84\xfe\x03\x83\x24\x98\xe6\xd8\x4a\x6d\x79\x1d\x7b\xba\xda\x17\x6f\x28\x8a\x95\x91\xdf\x3e\xa6\xf9\x16\x78\x66\xa4\x5d\xfb\x76\x5b\xc4\x0e\x43\xd0\xc5\x91\xbf\x19\x7e\xa3\x27\xdd\xe2\x54\xaf\xbc\xa0\x38\x09\x91\x4c\xa2\x71\x05\x0c\xa9\xd0\xf0\x9d\x27\x7e\x82\xb5\xad\x56\x0e\x77\x5c\x92\x10\x89\xaf\xa5\xe9\x38\xbe\x19\x89\x17\x28\x91\x84\x9c\x27\x96\x92\xe0\xc8\x91\xe0\xac\xdd\x20\x04\x77\x79\x10\xd8\x84\x14\x71\xb9\x6e\x21\xcb\x7e\x4f\x92\xaf\x04\xf7\x99\x1b\x50\x5c\xb1\xe7\x83\xb5\x23\x78\x28\x31\xcd\x65\x33\x2d\xf3\x22\xbd\x86\x3f\x16\x3c\x01\x0c\xd6\x97\xeb\xd9\x7c\x02\x2c\x26\xb8\xd4\xc8\xae\x78\x22\x75\xd3\x4e\xdc\x58\x09\x91\x38\xa1\x65\x0c\x01\x79\x2e\x53\x5b\x32\x1d\x65\x6e\xcc\x70\xc9\x3c\x54\x3d\xbb\xc9\xd2\x5c\xcd\xcb\xe2\x7c\x4a\x8d\x23\xd9\xc7\x10\xb6\x5f\xde\x65\xdd\x56\xe0\x32\x3b\x0f\xa4\x74\x9d\xa0\x6d\x9f\x2a\x0d\xc3\xee\xc3\x58\x3c\x4d\x09\x09\x7e\x62\x6e\xce\xa4\xd1\x78\xf9\xb5\xd7\xe7\x1c\xdd\xa1\xbd\x34\x12\x61\xc3\x1f\x29\xe6\x30\xb3\xfb\xed\x1b\x73\xd1\xbe\xd8\xc9\xcc\x88\x80\xc8\x45\x14\xf8\xf2\x69\xfb\x9c\x9d\x07\xe1\xb1\x00\x45\x9c\x43\x39\x7c\x9a\xda\x86\x71\xbe\xfe\xce\x3f\xe6\x1c\x3a\x22\xbf\x5d\xf6\xfa\x11\xec\xa1\x58\x68\x43\xe5\xb6\x29\xb0\x26\x63\x0f\x68\x4e\xa2\x0e\x86\xa0\xfd\xfc\x35\x59\xbd\x94\x8e\xef\x85\xfd\x82\x58\xe3\xaa\x0e\xb3\xfd\xd2\xf1\x85\xd7\x85\x7d\x8f\xbb\x9f\x2f\x7f\xd8\x23\x21\xc3\xaa\x6e\xcd\x3f\x07\xb9\x16\xe9\x24\x12\xdd\xdf\x53\x59\xd4\x28\x2e\x6d\xb5\xc8\x27\x27\x9f\xf4\x18\x43\xa7\x8f\x30\x15\x4f\xe7\x5a\x16\x2d\x6d\xd7\x78\xa8\x12\x68\xa0\x9a\xb5\x4d\x94\xee\x0b\xe0\x97\x84\x8f\xa3\xbc\xa5\xf9\x71\x10\xb9\x21\xf1\x63\xd6\x5c\x43\xfb\xb2\x9a\x19\x89\xb8\xd2\x75\x9a\xd7\xcf\x65\x51\xe8\x27\x8d\x14\xe3\xf6\x78\xe4\x88\x8e\x72\xa2\x2c\xf1\x89\x90\x58\xe4\xe6\xf9\x49\x0f\xc9\x4d\xad\xa5\x92\x11\xf7\x20\x34\x96\x71\x0b\xf5\xf9\x84\xc5\xbb\x2a\xb5\x08\x2e\x19\xc7\xae\x1f\xb7\xfe\x5a\x5f\xdc\x7c\x60\x1e\x65\x2c\x12\x4c\x1c\x68\x77\x68\x6f\x50\x74\x2d\x20\x7b\x53\x9c\xeb\xe1\x07\x68\xcc\xa4\xa2\x70\xea\x9d\xd7\xb8\xe7\xed\xc5\x58\x64\x58\xc9\x24\x0c\x03\x32\xa7\xff\x3e\x1b\x68\x94\xdd\x79\x2e\x71\xe4\x32\xe1\x0a\x0b\xab\x47\x7c\x92\x49\x66\x13\x3b\x52\xc4\xe8\x11\x19\x87\xe8\xdc\x57\x1d\xfb\x5b\xe9\x75\x99\x28\x1f\x42\xdb\x39\xd1\xd8\x42\xca\x36\xf6\x64\x5d\x46\x3f\xe0\x7e\x84\x7a\x39\xb7\x03\x92\x1e\xc9\x65\x8c\x59\xcb\xdd\xee\xb1\x4f\x67\x69\x8e\x8a\x80\x61\x09\x0f\xab\x18\x4d\x7c\xd2\xe3\x81\xff\xcd\x0d\x8a\x50\xe2\x1b\xfe\xe4\xe7\xf2\x7c\x44\x80\xc9\xaf\xa2\x7c\xeb\x5a\x9b\xa4\xe0\xd2\x7a\x79\x77\x63\x7b\x2a\x85\x56\x68\x9b\x21\x57\x48\xf4\x7b\x93\x96\xed\x74\x94\xdc\x45\x72\x62\x7c\x90\x0d\xd4\x65\x0a\xad\xae\x89\x92\x52\x70\xb4\x28\xeb\xd9\x9f\xfb\xc5\xf2\x79\xb6\xd9\xbd\x6c\x96\xfb\x87\x95\x2d\xd5\x4a\x15\x40\x60\xf8\x40\xee\xc6\xca\xb0\x4a\x2a\xa9\x1c\x23\xab\x86\x24\x68\xa3\xc3\xc0\xa8\xb7\xf2\xc7\xfd\xee\xbb\x74\x96\x04\xa1\x2c\x63\x00\xa2\xd0\x76\x25\xf0\xea\x5c\x4e\xc3\x32\x94\xe3\x01\x2a\x47\x7d\xc0\x5d\x51\xcf\x4c\xe0\x38\x69\x0b\x94\x03\x84\x86\xc3\x94\x57\xf9\x06\xf5\xde\x6e\xdd\x2f\xd5\x90\x4c\x5a\x29\xd7\x8d\x50\x84\xd4\x80\xb5\x16\xa6\x91\x7a\x7f\xf3\xf4\xf2\xb8\x5b\x2d\xb7\xfb\xd9\xe2\xe7\x6a\xfb\xb4\xd9\xb6\x3f\xe0\x09\xba\x2b\xbf\x96\x7e\xbf\xf7\x44\xb9\x52\x1a\x34\x81\x7c\x9d\x4f\x64\xc6\x7e\xfb\xef\x64\x16\x40\x79\x71\xe4\x5b\xc9\xfe\xd0\xb1\x17\xf3\x12\xf2\x24\x30\x99\xd3\xf8\x9b\x03\x7a\x0f\xe5\xe9\x98\x11\xc9\xc5\x67\x87\x97\x37\xc7\x7c\x87\xe9\xa8\x25\xda\x2f\x87\x85\x7c\xe5\xbb\x31\xf2\x1e\x9e\xf3\xc6\x77\x6a\xb6\xe8\x4e\x3e\x7a\x60\x08\x95\x1f\x68\x4c\x7d\xb4\x8e\x16\xe6\xb2\x86\x37\xdf\xf8\x3b\xcd\x87\xd8\xbe\xb4\xaf\xc9\x07\x95\x18\xc4\x58\x33\xd7\x0d\x2f\xf2\xc0\xd6\xda\x74\x82\x0a\x1c\xdf\xe9\x98\xfd\xfe\x71\x2e\x8b\x72\x14\x37\xa9\xc0\x89\x70\x9e\xff\xe4\x76\xcd\xa8\x40\x93\xe4\x6b\x8f\xcd\xef\x2f\xe0\x76\xee\xab\xd0\xf3\xb0\x2f\x63\xb6\x6b\xef\x29\x14\x61\x0c\x6d\xf7\xcb\x1d\x3f\xc2\x43\x71\x48\xe5\xe8\x61\x98\x13\x5b\xd4\xfe\x73\x09\xab\xf9\xd3\x25\xb5\xae\x52\x2c\x09\x74\xf3\x56\x30\x7b\x87\x7c\x61\xb3\xac\x04\xae\xbe\xc6\xc1\x85\x1d\x2f\x78\x04\x1d\x32\x69\x5f\xc2\xb1\x6b\xcd\x52\x91\x43\x64\x25\x04\xb8\xea\xe7\x5f\xba\x33\x44\x71\x84\xbb\x2f\xd7\xba\x59\x38\xfb\xf6\xb7\x9c\xb4\x05\x6f\x32\x2e\xdf\xb6\x39\x4f\xb3\xf1\x62\x3c\x5f\x40\x6a\x55\xec\x02\x26\x8b\x3b\x36\xf9\xcd\xf2\xd7\x6c\xd3\xae\x8a\xc7\x97\x75\xbb\x10\xe2\x30\xb0\xf4\x42\x0f\x05\xcf\x77\xc5\x73\x51\xd6\xba\xc8\xd2\x62\x3a\xfa\x54\x31\xf7\x30\x9b\xb6\xe6\x6f\xc4\xf1\xca\xff\x06\x51\x8c\x4a\x98\x34\x8c\xb6\xb8\x05\xdd\x95\x3c\xaf\x01\xaa\x9e\xcc\xb0\x19\xc8\x9d\xc0\x98\xc3\x9a\x08\x74\xac\xa7\xd2\xe6\x64\xec\xc6\xaa\xb8\xef\xf0\x3e\xd6\x6f\x96\x2b\x23\xdf\xf9\xb7\x0c\x77\x13\xc8\xa2\xd3\xf2\xb2\xeb\x75\x61\x28\x21\x1d\xac\xa2\x9e\x32\xfe\xe5\x5d\x31\x4d\x42\x26\x91\xe1\x20\xa7\x8c\xe1\xe8\x21\x84\xd5\xb7\x6a\x26\xaf\x3d\xb1\xf4\x19\x2a\x67\xde\x58\x2a\x68\xd5\x6c\x4a\xa8\x22\xb6\xc7\x68\x70\x6a\x26\x4a\xe1\xa1\x15\xce\x9a\x63\x43\xf3\xa0\xdc\x04\x71\x00\xa2\x28\xde\xee\x2e\x88\x77\x94\x62\x9a\x53\xbb\x8d\x2c\x8e\x69\x7e\xd8\xf0\x5c\x15\x47\xc2\xbc\x2c\xcb\xf2\xe2\x9e\x95\x22\x1d\xe7\x6e\xd2\xdc\xcf\x36\x8b\xf9\xec\xb9\xbd\x9e\xf6\xc1\x35\xcd\x80\x50\xd5\x2d\x18\xed\x52\xae\xd6\xfc\x00\xdc\x04\x77\x5c\xd3\xc3\x5f\xad\x8e\xa7\xa2\xac\xbb\x54\xb2\x82\xc8\x0b\x5c\x9b\xea\xc5\xb6\x41\xdb\x0f\x7b\xe5\x84\x91\x42\x21\x50\xdc\xf0\x76\xf7\xed\x69\x12\x8e\x75\x6b\x85\xd0\xa8\x5e\xba\x4d\x41\xa2\x63\xb7\xeb\x45\xfb\x75\x0b\xad\x89\x04\x4e\x8d\x6c\xc4\x4f\xbb\xac\x24\x3f\xc1\x7d\x8f\x01\x4e\x01\x97\xae\x01\x0a\xdd\x16\x25\xa4\x07\x22\x7f\x1a\xa5\xa7\x86\x76\x1e\x1c\x4f\xe0\xec\xb5\x5c\x2f\xdf\x43\xa1\xc1\x65\x1a\x51\x85\x1a\x6a\xf9\xba\xe0\x5f\x83\x4d\x0d\x5c\xf0\xfc\xa0\x7b\xe1\x2f\xdb\x05\x15\x57\xfb\x9f\x19\x3c\x4f\xe2\x29\x0c\x4a\x9a\xf4\x18\x86\xe7\xf1\x13\x85\x89\xc5\x45\xaa\x75\x2a\xcf\x59\xfd\x85\x82\xa0\x23\xa7\x0e\x7c\xae\x1c\xaf\x23\xfb\x22\x37\xf2\xe6\xab\xf9\xef\x31\x79\xae\x02\x5f\x2a\x25\xad\xe2\x75\xe3\x30\x12\xe8\x71\x74\xca\xc0\x21\xa1\x0f\x1b\x53\xb4\x8e\x36\x04\x92\xa3\xbd\x9b\x37\x13\xbf\xfd\xa3\x16\x98\xab\x5d\xf0\x62\x73\xce\xa0\xb2\x9b\xd6\x4c\xa9\x51\x56\xfc\xff\xf2\x2f\x52\x24\x0e\x3f\x53\x18\xb8\xd0\xa3\xfa\x7e\xe7\x35\x2f\x91\xcb\x60\x1a\x91\x35\xfa\x6a\x21\xe7\x76\xef\xc5\x0a\xfa\xe8\xa1\x99\xab\xdc\x4e\xeb\x70\x25\x8b\x5d\x7a\x84\x0d\x12\x07\x4e\x4e\x6b\x60\x9a\x4b\x62\x60\xcb\x7e\xfc\x35\x1f\x2e\x4b\x88\x99\x0c\x45\xcf\xc8\x51\x0e\xe5\x06\x25\x64\xc7\x43\x13\x46\xd2\x4f\xc6\x5f\x68\xc2\x6e\x93\x12\x1a\x55\x16\xcc\x0f\x12\x27\x76\x5c\xd3\x36\x5b\xf3\x01\x7f\x18\x24\x61\x80\x4c\xaf\x3a\xfd\x04\xf5\x50\x1c\xbc\xa9\xaa\x04\x24\x9c\x0c\xdd\xae\xb8\x2b\xe6\x45\xde\xc4\xa5\xf6\x04\x3c\xd4\x4c\x99\x46\xff\x79\x71\x14\xbc\x46\x9a\x9d\x8b\x9b\xe0\xb1\x87\x75\x01\x52\x81\x97\xf5\x99\x67\xfd\x8e\x53\x10\x8c\x48\x70\xee\xa0\x7e\x2e\x8a\xac\xf9\x4c\xe5\xb1\xdf\x81\x0c\x22\x0a\x11\xfe\x80\xc2\xf3\x84\x07\x1e\xbd\x19\x11\xb5\x94\x40\x5b\x44\xfa\x50\x09\x66\x78\x23\x2a\x74\x31\xd6\x3f\xa4\xba\x5e\x55\x3b\x0b\x53\x01\x08\x18\x33\x89\xdf\x59\x96\x11\xa9\x9e\xd9\xc4\xdb\x25\xa6\x19\xf3\xa8\x17\xa0\xea\x85\x8b\xda\x09\x89\x84\x61\xa4\x1f\x7d\x9d\x37\xbb\xf9\x09\x27\xb1\x39\x2c\xf1\x12\xb6\xcc\x1c\xb2\x4c\x75\x78\xf7\xcb\xaa\xb6\xc8\x8b\x8e\xc8\xe2\x6f\xe1\xf5\xb5\x1f\x07\x8c\x6e\x76\x7a\xbb\xb4\xc3\x92\x10\xab\xe6\x2d\x7d\x31\xed\x20\x03\x17\x68\x54\x28\xd1\xbe\x8e\x3d\x93\x9a\x9f\xf7\xf0\xb4\xc3\x47\x0c\x42\x86\x2e\xc7\x16\x5f\xa8\x91\x3d\xaf\xb6\x17\x2b\x49\x87\x8c\xb8\x76\x1a\x9f\x9f\x72\xee\xcb\xfa\xb5\x31\x37\xe3\x71\x3c\x44\x63\xf2\x05\xbc\x0c\x1a\x43\x3f\x4c\x1d\xeb\x50\x02\x32\x00\x36\xae\x2a\x06\x8e\x2d\x5d\x24\x35\x50\x78\xf1\x24\x04\x53\x33\x88\x9d\x4e\x79\x07\xb3\xb9\x44\xf1\x39\xf0\xa1\x75\x24\x19\x72\x15\x41\x5e\x9d\x4b\x98\xf7\xda\x55\xec\x0d\xc4\x8e\x87\x0d\xdb\x19\xaf\xea\x3e\x2d\x84\x8e\x1d\x89\x4c\x30\x4d\x74\x9e\x66\x70\x00\xd5\x18\xf0\x87\x56\xf4\x50\xe9\x18\x1c\x84\xde\x0b\x40\x25\xe4\xa2\xac\xc7\x95\x5a\x9d\xf8\x09\x56\x26\x6e\x78\x7e\xc8\x78\x1f\x82\xa6\x13\x0d\xdc\xe0\xdb\x4e\xcb\x21\x45\xab\xe6\x9a\xd0\x1c\x26\x31\xd4\xe2\x6c\xfa\xaf\xc4\xf5\xcc\x4a\xd7\xca\x8b\x10\x9d\xa3\x41\xbe\xf2\x72\x51\x70\x59\xb4\x45\x4c\xad\xb8\xee\xac\xf9\xb6\x48\xb3\x1d\x1c\x4f\xcb\x4f\x09\xd8\x87\x37\x9a\x31\xf6\x37\xda\xc1\x52\xb6\x11\xa6\xe9\x67\x41\xb5\x76\x94\xa3\x5a\x7c\xa5\x1a\xbd\x6f\xed\x07\x09\xe9\x91\x65\x56\x44\x4f\x69\xcd\x12\x74\xe6\x8a\xe6\xfb\x1a\x1e\xf5\xd1\xcf\x58\x82\xde\x86\x24\x1a\xe0\xf1\xd1\x88\x93\x9a\xbc\xad\x00\xaf\x2f\xa4\x69\xc1\x71\xbc\x50\x36\xa7\xd8\x3c\x3d\x2c\xf7\x37\xb3\xf9\x8f\xe5\xa3\xc1\x0c\x81\xe3\xba\xae\xcf\x5a\x2f\x64\x58\xa2\xbd\x28\x62\x81\xe3\x7a\x0c\x1f\xe2\x9d\x5a\x2e\x86\xaa\x50\xe0\xb8\x51\x8c\x99\x44\xc9\x33\x79\xea\xcc\x61\x73\x20\x11\xc6\xad\x43\x78\x26\xc1\x7a\x38\x6a\xf9\x6d\x21\x57\x97\x2c\xcd\x83\x65\x0d\x8e\xab\x3c\x2c\x72\x50\xe9\xe8\xe2\x11\xbd\x30\x46\xc4\xf3\x47\x51\xaa\xac\x15\x40\x04\xc7\x8b\x3d\xe2\x2c\x6a\x5c\xbf\x22\x87\x55\x8e\x77\x3e\x43\x9a\xd4\x5b\x9e\x55\xed\x1d\x7a\x89\x44\xea\x17\xe3\x3e\xda\xa0\xa3\x15\x5c\x6c\x9c\x24\x52\x84\x7f\x5e\xcf\xaf\x37\x62\x82\xe3\xc7\x1c\xb7\xa0\x92\xe7\x8a\x17\x83\x35\x0d\x4e\xa0\x22\x9f\x54\x85\xbe\xee\x8a\x42\x55\xfd\xc4\x3f\x38\xa1\x4b\x3c\x24\x4d\xe8\xdb\xca\xa8\x77\x0b\x03\x9c\x30\x14\xd2\x94\x81\x9a\xb0\xba\xef\x59\x83\x13\x0a\x6a\xe4\xa8\xa0\xb1\x39\x8d\xd3\xf8\x77\x0c\x2b\x38\x4c\x46\x21\xa9\x5c\x8e\x6b\xda\x53\xb5\xb1\x31\x4e\x09\x9c\xc8\x55\x28\xcc\xd0\x61\x05\x66\x87\x69\xeb\x0c\x4e\xec\x6a\xbf\xed\x61\xde\xfb\xf6\xd6\x63\xe9\xab\xb6\xbc\x84\x6e\x5c\xab\x64\x39\xbc\x56\x0c\x02\xe1\xe5\x96\x53\xae\x04\xe8\x7d\xa1\x44\xfa\x48\x7f\xdc\x04\x41\x48\x56\x73\xe5\x2e\xb8\xe3\x39\xd0\x76\xec\x9e\xad\xca\x7a\x07\xc8\x03\x47\xb8\x31\x7a\xb1\x27\x94\xb8\xb9\xf9\x1a\x1c\x03\xc0\x17\x4d\xd9\x41\x0b\xbc\x99\xae\x27\xfe\x4d\x66\x17\x70\x24\x23\x49\xc0\xcd\xec\xf1\x6e\xb9\x7c\x5c\x74\x2f\x47\x72\x17\xc0\x6a\x32\xef\x4f\xbc\xfd\xe0\x52\x90\x45\x69\x1c\x21\xea\x92\x1c\xae\x46\x05\xa1\x95\xc0\xdd\xa5\xc3\x0a\x39\x38\x8d\x25\x95\x06\xd8\x90\x15\x4d\x18\x57\x8d\xbb\xb7\xc1\x01\xd7\xc5\xad\x0c\xb7\x9f\x75\x13\x67\xdc\xf2\x34\x3b\x97\xdd\xe7\x1d\xe5\x8f\xbe\x7d\x44\x08\x25\xb4\xa0\x86\xfc\x8c\x1d\x64\xed\xca\x00\xc1\xb0\x9b\xe2\xe1\x2c\xbf\xba\xbf\x25\x01\x35\x3d\xf5\x79\xa8\xaf\x58\x08\x68\xb6\xfe\xc6\x34\x15\x35\x3c\xe5\x8f\xf0\x81\x69\x90\x5b\x80\x6a\x5f\xe4\xd9\xd7\xfe\xe7\xea\xb9\x07\xa3\x00\x47\x7b\xa4\x7e\xbf\x58\xce\x57\xeb\xd9\xc3\xd6\x5e\x54\x0b\x02\x34\x1d\x79\x8a\xb9\xab\x2d\x72\x1f\x2d\x73\xd5\x9f\x02\x5a\x46\x28\xbf\x49\x73\xbe\x6b\x3e\xfc\x9e\x84\x15\x5c\xc7\x03\x30\xac\x9f\x77\xbc\xea\x50\xa7\xb1\x3d\x1e\xbb\x58\xc6\xfb\x4f\xf5\x8a\xcd\xce\xd3\x09\xea\x66\x1c\x61\x7f\x8e\xfc\x0d\x66\x39\xf2\xae\xd8\x9d\x10\xab\xd0\x26\xad\x3f\xfc\x9c\xae\xa3\x01\x13\x44\x5c\xa9\x6d\x7a\xb8\xf9\x6a\x3d\xbb\xc1\xbc\x71\x7d\xa1\xb0\x5b\x31\x2f\xac\x1d\x75\x03\xd0\x98\x00\x3d\x9e\xeb\xb4\xf9\x16\xf3\x22\xcd\xd1\x76\xf3\x23\x0c\x45\xb8\xae\xdd\x71\x28\x38\x16\xe8\x34\x61\xaf\x16\xbc\xe6\x93\x1d\x56\xe0\x32\xa9\x43\xd3\xac\x8c\x99\xe3\x21\x75\x93\x1d\x04\x31\x42\xa7\x6e\xd2\x5a\x16\x69\x3e\x4f\xeb\xaf\x2e\x1d\x02\x6e\xa4\x00\x2b\xf7\xd6\xb3\x1d\xde\x4b\xec\xd1\xdb\x2b\x89\x0b\xf4\x66\x37\x1f\xb7\x2b\x4f\x38\x56\xe0\xc6\x11\xc3\x46\xf7\x87\xe2\x40\x91\x89\x6d\x68\x23\xf1\xf0\xed\xf9\x38\xbe\x8e\x04\x8e\x10\xc7\x9e\xa4\xce\xef\x7a\x8c\x46\x67\x50\x31\x96\x5d\xc9\x8f\xba\x39\x67\x59\x75\xe4\x9d\x62\x19\xb8\x89\xa3\x30\x17\x63\xfa\x1e\xda\x66\x96\x0b\x96\xb8\xe1\x79\x93\x30\x49\x0c\xde\x78\x87\xca\xd0\x1b\x38\x51\xba\x7a\xce\xa9\xd2\x73\xca\xd2\xde\x55\x94\xef\x0a\xaa\x87\x61\x68\xbb\x83\xcf\x76\x6a\x24\x20\x30\xa6\x3e\xad\x16\x9f\xcd\x8a\xde\x8f\x66\x13\xf7\x03\x4c\x70\xee\x52\xb9\xe3\x72\x57\x50\xff\x6b\x7b\x30\x42\xdb\xb6\x9b\xf7\xf7\x39\x97\x47\x6a\x40\x43\x39\x7a\xaf\x3c\xd1\xda\xe4\xd8\x9f\xe1\x34\xfe\xba\xc2\x73\xd0\x2c\x52\xcc\x69\x48\x98\x86\x35\xf1\xd1\xdb\x10\x91\x36\x6c\xf7\xe4\xff\x5f\xd4\x8e\xc0\x15\x02\x12\x23\x05\x8e\x09\xaf\xa5\x29\xb3\x77\x23\xa4\xab\x70\x82\xa3\x2c\xf9\x1a\x90\x25\xce\x20\xfa\xa6\x62\x7b\xfb\xab\x20\x51\x96\x1f\xbf\xd9\xd4\x10\x11\xd0\x38\xee\x2f\xcd\xb7\xb4\xbc\xdc\x2d\x90\x1c\x1a\x3f\xc8\x06\x85\xf4\x80\x56\x5d\x65\xb4\x40\x94\x0c\x44\xdc\x63\x8b\x9d\x68\xb9\x05\x57\x01\x49\xae\x91\x19\xa3\x6e\x49\x73\x08\xa2\x98\x99\x8e\xb4\x09\x38\xc3\xe5\x32\xb7\x2e\xa2\x0b\x22\xc2\x8f\x53\x65\xa9\x04\xdf\xfb\x63\xc0\x6b\x67\xc7\x68\x27\x32\x05\xc9\x96\x8c\x60\x50\x86\x1c\x8d\xd7\x5c\x23\xa3\x5d\x3d\x70\x8a\xbe\x37\xb5\x5a\xb4\x8c\x4e\x36\x23\xf3\x24\xfe\x4d\xc1\xc4\x54\xfb\x13\x78\x8e\x17\x9a\x1c\x71\xb3\xc2\x26\x21\xd1\x17\x69\x6b\xf0\x1c\xc1\x98\xc5\x75\xbd\xf6\x75\x8c\xa6\x7a\x20\xcc\x6f\xdc\x28\x40\xb4\x0d\xe6\x47\x41\x91\x85\x1b\x16\x9d\xc0\x73\x85\x13\x87\x26\xfc\xc2\x45\xfd\xa4\x47\x37\xec\x99\xf4\x34\x51\x18\xf5\x94\xc4\xcc\x71\xdf\xa1\xfa\xb6\xf5\xba\x6f\xda\xce\x7d\xf0\x7c\x8f\x21\x5f\x08\x71\x37\x53\x14\x37\xba\x81\x20\x02\x2c\x49\x6e\x37\x77\xfd\xd5\xe9\x85\x9c\x27\xac\x15\xea\x2b\x2f\x7b\x27\xc0\x0b\x95\x87\xfb\x23\xf1\x25\x3e\x67\xbc\x0d\x05\x3c\xe6\x7b\x58\x78\xdc\xf0\x74\x70\xd6\xc8\xd5\x56\x8e\x7c\x79\xe4\xe9\x34\xd6\x1f\xbc\x88\x05\x58\x5a\x38\xa6\xb9\x89\xc1\xdb\x13\x24\x7e\x60\x30\x15\x0f\xe7\x5c\xbe\x7d\x75\x3c\x9f\xe0\x45\xd2\x75\xf8\xb0\x91\xc8\x0b\xff\x18\x7c\xc8\xd8\x17\xd8\xd8\x43\xd9\x89\xc6\x0e\x04\xfd\x9d\xe1\xff\x64\xb8\xbd\x58\xf8\xc8\xb6\xbe\xbd\xfb\x73\xd8\xb5\x06\x5e\xac\x9c\xd8\xf8\x00\x84\xe7\xbb\x6c\x4e\x02\x2f\xd6\x86\x55\xd5\xc4\xfc\x53\xd0\x23\xf0\x12\x1f\xc2\xd8\x26\x2e\x52\xc8\xeb\x67\x9e\xaa\x97\xd3\x15\x45\x60\xf0\x92\x88\xdb\x57\xb4\x3d\xf2\xb2\xed\x52\xa9\x1e\x90\x74\xde\xde\x61\x12\xd3\x72\x6b\x5e\x56\x13\xe5\xa6\xef\x70\x57\x16\x1f\xf5\x40\x84\x16\x3c\x1e\xba\x98\x27\xfa\x95\xd6\x24\x81\x8f\x52\x12\xf7\x45\xf6\xdb\x70\xce\xe3\x8c\xc4\x33\xe1\x9d\x67\x67\x4c\x8b\xed\xab\x9a\x1f\x60\x2f\x90\xcb\xb5\x6a\x69\x1e\xc0\xe3\x5c\xe1\x3d\x3f\xae\xd6\xb7\xb3\x49\x1d\xfd\xdf\xb1\x70\x99\x13\x09\x5f\x23\x4a\xc3\x64\x9f\x80\x5f\xf8\xbb\x9e\x08\x49\xad\x64\x85\x39\x11\x62\x2a\x9c\x9e\x86\x82\x4b\xc7\x14\xa0\x26\x94\x13\x46\x63\x41\xb6\x2a\x55\x69\x0e\x25\xa1\xf7\x86\x37\x27\x25\x60\x0b\x61\x2a\x0b\x8c\x5c\x42\xfb\xf8\x8a\x11\xeb\xd3\x02\x50\xde\xca\xce\xf9\xdf\x34\x16\x98\x1f\x43\xe0\x06\x66\xb1\xec\x8a\x63\x31\xe8\x11\xb5\x43\x14\xc3\x72\xd4\xf3\xec\x61\x68\xf1\x86\xcf\xa0\x81\x1c\x91\xff\xef\xaf\x07\xfb\x4b\xad\x23\xd9\xa7\x64\x7c\xa6\xa0\xf4\x1b\x9a\x48\xf0\xdd\x84\x38\xd9\x2a\xa8\xa7\x38\xe0\xc1\xf7\x7c\x8d\x7d\x31\xe4\x60\x5d\xec\x9c\xfd\xd9\xef\x7b\xa1\xe3\x39\x36\x3f\x3a\xee\xf4\x04\xdf\x77\x23\x54\xa0\xfe\x2f\xb5\x3b\xcc\x32\xa3\x46\x61\xb7\x38\xdf\x0f\x82\xd0\x94\x0e\x88\xfd\xec\x07\x7c\xb5\xc7\x18\x20\x66\x1f\x9b\xd7\x53\x58\xe9\x75\x9a\x6f\xb0\xab\xdf\x69\x87\xc4\x4a\x87\x03\x9e\xf3\x6b\xa8\x00\xf0\x7d\xa9\x70\xc3\x23\x5d\x0b\x59\x13\xe5\x77\xe7\x07\xf8\x81\x13\xa2\x59\x4b\xad\xd4\x59\xf7\xdb\xc0\x89\x91\x5e\x95\xf2\x79\x23\xa0\x0e\xf8\xa1\x8a\x78\x6c\x2c\x05\xcf\x4d\x0a\xc7\xa4\xf3\xec\xad\xb2\x18\x1c\x62\x68\xb5\x10\x9a\x14\xaa\x5e\x8b\xec\xd5\xdd\xdc\x67\x3c\xc2\x15\x41\xb5\xb7\xe1\x8d\x45\xae\x87\x88\xda\x9b\xc6\x3d\xc0\xae\x9c\x1c\xac\x8e\x1c\xf8\x11\xe3\xd8\xf4\xfd\x61\xbd\x07\xdc\x72\xc7\xa5\x53\xf0\xa3\xc4\x43\x18\xd0\x6c\xb5\x59\x6c\x9e\x9e\xf7\xf3\x87\xd9\x6a\xbd\x9f\xad\xd7\x4f\x2f\x8f\xbb\xf6\x64\x9a\x23\x16\x45\x15\x39\x3c\x9d\x7a\x49\x6c\xf0\x13\xe9\xe1\x02\x21\x62\xab\x6f\xfc\x77\x3f\xd1\xc4\xf5\x9c\x56\x77\x90\xc3\xf6\x2b\xaf\x5f\xa1\x4a\xdb\x13\x71\x87\x47\x12\x53\x61\x55\x5d\x1a\xb2\x82\x53\x06\xab\x1a\x8e\x63\x78\x14\xf8\x3c\x50\x08\x61\x7d\xe5\xb9\xca\x60\xb3\x5d\xcf\x69\xc6\xee\x3e\x2f\x1a\x19\xaf\x2c\xd1\xe9\x25\xdb\x9c\x18\x48\xab\x6e\x97\x42\xe9\x8d\x5e\x16\x0f\x89\x90\x91\x52\x0f\xdf\x67\x6b\xbe\xfb\xab\x3d\x5d\xe4\xa2\x13\xa0\xa7\xa0\xec\x76\x8c\xd4\x4c\x98\x04\x64\x63\xdc\x08\x7f\xd0\x1e\xd5\xda\x37\x3c\xf0\xdb\x13\xe2\x62\x26\xdc\x01\x5f\xf8\x2e\x4e\xe1\x3d\x42\xaf\xb6\x50\x7f\x33\xe3\x44\xc2\x04\xb5\xb5\x18\xd1\xab\x81\xe8\x04\xf8\x02\x88\xdd\x95\xa0\x10\x32\xad\xd2\x22\x5f\xa4\x25\x98\x1c\xb0\x89\xa4\x7d\xe9\x11\x30\xf0\x94\xf1\xaf\xc6\x93\x6e\x61\x7f\xe0\xcb\x04\xc8\x85\xa0\xe6\x7b\xac\xbc\xd8\x43\xdc\xc1\x7e\x6c\x12\xff\xda\xaf\x67\x9b\x1f\xcb\xdd\xea\xf1\xae\x3d\x2e\x84\x2f\xac\xc8\x72\x17\x9f\x4f\xef\x38\xbe\x04\x85\x3b\x0e\x25\x91\x9a\x17\xb7\x7b\xda\x63\x6f\x41\xd7\x57\x0f\xbe\x12\xb1\x17\x0f\xb1\xa0\x45\xd9\xd6\x2f\x87\xe6\x11\x14\x75\x3a\xe6\x75\xb5\xb0\xd2\xe8\xfd\x04\xa3\xaf\x39\x65\x2f\xd2\xea\xe1\x44\x02\x11\x74\x20\x70\x02\x67\x40\x43\x03\xfc\x68\x34\x10\x75\x0d\x25\x5b\x17\x79\xfd\x5a\x75\x83\x25\x5e\x66\x5f\x41\xbd\xa0\xf6\xe6\xc9\x58\x3d\x70\x42\xd2\x9b\x68\xe2\x60\x8f\x93\x4a\xfb\x74\x3f\x15\x04\x4e\x92\xa0\xbb\xd0\x02\x1f\x0c\xa1\xdb\xc5\x54\xe8\x3b\x42\x81\x1b\xc4\x08\x80\x6d\xa9\xbc\xa7\x43\x84\xc0\x0d\x83\x81\xdc\xe9\x4b\x9e\xfe\xe7\x0c\xa3\x2c\x3c\x04\x2e\x73\x19\x02\xbe\xdf\x2a\xc4\x68\xd8\x3f\x47\x4c\x9a\xea\x67\x5a\x36\x73\xae\xdd\x20\x03\xcf\x65\xd2\x6d\x09\x33\x3b\x4e\x17\x92\x18\x19\xde\x84\x27\x1c\xb4\x0a\x58\xcd\x99\x80\xbe\x43\xe0\xe9\x18\xe1\x6b\xf3\xc5\xfc\x8f\xee\x4f\x8c\x94\xb5\x5f\x30\x19\xfc\x47\xff\xf1\x7d\x27\xf6\xcc\x63\xc9\xb7\x3e\xca\x69\xf4\x72\x7d\x41\xd2\xc2\x9c\xfa\x65\x17\x40\x1e\xff\xf4\x76\x14\x34\xb3\x01\x2b\xdc\x05\x2d\x79\x7b\x2b\x41\xac\x03\x31\xc0\xa6\x1c\x26\xd4\xc8\x9b\x73\xb1\xc0\xfc\x24\x74\x62\x04\x2b\x98\xc6\x3f\x4c\x9b\xaf\x67\x7f\x36\xff\x6d\x3d\xde\x80\x85\x01\xe6\xd6\x4f\x94\x6f\xa2\xd8\x6b\xa2\x48\x0d\x01\x63\x3e\x69\x8e\x41\x75\x3e\xc2\x33\xad\xdd\xf6\x34\x52\xe0\x5e\x34\x53\x6a\xfe\x9a\x9e\x76\x70\x3c\xe1\x3a\x3a\x5f\xe2\x29\x21\x60\xa0\xd0\x9b\x47\x9b\xb0\x2b\xb6\x78\xb5\xbe\x85\x08\x22\x57\x05\xa6\xf3\x97\xbe\xaa\xbd\x4e\x14\x2b\x2c\xe8\x9b\xdb\xed\xd3\xa8\x4f\xcf\xbd\xd8\x8f\xd0\x59\x38\xa5\xf2\xed\xe5\x64\x4f\x13\x6b\xd6\x73\x65\x48\x32\xcb\x1c\x4a\x14\x51\x46\x1a\x1d\xe7\x73\x35\xb8\x31\xee\xb3\x30\x6a\x59\x84\xfa\x41\x52\xc0\x05\x31\x2d\xd7\x20\x5f\xf3\x54\xf2\x6c\x94\x1e\x08\x84\xaf\xc2\x64\x08\x66\x9f\x82\xb1\x43\x20\x94\x8b\xde\x91\x69\xb0\x26\xf2\xfe\x75\x9a\xd7\x69\x7e\xb0\x50\x6b\x33\x54\x06\x1c\xfb\x11\xb2\x73\xfe\x55\x9a\xb3\x35\x01\x7b\x8b\x12\x82\x40\x32\xe2\x2c\x3a\x15\x17\xbd\xe4\x66\x84\xf2\x38\x7e\xbc\xc5\xba\x9d\xf8\xca\x27\xe9\xed\x1e\x24\xe7\x5b\x7b\x1a\xa8\x30\x41\x87\x63\xde\xeb\x42\x19\xad\x2f\x15\x4b\x94\x03\x81\x4f\x28\x65\x5a\xc1\xe0\xed\x01\xe7\x6e\xd8\xed\xf0\x83\x63\x3a\xf0\x71\xdb\xe1\x59\x36\x8e\xb3\x03\xad\x1c\x69\x70\x83\x1b\xd2\x8f\x1d\xb9\x42\xa1\xe3\x85\xc8\x8d\x82\x7d\x8e\x13\x12\xe2\x57\xf6\x7e\xfb\xeb\x40\x20\x1a\x66\xd4\x00\xf5\x3d\x17\x1b\x84\x0e\xf8\x98\xce\xad\xd2\x23\x12\x1a\x3c\xf5\xf8\x43\xc7\x95\xee\x89\x7f\xe2\x7e\x65\x13\x42\xd7\xf5\xa9\x6d\x1a\x7d\x44\xfb\xf1\x43\x37\xe1\xe8\x22\xfc\xbb\x48\xf3\x3b\x7e\x04\xf3\x02\xa6\x35\x50\xe3\xf6\x47\x4a\x75\x0a\xa8\x0f\x45\x5d\x17\xcf\xbc\xe4\xc7\xdf\x3d\x91\x2b\x95\x66\x17\x6d\x11\xbd\xae\xb7\xfe\xd6\x10\x7a\x8a\x21\x79\x9d\xfd\x86\xa1\xef\x09\xee\xd9\x66\x37\xf9\x76\x40\xf3\xb6\x3a\xf2\x6b\xe5\xa8\xd0\xf7\x99\xef\x98\x76\x3e\x94\x7f\x9e\xee\xcd\x34\xa3\x03\x97\x90\x4d\xb3\x2c\xa3\x4c\xcf\xc0\x31\x09\xc3\x98\x63\xb6\x65\xb9\xeb\xcb\xca\x40\xc8\x34\xf9\xfe\x06\xeb\x84\x81\x1c\x16\x28\x7a\x5d\x5c\x10\x46\x81\x8b\x50\xee\xc7\xe5\x4b\xab\x23\x05\x61\x0c\x2c\xe4\x3d\x25\x7b\x53\xf7\xea\x41\x4d\x20\x4c\x22\x72\xb4\xe7\xaf\x30\x30\x16\x61\x92\x38\x61\xd0\xd5\xaa\x97\xbb\xfb\x2b\xaf\x81\x33\xed\x46\x9d\x6f\x30\x33\xfb\xf8\xf0\xf1\x78\x94\x0c\xe9\xdc\xbe\xeb\x11\x84\x90\x8b\x04\x93\x47\x37\x0f\x4f\xf3\x1f\xdb\xfd\xf3\x72\xb3\x47\x22\xee\xf6\x74\x32\x11\xee\x88\xdf\xf9\x4a\x3c\x6f\x7e\x21\x1c\x8f\x1b\x0c\xec\xbc\x94\x96\xba\x62\x72\x9b\x0d\x85\xe7\x22\x71\xe3\x91\x7f\xde\x40\x3b\x97\x45\x20\xb1\x9e\x84\x8c\x0a\xbb\xbe\xa6\x13\x84\x82\x39\x48\xd0\x91\x15\xf2\x6d\xa0\xb5\x36\x7a\x2e\x19\x90\x90\xfc\x66\xb3\xd9\xec\x07\xaf\x5b\x4a\x17\x37\x55\x7a\x22\xa3\x09\x89\x14\xa1\x8b\xe2\xa2\x6d\xfc\x6a\x54\x30\xbc\x9a\x72\x9d\xc0\xeb\xc0\x74\x86\x41\xe1\x22\x9f\xfc\x4d\xef\x20\x84\x2a\x26\xbf\x0b\xcb\x7c\xc7\xe2\xcf\xaf\xff\xda\x3b\x56\x9a\x9a\xdc\xaa\xf4\x90\xbf\x9c\x16\x90\xc1\x81\xd7\xa0\xb0\x87\x66\xe2\xe3\x4e\x13\x15\x40\x08\x8e\x83\x10\xcb\xfd\xed\xea\x76\xf7\x97\x3d\x39\x48\x07\x29\x8f\xf6\x3d\x06\xf7\x0d\x62\x89\x47\x3e\x59\xa8\x21\x22\x1a\x27\xdb\xe3\x36\x98\x78\xcc\x49\x24\x96\xa3\x0c\x08\x17\xbd\xda\x6a\x66\x3f\x2a\x73\x7d\x37\x51\x43\x6a\xb4\xae\xd1\xda\x8e\x89\x42\xd7\xbb\xb0\x2b\x8f\x17\xfe\x35\xf3\xdc\x04\xdd\x33\x64\xef\x69\xa6\xd8\x2d\x8c\x62\x19\xe6\x05\x21\xa6\x3d\xd2\xbc\x6e\x5c\xf4\x6c\x18\x2e\x31\x0f\xb4\x30\x01\xd1\xd3\xc9\x74\x7c\x0c\x40\x7a\x83\x89\xca\x7c\x27\x20\xbc\xd9\x97\x68\x91\x92\xf6\x50\x44\xba\xf1\xcf\x65\xba\x92\xc5\xb7\xc5\xa3\x2b\xe7\x4e\x34\x5a\xe1\x3b\x5b\x2a\xe8\x25\x44\x99\x2f\x35\x7e\xb4\xdd\x47\xc1\x73\x55\x7f\x74\x07\x94\x8c\x4d\x56\x65\xaf\xa0\xa5\xa5\xde\x9f\x4b\x6b\xab\x58\x20\x88\x14\xf8\x03\xd2\x5f\x3c\xaf\x41\x3d\x0d\xc5\x51\x81\x05\x12\xa4\xdb\xab\xe1\xd9\x5f\x86\x1e\x51\x89\x3f\xa4\x55\xfd\x58\xd4\x86\xb9\xd3\x02\x2c\x81\x31\x27\xc0\xcc\x23\xaa\x40\xe3\x34\xf8\xe9\xb7\xc7\x00\x5c\x31\x60\xd6\x6d\xec\x86\x71\xec\xcc\x98\x04\x98\x95\x25\xfb\xe7\x99\xe7\x75\x3a\x12\xdf\x6a\x46\xc4\x48\x83\x31\xe7\x65\x91\xf5\xd7\x2f\xe3\x3c\xf6\x9d\x5e\x29\x26\x6d\xbf\x6d\x33\x11\x1e\xe1\x63\x0d\x35\xef\x15\x19\x99\xf0\x18\xc6\x12\x15\xd1\xeb\x19\x8d\xc6\x75\x6f\x40\xe2\x61\xd7\x2e\xf6\x8e\x75\xc4\x9f\x63\xdd\x30\x60\x42\x28\xec\x16\xda\x9b\x7a\x32\x3d\xe1\x2c\xaf\x3e\xc6\x1c\x73\x43\x3c\x12\x30\x29\x85\xdd\x31\x8d\x06\x92\x98\xaa\x6d\x30\xe5\xc6\x20\x6d\xa3\x5d\x81\x3c\xde\xe3\x11\x21\x73\x85\xd9\x0b\x5f\xf2\xaa\xc8\x0c\x1e\x77\x57\xd8\xde\x98\xd1\x4d\x83\x9b\x20\x8a\xa2\x99\x5b\xd3\x4e\x1f\x6b\x5c\x1b\xea\xe0\x3c\x57\x35\xc0\x90\x3b\x09\x18\x44\x09\x26\x46\x91\xc2\x8f\xf2\xc6\xd5\xd8\xf9\x62\xda\x23\x84\x52\x4b\x21\x31\x6d\x98\x99\xf6\x01\xaf\x65\xb5\x2a\x36\xb3\x9d\xdd\x6c\x98\x0e\x42\xd6\xc9\xe0\x63\x71\xf4\x5b\x60\xae\xf1\x63\x22\x47\x28\xdc\xc4\x8e\x69\xde\xac\x66\x62\xea\xec\x61\xbe\x20\x72\x3d\x29\x5d\x6b\x59\x8e\x69\x3e\x2f\x2c\x25\x9a\x1d\x00\x0c\x1d\xd2\xd5\xe2\x4f\xfb\x27\xcf\x09\x11\x87\x7f\x07\xf5\x43\xca\xab\x22\x7f\xd9\x3c\x7c\xef\x18\x45\x9e\x47\xdc\x5d\x6d\x5d\xb7\x4b\x3a\x4f\x27\x6c\x23\x2f\x88\xd1\x9f\xb5\x52\x8e\xdb\xe5\xc3\xc3\xea\xf1\x6e\xff\x32\xef\x5a\xc4\x21\xf2\x12\xc5\x75\x2b\xe8\xba\xa9\x7e\xf1\x43\x87\x77\x86\xc8\x57\x02\x85\x03\x6e\x21\x87\xb2\xe8\xaf\x96\x88\x71\x82\x43\x5a\xcc\xf8\xda\x2a\x63\x7d\x97\xff\x8d\x22\x57\xa0\xa7\xb1\x3d\x4d\x25\xb1\xfb\xb9\xa9\x28\x12\x3e\x32\xb9\xf0\x3c\x3f\xf3\x6c\x2f\xd3\x12\x69\xbb\xd2\xfc\xb0\xef\xeb\xca\x40\x14\xc7\x41\x60\x62\x46\xe4\x7e\xfb\xce\x2d\x89\xe2\x58\xe3\x03\xdf\x3f\x3d\x3c\x2d\x96\xf3\x1f\xdb\xf6\x2c\x3a\xe1\x06\x1e\x3d\xe7\xa5\x1a\xb0\x8e\x9b\x21\x49\x60\x64\xa2\xee\x2c\x7c\x2e\x4a\x12\x4e\x74\x97\x1c\xdb\xd1\x86\x09\xa1\x66\xcd\xb6\x19\xde\x28\x51\x11\x02\xd5\xb9\x52\xcf\x45\x96\xca\xaf\xcd\x39\x33\xdb\x4f\x70\x21\xf9\x33\x3d\x0b\xb8\xc7\x88\xee\x11\xb2\x34\x87\xda\x9a\xec\x88\x27\x44\x6e\xb3\xff\x48\xf3\x7f\xa0\xd4\xf5\x98\x7f\xdd\x0c\x14\x52\x12\x51\xe1\xf9\x7b\xe6\x60\x88\x24\x08\xcc\x00\xed\xee\x57\x9b\xc5\x7e\xb7\x5a\x6e\xfa\x0b\x2a\x52\xcc\xc3\x4e\xd4\xef\xc4\x50\xec\x50\x11\x04\x66\xfb\x3e\xf5\xa9\x9e\xda\x4b\x29\xc9\xf0\x93\x54\xa5\xb4\xa7\x07\xdf\x47\x15\x23\xa2\xd9\xc8\xd5\x25\x6b\x4c\x2f\x0e\x88\x20\xe1\x9a\xba\x40\x3b\x19\x17\xb8\xe2\xf2\x47\x90\x90\x4a\xf1\xba\x50\x08\x0f\xbe\x49\xb3\x1e\xf7\x7e\xf7\xb9\x74\xe8\x62\x33\xda\xfe\x54\x16\x12\xaa\x8a\xd8\x3c\xaf\x9c\x54\x27\xae\x67\xf4\x6a\xb6\x96\xb9\x78\x58\x26\x8e\x34\x77\xd0\x2f\xd8\xc0\xd7\x23\xb2\x61\x99\x67\x8d\x1d\x1e\x87\xca\x94\x79\xf7\xff\x6e\x79\x31\x20\x76\xa4\x44\x5c\x9e\xb4\x1c\x7c\xdd\xce\x12\x3b\x8a\xa0\xe1\xff\x7c\x79\xda\xbc\xac\xdb\xbf\x42\x14\x99\xde\xc8\xf4\x78\x3e\xfe\x82\x94\xaa\xeb\xf6\xb8\x1b\x25\x08\x51\xc0\xbe\x70\x95\x0d\xed\x79\xec\x4a\xa5\x4c\x89\x74\x55\xc3\xd1\x46\x93\xdf\xd5\x3d\x8d\x9d\x8c\x3d\xce\xb1\xab\xb9\xf1\x30\xbf\x65\xb2\x80\xd8\x77\x25\x42\xfd\xc8\x14\xef\x05\xe1\x77\xf6\x68\x5a\xff\x18\x0d\x0d\xc2\xa8\xd5\xa8\xaf\x6e\x8b\xf2\x02\x74\x11\xfb\x9a\x23\x7e\x04\x65\xcf\x54\xca\x73\xc3\x5f\x7d\xd1\x0f\x08\x71\xc0\x89\xba\xc5\xf0\xa4\xa0\x63\x7e\xad\x50\x1a\x07\x82\xd4\x56\x7f\x2e\xb7\xbb\xc6\x6a\x7a\xfb\x59\xbf\x1e\x11\x07\x10\x63\x46\x60\x55\x57\x73\xec\x53\xba\x2f\x8e\x83\x5c\x43\x1c\xba\x6e\xdb\xd9\x0e\x07\xb7\xfd\xb3\x52\xa1\xa9\xc0\xde\x3d\x6f\xd7\xfc\xb3\x95\x40\x85\x98\x39\x5a\x7a\x56\x7c\x3b\xad\xe0\xb2\xb3\x0a\x62\x16\x49\x34\x38\x96\x67\x0b\x15\x99\x2c\xa9\x47\x7b\x22\x29\xdc\x4e\x5f\xe6\x0e\xea\x59\x55\xc1\x74\x7b\x12\xc4\x51\x48\xd9\x9d\x4d\xbe\x26\x68\xd1\x06\xfe\x63\x4f\x14\x89\x80\xb9\x7d\xb0\xc9\x6d\x59\xe4\xa8\x8d\x7d\x5b\x94\xeb\xae\xb6\x3f\xa0\x0b\xb7\xbf\x05\x85\xc8\x16\xbb\x01\x3d\xcf\x36\xbb\xd5\x7c\xf5\x6c\x98\x5c\x07\xaf\x33\xd2\x01\x96\x05\xf7\xcd\x26\xbf\x29\x32\xa0\xde\x99\x89\xd4\x42\x1c\xbb\x89\x6b\x4a\xde\x3f\x79\x99\xf2\xdc\x60\xb0\xa7\x1f\x2e\x09\x3c\xc7\x28\x65\x3d\xa4\x93\xac\xef\x10\x27\x31\x35\x05\x59\x4c\xf3\x0e\x8e\xa7\xa2\xe4\xd9\x4b\x7e\xf1\xf6\xb9\x1f\x70\x93\x32\xdc\x15\x93\x5d\x95\x10\x73\xe9\x63\x95\x09\x0b\xec\x2b\x05\xe8\x84\x5a\x59\xac\x3f\xda\x41\x21\xee\x83\xb4\x59\x52\xfb\xd3\xf7\xc9\xaf\x58\x3a\x1c\x67\x07\xf5\xa5\x35\x3e\xaf\x19\x36\x3d\x3a\x24\xbe\xf8\xc6\x25\x3d\x3e\x97\xc5\x71\xb0\x7b\xc7\x52\xe8\x48\x21\xe7\x0e\xd4\x50\x1e\xd3\x1c\x0c\x27\xcf\xf0\x2c\xc0\x98\x20\xf6\x87\x0f\x9b\x13\x1c\xbe\x3b\x48\x04\x0e\xf8\x09\xf9\xb9\x42\xe5\x11\x73\x85\xc4\x61\x2e\x7a\xfa\xfc\xac\xd2\x1a\xdb\x4f\x1a\x5f\xfc\x7c\x09\xa7\xb9\xb8\xf7\xc4\x61\x0c\x51\xa7\x3d\x6d\x57\xd6\x9e\x96\x73\xc4\x90\xca\x73\x6b\x28\x13\xd7\x77\x71\x4a\xd4\x9f\x3b\x5e\xbd\xad\x47\x64\x50\x90\xb8\xb1\xeb\xd9\x6c\xeb\x91\x67\xd9\x9c\x9f\x5a\x48\x53\x9f\x45\xfb\x1a\xda\x32\xf1\xb8\x50\x7d\x38\x9a\x85\x5c\xb5\x0f\xeb\x7b\x89\xa1\x56\xc5\xca\xce\x72\x24\x85\x01\x89\x1f\x50\xeb\x25\x0a\xee\x51\x47\xca\x7d\x2b\x2f\x00\x89\x9f\x78\x42\xb4\x70\x99\xe5\xe1\xd0\x9e\x39\x08\x7d\x69\x48\x82\x6a\x78\xd2\x5d\xe5\x2d\x09\xb8\xc6\x6e\xb0\xe5\xe2\xb1\xfd\x93\x74\x70\xdb\x6c\x53\x34\x13\x4c\xfb\x90\x84\x0e\x89\x01\x1d\xf9\xe7\xee\xb5\x84\xea\xb5\x65\xa4\x83\x84\xf9\x1c\xd7\x42\x9d\x1e\x01\x85\xc9\x5a\x84\xc8\xe8\x24\x51\xd4\xb6\x17\xe1\x27\xb2\x27\x88\x64\x88\x2b\x19\xea\xd7\x5d\xf1\x50\xbc\xc3\xd7\xa6\x83\xcd\x26\x91\x76\x85\xf9\x12\x56\xa8\x72\xf7\x39\xab\x86\xde\xe0\xc0\x11\x49\xe2\x20\x42\xfd\xb5\x13\x2f\xeb\x1c\xca\x8e\xde\xd0\x1e\x67\xc4\x86\x96\x56\xd5\x19\xca\xc7\x0e\x5b\x98\xc4\x4c\xa0\xa9\xb5\xf9\x58\xa3\x99\x7a\x0b\x8d\xf3\xac\xd3\xf2\x78\x45\x04\x3e\xb6\xbf\xe7\x81\x61\x7f\x04\x4c\x38\xcf\x72\xd5\x63\xae\x9e\xf4\xba\x93\xc4\x4f\x92\xa0\xed\xa2\x7b\xc9\x75\x51\xbe\x8d\x51\x26\x49\x12\x6a\x65\xbc\x05\x6c\x69\x4c\xff\x0b\x33\xcb\xf1\x39\x9a\x37\x89\xa2\x92\x35\xc5\xa3\x35\x96\xed\xda\xb9\xc1\x1d\x82\x4c\xa7\x15\xc6\xd1\xab\xe7\xdb\x2d\x16\xad\x5f\x9b\x99\xd5\x73\x90\x12\xee\x13\x73\xf7\xfa\x69\xd3\xcd\x1f\x11\x04\xae\xc5\x02\x9d\xf8\x47\xde\xed\x36\x9d\x44\xc2\xf0\x66\x44\xe8\x60\x22\xa9\xf1\x60\x61\xdc\x82\x91\x08\x21\x10\x70\x68\x6b\x47\x58\x36\xac\x5e\xd3\x93\x29\x8c\x5f\xe2\x91\x13\x01\x09\x26\x28\xaa\xf4\x90\xb7\xb1\xe1\xa4\x17\x99\x48\xd7\x0f\x0d\x02\xf5\xf3\xcb\x24\x34\xed\x93\xc8\x10\x22\x02\x07\x6c\x1b\x1b\xb6\xfc\xac\x21\xaf\xc6\xcd\xea\x90\xc8\xc4\xe5\x71\x0b\x17\x29\x6b\x93\x91\x1e\x4e\x37\xd0\x02\xd1\xaa\xc4\xf9\xbd\x2b\x7e\x01\xbc\x4d\xef\x2d\x89\x8e\x99\xec\xa8\x0a\x9d\x3f\x26\x5c\x53\xee\x28\xca\xb2\xd8\x97\x72\x5b\x16\xc7\x6f\xeb\x69\xdc\xd5\x09\xb7\x74\xd8\xa7\xb4\x2a\x14\x0c\xb0\x59\xdc\xf3\x05\x22\x00\x6a\xa8\xda\x4a\x43\x73\xd6\x45\x01\xd5\x63\x51\xcf\x4c\x6a\x13\xff\xde\xaa\x8c\xec\x5e\x79\x7d\xcf\x9b\xe3\x37\x00\xb9\xe5\xd4\xb5\xa7\x6c\x66\x87\x6f\x79\x63\x0d\xd7\x7f\xfa\xdf\x6b\x08\x54\xee\x73\x85\x8e\x94\xc6\x92\xd1\x73\x09\x2b\x2b\xd3\x02\xdc\xd7\x94\x24\x3e\x40\x46\xfd\x6a\xbd\x66\xe2\xce\xb9\xe6\x41\x98\xe0\x5c\xa1\xc4\xc8\x6b\x59\xe4\xd0\x9f\xb0\x9c\x39\x80\xb9\x43\x5d\x9c\xcb\xfa\xb5\xf9\x06\x94\x92\xb5\x87\x63\x85\x65\xca\x07\xfe\xdf\xaf\x79\xa1\x88\x19\xaa\x3d\xa8\x18\xba\xb1\x5c\x60\x2a\x66\xb0\x49\x9a\x21\x11\x38\x28\x4a\xb6\x83\xaa\x0e\x87\xb3\x84\xf3\x48\xa0\xc2\xc6\x73\x51\x64\x5b\x38\x94\x70\xa0\xa0\x7f\x0c\xa8\xb6\xc3\x15\x95\xd5\xf7\xd4\x67\x89\x94\x24\x25\xe4\xc3\x59\xc5\xa5\xcf\x71\xbb\x55\xe9\xfb\x9c\x57\xaf\xfd\xdb\x95\xa1\x89\x20\xa1\x1e\x6c\xa0\x5c\x86\xa4\x58\x41\x7c\x96\x43\x3c\x80\xe7\xd8\x41\x9a\xf0\x00\x24\x9a\x35\x0d\x97\xe6\xca\x8b\xb1\xbd\xfb\xe6\x66\x37\xb1\x0a\xb9\x52\x1c\xed\x24\xc9\xde\xef\xeb\x62\x8f\x06\x64\x78\x0e\x70\x1c\xeb\x76\xad\xf9\x27\x3e\xe6\xc0\xef\x6a\x87\x29\x84\x59\x6e\x69\x23\xbc\x82\xe7\xe5\x3a\xa2\xbd\x4b\x18\x4a\xcd\xe7\xa2\xaa\x9b\x59\x34\xe9\x8c\x73\x1d\x13\x9f\x8c\x2c\x72\x99\x9d\x15\xec\x8a\x33\xbe\x8b\x6b\x5e\x1f\xd7\x22\xd1\xbc\x2d\xd9\x53\xd6\x68\xa0\x30\x37\x34\x2e\x5c\x4b\x8f\x93\xca\x55\x55\xf3\x2c\x1b\x12\x83\xd2\x18\xe1\xb8\x2e\xe5\xf2\x28\x37\x87\xb4\xe7\x43\xec\x85\x70\x44\x10\x9a\xcb\xde\x65\x85\xe0\x59\xb5\xed\xc9\xd8\x98\x41\x6e\x40\xbd\xa6\x69\x75\x5f\x94\x15\xac\xf2\x6d\x7d\x56\xe3\x31\x00\x58\xe5\x9d\xf3\x5c\x7d\x3d\xf0\x31\xb6\x5b\x78\x61\x88\xc9\x3c\x95\xbe\x9f\x78\x6a\xd7\xb1\xf0\xa4\x87\x1b\x7b\xc5\x35\x60\x35\x6b\xf7\x3b\xab\x73\xc1\xcf\xde\xad\x41\xe1\x47\x01\x63\x2d\xff\x47\xeb\x30\x81\xfa\x4e\xee\x08\x84\xcf\x23\xcb\x1a\x74\x03\xf5\x0f\xf8\x1a\x3d\x5b\x10\x00\x5a\x88\xd5\xfc\x09\xd1\x82\x5f\x27\xbb\x61\x8b\x80\x47\xc8\xf1\x7e\x84\xf2\x2d\x83\x4d\xd1\xb6\x9f\x88\xd0\x0d\xd0\x5d\x4e\xab\x66\x9b\xa0\xbe\x9c\x89\xe8\x48\x84\x2e\xb3\xa0\xf7\xbb\xc7\xcd\xf7\x89\x09\x11\x32\xae\x82\x8e\x39\xc0\xe6\x67\xef\x7a\xba\x56\x83\x5c\xab\x08\x25\xc3\x16\x79\x34\xbd\xaf\x65\xf1\x51\xd1\xd6\xf6\xc0\x89\x51\xfd\x1d\xb1\x48\xcb\x66\xd3\x97\x60\xff\x67\x3b\x3b\x98\xab\xdc\xd0\x66\x0a\xb1\xc0\x66\x4a\xff\xc3\xbb\x62\x91\xc6\xcc\x4a\x5a\x91\x4c\xb1\xf9\x73\xe4\xfb\x98\x8e\xb0\x55\x87\xa1\x4a\xcc\x70\xfe\x8b\x24\xf4\x98\x49\x30\xde\x14\x69\x06\x65\xd5\xcb\xfc\x8b\xc6\xfd\xc0\xb2\x60\x71\x9f\xfe\xbb\xe7\xf3\x7f\x8f\x68\x16\x09\x4b\x62\xb3\x7d\xae\xa1\x1e\x56\x3d\x44\x12\x93\xf6\xe6\x6b\x51\x9d\xf6\x3d\x71\x78\x10\x09\x0f\xd1\x70\xcc\x5b\x56\x2e\xdb\x9b\x74\xe5\x32\x3a\xc6\x0e\xc1\xc6\x15\x9e\x55\xb7\xc5\x19\x9b\x43\xcd\x41\xee\x4a\xcc\x25\x19\xe1\xe3\xb1\x02\x19\x08\x9e\x48\x84\xa9\x66\xe9\x7f\xce\xa9\x6d\x47\xbc\xf2\x96\xb8\x00\xee\x74\xcd\x94\x18\x72\xdb\x0b\x09\xee\x21\x1e\xe8\x9c\xa7\x75\xf5\x0c\xe5\xb2\x7e\x9d\x8d\x27\x9b\xe0\x12\x93\xca\xa9\x2c\x82\x56\xdb\x0f\x84\x90\xa1\x95\xf4\x98\x65\xd9\xa6\x38\x77\xdd\x3a\x42\x06\x5e\x62\x31\xee\xf5\x2b\x94\x1d\x5c\x52\xc8\x88\x21\xdd\xce\xec\xfd\x99\xea\x5c\xf6\x80\x72\xc1\xeb\x37\x72\x5c\x10\x05\x80\x50\xcc\xf7\x0c\x3e\x81\x18\x93\xaf\xac\x4d\x95\x78\x58\x4d\xdc\x3d\xed\x66\x0f\x97\x1d\xae\x02\xdc\x00\x37\xb3\xc6\xfb\x2f\xce\xb5\x91\x26\xb6\x07\x65\x82\xcc\x22\x1d\x5a\x83\xda\x9e\xda\xe3\x00\xb8\x15\xd9\x66\x83\x75\x9a\x5b\x6a\xf7\x7f\xd6\x63\x2b\xa0\xb9\x87\x1d\x37\xd8\xf0\x69\xfa\xf9\x47\x23\x80\x73\x4b\xd5\x31\xbf\x27\xc4\xbe\xef\x0f\x10\xfb\xd2\x71\x12\xdc\x6d\xec\x2d\xe1\x3b\x1d\xce\x4c\xe9\x68\xce\x7b\x2a\x4d\xbc\xaa\x4e\x45\x8b\x8a\x93\x6e\x42\x44\x52\x69\x0d\xc7\xdd\x48\x5a\xde\x0c\xf1\x5c\x40\x2f\xfb\xe9\xdc\xdb\xb6\xa5\x97\x48\xc4\xd9\x34\x66\xac\xcd\xc3\xfc\xe3\x69\xf5\xb8\xa3\xd7\xda\x8e\x93\x9e\x91\x2f\xb4\x6c\x22\xa3\xd3\x07\x0e\x97\x24\x19\xd6\x93\xff\x05\x19\x04\x09\xc6\x08\x6b\x50\xf0\xd9\xe9\x7e\xda\xa3\x91\x83\x0e\x3d\xaf\x1a\xd7\x19\x17\x09\x7a\x29\xa6\x21\x78\x78\x05\x26\x02\x5b\x22\x7a\xc9\x89\xa9\xcf\x68\xcd\xa4\x45\xde\xeb\xf5\xfa\x16\xb1\x2f\x19\x70\xac\x8e\xdd\x17\xca\xd6\x01\x65\xec\x09\xac\x6d\x18\xaa\x9c\x27\xbd\x1a\x17\xe2\x65\xcc\xa8\x28\xde\x38\x7f\xc0\xf3\x5d\xf1\xd2\x8c\xe9\x5c\x41\x99\x38\xe0\x13\x48\x41\x96\xd0\xec\xe9\xc8\xcf\x3a\x2b\xe1\x42\x4a\xd5\xfe\xc0\xf7\x3c\xd5\xa2\xa3\xb6\x2d\x9a\x72\x34\xca\x74\x0d\x18\xf6\x2a\x29\xa1\x1a\x2b\x60\x81\x4c\x64\x88\x14\x08\xeb\xaf\xdb\x74\xfe\xca\xbb\xaf\xcb\x43\x17\x89\x97\x21\xc3\x5b\xfa\x0d\x6c\x45\x0a\x47\xb1\xa0\x5f\x82\x1e\xba\x7f\x52\x78\x0e\x32\x5b\xe9\xb2\x38\xde\xc3\xe7\xfc\x95\x97\x7d\xc0\x97\x14\x09\xb1\xdb\x7e\x41\xd5\xcb\x0a\x48\xa1\x18\x26\x21\x11\xae\x80\x12\x18\x36\x48\x6a\x6f\x54\xc6\x11\xbe\xde\xc3\x99\x97\x0a\x35\xd7\xdf\x5b\x50\x96\x94\x3c\x40\x92\xed\xbd\xc1\x3b\x3d\xa6\xf9\xbf\x47\x55\x3f\xa9\x9c\x08\x89\xb2\x69\x0d\x0e\x37\x14\x16\x8c\x9e\x53\x45\x2d\xe0\x1e\xd1\x5f\xc4\xef\xd6\xa5\x0f\xa4\x82\xc0\x01\x9b\xf4\xd4\xc3\xc6\xcd\xa1\x2d\x92\xe0\x44\xd2\xe4\xa2\xb1\x65\x3c\x2d\x17\x65\x71\x6a\x3b\xef\xda\x77\xa7\x7d\x07\x33\x27\xc8\x61\xfa\x58\xd4\x8f\xe7\x6c\x94\xb8\x96\x9a\x31\x6a\xaa\x25\x21\xed\xfe\x4a\x51\x8e\x17\x2b\x63\x1a\xef\x52\x5d\x4f\xa5\x14\x95\x9b\x10\xdf\x89\x94\x24\xfd\xff\x72\x1a\x33\x1c\xdb\x81\x3c\xd2\xcc\x42\x8f\x4d\x27\xe4\xee\x61\xf8\x46\x95\x0b\xa1\x47\x39\x53\xe2\x1f\xf9\x95\xe6\x6b\x5e\x97\x29\x55\x64\xdd\x76\x98\xa6\x3d\x9a\x38\x43\xd1\x5d\xeb\x03\x17\xda\x54\x94\x19\xee\x39\x80\x7c\x32\x7f\xa5\xaf\xdc\x3e\x9b\x67\xf4\xbc\xf6\xad\xb4\xe4\xe8\x7e\xbd\xd0\x93\x08\xe7\x2c\xc8\x97\xf8\x76\x16\xab\xc0\x13\x86\x06\xbc\xc8\xb5\xe5\xf9\x04\x15\x04\xbe\x63\x10\x85\x2b\x49\x30\x2e\xa8\xa1\xfc\x7b\x92\xf5\xa0\x82\x90\xd8\x02\x4f\x5d\xa2\xad\xdf\x86\xb2\xca\x97\xf5\xeb\xe8\xb6\x03\xee\xe1\xb3\x52\x12\x85\x98\x47\xa6\xbe\x5b\x20\x18\x42\x18\x49\x7a\xfc\xf6\x9c\x2b\xec\x11\x1a\x7a\xe5\x2a\x74\x5c\xec\xcf\xdb\x16\x59\xaa\xb6\x35\x3f\x9e\x36\x56\x02\x61\x34\x50\x72\x2f\x31\x72\xb5\xa5\xba\x4d\x2d\x7f\xf1\xb7\xf5\x0c\xc5\x9c\x40\xd2\xf6\x2c\x8b\x5c\x55\x0f\x69\x0b\x76\x50\x91\x4f\x68\x36\x44\x7c\x43\xf9\xcc\xe5\xdb\x9c\x97\xaa\x0f\xfb\x52\x49\x60\x55\xf5\xb3\xb7\x71\x0a\xa4\xfd\xf8\x49\x1c\x62\x8a\xfe\x95\x57\xdb\x22\x3f\xfc\x2a\xd3\x1a\x4a\x54\xa0\x1b\x45\x06\x4a\x84\x3e\x49\x36\xc2\x29\x83\x26\x3c\xff\xae\x1a\xab\xa4\x24\xde\x5a\x69\x83\xdb\x31\x0d\x82\x92\xa0\x10\xec\x72\xe2\x48\x0d\xba\xfd\x48\x07\x20\x39\x33\x0a\xb4\xf4\x18\x85\xeb\x8d\xb7\x66\x65\x1e\x47\xef\x57\xc7\x8e\x69\x69\x43\x3d\x6f\x6c\x3e\xaf\x2e\x04\xcf\x01\x1c\xd7\x0b\x9c\x6e\xbf\xfa\x07\x57\xb0\xad\x81\x67\x69\x7e\xf8\xbb\xbb\x15\x38\x61\x64\xc8\xd5\x6c\x7d\xfa\xaa\xe2\x15\x34\x96\xc8\x69\xd5\x79\x49\x10\xee\x62\x00\xd6\xd2\x67\x9f\x29\xcc\x9b\xe5\x3a\xc5\x86\x08\xe0\xba\x09\x2e\x37\x05\xc7\xf4\x0a\x93\x39\x80\x0b\x0c\x59\x44\xea\x62\xf3\xf0\x8c\x37\x45\x0d\xb2\xdd\x96\x08\xbe\xd4\x71\xd7\xf0\x83\x93\xd0\xc0\x46\x48\x69\xbc\x71\xaa\x3a\x99\xb0\xc1\xa7\x80\xc0\x49\x9c\xd8\x92\xca\xdf\x5e\xf2\x11\x98\x61\x61\xe8\xe2\x13\xb5\xcc\xa3\x48\x39\xfa\xd7\xfe\x6e\xf3\xf4\x62\xa8\xf3\x00\x42\xe5\x21\x0f\x1a\x56\x26\xb5\xd5\x4c\x31\x2a\x01\xd6\xe6\x03\x8b\xa9\x97\xb7\x6c\xfc\x67\xa4\xe8\x5e\x40\xe3\x5c\x8c\x36\x93\x71\x9d\x04\x98\x26\x21\x3e\x5a\xe5\x65\x2f\x10\x04\xa6\xa9\x19\xae\xb1\xf9\x18\xb7\x53\xf1\x69\x57\xec\x80\x1f\x27\x73\xb6\x97\x1f\x35\x4a\x14\x74\xe2\xbf\xf6\xcc\x31\x4b\xa2\x1e\x56\xe0\x7e\xf7\x30\xbf\x6a\xc7\xc6\x72\xb1\x3d\x33\x70\x05\x09\x07\xb1\x52\x18\x7e\xd8\x49\xd7\x79\x66\xfd\x4d\x09\x12\x8f\x11\xbd\xb4\xf1\x8f\x89\x31\x7d\xb8\xa8\x20\x09\x7c\x94\x9f\xdb\x80\x4c\xe1\x1d\x54\xcf\x4e\x8e\x1e\x95\xbb\x60\xdb\xe1\x5b\x57\xb9\x8d\x1c\x41\x28\xc0\x98\x78\x4f\x60\xf3\x37\x18\x35\x68\x0e\xcf\x25\x80\x60\x9b\x1f\x90\x62\x40\xa4\x06\x15\x64\x90\x42\x46\xba\xa5\x0b\x5a\xc3\x82\x17\x03\x97\x1c\xa4\x0c\x98\xd5\x85\xb5\xf8\x21\x4b\x93\x60\x4f\xa2\x1c\xa7\x47\xe6\xbf\x4e\x65\x59\xac\x0b\x75\xce\xc6\x4d\xae\xd7\x76\x96\x2b\x5f\x1c\x0c\x07\x19\x62\x59\x4c\x10\x45\xb7\xf0\x57\xe3\xaf\xcc\x2c\xb9\xa1\x19\xae\x5d\x5f\x76\x13\x64\x56\x76\x88\x88\xbf\x21\x49\x3a\xfc\x54\xda\x57\xd8\xdf\x80\x54\x6e\xa3\xd3\xd0\x10\xed\xb8\x31\x61\xc5\xce\xa2\x85\xd4\x2d\xa0\xe6\x69\x36\x32\x7f\xda\xe1\x9e\xe9\x6f\x2a\xf9\xe9\x35\x3d\x8e\x8c\xad\x76\x03\x07\x2c\x36\xe2\x77\x6c\x12\xe6\x27\x9e\x27\x7c\xd3\x71\xbc\xfc\x3c\x11\x13\xc0\x95\xd4\x9c\xf6\x44\xe8\x62\xb8\xf3\xeb\x71\xb9\xd9\xef\x66\x3f\x96\xfb\xed\xfd\x6c\x63\x91\x1f\xda\x53\xd4\x24\xdf\xbc\xb6\x1c\xb2\x1d\x85\x8a\xed\x51\x50\x38\xd9\x20\x57\x4d\x64\x54\xf3\x03\xd8\xd2\xb7\xf6\x83\x10\xdd\xb4\xc5\xec\x74\xda\xbe\x7d\xb5\x7f\x0e\x3d\x37\xb0\x32\x57\x28\x71\x7f\x49\xbf\xa0\x7d\x1e\x81\x29\xb0\x19\xdf\xac\xeb\x5e\x9c\x48\x04\x69\x9f\x4b\xd9\xea\x6a\x76\xec\x93\xa3\x67\x0d\x92\x00\xa3\xbf\x2e\xa4\xad\x48\xde\xd3\x1e\x57\x89\xe7\xb5\xd2\xf4\x6b\x3b\x75\x74\x28\xa3\xd8\x60\x9f\x9a\xe7\x1f\xb6\x95\x6a\xa6\x18\xca\x23\x62\x1a\xe4\x17\x88\x2a\xad\x47\x69\x0a\x1d\x39\x21\xf6\xc3\x6d\x7f\x1a\xd0\x6d\x07\x18\xd3\x51\x08\x48\x17\xba\xdd\xcd\xee\x96\x6d\x69\xbf\x8f\xbe\xd1\x11\x73\x31\x9e\x10\xe7\xaf\x5d\x9a\x59\xb8\x49\xcf\x35\xd2\x51\xe4\x22\x56\xfa\xb5\x50\xd9\xed\xb8\x71\x53\xc7\x51\xa8\xa9\xdf\xe0\xdd\x75\x26\x18\x12\x41\xc7\xd2\xc3\x92\xe9\xed\x39\x47\x7a\xec\xc6\xae\xf7\x4d\x98\x4e\x44\x80\x29\xd3\x65\x7e\x78\x3b\x57\x3b\x90\xaf\x56\x42\xa8\x1b\x11\xf2\x68\x28\xce\xda\xdb\xbe\x87\x37\xc4\x7d\x22\x94\xa3\xe5\x3a\x09\x0e\xb3\x23\xa3\x04\x1f\xdd\x60\x42\x50\x40\xc4\x5e\x91\x73\x62\x08\xac\xa1\xa2\x8a\xb3\xe5\x5c\xb1\xc7\x55\x88\x48\xe1\xe5\xb1\x31\x5e\x00\x5b\x28\xdf\x47\x1f\x46\xf8\xda\x09\x86\x60\xe2\xad\xec\x4a\x6e\x5a\x44\x91\xec\xea\x7b\x8d\xa7\x74\x6d\x1d\x09\x41\x8d\x5e\x5c\xa9\x35\x70\xd4\xd2\x2d\xe6\xc5\xbb\x06\x3d\xdd\xcb\xaf\x65\xe8\x20\x68\x63\x56\x5d\x66\xe4\x86\x37\x29\x45\x88\xd9\xf3\x5d\xab\x8b\x61\xa5\x62\x2f\x95\x2f\x40\x2b\x27\x56\x2d\xc4\xef\x99\x53\x87\x4f\xd5\x07\x31\x6a\x15\x32\xa4\x15\x97\x36\xdf\x3c\xf4\xdc\x34\x88\x00\xe1\xa9\x0f\xc5\xe1\x3b\x18\xb2\x19\xad\x05\xf5\x23\x40\x96\x1e\x52\x91\xc1\xae\xf9\x1c\xb9\x42\x86\x9a\xa9\xde\x75\xfc\x99\x76\x1c\x2f\xc4\xc2\xd6\x7b\x0a\x1f\x3b\x73\xaf\xc6\xc9\xd0\x8e\x13\x78\x98\x45\xb4\xab\x61\xfe\xb4\x5e\xaf\xb6\xdb\xd5\xd3\x63\x3b\x42\x90\x8c\xec\x76\x39\xff\x9d\x98\xa1\x76\x5c\xe6\x40\x64\x02\xf2\x27\x24\x4f\xc2\xac\xbe\x4c\x7b\x9f\xb3\xff\xce\xb5\xe3\x07\x1a\x2b\x52\xcf\x50\xea\xa2\x3c\x36\xbe\x68\x91\xd7\xaf\xd9\x97\x69\x99\xfa\x63\xf8\x30\x7e\x4c\xd0\x6b\xe2\xe9\xed\x05\xfb\xda\x09\x23\x1f\x71\x31\x8b\x2d\xdd\x67\xdf\x83\x68\x8e\x26\xd8\x0a\xb4\x4f\xab\x9b\x12\x40\xa5\xf9\x01\x65\x76\xeb\xb1\xc2\x5a\x77\xad\x28\xa0\x86\xd9\x73\x5e\x41\xfd\x2b\xcd\x54\x13\x64\x5c\xce\x04\xed\x44\xb1\x40\x14\xfc\x3d\xaf\x5e\xef\x28\x3a\xb5\x9b\xb2\x76\xe2\x88\xdb\x2e\x54\x22\x48\xb0\x19\x4d\xed\xc4\x9c\x74\x58\x96\x9f\x75\xf3\x05\xed\x9f\x93\x38\x01\xd9\x75\x8d\xb8\xde\xd1\x1e\xe1\x10\xba\xfe\x50\x6a\xb5\x26\xae\x3f\xb4\xb2\xc2\xec\xcb\xc6\xb5\x98\xca\x0f\x68\x47\x38\x1e\xda\xde\xdc\x2c\x43\xe2\x73\xb3\x07\xdd\x10\x23\xab\x66\xa5\xdf\x35\x61\x42\x65\x9b\x3c\xb4\x23\x42\x29\xc2\x5e\xbe\xb4\x15\xdb\xba\x50\x84\x1e\xbd\x47\x91\x28\x69\xb0\xe3\xb3\xb2\xe4\x5f\x9e\x3d\xa3\xf4\x64\x64\xb1\xd3\xc4\xa2\xd3\xcb\x50\x68\x47\x86\x09\x4e\xa6\xc5\x6a\xdb\x0a\xf5\xed\x57\x8f\x3f\x97\xdb\x5d\x4b\xdd\xaf\x1d\x99\xf8\x64\xe2\xa0\xaa\xe7\x69\xfd\xb5\xcd\xf9\xa9\x7a\x2d\xae\xad\x06\x29\x39\xfa\x48\x8a\xd7\x7c\x8d\xf5\x90\x3f\x2e\x0a\x36\xa3\x9f\x28\x8f\xdc\xaa\x03\x90\xaa\xf5\x0d\xcf\xdf\xaa\xd1\x14\x50\x71\x82\x6e\x08\x65\xe3\x6f\xa1\xd7\xc7\x35\x1a\x28\x38\x6e\xb8\x6b\xfe\xb9\x9a\x3f\x11\x90\xac\x4f\x37\xa8\x1d\x64\xf9\xb6\x5c\xfe\xf2\x15\x0d\xbc\x37\xba\x1c\x78\x3e\x6e\x34\xd6\xd1\x5d\xe6\xaa\xeb\x7c\xd6\x0e\xf8\x9c\x9c\xc5\x41\x21\x64\x38\x11\x5c\xc7\x8d\xec\x67\xf9\xc0\xc2\x5c\x13\xa5\xd9\x69\xeb\x3a\x89\x22\x02\x4c\x5d\x43\xf9\xeb\xd5\xd6\xa8\xfe\x18\x9e\xc3\xf5\x35\xe2\x33\x1f\x9e\xe6\x3f\xf6\xdb\xc6\xa9\xb1\xbf\xf7\x84\x44\x54\xee\x43\xfa\x9f\x33\x7c\xf6\x89\xba\xcc\x00\xdf\x0f\xb1\x12\x50\x9d\x32\xca\x31\x8c\x5e\xa9\xeb\x0b\x86\x86\x3e\xad\x50\xbe\xda\x06\x46\xda\x0d\x62\x8d\x51\x4c\xf5\x5a\x7c\xac\x07\x91\xa5\x9d\x3a\x6e\xc8\x34\xe6\x71\x0d\xfb\xe6\x01\xf1\x1d\xc6\x0b\x9a\x9e\x18\x6e\x18\x53\x03\x73\x05\xf5\xfd\x8f\x7b\x59\xa4\xf9\x77\xf5\x38\xed\xb2\x28\x44\x66\xcc\xed\xab\x15\x21\xf9\x2d\xa7\x91\x76\x23\xc6\xb0\x49\x82\x2b\x35\x9f\x5d\x84\xda\x7f\xc3\x3f\x1e\x9e\x8d\x53\x25\x91\x90\x66\xcd\xfb\x95\xaf\x80\xfe\xfe\xf0\x56\x63\x16\xc5\xf6\x85\x99\xda\xc2\x68\x00\x4f\xbc\x4e\x0c\xe9\x3c\xea\xed\xd0\x6e\xe2\xd1\x54\x39\x95\x70\xe2\x25\x6c\x8a\xec\x82\xe4\x7d\xf4\x36\x93\x00\x30\xd7\x90\x22\x06\x6f\x51\xe4\xed\x77\xe7\x1e\xa0\x5c\xdd\x05\x27\x7a\x07\xd6\xd0\x2e\xf7\xa9\xf0\xf2\xd4\xc1\xba\x4c\x02\x78\x78\x19\x1e\xbb\x58\xe4\xff\x80\x74\x57\xdc\xe4\xa3\x72\x48\x73\x5c\x20\x30\xf7\x58\xa8\x54\x7f\xed\x57\xf3\x27\xcb\x37\x38\x1a\xa7\x5d\x9c\x2f\xcb\x4a\x96\xc5\xc7\xfa\x0b\x0b\x1e\xed\x1d\x6b\x81\x15\x13\x55\x8c\x3a\xeb\xaf\x92\x75\x69\x57\xfa\x01\x90\x72\xf2\xd7\xb6\xe6\xe3\xdb\x96\x2c\x20\xa9\xf3\x03\x6c\xa1\x46\xbf\xa1\x1f\x0e\x6a\x57\x26\x7e\x68\x5a\xf2\xb6\x6f\x69\x3e\xc9\x7f\xa3\x5d\xc9\x21\x26\xaa\xa9\x55\x55\x9d\x3b\x0d\x62\xed\x4a\x49\xa8\x1e\xec\x4a\x39\xe7\xea\xa6\x4d\xa0\x4f\x7f\x2e\xe5\x25\x58\x8b\xb9\xe7\xe5\xbf\x6f\x79\x79\xec\x1e\x5e\xf9\xb6\x4a\x96\xab\xd9\x07\x6e\x80\x0f\xbc\xb2\x1a\x9f\x76\x50\xc8\x99\x99\x3f\xd4\xcd\xd1\x6a\x72\x8e\xee\x58\x29\x81\x99\x8f\xbc\x50\x3c\x43\x4a\xa2\xed\x6b\x51\xd6\x0f\x69\xfe\x36\xe5\xbc\x69\x57\x01\x45\x04\x07\xa2\xfb\xae\x66\xa8\xea\x36\xd8\xda\x5d\x08\x12\xd3\x93\xf8\x06\x8f\xf0\x61\x33\xc8\x53\xa1\x89\x76\x01\x42\x23\x5b\x20\xbf\x64\x06\x2f\xb9\xe1\x2a\x54\xc3\xde\xc4\xe1\x6d\x6b\x57\x05\xa6\xbc\x58\x58\xf4\x95\x67\xd2\xce\xd3\x0b\xc0\x73\xbc\xc8\x31\xf9\xf1\x47\xf8\x78\x69\x95\x1f\xed\x61\x3f\xc4\x2c\x0a\xf2\xe7\x6a\x00\x44\xc5\xbc\xf2\x12\xf6\x79\x41\xf0\x23\x59\xb4\xf5\x59\xed\x39\x81\xe7\x47\x56\x19\x7e\x6b\xdb\x54\x2e\x66\x84\xe7\x7a\x11\xf6\x98\xfd\xf8\x6b\x2e\xd2\x3a\xb0\x3f\xf7\x1c\xea\x94\x35\xdc\xce\x34\xcb\xa7\x1d\x32\xcf\x8f\x20\xf6\xae\x31\xa1\x74\x38\x06\xed\x05\x42\x49\xc2\x0e\xec\xeb\x9e\xf0\xc7\xe0\xdb\x78\x61\xa0\x30\xc9\xfd\x72\xf7\xb3\xcf\x44\xa8\x3d\xe6\x05\xc8\xd2\xde\xf6\xd0\x11\xd4\x79\x78\x2f\x2c\x94\x98\x39\x47\x17\x1b\x23\xc8\x26\xe6\x1a\x5e\x81\x89\x10\x71\xef\x0a\x32\xfe\xb5\x92\xc5\x18\x23\xaa\x3d\xa6\x99\x36\x00\x81\x55\x35\x27\x36\x9f\xd1\x85\x22\xd7\xd3\x1d\x84\xad\x9e\x24\xe5\xd0\x5e\x14\xa8\x84\x34\x68\xbf\x28\x9c\xed\xb9\x9f\x5e\xc4\x12\xbc\x0f\x8e\x14\xc8\xcb\xff\x5c\xb1\xee\x76\x74\xe4\xd8\xce\xf4\xde\xba\xf5\xa2\x18\xa4\xb0\x81\x71\x05\x3d\x1a\x33\x3b\x40\x84\xd4\xbb\xc0\x4b\x45\x8c\x27\xfb\xc6\xf4\xf7\x8d\x87\x97\x28\xea\xc4\x83\x8c\x9f\x5a\xdd\x63\xed\x09\x3f\xb0\xfc\x2e\x37\x9d\xe2\x97\x3b\x7a\x13\x42\x85\x68\xec\xfa\x30\x38\xa3\x6d\x96\x7d\x6d\x21\x57\x83\xee\x65\xed\x49\xc7\x41\x76\xb9\xe7\xdd\x1a\xa1\x5c\xb7\x9d\x37\xe9\xa9\x28\xf6\xa1\xa5\xd1\xdb\x14\x75\x71\x8d\xc3\xc7\xfe\x20\x71\x71\xb6\x98\xd4\x11\x59\x5b\xf4\x71\xc7\x95\x6e\xed\x29\xc9\xc0\xec\xd7\x38\x75\x2e\x51\x53\xda\x03\x8f\x84\xc9\x74\x85\x19\x6f\xcc\x58\x2c\x20\x2f\x70\xb7\x6c\x5d\x74\x24\x94\xe1\x46\xee\xbb\x85\x20\xff\x82\x74\xda\x1a\x78\x20\x48\x47\xcb\x3a\xc2\xc1\x1d\x1f\xf9\x2e\x4d\x24\x84\xbe\xcb\xd3\xfc\xa1\xa8\x6b\x28\xbf\x86\x58\x3f\xdd\x2c\x69\x6c\x6f\x5b\x3d\xce\xef\xdb\xbf\x05\x31\x96\xbe\x1b\x87\xa2\xf8\x28\xca\x4c\x75\x47\x88\xe3\x55\x9c\xbf\x28\x6b\x70\x3e\xb5\x3c\x33\xc3\x2b\xfb\x8e\x47\xef\x1c\xe5\xe5\x50\x5d\xbd\xed\xe2\xd4\xbe\x13\x87\x08\x64\x7a\x58\xde\xcd\x1e\xf6\xcb\x3f\x9f\x97\x8f\xdb\xe5\x76\xdf\xaf\xac\x6b\xdf\x91\xcc\x16\xe3\xa6\x4d\x84\xef\x48\x15\x6a\x2b\x12\xd4\xd1\xeb\x4f\xfa\x55\xbe\xeb\x08\x4e\x65\x65\x05\x70\xec\xdb\x00\xdf\x8d\x1d\x9f\x38\x75\xec\x4c\x9b\x22\x62\x19\x9d\xcf\x73\x48\x54\xf1\x47\x81\x5d\x05\xf6\x5c\xbe\xe3\x04\x7d\x40\xe8\xc5\xed\xd8\xad\xd9\xf7\x03\x17\x81\x30\x19\xaf\xea\x99\x52\x9d\x8c\x54\x73\x88\x85\xa4\x5a\xca\x8f\x48\x54\xd8\xae\x1e\xdf\x0f\x49\x37\xb1\xf1\xca\xd3\xfa\x9c\xf1\xb4\x84\x3d\x01\x31\xf7\x89\x1d\x14\x78\x3e\x66\xe9\x0e\x25\x37\xe8\x38\x2c\xfc\x3c\x16\x1f\x7f\x2b\xa1\xa8\xfd\x20\x02\xd4\xdd\x5b\xa4\x87\xb4\xe6\xd9\x2e\x6d\x71\x22\xda\x0f\xb8\x22\xc5\x6c\x5a\x16\x8f\xe7\xa3\xd7\x1e\x92\x2c\xa0\xa8\x58\xdd\x34\xcb\x60\x64\xde\xfc\x90\x53\x31\x1a\x81\x27\xb2\x2b\xc8\x6b\x9f\x31\x12\x2b\xc0\x8c\x97\x7c\x83\x7a\x34\x93\xfd\x28\x4a\xd0\x8f\x47\xc8\xdc\xa2\x2c\x4e\xa8\xf0\xd9\x16\x55\xb4\x1f\x25\x5a\x12\x4e\x7c\x95\x63\x5e\xb2\xbd\xab\xd8\x55\xd8\xa9\xf3\x50\xe4\xaa\x68\xaf\x18\x7b\x0c\x5d\xbb\x3b\xc0\x40\x6a\x80\x2a\xd1\x7e\x1c\x50\x02\x8f\xe0\x05\x13\x61\x81\x1f\x33\x6e\x74\xbd\xb2\x2c\xcd\x0f\x8b\x81\x01\xf5\x63\x11\x62\x55\x94\x24\x94\x28\x11\x3c\x91\x88\xd3\x7e\x22\x34\xee\x94\x0f\x69\xf9\x36\x98\x94\x89\x0e\x25\x71\x0b\x63\xa2\x9b\x9a\x71\x46\xef\x93\x7b\xae\x07\x3d\xf6\x7b\x84\x89\x2f\xff\xf3\xd2\x5c\xe7\x8f\x76\x0c\x23\x06\x5e\x4b\xad\x9a\x1e\x1b\x67\x6f\xf4\x34\xc2\x0b\x10\x31\x7b\x07\x39\x54\x69\xb5\x26\xe6\xac\x6b\x00\xbb\xd1\x3a\x14\x21\x73\x4c\xa9\x9f\x08\x0c\x28\x63\xdb\xfb\x38\x32\x16\xca\x1d\x32\xde\x8c\x15\x8b\x06\xbb\xa9\xaf\x62\x22\x17\xc0\x19\xdc\x04\x4c\xad\x7a\xd0\xdf\x9b\xc0\x10\x06\x58\x26\xab\xf9\x1b\x94\xb7\x60\xb3\xc9\xf6\xa5\x40\x22\x70\x6b\x92\x3c\xdf\x42\xa6\x17\x40\xac\x7d\xf6\xb0\xf6\x1c\x64\xc3\x9e\x6d\x56\x4f\x8f\x3d\x21\xbe\xe6\x88\x8f\x59\xa8\xcd\xc3\x7c\x0b\xcd\xda\x5a\x5a\xc1\x27\xed\x6b\x90\x46\xd5\x82\x97\x35\x2a\x72\xf4\x4c\x9e\xd6\xa1\x63\x3a\xad\x16\x5f\x39\x3f\xa6\x72\x49\xd8\x93\x11\xec\x4c\x07\x8e\xeb\x63\xb5\x72\xf9\x3c\xeb\x2f\x91\xc0\x09\x85\xb0\x0d\xac\x45\xb3\x2d\xdf\x16\x58\x72\x1e\x73\xd7\xe9\xc0\x89\x93\xa4\xcb\x93\x4a\xa8\x2a\x4c\x31\x55\x3d\xb8\xa2\x0e\x7c\x07\x10\x72\x69\x08\xa5\x76\x9f\x7d\x2f\x22\xf0\x83\x28\x88\x3b\x84\xed\x2c\x57\x37\xe7\x72\x88\xb1\x35\x23\x03\xdf\xb7\xb0\xc7\x3d\xa1\xf2\xd2\xfa\x6b\xcf\x27\x58\x3b\x74\x10\x86\x2a\x74\xdb\x7d\xb5\x2d\x03\xd8\x8b\x86\x9c\x1b\x64\x45\x8d\x3e\xf9\x06\xde\x21\x3f\x37\xdf\x8e\x6c\xc2\xe8\x45\xb1\x88\x56\xc8\x53\xc9\xf3\xc3\x79\x3b\x41\x86\x7d\xf5\xdf\x2b\xa6\xfd\x7f\x46\x17\x10\xbe\x2d\x32\xac\xbf\x36\x80\xb8\xb2\xa9\xba\x60\x33\x92\x47\x0e\x96\x3e\x9e\x68\x11\x4f\x72\xf3\x99\xc1\x91\x4f\x00\xf6\xbd\xe4\x6d\xf2\x0a\xf1\x21\xa3\xe7\x8b\xc2\xc8\x25\xa6\xc0\x39\x3f\x71\x91\x66\x69\xfd\x45\x3c\x96\xc3\x45\x13\xb4\xe3\x25\x66\x79\x6d\xb5\xe3\x99\x97\x57\xb2\x4f\x41\xec\x25\xb8\xbc\xb6\xb7\x7d\x2a\x1b\x1d\xc4\x5c\x20\x8e\xfd\x5c\xa9\xba\xfd\x9b\xa4\x4a\x40\x05\xb5\x41\x6b\x1a\xd7\x6b\x82\xb7\x5d\x07\xb1\x76\xf1\x13\x73\xa5\x5a\x59\x33\x1d\xf0\xc6\x06\x63\xb9\xe2\x63\xcd\xf3\x2f\x6a\x1d\x59\x80\x4c\x55\x3b\x44\x3a\x02\x57\x2c\xf2\x10\x35\x3e\xff\x3d\x2f\x8f\x45\x3e\x21\xd5\xa3\x03\xe9\xf3\x38\xb8\x50\x9f\x1a\xbd\x3e\xa9\x19\x16\x7f\x2c\x5a\x81\x6e\xf7\x57\x5a\xbf\x36\x26\x10\xc5\x6c\x2e\xe2\xe6\xd1\x6b\x02\xdf\x43\x8f\xfd\x36\x83\xcf\x14\x21\x36\x83\xb7\x05\x01\xa9\x72\x22\x77\xe6\xc8\xb3\x0a\x80\x07\xd0\x17\x5f\x74\xdb\x03\x10\xaa\xa0\xa7\x3e\xd6\x6f\x8f\xb8\x98\xa0\xd3\xf7\xa5\x7d\x1f\xa1\x9a\xcd\x5e\x57\xd5\x3c\xaf\x53\xde\x17\x3b\xb4\xa3\x14\x21\xfa\x6e\x56\x77\xfb\xc7\x97\xf5\xcd\x72\x63\x6e\x21\x74\x3d\x81\x94\x8f\x0f\xc5\x11\xb2\x14\x5f\x50\x76\x6a\x99\x5d\xcd\x20\xcf\x71\x62\xe3\x5e\x5a\x9c\x27\x42\xfe\x6b\x7e\x3c\xf5\x29\xa8\x6c\xb2\x24\xf4\xa5\x44\xda\xe8\xf9\xfd\xea\x71\xb9\x5d\xee\x97\x7f\xce\xef\x67\x8f\x77\x4b\xab\x74\xa1\xc3\xc0\x21\xce\x36\x6a\x6a\x5d\xaf\x16\xed\x01\xce\x5c\xe8\x09\x34\x41\x79\x5b\x94\x6d\xe9\xcb\x1d\x39\x7e\x61\x20\x34\x62\xab\xd2\x6a\xc2\x22\x85\xa1\xaf\xd0\xb1\x4a\x2b\x4b\x02\x3c\x58\xac\x61\x18\x78\x08\x74\xc6\xf6\xc0\xf2\x4b\xd6\x85\xdd\x2c\xc3\x30\x50\x08\xce\xe6\x87\x12\xe0\xb6\x2c\x8e\xcf\x85\x6a\x8f\x85\x34\x19\x7e\xcc\x1e\x58\x7f\x1a\x84\x61\x14\xd8\x24\xc7\x33\x20\xdd\xde\xbc\x44\x6c\x00\x92\x3c\x5a\x2a\xf2\xc9\x85\x18\x86\x31\x11\x30\x34\x8b\x0b\xdb\x6d\xfe\x18\x1d\xd7\xae\x17\x5a\xf4\x24\xaf\xba\x3e\xb2\xa7\x72\x79\xac\x4f\xd3\x6a\xf1\x3a\x64\x4a\x5a\x35\xf4\x13\x2f\x31\x4a\x4f\xf3\x73\x71\xae\xec\x97\xb4\xf7\x1e\x39\xdc\xb3\xad\x41\xfd\x00\x2f\x8c\x98\xc6\x54\x9c\x2a\x1e\x8b\xbe\xef\x1e\xc6\x6e\x80\x0e\x0b\x3a\x62\xf3\x22\xcd\x6f\xd2\xc3\x0d\xef\x1d\x67\x11\xaa\xc5\x74\x36\xbe\xea\xd5\x2f\xbb\x5b\x8c\x23\xe2\xcd\xb0\xb4\xa3\x45\xd9\xce\xbc\xc4\xe5\x96\x71\x7d\x43\x2f\xb2\xaf\xe8\x79\x65\x89\xd8\xdf\xfa\x01\x16\xf8\x48\xa8\x6c\xfe\x25\x33\x58\xe5\x0b\xfe\xd5\x9d\x3c\x82\xc8\xf6\x57\x3d\x14\xf9\x61\x95\x9f\x6c\x79\x5b\x87\x49\x1c\xd8\xf2\xe0\x9c\xd7\xb6\x7e\x8f\xef\x25\xb4\x43\x0c\xc6\x1a\xb3\xf0\x96\xdc\xfa\xe6\x6b\x5b\x9f\x15\xe4\xf5\x6a\x31\xb9\x34\x78\x68\xe4\xf2\xd2\x23\x1c\xda\x16\x46\x1d\x0a\xc1\x6c\xff\xf5\x23\x7c\xda\xfa\x38\x0a\x9b\x8c\x26\xb5\xf4\x5d\xf4\x7f\xd7\xfc\x0d\xf6\x8b\x7e\x7f\x9c\x0e\x65\xc8\x1d\xb3\x59\x2f\xeb\x57\x30\xb8\xcd\xe9\xa8\x31\x54\x3e\xc1\xbc\xb1\x19\xac\x25\x19\x31\x2d\x63\xbb\x32\x3d\x1c\xa0\xac\x28\x95\x6d\x7e\x01\xb1\x83\x48\xce\x41\xd3\xe9\x60\xe2\xb9\xac\x1d\xaa\x3c\x83\x25\x5c\xcc\x56\x9b\x6b\x8c\x8a\x3a\x04\x21\x70\x53\xa1\x86\xd8\x4b\x08\x60\x37\x52\xfb\x02\xf3\xdb\xa7\x02\x5b\x23\xcc\x4d\x31\x27\x74\x1d\xab\x9d\x47\xf4\x3c\xd3\x57\x62\xae\xeb\x63\xc7\x2b\x41\xa9\x09\xb4\x70\x79\xb1\xff\x99\xf0\xcd\x99\x1b\x51\xf2\xb4\xb9\x46\x7a\xe8\x59\xe8\x69\x78\x90\x66\x1e\x67\x9a\xd4\x09\x4f\x95\x05\x21\x5e\xcc\xd7\xde\x2a\x63\x7e\xc0\x13\x03\x85\x1b\xf6\x2f\x0d\x9f\xc1\x0f\x25\x2e\x88\x9f\x45\x76\x3e\xc2\xea\x68\xf0\xd8\xa4\x6f\x3c\xb6\x7f\xcc\x07\x0f\xcb\x79\xfb\xd4\x56\x64\x07\x0e\x77\x2f\x5d\x68\xfe\x99\x96\xcd\xd0\x2c\x70\xb8\x45\x86\xda\x8e\xda\xf1\xb5\x02\x26\xb0\x0e\x3a\x2b\x8f\x48\x80\x99\xa5\xb7\x76\x72\xb3\xd0\x0d\x3c\xab\x41\xd2\x46\xc3\xf6\x98\xef\xd9\x5a\xd6\xc6\x24\x3e\x51\xc8\xee\xca\x0b\x08\x63\xe9\x23\x9c\x8d\x6b\x3d\x6a\xd1\xd3\x2c\x14\x10\xf6\xbd\x01\xcc\xa0\x2e\x79\x99\xa3\x58\x83\x19\xc4\xdc\x84\x38\xc8\xb2\x54\xeb\x67\xe4\xeb\x6d\x0f\xc5\x44\xdf\x0e\xf5\x2b\xc6\x0a\x2d\x0d\x87\x66\x4c\x11\xc6\xe1\xc7\xf3\xd3\xf3\x7e\xb5\x5b\xae\xf7\xf3\xa7\xc7\xdd\x66\x36\xdf\x0d\x49\xff\x35\x8b\x1c\x17\x5b\x2b\x3a\xa8\x09\xaa\x5b\x99\xf9\xd1\x09\x6a\xd8\xe1\x01\x17\x44\x51\xfc\x25\xc0\x70\xa1\xdb\x43\x91\xe3\xb7\xc1\x7b\xb3\x83\x6c\x8a\x0c\xc6\xd8\xa5\xd1\xd9\xa4\xc6\x6c\x1c\xd4\xaf\x7b\xcd\xb3\x4c\xf0\xce\xb9\x19\xcc\xb7\x38\x10\x88\x3c\xe4\x4a\x35\xde\xd7\x91\x67\xd3\xf0\x06\xcd\x92\xd0\x09\x4d\xaa\xd9\xf0\xa3\x42\x39\xab\x2f\x99\xa7\x34\x4b\x24\x77\x3b\x5a\x3c\x4c\x7f\x55\xd3\x89\x4b\x96\x68\x97\xb5\xca\xef\x47\xd8\x40\x75\xce\xea\x4b\x3e\x69\xcd\x38\xf3\x91\x3f\xf5\x0e\xbb\x11\xfb\x55\x10\xc6\x19\xe0\xc6\xd4\xd6\x9e\x9b\x01\x87\xc3\x1d\xe1\x5c\xac\xc5\x65\x1c\x02\xd6\x57\x61\x5e\x14\xf2\x7c\x6c\xf5\xf5\x46\xf7\x25\x22\x81\x00\xf1\xbb\xb3\x10\x50\x76\x9a\x13\x9a\x89\xd8\xc5\x8c\xfb\x07\xd4\xaf\xc3\x14\x01\x13\x89\x93\x24\x3d\x05\x87\xa7\x72\x4a\x16\x61\xfc\xef\x64\xc2\x91\xc9\x20\x41\x23\x47\x60\xf1\xd1\x1a\x53\x92\x89\x2e\x17\x71\x53\x94\x65\xf1\x91\xe6\x07\x8c\x30\xfb\xa8\x57\x33\x1c\xbc\x08\x71\x16\x2b\xfc\xa3\xd1\xd4\x1d\x8e\x48\xfc\x9e\x14\x6c\x13\xd8\x3d\xf3\x73\x05\xea\xa2\xcd\x42\x33\xed\x4a\xac\x69\x54\x27\x90\x29\x54\xdb\xaf\xa3\x28\x86\xd2\x06\x3a\x72\x1c\x8d\x40\x4f\x7e\xae\x8b\x7f\x9c\x95\x05\x63\xea\xc8\x71\x13\xac\xab\xef\x0f\x2d\xaa\x8b\x38\xcc\x86\x0e\x59\xe4\x06\x4c\x9a\x56\xa0\xc6\x2d\x4f\xf3\x43\xeb\x68\x36\x3e\xd8\x6e\x5a\xf3\x5b\x47\xae\x72\x10\x42\x70\xee\x1a\xd0\xb1\x0f\x6e\x22\x64\x88\x3c\x9f\x80\x8d\x54\xe0\xbf\x2f\x16\x0f\x9d\x35\x8a\x3c\xc5\xb0\xa7\xf1\x6e\xfe\xf4\xe7\xd3\xaf\xc7\x6b\x21\xdc\xc8\x85\x89\x3c\x4d\x5c\x53\xa8\x68\x82\x90\xa3\x36\x0a\xa8\x1a\x8f\x60\xaa\xe8\x3d\xd5\x96\x69\x4e\xe7\x3b\x24\x61\xd2\x38\x8f\xcf\x50\xfe\x82\xf4\x36\x2d\x2b\xea\x44\xb5\x77\xea\x87\x09\xf7\xb1\xc3\xeb\xc7\xf2\x71\xbf\xdd\xcd\x1e\x17\xb3\xcd\x62\xdf\xc4\x26\x9e\xdf\x0e\x02\x9d\x98\x65\x86\x99\x2b\xa3\x99\x3c\x98\xbe\x51\xe0\x87\xa6\x88\x50\xe6\xe4\x7a\xb6\x49\xc6\x28\x08\x88\xae\xa2\xb3\xa8\xfd\x64\xde\xe8\x2d\x04\x21\x75\x4a\x21\x62\xeb\x49\xe3\x3e\xf6\xad\xd3\x1b\x85\x3c\x41\x2f\x01\x3e\xf1\x5d\x6d\xc8\x9b\x29\xca\xaf\x41\x6d\x2a\x62\xd2\x47\xa4\x22\xb2\xbc\xee\x3e\x0a\xca\x2a\x99\x83\x51\xe0\x99\x3e\x7e\x04\x9b\xab\x73\x55\xf3\x5a\x0e\x63\xb0\x28\x0a\xc0\xca\xa1\xac\xab\x03\x02\xea\xcb\x09\x35\x16\x1d\x45\x2c\x46\x7b\xb3\x23\x07\xec\x85\x80\xce\xdf\x41\x8c\xa2\x48\x09\x1e\xd8\xc7\xa6\x0e\xc2\xd6\x48\x45\xb1\xeb\x61\xb5\x72\xf5\x6f\x5e\x75\x5d\x65\xcd\xdf\xfd\xc4\x64\xca\xac\xa8\xf8\xb6\x86\xd3\x68\x41\xc5\x9e\xa0\x40\x1e\xd2\xb6\x95\xa2\xfb\x38\xb1\x20\xc1\x90\x66\xa9\x2c\xd2\xf7\x2b\xef\x38\x56\x12\x51\x97\xcb\xb2\x5c\x57\x1d\xd6\x60\xf0\x08\x89\x13\x21\x60\xb3\x35\xa5\x37\x50\x75\x9c\xfb\x7f\xab\xff\x43\x47\x49\xec\x4a\xe3\x0f\xff\x02\x9e\xd5\xaf\x4f\x7a\xd0\x93\x39\xb0\x65\x51\x12\x87\x16\x8a\xdf\xa2\xec\xb7\x75\x51\xf2\xce\x6a\x70\x97\x21\x05\x7f\x0e\xbc\x84\xaa\xfe\x91\x17\x1f\x39\x26\x8c\xbb\xd6\x29\x1d\xf1\xc0\x41\x89\x46\xf8\x24\x23\x76\x5b\x94\xc7\x73\xc6\xdb\xc3\x91\x9b\x10\xe0\xed\x74\x9b\xb6\xc9\xf9\x48\xf8\x2c\x8a\xda\x16\x57\xae\x78\xcd\x5f\xca\xb1\x39\x93\x4a\x60\x8f\xd3\x62\xf9\x73\x3f\xd4\x0e\xd4\x91\x12\x12\xe9\x27\x75\x59\x1c\xc9\xbe\x0e\x2c\x6b\xa4\x7d\x90\xe4\x00\xe6\xaa\x71\xe8\xef\x8b\x73\x39\xc1\x1b\xa1\x23\x1d\x11\x76\xc4\x64\xdf\xba\x54\x49\xec\xf8\xa4\x42\xba\x7c\xd9\x3c\xb5\x7f\x63\xae\x49\x19\x9c\xbe\x97\x87\x31\xe3\xdd\x10\x94\x3b\x90\xd3\xb2\x76\x89\x58\x59\xae\x19\x25\xba\xc5\xc1\x24\x89\x5d\x21\x31\x5e\x42\x65\x87\x75\xaf\xef\xe1\xd2\x82\xc5\x3e\xb8\x48\x1a\xb3\xb7\xa0\x8a\x09\x7e\x1a\x1d\xfb\xcd\x3a\xb0\xf2\xf2\xdb\x33\x26\x28\xf5\x39\xdb\xf2\x0c\x9e\xcb\x42\x42\x3b\xd5\xe3\xd0\x75\x31\xcf\x73\x1f\x2c\x06\x88\x45\x1d\x87\x21\x51\xf5\x99\x0a\xdd\x7c\xb2\xcc\x1f\x87\x9a\xf2\xb8\xca\xf6\x57\x56\x96\xfa\xd8\x9e\x87\x79\x24\x33\x88\x04\x30\x8d\x4f\x42\x9a\x0a\x5d\xea\x3a\x66\x61\xc8\xe2\x7e\xc7\xf1\xe8\x1a\x2c\x51\x9e\xa5\xb4\xae\x2a\x82\x07\x4c\xdf\x0d\xd3\x1e\x66\x84\xd6\xb3\x3f\xf7\x4f\xcf\x8d\xf9\x7e\x7a\xb0\x19\x90\x38\x76\x7c\x34\xb9\xe6\x27\xf3\xa7\xf6\xe3\xc7\xa1\x46\x57\xb9\x2e\xf9\xa0\x42\x10\xc7\x1c\x42\xdd\x36\x6e\xf9\x43\x4a\x71\x33\x26\x49\x34\x62\xf8\x9e\x5f\x79\x79\xe4\x75\x39\xea\x69\xd1\x31\x77\x3d\x6d\x32\x2f\xeb\xea\xe0\x0d\x2c\x70\xcc\x85\x46\x89\x7e\xe2\xd9\x1e\xe5\x5f\x63\xe1\x78\x58\x01\x33\xed\x8b\x53\x64\x04\xdd\xc8\xd0\x64\x39\x0c\x42\x6c\x25\x0b\x03\x1e\x1f\x9d\x53\xc5\xb8\x2b\x29\x14\xfc\x58\x5f\x6b\xb3\xd1\xb1\xf4\x7c\x6c\x99\x3a\xa4\xef\xc4\x67\x3d\x51\x6a\xb3\x43\x93\x18\x2d\x94\xce\xd2\xd3\xba\x78\x6f\xdb\x9c\x76\x45\xff\x3b\x4b\x0d\xb8\xec\xa9\xf5\x7c\x03\x55\x71\x2e\xe5\x80\x2e\x9c\x92\xad\xed\x64\x57\x9e\xc2\xfe\x8d\xc6\x7f\x9a\x61\x70\x09\xea\x16\xe0\xea\x8e\x6f\x7f\x06\xb1\xeb\xb4\xfb\x46\xe3\xfb\x92\xd0\x84\x39\x0c\x11\x09\x84\x62\xd3\xe0\xcd\x8f\xd1\xeb\xd1\x8e\x34\x76\x2d\xb7\x39\x80\x49\x4f\x3b\xd6\x6e\x44\xcc\xab\xc0\xa7\xf5\x1d\x7a\xe7\x8c\x25\x36\xa6\x1b\x53\xd4\x57\x43\x18\x9d\x53\x93\xbc\x2b\xcf\x32\xd4\xcc\xf9\x55\x16\x6d\xda\x27\x71\x3c\x57\xab\x41\x92\x60\x5e\x14\x88\xc1\xb9\x12\xd3\x25\x8e\xe2\x3a\xb0\x7d\x45\x8a\xd8\xff\xda\x1d\x34\x71\x63\x0f\x83\xc7\xe5\xee\x7e\x4e\x5b\x7c\xd1\x1d\x13\xe4\xba\x10\xdb\xf4\x9a\xf2\x02\x83\x7b\x4d\x3c\xbf\xe7\x94\xcc\xf9\xe9\xb6\x28\xd1\x99\x5a\xf3\x34\xef\x69\xa0\xeb\xc4\x63\x91\xef\xf5\xb2\xb1\xd3\x09\xfe\xc4\xe3\x12\x0b\x46\x58\x69\x0b\xf6\x1c\x8d\xd6\x06\x9a\xd5\x82\x7b\xd8\xde\x40\x5a\xf6\xd5\x6b\x71\xce\x14\xb2\x47\xb4\x97\x10\x94\x12\xbf\x2f\xea\x87\xe2\xbd\xbb\xb2\x0e\x31\xf5\x87\x4d\x25\xee\x5e\xe7\x72\xda\xdf\x18\xbd\xb6\x80\x6b\x41\xea\xef\x85\x3d\x53\x00\x3e\x31\x71\x53\x08\xf6\xc0\x8f\xa2\x98\x4c\x93\xd9\xe8\xa8\x09\xee\xc2\x6e\xb2\xdf\xa7\x4a\x21\x47\x4b\xda\x26\xd8\xa8\x2d\x8a\x05\xff\xeb\x99\x79\x6f\x53\x3c\x49\x28\x62\xdf\x37\x8c\xe5\x69\x09\x0a\x29\x99\x16\x70\xb2\x0c\x46\x3a\x61\x09\xa1\x94\x1a\x3b\xf7\xf2\xd8\x18\xb9\xfd\x66\xb6\x5b\x59\x83\x96\x44\x91\xc0\x60\x3e\x87\x8f\x1d\xaf\xde\xa6\x6b\x25\xa3\xa7\x8e\x62\x90\x4e\x2b\xf6\x88\xa2\xb6\x03\xd2\xed\xe1\xe8\x66\xe3\x90\x6d\x48\x7a\x9f\x56\xe8\x5c\x8e\x05\x0d\x86\x33\xa6\x99\x55\x9c\x7a\x30\xd7\x70\x14\x50\x52\xe5\x6c\x34\xaf\x12\x49\xa1\xca\xcd\xf2\x71\x79\xbb\x9a\xaf\x66\x9b\xbf\xec\x63\xf1\x48\x62\x34\xd2\x09\x7b\xff\xe2\xef\x3d\xbc\x79\xdf\xb2\x26\x3c\x16\x48\xa8\xb9\xad\x4b\xe0\xc7\x2e\x6e\x20\xdc\xee\x34\xef\x87\x4e\x84\xef\xf6\xfb\x30\x11\xa8\x65\x2f\x2f\x02\x27\xe9\xe8\x5c\x96\x9f\x44\x23\xd2\xa3\x11\x1e\x3e\x88\x74\xa9\x77\xd5\x92\xd9\x93\x31\xf9\xb6\xec\x90\x48\xd1\x52\x57\xcd\xb3\xa2\x32\x71\x9a\xbd\x01\xad\x29\xa5\x31\x6b\xd6\x19\xb7\x24\xf4\x9a\x3b\x0e\x69\x18\xea\xf4\xd4\xe2\x2b\x2c\xcb\xd1\xf0\x1b\x70\x27\x24\xd6\x08\xe4\x37\xe5\xd9\x5d\xc1\xb3\x4d\x9f\x36\x41\x73\x87\x69\x64\x26\xb7\x7e\x5f\xd5\x78\xc1\x4b\x4c\xba\x5b\xc6\x78\xcd\x9d\x48\x90\x92\xc1\x58\x8d\xfe\x7b\xb7\x89\xbb\x01\xf5\xe3\x17\x1a\x41\x49\x19\xc9\x54\xda\x83\x4a\x63\xe3\xdc\x66\x75\x67\xff\xe4\x05\x2e\x5e\xe7\x84\xe5\xa7\x9b\xa2\x78\x6b\x8f\xb0\x08\x8f\x6c\x80\xab\x9b\x54\x64\x53\x59\xb7\xf6\x9f\xf6\x37\x9c\x52\xa2\xf4\xf0\x68\x0d\xad\x9f\xc2\x7d\x47\xf9\x16\x71\xbf\x31\x3c\xc8\xdf\x7e\x2c\xee\xf3\xc0\x85\x36\xcf\xfd\x61\x60\x54\xb6\x7d\x47\x73\x1f\x1c\x4c\xa0\x9a\x1a\x49\xdf\xb3\xe0\x41\x22\xf1\xd8\x16\xea\xdd\x67\x8f\x21\x7f\x74\x89\x40\xb3\xc4\x74\x76\x35\xae\x4f\x55\x15\x65\xe3\xfd\x7c\x9f\xa1\xe7\x58\x9f\x31\x48\x4e\x94\x4b\xbc\xf9\xfa\x26\xf7\xc9\x43\xe6\x61\x54\xbc\x3e\xf1\x0b\x7a\xc9\xfe\x92\xe2\xcc\x95\x2a\xee\xf5\xe5\x0f\x27\x3c\x67\xa1\x8b\xda\xf1\x32\x03\x5e\x52\x44\x6c\xaa\x35\xf6\xa9\x59\x12\x12\x3c\xb9\x2e\xd3\x37\x98\xf3\xac\xfd\xf6\x51\x4c\x61\x1b\xc1\x17\xb0\xaa\x33\x42\x2f\x58\x2f\xc1\xeb\x9c\xe2\xe8\x5f\xc3\x5c\xf1\xff\x7a\xff\xb2\xa7\x93\x42\x9b\x82\xd1\xf2\x13\xe4\xbc\xa8\x46\xae\x15\x8f\x1d\x97\x34\xf3\x0e\x65\x8f\x95\x44\xf3\x38\x4c\xf0\xa3\xee\x66\xf3\xdd\x6a\x3e\x7b\x98\x6f\x5e\x56\xdb\xb6\xae\xc7\x13\x4f\xa9\xe6\xf0\xbf\xb9\x7c\x3b\x15\xf5\xbc\xc8\x15\x9a\xf4\x21\xfa\x81\x27\x81\x16\xbe\x81\x17\xed\xca\x33\x82\x04\x7a\xc0\x3d\x9e\x44\xa1\xa4\x0e\x0b\x5e\x57\x7d\x91\xfe\xd1\xa7\x49\x92\x08\xf7\xe1\x41\x06\xec\xe6\x6b\xcb\x35\x0c\x32\xac\x9c\x7b\x49\x12\x5b\x64\xc4\x6a\xfe\xb4\xf7\x9c\xfd\x02\x24\x9a\xd9\x76\x8c\xef\xb8\x56\xcf\xe9\xf6\xdc\xdb\x0c\x87\xd7\xe4\x21\x60\xa6\x8c\x96\xbf\xed\x95\xb6\x0f\x30\xbd\xae\x79\x22\x84\x30\x11\xb3\x85\x53\x4d\x3f\x11\x57\x01\x33\x88\xb2\x59\xcf\xab\xa5\xa4\xd5\xf0\xa4\x82\x11\x7e\x68\x6f\x4b\x73\x88\x93\x30\x86\x06\x35\xd7\xae\x7b\xaf\x5c\x48\x17\x29\xf6\x9a\xa0\xea\xb6\xe4\x72\x0e\x69\xd6\x6b\x32\xba\xb2\xa4\xa5\x6b\x88\xdc\xe0\xc3\x30\x17\x14\x45\xf6\xb7\x9a\x67\x9b\xdf\x2a\x9f\x4a\xc6\x8d\x4d\xfa\xba\xbd\x78\x1e\x29\x03\xf4\xee\x0c\xf7\xe2\x5d\xf1\xde\x6c\x20\x3d\xc6\xca\xff\x19\x8f\x17\x20\xba\xf6\xee\xe7\xb2\x38\x95\x69\x31\x3a\xa9\xf2\x49\x0e\x42\x9c\x4b\xec\x6d\xff\x3e\xe9\xcc\x21\xa0\x5a\xcd\x71\xbf\xdc\xdd\xa3\x6f\xdc\x58\x2e\x4c\x3f\xb5\x73\x09\x84\xb0\x1c\x25\x37\x50\xd7\x50\x56\xd8\xcc\xd3\x27\x51\xd4\x1c\x74\x80\x40\xe3\x99\x90\x03\xc3\x06\x9a\x1a\xdd\x0e\x50\xdf\x95\x3c\xaf\x01\x88\xc2\xcd\x1c\xd6\x6e\x9c\xe0\xc4\xe7\xef\x2d\xb2\x99\x4a\x61\x53\x06\x47\x27\x3c\xf1\x2d\xc7\x11\x29\x2a\xb4\x27\x12\xae\x6b\xd8\x53\xf7\x27\xec\x74\xd8\x8b\xaf\x7d\xb3\x11\xef\x89\xef\x6a\xf2\xf9\x85\x13\x05\x31\x39\xa3\x8d\xc7\x02\xbf\x40\xf4\x39\x4d\xcc\x20\xd7\xa7\x64\xc0\xa9\x84\x54\x16\x46\x81\xdc\x1e\x8b\x48\x6d\xa4\x31\x53\x4f\xf9\xae\xe4\xaa\x07\x4a\x13\xae\xf0\x28\x60\x4c\x0f\xa3\x30\x50\x78\x9e\x69\x01\x9b\x3f\xed\xb7\x7f\x6d\x77\xcb\xf5\xa0\x8d\x46\x78\xcc\x41\x77\x01\x77\x25\x74\xaa\x17\x90\xd5\xfc\x6a\xba\xfb\xdb\xc9\x28\xbc\x88\x61\x9b\x83\x61\xe6\x9a\x5b\x0d\x64\x7b\x98\x3b\x58\x26\x30\x55\x74\xac\xde\x8e\x4e\x20\x24\xc6\x0e\xa7\xa2\xaa\x77\x1f\x69\x3d\x08\x5b\x85\xa7\x7d\xa4\xf3\xa5\xbc\x30\xf5\x90\x5e\x12\x23\x6a\x11\x86\xcc\xc0\xba\xdf\x20\x7f\x04\x0c\x42\xb0\x78\x84\x0c\x1e\x8e\xbd\x9d\x90\x85\xb8\x32\xce\x93\x92\xb5\x76\x90\x08\x2d\x5a\xf5\x11\x3e\x6b\xdb\xfd\x35\xde\x27\x86\x3f\x62\xae\x36\xb4\x91\xd5\xe9\x3c\x62\xd2\x1c\x0d\x8d\x58\x84\x36\x59\xf3\x34\xdb\x9e\x05\x4e\xcd\x5f\xaf\x90\xcf\x1e\x88\xfe\x33\xbf\xb1\xb7\x1b\x07\xce\x40\xb6\x16\xe3\xf1\x29\x8d\x91\xee\xe4\x71\xec\xc5\x54\x34\x2f\x2b\xd8\x3c\x3c\xdf\x03\x6f\x89\x51\xcc\x90\x44\x11\xd1\xf6\xcf\xa2\x86\xed\x59\x98\x86\xc5\x41\x55\xc3\x94\x4d\x05\x17\xdc\x33\xaf\xe2\xbe\x47\x34\x39\x58\x3c\x82\x4b\x07\x03\x54\x7b\x97\x88\x38\x3c\x42\x5e\x8f\x80\xe0\x42\xc8\x44\x26\xc6\xf3\x41\xf6\x09\x5b\x2f\x1c\x4d\x09\xa1\xc0\x23\x53\xf3\xb5\x28\xf9\xc1\x06\x47\x42\x3a\x42\x9b\x64\x38\x65\x98\x5a\x05\x1e\x2d\xa4\x17\xa0\x98\xe6\xfc\xc9\x08\x1b\xb6\x07\x62\x1f\xab\x5f\xd8\x65\x31\xe7\x79\x13\xe3\xf7\x92\x05\x42\x6a\x4a\x0a\x35\x9e\x30\xf1\x45\xce\xcb\xaf\x53\xcd\xf3\xc6\x9a\xe3\x63\x0c\xae\xa3\x3c\x17\xfb\xf3\xf7\xc7\xf4\xd0\x4c\x6a\xd3\x48\x86\x30\x91\xaa\x1b\x14\x60\x24\x6a\xdf\x88\x75\xe1\xa7\xa5\xb3\x86\x0f\x0f\x42\x61\xcd\x50\x17\xc5\xe8\xb5\x68\xa6\x91\x10\x63\xb7\x79\x5c\xf4\x4d\xa1\x68\x1e\x12\x1b\x5e\x97\xbb\x5d\xa7\x18\xa2\x85\x96\x1e\x62\x8f\xc9\xae\xef\x80\x1f\x97\xbb\xfb\xc9\x84\x96\xd0\xd2\x47\xfe\xfe\xfb\xcd\x5f\xdf\x79\x66\x42\x43\xd2\x83\xfd\xed\x8f\x69\xbe\x37\x9d\x02\xa3\x7b\x05\xc1\x93\x5e\x8b\xaa\xb9\xea\xcd\x17\x12\x01\xf6\x4f\x29\x1d\xce\x15\xb1\x28\x3e\x9e\x8f\x50\xa6\xd2\xc8\x04\x0d\x06\xb9\x21\x91\xb0\xbf\x41\xd6\xb6\x35\x4a\x37\xa2\x8e\xb0\x9d\x82\x6d\x5d\x9c\x4e\xe3\x89\x24\xdd\x48\x5b\xed\x46\x83\xab\xf6\x87\xa7\xf5\xc3\x04\xb1\x91\xdb\x79\x4b\x9a\x69\x4f\xee\x6b\x17\x43\xdb\x5f\x69\xae\x8a\x0f\x72\x82\x8c\x85\x9e\xfc\x70\x32\x00\xe2\x28\xa4\xa8\xed\x42\xb0\x4a\xcb\xd0\x65\xd8\xa9\x34\x7f\x5a\xaf\x9f\x1e\xf7\x37\x2f\x8b\xbb\xe5\x6e\xc0\xae\xaf\x65\xe8\x79\xb6\x6d\xee\xf9\xe9\xe9\x81\x08\x42\xdc\x64\x78\xd7\x21\x27\x81\xa0\x7f\x14\xe7\xac\x9d\x74\x92\x39\x81\x13\xa2\x43\xf9\xf8\x63\xbf\xfb\xeb\x79\xd9\x1e\x08\x34\xda\xc6\xa2\x3c\xf0\x3c\xfd\x2f\x94\x71\x7b\x04\x62\x41\xfd\x36\xcb\x76\x57\x96\x91\x1b\xb2\xd0\xd2\xc7\x96\x6f\x50\x9f\x32\x2e\xe1\xdb\xce\x45\x19\x31\x97\x77\x21\xe8\x80\xbf\x67\x5a\xe2\xe5\xfb\x5d\x45\x46\x91\xc2\x19\x8d\x8d\x1a\xcb\xdd\xfd\x5d\xfa\xde\xd8\xfd\xc7\xa2\xac\x5f\x9f\x8b\x76\x1b\x94\xb1\xeb\x05\xaa\x95\xd0\x2c\x72\x35\x05\x64\x94\x71\xa0\xd0\xea\xff\x39\x1f\x40\x24\x65\x2c\x7d\x24\x19\xd8\xcd\x16\xcf\x4f\x0f\xcb\xfd\xcd\x6c\xbb\xdc\x6f\x96\xff\xb4\xc7\x93\x40\xf0\xa1\xc4\x61\xdf\x3f\x19\x7e\xdc\x84\x07\x6e\x2b\x8b\x40\xf9\x06\xbc\xe9\x69\x50\xb4\xe4\xbe\x40\x6f\x6a\x77\xb3\xec\xe8\x8a\xed\xb1\x90\xd8\xbe\xd3\x6a\x37\x7b\x1a\x3d\x0a\xe7\xc4\x0f\x4c\x93\xcc\x00\xca\x87\x2c\x31\x66\xa4\xf0\x1c\xe8\x1a\x5f\x36\x50\x41\xf9\x8e\x36\x60\x03\x32\x3d\xa5\x30\x46\xf4\xca\xc6\x0b\x26\xf2\x19\xfc\x62\x77\xbc\x9a\x72\x95\xa4\x0a\xa8\xb4\xb9\x4e\xf3\xb4\x09\x11\x97\x48\x61\x63\xef\x5d\x31\x07\x45\xc1\xb0\xca\x53\xc3\xdb\x4b\x9e\xbe\x43\x59\x8d\xb5\xbd\xb4\x54\x20\x38\x56\x0e\xce\xb9\xda\xa3\x6d\xb6\xa7\x00\xd7\xc3\x50\x64\x29\xcb\xb6\xd6\xf1\x77\xd1\xc0\xe6\x14\x3a\x0e\x84\x1e\x72\x77\x22\x02\xb0\xc7\x7f\xad\x95\xa3\x7d\x64\xab\x43\x62\xeb\x79\xd1\x38\x7d\x08\x00\x43\x42\xed\x87\xa2\xb8\x12\x82\x28\xcf\x8f\xd1\x14\xad\x6f\x77\x2f\xf6\x5c\xbe\x50\x58\x7b\x38\xf1\xaa\xea\x88\x84\xda\xa3\x0a\x70\xfe\x91\x40\x3d\xfa\x07\x0a\xf1\xfd\x6b\x38\x16\xe5\x17\xcd\x96\x2d\xfc\xe7\x0c\x5d\x51\x57\xf9\x5a\xe2\xe4\x14\xf5\x6b\x77\x46\x33\xbd\xcd\x90\x80\xf9\xd8\x78\xb8\xdd\xcd\x36\xbb\xf5\x72\x37\x5b\x3c\x3d\x3c\xcc\x36\xed\xe1\x88\xd9\x16\x43\xec\xd8\x5c\x55\xd5\xb9\xf5\x2f\x55\x00\xd2\x8b\xfb\x9d\xbe\xbd\x57\x13\x68\x4f\x77\x73\x87\x54\xc4\xaf\x13\x68\x68\x15\x86\x1e\x0b\xbb\x80\x63\xc2\x41\x53\x21\xa7\x1e\x9b\x3b\xa8\xe7\x59\x33\xfb\xe6\xbc\x86\x43\x61\x65\x36\xb4\x0a\x41\x22\x94\x5a\x30\x66\x2a\x3b\xb7\xe7\x5c\x59\xe5\xec\x63\xfb\xd0\x4c\x05\x8e\x68\x83\x06\xd4\x7e\x42\x22\xe0\x11\x77\x83\x4a\x82\x04\x69\xc5\xda\xe7\x1b\xa1\x7a\x55\x12\x72\x0c\x10\xc9\x66\xdd\x41\x3e\x4d\xba\xe7\xf6\xa4\x86\xb4\x4a\x22\x89\x6e\x1e\x36\x8d\x62\xf3\xaa\x3d\x1d\x8f\x5c\x46\x0c\x72\xc5\xc9\xf8\x35\x06\xea\x6e\x07\x28\xe9\xb9\x26\x59\x52\x17\xb3\xe1\x56\xa5\x38\xf8\xb6\x8d\x7b\xd4\x6d\x6a\x07\x68\x92\x5e\xc2\xe9\xba\xaf\xaf\x73\xc5\x69\x25\x7c\x60\xd2\x6a\xab\xa2\xd3\xda\xd3\x13\xb5\x63\x84\x8f\xa1\x87\x3c\x1f\x9b\xf9\x77\xaa\xc1\xbe\x6b\xbb\xa1\x28\x19\x3a\x98\x59\x3e\xa6\xf9\x68\x2b\x53\xb2\xf1\x71\xfa\xd4\x51\xdf\x3b\x35\x4a\xb1\xd0\x37\xb4\x57\xb7\x45\x59\x9f\xf3\x11\x38\x45\x29\xa0\x48\x88\x28\x26\x77\xe9\x11\x6e\x78\x65\x3b\x68\x7b\xef\x5f\x69\x6a\x68\x3b\x10\xbe\xc4\xb6\x92\xec\x47\x4f\x07\x92\x63\x0f\xd2\x62\x79\x3b\x7b\x79\xd8\xed\x77\xcb\x3f\xed\x16\xab\xb4\x1b\x92\xe0\xad\xa1\x69\xdf\x15\x76\x6f\x1b\x3e\xa3\x8e\x88\x0d\xd1\xd0\xad\x19\x0a\xde\x81\x7c\x8f\x56\x5a\x91\xd0\x29\x06\x8e\x5b\x90\x65\xfb\xbd\xc1\x09\x42\x4d\x4c\xe5\xa4\x07\x81\xe9\x8a\x56\xb8\xf3\x8f\x7e\xfb\xeb\xb7\x54\x65\x1a\x5c\xe9\x60\x2b\x69\xdd\xe7\xc8\xb8\x96\x00\xb5\x45\x2d\x68\xec\x7f\x60\x3b\x5d\x6d\x7d\xa3\xed\xbd\xb1\x83\x12\x19\x61\x21\x88\xea\xf7\x2b\xb5\x2b\xb6\xd0\x97\xaa\x33\xe3\x82\x90\x63\xa7\xe7\x06\x71\xb4\xdf\x49\x89\xfd\x3d\x13\x0d\x81\xf0\x90\x5a\xa5\xc2\x00\x64\x5b\x03\x7f\xbb\x38\xe3\xf0\x2d\x84\x86\xf9\xe6\x11\x3e\x3f\xcf\x55\x7f\x23\x07\x96\x04\x08\x8f\xc7\x3f\x0e\xf9\x33\xaf\x12\x27\x00\xe3\x01\x42\x9a\x32\x5e\x1e\x10\x2c\x51\xb4\xa7\x03\xa2\xcb\x40\x11\x5c\x7f\xbf\x7d\x79\x7e\x7e\xb0\xb5\x01\x88\xdc\x04\x37\x7a\x23\xf3\x7a\x91\x21\xed\x07\x7e\xf6\x27\x9c\xc4\x38\xc4\xb9\x2c\xd3\xba\xb8\x10\x74\xd4\x10\x73\x09\x1d\xd2\x7a\x7b\x3e\xf5\x34\x39\x86\x53\x1b\x92\x30\x70\x4d\x5e\x0b\x0d\xba\x01\xf4\x4c\x15\x98\x20\x89\xc0\xe7\x5d\x3d\x70\x96\x2b\x4c\x85\x8e\xbf\xd4\xe0\xb5\x24\x49\x88\xc5\x53\x94\x29\xd8\x42\xbd\x38\xc3\x05\x33\x43\x3b\x54\x60\x8e\x27\xcd\x2b\x28\x47\x89\x95\xd1\x49\xc1\xe5\xdd\x86\xb2\x37\x37\x70\xed\xdd\xd9\x1f\xe9\x98\x0c\x66\xcd\xcb\x9a\x48\xd4\xdb\x79\xcb\x1d\x62\x17\x2f\xe1\x1d\x78\x76\x93\x5e\x70\xa3\xfc\x0e\xad\x37\x7a\x14\xce\xe8\xab\x7e\x40\xba\x81\xff\xf4\x3a\x8e\x81\x47\xc2\xa3\x76\xba\x21\x64\xf2\xda\x89\x22\x11\x9b\x18\xd5\x0a\x4a\x8d\x3e\x20\x4f\x98\x87\xdc\x6a\x16\x2b\x55\xfd\xb3\xb6\xbb\x20\x48\x10\x88\x6d\x85\xcf\x1a\x72\xb5\x6f\xfe\x0f\xfb\xa7\x46\xf3\x45\xf9\x12\x55\x07\x9a\x10\x7e\xce\x47\x59\x5d\xb7\x1d\x15\x29\xee\x74\x90\xf4\x1b\x2e\xdf\x5e\x2a\x28\x57\xed\xb3\x29\x4e\xf0\xe2\xe7\xa7\x95\xfd\x13\x78\x4c\x82\x49\x9b\x9e\x2e\x34\x12\xcd\x3f\x83\x6f\x0b\x10\x61\xa6\xeb\xaf\x5f\x37\x83\x45\x09\xda\xc3\x28\x05\x3e\x4f\xd0\x18\x9e\x01\x1d\x85\x76\xa2\x08\xf1\x08\x94\x89\xb9\x21\xca\x8a\xa7\x13\xe4\x15\x16\xa2\x26\x93\x1b\xda\x8b\x03\xe9\x99\x2c\xf5\xb9\x86\xab\xe5\x0c\xed\x41\x82\x33\x73\xf5\xb8\xda\xad\x66\x0f\xc3\x25\xac\x7d\x06\x08\xfd\xb9\xd9\xdd\xdf\xf4\x52\xf2\x3a\xf0\x88\xae\x6f\x7e\x7f\xbb\x47\xea\xaa\xe7\xe5\x66\xdf\x4f\x26\xe8\xc0\x8b\xc2\xe8\xfa\x82\xfa\x16\x8b\x63\x4f\xa1\x3d\x14\xaf\x36\x05\xde\xe2\xbd\x89\x5d\x6d\x49\xd3\x65\xe3\x2d\x60\xf4\x60\xa1\x23\x30\xfe\x26\xf6\x11\x62\x5d\x18\xa0\x6e\xc7\xe3\x13\x65\xb5\x64\x97\xf5\x2b\xae\x23\x6c\xc4\x33\xe4\x48\xed\x28\x40\x5a\xa4\x63\x9a\xa7\xf9\x61\x95\xcb\x66\xe2\xbe\xc3\xc0\xdb\xd4\x21\x38\x8e\x81\x76\xa2\x00\x99\x9c\x26\x8c\xd0\x21\x10\xc0\x9b\x97\xc7\xaf\x1d\xcf\xdf\xa6\xda\xe8\x35\x93\x21\xe6\x2f\x17\xcb\x9f\xcb\x87\xa7\xe7\x75\xf3\xb6\x6f\x5f\x1e\x17\x7b\xa4\xfd\xd9\xad\xd6\xcb\xed\xf3\xac\x7d\xed\x4c\x03\x66\x27\x4e\xcd\x93\xf6\x27\x99\x8e\x98\xcb\x7c\x1b\xa2\x95\xc6\x41\xb5\x0b\x40\x47\x3c\x76\x4d\x1c\x30\x7b\x3f\x50\xdb\x1f\x85\x36\xfd\x9c\x8e\x4e\x3c\x1f\x3b\x67\x0a\xa3\xf0\xb4\x27\x72\xc8\xc9\x3c\xc8\xff\x06\xff\xb2\xbf\x8a\x95\x85\x55\x23\x0c\xa1\x5f\x47\x1d\x3e\x6c\x22\x1c\x9f\xea\xd1\xf2\x6d\x81\x90\xbc\xcb\x92\x9f\x1d\xaa\x1d\x0c\x2e\x6c\x51\xf4\xb1\x38\xa6\xa8\xa7\x78\xcf\xdf\xdf\x21\xaf\x66\xf5\xf5\x4e\x0c\xcd\x63\x37\xec\xf2\xf8\xf7\xc5\xb9\x82\x3d\xcf\xd5\x1e\xb7\x92\xfd\x05\x61\xf5\xd0\xdc\x6a\xe1\x84\x01\x5c\xc4\xfd\xa3\xf6\x61\x3b\x36\x66\xbe\x6b\x31\xff\xd8\x14\xd7\x78\x63\x3a\xcd\xe0\x65\xb3\x1a\xfa\x51\x5a\x24\x80\x05\x30\x5a\xe9\x77\xbc\x79\x9a\x3f\xf9\xb9\xec\x6f\x83\xa3\x07\x11\x9a\xf4\x2b\x4e\xbc\x71\xf1\x88\xb2\x62\x38\x42\x46\x02\x83\x37\x9d\x96\x55\x8b\xbf\x1c\x7c\x54\xc5\x5d\x30\x99\x94\x9b\x8c\xcb\x37\x9d\xf1\xae\x28\xd3\x6d\xce\x5a\xf1\x04\x93\x64\x1f\x6d\x4f\x61\x4f\x8d\x6d\x78\x51\xc5\x39\x62\x50\x6f\x06\xe9\x37\xad\x23\x81\x35\x38\x6a\x4b\xc1\x16\xbc\x91\x73\x60\x07\x72\x8e\x88\xc9\x1f\x69\x7e\x50\xc5\xb1\xfd\xbd\xf0\x75\xcf\xa7\x45\x9c\xaf\x79\xab\x38\x99\x86\xaf\x5e\x83\xa3\x08\x4a\xdb\x04\x17\xb3\xb2\x4c\xdf\x79\x36\x31\xe9\x34\x40\xe2\xb5\x1d\x1f\xcd\xb4\x87\x5c\x7e\x0d\x14\x5a\x9b\x91\xbe\xe3\x38\x11\x10\x4f\xe3\x81\x20\x73\x9d\x48\x5c\x73\x30\x16\x98\x21\x3b\x9d\xb3\xcc\x12\x59\x3c\x1b\xe4\x62\xef\x82\xbe\xe3\xb8\x5e\x82\x5b\x32\xba\xc2\x3b\xe0\x47\xe2\xa9\xa7\xcc\xd9\xd3\xfb\x34\x8e\xb4\xf9\x5d\xec\x91\x10\x0c\xcf\xc0\x9d\x5a\x16\xbe\xe3\x78\xae\x40\x37\x7b\x7b\x16\x8b\xf4\x7d\x74\x61\x2f\x70\x90\x82\x62\x3d\xfb\x73\xbf\x59\xde\xbd\xd8\x10\xd8\x77\x1c\xdf\x49\xb4\xd3\x31\xd7\x3f\xf3\x2f\xc1\xe5\xdb\x98\xb4\xd4\x77\x9c\xc0\x57\x38\xf9\x51\xcc\x72\x57\x4c\xf3\xee\x8e\x6e\x2a\x00\x8e\xb3\x74\xf9\xb4\x5d\x6c\x66\x6b\x7b\x4d\x16\x09\xc3\x32\x5e\x1b\x29\x49\x0c\xdd\x07\x24\x07\xcd\x30\x6d\x88\xf7\x8a\xc6\xcd\xca\xd5\x22\xd5\x1a\x4a\xc8\x29\xa4\xbd\x86\xcc\xf4\x1d\x27\xf2\x43\x4c\x0f\x59\x64\x66\xaf\x5b\xf4\x6a\xab\xc2\xf0\x8d\x47\x01\xa9\xa1\x18\xaa\x38\x2b\xa8\xa2\xec\x13\x24\x5e\x9f\x8f\xb9\xf1\x31\x7e\x41\x7a\x78\xad\xfb\xbc\x5a\xdd\x6b\x48\x7c\x22\x3f\xde\xe3\x03\x37\xee\x58\x75\x55\xe6\xb3\x19\xce\x29\x57\x90\x56\x1b\x38\x8c\x66\x62\x22\x24\x76\xd6\x63\x8c\xdb\x4c\x1f\x4c\xff\xe7\xf6\xbe\xb8\xcb\x23\x92\xf8\xfe\x6c\xd6\x29\xe5\x89\xb1\xc0\x3c\xb4\xd4\x58\x73\xe9\x7c\x94\xe6\x97\x1e\x15\x83\x25\xcf\xf7\x07\x18\xe9\x17\xba\x9e\x1d\x15\xb8\x6e\x2b\x89\x20\x8b\x52\x5d\xa1\x76\x6b\x86\x0a\x85\x75\xad\xe3\x3e\x3f\x1f\x09\x64\x54\xb5\xb7\x29\x29\xf3\x46\xbb\x55\xda\x44\x98\x58\x25\xe8\x72\x42\xbe\xe3\x88\x30\x51\x36\x3a\x1c\x42\x6b\x87\x2a\x4f\xcd\xa3\xf4\x66\x8d\xe0\x0e\xee\xe7\xa7\x12\xde\x77\x1f\x40\xd2\x5d\xed\x39\x79\x8c\xa2\x4c\x7b\x05\xb2\x50\xed\x9f\xa5\xe7\x25\x1d\xc0\x76\xcd\x3f\xdb\xa4\xca\x78\x63\x6e\x06\xfb\x4e\xe2\x5a\xb6\x80\x83\x55\x51\xa7\x8d\x7e\xa2\x74\xd0\xfc\x22\x72\x70\x0b\xde\x8a\xce\x2a\x36\x7f\x96\x7e\x44\x62\x02\x5f\xdb\xe2\x08\x7d\x26\xe3\x81\x30\xbe\xef\x38\x2a\x24\x21\x4a\x5b\x2e\x31\xf9\x1f\xf7\x3a\x21\x7e\xf3\xa3\x04\xb0\xdf\x2e\x95\x45\x63\x5c\x7c\x7b\x5d\x08\xa8\xc9\xb0\x82\xfa\x98\xe6\xa7\x71\x47\x52\x33\x22\x12\x58\x5e\xc2\xbd\xc3\x00\xd7\x2b\x54\x22\x54\xa0\x16\xe7\xc1\x77\x72\x9d\x30\xc6\x9a\xd5\xe2\x65\x43\x6a\xb8\x46\xcd\xb7\x3d\xce\x48\x25\x5d\xf2\x4c\xbe\xc1\xb0\xba\xd9\x1c\x16\x44\x6c\x40\x50\x95\xf4\xbf\xff\x45\xee\x74\xfb\x7d\xbd\x7f\xd9\x61\x9a\x32\xd1\x04\x3f\xaa\x76\xc5\x0d\x46\x1b\x69\x0f\xb5\x3a\x7c\x7c\xd7\x15\xe4\x0a\x13\xe6\x67\xb6\xd9\x3d\x5c\x19\xe8\x05\x3e\x16\xc6\x4c\xa3\xe1\x43\x21\x87\xdf\xcf\xf5\x82\x04\x4c\x91\xc4\x80\x4b\x7e\x41\xba\x9e\x8f\x1e\xc4\xe7\x0a\xd5\x0a\x36\x58\x4a\xea\x7d\x68\xd7\x97\x80\x2d\x20\x06\xcf\x3e\x38\x16\x38\xd4\x7a\x26\xce\x65\xbe\x92\x45\x2f\xf7\xe0\x3b\x6e\xe8\x27\x08\x8f\x27\xee\xfc\xcd\xe5\x96\xd9\x8c\x09\xb5\x65\xad\xfb\xef\xe4\xf4\x73\x43\x4e\x1a\x1e\x98\xe6\xd8\xa6\x87\x9c\xd7\xe7\x12\xda\x8b\x30\x1e\xf8\x66\x73\x5d\x1d\xf9\x01\x6e\xb2\x73\x59\x82\x9a\x8d\x2f\xc4\xc0\x75\xe2\x36\xb1\x7e\xc7\x8f\xb0\xe6\xf2\x35\xcd\x61\x74\xb9\x48\x83\x67\x1a\x2d\xb2\xd9\xf3\xea\x27\x94\x55\x6f\xb6\xc4\x9e\x13\x6a\x4b\xec\xd1\xc2\xf5\xec\x41\x9f\x23\x0e\xf6\x0e\x8e\x55\x5d\xe4\xc3\xb7\x18\x07\xcc\x37\x70\x86\x75\x8a\x8c\xae\xc3\xeb\xc6\x61\x84\x11\x1f\x51\x00\xf1\xe3\x29\x83\xbb\xf6\xb7\xb1\x46\x4a\x86\x9b\xc6\x64\x0e\xd2\x9c\xcd\x41\x49\xc2\x4b\x8d\x9b\x7a\x16\x08\x36\x31\xed\x4c\x13\xe9\x6d\xdf\x71\x93\x24\xc2\xad\xb6\x09\xb7\x0d\xab\xdb\xdf\x40\x02\xf8\x8e\xcb\x13\x41\x2d\xa6\x28\xd8\xd9\x6a\xc7\xff\x26\x15\xe4\x3b\xae\x48\x48\x2f\xad\xf1\xd2\x6f\x2a\xab\xf8\xe4\x3b\xae\x0c\x3c\x15\x59\xbd\xd8\x0d\x62\x1b\xe5\xe2\xdc\x98\x75\x2b\x84\xd5\x0c\x12\x12\xbd\x2f\x4c\x82\xaf\x1e\xef\xf6\x9b\xd5\xbc\x5d\x9d\x52\x33\x0c\x6c\xa8\x85\xbc\xa2\xde\x38\x7b\x50\x85\x9e\x93\x18\xe4\xec\x81\xd7\xd0\x7c\xd2\x7d\x05\x99\x56\x96\x43\x66\xf8\x66\x54\x08\x68\xb2\x4d\x12\x83\xa8\xd2\x2e\xa2\xf3\x66\xa0\x72\x90\x4c\x02\xa5\xf8\xbd\xfd\x7c\xf6\xdc\x5e\x52\x93\x6c\x9e\x81\xf7\x5e\x59\xb2\xc0\x13\xec\xd3\x20\xe2\x14\x74\x04\x17\xbc\x06\xb7\xe5\x95\x6a\xc6\x48\x8d\x51\xb7\x39\x13\xc9\x69\x95\xc5\x04\xc9\x82\xef\xb8\xda\x09\x58\xd0\xb5\xa3\x2d\xeb\x57\xfc\x3e\xd6\x66\xba\xda\x53\xbc\x65\xcd\x3d\x50\x0d\xa4\x6d\x2f\xb6\x63\x12\x1f\x06\xcd\x9a\xad\x2a\xda\xf0\xe6\xb5\x50\xd0\x72\x58\xff\x42\x12\x4d\xe8\xa4\xfe\xdb\x97\xaf\x95\xb0\xe2\xea\x44\x34\x54\xfd\xd1\x62\x95\xed\xc6\xe0\x39\x46\xa2\xb7\x42\x12\xa8\xfd\xa9\xf5\xef\x9b\x63\xdc\x8d\x2d\x9f\x25\xcf\x60\x89\xec\xcd\xaa\xe7\x61\x79\x0e\xf0\x98\x6a\x65\x75\x99\xc2\x3b\x0c\xfa\x88\x7d\xc7\x73\xc3\x10\x11\x44\xf3\xfb\x59\x7f\x29\x7a\x9e\x2f\x5d\xa3\xe6\xb9\x3f\x91\xfa\xd6\xf0\x19\x3d\x8f\xb9\x68\x73\xe6\xf3\x3f\xbb\xea\xdd\xa4\xaf\xe5\x79\x31\xc7\x93\xfd\x55\x9c\x67\x25\x6c\x52\xf9\x3a\xb8\x96\xef\x44\x89\x01\x58\x60\xd3\xf4\xec\x66\x75\xdf\x4a\x02\xb7\xef\xc1\x77\x81\x93\xd1\xc9\x37\x90\x17\xe7\xfc\xff\xe7\xec\x4f\xb6\x1b\xc7\xb1\xed\x71\xf8\x75\x72\x70\x07\x04\xc0\x06\x1c\xca\xb2\x1c\xa1\x1b\x6e\x54\x92\x1c\x91\x59\x77\xd5\xd2\x42\x73\x60\xb3\x4c\x91\xfa\x48\xca\x61\xd5\xd3\x7f\x8b\x07\x00\x3b\xd1\xce\xfa\xff\x6a\x90\x8e\x12\xc0\x1e\xcd\x69\xf6\xd9\xbb\x7f\x0d\x8c\x2a\xe9\xe4\x39\x77\x00\xf9\x64\xb9\xa2\x2c\x0e\x6d\xe1\x1d\x2e\x6b\x78\x69\x44\x4b\x4d\xbb\xf1\x18\x19\x8f\x17\xf7\xf7\x4f\xcb\xc3\xe3\xea\xd7\xe1\x79\xb7\x72\x84\xc8\x6d\xb3\x0e\x90\x4a\x7d\xd5\xbc\xd6\x4d\xd6\x39\x07\x34\x4a\x52\xe5\x12\xa4\xbf\x44\x95\x97\x95\x5e\xbe\x62\x28\x75\xf0\x9d\xa2\xc4\x4a\x15\xbd\x40\xd3\x69\xdc\x4e\xae\x1e\x0b\x82\xa9\xa8\xfb\xa7\x6f\x07\x2f\x40\xb1\xfa\xb8\xc6\x30\x77\xdd\x41\x1b\x8f\x2d\x38\xdd\x64\x5a\xf7\xc6\x17\xe5\xdc\x78\x02\xab\xbb\x2c\x9f\x92\x4d\x5e\x47\x3c\xdb\x43\x52\xe5\x4b\x99\x3d\x4d\xc4\xf8\xfe\x52\x16\x04\x16\xe5\xfe\xd1\xec\xc0\x0a\x09\x4c\xbb\xa4\x21\x8e\xb5\x53\x3b\xaf\x0e\xf4\x20\x3b\x0d\xdc\xb6\x51\x0a\xc4\x48\xf9\x82\x0a\x1b\xb2\xfd\xca\xba\xa1\x22\x24\x81\x55\x4f\x54\xe2\x32\x5f\x90\x73\x15\x65\x1a\xdf\x91\x48\x8c\x71\xe1\x89\x5b\x14\xa4\x99\x8c\x29\xa9\x14\x86\xb2\xac\xc9\xd1\x73\xcc\xb7\x4d\x5a\x50\x2f\x37\x0d\xf9\x35\x08\x78\x7c\x21\x15\xc6\x58\xc5\xe0\x5d\xd6\xf6\xb1\xee\xca\xaa\xf5\x00\x7d\x35\xcf\xc6\x0a\x82\x77\x2f\x44\x33\x1b\x63\x46\x0b\x0c\xd5\xdc\x00\x03\x69\x52\x4c\xd7\x52\xaa\x0d\x60\x3d\xaf\xea\x88\xf3\x37\xdd\x8e\x4a\x41\x5a\x09\xa5\x0e\x1f\xe5\xe3\xb6\x2c\xa0\x86\xd9\x88\x6e\xe7\x52\x7f\xf2\xa6\x4d\xc8\xfc\x80\xb1\xac\xc0\x8e\x6e\x1d\x1e\xa0\x79\x2d\x75\x9f\x53\x64\x01\x23\x84\x23\xf8\x75\x71\x4d\x89\xc5\x02\x46\x29\x8b\x4d\x9f\x05\x5d\x14\xfa\x27\x5c\x03\x6e\xbf\xde\x0c\x19\xa5\x96\xf8\xfd\x37\x64\x77\x65\xf5\xa0\xfc\xb3\x32\xca\x22\x24\x2b\x39\x68\xc8\xaf\xa8\x72\xda\xf6\x90\x21\x6f\x15\x96\xe2\x39\xf8\xee\x5a\xb7\x7e\xd2\x06\x19\x95\x86\x43\x9e\xd1\xd0\xd6\x2c\xde\x9e\x1b\xf5\xea\x4c\xe0\x7d\x79\x73\xbe\x7c\xe6\x49\xfa\xe3\x62\x85\xd6\xee\xc9\xa7\x28\x27\x37\x6f\x52\xc7\x18\x65\x4b\xf3\x5c\xf6\xf1\x61\x6a\xcd\x30\x46\x05\xd2\x63\x6e\xa8\x7f\x3c\x66\x42\x0c\x42\x9c\x44\xdd\x3c\x15\x80\xd5\x96\xae\x29\x4c\xac\xf4\x5f\xb7\xc3\x2f\x17\x7b\xdf\x16\xc7\xda\x1b\x5c\x88\xee\xac\x87\x03\x99\xc5\x3a\xc1\x89\x77\xcc\x0a\x1f\xf3\xfb\xf6\xdb\x15\x68\xb1\x80\x25\x61\x80\x49\xad\x4e\x13\x71\xd1\x0c\xa7\xf6\xe4\xcb\x24\x3c\x20\xd0\x69\x8e\x3d\x3a\x39\xd0\xb6\x41\x01\x16\x72\xbf\x15\xe5\xef\x62\x5b\xe6\x88\xfd\xa9\xe7\xaa\x8f\xda\xce\x60\x81\xf6\x3a\xab\xe5\xb9\xaa\xa1\x23\x07\x9d\xbc\x4a\x4e\x8c\x7f\x30\x5b\xf4\x92\x29\x91\x0f\x14\x48\xce\x5d\x0d\x50\xdb\x39\x55\x48\xd6\x88\xc5\x7d\x04\x93\xa6\xbb\x06\x4e\x7e\xbe\xb1\x54\x12\x05\x9d\xe5\xb2\xda\x7f\x77\xb5\xf9\x53\x7d\xd2\xb6\x2b\xc4\x18\x8c\x5a\x7e\x5f\x6c\xd7\xfb\xbf\xfc\x19\x04\x65\x89\x2b\x0d\xbe\xdd\x6d\x26\xc7\x08\x66\x79\x53\x11\x68\xf0\x7b\xf2\x20\x82\x73\xe4\x98\x54\x65\xf1\x0e\x95\x0d\x5f\x4e\x73\x32\x23\xc2\x2c\x77\x9c\x0c\x62\xf4\x5a\xad\x2c\xc3\xea\x08\x15\x06\xb0\x7e\xf5\xfa\x2f\xfe\xde\x64\xa4\x99\x95\xce\x5b\x17\xcd\x78\x9c\x4b\x4e\x30\x62\xf7\x50\xca\x2c\xcf\x8a\xb7\xe1\xde\xcb\x64\xca\xb0\x1a\x73\x07\xcd\x7d\xf9\x82\xbb\xc5\xf8\xb9\x24\x98\x24\xec\x4a\xab\x16\x79\xfe\x00\x75\x2d\x5e\x60\xb2\x3f\x30\x45\xa3\xd8\x79\x40\x5b\xf1\x06\x6b\xa7\xfb\xfb\xc9\x38\xd2\x01\xc7\x89\x9a\x67\xc7\xac\xb9\x2b\x2b\xac\x57\xcd\xb3\xba\x59\x8f\x17\x1b\x48\x42\x6d\x97\x13\xab\x42\x54\x76\x13\x02\x74\xc2\x44\x47\xe5\x9d\xe7\x9f\x32\x29\xfa\x98\x11\x03\x48\xb9\xa5\x45\x75\x85\x12\xb7\x50\x0d\x62\x53\x93\xe7\x31\x91\xc1\x69\x7c\xbf\xfa\xb6\x7a\xbc\xf5\x57\x35\x86\x60\x51\xc6\x5f\xb7\xfb\xa5\xfb\x2d\x0c\xe2\x90\xda\x59\x7b\xf9\x5f\x5b\xa8\xe0\x5b\x08\x11\x68\x03\x23\x71\xa1\xd6\xdf\x44\xd6\x39\x7e\x21\x91\x82\x76\x34\x74\x15\x28\x31\x22\xd1\x77\x9d\xa8\x24\x89\x83\x76\x3d\x1f\xdf\x84\xb7\x1c\x86\x9f\x37\x64\x84\xe3\xa2\x01\x3a\x6b\x3a\xc7\x7d\xf4\xb6\x43\xa6\x2c\x3d\x24\x56\xa8\x15\x6f\x43\xf7\x7b\xf4\xb6\xfa\xe4\xd6\x4c\x84\x22\x0c\x59\x80\x4c\xfe\x27\x28\xce\x79\x93\x1d\x05\x26\x9f\x6c\x68\xb3\x97\x35\x75\x9d\x23\x41\x91\x4d\x64\x57\xaa\x0c\xfa\xd4\xec\xf8\xf1\x22\x21\x70\x7b\x76\x34\x1c\xee\xd7\x98\xc7\xb8\x22\xb9\x0d\x66\x87\x6e\xc8\x64\xb8\x85\xb1\x01\x04\xe5\xfe\x79\xce\x87\xe3\x39\x4c\x98\xa2\xa6\xdb\xb6\x31\xe7\xf6\x28\xfa\xdb\x4a\x03\xc0\xc8\xce\xa9\x2a\x91\x47\xd2\x2f\xe1\xa3\xf5\x29\x14\x61\xe4\x39\x00\xde\x45\x7e\xee\x1c\xe9\x50\xf0\x44\x26\x1d\x21\x7b\xf1\xad\x2a\xcf\xa7\xc9\xbb\x16\x32\x41\x6e\xa3\x5b\x90\x4e\x98\xc4\x91\xb6\x7d\x01\x0e\x61\x41\x28\x85\xc2\x7d\xd3\x9c\x0b\x75\x08\x16\xb1\xf7\xde\x42\x15\xa7\x18\x87\x3c\x9c\x84\x7a\x5b\x37\x70\xc4\x94\xc1\xfc\x49\x94\x64\xda\x4b\x2f\x57\xe7\x7a\xee\xaa\xbd\x6b\x10\xea\x28\xc0\x0c\xbf\xd0\xf8\xf9\x46\xe7\xe4\x83\xff\x76\xac\x4a\xd3\xff\xf6\x17\x46\x1c\x11\x9a\x3f\xad\xc7\xbc\x29\x67\xd2\x81\x9f\xed\xfc\xc3\x1b\xd2\x09\xba\x43\xeb\x1a\xd5\x90\xba\x8f\xa6\x35\x60\x9a\x14\xda\xcd\x6d\x07\xcd\x58\xef\xfe\x93\x17\xaa\x21\x09\x11\xa1\xb6\xd8\xfe\x58\xed\x5b\xff\x13\x33\x99\xdb\xa7\xe7\x6e\x36\x87\xda\xd8\x2a\xb4\x43\x59\x58\xb3\xe7\x4e\x64\xf9\x98\x5f\x8f\x05\x21\x84\xdc\x95\xdb\xbc\xb4\x36\x54\x56\xbc\x74\x90\xed\x2f\x63\xe3\xa1\x61\xa1\x25\xc3\x3b\xe5\x59\x73\x93\xe9\xc9\x48\x31\x91\xf5\x90\x8f\x97\xe7\x1a\xaa\x6b\xd0\x66\xdb\x85\xdb\x9a\xe2\xba\x63\x20\x1e\x45\x8f\xa2\x20\x88\xad\xb0\x97\xd6\x2b\x51\xe5\x97\x9b\xac\x9a\x45\xe6\xb6\x5d\x29\x8d\x1d\x71\xfe\x90\x15\xfa\x13\x05\xd7\xf6\x80\x24\x8c\x1c\xa3\x7f\xfb\xb0\x37\x03\x63\x3e\x0a\x92\x08\x69\xd6\x1f\xcb\xea\x28\xf2\xec\x3f\xb0\x45\xed\x16\xdf\x9a\x86\xe8\xe0\x67\x75\x3b\x66\xdb\xbd\x42\xe4\x30\x28\xec\xc0\x2e\x12\x81\x69\x18\xe4\x1e\x32\xb9\xb4\x6d\x4a\x88\x11\x8d\x07\xaa\x00\xda\x8f\xe2\xd0\x41\x91\xef\x6a\xac\x6d\x33\x20\xca\xaf\x7d\x45\xd4\xf8\xf1\xa9\x4c\xa2\xc1\xee\x5f\x5c\x91\x03\xb1\x20\x62\x02\xb4\x8d\xc5\x9d\x6e\xcb\xb3\xcc\x87\xc4\x3d\xfe\xe6\x42\x95\xa4\xa2\xb3\xb6\xcb\xca\x1b\x40\x51\xc2\x34\xc2\x08\xc4\x59\x67\xcd\xb7\xf3\x10\xd9\x31\x82\xdf\xcc\x6c\xf3\x51\xc2\x2d\xa0\xb5\x5d\x9f\x3d\x05\xa8\x5f\x99\xfc\xd7\x1c\xae\xf9\x51\xa2\xad\xa2\x56\x05\x75\xa6\xcf\x22\xb7\x51\xec\x4d\x55\x1e\xb3\x3c\xef\x5e\x24\x4f\x62\x61\x43\x47\x08\x7d\xc4\xf4\x93\x6b\x4a\x59\x2a\x03\x9f\x9f\x51\x90\x9d\x2c\xd9\xc3\xbc\xff\x1e\xa5\x69\x82\xd9\x1c\x84\xdb\xec\x84\x99\xcd\xbd\x62\x3f\x89\x17\xdc\x3d\xed\x6e\x9e\xf6\xfb\xa7\x87\xee\x72\xa9\x51\x91\x33\x1b\xdf\xa1\xba\x4e\x2c\xb6\x7d\x84\x42\xfc\xd2\x24\xde\x36\xbe\x13\x11\x27\x82\x77\xe1\xd2\xfb\xac\x9e\x6a\x59\xb5\x7d\x12\x5b\xc9\x86\x94\xe2\xc8\xbd\x8d\xf6\xf0\xcd\xe5\xe6\x7c\xb9\x5e\x36\xfc\x41\x69\x8a\xc4\xf1\x3f\xe0\x58\x16\xa5\xf2\x80\x08\x16\x44\xd2\xe9\x5f\x59\x95\xe1\x73\xf5\x29\x91\xfa\xe7\xf0\xb5\xf6\x2c\xca\xe0\x9c\xc0\x75\x39\x87\xba\x1e\x50\x40\x1e\x36\x55\xd9\x80\xfd\xa7\x45\x70\x77\x53\x49\xc7\x96\xfb\xb3\x6e\xca\x53\xbb\xf8\x6c\x45\x56\xfb\x12\x4f\x16\x44\xc0\x22\xcc\xdb\xc2\xcb\xcb\x30\xde\x10\x81\x00\xb4\xea\x1c\xb0\xe4\x5c\x67\x05\xd4\xf5\xe7\xfa\xd6\xed\x21\xed\x46\x63\xa9\x5e\xb2\xfa\xf5\x8f\x49\xa3\x0e\x2c\x29\x72\xf6\xee\x51\x13\xe3\x0e\x86\x24\xda\xe1\xe5\x97\xd5\x45\x57\xf3\x75\xda\x6d\x47\x05\xb8\xe5\xeb\x9e\x2c\x97\x05\x71\x40\x19\x7a\x0f\x1d\xcf\x8a\x67\xe1\xf7\x2f\x22\x26\xda\x56\xa8\x7c\x7b\x5a\x76\x3f\x81\x45\xaa\x78\x70\x37\x0e\xad\xbf\x71\xde\x62\xaa\xb4\x8d\x51\x78\x85\x27\xc7\x77\xcd\x82\x98\x05\x31\x9a\x2c\x43\x84\x32\x4a\x17\x8f\xb3\x92\x48\xc7\xde\x74\xb7\xce\x78\x22\x42\xa7\xdc\x3b\x8e\x29\xbb\x0e\x61\x10\x13\xe9\x53\xc2\x8f\x65\xb3\x3b\x8a\xaa\x99\x83\x8d\xb4\x7d\xc3\x10\xe3\x79\x8b\xdd\x72\x39\x34\x6b\xe2\x28\x05\x5b\x60\x59\x16\x70\xb9\x11\x5d\xf4\x29\x8e\x44\x94\xb8\x17\xbf\x58\xe5\xe6\x16\xde\x31\xf7\x5e\x67\x13\x53\x32\x8e\xb4\x25\xa0\xa8\xa1\xf9\x29\xaa\xcc\xa1\xbc\x4b\x29\x64\x7e\x99\xdc\x71\x92\x58\x56\xbd\x63\x27\x7f\xe8\x68\xce\x7c\x3b\x27\x8a\x8c\xaa\x85\x6c\xf4\x72\x98\x33\x8f\xb9\x34\x48\xa0\x81\xb4\x7f\x08\xd2\x9b\x0c\x85\x38\x6d\x4d\xbd\xf6\xa3\x37\x39\x88\xba\xf9\x27\x54\xe5\x1f\xa3\xfb\x10\x14\x70\xb2\xeb\xac\x76\x58\xa3\x11\x13\xd3\x68\x82\xc5\x22\x0c\x30\xc8\xa7\x21\xb7\xc8\x8d\x07\xf1\x06\x53\xb9\x9c\xc9\x60\x10\x3c\x42\x8f\xe0\x74\xb0\x13\xe5\x70\x7c\x84\xdf\x9b\xbc\x6c\xf6\xe2\xc3\xd7\x18\x8f\x5f\x8d\x90\x04\xe3\x3c\x4e\x5d\x18\x63\x2a\x73\x29\xc4\x58\x40\x84\x84\x4e\x75\x23\x0a\xbd\x28\xf4\x16\x24\x8c\xb3\xc1\xdc\x53\xb0\x74\xc0\xd7\xd9\xf5\x63\x8c\x9f\x1a\xfc\x3e\x7e\x7c\x19\x30\x5f\xa1\xe9\x62\x37\x59\x59\xac\x8a\xab\x1c\x4f\x2c\x03\x8d\x26\xc3\x0e\x1a\xe4\x5b\xd0\x9e\xae\x6a\xfe\x15\xc9\x50\x83\x33\x1b\xfe\x71\x16\x08\xe5\x6b\x57\x5d\x2b\x04\x5d\x96\xf9\x7f\x43\x3d\xce\x82\x58\x85\xd6\x84\xeb\x87\x8c\xad\xde\x07\x4b\x01\x3a\xb9\x47\x95\x50\x4c\x6b\x42\xf3\x7a\x90\x23\xe3\x20\xd6\x21\xe0\x6a\x7c\xae\xa1\xfa\x2e\x6a\xef\x09\x4f\xbc\xb7\x58\x1b\x8a\xe9\xcd\x6f\x9b\xdd\x2d\x72\xa0\x59\xb7\xc8\xdd\xdb\xec\x2d\x02\x83\xd4\x16\xcf\x3d\x6c\x16\x8f\x7f\x0d\x54\x64\x59\x90\x04\x2c\x42\xd9\x36\x79\xbe\x2c\x1e\xd6\x23\x07\x2c\x09\x94\x25\x77\x74\x98\x0f\x8b\xb4\xef\xf3\x61\x09\x09\x0c\x26\xf4\x97\xd5\x90\xc6\x72\xf6\x3d\x25\x34\x52\x08\x7d\xb4\xd5\x20\x4f\x66\x53\x9e\xd6\xc5\xa2\xb8\x6c\x72\xd1\xa0\xb5\x31\xe9\xae\x0c\x0a\x44\x1d\x2c\xbe\xba\xb5\xc4\xbc\x89\x95\xb0\x88\x05\x72\x40\xd8\x4d\xbb\x06\x65\x19\x73\xed\x1e\x6a\xb7\xdb\x9b\x8b\xa7\x21\x99\x5c\x81\x81\xb1\x22\xe8\xde\x18\xb3\x42\x54\x59\x59\x78\xe0\xa1\x1f\x82\x49\xc8\x29\x92\x85\x6d\x9e\xd6\x8f\xfb\xc3\xf6\xe9\x69\xff\xf8\x74\xbb\x3a\x6c\x9f\xba\x44\x71\x12\x2a\x35\xd0\x58\x3d\xe8\xd6\x95\x19\x8d\xe3\x24\x34\x56\x88\x67\x59\x1e\x4f\x95\x38\x8c\x89\xf2\x27\x2f\x2b\x0a\x6d\x11\x2f\xa6\x9c\xfd\x6f\xb1\x40\xf2\xc6\x87\xcb\xde\x93\x64\x75\x4d\xc6\x6e\x96\x2f\x48\xc2\xe9\x7f\x8d\x29\x60\xd5\x0a\xb2\x3e\x3d\x88\xe2\x2c\xf2\xfc\x72\xe3\x55\x1d\xba\xf3\xc6\xae\xf6\xce\x80\x7a\x5d\xe4\xf9\xee\x7c\x7c\x3c\x1f\xef\xca\x6a\x29\x0a\x8d\x34\x5a\x48\x90\xf8\x32\x19\xc9\x49\xac\x15\xbe\x3e\xe4\xf4\x79\x17\xf9\x24\xb3\x9e\xc4\x10\xa1\x55\xde\x88\xe2\xed\xe9\xec\x03\x07\x49\x62\xb4\xe9\x50\xbf\x8f\xf0\x7b\xbd\x7c\xb2\x7a\x92\xf3\x2f\x82\x6b\x19\x0f\x8b\x4f\x17\xe7\xe6\xb5\xac\x26\xa8\x5b\x16\x24\xa9\xd6\x8a\x39\x06\xfe\xe2\xe6\x7c\xf1\x97\x13\xc4\x84\x4e\x35\x5f\x1c\x6b\xac\xca\xf1\x4d\x2a\x36\xb8\x23\xfd\xbb\x94\x7f\x4f\x6c\xd3\xf6\x4f\x44\x30\xe4\x4d\x5a\x7d\xb4\x7e\xf6\x27\xf4\x12\xfe\x18\x11\x84\x5e\x72\xc1\x16\x52\x1e\x8e\x59\x71\xae\x0f\x06\xa6\xef\x53\x53\x4b\x30\x8c\x59\xb0\xd5\xb3\xc7\x38\x25\xc0\x38\xfa\x13\x59\xbd\x5e\x2e\x26\xa1\xb9\x04\x78\x4c\xc2\xaf\xe8\x2e\x3a\x56\xa0\x6e\x18\x82\x36\xc6\xe9\x42\xbb\x64\x73\x67\x56\x27\x86\x45\xd0\xbe\xad\x45\x39\xac\xc6\x6f\x1b\x62\x1a\x86\x03\x2e\x07\x9d\x89\xc9\x9d\x98\xd8\x06\xb6\x4d\x56\x68\xeb\xc5\x4e\xac\x05\xde\xde\x6d\x0f\x09\x5e\xee\x7e\xce\x80\xda\xdb\x6e\x32\x45\x91\xb0\x5d\xa9\x32\x91\x0f\x37\x5e\x4e\x38\xc1\x4d\x0d\xb3\x2f\xc4\xff\x4a\x23\xc6\x8d\xb3\xbb\x8e\x22\x1f\x28\x1b\xbb\x0e\x2c\xb2\x8c\x50\x37\xb7\xcb\x65\xf7\x9b\x08\xcd\x30\x67\xd3\xad\x21\x9c\x09\x69\x29\x57\x5b\xaf\xae\x35\x66\x3c\x6a\xc1\xbf\x41\x1e\x06\x8a\x91\x31\x2f\xb7\x8d\x84\xd8\x68\x7c\xbb\x05\xdc\x95\x15\x64\x2f\xc5\x63\xd9\xac\xdb\xaf\xe2\xcf\x1d\x02\xc3\x44\x6c\x71\xbb\xfa\xf3\x6f\x41\x5d\x5f\x26\x12\x78\x44\xad\xbc\x77\x01\xbf\xbf\x89\xe3\xa7\xb9\x78\xdf\x3b\x4d\x3b\x1c\x6d\xd3\x54\x3f\x5d\x68\x3f\x0e\xff\x67\x10\x92\xe4\x91\x4a\x71\xa7\xdd\x41\x9e\x63\x8a\xc1\xaa\xe1\x83\x57\x59\x1d\x0f\x6e\x1e\x47\x2c\x1e\xaa\x58\x6c\xe1\x28\x10\x61\xec\xc1\x40\x5d\xbf\x08\x69\x30\x17\x74\x94\x88\xe5\x71\x42\xd0\xe1\x3c\x78\x59\xac\xe7\x2a\x9b\x29\x41\x67\x01\x4f\x88\x2d\x4a\xd4\x65\x51\x76\x69\x26\xce\x83\x10\x05\x9c\x24\xf2\xec\x0e\x78\x32\xe6\xe3\x26\x9c\x27\xa9\x74\x2c\x7c\x08\xac\x2f\xa7\x70\x14\x2e\xd2\x04\x97\xc2\x83\xee\x32\xda\xe3\x61\xce\x85\x21\x08\x6f\xcb\x05\x96\x94\xb4\x2b\x00\xe8\x5b\xe1\xd7\x1b\x2e\xa9\xd1\x9d\xda\xb9\xf5\x73\x5d\x0d\xdb\x15\x21\x73\xdb\x3b\x31\x60\x79\x64\xdf\x46\x70\x11\xae\x82\x00\x2f\xa3\x9c\x11\xda\xe5\xeb\xbb\x41\xa8\xe3\x98\xb0\x8e\xf1\xbc\xb8\x42\xdb\xfa\x6f\xaa\x55\x82\x15\xc7\xb7\x59\x8d\x5c\x44\xde\x63\xfa\xa3\x6b\x57\x38\x24\x31\xdd\x8f\x24\x3f\x7d\xe8\x9d\x03\x91\x18\x72\xcc\x1b\xb5\xd6\xdd\x8f\xd4\xea\xbd\xf9\x54\x6e\x3d\xba\x73\x88\x19\xc6\x75\xf6\xd9\x8b\xf3\x86\x3f\x2f\x38\x67\x01\x37\x51\x10\x49\xa7\xcd\x34\x10\xb5\x6d\x5b\x24\x43\x0e\xc6\x6f\x95\x38\x8d\x5e\x4e\x1a\x48\xc0\x94\x73\xd5\x43\x93\x41\x4f\xd6\x3d\xd7\x95\x48\x85\x06\x8c\xc0\x1a\xb8\x05\x62\x5b\xa7\xc5\x07\x23\x40\xde\xe8\xfb\xa4\x34\x88\xb0\xe6\xda\xd5\x3d\xe3\x03\x4f\xfd\x9b\xf9\x19\x97\x52\x61\x65\xa7\xab\x4f\x98\xef\xda\x2e\x90\x30\x17\xd0\x7d\x2c\x9f\x8c\xdd\x95\xbb\xfa\xaf\x41\x9c\xba\x3f\x2b\x8b\x20\x74\x01\xbb\xc1\x04\xfd\x9b\x5b\x09\x69\x68\xc0\x6f\x42\x79\x7e\x28\x30\x7f\xe5\x1b\x99\x41\xd3\xc6\xf2\x27\xb4\x3b\x54\xb7\x70\xa6\x61\x14\x62\x85\xa9\xa3\xd3\x18\xc7\x6b\x46\xdf\x31\x8d\x52\xfb\xb5\xc0\x27\x72\xf6\xaf\xe2\xb7\x3f\x4f\x4c\x35\x96\x71\xff\xb8\x48\xcb\x9f\x96\x55\xf2\xdc\x94\xd5\xb8\x28\xbf\xed\x18\x51\x5f\xce\xb0\x29\xcb\x1c\x79\xea\x7d\x5b\xe2\xd8\x56\x6b\x91\x43\x4f\xa7\xd6\x36\x18\x8b\x33\x93\x79\xe9\x77\x8a\x94\x53\x1e\x45\x5e\x11\x45\xe6\x59\xfd\x8a\xb0\xa8\xb7\xd9\xca\x93\xb6\x7f\x6c\x7d\x81\x06\xe1\x9c\x96\x64\xd9\x55\x5f\x77\xa7\xd4\x8c\x89\x0e\x6b\x34\x49\x79\xa7\x69\x18\x59\xae\x3f\xcb\x80\xe8\xf8\x25\xc7\x17\x49\x63\x9e\xba\x94\xbc\x82\x9b\x69\x44\x34\x15\x32\x01\x5f\x5a\x84\x29\xf5\x4c\x65\xa7\x4f\x51\x44\xa9\x0c\x6d\x8c\xbb\x53\x72\x72\x2e\xba\x6f\x76\xa8\x6f\x9b\xdc\xb2\xbb\xd2\xe4\x7e\xa4\x20\xb8\x34\x9c\x4f\x2f\x95\xd0\xb0\xcc\x45\x3d\xbd\x65\x45\x6c\x14\x72\x53\x95\xf5\x09\x99\x1d\xeb\x27\x99\x67\x36\x49\x39\x9a\x94\x8a\x91\x48\x3b\x6b\x7a\xdf\x11\x66\x8e\xbc\xeb\x54\x31\xc0\x44\xe2\xa1\xf5\x9c\xf5\xe6\xe7\xc6\x1a\x0a\x03\x25\xef\xfe\xca\x3a\x48\x71\xa4\x6f\x57\xf7\xab\xc5\x6e\x75\xb8\x5d\xec\xbd\xad\x9d\xea\xd8\x92\xd2\x08\xad\x7f\x42\x65\x29\x30\x87\x30\xe9\xb9\x01\xaa\x39\x45\x32\xcf\xf5\xf2\x09\xd5\x96\xfc\xcf\x29\x43\xca\xbb\x3f\x57\x8f\xfb\xd1\xf3\x40\x90\x60\x34\xa5\x27\xa4\xc5\x28\x75\xd6\xcf\x1c\xa0\xb6\xe8\xcd\x6a\x55\x4e\x22\x94\x29\xb0\xd8\x2b\x52\x3c\x3a\xdd\x74\x97\xf5\xe9\x4f\x10\x07\xb8\xba\x48\xd1\xa8\x57\x3f\xef\x2d\xb5\xe6\x15\x56\xb8\x3b\x84\x21\xa6\x69\x97\x1d\x4f\x28\xe9\x6a\x91\x6c\x65\xb5\xfe\x0c\x90\x9d\x9a\x24\xa4\x96\x3d\x3c\xcb\xf5\x1e\xc4\xf1\x41\x9c\x4e\x3d\x01\xc7\xec\xcb\x32\xa9\xd5\xc4\xf3\x74\xed\xa7\x4c\xdd\xba\x34\x65\x27\xd8\x4a\xa2\xb1\x61\x99\x1a\x25\xb1\x72\xe1\xa1\xdd\xcc\x3c\x9f\x51\x9f\x03\x11\x81\xa4\x68\x36\x7d\x5d\x86\x83\xe7\xf4\x91\x7a\x41\x74\x82\xe6\x7b\xdd\x4e\xf8\x57\x44\xed\xbb\x58\xdf\x90\x65\x98\x05\x82\x86\x02\x6b\x30\x1d\xf0\xce\x12\xc0\xf6\x85\x59\x2c\x10\x8c\xc4\x68\xbe\xbb\x78\x4b\x97\xc5\xf5\xcd\x91\xf2\x49\xee\x9e\x99\x83\x06\x5d\x73\xaa\x71\x78\x9f\x2a\xe4\x1b\x77\x8a\x72\x1d\x0d\x6a\xdb\x43\x81\xaf\x0c\x7c\x3c\x1f\x97\xaf\x59\x97\x9f\x17\x51\x64\x45\xa0\xea\x63\xdd\x29\x34\xf8\xb6\x38\x4d\xfd\x4a\x75\x07\x30\x20\xc5\xef\xda\x25\x42\x6c\x37\xf9\xb9\x29\x55\x25\xd4\x65\xa1\x5e\x33\x78\xef\x4b\x8c\x47\xdd\x13\x16\x21\x9f\xa6\x53\x43\xac\xca\xa3\xd3\x8b\xd1\xb3\xd8\x2c\x91\x08\xcb\xbf\xe9\x04\x7c\x30\xd5\x72\x4d\xf7\xcb\x02\xc1\x25\x45\xa0\xf4\xe3\xf3\xc3\x61\xbf\x5a\x3c\x78\xf0\x98\x48\x23\x21\x1c\x06\x73\x07\xd5\x7b\x76\x4d\xa1\x34\x2e\x2b\xfc\x9f\x81\xe1\xf9\xf5\x9f\xee\x02\x80\xfa\x10\x9d\xa9\x0e\xcd\xeb\xe4\xe6\x52\x30\x51\x1f\xa7\x28\xdf\x66\x8d\x01\x21\x18\x21\xed\xa8\xfe\xc7\xc3\x3f\x96\x7d\x14\x5c\x08\x4e\x3c\xca\xcd\x42\x69\xfc\xef\x4a\x05\x2e\x8d\xbd\xa9\xca\x7f\x83\x6a\x16\x2f\x30\x45\x05\x09\x19\x08\xe2\x10\x7e\xeb\x6e\x36\x5e\x19\xa2\x73\x9f\x4a\x0a\x85\x71\xb4\xca\x8a\x95\xc3\xc7\x27\x33\x58\x48\x13\x62\x2e\xaf\xce\x5e\x8a\x9b\x9b\xa7\xb1\x3e\xc6\x90\x1e\x9f\x05\x42\xb1\x20\xea\x2a\xf7\xdb\x53\xce\x5d\x59\x31\x1a\x3a\x1e\xe1\x3e\x42\x3a\xb9\xa8\xd2\x14\x71\xe5\x65\x61\x91\xa0\xeb\xe2\x47\x27\x2d\xda\x36\x83\x44\x57\xec\x5d\xa0\xa6\x2a\x38\x78\xf7\x06\xdd\xec\x6e\xf9\x62\xff\xba\x12\x53\x20\xe4\x5f\xe3\xb8\xdf\xf4\xba\x60\xe3\x03\x68\x8f\xd8\x12\xa3\x51\xb8\x42\x68\x42\x31\x21\xdb\xc7\x85\xee\xce\x85\x46\x6a\xe2\xea\x8a\x99\xa2\xed\xaf\x2c\x5b\x34\x6a\xc6\x74\xe9\x4d\xd7\x08\x5c\x63\xd1\xe3\x9f\x59\x61\xfa\x11\x61\x42\x22\x9d\x6d\xfd\xd3\x3e\x5f\x59\xcd\x1a\xf0\x32\x80\x00\x03\x60\xc2\x0b\x0f\xbf\x41\xd1\xa1\x61\x87\x5b\xd2\xe4\x30\x23\x44\x5f\xc9\xe7\x05\xdd\xbf\x4e\xfb\x4a\x2a\xb9\x67\x1d\x6d\x9c\x6d\xf2\x15\xc6\x50\xb2\x30\x48\x9d\xd9\xb7\xb6\xef\x6a\x28\x46\xd5\x76\x48\xc5\xc8\x7f\x9b\xf5\xc7\x25\x13\x29\xbe\xa2\xd6\x4b\xeb\x62\xe2\x75\x7d\x2a\xab\xe6\xbe\x7c\xc9\xd4\x68\xb9\x92\x61\x48\xf1\xa2\xb6\xee\xff\x66\x88\x9e\x1e\x8e\x53\x19\x91\x14\x9d\x76\xc4\x57\xdb\x0d\xd2\x6a\xeb\xf8\x4f\x23\xa3\x44\x22\x1e\xcb\x02\x18\xc7\xb1\x34\x19\xc7\x21\xe6\x06\x70\xfb\xef\xaa\x02\x9c\x62\xcc\xf0\x3a\x71\xac\xa0\x63\x81\xd9\x54\xe5\x87\xb7\x27\x65\x9c\x86\x34\x1e\x86\xff\x0e\x90\x67\x2f\x99\xcc\xc1\xb2\x6f\x74\xe1\xd9\xf9\xb7\x9b\x50\x4a\x8d\xfb\x1a\x83\x9c\x9a\x4c\x22\x82\x51\xdc\x2a\x7b\x87\xe6\x3f\x0e\x34\x39\x19\x35\x9c\x32\x74\x60\xce\x35\x54\xdf\xaa\xf2\x77\xf3\x3a\xde\xcd\x24\x37\x1c\x77\x9b\xef\xbb\x1b\xff\x53\x2a\x0c\x62\x13\xfd\xc7\x72\xf9\x7a\xdf\x2c\x82\x10\x17\x2b\x2c\x67\x7e\x7a\x58\x2f\xff\xec\x5a\x9c\xf1\x0d\x99\x2e\x4b\x27\xac\xe1\x9a\x64\x12\x62\x5c\xf8\x80\x16\x88\x45\x26\xb4\xbe\xe1\xb3\x35\x08\xff\x98\x71\x90\xfc\x91\xd2\xb2\x52\x67\x6e\xc9\xeb\xe4\x4a\x59\x20\x35\xb5\xdc\x60\x0f\xa2\xae\xb3\x77\xc8\x2f\x18\x91\xb1\xc2\x8f\x4f\x45\x9e\x15\xf0\x33\xd3\x50\x7e\x1b\x78\x21\x52\x33\x00\xe9\x29\x30\x7c\xf8\x60\x34\x8f\xa5\x8e\x6d\x4e\xec\x28\xaa\x97\xac\xc0\xba\xec\x59\x5b\x5e\x6a\xcd\xbc\x94\xc8\xa6\xac\xeb\xf6\x8b\xfe\xca\x8a\x71\x2a\x63\x7a\x88\xa1\x28\xd9\xb6\x2d\x65\x56\x7c\x2f\xcb\x6e\x10\x42\x64\xf5\x59\x9d\x21\xf4\x9a\x55\xda\xf2\x3e\xdf\x5c\xd7\x05\x48\x43\x35\xb2\xa0\xfc\x7e\x15\x39\x8c\x33\xff\xd2\x80\xad\xb9\x5b\x19\x03\x58\x69\x05\x57\x11\x4f\xff\x72\x55\x60\x38\x16\x3c\xd6\xea\x15\xf4\x39\x87\xa1\xa4\xde\x28\x43\xe4\xfa\xd3\x94\x22\x94\x4a\x95\x85\xca\xcf\x1a\x9e\xef\x3c\x7e\x52\x51\x23\x51\x25\xef\xb9\xb6\xa1\xd3\x99\x72\x5f\x16\x28\x16\x70\xed\x09\x8c\xd6\x48\xf6\xb0\x14\x5d\xd0\x4a\xb5\x06\x4c\x60\x45\x83\x5e\xcb\x2a\xfb\x0f\x3a\xb3\x77\xe7\xdc\x64\xd7\x49\x50\xc5\x98\x46\x6b\xe0\x80\x44\x37\xd6\x81\x9a\x7d\xe7\x8a\x81\x10\x9d\x78\x96\xbf\x56\x98\x18\x2f\xfb\x81\xbb\x4e\xbb\x4f\x0f\xd3\xbf\x2a\x62\x16\xec\xd0\x99\xbe\xdf\x11\x47\xd5\x5b\xf4\x2a\x12\x36\x24\x0a\xae\x7e\x61\x5f\x7a\x0e\x99\xf9\xfb\x48\x42\x08\x3a\x75\x18\x9f\x74\xf1\x27\xe3\x22\xb4\x35\xa0\xdb\x51\xd2\x52\x71\xd3\xe1\x25\x1d\x1c\x69\xf7\x5a\x9e\x86\xe0\x54\x95\x32\x5b\xf6\xf2\x0d\xeb\xae\x1c\xb8\x79\xad\x27\x3b\x88\x4a\x93\x00\x53\x85\xa7\x76\x40\xdd\xe5\xc2\xcf\x68\x25\x02\x81\x86\xdf\xed\xea\x7e\xf5\xcd\xd6\xa6\x7d\x5f\xec\xbe\x1f\x56\xeb\x4d\x42\x7c\xb4\x52\x49\x62\xd5\xa0\x4f\xe5\x69\x60\x6b\x2b\x45\x34\xe1\x76\x5f\xba\xad\xca\xd3\xee\x55\xe8\xf2\xf7\xbe\x3f\xb9\xa2\x36\x1b\xeb\x69\xb7\x37\xc8\x7c\xda\xb5\x2a\x2b\xed\x30\x54\xf4\xff\x2e\x0a\x9d\x43\xfd\x88\x00\xd5\x77\xb0\xd3\xc9\x17\x75\xf9\xe3\x40\xca\xa8\x2b\x99\x1f\x48\x2a\xb9\x76\x9d\x06\x18\xb3\xec\xc5\x4e\x3e\x49\x62\x5e\x33\x2b\xe0\xd1\x02\xed\x34\x4b\x38\x68\x17\x1d\xcf\x47\xaa\x3f\xe5\x69\x19\xbf\x6d\xad\x08\xd2\xc6\x7e\xa8\xfc\xdc\x2e\x4e\x58\x9d\x3b\x0c\x3b\x29\xad\x54\xec\x29\xf1\xd7\xbb\xdd\xf3\xea\xf6\x70\xb7\x7d\x7a\x38\x3c\xed\xbf\xaf\xb6\x87\xe5\xf3\x76\xbb\x7a\x5c\xae\x57\xbb\xae\xbf\x56\xbc\xa3\x96\x5d\x1b\x54\x6d\xd1\x19\xd4\xad\x2d\x0c\x7a\x40\xcc\xd4\x4d\x6f\x48\x64\xa4\x07\xec\xd7\xbf\xb2\xc2\x6e\x80\xfe\x94\xc0\xad\x52\xdf\xa1\xca\x5e\x5e\x9b\xe5\x6b\x96\x8f\x90\xa3\x0a\x74\x8c\x2e\x03\x22\xa2\x2d\xba\xeb\x1e\xf4\x4b\x6b\xdd\xbc\x83\xc8\x3f\x07\x6f\xcd\x97\x12\x28\x93\x08\x4c\x36\xb5\xd6\xd6\x3f\xcb\xa3\xcc\x60\x34\x90\x8d\xb0\xe5\xc4\xb6\xfe\x7d\x3f\xaf\x57\xd0\xbd\x62\x1d\x50\x8d\x2f\x04\xf7\x94\x6e\x3e\xcd\xce\x3d\x1d\x24\xda\x97\x66\x74\x01\x8f\xa2\x79\x9c\x89\x67\xbb\x03\x08\x8d\xb1\x08\x5d\x5b\x0d\xf7\x1e\x2d\xfc\x87\xef\x10\x49\xdc\x07\xdb\xd9\xb4\x2e\xfe\x71\x16\x55\x03\xd5\x5d\x56\x88\x1c\x79\xdf\xba\x6e\x8a\xe0\x08\x7f\x80\x46\x6c\xa6\x25\x93\x9a\x52\x92\x3a\x85\x97\x59\x2f\x79\xf2\x67\x64\x9a\x68\x1a\x26\xc8\x3e\x2f\xcf\x17\xd2\xf4\x0c\x61\x6d\x0b\xb7\x94\x05\x2f\x80\xe2\x01\x05\xe4\xe8\xee\xb9\x56\x46\x19\x16\xe6\x3d\x7e\xf7\x49\x0a\x1d\xca\x14\x3d\x9f\x27\xd5\x94\x2f\x95\x38\x76\xbf\x6b\xae\x31\x37\xfa\xde\x9a\x3f\x17\xa7\x9a\x80\xf2\xa8\x4f\x38\x08\xae\xd5\xaf\xaf\x72\xee\xe3\x27\x8e\x82\x00\x43\xe3\xcb\x3b\x5f\x78\xa7\x63\x16\x23\xc4\x0f\x41\x1d\x68\x67\x5d\x7a\x7b\x43\xc7\x91\xf4\x0b\xa0\xa3\x0b\xa8\x27\x44\xd5\x6d\x27\x4e\x49\x38\xc6\xb0\x6d\xa1\xb5\xe7\xe6\x6d\x2a\xcd\xe3\x08\x7d\x29\xfb\x58\x7e\xe5\x99\x98\x77\x03\x59\x88\x2f\x50\x49\x9a\x73\x81\x86\xe8\xed\x7a\xb7\xb9\x5f\xfc\x75\xf8\xb9\xbe\x5d\x75\xcf\x96\x92\x98\xe8\x2e\x4f\x8c\xc9\x9b\xb2\x72\x4b\x0a\x8e\xbc\x30\x70\x3d\x45\x68\x61\x88\xf2\x7c\xb1\x01\xad\xac\x8f\x19\x68\x99\xc4\x88\xea\x14\x68\x39\xf5\x59\x47\x2d\x65\x08\x96\xe2\xf1\x19\x65\x02\xe7\x49\x45\x59\xa0\x95\x09\x80\x0f\x8d\xd0\x4f\xb4\xf3\x5d\x77\x1d\x0b\xcc\xb9\xda\x62\xd8\x32\xd7\xc3\x4d\x49\xeb\x14\x20\xf4\x70\xae\xea\x88\xc1\xfc\x7f\x9c\x07\x35\x2a\xae\x1f\x24\x80\x9b\xda\xdd\xfa\xf1\xcf\xd1\x09\x0c\x55\x08\x2c\x75\x59\x07\xc7\x14\xe6\x1b\x93\x84\x26\xbe\x48\xed\x58\x76\x18\x56\x6d\x54\x4c\x1d\xbe\x57\x63\xae\x63\xb8\x7a\x68\x03\x44\x8b\x81\xb4\xa8\x70\xeb\x76\xdb\xa5\xdf\xb0\x20\x48\x38\x7e\xae\x43\x33\xe5\x3f\x9b\x7d\x13\x10\x24\xd2\xcf\xa5\x07\xf1\x61\x77\xa3\x7d\xf9\x0b\x8d\x9b\x49\x4f\x2e\x62\xcb\x78\xf4\xef\x73\xdd\x8c\x03\xf1\xb6\xfe\x7e\xd4\x9d\x80\xe5\x1d\x37\xe8\x7a\x7e\x1d\x59\x07\x62\x48\xdc\x91\xf6\xf9\x52\x8f\x45\xee\x07\x08\xd0\x58\x49\xde\x2f\x57\x37\xe7\x42\xe7\xfd\x24\x02\x9a\x06\xf8\xc1\xf6\xbf\xb3\xa6\x0f\xbb\x03\x0b\x59\x1c\x78\x3c\x53\x7e\x86\xf1\x5c\x26\x0e\x21\x0a\x61\x48\x91\xdb\xed\xb5\xfc\xfd\xb3\x6c\xa0\xfe\x2e\x6a\x87\xed\x9a\xbc\x81\x30\xb2\x02\x73\x8e\xc3\xfb\xbb\xa8\x57\x85\xee\x1c\x2d\x08\x8d\xd5\x0a\xf1\x92\x7c\x63\x58\x0a\x44\x89\x8c\x93\x71\x20\x73\x59\x5d\x76\x65\xfe\x24\xff\x0d\xaa\x8b\x66\x42\x24\x01\x23\x0f\x9b\xaa\x6c\xca\xe6\x72\xea\x4e\x10\x47\x56\xab\x43\x68\xbd\x40\xbd\x8c\x3f\xa6\xb8\x9f\xc1\xe6\x06\x71\x94\x20\xb6\xe3\xe6\xdc\x2e\x9d\x58\x9f\xf6\x19\xf5\xd7\xf8\x29\xe3\x38\x34\x2e\x8c\xd3\xcf\x44\x88\x15\xc3\xd8\x89\x2d\xf4\x04\xfd\xad\xcc\xf5\x52\x74\xa1\x39\x88\xb5\x2d\x31\x10\x5a\x3b\x27\xd9\xa7\xb5\xc6\x93\x06\x92\x20\x40\x90\xd9\xe6\x69\xf9\xe8\x0f\x4e\x62\x2d\x60\x50\x0e\x2e\x94\xb5\x5a\xc7\xb6\x3f\x24\x89\x42\x67\x75\xd5\xbc\x3a\x68\x50\xbb\x94\x0c\xd0\x9d\xde\x34\x00\x1e\x84\xa8\x06\xd7\x39\x79\xc8\x6a\x8a\xb1\xa7\xbf\x99\x0f\x3c\xe0\x71\x38\xc2\xc7\x5f\x17\xff\x00\xa7\x3c\x60\xc3\x82\xa8\x9b\x0b\x6e\xbb\x7d\x50\x77\x9a\xe3\x05\x2e\x6d\xe2\xb8\xb2\x04\xb3\x0f\x30\x30\x54\x20\x55\x0c\x13\xb0\xce\x3b\xf2\x5a\xfd\xe3\x3b\x4b\x4d\x8c\x9e\xcf\x6e\xbf\xd8\x3f\xef\x0e\x8f\x4f\x87\xdb\xd5\xe2\xde\x9f\x42\x44\x56\x5a\xc9\x9e\x02\x2d\x1a\xb4\xe6\x3f\xa5\x09\x6b\x8f\x11\x29\x9a\x99\x27\x2b\xc9\x65\x2d\xd8\x03\x0d\x0e\x77\x20\xab\xb3\xa8\xba\x8f\x2f\x43\x29\x5c\xd1\xc0\xf7\x32\xd7\xf3\x25\x24\xa0\x02\xa0\xb2\xef\xf5\xb9\x32\xac\xef\x9f\x72\xa4\xb6\x7d\xfa\x71\x37\x5c\x3d\x41\x01\xf1\x91\xc0\xa7\x13\x14\x43\xcd\x1d\x16\x80\x8e\x42\x70\xf5\x2e\x4e\x3b\xfc\x53\xe9\x6f\x16\x00\x24\x09\xda\x5c\xbb\xa6\x3c\xf5\x2a\x45\x83\x8b\x19\xa6\x11\x4c\xd4\x88\x37\x70\xd6\xe3\xf8\xa9\x8c\x50\x61\x8f\x0a\x5f\x62\x86\xe2\x8a\x2b\x03\x8c\xb4\xc3\x5f\x97\xcf\xc5\x49\x9c\x3b\xa7\xcf\x10\x12\xa1\x15\x63\xbf\xcb\x63\xa9\x61\xbd\xb9\xdb\xf5\xb5\xcb\xbe\x1b\x8d\x2d\x86\xca\x29\x0a\xdb\x49\x80\xc2\x94\xe5\xb9\xb5\x08\x56\x56\xd6\xe4\x6a\x1d\x1d\x06\x8d\x0c\x31\xc0\xa9\xb7\xa1\x1d\xfd\xf2\xa8\x03\x0d\x38\x6e\x4c\xa8\x64\x7f\x53\x7a\x84\x93\xa1\x61\x88\x96\xf0\xc1\xa6\xdb\xf5\x59\x35\xad\x1f\x86\x66\xd5\xe8\x41\x0d\x33\x01\xc2\xfa\xbd\xc3\x33\x69\x0e\x63\x89\x45\x5b\xa7\xf2\xb7\x7b\x93\xd7\x35\x21\xfc\xff\x48\x12\xff\xcb\x1f\x60\x18\x16\x76\x3f\xef\x2d\x2b\xde\x7e\xc8\x15\x39\x13\x73\x35\xa1\x09\xa5\xf4\x1b\x56\xf5\x06\xcd\xed\x15\x42\xcc\x44\xb1\xc6\x54\x0d\x02\xa2\x3c\x90\xdf\xb7\xa5\x0a\xb1\xb6\xb9\xa8\x1d\xf6\xfb\xa6\x3c\xbf\xbc\x4e\x72\x7a\x26\x4e\xec\x8e\xf4\xfd\x6e\x10\xe2\x36\x31\x48\x1c\x9a\xc7\x76\xf7\xd3\x77\x65\xe5\x52\x51\x6b\x2b\xd7\x39\x6f\x6d\x98\x24\xe2\x18\xfc\x78\xc8\x72\x40\x46\x8b\x7a\x65\x09\x0f\x7d\xbb\x32\x3c\xb0\x08\xee\xee\x8b\x24\x86\x20\x9f\xd4\xd3\xe3\x6a\xb3\xf0\xe5\x85\x86\x47\x89\x61\x9e\xfd\x36\x7b\x17\x0d\x6e\x44\xad\xf5\xfe\x50\x16\xcd\x6b\x7e\x69\xd7\x8d\xf3\x69\x7a\x1f\xd3\xf4\x97\x11\x34\x41\x4d\xaf\xc3\x4d\x57\xa3\x66\x44\x6a\x61\xd7\x3b\x51\x34\x59\x6b\x88\x62\x56\xf9\xbe\xcf\x2a\x1b\x21\x18\x78\xf9\x67\x51\x41\xeb\xc9\xd6\xc3\x6f\xec\xba\xc9\x38\xc4\x37\xbc\x71\xf8\x69\x57\x31\x33\x0b\x85\xef\x0e\xb1\xf2\x40\x35\x34\xae\x76\xd0\x13\x34\x8c\xbe\xbd\x4c\x22\x5c\x27\x1d\x99\xc3\xee\xed\x9c\x5f\x71\x6e\x7e\xed\xa3\x19\x29\x6c\xb8\xd1\x93\xfc\x14\xd9\xa9\xb5\x17\xcb\x2b\x18\x70\x6f\x53\x19\x09\x21\xca\x4b\x43\xa1\xd7\xaa\xf4\x6c\x10\x46\xbb\x72\x77\xaf\xa3\x77\x63\xc7\xe0\x3c\xf8\xd8\xe8\x24\x4e\xe3\x6b\x3e\x43\x94\x88\xe9\x46\xf0\xe7\xbc\x86\xe3\x17\x01\x3c\xc6\x22\x33\x0d\x2a\x17\x15\x6c\xce\x79\xa6\x50\x1c\x3b\x2b\x5e\x36\xb9\xb8\x12\xb2\xf5\x87\x41\x2a\x1d\x69\xd1\x7a\xf9\xd4\x64\x9f\xb9\x87\xc6\x50\xa1\x6d\x35\x20\xb8\xcc\x30\x68\x5f\xcc\xdd\xbd\x18\x12\x04\xd4\x22\x31\x5f\xa0\xf1\x96\xe3\xb7\xec\xdd\x87\x8f\x87\xa7\x24\x41\x90\x52\xd4\x4a\xdb\xae\x90\xbf\x70\xbf\x7e\x70\x69\x68\x12\x04\x60\x30\x81\x73\x77\xce\x55\xe5\xeb\x85\x49\x40\x88\xb5\x60\xda\xc1\x9e\x7d\x40\xbe\x11\x17\x21\xaf\xc3\x60\x5f\xe2\xbb\x48\x40\x42\xee\xa8\x75\x2e\xbb\x5f\xf7\xdd\xb9\x85\xb4\x62\xaa\xd6\xc4\x5f\xb5\x96\x41\x27\x82\xce\x48\x40\x25\x25\x2e\x67\xb5\xb8\xa2\x0f\xbb\x8a\xe3\xb6\xfd\x01\xb1\x13\x98\x6d\x71\x7e\xe4\x93\xf9\x63\x7c\x2b\x54\x03\x7e\xb5\x1d\x34\x36\x8a\x8b\xec\x45\x6e\x89\xe5\xf3\xb5\x22\xee\x50\x66\xac\xc0\x88\xc9\x2a\xd8\x88\xac\xe3\xbe\xb6\x52\x3d\x73\xcb\x0e\x09\xc2\x90\x18\x07\xb4\x80\x49\x2d\x2e\x09\xc2\x24\x45\x91\x8c\x3c\x7b\x79\x6d\x4e\xa5\x2f\xad\x24\x41\xe8\x9e\xfc\x5c\xb8\x84\xe7\x27\x67\x8f\x85\xe0\xce\x71\xb8\xbf\xff\xe9\xd2\xbc\xc4\x9f\x25\x36\x56\xe4\xe1\xbd\x6c\xe0\xa9\xd8\x4c\xca\xe0\xaf\xd4\x5e\x18\x09\x92\x38\x24\xae\x6e\xd2\x62\xd8\x76\xb7\x57\xfc\x73\x24\x48\x92\x50\xb0\x9e\xad\xcf\x6d\x92\xeb\xe5\xd3\xec\xfe\x4f\x82\x84\x13\x24\xb6\xb9\x2f\x5f\x7a\x95\xcf\xac\x2c\x6e\xe5\xd6\xcd\x5a\xd0\x93\x37\xc3\x49\x04\x8e\x30\xe5\x16\x6a\xf4\x99\x41\x5b\x4e\x4c\xa8\x76\xaf\xe5\xef\x21\x7b\x0a\x09\x78\xa4\x7c\x01\x7a\x2f\xde\x91\xa9\xb7\x62\x2c\xe0\xd1\xf6\xe4\x01\x12\x33\x3f\xf4\x54\xa9\xf8\x2b\x13\xbc\x4b\xcf\xd0\x49\x35\x19\x09\xb8\xd4\x48\x39\xd2\xbe\xc9\xc7\xb2\x5d\xdf\x6f\x44\xa3\x5e\xbf\x18\x8b\xdc\x04\x8e\x0e\xe8\xb1\xb4\x25\x13\x33\x6b\x08\x09\x64\x10\xdb\x5c\x2f\x54\x65\xd3\x05\x1f\x49\x20\x55\x84\x42\x7e\x05\xfc\xb6\x05\x5f\x9f\xcd\xb3\xbf\xa9\x42\xf0\xa7\xd3\x49\x28\x9d\xe1\xdb\x4c\xbe\xa6\x0a\x14\x71\xcc\xe9\xdb\x32\xcf\x9f\x51\x27\xca\xb7\x71\xbb\x45\x3d\xde\xed\x47\x49\x1d\x12\x28\x08\x11\x61\xe0\xf4\x47\xaf\xa2\x19\xa3\x4b\x68\x66\xe2\x4e\x15\xf5\xa0\x07\xe0\x0b\xd7\x01\x22\x05\xf6\x6d\xdd\x54\x00\x3a\x2b\x5e\xac\x59\xd1\xb5\xab\x50\x24\xfd\x4a\xf0\xfb\xd3\x54\x16\x69\xad\xc0\xb0\x63\x34\xac\xcf\xf9\x7c\x96\xa4\xed\x67\x2c\x06\x42\xbc\xc0\xcd\xc5\x56\x08\xcf\xa4\x0c\x49\x60\x42\x85\x48\x90\xd6\xdc\x98\x2b\x15\xfc\x6c\x9b\x23\x24\xa0\x0c\x81\x27\x47\xf1\x61\xfd\xb0\x3f\xba\x06\x8e\xf4\xf8\x2e\xeb\x8b\xc2\x21\xc3\xc0\x2d\x21\x24\x08\x3d\x21\x4a\xeb\xe4\xbb\xd0\x74\x3d\x50\x1b\x6b\x3b\xa5\x32\xec\xa9\x0f\x6f\xe1\x1d\xf2\xf2\x34\x49\x62\x10\x42\xb4\xc2\x02\x9f\x43\x01\x1f\x43\x1a\x3d\xfe\x77\x6b\xf7\xf8\x3d\x10\x9a\x24\x58\x4d\xe4\x88\xc6\xb7\x1d\x84\x89\x10\x6a\x24\x46\x25\x6e\x84\x7a\xdb\x97\xf7\x99\x01\xdf\xc2\x68\x84\x48\x16\x8c\xf1\x6c\x72\xd0\x2f\x0e\x4c\xe6\xdb\xc3\x18\x8b\x57\x75\x59\x20\x36\xa7\xdd\x92\xab\x11\xb9\x7d\xdb\x89\x47\x88\xc2\x9c\x60\x6d\x46\x18\x1b\xf6\xaf\xc9\xed\x32\xc9\x3b\x46\xfb\x5b\x90\x55\x56\x5f\xb9\xde\x83\xb5\x9d\x44\x24\xc2\x35\xcd\x05\x37\x10\x50\x63\x84\x1a\xaf\x1e\x24\x8a\x88\xd0\xce\x44\x5f\xba\x28\x17\x2a\xc9\x8b\xaa\x35\x81\x61\x72\xe3\x51\x44\x70\x11\x78\x10\xed\x22\x57\x94\x1a\x1e\xb2\xe2\xcb\xa8\x18\x21\x51\x9a\x52\x8b\xfd\x77\x7b\x1e\xe8\x8e\x40\x8c\x90\x48\x86\xca\x46\xf0\xf2\xb7\xd6\x74\x81\xa1\x64\xd6\xf4\x4c\xca\xa1\x18\x3f\x4e\x79\x59\xc1\xea\xe1\xe9\x71\xef\x05\xdf\xdb\x66\x4d\x91\x67\xe3\x9f\x59\xf3\xc3\xeb\x30\xb1\x76\xbb\x57\x88\x30\xf8\xdf\xf2\x52\x97\xf3\x0b\x3a\x49\x74\x2c\xe5\x80\x56\xde\xbf\xd8\x6b\x57\x81\x10\x1e\xda\x5a\x86\x17\x68\xe8\x78\xe5\x21\x9c\xdb\x1a\x5d\x0b\xef\xd9\x9d\xab\x77\xb8\x4c\xde\x20\xd7\x56\x05\x5e\xec\xb2\x09\xaf\x2e\x23\x24\xa5\x91\x13\x9b\x6e\x27\xc9\x0d\xa6\xa6\xf6\x1f\xd3\x4e\xdc\xca\x65\x37\x3d\x24\xed\xae\x2a\x8f\x9f\x01\x5f\xdd\x51\x22\x56\x68\x54\x55\xe7\x4f\x52\x7e\x84\x88\x94\xe3\x9e\xd3\x2e\xdb\x8f\x65\xb3\x2a\x5a\x0f\xc6\x8a\xa4\xf8\x77\x29\x29\xa4\xdc\x8f\xfe\x1b\x68\xea\x07\xa1\xbb\xf7\x2f\x95\x16\xb1\xe7\x0b\x23\x7d\xe1\x02\x21\x8a\xc6\x98\xf3\xcd\x2a\x07\x4b\xac\x45\x0e\xdb\x73\x51\x74\xd1\x36\x42\x74\x64\x69\x29\x2c\xc1\xcb\x1c\x44\x88\x90\xd6\x09\xb0\xf6\x15\x7a\x47\x0e\xe0\x6c\x6b\xff\x7d\xc4\x8c\xd0\x40\x01\x4e\x94\x76\xbf\x2c\xb3\x21\x0e\x92\x50\x42\x45\x2c\xd1\x0e\xc9\x54\x59\x15\x5b\x51\xa8\x71\x76\x9f\x50\xc2\x62\x64\x83\x1c\x62\x67\x26\xfa\xcc\xa3\xf7\x46\x89\x4a\x94\x23\x01\x9b\x56\x37\x10\x4a\x09\x55\xbe\x8e\xb6\x0b\x9e\xfa\x36\x1a\x48\xd5\x61\x56\xff\x71\xce\xd4\x9b\x2d\x76\x1f\x3d\x35\xa5\x91\x4d\x3d\x14\xf0\xfb\xe9\x34\x8c\x90\x7c\xb6\x67\x76\xc7\x09\x0c\x57\x65\xaa\xdc\xbf\x56\x50\xbf\x96\xb9\x66\xdd\xb5\x63\x83\xe3\xf0\x77\x95\x35\x5e\xfd\x53\x67\x35\x78\xd7\x6b\x38\xe4\x29\x0b\x48\xac\x3b\xe9\xb8\xba\x41\x59\xbf\x71\x4d\xdb\xc4\x19\x6c\x8f\x01\x9c\xf6\x6a\x52\x7b\xf1\x59\xea\xc3\x1f\x46\x95\x65\x22\xaa\xc0\x97\xe4\xe0\x78\x9a\x4c\x15\xca\x9c\xaf\xd2\x80\x7a\x75\x1b\x45\x6b\x69\xaf\x9a\xd7\x01\x6f\x7a\xdb\x4f\x6a\xfc\x9a\x47\x0c\x8d\xd9\x44\xea\x00\x9f\x4c\x68\x48\x62\x74\x13\x0e\x9d\x58\xda\x18\x8a\x30\x57\x6b\xe8\x0f\x8d\x28\x02\x91\x8e\xf7\xa5\xb0\xa5\x96\xcd\xb9\x2a\x26\x37\x1a\x85\x21\xb3\x91\x25\x55\x16\x23\x78\x82\xeb\x90\x24\x0c\x35\x82\xe5\xf9\x72\x73\x59\x35\xaf\xf3\x13\x98\x72\xce\x52\x07\xe4\x6b\x5f\x66\x79\x6e\x90\xba\xa6\x76\x14\x80\x84\xf2\xc9\xdd\x71\x4d\xb0\xf2\x51\x9e\xa7\xb2\x6f\x8c\xd0\x34\xb1\xbc\x19\xd6\xa8\xc0\x64\xe8\x7f\x11\x5d\x23\x34\xe5\x56\x58\xf4\xbe\x7c\xb9\x2b\xab\xb7\x45\x61\xf9\xf0\xa6\x89\xb8\xf1\xad\xa7\x12\x90\x5d\xb3\x4b\xa3\xa0\xfc\xe0\x06\xaa\x5f\x90\x2d\x0a\x6d\x91\x45\x8b\x77\x91\xe5\xb8\x53\xa9\x12\xdb\x27\xef\x31\x85\x18\x35\x6a\xda\x6d\xfa\xb0\x5b\xdc\xaf\x76\xfb\xc5\xb7\x55\x37\x9e\x53\x48\x12\xb7\x2a\x0f\x05\xd0\x5c\xab\xd0\xa1\xb4\x34\xac\x45\x37\x15\xfc\x91\xca\x51\x59\x3c\xa1\x40\x9b\x72\x3a\x4c\x6d\x83\x23\x8e\x5b\x59\x28\xaa\x2b\x57\x45\x94\xd2\x5d\x59\x6d\xc4\x25\xb3\x74\xe3\x35\x14\x7a\x6a\xa4\x50\x2d\x80\xf7\x74\x95\x1d\x4f\xe1\x27\x34\xf5\xed\x01\xad\x9d\x37\x10\x4d\x58\x3d\xde\x0e\xbc\x59\xaa\x0d\xc3\xe0\x53\x5f\x31\xbc\x05\x33\x57\x2a\x4c\xa8\xe1\x12\x37\x08\x69\x73\x5b\xd7\xd7\x62\x01\xb5\xf5\x62\x5e\x48\xa1\x9e\x46\xd5\xff\x67\xdc\x1d\x38\xce\x21\x8c\x9e\xef\x5e\x3d\xcd\x10\x61\x84\x71\xc4\xc4\x37\xe7\x62\x22\x96\x3f\xbe\x1e\xe1\x96\x08\xf4\xd0\x8d\x00\xb4\x10\x3f\x2f\x0d\x21\x8c\x68\xae\x3b\x5c\xa0\xc9\xb3\xd3\x98\x59\x95\x30\x1a\xda\x54\xf2\xfa\xe9\xcf\xa7\xdf\x45\xb7\xfa\x33\x1a\x07\x68\x06\xdf\x66\x45\x39\x2a\x70\x71\xed\x2c\x0a\xad\x34\xae\xf8\xd8\x41\x9e\x77\xb2\xae\x6d\x93\xa1\x68\x94\x97\xe7\x06\xab\xa7\xb3\xe2\x65\x94\x2b\x20\x2c\x74\xba\xb2\xcb\xdd\xea\xfe\xef\xaa\x67\x08\x0b\x81\xe2\xeb\x41\x6c\x9e\xad\x3c\xc0\xd8\xa1\x33\x7a\xc7\xf7\x15\x42\x8a\xd3\xd5\x66\x57\xef\xb3\xe2\xcd\xc5\xe2\x7e\xc0\xa7\xd4\x02\xff\x45\xaa\x95\xb0\xd0\x84\x08\xd9\xdc\x9d\x40\x65\x22\x6f\xdd\x5f\x3d\x56\xbd\x63\x84\x45\x61\x42\x2c\x80\x1a\xaf\x89\x5f\xfa\x6e\xb8\xab\xb2\x08\x34\x06\x29\x2b\xa1\xc6\xec\xab\xae\x3d\x0e\xa8\x95\xb4\xca\x45\x76\xec\x6a\xcd\x86\xe0\x50\xc2\x62\xc2\x10\xd1\x66\x23\x45\xb7\x57\x8e\x38\x8b\x99\xe2\x28\xc0\x52\x37\x00\xc7\xa9\x19\x36\x1e\x21\xb1\x11\xd8\xf7\x11\xce\x55\xe9\x88\x2c\xba\x0b\x19\x29\x7b\x3b\x45\xd4\x70\x2f\x2a\xd8\x95\xb9\x5e\x17\x0f\x22\x1b\x14\x55\x12\x96\x44\x14\x63\xe4\x18\x63\xd9\x41\xb3\xaf\x40\xd4\xe7\xea\x32\x19\x8f\x09\xe7\xa4\x4f\xa6\x3c\xd7\x50\x39\xb6\xca\x75\x71\x73\xce\xdf\xe6\x1c\xe7\xb9\x7f\xf9\xb3\x19\xab\xff\x75\xf7\x5a\xfc\x1e\xda\x27\x8c\x07\x0a\x81\xbb\x93\xda\x4f\xc2\xb8\x66\xc8\xd2\xf9\x22\x8e\xad\xcd\xfd\x19\x37\x7a\xdb\x91\x63\x90\x6d\x40\xfb\xf3\x65\x89\x7c\x3b\x87\x21\xf2\x65\x3d\x50\x59\x41\x5a\x3f\xdb\xba\x4f\x97\x12\x6e\xf5\x09\x9d\xfa\xcb\xbe\x3c\xa3\x7e\x57\x6b\x87\x39\xc1\x92\x71\xa1\xc8\xe4\x22\xa9\x73\xed\xb2\x42\xc3\xc7\x93\xb1\xc5\xdc\x93\x34\x1e\x61\xa9\x8a\x11\xf8\x71\xc8\xea\x75\x81\x91\xe2\x2b\x9a\x20\xd7\x53\xa4\x34\x70\x04\x44\x3e\x22\xfc\x35\xd3\x15\x61\x42\x18\x8c\x95\x22\xc5\xce\x38\x7b\xe5\x9c\x26\x26\x13\xbb\x74\x9a\xac\x18\x4e\x7b\x15\x06\x28\x50\x5d\xc0\xef\x4f\x99\x51\x09\x53\x10\xc5\x49\x5f\xe9\xda\xbd\x3a\x2d\xac\xd0\x76\xe3\x46\xd6\x64\x4d\x31\x91\x40\x2a\xd0\x06\x19\x68\xb3\xaa\xfe\x2d\xae\x42\xed\x5f\x56\x9d\x7e\x36\xf1\x4d\x1a\xa2\xb5\x0c\x4e\xff\xd6\xbf\xa7\x4f\x6e\xdf\x28\x66\xdc\x30\x78\xb8\x38\xa1\x9a\xf1\xf4\x0c\x83\xd4\xd2\x9e\x6b\x78\x37\x9d\xdf\x15\x06\xd2\x22\x99\xfb\xaa\x4c\xb4\x62\x47\x53\x3f\x6c\xb7\x30\x17\x62\xc3\xc5\x05\x55\xaf\x57\x18\x6b\x99\x8e\x82\x90\x85\x81\xad\x1c\x3d\x57\xc5\x6e\xbf\xbc\xdd\xce\x8f\xa9\x90\xe9\x34\x71\xee\xd2\x34\xbb\x39\xed\x69\x74\x6c\x09\x5d\xdf\x87\xc2\x0d\xae\x35\x4c\x22\xac\xd5\xb2\x02\x66\x83\x24\x4a\xdb\x24\x30\xba\xf6\x03\x4e\xb9\xcb\xf1\xf5\x6b\xe7\xf4\xe3\x8c\x9f\x22\x54\x56\x2c\xcf\x05\x94\x96\xa5\x86\x41\x72\x8e\x84\x31\x95\x38\x1c\x9b\x57\x38\x14\xe5\x31\x2b\x44\x7e\x10\x45\x71\x16\xf9\x01\x51\x10\x50\x37\x87\xaa\xe3\x7b\x21\x61\x2c\xac\x8f\xda\xc1\xf3\x40\x1c\xe7\x3f\x65\x18\x6b\x8a\xdb\xd4\xf7\xcb\xa9\xed\x37\xa2\x23\x20\x61\x92\xc8\x54\x7a\x1c\x20\x8a\xfd\xce\x8e\x9f\x90\x33\x2b\x30\xb6\x39\xd7\xaf\xa3\x13\xf0\xd0\x46\x22\x96\xeb\x3e\x8b\x45\x42\x2e\x14\xe2\xd5\x5d\xa2\xbe\xdd\x67\xac\xb5\x3b\x19\x44\xdc\x10\x1c\x96\xc7\x52\xaf\x3e\x4e\x5f\x56\x46\x93\x30\x8d\xd3\x50\xb8\xa1\xf0\x5d\x58\xda\xcc\xe3\x90\xfd\x75\xb4\xe3\x86\x29\x4f\xf1\x4b\xda\x02\xac\xcd\xf7\x3f\xdb\x25\xb4\x9e\x98\x0e\x61\xaa\xc2\x30\x18\xbc\xc9\xdb\xb2\xdd\xad\x3c\xcf\xd7\xdc\x66\x13\x8a\xc0\xf2\x8e\xe1\x2e\xb1\x75\x94\xd6\xfe\xbc\x4b\x24\x68\xa2\xfe\xf4\x22\xa2\xd4\xe1\x0e\xf6\x50\x1d\xbb\xcb\x63\xf5\x05\x34\x57\xe1\xa0\x50\x08\x0b\xcc\x5c\x35\xaf\xb7\x99\x82\x28\xf0\x67\x52\x9a\x20\xaa\xc1\xfa\x50\x9b\xaa\x3c\x8e\x4d\x9a\xc9\x4d\x6a\x9d\x20\xb6\xef\x5b\x99\xeb\x4c\x1c\xfb\x28\x4b\x08\x81\x91\xff\x15\x66\xb9\xdb\xa9\xa6\xe1\xa7\x10\x58\x8a\x61\x8f\xa6\x3a\x5f\x57\xd9\xfa\x3e\x69\x2a\x90\xd8\x4f\xea\x4c\x0d\x86\x2e\x28\x0a\xae\x8a\xea\xd0\xce\x1c\x27\x39\x7b\x95\x14\x23\x21\x18\xae\x10\x5f\x02\x75\xf6\xd6\x08\xbf\x7c\x44\x01\x03\x15\x76\x75\x58\xe3\x1a\xb3\xd1\x3d\x44\x41\x18\x61\xe8\xee\x1b\x14\xcb\xd7\xec\x74\xad\x1a\xc7\xff\x9b\x1d\x3a\x0a\x44\x82\xc0\xa8\xef\xa2\x6a\x4d\xe3\xd6\x4c\x95\x97\x9b\x4a\x74\xe3\x3d\x0a\xc0\x58\x5d\x41\x28\xc0\x64\x2a\x13\xd5\xa5\x63\x40\x72\x5d\x08\x01\x0f\xa0\x5c\x18\x93\xe5\x28\x44\xd9\xc3\xaf\x48\x44\x58\xc0\xd2\x11\xe4\xb6\x5d\x33\xb1\x2e\xac\x40\x37\xaf\x47\xd7\x7d\x65\xfa\x7d\x15\xf3\x1c\x2c\x39\x11\x89\xed\x4a\x8d\x09\xd1\x46\xe8\x61\x55\xfa\x68\x48\x46\x04\x14\x6e\x06\xc7\x4b\x4f\x91\xeb\x9a\xa8\xd6\x48\x8e\x6d\x6c\x89\xc3\x90\x31\x91\x44\x21\x53\x26\xf4\x63\xff\x78\xca\xaf\x4c\xbc\x28\xd4\x49\x6a\x19\xe4\x8a\xe6\xe6\xb2\x68\xca\xe3\xfc\x9a\x1d\x45\x31\xf5\xc1\xb0\x65\x0e\x99\x9e\x9e\x28\x52\xdc\xa7\x09\xd1\x9b\xb8\x8b\xfc\x4d\xc4\x51\x1c\xb8\xc7\x74\xd9\xa6\xc9\x0e\x13\x25\x89\x52\x1e\x9f\x56\xb6\x13\x62\x7d\x3b\x4f\x8f\x4e\xa2\x44\x02\x56\x5a\x65\x47\xf1\x02\x3e\x6b\xe9\xaf\x94\x68\x86\xc8\x87\xa2\x2c\x7e\xe2\x28\x19\x10\xcc\xb9\x0a\x39\x12\xf1\x20\xc4\x2a\x49\x5b\xe5\x3e\x4f\x39\x4c\x22\x6e\xac\x5e\x70\xa6\x4a\x32\x00\x80\x91\x48\x04\x69\x34\x24\x36\x99\xe1\xb0\x6b\x3b\x09\x54\x53\xb8\x11\x75\xa6\x66\x68\x5d\xaf\x0c\x89\xd9\x3d\x2b\x12\xb1\x2d\x98\xf2\x24\x65\xcf\x45\xf6\xff\x3b\xc3\xee\x64\x79\x2f\x87\x4b\x6d\x24\x62\x8d\x1c\x08\xdd\x6d\x79\xe6\xb4\xc9\xfb\x13\x3a\x52\xe0\x33\x35\x98\x95\xb8\xc2\x7f\x90\x48\xf2\x18\x67\xdb\xc3\xe3\xe6\xaf\xe1\x56\x13\x29\x65\x31\x17\x0f\x8b\x3f\x0f\xab\xfd\xf7\xd5\xd6\x37\x68\x12\x5a\x9e\x25\x71\x19\x6c\x42\x91\x4e\x22\x2c\x5c\x6a\x5d\x2e\x94\x22\x45\x54\x41\x93\xc9\x2c\x6f\x77\xf5\x7e\xa5\x89\x80\x1a\xe2\xc0\x01\xed\x0e\x79\x25\x7b\xdf\x76\x61\x04\x99\xd8\x4f\x42\xbd\xf9\x9a\xd5\xf1\xc3\x41\x6c\x8b\x10\x5d\x49\x8e\xbe\x52\xcc\x9e\x7f\xcd\x20\x6d\x31\xaa\x75\x80\x9f\xce\x13\x0d\xa2\x4f\xf8\xfd\xe6\xa7\x89\xe1\x44\x39\x41\xdd\x9f\xe2\x9c\x37\xb3\x2a\xd1\x6d\x3f\x1d\xa0\x92\xe6\xc3\x65\xbc\x85\x7c\xe1\xc0\x46\x46\x5b\x6e\x6d\xe7\x13\x01\xea\x0b\xf8\x57\x6d\xc0\xc6\x4d\xd0\x5e\x1c\xc0\xb7\x49\x1c\x10\x8d\x83\xd1\x57\x01\x38\x1e\xda\xcf\x56\xa8\xd1\xbb\x89\x83\xd8\x3a\x1a\x43\x86\xe4\x51\x65\x1c\x89\x03\x1d\x33\x39\x08\xb3\x9f\x4e\x65\x35\xd9\x8a\x62\x12\xb3\xd4\x72\x43\xf8\xc8\xcb\xd8\x08\x88\x29\xb3\x05\xc7\x28\x19\x7f\x53\x8a\x4a\x6f\x05\xca\x13\x8e\x74\xe3\x67\x32\x2b\x31\x4d\x19\xe7\x5e\xb2\x07\xd7\x40\x8b\x03\x9d\x5d\x49\x63\xc6\x15\x38\x7e\xb4\x5b\xd1\x88\x1a\x9a\xb9\x5a\x45\x12\x33\x19\x62\x86\x7c\x81\x40\x58\x21\x73\xc0\x58\x41\x3d\x57\x13\x44\xe2\xb0\xbd\x8d\x9e\x64\x63\x57\x1e\xe1\x47\x76\x9c\xac\x0a\x71\x98\x52\x36\x64\x37\xd4\xb8\x50\xfa\x37\x10\xd1\xd0\xef\xca\xdf\xa0\x80\x99\x42\x40\x12\x47\x49\x8a\x08\x01\x0b\x95\xaf\x9f\xcc\xe4\x3e\x22\x49\x71\xb7\xf5\x1b\xd8\x53\x71\x03\xaf\x22\x37\x5f\xd6\x38\x7c\xe2\xb0\xc4\x71\x6c\xf9\xc2\x6f\xf6\xcb\x53\x5f\x0b\x88\xbf\xe3\x4a\xdf\xee\x26\x75\xb3\x05\xe4\x44\x54\x36\x8a\x3a\xac\xcd\x20\x71\x0c\x04\x1f\xf8\x01\x9a\xaa\x3c\x95\x79\x56\x77\x2d\x26\x44\x42\x73\x07\xae\xac\x0f\xa6\xac\x0e\x15\x66\x0e\x26\x8f\x94\x04\x31\xfa\x80\xdf\xb6\x4f\xbf\x96\xdf\x17\x5d\x22\x29\x4e\x02\x10\x89\x5f\xc9\x7c\x6d\x03\x3a\x33\xfb\xf2\xe7\x80\xad\x99\xc4\x09\x11\x41\xe7\x50\x20\x2d\xec\xdf\xb1\x12\x77\x07\x1a\xf4\x05\xef\xb3\x06\x8b\x5f\x5c\x38\xa6\x3b\x6f\x92\x22\x3a\xe2\xd8\x6b\x83\xf9\x02\x1b\xdf\x03\x52\x6d\x69\xbf\x4c\xf9\x5c\x75\x9f\x9a\xc7\xb1\x97\xe4\xb7\xa3\xbc\xbe\xbb\xc2\x26\xb9\xae\x69\xc8\xd4\x90\xd2\x6b\xf5\xd1\xcc\x8a\x21\x63\x57\x8d\x68\xb6\xfd\x6a\xf1\xe0\x15\xba\x07\x5a\xaf\x6d\x0f\x63\xb0\xe6\xee\xbe\x2c\x0b\xb8\xdc\x97\x4d\x03\x5d\x32\x29\x16\x01\x41\xc6\x81\xf7\x0c\x7e\xff\xca\x30\x19\xf4\x34\x4c\xa2\xc7\x32\xe0\x96\xc6\xf8\xbf\xb6\x5a\x93\x89\xd5\x1a\x4b\xc2\x64\xe8\x2d\x9e\xa3\xe3\x37\xb9\xb6\x5c\x63\xc9\x15\x96\xfc\x3e\x95\x2f\x55\x99\x77\xef\x4d\xaa\x98\x3b\x19\xc7\x1f\x7f\x2d\x2d\x0c\x6e\xfd\x52\x94\xd6\x6b\xea\x36\x93\x58\x49\x82\x97\xf1\x9b\xe1\x8f\xac\x69\xa0\xb0\x61\x6c\xd7\x45\xcb\xc4\xd0\x2e\x80\x74\xbd\x07\xc6\x10\x31\x34\xce\x3c\xbc\xdf\x45\x20\xfd\xf1\x86\x1a\x4c\x13\xb8\x14\xe5\x73\xa1\x1c\xdd\xb0\x6f\x97\x89\x1a\x08\x7d\x96\x13\x79\x08\x12\x1b\x2d\x10\x58\xa6\x2e\x2a\x1f\x59\xa1\x49\x10\x31\xe3\x16\x34\xbb\x0d\x3a\x1c\xf1\x70\x2f\x48\x82\x44\x20\x1d\x46\x56\x64\xcd\x48\x01\x63\xbc\x7e\x27\x84\x70\xde\x15\xec\x6d\xfb\xc1\x9b\x10\x22\x6c\x3e\xa2\x2c\xdf\xde\x00\xae\x63\x1c\xa3\xdb\x4d\x48\xaa\x30\xfa\x6e\xa9\x9c\x32\x05\x3b\xb0\x19\x69\xd7\x4e\x99\xa5\x94\xb8\x7d\xb0\xb3\xac\xfb\x3d\x15\xa1\x27\x84\xed\x54\x4b\xe6\xfd\xe4\x24\xe4\x61\x60\xc3\x4d\x2e\xfe\xdd\x47\x9b\x26\x1d\x95\xe2\x76\xea\xb7\x0b\x06\x6a\x75\x40\x55\xaf\xcd\xae\x34\xcd\x52\x9c\x1e\xcb\x66\x0b\xa2\x1d\xa5\xfe\x2e\xa2\xc4\xa0\x0f\xa8\xca\x3c\xcf\xea\xae\xa4\xc2\xb5\xc6\xd2\xd6\xff\x59\xae\xc0\x0e\x6c\xec\x5b\x35\x4b\x7a\x5e\x1f\x5b\xd7\xa2\xb2\xf9\x6d\x3d\x89\x21\x61\x2e\x0e\xf6\x3d\xd3\x1a\x8a\x4d\xbb\x53\xfa\x24\xe1\x74\x89\x4d\x62\x93\x12\x5f\x18\x64\xd5\xee\x6e\x44\xd3\xe4\xb0\x41\x64\xed\xfc\x17\x4d\x02\xab\x60\xf8\xb5\x8e\xb9\xef\x2c\x39\xb3\x7c\x78\x58\x6b\x77\x44\xb2\xcc\xc5\x72\x39\x9e\x6f\x09\x67\x81\xd5\xa5\xf0\xdb\xf3\x50\x1c\x8c\x24\x3c\x91\x18\x07\x3c\x8a\x8f\xb5\x2a\xc7\xdc\x85\x24\x49\x39\xc7\x70\xdc\x40\xd8\x6a\x57\xde\x79\x75\x2e\x92\x88\x84\x20\x5d\xd0\xc1\x1a\x08\x6e\x93\x76\x90\x93\xb5\x1e\x32\x75\x91\x44\xc8\xd8\x53\x82\x2d\x5f\xc5\xf1\x54\x8f\xbe\x94\x0c\x65\x12\x7b\x96\x09\x58\xab\xf2\x21\x9b\x24\x14\x12\x15\x04\x38\xae\x8f\xe2\xc3\x9a\x71\x1b\xa8\x16\x55\x93\xa9\x2e\x78\x9b\xa8\x40\x40\x07\x17\xaa\x6f\x2e\xff\x04\xb5\xff\x18\x4f\x2f\x45\x28\x3e\x71\x56\x63\x7c\xe9\xee\x5c\xe8\x91\x67\x95\xe8\x48\xa7\x9e\x8f\x62\xfc\x04\x3a\x11\x88\x90\x77\xca\x37\xd7\x4b\x4b\xa2\xd3\xd0\x8b\x25\xfb\xf5\x0f\x6f\x75\x1c\x89\x4c\x40\x2a\x24\x6f\xae\x55\x59\x21\x13\xb2\x17\x8c\xfc\xbf\x7f\xfd\x8f\xff\xeb\x7f\xf0\x87\xa8\x80\xf7\xa6\xd8\x83\xc8\x33\x84\x96\x77\xbc\x0c\x93\xcf\x0e\x3a\xd1\x96\xff\x44\x8a\x06\xf6\xbf\xcb\x3b\x28\xfe\x93\x1d\xfc\x0d\x18\xa3\x8c\x1b\x9d\xd6\x68\x7c\xb6\x69\xfa\x41\x8d\x31\xe1\x41\x2c\x10\x6b\x74\xc6\xda\x2d\xf7\x08\x37\x97\x1f\x30\xcf\x95\x41\x78\x90\x24\xc2\x5a\xdb\x2f\x57\xf8\x8f\x91\xbd\xcb\x83\x14\x90\x3b\x4d\x8b\xcb\xc2\x34\x50\xad\x8b\x87\xac\x38\x37\xdd\xc6\xce\xa9\x62\xb6\x18\xc7\x22\x85\x67\xca\xa7\xa7\xf6\xf4\xf8\x56\x58\xac\xa4\x67\x7a\x7e\xc8\xb4\xb6\x7b\x9a\xf2\x00\x28\xce\xd2\xc4\x7f\x28\xcb\x4f\x8b\x91\xd4\x2f\x8a\xe3\x09\x67\xc2\x62\x46\x16\xb9\x7a\x85\xe3\x67\xef\x80\x81\xc1\x2c\xf4\xc1\x19\x8c\xe3\xef\xc2\xc3\xc8\x78\xb9\x0f\x24\xe4\x52\xe3\x01\xc4\x23\x4a\xb0\xf0\x7b\x59\x16\x43\x3e\xb9\xb6\xc1\x5a\x3a\xde\xc2\x8c\x5d\x3d\xcc\xb8\x53\x6a\x01\xbd\x56\x9b\xb0\x82\xac\xcb\xb1\xf2\x48\xc4\x5e\xf4\xb5\xa3\x35\xb4\x08\x84\xc0\xf5\x88\x89\x15\x39\x39\x74\x3a\x30\x1b\xd4\xa5\xde\xc2\x3b\x2e\xac\x1d\xb4\xd1\x45\xd5\x68\x77\xa0\x61\x18\x68\xb0\x93\x6e\x5f\x3a\x4e\x30\x7f\xe5\x84\x27\x38\x72\xef\xca\x3c\x2f\xbb\x5f\x79\x44\x88\xd3\x2c\x6a\x6f\xc8\x74\xbf\xa7\x21\x22\x7b\x6e\xd7\xfb\xee\x27\x65\x79\x13\x3d\x0b\x53\x23\x72\x5b\x0c\x3c\xbb\x8a\x72\xae\x05\xa2\x6b\x8e\x90\x37\xe8\xb1\xce\xae\x9f\x9c\x83\x46\xe2\xc0\xe7\xc7\xdd\xd3\xfd\xed\x01\x25\xe1\x6c\x79\xf9\x6e\xfd\x4f\x9f\x0d\xe6\x69\x48\xb8\x03\x1a\x17\xa0\x9a\x43\x53\x1e\x8a\x52\x0f\xc8\xda\x08\x4f\x53\x8a\x55\xa8\x5b\xf8\x9d\x55\x30\xfa\x1e\x82\x19\xb0\x2e\x79\x2e\x2e\xfb\x0f\x87\xb5\x9a\xc2\x39\x46\xff\xdf\x1d\x29\x23\x8a\x85\x2f\x8b\xf5\x37\x9b\x32\x1e\xa0\x9b\xb9\x92\x80\x79\x0e\xab\x17\x71\xf3\xcd\xff\xae\xa5\x12\xd0\xfb\x2a\x48\x5d\x6d\x19\xf1\x5d\x07\x88\x15\x96\xca\x21\xd8\xf5\x98\x15\x5f\x71\x67\x13\x6e\x02\x83\x8b\xa9\x0d\xa7\xf8\x1a\xf7\x4f\xfa\xea\x04\x4b\xf8\xbe\x97\x47\x40\xa5\xb3\x99\x08\x05\x37\x3a\x65\x7a\x80\xb8\x77\x85\x95\x33\x0e\x71\x1a\xc4\x80\x46\x47\x47\x28\xd3\xf4\x42\x09\xbe\x8b\x90\x18\x5a\x12\x5a\xfb\x1d\x70\xf6\x54\x94\x58\x2c\x53\xa6\xbb\x7d\x22\xa5\x44\x21\x1a\xef\x15\x31\x70\xcb\xb2\x1f\x98\x29\xe5\xdc\x2b\xac\x3c\xfe\xdc\x23\x90\x6f\x7c\x5d\x2a\x53\x74\x78\xb5\x47\x4d\x1e\xba\xbd\xf5\xd0\xf4\x54\x43\xbe\xb7\x52\x18\x67\x45\xe0\xe1\x27\xc2\x84\x24\x65\xcc\x12\x36\xbf\x74\x05\x14\xc3\xcd\x31\x65\x2a\xc1\xd0\x58\xc7\x98\xf7\xd9\x5a\x38\x1c\x43\x69\x14\x58\xc0\xf2\xb8\x28\x69\x94\x8e\xf3\x05\x0b\xe3\x98\xc7\x98\xa3\xca\x75\x8d\x43\xcf\x66\xce\xbb\xdd\x69\x6c\xf3\xa4\x71\x90\x62\xba\x02\x5d\xb5\x4d\xf6\xf2\x72\xb9\x11\x85\xcf\x5b\xa7\x49\x20\x35\x77\xf2\x82\x28\xaf\xbb\xbe\xed\x9a\xb8\xc4\x74\xb5\xc5\x70\x60\x8c\xa0\x0b\x9b\x4e\x51\x4c\xa3\xb7\x9b\x28\x89\xe1\x76\x18\x16\x09\x91\x94\x47\x32\x22\x8e\xfd\xe9\x5b\xd6\x5a\x8e\xd5\x27\xab\x45\xca\x85\x65\xcd\x35\x19\x56\xac\x2e\xf3\x0c\x11\x54\xd6\x92\xd9\x8b\xfa\xed\x8f\x69\x7f\x3b\x72\x6e\xb2\x3c\xcf\xca\xa2\x7e\x11\xfd\x65\x53\x6e\xcd\xfb\xbb\xf2\x5c\x68\x0b\xef\x1c\x42\x73\xd3\x34\xb5\x9f\xf1\xc5\xa6\xd1\xac\xae\x52\xfd\x5c\x4f\xa4\x4c\x48\x2a\x68\x98\xba\x88\x0f\xfa\xde\xd3\x68\x40\x2a\x58\xa0\xc3\x0e\x47\x8f\xa2\x15\x62\x16\xb0\xf6\x5f\xfe\xf5\xa7\x4d\x6d\x2c\xa7\x86\xe6\x5b\x5e\x4a\x0b\x1c\x19\xb8\x5f\xa9\x80\x10\xd3\x3e\xf5\x49\xa8\xf1\x10\x15\xc6\x16\x98\xe6\xe5\xcb\x9c\x12\x14\x49\x65\xa0\xf4\x88\x66\xfc\xba\x3c\x20\x95\x01\x24\xd1\x20\xd2\x6c\x97\xbe\x29\xc4\x3f\x55\x41\xcc\x55\xef\xc0\x1d\x50\x0f\xce\xdf\x88\x62\xd6\xad\xae\xa1\xb1\x40\xa3\xff\xd8\x37\x33\x1a\x37\x2a\x49\x10\xea\x7d\xf8\x91\xfd\xce\x86\x4b\x76\xaa\x85\xc2\x16\x8c\x69\xbc\x6e\xcb\xf3\xcb\xeb\xae\x29\x8b\xe9\x9d\x6a\xc9\x24\xf4\x12\x80\x23\x28\x5c\xaa\x0d\xc3\x20\x40\xa6\x4a\x1f\x54\x72\x2d\x26\xe0\x58\x1c\xfc\xb0\x5b\xee\xff\x16\xd6\x92\x1a\x4a\x70\x74\xe3\xb4\xef\xd8\x8d\xe7\xd1\xd7\x9f\x84\x7a\x52\xc3\x52\x16\xb8\x7d\xf6\xae\x12\x33\x80\xaf\xd4\x24\x09\xe6\x19\x76\x20\xf2\x29\x5e\x25\x35\x29\x47\x87\x6c\x57\x94\xbf\x35\x14\x0b\xe4\xed\x71\x8d\x22\xa0\xd2\x85\x9c\x71\x6f\x78\xc8\x3e\x2b\x66\x11\x41\x9c\x20\x4f\x42\xad\x2a\x31\xd6\xd3\x22\x22\x48\x52\x64\xf6\x5e\x54\x0d\x7c\x0c\x3f\x86\xa0\xc2\x16\xae\xce\xcb\x08\xff\x77\xa1\x76\xc1\x62\xeb\x01\xdd\x3f\xff\x5c\x0f\x4b\x37\x04\x8b\x43\xaf\xff\xb9\xc8\x73\x2b\x1e\xea\x9b\xb8\x45\x87\xb8\x94\xb2\xee\x7e\x17\x11\xc6\x06\x90\x14\x7b\x44\x3d\x45\x04\x93\x56\x17\x13\xc1\x3a\xb7\x65\x33\x2d\x05\x11\x4c\x72\x74\x37\xd7\xcb\xa7\xc3\xc3\xfa\xb1\x17\x4c\x26\x22\x0c\x64\xec\xb4\x78\x17\x9e\x5e\x68\x32\xea\x45\xe4\x28\xdc\xa7\x0c\x02\x58\x01\x75\x05\x51\x77\x07\xc5\x21\xd5\x72\x70\x90\x69\x6d\x6d\x63\xa3\x68\x9f\x7c\xaa\x84\xa5\xe8\x20\x7d\x83\xe6\xb9\x86\x6a\xad\x3f\x49\xd8\x88\x24\xb6\x0a\x4f\x77\x4f\xcf\x8f\xb7\xab\xed\xee\xf0\x73\xb5\xb3\xc2\x95\xf7\xeb\xbb\x3b\xff\x68\x89\xb6\x50\x86\xfb\xf2\x05\x5d\xcf\x11\xde\xd3\xf5\xe1\x4c\x61\x3a\xb3\x83\xe9\x5b\x2e\xc0\xdb\xdd\xc1\x07\x17\x9a\x6b\xa6\x3f\x3f\xc4\x05\x17\x80\xe8\xd0\xba\x11\x6f\x30\x92\x8e\x1d\x3f\x58\x1a\xa9\xc4\x02\x9f\x35\xc0\xf1\xeb\x4c\x80\x3f\x24\x31\x26\xc0\xb4\x53\x03\x3e\xdd\x8e\xa5\x44\x59\xf1\xe2\xa5\x36\xfd\x83\xa6\x92\xa2\x4f\x75\x14\x1f\xd9\xf1\x7c\xec\x40\x20\xae\x59\x04\x44\x85\x9e\x5e\xc0\xfa\xd2\x74\xf2\x42\x45\x4a\x30\x17\xa8\x5c\xb0\x71\xe9\xbb\x4e\xb5\x0b\x89\x10\x22\xc1\x74\xbd\xb0\x55\x7d\x0e\xf1\x3b\xee\x23\xc3\x20\x8e\xbd\x36\xa1\xd7\x0b\xd8\x57\x97\xf6\xdf\xfe\xae\x64\x1c\x60\xe5\xf0\xfe\x61\x90\xdc\x11\x52\x6b\x84\x88\x0f\x45\xb0\x71\xc8\xb4\x6f\x77\x9c\x16\x9b\xbc\x30\x95\xd0\x88\x0d\xc2\xe5\x8d\x68\xbc\xfe\x76\xdb\x18\xab\xc4\x73\x75\x37\xd6\x54\x9e\x83\xe8\x09\x1d\xdb\xe9\x80\xec\x8d\x96\x5e\xb4\x29\x1b\x18\xc0\x8f\x47\x0b\xae\xd0\x9c\x61\x70\xfc\x2e\x17\x52\x0a\xff\x2b\x04\x01\xba\x18\x3f\xb2\xba\xee\x0a\x65\x89\x80\x30\x0a\xe4\xc0\x08\xae\xbb\x86\xd8\xd6\xa2\x64\xf5\x1d\xd6\xa5\x59\xb5\x0c\x07\x8f\x42\x8b\x7f\x7e\x81\x31\x91\xad\xec\xc7\x40\xee\xfe\xda\xf3\x1d\x3f\x9b\x11\x51\xe4\x68\xfa\xb1\x02\xfb\xa1\x2c\x5a\x5b\xd8\x23\x34\x1c\xeb\xa7\x1f\xdc\x32\x48\xd2\x48\x0d\x6c\xe6\x2f\x4d\x76\x49\xa3\x54\x39\x6a\xf7\x91\x90\xce\xd8\x09\xff\x82\xb7\x87\x48\x9a\x28\xcc\x0d\xdc\xc2\xb9\xb6\xa5\x54\xb8\xfd\x7c\x76\x41\x1e\x23\xdf\xc2\x66\xf1\x6d\x35\x74\x9c\x24\x4d\x6d\xde\x04\x01\x08\x0b\xad\x5b\x4b\x70\x10\xf0\x95\x54\x87\xa9\xea\xa8\x67\xac\x3b\x3a\xb9\xc4\xff\x45\x3d\x5a\x80\x4f\x95\x74\x66\x97\x02\xc9\x88\xf4\x19\x23\x2b\xd0\x3c\x91\x97\x20\x92\xc5\x56\x43\x76\xf9\x7d\xb5\xfc\xf1\x22\x8e\x12\xaa\xfd\x6f\xef\x25\x4b\x96\x0a\x74\xa0\x85\xd6\x76\x84\x59\xeb\xea\xef\xcc\x2a\x7f\x34\xc8\x74\x18\x9c\xf6\x8c\x40\xe3\x79\x29\xc3\x84\x23\x25\x41\x2e\xea\xc6\x42\xb2\x9f\xde\xa1\x12\xfd\xbb\x09\xb9\xe1\x3e\x16\x66\x6d\xc4\x3f\xce\xd7\x2c\xe8\x44\x46\x89\x0c\xc7\x14\xa0\x57\x1f\x7c\xbe\xb8\xee\xef\x7e\x9e\x5c\x26\x8d\x02\xd4\x2d\xef\x7d\x72\x19\x69\x5b\x44\x52\x9c\x8f\x0f\x7e\x66\xc9\x98\x80\x82\x6e\x43\xbd\x07\xd3\x7c\x17\x9d\x61\x26\x63\x6a\x84\xc5\x8b\xa0\x3d\xde\x45\xcf\xba\x8f\x17\x87\x14\x43\x14\xbe\x70\xf5\x7a\xa3\x90\x49\xa2\x85\xdb\xb2\x57\xc7\x53\xe3\xf2\x7b\xbe\x51\x10\xc4\x79\xc1\x31\xb3\x0a\x49\x99\xba\x2f\x5f\xe6\x7c\x42\x99\xa8\x10\xe9\xae\x5d\x68\x7f\x31\xa0\x2d\xf5\xcb\x81\xe4\xd2\x6a\x93\xb7\x6b\x58\xa6\xfc\xaf\x29\x13\x28\x0d\xd2\x6e\xe0\x9b\xed\x6a\xb7\xb8\x5f\xd1\xae\x2d\x01\x1c\x5b\x42\x6b\xb4\xd6\xe6\xc7\x68\xaa\x39\x22\x80\xdf\x6a\x75\x33\x64\xbc\xde\x97\x2b\x55\xd6\x97\xba\x81\xab\x24\xd6\x1c\x80\x66\xf0\xcb\xe8\xd1\x44\x02\x88\xe7\x9e\xd8\x4c\xd3\x2f\x3e\x75\xab\x26\xbf\xfb\x93\xb5\x9b\xab\x8b\x13\x66\x4d\xf6\x1f\x28\x96\xaf\xa2\xf5\x22\xa1\xca\xea\x26\x53\x13\x53\x52\xb6\xfb\x89\x0b\x30\xfc\x84\xaa\x6e\x3d\x20\x94\x68\x2d\xab\x2b\xa1\xe8\xe9\x95\x54\x88\xe1\xf5\xb3\xe5\xdf\x78\xc8\xa6\x68\x7b\x29\x80\x44\xf1\x80\x24\xcd\x6b\x22\x62\xf6\x16\xf4\xf3\xdf\x20\xdc\xa4\x94\x31\x3a\x37\xad\x95\xb0\x14\xa7\xac\x4f\xd0\x4a\xa5\x00\xd9\x9f\x97\xd5\xe5\xd4\x94\x8b\xa6\x3c\x76\xa3\x40\x69\xea\xf4\x60\x0b\xfd\xd5\xce\x27\x35\x31\x02\x15\x31\xe0\x7d\x5c\xe7\x24\x81\x32\x70\x83\xd6\x26\xe6\x32\x18\x97\x63\x4a\x88\x53\x1e\xb9\x9d\xfa\x26\x6b\xfe\x2c\xab\xdd\x59\xa9\xe1\x29\x62\x81\xd5\xd5\x42\xeb\x47\xf8\x6d\x4b\x4e\xe7\x6a\x12\xfb\xdb\x01\xd0\xda\x21\xc0\x9f\xae\x36\x30\x1f\x55\x96\x26\x88\x11\x49\xdb\xf8\x5a\xb1\xd1\xbe\x2a\x4d\x20\x43\x97\x95\xdb\xdd\x8c\x9e\x9b\xb8\xeb\xa8\x20\x20\x18\xdd\x6b\x4f\xbf\x38\x65\x57\x9c\x46\x5f\x14\xf8\xa9\x20\x92\xdc\x25\x4b\xc7\x40\x33\x1b\x66\x70\xbd\x48\xc4\x02\x97\xa2\xb0\x24\x7f\xb3\x68\xeb\xae\x37\x80\x13\xeb\xcb\x97\xab\x8f\xf1\xca\xab\x68\xaa\xa8\x53\x49\x9e\xb3\xad\xc6\xaf\x50\x51\x19\xe3\x54\x17\x45\x76\x14\x1d\x7d\x7f\xfb\xbb\x46\x03\xc2\xaa\xc3\xc3\x7c\x86\xd4\xf5\x65\xcc\x52\xf4\xb7\x8b\xde\x6b\xeb\x25\x4d\x99\xcd\x89\x62\x91\x8d\x9a\xbc\x80\xcd\xb8\x57\x22\x1f\x0f\x20\xc5\xc0\x72\x8e\xff\x2c\x5b\xbb\xd3\xb2\xf7\xce\x6e\xc7\x8a\x41\x88\x73\xc4\x29\x55\x7c\x4a\x6d\x4f\x54\x48\x6d\x04\xe1\x5c\x58\x86\x2f\xbf\x0a\x75\x17\x0d\xa9\x12\xde\x7a\x44\xfa\x29\xf7\x7b\x94\x10\xe3\x62\x04\xf7\xa2\x6e\x76\x0d\xe4\xf9\x44\x5a\xf8\xd3\x39\xa8\x22\x08\x91\x0c\xd4\xed\x8c\x3b\x64\x47\x1e\x8a\x18\x8f\xa3\x51\xdd\x51\x51\x2c\xdd\x3e\xf7\xb7\x9c\x8e\xb3\xce\xb1\x3b\x51\xac\x42\x34\x8f\x7c\xca\xbd\x35\x67\x7f\x65\xcd\x6b\x87\x74\xf8\x9a\x80\x73\x12\x7d\x52\x09\x0f\xb1\x48\x13\x63\x55\x25\xbe\x06\xd7\xc2\x53\x4b\x81\xdb\x5e\xe0\x1f\x67\x38\x7f\x62\x3e\xa9\x94\x10\x32\xe4\x74\x5f\xe4\xf9\x80\x4c\x9f\xa8\x34\x4c\xa8\xe3\x24\xab\x1b\x51\x34\x45\x1f\x6d\x52\x22\x90\xb8\x36\xdf\x2e\x9e\x3e\x19\xc0\x82\x06\x18\x27\x79\xa9\xe0\x32\x9c\xfe\xbe\x39\x64\x88\xce\xfd\xe6\x8c\xa5\xa1\x76\x8e\xef\x12\x5b\xd2\xb3\xda\x4b\x32\x7b\xf9\xb4\x49\x3f\x49\x13\x2c\x57\x76\xa2\xdb\xed\xb6\xbf\x2a\xf4\xee\x94\x67\x9f\x64\x53\x94\x14\x9c\xb5\xef\xee\xe6\xe9\xf9\x71\xff\xd7\x61\x71\x7b\xbb\x5d\xed\x76\xfe\xd9\xa4\xa1\x9c\x5f\x87\x2e\xc7\x81\xa5\xd9\xd4\x92\x92\x26\x02\xa7\xd5\x3e\x8f\xde\x55\x10\xcb\x30\x19\xaa\xc7\x8e\xe4\x5e\x88\x32\xca\x60\x62\x7d\x7d\xbb\xf8\x36\x0c\x47\xe8\x80\x45\x3e\x2c\x87\x6c\x2d\xd7\x4c\x52\x44\x13\x65\xa3\xc3\x96\x4b\x9a\x1c\x32\x55\xa2\x52\x8b\x57\x4f\x1f\x46\x04\x34\x4d\x85\x21\x1e\xd9\x35\x23\x0f\x4d\x34\x35\x96\x82\xb6\x0b\x31\x8f\x97\x06\xcd\x48\x8c\xcf\xf2\x2a\xea\x1d\x56\xc7\xfd\x2c\x9b\x69\x38\x51\xb3\x88\x60\x89\xdc\xfa\xbd\x74\x31\xe8\xee\xf0\x48\x49\xea\x31\x53\x97\x55\xf3\xba\x2e\xa6\xc7\xc6\xca\x04\x3e\x85\x61\x03\xf6\x4e\x6c\xc7\x33\xde\x7c\x05\xb8\x71\xc2\xe2\x84\x7e\x22\x7d\xe9\x2f\x92\x26\x30\x60\x35\x18\x6d\x42\x3a\x24\x96\xca\xa9\x80\x8f\xa6\xee\xc1\x6f\x3a\x24\x0c\x17\xf3\xac\x7e\x28\x0b\x68\x5e\xc5\x6c\x94\x42\x87\x54\x1a\xa7\x81\x7e\x93\x0b\xf5\xe6\x79\x70\x26\xbd\x84\x75\x0b\x64\x59\xbe\xb5\x2b\xc2\x7d\x66\xe6\x8b\x7f\x27\xe9\xc6\xff\xfb\xd7\xe4\x51\x42\xd0\x88\x47\x38\x64\x35\xf2\x61\xdc\x67\xc7\xac\x7f\x14\x23\x74\xd8\xa1\x1b\xdc\x22\x78\xb5\x9d\x0d\x87\xb3\x8e\x09\x67\x72\x90\x5c\x5b\xf5\xce\xf2\x78\x46\xe9\x38\x61\x11\x1b\x2c\x6e\x56\x7b\x71\xfa\x55\xc6\x27\x4f\xad\x7c\xf9\xe3\xea\xc6\x1b\xf1\x3a\xe1\x96\xe6\xba\xce\x5e\x0a\xd0\x8b\x79\x28\xc2\x97\xcb\xe4\x3c\x32\x7a\x3c\x09\x35\x4f\x34\x38\xd3\x62\x7b\xb3\x58\xce\x7f\xbb\x34\xb0\x9c\xd4\x4a\x58\x70\x97\x15\xa1\xf5\x77\x9a\x72\xe9\x75\xa3\xec\x4c\x1c\x7f\x89\x34\x65\xc4\xf9\xc2\x58\xb7\x68\xad\xb7\x6b\x98\x7a\xff\x06\x85\x90\x68\xeb\xd9\xdd\xd3\x62\x6f\xc6\x3d\x64\x28\x6d\xee\xa7\xdc\x57\xd9\xcb\x8b\x25\x13\xf7\xf7\x23\x63\x1b\x3a\xde\xff\xb5\x59\x1d\x56\x7f\x6e\xee\x9f\xb6\x1d\x8c\x56\xcb\x14\x90\x4b\x03\xb9\x8c\x39\x9f\x9e\x57\x73\x34\x1e\x0d\x40\xaf\xec\xe8\xda\x80\x30\xe4\x46\x6d\x30\x45\x8d\xa2\x24\xab\xce\xab\xd2\x90\x00\x06\x56\x33\x85\xf1\xc8\xee\x67\x27\xa2\x54\x94\xda\x0a\xbc\xd9\xdf\x81\x50\x45\x1d\xa7\xa6\x2d\x0d\xf0\xbf\xa7\xca\x1b\x21\xbb\xa6\x12\x0d\xbc\x5c\x86\xe1\x7d\x60\x69\xac\x46\x04\xad\x7f\x95\xe7\x0a\x43\x42\x63\x81\x14\x02\x0c\x28\xaa\x6c\x21\x33\x56\x47\x21\x4e\x20\x24\x06\x95\xa1\x0e\x79\xa9\x44\x7e\x97\x79\xce\x36\x67\xc1\xfa\xcf\x06\x11\x09\x91\x8a\x29\xab\xbb\x42\xe5\x3f\xc6\x1d\x92\x50\x44\x9e\x44\x0d\xb9\xee\x3e\x19\xe4\xa3\xb1\x0e\x91\xb1\x91\xae\xb2\x80\x83\x12\x95\x7f\x53\x10\x33\x62\x73\x4f\xa5\x86\xc1\xf6\x0a\xb1\x48\x82\x64\x68\x9c\xb6\x96\xdb\x2c\xa2\x14\x12\x19\x60\xd1\x93\xf2\x64\xec\x9b\xaa\x2c\xcd\xd4\xe1\xf1\x4b\x05\xf1\xd6\x37\x24\xd2\x60\xb9\x2f\x56\x33\xbc\x4f\x09\x6a\x09\x70\x6e\x7a\xd1\x06\xd0\x2e\xaf\x3e\x26\x4c\xf2\x5d\x55\x82\x6f\x77\x09\x55\xd3\xe5\xd5\x80\x83\xc4\x4a\xa6\x5b\x18\x91\x33\x40\x4a\x0d\x66\x06\x31\x54\x5d\x6f\xa0\x42\xfa\xb9\xae\x35\xb5\x44\x90\xbd\x92\x2f\x72\x1f\xef\x4e\x00\x7a\x18\xf1\x84\x14\x52\xcc\xc0\x5a\x80\xc8\x98\xc7\x71\xfc\x86\x52\x10\xb8\x03\x6d\x26\x92\x5f\xd7\x4b\x45\xe7\xeb\x43\x0a\x90\x0c\xb2\x3c\x6b\x55\x8e\xf6\x05\x10\x44\x60\x49\x87\x8d\x20\xdd\xc2\x14\x87\x07\x42\x44\x68\x36\x43\xa5\x68\xb0\xf4\x2a\xe0\x04\xa4\x26\xb8\x6e\xe4\xe5\xcb\x22\xcf\x07\xa4\xf9\x04\x20\xe0\x81\xee\x30\x6d\x08\x7b\xc0\x1c\x54\x59\xad\x8b\x49\xc0\x78\x70\xa7\xc0\x69\x92\xf4\xbc\x76\x08\xe0\x9c\x35\x3d\xc0\x90\x00\x79\xcb\x76\xc8\xd3\x68\xb2\xe6\x8a\x9d\x94\x80\x49\x09\x0a\xc6\x3a\x14\xd8\xa1\x41\xf0\xe1\x97\x18\x3e\x13\x10\x12\xba\x32\x0b\x8c\xd9\xdb\xa1\x3a\xb1\x03\x4c\x10\xd1\x81\xf2\xe8\x23\x7c\x34\xdf\x6c\x91\xeb\xa2\xd0\x0f\xe2\x03\x53\x8d\xcf\x45\x93\xe5\xed\xcf\xab\x4f\xb4\x68\x89\x09\x92\x40\xa7\x1e\x4a\xe2\x5f\x9d\x09\x52\x3a\x2a\x53\xb8\xba\xe3\x01\xda\xd9\x04\x46\x21\x52\xe8\x20\xb4\x5d\x97\xf7\xa5\xa3\x84\xbd\x0a\x58\x8c\xaf\x4d\x92\x00\xb3\x09\x53\xc2\x7a\x62\x88\xd1\x9e\xbe\x74\x59\x65\xad\x97\x6d\x21\x2b\x93\x77\x40\x23\x86\xf9\x30\x67\x6a\x6c\x07\xa9\x43\x43\x13\x85\x01\xa4\xac\xfe\x25\xaa\x2a\x2b\x2b\x0b\xc3\x9f\x9c\x40\xd9\xa5\xfa\xb7\x77\xaa\x41\x5b\xcb\xab\x87\x34\xfa\x9e\x3a\xc1\xca\x89\x3d\xe4\xf0\x22\xda\x4e\xe3\x2f\x6d\x98\x30\xae\x42\xe7\xd8\xee\xb1\x67\x9d\x35\x25\xfa\x24\xb8\x20\x38\xc0\xc5\x02\xe9\xe6\xe7\x0c\x05\x77\x96\x50\x50\x1c\xce\x7d\xb5\xe7\xaf\x61\x01\xcb\xfc\x8c\x34\xa1\xb1\x80\xdb\xac\x43\x97\x3c\x74\xf1\x7f\x13\xb1\x10\xad\xca\xd2\x15\x0f\xbb\x75\xb6\x87\x79\xae\x8b\x0d\x54\x3e\x26\x66\xe2\x20\xc1\x57\xb2\x2c\xb3\xe2\xd0\x05\x88\xba\x56\x10\xb8\x75\x08\xbf\x9c\x5b\xc0\x55\x7f\xbb\xff\x9f\x6a\x70\x67\xda\xdd\x75\x12\x2a\x31\x70\xfd\x08\xbf\x37\xaf\x9e\xda\x94\xfb\xc6\x38\x08\x3d\x7f\x6f\xb3\xbb\x1c\x65\x99\x8f\xbc\x70\xc3\xa3\x00\xe2\xbf\x4f\x35\x0e\xd7\xa9\xd1\xfe\x62\x52\x41\x89\xb3\xe5\x31\x9a\x8d\xa9\x0f\xcf\x18\xd2\xf5\xe1\xd6\x16\xc5\xe0\xce\x57\x9f\x27\x55\x69\x07\x8f\x9a\xd6\x7e\x19\x11\x58\xe4\x6d\xe7\x35\x6a\x71\x54\x03\x08\xb4\x11\x49\x8c\x59\xbf\xfa\xb5\xac\x1a\x2b\xe3\x33\x89\xd4\x19\x91\x28\x1e\x76\xab\xe7\x16\x3e\x83\xbd\x19\xc1\x21\x71\xfe\x54\x55\xe6\x79\x7f\x8d\x34\xb0\x38\x99\xa6\x3c\xad\xeb\xfa\x9c\x15\x2f\xeb\x42\x67\xef\x99\x3e\x8b\x7c\x14\x49\x35\x32\x54\x8e\xf3\x00\xd6\xca\xa9\x4a\x0e\xe0\x1a\x46\xc6\x89\x9a\x11\x60\x72\xad\x2a\x92\x16\xc3\xbb\x7e\x3c\xdc\xac\x6f\x0f\x77\xdb\xc5\xf2\xb0\x7f\xf2\xb9\x53\xa3\x13\x8a\x5c\x69\x1b\xd1\x3a\x9e\xf5\x0d\x40\xd1\x2e\x4b\x23\x63\xd0\x68\x99\x78\x38\xee\x1d\x72\x26\xfa\xa3\x41\x50\xe6\xc3\x1c\x77\x22\xcb\xf7\xc3\xd0\xc0\x2b\x14\xbb\xa6\x3c\x9d\xba\x04\xb0\x31\xc4\x8a\xd3\xe7\x59\xf1\x76\x9b\x55\xa0\x9a\xfc\xf2\xc7\x17\x72\xd9\xc4\x18\x65\xc3\x3b\xb7\x50\x34\xa2\xfd\x4a\x5d\x05\x35\x76\xa0\x41\x20\x04\xa6\x25\x11\xb4\x87\xeb\xd1\x8d\x6f\x22\x4c\x28\xc7\xd1\xe3\x71\x7f\x5f\x6e\x04\x34\xa0\xd4\xaa\x64\x1f\xb3\x22\x3b\x9e\x8b\x95\xdf\xd5\x69\xc0\x18\xc5\x84\x0c\xf2\x10\xe1\xb6\xe3\x1b\x22\x1b\xe8\x39\x0a\x0d\x9e\x2d\xe0\xae\xac\x3e\xc9\x8f\xce\x5b\xfc\xfd\xda\x4e\x03\x66\xac\x36\x6b\x5d\x9a\x46\x89\x13\x19\x01\xb6\x69\x10\x6a\x89\x65\x54\x7d\x11\xfb\xea\x7e\xbf\x9c\x44\x26\x69\x10\xa9\x08\xe9\x9c\xb2\xa2\x39\xb7\xab\xab\xc9\xcb\xdf\x7f\x8c\x9f\x35\x32\x96\xe9\xb0\x1d\x74\x75\x87\x5a\xa6\x41\x4c\x62\x5c\x10\x5b\xeb\x53\x21\xb4\xeb\x6f\x16\x16\x7f\x5c\x98\x86\x1d\x7a\xf2\x20\x11\x38\x37\xf7\xd8\x6e\x50\xb5\x07\x68\xf4\x17\x72\x30\x0d\x0d\x26\x77\x17\xc7\x96\xf8\xe7\x66\xb9\xec\xbe\x67\x2c\xa9\x97\xd8\xbb\x2f\x5f\x26\x07\x24\x94\xa1\xed\xe1\x4b\x02\x7f\xc2\x6b\xa6\x72\xd8\x9d\xc4\x27\x52\x82\x83\x43\xc3\x00\x03\xa9\x03\x52\xe1\x25\x74\x0a\x9b\x34\x48\x22\x85\xc0\x23\x79\xbe\xec\x96\xfb\x1f\xb3\x6b\x0e\x0d\x12\x19\xd9\xaa\xa0\xed\xda\x1f\xc8\x99\x4d\x06\x5a\xe2\xac\xbb\xb2\x42\x65\x81\x45\xa1\x9f\xce\x8d\x2a\x27\xfc\xb3\xdc\x1f\x94\x38\x62\x8c\xbb\x61\x89\x21\x0d\x78\x2a\x13\x04\x62\xac\xbe\xdd\x5f\x13\xc6\xd0\x20\xe5\x3a\xf4\x75\xa8\xde\xcd\xb8\xcb\x4b\x2c\xa3\x19\x15\x7e\xf9\xfe\x69\x88\x41\x36\x0c\x3a\x81\xae\x47\xa1\x11\x1a\xa4\x2a\xc6\x44\x48\x6b\x0b\x88\xc6\x51\xa9\x74\x8d\x90\x42\xdc\x11\xc0\x65\xc7\xf3\x71\x72\x72\xc1\x22\x8c\xbc\xad\x3e\x4e\x25\x56\xe4\x79\x41\xdb\x59\xf5\x8d\xc1\x71\x51\x60\x57\x2b\x4f\x16\x8d\x72\x24\xfe\xb2\x22\x56\xc9\xd0\x47\xbf\x2b\xab\xc3\x97\xf9\x62\x1a\x88\x94\xa3\xe3\x88\x14\x30\x83\x85\x91\x06\x92\x0a\x5c\x8b\x0e\x03\xc6\x72\x1a\x48\x90\xa2\x97\x6b\x3c\x96\x0f\x59\xe1\xa1\x08\xab\x49\xa2\x9d\x06\xca\x18\xa5\x3d\x5e\xbd\x6e\x3f\xf0\x12\x25\xc7\xbe\x8a\xe2\xd2\x40\x53\x6e\x0b\x93\xb3\x02\xb3\x8e\x08\xcf\x9e\xbf\x7b\x4d\x0d\x46\x18\xac\x3a\xaf\x95\xcb\xf5\xbc\x50\x9e\x54\xc9\x77\x0d\x23\x16\x76\x9f\x64\xf7\x5b\x9c\xc6\x70\xec\xae\x9b\xa5\xa7\x42\xfd\x0d\x9b\x13\x1f\x99\x55\x34\xd0\x2a\xc6\xca\x08\x4b\x8e\xb9\x5f\xce\x6e\x6c\x34\x80\x80\xf2\xce\xd6\x3f\x17\x8d\x0f\x8d\x8d\x4f\x06\xb1\x0a\x1c\xe7\xf2\x41\x83\x11\xe7\xbc\x39\x58\xcb\x5c\xe4\x07\x3d\xc7\xa4\x4f\x03\x10\x01\xb5\xb2\x27\x9d\x2c\x6f\x39\xbd\x49\xa3\xad\x18\xc2\x00\x5a\x36\xbe\x3f\x12\x50\x8a\x56\x95\xb5\xd6\x77\xd0\x34\x39\x58\x1a\x98\xba\xc9\x9a\x6b\x50\x08\x25\x01\x23\x68\xdf\x6f\xca\x46\x94\xf5\xcd\xb9\xd3\xa9\xa4\x84\x48\x89\xa6\xe6\x93\x4b\xc7\x23\x36\xd8\x37\x52\xc2\xd1\xee\xfd\x76\xfb\xc3\xff\xc4\x52\x11\x38\xd5\xc1\xc6\x94\xd5\xd1\x6f\x0c\x8f\x70\x3e\x8a\xea\xcd\x32\xd0\x0c\xe8\xdd\x28\x09\x23\x8d\xf8\xbe\x17\x71\x04\x5b\xf1\x32\xac\x18\xa4\x24\xe4\xa9\x0e\xfb\xf2\xcc\x39\x4f\x9a\x92\x10\x62\x2b\x1f\x7d\x2a\x7f\xd3\xf9\x21\x45\x22\x19\x72\xe6\x41\x82\xb6\xcc\xe3\x01\xaa\xb7\x1c\x46\x5e\xf7\xff\x5d\x49\x6e\xba\xc3\x63\x1a\x45\xde\x4f\xe8\x28\x85\xe7\x53\x25\x5f\xfd\x71\x67\x4b\x20\xc4\x5c\xfe\xf6\xdb\x77\x8f\x30\xa1\x84\xcb\x14\xfd\xfa\xf6\x55\x0c\xdc\x4b\x4a\x38\x48\xc4\x26\xee\x9e\x6f\x1e\xd6\xbb\xdd\xfa\xe9\x71\xbb\xfa\xb5\xd8\xde\xfa\xf6\x94\x04\xa4\x0f\x40\xdd\x01\xb4\x13\xb2\xab\x52\x7b\x43\x13\xab\x81\xea\xdd\x67\x2e\x29\x49\x85\xc2\x65\xaa\x7e\x2d\x7f\x3f\x5c\x7e\x96\x4d\xf7\x3d\x52\xa7\xaa\x2e\xb4\xde\xa9\xb2\x1a\xd1\xd2\x51\xd2\x9a\x7f\x3d\xe1\x85\x53\x62\xb8\xb9\xf8\x02\xa0\x85\x0b\xde\x5f\x51\x8d\x7e\x99\xdf\xa1\x44\x32\x82\x65\x95\x26\xab\x50\x04\xb5\x79\x32\x5d\xb9\x7a\xbd\x1c\xd6\xd1\x51\x22\xa5\xc2\xa4\x6b\x6b\x79\x1d\x32\x94\xdb\x3b\x98\xac\xd0\xad\xf7\xf2\x3d\x2b\x9a\xd6\x3f\xb5\xf0\x88\xef\x20\xf4\x1f\xa3\xeb\xa8\x90\xfb\xfa\x95\x8e\xfd\xc0\x37\xc9\x94\x77\x95\x23\x59\x59\x3c\x88\x8f\xa5\x38\xf9\x56\x2d\x43\x3f\x0a\xff\x71\x86\xea\x32\xde\x33\x88\x06\x82\xcd\x37\xe7\xcb\xac\x75\x3e\xfe\xf8\x26\x8c\xd0\x86\x6e\xc7\xf3\x80\x8f\x7a\x68\x79\x52\x62\x62\x86\xd8\xb6\xef\x0f\xc3\xcd\x90\x06\x31\x45\xe2\xac\xbb\xec\xe3\x06\x1a\x46\xba\xdf\x85\xe6\x69\x17\x22\x76\x69\x60\x73\xce\xa7\x7e\xb1\xef\x2e\xd3\xc8\xc5\xed\x56\xb5\xaa\xca\xdf\xe8\x7b\x1c\x6a\x8b\xac\x1f\x7d\x9c\x76\x0a\xe2\xfe\x6b\x89\xcf\x26\xec\x2e\x9f\x06\x62\x28\x25\x40\xa8\x0b\xb8\xdd\x88\x89\xd5\x42\x69\x12\x62\x63\xeb\x06\x38\x55\x59\x9b\x54\x99\xf6\x13\x90\x0c\x14\x62\xad\x13\xd0\x0d\x06\xca\x92\xc0\x18\xa4\x23\x69\xe0\xc3\x11\x00\xfa\xb6\x30\x06\x5b\x16\x67\xab\xdc\x07\x81\x09\xdf\x21\x21\x98\xd6\xb3\x83\xb9\x23\x00\x19\xad\xab\xbd\xa8\xf2\x5c\x26\x8e\xd2\x28\x4c\x53\x5f\xaf\x57\xc1\x3b\x2a\x7c\x8c\x2e\x12\x45\x3a\x0d\x7a\xca\xf9\xdd\x6b\x66\xe5\xc3\xc7\xb7\x12\xf1\x24\x0d\x7b\x97\xde\x87\x04\x5a\x6f\x02\xb3\x0f\x33\x59\x78\x4a\xe3\x84\xe0\x2e\x7c\xb0\xc2\x1f\xa5\x7a\x7b\x1e\x57\x00\x53\x1a\x73\xbb\x0d\x89\xaa\xc9\xea\xa6\x5e\x54\xcd\xef\xb2\x7a\x9b\x67\x02\xa6\x34\x16\x29\xae\x4a\xfb\xed\x63\x0f\xeb\xa3\x34\x89\xec\xc6\x98\x97\x2f\x18\xc7\xc3\xd2\xab\xae\x51\x6a\x4c\xe4\xdf\x56\xe2\xa5\x2c\x86\x87\xf1\x28\x8a\x5d\x20\xbd\x97\x04\xe7\xa3\xf5\x84\x72\x61\xb0\xcc\x01\x89\x90\xd6\x75\x2e\x0a\x3d\x3c\x45\xca\x52\x54\x08\xbb\x2f\x5f\x9c\x28\x3e\x64\x75\x7d\xfe\x44\x0f\xac\xdd\xf8\x20\x1a\x14\x91\x8f\x29\x05\x28\x15\x49\x10\xb9\xd2\x8f\xef\x65\x6d\xa1\x1c\x73\x33\x94\x0a\x9e\x5a\xca\x2f\xbf\x08\xb5\xce\x57\x4f\xa6\x47\xa9\x24\xd2\xf3\x93\x88\xaa\x12\x97\x43\x3e\x00\x66\x50\x2a\xb9\x4a\x90\x71\xeb\xc7\x6a\xfb\xb8\xba\x3f\x6c\x16\x8f\x6b\xbf\xcc\x53\x88\x02\xa4\xcc\xd8\x40\x21\xf2\x66\x5e\xcc\x8d\x52\x50\x0a\x2b\xf1\x3a\xd9\x6e\x91\xe7\x07\x81\x60\xe3\xd1\x27\x66\x41\x18\x63\x99\x93\xee\x17\x33\x16\x24\x0a\xf3\xaf\xf7\xcb\xc5\xee\x7b\xf7\x23\xa7\x98\x6c\xc5\xd5\x7e\xf8\xb8\x2c\xd0\x21\x77\xfe\xc5\x77\xa8\x4a\x4f\xa8\xbb\xfa\x38\xdd\x95\x15\x72\xc9\x3e\x8f\xc1\xd7\x94\x91\x98\x0a\x17\xcc\x73\xaa\x59\x03\x05\xc2\x7a\xda\x59\x58\x11\x88\xf7\xb2\x81\x5d\x21\x4e\xf5\x6b\xd9\xb8\xba\xc0\xc5\xb9\x29\xbf\x66\xb6\xa7\x8c\xc6\x36\x42\x33\x85\xf5\x8f\x53\x86\x2e\x5a\x42\x19\x35\x96\x79\x6e\xb7\x59\x3c\x74\x2b\x05\x63\x24\x44\x03\x7b\xf5\x61\xab\x45\x5c\xf8\xf0\x9f\xbf\x96\x5f\x1b\xd2\x8c\x49\x2b\x92\x23\x4e\xa7\xd6\xfa\x19\x51\x5d\x50\xc6\x54\xcc\xe3\x2e\xd6\x5e\x5d\xb5\x26\x98\x86\x2d\xe0\xa3\xc9\xcb\xa6\x18\x5a\x36\xc8\x55\x89\x9b\x5e\x59\xb5\x56\x11\x9a\x56\xfb\x51\xb0\x9a\xb2\x88\x59\x0e\xa3\x0a\xea\xf3\x11\xbc\xc4\x9e\x6f\x8c\x03\xa4\xa5\xfa\x27\xc8\x4a\xcc\x96\x05\x9c\xa7\x54\xc1\x94\xc5\xcc\x66\xb1\x4f\x88\x10\x24\x5d\x4a\xa8\x6d\x81\x60\x84\xde\xed\xc9\x92\x71\xc6\xdf\x0c\xb8\x73\xe7\xf7\x71\x16\xc7\xc4\xc4\x3d\x8c\x77\xcc\x1f\xda\xf5\x01\x61\xf3\xaf\x4f\x0f\x6b\x5b\x1a\x3e\x9e\xa6\x2c\x8e\x0d\x0e\x97\xa3\x78\x83\x7d\x79\x14\x4d\x39\x61\x17\xa4\x2c\x4e\x01\x61\x00\xdf\x7c\x99\xf4\xed\xa5\x10\xc7\x4c\x6d\xdb\xbd\x7b\x7e\x46\xb1\x84\x01\x6e\x39\xcb\xed\x6a\xb1\x5f\xdd\x1e\x76\xfb\xc5\x36\xf4\xd7\x4c\x12\x8a\x39\x13\x9b\x93\x68\xba\x28\x13\x65\x89\x8e\x19\xda\x1b\x2f\x70\xdf\x05\xd3\x28\xe3\xcc\x92\xcf\xfe\x12\xf5\xeb\xa4\xfa\x81\x32\xae\x38\xeb\xb9\x04\x6e\x6f\xfe\xd9\x4e\x2b\xc7\x47\x39\xfd\x46\x5f\x8f\xbe\x34\x52\xd4\xab\xa1\x88\x0b\x7c\x8a\x34\xf1\xdd\xb9\xe5\x64\x02\xbd\x2c\xab\xe9\xfa\xc7\x52\x4d\xf1\xb6\x7e\x03\xbc\x6d\x2c\xe4\x62\x92\xf4\xa7\x4c\x44\x10\x0c\x8a\x95\xbd\x89\xc3\x44\xc2\x5c\xf4\xde\xca\xae\xae\x3f\xe5\x8b\xe9\x0e\x10\xb8\xb4\xff\x6f\x79\xa9\xc0\xcb\xbb\x50\x26\x94\x40\xa9\x28\xb4\x48\x2d\x70\xee\xb1\xd4\xdd\x9b\x93\x44\xe2\xa4\x18\x48\xd7\xf7\x10\xa3\xab\x1c\x0a\x65\x92\x2a\xe4\x3f\x79\x58\xfc\x79\xd8\xae\xee\x57\x8b\xdd\xea\x70\xdb\x09\x05\x50\x26\x15\x27\xbc\xcf\xb1\x20\x27\xdf\x2c\x15\xf2\x78\x5f\x67\x12\x2c\x6b\x8f\x12\xc5\x66\xe0\x26\x33\x69\xac\x06\x6f\xa6\x4a\x8c\x16\xd3\x91\xce\x14\x65\x8a\x06\x18\xb6\xc3\xe0\xe9\xa6\xf9\xe8\x7e\x8f\x52\x84\xf1\x2f\xcb\xe3\xb1\x9f\xc1\x4a\x46\xa9\x65\x3b\x57\xa5\x0d\x9a\x67\xef\x48\x41\x3c\xf6\x8b\x7d\xd5\x5d\xea\xcc\x37\xa6\x23\x15\x73\x87\x2e\xdc\xf4\x2b\x8a\x56\x11\x52\xd4\x3c\x74\x3c\x74\xf3\xa3\x44\x83\xd5\x34\x3f\xbc\x40\x73\x0f\x2f\x50\x68\x51\x5d\x36\xf9\xb9\xde\x0a\xcc\x20\x0f\xa3\x55\x4c\x1b\x8e\x45\xe7\x0f\xeb\xfb\xfb\xf5\xd3\xa3\xe3\x11\xf1\x97\x84\x84\x60\x98\xa1\x39\x57\xc5\x93\x31\x4b\x51\x58\xdb\xfb\xae\x2a\x8b\xe6\x57\x56\xe8\xf2\xb7\x25\xcc\x39\xa2\xd8\x6e\x3b\x3b\xfd\x91\x82\x19\x2c\x4e\x7c\x2d\x9b\x72\x0f\x1f\xdd\x28\x05\x23\x94\xf6\x72\x66\x0e\x41\xb0\x13\xa6\x83\x9a\x7d\x0d\xb6\x72\x27\x31\xb1\x41\x81\x4b\x5f\x5b\xf2\x74\x77\xb7\x5b\xed\xfd\x25\x0c\xa4\x54\xf9\x60\x47\x6b\xd1\x34\x4d\xf5\x45\x91\xd4\xff\x6b\x65\x1c\x0d\x49\x68\xe9\x79\x96\xa2\xda\x8b\x8f\x6c\x26\x52\x10\x12\x1e\x45\xdc\x97\xa1\x58\x8f\xa7\x43\x4b\x7d\x19\xbe\x0b\x69\x28\x84\xab\xbc\x1e\x12\x9a\xd2\x90\xa6\x1c\xad\xe2\x45\x6b\x9a\xdc\xc2\xd1\xbf\xf3\x90\x85\x82\xc2\xa0\x2a\xe0\x8f\x19\xec\x08\x0d\x59\x6c\x0b\xa7\x3d\x8a\x0a\x23\x58\xd9\x9c\x06\xd3\xac\x4d\x1c\xfa\x5d\xaf\x0f\xd5\xce\x73\xaa\xd1\x30\x64\x1a\xcb\xda\x75\x5f\xa1\xd1\x6e\x83\x56\xf5\x75\x30\xad\xc2\x88\xc5\x4e\xe0\xbe\x13\x2e\x39\x74\x6d\xae\x32\xe2\x68\x75\xd5\xe7\x89\x2f\x68\x18\x73\xee\x4b\xe8\xad\xdc\xf3\xe4\x3b\xc4\x52\x28\x57\x44\xf8\x4d\x1c\x61\x7d\x32\xd3\xbb\x4d\xb4\x35\x75\x2f\x3b\x14\x72\xee\xbd\xb2\x90\x87\x5a\x74\xb7\xb7\xec\x2b\x75\x9e\x8b\x7e\x05\x0d\x79\xcc\x13\xe1\xa3\xb8\xea\x6d\x37\xc0\xdd\xbb\x1e\x29\xb5\x04\xb8\x88\xa6\x40\x7c\xe4\x78\xef\x0c\xd3\x48\x45\xdc\x15\xce\xa1\x85\xd6\x5e\x09\xba\x2b\xa4\x49\x84\xc5\x11\xfb\xc5\xe8\xee\x44\x14\xb9\xb2\x98\xe6\x41\x7c\x0c\xe4\x0e\xb9\xef\x20\x03\xa4\x2d\xc2\x54\xc9\xd3\xe3\xb3\x9f\xdd\xa1\x0c\x02\x1e\x75\x23\xe1\x26\x2f\x5f\xba\xa2\x44\x1a\x4a\x2e\x74\xa7\xa6\xdb\x1a\x07\xf7\x65\x53\xcf\x17\x7d\xb5\x9d\x35\x16\xc9\x60\xa9\x16\xb8\xf2\x08\xd7\xa6\x62\x81\x7a\x37\x3f\x6e\x7e\x06\xa4\xfb\x51\x32\xdc\x3e\xbc\xac\xaa\xb5\x25\xba\x56\x13\x79\xa1\x2e\x1f\xa5\x44\xf6\xce\xe5\x75\xe4\x2f\xd4\x22\x8e\x4d\xe7\x5b\x61\x70\xb3\xe7\x7a\xf5\xcb\x5c\xa8\x35\x93\xce\xa2\x47\x90\x09\x54\x38\x7b\xfe\x98\x18\xa3\x21\x28\x8d\xdf\x08\xa5\x0e\xc9\x24\x7a\x1f\x05\x40\xb0\x82\x78\x23\xde\x56\x3f\x1c\xbb\x27\x8d\x90\x7a\x78\x80\x1f\x16\xaa\x19\x64\x52\x22\x92\x02\x06\xcd\xb0\x1e\xb5\x4f\xbd\x44\x34\x32\x41\x3a\xd1\x91\x6f\x3d\xc2\xdb\x12\xea\xc7\xd2\xea\x12\xf9\xdf\x9f\xcc\x43\x59\xc1\xfe\x55\x14\xf8\x33\xe8\x9b\xcb\x2d\xe6\x8f\x3b\xa7\x20\xa2\xa9\xa5\x13\x1b\x56\x67\xb5\xbb\xea\xf8\x09\xa8\xe4\xc6\x12\x86\xb4\x4b\x3a\x16\x9d\x3b\x0c\xd4\xa4\x23\xa3\x09\xe2\x2c\xa4\xd0\x2f\x9f\x84\x71\x23\xa6\x94\x36\x8e\x1d\xf6\xb1\x3c\x4e\x6b\x48\x69\x14\xc6\x06\x1d\xa5\xef\xe2\x78\x84\x0a\x19\x00\xfc\xed\x86\x1a\x10\x16\xb5\xde\xef\xc6\x7b\x6c\x14\x45\x96\x69\x49\x67\x75\x6d\x95\x1a\xc6\x27\x8d\xb8\x65\x8c\xc1\x0d\x04\xf3\xa9\x83\x10\xdf\xe7\x19\xa8\x28\x0e\xb5\xcd\x6d\x6b\x28\x9a\xcc\x64\x50\xed\x4b\x1b\x6d\x1c\x0d\x95\x28\x8e\x42\x01\x9d\x62\x84\x4b\x9e\xdc\x8f\x57\xac\x28\x91\x9a\x79\x88\xa4\x35\xa5\xca\x6a\xa0\x3e\x32\x9a\x1d\x51\xa2\xad\x95\xf2\x2a\xea\x2d\xd4\xa7\x12\xe9\x25\xc7\x17\xe5\xc4\xf8\xf1\xb9\xa8\x9a\x76\x8f\x6c\xae\xa0\x1a\x34\xe2\x40\xa3\xc8\x03\x6f\xad\xe3\x78\x03\xa6\x1d\x19\x53\x48\x03\x8d\x04\x49\x4d\xbf\xcc\xfb\xa9\x15\x09\x99\x22\xc7\x8a\x3c\x67\xb9\x5e\xbe\x8a\xea\xa5\x2b\x56\xa5\x91\xd0\x0c\x0d\x96\xe7\xbc\xa9\xc4\x63\x1f\x36\x8c\x84\xd6\xa9\xb5\x48\xf2\xfc\x56\x64\x77\x65\xf5\x19\xe2\x90\x46\x8a\x46\x96\x85\xd6\xba\x33\xc3\x9a\x06\x1a\x29\x16\x29\xf7\x04\x38\x0f\xeb\xd9\xf5\x24\x52\xc6\x25\x62\x4e\x79\xe6\x25\xd4\xfd\x29\xb4\x20\xe8\x9c\xdf\x23\x50\x07\xd3\x9f\xe3\xd8\xd2\x1c\x64\x92\x46\xda\x68\x1c\xac\xbf\x45\xd6\x34\x83\x44\x34\x8d\x40\x19\xc4\x7a\x09\xad\x6d\x69\x5b\xc7\x08\x35\xeb\x81\x46\x86\x31\x34\x3e\x70\x00\x3e\xd7\x50\xdd\x5c\x46\x6e\x5d\x64\x52\x83\x04\xda\x0e\xf7\x8c\x01\xf1\xc9\xd4\x88\x83\x98\xa1\x25\x7c\x68\x3f\xa2\xab\x85\xa4\x71\xc0\x29\x02\x12\xd6\xe5\xb9\xfb\x49\x4b\xe4\xb1\x6e\x37\x9b\xf9\xf0\xa3\xeb\x48\x88\x53\xea\x6d\xc4\x0b\xd0\x51\x62\x2b\x26\x51\x88\x11\x8f\x76\x03\x45\xfd\x37\x1b\x98\xf4\x64\x70\x34\x26\x0e\x26\xfa\xad\xcc\xf5\x8d\xdd\x9e\x91\x71\xb0\x6b\x4f\x19\x26\x26\x2c\xa5\xb4\x65\xc0\x1f\x13\xce\xbb\x8e\x94\x06\x89\x05\xea\xf9\xb5\xcb\x56\x26\x38\x43\x77\xf4\x99\x63\x1a\x06\x56\xc6\x11\x11\x67\xad\x77\x9c\x35\xbb\xd7\xb2\xbf\x6f\x1a\x12\xe2\x72\x26\x22\xcf\xf4\x02\xe3\x9e\x5e\x4c\x74\x54\xe8\x31\x8b\x21\xa6\x31\x35\x3a\x15\x9e\x69\xb6\x80\xcb\xe4\x6e\x59\x1c\x18\x70\x16\xfa\xd1\x16\x1d\x5c\x33\x33\xd1\x38\x64\x11\xb2\xc2\x78\xf6\xfd\x76\x99\x47\x74\x4f\x8d\xd9\xa4\xef\x9f\x16\x19\x7d\x6d\x3f\xc6\x61\xc8\x1d\x8d\x24\xee\x5d\xe8\xea\x62\x50\xb0\x6c\x5f\xec\xfc\x13\x85\x82\x85\x0e\x87\x67\xbb\x75\xbf\x73\x0c\xa3\xbc\x9e\x0b\x5d\x81\x6e\x7d\xdc\xee\xeb\x45\xd2\x44\x72\x60\x18\xda\x2b\xed\x4b\x7b\x82\xf1\x3d\x45\x2a\x44\xe8\x83\x6c\xd4\x24\x77\x1a\xc7\x91\x31\xd2\x47\x43\x5b\x87\xa6\x99\xbe\xcf\x38\x16\xcc\xe5\xc5\x5c\x05\xeb\x93\xfc\xb7\xaf\x60\xbd\x66\x0f\x19\xa3\x3c\x69\x1c\xf3\x04\x43\x03\xe5\x40\x7b\x81\xc6\xb1\x63\x1a\xfe\x25\x8a\xf9\xf0\xfb\xe4\x1e\x8c\x44\xa6\xbc\x81\xfc\xca\x78\xd4\x25\x81\x26\xc1\xb0\xe6\xba\xac\xea\x83\xed\x3d\xed\x29\x28\xae\x56\x76\xb7\x6c\xc7\x86\xe5\x62\xf4\x77\x96\x68\xe9\x93\x93\x2e\x21\x73\x83\xdb\xe5\xf8\x8b\x71\x4a\x3a\x81\x87\xf3\xe9\x74\x69\xdd\x11\x34\x20\xa7\x6b\x02\x0f\x49\x6a\x13\xf6\xf3\xdc\x56\x5f\x06\x07\xe2\x94\x58\x56\x3b\x1b\x95\xb8\x17\xf5\x90\x10\x60\xe6\x35\xa4\x51\x8a\x69\xa7\x87\x87\x51\x0e\x22\x4e\x63\x91\x76\x86\xdf\x49\x34\x59\xbf\xf6\xc6\x22\x49\xd1\xb5\xac\x85\x81\x07\xd1\xbc\xee\xce\x72\x7e\x17\x88\x45\xa2\x11\xfd\x78\xbf\xfa\xb9\xba\x3f\xb4\xfe\xfb\xcf\xc5\xfd\xf3\xaa\x3b\x91\x34\xca\xb1\x2d\x42\xd1\x1c\x8e\x67\x9f\xbb\x8a\x65\x60\x83\xab\x37\xe7\xcb\xa6\x02\xcb\x4d\xa7\xde\xbc\x78\x30\x9f\xac\x20\x92\x58\xc6\x64\xac\x84\xb0\xfa\xfd\x95\xee\x33\x3b\xb1\x4c\x04\x2e\x20\xbf\x3c\xf6\xed\x93\xc5\x53\x99\xd8\xa6\x9d\x4a\x14\xfc\x9d\x7c\x41\xad\x63\xaa\x87\xc4\x9f\x98\xbf\x83\xa1\xd9\x12\x03\xb7\x1a\x07\x2f\xd0\xec\xcf\x55\x81\xac\xd7\xe3\xb3\x18\xa1\x62\x18\x21\x68\x5b\x4f\xa4\x1b\x4c\x46\xdb\xbc\xd1\x51\x7c\xa0\xe9\xd6\x3f\x45\x12\xf0\x34\x8e\x47\xd3\x0a\x0d\x97\x7d\xe9\x80\xf8\x57\x52\x23\xfe\x38\x63\xf9\xcc\x5c\xb4\xe7\x7b\x79\xae\x61\x2f\xde\xa0\x83\xcb\xd3\x84\x04\x89\xc1\x58\xb8\xa8\x7c\xea\xb4\x6b\x8a\x6c\x8d\xc4\xb9\xb6\xbc\x9d\xc8\x18\x3e\x93\x9f\x4d\x48\xbb\x9b\x39\xd3\xd3\x72\x81\xc3\x4c\x9d\x2e\x4d\xa8\xa4\x98\x5e\x14\xd6\x86\xb5\x00\x49\xff\xfc\x09\x63\x02\xab\x44\x5d\x74\xff\xa6\xfb\x3d\xb6\xa6\xd1\xe7\x7c\xbc\x34\x61\x92\x90\xa0\x43\x09\x8c\xa4\xec\xfd\xeb\x4f\x42\x92\x22\x2e\xe7\x11\x40\xd7\x83\x34\x44\x12\x52\x2e\x3d\x1d\xf4\x50\x8b\xd8\x35\x47\x01\x8b\xdc\xb9\x95\xa8\xb4\x18\x1b\x2c\xf3\x93\x31\x89\xa9\xe5\xbb\x7d\xaf\xd4\xc8\x36\x48\x62\xce\xa4\x4b\x34\xaf\xd7\xeb\xc3\x96\x4d\xae\x16\x83\xc0\xc8\x3b\x4a\xb1\xb7\x66\x4f\xfb\xe6\xb3\xe2\x9c\x35\x97\x81\x6b\xc7\xe8\xff\x8c\x8e\x4a\x98\xc4\x58\x81\x7a\x6d\x2f\x56\xbc\x00\xea\xa4\x5c\x65\xef\x7a\x9b\xf8\xda\x3e\x4e\x12\x29\xb5\x73\xba\x9e\x5b\x5f\x9b\xac\x8b\xe6\x8e\xb9\x2d\xe0\xae\xbb\xcf\xff\x99\x1d\x69\x3c\xd0\xb8\xe8\x22\x05\x4a\x6b\x24\x14\xbe\x16\x68\x50\x8b\xfa\x77\x88\xce\xd9\x5a\xe0\xd1\x3d\x72\x29\xa8\x2b\xee\x78\x3c\x1f\x91\xe9\xac\x77\x90\x13\xae\x52\x9c\x82\x0d\x54\xc7\xac\x40\x78\x44\x6e\x6e\xc1\xa2\xef\xbb\x4e\xda\x26\x4f\x90\x8e\xa9\x73\x77\x93\x34\xa4\x68\xb5\xb6\x1b\xf1\x2c\x6b\x4a\xdb\x85\x23\x15\x5e\xcf\x04\x8f\xbb\x01\xea\xc0\x75\xa7\x49\x0c\xee\xc2\x06\xe5\xd1\xbb\xd2\xae\x1d\xfa\x12\xf5\xc2\x7e\x13\xe2\xcf\x28\x92\x18\xf3\xb4\x87\x5e\x0b\x64\x36\xa1\x9b\x88\x34\x64\xa2\x47\x72\x8f\xb3\xb4\xae\x8f\x4c\x23\xcc\x17\x3c\xef\x6e\xff\x1c\x0e\x6f\x15\xd8\x9a\x5f\x04\xb9\x3a\x0e\xe0\x2e\x04\xe5\xfb\xa8\x04\xdd\x19\xcf\xfa\x5d\x34\x76\x9e\x8f\xaf\x00\xcc\x7a\x5e\x56\xf1\x11\xe9\xce\xaf\x6b\xd2\x7d\x5f\x23\x03\x8c\xc1\x61\x34\x27\xcf\x8e\x59\x53\xf7\xb3\xc0\x04\x12\x6b\x37\x4f\x65\x9e\xef\xb3\xe6\x6a\xce\x19\xc5\x98\xb5\x22\x9f\x4f\xaa\x7f\x16\x1e\x24\x12\x4d\xef\x4d\x75\x39\xc2\x87\xad\x79\xb8\x16\x84\xf9\x64\xdf\xf4\xe7\x48\x29\xda\xc9\x9e\x31\x79\x71\xbf\xea\x4e\x2f\x38\xeb\x8a\xc9\x47\x65\x58\xae\x03\x49\x22\x0c\x5e\x02\x82\xb2\x77\xd9\x4b\x31\xcd\xc9\x72\xa2\x42\xac\xb1\x69\xef\xa8\x5e\x4c\xc4\x6e\xb0\x19\x23\xc8\xe7\x93\x05\x99\x7f\x36\x17\x86\xcb\xe7\xff\x5b\x74\x92\x13\x1d\x25\x16\xb8\xee\xc3\x12\xad\xdd\xfe\xad\xab\x66\xa1\x9c\x06\x3a\x72\x39\xdc\xf3\xe9\x17\x64\x4b\x71\x9a\x2f\x64\xa7\xad\x5f\x82\xf0\x3d\x9b\x5e\xfb\x92\x7a\x73\x72\x20\xd7\xc8\xab\x7c\x23\xe5\x7f\x99\xc4\xe2\x34\x15\x38\xd1\x9e\x4e\xad\x25\x5e\x74\xc5\x79\xbe\x59\xd8\xb2\x91\xac\x03\x16\x5b\x34\xc7\x2f\xc8\x7c\x17\xc6\x34\x06\x6a\x30\x8c\x33\x7b\xa3\x13\xd3\x93\x33\x13\xa3\xcf\xd6\x88\xda\x4f\x66\x1e\xc6\x14\x93\x19\x2f\x65\x8e\xb6\xc5\xa0\x6a\x8f\xf2\x50\x27\x4e\x1f\xa3\xd0\x5b\x30\xfb\x9f\x13\x1f\x96\x87\x46\x63\x64\x1d\x53\xda\x7f\xcc\x41\x45\x79\x94\x32\x34\xb5\xb4\x0b\xa0\xde\x3a\xf6\x97\x3b\xa1\xba\xca\x72\xca\x23\x50\x08\x59\xb4\x5e\xeb\x43\x56\x34\xa0\x6f\xcf\x15\x16\x7d\x43\xa7\x32\x43\x79\x64\x42\x0c\x9c\x7c\xeb\xa3\x03\x22\xb7\x90\xae\xf1\x9d\xc5\x32\x26\x96\xcb\xc9\x26\x7b\x3e\x0d\xb9\x8f\xbf\x64\x6c\x64\xe2\x10\x1f\x6d\xaf\xc7\x12\x0b\x3d\x66\x83\xc4\x3c\x51\x56\x6a\x2e\xab\x77\x58\x31\x78\x73\xb9\x42\x48\x0e\xd6\x75\x9e\xe8\x40\x77\x4a\xfb\xa3\x58\x60\xdb\x84\x49\xc7\xfa\x77\xd6\xa8\x57\xa7\x96\x39\x79\xa0\x44\x4b\xf4\x89\x5a\x23\xde\x3e\xf0\xfc\x13\x70\x90\x98\xfd\x5a\xbe\x66\x05\xd4\xb0\x2c\xcb\xb7\x7e\xfb\xe0\xa9\x63\x59\xc5\x85\xe1\xf0\x73\xb5\xdd\xad\x9f\x1e\xfb\xc6\x14\x57\x1e\x2c\xf1\xfd\x94\x50\x65\x6e\xa4\x75\x81\x03\x9e\x46\x16\x96\xb5\xda\x7e\xef\x4e\x0b\x41\x10\x76\xec\x53\x43\x4b\xf7\x8b\x0d\xd2\x2f\xb2\x3c\x35\x52\xf8\x88\xb2\x28\x36\x15\xbc\x5f\x97\x27\x52\x2e\xa8\x42\xeb\xd5\x41\x06\x3b\x6d\xe9\xf9\x77\x24\xb8\x52\x8e\xd1\x7a\xdb\x6e\x5e\xe7\x2b\x62\xca\xd6\x5c\xb2\x62\xf4\xef\x16\x21\x86\xa7\xec\x5e\xa3\x0a\x00\xe3\x33\x50\x68\x3b\x3e\x07\x56\x32\xd7\xc4\x4a\x6f\x1f\x7a\x23\xf8\x17\x40\x37\xe3\x34\x37\x89\x8b\x65\xaf\x8a\xd6\x16\x1b\xa8\xf2\x53\xae\xa5\x25\xc4\x68\x97\xe7\xb2\x59\x16\x23\x52\x4d\xca\x41\x03\xc2\x49\x6e\x17\x77\xff\x7c\x1a\x7b\x8a\x9f\xfc\xb5\x07\xa6\x01\x4d\x11\x99\x59\x67\x2f\x45\x6b\x94\xde\x66\xe2\x58\x16\x7a\x5e\x86\x7a\xca\x9a\xe4\x0b\x9e\x47\x6f\x31\x0d\xa4\xc5\x05\xbd\xd8\x0a\x41\x74\xea\x33\xad\x3b\xb5\xaf\xf1\xfe\x9e\x06\x0a\x30\x10\xe0\x51\xde\xc3\x4a\x09\x9a\x06\x26\x22\x6e\xe2\xad\x9d\x34\xd9\xf8\x13\xa7\xa4\xfd\x9f\xbd\x1c\x86\x99\xb3\x09\x8d\x0e\x4d\x91\xc5\xa8\xfb\xac\xc3\x39\xe4\x97\xc3\xfe\x45\xa7\x94\xc4\x69\x17\xe1\xb2\x9a\xcb\xb3\x66\x6e\x4a\x65\x42\x86\xd4\x09\x4b\xef\x86\xfd\x31\x3c\x9b\xd2\x6c\x20\x9d\x7b\x2b\xb2\xfc\x72\x57\x01\x6c\xca\xac\x5b\xd4\x53\x46\x0c\xda\xc5\x39\x98\x86\x4c\x9e\x8e\x45\x01\xd8\x5a\x88\xb2\x82\x2b\x35\x84\xc9\xc7\x64\x3a\x08\x92\x3e\x64\x74\x8b\xe1\xc1\xe3\xdf\xee\x56\xf3\x6b\x5e\x1a\xb2\x00\x2b\x27\x1a\x10\xc7\x4e\x3f\xdd\xdf\x73\x98\x10\xea\x70\x00\x8b\xac\xba\xf5\x5c\x41\x68\x71\x96\x97\xe1\x2b\x08\xb9\xfd\x82\xff\xb8\xcf\x8a\xb7\xa1\x93\x95\x86\x42\x22\x6a\xda\x1b\x95\x37\x8d\x9a\x11\x5f\xa7\x69\xa8\x2c\xbc\xc7\x61\x0e\x4a\x75\x3e\x7e\x56\x9d\x43\xd3\x88\x5b\xdc\x55\x7b\x07\x7b\xeb\xd1\x32\x3a\xbc\x9f\xc8\x58\x72\xbc\xe2\x7c\xf4\x95\xc5\xfd\x42\x98\xc6\x09\x20\x3c\x3b\xab\x9f\x72\x0d\xd5\xe7\x72\x03\x34\x8d\x85\x25\xcb\x1f\x48\xa4\x6d\xa0\xaa\xcb\x2b\x8d\xb4\xc9\x1d\x26\x60\x23\x52\xef\x48\x5e\x62\x83\x95\xfd\x8b\xe5\x91\x15\xc8\xfd\x77\x79\x99\x83\x90\xa4\x5c\xd9\xd4\xe8\x0b\x34\xb7\x65\x01\xdb\x81\x56\xcd\x9c\x69\x9c\x72\xb0\x75\xca\xdf\x44\x21\x2c\xc1\xf6\x08\x9c\x3e\xff\x68\x69\x60\x13\x60\x15\x86\x39\x9d\x34\x58\x59\x2d\xf3\x0c\x3e\x21\xb4\xa4\x69\x2a\x34\x5a\x2e\x1b\x71\x3a\xd7\xaf\x62\xf4\xa5\x05\x65\x88\x2d\x18\x33\x3a\xf8\xb5\x3c\x15\x34\x81\x51\x65\xf1\x38\x06\x99\x0a\x6e\xeb\x27\x9e\x6f\xd6\x8b\xfd\x62\xbb\xb9\x5f\xfc\xd5\x73\x45\xd2\x54\x12\xe5\x91\x8a\x9e\x2f\xa6\x6b\x8a\x52\x14\x22\x37\x22\xcf\xa5\x98\xe6\x53\x52\xc9\x0d\x82\x6d\x2e\x50\xcf\xe4\xd7\x52\xd9\xda\xe2\xa3\xa8\x85\xe5\xfc\xf0\x67\x57\x41\x1a\xb9\xa0\xe0\xbd\x13\x88\x11\x7a\xa2\xe5\x44\x53\xa5\x14\x5a\xc5\xef\x3e\xba\xb1\x81\x6a\xcc\x85\x48\x53\xa5\xd3\xc8\xd1\x44\x1d\x0a\xf8\x68\x0e\x59\x03\xc7\x43\x56\xb4\xa3\xa3\x81\x83\xa9\xca\x23\xfe\x34\x1f\x18\x4d\x15\x10\x69\xf5\x3f\xf3\xaf\x46\x6c\xbb\xd2\x3a\x5d\xee\x7d\x36\x75\x3c\x52\x4d\x04\xf3\x9c\x4b\x5b\x00\x1c\x76\x97\x6f\xe7\x3e\xce\xda\xf6\xe0\x23\xba\xff\xab\x78\x48\xaa\x19\x0b\x3b\x3e\xd0\x01\xfa\x3a\xd5\x91\x09\xcc\x48\x19\x4d\x0f\x09\xf9\x7c\x2f\x11\xe0\x62\x6e\x69\x9d\xec\x18\x9a\x47\x13\x75\x07\xd8\x8a\xd1\xb2\xc8\x2f\x08\x67\xa9\x1e\x7a\x30\x63\x0a\x42\xe1\xda\x73\x42\x40\xcb\xa0\x54\x9b\xa6\x86\xc5\xe8\x32\x62\x56\xf8\xb0\x5f\xaf\xb6\x07\x7a\xb8\x5f\x3f\x78\x46\x37\x9a\x9a\x48\x22\x9a\xf1\x36\x13\x4d\x79\x74\x8c\x68\xf3\x6f\x56\x90\xd8\x84\x96\x29\xd1\x59\x70\xa3\xef\x23\x28\x11\x03\x65\x29\xa8\xd6\xc5\x7b\x36\xd4\xbc\x1e\x9f\x8c\xaa\x48\x07\x63\xcd\x84\x71\x34\x5a\x50\xa3\x85\x5d\xe8\x51\x36\x17\x2b\x50\x5d\x42\x73\x16\xf8\x20\x58\x0c\x18\x0d\x83\x76\x0f\xb5\xde\x57\xbf\x24\x0a\xc6\x63\x9f\x29\x40\x4a\x05\x57\x87\x22\x26\x02\x9a\x54\x30\x61\xcb\xe7\xef\x17\xf7\x36\x11\x3f\xb9\xaf\x90\x72\xcc\x33\xca\xf3\xc5\x47\xc9\xd7\xc5\xe6\xcf\x7b\xe7\xfa\x8f\x57\x0c\x11\x46\x16\x97\x20\xb4\x9e\xcb\x6b\x5c\xad\xed\x22\xa2\x44\x39\xf8\x05\xc6\xd1\xf6\x25\x96\x0d\xce\xbf\xc5\x88\xda\x4a\x9e\xbb\xa7\xed\xa1\xf7\x14\x44\x14\xda\xba\xc7\x5b\x50\x22\xcf\x8a\x8f\x41\xb8\x40\x44\x91\xb4\x92\x3d\xbf\xc5\x09\x0b\x4c\x3b\xd2\x09\x2a\x22\xae\x6d\x9d\x35\x3a\x81\x07\x85\x4b\xe1\xe1\x38\x17\x92\x13\xb1\x14\xc6\x7a\x9f\xc8\x6a\x2d\xea\x4e\x5f\x84\x8a\x84\x48\xf4\xb3\x17\x39\x88\xe1\xb5\x13\x01\x8e\x44\x1d\x89\x4e\x87\xca\x4d\xbe\x87\xb6\x45\xa1\xee\x9d\x77\xc6\x40\x57\x52\xd3\xbb\xda\x22\x81\x10\xa3\x2b\x50\xd6\x37\xb8\x94\x3e\x19\xdf\xc4\x03\x46\xd3\x41\xb5\x88\xcf\x55\xf5\x72\xe4\x54\xf0\x88\xe3\x80\xb8\x83\x4a\x0d\x6f\x92\xa7\x80\xf1\xc0\x47\xf8\x68\x6e\x84\xbc\xac\x3f\xc1\x5b\x0b\x2e\xa5\x5f\x39\x07\xe8\xd9\xb5\xae\xbf\x2a\x0d\xa5\x82\xeb\x10\x17\xa8\xc5\xed\xcf\xc3\x40\xda\xa9\xbb\x3c\x24\x58\x0f\x77\xf2\xa7\x6c\xe0\xe6\x7c\xc1\x75\xdd\xf5\x48\xa9\xad\xe9\x54\x15\xe8\xcc\x6f\x23\x13\xb2\x70\x2a\x52\x6d\x89\x83\x6b\x68\x6c\x74\x0a\x47\xfd\x64\xac\x8b\x34\xc2\x78\xdb\xb3\xab\x36\xca\xf3\xc5\x0b\x14\x56\x1d\xa4\xac\xe6\xf9\x46\xa9\x10\xc0\x30\x4b\x70\x5f\xbe\xb4\xab\xdf\xbe\xb4\x70\xbf\xd9\x81\xcd\x07\x76\xa7\x10\x26\xd5\x8e\xd0\xae\xaf\x2a\x9f\xc8\x6f\x8c\x2f\x25\x63\x61\xa9\x78\xe1\xf7\x16\x4e\x65\x6b\x5f\x3a\x8a\xc1\xe9\x92\x69\x67\xdf\xff\xb1\x7f\xcd\x39\xa0\x42\x8a\xd8\x69\x64\x64\x79\xde\x53\x8c\xf8\x56\x63\xb8\xe7\xe6\xc4\xec\xe8\xe1\x3d\xfa\x2e\xea\xd7\x83\xbb\x29\xdf\x4f\x25\x11\x86\x96\x8e\xa2\x51\xaf\x50\x8f\xb6\x40\xa1\x20\x4c\xdd\x98\x6b\x87\x0e\x96\x64\xd8\xd5\xf8\xcb\x50\xb2\x00\x61\x13\xd7\xed\x75\x5b\x9f\x1f\x91\xbd\xeb\x02\xc9\x39\xba\x45\xc7\x44\x1c\xf7\x4e\x89\xf2\x6f\x5f\x70\x69\xf8\xfe\x82\x22\x3c\x0f\x81\xcd\xb8\x21\xcf\x78\x8e\x92\x50\x2b\xc8\x52\x43\x73\xe7\x8d\x87\xd1\xfb\x97\xa8\xc9\xd2\xce\xb1\x3c\x7b\x41\x0c\xd9\xec\x33\x48\x22\x34\x4e\x45\x74\x28\x70\x3d\x3f\xab\x66\x5d\x8f\x3c\x7d\x49\xb9\xa5\xd1\x01\xdd\xda\x90\xbf\x20\xbb\x75\xc0\x37\x8f\x05\x93\x2c\x90\x71\x38\xc4\xb8\x3c\x17\x75\x99\xeb\x91\xb7\x24\x99\x62\x68\x83\x89\xe2\x52\x16\xb0\x2a\x74\xbf\xf0\xc9\x90\x11\x1f\xe3\xde\xe4\xa2\x80\xc6\x61\xae\x67\x51\x08\x32\x8c\x2c\x39\xcc\x6a\xbb\x5a\xdd\xac\xb6\xdb\xbf\xba\xd3\xc4\x94\xd9\xfa\x2a\x51\xc1\xdf\xd6\x8b\x4d\x3f\xef\x70\x54\xc8\x50\x46\x48\x13\x5c\x9e\xa0\xf0\xe4\xc2\x7f\x0c\x78\x04\xa6\x38\xd6\x51\xd4\x0c\xfb\x4d\xee\x59\xdb\xe5\xc1\x46\xc8\xb7\x70\x14\x98\xab\xdf\x81\xe8\x3c\x74\x19\xd1\x08\x77\x30\x09\x2f\x59\xf1\x50\x5e\xd7\x0c\xca\x48\x52\x34\x19\xdb\x29\x08\x7a\xb8\xb8\xee\x72\x51\xbf\xba\x29\xe9\x3a\xc7\x91\x48\x9d\x5b\x8e\xe5\x61\xd6\x8a\x1c\x3d\x65\xcc\x03\x1d\x5b\x17\xd0\x95\x03\x4d\xb6\x0b\x19\xa7\x16\xa0\xb5\x81\x66\xb0\xd8\xca\xd8\xa4\x88\xaa\x7b\xfe\xf3\x76\x68\x4c\xcb\x84\x92\xd0\x69\xcc\xb6\x93\xc9\x97\x1d\x5c\xe3\x60\x64\xc2\x42\x34\x0b\x45\x6b\xc5\xd7\x3d\x20\x5e\xf2\x48\xa0\x93\xa1\x7c\x18\xa2\x27\x00\xa0\x92\xab\x80\x77\x3c\x87\xe7\x13\x54\xd7\x76\x9a\x4c\x79\x4c\x7a\x5a\xc5\xa5\xa8\xb4\xc5\x80\xcf\xe7\x5d\xbc\x1d\x24\x05\x8b\xf1\x5d\xe0\xac\x1b\x16\x4b\x4a\x11\x4a\x34\x2d\xb7\x8b\xc7\x6f\xab\xd5\xe3\xed\x21\xea\x5a\xe2\xc8\x0a\x1f\xe5\xd0\xa3\x06\xc7\x77\x23\x04\xd7\x96\x9c\x3e\xc3\xa0\xcc\x52\x34\xf0\x52\x56\x93\x0c\xbd\x14\x46\xd2\x61\xe1\xc9\x43\xfe\x09\x9e\x44\x4a\xaa\xb0\xf2\xbc\x9d\x6c\xf3\x7e\xa6\x94\x92\x63\x0a\xf9\xf8\x82\x0c\x73\x93\xdd\x03\x4b\xf9\xd0\xe3\x59\xad\x0f\x9b\xd5\xf6\xf0\xbc\xf3\x35\x8d\x52\xf1\x04\x45\x5f\x16\xff\xf4\x15\x1b\x7f\xcb\x29\x30\x7f\x0b\x2a\x65\x38\xde\x1d\x7e\xd9\x9f\x5f\xf3\x18\x3f\xee\xc3\xe6\xaf\xed\x48\x65\x72\x72\x38\xa4\x51\xe0\xdc\x26\x5c\x00\xd7\xc5\xa2\xb8\x6c\x5c\x79\xeb\x35\x02\x4b\x1a\xa2\x91\x93\xee\x6e\xb1\xdc\x3f\x6d\x0f\xd4\x5f\xcf\x24\x09\xaa\x04\xb7\xe3\x05\xd7\xb7\xb2\xe3\x8c\xb8\xcd\x6a\x1b\xc9\xf2\x5d\x53\x40\x87\x69\x61\xaa\x4c\x59\xee\x87\xe1\xc8\x36\xc2\x06\xbf\x7b\xfa\x66\xfb\x00\xed\x39\xee\xce\x85\xae\x44\x56\x5f\x2d\xd4\x46\x2b\xf4\xe1\xb6\x4f\xbe\x0e\x49\x05\x2a\xe2\x4e\xf1\xff\x16\x8a\xcb\xa6\x82\x63\x76\x1e\xf8\x4e\xdd\xae\xab\x02\xc3\x31\x87\x8e\xf1\xe5\x3b\xa1\x40\x96\xe5\x5b\x77\x1a\x23\x2d\xaf\x96\x0d\x70\x7c\xbd\x57\x29\x02\x92\xbb\xd7\xb9\x50\xcd\xd9\xca\xd0\xfb\x53\x51\x4a\x30\x3e\x97\x67\xef\x70\x02\xa7\xb6\xdd\x35\xc6\xb6\x26\xcb\x9a\x8b\x7d\x82\x5a\x51\xb0\x08\x9e\xac\x40\x50\xec\xfc\x48\x54\x2c\x62\x91\xa5\xd9\xaf\xde\xa0\x19\xa5\x27\xbe\x72\x9d\x14\xd3\x80\xdf\x2d\xcf\x6a\xa7\x79\x36\xde\x4d\x54\x18\x52\x9c\xad\xb8\x08\xf0\x64\xb0\x36\xa9\x30\xb6\x3a\xfc\x56\x9c\xce\xe9\x3e\x74\x94\x8e\xe3\x2f\xa4\xc2\x34\x60\xba\x63\xc1\xb6\xcc\xfc\x13\x98\x81\x8a\x48\xa8\xdd\x42\xfa\xbf\xa5\x74\x05\x25\xeb\xcd\xdd\x0e\xeb\x0e\xc7\xe7\x8b\x63\x81\xd5\xc4\x8f\xe5\x11\x0e\xef\x59\xa1\x5a\x5f\xaa\x7b\xd5\xb1\xa1\xa9\xe5\xbb\x15\x3a\xcf\x0a\x20\x34\xe8\x9b\x18\xba\x83\xe0\xe6\xdd\xba\xde\x9e\x51\xfc\xd3\x77\x48\x48\x2c\xe3\x41\x52\xa2\x5e\x28\x35\x5e\x6b\x54\xa2\x01\x13\xad\x87\xad\x38\xc2\xb0\x2a\x50\xf1\x98\xe2\x76\x96\x21\x82\xc7\xda\x2a\x5d\x5b\x6a\x6b\xf4\xb7\xab\xbb\xd5\x76\xbb\xb8\xb7\x60\xe4\x03\x22\x44\x7c\xa5\x8e\x4a\x63\x86\xb3\xe3\xf0\x02\xcd\xaa\x79\x7d\xae\x87\xe4\x62\x54\xa5\xa9\x95\xed\x70\x89\xd0\x1f\x70\x99\x6c\xda\x4a\x44\x11\xb7\x03\xe9\x57\x99\x69\x17\x1a\x9a\x22\x7b\x94\x48\x63\x2b\x9c\x5b\xee\xb3\x1c\xd6\x58\x48\x6c\x93\xea\xdd\xd7\x10\x10\xa0\xcc\x48\xeb\x4f\x6f\xca\x32\xef\x89\xf4\xa8\x92\x61\x0c\xc1\x0c\x22\xbc\x4f\x41\x29\x19\xdb\x04\xe8\xc3\xe2\xcf\x91\x2a\x2b\x55\x32\xf5\xb5\x36\xcd\x46\x58\x26\x9f\x47\x71\x35\x60\x54\x40\x02\x87\x94\xb4\xdb\xed\x5d\x59\x5d\xd1\x99\x51\xa5\x62\x81\x40\x83\x63\xa9\x33\x73\x69\xf7\xc2\xa5\xb8\x82\xa3\xf9\xbe\x40\x90\x72\xfa\x30\xa0\x66\x9b\x45\x74\x28\x1d\xd8\xe2\x35\x3d\x47\x10\xdd\x36\x4b\x1c\xcc\xf8\xf8\xd6\xc6\x18\xd2\x6e\x51\xa5\x19\x41\x74\xef\x52\xd4\xaf\xc7\xb2\x80\xcb\x68\xae\xeb\x84\x86\x1d\xad\xa0\x4f\x49\xe0\x9c\x19\xcf\x07\x48\xa9\x72\x58\x89\xbb\xf5\x76\xb7\x3f\xec\xf6\xab\xcd\xe1\xe1\xf9\x7e\xbf\xde\xdc\xaf\x57\xdb\x51\x32\x5d\x81\xe0\x48\xfc\x21\xb3\xaa\x79\xfd\x63\x60\xdc\x2b\x00\x0a\x2e\x44\xf5\x90\x61\x5a\x61\x7c\xb7\x46\x42\x3a\x60\xff\x9a\xdd\x5f\x75\x10\x09\x8c\x1e\xac\xf5\xbe\x5c\x58\x6b\x71\xf4\xce\x74\x10\xa9\x78\x28\x14\xff\xe7\x66\x31\xef\xb4\x68\x92\xa4\x58\xd0\xbf\xdb\xac\x96\xeb\xc5\xfd\x7a\xb7\x3f\xec\xbf\x6f\x57\x3e\x0d\xad\x89\x00\xac\xe3\xd8\xc2\x49\x64\xd5\x12\xe3\x15\xf3\xae\x96\xa6\x60\xe5\x07\xeb\xb3\xdc\x09\xf3\xc9\xea\xa8\xa9\x91\xa9\xe9\x82\x83\x9d\x51\x78\xbd\x4c\x69\xc6\x94\xb6\xa1\xdf\x2d\x66\xa4\xa6\x05\x64\x9a\x25\x14\xe7\xa7\x3c\x57\xc5\xee\x3a\x3a\xa2\x99\x4c\x7c\x26\x62\xb3\xb6\x45\xc1\x34\xf5\x0f\x16\x85\x01\x6a\x47\x1e\xd0\x8e\x59\x7d\x34\x95\xf0\xe6\x60\xdd\xf5\x31\x90\xda\x30\xd1\x3b\x88\x7c\x29\x8e\x27\x91\xbd\x5c\x55\x26\xba\xce\x31\x37\xb8\x62\x76\xcc\x29\x00\x8f\x5d\x31\x9a\x8e\x53\x86\x44\xe5\x03\x3c\x48\xf5\x3e\xc9\x07\x73\xdf\x17\x40\xf6\xf9\x6d\x64\x01\xb8\x85\x5c\x4c\xcc\x27\x9d\xd0\x38\x1d\xc8\xfc\x8a\x23\x26\x17\xea\xd9\x53\x26\x69\x8c\x45\xfb\xce\xc0\x7c\xcc\x14\x7c\x3b\x5f\xd6\xda\x57\x8d\x69\x1e\x84\x38\xee\x6e\x45\xa1\x2f\xdd\x8f\x82\x49\xed\x06\x63\xeb\x04\x9f\x8b\xac\xb9\x6c\xe1\x74\x6e\xc4\xb5\xa1\xae\x39\x00\x44\x03\xa2\xaa\x1d\x34\x8f\xa5\x25\x48\x68\xc7\xf9\x63\xe9\xc4\x82\x5d\x77\x41\x6c\xdc\x03\xa5\x86\x45\xd5\x78\xe8\xfd\xfc\xdb\x15\xcc\x80\x55\xc2\x45\x79\xfd\x65\x79\x3c\x95\xc5\x1c\x37\xed\xf8\x9e\x44\x94\x28\x37\xda\xf6\xaf\xb0\x6b\x2c\xb6\x77\xb0\xa9\x6a\x91\x84\xb8\x3c\x88\x63\xbf\xd1\x6b\x91\xf0\xd0\x0e\xbd\x8e\x99\x1e\x83\x0d\x93\x27\x16\x60\x09\x50\x8e\xe2\xc3\xae\x8b\xbd\x7b\xa7\x25\xb7\x10\x68\x5b\x2e\xb8\x5c\xad\x7f\xae\x6e\xd1\xf2\xdc\xac\xb6\xeb\xa7\xdb\xae\x9b\x4a\x70\x23\x7a\x5c\x2d\x37\xc3\x85\x49\x4b\xb0\xd1\xce\x6f\xa5\xc8\x1d\x01\x90\xe7\xa9\xfa\xd2\x9d\xd6\x2a\x08\xad\x7d\x6e\xa5\xea\x7c\x7d\xd3\xe2\x1d\xaa\xeb\x29\xa2\xa8\xf0\xe4\x31\xc7\xfa\xe5\x54\xa9\x69\xcc\x5d\xab\x14\x38\x46\xec\xcf\x05\xba\xa7\x77\xd9\xfb\x7f\x09\xb7\xd0\x4a\x06\xa4\xa7\xf0\x70\xa9\x9f\xfa\x8f\x09\xdb\x68\x9f\x43\xd6\x20\x08\x73\xb4\x3d\xd9\xa0\xd6\xf5\xc1\x6e\x4c\x7f\x74\xbd\x14\x71\x4b\xf1\xfe\x35\xab\xf4\x30\x44\x3a\xb9\x79\xc3\x82\x98\x7b\x5f\x05\x37\xe8\x49\x7b\x44\xf1\x5d\xdd\x67\x2f\xc7\x51\x86\x04\x82\x44\x20\x0d\xed\x6b\xf9\xfb\x41\x14\x17\x5b\xc0\xb2\x2f\x7f\x64\x79\x3e\xc9\x00\x01\xa1\x9d\xee\xf2\xee\x04\xea\xff\xcf\xda\x9f\x75\x37\x8a\x64\xfb\xc3\xf0\x77\x39\x57\x75\xd1\x17\x40\x0c\xc0\xff\x4e\x96\xe4\x4c\x75\x79\x6a\x4b\xce\xac\x3a\xbd\x7a\x69\xc5\xb0\xc3\xa6\x8d\x40\x0d\xc8\x43\x7f\xfa\x77\xb1\x23\x82\x49\xc8\x59\x67\xbd\xcf\x4d\x67\xb5\x09\x21\x04\x41\xc4\x1e\x7e\x43\x26\xf2\x71\x63\x7e\xf0\x1e\x42\x08\x3a\xea\xdf\x59\x07\x26\xb1\xaf\xc5\x68\xbf\x81\x88\xdb\x81\xcb\xc7\xfb\x9f\xab\xfd\xcf\xc5\x8f\x75\x38\x22\x4c\x01\x09\xc0\x6a\x80\xdf\xed\xd6\x8f\xd7\x8b\xa5\x5f\xb1\x81\x12\x81\xab\x9e\x3e\x1d\x0e\x9f\xfd\x1f\x25\x2e\x95\x0e\x6d\xdd\x2e\x51\xc7\xb2\x6a\xce\xd1\x9a\xf3\x8f\x12\x28\x4b\xa5\x93\x47\xb8\x76\x9a\x4a\x93\xd5\x18\x28\xb3\x19\xe3\xf3\x09\x95\x03\x1b\x91\x5f\x81\x28\xee\xcd\x64\x18\xa3\xb6\xad\x8e\xb6\xfe\x0f\xe2\x53\x0c\x2b\x35\x33\x02\x36\xc0\x18\xc1\x7a\x4d\x83\x2c\x00\x07\x4d\x9b\x9c\x93\x53\xa6\x07\x98\xf8\x36\xf4\x70\x02\x14\xc3\x88\x0d\x58\x1a\xe0\x5d\x30\x59\x7e\xe8\xfe\xa6\x39\x22\x93\xd4\xfe\xd8\x0e\x7d\xcc\x5c\xc7\x7b\x54\x57\x00\x06\xcc\xd7\x15\x7a\x8d\xf4\xd1\x65\xf2\x88\x60\xd5\x6b\xef\x05\x89\x46\xfb\x3a\xc4\x41\x80\xab\xdd\xed\xb7\x25\xae\xd4\xc3\xb9\x16\x87\x31\xa6\x15\x16\x4e\x73\x33\x42\x7f\x4f\x9e\x43\xac\x18\x1a\xf7\x5d\x75\x9f\x05\x85\x22\x87\x4d\x06\xd5\xd4\x90\x3a\x82\xd8\x24\xd8\x13\xf7\xda\x7c\x37\x28\x72\x75\xe1\xdc\x29\xb5\x6f\x7a\xed\x99\xee\xeb\xe2\x39\x2b\x00\x2a\xd7\x8b\xfb\x7a\x86\xa4\x69\xe8\x8c\x9d\xf2\x7c\xab\x7a\xc8\x3c\xa4\x69\xec\x1d\x57\x2c\x57\x63\x87\xf0\x5e\x7f\x58\x46\x04\x51\xd1\xf7\xce\x59\x0d\xb7\xbb\x1d\xd4\x83\x01\x0c\x0b\x6d\xed\x26\x34\x00\x8c\x81\x64\x40\x5d\xf8\x2d\x34\x72\x0c\xc6\xab\x33\x28\x92\xa2\xd1\xc6\xa1\x68\x8e\xb7\x1e\x2d\x3d\xf4\xf4\x8e\x40\xc5\x02\x4b\x37\x7b\x38\x64\xcd\x4a\x7c\x22\xaa\xca\xf2\x4a\xf4\x97\xf6\x25\x11\xa8\xf6\x07\x5b\x88\x70\x5e\x36\xfd\x34\x1f\x6f\x40\xa0\x89\x85\x62\x5b\xc3\xe3\x32\x3f\xaf\xc8\x8c\x4f\x6b\xe2\x44\xf5\xf2\x2c\xfb\x5a\x55\x99\x9c\xfe\x30\x93\x68\x4c\xf6\x8e\x15\xbc\x65\xe5\xa9\xee\xcc\xcf\xfb\x86\x83\x09\x68\x84\x8c\x3e\x78\x7b\xec\xbd\x76\xe7\x1f\xbc\x09\x98\xc1\x0a\x9b\xd3\x52\x58\x78\x5a\xec\xa5\xe1\xb1\x0e\x9c\x89\xb6\x0d\xcc\xee\xd6\xbb\x79\x2d\x5d\xbf\x9a\x99\x90\x2b\x14\xf6\xc1\x12\xef\x03\x1c\xfd\x43\x34\x51\x18\x75\x9d\x2e\x68\x16\x55\xd5\x1d\x20\xdc\x6f\x4c\xdb\x93\xdc\x95\xa7\x0a\x0b\xf7\x08\x34\x9b\x7a\x1a\x44\x26\x4a\xac\xab\x18\x9e\x7f\x86\xfa\x6c\x22\x29\xb1\x51\x82\xb0\xf3\x4d\x61\xca\x1b\x5b\x99\x9a\x0c\xa3\x81\x25\x59\xd8\x1d\x6b\xe4\x83\x3b\x8f\x86\xec\x4b\x17\x86\x72\x62\x7f\xa3\xd5\x67\x1d\xa7\xfa\x03\xb1\xaf\xf1\x37\xb2\xc4\x28\x1b\x62\x36\x55\x06\x6f\xd0\x05\xc4\xe8\x83\xf9\x50\xd6\xcd\x80\x7e\x62\x18\x88\xa8\x8d\xd6\x9f\x64\xf6\xd8\x43\x01\xfc\x51\x4e\x62\x14\x55\x1d\x49\x66\xfd\x0a\x50\x37\x3f\x0f\x0d\xa7\x24\xf1\x22\x64\xd7\xf7\x33\x7a\x08\x26\x8e\x14\x5e\x8b\x9d\xa9\x23\x29\x22\x13\x47\x40\xd2\xee\xe9\xb9\xe6\x89\x57\x2c\x19\x7f\x51\x4c\x63\xc4\xc1\xad\x16\xbb\xf5\x9e\x84\xfb\xd5\x7a\xb9\x8f\x82\x30\xf1\x3f\x2a\xe6\xca\x6e\x67\x99\xde\xb5\x91\xdf\x43\x7b\x8e\x76\xa2\x4f\x31\x7c\x5f\x2e\x4f\x26\x96\xd4\x07\x0d\xcb\xe5\xf7\x2e\x19\x18\x2e\xe1\x26\x89\xd2\x40\x75\x14\x9b\x5b\xa1\x5e\xb2\xa2\xbb\xf5\x49\xca\x85\xe9\x34\xa5\xdb\x3b\xbb\xd1\x57\x9f\xbb\xc5\x3d\xe6\xcb\x73\xf5\x74\x93\x68\x9b\xe3\x3e\x96\xea\x75\x50\x98\x30\x89\x96\x58\x21\xc3\x5c\xd5\xc6\x37\x3d\x17\xd7\x24\x10\x60\x38\xe1\xb5\x0b\x37\xaa\x5c\xf5\x95\x2b\x23\x14\x41\xbc\x09\xc6\xa4\xf6\x5b\xa1\xfe\xad\x9b\x8c\x83\xff\x99\x64\xca\x46\x06\x09\x36\xd0\x5e\x44\x8d\x0d\x1f\xd0\x8f\xa5\x2c\xb1\x1f\x58\x4f\xc9\xc7\x46\xb2\x04\x1b\x86\x8b\x53\x53\x1e\x44\x03\xba\xab\x8d\xfa\x01\x90\x68\x57\xd3\xdb\x8a\xb7\x5e\x7b\x65\x7c\xdb\x75\x42\xd1\xcf\xdb\xaa\x42\xf5\x8d\xb4\xc9\x30\x20\x96\x48\x86\x49\xbc\xc5\x64\x88\xcc\x57\x38\x0c\x30\x61\x5c\xeb\x67\xb3\xbc\x5f\x37\x2f\x73\x4b\x00\x18\x89\xc5\x57\xa1\xf5\x5e\x8c\x1d\x34\x26\xaf\x9c\xe1\x10\xb9\xa5\x65\x08\x95\x9a\x2c\x05\x06\x28\x75\xe5\xc3\xf5\xc7\x11\x85\x35\x7f\xdd\x21\x23\x41\x10\x5b\x1e\xb2\x83\x64\x8c\x56\x8f\x90\x45\x6e\x54\x18\xb1\x20\xf6\x9d\xf6\x83\x84\x0a\xb1\x74\xc5\xc4\x41\x9c\x04\x21\x57\x7c\x60\x60\xba\xbf\x7e\xba\x5b\xed\x1d\x43\x93\x04\x28\xb1\xd3\xee\x5e\x05\x7c\x34\xd8\x83\x0b\xeb\x76\x17\xeb\x23\x94\xb9\x77\x81\x04\x11\xb7\x9e\xd4\x42\x77\x1a\x43\xf3\x3f\x26\x8a\x13\x2c\x2d\x49\x8c\x08\x14\x9c\x59\x54\xcf\xbe\x6c\x24\x88\x40\x41\xe0\x53\xbb\xf2\xb8\x9a\xfa\x28\x93\x80\xa4\x1a\xab\x36\x6d\x76\xb4\xbb\xdf\x2d\x6e\x46\x75\x29\x12\x30\x65\x10\x5e\xf9\x0e\xd9\xae\xec\xd8\x47\x24\xe0\x0e\xa2\x80\xf2\x7d\xf8\xd8\x36\x7a\x72\xcf\xb8\x33\x82\x78\x78\x5c\xdf\x6e\xee\xd6\x8f\xfb\xe5\xf7\xc5\xdd\xb7\xf5\xea\x4b\x88\x15\x09\x62\x92\xe0\x7b\xf5\x3b\xb4\xd3\xef\x7b\x79\x80\xa3\x38\xef\x04\xb8\xc1\x09\x28\x4b\x68\x2e\xb3\x42\x14\x1f\xfe\xea\x12\x43\x23\x57\x58\xb5\x11\x94\x3f\x90\x86\xd2\xe1\xb7\xda\x95\x65\x44\xeb\xf4\x6f\x69\xd4\xab\x51\xc5\xff\x1a\xf3\x48\xff\x19\xfd\xcb\x9f\x27\x95\x56\x9c\xe2\x05\x96\x9f\xb2\x3f\xbf\xa0\x09\xa2\xff\x9c\xf6\xcc\xd8\xac\xf2\xab\x85\x9e\x04\x42\x44\x38\x15\x4d\x55\xfe\x17\x0a\x97\x91\xb4\xab\xd5\xd5\xe7\x90\xa8\x77\xe9\xd3\x60\xcd\xc9\xb5\x6d\x2c\x2c\x0e\x52\xd4\xb5\xd0\x65\xf5\xd0\xa3\xa9\xda\x51\x31\x42\xfc\x84\x46\x8c\xd1\x95\x68\x9a\x1c\x2e\x3b\xfc\x92\x40\x11\x03\xac\x5b\x03\x6b\x98\x3c\x62\x45\xed\xfc\x92\x8e\x09\xd9\xed\x81\x24\x50\x82\x0e\x76\x25\x84\x5d\x62\xdc\xf7\x50\x81\x45\x7f\x4f\x59\x2d\xe3\x5b\x3d\x2b\xea\x4f\x02\x25\xad\x16\xaa\xbd\xbd\x6b\x9d\x9d\x69\xaa\x92\x40\xb3\xd8\x58\x2d\xa9\x0f\x79\xfa\xcc\x8a\x7f\x9c\x44\xd1\x74\x80\x15\x12\x18\x1a\xda\x82\x40\x59\x1d\x5f\x46\xd7\x6c\x52\x86\x5e\x52\x1f\x9e\x6c\x4c\x02\x23\x6d\xd1\xb2\x86\x66\xbd\xfb\xfe\xd8\xe6\x8a\xc3\xfa\x43\xbf\x0f\xb7\x43\x29\x4e\xdc\xe3\xa9\x19\x38\x73\x91\xc0\x68\x82\x02\xed\xb7\xb7\x03\x4f\x69\x12\x06\x91\xc1\xcb\x2c\x8f\x50\x3c\x96\x03\xaf\xba\xd1\xaf\x09\x03\x16\x21\x83\xd3\x2b\xc4\x4e\x3a\x8e\x24\x0c\xe3\xc8\x90\x91\x2c\x1b\xc2\x98\x3c\xdf\x6d\x53\x38\x9e\x91\xff\x5e\x12\x25\x18\x08\xaf\xd5\x23\xa8\x21\x23\x71\x80\x7d\x20\x21\x61\x01\x8a\x63\xd9\x0a\xc0\x94\xb2\x42\x42\xa2\x23\x64\x64\x3a\x85\xc8\x3c\x77\x0f\x75\xf2\x23\xfe\x49\xfe\x35\xfd\xcf\xe4\x9f\x61\xcc\xff\xd5\x9d\x26\xc5\x34\x0a\xbf\x7a\x57\xba\xa4\x72\x80\x86\x0e\xfd\x40\x48\x31\xb3\xac\x9b\x4a\x1d\xcf\x74\xd4\x07\xbb\x3d\x09\x69\x10\x60\x0b\xd6\x00\xd4\x57\x9f\xae\xdd\x30\xbe\x67\x94\x59\x6a\xc1\x21\xb3\x2e\x29\x3d\x1a\x9d\x84\x54\x12\xec\xe3\x23\x0f\xfa\x16\x90\xf9\x3f\x2e\x57\xb4\x63\x2c\xf7\x73\x71\x7a\x80\x26\xc3\xb7\x74\x38\x91\x42\xaa\x08\x52\x4d\x30\x50\x3a\x7b\x73\x2f\xfd\xff\xd9\x57\x30\x64\x89\xc4\xec\xa9\x9d\x27\x77\xd0\x98\x47\x78\x83\xe2\x04\x23\xa6\x90\x1b\xca\xe3\xc0\xeb\xd9\x6c\x6a\x8f\x95\x9f\x0c\xd1\x16\x9e\x9c\x3b\x51\xf1\x5f\xc7\x6d\x93\xcb\x89\x23\xcb\x28\x53\x22\xcf\x17\x85\xb6\xd1\xef\x3e\x98\x57\xd8\xf2\x9f\x91\x56\xcc\xd6\xc9\xe0\x8c\xdb\x69\x24\x4c\xb4\xb5\xe9\xc9\x0a\x55\x1e\xe0\x1a\xa0\x3b\x92\x32\xa3\x5c\x56\x82\xd8\x48\x39\xd2\x50\x9e\xdf\x40\xc2\x54\x9a\x50\xf4\x15\xca\x6f\x22\x6f\xb3\xa9\x7a\x32\x05\x04\x97\xde\x9c\xd0\x2b\x1d\x9f\xa1\x3d\x48\x28\xe2\xc8\x32\x33\xe3\xdf\x46\xd3\x51\xc4\x16\x0b\x81\xc5\x73\x2c\x42\x61\xf9\x64\x98\x6c\x91\x50\xa4\x1a\x71\xd0\x9d\x9d\xc5\x76\xb7\x1c\xff\x72\xc9\x8d\xe5\xf0\x66\xff\x85\x7b\x33\xc2\x0c\x92\x50\x51\xeb\x21\xb7\x13\x39\x0c\x2a\x9a\x24\x54\x8c\x49\x57\xe7\x42\xc9\xdc\x0c\x9d\x59\xbe\x50\xe0\xed\x17\xa9\x50\x31\x9b\x06\xdf\x94\xcf\x5b\x68\x30\x64\x1e\xbd\x3c\x3a\x20\xf8\xc3\xae\x4e\xf2\x3c\x18\x23\xa1\x4e\x6c\x6b\xf4\x34\xce\x4b\xcf\xd1\x53\x24\x04\x96\x08\x8b\x58\xfd\xf7\xa9\x6e\x40\x3f\x8a\xac\x43\xfb\x91\x10\xb8\x8c\x3b\xfb\xe5\xbb\xb2\xb9\x2e\xab\xd7\xae\xb4\x48\x42\x10\x56\xc4\x74\x6b\x09\x23\x8e\x9d\xa0\x43\x7f\xdc\x48\xeb\x13\x61\xe9\x4f\x4b\x2f\xe0\x9b\x75\x6f\xa0\x01\x6b\x8c\x2c\xad\x13\x96\xf5\xa9\x72\x07\xa3\x30\x20\x8c\xfb\x36\x78\x0e\xcf\x42\x97\x2b\xb0\xc9\x7b\x53\xce\x12\x3d\x09\xe6\xc7\x0e\x8a\xfd\xf7\x3f\x1f\x96\xe7\xc0\x38\x12\x85\x2a\xe6\x48\x85\xdc\xec\x9e\x16\x37\xfb\xe5\xfd\xed\xc3\xfa\x6e\xbb\xd8\x75\x10\x04\x12\x45\xc4\x84\x0e\x0c\x06\x95\xed\xe4\xbb\xf8\x63\x63\xee\x00\xf4\x85\x7a\x13\x89\xa2\x44\xa2\x0a\xcb\x7a\xef\xd0\x49\x9d\x2c\xee\xaf\x56\x97\xf1\x79\x48\xc4\xb1\x1c\x21\x73\xf1\x0a\x91\x74\x32\x0c\x4e\x81\x73\xf0\x1f\x6e\x38\x8d\xa4\x27\xb0\xdf\xaf\xd6\xb7\x23\xf4\xe5\xa8\xb4\x40\x22\x16\x52\x5b\x00\x6b\x53\x87\x5d\xb2\xfe\x63\x5b\xe6\x7a\xff\xf0\xb8\xf9\xd1\x69\xf3\x91\x88\xb1\x54\xbb\xcd\x4a\x89\xe2\x34\x0d\x28\x22\x1e\x18\x0f\x78\xc7\x48\xdc\x0a\x15\x8c\xe2\x7d\x3f\x92\x59\xee\x15\x42\x73\x4f\x45\xe3\x44\xa8\xfc\x17\xf1\x38\xe5\x58\x4a\x39\x15\xd1\x6f\x93\x5a\xc8\x57\x1e\xc9\x17\x6e\x5b\x1c\x30\x54\x30\x59\x54\x59\x21\xf6\xff\x3e\xe9\xe7\x5e\x7d\x86\x44\x71\x28\x88\x1c\xea\x8c\x3f\x40\xf5\x53\xbc\x4d\x62\xed\x28\x4e\x84\x13\x11\x6a\x9e\x8a\xa6\x5d\x9b\x7a\x3c\x21\x89\x62\x43\x3d\x72\x60\x83\xe6\x60\x28\x9f\xe7\x25\x59\xc6\x3f\x3e\x09\x93\xd0\x2d\xf4\x8f\xbf\x72\xfa\x20\x51\x42\x00\xd5\x62\x4e\x35\xe8\x76\xf7\xa8\xbc\x9e\x9a\xff\xea\x84\x19\x5c\x50\x9c\x60\xf1\xa2\x79\xb5\x51\xf3\x3f\x4e\x53\xa7\x31\x12\x25\x31\xa5\xbd\x1d\x82\xfd\xb9\x5e\x3d\xf6\xba\xac\x3c\x5e\x79\x72\x05\xa9\xc0\x0f\xf9\x36\xe8\x5c\x05\x82\x44\x89\xb4\xa5\xf6\x76\x69\x99\x9a\xd7\x4f\x46\x6a\x62\x11\x9e\xc8\x7e\xbf\x37\x6d\x62\xd3\x3d\xfa\xc4\x10\x94\xeb\xc2\x89\x78\x03\x6f\xd8\x79\xe9\x8e\xa6\x61\x88\xf2\x7c\xfb\x46\xbc\x41\x35\x89\x1d\xa3\x94\x51\xe4\xa9\xfd\x79\x3a\x40\x95\x9d\x0e\xed\xfa\x3a\xe4\xea\xb7\x23\x62\xac\xc7\x6c\xdb\x54\xb4\x3a\x1d\xee\x00\xcb\xdb\xdd\xe1\xc4\x2a\x8e\x66\xc5\x5b\xf9\x3a\xdf\x43\x23\x91\x88\x22\x8c\x08\xf7\xcf\x65\xa9\x67\x37\x9e\x48\xe8\x84\x39\x1f\x0e\x27\x5d\x3f\x5c\x70\xa6\xe7\x83\x88\xcf\xe9\xa3\xdf\x95\xdf\xb3\x62\xa8\x8c\xee\xc6\xcb\xc0\x4a\x94\x94\xae\xd4\xbb\xaf\xd0\x2d\x79\xb5\x45\xce\x39\x60\x61\xe0\xe1\x24\x7f\x87\x4f\x04\x99\xf8\x4f\x11\x4b\x85\xb4\x2f\xb8\x53\x47\x06\x7d\x05\x05\x98\x4c\x65\xa2\x97\xa5\x23\x91\x4c\xad\x5e\x97\x2a\x8b\xfa\x74\x80\x0e\xdb\xba\xe9\xaf\x41\x52\x84\xac\x7b\x87\x84\xe5\x04\x4b\x3a\x2e\x60\xba\x0f\xa9\xc8\xc2\xe4\xf0\x32\x55\x05\xcd\xa2\x41\xad\xe2\xc9\x53\x84\x50\x24\xe1\x80\x27\xe0\xf4\x5c\x7e\x1b\x57\x0a\x49\x04\x11\x93\x5e\x7c\xc3\xd7\xa2\xc2\xd4\x5f\x21\x88\x04\x0b\xe2\xe2\xb0\xb1\x31\x7f\xf7\xf7\x14\xe1\x2c\x3f\x1e\xdb\xb8\xaf\x67\x9a\x8f\x1f\x20\x48\x8b\x3c\xa8\x1b\x10\xf9\xde\x36\xae\x2f\xcc\x66\x50\x0c\x33\x81\x53\x81\x9a\x47\xb6\x10\x31\x3d\x9d\x11\xa8\xd7\x87\x0d\xb4\x3b\x78\xc7\x98\xe5\xea\x42\x0b\x81\x44\x26\x16\x58\x87\x15\x07\x9b\x45\x7a\x47\x92\xee\xb0\x95\xe6\xbb\x39\xbe\xfa\x2e\x79\x77\x28\x25\xa8\x35\x51\xc0\x47\x63\x4d\x34\xbf\x95\x9e\x36\x44\x22\x23\xa2\x84\xb9\xa3\xe8\x08\xe7\xbc\xe0\xfa\xe3\x16\x45\x8a\x9c\x5d\xac\xf0\x6f\xfa\x1b\x67\x0c\xc7\xdf\x79\xd5\x66\x65\x7f\x2d\x2b\x26\x81\xe0\xd2\x49\x38\xee\x0f\x59\xb1\x3f\x88\x8f\xfd\xf2\xe7\xb2\x5d\x61\x1f\x31\x87\x9f\x7f\x25\x48\x68\x08\x0a\x52\x3e\x67\xa6\x41\x71\xab\xf9\x1b\x45\x22\x4a\x69\xdf\xe2\xb7\x3c\xae\x0e\x25\x79\xe1\x23\xd2\x12\xcd\x9c\x22\xcf\xca\xc1\xa9\x7e\xf3\x87\x4d\x8c\x0d\xcb\xce\x5c\xb5\xf2\x95\xe4\xbd\x39\x15\xba\xde\x37\xe5\xfe\x58\x95\xff\x06\xdf\xb8\x24\x84\x12\x6b\x84\xb9\xef\x08\x7f\xed\xcb\xde\x2b\xce\x4c\x2e\x80\x9a\xd0\xb8\x46\x8e\x6d\x8e\xfd\xcc\x9a\x97\x99\x80\x84\x30\x21\x30\xc8\x82\x79\xb8\xe3\x28\x6d\x22\x3c\xe0\x5e\xbd\xee\xee\x74\x40\x69\x45\x68\x3a\x0c\x46\x7b\x3c\xc5\x93\x8d\x94\xf9\x08\xe1\x9a\x81\xe3\xaa\x2c\xae\xc4\x64\xd5\x1e\xcd\x61\x12\xc7\xd6\x4b\x12\x85\x63\x8b\xeb\x53\x55\x88\xde\x8a\x75\x5e\xe8\xc3\x47\x17\x24\x4e\x43\xe4\x8b\x76\xa4\x52\x4c\xb9\x86\x00\xdc\xf9\xf4\x89\x24\x09\x43\xde\xa2\xeb\x7d\x67\xf9\xa4\xb4\x47\x52\xca\x42\xdb\x8b\xac\x60\x05\x79\xf6\x06\x15\x72\x74\xca\x5a\xe4\xeb\xb7\x4b\xb4\x3e\x42\xd2\x38\x09\x87\x7b\x9a\xab\xd8\xcc\x01\x85\x08\x49\x4d\x8a\x38\x20\x93\x97\xe2\x75\x2c\xa1\x45\x88\xe0\x0c\x97\x8a\x07\x10\xaf\x38\x57\xfb\x1a\x35\x21\x42\x32\xd4\x1b\xf8\x09\xd9\xf6\xf2\xc5\x08\x47\x2d\x16\x4a\xc1\xb1\xf9\xdd\x6d\xcc\x3d\x2d\xd6\x0f\x03\x2b\x77\xe8\x5f\x5f\x57\x40\xef\xae\x44\x1a\x50\x9e\x6b\xf3\x2c\x1a\xd0\x36\xab\xb7\x7e\x11\xbf\x8d\xcc\x79\xff\x6f\x69\x23\x51\xc6\x6a\x2e\x21\xd8\x1f\x97\x8c\x5b\xd1\x9c\x2e\x40\x37\x09\xd1\x52\x23\xce\xee\x68\x15\x37\xea\x4d\x71\x8f\xf2\x47\x88\x9a\x51\x9f\x17\x3e\x05\x6d\x5e\xd6\x39\x15\x96\x55\x7d\x53\x76\x26\x8b\x84\x00\x0b\x13\x57\x0c\xbd\xef\xdc\x0a\xb3\xb7\x2c\x87\xe7\x01\x58\xe7\xbc\xb0\x43\x20\x4d\xb1\x9d\x93\xd5\x67\xc6\x0c\x6e\x84\x61\x16\xb0\xef\x58\x4f\x5b\xc8\xcd\xa3\xed\xc6\x74\x03\x6c\xe1\xcd\x4b\x9b\x6e\x87\xdc\x56\x42\x4c\x6c\xe2\xa0\x5b\x85\xae\xb1\x02\xb8\x6d\x44\x73\x3a\x97\x14\xea\xaf\x8b\x06\xc4\x6e\x73\xfb\x8e\xfa\xe0\x58\x98\xa3\xbb\x42\xc3\x34\x44\x35\x27\x5d\x16\xed\x6f\x76\x0a\x7d\xfe\xa0\xb4\xeb\xdf\xd1\xcd\xf8\x49\x1c\x42\x23\xda\xa5\x3d\x9e\x89\xe0\x2c\x90\x26\xdf\x42\x68\x80\x95\xd5\x75\xf3\x82\xd3\x77\x7c\x1a\xa2\x42\x54\x79\x5a\x68\x7d\xb5\x5b\x0e\x34\xc8\x2e\xe7\xac\xed\x64\x73\x69\x08\xa5\x3c\x10\x7d\x4b\x0f\x4d\xf4\x45\x23\x2e\x2e\x1d\x43\x16\xfe\xa5\x52\x22\xa5\x10\xe0\x23\xf9\xf9\xf3\xa7\xbf\x19\x8c\x69\x04\xba\x3d\x3c\x6e\x96\x6b\x0f\xb4\x27\x94\x25\x0c\xa9\x4b\x77\xf0\x8e\x7d\xef\x4b\x5f\x3b\xfb\x6a\x52\x26\x39\xea\xa9\xb4\xd3\xa6\x8d\x83\xae\xcb\xd3\xc0\x3a\xcb\x0b\x41\xb4\xe3\x62\xc4\x91\x60\x4a\xdb\x6e\x2c\x3f\x21\xeb\x13\x5a\xca\x99\x62\x03\x6b\x93\x79\x48\x31\xa1\xb1\x0e\x22\xe6\xb8\xe9\xb6\x79\xec\xbb\x14\x34\x49\x03\xec\xed\xd8\x98\xe0\xde\x5c\x75\x52\x8e\x84\x26\x4a\x20\xc9\x6a\x2f\x2b\x00\xf4\xd5\xc1\xf3\xd2\xe0\x6f\xf6\x1f\x3f\xcc\x30\x5c\x85\x0f\xa2\xb6\x1e\x3d\xd8\xa7\x3f\x2f\xfb\xb9\xe1\x69\x14\x62\x7f\xed\xdf\x65\x56\x5c\xbb\x5c\xee\xac\xed\xde\xc3\x35\x09\x4d\xa5\xc2\xc0\xb8\x28\x0b\xa4\x19\x62\x56\xdf\xeb\x96\xfc\x9f\x6a\xf4\x54\x26\x31\xfa\xc8\x2c\x36\x8f\xab\xc7\xfb\x87\x36\x4b\xf4\x08\x14\x42\x65\x6a\x42\x3a\x42\xd4\x8f\xb4\x7f\xdd\x28\xc5\xd2\xb4\xfd\xbd\x7f\x17\x6f\x62\xfb\x2e\x8e\xbb\x81\xca\xc2\x0c\x46\x86\x50\xa5\x08\xee\x86\xed\x93\x59\x81\x12\x9f\x5e\x36\xd4\xaa\xb7\x58\xfe\xff\x78\x5b\xa4\x3a\xe1\xd2\x8c\xd1\x91\xb1\xbf\x4c\xad\x62\x54\x02\x58\x8a\x42\x54\x9f\x3f\xe2\xf6\x02\x8a\x2e\x19\xa1\xda\x84\x91\x4f\x82\xbb\x30\xfc\x13\x29\x0a\xf3\x93\x11\x4c\x84\x29\x16\xea\x0b\xbf\x54\xe5\x7b\xfd\xe4\x94\x01\x2d\xb9\xd9\xda\x23\x8e\x11\x82\xed\xa7\x28\xd1\x03\x67\x79\x5c\x01\xce\xd6\x19\x13\x58\x05\x19\x55\x74\xab\x8b\x89\x22\xe5\x56\x8f\xa7\x2a\x1f\x97\xc7\xa8\xa1\x0c\x06\xae\xcd\xdb\x06\x8e\x16\x76\xec\x8f\x03\x27\xc9\x60\xe9\x69\xaf\x6c\x89\xf4\xc5\xba\x6b\xce\x4f\xf5\x2a\x46\x57\xc4\x82\x00\x30\xd7\x93\x99\x9d\xa1\x89\xff\x3b\x0f\x43\x57\xfb\x43\x6a\xf4\x56\x74\x2b\x35\x0b\x52\xaa\xa2\x0e\xc0\xbf\x59\xde\x4f\x4d\x84\x08\x0b\x04\x20\x53\xd5\x64\x7d\x64\x8d\x4d\x94\x4d\xd1\x94\x8f\xd8\x9b\x9d\x7c\x40\xa6\xfe\xfb\x56\xa7\xe2\x19\xb0\x0b\x72\x14\xb6\x40\x7f\xfe\x12\xb3\x40\x11\xf4\x36\xc3\x7d\x72\x8d\x4c\xf7\x61\x79\x99\x85\x91\xf0\x4e\x2c\x6d\x04\xe4\x56\xf4\xe1\x0e\x31\xd8\x26\x58\x48\x62\xc4\x00\xe4\xe5\x3b\x54\x4b\xc8\xf2\x29\x6e\x8b\xb0\x90\x51\x70\x51\xf6\x23\x62\xaf\xe1\x38\xe8\x44\xff\x6d\xdc\x93\x26\x2c\x4c\x12\x2f\x5a\x78\x9d\xe5\x87\xe9\xc9\x00\xf0\x25\xc6\xfd\x06\x3a\x42\xff\xa9\xc7\xd1\x13\x46\x88\x05\xcd\xdd\xb5\x21\xe6\x18\xc7\x47\x18\x65\xda\xf7\x5c\x36\xa8\xcb\x3c\x70\xcc\x99\xe9\xef\x13\x46\x63\x8a\x15\x5f\x78\x6b\xf7\xce\xc3\x25\x19\x62\xc2\x68\x4a\x05\xed\x20\x50\x6d\xe8\xf3\xd0\xde\x94\x33\x4e\x0f\x61\x54\x5b\xd3\x63\x6d\x75\x3b\x7e\x94\x1f\x2e\xcb\x4c\xfe\x36\xf8\x5f\x37\x98\x87\xa1\xf6\xee\x25\xb6\xe5\xf7\x8b\xd2\xfe\xe4\xb2\x78\x94\x52\x87\x89\x58\x7c\x8a\xa2\x59\x55\x65\xd6\xac\x55\x59\x94\x87\xec\x3f\x27\xd8\x2f\xcb\xc3\xb1\x81\x3d\x99\x5c\x23\xe7\x4c\x39\x7f\xc3\xab\xd3\x67\x3b\x48\x14\x9f\xe3\x97\x8c\xc5\x21\xc7\x66\x57\xbf\xce\xcd\xf3\x11\x4f\x43\x1d\xcd\x2f\xa5\x71\x08\x8b\xa3\x50\x5a\xb2\xf3\xfb\x23\xd4\x65\x3e\xec\x21\x4d\x46\x32\x83\x90\x31\x79\xfa\x7c\x14\xc5\xeb\xe4\xfa\x63\x6d\xb5\xa3\xb6\x8b\x9b\xf5\x7e\x7d\xb7\x5a\xaf\xfc\x0c\x48\x82\x14\xab\x1f\xc7\xb2\xcc\x07\xfd\x00\x96\x38\xc0\x95\x2e\x3b\xdb\xcf\x51\xeb\x6c\xfc\xdb\x13\x1d\x61\xb1\x11\x65\xad\x57\x5b\xbb\x0e\x57\x56\xa6\xd7\x9f\x31\x8d\x44\x68\xc6\xf1\xcd\xcc\x6c\x10\x5c\xa2\x91\xc0\xcf\x4c\x99\x81\x27\x70\x9b\x60\x71\x2f\x4a\x7f\x2b\x3e\x1e\xaa\xec\xbf\x70\x5f\xc0\x6a\xba\x91\x30\x01\x01\xb2\x16\xbe\x79\xf3\xb5\x91\x90\x07\x61\x92\xa6\x8e\x7a\xd2\x88\x8e\x24\x56\x6f\x8a\xad\x7a\x01\x7d\xca\xfb\x71\x2c\x32\xd1\x00\x83\xb7\xe8\xae\x44\xf2\x10\x30\xd7\xc3\xb6\xcf\xa2\x02\x31\x2a\xec\x33\x19\x2b\x94\x2b\x46\xc5\x07\xb6\x2e\xf4\x30\x6f\x67\x32\xa5\xa8\x42\x25\x2a\x99\x61\xb1\x7c\x49\xaf\xbb\xd7\xf2\x1c\x3f\x4b\x98\x4a\x24\xb7\x5e\xcf\x6a\x08\xed\x24\x4c\x53\x0b\x8b\xf9\xfd\x24\xa1\x12\xfe\xaf\x90\x04\xdc\xa6\x6f\x59\x1b\x40\x17\xcf\x5b\x8f\xc8\x27\x0c\x24\x0f\x8c\xaf\xd6\x9c\xaa\x1a\xea\xa1\x3c\x38\x61\x86\x72\xdc\x7d\x56\x3f\xac\x58\xfc\x17\xfb\x2f\x33\x8c\x7b\xb0\x48\x56\x98\xf2\xfd\xbc\xce\xe0\x07\xa6\x24\xc0\x24\xfe\x54\xa8\x51\x13\x98\x19\x29\xb0\xb3\xd9\x05\xd5\x16\x5b\x37\x5f\x6d\x98\xdd\x77\x78\x10\xc7\x8a\x0c\xda\x56\x6f\xa0\xaf\xe6\x3c\x82\xfd\x70\xa1\xd2\x61\xc5\xe0\xea\xf3\x9c\x77\x4d\x78\xa0\x04\x26\xb2\xc7\x4e\xab\x66\x60\x18\x49\x78\x18\x59\xd5\x6a\xdb\x6f\xc7\x5f\x74\x33\x48\x54\xfe\x36\x5c\x7e\x79\x48\x62\xd5\xcb\x02\x8f\x0b\x4e\x93\xdf\x12\x12\xe5\x6b\x64\x57\x65\xa1\x67\xd3\x5b\x4e\x62\xed\xbd\x05\x1f\x00\x29\x6f\xe7\x22\xfd\x84\xd3\x30\x8e\xfb\x5a\xcb\xbe\x16\x39\xec\xc5\x5c\xf5\x93\xd3\xc4\x9a\x2b\xea\x2d\xf4\x7c\x87\x2b\x04\x78\x76\x7d\xcd\x33\xd2\x22\xe1\x4c\xd8\x3a\xbc\x86\x5a\x55\xd9\xb1\xdd\x5d\x23\x7f\x7f\x98\xb6\xb0\x60\x94\x11\x18\x6b\x87\xcc\x3f\x15\x4e\xa8\xb4\xbc\x81\xed\xe6\xf7\xcd\x70\x8a\x70\x0e\x20\xa3\xb3\x7e\xa6\x3f\x1a\x07\xd6\xad\x72\x7b\x3a\x1e\xcb\xaa\xcd\x5d\x1b\xa8\x8c\x50\xd0\x06\xb2\x37\x65\xf9\x7a\x3a\x76\x43\x63\x45\xac\xad\xbf\xfa\x54\xf9\x34\x9e\xe9\xef\x5c\x2c\xec\x17\x1e\xc4\xc7\xc3\x8f\x2b\xff\xe9\x84\x00\x7a\x44\xd7\xc2\xc0\xf7\x12\x55\x99\xcc\xe4\x96\x27\xc2\x06\x88\x9e\xb7\x37\x5e\x76\x78\xa2\x25\x45\xff\xeb\xe5\x7a\x3f\x28\x3a\xf0\x04\x52\x84\xeb\xb7\xcb\xcc\x6f\x63\x72\x00\xe1\x69\x92\x0a\x2b\xd3\x5c\x37\xe5\x61\x60\xd2\xe4\x8f\x2b\x42\x9c\x87\xfb\x73\xd1\xee\x66\x65\x57\x60\x68\x8f\x21\xe2\xc9\xbe\x4d\x16\xcc\x7f\x5d\x5e\x9a\x7b\xa9\x16\x28\x08\x6d\xf2\xec\xb8\x7b\x81\xf6\x0a\x17\x85\xfe\xd9\x5f\xa7\x90\x5a\xab\x01\xac\x7a\xd9\x97\xab\xb9\x8c\xad\xb8\x19\xd6\x53\xde\xe6\xf4\x48\x08\x97\xa9\xc1\x92\x80\x7d\x0f\x50\x05\xaa\x7e\x41\xc6\xd0\x18\x2f\xe6\x2f\x48\x71\xed\xe1\x94\xb8\xd6\x3f\x94\xe5\xa4\x9c\xc4\x55\x2a\x31\x65\xd8\xdb\x73\x3a\x88\xca\xee\xf3\x08\xf6\xd1\xaf\xda\xc4\x75\x36\x0c\xe0\x0a\x38\x8a\x7c\x20\xa2\xc8\x96\xfd\x7b\xcc\x29\xe1\x5a\x04\xb8\x29\xf6\x50\x2d\x2b\x4a\xb8\xb8\xbd\x7f\xba\xdb\xed\xef\xaf\xaf\xd7\x8f\xeb\xd5\x7e\x77\xbf\x7f\x78\xba\xba\xf1\xe6\x83\x84\x43\x64\x79\x28\xd6\xc8\xb4\xb6\xa6\xad\xf5\xbb\x4b\xe4\x27\x13\xc6\x88\x38\x72\xe8\xbd\xa1\xfe\xc9\x6c\x93\x22\x0e\xa2\x00\x51\xdb\x96\x8c\x86\xf3\x24\xf1\x87\x18\xc3\xd0\xfb\xe8\xb3\xe8\x38\x8c\xb9\x37\x90\xfe\x91\x69\x28\xd1\x71\xa7\x81\xc3\xcc\x5a\x17\x87\x89\xe5\xad\xd7\x60\x17\xba\x23\xaa\x42\xef\x3e\x26\x7e\x6a\x6e\x74\x14\x29\x1a\xbb\xa4\xe6\x1b\x34\x37\xe2\xfd\x13\xaa\x45\x33\x4c\x26\x62\x12\x2a\xd4\x54\x3c\xe6\x1f\xc3\x97\x35\x6e\x63\x63\xe9\x7a\x63\xa3\xde\x7c\x4c\x52\x6b\x1e\x0c\xcd\x84\x68\x42\x62\x16\x1a\xcc\x5c\x7e\x82\x68\x67\xf0\xe8\x84\x8c\x5b\x6f\x6a\xa7\x73\x32\x8e\xca\xc7\xd7\xcd\x52\x40\xfd\xab\x4e\x20\xcf\x1a\x5e\xfa\x80\xf9\x2f\xc5\x8e\x31\x03\x82\xc2\xa7\x8e\xa8\x3c\x5a\x77\xcf\x8a\x2a\x53\xc8\xd5\x97\x35\xd7\x98\x27\xd6\xbd\x08\xdb\x4a\x65\x61\x41\x5c\xeb\xff\x6c\x8a\xc6\xaf\xaa\x31\x87\xc8\xfa\xae\x88\x3c\xf7\x8e\x4f\x8b\x42\xdb\xac\xc4\x74\xe4\x58\x12\xc7\xa1\x45\x1d\xd5\xd0\x7c\x2b\x73\x3d\x8d\x2d\xfc\x28\x9a\xa0\x1c\x1a\xee\x6c\xd7\xa7\x1a\x84\x6b\xaf\x9d\x23\xeb\x49\x1c\x9b\x28\x74\x99\x1a\x45\x34\xcc\x79\x26\x15\x27\x44\xe2\x2b\xf5\x20\x8e\x62\xf4\x98\x12\x90\x48\x03\x59\xb7\xe9\x5b\x95\xa9\x7f\x9c\xe0\x34\xd9\xd5\xe2\x34\x54\x98\xe7\x0d\x18\xf6\xb3\x5b\x45\x9c\xea\xd8\x4a\xcf\x55\x00\xfa\xb3\x1c\xa4\xce\xb1\xe0\x29\x8a\x16\x2f\x5e\xb3\xf3\xb2\x58\x2c\x12\x85\x95\x45\x14\x6d\xba\xf5\xfb\x76\x37\x05\x65\xa8\x8c\x5b\x6e\x36\x47\x53\x63\x33\x6e\xd0\x0e\x8b\x25\x4b\x11\xaf\x86\x82\x14\xd9\xe1\x98\xc3\x9d\x38\x40\xe7\x75\xee\x47\xf1\x04\xb3\xc9\x46\xa0\x9d\x6a\x69\xb2\x6e\x22\x4b\x6d\x15\x6e\xda\x33\x6f\xdb\x40\x7e\xaa\x92\x35\x99\x11\x2a\x84\x28\xf1\xed\x79\x0d\x1f\x8f\x65\xd9\x8c\xae\x48\x51\x4b\x00\x42\xa5\x72\x51\xc3\xcf\xb2\xd2\xdb\x3e\xe9\xf0\xa3\x54\x8c\xdd\xc1\xbe\x98\xef\x66\xc3\x5f\x34\xd3\x26\xb1\x8e\x04\xaa\x3f\x3e\x7c\x5f\x6c\xd7\x04\x7d\x1d\x77\xfb\xdd\xe6\xd6\x03\x0d\x62\x43\x15\x76\x9c\x9f\xc5\x01\x56\xd6\x6a\xac\xbb\x23\x49\x10\x06\xc8\x35\xde\x36\x15\x88\x43\x0f\x0d\x4c\x02\x15\x20\x86\x41\xb5\x9b\x64\x3e\x2c\x53\x8e\xa6\x55\x12\x86\x5c\x06\x23\xe9\x9a\x7e\x75\x48\x42\x63\x7d\xe8\xfc\xaf\xdb\x55\xa7\xba\x81\x73\x8d\x4a\x37\x3c\xa2\x1c\x22\x8b\x45\x1b\x38\xd9\xfb\x83\x42\xa1\x02\x82\xdd\x6b\xed\x3b\xee\xe6\xc8\xec\x96\x99\x44\xda\xdb\x92\xbd\x42\x71\x75\xaa\xc6\x42\x64\x24\x21\x24\xc0\x0a\x9e\xc8\xf3\x71\x2c\x90\x10\x16\xf2\xd0\xef\x97\xe8\xd5\xf5\x0b\x68\xc4\xfc\x82\x94\x10\x20\xa8\x96\x77\x53\x3e\xef\xc4\xeb\x79\xb5\xf4\x17\x39\xe6\xdf\x5c\x55\x74\xf4\xaf\xc7\xa3\x24\x34\xb0\x22\x65\x78\xe3\x37\x07\xf1\x0c\x9b\xe2\x78\xea\xc9\xe8\x21\xbf\x88\xe8\xf8\xe7\xbf\xa6\x95\x91\x84\x86\x81\x89\x3c\x20\x23\x53\x65\x55\x5c\xb5\x6f\xf0\x94\x8e\x42\x12\x9a\x04\x48\x9d\x2a\xc0\x43\x17\xc6\x82\x8d\x7e\x58\x0a\xa8\x0d\xf4\x56\x36\x70\x5f\x6c\xcb\xfc\x34\x5b\xf1\x1c\x5e\x81\x8e\x90\xcc\xf0\xb0\x78\xfc\x7d\xb8\x3e\x25\x14\x42\x7c\xd3\xea\x32\xd7\xdb\xad\xff\x2b\x8f\x2c\x85\xcb\x09\x6e\x43\xf5\x96\xa9\xf9\xbd\x39\xe1\x51\x8a\x05\xce\xed\xfd\x9f\x8b\xee\xe3\x04\x70\x5b\x2d\x47\x35\x8a\xf1\xe3\x8b\xc1\xaa\x7b\xdd\xdc\xfc\xd8\x93\x30\xdc\xaf\x57\x9b\x5d\x87\x74\x4f\x92\x88\xa2\x7e\xf5\xc1\xda\x5a\x7d\x3a\x35\xa6\xb1\x6c\xf9\xf8\x84\x09\x50\x5c\x69\x41\x55\x16\x6f\xba\x02\x35\xf0\x62\x9b\x87\xfd\xfa\xcf\x1a\xdb\xd0\x59\x9d\x2a\x51\x64\x5d\xca\x98\xa4\x24\xc0\xd2\x2e\x4e\x83\xdb\x4f\x5f\x21\x9e\xdc\x82\xd4\x44\x31\xf1\xc9\x79\xf1\xd9\x83\x58\xeb\x5e\xbc\x60\x72\xb1\x22\x88\x2c\x6c\xe8\x25\xf3\xdf\x25\x42\x82\x3f\x79\x8f\xd5\x42\x44\x3c\xb4\x7b\xac\x33\x5e\xc0\xeb\x8d\x82\xe9\x69\x38\xc1\x3a\x93\x83\x81\xff\x9e\x35\xcd\x59\xcf\xea\xd2\xe6\xec\x4e\x21\x99\xc6\x15\xce\xf1\x17\x2e\x9b\x3c\x91\x44\x1a\xa5\x79\x67\x04\xef\x10\x48\xd6\x26\x65\xa2\xd2\x40\x12\xa5\x95\x08\x9d\x9d\x60\xc7\xed\x23\x89\xa6\x04\x85\xf9\xf6\x1a\x9c\xc5\xc4\x08\x1b\x7f\xea\x55\x0a\x43\x3e\xa9\x15\x8d\xaf\x45\x4b\x83\x41\xaa\xa5\xd9\x59\x9f\xb4\x41\x10\x9b\x68\x23\xb0\x82\xf3\xfd\xc7\xdd\x68\xbe\x43\x14\x19\x6b\x73\x83\xf6\x58\x6d\xcc\x59\xf7\x82\x95\x24\x01\x6a\x34\xf7\x78\xc1\x57\x28\xae\xcb\x6a\x56\x6f\x7e\xf0\x6e\x01\x8b\x71\xef\x6f\xaa\x4f\x4f\x95\xed\xce\x96\x5a\x94\x63\xbb\xb8\xbf\xc1\xde\x67\x47\x93\xf9\x03\x9a\x60\x0c\xeb\x4c\x31\xdd\x12\xfc\x2b\x63\x81\x5f\xc5\x5e\xf3\x8f\x1b\x4c\x98\x5a\xf9\xf5\xe6\x0a\xdd\x28\x65\x3e\x35\xea\x23\x89\x21\x01\xa6\x1f\xb6\x83\xd3\x29\xd2\xed\xca\xee\x05\xf0\x03\x29\x11\x81\x87\xa7\x5a\xe8\xa4\x9d\x16\x37\x59\xdd\xfc\x10\xf9\xa6\x18\x6f\x22\xdd\xc7\x84\x1e\xb6\xb4\x6f\xb3\x02\x2a\x91\x5f\x30\xc8\x69\xc7\x5b\x17\x09\x74\x72\xd8\x65\x50\x45\xdd\x05\x18\xe6\x54\x02\xda\x24\xa8\x73\xf1\x1e\x7d\x3c\x0d\xa2\x74\xa0\x13\xec\x2e\xd4\x5e\x98\xf5\x91\xf0\xe3\xa8\x42\x2f\x96\x5b\xd1\x86\x35\x77\xf0\x65\x0b\x26\x0d\x98\x46\xd1\xfe\x97\xec\xf9\xc5\xe9\xef\x74\x27\x02\xee\xdb\x11\x9b\xda\xc2\xe2\x91\x1e\x71\xf5\xb9\x6d\xd3\xe7\x71\x02\x90\x86\x61\xcc\x7d\x54\x57\xd4\x2f\x25\x60\x4b\x0a\xba\xc3\x2a\xe2\x43\x99\x09\x34\xa1\x69\xdf\x9c\x68\x7c\x57\xd3\x28\x30\xdc\x81\xf5\xd6\xa2\xca\x33\xa8\x9b\x8e\x3b\x37\x19\x19\x5a\x1d\xae\xd5\xfa\x8f\xef\x9b\x6f\xdf\xf7\x3f\x3c\xde\x35\x8d\x92\x48\xc6\x4e\x82\xc3\x46\x77\xa0\xbd\x48\xf3\xe7\xf4\x2c\x26\x45\xe6\xc5\x8b\xa8\x97\x65\xf1\x06\x55\x33\x51\xba\x69\x87\x58\xb2\x63\x1b\x38\xae\x3f\x8e\xbf\xf5\xad\xb8\xb3\xf5\x3b\x25\x24\x61\x03\x66\x89\xed\x17\x75\x37\x89\xc4\x09\x16\xef\x56\xba\xac\x6f\xb3\x26\x7b\x1e\xb2\x04\x52\x22\x03\x6e\xfb\x79\xcd\x4b\x56\x3c\xdf\x64\xd2\xcf\x90\x94\x69\x15\xf7\x88\x85\x5f\x19\xfd\xba\x0f\x71\xae\xb0\x7c\xb0\xf7\x1d\x9d\x4b\x62\xd2\x24\xe5\xb1\x65\xba\x66\xf5\xff\x42\x55\x4e\x64\xdb\xfd\x18\x45\x51\x4e\xc7\xf6\xb5\x16\x95\xa7\x65\x77\x87\x63\xac\x0e\xc8\x28\x44\x9c\xb5\x1d\x35\x8a\xa7\xd2\x58\x09\x94\x6d\x29\x4e\x07\xb7\x58\x3e\x82\x2a\xab\x89\xbd\x02\x49\x63\xcd\x34\x1b\xac\x5f\x3d\x73\xce\x65\xcc\x69\xc2\x14\x86\x02\xeb\x8f\xbe\x6e\x9a\x26\xa9\xc5\x32\xba\xe5\xfa\x0e\xde\xb1\x66\xf2\x08\x22\xdf\xac\x66\xc3\x65\xf7\x41\x11\x73\xbc\xbd\x87\xac\x80\x73\x2b\x4f\x92\x8a\x94\x59\x07\x05\x7c\x0b\xba\x0c\x74\x5d\xe8\x9e\xe3\x48\x52\x21\xb9\x89\xbc\x4b\x99\x4d\x4b\x67\xb4\xb4\x49\x2a\x54\x18\xdb\xec\x5a\x7c\x42\xb5\xc5\x86\x5e\xe7\xa3\x43\x52\xc9\x25\x49\xdd\xec\x7d\x2b\x11\x33\x68\xca\x6a\xde\x52\x87\xa4\xca\x48\x2b\xee\x55\xdb\xa2\xd6\x97\x65\xba\x14\x22\xbb\x94\x63\xd6\x85\x19\xf7\x05\x87\xa1\x6e\x3c\x0f\xa8\xef\xfd\x7d\x5e\x09\xf5\xfa\x78\xc6\x8a\x4b\x21\x52\x94\x4d\x5e\xb7\x5d\x79\x9d\x55\x87\x09\x9d\xd8\x8f\x4f\x19\xb2\x9a\xf7\xd6\xf8\xe3\xcc\x02\x91\xa4\x26\x49\x03\xdd\xc1\x66\x31\x82\x18\x75\xc6\x06\x23\xb5\xed\x7d\xb8\xe2\xe2\xf8\x7e\x4f\xbe\xd7\x38\x58\x51\x9f\x48\x1d\x0e\x19\xfa\x6e\x8f\x1f\x90\x08\x22\xc1\xbd\xa2\xe4\x8d\x40\xcb\xd9\xc1\xae\x2c\x82\x48\x21\x2b\x44\x42\xb3\xd0\xfa\xbc\x9f\x3f\xff\x8e\x89\x88\x13\x74\xe4\x3c\xc2\xf3\x33\xe8\xed\xe7\x41\x96\x1e\x29\x28\xa2\xd8\x60\xb1\x17\xea\x26\x3b\x08\x2b\x05\xf1\x50\x36\x5b\x00\x3d\x4a\x71\x04\x91\x9c\xd1\x0e\x3b\xd3\x5e\xfb\xe4\xb8\x0e\x50\xfb\xce\xd1\x70\x71\x7d\x99\xb8\xef\x13\x41\x80\x73\x97\x29\x5b\x0c\xdf\x8d\xa8\x9b\x07\x91\xe9\x33\x78\xb4\x7b\xdd\x04\x05\x95\x20\xa8\x63\x79\x3b\x6b\x41\x33\x7c\x9b\x04\x4b\x42\xeb\x4f\x6e\x15\xed\x01\xaa\x71\xfc\x7f\xce\x2e\x3f\xef\x9a\xb6\x27\x41\x84\xcc\xed\xe2\x8f\xfd\xd3\xe6\x6e\xd7\x69\xc4\x12\xc1\xc0\xfa\xdb\xd9\xb8\x7e\x28\x7b\x31\xbe\xe1\xb1\x8e\x70\x5b\xb5\x22\x69\xab\xa7\x47\x24\x17\x78\xc5\x41\x22\x12\x12\x62\xc8\x83\x8b\xc4\xdf\x4b\xd9\xfd\x3d\x16\xe8\x16\xf3\x2c\xea\x6e\xeb\xf7\x87\x94\x15\x44\x56\x65\xd1\xf4\x49\xac\x48\xb4\x25\x58\x58\x18\xe8\xb4\x94\x2f\xd2\xc4\xaa\x75\x3d\x94\xc7\x53\xbe\x6d\xc4\x50\xcb\x8b\x88\x34\x05\xf7\x8e\xe5\xa0\x46\xd2\xf0\x44\x08\x65\xab\x91\x57\xa2\x86\xdb\x72\xd0\xdb\x12\x32\x60\xd4\x25\xa0\xed\x41\x04\xf6\x3e\x1d\x07\xb6\x71\x6e\x9c\x8a\x02\xa4\x30\x20\xdc\xae\x27\x16\x76\xbf\x48\x71\xdb\x7d\xd9\xbe\x94\xef\x68\x66\x0b\xcb\xf3\x25\x4b\xa8\x38\x62\x9d\xad\x53\xd5\xbe\x31\xb3\xab\x91\xd0\x29\x45\xc1\x11\x1f\x62\xb5\x73\xb8\xd7\xe7\x24\x42\xcb\xc8\xa9\x62\xb4\x2b\xdb\xae\xf4\xb5\x7d\x01\xdc\xb5\xc1\x3b\x4b\xf4\x1e\x33\xfd\x55\x0a\x2f\x20\x0e\x91\x14\xd4\x64\x50\xd1\xee\x6c\x49\x22\xf4\x00\xf1\xfe\x7b\x56\x3c\xeb\xf2\xd0\xfd\x68\x13\xd8\x26\x9a\x63\x5c\x6f\x8a\x6f\x65\xa9\xb7\x8d\x28\x7a\x7b\x11\x9f\x55\xc9\xc0\x58\x7b\xbf\xa3\xc8\xb4\x2d\x29\xfc\xcc\x5e\xb3\x07\xf1\xfc\x45\x6f\xb8\xbb\x3c\x19\x32\x2b\x5a\xf8\x50\xd6\xcd\xcf\xac\x3e\x73\x01\x19\x79\xc9\xcd\xa6\x84\x32\xe4\x3a\xb5\x16\x84\x56\x85\x0b\x46\x53\x44\x86\x09\x47\x68\xf8\x42\xbf\x65\x75\x59\xd5\x0f\xa2\x6a\x0a\xa8\xea\xd1\xba\x20\xc3\x94\xe2\xce\x7b\x57\x6a\x98\x18\x00\xfa\x57\x4e\x86\x26\x09\x3b\xdb\x4a\x34\xa2\x18\xce\x14\x49\xe2\x0e\x97\x81\x6d\xfb\x4e\x08\x96\x48\xa2\x6d\xbd\x58\x89\xba\xc1\x5d\x65\xd8\x27\x77\x63\x68\xc8\xb1\x7a\xd7\xce\xd6\xcd\xf2\x7e\x66\x9b\x95\x8c\x5b\x0c\x8b\x2b\x4d\x2f\xf2\xdc\x56\xa7\xbb\x4b\x60\x09\x45\x20\xc4\xcf\xf5\xfa\xf7\xed\x3e\x0c\x68\x77\x40\x72\xd4\x7b\x3b\x64\xc5\xd8\x13\x81\x48\x66\x04\x2e\xad\x1d\x37\xa0\x9d\x9b\x8f\x30\x16\xf3\x26\x92\x4b\x61\x58\xef\xb4\x6f\x37\x52\x7f\x8e\x58\x87\x89\x0b\x85\x57\x1d\xde\x79\xf6\x0d\x90\x09\x93\x18\xa6\x5b\x35\xc1\x5e\x7e\x4c\x34\x70\x46\x48\xb8\xf8\xef\x57\x96\x65\xfe\x7b\xa4\x15\xb1\xf7\x9b\xd9\xe6\x7c\xdb\x9b\x49\xf3\x64\xa2\xa2\xb4\x77\x32\xc2\xb8\xea\xde\x0c\x20\x20\x6e\x58\x1a\x6a\xe4\x2d\x7e\x6b\x03\x30\x35\x6c\x59\xcb\x54\x13\xeb\x3f\x24\x4f\x9f\xa8\xf6\x31\xff\x62\x4a\x11\x01\x96\x63\x5f\xb2\x63\x1b\x12\x1c\x30\x1d\x79\x84\xff\xf8\xf3\xc8\xd8\x72\x66\x9f\x2d\x82\x77\xf1\xdc\x7d\x83\x14\x90\x5a\x97\x01\xbd\xd7\x7d\x7c\x25\x55\xa8\x50\xa9\xaf\xef\xe9\x76\x47\x78\x84\xdd\x87\x5d\x75\xea\x75\xde\x86\x8b\xac\xd4\x49\x40\x78\xef\xbc\xe5\x14\x9c\xae\x4f\x85\x9a\xcc\x03\x9d\x52\x84\x17\x0b\x29\x0a\x5d\x16\x4e\x70\xc5\x15\x8f\x26\x77\x09\xa4\x44\x8e\x87\x29\x2b\x05\x7f\x2d\x28\x97\x46\x58\x8b\x87\xdb\x4c\xbd\x8e\x44\x1d\x89\x34\x46\x21\xf1\xd3\x0a\x59\x0f\x0b\x01\x2a\x88\x08\x8a\xe6\xea\xd2\x66\x87\x87\x39\x0d\xb9\x09\xcd\xb7\x7f\xea\x2a\xa4\x51\xd0\x6e\x23\x95\x30\xa6\x3f\x69\x44\x25\x22\x3e\xfc\x2a\xa8\x27\x19\xb4\xa2\x22\xb4\xca\xad\xd0\x6c\x55\xa1\x47\x9e\x20\x6e\x08\xd3\x82\xba\xa2\xe0\x37\x51\xa3\x16\xd5\xad\xf8\x98\x9c\x87\xab\x50\x38\xd3\x8e\x25\x1a\x82\xe4\x8b\xb1\xd4\x45\x37\x4e\xeb\xfe\xdd\x69\x5f\x99\x87\x5c\x9c\xc5\x1a\xa3\xe5\x59\xc5\x11\x05\x47\x13\xbb\x29\xeb\x7e\xad\x50\x31\x05\xac\x44\x1d\x7b\xe3\x80\x8e\xde\x72\x96\x4c\xaa\x38\xb6\x21\xdf\x51\x9c\xea\xde\x11\x8e\xa8\x58\x5a\xa5\x00\x9f\xe4\xef\x9b\x72\x0f\x4d\xd6\x1d\x56\x41\xe4\xd8\xd3\x23\x8f\x75\xa2\x62\x1d\x2a\xab\xca\x62\x6d\xc4\x07\x4f\x23\xa1\x69\x1a\x78\xe5\xed\x77\x44\x86\x5e\x6a\x96\xa8\x44\x68\xd5\x35\x0d\x6f\x40\x3c\x9f\xe0\x1c\x6a\x36\x64\xfd\xa8\xd4\x31\x13\x6c\xf4\xe5\x67\xa5\xe3\x41\xfe\x25\x09\x3c\xa2\xd2\xd0\x82\x13\x6b\x61\xda\xdf\x75\x31\xc0\x1d\x7d\xaf\x4c\xb0\x77\x73\xac\x60\xa3\xca\xed\x44\x54\x9e\xa8\x54\x29\x63\xb3\x84\xdf\xe1\x73\xa4\x1d\x37\xf9\xc9\x82\xc6\xb1\xc3\x83\x5c\x55\x02\x53\x2c\x31\x79\x5a\x82\x31\x1d\xf7\x89\x9e\xff\x91\xcb\x97\x2c\xd7\xd5\x10\xc9\x3f\xf9\x98\x10\xe8\x0d\x8f\x19\xac\x4d\x3c\x26\xed\x08\x25\x01\x30\x7e\x6e\xda\x14\xf6\xbd\x5c\x65\x6f\x56\x14\xce\x1f\x57\xd4\xa0\x0e\xe8\xf5\x66\xb5\x18\xbe\xbc\x4a\xa5\x8a\xb8\xe5\xec\xe6\xa4\x5e\x3f\x1d\xb2\x63\xdb\xd7\xd1\x94\x26\x24\x21\x1d\xe0\x1e\x91\xfa\x13\x4f\x09\xa2\x74\x0c\xba\x83\x36\xfd\x5d\xa8\xd7\x63\xd9\xdc\x6b\xdd\x9d\xc2\x28\x94\x7d\x73\xaf\xac\xb7\xe3\x20\x0a\x42\x85\xb2\xfc\x7f\xdf\xfe\x7d\xd9\xfd\xcd\x89\xc4\xb6\x69\xd6\xe0\x79\xcc\xae\x4b\x0a\xe2\x38\x89\x47\xfb\x89\x65\x05\x2c\xbe\x10\xa5\x21\x0a\x34\x89\x2c\x77\xac\xc0\x08\x74\xfd\xe1\x23\x3a\x65\x88\xb2\x16\x58\xaa\x9c\x90\x7e\x94\x61\x09\x6e\x0d\x0b\xac\x66\x74\xc0\x7e\x65\x94\xad\x83\xad\xd6\xd7\xc3\x7b\xab\x83\x28\x10\xee\xde\xde\x8a\x22\x33\x50\x37\x9b\x73\x45\x8c\xd1\xba\xa0\x83\x38\x02\x27\xd8\xa7\xa0\xae\x47\x26\x8e\xb3\xfb\xad\xff\x9c\x60\xe8\xab\x7a\x0b\xf9\x64\x79\xd2\x21\x0d\x10\xac\xb0\x2a\x1f\xcb\x7c\x9e\xed\x32\xde\xc1\x27\xff\xf3\xe5\x3b\xa7\x43\x60\x32\x75\x7c\xce\xd3\xf1\xc2\x6d\x9f\x7c\x26\xa2\x5a\xb9\xf4\x7c\xf7\x79\x84\x85\x7e\x13\xe8\xb7\xe3\x5f\x3a\x1d\x29\x10\x91\x97\xbb\x50\x6d\xe4\x38\xf1\x02\x99\xbf\x16\x42\xa5\xf0\xf9\x4c\x5e\x36\x85\x0f\x84\x34\x8b\x14\xb6\x12\x32\x55\x92\x5e\xdf\x46\xb3\x44\xa1\x8b\xe2\x75\xf4\x34\x7a\x70\x2c\x35\x81\x43\x95\xfc\xbd\x94\x8e\xa3\x31\xfc\xca\xc4\x0f\xd4\x11\x02\x0b\x30\xaf\xca\x8a\xda\x53\x4e\x26\x4f\x80\x01\x45\x85\x83\x9b\xf2\x79\x5d\x55\x65\x75\x5b\x8f\x4c\xb2\x88\xe6\x84\x6a\x2f\x77\x75\xcc\x8a\x47\xa8\x4f\x79\x73\x39\xee\x1a\x9f\x9d\x93\x04\xd3\xe2\x4c\x95\xae\xbc\x3a\x22\xfe\x6a\x4e\x05\x37\xbe\xdf\xbe\x6f\xcf\x7d\x80\xde\x13\x88\x68\xae\x02\x2c\x5d\x3e\x40\x71\x5e\xf8\x9e\x7d\x7f\x74\xcc\x29\x3e\x1f\xff\xd6\xf5\x7a\x2f\x63\xfa\xd0\xfc\x63\x4a\x99\x95\xa1\xc3\x15\x4a\x4e\x94\x79\xfe\xe5\x07\xc5\x14\x9b\xa2\xdf\x1e\x17\x0f\xeb\xfd\x76\xbd\xdc\xee\x77\xf7\xfb\x6f\x8f\xf7\x3f\xf7\x3f\x36\x77\xbe\x05\xac\x05\x8f\x85\xdb\x94\xae\xdb\x70\xe6\xae\x36\xef\xae\x93\xe1\x7a\x81\x7e\xa0\x10\x0c\x7c\x9f\xe8\x15\xe1\x3f\xe7\x35\x21\x2d\x93\xc8\x60\x09\xe5\xd4\x8c\x66\x84\x0e\x65\xe2\x66\xc4\xc2\x7a\x98\xff\x62\x8a\x6b\x66\x10\xe4\xd0\x6d\x64\x45\x93\xfd\xe7\x04\x97\x74\xd4\xfc\xa7\xb4\x42\x59\x12\xac\xe0\x94\x65\x23\xcb\x8f\xc9\x54\x82\x80\x0f\xdc\x78\xd7\xb5\x12\x47\xf8\x2e\x1a\xf5\xb2\x14\x79\x3e\x0d\x73\x34\xf0\xd0\xe0\xaa\x20\xaa\xb7\x0e\x50\xa5\x21\xe5\x08\x29\x3b\x6f\x80\x4f\x3e\xad\xb4\xe2\x9d\x8e\xd2\x8f\x32\x5f\x58\x95\x87\x09\x90\x47\x1b\x1a\x32\x97\x61\x6d\x1f\x16\x8f\xcb\xd9\x5e\xa5\x36\xca\x82\x24\x4e\x05\xee\x63\x08\xac\x9a\x17\x97\xf3\x1f\x80\x14\xab\x13\x59\xbd\x02\xe3\xa0\xf7\x3d\xf0\xde\xbd\x82\x10\x70\x40\x31\x81\x2e\x4f\x5a\xcc\xb2\xe5\xdd\xe8\x30\x04\xe5\xb0\xe1\x57\xaa\x3c\x1d\xcb\xce\x00\x6a\x59\x76\x8d\x32\x08\x09\x20\x90\x77\xfd\x01\xea\x74\x8e\x0c\x80\x48\x1b\x8c\xe8\x0b\x78\xdf\x81\x70\x1d\x7b\x3d\x69\x82\xff\x85\x7f\x06\xa7\xb3\x3f\x14\x7f\x01\x56\x3b\x46\xeb\x03\x10\x62\xf9\x8d\xa6\x2a\x0f\x2e\x60\xfb\x26\x1a\x78\x17\x93\xb6\x00\x10\x4e\xf1\xca\x2b\x7c\xcb\x07\xa1\x38\x10\xae\xb0\x7a\x89\x3b\xca\x4d\x29\xf4\xb9\x1a\xad\x1f\x09\x09\x17\xbd\x8f\xe6\x56\x14\xe3\x8b\x61\xd2\x3a\xfa\x21\x9e\x65\x5f\x1f\xcf\x7a\x6a\xc0\x5d\x67\x14\xe9\xaa\x6b\x51\x15\x97\x14\x2f\x80\x73\x06\x0e\x14\x7f\x5b\x16\xed\xdc\x9a\xf7\xe5\x99\x5c\x22\x8f\x83\x30\xea\xdb\x15\x23\xc8\xb0\x1b\x12\x87\x96\x6e\xeb\x95\x94\xd7\x03\x44\x37\xc4\xd4\x32\xf5\xda\xc8\x5e\x1c\x17\xcd\x4f\xc8\xa6\x1f\x07\x6d\x81\x12\x27\x79\xc8\x1a\x84\x00\x4e\x06\x18\x0b\x01\xb4\x41\xbf\x9d\x29\xa5\xcd\xbe\xc7\xd7\x9a\x30\x6b\xa5\xf4\x0c\xcd\xfe\x35\x2b\x9e\xad\xf2\xad\xbf\x92\x44\x06\x89\xf5\x6b\x78\x80\xba\x1c\xae\x39\x90\xc8\xa4\xf3\x60\xb2\x96\xf5\x03\x85\xa6\xf9\xdb\x99\x68\x13\xbb\x88\x63\x7f\x74\x16\x74\x1d\xfa\x76\x3c\x34\x0d\x0c\xaa\xad\x1f\x50\xab\x15\x6e\x8b\xe6\x38\x7e\xcc\x29\x4f\x91\xcd\x87\x6f\xeb\xa6\xae\x4f\x53\x12\x34\x08\xa2\x95\x03\x0a\x5d\x44\xd1\x80\x88\x45\xe4\x9e\xf0\x15\x36\xea\x5e\xc6\x98\x75\x10\x89\x45\xcd\x5b\x70\x3e\xf2\x13\x9f\xb2\xa2\xf9\x6d\x6e\xeb\x00\xc9\xac\x3c\xed\x21\x3b\x2f\x5f\x4f\x46\x72\x1a\x63\xa7\x65\x79\xd7\xfb\xc8\x13\x80\x28\xc2\xc7\x66\xd5\x7f\xbf\x55\x70\x81\x00\x0e\x20\x43\x6a\x9b\x71\x96\xa9\xe9\x4f\x60\x18\x4f\x1d\x6f\x05\x4b\x84\xbb\x0a\x4d\x2f\x27\x42\x4c\x83\x9d\xc7\x04\x09\x89\x6c\x15\xc6\x9a\x6e\xef\x1d\xdf\x75\xb3\x1a\xdf\x2a\x13\x6a\x81\xb4\xbe\xab\xec\x1f\x7f\xdd\xc4\xb8\xfd\x98\xc1\xa2\x87\xcf\xf5\x9c\xbb\xc3\x42\x1f\x2e\x01\xe3\x4d\xa4\xad\x71\xd3\x54\x4b\xe2\x67\xd6\xbc\x7c\xcf\x0a\xa4\x30\xda\x1e\xe0\x4e\x64\xf9\x6f\xe3\xcf\x42\x8c\xc4\xf4\x46\xbc\x82\x95\xde\x1e\x9f\x9b\x04\x36\x5b\x79\x86\xe6\x4e\x54\xaa\x9c\x1e\x0e\x53\x9c\xa2\x57\x67\x1d\x5e\x3f\x20\x8a\x11\x8b\x7e\x0d\x70\x18\xc0\x95\x0d\x21\x94\xda\xcc\x54\xe8\x4e\xed\x6d\xfe\xe7\x11\xa6\x50\x50\xfe\x1d\xe4\x08\xb5\x6d\x48\x4c\xb0\xe0\xd7\x8c\x72\x3c\x43\xa9\x4d\x87\x0f\x59\x61\x5f\xb5\xac\x78\xee\x9b\x81\x17\xbe\x84\xd2\x80\x8b\xbe\x34\xd3\x95\xcc\xba\x93\xc6\x11\x06\xc6\xb7\x0f\x3e\xd2\x32\x2c\x90\x08\x1a\x87\x8f\x06\x06\xee\x64\xc4\xc4\x41\xdc\xf7\xb7\xba\x3e\xff\xf8\xfb\x62\x95\xe2\x82\xf6\x54\x43\x85\x2d\x7e\xff\xe1\x24\xb1\x70\x3c\x2c\x7a\x35\x22\x7f\xcc\x9e\x07\xb2\xcb\xed\x71\x1d\x39\xec\x59\x33\x83\xc3\x35\x09\x24\x1d\x7f\xaf\x76\x40\xd7\x4d\x61\xca\x31\x43\xc3\xa4\x29\xc5\x17\x19\xed\xb4\xac\x83\xf3\x28\x75\x31\xa9\x24\xdc\x05\xb1\x6d\x26\xdd\xb9\x8d\xbb\xc3\xa2\x8d\xaa\x7d\x82\x8f\x7a\x3f\x03\x90\xa2\x91\x21\x04\xc3\x49\xbc\x7c\x19\x28\x6a\xfa\x31\x29\x20\xe8\xec\x35\xcb\xf3\x2d\xe4\x66\x7a\x58\x84\xc8\x6f\xdb\x23\x63\xed\xf9\xa5\xe9\x50\xd8\xdd\x25\x4a\x63\xc5\x09\x6a\xeb\x14\x34\x59\xaa\x8d\x62\x1c\xa1\x0e\xfe\x22\x9e\x0a\x94\x38\xee\x32\x3d\xa3\x98\xc1\x45\xc1\x12\xa9\xe1\xe1\x54\x0d\x44\x2b\xc7\x77\x43\x71\xc2\x7b\xdb\x66\x8b\x93\x45\xcf\x93\xee\x5c\xc6\x20\xfb\xfd\xfe\x38\x5b\xe1\xf8\x35\x4a\x72\xca\x80\x9e\xd4\xd3\xe6\x67\xad\x0e\x38\x16\x8c\x74\xe9\x3a\xd9\xd7\xd3\x6c\xc5\x68\x1a\x20\xf0\xb9\x13\x8e\xf9\xcf\x09\xaa\x4e\x8d\x0f\xbf\xed\x9f\xf4\x5f\xd3\xf3\xa6\x24\x75\x61\xd8\x95\x67\x0b\x75\x9e\x38\xc4\x68\x69\x73\xd0\xab\xdd\x76\xd9\xff\x4d\x22\x8d\x76\xb5\x5e\x6e\x6e\x17\x37\x7b\xeb\xac\xe5\x8f\x1a\x96\x60\xeb\xce\x8a\x8c\x60\xb4\xeb\xed\x8a\xba\xb5\x95\x06\x81\xe0\xda\xf6\xec\x7e\x81\xd8\xf1\xe3\x75\x80\x1d\xda\x07\xd7\xcc\xba\x98\x5b\xbb\xf1\xa1\x8a\xb0\x54\x5a\x9f\xa4\x65\x93\x1c\xbe\x12\x67\x9f\x7c\x38\x92\x09\xf6\xba\x3a\x37\x60\xdb\xb9\x45\x34\xca\xc6\x4c\xf3\x88\xb9\x7a\x00\x0d\x48\x64\x90\xbc\xd1\x80\x70\x1a\xf7\x61\x34\x34\x80\xa4\x01\x15\x12\xd7\x21\x25\x72\xe5\x8d\x13\xdc\x6f\x3b\x4f\x59\x69\xc0\x48\x84\x51\xf5\xde\xd2\x1b\xd4\xbc\x38\x03\x0d\x58\x2c\xb0\x3b\x5e\x95\x79\x3e\x82\x43\xd0\x80\x09\xa0\x41\xc7\x87\xdb\x9e\xa4\xd5\x4d\x9f\x20\x99\x68\xc0\x34\xe0\x0b\x29\xf2\x77\xf1\x59\xa3\x28\x55\x33\x1d\xc3\x99\xe4\x5e\xec\xe7\x20\xf2\xdc\x2a\x9c\xf8\x83\x71\x82\x9c\xfc\x59\xc2\xda\xf0\x47\xf1\x94\xe1\x3d\x90\x28\x12\x66\xb1\x63\x1d\x2e\x1d\x0f\x2b\x4b\xf9\x5f\x23\x0d\xf1\xb1\x13\x2b\xa3\x01\x07\x82\x29\x52\x9d\x15\xcf\xb9\xad\x3b\x7e\x13\x75\x9f\x0d\xd0\x20\x0e\x02\x9c\xa7\x5b\xd1\x94\xea\x25\xa3\xdd\xdf\x99\x92\x7a\xa0\xaa\x60\xeb\x04\x30\xfd\x85\x09\xb1\xee\xc7\xdf\x27\x6e\x48\x34\x48\x18\xa3\xa9\xa7\x2e\x2e\xbe\x2e\x6e\xd0\x20\xe9\x33\xdd\xdb\xac\xc8\xda\x90\x74\x8d\x5a\x46\xc3\x70\x8a\x06\x89\x89\x49\x67\xb1\x54\xa2\x09\x89\x3b\x92\x32\x86\xc2\xce\x59\x7d\x57\x36\xab\xd3\x31\x47\xe7\x4a\xcb\x0b\x1b\x1b\x92\xd1\x20\x4d\x99\x8f\xda\xdc\x59\x3a\x82\xd3\x68\xb5\xa0\x81\x88\x68\xac\x3a\xe2\x49\xf5\x89\x77\x6e\x74\x45\x22\xb6\x57\x34\x64\x51\x5d\xee\xc3\xd3\x40\x68\xe9\x2d\x7a\xd7\x1f\xc7\xb2\x42\x06\xaf\xa8\xfc\xce\x4a\x03\xad\x68\xe2\xd4\x68\xd6\x07\x91\xe5\x43\x93\xb4\xbf\x8d\xaf\x4e\x6b\x8d\x15\x9e\x5b\x10\x8d\xc5\x49\x21\xc1\xdc\xb1\xfe\xca\x79\x7c\x2c\x0d\xb4\x89\xb0\x7c\x6e\x85\x51\x9f\xac\xc6\xa4\xff\x7a\xa0\x36\x00\x12\x56\xbc\x00\xb6\xe8\xbf\xe6\x97\xc7\x7e\x6d\x02\xea\x2c\x8a\xac\x57\x16\x96\x7c\x47\xed\x4d\x1a\x80\x60\xcc\xea\xbe\x5e\x8b\xb7\xb2\x72\x12\x2c\xf3\x3f\xc5\x50\x03\xae\x04\x71\x85\x77\x26\xb3\xd4\x72\xa7\x7c\x36\xfe\x01\x86\xa5\x48\x09\x7b\xcf\x0a\xeb\xf7\xa4\x5e\x51\xf1\x47\x4e\x76\xff\x76\x24\x50\x9f\x32\x88\x3c\xdf\x17\xa7\xc3\x3e\x87\x37\xc8\xbb\xb7\xd0\x80\x41\x89\xca\xdb\xdb\x5b\x39\x16\xc3\xfa\x45\x7d\xea\xcb\xb8\x95\x86\x41\x10\x60\x5c\xec\x77\xdb\x1b\x78\xb6\x96\x6a\x59\xf1\x0c\x85\xfa\xb4\xb5\x4f\x3f\x98\x00\xb8\x92\x61\xf7\xfd\xe7\x26\x41\x34\x0c\x28\x8b\x84\x07\x45\xda\x5b\x3e\x08\x86\x68\x18\x70\x85\xd6\x4c\x7e\x5b\x2e\xd6\x1f\x33\x28\x49\x1a\x06\x71\x84\xd4\xf0\x3a\x7b\x2e\xa0\x0a\xbb\x8f\x2b\x89\xcf\x14\x21\x50\xf5\x23\xcc\xfb\x63\xd2\x30\x00\xeb\x00\x73\xea\x38\x32\x3d\xbe\xd2\x0f\x31\x80\x6c\xe0\xd5\xe6\xc7\x66\xeb\xf7\x3d\x1a\x86\x11\xc1\x18\x71\x71\xf7\xc7\x70\xb1\x08\xc3\xd8\xaa\xa2\x75\x3b\x9d\x6f\x87\xfb\xe3\xa9\xf6\x6d\xee\x2d\xe4\xf9\x35\xc0\xd5\x71\x32\x2b\xc2\x50\x25\xd6\x22\xc8\x4a\x00\x3a\x44\xc5\xec\x74\x0b\x43\x25\xbd\x91\xc8\x75\x05\x80\xb1\xc2\xdc\x0d\x8f\xa2\x94\x45\x7e\x11\xeb\xce\x35\xfe\x67\xb0\x54\x87\x51\xcc\x71\xd1\xfb\xfb\x9b\x38\xd7\x1e\xa5\x61\x24\x42\xa6\x7a\x3b\xcd\x02\x54\x0f\x35\x6c\x8f\xd2\x2e\x25\xb6\x61\xfa\x7a\x86\x11\x44\x43\x42\x34\x56\xea\x77\xdd\x6d\x25\x3c\x06\xe5\x6b\xf1\x1f\xcb\xc5\x83\x3f\x40\x83\x18\x75\x08\xf6\x4e\x49\xf6\xec\x39\x51\x96\x04\x49\xff\x1a\x4f\x7c\x20\x68\xc8\x38\x0b\xc0\x46\x3e\xae\x52\xec\x0f\x48\xad\x1d\x2f\x7e\xf1\x3b\x20\x7e\x7d\x22\x89\x38\x1b\xa3\xd1\x90\x9b\x14\x3f\xe8\x83\x8e\xad\x30\x90\xcf\xcb\x21\xd1\x30\xa6\x84\x58\x40\x4d\x6e\xbe\x7f\xca\x2a\xd3\x0e\x3e\x75\x69\xbc\xb1\x4e\x02\x42\x6b\x8b\xbc\xfb\x3a\x02\x0a\x13\x66\x3d\x70\xbe\x8b\xe3\xf1\xf3\x2a\xab\x9a\x17\x3d\x02\x02\xd1\x30\x49\x42\x04\x88\x59\x15\xd7\x8d\x2a\xfd\x81\x34\x60\x18\x02\xaf\x40\x9e\x9e\x37\x5d\x4a\xef\x8f\x86\x11\x16\xeb\xb7\xf7\xcb\xcd\xe2\xe6\x8f\xab\xfb\xa7\xbb\xdd\x9f\xfe\xa3\x32\xe5\x28\xd0\x61\x11\x58\x2e\xfe\xf0\x56\x31\xe3\xe7\x23\x53\x85\x43\xb1\x42\xf8\xcb\xdd\x25\x94\x4a\x22\x00\xa1\x4d\xc0\x54\x19\xf9\x2f\x54\xc4\x66\x86\x47\x0b\xa9\xb7\x6b\xc2\xb6\xcc\x75\x37\x40\x25\xa1\x0d\xfd\x21\x53\xa5\xac\x2c\xe8\xc6\x5e\x5f\xf8\xa0\xba\x05\x46\x81\xc4\xce\xb2\xf3\x9c\x72\x32\x3c\x6b\xa1\x5e\x96\x2f\xe5\xc5\x70\x2b\x34\x21\x41\x10\xa6\xb0\x78\xdf\xff\xc2\x0a\x8e\x79\xf9\x39\xf9\xad\x86\x01\x76\x87\xca\x43\x2d\xb2\x4a\x1c\xbc\x71\x07\x0d\x0d\xe7\xb6\x01\x58\xfa\x60\x6d\xb4\xa1\x47\x11\x04\xd4\xbf\xce\x9d\x9a\xbf\x9f\xaa\x51\x04\x1a\x4b\x7a\x16\x91\x7d\x09\x8f\xf1\xe5\xac\x8d\x22\x13\x23\x62\x0b\xdf\x93\x2d\x14\x6a\x22\x48\x48\x23\x12\x42\xec\xba\x3a\xb7\x9f\xbe\xee\x5a\x81\xfe\xd9\xd5\x94\x68\x44\x78\x82\xeb\xfc\xf6\x24\xaf\xab\xf2\xe0\xe9\x86\x93\x95\x2c\x22\x22\x46\xee\xb2\xb7\xed\xb0\x2a\x2e\x93\x41\x94\x46\x18\xa0\xa1\x29\x1b\x88\x03\x2a\x59\x63\x83\xc4\x7f\x1b\x65\x54\xd9\x22\xcf\x2a\x7b\xf6\x2c\xe8\xd0\x1f\x8c\xad\x1a\xaf\x2d\xb5\xaf\xae\xe6\xca\xda\x34\x62\x44\xb8\xfe\xf0\x66\x79\x3f\x32\x54\xa5\x11\xe3\x42\xf6\x3d\xed\x7f\x9c\xca\xbe\xdf\x30\x1f\xee\x47\x9c\x29\x9a\xf4\xe6\x40\xbb\xa9\xcf\x12\x8d\x62\x62\x55\xc7\xfd\xae\x19\x4d\x7e\x74\x92\x52\xee\x35\x24\x8b\xd3\x71\xba\x9c\x45\x09\xc4\xb2\x33\x64\xbf\x2e\xab\x3b\x78\x5f\x09\x1f\x5a\x45\x29\x09\x10\xb8\x77\x04\x78\xc5\xb6\x82\x3f\x20\x63\x88\xc3\x01\xb4\xf9\xe6\xdc\x1d\x94\x46\x32\xb1\x24\xc4\x1a\x2b\x00\xbb\x6c\x1a\x6c\x44\x52\x24\xda\x05\x1b\xdf\xa0\x08\x36\x3f\xba\x19\x28\xb5\x2d\x92\x7d\x83\x02\xea\xac\xb6\xeb\xec\x03\x54\x57\x43\x09\x6a\x37\x56\x85\x31\x02\x35\xf1\xe1\xbb\x27\x3a\x15\xaf\xa7\x91\x12\xcc\x3a\x8f\xb7\x49\x0e\xd6\x2b\x46\x05\x0d\x1a\xe9\x34\x4c\x58\x37\xc0\x15\x3e\x16\x8d\x95\x9f\x43\xa6\x43\x3f\x52\x58\x9c\xd8\x4b\xfb\xba\xa3\x84\x24\x88\x6a\x8a\xb9\xa3\x11\x04\x91\x17\x52\x6e\xaa\x13\x60\x18\x35\xb9\x76\x60\x76\x7f\x73\x94\xd4\xd3\x61\xba\x58\xe1\x5e\x39\x5a\xb2\x48\x10\x25\x18\x8b\xac\x77\x7f\x8e\xcf\x46\x82\xc8\x4a\xfd\x1d\x32\xdc\x05\x31\x79\x42\xb5\xae\xdf\xfc\x00\xae\xb0\x0d\x75\xcc\x85\x02\x2f\xdb\x7b\x16\xaa\x92\x20\x85\x34\xee\x30\xf2\x03\x59\x28\x4a\x02\x13\x23\x2f\x63\x97\x35\xc8\x10\xff\xc2\xc4\xee\x97\xb8\x42\x4a\xc2\x20\xa2\x8e\x67\xe0\x44\x33\xb0\x9c\x35\x9d\x49\x24\x14\x81\xb4\x46\xa8\x16\x99\xdd\x86\x34\x83\xad\xea\x57\xdc\x51\x4a\xa2\x20\x40\x77\xa1\xd7\xac\x69\x32\xa8\xc7\x78\x09\x4a\xa2\x90\x62\x6b\x3e\xc3\x0e\x3b\x9a\x5d\x39\xcf\xe2\x75\xa1\xbb\x15\x8b\x10\x0a\x69\xaf\xb7\xd1\x09\x03\x82\x3e\x33\x85\xa7\x84\x30\xab\x66\x8e\x75\x6c\xdc\x44\xfc\xe6\x42\x18\x35\x88\x0c\x5b\x5c\x2d\xbb\x3f\x69\xdb\xe1\x6e\xd3\xb8\xbf\x97\x99\x77\x55\x18\x0a\x0f\x9d\x6d\x12\x84\x01\x43\x17\x88\x02\xde\x97\x2f\x59\x8f\x05\x3c\x1b\x66\x65\x64\x85\xd6\xa7\xfa\x82\xe6\x07\x25\x31\x67\xb8\x51\xe1\xd3\xb6\xc5\xde\xd9\x6e\x4b\x3b\xd2\x42\x22\xba\xbd\xe9\xea\x54\x4d\x21\x55\x94\x24\x2a\xc6\x5c\x06\xcd\x53\x41\xbb\x36\xd5\xc5\x26\xb6\xfb\x54\x9a\x02\x56\xc1\x54\x59\xd4\xa8\x3b\x68\xdf\x3e\xcc\x36\x3b\xea\x1a\x25\xa9\xa4\x68\x90\xf4\xb8\x7d\xb8\xd9\xed\x7d\xf2\x4e\x44\x62\xcd\xd7\x9f\xa1\x79\x6a\xef\x5b\xff\x77\x8d\xb8\x5f\x84\xb4\x24\x49\x32\x8c\x57\x88\x10\xf6\xa5\x31\x79\xf9\xde\xfd\x4d\x52\xaf\x5b\x60\x6d\xf3\xda\xe7\x32\x14\x1b\x6f\x87\xf0\x44\x4e\x02\xe2\x8e\xd4\x3c\x31\xed\x1b\xdf\x19\xa9\x63\xb0\xf2\x4c\x35\x54\xcd\x39\x1c\x8d\x12\x15\x84\x78\xee\x6f\xa2\x3a\x69\x31\xba\x5a\x2d\x01\xd9\x30\x59\xed\xc0\x7c\x56\x73\x52\xcf\x69\xbe\x50\xa2\x8d\x8c\xed\x84\x6d\xb7\x56\x91\x7b\xa3\x4e\x77\x18\x8c\x42\x0d\xe9\x9f\x65\xd5\xbc\xe4\xe8\x1c\x39\xf8\x2a\x43\x84\xd7\x2f\x5a\xe4\xf9\x15\x34\x9b\x55\xf7\xeb\x0d\x0d\x70\x0e\x78\xbb\x59\xdb\xf3\xdc\x3a\x79\x87\x4d\xf7\xc6\x18\x63\x8b\xc9\x1a\xf4\x49\x35\xf5\x8b\xa8\xce\x65\x37\xed\x50\x1a\x50\x8e\x1d\xf9\x36\x8d\xcf\x91\x13\x30\x5e\x4e\x69\xc0\x0d\x3e\xf4\xfa\x45\x90\x55\xa9\xea\xe9\xe1\xd4\x12\x7b\xef\xdf\xb1\xf7\xe2\x73\x34\x1a\xa4\x80\x70\xdc\xbd\x6f\xb8\xdc\xc1\xfb\x56\x68\xfd\xeb\x84\xd5\x9d\x20\x04\x85\x27\x1e\x94\x09\xdc\x91\x28\xa1\x34\xf0\xeb\xa4\xf7\xe8\x7a\x14\x0d\xdc\x66\x83\x0b\x88\x44\xc2\x5d\xac\x75\xd5\xa8\xeb\xb2\x7a\xb5\x80\x53\x77\x98\x28\x4e\x7b\xcb\xd8\xf5\xfa\x76\x86\x66\x4c\x29\x0d\x13\x8c\x3e\x0a\x78\xff\xfd\xa4\xcb\x1a\xdd\x0c\xe7\xe4\xbc\xbe\x7c\xbf\x28\x8b\x0c\xde\x0c\xd7\x29\xbd\xcd\xba\xc9\x40\x19\xb7\x46\x98\x4f\xdb\x55\x53\x86\xeb\xdd\xf7\xee\x40\x6c\xd5\x80\xd6\x1f\xd6\xf5\x37\x13\xf9\x58\xe6\xd0\xb5\x54\xfd\x78\x1e\x30\x84\xd6\xae\x77\xd7\x79\x59\x56\x13\x56\xaa\x1f\x14\x32\xe4\xac\x9f\x8a\x76\x2d\xef\x3e\x2a\x85\x33\x60\x6c\xb2\x4a\x54\x3e\xdc\x2b\xbb\x9b\x15\x33\x9d\xb8\x17\x73\xfd\xb8\x8c\xa3\xb0\x7d\x29\x27\xd1\x20\x8d\x45\x8c\x30\x53\xa1\xf5\xa6\x40\x0f\xe1\x9b\xa9\x7c\x2b\xa5\x09\xa1\xdd\x99\xde\xa0\x68\x7a\x88\x1b\xa5\x09\x95\x58\xd7\xf7\xcd\xe2\x6d\xf6\xd1\x1d\xe2\x14\xa5\x3e\x96\x65\x51\x43\xd1\x78\x89\x47\x7f\x54\xc5\xba\x67\x8f\x7e\xcf\xea\xa6\x83\x58\xcf\x57\x3d\x68\x02\x8a\x76\xf1\xd7\x6d\x1b\x62\x5d\x61\x9c\x35\x59\xa4\xff\x19\x3a\xfb\x1c\x4a\xd3\x28\xc5\x90\x78\xb9\xdb\x7e\x95\xd9\xd0\x94\x24\xb1\x7b\x7d\xaf\xb3\x1c\x6e\x7c\x3c\x34\x7e\x6b\x52\xc3\xb1\x06\xb0\xb7\x5a\x4f\x17\xe4\xe6\x29\x95\x09\x49\xb8\xf7\xfe\xfa\x13\x44\x65\xb7\xc7\xee\xc1\x48\xa5\x50\x2d\x0d\x0b\x24\x9d\x8c\x4c\x1b\xb3\x5f\x6c\x5b\x5e\x7a\xfb\x46\xb7\xab\x3b\xbd\x8e\x6d\xed\x38\x1f\x2b\xa7\x74\x17\xa0\x02\xad\x99\xdf\x0c\x67\xec\xd7\xfe\xff\xfe\xf7\x4c\xc5\x93\x52\xc5\x00\x89\xd5\xb7\x59\x51\x76\xd7\xc1\x2c\x69\x19\x6f\x94\xbd\x49\xf7\xa6\xeb\xed\x51\xaa\x54\x24\xbd\x90\x77\x9e\x5f\x65\xba\xbe\xfa\x5c\xe8\x53\x31\x71\x46\xa0\x54\x87\xe0\x79\x78\x4b\x81\x11\x8f\xd7\x70\xec\x1e\x9e\x4e\x59\x6c\x95\x95\x2c\x18\x73\xe8\x5a\x40\x29\x44\x04\xf5\xe0\xd1\xa9\x34\xcf\x9e\x3b\x9b\xc0\x09\x5c\x93\x52\x50\x96\x5c\x60\x39\xc6\xd6\xb4\xa5\xbf\x64\x16\x04\x5c\xf2\x2e\x4c\x07\x5b\x67\xbc\x2e\xab\xa5\x98\x08\x6b\x53\x16\x84\x21\xa1\x1d\xe2\x00\xf6\xaf\x9f\x6a\x8f\x76\x2c\x7b\x0d\x45\x89\xe6\xeb\x93\x06\x13\x65\x21\x0f\xbc\xe6\x67\xfb\x2b\x87\xf5\x39\x16\x11\x25\xd5\x80\x02\xd3\x39\x82\xd7\xdd\x08\xc3\xb0\x81\x71\x3c\x4d\x68\x29\x5e\x65\x97\x32\x92\x5a\xe7\x88\x67\x68\xee\x4f\x37\x99\x28\x50\xf4\x49\x8d\xdb\x18\x8c\x45\x02\x51\x7e\x3d\xfb\x6f\x2a\x51\x32\xbe\x6c\x46\x84\xb7\xc0\xf5\x5e\x18\xc3\xde\x87\x1f\xc5\x03\x6c\x52\x66\xaa\x5c\x96\x87\x63\x0e\x0d\x5c\x75\xc7\xd2\x10\x8b\x50\x59\x31\x94\xba\xb9\x2d\xbb\xda\x32\xe3\x41\x8c\xab\x24\xd6\x94\x1f\xaa\xb2\x34\xf7\xe6\xe9\x98\x67\x05\xa0\x45\xe3\x2f\x0a\xab\xbf\x92\xed\x76\x5f\x12\x53\x83\x61\xe4\x1f\xd7\xb7\x83\x0a\x07\x4b\x52\xdb\x60\x16\x5a\x3f\x96\x39\x0c\xad\xc3\x67\x97\x32\x96\x46\x14\xe9\xec\x59\x61\x3a\x72\xba\x8f\x79\x59\x4a\x23\xd5\xbb\xf9\x5f\x0d\x68\x74\xc3\x45\x8b\xa5\xd2\x62\xec\xdb\xf7\xfb\x0e\xde\xbb\x4f\xeb\x48\x0a\xef\x00\x9d\x5b\xc2\x87\xc7\x82\xfb\x21\x46\x62\xbb\xf9\x54\x1c\x85\x7a\xdd\x6b\xd1\x88\xfd\x73\x55\x9e\x8e\xb5\xab\x33\x0d\xf1\x7f\x94\x89\x50\xe0\x2a\x7a\xb3\xd8\xee\x76\x8f\x9b\xc5\x4d\x18\x11\x7f\x2a\x41\x92\x34\xfd\x9f\xff\xf7\x3f\x9b\xa2\x3e\x55\xd0\xc9\xa5\x50\x26\x28\xc5\xaa\xca\xbb\x83\x17\xf9\x09\x26\x98\x01\x67\xce\xe4\xfc\xd5\x3e\xe7\xbc\x4c\xba\xe1\x09\xd8\x6a\x70\x7b\x61\x78\x57\xc7\xaf\x3e\x13\x8a\x07\x18\x92\x66\x1f\xa3\x06\x01\x93\x91\x6d\x6c\x39\x2f\x01\xd7\x8b\x19\x10\xe7\x29\x93\x44\x63\x7b\xa5\x80\xf7\xb1\x13\xe1\x7c\xb2\xf4\x65\xb8\xc0\xa4\x62\x94\x3a\x8f\x7d\xdb\x9f\x6c\xc3\xc0\x11\x9b\x90\x32\x95\x58\xc3\xae\xda\x46\xc2\xff\x85\xdd\xc7\xe4\x0d\x57\x42\x63\x18\x7a\xaa\x31\x3c\xfc\xba\xc4\xc8\x74\x18\xe2\x93\xbc\x29\x9b\x06\xaa\x4f\xd4\x19\x71\x64\xb1\x51\x73\x94\xfa\xf1\x22\x40\x13\x45\xe4\x81\x8a\xba\x46\x83\xab\xf3\xbc\x99\x41\x64\xd2\x21\xd7\x68\x2d\xaa\x36\xb4\xaf\x77\xe5\x30\xc3\x65\x40\x68\x68\x39\x36\x87\xac\x78\x74\xce\xc0\xab\xb2\x18\x12\x0e\x29\x03\x63\xcd\xab\x6d\x82\x52\x03\xfc\x35\xac\x2c\x65\xa6\xcd\xfa\x6d\x86\xa3\xf2\x93\x86\x1f\x65\x33\xd5\xe6\xa5\xcc\xb0\x04\x2b\x45\x0b\xa5\x00\xea\xba\xac\x3e\x7f\x56\xe2\x78\x84\x2a\x8e\x7c\x58\xc9\xc3\x20\x4c\xdc\xfe\x70\x7d\x82\xbc\xde\x74\x9b\x31\x0f\x99\xc4\x00\x68\xaf\xb3\x5a\x65\xc7\x1c\x7e\x60\x31\xf6\x62\xb9\x91\x87\x82\xa1\x90\xe8\xe2\xb1\x5b\xf5\x79\x14\x11\xac\x64\x2d\x4b\x55\xf6\x08\xb3\x4b\x6f\x3f\x8f\x0c\x41\x7b\x3c\xf8\x00\xd5\xbe\xfd\xdf\x84\x2b\x3d\x5c\x50\x64\x9f\x5c\x01\x49\xad\x09\xed\xd5\x7f\x9a\xfd\x30\x0b\xe1\x44\x31\x65\x89\x8b\x0d\x38\xea\x67\x6f\x45\x41\x39\xd1\xb1\x05\x30\x88\x46\x48\x51\xc3\xaa\x7c\x2f\xf2\x52\xe8\xa7\xca\x07\x95\x9c\xf2\x90\x7b\xb3\x44\xd1\x88\x4b\xbe\x20\x94\x53\x61\xb8\xe8\x9a\x0d\xc7\xe9\x3b\xec\x47\x01\x45\x8e\xc2\x73\x25\x9c\x62\x0a\x82\x7d\xca\x62\x28\x0c\x38\x39\x33\xd3\x16\xa6\x5b\xa1\x4e\xc0\xe4\x84\x3c\xb5\x3a\x0f\x98\x45\xfc\x0e\x9f\x93\xd5\x80\x73\x13\x20\x74\x6d\xf5\xb8\xf8\xdd\xa7\xba\x3c\xe1\x96\xa0\xe7\x37\xc6\xf1\x66\xc6\x93\x94\xab\xa0\x4b\x60\xa1\xba\x79\x0b\x27\xdf\x9a\x48\x6a\xf1\x26\x1f\x0e\xe1\xe3\xb5\x82\xa7\x97\x97\x0a\xc6\x5c\xa2\xeb\xfa\x15\x9b\xd5\xd9\x10\x25\xbd\xe0\xf0\x52\x54\xda\xaf\xfa\x3c\x35\x56\xe7\xca\xd7\x65\xcf\x0d\x0c\x29\x17\x91\xc1\xa2\xca\xd1\xe6\xa6\x57\xa2\x78\xf5\x1f\x17\x24\xd6\x56\x02\xb3\xcd\x99\xec\xee\x39\x8e\x5f\xb9\x24\x16\x76\x35\x8f\x4e\x99\x89\x8b\xb9\x8c\x2d\xc3\xc7\x2b\xe7\x38\xb3\xd8\xf1\x2f\x92\x71\x4a\xc6\x20\x7a\x3d\x44\xd1\x53\x2e\x8d\x46\x06\x0d\xb4\xb9\xc3\xd5\xa9\x9a\x87\xd6\x51\xae\x42\xe1\xe1\x9e\x77\xf0\xd1\xeb\xb7\x5c\x95\x1d\x1e\x81\xab\x94\x21\xdc\x7f\x7b\xba\xbb\xde\xf5\x7f\xe4\x90\xda\x3d\xe5\xfa\xfc\xa6\x29\x21\x31\x2e\xaa\x9d\x56\xf0\x30\x14\x73\xab\xe3\x24\x9e\x9e\x7c\xde\x58\x37\x3c\x74\x24\xb3\xce\x04\xf3\xd7\x0f\x89\xc2\x36\x73\x1b\x78\x8b\xaa\xde\x14\xc6\x47\xba\xdc\x44\x20\xdd\xba\xeb\x62\xbc\x0a\x14\x64\x6f\xa0\x07\x90\x1c\x6e\x58\x9a\x86\x8e\xbe\xb3\x73\x5a\xf2\x3b\x10\x87\x9b\xb3\x42\x2e\x37\x49\x12\x39\x63\xe6\x9f\xed\xa4\xfd\xb4\xfc\x89\x39\xbf\xf1\xaf\x6a\x8b\x36\xfa\xe3\xe3\xa7\x6e\x52\x83\x10\x47\x65\xbb\x10\x3d\x2d\x96\x72\xd3\xa6\x0e\x76\x93\xeb\x16\x71\xfb\xb0\xdb\xec\xb1\x9c\x24\x1a\xdc\x18\x2e\x49\xe7\x99\x83\x33\x7a\x70\x4c\xd0\xbe\x47\x80\x2d\xa8\x3a\x9c\xf5\x07\xff\x8a\x4a\xf3\x7f\xfd\xd7\x7e\x79\x1c\x84\x5a\xf6\x66\x7c\xd8\xe2\x1f\xb6\xac\xe2\x80\x29\x54\xf9\x7a\xb3\xf4\xf9\x9e\x54\x37\x0b\x62\xf2\x1f\x92\xd6\x8a\x5c\xe6\x42\xbd\xb6\x69\xf4\xfa\x71\x19\x45\x64\xfc\xe4\xe2\x90\x1b\x6c\xed\x1d\x7b\xb4\xc7\xdf\x9c\x4a\x96\xaf\xe1\xc6\x61\x1c\x21\x67\xc2\x52\x68\xa7\x7a\xbc\x7e\x90\x00\x0c\xd5\x5f\x44\xa1\x65\x05\xe2\xb5\x3b\x20\xad\x31\x7b\xef\x68\x3f\x4d\x7e\x2f\xa5\x97\xc3\x69\x10\x47\x21\x04\x9e\x9b\x1d\x2c\xf2\x0e\x79\x4d\x63\x22\x0d\x71\x78\x9a\xb5\x45\x7c\x9e\xf5\x91\x63\x62\x18\xc6\x79\xdf\x45\xfd\x72\x6f\x56\x3e\x90\x8f\x29\xd7\x98\x1c\xbf\x66\x79\x6e\x27\xcb\x75\x59\x7d\x43\x99\x79\x3f\x84\x85\xb6\x10\x86\x37\xdf\x93\xbb\x67\xbe\x82\xc5\x46\x58\xa1\x83\xaa\x02\xe5\xec\x08\x9c\x9f\xed\x64\x64\xa2\xac\xbd\x8c\x2d\x91\xae\x9f\x9f\xcf\x9d\xd9\x69\xcc\x54\x88\x7c\x08\xd1\x34\x70\x38\x36\x4e\xee\xf6\xde\x2c\xaa\x26\x53\xf9\x74\x34\x8f\x04\x62\x3b\xa0\x79\xf9\x2e\x0a\x9d\xc3\x66\x20\x86\x32\x5e\x79\x63\x4e\x22\xf0\x69\xdb\x8b\xa8\xe0\xc5\x09\xb7\xb4\x37\xff\xea\x73\x82\x66\x6e\x87\x33\xbc\x47\x0e\xbb\x5e\x2f\x0a\xed\x39\xfe\xf6\x96\x21\xa6\xfc\x97\xd6\x96\xfe\x6c\x1c\x90\x97\x8a\x56\x0e\xf7\xc6\x0c\xc3\xf1\x98\x0b\x40\xa5\x46\x0b\xd6\x88\xf6\x1e\x91\xe5\x9f\x45\x1c\x9a\xc4\x35\xaf\xda\x80\x60\xcf\x46\x00\xa5\x38\xe6\xca\x22\x31\xd6\x43\x6e\x24\x8d\x93\x28\xc0\xba\x2d\xe6\xd3\xe5\xc9\xb9\x68\x0c\x82\x91\x38\x61\x96\xac\xdb\xce\xa1\xe6\xe5\x11\xf2\x6c\x42\xd0\xa7\x71\xc2\xb5\x33\x31\x6d\x5f\x52\xbf\x1e\x8e\xfc\xd8\x68\x9c\x08\x89\xf7\xea\xfb\x9f\xe3\x0b\x10\x0a\x51\x58\xb6\xba\xb4\x7d\x29\xdf\x27\xf7\x38\xd1\xaa\x4f\x49\xdb\x48\x03\x01\xd9\x93\x42\x69\x9c\x86\x41\x68\xbc\xa0\xb1\x95\xbf\x77\x7b\xdb\xd7\xeb\x4b\x1a\x0a\x04\xbe\x3d\xdc\x3f\x3c\x8c\xae\x2b\x35\x01\xf6\xc2\x5d\x45\x7a\x04\xc9\x8b\x46\x62\x8c\xfd\x7f\x7d\x9d\x7e\x8c\x86\xfe\xc5\xac\xd6\x5d\x8c\x10\x29\x8a\xbc\x6f\x57\xf7\xdf\xd6\xbf\xee\xa6\xc5\x42\x0a\xcc\xe9\xe0\x0d\x1e\xa0\x5a\x77\xfd\xc0\x58\x28\x83\xcb\xe5\xc1\x9a\x46\xd8\x4a\x5f\x36\xcd\xd5\x62\x49\xd2\xc8\x39\x80\x0f\x21\xcc\x34\x96\x2c\xc4\x2e\xcf\x4d\xf6\x9f\x13\x7c\x38\x59\xbc\x01\xef\x7d\x7c\xd9\x4a\x00\xda\x71\x3e\xbc\x7c\x7c\x87\x69\x59\x25\x56\x5a\x24\x56\x8b\x12\x74\x8d\x3d\xd0\xeb\x81\x32\x8e\xff\x46\xcd\x64\x67\x63\x82\x2e\x7e\xf7\x7a\xda\x29\x8f\x21\xb2\x81\x61\xa6\x4a\x44\x87\x76\x64\xf2\x69\xdc\x17\x1b\x66\xd0\x86\x66\x5e\xa0\xf8\xeb\xa9\x62\x12\x83\xfa\x3e\xfb\x1a\x0d\xca\xd5\x1c\x59\xd3\x0f\x35\x56\x94\xc2\x6e\x99\x8b\xac\x9a\x11\xc1\xa1\x49\xc0\x00\x61\x85\x8d\xa8\x9e\xa1\x19\x8a\x31\x4e\xc6\xa5\x96\xfe\xa5\xcb\x0e\xe8\x98\x84\x01\x41\xd1\x04\xed\x2e\x64\x64\x66\x47\x93\x90\x02\x36\xaa\x3a\x25\x7e\x5b\x24\x6b\x73\x98\xa1\x26\xf8\x5f\x44\x41\xb8\x93\x46\xcc\xce\xaa\x63\x2e\x3e\xbf\x89\xc3\x85\xbc\x2b\x89\x20\x50\x69\x47\xbd\x73\xe2\x6e\xff\x1d\x53\x7a\xc6\x27\x26\xa1\xc4\x25\xe6\xc7\xfa\xae\xa7\x73\xd1\x84\x10\x4b\xfc\xcf\x54\x79\x56\xe4\x9b\x9e\x81\x31\xec\x4a\x63\x46\xdd\xde\xc8\xde\x56\xca\x8f\x88\x13\xb4\xc4\xea\x8a\x6d\x33\xcb\xf2\xf0\x5f\xbf\xb2\x24\x2c\x48\xb0\xe2\xd8\xbc\x64\x95\x5e\x9d\xa0\xc7\xfb\xd3\x84\xd1\x10\xfb\xa1\xeb\xdd\xf7\xfd\xee\x7e\xff\x73\xbd\xf1\x47\x38\xa7\x28\x36\x67\xca\xea\xf5\xd1\x46\x90\xf3\xc1\x48\xc2\x8d\x24\x4e\xe0\x0c\x75\xb2\xec\xbe\x38\x2a\x98\xcf\xf9\xfc\xba\x4f\xc7\x3a\x8d\x55\x27\xe4\xae\x60\x59\x81\xb6\xed\x0c\xd7\xb3\x9a\xc5\x60\x24\x82\x33\x2c\xa8\x2c\xef\xef\xae\x37\xdf\x3a\x01\x26\x7f\xf5\x32\xb4\x36\x21\xed\xf6\xda\x46\xab\xa7\x0a\x3a\x07\x2f\x9a\x48\x20\x28\x41\x70\x53\x3e\x5f\x65\xfa\xfe\x08\xc5\x17\x0d\xf3\x0b\x19\xf2\xf4\xb8\x3b\x35\xa4\x31\xce\x84\x47\x27\xcd\x30\xfa\xb1\x69\x48\x38\x16\xd2\xb0\xa6\xbf\x55\x2f\xd0\x3d\xde\x34\x14\x21\x8a\xa7\xe0\x8b\xbd\x82\x43\xf9\x55\x1f\xc9\x7f\x46\x07\x26\xec\x79\xe8\x03\x7e\xd7\x54\x37\xbf\xff\x4c\x14\x85\xd8\x37\x5a\x96\x79\x59\x0d\x85\xb0\xc7\x13\x32\x8d\x52\x2e\x98\xab\xf9\x8d\x8b\x7a\x29\x09\x62\xe6\xe5\x08\xe0\x0d\xf2\x65\xd6\x64\xff\x85\xc2\x01\x37\xc6\x5f\x47\x85\x44\x8d\x22\x8c\xb0\xd6\x8b\xd1\x2e\x34\x21\x93\xd2\x94\x9a\x08\x49\x30\x59\x1b\x74\x6c\x4f\x47\xa8\x6e\xa1\xb9\x60\xd6\x4a\x53\x16\x84\xa8\x97\xf5\x54\xe4\xd6\xfb\x6c\x33\xda\x00\xdb\xe3\x32\xf6\x4d\x9c\x15\x1c\xcf\xae\x8d\x05\xda\x5a\xb3\x3a\x67\x90\x3e\x8a\xad\xa7\x23\xa9\x48\x7b\x40\xea\xc4\x79\x63\x3e\x18\x4a\x19\xeb\x38\x75\x3b\x34\x38\x9e\x55\x5a\xa7\x29\x93\x51\x08\x9d\x62\xc7\xa3\xc5\x14\xf9\xd5\xf0\xcb\x9a\x5c\x1a\x87\x09\x62\xf7\x6f\x45\xf5\x3a\xf4\xaa\x6c\x8f\x68\xdd\x39\x2f\xdb\x2d\xc5\x33\xea\x69\x9a\x50\xa1\xff\xbf\xec\x0a\x9d\x3d\xc7\x24\x91\x98\xd6\x59\xd8\x6e\xf7\xb5\x42\x08\x5b\x41\x7c\x76\x65\xcb\xf6\x2b\xa7\x25\xd9\x3e\x49\x4d\x13\x19\x78\x3b\x9a\xad\x85\x98\xa2\xd4\x79\xfb\x29\xeb\x46\x65\xb2\x0b\xe2\xc9\x34\x4d\x14\x0b\x9d\x7e\xfd\x33\x2c\xf3\xb2\x9e\x68\x9e\xd2\x54\x84\x26\xe8\x33\xc6\xed\xc9\x2b\x78\xd1\x54\x90\x18\xcd\x4b\x64\xbb\x84\xd9\xb0\xee\x2d\xcb\xf3\xa9\x99\x36\x4d\x05\x07\x94\x9d\xda\x1f\x7d\xea\x30\xa6\x74\x8c\xef\x8a\x10\x96\x54\x07\xed\xe3\x80\xd3\xc1\x33\x40\xa2\xfd\xf4\xb4\x32\x4d\x2d\x71\xf6\x6d\x79\x6a\x2c\x45\xd0\x1f\x82\x88\xc8\x3e\x61\x9e\xf2\x82\x68\x2a\x59\xc2\x2d\x7f\xa0\xcb\x9a\xbd\xe4\xae\x4f\x39\x53\xc9\x69\x62\x29\xe3\x6f\xe5\x2b\x7c\xab\xc4\xa5\x3c\x33\x55\x21\x00\xe9\xac\x8c\x26\x5a\x7f\x34\x55\x44\x0f\x6c\x64\xda\x95\x02\x17\xb6\x21\x65\x7f\x58\x62\x4f\x55\x12\x07\xca\x57\xa4\x5e\x44\x56\xdc\x80\x7e\xbe\x20\x4f\x43\x53\x25\xb8\x0d\x75\xc4\x73\xf7\x68\x94\x56\xc2\x96\x89\x6e\x4a\xa1\xff\xf8\x05\xc1\x94\xa6\x3a\xe4\xc8\x10\xbe\x72\xc4\xf3\x79\x89\x34\xbf\x7a\xa7\x9a\x68\x74\x5d\x45\xef\xc5\xf6\x05\x2c\x4f\x3e\x72\x4c\x75\x22\xa9\x2d\x11\x3b\x0e\xe1\xed\x29\x6f\xb2\x3a\x7b\xee\x06\x28\x82\x94\x88\x43\xd6\xd7\xad\x53\x90\xf6\x8f\xff\xae\xcb\x62\x29\x26\xba\xfa\x6e\x8c\x89\x43\xac\x1a\xe6\xa2\x6e\xee\x2b\xa1\x5c\x2b\xc5\x9f\xc2\xa4\xd6\x3e\xc5\xa9\x82\x5e\xa0\x69\xd3\xd4\x28\x83\x50\x39\x9b\x01\xb9\xf7\xea\x41\x7c\x5e\x97\x95\x97\x98\x9a\xbf\xd1\x48\xfc\xf2\xe2\xeb\x98\xbb\xf9\xa9\x22\x82\x90\xa2\xab\x44\x7b\x69\xbd\xfb\xe3\x20\x2c\x11\x01\x8d\x50\xa8\xdf\xb2\x7a\x7a\x44\x8e\x7f\x64\x22\x92\xb1\x27\x0f\xd9\x75\x6a\xa8\xb9\x33\xbe\x12\x41\x48\x18\x41\xcf\x68\x81\xdf\xe6\xab\x08\x7e\xb4\x4c\xbc\xe7\xe2\x1d\xbc\x5f\x3b\xdb\x72\x57\x0e\x75\xd9\xb9\x1b\x4a\x05\x73\xf4\xde\x06\x3b\x99\x16\x55\xdd\x5d\x23\x95\x61\x20\x07\xee\x35\x4e\x86\xb6\xd0\x3f\x6f\xbe\x5e\x82\x05\x0b\x08\x58\x64\x7a\x63\xb6\x78\xb1\x6e\x1b\x1c\x3e\x61\xc1\xc0\xda\x04\xee\xbd\x6c\x65\x55\x97\xc5\xf4\xc7\x8d\x4f\xcc\x83\x98\x3a\xc4\x3a\x9a\x4a\x0f\x2d\x02\xa8\xe0\x24\xf0\x9b\xc6\xc1\x02\x06\xab\xf1\x37\x72\x9d\x58\xa5\x26\x31\x11\xad\xa3\x82\x03\x43\x3d\xfa\x93\xe3\x0e\xd7\xaf\x96\xf2\x38\x33\x35\x45\x0c\x3a\xb4\xf4\x8f\xd7\x6c\xa1\x6d\xa9\xf0\x82\x08\x35\x15\x49\x48\x85\x57\x79\xff\x5c\xf7\xd7\x7c\x61\xb4\x22\xb8\xca\xbd\x83\xdc\x66\x5d\x44\x2a\x12\x90\xcc\x2d\xcb\xa2\x7a\xde\x87\xfb\x0c\x6d\x05\xfc\x51\x93\x70\xee\x59\x6d\x6d\x54\xa7\x47\xbd\x77\x91\x06\x1a\x7b\x74\x6d\x04\x3d\xdb\x28\x10\x69\x1a\x26\xb6\x8e\xf0\x73\x79\xbf\xf1\x01\x63\xfb\x67\x5c\xca\xed\x4a\x37\x51\x31\x1c\x6c\x4a\x22\x15\xa1\xd7\x0b\x72\xa1\x9a\x11\xa7\xbc\x79\x10\x55\x93\x0d\x7b\x51\x22\x95\xd2\x37\xdd\x1d\x5e\xce\x36\xb8\xaf\x2a\xa1\x5e\x3b\x3c\x80\x10\x01\xc4\x66\xe0\x0b\x65\x2b\x3b\xd5\x30\x85\x14\x22\x4d\x3c\x5f\x66\x53\x98\xf2\xba\xac\x56\x59\x7d\x3c\x35\xb0\x28\xb4\x93\xdd\xbc\x28\x5a\x32\x79\x67\x24\x89\x10\x44\x8e\x8b\x14\x32\x91\xff\x04\xd1\xbf\x08\x32\xb1\x5a\x9c\x8f\x4f\xab\xc5\xcf\xfb\xc7\x9b\x55\x77\x40\x87\x88\x30\x75\x3e\x65\xe2\x03\x09\x92\x63\x1f\x44\x2a\x14\x37\x18\x19\x2e\x7e\x2c\x36\x37\x8b\xab\x9b\xf5\xfe\xfa\xfe\xe9\x6e\xb5\x7e\xdc\x6f\x9f\x1e\x1e\x6e\x3c\x73\x40\x28\x15\x87\xbc\xef\x98\xae\xca\x0e\x5b\x2e\x74\x08\xf6\xf9\x67\x6f\x30\x14\xbd\xbf\xb8\xc6\x0b\x4d\x22\xaa\xba\x5a\xb6\xd5\xe7\x9a\x5c\x97\xe6\x2e\x6b\xce\x0e\xf0\x20\xea\xfa\xea\xf3\xb7\x39\xe4\xab\x00\x9e\xa2\xd0\xc3\x5b\x06\xef\x9c\xfb\x4b\x02\xb0\x1c\x31\x0b\xea\x9b\xeb\x4c\x08\x43\x62\x0c\x55\x10\xc5\x3e\x13\xb8\xd9\x61\x32\x00\xeb\x4e\x9d\xa9\x72\xb8\xc4\xcb\x30\x8a\x10\xd4\x27\x74\x57\x8d\x77\x2e\x77\x97\x02\xb1\x7e\x46\xca\x28\x60\x58\xcb\xb7\x6b\xcb\xfa\x71\x19\x05\xb3\x0c\x8b\xf3\x32\x8b\x44\x89\x53\xd7\x92\x74\x05\x07\x7f\x49\x44\x06\xa1\x05\x7d\xa1\xaf\xe4\xa8\xcf\x22\x29\x80\xb7\xeb\xc0\x3c\x75\xd3\xfe\x1e\xd8\x2c\xef\xa3\x42\xcf\x74\x93\x24\x63\x11\xb1\x9d\x36\x5b\xb6\x5c\x18\x93\xe5\xd9\x10\xcc\x3a\xba\x2c\x4e\x18\x2e\x0d\x78\x70\x7c\xa7\x65\x4c\xec\xaf\x5d\xc1\x9b\x05\x81\x3a\xb6\xcf\x5f\x51\x48\xa4\x32\xe6\xb6\xe0\x5b\x9f\x0e\x87\xb2\xf8\x0e\xd5\x78\x2d\x4b\xfe\x36\x1e\x2d\x14\xc2\xfb\xd6\x77\xab\xfd\xed\xe6\x6e\xb7\xb9\xfb\xe6\xef\x40\x92\x58\x61\x5d\xe4\x9e\x2f\xcb\xea\x2b\x2f\x18\x2a\x13\xc9\x51\x95\xef\xcf\x53\x95\xf9\x33\xa4\x49\x8c\x70\xb6\xb2\xc8\xad\x64\xdd\x37\x68\x76\x20\x0e\x23\xb8\x90\x14\x06\x90\x09\xd4\xbe\x75\x7b\x7b\x93\x7e\xf3\x17\x9a\x0c\x1c\x9b\xa9\x94\xa1\xc0\x8e\x9d\xb1\xa5\xdc\x76\x16\xde\x74\xb6\x0d\x54\x4a\x62\x2d\xae\x9c\x19\x5a\xf3\xb2\x59\xde\xff\x10\x55\x86\xfe\x0e\xf3\x41\xb4\x94\xd4\xca\x73\xfc\x52\xe1\x6b\x30\x1b\xa5\x90\xc8\xe7\x78\x44\x39\xc8\x5d\xfd\x92\x55\xcd\xec\xcb\x26\x15\x0b\x71\xad\xb9\xd8\xa3\xf7\xe3\xd2\x04\xf3\xb8\x1c\x9d\x91\x1f\xce\xfa\xf2\x52\x07\x89\xd7\x0b\xba\x11\xd5\xb3\xe3\xf3\x8c\x70\x73\x7e\xa4\xd2\x81\xf0\x99\x6b\x1b\x7a\x62\x33\xe8\xcb\x28\x43\x6a\x10\x89\xe3\xec\xb5\x13\xfc\x61\xb0\x95\x4a\x6d\x22\xaf\x91\xf6\x08\x06\x2c\x2c\x65\xfc\x71\x60\x06\xc1\x42\x87\xac\x68\x37\x09\x05\xf9\x97\x33\x05\x64\x84\xf3\xea\x7f\xff\x77\xf9\x15\x8e\x50\x82\x0e\x31\xce\xb7\x61\x97\x73\xf8\x9a\x3f\xa5\x49\xe3\x8e\x93\xda\xde\x13\x18\x18\x0a\xdb\x21\x2a\x60\x0a\xdb\xce\x56\x27\xc7\xbb\xba\x7f\x17\xf5\xcb\x60\x6e\x5c\xb0\x28\xfb\xe7\xbf\x06\x52\x8d\x54\x05\x2a\x55\xbc\x5b\x2c\xbd\xe9\xe6\x57\x4a\x41\x54\x05\xda\x0a\x8f\x3b\x5f\x17\xf1\x0c\x2b\x39\xbe\x8d\x2a\x4c\x65\x4a\x3c\xee\x2e\xcf\xbf\x55\x42\x39\x2e\xc0\xb8\x8e\xae\x42\x49\x2d\xbd\xe5\x45\xfc\x36\xbc\xae\x10\x0c\x8a\x04\xf4\x02\xaf\x4e\x89\xca\xf7\x7e\xdd\x33\x55\x91\x33\x67\x6f\x37\x20\x0f\x75\xc5\x7b\xe0\xac\x8f\xa8\x8a\x24\xef\xe2\xce\x4c\xbd\x16\x62\xda\x2f\x52\x24\xb4\xb1\x0d\x36\xcb\xac\xa8\x75\xfd\x5d\xbc\xc1\x37\x5c\xa2\xab\x87\x2a\xb3\x76\x11\xb3\x13\x5e\x91\x88\x60\xf7\xbc\xcd\xcf\x31\xc8\x59\x55\xe5\x71\x8b\xd4\xf7\x71\x57\x70\x5a\x4c\x53\x24\xd5\x88\x1b\xdd\xbd\x54\x00\xab\x1b\x17\xa0\x58\x3a\xa3\x1b\x42\xa3\x10\x1d\xbf\xae\xee\xff\xf0\x5d\x6d\xc5\x94\xf5\x33\x14\x5a\xaf\xad\x8d\xde\xf6\xd8\xe6\xa8\xfe\x38\x8f\x79\x27\x1a\x72\x70\x64\xef\xde\xf3\xc2\x0f\x12\xe9\x28\x30\xf2\x1a\xdb\xde\x29\x70\x76\x72\xaa\x38\x0a\x45\xcf\x23\xcf\xcb\x0a\xac\xae\xde\xfc\x8a\xa4\x62\x92\xe0\x06\x3d\x80\x48\xab\x98\xc5\x58\xc6\xb9\xbb\x5a\xec\xc2\x20\xfa\xab\xf8\x3b\xff\x69\x99\xf8\x86\xd9\x23\x08\xed\xe8\x37\x93\xa8\x51\xc5\x5a\x21\x9d\xdc\x69\x8a\x20\xb5\xe4\x77\xe8\x7e\x7b\x02\xa1\xdf\x2c\x11\x95\xb0\x82\xba\xc9\xc6\xd8\x24\x95\x80\x88\x9c\xe0\xed\xe9\x98\x5d\x65\x95\x9e\xa9\xf0\xfd\x15\xa2\xf6\xf8\x8e\x08\x91\xa6\x69\xaf\x38\x70\x38\x1d\x1c\xe9\x76\xae\x62\xaf\x84\xe2\x58\x83\xc8\x9c\x02\x67\x7d\xee\xb5\x4f\x95\xd0\x5c\x5a\x54\x60\x53\x41\x36\xb6\xc2\x6b\x8f\x26\x58\xb8\x57\x65\x56\xb4\xab\xf6\x58\x70\x8a\x2a\x29\xad\x36\xf3\xba\x40\xc9\x7f\xcb\x07\x9d\x7c\x83\x0a\x13\xac\x8d\xd9\xcd\x68\x95\x89\x43\x59\x5c\xb8\x1d\xfe\x13\x54\x22\xd9\xbf\xb2\xe9\xd3\x4f\xc8\x36\xc5\x99\xa9\x11\x55\x5a\x86\xcc\xf4\x7a\x3f\xbb\xb2\x9d\x85\x75\x23\x0e\xc7\x4b\x13\x50\x9b\x18\x11\xe7\xb2\x9d\xab\xe3\x15\xcf\x8d\x00\x65\x05\x2e\x0e\xe2\x63\x29\x8e\xce\xdc\x7b\x53\xbc\x41\x31\x00\x99\xeb\x80\x49\xec\xdf\x19\x04\xdb\xad\x20\xcf\xde\x2e\xd3\x76\xe7\x23\x59\x1d\xa4\xc6\xd8\xd8\xe6\x50\x56\xa2\xb7\x50\xa5\x3a\x50\x12\x3b\x09\xcb\xbb\x51\xf3\x51\x47\x34\xb1\x4c\xec\x2a\x93\x30\xc7\x91\xd7\x11\x95\x68\xe7\x54\x94\x73\xf1\x60\xff\xdd\x91\xb2\xa2\x74\xb8\x4f\x55\xe5\x07\x66\x9d\xe5\xa9\x59\x8a\xe3\xfc\x9d\xd3\x24\xd4\x58\x1c\xca\xfb\xba\x6f\xe2\x0f\x11\xab\x64\xfb\xfa\xa9\xda\xad\xa9\x9e\x6c\x8a\x9a\x06\x04\x51\x72\x05\x7c\xf8\xd2\xde\x78\x19\xd7\x34\x8e\xb9\xec\x48\x5d\x76\x1b\xf1\xea\x1d\xd3\x93\x29\xed\x21\x77\xde\x90\xaa\x8d\xa3\x2e\x5c\x35\x63\x0a\xe5\x83\xb6\x50\x1d\xa1\xb0\xd5\x80\x55\xf9\xde\xdd\x51\xc6\x25\x86\x08\x2e\x67\x9b\x74\xa9\x35\x8b\x19\xda\x8c\xbb\x9a\xb1\xaf\xe9\x9e\x83\xae\x35\x33\x04\x91\xfe\xd5\x79\x3c\xac\x99\x51\xb8\xc7\xf4\x82\xb8\x88\xf3\xea\xf9\x91\xed\xcd\x6f\xa7\xae\x1e\x02\x72\x2e\xcc\x1a\x1e\xa4\x58\x13\x13\x27\x9d\x35\x65\xf5\x5d\xd4\xdb\x46\xbc\x5e\x50\x0e\xa4\x9a\x53\x60\x6e\xf7\x6a\xf3\xae\x45\x56\xe9\xaa\x3c\xce\x98\xc9\x50\x1d\x87\x11\xb1\x32\x6a\x85\x1a\x17\x20\x74\x1c\x45\xca\x15\xbb\x9a\xde\x18\xc6\x1d\x4c\x88\xb5\x3e\xb4\x22\x3a\x1d\x78\x51\x27\x2c\x0a\xdb\xbf\xff\xe7\x24\xaa\x06\xaa\xbc\xb3\x8b\x1b\xec\xbf\x3a\x51\x11\xd5\xde\xf1\xf8\x57\x6b\xe1\x5f\xec\xff\xcd\xd3\x06\xfa\xa8\x55\xa7\x11\x4d\x83\xae\x92\x79\x7d\x52\xaf\x9f\xe5\xc9\x5f\x51\xca\x24\xc2\x5f\xb6\x2f\x59\xb3\xcc\xcb\x02\xea\xbc\xac\xf4\xe4\x37\xa7\xc2\x96\x4a\x45\x5d\x43\xd5\xac\xff\x13\xdb\x09\x1d\xdb\xe0\x28\x76\xa3\x24\x50\xaa\x7d\xa8\x5a\x0f\x5b\xa6\x4f\x7d\xd5\x4d\xab\x28\x44\x06\x41\xe6\x17\x99\x87\xaa\xd4\x27\x35\xa1\x5e\x69\x45\x14\x89\x06\xdc\xd8\x4e\xca\x89\x6a\x95\x70\xcc\x89\xff\xfc\x73\xbc\x5e\x28\x63\xa5\x35\x0f\xed\x56\x21\xf2\x9e\x4f\xa4\x0d\xb5\xbd\x97\x17\x51\x5f\x01\x14\x37\x59\xf1\xda\x15\x57\x46\x59\x91\x36\xce\x70\xfe\x61\xfd\xb8\x7f\xda\xae\x1f\xf7\xb7\x8b\x3f\xf6\x8b\x1f\x8b\xdd\xe2\x71\xbf\xbc\x7f\xba\xdb\x75\xa7\x4c\xa5\x67\xda\x2e\xa7\xa8\x08\x08\xd3\xd4\xe3\x83\xb7\xef\xe2\xcc\x5c\x84\x42\x28\x34\xca\x3f\xaf\x0f\x65\xd1\x5c\x57\x50\xfc\xf7\x73\x37\x35\x79\xa6\x10\x45\x29\x8e\xc2\x17\xd0\xff\xcd\x61\x85\x73\x51\x37\xaa\x3c\xc8\xb2\x3b\x40\x39\x0d\xbc\x11\xc8\xfc\xfa\x00\xed\x8a\x6a\x4b\xde\xe8\x8d\x38\xf9\x36\xc6\x50\x33\xf3\xe7\x0e\xd4\xcb\x0e\x01\xa9\x5d\x6d\x1e\x68\xc8\xb0\x84\xf4\x5c\x95\xef\x3f\x61\xda\x6f\x00\x1a\x4a\xd4\x68\x78\x5c\xec\xd6\xfb\xd5\xe2\xcf\x7d\xd8\x7d\x50\x05\xdc\x6d\x30\x36\xcd\xb6\x7c\x8e\xfe\x9d\x00\x26\x98\x71\x41\x8a\x2d\x3f\x6c\x1c\x9a\x1f\x93\xed\x29\xaa\x07\x98\xe0\xae\x81\xd0\x65\xf5\xa7\x21\xf7\x02\x18\xa4\xe8\x27\x2c\xea\x36\xc6\xf4\xb3\xeb\x2f\x6d\x52\x10\x07\x56\xca\xa1\x39\x49\x7f\x79\x31\x09\xa3\x68\x68\xd4\x3f\x78\x9a\xd3\x4f\x13\xc3\x1d\xf2\xd2\x75\x15\x51\x8b\x68\xce\xef\x82\x42\x2c\x18\x5e\x66\x51\x16\x3f\x6f\x2e\xd0\x64\x20\x09\x94\xaf\xb3\x21\x4c\x77\x72\x34\xb5\xae\x68\xb2\x2c\x9b\xa7\xe3\x77\x51\x3c\x97\xa7\x8e\xa6\x02\x89\xe2\xd8\xad\xad\x1c\xa0\xfc\xab\xd4\x0c\x12\xb0\xa0\xcb\xeb\xac\xd0\xbb\x17\x58\x9e\x2a\x18\x3e\xfe\xc4\x44\x34\x1e\xd4\x44\xda\xe5\xdb\x4a\xec\x3d\x4f\xeb\x64\x90\x26\xd6\xfb\x15\x3b\x4c\x0b\x7c\x08\x43\xf4\xc9\x99\x65\x11\x85\x54\x87\xe8\xa2\xbb\xae\x1b\x6f\x3c\x3b\x39\xa7\x60\x06\x5c\x9e\x7a\x77\x3a\x58\x89\xeb\xd5\x80\xde\x33\xff\x3c\x84\xb0\x40\x99\x76\x97\xc5\xd8\xff\xc2\x8f\x17\x2a\xe6\x43\xaf\x02\x91\x5b\xed\x8b\x6e\xd1\x02\x61\x42\x46\x07\xa1\xe5\xdc\x8e\x02\xc2\x48\xec\xbc\x63\x5f\x72\xc8\x29\x02\x19\x78\x09\xff\x36\xb6\x1e\xb0\xb8\xbb\x01\x24\x0a\x02\x9f\x6b\x5b\x66\xcf\x43\x55\x3e\xb7\x27\xbf\x37\x0f\x0e\xfd\xb5\x3a\x15\xcf\xe0\x50\x88\x7e\x9d\x04\x29\x39\xaa\xee\x1c\xc4\x87\x2b\x60\x5f\x9d\x7c\xdc\x06\x8a\x85\xd4\xb5\x69\xdd\x2e\x8c\x7e\xf2\xdd\xe1\x94\xe3\x5b\xdb\x2e\xf7\x67\xee\x2c\xdd\xbf\x53\x47\x71\x0a\x9a\xb1\xd8\x0c\xa4\x18\x3a\xd7\xe8\x11\x1c\xb8\xbb\x44\x10\x56\xab\x1b\x50\xa2\x16\x1e\xcb\xf2\x30\x79\xbc\x86\xa4\xa6\x53\x9f\xdc\xbf\x8f\x6c\x26\x29\x98\xc4\xf6\x03\xde\xd5\x7d\x31\x80\xcb\x2a\xd5\xef\x50\x60\x94\x4c\xa0\x5b\x44\x0a\x98\xe4\x06\x26\x08\x20\x21\x13\xf5\x26\x9c\xc9\xbf\xf9\x01\xc4\x0a\xf2\x3f\x2c\x6f\xa7\x1f\x05\x92\x3a\x56\xd2\xf2\x74\x2e\xae\x4e\x4d\x18\x28\x44\x6e\xab\x97\x57\x25\xce\xbb\x70\xe3\xb3\x85\x26\xc5\x5a\x73\x2e\x87\x7b\x97\x89\x02\xe3\x44\x74\x9a\x21\xab\xb7\x4d\x44\x27\xdf\x16\x51\xa6\xdc\x5e\x66\xbd\x25\x9f\x8a\xac\x2c\x36\xba\x9e\x07\x93\x98\x88\xd9\x97\xab\x38\x1d\xee\x8d\xeb\xc0\xeb\xee\x6b\xb5\xe5\x83\x79\x50\xf7\x53\x51\x97\xb9\x3e\x93\xb2\x30\x84\x87\xb8\x37\x20\xe8\xda\x7e\xed\x4f\x00\x5f\x7f\x33\x2c\x48\x42\xdc\x35\xab\xde\xa1\x68\x7c\xd5\x9c\x6a\x94\x35\x97\xa5\xbc\x15\xaf\x50\xaf\x2b\x15\x05\xde\xf9\xe3\x82\x95\x9e\xc7\xf3\xfe\x6d\x72\xaa\xc4\x1a\x14\x7c\x73\xa0\x9a\x7b\xf3\x98\x3d\xff\x82\xe5\x6f\xb8\x04\x64\x9c\x09\x0f\x97\x75\x96\xc2\xb5\x5b\x79\xfd\x44\x32\x5c\x07\x88\x71\x5d\x96\xc5\xf3\x79\x87\xc5\xc4\x0e\x82\xda\x2f\x15\x37\xbe\x2a\xee\x46\x24\x4a\xe1\x86\xb7\xaa\x50\xac\x6a\xf4\x94\x53\x4a\x99\x63\xe2\xd4\xa7\x03\xac\x0b\xa8\x9e\xe7\x25\x64\xa9\x49\x79\x8a\xe5\x6b\x6b\xe5\xe5\x2e\x73\xb8\xaa\x18\x11\xf0\x80\xfb\x10\xa4\x68\xaa\x32\x6f\x77\x4e\xfc\xc2\xbc\x53\x67\xa5\x46\x84\xb1\x97\x37\x6e\x53\x87\x2b\x18\xab\xe3\x19\x41\xe2\x29\xbb\xc4\x7f\x54\x06\x24\x72\x6f\x15\xc2\xd7\x67\x8a\x75\xed\x9a\x07\xbd\xe5\x20\xe2\x16\x01\xbc\x18\x71\x1f\x85\x1a\x15\xd9\xda\x76\x53\x3e\x3f\xe7\x60\x69\x5b\xfe\x7b\x14\xb7\xb6\xbc\x7b\x29\xf4\xb3\xb5\x30\x1f\xa7\xd6\x93\x29\xa0\x14\x01\xd7\xf1\xbc\x82\x66\xc8\x66\x9a\x0e\x34\x94\xb8\x7d\xeb\x4c\x6b\x9f\x1a\x08\x02\x19\xfa\x6c\x41\x9d\xda\xb9\x78\x2b\xfe\x5d\x56\x59\x93\xf5\x13\x02\xdc\xda\x7d\x14\x9f\x5f\x81\xf3\x2e\x75\xa8\x06\x77\x00\x18\x75\xad\xf0\xea\x19\xea\xc6\x13\xbc\xba\x2f\x52\x94\x0f\x8d\x44\xbc\x3c\xa7\x3f\x0c\x04\x91\xe0\x2e\xb2\x70\xeb\x9f\x39\xe5\x17\xf3\x88\xf1\x8f\x35\x24\xc6\x37\xc0\x6a\xe9\xdf\x94\xc5\xf3\x12\xe5\xe7\x27\x55\x37\xf2\xaf\x29\x28\xcc\x7f\x1e\x44\xd4\xa9\x71\xef\xb3\xba\x1c\xca\x88\xb3\x20\x08\x05\xe6\x8e\x98\x32\x15\x22\xc7\x22\xd6\xdc\x95\xb0\x20\x88\x13\x2c\xc1\xb4\xbb\x7d\xa6\xb0\x36\xd1\x9d\x45\x58\x8a\xfc\xd0\x69\x12\xf1\x08\xf6\x3f\xe6\xe7\x03\x0b\x42\xd7\x53\x41\xc9\x49\xf1\x0c\x6d\x5e\x3f\xfe\xce\x28\x50\x32\xf5\x95\x30\x57\xcc\xde\x7d\x1e\xc7\xdc\x1e\x16\x44\xa1\xa5\x8e\x38\x05\x01\xdc\x21\x26\xc1\x2e\x0b\xa2\xd8\x56\x81\xfd\xb7\xf5\x86\x1e\x2c\x88\x24\x60\x2f\x7e\x27\x3e\x76\x59\x9e\xdf\x0d\xc4\x14\xc7\x27\x21\x29\x8b\x6c\x48\x70\x25\xaa\xe5\xc0\xa9\xdc\x1d\xa7\x3c\xc0\xa8\x58\x8a\x3a\x53\xce\x6c\x7b\x00\x16\x6e\x07\xc4\x51\xd4\xbf\x9b\x50\xd7\x93\x96\xb4\x1f\x97\x70\x7c\xbd\x17\xcf\x59\xb7\xf3\xdd\x0e\x13\xef\xbf\x58\xc6\x99\x5c\x3f\x4b\x44\x34\xa8\x15\x78\xdf\x91\x41\xff\xfc\xec\x0d\x60\x01\x83\x04\xd1\xe2\xa7\x1a\xaa\xf5\x07\x72\xaa\xe7\x0a\x97\x2c\xe0\x01\xc5\x80\xa0\x6a\xf7\x8a\xfb\xf7\xa9\x55\x3e\x0b\xb8\x24\x38\x1b\xaf\x45\x96\xc3\x79\x83\x6c\x7c\xad\x49\x94\x12\xb7\xf9\x23\xe0\x68\x46\xee\x82\x05\x09\x65\xc6\x05\x52\xf6\xa9\xf6\xbb\xe0\x43\xef\xea\xe3\xef\x7e\xc2\x24\x42\x78\xdf\x01\x5e\xb1\x20\x3d\x08\x26\x58\x90\xa4\xdc\xc4\x1d\x2a\x1f\x6b\xe2\x0a\x6e\x45\x71\x12\x79\xfe\x39\x99\x4d\x09\x68\xcc\xac\x16\xc5\x6b\x36\xdc\x2d\x58\x90\x18\xbb\xd7\xdc\x96\x85\x1e\x78\x49\x9d\x2f\xc2\x2c\x10\x9c\x7a\x78\x8e\x7d\x9f\xbb\xe4\x97\x05\x92\x2a\xee\xa2\xb5\x9f\x37\xb7\xbb\xab\xf2\x54\x4c\x38\x1b\x38\x06\xf9\xf6\x57\xa2\xf6\x45\x93\x0b\x4f\x46\xca\x10\x1f\xa1\x73\x2b\x77\x25\xa2\x6f\x59\x95\xff\x36\xba\x22\x15\x08\x2c\x5c\x23\x40\xb1\xcd\xe6\x2a\xf1\xbe\x6d\xa6\x0c\x2c\x16\x28\xc2\x60\xa8\x78\xbd\x2c\xf3\x36\xc9\xaa\x2e\x20\x23\x59\xa0\x4c\x6a\x25\x24\xf1\x02\xda\x9b\x6a\x84\x6a\x4e\xd5\xaf\x78\xc7\xee\xe3\x3a\xa4\xa1\xdb\xd2\x7e\x0a\x2f\x01\xe5\x9c\x82\xc7\xd5\x5e\x16\xe8\x54\xa2\x2d\xf2\x3b\xce\x97\x59\x55\x74\x16\x68\xa9\x94\xf3\xdd\xde\x6f\x8f\x65\x51\x97\x55\xbd\x6f\xf7\xdf\xbd\xfc\xdc\xff\xbd\x94\xd3\xe1\x9a\x62\x24\x75\x07\x4d\x03\xaf\xbd\x31\x00\x0b\x00\x38\xca\xf4\x0a\xad\x7f\x40\x95\x99\x0c\x34\x72\xdf\x2e\xfc\xaa\x61\xc7\x7b\xfc\x13\x0d\x8d\xd0\x94\xb9\x3e\x82\xca\x4c\xa6\x7e\xf1\x76\x98\x14\x10\x26\x5d\xbf\x7f\x1e\xfd\xb6\xc7\x02\x23\xc1\x92\x86\x45\xae\xee\xe0\xa3\x59\x55\xe2\xbd\x0f\x73\x58\x18\x04\x42\xb9\xc7\xa0\xb3\x66\xdf\x0c\x63\xbe\x49\xeb\x86\x85\x41\xa8\x31\x3a\x77\x56\x3b\xf5\x75\x59\xdd\x9f\x1a\x55\x76\xac\xe9\xd1\x9c\x08\x03\x06\x08\x04\x74\x09\x03\xba\x93\xad\x44\xf9\x30\x2a\x57\xb2\x30\x48\x15\xae\xc3\x0f\x8f\xeb\x3d\xaa\x2a\xef\xee\x77\x8b\x9b\xfd\xee\xfe\xf7\xf5\xdd\xb6\x1b\x24\x39\xb7\xa0\x3a\x7d\x52\x80\xa0\x90\x31\xf5\xc4\x8d\x0b\x9d\xd5\x1e\x4a\x03\x6e\x0b\xf1\xda\xfd\xd2\x50\x89\x14\x97\x9a\x36\x64\x19\xac\x44\xf3\x0b\x63\x18\x85\x36\x80\xbc\x3a\x7e\x0c\xdf\xe6\x30\xe2\x04\x91\xe4\xdf\x44\x61\xf5\x95\x50\x8d\x78\x1e\x1f\xc8\x42\x12\xf0\xd8\x4d\x06\x44\xde\xb4\x99\x1b\xdc\x66\xc5\xe4\xc5\x0d\x49\x48\x11\xc9\x5c\x6e\x56\x88\x1f\xdd\xfb\xaf\x23\x9c\xe1\x6b\xb2\x3d\x0e\x50\xd0\xb3\x17\x4c\x52\x0b\x86\x38\x62\xf0\x5e\x0f\xd6\xb1\x90\x28\x2b\x1f\xd8\xbe\x2c\x00\xaf\xf9\xe7\xd5\xe9\xf3\x47\x99\x9f\xfa\x69\x40\x34\xc1\xdc\x07\xad\x8f\xb6\x1d\xe1\x72\xfc\x92\x87\x2c\x48\xb1\x05\xbb\x5b\x2f\x6e\xf7\x8b\xd5\xea\x71\xbd\xed\x1e\x10\x63\x61\xaa\x3c\xfe\x07\x73\xd4\xb7\xfe\x11\x73\x6d\x22\x6b\x82\xd2\x3e\x32\x24\xbd\x8e\x2f\x3e\x16\x31\xf5\xed\xca\x52\xc3\xd0\x63\xd7\x8d\x48\xc2\x18\xb3\xf2\xed\xb8\x74\x31\x39\x4f\x1a\x27\x7e\x91\xec\x9a\xa6\xd7\xb9\xe8\xee\x44\x1a\x6b\x2e\x1d\x0e\x67\x84\xf1\x3b\x2b\xbe\x0e\xbe\x3a\x4d\x6d\xf8\xdc\xc9\x96\xe9\xbd\xa5\x63\x6f\x1b\x51\xbf\xa0\x42\x59\x79\x6a\xa6\x57\x22\x22\xdc\xf8\xcd\xa9\xd0\x53\x5e\x93\x1b\x22\x52\xaf\xff\x8c\xec\x92\xdf\xb3\x89\xff\x0d\x0b\x85\x56\xc8\x47\xdb\x96\xaa\x4d\xfa\xbd\xbc\x22\x0b\x25\x4f\x70\xb7\xd9\xfe\x5c\x3c\xec\x6f\xd6\x77\xdf\xba\x7d\x22\x94\xc0\x51\x0e\xd5\x29\x3f\xfa\xc2\xd9\xf8\xc4\xd2\x58\xe8\xb1\x0f\xd0\xbc\x89\x95\x3b\xac\x22\x2b\x0f\xa3\x1c\x75\x1a\x45\xa5\xbb\x83\x69\x88\xdb\x70\xbb\xfb\xbf\xc2\x67\xbd\x3f\x13\x50\xe1\x74\xfc\x8f\xfb\xa0\x16\xda\x50\x37\x0b\xca\xaa\xd9\x4b\x51\xec\x4b\x33\xb9\x32\xa0\x5c\x3b\xd4\xe0\xd5\xcd\xbc\x56\x38\x0b\x0d\x8d\xd0\xb4\xf9\x50\x3f\xcf\x57\xc2\x58\x68\xd2\x44\x5b\x1e\x76\xe1\x2c\x57\x59\x14\xa4\x71\x68\xad\x70\xab\x2a\x6b\xca\x87\xb2\xcc\x07\xe6\x86\xed\xf1\x04\xa7\xe9\xc1\x81\x0b\xc6\x62\x7f\x2c\x0a\x89\x40\x83\x34\xe7\x8d\x0a\xc8\xaf\xee\x21\xa7\xdd\x30\x2e\xb1\xbd\x6f\x71\x7a\xb6\x9c\xe3\xd7\xee\x3e\x8a\x8a\x42\x6d\x13\xb6\x63\xf5\xa6\xfd\x47\x23\xb0\x8a\x5f\xb6\x74\x70\x53\x3e\x67\x6a\xca\x77\x1d\xdd\x89\x88\xa5\x06\xe3\xf5\xdd\x4b\xe5\xbb\xa0\xfe\x5c\x4c\x5b\x87\x86\xa5\x28\xde\x44\x7d\x5d\x89\x67\x7f\x84\xa7\x9c\x23\x87\x01\x1b\xe5\x50\x5d\x89\xe2\xd5\xc3\x81\x59\x14\x2b\x01\x68\x4f\xaf\xa1\x7d\xf6\x4f\x53\x83\x0e\x16\x25\xc4\x2a\xe7\xc8\xf2\x94\xc3\x0a\xde\xc6\x28\x63\x16\x25\x22\x40\xc9\x96\x6f\x79\x29\x45\xee\x7f\x7b\x6d\x75\xdb\x87\xb7\x20\x51\x01\x06\xbf\x5a\x7c\xd6\x7b\x4c\x39\xfa\x45\x23\x4a\x8c\xb5\xe8\x41\x7b\xa8\x76\xbf\x79\x80\xea\x4f\x10\xdd\x75\x0a\x9a\x20\xcd\xee\x45\xbc\x81\x5e\x65\xb5\x75\x5c\xe9\xcb\x9d\x2c\x12\x29\x43\x2c\xb7\x6d\xe1\x2e\x8b\xcf\xab\x46\x9d\xe5\x8f\x2c\x92\x52\x63\xda\xea\xb5\xee\x3a\x2d\xbe\xc9\xbd\x56\x29\x91\x2e\x5d\xbd\xee\x6a\x56\x2c\xd2\x51\x8c\x7d\x99\xa7\xa7\xcd\x8a\x76\x7f\x64\x4a\xbb\x4a\x20\x76\x98\xe6\x79\x92\x6e\x30\x04\x09\xa6\x2b\x7b\xef\x94\xe5\x41\x15\x8b\x42\xdf\x42\xf3\x52\x4e\xcc\x1d\xfc\xc7\x42\x7b\xdd\xed\xb2\x5e\x56\xaf\x26\x2f\xdf\x17\xaa\xc9\xde\x86\xa8\x8d\xf1\x17\x19\x4a\x70\x01\x7f\x2c\x8b\xe7\x9f\xff\xf8\x6b\x08\x3c\x16\x19\x4e\x8d\x4b\xba\x30\xa7\x9f\xf6\x41\x58\x64\x34\xc7\x08\xeb\x61\xfd\xb8\x5c\xdf\xed\x16\xdf\xd6\xfb\xfb\x6b\xb7\x83\xef\xb7\xf7\x37\xab\xfd\xe6\x0e\xf7\x76\x7f\x7b\x8c\xb1\x8a\xba\xc8\xa8\xc2\xee\xf8\xcc\x73\x31\x46\x5a\x7b\xbf\x2a\xd3\x9d\xf6\x20\x23\x41\x60\xed\x63\x8f\x55\x79\x74\xd9\xc7\x68\x7a\x92\x20\xb1\xda\x11\xb7\x8b\x3f\xf6\x57\xeb\xdd\xfe\xc7\xe2\xe6\x69\xdd\x7d\x1a\x92\xd4\xc5\x79\xe8\x3c\xbb\x9e\xe8\xbb\x31\x12\x9a\x00\x57\xa0\x9b\xf2\xf9\x27\x64\xfe\xf5\x9e\x97\x69\x60\x84\xc6\xcc\x37\x90\x6e\xc4\x41\x96\x8b\xc6\xb5\x33\xc6\x2d\x7a\x46\x18\x91\xc8\xe5\x38\x8a\xaa\x6e\x1f\xac\xc5\x20\x9e\x19\x85\x33\xc2\x58\x8a\x85\x1e\x57\x0c\xca\xa1\xda\xbb\x77\x9f\xf8\x1f\xc1\x52\x41\x8c\x4f\xe2\xbf\x3b\xfa\xf4\xa0\xd5\xc7\x08\x13\x12\xf3\x3a\xd9\xa8\xa7\x5a\x0f\xd6\x76\xc2\x94\x66\x91\xe7\x30\x67\x39\xfa\x2c\x4c\xaf\x95\x07\x94\x3b\x0c\xda\xd3\xa6\x18\x15\x9a\x18\xe1\x61\x1a\x0c\x43\xfd\x61\xca\x44\xe2\x30\xc2\x8d\x05\xad\x4a\xbc\x2f\xdf\x2a\xab\x40\x35\xf9\x99\x65\xf8\x38\x58\x22\x89\x0c\x91\x2f\xd7\x3e\x37\x37\x77\x1c\x34\xd7\x47\x19\x24\x91\x29\xee\x7b\xe8\x37\xd5\xbc\x97\xf8\xba\xac\xff\x73\x65\xcf\xeb\x47\xa5\x41\x1c\x3a\xf1\x21\x04\x9b\x40\xf7\xe3\xd3\x28\x41\x26\xc0\x0b\xe4\xc7\x47\x5f\x94\x61\x24\x25\x61\x1a\x0f\x31\x72\xd5\x64\x4e\xa4\x5c\x0d\xb2\x15\x94\x22\xfa\x8b\x79\xf6\x64\xba\xa4\x8a\x72\x8b\x5b\x39\x08\x84\x86\x5a\xb1\xe0\x81\x56\x13\x23\xa2\x9d\x54\x9e\x95\x55\xf5\x85\x81\xf9\x18\x93\x48\x91\x60\xea\xf5\xf6\xa6\xbe\x4a\x2e\x89\x04\xfb\x68\x76\x65\x59\x0d\x37\x0a\xa2\x02\x86\x05\x2d\x79\xaa\x8a\x8d\xab\xfb\x5c\x98\xed\x3a\xb5\x96\x3e\xc5\xe9\xe0\x74\x22\xfc\x49\xb4\xa4\xc4\xa1\xde\xfb\x19\x15\x46\x89\xeb\x0e\x31\x02\xdc\x65\x88\x98\x85\x5d\xd8\xb6\x09\x68\xc3\x92\x5e\x3e\x7d\x5d\xe8\xa6\xcf\x56\x88\x09\xc0\x87\x89\xcb\x53\x55\x7d\x13\x07\x68\x73\xab\x07\x51\x35\x61\x37\x26\x94\xca\x3d\xcb\x4d\xed\x93\xff\xe2\xb9\x13\x82\xed\xb7\x1f\x62\x80\x61\x1f\xf5\xea\x6e\x35\xbc\x21\x34\x08\xb4\xf7\xeb\xde\x65\x50\x45\x0f\xbd\x85\xf6\x54\x61\x98\xd1\x20\x22\xc4\x35\x67\xf6\x35\x62\x3f\xf6\x23\xb1\xdc\xf3\xfa\x09\x0d\x24\x8b\x52\xe7\x40\xb6\x29\x94\x25\xc3\xe8\xfb\x91\x3d\x22\xa3\x01\xa4\xbc\xab\xd4\xdd\xff\xbc\xf1\x57\x17\x06\x96\x43\xf3\xfb\xc3\x60\xaf\xa3\xa1\x26\x68\xbe\xfa\xed\xe1\xc9\x62\x8e\xbb\x03\x46\x33\xd2\xf5\xfc\x5e\x61\xb6\x8f\xd9\x0e\x03\x14\x70\x68\x40\x1c\x7e\x20\x34\xec\x79\xbc\xa4\xd0\x28\x0c\x11\x4e\xb1\xab\xb2\x77\x18\xcd\x20\x1a\x11\xee\x8c\xa5\x1b\x91\x1f\xca\x02\x3e\xc1\x9a\x35\xfa\xe3\x71\x28\xa9\x7f\x6d\xe3\xbd\xc0\x9a\xe7\x23\xb4\x3f\x17\xab\xa0\xfb\x27\x54\x76\x50\x08\xad\x3b\x94\x6f\xce\x4c\x66\x5f\xbf\x94\xa7\x5c\xef\x5e\x2a\x2f\xb0\xdb\x9e\x8a\x25\x0e\x3d\x35\x12\xc0\x1d\xcd\x75\x1a\x25\x14\xc1\xdf\xc7\xde\xee\x85\xd1\x48\x58\xd1\xfb\x43\x56\x34\x57\x9f\xe3\x4f\x8f\x6f\x46\xa4\x03\xc3\x6d\x7c\xf9\x8f\x87\xd3\x78\xfd\xa3\x84\xc7\x91\x95\xb7\xca\x8a\xdb\xf2\x0d\x86\x5d\xd1\xbf\x0d\x52\x34\x1f\xf7\x52\x22\x23\xd4\x0d\xb2\x9d\xec\xf9\x0b\xa6\x5c\xc5\xce\x0d\x70\x91\x55\xab\xaa\x3c\x3a\x8b\xfe\x9d\xb0\x3e\x55\x93\x2b\xa4\x22\xc1\xe0\xe8\xbd\x13\x29\x75\x07\x98\x6b\x03\xd4\xc2\x58\x4e\x61\x0f\x3d\x63\x94\x09\x9b\x4f\x08\xd3\x40\xb5\xc7\xa7\x11\xee\x0f\x36\xc2\x70\x43\x78\xc2\x8c\xec\xed\x3f\x3c\xba\xd4\xeb\xff\x8e\xaf\x82\x27\x29\xb7\xc5\xe8\xa2\xb9\x2d\x35\x16\x3b\xbe\xce\xab\x69\x1c\xa4\x5a\x7b\xfd\xa0\xbf\x5c\xbc\x9c\x7f\x4c\x71\x12\x20\x0e\x0a\x19\x0d\xa3\x84\xf5\xac\x3b\xcd\x68\x42\xb8\x4c\xfd\xba\xf0\x08\x1e\x22\xda\x06\x4c\x30\x58\x14\x68\x62\x94\x8e\x3b\xf5\x4c\xdd\xee\xe7\x53\x30\x32\xa3\x69\x00\xe0\x4e\x66\x19\x33\xa8\x97\x71\x59\x28\x8d\xd1\x94\x50\x6f\x1b\xec\xaa\xd2\xe7\xa2\x2b\xed\x28\x40\x53\x48\x2f\xb2\xe0\x58\xed\xba\x0d\x92\xb0\x5d\x37\x7c\x9a\x29\xb7\xa0\xb2\x87\xfb\x9f\xdf\x55\xde\xf1\x53\x18\x15\x2c\xf4\xed\x12\x2b\x7f\xd7\x26\xcb\x0e\x97\x36\xf8\xa5\x32\x8a\x89\x37\x6f\x74\x2e\x11\xfe\x48\x2c\x31\xc0\xb7\x81\xb3\x2f\x63\xcd\xf6\x85\x19\xd5\x3c\xc1\x77\xcd\xab\x03\x9d\xaf\x7c\x93\x9e\xca\x28\xc7\xfe\xe2\xef\xf3\x37\x52\xc7\x76\x0f\x70\x59\xb7\xff\x6b\x92\x02\x0c\x7a\xd9\xed\x7d\x9a\x25\x33\x33\x0a\x61\xc0\x89\xef\xd1\x36\x55\x9b\xe5\x99\xec\xf9\xc2\x63\x03\xae\x44\x7b\x2b\xbf\x67\xc7\x63\x86\x58\x8a\x37\x1f\x66\x50\x90\x14\x19\x79\x70\x28\xff\x9d\xd5\xa2\x5b\x0d\x4d\xc8\xd1\x59\xc1\x67\xcf\x57\x88\x7f\x1f\x2a\x75\x76\x23\x39\xb1\x8f\xdb\x3a\x67\x2a\x51\x68\x7b\x0b\x2f\x17\x07\xe7\xb6\x76\x16\xa4\x29\xe9\xa5\x30\x06\x19\xe9\x6c\xc4\xc0\x02\x69\xed\x09\x3d\x1a\xd1\x37\x1e\x3e\xb7\x9f\x07\x59\x8e\x2b\xc0\x2c\x00\xdb\xa7\xb5\xe7\xbe\xb2\x7d\xcc\x76\x42\x5d\x97\xd5\x55\x6f\x93\x36\x09\x21\x59\x28\x38\x6a\x3b\x16\xa7\x3c\xcf\xcc\xe7\x90\xb9\xed\x47\xa8\x44\xa6\x7e\x7f\x83\x3a\x13\xee\xae\xb0\x88\xd9\x12\xbe\x35\x00\xf9\x2c\x34\xfa\x8b\x6d\xad\x04\xb8\x1f\x13\x13\x46\x3b\x5b\xdd\x3b\x78\x47\xe0\xc2\x97\x33\x87\x45\x31\x05\x6b\x70\x77\xec\x4e\x63\x18\x06\xc3\xfb\xaa\xcd\xe8\x2f\x06\x75\xdd\xe8\x14\xb7\x85\x6f\xd8\xaf\x7c\x04\xa1\x3f\x07\xb5\x54\x46\x0c\x0f\x1c\x70\xce\x72\x4c\x0f\x13\x33\x61\xd6\x6e\xa2\x56\xa5\x1e\xe3\xc8\x8b\x31\xe4\xfc\x63\xa3\x31\xf1\x39\xe5\xe9\xd8\x6d\xae\x8c\xc6\x14\xb5\xee\x14\x9a\x02\xb6\x57\x75\xd6\x67\x61\xb4\xcd\xb4\xff\xe7\xff\xfd\xcf\xcf\xcd\xdd\xdd\xfa\x71\xb7\xf8\x63\xff\xf0\xb8\x6e\x53\x35\x7f\x12\x16\x69\xa9\x06\x05\xa1\xd5\xf6\xe1\x71\x24\x39\x38\xb9\x16\xe6\xb4\x4f\xb6\x20\x2a\xf5\xf2\x54\x43\x75\x26\xf4\x32\x9a\x45\xcc\x08\x0b\x5e\x74\xef\xe4\x76\xe8\xf6\x3c\xb9\xcd\x9c\x1b\xc4\x32\x56\xc8\x9a\xda\x96\xa7\x4a\x4d\xb3\x29\xc6\x85\xc1\x40\xfe\xb0\x87\x01\xce\xc2\xff\x9a\x38\xb1\x40\xe1\x1a\x9a\xc6\x55\x60\xce\xb8\x87\xf3\x8f\x38\x4e\x0d\x96\x0c\x7c\x72\x33\xae\x88\xcf\xef\x43\x2c\x56\xa1\xb1\x60\x3e\x39\x8e\x99\x58\xac\x62\xdc\xa1\x2c\x44\xf8\x76\x28\x08\xf4\x39\x79\x44\xb1\x0e\x70\x4b\x69\x57\x63\x8c\x78\x36\xe6\xae\x6c\x30\xc1\xf5\x67\x4b\x89\xc4\x66\xcc\x1b\xd4\x0d\x68\x9b\x34\x4c\xb8\x21\x8c\xa5\x4c\xf9\x04\x77\xfb\x9a\xe5\xf9\xdd\x94\xfa\xc1\x98\x80\xc0\x96\xc2\xf3\xd3\x7f\x07\xad\x0b\x26\x45\x84\x35\x56\x38\x40\x85\xce\x69\xf7\x6f\x50\xbd\x57\x59\x33\x0e\x1a\x93\x61\xba\xca\x14\xb7\xfe\xfa\x4d\xf5\xb9\x2b\x27\x73\x66\xfc\xb5\x9a\xa5\xd6\x13\x06\x77\xcc\x59\x6a\x0b\x63\x3a\xd6\x98\x26\x5b\xd8\x99\xe3\x3a\x7f\xa5\xd1\xe2\xf7\x64\xa6\xe3\xb1\xf3\xeb\xd5\xe7\xe5\xe6\x35\xd3\x89\xc2\xf8\xe9\xe9\xd8\x54\x50\x14\xdd\xcb\xa4\x75\x88\x65\x7f\xec\xea\xc3\xfe\xe6\xf4\xad\xd4\x7a\xf0\x40\x21\x50\x4c\xfb\x45\xeb\xc9\x33\xe5\x18\x83\x50\x5a\xd2\x47\xdd\x0c\xef\x28\x30\x1b\x74\x2c\xea\x1a\x0e\x32\x9f\x3e\x73\xe0\x92\x7a\x38\x53\xfb\xf6\x8e\xe4\xe9\xfc\x18\x19\xa1\xee\x92\x12\xc5\x4f\x7c\x14\x33\x9a\xd2\x8c\x19\x6a\x39\x2a\x47\x71\x2e\xc6\x35\x53\x3b\x62\x86\x85\x68\xc3\x50\x65\xcf\x2f\x0d\x4d\x27\xdf\x69\x62\xc0\x5d\x4f\x89\xc2\x26\x27\x77\xf0\xd1\xb4\xd9\xd6\x6d\x56\x2c\x0a\x7d\x2b\x3e\x70\x1f\x78\x2a\x9a\x2c\x6f\xff\xbc\xee\x6f\xa0\xd1\xb6\x32\x8d\x4a\x3e\x48\xf0\xeb\x3b\x71\x3c\x20\xd4\x19\x7e\xaa\xe6\x4c\xc2\x84\xf1\xc0\x04\x96\x9a\x5b\xff\xe1\x3f\x11\x25\x91\xee\x75\x11\x6f\xb3\xe2\x2a\xd3\x58\x6e\x3c\xe6\x53\x57\x20\xc6\x23\x61\x09\xd2\xcb\x52\x43\x75\x5d\x56\xcf\xdd\x17\x47\x46\x47\x6e\xe9\x7c\xda\xa0\x18\xec\xe9\x42\x22\xc4\x49\x0a\xe1\x80\x45\x9c\x15\xdf\x44\x8d\xa1\xda\x75\x59\xad\x2a\xf1\x3e\xd1\x52\x67\x9c\x52\xeb\xcf\x9c\x5b\x5d\xa1\x36\x4c\x16\xfd\x37\xb3\x94\x22\xce\xdc\x92\x96\x46\x72\x6d\x8c\xc7\x61\xe4\x7b\x36\x6f\x93\xdf\x12\xbb\xda\x25\xe2\x2a\xd4\x8b\xc8\x3a\x9b\x88\x73\x66\xe3\x30\x1c\xe3\xb1\x66\x28\xe1\x7b\x75\xfa\xfc\x56\x96\x13\x79\xce\xc1\x28\x4e\xe2\x33\xcb\xf5\x36\x91\x18\x7a\x1b\x31\x9e\x48\x4d\x3c\x86\x1e\x0b\x3d\x51\x77\xc4\xc8\xa0\xef\x20\x3f\xd9\x6b\xb9\x70\x4f\x55\x14\x81\x72\xc9\xe5\x7d\x3f\x1d\x94\x60\x18\x28\xfd\xef\x0b\x1a\x5b\xfc\xba\x14\xc9\x35\x0d\xe9\x70\x9b\xfa\x3f\x09\xc2\x8c\x01\xf5\xed\xc9\x04\xd6\x9b\xec\x2f\xf8\xbb\xa8\xca\x6d\x0e\x30\x4f\x25\x61\x5c\x73\x19\x51\x54\xa4\x35\xcd\x8b\x15\x47\x12\x39\xd4\xeb\x4e\xc4\x93\x71\x88\x52\x44\x8d\x64\xaa\xbc\x46\xc3\xcf\x6e\x93\xe6\x10\x03\x4a\x27\xb5\xf7\x71\x57\x2e\x6c\xc7\xe7\xc2\x37\x01\x08\x9c\x32\x47\xf1\xe9\x9c\xc6\xfc\x0e\xc0\x4d\xc0\xb8\x19\xdb\x7a\x91\xfe\x58\x42\x00\xd1\x57\xf6\x19\xec\x4a\x2b\xf6\x30\x0b\x28\x64\xdc\x30\x26\x63\xaf\x56\xdd\x26\x9c\x3d\xd6\x80\x9b\x24\xc5\xd5\xd1\xdf\xe6\xdb\x0b\x82\x1e\x8c\x9b\x34\xe1\xcc\xaf\x87\x43\x7c\x3f\xe3\x06\x0c\x2e\xa5\x1a\xde\x20\x2f\x8f\x50\xed\x6d\x8b\x19\x3e\x9a\x7d\x6f\xb3\x3c\x13\xce\xc6\x41\xc0\x91\x01\xf0\x50\x95\x47\xf4\x6b\x7a\x01\xe1\xef\x64\x1c\xa8\x08\x23\xfd\x87\xd2\x99\x7b\xd5\xdd\x11\x13\xa1\x10\xc4\x52\x54\xb2\x2c\xb0\x82\xe8\x0f\x85\x60\x1d\x04\x1f\xc4\x09\xed\x4b\x96\xe2\x78\x04\xed\x93\xdb\x73\xa8\x32\x8b\x23\x11\x61\xaf\x7b\xfd\xe0\x63\xa4\x98\x50\x29\xac\x64\x90\xad\x91\x6d\x3d\x1f\x38\xb9\x60\x95\x3d\xbe\x57\x31\x61\x51\xc4\x3b\xe8\xd6\xc0\xa0\x98\xc5\x44\x1b\x24\xbc\x58\x37\x9c\xdb\xbb\xd5\xfc\xed\x8e\x69\x10\x62\x68\x6c\x65\xdf\xae\x26\xf8\x58\x16\x53\x22\xb0\x46\xe3\x29\x41\x2e\xbd\x9d\x0c\xd2\x22\x51\xf8\x60\xda\x9c\x6f\xfb\xd2\x83\x44\xdc\x00\x96\x12\xec\xf0\x21\xe8\x03\x8b\x0b\xb3\x05\xdb\x98\x81\xed\xdc\x5f\x55\x20\x5e\x65\xd6\x0c\x5d\x80\x58\xcc\x59\xe2\x81\x10\xdb\xcf\xba\x81\x43\x1b\x25\x7a\xe9\xf4\xc9\x25\x71\x41\x22\x57\x71\xbb\x12\xea\xf5\x74\x3c\x37\x37\x62\x71\xac\x53\x94\x1b\xc9\x4b\x51\xec\xa0\x3a\xf8\x2f\x4a\x18\x58\x6d\x98\x77\x80\x63\x3d\xf0\x46\x67\x71\x22\x24\xb6\x1c\xff\xd1\x7e\x1d\xd4\x35\xe2\xc5\x86\x17\x99\xc8\x58\xba\x1d\xf8\xea\xf4\x39\x4e\xe0\x47\x73\x32\x91\x12\xc1\xd2\x1d\x7f\x60\xab\xca\xca\x3d\x7e\x1f\x82\xc4\x29\xe7\x98\x51\x17\xa7\x03\xaa\xe0\xb4\x7b\x63\xf7\x8c\x53\x15\xa0\x58\x73\x01\xef\x8b\x76\xde\xfa\xbf\x8b\xc0\xde\xed\xac\xc8\x9a\x99\xd4\x6d\x7c\xa3\x44\xc0\x94\xf5\x29\x3f\x67\x8f\x8d\x2f\x58\x04\x0c\xb1\x57\x3d\x75\xfd\xd2\x3a\x39\xbe\xcb\x22\x90\x08\xf3\xae\x9f\x9b\xee\x0a\x4d\x12\xf0\x81\x60\x9c\xfb\xb3\xd4\xd6\xb3\xe6\xf1\xfe\xfb\xf7\xee\x6f\x10\xc6\xd6\xaa\xf3\xb0\x2d\x7f\x7f\x29\xc5\xf7\x52\xf9\x63\x3a\xb0\x1a\x42\x8e\x2f\x57\xc9\xac\xb9\x54\x81\x8b\x35\xd5\xd8\xd7\xdc\x2c\xf3\xf2\xa4\xb7\x30\xf6\xdc\x60\x31\x80\xd5\x87\xb2\x6b\x77\x27\xb2\xdf\x6b\x80\xb3\xd8\x40\x18\xf5\xcb\xfb\x43\x55\x1e\xca\xdb\xb2\xa8\x1b\xa8\x90\xb9\x86\x88\xf7\x8e\x3d\x34\x76\xda\x19\x5d\x4b\x12\x04\x04\xaf\xc5\xc1\x7d\xeb\x6f\xc2\x5f\x46\x12\xd0\xd4\xf3\xd6\xbd\x5a\x65\x27\xcd\xeb\xeb\x7f\x49\x40\xad\x06\xa7\x7f\xef\xcb\xd7\x33\x21\xbf\xd1\x23\x48\x42\x66\xb5\xc9\x86\x46\xf6\x2c\x09\xe3\x38\x26\x03\x9c\x70\xef\x2f\xe2\x07\xc8\x08\x23\xf1\xbd\xd0\xdd\xd2\x56\x5f\x97\xd5\x97\xed\x83\x24\x4a\x14\x62\x35\x07\x61\x80\x05\x70\x34\x33\x82\x83\xbf\xfa\x77\x36\x24\x49\x48\x4c\xb0\xdb\xd7\xa3\xad\xb1\x1a\xbf\xac\x3e\x8f\x4d\x39\xb7\x03\x24\x34\x32\x31\xb5\x4b\x54\x59\x67\xcd\x4a\x64\xe3\x05\x23\xa1\x8c\x75\x15\x65\x27\x6f\x33\x14\xa5\x60\x09\x35\xc2\xf1\x02\x9b\x15\xe4\xf0\xec\xd3\xed\x09\x48\x29\x61\x41\x8c\xe5\x3e\x14\xc9\xb0\x1a\x05\xf7\xc5\x53\x51\x77\xb8\x5c\xf4\x78\xf2\x67\x65\x3c\x48\x1d\x08\xfb\xef\xa5\x5c\x8a\x62\x69\xf5\x37\x4d\x3b\x93\xad\xe9\xe7\x45\x32\xf4\x64\x56\x31\x4e\x71\x1f\xf3\x7a\x4e\x37\xe5\xa7\xc8\x9b\x4f\x9b\x18\x4f\x86\xa6\x91\xc2\x9d\xdd\x12\x77\xcf\x25\x7f\x58\xc2\x80\x21\xf3\xa4\x43\x1a\x74\x53\xb4\x0d\xa1\xa9\xf5\x15\x55\xe5\xfd\xb1\x5b\xfa\x12\xce\x09\x4f\x26\xb1\x54\xfb\x66\x2c\x4f\x75\x53\x1e\xac\x78\x7d\x56\x3c\xdf\xc1\x2f\x8d\x5c\xdd\x09\x63\x66\xad\x63\x9f\xa1\xb1\xc8\x39\xf7\xf4\xf6\xaf\x30\x49\x7c\x92\x98\x53\xc7\x1e\xf4\xe6\x01\x7f\x95\x12\x7f\xe1\x95\x89\x9d\x22\x02\xca\x2c\xde\x1b\x24\xd7\xfa\x43\x32\xe2\x4e\xbd\x73\x71\x6a\x90\x57\x33\xbe\xee\x44\x08\xac\xe3\x5d\xdd\xfe\xf0\x9f\x11\x41\x8c\x71\x26\x06\x47\xfb\xac\x76\x6c\x1e\x84\x0c\x0d\xee\xba\x08\x12\xab\x89\xe3\x1c\xdc\xcf\x56\xe4\x5f\xd5\xb5\x27\x21\x69\x22\x42\xdb\x28\xb1\x91\x3e\x7a\xd1\x8c\xdf\x71\x11\x5a\x7f\x8f\xdd\x0b\x3c\x88\xa6\xca\xca\x01\xbd\x0f\xb1\xbc\x98\x85\x36\xe5\xf7\xb2\xaa\x27\xfb\x7e\xa2\x22\x8a\x38\x79\xa7\x47\x7a\xbb\xb9\xdb\x3f\xdc\x2c\xfe\xec\xdb\xab\x89\x52\x1c\x0b\x19\x42\x29\x38\x36\xbf\x7f\xaa\xc9\x63\x53\x46\x44\xbe\x33\xd9\xa9\x36\xa2\x7b\xc5\xf0\x87\x25\xc3\x5f\xa4\x43\xc0\xa0\xe7\xbb\x47\xc5\x7e\x65\x3d\x37\xff\x6c\x35\xd3\xca\xc1\xd7\x36\xf5\x12\x21\x57\xf3\xd5\xda\x44\x1b\x83\x84\xcd\x43\x56\xac\x9b\x97\x07\x97\x70\x89\x81\x32\x28\x4b\x4c\x6c\xac\xcd\x0d\x52\x5a\x1f\x31\xa3\xfa\xff\x71\xf6\x26\xdb\x8d\xe3\x58\xfe\xf0\xeb\xe4\xa2\x16\x04\x07\x00\x5c\xca\xb2\xec\x50\xa5\x07\xb5\x25\x67\x54\x56\x9d\x3c\x3a\x18\x2e\x64\xfe\x83\x22\xd5\x24\x65\x87\xea\xe9\xbf\xc3\x0b\x80\x93\x68\x47\xf6\xd7\x8b\x8c\x2e\x13\xa2\x28\x12\x04\xee\xf0\x1b\xfc\x21\x41\x31\x9e\x69\xf7\xf8\x9b\xf3\x35\xa8\x8b\x1b\x65\xcb\xfe\x06\x1a\xf5\xa6\xb3\xf7\x09\x42\x84\x1b\xa3\x91\xab\xd7\xb7\xee\xbf\xae\x1c\xa5\x01\x4d\x31\x2d\xd8\x17\xf0\xb1\x55\x6f\xd6\xaa\x0b\x91\x01\x76\xd9\x99\xfd\x99\x29\x61\x01\xb8\x5e\x6b\xf7\xba\x7b\xaa\x86\x1f\x22\x6c\x3d\x40\x89\xe2\xb6\xca\x3e\x41\x01\xa7\xc4\x24\x52\x77\x3b\xf2\xb6\x3c\xc2\xed\x6a\x57\x8f\x92\xaa\xc9\x37\x1b\x81\x5a\x7b\x5b\xc4\x78\x84\xfb\xbb\xf5\xd3\x7a\xeb\x37\xff\x34\x8c\x22\x4f\x9c\x7c\x41\x45\x0d\xa8\xc6\x6c\xf8\xc9\xd7\x87\x2a\x92\x89\xb3\x33\xea\xb2\x95\xf9\x9f\x1c\x6a\x83\x1b\xad\xcd\xca\x9d\x02\xcb\x34\x61\x9c\x9c\xdd\x44\x88\xd6\x72\x8e\x85\xb6\x2d\xf0\x21\x4e\xbd\xe2\x50\x92\x46\x01\x90\x68\xa0\x4c\xe1\x8d\xd9\x3b\xa6\xce\x78\x02\xa4\x51\x18\x78\xdf\x61\x47\xbe\xff\x03\xf2\x52\x75\x12\x23\x49\x9a\x44\x24\xe0\x7d\x90\x63\xaf\x08\xf0\x9e\x76\xaa\xc8\x83\x72\xd6\xf0\xe5\x6e\x3f\x6b\x3a\xc4\xd3\xb2\xa8\x7b\x20\xd2\xb4\x78\x39\xda\x5f\xd3\x84\x06\xc8\x8a\xdb\x88\x4a\xc8\x32\x17\xdd\xb5\x50\x85\xce\xac\x8b\x9b\xa5\xf7\x52\xfc\x5b\x95\xe6\x34\xe1\x24\xf5\xbe\x6d\x6d\x08\x3b\x7c\xc5\x7d\xb0\x9b\x26\x3c\xc4\x0a\xbf\x2e\x3f\x8a\xba\xa9\xfa\x15\x37\x4d\x64\xc2\x6c\xb1\xf7\x74\x99\x65\x33\xa4\x34\x08\x30\x37\x38\x89\xcb\x23\xdc\x39\xe6\x27\xf1\x77\x99\x86\x0c\x5c\x96\xb3\x11\xf3\xc4\xaa\x24\xa5\x2c\x09\x88\x97\xd9\x2b\xce\x22\x7f\x7e\x87\xaa\xca\xf4\xb0\x99\x97\xb2\xd0\x20\x6b\xae\x01\xf5\xe6\x93\x6e\x7f\x28\x11\xd1\x90\x0b\xdb\xfd\x9d\x85\x28\xf6\x8c\x6b\xdb\xed\x83\xcf\xfe\x52\x1e\x44\x18\x79\x9f\xc4\xb9\xf6\x95\xdc\xe1\x57\x71\x92\x22\x92\xfa\xbe\x2a\xcf\xa7\x69\xab\xec\x1f\x13\xd4\x40\xca\x43\x0b\x64\x41\x3a\x5f\x9b\xf2\xf4\x3b\x76\xca\x85\x65\x0b\x2f\x33\xdd\x95\x8a\xd2\x34\x09\x3c\x4f\x04\x01\x65\xcb\x2b\xe5\x94\x24\x4d\x19\x15\xbe\x75\xd9\xa6\x6e\xdb\xf3\xf1\x37\x47\xbe\x73\x23\x04\x04\xc6\xcd\xf7\x7d\x9b\xf8\x0d\x1b\xa6\xd3\x4b\x94\x8a\x58\xb1\x2e\xa7\xcd\x3a\x0a\x6a\x53\x45\x52\xe2\x60\x44\xaf\x59\xd1\xdc\x91\xc9\xb5\x28\x62\xbc\x47\xfb\x7d\x25\xde\x45\x23\x26\xe9\x5c\xaa\xb8\x40\xb9\x24\x8c\xbc\x6e\xfd\xef\x54\xca\xe6\xdd\x76\x07\x5c\xab\xf2\x16\x84\x7e\xb8\x42\x4c\xa7\xca\x58\xef\xa3\x0a\xfe\xf7\x0c\x63\x1b\xfa\x24\xd5\x81\xa5\xaa\xbe\x97\x0d\xbc\x9c\xf3\xe1\xb2\x32\x78\x62\x3a\x4a\xad\xee\x73\xd9\x40\xbd\x17\x07\x91\x15\x5d\xad\x3d\xd5\x69\x88\x89\xcc\xbf\xdc\xff\x05\xe4\x93\x79\xa8\x25\x57\xdc\x41\x0d\x32\x91\x77\x6d\x3e\x2f\xcc\x74\x95\x3c\xf7\xb7\xba\x3b\x83\x40\xbf\x3c\xd7\x40\x2d\xab\xef\x55\xd9\xae\x71\xd5\x27\x79\x77\x0a\x86\x25\xde\x35\xe9\xff\x24\x25\x94\xa4\x26\x21\xcc\x51\x17\x4d\x56\x1d\xaf\xc0\xab\xa9\x01\x12\x85\x03\x73\x8e\xfa\xe6\x82\xff\xce\x24\xe4\xa9\x01\xc6\xad\x20\x7c\x9b\x63\xd9\xb7\xc2\xcb\xa0\xcc\xdf\x2d\x11\xd0\x08\x03\x1c\x21\xcb\xee\x95\x13\x01\x0b\x11\xff\x78\x14\x3f\x60\xd1\xae\x96\xf5\x71\x66\xf3\x9b\x8f\x3a\x05\x49\x42\x0c\xc9\x75\x95\x9d\x46\x38\x2a\x41\xa4\x41\x3b\x0e\xc4\x39\xb8\x16\xab\xc9\x2c\x62\xf7\x5b\x56\xa0\xad\x92\x33\x41\x76\x8e\x1c\x22\xcb\x7f\x1b\x9f\x5c\xa7\x89\xee\x67\xd9\xb6\x10\xa7\xfa\xad\x9c\xe2\xe5\x44\x48\x18\x2e\x67\xc7\x73\xde\x64\x56\xdd\xf0\x13\xad\xbf\xeb\xbe\x85\x08\x23\x9a\xb8\x12\xab\x33\x8f\xc1\xc0\x25\xf3\x4d\x4a\x11\x52\x86\x46\x07\x8b\x73\xf3\x86\xfc\xcd\x2f\x1f\xb1\x88\x98\xd5\xc3\x45\x85\x72\x67\x85\x37\x50\xbe\x49\x44\x24\x52\x2c\x22\x1e\x51\xea\x16\xe5\x09\x55\x76\xca\xfa\x34\x47\x44\xca\x58\x93\x66\x5f\xff\xc3\x91\xa2\x63\x52\x7d\xa1\x41\x90\x88\x08\xac\x4d\x56\xb7\x47\xaa\x8b\x67\xe9\x4e\x6e\x5b\x64\x24\xc2\x51\xf6\x4d\x95\x1d\x0e\x18\x2c\xf4\x78\xfa\xee\x0e\x8e\x3f\x13\x07\x04\x9f\x88\xb7\x2f\xbb\x39\x6b\x47\x16\xf7\x17\x1f\xa7\xb6\xbf\x7f\x42\x05\x5b\x91\x67\xcd\x65\x37\xa0\xc4\x88\x36\x33\x0c\xc6\x75\x81\xef\x6f\xc3\xfa\xc8\x8c\xf6\x50\x22\x92\x28\xc2\xd0\x6e\xef\x27\xfb\xf7\xac\xd8\x94\xcd\xf2\xad\x57\x9c\x49\x44\x42\xb9\xc7\x98\xa0\xcb\x40\x59\x8f\x0c\x19\xbe\x9e\xc8\x89\x8a\x23\x07\xba\xdc\xdf\xed\xfe\xc0\xfa\xe5\x7e\xf5\x8a\x88\xda\xc9\x4d\x48\xc0\xaa\x71\xb4\x81\x56\x59\x76\x20\x3c\x91\x00\x47\x25\x80\x2d\xa8\xa6\x74\x5e\xec\xda\xed\xad\xf3\x74\xaa\x7f\x4c\x3d\xfc\x13\x41\x29\x58\x5a\x42\x55\x89\xcb\xb3\x71\xdb\x66\xbd\x7b\x13\xcd\x37\xf1\x0e\x88\x9a\xed\x02\x4d\x41\x39\x25\x16\x83\x73\xc8\xc6\x6c\xf1\x44\x50\x45\x20\xf0\x8d\x7c\x2b\xda\x6c\x51\x2c\xdd\x05\x53\xd0\xe9\x48\x95\x03\xab\xa2\xf3\xbe\x52\xe3\xa0\x47\xf0\xc0\xaa\x2f\xf9\xeb\x9b\x8f\x31\x45\x9a\x10\x64\xa9\x82\x53\xab\x1f\x9f\x24\x65\x11\xaa\xfd\x38\xfa\xa3\xd3\x28\xf4\x07\x45\xa2\x3a\x18\x8d\x5d\x27\x27\x85\x7b\x3f\x50\x71\x5f\xbd\xdc\x82\xaa\xa0\x99\x7e\x8b\x0e\x12\xef\x60\x21\x46\x75\x2c\x21\xa8\xc4\xce\x08\x96\x5a\x57\x3f\x4f\xa0\x1a\xd0\x63\x40\xc5\x94\x86\x25\x04\x55\x91\xe3\x3b\x3f\x96\x05\x7c\x12\x20\x09\x25\x14\x96\x4b\xed\x52\x3b\x0c\x34\x85\x92\xca\x0a\x3e\x8a\x1f\xb0\x6d\xce\xed\x2e\xb5\xbe\x1d\xd2\x6d\x84\xe6\x16\xf3\x2d\xcf\x08\xdd\xb0\x0d\xb3\xe1\x22\xa2\xdb\x20\x11\x71\x66\x16\xbb\x6d\x1f\xec\x6d\x47\x51\x11\x5a\x05\xca\xe6\x8a\x6d\x1e\x64\xeb\x24\x7f\xab\x44\xe2\xc3\x40\x01\x61\x80\xe6\x80\x0b\x94\xfc\xfb\x4a\xa9\x39\x11\x10\x5b\x70\xe2\xa1\xd4\x6d\x92\x7f\x14\x4d\xa6\x96\x4e\x80\xbe\x83\xff\x0a\xd0\xcc\xab\xf5\x3f\x9d\x8f\x0b\x0c\xf8\xeb\x7f\x59\xb9\x9a\x7f\x21\x8f\x78\x78\x76\xff\x53\x0d\x49\xb9\xb5\x81\x79\x0f\xd9\x7c\x7e\x22\x4c\xa8\x62\x6b\x22\x5b\x43\x63\x95\xff\xaf\xb5\x13\x27\x53\xd3\x24\x96\x91\xf6\xf8\xbc\x5b\xce\x62\xf1\x87\xcf\x4c\x06\x89\x46\xc6\xa3\xd7\xf1\x7f\xb1\x5b\xd2\xfc\xf5\xc8\x20\x15\xb8\xf7\xd5\xe5\x11\xc6\x36\xeb\x89\x24\x41\xca\x46\x2a\xf1\x76\xbe\x59\x1c\x79\x37\x88\x10\xb4\x17\x7f\x59\xfd\xcf\xeb\x6a\xbb\xdb\x2f\x17\x4f\xcb\xd5\xc3\xea\x76\x7f\xf3\xe7\xfe\xe6\xf9\xe5\xe5\xf9\xfb\xea\x65\xbf\xdd\x2d\x76\xaf\xdb\xfe\x23\x92\x85\xbe\x9b\x9d\x97\x0e\x36\x47\x7a\x6f\xa6\x64\x32\x93\x65\x48\x14\x1a\x63\x59\xa9\x95\xb7\x2c\xd7\x5f\xb8\x13\x24\x32\xe4\x04\xa1\xac\x42\xeb\x59\xc7\x1b\x37\x2c\x52\xc2\x04\x5d\x93\x04\xbd\x6c\xdb\xf7\x77\xd3\x3e\xe5\x9b\x8b\x85\xe5\xcc\x65\x8c\x32\x02\x08\xda\x1b\xf3\x74\xbf\xf0\xbf\x29\xa6\x71\x92\x5e\xcb\x14\x8d\xc3\xb9\x4f\x5e\x54\x19\x0b\x8b\xb3\x72\x96\x1c\xbb\xe5\x40\x50\xb9\x3d\x9a\x62\xbf\xee\xdb\xf6\xf6\x9f\x83\x22\x8e\x4c\x12\x8d\xa0\xb0\xed\xeb\xcd\x76\xf9\xb2\xde\xec\xd6\xcf\x4f\xfb\xc7\xe7\xdb\xd7\x8e\x3e\x21\x69\x1c\x69\xa7\x27\xe4\x5e\x8b\x4e\x43\x70\xbc\x53\x48\xea\x4a\x1a\x8d\x37\x97\x5b\xe8\xf7\xac\x2e\xbb\x64\x43\x52\xa5\x10\x6f\xf1\x22\x8a\x1f\x59\x71\xb8\x11\x79\x7e\x5f\xe6\xba\xef\x1a\x78\x09\xd5\xe4\x2f\xff\x09\x6d\x70\x07\xbe\x39\x57\x63\xcb\x85\xcf\xea\x3b\xd7\xb3\x93\x82\xc0\x6c\x3e\xab\xdb\x87\x32\x61\xbd\x49\x96\x44\x56\x62\xa2\x8d\xdb\xac\xed\x9d\x6b\x67\xad\x90\x49\x3a\x98\xca\x2c\xe1\x16\x0d\x6c\x45\x16\x7c\x5a\xe6\x8e\x72\xe8\xc4\xf7\x97\x1d\xb4\x6e\x7c\x25\x69\x2c\xf1\xc7\x3c\xae\x9f\x77\xbf\x7e\x07\x05\xb1\xda\xbc\xc8\x6e\x78\x2e\x6e\xe0\x4d\xe4\xe6\xda\x2f\x69\x56\x7a\x21\x91\x82\x5a\x6a\xdb\x62\xb9\xe8\x30\x8a\x7f\x17\x01\xeb\x4f\x91\x0a\xbb\x37\x77\xe4\xc6\xb2\xba\x8a\xe1\xa5\x0c\x2c\xac\x50\x5b\x2a\xd1\x55\x32\xea\x8a\x74\x33\xf6\xba\xdc\x9f\x21\x02\x94\x27\x43\x31\x11\xfb\xc6\x8c\x9f\x91\x4c\x8c\xb6\x36\x38\xbb\xb2\x2c\x7a\x9e\x9e\x3f\x0c\x2c\x80\xce\xab\xfe\x8f\xb2\xe9\xd3\x5b\xa9\x80\xc2\xa8\xb9\xdc\x06\xcd\x9f\x03\x77\xa5\xe6\x12\x91\xe9\x4f\xa5\xcc\x41\x5e\x0b\xee\xb9\x61\xc0\xa4\x89\x3a\x27\x96\xd2\x11\x6c\x5e\xfa\x46\xb9\xff\x7e\xc3\x43\xe3\x99\x0a\x6f\x22\xcf\xa1\x38\xc0\x15\xa5\x49\x9a\x34\x50\x62\xd0\x6d\x69\xdf\xfd\xb2\xba\xb9\xcc\x98\x87\x25\xd2\x00\x49\x7a\xda\x5e\xfb\xfe\xa0\x27\x61\xfb\x86\xdc\xc1\x27\x38\x54\x15\x90\x14\x81\x95\x0f\xe5\xe1\xee\x5c\xfc\x42\xfc\x40\x05\x89\xc0\x58\xf9\xad\xd4\xf9\x5d\x59\x45\x7e\x9f\x55\x44\x47\x71\xea\xf3\x4f\x4f\x52\x18\x7f\x36\x74\xb2\x54\xaa\x3c\x9e\xce\x16\xcc\x33\x03\x3e\x56\xa1\x8e\x3d\x46\xc1\xea\x24\xf4\x88\x00\x15\x07\x06\xa5\x03\x51\xde\x5a\x54\xe2\xf8\x7c\x6e\x9e\xcd\x0d\x7a\x98\xde\xb5\x69\x93\x1f\x17\x6a\x2f\xc7\xbd\x81\xe6\xe6\x82\x6c\xe6\x4f\x7e\x52\xac\x01\xa5\xd3\xac\x9f\x88\xdf\xcf\xc6\x37\x29\x91\x96\x0b\x63\xb5\x77\x31\x3a\x72\xaa\xf3\x6e\x00\x8d\xb9\xb2\xde\x82\x8f\xb7\x8b\xee\x8f\x09\x21\xd6\x29\xa1\x5d\x12\x32\xf4\x51\xf3\x87\xd2\xd4\x0b\x71\xbf\x16\xca\xc6\xb2\x58\xea\x59\x9b\x45\x31\xe9\x0c\x28\x16\x6a\xdc\x49\x64\x75\xe9\xf2\x0b\xc5\x62\xab\x10\xd9\xde\x8a\x47\x34\xfa\x3e\x57\x45\x14\xa2\xd4\xdd\xe8\xd2\x18\x03\xcc\xb3\x30\xd7\x3e\xa0\xb4\x81\x3b\xc2\x03\xc5\x9d\x03\xce\xb9\x6e\x4a\x9d\x89\xc9\xfb\xa5\x78\x42\xb8\xf4\xd6\xe4\x65\x6d\x71\xb7\x93\xab\x4b\x49\xac\x9c\x47\x72\x56\xb7\xdb\x9b\x18\xf0\x3e\x54\x4a\x6d\x6b\xd2\x57\xfe\xfe\x2e\x4a\x66\xf6\xed\x52\x69\x1a\xf8\x1d\xa7\xbd\x9b\x4b\x17\xaf\x67\x65\xe1\x05\xce\x26\x17\x27\xb8\x02\x32\xf0\x4c\xdb\x95\x2f\x70\x18\xa0\xd7\x95\x00\xa5\x22\x3f\x53\x86\x2e\xa5\x93\x6f\x16\x86\xc6\xdc\x23\xf2\xb2\xb2\x78\x14\x8d\x7a\xfb\x0c\x8f\xa2\x24\xb1\x1d\x80\x0f\x68\xde\x46\xaa\xd2\x89\x92\x21\xc3\x6a\xf3\x31\x2b\x60\x00\xf9\x20\xdd\x47\xb5\xc2\xe6\xc6\x02\x9b\x1f\xf5\xa6\x2a\x4b\x53\x9a\x6f\xe7\xa3\x68\x63\xa4\xc9\xf3\x91\x60\xdd\x21\xb0\xd4\xed\xa8\x5c\x4e\x71\x63\x7b\xae\x4e\xf9\xb9\xee\x4a\xbf\x23\x40\x95\x52\xa1\xb6\x35\x93\x7a\x5d\x0c\xa1\x0a\x4a\x25\xa9\xad\xd8\x5b\x8f\x4e\xf5\x06\xc7\xa1\x3a\x78\xa2\x74\x18\x25\x9e\x22\xe2\xbc\x09\x66\x92\x4b\x3f\x38\x56\xbd\xde\x7c\xdd\xfc\x9e\xa9\x9e\xe1\xab\x34\xe3\x16\xf4\x20\xde\xe1\x11\x1a\x31\x62\xc2\x7f\x22\xa1\x3e\x30\x83\x9e\x31\x9a\xbb\x76\x8a\x4e\x94\xa1\x16\xef\x60\x69\xd0\x56\x29\x0a\xa7\x42\x9b\x2e\xbc\x40\x9b\xf2\x8d\xe7\x8c\x0e\x64\x8c\xa2\x24\x0f\xe5\xe1\x05\x34\xc0\x71\xd6\x0f\xc9\x0d\x26\xa1\x05\x63\x9f\x8b\x46\x1c\x46\xe9\x8d\x26\x51\x4a\xad\x7e\x6e\xa1\x17\x79\x6e\x93\x24\x7f\xcc\x58\xb5\x2d\x0d\x75\x53\x95\x97\xa5\xa8\x26\xdd\x56\x4d\x0c\xa7\x2e\x89\x5f\x34\xe5\xd1\x16\xbe\x66\x03\x52\x1d\x25\x0c\x65\x6d\xf3\xf2\xb0\x84\x2c\x77\xc6\x07\xe1\xc8\x52\x2a\xd1\x11\xd3\x98\xc7\x1c\x0f\xc7\x36\x19\xb9\xc2\x08\xea\x58\xc4\xa9\x43\x11\x6c\xcf\xd2\x0b\x54\xcc\x2c\xd1\x9a\x26\xc4\x5b\xe6\x60\x1e\xee\x48\x10\xe3\xab\xa2\xda\xa2\x0a\xdb\xe8\x30\xd3\x57\xe4\x15\x4d\x35\x45\x84\xe3\xed\xe2\xcf\xb1\x76\x80\x66\xa9\x41\xed\x80\x25\x54\x4d\x66\x32\x5b\xec\xe9\x75\xee\xe7\x79\x9b\x9a\x89\x00\x41\xf4\xae\x3b\x3d\xfb\x1a\x6b\xa6\x03\xfc\x8d\x05\xfc\x6c\xf6\x3a\x13\xd5\x65\x9f\xe9\xee\x7b\x0d\xc1\x3d\xac\x11\x3f\xe0\xe6\x7c\xc1\x90\x7d\x28\x65\xe5\x7f\x41\xff\xff\xce\xc7\x30\xee\x74\x3c\xd4\xc4\xed\xf0\x56\xa6\x14\x15\xd5\x06\xc5\x7a\x9d\x12\xc9\x93\x71\x8a\xb0\xef\xbe\x90\xf5\x5f\xe8\xfe\x5f\x3e\xfa\xaf\x9d\xec\xc3\xff\x7e\x75\x31\x69\xcc\x90\x5b\xfa\x0e\x55\x66\x2e\x37\xd0\x3c\x8a\x7a\xb2\x92\xeb\x94\xc5\x08\x5d\xf6\x06\x3b\x3e\x56\xd2\x69\x6a\xa2\xa4\xb3\xbe\x7e\x44\x8a\x7c\x77\x4c\x0a\xe2\xb6\xda\x5d\xe6\x95\x65\x13\x9d\x2a\x40\x5c\x41\xfb\x0d\x8f\xe2\xa7\xff\xb3\x88\x14\xe9\xd1\x30\x4f\xf0\x71\x2f\x72\xf1\x73\xd6\x63\x26\xd1\x42\x30\xac\x30\x94\xed\x8d\xa9\x07\x6a\x75\x89\x96\x21\x0f\x53\xa7\xa0\xb1\x6d\xda\x37\xdb\x76\xcc\xfe\x1e\x46\x40\xcb\xd0\xe6\x88\xdf\xb3\x02\x41\xad\xfe\xb4\x90\x00\xf7\x84\xaa\xec\x27\xe4\xb8\xdf\xe1\x1b\x30\x53\x07\xb9\x0e\x12\x35\xb0\x18\xcb\x3c\x9b\x9b\x65\x77\x4a\xa5\x50\x67\xdd\x7b\x48\x55\x9e\xee\xf2\xc9\x82\x62\x94\xc2\x5a\x94\x4d\x46\x45\xdd\x74\x7b\x95\x36\x46\x63\x43\xca\x9e\xca\xc5\x94\x33\xe2\xf5\x09\x04\xb1\xb5\xd2\x38\x55\xe0\x65\x11\xfd\x91\x34\x40\x50\x8f\x06\xf5\xa9\x7c\x0d\x04\x26\x46\x1c\x60\xdd\x2e\x0f\x8f\xe2\x27\x96\xc3\xae\x16\x0c\x08\x63\x41\xe5\x50\xeb\xa5\xdb\x46\x20\x4e\x21\x31\xae\xec\x82\x37\xb1\xfe\xed\x7a\x06\x9f\xaf\x8c\x3a\x13\x88\x75\x14\x58\x11\xf6\xe2\xbf\x50\x95\xdd\xf6\xb5\xca\x91\xe1\xd8\xa6\x8e\xa7\x6c\xfe\xe5\x86\xc4\x50\x32\xd4\xbc\xdb\x43\xa5\xc2\xe0\x57\x21\x87\xfb\x30\x0d\xb8\x74\xc2\x9c\xaf\xa7\xc3\x2c\x2d\x70\xb0\x0d\x02\x0d\xa4\x8e\xc7\xcd\xef\x2b\x61\x09\xa0\xb1\x40\xaa\x81\xbf\xa0\x07\x51\x68\xbf\x34\xcf\xad\x61\x40\x05\x13\x8e\x56\x2a\xa4\xbf\x97\x14\x12\x49\xbb\x5e\x2e\x72\xef\x6a\x54\x83\xf4\x03\x78\x68\xb1\x04\xa3\x66\xef\x5d\x55\x1e\x3b\x6d\xd8\xf1\xd2\x0c\x3c\x8a\x5d\x3f\xb2\xf6\x32\x39\x03\xd7\xe0\x27\xf8\x78\xbc\x0c\x62\x24\x48\x35\x8f\x86\x1a\xec\xbb\x72\x8a\xe5\x1a\x6d\xc0\xee\x53\x82\x3a\x19\x13\x5c\x34\x8a\x52\x77\x86\xfd\xd6\x78\xea\x2d\x9b\x00\x3e\x41\xa4\xb1\xe8\x8c\x5d\xd1\xf9\xff\xcb\xb7\x18\x64\x12\xba\x26\xb7\xf3\x4a\x1a\xde\x14\xc9\x82\xd0\x0c\x85\xa0\xbf\x67\x45\x31\x23\xb8\xe4\x87\xf3\xd8\x5a\x9f\xbf\x95\x1f\x37\x99\xee\x4b\x50\x20\xa5\xd1\xc4\x8b\xb3\x7d\x94\xc3\x2e\x2d\x28\x6a\xe5\xdb\x41\x54\xf9\x65\x84\xfc\x02\x1d\x19\x6d\xdd\x43\x9e\x5e\xb7\xfb\x5e\x92\xa2\x3b\x9e\xc4\xdc\x5f\x9f\x13\x28\xf0\x62\xbd\x3e\x62\x1c\xad\xe0\xa0\x69\x8c\x91\xea\xf2\xdf\xbf\x44\xb0\x74\x9f\xa0\xd8\x59\x5c\x3d\xfd\x73\x37\xcb\x1f\x9a\x2d\x08\x02\x84\x0c\xfb\xf8\x8b\x5c\x74\xe8\x56\x80\xd0\x70\xe1\x0d\x29\x45\xf1\x6c\x0c\xd2\xd2\xbb\x8c\x06\x80\x85\x58\xa6\x5e\x6f\xb7\x43\x68\x2b\x80\xd0\x31\xb1\x53\xfa\xa9\x1c\x50\x78\x66\x0a\x1b\x00\x8a\x51\xab\x45\x83\x38\x26\xa7\xc9\xd1\xce\x84\x51\x63\xd5\x04\xd4\xfa\x98\xb8\x35\x15\x49\x30\x2f\xeb\x4d\x05\x26\xfb\x39\x8a\xc1\x4c\x90\x5a\x9d\xca\xac\x7e\x2e\x6e\x44\xd3\xe4\xe3\xfe\xb1\x09\x34\xa5\xd6\x6e\x2b\x2f\x85\x46\x27\xc5\x9b\xcb\x35\x57\xc9\x90\xc0\xa6\x09\xed\x7e\xe3\x26\xd2\x17\x2c\x5f\x43\xa4\xc6\xd8\x66\xa5\x4a\x07\x2f\x74\x07\x42\x62\xb0\x74\x73\x9f\x0b\x9d\xa1\xbd\x69\x8d\x79\x67\xa7\xa3\x9c\x98\x30\x09\x98\x05\xd7\xab\xf2\x1d\xd5\xee\x27\x0d\x4f\x13\x32\x19\x06\xbd\xb5\xa9\x63\x6a\xe3\x6d\xb8\x11\x1d\xaa\xc4\x84\x46\x0a\xab\x83\x9a\xfd\xe2\x4d\x32\x91\x33\xc4\x6c\x43\x3f\xd1\x99\xfa\xcd\x6a\xfd\x98\x98\xa6\x58\x08\xd1\x59\x77\xc9\xb1\xb6\x3a\x95\x36\x4b\xf9\xdf\xf5\xf2\x79\xf2\x19\x1a\xdb\x66\x97\xc8\x65\x59\x8f\xde\x13\x43\x79\x40\x9d\xa1\xdb\x13\x74\x9d\x8d\xaf\x91\xec\x93\xab\xa7\x3c\x0e\xe3\x01\x91\xb4\xbe\xb9\xdc\xec\x96\x93\x27\x48\x15\xa1\xbd\xf7\x9b\xbb\x86\x41\x7c\x6c\x58\x2a\x71\xda\x3f\x94\xd5\x50\xbe\xc7\x30\x63\x2c\x51\x17\x2f\xa9\x9d\x22\xed\x16\x38\x7a\x37\x0d\x0f\x04\x26\xe3\xaf\x32\x13\x8d\xa8\xda\x05\xe7\x0f\x71\xce\x3f\x85\x2c\xfa\x8f\x85\x1c\xf1\x87\x26\xcb\x6d\xf4\xf7\x54\x5a\x95\x81\x99\xf5\xd4\xf0\x38\xb2\x40\x85\xb2\x68\xaa\xb3\x6a\xca\x39\x05\xdd\xc4\x70\xce\x51\x09\xa6\x5d\xf6\xb7\x4a\x1c\xe7\xe8\x2c\x83\x2b\x10\xa1\xf3\xa0\x32\xe7\x42\x8f\xad\x6b\x07\x49\xd6\x8c\x9c\xf2\xf8\x3c\x69\x44\x10\x82\xb8\x38\x4a\x2f\xca\x30\x19\x40\x05\xda\x8c\x1f\xca\x5c\xdf\x94\xe7\xc3\xdb\x15\xaa\xe0\x1f\xb3\x2b\xc3\x17\x7c\x63\x23\x22\x82\xfd\xee\x9b\xdd\x6e\x3b\x5e\xe0\xbe\x42\xf7\x4d\xc0\x8e\x46\x44\xdc\xb3\xdf\xa0\xeb\xba\x19\x21\xac\x33\x02\xa2\xf9\xbb\x3f\x2a\xc3\xf8\xb0\x67\x6b\x15\x04\x67\xef\xac\x0c\x09\xe6\xf1\x65\x91\x5f\xac\x4a\x66\xf5\x8b\xfd\xcf\xc8\x28\x42\xcc\x0f\x42\x5d\x7a\x19\x58\x23\x39\xa0\xa8\x89\xeb\x4f\xef\xa0\x6e\x86\x70\x60\xa3\x22\xb0\xac\xd6\x1e\x3c\x3c\x12\xa8\xf7\xc3\x58\x82\x39\x67\x9b\xef\xd7\xb8\xbd\xba\x03\x9a\x73\x04\x99\x64\x08\x6b\xc4\x25\x64\xfc\x49\x88\x28\xce\xa9\xc7\xf5\xed\xfe\xfe\x65\x71\xbb\xda\x2f\x17\xbb\xd5\xfd\xf3\xcb\x9f\xfe\x14\x26\x48\xb8\x25\x55\xd6\x6f\xd6\x28\x69\xb6\xf8\x6c\x4c\x48\x70\x1a\xe0\x2c\x6b\x2f\xb4\xb7\x5c\x9e\x0c\x8c\x44\xe2\xba\x8b\x2f\x22\xab\x5d\x75\xac\xfb\x3a\x11\x22\xc7\xf9\x4d\x14\x3a\xef\x98\xe6\x9f\xc1\x9d\x3e\xa7\x62\xcd\xa5\x4a\xc6\x48\x40\xd4\xb7\x4d\x95\x30\xc1\xfd\x6d\x54\x59\x98\xfe\x3b\x9f\x12\x5c\x6d\x0a\x46\x53\xce\x06\x4a\xbf\x0f\xd9\x31\x1b\x2e\x41\x34\x08\xa2\xc4\xbd\x8d\xa7\x72\xb0\x89\xb6\x07\x38\x16\x8d\x10\x4f\xf5\xfc\xee\x6f\x04\x0d\x02\x61\x78\x6f\x0f\xb5\xa9\x4a\x93\xe5\xb0\x3e\x1e\xce\x63\x05\x55\x1a\x04\x40\x2c\x7f\xde\x62\x42\xf1\xbb\xc7\x2b\x3b\x0d\x48\x44\x30\xfb\xb1\x2c\xf4\xa2\xeb\x0f\xd3\x80\xf0\x18\xac\x30\xe3\xb9\x12\x3d\xb3\x94\x06\x44\x6b\xfc\x4d\xbb\xa7\xf9\xbe\xc5\x79\x4a\x9e\xa3\x41\x98\x48\x6c\x1e\xe4\x99\x82\xa2\x86\x1d\x54\xc7\xfa\x9b\xa8\x1f\xc5\xcf\x91\xbf\xc5\xf0\x99\xd0\x20\xa4\x21\xce\x9b\x1b\x7d\x5a\x1f\xc5\x01\x46\xcb\xb0\xbf\x7d\x91\x0c\xb0\x38\xfd\xf8\xfa\xb0\x5b\x6f\xd7\xf7\xfb\xef\x8b\x87\x87\xd5\x6e\xac\x11\x49\x83\x38\x06\x2b\x36\x8a\x65\x72\xbc\xec\x71\xf2\xe8\xc7\x29\x21\xc8\xbc\x43\xae\x7b\xa6\x34\x48\x62\x83\xd3\x54\xb8\x52\xd8\xee\xad\x82\xfa\xad\xcc\x75\xec\xbf\x2d\xe1\x91\xd7\x77\x6e\xb7\xf2\xfa\xfe\x5c\xd4\x6b\xdd\xdd\x59\x4a\x0d\x0a\xb3\xcf\xae\x5f\xe7\x39\x56\xd7\xf8\x22\x29\x4b\x70\xf5\xba\xcb\xaa\xda\xca\x03\xdb\x69\xe5\x0f\xab\x14\x37\x35\x27\xb0\xdb\xce\xe5\xc7\xfa\x30\x1f\x84\x4d\xce\xcc\x03\x6a\xf7\x79\xd4\xdf\x7b\xe9\x8c\x73\x63\x7f\x3c\x24\xc0\x47\x76\x6a\x37\x19\xb2\x8e\x77\xa5\xad\xdb\x8f\xde\x68\x1a\x70\xca\x50\x64\x39\xcf\xde\xe1\x06\x1a\xf8\xd9\xd9\x1d\xd1\x80\xab\x14\x3b\xb0\xed\x93\xdb\x0f\xf9\x26\x34\x48\x53\x0e\xd6\xfb\xf2\x72\x6a\x06\x45\xfc\xff\x4b\xc7\x0a\x7d\x9f\x30\xda\xde\xee\x16\x2f\xbb\xfd\xe6\x65\xbd\x5c\x75\x5f\x20\x4d\x30\x68\x8f\x9e\xeb\xac\x18\xd4\x91\x27\xe7\x11\x22\xc4\xf7\x2d\xab\xff\x80\xaa\x46\x4f\x96\xa1\x38\x63\x3b\x40\x21\xc5\xcf\xa9\x69\xde\x8b\xa3\xb7\xe9\x9b\xdb\x38\x69\x20\x23\xe9\xad\x1a\x5c\xe1\xf6\x4a\xed\x9e\x06\x92\x13\x54\x8c\xfc\x23\x3b\x3d\x66\x87\xea\xf3\x8a\x2b\x0d\x54\xca\x50\xd8\xc6\x54\xe5\x7f\xa1\x58\x14\x4e\x25\xba\x3b\x0a\xa8\xdd\xa0\xe1\x54\x81\x42\xa0\x8b\xbe\x6c\xcf\xb2\xb9\x9c\x60\xb4\x12\x29\xed\xec\x89\xeb\xe7\xcb\x68\x25\x82\xc4\xa0\xe2\x05\xfe\xf1\x3e\x33\x9f\xfd\x2e\x50\x16\xf0\x72\xaa\x4a\x05\x75\xdd\xc9\x32\xf8\x99\xd7\xad\x92\xa3\x45\x92\x06\xa0\x53\xec\x26\x54\x56\x72\x66\x54\xf6\xa1\x81\x21\x1a\xeb\xea\xd2\x9b\xe7\x5f\x19\xdb\xd1\xc0\x50\x89\x79\xa7\x7a\x13\xd5\xa1\x8d\xd8\x3e\xb2\x46\xbd\xc1\x74\xb1\x33\x86\x62\x21\xa4\xc9\x8e\xb0\xcb\xa0\x72\x04\x56\x4a\x02\x16\x7a\x3b\xf1\x19\x49\x11\x4a\xc2\x90\x63\x47\xe3\x03\xb2\xbb\x91\x84\x19\x25\x21\xd3\x08\x69\x70\xce\xb1\x8f\x8b\xc9\x47\xd1\x3f\xdd\x26\x99\xe7\x5c\xdf\x74\x8a\xf0\xfe\xb0\x64\x08\x66\xa9\xe0\xbd\xfc\x01\x4e\xfe\x6a\x16\x50\x44\x49\x1c\xab\x54\xf4\xcb\x0a\xea\xc5\x4d\x05\xe3\x28\x41\x9f\x69\x97\xe8\xc7\xfb\x1a\x55\x32\xb6\xe2\x08\x4f\xa5\xf6\xf7\x8b\xd0\x94\x1b\xe3\x49\x26\x5b\x14\x71\xcc\xb5\x87\x18\x8e\x00\xab\xbf\x6a\xd2\xfc\xdd\x7f\xbb\x2f\xd6\x18\xb6\xd8\x10\x6b\xee\x3d\xe6\xff\xf9\x6b\xea\x9d\xda\xfe\x7f\xee\xf3\x2c\x10\xd6\xc6\xa7\xbd\x8b\x59\x71\xb8\x15\x0d\x38\x47\x47\xff\xdb\x58\xc4\x90\x41\x6c\xdf\x86\xf9\xa9\x4a\x18\x4d\x10\x01\x71\x2a\x3f\xa0\x9a\xbc\xcf\x84\x69\xbb\x25\xbf\x67\xf0\x81\x5d\x44\xd7\x79\x75\x87\x39\x09\x42\xea\x65\x27\x7c\x2c\xd3\x1f\x4c\x71\x85\x7c\x59\x3c\xdd\xaf\x56\x4f\xb7\xfb\xb8\x3b\x42\xad\xc0\x6a\xa6\xca\xef\x00\x3f\xc2\x01\x0b\x97\x12\x9e\x46\xc6\xfb\x51\xb4\x5b\xf1\xe4\x99\x72\x19\xa6\x83\x16\x6c\x78\xe9\x3e\xa7\x42\x11\x5e\x63\xfe\xb7\x13\x71\x7a\x4a\xd2\x94\x13\x87\x28\xc3\x4b\xee\x50\x1b\xcf\xc6\x57\xfa\x06\x8d\x30\xff\x21\xa5\xd1\x3d\xf3\x78\xf9\x26\x72\x73\x3b\x2e\x11\x53\x22\x62\xb0\x95\xcf\x5e\xea\x8c\x12\x91\x58\x99\xc1\x76\xfa\xdd\x89\x2c\x7f\x2c\xdf\xe1\xfb\x1b\x14\xdb\xa6\x3c\x9d\xfa\x79\x2f\x80\xe2\x1b\xfb\x90\x19\x0b\xf1\x74\x4e\xed\x59\x59\x3c\x42\xbb\x4b\x67\xf5\x35\xcb\x74\x5c\x81\x1f\xff\x40\x99\x80\xad\xbb\xf5\x92\x2b\x24\xf4\xc7\xd2\x58\x82\x0f\x84\x6c\x3b\xfd\x31\x2b\x06\xde\x8d\x7e\x9c\x8c\x50\x24\x22\x07\xd3\xc4\x7c\x72\x33\xa4\x51\x08\x7d\x5e\xed\xbe\xed\x4f\x50\xed\x6f\x5e\x16\xfe\xc7\x28\x12\x63\x10\xd2\x80\x38\xbe\x16\x6d\xec\xd0\x3d\x75\x25\x14\x2a\x65\x59\xc4\x2b\x16\x1b\xba\xfb\xa7\x54\x24\x64\xff\x3e\x63\x6d\x16\x41\xa1\x76\x6a\xcc\x2f\x02\x3a\x08\x62\xd3\x8b\x22\x89\xe2\xc7\xe4\x47\xe8\x30\xf5\x96\x2b\x4b\x51\x39\xb3\x0f\x67\x82\xe6\x63\x2b\xa2\x63\xeb\x23\x7f\xae\x5d\x43\x72\x8e\x2c\x41\x89\x4e\x12\xe9\x34\xdc\x73\x29\xd4\x8f\xfd\x5d\x59\xa1\x60\xde\x47\x95\x8d\x4c\x53\x3c\x96\xb3\xcb\x5d\x29\x31\x24\xf0\x8e\x5b\xdb\xac\x01\x97\xe5\x7f\xc5\x08\xa5\xc4\x08\xe9\x59\x5e\xb6\x48\xdd\xc7\xcb\xfd\x83\x30\x9a\x06\x5d\xf8\xb3\x3f\x89\xcb\x5e\xe5\x19\x14\xcd\xd1\x56\x30\xdc\xdd\x0d\x03\x93\x20\x52\x55\x68\xfd\x3f\x57\xed\x7d\x1a\x86\xd2\x8a\x55\x6c\xd6\xf7\xf7\x7f\xee\x6f\x16\x4f\xbf\x4f\x06\x44\x31\x89\x86\x95\xc6\x8d\xc8\xe6\xb5\xd6\xdb\xa1\xb6\x05\xf0\xb8\xf8\xd7\xfe\xcf\xc5\x9f\x3e\xea\x0c\x23\x15\xe2\xcf\x91\x99\x9e\x00\xd2\xfc\x00\x93\xc4\xbc\x03\xab\x58\xc5\x34\xff\xe1\x38\x25\x38\x19\x51\xce\x64\xdf\x13\x58\xc7\x77\x23\xa4\xa4\x73\x0a\xfc\x7c\xeb\x08\x69\x68\x6b\x5e\x5e\x48\xb7\xcd\x44\xf1\xb9\x2f\x47\x78\xd7\xc9\x87\x52\x8e\x8b\x8b\x9d\xd2\xd0\x49\xc6\x4e\x52\x2d\x3f\x5a\x08\x6f\xa9\xf3\x08\x5a\xe4\x3b\x1f\x5f\xf4\xd7\xca\x62\x8a\xfd\xcd\x4d\xe9\x9b\x46\x6d\x88\x4f\x2c\xe3\xf8\xec\x94\xf4\xfa\x03\x11\x86\xe2\xd6\x72\x75\x96\xe4\xe8\x46\x72\x22\xf1\x49\x9d\x4f\x27\xa8\x94\xa8\xe1\xd9\x8c\x12\xa1\x90\x27\xda\x74\x21\xc4\xf7\xac\xd0\xe5\x07\x59\x39\x54\xae\x1f\xc2\x22\xa2\x1c\xc0\xcf\xaf\xa2\xd3\xc8\x3f\xe4\x4a\x78\xc5\xdd\xd5\x29\xab\x4b\x3d\xd0\x3f\xa4\x21\x07\x8a\x75\xc7\x9b\xc7\xdd\xe8\x87\xa4\x8a\x23\xf8\xca\x51\x35\x3b\x0c\x19\x0d\x45\xa0\xb0\x86\xd6\x3d\xdd\xef\x68\xf8\x77\x57\x95\xc7\xfb\x41\x3d\x72\x7e\x2f\x0d\x05\x49\x91\x3e\x5d\xc0\xcf\xc6\xe1\x7d\x16\x72\x12\xb9\x84\x22\xa2\xc8\x7a\x90\x99\xee\x1b\xc0\x75\x77\x01\x26\x60\x3d\x97\x7d\x82\x83\xf9\x4f\xf4\xd7\x34\xd2\xfe\x0f\x21\x7f\xcd\x14\xfe\x69\x28\xb5\xb5\x0a\xb4\x51\xd0\x1d\xda\x99\xd8\x6c\x6d\xfe\x91\x29\x42\x03\x98\x91\x8d\xbb\xfd\xfc\x29\x2b\x66\x11\xee\x59\xf1\x9e\x21\x16\xa7\x57\x32\xa0\xa1\x92\x36\xa0\xc9\x54\x89\xbe\x46\xa0\x61\x70\x4c\x60\x40\xb4\xc9\xcb\x66\xfb\x37\x98\x68\xa3\xaa\x91\x3b\x07\x84\x89\xab\x19\x37\xe7\xca\x9b\x86\x77\xb7\x11\xe2\x34\x4e\x3a\xaf\xdf\x7e\xfe\xf8\xc3\x94\x62\xdc\x76\x23\xaa\xaa\xac\x77\xd0\x4f\x19\x50\x89\xcd\xd0\x7d\x71\x49\xdb\xe5\xfa\xb5\xc8\x9a\xc4\x0f\x32\x41\x8c\x32\x4c\x03\x98\xd5\x30\x40\x0e\x4d\x62\xbc\xc7\xc2\x6d\x79\xc0\x7e\xf3\xf8\xce\x19\x16\xe3\x9b\xe9\xb2\x1d\xd1\xa8\xb7\xad\x15\xc2\x1f\x24\x1c\xa1\xe1\xdc\x7a\xdc\x34\xe2\x07\xbc\x94\x4d\x39\x0b\xde\x1b\x9c\x15\x52\xcc\x42\x1f\x45\x56\xdc\x54\x99\xbe\x7e\xd6\x13\x5e\x17\x8d\x82\x18\x10\x5e\x29\xf2\xdc\x2a\x91\x75\x2e\x59\x34\x22\x3c\xc4\x3e\x00\x12\x59\xf2\x01\xeb\x6a\xfc\xb5\x11\x01\xeb\x50\xec\xfa\x05\x83\xd6\x0c\x8d\x42\x12\x20\x31\xef\xa3\x6b\x4a\xe3\xdf\x10\x9e\x8d\x9a\xf2\x07\xd1\x40\xbb\x97\xcd\x56\xaa\x68\x14\x86\xc4\xd8\x7e\x20\x22\x55\x87\x0d\x08\x1a\x85\x3c\x88\x46\x32\x1c\xf7\x95\x38\xc1\x16\xf2\xc9\x8a\x1c\x85\x32\xd6\x63\x43\x9a\xac\xf8\xe4\x0b\xa3\x40\x0e\x64\xe2\x5d\x5b\xee\xdf\x50\x4d\x9e\x60\x14\xc5\xa9\x84\x61\xd1\xb8\x7e\x3d\xf5\x46\x49\xff\x49\xfe\x1a\x94\x9e\xe8\xe0\x7f\xf4\x21\xfc\x97\x61\x75\x14\x25\x40\xd2\x61\x80\x04\x56\x5b\xd4\xff\xf6\x48\x12\xa1\x07\xeb\x84\xc8\x8f\xb3\x6f\xd2\xe4\xaa\x55\x82\xc4\xc1\x36\x65\xdc\x94\x65\xde\xa1\x19\x3f\x4d\x65\xa3\x38\xb6\x5c\xc3\x36\x7a\x5c\x74\xa6\x17\x63\xf1\x2a\x1a\xc5\x9c\xa1\x64\xa0\xb2\x44\xd8\xf5\x48\xbe\x9f\x46\xb1\x20\x48\xd0\x73\x78\x26\xc0\x69\x36\x29\x7f\xcc\x3f\x8f\x58\x46\xb8\x1e\xde\x2f\x76\x6a\x46\x16\xea\x4a\x32\x9d\x46\xb1\x56\xa8\x06\x58\x9f\x65\xf0\xc9\x8c\x4d\x88\x62\xd6\x40\x06\xd3\xd3\x4f\xd6\x37\x54\x45\xed\x1b\x5c\x58\xd6\x59\x14\xba\x19\x88\x74\x7f\xd5\xcf\xa1\x51\x02\x51\x98\x8e\x08\xc2\x36\xa6\xbf\xb9\xac\x46\x94\x00\x37\xbc\xdd\xb0\x75\xef\x05\x0f\xf5\xae\xc4\x00\xf4\x3b\x64\x9b\x5c\xa8\x09\x34\x9a\x46\x8c\x58\xb7\x30\xf5\x76\x2e\x7e\xc4\xeb\x7a\xa1\xfb\x25\x36\xe2\x61\x1a\x93\x71\x79\x0d\xc3\x0c\xdb\x72\x99\xeb\x29\xd1\x88\x0b\x2b\x9a\xe7\x3b\xcc\xab\xdd\xb7\xa6\xdc\x54\x65\x9b\x64\x54\x57\x01\xe2\x97\xbd\x08\x1a\x71\x23\x83\x21\x6d\xec\xaa\xdc\xde\x4d\xf9\xde\x9e\xce\x63\x7a\xf8\x7f\x22\xff\x1e\xa4\x5a\xa3\xce\xd2\xb1\x2c\x9a\xb7\xfc\x62\x25\x18\xf7\x87\xaa\xfc\xf0\x30\x3a\x1a\x89\x20\xc5\xf0\x13\x05\x93\x7a\xfd\x40\x1a\x89\x98\x05\x7d\x71\xac\xb9\x03\x70\x1a\xba\x9f\x84\x8d\x91\xd0\x01\x75\xed\xe0\x3b\x5b\xba\x39\xce\x39\xc3\xb8\xd1\x52\x45\x18\x8d\x89\xbc\x02\xa1\x2f\x8b\x73\x53\x8e\xdd\xc9\xfd\x38\x63\x15\xb4\xea\xee\xc6\xc3\xf5\xdd\x1c\x5f\x88\x8a\x18\x9a\xf3\xb6\x5b\xd3\x6c\x22\x10\xa9\x84\x68\xe5\xa5\xc6\xc5\x7b\x56\x1c\xea\xfd\xa1\x9c\x06\xa3\x91\xa2\x12\xab\x19\x6d\x20\xbc\x59\x3d\xdd\xae\x9f\xee\xf7\x8e\xc6\xe1\x83\xe2\x48\x31\x1b\x26\x7d\x7b\x58\xf6\x30\x1c\x1a\xa9\x54\x22\xea\xb9\x3a\x17\x6d\x5c\x86\xba\x26\xdb\xd2\x34\x4b\x71\x7a\x01\xa1\xde\xfa\xc9\xa6\x65\x84\xc0\xf9\xb5\x2a\x87\x70\x16\x7f\x54\x59\x8d\xec\xfd\xb9\x38\x09\xf5\x63\x53\x95\x8d\x95\xfc\x43\xec\xf0\x24\x3c\x8a\xb4\xb6\x4c\xe3\xfa\x7c\x3c\x76\x71\x59\xa4\x4d\x82\x1b\xf6\xeb\xd3\xfd\x2f\xa1\xf9\x34\x02\x93\xe2\xbd\x59\x6c\x6e\xfc\x09\x0c\x63\x08\xb6\x78\x1f\x79\x6a\x38\x38\xcc\x6c\xb5\x3b\x32\x82\x4a\x9b\xc9\x17\xe2\x08\xcb\xb7\x4c\x66\x73\x72\x50\x34\x0e\x02\x85\xf8\xf7\xc5\xc3\xe3\x6f\xfe\x4f\x49\xea\x1d\x90\x36\x6b\xab\x75\x46\xbb\x63\x3c\x32\xb1\x27\x5c\x0d\xd6\x6c\x7f\x58\x09\xcc\x6a\xb7\xe7\x13\x54\x36\x49\xfd\x1d\xcb\x21\x3f\xba\x13\x40\x8c\x42\x05\x7f\x9e\x8b\x0d\x38\xd7\x80\x5f\x97\xfc\xe3\xc0\x50\xfc\x98\xc5\xb9\x21\x74\x76\x58\x6d\x8c\x03\x93\x92\xc0\x22\x2e\x57\x4e\x5c\x7a\xae\xde\xe4\x46\x87\x6d\x8c\xd5\x3e\x55\xbb\xa6\x5b\x86\x7c\x79\x40\x39\xa5\xec\xf3\x48\xf9\xb3\x55\x63\x72\xf6\x48\x5b\x97\xe3\x81\xf4\xea\xdf\x62\x4e\xd2\x38\x01\x69\x2c\x1f\x1a\x1d\x79\x46\xb8\x5f\x1a\xb3\xc0\x66\x5d\x12\x51\x08\xb2\x14\x15\x5a\x3f\x4d\xea\x4d\x31\x23\x29\x2e\x1c\x68\x5e\xbc\x81\x6a\xf7\x56\x9e\x6b\x51\x68\x64\x3f\xdf\x95\xd5\xa3\xe8\xa9\x25\x34\x66\x09\xa5\xdc\xd3\x03\x1c\x8d\xea\x76\xa2\xd6\x42\x63\x26\x03\xee\x57\x01\x5c\x1e\xb0\xa6\x30\x0f\x69\xeb\x3e\xc2\x11\x14\x2f\xcf\x59\xae\xbd\x52\xac\x3b\xc6\xa3\x10\x25\x08\xb2\x7a\xdb\x54\x65\x71\xf8\x26\x7c\xdb\x94\xc6\x3c\x06\xa4\xec\x6e\xbe\x2d\xb6\xab\x70\x6f\xcb\xed\xbb\xf5\xe3\xaa\x1b\x90\x32\x44\xd2\xbf\x6e\x6f\xff\xbd\x78\x99\x4c\x40\x21\x6c\x16\xe3\xe4\xb4\xbe\xd2\x26\x1e\x7f\x50\x31\x8e\x05\x72\xa1\xf5\x12\x2d\xe4\x66\x91\xb2\x34\x56\x8a\x61\xa9\x2f\xab\x57\x78\x1f\x17\x85\xbe\xad\x32\xa4\x1c\x8d\x17\xb9\x58\x07\x32\x89\x46\x86\x98\xbf\x7d\xc9\x5b\xf1\x1f\x0b\x19\xae\x16\xa7\x37\x51\x43\x78\x7b\xae\x86\x39\x5e\xac\x43\x81\x1d\xd8\xff\x3d\x43\x75\xc1\x3d\xe3\xec\x29\xed\x7e\x84\x96\x98\x0b\xe5\x60\x9a\x24\x9c\xdc\x1e\xad\x55\xe8\xf8\xb6\x47\x74\x26\x38\x39\xe0\xd0\x27\xbf\x56\x03\x60\x59\x63\xab\x40\x34\xdd\x0c\x83\x20\xc4\xd8\x42\x9e\x2f\xde\x95\x6b\x34\x5b\x20\x10\xb8\x26\xfb\xd7\xcb\x5a\xc6\xfd\xf6\x05\x93\x8a\xc6\x40\x14\xf2\xd3\xac\xa6\x6e\x2d\x72\xa8\x61\x94\x53\xc7\x40\x53\xe9\xb4\x5c\xa7\x7a\x81\x34\x06\x16\x63\xfb\xc7\xeb\x49\xa2\x57\xd5\xf0\xc3\x22\x05\x57\xd7\xb8\x9a\x10\xed\x42\x31\x33\x81\x01\x58\xd2\x71\x93\xcf\x85\x5e\xf5\x73\xd4\xc4\x1c\x65\x45\xc0\x2b\xdd\x7e\xd5\x4a\x22\x23\x36\x28\x8d\x0d\xb5\x6d\x03\x44\x7c\xc9\xac\xd2\xfb\x36\x38\xf4\x89\x41\x12\xc4\xb1\xb0\x6d\x8f\x4c\x39\xe9\x05\xff\x6c\x13\x42\x05\xef\x84\x87\xeb\xb7\x89\x59\x0e\x4d\x88\x8c\x03\xe2\x15\xb4\xf1\xca\xee\xa1\x69\x06\x9f\x97\x89\x36\x43\x43\x96\xb1\xf3\xe8\xf8\xe1\x27\x61\x62\x79\xb7\x15\xd4\xb6\xd6\xd8\x01\x37\x29\xca\x96\xbb\xf2\x0c\xfa\x6a\x4d\x16\xc6\xe1\x74\x48\x22\x65\x52\x17\x98\x3c\xe7\x7a\xb5\x7d\xde\xf8\xb3\xc4\x81\x44\x58\xa0\xc0\x35\xa5\x5d\xf2\x36\xb9\x68\x4c\xe9\x41\x63\x34\x89\xb9\xf5\x35\x45\x0e\x37\x56\xcf\x07\x7c\x9d\xf1\x1c\x48\x92\xc4\x62\xa1\x85\xd6\x73\x80\x0a\x9a\x50\x6a\x02\xda\x59\x3e\x5b\x1e\xb7\xff\x22\xaa\x21\x74\x68\x01\x8f\xca\xb8\xb9\xac\x27\x25\xec\x84\x02\x60\x6f\xc9\x19\x47\x3e\x9b\xf9\xf7\x26\x61\xa9\x41\x4c\xbf\xa7\x16\xfa\x6f\x61\x52\x44\x74\x20\x4a\xa1\x5d\x1d\x73\xf3\x71\xed\x73\x3f\x5c\x15\x12\x9e\x28\x1d\x79\xa2\x64\x9b\x71\x7b\xeb\xc0\x11\x2b\x83\x26\x3c\xa5\x56\x57\xb6\x0d\x65\x6e\x7a\xf5\x0a\x77\x38\x0d\x18\xf2\x75\xd0\x30\xe9\x36\x7b\xef\x66\x4e\x1a\x53\x26\x07\xe5\xc9\x21\x80\x6d\x72\x29\x29\xe7\xcc\x72\x7e\x16\x36\x76\x7c\x9d\x71\x89\xf1\x63\x85\x55\xf9\xc2\x52\xd9\xaa\xd0\x35\xe9\xbe\x50\x19\x6c\xca\x9e\x2d\x52\xb6\x4f\x3f\xfd\x71\x9d\x22\x8a\x17\x63\x67\x12\x7a\x01\xed\xee\x79\x89\x24\xc2\x67\x99\x97\xa2\x98\x3c\x24\xc1\xa9\x69\x2f\xf0\xed\x2c\xbb\xd1\x26\xa6\x08\x93\x42\x7b\xde\x2b\xfd\x22\x37\x4a\x12\x49\x92\xfe\x9a\x7e\xcf\x9e\x7d\x98\x99\xc8\xd0\x36\x62\xbe\xaf\x6e\x36\xcf\xaf\x4f\xb7\xdd\xdf\x93\x20\xb1\xb6\xc9\xee\x49\x5a\x7a\xc8\xbc\xda\x3c\x4d\xa4\xc3\xa7\xb6\xeb\xdb\x58\x59\xb7\x3d\x66\xef\xd5\xb9\x86\x6a\x3a\xb5\x55\x08\xb8\x66\xbc\x89\x7a\x55\x94\xe7\xc3\xdb\x7c\x54\x9f\x28\x4e\x30\x80\x38\x9d\xa5\xe7\xb3\xfb\xd3\x2b\x25\x71\x29\xd7\x99\xde\x89\x1f\x60\xa9\x09\x9f\x68\xc9\xfb\x8f\x40\x18\x0d\x74\x2e\xed\x0f\x7c\x01\xa1\x3f\x7d\xde\x10\x05\x31\x9a\xcd\x2f\x76\xab\x7d\x44\xf6\xb7\xab\xe5\x3e\x0c\xc2\xee\xa9\x03\x0f\x46\x7e\xda\x77\x55\x79\xfc\x76\x39\x41\x55\x37\xa2\xdd\x42\x75\x56\xcb\x73\x55\x23\x50\x1b\x15\x0c\xe6\x2f\x0c\x34\xc4\xdc\xdb\x5c\x9d\x7a\x55\x80\x7f\xcc\x85\xb8\x89\xa1\xe0\xd7\x9f\x25\xe4\x79\xbd\xcd\x0a\x05\x0f\xc2\x43\xa0\xc6\xbf\xc0\x40\x6a\x6c\x68\x32\xf4\xb9\xf0\x25\x83\xaa\x7b\x5c\x34\x08\x52\xec\x66\x19\x24\x67\xe2\x3e\xda\x47\x38\x34\x60\x0c\x1c\x16\x7c\x57\x6e\xca\xc9\x76\x45\x83\x34\x46\x5c\x2d\xaa\x25\x58\xf6\xd4\xa0\xfe\x49\x03\x61\xc3\x2d\x7f\x9b\xda\x98\x7f\xda\x99\xa5\x81\xe9\x9c\xf9\xee\xcf\x50\x37\xf8\xca\x0e\x7f\x38\x25\xce\x64\xbc\x6e\xca\x0a\x9e\x4f\x56\xa9\x7c\xf6\x8e\xb6\xa1\x27\xee\x1c\xab\xdc\xa6\x37\x9f\x46\x4d\xe3\x6b\x88\x45\x00\xa2\x67\x67\x2d\x45\x9e\xff\x0e\xdd\x4d\x88\x25\xc1\x68\x03\x2a\x15\x86\xd1\xc2\x69\x0b\x76\x77\x30\x21\x3a\xf4\x9a\xa3\x68\x66\x7d\x99\x4d\xed\x69\xc2\x02\x54\x52\x2a\xe0\x67\x9b\x0a\x6f\x72\xd1\x7d\x03\x65\x49\xe0\x2b\x59\xdf\x20\x1f\x59\xa1\x5e\x6f\xe9\x94\x25\xd6\x84\x76\x63\x25\x8e\xf8\xb6\x83\xeb\x51\xca\x43\x9d\x74\xf2\xa1\xcd\xa0\xe2\x4e\x79\x62\x99\x96\xff\xaf\x94\x9f\xab\xe0\xb8\xb1\xa9\x50\xc2\xeb\xe0\x75\xa4\x5c\x07\x18\xfe\x87\xfb\x67\xfe\x09\x88\x98\x84\x41\x1f\xc1\xcc\x57\x7f\xa8\xa0\xdc\x67\xce\x48\x8a\x78\x98\xb2\x29\x29\x15\x8a\xa3\x58\xc9\xc3\xfd\xb2\x07\xa1\x52\x2a\x29\xd8\xdc\x14\xd4\xb9\x82\xd7\xc2\x29\x85\x8c\x60\xa8\x94\x4a\x41\xb1\xa6\xba\xbc\xf9\x57\xf7\x41\x19\x44\x7e\x4b\xd9\x81\x38\x76\x34\xc1\x6e\x80\x8a\xb0\x74\xbb\x40\x5b\xa8\x3b\x80\x5d\x39\x1f\x57\x4c\x7e\x8b\x54\x3e\x5a\x41\x10\x32\xe8\xd7\xed\xed\xf7\xd5\xda\x9f\x56\x87\x12\xc3\x0f\xab\xb8\x91\x83\xbe\xb9\x6c\x51\x82\x63\x72\xc9\xda\x58\x13\xcf\x5e\x82\xf3\x31\x2b\x9a\x4e\x29\xaf\x8d\x2a\x2a\x91\xb5\x7b\xd4\xa7\x75\x37\xaa\x8d\xc1\x94\xd7\x7a\xba\x2d\xbc\x51\xe7\xa7\x95\x8e\x6e\x46\x01\x27\x88\xd1\xef\x09\x07\xbf\xca\x19\xc7\x73\x1b\x38\x77\x92\xbc\xc7\x63\xd6\xa0\x14\xf3\x17\x49\x15\x35\xa1\x46\x05\x8f\x93\xa5\xe4\xdc\x9e\x27\x95\x15\x6a\x18\xb3\x41\x72\xbb\xb0\x2c\xdf\x4a\xcf\xbc\x73\x3f\x94\x05\x10\x78\x35\xb3\xa6\xd4\xdd\x8b\xc4\xc2\x38\x88\xc1\x93\xce\xab\xf7\x4c\xc1\xb0\x29\xc0\x42\x6a\xcd\xb4\x7a\xfe\xc6\x0f\x28\x6a\x2b\x57\x37\xbf\xa2\xb0\x28\x88\x11\xc6\x54\x9f\xf2\x09\xd5\xfd\x4a\x26\xf3\x3f\xd7\x9d\xa1\xbf\xfc\x59\x22\x2b\xe0\x24\xb4\xb6\x0a\x97\x9f\x7c\x19\x97\xf1\xdf\xd3\x88\xfe\x3f\xa6\xf6\xee\xfc\x31\xb5\x55\x0b\xd7\x39\xb4\xe8\xb4\x9e\x14\x45\x59\xcc\x39\x2a\xdb\x56\xe5\x39\x6f\x43\xee\xf1\x3b\xc9\x12\x62\x79\x4e\xe7\x53\x5e\x0a\xbd\x2c\x35\xfc\x76\xdd\xe3\x66\x09\x4d\x91\x24\x87\x90\x8a\xa5\x15\x36\x1b\x23\xb5\x46\x33\x9f\x25\x54\x84\x0e\xcf\x5d\x7b\x40\xf7\x27\x0b\x13\xa3\x41\x9c\x3a\x1e\x76\xfb\x46\xdc\x01\xcc\x2e\xb6\x8c\x06\x89\x72\x8b\xb2\x57\x40\xbb\x2b\xab\x45\x7e\x65\xc1\x34\xe8\x67\x31\x1a\x58\x11\x85\x6f\xaf\x0f\xbf\x0f\x97\x4e\x46\x59\x88\x55\x59\xaf\x35\xd5\x19\x8d\x7f\xf2\x1c\xa9\x8c\xe2\xbe\x83\xb5\xd0\xbd\x97\xe0\x64\x20\x93\x09\x7a\x75\x3d\x58\x05\x0a\x47\x28\x9c\x7d\xc7\x18\x53\x56\x97\xbc\xb3\xbd\x6e\xa3\x72\xd7\x9d\x9c\xee\xaa\x8c\xa7\x51\x64\xa3\xdb\xd5\xa9\x54\x6f\xed\x86\xb2\x85\xee\x31\x73\x43\x98\xe5\x36\x97\xb5\xc8\xaa\xed\x5b\x76\xc2\xaf\xf6\xbb\x08\x13\x81\x49\x99\xa7\x53\x9f\xce\x8d\x67\x96\xcb\x1c\x8e\xf5\x6f\x73\xe9\x11\x13\x9a\x82\xe5\x5e\x69\x80\xe3\x46\x4c\x17\x74\x26\x8c\xc0\x4a\xca\xbe\x98\xd5\x3b\xa0\x4c\x8a\x04\x71\x91\xd6\x43\xca\x46\x76\xe7\x09\x3f\x6e\x6c\x65\x4d\xe8\xdf\xfd\x67\xf0\x2d\x52\x5b\x67\xbf\xa6\xca\x61\x64\xf1\x48\x99\x54\x1c\xd3\x13\xdc\x3c\x8f\xe7\x06\xae\x55\x20\x3e\xab\xbc\xcf\xd4\x40\x99\x34\x21\x8a\x36\xb9\x8e\x0c\xee\x74\xdf\x20\x3b\xbc\x75\x0f\x42\x25\x0c\x71\x2b\xb7\xeb\xcd\x1e\x45\x3d\xfd\xdf\x85\x46\x00\xb2\xc8\xd1\xda\xa0\xc9\xde\x61\xef\xfd\x46\xea\x7d\x9e\x15\x3f\x7c\xca\xc3\x40\x4a\x0c\xe0\x34\x88\x06\x9f\xf3\x5e\x90\xb0\x3b\xa8\x35\xf2\x93\x2d\xe7\x7b\x52\x62\x63\x26\xb0\xb5\xf9\x4c\x95\x04\xb1\xe5\xdd\x81\xd0\xfa\x2d\xba\x72\xf1\x8d\xa8\xe1\x56\x1c\xc5\x01\x7a\xdd\xa9\xfe\x86\x9a\x28\xc6\x4e\xfe\x09\xaa\x36\xe5\x5d\x3c\xbc\xba\xd3\xf0\x20\x49\x29\xf1\x92\x9e\x73\x24\x0d\xca\x09\xa7\x18\xce\xdf\x66\x87\x4c\x42\x35\x82\x58\xf2\x30\xb5\xfe\x33\x2f\xeb\xe5\xf3\xb6\x11\x85\x16\x95\xde\x94\xb7\xfd\xe1\x18\xfb\x73\xed\x0a\x60\x97\x32\x6f\x8a\x4e\x79\x24\x63\x94\x4b\xc2\x0d\x64\xd3\xbe\x2d\x2e\xcb\xf3\x0e\x7e\x5f\xf7\x8d\x78\x04\x16\xbd\xba\x14\xef\xf5\x7b\xbd\x11\x0a\xaa\x3a\x0e\x93\xee\xf4\x60\x30\x96\x3b\x55\x80\x8a\x2e\xb3\x7a\xb0\x6e\x6c\x1c\xc4\xb8\xbc\x2d\xb4\x5e\xe8\xea\x9f\xe7\x3c\x17\x15\xea\x61\xcf\xbe\xe6\x3c\x0e\x09\x96\x80\x3f\x44\xdd\x6d\x03\xdb\xa6\xec\x51\x62\x3c\x21\x29\x16\x2d\x3a\xad\x8a\x79\x5b\x76\xca\x69\x12\x61\xfc\x7d\x73\xb6\x9a\x91\x13\x22\xcb\xfc\xf7\x53\x25\xb0\x32\x28\xa1\x00\x93\xa9\x4c\x54\x97\xa9\xa2\x0d\xe5\x54\x27\x18\xf3\x9e\x4e\x75\x3b\x39\xba\x3f\x83\x46\xea\xdb\xbe\xcd\xef\x8f\xea\x56\x5c\x9c\x76\xdc\x5d\x69\xe9\x5b\x5f\x19\xc2\x51\xce\xc0\x0a\xe6\xef\xa0\x10\x45\xb3\x83\xea\x98\x15\xbd\xfb\x5e\x37\x28\x0d\x49\x67\xd6\x6a\xae\x6a\xd2\x7e\x98\x09\x63\xb7\x01\x78\x31\x19\x12\xba\xf0\x81\xf3\x40\x72\x87\xad\x2d\x2b\xeb\x5b\xfa\x6c\xc6\xf1\x18\xe7\x84\x23\x74\xce\x36\xa1\x1e\x41\x67\xa2\x0b\xc4\xae\x03\xaa\x7e\x17\xe1\x9c\x46\xa1\xb3\x3e\x5c\xbc\xa3\xc4\x46\x7d\x2d\x0e\x4b\x39\x57\xa1\x0f\x61\xf0\xbc\xb8\x22\x3e\x64\x75\x73\x73\x59\x5f\x89\x04\x50\xce\x8d\x08\x3b\x15\xc9\xd1\x6f\x76\x14\x3e\xca\x53\x61\x7d\x0e\x5d\x54\x85\xb2\xd1\xa3\xda\xc7\x27\x4f\x5c\x24\xd6\xc8\x60\x7b\x82\xea\xf8\xe0\xe9\xb6\xed\xdf\x01\x75\x6f\x17\xeb\x97\xdb\x97\xe7\xcd\x66\xf5\xd2\x1d\x11\x29\xee\xae\xa7\xbd\xed\xcb\xee\xb1\xca\x67\xf5\x0d\x67\x68\xd8\x94\x0b\x63\xd9\x87\x9d\x4e\xd2\xa6\x2c\xfe\x9b\xf9\xd3\xc9\x80\xa2\xd0\x8d\x35\x40\x59\xd5\xaa\x2a\x3f\x96\x68\xa0\x39\xbe\x50\x19\x72\xdc\x56\x6b\x61\x2c\x60\xe3\x33\x8d\x9e\x11\xfb\x64\xf8\x2e\xca\x48\x61\x2b\x6e\xb3\xdb\xfd\xb9\xfc\xaa\x7f\xc5\x25\x67\x5e\x3c\xed\x11\xea\x5a\x1c\x26\xd3\x50\x1a\x86\x91\xe6\x6e\xb5\x78\xdc\x3f\xac\x1f\xd7\x3b\xff\x6b\x74\x90\x6a\xde\x6b\x94\x5a\x35\x1d\xbb\x70\xfa\x11\xb4\x03\xf4\xbd\x9c\x6b\xec\xd5\x74\x49\x96\xf3\xd0\x99\xf3\x77\xa5\x5c\x0b\x63\xa9\xb2\x65\xae\x3b\xfc\xfb\x08\x18\xce\xb5\x06\xec\xda\xb8\x3d\x07\x99\x24\xee\x10\x24\x1a\x2f\xf9\x66\xb7\xdc\x6f\x5f\xd7\xdb\xed\x6a\xbf\x5b\xaf\x5e\x3a\x30\x2e\x07\x9e\x20\x5e\x68\xbd\x5e\x3e\xff\xb2\x79\x34\x9b\x49\x73\x13\xc5\x48\xda\x5f\x14\x70\x2c\xb3\x91\xeb\xa7\x1f\xc1\x28\xea\xaa\xc8\xb2\xae\x97\xe7\x66\x4a\xa6\xa7\x69\x90\x6a\x6d\x4b\x17\x8b\xdd\xa3\x13\xc1\x1b\x7d\x49\x1a\x18\xeb\x49\xb7\xdc\x3c\x78\x0c\x9c\x3b\x42\x48\x98\x08\x04\xd0\x8a\x62\x23\xb2\xe1\x6e\x92\x12\xa6\x8d\xf0\x3c\xe3\x89\xb4\x10\x4d\x89\xb6\x44\xd5\x73\x0d\xd5\xc2\xe5\x94\x5f\x6e\x11\x69\xa8\x3b\xa5\xcd\x09\x06\xd0\x0d\x88\xa2\x94\x0e\xaa\x0a\x58\xfd\x18\xb6\x02\xd2\x88\x59\x98\x7b\x9f\xf2\xed\xbd\x51\x50\x37\x84\x73\xa4\xe8\xac\x1e\xd7\xdb\xed\xfa\xf9\x69\x7f\xf7\xfc\xb2\xbf\x79\x7e\x7d\xda\xfd\xd9\x0d\xd1\x12\x99\xb4\xce\x9b\x7d\xff\xfc\xe4\x7b\x4c\x69\x1c\xdb\x06\x61\x6d\x05\xb8\x90\x10\x67\x65\xb8\x44\x03\x4f\xe7\x23\x54\xa2\xdf\x33\xd3\x38\x89\x42\xde\xf7\xc8\xfd\x83\x5b\x8a\xa1\x70\x7e\x37\x96\x52\xf0\xac\xb4\xe6\x93\x1a\x6b\x3b\x0a\x93\xf5\xf5\x37\xd1\xc0\xaa\xac\x47\xaf\x50\x1a\xd3\xd0\x23\xf7\x11\x8b\x9a\x95\x85\x03\x8e\x63\xad\x79\x7c\xb7\x93\x24\xc0\xca\xee\xfa\x65\xb9\xdf\xac\x5e\xf6\xab\xdd\xb7\xfd\xe6\x65\xb5\xdf\x2e\x1e\xba\x9f\x9b\x50\x16\x4a\xeb\xe8\xe3\x2b\xd6\xcf\x27\x28\xbc\xf0\xc3\x1c\x92\x6d\xb6\xd4\x96\x26\xdc\xe6\x49\x1f\x20\x4e\x65\x81\x48\x91\x6c\x62\x79\x49\x53\x9a\x00\x8a\x0d\x6c\xa1\x59\xac\x72\x73\x0b\xef\xa8\x9c\x56\x67\x9f\xc0\x4d\x53\xa6\x03\x61\x25\xb2\x0b\x6d\x25\x10\xb2\xe2\x80\x3e\xa9\x7e\x00\x58\xcc\xda\x63\x56\x40\xb5\xd2\x07\xe8\x5a\x99\xdd\x08\x63\xeb\xb4\xbe\x27\xeb\x51\xfe\xe3\x2b\xe3\x5c\x62\xa5\xc7\xad\x01\x0f\xa5\x28\x36\x28\xbe\xeb\x4f\xc3\x35\xe0\x94\xa9\xcb\x3c\xd3\x59\xd3\x46\x07\xd1\x78\xfb\x4b\x85\x0a\x71\xa9\xd1\x90\x37\x62\x38\x69\x25\x51\x90\xf4\x93\xf6\xe6\x7c\x99\x22\x42\x53\x29\xb4\x71\x4d\x08\xdb\x84\xac\x17\x8d\x15\x1e\x1b\x5f\xa7\x54\x1a\x41\x19\x7b\x1b\xa5\x65\x3f\x21\x47\x1c\xf5\x64\x98\x92\xd2\x99\x70\x80\xfa\xf1\x68\x41\x28\x16\x02\x3d\xbe\xbf\x4a\xc7\xb4\x97\xb7\xcd\x72\x03\x7d\x9d\x33\xd5\x51\x88\xd7\xb4\x6e\xda\x0c\xc6\xff\x91\x5b\x34\xb3\xcb\xd3\xea\x1a\x9a\xdf\x66\xd9\xb6\xe3\x0b\xd2\x10\x20\x07\x6f\x73\xbb\xf3\xe5\xa5\x14\xc2\x18\x91\x40\x03\x26\x3e\xee\xe8\x1b\xa8\x5e\xb7\xb7\x93\x5f\x04\x5c\x61\xad\xc7\x96\x4b\x26\x3f\xc3\xa4\x21\xd2\xde\xdb\x1b\x8c\x29\x03\x66\x70\xfe\x7b\x0c\xa4\xd4\xe3\x1a\xb3\xfa\x74\x6e\xe0\x11\x8e\x65\x75\xd9\x66\xff\x9d\xbc\x32\x22\x20\x11\x2a\xa1\x3f\x94\x87\x41\xa6\xff\x65\x31\x4b\x04\x29\x08\xb0\x93\x1a\x2f\xdf\x79\x3b\x5e\x9d\xda\x24\x84\x0c\xc5\xc2\xbc\xd2\xe3\x78\x18\x09\x39\xf6\x99\x1e\x2f\xff\xcc\xca\x41\x15\x4f\x10\x29\xb1\x3c\x2d\xdb\x64\x1a\x5b\x78\x63\x38\x8b\x20\x8a\x60\xe8\xba\xae\x17\x1d\x92\x51\x10\x23\x93\x1e\xe5\xdf\x06\x94\x13\x3b\x8b\x3e\x0a\x13\x61\xa4\x51\x7a\xd9\x38\xf5\xa6\xdf\x86\xc7\xa8\x4d\x99\x56\x4f\xb7\xd8\x92\x6f\x17\x92\xc1\x3a\x22\x42\x6a\x10\xab\x88\x4f\xf1\x16\xc4\xa4\xe2\x2b\x42\x13\x98\x1e\xd8\xe5\xd4\x4e\xdc\xb1\x88\x58\x69\x1a\xfc\x49\x36\x00\x18\x09\x56\x8d\x6f\x50\x14\x19\xbc\x92\xac\xc6\x09\x8d\x06\xa9\xfe\x10\xa5\xd8\x24\x6d\x40\x58\xdd\xad\x36\x26\x70\x84\x94\x6e\x88\xc1\x16\x96\x84\x06\x7e\x8e\x3b\x9b\x22\x4a\x39\x86\xb8\x7b\xe4\x9d\x81\xde\x0e\xb6\x58\x11\x87\x14\xb1\x07\xaa\x3c\xca\xac\x00\xcc\x1f\x3c\x4f\x71\xe8\x26\x4b\x45\x6c\x42\xd9\xcb\x14\xdd\x34\x9d\xef\x97\xff\x3d\x93\x68\x60\xf4\xeb\x68\xc0\x53\xd2\x49\xc3\x60\xb1\xf5\x0e\xe0\x13\xbb\x50\x2a\x68\x4c\x70\xf9\x96\xe7\xcb\x63\xa6\xaa\xf2\x77\xb8\xd4\xa8\x0d\x8f\xdc\xe6\xd9\x3d\x56\x50\xa1\xb1\xb1\x8a\x78\x78\x51\x35\x43\x14\xbf\x7f\xcd\x05\x23\x54\xf7\x3f\x02\x0b\x0b\xb8\xec\x4e\xab\xa1\x03\x65\xab\xe4\xaf\xf1\x4f\x61\xca\x90\xce\x10\x2f\xcf\xcb\x66\xce\x34\x98\x8a\xd4\x84\x88\xa9\xff\x69\x3d\x6e\xee\xe0\x6a\x97\x15\x22\x65\x98\x1e\xdc\x9d\xf3\x7c\x23\x2e\x43\xb8\x97\x90\x81\x21\x6e\xf2\x3c\xc1\x47\x5f\xbf\x5d\x19\x03\xaa\x39\x0f\x21\x14\x42\x32\x4b\xd6\x42\xd2\x97\xdd\xda\xfb\x62\xb6\x90\xc6\xa0\x2a\xcf\xde\xd1\x07\x6d\xd6\xe2\x0e\x2a\x66\x33\x14\xbb\x56\x59\x75\xce\x65\x6f\x27\x3e\x79\x2c\x9a\x02\xc2\xb6\xb6\xde\x99\xb1\xde\x95\x77\x6d\x10\x31\xe8\xef\xcd\x87\x48\x42\x6b\xa2\xed\x52\x66\x27\xd8\xb5\xe7\x3a\x15\x10\x86\xa8\xe9\x08\xc7\xcc\xa9\xb1\x65\xa5\x7e\x29\xf3\xbc\x7c\xbf\x9a\x21\x10\x11\xf0\x52\xf6\xc2\x71\x36\xba\xf3\x24\x41\x6c\x85\xfc\x46\xa5\x2c\x01\x2a\x11\x51\xd7\x9c\xef\xd0\xb6\x53\x28\xa7\x30\x24\x45\x3e\xa7\xdf\x5a\x8b\x17\x10\x7a\xd0\xf4\x16\x26\x09\x70\xcd\x72\xd2\x20\xd3\x8f\x73\x92\xf8\x5a\xc7\x49\x54\xf0\x02\xed\xe2\x3e\xb4\x07\xb0\x03\x65\x10\x5a\x03\xda\x81\x5e\x52\xfb\x2d\x1d\xc6\xc7\xa7\x73\x32\x48\x63\x66\x2f\x08\x55\x56\x2c\xdd\xae\xde\x64\x83\xd5\x46\x92\x88\x24\xca\x4e\x7f\x1a\x8f\xfb\x33\x7e\x44\xaa\x74\x67\x2b\x3a\x14\x1c\xa1\x32\x0c\x43\x94\x1d\x44\xfc\x34\xb6\xd5\xfe\x86\xd0\xdb\x7f\xc2\xbf\x06\xf8\xe9\x0e\x35\x1a\xfe\xe5\x4f\x0a\x01\xd6\xbc\xac\x65\xd5\x4d\xa6\xef\xca\xca\x09\x7f\x67\xf2\x57\xe0\x68\x89\xf8\x79\x27\x3b\xe6\x88\xb2\xd7\x6a\xb7\x54\x46\x61\x6c\xac\xba\xf7\xe3\x94\xae\x26\xa3\x28\x26\x16\xad\xaa\x33\x73\x79\x44\x78\x10\xd6\x09\x7e\x25\xa3\x41\x65\xa4\x05\x96\x79\x2d\x22\xd9\x63\x3e\xdd\xc1\x38\x90\x28\x3e\x95\x83\x69\x9e\x8b\x36\xa0\x1f\xac\xd6\x92\x12\xc0\x7a\x6b\xd9\xa8\xee\x4f\x31\xb1\x9b\x9f\xf8\x01\x8f\x97\x2f\xc4\x98\xfd\xf8\x34\xc2\x92\x53\x3b\x7b\x10\x28\x3b\xa9\x69\x4b\xc6\x08\x92\x9a\x72\x51\x37\x63\x4c\x9d\xe4\xc4\x20\x6e\xe8\x16\xa6\xf3\x5a\xa6\xcc\xe8\xc4\xc1\x58\xf1\x22\x92\x5f\xa9\x1f\xfd\x2d\xeb\x12\x2a\x53\x6e\xa9\x64\x05\x7c\x78\xe5\x1e\x8c\x1a\xca\x72\x4c\x34\x92\x42\x59\xa8\xf7\x01\x9a\x5d\x9b\xea\x35\xd9\x3b\x38\xe9\x20\xab\x97\x38\x5c\x16\x06\xf1\xb0\x94\xa9\xc1\x8c\xed\x71\xf1\xf4\x6d\xb1\xdb\x2d\x9e\x36\x2f\xcf\xff\xfa\x73\xb3\x78\xf9\x7d\xf1\x87\xdf\xac\xa5\x8a\x2c\xd9\x13\x9c\x1c\xed\x8c\x04\x23\x95\x4a\xc6\xc8\x77\xb0\x3b\xf6\xe2\x30\xea\x26\xe1\x51\x8d\xac\xf2\x66\xe8\x46\x4a\xa5\x06\x2b\x80\x81\x11\x65\xa7\xbe\x4b\x25\x84\x82\x39\xa5\x94\x07\xd0\x87\xae\x4e\x3d\x7a\x9e\x00\x84\x39\xbf\xd5\x7d\x53\x76\x6c\xa6\xbd\x6c\xd7\x21\x1f\xd1\x4b\x13\xa4\x98\xaf\x0f\xf8\xa6\xa3\x84\x5e\x9a\x10\x70\x3e\xa3\x8d\xc9\xfa\x78\xca\x9d\x28\x1b\x2e\x4d\xe3\x5f\x69\xa2\x14\x37\xd0\x5e\x1c\xdd\x97\x45\xeb\x81\xa0\xf2\x64\xda\x19\x03\xc4\xb7\xa5\xdb\x7c\xa3\x2c\x76\xbb\x47\xe7\xc6\xc9\xdc\x45\xa8\x40\x08\xed\xaa\x69\x58\xc9\x58\x4c\xf9\x1d\x2a\x50\x1c\x8b\x45\xf2\x7c\xe9\xa1\xbd\xce\x5e\xc0\x0d\x21\x22\x71\x8a\x76\xcd\xbf\xa1\x2a\x9f\xca\x66\x8b\x99\xd0\xf8\x57\xa8\x90\x5b\x90\xcb\x46\x14\xe0\xf3\x60\x15\x8a\x14\xc3\xeb\xdf\x51\x44\xea\x34\xaa\x13\xab\x50\x33\x0f\x07\xb4\xd8\xe7\x5c\xbc\x4f\xdf\x1e\x15\x25\x26\x8d\x07\xf6\x49\x1e\xcc\xa1\x62\x91\x60\xc7\xfa\x8f\x32\xef\xaa\xea\x2a\x16\x3a\x70\x73\x76\xd5\xbc\xdd\x55\xe5\xb1\x8d\x46\xe6\x6f\xa1\x8a\xb5\x0c\x9c\x58\xe2\xf2\xf9\xf9\xb7\x99\x22\xb0\x8a\x8d\xc1\xe6\xc7\x09\x67\x27\x6e\x0b\xee\x48\xc2\x38\x03\xef\xe1\xd7\xee\xae\xdf\xc5\xfb\xd5\xb3\xfa\x0f\x09\xfe\xf2\xe3\xa5\x41\xec\xd3\x1e\x81\xb1\x4e\xfb\x70\x28\x75\xa1\x12\xcd\x50\x05\xca\xe2\x5d\xae\x35\x88\xa8\x4a\x8c\x95\x8c\x47\x58\xc7\xc0\x93\xef\x36\xab\x9d\x72\xfb\xc3\x15\xac\x48\x51\x22\x31\xbd\xda\x7b\x3d\x80\xaf\xd7\x72\x45\x23\x89\x20\x99\x85\xac\xb1\x8e\xf0\x47\x56\x35\x67\x91\x8f\x9e\x1c\x15\x31\x16\xbb\x6f\x44\x23\x8a\x41\x82\xa0\x98\x8e\xd1\x09\xcf\xa9\x26\xbc\x40\x36\x52\xd2\xf8\xe4\x2b\x79\x10\x62\x9b\x15\xcb\x91\x18\xf1\xfa\x4e\x88\xe2\x71\x17\x97\x5b\x15\xbc\x5b\xd1\x88\x9b\x79\xa8\x86\xe2\xc2\xde\x9f\xfd\x01\x9a\xb5\xee\x4e\xa1\x02\xd4\x7e\x11\x5a\xe3\xdb\x7a\xd3\xc1\xb7\x6d\xa1\x71\x92\x06\x2b\xae\x12\x04\xcf\xbc\x97\x0d\xb4\xbb\xe0\xac\xe4\x3d\x55\x1c\x38\x0a\x5f\x6c\xde\xb2\x3c\xf7\x66\x3e\xfe\x3b\xd3\x50\x45\x2e\xee\xc4\xc2\x4d\x07\xa4\x1d\x9f\x23\x55\x34\x1c\x02\x92\xf6\xe5\xe9\x17\x99\x9e\x12\xa9\x75\x0b\xc6\x46\x67\xcf\x82\xf4\x5f\x2c\x63\x85\xd8\xa4\xbc\x3c\x84\x09\x9d\x7c\x9d\xe4\x01\x0a\xda\xdf\x94\xe7\xb1\x4a\xd6\xa7\x08\x01\x25\x39\xb3\xc4\x5d\xa8\x9b\x7d\xb4\x17\xca\x3e\xd6\x76\xa1\xc2\xa9\xb7\x6f\xef\xd2\xde\xea\x41\x58\xe9\x2f\xff\x41\x00\x6c\x9f\xd8\x65\x73\x18\xc7\x2a\x45\x98\xb0\x5e\xb1\x19\x14\x8d\xd5\x27\x1a\x4e\x0c\x1f\x04\x29\x45\xac\x6a\x90\x17\xbf\x5e\xeb\xf7\x69\xcb\xa6\x1b\x09\xd2\xeb\x7c\x2f\xbf\x59\xd6\x00\x89\x46\xfb\x99\x52\x54\xe0\xa4\xb5\x11\xc6\xce\xdd\x3f\x7f\x51\x3a\x8c\x85\x95\xee\x83\x76\x27\xff\x63\x28\xf5\x37\xbe\x8b\x90\xc6\x98\xa2\xe2\xd1\x4e\x4a\x92\x0c\x21\x54\xca\x30\x85\xb2\x42\xba\x73\x5c\xa7\xca\x40\x84\x9b\x7d\x1b\xf9\xb7\x09\xf4\x4a\x54\xf9\xa5\xd3\x15\xb1\x83\x74\x10\x72\x5c\x26\x96\x0f\xfd\x5f\x54\xda\x7b\x99\x6e\x2d\x33\xfa\x93\x25\x4d\x07\x51\x94\x50\x5f\x0b\xb4\x0e\x15\x3b\x10\xc7\xd9\xd7\x45\x93\x00\x90\xe9\xf9\x00\xc7\xb2\xa8\x3b\x60\xcd\xae\xbc\xad\xca\x93\xff\x7a\x92\x44\x1e\x87\xbc\xea\x4d\x11\xdb\xbf\x1b\x6c\x25\xed\x9d\xdd\x1a\x5e\x59\x0e\xdd\x26\x52\x8f\x21\xa5\xd7\xff\xf5\xe7\xe1\x12\xc3\xa7\x97\xd5\x6d\x77\x6a\x93\xe0\xde\xfa\x5a\x64\x0d\x68\x23\x0a\x6b\x88\x7e\x85\xae\x70\xc3\xc3\x50\x23\xb8\xfa\x54\xfe\x80\x4a\x96\x3f\x3f\xb9\x35\x51\x10\x48\xef\x7a\xf2\x25\xc8\xcc\x8f\x67\x11\x32\x55\x3f\xaa\xac\x81\x5b\x30\x58\x38\x2b\x0b\xaf\x03\x3b\x9c\x5a\x3a\xe2\x4e\x4c\x55\xf9\x49\xae\xe3\x48\x85\xc3\xbc\xa4\x5b\x8f\x74\x12\x24\xca\xca\x1a\x56\x00\xe8\xa2\xf6\x8b\x2b\xa1\x84\x10\x57\x3b\xfa\x03\x30\x5d\xdc\x36\x70\xfa\x9f\x29\x0b\x4e\xd3\xd8\xaa\x4a\x22\xdc\x15\xbd\xfe\xdc\x01\xee\xd4\xdc\x9d\x36\x83\xdf\x42\x75\x1a\x58\x3c\xfe\xad\x5d\xc1\x3e\xca\x2a\xd7\x03\x71\x2c\x9d\x46\x0c\xf7\xb8\x7b\x04\x25\x0d\x34\x57\x74\x1a\x71\x6c\x96\x0c\x8d\x61\x7f\x81\x65\x99\x80\x6f\x46\x95\x67\x7f\xd6\xc4\xe0\xec\x7d\x5c\x3f\xed\xef\x5e\x2d\xe3\xea\xfe\x79\xd1\xbd\x0a\x82\xc4\xcc\x4a\x20\x96\x1f\xc8\xb2\x41\x39\xb1\xee\x68\x6c\xc5\x3a\xea\xf3\xc9\x96\x29\xfc\xdf\x13\xcb\x6a\x14\x4d\x79\x1c\x2e\xd2\x5a\xa4\x80\xd1\x65\xd5\xae\xd0\xbb\x8f\x72\x80\x57\xd5\x42\x85\x4a\x79\x01\x80\x46\x4c\xee\xb4\x22\x5a\xf7\x40\x91\x9b\xed\x23\x86\xbf\xa3\x29\xa1\x12\x6e\xa8\x8f\x41\xf7\xdb\xdb\xe5\x72\x5f\x0f\xb9\x5d\x5a\x87\x81\x77\x99\xfc\x67\x29\xbf\x97\xd5\x8f\x69\xde\xac\x75\xc2\x11\x66\xa2\xb3\xfa\x84\x9b\xd6\xf4\x96\x8e\xbe\x11\xe2\x18\x91\x77\xf7\x77\x9f\xb4\xc8\xdc\x13\x18\xbf\x3d\x26\x48\x90\x7e\xfa\xf1\x56\xe6\xe8\x70\xf0\x00\xc6\xef\x26\xda\xa4\x29\x26\x4f\x32\x17\xea\x47\xfd\x21\x46\x9b\x9c\x36\x10\x52\xcb\xe5\xbe\x3c\x17\xe8\x0d\x32\xe2\xb1\x43\x10\x04\x71\xc7\x82\xde\x66\x87\xee\xef\x89\xb6\x21\xdd\xb9\xd0\xa2\xca\x84\x6d\x72\xfb\x83\x60\x7d\xb6\x45\x3d\x24\x4b\x0c\x66\x09\x04\x86\xe2\xa3\xc1\x90\x07\x29\xcb\xee\x40\x0c\x1c\x33\xfd\xe6\x9c\x67\xa7\x5d\x39\x2a\xe0\xf9\x21\x26\xc5\xa8\x1c\x95\x06\x77\xbd\xba\x4a\xcf\xa5\x1d\xdd\x1d\x48\xc2\x00\xef\x8e\x95\xd2\xfb\x54\x4c\x01\x28\x51\x86\x39\x55\x6a\x71\x9a\x7c\x29\xe5\x89\x71\xdb\xd8\xf2\x01\xde\x21\xff\x25\x95\x71\x72\x15\x54\x5a\x15\x94\x46\xd4\x3f\x36\x36\xb2\xb2\x0b\xc7\xb2\xac\x9b\xcf\xcc\x7e\x29\xb0\x28\x25\xdc\xd7\x34\x0f\x59\x59\x3c\xc1\xcf\x06\xd5\xe7\xa6\xcc\x02\x48\x4d\x8c\xf1\xca\xf6\xf1\x65\x98\xd5\x59\x0d\x50\x37\x46\x30\x8a\xfc\x7e\x44\x4c\xf7\x95\x20\x10\xdc\xaa\xee\xdd\xa2\x57\x71\xed\xed\xf2\xe6\x7c\x71\xfa\x2f\x14\x9c\x05\xa1\x63\xf2\xb5\x2f\x98\xa3\x68\x0f\x7b\x3c\x6e\xa4\x8c\x04\x36\x1e\x1f\xee\x6f\x7c\xaf\x16\x64\x22\xe3\x0e\xe7\x54\x97\xdb\xa5\xe3\x43\xfa\xc3\xca\x5a\x37\xee\xf7\xde\x15\x7e\xec\xb4\xe8\x86\x69\x11\x76\x41\xda\x76\x37\x3d\x28\x81\xf4\xbc\x6b\x1b\x7b\xce\x63\x16\x00\x88\xc1\xfc\x6d\x7b\x3b\xd2\xca\x00\x88\x29\x3e\xf7\x1f\x59\x9e\x5b\x93\xb4\x41\xa5\x96\x74\x9f\x66\xb6\x8d\x7f\xf0\x25\xca\x7a\x5c\x12\x06\xe0\x91\x71\x5c\x68\x2c\xf4\x38\x1f\x90\x66\x4a\x58\x05\xe0\x9c\x84\x53\x79\x75\x3d\xae\x87\x00\x38\x63\x58\x7f\x67\x74\xfc\x27\x08\xbf\x56\x82\x09\x14\xf4\x25\xd7\xad\x13\xa6\x72\x36\x64\x7e\x0c\x11\xd2\xa5\xab\x88\x96\x9f\x4a\x29\x81\xa1\x56\x26\x48\x68\xbd\x3a\x4a\x51\xd7\x97\x67\x83\xb9\x71\x35\xef\xb1\x47\xc1\xf0\x40\x3b\xf1\xa0\xf5\x27\xe4\x05\x13\x04\xc0\x7b\x64\xc8\x5d\x2e\x26\x5d\x76\x43\x52\xc9\xdc\xa4\xf0\x51\x95\xc6\xc2\xe8\x5b\xbb\x38\x8f\xc7\x86\x91\x35\x0d\x1b\x70\xbc\x67\x05\x98\xa9\x09\xa9\xd5\x9b\x3f\x5a\x5f\xeb\x4e\xd5\x94\x9a\x50\x72\x6c\x67\x3f\x2b\x10\x45\xcd\x5f\xfc\xec\x34\x91\xa3\xb9\x59\x77\xef\xbb\xe7\x57\x6c\x7b\x5a\x15\x50\x3f\x26\x89\x19\x86\x3d\x7f\x64\x8d\x38\x66\xc5\x2f\x89\xb9\x86\x26\xd4\xee\x62\x75\x0d\x55\xb3\xfa\xdf\xd9\xba\x98\x1f\x4b\x13\xec\x08\x5b\x66\x29\xe4\xd7\x34\xec\xf1\xfd\x37\x8c\x6b\xbc\x75\x05\x7c\x8c\x7c\x97\xff\xf3\xd7\x67\x1f\x48\x6d\xc9\xe2\x74\x6e\x9e\x8b\x39\xf5\x04\x3f\x4e\xc8\xc4\x8b\x55\x09\xd5\xac\x0b\x53\x7a\x50\xa9\x1f\xa1\x34\x0b\x06\x31\xfe\x06\xbb\x43\x3f\x26\xd9\x96\xe1\xd0\x99\xd7\xdb\x77\x71\xfb\x96\x9d\xac\x20\xf6\x43\xd9\x2e\xa5\x1d\x5d\xca\x67\x0f\x26\x8d\x44\x6a\x75\x20\x8c\x2b\x7b\x5b\x72\xb5\xd3\xa5\xc3\xc9\x7d\xdb\x6f\xf9\x26\xe5\x21\xb6\xa9\x9c\xf2\xe1\x4c\xe7\xd3\xa4\x26\x46\xa0\x36\x0a\x5f\xa3\xc8\xe8\x16\xfa\x67\x2a\x44\x62\xeb\x09\xf5\xa9\x1e\x5f\x8a\x04\x8d\x00\x45\xf8\x99\xd5\x4d\xbd\x38\xeb\xac\x29\x91\x7d\x82\x4d\x15\xd7\x70\xb2\x00\xf6\xe3\x8c\xd5\xb1\x3b\x8b\x62\x36\x31\x45\xde\xc9\xa1\xce\x9a\x4a\xcc\x4a\x5c\x53\x63\x22\x86\x3c\x69\xbb\x16\x0f\xb4\x76\xa9\x31\x22\x0d\x5c\x42\xfd\x78\xf1\x5c\x33\xf7\xea\xb2\x20\x20\xb1\x09\x9d\x4c\x78\x9b\xb3\x7d\x2b\x7d\x07\x99\x05\x41\x6a\x5d\x5a\x74\x59\x94\xcd\xeb\xf6\xe6\x56\x9c\x4e\x83\xf5\xae\x1d\x90\x62\x14\x2c\xb2\x6a\xfb\xe1\xdf\x13\x16\x90\xc4\xea\x0d\x66\x85\x29\xbb\xbf\x51\x91\x38\x52\x8c\x13\xf5\x72\x52\x82\x8b\xf1\x5b\xcd\x02\x62\x6c\x09\x6b\x73\xb7\xf4\x1f\x0e\xd3\x10\x13\x29\x95\x83\xa8\xa6\x46\xc9\xff\x21\xf4\x0a\xcf\xed\x3f\x27\x24\xbe\xb0\xf2\x7c\xb9\x11\x75\xa6\x96\xa2\xd2\xf3\x89\x14\x0b\xa2\x48\x22\x41\xac\x2b\x64\xd4\x50\x59\xbd\xa3\xf6\xb6\x7c\x25\xfe\x31\x3d\x51\xcc\x91\x87\x8b\x65\x9f\x6f\x19\x12\x4d\x06\x85\x42\x16\x44\x3a\x25\xbd\xae\xf7\xba\x81\xe3\x27\x54\xd5\xd1\xaf\xea\x03\x96\x73\x2f\x85\xc6\x82\x98\xa4\x58\x2e\xe9\x84\xef\x59\x10\x73\x0b\x3e\xda\x17\xf0\xf1\x87\xb7\xc6\xde\x02\xe2\x43\xfa\x3e\x09\x0b\xe2\x54\x06\xd4\xfb\xa0\xb8\xc0\x69\xb2\x6d\xb3\x20\x31\x16\x19\xa2\x44\xe1\xf6\x17\xff\x71\x16\x82\x72\xab\xef\x37\x10\x79\xf3\xb6\xcc\x9a\xec\xbf\x53\xf5\x49\x16\xb0\x58\x0b\xe8\xf5\x31\x67\x84\x9e\x59\xc0\x58\x8c\x2f\x92\x83\xa9\xb9\xd5\xdc\xbe\xb3\x0d\x4c\x07\x8b\xd4\xd6\xdf\xcf\xcd\x5d\x59\x79\xb4\xed\xf4\x5b\x95\x51\xa4\xdb\x1a\x3f\x4b\x55\xfc\x60\xb0\x2a\x98\xc8\x52\x38\xd5\x93\xef\xe3\x54\xd9\x0d\xd4\xea\x55\xb4\x61\xd8\x43\xa9\x7e\x0c\xcc\xea\xaf\x00\x2b\x5d\xf0\xca\x02\xae\x52\xbc\x81\xe5\x09\x8a\x8e\x08\x38\x92\xef\x62\x41\x1a\x47\x68\x12\xf7\xef\x71\x55\x89\x05\x92\xa6\x91\x45\xce\x5a\xa5\xcb\xdb\x4a\x7c\x5c\xdd\x3c\xc9\x55\x1a\xf8\xd7\x6d\xf8\xd5\x8a\x5a\x41\x21\x34\xb2\x1d\x26\x6e\xee\xb8\x8e\x15\x75\xcb\xcb\xbd\x38\xc2\x73\xd1\xf7\xde\x59\xa0\x69\x68\x15\x56\x8a\x4b\x9b\x26\xad\xeb\x6d\xd3\xb9\x5a\xc6\x2e\x0c\x66\x01\x04\x49\xe8\xb4\xf0\x9d\xf7\x81\xa3\x6a\x7c\xe9\x4d\xc8\x02\x48\xad\xb6\x7d\x55\xe6\xf9\xed\x00\x61\x3e\x99\x7d\xa0\x08\x9a\xd4\xed\x3b\xe9\xa0\xd9\x78\x82\x05\x26\xe4\xa8\x45\x66\x2d\xdd\xfe\x29\xd4\x8f\x53\x39\x6f\x78\xc8\x02\x13\x71\x7c\x9e\x8f\x70\x10\x4b\x51\xe8\xcb\xe4\x7e\x1a\x19\x33\x39\x10\x2f\x1f\x3c\x28\xa3\xb8\x37\xef\xdf\xd7\xed\x54\x69\x93\x91\xc1\x4d\x33\xa0\xfd\x1d\x75\xca\xd6\x9f\xc3\x54\xfc\x2b\x4c\x48\x60\xe7\x33\xf8\xa6\x2d\xd2\xc4\x66\x7f\x27\x21\x24\x41\x6b\x8f\x07\x71\x94\xe5\xdf\x13\xb3\x60\x84\xe8\x14\xd9\x34\x6d\xb2\x37\x26\xf8\x33\x42\xc0\xda\x12\x75\xdd\xd4\x0e\x07\xdc\x3e\x4c\xd4\x73\x1c\x0e\x0f\xa9\x15\xab\x3b\x58\x2b\x8d\x64\x7c\xeb\x48\xc8\x79\x30\x11\xaa\xf6\xef\xe7\xcb\xb4\xa0\xda\x8e\x16\x78\x37\x11\x40\x53\x96\x75\x83\x74\x3a\x77\x30\x0a\x6c\x35\x26\x2b\x54\xf7\xa7\x84\x20\x90\x0b\x1d\xbe\x9f\xbb\xbf\x0a\xcb\xc5\xf9\xbe\xf9\x57\x2f\x11\xcf\x48\x1c\x5a\x33\xd4\x7b\x40\xbc\x81\x33\x88\xf8\xed\x7c\xe5\x3a\xc2\x48\x2c\x00\x51\x64\x05\x7c\xf4\x78\xa0\xee\x3c\x10\x62\x6b\xe9\x98\x15\xcd\x22\xcf\xbd\x10\x85\x3b\x9a\x08\xab\x44\xd9\x6e\x9f\x0e\x8d\xd8\xf5\xde\x3b\xa8\xfb\xfc\xa3\xa4\x71\x8c\x34\x91\x5e\x68\x0b\x09\x38\xb3\xa1\x00\x23\x54\x72\xc4\x56\xa1\x9b\x1f\x2e\xe7\x37\x02\xf5\x16\x47\x4f\x9a\x4a\x8d\xdd\x97\xfa\xad\xfc\x18\x7b\x91\xd9\x54\x6d\xf2\x00\xa8\x12\x78\x09\x76\x91\xb4\x96\x5f\x68\xeb\xd2\xfe\x77\x3a\xd6\x50\x2c\x0b\xfa\xcb\xbd\x6d\xde\xb6\x6f\xe5\x69\x32\x01\x18\x4b\x51\x6d\x5a\x8c\xf6\xf8\xf1\x45\x32\x61\xab\xc1\xcf\xc7\x22\x53\x7f\xc3\xf6\x96\x11\x66\x22\x64\x99\xeb\xec\xdd\x16\x2d\xe7\xdf\x6c\xc2\x03\x96\x38\x85\xc3\x9d\xa8\x7f\xfc\x0e\x97\x39\x3c\x1b\x23\x9c\x51\xa4\x47\x61\x9c\xf4\x3f\xe7\xac\x71\x46\x2b\xf3\x0f\x8a\xa7\x24\xe9\x38\x6e\x3d\xc4\x7e\x61\x21\xd2\x59\x3e\x30\x39\x9c\x3c\x34\x2e\xd2\xd0\xa9\xc8\x6c\xdf\x20\x37\xe3\xfb\x90\xc6\x21\x83\xae\x03\xdf\x27\x55\xc3\xdf\xd6\x2d\x12\x22\x06\xc1\x3f\xd1\x0b\xe8\x07\x09\x6b\xa7\xda\xbe\x50\x9f\x2f\xbe\x44\x48\x9b\x8a\xb7\x11\x61\xa6\xaa\xf2\xb1\xd4\xe7\x1c\xda\xd3\xb5\x6f\x4a\x38\xb9\x59\x12\x12\xee\xb2\x51\x6b\xc8\xe9\xe7\xbe\x62\x5a\x7a\xea\x56\x9e\x97\x1f\x9b\x1e\x5b\x3e\x58\x13\x89\x96\xd6\x21\xca\x3a\x93\x59\x88\xe7\xf6\x52\xb7\x61\x8f\x1f\xa1\x13\xf0\x8c\x4a\x6c\x9e\xf8\x03\xc0\xad\x4b\xcb\xa1\xd3\x24\xaf\x1f\xca\xc3\x01\xfa\x01\xca\x20\xa5\x65\xaf\xb3\x0a\x54\xf3\xa5\x15\x2c\x23\x26\xa6\x58\x6a\xbf\xcf\x4b\x89\xc2\x4b\x50\xb5\xfb\xde\xaf\x52\x31\x46\x0c\x84\x58\x7d\xb0\xf8\xc7\x6f\xa2\x7e\x5b\xf4\xbe\xb3\xd6\x5b\xb9\xac\xee\x00\x26\x15\xf0\x2f\xe3\xc4\x30\x48\x34\xaa\xb5\x65\x96\x3e\x82\xbe\x41\xd0\x9c\x7d\x14\x1d\x06\xce\x44\x6b\xb5\x1f\x07\xcc\x5f\x87\x9f\x21\x01\xdb\x86\xc6\xf0\x73\x81\xdd\x1b\x0c\x40\x73\xcf\xb4\x9e\xbd\x37\x61\x48\x02\xed\x4c\x8f\xda\x75\xa0\xce\x66\xc0\x7a\x2c\x8c\x48\x80\x2e\x16\xc7\x73\x93\xad\x9a\x2b\x58\xff\xf5\x5c\x0b\xa3\x84\x59\x87\x5f\x0b\x71\x5d\x15\xba\x5e\xf8\x48\x38\x8c\xa4\x42\x3a\x75\xfd\x26\x2a\x78\x43\x04\x79\xdd\x1d\x73\xd6\x86\x88\x96\x5e\xa0\x97\xf7\xf6\xdb\xe2\x65\xe5\x8f\xc7\x4c\x60\xad\x65\x5f\x41\xa7\x69\xb8\xf0\xac\x85\xf1\xaa\x14\xc6\x46\x86\x8e\xdf\xae\x61\x7b\xb2\x8c\x94\x77\xa8\xba\x0b\x49\x82\x40\xc8\xde\x8f\x04\x91\xfd\xdd\xb1\x08\x22\xeb\x3f\x67\xaa\xd2\x41\x33\x3e\x49\x22\xc2\x24\xb6\x68\xc8\xff\xf7\xde\xf7\x48\x59\x98\x70\x6b\x09\xdf\xbe\x6f\xe2\xe7\x44\x60\xb3\x3d\x1c\xe1\xeb\xb8\x3d\xcb\x8f\xb2\xf4\x6c\x57\x7f\x94\x72\x6b\x82\xb9\x47\x6c\x56\x21\xf2\x2e\xe0\x1d\xb5\xaf\xe3\x71\xf0\x19\x5f\x13\x5e\x58\xc8\x82\x00\x05\x6c\x8f\xe2\xe7\x77\xc8\x86\xe5\x89\xf6\x58\x8a\x4a\x21\xaa\x3c\x1e\x45\xd1\x69\xc0\xb0\x90\x11\x85\x61\xbe\x5f\xf7\x6f\xb2\xfe\x33\x91\x44\x76\x30\x9a\x13\xec\x6d\xf1\x63\x84\xd0\x64\x21\x13\x80\x95\x91\x45\xf3\xe6\x84\x9a\xbb\x04\x22\xe4\x42\xe0\xaa\xde\x86\x25\x53\x9d\x34\x16\x72\x09\x3e\xff\x5f\xbe\x89\x4a\xa8\xa6\x4b\x51\xfc\x08\x43\xb0\x04\x8b\x09\x05\x9c\x8f\xcf\x45\x77\xea\x34\x04\x4c\x18\x17\x7f\x2c\xd6\x0f\x8b\x9b\x87\xd5\x7e\xf9\xfc\xb8\x59\x3c\xfd\xb9\xdf\xbe\x6e\x36\x0f\x7f\x76\xe3\xb8\x0d\xf5\x5c\xd2\x87\x1c\xa0\x36\xf4\xc9\x8a\x43\x0e\x37\xe7\xcb\x27\x06\xa6\x2c\x14\xa1\x15\x56\xb9\xcd\x0e\x59\x23\xf2\x45\xd5\x0c\xf0\x81\x2c\x14\x71\x8a\x5d\xf1\x63\x7d\x5a\x5a\xfb\x92\xbc\xbf\xa3\x8a\x08\xe3\x7d\xd4\xb0\x08\x3a\x44\x2c\xf8\x31\x34\xc1\x9d\xd9\xca\x51\xdd\x2e\x76\xdd\x1d\x55\x94\x42\xbf\x67\x2f\x46\x45\xf3\xaf\x20\xd1\x93\x1f\xa0\x24\x41\xe8\x6c\x9b\x14\x0e\xb3\xd3\x50\x69\xc2\x7d\xd7\x6c\x88\xe8\xea\x85\x62\xfa\x09\xa5\x34\xb3\xc2\x9a\x98\x97\x9f\x9b\xb7\x67\xb3\x81\x6a\x22\x52\xe4\xc7\x1a\xeb\x47\x56\x94\xd6\xfc\xc0\xa1\x71\x3f\x59\xcc\x26\xef\x95\xa6\x32\xec\x8d\x68\x9a\xac\x6e\x32\xd5\xbd\x3f\xc0\x03\x3c\xf3\xdd\xc3\x7a\xb3\x59\x3f\x75\xbe\x29\x2c\x04\xc1\xac\xbd\x22\xd4\xcd\xbe\x2c\x60\x5d\x60\xef\x72\x75\x3c\x35\x97\x91\x94\x11\x0b\x41\x5b\xfe\x46\x0d\x8d\x07\x49\xdd\x42\x2e\x2e\x93\xe7\x62\xa8\x44\x8d\xd5\x7d\x05\x06\x2a\xa8\xdc\x76\x37\xbb\xfd\x87\x86\x73\x5c\xc1\xd7\x4b\x5f\xc9\x08\x8d\x23\xae\x7e\xdb\x0d\x75\xff\x58\x68\x8c\xd5\xe0\xcd\xea\x75\xb1\x79\x1b\xe8\x31\xd8\xe3\x51\x90\x00\x36\x5f\x3b\x3e\x41\x55\x1e\x2d\xad\xf0\xf2\x65\x3f\x9f\x45\x01\x0d\xb1\x28\xe6\x89\x16\xc3\xc5\x25\x0a\xa4\xc4\x66\xff\xe5\xe7\x0f\x0c\xaa\xfd\xdf\x43\x22\x35\x73\xca\xe9\xa8\xe6\xa1\xc5\x4c\xd9\x89\x45\x61\xa4\x91\xd9\xf9\x70\x56\x3f\x2e\x1d\xee\x8a\x45\xa1\xe2\x18\x60\xe9\xf2\xdc\x7e\xa5\xdb\x26\xda\xd8\xa9\xbd\x8c\x2f\xe5\xab\xfa\xdf\x1c\x02\xc1\xd8\x7a\xb5\xfb\x36\x8c\xc8\xa3\x28\xe6\x88\xd7\xda\x7e\x7b\x7e\xd9\x2d\x6e\x6f\x5f\x46\x97\x1e\xa5\xd6\x33\xaa\x72\x90\x05\xd0\x23\xc0\x04\x8b\x22\x19\xe1\xc7\x3b\xb1\x93\x46\xa8\x1f\x8b\x42\xb7\x6f\xc2\xaf\xa6\xe3\x7c\x33\xd3\xaf\x48\x51\x64\x04\x46\x44\xa6\xac\x14\x72\x41\x97\x17\x95\xf7\xd7\x6d\x8c\xb2\xda\x0b\xb8\xf7\xec\xca\xaf\x62\x8e\x28\x89\x05\x36\x37\xf3\xf6\xd6\x5a\x4c\xe9\xb3\x99\x2b\xfe\xb1\x28\x11\x12\x51\xe2\xf2\x7c\x71\xf6\xab\x93\xe3\x3a\xb1\x34\x08\xbb\x36\xef\xad\xc1\xe3\x80\x0b\xc7\x22\xaa\xb9\xcb\x63\x9a\xc5\x3b\x54\xc2\x21\x8c\x87\xea\x84\x6e\x24\x23\x52\x79\xdc\x3c\x16\x44\x5f\xca\x73\x27\xf9\xc5\x22\x96\x88\x78\x60\xdf\xe3\xa8\x49\x4e\x92\x6d\x00\x31\xfd\x5a\x9f\x8d\x45\x8c\x2a\x8c\x77\xad\x00\x63\x67\x5c\x36\xbe\xdf\x3c\xea\xe4\xe5\x30\x94\x1f\xc8\x29\xb3\x88\x0b\x81\x73\xd3\x95\xad\x10\x90\x32\x48\xca\xfc\x28\x90\xd8\x64\xb8\x2f\x73\x33\xd8\xb3\xa3\x94\x28\xf0\x52\xbe\xaf\x05\xd4\x4a\x9c\x40\xff\xcf\xb9\x6c\x60\x5d\x6c\xf1\xc2\xfd\x48\x41\xa4\x35\x5a\x6c\x77\xaf\x73\xbb\x95\x0d\xe6\xd1\xc0\x7f\x88\x45\x22\x12\x86\x7b\x94\x75\x0d\xaa\xf9\x54\x79\x83\x45\x82\x29\xac\xdd\x98\x73\xa1\xaf\x74\x42\x59\x24\x20\x44\x7b\x42\x0c\x48\x47\x1c\x9b\xf9\x52\x68\xa4\x88\xc6\x9e\x92\x83\xf5\x68\x2b\x80\x63\x83\x99\x85\x52\x55\x59\xd7\xd6\xf5\x76\xef\xb5\x13\xec\xff\xbc\xb9\x90\x20\x08\xfc\xd7\x2a\xa7\xa9\x2f\xce\xcd\xdb\xf5\xef\xec\x9e\x8b\x8e\x29\x3a\x4a\xac\x37\xcf\xeb\xc9\xf4\xd1\x1a\xac\x01\x04\xca\x90\xf9\xae\x0d\x52\x8a\xfc\x5a\x1c\x41\xa0\xb8\xeb\x10\x58\x79\x2b\xef\xb1\x78\x1d\xd3\x44\x10\xc7\x5e\xf9\x1e\x5d\x65\xca\x7c\xc4\xff\x64\x11\x80\x41\x6c\xc9\xe2\xa6\x5e\xa2\xee\xdd\xfc\xfd\x31\x89\x41\x74\xfb\xf2\xf9\xe1\xf9\x65\x7f\xff\xb2\xf2\x31\x42\x1c\x00\x80\x35\x45\x47\x25\x8b\xf1\xbb\x15\x13\xa2\x55\x3f\xdf\xed\x1b\xf1\xef\xf2\x28\x33\xd8\x0f\xfc\xdf\x58\x4c\xa4\xed\x9f\xfc\x3f\x67\x92\xb9\xbf\xcc\x87\x90\x31\x51\x69\xe0\x80\x4d\xbd\x84\xf4\x20\xeb\xbc\x66\xed\xb2\x38\x32\x81\x34\x8e\x82\x62\x0b\xd7\xe0\x04\xcc\xfa\xd2\x4d\x4c\x03\x12\xe8\x81\x5a\x7b\xf6\x5f\xb8\xcb\x0e\x6f\x3e\xac\x22\x53\x83\x92\xeb\xff\x8e\x7f\x39\x95\xd6\x92\x77\x53\x81\xce\x54\xff\x4a\xc5\x2c\x54\xb1\xf4\x3a\x4b\x9d\x50\xd5\xf8\xc3\x29\x08\x3e\xf2\x34\xb9\x56\x50\x99\xbf\x3d\x42\x0a\xd5\x7d\x50\xa8\x06\x59\x15\x4d\x5f\xa2\x8b\x05\x68\xaf\x88\x81\xea\x5b\xfe\xef\x92\x2b\xed\x82\xf0\x1d\x7a\x25\x7f\xb9\x6d\xc6\x32\x8d\x91\x93\xf5\xb8\x5a\x76\x67\x10\x61\xe0\xfa\xb6\xfb\xb7\xb2\x3e\x91\x2f\x51\x3c\x2c\x96\x32\xb0\x75\xd9\xda\x2d\xdb\xdb\x4f\xa4\x0f\x59\x2c\x8d\x74\x00\x39\x91\x1d\xdb\x39\x6f\xdd\x91\x44\xbe\xe9\xdc\x51\x59\x0c\xc4\x6a\xed\x09\xad\xff\xc8\xaa\x73\x7d\x0b\x66\x7e\x32\xc7\x90\x5a\x1f\x38\x74\xc3\xbe\x2b\xab\x6b\xb6\x08\x8b\x0d\x93\x0c\xba\x15\xa4\x14\xc5\x84\xa2\x35\x1a\x9d\x04\x61\x64\x3a\x8f\xef\xe0\xa7\x6c\x54\xa7\xcf\xe0\x47\x40\x90\x74\xc5\xb9\xed\xfe\xe6\xf9\xf5\xfe\x9b\xdf\x5e\x12\x42\x01\x03\xc5\x63\xa6\xaa\x72\x97\x9d\xba\xbf\x73\x2b\x2f\x55\xc0\x4f\xac\xd8\x74\x7f\x07\x2a\x1d\x18\x67\x9f\x8b\xba\xd9\x1f\x30\x65\xdf\x8b\xb3\xce\x9a\xbd\x2e\xd5\xb9\x17\xc3\x61\x49\xe8\xde\xdd\x3c\xab\x9b\x75\x03\xc7\x36\x38\x7a\x41\x61\xc1\x6a\x12\xbf\x25\x11\x91\x18\x67\x6d\x9b\xb3\x46\xd6\x75\xb7\xe2\x27\x71\xa8\x89\x97\xfe\xf1\xde\x54\xfe\x10\x4f\x1c\x3d\xb7\x79\x01\x95\x9d\x32\xdc\x6b\x70\x13\x98\xd9\xba\x13\xca\x74\x6c\xf3\xac\x76\xa5\x2f\xda\x1d\xac\x27\xa7\x5d\xb9\xe3\xb2\x84\x4a\x8a\x6b\x43\x53\xde\x44\xe1\x7c\xc2\x91\x50\x69\x2f\xbc\x28\x9f\xcd\x2e\x53\x3f\xa0\xa9\x9f\x3f\x8a\x09\x89\x80\x25\x14\x42\x04\x7e\xad\x7e\x36\x15\x1c\xb3\xf3\x10\xff\xc4\x12\x16\x4b\x94\x81\xc3\x67\x84\x0c\xe5\xdd\x6a\xf1\xe8\x8f\xa6\x91\x89\x3b\xad\xd7\xa7\xbd\x29\xd4\x34\x40\x19\x79\x4a\xba\x4f\x09\x4e\x22\x57\x38\x70\x37\x75\x6a\xb4\x32\xba\x37\x32\x52\xc8\x68\x3d\x66\x85\xed\xfa\xfa\xbf\x33\xeb\x15\xad\xbc\x56\x86\x3f\xa0\x02\x82\x31\x7c\x1b\x38\x8e\x41\x1d\xff\xb8\xc2\x8e\xb0\x44\x85\x04\x77\x1e\xdb\xab\x1d\xe1\x39\xfd\xee\x94\xa8\x38\xc0\x4a\xa6\x12\xc5\xba\xae\xcf\xb0\x2e\x74\xf6\x9e\xe9\xb3\x27\x73\xb7\x23\x28\xa6\x1b\x16\xbf\xb5\x99\xba\x03\xb3\x44\x71\x8a\xd4\xf7\xe3\xfe\x54\x96\xdd\x1a\x93\x68\x6a\xfd\xc1\x7c\xab\x6b\x6f\xfd\x92\x27\x1f\xd6\xa9\x56\xb4\xe7\x12\x5e\x8b\x37\x4e\xee\xb0\x56\x40\x5d\x01\xae\xbd\xde\x41\x0b\x2f\x81\xc8\x56\x05\x2d\x5a\xbd\x7d\xd3\xcf\xfa\x70\x2d\x39\xeb\x47\x73\x2e\xf5\x40\x1d\xe9\x66\xb7\x74\x45\x80\xf1\x38\x13\xca\x94\x7a\x8d\xe6\x7a\x68\xf8\xc9\x12\x13\x09\x94\x80\xd8\xac\x5e\x96\x7b\xf7\xae\xef\x9e\xf7\xeb\xa7\x3f\x56\xdb\xce\x03\x91\x25\x26\x8e\x11\x78\xbc\x05\x8c\xfd\x1e\x3b\x24\x21\xa3\x01\x49\x90\x81\xb3\xda\x7d\x83\xaa\xec\xfe\x1a\x11\x14\xc0\x79\x29\xf3\xfc\xa1\x6c\x1a\x70\xaf\xae\xeb\xa8\x33\x1a\x28\xc0\x27\xfb\x7d\xb1\xde\xed\xd6\x8f\xab\xd7\xa7\xdd\xfa\xe1\xfb\x7a\xf7\xed\xf6\x65\xf1\xfd\xf9\x65\xf7\xb2\x78\xda\xde\x79\xe5\x0b\x46\x49\x48\x51\x16\xe2\x84\x82\xc1\xdd\xab\x4c\x89\x88\x10\x4d\x2d\xcf\x97\x57\xb5\xec\x85\x70\x19\x25\xba\x03\x07\xdd\x01\x0c\x41\x51\x8b\x42\xdb\xc5\xb1\xf3\xca\xbc\x92\x3b\xea\x6e\x1e\x25\xda\x3e\x12\xeb\x0b\x86\x66\x04\xbf\xda\xda\xc6\xaf\x3a\x0d\x89\x16\x41\xa7\xc4\xbf\x7c\xcb\x72\x7d\xad\x4b\xc2\x68\x18\xc5\x98\x63\xc1\x4f\x5b\x17\xf2\xc1\xd4\x27\x2f\xc9\xe4\xc3\x71\x18\xc4\xa8\x37\xa4\x37\x15\xac\x55\xd9\xe3\x22\x18\x0d\x53\xed\xb7\xca\x45\xd5\x64\x2a\xb7\x4d\xea\x4f\xce\x64\x02\xcc\x88\xb3\x22\x6b\x2c\x89\xab\xbb\xa3\x51\x18\xd0\x0e\x7b\x87\x84\xf1\xfc\x32\xd0\xad\xfe\x4f\xd8\x87\xbd\xec\xaf\x79\x9e\x1a\xa3\x51\x64\xc2\x8e\xe3\x5b\xdf\x7f\xa5\xb0\x3d\xbe\x8d\x11\x27\xc4\xbd\x36\xdf\xca\x73\x0d\x2b\x7d\x98\x68\x9e\x4c\x7e\x49\x94\x52\x84\x28\x38\x6f\x96\xfd\xa9\x2a\x4d\x67\x93\xc3\x68\xa4\x63\x69\x3d\xbb\x0b\xa8\x44\xbe\x15\x39\xac\x0a\x3d\xbc\x6f\xb1\x32\x38\x83\x9e\x5e\x1f\x5f\xb7\xdd\x1f\x21\x94\xae\x25\x78\x3e\xfd\x9d\x6e\x07\xa5\x31\x8d\xad\x0c\x2a\x46\x38\x0f\xa2\x8d\xd9\x5f\xe0\x3d\xc3\xaa\xca\x28\xd2\xa6\x94\x71\xac\x06\xdd\x2c\x6e\xfe\xf4\xbb\x2d\xa5\x5c\x60\x13\xc6\x46\x7a\xf3\x9a\x47\xd7\xff\xdb\x7f\x58\xda\x1c\xd6\xa7\xc7\x8b\x3c\x6f\xf7\xd3\xbb\xb2\x52\x99\xcc\x3f\xe9\x74\x50\x26\x00\xd7\x34\x6b\x6f\xdc\xa6\x8d\xb6\x3e\xee\x10\xd4\x7e\x14\x88\x9e\x42\xd3\x20\xb6\x4a\xa8\xa9\xb9\x07\xa3\x3c\x30\x08\x63\x44\x26\x95\xd7\x93\xfa\x2a\x59\xa6\x9c\x04\x58\xb4\xc2\x95\xad\x0d\x0d\x7a\x31\xb4\xe9\xb9\xa3\xc0\x06\x51\xe7\xa6\xec\x79\x81\x8c\xf2\x34\x22\xac\x7b\xba\x8d\x2b\x4f\xcd\xd8\x69\x32\xca\xa5\x46\xb0\xc2\xf1\x9c\xef\xca\xbb\xea\x13\x30\xf4\xf8\x33\x29\xa7\x28\x61\x9e\xd5\x0b\xcb\xdb\x19\x89\x18\xcf\x4f\x60\x11\x2b\x70\xeb\x80\xfd\xb1\x93\x5b\xe0\x86\xc9\x54\x85\xb6\x3e\x8d\xb1\xb6\xf7\x20\xf1\x3f\x4c\xb1\xc8\xb2\x53\xf7\x37\x03\x3e\x1b\xa3\x9a\x24\x49\xe2\x3b\x97\xe7\x66\xac\x87\xcc\xa8\x4e\x28\x73\xf5\xb0\xc7\x52\x4f\x0f\xca\xc8\xb3\x3f\x6d\x82\x36\x1f\x35\x52\xd0\xa9\xea\x20\xd1\xdf\x40\x1f\x20\xbf\x38\x42\x61\x37\x27\x40\x9b\xd4\xa3\x21\x33\x5d\xdf\x5c\x16\xba\xce\x3f\xeb\xdd\x53\x30\x29\x7a\xd5\x99\xaa\x3c\xfa\xe2\x42\x4f\xd2\x62\xd4\x28\x86\x3b\xb0\x39\xe7\xf9\xb4\x3b\xd1\x0d\x49\x13\x2f\x18\x24\x7e\xfa\x50\x0f\xfb\xba\x2f\xf0\xbf\xe7\xcc\x4e\xa0\xc9\x33\x37\x40\x02\x2f\x96\xbc\x9e\xde\x0e\x63\x98\xb1\x81\xbe\xa5\x77\xbb\x47\xec\xae\x89\x05\x41\x88\xed\x77\x09\x8b\x4a\x66\xcd\x80\x64\xce\x18\x89\x6d\x77\xf9\xae\x6a\xa3\xc4\xf7\x7a\x51\x1d\xa0\x68\xb2\x42\x74\x03\x98\x55\x28\x44\xea\xc0\xf3\xc7\x27\x9d\x4f\x46\x84\x4c\x2d\x27\xf5\xe2\x1a\x89\xdd\xc2\xc5\x42\x22\x24\xf3\x0e\x5b\xe7\xc3\x54\xb7\x97\xb1\x90\x59\x7e\xb1\x5d\x2f\xac\x02\xd2\xec\x03\x65\xa1\x8a\x98\x93\x93\x38\x55\x9d\x6f\x28\x63\x51\x1a\x61\x23\x07\x7b\xd8\x87\x73\x05\x77\xe7\x62\xb6\xdb\xf4\x8f\xf3\x8c\xf0\x9f\x3b\x49\xcc\x09\xd6\xc7\xce\xce\xb0\x6f\x5c\xa1\x65\x31\x58\x70\xad\x67\xd3\xd8\x0d\x36\x2b\x0e\x4b\x71\x3c\x89\xec\xe0\x23\x46\x96\x10\x69\x1b\x36\xe5\xaf\x44\x01\xdd\x07\x58\x48\x51\xe5\xc3\x49\xd4\xea\xde\xdd\x6b\xf4\x9c\x19\x4b\xb8\xf5\xf2\x3d\x5f\xa0\x72\x28\xdb\x5f\x5a\xfd\xf8\xcf\x9a\x44\x07\x9e\xc5\x55\x6f\xa0\xfa\x0e\x19\xce\xb9\x28\x8a\xfc\x85\x73\x48\xac\x15\x5a\x55\x9e\x4f\x9d\x13\x9a\x5f\x99\x59\x1a\xc4\x48\x7c\xdf\x54\x59\xd1\xb8\xd7\x68\xdd\x61\x7e\x3e\x11\x6b\x63\x2c\x15\x11\x56\xa1\x51\xa0\xfb\x5c\xf4\x4a\xba\x8c\x89\xc0\x60\xd5\x4f\x8a\xe2\x87\xaf\xb1\xf8\x43\xd2\x6a\x94\x61\x66\x76\xae\xae\xe6\x5d\x6f\x3f\x44\x18\x75\x7b\x35\x93\x61\x10\xa4\xce\x96\xbf\xe8\x81\xfa\x8c\xc9\x98\x21\xb7\x3f\x2f\x0f\xeb\xee\x39\x29\x6a\x05\xec\xe0\x9a\x0f\xe3\x46\xe8\x24\xc6\x64\xdf\x42\x60\x9f\x8b\xfc\xb2\xe9\x5d\xe4\x26\xcb\x32\xd3\xcc\x4a\xa2\x6a\x30\x59\x01\x9b\xaa\xfc\x7f\xa0\x26\x86\x03\x7e\xa4\x16\x28\x08\xf5\x24\x8e\x59\xd7\x7b\xfd\x0c\x99\x6f\x3f\xc3\x83\x40\x6a\x18\xfa\xa7\xf9\xb9\x35\x20\xec\xfa\xa1\xd4\x91\x6f\x50\x8f\xe9\xd2\xb7\xa5\x38\x11\x06\xd3\xda\x7d\x56\x2f\xcb\xaa\x02\xd5\xdc\x9d\xf3\xfc\xe6\x7c\xc9\x26\xdb\x14\x27\xda\xaa\x82\xd4\x56\xb6\x29\x8a\x59\x77\x0e\x48\x5c\xdb\xf8\xf9\x64\x05\x2b\xee\xca\xaa\xbd\x18\xf5\x76\xbd\xd5\x8f\x7f\x43\x18\xa8\xc4\xce\xdf\xfc\x07\xee\x7d\x7e\xd8\x0c\xcd\x9d\xf1\x30\x09\x31\xe5\x57\x79\x59\x83\x6b\x41\xfb\x8b\x08\xb9\xc2\x35\xf4\x79\xf7\x6d\xf5\xb2\xdf\xee\x16\xbf\xaf\xba\x43\x4a\x80\x87\x48\x1d\xc5\xcf\xbd\x1a\x22\x27\xc7\xdf\x10\x91\x6e\xd1\x1a\xdb\xd9\x7f\x5d\x03\xe2\x31\x97\x54\xf6\x76\xa0\x7a\xfb\x96\x9d\x46\x4e\xa0\x7e\x9c\x09\x02\xb7\x81\xfa\x48\x6d\x7c\xa2\x24\x4c\x30\x21\x92\x50\x37\x8b\xe2\xe0\x59\xcc\x8c\x27\x71\x8c\x7a\x18\xcd\xc4\xcb\xc9\x1f\xa7\x49\x88\x74\x20\x84\xb9\xe1\x4c\x38\xcd\x75\xc1\xdd\x68\x26\x22\xcc\x79\xb1\x25\xef\x4b\x79\xab\xe6\x6d\x72\xb9\x4c\x32\x64\x72\xda\x39\xbb\x1c\x35\x79\xdd\x10\x1e\x44\xd4\x85\x11\x87\x0a\x70\xa3\xb2\x6a\x65\xe3\xb0\x90\x73\x62\x9b\x3e\xd6\x65\xe7\xd4\xb1\x6d\xda\x23\x9c\xb8\x7b\xb2\x74\xb6\xb8\xb3\x4d\x05\xce\xc1\x2e\xf5\x37\xc2\x52\xc4\x96\x65\x35\x05\xb3\x9d\xbf\x56\x7b\x0d\xaf\x3c\x14\x19\x4f\x03\x4b\xee\x3e\x8a\x3c\x53\x60\xc5\xf4\xa7\x45\x0c\x2e\x42\x4b\xc8\x6f\x44\x9e\x5f\xfe\x28\x9b\xae\x55\xce\x85\x60\x01\x19\xb9\xc4\x59\x80\xa8\x3f\x6c\xb4\x1e\x3a\x21\x3d\xfe\x79\xe3\x0f\x49\x2a\x10\xc5\xa2\x44\xb1\xbc\xae\x39\x8e\x9f\x97\x54\x1c\x73\x5c\x93\x15\x7a\x6a\xa5\x33\xbe\xcf\x2a\xa0\x81\xeb\xbc\xb8\xa2\xcc\xe4\xa7\xa8\x58\x61\x79\x5a\x95\x47\x2b\x01\x55\xfd\xc8\xe1\xa5\x2c\x9b\xdf\xa6\xc4\x48\xc6\x15\xb3\xde\x90\x79\x79\xb0\x34\xb7\xf3\x35\xb2\xaf\xbf\x48\x95\x46\xc2\xa9\x9c\x20\xa1\x16\xcb\x02\x7d\x25\x84\x2b\xc1\x39\xef\xc2\x1c\xaf\xd7\x86\xe6\x02\x57\x4d\x1d\xae\xb4\xa4\x2e\x5b\xfe\x79\x41\x4a\xf9\xf8\xb8\x56\x11\xd6\xe9\x9c\x96\xd8\xa8\x17\xc1\x21\xa0\xc4\x66\x80\x58\xe3\x82\xfd\x49\x5c\x06\x45\x0a\x0e\x81\x85\xe2\x62\xa5\xf1\xf7\x8f\xb7\x5b\x54\x8f\x9c\x98\xc9\x30\x0e\xa1\x95\x58\xee\xf4\x17\xc2\x76\xea\xe6\xd0\x49\xc4\x30\x0e\xd2\xc6\x8a\x9e\x82\xbf\x2b\xad\xd1\xa0\x8b\xb7\x06\xbf\x1e\x8c\x88\x98\x45\x8c\x0d\x82\xe1\x34\x08\x34\x16\x29\x51\x9c\x53\xb7\x79\xcd\x73\x7b\x02\x3b\x97\x54\xe7\xe7\xc9\xd2\x80\x12\x4c\xe5\x8e\xa3\x04\xdc\x1f\xe4\x81\x45\xa8\x23\xee\xe1\xf1\xf5\x61\xb7\xde\x3c\xac\x57\x2f\xfb\xcd\xcb\x6a\xbd\x7c\x26\x7e\x1c\x21\x29\x22\x9f\xb6\xff\xdc\x75\x7f\x62\x49\x6a\x75\x60\x0e\x6d\x96\x71\x07\x50\xdf\x9e\x61\x57\xde\x95\xd5\x8f\x7e\x4c\x1a\x8a\x4e\x2a\x69\x30\x0f\x3e\xb1\x6c\xf9\xff\xfb\xaf\xff\x3a\x2e\x95\xb4\x4c\xb6\x5c\x54\xf0\xf8\x7e\x7a\x10\xe7\x02\xa1\x18\xa3\x49\x90\x86\x22\xc0\xb4\x2c\x07\xd3\xf0\xab\x63\x1c\x53\xfd\x47\xa1\xaa\xd2\x59\x33\x0f\xe5\x24\x59\x1a\x82\xad\xe3\xdd\x0b\xa7\xcf\xea\x0f\x44\x01\x45\xc0\x12\xfc\x6c\xa0\xd0\x5e\x8a\xc2\x2d\xa2\xbe\xfc\x93\x46\x8a\x80\xc3\xbf\xed\x8b\xf3\x71\x5f\x9a\xfd\x79\x86\x4f\xd7\x8d\x56\x18\xd1\x66\xb5\xe5\x8e\x3c\x17\x37\xe5\x30\x87\x1c\x8f\x8e\x89\x45\xb8\xb5\x79\x36\x09\xa3\xe6\x57\x78\xb0\x34\x11\x1a\x53\xae\x36\x4e\x9d\xb0\x4a\x58\x4a\x03\x66\xba\xaa\xc7\xe4\x36\xd1\x40\xa1\xc6\xcb\xc9\xe3\x3e\xb6\x7d\x10\x9d\xd2\x94\xdb\xf7\xc4\x87\x18\x9b\xac\x3b\xc6\x02\x6d\xab\x08\xc8\xbb\x77\xce\x89\xdd\xc1\xd0\xd2\x44\x6c\xe1\x56\x1c\xfb\x4f\x25\x96\xfa\xb5\xce\xf3\x73\x9d\x95\xc5\xed\xb9\xee\x9e\x07\x93\x56\x0d\xda\x94\x55\xbb\xf5\x4e\x5c\x16\x58\xca\x89\x8a\xec\x92\x00\xed\x3e\x7e\x5f\x76\xe5\xd1\x94\x47\x02\xb4\x67\x94\x58\x4e\xc5\xf8\x86\x72\xaa\xb1\xa0\x6d\x6c\xf7\x0e\xe9\x13\x26\xab\xd5\x15\x96\x3f\xe5\x29\x48\x47\x5f\x47\xf6\xe6\xcd\xb9\x9a\x3a\x8f\xb0\x34\x8d\x02\x04\xfa\x7c\xff\xb6\x5a\x3d\xec\xb7\xeb\x7f\xfb\x60\x23\x6d\xbf\x29\xc5\xb9\x03\xea\xdc\xa0\xd0\x7a\xd7\x2a\x1e\xdf\xf9\x34\x4d\x94\x4b\x33\x6f\x41\xe4\xe8\x4e\x8a\xa8\x85\x2b\xc7\x61\x96\xa6\x52\x22\x48\xc3\x15\x82\x36\x15\xd2\x64\x7d\x47\xcd\x9b\x08\xfa\xc1\x2a\x41\xa8\x11\x36\x56\xb3\xa2\x0d\x54\xf7\xed\xc6\x81\x82\x68\x68\xfe\x0d\xef\x2f\x28\xf0\xa1\x2d\x58\xe4\x5b\xa7\x10\xc0\x52\x21\x01\x39\x5e\x8b\x27\x2c\x14\xbe\x8d\x44\x54\x27\xb3\x54\x32\x3b\x4b\x6b\x2b\x4f\xfa\x2b\xbd\xf3\x4f\x90\x0a\xd3\x93\x0a\x0b\x03\xb2\x22\x57\xda\x31\x2e\xce\xf5\x60\x2d\x4d\xa5\x08\x85\x2d\x34\x5a\xe0\xd9\x5d\x59\xfd\xcf\xfa\xf5\xb7\xee\x68\x64\x1d\x20\xce\x15\x42\xc6\xd1\x76\xa5\x9b\x81\x8a\x48\x9d\x76\xa9\xe5\xb7\xb2\xaa\x61\xfb\x56\x42\xfc\x69\x0d\xef\xef\xfe\x3b\xfe\x19\x2a\xb1\x4d\x88\x03\x34\x37\x17\x4b\x03\x9e\x0e\xd0\xb8\x9e\x5b\xa8\xeb\xb5\xd4\x0a\x4b\x15\x37\x14\x63\xf3\x1f\x00\xa7\x07\x51\xcf\x10\x26\x52\x25\x82\x14\x7a\xd9\x12\x38\x25\xfe\x88\x96\x1a\x67\x81\x95\xcb\xe8\x04\xe1\x3e\x79\x94\x10\x04\xda\x46\x41\x3f\x77\xf0\xb3\x19\x5a\x6a\xb1\x14\xc2\x94\xa4\xbe\x7d\xfa\x3e\x10\xfc\x18\x5f\x2f\xa4\x56\x5c\xdc\x64\xef\x80\xfe\x94\x56\x4f\x69\x5d\x8c\xe1\x2e\xa9\x49\x63\x2a\xdc\xd6\x6d\x11\xde\xf9\xa2\x69\x46\x6c\x9f\x6e\x91\x35\xa0\x53\xbb\x3d\x3e\x8a\xba\x81\xea\xd9\x2c\xa1\x82\x63\x59\x5c\xdc\x0c\x76\x27\x15\x81\x4c\x11\xd5\x79\xbb\xd8\x2d\x86\x6f\x83\x20\xb1\x4c\xc2\x8e\x00\xb0\x5e\x3e\xb7\x2b\xe3\xd7\xea\x73\x4c\x10\x95\x20\x0a\xc9\xb1\xf6\xc8\x50\xfd\xac\x3d\xca\x11\x31\x30\xb4\x0a\x7b\x81\xba\xcc\xdf\x7b\x8b\x95\xd1\xed\x15\x21\x4f\x03\xeb\x03\x24\x6e\x2e\x33\xf8\xef\x76\x00\x73\xb7\xf8\x4b\x79\x8d\x36\x70\xd7\xd1\x40\xa5\xd9\xea\x67\xef\x45\xd3\x94\xd6\x5d\xb7\xde\x9f\xa0\xda\x7f\x40\xe6\xaf\x36\x22\x01\x9e\xfa\x54\x66\x45\x53\x0f\xe4\x7e\xda\x43\x3c\x1d\x6a\xc2\x6e\x21\x07\x35\xc9\x59\x44\x44\x2d\xeb\x33\x47\x9c\xf3\x55\x91\x61\x72\x75\x5c\x4a\x82\xdd\x4c\xd1\x80\x4d\x18\xf4\x98\xe1\x30\xda\xb7\x44\x94\x46\xc4\xca\xfc\x79\x0d\x8f\xc9\xb7\xc7\x8c\x04\xbd\xa3\xfe\x55\xe0\xf1\xf5\x63\x4c\xb8\x95\x7f\xfd\xfd\xac\xcb\x7a\x53\x7a\x97\x74\x1f\x27\x8a\x24\x25\x48\x66\x82\xba\xc9\x8e\x13\xb9\x78\x26\x12\x01\x78\x6d\xdd\xdd\x71\x18\xcc\x36\xaa\xfe\x7b\x28\x41\x91\x18\x89\x0b\x15\x42\xa9\x07\x50\x20\xd1\xde\x53\x2f\x2b\x33\x70\xe1\x63\x82\xca\xd4\xf0\x4e\x5f\xde\x27\x44\xd7\x0d\xc6\x69\xac\x2e\xa8\x8e\x2d\x1d\xb6\xaf\x47\xf8\x73\xb2\x20\x45\x4f\xda\x07\x78\xcf\x44\xf3\x36\x92\x50\x60\x82\xc5\x06\x4b\xe0\x9d\x22\xbb\x9b\x59\x9b\xbc\x6c\x56\xc7\x53\x56\x01\x9a\xf2\x4c\x26\x6c\xbb\xe7\xca\xee\xb5\x6a\x83\x52\x9b\xc3\xcc\xa1\x41\x04\x93\x0c\xa7\x90\x81\xfe\x87\x32\x13\xe2\x2a\xfd\xb8\xf6\x40\x39\xc1\x9d\xcc\xb6\xbd\x8e\xa1\x8e\xd4\x0c\x76\x58\xa4\x84\x61\xd9\xe1\x79\xbb\x18\xc2\xed\x44\x1a\x5a\x89\xd5\xd7\x22\x7b\x87\xaa\x03\xf7\x0a\x41\xa8\x67\x0d\xac\x55\x79\x9b\xd5\xc3\xea\x92\x10\xcc\x20\x39\x27\xab\x1d\xc6\xa5\x06\xfd\x28\x7e\x4c\x97\x6d\x21\xb9\x41\xc9\xaf\xa2\x6c\x32\x73\x71\x9c\xfc\x5f\x6c\x0d\xfe\xa3\xa9\x56\xde\x85\x6d\xd3\xc9\xfe\x30\xa1\x78\xe8\x2d\x11\x37\x6d\x98\x8b\xf1\xcb\xb3\x99\x7c\xb1\x4a\x2d\xf6\xf0\x05\x9a\x2a\x83\x77\x98\x5f\x68\xb4\x89\xb0\xac\xf5\x26\xea\x17\x30\x58\xce\xf3\x5f\x03\x11\x41\xd8\xf4\x2d\x1c\xb7\x59\xf1\xf6\x47\x06\xde\x02\xa6\x1f\x12\xdb\x4f\xdf\x40\xf3\x8c\x72\x7a\x7f\x70\x9f\x3a\x08\x93\xd8\xe8\x6b\xf1\xf4\x67\x33\x9c\x3e\xc6\x30\xea\x42\x2f\xcb\xa1\x58\xb4\x6f\x72\x9b\x6d\x0d\x13\x61\x19\x24\x2c\xb6\x0b\xf9\x32\x17\x75\xed\xad\xf0\x99\x0c\x18\xb7\xbb\x81\x2a\x7b\xa9\xe1\xef\x90\xcd\x2f\x30\x32\x10\xca\xea\xaf\x58\x6e\xd2\x0e\xc4\x71\xea\x31\xc1\x64\x60\xac\x1b\x44\x9b\x89\xda\x71\x57\x6a\x9a\x4c\x46\x71\xca\xac\xd6\x99\x9d\x26\xa3\x1c\x44\xc6\x2c\xc1\x0d\x71\xfb\x7c\xb7\xdb\x2f\x17\x9b\xc5\x72\xed\x75\xd3\xdb\x38\x95\xd3\xc8\xee\x96\xb2\xdb\x16\x64\x6c\x6c\x89\x63\xfd\xb8\xc3\x3e\x91\xff\x7b\x12\x13\xdc\x4c\xbc\xf8\x59\x7d\x57\xce\x72\xa6\x99\x4c\xb4\x02\xac\xa7\xde\x6e\xfc\x87\x29\x58\x79\x46\x28\x0e\x95\x78\x87\x5b\x30\xa8\x87\x31\x51\x0c\x19\xae\x5b\x92\x49\x83\x6c\xde\x5d\x96\x83\xb7\x25\x1d\xdd\x43\x9e\x32\xcf\xbf\x5e\x1c\x90\x2d\x74\x6d\xce\xc2\x24\x57\x02\xc3\x71\xb4\x0e\xd3\xab\xe6\x6d\x71\xec\x7e\x2a\xd7\x12\xeb\x95\x2e\xca\xfd\x03\x2a\x9d\xa9\xe6\x5a\x3a\x83\xc9\x94\x25\x54\xfa\x86\x0b\x82\x05\x10\x7b\x22\x9b\x7d\x6e\xa1\x06\xdb\xb3\x67\xdd\x48\x41\x24\x7a\x27\xde\x9d\x0e\x4a\xbd\x0d\x49\x55\x73\x3f\x53\x50\x8e\x50\x4b\x2f\xc5\xec\xcf\x22\xc3\x10\x8b\xb8\xcb\xd7\x65\xff\x27\x27\x30\xd3\xcd\x94\x6b\x11\x70\x26\x75\xa0\x51\xb2\xe0\xad\xfc\x78\x14\xc5\xe5\xee\xac\x7e\xd4\xf7\xd9\xfb\x20\xf3\x1a\xfc\x2e\x4d\x38\x75\xc5\x8c\x6f\x6d\xac\x03\x7a\x75\x38\xfc\x76\xbe\x92\x51\x65\x52\x33\xee\x9a\xe7\xaa\x2c\x74\xbd\xcb\x8e\x23\xdd\x67\x26\xb5\x22\x88\x72\xf9\x80\xcc\x8a\xe3\x0e\x8e\xa4\xa9\xbc\x76\xc4\x73\x47\x21\xb0\xed\xdf\xd5\xbf\x7d\x47\xf2\x6f\xd2\x2f\x25\xf0\x10\xe1\xb7\xfd\xbd\x57\x01\xb7\xc4\x30\x7c\x4e\x43\x6e\x79\xdd\x8d\x10\x09\xfa\xed\x74\xae\x9d\xe7\x5f\x80\xf3\xce\x3d\x48\x43\x45\x81\x40\xf4\x05\xea\x1c\xed\xfd\x29\xa3\x38\x41\xf5\xcc\xfa\x04\x2a\x13\xb9\x63\x44\xba\x77\x63\xaa\xcf\xca\x54\x94\x58\xda\x9b\x13\x4a\x87\x6a\x92\xcc\xaa\x28\x0d\xb0\xf7\x8c\xb2\x3c\xfb\x36\x3e\xfc\x6d\xd8\xcf\x51\x91\x4e\x30\x0c\x93\xe7\xcb\x22\xbf\xde\xc3\x87\xf7\x48\xc5\x51\x80\xd5\xaa\x37\x51\xbf\x41\x3d\xc8\x8a\x55\x1c\xf3\xc0\x93\x44\x1f\xcb\xa2\x8d\x00\x71\x4d\x5b\x0e\xb9\x68\x2a\x61\x0c\x6b\x13\xed\x36\x96\x15\x87\x9b\xf2\x7c\x78\x6b\x3e\xb3\x1b\xfd\x3a\x99\x50\x34\x04\xdd\x07\x41\xaf\x45\xa6\xca\xca\x72\x42\xd7\x85\xe5\x0b\xfb\x81\x46\x61\xab\xfc\x41\x14\x3a\x2f\x2b\xdd\x1b\xe1\xcc\xfe\x46\x16\xa7\xf1\x80\xc2\x07\x55\x73\x71\xae\x18\x08\x8f\x19\xdd\x3b\x96\xa4\x68\xcf\x71\xb4\x72\xed\xeb\x7a\xec\xde\xca\x14\xd7\x21\x86\x4b\xa0\xde\xca\x39\x10\x9a\xe2\x86\x20\xa1\x6b\xb1\x3e\xb4\x51\x88\x9d\xac\xff\x47\x78\xbb\x3b\x95\x10\x96\xc7\x80\xb2\x9d\xa7\xc9\x2c\x90\x91\x42\x12\x50\xaf\x65\xba\xcd\xcb\x66\xe0\x36\xf0\xc9\x49\x15\x63\x94\x0c\x80\x9c\x0e\xb7\x3a\x56\xaf\x69\x87\x29\xa4\x01\x4b\x51\x14\xa0\x11\x4f\x3f\x69\xfc\x28\x90\x41\xe2\xda\x01\x77\xd9\x4f\x2b\x45\xe7\x0f\x19\x96\x92\x81\xfb\xc5\xe8\x41\xeb\x20\x88\x65\xe4\xfa\x21\x2f\x90\x8b\xcb\xf2\x71\xb9\x9b\xe3\xb2\x8d\x2b\x66\x3a\x08\x03\xe4\x11\xca\x2a\x93\xfe\x42\x75\x10\x5b\x6d\xda\xc6\x2a\xd7\x81\x73\x62\x43\xae\x4b\xdf\x39\xd0\x41\x12\x47\xf1\xa8\x82\x8d\x8c\x47\x04\xa2\xf9\x87\xab\x09\xd8\x0e\x66\x0d\xcd\xb3\x31\xc8\x2c\x1a\xbf\xad\x93\x1f\x12\xd2\x18\xf3\x36\xec\x86\x18\xdf\x7a\xf5\x07\x75\x94\xb8\x8a\xff\xcd\xf3\x66\x3b\x7f\x86\x28\x8a\x91\xd7\x3d\xec\xd4\xdb\x00\xa1\xbf\xaa\x28\x8e\x30\x87\xee\xe9\x76\xce\x9a\xbf\x7d\xd7\x36\x15\x0c\xcc\x68\xfc\x27\x92\x04\x3b\x61\xa3\x7b\xf2\x88\xd1\x6b\x1b\x05\x0c\x2e\x32\xa2\x89\x06\xaf\x7e\xbd\x47\x7a\xfd\x5b\x79\xda\x36\x65\x05\x2f\x2e\xef\x9b\xcf\xa5\x75\x04\x0a\x05\x5b\xff\x7d\x63\x35\xed\x44\xd6\x35\x3b\x74\x9c\xd8\x55\x65\x80\x65\x29\x3f\x40\xef\x3f\xc3\xfe\x8e\xa7\xa8\x8e\x39\x0d\xbb\x9b\xe2\x9e\xe3\x6b\xd1\x43\x82\x74\x6c\x14\xd2\xfd\x16\xf9\xe9\xcd\x77\xec\x35\xa3\x14\x03\xcc\x6c\x06\x33\x35\xcc\x21\x34\x67\x14\x5f\xab\xfb\x3f\x76\x28\xd9\x68\xeb\x4b\x1d\x36\x40\xa7\x9a\x19\xe5\x8b\x1a\x38\xff\xe6\xbb\x10\x3a\x35\x46\x93\x41\x86\xbc\x44\x99\xcd\xd1\xfb\x37\xd5\xf5\xd0\x82\x07\x8e\x2a\xbc\x6f\xca\xd3\xfe\x13\x5c\x81\x16\xae\xe2\x71\x80\xe6\xf5\x34\x2c\x82\x6b\xa1\x28\xf3\x71\xf4\xf3\xf3\x83\x55\xe0\xe4\xdd\x51\x13\xf8\x12\xe1\x6a\xf7\xcd\xbd\xd3\xeb\x5e\x0f\x46\xcb\x80\x05\x91\x8b\x50\x41\x8c\xec\xfd\x98\x96\x24\x44\x5f\x14\x4c\xd6\xbc\x2b\x8c\x3f\x26\x05\x1e\xd3\x90\x43\x03\x8f\x17\x34\x7d\x99\x20\x88\xb4\x8a\x09\x42\xd0\x3b\xdf\x74\xeb\x5d\x31\x99\xf4\x2a\x96\x24\xf6\x52\xf0\x00\xfa\xe6\x7c\x3c\x0d\x0a\x5f\xba\x8d\x3a\x64\xa7\xcf\x7b\xcd\x6c\x1b\x2d\xb8\x5a\x27\x1a\xb7\x8d\x53\x99\xf5\x92\x8a\xb6\xd7\xec\x31\x4f\x3f\x66\xec\x14\x99\x06\x12\xe1\x92\x50\x89\x42\x13\xfa\xdb\x2c\x52\xc2\x0f\xe5\x31\xa2\x08\xec\xd6\x74\xdf\x23\x39\xfe\x31\xc6\xdc\xfe\xe7\xaf\x4f\x20\x66\x5f\xaf\xf4\xda\x04\x81\x15\x48\xb4\x00\xd6\x99\x3a\x99\x36\x31\xc7\x97\x42\x9e\x2f\xfb\x53\x2e\x8a\x2e\x22\xd7\x86\xaa\xc0\x73\x88\x2c\x98\x60\x39\xb9\xe1\x46\x31\x2f\xd6\xbc\x2e\xde\x33\x0b\xd0\xea\x9c\x4b\xec\x20\x08\x92\x24\x75\xeb\xd5\xef\x7f\x2e\xbd\x6e\xc3\xe8\x44\x10\x40\x88\x63\x0a\x07\x70\xae\x07\xca\x0f\x40\x42\xd1\x7b\xd2\xde\x97\x22\x47\x66\xe9\xf8\x67\x00\x49\xc2\xb8\x43\x7b\xb7\xc9\xff\xf4\x38\x35\x78\xdc\xa5\xe7\xd8\x04\x5e\xab\x72\xe8\xeb\xc1\x20\x8c\xa9\xb0\x0e\x58\xcf\x85\xef\x90\x8f\x4f\x13\xa6\x80\x1d\xab\x9b\xfc\x0c\xdf\xb2\x3c\x7f\x1c\xd6\xd8\x21\x09\x0c\x56\x44\xc4\x87\xa8\x34\x32\x32\xea\xee\x50\x44\x70\xdf\x33\xa0\xde\xfe\x28\xd1\x04\x6a\x24\x4d\x3c\xbb\x62\x41\xc2\x43\x74\xe0\x7e\x28\x0f\x16\x8a\x54\xaf\x90\xf4\x37\xe9\xb0\x42\xc2\x25\x96\x08\xee\xf3\xf2\x63\x48\x53\x01\x2a\x43\xa4\xde\x58\xf9\xc3\xa5\xb5\xbd\x99\x9b\x33\x7c\xbe\x9b\x04\x14\x82\xc8\x91\x3f\xbc\xcb\xd2\xa6\x9a\x6c\xbc\xc0\x04\x8b\x3a\x4c\x67\x74\xef\xbf\x9c\x87\xa1\xe4\x9d\xf9\xee\x8f\x4f\x13\xfd\xe1\x6b\x07\x9c\x29\x8c\xae\xb1\xea\x6b\x67\xcb\xdf\xab\x10\x00\x57\xdd\xda\x76\x03\xcd\x38\x23\x85\x34\x0c\x91\x01\xb9\x5b\xbd\x3c\x6e\xf7\x8b\xa7\xdb\xfd\xf2\xf9\xe9\x76\xbd\x5b\x3f\xfb\xd2\x07\xa4\x71\x12\xa6\x3e\x29\xa9\xf4\x52\x9c\xae\x34\x1c\xba\x91\x96\x5d\xb7\x13\x3f\xa0\xb2\xfb\xa5\x25\xee\xfe\xad\xba\x16\xa4\xc2\xe0\x6b\xb3\xae\xc7\x8c\xdc\xf1\x4d\x4d\x41\x4a\x97\x67\xae\x50\x75\xec\xb7\x6e\x31\x70\x23\x44\x40\x82\x21\xb4\xb3\x4d\xe5\x5f\xae\x49\x24\x93\x6f\x17\xc4\x50\xd7\x39\xe9\x73\x7f\xdc\x0a\xfa\x69\x23\xa9\xad\xe7\x3c\x64\xff\x7b\xce\xf4\xf6\x43\x8c\x74\xc2\x40\xea\x00\x91\x8c\x1f\x5e\xff\x68\xf6\x2b\xbb\x7b\xaf\x22\xdb\x52\xa8\x7d\x6b\xed\xd9\xbc\xd6\xb0\xeb\xfc\x75\xfc\x69\x15\x4b\x98\xf1\xac\x60\x54\x57\x5b\x4f\x5f\x63\x1d\x4a\x4c\xa3\x1a\xa7\xc9\x82\x5e\xc0\xfe\x18\x4f\x11\x6e\x75\x93\x35\xed\x82\xbd\xe9\xc0\xe8\xa0\x21\x0e\xdb\xa5\xfc\xfb\x9b\xc8\xe1\xbb\x18\xfc\x50\x20\x1c\xfb\xca\x03\xd1\x86\x31\xa6\x0a\x20\x02\x2d\x87\xf5\x07\x77\x97\x2d\xa1\x64\xfc\xc8\x8c\x88\x52\x2b\x39\x79\x39\x35\xe5\x4b\x79\x84\x51\xe9\xdb\x04\x91\xed\xe1\x9f\x44\x91\xa9\x9b\x73\xd3\x94\x43\x89\x26\x13\x18\xcb\xb5\x6c\x37\x95\xac\x38\xdc\x4e\xd9\xca\x86\x44\x09\x46\x6c\x1b\x71\xd9\x94\x65\xbe\x6a\x23\xed\x42\xc1\x1d\x8c\x6b\xaf\x86\x44\x46\x3b\xed\xb3\x77\x11\xfa\x6f\x27\x22\x46\xa1\x3e\x71\xc2\x62\xf6\xf8\xda\x0d\x01\x66\xbc\x3e\x5f\x35\xb6\xfd\x66\x26\xa4\x0c\x93\x6c\xdb\x55\x9c\x3a\x85\x31\x13\x4a\xf0\xe1\x81\xef\xd7\xb5\x8b\x5c\x75\x0d\x3d\x30\x21\x08\x94\xd5\x15\x5a\x0f\x3b\x32\xbf\x2c\xd1\x9a\x28\x92\xd8\x6b\x5d\xbd\xc3\x40\xb1\x9e\x99\x28\xb6\x9e\x24\x9d\x18\x17\x68\x2b\xcc\x3d\x28\xe5\x5e\x17\x40\x4d\xa4\x9c\x86\x04\xd4\xcd\xda\x59\xaa\xd9\xe8\xe2\xb5\x6e\x6f\xbe\x05\x35\xe8\x49\xdb\xdb\xc4\x21\x47\x75\x22\xec\xcd\xfa\xdc\x66\x7c\x27\xe3\xd8\x3a\x4b\x28\x51\x37\x28\xe2\x3c\xda\xf9\xc7\xeb\xab\x89\x29\x60\xfd\xb8\x4d\x0c\xed\xfc\xba\x41\xe2\xf5\xec\x7e\x60\x62\x15\x20\x2e\x53\x14\xea\xad\xac\xee\x45\x3d\x24\x52\x9b\x58\x1b\xb0\x80\xcb\x5a\x18\xf8\x5e\x65\x0d\x60\xa0\xf9\xdb\x4c\xb4\x6a\x92\xc0\x24\x56\x07\xa2\xcd\xd0\x7f\x1b\xfc\x55\x22\x26\xe0\x70\xc8\xee\xaa\xab\xb2\x89\x49\x22\x82\xdf\xb1\x17\x5a\x7f\x2b\x73\xb4\x3e\xb2\x2d\xfe\xb0\x1b\x11\x63\x18\x7c\x93\x97\xca\x94\xd5\x71\x72\x77\x92\x36\x67\xb2\x3d\x8e\xaa\x71\xda\x18\x03\x15\x09\xc3\x48\x42\xda\x2b\x78\xdc\x6d\x86\x6b\x8e\x61\x2a\xc6\x92\xe2\xa9\xfc\xe8\x66\x34\x0f\x04\x06\xbd\x96\xad\xf2\xb8\x7a\xc2\x62\xe3\x7e\xbd\x7c\xde\x6f\xbe\x2d\xb6\xab\xfd\xf3\xd3\x6a\xbf\x79\x7e\x7d\xba\xdd\x76\x1f\x89\x42\x5c\xd9\x8e\x65\x81\x9c\xb3\xc9\xd2\x6e\x38\xd5\x88\x3a\x3c\x64\xef\x70\x3e\xdd\x64\x93\x05\xc8\xa4\x41\x14\xbb\x99\x3e\x50\x84\xed\x1e\x67\x1a\xc7\x28\x3b\x80\x65\xbf\x1b\x5f\x59\x30\x22\x8a\x90\x54\xb1\xfa\x63\x54\x6d\x37\x32\x24\x98\xec\xbc\x8b\xfc\x0c\x3d\xee\x6f\x7a\x51\x92\x01\x5a\xef\xea\x21\x89\x65\x84\xb6\x31\x52\x47\xe8\xf1\x81\x0c\x25\x67\xde\xe9\x0f\x81\x4a\x3b\xd4\xf6\x4e\xfc\xec\x32\x40\xa3\x92\x04\x79\xa6\xed\x8f\x9d\xd2\xb7\x47\x0b\x8a\x4a\x09\x44\x7d\xfc\xfd\xbd\xac\xdb\xf5\x67\x57\xa2\x9d\xb2\x1f\x23\x59\xcc\x9c\xdf\x0d\x56\x70\x47\x8f\x4f\x49\xe6\x5a\x74\x88\xa7\xbe\x83\x81\xf2\xfe\x64\x86\xe8\x30\xc1\x52\x7b\x17\xec\x0f\x52\xf8\xc9\x48\x4a\x5c\x42\xf7\x03\x8a\x17\xd1\x00\xf1\x0d\x5c\xa3\x29\x47\x64\x5d\x7f\x92\x71\xc5\x7f\x72\x26\x13\x5a\x95\x01\x4f\xa9\x5f\x3e\x3f\xed\x5e\x16\x4b\x8f\xf3\x31\x86\x26\x08\x11\xba\x39\x1f\xb2\x7a\xdf\x0b\xd9\xe3\x61\x1e\x04\xc2\x72\x53\x10\x5b\x79\x2f\x1a\xf8\x10\x97\xee\x98\x0e\x84\xa7\x99\x7a\x97\xd1\xfd\xa0\x7b\xc2\x03\x12\x47\xd8\x48\x2c\xab\xec\x90\x15\x22\x1f\x81\x33\x79\x40\x94\x95\xc7\xbf\x2b\x4b\x9d\x41\x9f\x8b\xf0\x80\x80\xcd\x38\x97\x79\x79\xd6\x57\x51\xd2\x38\x93\x18\xfe\x5e\x1e\x84\x22\x16\x61\x67\xb3\x72\x0b\x22\x7f\x41\x78\xa2\x3f\xac\x23\xb7\xcd\x36\xce\x38\xa4\x5e\x1d\xb3\xa6\x2b\x1e\xf0\x20\x4a\x63\xdf\x72\xbd\xf2\xd7\x98\x29\x38\xf3\x20\x92\x4c\x47\xce\x3e\xda\x3d\xf7\x87\xcf\x22\x07\x3f\xf3\x79\x10\x19\x1e\x40\x27\x1b\x80\x14\xf5\x39\xe0\x03\x0f\xe2\x98\x87\xa2\x83\xc7\x0d\xd9\x5e\xe3\x97\x89\x07\xb1\xb0\xf6\x28\xde\xff\x79\x10\xeb\xfb\x11\x8a\x21\xad\xf2\x20\x8e\xb6\xef\x68\xf9\xb6\xee\x68\x12\x33\xe5\x32\x0d\xc4\x62\x16\x97\xe9\xd4\xba\x2a\x78\xf3\x80\x12\x6b\x1a\xd7\x64\x50\x85\xfe\x4c\x34\x0e\xed\x35\x37\xe2\x00\x43\xf3\x21\x1e\xb0\xc4\x92\xb1\x2d\x3e\x08\xa5\x27\xca\x0c\x21\xd8\x5d\x68\xc2\x03\x26\x84\xd4\x03\x8e\xcb\xec\xa6\xc1\x03\x6c\x0d\xd8\x44\xd6\x7f\x92\xd3\x50\x86\xbe\xed\x54\x34\x6f\x50\x67\xff\x05\xaf\x77\x37\xb9\x5f\x5c\x28\x6c\x88\xdc\xfe\xeb\xc9\x7f\x3c\x4d\x04\xb6\xa3\x8c\x52\x53\x39\x1c\x1e\xa4\xd2\x66\x62\x35\xda\x49\x1c\xc1\x79\xbf\x09\xd7\xe1\x70\x95\x7d\x1e\xa4\xca\x92\xdc\x75\xb9\x2e\xd0\x9b\xa1\x9b\x7d\x32\x89\xbd\xec\xdb\xa6\x02\x07\xb5\xd4\xab\x5d\xb9\x7b\x83\xc9\xc5\x49\x11\x59\x81\x42\xdb\xa8\x42\x28\xfd\x28\xf2\xe7\x81\x94\x86\xf1\xc1\xf3\x5e\xeb\x4e\x77\x63\x51\x68\x0b\x27\xf8\xaa\x6e\xc4\x03\x69\x82\xc0\x17\x6f\xf1\x29\xdd\x5c\x76\x70\x3c\xe5\x53\x00\x32\x0f\x14\xe5\x54\x0f\x00\x8d\xb8\x3d\x7b\x04\xcb\xfc\x0c\x57\x4c\xa0\x5a\xa4\x38\x37\x6f\x50\x34\x99\x12\xfd\x8d\xd0\x3c\x22\xb6\x7d\x65\x21\xed\xee\xcf\x90\x40\x1c\x3b\xe9\xf5\x0e\x1e\xf5\xb9\xc3\x19\x0f\x80\xdb\xcc\x48\x0e\xbd\xbb\x51\xbd\xb8\x9d\xbd\x57\xab\x6b\x5f\x28\x75\x9f\x37\x51\xc0\xad\x97\x9d\xfe\x86\x05\xfd\xc9\xcf\x36\x11\xc3\xb6\xe2\x7b\x06\x1f\x2f\xc2\xeb\xbd\x71\x42\x42\x8a\xf3\x64\x55\x55\x65\xf5\x50\x1e\xe6\x0a\x2d\x9c\x10\x4a\xb8\xa3\x61\x6c\x4f\x99\xa7\x10\x73\x42\x38\xb5\xe5\x9c\xec\x80\xf5\xb4\x42\xa3\x23\x0a\x54\xf5\xea\xf6\x75\x08\x59\xe5\x24\x64\x3c\x02\x8f\x06\xb3\x81\x1b\x0a\x88\xd4\x7e\x40\xe4\x54\x4e\x2a\xd0\x00\xc7\xe7\xaa\x7d\x93\x90\x2d\xba\x2b\x67\x3c\xb7\xfd\x87\x42\x1e\xf1\x4e\xfd\x13\x81\xa7\xee\x6b\x3f\x19\x2f\xba\x10\xfa\x7b\x56\xc0\x5a\xb7\xcf\xd3\x64\x50\x2d\xae\x96\x39\xff\x09\x09\x58\x74\x73\x55\x89\x7b\x71\x1c\xbb\xdf\x71\x12\x87\x36\xe4\x3f\x54\xa2\x68\xbc\xfb\xe3\x8c\x18\x3e\x27\xb1\xb0\x9c\x0c\x6c\x80\xf7\x11\x15\x27\xb1\x64\xd4\x95\xc5\x6e\xaa\x4c\x1f\xe0\x7b\xa6\x9b\x71\xfd\x84\x93\xa4\xdd\x4c\xda\xb0\xec\x43\x9c\x7c\x8d\xc6\x1f\x22\x1c\xc1\xc4\xdb\x6f\xdb\xc1\x96\xde\xfe\x3d\x8d\x2c\x4d\xca\xd9\xa4\x5a\xe2\x69\xd7\x37\xe8\xa6\x41\xe2\xe8\xf6\x4f\xab\xa7\xe5\x75\x09\x8a\x93\x44\x31\xe4\x44\xfd\x5e\x5e\x4a\xff\x19\x1a\x6b\x8c\xb3\xb7\xf7\xb7\xf5\xe8\x5b\x69\x62\x4d\x0c\x34\xa8\x3c\x2b\xd0\x10\xcd\x1f\xd1\x31\xc2\x26\xb3\xf6\x89\xba\xbf\xb1\x88\x20\xce\xd2\x51\x81\x7e\x25\x0b\xd4\x07\xc8\x9c\x30\x6e\xec\x47\xb5\xfe\x54\x1b\x80\x13\x66\x0c\x06\x06\xbe\x21\xbb\xf3\x9d\x5a\xab\xba\xdf\xae\x11\xd5\x04\xbc\xc8\x09\xa7\x09\xca\x94\x65\xb5\x45\xd7\xdd\x55\x00\xf8\xd4\xe7\x8b\xe2\x9c\x70\x9d\x06\xac\x93\xe5\xb5\xee\xc5\x73\xd6\xda\x6e\x78\x1a\x0b\x04\xce\xb4\x41\xfa\x13\x7c\xb8\x6d\x0a\x65\x32\xaa\xc9\xbb\x4b\x52\xae\x10\xe9\x6b\xad\xf6\xda\xe8\xf1\xbe\x2c\x5f\xa0\x06\x51\xa9\xb7\x36\xca\xf3\xb7\x32\x4d\x39\x6a\xe1\xda\x5a\xe5\x13\x7c\x6c\xca\x3c\xff\x4c\xe9\x7a\xf2\x1d\x60\xb5\x8f\xb6\xd9\xf1\x94\x3b\xa2\x97\x3f\xad\x08\xac\x72\xf0\xee\xe5\xf9\x69\xfd\xaf\xfb\xe7\x87\xdb\xee\x08\xb3\x24\xb4\x0e\x40\x1e\x75\x47\x24\x60\x69\xe4\xa5\x2c\x44\xae\xcb\x81\x54\x1b\x27\x02\x68\xda\x1b\x20\x60\xa2\x0e\xf3\xb8\x3d\x4e\x54\x48\x90\x21\xbc\x5d\xfd\xeb\xcf\xe5\xb3\x87\xd2\x70\xa2\x40\x39\x38\xcb\x50\x6a\xbe\x9f\xd0\x3a\x89\x63\xab\x76\x3c\x78\x4d\xb4\xa4\xf1\x28\x48\xb7\xe5\xd6\x45\xa1\xb1\x48\xf1\x65\x9c\x43\x00\x28\xca\x41\xe4\xa2\xb6\xd1\xc6\xfe\x3d\xf0\x27\x36\xb1\xc4\xd5\xfb\xe5\xe5\xe5\x79\xf4\x2a\x18\x48\x91\x60\x77\x7b\xf8\x79\x0b\xc7\x73\x55\x89\x03\x2c\x5d\x33\xa7\xbc\x46\x92\xce\xde\x83\x30\x08\xb8\xa7\x60\xac\x7e\x36\x50\xd4\x59\x59\x58\x19\x3b\x31\x50\x75\xf2\x83\x05\xc5\xe6\xa0\x12\xc5\x50\xf8\xcb\x1d\x25\x3c\x25\x56\x19\x1c\x81\x31\x4e\xb2\x63\x78\x9a\x7f\x4c\x3f\x60\x75\x4d\x6c\xc5\xae\x29\xab\x21\x78\x77\xb6\x9b\xcb\x43\x92\x72\x44\xd2\xd4\x27\x28\xc6\xda\xe3\xe3\x5b\x1a\x86\x21\x4f\xdc\xea\x8d\xbe\x66\xcf\xc5\xba\x68\x63\x09\x81\x7e\xa8\x5d\x4c\xd2\x07\x69\x61\xa8\x01\x73\xa8\x1f\xef\xcd\xf0\x3e\x87\x51\xc2\x78\x47\x78\xe8\x17\x97\x30\x4a\x29\xb8\x5d\xe7\xde\x86\x8a\x8d\x07\x0c\xf1\x30\xd2\x94\x0e\x51\x13\x63\xa6\x77\x7b\xdc\x60\xd0\xdf\x40\xdd\x6c\x3c\xf6\x9b\x87\x31\x51\x84\x76\xd5\xf2\xeb\xbd\xd9\xef\xc9\x61\xac\x39\x7e\xb9\x3c\x5f\x48\x10\xdc\x8a\xf2\xae\xac\xc8\xca\xc3\x4e\x79\x18\x83\xf0\x10\xda\x6f\xd9\xe1\xcd\xa2\xd0\xdc\x31\x4a\x65\xe8\xbd\xcc\x45\xef\x2d\xe1\x8e\x32\x6d\x03\xb3\xbd\x7d\x85\x6e\xff\x3f\xca\xde\xac\xb9\x71\x1c\xd9\x1e\xff\x3a\xfd\x70\x1f\xb8\x82\xc0\xa3\x2c\xcb\x55\x9e\xf6\x36\x96\xaa\xab\xe7\x7f\xe3\x86\x22\x01\x24\x64\x8e\x29\x52\x43\x52\x76\x79\x3e\xfd\x3f\x98\x00\xb8\x89\x76\xf7\x6f\x1e\xa6\x3a\x0c\x90\x22\x41\x2c\xb9\x9c\x3c\x07\xca\xd7\x4f\x2c\x5c\x77\x01\x0f\x90\xc9\x91\xd5\xd3\x1f\x01\x55\x3d\xbb\x35\x4f\x4c\xcc\x2e\x21\x19\x8b\xdb\x07\xbf\xd4\xae\x58\x76\x6d\xfc\xbd\xd3\xd4\x66\x62\xe1\x88\xd7\xf8\x86\x45\x75\xea\xcf\x6b\xdf\x45\xa6\x96\x4e\x19\xeb\xb7\x5c\xf5\x06\xef\xd5\x72\x15\x3c\x27\xce\x4a\x57\x34\x6d\x8b\xad\x17\xf0\x79\x3c\x12\x61\x48\xa9\xfb\xab\xf3\xc7\x43\xf5\x6e\xb5\x1a\xfe\x4e\xe1\x1b\x8f\x04\x4b\x60\x8c\x20\xbd\xa9\x6a\xf2\xa8\xa7\x4f\x21\x04\x90\x2a\x92\xdd\xf8\xb1\xd4\x63\xcc\x23\x8f\x84\xb6\x1c\xd1\xad\x47\x47\x3d\x96\x38\x9a\x07\x92\x19\x26\x16\x38\x13\xff\x63\x43\x43\xae\x97\x4a\x23\x35\xd6\x31\xec\x99\x05\xbf\x26\x9e\xe0\x91\x92\x8a\xfc\xc0\x73\x43\x42\x25\x38\x4b\xca\xf3\x48\x99\x00\x98\xfb\x2c\xb6\x7a\x63\xe6\x60\x44\x3a\x16\xc4\x88\x7a\x2a\xa0\x1c\x3b\x41\x91\x66\x01\xcd\xab\xf5\xf3\xe3\x76\x75\xfb\xbc\xff\xe3\xf1\xc7\xfa\x3b\x95\xe5\xdc\xae\x37\x7d\x27\x29\xe2\x81\x29\x7e\x8c\xbd\x71\xb9\x9d\xd9\x8f\x99\xc0\xab\xe1\x0d\x80\xb9\x65\x39\x4a\x1e\x61\x1a\x65\x4e\x07\xe7\x1b\xa1\x94\x29\xb1\xf4\x37\x41\x17\xfe\x1e\x8e\x09\x72\x41\x00\xfb\xff\x29\x99\xc7\x23\x93\x58\x6f\xa0\x3a\x79\xd1\x2b\xdf\xc0\x13\xf2\xd0\xdc\x82\x7d\x82\xa6\x39\x55\x75\x3b\x7b\x19\x03\x40\x50\x41\xeb\x4a\x2f\xd8\x61\x91\x51\x81\x30\xf4\xa8\x79\xf9\x47\x5e\xc0\x08\x73\xcb\x23\xa3\x39\x85\x38\x5e\x3f\xd4\xf2\x6a\x89\x83\xc0\x78\xa0\xfb\x7a\xf5\x38\xe1\x1c\xf7\xbb\x56\x1c\x44\xc2\xc3\x48\x7f\x34\x58\x97\x70\xc4\x4f\xf0\x7c\x3c\x0e\x44\x40\x30\x39\x20\x59\x95\xdb\xe3\xb1\xaa\x5b\x28\x9a\x5d\xe5\xd8\xbd\x27\x0f\x1f\x07\xca\x52\xc4\x92\x1d\x53\xe7\xcd\xab\xea\xcc\x7b\xbb\xfe\xfd\x34\x8f\xc3\xc0\x90\x25\xfa\x8e\xf9\x7d\x5e\xe6\xc7\xf3\xd1\xad\x68\xdf\x0e\x9c\x62\xcc\x57\xe7\xfa\x80\xf5\xef\x70\xca\xff\x0d\xbe\x2d\x62\x19\x25\xa6\x4e\x50\xb7\x13\xa9\x73\x1e\xc7\x61\x4c\xf9\xa0\xfb\xaa\xc6\xd5\xad\xff\x6b\x1a\xa4\x64\x10\x58\xc1\xd8\x47\x33\x7b\xe0\x34\x0e\x03\x6f\x96\x77\x27\xfe\x75\x45\x14\xfc\x4d\x0b\xc7\xd3\xac\x2b\x0b\x6c\x59\x89\x0b\x66\xfd\xb6\xc0\xc4\xc4\x63\x06\x4c\x47\xfd\xc9\x41\x32\x65\xcd\xd5\xb9\x78\x9d\x01\x60\x78\xff\x2d\x98\x8e\x49\x63\xe6\x1f\x70\x82\xf2\xad\x79\xaa\x8a\xc1\x75\x8b\x99\x41\xe6\xac\x5f\x4a\x94\xb7\xed\x28\x16\x3e\xfd\x4e\x19\x0b\xd3\xc4\xcb\x4e\xd0\x06\xe4\x08\x57\x67\x6f\x91\xa1\x70\xe1\x8a\xf6\x5b\x55\xad\xab\xa6\xbd\xa9\xea\x1f\xe5\x27\x09\xc9\xe1\x3a\x0e\x01\x21\x43\x41\x56\xe7\x76\xcc\x5c\xe3\xda\x21\x14\x44\x01\x22\xcf\x1f\x0e\xdc\xf5\x33\x6f\x5f\x36\x73\x17\x27\x96\x32\xea\x43\x44\x79\x59\xd5\x1b\x9d\xb7\xcd\x05\xb4\x95\xc7\xca\x84\xdc\xf8\xe7\x7c\x6b\x57\xa7\x93\x37\x86\x5c\x8c\x66\x32\xec\x18\x43\xea\x50\x71\xe4\xed\xcf\xf4\x6f\x78\x8c\x89\x74\xe4\x53\xf2\x98\xb7\xcf\x63\xc2\x9c\xe4\xff\x16\x9c\x6e\xf6\x7f\xb3\x83\x8f\xff\x6f\xe8\xff\xc4\x29\xa6\x34\x7c\xc9\x11\x3e\x60\xf8\xaf\xf1\x0d\xc3\xfe\x29\x04\x90\xd6\xc2\xa0\x9b\xd7\xdc\xd4\x4e\x4e\xd1\x9e\xd7\xaa\x0d\x7e\x3d\x60\xfb\x5e\xd5\xaf\x13\x70\x99\xbf\x01\x02\x59\xe3\xfe\x84\xb8\xc6\xb7\xe6\x25\x3f\xcd\x7a\x19\x16\x4a\x1b\xe5\x33\xe7\x52\x5b\x80\x77\x73\x5b\x3e\x57\xd5\xfc\xab\x19\xa5\x63\x47\x4a\x74\x07\x0d\x69\x42\x5d\x43\x4b\x54\x33\x9f\xec\x2f\x06\x13\x8a\x94\xf8\x27\xa0\xa7\xa4\xd0\xca\xf8\x41\x2e\x2e\x62\xda\x81\x18\xd6\x58\xb6\xcd\x13\xd6\xf7\x55\x39\x9f\x1b\x49\x10\x33\x31\xd2\x08\xb1\x87\xf8\xb4\x87\x66\x14\x14\x3c\x97\xaf\x65\xf5\x5e\x7a\x78\x9b\x5b\x2f\x49\xc8\xe2\xc4\x99\x5b\xd2\x59\x55\x67\x2f\x4d\x3e\x65\x5a\xe4\x49\x28\x38\xd5\xb1\xb7\xf0\x51\x54\x63\x76\x70\x9e\x44\x61\x62\x03\x02\x54\x18\xe0\x0e\xfa\xc1\x44\x4d\x22\x95\x12\x8d\xcb\x09\xdb\x11\xf3\xea\xf4\x5d\x62\xa6\x48\xd5\xd1\x8f\x93\x87\xd6\x5e\xd8\xd2\x49\x77\xf0\xb2\x1e\x12\xba\x6f\x6b\x0f\xab\xe7\x49\x92\x44\x64\xbe\x6e\xb6\xbb\xaf\xc2\xba\x49\x82\xa1\xf2\xf8\x37\x82\x29\x2d\xe5\xc4\x78\x92\x3a\xd6\xa7\x1e\xd2\x04\x9f\xae\xfa\xaf\x4f\xc1\x24\x0b\x43\x65\x05\x1d\x9b\x16\xb5\xdb\xbe\xa7\x3f\x96\x85\x16\xb9\x03\xed\x0b\x96\x39\xf8\x04\x33\x4f\x32\x1e\x64\x36\xe0\x5a\x9d\xbe\xc1\xf1\x1b\x4e\xec\xfc\x24\xe3\x80\x59\xbf\x41\x74\x4f\xb9\xb8\xe1\x25\x22\xd5\x6c\x18\x36\x2b\xb1\x38\x7d\x48\x91\x89\xc4\x71\x8f\x75\x53\x61\x5b\x9d\x6b\x85\xb3\x53\x6e\xf6\x2d\x80\x25\x9e\x83\x87\xce\x5d\x07\x35\x9c\xdd\x18\x4c\xa0\xb1\x7f\xc4\xee\x00\x3b\x5d\x20\x90\x78\x22\xc3\x98\x50\x2a\xa6\x2a\x8a\xea\x7d\xde\x28\x2c\xf5\xe3\xe9\x5c\x14\xbb\x17\xec\x0e\x0a\xef\xc3\x26\x12\x80\xd8\x73\x09\x68\x1c\xd2\x73\x0c\x72\x39\x3c\x91\x32\x0b\xe4\xe0\x37\xec\xc3\xac\x6f\x31\x40\x45\xc7\xbd\x54\xdb\x6d\xa9\x73\x35\x63\x5c\xe1\x89\x8a\xe3\x38\x75\x1e\x62\x5e\xa3\x1e\x52\x40\xbe\x43\x92\xd0\x2f\x5c\xdf\x6e\x77\xcf\xb7\x57\x3f\x48\x27\x60\x20\x35\xec\x3a\xe8\xc8\x56\x8f\xd1\xfa\xbb\x41\x6c\x6e\xcb\xab\xd3\xfc\x87\x74\x20\xc3\xc8\x6f\x77\x57\x1f\x4f\x75\x55\x99\xdf\x96\x36\xcb\xe9\xd8\x68\x29\x08\xa2\x37\x22\x75\x98\xe5\xba\x79\xa2\xb5\x2d\xe5\xf8\xc7\xfd\x7e\xb3\xfb\xbe\x9f\xe8\xe1\xb8\x2e\x18\x24\xca\x59\x42\x50\x1f\xf6\xd1\xec\x0e\x18\x49\xaa\x28\xbe\x7f\xb8\x1b\x65\x03\x79\x82\xa9\x2d\xc8\x1e\xc4\xe9\xe6\x94\x0e\xae\xa3\x49\xb9\xd5\x4f\x73\xf3\xd3\x5a\x18\x7d\x2b\x20\x41\x76\x5e\xa0\x79\xa1\xd9\xd7\xd6\x23\xa7\x62\x86\x2c\xb3\xd7\xa4\x41\x6c\x88\x3d\x6a\xa5\xff\x7d\x6e\xda\xeb\xdc\x98\x5c\x9d\x8b\x19\x0e\x8f\xa7\x21\x0b\x98\x5b\xed\x37\x88\xa3\xe8\x50\x1a\x29\x1b\xa7\x94\x64\x9b\x35\xbb\xbc\x28\xac\x99\xb6\xae\xaa\x42\x57\xef\x7e\x91\xa5\x31\xe3\x91\x22\xe1\xe1\x8f\xc9\x41\xda\x35\xf8\x38\xfd\xe3\xfb\x25\x89\xa2\xeb\x95\x48\x15\xb9\x05\xf0\x63\x7b\x3d\x7b\xbc\x34\xb6\x94\x7f\x76\x61\xfe\x8e\x97\x98\xe5\xe5\x9b\xa6\x4c\xc5\x30\x1a\x4f\xee\x31\xb7\x3e\x55\x93\xa6\x19\x23\xac\xb7\x2b\xd9\xd8\xe2\x4c\xbe\xca\x77\x93\x96\x57\xe1\x1b\xb6\x9b\x46\xd5\xd5\xfb\x43\xe5\x22\xc0\x93\x0f\x98\xa6\xca\xd0\x61\xfa\x54\x57\xbf\x3e\x2e\x04\x2e\x78\x9a\x6a\xa5\x7b\xc6\xc6\xee\x99\xea\x6e\x1b\xdb\xcb\x8f\x7d\x7e\x51\xfe\xc8\xd3\xd4\xc4\x34\x26\xaf\xf8\xd1\x3c\xa3\x9a\xb5\x66\x22\xa1\x1d\xfa\x7e\xf5\x6d\xf3\x70\xbd\xfa\xe3\xd6\x07\xd8\x52\x91\x59\xe1\x3a\x38\x9d\xb0\xd4\xbf\xa3\x2b\x64\x59\x4a\x21\xa4\x42\x33\xa2\x02\xaa\x41\xa9\xaa\x68\xe1\x1e\x9b\x06\x0e\x07\x9f\x51\x4a\x41\x5a\x7c\x55\xaf\xe9\x3b\xe4\xa9\x52\x40\xc6\x1c\x92\xa9\x27\x3e\x2f\xcb\xca\xc2\x05\x67\x2b\x37\x05\x13\x2a\x7f\x60\xbf\x40\x5e\x3e\xd5\xf8\x36\xeb\xa2\x02\xa4\x52\xb0\x1e\x7e\x74\x4f\x02\x18\xcb\x87\x5c\xaa\xb4\xe5\x92\x6b\x0f\x93\x5a\x66\x9e\x6a\x6e\x81\x89\x16\x15\x37\xa7\x2d\xe1\xa9\x36\xb1\xa5\x11\x70\xe2\xa2\x8e\xf4\x7c\x36\xbc\x18\x65\x04\x7d\xe9\xfc\xeb\xed\x59\x8e\xc0\x22\x3c\x45\x81\xf4\x61\xba\xd3\xe4\xe1\x66\x37\xbb\xbf\x01\x4c\xdc\x9b\x5e\x61\x4b\xa9\xe3\xd9\xbd\x8d\xe4\xe4\x3b\x5b\x29\x8e\x78\x7f\xbf\xfa\x73\xbd\x7a\xfa\xad\x6f\x45\x42\xb0\xb8\x1a\x89\x9e\x9b\xdd\x02\x68\x7d\x27\x84\x54\x79\x7e\xee\x75\x91\xbb\xd8\xbe\x9f\x89\x2c\x8c\x19\x0d\x02\x1c\xb0\x6c\xa7\xb3\x94\x85\x2c\x24\xa8\xc6\x5d\x75\xb8\xc6\xa6\xad\xab\xd9\x76\xc0\x42\xc4\x80\x7b\xdd\xa5\xab\xf3\xc7\x1a\xea\x25\x94\xb2\xdf\x65\x58\xc4\xa3\xc8\xd9\xca\xdf\xab\xd9\xbd\x22\xec\x83\x69\x9b\x37\x28\xce\x34\x39\x5c\xb6\xcd\x3a\xde\x58\xdf\x5e\xff\x36\xbd\x1f\x5a\xf2\x52\xcb\x2f\x76\x95\xb7\xc7\x9e\x73\x98\xb3\x38\x48\x30\x19\xb0\xaf\x9d\xb5\xfb\xad\xe7\x52\xe0\x2c\x4e\x62\x8a\x1b\xf4\xb9\xfc\x69\xf9\xcf\x79\x6c\xb7\x4d\x67\x14\xa3\x60\xef\x48\xfe\xda\xc6\x79\xa7\x63\x97\x24\xa9\xcf\x1d\xad\xb4\x9d\x38\x97\x58\x61\xce\x12\x21\x23\x57\xd8\x57\x95\x4d\x5b\x9f\x55\x4b\xb4\x70\xbd\x61\xc9\x52\x69\x68\x6f\xfa\x77\x95\x97\xce\x3c\xef\xfd\x07\x47\xd4\xc5\x19\x43\x45\xfc\xb5\x24\x54\xe0\x0f\xaf\x05\x2b\x9e\x65\x81\xa2\xaa\x27\x2f\xa8\xba\x87\xe9\x63\x67\x49\x48\x45\xa4\x55\xb9\x3d\xcb\x07\x7c\x5f\xce\x74\xb1\x8c\x59\x0a\xbc\xbe\xb8\xb7\xac\xde\x4d\x01\xaf\x3e\x7b\xd5\x0d\xf6\x1f\x39\x7c\x82\xb9\xf8\x14\xe4\xc5\x19\x17\x11\x79\xba\x58\xea\xdb\xf5\xe3\xb6\x85\x03\xfa\xa8\x3f\xe3\x22\xa3\x68\xcc\x4d\xfe\xeb\x0a\xdb\x90\xf9\xbf\x8b\x48\x01\xeb\x55\x55\xfb\x90\xf3\x28\xfc\xc3\x7d\xcf\x24\xf4\x44\x53\xd7\x79\x73\x3a\x3b\x81\xe4\x91\x89\xc3\x04\x5a\x31\x97\x1f\xdb\xcd\x6c\x68\x84\x31\x84\xd5\x2e\xf1\xfd\xb6\xc5\xb1\xea\x1e\x67\xc0\x12\xf2\x96\xff\x79\x3d\x36\x28\x99\x4c\x0d\x19\x94\x80\x85\xb9\xc6\x37\x0f\xa0\xf5\xcd\x2a\x05\xaa\xa1\xbc\xab\x0e\x37\x88\xbb\xea\xf4\x63\xe6\xf8\x33\xc5\x84\x53\x73\x6d\xd7\x2e\xe4\x3e\x38\x03\x4c\x41\xe2\xb1\x63\x2e\xc5\x63\x37\x70\xd7\xac\xb5\x7d\xa8\xab\xdd\xef\xfe\x4f\x18\xe8\xcc\x17\x4e\x57\x27\xa2\x16\x59\xc0\xfb\x70\x86\x91\x1c\x99\xeb\xdf\xcb\xe6\x8a\xd4\xeb\x2f\x7c\x4c\x1f\x4b\x60\x18\xdb\x8c\x88\x0d\x42\xda\xea\x17\x57\x0c\xd5\xff\x36\x13\x3d\x37\x38\xd5\xc8\xd0\xd8\xf7\xea\x51\x9c\x21\xa6\x64\xb3\x0d\xe8\x9a\x2f\x3d\x01\x66\x62\x66\x62\x2a\xc9\xb5\x19\xdf\xc5\xee\xfd\x5e\x61\x94\x26\x1e\xdf\x6e\x9f\x5e\x3b\x31\x8b\x66\x62\xff\x67\x41\xc0\xd5\x20\xbf\xed\xc2\xf9\x97\x60\x8e\x2c\x94\x4c\xb8\xef\x46\xa4\x78\x7f\x07\xf5\xdb\x5d\xa5\x75\x36\xe6\xf5\x24\x16\x12\xd2\x50\xa1\x42\xe3\xbf\x77\x97\x28\x34\xe0\x2c\x30\xcb\x17\x47\xbb\xe4\x0c\x65\xc9\xb3\x48\xc6\xa8\x7c\x0d\x6f\x55\x5c\x9f\xcb\x03\xba\xa3\xcb\x8f\x48\x16\x27\xd6\xd8\x2d\xdd\x99\xec\x75\x0e\x49\x75\x2b\x0d\x1c\xef\xc4\xb4\xd4\xbb\xbb\x4a\x91\x92\xd1\x63\xb9\xa8\xa1\xdb\x0d\xd3\x5f\xbc\x42\x8c\x68\x61\xe1\x36\xfc\x4e\x2c\xd7\xf5\xb2\x8e\x19\xcf\x92\x88\x51\xa9\xff\x09\x0f\x87\x02\x65\xd5\x3f\x47\x12\x0b\x0a\x9f\x1d\x2b\x8d\x23\x0a\x4e\x9e\xa5\x11\xa6\xdc\x83\x1d\x5c\x88\x7f\x88\x43\x4e\xb7\xf2\x2c\x75\x34\x62\x07\x6c\x6d\xc4\x6c\x1c\x80\xce\x52\xa1\xd0\xb5\xde\xbc\xdc\x57\x25\x5e\x64\xfe\x3f\x79\x45\x16\x18\x52\xa0\x7c\xc0\xf7\x95\x52\x35\xea\xbc\x45\x7d\xa1\x1f\x39\x7d\x14\x16\x85\xc6\x8b\x22\x97\xe7\x93\x55\x2b\xf2\x6d\x2a\xa4\xc3\xea\xe6\x79\xb5\xde\xef\x1e\x9f\xfa\xbf\xeb\xde\x8e\x24\x76\x44\x3b\x99\x74\xf3\x95\x16\x0b\xcf\x18\x06\xa9\x4b\x8a\x8f\xf1\xc9\x5d\x83\x0f\x96\xa8\x73\x9d\xb7\x16\xf0\xfc\xc7\xb8\xb2\x8b\x67\xcc\xf0\xd0\x43\x7d\x69\x87\xbd\xaa\xce\x7d\x9d\x3c\xcf\xb2\x30\xa2\x5c\xbe\xf2\x5c\x5f\xfd\xfa\xce\x32\x6e\x2d\xa5\x66\xa8\x97\x1c\xa6\xcd\x42\xf1\x01\xcf\x78\x1a\x10\x02\x64\xc8\x8a\x9a\xe4\x3b\x34\x2f\x7b\xf7\x3e\xfe\xce\xdc\x24\x91\x8d\x3a\x39\xd2\xa3\xdb\xf2\xcd\xa9\x65\xf4\x0f\x26\x00\xa8\x8f\xc9\xeb\xa6\x25\x3e\x36\x8b\x82\xf6\xcd\x4a\xd0\x66\xd2\x22\x1c\xd7\x45\x6e\x8c\x6f\x80\x34\xb1\x8c\x37\x50\x14\xb7\x4e\xb2\xed\x6f\xf1\x90\xf2\x0c\x32\x46\x58\x52\x5b\x2e\x47\x5e\x62\x3f\x4b\x25\x53\xe4\xc7\xd2\x59\xdf\xd3\x9f\xf8\x46\xb4\xe1\x83\xe3\x38\x46\xed\xc8\x6c\xf5\xd0\xc9\xa4\x8c\xb8\x14\xf4\x85\x3a\x08\xcf\x94\x3b\xe8\x3b\x27\xd0\x9f\x8a\xfd\xfd\x75\xcc\x09\x4f\xea\x89\xe3\x6d\x46\x7e\x52\xc6\x3e\x7b\x15\x9d\x58\x65\xf0\x3e\x13\x76\x85\x25\x9a\x5c\xe5\x50\xe7\x1e\xba\x36\xbb\x02\x6c\xfe\xf3\x7e\x5d\xe5\xe5\x64\x9b\xd5\x5a\xd0\xaa\x6a\x8a\x6a\x06\xbf\xe5\x19\x06\x21\xe5\xba\x6e\x77\x8f\x9e\x8d\xfe\x69\xf3\xbc\xde\x3c\xec\xfc\xd5\x98\x59\x56\x92\x6d\x5e\x1e\xce\x05\xd0\x34\xc5\xa6\x4d\xfa\x76\xb0\x78\xfd\x7f\x7f\x9c\xd4\x88\xc1\xa1\x9b\x7b\xa9\xb0\x6e\x31\xd5\x76\xec\xc8\x65\x70\x6d\x26\x09\xc9\xb4\xf8\x56\xd5\x79\x51\xc0\x92\x1e\xfe\x72\x3a\x9a\x07\x3c\x25\x94\xc8\x91\x88\x88\xa6\xd6\x16\x0f\xc3\x8c\xaa\x7e\x75\xde\x90\x5f\x44\x90\xec\xe5\x11\xe6\xa1\xdb\xb6\x7c\xfc\xa7\x67\xf5\xf3\x80\x39\x1e\xc6\x48\x55\x17\x50\x14\xa3\x1a\x1f\xce\x23\x13\xd3\x8e\x7c\x82\xba\x2d\xb1\xee\x45\x9b\xc7\xc6\x00\x8f\x8c\xc5\xd8\xe0\xaf\xbc\x1d\x09\x35\x70\x1e\x03\x62\x34\xae\xae\x6a\x26\xc2\x7d\x9c\x27\x61\x4a\x8a\xe4\x17\x3a\x85\x73\x9f\xfa\xeb\x81\x4a\xb8\x75\x36\xdd\x64\xb6\x3a\x05\x8b\xeb\x86\x27\x9a\x51\x94\x08\xc6\xb4\x68\x9c\x27\x26\x0e\xc6\xca\x85\xbb\xea\xd3\x47\x19\x99\x94\x3c\x65\x48\xa1\x29\x4b\x3a\xbb\xf9\x4f\x6a\xcd\x98\xf4\x7f\xc6\xff\xf8\x2d\x87\xa7\x59\xc6\x6d\xe9\x04\x1d\xcf\x1a\x41\x17\x79\xd9\x8f\x56\xaa\x90\xa0\x00\xf0\x76\xa0\x6f\x70\xe5\x97\x8d\x6f\x37\x3a\xd6\x0e\xe6\x3c\x05\x27\x2c\xbf\x2a\x93\x61\x68\xe3\xbd\xaf\x9d\x03\x70\xbe\x34\x26\xa6\x8f\xc7\x94\x65\x89\xa2\x2d\xe5\x0e\xf5\xb0\xa3\xf0\x2c\xb1\x89\x46\xed\x73\xdf\xcd\x64\x73\xe7\x59\x96\x11\xb3\x4b\x83\x2d\x61\x95\x9a\x99\x9a\x86\x0b\x86\xf5\xff\xd1\x27\x8a\x78\x26\xac\xe9\xf4\xff\xcc\x51\x36\x7d\xd7\x0c\xe4\x50\xc7\x37\x2e\xbc\xe3\x9c\x87\x9c\xeb\x01\x17\x70\x57\xa9\x57\xc2\xba\x8d\xb7\x34\xce\x59\x94\xd8\x18\xfd\x19\x1f\xeb\x1b\x28\x7a\x88\x1b\xe7\x5a\x11\x4b\xc4\x7f\xf6\x9d\x79\x37\x89\x2b\x75\xd3\x8e\xec\xce\xe6\xac\x2b\x5f\x3d\xe7\x9b\x94\x95\xab\x79\x82\x8f\xfc\xbf\x3e\xd1\xc7\x21\x4c\xa9\x5a\x48\x5b\xb6\x90\x5d\x8d\xd8\x3c\x55\xef\xc3\x48\x43\x96\x10\xbc\x8a\x12\xe9\x5e\xa6\x81\x38\x0e\xa6\x53\x1e\xd0\x90\xef\xfd\x73\x75\xbb\x1b\x91\x6c\x70\x2e\x53\x3b\xc9\x50\x55\x3e\x91\xe0\x89\x2d\xfa\x2e\xc2\xd0\x89\x7f\x57\x1d\xa6\x98\x8a\xcf\x24\x5f\x39\x97\x90\x10\x2a\x6a\xfd\x78\xfb\xe0\x74\x31\xf7\xf7\xbf\xef\xf6\xbb\xc7\xdd\xea\xce\xdf\x17\x23\x4e\xba\x61\x4d\x5b\x9d\xf6\xd0\x83\xe7\xb8\x89\x54\xec\x2a\x45\xab\xee\x24\xfa\x8c\x6b\x72\xe4\x4e\x71\x13\x2b\x6d\xe5\x90\x9b\x97\xfc\xb3\xa7\x32\x29\x27\x64\x01\x68\xed\x80\x5f\x74\xab\xbe\x59\x06\x30\x8a\xe7\x3a\x86\xfe\x09\xe7\x19\xe7\x06\xed\xde\x51\xe2\xfb\xbe\xed\xbe\x60\xeb\x52\xdd\xfa\xc2\x80\x98\x7c\x01\x11\xa4\x92\xaa\x55\x8a\x73\x31\x26\xa9\xe4\x22\x60\x9a\x72\x91\x83\xd3\x3f\xa7\xd8\x9a\x38\x44\x22\x10\x92\xb9\xe0\x24\x1d\x2a\x3f\x88\xd3\xbc\xb7\x6d\x44\xa0\x33\x2a\x5d\xc3\xa6\x3a\x8d\x98\x7b\xb8\x08\x55\x4c\x8c\x47\x6f\x55\x8b\x93\x84\x92\x88\x24\x92\x71\x63\xb5\x5e\x9e\x6a\x7c\xcb\xab\x73\xf3\x5c\xf5\xdf\x44\xc4\x82\x11\x9a\x78\x40\x94\x2d\x92\x19\x8c\x3e\x89\x48\xe2\x14\xf9\x84\xd6\xba\x6a\xa1\xe8\xeb\xfc\x64\x81\x4b\x19\x13\x91\x38\x08\x06\x65\xd3\x88\x81\xb8\x3d\xd7\xa3\x5f\xf3\xdd\x92\xd0\xc3\xc6\xa9\x62\xe5\xdf\x55\x5e\x16\x79\xd3\xee\xf1\x6d\x0e\x26\x10\x09\x57\xa9\xb5\xb7\x88\xa9\x16\x07\x06\x59\x2e\x12\x05\x56\x81\x1b\x2c\x4b\xa4\xdb\x8a\x52\xdf\x8c\x69\xc8\x46\xb8\x76\xfb\x91\x96\xc2\x92\x22\x8d\x2d\xe8\xe7\x6a\xb7\xde\xfc\xe9\x6f\x9f\x9a\x84\x39\x4d\x98\xea\x4c\x46\x71\x9f\x8f\xbb\xac\x8b\x58\xfa\xda\x2c\x08\x22\x1b\xcc\xcc\xdf\x70\x9b\x0f\x70\x5c\xc1\x84\xa6\x00\xb8\x3d\x0a\xff\xbf\xfc\x74\x9a\xc7\x80\x45\x96\xa6\x90\x79\xbe\x3f\xb7\x83\xd8\x7d\xb3\x97\xcc\xf7\x59\x59\xc1\x11\x59\x38\x7e\x53\x22\x1d\x9e\x3c\xed\x79\xc6\x06\xc3\x85\x00\x0b\x8d\xb5\xbc\xfa\x5b\x22\xc6\x01\x4f\xcb\xc6\x05\x80\x55\x7a\x00\xad\x6d\x88\xfa\x93\xea\x84\xd9\x70\x4c\x5f\x02\x64\x1c\x5a\x67\x9d\x22\x4e\x0e\x4f\x45\xe4\x52\xe3\x43\x45\x00\x26\x44\x55\xe0\xe3\x49\xbf\x63\xff\x1c\x32\x95\xda\xba\xf3\x1f\xa7\xb6\x92\xe7\xa2\x68\x86\xb2\x3d\x2e\x64\x66\x15\x71\x2d\x4d\xec\xb5\x3f\x67\xa7\x9f\x57\x66\xa9\x76\xe2\x9f\xd8\x52\xba\x61\xec\xc1\x0a\x05\x92\x62\x86\x0a\xab\xe9\x63\x29\xdd\x17\xe9\xf7\x45\x72\x5f\x1e\x4e\x42\x0b\xcb\xf2\x20\xcf\x1f\xd7\x39\x1c\xab\x72\x06\x1c\x12\x5a\x26\x74\x7c\xee\x61\x9e\x22\x71\x1d\x30\x09\xe8\x7d\x9f\x56\x04\x25\xfd\x6a\x37\xc1\x84\xc7\xa2\xb7\xf5\x5a\x5c\xe4\x81\xe0\x02\xa5\xa0\xbd\x7a\x20\x5e\x1a\x45\xaa\x04\x2a\x24\x0f\xc2\x4e\xc5\x1d\x16\x78\x7a\xa9\x4a\xbc\x64\xcb\xe4\xc2\x04\x9c\xaa\x49\x1c\x7e\x64\x59\xe4\x76\xcc\x72\xc5\x21\x08\x62\x74\x35\x18\x34\x8b\x7a\x95\xeb\x9b\xaa\x9e\x17\xa6\x72\x08\x98\x05\xd2\xee\x40\x56\xd5\x78\xa3\x85\xc0\x28\x82\xe3\xfa\xc4\x2f\x7d\xc4\xbf\xc7\x65\xd0\xdf\x41\xfb\x94\xe7\xb6\x84\x53\xf3\xd2\xc7\x00\x20\x0c\x79\xa6\xc7\xbb\x1d\xf1\x6c\x4d\xa4\x25\xbf\xbe\x77\xc8\x95\x1c\x30\xcd\x04\x90\x9e\xe7\x7c\xff\xe2\x0e\x51\x18\x92\x51\x43\xea\xaa\xd5\x89\x82\x08\xd7\x55\xe7\x86\xf6\xc8\x04\xbf\xfc\xbd\x27\x02\x51\xa8\x29\x00\x32\xd3\xf3\xf1\xd1\xb5\xf8\xff\x96\xdd\x61\x88\x94\x0e\x46\x59\xe5\x7d\x3c\x31\x74\x20\x32\x92\xbc\x46\xff\x7b\x57\xd0\x5c\xbc\x8d\xeb\x1a\x47\x8c\x62\xe3\x5e\xc4\x8e\xca\x4b\x1a\xab\xe1\x33\x0a\x80\x40\x1c\x47\x94\x68\xdc\x94\x04\x80\x9b\x8c\x09\x9f\x8d\x44\x12\x24\xa9\xd5\x6b\x68\x4e\x55\x3e\x73\x07\x21\x91\xe0\x53\xc7\x2b\x4d\x0b\xf2\x3b\x14\xe6\xba\x0f\x71\x40\x1a\x19\xe9\xcc\xd3\x4d\xfb\xf2\x54\xc0\xe7\xec\x46\x43\x28\x0e\xd2\x4c\x07\x16\xfb\x93\x17\xa4\x1b\x30\x2b\xb6\x3d\x8f\xa9\x0d\xfc\x35\x18\xd0\xf1\x02\x4a\xe1\xa9\x9d\xa1\x48\x5c\x1f\x26\x04\x85\xd9\x70\x52\x79\xef\x1b\x91\x87\x23\xc9\x6e\x4b\x42\xd3\x2f\x90\x49\x55\xdb\xe8\x51\xb3\x44\x12\xac\x16\xed\x58\xfa\x58\x82\xff\xc5\x2c\x4d\xa8\x84\x85\xa8\xcc\x67\x1a\x73\x1c\x38\x04\x16\xea\x8d\xa0\xd7\xd5\xfb\xb2\xad\x05\x82\x25\x3e\x6d\x78\x83\x53\xe1\x17\xdf\x03\x18\x11\x64\xca\xce\x88\x79\xa2\x6d\xd5\x3f\x80\x30\x11\x71\xa9\x5b\xd0\xce\x1d\x48\xdf\x00\x61\xca\x1c\xcb\xc7\xef\xa8\x14\xbc\x46\x29\xfb\x12\xcb\x00\x32\x88\xa8\xa2\xa7\xc4\x5f\x84\xa4\x78\xaa\x9a\x26\x97\x56\x47\xca\xdf\x55\x72\x24\xf4\xd9\x33\x16\x58\xb6\x05\x12\x03\x58\xa3\x72\x2c\x15\x4e\x76\x10\xa9\x0d\x1d\x77\xeb\x1a\xf2\xc3\xb7\x1a\xca\x76\xfb\x52\xe7\xc7\x53\x6f\x8f\x83\x89\x6d\xf5\xb9\xec\x63\x12\xfd\xac\x32\x09\x9a\x9e\x2f\x60\x3d\xaa\x08\x92\x41\x64\xc5\x59\x4e\x50\x37\xdd\xc7\x08\xd9\xfa\x05\xea\xc9\x8a\x92\x81\xe0\x14\x1d\xfc\x23\xb7\x02\x32\xe7\xe3\x03\xbe\x8f\x1f\x4e\x06\x08\xdc\x8b\xd8\xb4\xcf\xa8\xf1\x78\xba\xcc\x11\xca\x30\xd5\xe0\x49\x34\x3e\x5c\xc5\xf3\x04\x25\x33\xfd\x8e\x32\x46\xc1\x1d\x93\x64\xfb\x39\x41\xa6\xeb\x9c\x46\x83\xb8\x61\x55\xb7\x0d\x4d\x2c\x03\x63\x96\x59\xab\x5a\xec\xcd\x38\x99\x26\x22\x94\x73\x0c\xec\x22\xcf\x36\x97\xa9\x53\xfa\x6c\xb0\xfd\xf1\x7c\x3b\xb6\xc4\x7c\x07\x11\xa7\x24\x3c\x4f\xc7\x50\xb7\x74\x2f\xd3\x5c\x32\x15\x12\x59\x8f\x26\x54\xe3\xba\xeb\xf9\xdb\xa0\x95\x9f\x2b\xcf\xc7\x8d\xad\x1e\x6c\x36\x6f\xc3\x78\x33\x4c\x28\x06\xd0\x2d\xa2\x6e\x2a\xac\x86\xaa\xb9\xb9\x44\x3d\x97\x19\xa4\xb1\xab\xd4\xdc\x55\xab\xb7\xc3\x33\xb1\x7d\x5f\x9c\x7b\x0b\x22\x18\xee\x06\x9c\x07\x56\x5a\xaa\x85\xc9\xe4\x95\x22\xb0\x21\x17\x5f\x26\xbc\xff\x63\xf3\xbc\xed\xa9\x44\xb8\x14\x71\x92\x58\xe1\xc8\x53\x01\x0a\x2d\x4b\xf5\xdc\x10\x1b\xf6\x06\x29\x12\x4b\x55\xa8\xf2\x9a\x0e\xb2\xbc\x2a\xe7\x99\x29\x29\xb4\x95\x65\xa0\xa5\x4b\x0c\x8c\x49\xdf\x84\x86\x54\x08\xa4\xa5\xf4\xa0\xec\xca\x6f\x8b\x01\x04\x29\x63\x91\x75\x03\xf8\x8f\xf3\x1b\x96\xed\xb9\x79\x6b\x9e\x11\x8a\x7b\xd0\x75\xee\xdd\x62\x29\xa5\x1a\x28\xd0\x0d\xe4\x05\xea\xfd\xc9\xb2\x36\xed\xcb\xaa\x6c\x5f\xea\xea\x3d\x2f\x0f\xfb\x76\xbc\x12\xa4\x01\x2a\xda\xdc\xef\x95\xa7\xdd\x9d\xd1\x6c\x8e\x82\x32\x52\x1a\x45\x72\x44\x37\x9d\xad\x14\x06\x69\xb0\x48\xbe\xb8\x64\xf2\x4b\x15\x84\x9e\x17\xa5\xdf\x73\x67\xd4\x28\x5c\xaa\xd0\x4a\x5e\xee\x7d\x0c\x69\x79\xa1\x29\x6d\xe5\x3c\x0e\xdd\xec\xf6\x3e\xb2\xd4\x49\x62\x06\xfd\xac\xed\xf5\x7a\xfd\x75\x14\x47\x6a\x1e\xa7\x7e\xbf\xdb\xbf\x23\xbe\xee\xdb\x1e\xc9\xeb\xbb\xa0\xb5\x2f\xbf\x55\x95\xbe\xaa\x3e\x9e\x88\x4e\xda\x37\x62\x16\x90\xa3\x37\x1a\xbb\xe9\x0f\xa0\xd7\x66\xa6\xbd\x79\xb2\x03\xa1\x64\x9e\x34\x65\x8d\x75\x9b\x1b\xaa\x20\xfd\x0e\xcd\xcb\x5f\x3c\x34\x9a\x98\xa2\x13\xeb\x9b\x35\x39\x98\x67\x17\x5c\x70\xcd\x26\xcb\x3c\x0e\xe3\x06\xb1\xf3\xc8\x77\x58\xee\x5e\xaa\x73\x03\x73\xdb\x58\x05\xa0\xc8\xfc\x23\x2a\xfb\xbe\xbe\x59\x85\x92\x5b\x8a\x0d\x6f\x90\x54\xd5\xeb\xef\x88\xa7\x85\x45\xe8\xae\x88\x82\xc4\x42\x7d\x95\xb2\x08\xbc\xdd\xbb\xaf\x08\x54\x71\x6c\xcb\x10\xdf\xf3\x12\x49\xcc\x6b\xc6\x62\xed\xbb\xe9\x84\x0e\x83\xa7\xc7\xe7\x87\xf5\x6a\xfb\xdd\x5f\x9e\x04\xc2\x1b\x20\x36\x0e\x41\x66\xed\x25\x75\x2b\x57\x89\x4e\x28\x9f\x7c\x82\xbc\xbe\x08\x79\x4d\xbb\xa6\x42\xfb\x04\x91\x45\xb6\xf8\x1c\x8f\xff\xb4\x2a\x05\x8b\x08\x72\x20\x31\x84\xc2\x61\x94\x17\x31\xef\x8a\x65\x32\xf3\xe8\x97\x5e\x10\xe7\x30\x7f\x42\xc6\x0d\x21\x94\xeb\xfc\xf0\xd2\xf2\x64\xd6\x9a\x45\x9c\xdb\xbc\x28\x14\x37\xe7\xa2\xf8\xb8\xb1\xb4\xa8\xb3\x5e\xb1\x21\xb0\xbf\xfc\xf8\x64\x20\x33\x2d\x33\xb7\xce\x7e\x94\xb6\x6e\x76\x60\x73\x5c\xfe\x7c\x3c\xe0\x96\x62\x94\x3c\xd3\xf0\x5f\xbf\xf5\x7f\x37\x5e\xac\xa1\x67\x69\x99\xa5\x57\x67\x37\x42\x16\x86\x7d\x05\xb8\xc5\x7e\xf4\x64\x73\x5d\xb3\xa2\x53\x57\x11\xef\x60\x1b\x2e\x55\x66\x2a\x11\x44\x19\x38\xe7\x60\xf6\xee\x22\x42\x12\xf8\xb3\x74\x0c\xce\x02\x9f\x9d\x07\xbe\x6b\x26\xa8\x62\xc0\x93\xc4\x8e\x20\x24\x4a\x68\x49\xfb\xc4\x6e\xb3\xba\x1f\x8b\x66\x71\x05\xa9\x20\x84\x92\xf3\x2b\x88\xac\x0e\xf5\x1f\x50\x90\x18\x20\x3a\xe6\xe8\xdf\x16\x23\x11\xd3\x91\x00\x16\x10\x51\xc3\xed\xd5\x76\xd7\xdf\x9d\x59\xf6\xf0\xfb\xd5\xf3\xef\xbb\x7e\x90\x81\xdb\x52\x78\x6b\x95\xd2\x38\x93\x29\x3a\x1c\x33\x0a\x20\x22\xfd\xc6\x7b\xf8\xb5\x86\x93\x8f\xf3\x4f\xc7\x46\x46\x69\x64\x46\x91\xae\x69\x28\x4e\xc9\x94\x53\x80\x9b\x82\xb8\xab\xd2\x69\x60\xd0\x8e\x74\x53\xd5\xf7\x50\x9e\xe7\x26\x84\x52\x61\x86\xbd\x33\x7e\x74\xc4\xd6\xa3\xa7\x52\x09\xf7\x95\x6a\x53\x10\x8d\x52\x2c\x26\x7c\xcf\xbe\xb1\xe5\x22\xab\x76\x88\x81\x7e\xc2\x05\xeb\xae\xd4\x91\xa2\xda\x11\xbf\x7e\xb7\x58\x14\xab\x03\xc9\x6b\xb5\xf8\x8c\x07\x82\x62\x5c\x46\xd3\xfc\xd5\x00\x32\x1c\xab\x1e\x0c\xcf\x3c\x3a\xb5\x95\xc6\x98\xc8\xd5\x6c\xb7\x9f\xd8\xad\xc6\xd9\xbb\x63\xa8\xc9\xde\x6e\x72\x8d\x5b\x5b\x75\x36\x49\x31\x2b\x4c\x74\x6a\x45\x62\xca\x67\x5a\x63\x3f\x76\x7f\x3e\xda\x97\x8b\x82\x79\x12\xc0\x1f\x6f\x0a\x99\x0d\xc4\xf5\x44\x98\xa5\x9e\x09\x77\xfe\x05\xf2\x66\xd1\xf8\x52\x08\x86\x0c\xc3\xbb\x5c\x61\xd9\xe0\x8c\xab\x6f\xba\x30\xd0\x84\x64\xd3\x6e\xb6\xeb\xab\x75\x95\x97\x7f\x25\x78\xc2\x95\x89\x2c\x8b\xc0\x09\x6a\x38\x62\x8b\x75\xb3\xaa\x71\xdb\x3b\x20\xca\x44\x11\xc6\x5e\xe0\x97\x98\x85\x9a\x49\xf9\x9e\x0e\xb8\x0d\x70\xbb\xdb\x26\xd0\x37\xa0\x95\x51\xdb\x5e\x6d\x37\xfa\x6c\x6d\xc1\xf1\x21\xa9\x43\x16\xd0\x7e\x62\x69\xf0\x46\x85\x95\xbe\x1d\x75\x9a\x79\x8e\x88\x16\x88\x9e\x66\x54\xc8\x3e\xfe\x62\x3a\xe2\x3a\x71\xd0\x0a\x1b\xae\xa3\xd6\x7b\x98\xa1\x32\xbb\x7e\xfe\x75\xbe\x55\x85\xee\xf6\x2f\x37\x45\xa6\xbf\x1d\x49\x9b\x7b\x2c\xaa\xf7\x59\x5a\x52\xc7\xb1\xc5\xa8\x91\x41\xb7\x72\xa4\x74\x43\xa3\x65\x94\xde\xbe\x54\xef\x3b\x6c\xda\xab\xd1\x9a\xd2\x49\xa0\x50\xf7\x53\xb3\x38\x85\xe9\xec\x57\x93\x04\xb4\x45\x62\x77\x26\xc7\x22\x0a\x48\x27\xdc\x96\xee\xc9\x73\x51\xcc\xd7\xa6\x4e\x74\xe6\xfc\xd5\x3f\xaa\x16\x75\x67\xd7\xcc\x06\x20\x8d\x6c\x39\x2d\x34\x83\x97\xa9\x53\x16\x58\xee\xe1\xe3\xfc\x86\x2c\x0d\x28\x52\xfe\x0f\x50\xaf\xa7\xaa\x5d\x91\xf2\x8a\xa3\x17\xe9\xfb\x64\x9a\x08\xd4\xec\x6b\xf9\xe0\xc6\xc3\x05\x6f\xa6\xeb\x9e\xb1\x88\x86\xe8\xae\x3a\x7c\x0e\x31\xd1\x99\x44\x12\x30\xff\xf9\xe7\xd5\xc6\xef\xb1\x9a\x73\x0b\xbd\xcc\x8f\xa7\xc9\x4c\x12\xb1\x25\x54\x7c\x22\x31\xe9\xee\x09\x20\xbf\x08\xb8\x69\x50\xb6\x00\xbf\x45\x38\xce\x32\x3b\x5a\x32\xed\x88\x70\x6c\x44\x8c\x88\xd2\x66\xd7\x4b\xe9\xf8\xfe\x2d\x31\xd9\xa8\x96\xea\x22\xf2\xbf\x94\x81\x9d\xdd\x4c\x03\x86\xb6\xbe\xf2\x03\x6b\x0f\xa7\xd3\x2a\x4a\x29\x74\xfb\xfb\xfd\x7a\xf2\x86\x4a\x44\x44\xf7\xfe\xb0\x7e\xea\xff\x04\x31\x3d\xce\x4a\xeb\x6d\x7b\xd6\xc3\x71\xa0\x75\x14\x39\xa9\x5c\x0a\xa1\x3c\xd6\x9f\x33\x1a\x72\x8d\x60\x05\x53\xe0\xac\x2e\xbd\x35\x8d\x2a\x20\xe8\xa1\xd3\xdc\xd5\xfa\xb3\xfc\xb0\x36\xcc\xd0\xee\x37\xf0\x2b\x3c\x55\xcd\xbc\xae\xd2\x11\xc9\x8f\xae\xc2\xc8\xa4\x3d\xbb\x60\x5e\x1e\xbc\x9d\x8a\x41\xc6\x09\x52\x60\x81\x85\x99\x87\x95\x60\x18\x5a\xce\xaa\x47\xcf\xcb\xf4\x55\xd0\x03\xc3\xc8\x96\xa1\xd9\xf3\xf7\xea\xfc\x31\x57\x5e\xe2\x18\x71\x4e\x31\xe4\x99\x53\x32\xab\xf7\xf2\xd9\x01\x8c\x84\x35\x53\x6e\xd7\x8f\xfb\xab\xc7\x87\x1f\x5b\x4a\x22\xee\x43\xff\x7c\x91\x8a\x84\xa3\xf9\xeb\xd6\x8a\x5b\x38\xd7\x16\x5f\xf6\x75\x19\x3d\xc6\x00\xf4\x28\x44\xcd\xb2\xec\x8b\x63\x12\x73\xcb\x99\x6a\x2b\x8d\xe6\x00\x69\x4c\x52\x4b\x1d\x81\x8e\x55\xc3\xff\x39\x63\xb1\x18\x2a\xcf\x47\x7c\x8b\x1c\x13\x6e\x02\x2b\x5e\xfb\x36\xe1\x2c\xa4\x96\x2c\xf0\xaa\xc6\x25\x7c\x9e\xe7\xc4\x44\x06\x6c\xc4\xeb\xaf\x07\x12\x32\x8e\x69\x8a\x14\xb1\xd9\xe6\x87\xe3\x24\xe3\x87\x29\x67\xb6\x8a\xba\xdb\x82\xd3\xe9\x56\x85\x2c\x31\xc2\x22\x29\x8b\xce\x7c\xef\x2c\xb4\x31\x06\x02\x49\x90\xb9\x2f\x6b\x1b\x38\x47\x30\x13\x51\x00\xa3\xd2\xf7\xe7\x05\x3d\x7b\xdf\x15\xe2\xcc\x16\xfc\xff\x6a\x01\x96\x09\xdc\x5d\x57\x6e\x6c\x40\xcb\x21\xf2\xfe\x16\xda\x08\x45\x88\x96\x7f\x02\xdf\xc6\xfc\x6f\x1c\x45\xaa\xa9\xb6\x03\x28\x32\xbe\xab\x08\x7b\x71\x5b\xfe\x68\xf4\x38\x20\x86\x42\x70\x70\x34\x3c\x77\x9d\x8b\x67\xf1\xdb\xa3\x74\x0b\x0a\x64\x32\x1d\x49\x54\x12\xe8\xbc\x99\x63\x78\x10\x42\x95\xe8\x5e\x83\x8c\x1e\x7d\x4d\x10\xb8\xab\x6a\x76\xf6\x21\x68\x08\x5d\xae\x6a\xd1\x1f\x42\x30\x22\x74\xfe\xd0\x75\x5e\xa3\x6a\xab\xfa\xa1\xd2\xb3\xa9\xa3\x42\x4e\xee\x85\x3d\x15\x1c\x57\xf1\x7d\xa5\xa9\xf2\x62\x7e\x47\xc5\x24\xf0\x89\xb5\xf9\x68\xe6\x12\xda\x9d\x7f\xc1\xe8\x50\x2e\xf1\x7d\xf5\xd6\x56\xf3\xc6\x8c\x7c\x79\x8f\x28\x09\x43\x47\x81\x18\xfe\x8f\xfb\xd7\x77\x04\x0d\x14\x97\x21\xc8\xd4\xd1\x9a\x53\xdb\x97\x5e\xbe\x95\xa3\xd2\x0a\x84\xaf\x53\x7a\xaa\x2b\x7d\xbe\xcc\x3c\xb8\xae\x9a\xa7\x92\x02\x2c\x56\x88\x70\xfa\x56\x1a\x02\x02\xe9\x58\x87\x63\x0d\x85\xba\x39\x97\xca\xff\x8a\x46\xad\xbc\x9b\x5a\xb5\xf8\x05\x1d\x15\xa2\x48\x2d\x75\x0c\x1e\xf3\x76\x0d\x27\x90\x24\x71\xe2\xf5\xc2\xa6\x11\xc5\x71\xb0\x0c\x11\x05\x19\x04\x4d\xb7\x70\xce\x05\x4e\x88\x76\x46\x48\xef\x69\x68\xde\x1f\x66\xa9\x33\x6d\xd1\x44\x9a\xe8\xd5\xa8\x9e\x22\x3f\x94\x51\x65\xfc\x91\x85\xc6\x30\x65\xf3\x58\xea\x75\xb3\xfb\x3e\x9d\x77\x26\xd0\x56\x71\x6a\x6f\xac\xb8\x82\xbb\xca\x84\x09\x77\xc0\x98\x02\x5b\x24\xa1\xfe\xe9\x85\xa1\x60\xf6\x3c\x79\x7c\xf6\xd7\x44\x91\x24\xb8\xd4\x5b\x8e\xef\xdb\x13\xaa\xdc\xe4\x6a\x31\x03\x6d\x92\x30\x23\xd3\xd2\x6e\xfb\x6b\x38\xad\x4a\xbd\x50\x13\x66\x92\xc8\x66\x6d\x3b\x17\xe8\xe7\x25\x5a\x62\x9c\xe7\x9d\x0e\xcd\xfc\xf7\x98\xa5\x57\xdb\xda\x88\x73\xb7\x1f\xf5\x3f\x21\x33\xaf\x45\xb0\x7d\xf1\x3a\x65\xdc\x24\xca\x32\xea\xff\xb3\x75\xec\xda\xbe\x21\x0d\x24\x99\xcd\xc7\x6e\xa9\x7c\xac\xce\xad\x43\x78\xbb\x84\x09\x1f\xf9\x3a\x26\x4d\x91\xc2\xbc\xba\xea\xec\x95\x69\x42\xc4\x64\x31\x53\x36\x0a\x8e\xa7\x05\xc0\xb4\xc9\x32\xcd\x44\x8f\xbb\x77\x56\xb5\xb5\xa0\x9a\x91\x5f\x6f\x78\x98\xa9\x74\x60\x07\x68\x36\xe5\x21\x2f\xb1\xb9\xd5\x4d\xdf\x23\xb1\x9c\x60\xe7\x06\x3b\xa3\x1a\x4b\x6b\x82\x4f\xd6\xa7\xe1\xdc\x02\xe5\xda\x3e\xb5\x63\xa7\xef\x74\xcd\x18\x6e\x62\xaa\x24\xfd\xcf\x99\x98\x48\xfd\xb1\x6a\x04\xd7\x81\x7b\xda\x9f\x08\xa7\xaa\x5c\x08\x12\x19\x08\x53\x3a\xae\x9a\x97\xea\xfd\x1a\xdf\xd6\xe7\x7e\xb8\x21\x09\x08\x3b\xaf\x46\xf1\x1b\xcb\x32\xe7\x3b\x48\x4e\x6f\x59\xe4\x66\xf2\x39\xb4\x04\x2a\xff\xd3\xd5\xf6\x54\x0c\x9f\x0f\x13\x2e\x7b\x3c\xf3\x33\xb6\xe7\xba\xfc\xf1\xb0\x9b\x3d\x8e\x31\x91\xf6\x94\x79\x55\x55\xdc\xba\x39\x21\x82\x80\xc5\x64\x43\x10\x79\xf8\xae\xba\xdf\xde\x4c\xae\x14\x41\x20\x02\x02\xb3\xaf\xab\xea\x84\x75\xee\x35\x6d\xba\x86\x84\x24\xcb\x6b\xfa\xc9\xdd\xb9\xa7\x74\x17\x41\x60\x38\x71\xf8\x1e\xf3\xf2\xdc\x90\xe3\x99\x97\x87\xb1\x0c\xf1\xff\x4c\x7f\x23\x0a\x84\x72\x1e\xfe\x3d\xb6\xa0\x3d\xbe\x21\x8c\xb8\xef\x91\xd8\x25\x28\x73\x3d\x09\x47\xd9\x39\x38\x3a\x85\x44\x10\xb9\x1a\xcd\x03\xb6\x57\x72\xe9\xd4\xe8\xba\x18\xda\xbd\x75\x55\x2e\x24\x58\x47\x81\x68\x11\x44\x4a\x12\x44\x73\xb7\x79\x5e\xed\x1e\xfd\x0b\x76\x6b\x35\xb3\xb8\x83\xf3\x11\x27\xf2\xac\x22\x88\x53\x9d\xb2\x5e\x64\x6e\xd1\x1a\x14\x41\x67\xe8\xb8\xca\x8d\xad\x7a\xb1\xf5\x70\xe4\xc6\x39\x65\xf4\xe9\x00\x25\x2a\xa5\x01\x6a\xde\x11\x4f\x37\xdd\xa7\x5a\x3c\x04\x44\x90\x60\x48\x49\xc4\x73\x83\xf5\xd5\xf9\x63\x39\x7e\x26\x82\x34\xb5\x3e\xe5\x8f\xd3\xa1\x06\x8d\x63\x9a\x6d\x11\xa4\x99\x15\x59\xdd\x56\x07\x28\xfb\x3f\x8a\x90\x90\xe4\x14\x18\xb1\xdc\x79\xdf\xf3\x86\xe4\xfe\x66\xb7\x56\x40\xd3\x51\xd7\xa7\x31\x31\x9b\x08\x98\xd0\x5c\x4d\xca\x70\x3e\x26\xce\x80\xef\x66\x52\xaa\x4e\x77\x00\xb5\xbb\xdb\xfb\xdb\x9d\xbf\x45\x96\x98\xd4\xef\x13\x48\x54\x31\x14\x82\x5a\x80\x2c\x89\x00\x82\xd4\x9f\xe3\x23\xa6\xe7\x5e\x60\xd1\xf5\x92\x89\xa5\x5a\x7f\x80\x6f\x78\x95\xf7\x7f\xe5\x76\x6a\x9b\xbc\x20\x6c\x94\x23\x35\x74\xad\x2a\xd0\x54\x4c\x75\x72\xc8\x3e\x5f\x68\x2f\x67\xd5\xd8\x22\x50\xb1\x15\x7f\x29\xf1\x57\x5b\x83\x31\x05\x96\x75\x7f\x97\x94\x67\xbe\x30\x1e\x9a\x97\xee\xc8\xba\x90\xac\x11\x81\xc2\x40\xbb\x20\xc1\x50\x53\x3a\xfd\x11\x9d\x05\xde\x6f\xb1\xe6\x54\x55\x1f\x6d\x44\x71\x7f\xbc\x70\x3d\x45\x80\x21\xa3\xa9\xb4\xf9\x73\xb7\x79\xb8\xde\x5c\xef\xb7\x77\xab\xf5\xef\xfb\xa7\xcd\xf3\xed\xe3\xb5\x7f\x38\x4c\x38\x99\x84\xf7\xde\xde\xdd\xd5\xa0\x5e\x17\x4c\xcc\xd9\xbd\x15\x90\xe5\x6d\xb9\x76\xc6\x9b\xae\x08\x8c\x09\x69\x2c\xf2\xc6\xd3\x2a\xdd\x54\xcb\x61\x73\x11\x06\xcc\xe2\xcf\x8f\x48\x31\xf3\xa9\x5f\x21\xc2\x80\x5b\xb5\x0f\x6d\x81\x38\x13\x76\x56\x11\x86\x22\x06\x1c\xc7\x6a\xa2\xbe\x05\x43\x0c\x47\x54\x76\xbf\xd6\xbd\xe3\xe2\x7a\x44\x91\xa5\x61\x95\x54\x57\x6b\xcb\xf2\x9a\xbe\x31\x8d\xc2\xd4\x61\x77\x69\x19\x6c\xf3\xc3\x32\x1c\xf7\x12\x91\x30\xec\x28\x61\x94\x66\x51\x6f\xbc\xaf\xef\xd6\x5f\x20\x81\x44\x18\xb1\x94\xce\xe6\x51\x85\x43\x18\x5e\x96\x38\x88\x30\x92\x82\xc2\xf5\x37\x8f\x3f\x1e\xae\x37\xcf\xdb\xfd\xf6\xfb\xea\x79\xe3\x5b\x63\x16\x4b\x47\x6f\x79\x56\xd8\xf6\x59\x43\x11\xc6\x3c\x21\xc9\x68\x6b\x90\xdc\x63\x37\xa5\xcb\x76\xfd\x02\xf5\x21\x2f\x0f\xce\x56\x9e\xef\x22\xc3\xd9\x2d\xc2\x18\x6c\x42\xb6\x5b\x67\x14\x40\x58\xd1\xfe\x35\xfd\x62\xb1\x66\x68\x45\xfa\xea\x72\x53\x62\x7d\xf8\x18\x85\x6a\x3f\xf7\x74\x44\x18\x9b\x84\x62\x82\xcf\xb7\x4f\xab\x8b\x91\x3a\xcf\xb5\xd7\x44\x98\x38\xc9\x03\xb7\xea\x4b\xac\xbb\xc5\xf5\xdb\xe8\xa8\x58\x2a\x44\x72\x17\xa7\x61\x18\xba\x57\xa1\xad\x98\x14\x3a\xa6\xab\x2d\x64\x0c\x29\xa3\xf3\xe2\xb8\xcd\xa7\xef\xc9\x78\x46\x31\x3d\xa2\xf7\xb6\x7c\x8a\x5e\xce\x08\xe7\x63\xc2\x3a\x43\xc0\xc5\xe7\x3a\x23\x67\xdb\x4e\xd0\x05\x22\xcc\xc2\x84\x62\xc3\x54\xf9\x4b\x25\x07\xa3\x61\xcf\x04\x12\xf6\xcb\x89\x19\xdc\x80\x57\xfa\x16\x61\x26\xad\xd2\xd6\xc9\xba\x0b\xd1\xbe\x41\xef\x90\x8a\x90\x87\x68\xcb\x2e\xaa\xb2\x7d\x39\x59\x13\x6b\xa0\x71\x12\xa1\x88\x0c\x55\xa1\x1d\xf3\xd2\x4b\x74\x2d\xf3\x7c\xb9\xfe\x32\x0c\xa9\x86\xc5\x9a\xb7\x6e\xcc\xa3\xfd\x5b\xf5\xde\x4c\xdf\x46\x25\x89\x8c\x7c\xb2\x7d\xc8\x3e\x7c\x12\x78\xf6\x17\x89\x90\x8f\x49\x65\x48\xc1\x7f\x0c\x60\xfb\x92\x40\x4d\x84\x3a\x42\x8a\xdc\xdc\x57\x6d\x5b\x0d\xe8\x42\x11\xa2\x52\xc4\x32\xb0\xf7\x42\xe4\xcd\x0c\xcc\x2a\x42\x34\xe0\xd9\x5a\x6d\xad\xfe\xcd\xb9\x28\xc8\x1a\x9d\x7e\x47\x13\x21\x45\x59\x6c\x6a\x6f\x4d\xec\x59\xfe\x67\x4c\x2c\x69\xad\xef\xbb\x13\xe0\xa9\x6a\x5d\x08\x66\x3a\xa7\xa2\x20\xb6\x47\xc1\xea\xee\x34\x20\xe7\x96\xb6\x83\x28\xe0\x99\x19\xc2\xb6\xdb\xca\x74\x2e\xd8\xec\x6e\x61\x98\x58\x35\x0d\x6b\x54\xac\x08\xc5\x34\x9a\x3a\x51\x14\x5a\x9f\x79\xef\xa4\xe0\x77\xc9\x6e\x76\x8b\x38\xca\x68\xbb\x20\xda\x08\x52\xe7\x32\x35\x5c\x52\xc9\x88\x28\xee\x2c\xff\xde\xad\x7c\xaa\xe6\x39\x2b\xdf\x8d\x59\x55\x0e\xf2\x4c\xbf\x8d\xaa\x4a\x7d\x3b\x18\xca\x00\x81\x2d\x53\xc2\x5d\x45\x0a\x0d\x7d\x01\xe1\x67\x07\x45\x94\x30\xab\x0b\xd4\xd9\x7a\x7e\x9b\x8f\x12\x66\x8b\x58\x5d\x61\xda\x7d\xa5\xfb\x0f\x12\x25\xd2\xea\x06\x1e\x2d\x38\x61\x24\x8f\x20\xa2\xc4\x04\xbe\xd6\x6f\xa2\xf1\x21\xa2\x34\xb1\xe5\xcc\xe7\xd2\x65\x51\xc6\xee\x8d\x88\xd2\xb4\xa7\x66\x21\x8b\xc6\xed\x9a\xc3\x94\x8a\xff\xcf\xf7\x04\xcd\xc1\xeb\xd3\x95\xaf\x41\xe6\x7f\x81\x05\x31\x9d\xf3\xfb\xce\x1c\xb0\xa4\x53\xbe\x25\xe6\x3e\x5a\x72\x0f\xbf\x46\x6a\xac\xd3\x91\x60\x2c\x21\x07\xff\x1b\x96\xd8\xe4\x8d\xb3\x7b\x69\xd7\xf8\x5b\x4b\x25\x62\x22\xa5\x69\x8c\xa5\x2f\xcc\xbd\x55\x95\x7f\x88\x2c\x08\x49\xda\x91\x26\x04\xb1\x0e\x0d\x79\x4e\x11\x65\xa9\x55\x21\x2a\x72\x83\x56\x03\x7a\x9f\xbf\xf9\x46\x2e\x15\x97\xbe\x32\xac\x6a\xa6\xe0\xe5\xaf\x1f\x49\xc4\x21\x4d\x54\xec\x26\xc3\x55\x3e\xca\x6e\x88\x48\x70\x16\xc7\xbe\xa2\x7d\x4c\x59\xfd\x65\x14\xac\xbb\xce\x50\xa8\xba\xc8\x1b\xab\xc9\x73\x29\x56\x3e\x5a\x2a\x02\x13\x22\x0c\xf1\xbc\xfc\x9b\x5f\xa7\xbc\xc6\x55\xbb\x98\x12\x17\x11\x44\x8a\x92\x17\x3d\x5f\x63\x5d\x1d\x6f\x08\x1f\x73\x57\xb5\x2d\xd6\x1f\x63\x78\xb2\x88\x00\x12\xca\xb1\x54\x27\x2c\xc7\x9e\xba\x88\x54\x60\xb3\xba\xdd\x2e\xfc\xdb\x27\x63\x35\xb2\x29\x22\xc5\x22\x62\x13\x70\x3e\xe5\x43\xae\xf0\xdb\xf9\x63\xe4\x55\xda\x2e\x04\xbf\xac\xd4\xf4\xef\x52\x50\x2c\xf1\xfa\x05\x68\x83\xfc\x6a\xfb\xd1\x49\x44\xa6\x55\x81\xa6\x8d\xf9\x6c\x06\x6a\x10\x96\x3a\x00\x5b\xf5\x62\xb7\xc1\x02\x2d\xc4\xbc\xb9\xa9\x6a\x6f\x5a\x4c\x77\xcf\x48\x4b\xe1\xce\xdc\xf2\x9c\x97\x33\xf3\x37\xc2\x34\x56\x56\x70\xeb\xb6\xcf\x74\xf4\x83\x84\x8c\x11\x21\x0c\x95\xd9\x0c\x22\x03\xd3\xb5\x89\x00\x94\x35\xf8\x0e\xea\xf5\x1a\xfa\x09\x8d\x2a\x22\xe8\x97\x13\x9b\xbb\xb1\x3b\xe1\x27\xa9\xc9\xae\x3b\x23\xc3\x56\x56\x92\x22\x9b\x8d\x17\xa9\x9b\x2b\xa5\xcf\x27\x9f\x4f\xd4\x8e\x3f\x16\x2a\xe3\xd2\x66\x1f\xdd\x72\x76\xc7\xeb\xec\xb1\x31\xa4\x98\xd4\xbf\x41\xbd\x3e\x55\xed\xca\x3f\xb7\x89\x33\x32\x3f\x8e\xde\x4d\xf6\x7f\x4f\x0d\xd5\x1d\xd4\x55\xd1\x3b\x2a\x91\x31\xca\xf4\x38\xad\xf6\xbd\xfa\xa3\x1b\x28\xe2\xb4\x77\x14\x9f\x93\x0c\x9b\x88\x83\x80\x53\xdc\xb2\x9b\x89\x54\x64\x3f\x9a\x92\x71\xa0\x63\xf2\x7a\x8e\x79\x79\x75\x26\x09\x1a\xd7\x10\xf2\x24\xd5\x7d\xbe\xaa\x86\x55\x71\x2e\x67\x67\x64\x1c\x2a\x41\xce\x98\x77\x99\xfa\xf7\x9e\xce\xa1\x38\x8e\x24\x31\x8a\x98\xaa\xc6\xfc\x50\x5a\x3a\xf2\x4d\xad\x76\xd5\xa6\x56\xb7\xc7\x93\x45\xfc\x8d\xaa\xbe\x44\x1c\xc7\x52\xf6\x45\xb4\x57\x50\xbe\xd6\x55\x51\x5c\x75\x93\xdf\xf7\x48\x42\x0b\x10\x3f\x97\x0d\x42\xfb\xfb\x18\x5d\x34\xfd\xf5\x24\xd3\x69\xe4\xb7\xda\xfa\x95\x52\xd0\xb3\x17\x49\x93\x88\xa8\xf5\x4f\x16\xf5\x30\xd4\xd5\xde\x20\x3e\x9c\x8f\xe3\x4a\x73\x11\xa7\x80\x04\xc3\x79\x7a\xfc\x7d\xf3\x3c\xf0\x47\x8b\x98\xc5\x56\x0e\xb8\xd7\xe5\xcf\xab\xd2\x96\xcd\xf6\x3d\xb4\x44\xab\x7a\xa8\xf2\x23\x14\xcd\xbc\x8e\xc9\x77\x43\xe1\xd0\xf3\x94\xea\x98\x6e\x68\xae\x0f\x4f\xc2\xc8\x73\x05\xc1\xf1\x04\xf9\xa1\xa4\x89\x70\xf5\x71\xab\xa7\xb3\x2e\xe6\x52\xd3\x8a\xf2\xc6\x9c\x9d\xe3\x8b\x21\x84\x98\x1b\xcb\xcd\x4c\x81\x60\xca\x12\xad\xbd\xaa\xed\xf0\xdb\x10\x8a\xd4\xda\x07\x6e\x36\xe5\xe5\xc1\x49\x33\xfa\x1e\x89\xee\x63\x92\x6d\x55\xc3\x01\x67\x93\x52\x06\x61\xe8\xc2\x06\x64\xa8\x39\xbc\xc9\x1c\xf4\x24\x62\x29\x64\x30\x86\xb7\x3f\xd5\xbe\xec\x19\xb5\x0d\x99\x7c\x72\xea\xf8\xeb\x65\xca\x1c\x0c\xc5\x7a\xa8\x50\xb8\x0c\xdd\xf4\xc5\xa5\x94\x64\x96\x1f\xbb\x09\xf7\x70\x61\xcc\xc4\x4a\x5a\x1f\xc0\x58\x54\xdc\xbd\x95\x29\xf5\xaf\x83\x81\xf2\xe2\xe6\x56\x42\x15\x2c\x93\xc9\x08\xc8\x20\x62\xcc\x32\x8a\xc7\x1f\xf3\xd2\x49\x20\x7f\xcf\xfb\x11\x43\x54\x99\x3b\x50\xb7\x60\xf0\x92\xc5\xa5\xeb\x62\x28\x06\xe3\xcf\xa1\xfb\x0f\xaf\x54\xe7\x6f\x62\x12\xe6\x45\xca\xbd\x74\xc1\x4f\x94\x4d\xde\xce\xdf\xc6\x64\x8a\x0a\xbb\xf3\x32\x6f\xf7\x1a\xdf\xf6\x50\xea\xbd\x2b\x7e\xdd\xc3\x50\x56\xbe\xb8\x6f\xc6\x46\xc6\x99\x03\xd5\xb5\xf5\x19\x0b\x7c\xc3\x62\x39\x06\x98\x04\x5c\x11\x2a\x2d\x57\x95\xd7\x3e\xbe\xee\xc3\xe3\x22\x09\x50\x20\x7a\xdf\x7d\xdf\x8c\x87\x2b\x09\x13\x0b\x40\x37\x75\x55\xb6\x58\xea\xe9\x0c\x4a\x42\xa1\x29\xa2\x74\xa8\xa1\xd4\xeb\xaa\x6c\x2a\x8b\xa0\xb5\x91\xb6\xbe\x5b\x14\x72\x02\xf5\x60\x81\xaa\x7d\xc0\xf7\x7b\xf8\x98\xf1\x53\x8b\x24\x02\x61\x55\x6d\x98\xcb\xe8\xb8\xbf\xc7\x61\x4c\x44\x47\xc4\xbc\x4f\x9a\xa1\x6e\x9a\xde\x54\x35\x91\x89\xf4\x9b\x42\x12\xc7\x9c\x22\x4e\xaf\xd8\x3f\x3f\x69\xb0\xd0\x18\x37\x58\xbb\x33\xc5\x05\x12\x26\x43\x14\x0b\x2b\xd3\xb1\x55\x70\xdc\x0e\xe0\x51\x91\x24\xb1\xe4\x4e\x05\x67\x96\xdd\xf5\x1d\x58\x98\x2a\xcf\x17\x46\x4c\x30\xb3\x31\x4a\x32\xab\xdd\xbd\x5a\xaf\x37\x4f\xbb\xfd\xe6\xcf\xf5\xf7\xd5\xc3\xb7\xcd\xd0\x2c\x28\x24\xbd\xc3\xa6\xfd\x1d\xf3\x6a\x12\xd9\x4b\xd2\x10\x78\x2f\xb3\x44\x40\x8a\xe9\xaf\xa7\xdc\x56\x3e\x0d\x75\x8a\xf7\x50\x7e\x4c\xdd\x4a\xef\x76\x25\x2c\x0c\xd4\x58\xc1\xaf\xf5\x25\x10\x22\x61\x09\x27\xf9\x5d\x2c\xdb\xfa\x63\x4c\x05\xef\xda\xb3\x20\xa5\x1d\xc0\x72\xe3\xb9\xc8\xbf\x6f\xe3\x29\x15\x68\xe6\x8d\x13\xc9\xf0\x0d\x22\x35\x34\x76\xcf\x48\xbc\x0d\x23\x9d\xfd\x05\x0b\x28\x11\xcc\x6a\x0e\x48\xec\x8e\x28\xaa\x26\xde\x1f\xb1\x7d\xf1\xa5\xca\x22\x11\xd2\x02\x79\x75\x75\x0d\x1f\xcd\x0d\x31\x2c\x6e\x40\xbd\x3c\x8e\xa9\x02\xfb\xb7\x85\x40\x44\x0e\xf8\xee\x70\x9f\xcb\x67\x53\x02\xb1\x61\x43\x1a\xc9\xde\x76\x94\xa4\x1b\x6c\xd6\x04\x38\x13\x7c\x14\xff\xba\xaa\x4a\x3d\xaa\x41\x17\x89\x0c\x24\xe5\x14\x9f\xb1\xc5\xf2\x50\x4d\x3e\xa5\x54\x92\xe0\x8c\x2e\x5b\x35\x11\x16\x76\x5d\x54\x14\x62\xd6\xf3\x44\x4f\x58\xee\xfe\x37\x1d\xd0\x27\xec\xff\x66\x6f\xa0\x74\x48\x41\xbd\xff\xd4\x1f\x16\xef\x7e\x8d\x2d\xe4\xc5\x92\xc3\x98\xe8\x34\x23\xfb\x97\x4a\xe4\xc9\x49\x73\x35\x69\xd3\x5b\x6a\xb0\x82\xbd\x3f\x37\x9b\x91\x73\x9f\x68\x63\xc8\xee\xf9\x76\xb3\xbe\xfd\xeb\x98\x51\x82\x81\x25\xc7\x6a\x5a\xa0\x03\xca\x9a\xac\x5e\x95\x67\xf9\x73\x98\x04\x29\xd3\x48\xd9\xc2\xcf\x6a\xa1\x97\xaa\xb4\x44\x62\x54\x0c\x16\x64\x89\x0a\x4b\x98\x2c\xa5\x34\x08\x02\xe2\xc8\x7e\xab\x5a\x32\x92\x5c\x6e\xd1\x13\x99\x5e\x80\x9a\xbf\x24\x55\xe8\x6e\x67\x19\xda\xf0\xa0\xb4\xf7\x23\xc6\xef\x91\x06\x22\x4e\xc7\x4c\x1f\x54\xac\xf4\x69\xe5\x89\x48\x03\x6d\x81\x85\xa7\x70\xaf\xcf\x63\x8e\x2b\x91\x06\x26\x06\x4f\x66\xf1\x56\xbd\x4f\x72\x0a\x69\x98\x5a\x0c\x15\x15\x27\x3c\xbe\x61\x1d\x07\x83\x09\x99\x86\x5c\x52\x69\x18\x45\xa2\x7c\xaa\xc8\xb5\x45\x99\x55\xe7\xef\x59\x1d\xa0\x5d\x60\xd9\x17\x69\xcc\x23\x8b\x22\xfd\xcf\x19\x6a\xfc\x99\x97\xcb\x15\x24\x22\x8d\x15\x78\x87\xd4\xd3\xcc\x3c\x57\xef\xeb\xaa\x70\x38\x97\x79\xea\xd9\x5f\x66\x12\x70\xf5\x67\x77\xd0\xb4\x8e\xec\x6f\x60\xed\x9e\x75\x4f\xc0\x92\x03\xaa\xfd\x3d\xfc\xca\x8f\xe7\xa3\x35\x41\x7c\xab\xb4\x52\x34\x44\xce\xfa\x84\xf5\x88\xaf\x43\xa4\xa9\x0c\x28\x75\x78\x2e\x5f\xaa\x62\x96\x09\x4a\x53\xc9\x60\x24\xbe\x30\x2d\x8b\x98\x7e\xfc\x54\x85\x24\xb8\x77\x0f\xad\x7a\x39\x02\x55\x57\xd6\xf8\x06\x79\x71\x01\x51\xfa\x12\xf7\x29\xd2\xd4\xd8\x18\x6f\x83\x45\xb1\x39\x1c\xfa\xd7\x48\x4d\x18\xa1\x37\xef\xb6\x50\xe0\x63\x3f\x1b\x58\x92\x32\x2b\x91\xb2\x86\x8b\x22\x68\x91\x32\x14\x64\x06\xdd\x7f\x68\xef\x93\xa5\x59\x9a\x09\x67\x93\xf8\x34\x4d\xd8\xb7\x31\x2b\xe2\xf9\x98\x17\x93\x6a\xef\x85\x94\xbb\x48\x33\x13\x88\x78\x5a\xe4\xde\xcd\xc5\x95\xc3\xb7\x2c\xb1\xb7\xb8\x2b\x79\x10\xa4\x3d\x7b\xd6\xa9\x2a\x7b\x24\x9b\x48\x39\xe7\x89\x8d\x01\x49\x52\x7b\x9b\x2c\xea\x54\x48\x4b\xae\xd1\x99\xb1\x96\xaa\x67\x81\x83\x5d\xa4\x20\x80\xe8\xaf\xb7\x67\x42\x2f\xfa\x7b\x83\xd2\x54\x50\x63\x79\x0a\xd7\x76\xa5\xbb\x36\xc9\x4c\x16\x8e\x0a\x6d\xaf\xaa\xea\xf5\x32\x0a\x99\x4a\xe1\xc8\xaf\x49\xbb\xfe\xc7\xbd\xbf\x5c\x45\x91\xa5\x9a\x25\x76\x71\xab\xca\x93\xab\x8f\x65\x68\xf9\x5f\xff\xe3\xee\xaa\x11\x3d\x16\xaf\xc6\xe6\xe5\x1a\x3e\x46\x54\x3a\x22\x45\xb0\xb2\xe2\xf7\xa8\xf3\xd7\x1c\xfa\x3f\x6b\x20\x2b\xe9\xfe\xf6\xe1\xf6\xe9\xf1\xf1\x6e\xbb\xbf\xbb\xfb\x63\x7f\x73\x7b\xb3\xda\x87\x43\x1f\xa4\x70\x97\xc3\x94\x2d\x58\xb7\x69\x67\x00\x5b\x8a\x8a\xb3\xbe\xb4\x02\x58\xa0\x02\x12\xac\x91\x67\x1f\x6e\x19\x23\x4a\xfc\x76\x3c\x13\x5a\x15\x2c\x40\xad\x09\x2e\x7b\xee\xb6\x5c\x6c\x16\x0b\x8e\x2e\x4f\x0f\x16\x98\x8c\x5b\xda\x36\x52\xf5\x9d\x9f\xf0\x2c\x8c\x64\x80\x3d\x34\x8c\xb8\xa7\x86\xe8\x0b\x0b\x93\x2c\xb5\x1c\xa2\x57\xd0\x60\xca\x89\x78\x0a\x67\xc5\x59\x61\xdf\x19\x13\x5b\x92\xd1\x76\xcf\xe7\x54\xa7\x46\xa1\x05\x16\x25\x3c\xc9\xfa\x7a\x93\x9f\x79\x59\xf6\x65\xc5\x82\x45\xa9\xa1\xad\xe3\x54\xbd\x62\x2d\xab\xfe\x19\x22\x65\xd7\x56\xb7\xeb\x8e\x24\x1d\x04\x8b\xb4\x20\x0c\xe0\xe2\x21\x37\x1d\xf4\xc8\xf0\x68\x22\x9a\x38\x82\x44\x0b\x16\x87\x9c\xac\x0a\x1f\xc6\x7f\x3c\xb7\x13\x19\x33\xc1\xe2\x58\x79\x76\xcf\xce\x40\x6d\x71\x1f\x8b\xbe\x2d\xd5\x14\x06\x1c\x78\x7d\x76\xd8\x19\xc0\x78\x0a\x67\x9f\x3e\x66\x69\x90\x38\x58\xed\x40\x3e\x2c\x58\x9c\x31\x2f\x9a\xd3\xbd\xa4\xfe\x94\x41\xd0\xf7\x17\x46\x3a\xb5\x13\xb5\x40\x76\x2f\x58\xac\x03\x4a\xa2\x52\x16\xa5\xf8\x78\x82\x8f\x2d\x8e\x4a\xea\xa6\x9d\x53\x1e\x59\x85\x8f\x17\x28\x4b\xa4\x1a\xfd\xea\xdc\x8f\x4d\x8a\x59\xaa\x7b\x73\x6a\x53\xce\xc1\xbe\x82\xb1\xc8\x86\xc8\x3a\x6f\x34\x57\x9b\xf6\x85\x08\xf8\x40\x16\x78\x61\x3d\xb3\x2c\x4a\x7c\x25\xcd\x7a\xfd\x7d\x8f\x3a\x6f\xfb\xb5\xc5\xb2\x38\xa6\x07\xd9\x3c\xad\x97\x36\xd1\xc9\xb4\xce\x32\xab\xc9\x7d\xc0\xf6\x3b\xc2\x45\xd6\x99\xf1\xd0\x56\x38\x1e\xb0\xdd\x17\xd0\xb4\xfb\x43\x51\x49\x28\xf6\x70\xee\x7e\x72\x94\x61\x64\x3c\x63\xd2\x05\x8e\xda\xc1\xbc\xf0\x8d\x3c\x4a\x99\xb7\xf6\x27\x00\x76\xc1\x3a\x2b\xab\xdf\xd2\x7e\x94\x14\x78\xeb\xa3\x7f\x4c\x9a\x8c\x42\xe9\x3f\xa1\x50\x2f\x30\xa1\x10\x13\x4c\xf1\x28\x1a\xc7\x9b\xfc\xc1\x3e\x1d\x58\x1d\xda\x25\x4f\x3f\x40\xda\x81\xbd\x9b\xc6\x30\xb3\x12\xe6\x36\x63\xea\x84\x0a\xfe\x01\x1a\x1d\x08\xef\x33\xf8\xa9\x60\xa8\x03\x42\xc8\x91\x23\xe4\xfe\x66\x4c\x26\x1c\xa1\xc3\x54\xa3\xcf\xd2\x52\xdc\xd3\xe1\x3c\xfd\xec\x59\x60\xac\x1d\xdf\xba\xda\x99\x41\xe1\x51\x64\x61\x02\x5a\xfa\x09\xfa\x7d\x52\x54\xe1\x7b\x70\x0b\x6d\x97\xe7\x8f\xdb\x92\x20\x85\xe3\x5c\x47\x16\x22\x12\x7e\xed\x54\x57\xc7\x6a\x3e\x8b\xba\x56\xb2\x75\x64\xae\xad\x92\x39\x7c\xe2\xb5\x67\x51\x1c\x11\xfb\xac\x63\xd8\xf5\xe8\x8a\x69\xa7\x38\x43\x2a\x96\xf7\x51\x74\x4a\x01\x7c\xa6\x89\x3a\xec\x66\x59\x8c\x3c\x73\xd9\xf8\x6d\xfe\x5f\xbc\xb9\x7d\x78\xd8\xfc\xcb\xbf\x41\x12\x46\x4a\xf6\x4c\xf7\x2e\x65\xd1\x8d\xd1\xd5\xf9\x63\xf6\xfb\x49\x9a\x91\x5c\x5b\x4d\x28\xaf\x8b\xdc\x63\xff\xda\x09\xcf\x2c\xae\x60\x11\x7b\xed\x3a\xa5\x18\x47\x92\x8e\x3e\xaa\xd1\xea\x3c\xe2\x45\x7a\x0e\x91\x11\xc3\x30\x7d\xc0\xd3\xf9\x64\xb3\xde\xb3\x07\x63\xa9\xc5\x2b\x22\xd1\x4e\xed\xce\x25\x3e\x5e\x96\x87\x8b\x8c\xc9\x80\x14\x9c\xee\x1e\xbf\xed\x9d\xe5\x60\xce\x05\xed\x38\x5f\x26\x50\x32\x26\xd1\xb2\xe5\xaf\xff\xe6\x69\x96\x75\x63\x45\x65\x0d\xcd\x7d\x7e\x55\x55\xba\x18\xd7\xda\x8b\x8c\xa7\x11\xd1\x9b\xbd\xe7\xa5\xb5\xa6\xe2\xa1\x25\xa5\xf2\x5e\xbf\x49\xaf\xca\x0f\x12\x79\xfe\x3a\x1d\x93\xf1\xcc\xee\xb4\x27\xf8\x40\x5c\xd5\x35\xcc\x87\x88\x73\xa9\x06\x32\xd0\x3e\x16\x90\x71\x91\x52\x6d\x5d\x37\xf9\x6d\x69\xf9\x5f\x0d\x86\xe0\xcc\x1b\xf0\x3f\x4e\xf3\x8d\x28\x13\x02\x53\x4f\xd3\xbd\xef\xf9\xe1\xf7\x14\xcd\x29\x0f\x3d\x5e\x2e\x03\x26\xa9\xbe\x8d\xb0\x01\xcf\xd8\x9c\x8b\xd6\x4b\xea\x5d\x32\xcc\xf6\x33\x0b\x24\xa3\x03\xf0\x0a\x2f\x33\xde\x7f\x61\x82\x7f\x32\x70\x32\x8e\x29\x54\x5b\x53\x10\xab\x3b\xec\x26\x21\xc4\x4c\x72\x19\x3a\xb4\xf6\xce\x0b\x7f\xdd\xe4\xb0\x0c\x1e\x16\x99\x14\x01\x29\x8d\x11\xbb\xc4\x38\xef\x3f\xfb\x1c\x1a\xa3\x6c\x20\x95\x71\x15\x6b\xbe\x04\x70\xda\x15\x1d\xc9\x43\x83\xad\x55\x3a\x6d\x3f\x48\x40\x50\x3b\xc5\x92\xff\x99\x96\xcb\x89\x0c\x79\x40\xcb\x54\x52\x45\xf1\x7d\xef\xcf\x67\x28\xac\x76\xc0\xe6\x79\x9d\x45\xe1\x54\x71\x5f\x64\x28\x2d\x5b\x01\xc1\x24\xee\x2a\x28\x1f\xcb\x2b\x7c\x81\xc2\x0c\xc2\xe0\xff\x33\x8b\x9e\xcf\x5e\x1e\x35\xc8\x81\xa2\xc0\xd2\xe6\x56\xb5\xc7\xbe\x4c\xf7\x55\x34\x9a\xaa\x5f\xd6\x95\xc6\x7b\xc8\x0b\x8a\xc3\x8d\xb7\x66\x13\x81\xb7\xd7\x1f\xe4\x03\x1c\xb1\x39\xc1\x00\x38\xcb\x0c\x04\x04\x22\x72\x01\x16\x6f\x88\x8c\x2d\xfa\xe9\x8a\x34\xc8\xe8\x43\x7a\x91\x33\x12\x37\xdb\xef\xbe\x3f\x6f\xb6\xdf\x7b\x31\x4c\xc1\x03\xc9\xb8\x2d\xb4\xf9\x5e\x15\xb9\x86\x8f\x5d\xa5\x3d\x79\x8a\xe0\x91\xb4\xf9\xdb\x1a\x41\xef\x9d\x69\x5d\x0d\xec\xde\xfd\xe3\xf1\x48\xa6\xb4\x0c\xfe\x5c\x43\x8d\x5f\xd4\xdc\xbb\xee\x31\x98\xc0\x69\x39\xff\x0b\xa1\xde\xbd\x57\x04\x8c\x3a\x15\xf9\xdc\x60\xe0\xb1\x4e\x49\x66\xa0\x73\xca\x3a\x5b\xf7\x06\x67\xd1\x1c\x9e\x44\x19\x32\x87\xaf\xba\xfa\x58\xbf\x74\x1b\xec\xdf\xc0\x57\xf1\xe5\x38\x0b\x4f\x98\x15\x4e\x6e\xaa\x62\x4f\x9c\xb9\xcb\x47\x18\x4f\x84\x15\x27\x3e\xc2\xaf\x2b\x6c\xaf\xf3\xb1\x19\xc0\x13\x61\x6f\x92\x37\xdb\xee\x33\x6e\x7e\xe5\x33\x2a\x65\xc1\x13\xe0\xc4\xcd\xe0\x22\x73\x70\x44\x62\xae\x9e\x82\xe8\x27\x93\x88\x27\x80\xc4\x64\x4d\xb8\xff\x1c\x27\x6a\x61\x82\xa7\x60\xe9\x03\x95\x9f\x1c\x9b\x52\x5f\xa3\x2a\xc0\xc6\x5b\x46\xc1\x11\x9e\x85\x11\x01\x35\xba\xf7\xab\x77\x2f\xb8\x45\x68\xa6\x34\xce\x82\x67\xc6\x32\xbd\xf6\xf2\x5b\x37\x77\xbf\x5f\xcf\xde\x81\x47\x10\x79\x16\x8f\x06\xfb\x1a\xec\x9b\x02\x0e\x23\xe4\x08\xe7\xa9\x74\x1c\xb9\x65\xde\xbc\x78\x05\x1a\xdf\x28\x81\xa8\xd9\x4f\x48\x6e\x8e\x8b\xae\x0f\x8b\xd0\x75\xeb\x9c\xec\xd0\x0b\x41\x58\x21\xd1\xbe\x80\xc5\x77\x51\x8c\x79\xc2\xf6\x85\x7a\x99\xd9\xf7\x03\x29\xa0\x37\x13\x69\x5b\x1e\x99\xfe\x1c\x0c\x27\xfc\xee\x3f\xf2\xe3\x88\x8e\x42\x70\x19\xa7\x9e\x4e\x68\x4b\x1a\xea\x84\xae\xeb\x9f\x47\x8f\xc1\x56\x5c\x6a\x57\x00\xe0\xb3\xda\xb3\x77\x52\xa1\x65\x89\x3e\xe6\x87\x1a\x5a\xec\xdc\x9b\xce\x27\xe8\xac\xfc\xfe\x24\x58\x00\x9c\x71\x95\x25\x51\x32\x89\x78\x58\x50\xe0\x74\x87\xe3\x3a\xc8\x08\xa3\x7d\x97\x1f\x5e\xda\x3b\x3c\x56\xa5\x8f\x15\xfb\x0e\xb1\x8a\x9d\xb1\xbe\xfa\x80\xb2\xbd\xae\xab\xbc\xdd\xa8\xaa\xac\x8e\xf9\x7f\xce\xb8\x77\x2e\x55\xd8\xf7\x17\x91\x94\x13\x8f\x8a\x62\x75\xcb\x93\x15\x45\x04\xc3\x8e\xf5\x54\x54\xed\x22\x5f\x9a\xef\x2d\x45\x6c\x01\xb5\xb5\xae\x76\x1e\x93\xc3\x4d\x20\x2c\x1c\x9e\xd8\xe8\x9a\xdb\x72\x24\x99\x2f\xb8\x89\xac\x7a\x8a\x3d\x55\xf6\x47\xf8\xb5\x87\x85\x18\x9f\x08\x02\x4d\x88\x7c\xfa\xd4\x57\xe7\x3a\xc7\xce\x5f\x68\xce\x43\xce\x5b\x04\xa1\xc4\x9e\x88\xb1\xea\xcc\xea\x31\xe0\xc4\x77\x8a\x63\xc1\x47\x89\x71\xe2\x0a\x5d\x51\xb5\xce\x70\xa3\x2c\x25\xe1\xe6\xe7\xcd\xf6\x62\x13\xfa\x8c\x11\xa6\xbb\xca\x96\xcd\x11\x5e\xd7\x92\x64\x8f\x63\xef\x22\x10\x26\x18\x8f\xfc\xcd\xb9\xd4\xbb\xea\x71\x90\xe7\x11\x22\x90\x99\xca\x46\xf5\x9f\xdf\xaa\xe2\x02\x44\x3e\xdd\xea\x44\xc8\x55\x62\xc6\x3b\xc6\x9c\xef\x59\x88\x50\x05\xa2\xa7\xd9\x6c\xd5\xcb\xf2\xe7\x13\x51\x1a\x90\x79\xb3\x7b\xbe\x7d\x5a\x7d\xf3\x78\x77\x11\x65\x28\x71\xfc\x4c\x63\xb2\xaf\x61\xa1\x88\x48\x5a\x24\x14\x92\xb5\x3b\x9b\xc7\x22\xc9\x38\x3d\x43\x55\xde\xae\x1f\x97\x0d\x11\x91\x48\x4b\x4e\xb1\xad\x94\x22\xfa\xdc\xe5\xcc\xa2\x48\xa4\xa2\x04\xf9\x76\x75\xb7\xd9\xaf\x57\x4f\xfb\x1f\x5b\x7f\x16\x8a\x54\x24\xc4\x7f\x70\xf3\xe3\xe1\x7a\x3f\xa5\x44\x17\x82\x05\xc2\x51\xef\x58\x0c\xba\xb3\xe3\x5d\xe9\xb5\xef\x94\x46\xe4\xdd\x02\x19\x57\xdd\x9e\x32\xf3\x69\x04\xc7\x88\x92\x28\x9b\xab\x51\xe6\x41\x88\x34\xa5\x62\x1f\x43\x30\xb1\x55\x61\x99\xc0\x2d\x74\xae\x9f\x59\x42\x30\x02\xc2\x5b\x88\xa5\xb1\xb5\x6f\x9f\xe0\x2b\x85\x90\x92\xf0\x95\xdb\x23\xd4\xad\x03\x7b\xfa\x1b\x41\x94\x48\x1b\xbc\x7f\xab\x5e\xf1\xc6\x53\xc3\xf8\x56\xcc\x22\x9f\xb9\xfd\xe4\xe6\x2a\x48\xa2\xd4\x1a\x89\x79\x79\x18\x3b\x88\x42\x31\x2b\xf8\xf4\x80\xef\x13\x86\x91\x2f\xa8\x77\x84\x50\x3a\x25\x9e\x17\xef\x34\xda\x33\xe0\x52\xab\xe9\xef\x85\x9d\x85\x66\x89\xd7\x05\xba\xab\xd4\xeb\x12\xcc\x5f\xe8\xcc\x6a\x65\xc1\x01\xf2\xb2\x69\xf7\x12\xca\x7d\x35\x3b\x73\x04\xc6\x8a\xe0\x27\x23\x2f\xd1\xe7\x98\xfd\xfb\x62\x16\x52\xf0\x79\x8d\xdd\x9c\x5d\x35\x39\x0c\x7e\xa2\xeb\x62\x58\x44\xbb\x94\x9f\xd6\x3d\x29\xdc\xc8\xd3\x17\x06\xb8\x9b\x5e\x9d\xaf\x49\x6a\x94\xd3\x67\x31\x9a\xeb\xbe\xd6\x09\xea\x8f\x3b\x2c\x0f\x5e\x8d\xb7\x6b\x95\xc4\xfc\xdb\xed\x4c\x37\x90\x17\x0f\x55\x7d\x84\xa2\x3f\x90\x9f\x07\x42\x36\x01\x61\xa4\x68\x9a\xdb\xe3\x6a\x3e\x94\x73\xfe\x8b\xc9\x53\x40\x18\x1b\x0a\x44\x3b\xcf\xb3\xdb\xff\x47\x67\x39\x84\x28\x28\x24\xb8\x3d\x42\x51\x38\xf1\x80\xa1\xad\x3f\x6c\x3c\x9b\xcd\xb5\x45\x8b\x74\xe7\xdd\xf4\x67\xa2\x84\x1b\x87\x85\x20\x63\xba\xdf\xe5\x20\x62\x01\xb3\x38\xea\x73\x83\x13\x0e\x91\xae\x2d\xa4\x7c\xfe\xde\x0e\xa2\x63\x49\xf5\x76\xf9\xfc\x27\x20\x93\x36\x60\x5c\x9a\xbc\x3e\x8e\xf3\xdf\x8e\x19\x5d\x40\x24\x53\x32\x8e\xf7\xae\x5e\x7e\x42\x96\xdc\xf7\x51\x44\x31\xbd\xfd\x28\xd5\x4b\x5d\x4d\xb0\x70\x5f\x26\xd9\x20\x42\xe9\x74\x43\x0b\xd2\x58\xb0\x41\xd7\xc9\x54\x86\xd8\x84\x8c\xf7\xe7\x9f\x25\xb7\xfe\x99\x97\xba\x7a\xf7\xdb\x02\x24\xa9\x53\x62\xa2\xc4\xce\xb7\xf3\xa2\xbb\xfe\x05\x1d\xe6\xd7\x8b\x09\x52\x48\xc8\x54\x27\xd6\xfc\xfd\xf6\xf1\x66\xb7\xef\xb5\xa2\x04\xa4\x46\xd3\x69\x67\xa1\x96\x54\xeb\x31\xf1\x27\x81\x21\x64\x1e\x0d\x4d\x88\x15\xdf\x90\x75\xce\x38\xe5\x45\x4e\xa0\x5e\x07\xbe\xb8\x69\x82\x04\x32\x11\x8a\x91\xe3\x68\xef\x3d\x7d\xc2\x4c\xc5\xb4\x32\xaa\xb2\xb3\x87\xbf\x0e\x1c\x40\xa6\x64\x68\x8b\xac\xda\x3a\xc7\x37\x74\x6c\x48\x5e\xa3\x64\x7c\xa2\x02\xcf\x24\xdd\x98\x60\x8b\xb3\x98\x31\x70\x91\x51\xb9\xd8\xd5\x39\x2f\x16\xb6\xaa\xbe\x97\xe5\x8b\x19\x49\x94\xcd\x2c\x0f\x10\x81\xa1\x52\x8d\xdb\xed\xfe\x7e\x75\xfb\xf0\xe0\xb9\x22\x04\x88\x30\xa1\xb8\xd2\x3e\x6f\x3c\x57\xb7\x5d\x0d\xb3\xe4\x1e\x08\xb4\x75\x92\x64\xce\xbb\x83\xa9\xbf\x3f\x64\x29\xc5\x10\x6f\x77\xd7\x55\x51\x40\xfd\xd7\xd1\x1c\x00\x09\x91\xdb\x40\xf7\xcd\x48\x7d\x5e\x80\x8a\x34\x39\x2d\xdb\xf3\x09\xeb\x5d\x4d\xb5\x7d\xcd\xf3\xae\x19\x54\xe0\x05\xa8\x38\xa6\x19\xb3\x69\xa1\x70\x55\x1a\x4e\x94\xe6\x93\x41\x52\x99\xcd\xef\xe4\xcd\x3d\x15\xee\x7c\xd2\x4d\x07\x51\x18\x8d\x82\xb3\x73\x90\x1d\x68\x6e\xb3\x18\x26\x37\xed\xcb\xfe\xfd\x13\xc8\x33\x68\x14\xd0\x0d\xb8\xb6\x02\x3f\x57\x9d\x47\x71\x11\x8b\x5b\x76\xf9\x01\x19\x8b\x1c\xaa\xcc\x22\x96\x2f\x61\xc0\xd3\xe1\xf5\xd7\x61\x4c\x47\xee\x7a\x3d\x3a\xf6\xc1\x04\x29\x65\x28\xba\xe3\xb7\xa8\x0e\xc3\x9f\x81\xa2\x65\x8f\x4f\x9b\x87\xf5\x8f\xdf\x7f\xb8\xea\x61\x21\x03\x61\xf5\x9a\xf3\x86\x94\x19\x67\xd3\x40\x06\x92\x8d\x74\x86\x9e\xba\xfd\x6c\x1c\x6e\x5e\x5a\xde\x32\x90\x2a\xed\x4b\xb8\x17\xf2\xf7\xe3\xc0\xaa\x0c\xa4\xa5\x25\xb3\x9a\x62\x6a\x40\x27\xc9\x28\xb4\x6a\xe9\x14\x07\x5a\x06\x1d\xca\x28\x0a\xa3\x60\xa4\x86\xf8\x29\x75\x8a\x90\x51\x62\x15\xa8\x40\xeb\xf5\xb9\xcd\xed\x29\x95\x04\xf3\x5e\x69\x44\x67\xc1\x11\x5e\xf1\x71\x09\x85\xfb\xf7\x62\x62\x32\x4a\x81\x18\x4b\xfe\xec\xf5\xcb\x27\xf3\x4a\x46\x2c\x23\xdd\x88\x5d\xae\xa8\xd9\x06\x28\x5d\x63\x1c\xdb\xdd\xe7\xa9\x70\x31\xc8\xcb\x62\x6b\xee\xbb\xa6\x19\x51\x97\xc3\xb9\x75\x40\xe7\xd9\x0f\xc5\x19\x50\x29\xbe\x99\xc7\x38\x64\x6c\x2c\xbb\x00\xb9\xb6\x52\xe6\x97\x5c\xde\xbd\xde\xc2\xf8\x9f\xbf\x88\x75\xc8\x34\x60\x96\xf7\x86\x9e\x66\xa8\x14\xf4\xcd\x29\x66\xc9\x20\xfd\xe0\xe2\x7b\x17\x4e\x82\x4c\x33\x4e\x03\x74\x3c\x17\xed\x4f\xfc\xc4\xc5\x93\xa9\x02\x62\x23\xec\x76\xe9\xde\x8c\x9a\x0e\x00\x0b\x05\x95\x61\x5f\x63\xa3\xea\x9c\x62\xda\xe4\x5a\x53\xd7\x05\x1e\x33\x21\x59\x1a\x2a\x4b\xaa\x47\xa0\x53\x6f\x63\x4d\x61\x6a\x92\xc9\xd0\xd2\x18\xd0\x7b\x5e\xe5\xcb\x0c\x30\x42\x66\x71\x48\x11\x73\x7b\x96\x76\x63\xdc\xf4\x45\xe0\x8b\x0b\x5b\x66\xb1\x8d\x02\xed\x65\xbc\x54\xc7\x2f\x64\x86\x8c\x78\xcf\xbe\x6d\x1e\x9e\x46\x6b\x5f\xf2\x00\x43\x39\x08\x23\xb8\x07\xbe\xa9\xab\xe3\xba\x3a\x1e\xab\x72\x9b\x1f\x4a\x20\xb6\xfc\xbf\xc2\x8a\xff\xd5\xdf\xc7\x2b\x98\xc7\x56\x6f\x80\xa2\x28\x57\x50\xbe\x7e\x4a\x1e\x2a\x24\x57\x48\xde\xee\x3b\xe6\xf3\x82\x47\xc9\xb5\x22\x73\xb5\x39\x97\x8d\x25\x07\xb5\x5b\xed\x58\x7e\x43\x48\x8e\x81\x19\xca\x20\xc6\x13\xe7\xcb\x43\x5a\x72\x64\xb1\x83\x1d\x3e\xdd\xda\x64\xa4\xcf\xea\x4a\x60\x49\x6a\xc7\xad\x73\x5e\xe6\x94\x5b\x42\x4a\x40\x02\x0d\x6e\x1f\x1e\x7b\xe7\x4d\x2a\x61\xe5\x07\xe9\x78\xbf\x5d\x3f\x4e\x70\xa0\x12\x21\x34\x76\x63\xca\x4b\x5d\x57\xa7\x89\xc0\x89\x90\x68\xa2\x2c\x19\x0a\x90\xab\x72\x5d\x55\xb5\xce\x4b\x68\xf1\xf3\xdd\x7f\x79\x09\x98\x20\xa6\x98\xda\xc3\xd5\xea\xb1\x2c\xf2\x12\xef\xe0\x5c\xaa\x97\xa7\xba\x3a\x56\xe3\x05\x65\xd2\x84\x38\x29\xef\x57\x0f\xdf\x57\xbb\xdd\xea\xe1\xe9\xf9\xf1\xcf\x7f\xfd\xdc\x7e\xff\xe9\xf3\x58\x2a\x50\x09\x05\x84\xdb\xea\x2a\x8e\x96\x57\x9c\x0a\x10\x08\x9a\x5c\x03\xd1\x22\x58\x69\xac\x69\x97\x90\xa7\x14\xc1\x1b\x4e\xcb\xfd\x09\xea\xf6\x63\x2f\xf7\x07\xec\x8d\x08\x15\x31\x41\xe4\xff\xd7\x9b\xbb\xdb\x3f\x36\xcf\x9b\xeb\xfd\xcd\x66\xb3\xbf\xb9\x5b\x7d\xeb\x7b\x64\xd2\x2a\x39\x9d\x65\xd3\x57\x24\x2e\x0f\x83\x8a\x38\x52\x9d\xf4\x76\xfb\xf4\xd4\x93\xb6\xcd\xb2\x31\xbe\xab\x48\xa4\xd3\x22\xbc\xa7\xda\xd2\xfe\xf7\x0c\x83\xc0\x2b\xd1\x95\x26\x3f\x78\x58\xd9\x67\x5f\x62\xf2\x04\x31\x8f\x28\x54\x78\x24\x62\xc1\xab\xf3\x85\xa2\xaf\xeb\x97\x70\x8b\x48\xc1\x92\x50\xc5\x3e\x2e\xa5\x52\x08\x2d\x29\x09\xd9\xe5\x7f\x60\xe3\xc1\x65\xbe\x5d\x6b\x17\x93\x6e\x5d\x05\xca\xbc\x5a\x70\x9e\xeb\x51\xa9\x89\x3d\xff\x80\xd3\xe3\xec\xb3\x47\x8a\x25\x96\x40\xaf\xc1\xf6\xe9\xf1\xf1\xce\x2e\x89\x74\x52\x28\xa9\x58\x16\xd8\x59\x6c\xf3\xdd\x8e\x5c\x60\x8a\x96\x75\x5d\xb3\x38\x64\xa2\x07\xfd\xd0\x5a\xe8\xbc\x38\x1f\xe7\x53\x99\x60\xc4\x7f\x4f\xe2\x22\x9f\x9d\xa5\x93\x1f\xcf\x84\xa2\x87\xff\xfe\x8f\xef\x97\x7a\xa7\xc3\x70\x66\x02\x09\xc4\x6c\x45\x69\x27\x67\x91\xca\x20\xa6\x14\xe2\x5d\x75\xb0\x3a\x8a\x5f\xe7\xe5\x54\x26\x99\x1f\xaf\x7b\xf8\xb5\x1d\x40\xea\x4a\x70\xf0\x3c\xd4\xeb\x71\x40\xbd\xff\x29\x61\x0c\x41\xed\x2d\x73\x0b\xf1\x3c\x4d\x9f\x05\x18\x72\x36\x0a\xf6\x5c\x81\xd7\x04\x12\x0a\x14\x32\x9b\xc9\x03\xfd\x6b\x9c\xe5\x54\x60\x32\x0a\x8f\x76\xf6\xc8\xf6\x1d\x2e\xc8\x81\xa7\x87\xaf\x52\x1c\x08\x41\xfc\x6d\xa2\xd5\x2f\x94\xd2\x9a\x92\x7e\xf6\x10\x7a\x46\xb3\x88\x09\x53\x5a\x68\xd9\xed\x69\xbf\xe7\xef\xf9\xe8\x60\x51\x5a\x23\xe9\x88\xa3\xb2\xac\x84\x53\xcb\x76\x7a\x7c\x2a\x8c\x2d\x23\xb8\x46\x49\x24\xd6\x93\xfd\x5b\x61\x66\xb9\xe3\x1d\xdd\xf4\xfa\x05\xba\xb3\x15\x27\x78\xc7\xd0\x7f\x0f\x34\x81\xec\x4d\xc0\x3e\x77\xb8\x54\x5a\xa2\x8c\x4a\x59\xf7\xe8\x9b\xdd\xf7\xcd\x33\x94\x03\x5c\x5f\x07\x81\x09\xc7\x04\x94\xcb\x11\xe6\x99\xdc\xa2\xd0\x41\xe7\x87\x92\x60\x47\x5b\xbd\x8e\x07\x53\x07\x5c\x59\x27\x9b\x50\x86\x87\x6a\xa8\xce\xd4\xa1\x11\xe4\x76\x80\x6a\xbb\x3d\x60\x02\x2c\xd2\x51\x10\x5b\xea\x64\x57\x69\x83\x34\xc7\x8a\x62\x09\x43\xaa\xa3\x00\x52\xe3\xd3\x64\xe7\x66\x0e\xaa\xd0\x51\xc8\x8c\xd3\x42\x33\x63\x0f\x53\x47\x2c\x48\x7b\x90\xde\x1a\xd4\x8b\xe3\x74\x7d\xc6\x53\x55\x53\xbc\xb4\xb1\x4c\x58\xbe\xbf\xc4\x38\xf0\xb4\x55\x3d\x8d\xe4\xea\xdc\x56\x65\x75\xac\xce\xcd\x85\x96\xda\xf4\x39\xe2\x50\x90\x19\xe4\xb0\x88\x3f\x2e\x9f\x34\x0e\xad\x78\xd0\xba\xaa\x27\x00\x6f\x1d\x27\x31\xa5\x70\x5c\x71\x78\x3c\x2e\x0e\xd7\x49\xc4\xd1\xf1\xf8\x4d\x8b\xf2\x2f\x16\xc0\x45\x2e\x43\x27\x18\x91\x87\x4c\xf5\xdd\xdd\x08\xdf\x8d\x52\x65\xcb\x4b\x5f\xa7\xa1\x52\xae\x7c\x97\xa0\xf4\x79\x79\x70\x02\xe6\xae\x03\x63\x86\x3a\xa0\x31\x48\xda\xdc\x36\x98\x3e\x62\x97\xea\x97\xa3\x8b\xf5\x68\xee\x22\x68\xdd\x8e\xbd\x7e\x7c\x7a\x19\x56\xbc\xe6\x5a\x91\xd3\x7b\xb5\xf1\x5c\xb9\x42\x83\xb6\x15\xcc\x44\x55\xb3\xab\xce\xf5\x5f\xd3\xd5\x68\x09\x11\x11\x00\xcd\xf4\xd4\x3f\x79\x49\x95\x22\x4d\x1a\xa7\xeb\x3a\xab\xa6\x5f\x3c\xae\xb4\x0e\xe3\xc4\xf2\x9e\x51\x36\xf2\x63\x94\xd1\xd2\x3a\xb1\x35\x35\x79\xd3\x99\x6b\x79\x79\xbb\x7e\x24\xb6\xf7\xd9\x5c\x46\x48\xe3\x71\x1a\xe1\x21\x57\xaf\xe5\x8c\xc7\x4c\x68\x13\xb2\x80\x7b\xc1\xdf\xf2\xb0\x48\x97\x83\x41\xc4\xa5\x9d\x16\x6f\x79\x83\x75\x4f\x58\xb9\x38\x39\x31\x50\x59\x1a\xf6\x73\x9b\x02\x1d\xd3\x08\xf2\x97\xc3\x85\x61\x10\x73\xc7\x2f\xec\xee\x6b\x2a\x75\x6e\x14\xd4\xda\x33\xd0\x0b\x0c\x91\x93\xb7\x8b\x23\x22\xad\x9b\x1f\xbb\x3f\x7d\x7b\x14\xa4\x91\xa3\x85\x23\x4d\xc5\xd9\xf2\xc0\x28\x4a\xe9\x0b\xe6\xcd\xfa\xdc\xb4\xd5\x11\xeb\xef\xd0\x5c\xd8\xa0\x18\xb1\x98\xd0\x0e\x23\x6f\x71\x39\x0c\x3e\xbd\x2c\x0e\x42\x32\x97\xcb\x1e\x82\xb9\xab\x9e\x60\x5a\xfc\x8b\x71\x68\x49\xf4\xdd\xa5\x0f\x55\x6b\xc9\x78\x06\x1d\x2c\x81\x71\x6c\x6b\x49\x36\xbf\xff\xde\xff\x29\x71\xb5\x42\xcd\x6d\x79\x93\x97\xb6\x46\x6d\xb8\x40\xa4\xe8\x68\x92\x1e\xcb\xed\x47\xd9\xbe\x60\x93\x77\xb3\xd9\x73\xa4\x2c\x8f\x79\x0c\x46\x48\x07\xd6\xee\x1c\xab\x79\x44\x02\x63\x04\x1e\x7b\x56\xe7\x87\xca\x5a\x6a\xf5\x11\xf5\x72\x21\x34\x26\x89\x22\xc4\x57\x55\x83\x2a\xf2\xff\xe2\xde\xe9\x44\xed\xcb\xa1\x6c\x1c\x13\x66\x93\x4a\xff\x3c\x3b\xa9\xff\xdf\x96\x4c\x12\x4c\xb4\x0a\xb9\x97\x4c\xdc\x7d\x5f\x06\x5b\x61\x1a\xa5\xc6\xea\xd3\x91\x54\xea\x7a\x89\x27\x5f\x60\x1a\x2b\x18\x94\x59\x88\x43\xcc\xc2\x71\x97\x5f\x23\x4d\x14\x15\x27\xee\x5b\x78\xc5\x47\x63\x28\x9c\x3f\xf1\xc7\x7d\x47\xb0\x34\x25\x57\x9b\xdd\xf6\x9f\x3f\x06\xe2\x15\x64\xa1\x8d\x2a\x1c\xf3\xb2\xed\xac\xcb\xcf\x51\x4a\xb3\x9f\x66\xa9\x4c\xfc\x36\xd6\x3c\x63\xd9\x5e\x7d\xac\xda\x6a\xfa\xeb\x3d\x3d\x16\x66\x46\x13\x8b\xbc\x41\x1c\x71\x07\x20\x4f\x14\x81\x00\x37\x7f\xee\xf6\xeb\xc7\xfb\xa7\xd5\xc3\xbf\x2c\x0f\xf9\x7e\xf7\xf3\xb1\xef\x94\x86\x34\x26\xfb\x81\x99\x67\xd9\x88\x46\x2e\x84\x27\xea\xbe\x00\xd1\xf9\x2e\x52\x53\x8e\xe4\x35\x2f\x8a\x7b\x6c\x5e\x48\xc7\xe0\x62\xb3\x5b\x5c\x35\x5c\x87\x60\x4b\x98\xcf\xa5\x0e\x37\xa5\x1e\x01\x1d\x50\xa0\x26\xf0\xd6\x15\xa8\xd7\xf3\x69\x0e\xf8\x9a\xde\x08\x98\xdd\xae\xbc\xed\xb1\x21\xec\x91\x2d\x1e\x3d\x5f\xca\x1e\xf8\xab\xa4\xa1\xb5\x2e\x7b\x91\x97\xe9\x34\x94\x71\x22\xc2\xde\x4c\xcd\x8f\xe7\xa3\x03\x85\xfa\x47\x94\x69\xa2\x2d\xa8\xa3\x7a\xf5\x40\xa7\x3f\xf2\x8b\x5a\x3c\x94\x60\x67\xea\x9f\xee\x7f\x41\xf4\x19\xd6\x10\x15\xe3\x10\x8f\x08\x69\x3e\x59\xbe\x0a\x14\x38\x96\xcc\x45\xcd\xed\x59\x6f\x65\xc5\x83\x1b\x5f\x45\x48\xbb\xdb\x34\xd0\x82\x1a\x32\xca\x2d\xfd\xbb\xa9\x4a\x57\x7a\xf5\x39\x58\x18\xb5\x64\x2c\xf0\xe5\x2c\x37\x36\x1f\x34\x7b\x6b\x8d\x11\x05\x4e\xb7\xb6\x0e\xa1\x6a\xa7\x07\x11\x1a\x67\x5a\xed\xb0\x69\xa3\x7f\xf8\xc7\x30\xc2\xd6\x2f\x3d\xbd\x60\x99\xff\xfa\x9b\x20\x46\x34\x10\x65\xde\xa5\x2c\x2e\x92\x52\x26\x48\xd3\x28\x1c\xb9\xca\x76\x5d\x4e\xea\x95\x4c\xc8\x52\x0a\x47\x8d\xa8\xc3\x16\x19\x87\xa7\x63\x6b\x62\x16\x45\x5e\x51\xe6\xa5\x33\x51\xc7\xd2\x26\x83\xd2\xc9\xf8\x69\x4d\x92\x71\xcb\xfb\x4a\x28\x64\x32\x4b\x1f\xcd\x4f\xcc\x9f\x20\xd7\xbb\x8a\xf6\x28\xff\x54\x89\x86\xcc\x6b\x00\x9f\x15\x36\xcd\x3c\x1b\x66\x12\x8d\x04\x4f\x33\xb9\x0b\x01\x76\x36\xa5\xbf\x3c\x95\x4c\xb2\x9e\xeb\xaf\x46\x68\xce\x5e\x09\x49\x18\x16\x33\x8b\x3a\x72\x42\x14\x56\x4c\xba\x8f\x5e\xcd\x4c\x7f\xc3\x92\x88\x20\x2f\x8e\x1c\x31\xea\x6f\x93\x48\xaa\xa1\x57\x50\xa8\xdd\x9c\x62\xc5\x30\x66\x65\xe7\xf3\xe6\xc6\x16\x43\xdc\x58\x08\x5d\x7f\x82\x99\x2c\x06\xda\x40\x0c\xf6\x4e\xba\xe1\x68\x29\xe1\x28\x70\xf3\x0e\xf5\x9c\x0b\x76\xba\x92\x8d\x88\x5d\x8d\x5a\xe7\xeb\x34\xdb\xaa\xf0\x66\x83\x11\x29\xb2\x41\x73\xb2\xc1\x21\x8d\x65\x64\x18\x24\xb4\x0b\x2a\x28\x8a\x67\x54\xf9\x69\x5c\xfa\xf8\x75\x4c\xce\xff\x7f\x1f\x72\x33\x32\x89\x09\x46\x97\x97\x39\x29\x0a\x6c\x71\xb6\x0b\x18\x15\x24\xc6\xa3\xb2\x4c\xdb\x8d\x86\x0b\x56\x7d\x69\x18\x1a\x25\x32\xca\x52\x3a\x1e\x57\x2c\x50\x7e\x12\xa2\x19\x15\x60\xfe\x2f\x73\xb1\x09\xa3\xa3\x20\xe8\xde\xf2\x9f\x4f\xdb\xcd\xd8\x2d\x30\xda\x15\x08\x5b\x59\xf6\x5f\x79\xfb\x71\x53\xd5\x57\xad\x72\x23\xfd\x54\xa3\xc9\x89\x7c\xc6\xa5\xab\x27\x30\x3c\x7f\x0f\x95\x3a\xe2\xa1\x76\xf3\xeb\x44\x61\x46\x5b\x4e\x32\xeb\x86\x9a\xb2\x3b\x63\xcf\xda\x37\x99\x88\xe8\x8d\x1e\xff\xd8\x3c\xaf\xee\xee\xb6\x03\xbe\xd1\x18\x6e\x68\xd7\xb4\x21\x05\xed\x92\x3d\x9f\x9d\xa5\x13\xdb\xc0\x18\x19\xd1\x31\xee\x06\xcd\x85\x96\xb7\xaa\xfb\xc2\xf9\x54\x0e\x58\x18\xa3\x33\xcf\xcb\xf7\x00\x47\x2c\xb0\xe9\xdc\x02\x35\xf0\xff\x19\x83\x56\x40\xd3\xef\x1f\x8f\xc5\x34\xd8\x05\x41\x10\x18\xe7\x64\xa1\xa7\x34\xfa\xcd\x37\x25\x0c\x5c\xd3\xad\xb2\xae\x99\xc5\xef\x37\xb3\x7b\x84\xa9\x25\xf8\xf2\xa7\xd8\xc9\x2a\x02\x2d\x4d\x0b\x08\x42\x4c\x63\x97\x9e\x5c\x75\x7e\x52\xee\xe2\x83\xa1\xef\x10\x45\x36\x12\x5b\xe2\xbb\xa3\xcc\x2f\xbc\xf7\x0a\x41\x94\xe8\x70\xfc\x42\x1e\xb6\xf1\x05\xf1\x17\x04\x51\x26\xa9\x72\x99\x0c\xfc\xeb\xea\xbd\xdc\x55\x9b\x72\x54\x59\xe3\xbb\x41\xa4\xdc\xd9\xf4\x87\xf3\xc0\xe7\xa3\x15\x87\x19\xfd\xfc\xf7\xd5\xf3\xf5\x90\x93\x86\x20\x4e\x51\x1b\x67\xf8\x59\x3b\x9a\xf6\x92\x5d\xb5\x2a\x8a\x05\x2b\x0c\x82\x58\x21\xf7\x5a\x8b\x57\x04\x72\x5a\x88\xd2\x2d\xfd\x97\xbb\x3e\x0d\x63\x9a\x27\x56\xc1\xf3\xfe\x71\x77\x83\xe8\x5d\x98\xdf\xa6\x6f\x9f\xc6\x4c\x98\xde\x1a\x70\x96\x7d\x7f\x23\x16\x48\x65\xdd\x8b\xc7\xf2\x6e\x8e\x8c\x86\x80\x45\x40\xac\x36\x77\xd5\xc1\x32\x8b\xcd\xdb\x33\x64\x63\x5d\x24\xcf\x1a\x36\x1d\xb6\x4c\x48\x4a\xd9\xaf\x8e\xd8\xbe\x7c\x34\xed\x10\x3b\x82\x20\x43\x5b\x1c\x93\xab\xea\xb6\xb9\xa4\x53\x80\x80\x07\x28\xac\xc8\x80\xac\x4a\x7d\x53\x57\xc7\x1f\x65\xf7\x5f\x9f\xd8\x7e\x10\x70\xa1\x09\x86\xec\x5a\xdd\x36\x30\x7d\x22\x11\x33\xc2\x2a\x29\x6f\x84\xe0\x7d\x73\x98\x90\xe3\xf6\x23\x04\x71\x46\x6e\x4c\x89\xef\x7b\xef\xd6\x41\x00\xa8\x08\xf8\x31\x10\x05\x5c\x6f\xfe\xdc\x5d\x7e\xc5\xd9\xb3\x69\x16\x53\xed\x01\x31\xe0\x4e\xc1\xa4\x5d\x63\x42\x14\x29\x8e\xe0\x96\x72\x25\xae\x09\x83\x24\xb4\xb0\x20\x3c\xf5\x9c\xdb\x10\x60\x94\xd0\x81\x8c\xed\x0b\xd6\x3d\xd7\x7c\xbf\xbb\x43\x60\xc2\x88\xac\xed\x43\x0d\x1e\x71\x70\xf5\x61\x69\xbb\xbf\x32\x0f\x20\x30\x69\x4a\x19\xf5\x81\xcd\x11\xd8\x25\x99\x23\x84\x41\x1a\x93\xb5\x6b\xa5\x00\x09\x98\xea\xb1\xdc\x10\x06\x60\x29\x8e\x0f\xd8\xee\x5f\x72\xad\xb1\xdc\x3b\x43\x74\x36\xc8\x61\x08\x40\xd6\xc8\xf1\xdc\xe6\x5b\xeb\x3d\x51\x4d\x39\x1c\xa7\xda\x8f\x33\xbb\x13\xc2\x50\x32\xe2\x60\x58\x95\x15\x15\xe0\x0f\x46\xd0\xd7\x2f\x18\x46\x11\x12\x62\x6b\xfb\xb4\x59\xef\x9e\x7d\x15\x2a\x84\x11\x0a\xc2\xd3\x51\x81\xb7\x05\xd9\x7e\x5a\x85\x0b\x61\x9c\xa8\xc0\x62\xd9\x6f\x6a\xec\xc9\xbd\x9c\x8e\xa6\xbf\x65\xc2\x02\xf0\x28\xba\xfe\x45\x42\xf6\x7f\x8b\x07\x27\x84\x89\x34\x14\x51\x91\x79\x59\x1d\xf3\x4f\xea\x99\x20\x4c\x03\x1b\xc5\x72\x68\xa2\x55\xa9\x1d\x35\x94\x2f\x2a\xf8\x04\x90\x3e\xf3\x1f\xff\x37\xf2\x1a\xf9\x51\x2f\xd6\x3a\xfd\x4f\xff\x7b\x19\x27\xd3\xc6\x02\x06\x47\xa0\x58\x08\x53\xe9\xc4\x8b\xad\xc8\x50\x0f\xac\xf1\xc0\xf9\xb0\x7f\x66\xcc\x48\xfb\xd3\xa1\x8f\xbb\xc5\x7c\x87\x07\x50\x1f\xcf\x78\x9a\x42\x30\x21\x64\x2a\x0d\xd1\x45\x38\x3f\x1e\x3b\xef\xdc\x9f\x6b\x10\x32\xe4\xa1\x15\x68\x6d\xb1\x3e\xe6\x25\x3e\xdd\x5e\x4f\x57\x78\x67\xa3\xe3\x04\x68\xba\x6d\xab\xd3\x68\x69\x84\x19\xcb\x5c\x82\xb6\x3b\x60\x56\x7a\xd9\x47\x83\x30\xe3\x5a\xd8\x1d\xb2\x2f\x66\x9c\x6e\x82\x21\x0f\x0c\xfa\x9a\xf3\x7f\x9e\x81\x7c\x38\xff\xa4\x22\x40\x1a\xb5\x3b\xc4\x7a\xaa\x95\x07\x21\xb0\x38\x1d\x24\x7b\x1f\xf0\xfd\x19\xdf\xf2\xa6\x57\x84\xf2\x5c\x5c\xce\x38\x80\x50\x41\x28\x5c\xe5\xe9\xfe\xe4\x72\x6b\xdd\x82\x1a\x81\xb7\x5d\x4f\x2d\x20\xd3\x03\x86\x8b\xce\xa2\xde\x45\x85\x10\x03\x8e\xce\x4a\x75\x53\x75\xf9\xfc\x1c\x82\xdf\xfe\xc2\x2c\x8c\x03\x57\xb5\x4a\x65\xd4\x33\x63\x1b\xa2\x40\x82\x1e\xc3\x6f\x6f\x4b\x55\x1d\x97\x29\x1a\x20\x0a\x50\x68\xd3\x53\xfb\x90\x60\xc0\xe4\x8d\xa3\x50\x49\x82\xe1\xbe\xd9\x88\x2b\xc9\x5e\xfd\xe6\xdb\xd0\xa2\xe0\x64\x81\xa0\x5e\x46\xb6\x3b\x44\x11\xa4\x74\x64\xb8\x98\x64\xcf\xad\x34\x1a\x83\x28\x02\x41\xd5\xdb\xb6\x1c\xd0\xbe\xff\xac\x02\x00\xa2\x38\x52\xbe\x56\xd8\xa1\xb6\xe8\xad\x6f\xcb\x09\x0c\x10\xa2\x38\x16\xc2\x13\x79\xe7\xb6\x2a\xfe\xea\xe3\x12\xd7\x01\x51\x9c\xc5\x94\xed\x6f\xce\x27\x22\x99\xeb\xcf\xc1\xa8\x73\x26\xe2\xbe\x7a\xac\xdf\x4a\x66\xc2\x55\xae\x73\xa2\x33\xaa\x4c\xd0\xd5\xf6\x9c\xab\x5c\xf7\x6f\x95\x46\x09\x55\xfb\x5a\xb0\x24\x7d\xdc\xab\xf3\x47\xdf\xea\x4a\x97\x2d\x58\xd1\xd1\xc9\x5b\xfd\xb6\xe9\xfd\x53\xa6\x01\xfa\x0f\xe3\xf8\x04\x51\x9d\xfb\xa2\x8e\x19\x64\xd3\x5f\x96\x19\xa7\x10\x88\xea\xf5\xe6\xdd\x3b\x3f\x8e\xba\xdb\x3f\x05\x4b\x32\xda\xb2\x41\xeb\x7b\x6c\x1a\x38\xe0\xae\xfa\xe7\x19\xcf\x73\xbf\x7d\x3a\x57\x78\xac\x33\x5b\xf5\x76\x3c\x15\x94\x07\xf7\x0d\x42\x87\x43\x51\x8b\xb5\x52\xbe\x55\x50\x4c\x74\x4f\x20\x12\x2c\x20\x46\xe5\xf2\x7c\x1c\x40\x01\xfd\x4d\x84\x8a\x89\x1e\xe2\x7e\x7d\xb5\xfa\x1b\x81\x53\x88\x84\x31\x64\x80\x59\x35\x5e\x22\xda\xfb\x64\x50\x20\xb0\xe4\xac\xf7\xeb\xed\xc8\x8f\x81\x48\x26\x4a\xbb\x61\x58\x1d\x6a\xc4\xd9\xd4\x97\xc2\x62\x57\xbf\xfd\x5a\x43\x41\xbb\xce\xd5\x87\x45\x8f\x75\x3b\xeb\x25\x1d\x39\x44\x52\x25\x54\xee\x69\x7a\x3e\x60\xd7\x40\x79\x4e\x2b\xbe\xd3\x0c\x0e\x2c\x44\x9a\x67\x3c\xf1\x1c\xe5\x14\xf1\x1f\x95\x44\xb9\x3e\x26\xb4\xce\xf3\x55\xde\xfe\xf3\x9c\xab\xd7\x53\x7f\xba\x47\x86\x21\x29\x8d\x0d\xca\x6d\xb6\x8e\x72\x9a\x8f\x19\x7f\xc4\x38\x08\x12\x22\x41\xbd\x87\xfa\xf5\x19\xc1\x7f\x9c\x38\x08\x34\x1b\xbe\xa1\x2b\x67\x9b\xe6\xbd\xa6\xd3\x21\x0e\x92\x94\x92\x6c\xbd\x67\xf3\x86\xb5\x29\x06\x39\x69\xdf\x8d\x31\x4a\xfb\x7f\xdb\xf6\xc7\xcb\xec\x3e\x4a\x93\x9b\x7f\xaa\x9a\xd6\xba\xb5\x33\x2e\x39\xd7\x2f\x0c\x25\x8d\xd5\x36\xef\xbc\xce\xce\xdd\x72\x15\x85\xfe\x15\xc2\x24\x22\x33\xd1\x92\xd8\xee\x7e\xed\xa0\x79\x25\xf2\xf9\xe5\xbd\x2f\x0e\x13\x49\x98\x77\x67\xed\xcc\x9e\x3b\x14\x56\xec\xf9\xe1\xff\x1b\xcf\x99\x38\x8a\x25\xcd\x99\xdc\x29\x6e\x7f\x8a\x67\x83\x38\x82\xb8\xf7\x30\xdc\x48\x7e\x45\xf6\x03\x71\x1c\x6b\xda\xdb\x77\x58\xe0\x3b\xbc\xe1\xc8\x48\x8f\x63\x57\xfb\x7e\xc0\x16\xea\x83\xaf\xce\x81\x38\x49\x2c\x83\xfe\x75\x0d\x87\x19\x3b\xb6\xef\x21\x74\xe4\xc5\xf7\x4f\x58\x5e\xe5\xba\xb9\xfa\xb8\xcb\xcb\xd9\x74\x8f\x13\x13\x88\x81\x6e\x56\xbb\xf0\xb1\x87\xb4\x4d\xef\x99\x66\x32\xb4\x54\x9b\x6b\xcf\xe6\x42\x81\x99\x3e\x46\x02\x31\x8b\x85\xc0\xc1\x07\xe8\x1f\x98\xa5\x96\xb2\x0b\xcf\x35\x69\x07\xe9\xa1\x21\x09\x1c\xd9\xdd\x4f\xcc\xfd\xbe\x10\x67\xb1\xa6\x40\xc1\xc4\x5e\xff\x3c\xe1\xc8\x67\xf2\x86\x10\x67\x29\x50\x51\x17\xa1\x9f\x9a\x59\x2d\x6f\xe7\x5a\x28\x9a\x9f\xfb\x23\x1c\x72\x35\x9b\x73\x19\x08\x72\x64\x7e\xff\xbe\x9e\xcc\x02\x0e\x01\x55\x65\xd8\x64\xbb\x05\x9b\xcf\x83\xa8\xfd\xc0\x72\x29\x88\x69\xcc\x9c\x3b\xcb\x62\xfd\x92\xcb\xfc\xaf\x00\xa4\x97\xd5\x42\x10\x83\xb4\x2a\x42\x9d\x9f\xd8\x63\xfc\x67\xdf\x1a\x8c\x2d\x7e\x3d\x78\x9a\x80\x87\x4a\xe3\x27\x4e\x79\x2c\x83\x98\xde\xfc\xe9\x6e\xb5\xbb\x79\x7c\xbe\xdf\xdf\xfc\x78\xb8\xbe\x7d\xf8\xb6\xb7\x6a\x0a\xfe\x5d\xa5\x48\x09\x7b\x65\x0f\xb4\x3e\xd9\x3c\xbb\x97\x0a\xa8\xc0\xde\x20\xae\x2b\x22\xfe\x9d\xc4\x88\xa1\x5b\x35\x34\x7f\x09\xa8\x42\xe7\x5e\x67\x9a\x4e\x9f\x5e\xe9\x80\x00\x50\x8a\x98\xc4\x3c\xbe\x6c\xf6\x4b\x3a\x8c\x08\x72\x54\x3a\x64\xf5\x6d\x8b\xc7\x66\xc2\x78\x00\xb1\x4e\xa3\xd8\x8c\x84\xb4\xee\xaa\xee\xd3\x4e\x7f\x0c\x13\x61\x1c\xd5\x0a\xd6\x50\x38\xe4\x8c\x63\x5a\x98\x3d\x3c\x72\xf4\xdb\xf4\xea\xdc\xbe\x54\xdd\xd6\x5e\xcf\x9e\x0b\x35\x50\x1f\x4a\xb2\x5b\xd8\xf7\x4d\x55\x5b\xb1\x77\xbf\x61\xc7\x26\x8b\x32\x31\x31\xb7\x9e\x89\xd7\xec\xe2\x6e\x86\x47\x71\x2f\xe5\x74\x29\xe4\x00\xb1\xd1\x26\xb0\x24\xfd\x47\xc8\xcb\x89\xa8\x08\x24\x41\x64\x31\x29\xd6\xac\x25\x15\x6f\x2b\x14\xe2\x23\xcc\xa3\x8c\xfc\x74\x65\x27\x81\x4a\x89\xb3\xd4\x27\x4b\xff\xba\x2e\x1f\x92\x30\xe1\x1a\x3d\x49\x16\x15\xcc\x34\x44\x45\x06\xc5\x18\x6c\x30\xbb\x28\x62\x9c\x98\xe1\x74\x45\xda\x4e\x8b\x27\x77\x12\x99\x4c\x0f\x6e\xcd\xf6\xa5\x9a\x06\x01\x21\x49\xb2\x98\x84\x90\xb6\xa7\x02\x4b\xdd\xbb\x89\x61\xc4\xff\xe7\xab\x7f\xe7\x2b\xef\xab\xfe\x9f\x45\x75\x3f\xf9\xd7\x3d\x58\x1a\x31\x22\x0e\xbb\xab\xd4\x2b\xd1\x47\xdb\x56\xbb\x88\x66\x2f\x91\x82\x21\x14\x82\x95\x4e\x72\x13\xc3\xa6\xe9\x97\x52\x8d\x90\xa4\x3a\x46\x33\xf2\x1e\xba\xfd\xec\x8a\x48\x06\x47\x94\xdf\x5f\x7f\x33\x16\x27\x54\x12\xe7\xc4\x2f\xeb\x0f\x92\x24\x69\x96\x72\xfa\x90\x64\x81\x14\x83\xd5\xea\x35\xd1\xf2\x0b\xfa\x19\x48\x32\x8d\x74\xa6\xda\xb2\x41\xff\x47\x64\x24\x62\x54\xae\xcf\xf5\x5b\x6f\x36\x26\xdc\x70\x35\x30\x6d\x74\xde\x3b\x81\x71\x2e\x26\xcc\x0c\xf8\x03\x89\x90\x22\x75\x27\xd5\xfd\xc7\xa8\x88\xc4\x35\x43\x62\xeb\xf1\x5e\xaa\xf7\xfe\x4f\x22\x72\x9e\xec\x5b\xf5\x8a\x2e\xb7\xea\xdb\x94\xa0\xf0\x97\xe7\x90\xdc\xb4\x2f\x97\x4c\x89\x90\xc8\x98\x51\x9c\x8d\x36\xb7\x0b\xde\x4a\x48\x64\x92\x12\x02\x4b\x55\x8e\xd4\xd3\xdf\x5f\xa6\x16\x3a\xa6\xf3\x86\x8e\xa0\x11\x16\x08\x12\xc9\x18\x95\x80\x36\x2d\xbc\x62\xff\x47\x91\x10\xaa\xe1\x05\x6a\xdd\xfd\xd2\xf6\xfe\xa2\xaa\xd4\xf7\x44\x85\x5e\xbc\x12\x55\xdb\x79\xf3\xa3\x22\xc2\x4f\x2e\x52\x61\x28\x9d\xef\xf9\xfd\x43\xd7\xd5\xb6\x85\xd7\xbc\x3c\xdc\xe7\x65\x7e\x3c\x1f\x67\xaf\xa5\x24\x27\x92\xb3\xab\x1a\x5f\xaa\xbe\xd8\xd8\x96\x41\xf8\x6d\x2d\x51\x12\x68\x33\xda\x76\x4e\x9a\x85\x48\xf4\x5c\x5b\x2c\x71\xbc\x54\x33\x38\xba\xd3\xb5\x83\x44\x2b\x45\x70\xf4\x5d\x3d\x57\xf7\x98\xfb\xc2\x9f\x25\xf1\x20\xd1\x18\x0a\x5b\x48\xd7\x59\x91\x53\xc3\x26\xc1\x38\x26\xfa\x9a\x1a\x5a\xdc\x5f\xed\xd6\x7d\xf1\x27\x24\x86\x09\x61\x8b\x09\x7e\xd9\x2d\xbb\x6f\x00\x9b\xe0\x3d\xc2\x2f\x96\xf8\xf7\x38\x0f\x65\x62\x90\x06\x81\xd5\xae\x26\xe0\x16\x14\x7f\xc2\xb9\xee\xec\xb5\x7e\x5e\xa5\x41\x00\xb4\xc1\xfd\xe3\xf1\x5f\x63\xdb\x21\x0d\xc2\x70\xa0\x39\x26\x0e\x9a\x31\x08\x0d\xd2\x40\x29\x4f\xa6\xd4\x2b\xea\x8c\x08\xd3\x20\x0d\x99\xa5\xf5\x76\x8a\x0c\x3d\x4c\x7b\xc4\x0b\x08\x69\xc8\x25\x95\x28\x9a\x73\x49\x73\xa1\xb3\x97\x93\xe9\xc0\xa4\xa1\x8e\x12\x36\xa9\x28\x1f\x67\x37\x20\x8d\x52\x8b\x13\x24\x66\xd0\x19\xef\x30\xa4\x71\x28\x3c\x75\xe8\x75\xde\x9c\xce\x2d\x52\xda\xf9\xda\x41\x72\xb7\xb6\x78\xbb\xef\x9d\x49\x02\x81\x6a\x2c\xf2\xb7\xcf\x0e\x85\x34\xe6\x21\x51\x14\x38\xfc\x5d\xd5\xbf\x4e\x1a\x2a\x5a\x44\xdf\xa1\x96\x55\x3d\xaf\x2c\xfa\xcc\x98\xfa\x3b\xe8\x09\x48\x53\x61\x61\xbb\xf9\xb7\x32\x6f\x87\x11\x4c\x4d\x48\x4b\xd3\xd5\xd1\x5e\xd5\xf0\x06\x9e\x7f\x10\x52\x16\xc9\xcc\xbd\xfd\xe3\x7b\xb9\x00\xb8\x85\x34\x8b\x91\x34\x5b\xf6\x12\x74\xe7\x61\xf7\xb0\x5b\x7f\x8f\x4c\x80\x54\x17\x95\xf5\x37\x15\x31\x3c\x62\x0d\x84\x51\xfd\x24\x10\x94\x66\x68\x19\x9f\xfa\x2a\xeb\x73\xae\x67\x07\x4b\xca\x59\x40\x34\x1a\x04\xb9\x5c\xf7\xa6\x9b\x6b\x95\x51\x40\x85\x8e\xce\x6d\xf7\x5a\xd7\x4b\x39\x73\x1f\x3e\x4c\x65\x2a\xe9\x40\xc6\xd2\x12\xd8\x4d\xe6\x8b\xce\x62\xdd\x2b\xd2\x9e\x4e\xce\xe6\xf0\x8d\x9a\x05\x16\x15\x74\x2e\x5f\xa3\xdb\xc6\x66\xc8\x5d\x23\x46\x96\x49\xc8\x3e\xca\x57\xd4\xdd\x90\xa2\x8a\x88\x52\xbb\xc0\x63\x55\x36\xd7\x75\x75\x3a\xa1\xde\x55\xbb\x17\xfc\x59\xd5\xc5\x70\x4b\xb4\x68\xc0\xcd\x23\x91\x71\xf8\x3f\x9b\x38\xa2\x74\x8a\x2b\x97\x22\x0c\x42\x8d\xff\x71\xcd\x2c\x08\x14\x66\x2e\x8d\xb4\xb8\x19\xf9\x7e\x59\x40\x90\x87\xbd\x77\xbd\xe7\xdf\x69\xf9\xd8\x65\x61\x14\x38\x71\xc3\xea\xb4\x7b\xc9\xcb\x6e\xe3\xfd\x6d\xde\x85\x6b\x07\xfb\xbe\xbb\xfb\x63\x01\xf5\x0d\x2c\x4c\x6d\xfc\xa6\xce\xd5\xcb\x35\xb4\x20\x3d\x6b\xd9\xe8\x2e\x59\x6c\x73\xbf\x50\x28\xf7\x21\xa6\x6f\x10\x72\x4d\x29\xb9\xb6\xce\x0f\x07\xac\x9f\x1b\x57\x47\x38\xd0\xf8\x03\x0b\xb5\x24\x1b\xd9\x1b\xf4\x3f\xab\xfa\xf5\x79\x2a\x54\x37\x89\x6c\xfb\x69\xc2\xa2\x30\x08\xf9\x48\x03\xe5\x42\xe4\xe4\xff\x7c\xc7\x28\x21\x7c\x49\x77\x60\xbd\x41\xdb\x07\xdd\xfc\xbe\xc1\x22\x10\x24\x31\xe4\x0c\x93\x4b\x81\xa4\xc9\x41\xc0\x22\xa5\x2d\xc9\xa8\x8d\x15\xae\xe1\x34\xde\x15\x59\x64\x18\x73\x18\x99\x55\x51\x3c\x61\xf1\x96\x2b\xdf\x16\x6b\xee\xe0\xdf\x4d\x75\xae\xfb\x19\xc3\x92\xd4\x6e\x3d\x07\xcb\xe5\xda\x3d\xa1\x7a\xe9\x5b\xd3\x30\x21\xca\xa9\x47\xad\x47\xee\x3a\x63\x42\x13\x94\x8b\xe6\xd0\x1f\x36\x76\xfa\x97\xdb\xd5\x60\x6d\x30\xa6\x80\x2c\xbc\x75\x55\x9c\xef\x2a\x05\x85\x0d\x7e\x5e\x70\x71\x9e\x27\xe2\x9e\x93\xa1\xc8\xa2\xcc\x96\x35\xa9\xc9\xae\xc3\xb2\xc4\xe6\x95\x2c\xae\xe1\xbf\xe8\x71\x5c\xfe\x6c\xef\x87\x3e\xcb\x98\x60\x9e\x34\xad\xcf\x16\xcc\xa6\x51\x06\x01\xa9\x37\x76\xd6\x8d\x2c\x2e\xbf\x1f\x17\x01\x39\x99\xdd\x1e\x57\xc3\x7b\xe7\xf4\xb9\x16\x11\x5b\x36\x4b\x8f\x21\x69\xd4\x19\x97\x68\x94\x80\x09\x11\x11\x51\xc4\x56\xbd\x1c\x51\xbd\x16\xc3\x2d\x40\x7a\x71\xe8\xce\x0d\xf4\x12\x05\x89\x6f\xd6\x92\xae\x3b\x9e\x8b\x36\xbf\xfe\x28\xe1\x38\x38\xf8\xff\x1b\xfd\x5f\x3f\x09\x21\x48\x28\x8b\xff\x47\xde\x9c\xa1\xd8\xa1\x7a\x29\xab\xa2\x3a\x7c\x8c\x8f\x6d\x06\x11\x50\xf9\x04\x45\x73\x9a\xce\x76\x1a\xe9\x22\x03\x83\x24\x26\x88\xc6\x91\xb4\x20\xf2\xf2\x60\x81\x52\xb3\xaa\xb9\xae\x9f\x9d\xa0\x43\xd6\x72\xc4\xf5\x0b\x0c\x64\xca\x1c\xf7\x9f\x2d\x8b\x9d\x70\x3d\x4d\x8e\x6f\xa6\xb5\x71\xc8\xa5\x52\x7f\xc2\xda\x00\x0c\x63\x2d\xb8\xdb\x07\xd6\x3d\xe1\xfc\x6c\xb3\x40\x19\x87\xdc\x9b\x1c\x65\xcf\xc7\x33\xeb\x65\xb8\x65\xc1\xd9\xdd\x6e\x9e\x23\xab\x21\xee\x1f\xdb\x48\x20\xf7\xdf\x2d\x3b\x1b\xed\x7a\x46\x85\xf9\x1b\x6a\x17\xd9\x0c\x69\x25\x86\xfc\xda\xab\x54\xf8\x6b\x8d\xa2\xf8\xcc\x37\x6c\xaf\x3a\x5b\xaa\x39\x17\xde\x94\xcf\x82\xc4\xb2\x59\x12\xe3\x74\x67\xe3\x5f\x41\xdb\x16\xa3\x0a\xac\x61\xc9\x64\x01\x02\xd5\xf6\x7f\xa3\x97\xc0\xfa\x47\xe9\x8a\x62\x3a\xcb\x65\x9c\x6f\x75\xfd\xc3\x20\xd1\x23\x92\xf4\x02\x0e\xfe\x57\xc3\x98\x33\x33\xb3\x9d\xa2\xa9\xed\x94\x45\x51\x68\x45\xea\xb0\xe9\x99\x0d\x06\xf5\x59\xc8\x22\x65\xeb\x39\x4e\xf5\x84\x41\xe2\xc9\xaa\xab\x4f\x47\x36\x8b\xa3\x0c\x1c\x02\x79\x45\x8c\x7d\x77\xa4\x7d\xb0\xf8\x45\xb3\x38\x89\xa5\x53\x09\xbf\xc2\x12\x4d\xae\x72\xa8\x2f\x4a\x99\x96\x6d\x9d\x2c\x96\x01\x90\x1d\xf5\x71\x1a\x93\xf5\x41\x96\x04\xe0\x77\x46\x6b\x6c\x4e\x07\x2b\x81\x8c\xa8\xad\xf6\x5e\xb6\x6a\xde\x2e\x83\x74\x00\x84\x5d\x63\x93\x1f\xe6\x6a\x92\x90\x25\xca\x76\xb2\x23\x6e\x03\x54\xe5\x5c\x07\x04\xb2\x34\x08\xb9\x45\x57\x75\xf3\xb5\xfd\x0e\xcd\xcb\x6c\xf0\xd3\x48\xc5\xa1\x03\x81\xac\x57\x4f\x7b\xa2\x29\xd8\xee\x9f\x9e\x37\xfb\x21\x02\x99\xa5\xcc\x92\x7c\x83\xd6\x77\x78\xc8\xdb\x67\x50\xb8\xe8\xdf\x66\x2c\x32\x59\x3c\x11\xf3\x7a\x86\xff\xde\x96\x4d\x4b\x36\xf1\xf4\xe9\x58\x62\xab\xf4\x46\x64\x18\x33\x14\x41\xc6\x20\xe2\x8e\xfe\x80\x92\xb4\xcd\x2e\x2f\x8a\x7b\x68\xdb\x17\x7c\x1f\xfa\x48\x0a\x2f\xef\xb1\x86\x06\x1f\x46\xa3\x30\x04\x30\xa7\xeb\x3d\xcb\x12\x41\x16\x0d\xd1\xa2\x3f\x77\xd6\x0b\xd5\xed\xec\xde\xfb\x49\x97\x25\x32\x19\xdb\x84\x7f\x73\x52\x64\x99\xa2\xb9\xbc\x5f\xef\xad\xdd\xb3\xab\x5a\xbc\xcb\xff\x73\xb6\x36\xf8\xb8\x30\x12\xb2\x4c\x89\xd0\x4d\xbf\x87\xaa\xc5\x89\x70\x1f\x64\x5c\x58\x36\x7d\x4b\xb4\xb9\x2a\xf5\x3d\xfc\xa2\x75\xdf\x99\xb5\x7f\x95\xcb\xcf\x38\xc6\x14\x3d\xb0\x13\xe4\xb6\x59\xb5\xad\xcd\x20\x2d\x77\x17\x71\x48\x1a\xdd\x4f\x45\x75\x6e\x2b\xbf\xa1\x64\x02\xd2\xd4\xc2\x97\x50\x37\x4e\x4b\xeb\xc6\x1e\x76\xe3\xad\x38\x83\xd0\x4a\x1b\x6c\x1a\x05\x27\xfc\x0e\xa4\x44\x55\xcc\xf1\xec\x90\x41\x1c\x50\xf9\x3f\xd5\xa8\xf5\xa9\x6c\xa8\x87\x18\x42\x06\x69\x44\x70\xde\xef\xd0\xac\x61\x66\x1d\xf5\xdf\x4f\x6a\x2b\x94\x97\x37\xf7\xf9\xaf\x6f\xc3\xd2\x93\x68\x08\x3e\x4a\x39\xbb\x1f\x8d\x8b\x6e\x7b\x8f\x6c\x3a\x53\x95\x88\x88\x96\xf9\xae\x3a\xfc\x44\x7c\xed\x19\xcf\xe6\x21\xa2\x4c\x47\x91\x74\xf9\xd0\x8d\x15\x42\xfa\x6d\xde\xc1\x4a\x8b\x14\xd5\x21\x2f\xa7\x1f\x51\x73\x4d\x44\x2c\xeb\xe2\x2c\x27\x9b\x04\x32\x1b\x0c\x68\xb0\x2d\xf1\xdd\x42\x9a\xe7\xd4\x7c\x90\x99\x14\xfd\x78\xd1\xd9\xf6\xa3\xb4\x19\xde\xaf\xe1\x20\x99\x91\x99\x70\x3a\xd0\xed\xb7\x1a\xb1\xfc\x44\xcb\xcc\x76\xe7\x81\xd4\x44\x57\xd1\x59\x5d\x7f\xe4\x45\x01\x3b\x28\x3c\x1c\x82\xc7\x01\xd0\xbd\xee\x30\x3f\xf6\x8f\xcf\xe3\x24\x46\x1c\xf0\x1a\x14\xaa\xd0\x39\x94\x16\x21\x3e\xdd\x63\x78\xcc\x6d\x39\x45\xef\x9c\x75\xce\xd8\xe4\x63\xf0\x24\x0a\x92\x3e\x7b\xf7\x96\x2b\x24\x95\xa4\x51\xcc\x9e\x27\x8c\x1b\x5b\x1e\xb7\xab\x1e\x8d\x59\xbf\x40\x5e\x2e\x6e\x41\x3c\x31\x41\x10\x79\x51\x18\xef\x50\x4f\x07\x96\xa7\x41\x22\x3d\xcd\xd2\x57\xee\xef\x70\x28\xf2\x8c\x21\x77\x20\xe0\xfb\xeb\xd5\xd3\xd3\xf8\x3a\xdf\x85\xa7\x91\xeb\x52\xbc\x15\x0f\xd5\xb1\x5b\x2a\x16\xf2\x33\x9e\x15\x9c\xa7\x36\x5d\x9f\x37\x96\x77\xf6\x09\xf2\x05\xbd\xd2\xbf\xf2\xbd\xdd\xcd\x20\xb0\xfc\x35\xa7\x3a\xff\x2f\xde\x57\x25\x7e\x90\x4d\xe5\xbf\x14\x64\x22\x70\x31\x10\x89\x96\xf6\x80\x0c\xdd\xcb\x54\x14\x07\x95\x86\x96\x14\xfa\xf7\xfc\x3d\x9f\x8d\x98\x0c\x98\xc0\xa1\x9c\x6a\xa2\xae\x03\x5c\x42\x62\x58\x1f\x80\x7c\xb6\xc5\x20\x93\x72\xdd\xd1\x48\x4a\xa5\x44\xd8\xa3\x92\xc6\xa4\x76\xae\x83\x4a\x03\x82\x33\x39\xde\x04\xac\xf7\xa0\xf5\xde\x3b\xdd\xd3\x7d\x92\xeb\x10\xc9\x96\x52\xc4\xe7\x65\x01\x8b\xfe\xb1\x34\x43\x02\xa5\xbc\xe5\xf8\xfe\xfb\xbf\xd6\x36\x9d\x39\x07\x42\x72\x74\x14\x99\x1a\xa1\x7d\x71\x42\x8a\x6f\xfe\x16\x26\x4c\xf9\x20\xb5\xe9\xb8\xc4\x3f\x73\x51\xfd\x35\xda\xa6\xf7\xbb\x1d\xc3\x3d\xf4\xba\x6a\x3e\xc5\x18\x8f\x18\x06\x40\x04\xb1\xa6\x52\xfb\xbb\xcd\xbf\xae\x56\x9b\x67\x57\x30\x07\x22\x0c\x6d\x46\xf3\x40\x32\x59\x8e\xe7\x7d\xf2\xb3\x22\x4c\x62\x8a\xbe\xac\xd7\xdf\xff\x8a\x42\x14\x44\xa8\xa5\xc8\x88\xf5\xe7\x01\xdf\xbd\x40\xd9\x22\x15\x21\x88\x28\xc8\xa8\xda\xfb\xe7\xea\xee\x6e\xb3\xdb\xef\x36\x2b\x8f\x30\x13\x51\x68\xab\x2f\x56\x4d\x0e\xbe\x44\x7e\xe4\xbd\x89\x28\x8d\xc9\x1e\xbb\x3a\xd7\xe5\xfd\x6c\xbd\x88\x08\x52\x8a\x35\xfe\xeb\x0c\xe5\x0e\xf2\xbf\x57\x67\x00\x22\x09\x32\x4a\x73\x83\x6c\x6c\x08\xf5\x5c\x7a\xd7\x53\x24\x20\xc9\x9e\xd9\x9f\xbd\xc4\xfa\x27\xef\x94\x86\xa9\x47\xc3\x6c\xde\xa0\x38\xd3\x79\xe6\xc0\x2e\xdb\xf6\xac\xb1\x6c\x6f\xaf\xc7\xa5\x63\x20\x52\x6e\x0b\x5c\xec\x17\xa5\xd0\xca\x48\x48\x70\x76\x7b\x88\x29\x86\x5d\xa0\x69\xd3\x6c\x3a\xbf\xbb\x46\xf2\x74\x89\x22\xee\x7c\x21\x7a\x02\x82\xc5\x01\xc5\xdd\xbb\x79\x4f\x85\x52\x63\xe2\x3f\xdf\x47\x87\x4c\x4f\x4a\xe4\x07\x17\x69\x97\x1f\xb1\x18\x97\x0a\x4e\xde\x83\x69\x43\xfc\x38\x52\xbe\x8f\xed\x11\xc1\xba\x79\xeb\xc0\xe8\x9d\x91\xbf\x34\x6d\xb8\x4a\x3d\xff\xbc\x3b\x0c\x5d\x61\xfe\x79\x0a\x82\x14\x1c\x4d\x3c\xd4\xc8\x77\x4e\x83\xb7\x2a\x84\x72\xe1\x5c\xaa\x74\xf6\x0a\x69\x93\x10\x97\x50\x99\xa6\x90\xf0\x11\x7e\x0d\x30\x8e\xab\x8f\xc5\x0d\x9f\xea\xd1\xbb\xf9\xf0\x62\x85\xf1\x47\x12\x08\x20\x34\xb7\xbc\x94\xa3\x6c\xcb\xe3\x79\x68\x95\x29\x71\x98\xf6\x64\x47\x0b\x06\xbb\xc0\x2c\xb1\x20\xca\xce\x7e\x3a\x17\x38\x24\xd9\x92\x45\x6b\x90\xfb\xeb\x84\x26\xf2\x5f\xda\x98\xd7\x55\x55\xe8\xea\xbd\x9c\xf9\x2b\x02\x25\x12\xf4\x5e\xa3\x73\xcb\xe6\xed\x08\x54\xd0\x7d\x7b\x3c\x75\x8f\x94\x7b\x03\x55\x18\xc1\x88\xe2\xc7\x19\xec\x53\x62\x31\x80\x20\x4c\x7c\x62\x87\x0c\xb6\x05\xfc\x09\xf7\x5d\x63\xc1\xc0\x59\x0b\x37\x75\x75\xfc\x8c\x24\x12\x20\x40\x30\x72\x24\x39\x59\xff\x68\xce\x50\xe7\xd5\x5f\x29\x31\xb9\xcb\x23\xd0\xe4\x18\x75\x9e\x8f\xb5\x78\x6e\x3f\xb1\x47\x21\x66\x9a\x52\xd3\xdf\xb0\xdd\x3a\x9a\xe6\xbd\x0f\x55\x8f\x9f\x3d\x36\x21\x99\x51\x03\x93\xde\x67\x7b\xec\xec\xfe\x26\xa3\xe1\xe9\x4e\xe0\x19\xcb\x3f\x40\x12\xa7\xc4\xbc\x7a\xbd\x9d\xec\x75\x90\x70\xc6\xc1\xad\x8f\x73\x8b\x54\x6f\xfe\x5c\x55\x9f\x56\x5b\x2f\x81\xde\xfd\xad\x04\xa3\x1c\xfe\xe9\x05\x1a\x8c\xbc\x65\xdf\x8b\x30\x00\xa4\x21\x52\x36\xf6\x0d\xce\x45\x3b\x8e\x6b\x40\x6a\x12\x32\x84\xec\x2e\x64\x5f\x1c\xdb\x36\x2f\x0f\xcd\x98\x57\xe0\xf2\x9d\x53\x83\x14\x25\x7a\x81\xe6\x65\x71\x21\x01\x0b\xad\xa0\xf0\x8d\x7d\x6f\x42\x31\xf8\x9f\x65\x2c\xe0\x56\x3a\x89\xdc\xee\x21\x91\x3e\x4a\x04\xfb\xae\x2a\xa1\x12\x8a\x9e\x13\x45\xf6\x99\x99\x39\x28\x11\x98\x09\xbc\x00\xc9\x33\x6a\x3c\x9e\xac\x42\xa0\xc5\xf1\x4d\x6f\x9b\x85\x9c\x64\x7b\xbd\x63\xec\x6c\x83\xf5\x6a\x77\x4d\x51\x41\xda\xf9\x96\x5f\x2c\x4b\x22\x82\x34\xee\xb0\x69\xff\xf4\x6f\xc4\x05\x72\x5f\x12\xb2\x7e\xa4\xfa\x8d\x7e\x0a\x88\x80\x13\x52\xcc\xd4\xd5\x7f\xb1\x24\xe5\xe5\x11\xde\x12\x44\x9c\x7a\x11\x04\x0f\x54\x27\x68\x61\xfd\x69\xb1\x6f\x77\x4d\x46\x20\x7b\xa7\x19\xda\xcf\xd8\x7f\xdc\x7f\xb2\xda\x44\x62\x91\x41\xa4\xcd\x92\x97\xdb\x16\x66\x44\x10\xd0\xad\x13\x3a\xf1\x6f\xb0\xdf\x5d\xbb\xb9\x1d\x39\xcf\x82\xaa\xf0\xb7\x23\x31\xab\xd9\x2f\x40\x66\xb5\xe1\x7b\xc3\x3c\x3f\xf5\xb7\x91\x71\x1c\x30\x4f\x80\x3a\xaa\x5d\x99\x0e\xac\x4c\x32\xba\xc3\x0f\x62\x21\xbc\x7e\xdc\x8d\x64\x71\x00\x54\x12\x93\x63\xb4\x5b\xfd\xbe\xf1\xf7\x55\x19\x23\x81\x2a\xfb\x15\x9d\xcc\x66\x5f\x24\xbf\x14\x7e\x05\x54\x96\x1c\xf7\x35\x2f\x0f\xdf\x0a\xd0\xf9\xc8\xf2\x04\x54\x29\xa5\x01\x96\xf5\xed\x2f\x16\x9e\x09\x39\x05\xf1\x88\xc1\x68\x61\xc3\x05\x13\x47\x74\x70\x1f\xe1\x97\x4d\xc2\x61\xd1\xa3\x04\x65\x08\xbd\xe2\xb8\x87\x07\x2c\x4e\x38\x19\xca\x8c\x2c\xd8\x7b\x62\x47\xad\x11\xdb\x41\xd8\xf7\xb3\x98\xf5\x67\x29\xb7\x2f\xd1\x11\x32\xc4\x8c\x92\x41\x54\xbe\x4b\xe6\xff\x75\xf5\x5e\xc6\xdb\x9b\xe9\x7b\xc9\x28\xb0\x81\xb1\x9b\x02\x1a\x0f\x27\x90\x91\x56\xa8\x7c\x31\xd1\xba\x27\xc5\xec\x3e\x7e\x46\x3b\x01\x68\xdd\x33\xa5\xf1\xcf\x95\xa9\x40\xc6\xd2\x10\x02\xa1\x39\x15\xb9\xdb\xaf\x26\xed\x89\x8a\x29\x89\xba\xdd\xad\x9e\x77\x84\x8c\xfa\xe7\x8f\xdb\xe7\xe7\xcd\x9d\xff\xc5\x34\x00\x8f\x3a\x76\x02\xf2\xd3\x1b\xa4\xa9\xf2\x1e\xe2\x98\x73\x92\xdc\x87\xee\xc4\x9a\xbe\x6d\xca\x22\xc2\xa9\x96\xf8\xab\x1d\x0b\xdf\x76\x2d\xa9\xb7\xcd\xb7\x94\x9c\xb0\x64\x7c\x90\x5f\xa2\x33\xff\x67\x76\x4f\x6e\x47\x5a\x55\x85\x76\x9a\xb9\xff\x42\xe8\xe3\xf3\x92\x25\x8a\xec\x04\x39\x84\x12\xc9\x76\xd9\xe6\x3e\x1c\x2a\xb3\x30\xa4\x6d\x65\xaf\x09\xab\xd4\x8c\x49\x68\x41\xf2\xd0\x82\xb6\xbe\x3d\x7a\x06\x68\x90\x5c\xd8\xe4\xa8\x27\xa6\xfd\x9e\xb7\xee\x1c\x5c\xc3\xe9\xa9\xc6\x81\xc6\xa4\xbf\x02\x19\x45\x95\xfe\x73\xc6\xfa\x43\xda\x6d\x37\x1a\x1a\x91\xd8\xd4\xbe\x57\x65\xb7\x67\x36\x8e\x1f\xe0\x76\xfd\x58\xe3\xe1\x5c\x4c\x70\xc4\x52\x30\x46\x81\xf8\x02\x9a\xd1\x60\xff\xc4\xdc\x77\xe8\x6c\x1c\xd2\x81\xcc\x6b\x87\x3a\xf7\x2d\xd2\x58\x86\x9a\x3d\x45\xf7\xcf\x75\x61\xe9\xb8\xaf\x51\xc1\x47\x1f\x69\xf1\x75\xf4\x20\x55\x14\xd2\x66\xd3\x58\x00\xf8\xac\x7a\x42\x2a\x13\x5b\xe9\xcb\x17\x74\x19\x83\x6e\x8d\x4f\x07\x4f\x07\x61\xcc\x06\x8e\xf2\xa1\x42\x1c\xa4\x8e\xc1\x92\xc0\x9e\x8f\xc7\x27\xa8\x5b\x47\x1f\xdc\xac\x4a\x3d\xf8\x94\xbe\x2f\xc7\xc4\x9d\x47\xd5\x28\xdd\x25\x35\xe8\xa4\xd7\xc1\x5d\x43\xa3\x40\x5b\xba\x1f\x9f\x59\xf5\xfd\x4c\x46\x21\xf8\xab\xd5\x6e\x77\xb7\xd9\x3f\x3d\xde\x3e\xec\xf6\xd7\x9b\xf5\xed\xfd\xea\xce\xc7\xf8\x25\x46\xd1\x28\x5d\xbc\xc3\x23\xa1\x1e\xcf\xf5\xc4\xb6\x91\x88\x01\xa1\xb2\xf1\x98\xb7\xcf\x77\xeb\xd9\x0c\x37\x71\x60\x8d\xde\x51\x4c\x77\x3a\x61\x55\x90\xd9\xe8\x6f\x43\x90\xe8\x1a\xa9\x6c\x60\x1a\x9b\x51\x81\x41\x50\xbd\x5b\x49\xd9\x2b\x0f\x92\xf7\x63\xa2\xc2\x24\xa0\x39\xb8\xdd\x6c\xae\x07\xb8\xe4\xd0\x48\x06\x76\x9f\x85\xa9\xea\xb1\x01\xae\x42\x16\x93\x89\xfd\x8c\xa7\x69\x16\x78\xd1\x2d\x53\xa1\x00\xca\xc7\x7e\xc3\x72\xfd\x92\x9f\x28\x7a\xbf\xff\x86\x25\x2e\x68\x21\xcd\x5e\x37\x4a\x99\xe6\x93\x1d\xa2\x07\x7d\x3c\x55\x4d\x7b\xaa\x4a\x22\xdb\x76\x5a\x48\x13\x15\x4d\x50\x91\x89\xa9\x5e\xf2\x5f\x79\xa9\x5e\xd0\xe5\x9c\x96\x33\xd6\x2a\x0e\x2d\x1a\x21\x57\xd5\x14\x70\xa2\x62\xa1\x93\x21\x2c\x7f\x0d\xf5\x6b\x59\x69\xbc\xc6\xba\x0f\xee\xac\x3e\xc9\x2e\xa9\x18\x22\x4a\x10\x93\x86\x1a\x79\x0c\x05\xe4\x33\x08\x91\x4a\xa2\x30\x73\xf4\xa9\xb3\xe2\xc4\xd9\xdd\x12\x26\x3d\x03\xed\xcf\x91\x15\x66\xbd\x80\xa7\x81\x5a\xbf\xef\x8e\x04\x59\xbf\xad\xa5\x7f\x95\x04\xd0\xf2\xa4\xd0\x25\xdd\x8e\x3e\x62\x1d\x99\x91\x1e\x4e\x6f\x96\x2a\x49\x29\x80\x6f\x58\x1d\xb1\xad\x73\xf5\x54\x95\xff\xf5\x7b\x86\x62\x5a\x8b\xa1\x92\xba\x67\xee\x83\xe2\x69\xac\x19\xf6\x57\xa4\xa3\xa0\xb2\x20\xf2\x62\x15\xbb\x8f\xd3\x27\x61\x70\x95\x69\x46\xa3\xea\xc4\x31\xa6\x60\x54\x95\x19\x0b\x46\xed\xcc\xc2\x1f\x6d\x3e\xcc\x78\x9e\x59\xcd\x5c\x97\x84\xfb\x59\xd5\xaf\xc4\xa5\x33\xad\x94\x51\x9c\xa7\x7c\x08\xd1\xe7\x47\x28\xae\x66\x05\xe7\xa0\xb8\x0c\x08\x1c\xd0\xb9\xa6\xb8\x7d\xc9\x4f\x53\xf2\xaf\x59\xda\x79\xba\x38\xb9\xb2\x99\x24\x89\x87\xbc\x74\x14\x13\xfe\xb7\x05\x64\x44\x7b\xec\x68\xab\xb1\x0c\x96\xb8\x66\xc2\x2f\xff\xf1\xb7\xd2\x86\x4c\x83\xd5\xa1\xae\x8a\xaa\x1d\x6f\xe4\x0a\xe2\x8c\xa2\x9e\x3f\x88\x78\x97\x7c\xb1\xe6\x71\x96\xf4\x54\x20\x8c\xd1\xe3\xda\xaf\xfb\xe6\xb0\x7a\x87\x9c\xca\x9c\xce\x3a\x9f\x53\x80\xfa\xcb\x9c\x76\xce\x16\x0c\xde\x43\xbf\x95\x2b\x50\x46\x5a\x59\xed\x53\xde\x42\xd1\xcd\xbd\x81\x9d\x07\x94\xd4\x82\x66\xa6\xae\xb0\x79\x7c\x2f\x89\x5b\x6e\x11\xf3\xaa\x24\x26\x54\xa0\xda\xcc\x4b\x7d\x95\x8a\x32\xcb\x85\x0c\x75\x9b\x43\x61\xe3\xea\xab\xf2\x80\x45\xf3\x19\xc0\x42\x29\x99\x44\x93\x9d\x2e\xb7\x8c\xd9\xfd\x21\xa1\x14\x46\x64\x0d\x83\xd6\x0e\xdb\x31\x5b\x28\x4b\xd5\x37\x4a\x73\x69\x25\x84\xca\xbc\xdd\xfc\x5a\x15\xf9\x27\x2a\xc0\xa0\xb4\xb6\x46\x16\x65\xc6\xfb\x5f\xc5\x20\xb1\xe5\x01\xb6\xfa\x6d\x8b\xa4\x73\x37\x7b\x61\x93\x18\x2a\x9c\xae\x3c\x79\xfe\x8f\x32\x6f\x3f\xa9\xf2\x51\x26\xb5\x6c\x95\x56\x5b\x90\x28\x26\xfb\xa5\x61\x40\x53\x61\xce\x94\x37\x73\x92\x56\xf7\x3d\x55\x48\x91\xd3\x23\xa9\x4e\xfb\xa5\x37\x36\xea\x94\xd1\x22\x10\xbe\xa0\xa2\x9d\xdb\x7c\x3a\x48\xac\xce\x34\xcd\xc8\xbe\x50\x43\x07\x89\xe6\x0e\xb3\x7b\x3e\x39\x42\x8b\x4f\x69\xc3\x40\x07\x4c\x87\x16\x11\xf5\x65\x44\x50\x07\x59\x4a\x2c\x6c\x47\x4b\x33\xb3\x45\x5b\xa9\x34\x26\x28\x01\x1d\x68\xab\x33\xd0\x60\xdb\x57\x50\x6e\xf1\xc2\x33\xd3\x61\x20\xd1\xa6\xf1\xbd\x4b\xaf\xc3\x00\x2d\xbe\x03\xdf\xa6\xfb\x90\x0e\x13\x30\xb6\xc4\x4f\x8f\x53\x50\x7e\x1f\xd0\x61\x1a\xa5\xbc\xc7\xba\x9b\xbc\x1d\xae\xcc\xac\x6e\xb5\xf7\x89\x29\x36\xbf\x6d\xab\x53\x37\x1e\x37\x75\x75\x7c\x98\x4f\x7d\x1d\x85\x31\x3a\x1a\xe9\x12\x95\x15\xb7\x9d\x80\xcb\xbf\x3c\xa0\x75\x9c\x0a\x65\xbc\x51\x51\xe0\x01\x5a\x9c\x32\x68\xf8\x7e\x5c\x90\x05\xbe\x85\xf2\x1f\xf0\x96\x63\xad\xaa\xbc\x34\x55\xfd\xee\xd7\xb1\x4e\x44\x14\x45\x03\x54\xe2\x78\x3e\x2e\x28\x4d\x80\x4e\xa3\xc0\x92\x76\x77\x2b\x0d\x9b\xf6\x52\xad\x0e\x74\x9a\x4a\x0b\xaf\xfc\xf8\x6f\x7f\xa4\xeb\x54\x5a\x61\x6c\xbb\x2b\xb9\x79\xf2\xf7\xf2\xb8\x9a\x19\x0e\x03\x39\x26\x1d\xc5\xdd\x97\xfe\x89\xf9\x98\xa7\x14\x74\xa6\x2c\x7f\x07\x8d\x06\xc9\x25\x50\xdf\xcf\x10\x77\x9a\x27\x8a\x1c\x80\xdd\x9f\x8f\x9d\x0d\x3f\x24\x9c\xb5\x88\x12\xee\x19\x64\x3c\x0a\xc2\x6d\x45\xdd\x09\xbe\x10\x98\xd4\x82\x07\xb6\x74\xe8\x78\xaa\xea\x76\x0a\x4d\x9b\xbd\x8f\x00\xe1\x33\x53\x37\x38\x17\x8e\x9b\x7d\x61\x61\x2c\xda\xa9\xc1\x92\x04\xee\xc8\xa9\x9c\xbd\x07\x84\x11\x71\x47\x4c\xf9\x40\x5c\xa3\x8c\x34\x99\xeb\x12\xdb\x7d\xfb\x92\x37\xfb\xe6\xd4\x27\x04\xb4\xec\xbe\x8c\x77\x4f\xb6\x38\x4f\x11\x6b\x29\x63\xa2\xa3\x3a\x7a\x87\x6c\x4e\xcc\xed\xfa\xe9\x14\x84\xf0\xd1\x11\xeb\x2e\x50\x4e\x2a\xaf\xca\x6f\xd0\xaf\x0f\x0d\x8c\x2a\xb1\x74\x35\x54\x8e\x6a\x8d\x5a\x7b\xb1\xd6\xaa\x69\x6f\xaa\x9a\xb2\xe3\xaf\x63\xeb\x5b\x9b\xcc\xda\xe8\x5e\xce\xff\x3b\x34\x2f\xcf\x43\xbd\xa1\x36\x82\x51\xb0\x7c\xdf\x1b\x32\xbf\x3e\xa6\xe3\x80\x41\x68\xc8\xbc\xf8\xb1\xbd\xb6\x25\xdf\xbf\xf9\x86\x38\x26\xee\xdd\x13\x7c\x5c\x39\x29\xb2\x25\xca\x0c\xdf\x1b\x19\x95\xe0\x5c\xb5\xdd\xf6\x35\x93\x47\x01\x0c\x53\x46\x1e\xc7\x66\x73\x43\x22\x35\xd3\x67\x08\x33\x0b\xc0\xa9\xb1\x3d\xd7\xe5\x94\x0e\xd4\x77\x11\x91\x55\xf2\xa0\x3d\xc4\xe1\xd1\xb7\x67\xd9\x53\x88\x5f\xe4\xa5\x31\x0a\x43\x61\x0d\x9f\xc2\xfc\x9e\x7b\x22\x4b\xc0\x28\x49\x42\x77\x00\xae\xb4\xfe\xa4\xb4\x0a\xa3\x34\x20\xa2\x87\xbd\x47\xc8\x7c\x55\x1c\x89\x11\x03\xd3\x17\xd3\xb5\x38\x8d\x35\xbb\x3e\x71\x62\x0b\xde\x9a\x6e\xc9\x85\x63\x88\x37\x26\x0c\xb0\x7b\xbb\x1f\xf5\xf9\x70\x86\x8f\xb7\xe6\xa9\xaa\xdb\xf3\x01\xfa\x67\x4e\x44\x14\xf8\x98\x0e\xd4\xd0\x8d\x61\xaf\x0c\x3f\x7d\x92\x44\x06\x44\xda\x68\xbf\x38\x7d\xb9\x8f\xd9\x09\x3f\x8f\x37\x61\xea\x50\xb0\x7e\x96\x90\xeb\xee\x64\xc4\x96\x95\xbf\x00\x99\xc8\xdc\xef\x7c\x9c\x5a\x38\xd7\xa4\x0b\xd2\x43\x49\x31\x53\x36\x43\x68\xf2\x53\xe3\x09\x07\x1c\x48\xc5\x95\xda\xcf\xcb\x3c\x30\x33\x22\xe6\xde\x59\xfc\x8b\xb8\x93\xbb\x84\xc7\x96\x8f\xda\xa3\x72\x2d\xfa\xd4\x3f\x83\x08\xe3\xd8\xaa\xbf\x9c\x4f\xcb\x26\xe7\x32\x65\x3e\xa0\xe0\x31\x31\xf1\x3f\xd6\xf9\x21\x2f\xa1\xb8\xff\xb0\x38\x2d\x17\x62\xec\x7f\x40\xa6\x61\xe0\xa1\xa2\x2d\x36\xed\x3d\xfc\xbb\xaa\x77\x17\xa5\xc5\x28\xb4\x8d\x41\x6c\x49\x67\xc3\x8b\x7f\xf9\xdb\x80\x4a\x30\x9c\xe3\xc2\x97\xdd\x3a\x04\xa5\x88\x92\x74\x7a\x38\xa3\x4c\x43\xc2\x60\x38\x67\xbd\x1b\x0e\x55\x69\x9b\xfa\xa3\xb8\xeb\x97\x99\x06\x94\x4c\x11\xc1\xbd\xab\xfa\x9f\x7a\x10\x28\x79\x1a\x74\xdf\xf2\x1a\x3e\x08\xda\x64\x0d\xd1\xbe\x15\x23\x32\xcc\xbf\x15\xe7\xff\x9f\xb2\x37\xe9\x6e\x5c\xb7\xb6\xc7\xbf\xcb\x6f\x94\x41\x06\x20\x40\x82\xe4\x7f\x26\xc9\x72\x95\x5e\xb9\x51\x2c\x55\xd5\xcd\xcd\x7a\x4b\x0b\xcd\x81\xcd\x98\x22\x15\x92\xb2\x4b\xf9\xf4\xff\xc5\x03\x80\x9d\x68\xd7\x7d\x83\x94\x6f\x44\xb0\x03\xd1\x9c\x66\x9f\xbd\xcf\x56\xa1\xce\x17\x3a\xfc\xe5\x20\xe2\x47\xc1\xc4\xdf\x04\x19\xdd\x03\xa8\x30\xc4\x24\xde\xc3\x6e\xb5\xf4\xcb\x87\x7f\x38\x15\x85\x91\x83\x43\xe6\xeb\x63\xd6\x34\x57\xf3\x45\x29\x5b\xaa\x5d\xc0\xfb\xbd\x28\xce\x76\x3d\xf9\xc0\x87\xec\x56\x3b\xa5\x09\xb0\x81\xa2\xf9\x2c\x78\x07\xda\x35\x1c\x09\xea\xbe\x2f\xef\x36\xab\xc3\x6e\x71\xb7\xde\x1d\xd8\xe1\x69\xb1\xf7\x81\x66\xd0\x26\xc5\xae\x7d\x87\xec\x50\x0d\xcb\x63\x41\x1b\x99\x0c\xc5\xe0\xba\x41\x07\x84\x46\x96\x88\xc8\x11\x1f\x4d\x5e\x08\x78\x2a\x7b\x68\xde\x1e\xc4\x71\x36\xfa\x0b\x26\x88\x62\x7b\x83\xe2\xd9\x95\x41\x8e\xd2\x9b\x60\x58\x4a\xc8\x40\x99\x79\x12\xf0\x02\x23\x04\xae\x90\x2e\xd3\x84\xb8\xbd\xa1\x65\x0c\xa6\x1d\x3a\xce\xfb\x75\x13\xf4\x69\x4a\xfe\x27\x0c\x89\x52\xd2\xf3\x74\xfb\xf8\x8e\x35\xd7\x66\x9f\xdc\x10\x2d\xd1\xc3\x50\x03\x3e\xc3\x2b\x26\x09\x13\x40\x10\xc3\x98\x0d\x0d\x27\xdd\x7c\x58\x60\x16\x54\x33\xdd\xe5\x0c\x0d\x2d\x07\x99\xdb\x4f\xf7\x95\xc8\xda\x0f\x30\xaa\x9c\x18\x8f\x4e\x43\x65\x8c\xa8\xdd\xe5\xe3\xf2\x11\xd3\xa0\x4e\x15\x59\x18\x46\x85\x34\x96\xab\xd7\xef\x41\x53\xd4\x87\x61\xa1\xfd\xd8\x77\xe5\xb3\x45\x2d\xf9\x4a\x7d\xdb\xea\xb6\xac\x76\xa7\xb2\xa8\x61\x1e\xe8\x68\x58\xaa\x30\x44\x70\x2e\x34\x98\x41\xb1\x92\x61\x2a\xa6\xfd\x76\x8a\x7b\xd1\xf7\xa2\xc9\xf2\x9b\x1e\x60\xe6\x5b\x6a\x19\xf9\x84\x56\x01\xf9\x8f\xae\x52\xe7\x7c\x5d\x24\x65\x98\xa1\xa1\xe9\x03\x90\x79\x17\xac\x30\x61\xa0\x95\xdd\x74\x8f\x59\x71\x83\x9f\xfa\xc9\xf1\xae\xfb\x26\xad\x29\x8c\xae\x4d\x59\x34\x2f\x61\x32\x5a\x65\x4c\xa4\xa5\x74\x5c\xfe\x88\x15\xb4\xcc\x47\xdd\xe5\x79\x98\x70\x70\x11\x68\xc4\xea\x0d\xf1\x22\xbe\x4d\x4a\x14\xf5\x35\xb6\x9b\x79\x76\x5a\x61\xe2\x30\x0d\x3b\x3e\xc1\xa3\x40\x78\xf4\x80\x89\x6d\xd2\xc1\x71\x04\x10\xf8\xc0\x09\x3e\x92\x5b\x71\x1d\x09\xde\x30\x62\xf2\xf7\xf1\x7d\x38\xc7\xdd\x4e\x23\xc3\xc4\xa2\xd0\x3b\x68\x16\x0f\xfb\xe9\xf5\xb5\xa5\x3f\xbb\x2b\x9f\x1f\xa6\xb0\xf0\x69\x9d\xdc\x58\xfd\xd6\x16\x68\x4c\x5e\x2e\xa1\x1c\xed\x56\x61\xa3\x30\x4e\x9f\x66\xda\xc6\x1a\x63\x5d\xed\xdf\x76\xe5\x7b\x30\x09\x63\x04\x0b\xb4\xb3\x98\x77\x3f\x26\x14\x73\x65\x8e\x67\xff\x13\x5a\x38\x93\x80\x15\xaf\x95\x48\xd4\x3a\x2c\x8c\x34\x29\x31\xcc\xd6\x37\x23\xb7\x64\xed\xe3\x44\xa3\x7d\xd4\xa4\x81\xe5\x59\x55\x65\xf1\x06\x95\x8f\x67\xed\x4b\x64\xa2\x9c\xbe\x48\x4a\x19\x42\x6e\x2d\x2b\xe0\xd3\xea\xe1\x83\xa7\x4a\x43\x8e\xe8\xa0\x76\xec\x14\x7d\x28\xf2\x83\x72\x4a\x93\x86\x49\xe0\xb0\x6a\xdb\xb2\x78\x7e\x13\xf9\x13\x1c\xcb\xce\xe6\x36\x29\x04\x1e\xd2\x8f\x23\x71\xa3\xca\x7b\x81\x4c\xdc\xd3\xe7\x73\xee\xdb\xa2\xaa\xca\xf7\xd5\x63\xe7\x7d\x18\x11\xda\x24\xec\xb9\xa8\x9b\x81\x2d\xe4\x8f\x26\x29\xf2\xd0\xdb\xfe\xb6\x65\x77\xa2\x9a\xa2\x4e\x26\xab\x90\x24\x81\x35\x94\xa0\x6e\xbe\xa0\x83\xfe\x3c\x30\x1f\x8c\x34\x04\xb7\xd0\x93\xa8\x9b\x3d\x14\xf7\x59\x71\xee\xf9\x5e\x8c\x8a\x3b\x7c\xf3\x8f\xb2\xb9\xaa\x60\x32\x3a\x94\x96\x55\xa9\x04\xe3\xcf\xd1\x71\xc0\x9d\x07\xfe\x63\xb3\xbd\xcb\x64\x75\xfd\x8c\xbe\xa9\xd4\xe8\x17\x2f\x5c\x4d\xd0\x74\xf3\x1d\xee\x29\x46\x2b\x40\x79\xa5\x02\xde\x7b\x3b\x63\x2e\xe5\x37\xf9\x6a\xc0\x04\xc2\x22\xbe\x40\x63\x29\x7f\x7d\x5c\x40\x3f\x61\x8d\x70\x35\x5a\x0e\xac\x7f\x25\x09\x21\x31\x06\x48\x6c\x04\xed\x33\x66\x61\x49\x02\x62\xb5\xe2\x94\x57\x7c\xdf\x42\x65\xca\xea\x88\xc5\xda\x68\xec\x0f\x9f\x48\x92\x20\x90\x1e\x2b\xd7\x7a\x98\xb7\x4e\x20\x62\xa3\xa7\xed\xb8\xed\x1e\x5b\xc3\x34\xba\xd2\xdf\x27\x2d\xe3\xc4\x56\x36\xbf\x54\xe5\xfb\xc6\xec\xc0\x67\xe1\x1c\xc9\x81\x69\xa0\x72\x9d\xdc\x25\x15\x24\x61\x9c\xa1\xa5\x5e\x9f\x8f\xc7\xdb\x73\x73\xae\x1c\x9d\x58\x77\x3c\x0d\xb0\x56\xcf\x4e\xa3\x35\x02\xa1\xd4\xf4\x23\xb9\xb6\x21\x31\xb8\xe3\x1b\x91\xe5\xa0\xbf\x5d\xd4\x20\xcb\x22\x49\x98\x04\xc8\x7c\x59\x16\xf9\x65\x53\xac\x8f\x50\x3d\x63\x89\x53\x77\x98\x26\x61\xb7\x79\x94\x59\xd1\x21\x4d\x24\x89\x08\x37\x71\x37\x04\xe1\x0a\x64\x35\xe9\x89\x48\x24\xdc\xd1\xcc\xaf\x9b\x17\x17\x71\xfa\x6c\x86\x48\xc2\xb9\xc5\x95\x2d\xcf\xc5\x50\x5c\x42\x12\x9e\x12\xa7\x8f\x21\xea\x3a\x7b\x2e\xee\x5b\xbb\xfa\x4a\x6b\x52\x12\x2e\xac\x54\x49\x53\x3e\x3f\xe7\xe0\x79\x23\xc6\x3c\x21\xc3\xd5\x4c\x92\x98\x51\x11\xfa\xa0\x91\xd0\xba\x99\x4d\x3d\x8d\xdf\x2c\x4e\x34\xb0\x9e\xf8\xad\xde\x8a\x0b\xd2\x74\x60\x75\x42\x3b\x88\x16\xde\xd1\x95\x24\x4e\x01\xdd\x13\xab\x7f\x33\xe6\x52\x71\x4d\x92\x20\x95\xbd\xb7\xf8\x61\x56\xe3\x23\x23\xe9\x0a\x23\xea\xf1\xb3\x92\x24\xda\x52\xad\xd5\xd0\x60\x74\xdd\xaa\x5d\x2c\x7b\xb6\x8c\x0f\x06\x71\x9a\x28\x0c\x31\x09\x54\x5c\x5e\xff\x27\x60\x76\xa8\x05\xec\xef\xa3\xbf\x5d\x2f\xb6\xeb\x61\x27\x4f\xae\xd7\xcd\xcb\x95\x8d\x29\x89\x48\x23\x34\x62\x1c\x81\x6f\x33\x24\xf1\xb9\x66\xab\x95\x44\x68\x0b\xa2\x72\x98\xc5\xec\xbf\xa0\xaf\xa9\x76\x24\x91\x84\xc5\x1d\x69\x57\x86\xda\x29\x53\xaa\x14\x49\x54\x90\xc6\xd0\x89\x4e\xbf\xfa\x9e\xd7\x34\x46\x7e\x81\xdd\x64\xcf\x97\x44\x0b\xca\xc9\x88\xbc\x60\x10\x12\xec\xda\x30\xfc\x6e\x5e\x05\x30\xcf\xd4\x85\x4e\x17\xce\x61\x07\x4f\x67\xaa\x21\x86\x1a\x0f\x69\xb2\x82\xbc\x93\x5b\x18\x66\x85\x92\x9f\xad\xee\xbd\x86\x42\x8f\x43\x9f\x7f\x9f\xb6\x07\x0c\x58\x89\xa6\x81\xa2\x0b\x11\x0f\x6f\x1a\x90\x20\x05\x77\x53\x27\x17\xd1\x7a\xd4\xf5\x39\x6f\x44\xd1\xd4\xc3\x18\xb6\x0c\x08\xb5\x82\xba\x9d\x18\x76\x55\x1e\x27\x6e\xd6\xf8\xa3\x05\x24\xb6\xcc\x53\x37\x67\x91\x6f\x7a\xa1\x10\x19\x04\x81\xc4\xc8\x35\x86\x4b\xf6\xef\xd6\x0b\xf4\xc7\x38\x43\xf3\xfc\x8b\xc8\x85\x6a\x32\xf5\xc7\x27\x78\x64\x19\x04\x32\x8a\x63\xd4\x7a\xb7\xa6\xe5\xe3\x09\xc6\x69\x26\x19\x30\xc2\xb1\x10\x4c\x67\x6f\x34\xe2\x87\x80\x26\xcb\x0b\x8d\xf8\xa7\x69\x61\x19\xb0\x24\x66\x63\x26\x5c\x44\x6b\x41\x6b\xd8\x0c\x76\x9c\xd1\x1e\xf5\xa9\x8a\xa5\x0c\x98\x49\x04\xf7\x51\x5f\x91\x43\xb5\x72\xa4\x85\x6e\x73\x0b\x42\x16\x24\x56\x06\xa6\xb0\xc6\xc0\xf4\x11\x67\xe2\x3e\xed\x59\x32\xb2\x2e\x45\x53\x9d\x5b\x8f\xa5\xcf\xc4\x8f\xef\x1f\x0a\x19\xb8\x3a\xbf\x85\xe5\x0b\x47\x50\xc4\x28\x19\x2d\x83\x48\x30\x57\xd6\x6e\xb9\x0d\x0a\x9f\x9f\xff\xe0\x23\xf3\x80\xe1\xca\xfe\xa3\xcc\xf4\xa4\x7a\x74\x36\x07\x2b\x03\xce\x99\xec\x39\x65\x16\x96\xa0\x70\x3c\xd6\x03\xae\x28\x4e\xe4\x46\xf8\xe7\xe2\x26\x72\xb5\x02\x08\x84\x43\x8c\x0c\xf2\xa3\x62\xbc\x7c\x1c\x0f\x90\x41\x4c\x05\xe2\xb1\xa4\x28\xd4\x48\xe8\xa9\x3d\x64\x10\xa4\xd4\x1a\xb4\xe7\x7a\x7c\x08\x24\x16\x05\xa0\x4f\xb4\xe8\xdc\x79\x77\x34\xa5\x96\xde\xfe\xe0\x0a\x91\x7b\x86\x5e\x19\xa4\x22\x40\x7c\x50\x05\x35\xd8\xe4\xc8\x46\xf7\x29\x23\xdf\x48\x25\x88\x28\x69\x57\x9d\xac\x78\x76\x4c\xfd\x73\x4b\x79\x32\xe9\xb2\x54\x73\xec\x0e\x3d\xa4\xf8\x92\x41\x0a\x49\xe8\x96\xbb\x31\x41\xbc\x0c\x44\x18\xe0\x34\x52\xc7\x73\x7e\x2a\xdf\xe9\xe4\x51\x44\x44\x89\xf6\xee\x19\xf2\xb9\x2d\xcf\x55\xd1\xc9\x34\xc9\x40\xf2\x14\xd1\x98\x03\x99\x93\xd1\xc4\x93\x89\xc2\x60\xb4\x1b\x73\x2b\x64\x8c\xaa\x27\x5f\x51\x82\xd4\x81\xa7\x78\x82\xae\xb3\x94\x14\x1e\x72\x81\x69\x99\x5d\x47\xd4\x27\x03\xa5\x05\xce\xd6\x2f\xed\xc0\xac\xe1\x61\xf2\xdc\x9a\x06\x82\x7a\x91\x31\x8f\x48\x93\x01\xd0\x28\xec\x35\x58\xc7\x15\x01\xc3\xfe\xf5\x33\x0d\x14\x18\x27\x81\xd0\x1a\xb8\xed\x17\xfd\x22\x8e\x30\xe0\xb6\x97\x01\x68\xc0\x24\xc0\xdd\xe3\xe3\xfd\x66\x41\x0f\x8b\x9b\x9b\xa7\xee\x98\x49\xd1\x0b\x7c\x80\x4b\x55\xd6\x4e\x38\xce\x1f\x34\x10\x05\x83\x78\x4f\x76\x84\xba\x11\xc7\x6b\x5d\xb2\xd1\x9b\x51\xa2\x98\xb1\x88\x3c\xf5\xda\x8e\xaf\x73\xa1\xc6\x8e\x86\xa4\x41\x94\xa0\xb9\xd6\x88\x5f\xb7\x00\x4b\x8f\xba\x94\xd4\xf3\x85\x1f\xcb\x37\xf8\xdb\x79\x8a\x10\x48\x7c\x2b\xee\x72\x70\x97\xba\x81\xe3\x42\xa9\xee\x74\x95\x00\xeb\xd5\x58\xda\x9e\x58\x5e\xbe\x8a\x62\x2e\xad\x28\x29\x13\x11\x12\xd8\xd6\xef\x59\xa3\x5e\x6c\x00\xb5\x27\x95\x95\x34\xa4\x36\xfa\x87\x48\x99\x1b\x28\xb0\x9e\xa9\x83\x5e\x4a\x1a\x09\x2e\xd3\x1e\x12\xec\x6c\xc1\x0f\x0c\x47\x1a\x29\x83\xd1\xc0\x6d\x56\x34\x8f\xda\x5f\x83\x47\x9a\x45\x9e\xe5\x28\x2b\x9e\xd7\xc5\x73\x56\xf8\x2f\x47\x63\x12\xa3\x99\x95\xa9\x32\xa8\x9b\x01\x2d\xaa\xa4\x71\x62\xa8\xa3\xda\x46\x78\x6e\x77\xc5\x24\xa0\x58\x97\x5b\xc0\xbb\x55\xfa\x9e\xa9\xb0\x90\x34\x61\x96\xd7\x7e\xc4\x72\xdc\xae\x9e\xb7\x83\xf5\x71\xd0\x17\xa9\x0a\xed\x2c\xf4\xfa\x0a\x3d\x81\xee\xbe\x5c\x9e\x2f\x28\x7a\xe3\xdb\x1a\x88\x6c\x75\xa2\x75\x21\xef\x4a\xf5\xda\x0e\x9e\x75\xd1\x3d\xa4\x10\x89\x72\x28\xc4\x9f\x20\x4e\x65\x61\x3d\xa7\xc9\x30\x91\xb1\x01\xe5\x35\x1a\x8f\xa7\x06\x0e\x34\x18\x4d\x5e\x8a\x22\xa3\xce\x14\xb4\xc4\x65\xa7\x49\xa0\x4b\x52\x2d\x65\x6c\x3c\x2b\x13\xb5\xc0\xfb\x0f\xbe\x91\x61\x1a\x0b\xd3\x96\x99\xa5\x35\xff\x4d\xb2\x74\x36\x6a\x2c\xa9\xd1\x0c\xaf\xd2\xf6\x89\x13\xb1\xff\x63\x10\x91\x90\xd4\x40\x9c\x04\x5e\x5a\xa8\x79\x99\xae\xf9\x8c\x84\x01\x4a\x15\x5c\x71\xd6\x49\x46\xa2\x14\x6d\x3b\xa1\x14\xfa\x6b\x23\xcb\x86\x11\x29\x10\xe2\xfe\xe7\xd3\x1f\xb6\x92\xf9\xb0\x7a\x7c\xd8\x3f\x2d\x56\x7b\xdf\x02\x97\xac\x61\x08\xe6\x3c\x47\xbe\x3e\xee\x16\xc6\x82\x38\x92\x03\x01\x9e\x3c\xab\x9b\x4d\x31\x33\x4c\x18\x4b\xb4\x20\xbd\x20\x40\x59\xb8\x42\xad\x3e\x59\x25\x19\x33\x10\xfb\x12\x75\x1b\x8a\xb9\xae\x81\x93\x2c\x24\x56\xa7\xea\xe6\xe7\x50\x31\x42\xb2\x90\x89\x80\x79\xc1\x69\xdd\x05\x27\x87\x37\x08\x53\x86\xe6\x62\x5e\x76\xae\x26\x8b\x22\x81\x9b\xae\x14\x35\xea\xf2\x76\xbf\xf3\x00\x41\x0f\x3d\xa8\xd4\x6e\x66\x13\x57\x99\x45\x5c\x63\x1a\xe3\x84\xc3\xe7\x5b\xd6\xeb\x18\x48\x16\xc5\x96\xde\xc7\xc2\xa0\xbe\x96\xe7\x1a\x56\x79\xeb\xd1\xa9\xe9\x45\x62\x13\x8e\x98\xae\x37\xc5\x5b\x36\xc8\x1b\x8c\xdd\x0f\x16\x29\x8d\xa4\xd6\x5f\xa0\x80\x3a\x9b\x6c\x49\x8c\x13\x15\x3b\x8b\xd7\xe7\xcb\xeb\x45\xa1\xf7\x2f\x90\x55\xce\x12\xea\xc6\x05\x8f\x6d\x8a\xf3\xb9\x8b\x7b\x0f\xc1\xa3\x92\xc5\x24\xc4\x11\xfb\xf3\xe7\xcf\xdf\x55\xce\x49\x16\x27\x16\x8d\xba\xde\x7f\x75\x25\xd1\x9e\xd7\xd8\x35\x48\x5b\xd7\xbe\x1d\x85\x65\x55\x95\x84\x8e\x3e\x5f\x2a\x41\xd9\xd2\xcf\x7b\x61\xf1\x54\xae\x4c\xde\x37\x10\x81\x88\x3b\x0e\xb5\x8d\x46\x92\xed\xfe\xd2\x02\x78\x4c\x3c\xcf\x54\x0d\x8e\x5d\xd4\x1d\x94\x91\xa5\xf8\x6b\xfb\xe9\x6f\xe3\xae\x54\x24\xc6\xc8\x9a\x5d\xea\x9f\x40\x5d\x94\x63\x54\x06\x3d\x58\xf2\x99\x8a\xd2\x01\x80\xf1\x31\x9f\xf3\xcd\x98\x8a\x6c\x4a\x55\x68\xed\xc8\x09\x9f\xac\xbe\x87\xce\x2c\x7e\x78\x76\x71\x61\x3a\x92\x56\x2c\x1b\xb5\x4e\x1a\x70\x51\xe8\xdf\x1b\xde\xf3\xa9\x44\xc9\x74\x1a\x26\x91\x27\xe6\xc1\x9e\x18\x32\x8f\x49\xa6\x95\xc0\xf0\x4a\x25\xba\x85\x97\x69\xc3\x30\x71\x84\xb9\xf4\xcd\x7c\x20\x52\x32\xe0\x31\xba\x70\x3e\xf9\xf9\xa1\xaa\x85\x6b\x6f\x1c\xb9\xa9\x0f\x4c\xb6\xab\xfd\x16\x95\x46\x26\x33\xc0\x48\x96\xd8\x0a\x2a\x79\xbe\xec\xce\xe3\x32\x68\x19\x92\xd0\x82\x1a\x2d\x89\x71\x5e\x5e\x16\xcd\xdc\xce\x1d\x06\x51\x8a\x1a\x14\x6f\xa5\x15\x26\x6e\x9d\x84\xdf\x71\xbd\x0d\x56\x88\x30\x90\x91\xa1\x9e\xd5\xb3\x11\xb9\x5b\xa5\x67\x54\x31\x64\x48\x03\x63\x89\xda\x2b\x80\x06\x26\x03\x2b\xa4\xa1\x21\x6e\x03\xda\xb6\x73\xda\x72\xa2\x4c\x9d\xaa\x7e\x84\x85\x34\x96\x56\xc5\x1e\x6d\xaa\x6e\x39\x5d\x95\x55\x01\x15\x82\x75\x9d\x21\x72\xbd\xba\x86\x34\xb1\x42\x92\x38\x37\x6e\xcb\xea\x27\x64\xd3\x87\xd5\x06\x97\xf7\x76\x2d\xfb\x09\x19\x32\x3f\xb6\xbe\x45\x79\x6e\xbe\xfd\xd3\x05\xdb\x65\xc8\xc2\x2e\x8e\xfc\xbd\xd6\x5b\xa8\xbe\x9e\x0b\x5d\x21\xed\xdb\xe4\x7a\xcc\x08\x9b\x9f\xdd\x2d\xce\xdd\x72\x11\x86\x01\x0b\x1d\x64\xe0\xb1\x75\x7c\x9f\x32\xf5\xc2\x6e\x26\xdf\x32\xa4\x56\x46\x05\xab\x8a\xdb\x25\xf7\x20\x82\xb0\xbb\x02\x4b\xd8\x5f\x52\x38\x1c\x98\x7d\x21\xa7\x1a\xb7\x21\x69\x91\x07\x1f\x0e\xc7\x90\x33\x1a\xb8\x08\x31\x7a\x57\xed\x3e\x7b\xad\x55\x29\x43\x1e\x71\xd1\xd3\x46\x2e\xea\xba\x54\x59\xbb\xf6\x8f\x32\xe0\x32\xe4\x3c\x34\x5e\x5d\xab\x74\xac\x32\xe3\xeb\x88\xd8\x32\x39\xa3\xe0\xf1\xe0\x83\x71\x61\x75\xff\x0c\xb4\x06\x66\x21\x4e\xf5\x4b\x69\x03\x55\xcb\x8b\x8d\x23\x8c\x1f\x28\x26\x04\x03\xa6\xce\x35\x44\xc3\x69\xb0\x7a\x86\x31\x89\x7c\xb8\xfc\xf1\x0d\x2a\xd1\x05\xe4\xc2\x38\x48\xb5\x5b\x18\xff\xa7\xb5\xbb\x2f\xd3\x2b\x47\x01\x86\x5c\xca\x22\xbf\x0c\x73\x82\x23\x51\xdf\x4f\x21\x11\x32\x8c\x13\xa3\x9c\x40\xc9\xf7\x5a\xf7\x60\x20\x19\xc6\xa9\xd5\x9e\x6e\x3b\xfa\x4b\x66\xae\xe5\x3a\x86\x1b\x48\x18\x6b\x1b\xdb\x7a\x02\x91\xb7\x2b\xc5\x93\xb8\xec\x2b\xa1\xfa\x4d\x20\x8c\xb5\x90\x2e\xc0\xd0\x6e\x11\x63\x7e\xd0\xc9\x53\xa5\x94\x60\xbc\x0a\x59\x9d\xdb\x96\xa3\xc8\xf4\x27\xa3\x24\x8d\x2c\x4f\xf9\x16\x90\x95\xcf\xdf\x3b\xe5\x06\xd3\x00\x9b\xba\x46\x16\x29\x5b\x31\x3f\xb9\xa7\xb0\x32\x32\x2f\xa2\x9e\x48\x52\x8e\x4d\xc1\x30\x55\x14\xb1\x97\x2e\xab\xbb\x73\x25\xb4\xbf\x35\x2c\xe7\x3f\x40\x6a\x92\xb0\xc3\x83\xde\xfc\xb6\x52\x5c\x86\x82\x10\xd4\x8b\x3f\xdb\x12\xbe\x0e\x03\x26\x43\x41\x89\xa1\xbe\x44\xdf\xf2\x8f\x63\xd5\x92\x23\xd2\x1e\x5f\x25\x24\x58\x1b\xe0\xb6\xf9\x91\x20\x9d\x6b\x22\xe3\x84\x24\x1d\xcc\x6a\xdd\xbc\x78\xc6\x26\x7f\x3f\x15\x5a\x40\x3e\x4a\xc8\x21\x87\xd8\xf8\xd5\x94\x8c\xac\xad\x53\xe6\xba\xaf\xe6\x93\xa1\x52\xb6\x6c\xcb\x45\xee\x8f\x27\x51\x64\xfd\x51\x1d\x47\x3a\x19\x29\x48\x1d\x45\xd6\x9a\x93\x6f\xb8\x21\x67\x93\x08\x5a\xa8\x53\x82\xcb\xd9\xc3\xe2\xe1\xb1\xbb\x86\x34\x1e\xc4\xbe\x03\x55\xc1\x74\x91\x00\x62\x6b\x0c\x3d\x20\xc3\x46\x2a\xeb\x69\xab\x44\xcb\xce\xc9\xb8\x81\x37\x7f\x75\x23\x39\x62\x75\xef\xfe\xf8\x36\x9c\xc9\x11\x0d\xc2\xd8\x0c\x98\x4d\x90\x50\xab\x69\xae\x53\x40\xbf\xf3\x3d\xfc\xf5\xa2\xc0\x53\x7d\x5a\x0f\xe7\x47\xd9\x80\x05\x5d\x7c\x60\x8f\x44\xd4\x50\x8c\x5e\xbd\x5b\xad\xd8\x91\x45\x18\x31\x43\x63\x87\x0e\xd8\x14\xb3\xf8\x75\x19\x85\x24\x09\x46\x10\xa9\x2b\x35\x39\xdf\x30\xd2\x68\x4e\xa0\xb2\xd1\xbe\xdc\x41\xa1\x57\x2f\xa2\xc7\x29\xc9\x28\x62\x91\x4c\x7b\x66\xbc\x9f\x00\xaf\x3b\xe4\xb1\x1d\x5f\x28\xd2\x14\x53\x7f\xef\x65\xf5\x7a\x53\x16\xd3\xc3\x3c\x88\xad\xbc\x6e\x91\x75\xb0\x90\x45\x55\xcd\xad\x01\xd3\xd5\x20\xe2\x2c\x60\x43\x01\x84\x25\x7c\xb4\xe2\x44\x71\x68\xb1\xcd\xc7\xcc\x01\x0a\xf7\x3d\xba\x52\x46\xb1\x10\xa9\xe7\xc4\x15\x03\xd9\x4f\x17\xcd\x18\x99\x0f\x51\x6c\x34\x26\x92\xe1\x98\x21\x0b\xf2\x07\x77\x4c\x22\x1a\xba\x44\xc4\xa7\xa9\xa6\x28\xd1\x91\xf6\xc3\xa0\x82\x63\x76\x3e\xae\x44\x35\x37\xe1\xa2\xc4\x58\x7d\x2a\xeb\xb4\x38\x30\xdf\xb8\x49\x1a\x00\x96\x2e\xd9\x11\xbf\x2f\x6f\xcb\xea\x19\xf6\x2f\xf0\x00\xbf\x9a\x81\x64\x90\x8c\xd2\x50\xe1\xe6\x73\xd0\x2e\xf3\x89\xe1\x58\x27\x49\x72\x44\x65\xd7\x39\xa0\xbd\x8c\xd2\x54\x22\x5b\x1c\xb2\xd9\xa8\x31\x47\x90\x8c\x04\x63\x23\x4d\x8a\xdb\xb2\xba\xcd\x8a\xd6\xb1\x19\x32\xe8\x4c\xba\x4a\xa4\x0c\xf3\x2b\xaf\x99\x03\xb4\x76\x7d\x2d\xb4\x55\xa5\xad\xa0\x86\xea\x0d\xb4\x9d\x77\x2f\xa2\x7a\xbe\x4a\x82\x44\x02\x22\xaf\x94\xa1\xfa\xe8\x5c\x24\xb9\x55\x4f\xb4\x20\x81\xba\xf7\x6f\xdd\x71\x45\x6c\x30\x72\xf9\xb8\x3f\xac\xef\xd6\xf7\xeb\x87\xfd\xc1\xdb\x3c\x91\xd6\x31\x41\xf3\x25\x7b\x46\xd7\x7d\x04\x85\x93\x11\xd0\x14\xa1\xd4\x47\xf1\xeb\x58\x16\x70\x39\x4d\x0e\x47\x2c\xf6\x0e\x2c\xae\x83\x55\x5f\x13\xd2\x5a\xb3\x21\x0e\x49\x77\x52\x36\x91\x35\x92\x91\x61\x04\xa9\x40\xd7\xdf\xbe\xad\x7a\xa5\x1a\x19\x19\x6d\x91\xe3\xf2\x7c\xd9\x32\x57\xec\x2e\x79\x10\x71\xea\x8a\x4d\xd7\x85\x2e\xab\x1a\x2b\x85\xeb\xb1\xed\xcb\x03\x2d\x51\xdb\xaa\x6e\xca\x53\x6b\xea\x8f\xba\x90\x07\x26\x42\x38\xa1\x03\x17\x59\x4f\xdf\x32\xb5\x4d\x5a\x52\xa6\x10\xc4\xbf\x6b\xaa\xec\x74\x1a\xa7\x11\x39\xe5\xd2\xe7\xa8\x7f\x66\x1a\x99\x1f\x5b\x03\xf9\xb6\xac\x46\x9b\x14\x67\x24\x44\x99\xa0\x9b\xc5\x76\x3b\xba\x00\xa3\xc2\x0b\x2b\x6e\x5a\x33\xe2\x3e\xfb\xd5\x6d\x4b\x3c\x84\x38\x86\x8e\x82\xad\xe3\xe4\x1a\x72\x97\x4a\x1e\xb1\x38\xb2\x7b\x17\xe8\x7b\x24\x65\x1c\x77\x2e\xe7\x2c\xc0\xe2\x5e\xe4\x33\x19\xf7\x11\x0f\xb5\x72\xfa\x75\x4f\x65\x0e\xb7\xe5\xb8\xd6\x60\xf4\x0a\x9c\x43\xd8\x17\xf0\x7d\xed\xc7\x1d\xe7\x09\xc1\xb8\x8e\x8f\xda\x8c\x33\x1d\x9c\xab\x30\x68\xef\xdf\xe5\xbd\x7b\xee\xf6\x5b\x4c\x97\x4f\x3a\x9c\x6b\x42\x7b\x3f\xc2\x4b\x56\xcf\xce\x27\x9e\x98\x04\xa1\x53\x16\x13\x82\xd5\xfe\xd3\x1c\x07\x4f\x01\x74\x4f\xb6\xb6\xcd\x45\x61\x45\x2c\x3f\x44\x69\x8e\x5e\x5b\x72\x86\x95\xcf\xf9\x59\xbd\x5e\x76\xad\x07\xb4\x16\xc3\x08\x3e\x97\xa9\xc0\x7c\xaf\x39\xab\xd7\xac\x78\x7e\xed\x00\xd7\x92\x2b\x16\xa9\xf6\xab\xdf\x9f\xe5\x28\x01\xc2\x15\x57\x28\x71\xb1\x5b\xdc\xad\x0f\xf7\x9b\x87\x9e\x1b\x44\x72\x25\x05\x4e\x96\xd6\x84\xae\x41\xd4\x36\x6b\x0b\x30\xbe\x82\x26\x11\x7e\xb9\xa3\x6e\x86\x48\x47\x7f\x94\x5a\x71\x83\xdb\x4e\x1f\x39\xf1\x47\x34\xf8\x00\xd5\xc8\x29\x1f\x77\x19\xd0\x14\x03\x19\x9d\x2a\x68\xbb\xdb\xcd\x04\x1b\x38\xb0\x40\x5a\x8d\xf4\x4e\xdd\xeb\xbb\x23\x1c\x9e\x22\xee\x25\x87\x38\x22\x16\xf7\xe7\x0d\xd7\xd9\x4b\x26\x80\x9d\xa6\xcb\x6d\x55\xbe\x65\x1a\xee\xe1\x58\x56\x0e\x87\x3c\x64\xc4\x9c\x88\xcb\x5d\x6d\x9a\x1c\x04\x49\x3a\x7d\xbd\xd6\x94\x6f\x97\x01\x7f\x4c\x13\xdc\x3d\x5c\x74\x7c\xd7\xc0\xe9\x03\x74\x09\x07\x9d\x22\x84\x7f\xb7\x5f\x8e\x3e\x01\x80\xc4\x34\xc1\xd7\xec\xf9\x05\x6a\x54\xe3\x9a\xe0\x64\x46\xd7\x89\x49\x18\x61\x84\x65\xd9\xc5\x3b\x63\x92\x02\x92\x17\xff\x84\xec\xa1\xfb\x4d\x06\x18\xcb\xab\xc5\x9b\x93\xbe\x1b\x8e\xc7\x98\x28\x83\x9f\xd6\x64\x55\x6d\xf5\xaf\x57\x65\x7d\x2c\xeb\x3e\x7c\x1d\x07\x24\x44\xeb\x19\x0b\xb2\x9d\xbf\xee\x0f\xf1\xd4\xd3\x16\x96\xa7\x1f\xe2\x9c\xe3\x8e\x3d\xfe\x02\x31\x15\x01\xfa\x37\x4e\x1f\xec\xc6\x32\x99\xe3\x82\x3e\x5a\x3e\xe2\x90\x84\xc8\xbd\x67\xdd\x07\x97\x61\x98\xf9\xf2\x71\xc8\x53\x2c\x95\x3c\x66\x05\x7a\xba\xce\x06\xee\x69\x5d\x64\x3b\x34\x90\x95\xf8\xe6\xe6\x7f\x6e\xf6\x3d\x47\x95\x8c\xa3\xc0\x32\xd4\x23\x7a\x71\xff\x52\x95\x05\x3c\x6d\xc7\x7d\xc2\x03\x8e\x76\x8a\x79\xb7\x2e\x30\xd2\x9b\x0d\x83\xae\x31\x77\x9c\x6e\x8e\x1f\xcd\x52\x20\x8c\x3f\x0f\x4f\x42\xcf\x9d\xb4\xbc\x20\x34\x00\x0a\x05\xab\x52\x4f\xdf\x3a\xa6\x14\xeb\xef\x3a\xfa\xa7\xc9\xcb\xc6\x31\xc3\x20\xe2\x4f\x51\xa0\xec\xda\x6f\xd5\xc7\x65\x9c\x84\x80\x51\x9c\x9d\x30\xf0\xf8\x5e\x0c\xf6\xce\x38\x49\xe3\x88\x0c\xa5\xaf\x72\xeb\x0a\x4d\x6e\x2a\x98\x4b\x23\xbc\x64\x75\x6b\x5c\x57\x35\x2e\x71\xfe\x68\x62\x8c\xa3\xe1\xe8\xa2\xb1\xb3\x76\xa7\x2c\xcb\xdc\xcf\x9f\x58\xa6\x16\x80\x65\xa9\x7e\x71\xec\x53\x42\x03\x7f\x51\x69\x6c\x34\xbd\x3d\xc7\x31\x2e\x4c\x7a\x4a\x49\xa3\x4c\xdf\xeb\xce\xa4\xe8\x06\xa3\x26\x69\xd8\xd3\xd2\x6d\xcb\x72\x82\xc4\x88\xb5\xe0\x03\xe6\x64\x4b\x0f\x5d\x5d\x4e\x4d\xd9\x21\xb2\xe7\x76\xaa\x58\xab\x08\x57\x64\x5b\x00\xea\xa8\x2e\xdd\x31\x48\x13\xf4\xf4\xc4\xe9\x04\x85\xee\xab\xd5\x12\xd7\x0d\x6e\x9d\x8c\x4d\xac\x7c\x5d\x0b\xe2\x12\x7a\x6f\x20\x36\xa9\x05\x3a\xe4\xed\xf3\xd4\xfb\xea\xdc\xbc\x7c\xf0\x59\x8d\x09\x49\xd8\x83\xb7\xaa\x7a\x2b\xaa\xe6\xf2\xa3\xc3\x4c\xca\x84\xa4\x14\xb3\x0d\x67\x47\x1d\xf9\x64\xad\xbf\x45\xa1\xdb\x55\x7d\xc0\x2c\xd4\x36\x65\x09\x74\x7c\x01\x6d\x7f\x8e\x7b\x2b\x21\x46\xa8\x9e\xb7\xe0\x47\x56\x8b\x0f\x1d\xf9\x29\x90\xf6\x53\xc7\x3e\x21\x46\x21\xf0\x12\x72\x9f\xca\x4c\x02\x11\x59\x3c\xad\x03\x2b\x51\x07\x56\xa2\x0e\xa4\x44\x27\x60\xa5\x24\x90\x31\x46\x83\xeb\x97\xf2\xfd\x07\xd2\xa9\x8e\x1f\x3e\x50\x02\x71\x6e\x9d\x63\xa4\x8f\x59\xb1\x85\x51\x55\xa0\x6b\x4a\x23\x86\x05\xfe\x03\xdc\xed\x97\x4a\x14\xd3\xee\xa0\x06\x88\x97\xca\xdc\x34\x70\x9c\x97\xfc\x1b\x8d\x9c\x76\x05\x40\xc8\xdb\xad\x38\x2b\x18\x96\x5a\xcb\x24\x94\xa0\x5c\x10\x79\xbf\xb9\x5f\x1f\xf6\x8f\x87\xfb\xc5\xb7\xf6\xef\xfd\x62\xff\xb8\xde\x8d\x57\x93\x24\x04\x2d\x9d\x4f\xf4\xf4\xf0\x65\xf2\x68\x51\x1c\xa2\xa3\x08\xbf\xb2\xba\xb1\x36\x7a\xbd\xbc\xe0\x84\x1d\xf7\x1a\x8f\xa3\xc4\x4a\xcf\x15\xba\x7c\x67\xae\xca\xc4\xd6\xd1\xf5\x20\xc1\x84\xc7\x9d\x2e\xd1\x0d\x18\x40\xdc\xe5\x84\x7b\x59\x26\x71\x20\x11\xc4\x20\xac\xd7\x3d\xff\xa9\xe3\x30\xa2\x7d\x45\x8e\xd7\x95\x91\x49\x0c\x56\x9d\x12\x54\xb9\xc3\xb4\xf6\x6d\x6f\x81\x26\x09\x4d\x18\x1d\xb0\xd9\x3e\xc1\x1b\x20\x69\x6c\x1f\x6b\x4c\x52\x92\xe0\x9e\x94\x75\x2a\x36\x23\xdf\x24\x49\x99\x55\x45\xb4\x42\x63\x87\xda\x2b\xec\x77\xcc\x75\xe1\xff\xce\xc8\xc9\x76\x27\xdb\xa7\xcb\x54\x89\x01\xf3\xb1\x01\x9a\xa4\x91\xb1\xe5\x95\x8d\x78\xee\x8b\x3a\x65\x92\x8a\x04\xf5\xc1\x11\x86\x32\x32\xaa\x93\x54\xda\x2c\xa0\xa7\x86\x98\x31\x8b\x3f\x98\x2c\x82\x69\x0f\xff\xdb\x6e\xac\xa8\x41\x38\xda\xad\x12\x19\x0a\x1e\x74\xbb\xe6\xf8\xbe\x5a\x1a\xa4\x0d\x2c\x4f\x16\x6a\xb9\x83\x42\x2f\x2f\x9e\x8a\x7f\xe2\xa6\x7e\xa6\xbb\xef\xae\x07\x54\x20\xbf\xc1\x3b\x64\x2b\x71\x1a\xe9\x54\xca\x04\x38\x41\x38\x43\x79\x6e\x4e\xe7\x46\x4e\xc6\x1e\x70\x83\x5f\xc4\x91\xd4\x7c\x40\x8d\x21\x13\x10\x29\xc4\xdd\x4a\x79\x06\x2f\x6a\xf8\x41\x6b\xa5\x31\xb3\x5f\x65\xcf\x2f\x0d\x9b\x0c\x51\x00\xab\x20\x84\x86\xcb\x4d\x36\xa6\xa5\x9e\x5c\xc8\x10\x70\xce\xee\xb9\xf5\x9b\xe6\x48\xc9\x64\x62\x4c\x2c\x3d\x04\x71\x49\xfe\xd6\xfd\x6a\x2d\x76\xa1\xb5\x5d\x96\x07\x5b\xe1\x58\x54\x4f\xa6\x24\x88\xb9\x19\x14\x9a\x3e\x94\x15\x02\xef\xad\xbc\xf5\x1c\xae\x5b\xa6\x84\xd9\x49\x54\x43\x73\x5f\xea\x0f\xf8\xcd\x65\x4a\x22\x8e\x41\xb9\x73\x6d\xcb\xd5\xae\xf3\xe9\x69\x10\x5b\x5a\x5d\xbf\xf9\xaf\x8b\x26\xab\x60\x26\xf6\x94\x06\x8a\x46\xce\x7a\xd9\xb5\x2e\x48\xbb\x98\x7c\x30\xc9\xd3\x40\x81\x57\xd5\xf2\x32\xed\x33\x8d\x00\x70\xe4\x88\x21\x54\x39\xa5\x24\xf0\xa3\xdb\x86\x79\x9d\x10\xfc\xfe\xa5\x82\xfa\x65\xc0\x65\xe6\xdb\x6b\x66\xc5\xe2\x44\x55\x65\x50\xed\x9a\x6a\x18\xc7\x4b\xa9\x61\x98\x9a\x38\x8d\xc7\x8c\x3b\xca\x88\x95\x43\x78\x2b\xdd\x32\x3f\x57\x6d\x26\x53\x46\x23\x7b\x8f\xf3\x65\x52\x84\x31\x93\x1f\x4e\x43\x1a\x23\x84\xa9\x03\x5b\x0f\x45\x23\x64\x1a\xc6\x96\x40\xc1\xda\x24\xbb\xa6\x35\xc5\xae\x0a\x77\x65\x1a\xa6\x76\x3b\xc3\xd2\xb5\x9b\x32\xcf\x45\x55\xf7\x6e\xad\x2d\x2f\xc9\x27\x9e\x40\xc0\xc9\xdf\xed\x1f\x7f\x11\x49\x10\x28\x58\x01\x7a\x28\xad\xb1\xd2\xee\x76\xa3\xc7\x8d\x62\xc9\xdd\xec\xda\xf9\x12\xfc\x47\xe3\x68\x93\x35\xba\x2d\xdb\xaa\xbc\x29\x55\x8f\xfc\x69\x97\x3b\x66\x13\xf9\x5e\x6d\x64\x2b\xd4\xeb\xb4\xdc\x5d\xa6\x3c\xb1\x56\x79\xfd\x52\x56\x1e\xa0\xd2\xf3\xe8\xc9\x34\x0e\x2c\x2b\xc5\xa1\xe9\xe8\xa5\xba\x43\x90\x44\xbc\x0f\x28\x0f\x85\x0e\x64\x9a\x44\x96\xaa\x01\x7e\x9d\xa0\xca\xda\xed\x68\x5f\x5a\xa2\xff\xf1\xfd\x53\x12\x28\x57\xc6\xef\x98\x7b\xeb\xe5\xe5\x49\x14\xaf\x9f\x57\x6d\xca\x34\xa5\x36\xa3\xf5\xf5\xc7\x9f\xe3\xaf\x97\x72\x83\x35\x4c\xff\x39\x8b\xca\x23\x17\xa6\x15\xea\xa3\x5c\x6d\x9a\xa6\x41\xa4\x3d\x95\x40\x6b\xe6\x0e\x49\xe0\x65\x2a\x04\x37\x89\x77\x97\xab\x31\x36\x2f\x15\x42\xa0\xb4\x9c\x78\xeb\xda\x4b\x29\x31\x96\xdc\x57\xb4\xf6\xdb\x51\xaf\x4a\xf1\x13\xb2\xc9\x78\x92\x3a\x42\xff\xc4\xe1\xfb\xbe\x8a\x42\xf7\x10\x8e\x54\x11\x2b\x76\x6c\x2d\x9e\xa7\x72\xc0\x53\xe7\x5b\xf0\x18\xcb\xb1\xb6\x73\x78\x56\xdf\x26\x16\x7d\x19\xd8\xdd\x40\x8b\xba\xbb\x8d\xa0\x18\x28\x75\x92\xe9\x57\x1f\x61\xfc\xc8\x10\x84\x48\x51\xec\xcd\xcd\xea\x3c\x5d\x07\x21\xb5\x4c\xd2\x08\x7e\x84\xa6\xe9\x9c\x9a\x14\xb4\x45\x8e\x29\x61\x2b\x46\x6e\xb3\xfc\x43\xfe\xa8\xc9\x5b\x98\xd8\xe6\xc5\x8e\x87\xb3\xd7\xbd\xb0\x05\x6a\x1b\xed\x71\xcf\xa9\x49\x62\xe1\xd2\x39\x0f\x00\xd6\x27\x6c\xcd\xea\x49\xa7\x19\x13\xa1\x45\xbd\x50\x42\xc3\x31\x53\x1f\x90\x43\x4a\x41\xc2\x10\x27\xca\xe9\x50\x0f\xe0\x2c\x53\x9e\x86\xc9\x39\x32\x45\xd2\x7d\xaf\x2f\x39\x48\x48\x8a\x80\x45\x58\xe7\x04\xa2\x2a\x40\x4f\x0a\x38\xa5\x08\x22\xc2\xb8\x87\x9f\x65\xfe\x24\x2a\x2c\xa5\x6c\xeb\x28\xdc\x5e\x8d\x00\x41\x85\xf0\xa0\x01\x0c\x6d\xcf\x84\x56\x04\x55\x96\xa1\xc6\x95\xc8\x5b\xbd\x2f\xb7\x87\x6d\x2b\x30\x19\x4a\x09\xff\x6d\x5c\x4f\xe7\xff\xce\xfe\x5f\x77\x61\x46\x12\xad\x7b\x11\x90\xe1\x62\xed\x47\x97\x88\xa9\x03\x98\x20\x4d\x9c\x85\xe7\x65\x79\xd6\xa7\xca\xc7\xe3\x4b\xc4\xa0\xd0\x9d\x59\x9e\xff\x6b\xe3\xea\x99\xc8\x77\x4d\x3b\x30\x9f\xfd\x7c\x17\x09\x0f\x91\xc8\xb1\xac\x84\xca\xb3\xff\xc2\x3f\xce\x50\x5d\x56\x3d\xb0\x4a\x24\x31\x30\x18\xe4\xda\x9d\x99\x70\x8b\xc1\x13\xfb\xdf\x1f\xb0\xdc\x4a\x91\x48\x22\x12\x0f\x9e\x40\x47\x64\xe7\xad\xd2\x09\x08\x62\x72\x9e\x4a\x31\xb4\x74\xb4\xeb\xb9\x55\x44\xe9\x1e\xc8\x04\x98\x8a\xdc\xb9\xcf\xf4\xb7\x19\xd2\x21\x29\x52\x16\x04\x3e\xc2\xdd\xbc\x40\xe5\x88\x38\x3b\xad\xc1\xfe\x66\x22\x09\x9c\x36\x8e\x8d\x69\xce\xa5\xc2\x84\xd0\xb6\xa4\x40\x43\x7e\xc5\xfa\x30\x29\xf1\x96\x42\x32\x82\xdf\xe9\xe6\x71\xd5\xf3\xf6\xfa\x63\x22\xd4\xf6\xd5\x1c\x75\xdb\x38\x2f\x27\x14\x4d\x30\x4d\xb5\xdb\x2d\x86\xce\x93\x50\x26\x02\x3d\x66\xc5\x1d\x57\x95\x4e\xde\x5f\x2b\x81\x5e\xfa\x48\x0b\xf9\x93\x6c\xb9\x80\x20\xd2\x7d\x6d\xe0\x10\xce\x28\x20\x4e\x23\x70\x55\x76\x65\xe1\xcb\x2b\xc7\xf7\x33\x2c\xc2\xb0\x58\xe1\x8c\xd7\x6e\xd0\x9a\x10\x50\x97\xa7\x80\xf7\x89\x58\xf7\xa4\x8b\x0d\x07\xaf\xc4\x3b\x2d\x2b\x99\x87\xe7\x0b\x13\xc7\x18\xba\x46\xc9\x1f\x51\x5b\x46\xb9\xfa\xd3\x4a\x0f\x61\x54\xa4\x48\x67\x9d\x2c\x45\xf1\x5a\x95\xf9\x64\x5b\x95\x44\x29\x4c\x08\x34\xae\xb4\x7d\x94\xea\x96\x01\x4f\x10\x55\x92\xd5\x0e\x89\x70\x7b\xbe\xba\x42\x90\x5a\xd9\xb5\x4c\x95\x48\x52\x6b\xcd\x0e\xd6\x5d\x42\x24\x88\xf3\xd8\x57\x42\x23\xd9\xc9\x90\xb9\xe7\x2f\x26\x88\xdd\xa5\x68\x92\x62\x12\xed\x44\x0f\x68\x03\xf9\x5b\x50\x0d\x42\xf7\x50\x69\x0f\x0b\x6c\x9d\x86\xf1\xa7\x93\x8c\xe9\xa8\x13\x15\x59\x34\xaf\x36\xbf\xfc\x0f\x74\x06\x26\x2d\x85\x4d\x53\xfa\x54\xf9\xf7\xa7\xcd\xe4\xbd\x43\x1a\x24\xa2\xaf\xc5\xf5\x51\xa6\x35\xba\xe9\x7d\xe0\xb9\xf3\x6a\x65\x18\x3a\x2a\x2e\x2b\xb3\x66\xe3\xd5\x9e\xda\x52\xca\x28\xb4\x29\xa8\xbb\xc7\x2f\x87\x3e\x94\x6e\x51\xc0\xbe\x89\xb0\x9a\x2b\xe7\xc2\x6b\xdc\x82\xc6\x95\xea\xed\xfa\x05\x22\xcd\x31\x9c\xe4\x69\x31\x3f\x9c\xcb\xae\x3d\xe7\x22\x76\x85\x4c\xeb\xfd\xd7\x59\xe3\x59\xc6\x2c\x42\xef\x6d\x51\x55\x2f\x38\x23\x27\x61\x03\x99\x04\x12\x8b\xb2\xd0\x5e\x3e\x48\x68\x0e\x27\x47\x05\xd8\xbd\x43\x22\x12\x8f\xf5\x5c\x95\x45\xdd\x76\xc1\xc4\xb4\x90\x89\xd4\x68\x2f\xef\x37\xab\xd6\xaf\x9b\xde\x43\x0b\xea\x8a\x11\x50\xda\x70\x00\x81\x6d\xbd\x15\xac\x3c\xea\xab\x4b\xc5\xa5\x3c\x4f\xaf\x90\x9a\x00\x83\xb7\x6d\x6f\xd8\x3a\x0b\xaf\x99\x7f\x1e\x96\x63\x7d\x0e\x8d\x96\x22\xe0\x08\xdc\xcb\xcc\xca\x5a\x16\x0f\x13\x95\x7f\x29\x05\x0d\xd0\x14\xab\xdf\x85\x65\xcc\x44\x1d\xdd\x8f\x15\x88\xfc\x69\x2c\xb4\xaa\xa0\xa8\x07\x95\x15\x7d\xb4\xbe\xdd\x18\x31\xdf\xb1\xff\xef\x7e\xb8\x66\x4a\xa1\x22\x94\xd0\xce\xea\x65\x39\x1d\x09\x42\x59\x6e\x82\xdd\xfe\xc7\xea\x71\xf3\xf0\x19\x20\x56\x4a\x42\x70\x2d\x45\x6e\xb9\x47\xf3\x54\xca\x72\xda\x7b\x32\x08\x70\x4d\x78\x86\x66\x73\x14\xcf\x70\x0f\x8d\xd0\x9e\x58\x78\xd0\x2c\x0c\xb1\x22\x01\x9a\x97\x43\x56\x1f\x6a\x00\xdd\x0f\x02\x25\x62\x04\xf3\x6c\x8e\x8e\x49\x74\x3e\xdc\x36\xbe\x22\x10\x89\x59\xe5\xc7\x6f\xb7\x5d\x76\xd3\x5f\x10\x74\x28\x3a\x3e\x02\x95\x9d\xb2\x2b\x07\x51\x9a\x30\x40\xf1\xc1\x69\x4d\x89\x22\xa1\x65\xd9\xd5\xf0\x36\xa5\x47\x92\x8a\x44\x89\x8f\xe4\x2d\x77\xb3\xe5\xbc\x2a\x88\x25\x46\x8c\x90\xb6\x99\x79\x8e\x90\xa3\x18\xe4\xfd\x54\x10\x1b\xfc\x6e\x2b\x4f\xab\x38\x0c\x60\xff\x16\x1f\x83\x2c\x1b\x57\xfb\xd9\xb8\x7b\x54\x90\x4a\x69\x49\x52\xe4\x97\xcc\x34\xbb\x4e\x71\xae\x7b\x06\x20\x26\x18\xc8\xbe\xb4\x8e\xea\x6c\x51\x9c\xa2\xdc\x26\xea\x5c\x34\xc7\x46\x12\x47\xbc\x26\x52\xd1\x98\xc9\x01\xf8\x13\x72\x55\x1e\xc7\x2e\x8f\xa2\x49\x84\x89\x0a\x14\x7f\x7f\x34\xa6\x9e\x66\x9b\x15\x95\x89\x07\xc9\x2e\x73\xd1\x5d\x5a\x2a\xf4\xba\x17\x5a\x3b\xee\x2a\x79\x1d\x50\x1b\xdd\x89\xd1\x08\x60\xca\x0d\xb4\x2f\xbd\xf5\xed\x2f\xcc\x54\x8c\xf1\x24\x44\x69\xfe\xe5\x81\xa7\xc2\x28\x4a\xfb\x32\xd2\xc3\xee\xe9\x61\x7f\x38\x5d\xe3\xfc\x55\x18\x7b\xb2\x4b\x5b\xf7\xb8\x2e\xfa\x21\xaf\x42\x09\x11\xed\x58\x1b\x6d\x11\xfb\x30\x1f\x34\xb9\x67\x14\x24\x20\x86\xdc\x39\x97\x1d\xe4\xc6\x5f\x2c\x8a\x13\xe3\x42\x55\xab\xbc\xac\x1d\x69\xe2\xf2\xb2\xbb\xe2\xa9\x93\x2a\x4a\xac\x04\xf7\x4b\x39\xf0\x12\x55\x24\x88\xec\x1d\xb2\x65\x3b\x0c\x9c\xf4\xc0\x55\xce\xf4\xb3\x8e\x8f\x64\x8c\x26\xf3\x01\xe5\xbf\x86\xee\xb5\x8a\x34\xf8\xca\xfd\xc1\x12\xad\x22\x13\x26\x36\x8e\xaa\xb1\xd0\x77\x74\x39\xae\x6d\xb5\x7f\x8d\x0e\xe0\xa2\xd0\xed\xdb\x75\x13\x35\x26\xb6\x14\xf3\x19\x9a\x8f\x18\x66\x7d\xcb\x88\xa3\x73\xfa\xb0\x58\xfd\x35\x25\x1a\xa9\x62\x6e\xb5\x18\xfc\xec\xd8\xee\xaf\x56\xe9\x51\xc8\x53\xc5\x20\x91\x98\xe2\x94\x15\x05\x68\x4c\xfd\xb9\x23\x09\x0b\x11\x42\x7a\xae\xa1\x9a\xd5\x8e\x97\x2a\xe1\xb1\x71\xa4\xbe\xd6\xb9\x5e\x77\x76\xb1\x4a\x03\xf0\x04\x7f\x8e\xfc\x78\xc6\x89\x57\x69\x62\x2b\x43\x50\x6d\xa4\x35\xbb\xea\xfa\x5c\x89\xe2\x0d\x3a\xab\x74\x7e\x60\x89\x34\xc0\xfc\xcc\x43\xa6\x5e\x77\x0d\xe2\xe1\xbb\x07\x97\x01\x20\xb2\xe6\x70\xc2\x6d\xd3\x17\x34\x5f\x21\xb4\x26\x97\x94\xd2\xb2\x35\xff\x29\xaa\xac\xe8\x3e\xb4\x92\x12\xf3\xbd\xa8\x8b\x61\x97\x45\xd4\x2f\x70\x87\x35\xb7\xb8\x1c\x97\x37\x76\x85\x58\x85\x46\x49\x96\x4f\x53\x51\xfe\x02\x52\x23\xb7\xe1\xfe\xbd\xdd\x5a\xb0\xe6\xca\x6e\xc4\xdd\x18\x07\xa7\x42\x5b\x20\x6a\xe1\xd1\xb4\xd6\x6d\xe1\x30\x85\x75\xd7\x48\x5a\x9f\xc8\xf2\x4a\x7d\x10\xa5\x55\xa0\x03\xd4\xf0\x68\x3c\x67\x18\x5a\xca\xa7\x66\x40\xe7\x74\x95\x2f\xbb\x66\xb7\x93\xca\xc4\xf6\xa1\x0b\x78\x5f\xb6\xcb\x9a\x5e\x65\x4d\xf6\xdf\xa9\xef\xad\x8c\xb1\x8b\xab\x65\x09\xfd\x37\xa8\x66\x98\xff\xd0\x24\xd4\xdc\x51\xfa\xf7\x1c\x82\xa3\xd1\xa9\x49\x9a\xe2\xf0\xd8\xac\x1e\x07\x54\x5a\x52\x13\xc1\x11\x9c\xaa\xf2\x4c\xbd\x2e\xcf\x4d\xd3\x51\x5c\x68\x22\x04\x96\x6a\x1d\x4b\x9d\x99\xcb\x30\x0b\xf6\x41\x6c\xc7\x06\x2a\x1d\xf3\xbb\xd4\x44\xeb\x30\xf6\x05\x2d\xea\x75\x20\x31\x2c\x35\x31\x96\x4d\xd0\x49\x45\x4c\xd1\xac\x3a\x20\x12\xf7\xa6\xd6\x4e\x78\x7d\xd4\x1f\x78\xd9\x3a\x60\x31\x58\xae\x86\x57\xa8\x6e\x16\x8f\xf7\xa0\x33\x51\x64\xff\xed\x6f\xc4\xa2\x14\x5d\xab\x83\x5f\x21\x36\x05\xce\x8b\x2e\x1a\xa9\x43\x21\x70\xe5\x3b\x34\x2f\x59\xa5\x31\xd4\xd8\x4f\x3e\x1d\xc5\x11\xa6\x72\x05\x82\x4e\xf6\xd5\xb9\x6e\x76\xab\xf1\xd7\xd1\x91\xb0\xf5\x5c\xc5\x84\x5e\x5d\xea\x48\x51\xf2\x01\x93\xe5\x60\x0d\xd4\x9c\x5b\x2f\xb3\x81\xba\x19\xa0\x17\x74\x1c\x26\x48\x54\xe9\x14\x3c\xbb\x9f\x23\x6e\x21\x16\x5a\x3b\x2c\x04\x86\x74\x66\x27\xa3\x8e\xd3\x50\x5b\xa2\xe4\xfc\x0d\xbc\x62\xde\xb4\x88\xe3\xba\x20\x43\xc7\x69\x8c\x43\x6e\x2f\xea\xd7\x0f\x20\x99\x3a\x16\x11\x5a\x4a\x1b\xe3\xdf\xce\xb2\x53\xcd\x53\xcb\x0c\x97\x57\x9d\xc4\x80\x29\xce\x17\x51\xe9\x95\x18\x46\x8e\x75\x92\x6a\x5b\x1e\xb7\xf8\xc3\xff\xa4\xa2\x00\x33\x6a\x3a\xab\x91\x0a\xf9\xa1\xac\x9a\x97\x6d\x69\xe1\xf3\xbd\x59\xa5\x95\x10\x1e\x6b\xbb\x2e\xf4\xa9\xcc\x8a\x66\x59\x21\x4f\xcd\xf4\x8d\x47\x7d\xa4\x23\x82\xd9\xcd\x4a\x34\xf0\x68\xfe\x7c\xf0\x10\x1b\x0d\x24\xc4\xc5\xb1\x5b\x31\xca\x41\x52\xbd\xdd\xcf\x10\x88\x55\x16\x08\x0a\xed\x9c\xe5\x0f\xfc\x84\xbf\x8f\x0b\x12\x06\xcb\x80\x86\x48\x62\xb4\xa8\x41\x3d\x8b\x71\xa6\x4d\x83\x94\x23\xa2\xc3\x81\xb5\x32\xfe\x1c\x26\x88\x62\x87\x7b\xc5\x98\x16\x3c\x8b\x7a\xc6\x2e\xd1\x86\x2a\xe2\x6a\x4f\x97\xa2\x06\xab\x62\x38\x3f\xc1\x8c\x30\xb8\xa9\x55\x08\xf7\xf2\xc4\xf4\xfe\xa0\x49\x68\xec\xf8\x19\x33\xb5\xa8\x64\x36\x00\x40\xfa\xe8\x0a\x90\x44\x0b\xf9\x29\xc0\x77\x3c\xaa\x20\xa0\x01\x66\x51\xdc\x4e\x80\x08\x0a\xcf\xe9\x7f\x73\xe5\x58\x40\xa0\x42\x0c\x07\x6b\x78\xa3\x36\xfe\x4e\xb7\x9d\x59\x0a\x01\xa4\x68\x66\x19\xe4\xb8\xdc\x97\xb3\x5b\x89\x63\x62\x93\x40\x63\x2a\x7a\xe6\xf5\xa7\xb2\x2b\xc0\x03\x2a\x39\xf6\xd9\xbf\xcb\xac\x40\x95\xee\x59\xfa\x0f\x60\x81\xd5\xc1\x72\x71\x6d\xa8\x32\x93\x59\xdd\x36\x1b\xf5\x83\x59\xdd\x44\x09\x4c\x30\xe3\x82\xce\x68\xe2\x0c\x39\xaf\x7d\x13\x69\xc5\xd2\x4b\x63\xda\xa3\x77\x3d\x48\x19\x42\xce\x62\x5f\xab\x6f\x4c\x96\x67\x57\x5c\x2e\x10\x42\x67\x7d\x75\xe2\xa9\x88\x89\x99\xc6\x8c\xc6\xef\x13\x51\x45\x55\x57\xfd\xd6\x9c\xeb\xe5\xb9\x2a\x30\x35\x3f\x7c\xfa\x28\xe4\x58\xf0\x3f\x4c\x68\x8d\x4a\x29\x66\x53\x58\x10\x45\xa1\x0e\x7d\x0d\x74\xdd\x6c\xa1\xba\x99\xd0\x3f\x4b\x88\xd2\x30\xf4\xc2\x62\x8e\x69\x77\xfc\x84\x3c\x04\xed\x50\xa8\x56\xe9\xf7\x73\xce\x10\xe0\x4a\xe9\xb4\x1b\x10\x5d\xea\xf4\x43\x0b\xa3\x7f\xcb\x38\xb4\xcb\x6e\xeb\xbd\x58\x87\x71\xb8\xa2\x41\x1c\x09\x2b\x4f\xfd\x22\x2a\xb0\x25\x59\xee\x48\xc2\xa5\x70\x29\xdd\x8d\x2a\x17\xcf\xc3\x04\xf7\xe0\xfa\x89\xd1\x5c\xf8\xee\x28\x1a\xe8\x6a\x13\xdc\xf1\x94\x86\xb8\x15\xbd\x88\x1a\x2b\xd6\x26\x07\x13\xab\x27\x70\xae\x8a\xbb\xb2\x41\x8d\xd5\x91\x05\x00\x29\x93\x69\x4f\x5a\x84\xf6\x43\x35\x15\xca\x9f\x0b\x00\x43\x1a\x52\xc4\x30\xfb\xd0\x8d\x63\x54\xf6\x47\x95\x91\xbd\x66\xd9\x0d\x96\xa9\x4f\x30\x81\x20\x52\x4b\x76\x8a\x55\x66\x7b\x04\x42\xff\xe3\x0c\x83\x45\x67\xd2\x5c\x53\x07\x62\xcc\x81\xcd\x6f\x6b\x20\x89\x55\x95\x7d\x39\x66\x1f\x52\x7b\x81\xa4\x5c\xb9\x01\x36\x33\xa1\x64\xa8\x65\xff\x59\x66\x5c\x25\xd0\x8c\xa9\xa1\x1b\x79\xcd\x1c\x2c\x41\xa7\x0c\x53\x27\xf7\x8b\x3f\x0e\xab\xc7\xbb\xbb\xf5\x6a\xff\xf8\xb4\xf3\xbd\x03\x84\x07\xfd\x7a\xe0\x63\x6f\x57\x7c\x0c\x00\x49\x4c\x79\x4f\x4a\x8e\x9f\x7f\x10\x0c\x04\x10\x3c\xb5\xac\xa1\x55\x75\x3e\x35\xeb\x3c\xeb\xac\x74\x00\x6d\x61\x1f\xb9\xad\x58\x1e\xa3\x79\xc1\x80\xf6\x8e\xe3\x16\xaa\xba\x2c\xb6\xa2\x82\x62\x36\x22\x69\x08\xb3\x48\xc2\xaf\x90\xe7\x25\x06\xd3\x26\x5e\xbe\x09\x02\x81\xc9\x27\x2c\x43\x99\x23\xdc\x9d\x9f\x75\x26\xa0\x0a\xf3\x02\x4f\xa2\x81\xa0\xbb\x18\xd3\x7d\x60\xdf\x56\x4a\x8e\x06\x82\x09\x62\x13\x7b\xf0\xb9\x25\x94\xb2\x65\x52\x97\x19\xb2\x6b\x69\x28\x0b\x90\xb8\xf8\x70\x68\x3a\xd2\xae\xcd\x6a\xb1\x6d\xe7\x78\x07\xc9\x9c\x46\x38\x46\x56\x89\xa1\x8e\x01\x4d\x61\x0e\xde\x0a\xe1\x75\x94\xa6\x7e\x26\x19\x2a\x43\xc4\x68\x7a\x88\x6b\x56\xcb\xbe\x0c\xd9\x50\x25\x10\x4f\xf5\xef\x73\xdd\xba\xa5\xad\x6d\x66\xb3\x06\xa3\x87\x65\xc4\x60\x4c\x13\x7e\x81\x1a\x58\x64\x1e\x44\xe2\x5b\xd1\x14\x51\x1e\xa6\xfd\x06\xfe\x1a\x81\xcd\x9f\x05\xdd\xa5\x74\x84\xba\xa8\x47\xcb\xba\xf9\x52\x01\x6c\x73\xd1\x7d\xb2\x30\x8e\x69\x17\x83\xed\xd3\x21\xfe\x68\xc2\xd1\x86\x59\x8a\xd6\xc3\x9e\xb1\x2a\x4c\x28\x54\x64\xa3\x8f\x17\xb6\x1b\x84\xd9\x4d\xc4\x04\x16\x92\x9c\x8b\x1f\x65\x03\x3d\x83\x9a\x89\xa4\x95\x60\x7f\x86\xc6\x02\xc4\x97\x97\xd5\x4b\x79\x65\x87\x98\xc8\x58\xae\x88\x7d\x85\x83\x7d\x50\xa9\x68\xb8\x06\x2b\x73\xdd\x43\x4c\xbc\x41\x61\x92\x40\x76\x99\xe1\x85\x43\xe1\xf8\xf3\x12\xc3\x42\x1b\xbb\xb3\x20\x30\xd0\x96\x41\x0d\xaa\xdd\x0b\x16\xc4\xbb\x76\x69\x2a\xd1\x2d\xe8\x60\x1f\xcb\xcb\x72\xbf\x9a\x5f\x6b\x4c\x2a\x13\x82\xce\xc8\xd7\x6e\x4d\x37\x82\x68\xe8\xd1\xa5\x7d\x79\x18\x9d\xf4\x9e\x08\x43\xc4\x7b\x3a\xa5\x82\x0a\x60\x14\x67\x1a\x37\x96\x8c\x22\xa6\xf5\xa0\xa1\x01\xd5\x25\x8b\xbf\x54\xe5\xf9\x34\xbf\x56\x1a\xc9\x14\x92\xac\x98\xf2\x5c\x39\x29\x81\x75\x6f\xa2\x1a\x25\x28\xe9\x8a\x91\xe7\xbe\xae\x8e\x0d\xfa\x85\x98\x48\x3a\x42\x61\x61\x58\xfe\x74\xad\x2d\xed\x80\x9f\x50\x58\x26\x79\x0d\xb6\x31\xa0\xa4\xf1\x89\x44\x78\x83\x4a\x67\x96\x83\xab\x9a\xf5\x9e\x0d\xe8\x08\xe3\xe0\x37\x65\x6e\xbb\x9f\xfa\x1b\x1a\x99\x20\x2f\x8d\x45\xea\xb6\x2b\x5a\x19\x7c\x2d\xcf\xd7\x0a\x16\xb3\xe6\x8a\x31\x9a\x05\x03\x25\x6b\xb1\x15\xcf\xa2\x7d\xdc\xb2\xbb\xbe\x51\x61\xda\x21\x62\x1e\x0d\xbe\xed\x54\xe1\x56\x11\x92\x32\x64\x01\xbb\x6f\x2d\xbd\x2c\x1f\x84\xd6\x15\x09\x44\xea\xc1\xbd\x56\x13\xdf\xa5\x82\xeb\x61\x49\x96\x22\x34\xd6\xa1\x71\xa2\xe6\xa8\xe3\x99\xe7\x53\x0e\x50\x45\x58\x94\x22\x12\x56\x41\xd5\x74\x96\x62\x3d\x6d\xa4\x13\x69\x17\x14\xfd\x0c\xa3\xd5\x5d\x91\x30\xb6\x54\x4b\xa7\x0a\x9e\x0b\x51\x34\x77\x59\xf1\x9c\x97\xc5\xf3\x4a\x34\x5d\x9b\x28\x48\x30\x93\xe3\x97\x9a\xf3\x2c\x1b\xc3\xe7\xb0\xc0\xb9\x89\xa1\x08\x8f\xd3\x10\x07\xdf\xb9\xd0\x23\xd8\xa4\x22\x5c\x00\xd2\x68\xa1\x49\xb8\x3c\x5f\x70\x2d\x45\x26\xa0\xff\x43\x1d\xe8\x5f\xfd\x3b\xb0\x2a\x15\x89\x89\xcd\x39\x69\xd1\x08\x27\x03\xe8\xca\x80\x50\x2d\x77\x6c\x2b\x24\xff\x0a\xfd\x37\x8f\x63\xe1\x4b\x94\x16\x93\xa4\xa6\x22\x49\x4c\x84\xa3\x43\xcb\x73\x18\xd0\x15\x7e\x6c\x30\x2a\x92\x72\x82\x5c\x64\x47\x57\x5c\x3c\x88\xbe\x2b\x92\x3a\x88\xdc\x68\x52\x4e\x34\x06\x14\x11\x92\x23\x80\x5f\x9e\x2f\x8b\x3c\x9f\x67\x12\x9c\x0d\xc3\x0c\x2e\x61\xe4\x00\x07\x8f\x2b\xf8\xcd\x0c\x6b\xa5\x6b\x2d\x09\xc5\xc4\xd1\xb7\x17\xf1\x3e\xac\x32\x9e\x71\xe2\x15\x91\xad\xef\xf5\xff\xfe\xbf\xff\xb7\xb8\x1d\x55\xb7\x28\x22\x13\xcb\xf8\xe7\xbc\x0d\x4b\x4f\x3e\x71\x96\x14\x91\xa9\x46\x4d\xa5\x6d\x99\x5f\x6e\x06\xca\x4b\x93\xbe\x97\x82\x47\x2e\xc1\x74\x73\x6e\xd4\x8b\xcb\xc2\x63\x65\xea\x64\x3a\x28\xcd\x2c\xbe\x07\xb9\x3b\x7d\xc8\xe7\x13\x76\x65\x45\x14\x44\x88\x91\x43\x1e\x03\x57\xf1\x3e\x8d\x16\xf8\xa6\x46\x5a\xe5\xea\xac\x68\xee\x11\xe6\x84\x8f\xf1\xc9\xc5\xb5\x90\x5a\x7a\x1d\x1c\x8d\x1a\x45\xf3\x45\xab\x8a\x68\x0d\x81\x2f\x0c\xd9\x96\x65\x3e\x1f\x73\x51\x44\x43\x88\x59\xe3\x53\x55\x4a\x8b\x81\xe9\x8a\xc6\x15\x81\x40\x29\x0b\x0a\x7c\x03\x91\x63\xfa\xfd\x3e\x2b\x2c\x55\x55\xfd\x53\x64\xcd\x6d\x59\xad\x72\x10\x15\x4a\x2e\x74\x65\x09\x8a\x40\xa4\xb1\x92\xd0\x8a\xe2\xae\x5e\x60\x50\x34\x37\xbe\x3f\x70\xa1\x95\x27\xd1\x3b\x64\x85\xce\xde\x32\x7d\x16\xf9\xa1\xb6\x42\xe0\xe3\xd6\x86\x13\xa1\xbb\x0a\x74\xcb\xb9\xec\xcb\x3d\x26\x2d\x53\x8a\xfc\x66\xf5\xf9\xd4\x6e\xd8\x0b\xad\x9d\x16\x59\x30\x1d\xa2\x46\x71\xb0\x65\xb0\x7d\x64\xb8\x5b\xb9\x8d\xd2\x7a\x90\xd4\x5a\x3f\x43\x05\x93\x55\x37\x20\x24\xb1\x75\x67\x85\x65\x07\x38\xf4\x42\x18\xe5\xf1\xd3\xd8\xb6\x0a\x48\x1c\x62\xfd\xc0\x5d\x59\x3c\x6f\x73\xd1\x3b\xce\xff\xa2\x3d\xb0\x24\x76\xe5\x20\x1d\x20\x98\xfe\xef\xf4\x32\x3a\x46\x13\x52\xb6\x1b\xf6\xa6\xc0\x2f\xe5\x36\x41\x15\x04\x49\x88\xe1\xc0\x2e\x64\x88\x32\xa6\x67\x44\x69\x0e\xe7\x5f\x10\x98\xd4\x91\x9d\x14\xae\x7b\xfd\x25\x68\x00\xc6\xf2\x94\x1d\xe0\x78\xea\xbe\x73\x40\x79\x8c\x7e\xc4\xe3\xfd\xe6\xc7\x66\xe1\x7f\x65\x44\xa7\xc4\x83\x3e\xbe\x3f\x6d\xba\xdf\x59\x12\x24\xae\x8c\x3e\x2b\x9e\xb1\xf6\x64\x34\x25\x02\x06\x8a\x51\x27\x6d\x18\xdc\x95\xea\x75\x5d\xe8\x3e\x96\xa7\x02\x66\xac\x70\x6a\xcf\xb6\x53\xc3\xe4\x6b\x44\x29\xc3\xf8\x10\x14\x1a\x91\x55\x3f\x01\x5e\xfd\xe9\x91\xa6\x48\x31\x60\xad\x27\xc4\x65\xf4\x4a\x62\xd3\xb0\xf3\xa4\x8b\x79\x44\x8c\xe9\xf3\x4d\x07\xca\xfc\x55\x79\xcc\x91\x43\x65\xf7\xfd\xbe\xfb\x29\x21\xa9\xf3\x50\x7b\xf9\xeb\xbf\xc0\xe9\xeb\x4e\x8f\x99\xb5\x7f\xfe\x14\x55\xbb\x17\x0e\xab\x2d\x55\x10\x87\xa9\xaf\x70\x77\x03\xfa\x5f\xff\x3b\x1b\x1a\x1d\xec\x1d\x41\xcc\x29\x75\xc1\x80\xd6\x68\xc4\xbd\xb5\x42\x70\xf6\x87\xd9\x17\x3f\x07\x82\x58\x5a\x05\xf2\xbe\x5c\xe2\x8b\x68\xe0\x5d\x74\xa3\x20\x21\xc4\x31\x55\x39\x18\xcf\xba\x1f\x39\x49\x64\x29\xb0\x90\xd0\x60\xd9\x39\xfa\x2a\x48\x34\xc3\xc1\x50\xbf\x03\x9c\xa0\x9a\x00\x0f\x55\x90\x26\x04\xc3\xfd\x4f\x65\x3e\x32\x98\x82\x54\x1b\xab\x00\xdb\x88\x57\xb0\xe1\xef\x37\xc4\xb3\x62\x89\xb9\x0d\x74\xcc\x26\x76\x92\xbf\xcf\x6e\x3e\x9f\x04\x2b\x54\x90\x1a\x85\x37\x73\x08\x31\xf7\xab\x88\x15\xef\x40\x26\xe7\xa2\x59\xb4\x0b\x70\xbb\x16\x0e\xed\xae\xbe\x31\x50\xed\x2b\x3b\x7c\x80\x68\xb9\x5a\x3f\x0e\x6a\x61\xb1\x15\xc2\x3d\x7a\xd3\x0d\xa6\x5a\xf9\xbe\x65\x92\x60\x84\x0a\xd3\xde\x9f\x6d\x17\x81\x90\x36\x4e\xf2\xfd\xe9\xce\x3f\x0c\x56\x4b\xf9\x12\xef\x6e\x15\xe8\x0e\xda\xfc\x35\xae\xae\x03\x9d\xf8\x3e\xae\x39\xfc\xd3\xdf\x47\x85\x94\x29\x7f\x51\x53\x22\xcf\xfc\x64\x62\xab\x28\x45\xa7\xf2\x54\x95\xc7\x72\x55\x6a\xd8\x77\x75\x73\x23\x5e\xba\xa0\xbb\xa6\x0a\x90\x00\xae\x6e\x4a\x8b\xe1\xd8\xbd\xfb\x1a\x23\x15\x28\xe0\xf8\x16\xed\xce\x79\x93\x3d\x1f\x27\x4b\x80\xa6\x89\xb0\x05\x33\x1a\xe0\x78\x07\x6f\x8b\x42\xdf\xc2\x64\x87\x08\x74\x6c\xb5\x6a\x97\x65\xf9\x6a\x71\x13\x7a\xd2\x02\x38\x11\x1d\xb0\x1c\xb5\x0d\xa1\x81\xaa\xde\x79\x48\xb6\x0a\x4c\xa0\xa4\x1b\xdd\x3b\xf1\xd6\x0d\x10\x4a\x18\x41\x1b\x79\xb5\xff\xd9\x0c\xc6\x2e\x25\x4c\x63\x98\x69\x5b\xd9\x0a\xfa\x45\x9e\x97\xa3\xd1\x42\x49\x48\x94\x8f\x22\x21\xe5\x1d\x16\x9f\x8d\x1f\x8c\x92\x30\xc1\x15\x3d\xcf\x8e\x59\xb3\x51\xe5\x10\xdf\xa4\x28\x89\x24\xda\x89\xea\x5c\xd9\xd2\xb5\xf5\xa9\x54\x2f\xdd\x51\x6e\x05\x65\x74\x56\x23\x67\xb9\x2f\x84\x1f\xd0\x54\x28\x4a\x92\x58\xa5\x28\xd7\xec\xcb\x08\xa6\xe4\x1c\xa3\x1e\xa7\x44\x77\xc3\x0a\x03\x5f\x2b\x71\x1a\x8e\x6e\x4a\x00\x50\x19\xe4\xd0\x89\x53\x29\x1a\x10\xe2\x45\xeb\xef\x2f\x3b\x28\x1a\x84\xf0\x3d\x1a\x03\xd5\xa6\x6f\x24\x94\xe2\xe8\x6c\x34\x95\xb8\xcf\x0a\x4b\x1e\x3b\xa9\xc5\xf3\x2b\x15\x0d\x64\x8a\x5e\x42\x5e\x0a\xdd\x41\x7e\x27\xcb\x19\x0d\xb4\x24\x96\xa0\x1f\x59\x4f\x27\xee\x11\x0d\x0c\xc1\xe8\xea\x97\xaf\x9b\x6b\x07\xb7\x3d\x2c\xa8\x03\xf1\xae\xef\xbe\x42\x65\xfb\xfe\xaa\x70\x59\x51\xca\x6d\x60\x78\xe5\xf4\x16\x85\xbe\xcb\x0a\x18\x85\xc9\x26\x9d\x48\x55\x8a\xbe\xb7\x2b\x03\xef\x24\x89\x2d\x68\x17\xba\x3e\x61\x54\x7a\xca\xa7\x03\x92\xd3\x69\x5b\x14\x71\x10\x63\x1c\x94\xa2\x2c\x0e\x78\xc7\x71\x52\xea\xd6\xd0\x7d\xcb\x9a\x8b\x4b\x0a\x4f\xdf\x3c\x24\x62\x90\x6c\xb8\xc5\x08\xc0\xfa\x57\x0f\x18\x9f\xb4\x8e\x22\xcc\x60\x64\xb5\xad\x1a\x1b\x6c\xd3\x94\x33\x85\xf5\x50\xb5\x78\xcb\x8a\x67\x24\x26\xec\x46\x27\x0f\x13\x4a\x3c\x4b\x05\xda\x01\x16\x44\xf7\x70\x3e\x3a\x46\xff\xf1\x7d\x78\x6c\x09\xa4\xd0\xd3\x00\xdd\x7e\xb2\x0f\xa3\xeb\x93\x33\xd3\x04\x09\xfc\xfe\xf9\xfd\xe1\x6e\xb1\xe9\xee\x9f\xca\xd4\xf5\x9e\x8f\x9f\xf6\x91\x53\x45\xb9\x32\x68\x37\xb6\xa3\xde\x71\x36\x8e\x8c\x24\x1a\x47\x40\xc3\x7e\xb1\xfb\x14\x6b\xa7\x68\xcc\x35\x56\x92\x23\x7e\xc5\x97\xfe\x5b\x6a\x60\xdf\x22\x91\xf8\x94\xf9\x80\x0c\xcc\x1f\x4a\x8d\x25\x67\x3b\x4b\x47\x4e\xd7\x83\x8f\x5a\x03\x48\x8c\x55\x7c\x67\x37\x01\x9a\x30\x62\x71\xa4\x85\x7e\x28\xfd\x4d\x93\x58\x58\xa1\x40\x0b\xbb\xbf\xc9\xc4\xb1\x2c\x86\xba\xec\x8a\x26\x2e\xea\x06\xbf\x4e\x99\x75\x4d\x36\xde\xf2\xf7\x4d\x84\x14\x58\x93\x63\x1d\x52\x2f\x1a\xe5\x63\x82\xf7\xe5\x88\xbf\x6b\xd0\xc7\x92\xc4\x88\x02\xf4\x1c\x38\xe3\xa8\xb0\xa2\x92\x46\x88\x4b\xdf\x3e\xad\xef\x37\x0f\xeb\xa7\xc3\xe2\xe6\x66\x7d\xf3\xb9\x25\x4d\xdb\xb5\x02\x63\x46\x8e\x38\x6c\x16\xe8\x81\x7b\x4c\xe8\xcf\x70\x8a\x29\xf7\x8b\xdd\x7e\xfd\x74\xf8\xb9\xb8\xbb\x5b\xef\xfd\x33\x28\xc3\x2c\x6f\xf7\xe6\x8b\x85\x42\xfa\x3a\x67\x77\x5c\x47\x11\x72\x5d\x7d\x81\xa6\x07\x91\x75\x3d\xa3\x79\x18\xc6\x5d\x2e\x60\x52\x9c\xe1\xdb\xc4\xc4\x12\xf2\x62\x10\x74\xfe\xa5\xb4\x14\x94\x79\x5b\x47\xdf\x96\xd5\xb6\xcc\xf3\xcd\xcd\xbc\x43\x49\x81\x5a\xcc\xcb\x20\xbc\x76\xb9\xc9\x2a\xe8\x6b\xd3\xa7\x01\x01\x0a\xd4\xca\x87\x39\xff\x66\xef\xe8\x12\x47\x25\xa6\x73\x91\x42\x45\x81\xc7\x18\x1b\x33\xe5\xb9\xd0\x50\xb1\x61\xad\x52\x7b\x54\xa2\x21\xbf\xf8\xcf\x59\x20\x68\xff\xaf\xc6\x66\x7e\x13\x98\xfb\xdc\x70\xa6\x10\x6b\x54\xea\x3a\x55\xd9\xdb\x21\x2b\xee\x45\x56\x20\x87\xcf\xe1\xf0\xb7\x3e\xb6\x33\x68\x6e\x24\xc2\x65\xb2\x7a\xc8\x8b\xf0\xd4\x49\xb0\x8f\x8d\x18\x6a\x68\x28\x0c\x6e\x2f\xe5\xe9\xb6\xbc\x36\xea\xc7\xcf\x62\x62\x6d\x7d\xa6\x42\x7d\x81\x82\x0c\x52\x78\x8a\x11\x4e\x31\x0e\x73\xbc\xc8\x19\x24\xb4\x62\x41\x60\x98\xf5\xca\xe1\x2d\x2b\x27\xaa\x35\x8a\x05\xa1\x48\x7b\x8a\xdd\x2f\x5d\x4d\xc8\xfe\xd7\x3c\xc0\x48\xb1\xd6\x01\x50\x1d\x87\x95\x8f\x64\x8c\x52\xf5\xbe\xa5\x11\x9c\x76\xfa\xaf\xed\xc2\x5f\x0f\xfd\xe6\xb1\x22\xb8\x62\x34\x54\xb8\x1f\xba\x12\xc6\x3c\x07\xd5\x74\x5a\xc8\xfe\x75\x29\x8f\xed\x72\xb3\xdf\xef\x2c\xdc\xdd\x31\x07\xcf\xc6\x04\x18\x4d\x35\xe6\xd9\x34\xe4\x6e\x11\x19\xae\xc0\x8c\xea\xc4\x0b\x58\x3c\x1a\x83\xdf\x77\xe3\x10\x5a\x1f\x5c\x90\x05\x56\x49\xd2\x57\x50\xdf\x95\x62\xb2\xaf\x33\x16\x49\x02\x5e\x8a\x03\x57\xa3\x9e\x63\x84\x12\xdf\x28\x21\x89\x2b\x2d\x12\xd6\x72\x73\xd2\x4f\x23\x41\x82\xf9\xf1\xc0\x58\x62\x09\xdb\x9d\x52\x1f\x46\xe1\xd1\x51\x77\xfb\xe3\x79\x42\xde\xae\x18\xd3\xa1\xa7\x7f\xbe\x13\x15\x5a\x55\x37\x90\x4f\x72\xda\x8a\x85\x11\x63\x8e\x50\x63\x37\x2d\x55\xf7\x4d\x62\x85\xf0\x98\x03\xf9\xb5\x87\xba\x19\x7d\x9c\x28\x09\x13\x77\x17\x74\x6c\x03\x32\xee\xee\x48\x24\xa8\xde\xe8\xcc\x92\xad\xfd\xd3\xf6\x4e\x6f\xbd\xd6\xdd\xc5\x94\x55\x3f\xaa\x5b\xf7\xfb\x5c\xe8\xaf\xe5\xb1\x0b\x44\xb0\x58\x24\x96\x3f\xb0\xed\xad\x70\x58\x64\xa1\x58\x2c\x79\x68\xb5\xa6\x8f\xc7\xcc\xe2\xde\x46\x93\x8f\x25\xdc\x12\xc1\x60\xf5\xa3\x1a\xe9\xe3\x29\x96\xa4\x0a\x47\x0c\x54\x8a\x92\xcd\xf1\x94\xfb\xcb\xa6\x81\x4a\xa3\xbe\x18\x0c\x13\x1a\x74\x60\xaa\x30\x91\x28\x66\x35\x0f\xd4\xa8\x57\x84\x26\x48\x47\x69\xca\x4a\x81\x15\x44\x98\x2a\x4e\x28\x26\x43\xc9\x5c\x28\x11\xb9\xac\xf7\x95\xc8\x9a\xe9\x64\x95\x71\xea\x1e\x01\xb1\x55\xa3\x75\x40\x6a\x69\xa5\xf9\xd1\x0e\xe9\xec\x91\xf1\xd0\x94\x10\x62\xe9\xb1\xb6\x60\x2f\x58\x65\xcd\x05\x81\x2b\x9f\x8f\x37\x45\xa9\x44\xa1\xa7\x5c\x77\x42\x52\x8a\xa9\x24\xc1\x2c\x75\x9f\x03\x7d\x2c\xfc\x8e\xdd\xb5\x49\x15\xed\x98\x24\x3b\xf0\x9a\x62\x4a\x29\x4b\x66\x6b\xb5\xfd\x7e\x39\xe0\xa8\x3f\x0a\x56\x0e\x23\x2b\xea\x76\x00\xba\x5f\x75\xc0\x30\x31\xd9\x64\xc5\x4b\x53\x0e\xe0\xbf\xe3\x87\xd5\xcc\x92\x8e\x0b\x0c\x49\xdb\x4c\xd5\xd4\x1f\x63\x3a\x15\xe8\x23\x1f\xa4\x6a\xd4\xef\x4a\x34\x27\x4b\x80\x06\x19\x85\x5e\xae\xd2\xe3\xe6\x40\x4f\xcd\x31\x06\x01\xc7\xe5\x4f\x35\xe6\xd0\x45\xe7\x0f\x42\xeb\x83\x70\x62\x52\xa0\x0f\x35\x26\x18\x27\x4f\x07\xd4\xee\xf9\xf7\x9b\x87\xcd\xfd\xf7\xfb\xc3\xf2\xfb\x3f\x0f\x8b\xfb\xc7\xef\x1e\xfe\xa5\x18\x70\x81\x66\xf1\x3f\xf6\x7f\x74\x3f\x19\x8d\x8e\x56\x57\x51\xe2\x08\xbd\xa6\x83\xc8\x84\xca\x92\x16\x89\x5f\xbb\x53\xef\x44\x31\x63\x18\x8e\x8d\xcd\xd3\x7a\x35\x1c\xbf\x21\x21\x9c\xeb\x2e\x68\xb3\xbc\xdc\xc1\xb3\xc8\xf7\xa3\xe7\x9e\x1f\x37\x21\xa1\x56\xc0\x63\x71\x3f\x8e\xc2\x87\x81\x4a\x70\x4a\xac\x9b\x17\xdc\xb3\x86\x46\x82\x6b\x42\x53\xa6\xed\x42\xdb\xba\x04\x87\xe3\xe5\x00\x3d\x4c\x53\x85\xd4\xa4\x91\x67\x52\xf4\x65\x1d\x73\xe8\x56\xd7\x9c\xc9\x34\xd0\x1d\x5a\xe8\x19\xe8\x7a\xca\x94\xa4\xc2\x30\xe4\x2c\xee\xf9\x6f\xaf\x35\xde\x54\x18\x85\xda\x97\x04\x9d\xfa\x67\x89\x24\x8b\x59\x47\xbc\x30\xa3\xf7\xee\xda\x71\x63\x0b\x9d\x1a\xa8\x1b\x2b\x99\xb9\x12\x1e\x33\xae\xc2\x98\x31\x2c\x8f\xcd\x6a\x44\xe3\xef\x2b\xd1\xf3\x94\xbb\x26\x49\x14\x63\x09\xe6\xc1\xe5\xf7\x3f\xc2\xf3\xf9\xe6\x29\x45\x49\xca\xaf\xe2\x74\xba\x58\x29\xb8\xd1\x57\x48\x5c\x0e\xb5\x7e\x11\x27\xa8\x5f\x32\xd3\xf1\x77\x7e\x96\x5b\x09\x53\x22\x3c\x1d\xfc\x97\xbc\x94\x13\x9d\x46\x15\xa6\x3c\xc0\xf0\xe6\xc1\x2d\xf3\xae\x04\xff\x83\x4e\x49\xb5\xc6\x6a\x73\xbf\xa1\x22\xd9\xdd\x47\x94\x52\x2a\x4c\xc1\xc2\x35\xd0\xd5\xff\x06\x52\x48\xbf\x61\x84\xa9\x31\xe8\x46\xb6\xce\xd1\xaa\xcc\x50\x6e\x69\x4e\xb5\xf8\x37\xf6\xdf\x07\x63\x59\xd0\x14\x31\x05\xdb\xc7\xed\xea\xeb\x62\xf3\xb0\x5a\xec\xbe\xfa\x3b\x8b\x50\x06\xbd\x34\xad\xf5\xaa\xb2\x23\x60\x18\x64\xfe\x35\x24\xb1\x5d\x0f\xbf\x1a\xcb\x48\xbf\x2c\xc7\xa1\xc6\xa0\x6b\xc9\x08\xa6\x76\xac\x5f\xae\x47\x9c\x04\x2a\x94\xa1\xe5\x61\x6e\xe7\x48\x56\x3c\x8f\x2c\xe7\xd6\x27\xa1\x72\x18\x00\x82\x85\x52\xe7\x63\xbb\x38\x7c\xa0\xc7\xa4\x42\x15\x05\xca\xe3\x82\xbb\x74\xbb\x0a\xb5\x94\xc8\x35\x8f\x6c\x09\x3f\x01\x5e\x1f\x8b\xee\x18\xc4\x3a\x75\x35\xa2\xeb\xdd\x6a\x79\x03\x6f\x96\xff\x3b\x7b\x9e\x4c\x69\x50\x31\x26\x05\x7e\x78\xa6\x38\x15\x1a\xa6\x02\x6b\x36\xd7\x67\x97\x0d\x9b\xb3\xf1\x7d\xeb\x48\xf8\x22\x1c\xd4\x3d\x84\x11\x42\xbe\x3d\x2e\xa1\xa7\xb7\xa9\x44\xd1\x3c\x9a\x51\x55\x85\x6d\x17\x11\x61\x10\xb7\x7a\xc8\x54\x39\x2c\x05\x51\x11\x71\xfc\x46\xcf\xd0\xec\x32\x0d\x35\xa2\xd5\x66\x07\x44\x14\xa4\x14\x03\x76\x96\xbf\x7e\x5d\x2b\x91\x8b\x91\x13\x3d\x6e\x4e\x49\x1a\x86\x5d\x00\xc5\x46\x2e\x91\x5b\xd5\x9b\x27\x41\xd7\x92\x83\x45\x98\x63\x02\x0b\x1c\x0d\xc5\xa8\xb2\x62\x7e\x8c\x46\x8c\x08\x05\x83\xb9\x64\x23\x35\xd3\xa5\x35\x62\xdc\x0a\xb3\xbb\xb4\xfb\x5c\x00\x60\x72\xdd\x34\x92\xb4\x53\xb0\x1b\x85\x11\xff\x3e\xb9\xb4\xb2\x21\x91\x5c\xd4\x96\xad\xf6\xf0\x46\x5a\x0b\xec\xe0\x2e\xe8\xfb\x99\x69\x81\xc8\x81\x25\x3c\x3f\x8b\x6a\xe9\xea\x79\xdc\xc1\x90\xf0\x04\xe9\x61\x7e\x0d\x6a\x09\x54\x14\x2a\x81\x4a\x82\xcd\xd0\x80\x9a\xdc\x3f\x54\x42\x58\xd9\x59\xcb\xab\x37\x8c\x66\x46\x11\x0d\x71\x4b\xb1\xd4\xff\x8e\xd4\xf3\x62\xfd\x82\x61\x95\xf9\x70\xb5\x8b\x22\x1a\x61\xca\xe2\x8a\xc1\xe9\x73\x09\x89\xf9\xc7\x8b\x22\xce\x6c\xdd\x55\xa5\xeb\xc3\x11\x1a\x91\x1f\xd0\x34\xf2\x8f\xc8\x09\x41\xa5\x99\x63\x56\x34\x5b\x51\x35\xc5\x07\x7c\xc8\x2a\xe2\xdc\x20\x7e\xa6\x7e\x29\x4f\xbb\xa6\xac\x3a\xfc\xc5\xa4\x99\xa6\xb8\xab\xb4\x1f\xe1\xae\x6c\x3c\xde\x44\x45\x1c\xa8\x18\x8e\x95\xd1\x6d\xe6\xc5\x2f\xda\x93\x04\x38\x03\xff\xb6\xb5\x66\x9f\x40\xe8\xcb\x15\x80\x51\x45\x71\xc8\xb5\xad\x73\x76\x15\x8e\x6b\x0c\xba\x6e\xf6\x93\x91\x98\x10\x48\x9d\x87\x88\x90\xdf\x2f\x9e\xbf\x74\x22\xbb\xad\xa2\x24\xb4\xd1\x2f\xa7\x14\xfc\x73\x3f\xb9\x63\x12\x5b\xd5\xc8\x17\x51\xdf\x02\x62\x39\xb6\x55\x69\x26\x64\x72\x2a\x4a\xb4\xc5\x23\xb7\x43\xd3\x86\x53\xbb\xd1\x91\x80\xf1\x13\xf4\x67\x56\xbf\x6c\xf4\x2f\xa8\x17\xd3\xf3\xd3\x30\xc1\x46\x39\x98\x66\x5f\xea\x2e\x71\x15\xa5\x31\xc5\x4d\xef\xd8\x2e\x7d\x3b\x27\xd9\x73\x37\xa8\x09\xf6\x96\x7e\x94\xaa\x00\x0d\x75\x44\xdb\x8e\x16\xec\x48\x04\x54\xc9\x8e\x73\x6a\xe4\x3b\x45\x42\x5b\x79\xa2\x1b\x90\xe7\xe7\x39\x3e\x04\x15\xc9\x58\x77\xd0\xb1\xd7\xe9\x9a\x27\x75\x8a\xf8\xa2\x63\x56\xc0\xe1\xdf\xc2\xd7\x80\xb5\x07\xac\xc3\x73\xbb\x7a\xdc\x3c\x90\x94\xa5\x9f\x88\xd1\x4c\x6e\xa8\x38\x63\x56\xf0\xce\xab\x37\xec\xcb\xef\x45\xf6\x9f\x33\xdc\x8b\xd3\xa4\xe7\x74\x90\x04\x1d\x41\x11\x3a\xab\x5d\xcf\x03\x8d\x71\x28\x37\x20\x8e\x76\x39\x1e\x83\x27\x22\xa0\x89\xe6\x1e\x83\xde\x0e\x27\x74\xd2\x9f\xe0\xdf\xa0\x9a\xbb\x41\xa1\xf8\x88\xec\x50\x45\x10\x5a\xc5\xf8\x43\x3b\x9b\x5c\x4c\x11\x31\x06\x1f\x2c\x1e\x10\xc5\x68\x8a\x1c\x2c\x2d\x8e\x97\xc6\xea\x2e\x97\x86\x38\xa8\xe5\x39\x7f\xf5\x81\x9d\x6d\xb9\x98\xe6\xd6\x66\xe5\x1b\x55\x64\x02\x82\x99\x24\x97\xb1\x3e\x34\x99\x7a\xed\xbf\xbc\xa1\xd2\x2b\x03\xdc\x9e\xf3\xbc\x73\x4b\x07\xe7\x2b\x4e\xac\xef\x0c\x37\x5f\xfe\x6c\xca\x9b\x2f\x7f\xae\xaf\x38\x58\x14\x0f\x62\x8e\x4e\xd2\xae\x54\x99\xc8\xb1\xea\x68\xdb\x8d\x52\x1e\x68\x42\xac\xa5\xda\x4e\xa2\xac\xce\x8a\x67\x1f\x8c\x1c\xdd\x8d\xd3\x28\x90\x5e\xe0\xef\x50\x16\xb6\xd4\x61\xfd\x9f\xef\xed\xd4\xf4\x17\xa3\xb1\x15\x46\x71\xba\x19\x8b\x42\x77\x50\x99\xee\x71\x18\x61\xb8\x7a\x2e\xb2\x6a\x55\x75\xdc\xca\x8a\x33\x4d\x88\x83\xe5\x2d\xcf\x55\xe1\x80\x6a\x3b\x1c\x64\xf7\xe2\xf4\x99\xfd\xc9\x43\xc2\xb0\x24\xfb\x4b\x6b\x05\x20\x4d\xd7\xa6\x7e\x28\x9b\x5b\x0b\x10\x19\xec\x18\x3c\x8c\x0d\xbe\x45\xdb\x49\xf9\xbd\xf8\x35\xc2\x39\xf1\x30\xd1\xf8\x3d\xdf\xca\x06\x76\x6f\x27\x12\x0c\x82\xf7\x3c\x34\x29\xd6\x5b\xac\xf2\x73\xfb\x9d\x87\x76\x33\x8f\x54\x44\x6c\x95\xd3\xbf\xcf\x75\x73\xd0\x99\x31\x99\x3a\xe7\x1d\x96\x81\xf3\x38\xc6\xf1\x8a\x29\xca\xe5\xf9\x83\xcd\x92\xf3\x58\x06\xd6\x5c\x29\x1a\x91\xd7\x93\xd8\x35\x8f\x03\x2b\x8d\xad\x6c\x28\xcc\x11\x04\x8c\x2f\x11\x33\xa7\x10\x87\x96\xa7\x85\x63\x4e\x22\xba\x13\x26\x94\xf6\x1c\xcb\xfc\xed\x89\x26\x4f\x13\xc9\x2c\xc5\x63\xc9\xbd\xae\x01\x16\x2a\xde\xc1\x34\xa1\xc0\x63\x15\x05\xbe\x30\xec\xae\x7c\xae\xbb\x87\xd6\x42\x47\x0e\xe7\x53\x35\x77\x67\xf5\x7a\x59\x4d\x79\xc6\x14\x4f\x08\x97\x89\xd7\xa2\x15\xd5\x24\x0c\xc5\x93\xa0\x13\x34\x5b\x89\x42\x8f\xd3\x26\x3c\xe1\xb1\xad\x50\x17\x79\x8e\x30\x80\xa1\xd6\x90\xdf\xaa\x78\x02\x32\x09\x26\x3a\x09\xdd\x53\xa6\x91\xc6\x94\xb0\x73\xc4\x9b\xc9\x82\xc3\x53\x61\x43\xf2\xc7\x5e\xd9\x04\xdd\xc1\x6e\xcd\xe2\x82\xa6\xd4\x6b\xe0\x55\xd5\xa6\x68\x6e\xe9\xa2\xaa\xda\xf9\x71\xcb\x16\x55\xb5\x2c\xcb\xfc\x36\xf8\x9b\x5f\xfa\x7b\x20\xc4\x90\x8a\x56\x71\x11\x07\x58\xca\x3b\x64\x53\x72\x12\x4e\xbe\x85\x48\x5d\x29\xbc\x35\xfc\x07\x20\x58\xc5\x65\x6a\x73\xab\x7d\xd9\xbb\xc7\xa9\x75\x0d\x74\x62\x35\xcc\x4f\x8d\xc8\x3a\x4b\x88\x4b\x19\xa2\x55\xf0\xd6\x59\x1e\x5c\x2a\x1a\xba\xbd\x67\x59\x65\xea\xf5\x06\x1a\x91\x4d\x5c\x3b\x2e\x8d\x95\xc2\x59\xe7\x88\xc8\x5d\x96\xe7\xe7\x97\x6b\x88\xc4\x07\x59\xa4\x79\xa3\x95\x2b\x1e\x03\xf5\xb0\x8e\x4e\x11\xd1\x3f\x96\xa6\x3c\xb0\xc5\x7e\x39\x14\xcd\x4c\x1a\x95\x6b\x0a\x38\x9c\xd5\xe0\xfd\xeb\xf5\xfe\xeb\xb4\x59\xcc\x30\x8a\xf1\xe7\x9f\x7f\xb6\x03\x72\x50\xaa\xd6\x35\x90\x3e\xd1\x82\x7b\xec\x58\xd5\xda\x37\x32\xb6\x60\x46\x9e\x2f\x43\xb4\x6a\xa7\xc9\x3c\x0c\x25\x72\x20\x0c\xe1\x15\xcd\x0b\xbc\xbf\x88\x1c\x9e\x3b\xea\x62\xc5\x21\x4a\xa9\x9b\x62\x8e\x05\xc9\x55\x50\xef\x1a\xe1\xe2\x7e\xae\xf6\x4b\x71\x10\x14\x8d\xda\xaf\x65\x79\x19\x3d\x32\x08\x89\x7b\xc2\xb7\xcd\xea\xdb\x66\xf5\xd8\x73\x4d\xfc\x5f\x53\x1f\xe3\xae\x02\x60\x68\x95\x0d\xdc\xd9\xf9\x3a\x16\xc5\x0d\x55\xae\x8e\xa5\xd0\x9b\xd5\xe3\x67\x18\x92\x98\x84\x04\x3d\xe8\x9b\xec\x39\x6b\x44\xde\x0b\xb0\xb6\x87\x22\x64\x09\x68\xc4\x2b\xac\x27\xf0\x9e\x98\x70\x8e\x51\x24\x03\xb0\xba\x9f\xd8\x7d\x31\x49\xad\x54\x8d\x25\x7d\x5c\xbd\x88\x6a\xa3\x47\x01\xdd\x98\x48\x1d\x52\x47\x98\x7b\x98\x9c\x1d\x70\x20\x3d\x5f\xc2\xc2\xaf\x06\xe3\xa1\x13\x07\x32\x40\xdb\xd3\x8d\x7a\x38\x1f\x67\x25\x62\xff\xf5\xbf\xd3\xa5\x36\x0e\x64\x2c\xdd\x3c\xcb\xf4\x8d\xcb\x51\xf6\x91\x75\xdf\x4f\xa3\x5a\xff\x0f\xcc\x09\x7f\x45\x63\xf9\xd0\x96\xf7\xc3\x91\x10\xd3\xd8\x2e\xc7\x39\x54\xa7\xdf\x86\x33\xc7\x7d\x40\x45\xc2\x5c\xba\xe2\xdb\x45\x42\xe5\xe4\x68\xc7\x2b\x62\x4c\xc1\xd6\x7b\x6c\xee\x6f\xd6\x7f\x8c\xf0\x47\x1f\x25\xf7\xa6\xb7\x31\x04\x77\x2a\x17\x2d\x76\xb5\x0d\x23\x68\x76\xcc\xb4\x44\x70\xae\x93\x0a\x1c\xbd\x61\x18\x31\x2c\xbd\x32\x59\x21\xf2\xc9\xc3\x85\x91\xdd\x74\x0a\xf8\xd5\xa0\xd9\x9f\x77\x97\x0c\xb5\x24\x66\x94\x7b\x9e\xe4\xb3\x62\x2e\x04\xae\x1f\xab\x9f\x2b\x2b\xa4\x84\x6c\x6b\x7d\x11\xb4\x8a\xe3\x80\x79\xb9\xb9\x5d\xd6\x7e\xa9\xa7\x0f\x51\xca\x71\x7b\x43\x69\x17\x88\xd5\x4b\x6b\xe2\x15\x5b\x51\xbd\x5e\x6f\x81\x71\x1c\xd9\xb9\x2b\x6c\x74\x6c\x18\xcb\x8f\x63\x69\x55\x49\xda\xcd\x75\xfd\xeb\xf4\xbd\xa8\xca\x3c\x0f\xf8\x38\xf1\x38\xbd\x31\x84\x88\x93\x3d\xd8\xb1\xfc\x0d\x2e\xd7\x02\x9f\x2a\x4e\x02\x4b\x93\x85\x71\x77\x0c\x29\xdc\xf8\x9b\x26\x29\x4d\x3d\x11\xdf\xf7\xa2\xc9\xf2\xee\x80\x01\x12\xfb\x7c\x16\x16\x12\x57\xe3\x19\x96\xf2\xd0\x57\x70\x3e\x16\x58\x20\xea\x49\xc5\x7c\x83\x34\xc2\xa5\xd5\x86\xe4\x3b\x0d\x5b\x7f\x58\x30\x2b\x4d\xb6\x29\x6e\x00\x4e\xa3\xaf\x2e\x98\x40\xb7\xca\xe6\x72\xfc\xaf\x92\x59\x54\xa8\x15\x19\xff\x34\xbe\x18\x4b\x9e\x20\x66\x6e\x7b\x2e\x5e\x11\x11\x04\xd7\x51\x94\xf1\x97\x91\x3c\xc1\x30\x95\x41\xb0\x8c\xdb\xfe\x27\xfd\xa8\x68\x84\x41\x74\xbb\x44\x36\x33\x04\x2d\x33\x96\x6b\xac\x54\x42\xba\xe5\x40\x34\x80\x80\x4e\xb7\xea\xfc\x17\x07\xe7\xe1\x8a\x0c\xf9\x13\x77\x3c\xd6\xdc\x60\xc7\x9f\xce\x32\xcf\x14\x82\x42\x9e\xe0\xf9\x9c\x8b\x0a\x1d\x2c\xdf\x5d\x40\x98\x0a\xfc\x07\xcc\xc5\x25\x2b\x9e\xbf\xf5\xe1\x96\x18\x58\xe0\x95\xf6\x56\xe7\x26\xeb\xb8\xa5\xce\x03\xf0\xea\xcc\x5f\x77\xb6\xd1\x0a\xe7\xb5\xc9\x64\x59\x08\xa5\xb2\x87\xb2\xc9\xcc\xc4\xa2\x4b\x48\x9c\xc4\x1d\x57\x75\x1f\x3b\x4c\x82\x00\xc0\xbe\x41\xb3\x83\xdc\xd5\xb5\xfd\x25\xbb\x21\x09\x78\x80\xc2\x78\xdf\x7e\xac\x7e\x4b\x9a\xd2\xb6\xa6\x18\xc0\x7c\xcd\xf2\x7c\x59\x8a\x4a\xff\x6d\x18\x65\x4d\x02\x6d\xa8\xeb\xa2\x2e\x78\xe9\x0e\xd1\x28\x45\x77\x63\xb7\xe8\x09\x10\x54\xc2\x62\x19\xf7\xd4\x7f\x1e\xe3\x78\x28\x8b\xfc\x72\xb8\x81\xb7\xd9\x35\x38\x19\xfc\xdb\xbf\x07\x4b\x43\x2c\x64\xdf\xac\x1e\x9d\x0e\x9c\x3f\x60\x2c\x93\x5e\x85\x10\xaa\x6a\x84\xc4\x4e\x42\xc7\x80\x7d\xd8\xb7\x1e\xda\xa3\x23\x8a\xec\x8e\xc6\x96\xc2\xc7\x97\x87\xfe\x98\xc9\x81\x25\xa1\xb1\x7a\xf2\x35\x78\x65\xc5\xf9\xa5\x3b\x89\x82\x08\x13\x7d\x4e\x4f\xcf\x56\x40\xcd\x62\x9d\xaf\xa8\xa0\x06\xfe\x73\xc2\x89\xcd\x5a\x67\x45\x0d\x95\x45\x3c\x7d\x42\x66\xa4\x92\x98\x73\xc5\x9d\x6d\x61\x83\x39\xb5\xd5\x56\x9b\xbc\x47\xcc\x2d\x84\xb6\x80\xf7\x8d\xde\xbd\x64\x27\x07\x50\xf3\x9d\x11\xcb\x2e\xc9\x7f\xb0\x30\x87\x43\xdd\xb3\x6a\xa9\x24\x49\xc1\x43\x70\x97\x99\x9e\x0c\xdc\x24\xb5\xa1\xe2\x23\x6a\x28\xad\x5c\x6e\x6d\x0a\x2d\x4b\x52\x02\xa1\xea\x25\x11\x2c\x95\xf5\x47\xfb\x6f\xef\x66\x26\x29\x8b\x11\xba\xec\xbd\x94\xd5\x0c\xf2\x60\xd2\x2d\x69\x18\x22\xce\xc6\xa3\x93\x86\xe1\xdb\x91\xeb\x37\x1e\x6d\xff\xe2\xff\x3b\xbd\x90\x49\x75\xd8\x11\x88\xcc\x58\x33\x93\xc8\x55\x22\x48\x6c\x01\x1a\x70\x3c\x95\x95\xc8\xbf\x17\xdd\x92\x9c\x08\x46\x03\x87\x0a\x71\x8b\xbf\x43\x76\x0f\xe3\x33\xbe\xad\x4a\x92\x3e\x5d\xe2\x01\x17\xad\x3d\x31\x42\x5a\x4d\xff\x0e\xf2\x79\x89\x24\xca\xa9\x43\x35\x07\x51\xc9\xac\xa9\x0f\xc7\xac\x38\xa8\xdf\x69\x92\xa8\x44\xf2\x28\x8d\x47\x14\x25\x1d\xb5\x6b\x8d\x53\xff\x1a\xe0\xd4\x75\x80\x94\x0c\xdd\xc2\x77\x8c\xf2\x0d\x2a\x65\xa6\xf7\x70\x95\xfc\x08\xea\xf6\xec\xc8\x93\x11\xd3\x7a\xb9\xa8\xc7\x89\x5a\x37\x3d\xdf\x50\x7b\x44\x04\xe0\xc6\xfd\x7c\x25\xf3\xfc\x9b\x29\x91\x60\xa6\xa8\x75\x33\x96\xf0\x9c\x15\x03\x70\x42\xa2\x74\xc8\x42\xef\x52\xcb\x76\x25\xab\x47\xd1\x90\x44\x53\x2b\x73\x59\xd9\x2d\x7e\xd9\xa8\x19\xfb\x21\xd1\xc2\x8a\xfd\x20\x79\xc7\xa6\xe8\x78\x7c\x55\x02\x4c\x46\x74\xc0\x28\x3f\x12\x5a\x53\x09\x70\x8e\x54\xa4\x5d\x76\x1a\x1b\x59\x48\xd9\x0d\xc8\xcc\x33\xc0\x7d\xbe\xe6\x83\x50\x89\x33\x45\x06\xc3\xde\x52\x1e\x8c\x5b\x1a\x4a\x70\xac\xde\x88\xfa\x25\x53\x33\xe5\x62\x33\x7b\x84\x61\x14\x37\xa9\x17\x5f\xdb\x7b\xb5\xdb\x25\x26\xe5\xe8\x8e\xcb\x81\x0c\xfc\xe8\xc6\x29\x09\x39\xfa\xe4\x17\x10\xd5\xfe\xbd\x74\x8c\x8b\x7f\xf3\x47\x63\x22\x23\x5b\x40\x53\x9f\xf3\x46\x6c\xab\xf2\x4d\x8c\xa7\x47\x4a\x12\x8e\x53\x69\x5d\x64\xcf\x47\xd1\x9d\x09\x80\x1c\x0c\x37\x0f\x8b\xa7\xa6\xfc\x52\xe6\xfa\x0f\xf5\xf2\x3c\x08\xfd\xa5\x41\x22\x31\xa2\xff\x8e\x31\x65\x5f\x53\x92\x52\xa2\x51\x1e\x2f\xcf\xfe\x73\x46\xc1\x97\x6d\x59\xe6\xfb\x41\xd2\x21\xa5\x91\x09\xba\xb4\x1a\x06\xd4\x46\x35\x0a\x29\xe5\x1c\x88\x1b\x90\x3b\x91\x8b\x6a\xe2\x20\xa5\x2c\xb4\x35\x88\x65\xbb\x7d\xdf\x96\xd5\x8d\xb8\x58\x0e\x01\x3f\x73\x52\xc6\x01\x67\x9d\x4d\x75\xf6\x7d\x37\x8b\xaa\x0c\xfc\x49\xae\xbc\x14\x0f\xbe\xc0\xaf\xba\x99\x2c\xbb\x69\x18\x84\x94\x79\xe9\x6a\x5f\x57\x8d\xca\x38\xd5\x2c\x61\xa0\x4a\xa3\x54\x20\xd9\x23\x16\x92\xed\x31\x06\xeb\xdd\x88\x94\x13\x89\x30\xca\x61\xd1\xd5\x0e\x71\x0e\x5b\x71\xa9\x07\xb0\xff\xf9\x52\x54\x7f\x95\x80\x12\x37\x11\xbe\x66\xcf\x2f\xb5\x2a\x3b\x08\x4b\xca\x45\x2c\x86\xd2\xa9\xc8\xe8\xdb\x5e\xd8\x1f\xd7\x24\x74\x5b\x72\x31\xd1\xc4\x56\x69\x1c\x58\x02\x66\x6b\xc6\x81\x40\xe0\xd4\xb5\x68\x92\x4a\x93\xd0\x84\xc2\x79\xbc\xb6\x9f\x6f\xcb\x6a\x7d\x9e\x92\x32\xcf\xcf\xb1\x34\x65\x21\xc6\x78\x0e\x27\x71\x31\xfd\xa3\x89\x50\x0a\x4f\x22\x0b\x75\xf3\x88\xe2\x1a\x7f\x1b\xbe\xb8\x88\x74\xe4\x56\xbd\xc5\x59\x67\xf6\x9f\xe9\x4e\x99\x0a\x1d\x06\x9d\x0c\x1e\xca\xfd\xea\x61\x22\x25\x15\x86\x05\x6e\x27\xdd\x9d\xca\xa2\x2e\x3b\xba\xfb\xd1\x65\x54\x48\xb0\xf2\xfd\xfd\x25\x6b\xe0\xc5\x73\x0a\xa8\x54\xa5\xb1\xaf\xf7\xc6\xfc\x63\xbd\x85\xaa\x4f\x9d\xfa\x90\x4a\xaa\x59\x8c\xe6\x9b\x89\xfc\x89\x3a\x65\x32\xe9\x65\xa9\x2d\x65\xed\x2c\x02\x32\x05\x20\xe1\x10\x52\x89\x46\xad\xb5\x2c\xbc\x7d\x96\x9a\x84\x07\xda\xa7\x3b\x90\x9a\xc6\x1f\x30\x56\x1d\xa1\x41\x0d\xe6\xe2\xd9\xd6\x1d\xc1\x17\x28\x9c\x90\x87\x12\x41\x64\xb1\x2d\x42\xeb\x07\x78\x7f\x12\xff\xfd\xad\x47\x3f\x5c\xc6\x44\x90\xa6\x7e\x25\x5e\x96\xe5\x6b\x56\x3c\xaf\x86\xc5\xb9\xae\x15\xa5\x29\x4e\x7a\x8d\xa4\x38\x5b\xa8\x30\xee\xf2\xd4\x7a\x21\xfe\x39\x22\x4a\x10\x76\x7a\x27\xce\x85\x7a\x71\xe9\xc8\xf1\xb6\x21\x22\xc5\x51\x47\x70\x91\xe7\xf7\xad\xcd\xd3\xfd\x9c\xc8\x9e\xd2\xe5\x36\xcb\x8f\x23\x72\x81\xd1\x90\x10\x9c\xf2\xc4\x7a\x9e\x5d\x62\x6b\x7c\x9c\xf1\x38\x1a\xb2\x36\x3c\x1a\xab\xb5\x34\x5a\x9b\x05\x8f\x00\xa3\x07\xff\x73\xff\x3f\x43\x1f\x52\x70\x11\x22\xae\x47\xd4\xed\x0a\x61\x71\xff\x93\x58\xbb\xe0\x92\x52\x17\x90\x5e\x1f\x4f\x79\x79\xb9\x9e\xec\xbe\xa5\x22\x9e\xca\xca\xd7\x6b\x4c\x7a\x96\xeb\x80\xf4\x31\xf9\x79\xde\xce\xae\x69\x24\xd2\x3e\x28\xb2\x3c\x5f\x06\x72\x14\x4a\xc4\x42\x60\x00\xf1\x57\x59\x3d\x81\x3e\xbb\xdd\x38\x99\x42\xaf\x45\x42\x22\x24\x54\x3d\xbd\x57\xb7\x79\x29\x3e\x8e\xc8\x4e\x4e\x4b\x04\xaa\x3a\x28\x51\x2c\xcf\x13\x8f\x4d\x24\x92\x10\x8b\xcc\xb8\x81\xb6\x43\x5a\x93\x6e\xa6\x80\x48\xa4\x91\x4a\x7a\x5b\xe7\xd4\xc0\x81\xfa\x2c\xbf\x48\x79\x6c\x58\xa7\xad\x59\x61\x1e\xf8\x2a\x65\x25\x52\x6e\x15\xad\x1a\x10\x47\xdc\x1b\x1c\x18\x74\x4c\xb6\xac\x84\xe4\x96\x8f\x13\x43\xa6\xad\xe5\xeb\x66\xa7\x93\x98\x1a\xcd\x01\xe5\x08\x15\x6d\x44\xc7\xea\xa1\xf9\x43\x94\x59\x74\x41\x75\xae\xfb\x7b\x8c\x5f\x4a\xb1\xc4\x4a\x60\xe8\x37\x51\x28\xd8\x35\x70\xea\x4e\x37\x09\x62\x30\x75\x39\x26\x55\x57\x42\xc7\x01\xd2\x8b\x3f\x59\x46\x2a\x97\x55\xe9\xc7\xa7\x8e\x55\x08\x5d\xb2\xfb\xf5\x1f\xcd\x65\x5f\xe2\x3a\xb3\xaf\x84\xbe\x62\x60\x10\x40\x52\xf4\x0b\xeb\x2c\x87\x42\x81\xa3\x90\xf2\x07\xa5\xc2\x07\x5c\x3e\xdd\x8e\xc6\x3a\xe8\x04\x05\x6b\x6d\x9d\xc7\xd0\x35\xb0\x0d\x24\x21\x46\x53\xef\x0c\xd9\xd0\xc6\x21\x53\x65\x91\xfd\xc7\xdb\xd1\x27\xa8\x1c\xd4\x6e\xd4\x27\x92\xd0\x08\xe3\xf4\x8e\x87\x5a\x98\x51\x7c\x4e\x12\x19\xe1\xba\xfe\x84\x95\x72\x94\x90\xc5\xed\xfe\x5b\xc0\x77\x70\x6a\x76\xa2\xd0\xb2\xfc\xe5\x5b\xd2\x20\xc0\x24\x64\x27\xae\x79\x2b\x54\xe3\x49\xc6\xe7\x67\x9d\xa4\x9c\x48\x07\x14\x38\xe8\xec\x08\x45\x3d\xa4\xa3\x18\x8f\x6b\x49\xe3\x00\x03\x38\xce\x94\xad\x5a\xef\x17\x81\x90\xf3\xd7\x66\xd4\x58\x2a\x6e\x3b\x44\xbf\x3a\xbe\x70\x7f\x54\x13\x1f\xa8\x77\xfa\x0f\x96\x9d\xde\x0d\xbe\xd6\x46\xd8\x67\x2e\x22\x96\xf8\x73\x40\xa0\x67\x7d\xb7\xb8\x5f\x3e\x1e\xf6\xff\xdc\xae\xfd\xd5\x42\x02\xb8\xea\xf6\xf4\xbf\x03\x52\x7f\x25\xc3\x34\x41\x23\xef\x4f\x38\x8f\x2a\x75\x65\x68\x8c\xaf\x8b\xb4\xc8\xa7\x15\xaa\x9d\xb9\xa3\x51\x9c\xfa\x4a\x3f\xa7\x55\x55\x89\x49\x25\xa3\x8c\xa4\x8a\xc3\x0e\xb6\xdf\x60\xbc\xf1\xaa\x03\x27\x1d\x19\xf9\x95\xcc\xbb\x55\xe5\x84\x47\x1d\x9b\xc4\x64\xe8\xac\x58\xd3\xa4\x9d\x57\x2e\xb8\xbb\x71\xb5\xec\x9f\x72\xeb\xe1\x85\x50\xea\x60\x9f\xa9\xbd\x50\xdb\xb2\x11\x1d\x56\x45\xf2\x90\x63\x79\x4d\x71\x3e\x3e\x9a\x9f\xa8\x9c\xde\x1d\x02\x8a\xa0\xbf\x3b\x10\xba\x35\xf3\x77\x47\x51\x8d\x40\xe9\x32\x21\x54\x5a\x32\x20\xa7\xab\xd2\x93\xc5\xfa\x16\x2c\xf6\x34\x0e\xab\xd2\x15\xa1\x0c\xf3\xc8\x32\x51\x06\x57\x13\x47\xb5\xf9\x49\x92\x03\x9b\xea\x01\xe0\x19\x7d\xa4\xdb\xb2\x1a\x65\xf5\x64\x4a\xac\x2c\x1c\x56\x7e\xbd\x95\x99\x82\x7a\xb4\x47\x4f\x2e\x9a\x86\x51\xea\x68\x35\xdb\xa3\x8f\x66\x68\x77\xc9\xd4\xd5\x96\xb6\xae\xd5\xea\xf1\xa9\x29\xd7\xfb\xd5\xe4\x2b\x09\x66\xd9\xe6\x1f\x51\x7f\x2d\x2b\x0b\x91\xef\x4e\xf9\x34\xeb\x2f\x45\x18\x60\x90\xbf\x6e\x4a\x0f\x70\x9a\x7c\x25\x65\x2c\x2d\x4c\x6b\x27\x14\xcf\x63\xef\x74\x7c\x2d\x1d\xd2\xc4\x95\x12\x60\x71\xde\xf3\xc7\x3a\x17\x4a\x6a\x1e\x62\x36\xd5\x1a\x51\x9b\xc9\x8e\x2a\xb5\xb1\xfe\xb4\x44\xc1\x74\x2f\xff\x3e\x6b\x9c\x49\x88\x6d\xb0\x7e\xf1\x5c\x65\x58\xd0\x31\xe2\xef\xf0\x8d\x64\xa7\xc3\xbe\x2a\xf3\xb2\x5a\xf6\x49\x55\x09\x8a\xa1\x48\xc9\xed\xd3\x77\x0f\x53\x44\x46\x76\xea\x0a\x2e\x10\xb7\x3b\x66\x75\x57\xd2\x80\xf6\x7a\xd7\xcb\x72\x4a\x39\xa3\x5a\xbf\xa2\xbb\x1d\xee\x91\x2c\x1e\xed\x57\x8a\x18\x89\x7c\x35\x0d\xd4\xcd\xad\xc8\x72\x57\x38\xf2\x50\x36\xc3\xf5\x41\x05\x94\xe3\xd2\xb9\x58\xae\x66\x70\x8d\x2a\x60\xd6\x51\xd3\x50\x37\x55\x79\x79\x2a\x9b\x72\xbe\xbe\x4b\x05\x21\x4d\x7b\x89\xdb\x75\xe3\xa9\x4b\x3e\xaf\x00\x54\x41\x44\x02\x1b\x09\xec\x40\xe6\xbf\x14\xc2\x7e\x3e\xce\x11\xaa\x80\xb3\xa8\x97\x79\x5a\x96\x65\x0e\xa2\xb0\x79\xec\xf1\x43\x51\x9a\x18\xc7\x62\x62\xed\x3b\xff\x3b\x97\x71\xe0\xcb\xde\x0f\x28\xfe\x05\x0e\x1c\x59\x4c\x86\x8a\x62\x8a\x49\xdb\x91\x55\x25\x4c\x59\x1d\xbd\x46\x92\x3b\x1e\x46\x76\x2a\xd9\x2c\xc9\x4a\xf4\x50\xe7\xbf\x22\x1e\x1a\x5c\x07\x72\x47\xff\xfa\x9b\x28\xee\x70\x98\xf5\xf9\x88\xa5\xc1\xfe\xf6\x51\x28\xd0\x53\xb6\xb7\xff\x02\xc5\x97\x33\xca\x15\x7f\xd0\x75\x9c\x5a\x62\xc7\x6d\xd9\x94\xc3\x45\x4d\xf1\x30\x44\xf7\x62\x77\xec\x73\x5d\x2a\x0e\x14\xe2\xbf\x56\x8f\xf7\xf7\xdf\x1f\x36\xfb\x7f\x1e\x16\x77\x77\x8f\x3f\x17\x0f\xab\xf5\xe1\x6e\xb3\xdb\x77\xed\x22\x82\xdc\x15\xe7\x42\x95\x56\x91\xb1\xdd\x50\x90\xbf\x7c\x9c\x75\x18\x3f\x4c\x1c\xc5\x88\x20\x7b\x2b\xf3\xf3\x11\xf6\x97\x53\x17\x8d\x56\x71\x9c\x62\x21\xf4\x97\xdd\xa6\xfb\xc9\x68\xa4\x40\xcf\x0a\x63\x1f\x7d\x97\xe5\x6f\x63\x07\x43\x25\x5c\x22\x8b\xf0\x17\x4c\x82\xc3\x65\x96\x49\x0c\x9b\xe1\xf4\x69\xc4\x6b\xeb\x98\x3d\x94\x8d\x8b\xaa\xdc\xb6\x76\xb1\x39\x17\xda\x9e\xed\x9b\x6b\xab\xb9\xea\xb4\x83\xec\x04\x9a\x59\xcc\x94\xa0\x21\x25\x83\x42\x8e\x41\xce\x4f\x89\x38\x46\x70\xd3\x73\x7b\x85\x53\xdf\xf1\x42\x73\xe3\x36\xe2\xf6\xe2\xde\x43\xec\x07\xab\x30\x51\xca\x06\x32\x98\xa7\xb2\xfa\x94\x75\x78\x34\x70\x24\x8d\x04\xf5\xe2\x10\x28\xd6\xa2\xad\x17\xbb\xce\xc5\xa9\xc6\x17\xfe\x91\xa9\xa6\x9c\x22\x66\x94\x0c\x63\x44\x0e\xa2\xb2\xc3\xd6\x13\xe1\xb6\xbf\x5b\x2d\xb7\xd6\xc1\x40\x84\xe5\x03\x32\x82\x9f\xce\x8d\xb8\xd2\x0b\x52\x4a\x72\xc5\x9c\x1d\x31\xc7\x19\xa7\x94\x8c\x6d\x8d\x09\xae\x7f\xb7\x33\x80\x64\xdf\x4e\xe8\x88\x8c\x4a\x83\xfe\x32\x24\xe1\x2f\x6a\xf8\x4e\x6e\xa8\x22\xc0\xa2\xc4\x4c\x95\xbd\xb0\x93\x52\x2a\x09\xf0\x63\xe4\xa2\x6e\x7e\x5a\x12\x42\x0c\xf9\x38\x6c\x87\x6f\x65\x14\x9a\xae\x08\xd7\x42\x0d\x5a\x0c\xda\x66\x65\x31\x0e\x62\x2a\x1d\x28\x5f\xfe\xd1\xda\xac\x65\x75\x71\x20\xd3\xf9\x71\xab\xa5\x95\xdb\x18\x69\x3d\x7c\x5e\x0b\xab\x4c\x40\x11\xb3\x88\xec\x64\xbe\x82\xc1\x1f\x8b\x2c\x07\xe4\xfe\x71\xb7\x29\xea\x26\x6b\x2c\xd6\x65\x53\xb4\xcf\x88\xcc\x25\x23\xa7\x56\x99\x48\x25\xc6\x23\x5a\x72\x78\x16\xba\xbc\x81\x75\xad\xce\x90\x0b\x24\x00\xbe\x5c\x61\x17\xe7\x7b\xd7\x68\x4e\xe4\xe0\x45\xdc\x0d\x74\x40\x52\x1c\x75\x42\xeb\x45\x57\xd2\x84\xf3\x6d\xb2\x2b\xb7\x46\x22\xef\x69\xe2\x91\x8a\x7c\x40\x48\xef\x1b\x49\x6e\x0b\xca\x6a\x17\xf9\xc1\x24\xf1\xec\x4e\xa4\x69\xa0\x31\x10\x8d\xcb\x96\xf5\x8d\xd6\x6f\x73\x7c\x2d\xb3\x6f\xa4\x29\x27\x60\xa3\x1f\x3f\xcb\xea\x75\x51\xe8\xad\xb8\xac\x97\x7e\x85\xd4\x54\x1b\x8c\x81\x0d\xa2\xd5\xed\x06\xf7\x33\x6b\x5e\xca\x73\x33\x53\x19\xa4\x59\x64\x2d\x98\x9b\x7f\x0c\xb2\x84\x9a\x71\x86\x05\x8f\x87\xd6\x6e\x77\x45\xed\x1f\xbc\x50\x14\x10\x80\x8e\xcc\xc0\x0e\xd0\xfa\xd3\x04\x99\x8e\x74\x84\x6b\xd1\x4e\x28\x51\x1d\x96\xb9\x50\xaf\xd7\xd9\x16\x1d\x19\xab\xcf\x21\xb4\x5e\x95\xe7\xaa\x9e\xd4\x04\xea\x38\x11\x54\x7a\x0a\xdc\xdd\x09\x54\x26\x72\xac\xd5\xbd\x17\xa7\xd3\x9c\x04\xd6\xf8\x21\x12\x62\x29\xa1\xea\xd6\x9e\xec\xf8\x2e\x95\x4e\x53\xe9\x15\xdc\xee\xc5\xaf\x1b\x38\x89\xaa\x39\x23\xfd\xf0\xa4\xe7\x52\x41\x90\xb5\x10\xa3\x68\x07\x7a\x38\x8a\x5f\xaa\xe3\x67\xd1\x82\x58\x67\xb1\x46\x5c\xf0\xa3\x19\x8f\x18\x41\xac\xd9\xd4\x39\x28\xce\xa4\x48\xfc\x71\x1e\x59\xe9\x06\xad\xbf\x3b\x29\xf2\x0f\x98\xbe\xdd\x09\x92\x04\xb8\x3f\x8b\xe6\x97\x85\x87\xb7\xcd\x87\xbe\x80\x96\x4c\xa0\xb5\xed\x35\x48\x87\x42\xc7\x4a\xcb\x34\xe6\x74\xe4\x2d\x5a\x43\x70\x86\x54\xb3\x6d\x9c\x50\xd9\xc5\xb5\xa0\x2a\x6f\xe0\xf1\xfc\x96\xe9\xb2\xca\x44\xdd\x5d\x51\x87\x68\x8e\x1e\xbd\x7a\xd6\xf2\x7c\xf9\xbc\xf6\xc0\x9d\xa8\x99\xd5\xce\xfc\x69\xa9\x0d\x1d\xd2\x7c\xfe\xb5\x75\x4a\xf1\xb1\x4f\x70\x2f\x7e\x6d\xa1\xb2\x7c\xbc\xfe\x11\x20\xe2\x96\x4d\x1d\x0a\x8d\x51\xc2\x7d\x79\x03\xbf\x26\x9f\xd1\x70\x82\xe1\x81\xfd\xd9\xc1\x5d\xba\xdf\xe3\x84\x0d\xd6\x8e\x1b\xa4\x27\xef\x32\x22\x40\x84\xe5\xb7\x7a\x86\x41\xa9\x6e\xe2\x0f\xaa\x10\x6b\xff\xb1\x2f\xb7\x9d\x40\xd7\xef\x2a\xb7\x06\xde\x11\x04\x94\x21\x2b\xdc\x4b\xf6\xfc\xb2\xcc\x74\x9f\xd6\x80\x80\x05\xa1\x5b\x1e\xed\xe0\xb0\x1c\xb2\xa3\xd7\x82\x20\x36\x38\x82\x5c\xee\xdb\x16\x1c\xfd\x65\x0a\x82\x4f\x17\x21\x08\x4c\x88\x84\x56\xde\xe8\xb7\xa5\xec\x77\xed\xdc\x6b\x9e\xe0\x0d\x77\xa0\x87\xb2\xc1\x9f\x07\x78\x19\xa0\x21\xc5\x42\xe3\x85\xd6\xbb\x17\x51\x81\x76\x59\x9b\x2b\xec\xc8\xa7\x50\x32\xa0\x31\xf7\xcc\xee\xb7\x96\x83\xde\x57\xff\xf5\x09\x6a\x60\x54\xa1\x65\xb7\xf8\x39\x94\x3e\x54\xc0\xc2\x04\x7f\x57\xed\xfa\xbb\x1b\xa3\x3a\x80\xa5\x82\xd9\xe2\xf6\x76\xa9\x87\xfd\xbc\x74\x90\x82\x28\x14\x88\xe4\xf5\x1d\x60\x43\xe1\xed\x2a\x6b\xa9\xa0\xed\xbf\x3b\x71\x84\x4d\x03\xc7\x8e\xca\x07\x22\x23\xd0\xc9\xfe\x0a\x17\x23\x8a\xd1\x73\x71\x9d\xa4\x03\x8a\xfe\xbd\xf8\x75\x45\xcc\xaf\x20\x26\x42\x38\x23\xee\xa6\x54\xe7\x23\x92\xd4\xfd\xe7\xdc\xb3\x30\x07\x7c\xd2\x57\x71\xc0\x91\xcf\xca\xce\x22\xbb\x34\x4c\x5c\x0f\x88\xb5\x7d\x6b\x1f\x19\xde\x5d\x8e\xb2\xcc\xaf\x62\x93\x90\x04\x29\x50\x07\xca\x55\x2f\xde\xe2\x84\x34\x4c\x30\xc8\x80\xe7\x1e\x58\xf7\x73\x0c\xd2\x89\xc8\xdd\x8b\x22\x33\x50\x37\xe5\xb0\x2a\xcd\x37\xd3\xd4\x93\x09\x9d\x4f\x48\x27\x3a\x69\x20\x78\x8a\x9a\xa2\xcf\xa2\xbe\xef\x66\x27\xc8\xd8\xce\xce\x4a\x14\xaf\x6e\xcf\x39\x74\xc7\xa4\x55\xc5\xac\xa1\x79\x3c\x7d\x11\xbf\x09\x16\x81\x94\x09\xe6\xe2\x6c\x80\x17\x6d\x91\x12\x13\x71\xe3\x5e\x92\xc6\xa0\xe7\xe9\x70\x6f\xa8\x2e\xe6\x0e\x29\x1a\xa8\x21\xb7\xc2\x04\xad\x09\x2a\x8c\x31\x2f\xa2\xca\xa2\x00\xd5\xec\xfb\x5a\x74\x50\xa9\x87\xe8\x21\x09\xf0\xae\xc7\xc2\x80\xd2\xb1\xc5\x07\xb7\x6e\xe7\xf9\xd4\xfd\x0c\x31\x32\x08\x1c\x0e\x56\x8d\x74\x26\xdb\x0d\xca\x50\xe0\x13\x78\xb6\x8d\x25\x8f\xdb\xe9\x28\xe0\xd6\xc3\xad\x55\x95\x9d\x5a\xab\xac\x5d\xcb\xa0\x1e\x3b\xb8\xa0\x93\x90\x4a\x27\x0a\x73\x28\x4d\x5f\x27\x0f\x5a\x13\xd2\x47\xe7\xb2\xe3\xf9\xb8\xf1\x29\x01\xfd\x8c\xc5\x56\x98\x4d\x9b\x58\x1d\x00\x8c\xfa\x7a\xac\x03\xca\x8f\x1c\xfc\x32\x7b\x10\xa3\x7c\xba\x6f\x2f\x8c\xe8\x81\x78\xae\x38\xb2\x6e\xbf\x81\x67\x5c\x04\x13\x70\xa4\xf7\xf3\xac\x14\x8d\x97\x3b\xfa\x79\xf7\xc1\x2c\x36\x91\x05\x62\x1d\xc5\xaf\x9f\x90\xed\x33\xa8\xba\xc1\x6b\x54\x80\x01\x89\x17\x51\xcf\xc5\xd9\xc1\x18\x8d\x34\xad\x1f\xac\xef\xb3\x03\xcd\x10\x1e\xa1\x3b\x88\x5a\xfb\x34\x1a\xbf\xa2\xa1\x5c\x8c\x78\x1d\x51\x00\xc5\xfa\x80\xa3\x7b\x1b\x1a\x87\x88\xaa\x96\xd9\xf3\xcb\xe5\xe4\x87\x8b\xa1\x20\x31\x6e\xa5\xb3\xfa\x54\xb6\x8e\xdd\x07\x91\x3e\xc3\x52\x70\xfc\xd4\xd9\xa1\x1e\x16\x91\x1a\x26\x18\xd6\x57\x76\x34\x4b\x59\xf3\xd2\x39\x88\x86\x69\xab\x41\x65\xd9\x7c\x57\x90\xe7\x08\x85\xf2\x47\xdb\xf1\xea\x39\xaa\xbe\x9c\xa1\xae\x0f\xcd\xfb\x5c\x61\xa2\x61\x26\xb0\xdc\x6c\x2f\xa0\x5e\x37\xc5\x9b\xb0\x9a\xe4\xfe\x42\x21\xb3\xd0\x66\x5b\x88\x31\x89\x59\x8e\x7b\x22\x64\xd6\x79\x92\x8d\xea\xd6\x58\x13\x72\x83\xf6\xa8\xc5\xa7\x60\x70\x60\x6e\xfe\xbb\x9d\xda\x44\x24\x24\x62\xba\x8d\xfb\x81\x6f\x22\x6a\x8c\xec\x37\x84\x2b\xae\x04\x13\xc5\x54\x78\x9f\xbd\x6c\x32\x35\x5e\x32\x4d\xa4\x85\xcf\x00\x3a\x3d\xba\xb7\x09\x5d\x88\xe1\x71\x8a\x9f\x73\x50\x79\x1a\xa4\x33\xa5\xa7\x86\x27\x14\x53\x93\xab\xec\xf5\x55\x0c\x2c\x15\xc3\x41\x63\x66\x07\x0d\x51\x44\x31\x4c\x51\x25\x26\x56\x96\x35\xb7\x7e\x29\xdf\xbd\xd4\x89\x8d\x64\x8d\x7b\x34\xd6\x21\x32\x8d\x6d\x9c\x08\xae\x67\xa1\xf8\x09\xd9\x3c\xce\xc5\x9d\x97\x24\x11\xc2\xe9\xb3\x7a\x99\x35\x3b\x18\x37\xf3\x5d\x9d\x08\x05\x6a\x30\x43\x97\x99\x8e\x26\xfd\x9d\x6a\x89\xf3\xaa\x1d\x7d\x2e\x5e\x3e\x77\x25\x91\x52\xac\x42\x5f\x2e\xfe\xba\x62\x82\x32\x42\xa4\xe0\xc9\x86\xbd\x5d\xd9\x7d\x06\x21\x14\x96\xee\xdc\xdc\x3f\x0d\xf7\x65\x83\x29\xb5\x01\xf4\x75\x5b\x81\xce\x6c\xc8\x71\xce\xf7\xf4\x4f\x28\x59\x84\xa8\x03\x28\xea\xdd\x59\xea\xf2\x28\x32\x47\xaa\x54\x09\x4b\xd9\xea\x1b\x0a\x82\x2b\x21\x34\x2f\x1d\x5d\xdf\xf8\x9b\xa8\x30\xee\xe4\x26\xca\x1a\xff\x37\x2d\xef\x30\x2a\xb1\x62\x37\x42\x5b\x76\xb8\x39\xb3\xdd\xe8\xc0\x60\xd4\xea\x47\x56\x3d\x67\x23\xeb\xc3\xe8\x38\xc1\x84\x67\x59\xe4\x97\x65\x79\x2e\x14\xf2\xcc\xaf\x7f\x35\x36\x61\x35\x79\x22\x9d\x58\x30\xd1\x4a\xd4\x2f\xdb\xf2\x15\xeb\xb5\x47\x97\x03\x1a\x29\x9b\xa0\x3d\x1d\x16\xab\x75\xf7\x33\x8f\x31\x4c\x83\xf9\x0c\x53\x56\x5d\x28\xd4\x1d\x37\x91\xf4\x65\xf2\x1b\x2b\xc8\x32\xbc\xaf\x26\x44\x26\xc0\x86\x12\x03\x57\x33\xbb\x37\xa0\x35\x09\xc2\x00\xf9\x54\xde\x5f\x44\xe7\xbb\x8f\x86\x9b\x26\x81\xd4\x38\x22\x57\xfb\xc7\xbf\xb9\x9f\xa8\x4a\x22\x0b\x27\xfb\x77\xbb\x55\x7f\x9c\x32\xd1\x84\x45\x89\x4d\x43\xdb\x3a\xb7\xbe\xf4\x43\x13\x96\x30\xe5\xdc\xa9\xe6\x25\xab\x8f\x67\xf5\x02\xcd\x8b\x29\xab\x4b\xeb\xc9\x9e\xce\x63\x2b\xa8\x6d\x9f\x78\xa1\x1a\x14\x84\xbd\x22\x53\xd4\x84\x09\xea\xa5\x19\xef\x2f\x4b\x0f\x1c\xd1\x84\x81\xa2\xe9\x40\x84\xc6\xaf\x0b\x9a\x44\xda\xc6\x0a\xee\xb3\xa2\x19\x66\x5b\x35\xe1\x34\xf4\x54\xb8\x3f\x36\xdb\xa9\x24\x6b\x7b\x5c\x0c\xe4\xbb\xef\xe1\x28\x3f\x48\x70\x6a\xc2\x63\xa6\xc3\x01\x7c\x6e\x74\x9f\x84\x48\xcc\x7f\x68\xf4\x37\x31\xbf\xc6\xba\x63\xa9\xc4\xcf\x63\xa9\x38\x96\xe7\x3a\x2b\xa0\xae\x77\x97\xba\x81\xe3\xff\x89\xd8\x46\x93\x94\x5a\x16\x71\x94\x7a\x69\xd4\xcb\xe4\x6d\xd2\xd8\x3a\x94\xab\xa7\xc7\x9f\x37\x87\x9f\xeb\xf5\x37\x7a\xd8\xae\x9f\x36\x8f\x37\xfe\x59\x84\x13\xd4\x6a\xfd\xc4\x5f\x2a\x3f\xd7\x99\x0f\xbc\x6b\x22\x9c\x7a\xa1\x01\xd8\x42\xf5\xbd\xc8\x9a\x47\x33\xa4\x71\xef\x9a\xc5\x90\x58\x5a\xd3\x5a\xe4\xb0\xfa\x1d\xa0\x53\x13\xa1\xb4\x10\x1e\x16\x85\xb1\x7e\xed\xc2\x76\xe2\x19\x10\xa2\x3a\x7e\x4b\xc5\x12\xac\x7d\x03\x4f\x57\x8a\xa5\x60\x37\x95\xb8\x7a\x16\x15\x5a\x6d\xce\xb6\x3f\xa0\xae\xc5\xb3\xcf\xd2\x75\xc7\x53\xf4\x0d\xef\x17\x7f\x20\x4d\xcf\xee\xfb\x76\x7b\xf7\xcf\xee\x68\x0c\x18\xbb\xf7\xe2\x44\x36\xf2\x38\x1b\x2a\xd4\x44\x39\xd6\xa9\xed\x62\xf5\xed\xb0\xdb\xfc\xb9\xf6\x57\x01\x2e\x8c\x4d\xd4\x94\xef\x85\x75\xd3\x3e\x35\x8f\x34\x01\x87\x21\xd3\x90\x63\x48\x28\x9f\x86\x84\x34\x01\x63\x4d\x75\x57\xfb\xfb\x84\x20\x89\x0f\xba\xd7\xa4\x96\xb2\xc0\x66\x2c\xae\xb4\xb9\x6d\xab\x20\x30\x22\xb4\x1a\x9f\xf9\xf7\x22\x53\x65\xd5\xab\xf0\x8e\x1b\xd2\x50\xa5\x58\x8e\x51\x66\x45\xd3\xae\xb1\x5b\x51\x35\x99\xca\x4e\xa2\xf9\xcd\x8b\x05\x34\x32\x64\xbc\x6c\xfd\x15\x5c\xac\x0e\x28\x17\xa1\x25\x26\x7c\x73\xf6\xee\x30\xaa\xdb\x1e\x07\x14\x6b\xdf\x9d\x44\xf5\x8a\x29\xc3\xe1\xe4\x0b\x18\x0b\x2d\xfd\xbd\x5b\xf3\x86\x96\x89\x0e\x98\x00\xf4\x59\x6a\xf1\xf6\x7b\x66\xc2\x8f\xa1\x40\x3a\x08\x89\xc6\x0a\x04\x4f\xed\xd3\xf9\xf0\xde\x17\xd7\x41\x48\x39\x6b\x47\x7a\xeb\x2a\x83\xde\xc1\x07\xca\x8a\x3a\x08\xe3\x38\xb1\x4c\x64\x96\xd8\x1f\x8b\x67\x26\xfe\xaa\x0e\xb8\x13\x8a\x41\x2c\x6f\xbd\xa8\x5a\x37\xde\x07\x19\xda\xa3\x80\x31\xdf\xef\x0f\x77\x8f\xab\x6f\x87\xed\xd7\xc5\x6e\xbd\xeb\x0e\x46\xb1\x67\x30\xf7\x26\x8e\x8f\x74\xcd\x7f\x3b\x1e\x27\x26\xec\x78\x94\xd7\x05\xf2\xfa\x75\xf0\x64\x1d\xf0\x34\x0d\x84\x67\xfd\x85\xd3\x88\x11\x45\x07\xb1\xa0\x68\x32\x1f\xa1\x9d\x4a\x45\xf3\x35\xab\x31\x07\xe2\x0e\x27\xd4\xaa\x30\x3b\x5a\xb4\xc3\x0e\x9a\xad\x38\xd7\x03\x32\x56\x1d\x24\x21\xc3\x50\x83\x12\x79\xbe\x28\x74\xdb\x85\xdd\xe9\x3c\x4e\xa0\xa3\x29\x1c\xbb\x58\x3a\x48\x64\x1a\x50\xbf\xbc\x60\xf5\x41\x77\x40\x62\x32\xe0\xeb\xb6\xfb\x45\xf1\xc0\xe2\xe5\xea\x6e\xa7\xdc\xdc\x74\x47\x21\xc6\xcc\xa4\x38\x6e\xbe\x06\xfe\xc7\x94\x11\x8c\x44\xb4\xb6\x54\x6b\x30\xa0\x64\xc2\xf8\x33\xa5\x61\x82\xd4\xad\x8e\xde\xd1\xe5\x04\x22\x7f\x05\xc1\x23\xe6\x70\x13\xaf\xd0\x1c\xbe\x88\x42\xe8\x6b\x42\x49\xdf\x58\xa4\xdc\xf9\xe8\xd5\x33\x7c\x82\x68\xed\xda\x5b\xce\xbb\x2e\x21\xb4\x2f\x2d\x01\xc3\x6f\x22\x4e\xee\x74\x99\x6a\xc4\x8f\xec\x9f\x56\xa3\x29\x25\xb5\xc5\x19\x20\x48\xc2\xaa\x0a\x7f\x15\x6f\x6f\x50\xd4\x07\x79\xe9\xca\xc3\xfc\x4f\x48\x4d\x0d\x7a\x77\x3e\xfa\xf3\x15\x68\x6a\xc1\xe4\x85\xbe\x9c\xeb\xeb\x4d\x75\xf2\x1a\xad\x23\x8a\x25\x3c\xe7\xea\x0d\x2e\xd7\x99\x73\x1d\x68\xda\x81\x76\xef\xb3\x02\xaa\xfa\xb1\xd8\x0d\x26\x83\x0e\x63\x5c\x7a\x0a\x78\xdf\x57\x99\x9c\x63\x8a\xd1\x01\xd0\x20\xb2\xa4\x27\xba\xe3\x41\xf8\xc4\xef\xd2\x01\x84\x44\xf4\x02\x75\xed\x74\x70\x09\x06\x1b\x08\x9c\x3c\x22\x08\x2b\x05\xfa\x0c\x4d\xbb\xab\x59\x86\x2b\xcb\xc4\x5c\x16\x7e\x16\x7e\x2e\x80\xac\x29\x09\x0c\x5a\x94\xb8\xbf\xaf\x07\xf9\xbb\xe1\x9b\x50\xa2\x53\x54\x58\x5d\x3e\x3e\x7c\xdf\x1d\x50\x98\xf7\xf1\xfb\xc3\x8d\x4b\xf7\x6a\x4a\x80\xd8\x52\xc1\xd3\x32\xd3\x03\xc4\x62\x7b\xc4\x96\x3c\xef\xda\x2d\xb3\x35\x77\x50\xb5\x76\xf6\xa1\x12\x77\x4a\x20\x84\xab\xcf\x2d\xf4\x54\x8e\x65\xde\x50\xa1\x94\x07\xa8\x46\xe5\xd0\x0b\x98\xf7\x99\xc4\x38\xbd\x5c\x59\xc0\xaf\xe0\x26\x9a\xd2\x38\x30\x2e\x52\x87\x7a\xe2\x4f\xe2\x7d\xb4\xaa\x53\x9a\x28\x70\x64\x1b\xb5\xaf\x0e\xf1\xf2\xb8\x3d\x74\x51\x53\xaa\x23\x44\x26\xb4\x63\x70\x29\x90\xd8\x63\x3c\x7b\x29\x8b\x6c\x9e\xea\xdb\x76\xe8\x0f\x69\xca\x84\xc1\xfa\xad\x02\xde\x9d\x3f\x83\x05\x30\xbf\xd5\x00\xef\xdf\x65\xfc\xc9\x42\x92\x04\xbd\x1c\xea\xee\x35\x2b\x16\xa7\x13\x88\x6a\xb8\x26\xfb\xa6\x29\x41\xf7\x01\xab\x5d\x7a\x69\x33\x4d\x79\x62\x45\x73\x47\xaa\x23\x07\x79\xd9\x56\xe5\xaf\xeb\xaa\xa4\xf9\x01\x16\xa7\x36\xa8\x7c\x5b\x56\xed\x62\x39\x89\xba\x68\x9a\xa4\x02\x01\x8a\x59\x25\xe7\x69\xf2\x34\x4d\xa4\x40\xac\xdf\x0e\x9a\x2f\xa2\x9e\x22\x53\x75\xfb\x6d\x30\x18\xb0\x7a\x29\x4b\xfc\xdf\xe0\x15\x12\xa0\xb8\x9e\x36\xb6\xba\xc4\xfa\x45\x5b\x71\x79\x3c\x7b\x17\x55\x53\x91\xca\xd4\xa5\x5d\x5a\xe3\x03\xb5\xed\xa7\xcb\x3e\x55\x89\xc6\xc2\xac\x5c\xd4\xcd\x1a\x2f\xa3\xc0\x8a\xcf\xf8\x06\x10\x51\x97\xaa\xd7\x22\xcb\xa7\x0f\xa9\x93\x00\x9d\x1a\xec\x64\x1f\x58\x77\x9a\x5e\x1f\xe1\xa0\xda\xb3\x28\x67\x1e\x1c\x7f\xdb\xe5\x95\x34\xd5\x60\x09\xd5\xbb\xa8\x56\xf1\x79\x99\x98\xa6\x10\x47\x18\x84\xda\x6c\xdf\xf8\x68\xe4\x99\x48\x6a\xe1\x4b\x80\x1d\x5f\xe1\xf8\x54\x23\x35\xc6\x72\xce\xb5\x5e\xd7\x4d\x76\x14\x0d\x6c\x8a\x71\x72\x59\x33\x42\x63\x14\x34\x9a\xd4\xc7\x8e\x67\x2a\x23\xda\x96\x54\x38\xf1\x7e\x14\x81\xcb\xb3\xe7\x4c\x4e\xab\xec\x35\x0b\x78\x80\x15\x4a\x47\xf1\xcb\x23\xbc\x06\x4b\x30\x0b\x20\x8d\x5d\x60\x1f\x0a\x7d\x03\xb2\xb9\x03\xfd\xec\xfa\x74\xfc\x02\x8c\x2a\x39\xa0\x9f\xef\xe1\x0e\x3b\x55\x56\xf3\x5a\x18\x9a\x31\x62\xf5\xd7\x4c\x56\xe8\x75\x0e\x6f\x50\x6c\x8f\xdf\x1b\x35\xb9\x72\x28\xac\x06\x49\xc7\x23\xe9\x1f\x2f\x34\x29\x9a\x6f\x5f\xe1\x17\xe4\xeb\x4a\x79\x72\x89\x59\x93\x6f\xd2\x49\x91\x8e\xa5\x5b\xd9\x97\xe7\xcb\x60\x7d\x61\xdc\xc4\x48\x51\x23\xea\x1a\xaa\x66\x55\x56\x15\xa8\xe6\x8a\x2b\x57\xb3\x38\xb2\x81\xe5\x1c\x91\xfa\x8f\xe7\x46\x95\x9d\x6d\xc5\x62\x30\x48\x02\xf2\xb4\xde\xad\x9f\x7e\xac\x6f\x0e\xdb\xc5\xd3\xfe\x61\xfd\xb4\x3b\xb4\x96\xdd\xfa\xe6\xb0\xdb\xdc\x78\x7f\x83\x25\xc4\x18\xd6\x93\xfa\x2c\xd1\x0f\xf4\xc7\x52\x23\x1c\xbf\x94\xb5\xe0\xba\x03\xc2\xfa\xa7\xf7\x50\x29\xa1\xcb\xfb\x12\xb4\xf0\xc7\xd2\x24\xc4\xbd\x3e\xab\xca\xc2\x11\xfe\x4e\x2d\x51\x96\x2a\xca\x49\x2f\x47\x36\x99\x8b\x4c\x06\x8a\xd0\x71\xfe\xb1\x2f\xe1\x1d\x36\x33\xe8\x6d\xef\xf6\x4f\xc3\x5c\x95\x66\x92\x92\xc8\xf3\xfd\x82\xd0\x9d\xed\x39\x39\x9d\x72\x61\xb5\x69\x4c\x3e\xe3\x8c\xf8\x56\x61\x8c\xd3\xea\xcb\x1f\x3f\x56\x4f\x58\xf4\xf1\xc1\xc8\x97\x2a\xf4\xb4\x0a\xce\x79\x74\x24\x47\x5f\x45\xfd\xf2\xbd\xce\x8a\x67\x0f\x79\x9e\x66\xa4\xe7\xaf\xa7\x98\xc1\x3a\xf6\xba\x10\xa7\xfa\xa5\xf4\x36\xc2\xf4\xa4\xe1\xa6\xc0\x54\xa4\x90\x99\xd1\x41\xdd\x6f\x33\x57\x61\xdd\x25\xfa\x3e\x5d\x42\x98\x92\xc2\xe9\x57\x3b\x05\xc6\x4d\x81\xe3\x6a\xbe\xb5\x16\x09\x6e\x2b\x6f\xed\x84\x5c\x98\x06\x5f\x0c\x5f\x13\x8e\xd9\xf9\x38\xe9\x6d\x90\x56\x45\x48\x43\x3d\xf1\x78\x5c\x03\x13\x05\x98\xf7\xbe\x5f\xff\x3c\x60\xc4\x61\xb7\xb8\x5b\x1f\x6e\xbf\x3f\x78\x83\x3a\x24\x11\x43\xc3\xc1\x80\x7a\x59\xe4\xf9\x4a\x14\x1a\x43\x8b\xf5\xf2\xb2\x73\x9d\x64\x95\x48\x46\x77\x0e\x89\xa2\x18\x1d\x6b\xc4\x2b\xec\x7c\x85\xd4\xa8\xf0\xfc\x5f\xac\x5f\x99\xfb\xff\xfc\x24\xd9\xae\xc3\x80\x32\x84\x15\xfe\xcf\xf2\x8f\xed\xfa\x69\xbd\xff\xea\x1f\x32\xe8\xeb\x91\x7e\x4c\x72\x72\x3a\xa4\xa1\x56\x36\x92\x08\xef\xcd\x12\x26\xbe\x72\xc8\x82\x00\xbc\xeb\x81\x51\x78\x51\x37\x30\xd6\x85\xf4\x2d\x69\x42\x92\x1e\xf8\x39\x89\xea\xcd\xb9\xa5\x89\x37\x90\x7a\x53\xa9\xfd\x2f\x7f\x3d\x0e\xc2\x21\xa2\xd7\xcd\xcb\xf2\xdc\x93\xd4\xe9\x90\x25\x0a\xcb\x53\xf7\x2f\xf0\xf5\x7c\x14\xc5\x08\x06\xf6\x51\x71\xa5\x0e\x99\xd4\x81\xc5\x44\x9e\x72\xa1\xe0\x66\xb7\xf5\x76\xcf\xe4\xad\x43\x15\xc6\x6e\xb6\xde\x65\xc5\xeb\x4d\xf6\x0c\xf5\x95\xa3\xe1\xda\x46\xdc\xd2\x3d\xc2\xaf\x06\x0a\x6d\xc3\x23\xcb\xc9\x56\x1c\x46\x32\x85\x4e\x69\x74\x75\xb7\xba\xa2\x0b\x18\x3d\x27\x97\x49\xe0\xea\x59\x1e\xca\x2b\xe3\x29\x8c\xa9\x46\xc9\x2c\x0d\x6f\x5f\xb2\x37\xc0\x01\x36\xf2\x0b\xc3\x24\x51\xbe\xfc\x6a\x2b\xd4\xab\x78\x46\x6e\xc9\x47\xb3\x12\xc7\x93\xc8\x9e\x8b\x71\xec\x34\x4c\x14\xe1\x1e\x04\x80\xe0\xf5\x6e\xa3\x1d\x3d\x56\xca\xa2\xd8\x99\x1b\xbb\xd2\x34\x2b\x71\x1a\x69\xf1\xeb\x30\x95\x02\x89\x4e\xec\x9e\x77\x0f\x47\xf8\x5e\xe5\xb3\xe6\x7d\x28\x62\xe5\x0a\x8c\xed\x26\x16\x5c\x91\x21\xeb\x50\x24\x12\x8b\x55\x76\xea\xa5\xcc\xc5\x90\xff\x4c\x87\xc2\x24\x48\x52\xb9\x12\xcd\xe8\x77\xe9\x24\xd9\x9b\x2e\x80\x39\xc2\x41\xeb\x50\x0a\xe6\x6b\xa7\xbc\xcc\xdf\xfe\xa5\x82\xfa\xa5\xcc\x27\x8b\x79\xa8\x13\x2b\x52\xda\x09\x5c\x7b\x32\xeb\xf1\x00\x00\x88\x31\xdd\xd0\x0e\x42\x51\x65\x62\xf4\x3c\x60\x08\x12\x97\xbc\xd9\xfa\x8f\xeb\x2a\x38\x1d\x91\x54\x61\x5d\xaa\xad\xfa\xb3\x1f\xf2\x9a\x64\x4a\x47\x8c\x0a\xcc\x71\xee\x7e\xae\xd7\xfb\xcf\xc6\x4f\xc4\xa8\xd4\xd0\x5d\x71\xe7\x8a\xf4\xaf\x42\xec\x7e\xaa\x45\x8c\x5b\x15\xa0\x7f\x97\x59\xf1\x65\x82\x15\xd0\x51\x28\x6d\xcd\x53\xeb\x7c\xac\x7b\xfe\x6b\x1d\xf1\xc0\xc4\x0e\x36\x63\x05\x92\xe5\x94\xd4\x42\x47\x3c\x0a\xd0\x26\x69\xc7\xe8\xf9\x74\x80\x42\xeb\xde\xb6\x88\x78\x12\x60\xa2\xd3\x3a\x51\x0e\xf8\x65\xcb\x4a\xce\x03\x02\x90\x11\x1d\xb1\x8e\xb8\x56\xc2\xdf\x17\xda\xdd\xe0\x6b\x59\x37\x1d\xa3\xd1\x74\x2b\xfb\x8c\xd8\xc8\x5d\x30\xa1\x2c\x75\x98\xd3\x76\x18\x2e\x9a\xef\x93\xea\x05\x1d\x25\x21\xe1\xcc\xc7\xa5\xd1\x42\x98\x7c\x9d\x84\x47\x68\xb0\x2e\x2b\x10\x08\x3e\x1a\x0e\x83\x28\xd1\x04\x43\x3f\x37\x4f\x8f\x3e\x54\x13\xa5\xc4\x16\xde\xd5\xe0\xea\x7d\x3e\xd8\x84\x7d\xf3\xc8\xda\xa6\x4e\x4a\xfe\x2c\xb3\xb9\xe2\x03\x1d\xa5\xa9\x25\xee\x69\x3f\x7e\x03\x3b\xab\x4b\x74\x4d\xa7\x3d\x1b\x9c\x89\x52\xa5\xd1\x0a\x72\x58\x83\xb2\x6c\xc6\x4b\x45\x24\x98\x15\x12\x50\xa2\xf8\x52\x36\x65\x5f\xf6\x9e\xf8\x06\xa0\x11\x15\x7e\xa8\xcf\xf2\x0b\x14\x1f\x32\x50\xb8\xe6\x92\x04\x18\xbf\x7e\x5a\x3d\xf9\x7e\x91\xd4\x4e\xfb\x2f\xbf\x26\x55\x7f\x75\xd7\x42\xc6\x26\xf4\x1a\x0f\x3f\xb2\x42\x65\x93\x3e\xd0\x64\xa0\xea\xdd\xc5\xef\x41\xf7\x9b\x62\xa4\x65\x80\x69\x9d\xac\x50\xa8\x0f\xf3\x58\xb4\x2b\xc0\x72\xc6\xef\xef\x23\x78\x91\x36\xd6\xa8\x3f\x5c\x05\x09\x26\xf7\x37\x26\xea\x7c\xa8\xfa\xf1\x7d\x6a\x6d\x72\x92\xd8\xa5\xb4\x5d\x71\x1d\x4c\x65\x0a\x3c\xaa\xa7\x98\x23\xcd\x83\x94\x62\x1c\x50\x8a\x1a\xb6\xc8\xb7\x83\x22\x9b\x3d\xcd\x91\xe6\xd4\x88\xc4\xe5\x0b\x96\x97\xd6\x77\x5e\x14\x7a\x5f\x7e\xfe\x11\x38\x8b\x41\x42\xf7\xb8\x3e\xc8\xf0\x63\xb3\xad\x57\x1e\x05\xa9\x39\x4b\x2d\x98\xfe\xf0\x0c\x4d\xfb\x58\xd7\x60\x15\xcd\xc3\x80\x62\xc6\xcd\xc5\x09\x4b\x33\x79\xed\x28\x0e\x00\xf1\x0e\xf9\x59\xfa\xeb\x46\x22\xc2\x68\xfc\x66\xf5\xa5\xfb\x49\x59\x7c\x4e\x56\x64\x0d\xd6\x91\xd5\xd3\xeb\x80\x42\x33\xfb\x24\x2e\xfb\x72\x5a\xb6\xe7\xda\x70\xaa\x8c\xf1\x2f\x75\x63\x8d\x12\x7f\x03\xae\x85\x65\xff\xc8\x45\x76\x74\xe8\xc9\xd9\x2f\xc9\xe3\x28\xc5\xb4\xa2\xc3\xde\x21\x92\xe3\xb7\x31\xf6\xc9\x25\x62\xbb\xbb\xca\xf3\x65\x5b\x95\x1f\x52\xa3\xb9\xd6\x09\x09\x30\x00\xb2\x7d\x5a\xed\x0f\xfb\xf5\xe2\xde\x3f\x73\xc2\x52\xa4\xa2\x79\x5a\x2f\xee\x26\xaf\x9a\x44\xa9\xa1\x9d\x3a\x42\x59\xcd\x29\x79\xf9\xa6\x9a\x39\xed\x9a\x95\x5f\x88\x78\x1a\x5a\x0a\x27\x67\x04\x3b\x22\x21\x3f\x0c\xfe\x76\x3d\x0f\x78\x1a\xd9\xc2\xdc\x83\xbb\xc9\x43\xd9\x3c\x9c\xf3\x7c\xf2\x58\xa9\x0c\x5d\x91\xa5\xf3\x06\x77\x30\xac\xd6\xd7\x3c\x35\x21\x72\x94\x96\xe7\xa6\x46\x2d\xea\x1b\xc8\xb3\x37\xa8\xae\x38\x4d\xfe\xfe\xc9\x1f\x77\x2d\x41\x29\x9a\xfe\x37\xd5\x88\xbe\x4b\x73\xd1\xee\x86\x3d\x93\xa0\x4d\x46\x8c\xf3\x42\x1f\x7e\x48\xe4\x0f\x1a\xbc\xb7\x60\x9c\x87\x5e\xc9\xfd\x1d\x19\x8f\x26\x3e\x03\x17\x91\x85\x3a\x3b\x92\xe8\xdd\x73\xb1\x2f\x77\xcf\x62\x32\x51\x44\x1c\x60\x4d\x04\x14\x1a\xf4\xa2\x9b\xbd\x22\x8d\xb1\x66\x61\x87\xd8\x0e\x4b\x0c\xf1\xf9\x70\x11\x92\x23\xbe\x7e\xf5\xb4\x5e\xec\xd7\x87\xed\xfa\xe9\x7e\xb3\xdb\x6d\x1e\x1f\x76\x87\xa7\xc7\xbb\x75\x77\x61\x9d\x5a\x1d\x90\x76\xc0\x6f\xab\xec\xbf\x1e\x0b\xa4\xb9\x24\x56\xf4\xf1\x23\x00\xe4\x6d\x59\x41\xf6\x5c\x3c\x94\xcd\xa6\xf8\xee\xc1\x0e\x9a\x4b\xae\x1c\x97\x9e\x8d\xfa\xfe\x8f\x50\xaf\xa7\x81\x80\xc0\x6f\x94\xd3\xfd\x55\x62\x86\x14\x0a\x15\x88\x41\x19\xcb\xc4\x15\xe0\x52\x25\x68\x44\xa9\x76\x51\xc9\x2d\x39\x63\x55\x4e\xca\xc5\xba\xb6\x02\x2d\xed\x2f\xd0\xfc\x6c\xb7\x69\x84\x5e\x8e\xf6\x30\xae\x42\x8d\xc5\x39\x2e\x9d\x38\x06\x25\x0f\x4d\x1f\xae\x0d\xd1\xb6\xd0\x5a\x7d\xed\xa8\x22\x35\x07\xe6\x98\x05\x2c\x06\xf3\x14\x4c\xc6\x00\x24\x31\xd6\xc2\xda\xe7\x45\x21\x8f\x59\x21\x2b\xcd\x41\x24\xd2\x16\xf5\xa1\xb4\xf6\xbd\x28\x2e\xfd\xdb\xcf\xd1\x20\xfd\xde\x71\xe2\x00\x0a\xa3\x62\xed\xee\xfd\x50\xb2\xdf\xfb\x45\xdc\x30\xc6\x3b\xb5\xf5\x49\x5d\xa1\xe6\x46\x59\xdd\x92\x1d\x12\x9c\x34\xd9\x44\x1b\x63\xfc\x42\x46\x5b\x26\xc3\xba\x29\x4f\xc8\xac\xe1\xae\x12\x93\xd4\x98\x8e\x00\xee\x98\x39\x5a\xfd\xd1\xb7\x8b\x69\x68\xeb\x9c\x5d\x75\xfa\xc7\x41\xca\x98\x46\x89\x97\x2a\x6a\xcd\x6e\x5f\x42\xbf\xbc\x60\x24\xb5\xf3\xd4\xe6\xb2\x9c\x31\x55\x31\x96\xda\xd8\x22\xf2\xe1\x5a\x11\x53\x13\x12\xd3\x2b\xb3\x6f\xd9\x4d\x8f\x8b\xd3\x31\x53\xd4\x99\xd5\x98\xe2\x5f\x2d\xf6\xc3\xfe\xf0\x8d\xb4\xb6\x05\x11\x5f\x1e\xee\xfc\x6f\x21\x61\xa2\x8f\x05\x8e\xac\xeb\x38\x0c\xd2\xd4\x6a\xbc\xc1\x46\x95\xbb\x5e\x44\x4a\xc7\x61\x6c\x70\xe3\xc8\x0a\x8f\x58\x9a\x71\x0b\xe2\x10\x92\x88\x77\xb0\x4d\x37\x0d\x97\x30\xed\xdb\x88\xd8\x42\x20\xd3\x8b\x1c\xe9\x38\xe2\xa9\xb7\xe0\x7f\x56\xe2\x74\x72\xd3\xc5\x1f\x55\x21\xa6\x58\x1e\xd7\xcb\xd5\x52\x14\xaf\xdd\xef\x10\x20\x85\xe0\xe6\x78\x2a\x2b\x84\xc0\xae\xfc\x21\x1e\x72\xe3\xf9\x61\xca\xee\x04\x9e\x02\x82\x3a\xd6\x7f\xec\x0f\xab\xc7\xfb\xed\xe2\xe1\x9f\x87\xc7\x87\x75\x77\x58\x5a\xfe\x54\x44\x11\xe2\x3c\x1b\x3f\x7a\xaa\x98\x55\xdf\xbb\xfb\xee\x4f\x49\xb5\x85\xe9\x4a\xcf\x20\xa4\x63\x91\x48\xe1\xa0\xf4\xff\x38\x97\xc8\x3e\x39\xb9\x8e\x48\x14\x92\x3c\x6c\x1f\xb7\xdf\x1e\x37\x0f\xfe\x44\x09\x3a\x4d\x3d\x1b\x57\xf9\xeb\x72\x5b\x56\xbb\xb1\xb2\xd0\xb8\xc3\x55\x6a\x63\x99\xfb\xaf\xcb\xc3\xe3\xb1\xc8\x2c\x7b\x89\xbf\x9a\x66\xc6\x02\x84\xad\x4b\x23\x72\x98\x96\xb5\x7e\xba\xa0\xc7\x5a\x08\xd4\xb9\x3a\x64\x35\x12\x9e\xf7\x7e\x4d\xa1\x47\x32\x59\x83\x8d\x34\x86\xc0\xe2\x2d\x7c\x50\xad\x82\xae\xd6\xe4\x33\x92\x23\xbf\x22\xc6\x86\xa4\xf8\x05\x40\x67\x0d\x2e\xaf\x96\x0a\x74\xfc\x64\x86\x47\xcc\x05\x45\xbe\x54\xc2\x98\xac\xc9\xc6\x2d\x12\x22\x23\x46\x7b\xf3\x6f\x34\xd0\x13\x02\x02\x07\x20\x6e\x41\xdf\x77\x1b\x67\xab\x0c\xf9\x35\x74\x12\x30\x9d\x38\xb9\x18\x4c\x45\x5f\x2c\x54\xb1\x3f\x1e\x32\x2c\x22\x7f\xcf\x0a\x5d\xbe\xb3\x4e\x83\xd4\x1f\xa7\x44\x20\x2b\xe7\xfe\xf1\xdb\xfa\xe1\xf0\x84\x5b\xe2\xd3\x7a\xb7\xe8\x76\xc2\x84\xc6\x96\x50\x06\x0b\xed\x3b\x4a\x81\xf1\x9c\x4a\xa8\xb2\x1f\xf1\x28\x7e\x59\xcf\x16\x63\x5f\xdd\x53\x50\x08\xb0\x48\xcc\x86\xc4\xd7\xff\x61\x6e\xc1\xf9\xfb\xe8\x0f\xf5\xad\x8d\x95\x96\xec\x33\xb2\xeb\x2f\x8f\x7f\xf4\x8b\x9b\x6b\xc6\x28\x41\xcb\xbd\x7c\x2f\xa0\xda\x41\xe3\x66\xf2\xa3\x41\x2d\xb6\xb5\x7e\x86\x91\x67\x9d\x30\xca\x70\xad\x12\x76\x78\xed\xce\x4a\x41\x5d\x9b\x73\x3e\x1a\x68\x01\x4d\x66\xc9\x0e\x74\xc2\x40\x5b\xad\x27\xb7\x81\xb7\x93\x46\x5c\x0d\xd2\xf1\x39\xa1\x4c\x70\x63\xb3\xb0\xcb\xdb\xb2\xf2\x39\xf8\x71\xb3\x88\x2b\x9f\xdd\x5a\x1d\x45\xbd\xbc\x5c\x63\x9f\x75\x12\xb3\x00\xd3\x64\x08\xed\xb8\x5f\xfc\xe1\x3b\x37\x21\xb1\x49\xbc\x3e\xc9\xa3\x99\x3b\x35\x49\x6c\xc8\x6d\x0b\x95\x29\xab\xe3\x22\xab\x6e\x5a\xc3\xda\x1d\x15\x84\x09\x33\x84\x90\xf9\xdf\x39\x43\x9b\xab\x56\xc2\x67\xf1\x13\x19\x06\xa6\xaf\x94\x1d\xc8\x00\xf8\x06\x8a\xd9\x6a\x53\xac\x4c\x6b\x44\x3e\x94\xea\xd1\x89\x8a\xac\x04\x5a\xa9\x75\xbd\xcb\x8a\xe7\x09\x47\xab\x4e\x54\x2a\x71\xad\xf0\x00\xac\x9f\x65\xfe\x3a\x79\x19\x4d\x28\x06\x0e\xde\xa7\x5c\xc6\xb3\x09\xeb\x59\x85\x87\x0f\xe2\x1a\x89\x26\x1a\x69\x43\x1d\x01\xd4\x98\x8d\x77\xbc\xee\x24\x40\x0c\x7a\xdd\xb8\x08\x3f\x21\x60\x9b\x4e\x5e\x06\x02\x19\x23\x1b\xcc\xf9\xb8\x59\x3d\x62\xd8\x8e\xfb\x9e\x00\x9a\x86\x6e\xe1\xbf\xcd\x3a\x5a\x9c\xa1\xb5\x9f\x98\x24\xf5\xb5\x1c\xa3\x02\xfc\xa9\xbc\xbf\x4e\x49\xa2\xb0\xf4\x71\x8a\x61\x40\xae\x9a\x76\x63\xf6\x33\x31\x25\x3a\x0c\xff\x7f\xda\xfe\xa4\xbb\x71\x1c\x4b\x1b\xc7\xbf\xcb\xbb\xca\x45\x2f\x00\x10\x9c\xfe\x3b\x59\x96\x1d\xea\xf4\xf4\x5a\x8a\xc8\xac\xea\x53\x47\x07\xc3\x85\xcd\x0e\x8a\x54\x91\x94\x1d\xae\x4f\xff\x3f\xbc\x18\x38\x88\x76\xe6\xbb\xf8\x2d\xba\x23\xcb\x00\x29\x12\xc4\x70\x87\xe7\x3e\x8f\x76\x7b\x77\xfd\x0e\xcd\x0e\xdd\x88\xaf\x41\x5c\x39\x01\x5b\xce\x82\x3c\x84\x4d\xb7\x3b\x4b\xab\x7f\x33\xf9\x2e\x39\x05\xc0\xc0\xf8\x03\x48\x09\xbf\x16\xd9\xb6\x5d\x4f\xc6\x4c\x4e\x06\xd5\xd9\x70\x16\xe4\x2c\xb5\x81\xf7\x33\xee\xc5\xfb\xe2\x34\x35\x44\x73\x96\xa5\x58\x76\xf8\xee\x11\x6d\x21\x94\x9a\x47\x29\xc7\xbc\xc7\xba\xfe\x09\xca\x47\x93\x86\x6a\x93\xbe\x43\xc6\xf8\x94\xcf\x21\x9e\x6c\xb8\x79\x24\x22\xe4\xa7\xdc\x0e\x17\x53\xf6\xd7\xd6\x60\xce\x79\x1e\x8f\xab\xe5\x9c\x0c\x2a\xe8\x67\xb0\x5e\x5a\x18\x7d\x9e\xd8\x87\x2c\x5a\x87\x08\x1a\x13\x04\xf5\xcd\x2a\xb6\x79\x3c\xcc\xf3\x6e\xfa\xbb\x0c\x96\x52\xce\x81\x45\xfd\x2e\xf1\x56\xc0\xfb\x9f\xeb\xd5\xfe\x62\xe2\x4f\x07\x2b\x8e\x05\x9e\x51\xa7\xba\x9c\xe5\x30\xf2\x38\x49\x30\x7e\xd7\xf9\x9c\x2d\x94\xde\x2c\xc8\xe3\x54\x22\x86\xac\x7b\x2d\x1a\x7d\x40\xce\x44\x5f\x97\xe2\x7a\x24\x04\x30\x36\x87\x75\xeb\x6c\x60\xc1\xd4\x79\xa2\xd2\xd8\x1e\xab\x80\x45\xa3\xfe\xcf\x46\x04\x22\x9c\xb2\x74\x94\xea\x75\x33\x21\x04\xd7\x79\xca\x32\xac\x90\x0b\xeb\x7a\xbc\x7b\xe7\x42\xe4\x78\x54\xd6\x13\xd6\x5c\x9d\x0b\x9d\x22\x6d\xc3\x6e\xf3\xb0\xfd\x7e\x1f\xfe\x0a\x60\xec\x40\x5f\x41\xb7\xeb\xea\x46\xbc\x0c\x57\x18\xae\xa9\xb7\xff\x5e\x1a\xd1\xc1\xf5\x19\xf6\xf5\x43\x6d\xeb\xfe\xdb\x11\x02\x2d\x57\x60\x2b\xd3\x26\xaa\xd2\x56\x45\x7a\xc4\xd7\x3a\x0c\xac\x56\xd2\xd3\x6e\xdf\x88\x23\xe8\xfe\xbc\xbd\xfa\xd8\x5e\xcf\xc6\x1f\x58\x84\x84\x86\x9e\x9e\x6d\x84\x1a\xc8\x81\xb3\x28\x1a\x15\x54\xad\x4a\x79\x3e\xfe\xb6\xe0\xbd\x7c\xf5\x5f\xb3\xa9\x60\x08\x35\xd2\x89\x96\x40\xf3\x68\x66\x8f\x63\x72\x3b\xb1\xac\xb9\x7d\x0d\x55\x7d\xf4\x46\xba\xad\xec\x9c\xae\x5f\x41\x68\xc4\x6c\x54\xaa\x56\x3f\x2f\x64\x20\xb5\x20\x1c\x02\xea\xa9\x85\x06\x15\x4e\xda\x79\x9f\x44\x27\x6e\x4e\xec\x2d\x35\x6d\xf3\xe1\x04\xe1\x6f\xc6\xec\x57\x5a\x90\x5c\xa3\x34\xec\x73\x71\x3a\x05\x27\x4b\x10\xa1\xd2\xdc\xb1\xbb\x88\x26\xfc\x99\x2a\x1b\x37\x2e\x5a\x2c\x96\x2f\x40\x2f\x3c\x1f\x05\x83\x26\x0d\x5a\x56\x78\x5e\x4e\x4e\x29\x41\x4d\x6a\x8b\x95\x50\x3a\x6d\x59\x54\x57\x0b\x46\x13\xc4\x64\xa0\x5e\x0a\x92\x59\xfc\x25\x10\xc8\x5d\x19\x31\x8d\x89\x89\x1b\xd5\x8e\x70\x30\x22\x4a\x32\xdc\x40\x37\xfb\x6f\xaa\x3e\x82\x14\xea\x67\xc6\x88\x6f\xe5\x52\xe0\xa0\xae\x0a\x59\x8f\xa9\xe9\xa7\x33\x50\xc4\xb1\x90\x2e\x5d\xf3\xcf\xb2\xee\xda\x45\x37\x5a\xc4\x2a\xc2\x55\x73\x3a\xff\xe7\x3f\x63\x91\xf6\xf1\xac\x11\xb1\xa6\xe8\xec\xfc\x13\x9a\x7a\xf3\x6b\xae\x4e\x3b\x9b\x13\x09\xa5\x58\xde\xe9\x43\x45\x9b\xee\x15\x6d\x62\x5f\x76\xb9\x78\xb2\x88\x84\x0b\x92\x4c\xa4\x04\xf7\xf5\xed\x59\x34\xa2\xea\xe0\xb2\xec\x7b\x62\x8b\xfb\x3b\xe4\x06\x2d\x8a\x9d\x28\x07\xf8\x84\x48\x93\xd4\x2b\x4e\xf6\x3e\xc0\x1d\x54\x2f\x5e\xc7\x56\x8b\x34\xcf\x11\x89\x26\xca\x72\xd3\xbd\x3e\x7a\xc6\x20\x2d\x32\xa2\x13\xa7\x57\x66\x95\x57\x06\x7f\x7a\xfa\xb2\x79\xc6\xf3\xcc\x53\x6a\x04\xd2\x1b\x2d\x44\x14\x61\xf8\x43\x9e\x3f\x56\x95\xee\x77\xd5\x31\xd0\x4e\x08\xcd\x10\x7e\x24\xda\xe3\x7e\x84\xd6\xfa\x7b\x28\x2d\x21\x79\x2c\xbd\xdf\xda\xe9\xa7\x06\x56\x97\xd5\x82\x5a\x48\x49\xcc\x20\x7d\x77\x29\x5b\xf1\xa5\x71\xe4\xee\xa1\x92\x4c\x3a\xc3\xc3\x7d\x82\x95\x7e\x9b\xcd\x20\x05\x1a\xb3\xcd\xce\x6d\xfb\xa8\x74\xa1\xbe\x80\x83\x2f\x5b\x16\x42\xd3\x38\x73\xfe\xf4\xea\x63\x9e\x21\x17\x90\x73\xdc\xc5\x9d\xfe\x65\xf1\x06\x18\xad\x18\xf6\xaf\x19\xa9\xa2\x16\x00\x14\x03\x4d\xef\x00\x3f\xf7\xaf\x0d\x8c\x38\x0b\xb5\x00\x03\xc8\x96\xec\xcf\x55\x0f\xe8\x15\x86\xe4\x0e\x72\x61\x3f\x0a\x7a\x74\x30\xc0\x1f\x66\x5f\xdf\x44\x14\x41\xc1\xfd\x41\x75\xed\xb5\x3d\x97\xdf\xcf\x48\x83\xaa\x2c\xbb\x87\xa7\x71\xdc\x44\x92\x98\x20\xd9\x5c\x57\xdf\xd4\x0d\x28\xd1\x76\xa1\xe2\xd9\x73\x13\x0d\x54\xec\x63\xe4\xa5\x24\x59\xc6\x12\x67\x42\xd4\xb5\x41\x97\xf7\xf2\x74\x70\x9d\x69\x64\x30\x18\xff\x84\x21\xbb\xc7\x6a\x12\xbc\x91\x54\x31\x34\x37\x4e\x4d\xfd\xbf\xa0\x3a\x8b\x50\x0f\x8d\x86\xa0\x95\xbd\x7f\xdc\xdd\x17\xfa\x5b\x5d\x6a\xcc\xc6\x4e\xf0\x64\x92\xb1\x18\x47\xd4\xd6\xca\xac\xca\xd2\x1f\xa1\xbe\x5d\x50\x04\x8c\x6c\x8e\x27\x2f\xb4\xa5\x65\x94\xc8\x78\x3c\xda\x8e\xed\xb6\xa9\x8f\x7b\x10\xc7\x2f\x73\x7a\x32\x32\x0c\xa1\xb0\x96\x2a\xf1\xaa\xd0\xcb\x5b\x97\x4c\x98\x35\xc9\xd4\x94\xc1\xd2\x55\xd8\xb8\x4e\xa9\xa0\x08\x17\xc4\x63\xec\xba\xee\xae\x67\x9a\x60\x5a\xa6\x8a\x22\xbe\xcc\xe6\xf8\x8b\xee\xe3\xaf\xd5\x7a\xbe\x9c\xef\x32\x85\x08\xad\xfe\x11\x39\xdf\x6a\xb9\xae\x50\xcb\x8c\x44\x16\x30\x5b\xd6\xad\x53\x09\x3b\x0f\x0a\x1e\x5a\x66\x51\xcc\x1c\x20\x76\xf3\x26\xca\xf3\x05\xc3\xbd\x96\x19\x8f\x22\x47\xf0\x7e\x07\xe2\xe5\x0c\xcf\x58\x40\xb7\xaa\xf4\xba\xc6\x00\x49\xff\x41\x61\x10\xd6\xfc\x84\x67\x63\x3a\xff\x65\xc6\x73\x2c\x69\x38\x9d\xbb\xaf\xb2\xea\x32\x57\x5c\x0c\x91\x9d\x6d\xd5\x41\x75\xc1\x5f\xa4\xa5\x20\x12\x2b\x39\xee\xd7\x7b\xcf\xcd\x3a\xb2\x0a\xa5\x48\x28\x26\xfb\xad\xd2\xd4\x48\x0a\xd7\xb7\x6b\x2b\x50\x34\x24\x2d\xbf\x06\x48\x49\x01\x04\x45\x25\x36\xa2\xfd\x98\x2c\x07\x01\xb9\xc9\x3d\xc6\x72\xab\xea\xfd\xbb\x0f\x64\x4a\x49\x52\x4b\xeb\xc9\xb2\xdf\x46\x6c\xd7\x5a\x4a\x96\x22\x4f\xf7\xaa\x7d\x5d\x8b\xf6\x75\x72\x3f\x99\x1a\xee\xf6\x6b\x4c\x20\xf4\x46\x9e\x65\x20\x9a\x7d\x25\x99\xa5\xdc\xa1\xce\x9e\x9c\x78\xdb\x44\x4c\x4a\x4b\x29\x48\xac\x5c\x21\xc4\x35\x18\x71\x2e\x1d\x9b\xb4\xdf\xdb\xa4\x4a\x15\xd2\x67\xa2\x63\x36\x4f\xb6\xba\x3e\x10\x27\x86\x78\x30\xba\x41\xdc\xcd\x12\x93\xaa\x96\x90\x70\xbc\x99\x3d\xbb\xaf\xce\x1f\x73\x0b\x4a\x82\x96\x58\xf9\xb6\xeb\xea\xd3\x76\xed\x0b\x08\x15\x61\x16\xa6\x65\x8a\x53\xeb\xd5\x16\xa7\x2f\xab\x48\x6e\x85\xa8\x1f\xdf\x1f\xc7\xa3\xa5\x88\x4e\xb0\xec\xa0\xaa\x8f\x70\x78\x2b\x2a\x55\x74\x81\x83\x5b\x2b\x4a\x35\xda\xec\xd0\xbd\xee\xde\xc5\x69\xb4\xab\x2b\x1a\x5b\x63\xed\x79\x73\xb7\x59\xed\x36\x87\xfd\xf6\x7e\x13\xda\x72\x8d\xc7\x01\x6a\x5d\x1e\x8b\xaa\x68\x3b\x71\x11\xbc\x52\x54\x24\xd2\xb3\x57\xff\x2c\xca\x72\x62\x2d\x28\x0a\x06\x61\x04\x58\xd1\x70\x2f\x7e\x4d\x4c\x45\xc5\x22\x8e\x32\x53\x07\xa1\x03\x81\xe0\x97\x98\x40\xc5\x92\x0c\x21\x8b\xde\x91\x39\xfc\xfb\x3c\x4e\xe0\x8d\x75\xf1\xfe\x87\xcd\xce\x37\xc5\xb2\x44\xb8\xa9\xb2\xa9\xd4\x0e\xd4\x4f\x08\x8f\x12\xa5\x71\x94\xbb\xe2\x71\x51\x1e\x50\x05\x12\x25\xd6\xc3\x59\x39\xb9\x55\x94\x19\x45\x27\x14\x43\x8b\xdb\x90\xe2\x4a\x60\x40\xe7\xfe\x43\x59\x0d\x91\xb2\xa8\xc2\xe0\xc7\x99\xdd\x20\x91\xcb\xdd\xd5\xa5\xa9\x7a\xa6\xf6\xa1\x55\x2c\x8d\xd5\x6f\x40\x2e\xce\x50\x0b\x3c\x70\x97\x2c\xd0\xbe\x6b\x95\x10\xf0\xa0\xac\xdf\x8b\xae\xfb\x58\xc0\x02\xa9\x04\x6c\xd5\x83\xdd\xdf\xef\xc5\xaf\xbb\x7e\x2f\x3f\x37\xe2\x32\xd3\xa5\x52\xce\x12\x08\xec\x46\xc5\xf1\x7c\xbc\x2f\x2a\x24\x69\xf9\xbf\x67\x81\x72\x16\xcb\xa7\x8e\x4a\x55\x8c\x6f\xd9\x9e\x8f\xdf\x44\xa3\xd7\x62\x3c\xe7\x53\x10\x58\x52\xd4\x80\x82\xaa\x2b\x3f\xfa\x99\x00\xda\x27\x7a\x7d\xaf\x9c\x32\x1e\xd8\x50\xef\x6a\xa1\x41\x87\xb3\xc4\x73\x28\x84\xce\x92\x58\x19\xc4\xa7\xba\x2c\x2d\x78\xc6\xf2\xb6\x7d\x76\xe6\xfc\xcd\x7f\x7d\xe4\x54\xc9\x24\xc1\x8a\x78\x94\x20\x6e\xc2\xaf\x0a\x89\x7e\xd6\xf7\xca\xaa\x72\x4e\x58\xea\x67\x23\x22\x4d\x0a\x72\x26\x22\xeb\x42\x9b\x37\x23\x99\x72\xeb\x22\x4f\x68\xfc\xa6\x07\xb5\xd2\x51\x4c\x4d\x08\x0d\xa0\x54\xd5\xc9\x9b\x17\x4a\x27\x14\x51\x85\x96\x10\x7a\x02\x4e\xf3\xaf\xc4\x66\x26\x8f\x02\x0a\x08\x12\x52\xe7\xc6\x8a\x6f\x06\x34\x88\x02\x4d\x3d\x6b\xd1\xd3\xf6\x00\xba\xe8\x0e\x91\x2f\xc9\x55\x26\xce\xd1\x25\xb7\xec\x77\x1d\xd8\xd0\xc0\xa7\x79\x3b\x65\xa4\xf6\x75\xa6\x28\xbd\x38\x3d\xb6\x34\x21\xb6\xbc\x0d\x2b\x96\x6d\x75\x92\x3b\xe8\xa7\x82\x83\x5a\x13\x66\x88\xd7\xc9\xad\x8b\xca\x07\x2b\x16\x7f\x55\xd3\x24\x49\x23\x47\xbb\xbd\xd9\x7f\x9b\xfd\x28\xcb\x52\xdc\x95\x8f\x56\x9c\xf0\xe1\x66\x3f\x33\xd8\x34\xcb\x53\x5b\x47\x20\x0c\xdc\x7f\xa5\x87\xa2\x35\x93\x19\xd2\x86\xae\x77\x0f\x8f\xe1\x72\x20\x78\x82\xd4\x48\x97\x62\x6b\x9e\x8b\x63\x98\xb8\x3a\x8a\x19\x3a\xe5\x47\x2c\x23\xb2\xa9\xc5\xe9\x0b\xc4\x92\x69\x31\x89\x95\x39\x77\x31\x00\x8d\x74\x0c\x04\x8d\xd6\x07\x78\xdf\xd5\xe7\xee\x95\xd1\xf1\x41\xa1\xd3\x84\xe0\x7e\xbf\xd9\x7f\xdb\x3c\x1f\x56\xf7\x8f\xdf\x1f\xf6\xa1\x4d\x52\xb4\x47\xed\xf3\x3d\xd5\x75\x39\x05\x33\xea\x54\x51\x8c\x64\x56\xf0\xee\x05\x87\x96\xc1\xfe\xd3\xb1\xc8\x58\x82\x6c\xf4\x76\xc3\xaa\x9b\xe3\x10\x51\xd5\x59\x64\xc5\x86\xfa\x5b\x7e\x49\x34\xe5\xfb\x27\x1c\x05\x4b\x0a\x34\x79\x2d\x1e\xec\x4b\x8b\x45\xe7\x91\xc8\x46\xe1\x94\xf6\x16\x2a\x68\xfa\x73\xac\xdd\x86\x14\x8b\x16\xd4\x8a\xae\xdd\xd4\x75\x27\x45\x08\xe7\x69\x11\xa5\x48\xa5\x65\x4a\xf1\x09\x99\xb6\xd6\x22\x95\x98\xb0\x36\x67\xad\x27\x63\x2d\x14\x47\x75\x08\xbb\xbb\x1e\x8b\xea\xb4\x20\xac\xa6\xb5\x4c\x53\x44\x8c\x1c\x74\xd1\x3b\x32\xfe\x44\xd2\x2a\x62\xa9\xab\x95\x6b\x8a\xee\xe3\xa6\x3e\x57\x1a\xd7\xd4\x56\xff\x0a\x7d\x32\x40\xe8\x92\x29\x7e\x81\xbe\xab\x5f\x60\x81\xf4\x42\xf7\x9b\x13\xc6\x2b\xac\x6e\xff\xd7\xf6\xa9\xd6\x3c\xc9\xc7\x94\x44\x0f\xe2\x08\x7f\xf6\x5d\xe6\x5a\x1a\x43\xa0\x4f\xeb\x38\x42\x59\x5f\x7b\x42\x4d\x59\xe2\xb5\x06\x1a\xbb\x3b\x6a\x80\xa3\xcd\x70\xad\x1b\x31\x78\xfe\x1a\xa2\x9c\x8e\x94\x28\x9c\xb1\x61\xbf\xd2\x74\x09\x00\x89\x62\x2c\xae\x80\x4a\xff\x51\x37\x33\xa4\x3b\x50\xc1\xbd\x31\xe2\x4e\xd4\x81\x6d\x49\x03\xe3\x8a\x5a\xe8\xab\x39\x57\xda\xd1\x50\x2f\x7f\x55\x88\x22\x81\x11\x53\x5d\x6f\x43\x74\xe5\x93\xfd\x1c\xa2\x34\xc5\x35\x77\xbc\x80\xde\x43\x94\x2b\x6a\xc5\xb4\x7e\xdd\x8a\x76\x1c\xcf\x80\x08\xa4\x71\x51\x16\x3b\xf5\x37\x15\x34\x2f\x33\x6c\x38\x44\xc6\x16\x9a\x0c\x08\x63\x0b\xd9\xf5\x63\x07\x5c\x09\x4c\x9b\xff\x2e\x9a\xa3\xf8\xe4\x65\x38\x48\xea\x02\xab\x2b\x5d\x9f\xba\x61\x01\x42\x92\x27\xc8\xe9\x73\xb2\x15\xe2\x37\x80\x85\x22\x6d\x1c\xda\x05\x41\x04\x17\x26\x6a\xfa\xf5\x76\x6e\xb7\xeb\xd5\xd3\x05\x85\xc9\x02\x6f\x88\x86\x54\x1b\xcc\x5c\xda\x58\xcb\xa1\x36\x87\xf5\x6b\x71\x30\x75\x73\x78\xac\xe0\x30\xec\x5a\x90\xa9\x14\x3d\xfd\xab\xef\xff\xd8\x3c\x1f\x76\xfb\xcd\xd3\x81\x5f\xfc\x84\xf5\x1d\x66\x3f\x91\xe9\x08\xcf\x5d\xcf\x08\xd2\x5a\xf6\x58\x7f\xe3\x5c\x65\xc8\x64\xf1\x2a\x4a\x84\x6e\x34\x02\x25\xc0\x43\x33\x70\x44\xb9\x1d\x26\x05\x80\x7f\x14\xdd\xeb\x33\x18\x68\xa0\xba\x9c\x1f\x8b\x75\x27\x20\x1c\x61\x2f\xd6\xbe\xcc\x0b\x6d\x40\x08\x96\xa7\xe3\x5a\xb6\xb2\x9c\x51\xb2\xf7\x7d\x22\x64\x28\x38\x16\x81\x16\x6a\xa4\x90\xa9\x41\xe8\x1c\x0b\x34\xef\x3f\x7c\x7c\xc5\x37\x98\x44\x8f\x39\x19\x6e\xb6\xcf\xbb\xfd\xe1\x7a\xf5\x8f\xc3\xfa\xf1\x61\xff\xbc\xbd\xfa\xbe\xdf\x3e\x7a\xf8\x01\x48\x16\x21\xaf\xf7\x6e\xbf\x7a\xb8\x5e\x3d\x5f\x63\xd6\x3a\x34\xe6\x54\xa5\x01\xdc\xe1\x79\xa4\xa7\xef\x22\xb5\xad\x4c\xb7\xf4\xf7\x5f\x06\x1c\x40\x71\x25\x6d\x8c\x04\x25\x17\x0e\xed\x08\x6f\x02\x5a\x45\x89\xb3\xc6\x6f\xcf\xd5\xd5\xc7\x56\x3f\x89\x8b\x2c\x20\x40\xca\xa2\x31\x7f\xd7\xd5\xd3\x7c\x47\x30\x9c\x63\x96\xe1\xa6\x38\xb5\x0f\x75\x27\x42\x95\x3c\x18\x69\x61\x68\xaf\x20\x9a\x4e\x42\x60\x3e\x31\x24\x53\x48\x9a\x72\x1a\xe4\xd0\x1c\x5b\xd7\x28\x1f\x63\x68\x62\xb3\xff\xc8\x5d\xd6\x6f\x4c\x07\x51\xe9\x03\x86\xbd\x0f\x6f\x53\x4e\xe2\x71\xa8\xe9\xeb\xff\xef\xef\x9d\x69\x8c\xed\x1c\x6b\x0d\x33\x4f\xd3\xd0\x0c\x30\x78\xe4\xe6\xff\xbe\xfe\x36\x60\x8c\x7c\x97\x3c\x26\x16\xab\xd3\xed\xeb\x6b\x98\xd5\xec\x19\x26\x19\x82\x5c\x4f\xf5\x3b\x34\xd7\xf5\xfb\xa7\x3c\x47\xa1\x7f\xca\x22\x4f\x37\x8e\x2e\xb4\x53\x18\x75\x56\x0e\x7c\x8e\x8d\x32\x4c\x27\x58\x59\x7c\xb3\xbd\xfd\xb6\xbf\x7f\x7c\xd8\x78\x3a\x10\xc3\x89\x4a\x43\xd9\xa5\x55\x03\xb8\x1e\x5c\x4f\xc3\x05\xcb\x5c\x7d\x87\x17\x82\x16\x25\x5c\x8b\x8f\x55\xa5\x07\xbe\x59\x3f\x60\x5c\x6b\x8c\x54\x9b\xa2\x09\x59\x49\x13\x53\x4e\x5c\x84\x66\x6b\x3f\xe0\x5a\x54\x57\x58\xe3\x34\xca\x43\x99\x38\x8f\x11\xb5\xf8\xa3\x28\x4b\x51\xd5\x6f\xe2\xad\x7d\x16\xda\xd4\xa1\x82\xc5\x24\x92\x61\xa8\x07\x65\xf3\x9f\x47\x98\x25\x93\x26\x56\x1b\xaa\x77\xca\x11\x04\xdd\xbe\x0e\x18\x3f\x46\xc6\xd1\x74\x93\xa6\x8a\x78\x85\x78\x67\x3a\x3d\x9a\x70\x23\x95\xa1\x1a\xf7\xb1\xf6\x2b\xd7\x64\x89\x41\x83\x0f\x89\x64\x23\x76\x60\xe4\x40\xd9\xec\x4b\xe7\x94\x7a\x7a\xd5\x81\x15\xd3\xfd\xb8\xef\x12\x1b\xf4\x31\xbf\xad\xfe\xb1\x0a\x74\x44\x26\x4f\x32\x1b\xc4\x13\xcd\x56\xef\xeb\x67\x4c\x5e\xcd\xe6\x89\x20\x11\x82\xac\x8f\xb6\x5c\xcf\xe2\x90\xa6\x66\xb1\x11\x54\x61\x20\xe6\xee\xee\xc7\xe1\x2d\xa2\x07\x7f\x32\x18\xc9\x33\xee\xb4\xfc\xe1\xfd\x1a\x40\xcf\x9e\x5c\x71\x66\xd9\x1d\x35\x20\x3b\x63\xf1\x1f\x98\x95\xbc\x18\x95\xe4\x99\x2b\x15\x3b\xbc\x8d\x32\x4e\xed\x63\x55\x7e\xdc\xd7\x7a\xcc\x67\x61\x94\x60\x42\x07\x91\x5a\x57\xc6\xbb\x3c\x9f\x55\x3f\xa5\x31\xac\x55\x54\x3f\x8a\x52\xcc\x16\x98\x66\x19\x9a\x84\x78\xa6\xd9\x1b\xdd\xd4\xc1\x9f\xfe\x03\x8a\xfe\x10\xf0\x51\xcf\x7d\x3d\x91\xf6\xd5\x46\x67\x11\x9e\x19\xbb\xa7\xd5\x94\xe4\xc1\x80\x50\x88\x8b\x42\xff\x58\x94\x16\x73\xd4\x5f\x3a\x4b\xe3\x60\x77\x20\x44\xe6\x98\xcf\xf6\xec\x2e\x4e\x30\x63\xe9\x95\x80\x50\x2a\x29\x1d\xf1\xc1\xb5\x57\x42\xfd\x5c\xdd\x74\xd0\xac\xeb\x66\x8c\xa0\x04\x12\x31\x81\x09\xc9\xb6\x2c\x4e\xa7\x90\xba\x05\x82\x02\xa8\x83\x0e\x99\x65\xa1\x98\x0c\x0d\x90\x48\xc7\x08\xf3\x29\xda\x3d\xcc\x04\x55\x80\x70\x9e\x61\x11\x83\x7b\x9d\x41\xb4\x62\x7c\x16\x02\xe1\x71\x86\xec\x33\x98\x96\xda\x81\x3a\x63\xd5\xd3\x32\x30\x6c\xf6\x03\xd2\x30\x8b\x5c\x44\x16\x97\xdd\x6b\x71\x1a\x7b\x7d\x99\xeb\x16\x67\x16\x17\x6d\xa5\x27\xce\x9e\xdd\x66\x88\x6b\x01\x89\x55\x8e\x5d\xbc\xa7\x54\x5d\x7d\x5c\x41\x05\xa6\x50\x45\x38\x20\xfa\x5e\x22\x75\xe6\xe2\xe1\x09\x2a\x5d\x54\x2f\xb7\xe3\xd4\xd5\xa5\xea\x9d\x9f\x8e\x40\x62\x20\x88\xeb\x84\xde\x56\x18\xaa\xe1\x80\x24\x49\x84\x0c\x90\x68\xc6\x5e\x37\xe2\xdd\xd5\x00\x87\x76\x09\x58\x2d\xa2\xeb\xf7\x0a\x5f\x73\x5f\x5f\x89\xb6\x50\x93\xe5\x03\x24\xcd\x09\xb2\x4c\x43\xa5\xaf\xce\x03\x71\x26\x90\x8c\xa4\xe8\x6b\x57\x48\x5e\x7a\xd5\x29\x5b\x17\x1b\xee\x9f\x45\xb6\x86\xf2\x74\xee\x76\x5d\xdd\xdb\x32\x57\xdd\x65\x49\xc6\xdf\x25\x9d\x5f\x04\x00\x85\x5f\x32\xa9\xad\x0c\xfc\x2c\x87\x03\x24\x8b\x15\x82\x31\x85\x45\x4d\xed\xeb\xc7\xd2\x7a\x49\x5e\x74\x68\x1a\x5e\xe9\x2f\xd0\x76\x13\x9d\x57\xec\xf6\xf7\xe5\x2e\xe9\x36\x9d\x70\x59\xaa\x89\x0b\xc6\xd9\x52\xfb\x12\xb1\x55\xb3\xb8\x2b\x90\x9c\x32\xb4\xd3\x7f\x17\xd5\xcb\xe6\x71\xe7\x07\x2c\x8f\x0c\x16\x38\xf7\xdb\xf6\xd3\xb9\x2c\x91\x95\xa2\x39\xfb\x63\x06\x48\x9e\xa5\x68\x2e\xbc\xc1\x6b\xa1\x4a\x40\x4f\xec\x93\x65\x2a\x22\xe6\xd3\x0a\x03\x5a\x70\xd6\x25\xa6\x08\x93\xda\xbf\x43\x50\x9f\xf4\xbf\x24\x52\x21\x1d\x1b\xdf\xe3\xc3\xed\x61\xf5\xfd\x7a\xbb\x9f\xc3\x8b\x27\xaf\x2e\xa4\x40\xc3\xd9\xd4\xe7\xa6\x7b\x3d\xb8\x1a\xf6\xf9\x2f\x6a\x86\x16\xe2\xfe\xe9\xab\x42\x50\x20\x02\x34\x42\xd9\xf6\x0d\xc0\x53\x39\xd1\x63\x02\x22\x53\x40\xec\xb8\x85\x39\xe0\x66\xa9\x6a\x0d\x8d\x35\x96\xad\x4b\xf2\xf5\xea\x56\xd4\xa0\xcd\x63\xa0\x53\xaf\x0f\xf0\xab\x9b\xd6\x2c\xbb\x5e\xda\x49\x39\x3a\xf2\x78\x1f\xe2\xa8\x9b\xc0\xc4\xe7\x3b\x1a\xa9\x03\x23\x93\x45\x77\x2e\xe3\xde\x81\x80\x01\x84\x36\x9f\xce\xdd\x55\xa7\xfa\x27\xde\xfd\x7f\xb4\x24\x8c\xd6\xe8\xcc\xa3\x11\xf5\xad\xd6\xe5\xb2\x02\xc2\x64\x60\x28\xc9\x19\x16\xd4\xb8\x30\x2c\x2a\xbd\xf9\x04\x80\x05\x24\x4e\xc3\x2c\x93\x97\xa3\x24\xb7\x18\xf8\x63\x51\x5d\x15\x7e\x17\xa2\x94\x49\xe3\xd8\x9f\xd4\x33\xb4\x0b\x82\x2b\xb3\x87\xa0\x0c\x74\x3a\x82\x9b\xd7\xc5\x27\xfe\x2e\x50\xca\x63\x94\x8f\x7e\x7a\xde\xfe\x58\xed\x37\x07\xac\x53\x5f\xad\xd7\x43\x30\x09\x28\x4d\x39\x35\x63\x45\xce\xbf\x18\x03\x9a\x69\x2c\x0a\xeb\xed\x80\x36\xe0\x57\xfa\xbf\x1b\xbc\xcf\x3b\x14\xf7\x05\x32\x14\x05\x51\x29\xa0\x54\xa6\xc8\xf0\x2c\x45\xa7\x5e\x57\xd3\xa2\xfa\x0b\x53\x15\x28\x85\x28\xcd\xbe\xe0\x6b\x9e\x0d\x2c\x4b\x85\xb4\xf6\xff\xaf\xa7\xda\x27\x2d\xfa\x3f\x83\x15\x9c\x13\x06\x0e\x42\xcf\x4e\x75\xca\xf2\x3c\x71\xdc\x6a\x0a\xfe\xf0\xe8\x3c\xa0\x3c\x4e\x31\xe5\x5f\x54\x05\x9e\x54\xed\x65\x1a\x3e\x3c\x68\xcc\x34\x16\x8c\x1d\xc5\x2f\x2b\x1d\x3b\x56\x6d\x05\x1a\x47\x3c\xd1\x21\x5c\x62\x69\x10\xd7\x75\xd5\x76\x8d\x28\x2a\xa4\xf9\x0c\x6f\xb4\x90\x44\x01\x1a\x27\x09\xee\x97\xa7\x83\x75\xf4\x06\x43\x65\xf6\x2e\x31\x58\xa8\xe1\xad\x05\x82\x20\x83\xdd\xe5\xb2\xa9\xeb\x72\xb2\x8f\xd0\x24\xce\xa8\xd7\x42\xb9\xba\x5f\xff\x3f\xa1\x1a\x80\xa6\xb1\x42\x08\xdd\x4b\x5d\xea\xef\x9e\x00\xd0\xb7\xc9\x0c\xad\xf1\xe3\xb9\x43\x59\x76\x21\x9f\x46\x04\xf6\x9f\xdc\x30\xa3\x14\xfd\x90\xd5\x6b\x5d\x97\x30\xce\xe2\x03\xcd\x98\xc6\xf0\x86\xd0\x7a\x07\xa5\xea\x6e\x90\x61\xf9\x1a\xc4\x40\x21\xfa\x37\x1f\x3b\x03\xcb\xa9\xd6\xbb\xc5\xc5\x11\x8a\xea\xbe\xa8\xce\xc3\xb1\x4c\x45\x14\xa5\x83\x0c\x93\xdf\xb1\xda\x75\xbd\x24\x96\x0d\x54\x70\x86\x86\xd8\xc9\xfa\x1c\x76\x87\x2d\xa1\x6d\xf7\xa2\x45\xcd\x8b\xde\xfa\xfd\x1b\xea\xb6\x40\x45\x1e\x11\x17\x6b\xbf\x13\xad\x25\xff\xf1\x0f\x25\x89\x46\x0a\x50\x47\x28\xf1\xa3\xee\xa0\xf9\x92\x4c\x02\xa8\xe4\x09\x5a\x77\xff\x3e\x8b\x12\x0d\xf6\xc5\x2d\x97\xca\x58\x46\xe0\xa4\xfc\x37\xa2\x29\x3f\x10\xc0\xcb\xc3\x0f\x8b\xc4\xab\x36\x5a\xe4\xbd\x4b\x0c\x4e\x7f\x4b\x11\x8b\x15\x51\xe2\x54\x74\xa2\x1c\x68\x60\xfc\x6d\x14\xd3\x88\x9c\xf7\xbb\xe5\xef\xf0\xb1\x68\x93\x52\xa5\x28\x66\xc3\xcc\xb9\xd2\x5e\xe8\xc7\x35\xe9\x8c\x62\x45\x8b\xad\x1f\x9a\xa5\x1d\x67\x63\xa9\x05\xe1\x89\x93\x08\x45\x1c\x66\xef\xe0\x4d\x72\x33\xee\x20\xa0\xc0\x72\x3c\xec\x2c\x40\xe0\xf4\x31\xc2\x26\x03\x05\x21\xa3\xfe\xbd\x7e\x7c\xdf\x6f\x76\xfb\xf0\x24\x46\x13\x1d\xfc\x92\x15\x02\xec\x17\x59\x20\x80\x11\x93\x22\x24\xf1\x9b\x68\x5f\xab\x5a\x03\x56\xc5\x04\x30\x1c\x30\xca\x01\xc9\x39\xec\x4e\xe7\x10\xeb\x73\x7b\x88\xd1\x38\xc2\x58\xea\x5b\x01\xef\x23\xeb\xf8\x1a\x3a\x51\x94\xed\xbc\xb3\x24\x38\x21\xd7\x9c\x8c\x7f\x29\xca\xc1\xd3\x18\x7e\xab\xcf\x53\x07\x13\x58\x04\x80\xda\x3e\xf0\x0b\xd4\xd9\x95\x43\x7e\x6a\x5c\x2f\x4e\xdf\xfe\x16\x18\xe2\x46\x66\xcf\x6f\x75\xd3\xfa\x12\x3a\xd7\xce\x8d\x92\x8e\x31\xf8\x5b\xa1\x26\x36\x0b\x8b\xb9\xc0\xf8\xc0\x3f\xf6\x41\x20\x2c\x34\xc5\x29\xa2\x08\x0f\xc8\x05\x79\xe8\xea\x9f\x15\xd2\xbe\xb5\xa0\x6a\xef\xfd\x03\x8b\x21\x8b\xd2\x49\xc2\x25\x68\xdb\xfb\x1e\x46\x7b\x16\xdb\x7e\x75\xed\x3a\x18\xca\x73\x80\x25\x44\xb0\x31\x71\xb5\x0b\xa9\x8d\xab\x50\x80\x25\x0c\x78\x12\x24\xde\x35\x3c\xf6\xd6\xbe\xab\x09\x9a\x8e\x45\xc2\x89\x4e\x02\xf9\xc7\xba\xac\x5b\xd4\x77\x9a\x9b\x98\x2c\x65\xb9\x65\x20\x6a\x9f\xe1\xcd\x0a\xcb\x8e\xe7\x1f\x4b\x81\xca\x31\x35\x75\xff\x58\xdd\x35\x08\xbd\xa0\xef\x0e\x2c\xcb\x2d\xb1\x17\x32\x55\x36\x37\x05\x94\x3a\xf2\xcf\xae\x13\x85\x80\xb9\x03\x1c\x8b\xce\xb3\xbf\x7f\xad\xf8\x04\x4c\xa7\x96\xfa\xdf\xfb\xb2\x23\xc7\x8d\xe9\x54\x83\xaf\xf9\x18\x24\x88\xb6\x95\x2a\xcf\xbd\x7b\xb6\xf5\x25\x67\xcb\xa6\x09\xd3\x5a\x26\xe3\x8c\xf6\xff\xd6\xcd\xc0\xb7\xb1\xe4\xcd\xfd\xd7\x78\x5c\x20\x23\xee\x60\x0d\xac\x18\xed\x4d\x59\xd7\xcb\x59\x29\xef\xaa\x31\x80\x08\x43\xf0\x1a\xe4\xf9\xe5\xd0\x1b\x50\x1d\x52\x34\xba\x66\xa3\x20\x72\x05\xa0\xab\x73\x57\xbb\x13\x6d\x70\x25\x99\x81\x80\x03\x78\x80\xf7\x91\xfc\x21\x44\x84\xf0\xc4\x95\x06\x0d\xd4\x60\x10\x91\x2c\xca\xac\xe7\x55\x5a\x81\xcb\x19\x2c\x03\x22\x1a\x19\xac\x7f\x3a\x78\x63\xa7\x1c\xad\xce\x4f\xc2\x92\x10\x51\x95\xa6\xae\xaa\xed\x9f\xf5\x65\xc9\x3d\x44\x8c\x32\x7c\xd4\x27\xed\x8b\x14\xa6\x3f\xcb\x18\x43\xeb\xfd\xea\x66\x9c\x77\x84\x88\xc5\x71\xe6\x65\x9f\x3f\xdd\x00\x46\x0f\xc2\x12\x5b\x62\xd6\xf7\x9f\xac\xf7\x88\x49\x10\xcc\x73\xb8\x7a\x12\xc8\x27\x68\x7c\xd0\xdc\xf7\x8b\x54\x94\x7a\x39\x3b\x04\x6a\xfd\x9a\x59\x37\x11\x8f\x25\x46\xb2\x6f\x84\x65\xd8\x1a\x3d\x2e\x37\x11\x02\x0e\x8a\xf6\x7b\x0b\xcd\x37\xd1\x3e\x41\xd3\x2f\xfc\xba\xda\xd7\xf7\xb5\x2e\xcc\xf2\x31\x13\xc5\xd4\x12\xef\x96\x75\xd7\x81\x85\x64\x0f\xdf\x32\x66\x9a\x0f\xcc\x70\x83\x4c\x7d\xf7\x0a\xd0\x88\xcb\x78\x4b\x94\x50\x86\x48\x06\x09\x5d\xfb\x47\xd8\x72\xa2\x84\x29\xdc\xdc\xad\x36\xe8\x88\x9f\x19\xa2\x24\x4a\xb0\xe9\xea\xfc\x61\x4b\xaa\xbb\xd7\x77\x81\xc4\x0c\xe3\xe8\xc7\xe2\xd2\x89\x92\x38\x15\xb1\x87\xb4\x54\xa6\x78\xd9\x54\x5d\xf3\xb1\x1d\x11\x4d\x4e\xfb\xa7\xb1\xc5\x41\x20\xf1\xec\x63\xf5\xdb\x78\x1e\xa5\xb9\xf6\x95\xeb\x36\x94\xeb\xfe\x9e\x09\x86\x26\xb5\x76\xa7\xe7\xe4\xe1\x33\x2d\x9c\x1e\x7d\x7f\x4a\xdf\x94\xb3\x02\x16\x88\x72\x96\x60\x49\xd5\xfb\x9c\x92\x79\xf1\x08\x09\x97\x49\xce\x30\x37\xa3\x44\xc8\xac\xcc\x66\xad\x54\x29\x86\x32\x57\x47\xf1\x9f\xa2\x7a\xb9\x9e\x25\xde\x21\x52\x39\x20\x72\xe8\xdf\x6d\x28\x9e\x80\x48\x49\x91\x99\xb0\xd7\x78\x0e\xfe\xeb\xab\xf9\xb5\xc0\xd1\x13\xbb\xdd\x6d\x1e\xfc\xa5\x3a\xe1\x18\xa3\x79\xed\x1d\x97\xa2\x7a\x69\x1f\x00\xb4\x87\x8f\x42\xa4\x05\x70\x97\x35\x2c\x8e\xe7\x63\xbf\xf2\x31\x17\xf4\xbd\x2a\x82\x17\x10\x69\x90\x58\xbc\x78\xff\x71\x6f\x11\x0b\x97\x08\x1f\x88\xb4\x31\xe8\x21\x61\x58\x6b\xed\xb5\xdd\x3e\xd5\x1b\x59\x3e\x83\x7b\xef\x1f\x99\x40\xda\xae\x3e\xdd\x17\x55\x17\x32\x68\x10\x01\x64\x98\xe4\x7e\x80\xf7\xff\x7b\x86\x16\x8d\xb3\x31\x0a\x2b\x7c\x05\xc3\xc1\x52\xaf\x80\x28\x37\xad\x35\xdf\x3f\x4e\x5d\x7d\x73\xae\xb4\xcb\x36\x4c\x9f\x9d\x13\x21\x24\x1f\x14\xcd\x55\x37\x16\xc0\xfe\x9f\x6c\x8a\xee\x02\x4e\x59\x8c\xa5\x1f\x1b\xd1\x7a\x5f\x8d\xd3\xd8\xaa\xd1\x2d\x06\x93\xc6\x66\xde\xd2\x78\x2c\x57\xbf\x8d\x7e\x50\xc7\x1e\xc6\x63\x15\x00\xfb\x25\xf7\xad\x7e\xc7\xb2\xfa\x0b\x2f\xd4\x5d\xc4\x52\xc8\xf2\xf0\x52\xdf\xea\xb6\x5b\x55\x1a\x49\x10\xea\x66\x7d\x9e\x6d\x51\x9c\x09\x8d\x19\x82\x6d\xd5\x76\xa2\xea\x0a\x9f\xf5\x03\xce\x40\x63\xe8\xfc\xa9\xa9\x5f\xfa\x1f\x2a\x9c\x55\xf1\xdb\x17\x0c\xaa\x17\xff\x4e\xc7\x3b\x92\x09\xda\xc8\xd2\x69\x6a\x3f\x9a\xd9\x07\x89\x20\xc3\x0f\xb2\xaa\x8a\x23\x7c\xae\x84\x0c\x9c\x53\xb0\x65\x05\x96\xbb\xe5\x6b\x73\x80\xf3\x98\xa3\xfd\xb3\xdb\xaf\x9e\xf7\xdb\x87\xdb\xc3\xef\xdb\xbb\x10\x9d\xe3\x3c\x8e\x2d\xc2\x27\x54\x9c\x4e\x34\x22\x81\xf3\x24\xc7\xb0\xf6\xb5\x27\x9e\x06\xce\xd3\x44\x44\x33\x80\x95\xb3\x1b\x02\xf9\x7a\xd5\x7d\x12\xde\xe0\x31\x31\xc6\xf8\x6c\xd8\xb5\x05\x67\x4f\xc2\x74\x3c\x4e\x62\xed\xf9\x74\x36\x4d\x53\x37\xdf\x2b\x11\xd4\x20\x1f\xc4\x31\x44\x6f\xbc\x69\xcf\x13\xc2\xa5\xad\xfa\xf2\x1a\x0d\xa1\x41\x60\x0a\x66\x28\x3e\xbc\xaa\xeb\x9f\x73\x86\x52\xe0\x09\x58\xc3\xc6\xd4\x4d\x77\xae\xe0\x00\x95\x16\x0b\x8c\x14\xc0\xd3\x84\x60\xde\xe7\x58\xbf\xc1\xe7\x20\x34\xe0\x59\x6c\x89\x4a\xb0\xbe\xba\x3e\x9f\x2e\x44\xc3\x80\x67\x19\x43\x72\x01\x37\x86\x6b\x1f\x36\x31\x45\x73\xbc\xd4\xa4\x73\x17\xe5\x24\x4d\xc7\x15\xe9\xa6\xac\x7f\xf6\x6e\xd9\x27\xca\x6c\xd3\x5d\x82\xe7\xa9\xe5\x58\xfd\xf1\x78\xf7\xfd\x7e\xe3\x93\x4d\xc0\xf3\x8c\x21\x54\xd8\x13\x47\xab\x9f\xd0\xad\xc5\x69\xf6\xc0\x79\xae\xdd\x97\xd3\xbf\xff\x63\x3d\x9b\xbd\xb9\x04\xed\x92\x4d\xe3\x43\x6d\x72\x03\x91\x5b\x36\x5a\xa8\x4c\xdd\x28\xd8\xa1\x33\x30\x26\x87\x98\xbd\xac\x64\x44\x0d\x14\x74\xb7\xe2\x68\x59\xc5\x4c\xa1\x3e\x89\x87\x73\xc9\x62\x47\x64\xe2\x02\x00\x17\x4e\x2d\x97\x5a\xe1\x31\xf7\x2a\x5a\x37\xef\x5c\x6e\x02\x29\x1b\x67\x7e\x19\x97\x00\x96\x9e\xf3\xf1\x2e\xcc\x7f\x45\x6c\x45\xab\x15\x17\x3f\xd0\xd9\x30\xa9\x3c\x8e\xf8\x38\x72\x7a\x84\xaa\x0b\x12\x69\xc0\x75\x4e\xd1\xfa\x19\x84\x85\x0c\x65\x97\xc2\x42\xc0\x81\x58\xb1\xc2\xaa\xee\x0a\xf3\xf1\x68\x56\x8d\x2c\x3a\x0b\xfc\xf3\x85\xcd\x8b\xfe\x2b\x37\x3c\x47\x58\x46\xdb\xcd\x59\xbf\x81\x1b\x23\x7c\x39\xf7\xf6\x28\x46\x90\xa6\xa1\x4e\x63\x71\x68\x63\x92\xa5\x4a\x85\xf4\x6b\x5b\xa8\xfd\xeb\x70\x50\xc5\x44\x12\xe9\x71\x0b\xb8\x5d\x5b\x72\xb9\xc9\x73\xc5\x44\x03\x72\x13\x05\x15\xd4\x09\xd8\x06\x62\x4a\x32\xfc\x7a\xfe\x3c\x79\x7c\xda\x0d\x00\x23\x88\x99\x8e\x31\x35\x58\x9f\xa0\xba\xaa\x7f\x8d\x63\x7c\xae\x47\x44\x01\xe7\x31\xc2\x96\x71\xbe\x20\xa4\x66\x3a\x04\x71\xa4\x14\x2a\x51\x09\xd5\x9d\x85\xad\x82\xba\x2e\xde\x8a\x76\x06\x7e\x87\x98\xf3\xb0\x88\xaf\x8a\xae\xad\x27\xb9\x5b\x88\x79\x92\x20\x6f\xb4\x0f\x56\x5c\x9f\x45\xf9\xf8\x5e\x4d\x44\x66\xa7\x03\x10\x83\x40\x44\xf0\x49\x34\x56\xa1\x22\xe0\x6c\x7d\xc4\x6a\x36\x62\x09\x8d\x11\x71\x75\x53\x9f\x27\x26\x74\x9c\x64\x06\x79\x83\x31\x76\xf8\xd1\x6e\xab\x47\x63\x02\xfa\x09\xe2\xc4\xd8\x7a\x01\xe4\x8c\xfc\xa8\xe7\x27\x5f\x9c\x46\x16\xf2\xbb\xf1\x9a\x25\x56\xdf\xc0\xb5\x66\x89\x40\xcb\xf8\x0a\x1c\x21\xa3\x97\xb3\x5b\xcc\xb4\xc6\x59\x4e\xe2\xc1\x2b\xfc\x1d\x3e\xda\x89\x8d\x42\xc3\xe7\xc9\x04\x4f\x1c\x5d\x03\xea\x4c\xa2\xb8\xac\x6f\x53\x71\xa6\xdc\x04\x9a\x0d\x42\xce\xac\xf8\x73\x28\x59\xb6\x3e\x9c\x3d\x83\x67\x5d\xa3\xc8\x0c\x64\x89\xab\x81\xc5\x2a\x3c\x83\x60\xc4\x6a\xac\x7c\xac\x50\xf7\xdd\xff\xbe\x50\x2c\xb3\xe9\xdb\x97\x97\x32\x28\x57\x86\x6f\x2d\x69\x0c\x01\x91\x5e\x54\xbe\xce\x76\xfa\xeb\x32\x86\x28\x90\x8f\x80\x42\x95\x0c\x8c\xfb\x7e\x9e\xe8\x8c\x65\x6a\xcb\xa0\xf6\xef\xf5\x53\x6f\x3b\x7b\x82\x11\xdf\x0c\x02\x41\xa1\x28\xc6\x37\x46\x17\xbb\x76\x05\x40\x42\x36\x78\xfb\xf8\x7d\x2e\xf0\x3b\xed\xad\x63\x3b\xf3\x5b\x5f\xfd\xb7\x72\x01\xcb\xe9\x07\xd5\x39\x41\x92\x0b\x71\x76\x2a\xf1\xbb\x90\xa0\x87\x58\x0b\x43\x98\xc7\x9d\x58\x1a\x59\xdf\x04\xda\x62\x35\x9f\x37\x37\xdf\x1f\xae\x91\x0d\xfa\x70\xfd\xfd\x79\x35\x20\xa4\x20\x06\xa3\x73\xe6\xd4\x13\x9b\xc0\xdf\x3c\xa7\xb8\x81\xd8\x48\x40\xa6\xea\x87\xc7\xfd\xc3\x28\x22\x16\x1b\x9d\x63\xd0\x52\xfb\x42\x38\xe7\x0c\x3e\x5c\x6a\xd1\xda\x08\xc4\x64\x04\x12\xc2\x0d\x1f\xe3\x2f\x57\x42\xbf\x8a\xc6\xc7\xe4\x96\xf4\xd4\xfd\x85\x69\x2c\xb8\x4d\x86\x74\xa5\xf5\xac\x3c\xfa\x04\x12\xa2\x32\xac\x3a\xb2\x08\xcd\x7b\xd0\xc5\x25\xc6\x1f\x12\xa6\xb3\xc8\x89\x5f\x58\x69\xcc\x47\xe3\xb8\xd4\x66\x3b\x54\x12\x13\x45\xe3\x51\x60\x4c\x20\x51\x82\xff\xb5\x58\x50\xb4\x41\xca\xba\x7a\xb9\x9f\x51\x84\x0c\xf7\x48\x63\x35\xad\x3e\x40\xab\xf3\x0a\xb5\x1f\x37\x8b\x51\xf1\x24\xcd\x38\x6e\xe2\xab\xfd\xdd\x78\xb3\x49\x32\x4a\x73\xe9\x75\xbf\xe5\xf9\xc5\x3e\x3d\xfb\xe4\x87\x33\x1a\xe1\xb6\x68\x29\xf3\x9b\xfa\xb4\x1a\x55\xe8\x43\x92\x25\x4e\xe8\x15\x2d\x98\xe5\x8d\x32\xc9\x84\x88\x84\x8f\x61\x9d\xac\xa3\x3f\x1f\xa4\x4c\x03\x9a\xa1\x57\xfd\xaa\xb1\x27\xf9\x0e\x9a\xb7\xcf\x40\xa7\x90\xe4\x91\x41\x2c\xd5\xea\x74\xda\xcd\xb8\x91\x21\xc9\x93\x4c\xba\x30\xa1\xc3\x4b\x05\xb0\x30\x24\x22\x4e\xac\x8f\x6b\x29\x06\x11\x8f\xb0\x14\xa1\x48\x44\x22\x22\x1b\x53\x08\xf1\x80\x5d\x10\x52\x83\x44\xd2\x44\x3b\x96\xd0\xdd\x6b\xfd\xbe\xad\x3a\x68\xde\x66\x2c\xce\x90\x28\x62\x11\xdd\x48\xbf\xd1\xb4\x36\xd5\xdd\x9f\x2a\xe3\xe4\x42\xa2\x39\x78\x1d\x99\x47\x84\x94\xbb\xfb\x70\xe2\x3b\x24\x22\x91\xbe\x52\x16\x8f\xb7\xc5\x5c\x42\xa2\x13\x4d\x64\xd8\x33\xef\x45\xbf\x2c\x94\x68\x2e\x8b\xd3\xb1\x2b\x16\x78\xfa\x79\xb9\x72\xd9\xc7\xf9\xa7\xd1\x79\x3a\x32\xc3\x2c\x5c\x79\xd1\x4e\x4e\x80\x58\x45\x33\x0c\x3a\xf4\xe7\xc1\x98\x75\x02\x12\x60\x02\x6b\x0a\x0e\xc7\xa2\xea\xac\x5f\xbb\x3c\xf0\x20\x04\x71\xf8\xce\x50\xca\x30\x7d\x76\x43\x29\xc2\x92\x64\x6f\x77\x3d\x9a\x99\xf7\x95\x18\x4e\xd1\x03\x40\xe2\x08\xe4\xa9\x84\xee\x62\xce\xa5\x24\xcf\xd1\xf4\x2b\xda\x6b\x70\xf5\xad\x17\xc1\xbe\xcb\xc0\x5f\x4a\x63\x8d\x51\xb5\xb2\x7e\x79\x6a\xea\x63\xd1\xc2\xcd\xb9\x34\x45\x59\xce\xcf\xd2\x94\x51\x42\xe3\x81\x0b\x6d\xfe\xfb\x4c\x32\xe9\x9c\x62\x2b\x87\xf2\xb9\xf8\x03\xa4\x4c\x1b\x8c\x73\x98\x89\xc8\x39\xa4\x09\xa1\x99\x97\x09\x87\x5f\x5e\x1f\xf6\x2a\x04\x01\xd3\x84\x72\xac\x97\xdf\x6f\x37\xcf\xd1\xe1\xe9\x79\xeb\xa5\x02\x21\x4d\xb8\xc1\xb0\xd4\xc1\x46\x53\x31\x7c\x3b\x66\x86\x75\xdd\x52\xce\x51\x3e\x17\xbf\xdb\xe7\x78\x9f\xa1\x04\xc7\x5f\xa7\x95\x71\x73\x76\xd0\x5c\x6b\xbf\x1e\xe3\xc9\x48\x67\x89\x75\xdc\xaf\x0b\xf5\xf3\x15\x84\x5e\x07\xa6\x3f\x48\xb3\x4c\x7a\xaa\x61\x67\x3f\x2f\x56\x38\xf8\xde\xc2\x60\xfc\xf2\xd9\xea\x8b\x37\x36\x55\x6c\x49\x49\xc4\xa7\xce\x79\x9a\x29\x83\x0e\x1a\xda\xb0\x96\x2c\xe2\x06\x60\x30\xff\xd3\x3c\x83\x2c\x1a\x1b\xc1\xfd\x3a\x1b\x65\x3e\xa6\xb7\xcb\xf3\x08\xcf\x0c\xcb\x6b\xea\xd9\x8a\x7d\x23\x70\x44\x8c\xa9\x73\xdb\xd5\x47\x68\x9e\xea\xb2\x50\x23\xc1\xa7\xd9\xa3\xc9\x24\x43\x7e\x9d\x87\xab\x05\x7e\x96\xaf\xca\x16\x20\x95\x92\x23\x82\xd3\x5b\xe6\xbf\x7f\x28\xcb\x4d\xf1\x5a\x9c\x3e\x19\x3f\x25\x09\x42\xdf\x6d\xb1\xff\x25\xf1\x28\xa4\x9a\x64\x98\xdc\x82\x63\xd1\xa1\xfe\x02\xaa\xc2\xea\xc5\xae\x54\xa0\xf3\xe1\x6a\xa6\x07\xaf\x6e\x5c\x0f\x09\x29\xb0\x18\xd1\x4d\xbd\x55\xfc\x51\x89\x63\xa1\xd6\xa2\xd1\x23\x2e\x82\x79\x94\x29\x85\x88\x20\x25\xc5\xa9\xae\xcb\x61\xc6\x85\xfb\x71\x66\x86\xc2\xab\xd2\x05\x92\x7c\xb8\x62\x3c\xef\x20\x25\x82\x7b\xf4\x1f\x56\xa5\x4e\xe2\xea\x29\xa4\x11\x71\xdc\x46\x36\x60\x82\xe5\x64\x6f\xd0\xec\x6b\xfb\x78\xfd\x2b\xbd\x7f\xe6\xf6\xa7\x86\x25\x18\x3d\x7e\x85\xa6\xde\xea\x7d\x6d\xeb\x5e\xa7\xaf\x62\x62\x2e\x86\x00\xf8\xea\x74\xb2\x61\xad\xe0\x14\x64\x24\x8a\x30\x0e\xdb\x9e\xe5\xb6\xdd\x09\xb3\x5c\x55\x09\x19\x51\x12\xfd\x2c\x8c\xd0\x7c\x5f\xe0\xd5\x74\xfd\xa8\x14\x58\x51\x7b\x6a\xc0\xf1\xbb\xe9\x21\xca\x9a\x51\x1d\x23\x00\x3d\xcc\x73\x4f\xed\x3b\x97\xb5\x84\x8c\x91\x18\xf3\xcc\x42\xeb\x0b\x42\x93\xff\x9a\xe8\xa7\xfb\x0b\x40\x89\x50\x71\x81\x8f\xf4\x58\xcd\x2c\xe3\x2c\x32\x09\x6e\x62\x0f\x85\xfa\x09\xe5\x20\x4b\xd4\xb7\x80\xe7\xbe\xbb\xff\x40\x47\xc4\x9b\xf9\x19\x97\xcc\xbd\x52\x81\x6c\xf2\x4f\xa2\x6d\xe7\x05\xe8\xae\x6b\x1c\x51\xe6\x0a\x4c\x6e\x45\x7b\x53\x37\x7f\x8a\xf3\xec\x11\xe2\x94\x22\x3a\xef\x28\x9a\x9f\xd0\x15\xd5\x8b\xc7\xfc\x87\x76\xfb\xde\x48\x64\xb4\xad\x3c\xef\x52\xef\x06\xb0\xd0\x27\x37\x6a\xe0\xbf\x19\x05\x65\x66\x1f\x2d\xa1\x89\xd5\x0d\x84\xee\xea\x5c\x96\x0b\xfc\x1b\x90\x25\xa9\xad\x47\x47\x3b\xae\xf7\x59\x75\x7d\x0d\x9b\x56\x9d\xa1\x14\x17\x11\xa4\xd9\xa5\x59\xa2\x7c\x1d\xf2\x59\x2e\xee\x55\x59\x22\x18\x12\x42\x0f\xe4\x09\x9f\x92\xa4\xcc\x52\x83\x59\x4a\x74\xe2\xa6\xe6\x37\xd1\xbe\x36\x9f\xe9\xa5\x40\x96\x66\x89\xb0\x24\xb3\x68\x8c\x8d\x6b\x4f\x7d\x0f\x6d\x69\x68\x3b\x8b\xfa\xc5\x3c\xd6\xe6\xdc\xd4\xeb\xa1\x6a\x0a\xb2\x8c\xa6\x5e\xe4\xd3\x01\x90\x27\x56\x6a\x96\xe9\x3c\x92\xfe\xac\x50\x75\xa3\xa1\xd9\x5e\xcf\x7e\x28\x8f\x2c\xc1\x68\x59\xfb\xda\x1d\x7f\xb5\x20\x31\x52\xe1\x5f\x15\xa8\x58\x32\xfc\x59\x22\x94\xbc\xbf\x40\xd7\xef\x61\x42\x8a\xd4\x66\x5e\xfa\x53\xa0\xdf\x83\x30\x2a\xb4\x90\xff\xcb\x44\xce\xa3\x3c\xc8\x5e\x8b\xf2\x82\xb2\x14\x32\x49\x35\x02\xcd\x70\x74\x16\xa5\x90\x3f\x0d\xc0\xfb\x3b\x00\x03\x3b\xc2\x88\xa1\xb4\xe6\xee\x28\x0e\x93\xa9\x88\x43\xec\x48\xfd\x50\x25\xc0\x29\x74\x5e\x52\x24\x40\xa6\x14\x43\x03\x4e\xd7\xf8\x52\xd3\x9a\x4f\xc8\x54\xef\x58\x4d\xc2\xcf\xe5\xc7\x41\xd9\x63\x20\x74\x01\x4f\x5b\xf5\xf4\xf8\x78\x67\x6b\x63\xe3\xd0\x6a\x04\x5a\xa4\x0f\x97\x7c\x0f\xe7\x39\xb9\x11\x64\x3a\x01\x24\x53\x39\x9e\xcb\xee\x63\x1f\xd2\x50\xff\x43\x09\x19\xcc\xa7\xfe\x7f\xf8\xfe\x79\x8a\x51\x96\x73\xa5\xa1\x79\x6f\x8a\x6e\x02\x6f\xca\x40\x09\x04\x54\x9f\xca\x73\x8b\x79\xe7\x45\xbc\x40\x66\x62\x99\x13\x5f\x45\x5b\x99\xe2\xe5\xb7\x05\x2a\x5b\xc8\x4c\x62\x65\x8b\x5b\xe8\x36\xfb\x6f\x97\xbb\xa4\x31\xdc\xd6\x8a\x59\x32\x6a\x68\xf6\x41\x65\x1e\x72\xc2\x33\x44\xfc\x68\x78\x83\x5f\xbe\xac\x09\x72\x9a\x27\x98\x53\x78\xa8\x7f\x9e\x6d\x8d\xf2\x02\x72\x37\xa7\x22\x41\xee\x9f\xbb\xc7\x31\xe2\x1e\x72\x46\x59\xe6\x16\x7d\xd7\x9c\xa1\x9c\x48\xef\x4d\x1e\x2e\x67\xee\x3b\xe0\xb4\x5b\xd7\x47\xaf\x90\xf5\xdb\xb8\xcc\x7a\x7a\x09\xcf\x29\x1a\xc5\x0d\xbc\x41\x75\x0e\x6f\xc2\x55\x8e\xf0\x05\xa7\xde\x5c\xd4\xd5\x3c\x53\x92\xc7\x31\x63\xce\x48\xf6\x71\x85\x3c\x56\x39\xfa\x6f\xf7\x8f\x8f\x0f\xfb\xe7\xd5\xf6\x2e\x34\x18\x8b\x3a\x38\xbc\x8a\x4a\x97\x30\x48\x1c\x5e\x83\xcd\x6e\x7f\xf2\x46\x89\xa2\x38\xef\x9e\xa0\x3e\x8d\xe4\xc8\x3e\x9d\x5c\x79\xa2\x99\x97\xfd\x74\x04\x18\xab\x97\x21\x6e\x92\x27\xfd\x26\x6a\x0f\xb9\xe7\xba\x9c\xf0\xa9\x42\x9e\x72\x6e\x4b\x8f\xf1\x9c\x75\xa7\x69\xa5\x9d\xdf\xe6\x57\x53\x9e\x26\x16\xdc\xec\x58\x71\x16\x62\x37\x79\xaa\xe5\x28\x94\x7f\x2f\x8a\x6a\xe9\xec\xce\x53\x00\xa4\x38\x2b\x6c\x30\xed\xd1\xac\xca\xd2\xd6\x49\x0e\x8a\x1d\x16\x3d\x39\xbd\x2e\x23\x11\x7a\xc2\xfd\x0a\x2a\xac\x09\x58\xe8\x70\x7e\xe6\x59\x94\xa8\x31\x81\xc4\xad\x18\x9a\x64\xee\x5d\xfa\xd5\x9b\xe8\xc4\x52\x42\x35\xcf\x13\xcb\x68\xff\x2a\xca\x6e\xbb\x79\xf4\xd7\xf6\xcb\x90\x5a\x62\x21\x68\x7a\x4f\x77\x9c\x34\xf0\x7d\x44\x84\x88\xfe\xab\xa2\xbb\x17\x55\x37\xfc\x70\xae\xa2\xdc\x86\xc8\xd0\x61\xb3\x5a\x0b\x23\x42\xe1\xd9\x77\xcf\x35\xc3\x4d\xfa\xa6\xae\x17\x54\x39\x21\xcf\x81\x21\x66\x64\x07\x25\xaa\x8a\x2e\x2b\xdd\xff\x3f\x65\x80\x73\xc9\x15\x06\x25\xd7\x0f\x93\xf5\x27\x01\xa8\xf4\x9a\x2c\x98\xff\xc6\x38\xf5\xec\xc5\x55\x9a\x62\xac\xd7\xc1\x16\x83\x0a\xd2\x97\x8e\x52\x0e\xb9\xd5\x8b\x1c\x32\x63\x6b\x51\x96\x52\x0c\x88\xc4\x79\x0c\xd1\xfb\x95\x39\xc8\x44\xb9\x23\xf8\xdc\xb4\xc5\x1b\x1c\x1a\x10\x33\x47\x36\x07\x9d\xe2\x99\x26\xcf\x4d\xf5\x39\xd3\xd7\xdf\x1c\xa6\xb1\xad\x90\x9b\x3c\x99\x14\x9f\x2c\xe5\x40\x6d\x57\x41\xe2\x08\x2c\x07\x54\xef\x89\xbd\x8d\xac\x0a\xdf\xc1\x48\x2f\xaa\xe6\xa2\x3e\x03\x2c\xc7\x1f\x88\x82\x52\x4b\x8d\x66\x23\x56\xa8\xa9\xb3\x18\x5e\x15\x94\x0b\xcc\x95\x42\xab\x06\xd6\x44\x10\x2c\x66\xf8\x14\xa6\xa8\x44\x69\x63\x35\x6d\x68\x53\x1a\x1c\x2c\xe4\xa6\x10\xee\x21\xd4\xc7\xb3\x28\xda\x79\x6c\x40\x44\x69\x62\xa5\xbb\x2d\xec\xb0\xb7\xce\x2f\x43\x9e\x2e\x8b\x13\xfd\x6b\xfc\x9f\xf8\xe1\xff\x27\xfa\x97\xbf\x91\xb2\x51\x84\x83\x35\x2a\xfb\x67\x2d\xaa\x97\xdb\x3a\xa0\xff\x45\xd4\x7b\x3e\xff\xe7\xff\xf7\x7f\x56\x2f\x4d\x81\x0a\xd6\xcf\x75\xdd\x0d\x74\xe2\x20\x7a\xeb\x3a\xb6\x39\x14\x1c\xd7\xc0\x9b\xe2\x3b\xc4\x54\xa3\x6f\xfa\xcf\xed\xf3\x3a\xfc\x2d\xb6\xac\x84\x56\x05\x0c\x9a\x9b\xc0\x18\x3d\xb1\x4b\x7c\x6f\xa5\xd1\x35\xbb\xdf\x3e\x1c\xb6\x0f\x3f\x36\xbb\xfd\xfd\xe6\x61\x8f\x30\x42\x14\x8f\x3e\x3c\x3e\x6c\x0e\x4f\x8f\xdf\x1f\xae\x7d\x36\x5b\x24\xb9\x4e\x1d\x5f\xc5\xe6\x78\x2a\xeb\x0f\xb8\xe0\x0f\x1c\x79\x95\x22\x51\x39\x12\xe4\x94\x9d\x72\x03\xee\x1a\xd2\xd8\x72\x9c\x0b\xad\xff\xbb\x96\xde\x68\x71\xb2\x7b\x9f\x4e\xe2\xa5\x53\x5d\xa4\xb9\xc2\x22\xed\xfb\xdd\xe4\x6c\x15\x59\x6e\x90\x35\xe8\x54\x9f\xfe\xef\x19\xc2\xf1\x27\xf2\x94\x90\x7c\x70\x39\x27\xd7\x88\x34\x41\x07\x0e\xac\xe2\x65\x59\x74\x23\x71\x47\x10\x22\xb3\x1e\x89\x3c\x7f\xac\xeb\x37\x03\x66\x66\x41\x08\x21\x19\xf2\x2d\xdc\x08\x59\x8f\x01\xad\x42\x98\x0c\x43\x85\x87\x6e\x4e\x8b\x8c\x45\x77\x82\xf8\x50\x6c\x27\x2c\x8a\x79\xd9\x4d\x15\x2a\x56\xc2\x72\xba\x7d\x14\xd5\xcb\x95\xb8\x30\xf8\x84\x4e\xac\x68\xf5\xa8\x48\x40\xa8\xee\x92\x17\x1a\x84\x96\x16\x00\x55\xc1\xaf\xee\x69\x04\x3d\x13\x10\xe5\x58\x1f\x71\x5b\xeb\xff\xec\xde\xc5\xa9\xff\x17\xa7\x53\x6f\x76\x94\xc5\xc8\xe3\x15\x90\x09\x74\x8a\x90\x3a\x09\xe7\xf1\x5c\x5d\xf4\x93\xbd\xee\x33\x04\x8b\xbb\xaf\x89\xb5\x25\xe5\x2b\x42\x65\x8d\x30\x69\x9c\x53\x57\xcf\xdc\x8f\xd1\x6c\xec\x4d\x9e\xa3\xad\xd8\x14\x2f\xaf\x5d\x92\xcd\x5b\x41\x31\x3a\xae\xe7\xf8\x5a\x77\x19\x24\x25\x96\x59\x1e\xf1\x3d\x13\xf8\x84\xa4\x3a\x4d\xc7\x92\xa2\xbf\xcd\xae\x04\x89\x51\x97\xa2\x6d\xcf\xfd\x47\xaa\xb5\xff\xd4\x92\x89\x08\x2b\xce\x10\xfc\x67\x25\x63\xaa\x97\xf5\xab\xa8\x2a\x28\xbf\xe2\xca\x04\xc9\x64\x2c\xdc\x82\xd9\x83\x38\xda\xd8\xe4\xf4\x83\x4a\xa6\x24\x26\x8e\xec\x1c\xfb\xf7\x59\xa0\x40\xfc\x4f\x68\xaf\x3e\xc6\xa1\xe6\xe5\x23\x52\x46\x1c\x70\x5d\xac\x4a\xc4\x62\x55\x9d\x50\xdd\x43\xbf\x15\x7f\xa5\x18\x0e\x32\x12\x02\x1f\xec\xd0\xef\xf0\x16\xd1\xfb\x28\xcb\xe2\x65\x64\x9c\x86\xbe\xfd\x96\xc5\x07\xa9\xd2\x7e\x77\x02\x71\x1c\xcc\xb0\xe5\x43\x46\xc6\xdc\x61\x85\x20\xa0\x66\x64\x9c\x66\x08\x11\x5e\x5d\xff\xd8\xee\x90\x73\x61\xf5\xfb\x86\x85\x56\x25\x94\xf0\xec\x6b\x68\x8e\xa2\x29\x7f\x69\x53\xca\x84\x5a\x82\xfb\x43\x63\x03\x96\x21\x16\xe1\xaa\x71\x16\xf3\xff\x32\x4d\x64\x6e\x29\xd9\xda\xee\x72\x2a\xca\x34\xe3\xcc\xaa\xa3\x16\xd5\xc2\xfc\x49\xb5\x44\xaa\xd7\x9b\xfa\xd7\xbe\x11\xfd\xc9\x30\xde\x84\x64\x9e\x08\xd0\xa8\xcd\x73\xae\x7e\x8e\x36\x11\x29\x98\xad\xf2\x5e\xd7\xa7\x8f\x09\x04\x5b\x8a\x1c\x34\x5b\x20\x0b\xbf\xdc\x92\xa5\x24\x1c\x21\xb2\x21\xdf\x19\x78\xb8\x7c\x07\x26\x90\x6c\xc3\x2a\xdb\x38\x5a\xd6\x7b\x0c\xb0\x7c\xf2\x7d\x24\xd3\xb8\xb9\x15\x55\xdb\x35\x67\xd5\x59\xa5\x9f\x7d\x7d\x1d\x2c\x9f\xd9\xf8\x48\x13\xa1\x8a\xc7\x15\x34\x2f\xe3\x17\x54\xcc\xae\xb9\xa2\xed\x77\x1a\x1b\xc7\x9f\x05\x1f\xa4\xe2\xb1\xc5\xe7\xf4\x3e\xac\x33\x29\x6e\x60\xc2\xa5\x0d\x52\x27\xc4\xe6\x40\x5f\x41\xfd\x74\xd8\x57\x1f\x4e\x99\x65\xb4\xa5\x56\x69\xec\xe5\xd1\x8a\x56\x15\xa7\xd2\xc2\xb3\x96\x57\x89\x51\x39\x62\x4f\xba\xaf\x28\x5c\x27\x33\xcc\x68\x81\x55\x89\xfd\x4e\xfa\x5b\xf8\x1b\x10\xe7\x66\x28\x00\x6d\x2b\xa7\xf7\x43\x40\xfb\x8b\xa4\x83\x22\x3c\x46\x0a\x39\x71\xd6\x45\xa0\x42\x04\x45\x13\x8a\x63\x1a\xa2\x81\x2e\xee\x36\x79\x7c\x45\x75\x82\x3e\xd2\x0f\xa8\x74\xed\xa8\xd7\xa6\x6f\xa8\x58\x1a\x71\x1a\x24\x1f\x4c\xf1\x32\x0d\x38\x28\x96\x2a\xee\xd6\x56\xef\x8a\x3f\xf7\xbb\xd6\x2d\x54\x64\xf6\x4b\x51\x22\x73\x47\xd1\x7c\x2c\x70\x91\x8c\x7d\x9e\x0b\x2c\xcc\xc2\x8b\x46\x02\xf0\x30\x75\xc5\x17\xc8\x8a\xf0\xe5\x16\xa6\x38\xe5\x78\x1a\x81\x2e\xba\x7b\xe8\xc4\x62\x18\xa0\x3f\x6e\x51\xbf\xf1\x58\x87\x40\xa1\x8a\xb9\x4d\x4e\xf6\x46\xc1\x9d\xcd\x77\xe3\xd3\xd2\x4f\x22\x3a\xee\xb2\x44\x70\xc5\x2f\xe4\x31\xda\x05\xc7\x4b\x25\x5a\x28\x97\x4d\xdc\x15\xff\x81\xe9\xce\xa8\xb2\x84\x89\xcc\x03\x6a\x37\x2f\x33\xd5\x4c\x50\x99\x93\xad\xdf\x37\x75\xb5\xe8\x0f\xf9\x7e\xa0\x62\xe1\x33\x9b\x55\x11\x52\x33\x4a\xb0\xc4\xd3\x4c\xfe\x31\x93\x4e\xf0\x3d\x38\x77\x01\x39\x24\x98\xf2\xec\x90\x23\xa8\xa2\x12\x3c\x43\x8b\x01\x33\x35\xd0\xae\xca\xf2\x1e\xa5\x2d\xe6\x77\x82\x38\xb1\x53\xb1\xda\xc1\x02\x73\xdd\x22\x31\x8e\xbf\xd6\x80\xb1\xbe\xe4\x54\xdf\x07\x94\xcc\x33\x44\x1a\x1a\xe4\xa7\x6b\x2d\xa2\x60\xf6\xcb\xb8\xb3\x20\x5d\x63\x7b\x91\x14\xf3\x5d\x4c\x8a\x85\x4d\x07\x53\xcc\x03\x9b\x4a\x29\x41\x61\xca\x73\xb3\x6c\x2b\xf8\xfe\x9a\xc7\xc9\x60\x4a\x16\xff\xb1\x3b\x87\x5f\xbb\xf1\x30\xa7\x93\x7f\x7d\x0d\xc9\x9d\x4d\x51\xc8\x55\x42\x1d\xd3\xdb\xb7\xba\xd4\x93\xd0\xa9\x32\x79\x82\x1c\xba\x58\x9b\xb6\xff\x76\xb8\x5a\x5f\xfb\xba\x55\x4d\x28\x58\x1b\x40\xfc\x84\xe6\xba\x68\x4f\xa3\xdd\x77\xf9\xc7\x34\x89\xd2\x3c\xf3\xa2\x1d\xbb\x4e\x2c\x53\xd2\x82\x26\x89\x03\x29\x74\xc2\x9a\xc6\x98\x52\x42\x11\xa0\xf0\xeb\x99\xd5\xff\x90\x9e\x3d\x64\xd3\xbd\xde\x00\x84\x66\x11\x79\x01\x25\x47\x6f\xb5\x08\x8f\xd1\xc4\xc4\x4c\x79\x6a\x95\xb6\xab\x8f\x16\x84\x3f\x41\x9d\x5c\x42\x4f\x34\x25\x12\x77\xfd\x70\xb4\xf9\x3d\x4b\xb3\xc8\xa0\xe9\x88\x21\xd2\x27\xf1\xe1\xab\x28\x67\x31\xa7\xf1\xbe\xad\x59\x66\xe7\x12\x12\xa6\x16\xc8\xce\x37\x80\xe7\x35\xd3\x39\x71\xae\x80\xab\xbd\x40\x5b\xc9\xb5\x46\x71\x86\x62\x12\x36\xe3\x8f\x3f\x38\x9d\x6a\x3a\xca\x68\x46\x3d\x9a\x13\xeb\x98\xc2\xb5\xda\xaa\x9a\xbf\x40\x87\x2a\x0c\x73\x0c\x9e\xe6\x84\xe0\x71\x8b\x36\xfd\x5a\xb4\xaf\xf5\xd9\x4f\x0d\xcd\x95\xdd\x01\x4f\x88\x74\xd2\xba\x2b\x51\x92\x6b\x3a\xbc\x71\x66\xa5\x89\x1a\x8c\xbb\x1f\x5e\xcf\x47\x51\x61\x84\x41\xc8\x12\x0e\x48\x88\xfc\x3a\x64\x75\x75\xec\x66\xb9\x25\x2e\xb1\x12\xea\xd6\x5f\x98\xde\x36\x61\x36\x43\x67\x7d\x5e\x74\xf3\xbf\xd6\xe3\x03\x9d\x24\x3a\xd2\xce\x2a\x77\xc0\x7c\x7f\xda\x2c\x5f\x90\x92\x04\x3d\xb0\xdd\xfa\x69\xf7\xd7\x9f\x30\x65\x0a\x8f\xde\x42\xd5\x0b\xa1\x73\x9d\x46\x14\xb1\x7f\xbd\x43\xe1\x64\x3b\x0a\x59\xc2\xf7\x4a\xbc\x89\xc2\x85\x9e\xc6\x0b\xfa\xeb\x18\x93\x4e\x63\x97\x81\x74\x54\x4f\x4f\xd0\x4c\x78\x7a\x41\x67\xc6\x60\x58\x15\xdd\xbc\x1b\x80\xd6\xe5\x28\xc3\xb7\xcf\xa5\xca\xa6\x1b\xca\xd8\x32\xd4\x82\x90\x5c\x86\xfa\x2e\xcb\xf3\x33\x7d\x06\x41\x12\x5c\x39\xae\x46\x67\x8e\x30\xd6\x22\x95\x48\x8d\xaf\x02\x2d\xc1\x98\x8b\xfe\xb0\x53\xf5\xf9\x74\xc9\x7a\x39\x7b\x51\x21\x73\x44\x22\x3b\x24\xdd\x1a\x75\xfb\x86\x97\x10\x86\xd9\xe2\x99\xae\x3e\xd9\x40\xab\x6f\x91\x3a\x4d\x5c\xf6\x78\xfd\x2a\xca\x12\x7a\x0f\xd5\xa6\x7c\x67\xcf\xa9\x92\x58\x47\x61\x8a\x2e\x9f\x58\x5a\x25\x39\xa2\xa9\x8e\xe2\xd7\x4a\xb6\xbf\x17\x95\xae\x46\x5f\x57\xe9\x84\x5a\x17\xf2\x08\x6d\xe6\xff\xaa\xa9\x75\xe1\x9d\xfa\xcc\x17\xc0\x41\xad\x73\x82\xb9\x89\x50\xd3\x36\xfd\x75\xad\x15\x11\x5e\x11\xea\x08\x55\xf7\x47\x53\x84\x50\x81\x06\x43\x90\x8c\x12\x89\x83\x9d\x7d\x37\x36\xd9\xb5\xd1\x39\x9a\x9d\x13\xfc\xc6\x67\x4e\xf3\x64\x56\x1b\xb0\x71\x58\x70\x98\xd1\x6d\x35\x4e\xbc\x01\x49\x12\x0c\x78\xb5\xed\x29\x44\x2a\x7d\x93\x4a\x50\x31\xd0\x25\xf9\xaf\x84\x0e\x99\x78\x60\x5a\xa3\x54\xf1\xcd\xd9\x8a\x5a\xbb\x3f\x47\xb9\x05\x34\x62\x1d\xb0\xa8\xaa\xba\x5b\xb9\x80\xd4\x15\x98\xba\x01\x2b\x3a\xdc\xaf\xdb\xc0\x9d\x00\x91\xe1\x68\xfa\xf9\xf2\x4c\x14\xa9\x9b\xd8\x3b\x10\x47\x14\xc3\xd0\x3b\xe8\x76\x97\x18\x6a\x88\x33\x4d\x23\x0f\x85\x3e\x37\xd5\xed\xf9\x63\x75\x0e\x28\x04\x88\x0d\xc3\xd0\x27\xaa\x47\x8f\x57\x08\x24\x3a\xb7\xfa\x29\x95\xde\x56\x45\x77\x18\xfe\x0e\x68\xb6\xbf\xd7\xcd\xcf\x99\x60\x26\x40\x4a\x01\x93\x89\x0f\x75\xd3\xd5\x15\x66\x35\x37\xcf\x6b\x46\xbe\xda\x5b\x20\xcd\x32\x4c\xe2\xb9\x10\xdf\x5d\xfd\x06\x3b\xa4\x54\x9b\xa4\xd3\x17\x4e\xfa\xe9\x5d\x84\xc4\x9f\x16\xb6\x82\xe8\xfb\xe9\x42\xb7\xf0\xd2\x30\x86\x8c\x31\x2f\xe8\xbc\x2a\xcb\x3b\x07\xd4\xb8\x00\x6b\x43\x96\xf2\xd4\x06\x22\x1e\x9b\x17\x51\x15\x2d\xf6\xdb\xfc\x2a\xba\x99\x79\x09\x59\x2e\x12\x2f\x62\xa4\x3c\xc1\x17\x40\x4e\x04\x96\xd7\xdf\x3c\x7e\x7f\xb8\xf6\x4e\x76\x68\xd4\x09\x02\x3d\x4b\xd1\x76\xfd\x8c\xf1\x54\xbb\x00\x22\xa6\x08\x27\x3e\x16\xe5\xcf\x0b\x19\x30\x00\x61\x94\xcf\x74\xa3\xa1\xdc\x7c\xf4\x53\x60\xe6\xa9\x80\x8c\x58\x64\x53\x50\xbd\x2f\xd8\x6f\x75\x48\xec\xd8\x89\xe3\xa9\xbd\xa9\x1b\xc6\xef\xeb\xaa\x7b\xbd\xb8\x4a\xb9\x3a\xcd\xd6\x7a\xac\x53\x3c\x4f\x7f\xec\x62\xa0\x59\x16\x2f\x23\x2e\x4b\xe8\xcf\x38\xeb\xf3\x16\xa7\xd7\x51\x6f\x91\xe2\x26\xa4\xad\xce\xee\x27\x14\x50\x73\x41\xae\xfe\x3a\xa9\xbc\xa4\x1a\x94\x75\x65\x65\x90\x7d\xa3\x49\x75\x36\x09\x88\xbb\x6d\x74\x74\x60\x52\x96\x85\x8f\x08\x2e\xe1\x73\x40\x96\xb5\xaf\xcf\x53\x80\x2c\x32\x0e\x44\xbd\x42\xa4\x2c\x2c\x68\xe3\x03\x80\xa4\xa8\x93\x63\x44\xdb\x6d\x5a\x25\x42\x96\x13\x0c\xb0\xc8\x91\xb1\x74\x0e\x4b\xa1\x27\xfb\x16\x18\x30\x58\x97\xea\x05\x70\xc7\xe7\xc7\x0e\x4a\xf3\x50\x57\xae\x8c\xa2\xf9\x18\x19\x4c\x86\x24\x12\xad\x96\x53\x03\x6f\x45\x7d\x6e\x4f\xa3\xf1\x37\x24\xcd\xac\x9c\x1a\x3a\x9c\x8e\xc0\x1b\x99\x6e\x0b\x75\xa9\xba\xb0\xf8\xee\x86\x46\x11\x12\x97\x98\xf2\xec\xb8\xf8\x67\xb3\xdc\x44\xa9\xad\x8e\x70\xe8\xe9\xa7\xcd\xf3\x7a\x13\x76\x2d\x13\xe5\xb1\x4b\x81\x3d\xc3\xbf\xcf\x45\x03\xa3\x68\xbc\xe1\x49\x8e\x87\xc9\xfd\xc7\x4d\x03\x48\x2e\xf3\xd7\xf9\x4a\xc3\x15\xc5\x57\xf6\x79\x94\x1f\x4f\x6b\xf2\x6b\xf1\xc9\xb8\xe1\x18\xaf\x7a\xaf\x9b\x72\x76\xa4\x9b\x58\x00\xe4\x8e\xc6\xa5\xa9\x4f\x75\x33\x02\x23\x98\x58\x47\x3e\x51\x7b\x25\x5a\xb0\x51\x9f\xd9\xf5\xc0\xb1\xa6\xb7\x3d\x4b\x1b\x28\x5e\x1e\xbe\xd8\x44\x18\x19\x38\x89\x8f\xc0\x9a\x38\xed\x91\xaa\x24\x73\x38\x81\xcd\xaf\x53\xd1\xbf\xe8\xf7\xde\x5d\x1e\x6a\x0c\x4c\xc6\x2d\x96\x66\xcc\x37\x50\x57\xe3\xe1\xf2\x1d\x53\x4e\xb9\x47\x7f\xbc\x15\x6d\x6f\x46\xa0\x8b\x33\xa6\x06\x04\x93\x41\x86\xc2\xef\x95\x43\x73\xdb\xc1\x5b\x92\x39\xec\xfb\x2a\x64\xc7\xe9\x0f\xa9\x73\xa5\xe0\x60\x2f\xfa\x1a\xdb\x38\xc7\x66\x98\x9c\xd9\xbd\x6b\xbb\x7e\x9c\x3d\xb2\x88\xa8\x24\x83\x6d\xb6\x08\xf5\x35\x22\xd3\x31\x22\x42\x01\x5a\x5f\xce\x64\x84\x64\x98\x65\xf4\x66\x68\x8b\x54\x1d\x7e\xbb\x34\x32\x8e\x52\xaf\x00\xe1\xf6\x52\xcb\x78\x34\xdb\xdc\x8c\x4c\x13\x34\x30\x2b\xf8\xd5\xdd\x21\x54\xc0\x35\x28\xa1\x31\x03\xbf\xb9\x7f\x7a\x0e\x7f\xd3\x0c\xc6\xa5\x3e\x4f\x0d\x6a\x59\xfd\xcd\xda\xd9\x6c\xec\x94\x1b\x4d\xad\x34\xf9\x2c\x3f\x37\x8b\x86\x18\x88\x39\x72\x49\x38\x2e\xde\x3f\xa0\xf0\x2c\xb1\xfe\xa1\x20\xe1\x7c\x90\x35\x16\x45\x35\x8b\x7d\x1a\x10\x56\x9e\x4d\x9e\x2f\x55\xcd\x97\x8d\xa2\xa5\xc3\xd9\x18\x0a\x58\xb3\x7c\xfd\x8f\xab\xd1\xed\x0d\x21\x0e\xbb\x73\xbf\xfd\x8a\x49\xcc\x10\x12\xe9\x38\x1f\x11\x3a\xe3\x80\xf5\x3b\xdc\x6d\x23\xaa\xce\x51\x9b\x8c\xbf\xbc\x21\xc4\xc4\x88\x77\xfa\xb6\x7a\x9c\xfc\x24\xd5\x0a\x8d\xa1\xcd\xfe\xdb\xcd\xf6\x61\xf3\xe7\xe1\x66\xb3\x09\x6d\x90\x20\x4f\x3c\x42\xa2\x27\x12\xcf\x93\xc5\x69\x08\xa3\x99\x95\x20\x41\x4e\xb6\xde\x2b\x1c\x25\x6c\xfa\x66\xc0\x88\x56\xdd\x08\x85\x5e\xc3\xe1\x45\xb4\xe5\xc0\xbe\x6b\x08\x03\x6e\x26\x39\xa6\xde\x34\xdb\xff\xf4\xcd\x91\x2b\x55\x56\xf5\xf1\x78\xae\x0a\x04\x1a\x36\x07\xdf\xca\x63\x48\x2c\xf5\xd3\xaa\x69\xc4\xb8\x36\x78\x3a\x04\x3c\xb5\xa5\x9b\x6d\xed\xbe\x6a\x50\x0d\xf3\x1d\xa4\x45\x8a\xb4\x58\x9b\x34\x22\xbb\x5a\x74\x34\x0c\x89\x89\xab\x84\x39\x4b\x5d\xf7\xd3\x65\x08\x46\x19\x12\x27\x96\x82\x76\xd7\x35\x75\xf5\xf2\xad\x2e\xf5\x7e\xb3\xdb\xfb\xd6\x04\x68\x3a\xa4\x72\xaf\xeb\xa9\x0c\xb7\xeb\x94\x46\x24\xf2\x35\x47\x0d\xe8\x50\x9c\x6e\x48\x9a\xd0\x6c\x90\xc1\xbf\x6e\xc4\x4b\xfd\x29\x03\xd8\xf2\xbf\xae\x4a\xc0\x90\x2c\xb3\xa8\x23\x2b\x7f\xbb\x6d\xff\x18\xc9\x57\x4e\x1f\x27\xcb\x35\xee\xf4\x76\x07\x30\xa8\xd4\xfd\xdb\x74\x44\x72\x29\x30\xf1\xb0\x3f\x9f\x4a\xb8\x86\x63\xed\x1f\x58\x90\xd4\x2a\xe5\xfc\x9a\x26\xfe\x42\x7b\x6e\x0b\xe9\x1b\x7b\xb6\x69\x0f\x16\x33\x45\x73\x14\xa3\x84\xb9\x21\x42\x2b\xf0\x25\x14\x47\x51\x96\x16\xdd\xb2\xb4\xdd\x19\x22\x93\x14\xfb\x1e\x84\xd6\x13\xc2\xff\xd9\xcc\x90\x29\xb1\xe1\xd5\xce\x4e\x8c\x90\x73\xb8\x70\xbb\x0c\x51\x20\xd0\x35\xf0\x67\xc8\xe5\x5e\x6f\x88\x32\x14\x21\xde\xf7\xb5\xfa\xb9\x14\xac\x5f\xcc\x2a\x1a\xa2\x73\x81\x0a\x6d\xde\xfb\x75\x98\x8f\x30\xd1\x41\xa5\x58\xa8\xe1\xc0\xeb\x56\xaf\xe7\x63\xf6\xdb\xa0\x89\x36\x01\x6c\x66\x07\x79\x81\xd8\xce\x10\x93\x32\x34\x90\x77\x27\x31\x24\x39\x0c\x25\x39\x23\xae\x48\x69\xc4\x89\x5f\x75\xd0\x18\x31\xab\x3e\x33\x94\x68\xc0\x60\x90\x12\xd5\xf7\x4f\x80\x54\x86\x12\x43\xb0\xf0\xa2\x3f\x17\xec\x89\xbb\xdf\xdf\xe3\x38\x6f\x3d\xd3\x8d\xa1\x34\xb5\x9e\x46\x1b\xf0\x98\x9f\xe8\x3e\xf9\xfe\xb9\x2d\x71\x95\xe7\xa6\x98\xcf\x54\x4a\x81\x47\xf6\x24\x7a\xc7\xc4\xb0\x86\xb2\x13\xb3\x3e\x8c\x1b\xac\x55\xc3\x6c\xe4\x7d\x31\xfc\x9e\x9f\x69\x34\xd2\x91\x8f\xb0\xed\x7f\x55\x0f\xe7\x65\x90\x89\xa1\x3c\xa5\x78\xee\xf5\xeb\x62\x83\x8b\xe2\xef\xa0\x5b\x32\x7f\x35\x30\x3d\xb6\x49\x4c\x00\x8e\x18\x1a\x33\x6d\x65\x2e\x46\x92\x8a\xbe\x89\xc7\xa9\x25\xea\x0f\xcf\x9b\x72\x62\xe3\xda\x41\xbb\x65\xa8\xe9\x34\x34\xa3\x60\xd8\x68\x8b\xfd\x5e\x15\xff\x3e\xc3\x7a\x28\xbf\x35\x34\xe3\x04\xd1\xf3\xf5\x7b\x79\xc4\x2a\xa0\x67\xf8\x77\x68\xcb\x52\xbf\xf8\x65\x09\x4d\x7b\xf8\x5e\x75\x45\x79\xf0\x74\x41\xbe\x97\x50\xb8\x51\xaf\x45\xf3\x5c\x9f\xa7\xea\xf8\x86\xe6\xd2\x48\x33\xa2\x6b\xba\x9b\x1a\xef\x86\xe6\x9a\xf0\x68\x96\xaf\x18\xa7\x9b\x5c\x37\x41\x2d\xca\xe0\xdc\x82\xd5\x69\x46\x04\xd0\x57\xae\x87\xa1\x22\xd2\x96\x44\xa8\xa9\x4f\x1b\x2c\xd1\x0d\xa3\x2c\xc0\x6a\x6f\xa3\x4e\x72\xeb\x2b\xf0\x47\xe9\xae\xe9\x26\x47\x25\x65\x56\xc9\x5f\xd5\xbb\x22\x80\x0d\x0c\x95\x46\x87\x58\x44\xef\x7a\xd8\x0c\xe5\xee\xb5\x6e\xba\xad\x5e\x95\x0d\x08\xfd\xb1\xf9\x55\xb4\xc3\x0c\xd3\xc2\x12\x34\x0f\x95\xe0\x6f\x94\x5e\x56\x82\x1b\x0a\x89\x15\xbc\xb3\xb8\x97\x49\x49\x8e\xa1\x26\xce\x31\xb0\xb9\x5d\x3f\x1e\x90\xe4\x81\x85\x96\xcc\x24\x16\x13\xfe\x06\x55\xf7\x7a\x18\xca\x09\xa7\xaf\xc4\x08\xcb\xd1\x2e\xdc\x89\xe3\xa9\x1c\x8a\x92\xff\xd2\xc6\x99\x7c\x17\x46\x8c\xd5\x4a\x70\xb9\x6a\x1f\xde\xf7\x11\x87\xbf\x58\x15\xee\x26\x2c\x49\x30\x11\x85\xca\xe9\xab\xea\x05\xca\x75\x00\x82\x2e\x2f\x40\xc6\x24\xc1\xa2\xa1\x7e\x18\x63\x72\xea\x1d\x2c\xa1\x7e\x7a\x47\xd9\xb0\x28\x26\x16\x86\x5f\x54\x57\x9d\xb2\x4e\x88\x6f\x12\x31\xe2\xfd\x8f\x36\xba\xbb\xf6\x39\x50\xc3\x38\xcb\x11\xb4\x8b\xf1\x96\x6f\xa2\xd1\x6a\xd4\xd6\x7b\x1b\x76\xb3\xba\x2d\xf4\xbd\xf8\x35\x2a\x05\x31\x2c\x26\x1c\xa5\x7c\xc2\x30\xfa\x99\xc6\xe2\x34\x4d\x5d\xec\xfc\x81\x39\x82\x4c\x64\x9e\x69\x27\xf1\x27\xc3\x92\x58\x63\xf1\xeb\x4d\x73\x56\xdd\x84\x29\xd6\xb0\x24\x61\x5e\xbd\x67\x77\x96\xff\x0b\xca\x86\x29\x96\xc9\x59\x0d\x4b\x54\x6c\x8b\xdd\xb5\xbe\x2f\x4a\x68\xbb\xba\xfa\xeb\xef\xba\x60\x74\xb2\xc4\x08\x84\xd5\x0f\x9c\x06\x58\x6e\xf4\xe1\x81\x21\x43\xda\x63\x9c\xfb\x98\x4d\x91\x14\x72\x87\x2d\x57\xf5\x5b\x20\x43\x47\x06\x25\x7b\xd8\xa1\x70\xa4\x8d\x33\x79\xb8\xd5\x67\x91\xaa\xc9\xdf\x47\x0e\x81\x61\xa9\xa1\x24\x10\x97\xfa\xc3\x7c\xd7\xfb\x05\x17\x51\x2b\x77\x45\x96\xc5\xe8\x19\x3a\x3e\xc8\x65\x46\xd8\xff\x9a\x7e\xa4\x2c\x33\xc4\x41\xf7\x9e\xce\xf2\x77\xf8\x18\x02\x89\x8c\x8c\xdd\x94\xc9\xb3\x65\x92\xe1\x26\x7b\x35\x58\x47\x2c\x83\x1c\x27\xb0\x13\xae\xb7\x41\xe9\xd9\x03\x1a\xc6\x95\xc7\x57\x1f\x1a\x68\x51\xef\xc3\x6a\x64\xa3\x70\x42\x0b\xa5\xd1\x60\x11\x0e\xfe\xbe\x79\x12\xa3\x59\xed\x8b\x9d\x77\x30\xe6\x63\xf5\x9d\x94\x66\x0e\x2e\xe4\x96\xea\x74\xa8\xbd\xa5\xc8\x24\x25\xa8\x05\x02\x55\x80\xbd\xfe\x11\x36\x14\xbf\xa7\x31\x45\x20\xf2\xd8\x6c\xe7\x16\x4f\x54\xf8\x0d\x53\x32\xb6\x7e\x58\x7d\xda\xe8\xf3\x98\x9c\xa3\x6f\x13\x48\x2d\xef\x02\x8e\xf7\x3f\x9e\x3e\xfd\x64\x4a\x4b\x6b\xce\x23\x5c\x1e\xc3\x53\x77\xf5\x3b\x34\x57\x17\x79\x07\xc3\x80\xc4\x9e\x30\x6b\xab\xea\x05\x40\xb4\x61\x90\x13\x5c\xd3\x0d\xb4\xe7\x63\x40\x9d\x4c\x56\x1e\xe4\x63\xa3\xdd\x2d\xdc\xd9\x0f\x81\x8e\xc2\x3c\x52\x1e\x6c\xe6\x1a\x0d\x8d\x73\x87\x4e\x3c\x9f\xf6\x0d\x88\xf6\xfc\x09\x5d\x98\x61\x86\x27\x8e\x9d\xe9\x0d\x44\xf9\x5c\xab\x9f\x93\xb3\x34\xa2\xcc\xd6\xce\xd9\x67\xf9\xde\x4e\xc8\x39\x7d\x9f\x34\x42\x37\xf3\xde\xc2\x71\x3e\x5c\x88\xd3\x44\x54\x46\xc2\x42\x17\x5c\x02\x73\x54\x3a\xb8\x54\xfe\x63\x22\xc6\x13\x31\x62\x39\xb5\xe5\x67\xbe\x4d\x58\xd5\x44\xeb\x8d\xa2\xc2\x8b\x2f\xe6\x5d\xc4\x27\xf5\x57\x58\x6b\x3f\x80\x41\x6e\x44\x03\x0b\x60\x6b\x13\x45\xcc\xea\x88\x3a\x3f\xa9\x68\xeb\xf7\xd9\x71\x1c\x45\xcc\x8a\xdb\xbc\xf4\x9b\xb1\xe9\x2c\xba\x61\x78\x3a\xae\x75\xec\xf6\xea\x1f\x58\x2d\xf3\x82\xd9\x6a\xbd\xaa\xb4\xe7\xc0\xfe\x2b\xdd\x54\x77\xa7\x58\x13\x0c\xde\x0f\xe5\x4d\xc1\xc0\xbe\x48\xd3\x0c\x0b\x3e\x4a\x74\x14\x39\x12\x91\x53\xdd\x8d\xc9\xec\x4d\x94\xaa\x5c\xdb\x79\x89\x75\xeb\xf3\x02\x44\x13\x65\x9c\xb0\x24\x60\xf9\xba\x73\x7b\x75\xfe\x08\xfa\x1b\x23\xb7\x24\xca\x99\xc4\x53\xa1\x1b\x73\x80\x8e\x53\xfc\x94\x0e\x30\xe0\x80\x6f\x49\xfe\xe5\x2f\x8f\x62\x0c\x6c\x28\x6b\xfc\x38\x53\x68\x3a\xe5\xf2\x38\xc5\x9c\xf0\x5a\x9c\xda\x73\xb9\x8c\x81\x36\x91\xa0\x16\xeb\x25\xca\xba\x73\x14\x93\x17\xea\xdc\xd3\x0f\x28\x58\x9a\x7b\x96\x15\xe8\x1c\x9b\xb6\x6f\xe3\x79\xe2\x4e\x4c\xab\x24\xf1\xd4\x2f\xf1\xcf\xfc\x29\x7f\x51\x9a\xa1\x1f\xd5\x88\x0e\xd0\x82\x08\x95\xfc\x26\x92\x5a\x25\x6a\xd0\x40\x58\xcd\x69\x35\x66\xb7\x52\x8c\xe2\xfc\xfb\x59\x74\x1d\x54\x7b\x51\xfa\x98\x44\xa4\x62\x1b\xa4\xde\x41\x77\xfc\x10\x0b\x27\x6f\xa4\xe2\x1c\xb7\xec\xbd\x9d\x76\xe3\xad\x24\x52\xda\xd2\x76\x04\xae\xbd\x9b\xa2\xec\xa0\x1f\xec\xdd\x7b\xd1\xa9\x57\xdf\x4f\x67\x11\xfe\xca\xc9\x32\xeb\x21\xb5\x8c\x6b\x02\x6e\xb5\xaf\xac\x62\xe4\x38\x91\x31\x1d\x5e\xd0\x06\xcd\xc3\xe7\x7a\x8c\xf9\x35\x91\xe1\x91\xc8\x3c\x08\x11\xae\x6f\xff\xd9\xd5\xd7\x2f\xff\x79\x9e\x67\xbb\x0c\x27\x4c\x23\xec\x7c\x1d\xc2\x6b\x9f\xe9\x68\x18\x4e\x84\x15\x35\xb5\x27\xd9\x13\x74\xc5\x98\xb2\x6e\xc6\x4d\x32\xa7\xb6\x36\x9c\xc6\x69\xca\x06\x04\xa6\xb3\x96\x27\xc7\x2e\xa7\xb9\xe2\xc4\xa7\x2f\xd0\x42\xb8\x17\xbf\xd6\xaf\xa2\x5f\x88\x81\xb0\xc5\x70\x16\x09\x64\x82\xb9\xde\xfe\xd8\xee\x1e\x27\xc9\x21\xc3\x59\x12\x41\x6f\xf2\xff\x9a\xbd\x6a\x44\x12\xea\xb9\x62\x5f\x0b\x97\xc3\x76\x59\x72\x2c\xec\xf2\xfd\x54\x8a\x29\x94\xfa\x34\x4a\xf1\x7f\x91\x15\x35\x9c\x73\x2d\x6d\x90\xaa\x83\xa6\x12\xe5\x75\xfd\x5c\xf7\xcb\xf8\x6b\xbc\xcd\x6c\x74\xb9\xce\x10\x76\xfc\x50\xbc\x40\x53\x88\xea\x41\x14\x8d\x18\xcf\x2b\x1e\x93\x1c\xe9\x03\x0e\x47\xd1\x41\x7f\x3a\x2f\x3e\x9d\xb3\x54\x79\xc2\x32\x2c\xe4\xd0\xd6\x52\xc7\x13\x0d\xb4\xd5\xc9\x1e\x0d\x65\x22\x18\xf4\x67\xcd\xf5\x59\xdd\xd5\xd3\x89\xcc\xd3\x2c\xb2\x21\x70\x78\x77\x98\x99\xd9\x90\xa6\x79\x8c\x0a\x3b\x3f\x8b\xea\xe5\xb6\x14\xba\x10\x5d\xdd\x60\x64\x21\xec\xd1\x3c\x85\x04\xfb\xe8\x99\x60\xb9\x6b\xce\x52\x4b\xc5\xd8\x3a\xb1\x93\xdb\xb3\x68\x74\x7f\x0c\xad\x5f\x41\xfd\x0c\x33\x9a\x67\xc2\x92\x25\x17\x55\xd1\x6d\x2b\xec\x3d\x0b\x58\xf0\x3c\x12\xe8\xf5\x3f\x95\xe2\xc3\xd4\x8d\x69\x00\xba\xf1\xeb\xe4\xa9\xb6\x24\x7d\x48\x79\x6f\x89\x9d\x3f\x3b\x16\xe6\x16\x09\x17\x09\xcf\x78\x38\x08\xd7\xe2\x34\xe7\x84\x36\x5c\x28\x89\x32\x63\x87\x0e\xc4\x71\x2f\x7e\x2d\x44\x98\xb8\xd0\xb6\x6a\xf8\xee\x71\xbf\xf9\x2a\x0c\xcc\x25\xe5\x84\x0e\xab\xc5\x86\x01\x27\x1e\x35\x97\xc2\x12\xd3\x9c\xab\xd3\x28\x18\xc0\x25\x64\x98\x87\x54\xa2\x2c\x17\xcb\x9b\x0d\x57\x24\xc5\xd3\x6e\x62\x43\x63\x34\x05\x05\x1e\xc4\xd1\x4b\xfc\x7f\x36\x1a\x2a\xb3\xa2\xa5\xed\x6b\xfd\x7e\x38\x5a\x8e\x89\x83\x18\x21\xc5\x0c\xd7\xcc\xa0\xaf\x67\x39\x51\x2b\x50\xdd\x0c\x64\x3d\xc6\x06\x1b\xae\xf3\x14\xcd\xd9\xfd\xe3\x7e\x75\x77\xd8\x6f\x56\xf7\x87\xfd\xe3\xef\x9b\x87\x5d\xb8\x9f\x66\x49\x36\x0c\xc8\x42\x6d\xc9\xf0\x78\x10\x5b\x62\xa5\xfe\xd4\xa1\xfe\x06\x90\x68\x3c\x6e\x1c\x77\x66\xff\xb4\xb3\x5d\x9d\x43\x1e\xeb\x74\xc2\x30\x67\xd1\xd3\x17\xfd\x64\x8a\x1f\xc7\xe6\xdf\xbf\xf7\xd3\xbd\xfc\x18\xb1\xca\x4f\x9f\xc6\x10\x1b\xce\x51\xa2\xd2\x08\x4a\xc0\x70\x80\x35\xa0\xbf\x05\xb0\x53\xdf\x2f\x45\xca\xed\x0a\xde\x51\x01\xa1\x7d\x2d\x4e\xdf\xed\x51\xe6\x8c\xf7\x51\xf6\x68\x74\xfb\x88\xa4\xb1\x2f\x4d\xac\xe0\x1d\xcf\x91\x85\xa9\x67\x62\x82\xf8\xac\xcd\x5b\xf7\xbd\x2a\xc7\xc4\x7c\x93\xfb\xc5\x24\x8a\x70\x19\x4d\x26\xc7\x93\x28\x66\x92\xdd\x17\xe0\x00\x13\xd3\x84\x50\x77\xea\x78\x68\xcd\x64\xdc\x62\x9a\x72\x8c\x5f\xfa\x9c\x1a\xb2\xdb\xcf\x54\x88\x4d\xcc\x58\x86\x52\x7a\xa6\x30\x45\xfb\x1a\x14\x8f\x4d\xcc\x54\x82\x34\x2e\x56\xf2\x09\x9a\xa0\x82\x68\x62\x06\xb1\xaf\x7e\x47\xe4\xe6\x52\xb1\xae\x89\x39\xd5\x0e\x39\xd7\x54\x5f\xa0\x2b\xfb\x8e\xc6\xa8\x51\x48\xdb\x57\x34\x7d\x13\x6f\x6f\xc3\x0a\x8c\x79\xae\xb3\x89\xaa\x3e\x5c\x7d\x58\x04\xfa\x27\x63\x1b\xcb\x0c\xcb\x15\x3d\x89\xef\x34\x97\x35\xf5\x41\xe3\x94\x59\x8a\xc0\xe2\x42\x63\xe2\xab\xaa\x24\x13\xa7\x31\x51\xb3\xea\x3f\x54\x24\xf1\xcd\x89\xc0\x95\x76\x5b\xd7\xfa\x5a\x4c\xd0\xfc\x26\x4e\x73\x83\xa6\xe6\xc0\x3a\x1f\x02\x65\x5f\xd8\xc1\x71\x96\xa6\x08\x39\x02\x35\xca\x9e\xf9\x36\x61\x03\x7f\x0a\x6a\x1c\xc6\x89\x32\xae\x89\x33\x93\x61\x45\xc2\x5b\xdd\xc1\xf3\xb9\x1c\xd1\x77\xce\x0f\xca\x30\xcf\x72\x42\x12\x36\x22\x41\xb7\xd5\x2c\x75\x85\x5f\x7c\xbc\x8b\xc6\xb9\xa4\x42\xfa\x19\xb3\x3d\x9e\xca\x65\x6b\xc5\xf7\x06\x6e\x29\x1b\x8a\xaa\x37\xd5\x8b\x37\xb8\xab\x5f\x02\x84\xc3\xc4\x82\x48\xed\x20\x83\xe6\xda\xbb\xe3\xd3\x89\x23\x72\x60\xee\xd1\x56\x0e\x8b\xb7\x2f\xba\xae\x18\x66\xb7\x90\xcc\xd8\x4a\x62\xd0\x07\xf0\xc0\x22\x13\xf7\xc6\x55\xff\xf7\xbb\xed\xf3\xea\x4f\xff\x47\x99\x5a\x16\xc2\x13\x96\x18\xec\xdf\xeb\xd0\xe0\x2a\xa2\x8f\xe2\x27\xac\xd6\xe2\x12\x9e\xee\xfa\xa9\x44\x60\x4e\xd9\xf1\x00\x85\x64\x94\x6f\x96\x5a\x0e\x42\xd7\x7f\x40\x11\x1a\x34\x89\x6d\xfc\xc3\x16\x29\x3b\xf7\xca\x37\x6b\xc2\x88\x0f\xe6\xba\xc1\xff\x03\x8a\x75\x1d\x02\x01\xb1\x66\x12\xe9\x77\x83\x03\x66\x31\xe1\x9f\x14\x19\x99\x58\x67\x04\x91\x9e\xea\xdc\x34\x23\x15\x41\x13\x03\x4b\x32\x5f\x19\x5f\xa8\x6e\x6b\x53\xe0\x9f\xdc\x05\x22\x40\xa3\xc7\x71\x9d\x0e\xb3\x77\xa6\x6e\xed\xbb\x0b\xe2\xcb\xb6\xef\x6a\xd4\x8d\x18\x9f\x7a\xb3\x7b\x9b\x98\xd1\xd4\x01\x46\x57\x83\xf1\x65\x5b\x13\x42\x73\xb4\x95\xf6\x41\x6c\xf6\x37\xdf\x92\x28\xbb\x97\x60\x68\x65\x75\xee\x6a\x17\xaa\xf1\xed\x60\xb0\x54\xfe\xdb\xea\xe1\xfa\xce\x5b\xb1\x09\x8d\x59\xca\x1c\x65\x62\xbf\x05\x7e\x52\xbb\xe6\x7b\x6b\xab\x25\xe0\xc2\x37\x6e\xd3\x1e\x3e\x58\xc2\x14\xc9\x46\x85\xf7\x9f\x55\x3b\x4e\xdf\x29\x8a\x2d\x68\x05\xba\xd7\x8b\xac\xd9\xf2\x15\x5c\xa4\xc2\xd6\xe4\xbe\xd9\xc2\x18\x15\x8a\xe4\x4d\xc2\x65\x44\x3d\x31\xfd\xee\x0b\x97\x7c\xf6\x6e\x31\x95\x76\x0d\x3f\x7e\x7f\x7e\x58\x61\x99\xe8\x26\x94\x85\x9a\x24\xee\x2d\x87\x60\x98\x6d\x2a\x5d\x37\x2d\x62\x22\xe7\xf6\xb7\xeb\x9f\x46\x09\xd6\x90\x3c\x89\x8f\x1f\xa2\x6c\xf7\xf5\xdd\x08\xb0\x7f\x79\xa8\x25\xa9\xc8\x7d\xf5\xc2\xa3\x31\x58\x67\xe8\xac\xa9\xb0\xa6\x93\x2c\x92\x89\x45\xbb\xed\xba\xfa\x74\x0a\x41\xe1\x24\xe3\x39\x48\x57\x14\x00\xfa\xbe\xae\x6e\xea\xe6\xde\x25\x1d\x12\xee\x3b\x25\x14\x63\x2c\x06\xd5\x0d\x56\x63\x01\x4e\x93\xe4\x24\xb2\x65\xc7\xf8\x65\x9d\x02\xf7\xb0\x82\x93\x3c\x75\x29\xd3\xfe\xd4\xbb\x2a\xe7\xa5\xf3\x26\xc9\xa5\x40\x9e\x53\x85\x50\xd9\xcd\xdb\x5c\xaa\xc8\x24\x82\x29\xcc\xdf\x0e\x64\x3e\x75\x11\x40\x9d\x26\x11\x89\x13\x18\x6e\x0a\xf9\xd9\xf2\x4d\x64\x14\x61\x35\xca\x69\x41\x59\x72\xde\x35\x36\x1a\x46\xc5\x1e\xbf\x2d\x94\x2e\x99\x44\x26\x06\x71\x05\x9e\xdf\xdc\xfd\x59\x11\xcb\xd2\xdf\x9e\x4f\xd0\xdc\x7f\x81\x5f\x0d\xfd\x15\x9a\x0c\x45\xeb\x67\xf0\x43\x6d\x21\x44\x9f\xbe\x8a\x8a\x62\x4c\x01\xf5\xdf\x0c\xe5\x6d\x67\xc3\xa5\xb8\xf0\x85\xfb\x58\x42\x78\xd1\xac\x90\x88\xd0\xe7\x63\xe6\x7c\x0f\x1f\xe1\x55\x52\x8a\x55\xd6\xa0\x5f\xe0\xa9\x78\xe9\xa7\xec\x73\x68\xcb\x63\x3c\x24\x0a\x27\xd2\xe0\xea\x82\xfc\xd1\x39\xfd\x45\x9d\x31\xdc\x3a\x1d\xe6\xb5\x6e\x42\xd9\x83\x49\xb4\xce\xad\x88\xf6\xb9\xec\x8a\xb6\x78\x39\xd4\x83\x44\x46\xdf\x2a\xf1\x78\x71\x94\x5b\x0b\x00\x9d\xd1\x4c\x04\x61\xeb\x84\xee\xb7\x0f\x87\xbb\xcd\xea\x7a\xf3\x7c\xb8\x79\x5e\xad\x0f\xfb\xc7\x27\x7f\x3f\x50\x29\x7a\x24\x45\x07\xc7\x1f\x75\x07\xdf\x4f\xcb\x7b\x69\x62\x52\xd0\x83\xa2\xd3\xa6\x7b\xbd\x0c\x4d\x24\x46\x24\xae\x90\xa1\xad\xcb\xb7\x61\x4d\x19\x63\x2c\x60\x0f\xab\xf0\x3e\xd4\x0c\x2c\x66\x52\xa2\x98\x74\x00\x2f\x57\x81\x79\xf5\xb1\x9d\x45\x8d\x53\x46\x72\xc6\x26\xbc\x2d\x7f\x0b\x5a\x31\x5c\x1f\xa9\xc4\xb9\x37\x96\x43\xe8\x73\x7e\x51\x93\x46\x91\xad\x9a\xe9\xf7\x90\x0a\x6e\x9a\x59\x49\x86\x49\x31\x16\x88\xc2\x5d\xa2\xdc\x7a\x50\xb7\x7b\xe1\x94\x8b\x48\x5a\xe4\xd0\x03\xaa\x54\xff\xd8\xec\x90\xeb\xfd\x69\xf3\xbc\x7d\xbc\x1e\x7a\x65\x28\x4c\x83\x39\xef\x4d\xf7\xea\xb2\xb7\x2e\xc1\x16\x86\x2f\xe5\x06\x30\x1b\x72\xbd\xdb\x37\x67\xb8\x71\xbc\x10\xfb\x21\x86\x9f\xc6\x54\x20\xc6\x5e\x68\xbd\xff\xb5\xaf\x7d\x14\x39\x20\xba\xbf\x5c\x71\x69\xcc\xac\xca\xfc\x40\xdf\x05\xed\x0e\xc2\xcd\x13\x23\x2d\xb0\xf5\xb5\x3e\x89\x9f\x03\x73\x97\x49\x53\x19\xe3\x52\xad\xe0\xfd\xba\x56\xe7\x61\x0b\xf7\xed\x40\x71\xa7\xc3\x14\x6c\x98\xe1\x69\x2e\x88\x70\x2a\x0a\xb7\xe3\x92\xe1\xcf\xfe\x5d\x9c\x90\xa9\x20\x2c\x75\x34\x3e\x0f\xb3\x99\x22\x40\x78\xa8\xc0\x7a\xb3\xe7\x61\x2e\xf9\x13\x25\x95\x0c\x84\x7f\xb0\x7e\x4b\x9a\x14\xd5\x98\x54\xc6\x1c\x29\x3c\xae\xe1\xcd\xa6\xd3\xee\x11\x7b\xe6\x82\xc5\xd3\xdf\x92\x89\x0d\x21\xb8\x10\x5b\xa0\xb3\xf9\x5e\x15\x5e\x75\xcb\xa4\x8a\x33\xe1\x92\x3a\xff\x5d\xcb\xcf\x2c\x83\xff\x5a\xb4\x74\x2f\x19\xc0\x5d\xe0\x38\x14\x89\x8d\xf2\x7b\xfe\x0c\x4c\x95\x48\x90\x8e\xf4\xe6\xfe\x8f\x3b\xff\x14\x3a\x8e\x92\xc1\xd4\xda\x09\x03\xdd\x87\x55\x5d\x9f\xbe\x92\x4e\xad\xe8\x79\xb3\x83\x6e\x33\x9b\xf6\x5a\x58\xc2\x99\x10\x29\x9d\x49\x28\x9b\x14\x18\xc5\x72\x66\x64\x0f\xbc\x2d\x4c\x98\x47\x20\x2c\xdd\x56\xef\xf5\xd6\xb2\x9e\xd9\xe1\x29\x48\x82\x1b\xa8\x39\x57\xea\xe0\x43\x00\xa9\x61\x80\x1c\x15\xc8\x06\xff\xe9\xc0\xfd\xad\x84\x78\x6a\xb8\xa1\x0e\x92\xfa\xbd\x05\xcf\x1b\xe8\x77\xe8\x59\xdf\x44\x23\x3f\x80\xd3\x96\x99\x96\x94\xfd\x9d\x0a\x1f\x93\x9a\x4c\x32\xb7\xa9\x0d\x04\x89\x41\xd7\x73\xd6\x37\x37\x58\x7b\x24\xba\x4e\xa8\x57\x64\xfc\x9f\x79\xe2\x19\xa1\x11\xee\x48\xfd\x9c\x3d\x74\xaf\x0d\x80\x9b\xb5\x9b\x7f\x4f\xbf\x40\x46\xa8\xad\x5f\x3b\x35\xf5\xaf\x8f\x15\x02\xc9\x26\x23\x37\x86\x6b\x9a\x8c\x30\xc6\x9c\xb6\x06\x3e\x99\x65\x0d\x9c\x3c\x5e\x46\x98\xc2\x7c\x53\x8b\xf8\x0e\xcb\x5c\x3c\x8e\x35\x7c\x16\x75\xca\x48\x92\x22\xf4\xea\x54\x63\x1d\xeb\x12\x61\xb9\xc9\x48\x4a\x6d\xf1\x2f\xb6\x2e\x69\x56\xf8\x69\x9d\x11\x91\x31\x77\x92\xcb\xf3\xc7\x08\x95\x6f\x32\xa2\x65\x92\x07\xd2\x0c\xcb\x93\x1d\xf4\xed\x4d\x46\xa9\x44\x70\x87\x5d\xa7\x21\x55\x34\xb1\x34\x33\xca\x12\x4c\x55\xdc\xfa\xfc\xce\xec\x49\x69\xca\x51\xd4\x08\x83\x94\xbb\xa3\x68\x3a\x35\x45\xce\x65\x14\xb8\x9c\xaa\x09\x88\x7c\x01\x42\x92\x31\x92\xc4\x72\x5a\x47\xfe\x03\xaa\x4f\x0c\x9c\x8c\x01\xc3\xf8\xc0\xd3\xf7\xab\xbb\xed\xfa\xf0\xbc\xd9\x3d\xde\xfd\xd8\x3c\x1f\x1e\x1e\xaf\xbd\xfb\x91\x45\x89\x56\x4e\x0e\x62\xd5\xfa\x19\xb1\x98\xf0\xcb\x22\xa1\x8c\xdb\xf0\x0f\x6a\x79\x24\x38\x4d\x30\x07\xae\x6b\x1f\xcf\x9a\xde\x22\x96\xe0\x38\x0d\x4a\x65\xbf\xea\xd7\xd5\x7b\x26\x8b\x4d\x8e\xc1\x7c\x63\x83\xcd\x33\xc8\x61\x96\x30\x2b\xec\xda\x20\xd2\xb7\x5f\x9f\x96\x20\x6d\x69\x75\x66\xa9\xb1\xca\x04\x58\xb1\xef\xf3\xd9\x9f\x9f\xe6\x59\x16\x69\x7c\x1b\x9f\x2b\xdc\xfc\xb2\x61\xff\x09\xef\x41\x98\x64\x59\x6a\x90\xa4\x42\x9e\x3f\xa6\x65\xf1\xd3\x60\xde\xec\xfd\x72\x49\xf2\xa1\x98\xee\x60\x60\x99\x14\xc0\x64\x82\x70\xcf\x75\xe8\x6a\x3a\xfa\xb7\x7d\x6a\xea\x63\x3d\x92\x8f\x32\x99\xe0\x0a\xcb\x9a\x7c\x0d\xc4\xae\x12\x45\xf9\x14\xd0\x5d\x99\xc8\x99\x74\x19\xf7\x63\xff\x01\x9a\xf3\x98\xb6\x63\x30\x03\x33\x01\x96\xe6\xfa\xd6\xee\x7b\xd6\x96\x9e\x8d\xa8\x30\x1c\x23\x99\xe2\x08\x95\x06\x3d\x0b\xf3\x4d\x5f\x40\x12\x1b\xb5\x7f\x81\xce\x62\xd3\xaf\xbc\x85\x9c\x29\x16\x23\x21\x33\x74\xaf\x63\x7f\xd1\xb7\xa6\x96\x8c\xe0\x60\x17\xe1\x5d\xa1\xa0\x6a\x3f\x87\x63\x2e\xee\xe2\x99\x32\x12\x6f\x52\x16\x06\x5c\x8c\x63\x67\x69\x89\x5d\x07\x9d\xc7\x89\x2b\xb6\x2d\xe6\x60\xb5\xbe\x11\x7d\xab\x83\x46\xa9\x9b\x79\xab\xc9\x2d\x90\xd7\xfb\x55\xf7\x1f\x4b\x87\x7e\x06\x84\xe5\xb6\xfc\xa1\x69\x9d\x3e\xcb\xac\x87\x21\x29\x96\x2c\xec\x8a\xe3\xa9\x84\xbb\xc2\xf8\x7d\x2a\x27\x24\x47\x33\xf4\x28\xaa\xb3\x28\x9f\x85\x31\x21\x89\x98\x53\x2e\xc0\xa1\x45\x03\xf0\x77\x4e\xda\x39\x7c\xd8\x9c\x45\x06\x53\xb5\x0f\xdb\x7f\x6e\x6f\xbd\xde\x96\xc9\x99\x53\xb6\x7e\xc1\x54\xe4\x75\x53\x9f\xda\x27\x68\xf6\xbf\x7c\x7b\x14\x47\x18\xe8\x39\x14\xad\x05\xec\xdd\x94\x62\xaa\xc0\x63\x72\x9e\x13\xf4\xb9\xa5\xa8\x7e\xfe\x10\xe5\x84\x29\xd5\xe4\xb1\x22\x98\x29\xe8\x8a\x23\x48\xac\xb6\x82\xcf\xf5\xc9\xdc\x35\x09\xcb\xc0\x45\x6e\x1e\x4b\x3d\x86\xaa\x7c\xea\xc9\xe7\x49\x42\xec\x74\x72\x41\xdd\x76\x24\x17\x68\xf2\xc4\x44\x48\x20\xdd\xd5\xdb\x60\x7a\xe7\xa9\xa4\xa8\xa0\xd4\x6f\xe1\xe7\xf6\x14\xca\x09\x4c\x9e\xea\x1c\x23\xb9\x3f\x56\x77\xdb\xeb\x20\x8e\x69\xf2\x8c\xc9\x94\x87\x93\xc1\x45\xab\xfa\x13\xdb\x06\x70\x97\xe2\x8e\x79\xce\x99\x31\xc1\x45\x0f\xa6\x7a\x9e\x73\xab\x95\x74\xf5\xb1\x7f\x05\x47\x55\x38\x99\x62\x79\x2e\x28\x9e\x60\xad\x28\x61\x53\xe9\x91\x1a\xb8\xc9\x73\x23\xb0\xca\x13\xf1\xd1\xf8\x18\x53\xe6\x9e\xd9\x43\x88\x28\xc3\xfa\xdf\xc7\x3f\x1e\x36\xcf\xbb\xc3\xea\xee\xee\x71\xbd\xda\x6f\xae\xa7\x69\x98\x5c\x18\x8e\x68\x9b\xd5\xef\x7c\x1c\xe5\xca\x25\x8b\x89\xdb\x87\x82\xf5\x3e\xfd\x01\x99\x19\x3d\x6c\x69\x8e\x12\x79\xd0\xe2\x98\x9b\x43\xa3\x99\xa9\x52\x5b\x3a\x77\x6a\x7a\x87\x7f\x71\x3e\x28\xa9\x11\x75\xe2\x91\xfa\x16\xc1\x34\x62\x69\x36\xb9\x82\xd8\x1b\x6c\xcf\x60\xa6\x56\x4e\xae\x89\x2d\x89\xbd\x11\x0d\x86\x78\x26\xef\xa6\xf3\x18\xf4\x17\xa5\x6d\x9f\xcc\x51\x20\x80\x7e\xdb\xe1\xc5\xeb\xb8\x60\xdd\xe0\xf2\x46\x9e\x03\x8b\xb0\x76\xf6\x58\xbc\xd8\x08\x4f\x08\x98\xfa\x0e\x11\xcf\xad\x0a\x1c\x26\xc0\x1c\x1e\xe0\x2f\x1e\x21\x26\x18\x8c\xb8\x2b\xba\xc9\x1b\x41\x2e\xbc\x0a\x81\x27\xd4\xb8\xe4\x14\xee\xbb\x69\xc3\x42\x6c\x6d\x5b\x0d\xd8\x9f\xe9\x34\x34\xb1\x4c\x06\xb8\x01\x9e\x2f\xdb\xeb\xf0\x9e\x93\x5b\x9a\x34\xc5\xed\xe2\xaa\xe8\xd6\x4d\xff\xd3\xde\x38\x17\x94\x00\xce\x20\x57\x98\x39\x45\x1f\x0b\xca\x23\xac\xdf\x1e\x29\x40\xf6\xdf\xd9\x56\xf0\xfa\x3e\xb9\xad\x82\xef\x1d\x7f\xa4\xbb\x9c\x2b\x8f\xf4\x5d\x32\x32\x10\x05\xec\x6d\x20\x76\xb0\x62\xa9\x55\xd2\xfc\x2f\x4b\xbf\x32\x4c\x41\xc1\x68\x86\x1b\x41\x6f\x89\x8d\x72\x76\x82\x69\x5b\x09\xf2\xe2\xf8\xb8\xd8\x80\x32\x15\xcc\x40\xea\x49\x31\x51\x8e\xc6\x92\xc1\x0f\x39\x52\xc1\x89\xc9\xf9\x44\xb1\x75\x6e\xa3\x0a\x9e\x64\x58\xf3\x88\x8f\xe7\x49\x97\xc7\x7e\xb1\xe0\xa0\xc9\x10\x4b\x99\x92\x2f\x4d\x5f\x9e\x1b\x86\xe5\x78\x6f\x23\x94\xac\x88\x39\xe8\xcc\x73\xea\x94\xb0\xff\x38\xc1\xaa\x1b\x13\xd0\xd0\xb1\xa5\x42\xfd\xbd\xe2\x4c\xa2\xfb\x17\x4e\x96\x11\x7c\x45\x24\x84\x12\x77\xf2\xdc\xf6\x6b\xb0\xf9\xd8\x15\xbf\x2e\x35\x51\x8d\x48\x68\x2c\x6d\xb9\x6e\x35\x1a\xb8\x84\xdb\x90\x2e\xb2\x20\xae\xb4\xb6\x62\x09\xbe\x31\xcb\x1c\x83\x84\xe5\xb7\x08\xf6\xfd\x18\xa7\x2b\x92\xdc\x08\xaf\x21\x3d\x06\x01\x88\x2c\xe6\x18\xa2\xda\xde\x6f\xfe\xdc\x4f\x1a\x44\x2a\xe7\xf9\x65\xab\x4d\x38\xa2\xc1\x77\x7d\x73\x4a\x05\x04\xb9\x4d\xcf\xee\xee\x1b\x8d\x32\x23\x1f\x1e\x27\xa2\x6f\x13\x60\xa5\x65\xaf\xce\x4d\x75\xb3\x5b\x2d\xe8\x6b\x18\x21\x8c\x55\x61\x98\x70\x0a\x1a\x21\x33\x83\x43\xb5\x11\xdd\xf4\xef\x2e\x7f\xa6\xe1\x0d\xca\xfa\x84\x6c\xd7\x67\x5d\x74\x68\x02\x62\x56\x0c\x7f\x64\x1a\x8b\x17\x2a\xb1\x30\xaa\x93\xf8\x78\x34\x26\xfc\x55\xc7\x0e\x27\x69\x31\xa5\x57\x45\x59\x5e\x44\xfc\xff\x96\xbf\x2a\x94\x36\x56\x72\x45\x74\x03\x5d\xa6\x11\x9a\x66\x11\x9f\xc8\x34\x4c\x16\x84\xce\x05\x56\x0e\xfe\xdb\xeb\x61\xfa\xbf\x4b\x8d\x54\x9e\x47\xb7\x33\x4f\x15\x6b\x8d\xd0\x2a\xb2\xdc\x12\xd6\x04\x3e\x9c\xca\xba\x3b\x8c\xca\x7c\x8d\x00\x9a\xe3\xc8\xf7\x46\x46\x55\xbf\x87\x3f\x6b\x1e\x39\x0c\xde\x9f\xfb\x1f\x96\xa9\xc3\x46\x9c\x9d\xcb\x36\xda\x03\x4c\x4c\xb1\x10\xf7\xad\x3e\xab\x29\xa9\x80\x11\xc6\xe4\x76\x3c\xdd\x83\xcd\xe0\x09\x97\x87\x9a\x24\xd2\x52\xd1\x5a\x0a\x8b\x67\x07\x5b\x7c\xf6\x33\xca\x3d\xa0\xa4\x99\x40\x09\xa9\xde\xb3\x12\xbd\x05\xba\xe0\x91\x48\x2a\x24\x22\x5b\x0e\x2e\x18\xd1\x9f\x0d\x75\xd3\x39\x92\xbb\x6d\xb5\xaf\xcf\x4d\x25\x26\x19\xe4\xc9\xd7\x92\xd4\x80\xc5\x2a\xba\xdc\xb9\x47\xf5\x8d\x7d\x62\xc9\x22\x8a\x00\x8a\xfe\x9e\xd3\x7c\xa0\x64\x51\x86\xc7\xaf\xb1\x6c\xa3\x63\xc2\x74\x23\x59\x28\xff\x11\xe1\xb5\x22\x96\x58\xfe\xcf\xd5\x9f\x87\xcd\xfe\xdb\xe6\xf9\xb0\x7e\x7c\xd8\x3f\x87\xe6\xdc\xa2\x82\x2c\xdb\xc8\x5f\x09\xf0\x1a\x19\x49\x50\x6c\xc2\x05\x3b\x42\x74\xc9\x08\x94\x23\xde\xb0\x59\x77\xc7\x69\xd4\x5e\x7d\x78\x75\xb7\xe9\xfa\x96\x3c\x53\x88\xee\x5b\xad\x56\x23\x54\x9d\x8c\xa9\x40\x88\xbf\xa5\x81\xea\x8f\x74\xd3\x8f\x70\xdb\xcd\x8a\x0d\x65\x9c\x65\xd4\x85\x0c\xef\x8b\xea\x56\xb4\x93\x71\x8c\x15\x55\x72\x2c\x15\x35\xdd\x00\x64\xc2\x01\xa3\xf2\x2f\xe2\x08\xdb\xca\xab\x94\xfa\xab\x93\x38\x46\x3b\x75\xfd\x64\x75\x9c\x3c\x32\xcb\x35\x67\x32\xb1\x44\x44\xc6\x14\x65\xd1\x1b\x5a\x21\x59\x35\xfd\x95\x9c\x49\x4a\xdc\xaf\x3c\x48\xbf\x43\xc9\x3c\xcd\xe2\x34\x30\x24\x9c\xea\xea\xfe\x5c\xda\x62\x34\xdf\x43\xc6\x11\xfa\x09\xad\x7a\x05\x7d\x2e\x61\x92\x7d\x9e\xb0\xba\x8d\x23\x43\x52\x66\x06\xbd\x9c\xde\x4e\xdf\x43\xd3\xa1\x5c\xfe\x92\xf8\x93\x91\x8a\x59\x2e\xac\x93\xd5\x4c\xd8\xdf\xfd\xe3\x34\x06\x7b\x48\x95\x44\x3c\xf6\x59\xfd\x43\xa8\xe6\xf5\xcd\x9a\x5b\xa3\xc7\x09\x90\x5d\x37\xe2\x3d\x34\x09\x86\x05\x7e\xeb\x57\xd1\x14\xdd\xc7\x78\x23\x95\x46\x83\x63\xe0\x05\xf5\xf3\xfe\x63\xf5\x32\x4a\x65\xf9\x2e\x46\x79\x7e\xa4\x7e\x11\x5c\xcd\x9e\xdb\x18\x85\x0e\x97\x2c\x74\x3b\xde\xd6\x14\x61\x11\x8a\xb3\x74\x8d\x28\x2a\xba\xbc\x06\x15\x8d\x0d\xf5\x26\xec\xf8\xc1\x14\x63\x2a\x76\x85\xc9\x4e\x45\x62\xa1\x90\xdf\xa8\x08\x62\x7c\x37\xc7\xf8\xeb\xaf\xe6\x5c\x78\xc7\xde\x46\xf2\x27\x29\xc0\x25\xbc\xe6\xec\xb9\x78\x9e\x4b\x84\xa1\xbc\xd6\x47\xf8\x09\x1f\xe1\xc6\x4a\xa0\x58\x03\x32\xc7\xef\x5f\x1b\x00\x1b\x70\x98\x5d\x0d\x19\x6e\x1a\xcf\x67\x5d\x88\xca\x49\xce\xf9\x5b\xc4\x9e\x35\xeb\xc5\xe3\x75\x7c\x03\x8b\x10\x02\x84\xe1\x49\x53\x9f\x9b\x10\x9d\xfc\x5e\x0c\xc3\x1a\xcb\xc4\x4b\x97\x1d\x7a\x0f\xe8\x20\x1a\x59\x74\xed\xe1\x04\xcd\x01\x50\xa2\x72\xfa\x2c\x31\x58\xad\xc1\x43\x7d\x82\x6a\xa8\x75\x9f\xe1\xf0\x5c\xe7\x44\xe4\xa9\x70\xe9\xfe\x87\x70\x60\xa8\x44\x2a\x34\xd9\x4e\xe2\xe3\x7a\xf5\x18\xfe\xaa\xd3\x58\x8c\xcb\xf3\xf6\x41\x9f\xc2\x77\x49\x21\xc2\x13\xe2\xad\x2e\xcf\x47\x34\xb3\x7c\x7d\xa4\xca\x18\x05\x08\x46\xa4\xfa\xf9\x5a\x97\x36\xa6\x15\x2a\x64\xd7\x97\xc6\xb9\xca\x12\x1d\x39\x74\x66\x10\x98\x74\xf6\xda\x97\x4e\x81\xca\x24\x61\x3e\x5f\xd1\xcf\xa6\x6f\xc2\xf1\xc4\x07\x20\x4d\x78\x30\x25\x50\x03\xfa\xbf\x61\x26\xf3\xde\x37\xd9\x32\xf7\xf7\x01\xc2\xa2\x72\x62\x4b\xa7\x84\xdf\x72\xe8\xec\x91\xf3\x4c\x5a\xf0\x76\x2d\xeb\xee\x82\x1d\xcc\x28\xc9\x28\x26\x87\x40\xd5\x6e\x16\x8f\xe9\x5b\x8c\x52\x90\x78\xc4\xfc\x35\x9c\x1a\x98\xe6\x2c\x17\x4e\x46\xa5\x49\x62\x44\x58\xd4\x45\x55\x1c\x45\x39\x70\x61\x1b\xa5\x35\xd3\x63\xdc\x7f\x37\x21\xf6\x9a\x2e\x30\xa0\x32\x73\x29\xbf\x15\xde\x68\x6c\x71\x2a\x10\x1a\xc7\x6a\xff\xfb\xf3\xd3\x78\xa4\x34\xa1\x02\x29\x7b\x8b\xf6\xe0\xad\x83\x83\x98\x98\x8c\x9a\x98\x94\xa5\x9e\x79\x70\xdf\x04\xe3\x5c\x53\xc3\xf0\x1b\xdf\xd5\xf5\xcf\x55\xb7\x2a\xcb\xfd\x2b\xb4\xb0\x17\x6d\xf7\x71\x03\x21\x48\xa5\x59\x44\xac\x2e\xc0\xb9\xe9\xdd\xb4\x0e\x5e\x9a\x79\x52\x40\xb3\x34\xcf\x5d\xdd\x2c\x96\x2d\x3e\xf5\xa7\xc6\x08\xd7\xf5\x3f\xe9\x10\x31\xe1\xff\x72\x08\x4d\x4f\x2b\x6e\x34\xcb\x23\x0c\x88\xd7\xc6\x40\xb3\x18\x1d\x9d\xce\x32\x1d\x45\x29\xba\x73\x37\x75\x3d\x5a\xd9\x3a\x12\x11\x52\x9d\xb4\xbd\xb7\x84\xbb\xc6\x26\x58\x87\x3a\x52\x39\x22\x11\x44\x6b\xd9\x73\x7f\x85\xa2\x15\x87\x95\xd0\x49\x66\xc5\x81\x4a\x8f\x10\xf6\xae\xb8\x6f\x97\x14\x8d\xe7\x6d\x55\x2f\x31\xa5\x8c\xe7\x86\x4e\x13\x81\x27\xd2\xfd\xea\x61\x75\xbb\x41\x60\xc9\xdd\xe3\xfa\xf7\xcd\xb5\x0d\x7e\xf8\x5b\xf6\xcb\xc5\x2b\xc1\x8c\xa9\x5e\x8d\xce\x94\xc2\x4c\x34\x2a\x17\x1c\x8b\xee\xa2\xac\x5e\x67\x4a\xe3\x0e\xb5\xd9\x7f\x7b\x46\x88\xd5\xb2\xfd\xa2\x73\x9e\x60\xf0\xc5\xa1\x0d\x91\x02\xbc\x84\xeb\xba\xfa\x09\x1f\xb3\x1d\x55\xe7\x69\xc2\xa8\x5b\xbe\x3e\x7c\xf2\x0d\xe5\x2f\xda\x7d\x5d\xdf\x89\xe6\x05\xa6\x45\x59\x3a\x57\x71\xa2\xfd\x22\xb8\xae\xcf\xb2\x04\xfd\xd4\xd4\xe6\x92\xd3\xc7\x5d\x20\x28\xcb\x1c\x57\xc6\x01\x9f\xc0\xff\x9d\x53\xdc\x13\xef\x56\xd7\x7f\x39\xba\x22\x8e\x10\x91\x69\x46\x3e\x84\x6f\xca\x59\xe2\xca\x16\x6f\x47\x85\x7b\xd3\xeb\x65\x64\xe9\xf6\xc4\xcb\x4b\x83\x36\xda\xfa\xfa\x09\x9d\xdb\x59\xcd\x80\x96\x91\x65\xd5\x94\xe7\xa2\xd4\x7f\x14\x15\x04\x88\x85\x96\x71\x4a\x2d\x36\xe8\xb6\xb9\xac\x1c\xd3\x32\x25\x98\x36\x39\x95\xa2\x33\x75\x73\xb4\x51\x85\xf1\x8e\xa3\x65\xa6\x30\xc2\xab\xc3\x60\x4a\x99\xe0\xd1\xf4\xbc\xda\x6f\x0e\xfb\x6f\xcf\x9b\xdd\xb7\xc7\xbb\xc0\xe8\xb3\xba\xf5\x29\x14\xad\x94\xce\xb4\xdb\xac\xd6\x0f\x37\x75\x73\x2b\xe6\x9f\x52\x81\xc1\x75\x8b\x25\xbf\x87\xab\xcd\xcd\xe3\xf3\xe6\xb0\x7b\xbc\xd9\xaf\x57\x4f\xbf\x0d\x7d\xd0\x25\xd2\xf5\xee\xb2\x0a\x50\x6b\x9d\x23\xab\xf7\x9f\x7f\xf9\x3d\xb4\x36\x88\x59\xde\xdc\xde\xee\x0e\xfb\xc7\xc3\xb7\xd5\x7e\xfd\xed\x40\x9f\x56\xeb\xed\xcd\x36\x90\x57\x68\x0d\x29\x0e\xfb\xfd\xfe\xa9\x7f\xa7\xde\x38\x3f\xec\x56\x01\x97\xa6\x35\x00\xc6\xff\x8a\x76\x85\xda\xc2\xb3\x09\x0f\x9a\xe7\xb6\x5e\xcc\x40\xd3\x88\xf2\xba\x68\x9d\x0c\x77\xa8\x7e\x9a\x5d\x00\x06\x2f\x30\x6d\x37\x4a\xb0\x01\x89\x99\xa7\xe1\xdc\x37\xe2\x0d\xca\x75\x3d\xcf\x32\x00\xe5\x40\x9c\x65\xb3\x42\x09\xf9\x09\xf6\x13\xa2\xc8\x52\x90\xe1\x66\x32\xc8\xe9\x18\x88\xb4\x41\x33\xbe\x04\x61\x0e\xa6\xa9\x8f\x07\x77\x5f\xac\xb5\xac\xce\x47\x57\x7a\xb9\xbc\x56\x21\x32\x1c\x37\x6b\x47\xe3\xf7\x35\xa3\xfb\xbc\xa0\xd5\xdd\x83\x47\x84\x59\xa7\xdd\xe2\x7b\x9e\xe1\xb4\xf2\xc4\x8f\x37\x75\xb3\xf9\xd5\x35\xe2\xaa\xae\xb4\xd5\x77\x9e\x4d\x1b\xe0\x8e\x4a\xcc\x61\x3b\x66\xad\x69\x2c\x71\xde\x7d\xaf\x0a\x4f\x7f\x68\x20\x4f\x01\xb3\x50\x25\x98\x8e\xe7\xb3\x2b\x72\x69\xb0\x6c\x75\x29\x9b\x39\x7b\xf9\xdc\x30\x2c\x38\x42\x23\x12\xb9\xff\x9e\x5c\xe5\xc0\x57\x1c\xf2\x78\x9d\x0c\xfc\xf0\x56\xa5\x65\xe9\x84\x07\x41\x95\x4f\xc9\x6e\xfb\x4d\x6d\x82\xb4\x00\xc1\x22\x4c\x62\x4d\xb3\xcb\x5f\x82\x18\x41\x48\x1b\xf6\xbd\x6e\x40\x1c\xff\x16\x7b\x96\x01\x49\x25\xc6\xc4\xbc\x55\x70\xc1\x43\x3f\xfd\x09\xc9\x4d\x66\xc5\x6a\xab\x9f\xe0\x8b\x76\xc6\xe3\xe0\xa1\x7e\x20\x63\xc3\xe4\xb8\xc0\x60\xf6\x25\xa4\x24\x98\x8a\x94\x42\xfd\x2c\xeb\x97\x31\xf7\xae\x01\x09\x19\xa2\x08\xd6\xa5\x38\xf5\xff\x37\x3e\xf8\x40\x91\x38\x71\x7c\x32\xaa\x9c\x07\xac\x40\xd1\x18\xe9\xc0\xba\xe2\x08\x77\xb5\xfa\xd9\x7b\x2f\x17\x5d\x84\x2f\x23\xd8\xaa\xda\xaf\xdb\xd9\xf3\x29\x2e\xd0\x31\x46\x0d\xf6\xff\x2d\xaa\x97\xff\xbc\x16\x8b\xe6\x33\xa8\x9c\x0a\xee\xe5\xb2\x97\x50\x0a\xa0\x34\x38\x59\x04\x0c\x3c\x0e\xe1\xc1\x6c\x39\x57\x07\x0a\xb4\x97\x81\xb5\x03\x33\xe0\x95\xfb\x6d\x87\x7a\x3c\xc3\xae\xab\x1b\x70\xa9\xde\x95\xe9\xfa\xa9\x09\xea\x67\x60\xaa\x35\xa0\x95\x42\xee\x9d\xee\x33\x50\xeb\x67\x8b\xf9\xa2\xe2\x1b\x80\x65\x58\xfa\x55\xd6\x2f\x9b\xee\x75\xff\x6b\x7a\x36\x81\x51\x2c\xd6\x83\xe2\xeb\xd5\x87\x27\x05\x9c\xbe\x99\xd1\x92\xd0\x91\xaa\xc3\x2d\x54\x41\x38\x3a\x5b\x24\x9b\x5a\xda\xe2\xc1\x98\x18\x5d\xfa\xf6\xb5\x7e\xbf\x17\x85\x63\x92\x0c\x8d\x69\xa2\x3d\xda\x40\x4c\xb2\x1f\x86\x10\x29\x46\x54\x90\x8e\x0e\xf7\xf3\x54\x9a\x21\x82\x62\xb2\x02\x6b\xbd\xc6\xf3\xd0\x10\x21\xc9\x20\x69\xf8\xbd\x85\xa0\xbf\x3d\x19\x19\x43\xa9\xb2\x11\x9e\xe2\xe5\xb5\xcb\xe2\xe9\xdc\x30\x54\xc4\x48\xa8\xb6\x6d\xf1\xdb\x3d\x00\xe8\xcf\xb6\x16\x43\xb5\x05\x88\x5b\xa8\xc6\x9f\xfe\x24\x33\x1e\x13\x8d\xb6\x99\xa8\x86\x3a\x12\x43\xc1\x9e\xfb\x6f\x05\xbc\x4f\xab\x11\x0c\x23\x2a\xf3\xea\x0d\x58\x54\x35\x32\xf1\x0d\x4b\x14\x7e\x26\x25\x3a\xf5\x0a\x33\xff\xdb\x44\x11\xc5\x30\x57\x05\xef\x6b\x71\x59\x8b\x6f\x38\xb3\xce\x6e\x10\x8c\x5c\x69\xed\x83\x2a\x86\xf7\x13\xd8\x9b\x68\x37\x45\x09\xb3\xe1\x8a\x79\x46\x07\x14\xef\x0e\xca\xd2\xe6\xfa\x96\x87\x24\xe6\xca\xf1\x09\xb6\xe7\xc5\x60\x81\x49\x92\x08\x2d\xbc\xd5\x7a\xed\x0d\x5d\x93\xe4\x14\x77\xd7\xe3\xc7\xa6\xea\x8a\xee\x63\x1c\xc2\x30\xa9\x61\x54\x59\x20\xe9\x24\x1c\x64\x32\x95\xfb\x34\xa3\xf5\x8a\xda\xc9\x98\x65\x5a\x58\xc2\x70\x50\xc5\xa9\x80\xaa\xf3\x5e\xaf\xc9\x33\x1e\xbb\x0d\xe7\x70\x1a\x85\xf1\xff\x66\x9c\xd9\x46\x2c\xc6\x3f\x95\x8b\x0c\x1d\xad\xa3\xf8\x09\x7f\x0e\xf9\x27\xd7\x2a\x58\xca\xc5\x68\xd1\xb7\x3e\x03\x59\xcf\x86\x46\x66\xc6\x32\xd5\x7a\xb0\xde\x58\x12\x67\x69\x63\x32\x52\x73\x07\x41\xb7\x61\xf3\xa5\x18\xad\x51\x2c\x43\x57\xee\x20\xcf\x1f\x5b\xd5\x2e\x33\x7a\xfa\xbe\x99\xa5\xa8\xed\xea\x75\x7d\x3c\x89\xe6\x13\xf0\x07\x3a\x75\xd9\xa4\xd2\x07\x41\xc6\x96\x27\xa1\xbb\x4c\x0e\x0e\xe1\x67\xa3\x85\xd4\x56\x1b\xb7\x38\x8c\x13\x24\x06\x62\x9b\xb5\x44\x32\x8a\x3f\xea\xe6\x62\x8e\xfd\x0f\xfb\xd7\xd4\x9a\x31\xfd\xb9\xa5\xbd\x04\x48\x75\x6e\xe7\xe2\xe2\x9c\x10\x42\x18\xe2\xc3\x8f\xb5\x2e\xcc\xc7\xe3\x09\xaa\x59\x7c\xbd\xef\x43\x13\xee\x36\xcb\x75\xff\xe3\xd7\xa2\x13\x6c\xfc\x15\xfb\x3e\x09\xa1\xc6\x45\x65\xac\xc0\xcc\x5f\xcd\x17\x7f\xa1\x00\x31\xe6\x24\x5c\x55\x7a\xa9\x6c\x66\xd8\xdc\xfb\x6b\x74\x8c\x05\xda\x57\xab\xf5\x1e\xda\x8e\x2e\xb2\x7e\xcf\xcd\x07\x4e\x08\x65\x09\xc6\x2f\x31\x16\x0d\xfb\xc2\xe5\x7f\xfa\x96\x58\xe7\x79\x80\x26\xa3\x62\xee\x3c\x0c\xd2\xf7\x52\x00\x2e\xcc\xf8\x04\xd0\x2c\x66\xa1\xfa\x6e\x10\xa1\x29\xbe\x83\x4a\x6f\xba\x57\x9f\xc7\xe1\x84\x30\x1d\xd9\xb4\x6f\xef\x0c\xde\x9c\x2b\x15\x82\x3a\x7d\x23\x68\x0c\x62\x56\xf0\xab\xc3\xb4\x83\x63\xcf\xed\x9b\x0c\xc1\x1c\x13\x6e\xba\xeb\xfa\xdc\x4c\x89\xd6\x39\x21\x51\x6c\x63\xd7\xa2\x37\xda\x6e\xea\x66\xed\x6b\x1a\x67\xc8\x86\xe5\xd3\x6a\x3e\x0f\x39\x21\x5c\x06\xd9\xb0\xd5\x51\x8a\xb6\x15\xba\x9e\x4f\x9e\x38\x33\x68\xdb\xec\xb7\x9b\x67\xe6\x9f\x35\x49\x6c\x0d\xeb\x44\xba\x6a\x14\x76\xed\xbb\xa4\x0a\x37\xd5\xbe\xc9\x13\xaa\xf9\x26\xa5\x2c\xf8\xde\x45\xee\x9f\x45\x57\xd4\xbe\x31\xa5\x19\xd6\x44\xc3\xaf\x53\xff\x14\x57\xe7\x8f\x87\xf3\x71\x07\xea\x62\x25\xcc\x0e\xc6\xfe\xd2\x5c\x7b\xb2\x43\x4f\x40\x39\x51\x19\xf8\xaf\xc9\x68\x66\x09\xc5\x98\x51\x40\x08\x85\xd4\x32\x36\x0a\x9c\xb1\xba\x68\x40\x75\xd7\x20\x8b\x45\x5d\x09\x4e\x88\xe0\x1c\x8d\xeb\xcd\x45\x49\xf1\xc2\xe4\x14\x5c\x83\x74\x85\x45\x8e\xc3\x64\x54\x02\xd8\x77\x10\x02\x37\x80\xf5\xde\xc5\x40\xf0\x6f\x80\x85\x93\x45\xbb\xad\x1c\xcc\x6c\x54\x8a\x32\x7b\x1a\x0d\x10\x0d\x89\xd4\xab\x8f\xf5\x67\x45\x55\x9c\x10\x19\x3b\xc6\x70\xe8\x9e\xe1\x65\xbe\xda\x65\x26\xcd\x28\x27\x7b\x3f\xa4\xc9\x7d\x07\x41\x92\x7c\x42\x36\x02\x8b\xdc\x15\x7d\x57\x19\xe1\x2b\x58\x0c\xd5\xfe\x76\xf3\x77\x39\x15\xc3\xf5\xd6\x27\x68\xc0\x29\x4c\xdc\xba\xea\xc3\x76\x8f\x05\x5d\xab\x4a\x5f\x9d\xc3\xfc\xd2\xd4\x60\x8a\x42\x77\xb7\xa8\x87\xb7\x80\x3c\xe4\x84\x40\x94\x23\x02\xb4\x3a\x1f\xbd\x91\x1c\x5e\xad\xf7\x2a\x62\xac\x53\x6a\x44\xf0\x5e\xfb\xbf\x83\x05\xc1\x5a\x58\x8e\x8f\x58\xd1\x7f\x1c\xb0\x72\xda\xf7\x32\xa9\x4d\xa1\x20\xb1\x6b\x61\x37\x99\xe5\xc9\xd3\x9f\x9b\xdc\x62\x93\x6f\xbd\x03\xce\x09\x25\xc2\xd6\xf2\x62\x3a\xd2\xbb\xa6\xd3\xc7\xa7\x94\x1a\x34\x29\x9f\x37\xbb\xcd\xf3\x8f\x00\x15\x3a\x5c\xad\xd6\x1b\x2c\xe1\xf6\x37\xa3\xa9\xc1\xc0\xfb\x5a\x54\xe3\xe2\xb8\xbe\x45\x0a\x04\xc7\xdf\xaf\x9e\x7f\xdf\xd8\xaa\x86\xc7\xc7\xbb\x31\xe6\x88\x13\xca\x28\xc7\xa0\x9f\x53\x77\x10\x8d\x38\x7e\x8a\x0f\x5d\xfe\x7a\x94\x65\x5a\x46\xa3\x23\x7a\xd5\x86\xd4\xdf\xe8\x2c\xeb\x3b\xe6\x02\x19\x28\x1c\x4a\xe9\x73\xe4\x6b\xdf\x17\x08\xd6\x28\xe1\xe8\xba\xbf\x45\x71\x62\x2c\xdb\x5a\xd9\x0d\x7f\xcb\xe9\x68\x45\x60\x1d\xea\xf4\xf1\xb8\xa2\x6a\x64\x73\x9c\x7b\x27\xa0\x62\x37\x42\xc1\x9c\x86\xc6\x5d\x10\x43\x16\xd9\x04\x69\xb5\x71\xbc\xce\x13\x0c\x2c\x27\x34\xa1\xd4\xa2\x96\x10\xb2\xf4\x17\x85\x71\x7d\xff\x38\xc2\x1c\x06\xc2\x10\xad\x75\x79\x11\x01\xe8\xbb\x41\x8e\x4b\x0e\x43\xd8\x03\x82\x8e\x13\x9a\x01\xb3\x3a\xdf\x18\xda\x7d\xaf\x3d\xa2\x83\x13\x9a\x47\x19\x4e\xda\x17\x1f\x7a\xc7\xbf\x69\x8f\xc7\x7a\xaa\xab\x97\x37\x51\xae\x6b\x14\xb5\x0f\x6f\x90\x73\xcb\xa9\xf4\x0c\xa2\x37\x77\xff\x1d\xfe\x6e\x94\xd5\x2f\x40\x22\xc3\x31\xb2\xf7\x1b\x66\x4e\x7c\x3f\x19\x5b\x3d\x42\x7f\xe6\xf7\x9e\xaf\x8f\x17\x4f\x5f\x4a\xea\x08\xcb\x05\x06\x43\x6a\xd3\xbd\x7e\xe6\xff\x70\x42\x55\x24\x31\xf7\x75\x57\xbf\xa0\xa9\x62\xd3\xf6\xcb\x7b\x1c\xd5\x29\x45\xcf\xfa\x80\x10\xe0\xe2\xb4\xbc\x41\x51\xad\x48\xee\x41\x33\x50\xc1\xee\xa3\xea\x5e\xa1\x2d\xda\x39\x64\x73\x7a\x15\x38\xea\xf1\x2f\x45\xc1\x16\x82\x50\xfd\xa5\x69\x8a\x85\x78\xb7\xe2\x68\xa5\x30\x40\x5f\x04\x3a\x2e\xcf\x6f\x3a\x0e\x69\x70\x42\x0d\x93\x56\x30\xdc\x06\xa3\x42\x36\x76\x00\xed\x70\xc2\x08\xb3\xd8\xd2\xbb\xfa\xe5\x8b\x92\x72\xd7\x99\xc6\x96\xfe\x4a\xd7\x65\x29\x9a\xc5\x9d\x93\xd1\x94\x23\xe2\xe1\xa9\xa9\xf5\xd5\x78\x47\x61\x34\x4d\x33\x97\x23\x7a\x46\x9a\x9a\xe6\xb1\xb2\xf5\xfb\xbf\xcd\x7e\x46\xe7\x28\x69\xb7\x2a\x0b\x29\xa4\x08\xa5\x48\x9c\x30\x46\x24\x19\x83\xa5\x7f\x40\xd3\x8e\x24\x05\xa7\xe3\xc8\x18\x93\x68\x87\x89\x50\x97\xd1\x5e\x28\x0b\xf5\xdd\x72\x40\x10\xef\xd5\x61\xed\x64\x0e\x38\x61\x91\x16\x11\x02\x82\x84\x2a\xaa\x79\x28\x65\xe1\xf8\x66\x3c\x02\xa5\xc3\x31\xe6\xe9\x54\xad\x8c\xe3\x27\xe3\xc9\xe3\x44\x11\x87\xbe\xa5\x3f\xc2\x02\x64\x5c\x44\x08\xaa\xc1\xf5\x8a\x86\xfb\x28\x4a\x3b\xbb\x85\xb6\xf5\x0e\xa5\x03\x59\x4f\x07\x80\x83\xc4\x08\xbc\xb0\x9c\x5b\xce\xb4\x7e\xf8\x0a\x9b\xc8\x09\x8b\x09\xc1\xfd\x06\x2b\x1f\xb6\x1a\xd0\xe7\xf4\xcf\x16\x4b\xc6\x9c\x2f\x30\x5e\x32\x43\x6b\x6e\x37\x54\x0d\x70\x5c\x95\xe5\xe3\xb9\x53\x18\x31\x59\x00\xbe\x61\xff\x18\x4b\x17\xb1\xf8\xd1\x12\x10\xae\xa7\x3c\xbc\xb3\x1f\x48\x52\x40\xfe\x39\x7b\x0a\x04\x8c\x1b\x96\xa9\xcc\xb6\x85\xcc\x5f\x22\x19\x1a\xa9\x4f\xa5\x18\x67\xb9\xfb\x16\x45\x31\x6c\xa0\x41\x74\xaf\xd6\x0e\x3d\x14\x45\x11\x9a\xc1\xc6\x05\xa0\xd2\x4d\x28\x7c\xe7\x84\xa5\x2e\x04\x7e\x2d\x2a\xe8\xea\x6a\x72\xcb\x34\x36\xa8\x66\x25\xb4\xbe\x17\xa7\xd3\x40\x3d\x32\xb4\x67\xb1\xf7\x20\x9a\xb6\xae\x44\xe9\x55\xaf\xa6\xbb\x89\xef\x9f\x26\x63\x5d\x76\xd0\x37\x00\xed\xb6\xda\xbf\x43\x78\xcc\x34\xa3\xcc\xd1\xec\xdd\x61\x35\xf3\x9c\x5f\xa3\xef\xa3\xb9\xc5\x12\x9e\xa0\xd2\xa8\xca\xf0\x2e\x4e\xf3\x6f\x32\xdd\xc0\x58\x16\xc5\x48\x1d\xf1\x54\x0a\x05\xab\xeb\x42\x81\x47\x6d\xfa\x91\xcd\x62\x4b\x9d\xdc\x42\x67\x60\x8a\x63\xe9\x5b\xb5\x25\x1a\x28\xda\x1b\x84\xe5\xcc\x8a\xf8\x5d\xaf\x9c\x5a\x6b\x0a\xbd\xda\x4b\x53\x86\xe5\x09\x43\x3d\x26\x0b\xe4\x0f\x98\x99\x40\x78\x57\x4e\x8a\xc4\xfd\x45\x22\x52\x0e\x95\xd6\xdd\x8b\xea\xe3\xf3\x03\x83\x09\x1a\xa3\xb7\xd2\x1f\xef\xa5\x8d\x5e\x4e\x71\x2b\x9c\x30\xc9\x24\x92\xea\x78\xf5\xb9\x6b\x0f\x6d\xed\xdb\x0c\xc1\x22\xf8\x83\x86\xd2\x1d\x72\xd3\x17\x50\x71\xc2\xfb\xcf\xf3\xe7\xc3\xe3\xc3\x6f\xc3\xdf\x6c\x11\x09\xd2\xbd\xe0\x0a\x77\xa6\x42\x3f\x0a\xa1\x97\x50\xb8\xa3\x3c\xaf\x1e\x6e\x37\xc8\x31\x7b\x48\x7c\x9b\xa6\x0a\xef\xb0\x7e\x7c\xb8\xd9\xde\x1e\x10\xad\xf5\xe7\xd3\xe3\xee\xfb\xf3\xe6\x70\xff\xfd\x2e\x74\x8b\x6d\xb1\xb6\xfd\xa1\x01\xfb\xb0\x1e\x50\x51\x7d\xaf\xcc\x1a\x01\x0d\x9c\x44\x58\xe8\xc0\x13\x99\x3b\x85\xaf\xae\x0e\x7f\x4d\x58\x34\xe6\x8c\xb7\xcc\xc4\xe1\x38\x81\x9c\x62\x4a\x16\xe3\x5b\x7a\x5b\xb5\xe7\x26\x04\xf1\xfa\x66\x99\xe4\x4e\xeb\xb5\x70\x7a\x71\x33\xf6\x3d\x4e\x22\x92\x2a\x47\xe6\xd1\xad\x1f\xef\xef\xbf\x3f\x6c\xf7\xff\xb0\xc6\xe7\xea\xfa\xfa\x79\x3a\xba\x11\x91\x8a\xe6\xce\x69\x7a\xde\x5f\x2d\x6f\xb4\x11\xd1\xda\x6e\xb4\xfd\x28\xfc\x18\x73\x2f\xf9\x1f\xa5\xc6\xca\x28\x6c\x1f\xee\xd7\x8f\x5b\xff\xa1\x22\x96\xd8\xf4\xef\xc9\x6e\xe7\xed\x9c\x2b\xc3\x77\x93\xa9\x25\xd0\xd4\xfa\x77\x80\xd3\x7c\x0e\x44\x11\xb3\x18\x69\x1b\x5d\xa8\xcd\xa3\xc1\x10\x89\x2b\x3a\x59\xb4\x1f\xa2\x48\x59\x5a\xa5\xa2\xbd\x39\x97\xa5\x05\x92\x4c\xd1\x5c\x71\xe8\xa9\x31\xbc\x16\x5c\x7f\x68\xba\xc2\x14\x8e\xe3\xf3\x6f\xfa\xfb\x11\xe7\x89\x9c\x60\xb4\xdb\x9b\x42\x8e\x7d\xba\x88\x0b\x43\xc8\xac\x6c\x65\xeb\x98\xd5\x2e\xea\x56\xfa\xfe\x32\x43\x3b\xb2\xac\x85\xf6\x07\xf5\xf4\x1d\xb9\x32\x68\x09\xf7\x36\x9a\xad\x09\xa0\xfe\xc7\xe2\x7e\x27\x0d\x44\x7b\x8e\x16\xa3\xdd\xd7\xa7\xdf\x42\xde\xa9\xef\xa5\x69\x22\xc6\x65\xb9\xc7\xda\x8b\x70\xff\xa5\xa1\x34\x7c\xbe\x24\xb2\x18\x51\x5c\xdc\x5f\x8a\xbb\xfd\x3f\x40\x6d\xfb\xfb\xc6\x59\x1c\xa4\x1c\x06\xdd\xca\xbe\x25\x4d\x33\x13\x88\x46\x7f\x5b\x34\x03\xa3\x44\xc8\xd4\xa9\x02\x05\xa5\xe2\xd1\xcd\x8d\x89\x48\xf0\x4c\xbe\xd5\xe7\x16\xd6\xe7\xee\x33\x43\x21\xca\x29\xc5\xe0\x52\x37\x02\xe8\x0f\xcf\x93\x73\x8d\xf2\x4b\x8e\xe9\xc2\x95\xcc\x7e\xe0\x49\xb2\xbc\xa4\xf2\x2c\x53\xc9\x08\xbd\xa6\x91\x19\xef\x78\xa1\xfc\xee\xba\x0b\x22\xf0\x5d\x4e\xfd\x61\x32\x42\xff\x7f\x1e\x44\x5e\xe6\xe8\xf3\xb7\x4b\x23\x8c\x19\xdf\xdf\xdf\xcb\xb9\x92\x4c\xdf\x9c\x99\x78\xec\x54\xde\xd4\x8d\xad\xc0\xf2\x41\xaa\x48\x48\xa9\x06\xcf\xf5\xa6\x68\x5a\x57\x0a\x60\x37\x34\xdf\x4d\x12\xcb\x19\x71\x57\xbf\x6c\x9a\x99\x9d\x1a\xc9\x28\xf5\x88\x4c\xc4\x3f\xec\xe7\xe6\x50\x24\x53\xed\x70\x70\xaa\xae\x2c\xaf\xe1\x76\xfd\xb8\x09\xa6\x44\x24\xa5\xe5\x30\x41\xb1\x2b\xb4\x85\xe1\x7c\x1c\xa9\xe2\x73\x12\xa9\x84\xa2\x12\xcc\xb7\x0f\xdd\xd4\x2f\xc1\xd2\x88\x54\x6e\x44\xe6\xbd\xb4\xf0\x21\x75\x26\x12\x31\x08\xd2\xdc\x8b\x06\xf5\xec\x8b\x63\xd8\xa3\x23\xad\x04\x86\xf7\x31\x2b\x63\x2b\xfb\xd0\xa5\x19\x03\x7a\xfa\x6e\x40\x49\x3a\x10\x4e\x5d\x83\x2a\xda\x19\x2d\x3b\x27\x11\xa4\x11\x46\xe4\x0e\xd7\x70\xdc\x15\xd5\xeb\x8f\x02\xaa\x6b\x11\x1e\xc7\x24\xb6\x04\xf5\x74\xee\xb6\x95\xc5\x94\x3e\xd5\xf5\xcc\xc9\x8e\x8c\x34\xe8\x36\xda\x87\x46\x17\xef\x7b\xab\x2d\x5f\x97\x35\x0a\xa7\xfb\x06\x27\xc4\x08\x5f\x25\x73\x6e\x2a\xd0\xdb\x0e\x8e\xe3\x08\x23\x67\x51\x6e\x46\xd4\x1b\x70\x07\x2f\xa2\x1c\x73\x59\x2c\x6c\x81\x9c\x25\x16\xc9\xdf\x76\xf5\x69\x6b\x85\xda\xa7\x4f\xca\x99\x4c\x50\x05\xff\x1d\x8a\xc9\x57\xe2\x9c\x64\x18\xd1\x44\x1e\x27\x38\xb4\xf5\x11\x1c\xed\x9e\xe5\x89\x16\x6f\x70\xf8\xa8\xcf\xcd\xa1\xed\x37\xfe\x83\x85\x4f\xcf\x2c\x26\xce\x29\x20\xa4\xdc\xc5\xb1\x58\xb8\x79\x2c\xb8\x63\x67\xdb\x17\x9e\x22\xb2\xff\x7b\x16\xe3\xc7\x3e\xa1\x94\x20\x4e\x9f\xa1\x0d\x32\x0b\x4f\xc7\xbc\x14\xd6\xd5\xff\x51\x74\xaf\x4f\x58\xf4\x70\x29\x4d\xc1\x09\x8f\x55\xc6\xdd\x8a\x5e\x29\x85\xd2\x27\x78\x82\xd8\x75\x71\x49\xdf\x30\x8c\x5b\x12\xc5\x88\xed\x3a\x28\x51\x5d\x35\x00\xfa\x47\x21\x9c\x80\xd9\x52\x7e\x84\x13\x9e\x12\x2e\xfd\xb1\xbd\x9c\x12\xf1\x1d\x53\x8a\xc0\x42\x1f\x0e\xbe\x2c\xcc\xe0\x84\x67\x2c\x42\x1e\xdd\x77\xf1\xe2\xe6\x57\x68\xe0\x36\x75\x8e\x12\x39\xb8\xf3\xbd\x87\xd8\x07\xcf\x94\x2d\xf3\xc6\x50\x5c\x33\x8a\xbf\xb8\xf6\x9c\x88\xdc\x73\x9e\x5a\xf5\xab\x21\x61\xc0\xf3\xc4\xd6\x70\xee\x90\xf0\x12\x0b\x1d\x9f\xeb\xde\x12\x5a\x1c\xdb\x3c\x8b\x8c\x33\x10\xda\x0b\xd1\x04\xdf\x27\x17\xb6\x72\xd2\x3a\x6b\x7a\x5f\x94\xe1\x45\x44\x6e\x49\xa7\x4e\xfd\x09\xb7\xb1\xb2\x77\xa1\x0d\x32\xac\xe9\x3d\x34\xa2\xd2\xf5\x71\x2d\x1a\xbd\x83\xa9\x84\xee\xec\x97\x94\x34\xf8\x34\xd6\xb3\xc3\xb2\xb1\x59\x07\x93\x63\x4a\xac\xb7\x9f\xf1\x9c\x88\xfc\x8f\x69\x02\x91\xe3\x08\x22\x1e\x94\x7a\x17\x44\x85\x38\xe1\xa0\xa9\xb1\x52\xca\xb6\x00\xfc\xd0\xbd\xd7\xa1\xcd\x24\x48\xa6\xa2\x8b\xd6\xbd\xa4\x8d\xd0\xce\x7e\x1d\x8c\xc2\xdd\xbb\x04\xd3\xb1\x64\xd6\x68\x32\x8d\x64\x89\xbf\x3f\xff\x71\x78\x3c\x56\x85\x8d\x45\xf8\x5f\x30\xda\x20\x8f\xe1\xa1\x85\x6e\x0f\xc7\xd3\x37\x68\x6a\x4b\x5e\x6c\x3b\xc4\x44\x58\x95\x79\x94\xbc\x6e\x5f\x1f\xc4\xdc\x55\x8a\x29\x89\x72\xa7\x76\x57\x54\x2f\xbf\x0f\x6e\x40\x4c\x99\x3d\x24\xd1\xf0\xf5\x49\x84\xde\x35\xc7\xf2\xf1\xd0\x2b\xb2\xc0\x56\x24\xf6\x71\x19\xa0\xd0\x96\x12\x34\xb4\x75\xf1\x32\xff\x55\xad\x85\xf2\xfa\x02\xc7\xa3\x08\x09\x91\x98\x82\xc6\x15\x70\xf5\xf8\xf0\x7d\x77\xd8\xdd\xad\xae\x7c\x0b\x23\xd6\x97\xec\xac\x1c\x3f\xae\xff\xe7\xc1\x35\x89\x59\x94\xdb\x05\x7d\x02\xd5\x35\x80\xd0\x12\xdf\xe4\x30\xff\xd6\xef\xfe\x94\x74\xb2\xef\xa9\x08\x86\x10\x9e\x9a\xfa\x6f\x66\xd9\xe2\x28\x8e\x30\xba\xf7\xf0\x34\x76\x8d\xe3\x28\x4b\x31\xac\x73\x68\x85\x19\xa8\xde\x7f\x7e\x29\x2c\xdb\x5f\xa6\xac\x88\x51\xbf\x85\x4e\x17\x68\xcc\xa3\x38\x72\x47\xe0\x01\xc1\x64\x07\x94\xdc\x68\x0f\x6a\x90\x8d\x1b\x3a\x9b\x18\x83\x6a\x9b\xee\xf5\x07\x54\xdd\xb9\x81\xd6\xcf\xea\x38\x4e\x68\xee\xe5\xed\x3d\x50\x7c\xf0\x2e\x7d\xa7\x54\x61\x00\xb9\x6f\x1c\x0f\x73\x9c\x02\x72\x4d\xe2\x79\x7a\x55\x57\xda\x02\xa7\x0e\x57\x9b\xd5\xb3\xef\x93\x24\x31\xae\xb8\xa2\xbd\x9f\x54\x6b\x86\xe6\x34\x86\x09\xc9\xf9\xa4\xc6\xcd\xf7\x32\x19\x9e\xf8\x8e\xd6\x75\x92\x70\x89\x13\x03\x58\x6c\xd8\x7b\x82\xb7\x8f\xab\xbb\xc3\xe6\xca\x27\x89\xe2\x94\x12\x47\x3a\x5d\x85\xcc\x08\xe6\xaf\xab\x30\xcb\x32\x66\xa8\x4b\xda\xfd\x31\x3b\xdb\xe2\x2c\xb5\x98\x92\x1d\x88\xf2\xa9\xc1\x22\x9e\x81\xbd\xdd\xf5\xc9\x99\x25\x16\xc0\xa4\xfc\x9b\x08\xc0\x7c\x4e\x62\x91\xd8\x44\x22\x7a\xf8\x8f\x01\xaf\x3e\x8b\x74\xc4\x42\x4a\x3e\x50\xb7\x2e\x1d\xd5\xae\xa3\xcc\x32\x64\x98\xe8\xa0\xed\xb6\x21\xb8\xfe\x4f\x68\xfc\x3e\x13\x4b\x9d\x4a\x39\xa1\x5e\xf0\xa2\x08\x36\x17\xe9\xfb\xa9\x84\xa3\x13\x8d\xe0\x2b\x30\xb3\xd0\x44\xac\x12\xe3\xd1\xb0\x21\x27\x31\x99\xe8\x4a\x00\xc6\xfa\xef\x1e\x6f\x0f\xbb\x53\x51\x6d\xac\xa9\x74\x19\xac\xfd\xd2\x4d\x88\x95\x4c\xd1\x56\xf9\xbd\x38\xfe\xf7\x7a\x08\x76\xc6\x3a\x12\xb8\x99\xf9\xb3\xcf\xd9\x67\x53\x13\x99\x4f\x4f\x9a\x58\xeb\x0c\xa1\xfe\x9b\xd5\x3e\xdc\xc7\x44\xb8\x4c\xf0\x14\x3c\x3c\x3d\x6f\x3c\xe2\x86\x93\xd8\x24\x11\xea\x19\xdf\xaf\x1e\xbe\xad\xf6\xfb\xd5\xc3\xd3\xf3\xe3\x9f\xff\xc8\xf7\xdf\xd6\x8f\x77\xab\x1f\x9b\xd0\x2d\x23\x38\xbb\xae\xca\x5a\x4d\x16\xb5\x01\xc1\x5c\x6c\xdc\xd6\xe8\x9d\xf5\x65\x36\x74\x89\x3f\x90\x93\x84\xe8\xdc\xc9\xfa\xaf\x45\xb3\x3b\x81\x2a\xc4\xec\x28\x48\x18\xe5\xc8\x6f\x74\x05\x1d\xfc\x1a\xc9\x2f\xfe\xff\x29\xfb\xb2\xee\xc6\x6d\xe4\xfb\xaf\x93\x87\x79\x20\xc0\xfd\x51\x92\xe5\x6e\x4f\xbc\x68\x24\xb9\x3b\xf9\xcd\xc9\xd1\xc1\x52\xb0\x38\xa6\x48\x85\xa4\x6c\x2b\x9f\xfe\x7f\x58\x05\x50\x24\x45\x3b\xf9\xbf\x4c\x4f\x0c\x70\x11\x88\xa5\x96\x5b\xf7\xfe\xad\x63\x36\x7c\x92\xaf\xc3\x88\xa2\x72\x6f\xad\x6f\x5c\x8f\xec\xc9\x28\x48\x53\xac\xe7\x5f\x83\xde\x97\x55\xed\x66\x75\x14\x7a\x94\xa7\x7e\xb8\x7b\xa4\x32\xb8\xbb\xf9\xf3\xf6\xae\x8b\xe3\x44\x21\x0f\x50\x76\x63\xfe\xbc\x5e\x3e\x2e\x7e\xef\xfe\x1c\x50\x40\xb9\xaf\x78\x3f\x7a\x62\x18\xa5\xf8\x46\x17\x82\xda\x1e\xe0\x22\x8a\x82\x20\x75\xe5\x4c\x2e\x7d\x00\x5f\x92\x42\xb6\x17\x19\x8d\xa6\xb8\x01\x70\x10\x06\xf7\x42\xb1\x31\xba\x83\xd8\x50\x88\xbf\x7e\x2a\x6e\xcb\x6a\x2a\x62\x15\x25\x7e\x82\x29\x39\x22\xe9\x76\x56\x68\x94\x04\x2c\xb6\x0c\xaa\x77\x8b\x27\xda\x22\x7a\x38\x48\xec\xe1\x03\x58\x9d\x99\xc3\x01\xd3\xd8\x03\x6d\xd2\xb6\x4b\x14\x21\xee\x0e\x27\x8b\xab\x55\xfc\x47\x80\xa2\xe1\x3b\xa6\xa1\x8f\xe3\x67\xf2\xb2\xec\x7e\x66\x1a\x46\x28\x7c\xda\xee\x0c\x6b\xc0\x6d\xe1\x5e\xd0\x7f\x90\x9c\x68\xd7\x31\x89\xb1\xd0\xc6\x51\x01\x22\x1e\x6f\x12\xf3\xd3\x76\x4e\x39\x86\xc3\x6d\x92\xb0\x7d\xe9\x61\x39\x41\xdb\x47\x03\x82\xe6\x1e\xdc\xa1\xdf\x43\x26\x0d\x7b\x0a\x8f\x74\x13\x7f\x3c\xdd\x3f\x3f\x2c\x77\xa1\xe7\xde\x49\x30\x86\x91\xfc\xdb\xd9\x76\x3d\x7b\xdc\x3c\x3d\x74\x0d\x3e\x4b\x6c\xf0\x68\x61\x4d\x72\x22\xb6\xab\xef\xa1\x78\x69\xf6\xc3\x73\x2e\x12\x91\x41\xb6\x36\xcb\x31\x35\x56\xfa\x6d\x7b\x98\x04\x35\xe8\x66\x15\x14\xc7\x5c\x9c\xfb\x0b\x3a\x92\x5e\x98\xfa\x9d\x02\x13\x4e\x8f\x7a\x7e\x26\x6b\xd2\x75\x49\xc9\x86\xc2\xfa\x32\x6f\xec\xf0\x8f\x46\x4f\x71\xaa\xe3\x79\x81\xe6\xbe\x54\xed\xc1\xa0\x61\x0d\xc7\x53\x33\x81\x50\x88\x54\xc8\x49\x8b\xcf\x56\x5b\x20\x37\xf9\x95\xfb\x17\xa9\x30\x44\xc3\xfc\xf6\xee\xde\x6d\x64\x91\x8a\x22\x8c\xe3\x1e\xd0\xaa\x7c\x84\x8f\x66\x01\x59\x7e\xb1\xde\x22\x95\x72\xb4\x4a\x56\xeb\xbb\x1f\xb3\xed\x12\xb1\xf3\xbb\xae\xca\xd5\xf5\xd2\x31\xa4\x14\x75\x43\x14\x5a\x56\xbc\x5c\x88\x30\x5c\x97\x84\x52\xc2\xad\x19\xd3\x7e\x6a\xca\xa7\x4d\xcf\x1d\xc3\x34\x02\xc2\xb1\xfc\x6c\x23\x72\xb0\xea\x27\x9f\x75\xf7\x53\x32\xe5\x4f\x45\x7b\xf7\xcf\xe8\x83\x03\x2f\xf6\x3c\x86\xe1\x97\x6d\x75\xfa\xa7\x5a\x87\xed\x55\x7e\x8c\xc9\x1b\x10\x55\x7e\x76\xb5\x69\x35\x22\xe9\xf4\xc0\x9c\x88\x59\x7b\xec\x93\xda\x5b\x55\x2f\x44\xd1\xc9\x9f\xb8\xf6\x28\x96\x56\x83\xb0\x59\x16\x4d\xa6\x85\x86\xcb\xc5\x91\xc1\x11\xba\x41\x0f\x60\x0e\x4d\xd7\x60\x12\x8c\x87\x1c\xc5\xd9\x16\x7a\xba\x16\xce\x9d\x5f\xd1\x3c\x62\xfd\x9f\xd0\x50\xdd\xe9\xe1\xdc\x8e\xb9\x1f\x62\x71\xf2\x7d\xf9\xb2\x69\xca\x63\x77\x71\x18\x4a\x9b\x54\xb9\x64\x84\xce\x43\x0f\x68\x38\x10\x1c\x00\x3a\xa2\xea\x63\xa6\x3e\x19\x65\xdf\x23\x1c\x01\x8a\x75\x5f\x14\xd1\x1e\x4f\xce\x90\x8e\x7d\xa6\x1c\xfb\xdb\xaa\x1c\xfb\x51\xb1\xcf\x55\x92\x5a\xe0\x63\xbf\x1c\xb8\x6d\x0a\x7c\xb2\x1a\xa1\x3a\x64\x3d\xee\xe7\xc0\x8b\x83\x30\x42\x77\xd6\xb4\x13\xeb\xc9\x74\x7f\x4e\x52\x63\xf9\x96\x95\x68\x76\x45\xa9\xa1\x1e\x67\x3e\xe2\x40\x91\x00\xfb\x20\x20\x4a\xef\x2d\x73\xd4\xa6\x20\x92\xc3\x2b\x64\xf5\x3f\x42\x6b\xc4\xa1\xcf\xa5\x15\xec\x46\xea\x68\xaa\x14\xd8\x8a\xaa\x3d\x14\x0a\x4a\xe6\x76\x5d\xa9\x26\x5b\x68\x7d\xad\x90\xd2\xb6\x07\x44\x9d\x84\x31\xf9\x45\x9e\xc1\x38\x35\x14\x47\x2c\x46\xbb\xd3\x22\x3e\xf0\xa8\xb9\xb3\xbc\xab\xa3\x9b\x45\x82\x64\x35\xe7\xed\x67\xb8\xb8\x7b\x71\xec\x73\xcc\x41\x1d\xc5\x79\xf7\x55\x9c\x21\x8e\x93\x18\x91\x7d\xad\x5b\x57\x7f\x1a\xb7\x88\x63\x21\x18\xa5\xe3\x2a\xd8\x34\xc2\x98\xc1\x01\xd8\x36\x23\x2c\xca\xba\x02\xed\xf3\x86\xcb\x2a\x06\xe3\x60\xe7\xed\x77\x58\x95\x65\xbe\xd4\x59\xb3\x0b\x5c\x87\x24\x00\x42\x6c\xe6\xa2\xde\xdb\xda\xda\xe7\x1a\x90\x24\x60\x8c\xe4\x1b\xbe\x5a\x12\x69\x0c\xf8\xb4\x3e\xfb\x55\x66\x6f\xb8\x8c\x12\xa3\xd0\x1f\x30\x00\xae\x78\x3b\xf0\xe2\x34\x35\x24\x76\x46\x26\xf3\x8d\x38\xb7\x46\x38\xf3\x3c\xcf\x9d\x51\xb1\x08\x95\x53\x7d\x42\x0a\x90\xfb\xf2\xe5\xb1\x6b\x8b\xa8\x54\x12\x7f\xfb\x8f\xbb\x95\xfb\xbb\x4c\xd2\x54\x76\x4c\xe6\x77\x45\x13\x05\xbf\xf4\x60\x0a\xb1\x0a\xc3\xc0\xe2\x0c\xb7\x9b\x2d\x19\x91\x3d\x10\x7c\xdb\x43\x44\x38\xaa\xf3\xfa\xb5\x19\x9c\x67\xfd\x74\xde\x34\xbe\xd1\xdd\x41\x0a\xc4\x62\xc8\xd3\xf9\xd7\xc7\xa7\x9f\xdd\x8d\x0d\x84\xe0\xfc\xc7\x3c\xdf\x1d\x29\xef\xe1\x9a\xb5\xa7\x1c\xdd\xea\xb7\x89\xe1\x1f\xf0\xc9\xb5\xdd\x99\xf0\x28\xa9\xd7\xee\xaa\xf0\xbd\x35\x24\xc7\x93\x5e\x87\x21\x7a\xd3\xff\x23\x0e\x1d\x2b\xe7\x56\x50\x22\xa8\xe7\x54\xc6\x10\x42\x68\x8b\x42\x49\x82\xc9\x42\x7e\x06\x3f\x0b\xd2\x30\x21\xe4\xdb\xff\x40\x21\xc3\xa9\xab\x2f\x1c\x0e\x46\xd7\x1d\x5c\xe9\x56\x6b\x9f\x65\x35\x29\xac\x93\x1f\x38\x7c\x4f\x10\x9c\x75\xdb\x5a\x35\x08\xe4\x0d\xd7\x28\x68\x0e\x54\xf1\x74\x38\x9e\x1a\xb8\x8e\xe6\xc4\xc6\x02\x09\xbf\x2f\x3b\x10\x5c\xdc\xba\x13\xac\x8b\x8b\xd7\x2b\xa8\x7a\xf5\x9b\x6d\xbb\x24\x55\xf9\xb1\xca\xc3\x63\x79\xc8\x2e\x8b\xc9\x28\x8e\x01\x33\x78\x79\xa9\x37\x17\x84\x5c\x6c\x5c\x15\x49\x97\xee\x7c\xde\xdc\x5c\x1a\x01\x69\x7b\x72\x30\x0d\x1b\xc1\x1a\x13\x8f\xc7\x88\x17\x7f\x39\xed\xe5\x70\x33\x4a\xbc\x30\x82\x80\x22\xbf\x0f\x59\x71\x91\x63\xfc\xa5\x6b\x8f\x55\xe0\x4a\xc5\x51\x46\xf9\x2a\xd7\x9d\x78\x11\x95\x61\xb7\xcb\xa7\x2b\x2a\x83\xee\xdc\x4c\xbc\xd8\x23\xde\x49\x6b\x72\x3c\x88\xe2\x7c\x2f\x0a\x7d\x85\xa9\x1b\xaa\x6c\xb7\x57\xa6\x02\x53\xc5\x18\x5d\xfe\x67\xc6\x40\xe2\xa5\x04\xfd\x51\x22\x57\xcb\x83\x98\x74\xad\xc6\xe6\x5c\xe2\xa9\x04\xe9\xea\x7f\x6b\x9d\xc9\xbe\xe1\x98\x30\x06\x69\x1f\xc7\x7d\x23\x1a\x41\xd5\x7f\x59\x73\x1e\x0d\x04\x53\x9e\x25\x05\xab\x6b\x54\x4f\x1f\x9f\x63\x09\xd3\x44\x23\x89\x65\x17\x94\x8f\xb4\xba\x54\xc3\x3b\xf1\x38\x94\x72\x10\x39\xf9\x21\x4e\xf9\x95\x04\xde\xb4\xcb\x94\xf0\x24\x42\x6b\xef\x53\xac\xba\xeb\x27\x83\x34\x75\x7b\x9b\x8b\x25\x0c\xe5\x51\xda\x5e\x1a\x6c\x90\x67\x2e\xea\x4c\x4d\xe2\x1d\x12\x9f\x25\xc2\x06\x15\xd0\xc2\x5c\xf4\xf0\x81\xe3\x97\x1e\xec\xda\x89\xaf\x42\xcc\xdb\x3c\x89\x3a\xab\xff\x3e\x0c\x97\xf8\x4a\xe3\xd0\xf4\x03\xe7\x57\x3c\xc0\x6d\x3f\xe0\x8e\x47\xf0\x36\x2b\x04\x31\xde\x58\xa6\x79\x4a\x97\x7a\x5d\xcf\xd4\xef\xc3\xf6\x28\xe3\xd0\xa5\x80\x6d\xaf\x20\x10\x54\x5e\x2b\x0c\xdc\x80\x3e\xa9\xc9\x62\xe6\xb6\x63\x22\x4c\x68\xeb\x6e\x1e\xce\x3f\xcb\x4a\x0f\xce\xad\xee\x87\x07\xca\x47\x88\x85\x69\xdf\x2e\xfb\x0b\x7a\x6c\x7a\x81\x97\x84\x31\x78\xbc\xb3\x78\xfe\x0e\x61\x37\x80\x79\x27\x91\x8c\xb0\xda\xb3\x7e\x07\x38\xd6\x03\xb5\x12\xdb\x23\x8e\x3c\x69\x49\xb8\x50\xd4\xee\x5e\xd4\xcd\x8f\x7a\x2e\x9a\x26\x87\x0e\x67\xe3\xce\xb2\x24\xb6\x11\x23\xa2\x64\x7c\x10\xaf\x50\x0d\xf5\x9a\x86\x9f\xd6\x5d\x95\x7a\x98\x0c\x5e\x67\x6a\x80\x4f\x4a\x92\x40\x85\xf6\xb8\xa5\x64\x58\x37\xd5\x52\x4f\x2a\x3e\x88\x70\x8d\x5c\xfe\x24\xf5\x13\x3c\xbc\x5a\xf7\xf7\xd9\xc2\x73\xd5\xab\x78\x81\x1b\xd9\x75\x09\x22\xf4\x06\x5c\x96\xd4\x76\xe8\x3e\xc2\x60\x36\xa5\x51\x88\x48\x61\x69\xad\x9a\xe6\xf2\xc1\x53\x49\x32\x09\x54\x42\x6a\x0b\x63\x5d\x9b\xe6\xb6\x06\xfc\xdc\x1a\xc0\xa3\xc5\x20\xb8\x40\xaa\x25\xa1\xf5\x23\xbc\xa3\x99\x98\x5d\x7b\xce\xa3\x69\x23\x12\xcf\x81\x48\x90\x0f\x0c\x84\x0d\x85\x62\x49\x21\x0f\x90\xcb\xaf\x7b\x01\x01\x90\xb0\x8e\x95\xec\x07\x14\xba\xac\x26\x55\x7b\x03\x2f\x91\x69\x1a\x84\x2e\xad\x78\x86\xca\x92\x00\xb9\x56\x25\x5d\x41\x84\xc5\xa6\x39\x07\xdc\x75\x30\x81\xf2\x3b\x26\x68\x3a\x58\xb3\xcb\x37\x53\x8c\x92\x2a\x17\x28\xab\xd5\x6a\x1e\x3a\x90\x9f\xfd\x7b\xba\x62\x01\x9f\xb4\xd5\x13\xf7\x34\x03\xe8\x98\x64\x83\x19\xa5\x5b\x1b\x64\x54\xc9\xf3\x59\x4c\xcd\x5d\x12\xc6\x88\x68\x1b\xd6\x20\x3b\x94\xc5\x14\xba\xc2\x5d\x98\x06\x98\xb8\x46\x18\x21\xbd\xc5\x84\x6d\x96\xe8\x94\xa4\x6b\x29\x78\x5a\x76\xe5\xca\xc3\x4f\x03\x5e\x4a\x2a\xb0\xf8\x16\x4e\xe3\xa7\xf5\x69\x16\x79\x59\xc0\x34\xeb\xe3\xc4\xde\xd8\x4b\x5b\x26\xc0\xc9\x62\x7d\x43\x03\xcb\xa6\x39\xbb\x36\x40\xa9\x82\x4c\x95\x7c\x60\xc2\x27\x00\xb1\xe9\x36\x70\xa8\x9a\x71\xf8\x2c\x31\x40\x98\xab\x0a\xfe\x3c\x65\x15\x68\x8b\x5d\x19\xcc\x95\xd4\x63\x12\x8b\x1e\x8e\x3b\x84\xed\x59\x09\x40\x2a\xcd\xaf\x1f\x4a\xdd\x0f\x07\xa6\x5e\x42\x3c\xb4\x96\x9c\x64\x72\xf2\xa6\x9e\x22\xb0\x6b\xeb\x04\xf7\xbf\x79\xea\x01\x29\x73\x7c\x43\x9f\x63\xd1\xf3\x52\xa7\xbf\x78\xca\x84\xc6\x7d\xb9\x2c\xf2\x33\x26\x21\xbe\xb5\xce\x2f\x9a\x89\x3d\xe2\xce\xb6\xa3\xa2\xa2\xe3\x17\x68\x9a\xf2\x78\xba\x2a\x2e\x4b\x99\x09\x14\x51\x02\x9a\x0a\xea\xfd\x43\x59\x88\x4a\xed\xcf\xad\x35\xed\xc6\x33\xe5\x01\x27\x76\x27\x1b\xdb\x1a\x9e\x4e\x29\x17\x11\xa3\xb4\xc0\x8f\xb2\x93\x35\xb7\x59\x68\xc6\xbb\x4e\x04\x19\x43\x8b\xef\xf6\x94\x9b\x2c\xcf\x5b\xe3\xcc\xf9\xdc\xce\xba\xe0\x17\x87\x21\xe9\x78\xf5\xad\x19\xcf\xff\x70\x37\x03\xee\xf4\xf1\x2c\x2f\xeb\x64\x91\x41\xea\xb3\x10\x41\x86\x16\x20\xb1\x3a\x75\x39\xc0\xd4\x97\x94\x58\x78\x2b\x1b\xa8\x77\xa6\x8b\x50\xa6\x81\x50\x98\x90\xb6\x28\xb0\x9f\x20\x5e\xbf\xb7\x06\xde\x22\x17\x75\x9d\xa9\xae\x1b\x98\xd0\x65\x1e\x44\x23\x86\xd4\xd7\xb6\x4f\xe8\x33\x3c\xf7\x26\xd9\xbe\x06\xa7\xde\xf4\x3e\x31\xfa\xe8\x61\xc0\x5d\xb5\x28\xb1\x00\xa0\xc2\x8a\x8d\xca\x5f\xd7\x0d\xa6\xa1\x91\x18\x8a\xd9\x9c\xe4\x21\x6b\xfa\xd8\xf1\x81\xd5\x92\x46\x91\xc0\xf4\xdd\xe2\x61\xe1\xf0\x2d\x43\xde\xfb\xd1\x7b\xc4\x91\x8c\x9c\xde\x03\xbc\xcf\x5e\xae\xc2\x02\x69\xac\x89\xd2\xce\x49\xb0\xac\x7b\xd8\xdc\x34\x69\x07\x66\x84\x51\x7b\x32\xa6\xbf\x9a\x52\x0e\x4e\xf9\x16\x8f\x31\x2b\x38\x79\x1c\x45\xb3\xd3\x34\x49\xf0\x34\xd8\x55\x18\x6d\xed\x83\x9b\x6c\x0f\xe1\x6b\x3c\xb8\x67\xf7\xf7\xb3\xc7\x1e\x6c\x30\x95\x41\x8c\xdf\xff\x9b\x7d\xc4\x6a\xe0\x58\xa6\x52\x05\xfe\x45\xd2\xda\xe1\x80\x1f\xc4\x87\x12\x23\x04\x51\x2a\x75\x1a\xca\x81\x64\x8a\x35\x50\xe6\xa7\x3a\x2b\xda\x5d\x60\xd8\x5f\xc5\x12\x8d\x39\xca\x16\x3f\xdc\x3d\xee\x6e\x9e\xd7\xb3\x5e\xce\x22\x55\x69\x84\xdb\xd3\x5b\x06\xef\xbe\x8b\x3b\xa4\x5a\x0a\xcc\x4c\xb7\xce\xc0\xaf\x70\xae\xd7\xa0\x20\x7b\x1b\x03\x1d\x53\x48\x88\x3c\x80\xaa\x12\xfe\x1e\xc4\x75\x19\x75\xd0\xc4\xff\x53\x43\xb3\x58\x7c\xdf\x81\xce\x9a\x5d\x38\x9c\xd1\x86\x47\x88\x38\x5a\x6e\x16\x4f\x83\x1d\xcc\xf8\x3e\x8a\x87\xd5\xa7\xc3\x65\x6e\x76\x8d\x32\x40\x6c\x27\x8a\x28\xbf\x3c\x88\x8f\x5f\x1d\x2f\x4e\xdb\xa8\x7c\x5b\xc7\x57\x7c\xcb\xde\xe0\xa1\x2c\xe0\x3c\x17\x9d\xf1\x28\x3c\xad\x83\x4b\x51\x3c\x72\xd6\xce\x45\x0d\xfa\xa9\x6f\x04\x0a\x16\x30\x73\x51\xb2\xfa\xe1\xd4\x7c\x86\xb3\x41\xb0\x54\x60\x6d\xf7\xfc\xfe\x69\xf1\xeb\xe6\xf9\x71\x7b\x77\xbf\xb8\x5f\xce\x1e\x9f\x57\x9b\xed\x6c\xf1\x6b\x77\x33\x99\x3a\x1b\x91\x28\xc5\xeb\x3e\xa6\x5a\x30\x13\x68\x9a\xdd\x0e\xba\xb4\xb9\x46\xf3\x09\x66\x92\xb8\x3f\x87\x7b\x05\x34\xad\x37\x7d\xbd\x5e\x05\xf7\x48\x07\x6a\x51\x66\xc5\x8f\x2c\xcf\x05\x21\xbf\xdc\x5b\x71\x69\x94\x25\x3a\xf8\x6d\x35\xc3\x78\xe7\xe8\x80\x11\xbe\x48\xa9\x14\x0a\xbf\x3d\x3e\x0b\x1f\xfb\x49\xa6\x43\xf8\x9a\x07\x84\x38\x7c\x79\xe9\x3e\x97\x08\x3c\xa6\xed\xfa\x7e\x28\x8b\xd6\xec\xc4\x38\xed\xb6\xa4\x8a\xa5\xc9\x28\x83\x08\xc2\xc0\xa9\x0f\x77\xfc\xc1\x64\x9c\x8d\x5f\x32\x48\x85\x55\x7b\x6f\x4f\x9a\xcd\xa1\x3d\xaf\xea\xa6\xa3\x61\x73\xbd\x94\x8f\x48\x8e\xbc\x14\x85\x13\xc4\xec\x9a\x42\x4c\xc3\xb8\xd1\x1f\x6b\x5f\xfc\x1d\xf5\x44\xe0\x89\xd0\x13\x21\xd8\x2d\xac\xac\x0e\x22\x9f\x9f\xae\x05\x58\xda\x7e\x8c\x04\x31\x56\x27\xe9\x34\xeb\xbf\x4c\x63\x8a\xd0\xf7\x10\x50\x7b\x0b\xa0\x97\x2f\x2e\xb3\x21\x42\x9f\x44\x55\x2b\x40\x74\x25\xa6\x60\xcb\x2b\x55\x20\xd7\x39\xf6\x63\x9b\xb0\x9d\xa8\x85\x11\x61\xac\xd0\xdf\x41\xf9\x42\x7d\xc8\x8a\x09\x60\xaf\x08\xa5\xc1\x1a\xdd\x15\x14\x8d\x50\x65\x05\xfd\xd5\x2a\x62\x4e\xa9\xb9\x3a\x7b\x41\x19\x2e\x2b\xb0\x05\x55\x3d\x8c\xeb\x89\x18\x34\x26\xcd\xda\x37\xb8\x3d\x15\x57\x55\xbc\xc3\x93\x41\x24\x22\x45\x11\xf1\x5f\xb3\xe2\x45\x97\x07\x5b\x18\x75\xa5\x9b\x16\x78\x22\x65\xa1\x08\x7b\x49\xe9\x9a\x96\x47\xef\x10\x10\x29\x37\x8e\x08\xf9\x21\x2b\x36\xd9\x0b\xd9\x1d\x81\x75\x75\x85\x90\x09\x6a\x89\x91\xeb\xa4\x27\x39\x1d\x3e\x55\x32\x9a\xb4\x17\x84\xd0\xa4\x7c\x63\xa9\x60\x57\x22\x1b\xaf\x51\xc9\x23\xe4\xe0\xbd\xa8\x8a\x98\xc4\x0d\x96\x0c\x12\x8a\x64\xf7\xa8\x5f\xdb\x3f\xc7\x32\x41\xc8\x60\x77\x6e\x09\x15\x78\x92\xbb\x2f\xfc\x66\xad\x2a\x0b\x60\x1b\xef\x23\x2a\x49\x05\xef\x05\x67\x47\x51\x2d\xa1\x24\x95\x0c\xe3\x30\xda\x4a\x6d\x4b\xc3\x3b\xf8\xe6\xca\x24\x5e\xe8\x44\xbb\xd0\x52\xc4\xd2\xcb\x29\x4f\x52\xe8\x28\x44\xab\xb1\x2b\x8c\x2b\x2b\x34\xed\x26\xed\x01\xa1\x0d\x21\x64\x6b\xeb\x03\x67\x7f\x41\x47\xdb\x3a\x3d\x4f\xc0\x4b\x90\x95\xb3\x4b\xee\x36\x9f\xa4\x77\x04\xa8\x28\x20\x9f\xb6\x38\xd5\x17\xc2\xf2\xb6\x05\x98\xb0\xf5\xbf\xdf\x45\xbd\xdf\x9e\x8f\x9d\xc1\x2a\x0c\x13\x01\xd9\x70\x08\x85\x69\xcf\xa2\x1b\xd1\x1d\x39\xd2\xf3\x3c\x4c\x44\x5a\x16\xaa\xc9\xa8\xf1\xd0\xf4\x1c\xc6\x79\xa4\x27\x28\x08\x49\x67\xd2\x1d\x55\x5e\x6e\xc7\xe2\x2c\x6d\x47\x45\xb0\xc7\x9b\x2c\xcf\x5e\xa0\x50\x83\x65\x28\x19\x97\x81\xd7\xc1\x64\x3a\xee\xc2\xb6\x25\x88\x3c\x8b\x2e\x78\x7a\x83\x6a\x75\xdf\x11\x61\xb7\x8d\x82\xb4\xb8\x31\x01\x61\xf5\x20\xae\x32\x10\x5d\xe8\x7b\x38\xa0\xd2\x67\x29\xb2\xd7\x1f\x73\xd0\x2f\x70\x03\x2a\xcf\x8a\xd1\x94\x93\x7e\x98\x76\x51\x9f\xad\xa8\x5f\xdb\xf9\x92\x43\x9f\x2e\x72\x38\x1c\x81\x4f\x92\xce\x2f\xd0\x6c\xa0\x69\xae\x30\xb9\x32\xf4\x7d\x2c\x76\xde\xd1\x80\x59\x9b\xdf\x92\xd5\x7f\xbd\xa7\xc8\x30\x49\x22\x6b\x5e\x7d\x2f\x1b\xf2\x6e\x86\xbb\x94\x0c\x15\xe0\xf3\x4d\xf6\xb2\x27\x30\x64\xcf\x34\x90\x91\x47\x14\xca\xa6\xac\x14\xcc\x4f\x67\x29\x86\x3a\x8f\x6d\x17\x66\x20\xed\xac\x87\xa7\x23\x54\x7d\xe3\xe1\x5f\xa3\xce\x3c\xc5\x7d\x89\x6a\x83\x7b\x76\x8e\x8c\x14\x51\xe6\x2d\x9b\xfd\xfd\xb9\x19\x7e\xeb\xd8\x4f\x52\x8b\x87\xbe\x05\xf8\x99\x15\xba\x7c\x1f\x8d\x52\x1c\x10\x94\x45\x67\x75\x9e\xbd\xc2\xac\x6a\x46\x6a\x01\x6d\x9f\xc4\xc3\x80\x50\x6b\x2a\x3d\x1f\xb7\x7b\xb8\x29\x4f\x2f\xfb\x71\x27\xc9\x71\x5e\x75\x95\xfd\xc3\x08\x97\xed\x95\x78\x11\xc6\x89\xb1\x5e\x7c\x37\x7b\x78\x7a\x7e\xdc\xee\xee\x16\x4f\xbb\xcd\x76\xf6\x6d\xc9\x76\xab\x35\x65\xe0\x9d\x01\x2a\x93\x38\x41\xfd\xf5\x4a\x64\x35\x6c\x72\x71\x38\xf4\x1c\xaf\xe9\x85\x92\xe8\x10\x19\xe3\x11\xd7\x74\x0b\xb0\xfc\xc8\x3e\x61\x33\x90\x69\xc2\x43\x32\x6f\x8b\xc5\x05\x71\x63\x1b\x85\x07\x69\x47\x7d\xfe\x72\xe5\x82\x4a\x69\x25\x4d\xde\x45\xa3\xf6\x3f\x32\x0d\xe5\x7c\xf4\x6b\x65\x12\xa0\xb6\xc8\x7a\xf9\xb8\x5c\xe2\x4f\x76\xf7\x96\x26\xc4\xb3\x79\xb1\x3f\x15\xaf\xf5\xe0\xa3\xa9\x94\x78\x0f\x6a\x37\xa7\xd0\x91\x61\x5d\xb3\x21\xd6\x61\x09\x0d\xf3\x3c\x6f\xe7\x31\xe8\xc2\x07\x52\x27\x31\x06\x2e\x77\xe4\x42\x3c\xb5\xdf\x34\x43\xce\xa7\x09\x58\x85\xd4\xda\xc7\x19\x88\xc3\xb7\xfc\xf3\x24\xf2\x5f\xae\xac\x16\x09\x22\x41\x0c\x54\x8e\x67\xa5\xc5\x18\x3f\x99\xd1\xad\x40\x18\x8c\xd8\x75\x1c\x7b\xdb\x9f\x77\xa3\xe1\x02\x00\x6e\x2d\xfd\x15\x54\x07\x51\x40\xd1\x5a\x6d\x4d\x56\x9c\x0e\xf7\xf0\xd6\xab\x86\xed\x1f\x0b\xd2\x44\x01\xef\x74\xfc\x11\x68\xd8\x9d\x72\xd2\x18\x8e\x93\xc3\x2a\x0a\x2d\x7a\x52\x3d\xc3\xf5\xa3\xbc\x30\x70\xbb\x45\xa7\x3d\x23\x73\x3b\x47\x6f\xef\xee\xb6\xbf\x8c\xfa\x4b\x25\x53\x97\x67\x98\x0f\x78\xbf\x93\x71\x1c\x7e\x38\xfd\x94\xa7\x42\xf4\x0a\x56\x03\xbe\xea\xb6\x01\x14\x5c\x6a\x54\x1f\xce\x44\x30\x3a\xf2\xd4\x14\xf3\x0c\x4b\x5d\xbe\x76\x72\xd6\x2a\x1e\xf8\x2a\xed\x29\x47\x52\x31\x7b\x67\xb4\x2b\xae\x95\x4b\x9d\x76\x3e\x95\xab\x10\x54\x3e\x4b\x1d\x6c\x68\x0e\xc5\x5f\x73\x0a\xe5\x8c\x7e\xbe\x1f\xb0\x44\x59\x1c\x7e\x87\xe9\x1c\x15\x76\x8f\x5e\xca\x8f\x42\x87\x78\xb8\xad\x00\xbe\xb7\x8b\x62\xd1\x59\x0c\xca\x8f\x41\x73\xcb\x03\xf4\x4d\x10\xa9\xdd\x64\x69\xbf\xf2\x45\x84\x1e\xe1\x83\xf8\x70\x29\x95\x39\x34\xf5\x84\x78\x5c\xdb\x59\x32\xcc\x08\xe6\x60\x1a\x3f\x9e\x68\x84\x0b\x72\xde\x99\xec\xa8\xb8\xdc\x77\x3e\x54\x10\x28\xf4\xa6\x29\xcb\x2f\x73\x2a\xfc\x59\x94\x87\x43\x59\xd4\xb7\x65\x65\x41\xb5\x97\xee\x26\x12\x5d\x2c\x62\x71\xfb\x34\x1a\xbd\x20\x51\x8e\x48\xf4\x11\xde\x71\xc6\xde\x15\xb7\x59\x51\x8c\xf3\xbe\x2a\x48\x34\x82\xc2\x97\x45\x53\x95\x47\x87\x7a\x51\x61\x98\x48\x7e\x09\x65\x2f\x04\xd9\xe4\xcf\xc7\x23\x31\x45\x8d\x47\xa1\xed\x6e\x8f\xab\x9d\x29\x2b\xc8\x5e\x8a\x9d\x9c\x2a\xc3\x57\xa1\xf4\x49\x8b\xd5\x66\x07\xf6\xa2\x86\x8e\x4e\x48\x45\xa1\x87\x65\xf4\x68\xf8\x2c\x2f\x74\x00\x2a\x0a\x63\x65\x13\xe5\xd3\x3c\x58\x5f\xe3\x43\x54\x6c\xa9\x23\x68\x5b\x42\xda\xb1\x2b\x47\x59\xc5\xa1\x8f\x5f\x61\x2b\x8a\x97\xc1\x78\xc7\x40\x68\x0d\x17\x39\x1d\x86\x4d\x54\x0c\xb1\x37\x12\xf5\xdf\x2e\x3e\x99\xa5\x49\x28\x42\x5b\xdb\x71\x0f\xee\x13\x3f\x9c\xf2\x59\x55\x89\xf1\xc7\x49\x62\x4a\x76\xef\x70\x27\x7e\x84\x77\x82\xc8\x2c\x8f\xa5\x72\x1b\xae\x4a\x44\x8a\xa4\xc9\xdf\xa0\xb9\x17\x75\xf3\x50\x3b\xef\x4b\xa5\x4c\x91\xe9\x7b\x92\x87\xf2\x8a\x0a\x6f\xf4\x5a\x29\x17\x08\x33\x71\xaa\xbf\xef\x14\x4f\xbd\xc2\x33\xb8\xee\x71\xd4\x53\x46\xc2\xe0\xb0\xb5\x4e\xfa\x25\x07\x2a\x15\xa4\x09\xb8\xb3\xc5\x3e\xc6\x8c\x39\x15\x54\x0a\x24\xaf\xb3\x11\x45\xd6\x20\xb0\x63\xe4\x39\x2b\xe1\x19\xfc\x1d\x3f\xbd\x57\x98\xdd\x3a\x87\xf4\xb3\xcf\x3e\xba\x36\x25\x36\x45\x4b\x77\x60\xb9\x14\xc7\x0c\x29\xe3\x8b\x04\x21\xd6\x5b\xcb\xbe\xc7\x56\xa2\x14\xe3\x28\xeb\x8a\x53\x63\x69\x61\x0a\x13\x89\x86\x51\x04\x53\x29\x9f\xe2\xb1\x0d\x88\xc3\x45\x77\x8c\xe8\x7b\x2e\x7b\xa6\x4a\x12\x8c\x73\xca\x6c\xcc\x30\xa3\x74\x9a\x24\xba\x13\x8f\x99\x57\xa5\xd0\x0a\x89\x4c\x46\x63\xa9\x21\xc0\xd5\xe3\xd0\x09\x73\x07\xf3\x1d\x8d\x28\x30\x1d\xb4\xfd\x96\x3f\x7f\xf6\x82\x83\x0a\x42\x0f\x95\xe1\xb2\xfa\x12\xcc\x7a\xec\x69\x02\xb6\x5d\x64\x80\x2e\x8c\x0b\x71\x12\x8e\x8b\x1c\xde\x7e\x99\x9b\xf6\x04\xc3\x57\x79\x40\xea\x42\xac\xf2\xba\x56\x11\x60\x3c\xe9\x0d\x18\xfb\x64\x6e\x6a\xc6\x7c\xcc\x6f\xd5\x7f\x56\xcd\xec\x52\xa5\xe4\x5a\x35\x0f\xbb\x3a\xfd\x61\x05\x92\xe6\x0c\x22\xe1\xa6\x69\x4e\x44\x1b\xa3\xcb\x39\xb7\xda\x3b\xce\xda\x6f\x4d\xff\xab\x4e\x40\x15\x22\x3f\x44\xf1\x5d\x54\xfa\x5d\x54\xb0\x86\xba\x3c\x55\x0a\x6a\x14\xff\x72\x0f\xf4\xb9\x26\x72\x22\x68\x84\x23\xa8\x70\x04\x9e\xff\x68\xc6\x6a\x5f\x13\xa8\xd7\x42\x7e\x36\x4d\x59\x8d\x28\x90\x03\x4f\x63\x30\xa3\xe3\x21\xdf\x39\xee\xe7\xb6\x25\x49\x31\xae\xb8\x83\xe1\x48\x44\x31\x63\x51\x3f\xf2\x60\x59\x4e\xb6\xdf\x47\x3f\x35\x4a\x3a\xa9\x91\xd3\xd1\x2e\xb6\x7e\xf1\xbf\x8e\xd2\x54\xc6\x8e\x9b\xe2\x46\x34\x62\x27\x9c\xad\xac\xe3\x30\xf0\x6d\x35\xd8\x5b\xa6\x61\x79\xa1\x4a\xfb\x74\xc1\xba\x2b\x25\x69\x29\x51\xd5\x54\xdf\xc6\xd2\xb1\x89\xd1\xca\xc5\xca\xf4\x2b\x67\xec\x9f\xed\xff\x3a\x61\x21\xee\x44\x8b\xb3\x84\x2a\xeb\x60\x92\x3a\x09\x48\x07\x87\x4c\xa2\x85\xa8\x3f\xb1\x2e\x74\xa2\x62\x2c\x75\x24\xba\xcd\xb2\xa2\x74\xb2\xbb\x4d\x1a\x01\x86\x80\x1c\x12\xa0\x5d\x3a\xae\x88\x47\x8b\x34\x48\x2e\x7e\xf3\x73\x31\x8e\xb7\x69\x19\x48\xaf\x93\x75\xad\x9f\xde\x41\xcf\xcf\x77\xb6\x5e\xe5\x6f\xc6\x4d\x09\xdf\xb3\xe7\xe2\xa2\xcc\x8a\xfa\xf9\x12\x2f\x1e\x3d\x44\x8b\x14\x03\xf0\xcf\x9b\xe5\x1a\x39\xc0\x76\x14\x0f\x76\x6f\x09\x3c\x46\xc7\x08\x49\xd1\xef\x16\x4f\x1b\xcb\xc9\xd4\xb5\x4b\xc0\x8a\xe3\x4d\x79\x00\x2c\x06\x99\xd8\xf8\x5c\x57\xf0\x30\x0c\x77\x5f\xbe\xac\x91\x6f\x65\x3a\xfd\xe3\xf6\x37\x6d\x78\x82\x6c\xd2\x22\xcf\x33\x18\xb3\x52\x69\x13\x27\x88\xe8\x95\xa2\x78\x45\x15\xac\x3e\x5f\xd1\xe0\x37\x82\x17\x85\x54\xc9\x85\xa7\x6b\x6b\xd1\x8f\xda\xd3\x14\x8b\xd9\x0e\xe2\x15\xb7\xae\x6c\x8c\xd7\x04\x16\x32\x8c\x74\x59\x1c\xe9\xcd\xa5\x16\x0a\x18\x44\x68\xe3\xac\x41\x6f\xca\x8f\xdf\x45\xf1\x0a\x50\x07\xcc\x95\x21\x00\xb7\x72\x0e\xf2\x84\x16\xad\x5e\x65\x1f\x30\x24\xb1\x0d\x3c\xf0\x19\xb1\x9d\xbf\x66\x79\xde\x93\x84\x70\xb9\x69\x08\xbc\x38\xea\x47\x08\x49\x6d\xa3\xd2\x8b\x71\x02\x06\x02\x1e\x60\x4d\x83\xda\x97\x65\x0d\x54\xc2\x3c\x7a\x58\x00\xd2\x04\x68\x1b\x14\x04\x9a\xcc\x46\xbc\x91\x10\x7a\x1a\x99\x13\x5e\x54\xad\xc6\x4d\x09\x10\x4b\x13\x1e\xdd\xe3\x46\xe3\x2b\x6b\xef\x61\xf2\xcc\x9d\x34\xc5\xb8\xfe\x0a\x22\x9f\x54\x3f\x5e\xa0\x59\x9d\xe4\xaf\x70\x9e\x9f\x91\xb2\xb0\xef\x62\x41\x94\xc4\x18\xd5\x42\xc8\x6d\x51\x76\xd7\x4a\xcf\xbb\x90\x28\x90\x93\xb1\x2a\xbb\xe2\x53\x88\x79\x84\x14\xb7\xdf\xca\x1c\xdc\x8a\x86\x24\xa6\x82\xb1\x2e\x14\xf8\x83\x8f\x41\x5c\x20\x21\x44\xee\x96\xcd\xf7\xd9\xda\x01\xf0\x40\x79\x92\x2a\xd4\xeb\xc5\xa9\xca\x4a\x57\x27\xec\x5a\x65\x6c\xe8\x70\x74\x56\x3c\xa6\x5b\xbe\x86\x84\x80\x8e\x53\xfc\x02\x7b\x51\xef\xb3\x43\xd9\x94\xc3\xc8\x41\x72\x0d\x13\x1d\x9b\x5a\xa0\x35\x49\x46\xbc\xc0\x45\x99\xbf\x8f\x67\x06\xe0\x01\x46\x7a\x16\xd5\xf9\xd8\x38\x96\x89\xba\x6b\xd5\x42\x12\xac\x50\x5c\x40\x38\x60\x82\xd8\xeb\x40\x81\x1d\xa5\x1d\xf3\x5c\x73\x9c\xb8\x32\xf6\xe5\xc7\x31\x2f\x2b\xe8\xe3\x31\xa8\x93\xf1\xfc\xc8\x23\x42\xcc\x0c\xab\x65\xba\xf8\x45\x9f\xa7\x6b\x70\x6e\x19\x2f\x88\xf0\x14\xda\xc9\xd3\xd9\xf1\x85\x6f\xb7\x3f\xff\x19\x2e\xd0\x78\x82\x63\xa0\x49\x41\x36\x9a\x8f\x86\x79\xc2\xca\x4e\xbe\x95\xaf\x30\x6b\x5c\x20\x65\xfc\x75\xfa\x61\x42\x77\x29\x17\x1e\x77\x13\xb4\x82\x9f\x20\x8e\x65\x71\x23\x0e\xe2\x05\xda\x9d\x06\xa7\xd0\x9d\x1e\x3f\xcf\x57\x18\x0d\x3b\x10\xef\xf5\x2d\x95\x14\x5b\x16\x96\x5f\xba\x4e\x1a\xd1\xff\x42\xeb\x2e\xe5\x7b\x4d\x3e\xef\x3a\xa7\x5a\x90\xa0\x8b\xbd\xc9\xa4\x6f\x6f\x78\xaa\x49\x73\x96\x2a\x89\x5a\xf7\xdd\xa6\x5f\xef\x0a\x53\x5a\xed\x1f\xf7\x02\x5c\x84\x9e\xc5\xa7\xe9\x9b\x7a\x44\x06\x6b\x7c\xe6\x63\x84\xe1\xee\x70\x2c\x2b\xe4\x16\x42\x5a\xa8\x2d\xd4\xcd\xcc\xdd\xc1\x0f\x03\x5c\xbd\x59\x51\x43\x65\x2b\x12\x68\xaa\x84\xd3\x84\x6f\xee\xba\x88\x88\xc2\x32\x55\x3e\x74\xd6\x91\xf1\x25\x31\x1d\x9e\xcb\x53\x65\x95\xad\x47\xaf\xa4\x88\x9f\x76\x55\x95\xff\x03\xd5\x6c\x85\x73\x66\x4c\x10\xeb\x80\xf5\x20\x61\x8f\xe2\x00\xf3\xf3\xe2\xe9\x69\xb2\xac\xdd\x84\xdc\x37\x64\xaa\x9f\xaa\x87\x65\xdf\x97\x33\x61\xa0\x30\xba\xb5\xad\x4e\x87\x23\x9e\x99\x5d\x4b\xa4\x10\x26\xb9\xfa\x7d\x35\xbc\xc2\xf2\x55\xd7\xa7\x83\x3b\x17\x93\x0b\x70\xd7\x84\xa0\x11\xec\xfc\xdb\xca\x9d\xa5\x26\xf6\x38\x82\x74\x4e\xb5\x65\xeb\xbd\xd6\xbb\x09\x3c\xd3\x5a\x5a\xe1\xc5\x5a\xaa\x10\x76\x39\x08\x70\x5c\xf2\x42\x26\xe1\x89\xe0\x8e\x4c\xeb\xcf\x53\xd6\x4f\x1a\x99\x54\xfa\x98\xb9\x98\x43\x53\x0d\xd5\x0e\x3f\x4b\x0e\x0e\xdf\x24\x55\x91\x03\x60\x23\x01\xf0\x30\xde\x3c\x1c\xda\x54\x91\x89\xdb\xba\xfa\x64\xb0\xec\xae\x78\xff\x03\xcf\x08\x3f\x4a\x94\x83\x08\x6a\xa8\x70\xd3\x1f\xd9\x6c\xff\xe5\x7f\x0c\x74\x0e\xf1\xef\x69\x77\x87\x88\x19\x62\x42\x41\x01\xf8\x5b\x70\x67\x8a\x51\x21\xc9\xa4\xda\x16\x0c\xa7\x60\xa5\x87\xeb\xa0\xc1\x24\x04\x90\x3f\xb4\x8b\xa9\xa9\x06\x00\x9e\x31\xd7\xd0\xa4\x21\x6e\xb4\x09\x59\xe8\x18\xa3\x9a\x61\xe5\xdc\xf4\x28\x42\xea\xb9\x0c\xf2\x2d\xd2\xd5\x3c\x9d\xfa\x1e\x74\xef\x7b\x19\xab\x65\x28\xac\x5c\xe9\x64\xe0\xd1\x18\xdf\x06\x61\xca\xb2\xb9\x29\x0f\x17\x37\xc3\x18\x43\xcc\x0a\x94\xd5\xb2\x9e\xe8\xd4\xe7\x62\x9e\xc7\x03\x74\x5a\xc5\xe1\x6e\x0d\x42\x9f\x27\xb7\x1f\xe6\x79\x49\xa8\x4d\xe7\x62\x4e\x9a\x57\xcc\xf3\x52\x0f\x03\x63\x14\x09\x73\x1e\xf0\xb7\xaa\x7c\x6f\xf6\x8b\x12\x8c\xc9\x54\x06\x7d\x59\xd5\x80\x79\x2c\x4c\x10\x00\xfe\x33\x2b\xea\x7a\x2f\xaa\xd1\xeb\x71\x69\xc2\x31\xf2\x7c\x18\xb7\x77\x80\xa8\x76\xbe\x44\x7f\x8c\xa0\x42\x53\x9b\x24\xf3\xb8\x09\xd0\x63\x38\x4c\xa2\xef\x6c\x27\x9f\x49\x34\x1e\x1e\x4f\xcd\x5f\xcb\xa2\x7d\xee\xf4\xd6\xcc\x3c\x9f\x87\x88\x17\x74\xd0\x93\xd6\x69\xfa\xe4\x9e\x51\xe4\xc0\x0a\x4d\xee\x50\x94\x57\x35\x2f\xa3\x6b\x54\x80\xf8\x07\xb4\x19\xbf\x43\x7e\x74\xa7\x34\xf3\x82\xd0\x17\x94\x62\xac\xde\xa0\x5a\x16\x54\xed\x71\x22\xf8\xfb\x27\xa9\xde\x4f\x8e\xd0\xde\x91\xc7\xbc\x40\x1b\x4e\xaa\x04\x95\xb6\x45\x76\xee\x91\xa1\x17\x60\xa8\x61\x8d\xfc\x4f\x23\x05\x05\xf7\x4d\x43\xee\xe1\xca\xb4\x89\x46\x9b\x8c\xbb\x54\x88\x33\x2f\x04\x52\xc0\xaa\xe0\x20\xaa\x57\xe6\xfe\x1c\x31\xe5\x59\x2c\x97\x2d\xb1\x1d\x09\x8c\xff\x4d\x50\xcf\xdd\x26\x88\xc0\xa2\x2e\x9e\x0b\xf4\xfb\x3b\x88\x54\xff\x06\xac\xeb\x9f\x08\xac\x05\xb1\x82\xff\x28\x0c\x64\x9b\x12\x4f\x19\x1b\x21\xb8\xbf\xff\x41\x91\xea\xd8\x35\xa6\x21\x41\xbe\xde\xca\x06\x6e\xcb\xea\x39\x6f\xb2\x83\x68\xc0\x52\x47\xf6\xb8\x6e\xbb\x27\xa5\x51\x82\x74\x86\x0f\xe2\x7f\xf7\xa2\x6e\x1e\xcb\xa6\x63\xcf\x64\x5e\x1a\x93\x5e\xfa\x7d\xf9\x62\xa1\x5d\x9f\x4c\xa3\x54\xc4\x48\x67\xba\x80\xaa\x69\x32\x73\xbe\x18\xd5\x5f\xc1\x30\x98\x27\x18\xe9\xfb\xa1\xa2\x7a\x71\x9d\x70\xc1\x1e\x92\x5d\x36\x8e\x53\x91\x35\x67\xe4\xa5\x19\x75\x8b\x62\xdf\x32\x37\xce\xac\x6e\x44\xbb\x7f\x3b\xab\xb2\xed\x90\xc8\x70\x98\xfc\x5e\x88\x3c\x97\x42\xbd\x8e\x93\xe0\xee\x0a\x05\x94\x25\x7c\xda\xcc\xa1\xd9\xe4\x65\x73\xb9\x99\x89\xd0\xc1\x43\x14\xa9\xdd\xc5\xc6\x32\xab\xa3\x5f\x2a\x99\x16\x3d\xf5\x5e\x84\x1a\xf5\x64\x81\xda\x1e\x26\x90\xe8\xf0\xe7\xe5\x49\x3f\x94\x65\x2e\xf6\xae\x49\xf1\xc8\x73\x72\x68\xdf\x90\x53\x08\x49\xc5\x7a\xb2\x1e\x6d\xa7\x20\x46\x2e\x75\x29\x47\x3f\x44\x25\x9e\x47\xa4\x13\xcd\x1a\x54\xf6\x06\xe3\x2d\x4d\x25\xbe\xf0\x5d\xf1\x16\x31\x2d\xb5\xff\x57\x9e\xce\xe3\x3b\x49\x85\x20\xd4\xdf\x45\x79\x9d\x86\x60\x9e\x16\x1c\xa1\x54\xf5\xa9\x7a\x83\xf3\xb2\xd0\xb3\xc6\xbd\x9c\x96\x42\xdb\x68\x8e\x18\xee\xfa\x5f\xf2\x0d\x30\x4f\x2b\x15\x58\x2b\x62\x03\xa0\xf1\x50\x9e\xf2\xc9\x99\x07\x5e\x88\xb5\xf6\x52\xc3\x1b\x22\xb2\x3e\x99\xab\x10\x4b\xbc\xe3\x16\x83\xd9\x97\x1d\x00\x12\x9f\xb2\xb1\x7b\x50\xaf\xb3\x42\x5b\x6d\xca\xc9\x5c\x3a\x63\x5e\x00\x68\x54\x7c\xcb\x4b\x29\x72\x97\x8a\x1e\x21\xae\x87\xbf\x85\x79\xb1\x44\x07\x18\xd9\xa7\x37\xa7\x43\x4f\xe3\xbc\x6d\x15\x01\x56\xb8\xbe\x39\x50\x9c\xc5\x51\x8c\xee\x61\x25\x95\x85\x6e\x3d\xec\xac\xab\x1d\x60\x8c\xc7\xbe\x76\x1c\x77\x1d\x8d\xcd\x4c\x6b\x32\x66\x32\x7b\xca\xb9\x08\x26\xe3\x89\xbb\x2e\x25\x9a\x8b\xba\xa9\x16\x58\x0f\x3b\xc9\x73\xe8\x3a\xcb\xd8\x90\xac\xd0\xf9\x1b\xd5\x17\x53\xc0\xb9\xff\x43\x38\x90\xca\xd2\xa6\xb4\x49\x09\x17\x55\x73\x71\x92\x0d\x4c\x54\x71\x38\x5b\x83\x31\xdf\xe3\x58\x62\x68\x3e\x3e\x5e\x33\x55\xa2\x06\xe0\xc5\xba\x65\xcc\xd7\x24\x6d\x43\x4e\xf6\x37\x28\x3c\x5b\xfc\xd7\xec\x6f\x8a\xa1\xcf\xc7\x58\xc4\x04\x06\x50\x7e\x1b\xdb\x52\x83\x9f\x15\xf9\x54\x4e\xa6\x61\x10\x15\x66\x2c\xd2\xc6\x15\x22\x3c\x40\x23\x5a\xa7\x72\x48\xf5\x3f\x9c\x15\xb1\x1f\x3a\x95\x53\xbb\x2d\x7c\x43\x41\xeb\xe1\x37\x8c\xd3\x88\x90\x0e\x36\xf6\x86\xe3\x72\xea\x25\xd2\x19\x4b\x94\x54\x69\x2f\xaa\x32\x08\x4c\x4e\xce\x6b\x96\xf2\xd8\x96\x30\x0e\x0c\xa2\xab\x84\x88\x8d\x29\x30\x96\xfa\x0a\xe9\xef\x31\x86\xb1\xca\xc5\x19\x29\x7a\x06\xe3\x22\x18\x55\x16\xb7\xbb\xe6\xd1\x4a\x21\x5c\x18\x2a\xfb\x26\x62\xdb\x57\xa0\x29\x31\xcf\x1a\x55\x66\xc5\xf2\xdc\xfd\x18\xe1\x53\x52\xc5\x94\xd5\x80\xa5\x73\xf2\xac\x64\x22\xe0\x48\xbe\xb1\x28\x0b\xd8\x3a\x85\x47\xfc\x7b\xca\x5d\x5d\xfb\xe9\xf0\x64\xee\xcb\xa6\x81\xea\xec\x90\x9f\xae\x17\x84\x91\x25\xbb\xdc\xe4\xe5\x8b\x28\x86\xbb\x85\xed\x25\x3d\x0f\x0d\x24\xcb\xac\xd5\x5d\x2d\xa3\x10\x2c\x96\x6d\x55\x95\x47\xa8\x9a\x73\x7b\x2a\x5a\xe6\xbc\xd3\x35\xe3\x25\x63\x2a\x00\x8a\x6c\xa3\xea\xcb\x2d\xc0\x6d\x25\xd4\x15\xfa\x9e\x31\xa5\xe2\xb4\x2f\xc8\x45\x14\x72\x48\xf3\xff\xff\x93\x18\x64\x4c\xfb\x1e\xda\x42\x0f\x62\x2f\x72\xd1\xdb\xc1\x98\x8e\x00\xf3\xe0\xcf\x9b\x9b\xae\x18\x99\x31\xad\x35\x1a\xe5\xdb\xea\x04\x3f\xe0\x45\x14\xed\x25\x2e\x29\x65\xfb\x40\x44\xc2\x3d\xe8\x1e\x3d\xc9\xff\xb9\xbf\x9b\x94\x70\x51\x5d\x4d\x20\x0e\xf6\x27\xdb\x9b\x51\x0a\xe3\x6f\x76\x02\x6c\x4a\xe3\xbe\x1d\xf7\x7c\x8e\xf9\x9b\x76\x18\x9f\x0c\x26\x68\xd6\x94\xa8\xed\x7a\x08\x8e\x22\xf5\xad\x1f\xf2\x28\x8e\xaf\x9d\x97\xdb\x36\x25\x18\xf2\x5b\x55\x70\x14\x15\xac\xcb\x3c\xa7\xcc\xcc\xe4\x3a\xe0\x9e\x54\x58\xbd\x8d\x38\xa2\x35\xa8\xf2\x0d\xaa\x45\x99\xe7\xa2\x81\x4a\xe4\x4f\xc5\x1c\xf6\x22\x37\x97\x14\xd3\x24\xc6\x90\x71\x16\x0a\xc4\x24\x3c\xc2\xfb\x33\x79\x6d\x0f\x94\xc1\x1a\x75\x93\x29\x66\x63\x36\xf3\x65\xef\x53\x70\x1e\x04\x9e\xad\x7f\xda\x1d\x73\x51\x40\x5f\xaa\xbf\x6d\x0f\x25\x06\x90\xa5\x4b\x8d\x6d\xd4\x1e\xf2\x3c\x2b\x5e\xd6\xfd\x64\xf5\xe8\xa7\xf1\x84\xa3\x6b\x22\xb4\xc6\x6d\x77\xaa\x2e\xb2\xed\x95\x78\x17\xd0\xc4\x27\x10\x84\xde\xca\xe5\xbe\x47\xee\x02\x5d\xb0\x2b\xad\x7d\xe4\xde\xd5\x8f\x0d\xe2\xa8\x73\x78\x43\xc3\x6a\xb4\x9d\x71\x5f\x78\xe2\xc2\x2b\xdd\xdf\xaa\xb9\x2f\x02\x94\x13\xee\xe6\xcf\xc7\x27\x1f\xcd\x57\x12\xd1\x63\x87\x5d\x71\x3a\x10\x5d\x97\xbb\x47\xe0\xf9\xb8\x07\x35\x20\x0e\xdb\xf7\x12\xc3\x30\xab\xfe\x58\x06\x22\x72\xb1\x3f\x82\x48\xf4\x68\xf9\x19\x0f\xb9\xc4\x6c\x1b\x39\xb8\x17\x0a\x92\xeb\x83\x87\x47\x01\xf1\x74\x6e\x97\xbd\x14\x59\xfb\xe7\x44\xda\x4d\x61\xf6\x26\x1a\x51\x5d\xa3\x7d\x19\x8f\x22\xa6\x02\x4b\x97\x37\x3b\x5d\x48\x8a\x46\xb3\x2a\x8a\x02\xeb\x20\x39\x4d\xb9\xe9\xf1\x88\x22\x62\x30\x5c\x94\x07\xca\xb9\x8e\xbd\x24\xf2\xa9\xfe\x1b\xfe\xd1\xfb\x7f\x13\xf9\x8d\xff\x72\xef\x0f\x77\x4b\xcd\xd3\xf6\xd1\xff\x3b\xd5\xcd\xad\xc8\xf2\x35\x41\x03\xdc\xaf\x8c\x03\x4a\x81\x58\x10\x44\xbb\x3d\x61\x46\x07\xea\xf1\xfc\x8a\x43\xaa\x04\x30\x00\x03\x80\x1f\xe3\xb1\x26\x02\x02\x8a\xb2\xdc\x96\x95\xdd\x66\x9c\x3b\xc5\x13\x4e\x42\xaf\x8e\x0b\xe5\xb9\x20\x9a\xdc\xae\x3d\x81\x38\xb2\xc3\xb3\x24\x7e\xb3\x07\x9b\xdf\x77\x5d\xd2\x30\xc2\xdc\xf4\x4b\x39\x17\xea\x75\x5b\xf6\xb0\xa3\x5d\x97\xf6\x36\x84\x23\x98\xe0\xcb\x60\x3c\x4d\x19\x27\x7e\x87\xfa\x24\x6d\xd9\xe9\xbf\x4e\x97\xea\x53\xc6\x53\x41\x34\xc6\x05\xbc\xdf\xa9\x72\x72\x49\xfe\xd3\x7f\xdd\x1d\xad\xdd\x86\x68\xaa\xa2\x18\x65\xc2\xdb\xf6\x04\xb4\xf5\x3f\x11\x33\xb1\xbd\xb0\x06\x75\xbf\x4b\xc7\xb8\x1b\xdb\x32\xb8\x0d\x7c\xa1\x24\xf7\xa9\x6c\x75\xc0\xb8\x08\x05\x69\x25\x0f\xb5\x50\x5d\x6b\x2c\x81\x58\x8f\xf6\xed\x7a\x76\x7f\x96\x1c\xf0\xcf\xa6\xac\x5e\x1f\xba\xbf\x2a\x4f\xe2\x5c\x70\x7c\xb3\x9f\x15\x5e\x8f\xde\x40\x79\xca\x49\x1f\xfc\x1c\x51\x0e\x33\xae\x62\x8d\x51\xcd\xdb\xa7\xe7\xc7\x9b\xe5\x7a\xf7\x73\x76\xbf\xdc\x76\x0f\x94\x0a\xa1\x0e\x48\x52\x58\x5f\x53\x03\x30\x0e\x09\x47\x8d\x91\x7b\xc2\x2f\x61\x59\x85\x6b\x52\x69\x70\xc9\x6b\x52\xdc\xb1\x2c\xf3\xc9\x38\x14\x07\x4d\x2a\x14\x35\x34\x37\xb3\xa7\x59\xa1\x89\x91\x2a\x7b\xf9\x64\x69\x03\x00\x65\x17\x0a\xa1\xd0\x7a\x18\xfd\x2c\x93\xf8\xd2\x62\x85\xad\xaf\x58\x56\xcf\x85\x2c\x91\xf7\xe5\xfe\x33\xda\x48\xe6\x7b\x9e\xb6\x12\xc0\xaa\x2c\x34\x9d\x9d\x1d\xbe\x9a\xf9\x5e\x60\x04\x15\x60\x0c\xf4\x11\x98\xcf\x3c\xcf\xc5\x1c\xee\xc1\x34\xed\x31\xf8\x13\xb2\xe1\x8f\xf4\x59\x4c\x74\x89\x3b\x82\xd4\x3e\xd7\x50\x2d\xb2\x4f\xa8\x5d\x18\x52\xbb\xa3\x8b\x02\x55\x66\xce\x3f\x87\xf4\x37\xe3\x7f\x7b\xb8\x48\x8a\x95\x4e\x86\xbe\x7c\x1e\x45\xa4\x6d\x50\x20\xdd\x80\xdb\x4b\x7c\x2e\x69\x07\xec\xc0\xb1\xeb\xd9\xf3\xc6\x35\xfa\x10\xa3\x36\xcd\xb7\x8f\xc5\x85\x94\x77\xf4\x01\xfd\x20\xf1\x88\xba\x5a\x34\xb0\xca\x45\xf1\x64\xa8\x66\x79\xfa\x70\xf5\x83\x34\x35\xac\x3b\xc6\xfa\xf4\x86\xcc\x0f\x44\xca\x45\x2f\x98\xef\xb0\x14\x9f\xb1\xc3\x0c\xbc\x0b\x3f\x0c\x88\x64\xab\x3d\x1a\x9a\xf2\x70\x57\xcf\x4f\xe7\x31\xac\xc4\x76\x8d\xd2\x54\x43\x0f\xc9\xf3\x38\xad\x1d\xde\xf6\x14\xc2\x0f\x2d\xbd\x56\x57\x6d\xcb\xfc\x24\x11\xd0\xb1\xc2\xf5\xf2\x96\x9f\xc3\x7d\xda\x6b\x48\x4a\xf3\xa6\xcc\xfb\xf0\x4b\xe6\xa7\x21\x60\xac\x49\xbf\x7c\x0c\x83\x0d\x7e\x9a\x48\x8c\x35\x03\xba\x98\xbd\x33\xc0\x4f\x53\x2e\x2f\x45\xce\x3f\x45\x55\x89\xa2\x39\x8f\xde\xe2\x1f\x45\xcd\x7c\x11\x9b\x54\x10\x36\x65\xff\x38\x08\x96\xf8\x42\x06\x18\x4e\xd9\x55\x14\xca\xbb\xfc\x5d\x21\xbc\xf5\x90\x15\xbb\xba\xb5\x14\x06\x66\x97\x2f\x85\x8a\x7b\xa4\x31\x59\x27\x6a\xc5\x7c\x29\xa9\xba\xd2\xd5\x3a\x0c\xfd\x86\x7f\x0d\x13\xb2\xcc\x97\x2a\x01\x42\xde\xc9\x1c\x6e\x60\x8d\x80\x49\xb5\x47\xf1\xa9\x9d\xcf\xb9\xbb\xad\x8a\x34\x73\x02\xde\x74\x0b\x24\x38\x9f\x4a\x02\x31\x5f\xb7\x7e\xdf\x25\x48\x64\xf7\xf9\xe1\x3e\xe2\xeb\x98\xea\x9d\xdb\x73\xa2\x3d\xf5\xb6\xf7\xbf\x1f\xa1\xba\x18\xfc\xbe\x4e\x15\x82\xb9\x11\x32\xb1\xbd\x7b\x58\x76\x0d\x8a\xb0\x50\x4e\xad\xdc\x10\x57\xd4\x78\xdd\x80\xcf\x70\x6c\x5b\xe7\x2b\x6b\x84\xbb\x1a\x02\x81\x70\x8c\x6e\x41\xe2\x04\xed\x89\xd1\xb9\x7e\xa9\x87\xa7\xef\xf1\xd4\xd8\x10\xdc\xb8\x9d\xa3\x3e\x44\x59\xc0\x43\x96\xe7\x5d\xf6\x8f\xf9\xa0\x79\x4a\xb8\xe9\x17\x0a\x7d\x5c\x21\x35\x98\x6f\x42\x4f\x0b\x5b\x33\x4e\x6f\xbd\x2d\x2f\xfc\xb2\x53\x89\x11\xe6\x9b\x58\x63\xb2\x69\xb3\x5c\x3c\x3d\xde\x6c\x76\xf3\xe5\xf6\xe7\x72\xf9\xb8\x5b\xb7\x07\x8c\xdb\x53\x02\x2f\xf4\x25\x9a\xe4\x50\x37\x3b\xa1\x5b\x33\x09\x3f\xa6\x29\xab\x5f\xba\x5c\x4f\xb7\x52\x03\x2f\x0d\xa8\x40\xe3\x24\xf3\xac\xde\xbb\xe8\xc0\x30\x0b\xca\x6c\x67\x26\x18\xfa\x6c\x48\x90\x97\xc3\xa1\xfb\xcd\x01\x37\x81\x2d\xd2\x7d\x39\x15\xba\x74\xcb\x28\xf0\x19\x47\x4d\x59\x7d\xaa\x9b\xa6\xac\x90\x72\xff\xe8\xc8\xe9\xdb\xe6\xd4\x4b\x9c\xa6\x03\xa2\xb5\x26\x0f\xb1\xc0\x0f\x7c\xfc\xe4\x65\x01\xda\x09\x92\xb0\x20\x08\x0d\x22\x8b\x55\xa0\xba\x3f\x45\x80\xc8\x05\x89\xfa\xde\xf5\x0c\x8b\x26\x08\x8b\x77\x03\x5d\x90\x29\x08\x85\xa0\x8a\xdf\x76\x55\x3f\x9c\x9b\x3d\x7c\x7c\xae\xf2\x1a\xb0\x20\x62\x52\xd8\xfe\x0a\x88\x99\x08\x0b\x3f\x7a\xbc\x23\x2c\x88\x2c\x1d\x1b\x49\xab\xf4\x4b\x87\x59\xfb\x5a\x4e\x4d\x74\x71\xaa\x88\xf7\xff\xb2\x6a\x83\xd8\x8b\x3c\xe1\x80\x3b\x68\xcf\x3a\xad\xa8\xf1\xba\x09\x62\x8f\xa4\x73\xa9\x40\xcb\x11\x66\xba\x46\x60\x78\x0e\xd2\xc9\xf6\x74\x6c\x1d\xf8\xd6\x34\xa0\x68\xff\x78\x54\x63\x63\xd0\xd3\x95\x59\x63\xde\x75\x7f\xcb\x0c\x12\xe6\x63\x38\xe0\x36\x7b\xd9\x5f\xb3\x03\xd0\x39\xd8\x79\x1c\x41\x9a\x86\xb8\x5d\x39\xff\x68\x8d\xb5\x95\x5f\xd3\x93\xb2\x40\x06\xa9\xcb\xac\xb6\x5e\xcd\xfd\xd3\x76\xf4\x7e\x32\xa6\x68\xab\xa5\x7b\x33\xe6\xef\x8c\x57\x77\x5d\x12\x22\x33\x53\x56\xaf\x90\x07\x7f\x34\x82\x52\x6a\x7c\xae\xa6\x6a\x24\x4a\x45\x4f\xbf\xa2\xe2\x02\x89\x66\x68\xfc\xbe\x8b\x42\xe7\xd3\x64\xf9\x2c\x50\x7e\x1c\xf7\x0a\x87\x45\x0e\xd7\x15\x9e\x2c\x50\x96\x0a\xe7\x20\x3e\x68\x82\x58\xbe\x73\xd7\x0c\x02\x4b\x97\x9d\xe8\xfc\x4c\xeb\xab\x9d\x29\xd0\x71\x82\xc0\x94\x9b\xe5\xe2\xee\x61\x76\xbf\xfb\xbf\xe5\xfa\xa9\x5b\xfe\x5a\x7a\x98\x33\xbf\x2f\xeb\xe1\x8f\x4a\x3e\x2d\x52\x9c\x1e\x44\x2d\x13\xf4\xb3\x88\x41\xa1\xac\xfa\xa4\x92\xb6\x0b\x70\xc0\x2e\xef\x22\x7f\xdd\x96\xa8\x5f\x30\x28\x8b\x74\xdd\x80\x61\x79\x5c\xaf\x88\x91\x25\xed\x9e\xba\xb3\xfd\xec\xbb\x87\x1e\x8b\x4c\x30\xe0\x53\xe9\x63\xb4\x58\xe8\x99\xc0\x99\xb2\x9b\x73\xbb\xb6\x87\xf3\x25\x64\x69\x60\x88\x58\x8e\x90\xd1\x3b\x2c\x3a\x1b\x85\x3a\x42\xce\x21\xb0\xa9\x98\xef\xd9\xcb\xfe\xa7\x18\xe3\x79\x59\xc8\x83\xc0\xf7\x6d\xc9\xc2\xaf\x59\x5d\xcf\xb7\x8b\xd6\x91\x74\x99\x96\xcf\xa8\x12\xed\xd5\xbe\x97\x7a\xd0\x55\x21\x89\xb7\xb2\x5a\xd6\xaa\xba\xd4\x5f\x4d\x0f\x78\xe8\xfb\xd2\xf9\xff\xad\x61\x6c\xb5\x56\x5c\xa3\x8e\x42\xab\x1b\x72\xaa\x60\x35\x42\xac\xb7\xed\xb1\xdd\x20\x5d\x68\xe0\x4a\x8a\x78\x38\x5f\xc3\xd6\x0e\x1e\xf1\x42\x3e\x66\xc5\xff\xc4\xf4\xe1\x13\x06\x02\x34\x7c\x9a\xa7\x1e\x75\x0e\x99\x87\x49\x6d\xfb\xd7\x55\xd5\xf7\x6b\xc3\x30\x10\x18\x01\xcd\xea\xfa\x34\x8a\x73\x87\x61\xe8\x68\xcb\xca\x0a\xae\xeb\x53\x58\x18\x71\x88\xd2\x0e\x18\xf3\x58\x6a\x20\xa5\xb7\xd1\xa4\xfe\x2f\xff\xe3\xbf\xe1\x1f\xee\x9a\x28\xc4\x40\xf5\xbb\x3b\x60\x27\x0f\x99\x30\x32\x5a\x5e\xca\xd9\x51\x17\x62\xf8\x72\x89\xaf\x90\x1b\x60\xe7\x40\xab\x95\x46\x84\xee\xe5\xd4\x9a\x1e\x8e\x24\xf4\x22\x2b\xd7\xe9\xa4\xd3\x07\x44\x41\x6d\x0f\x61\xc9\xd2\x09\xde\xbd\xb8\xa2\xab\x67\x61\x62\x0d\x26\xa1\x35\x61\xa5\x28\xdd\xff\x5f\x16\x47\x7f\xf4\x56\x78\xe2\xba\x6b\xe2\xf4\x6d\x3f\x17\x8a\x44\x5f\x8e\x89\x30\x0d\x0d\xa6\x83\x67\xf7\xf7\x4f\x8b\x9d\xd3\x84\xed\x5a\x63\xc6\xed\x61\x84\x5f\x60\xd9\xec\x1d\x7a\xfe\x33\x46\x1d\x7b\xa5\xf0\x34\x16\xf8\xef\x8e\x95\x23\x45\x20\xf7\xf4\xaa\x66\x7e\x38\xb0\x52\x51\x45\xe7\xf7\xc5\x6a\xdb\x3f\x86\x42\xa9\x7d\xd2\x8e\xa8\xe0\x58\x56\x0d\x19\x30\x83\x47\xaa\x98\xd8\x89\xc5\xa9\x29\xd7\x50\x34\xf3\x73\xeb\x9b\x4c\xfb\x46\xa1\xd6\x31\xe6\x96\x0a\x78\x5f\xa3\x34\x06\x19\xb1\x03\xd3\x78\x74\x09\x80\xc0\xb2\xef\xb7\xd6\xab\xeb\x68\x5e\x59\x08\xc6\xc7\x54\xcb\x3b\x64\x17\xa6\xc1\xf6\xcf\xe4\x50\x20\x8a\xfb\x6b\xa5\xad\x2f\x42\x1b\xa1\x61\x54\x52\x99\x23\xe2\x68\x8c\x29\x66\xa1\x09\x62\x4c\x2e\x68\x50\xa5\x06\x74\x1b\x5b\x9f\x77\x04\x97\x63\xa1\x49\x83\xd4\x82\xec\x2d\x68\xc4\x59\xf4\xa1\x11\x9a\xb9\x6a\xe0\x5d\xb3\xaf\x00\x2c\xb9\xe8\xf2\xcf\xbb\xce\x6e\x09\x8d\xa1\x4d\x49\xe5\xe5\x05\xb2\xdb\xcf\x41\x44\xcc\x4b\x30\xc7\xbf\x5c\xaf\xef\x7b\xa1\xe3\x88\xb3\x08\xe3\x17\x5a\x94\xdd\x9f\x7c\xe2\x95\x5b\x88\xc3\x51\x64\x2f\xc5\x67\xe5\x20\x9f\x8a\x6a\xf5\xbf\x7c\xe4\x0b\x23\xa3\x2b\xa2\xfa\x64\xfb\xbd\x63\xa9\x67\x91\x2f\x43\x61\x39\x1a\x9f\xeb\x1e\x9d\x26\x8b\xda\x0d\x53\x93\x9b\xbc\x2a\x5f\x5b\x53\x16\x45\x10\x29\x78\x7d\xdf\xab\x84\x1d\x7e\x99\x28\xe4\x69\x28\x1c\x5f\xeb\xc7\xea\xb2\xa2\xef\xf4\x85\x44\xec\x6f\x30\x21\xf6\x56\x91\x97\x20\xf8\xd6\x86\x71\xe0\x70\xcc\xbf\xa2\x50\x99\x48\xf8\x45\x91\x62\xc6\x06\xa0\x96\x39\xbc\x5d\xd0\x56\x83\xbd\x20\x8a\x40\x20\x2c\xee\x2f\x10\x75\x23\x74\x4d\x5a\x3e\xce\x48\x8f\xe2\xc8\x58\xc4\xd5\x53\xf5\x22\x8a\xec\xaf\xf1\xae\x1b\xc5\x8a\x1b\x7b\xf2\xda\xf0\xc6\xdf\x7d\xb2\xe1\xf5\x49\xc8\x84\x9b\x6c\x44\x5c\xf7\x9f\x13\x54\xe7\x09\xfa\x2f\x16\x25\x11\xc3\xe8\xeb\x5b\x99\x9f\x0e\x24\x76\x3a\x9c\xd5\x51\xa2\x21\x8c\x6d\x28\x1d\x53\xe4\x9f\xd0\xc6\xdb\xee\x69\x44\xba\x58\xae\xfa\x72\x49\xf2\xa5\x9f\x99\x43\x5f\x11\xaa\xd9\x3b\x0a\x26\x23\xc2\xb5\xfc\x79\x72\xe0\x37\x16\x09\x88\xa3\xe4\x42\xe7\x30\x91\xf6\x8e\xa4\x22\x61\x07\x7b\xc4\x1c\xf3\xac\xe9\xe5\x62\xfe\xfb\xc7\x70\x24\x94\xa7\xfd\xc4\xa1\xd5\xd6\xd0\x54\x19\xbc\xf5\xf8\xd6\x0a\xd3\x85\x93\x23\xe5\x1b\x04\xf8\x42\x9e\xbd\x64\x57\x50\xae\xd1\xeb\xab\xc8\x4f\x1c\x96\x95\x72\xe5\x0f\x70\x28\xab\xb3\xcf\xe6\xed\x18\x74\xf7\x4c\x68\x57\x96\x70\x2e\x1d\x9f\x12\x8b\x54\x1a\xf1\x9e\xc2\x37\x45\xc6\xa7\xbe\x92\x52\x1a\xf1\xbd\x79\x6b\x06\x77\xf4\xbf\x2c\x52\x86\x0a\x11\x9f\xef\x17\x5f\xa4\x0e\x22\x2d\x62\xbc\x9c\xea\xc5\x9f\x37\x37\x8b\xe5\xe3\x76\xb7\x5a\xdf\x2d\xba\xd5\xad\x55\x1c\x59\x39\xd6\xed\x3e\xab\x34\x39\x66\x28\x6d\xd6\x88\xc3\xb1\xeb\x66\x48\xc4\x4b\xe5\x20\x8a\xd3\xf1\x79\x7d\xdf\xfd\x44\x08\x49\x4a\xad\x86\xc6\x81\x8b\x86\x6f\x01\x91\x46\x87\xca\xa6\x13\x5c\x49\x91\x6b\x8d\x3d\xfc\x9c\x79\x56\xbc\x6e\x4b\x4a\xac\xfd\x1c\x14\xf0\x8d\xd6\x81\xe1\x44\x7e\x58\x23\x47\xd6\x3c\xfb\xba\x3a\x90\x45\x26\x0c\x88\x84\xc9\x91\xde\x4e\x5a\x2e\xb1\x97\xc6\x41\xd2\x23\xff\xb9\xa9\xca\xc2\xed\x74\xb1\x27\x02\x2b\x88\x79\xa9\x09\xf6\x83\x41\x90\x35\xf6\x80\xe4\x6e\x1e\xb2\x22\x7b\x40\xc2\xa3\x2b\xe8\x53\xd7\x13\x3c\x4a\xcf\x23\x45\xc7\xe0\x75\x63\xe6\x0b\x0c\x26\xe8\xac\x02\x45\x0c\x15\x33\x62\xa8\x73\x2f\xc3\x12\x2f\x6a\x47\x6c\x9f\x35\x97\xe2\xf4\x55\x05\xaa\xa3\x18\x61\x31\x4f\x09\x01\x84\x00\x50\x72\xcb\xfb\x12\x8c\x2e\x76\x15\x73\xed\x25\x9e\xf3\x50\x06\xc8\x02\xdb\xc1\xf7\x0d\x86\xc9\x4c\xd9\x67\xd1\x64\xb1\x2f\x59\x62\x3d\x80\x9f\x90\x4d\x80\xa6\x62\x5f\x71\xbc\x72\xbd\x5c\xde\x0e\x2f\x35\x46\x2a\x67\xa4\x7f\x96\xe0\x8c\x83\x40\xeb\x80\x52\x4b\x54\xfc\xe1\xfe\x2e\x52\xcc\x1f\x5b\x46\x8a\x6b\x84\xcd\xb4\x11\x12\x07\x86\x21\x7d\x0d\xad\x85\xf5\x6c\xeb\x96\x40\x1c\x4a\x2a\x43\xba\xc4\x91\xfa\x14\xf0\x83\xed\x24\x8e\x3c\x61\x94\xcd\xed\x61\xe6\xb9\xfe\x9e\xb5\x76\xf6\x79\xf4\x89\x23\x9f\xa3\x68\x86\xab\xfe\x68\x1d\xbb\x1e\x65\x7c\xff\x7c\xb9\x3a\xe1\xbe\x9c\xce\x71\xe4\x47\x58\x90\x65\xc5\x53\x37\xd9\x5f\xd0\xfd\x92\x48\x01\xee\x9e\x77\xf5\x34\x47\x30\x8b\x63\xbb\xeb\xd2\x87\xbe\x75\xfa\xc2\x89\x6b\xf6\x03\x0a\xc8\x1d\xa1\xf8\x26\x0e\xb0\xca\xc5\xf9\x71\xe4\xfb\xc7\xb1\x30\x28\x7a\xb9\xbd\x5b\xae\x77\x7c\x37\x7f\xfe\xdd\x95\x61\xb2\x38\x89\x58\x6c\x7a\x44\xbc\xa0\xaf\xb5\x32\x58\x9c\x46\x12\x4d\x2f\xac\xa9\x75\x5a\xec\x93\x41\x56\x77\x41\x4a\x5a\xba\x1a\xc8\xb6\x6f\xcd\x45\x94\xdb\x9c\xc8\xe9\xc5\x82\xa7\x9e\x8d\x13\x11\x5a\xa3\x27\xd4\xc8\x62\x11\x47\x71\x57\xc1\xdf\xd4\xfd\xe8\x53\x2c\x62\x1d\x75\xb8\x2f\x1b\x72\xc5\x48\xde\xf0\x6d\xa4\x1f\xe0\x03\x6e\xca\xf7\x22\x2f\x85\x7e\x38\xd5\x99\xfa\xda\xa1\x8d\x65\x12\x19\x47\x39\x57\xe6\x99\x3a\xdf\x40\x23\xb2\xbc\xb6\x15\x45\x03\x37\x25\x96\x22\x09\x7a\xef\x71\x90\x50\x0d\x38\x1e\x6c\x37\x15\xfb\xc2\x4e\xdc\x6d\x39\xcf\x85\x7a\xbd\x1f\xd3\x8f\xb0\x58\x25\x1a\xef\xb5\x59\xfe\x7a\x25\xed\xc6\x62\x25\xfd\xd0\x77\x64\x08\x37\xa0\xb2\x83\xc8\xbb\xa1\xd2\xa1\x91\x84\x78\x25\xa6\x29\x3a\x1b\xea\x3e\x81\x2b\x8b\x35\x90\x4c\xc4\x21\x2b\x9a\x01\x89\xd1\xf0\xf7\x43\x02\x51\xec\x2a\x81\x0e\x47\x04\xdb\xe8\x2e\xab\xfc\xf5\x94\x07\xc1\xb5\xa2\xb2\xd2\xc6\x94\xd5\x81\xbe\xfa\x48\x50\x9a\xc5\x86\x7b\x78\x28\x7e\x9b\x6d\x17\x5f\x41\xbc\x62\xa3\x09\xb3\x49\x34\x55\xf3\xcc\xe1\x6f\x07\x4f\x4d\xbc\x44\x53\x06\xbb\x35\xee\x29\x27\xb6\x6b\x3f\xd9\x2f\xae\x5d\xc6\xb8\x56\x7e\xfd\xf5\x12\x4e\x4d\x3c\x45\x5a\x2b\x47\xaa\xb0\x1c\x6d\xb7\x89\x67\x22\x04\xa4\x38\x77\x71\x87\xbb\xd1\x66\x67\xf3\x9b\x9b\xdd\x76\x39\x7b\x70\xf7\x62\x51\xc0\x48\x50\xf0\xa5\x12\x6f\x63\x9a\x20\xdb\x89\xa7\x41\x70\xd9\x68\x1e\xe1\x7d\xb1\xfc\x65\xd4\x03\x42\x4c\x4f\x50\x32\xab\xf3\x17\xa6\xa6\x6b\xf2\xdf\x3f\x7a\x2c\x44\x43\x2a\x7e\x96\x70\x23\x82\xc8\xd1\xfa\x9c\x6a\xb8\x2e\x9a\x67\x89\xcf\x38\xa3\x8c\xc4\x07\xf1\xcf\x5f\x04\x82\x58\xe2\x73\x09\x64\x69\x17\x50\x89\x06\xba\xda\x8a\xde\x7e\x1b\xf4\xc9\x44\xdd\x75\x51\x82\x6e\x50\x56\x64\xcd\x26\x7b\x29\x00\x75\xe6\xba\xbb\x1a\x0f\xb3\x4c\x18\x2a\x42\x9d\xc6\x4b\x9c\x24\x09\x7c\x21\x2c\x8f\xc0\xa9\x86\xea\x50\x16\xf0\x49\x46\x33\x09\x52\x02\x82\x2d\x37\xab\x5c\x34\x9d\x65\x9f\x84\x1c\x10\x34\x35\x3f\x0d\x32\x62\x49\x98\xa6\x98\xa1\xd9\x40\x05\x45\xd6\x9c\x91\x96\x2d\xcf\x4b\x75\x21\xbe\x63\x49\x68\x28\x37\x54\x11\xfc\xbe\x53\x2d\x6c\x5b\x34\x82\x2c\xdc\x96\x46\x72\xee\x9f\xbc\x5b\xe4\x0b\x84\xd3\xbe\x65\xaa\x29\xab\x0c\xb0\x98\x87\x0d\x5e\x27\x8a\x7d\x2c\x81\x2d\xe0\x7d\x87\x0c\x14\x3b\x53\x56\xbb\x02\x3e\x9a\xdd\xb1\x27\x03\xc0\x92\x28\x89\x31\xfa\xb3\x10\x79\x3e\x93\x65\x75\x45\x12\x65\xfb\xc5\x82\xa5\x76\x5c\x5f\x60\xdb\x3a\xb7\x3d\x71\x63\x96\x24\x3e\xe9\x28\xbb\x24\x19\x4e\x89\xa5\xa8\xda\x15\xd9\x8d\x5d\xa2\x89\xb2\xd3\x52\x71\x58\xb2\xf9\x9e\xbb\xde\xb1\x92\xbb\x7f\x26\xd6\x6b\x92\xfa\x29\x46\x74\x4d\x96\xe7\xad\xbd\xe7\xfe\x2c\xa2\x04\x6c\x84\x71\x3a\x6a\x94\x08\x20\x6d\x4c\x8c\xe5\x5b\xed\x6e\x3b\x6d\xad\x0a\x53\xbb\x63\x62\xa4\xe8\x41\x0c\x6b\xcc\x58\x22\x15\x87\x0b\x16\x0a\x29\x59\xb2\xe2\x65\xdd\xe5\x13\x2c\xfe\xcf\x85\x56\x13\xa9\x62\xac\xa3\x7e\x11\xf5\x6d\x59\xfd\xfa\xd3\x65\xe1\x12\x15\x6b\x60\x97\x5c\x5e\x8f\x4a\x77\x60\x41\x26\x4a\x78\xca\x82\x55\x9e\x0a\x22\xa8\xfc\xd2\x87\x4a\x94\xf4\x30\x8f\x81\x5a\xd1\x87\xc1\x74\x50\x86\x68\x10\x5b\x3b\xa5\x26\xe8\xff\x14\x49\xb1\xed\xad\xad\x52\xb5\x22\x13\x85\xea\xc3\x6f\xcb\x71\x26\x69\x34\xba\x3a\x0e\x1d\x8c\x01\x99\xbd\x29\x57\xe2\xde\xc0\xb0\x20\x89\x1d\x85\x68\x75\xe8\xa4\x3d\x6f\xab\xf2\xd0\x69\x2b\xb3\xc4\xf8\x02\x95\x4c\x46\x5a\xec\xd7\x93\xa3\x7b\xdb\xd4\x13\xc4\x05\x4d\x3c\x1f\xf8\xb3\xa9\x8c\xa3\x57\x40\xc8\x52\x4f\x11\xf9\x26\x11\x87\xff\xe7\xd4\xfa\xb7\xdd\xd7\xef\xb6\x8f\xd4\x33\x3e\x16\x2d\xaf\x9e\xe7\xf7\x77\x0b\xd4\xae\xba\x16\xa5\x63\x29\xf3\x98\x17\x74\x29\xa3\xcd\xa9\x3e\x42\x7b\x82\xad\xac\x84\xfd\x70\xea\xb4\xbd\x51\x61\xef\x06\x8d\xf2\x39\x0c\x15\x56\xfe\xbf\x04\xcf\xdb\x9b\x19\xc4\x0c\xcc\x67\x9b\x65\xdf\x70\x4d\xb9\xaf\x30\xe2\x89\x0e\xdd\xae\xdd\x11\xba\x96\x30\x05\x2a\x61\x41\x07\x60\x01\x55\x33\x8c\xee\x5e\x25\x2e\x86\xad\xc3\x17\xe0\x11\xc3\x60\xbc\x12\x79\xbe\xdd\x67\xf5\xb6\xbc\xe8\x44\xb1\xd4\xf7\x12\x13\x3b\x32\x5d\x78\xcb\xca\x53\xfd\x88\x54\xdb\xfd\x53\x28\xf5\x65\x82\x81\x61\xfc\xeb\xb6\x7c\xce\x8a\xe6\x97\xeb\x48\x58\xea\x03\xc3\x5c\xe7\x53\x25\x4f\x7d\x62\x2f\x96\x06\x51\x6a\xa0\x9f\x73\x5e\x40\x9e\x5f\x29\xa3\xb0\x34\xf4\x49\x31\x63\x51\x66\xc5\x16\xdc\x69\x9d\x46\x8a\x4e\xf3\xba\x41\xfa\x3f\x24\x47\xb5\xb2\x61\xa3\x80\x5f\x1a\x19\xa1\x91\x43\xea\xf2\x1b\x63\x4b\xaf\x67\x09\xba\x06\x79\xc9\x34\x8e\xc0\xd9\x9b\xe4\x07\x0d\xe7\x42\xa2\x39\x3e\x19\x0d\x24\x3a\x1f\x90\xca\xc3\x35\x43\x1a\xd8\xb0\x10\xa9\x00\x8c\xde\x26\x0d\x42\x44\x95\x2e\x3f\x8e\x59\xbb\x57\x10\x29\xc9\xb8\x93\x96\xc8\x80\x23\xde\xde\x32\xb1\x7b\x2b\x1b\xf1\x57\x56\x16\x99\x7b\x86\xf0\x35\xb8\x22\x95\xe6\xae\x81\x4f\x62\xbb\xa9\x48\x88\xad\xe0\xb7\xd5\xac\xbb\x54\xfa\x0c\x2c\xf3\xc2\x66\x27\x06\x00\x8f\x54\xea\x08\x37\xe6\x47\x91\x55\x65\xe3\xb4\xec\x58\xaa\x80\x63\x29\x2c\x54\x6a\x5b\x3e\x8a\x26\x7b\x83\x79\x95\xe9\x17\xa8\x87\xae\x6c\xaa\xa5\x17\x4b\x67\x11\x94\xa7\xba\xab\x93\x64\x29\x44\xe0\x8a\xeb\xd0\x1f\x7f\x14\x07\xa8\xfb\x80\xfc\x14\xe2\x30\x49\x3b\x84\x36\x56\xa1\x5a\xa3\x7a\xda\xfa\x1b\x47\x01\x4f\x7d\x3a\x32\x77\x4f\x61\xd0\xd4\x7c\xcf\x0a\x2b\xfa\x3f\x1a\x69\x30\x09\x46\x83\xef\xe6\xeb\xc1\xf4\x34\x91\xf0\xa9\x00\xdf\x1a\xc1\x4f\x6f\x9d\x8d\x9c\x1a\x23\x10\xb7\x65\xb2\x63\xbd\xb6\xb8\xa1\xe1\x2c\x11\x5e\x42\xd3\xa0\x47\x4a\x54\x5f\x75\x21\xd4\xc5\xff\x4e\xfa\xa5\x17\x47\xee\x52\xc8\xc2\x93\xa4\xc2\x53\x41\x21\x0e\x23\xa9\xa4\xc1\x89\x2a\x98\x17\xfa\x86\x0a\x3d\xd6\x68\xd9\xde\x8b\xba\x59\xec\x45\x6b\x19\x76\xc9\x59\xd7\x57\x84\x89\xd3\xcb\x78\x2f\xc0\x91\x87\x0c\x86\x45\x30\x1d\x45\xaa\x0f\x66\xad\xb7\xa5\x0b\x27\x8c\xba\xf2\x88\xe0\x0c\xa8\x64\x09\x99\x72\x9e\xbd\xe0\x89\x36\x4e\x2a\xdd\xd6\x96\x8e\x47\x89\xa7\x5c\xba\x4d\x00\xd7\xda\x6c\xfc\x22\x01\x0b\x39\x72\xab\xde\x3d\x2c\x6f\x96\xbf\xb9\x7b\x07\x5c\x8a\x0b\x55\xca\x23\x34\xef\x65\xf5\xba\x28\x8b\x82\xb4\xe7\xa6\x31\x49\xee\xda\x88\xa1\xeb\xb6\xb9\x99\xf5\x3f\xb9\x08\x52\x72\x03\xfb\xac\xe8\x2e\xb8\x35\xba\x43\x1a\xa0\xad\x27\xb0\xe6\xc1\xfd\x51\xf9\x78\xf9\x4e\x9e\xaa\xc2\x6e\x45\x8b\x1c\xc4\x34\x89\x65\xdb\x3f\x94\xa6\x73\xdd\x07\xd1\xc2\x7f\x06\x3c\x15\x21\x23\xc2\x0c\x74\xf6\xbc\x0f\xd9\xa8\x21\x94\x4b\x84\x21\x4b\x4c\x27\xa4\x06\x77\x85\x29\xef\x8a\x1b\x71\x65\x31\x8f\xef\x9b\x2a\x52\x6d\xbf\xf9\xb6\x9d\xaa\x53\x4e\x86\x93\x2f\x94\x3e\x22\x1d\x9c\xe5\xd8\x31\x15\x7c\x8d\x75\x10\x91\x22\xbd\xd5\xf5\xd3\x66\xa1\xca\xec\xaa\x24\x7a\xf0\x90\xc8\x04\x48\x08\x7e\x7b\xb7\xdc\x6c\xdd\x6e\x26\x62\x4f\x22\xfc\x47\x68\x3d\xab\x5e\x4e\x07\x2c\xbf\xb3\x42\x00\x1b\xbc\xfc\xb3\x90\xb6\xbb\x41\xc4\x93\x4b\xe4\xb6\x3d\xc5\x46\xf4\xa9\x57\xd1\x9c\xa9\x97\x8b\x63\x1e\xd9\x10\x66\xad\xaa\x4c\x8e\x8e\x0c\x91\x78\x91\xb2\xc8\xa6\x5b\x71\xc8\xf2\xf3\xb8\x9d\x2b\x34\x6d\xaa\x53\x0e\xf3\xd1\x02\x48\x02\xe1\xe9\x5e\xed\x57\x6b\x8b\x4e\xb2\x5b\xf4\x6d\x57\x91\xf2\x04\x4f\x57\x5d\xbe\x17\xdb\xec\x9a\x95\xd9\x75\x0b\x7c\xe0\x2e\x54\xd6\xe7\xb1\xee\x43\xe8\x07\x10\x4f\x7b\xa1\x50\xca\xc6\x8f\x45\x76\xd8\x41\xb3\xdf\xc9\xf3\xe8\x34\x11\x12\x62\x44\xcd\xea\x72\x02\xcb\x2b\x54\x48\xd4\x4d\x07\x51\xd7\xe3\x54\xa8\x73\x51\x85\x0a\x35\x56\xb1\xd3\xe7\xe9\x1b\xda\xd3\x99\x20\x7b\x99\xf6\x4d\x48\x04\x7b\x99\xc2\x72\xb9\x59\xde\x88\x11\xa0\x41\xe8\x50\xc5\x17\x49\xa4\x6f\x55\x79\x3a\x8e\x93\x54\xae\x67\x9c\x84\x54\xdc\x77\x9e\x15\x1a\xab\x59\x3f\xa9\x05\x15\x5a\xfa\x68\x58\xd4\xe2\x0d\x7a\x64\x0b\xae\x15\x22\x69\x2b\x98\xdc\xb1\x01\xfa\x36\xab\x0e\xbf\x8c\x75\x57\x98\x00\x01\x82\x30\x4d\x75\xf3\x13\xdc\xd1\x2f\x40\xc7\x8a\xe4\xb3\x48\x8a\x65\x79\x38\xe6\xe5\xf9\x13\x7a\x79\x26\x0c\x23\x1e\xca\xbe\xc3\xb4\x28\x35\x60\x90\xca\xf5\x31\x54\x5b\x74\xec\x88\xd6\x28\x5e\x3f\x4a\x5e\xc8\x76\xad\xe9\x81\x34\x8f\x6e\x7d\x64\xa4\xc2\x72\x1f\x5d\xf2\x20\x09\x89\xe6\x43\x34\x23\xf8\xb9\xe4\x89\xa7\x9d\x9e\xe8\x6f\xed\x6e\xb1\xb8\xb2\x2b\xa5\xcf\x3d\x64\x4d\x5a\xe5\xe2\xbc\xc9\x0e\xc7\x1c\xba\x3a\xf3\xa4\x37\x3c\xd2\x17\x1e\x1a\x75\xca\x3e\xc3\x55\xcd\xbb\x66\xcd\x12\x1b\xc5\x1a\x48\x8a\x32\x19\x04\x7e\xca\x3b\xa2\xe1\x1b\x51\xbd\x16\xe5\x88\x34\x9a\xc9\x40\x44\x9c\x84\x5b\xeb\x7d\x3f\xce\x3e\x9c\x18\x32\x90\x24\x6a\x8f\x41\xc0\x32\x97\xe7\x6f\xcd\xf9\x08\xfd\x08\xac\x0c\x83\x28\x16\xae\x3c\xfc\x28\x32\xbd\x82\xca\x58\x08\xd4\x27\xfe\x90\x8c\x8c\xad\x83\x20\x42\x9c\x53\x8d\x30\xbd\xe1\x38\x45\x46\xa1\x95\x6e\xc3\xc6\x37\xd9\x4b\xeb\x6d\x4d\xce\x5f\x99\x78\x2c\x71\x8c\xe9\xab\xaa\x34\x59\xa7\x97\x3d\xce\x0b\xc9\x24\x0c\x30\x85\x7f\x03\x6f\xbb\x01\x2c\x57\xa6\x81\xc1\xdc\xf8\xae\x29\xb7\xe2\x63\x6c\x64\xcb\x34\x49\x71\xa5\x2e\x44\xbd\x1f\x09\xca\x8c\xde\x26\x55\xcc\xe9\xe1\x6c\xf6\xd9\xb1\x76\x9c\xab\xae\x59\x2b\x64\xb6\xda\x8b\x7a\x92\x76\x86\x49\x11\xc4\x98\x02\xfc\xf6\x74\x7f\xe3\x48\x93\x1f\x6f\x16\xee\x06\x22\x15\x2c\xee\x3e\xf0\x43\x96\x43\xdd\x94\xc5\x30\x30\x2e\xa5\x17\x22\xf3\x65\x7d\x3e\xc8\x32\x1f\xac\x52\x29\x79\x84\x62\xcc\x7b\x84\xb6\x59\x8f\x70\x34\x41\x64\x48\xac\x03\x20\xd4\x9e\x34\x22\x06\x3e\x84\x74\xfc\x4d\xf7\xd9\x1b\x1c\x01\xaa\x1f\xb8\xfe\x26\xc8\x05\x06\x4f\x56\x9c\xe2\xe8\x3d\x0b\xf8\x73\xc1\x07\x26\x55\x2c\x99\xe9\x2b\x9f\x39\x73\xd9\xb5\xeb\x18\xbd\xd6\xf5\xb6\xcf\x21\xc3\xa4\x4e\x02\x21\x2e\x95\x01\x33\x63\xb2\x3c\xbb\x02\x54\x48\xf0\x48\xc6\x75\xb3\x7a\xda\xa6\xee\x5a\x08\x48\x79\xe3\xb7\xd9\xf3\xcd\xe0\xa6\x90\x04\xca\x74\x75\x1f\x2f\x16\x0b\x3d\xba\xa3\x12\x68\x58\x60\x76\x0a\x87\xad\x27\x99\xcd\x24\x80\x71\x9a\x33\x1b\x2c\x07\x44\x85\x74\x34\x1b\xa9\x87\xf2\x22\xc9\xed\x9b\x0b\xb5\x1f\x4f\x42\xe5\x09\x81\x8e\x6d\x5e\xaa\xd7\xe7\xa2\x2e\x73\x3d\x44\xb0\xba\x6e\x5a\xe1\xc7\x5f\xcd\x7e\x7f\x7a\xde\xee\x6e\xd7\xb3\xc5\x6e\xfb\xb4\xea\x1e\x02\x0c\x23\xe0\xaf\x59\x07\x42\x54\x8c\x8b\xd8\xb1\x2f\x3c\x96\xdd\x5f\x03\xd2\xbf\x9a\x57\xe5\x2b\x54\x77\x87\x2b\x5c\xd9\x34\x16\x4c\xb1\x98\x8e\xdd\x63\x05\x77\x8b\xa7\xe9\x75\xa2\x98\x21\x1d\x8b\xc5\xd3\xe3\xed\xdd\x37\x12\xe1\xfe\x6d\xf5\xb4\x79\x5e\x2f\x77\x37\x77\x3f\xba\x77\x30\x21\xbe\x83\xae\x9c\xc4\xdb\xa5\x25\xc2\xd1\xc8\x0a\xd2\x01\xdb\x85\xae\x85\xab\x04\x2d\xf3\xdb\x53\x23\x06\x97\xf8\x40\xcc\xb6\x16\x5a\x34\x08\x23\xf6\xa8\x72\xfa\xc5\xc1\x2a\x60\x1e\x0f\x7b\x67\x74\xa1\x07\x35\x78\x83\xaa\x89\xd1\x4f\xc4\x98\x47\x7b\x58\x60\xa5\xd8\x4e\x0d\xcf\x0b\x15\x44\x86\xa8\x3d\x66\xf7\xf8\x96\xc9\xf4\x3a\x50\xa1\x22\xde\x96\xbb\xc5\x13\x74\x49\x79\x15\x31\x9b\xd1\x6f\xad\x63\xc4\xa4\xd5\x5d\x93\x2d\x76\xe9\x08\x9c\xe0\x7d\xc4\xfd\x31\x7c\xcf\x18\x24\xc2\x23\x8f\xe5\x11\x43\x15\xed\xf6\xa9\xf6\x40\x04\xb1\xb6\x4f\xc2\x82\xe8\x22\x57\x84\xe2\x43\xad\x49\x0f\xff\xd8\xa8\x1f\x3d\x33\xf1\x13\xc7\x6a\xb7\x99\x3d\x66\x4d\xf6\x17\xe8\xc1\x3e\xa5\x12\xc9\x10\x7e\x98\x03\xd6\x19\xb9\xe4\x4b\xfb\x56\xd6\xd7\x15\x2f\xd0\xbd\x9e\x14\xe8\xf7\x3f\xdc\x3d\x0e\xe2\x61\xbb\xc5\xf7\x5b\xd7\x27\x8d\x52\xdc\x7a\x8f\x7b\x51\x03\xbb\x39\x55\xfd\xf8\x5b\xdb\xea\xa4\xd3\x9c\x52\x0c\x5a\x38\xc3\xd7\x4e\x15\x89\xa7\x3b\x99\x01\x5b\x0d\x45\x19\xd3\x7e\x1a\xb6\x9b\x4b\xf6\x42\x11\x05\xcc\x1d\x7a\x7b\x51\xc1\x9e\xe2\xb9\xee\xe9\x22\xe6\x48\xed\x70\x10\x1f\x0b\x71\x5c\x75\x19\x0a\xd5\x9a\x49\xed\x03\x31\x7b\xeb\x30\x79\x9f\x7c\x47\xa9\x23\x70\x2a\xca\xd5\xa9\x6e\x40\xaf\x44\xd5\x5c\x01\x2a\x95\x34\xca\x86\x31\x9a\x5f\xe1\x5c\xcf\xcf\x5b\x77\xac\x5f\xee\xd5\x6e\x36\x21\xa6\x7e\xb6\xbb\x87\xe7\x7b\xf7\x3a\x2a\x49\x19\xef\x7c\xf6\xcf\x04\xfd\x98\x52\x26\x45\xd3\xa1\x44\x76\xc6\xb2\xec\x76\x1a\x1d\xc4\xe8\x16\xde\x2e\x97\xbb\xc7\xe7\x87\xe5\x7a\xb6\x7d\x5a\x77\x8d\x9a\x18\xfa\xb7\x50\x37\xb7\x0f\xb3\xaf\x3c\x26\x05\xb1\xc1\xc5\x35\x9f\x2d\x06\x09\xbc\xcf\x3d\x39\x05\xa9\x87\x89\x99\x79\xd6\x54\x65\x01\x1d\xb2\x4f\x41\x1a\xe3\xce\xfc\x83\x88\x91\x29\xfa\x3f\x9a\x8e\x90\x1a\xcf\xe2\x46\xe6\xff\xb7\xa6\xda\x01\x67\x01\x4e\x42\x34\x94\x91\x12\x65\x88\x30\x23\x57\x97\x07\x78\x42\x05\x63\x91\xd7\x7d\x76\x00\xed\x79\xbe\x63\x81\xc5\x25\xe5\x14\x48\xd7\x57\x47\x96\xf6\xbc\x38\x26\xfd\x26\x30\x6b\x78\xbf\xdc\x81\xe8\x95\x96\xf3\xbb\xfe\x76\xa7\x3d\xdf\x43\x2b\xf1\x71\xf9\xf3\xe9\x71\xd9\xfd\x35\x35\xd2\x15\xf2\xfe\xcc\x8a\x7e\x02\x44\x7b\x46\xb9\x54\xe3\x46\x14\xaa\x39\x89\x6a\x2c\x93\x39\xdc\x9c\x34\x0b\x25\x82\xcf\x3b\x4c\xb1\x95\x27\x7b\x2e\xb2\x66\x30\x46\x57\x18\x82\xe4\x9f\xed\x14\x9a\x89\x40\x47\xce\x5c\xac\x44\x03\x2f\xe7\xd9\x84\x6c\x11\xd3\x4c\x0b\x34\xf4\x91\x86\x06\xa4\xfb\x4d\xdc\x8b\x31\x95\x0b\x28\x7b\x3f\xf0\x2d\x5d\x0f\x45\x58\x1a\xd1\x1a\x84\x48\xae\x35\xbd\x13\x6b\x9f\x19\x70\xd4\xeb\x15\x08\xbd\x2b\x8b\xfc\xbc\x7b\xed\xb4\xc6\x98\x0e\x42\x83\xd1\xd3\xe7\xc7\xe5\xaf\xdd\xdf\x04\xc3\x8a\x02\x4c\x73\x0d\x3e\x50\x20\xfc\xd4\xce\xa9\x0e\x7c\xb3\xc8\xb1\x6a\x7a\x54\x6f\xa1\x43\x2d\x9c\x48\xc9\xc3\x99\xcc\xe6\x69\xfb\x51\x87\xc0\x30\xcc\x3e\xcf\x9a\xe6\x5d\x34\xcd\x44\x7a\x5b\x87\x26\xc6\xd2\xcb\x21\x76\x0c\x31\xc3\xd3\x7b\x8b\x8e\x23\x91\x12\xeb\x6e\x55\xf7\xc4\x4f\x98\x4e\x3c\x0f\x35\x61\xb1\x74\xfd\x5b\xf9\x89\x59\xac\x93\x38\xd4\x96\x46\x6d\xd3\x54\x93\x61\x3e\x9d\x48\x15\xda\x72\xf5\x3e\xb6\x87\x8c\xbf\xe1\xe2\xd2\xa9\x52\x88\xab\x31\x65\xf5\x02\x77\x0d\x1c\xae\x0e\x22\xdb\x51\xc4\xa1\x6f\x81\x52\xff\x16\xba\x37\x43\x47\x37\x14\x31\x29\x2b\x97\x18\x34\x1c\x1f\x30\x5a\xb2\x24\x0e\x2d\x9d\xed\xfc\x74\xc6\x5c\xf0\x27\x3f\x55\x46\x0c\x48\x7a\xfc\xdb\xc3\x76\x34\xf0\x32\x06\x04\xed\xad\xbf\x3d\x76\x77\x4e\x14\x26\x2e\x89\x79\xfe\x9a\x7f\x6a\x74\x03\x19\xe2\x39\x72\x57\xdb\x0c\x6c\xf7\x77\x19\x31\x27\xb4\x0a\x1f\xf8\x35\x86\xd0\x35\x2d\x21\xc4\x84\xf8\x77\xd0\x7d\x02\x31\xad\x3c\xae\x2e\x91\xba\x95\x68\xa0\x68\xba\xd2\x8f\x31\x6b\x88\x56\x26\xc0\x05\x8f\x46\xee\xf3\xfa\x6e\xfa\x53\x02\x67\xee\x34\x45\xd9\x81\x8b\x66\xce\xf0\x6e\x10\x10\x2e\xcb\x64\x95\x13\xed\xd9\x96\x8b\x7d\x96\x4f\x68\x7a\xb5\xbd\x09\xf2\xf8\xe7\x09\xa0\x50\xfb\xe7\xcd\x7c\xb0\x9c\x40\x2b\x2c\xe9\x46\xce\x8b\x5e\x85\xa4\x06\xa3\x31\x26\x4c\xfc\xba\xff\x2e\xe5\xfc\x4c\xf1\xa0\xcf\x50\xbb\xc3\xc7\x9a\x88\xd4\xfa\xf0\x03\xed\x8e\xb9\x38\xef\xfe\x3c\x65\x7f\x4d\x1d\x7c\xda\x80\xc6\xc0\xfa\x5b\x06\xef\x9d\x2a\xf3\xa5\x8e\x13\x3c\x19\x22\x4e\xec\x16\x0a\xa8\xa4\xd8\xf7\x5a\x54\xe0\xc5\x6e\x9f\x3b\x69\x28\x9a\x7e\xfa\x00\x18\x27\x0c\xa5\x65\x4b\xbe\x85\x83\xc8\x07\x29\x6e\x60\x01\x0f\xa9\x0c\xf8\xed\x04\x39\x95\x44\xd7\x5d\x63\xe2\x63\x22\x40\x8a\x46\xed\x9d\x7f\x7c\x5b\x95\x87\x07\x51\x9c\xb7\x65\xfb\xbf\x3d\xeb\xe5\x53\x3b\x06\xfc\x40\xa2\x8c\xcc\xa9\xc8\x9a\x0d\xe4\x48\x22\x38\xfc\x4a\xe0\x8b\x48\x5e\x2c\x66\x44\xbc\x3a\xad\x64\xf7\x36\xa1\x97\xa0\xef\x75\xb3\xfc\xb1\xe8\x87\x46\x87\x37\x8a\x38\xa5\x89\x7e\x0c\x72\x17\x10\x19\xd2\x6b\xdc\x8b\x7a\x03\xaa\x1a\x67\x97\x20\x16\x31\xda\x1e\xcb\xf5\x82\x73\x7f\xd3\x88\x42\x8b\x4a\x4f\xd8\x2a\xc3\x94\xca\xe8\xe1\xb1\x22\xe5\xe2\xdb\xf9\xda\x01\xe8\x21\x49\x02\xfc\x78\xed\xc7\xc5\x14\x04\xf1\xe1\xb9\x5c\xf1\xf4\x11\x09\x89\x4c\x31\x22\x90\xd5\xdb\x3d\x54\x30\x43\x0c\xd7\xac\x59\x94\x65\xa5\xb3\x02\x8d\xec\x89\xfc\x3c\x24\x5a\x84\xdc\xed\x38\x70\x1d\x12\xfc\x32\xc8\x0d\x89\x01\xb4\x75\x70\x19\x51\xe5\xc3\x3d\x96\x46\x75\x6c\x83\x9f\x65\x73\x87\x2f\x9f\x7a\x11\x84\x8e\x9e\x18\x2a\x95\xd5\x23\x59\x66\x06\x22\x64\x08\x0f\x9e\x8b\x1a\x06\x4c\xce\x6d\x53\x8a\x78\xf7\xac\xbe\x40\x3f\x29\xee\x32\xab\xeb\xec\xa5\xe8\x22\x5a\x20\x99\x08\x6c\x6c\xe0\x39\x2b\x1a\x62\xfa\x19\x6f\xd5\x9f\x66\xa0\x2f\x07\x25\x48\x1e\x48\x9b\x55\x2a\x4f\x85\x82\x95\xb8\xd2\x24\x66\x20\xa5\x87\xf2\x84\xbf\xae\xbf\x2f\x26\x42\xf3\xd7\xb6\x23\x48\x48\x91\x40\x6e\xa3\x44\xa5\x00\x59\x82\xfa\x6b\x4f\x69\xa6\xfa\x49\x02\x8c\x6b\x3c\x17\xd5\x98\xda\x71\xf8\x1a\xad\xe1\x79\xa9\x76\x7c\xc8\x7a\xe2\x7b\x44\x41\x72\x55\xc9\x08\xca\x90\x16\x6c\xaf\x0c\xe1\xdf\x65\x56\xd8\x47\x0c\xd4\x1d\xc6\xc4\x40\xa0\xb9\x62\xdc\xaa\xae\x75\xd5\xb7\xee\x17\x68\x6d\xbc\x0e\xc4\x77\x67\xec\xde\x95\x9f\xad\x24\xf6\xf0\x2d\x20\xf5\x90\x73\x58\x61\x02\x68\x7a\x06\x82\x64\x36\x3e\xee\x08\x93\xa8\xb0\xf8\x9a\x2f\xb3\x7f\x3d\x1b\xf1\x0a\x80\xf1\x49\xf3\x10\x71\x3d\x6c\x50\x14\x0f\x26\x92\x18\x70\x3e\x15\x2a\xab\x28\xcd\xae\x69\x7a\x0d\xb6\x4e\x93\x84\x98\x27\xfa\xac\x18\xec\x93\x1d\xc0\xa4\x14\x57\x5c\x55\xd0\x94\x55\x26\xdc\xac\x36\x2c\x91\x68\x7b\x90\x0c\x86\xa8\xf2\xf3\x5d\xa1\xca\x03\xc8\x49\x49\x79\x66\x98\x0e\x50\x99\xba\x7b\x3e\x1a\xa1\x9d\x4f\x64\x18\x10\x12\xe7\x90\x15\xed\xb9\x9d\x15\x2f\xdf\x4a\x91\xaf\x6d\x0c\xc8\x75\x32\xbe\x5b\x88\x2b\x71\x06\x1b\x5a\x1a\x93\x96\x0c\x1f\xcc\x15\x38\x12\xb4\xd9\x57\x82\x4e\xcc\xf8\x2c\xc6\x40\xfa\xf6\x2f\xd0\xe2\xb5\xe3\x6f\x34\x7e\x94\xe2\x18\x58\xa4\x0d\x82\x6c\x07\x09\xd5\xd1\x7d\x82\x38\xf5\x45\x57\xf4\xdc\xce\xa0\xbb\xc3\xb1\xfd\x21\xed\x9c\xfe\x51\x36\x50\xb7\xdf\xa7\xac\x7a\x15\xcc\x26\x48\x80\x32\x85\xf6\x82\x2e\xc5\x6a\x02\x21\x53\x5b\xff\x46\xc7\x94\xad\x3d\xb8\x94\xcd\x8f\x32\x2a\x26\x30\x0a\x93\xce\x59\x7d\xd3\xe3\x31\x19\x0d\x4b\xc8\x52\x8c\x77\xe8\x12\x27\xb7\xe3\xe0\x19\x75\x4a\x21\x61\x16\xc5\xe7\x42\x1d\xb6\x29\x0a\x48\xef\x8f\x20\x8a\x73\x31\x14\x23\x64\x26\x0a\x43\x3c\xc9\x8f\x14\xb9\x20\xfb\x75\xd6\x5d\x0d\x31\x1d\x2c\x59\xa1\xb7\x7b\x58\x9c\x2a\xb4\xc6\xdc\x21\x63\x62\x2f\x20\x59\x02\x34\x07\xcb\xac\x40\xd8\xf1\x57\x7c\x25\xc3\xa7\xc7\x31\x47\x54\xb0\xdb\x8a\x36\xe7\x42\x67\xca\x95\xe5\x75\x3f\x22\x11\x94\x3a\xf9\xe1\x52\x27\x1d\x0a\xd0\xa4\xa9\x8c\x5c\xa6\xb8\xd3\xd0\x59\x94\x65\x9e\x15\x2f\x04\xaa\x1d\xfd\xe0\x34\x05\x6e\x5c\xa2\xa0\xee\x08\x51\xbf\xaa\x48\x31\x22\x48\xe2\x4e\x05\x09\x8f\x44\x3a\xa5\xbe\xc1\x27\xe6\x80\x11\x1a\x5c\xba\x97\x74\x9e\x47\x5f\x4c\x86\x21\x6e\xd1\x87\x07\xf1\x31\x3b\x1e\x31\xfb\xe2\x9a\x24\x39\x29\xe6\xa2\x8e\x67\x5b\x94\xa4\x48\xb7\x3c\x9d\x1d\x79\xdb\xf0\xae\xda\x27\xeb\x78\x23\x0c\xb8\x08\x5e\xbd\x5d\x2f\x7f\x43\x4b\xdd\xd0\x7a\x75\x77\x03\x4f\xf0\xc0\x4a\x84\x54\xe7\x1a\x41\xca\x87\x89\xa2\x81\xa9\x88\x86\x01\x20\xac\x06\xd5\xdb\x3a\x3c\x87\x6d\x34\x01\x47\xff\x63\xd7\x01\x8a\x9e\x8b\xbc\x27\xf8\xfc\x8f\xc2\x70\x89\xbb\x99\x54\x18\x59\xaf\x30\xae\xd6\x85\xa8\xb9\xe7\xc5\x46\x3b\x29\xa1\xb5\xf8\x6b\x56\x3b\x61\xce\xc1\x07\xe7\x1e\xd7\xa4\x96\xe5\xd2\x74\x57\x5a\xd3\xdc\xf3\x41\x60\x92\xf2\xd0\x3f\xd5\x56\x14\x11\xb6\x5d\x02\x13\x6b\x0b\x53\xca\xcb\xf3\x43\x56\x40\x55\x6f\x1d\xbe\xba\xb7\xa9\xd1\x7f\xfe\xf7\x8f\xeb\xff\x63\x6f\x14\x26\x31\x3a\x8e\x48\x8b\xb1\x8b\x76\xab\xf5\x72\x33\xbb\x5f\xee\x50\x00\xdd\x3d\x2d\x84\x50\x50\x25\xc2\xa9\x46\x2f\x3b\x2b\x5e\x2e\x8e\x2c\xf7\x22\x9f\x21\x7e\xb9\xfd\xdb\x7d\xa9\x5e\x37\x13\x16\xdd\xbf\x86\xc3\x10\xb3\x40\x6a\xab\x55\x86\x0a\xd3\xbd\xa1\x8c\x99\x88\x91\xd4\x35\x6f\xd6\xd0\x88\xac\xb3\x75\xb8\x17\xeb\x08\xe3\x0d\x54\x33\x53\x56\xff\x3e\x55\x59\xad\x6d\xfa\xd2\x75\x4a\x19\xf3\x2d\x5a\x9e\x52\xfd\x2e\x73\x3f\xcd\x47\x33\x91\x70\x69\xef\x61\x49\xc9\x44\xde\x4c\x21\x16\x5c\xb7\x90\x88\x8c\xf2\xac\xd0\xe7\x3d\xd1\x2c\x76\xaf\x11\x53\xfd\x6c\x6b\xf2\x5a\xb7\x64\x34\x17\x52\x63\x90\x7d\x28\xab\x27\x66\x81\x48\x7c\xa4\x54\x69\xc6\x9c\x60\x6d\x93\x50\x09\xa2\xb1\x8a\x72\x75\xae\xc4\x21\xd3\x97\x26\x89\xef\x7d\xd3\x9e\x58\x97\x0b\x84\x47\x24\xbd\x50\xbd\x65\x0a\xb6\x95\xc0\x1c\x5f\x89\xc2\x31\x53\xa9\xc1\xf6\x12\x2d\x49\xa2\xe9\x03\x54\x47\x52\xca\x3d\x01\x41\xe0\x10\x66\xed\xd6\x48\xb4\x6f\xb3\x42\xff\xbc\x5f\x7e\x5c\x51\x45\x8f\x6e\x2a\x43\xa2\x82\x23\xe6\xb0\x3c\xfb\xcb\x15\x23\xde\x96\xe3\x9f\x2f\x13\x86\x99\x88\x23\xc0\x2b\x56\x66\xb8\xbf\xa7\x29\xb2\xaa\x80\xaa\x4f\x72\x08\x70\xff\xff\x09\xa3\x73\x4f\xa5\x14\xf2\x2d\xe0\x7d\x56\x21\x4a\xe8\xca\xa7\xfd\xaa\x22\xd9\xde\x45\x7b\x12\x6b\x66\x8b\x52\x96\xfa\xbc\x10\xc5\x4d\xb9\xdd\x67\xb5\x7b\x5b\xcd\x7d\x2c\x05\x5d\x3d\x3d\xdd\xef\x96\x37\x77\xdb\x1d\xeb\x9a\x82\x4e\xd1\xc3\xed\x47\x13\x52\xb0\x6d\x3f\x89\x26\xd0\x62\xfd\xfb\x6a\x3b\x7b\xee\x2e\xd7\xcc\x95\xd6\xb6\xfe\xd4\x2f\x83\xd9\xab\xb5\xc0\xc2\x1d\x28\x54\xa9\xe1\xd7\xdf\x17\xb7\xb9\x78\xb9\x48\x31\x70\x0f\xda\xa3\x7c\x5c\x0d\xd6\xbd\x35\xc4\x20\x22\xd7\x4a\x2f\xb5\x16\x75\x76\x59\x86\x60\x88\xef\x89\xf4\x0c\x2e\x90\x01\xce\x3c\xa1\x31\xd6\x5b\xc0\xfb\xfc\x54\x61\xea\xfd\xe9\x08\xc5\x28\x57\x3a\x1c\x44\xc6\x98\xef\xa7\x03\x65\xc2\xfb\x52\x39\xfe\x19\xce\x58\x42\x2f\x7b\x10\xc5\x49\xe4\xf7\x0b\xf7\x9e\x8c\x47\x0c\x23\x7b\xed\x4c\xcc\x69\x0d\xd9\x96\xc0\x0f\x31\xd9\xf0\x5e\x65\x0d\xec\xde\xf7\xa2\xd9\xbd\xb7\x1e\xe4\xee\x45\xe8\x97\x6b\x8f\xd0\x5d\xa5\x43\xde\x97\x8e\x6e\xf7\xa4\xc9\x75\xcf\x42\xce\x24\xeb\xb1\xf9\xb6\xbf\xf1\x52\x8d\xc0\x59\x18\x40\xaa\x1c\xeb\xd2\x80\x2c\x8b\xb3\x30\x55\x8e\x79\xfb\x41\x7c\xdc\x40\x2e\xce\x17\x01\x6c\xce\x42\xe1\xa7\x36\x5c\x49\x05\x53\x84\x03\x7d\x3c\x1d\x6c\xd1\xa5\x4d\xa0\xba\xee\x9a\xb2\x1c\x8e\x04\xa5\xd3\x62\xb3\xed\x51\x48\xb0\x89\x1a\x9a\xdb\x53\xb1\x69\x06\x98\x3f\xce\x62\x2f\xf6\xa3\x8e\x68\x6e\x14\x70\x72\x7d\x58\xa8\x6c\x0c\x68\x5e\x56\x55\xf9\xde\x35\xf8\x0a\x8f\xdd\xa3\xd5\xf1\xb0\xda\xe5\xbf\xf4\x8b\x83\x6d\xd7\xd4\x0f\x70\x4f\xbf\x79\xde\x6c\x77\xf7\x77\x0f\x77\x5b\x77\x13\x11\xc6\xe8\x03\xd7\x0d\x88\xbc\x83\x8b\x73\x26\x20\x0d\x50\x6e\x6c\x2f\xde\x07\xb4\x08\xf5\xa5\x87\x74\x94\x38\x4b\x9d\x35\xa0\x31\x41\x30\x5c\x3e\x4c\x80\xc6\xb9\xbc\x81\x66\x77\x2e\x4f\xd5\xee\x45\x1c\x60\x57\x50\x65\xd3\x60\x28\x24\xf7\xd3\xf6\x4c\x7d\xce\x9b\xac\xdd\xc7\x2f\xc7\x2d\x93\x9c\xa4\xf6\x85\xd6\xd7\x3b\x35\x53\x9e\xc6\x8f\x7d\x2a\x5c\xda\x70\x2c\x63\xc3\x99\x8e\x39\x58\xd5\x42\x5a\x0a\xb7\x65\xf5\x3a\x4a\x53\x73\xa6\x25\x95\x76\xe4\x60\x9a\xbb\xc5\x53\xdf\xec\xe4\x0c\xb8\x56\x4e\x02\x88\x92\x53\x53\xfb\x05\x83\x90\x83\x6f\x65\x13\x76\x2f\x65\xae\x77\x87\xac\x10\x3d\x0c\x02\x67\xa0\x63\xdc\x52\x6c\x9d\x6e\x7d\xd7\x6d\xc7\x6e\x85\x23\x79\xaf\xec\x11\x8e\xf5\x5c\x76\xce\xbd\xd8\x4b\xec\x0c\x6e\xdd\x1a\x24\x68\x6a\x57\xc0\xf4\xb2\x6a\xd7\x37\x66\x61\x37\xa6\x3c\x94\x93\x19\xa7\xfe\x77\xe0\x3c\x02\x8f\x3b\x9a\xab\x8f\x65\xb3\x1f\x0e\x12\xf7\x43\xfa\xa2\x87\xac\xc8\x0e\xa7\x43\x5f\x53\x85\x73\x5f\x90\xe4\xd1\x6c\xbe\xe8\x45\xbe\xda\xbf\x6b\x84\x10\x3f\xc2\x3b\x29\x74\xe1\x6c\x1a\x92\x36\x93\xa1\x97\xd8\x2b\x02\xc3\x11\x9a\xf7\xfd\xaf\x8f\xbd\x9a\x44\x2d\xda\x8e\x11\x03\x3c\x02\x28\x44\x3a\x51\x7c\xcb\x79\xc4\x03\x4d\x24\x4a\x75\x53\x95\x67\x35\xa2\x72\xe8\x7a\xc5\x8e\x77\x7c\xcc\x69\xce\x79\xe4\x0b\x37\xd9\x49\xd0\xa6\x03\xd5\x0d\x6f\x12\x87\x5c\x9a\xcb\x2c\xc9\x44\x6e\xc5\x9b\xf3\xf2\x9a\x05\x71\xf4\xa1\xe2\x14\x92\x0b\x02\x0a\xcb\x37\x88\x8c\x86\x86\x6c\x9a\xf7\x89\xf3\x84\x79\x78\x92\x22\xa1\x55\xbf\x8a\x72\x58\x73\xe0\x7a\x87\x12\x21\xb2\x3b\x28\xea\x53\xd5\xde\x7a\xf4\x0b\x92\x58\x46\xd1\x90\x6b\x67\x05\x55\xdd\x8b\x65\x4d\x9d\xc4\x3c\x49\x63\x8c\x15\xa2\xc2\xb8\x5b\x34\x3c\x8d\x18\xd1\x9e\xda\x7a\x17\x72\x0d\x9e\x4c\x57\x10\x7b\xb9\x41\xaa\xfc\xd0\xa6\x94\xee\x1a\x38\x0c\x2a\x9d\x47\xcf\x92\x9e\x87\x91\x32\x2d\x1a\x01\x45\x53\x9d\x55\x0e\xd5\xab\x7b\xa6\x64\x2a\xf6\xba\xaa\xc3\x77\xc8\x26\xaa\x0e\x39\x97\x01\xf7\x9d\x62\xda\x1e\x44\x63\x59\x13\xbb\x9b\xc4\x94\x54\xdf\x59\x55\xe6\x49\x87\x9c\x73\xc5\x53\x61\xb3\x05\x0e\x9b\x37\xea\xe0\x53\x8d\x83\x2d\x8a\xb7\x7a\x9b\x5f\x9a\x69\x5c\x49\x19\x24\xd6\x97\x29\xeb\xc1\x3a\xd2\xbe\x8f\x79\xd4\xe6\x8a\x06\xad\x6d\x8b\x91\x0e\xf9\x90\x51\xbe\x9d\xf2\x10\x5f\xe4\x07\x38\xd7\x81\xc2\x0c\x65\xa7\xd4\x3a\x19\x21\x19\x5f\x24\x24\xa6\xe0\x9c\x09\x4a\x3a\x73\xd3\xe3\x03\xbe\x8f\xd2\x60\x87\xec\x85\x40\x0b\x8f\xf0\x3e\x15\x6a\xe2\x1c\x12\x8e\xb0\xca\x65\xb3\xdf\x96\x48\x73\xe6\x4c\x35\x6e\x98\x87\x51\x2b\xa1\x35\xa9\x5a\xf5\x19\x31\xa6\xdf\xd1\xf8\x02\xe9\x86\x0b\xa8\x1b\x44\x72\xd6\xcd\xac\x38\x6f\xcb\x4d\x8f\x35\x61\x7c\x89\x92\xe8\xd3\x3d\x2c\x36\xee\x70\xf4\x3d\x29\x11\x5b\x27\x5b\xb3\x85\xa2\xd0\xae\x89\xc5\x12\x8b\xeb\x4d\x9e\x1d\x69\x7d\x6e\xde\xb3\x46\xed\xb7\x65\xcf\xd0\xf3\x59\x02\x08\xc1\x3e\x0e\x6b\x1c\x86\x8f\xf6\x99\xe0\x6e\xe7\x69\x8d\x49\xe2\x3e\x76\x6d\xc0\x75\xdc\xa3\xab\x23\x4e\xed\x01\x59\x56\xd7\x93\x32\x74\x42\xeb\xbb\x62\x8e\x25\x2e\xab\xaa\x7c\xa9\xc4\x61\x5c\x72\xc7\x7d\xee\xc5\x48\x3e\x2f\xf2\x81\x22\x0a\xf7\x79\xc8\x51\x63\x43\x9e\x6a\x25\xaa\x9b\x52\x21\x76\xbb\x5c\x95\xd5\x36\x6b\x4e\x79\x39\x40\x3b\x72\x9f\x0b\x1f\xab\xdf\x7e\x5b\xb8\x1b\x04\x5e\x10\x92\x8b\x58\x77\x19\x96\xc4\xb5\x45\x2a\xec\xc4\x38\xee\x86\x55\x79\xdc\x0f\x53\xae\xba\x64\xd5\xd6\x85\x40\xb8\x1f\x82\x8f\x36\xd2\x1c\x9a\x1b\xeb\x77\x9e\x2f\x6d\x24\x13\xef\xd8\x5d\x93\xa9\x23\xcd\x8f\x62\x1f\x4f\x1f\xa2\x0f\x7a\x2f\x7f\x74\xd4\x41\xdc\xdd\x28\x92\x3e\xa3\x23\x42\xe4\x57\xa5\xbb\x9f\x48\x81\x0d\x9f\xa1\x05\xd5\xab\x3c\x6e\xd7\xcb\xd5\xdd\xcd\xce\x16\x8b\x3d\x2e\xd6\xcb\x87\xe5\x63\x37\xa5\x12\x4e\x85\xe0\x15\xd0\xef\xdc\xc3\x7f\x4e\xd0\xd9\x93\x7e\x22\x13\xdc\x46\x6f\x1e\xfa\x19\x42\xee\xa7\x41\x82\x9e\x8c\x53\xf5\x70\xdc\xfa\x53\x7b\x9b\x9f\xa6\x9c\xdb\x1d\xd0\xd1\x17\x61\x58\x7f\x7e\xbe\xd3\xe3\xc0\xab\xbd\x44\xc4\x24\x5f\xa7\xe1\x0d\xf2\xf2\x08\x95\x81\xee\x9d\x44\x1a\x21\x0f\xe0\xae\x86\x66\xbd\x59\x6d\x54\x06\x85\x82\xc9\x65\xec\x4b\x46\xd6\xb5\x14\x4d\x93\x8f\x78\xae\xb9\xaf\x7c\x11\x90\xfa\x69\x55\x8c\x38\x2c\x27\x37\x28\x5f\x05\x49\x28\x2e\xf5\x60\x63\x7e\x41\xee\xeb\x00\xcc\x05\x2c\x6e\x15\xbc\xdd\xe3\xb4\x48\x70\x76\x3c\x17\xd9\xc7\xae\x83\xd4\xee\xe6\x59\x21\xaa\xf3\x6e\x5b\x09\xdd\x0b\x4e\xba\x6b\x94\xe1\xa9\x25\x01\x45\x39\x17\xe8\x0b\x0d\x73\x1f\x18\x4f\x2d\x0b\xe8\x4d\xf9\x58\x36\x33\xe4\xf2\x42\x93\x66\xb0\xf2\x21\x06\x0c\x4d\xec\x74\x56\x1f\x45\xa3\xf6\xc3\x92\x5d\xee\x1b\x4f\x46\x44\x52\x77\xcc\x85\x82\x87\x52\x9f\x46\xa1\x5c\xee\x9b\x88\x0a\x3e\x6a\x61\xe0\x4b\x5a\x32\xee\x1b\xc9\x90\x7e\xa0\x4b\xc3\x7f\x96\x36\xbc\xde\x7e\x8c\x22\xde\x98\xdd\xb1\x3d\xec\xed\xfb\x05\x1e\x57\x5c\xd9\x5a\x2a\xf7\x6c\xa4\xe3\xa6\x19\xc4\xbd\x4b\xb6\xd5\x5d\x21\x52\xac\x54\xbe\x5b\x3c\xed\xb6\x77\xf7\xf7\xee\x4e\x2c\xa5\x05\xdc\xfe\x1d\x03\x5b\xbd\xe2\x4a\x1e\xf0\x58\x9a\xe4\xa2\xd3\x67\x33\x0c\xf9\x27\xc8\x79\x1e\xf8\x4a\xe2\xdd\x8e\xe2\xbc\x28\x8b\x37\xaa\x7c\xc7\xd2\x96\x09\x93\x72\x72\xac\x82\x00\x08\x4e\x45\xd4\x14\x0d\x54\x73\x8a\x50\x21\x6c\x6e\xf8\xb4\x30\xf4\x12\x27\x0e\xde\x6e\xcb\x0f\xe2\x83\x68\x19\x9e\xcc\x7c\x8c\xc4\xe7\x41\xbb\x85\x89\x7e\xed\xe4\xcd\x05\x92\xef\xb4\x9a\xed\x3c\x98\x3e\x0a\x82\x30\x4d\x15\x25\x3e\x00\xeb\xeb\xf1\x2b\xde\x83\x69\xc6\xef\x65\xa3\xbf\x56\x91\xc5\x0d\x66\xa8\x83\xc4\x5a\x35\x7d\x2d\x2e\x1e\x84\x86\xe4\xd1\x49\x6d\xc4\xb8\xed\xe0\x0a\x8c\xc4\x83\x28\x14\x0e\xef\x87\x0f\x7f\x2e\xb2\xb1\x55\x13\x44\x29\x20\x71\xf3\xce\x41\xbf\xae\x20\x5f\x3c\x88\x84\xe6\x41\x7f\x2c\x1e\xb2\x02\x34\x9e\xec\xb7\x65\xb5\xfd\xed\x93\x01\x88\x0d\x85\x0e\x6e\xca\x75\x27\xe2\xcb\x83\xc4\x4b\x7c\x49\x40\xa7\xaa\x1c\x46\x6d\x47\xd7\x27\xc2\x80\xcd\xbc\xe0\x52\xe8\x06\xb1\xa6\xc9\xfb\x19\x40\x80\x07\x69\x1c\x99\x0b\xf8\xb4\x3a\xaf\x41\xe8\x49\xa4\x12\x0f\xd2\xc4\x1e\x28\x76\x5d\x20\x7b\x2a\x89\x60\x6c\xcb\x91\x42\xc8\xe8\xfd\x44\x92\xa6\x96\xae\x13\x54\xe3\x32\x24\xa4\xf3\x6f\x75\x9e\x93\xae\xab\xf2\xc8\x78\xb6\x40\xe1\xb2\x5a\x83\x2a\x8b\xa1\x37\xf4\x05\xd7\xf8\x88\xfb\x96\x07\x42\x78\x98\x8a\xdb\x34\xa5\x7a\x1d\x40\xba\x78\x20\x13\x8e\x49\x8a\xc5\x5e\x54\x88\x25\x44\x92\xef\xda\x52\x44\xb9\x4e\x8a\x23\x88\xa2\x80\x77\x2c\xff\x98\x38\x6d\x03\x1d\x49\x0c\xce\xd0\x51\x35\x3b\x66\x9f\x2c\x64\xad\x49\x26\x0a\x25\xd0\x9c\xac\xe3\x2e\xb3\x68\xd9\xdd\xc0\x67\x0e\x20\xa0\x8a\x39\x32\xea\x37\x18\x2e\x11\xd5\x79\xea\xf8\x0b\x20\x0d\x70\xae\xff\x28\x1b\xf8\x7e\x92\xa3\xb9\x0b\xc2\x27\xc1\x4c\xdc\xb4\x77\xf6\x64\xa9\x07\xb6\x48\x00\x22\xc1\x1a\xa4\xda\x05\x63\xf0\xe4\xe8\x12\x7c\x3c\x00\x49\x55\xd2\x08\xba\xed\x60\x22\xa3\x47\x99\x34\x0d\x30\x9d\x46\x7a\x19\x77\xaa\xa4\x6a\x42\xd7\x2c\x52\x24\x29\x59\x55\x59\x7d\x10\xea\x12\xbb\x0e\x0c\x68\x3c\x27\x97\xf3\xd5\x00\x04\xf2\x77\xd9\x7e\x1e\x18\x43\xb5\x7b\x96\xf5\xb3\x2c\x9a\xf6\xf8\xed\x77\x09\x59\x10\x60\xe5\x0b\xe6\x22\xef\xb3\x7a\xa0\x0d\x36\x18\xc9\x90\x45\x86\x69\x37\x0c\xb6\xde\x76\x7e\xf6\x3a\x76\x0d\x1e\xb2\x24\x75\x8a\x07\xb7\xa2\xde\x8f\x35\x98\x78\xc8\x44\x2c\x02\x87\xf6\x7e\xcc\xf6\x59\xee\xd0\xab\x3c\x64\xa0\x10\x22\x5f\x3c\xd4\x2f\xee\x6f\x3c\x02\x44\x0b\xd9\xfa\xf5\x01\x4b\xa1\xed\x12\xf8\x5c\x76\xd1\xd3\x7a\x35\xcd\xc3\xcd\xc3\x20\x4c\x10\xff\xbe\x17\x75\x3b\x13\xa6\xf5\x4a\x79\x18\xc4\x1e\x0a\x54\x10\x5f\xd5\xe2\x7e\x76\xf7\xb0\xfb\x39\xbb\xdb\xee\x56\xcb\xf5\xdd\xd3\x8d\x7b\xaf\x40\x32\x44\xd9\xb9\x18\xd3\x2f\x23\x00\xfd\xd8\x8e\x19\xbe\x4b\x18\xf8\x98\x6a\xa0\x90\xe2\xcd\xe9\x70\x38\xaf\x72\x71\xee\xdd\xe6\x34\x45\x51\xe5\xae\x86\x04\x79\xcc\x2c\x85\xfe\xc8\xaa\x0a\xa3\x90\x84\x8f\x6a\x68\x1e\xe1\x54\x95\xa8\xa4\xe3\xc6\x64\xf0\xe9\xa3\xd4\xa0\x3b\x96\xd3\x7e\xb5\xaa\x70\xb5\x75\xf7\xd1\x12\x7c\x57\x05\x47\x14\xff\xc3\xa1\x8a\x8c\x40\x6b\xac\xc9\x0e\xb0\x2d\xe7\x65\x55\xfc\x72\x69\xc1\x13\x15\x6c\x2c\xfb\x0b\x82\x72\x1e\xc6\x3e\x01\x94\xa8\xba\xc0\x6e\x97\x93\xf4\x7a\xe3\x0b\xe3\xd4\xbf\x70\xf0\xac\xda\x95\x31\x7d\x8a\x84\xb1\xf6\x71\x5a\xda\xcc\x7c\xbb\x57\x61\xa6\xb6\x4f\xa9\xc4\xc3\x24\x94\xbe\x13\x38\x2f\x46\x0c\xba\x3c\x4c\xe2\x38\xbd\x24\xf9\xa8\xe6\xad\x1b\xfa\x2f\x92\x12\x61\xa2\x28\x09\xf4\x9c\xb7\x7d\x2f\xd1\xf9\x30\xd1\x31\x8a\x3e\xd8\xdc\xeb\x0e\x99\x2d\x5c\x63\x1a\x44\x6e\xf4\x17\x4e\x8b\xa0\x5f\xfa\xe0\xba\xc5\x1e\x73\xe5\x07\xa5\xca\x44\x6e\xc7\x6f\xf5\x3e\x7d\x56\x85\xa9\x0c\x91\xc4\x83\x32\xcf\xb6\x76\xe0\x53\xb0\xe6\x67\x20\xad\xff\xfe\xf1\x45\x5e\x96\x87\x42\x0b\x20\x61\x72\xdc\xe1\x06\x45\x7f\x3c\xd4\x41\x8a\xe4\x77\xc8\xcc\x30\x88\xc6\x87\x3a\x24\xfe\x5e\x52\x7c\x19\x93\xac\xda\x4e\xe0\x69\x0c\xa2\xcf\x45\x9d\xa9\x4f\x77\xc2\xb1\x4b\x16\x9a\x38\x21\xea\x4d\x61\x41\xef\x96\x00\x8d\x9a\x23\x4f\xc5\x0e\x9f\x53\x35\xbb\xae\x3e\x9e\x47\x2c\xd2\x98\xe3\x7a\xc1\x3a\xa5\x91\x68\x28\x8f\x58\x22\x91\x7f\x50\x9e\xce\x68\x12\xfe\x0a\x43\x2a\x09\x1e\x71\x8f\xa1\xd9\x7e\x21\x11\x7f\x63\xa9\xbb\x9c\xfb\x3e\xa9\x0f\x34\xe2\x15\x9e\x46\xd1\xb7\xc8\x8f\x42\x61\x59\x2a\x6e\xcb\x4a\xc1\x93\x31\x35\x34\xc3\x63\x6e\x38\xdd\x22\x3f\x52\x58\x34\x83\x12\xfb\x77\x7a\x66\x1a\x2c\x6b\x43\x42\xa8\xc1\x54\x88\x7c\xd0\x09\x15\xd0\xd5\x8f\xf0\xd1\x89\x7b\xce\xdc\xab\x05\x32\xc0\x55\x53\xf6\xe8\x07\x6c\x53\x94\x78\x98\xeb\x51\x86\x91\x45\xc0\x57\xaa\xd7\x18\xfb\x4e\xad\x2b\x53\xd7\x1c\x85\x3c\x8a\x52\x42\x38\xa0\x10\x0f\xe8\x9e\x1b\x3a\xec\x17\x03\x4b\xd5\x85\x03\xc1\x42\x04\x26\xcc\xd4\x28\x89\x24\x16\x03\x7c\xa3\x40\xeb\x85\xbf\x3e\x19\xdd\x32\x11\x3c\xbc\x54\x92\x77\x6a\x06\x03\x15\x7c\x1e\x25\x5a\x62\x1e\x47\x65\xcd\xa4\x55\x13\xa5\x3a\xc1\x6f\xba\x6b\x7d\xb1\x41\x86\x7d\xf8\x38\xe1\x09\x73\x51\x82\x7b\x10\xc5\xf9\x5e\x14\x1a\xc3\xb2\xa3\xcf\x37\xa4\x3c\xe4\x91\x48\x02\x62\x87\xb6\x11\xc7\x2f\xf7\xc2\x48\x88\x04\x09\x00\x09\xca\xd3\xda\x85\xd5\xb5\x37\x1b\x61\xc5\xb5\x8b\x72\x8a\xac\x78\xbc\x68\x43\xdb\x1e\x32\x66\xcc\xef\x0e\xd3\x4d\x99\xeb\xae\x86\x87\x47\x52\x45\x88\xc8\x5f\xea\xd3\x14\x11\xc0\xb5\xfd\x11\xe9\xc0\x70\xa4\x39\xfd\x38\x8a\x42\x3f\xc2\x0b\x92\x92\x30\x9e\xcc\xb3\x66\x21\xea\x91\xa9\x16\xe9\x10\xf0\x5c\x2c\x47\xfa\xc0\xf5\x68\xe6\xea\xd8\x33\xc2\xaa\x24\x38\x5b\xca\xe2\xfb\x6c\x0f\xf0\x24\xc6\x3c\xb4\x28\xb1\xf0\xd9\x22\x5c\xbb\xe6\x50\x80\x53\x39\x03\x92\xbf\x1f\x70\x32\xf0\x08\x22\x93\x5c\x58\xa8\x30\xc9\x37\x2b\xf4\x43\xf6\xe9\xba\x03\x01\xc8\x08\x67\xe5\xa4\x06\xa8\x44\x1e\x81\xa4\x2a\xc1\x53\x95\x8d\x96\xb8\x09\x43\x9f\x59\x59\x85\x3c\xa7\xba\x5f\x77\x95\x11\x41\x4a\xb0\xd3\x3b\x55\x62\xd2\xe7\xf2\x13\x0c\x04\x8c\xf5\xd3\xb4\x65\x35\x28\xa1\xe6\xb1\xa7\x83\x84\x72\xea\x1f\x0d\x41\x25\xcb\xd6\xbf\x70\xcd\x2c\x20\xff\x9c\xf2\x0b\xae\x56\x6c\xf8\x76\x31\x8b\x7c\xad\x3a\xf3\x78\x9e\xe9\xe1\x97\x88\xb9\x21\xe2\xbd\x3d\x54\xe5\xb0\x4c\xc6\x76\xf0\x23\x8f\x61\xdc\x40\x60\xa4\xae\x57\x43\xcc\x63\x5f\x52\x81\xa7\xcc\x74\xbd\xab\x91\x12\x6d\x47\x0f\xea\x7e\x66\x1c\x78\x1c\x05\xb0\x0f\xe2\xa3\x1d\xfc\x55\xe9\x70\x30\x71\xe8\x79\xbc\xe3\x50\xad\x87\xbb\x79\x1c\xfa\x10\x13\x51\xff\x5d\x3f\x15\x1c\x47\x1e\x8b\xda\x75\x52\x62\xa4\xe0\x65\x3f\x3a\x80\xe2\x28\x24\x67\xa1\xdd\x99\x44\x96\x9f\x71\x23\x79\xae\x2f\x37\x8e\x62\x0f\x99\xf6\xea\x83\xc8\xf3\x0b\x63\x2b\x8f\x23\xed\x61\xba\x86\xca\x19\x28\x0a\x6e\x9b\x62\x4e\x86\xbf\x12\x79\xbe\x2c\x34\x6e\x3a\x03\xe8\x24\x8f\x63\x19\x5a\x2f\xa9\x5f\xba\xf2\x65\x34\x2c\x8e\x21\x40\xb7\xdb\xe6\x30\xd7\xf0\x3f\x50\x57\xac\x72\xc9\xd5\x45\x09\x11\xb5\x54\xe2\x0d\x72\xd2\x8e\xff\x9a\x25\xeb\x4b\x53\x36\x6e\xcd\xa2\xc4\xc9\xd1\x80\x76\x9f\x7f\x64\x7d\xc7\x89\x31\xbe\xe5\xad\xdd\x8a\x82\x6a\x75\xea\x8b\x22\xd3\xa8\x77\xca\x7c\x63\x93\xab\x76\xe1\xde\x66\x85\x28\x5a\xfb\xa6\x87\x3e\x89\xd3\x90\x92\x36\x16\x48\x43\x9a\x33\xd7\xca\x0b\x3c\x4e\x13\x6e\x3a\x71\xd5\x76\x3a\x3c\x08\x87\x6f\x8a\x05\x37\xaa\xff\xac\xe9\xe5\x1d\x0b\x45\xc2\x2c\xf8\x81\x6e\xcb\x8a\x28\x4e\xbb\x79\x23\xc3\x14\x01\x67\xdf\xb3\x55\x05\x2a\x2b\x4f\x97\x96\x98\x23\x75\xed\xb1\x2a\x4b\x73\x2b\xb2\x09\xc8\xba\xed\xa9\x92\x10\xb9\x88\x76\x96\x62\xfb\xf5\xd4\x23\xd8\xfb\xc4\x20\x73\x97\xa6\x42\x59\xdd\x03\x4b\x22\x37\xf9\xa0\xd1\x03\x75\x48\x84\x6e\x4d\xe6\xb2\xd7\x0b\x71\x1c\x05\xb1\x62\x2d\x08\xb0\x57\x81\x06\x38\x3c\x6f\x7f\x7b\x1a\x73\xb5\x38\xce\xca\x7f\x75\x1a\x4d\xc9\x24\x8d\x0b\x8f\xc1\x23\x4e\x2e\x2c\x5a\xc9\xea\xa6\xa2\x9a\xd3\x03\xb2\x81\x4d\xcf\x2f\xf0\x7d\x3e\x34\x9e\x44\xe2\x86\x16\x40\x1a\xd5\x91\xc3\x75\xaa\x21\x4f\xa6\x1f\xc9\x88\x8d\x27\x11\x10\x5e\x75\xca\x45\xc3\x1f\x68\xc2\x08\xb5\x8f\xb0\xac\x0d\x99\xc2\x46\x7b\x82\x49\x23\x16\xf4\x38\xa2\xa0\x50\x30\xda\x06\x8d\x60\x8e\x32\x83\x34\xfc\x47\x54\x15\x3c\x36\x8a\xa3\xae\xc8\x11\xc1\xf0\xab\x1e\x35\x24\x4f\xbc\x88\xac\x29\xa1\xdb\xf5\xa3\xb3\xa6\x67\xab\x8d\xb5\x71\xff\x35\x1c\xfb\x4f\xfe\x6c\x6f\xcc\x78\x84\x05\xb2\xf2\x74\xbe\x5f\xcc\xd6\x6e\xeb\x4c\x98\x88\x10\xc3\xb3\x39\x96\x45\x5d\x56\xa0\xef\x1a\x38\x7c\x2b\xcb\x35\x8a\x5c\x75\xbd\x24\xf3\x4d\xc7\xe4\x27\xa1\x99\x9f\x1f\x4f\x07\x6b\x55\x5d\xac\xfd\x84\x49\x1f\xd1\x09\xc7\x5c\x5c\x25\xe2\x5c\x38\x2d\xf1\x23\x85\x73\x6d\x2f\xea\xaf\x0a\x31\x79\xe2\x1b\x89\x41\x29\xdd\x7a\xc5\xdf\x44\x3d\x3f\x55\x97\x23\x23\x09\x38\x50\xf5\x6a\x2f\x04\x7e\x5b\x95\x87\xaf\x13\x07\x49\x60\x8d\x62\x0a\xb8\x0c\x1f\x18\xa4\x21\x26\x88\x0f\x67\xaa\x7e\x76\x8f\x0a\x75\x10\x3b\xaa\x7e\x4b\xe9\x43\x4a\xa9\xc3\xcb\xa3\x30\x36\xb1\x93\x7d\x79\x84\xf7\x31\xa1\xff\x94\x4f\x98\x44\xa0\x7d\x47\xed\x37\x6f\xca\x9f\x59\xb3\xdf\x34\xea\x6a\xb1\x7f\x22\x73\x74\x5d\x36\x32\x21\x8b\xe4\xbe\x4e\x0c\x24\x93\x6f\x40\xed\x91\xdc\x12\x57\xd1\x64\xb0\x37\x89\x0d\xb3\xdc\xbb\xe2\xb0\xee\xcb\xfa\xf1\x24\x09\x88\x2f\xde\x08\xdd\x8d\x50\xa2\x63\x3a\xbf\xa1\x19\x7b\x2e\x49\xaa\x62\x47\x54\xbe\x81\xd6\xae\xe9\xe7\xef\xfb\x36\x62\x22\x38\x60\xa2\x8f\x76\x3d\x1c\x69\x14\x6a\x18\xbd\x9b\x48\x18\x1d\xf7\x19\x54\x1e\xfa\x61\xee\x35\x84\x51\xda\x3e\xca\xea\x44\x8f\x90\x3c\x89\x04\x1f\x67\xb2\x2d\xe0\xc0\xa2\xc2\x99\x63\x4c\x73\xb7\x51\x29\x13\x14\xc3\x73\xd1\x92\x76\x62\x7d\xdb\xde\x3d\x32\x5f\x8b\x69\x3f\x20\xd1\x41\x8c\x31\x10\x09\x8b\xb2\xa8\x9b\x0b\x64\x20\xd1\x61\xe4\x3b\x2f\xf7\xa9\xb0\xf0\xe9\xe9\xd9\xa9\x23\x82\xdf\xba\x9a\xfa\x2b\x5a\x86\x6e\x15\x01\xd7\xae\x1c\xf1\xa1\x7e\x19\x0d\x39\xf8\xa1\x2b\x87\x7f\xbe\x2b\x9a\x64\x3a\x02\x90\x40\x28\x84\x70\xf4\xd5\xab\xaa\x93\x99\xe6\x09\x48\x0f\x95\x5d\xb1\xb6\xce\xc6\xf7\xda\xa9\xd9\x97\x46\xed\x79\xfe\x97\x48\x72\x02\x32\x74\xac\x22\x84\x7e\xb7\x91\x15\xdb\x73\xf0\x6b\x0d\x4b\x3c\x75\x41\x0c\x6d\x8e\x1d\x19\x04\x4f\x4c\xc0\x10\xcf\x4a\xe1\x95\xd5\xf7\xdf\x3a\x32\x3b\xea\x90\x7a\x91\xc7\x6d\xc4\x79\x68\x61\xa7\x5e\x2a\xd2\xcb\x34\x42\x60\x59\xd7\x24\x42\x69\x6b\xfd\x8a\xd6\x46\x1a\x8e\x5b\xea\x49\x8d\xe7\x6e\x46\x11\x70\x0c\xc2\x4f\x11\xa8\xf3\xd4\xd3\x12\x4b\xd9\xe4\xa9\xc2\x1c\xd3\xac\x28\x5b\x3b\xef\xcb\x10\x7f\xea\x41\x47\x7b\x8d\xf7\x1c\x08\x8a\x4e\xad\x88\x94\x85\xa9\xd5\xdb\xae\x1b\x4c\x18\x42\x55\x77\xd3\x3d\xe5\x3e\x47\xee\x9f\x5d\x56\x3f\x9c\xef\x41\xbc\x9c\x06\x69\xf5\x94\x5b\x9a\xf4\x59\x95\x15\xfd\x83\x30\xe5\x22\x46\x7b\xf1\xff\x66\xff\xe7\x7c\xfc\xd4\xe7\x21\xc6\x52\x3a\xcb\xe8\xbe\x7c\xb7\x09\x8c\xae\x4b\x1c\xa0\x0b\xbb\x51\x65\x75\xcc\x10\x8c\x31\x1a\x96\x20\xd2\x89\x2d\x4d\xbe\xfb\xf6\xd4\x8e\x46\x3b\x1c\xa4\x29\x33\xee\x9a\x84\x31\xd5\xb5\xac\xe1\xad\x7c\x85\x91\x3f\x91\x06\x09\x30\x7b\xab\x0d\xfa\x66\xc3\xb3\x38\x0d\x24\xa0\xc0\xc2\x5c\x54\x0a\xf2\xb2\x10\x6f\xf5\xba\x3c\x88\xae\x59\x91\xd2\xfe\x3c\xfb\x50\xab\xaa\xfc\x7b\x0f\x35\x0d\x13\xaa\xfb\x47\xc2\xd6\xeb\x49\x6e\x7b\x45\x91\x8a\x5c\xa6\xfa\x97\x51\x93\x48\x1d\x01\x48\x7b\xec\xaf\x5b\xa7\x02\x0b\x7f\xfb\x41\xea\x34\x92\x01\xe2\x59\x28\xc8\x69\x83\xbd\xc3\xa1\x89\x03\xc9\x5c\x1c\xd4\x71\x51\xae\x5a\xe7\x77\xe8\xbb\xa6\x89\x07\xb8\x11\xde\x67\x06\x06\xdf\x37\xf1\x13\x8c\xd7\x20\xd9\xe7\x6e\xd9\xba\x85\x9d\x81\x9a\xa6\x5c\xa3\xa3\x96\x59\x47\xb2\xcb\x62\xe0\x99\xc0\xbb\x6e\x01\xf1\x8e\xae\x97\xb3\xfb\x87\xde\xb2\x77\xcd\x21\x30\x0b\x3e\x5d\x13\xb5\x76\xeb\x94\x5d\xca\x98\x5c\x37\xc5\x31\x8a\xd0\x1a\x6d\x6b\xa0\xbc\xfa\xe8\x46\x26\xc6\xad\x66\x55\x16\x7f\x65\x1b\x54\x6d\x1d\x8d\xab\xe0\x61\x6a\xfd\xdb\x37\xa8\x1a\x27\x39\x38\xac\x12\x71\x7d\x85\x87\x59\x85\x9b\xd9\xdd\xfd\xef\x0e\x7b\x92\x0a\xad\x70\xd9\x1f\xb2\x62\x83\xcc\xdd\xf8\x53\xe3\xe7\x8d\x8b\xe2\xa7\x32\xe2\x68\x6b\xa0\x4a\xcd\xc8\x2e\x48\x65\x7a\xc1\xee\xd9\x7c\x5c\x17\x2f\xb9\x3c\x5a\xb1\x30\x62\x2e\x4a\x7e\x3c\x35\x56\x15\xa4\x94\x39\x1c\xea\x5f\xa6\xaa\x19\x52\x15\x41\x28\x07\xde\xcd\x54\xde\x2a\x55\x5a\x2b\x71\x49\x0d\xb6\xd6\xad\x3b\x97\xca\xaa\x97\xdd\xbe\x85\x91\x49\x92\x6a\x16\x4a\xd1\x89\xe4\x54\x15\xa8\xe6\xf6\x54\x60\xe7\xbb\x7a\x21\xf2\x1c\xf4\xd3\x45\xd7\xcc\x5d\x14\x09\x2c\x96\x22\x76\xe7\x39\x14\x60\x32\x95\x89\x2e\x99\x9c\x1a\x9f\x70\x68\x12\xcb\x7e\xed\x96\x37\x78\x65\xe1\x05\xc6\x11\xb7\xcc\x85\xbe\x60\xd8\x05\x4b\x39\x42\x76\x91\x4a\xbe\xa7\xc6\x38\xed\x98\x08\x96\x92\x1c\xf2\x4b\xf6\x06\xab\xaa\x6c\xf7\xec\xaf\x52\x08\x82\x19\x1f\xf9\x2c\x56\x55\xf9\xd6\x5f\x12\xc2\x8f\x19\x15\x8e\xec\xcb\xf7\x87\x33\x3a\xe5\xc3\x38\x8f\xf0\x13\x81\xde\xc1\x01\x74\xd6\x7a\x23\x83\x04\xa7\x08\x84\x89\x2e\x85\xad\x0b\xd1\x58\x0b\xe2\x62\xce\x8c\x63\x96\x22\xf4\x3c\xaf\x4b\x92\xd9\x02\x1e\x77\xbb\xc8\xf7\x71\xb2\x58\xd9\xac\x2a\x93\x8e\xc7\x61\x34\xf9\x44\x6b\x55\x6a\xca\x15\x1e\x44\x75\xbe\xcf\x7a\x5a\xa9\x5c\x44\x11\xa3\x0a\x92\x06\x8e\xdb\xf7\xb2\x17\x86\x10\x51\x64\x70\xa7\xc2\x04\xdb\xa0\x21\x26\x24\xbb\x40\x5d\x59\x3a\xa5\x87\x16\x82\xeb\x28\x39\x73\xa5\x8f\x3d\x92\x11\x3a\x13\x46\x6f\xa9\xa8\x20\xb4\xfd\xde\x99\x9e\x9f\xff\x41\xd6\x46\xc4\x41\x88\xfb\x65\x3b\x39\xe7\x59\xb3\xfc\xf3\x24\xf2\xcd\x49\xa9\xcb\x26\x2f\xe2\x24\x26\xd1\x6b\x68\xa0\x3a\x64\x85\xdb\x2f\xa9\x9e\xd6\xd5\xd5\x7e\xe5\x69\x8a\x58\xd0\x5e\x88\x34\x12\x7f\x0d\xe6\x44\xac\x02\x74\x21\xb6\xfb\x4c\xa9\x5e\x89\x90\x88\x95\xc1\x2d\xb2\x10\xcd\xa9\x12\xf9\x73\xd1\x9d\x81\x22\x31\x1c\xe5\x3d\x31\x41\x56\x88\x7c\xb4\x78\x84\x34\x1a\xec\xb1\x75\x7f\x2a\xd4\xeb\x94\x75\x2d\x34\x57\x18\x7b\x3a\x88\x0f\x2a\x89\x1e\x52\x37\x71\x01\x5e\x8c\xbc\xce\x6b\xd4\xae\x39\xf4\xa2\xbe\x5d\x07\xc1\x08\x8c\x6b\xf3\x35\xa3\xc9\x0c\x52\xa0\xcd\xb9\xd9\x67\xc7\x41\x85\xc7\x34\x3a\x60\x60\x9d\x7d\xf2\xb9\x0c\x0f\x30\x4a\x68\xe1\xcb\x68\x3a\x77\xbf\x7e\xd4\x35\x48\x30\x51\xb2\x7d\xbe\x71\x54\x48\x5c\x98\xc4\xa0\xb5\x27\x4f\xd7\x20\xcd\x2f\x23\x4b\xd2\x8b\x35\x81\x85\x45\xbd\x9f\x0b\xf5\x4a\x08\xe8\xf2\xda\x80\x93\xcc\x0a\xdb\x09\xad\x11\xd5\x71\xcc\x9d\x76\xd3\x84\xb0\x90\xbd\x86\x33\x0f\x6b\x95\x2f\xf5\xfc\xee\x57\x55\x9f\xc5\x22\x24\xe7\x1c\xed\xf4\x76\x37\xb1\x7e\x4a\x7e\x1a\x7d\x23\xe9\x33\x62\xfb\x5b\xe6\xe7\x66\x5f\x65\x5d\x7a\x5b\xfa\x49\x14\x93\xa5\x81\x80\x43\x2b\x32\x59\x56\x9b\xec\x05\x67\x1c\x5c\x91\xb1\x0d\xfe\xdb\xde\x25\x60\x42\x04\x36\x72\xdd\x37\xc5\xbe\x8e\x15\xca\x20\xf2\x29\xed\x27\x0a\x3a\xcc\xc6\xaf\x1d\x24\x9e\x23\xc0\x5c\xc3\x0b\xd2\x8f\x0e\x69\x1d\x7a\xf7\x02\x83\x99\x50\x0a\x1e\xba\x9f\x17\x7a\xc2\xdd\x00\x49\x65\x10\x5d\x38\xbc\x30\x4c\x03\x65\xc3\x11\xdb\x4c\xbd\x42\x33\x3f\xf7\x0a\x0a\xae\xd5\xec\xfa\x2b\x5a\x86\x82\x23\x05\xc3\x41\x7c\x6c\x3f\xbe\x89\xba\x0f\xc3\x93\x11\x0b\xb0\x11\x63\x3c\x3b\x61\x2e\x69\x6c\x19\x05\x02\x9d\xd4\x1f\x59\x9d\x95\xc5\x6f\xee\xcf\x89\x0a\x50\x38\xd0\x56\x5d\xf4\x1d\x4a\x29\xc3\x18\x2d\xe8\xe1\x64\x77\x8d\x51\x64\x21\x59\x96\x5f\x6d\x3a\x60\x28\xb5\x97\x86\xb6\xf8\xf8\xae\x9e\x9f\xce\x13\xea\x9e\x8e\x1c\x80\x4b\x08\x81\x40\xfb\xfb\xeb\xca\xc8\x6b\xa3\x55\x42\x4a\xd2\x59\xe4\x1b\xe1\x81\x7a\x71\xc6\x24\xc8\x30\x91\x8e\x9e\x12\x5b\x9f\x8c\x71\xaf\x6f\x18\xc7\x68\x87\xaa\xf3\xfe\xae\x28\x4d\x40\xde\xaf\xae\x44\x56\x6c\x9a\x4a\x9c\x07\x40\xee\xae\x57\xe0\x53\x82\x46\x43\xf5\x80\x14\x2c\x5f\xe8\x08\x7d\xb2\xb3\x5c\x4d\xd5\xe1\x23\x42\x3f\x88\x2f\x52\x84\x14\x73\xe9\x43\xf1\x46\xe3\x6c\x12\x2d\xfd\x8b\xf6\x70\x5f\xe5\x24\x0a\x5c\x1f\xe3\x69\x6f\x48\xc8\x34\xd3\xe2\xd8\xb4\xbf\xe1\x9a\x38\x9c\x2b\x8f\xd1\xb1\x5f\xd3\x3d\x91\x1a\x01\x8d\x47\x7f\x38\x1e\x8a\x25\x14\x60\xc3\x54\xf6\xcb\x95\x22\x05\x57\x0c\x04\xfa\xab\x80\xcc\x2a\x0a\x1c\xec\xcf\x0e\xbb\xe2\xbe\x46\x8e\x99\x59\xeb\x8c\x77\x5a\x1d\xa3\xa7\x70\xed\xe3\x89\x8c\x5f\x04\x0e\x63\xc8\xd7\x97\xdb\xa8\xf2\xbd\x00\x33\xa3\x82\x2c\x36\x54\x5e\xe9\x2b\xf8\x72\xe5\xfb\x1e\xde\xbe\xdd\xd6\xfe\x4d\x98\x92\xed\x3e\xab\xd7\xce\xe3\x50\x41\x44\xa8\x9e\x6f\xe2\x00\x9b\x63\x56\x65\x4d\xef\xd8\x54\xa1\xc7\x04\xeb\x69\xee\x7e\x8d\x4c\x55\xa1\x67\x30\x9e\xbc\x05\x71\xb0\xda\xee\x7d\x4e\x56\xae\xc2\x80\x64\x67\x90\x0d\x7d\xc0\x0a\xdb\xbb\x89\x8e\x6d\x5e\xbc\xd0\x33\xfd\x96\xd5\x65\x55\x7f\x45\x0c\xc1\x55\xc4\x13\x64\x23\x70\x6c\x02\x7d\x4d\x03\xae\xa2\x20\xb5\xb8\xce\x02\xea\xac\xee\xd5\xdb\xa9\x28\x14\xe8\x23\xc0\xc5\x6f\x50\x51\x1a\x46\x91\xc3\xaa\x8d\xa2\x99\xfd\x85\xaa\x62\x46\x88\xa9\x17\x68\x66\xc7\xe3\xd0\xd7\x55\x71\xa0\xb0\x0a\x6f\xb9\xfa\xd1\x5f\x8a\x2a\x0e\x89\x1a\xab\x21\x85\x95\x83\xb8\x8c\x75\x0c\x22\x34\x1d\x7c\x0a\x63\x2c\x33\x87\x95\x73\x7d\x12\xcf\x28\x4a\x1a\x76\xd1\x30\xd7\xc2\x0c\xa6\x28\x1f\xee\xe7\xbb\x7b\x78\xb9\xcc\xc2\x24\xf6\xd0\x23\x79\xc8\x8a\xcb\x6d\x62\x8e\x30\xa2\x1f\x59\xf5\x52\x8e\xb2\x7a\x2a\x8d\x88\x8b\x0e\x67\xe4\xf7\xec\xde\x81\x25\x94\xf0\x12\x0c\x04\x21\x05\xdd\xad\xd0\x50\x9e\x9a\x6d\x49\x0a\x35\x75\xdf\x60\xbe\x22\x55\x1e\x7d\x2f\xc1\x0d\xe2\x5f\x6e\x17\x4f\x77\x8f\x8c\x31\xef\x8b\x52\xb5\xd1\xa5\x92\x91\xd0\xe1\x72\xfb\x7d\xe9\xec\x10\x25\x25\x73\xba\x16\xd7\xd0\x1f\xa5\x22\xe9\x05\x96\x60\x9d\x24\xfc\xfe\x02\xbd\xd4\x19\x2d\xea\xd1\x9a\xd6\x10\xa0\xb1\xd7\xec\x2b\xa8\xf7\x9d\x82\x32\x57\xda\x80\xdf\x15\x89\x3b\xc6\x09\xda\x46\x87\x77\x00\x8f\x38\xda\x6e\xa8\x2a\x62\x73\xca\x54\xd6\x55\x38\x28\xf0\x84\x31\x3d\x6c\xd9\xac\xd0\x03\x45\xea\x2f\xb0\x9e\xd7\xe3\x08\x9e\xf1\x9d\x7c\xed\x76\x5f\x95\xef\x94\xb8\xba\x6f\xcf\xf5\x66\x0d\x6f\x78\x2a\x3e\x96\x4d\x3f\x31\xab\x80\x05\x09\x81\xb0\xf3\x52\x0c\xf8\x23\xb9\x32\x9e\x08\x64\xaf\x48\x68\xd9\xec\xbf\x5e\x79\xc6\x03\x02\x4f\x82\xa8\xd4\xde\xd1\x48\x0f\x07\xc4\x70\x93\x30\x17\xf6\xf9\xf3\x74\xc9\xb0\xb8\x76\x1d\x23\x1b\xf8\xb1\xac\x9b\x7f\x97\xf2\xd3\x03\x67\xb8\xc0\x8c\xd1\x68\x15\x6c\xd7\xcb\x25\xe2\xf9\xec\xef\xd3\x1e\x4b\xd0\xa8\x7d\x85\xf3\x1a\xfe\x3c\x65\x55\xb7\x46\xb4\xc7\x25\x8e\xd7\xf7\xd9\xfa\x66\xb7\x98\xad\x76\x77\x8f\x56\x2d\xce\xf5\x60\x51\xa7\x58\xfa\x90\x15\x98\x25\xbe\xb0\x8b\xf4\x23\x67\x9a\x49\x8e\xb5\x93\x3b\xa1\xcb\x63\xb3\x11\x07\x58\xe4\xa2\xae\x67\x1f\x19\x0c\x3d\xd9\x4f\x90\x7e\x9a\x19\x92\x75\x94\xa2\x78\x25\x14\xfc\xb6\xb7\xd2\x91\x06\xa9\x63\x5a\x13\x2f\x50\xcf\xe1\x25\x2b\x96\x5d\x38\x55\x07\x91\x48\x09\x80\x5e\x37\x7d\xcd\xd3\xab\xc4\xc1\x84\xc6\x1d\xd7\x61\x10\xa0\x00\x87\xce\x6a\xd1\x9a\xd3\xbd\x3c\xba\x0e\xd3\x88\xb8\x03\xea\x55\xd9\xd3\x14\x9a\x9c\x83\x3a\x0a\x22\x54\xe3\x3d\x0a\x95\x99\xac\x6e\x0e\xa8\x36\xbb\x86\x3f\xdd\xdd\x62\xa5\x10\x6c\xb1\xfd\xf8\x32\x30\xaa\x13\x13\x92\x0e\x09\x0a\x6f\x7d\x59\xc6\xae\x53\x9e\x60\x72\x70\xf3\xf3\xee\x76\xbb\xb9\xd0\x37\xbb\xe6\x28\xc0\xc0\xe7\xaf\xbf\x2f\xf0\x9b\xf5\xcb\xb8\xb5\xf0\xa5\x23\xa9\x1c\x61\xad\x86\x37\x11\x26\x42\xa9\x32\x17\x54\x5b\x45\xee\x0e\x52\xe8\x20\xb0\xa4\x67\xd5\x93\x19\x2c\x21\x2d\x95\xc6\xf8\xcc\x3b\x64\x6b\x71\x45\x44\xc6\xb5\x12\xa9\x0b\xa3\x3c\x88\x22\x33\x50\x37\x77\xba\x9e\x9f\x49\x8c\x00\xeb\x12\x87\x17\xe8\xb0\xc3\x49\x2d\xf2\x0c\xcd\x90\xe1\x60\xe8\x34\xc2\x24\xd5\x6b\x96\xe7\x35\x16\xa6\xb9\x17\x35\x31\x71\xab\xae\x9f\xee\x97\xbb\xe5\x6f\x8b\xef\xb3\xc7\x6f\xdd\xae\xa9\x8d\xf4\xfc\xc8\xa2\xf6\x5b\x4b\xa8\xf5\xc1\xfe\xf3\x79\xb9\xdd\xf0\x13\x80\x17\x01\xc2\x00\xbf\x97\xcd\xe2\xb2\x4d\x02\x63\x3e\x79\xb1\xb9\xc8\x0e\x6b\x10\xda\xd6\xaf\x4d\x7d\x72\x60\x41\x88\x88\xc0\x55\x99\x8b\x2a\xab\x9f\x8b\xec\x0d\xa3\xe1\xfd\x13\x13\x58\xa8\x62\x1a\xed\xd6\x9a\xd3\xb6\x4a\xa2\x57\x9f\x07\x2c\xf2\x98\xb5\xb3\x40\x4f\x6b\x76\x72\xe0\x29\x31\xca\xd7\xad\x17\xb1\x34\x06\x54\x33\xcd\xc6\xc9\x81\x6b\x96\xa8\x0b\x8b\xe1\x5d\xbd\x3e\x15\x17\x51\xcc\xb6\x5d\xa0\x0b\xf1\x9f\x93\x28\x1a\xa4\x40\x9b\x0c\x7b\xfd\x8d\xf3\xf6\xc9\xb8\x72\x13\x62\x55\x58\xbd\x3f\x35\x37\xe5\x3b\x92\x6d\x8d\x7e\x8a\x1f\x9a\xc8\x16\x49\x7e\x2b\xc5\x80\x39\x9f\x83\x2f\x53\x24\x98\x7d\x7c\xb8\x1d\x0c\x63\x90\x6a\xf4\xa3\x6f\x9f\x1f\x6f\xee\x1e\xbf\xed\xbe\x3d\xcd\xee\xbb\x36\x1d\x23\xe9\x74\xf9\x71\xe9\x1f\x7a\x3e\x66\x31\x5d\x59\xfa\x12\x91\x6d\xd0\x35\xa7\x02\xc3\x38\x15\xb4\xa7\x08\x95\x31\x4e\xae\x55\x08\x65\x6a\x58\x27\x87\x7a\x29\x92\xb9\x18\xc4\xae\xa3\x0e\x95\xdd\x7b\x57\x77\xa4\x07\xcd\xe2\x4b\x23\x49\xb0\xd0\x09\xb7\xb2\xaa\xa5\x63\x8c\xee\x70\x9c\x22\x3f\xc6\x1d\xf6\x5e\xc8\xa6\xac\x4e\x87\xc1\x78\x44\x2a\x41\xab\xd0\x42\xf0\x9e\xe4\xff\x40\x35\x6b\x50\x70\x6c\xae\x90\xed\x10\x4b\x11\x5b\x36\x47\xeb\x54\xcc\x28\xa8\x35\x7c\x60\xe2\x85\x88\x87\x6a\x8f\xdf\xe5\x07\x45\x93\xdc\xf3\x12\x26\x31\x56\xa2\xb3\x3a\xcf\x5e\x61\x01\x39\xc8\x6a\xa2\xba\xd5\x75\x8f\x34\x77\xb0\xa2\x41\xa1\x77\xef\xe4\x84\xd4\x53\xbe\x4f\x35\x1e\x1d\x90\x0f\xd2\x30\x0c\xa1\x0b\x6d\xa3\x80\xc1\xbd\xa8\x1b\x02\xb6\xde\xdd\x8c\x7e\x59\x1a\x46\xc6\x56\x92\x36\x25\xf1\x5f\x64\xc5\xcb\xfc\x54\x67\x05\xd4\xf5\x0d\xbc\x7d\x96\x7c\x1f\xbd\x6f\xaa\x48\x2f\xe3\x78\xca\xf3\x09\xc2\x7f\x0e\x22\x0e\x9c\xe5\x8f\xed\xe8\xe2\xdf\x15\x3f\x97\x77\xee\xc5\x85\x54\xe8\x4e\x1d\xcb\x3a\x93\x39\xac\x41\xc3\x01\x3f\xc6\x38\xff\x0c\x42\xa7\x4e\x74\xe1\x01\x5e\x84\x2c\x47\xd1\x38\x10\x46\x90\x04\xcc\xbe\x7c\xbf\x5d\xb5\x0e\xe6\xac\x2b\x30\x02\xe5\x27\xc0\x2f\xf5\x51\xa3\x7b\x6b\xcf\x73\x20\x31\x9b\xa4\xaa\x0e\xe7\x81\xa8\x03\x07\x1d\x46\x98\xa5\x6b\x0e\xc7\xff\x9c\xa0\x3a\x6f\x00\xa6\x25\xb7\xdb\xae\x09\x09\xe0\x37\xfb\x0b\xe6\xac\xbb\x4f\xe4\xa1\xf5\x44\xaa\x2f\x73\xac\xa3\x3c\x1e\x5c\xbe\x06\x20\x00\x4f\xda\x62\x3a\x2c\x31\x0d\x5d\x8b\x09\x14\x7a\x75\xfb\x52\xe7\xa4\x20\x12\x3d\x74\x6d\x89\x8a\x89\x36\x68\x50\xf4\x03\x46\x13\x83\x1d\x74\x4e\xf2\xa1\xf3\x3d\x8c\xe7\x7b\x60\x0b\xca\x4f\xf5\xb6\x3c\x91\x6b\xee\xc8\xa7\x06\x3f\xc9\x78\x92\x44\x5d\xa9\xee\xf8\xf6\x52\xc0\x6c\x3c\x45\x8b\xf4\x12\x9c\x70\xbb\xc6\xf0\x0e\x8c\x25\xe8\x04\x0d\x2c\xf2\x49\xb4\x98\xf1\x23\x2e\x44\x5f\x26\xa0\x35\xb4\xda\xd9\x3e\xde\x65\xaf\x02\x4d\xc3\x7a\x28\xe3\xa7\x3e\x5a\xa1\x76\x53\xef\x45\xcf\x8d\x9f\x0a\x8c\xdd\xce\xd6\xbf\xad\x84\x7a\x15\x36\xea\xe2\x5a\x4d\x8c\xd6\x90\xb0\x34\x7c\xbb\x6a\x00\x9e\x30\x41\x18\xa7\xce\x08\x9f\xfe\x0d\x61\x0c\xb8\xa5\x03\x42\xe5\x07\x05\x6d\xbd\x17\x0c\xff\x1f\x67\x6f\xd6\xdc\x38\xae\x6c\x0b\xff\x9d\x7e\xd8\x0f\x04\x31\x90\x7c\x94\x65\xb9\x4a\xb7\x3d\x7d\x96\xaa\xab\xfb\x9c\xb8\xa1\xc0\x90\xb0\x79\x4c\x91\xda\x24\x65\x97\xf7\xaf\xff\x82\x09\x80\x93\x68\x77\x9f\xfb\xd2\xd5\x61\x40\x1c\xc1\x44\x0e\x2b\xd7\x32\x19\x37\xae\xc2\xf7\xa3\xbc\xed\x15\xb4\x63\x2b\xe2\x28\x0d\x8a\x1a\xf3\x54\xa7\x15\x2c\xc5\xcc\x9c\xd7\xa0\xe9\x7f\x03\xae\x6b\x2d\x6f\x96\x9a\x4d\x6d\x4a\x38\xa2\xf4\x5d\x0b\xcc\xf5\x66\x75\x7d\xbb\x0d\xe4\xeb\xb1\x4d\xb9\x06\x2f\xb8\xfc\x59\xbe\xbf\x3f\x7f\x9a\x72\x96\x0e\x90\x6b\xcc\x2e\x3e\xe6\xbf\xa0\x98\xc8\x36\xfe\x37\x11\x17\x4d\x05\xfd\x01\x04\xc2\x60\x37\xbf\x76\x2f\x50\x4c\xb6\x7e\x9b\x91\x0c\xfd\x83\x52\x1e\xe1\x26\x2f\x66\x32\x7a\xdd\x38\x20\x2c\xe0\x4a\xff\x6a\x9a\xe9\x2f\xd3\x0c\x3c\x87\x87\xa3\x7c\xea\xd6\xf1\x0e\x55\x76\xa6\xa7\xcf\x52\x45\x3c\x19\x1e\x8a\xa1\xd4\x13\xdc\x88\xcd\x14\x8d\x84\x07\xcd\x74\xef\xe4\xeb\xfc\x87\x95\x34\x13\x2e\x48\xdc\x15\x79\x08\x73\x7c\x2c\x1c\xa6\x64\xae\x78\xf1\x50\x8f\xa0\x0f\x56\xc9\xc8\x81\xb7\x1d\xd2\xd2\x5d\xc4\x77\x59\x9b\xb5\x3c\xf5\x73\x94\x46\x47\xd0\x39\x42\x63\xfa\xef\x89\x6b\x6f\xb5\xa0\xe8\x48\x5f\x83\x3a\x3f\x0f\x4a\xe8\x7e\xd4\x08\xe9\x64\x69\x5f\x40\xbf\x3e\xd6\x55\x65\x7f\xbb\x90\xa7\x0e\x53\x13\x83\xeb\xf6\xa0\xce\x1f\xb3\x05\x64\x14\x18\xd7\x04\x72\x0d\xd7\xb0\xdc\xcb\x61\x41\x46\xe8\x56\x78\xb5\xda\x47\xac\xf3\x2c\xaf\x02\x50\x12\xe9\x78\x64\xad\x72\x0c\x1f\x9a\x53\x55\x36\xee\x2b\x9d\x1e\xd4\x12\x1d\x2a\x58\x77\xd0\x4a\x23\x5b\xf9\xe3\x29\x78\x32\xd6\xaa\x24\x38\xf7\x3f\xab\xfa\xd5\x16\xd5\xfb\x7d\x0f\x16\xa1\x51\x94\x44\x7c\xcc\x80\xfb\x6d\xff\xd0\x0f\x81\x03\xfd\x3b\x9c\xde\xe4\x76\xc6\x4e\x2b\x8d\x88\xe2\x21\x9f\xd2\x3e\x9c\xa0\xa7\xcc\xa3\x11\xd1\x2a\xb0\x9f\xae\x0a\x27\xae\xf9\xdb\xe4\xa7\x31\x89\x10\x8f\x70\xb5\xef\x02\xf6\xff\x65\xb8\xdf\xfd\xdc\x85\x9c\xf6\x8c\x49\x83\x33\x3c\x76\xfb\x46\xf3\xf2\x65\xc1\x95\x76\x41\x2f\xfa\x55\xc7\x8f\x8b\x0e\x17\x1a\x51\x02\x81\x03\x6b\x77\x3e\x3e\x58\x57\x8d\x6b\xfa\xe1\x24\xf2\xca\xfe\x4e\x5e\x7c\x02\x00\x9a\x9e\x86\x66\x8c\x0e\x92\x4d\x4f\x08\xdb\x1c\x00\xbd\x34\x62\x22\xc5\xa8\x09\x5b\xe0\x03\x57\x74\x1a\x06\x25\xa3\x03\x1f\x98\x99\x94\xbe\xba\x51\xa1\xb2\xf0\x35\x3b\x94\xc5\x32\x57\x3b\x8d\x38\x4f\xb5\x43\xf1\x7c\x7c\xcb\x6d\x5b\x85\x43\x88\xd8\x49\xb9\x79\xfe\xf8\x40\xa3\x35\xeb\x04\xa3\x91\xd0\x1a\x2f\xe4\xdf\xdd\xbe\xde\xf7\xf1\x8f\x97\x20\x8d\x12\x13\xe1\x56\xf2\x3f\xf2\x3f\xff\xf9\x35\x32\x3b\x34\x4a\x25\x0d\xcb\x6f\xab\xab\x51\x15\x83\x46\x59\x44\xb9\x93\xf5\x91\xc8\x6c\x15\x2e\xc1\xec\x2b\x23\x3f\x66\x67\xc8\x14\x53\x81\x80\xaa\x2a\x8a\xad\x81\xb2\x9d\x6a\x57\x2d\xd5\x51\x68\x24\x13\x86\x5c\xc3\xeb\xfa\xe3\xa4\xa1\x9c\x5c\x9b\x54\xdc\x09\x24\x42\x69\x56\x45\x81\xbc\x6f\x98\xbf\x9a\xdf\x9e\x84\x04\xf9\x8f\x56\x6f\xad\x9e\x1c\x41\x59\xd7\x20\xff\x26\xcf\xc5\x14\x5b\x4f\x23\x1d\xbb\x67\x92\x37\x41\x01\xf8\xa1\x9e\x24\x83\x66\x8b\x52\xc7\x0e\x91\xa0\x6b\xf3\x3f\x41\xca\x39\x0c\x25\x54\xf3\xc0\x4a\xd5\x39\xa4\x5f\x61\x4a\x69\xa4\x25\xc3\xdd\xdb\xe6\x65\xde\xbc\x4c\xb8\xbd\x69\x64\xe2\x34\xa2\x23\xc5\xdb\xc7\xaa\x41\xe7\x72\x6c\xe5\x69\x64\x84\x93\xa3\x7f\x94\xb5\x34\x79\x03\x97\xf0\x30\x1a\x19\x70\x59\xe4\x6f\x80\x82\xf8\xa3\x4f\x20\xfd\xd7\x78\x25\x03\x4b\x03\x47\xf8\xf9\xe4\x45\x51\xc3\x79\x40\x5b\xeb\x50\x16\xaf\xcd\x7f\xfa\x95\x61\x81\xdb\xa8\x5f\x9a\x9d\xd9\x0a\x3c\x14\xd3\x47\x66\x21\x0b\xe2\xdb\x43\x24\x46\x49\x14\x39\xe9\xcf\x6f\x55\x3b\x7a\x8a\x24\xea\x1c\x6a\xd7\x24\xd1\x06\xf8\x62\x5e\x56\xa7\x02\xfe\x0a\x10\x08\x4a\x22\x66\xb2\x78\x5a\x5c\x75\xed\x45\xcd\xae\xad\xf3\x81\x16\xc5\x6f\xf7\x94\x44\x49\x8c\xce\x8e\x03\xe2\x79\x95\xcf\xf9\x8b\xf9\xef\xff\xfb\xaf\xf0\xb3\x25\xca\x4f\x4a\x08\x4b\x51\x48\xc8\xc1\x15\xd6\x2f\xb2\x28\x60\x24\x6a\xbb\x6c\xc7\x08\xf1\xd4\xba\xd8\xb2\xd6\xab\x0c\xf9\xc1\x38\x95\xb8\x57\x59\x18\x72\xf9\x94\xc4\xd6\xe5\x4e\x1a\xe8\xe5\xf6\x36\xc7\xbc\x6d\x3b\x3f\xac\x99\x38\x61\x83\x27\xd6\xfd\xca\x81\x56\x51\x91\x13\xa7\xec\xab\xcf\x29\x0a\x29\xa1\x54\x39\x51\x04\x79\x04\xcc\xd2\x75\x46\x34\x28\x94\x51\x42\x55\x06\x3c\xac\x88\xe9\x3b\x25\xd4\x38\x1e\x30\x5d\x54\x0d\x5c\xe5\xc6\x49\x76\xf8\x41\x46\x84\xd3\x71\x2a\xdb\xe6\xdf\xc7\xfe\xaf\xdc\x65\xee\x30\x9e\xee\x36\x21\x30\xce\x13\x9f\xac\x69\xc2\x84\xc5\xec\x4e\xe7\xad\xb6\x57\xc3\x2b\xe7\x22\x56\x59\xe0\x4b\x0c\x4f\xb1\x19\x46\x0d\xe2\x19\x7b\x8a\xf8\xc2\x2c\xe2\x3e\xc2\x74\xcb\xb1\xe8\x80\xfd\x0f\xfb\x8f\x13\x1c\xee\x7b\x11\x1f\x4a\x44\xe4\x18\x91\xea\xaa\x6a\x1f\x2c\xaa\x3d\xf5\x43\x52\x21\xad\x57\x09\xef\xff\x07\x2e\xa4\x9b\x29\x11\xd6\x15\x66\xee\x57\x57\xeb\xf0\x9b\x84\x30\xcc\x66\xb5\xde\x39\xc2\x0e\xb6\x87\x73\x7f\xcc\xc4\x46\xf8\xe5\x5d\xf8\x68\x0b\xc9\x01\x4a\x52\x4e\xb0\xca\x74\x0f\x65\x35\x36\x3f\x24\xcb\x28\x3e\x20\xd4\x52\x46\x8f\xbf\x1f\x31\x16\x09\xbe\x0c\x58\x58\x48\x89\xbb\xb2\xaf\x98\xca\xbd\xf7\x5f\x8e\x64\x86\x89\x11\xf2\x46\xea\x76\x27\x8f\xa7\x02\x26\x2e\x02\x91\x8a\x60\x37\xcb\xaf\xa3\x6c\xba\xd0\x6a\x0c\x59\xea\x46\x63\xdc\x63\x65\x51\x3c\x9c\xa0\x96\x43\xe5\x65\x78\x27\xd2\x68\xe5\x2c\xf1\x0e\x70\x5a\x7f\x67\xca\x5a\xcc\xa4\xdd\x6d\xef\xb7\xf7\xdf\x0e\xc8\x94\xea\xb4\x1b\xc3\x0c\xad\xa9\xa7\x2b\x6c\xf5\xcb\x5c\xc8\xab\xbf\x15\x23\x62\x2e\x50\xe1\x29\x70\xb2\xfc\x1d\x50\xe1\xcb\x9c\x17\x25\x46\x6a\x22\x46\x41\xde\x24\x44\xfa\x84\x91\x69\x56\x2c\x1a\x7d\xbe\x46\x99\x0c\x42\xbf\x06\x56\x42\xb0\xf3\x61\xdb\x6b\xad\x50\x62\x34\xc3\x65\xee\x7b\xc6\x0f\xa7\x51\xcb\x46\x37\x9a\xa2\x55\xc4\xb6\xd4\xc7\xba\xfa\x35\xdb\x9e\x09\x44\x8e\xdb\x68\x55\xb6\x90\x17\x93\xd5\x03\x29\x75\xb6\x43\x35\x77\xf2\x57\xaf\xbd\x4e\x09\xd8\x0c\x8b\xc1\xbe\x5c\x36\x3c\x3b\x0f\x49\x5e\xcc\xb3\xf4\x85\x34\x7f\x10\x4b\xd2\xd4\xdb\xb3\x83\x0f\x64\x0f\xe8\x32\x37\xdd\x2d\x1c\xe0\xa2\xaa\x4f\x89\x8d\x09\xe6\x33\x9c\xc5\x0e\xdb\xe3\x3f\x7b\x2f\x56\x50\x9d\x8d\xd0\xcd\x93\x98\x6e\x3a\x37\x8e\x40\x62\xee\x6b\x3d\xc0\x97\x9a\x4f\x2d\xfa\x7c\x9d\x84\xa5\x15\x93\x98\x21\xb8\xb4\xb3\xbb\x3e\x0f\xd2\xfd\x51\x53\x9f\x01\xff\x9e\x3f\xbf\x40\xe3\x6a\xc7\x33\x9d\x72\x1a\x13\x26\x12\xde\x13\x87\x4c\xcb\x7b\xa3\x05\x12\x13\x21\xb1\xbb\xf2\x6e\xf5\xe7\xe1\xfe\xc7\xdd\x61\xf5\xc7\x6a\x7b\x1b\x4e\x16\x0b\x81\x28\x88\xf5\x8f\xa7\xa7\xcd\xfd\xfe\xf6\xaf\xc3\x76\xb7\xfb\xb1\xb9\xee\xc7\x55\x42\x43\xf9\xc0\x98\xd9\x15\x50\xee\xa8\xd5\x0f\x81\x2d\xe6\xb1\xae\x4e\x50\xfb\x2c\x1f\xf9\x54\x0f\xc5\x17\x8a\x26\xab\x2c\x66\xd4\x41\xba\x91\x10\x72\x96\xa7\xa2\x31\xf3\x89\xa5\x36\x28\xc3\x77\xef\xfe\x30\xbb\x1e\xc6\x33\x64\x20\x5b\x57\x01\x2e\x3e\xfb\x6c\x2e\xf0\x27\x34\x66\x52\x22\xd2\x4b\x17\xb2\xe9\x4e\x3b\x3b\xa2\x04\xa4\xd0\x78\x7c\xa9\xa0\xcc\x7f\x05\xc4\xc5\xa4\x3b\x95\xc6\xdc\x0a\x34\xef\xb8\xb6\xf7\xd5\x5a\x36\xed\x65\x82\xdc\xcf\x15\x51\x82\xb5\x1c\x47\xea\xf9\xff\x64\x49\x96\x81\x82\x34\x16\x10\xc7\x41\x8f\x0c\xea\xd7\x02\xf6\x35\xc0\x53\x55\xb5\x81\xd7\x6a\xec\xb9\xc5\xc2\xd2\xa0\x95\x7f\xe7\xda\x17\x70\xbd\xaf\x2f\xb0\xb0\x34\x4e\x08\xc1\x18\xf0\x80\x25\x87\x7d\xf5\xcd\x85\x47\x73\x29\xf0\xd1\x0f\xb2\x24\x93\xbd\x30\x06\xb2\xcc\xcb\x5a\x1e\xc7\x82\xb8\x34\x4e\xa4\x36\x1e\xea\x86\x6a\xc3\xff\x8f\x46\x75\xa9\x70\x4e\xe3\x34\xcd\xf0\xc5\x35\x2f\xd5\xfb\x13\x4a\x8b\xde\x54\xf5\x5d\x55\x7a\x8c\x16\x11\x93\x67\x91\x19\x85\xbb\x55\x58\xc7\x9b\xfd\xf7\xd9\x23\x90\x11\x8b\x95\x2f\x82\x85\xda\x55\x3b\xe7\x21\xa0\xb1\xa4\x06\xbd\x15\x04\x6f\xed\x5a\x79\x59\xa7\x0c\x13\x53\x07\x53\xf0\xeb\x49\xe6\xc5\x07\x46\xff\x4b\xe4\x01\xdd\x6c\x86\x5b\x31\xfa\x82\x7e\xf1\x05\xf1\xcd\xdf\xfa\x39\x99\xf4\x1e\xfb\xd5\x39\x2f\x4c\x5e\x3e\xe3\x43\x9f\xdf\x88\x15\xc8\x73\xd4\x93\x57\xf5\x12\xef\xee\xe9\x4c\x3f\x3b\x45\x2d\x3a\x21\x16\x5a\xfd\xf2\x47\xd5\xf9\xc0\xcd\xb9\xe8\x9e\xe5\x5a\x96\x06\xeb\xf8\x57\x1f\xbb\x52\x9e\x9a\x97\xca\x81\x11\x3e\x59\x11\x4a\xa6\x98\xa5\x79\xab\xda\xee\x13\xb9\x92\x45\x51\xb5\xdb\xeb\xd9\xe9\x34\x8b\xb1\xd4\xb4\xfd\xff\xf6\x87\xeb\xcd\x7a\x7b\xb7\xba\xdd\xdd\xac\xd6\xbd\x1c\x25\x8d\xb5\x48\x1d\x6a\xa4\x73\xaf\x5c\x81\x70\x7e\x0c\xe0\x2c\xf3\x81\xdf\xbe\x9a\xec\xad\xcb\x97\xa6\xc1\x20\x60\x22\x24\x3a\xa7\x6f\xd4\x24\x8e\x34\xec\x60\x42\x01\xe7\xe1\xdc\x76\xe1\xc5\x45\x27\x00\x8d\xbb\xdd\x90\x07\x27\xd4\xf5\x57\x9a\x4b\x21\xfa\x6e\x5e\x86\xcb\xcd\x33\x49\xce\x3d\x38\x3f\xcb\x46\x06\x9b\x23\x36\x7f\xac\x66\xef\xd0\xd2\x18\x1b\x9f\x57\x1a\x86\x7c\x74\xf7\x67\x1d\xc7\x83\xf4\xc1\xe1\x5c\xb6\xb9\x2f\x03\x50\x1a\xc5\x8e\x20\x07\x0b\xb1\x79\xd9\xca\xbc\x1c\xb6\x6b\x1a\xd1\x08\x4b\x0c\x07\x5c\xd5\xe1\xaf\x84\x27\x18\x6b\x5e\x6d\xf7\x7f\xdc\xf5\x7f\x84\x28\x72\x9a\x0d\x1f\x07\xed\xdb\x39\x26\x17\xde\x79\x05\xc6\xe7\xc5\x6f\xb1\x24\x3a\x1b\x8f\xd3\x34\x30\x0e\x3b\x3e\x18\xfd\xf1\xdb\x27\x5c\x43\xe7\xa9\x08\x3b\xa5\x4c\xb8\xb6\xbe\x3c\x34\x53\x4e\x0f\xcd\x64\x8a\x12\xa9\xeb\xef\xab\xb0\x85\x51\x1e\x39\x43\xe7\x7a\xaa\x37\xc7\xbc\x69\x50\xf2\xea\x38\xfb\x34\x28\x57\x11\xbe\x96\xf5\xd3\xea\xe7\x35\x8a\x55\x6c\x56\x4f\xb7\x7f\x5d\x6d\x9f\xae\x0f\x9b\xfb\xeb\xc3\xf5\xea\xaf\xfe\x98\xc6\x86\xf2\x4e\xc8\x6c\xcc\x84\xcd\x29\x15\x44\x22\x0d\x22\x8a\x68\xc8\x02\x1d\x84\x30\x24\xb9\x4c\x03\xe6\xe8\x5b\x5f\x4f\xa6\x34\x61\x11\x86\xcc\xe1\xa0\x8b\x4e\x77\x58\x9b\x34\x51\x14\xfb\x4a\xd0\x70\x5f\xe7\x8d\xae\xde\xa0\xfe\x58\x0e\xdb\x68\x4a\x85\x53\x7b\xd4\x2f\x60\xce\x7e\xd5\xc9\xa9\x96\xd7\xe0\xcb\xf7\x30\x8e\xff\xa6\xd3\x06\x22\x4a\x53\x01\x08\x45\x41\x7d\x81\xfc\xdf\x67\xb8\xd4\xdd\xa6\x34\x8b\x22\xa3\x86\xfa\x83\x33\x32\xa3\x6a\x10\xa5\x19\x61\xe8\x6d\xfd\x01\xc8\xdf\xf1\x67\xff\xf7\x54\xa0\xc9\xb9\x92\xa5\xae\xea\x9b\xaa\x3e\x9e\x0b\xd9\x0f\x2a\x4d\x87\xe4\x01\x8a\xd8\x4e\xef\x52\xa6\x14\x3f\x8d\x1f\x65\xde\x7e\x0c\xd0\x3e\x4a\xa5\x51\xd1\x10\x4e\xf9\x8e\xd0\xfe\xb9\x2b\xe6\x65\x68\xf7\xfb\x9d\x2b\xb9\xe7\xd3\xd6\xd7\xcf\x13\x97\x9f\x71\xd2\x51\xaa\x04\xc3\xd0\x04\xde\xa0\x6c\x67\x08\x62\x4a\x55\xe2\x84\xaf\x9f\xbf\xa0\x32\x0d\x53\x95\x2b\x57\xd9\xbc\x28\xa6\x2a\x97\xf3\x7f\x3f\xd1\x9e\x9a\xbd\x41\x65\xb2\xd8\xb7\x5e\x5e\xd5\xa1\x98\xd7\x9f\x4d\xd3\xcc\xda\xd1\x66\xd8\x99\xfd\x4b\xee\xca\x30\xd9\xe8\x58\x84\x25\xb8\x32\xff\x83\x12\xc7\xcb\x7b\x1e\x35\x91\xa5\x8e\x40\xbe\xec\xcc\xf2\x1a\x3d\xa0\x20\x91\xb1\xbc\x68\x0d\x93\xd2\x29\xc7\x35\x55\xe1\x59\xbb\x26\x09\x28\x6a\x12\x82\x44\xc6\xa7\xba\x7a\x93\xb3\xdc\x1e\x85\xd4\x51\x2e\xda\xe2\xdc\xbc\x2c\x43\x52\x29\xb5\xda\x85\x0c\x57\x9d\x4d\x0f\xcb\x93\x45\x82\x60\xaa\xc2\x55\xb1\x3c\x19\xe5\xb7\xfc\x0d\xbe\xf7\x58\x4b\xca\xa2\xcc\x51\x8e\x17\x79\xe9\xb4\x44\x86\xd2\x03\x65\x24\x4e\x98\xe7\xd5\x19\xa3\xa5\x86\x5c\xd7\x94\xcf\x82\x32\x22\x41\xf9\x9a\xb9\x47\x0d\xec\xbd\xb7\xfb\x24\xcb\xd7\x21\x39\x35\xfb\x59\x9c\x3a\xb6\x16\xdf\x84\xda\x93\x78\x76\xbb\x71\xe7\x29\x97\xe6\xdb\x50\x13\x60\x31\x64\x88\xf7\x5c\xe2\xe2\x49\xc3\x1c\x6b\x31\x1d\xe1\xbe\x32\xef\x1d\x8e\x1b\x68\x50\x09\x0f\x93\x05\x28\xec\x30\x7d\xa0\x8c\x82\x81\x51\xb8\x89\x78\xae\x31\x46\x91\x32\x46\x1c\x89\x35\x26\x75\xba\x87\x5a\x2e\xe4\x74\x18\xb3\x09\x26\x54\x56\x93\x6a\x17\x65\x5c\x27\x68\x39\x0e\x9e\x58\x75\x5f\x2d\x01\x22\x28\x13\x71\x6c\x7d\x62\x0b\x79\x08\x5c\xfe\x28\x1c\x45\x50\x27\x64\xe6\xa5\xab\x86\x3f\x6b\x54\x4b\x43\x03\x72\xa9\xd3\x4b\x99\x90\x12\x69\xa0\xb7\xfb\xfd\x5d\xff\x23\x90\xd8\x5f\xff\x58\xe7\x47\x39\xbd\xd8\x6e\x79\x92\x71\x81\xfd\x66\x4c\x78\x1f\x26\xa5\xc2\x86\x0f\x52\x16\x52\x97\xfd\xeb\x4a\x99\x2b\xc7\xbe\xe7\xed\xcb\x75\x2d\xdf\x91\x5e\xde\x8f\x65\x44\xa4\x8e\x28\x0a\x91\xbe\x3b\x59\xf8\xd5\x35\xc2\x03\x53\x26\x39\x87\x5e\xea\x18\xf9\xc2\xf7\xef\xd5\xb5\xfc\x68\xc6\xc4\x0d\x94\x49\x6b\x6c\xff\x4a\x1e\x54\xa0\x73\xa1\x4c\x91\x38\x72\xdc\x3a\x8d\x3e\x83\x33\x3f\xd3\x27\xa2\x08\x43\x6c\x54\x3d\x17\x0b\x0b\xe3\x94\x61\x5a\xf2\x76\xbd\x99\x3c\x1a\x25\x68\x80\x6e\xdc\xc9\x5f\x57\x73\x80\x9a\x9f\xa5\x19\xcb\xfc\x5e\x79\x82\xfa\xb1\xea\x1f\x8d\x56\xc2\x41\x87\x5a\x59\xb7\xf7\xf0\xab\x1d\x85\x25\x7e\x8a\x21\x02\xeb\x8c\x75\xd5\xb9\xe2\x87\x02\x6c\xfb\xdb\x42\xa2\x81\x19\x92\x06\x44\xed\xef\x79\xf9\x6c\xaa\xa3\x4b\xe6\x8f\x23\x45\x66\xac\x2b\x0e\xdd\xc3\xfb\x0e\xea\xd3\x5c\x75\x89\x32\xe8\x6c\x86\x4f\x2f\x83\xc9\xb5\x2c\x02\x22\xe5\x09\x4e\xc5\xc7\x72\xf1\x2b\xfc\x56\x48\xee\xda\x37\xcd\x4f\x50\x4d\x3e\x14\x02\x67\xf3\x64\x82\xb8\xae\x43\xe1\x2c\x12\xbf\x40\x06\x4c\x57\x16\x68\x86\x71\xf3\xe6\xcf\xfd\x61\xfd\x70\xf7\xb8\xba\xff\xeb\xb0\xdb\xaf\x7e\xdf\x1c\x86\xcc\x25\xb3\xdc\x3a\xf4\xcd\x0b\xe8\x57\x30\x87\x59\x57\x34\x65\x36\x75\x3a\x5c\x27\x59\x3b\x45\xad\x7d\x15\xea\x1e\xb3\x67\x60\x55\x8c\xbd\x17\x8e\x23\xfc\xee\xc7\xed\x7e\xfb\x78\xbb\xdd\x3c\x1d\xb6\xeb\x07\xea\xcf\xc7\x23\x12\xa1\x80\xd5\xae\x9e\x54\x5c\x3a\x47\x2d\xf0\xa6\xfe\xac\xea\xd9\xa1\x79\x94\x11\xea\xf8\xd7\xdf\x16\x9a\xf1\x29\x27\x22\xa5\x71\xa8\xed\x9d\x4e\x45\x3e\x14\xf6\x78\xcc\x0d\xe2\xd3\xef\x56\x7f\x1e\x02\x24\x6c\xf7\xe3\xf1\xf1\xf6\xaf\x7e\x86\xa0\x58\x10\x05\x5d\x35\x1f\x4d\x0b\xc7\x49\x2a\x92\xc7\xe0\x94\x80\x9f\xaa\xff\x40\xfb\x2a\x91\xec\xb7\x1f\xf3\x14\x91\x88\x03\xc9\xf5\xb8\x43\x6b\x9e\x17\xe5\x94\x39\x47\xfb\x1e\xda\xd7\xbc\xdb\x4f\x57\xe6\xad\xdb\x07\x5d\xde\x79\x95\xd7\x13\x8d\xc4\xcf\xa1\xe1\x94\x33\x1a\x33\x27\xfc\xd2\x77\x5d\x3d\xbc\x8e\x20\x0c\xb3\x48\xf2\xbf\x69\xb8\x04\x2e\x18\x72\x04\x74\xcb\xb4\x0b\xf9\x96\x71\x81\x94\xf3\x34\xc5\xad\x3d\x20\x68\xfe\x8d\x6c\xee\x93\x85\xc1\x79\x96\xa0\x80\x01\x98\x67\x78\xcc\x9f\x8f\xe1\xa3\xf0\x3b\x09\x17\xb1\xc2\x6e\x95\xee\xf3\x74\x94\x24\x23\x9e\x58\xca\x85\xa5\x5c\x05\x62\xff\x16\x6a\xec\x5c\xad\x67\xf9\x47\x9e\x30\x97\xe1\xc4\xe8\x37\x9e\xe7\x68\x78\x92\x3a\x04\x98\x3d\x17\x9d\x83\xb4\x1c\x42\xf3\x24\x73\xec\xc9\x8e\x55\x6e\xf7\x52\x05\x3f\x9d\x27\x8a\x9a\xa0\x97\xd1\x53\x8c\x2f\x15\x1f\x67\x07\x34\x6e\x1f\x40\xed\xba\x00\x8a\x0c\x63\x10\x63\x8c\x74\x97\x97\xbb\x22\x3f\x9d\xe4\x33\xdc\x20\x69\xd8\xee\x73\xd1\xe0\xe1\xa7\x08\x65\x09\x05\xaa\x5f\x97\xde\x5e\xbf\x98\x52\xa2\x11\xd7\xd2\x1a\xc7\x03\xe2\x10\xb8\xdb\xf2\x27\xe4\xe1\x4a\x52\x41\xf1\x4a\xd6\x50\xb7\x4e\x53\x12\xfe\xae\xd9\x66\x76\x41\xa9\x26\x98\xfe\xf6\x04\x98\xe1\xc0\x99\x50\xa9\x4f\x36\xdd\xde\xfe\xe1\xf0\x8b\x31\x0f\xa3\x32\x72\x85\xc8\x16\x9a\xf6\xbe\x7a\x5f\x17\x3d\xc0\x87\x72\x49\x1c\x87\xbf\x4b\xd1\x6e\x9e\xd6\xb1\x6b\x88\x08\xd5\xc3\xe5\xcb\x90\x86\x87\x72\xe0\x5d\xfe\x0b\xcc\xae\x95\xfa\x75\xea\x27\x73\x69\x1c\xd8\x03\xc3\xaa\x5a\xb6\xf0\xe3\xf4\x89\x2f\xca\x25\x70\x6c\xcd\x7a\x82\xe6\x7c\x74\x7e\xd6\x6a\x54\x65\xe8\xaf\xd5\x4a\xce\x7a\x4f\xe8\x09\x4e\x95\x97\xfc\x9b\x7e\x34\x13\x97\x94\x2b\xe5\xea\xf7\x25\xfc\x6a\x43\x13\x52\xdf\x85\x43\xb9\xa6\xdc\x91\x68\x74\xfb\x96\xdb\xb3\x8a\xf1\xe2\xd1\xc0\x22\xe9\x85\x1c\xa7\x64\x1c\xd3\x27\xa2\x41\x8d\x52\xdd\x53\x4a\xd5\x7f\x7d\x52\xec\xe3\xda\x26\x98\x22\x7d\xcf\x4b\xe7\x25\x7c\xa5\x56\x4b\xb9\xd1\xd4\xfa\xfe\x3b\xef\x65\xfc\x13\x9d\x5e\xca\x81\x10\xfc\x64\x77\xd0\x9e\x4f\x9e\x8a\x69\x36\x83\x52\x8c\xd4\xf7\xae\x33\xa8\x33\x0d\x0d\xa6\x17\x97\x13\x48\xdc\x46\x4e\xbe\x63\xb5\xde\xde\x4c\x36\x0d\x6b\x21\xf3\x4d\x8c\xdf\xa1\x28\xaa\xc9\xa6\x2d\x22\x41\x10\xca\xba\x83\x91\x65\xf8\x2c\xb3\xb8\xf8\x0c\x44\x64\xb3\xc8\xc3\x2f\x31\xc1\xeb\xd2\x7a\x23\x4f\x5f\x90\x28\x75\xb4\x3f\x5e\xad\xbf\x69\xde\x2f\xd4\x28\xbe\xca\xdc\x0a\xc2\x58\xa0\xa7\x72\xc4\x6d\x33\xd3\xd3\x4f\xb3\xf8\xcd\x41\x89\x24\x72\x05\x7a\xd6\x5e\x4c\x86\x0a\xa2\x28\x3e\xa1\xfd\x84\x44\x70\xf1\x69\x8a\x38\xb2\x18\x01\xe2\x1a\xfc\xd9\x7d\x75\xe7\x39\xa0\x70\x72\xe6\x58\x68\x64\x8b\x59\x15\x45\x60\x57\x6c\x9e\x02\xbd\xe1\xec\xd0\x3a\xc2\x86\x1b\x69\x6d\x5e\xe4\xb2\x85\x5b\x78\x0b\xc2\x15\xdd\x28\x21\xe3\x4c\xeb\x72\xcb\x03\x15\x94\x69\x54\xee\x3b\x37\xb0\x3b\xa3\xdf\xf7\x3e\x6c\xe7\x82\x66\x14\xc3\xc2\x55\x51\xff\xa7\x71\x7d\x9b\x61\x04\x52\x3c\x7b\xa8\xe8\x0e\xe6\xe5\x72\xc9\x2e\x9f\x99\x73\xa7\xb7\xfa\x56\xb5\xd0\x6c\x5b\x38\x2e\x85\x48\x82\x27\x89\x1c\x28\x7a\xb6\x4d\x73\x46\x04\xcf\x3f\xcc\x55\x2f\xa5\x0f\xc2\x81\x81\x60\xbe\xf1\x2a\x2f\x9f\xab\xdb\xfc\xf9\xa5\xbf\x35\x91\x02\x62\xd0\x03\x83\xc7\xa8\x1e\xb3\x88\x3b\x10\x42\x5a\xf4\x29\x9f\xf6\xeb\x65\x8f\xc2\xcf\x4b\x12\x2d\x7b\xf7\x6f\xeb\x69\x01\xa6\x98\x24\x91\x48\x49\x3d\x53\x8f\xcf\x9d\x04\x6d\xc9\x30\x23\x15\x11\x22\xbe\xf3\x32\x6f\xa7\xf5\x11\x91\x89\x18\xd9\xd0\x0f\x48\x99\x88\xaa\x6a\xd3\x4f\x2c\x93\xb1\x13\x02\x74\x0c\xfd\xab\x63\xbb\xaf\x3c\x5b\xff\x7c\xa6\x8e\x51\x35\xb8\x76\x16\xc3\xed\xaa\xe1\x3c\x52\x08\x0c\x44\x0a\xd7\x13\x3a\xb9\x49\x99\xa6\xb8\x7f\x5c\x6f\xfe\x38\xdc\x6c\x82\xeb\x2b\x94\x20\xb8\x8b\x6b\x59\x9b\x18\x17\x99\x2b\x55\xb6\x43\x94\x13\xb6\x5b\xa1\x52\x8b\x26\x6b\x27\x8b\xa3\x2c\x0f\x65\x75\x94\x65\xbe\x47\x62\x92\x3e\xcf\x24\x0c\xb3\xd6\x73\xb3\xbf\x2c\x86\xa5\xc2\x24\x99\xe8\xe3\x96\x05\x41\x79\x2a\x4c\x6a\x8d\x2f\xcd\x20\xbf\xb7\x2c\x5f\xe7\x89\x17\x61\x24\xc7\xe0\xb6\x17\x6a\xa8\x9e\x67\x47\x01\x02\x9e\x1e\xfb\x78\x3a\xb7\xe0\x49\xb0\x66\x87\x01\x9a\xa2\x02\x0e\x74\xaf\x7d\xe2\xf2\x0a\x00\x86\xe2\xbc\xbb\xcd\xe6\x7a\x77\xd8\x3f\x1c\xbe\xaf\xf6\xeb\xef\x07\xd2\x79\xf6\x61\x8e\x15\x0c\x3d\xf6\x7a\x5b\xde\x9c\xfa\x3f\x1a\x1d\x41\x88\x66\x51\x2c\xa7\x7b\x55\x17\x74\x85\x54\x58\x30\x41\x1d\xca\x41\x69\x5d\xbb\x83\x99\x97\x3a\x93\x28\x92\xd6\x09\x28\x75\xaf\x47\xcb\x39\x4b\xf9\x17\xff\x84\x23\x50\x15\xae\x09\xd5\xc3\xe6\xd9\x9a\x84\xf0\x0c\xbd\xc0\xdd\x5f\x6b\x9f\xda\xc0\x56\xe9\x3e\x11\x1b\xa6\x69\xa7\x04\x9e\x37\x3f\x01\x5e\x37\xe5\xcc\xfa\x25\x04\x18\x26\x7d\x91\x59\x66\xa8\xa5\xf9\xf6\x6d\x9a\xc4\xb1\x13\xc9\xb8\x7f\xdc\xed\x17\x70\x57\x49\x1c\x2b\x4f\x79\x3d\x6e\x63\xa4\x49\xcc\x13\xe4\x6b\x70\x70\x43\x6c\x54\x1b\xa1\x4b\x97\x5c\x9c\x24\x36\x36\xcb\x02\x9b\x53\x2b\xeb\x8f\x9b\xce\xff\xbc\xcc\xe1\x25\xd4\x52\xc5\x7a\x25\x4f\xf3\x0f\x64\xcd\xa7\x29\xcf\xe9\x69\x3b\xb7\xbe\xb3\xcd\xd7\x4f\x3f\xbe\xe1\xb2\x79\x7c\x7a\xb8\xfe\xb1\xde\x1c\xc8\xef\xdb\xdb\x80\x3f\x4d\x78\x4a\x31\x89\x1c\x80\xd4\x68\x52\xc6\xfb\x7a\x22\xd2\x0c\xdf\x18\x3c\x4f\x82\xc4\x24\x11\xcc\x04\x89\x9b\x3a\x37\xcf\x70\xd7\x8b\x8a\xd3\x24\x49\x08\x49\x42\x4a\xa1\x7e\x85\x36\xb4\xeb\x86\x71\x6d\xf1\xf5\x95\x3e\x49\xb6\x1e\x18\x87\x87\x39\x86\x60\x72\x6a\xfd\x52\x55\x0d\xfc\xfc\xfe\xcd\x81\x3b\x83\xe3\x33\xbd\xdb\x94\xc7\x4a\x8c\x09\x35\xeb\x4b\x5d\x07\x9a\xa4\xd2\x31\xe0\x3f\x43\xbb\x6a\x7d\x6e\x6f\x7e\xa4\x8c\x52\xed\xc1\x0e\xdd\xe2\xbc\xf1\x14\xe6\x13\x2b\x96\xc8\xd4\x91\x3d\x1f\x7d\x74\x10\xae\x59\x11\x89\xcd\xd9\xbf\x6f\xf7\xfb\xbf\x0e\x57\x3f\x9e\xee\xc7\x5a\xa8\x34\xd1\x3c\xc5\x82\xc3\x5f\xd5\xb9\x6e\xe1\x75\xf2\x40\x75\x46\x44\xec\x52\xf5\x87\x63\x5e\x82\x39\x34\x63\xcc\x6c\xa2\xad\x0c\x10\xbf\x00\xe5\xd9\xae\x1f\x96\xb0\xff\x34\x31\x91\x93\x0f\x3f\xbe\xa2\x51\xec\xe1\xdc\x34\x31\xca\x62\x59\xee\x90\x37\x1e\x95\xb1\x52\x73\xa7\x30\xb1\x5c\xf9\xaf\xeb\xf6\xc7\xbd\x63\x4e\x0c\x23\xc2\xb5\xea\x9e\x1b\xa8\xef\xe4\x2b\x2c\xa7\xc1\xbf\x0c\xad\x12\x2b\x05\xc2\xd5\xe5\xe9\xb4\x0a\x0c\x02\x23\xf6\x00\x9a\x46\x52\x39\x9a\x16\x0c\x57\x26\x1e\x50\x4a\x32\x8e\xde\xd5\xdd\xea\xcf\xc3\xcf\xef\xdb\xfd\xe6\x76\xbb\xdb\x6f\xae\x0f\xeb\x11\xa0\x28\x25\x32\x4a\x54\xa8\x6c\x35\x6d\x75\xbc\xce\x9b\xce\xf6\xde\xc0\x27\x95\xdd\x94\x00\xc1\x0c\xf2\x5b\x90\xfc\xef\x1e\x8c\xbb\x6a\x27\xcd\x8d\x24\x07\x2e\x7b\x3a\x12\xbb\x9b\x1d\x85\x8a\x88\xfa\xf3\x22\x5b\xcc\x77\x59\xd8\xdb\xdc\x8e\xa8\x34\x68\xca\x44\x94\xb0\xd0\x28\x05\x6f\x79\x75\x6e\xae\x65\xfd\x5a\x56\x06\x96\xb9\xa8\xba\x9f\x58\x84\x52\x37\x2f\x55\xdd\x0e\x3d\x1a\x34\x65\x86\x63\x92\xf4\xea\x5c\x96\xe3\x2a\x4b\xca\x33\x81\x39\x98\x5e\x99\x64\xf1\x4d\x74\x41\x29\xf3\xd9\xae\x1f\x79\xd9\xce\x64\xd4\x3f\x71\xc7\x27\x06\x3d\x15\x3c\x76\x7d\x2a\xc6\x84\xfa\x69\x2f\xfb\xf2\xdb\xec\x6c\x16\x22\x33\x4e\x67\xef\x03\x43\xe0\x74\xf9\xa5\x89\x48\x12\xbf\xef\x3e\x9e\xd5\x48\xfd\x60\xf6\x5c\x12\x43\xb1\xb9\xd0\x39\x40\x93\x5d\x33\x4d\x45\x16\x80\x6f\x0e\x5c\xbe\x87\x79\x0d\x3e\xcd\x98\xd4\x74\x40\xee\x38\x4b\xd5\xad\xea\xda\x65\xd5\x3e\x07\x43\xf8\x03\x48\xeb\x0a\x38\x63\x26\xa2\x4b\x53\x9c\xaa\x58\x82\x09\xc4\xa5\x0b\x61\xeb\xe5\x9d\xa9\x44\x65\x59\x48\x65\x55\x36\x6f\x9f\xb0\x1e\x3c\x9b\x94\x59\x04\xed\x9d\x64\xb7\xa5\xfc\xa8\x8b\xc5\x54\x65\xaa\x29\x4f\x5d\x35\x1c\x79\xc6\x9c\x13\x7e\x35\xca\x04\xa4\x9a\x3a\x76\x80\x20\x5b\xbb\x9d\xd7\x66\x52\x9d\x45\x48\x01\x86\xa9\x9f\xc6\x13\x8c\xad\xab\xa3\x2f\xe2\x6e\xcb\x47\xa8\x75\x7f\xb8\x8c\x47\xbd\x18\x62\x5e\xbe\xc9\x22\x77\x69\x35\x4f\x76\x1b\xa6\x99\xd8\xb8\x12\xe1\xa3\x3c\xf7\x3b\x7b\x6a\x88\x32\x3d\xf9\xed\xd5\x59\xa9\x02\x76\x55\x7d\x81\x09\x4e\x0d\xe5\x18\xda\xaa\xf3\xc7\x9f\xa5\x3c\xce\xf0\x02\x29\xf8\x8e\xe0\x2e\xf8\x77\xa9\xb0\xa8\x1f\xe1\x0e\xf9\x53\x61\xf5\xfd\x93\xb4\x5b\x6a\x09\x60\x23\xf6\x63\xf5\xfe\x5f\x55\x39\xd9\x13\xb3\x28\x8b\x31\x38\x18\x2a\x44\x0f\xe5\x27\x08\xb5\x2c\xca\x0c\x2e\xe6\x4d\xfb\xb2\x96\x65\x29\x55\x3e\x33\xd6\x59\x24\x99\xc3\x67\x23\xf9\x8d\xff\x88\xbe\xe6\x63\x99\x04\xb1\xe1\x91\x64\x24\x4b\xd1\x53\x6c\xf3\x23\xdc\x82\xed\x9c\xf7\xaa\xec\xde\xc2\x48\xdc\x99\x66\x71\xec\xda\xe0\x76\xeb\xfd\x9f\xfd\xdf\x68\xcc\xd3\x19\xf6\xd8\xf5\x9a\x06\x52\xf9\x85\xe0\x2b\x8b\xb9\xee\xfd\xc6\xaa\x3a\x86\x26\x8e\xe9\xfd\xc7\x49\x82\x19\xdb\x7b\x78\x91\xc5\xc8\x46\x65\x71\xaa\xad\xcf\x7f\x2e\x01\x48\x32\x9a\x44\x58\xb6\xf5\xfa\x59\xbd\x24\x14\xcd\x98\xd6\x99\x70\xc6\xba\x5b\x7d\x58\xd1\x5f\x8c\x97\x33\x4e\xb2\xe0\x7b\x39\xf4\x51\x5e\x3e\xff\xcc\x4b\x53\xbd\xdf\x60\x4d\xfb\x35\xe8\xe5\x86\xf9\x46\x47\x62\xd4\x2e\xda\x39\xcb\x7d\x1d\x3a\x4c\x4a\xa8\x13\x42\xc4\x38\xed\x80\x04\xe2\x1e\xc9\xb9\x68\x25\xb2\x44\xf8\x26\xd5\x6e\x99\x4f\x69\x4f\x68\x96\x24\x19\xa2\x02\xa5\x31\xee\xf3\xb8\x34\x9c\x59\x6a\xe4\x08\x82\x3c\x74\x60\xdd\x54\xf5\xef\xf0\xe1\xf6\xa7\x70\xbc\xd4\x2a\xe3\x02\x7b\x80\x9f\xb2\xfd\xa4\xf5\x89\x66\x52\xe9\xc0\x18\x79\xeb\xc8\x9b\xcd\x05\xd0\x7c\x52\x9c\xc9\x54\x46\xb4\x27\x34\xb9\x72\x16\xf7\x52\x2b\x9d\x66\x0a\xa2\x50\xc2\xb9\xad\x64\x79\x93\x17\x45\x4f\x46\x39\x7d\x37\x86\xc5\xc2\xd9\x25\x5d\xd5\x66\x5f\x7d\xd6\xe4\x36\xbb\x70\x93\x38\xf2\x78\x64\x57\xad\x77\x1f\xc7\xa1\x46\x96\x01\x71\xea\x73\x2e\x1b\xe0\x50\x11\xbb\x53\x5e\x0e\x35\xa4\xe5\x64\x43\x06\x99\x53\x36\x96\x05\xd4\x4e\x95\xbf\xba\x58\xc8\x96\xcb\xc0\xea\x3f\x5b\x35\x36\x31\x01\x29\xea\xe9\xcf\x27\x95\xfc\xcc\x4a\xa7\xe7\x93\xf7\x32\xec\x63\xaf\x54\x46\xa9\x93\xdf\x7f\xac\xab\xe6\x04\xf5\xe3\x08\xaa\xf1\x0f\x1a\xb5\xfc\xc7\x28\x29\xe5\xf8\xe2\xd7\x35\x98\xbc\x5d\xcb\x7a\x6c\xb1\x24\x96\x71\x3d\xdc\xcc\x27\x78\xe7\x52\xa7\x54\x32\x66\xd1\x32\x60\x89\x12\x71\x34\xd3\x97\x2b\x99\x48\x75\x48\xde\x3f\xcb\x36\x70\x05\xce\x51\xa2\x92\x25\x14\xfd\x0a\x5b\x54\xb2\x9d\xac\x4f\xc9\x12\x89\x2d\x92\x9b\xf6\x65\x0f\xf5\xf1\x3a\x88\xe3\xf9\x61\x41\x24\xd6\x52\x11\xbc\xdf\x6d\x36\xf3\x32\x83\x14\xa9\x45\x9f\xe7\x1e\x9e\xff\x21\xb6\x54\x0a\x10\x98\x9f\xbf\xae\x4a\x74\xec\x76\x50\xb6\x57\xe7\x2e\x1a\xbb\xae\xce\xea\x33\xf5\x04\x2a\x93\x84\xd3\x68\x10\x83\x70\xc8\xde\x30\x96\x2a\x4c\x80\xdc\x7d\x4c\x5b\x92\x64\x62\x13\x96\x0d\xba\x7d\xb9\x74\x3d\xa9\x41\x41\x60\x7a\x86\x34\x71\x5c\xdf\x4e\x8a\xf0\xc1\x5e\xc9\xe7\xfd\xc7\xa9\x2f\x2d\xcb\x34\x15\x48\xdb\x61\xb1\x0d\xf5\xaa\xce\xf5\x45\x86\xf0\x13\xdd\xac\xd1\x39\x52\x27\xa7\xaf\xce\x1f\x23\x58\xbe\x4c\x4d\x86\x21\x82\x0c\xad\xd0\x03\xe3\x4c\x98\x92\xc5\x36\xe0\x53\x56\x6f\xb2\x95\xf5\x65\xee\x40\xca\x34\xc1\x16\x4a\x54\x1a\xfb\x86\x6d\xd2\x43\xd1\x5b\x2a\x9e\x61\x49\x6e\xf3\xb8\x1b\x99\x7e\xa9\x52\x1e\x79\x3f\x79\x8a\x06\x09\x9f\x8c\x54\x52\x61\xd1\xeb\x3d\xf0\x00\x1f\xa4\x31\x1f\x73\xce\x45\x2a\xb5\x8a\x30\x96\x58\xbf\x80\xdd\xae\x43\x58\x2b\xb5\x49\x94\xd3\xf3\xca\x8b\x5e\x63\x8a\x4a\x88\x45\xe6\x1b\x47\x10\x1f\x3d\xf9\x44\xc0\x6a\x19\x8d\x52\x96\xfb\x17\x68\x2f\x29\x05\xa8\xb4\x09\x77\xfc\xec\xce\x08\x5e\x83\x34\xb7\x3d\xc9\x15\x55\x11\x35\xc8\xd8\x74\x21\x4a\x39\x7d\x2d\x2a\x82\xd4\xf8\x6a\xe5\xd7\xce\xa0\x22\x84\x59\xcf\xf8\x75\xf7\x31\xae\x78\x2a\x12\x03\xde\xcf\xd5\xb4\xa2\xaf\x48\x46\x53\xff\x0b\x04\x86\x2c\x11\x85\x84\xa9\x9a\xc7\x7e\xb9\xee\xf2\xde\xf5\xc7\xb5\xe5\x73\x25\x2a\xe6\x8c\x0f\x0a\xc8\x8f\x55\xdd\xda\xaa\x98\x7b\xa3\x8a\x92\x14\x91\xf8\xab\xed\xc3\x2e\x5c\x07\x4d\x84\x23\x50\xef\x76\xca\x5d\x2b\xdb\xf3\x45\x88\xb3\xd8\x26\xa3\xa8\x94\x6c\xbc\x0f\xaf\xfc\xf7\x31\x7d\x15\x8a\x47\x06\xad\x05\xbc\xfd\x9e\xeb\xd7\xca\xda\xaf\xf7\x0e\xc5\x49\x2c\xfc\x73\xf9\x03\x30\xc3\xb2\xd0\xf1\xa6\x84\x4e\x02\xb5\x5f\x90\x8a\x29\xe4\xf3\x28\x86\x53\x42\x3b\x09\x2e\x1f\x38\x3c\x42\xed\xfc\xe9\xe9\x71\x12\x93\x69\x8f\x50\x19\xbf\x9c\xc4\x1a\xf4\xb5\x3a\x97\x09\x19\x4c\x42\x02\xd9\x5b\x72\x95\x92\x18\x4b\xe0\x75\xfc\x47\x68\x79\x0c\xbf\x4d\x33\x2d\xfc\x1e\x34\xc2\x0d\xae\xda\x69\x9f\xd8\xf4\x32\x52\x09\x2e\x51\x93\x1f\x8f\xb0\xef\x6e\xfb\xb3\x40\x53\x65\x49\x8a\xc4\x87\x27\xf4\xe4\x5c\x2b\xf1\xf4\x89\xcb\x58\x63\x5a\x75\xe8\x34\x80\x41\xff\x76\x39\xca\x54\x4a\x48\xe1\xdd\xc4\x23\x1c\x6b\xf8\x77\x73\x49\xf4\x4c\x95\x26\x02\x79\xc0\x65\xdd\x0e\xbe\x96\xd2\xa9\x40\xb0\x07\x22\x5c\x77\xed\xf9\x94\x9b\x9b\xe2\x6c\xed\xc7\x63\xee\xa1\x58\x21\xa5\xa7\xb4\x75\xb4\x3e\x4a\x99\xc9\xf3\x36\xb1\xc0\xfc\xab\x23\xea\x77\x86\x6c\xe7\x2c\xfa\xec\xe6\x8c\x00\xc4\xd9\xf6\x12\xe8\x55\xfd\x17\x74\x71\x7c\x7f\x28\x29\x03\x31\xbb\x73\x76\x43\x96\x7e\x12\x7b\x2a\x63\x2c\x3a\x88\x2f\x55\xdd\xf4\xb6\x5c\x19\xab\x90\x76\xc3\x37\x1b\x8f\x1c\x08\x65\x05\xc5\xa2\xf8\xc9\xb3\x93\x40\xbe\xf1\x92\x2d\xd3\x67\x64\x13\x32\x16\x5f\x7e\xb0\xfb\x17\x08\x65\x88\xa0\xa4\xdf\x1f\x33\x61\xe0\xed\xcb\xef\x7f\xad\x17\x3f\x8c\x59\xcd\x43\x59\x9b\x88\x89\x9f\x79\x97\xeb\xba\x1a\xe9\x4e\x51\x1d\x65\x90\x0c\x5a\x77\xf7\x81\x00\x4c\xb0\x49\x1b\x1a\x19\xd3\x3f\x53\x1d\x19\x9a\x06\xff\xa8\xa8\xda\xed\x27\xfb\xad\x26\x4c\x79\xe0\xf4\x5b\xf5\x0a\xc8\x2e\x16\x46\x78\x86\x06\x0d\x79\x8e\xbb\x78\xb8\xdb\x36\x9a\xbe\xe2\xa0\x89\x8d\x30\xc2\xee\x22\x9f\x2b\xb0\x55\x0d\xbe\xe0\x1b\x26\xc4\x34\x45\x1c\xec\xe3\xc3\xdd\xfa\x61\x7b\xdf\xff\x39\xa1\x08\xfe\xbc\x86\x37\xd7\xa0\x7e\xf0\x6c\xdc\xa6\x9f\x91\x71\xbc\xa6\xc7\x1f\x57\xb7\xdb\x35\xa2\x91\x7f\xec\xae\x0f\x8f\x9b\xa7\xc3\xdd\x6e\x73\x1f\xda\x04\x35\xa5\xd2\x35\x2d\x9d\xd5\x31\x0f\x9a\x1b\x8b\x56\x48\x53\xee\xa4\x72\x74\x75\x3c\x15\xd0\x42\xaf\x22\xdd\x1f\x4b\x70\x7c\xcd\x9b\xe3\xa9\xaa\x61\xc2\x20\x44\x35\x4d\xa8\x93\x77\xae\x8a\x37\xd8\xcb\xe6\xf5\x93\xb3\x70\x91\x21\x96\x0d\x1b\x90\x7f\xf6\x7b\xaf\xe6\x26\x45\x60\x43\x51\xb9\x2c\xd7\x83\xfd\x6d\xd2\x3a\xe8\xa7\x09\x9a\x61\x0d\x07\x23\xfe\x27\x68\x5c\x98\x00\xc6\xdf\x59\x98\xe5\xfb\x06\xfb\xce\x23\x54\xe0\xfa\x7a\xe7\xd3\xc2\x70\x34\x80\xbb\x2e\x20\x6b\xae\xa0\xfd\x6d\x09\x58\xa3\x05\x90\x28\x10\x5d\x86\x1a\xa6\x4b\x39\x0c\xc0\x00\x2d\xc0\x22\xcd\x93\x7b\xec\x8b\x6a\x5b\x8b\xc9\x72\xff\xf3\x94\xc4\x88\xc1\x79\xac\xaa\x22\x90\x7e\x86\x43\xa7\xa9\xa3\xbc\xef\xbc\xf6\x61\x3d\xa4\x9a\x46\xd0\x4b\xdc\xdd\x55\x06\x50\x71\x0a\xd9\xc6\xfc\x94\x4c\x12\x7c\xc2\xb2\xc0\x67\x0c\x64\xcc\x37\x1f\x26\x49\x26\x10\x9c\x7f\xa8\xde\xcb\xe6\x8b\x66\x57\x2d\xb9\x73\x65\x30\x84\x6d\x65\x5e\xb8\xca\xf7\x4c\x73\x88\x6a\x99\x38\x34\x7f\x5f\x66\xb8\xd0\x9a\xa7\x5a\xa6\x02\x45\x32\xcb\xf3\x2b\xac\x4e\xa7\xfe\x56\x65\x66\xd0\xdb\xaa\xca\x7b\x78\x0f\x28\xe8\xcf\xb8\x6e\xc2\x6f\x0c\x10\xa7\x94\xb5\x1b\x15\xd0\xc2\xa0\x8d\x4c\x0f\xa1\xad\x3e\x16\x2a\x2c\x5a\x45\xd2\xfa\x12\xc1\x55\xb7\xfe\x56\x75\x2d\x3f\x7c\x1e\x78\x12\x28\x6a\x15\xab\xd0\x4d\xef\x75\x6b\xbd\x2c\x60\xbf\x4d\xe8\xce\xfb\xc8\x1c\x3f\xe7\x7f\x4d\x1e\xb3\x52\x1a\x13\xf5\xb9\xae\x70\xaf\x0d\xdd\x7d\x5a\x13\x82\xa9\xda\x17\x97\xdd\xbd\x54\x71\xa2\xda\x10\xe1\x80\x6e\x2e\x46\x09\xb0\x39\x6d\x62\x8d\xe6\xdd\x55\xc9\x6e\xaa\x1a\xb4\x6c\xda\x0b\x75\xad\xc9\xbf\x24\xdc\x8c\xe1\x20\x89\x6f\x8b\xb9\x3a\x37\x8e\xf0\x6a\xc6\x60\x39\x7b\xd2\x26\x13\x58\x3f\xfe\xf3\x6a\x0f\x13\xe2\x07\x6d\xa4\x44\x8d\xb0\x63\x65\xa0\xd8\xf6\x6b\xd4\x68\x86\x6e\xd7\xd9\x71\xd0\x5c\xca\x1c\x84\x3d\x53\x03\x49\x32\x08\xc1\x34\x5e\xc3\xdd\x88\xe5\x28\x4c\x4a\x58\x1c\x07\xff\x73\xf3\xfc\xdc\x2f\x1b\xcb\x1d\x11\xfb\xe3\xb9\x94\x65\x3e\x61\xf8\xd0\x56\x19\x11\x74\x41\xab\xe3\x49\x96\x1f\x23\x46\x14\x6d\x0d\x63\xda\xc7\xfe\x6f\x50\x1f\xce\xa5\x6f\x61\x39\x28\x68\x87\xe3\x5b\xb0\x1e\xcf\xe1\x5b\xf5\xa7\xe4\x92\x6e\x9a\x89\x48\xea\x1c\xf7\x10\x2b\xdc\xa1\x1c\xef\xf4\x6d\x9a\x08\x00\x21\x44\xe7\x06\x6a\x5c\x0a\xb3\xd7\x6d\x08\x71\x74\xd5\x2a\x2f\x77\x5a\x5e\x2c\xff\x30\x8b\x65\x81\x09\x7b\x5d\x39\x1a\xa9\xf9\x71\x14\x24\x03\x57\x76\x17\xca\x3f\x8e\x2a\x97\x26\x66\x92\x7b\x34\xb4\x5b\x40\xf3\xdf\xd3\x18\x02\xf3\xe2\x20\x73\x15\xc6\x24\x0b\xe8\x2b\xb4\xeb\xdd\x1e\x39\x4f\x54\x18\x16\x27\x18\xee\xe6\xba\xda\x55\xc5\x44\x92\x8a\x1a\x96\x70\x8c\xc8\xbe\x9f\xcf\xe7\xf3\x51\x96\xbb\xff\x95\xfc\x7b\xf7\x7b\x9b\xfa\x64\xc5\xff\x38\x11\x10\xd3\x1f\x5a\x25\xee\xd1\xb4\x08\xc5\xf8\x29\xf3\x36\x2f\x9f\x9f\x60\x2c\xe2\xe6\xa7\xf2\xc4\xb5\xb3\xee\x4e\x52\xc3\xba\x96\xb6\x5d\xf7\x5c\x72\xd4\x08\x96\x61\xca\xb4\x97\xdf\xbb\x46\xb0\xe0\x27\xf9\x35\x23\xa4\x41\xb1\x2e\x89\x09\xcb\xaa\xfe\x78\x28\x5d\xbf\x93\xaa\x64\xed\x03\xcb\xb0\xe2\x8d\xd0\xd2\xf7\x86\x75\xf6\x1b\xef\x3a\x10\xfa\xcc\xae\x51\x80\x6b\x0f\xbf\xdd\xde\x6c\x6e\x1e\x9e\xee\xfa\xab\xb3\x12\x4b\x8d\x4f\xf0\x7c\x2e\x64\x3d\x4b\xe8\x99\x24\x16\x46\x04\x6e\x85\xfe\x8f\x89\x4e\xbc\x9e\x5d\x7b\xf1\x03\x65\x75\x20\xfc\x9e\xc0\xef\x2f\xd0\xab\xe1\x07\xda\xd9\xb4\x10\x1c\x2d\x9b\x0d\x93\x32\xc3\x86\xd2\x6e\x0f\xa9\xc4\x6d\x61\xf2\x4a\x53\xe5\xd4\xea\xf2\x66\x0f\xf2\xe8\xc5\xe6\x5c\xee\x62\xd8\xf8\x4c\x06\x51\xe2\xa2\xa2\x52\xef\x86\x56\x29\xa3\x22\x8e\x8c\x8d\x21\x6c\xee\x5c\xa9\xce\x47\xe8\xc7\x63\x86\x8c\x07\x8e\x69\xfc\x7c\xfc\x89\xe5\x8f\x30\xc8\x29\x66\x18\xd0\xcb\xd8\x41\xbb\x96\xe5\x5d\x8e\xa4\x97\xc3\x26\x6d\x54\xe2\x44\x20\xae\xb6\xf7\xbf\x6f\xfe\xea\x7f\xaa\x62\x04\x0a\xdc\xad\xfe\x3c\x6c\xf6\xdf\x11\x4e\x1c\xc6\x34\x95\x2a\x1e\x4b\xe9\xcf\xd2\x06\x46\x27\x8e\xd1\x20\x3c\x42\x4c\xf9\xe5\x55\x39\xf0\xb3\x51\xa3\xbb\xe0\xc3\x6b\x59\xe3\x86\x7a\x05\x28\xe3\x36\xef\xb3\x33\x26\x75\xfc\xbe\xee\x41\xff\x1c\xac\xd0\xe9\x34\x6a\x5d\x1a\xb1\x92\x8c\xee\xcd\x68\xa2\xa2\xa0\xe3\xba\xff\x3e\x3b\x32\x50\x86\xdb\x68\x7e\x3c\x15\x07\xd7\xa9\xfc\x84\x9a\x99\x9f\xbc\x72\x10\x76\xc4\x93\xf2\x1d\xea\x6a\xec\x5a\x91\xc0\x15\x11\x66\xa7\x31\x46\xb1\x35\xbc\x81\x33\x25\x33\x30\xe5\x92\x06\xe0\x3c\xc5\x6e\x40\x45\xa8\x1f\x77\x0b\xc7\xaa\xdc\x41\x61\x11\x39\xdd\x0f\xa6\x98\x90\xdd\xed\x57\x4f\xfb\xc3\xee\xf7\x07\x72\xf8\x71\xbf\xdd\xef\xfa\x71\x93\x62\x41\xfe\xee\xe3\x5b\x51\x29\xf8\x82\x90\x3b\xfc\xc0\x6a\x12\x0d\x11\x7c\x55\x5f\x7d\x2c\x56\xc0\x0d\x58\x83\x88\x98\xd5\xd9\xb4\xff\x4b\x1b\x07\x51\x2a\x8d\xcf\xc9\x0f\x44\x66\xe1\x86\x21\xca\x84\x57\xed\x0f\xdc\x7c\x8f\xb2\x69\xe6\x93\xb4\x70\x89\xbd\x2e\x7c\xdc\x57\x57\xe7\x7a\xe6\xff\x40\x64\x2c\x3a\x80\xb7\xf0\x06\xb5\x0c\x9c\x6c\x14\x88\x72\x1d\xd3\xab\xc9\x8e\x09\x04\x54\xea\x9b\x35\x77\xb9\xed\x8d\xc8\xe2\xcd\x43\x1c\x31\x8c\xe3\xbd\xfc\xdc\x58\x6c\xef\x5f\xf3\x99\x36\x4b\x02\xe5\x53\x55\xa8\x8f\x6f\xed\xc7\x09\x7e\x1b\xb2\x11\x10\x27\x8e\xb1\xe4\xbd\xaa\xcc\x7b\x55\xbf\x36\xeb\xbc\xcd\xe7\xa8\x09\x88\x81\x63\xf3\xee\x37\xd7\x39\x53\xce\x63\x6b\xa0\x34\x46\xbb\x7b\x2b\x9b\xf6\x80\xa9\xb3\x83\x03\x7f\x1c\x64\x69\xdc\x1f\x5e\x64\xf3\x72\x38\x0f\xb1\x17\x50\xe0\xd8\x0f\xf1\x13\x5e\x83\x67\x09\x8c\x68\xe4\xf3\xfa\xbd\x6a\x8b\xbc\xdf\x7b\x80\x69\x27\xf3\x7d\xaa\xab\x6e\x13\x08\x5d\x51\x01\x35\xb4\xb8\x97\x83\x20\x31\xf2\xb2\xa1\xb0\xd4\xec\x7a\x85\x76\x4e\x1e\x7a\x46\xd3\xf4\x46\xb0\x22\xdd\x1c\x5c\xfa\xbb\xb6\x3a\x8d\xfd\x32\x48\x62\x8d\x6f\xbf\x75\xe4\x4f\xed\xf7\xea\x08\x58\x7f\x0e\xe3\xcc\xb2\xa0\x15\xfe\x58\xc3\x49\xe6\x66\xd3\xbe\xec\xdf\x61\x94\x0b\xfc\x1c\x44\x05\x89\x90\xe8\xae\x3b\x14\x91\xa7\x43\x02\xe3\x1a\xf9\x66\x0b\x31\x91\x0e\x91\xa2\xbb\xc8\xc9\x65\x03\x27\x60\x0b\xc8\x08\x4d\x83\xf8\xc8\xfa\x61\x89\x39\x93\x42\x16\xa7\x42\xf4\xad\xd9\x79\xf9\x3c\x62\x01\xf4\x53\x64\x44\x89\x4f\x89\x3d\xe5\xed\x59\x16\x17\xe5\x05\x90\xa9\x49\x3c\xfb\x8e\xcf\x35\xfb\xb4\xc9\xf4\xc9\x2b\x9a\x60\x85\xa0\x8b\xbb\xd6\x2f\xb2\x7e\x86\xff\x73\xbf\x5f\x2c\x6d\x83\xe2\x32\xf4\x6e\x5e\xcb\x56\x1e\xe2\x00\xc2\x05\x4d\x09\x1e\x64\xbf\x20\xba\xd8\x8d\x5a\x9a\x0e\x84\x89\x57\x34\x9e\x3d\x35\x13\xa7\xc2\x51\xdc\x8e\x2d\xc7\x02\x6a\xd4\xcf\x07\x91\xa0\x46\x41\x1f\x07\xdf\x78\x99\xf9\x8b\xbc\xcb\x28\x2f\x62\x23\x92\x20\x0b\x5e\x2b\x5f\xa1\x1e\xba\xc0\x6d\x9c\xd1\x24\xee\xf5\x91\x7f\xe6\x48\x03\x3d\x71\xe3\x6c\x9c\x31\xe9\x21\x12\xfd\xce\xde\x2d\xc3\x30\x4e\x8d\x53\x74\x44\x27\xd4\xbf\xad\xe9\xeb\xb0\x8c\x70\x4c\x73\xc2\x2f\xd0\xe7\x16\xae\x41\xcb\x8f\xa0\xe9\x36\x47\xb4\x7d\x95\x9f\xb6\x4c\xc8\x50\xf2\x7b\xac\x8a\x5c\x7f\x4c\x08\x17\xc2\xa4\xd4\x22\x70\xae\x1e\x24\xae\xa9\x65\x5a\x21\x9a\xe8\xdb\x10\xd9\x7d\x9c\xa0\xd7\xb0\x9a\x1e\x81\xa7\x16\x3d\x57\xb7\xb9\x85\x2e\x85\xbf\xe1\xe9\x99\x1e\x42\x68\x81\x6d\x32\x27\x6f\x17\x02\x93\xd8\x7c\x56\xc2\x3a\x5b\xf2\xfd\xdb\xf8\xa3\xb6\x49\x94\x21\xa6\xcd\x9d\xff\x9f\x76\x6f\x4c\x4d\x8e\x4d\x22\x2b\xba\x87\x6e\x4a\xc9\x67\xa7\x4d\xa8\xa4\x03\xd7\x74\xdf\x91\xff\x95\x3d\x98\x7c\x0d\x36\x11\xa1\x93\xd2\xb1\x26\xde\x9e\xf5\xeb\x87\x83\x2c\xcd\xcc\xb5\x4d\xb5\x40\x58\x77\x8b\x9a\x49\x0d\x89\xa2\xd7\xd3\x28\xce\xb0\x59\x22\x62\x6c\xf6\x0b\x5d\x58\x23\x3f\xdf\x66\xa9\xab\xee\xf5\xd4\x15\xab\xa2\x78\x02\x1f\xc0\xdd\xf7\xd9\x52\x9b\xa5\x92\x7b\x8c\xb9\xc9\xcb\xe7\x11\x7b\x9c\xcd\x32\x10\xae\x99\xd1\x9e\x4b\x13\x48\xab\xbf\xec\xb6\x1f\x2e\x5e\xa5\x22\x28\x63\x7f\x93\xc7\xa9\x39\xb3\x1a\x52\x6c\xfe\xf3\xc4\x43\xe5\x33\x14\x6b\x59\x9b\x1d\xd4\x61\xd3\x4a\x27\x87\xf5\x99\xcb\x74\xec\x21\x85\x60\xc1\x1a\x9a\x20\xcd\xed\xfa\x45\x96\x25\x14\xf7\xf0\xfe\xb7\xaf\xfd\xeb\x05\x68\x84\x42\x57\xd6\x65\x38\xb1\x77\xc6\x25\x20\xd6\x8e\xac\x74\x69\xdd\x03\x75\x6a\xef\xbd\xb7\xe1\x9b\x19\xa7\x36\xcd\x82\x31\x11\x09\x35\x35\x44\xbb\x5d\x8f\x62\x9a\xd0\x76\xc6\xa2\x88\x69\x0c\x21\x27\xc8\xfc\x2f\x33\x76\x2c\x22\x1e\x42\xd4\xf4\x3c\x32\x98\xbd\xfe\x64\x72\xa2\x1d\x02\x01\x9a\xf6\x70\x55\x95\xe6\xb1\xea\x76\x27\x2c\xb8\xde\xc9\xff\xa9\x10\x4d\x1e\xe6\x66\x4e\x69\x09\x65\x25\xf1\x8d\x75\x3b\xc3\xa3\xac\x51\x70\x20\x4c\x92\x02\xdb\xee\x1b\x69\x61\x07\x33\x5e\x7a\x16\x11\x9d\x21\xa3\xc0\xf6\x7e\xff\xb4\x79\xdc\x5e\x3b\xd2\xea\xc3\xfe\xfb\xd3\x66\xf7\xfd\xe1\xf6\xba\x3f\x8c\xb5\xdc\x99\xc4\xa2\xf0\x59\xcc\x05\x9e\x85\xd9\xcd\xc4\x51\x8a\x10\x97\x3a\x7f\x7e\x69\x49\xfc\xdb\x6c\x94\x72\x3d\xd0\x20\xec\x6b\x69\x2e\xec\x82\x9f\x49\x23\x48\x7c\xe0\xbe\x75\xe0\xab\x27\x78\x83\xf2\x0c\xeb\xf0\x11\x99\xd9\xb1\xa9\x50\xc2\xe7\xef\x6f\x00\xbc\x09\xdf\xc3\xb8\x51\xb0\x9f\xa9\x59\x48\x0a\xd4\xd8\xf8\x1f\xa0\x14\xd7\x18\xcb\xe1\xa2\x1a\x89\x51\xb0\x88\x42\x2c\x95\x07\x47\xf9\x96\xfa\xfd\xfe\xa7\x43\xbc\x18\x3a\xcc\x82\xd8\x27\x32\xb6\x37\xbb\x4f\xde\x36\x4b\xa5\xe4\x33\x69\xc7\xaa\xfe\xb1\xbb\x9e\xbd\x25\x9e\x30\x50\x41\x17\xd5\xd3\xe9\xcb\x8f\xea\xfc\xb9\xd2\x57\x1f\x25\xb1\x48\x58\xa9\x7b\x2e\xea\x4b\xd3\xd7\x4d\x50\x78\x43\xf7\xa0\x5b\x59\xf7\x3b\xe2\x3f\x25\x02\xf3\x47\x49\x98\x46\x77\xe2\x4e\xfe\x1a\xaa\xd5\x2c\x4a\x64\xe2\xdd\xc4\x26\xd7\xc3\xb1\x3f\xb3\x00\x53\x0b\xfd\x95\x29\x63\x51\x9a\xa4\x4e\xf9\x0d\xa9\xf4\xdd\x72\x5c\xac\xd4\x84\xf9\x9a\x22\x1d\xe8\xf7\xed\xef\x9b\xfb\xbf\x8d\x64\x58\x94\x5a\xd7\x8b\x84\xec\xb7\x07\x35\xa1\xbf\x65\x51\x16\x31\xe6\xdc\xa0\x45\x54\x2c\x8b\x32\x41\xb4\x93\x7c\xf8\x9f\x73\xd3\x22\xda\xbd\x71\x7e\x82\xeb\xf7\x98\xcd\x4e\x8c\xd3\x81\xab\x9a\xb6\x6f\x7d\x64\x51\x96\x11\xdc\xf9\x1d\x83\xee\x54\xa0\x92\x45\x92\x38\xed\xbb\xdd\xe6\xab\xe6\x18\x16\xc9\x44\x62\xae\xf1\x5c\x62\xac\x80\x0d\xf4\xbb\xce\x71\xea\x0f\x94\xc5\xc2\x91\xd3\xcf\xd8\x79\x59\x24\x8d\x42\x77\xef\xea\x5c\x14\x48\x6f\x38\xda\xd7\x59\x64\x62\x86\x05\x7b\x03\x0d\x36\xf0\x82\x71\x50\xb1\x61\x5c\xa2\x9f\x84\x66\xe5\x76\xb3\xdb\x85\x01\x4b\x32\x2c\x10\x20\x5b\xe1\xf2\x03\xb4\xa9\xeb\x55\x2f\x2a\x69\xee\xa0\x91\xf3\x24\xb1\xcf\xed\xa4\x3e\xa4\x60\x24\x22\x31\xf6\x25\xa3\xf1\x7c\xab\x5a\xd8\x9d\xe4\xf1\x98\x97\xcf\x37\xa1\xd8\xc5\x08\xe1\x02\x9d\xcd\xc7\xe2\xdc\xca\x12\x82\x1c\x24\x23\x44\xa5\xd6\x75\x66\x3b\xb4\xb3\x7c\x1b\xfd\x48\x53\x34\x27\xf2\xcd\x79\x92\x45\xd5\x34\x63\x9b\x40\x62\xcf\xc5\x1f\x72\x26\xdf\xb1\xc3\xe1\x22\xab\x3d\xf9\x62\x48\x0c\x24\xf2\x08\x91\xff\xaa\x8e\x2a\x87\x79\x2a\xdb\xcf\xa3\x52\x60\x3b\x98\xcb\x89\xfa\xc2\xc8\xd0\x10\xc0\x48\xe8\x56\xe8\xbe\x2c\xba\x42\x82\xd6\x5e\xfa\x84\x11\x26\x1c\xbb\x09\x8a\xed\x9d\x40\xfb\xf2\xe9\x72\x81\x8d\x11\x96\x38\xa3\x7d\xea\x42\xab\x1a\xf6\x95\xeb\x6b\x7c\x74\xb1\x61\x7f\x50\xe9\x84\x3f\x30\x48\xbb\xed\x93\x75\x8c\x30\x93\x61\xe8\x57\xca\xd3\x6b\x5e\x8e\xf2\xaf\x8c\x70\x4e\x02\xd3\x72\xe7\xa9\xfe\x36\xca\xa7\x30\xc2\x65\x84\x52\x07\x27\x57\x13\x47\x22\xa0\x73\xd9\x4e\x0e\x20\xe2\xd4\x92\x9e\x15\xcb\xb1\x8a\xb8\xa4\xdf\x42\x2c\xc4\x88\x10\x02\xa3\x66\x27\x5e\x3f\xcd\x1c\x32\x22\x32\x57\x7d\xbb\x85\x5f\xf9\xb8\xba\xd4\x8d\x24\x08\xd9\xf8\xb9\xba\xbd\xdd\xec\x0f\xab\xeb\xeb\xa7\x30\x94\x28\x8d\xb1\xdc\x1f\x1b\xc4\xcd\xef\x37\xab\xbb\xc3\xea\xfa\x8f\xed\xee\xe1\x69\x77\xd8\x7d\x5f\x3d\x6d\xfa\x99\x96\x19\xe5\x15\xca\x1f\x7e\xde\x2e\x6f\x00\x24\x4d\x0c\x73\xd2\x9d\xb5\xc9\xcf\xcd\xe4\x32\xd2\xd4\x95\xbc\xab\x13\x94\x8f\x35\x6c\xd7\x0f\xc8\x1d\xae\xc3\x78\x46\x4c\x66\x3e\x6d\x95\x5c\x3e\x5f\xc6\x2d\x7a\x7f\xab\x53\x55\x14\xd5\x0e\x4e\x9d\x77\x9a\x97\x08\xab\x33\xfd\x81\xb5\xf1\xbc\xd0\xe1\x99\xdd\x57\x06\x46\x9d\x3c\x8c\x64\x46\x3a\x16\x1c\xdc\xbb\x43\x37\xe5\x57\xa4\xcf\x8c\x64\x36\x13\x5e\x82\xe7\x76\x38\x99\x24\x09\x16\x33\xb0\x19\x64\x2d\x8b\x62\xdf\x39\x0b\xc5\xc7\xa3\xd4\x23\x35\xfa\x21\xff\x17\x7e\x16\x83\xcb\x7d\xc9\xf2\xb9\xd2\xc3\x7e\x43\x24\x85\x64\x0c\x44\xfa\x64\x95\xab\x28\x33\xbe\xcc\x38\x2e\xca\x32\xa2\x88\x62\xa1\xc3\xc0\x49\xec\x4e\x98\xa1\x96\xb7\x22\xa2\x98\x8d\x1c\x48\xf1\x0d\x5b\xe9\xdc\x63\xf3\xf8\xbc\xe1\x66\x35\x65\x03\xa2\xd6\xf6\xbd\xa0\x8c\xe8\xc4\x29\x0d\xbb\x6c\xa2\x23\x35\x59\x75\x2e\xeb\xcc\x1a\x13\x23\x24\x2a\x56\xb7\xf9\x11\x7e\xca\xbc\x5f\xcd\x06\x20\xf4\xff\xef\xa4\x5d\x66\xf7\x67\x04\xa8\x13\x2a\x3a\x20\xa6\xa8\x3a\xb7\x43\x19\x90\x11\x90\x4e\x59\xf8\x1b\xb4\xb7\xb2\x34\x33\xae\x27\x16\x47\x29\xc7\xbc\xb0\x1e\x3c\x95\xb5\x9c\xb6\xe2\xb1\x38\x02\x96\x8a\x85\xe4\xb1\x1f\x26\x91\x52\x26\x20\x52\x1e\x8b\x0a\xd9\x8c\xc7\xae\xf6\x27\x4d\xa6\x0b\x9b\x5a\x4c\x32\x47\x86\xe5\x23\x99\xc7\x42\x7e\xe4\xe5\xb3\x2f\xef\xfa\x39\x2c\x65\x08\xce\xdf\xfc\xf2\x6c\xa8\xf3\x20\x69\xf1\x33\x89\x59\x66\xd1\x32\xb7\x81\x56\x30\xf4\x71\xfa\x71\xae\x23\xf4\xc7\xf0\x36\xfa\x9c\xf5\x23\x36\xf3\xf7\x8e\x57\xcc\x8d\x10\x8e\x99\x57\xbf\x9e\x4f\x87\x40\x41\xb1\x69\x5f\x76\xed\x85\x64\x9e\xff\x8d\x20\x19\x66\xc5\xf0\xc8\x37\x67\xac\x60\xfd\x07\x66\x4f\x51\xa4\x22\xf0\xac\xac\xeb\xea\x7c\xca\x2f\x9e\xb3\xd0\x06\x01\x15\xfd\x19\xa1\x5e\x5e\x12\x71\x22\x12\xda\xc3\xd0\x8b\xf9\x99\xd2\x2c\x32\x7c\xca\x80\x3c\xb6\x03\x71\xaa\x9c\x1a\x8e\x83\x88\x17\x1f\xf3\x9d\x7c\x76\x77\x59\x0c\x61\x27\xfb\xaf\xa7\x3f\x2f\x93\x4b\x2c\x96\xcc\x25\x70\xef\xe1\x3d\x30\x54\xce\xef\x4d\x25\x16\xdb\xf9\x4f\xd5\xfb\x2c\xa4\x88\x55\xaa\x93\xcc\x3d\x98\xbf\x40\xd6\x9f\x6c\x71\xb1\xd2\x8e\xd4\x0a\x1d\xbb\xff\xef\xdc\xf9\xf9\x33\x7e\xdd\x74\xb6\x0e\xfd\x0f\xb5\xd2\xca\xab\x78\xa1\x71\xd0\xf9\x49\xce\x04\xef\xd2\x30\xd5\x46\xd8\x01\xd1\x04\x81\x94\x6e\x19\xdd\xb6\xfa\x13\x28\xf5\xec\x0a\x4d\x94\xc5\x49\x4f\x08\x1d\x18\xf0\xc3\x53\x37\x24\x41\x29\xe3\x6f\xdb\xa7\xdb\xf1\x96\x11\x9b\x38\x31\x23\xfc\xf8\xfe\x7c\x9a\xb5\x07\xb1\xd8\x50\xa2\xa5\xc7\x7c\x4e\x7f\x6b\x1d\xb6\xf8\xf8\xda\x8e\x8b\xd1\xac\xf3\x52\xf0\xa1\xde\x6d\xef\x0f\xdb\xf5\xc3\x48\x85\x0c\x25\xc7\x5c\x82\x14\x77\x9f\xd0\x31\xbd\xfc\x51\x81\x12\x29\x75\xed\x7b\xed\xcb\xe4\xd4\x5d\xf4\x4d\x91\x81\xac\x69\xb1\x59\xfd\x93\x88\x23\x4c\xb7\x06\x83\xf0\xbb\xfc\xb9\x96\x9f\xd2\xba\xb1\xd8\x72\x17\xa8\xa9\xbc\x0b\x11\x6b\x59\xac\xbf\xa6\xab\xed\x2b\x4c\xa3\x6c\x26\xa3\x11\x73\x08\xc0\xfd\xb7\x35\x5e\xf4\x84\x23\xf9\xb3\xa4\x26\x32\xc1\x7b\xae\xdf\x56\x16\x4f\x55\x51\x34\x57\x1f\x88\xf8\xf7\xe3\xb1\xa0\x58\x51\xc7\xbe\x86\x6d\xd0\x34\x71\xd4\x9f\xb6\xa7\xbf\x37\xae\x61\xe8\xd7\xc7\xf2\xd7\x4b\x69\xe2\x00\x11\xd2\x98\x7d\x85\x32\x7a\xc5\xbc\x03\x82\x51\x2a\x19\xba\x64\xab\xeb\x3f\x87\xda\x23\x12\x7e\x61\x19\xd9\x95\xc6\x1e\xca\xe7\x2a\x2f\x9f\xf7\xbf\xae\x3e\x9c\xca\xd4\xf4\x29\xb0\x54\x26\x3e\xe7\x04\x75\x2d\x8b\x4b\x3d\x7d\x46\x79\x64\xf0\xd2\x4b\xa8\xc2\x39\x78\xc6\x30\x93\xda\x45\x84\x1f\x77\xa8\xee\xdf\x45\xa3\x7f\x1f\x7c\x51\x6e\x5d\xf4\xb4\x2b\x64\x33\x59\x2d\x34\x21\x0e\xaa\xd8\xb8\xaa\xcb\xec\x66\x93\x04\x94\xba\x00\xbf\xfe\xb6\x10\x0f\xd2\x04\x12\x84\x3e\xdc\x14\xd5\xf3\x51\x16\x85\x6f\x2e\x3f\x7d\x82\x25\x61\x34\x4d\x98\xeb\xdf\x44\x68\xc8\x37\x14\x7e\x0c\x43\x99\xc0\xe7\x83\x7c\x27\x9d\x5b\x65\x36\xbf\x7c\xcb\x8c\x97\xcb\x9a\xb1\x00\x30\x9a\xea\x14\x97\x67\xe0\x63\x1e\xca\xa7\xdd\x98\xc5\x80\xa3\xf3\x1e\x9f\x82\xf0\x4c\xd3\x8f\x9a\x18\x31\x25\xe7\xa6\x8b\x34\x9a\x11\x42\xd1\x4f\xc8\xa4\xa2\x5e\x23\xc2\x69\x43\x6c\xca\xb6\x9e\x9f\x3f\x33\x8e\x8a\x01\x31\x4f\xbd\xc0\x6b\xdf\x11\xc5\xa8\xd4\x80\x5d\x2e\xa1\x9a\xfd\xf3\x45\xba\x36\xf8\x70\x1d\xd2\x7a\x2d\x34\x9f\x5f\xa9\x3c\x64\xa3\x6e\x6e\xea\xea\xd8\x23\xca\xbb\x89\x2e\x19\xa2\x9a\x26\xe8\xd9\xf4\xf6\x85\xaa\x38\xc6\x8a\xbc\xf3\x77\x1c\x01\xdc\x80\xf9\x60\x54\x19\x2e\x6c\xc0\x6d\x76\x61\x95\xdb\x81\xa6\xeb\x53\x19\xcd\x7c\x05\x65\xd7\xc2\xe9\xa1\x74\x8f\x73\xfa\xfe\x0c\xd3\x5e\x5a\xa2\x34\x3e\x7f\x12\x46\x52\x27\x02\x35\x25\xd1\x3f\x3b\x4d\xf8\xc1\xf9\x1c\x73\x61\xfd\xab\x1f\x0d\xc7\x00\x12\xe9\x09\xd2\x0a\x43\xec\x59\xc6\x8d\x02\xd1\xd6\x99\xf6\x9b\xce\xd3\x45\x56\xa1\x89\x02\x0a\xa3\x96\x38\xf4\x61\x68\xf0\x9e\x01\x84\xa7\x37\x65\x19\x31\x3d\xee\xf4\x4b\x0b\x4c\x2d\xe3\x12\x1b\x75\xba\x80\xee\x84\x8e\xc5\x6c\x02\x4f\xbc\x74\x90\x43\xc8\x84\x6a\xe4\x08\xd1\xce\xa8\xcd\x38\x6e\x32\x9d\xeb\x3c\xb4\xc6\x61\x68\xed\x64\x09\xf1\x03\x40\x96\x99\xdf\x96\x76\xd1\x2e\x0a\x91\xd4\x13\xb1\x95\xdd\x62\x71\x30\xee\xa1\x0f\xa4\x73\xa8\x15\xba\xe7\x8d\x7e\x81\xa3\xf4\x9e\x40\x58\x31\x2c\xe6\x09\x1e\xe0\x90\x97\xba\x38\x9b\x5e\xb2\xe9\xbf\xe9\xff\x9d\x9e\x29\x56\x36\xea\xa5\x3a\x56\x35\x4c\x51\x2a\x9d\x95\x16\x08\x1d\xbe\xcb\xcb\xfc\x0e\x16\xf1\x20\x9f\x9b\x28\x46\x09\x60\x9c\x78\xcc\xcb\x87\x3f\xd6\xe1\xe2\x58\x24\xb9\x93\x71\xeb\x85\x33\xf3\xaa\x7c\x02\x69\xfa\xeb\x67\x89\x45\xde\xa6\x1e\x60\x36\xd9\x70\x19\xd3\xdc\xf3\x18\xc3\x88\xe0\xfa\x14\x1c\x95\xe6\xa1\x5c\xd4\x0e\x9e\xde\x1a\x03\xaa\x4d\xd8\x7f\xfc\xf1\x17\x37\x38\xc6\xd3\xb1\xda\xc0\xba\xe8\xfb\x35\x17\xee\x7c\x92\x5f\x9c\x6e\xcb\x8c\x2b\x8e\xf1\xdd\x5b\xd5\xc2\x4f\xe8\xd6\xf6\xd0\x7e\x34\xbb\x38\xa1\x14\xf6\xed\x61\xc3\xf8\xc7\xa1\x09\xdc\x6f\x13\xf7\xf1\x12\x42\x31\x3d\x9f\xd0\x19\x02\xa3\x6d\x75\x2e\x8d\x5f\x46\xfb\xfc\x08\xdd\x53\x25\xb3\xf5\x94\x00\x4b\x75\x90\x35\x7b\x3e\xd7\xf0\x3b\x7c\xf4\xf2\xe7\x9f\x21\x35\x7a\x4f\x9e\xa5\xb1\x54\x48\xc8\x13\xbd\xc2\xea\xc6\x5b\xb9\xd9\x29\x52\x11\xe1\xe6\xd0\x42\xd3\xde\xc8\xbc\x78\xac\x61\x50\x4e\xed\x27\x59\x6e\xfd\xee\xb4\x69\xb4\x3c\x85\x22\x5a\x33\xb0\x6c\xf4\xef\x25\xa3\xae\x0f\x5f\x1a\xf3\xfb\x87\x9e\xc7\xd6\xa3\xab\xcb\xb8\xc1\xaf\xf6\xe8\xfc\x21\xa4\x62\x9e\x2c\x54\x15\x69\x44\xb6\xb8\xd6\xb4\x97\xbc\x36\x3f\x01\x5e\xc7\xd4\x99\x8c\x29\x11\x31\xef\x9a\xdf\x41\x17\x24\x95\xed\x35\xc8\xa2\xf9\x9e\x77\x91\xfd\x6c\xef\x60\x4a\xc5\xa9\xcb\x3d\xbc\x97\xeb\x3a\xef\xdd\x1a\xa6\xa9\xc9\xa4\xcf\x1d\x1c\x4f\xd0\x22\x10\xdf\x47\xb2\x61\x4a\x6a\x7c\xa3\xed\xa9\x5a\x57\xe5\x33\x14\xf2\x08\x65\x90\xfd\x62\x4c\x83\xf5\x41\x42\x39\xc9\xcb\x30\x93\x71\x15\x05\xe5\x9a\x29\x66\x84\x31\x23\x5d\x1c\x93\x37\x88\x4f\xec\x45\xb7\xbb\x91\x0c\x11\xe3\xf0\x0b\x3d\xa8\x9f\x90\xcf\xac\x80\x31\x02\xa1\x3c\x9b\x62\x94\x48\x60\x90\x2a\x5f\xee\x54\xaf\xf0\xd1\x90\xd9\x8f\x20\x4b\xdd\xeb\xae\xf3\xe7\x67\xa8\x57\x2d\x52\xb9\x4d\x5e\xa0\x35\xd2\xa1\x4e\xce\xea\x8b\x68\x84\x47\x84\xb9\x34\x60\x55\x98\x71\xba\x8b\x47\x8c\x6b\xa7\xe5\x97\x5f\x30\xc0\x4d\xbf\x05\x4e\x32\xa7\x6e\x7a\xf3\xf0\xe3\xfe\x7a\xb5\xdf\x3e\xdc\x7b\xa9\x98\x21\x77\xc5\x89\x76\x52\x38\xd7\x60\xce\xba\x45\x0e\xd6\xc5\x6d\x82\x13\x93\xba\x5a\x71\x17\x83\x8e\xdf\x00\x8f\xb9\x2b\x25\xa0\x32\xc0\xad\x6c\x6f\x3d\xcb\x4a\xfa\xaf\xc9\x01\x62\xe1\x72\x5f\xd2\xbc\x41\xd9\x7d\xd7\xfe\x8b\x09\x87\xa1\x5e\x28\xd7\xe5\xac\x0e\xab\x73\x5b\x21\xbb\xef\xf4\x32\x68\xa6\xbd\x4e\x7d\x7b\x27\xcb\x8f\x3e\xcc\x1e\x61\xc2\x86\x8f\x80\xb3\x08\x78\x0f\xb9\xbf\x3a\xd7\xe5\x83\x46\xea\xde\xb0\x0c\x38\xef\x16\x56\x08\x55\x8d\x3a\x17\x41\x1b\x96\x71\x9e\x12\x14\x8f\xb9\xb9\xdb\x1f\x86\x12\x45\x18\xcc\x2c\x02\x42\x91\xe9\xe8\x80\xbb\xec\xa1\xed\xdb\x4f\x18\x17\xc2\x22\x87\xc3\xf7\x4b\x40\x68\x98\x01\x46\x3a\x92\x4b\x47\xcd\xd7\xe7\x95\x91\xf5\xd1\x77\x8e\xbb\x96\x98\x00\x7b\xfb\x52\x5a\x70\xf6\xba\x12\xef\xa6\xad\xd7\xdf\x0f\xb7\xb7\x7f\x1c\x68\x44\xfb\xe3\x1b\x2f\x53\xe6\x9a\xcf\x1c\xea\xf4\x93\x83\x4f\x17\x54\x9a\x00\x02\x13\x0f\x0d\xb4\x0b\xd2\x81\x8c\xa7\xc6\xf8\x38\xb2\xce\xc7\xe4\x51\x8c\x67\xa9\x46\xe3\xfe\x22\x1b\x74\x02\x5c\x52\xa6\x1e\xd2\x60\x5c\x26\x32\x76\xdf\xea\x43\x2d\x75\x01\x4e\xaf\xc7\x0f\xaa\x94\x61\x93\x4c\xdf\x14\x71\x36\x79\x3b\xc3\x09\x33\xae\x55\x1c\x08\x74\xfe\xa8\x30\xdb\x3d\x31\x07\xdc\x10\x8a\xd0\xac\xa3\xfc\x15\xea\x79\xfd\xeb\x36\x04\x30\x29\x74\x40\x4c\xb6\xef\xa1\x6c\x9b\x51\xea\x86\x1b\x11\x19\xda\x0b\x1f\x9e\x3f\x66\x58\x87\x4f\xde\x84\x11\x29\x62\x78\xd7\x0f\xfb\xfd\x64\x05\x98\x2c\xa3\x3e\x05\xbf\x87\xe3\xe9\x3b\xd4\x15\xd2\x74\xf5\xe3\x36\x42\xbc\x5d\x21\x9b\xf6\x10\x3a\x5b\xcc\xc1\x19\xf4\xc1\x31\xe4\xc6\x66\x46\xf4\x6a\x95\x9e\xa7\xd5\x8f\x01\xcb\x30\x4c\x3f\xd4\xd0\xbd\xe5\x31\x57\xe6\x65\x51\x90\x5b\xe2\xc8\x4f\x9a\x97\xea\x1d\x2b\xaa\x47\xd9\xe6\xba\x19\xff\xca\xcd\x14\x51\x2c\x13\xd3\xef\x6b\x0e\x98\xe3\xc8\x84\xfa\x19\x1c\x30\x8e\x3a\x75\x5e\xfb\x81\x1c\x6a\x38\x4a\xc4\xa1\x1e\xda\x71\xd8\x22\x22\xeb\x98\x69\xd4\x08\xcf\xb7\xc8\x4b\xca\x04\xe1\xae\xc7\xd5\xc0\xdb\x66\xff\x7d\x54\x89\x0d\xc7\x8a\x09\xc1\xc4\xf9\x73\x55\x99\xe6\xe1\xf7\xe9\xe2\x14\x71\xe6\x60\xb3\x98\x54\x76\x54\x0c\xdf\xc0\x65\xae\xfa\xab\x89\x33\x27\x29\xfd\x74\xee\xcc\xab\xff\x23\x8d\xa8\xa5\x43\x15\xa2\xa7\xfe\x61\x82\x49\xc0\xf2\x66\xf7\x18\xf6\xf5\xc7\xb7\xd0\xb0\xc6\x04\xd3\x8e\x01\xfa\xdb\xfd\x7e\xd5\xd7\x66\xa6\xcb\x55\x70\x70\x4d\x5c\x9b\x22\x7f\x3e\x4a\xdf\x81\x31\xa9\x47\x08\x91\x0a\x0c\x6b\x1d\x01\x75\xdb\xd3\x01\x32\x21\x32\xc0\xf8\xfd\x74\xae\x9f\xb1\xb1\xeb\x93\xf8\x54\x24\x54\xc5\xc6\x13\xd5\x8e\xd3\x74\x58\xea\x40\x3a\x2b\x57\xdb\x1a\xfd\x19\x1d\x87\x17\xd9\x4c\xbf\x50\x91\x65\x29\xba\xa0\xb2\xae\x25\xf6\xc2\xdc\x54\x41\xb2\x65\xf6\xa8\x65\x92\x21\x23\xcf\x4d\xf5\x9a\xb7\x81\x4c\x80\x09\xc5\x09\xf6\x0d\x56\xb5\x81\x3a\x88\xe3\xce\x1e\x8a\xb2\x56\x79\xed\x9c\xe9\xd7\x2b\x74\x94\xf5\x44\xd2\xb9\xcd\x97\xaa\xd6\xc2\x70\x29\xd9\x05\x1d\xd5\xf4\x0c\x46\x66\x48\x0e\xf0\xeb\x34\x3c\x0b\xa3\x64\x1a\xa8\xb7\xb0\x6f\x65\xd1\x00\x0a\x63\x9c\xc8\x2a\xca\x56\xb5\x55\x09\x6b\xd9\xbc\x5c\x49\xa7\x4a\x1c\x8e\x05\x91\xc2\x37\x53\x95\xbb\xb3\xda\x38\x28\xd8\x2c\x6d\x2e\x80\xbb\xf4\xd9\x0e\xca\x5e\x3f\xff\x4b\x8c\x0e\x13\x56\x44\x6e\xb5\x34\xba\xae\xde\x3b\x47\xb1\x90\x8b\x12\x60\xd3\x4b\xb6\x42\x13\x1b\x30\x1a\x6d\x55\xff\xcf\xec\x4a\xac\xd2\x88\xcc\x5d\xd7\x60\x76\xf9\x73\xff\x2d\x59\x6d\x7d\xe7\xa0\x3d\x97\x7e\x23\x9a\x3e\xc8\x24\x4a\x6d\x32\xb0\x0f\xe1\xfe\x77\x40\x9d\x90\xee\xbf\xed\xf9\x92\x91\x67\xfc\xaa\x92\xc8\xc8\x2c\x1a\x17\x05\x3e\x71\xec\x17\x79\x3b\x59\x42\x22\xe2\x64\xc0\x65\xdd\x80\x47\x13\x61\x5b\x4c\x8b\x49\xd1\x01\x14\xc8\x92\x38\x02\x0c\x86\xf7\xf9\x33\xd4\xdd\x1b\xfb\x2d\x0c\xc4\x29\x2e\xf5\xf2\x7c\x1c\x87\x65\x4d\x3f\x6e\x68\x68\x14\xdb\xbd\x54\x27\xfc\x7a\xd0\xc4\x22\x59\x0f\xd2\x8a\x4c\x6e\x89\x45\xae\x5c\x79\x3c\x7f\xaa\x8f\xc4\x12\x96\x3a\x41\x8e\xb6\x3a\xd7\x25\x3a\xb9\x9b\xd2\x8c\xc8\x83\x58\xc2\x20\x42\xaf\x65\xbb\x7e\xd8\xbd\xcb\xd3\x28\x05\x94\x70\x92\x88\xc8\x8b\xcf\x2e\x34\x19\x76\x13\x80\x06\x0a\xc6\x6e\xff\x9d\xc6\x23\x89\x20\x1c\x77\xc8\x0b\xbf\x69\x76\x18\x91\x38\x35\xf0\x1a\x74\x2b\xcb\xe7\x4f\x7a\xdd\x59\x22\x8c\x40\x88\xc0\x11\xe5\x2b\xb7\xe5\x65\xd3\x36\x4b\x04\x64\x48\x88\x07\x27\xfd\xbe\x50\x91\x4d\x92\x38\xc5\xfa\x17\xfa\x8f\x62\xd0\x03\x0e\xc3\x54\x0a\xdd\xd7\x77\x03\x79\xf4\x8c\x40\xf8\x82\x8f\x9c\x25\x89\xe6\x18\xc1\x36\x6d\x75\x0a\xe4\x7f\x7e\x28\x25\x32\xc2\x72\x74\xd5\x6e\xfe\x7d\x96\xc5\x6f\x3d\x97\xf0\x74\x89\xa6\x8c\x22\x2c\xc0\x2b\x4a\xac\x5f\xf2\x62\xb9\x63\x86\x25\x69\xea\x9c\xaa\x67\xf8\x9a\x78\x98\x25\xa9\x55\xae\x62\xf6\x32\xed\x50\x1b\xf6\xe1\x24\xe3\x1a\x91\xbf\x4f\xae\x97\xeb\x63\xf7\x22\x63\x2e\x2e\xec\xc3\xdf\x00\xe4\x96\xe3\x65\x7f\x0a\x29\x98\x76\xbd\x5b\x66\x2c\x7f\xf1\xc9\x72\xd0\x46\xb8\xa0\xe5\x0b\x85\x9d\xe9\x2f\x4c\xe2\x40\xd2\x87\xb6\xba\x45\xa7\x66\xf2\x60\x21\x36\xd8\x35\xa9\x3f\x79\x9a\xc0\x63\x74\x1e\x64\xd9\xbc\x43\x7d\x51\x8c\x99\x1e\x4b\xb8\x2c\x1d\x94\xc6\x95\xc2\x77\x08\xdc\xed\x81\xd4\x2c\x01\x60\x68\xdc\x8f\xf2\x17\xaa\xb3\xb8\xa2\xf8\x23\xd4\xb6\xaa\x8f\x03\x15\x2c\x4b\xac\xe4\x58\x47\x5d\xaf\x76\xfb\xe1\x6f\x29\x2a\x31\x37\xd0\x5e\x0f\x84\x00\x61\x50\x29\x2c\x38\x1f\x65\x79\x96\x45\x67\xcc\x5d\x6b\xf7\x97\x85\xc4\xc4\x5a\x99\x11\x2f\x9f\xb4\xae\xaa\xc2\x54\xef\x53\x84\x22\x4b\x23\x26\xb0\xe2\xf7\x50\xe7\xcf\x79\x89\x6d\xbd\x0b\x85\xb1\x94\x08\xc0\xbd\xbd\x33\x07\x2f\x18\x93\xe7\x5a\x16\xb5\xeb\xc5\x0b\x73\xa4\x2b\xbe\xf6\x0a\x70\xeb\x87\x3b\x3c\x96\xe3\xb2\x42\x6f\x63\x7a\xf2\x98\x09\xcc\xb2\x07\x06\x4b\x97\xdc\xbf\x93\xcd\xeb\x0c\x27\x97\xd2\x28\xc1\xa8\xbc\x7b\x3f\xc7\x5e\x71\xed\x67\xde\xbe\xac\x74\x7b\x96\x85\x87\x36\xce\x7f\x45\x5c\xf1\xc4\xc0\x1b\x14\xd5\x09\xc1\x8f\x20\x5d\x50\xd9\x38\x21\xdc\x70\xf1\x94\x49\x0c\x28\xd4\xf9\x63\xe0\x9f\xf4\x63\x8c\x6b\x44\xd4\xde\x81\xc9\xe5\xc8\xac\xa7\x2c\x49\x23\x15\x38\x32\x9e\x40\x43\xd9\x3a\x30\xc2\x71\x4e\x89\xc5\x52\x26\x63\x44\x7d\xdb\xaa\x46\x9f\x7e\x09\x61\x1e\xa6\x9a\x2c\x56\xa3\x3c\xe8\x40\xd6\x36\x89\xf0\x53\xae\x9d\xea\xb0\xa7\x34\x72\xe2\x5c\x33\x07\x20\xe5\x86\xc6\x3a\xc0\xd4\x2e\x08\x40\x66\x09\xe5\xd9\xff\xf9\x43\x08\x9e\x61\x4f\xfb\x7f\x00\x9a\x17\x59\x4a\xa5\x02\x0a\x24\x15\xc2\xb9\x4a\xfa\x45\x1e\x4f\x83\x83\x9c\x26\x8a\x66\x71\xdf\xaa\xf7\x07\x32\x33\xce\x73\xd1\x69\x9a\x52\xa4\x8b\x73\x91\xbe\xfc\x15\x7e\x9c\x6a\x89\xce\xcf\x8b\x6c\x3e\x23\xf3\xeb\x67\xba\xbc\xfb\x41\x1a\xb3\xf9\x85\xd9\xd8\xf9\x49\xb2\x28\x22\x81\x99\xf5\xd7\xd5\xa9\xc1\x4d\x6e\x16\x7c\x8e\x3f\xf3\x34\x53\x31\xf8\xbd\x78\x75\xe5\x8f\x75\xf5\xb1\x50\x71\x4a\x65\x24\xb0\x90\xfb\xd7\xb9\x44\x55\x9c\xe9\x89\x65\xa4\xc1\x43\x30\x9f\xaa\xf3\xf3\x8b\xcf\x82\xce\x0e\xc1\x01\xa3\xd5\x6e\x5b\xeb\x9c\x5c\xe7\x21\xbb\x2c\x40\x75\xae\x35\xd4\xbf\x2d\x6d\x87\xa9\xe4\x36\x0a\x4b\x04\xbf\x89\xaa\xcc\xbb\x85\xd2\xf3\xf7\xb0\x54\x0a\xd7\x46\xb0\xc3\xe2\xb9\xcd\x6b\xc7\x58\x32\x4f\x72\xf6\x9b\x41\x2a\xb3\x8c\x70\x74\x27\xe1\x2a\x2f\x8a\xd1\xdb\x54\xc4\x22\xd1\x4c\x0f\x48\xd8\xd7\xf9\x5b\x1e\xc8\x86\x58\xaa\x23\x8a\x28\xd6\x9b\x3f\x9f\x56\xfb\x4d\xff\x57\x21\x10\x43\x5e\x56\xc6\xb5\xd1\xf6\x1f\x94\x49\x04\x66\xd0\x9f\x6b\x59\xb6\x9e\xb8\x76\x92\x84\x4e\x4d\x9a\x61\xaf\x98\x93\xac\x1a\xaa\x66\xa9\x25\x80\xd5\xd7\xce\xc8\xd8\x29\xe1\xd6\x27\x09\xa5\xd4\xd2\x08\xcf\x56\x56\xed\xcb\xb0\x37\xa7\x36\x75\x3d\x82\xab\xee\xb3\xcd\x21\xac\xbe\x2c\xca\x34\x7a\x09\xd7\x95\x6d\x47\x19\xb9\x2c\x02\x8b\x26\x18\x0d\x6f\x09\x6d\x67\x08\x82\xce\x8c\x9f\x42\x22\x21\xbd\x4f\xf4\x3c\x8a\xde\x32\x62\xbd\x0e\x79\x59\x7c\x3c\xca\x70\x93\x19\x4d\x1d\xed\x3e\x9a\x8f\x47\x57\x8e\x58\x5e\xe8\x19\x55\xa9\xf4\x04\x6e\xf5\x35\xbc\x0d\x0d\x49\x2c\xa3\xd6\x62\x33\xff\x1b\x36\x12\x5d\xd0\x7a\xcd\x0e\xc4\x12\x95\x79\x66\x86\x87\x73\xab\xab\x23\x3c\xd8\x1d\xe8\xaa\x34\x2e\x21\x7b\xf5\xb1\x29\xdb\xbc\x9d\xad\xd3\x8c\x59\x93\xd9\x01\xed\x12\xce\xcd\x09\xc3\x24\xf1\x53\x8b\xc5\xd5\xd9\x8f\xb8\x52\x58\x6b\xba\x7e\xf8\xf3\xaf\x81\xb9\x83\x65\x82\x19\xec\x9a\x6d\x5f\x60\xe0\xe6\x63\x99\x90\x09\x12\x66\x1d\x86\x12\x16\xae\xd8\x41\x86\x99\x65\x89\x86\xd0\xcf\x7e\x9b\x6b\x28\x1b\x78\x82\xfc\xa8\xce\x75\x03\x97\x36\x37\x4b\xa5\xc6\x10\x0f\x9d\xaa\xf2\xf3\x1c\x76\x96\x25\x4e\x88\xe4\x2e\x2f\xa7\x30\xb8\x2c\x93\x36\xf5\xd0\x7c\xd4\xd8\xbb\x05\xf3\x3c\x8f\x4f\xb2\x0c\x22\x34\x43\x3f\xee\x77\x0f\xb7\xd7\x87\xd5\xed\xed\xc3\xda\xa5\x41\x37\x7f\x3e\x3e\xdc\x6f\x02\xbb\x2d\xcb\x64\xc4\x7b\x76\x27\x87\x94\x1f\xb7\x40\x74\xe3\x19\xbe\x67\xe4\xa6\xb6\x52\x63\x9a\x7f\xa9\x81\x8a\x65\x92\xc7\x88\x18\xed\x4c\xc7\xbe\x5a\x5e\xfb\x99\x26\x8e\x7c\x05\xe9\x4b\x65\xd1\xef\x77\x99\x4e\xa4\xa1\x23\xa0\xda\xf7\xea\xdc\xc0\xfa\xdc\xde\xd4\xd5\xf1\x32\x1b\x9a\x99\x08\x90\xd0\x11\x97\xaa\x77\x89\x77\xde\x47\x9b\x3d\x0c\x13\x39\x63\x61\xf2\x46\xbe\x55\xef\x63\x5b\x16\x0c\x40\x66\x88\xc2\xdb\xec\x22\x3e\x07\xa1\x5c\x95\x66\xbc\xa8\x4d\x9c\x20\xa3\xd0\xed\xe6\xa6\xff\x93\x94\x59\xcf\xa1\xdc\xb4\x8f\x50\x6f\x4a\xa8\x9f\xe7\x2b\xd5\x00\xf5\x5a\x2b\xdb\xd2\x6f\x08\xd3\x09\x90\x12\x1e\x5e\xc1\xa7\xea\xd4\x2c\x03\xe3\x54\xc3\x74\xe8\x06\x5b\xe0\x2f\x60\x32\x4a\x15\xa6\xd6\xc2\x73\xe9\xd6\xd7\x02\x2b\x16\x93\x91\x11\xe9\xe8\xea\xa7\xd7\x24\x49\xc2\x89\xd7\x47\xc7\x02\x91\x1c\xe0\x36\x32\xe6\x2c\x96\x3d\x03\x21\xba\x49\x23\x33\x1e\x26\x99\xc8\xcc\xd0\x71\x4d\x5f\x64\x1a\xce\x43\xb3\x34\x36\x23\x78\x02\x3e\x80\x9b\xaa\xf6\xc5\x98\xd9\x64\xe5\xda\x56\xfd\x37\xef\x76\x40\x3f\xc6\x19\x47\x41\x8f\xc7\xa7\x0d\xf2\xea\x38\xb0\x6a\x3f\xaa\x04\x56\xba\x9f\x00\x0c\xd4\x70\x9c\x1d\x58\x44\x29\xa2\x15\xae\xd7\x7f\x7e\xd6\x9c\x37\xdf\x95\xa5\x90\x69\x08\x7b\x02\x15\xe0\xe4\xcb\x91\x09\x51\xe8\xe9\x5b\x17\x81\xdd\xc9\x5f\x6b\x79\x1a\xe9\xf8\x30\x99\xc8\x0c\x7d\x12\x94\xf4\x85\x16\xea\x66\xe6\x31\x2d\xe7\x43\x64\x16\x0b\x04\xe2\xcb\xa6\xc9\x9f\x91\xdb\x7b\x0c\xd9\x94\x99\xb5\x89\x08\xe2\xf1\x4d\xfb\x5d\xb6\xfa\x65\xb2\xb0\xfc\x3c\xc9\x92\xc8\xe7\x9b\xba\xbf\xce\x7d\xa2\xe9\xed\x4a\x9e\xe0\xb3\xbf\x95\xcf\x63\x73\x24\x65\x22\x42\xfa\x68\x90\x0c\x12\xfd\x68\xea\x18\xfa\x7d\x03\xd5\x73\x0d\xce\x2a\x7e\xa5\xb8\xf9\x49\x52\x67\x39\xa2\x90\x8a\xe8\x38\x70\x51\xa2\xc9\xd8\x98\xe7\x99\xad\x90\x4a\x64\x49\xd4\xb7\x40\x5e\x55\x7d\x5a\x4e\x2a\xe1\x30\x1f\xba\x3a\x5e\x1d\xfa\x3f\xea\xd8\x91\x87\x99\x63\x5e\x06\xf0\xc3\x66\xfb\x98\x24\xc9\xa7\x81\xe8\xd8\x84\x7f\x1d\x85\xce\xaf\xdf\x24\x98\x0b\x3a\xca\x57\x78\x2c\x64\x79\x91\x53\xf7\xf3\x34\x8b\x31\x41\xbd\xae\x8a\x02\xf4\xa7\xb3\x32\x07\x55\xae\x51\x01\x69\x22\x60\xc5\xa4\x56\xa9\x2f\x6c\x07\x41\xac\x8b\x5a\xbb\xd4\x90\x60\x00\xb4\xaf\x73\x35\x57\xab\x5b\x62\xd7\x63\xd2\x70\x4e\xb9\xe3\xf0\xa8\xac\x27\xdf\x97\xba\xdd\x95\xf9\x69\xb0\xaf\x12\x22\xee\x68\xda\x3d\x2f\xd2\x94\x19\x8b\x49\x88\x75\xa0\xe5\x59\x9d\x4e\xf7\xb9\x7e\x2d\x87\x5d\x5d\x02\x4f\x11\x4a\x71\x95\xb7\x6d\x0d\x23\xa8\xfe\x42\x22\x54\x5a\x42\xd0\xbb\xc2\x02\xd5\xd5\xf9\xe3\x4a\xea\xd7\x87\xb2\x3f\x96\x25\xa9\x63\x5e\xad\xaa\x42\x76\x16\x7e\x1a\x5b\x49\x4b\x2c\x73\xea\xa4\x58\xec\x78\xb0\x36\xd7\xb9\x2c\xe6\x6c\x91\x4c\xda\x98\x85\xe2\x83\x77\x0e\x46\x8d\xcc\xd3\x67\x64\x33\x26\xec\xb8\xc9\x71\xc2\xf9\xca\xa4\x35\x32\xf3\x42\x2c\x7f\xc8\x22\x37\x57\xb2\x81\x5b\xe4\x3f\x7e\x28\x07\x0f\x7d\xc6\xdd\xc1\x54\x14\x33\xee\x49\x8f\x03\x90\xf7\x6f\x4c\x87\x8a\x92\x94\x86\xde\x09\x99\x9b\x47\xa9\x5f\xe5\xf3\xdf\x4a\xdc\xf4\x3f\x96\x58\x04\x2b\xe1\x3d\x10\xc5\xcd\xdf\xc4\x64\x13\x50\x84\xd8\xd8\xb3\x9b\x38\xc0\xca\xf8\x1b\x08\xad\x0e\x8a\xc4\x14\xf3\xb4\xce\x5f\xf4\x00\xb5\x30\x66\x9c\xc8\xc2\xf5\xe6\xcf\xdb\x6d\xef\xc9\x2b\x02\x51\x66\xc2\x2e\xe7\xd4\x67\x9e\x40\x76\xdb\xff\x30\x43\x10\xe9\x61\x45\x75\x83\xec\xa9\x61\x28\x8e\x20\x09\xad\x36\xf7\xe7\xe3\xa1\xff\x7b\x6a\x10\xa9\xe2\xd4\x61\x07\x59\x51\xa6\x62\x49\xb0\xf4\xaa\x65\x6d\x9a\xc3\x11\xda\xe1\xc6\xfd\x0c\x96\x65\x4e\x38\xce\xb9\xff\xe8\x92\x3b\xe5\xb6\x70\x0c\x66\x62\xcc\x7b\x9f\x10\x68\x35\x30\x95\xfa\x61\xce\x49\x8a\xae\x69\x55\x14\x13\xba\xdd\x6e\xc8\xa9\x97\xe2\x3b\xab\x5f\x83\x94\x47\xff\x94\x93\xc8\xe0\x91\x6f\xf3\x7f\x9f\x73\x93\xb7\x1f\xa1\x9d\x39\x8c\x0b\x85\xbc\x4c\xdb\xf5\x43\xb7\xe8\xea\xfe\xef\x89\x63\xb2\xed\xf6\xf1\xcf\xf2\x36\x61\xb5\xab\x24\x15\x9e\x6a\xaa\xed\x02\xd6\xc3\xd5\x7e\xfd\x63\x77\x3d\x7b\x0a\x89\xa4\x98\x31\x3a\x38\x7b\xbf\xd3\xb5\x3c\x75\x61\x44\xc0\x73\x4d\x67\xa7\x91\x6b\x75\xf0\x0d\x8f\x55\x2b\x8b\xe9\xcb\x4f\x49\x8a\x98\xd0\xdd\x7e\xb7\xdf\xec\xf6\x64\xf8\xbb\x53\x66\xbd\xca\x31\x1e\x9a\x3c\xac\x34\x95\x58\x54\x6b\xb4\x2c\x4b\x30\x57\x75\x55\xfe\xa7\x8b\x7c\xfa\x07\x9d\x6a\x8d\x56\x70\xd3\xbe\xdc\x56\xe5\xf3\xe6\x17\xd4\x1a\xdf\x53\xf8\xbe\xe3\x21\xdf\x90\xce\xbf\xb8\x4c\x4b\xc5\x43\xc2\xf6\xaa\x97\x83\xe9\x97\x50\x06\x56\xf9\x1a\xfd\xb6\x3c\x9d\xdb\x45\x28\xff\xf4\x90\x92\x08\xac\x86\xaf\x1f\x6e\x1f\x9e\x0e\x8f\xdb\xfb\xdf\xc3\xc1\x14\x55\xb8\xb5\x35\x6d\x75\x1a\x67\xc9\x95\x12\x11\x26\x67\x9b\xfc\x79\x54\x0a\xf4\xe2\x9d\x61\x92\xa6\x80\xa0\x82\x2b\x68\x7f\x6e\x56\xcb\x3e\xa5\x32\x09\xc1\x90\xf3\x5b\x77\x98\xc9\x73\x34\x89\x4a\xfc\xfb\x76\xfe\xf0\x52\xdf\x3f\x53\xa0\x53\xd7\xf5\xf7\x92\xd7\x06\x83\xa3\x30\x2f\x4c\x00\xd7\x1c\x3e\xb0\xdb\xcf\xc0\x57\xd3\xe3\x59\xc9\x05\x8c\x88\xdc\x5c\xb3\xc9\xc4\xaa\xe8\x88\x44\xe8\x58\x1d\x42\xdb\x48\x2d\x8b\x49\xe9\x2a\xcc\x63\x11\x26\xb8\xee\x3e\x26\x7a\x9c\x9f\x80\x95\x27\x16\x5b\x13\x62\xb1\x81\xcd\xcb\x1d\x87\x9a\x39\x2a\xfb\x2f\xd4\xee\x34\x49\xa5\x4c\xfa\xa6\xe6\x51\x27\xaa\x1f\x8f\xa3\x8c\x87\xf1\x9e\x44\xe4\x53\x9f\xa7\xff\x91\xa3\x10\xad\xa1\xad\x73\x78\x83\xcd\xaf\xce\x9d\x1f\x51\x68\x32\x1d\x1b\x83\xaf\xe9\xfb\x6e\xfd\xcf\x6f\x8e\x6a\x85\x01\x11\x8a\x29\xf8\xfa\xd6\x62\x09\x4d\x53\xad\xb1\xb5\xbe\xdb\x90\x1e\xab\xe2\x12\x2b\x3e\xbf\x81\x21\x84\xd5\x2c\x71\x29\xe5\xf7\xa0\xe0\xd1\xdb\x42\xcd\x94\x25\x9e\x14\x77\x00\x69\x8f\x7f\x6a\x34\x25\x01\xac\xd7\x27\xe9\x67\x7b\x43\x37\x0b\x33\x2f\x81\x80\x21\x0c\x4f\x6f\x81\xc7\x42\x3b\xe6\xff\x37\xd7\xb9\xe7\x69\x78\xc3\x51\x38\x4f\x43\xab\xfb\x1f\xb2\xce\x55\xd1\xc3\x27\x97\x24\x5a\x99\xe6\x4a\x61\x94\xeb\x52\xc4\x0b\x3c\xc4\x69\x98\x08\x09\x4f\x83\x7f\xd0\xb4\xd5\x11\x6a\xc7\x68\xb1\x5e\xb8\x4a\x41\x01\x42\xce\x64\x48\x09\xe9\x84\x80\x8d\x7b\x13\x89\xe9\xfd\xa0\xf9\xf1\x77\x6f\x62\x7a\xd5\x09\x65\xb8\xb7\xbd\x43\xde\x13\x0c\x87\x21\x23\xc0\x0e\xac\xb8\xf2\x75\xe6\x3e\xeb\x2c\x21\x58\xe9\xba\xfa\x63\x15\x7e\x93\x49\x1b\xfb\x7b\xbb\xe4\xe7\x60\x3a\x83\x14\xd9\x27\xc2\x9b\x59\x05\x5a\xf0\x7e\xdd\x4a\x2a\x70\xcf\xbf\xad\x9e\xc9\x12\x63\x27\xd3\x52\xa6\xc6\x85\xcd\xab\xba\xf6\x01\xfe\xb6\xb9\xa9\xab\xff\xcc\x6b\x01\x5a\x11\x8d\x58\xb7\x42\xf6\xc8\xf0\xe9\x04\x4d\x62\x47\x1d\x8d\xc6\x1a\xad\xc9\xec\x8a\x35\x77\xa5\xff\xe3\x01\x3c\x7f\x44\xb7\xff\xe7\xe5\xf3\x06\x9d\x81\x7e\xb5\xe8\xc4\x22\xb8\x01\x3f\x9d\x10\x1b\x2c\xcb\x6b\xcc\x4e\xa0\xc0\xf8\x70\x11\x69\x4d\xbd\x1f\x0f\xe6\xa1\x86\x2b\x59\x60\x8e\x6c\x7e\x51\x60\x05\xa6\x9d\x5d\xd9\xc6\x57\x2e\x06\x39\xd3\xe5\x13\xd9\xd8\xe1\x26\xfc\xa8\x8b\x28\xdd\x0b\x9f\x3e\x14\x6b\x5d\xbb\x6d\x03\xbd\x58\x4d\x29\x9f\xe1\xeb\xae\x45\x13\xc5\xda\x07\xff\xb6\x1a\x10\xed\x26\xa2\x12\x6d\xf2\x55\xe0\x5e\xba\x81\x56\xbf\xfc\x36\xfb\xad\xb4\x58\x54\xee\xa2\xd6\xbc\x7c\xbe\xad\x9e\xfb\xee\x4d\x43\x38\xf3\x2c\x46\xed\xf5\x50\x1c\x41\xb0\xd3\x63\x5d\x1d\xab\xee\x8e\xf7\x63\xc9\x8a\xe9\xb3\x32\x24\x33\xb1\xea\x59\x85\xc0\x4c\xc2\x1a\x43\xa4\xd3\x49\x3a\xe2\x8d\x36\x67\xd5\xe8\x2e\xc0\xe9\xe3\x13\x43\x64\x26\xc1\x67\x43\x64\x6d\xae\x6b\xf9\x7e\xc9\xe6\xcd\x0c\x65\x4e\x30\xea\x47\xa0\x98\x74\x26\xa5\x57\x9b\x58\xfc\xf8\x0c\xb3\x86\x74\xbf\xea\xe9\x4c\x98\x11\x11\x60\x3c\xb4\x1f\x53\xdd\x5e\xf2\x99\x4f\x9f\x9f\x30\x31\x7e\xc4\xd8\x90\x72\x49\x1e\xc7\x4c\xc2\xed\x48\x80\xed\x2e\x2f\xab\x7a\x5f\xc3\x6c\xff\x34\x09\x30\xa7\x20\xd4\x56\xa7\x6d\xd3\x9c\x07\x7b\x63\x32\xa5\xb1\x65\xe5\x59\x1e\x67\x31\x8a\xe9\x82\x98\x80\x90\xda\xb4\x2f\x13\x29\x49\x66\x94\xe2\xb8\x0f\x61\xee\xc5\x11\xb4\xed\xb7\x77\x9b\x7e\x58\xc7\x69\x3c\x30\x6a\xad\xfb\x14\xd6\x08\x36\xbd\xfc\xe1\x18\x1d\x39\x68\xad\x23\xc8\x77\x09\xff\x19\x77\x3b\x33\x9a\x19\xd0\x23\x44\xc5\x4d\x55\x3f\xc9\x8b\xb7\x67\x98\xc2\x0e\x9f\xa2\xaa\x5e\xcf\xa7\x91\xb2\xfc\xc5\x34\xfc\xc6\xff\x41\xc9\x77\xc4\xc0\xc4\x0c\x18\xcb\x5c\x49\xb2\x3d\xd7\x25\x8a\x37\xdf\x54\xf5\x8f\xa6\x5b\x66\xb3\xe0\xd1\x80\x35\x48\xc3\x7f\x92\xb9\xd9\x96\x4d\x2b\x8b\xe2\x38\xa2\x29\x31\x36\x75\x6d\xbb\x6a\xc0\x95\x19\x6b\x34\x78\x13\x72\x2f\x8f\xe3\xb6\x0f\x37\x01\xa2\xd8\x28\xdd\x5f\x40\x67\x61\x5c\x9f\xd7\xf4\xfe\x80\x30\xe0\x9e\xb4\xf9\x35\xf8\x4f\xcb\x9c\xeb\xff\x9a\xfd\x30\x23\xd6\x7d\xfb\x9d\x7f\xdf\x80\xf7\x38\x57\xa5\xe9\x5e\xe8\x57\xcf\x06\xe2\x28\x66\x63\xbe\xa5\xf7\x9b\x1a\x00\x57\x50\x5f\x89\x1d\x07\xf1\x10\x47\xae\x31\x7b\x23\x9b\x8f\xc7\xee\xcd\xb7\xe3\x74\xfe\xe7\x4d\x08\x10\x0b\x8e\xc5\x87\xde\xeb\x98\xaf\x15\x88\xa5\x19\x9a\x55\x3d\x1d\x7f\x18\xd2\x1a\x19\x24\x47\x02\xcf\x75\x3f\x66\x33\x69\x42\x3d\x76\x5b\xda\xea\xe2\xc0\x8c\x6a\x35\xa2\xf8\xf5\x9c\x2c\xe1\xf7\xdd\xfb\x31\x2e\x4f\x62\x01\x86\x3f\x6b\xea\xd8\xd0\x8e\x9e\x6e\x65\x7e\x50\x13\x63\x08\x2d\x8b\x1a\xa4\xf9\x70\x02\x6c\x93\x3b\xe6\x31\x43\xe9\xed\xfd\xd3\xea\x7a\xf3\xb4\x1b\xd5\x35\x80\x77\x66\x15\xdd\x7b\x94\x79\xfe\x56\x54\x4a\x16\xfb\xd0\x3f\x15\x66\x09\x9a\x20\x17\xd5\xad\x54\xd5\x74\x40\x00\x0c\x24\xf3\x77\xd0\x42\x7d\xd9\xfc\x9d\xce\x16\x49\x92\x46\x18\x03\x3e\x3a\xbe\x84\xa7\xaa\x28\x50\x9c\xf3\x33\x8c\xd7\xc5\xcf\x4d\xe6\xca\x00\x27\xb8\x5e\x6d\x97\x2d\x2a\x24\x99\xc0\xf6\x6e\x83\x92\x2b\xe8\xfc\x23\xe5\xf3\xfc\x3b\x83\xc4\x3a\x54\x5c\x91\x1f\xf3\x36\xc8\xba\x35\x7e\xa7\x0b\xf7\x99\x0a\x17\x68\x15\x60\xdb\x64\x06\x6c\x87\x34\x8d\x1c\x4b\xae\x6c\x56\xb6\x85\x3a\xc4\x7a\x20\x99\xc4\x72\xe6\xc0\xf9\xe9\xb3\x2f\x63\xe1\x70\x06\x92\x33\x3b\xe8\x48\xef\xba\x10\xa9\x0b\x5a\x9b\xe5\x0e\x46\xd0\x44\x06\xa2\xf2\x41\x6f\xab\x3d\x77\x96\xe4\x5a\xb6\xe0\x7a\x11\xc7\xe1\x3f\x68\x9f\x3a\x0b\xa2\x79\x52\x2f\x62\xe3\xc6\xff\x12\xb1\x9c\x8d\x04\xad\x2d\xa6\xfd\x1f\x77\xfb\xab\x11\x86\x19\x4c\x16\x61\x14\x77\x73\x3b\x45\xf2\x82\xb1\x42\x79\x9d\xc9\xad\xae\x02\xe1\x9f\x1f\x04\x1a\xe8\x8d\x75\x55\x9a\xfd\x8b\x7c\x9f\x8e\x4a\xfc\x52\x3b\x87\xab\x34\xb7\x17\xe8\x29\x00\xeb\x35\x75\x91\x63\x29\x3f\x85\xfe\x94\xaf\x17\x90\x8d\x29\x41\xb0\x7d\xfd\x8c\x12\x06\xe3\x12\xb4\x8d\x98\xeb\x2d\xb0\x55\xfd\xbc\x20\x89\x1a\x66\x09\x15\x98\x00\xd7\x2f\xf2\x78\xea\xde\xc0\xcc\x37\xb3\x51\x66\xe2\xa1\x4b\xe8\xfa\x5c\x3e\xc3\xdf\x01\x12\x6d\x24\x19\x0a\x76\xb6\x06\xe6\x58\x2f\x1b\x69\x8a\xd0\x89\x40\x20\x32\x5b\x17\x96\x10\x48\x20\x54\xbc\xaf\xaa\xf3\xf3\x4b\xfb\x08\x35\x1e\x61\x7a\x61\x44\x29\xb4\x53\xcf\xb9\x75\x42\x7f\x73\x3b\x65\x89\x02\xdc\xff\xef\x64\x3d\x54\x75\x2c\x01\x07\x9b\xc7\x3c\xee\xec\x17\x31\x8b\x53\xd9\x53\xf7\xdc\xce\xce\x18\x7b\xc8\x12\x36\x13\x35\x7a\xc4\x67\x17\x26\x08\x83\x84\xea\x88\x34\xf9\xd1\xed\x76\xaf\x17\x53\x12\xa0\xc1\x3d\x76\xc9\xa2\xeb\x39\x89\x32\xb3\x94\xf1\x20\xe5\xe8\x85\x07\xf1\x39\xcc\x67\xa5\x09\xf7\x2c\xed\x2e\x36\x09\x7f\xcf\x84\x95\x21\x2f\x8c\x28\xa9\x78\x18\x4a\x23\xdf\x2d\xe9\x44\x02\x67\x56\xd8\x72\x60\xd8\xa1\x56\xf9\x86\x85\x1b\x80\x95\xee\xb1\xca\x56\x98\xc4\xb5\x3a\xe6\xd6\x01\x8d\x03\x3c\x63\x71\x1f\xb5\x09\xa5\xf8\xa8\x0f\xae\xdf\x6b\xf5\x26\xf3\x42\xaa\xbc\xb8\xa8\x72\xdb\x84\x6b\xe4\x87\xc8\x9b\x5e\xb5\x20\x9c\x33\x11\x14\xbf\x8e\x13\x22\xbf\x42\x67\xc1\x58\x3b\x84\xd9\x24\x49\x13\x34\x6c\x17\x2b\x33\x4c\x30\x11\x06\x6a\x6f\x9d\x59\xf7\xed\x69\x63\x08\x86\x4d\x19\xc7\xdc\xe2\xff\x79\x3c\xbc\x3b\xe9\x33\x3f\x90\x09\x57\x67\xc4\x1c\x8c\xc7\xb7\x7b\xc4\x80\x7b\x37\x23\xec\xf7\xf0\x13\x8c\x11\x8e\xd8\xdb\x66\x10\x35\x8b\xa0\xd9\x7e\x42\x92\x18\x08\x4d\xab\x55\x0d\x5f\xc9\xac\x31\x9b\x49\xdd\x33\x45\x3a\xfd\x9d\x41\x74\x6a\xfe\xb5\x66\x26\x42\xf0\x28\xb6\x38\xe4\x65\x7e\x3c\x1f\xa7\x4e\xb1\x95\x99\x40\xd4\x9e\x41\x76\xf0\x5b\xf9\x7e\x01\xfa\xb5\x32\xd3\x98\x4f\xaa\xb0\x49\x63\xdb\x20\xf1\xd8\xe0\x3c\x5b\x29\x09\x1a\xc9\x49\xbf\x6c\x7f\x02\xc5\x25\x26\xa4\xd7\xb2\x85\xe7\xaa\xfe\x98\x6c\xe2\x56\x49\x1b\xa1\x6c\xa3\xab\x3d\x63\x22\xe3\x16\x6c\xff\x26\x95\x26\x18\xa4\xbb\xf4\x70\xff\x57\xe0\x28\xa0\x73\x0f\xef\x57\xf9\xf3\x33\x34\xed\x75\x3e\x27\x35\x9b\x3d\x35\x1d\x3b\x28\xd3\xfd\xc3\xed\x2d\x62\x20\xb0\x1c\x3e\x30\x32\x32\xab\xa9\x60\x7a\x1c\x17\xd2\xd9\x73\xd0\x49\x94\xf9\xd7\x74\x08\xe2\x57\x07\x2b\xf5\x64\x01\xff\x6b\x19\x58\x6a\x75\x4a\x1d\x53\x71\xe5\xea\x88\x2e\x80\xfa\xe4\x43\xd1\x19\xc5\x14\xd2\x51\xfe\xea\x5e\xd9\x00\x65\x1b\x97\x51\xad\x56\x2e\xff\xed\xd5\x07\xbb\xad\x72\x1e\xc3\x4e\x0f\x6b\x08\xc7\x64\x1c\xb2\x15\x8e\x0b\xbe\x61\x9c\xa7\xe8\xc8\x3b\x26\x80\xdb\xce\xd5\x1d\xda\x77\xd3\x30\x49\x59\xae\x06\x25\xd4\x55\xa0\xb5\x08\x57\x65\x0c\xa0\x1f\x74\x75\xfb\xb0\xfe\x7d\xf5\xf8\x18\x98\xbe\x2c\xc4\x80\x6d\x7b\x8e\xcf\x57\xe6\x66\x5e\x0b\xb0\x90\x68\x44\x6d\x6f\x3a\xaf\xa5\x94\x17\x4e\xa1\xb5\xdc\x15\x62\xd6\x3f\xd7\x87\x69\xf9\xca\x5a\x4b\xf1\xab\xa8\x4e\x9d\x53\x52\xbd\x1b\xdb\xbf\x5a\x1e\x45\x11\x47\x2f\x3c\x6f\x1c\xf5\x43\x31\x94\xf5\x79\x14\x31\xea\x92\x72\xf9\x73\xf9\xe3\x84\xdc\x0c\xa3\xa7\xc2\xa3\x08\x1c\xb8\xac\x0b\x00\xbb\xe7\x8c\xae\xe0\x72\x9a\x80\x47\x8c\x08\xc4\x46\xf8\x4a\xc0\x4d\x81\x48\xd8\xbf\x29\x33\xcd\x8f\xc1\x04\x42\xd1\x10\x4a\x28\x4f\xcd\x79\xb8\x56\x96\x6a\x70\xce\x34\x7c\x49\xcd\xb7\x7c\x60\x4e\x09\xca\xd1\xc8\xdc\x3c\x56\xd5\xe4\xbd\xf1\x88\x1b\x4e\x2d\x92\x1a\xf8\x00\xa1\x9b\xd2\x74\x27\xea\xb3\xda\x3c\x12\xc4\x25\x01\xdb\x46\xf7\x7f\x02\xc1\x5c\xce\xab\x7d\x58\x36\xb7\x3c\x4a\x52\x8e\x79\xcd\x00\x52\xb8\xdd\xfc\xb1\xb9\x3d\xf0\x70\x88\x44\x72\x6c\xe2\x69\x5e\xaa\x73\x61\xae\x60\x16\x11\xcc\xee\x22\xb1\xda\x41\xb4\x8d\xb9\x86\x51\x25\xee\x93\x7a\xf3\x22\x1a\x9a\x47\x29\xb5\x09\x75\x40\x6f\x28\xd1\x81\xd4\x2f\x9f\x5c\x7d\x16\x71\x57\x8f\x70\xa5\x95\xa1\xa8\xc2\xa3\xcc\x9a\xd0\x92\x80\x2d\xec\x93\x22\x00\x8f\x64\xe4\x3e\xfa\x67\x68\x7f\x3f\x97\xcd\x7d\x60\x99\xe3\x91\xcc\x48\xe4\xc9\x40\xff\xd2\x5f\x12\x91\xf3\x48\x09\xd7\x39\xf2\x04\xed\x53\xee\xa5\x8a\x48\x9c\xfa\x51\xcd\x14\x22\xbf\x82\x61\x09\xce\xc1\x3f\x81\x8a\x0f\xf7\xa8\xb3\x0c\x51\x48\x80\x05\x3c\x90\xc5\xf6\xfa\x22\xb1\x37\x35\xaf\xfd\x66\xc9\x23\x2d\x15\xc2\xc8\xdc\x96\xfc\x0d\xda\x4b\x2a\x0b\x1e\x99\xcc\x49\x69\x8d\x7c\x75\x8f\x86\x04\x83\x01\xc6\x65\x7f\x4b\xf8\xa5\xaf\xdf\x87\xa7\xf4\xe3\xf4\x3c\x26\x09\x0d\xb3\xb4\xc6\x5a\xb9\xa7\x31\xa9\x0d\xd4\xdd\x86\x14\x9a\x98\x03\x9d\xc9\x42\x61\x80\x47\x10\x83\xe9\x4b\xe7\xf7\xf0\xab\x5d\x7f\xe8\xe1\xa3\x03\xb0\x98\x23\xf3\x1c\xcf\x9f\x30\x03\x84\xc9\x16\x62\x32\x02\xf6\xcc\x5e\x26\x89\x62\x2d\x93\x11\xbf\xf0\x5a\xd6\x33\x86\x2d\x4e\x22\xe6\x5a\xd2\xf2\x66\x75\xbb\x1e\x9a\xc7\x83\x39\x23\x11\x53\x18\xad\x6c\xfe\xdc\xac\x7f\x20\xba\xed\xdb\x6a\x77\x78\xf8\x63\xf3\xf4\x7d\xb3\xba\x0e\xb3\x08\x97\x18\xde\x3e\xfe\xb8\xfa\xd6\xff\x4d\x6b\xec\xdf\x09\xe9\xb7\x43\x59\x19\xd9\xca\x03\x8c\xb3\xbd\x9c\xc4\x22\x41\x0b\xe4\x8c\xd8\x13\x76\xa2\xf9\xee\xcf\xf1\xcd\x92\x58\xd1\x4c\xf9\x46\x8d\x55\xe9\xb5\x77\x17\x57\x9e\x67\x03\xe6\x84\x4a\xc6\x50\x38\x59\x0e\xad\x83\xdd\x5f\x13\x64\xba\xd8\x36\xbd\x74\x33\x1c\x4f\x37\x75\x75\x7c\x28\x4c\x4f\xa3\x56\x05\x34\x03\x27\xdd\x93\x46\x26\x4b\xbf\x16\x16\x57\x35\x61\x3c\xc6\xcf\x33\xf0\x40\x3b\xc6\xcd\x8f\x65\xc3\x42\x38\x89\xd1\xb8\xa2\xbb\x1e\x5a\xe4\xa6\x07\xe4\x84\xfb\x8e\x66\xe3\x5b\x82\x2e\x4c\xf0\x12\x49\x01\x27\x3c\x56\x84\x79\xb8\xcb\x8f\x32\xd7\x7b\xd9\xbc\x7e\x97\xcd\xcb\xd6\xcc\xd6\x87\x60\x0a\xb7\xb8\xfd\xd3\xea\x7e\x77\xb3\x79\x3a\x3c\x3e\x3d\xfc\xf9\xd7\xe1\x8f\xcd\xcd\x9f\xe1\xde\x05\x77\x9c\x75\x81\x48\x6c\x6a\x01\x3d\xf0\x26\x0d\x93\x05\xc5\xae\xf7\x9b\xa7\xab\xfe\xf7\xca\x89\x49\x5f\x0f\x29\x13\x4e\x12\x61\x31\xdd\xb8\x2e\xaa\x73\x3b\x2d\xa9\x4d\x2f\x30\x91\x71\x42\x87\xfd\xff\xb1\x86\x63\x3e\xbc\x97\x44\x19\x16\x3b\x5b\xd5\xbd\xb2\xa7\xea\xdc\x79\x8a\xd7\x4f\x17\xad\x5e\x97\xc9\x32\x4e\xd2\x2c\x45\x84\xbc\xcd\xeb\xc6\x35\xe5\xb9\x4f\xe8\x36\x3f\x06\x14\x03\x27\x59\xc4\x53\x47\xb1\xd9\x79\xdf\x8f\xb2\xec\x09\x41\x38\xc9\x32\x88\xe4\xc4\x35\x1e\x60\xad\x9c\x64\x32\x12\x0e\x3c\xfd\x03\x1d\x54\xdf\x4d\x75\xd9\x53\xc5\x49\xa6\x19\xef\x89\xdf\x42\xb7\xeb\xe6\xd7\x49\x96\xe6\x52\xe8\xf6\x5f\x13\xca\xd9\x70\x04\xb0\x41\x65\xf0\x2e\x2f\xc7\x3d\x89\xb3\x89\x8a\x3b\x12\x90\x53\x0d\x48\x99\x3b\xea\xcc\x09\x33\x8c\xe3\xa1\xf4\x35\xd9\x89\x22\xf3\x88\x28\x80\x13\x05\x8e\x08\xfa\x79\x90\xc8\x5f\x7b\x15\xc6\x81\x18\x7b\x7d\x21\x1b\xd9\xfd\x10\x1c\x3b\xb6\xbb\xb2\x7d\xb5\x3b\x15\x79\x8b\xc0\xbc\x19\x9d\xe4\xf4\x77\x9a\x1a\x44\x52\x48\xcf\x75\x34\x4a\x91\x70\xa2\x4d\x1c\x3b\x8e\xbf\x69\x4b\x1a\x27\x46\x70\x34\xb7\xd7\xa0\xce\xcf\x17\xb9\xd7\x89\x85\x31\x36\x42\x78\xe3\xae\x2a\x83\xdf\x7c\xac\xde\x46\x17\x34\x6c\x43\x04\x28\x20\xcf\xa7\xf7\xbd\xee\x47\x7a\xf6\xb3\x67\x0e\x2c\x8e\x9d\xdc\x4e\x69\xaa\xf7\x31\x01\x06\x27\x36\x12\x11\x09\x88\xad\x6e\x4b\xf7\x5b\x7b\x3f\x9e\x24\x82\x06\x94\xdc\x01\x63\x01\xf9\x81\xfe\xe4\xe8\x52\x2c\x28\xa4\x6c\x00\xd7\x6b\xd6\x93\x57\x0e\xff\x37\xbe\xcb\x38\xa2\x91\xf6\xfa\xbf\x87\xc7\xa7\xed\x1f\xab\x3d\xfa\x49\xbf\x85\x61\xc3\x48\x1f\x73\x62\x99\xe7\x38\x6a\x99\xe1\x31\x8d\x29\x26\xcd\x2d\xe8\x97\x3f\xaa\x16\xee\x64\x5e\x0e\x58\x6d\x1e\xd3\x4c\x65\xa1\xec\x0c\x25\x20\xb0\xab\xff\x68\x62\xaa\x5c\x82\xf6\x5a\xe6\x45\xff\x47\xa6\x93\xc8\x1b\xba\xcd\xf1\x54\x54\x1f\x00\x17\xad\xda\x5f\x71\xfc\xf1\x98\xdb\x14\x53\x4e\xba\x2a\x9b\xb6\x3e\xeb\x51\xef\xfe\xf4\x6d\xc4\x82\x90\xc8\xc5\xc7\xbf\xae\xa0\x6d\xa6\x75\x5a\x8e\x54\x88\x30\x2c\xce\xab\xfe\xef\xb1\x0a\x2e\xd4\x35\x58\x79\x2e\x5a\xdf\x79\x7b\x91\x1c\xe2\xb1\x10\x8e\x1a\xe5\xaa\x96\xc8\x31\xb4\x40\x90\x7a\xe1\xd6\xc4\x09\x4f\x9c\x47\x11\xbe\xa1\x56\xe6\x73\x56\x5e\x1e\x27\x42\x20\x77\xf7\xe6\xdb\xb7\xdd\x61\xff\x70\xf8\xbe\xda\xaf\xbf\x1f\xc8\x5a\x06\xbb\x13\x27\x29\xc5\xee\x02\x97\x4e\xbe\x86\xe3\xb9\xae\xe5\x33\x38\x82\xe4\x90\x59\xe0\x71\x92\x69\xdc\xac\xc0\x5a\x40\xa2\x94\x3b\x7c\x1e\xfd\xb0\x62\xa8\x98\xf5\xfd\xdb\x8f\xd5\x38\x17\xc9\xe3\xd4\x52\x08\xac\x01\x3d\xb1\xa5\x1f\xcb\xa8\x45\x20\x2a\xca\x18\xa8\x73\xff\x7e\x33\x2d\x21\x19\x75\x36\x39\x34\x44\x33\x0c\x3b\x78\xc5\xee\xe1\x66\x7f\x58\xaf\x1e\x0f\xdb\xfb\xc3\x66\xff\x7d\xf3\x34\x9a\x80\x99\xb1\x95\x79\x83\xba\xcd\x1d\xe8\x7f\xd7\x56\x83\x08\x0f\x8f\x25\xa5\x0e\x29\x5c\xcb\xb2\xdd\xd7\xd5\xe9\x65\x99\x7a\xa8\x9b\xe9\x84\xd5\xef\x72\x24\xcb\xaa\x47\x6b\x5b\x02\xc5\xd0\x41\x3a\x62\x95\x4f\xbc\xda\x30\xd9\x3a\x69\xc6\x9b\xaa\x86\x67\xc4\x2a\xf9\x76\xb4\x27\x68\xce\x85\x83\x5a\x7c\xd6\x4b\xe9\x0f\xa1\x92\x04\x63\xe4\x55\x5e\x5f\xd7\xd5\xe9\x51\x7e\x5c\xe5\x6d\xf3\x44\x67\x19\x76\x1e\x6b\x2d\x8d\xea\x57\x87\xc3\x0a\xdd\x9c\x0b\x9b\xbb\x8a\xd6\x02\xdf\xdc\x70\x12\xc3\x9c\x24\x15\xc2\xf8\xae\xaa\xf6\xe5\xbe\x6a\xef\xcf\x45\x11\x6e\xda\x18\xd0\xba\x87\x72\xca\xa2\xa8\xfa\x65\x00\x91\x89\x71\xd5\xff\x78\xba\xed\xff\x96\xba\xee\xb7\x1a\xa4\x59\xd5\x6d\xde\xf9\xae\x13\xfb\x02\x99\x93\xdc\x6d\xa0\xbd\x6b\x9e\x2f\xe4\x98\x78\x6c\x25\x43\x4e\xc6\xfd\xc3\x9f\x93\xa5\x65\x95\x63\xc5\xff\xb1\xbb\xbf\xf8\x60\x26\xfb\xe6\x34\xcd\x1e\x82\x13\x1a\x91\x68\x90\x26\x9b\xb9\x54\xcb\xef\x90\x46\xd2\xbd\xc3\x67\x68\x7f\xe6\xcd\xcb\xde\x13\x27\x4d\x27\x11\x29\x11\xeb\xba\x79\x83\xfa\xc3\x48\x27\xf6\xf6\xbf\x53\xa8\xe2\x34\x4e\x2c\x04\x74\x2a\x92\xff\xe2\x66\xba\x2a\x8d\x4f\xe1\x01\x72\xe3\xf8\xc9\x94\xa5\x19\x0b\xd4\x1d\x05\x7e\xba\x97\x85\x72\x4e\xa9\x4d\x30\x56\x33\xd0\x42\xdd\x39\x46\x3f\x71\x9b\x7e\x30\x93\xe2\x15\xa7\x3c\x72\xd4\x9d\xd2\x98\x7d\xfe\x49\x01\xbd\x9b\xa5\x44\x78\xb1\x9d\x33\xec\x3f\xb0\x3f\x72\x78\x0f\xd7\x25\xe2\x0c\x21\xfc\xff\x3e\x43\xfd\x41\x16\x18\x12\x38\x15\xca\xd5\x54\x4f\xb8\xcf\x6d\xf7\x0f\x87\x17\x59\x9b\x29\x28\x9f\xd3\x84\x3b\x35\xc9\xce\x43\x0d\xb0\x93\xd6\x21\xbf\xa6\x16\x8f\x26\xca\xa5\x2b\x7d\x33\x67\x5e\x3e\x0f\x69\x34\x4e\x53\xee\xf8\xf0\xaf\x36\x9b\xa7\x5d\xff\xc7\xc4\xa0\x67\x77\x40\x7b\x13\xba\xe0\x77\xe7\x53\xf7\x1c\xa7\x9f\x4a\xf8\x85\x4a\xd0\xa8\xad\x65\x51\xf4\x8c\x0a\x7f\x17\xd3\x0e\xc6\x9b\x66\x71\xa4\xd5\x08\x64\xf9\x0a\x25\x3a\x04\x4b\x0f\x28\xe3\x4e\x1b\xd5\x15\xd9\xb7\x4d\x73\x06\x33\xe2\xcd\xe0\x34\x53\x16\xf5\x50\x3a\xfb\x1d\x91\x1b\x50\x71\x44\xb2\x30\x28\x05\xf4\x12\xbb\x78\x27\xeb\xaa\xec\x8c\x62\x6f\xc3\xa8\x94\x8c\x47\x9e\x11\x0d\x33\x87\x55\x03\xe6\xe0\x6f\x66\xf1\x8a\x54\x02\xc8\x09\x39\x00\xc1\xaa\xa2\xe8\x7b\xca\xc2\x71\x75\xec\x32\x57\x47\xf9\xeb\x11\xea\x71\x0a\x9c\x53\x2d\x13\xe4\x9d\x7d\x82\xf7\x41\xfb\x9c\x53\xed\x19\xd7\xb4\x2c\xfd\x65\x4e\xb2\x40\x54\x1b\x47\xca\x75\x72\xad\xd2\x23\x02\x46\x4e\x8d\x8e\x03\xb7\xe2\xcf\xaa\x32\x8b\xc9\x0a\x6a\x4c\x96\xf8\xbe\x88\x6b\x78\x9b\x5e\x93\xb1\x1a\x03\xe9\x93\xfc\xd8\xfc\x6a\x6b\x39\x2d\xbe\xfb\x49\xc0\x65\x3c\x86\x34\xb8\x5c\xec\x97\x1d\xf6\x9c\x82\xb0\x58\x8a\xf1\xd0\x85\x6e\xd1\x8e\x31\x73\x9c\x82\x76\xbc\xa5\x0e\x30\x5d\x1c\x87\x54\x0c\xb5\x90\xba\x95\x22\x0b\xfd\xa3\xbc\x93\xcd\x2b\x98\x8d\xac\xcb\x31\xda\xac\x9f\x6a\x31\x82\x70\x0c\xfc\x27\x99\x7f\xbe\x24\x17\x92\xd0\x9c\x45\x3c\xc6\xc6\xba\x2e\x76\xea\xaf\x8d\x45\x82\xa0\xc7\xb9\xdf\xaf\x2f\x3b\xbe\x39\x8b\x52\x99\x7a\xc2\x85\xb5\x6c\x5e\x7a\xb6\x4a\xce\x22\x49\x33\xe1\x94\x0d\xab\x3a\x48\xc6\x8d\x40\x22\x61\xaf\x62\x84\xe8\xb4\x87\x8d\x77\xd6\xed\x1d\x9c\xd9\x59\x82\xa0\xa4\xe1\x47\xcc\x20\xcb\xbe\x8a\x9b\x11\xda\x82\x33\xa2\x29\x82\xf6\xdb\xea\xd0\xf9\xab\x79\x10\x2c\xe6\x8c\x80\x2b\xbb\x37\xe7\xe3\x76\xfd\x80\xa5\x26\x16\xc6\x62\x11\xa5\x71\x80\xa2\x99\xea\xbd\xbc\x06\x5d\xc3\x71\xf4\x18\x3a\x0b\x64\xc3\x9a\xff\xd1\xa0\x42\xf3\xeb\x8c\xca\x85\x33\x6a\x9d\xd8\xee\x44\x79\x67\x5f\x5d\xea\x25\x70\xc6\x28\xc1\x0a\xf6\x53\x67\x01\xbe\xc9\x23\xca\xe2\x6c\xf7\xdf\x96\x83\x19\xc6\x52\x82\xc9\xba\x89\x9e\xcb\x9d\xd7\x73\xe9\xef\x83\xa5\x12\x11\x80\x9e\x20\x62\x65\x9c\xa5\x08\xc4\x50\x61\x96\x34\xd8\x1d\x29\x8b\xe2\xea\x63\x2a\x70\x3b\x3f\xab\x76\x8c\x84\x03\x4e\xd8\x4b\x95\xcd\xbe\x0b\xc6\x53\x86\xf4\xa8\x07\x5c\x7c\x4e\xbd\x68\x5b\xbe\xe5\x2d\x18\xcc\x59\xcf\xdd\x9a\xc1\x16\x32\x9e\x8a\xf0\xe1\x3e\x6e\x5d\xab\x12\x11\x93\xfd\x88\x09\x02\xf8\x7d\xdc\x8d\xb7\x7f\x26\xa4\x89\x06\x89\x3d\xdf\xf9\x30\xf9\x5d\x9a\xc6\x58\xcc\xde\xfc\xba\x92\xad\xc4\x5e\xe5\xa1\x7e\xde\x0d\x4b\x7c\x05\xea\xfc\x31\xd2\x19\xe1\x2c\xa3\x8e\xef\x04\xe1\x84\xc8\x36\x19\x28\xe6\xe6\xef\x5b\xc6\x31\xe2\x44\xcc\x4b\x75\x92\xaf\x7d\xca\x63\xbe\x70\xff\x09\xc8\xa2\x3b\x98\xeb\x56\x08\x54\x91\x0e\x5a\xe8\xb9\x22\x7f\xeb\x27\x49\x8c\xa2\x47\x6c\x7b\x61\x44\x3a\xcd\x90\x67\x68\x1f\x5f\x2a\x28\xf3\x5f\xb3\x09\x2a\x72\xfd\x12\x9f\x89\x30\x4c\x6f\x4d\x45\x22\x4a\x07\xbe\xc6\xf9\xb1\xb4\x46\xe0\xe4\x31\x2f\xf3\xf2\x7c\x1c\xd0\xc0\xc3\x9e\xcd\x94\x65\x4e\xd2\xe3\xa3\x71\xf2\x46\xc7\xbc\x28\x06\x0f\x9c\x69\xee\x36\x01\x84\xab\x56\xfa\xf5\xea\xfc\x81\x89\x51\xcf\x18\x36\x3d\xa1\xe6\x86\xb2\x91\xe2\x7a\xd8\x6c\x16\xd3\x40\x4c\xa7\x89\xa2\x43\x51\xb3\x3f\xa3\xcc\xac\xdf\x0c\x0f\xc7\x8f\x09\xf1\x17\x67\x5a\xbb\x9e\x35\xfc\xc2\x51\x55\xac\x1f\x32\x14\x62\xd6\x0b\x27\x54\x75\x33\xdd\xea\x98\xc9\x94\x62\xc8\xfc\x50\xbf\x62\x8f\xca\x65\x38\xfa\x77\xb5\x90\xe5\x25\x61\x8c\xd3\x41\xfb\xd6\x17\x48\xaf\xa0\x3d\x8c\xb0\xe6\x9c\x19\x2b\xe5\x00\x14\xee\x1b\xcb\x38\xb3\x89\x4a\xed\x50\xd1\x1a\x88\x84\x39\x8f\x78\xac\x7c\x6d\x0e\x61\x6e\xa5\x86\x45\x85\x64\xce\x23\x2b\x93\x38\xa8\x6c\x34\x50\x36\xe7\xe6\x41\x61\xa4\x39\x5b\x7e\x9c\x28\x62\x1c\xc2\xa8\xfa\xf5\x11\x78\x36\x16\x97\x16\x27\xc6\x78\xf2\xd9\x19\x8f\x21\xe7\x31\xcf\xb4\x0a\xcd\xa4\xcd\x38\x7f\xc4\xe3\x54\x4a\x4f\x43\xb8\x6d\xe1\xb8\xaf\xb6\xa5\xc3\x04\xff\xd3\x62\xc2\xf2\x33\xe6\x54\x53\xe6\xf3\x52\x7e\x63\xbd\x83\xb6\xce\x75\xb3\x1c\x0e\x72\x6a\x0d\x33\xc1\x1f\x3b\x20\x56\x31\x0e\xd7\xc8\x23\x82\xb9\xa3\xdd\x59\x05\x2a\x8e\xc9\xe6\x15\xf6\x3c\xce\x23\xc9\xc9\xa0\x8e\xee\xbd\x15\xf4\xa2\x2f\x68\x66\x47\xdb\x1b\xc7\x08\xa4\xdb\x8d\xa1\x69\x27\x99\xef\x30\x2e\x9c\x7c\xc9\x35\xc8\x02\xea\xdd\x80\xd1\x0b\xe3\x86\xa3\xe4\xc2\xa9\x7b\x4b\xa8\x6f\xd3\x0f\x28\x12\x85\xbb\x0a\x3c\x3f\x5f\xa2\xa7\x39\x17\x82\x10\x70\xf0\xf5\x7d\xe5\x14\xa1\xa7\x13\x12\x61\x1d\x73\xc1\x00\x95\x9e\x18\x68\x9e\x24\x91\x0c\xca\xa4\xba\x42\x7f\x8e\x2c\x47\x1b\x3c\x49\x52\x30\xa3\x5e\x45\x67\x8f\x1d\x27\x81\xef\x5b\x1c\x90\x3b\x9c\x27\x99\x72\x2a\x4b\x3e\x63\xef\xf5\x53\x16\xcd\x05\x4f\x24\x0f\x8a\x0c\x3f\x41\x9e\x2e\x98\x7d\xbe\xe8\xdb\xe0\x3c\x51\x0c\xb9\xdc\xb1\x61\x6b\xbe\xcf\xcd\xa6\xea\x04\x9d\x71\x5c\xf6\x53\x35\xa0\x4f\x1e\x71\xca\x25\xe2\xd4\x8e\x88\x8d\xc3\x1d\xd5\xab\x2a\xcd\xce\x34\xa6\xff\x0e\xbf\x4d\x39\xe2\x5f\xe4\xe9\xd4\xcc\x33\xdc\x61\x8a\x71\x20\x43\xb7\x6f\x05\xe1\xbf\x4b\x37\x8f\x67\x11\x68\xff\xf1\xed\xe5\xf3\x12\xf1\x11\xe7\x99\x80\x18\x7a\x39\xbb\x0b\x66\x73\xce\xb3\x54\x21\x58\xd9\x15\xc1\xd6\xf2\x78\x92\xf9\x73\x39\x9f\x94\x11\x2a\xfa\xe4\x36\xf4\x2f\x34\x53\x31\xb2\x60\x3b\x31\xc5\xd5\x64\x15\x84\x39\x32\x96\xa8\xf3\xf5\x37\xbd\x45\x97\xd1\x36\x97\x34\x8d\xcc\x28\xe3\xd4\xf9\xe7\x0e\x8e\xb4\x18\x48\x70\x45\x29\x86\x40\xcf\xf2\xa8\x0a\xa8\x7b\x03\xa0\x2c\x61\x03\x4b\x1d\x40\x73\x9b\x37\xed\xb8\x03\x9d\x73\x1d\x39\xad\x43\x47\xc8\x30\x21\x24\x59\x5c\xf8\x3a\x89\x30\x3e\x73\x3c\x7b\x13\x90\x24\xe7\x5a\x66\x4e\x73\x15\xcf\xb7\xe4\xa3\x70\xc3\x22\xec\xcb\x3b\x60\xbe\xe6\xb6\xd2\xaf\xe7\x53\xf8\xb9\x49\x85\x4a\xbd\xa2\x4f\x79\x06\xfc\x48\x1c\xab\xdc\x24\x27\xce\x8d\x66\x22\x78\x9f\x7e\x23\xda\x9c\x2a\xfd\x82\x26\xf8\x2d\x30\xbc\x70\x6e\xac\xfb\x90\x0a\xb0\x6d\xca\x66\x6f\x16\xa4\xa3\xc2\xc6\x5d\xe7\x47\x33\x05\xc0\x73\x0e\x2a\xc1\xeb\xd4\x48\x50\xfb\xfa\xa9\x44\x68\x28\x24\x7d\xf9\x89\x2e\x73\xd2\x86\x33\xd9\x14\xfb\x05\x3c\xe2\x73\x08\xc4\xb8\x25\x49\xcc\x67\xcb\xa0\x6c\x1f\x2c\xa6\x7c\xfb\xa7\x61\x85\x1d\x1a\xa1\x7c\x59\xfb\x5c\x8f\x8e\x62\x44\x4c\xc3\x78\x8f\x3b\x0a\x83\x20\x59\x90\xf6\x97\xe5\xeb\x35\xb4\x32\x2f\x9a\x31\x2a\x89\x73\x6b\x1d\xbd\x47\x21\x9b\x16\x4f\x7d\x78\x23\xe2\x3b\x6a\x67\xbb\x1b\xf1\x07\x13\x24\x11\x88\x9a\x7e\x5c\x5f\xcf\xb0\x8b\x5c\xc4\xb1\x6b\xd7\x6a\x06\x55\x1c\x0c\xae\xc6\xca\xdd\xd3\x07\x23\xe2\x2e\x10\xf2\x58\xf6\xf3\xf1\xb1\x6a\x90\x18\x7b\xe8\x6d\x99\x21\xbf\xc6\x5f\x90\x88\x05\x68\xd5\x53\x39\xe1\xa7\xd3\xf4\x97\x92\xb1\x68\x68\x98\xf2\xf9\xf0\xfe\xc1\x2c\xda\x4a\x41\x55\x12\xb6\xe5\xc7\xd5\x88\x3b\x73\xfc\xa0\x04\xb5\x14\x4b\x6a\xc1\xca\x37\x8f\x72\x50\x17\xe7\x82\x31\x6b\x44\x7f\x4d\x8e\xc6\x77\x8e\xfa\xe7\xa2\x33\xcc\xf1\xd0\x25\xfc\x75\x16\x57\x30\x90\xb4\x27\xe8\xfa\xa3\xca\x7b\x69\xdb\x70\x52\x4e\x5d\xaf\xab\xdb\xf4\xea\xfe\xcf\xc2\xa5\x6e\x4f\xc4\x7d\x88\xe1\xef\x22\xcd\x70\xb1\xac\xf2\xd7\x81\x46\xa8\xfb\xb3\x23\x43\x7d\x78\x5a\xad\x6f\xb7\xff\xb5\x39\x7c\x5b\xed\xfa\xb1\xcc\x05\xcc\xa7\xba\x6a\x9d\x52\x5e\x28\x4b\x57\xd8\x1f\x3d\x2b\xf6\xfa\x5f\x25\x52\xf8\xda\x7e\xfb\xe7\xfa\xb1\x38\x3f\x0f\x27\x4b\x34\x47\x06\x9e\x2e\x10\xf2\xa9\xc6\xb7\xe9\xc7\x2b\xd2\x08\xa2\x6c\x20\x69\xce\x7f\xc1\x0c\xce\xc7\x45\x6a\x15\x1a\x2a\x9b\x97\x79\xf3\x82\x6d\xa7\xab\xd2\xec\x1c\x6a\x21\xac\x7f\x91\x19\x95\xca\x69\x03\xde\xfe\x97\xfb\xce\x7e\xff\xf9\xb2\xec\x73\x09\x19\x65\xb8\xfd\xcc\xf5\xd2\x26\x7c\x64\xd3\xf5\xa3\xe3\x14\x69\x3c\xac\x17\x8e\xf3\x41\x73\xb8\x0c\x2d\x58\x68\xdb\xe8\x82\xef\xe6\xc1\x98\xb9\xfa\x3b\x17\x3a\xd5\x8e\xa8\xc9\x4b\x6f\x9f\x86\xa5\xa5\x55\x82\x89\x60\x19\x9a\xe8\x46\x23\x12\xcb\x95\xde\x84\xfe\x94\x75\x73\x05\xad\xec\x87\x01\x82\xca\xbf\xbb\xeb\x47\xa8\x9d\x43\x3f\x7d\x9a\x96\x6a\xaa\x02\xc5\x4f\x29\x8b\xad\xae\x6e\xf0\xc1\xce\x3d\x6f\x61\xc1\x19\xdd\xb2\x6a\xe5\x02\x00\x64\xf6\x6f\xb8\xb9\x24\x22\x02\x8b\x2f\x77\x43\x17\xd7\x6f\x61\x88\x67\x91\xeb\xf2\xbb\x05\x14\x76\x66\x37\x37\xd3\x5d\x25\x89\xb8\xeb\x08\xb8\x7a\xcf\x67\xbf\xcd\x98\xf6\x65\xf2\x60\x8a\x12\x12\xb9\x46\xaf\x06\xfa\x2a\x42\x42\x98\x46\x64\xd0\xfe\xe1\xf7\xcd\xfd\x61\x7d\xbb\xda\xde\x1d\x7e\xae\xb6\xfb\xed\xfd\xb7\xc3\xe3\xe6\x69\xfb\x70\xdd\xcf\x94\x89\xf5\x78\xc3\x11\x8d\x22\x4f\x88\x71\x94\x91\x37\xe7\xce\x5d\x5e\x6c\x76\x39\x3b\x58\xfd\xb4\x28\xf0\x79\x69\xa0\x7f\xa6\x09\x65\xae\x71\xad\xc9\xff\x03\x0f\x76\xeb\x3f\x2a\xd2\x0f\x27\x8a\x0c\xed\x03\x4b\x8a\xfa\x3c\xa1\x19\x01\xde\x7f\x31\xdf\x46\xf5\xde\x30\x41\x32\x04\xe3\xe4\xba\x62\x83\xe4\x11\x4f\x98\x01\xe9\x4b\x87\x57\x35\x40\xf7\xfc\xe7\x4a\xfb\x3c\xe1\x84\xa0\xab\x53\xc2\xfb\x27\x72\x2a\xb3\x3b\xe2\xdd\x27\xe1\x16\xfc\x8f\x2b\x68\xd7\x2f\x30\xec\x68\x09\xe7\xc6\x1b\xca\xbe\x49\x6a\x76\x3e\x41\x22\x77\x37\xe8\xbb\x8d\x5b\x1a\xa6\x84\x47\x7f\x57\x7f\xfd\x9b\xe7\x2e\xa4\xa0\x3c\x74\xfc\x39\x48\xee\x5a\x9e\x96\x43\x82\x24\xe1\x2e\x7a\x70\xfd\x83\xdb\x12\x19\xda\xde\xe0\x02\xe4\xcc\x93\x24\x89\x4c\xea\x90\x89\xdb\xf5\xc3\xdf\x75\xe9\x86\x1f\x65\x2c\x0e\x95\xcb\xd1\x0d\x8f\xf6\xd8\x24\x4d\x2c\x06\x25\x3f\xab\xc2\xd6\xf2\x18\x90\x65\x4e\xb9\x34\xcc\x49\x35\xf8\xed\xe5\x6d\xf6\x11\x65\xb1\x08\xb6\x70\xa2\x44\x13\x86\x53\x8e\xdf\xd8\xc0\x77\x3e\xda\x84\xff\xf1\x3f\xe1\x60\x3a\x8d\x86\xe5\xe8\x70\x5b\x6d\x85\xf4\x42\x1f\xb3\xf3\xca\x98\x60\xc7\xda\xb7\x73\x51\xe4\xe3\xf0\x31\x91\x69\xe6\x60\x98\xa7\x29\x01\xf3\x3f\x7d\xdb\xfe\x30\x8a\x01\x76\x83\x1c\x1a\x68\xef\xaa\x1a\xc6\x4e\xd0\x3f\x09\xe0\xa7\x4f\x51\x29\x81\xec\xb4\x8e\xf9\xaa\xb3\xf5\xae\xbb\xcf\x0f\x6b\x11\x05\xc5\xa3\x6d\x0b\xc7\xde\x07\x9a\xd5\x40\x17\xbd\x90\x44\x43\x44\xe3\x31\x60\xae\x0b\xd1\x37\xf3\x3c\xdf\xf4\xee\xb4\x75\x92\xf2\xba\x3a\x9f\x66\x86\xd5\x10\xaa\x03\x04\x08\x1f\xe0\x15\xb4\x8b\xa0\xbf\xc4\x98\x54\xd1\x80\xf7\x6e\x5a\xa8\x7f\x87\x8f\xd9\xea\x01\xce\x03\x98\x6f\x55\x14\xd8\xc5\x9e\x0f\xcb\x0e\x52\xab\x93\x31\xbb\x8d\xc7\x74\x3b\xff\xe9\x93\xdb\x05\x6b\x31\x07\xf6\x0d\xda\xbb\x8f\x5d\x89\x2f\xc5\x0f\x59\x66\x98\x13\x4c\x38\xf6\xfd\x77\x3c\xb1\xdc\x49\xc5\x78\x6a\xd6\xfc\xf9\xa5\x9d\x6e\xb4\x69\x24\x33\x1e\x05\x20\x84\xeb\x50\x7c\x82\x93\xef\xae\x28\xe0\xa6\xaa\xb1\xda\x82\x2a\xf2\x98\xa4\x1a\x49\x1c\xf0\x34\xd2\x9a\x87\x98\x72\xb6\xfb\x4d\x9f\x7a\x1a\xa7\xcc\xfa\x2a\xf2\x6a\x7d\xfb\x54\x15\x90\x90\x98\x66\x51\x16\x13\x9a\x45\x09\x4f\x49\x94\xc5\xd3\x27\x98\xd2\xc4\xc9\xd8\xb9\xab\xbf\x95\x68\xc7\xe5\x62\x74\x9b\x32\x42\xbc\x7e\x4d\x89\x9a\xab\xcd\x6f\xd3\xcd\x25\x4c\x93\x16\xed\xa4\x3a\x7f\xdc\xca\xa3\x0a\xd5\x87\x94\x47\x02\x93\xbb\x4e\xe4\x09\x29\xc2\xb0\xb5\x74\x6b\x1f\x4e\xfd\xfa\x48\xb9\x34\xe8\x28\x1b\x28\xe4\x87\xf7\x93\x57\x23\xd5\x2d\x9e\x0a\xc9\x49\x12\xb4\xf4\x5a\x59\xec\x4e\x55\xd9\x54\xf5\xdf\x68\xea\xf2\x54\x00\x73\x32\x83\x2e\x73\xb9\x2d\xbb\xf5\x17\x0e\x9a\x90\x0c\x2b\x88\xb5\xd4\xb0\xaf\xae\x64\x03\x97\xcd\x55\x3c\x4d\x68\xec\x18\x7a\x2a\xaf\x41\x37\x78\xd2\xb3\x93\x25\x4c\xa3\xe1\x7a\x84\xba\xa9\x4a\xb9\x35\xe0\xc8\x22\xc3\x30\x8f\x70\xf7\x54\xb2\x81\xad\xae\xc6\x59\xbe\x34\xf5\x2d\x15\xa3\x6a\x40\x3c\xc9\x19\xa5\x19\x17\x71\x68\x4a\x7a\x93\xad\xfc\xa4\x76\x91\x4a\xe1\x78\x98\x6a\x40\x76\xd0\xb0\x4b\xfa\x51\x45\x58\x12\x18\x55\xbb\x0d\xd6\x2f\xae\x91\x71\x4f\x75\xa6\x71\x7b\xf9\x00\x59\xd3\x1f\xe5\x28\x0b\x9f\x1a\x9e\x09\x5f\xb0\xbb\x73\xe5\xfd\x66\x73\xcc\x43\xa3\x30\x4f\x4d\x26\x94\x1a\xc5\x25\xb7\xd8\x26\xed\xb9\xc2\x3f\x2e\x9f\xdb\x17\xbc\xba\x3c\x35\x32\x49\x10\x39\x36\xb0\x91\x7d\xb9\x71\xa5\x40\x52\x4c\xc5\xae\xee\x6e\x1f\xde\xa0\xb3\xdf\x5e\x7d\x64\xba\x54\x21\x49\x83\x6c\xea\x4e\xbf\x40\x51\xe4\xe5\xb3\xe3\x7e\x9d\x1d\xce\x1a\x64\x7b\x7a\x1b\x4a\x48\xa9\x4d\x29\x16\x52\x8f\x79\xb9\x1b\xea\x69\xe4\xc7\xee\xba\x9f\x21\x19\x96\xa2\x9a\xf3\xf1\x18\x7a\x29\x3c\x3e\xac\x9f\x62\x9d\xc2\x69\xef\x43\x5f\xa1\xf3\x81\x28\x95\x79\xbd\x2c\x8b\x84\xc2\x3c\xf7\x13\x74\xab\x41\xb7\xa3\x26\x89\x2c\xca\x64\x10\xdf\xeb\x89\x4d\xb1\xec\x34\x3d\x04\x91\x19\x02\x02\x5d\x83\xd7\xae\x85\xd3\x34\x54\x1a\xff\x37\xfc\xc4\xbb\xf9\xdd\x25\x75\x26\xaa\x99\x1f\x52\xbb\x16\x26\xdb\x33\x3b\xf1\x2c\x8e\x53\xcc\x83\xdd\x5e\xad\xfb\x3f\x69\x43\x7a\x45\xe1\x89\x46\x6d\xf3\x92\x9f\xfa\x59\xd6\x25\xd9\x9c\x17\x76\x95\x9b\x4f\xf2\x95\x19\x65\x29\x22\x74\xae\xb6\xbb\xfd\x66\x82\x89\xc9\x28\x33\x81\xf1\x37\x7c\x76\xf7\x3d\x67\x1b\xcf\x18\x91\xc8\x34\x86\x3e\x4d\x7e\x84\x07\x7b\x0f\xef\xeb\xba\xfb\xce\xfa\x29\x5c\x62\xbf\x83\xd7\xa8\x1a\xcb\x62\xf1\x8c\x89\x0c\xc3\x26\x74\x11\x7b\x02\xb1\x8b\xf5\x3c\xbb\x5e\x96\x38\xf6\x8b\x6e\xa5\xbd\xe6\x45\xf1\x35\xc8\x26\x63\x59\x82\x11\x54\x35\xca\x44\x6d\xcb\xdb\x1f\xfb\xdf\x66\xf3\x4c\x84\x14\x28\x06\x90\x17\x64\x20\x41\x9e\x9e\x9d\x47\xda\xf8\xe8\xc3\x4a\x6f\xb9\xc2\x10\x65\xe8\xcf\x98\xd0\xec\x83\x3b\x58\xf3\x60\x0f\xb3\xf7\x2c\xb8\xcb\xc8\xcc\xb7\xfe\x30\x9c\x70\xe4\xb7\x36\x80\x68\xc4\x1e\x14\xbe\xdc\xeb\xc4\xb3\x24\x71\x5a\xb2\x33\x80\x78\x3f\xea\xd4\x41\x6f\xb7\xf7\xeb\xc9\xcb\x4d\x8c\x46\xd8\x6e\x20\x69\xdf\xbf\xd4\xd0\xbc\x0c\xa1\x43\x96\x52\xe5\x0a\x55\x4d\xa0\x10\xf0\x28\x96\x3e\x3c\xcd\x32\x1a\xa5\x4e\xb4\xf3\x63\x1d\x98\x2f\x78\x26\x63\x27\x2e\xa5\x65\x6d\xbc\x37\x86\xe0\xe4\xe9\x85\xc9\x6e\x87\xf2\xf2\x32\x23\xfa\x93\xfe\x20\x82\x63\x47\x69\xb0\x7a\xdb\x12\xa3\x9e\x2f\x37\xa6\x4c\x42\x16\xd4\x8a\xef\xe0\xa8\x46\xb4\x0c\x73\xb0\x7a\x30\x88\x99\x8a\x0c\xca\x26\xf5\x92\xf9\x01\xc2\x89\xe4\x54\xcb\xa9\xee\x4c\xc5\x1a\x43\x9c\x87\x77\xec\x26\xf8\x99\xb7\x2f\xf3\x32\x87\x5f\xbf\x69\xf8\x05\xcd\xb0\x7e\xe9\x77\xbb\xc3\x18\xe8\x9d\xe9\xc4\x7d\x67\x98\xa6\xde\xea\xea\x47\x63\xd6\x50\xb6\xe3\xbd\x2c\xd3\x2a\x56\x88\x0d\x7d\xee\xc2\xb8\x3d\x42\xae\x16\x5a\x48\x32\xad\x0d\x16\xcf\x8f\x95\xc9\xed\xc7\xb8\xac\x13\xcf\x66\x82\x52\x98\x42\xbd\x5a\xdf\x0d\xda\x3b\x3c\x03\xcd\x5d\x9f\x22\xb4\x0f\xe5\xba\x2a\xce\xc7\xf2\xb7\xf1\x9d\xd8\x8c\x5a\x9f\xfa\xb9\x3a\x23\x92\x72\xf1\x3b\x95\x84\xc6\xf8\xa5\xdc\xc2\xb1\x2a\x77\x50\xd8\xeb\xba\x3a\x79\x82\x37\x2e\x09\xa7\x48\xae\xef\xc2\xad\xf1\x9d\x4a\xa2\x32\x0c\x95\xaa\xf2\x6a\x2c\x9b\x34\xb9\x78\x49\x4c\x82\x56\xe0\xd0\x56\xea\xfc\xf1\x19\xab\xc5\xfc\x47\x96\x0c\xa5\x4a\xf4\xef\xc3\x26\x2b\xe3\x2e\xa4\x0d\x77\xa5\x5f\xa1\x7d\x78\xef\xd9\xa6\xa6\x07\x89\x25\x45\x82\xff\x90\x3e\xda\x83\x3c\x3e\x42\x6d\xfb\xd7\x29\x69\xa2\x70\x75\xbc\x7e\x68\x9f\x61\x9f\x80\x83\x24\x4d\x89\x70\x32\x8e\xb5\xcd\x1d\x4f\x90\x1c\x06\x95\x93\x59\xf1\x9e\x06\xea\x2a\x16\x60\xfa\x4c\x85\xa4\xda\xed\x22\x1e\xfb\xed\xcb\x55\x33\xfe\xbd\x7f\x16\x3b\x49\x16\x39\x01\xfc\xee\xfb\x9f\xed\x46\xf2\xff\xa7\xec\xcd\xba\x1b\xd5\xb1\xbf\xe1\xef\xf2\x5c\x9d\x8b\xbe\x40\x80\x06\xde\x3b\xc7\x49\xaa\xd2\x27\x83\x3b\x76\xea\xf4\xb0\x7a\x79\x69\xd8\x4a\xe8\x60\x70\x03\x4e\x2a\xfd\xe9\xdf\xc5\x96\xc4\x64\x92\x3a\xff\x9b\xae\xd3\x41\xc6\x18\x84\xb4\x87\xdf\x90\x52\x96\x51\x1f\x58\x39\xfd\xc5\x31\x88\x4e\xa6\xc2\xcd\xb3\xee\x86\xe5\xcf\x28\xe0\xd3\xb3\x84\x27\x15\x6e\x99\x4a\x87\xa2\x09\x2e\x5f\x9b\x11\xf5\x7d\x36\x67\x78\xec\xf0\x76\x88\xde\xb9\xae\x6a\xe4\xdf\x82\xff\x27\x9c\x8f\xa7\x09\x9a\xfa\xec\x1e\x76\xab\xdb\xfd\xea\xe6\xf1\xf2\xf1\x61\xb3\xb9\xba\xdc\x63\xf5\x67\xdb\x0f\x53\x59\x46\x46\x46\xee\x9e\x6a\xf0\x5d\x36\x2f\x7d\x62\x23\x85\xb0\x0e\xf8\x1c\xdc\xf9\x83\x05\xcb\xbc\x7c\x27\x85\x11\x58\xe1\xda\xe4\x9b\x7c\x94\xc5\x4a\x19\x53\x0c\x64\x7f\xdc\xac\x27\x7f\x4e\xe2\xb4\xc7\xb5\xee\xbb\x48\x65\x2e\xfb\x1c\x16\x13\x29\x19\x64\xa2\xc7\xe4\x8d\x65\x26\xce\x1f\x98\xe4\x0e\x96\xf5\x60\xed\x1d\x94\xa7\xbb\xaa\x6e\xa0\x18\xaf\x9b\x52\x8a\x04\xab\x13\xaa\x7b\x06\xd5\x71\x64\xf9\x43\xa5\x22\x5c\xf9\x78\xd8\x29\x3a\xf7\xd4\x66\x2a\x15\x4b\xf0\xdd\x70\x2e\x36\xd7\x00\xcd\x4d\x79\x71\x9c\x4f\x0a\x25\x00\x09\x35\xdd\x4f\x6d\x4c\x75\x38\x53\x60\xa7\x52\xe9\x88\x25\x83\xcc\x81\x34\x60\xbc\x7c\x74\x18\x00\x71\x24\xc7\x00\x88\x73\x9f\x03\x2a\xb5\x4e\x11\xc8\xef\x99\x68\xab\x03\x94\xa6\xcb\x71\xee\x64\x69\xce\xca\x63\xd2\x24\x54\x85\xea\xca\x5a\x16\xc5\xb4\xe3\x24\x0d\x75\xb6\x92\x9b\xc7\x2b\xf4\x73\xbf\x7c\x7a\x44\xa9\xf4\xfe\x38\x44\xd4\x4f\x95\xa7\x36\x2f\xf2\xff\xe1\xc2\xfa\xf8\x99\xcd\x11\x95\x90\x72\xc4\x7e\xac\x65\x6d\x02\xd3\x2a\x1c\xb2\x96\x91\x11\x10\xa5\x4b\xb5\x71\xf3\xf0\x71\x61\x38\x85\x4d\x15\x96\xd0\xfe\xfa\xd7\xc9\xe3\xb3\xdc\x39\x38\xe4\x65\x00\x0c\x9d\x63\x98\x55\x64\x1d\x92\xa3\x01\x59\x74\x6b\xe4\xcc\x1b\x9a\x2a\xc2\x25\x6e\xfa\x03\xd4\x6a\x7f\xac\xf3\x37\xd9\xc2\xbe\x91\x05\xec\xf1\x71\x7c\xb9\x56\xa2\xe0\x9a\xd7\x58\xf8\x03\xe0\x35\x71\xf2\x8b\xfe\x60\x4c\x78\x90\x06\x58\x5f\xac\x9c\x7c\xc9\x1d\x34\x8d\x7c\x06\xdf\x9f\x9c\x4c\x1b\x15\xb3\x04\x41\xd7\xbd\x54\x38\x20\x8e\x76\x9c\x8a\xa9\xc4\x6b\xb6\x7e\xdb\x5d\x8c\xef\x88\x4a\xa8\xa5\x83\x03\xa0\x2b\x3c\xf4\x17\x92\x58\xc0\x16\xe9\x3f\xc2\x1f\xd2\x98\xa1\x9c\x9e\x9b\xf9\x49\xd4\x7c\x1c\x54\x10\x83\xa6\x8a\x46\x31\xa5\xc1\x09\xad\x7a\x1d\xf9\x4e\x2e\xdf\x04\x4a\x52\xac\x9b\xef\x9e\xee\x6e\x70\x75\xf9\x75\xf7\x57\x51\x41\xa4\xaf\xf2\x6c\xaa\xb6\x8b\x9a\x65\xb1\xa9\x2b\x3b\x2a\xaa\x4e\xc7\xcb\xd4\xfd\x6e\x68\xc7\x58\x1c\xc5\x52\x82\x92\x77\xdf\xbf\x3f\x62\xc6\x37\x1c\x60\x11\xb6\x69\x11\xbd\xeb\xf2\xc5\x5d\x75\x13\x5e\xa6\xe5\xfd\x52\x31\xad\x71\xc6\xde\xad\xfe\xbe\xbf\xbb\xb9\xfc\xf6\xb8\xba\x0c\xa4\x1b\xc5\x63\x6e\x93\xc1\x09\x6c\xfa\x6e\x29\x9e\x3a\xd3\xf6\xed\x76\xf3\x54\x06\xa8\xea\x8c\xaf\x4e\x15\x37\xde\x90\x0a\x5a\x27\xe0\x37\xf3\xb0\x1a\x81\xf4\x14\xb7\x06\x23\x83\xdd\x0b\x7c\xeb\x56\xbb\x3f\xf2\xe6\xe5\xc1\xae\x5f\xf2\x32\x34\x36\x94\xf0\x7d\x0f\x5b\x54\x55\x7d\x5b\x3d\xcf\x62\x17\x25\x74\x84\x6f\xcf\x51\xd6\x1a\x8a\x6f\xff\xc3\x10\x0c\xa7\xe8\x83\xb5\x23\x26\x9c\x12\x56\x62\x70\x8c\xf7\xe9\xff\xa0\x06\x3b\xbb\x7d\x99\x96\xa1\x3c\x36\xf4\x57\x7a\xf0\xbf\x92\x40\x9c\xe0\x94\xac\x57\x5a\xcf\x8b\x1d\x4a\x02\x4d\xb2\xd9\x56\x04\x1b\x59\xb7\xb9\xce\x8f\xbd\xa5\x3e\x55\x0a\x00\xeb\x08\xf5\x01\xc5\xe2\x66\xb7\x58\xd9\x0c\x95\x69\x77\x1e\x83\x75\x66\x3e\x44\x95\x36\x4e\xaa\xfd\x22\x6f\x7f\xe4\x06\xaa\xd1\x8e\xa4\x4c\xe2\xb8\x75\x79\xd9\xde\xc1\xa1\xaa\x3f\x9c\x9c\xd2\xe4\xf3\x86\xdb\x20\x34\xe4\x2d\x12\xdc\x15\x9c\x37\x3a\x95\x91\x14\x4d\x9c\xb6\x9b\xab\xf5\xcd\xea\xf6\x66\xbb\xdb\x6f\x77\xab\xdf\xaf\xf6\xbb\xef\x8f\x57\xfd\xd4\x32\x46\x29\x27\x1e\x2b\xcb\xd7\x66\x55\x14\x5e\xa7\x6a\x5c\x54\x55\xc6\x82\xf1\x69\xe6\xca\xd4\x4b\xbe\x37\x54\x01\x73\xcd\x69\x74\x8b\x6a\x06\xb2\x90\x02\xc5\xc0\x21\xc3\x5b\xfd\xb2\x7a\x96\x79\xd9\xe0\xbb\x1d\x9e\xd0\xd7\x11\x90\xb2\x54\xa3\xba\x51\x17\x01\xfb\x98\xf0\xa2\x92\xb5\x79\x6a\xf2\xf2\xf9\x72\x96\x81\x85\xef\xb4\xc6\xc9\x84\x48\xe3\x81\x37\xc3\x6d\x5a\x8c\x85\x75\x24\x38\x19\x14\x45\x7d\x8a\x3c\x1d\x42\xe2\x24\x75\xd6\x39\x0b\x25\x99\x85\x1a\xbc\x26\x31\xc5\x6a\xc1\x6d\xf5\x7c\x57\x95\xf0\xb1\xab\x66\x0d\x89\xa5\xca\xa3\x26\xd4\x89\xcc\x3f\xfc\x6f\xec\x39\x42\x35\x61\x32\x98\x9c\xcc\x2c\xc6\xa8\x26\x3a\xb3\x3a\x68\xe7\x7c\x38\xb9\xcc\x51\x5d\x55\x27\xd4\x62\xed\x67\xaa\x53\x33\x41\xd3\xe8\x44\x44\x14\xa3\x02\x59\xbe\x0e\xc8\x01\x7f\x30\x25\x04\x0b\xe3\x7b\x38\xe4\x6d\xcf\x63\xf2\xf2\xf1\x93\xe7\xa5\x53\x92\x06\x74\xbb\x83\xcb\xfb\x14\x6d\x76\xc3\x53\xc6\x48\x00\x61\x05\x37\x40\x30\xe3\x7c\xc2\x0f\xa4\x09\xb1\x49\x2f\x60\x75\x99\x37\xb8\x6a\x8d\xf3\x11\x4d\xb3\x28\x75\x0e\x6b\x85\x2c\x9f\xdb\xf1\x5d\xa3\x4a\x48\x7f\x67\xf6\xcf\xa3\xf4\x34\x1c\x36\x80\x3c\xb7\xee\xdb\x07\x13\xb0\xd9\x2f\x62\x34\xc5\x99\xbd\xab\xe5\xdb\x34\x96\xd3\x4c\x0a\x9e\x06\x02\x26\x46\xa6\xdb\x3c\x04\x6c\x9a\xcb\x28\x73\x68\x4a\x14\x94\x1f\xa0\x7e\xe3\xe7\x9f\x46\xe3\x7f\xe6\xaf\xc3\xb2\x7f\x1e\xd5\x42\x11\x9c\xdf\xa7\xd2\x4e\x78\xee\xe1\x30\x10\x9c\xcd\x6f\x39\xbc\xa7\x01\x2e\xae\x33\xe2\x68\x2c\x58\x94\x9e\x16\x48\x75\x26\x09\x2a\xe3\x1c\xe4\x4f\xb7\x15\x8e\x74\xf4\xfb\x21\x34\x68\xe9\x3a\x96\x6a\x3f\x75\x64\x4c\x61\x70\xe2\xbc\x1f\x57\x01\x26\x53\x5b\x25\xc6\x8c\xf1\xf2\xa3\xf2\xab\x56\x89\x13\x6e\x7c\xc9\x9f\x5f\xa0\x69\x2f\x72\x33\x79\xc4\x2a\xa5\x08\x22\xed\x9e\xe1\xb7\xdc\xb6\xdd\xf2\x84\xcb\xec\xb8\xf9\xa6\x55\x96\x21\x02\xf1\x16\xc5\x25\xfb\xbf\x5a\x11\xb4\x69\xf0\xad\xb9\xf8\xc0\xf4\x67\xc1\x42\x9a\x6a\x4d\x12\xdd\xd3\x6f\xf2\xff\xf5\xdf\xaf\x69\x84\xd2\x60\xe0\x04\x39\x6f\x7a\xa2\x81\xd6\xc6\xe1\x9e\x1f\x54\xf5\x3a\x5b\x86\xb4\x49\x05\x16\xaf\x8f\x61\x27\x59\x68\xd8\x2f\xb2\x82\xb5\x51\x9c\xa4\x23\xbe\x67\x51\xd5\xf8\x9a\x84\x33\x43\x64\xb4\x63\x06\x1b\xd7\x78\x98\x45\x49\xa3\x97\x1f\x58\x46\xbc\x89\xdd\x9f\x6e\xb9\x4d\x6f\x0a\x08\xb7\xb4\xbf\x87\x17\x75\x75\x3c\x16\xa1\x41\x39\x9d\x98\x36\xca\x9c\x4e\xfe\xa9\x2f\x03\x87\x4b\xb6\x22\x65\xbe\x2c\xb1\xfd\xef\xfc\xbe\x5b\x69\x9c\xd4\x00\xe2\x03\x36\x8f\x37\xeb\xab\xfd\x7d\xff\x49\xad\x53\xbf\xf4\xfd\x0e\x28\xbf\xb8\xc8\x54\x32\x11\xcb\xa8\x77\x08\x5e\x4e\x0b\x0c\x51\x0c\x61\x39\x5d\x9e\x81\xea\x2f\x49\x14\x45\xfb\xab\xdd\x77\xff\x55\x26\xe6\xce\x1c\xd0\x56\x75\x17\xc6\xee\x0f\xd0\xbe\x54\x66\xba\x82\x4d\x1f\x9d\xff\x60\x12\x39\x85\x0b\x2f\x45\x30\x91\xc9\xa6\x26\x89\x33\xaf\x8c\xab\x21\x7f\x83\x60\x56\xd3\x1f\x56\x02\xf7\xd7\xe6\x74\x9c\x83\xf1\x4c\xa2\x1d\x15\xb7\xdb\x7b\xcb\xfc\x30\x53\x12\xa5\x26\xd5\x0e\x3a\x14\xfc\xd4\xf3\xb7\xbc\x80\xe7\x33\xdd\xae\xc9\xf4\x32\x94\xa4\x99\x2f\xe8\x8f\x53\xef\xe9\x45\xd3\xc4\xd9\x2b\x96\xa7\x03\x22\xf5\xfb\x4b\xa2\x42\xa6\x1e\xca\xef\x76\xd7\x87\x1e\x6c\x6e\x58\xc4\x11\xc2\x5a\xfb\x8a\xe4\x35\xc0\xbe\x3f\x96\x28\xcc\x4d\x2f\xea\xea\x15\xea\x7b\x78\xad\x26\x2e\x09\x38\xc0\x09\x71\x82\xae\x0e\x87\x99\xaf\x33\x35\x4c\x67\x78\x9b\x36\x3f\x36\xfb\x8b\xd5\x6e\xd7\xb3\xd2\x0d\x17\x26\x12\xa3\xc6\xed\x80\x09\xe8\x2f\x9a\x5b\x37\xc3\x1a\x70\xc5\xcc\xee\xe7\x2e\x81\x3d\x8d\x90\x31\xee\x75\x2d\x96\x54\x46\x6b\x94\x11\x92\xe1\xe4\xc0\x6e\xc4\x12\x6f\xc1\x64\x92\xe8\xf1\x0a\x17\x98\x03\x5f\x16\x45\x4d\xa6\x0c\x19\x25\x3d\x07\x59\xf7\xb5\x19\x23\xb9\xd3\x27\x70\x34\xaf\x06\x6d\xe1\xe1\x12\xee\xa0\x91\xbe\x9b\xff\x8b\x66\x7c\x38\x8f\x05\xcc\x48\xef\x30\x1e\x2f\xaa\x11\xfa\xcc\x28\x1e\xa3\xf9\x7c\x97\x9c\xdf\x56\x6f\x70\x0b\xed\x00\x65\x33\x9a\x30\xed\x51\x77\x43\xed\xfa\x5f\x24\x1e\x20\xc8\xa9\xaf\xa4\x76\x81\x7a\x50\x15\x48\xff\x1d\x3e\x9e\x18\xe3\xdd\x4e\xee\xe6\xa5\x08\xa3\x95\x9b\x62\x46\xb6\x72\x8b\x76\x60\xdf\xc0\xf9\xbb\x3d\xd8\x6d\xfe\xb3\x05\x98\x7f\xc2\x68\x81\x7d\xbe\xb7\xaa\x0d\x62\x79\x67\xd1\x9c\x31\xda\xa2\x5b\xdf\x09\xdb\x78\x4f\x25\x5e\x7a\xf7\xd0\xd6\x98\x9a\x4e\x07\x43\xec\x6c\x71\xda\x1e\x56\x37\x91\xe1\x9d\x7e\xbd\x4d\x9c\xa5\x56\x18\xbc\x29\x4e\xcd\x19\x5c\xc7\xd8\x2c\xc6\x85\xa8\x46\x6d\xba\x51\xb6\x63\x2c\xb8\x4c\xae\xf6\x7d\xad\x20\x87\xea\x8f\x43\x44\x2d\xe2\x20\xe5\x54\x6a\x90\x42\x94\x01\x4d\xc3\x1c\x09\x9d\xfd\xfe\x1b\x21\x82\x24\x76\x96\xe7\x95\x71\xba\x7d\xfd\x81\x14\x8d\x94\xfc\x82\xf6\x85\x27\x22\x85\x38\x71\x51\xc5\xdf\xd7\x0f\xf7\xe3\x30\x07\x62\xe6\x14\xa2\xbc\x08\xad\xcc\xcb\x16\x4a\xe4\x91\x54\x66\x1c\x68\x42\x9c\x39\x2e\xd5\xfe\xf0\x81\x2c\xff\x09\x5d\x01\x12\x4a\xc3\x2b\x78\x87\x71\x46\x5b\x79\xbd\xa1\x00\xb5\x82\x84\x27\x10\xa4\x57\x07\xdf\xff\x8b\x8f\x9b\x69\x2d\x02\x12\x41\xa4\x67\x3f\xee\x0f\x79\x79\x9d\x97\x25\x7c\x6c\xa0\xfe\x0e\xe6\x19\xe6\x52\xe0\xe1\x33\x19\x8f\xe8\xb8\xf7\xb0\x88\xc5\x80\xa4\xcb\x5d\xbb\x38\xff\xfb\xc3\x26\x5c\x79\x4a\x52\xec\x00\xa3\x1d\xd1\x16\x3e\xc1\x9e\x0d\x5f\x95\xf2\xcc\x3a\x4f\x8f\xf6\x32\x7f\xeb\xcf\xa2\x9d\x94\x5e\xdd\x82\x3c\xfc\xc0\x6e\xff\x40\x87\x85\xd4\x38\xe3\x76\x69\xcc\xee\xe7\x4d\x79\x71\x42\x8c\xd0\x9f\x64\xbb\x84\x73\x58\x83\xfa\x14\xdd\x26\x7d\xd3\x0e\x1e\x6b\x8b\x20\x5e\xa0\x46\xe2\x7a\x7c\xb5\xfb\xee\xb5\xcf\xc3\x01\x6b\x50\x34\xb6\xac\x4a\x6c\x08\xe2\x6a\xb9\x7d\xa9\xea\x76\x90\x77\x5c\xca\xce\xf9\xbf\xa7\x51\xeb\xbf\x62\xbf\x0a\x00\x07\x92\x46\x13\xd9\x10\x33\x44\x98\x97\xa0\xbb\x8d\x6d\xf6\x62\xe2\x67\xd0\x47\x12\x8e\x27\xc7\x83\x70\x65\x66\xf3\x49\x49\xe8\x2b\xde\x06\x88\x98\x60\x5b\xbd\x80\x37\x28\xf6\x74\x7f\x9c\xa8\xa3\x81\x50\xce\x3b\x04\xeb\xda\x7d\xa4\xde\xfc\x76\xd6\x29\x9e\x9d\x36\x4b\x32\xcc\xc7\xb7\xc7\xaa\x7a\x6d\x5a\xa8\x47\x09\x3d\x64\x8c\x6a\x27\xf2\x5e\xaf\xab\x52\xcb\xb9\xe7\xda\x42\x0c\x03\x32\xe1\xb8\x74\x74\xa1\xfb\xa6\x97\x5a\x00\x69\x64\x70\xeb\x08\x84\xcb\x19\xbc\x05\x54\xaa\x62\x27\x7d\x3d\xd8\xd1\xb8\x01\x71\x14\x4e\xa3\x78\x68\x29\xba\x4a\xff\xca\x98\x87\x4f\xc4\x95\x40\x69\x92\xf6\x49\x63\xf3\xf2\x35\x49\x66\xb4\x06\x28\x20\x98\x48\x1e\xaa\xb7\x91\x1e\xf1\xc5\xc7\x43\x09\x77\x55\xd9\xbe\xcc\xde\x4a\x1d\x3b\x7b\xd4\xa1\x12\x6a\xc6\x20\x7d\xd0\x9c\xa1\x62\x40\xb7\x4e\x6e\xdb\x1a\x26\x0c\x27\xd0\x19\xa0\x65\xd3\xd5\xa9\xbb\x2b\xcd\x10\x53\x81\x36\x51\xec\x74\x16\x5d\x4f\xdb\xbf\xf2\xd3\xdf\x68\x98\x00\x77\xcf\x10\x7c\xd3\x25\xd6\xe3\xb4\x03\x0c\x64\xd1\x70\xdb\x51\x65\x13\xfb\xf8\xc3\xc0\x29\x2c\x68\xf6\x3a\x42\x9a\x85\x76\xd6\x53\xe1\x3c\xaa\xbd\xbf\xea\x84\xc6\x0c\x90\x11\x2c\x6f\xbb\x92\x4e\xbf\x7c\x7d\x19\x35\x80\xed\xa6\x34\xa6\x73\x20\xeb\xbd\x6b\xd3\xf9\xeb\xb6\x51\xa4\x3c\x59\xb6\xbd\x87\xf7\x9d\x2c\xa0\x6c\x9b\x55\x69\x82\x80\xd0\x4b\x3e\x6f\x1c\xd8\x28\x71\x34\x07\xac\x9e\xc1\xe9\x10\x80\x5d\x5f\xf2\x46\x6d\x94\xb9\xf7\x5a\xbf\x74\xd1\x92\x92\xfa\x15\x1b\x0f\xcb\x53\xca\x46\xc6\x35\xac\x9f\xa1\xdd\xeb\xb3\xc6\x84\x25\xc4\x22\x22\xa2\x45\x05\x44\x0f\xd9\xdb\xf4\xe9\x94\x8d\x13\x67\x59\xd3\x9b\xe7\x21\x2e\x61\xb2\x81\xda\x58\x00\xf7\x9a\x76\xbb\x0a\xd1\xe8\x0b\xd2\x18\x36\x89\x55\x34\x92\xb1\xba\xab\x4c\x6e\xf3\x7e\xa3\xea\x0e\x33\xd3\x4b\x1e\xe4\x35\x42\xea\x86\x56\x8c\x4d\x62\xf7\x25\xdd\xc7\xc7\xfa\x40\x36\xa5\x69\x9a\x85\x9b\x38\x98\x82\x53\x9b\xf2\xd8\x7a\x6c\x79\x7b\xff\x7d\x7c\x40\x13\xe7\x46\x2b\x3f\xfa\x82\xd8\xf4\xa6\xd1\x84\x59\x1e\x88\xcf\x03\xf9\xc8\xb2\x24\x43\x73\xa9\xe0\x04\x30\x58\xf0\x52\xcb\x38\xa8\xa0\x10\x52\x15\x50\x63\x10\xba\x24\x37\x4e\x2d\x03\x48\x49\x98\xe2\xa3\x19\x3d\xfa\x47\xcc\x3e\xc2\x6d\x9c\x66\x3d\x77\xd6\x53\x74\x43\x9e\x67\x45\xcc\x42\xa1\xd9\x93\x87\x46\xf6\xe7\xd3\x13\x09\xca\x50\xbe\xfd\x28\x3f\xb6\x07\x59\xf7\xcc\x95\xb9\xc2\xc2\x39\x4c\xca\x0a\x4b\xf0\xcd\x7d\x94\xff\xd9\x41\xd3\x8e\xca\x6a\x7e\x40\x16\xf1\x58\x05\x42\x4c\x51\xd5\x0f\x35\x22\x39\xc2\x51\xe1\xac\x93\x8f\xdd\x4f\xde\xf5\xf7\x34\xcb\x0c\xbe\x88\xd8\x6d\xbc\x96\xf9\xa0\x43\x68\x65\x1a\xa5\x3e\x48\xff\xe1\x0c\x82\x5c\x15\x64\x12\xe2\x58\x49\x13\xd4\x32\x3a\xe6\x41\xb8\x64\x96\x22\x58\x15\x39\x64\x42\x17\x85\xf8\x56\x66\x5f\x9c\xdc\x55\x6b\x79\x3c\x82\xf9\xb4\xa8\x6b\x15\x38\xc6\x6c\x73\x94\xef\xe5\xfa\x25\x2f\xa6\x71\x91\x55\x56\xe9\xa1\x75\x37\x92\x34\xb0\x3a\x23\x5e\xc9\x1d\x9f\x73\x77\xfd\x85\x9c\x15\xdb\xac\xd6\x6e\xde\x4c\x48\xe9\xcd\x14\xc8\x65\x4d\xec\x2a\x7c\x7b\x6c\x47\xe4\x47\x24\x96\x4e\x7f\xa4\x49\x18\x73\x94\x82\xdd\xa9\x46\x19\xf1\xad\x7c\x1b\xee\xa5\x49\xa3\x10\xea\x60\xa9\x71\x7d\x2e\xc5\x3f\xaf\x8b\x4c\x0b\x60\xd6\x08\x86\xd8\x94\xef\xf2\x7f\xff\x93\xe3\x58\xd5\x9a\x0c\x90\x61\x83\x8f\xb0\x07\x5d\x91\xfe\x30\x58\xe6\x83\xc0\xb5\x2c\x0d\x36\xf0\x3e\x53\x13\xf3\x1f\x01\x2a\x10\xd3\xfa\x50\x3f\xcb\xf2\xfa\x54\xea\x73\x60\x76\x3f\x52\x62\x17\xcd\x40\x91\xbf\x41\xfd\x31\x4a\x1e\xbb\x63\xa8\xb7\x71\x6a\x60\x04\xee\x9d\xbd\x59\xc0\x00\x41\x13\xc1\x45\xb9\x9f\x57\xa0\x34\x26\xa5\x17\xa7\xe7\xbc\xb9\x1f\x96\x3b\x4b\x33\xac\x8e\x8f\x38\xb7\xcd\x75\x55\xaf\xeb\x8f\x63\xdb\xef\x85\xd6\x0a\xc5\xfd\xdc\xdd\x7f\x47\x46\x65\xe3\x1b\x5e\xcb\xeb\xb4\x15\xd6\xb8\x24\xde\x29\x49\x2c\xa5\x98\xd3\x45\x81\x45\x24\x4e\x50\x90\xc0\xe6\x65\x98\xbf\x17\x1f\x57\xa5\x39\x56\x79\x39\x31\x16\x61\x11\xd1\x26\x04\xf9\xf7\xa7\xc3\x36\x37\xa1\x82\xc7\xa2\x98\x38\x63\x10\xef\x9b\xeb\x41\x13\x60\xba\x79\x76\x63\xc2\xa8\x24\x4a\xf0\x36\xf5\x69\xf6\x07\xda\x44\x2f\xdd\x53\x16\x25\x31\x71\x72\x12\x4e\xda\x60\xf5\x0c\x65\xbb\x9d\xf5\x6e\x58\x94\x0a\x8a\x5d\x0a\x8b\x5b\x8a\x3f\x6f\x79\xe1\xb6\xfb\xfe\xf2\x28\x71\x82\xd2\x68\x13\x8d\x9a\x9b\xdf\xf3\xa6\xad\xea\x0f\xc4\x1f\x8e\xa7\x0d\x8b\x68\x4a\xd2\xee\x5d\x5a\x6d\x6f\xae\xfe\xde\x9f\x80\x4a\x0c\x09\x2f\x41\x17\x23\xe1\x80\x70\x94\x2b\x8c\x75\xda\xfc\x00\x0f\x6f\xe1\xe9\xb3\x88\x11\xc7\xf9\xc1\xe8\x74\x6a\x8e\xc1\x22\xa6\x35\xa2\x2d\x9a\x63\x5e\xce\x14\xb0\x59\xc4\x75\x8c\x09\x81\xd3\x5b\x6a\x36\xb2\xe9\x09\x73\x2c\xe2\x60\xa9\x97\x7b\xbc\x59\x3f\x8c\xa4\xc0\x7b\x9c\x48\x18\x29\x22\xe9\x14\xa7\x4e\xaa\x5b\x0c\x64\x3d\xf8\x4a\xcd\xee\xb6\x88\x9d\x40\x81\xd7\x24\xb9\x84\x63\x0d\x7a\x02\x83\x3a\x57\x05\x61\x91\x10\x14\x5b\x98\xfb\xde\x9b\x66\x82\x2b\x67\x5d\x98\x91\x8d\xc1\x66\xd7\x75\x75\x98\x87\x26\x67\xbb\x04\x8b\xb2\xc4\x79\x1f\x37\xd0\x3a\x3e\xe0\x57\xc6\x5a\x2c\x92\x8c\x62\x42\xf4\x9c\xbf\xc1\x4c\x14\x7d\xf9\xd7\x4a\xe5\xac\xee\xbd\x90\x92\x53\xb8\x9c\xe8\xbf\xcc\xbf\xc1\x50\x7c\xc2\x25\xbc\xe3\x05\xe5\xff\x83\xa0\x07\x77\xee\x24\xce\x22\x95\xca\x74\xcc\x50\xc5\x06\x2a\x34\x2e\x32\xea\x51\xf5\xb3\x89\xa7\x89\xe4\x72\xaa\x3e\xdc\xcf\x07\x9d\x28\x04\xac\x23\xd8\x72\x7f\x5b\xe9\x57\x97\x53\xb9\xaa\xd9\x67\x1d\x61\x16\x19\xc6\x31\x17\x7b\x85\x8f\xee\xd6\x9f\x37\x00\x59\x04\x71\x94\x66\x63\xb6\x43\x33\x1b\x60\x79\x3a\x32\xa2\x46\xec\xfd\xa7\x89\x10\x8b\xac\x06\xec\xec\x1f\xf2\x02\x9a\xb6\x2a\x21\x88\xf1\x4d\x4e\x4a\x22\xe9\x24\xbe\xbc\x69\xdf\x48\x53\xf2\xba\xaa\x17\x2e\x93\x90\x88\x22\x53\xa2\x5f\x3b\xaa\x76\x59\x6c\x9b\x11\xc2\x12\x7c\x79\xa0\xd6\x71\xf4\xe3\xdb\x7a\x84\xb2\xeb\x0e\x3a\x63\xc8\x26\xaf\x21\xc8\x18\x55\x61\x7a\xcd\xce\x23\x29\x42\xaa\xb5\x2c\xb4\x47\xda\x2c\xce\x0e\x42\xc0\x9a\x81\x68\xb6\xbb\x38\x93\x62\x61\x84\x58\x37\xa3\x1f\xb7\x1e\x6e\xcc\x48\xac\x84\x18\x6c\x13\x2e\xf3\x32\x0f\x0a\x40\xd3\x8f\x26\x29\x24\x49\xef\x71\xff\x26\x5b\x34\x33\x9c\xf8\xc5\x30\x92\x12\x57\x21\xdf\x42\x6b\xf2\xb7\xeb\xaa\xde\xc9\xf2\x75\x76\xa2\x94\x38\x60\xe8\xcd\xeb\xa9\x96\x7f\x2a\x5b\x61\x24\x4d\x64\xe2\x0b\x36\x1e\x87\xb2\x3d\xca\x72\x5c\xfc\x61\x24\x65\x02\x71\x68\xcd\x4b\xf5\xee\xb4\xea\xe6\x77\x32\x15\x3c\x1d\xa6\x90\xe3\xc8\x2f\x2f\x44\x84\x32\x40\x19\xae\xca\x98\xf9\x59\x58\x4a\x95\xed\x25\x57\xc3\x2f\x67\x5a\x62\x49\xe9\x78\x6a\x5e\x26\x46\x57\x0b\xb5\x13\x46\x98\xd5\x89\x47\x6a\x6d\x3f\x9a\x16\x50\x8c\x65\xa9\xa0\xcc\x08\x8f\xb5\x53\x1f\x9d\x72\x73\x06\x8b\x84\xd5\xd7\xba\x10\x8c\x70\x4a\x80\x79\x63\xbd\xf6\x2e\x77\x10\xaa\xdb\x4a\x86\x95\x9c\x88\xc4\x89\x23\x75\xeb\xc4\xeb\xb8\x39\xca\x48\x16\x41\x10\x6c\xdd\x1e\x41\xdf\x98\x51\xe6\x89\x47\x91\x55\x59\xc2\xcf\x76\xa6\xff\xcc\x48\x96\x09\x4c\x5a\xdc\x42\xf2\x08\x5d\xba\x83\x16\x23\x13\xb9\x97\x30\x58\x4a\x6c\xe8\x1e\xdf\x8e\xb8\x00\xae\x43\x4f\x80\x91\x4c\x47\x3e\x28\x6d\xa0\x1e\xc9\xbe\xe6\xe7\x42\xc4\x5f\xd6\xb7\x18\x91\xb1\x41\x2e\xff\xa6\x46\x71\xf8\xde\xfc\x90\x11\x99\xba\xa0\xd4\xa3\x32\x27\x01\x07\x91\x3a\x22\xd9\x08\xb0\x3d\xc4\x65\x8c\x48\x93\x01\x4e\x4c\xf9\x06\xdf\xa0\x5c\x57\xe6\x4b\x55\x75\x46\xb4\xc8\xbc\xda\x50\xd3\xf4\x04\x6c\x31\x56\xe4\x98\x6f\x43\xc4\x28\xe7\x5b\xf6\xad\x72\x81\xd9\x50\xc1\x60\xc4\xd8\x28\x3c\x9f\xbf\x9d\x64\xd9\xe6\x6d\x0e\xf3\x19\x04\x91\x5b\xb5\xaf\x8a\xe3\xcb\x28\xd8\x65\x04\xac\xf7\x40\x80\xc6\xc1\x5e\xba\x8c\xf8\x0e\x7a\xd3\x89\x61\x0b\x27\x36\x15\x41\x77\x13\xb1\x1d\xae\xd6\xb0\x44\x4e\x09\x1f\x30\xc2\x2d\xc0\x1f\x78\xe6\x8b\xba\x9a\x5d\x56\x1c\x25\x80\xbd\x1e\x3b\xc6\x13\x75\xbf\xed\xe2\xe3\x7b\x75\xfa\xb4\x76\x19\x3e\x4d\x25\xb6\x5a\x5f\x2a\x53\x5c\x57\x35\x09\x7b\x7d\x1c\x49\xa3\x7a\xb0\x35\xce\xe5\x0d\xd4\x3d\xd7\x84\xc5\x44\x52\xd4\x1c\x97\xae\x34\x09\x8f\x23\x39\x0b\x04\xc2\x43\x39\x4b\xf8\x59\x4c\x80\x52\x47\xb5\x0a\xa4\xb4\x2e\xc2\x71\x44\x9d\x41\xa4\xee\x93\x2b\x8d\x49\x86\x77\x59\xc9\x56\xbf\xf4\xeb\xdd\x79\x8e\x3a\x3b\x4b\xb8\x93\x71\xcc\x28\x71\x38\xfd\x79\x0b\x27\xfc\xa4\x44\x68\x44\x8d\x76\xaf\xe1\x23\x18\x38\x20\x38\x6e\x71\x19\x8f\x13\x05\x28\xbe\x8b\x6a\x1c\xd0\xb4\x5d\xfa\xbb\xbc\x9f\xc4\x89\x16\x48\xbd\xda\xdd\xdc\x5d\xdd\x3e\xac\x7f\x9f\xe1\x2a\xbb\x01\x19\x32\x55\xd0\x78\x17\xd1\x8c\x23\x71\xb8\x61\xfb\x8f\xd3\x24\x26\x30\xba\x7d\xce\x75\xd0\xc9\x5d\xe0\x46\xfe\x79\x6b\x94\xc5\x94\xa9\xa0\xef\x8b\xc1\xf7\xca\x27\x07\x33\xaf\x01\x16\xf3\xd8\x69\x29\x1c\x3e\xb6\xf2\x0d\x65\xe7\xc2\x01\x03\xa1\x01\x7c\xe3\xab\x1d\xe1\x90\x88\xa4\x88\x02\xd9\xfc\xb4\x64\xe8\x1c\x06\x52\xc0\x50\xca\xe9\xdc\xba\xbe\xdc\xea\x0c\xc8\x13\x06\x33\x8d\x00\x8a\x7d\xc0\x78\x76\xaf\x8c\xe7\xc6\x4c\x6f\xb1\xe0\x06\x7b\x92\x35\x52\x0a\x9b\xf6\x0f\x80\xd7\xab\xd0\xf4\x66\xb1\x50\x09\xa7\x3d\xba\xad\x37\x13\xea\x0e\xe8\xd8\xc1\x9a\x02\xea\xe4\xc7\xd8\x76\x98\xc5\x02\x52\xe4\x42\xae\x2e\x56\xe3\x57\x3e\xce\xc0\x01\x67\x6a\xa9\xa1\x57\x8e\x64\x71\x66\x2d\xa6\x97\x25\xbc\x8f\x95\x97\x26\x4b\x57\x2c\x05\x04\x99\xea\x47\xa9\x54\xde\x6e\xf3\x7a\x54\xc7\x9c\xd5\x86\x58\xdc\x2d\xe9\x30\x32\xfb\x9a\x26\xca\x7e\x90\x8a\xad\x5b\xdd\x9b\x6e\xe6\xc2\xc1\xbd\x54\xb3\xdb\xa4\x89\xc2\x16\xe3\xf7\xb4\x7f\x8d\x35\x8b\x78\x34\x58\x06\x85\x96\xf9\xfe\x3f\x79\xf3\x92\xcf\x97\x1a\xcd\x1c\x02\xed\x25\x7f\x76\x28\xc2\xc1\xce\x83\xc5\x46\x3b\xc5\xcd\x12\xde\x1d\x7b\x76\xf6\x61\xc8\x08\xe8\x79\xce\x3f\xb9\x31\x36\x93\xc1\x4b\xf9\x33\x77\x00\x37\x32\x89\xb8\xc3\xf8\xe1\x56\xec\x90\xc5\x3d\x0d\x97\x25\x91\x8c\x60\x14\xc0\xe5\xfa\x15\x16\xea\x8f\x2c\x89\x8c\x23\x8d\x79\x46\xd0\x02\xec\x88\x25\x91\x25\x08\xda\x6a\xab\xe7\xe7\x02\x7e\xcf\x8b\x62\xfb\x9e\xb7\xfa\x25\x7c\x17\x89\x38\x82\x34\xd1\x0c\xd3\x02\x38\xbc\x45\x7f\x94\xc6\xa8\x18\x60\xf3\x37\xe8\x16\xe3\xfe\x12\x09\xe7\xd8\x10\x2c\x64\xd3\x5e\x82\x6a\x6f\xc1\x3c\x43\x7d\x35\x58\x17\xb0\x84\x64\x09\x86\xc8\x08\x8d\x6f\xa0\xb0\x03\x89\x8a\x25\xc4\x28\x6c\x44\xee\xd5\xa9\x2e\x17\x2f\x9c\x00\x41\x57\xa6\x2e\xd7\xac\xdb\xab\xff\x12\xea\xee\x29\xa1\x7f\xf1\xff\xfa\x81\x31\x55\x18\xbb\xaf\x77\xa3\x0d\x31\x49\x98\x36\x89\x17\x1a\x9e\x04\xe6\xde\xb7\x83\x25\x69\x14\x65\x32\xb0\xde\x7e\x7e\x61\xb5\xd5\x0d\x55\x78\x1b\x1e\xe5\xeb\xe9\xb9\xfa\x95\x55\xd1\x64\xda\x24\xa9\x80\x48\x8d\xe3\xb6\x55\x0d\x72\xf6\x5b\x53\x23\x88\x67\xa5\x0c\x16\x52\xb3\xd3\x80\x74\xc9\x3b\xee\x8e\xae\xe0\x1c\x42\x28\x3f\x84\xc6\xd2\x64\x93\x16\xf4\xb7\xba\x7a\x6f\x5f\x26\x85\x37\x96\x50\xe5\xaa\xcb\xb5\xcc\x1b\x30\xc3\x8e\x98\x50\x70\x66\x55\x8e\xe7\xd7\x4d\xba\x71\x55\x92\x25\x4c\x12\xea\xb6\x97\xf7\xcd\x4b\x55\x82\x4b\x54\x96\xd7\xbe\x84\x19\x15\x0d\xd0\xa3\x8b\xdc\x4c\xca\x3f\x63\x63\xcd\x2e\x3d\x8a\x90\x82\xe2\x4c\x17\x2e\xa0\x1d\x0b\xf6\xb0\x84\xfb\x66\xfd\x7b\x5e\x18\x1d\xba\xcf\x7d\x19\x27\xe1\x46\xc4\xae\xf3\x7e\x9a\x79\x2d\x76\xc7\x20\xd1\xbd\x98\xcf\x5d\x65\xe6\xc7\xad\x21\x8e\x5e\xe4\xef\x99\x43\xfd\x2e\xff\xa4\x8c\x66\xd6\xcb\xd6\x7a\x5b\xd9\x1e\x9f\xca\x92\x4c\x08\x6c\x76\xfe\xa7\x5b\x84\xba\xac\x71\xbb\x30\x45\xfc\x58\xa9\x9d\xb1\x25\x6a\x88\xf6\x5d\x76\x96\xe8\x24\x49\x79\x60\x08\xdf\xca\x32\x94\x76\xf3\xe1\x19\x68\x4e\x31\x6c\xfc\x56\x03\x94\xef\x55\x5d\x98\x6b\x59\x1f\xc6\x4b\x7b\xa2\x0d\xe0\x72\xbb\x79\xba\xf8\xd6\x2e\x49\x99\x8d\xd7\xac\x44\x5b\x9e\x78\xc5\xe5\xab\xf6\x65\x2d\x8f\x17\xa7\x8f\x9b\xf2\xba\x7f\x51\x4d\xa2\xb1\x0e\xef\x9e\x4d\xd0\x2d\xea\xc3\x97\x59\x0f\x75\xf1\xed\x31\x34\x52\x62\x56\x75\xc1\xbe\xf5\xd7\xf9\x4a\x62\xa8\x06\xd4\x3a\x41\x18\xf1\xd0\x33\x1e\xc5\xdd\x89\xd1\x16\x49\x26\x07\xa8\xcf\xb5\x15\xe6\xe7\xb3\x12\x82\xe9\x64\xfd\x3c\x9b\x09\x00\x42\x0c\x2e\xa0\x17\xa7\x26\x2f\x47\x29\xf8\x27\x67\xb4\xb1\x76\x70\xf1\xfc\xcd\xa3\x7d\x97\x41\x11\x2c\xb1\x5c\xa2\x4d\xd1\x3e\x58\x26\x1c\xa1\x34\x50\xea\xd1\xaa\x6f\xb9\x14\x59\x5f\x15\xc4\x2e\xe1\xb4\x24\x93\x58\x45\xad\x6b\xf0\x3d\x57\xad\x1e\x2d\x76\x56\xa9\xde\x4e\xb3\xbb\xc9\xc7\xaa\x76\xad\xee\x6b\x80\xd1\x1c\x9a\x5c\x52\x1a\x51\x8b\x79\xd9\xc3\xcb\xfd\xd8\x2c\x98\xa5\x11\x63\xe8\x45\xf8\x56\xb5\x10\x25\xf7\xd5\xa8\x91\xca\xd2\xc8\x3a\x13\x6f\x0f\x14\xc3\x12\xcd\xe4\xd3\x24\xa6\xf8\x4b\x5f\x64\x3d\x90\xbf\x59\x1a\x67\x99\xcd\x42\xeb\x1e\x05\x63\xea\xea\x70\x57\x95\xb8\xd1\x8e\xd7\xe5\x34\xa1\x56\x92\x91\x6a\x54\x2d\xcb\x17\x39\x89\x46\x96\x1e\xf3\x64\x45\x49\x13\xa3\x70\xf3\x08\x10\xb9\xb5\x33\x80\xfb\x3f\x70\x01\x58\x9a\x1a\x27\xde\xd0\x05\x9c\xce\x3a\x61\x52\x14\x4d\x59\x96\x64\xd0\xc3\x59\x7a\xf8\xf1\x9d\x3c\x1e\x47\xbc\xf9\x7f\xfd\x7b\x14\x01\xa7\x2c\x73\xaf\xaf\xe3\x80\x6d\xab\xc2\xec\xaa\xe9\x44\x4c\x99\x75\xbc\xe7\x26\x48\x15\x4c\x8a\x94\xe3\x77\x37\xe5\x02\x90\xfa\xd6\xf7\xee\xd0\x15\x3a\x44\xf4\x0b\xac\x46\x96\xf2\x8c\x86\x3e\x9d\xeb\x78\xce\xd3\xf5\x94\x9b\x08\x79\x87\xeb\xa7\xfb\xd1\x7e\x9a\x0a\x2a\xf0\xcf\xf7\x3f\x76\xfd\x9f\x44\x4a\xb3\x50\x56\x3c\xba\xc2\x78\x5e\x95\x97\x03\x72\x20\x8c\xcc\x94\x85\x80\x9a\x5b\x7f\xf7\x0a\x0d\x74\x12\x3c\xa5\x12\x04\x82\x09\x7b\x71\x8a\xdb\xbc\x7c\x0d\x27\x50\x8a\xa3\x3b\x02\xb6\x05\xb4\x3e\xab\x8e\xa4\x5a\x6b\x47\x83\xaf\x4e\xa5\x49\xd7\x32\xac\x5f\xa9\x06\x67\xe5\xfd\x0c\xed\xf7\x8f\xe3\x3c\xa8\x4b\x0d\x89\x23\x11\xfa\x3c\x5f\x17\x6b\x97\x57\xa9\xd4\x48\x81\xd3\x44\x57\xa1\xdd\xb5\x3d\x1d\x8f\xc5\x87\x0f\xc4\x9d\x0f\x1f\x78\x0d\xfe\x70\x55\x06\x94\x93\x64\xad\x31\x8f\xfb\x73\x8a\x93\x2c\x05\x62\x52\xff\x9e\xf7\x9a\x05\x9f\xef\xc1\x29\xa4\x1c\xfb\x70\xef\xb2\xd9\x56\xb6\x5d\xcb\xe3\x5d\xbf\x61\xa5\x36\xe1\x3a\x0b\xdb\x26\x18\xec\x02\x8e\x09\x7c\x8c\x46\x09\xc3\x55\x65\x7f\x6a\x60\x9d\xb7\x79\x97\x9d\x37\xb7\x18\x12\xfc\x67\xee\x5c\xf2\x55\xab\xb7\x3b\x93\x46\x3d\xf8\xdf\x65\xd9\xc8\xe6\xad\x59\x17\x70\x68\xfa\xe9\x41\x23\x9d\x78\xdc\x65\x09\x75\xae\x27\xaa\x5c\xa3\x1c\x81\x92\x88\xa2\xfd\xca\x60\xd4\xd9\x63\x6e\x19\x25\xdc\x01\x4d\xfa\xda\xff\xba\x0b\x15\x46\x4d\xc5\xaf\x8b\x42\x94\x58\x8e\x15\x94\x3e\xde\x4c\x7d\xbc\x99\xfa\x78\x33\xed\x07\xda\x50\x83\xac\x7a\x19\x16\x46\x63\xc8\x6c\xaf\x4c\x2d\xeb\xf6\x52\xb6\xf0\x60\xb1\x3b\xea\x47\x24\x91\x76\x72\xd4\x5d\x06\x98\xb7\x1f\x57\x3f\xe7\x6c\x79\x46\x93\xc4\xb0\xa8\x87\x5c\x78\x72\x84\xb7\x73\xfa\x72\x77\xa3\x49\xf7\x9e\x8d\x20\xb3\xfd\x04\x99\xce\x78\x9a\x78\x6a\x27\x66\xb0\x78\x09\xcd\xc3\x7b\x09\xe6\x0e\x8c\x47\x05\x87\x95\x98\x26\x92\xd8\xb0\x14\xa1\x59\xcd\x45\x55\x35\xed\x48\x5b\xcb\x8f\x4b\x15\x43\xb5\x2a\x69\x8c\x5f\xd1\x1f\xd4\x7f\xfc\xa9\x26\x57\x3b\x6a\xc4\x2e\xc4\x22\x94\x71\x87\x24\x0b\x7d\x8a\xaf\x34\x4f\xfc\x47\x78\xc4\x10\x26\xb4\x6f\xce\xa4\x84\x19\xe5\x4c\x10\x5f\xac\xda\x97\xa7\xc3\xbe\xb2\xdd\x54\x5e\xae\x16\x8a\xf0\x19\x69\x84\x77\x74\xd8\xfd\x44\xbb\x94\xc5\x0c\x8e\x72\x23\x52\x11\x1a\xf9\xa5\xa9\xea\x1b\xb3\x8c\xf6\x64\x54\x90\x18\xf5\xc9\x1c\x8e\x74\x9a\x02\x8f\x2b\xd7\x34\x4b\x9d\xfa\xdb\x6a\x77\xe7\xfb\xab\xb3\x1f\x94\xd9\x74\xd2\xb1\x44\x97\xc9\xd9\xf3\x95\x51\x86\x26\x65\xc1\x99\xf4\x6a\xf7\x7d\xbf\x5e\x6d\xc2\x24\x94\xd2\xf5\x1e\x5d\xd5\x1a\x93\xe0\x3b\xf9\xb3\x3f\x6a\x29\xf5\x88\x8f\x2e\x9b\xf6\x61\xee\x6c\xb1\xa5\x2a\x4d\x50\xc8\xfd\x3f\x55\x48\xf6\xa8\x8e\x35\x26\xc7\x08\xc0\x70\xa2\x27\xe1\x88\xd0\x41\x34\xf1\xb1\x52\xd5\xb9\xbd\xe0\xf4\x27\x6a\x10\x08\x8a\xf9\x2e\x9b\x97\xb2\x32\xb0\x83\x52\xd6\x72\xb4\x13\x51\x43\xb4\x82\xe0\xc7\x81\xf4\x93\x66\xe4\xb2\x3c\x3d\x9b\xa1\x1a\x73\x03\x27\xdb\x7e\xd3\xb8\x8a\xd3\x27\xee\x6f\x8c\x1a\x06\xce\xd9\x79\xf5\xb4\xbd\x0a\xdf\x07\x9c\xa2\x25\x64\x0b\x4d\xfb\x08\x23\x1d\x4e\x46\x21\x8b\x23\x7f\x29\xb7\x79\x09\x67\x46\xe7\x8c\x5a\x62\x1c\x91\xba\xae\xde\xcd\xee\x50\x95\xf0\x41\xc3\xa7\x6d\x4a\x14\xca\x09\x75\x11\xda\xa4\xdd\x17\x6a\x7e\x88\x17\x11\xe3\xe4\x11\xcb\x00\xd7\x55\xbd\x94\x32\x53\x0b\x09\x5a\xa1\xfc\x7e\x15\x1e\x37\x8b\x48\x8c\x05\x6d\xc7\x72\x79\x78\x85\xd2\xed\x4e\xfd\xf1\x58\x63\x55\xed\xfa\xe1\xe9\xfe\xf2\xea\x71\xbb\xdf\x3c\x3c\xdc\xee\x57\x97\x97\x8f\x61\x04\x51\x2a\xf3\xc8\xeb\x75\x21\x9b\xa6\x0f\x74\x42\xb1\x67\x08\x6f\x58\x4c\x62\x5c\xe1\xda\xc3\xb1\xdb\x96\x62\x3d\x72\x81\x9d\xce\x21\x16\xc7\x59\xe6\xea\x3d\xcd\xa9\x5b\xa7\x7a\xa5\xae\x70\xdc\x2a\x44\xc9\x1f\xeb\xea\x50\xb5\x3e\x9d\xf2\xc7\x92\x24\x43\xd9\xae\x7d\xed\x59\xc2\x8b\x53\xa9\x8b\x39\x31\x3a\x77\x29\xe8\x5d\x65\x9c\xe3\xfb\xec\x42\xd2\x20\x48\xee\x4c\x2a\x26\x29\x2f\x4b\x95\x7b\x75\xfd\x1a\xb0\x6f\xab\xbd\x1a\xf4\x42\xce\xb4\x7f\x18\x4b\xad\x53\xa9\xf3\xdf\x99\x2f\xe8\x22\x32\x46\xa3\x0c\x2b\x94\xf0\xf3\x98\xd7\xe3\x40\x89\xd1\x24\x46\x20\xa2\xdb\xc4\x3c\x51\xf1\x0b\xb4\x35\x63\x94\x12\xcc\x09\x6e\xf3\xf2\xbf\xe3\x38\x9c\x51\x9a\xe1\xa2\xbc\x8d\xd9\xd0\xe0\x60\x94\x69\x8c\x20\x1e\x7e\x4e\x07\x67\xdc\xeb\x5e\x39\xde\x2f\xaa\xac\x9a\x7c\x40\xf6\x4c\x8b\x1a\x4c\xc4\x5a\xba\xa2\x46\xe9\x1e\xdc\x60\x81\x14\x4e\x29\x12\xb7\xa9\x3b\x6a\x99\x2f\xeb\x5f\x23\xcb\x37\xd7\x0b\xd5\x61\x26\x32\x8d\x4c\x53\x7c\xc3\x36\x85\xd4\x80\x4d\xe7\x45\x70\x09\x63\x42\x39\xca\xb6\x8b\xbe\x77\x50\xc0\x73\x2d\x0f\x4b\x32\x6c\x8c\x09\x9b\x70\xc7\x5a\xf8\x79\x87\x80\x04\x1f\xe8\xf9\xc3\x99\xa7\x26\x1c\xe5\xc9\x89\x98\x05\x02\x3c\x63\x99\xa0\x08\xb4\x87\x46\xcb\x19\x3c\x89\xb1\x0c\x98\x88\x42\xc2\x06\x57\x25\x02\x0e\x3d\x42\x74\x9c\x33\x31\x99\xa4\x41\x96\xf8\xa6\x44\xd9\xa0\x93\x2c\x26\xc6\xca\x8c\x49\x48\x48\x3a\x20\xec\xc1\x78\x88\xe7\xd6\x91\x47\x46\xee\xfa\x8c\x29\x95\x90\x78\xb2\x02\xce\x2b\xa5\x4c\xe9\x04\xc9\xe3\xdf\x1e\xfe\xfe\xf7\xaf\xf2\x7f\xa6\x6c\x1c\x40\x3d\xd7\x35\xc0\x6e\x68\x07\x32\x9d\x50\x4c\x10\xef\x6e\xee\x77\xb8\x24\x5c\x6d\xb7\xc3\x31\x19\x7b\x84\x8d\x53\x05\x3d\x1d\x56\xc5\x73\x55\xe7\xed\xcb\x61\xf2\xdb\xb5\x96\xda\x8b\x5d\x8d\x5f\x61\x6d\x33\x64\x30\x3f\xe7\xb6\x9d\xd1\x5b\xfc\x08\x63\x29\xf2\x1e\xdf\xaa\x01\x25\x37\x66\xdc\xf9\x61\x90\x70\xf0\x9a\xa6\x3b\x79\x0c\x96\x2e\x5d\xce\x84\x13\x7c\x71\x1f\x65\x40\x19\x19\x34\xfc\x42\x7d\x6c\x12\x0e\xfc\x65\xec\xac\x17\x3e\xa6\x8c\xf5\xe1\xb7\xef\xb9\x3e\x9c\x66\x15\x27\x66\xa3\x28\xf2\xe0\xd4\x6e\x3b\xd8\x93\x28\x5c\xa9\x15\x02\x2b\xd5\xdb\xaa\xf7\xfd\x67\x9c\x00\xc3\xfa\xbc\x87\x7e\x5c\x61\x1d\xa3\xd4\x1f\xe7\x08\x79\xff\x81\xd8\x3a\xd5\xa8\x63\xf5\xfe\x9b\x07\x7a\x8e\x28\xea\x8c\xa7\x09\xc3\x9c\xb0\xa7\x96\x38\xdc\x35\xd4\x8f\xa0\xab\xf3\xe4\xc6\x7f\x8a\xc6\x49\x88\xf4\x50\xec\xe7\x71\x81\x63\x18\x86\x52\xcd\xfc\x7e\x70\x85\xad\x41\x07\x5d\x9d\x0d\x12\x4e\xe9\xa8\xf1\xcd\x9a\x2f\xce\xc7\x94\x40\x61\x26\xd5\x8b\xb0\x05\xbb\xf6\xd9\x2f\xe7\x49\x64\x5d\x43\xef\xba\x1a\xb2\x14\xce\x15\x45\x14\xe0\x6a\xf7\x30\x5e\xd2\x38\xb7\x80\x91\x21\xf6\x5e\x9e\xca\xbc\x9d\x37\x8a\xb8\x04\xd0\x9e\x3c\x8c\x5d\xbf\xe0\x12\xb0\xd0\x7d\xe7\x86\xc7\x58\x9c\x41\x98\xf4\x44\xf0\xee\x8c\x82\x39\xb1\x64\xfc\x32\xd8\xe1\x06\x22\x31\x46\x91\xcc\x1c\x0a\x96\x6f\x18\x28\xa7\x3f\xe6\x14\xe9\x7a\x9d\xc4\x39\xfa\x70\xf6\x21\x13\x07\xb9\x92\xcb\xed\xee\x5e\x1e\xc0\xe9\x5e\xf9\xc3\x36\x72\x96\xeb\x06\x8a\x7d\x7d\x06\xd5\xe0\x56\x50\xb4\x1f\x08\xc5\xe9\x99\x2a\xc1\xf4\xbb\x44\x44\x52\xac\xdb\x35\x41\x5d\xbe\x7b\xf1\x3d\x74\x92\x89\x28\x75\x22\xc4\xaa\x0b\x3d\x51\x4f\x2f\x1c\xe0\x02\x49\x10\xfb\x23\x4a\x7a\xba\x95\x7a\x79\xf5\x17\x24\x62\x58\x64\xca\x4b\x8d\x26\xe8\x68\x2c\x10\x4e\x44\xe2\x2c\x68\x21\x3f\x8d\xfd\x35\x96\xaf\x96\xf0\x84\xc5\xbd\xe5\x18\xd4\xcd\x85\x2c\x5f\x9b\xcb\x5a\xda\xf6\x4e\xb6\xa7\x3a\x6f\x3f\x46\xc8\x16\x11\xc7\x02\x7b\xac\x17\xbb\xeb\xbb\xfe\x6f\xd6\x3a\x3d\x07\xec\x5c\x39\xbe\x7a\x60\xc6\x4f\x8a\x1c\x22\x01\xcb\x92\xa0\xd5\x39\xb1\xe4\x63\x22\x15\x84\xf4\xfb\x5f\x60\xd7\xff\x92\x6b\x3b\x6c\xa0\x82\x45\x49\x14\x42\x26\x68\x5f\xbc\xc7\x60\x38\x3d\x8b\x05\x04\x06\xa8\x4f\x40\xc7\xcd\xd3\xd9\x5d\x61\xb1\x16\x9e\xda\xd9\x3e\x74\x8b\xf3\x72\xe9\x2d\x8c\xe6\x34\xe9\x3d\x4a\xa6\x88\x01\xc1\x69\x8a\x84\xef\xd5\x63\x7f\xbf\x84\x74\xfb\xf1\xfb\x5c\xcd\x7f\xe4\xf3\xcd\x44\x26\x15\x72\xb9\xeb\xfc\xf9\xa5\x8d\x67\x78\x45\x21\xbb\x79\xe4\x48\xd1\xcd\x32\xf8\x6d\x36\x65\x24\xb0\xcc\x84\x68\x1b\x11\x17\x4b\xd9\xe5\xe4\x69\xa9\x48\x63\x5f\x7b\x55\x14\x9b\x20\x7c\xda\xfd\xd5\x6a\xa7\xa4\x8f\x13\xfb\x5b\x25\x8b\x47\x90\x7a\x88\x5d\xbb\x11\x10\x07\x31\xee\xdc\x3c\xc3\xfd\x18\x0e\x72\x1e\xfa\x08\x95\x28\xc4\x54\xb9\x0c\xb1\x77\x45\x3c\x87\x14\xf8\xf1\x9a\x70\xe3\xec\x39\xa0\x34\x77\xcd\xf3\xb6\x34\x9f\x40\x05\x05\x10\x85\xcb\xe0\xe5\xd5\x9a\xd0\x29\xb3\x9c\x09\x48\x69\xe4\x4b\x19\xab\x53\x5b\xd5\xb9\x91\xe6\xaa\x00\xdd\x56\xf5\x60\xf2\x1c\xc6\x9a\x08\xc9\x0e\x37\xf7\x37\xbb\x9b\xd5\xed\xfe\xc7\xd3\xc6\x29\x71\xed\xb7\x4f\x9b\xcd\xed\x3f\xfa\x73\x02\x68\xf0\xf6\x20\x75\xfb\x6d\xae\x96\xc0\x84\x8d\x62\x13\x44\xc5\x4b\x03\x75\xf1\xd1\xed\xef\x23\xb0\x91\xb0\x89\xd1\x66\xc4\xc3\xf5\x9b\xf8\x38\xae\xc8\xa2\x54\xa4\xce\x21\x1a\x1e\x41\xe7\xc7\x1c\x46\xc7\x58\x86\x72\xf9\x12\xd3\xc2\x47\xec\x73\x5d\x05\x33\x15\x96\x11\xa2\x30\xd0\xec\x12\x3a\xef\xe0\x6a\xfe\xa8\xf3\x16\x10\xbc\xd0\x8f\x8a\x25\x4e\xbf\xcd\xd5\xe3\xda\x4b\x8e\xed\x77\x0f\xfb\x8b\x9b\x7f\x5e\x5e\xfd\xe8\x07\xc9\x2c\xf3\x16\x37\xa1\xf1\xfe\x65\x95\x26\x8b\x65\x8a\x3c\xec\x3f\xf2\xa2\xc8\xe5\x61\x94\xd7\x66\xb1\xe1\x88\xef\xbb\xc8\xdb\xbf\x85\xbf\x25\x8c\x39\x10\xa6\x4b\x27\x4c\x8b\x5b\xdf\xa7\xb4\x63\x96\xa5\x34\xd2\x9e\x07\x25\x55\x01\x5d\x12\x7f\x59\xbd\xf7\xdf\x91\x5a\x10\x34\xb4\x54\xc2\x6c\xb8\x76\xe2\x0f\x7e\x08\x8d\x98\xf2\xba\xa8\xd7\x79\x29\x8b\x2d\x7c\xa2\x52\xd6\x0d\x75\x12\x75\x21\xd6\x18\xa9\x45\x9f\x2d\xd9\x19\xd5\x96\x07\x3d\xcf\x16\xe4\xeb\xa6\xce\x87\x2f\x65\x22\xc3\x44\x1a\xda\x17\x6c\x6a\x85\xbf\xf3\x84\x63\x4b\x12\x8d\x33\x1e\xe1\x3f\xa0\x5b\x47\xdc\x5f\xd2\x3b\x60\x19\xa7\x0a\x93\xca\xe6\xfd\xe3\x08\x88\xc1\x0a\x07\x6c\x44\x3d\x42\xc5\xa3\x2c\x17\x32\x90\x4c\x48\x83\xc0\x86\xf0\x7b\xfe\x78\xc9\xdd\x2d\xfc\xac\x60\x90\x09\x43\x90\x4b\x54\x9e\x0e\x41\x88\xb2\x3f\x92\xc5\x51\xcf\x5f\x69\x57\x27\x93\xb7\x01\xef\xf2\x25\x1b\xaa\xfb\xa8\xcc\xcc\x50\xe6\xec\x26\x16\xcc\x29\xb7\xd3\x4f\x64\x24\x36\x7d\x95\x61\xd2\x9b\xfe\x64\x7c\x06\xe0\xe9\x0b\x5d\x28\xd0\x1c\x65\xc8\x5b\x96\xc8\xac\x2c\x93\x2c\xc3\xc6\xa4\xaf\x60\xa1\x06\xec\x6c\xe2\x49\x29\xf1\x4d\xb8\xc8\xdb\xed\xee\x72\x92\xe4\x85\x11\x8a\x40\x2f\x0e\x26\x75\xdb\x7d\xf3\xc0\x61\x62\x99\x52\x4e\x02\xc3\x22\x61\x26\x74\x6e\xe6\x13\x5c\xb3\x18\x2b\xe7\xea\x34\xf5\xe2\x63\x99\xe6\x4e\xfb\x23\x3c\x3d\xdc\x5c\xe3\xf9\xc7\x05\xf1\x0c\xc8\xd2\x78\x04\xe9\x64\x87\xce\xb4\x70\xb0\xb1\xd0\xe9\xec\xdb\xb8\xe2\x8c\x4b\xb2\xfc\x52\x40\x6c\xa8\x76\x20\xf7\x43\x8e\x6c\x7b\xdf\x94\xb3\x50\xf7\x01\x57\x06\x59\xc4\xb8\xd7\x28\x98\x93\xc9\x59\x06\x5d\x16\x81\x3d\xb4\xe6\x87\x2c\x4e\xf0\xdb\x19\x3a\xcc\x0f\xb4\xa9\x1e\x68\x57\x70\xa3\x2b\x9f\xbe\x4e\x2e\x49\x46\xcc\x04\xe1\xa5\x4d\x0d\x6f\x79\x91\x3f\x83\x91\xb3\xf7\x60\x72\x62\x19\x31\x40\xce\xe1\x6d\xf5\xdc\x3d\x6e\xe7\x16\x93\x9f\x49\x4f\xfa\xbd\x5a\x12\x9e\xe2\x8b\xb7\x7a\xf6\x2d\x8f\xaf\xb0\xbc\xd3\x1b\x26\x89\xee\x55\x17\x7a\x2c\xfa\xb4\x13\x13\x06\x1a\x27\xcc\x81\xca\x33\x63\x13\xdd\x70\xdc\x4a\x5c\xb9\xce\x4c\x82\x96\x62\x26\xf7\x3f\xe3\x47\x2f\x63\xc6\x03\x20\x64\x7b\x52\xc7\xaa\xf5\x3b\xce\xf4\x72\x63\xe5\xe8\xe7\xdf\x56\xdb\xfd\xe3\xd5\xdf\x9e\x6e\x1e\xaf\xee\xae\xee\x43\x53\x4c\x26\x10\xa3\xa0\xe1\x25\x4c\x35\x75\x96\x23\x27\x99\x80\xc6\x79\xb0\x7b\x81\x55\xd9\xbc\x43\x7d\xd3\x4c\xe6\xa3\xa4\x29\xa0\xaa\x83\xd7\xf5\x43\x59\x3f\x27\x36\xd9\x0e\x6d\x70\x49\x55\x82\x48\xb3\xcb\x53\xab\x5f\x82\x46\xe8\xf2\x37\x52\x65\x9d\xc3\x9b\xeb\x69\x8e\x14\xa0\x98\x64\x11\x20\x3f\x42\x9d\x3e\x1e\xab\x06\xbe\x3d\xde\xae\xe7\x41\xd5\xf4\x64\x8c\xc7\x6a\xe8\x06\xaf\xbb\x67\x36\xb9\x7a\xa6\x1d\xe1\xc2\xdd\x8b\xbb\x8f\x49\x35\x6c\x76\x2e\x4e\x29\x46\x5b\x79\xf3\x50\x5e\xc8\xb6\x9d\xb9\x2a\x85\xae\x84\xe4\x99\xd3\x0d\x71\x7b\x62\x17\x60\x6c\xa1\x6d\xc7\xfe\xb2\xbf\xca\xbe\x3e\xcd\xf0\x65\x66\x5c\x49\x27\xd0\x57\xbf\xf5\x3a\xc9\x4c\x4a\xc6\xd2\xd4\x2f\x1d\xab\xa2\xb8\x06\x18\x90\xfa\xd3\x89\x2a\x2d\x09\x3a\x70\xdb\xfc\xb9\xec\x43\x97\x49\x40\x25\x55\x62\x30\xf5\x87\x37\x59\x9c\xb0\xb4\xeb\x6a\x17\x7e\x66\x4f\x2f\x4c\x59\x21\x45\x80\x58\xd6\x79\xf7\x8e\x34\x23\xa0\xe2\xb4\xfd\x16\x1a\x0a\x52\x83\xb0\x66\xf0\xd7\x82\xfa\xad\x5f\xe1\xfd\x08\x43\xc5\xd0\xc3\x75\x2c\xbd\x29\x69\x47\x1a\x88\x91\x4d\xf0\x78\xb5\xbd\x7a\xfc\xd1\xcb\xaf\xee\xaf\x1f\x1e\xf7\x5e\x68\x33\x0c\x85\xc4\x5d\xe4\x33\xb4\xdf\xe1\xe7\xd6\x49\x32\x4e\xbe\x0e\xc0\x11\xdd\xdd\xb3\x3b\xe4\xe5\xc5\xe9\x63\xf6\x4b\x6d\x9c\x20\xfa\xc0\x99\x8c\xb6\x9f\x11\x88\xf1\xe1\x4d\x6f\xbb\x55\x19\x26\x57\xfd\x2e\xb8\x6d\x87\xc4\x4d\x45\xa9\xab\x07\x38\xc8\xc2\x4d\x69\xab\x0d\xd4\xff\xac\xca\x4f\x40\x3a\x8a\x98\x44\x8d\xb4\x9a\xbc\xe8\x9a\x3f\x18\x47\x1c\xbb\xca\xbe\x89\x76\xcc\x7b\xd8\x9b\x8a\x3d\x5b\x1b\x37\xa7\x6e\xf7\x78\xc0\xf8\x35\x1c\x4e\x22\x8a\xc4\xcd\x6e\x23\xbd\x80\xb6\xb9\xae\xea\xa9\xdb\x1b\x53\x49\xa2\x82\xeb\xce\x65\x55\x82\x72\x0a\x7d\x87\x31\xa9\xa6\x1f\xe9\x90\x98\xa1\x78\x77\xaa\xdb\xbe\xc4\xa6\xd2\x24\x8e\x02\x0f\xe2\xa9\x81\x7a\xb1\xcc\xa6\x50\x8b\x14\xdf\xba\x2e\x4c\x19\x04\xf2\x99\xa2\x34\xc5\x86\x68\x73\x52\xdd\x53\x9a\x03\x1a\x17\x23\x30\x45\x99\x72\x42\xbb\x7e\x93\xdf\x37\x2f\xb2\xf7\x9e\x63\x8a\x1a\x82\xed\x90\x2e\xf4\xbe\x96\x39\x4a\xb0\x7f\x3b\x7d\xdc\x57\xab\x53\xfb\xf2\xdb\xe4\xfe\x53\x88\xa3\x78\xd4\xbc\x43\xc9\x85\x4f\xd6\x0e\xc5\x48\x84\x94\xc9\x6f\xd5\x65\xfe\x3c\x4a\xf9\x17\x2a\x9e\x8a\x51\x1b\x0c\x7d\xef\x2a\x73\xea\xb7\xf7\xe9\x19\x79\xc4\x84\xee\x75\xf5\xa1\x9d\x6a\xb3\x32\xc5\x69\x22\xfd\xe5\xad\x91\xb5\x7e\x0d\xb0\xa9\xaa\x59\xb9\x4e\x71\x6e\x32\x27\x26\x05\x5e\xfe\xde\x09\x3b\xed\xaa\x8b\x93\x79\xee\xbb\xf1\x4a\xa4\x5a\xfa\x8b\xda\x48\xfd\x8a\xfa\x62\xf3\x82\x95\x12\x3a\x0d\x40\x5a\x5f\xb3\x5c\x44\x4d\x4f\xaf\x20\x13\x26\xea\x15\x8a\xcf\xa8\xd1\xe3\x95\x55\x49\xe6\x34\x6d\x9b\x6e\x03\x3c\x1e\xbb\x93\x80\xc1\x0c\xee\xbc\xda\xa0\x24\xe7\xc2\x4b\x0a\x5d\x06\xd1\x85\xbc\x2a\xbd\xa8\xfe\xf4\x1a\x54\x2c\x30\xbf\xf5\x08\x89\x89\x36\x15\x53\x4a\x39\x13\x6a\xbf\x4a\x35\x2f\xbf\xc3\xc7\x64\xd9\x50\x3a\xce\x42\x4e\xd2\xad\xc8\x3d\xd4\x64\x76\x7f\x8c\x96\xb8\x81\xc3\x7f\x4f\xbd\xab\xf7\xf4\xd9\x43\x9c\x10\x27\x37\x7c\xac\x6a\x7f\x17\xc4\x2f\x2d\xb7\x47\x41\x86\x82\x18\xf0\x76\x16\x60\xdb\x24\x9e\x5d\x00\x30\x2b\x7c\x31\xba\xbf\x6d\x62\xae\x71\x31\x99\x46\x90\x31\xa4\x2f\xb8\x54\xf5\x3a\x2f\x8a\xf3\x5c\xe3\x57\xac\x96\xbf\xcc\x0a\xd7\x0b\xf4\xe3\xee\x8b\x34\xf6\xab\xbb\x75\x67\xb2\x2e\xda\xc4\xd8\xc4\xfb\x2a\x39\x48\xd0\x79\x83\x7c\x31\x46\x54\x96\x0a\xcc\xa3\xaf\x1e\xd7\x71\x9c\xe0\xf6\xb1\xdf\xee\x56\xfe\xc4\x3a\x22\x1c\x31\xce\xff\x7b\x39\xe9\x97\xd3\xf4\x4e\xe9\xee\xed\x4a\x02\xe5\xc4\x73\x65\xfb\x0f\x66\xb1\x1a\x79\x2b\x7e\x3b\xc9\x5a\x96\x2d\x80\x71\x62\xfa\x93\x8b\xd0\x24\x31\xb1\xe8\x77\x14\x87\x0d\xda\x05\x1b\xd8\x19\xd8\x60\x71\xed\xd0\x71\x96\x61\x62\x5a\x56\xe8\x2b\xb5\x7b\xe9\x11\x1b\x3a\x21\x0c\xd9\x79\xdd\x55\xee\x5e\xea\xea\xfd\x11\xf0\xf5\xb9\x95\xae\x19\xec\xb4\x42\xee\xab\x76\x5c\xc8\xd3\x49\x2a\x90\x65\xed\xc8\x67\x5e\x68\xc5\x8c\x52\x1d\x9d\x66\x1a\x6b\x62\xce\xcc\x70\x01\x69\xbf\x84\xa2\xd1\xdd\x06\x96\x8c\xca\x66\x5e\x2e\x7d\x4e\xab\xfe\x53\xb3\x39\xcc\x8f\xf1\xdc\xd6\x34\x56\x4e\xe3\xaf\x9b\x24\xdf\xe1\xe7\xba\xea\x72\x13\x57\x15\xc1\xeb\x19\x22\x7e\x4d\xb3\x84\x27\x2e\x63\x77\xe2\xf7\x07\x74\x32\xa8\x8e\xf2\x79\x98\x5c\x9a\x31\xe5\xfb\xef\x3e\x27\x58\x9d\x8b\x1e\x85\xa1\x36\x41\x1b\xd5\xdd\xd5\x6a\xfd\xdd\xd9\xd8\x8f\xca\xf9\x9a\x13\x8a\x1d\x8a\xaa\xce\x9f\xf3\xde\x39\x93\x69\x9e\x71\xac\xb5\x05\x51\xa9\xba\xce\xe5\x33\xdc\xe6\x1a\x4a\x0d\x37\x07\xf9\x0c\x37\x9b\xeb\xed\x4b\x2f\xae\x1d\x3e\xa6\x49\x1c\x94\xad\x5f\xba\x59\x5f\xf6\xd6\xa3\x4c\x67\xcc\x09\xe9\xe1\x7d\x68\x4f\x0a\xd6\x45\x7e\xfc\x4c\x2e\x68\xfa\x2b\x32\x95\x7a\x32\x34\x86\xeb\x1b\x57\x23\x1c\x57\xb7\xb4\x4c\x05\xee\x1c\x5d\x4c\xbc\xb4\xab\x6b\x69\x29\x8a\x52\x5c\xec\x2e\xc2\x67\x74\x42\x78\xaf\x2c\x7c\x38\x56\x25\x94\xed\xd2\x02\xa7\x75\x9a\x58\x57\xc8\xd7\x95\x01\xb3\x05\x5d\xf7\x9b\x8c\x36\x99\x42\x51\x83\x7d\x5b\xe7\xcf\xcf\x50\xdf\xc3\xfb\xe6\xc7\xa6\xdb\x13\xa0\x5b\x96\xbf\x2e\x5d\x69\xa3\x22\x8c\xe5\x9b\xa1\x57\x72\x73\x39\xbb\x74\x48\x12\x64\x13\x60\x9b\xe4\xb6\xea\x29\x32\xf3\x61\x20\x30\xe8\xd8\xc1\xe1\x58\xd5\xb2\xfe\xd8\x7c\xd4\xf2\xd0\xd7\xde\xb4\x25\x0a\x97\x8e\x61\xb1\x5a\x9e\x33\x96\x19\x24\x40\xf4\x04\x9b\x3f\x9b\x01\x84\xcf\x5b\x17\x0a\xdc\xc3\xfb\xaa\x06\x39\x4d\x9e\xc7\xb0\xd2\xb3\xff\xed\xcf\x61\x22\x19\xc5\x63\x2d\xb7\x5f\x2d\x9e\xe7\x1c\x39\x13\x81\xb3\x1d\x3d\xc8\x57\x78\x38\x2e\x5a\x75\xcf\xbf\x14\x14\xeb\xa5\x2f\x72\xd9\x2c\xe2\x43\x4d\x64\xdd\x28\x07\xa0\xc6\x77\xa2\xf1\x45\xce\xc5\xf1\x84\x46\xf8\xfe\x6f\xaa\x80\x1f\x31\x84\x2b\xbc\x43\xb7\x55\xf9\x7c\x51\x9d\x9e\x5f\xda\x25\x0c\x6d\x3c\x57\xec\x4a\x66\x38\x2d\x43\xb8\x46\x45\xcf\x41\x5a\x7c\xf9\x91\x1a\xa2\x59\x44\xc7\xed\xc0\x8b\x53\x7b\x16\x50\x98\x38\xd6\xd8\x4b\xd5\xb2\x44\xbb\x4b\xdc\x3e\x16\x9f\xb1\x89\x53\xad\xd4\xe0\xae\x6d\x7a\x6f\x0b\x66\x12\xe6\x18\x3f\xeb\x97\x3a\x6f\xda\xea\xf8\x02\xf5\x63\xa5\xf2\xf2\x31\x64\xf3\xa6\x4b\x61\x11\x10\x24\x9b\x97\x1d\x14\xf0\xb3\x3f\xc0\xb5\xb1\xa3\x40\xd6\xd9\x39\x74\x97\xb1\x91\x35\x94\x6d\xe3\xfe\xb9\xaf\x9c\x6d\x75\x68\x02\x1b\xca\x04\xc2\xcb\x1e\x57\xbb\xab\xfd\xfa\xf1\xe1\x8f\x4b\x04\x69\x6d\x43\x7b\xcc\xb0\x54\xe2\xea\xf0\xfb\x49\x41\x2d\xfb\x36\xa7\x61\x8c\x1b\xdf\x51\xbd\x70\x37\x79\xbc\x9e\x19\xa6\x9c\x90\x8d\x5b\xcf\x0e\xc7\xe6\x7a\xd2\x6f\x37\x4c\x67\x08\x97\x90\xc6\x5c\x43\xdf\xa9\x30\x9c\x64\xbd\x0e\xe2\xfe\x54\xb6\x79\xd1\x1f\x49\x0c\x7a\xaa\xbd\xc8\xe6\xbb\x2c\xda\xd1\x47\x8c\x4d\xe3\x11\x9b\xab\x5b\x3e\xa4\x6e\xbb\x84\xaa\x3e\x8c\xdd\x26\xfd\x78\x91\xa5\xa9\x6f\x88\xf7\x89\xd9\x2e\xef\xa6\x63\x0f\x0e\x37\x19\x25\x88\x4a\x91\xe5\x5b\xb1\x03\x3d\x61\xa7\x1a\xc5\x12\xe3\x4a\x65\xef\x28\xd8\x7d\x0e\x09\x99\x3d\x71\x65\x33\x85\x7a\xb9\xb9\x7e\x3d\x1d\xbd\xc2\xc6\x34\xfe\x30\x46\xf5\xb7\xd3\x43\x53\xe6\x22\x9b\xd3\xf1\x10\x59\xe5\xb8\x08\x4e\xf6\x7e\xb9\x6c\x66\x40\xc5\xb8\x4e\x5f\x15\xb8\x1f\x3e\x39\x62\xd6\x79\xaf\xf8\x4f\x46\x76\xfe\xac\x96\x50\xcf\x4a\xb6\x16\xea\x91\x43\x03\x33\x36\xd6\x81\x8f\xfb\xa9\x8f\x05\x83\x28\x95\xb1\x0d\x28\xe7\x25\xe8\x18\x44\x8c\x39\x6c\xaa\x03\xc8\xfd\xfe\x8f\xf5\xa4\x40\xfe\x97\xd3\x02\xae\x06\x22\x1d\xbb\xfd\xc4\x95\x7f\x1e\xec\xaa\x7d\x29\xa0\x3d\x8b\xbb\xfe\xd4\xaf\x04\x22\x52\x64\x9a\x3c\x14\xb9\x0d\xf3\x16\x88\xb2\xf8\xf6\x3a\xfa\xc9\xaa\xfd\x56\x57\xa7\xe3\xf2\x33\x02\x62\x79\x12\x8f\x0d\x47\x36\x75\xa5\x61\x24\x55\x02\xc4\x4a\x04\x4f\xec\x5d\xaa\xe1\xcd\x12\x9d\x57\x79\x55\x5f\x7c\x78\xb0\xf6\x72\x77\x01\x62\xea\x3c\x3a\xa5\x31\x41\x3d\xef\xb7\xd9\x08\x49\x78\xea\xa5\x50\xb4\x23\x55\x34\x83\x4b\x2f\x83\x24\x71\x76\x07\x5d\xbe\xbe\x5a\xef\x1e\x1e\xfb\x03\xa9\x88\xbd\x6c\xfa\x57\xb9\x2b\x24\xcc\x59\xc7\x75\x39\xb9\x9b\xaf\xcd\xe7\xdc\x6b\x48\xb4\x8b\xe7\x1a\x28\x8a\x5d\x37\x11\xd7\x55\x69\xf3\x10\xa7\x42\x9a\xba\x66\x74\xc0\xf0\x38\x84\xc8\x6e\x3b\x5e\x58\x20\xcd\xa8\x6b\x9b\xe6\xa5\x33\xcd\xf9\xe2\xfb\x52\x93\xe0\x6a\x52\x9e\x0e\x0f\xd6\x59\xc2\x5c\xc9\xba\xf8\xd8\x9c\x6a\xfd\x22\x9b\x3e\xc0\x02\x4a\x23\xec\x54\xdf\x56\xcf\xd7\xde\x6a\xfb\x93\x0e\x0b\x50\x9d\xe0\x9d\x29\xba\x1c\xbb\x69\xbf\x3f\x5c\xde\x5e\x3d\x86\x77\xd5\x8f\x61\xd6\x1a\x33\xd8\x74\x6d\xdb\xaa\x1e\x8a\x9a\xc0\x19\x47\xd3\x18\xb4\x97\xf8\x04\x25\xb1\x2c\x47\x38\x89\x98\xc9\x27\xd3\x96\x8b\x48\x45\x3d\x06\xf4\x15\xc3\xfc\xe9\xac\xe0\xda\x39\x82\xe7\xcd\x2a\x98\x16\xce\x27\x8e\xf0\xde\xd0\x8f\xcf\xb9\x75\xcb\xea\x68\xf1\x86\x2c\x31\xf8\x0b\x0e\x1e\x8f\xe0\xe7\xf5\x6f\x23\xd5\xc4\x4f\x2e\x2e\x93\x0a\x83\x93\x6f\xb2\x85\xf7\xbe\x85\x0d\x19\x24\x58\x61\xaa\xc1\x19\x22\x39\x7c\xb9\x3f\x28\x63\x47\x72\x0f\x01\x8d\xf7\xb6\xea\x0f\x6b\xea\xc4\x70\x4e\x47\xa8\xcf\x4a\xfd\xd3\xaf\x57\x32\x42\x7d\xf1\x6e\xe7\xfd\xac\x2a\x1f\x86\x2a\x8a\x71\x3c\x76\x1b\x3c\xc3\xf2\xbc\x9d\xf5\xf5\x0a\xa2\x29\xd3\xb4\x57\x84\x1a\xf4\xe2\xfa\x79\x67\xe2\x54\xfa\x9a\x85\x37\x68\x9b\x30\x2f\xc2\xa8\x84\x60\xa0\xbb\xda\x8d\x9d\xf4\x18\x18\xb0\xa8\x7d\x26\xb5\x1e\x4a\x81\x00\x32\x93\xa4\x77\x16\xc0\x72\xba\xeb\x38\xf7\x03\xc0\x38\x19\xdf\xaa\x28\xaa\x37\xa8\xc7\x89\xe9\xf2\xef\xb0\x8c\xb1\x68\x2a\xc7\xf5\x99\xb0\x99\xfb\x84\x8d\x62\x97\x72\xfe\xf7\x04\xf5\xc7\x06\xea\x43\xde\x34\x83\x6c\x35\xb3\x51\xca\x50\x79\xc9\x09\x38\x05\xeb\x4d\xd1\x1f\xce\x38\x4a\xb1\x34\xae\x5a\x1d\xfe\x4c\x32\x21\x7c\x50\xb1\x47\x95\xbe\x7d\x5e\xda\x2a\x1c\x8d\x53\x8d\xb1\x91\xf5\x5a\x66\xdb\xfc\xe7\x9f\x7b\x4e\x36\xa6\xae\xd8\xe5\x60\x07\x2f\x55\xfd\xdb\xe7\x9a\xab\xcc\xc6\x20\x84\x93\xbf\xff\xb8\xae\xea\xbb\x8f\x06\x0a\xdb\x4d\xa6\x80\x3b\xec\x05\x0f\xdd\x6b\xea\x3f\x95\xc6\xc6\xba\x66\xd0\xe7\x66\x69\x8b\x33\xd1\xa6\x89\xc5\x8e\xcb\xb6\xcd\xa1\xbe\xc8\xdb\xf1\x1c\xb0\x3c\xd5\x2c\x5c\x7a\xad\xf2\xd6\xd5\xa1\x46\x36\x07\xa3\xae\x98\xe5\x8c\xa5\x62\xc4\x67\xb8\x6a\x5f\xb6\x5d\xa6\x65\xfa\xb3\x49\x81\x35\xb4\x8b\xd3\x87\x23\xdc\xfe\x76\x96\x6d\x84\x91\xda\x55\x96\x9c\xf8\xc9\xa7\x15\xa2\xe9\x9d\x13\xa9\x41\x59\x96\xe7\x5a\x96\xed\x30\x2b\xce\x6b\xe9\xdd\x8d\x4b\xe7\x1f\x06\x0a\xc1\x29\x0f\x7d\xde\x9e\xba\xf0\x70\x3b\x82\xbf\xdb\x2c\x16\x44\xf4\x62\xe8\x26\x6f\x2f\xe5\x72\x47\xc4\x66\xd9\xc8\x2c\x6c\x3b\x40\x35\x6c\xa6\x9c\x52\xbe\xae\x9a\xee\x0a\xfd\x5d\xf0\x07\x25\x49\xb1\x4d\x7d\xf7\xd1\xc5\xac\xf1\xe4\x41\xc8\x98\x8e\xb6\xda\x99\x0b\x64\x18\x03\x2c\x89\x7a\x4b\x29\x54\xed\x76\x3c\x96\x70\x12\x65\x19\x46\xe3\x79\xb3\x91\xa7\xb9\xf7\x2b\xb3\x3a\x8b\x10\xaa\xb6\xdf\xab\x41\x10\x6a\x51\x16\x9a\x59\x2d\x1d\xe6\x07\x15\x65\xc6\x6a\xf8\xf3\x8b\xd2\xd6\xa2\x01\x8c\xec\xdd\xac\x4f\x03\x5b\xc2\x9a\x2c\x0d\x0c\xaf\xa7\xc6\x60\x1b\x6a\x81\xf9\x6f\x0d\x10\x4e\x42\x2b\x74\x6d\xce\x22\xa2\xe5\x5a\xb0\x85\xd8\xe9\x1f\xd4\xae\x7a\x7c\xb3\xba\x3b\x27\xeb\x59\xd0\x09\x62\x01\x6f\xab\x67\xa7\xee\x12\x53\x76\x76\xfe\x71\x54\x62\x6d\x94\x61\x8c\x30\x92\x0a\xbb\xf8\xd8\xa0\xd7\xfb\x74\x5c\x9a\xa0\x05\x2d\xce\x82\x9b\x72\x3d\x5a\x9a\xbb\x9b\x82\xe4\x5c\x05\xed\x23\x98\x11\x2e\xc6\x5a\x96\x7a\xeb\x96\xb6\x17\x3b\xab\x4e\xa5\xf9\x26\xcf\x34\xd3\x99\xb5\x1c\x9c\x0e\xb0\xc3\x45\xfb\x65\x73\x3e\x48\xc5\xd8\xd9\x38\xec\x7b\x88\xe2\x18\x5f\x6d\xad\xb1\x4a\x07\xf3\x99\x9f\x5e\x5d\xca\x47\x39\x3c\x8a\x62\xb7\x04\x38\x5f\xc2\xc7\xab\xf5\xd5\xcd\x8f\xab\xcb\xc1\xfe\x81\x47\x11\x4b\x99\xe7\x54\x3b\xe1\x52\xe7\x37\x74\xfa\xa8\x4e\x0b\x3a\x0e\x3c\x8a\x4c\x82\x39\xef\x51\x96\xb9\xee\x4f\x62\x34\xe5\xc1\xc5\xbc\x6e\x5a\x0c\xfb\x5d\x48\xe9\xea\xa0\xb3\x73\x58\x89\xd1\xf3\xb7\x1f\x53\x82\xd1\x78\x02\xf0\x28\x26\x1c\xd7\xd2\xbf\x6d\x2f\xfa\xab\x8d\x99\xc1\x8e\xf5\x8f\xaa\x78\x6d\xba\x7c\x36\xe9\x8f\x08\xab\x6d\x10\x7d\x42\x56\x66\xf3\x92\x1f\xa7\x35\xab\xbf\x4c\x2f\x23\x36\x04\x17\x4f\x23\x5b\xb9\x96\x85\x5e\x4c\x48\x78\x14\x5b\x89\x08\xf6\x7d\x17\x7b\x3a\x31\x83\xc7\x01\xd4\xcb\xa3\x34\xd2\x2a\xed\xc9\x74\xd8\x1b\xad\xec\xaa\x34\x83\x49\xde\xec\x84\xa9\xd0\xdc\x43\x1c\xdc\x5a\x70\x51\xcd\x16\x21\x1e\x51\x9a\x20\x1f\xc4\x00\x26\x84\xcb\x3f\x80\x2a\x8a\xcc\xe1\xbf\xaf\x1f\x6e\xee\xc3\xe5\x50\xd3\x6f\x84\x85\x6c\x5a\xa4\xf1\x84\x63\x2c\x4e\xb1\x4f\xa5\x4e\xdd\x2a\xd5\xff\x35\x35\xcc\x03\xaa\x47\x12\x75\xe1\xa0\x70\x12\x76\x06\x9a\xb6\xae\x3e\xd0\xdd\x38\x1c\xd2\x4e\xe9\x65\x1f\x8a\xbc\x57\xff\x3d\x8d\xd1\xbd\xd3\x8b\xe5\x36\x45\xcb\x22\x07\x84\x79\xb0\x58\x86\x0e\xc6\x5a\xcb\x1f\x11\x34\xc3\xd2\xf3\x16\xb9\x08\x27\xb4\x62\x9e\x5c\x9c\xc8\x2c\x8b\x03\xa4\xad\xce\x6d\x3e\xc6\x4a\x8d\x82\x0e\x1e\x65\x11\xc5\x9c\xf8\xda\x75\x75\xfa\x69\x23\xa9\x4d\x1d\x02\xd0\x65\x62\xbf\xcd\x2a\xcf\x7e\x98\x22\x99\x48\xfb\x74\x0d\xcc\xc5\x6e\xfd\x5b\x7f\xc8\xa2\xa2\xef\xaa\x1c\xeb\x74\xf3\x48\xc5\xc2\x99\x2c\x74\xeb\x66\xbb\xaf\x86\xaa\x3b\x8f\x14\x03\xbc\xa9\xd2\x74\x41\x98\x7e\x75\x15\x4a\x5c\xad\xe5\x14\x0f\xd1\x37\xb1\x78\xa4\x14\x0b\x8e\x2a\x55\x8f\x5d\xf8\xcb\xe4\x7e\x68\x19\x67\xa4\xe7\x55\x42\x7d\x0b\x6f\x50\x24\x23\x0b\x3f\x1e\x19\xce\x31\xca\x46\x65\xa7\x95\x59\x12\xde\x9d\xe5\x4a\x3c\x02\xc1\xd1\xfd\x36\x44\xd9\x17\x79\x31\xed\x1d\x72\x12\xc5\x12\xd3\xa9\xab\xdd\x7a\xf9\x61\x92\x28\x25\x08\x99\x68\xdf\xa1\x6c\x3f\x82\x1a\xfd\xbe\xb2\x7b\x39\xf2\x60\xe1\x24\xd2\x4e\xaa\xce\x43\x56\x93\xe1\xef\x0c\xe5\x31\xe0\xa7\x96\x6f\xa3\x4d\xa0\x3b\x62\xb1\xe8\x52\x4e\x21\xa3\x9c\x10\x4a\x02\x2d\x03\x7a\x71\x36\x4e\x08\x4f\x85\x8f\x8b\xee\x2f\xd7\xeb\x11\xef\x6b\x1e\x0c\x70\x42\x8c\x02\xd2\x93\x8d\x5c\x04\xe5\x75\xc4\xfc\x88\xc4\xc6\x99\xea\xe9\x08\x79\xf9\xbc\xae\x9a\xf6\x74\x80\xc7\xb9\x92\x21\x27\x29\x73\x7a\xf5\xb8\x4c\x36\x5a\x9e\xfb\x84\x4f\x66\x1d\x49\x75\x24\xa5\x03\x49\xff\xfc\xf0\xa5\x9f\xee\x0b\xbc\x99\xcb\x97\x91\x39\x27\x94\x09\x07\x1f\xf3\xca\xba\xf7\xf0\x7e\x09\x58\xea\xcf\xdf\x60\x71\xe1\x9d\x9f\x40\x39\x56\xd4\x5c\x02\x6b\x53\x03\x42\x45\x0c\x46\xb5\xbf\x42\x4e\xcd\x81\x2c\x7d\xbe\xce\x09\x63\xee\xf5\xfd\xdb\x49\xd6\xaf\xfa\x45\x9e\x87\xbf\x7e\x20\x8f\x00\x21\x0c\xb7\xd5\x33\x4e\xe6\xcf\x52\xb9\xf9\xc7\x0c\xc8\x00\x18\x71\xc1\xda\xf4\xe1\x72\x1b\x53\x8f\x58\xad\xab\xb2\xb9\xa8\x64\x3f\x47\xb8\xcd\xb8\xee\xdd\x1b\x4e\x45\xd8\xfc\x39\x11\x86\xe0\x5d\xd9\x7f\x5a\x44\x1f\xbf\x92\x44\x18\x8d\x48\xbf\xa3\xfc\x78\x38\x21\x20\xb4\x3e\xeb\x96\x73\x92\x09\xa7\x68\xdb\x65\x2f\xaa\xbb\xd5\xe7\x7a\x08\x9c\xc8\x38\x0a\xaa\x62\x8f\xd0\x74\x9b\x1c\x2c\x63\x0c\xba\xa1\x31\x77\x46\x7c\x0e\x91\x32\x84\xe7\xdd\xb1\x04\xe5\x07\xd4\xa9\x2e\xef\xe6\x53\x54\xaa\x18\x93\xaf\x17\x59\x9a\x22\xa8\x2b\xd7\xd5\xe1\xa1\x0f\x15\x27\xae\xef\xcb\x13\x47\x1a\x07\x6e\x71\x1c\x83\x9e\xe7\x84\xb1\xe3\x74\x86\xab\x84\xe3\xae\xfd\xe3\x6a\xbb\xbb\xb9\xff\xb6\x5f\x5d\xfe\xb8\xd9\x3e\x3c\xce\x54\xdb\x38\xd1\x19\x35\xde\x90\xce\xc9\xb2\x00\x2c\x53\x4e\x38\x31\x91\x43\x2d\xd7\x68\x33\x7e\x11\xce\x60\x52\x67\x10\xe7\x81\xaa\x5d\x1c\x75\x3d\x6c\xe2\xc4\x30\x86\xb5\x49\xf8\xa9\x01\x4c\x73\x27\x7f\xde\x94\x6f\x53\x43\x25\x4e\x40\x2a\x3a\x28\xf4\x78\x70\xee\x76\xd2\x8f\x0a\x23\xad\x06\xda\x6f\x76\xd7\x55\x3d\x86\xe4\x74\x87\x81\xf9\xc8\x79\x2f\xe7\x0b\xf0\x34\x0c\x22\x96\x38\x29\xaf\xa3\x2f\x4c\xed\xaa\xf7\x72\xf6\xd0\x6c\xea\xd6\xf4\x2e\xea\xc4\x62\xcc\xe2\xf4\xb1\xbe\x0d\x60\xe5\x5b\x55\xe7\x2d\x8c\xb9\x69\x1c\xf1\x88\xc8\xf3\x84\x9f\xc7\xa2\xca\xdb\x87\xf7\x32\x2c\xb0\x71\x44\x9c\xbe\xfd\xd1\x89\xdc\x9e\x39\x4b\x86\x61\xb1\x20\xce\x83\x28\xf4\x4d\xba\x68\x72\x7a\x67\x62\x02\x06\xdb\xd4\x50\x3a\xec\x64\x50\xfe\x0b\xdf\x15\x47\x16\x5b\xab\x68\xcb\x07\x87\xfc\x74\xb8\xac\xe5\x73\x55\x8e\x11\xf5\x3c\x8e\x13\x46\xbc\x4e\x27\x66\x79\x5b\x68\xdb\x22\x2f\x9f\x17\xab\xa1\x3c\x8e\x55\x2a\x03\xf6\x08\x60\x23\x6b\x79\x80\xb6\x2f\x1e\xf0\x38\xe1\x16\x31\xc3\xb6\x86\xbe\x22\x37\xfd\x6d\x29\x91\x31\xef\xe9\x74\x08\x2e\xf5\xda\xc4\x81\x1b\x39\x7a\xc5\xe2\x34\x8d\x31\x64\x0c\xf5\xfc\xf1\x8a\x10\xa7\x94\x6b\xdf\xde\x70\x3f\xed\x7e\x8c\x5a\x99\x0e\xcd\x5c\x51\xf4\x1b\xb4\x57\x6f\x50\x62\xe3\x22\x5c\x33\x8d\x09\x19\xc2\x81\xee\x1c\x93\x3b\x44\x29\xcd\x3c\x3e\xe6\xe1\xf4\x06\x75\x7b\xaa\x61\x6f\xa0\xd9\x9b\xba\xca\xdb\xf9\xa3\xa3\x86\x62\xe3\x63\x7f\x6a\x2b\xb9\x80\x9a\xe5\x31\x4f\x0d\x42\xcc\x3c\x58\xff\xa9\xf9\x44\xf0\x99\xc7\x3c\x73\xab\xea\xef\x57\xbf\x5f\xe9\xe1\xc1\x0a\x9a\xe0\x8a\xda\xe5\xe7\xa7\xe3\xb2\xe2\x03\x8f\x85\x49\x24\xda\xb5\x38\xcb\xf1\xab\xcb\xa7\xe5\xd7\x3c\xce\x22\xaa\xa5\xef\x43\x22\xad\x6a\x76\xa2\x2c\xe9\x1d\xc6\xfa\xf9\x3a\xb9\x41\x52\x72\x97\xcd\x7b\x17\x39\xf7\xa4\xc6\xb5\xd6\x91\x35\x65\xf8\x8c\x49\xd0\x31\x64\x54\xae\x9b\x9c\x53\xb1\x14\x03\x8e\x95\x19\x38\x1c\xdd\x5f\xc1\x7a\xac\xee\x1f\xf9\x60\xe1\x1d\xee\xac\x66\x02\x09\x9e\xd2\x98\xcd\x48\xaa\x24\xc4\x61\xe9\xfc\x3f\x48\xb8\x1a\x2d\x1d\xd3\x4d\x7a\x3f\x8a\x8b\xdc\x24\xd3\xf5\x35\x36\x09\x55\x9e\x34\x73\x0d\x10\xaa\xa3\xd3\x3b\x05\x24\xc3\x38\xc1\x71\xf4\x1e\x8e\x50\x9e\xfb\x76\x8e\xf0\x17\xfd\xb9\x41\x45\x89\xdf\xd9\x6e\x2b\xd9\x3f\x67\x9b\x38\x81\x8d\xc1\x25\x63\xf9\x01\x5a\xa3\x5c\x7c\x8c\x6c\xff\x73\xd7\x05\x9e\x44\xdd\xbc\xf4\xf6\x50\x55\xb7\x60\x3b\x7a\x03\x36\xe3\x26\x3f\x21\x89\x94\x45\x31\xe0\xed\x6e\xf5\xed\x6a\x4f\xc2\x09\x62\xc9\x8d\x0e\xbc\x06\x0f\xc3\x5a\x0c\xf3\x92\x84\x4b\xe4\x88\x5f\xb4\x50\x0e\x62\x55\x3c\x49\x64\x82\x98\xf5\x2d\x02\xe4\x51\x99\x69\xde\x30\x1a\xbf\xb0\x49\x62\x1c\x15\xad\x67\xb4\x76\x91\xdb\xd7\xbb\x65\x92\x66\x71\x2c\x83\xa2\x8c\x6c\xc1\xd7\x24\x26\x93\xfa\x2c\xb8\xfa\x54\x46\x9c\x27\x34\x16\x08\x49\xf2\xf2\x5d\xbe\xa1\x91\x97\xcf\x8b\xe8\x84\xd9\xc5\xd0\x24\xc1\xd2\x06\x34\xce\xbc\xc7\xfc\x01\xf9\xf3\x4b\x98\xe0\x09\xa5\x0a\x17\xd2\x4d\x7e\x1c\xdb\xc2\xf2\x84\x32\x65\x32\x0f\xe0\xdc\xcb\x53\x5b\xe1\x87\xf7\x17\xa7\x8f\xfd\x71\x00\x94\x74\xe3\x9c\x37\x5e\x97\x2c\x43\xfd\x96\x6b\x70\xc8\xa0\xb3\x34\x04\xaf\x2b\xcc\xb5\x04\x2d\xd7\x07\x21\xf5\x5c\x1e\xaa\xd2\x04\xec\xf8\x9f\x29\xe4\xf2\x84\x6a\x9e\x4e\x78\x27\x9f\x41\x99\x86\x58\xf5\x3c\x09\x4b\x28\x44\xa8\xe1\xb6\xae\x8a\x02\x74\x9b\xab\x02\x3c\xd4\xe0\x57\x85\xdb\xe9\x84\x63\x5c\x30\x35\x02\x6f\x3f\x95\x79\x55\x4e\xee\x28\xcb\x64\x88\x40\x37\x95\xa3\x33\x5c\x02\x18\xc7\x2f\x9b\xbe\xe6\x09\x53\x14\xd7\xa5\x9d\x59\xd4\x8c\xe7\x09\x8f\x1d\x60\xc9\xb5\xdc\xcb\x12\x8a\x6d\x3e\xf3\xd0\xe5\x09\x4f\x22\xc4\x6c\x81\xef\x4c\xc9\xba\xf5\xd8\xf6\xc9\xfc\xe2\x34\xc1\xfd\x0b\x33\xc8\x35\x96\xd1\xc2\x35\x73\x41\x82\x78\xff\x98\xfe\x3e\xbd\x58\x0e\x02\x7b\x36\x6f\x39\xbc\x87\x88\xb2\xfb\x55\x3d\x0b\xd5\x8f\x13\x3c\x45\x76\xfa\xfe\x19\x90\x9a\x87\x17\xe4\x9f\xf9\xdd\xa8\xaa\x91\x64\x54\xa3\xb9\x86\x3c\x1e\xa1\x34\x9f\x2b\xec\xf3\x44\xc6\x71\x12\xbc\xf6\x8a\xaa\x7b\x27\x50\x9f\x6f\x7a\x7d\x52\xc6\x7d\xb0\x90\x17\x67\x47\xbd\x74\x52\x0b\x4d\x3b\x07\x52\x84\x0b\x52\x51\x2f\x7d\x75\x37\xb5\x1b\x9d\x3d\x16\x95\x6a\xc4\x79\x5f\xd4\xf0\x52\x9d\xf7\x4d\xe6\xaf\xea\x2f\x48\x3d\xff\xd7\xbf\x87\x8b\xf0\x9d\xf1\x67\x79\x70\x4e\xc6\xfd\xdf\x65\x12\xf7\xcd\xa2\xc1\x5f\x34\x1c\xd7\x32\xc3\x16\xd3\xfb\xb0\x5c\x42\xe6\x24\x60\xba\x47\xb6\x6a\xbd\xb9\x59\xf3\x60\xcf\x3b\x57\x3c\x01\x63\x11\x94\xb7\x9a\xe8\x98\x4d\xc7\xd8\x88\x38\xc3\xaf\xd1\x2d\xbc\xb9\xfc\x12\x52\xc1\x13\x4b\x1c\x37\x7b\x24\x93\x76\x5d\xd5\x4b\x58\x0c\xf7\x81\x34\x92\x91\xf0\xf5\xb8\xab\xe7\xe7\x33\x61\x1c\x9e\x12\x9a\x2a\x47\x54\x7c\xbb\x69\xb6\xd2\x2e\x43\x17\x78\x4a\x98\x04\x3d\x83\x9b\x8c\xea\x11\x29\x51\x19\x0d\x86\x44\x2e\x6a\x74\x00\x8d\x3f\x5e\xa0\x9c\xae\x22\xfe\x03\xb1\x10\x88\x01\x08\x3a\x5f\x01\x48\x33\x43\xcc\xf2\x34\x89\x54\xc2\x1c\xc3\xb8\xec\x8d\x4c\x79\x9a\xa6\x02\x9b\x2a\x16\x75\x4f\x1e\x9d\x50\x3c\xa6\x3d\x0b\xde\x1b\x3c\x4d\x05\x08\x5f\x08\x9c\x53\x69\xa6\x5f\xc7\xa2\x14\x43\x96\x2e\x85\xc4\x02\x1e\x98\x89\xf2\xdf\xf4\x57\x30\x0d\x28\x26\xbe\xd7\xd8\xd2\x3f\xac\xca\x59\xe5\x60\x7a\x72\x4e\x08\x36\x9a\xba\x60\x7c\xf0\x3b\x0d\x07\xd3\x08\xeb\x78\xb8\xf8\xb8\xda\xb2\x3f\x22\x2c\xc7\x3e\x71\xae\xab\x4d\x97\x27\x91\xee\xd5\xc6\x08\xfd\xa6\x9c\x5b\x7b\xf3\x34\x8b\x13\x5c\x84\x1e\x1f\x6e\xaf\xf6\x9b\xd5\xd3\xf6\x6a\xbf\xba\xbc\xeb\xab\xa8\xa9\xa4\x12\xd9\xc6\xe8\x12\x79\x21\xbb\xb8\xe3\xcf\x09\xdf\xf1\x54\x0a\x27\x3b\x6f\x65\x5e\x34\xd2\xf6\x5f\xa9\xe2\x5e\xce\x30\xa0\x71\xa7\x0b\x70\xaa\x94\x74\xd6\x46\x41\x41\xc9\x85\x45\xbb\xaa\xcb\x31\x3f\x99\x73\x3a\x12\x4c\x8c\xa8\xf2\x70\x71\xfa\xc0\xb5\x7d\x7a\x53\xb5\xd1\x08\xd5\xc2\x1a\xd2\xce\xf5\x34\x3c\xf2\x24\x5c\x9f\x86\x04\xcf\xb4\xae\x0e\xc7\xd3\x68\x12\x69\x10\x3c\xf6\x54\xfd\xbc\xe9\xcb\xc6\xa9\x06\xc7\x79\x6f\x46\x60\xa9\xcb\x3f\x81\x6b\xf4\x1f\x37\x59\x94\xaa\x69\xfc\xd7\xad\xa4\xd5\xa9\xf5\x96\x2f\xb3\x9b\x63\xa4\x63\xbc\xe9\xbe\x08\x31\x3d\x1f\x64\x80\x4d\xb6\x2e\x75\x5f\x3f\x6c\xa1\x28\xc6\xea\x51\x3c\x05\xc9\xd1\xf5\x60\xfd\x51\x9f\xfa\xdf\x6c\x23\xc6\xbd\xa7\x05\xca\xef\x2d\xbe\x16\x56\x12\xdc\x5d\xe1\x67\x5b\x4b\x24\xc8\xd6\xb5\xfc\xd8\x00\x4a\x07\x04\x7c\xc3\xe4\x62\x28\x61\x2e\xa6\xee\x36\x90\x01\x4c\xcd\x29\xe1\x14\x61\x39\x77\xd0\xd6\x55\x59\xf5\x8b\x2d\x8d\x45\x86\x29\x76\x89\x3b\xe6\x83\xbd\xab\x7a\xb7\x79\x4e\xe3\xcc\xa1\x42\xb0\x83\x76\x01\xad\xaf\xa2\x90\x80\xf6\xf8\xe4\x16\xd3\x58\x26\x48\x6f\xdf\xb6\xe6\xe9\xa6\x0c\x14\x80\x30\x27\x68\x42\x0d\xf6\x21\xf2\xe6\xa1\xd7\x06\xe4\x34\x8d\x54\xe2\xa7\xe9\x0e\xe4\xe1\x13\xfb\xa0\xe9\x12\x4a\x53\xe9\xd4\xbc\x1c\x2a\x75\xb6\xee\xd1\xd4\x90\xc4\x99\x79\xd4\x15\x92\xd1\xc2\x01\xca\x14\xee\x01\x79\xb3\x3d\x1d\xa1\x0e\x53\x72\xfa\xe4\x29\x97\x1a\xf3\x9c\xde\x17\x27\x78\x79\xce\xa2\x1c\xca\x2d\x31\x71\x5f\x77\x5a\x15\x45\x6f\x3d\xb9\x7c\x7f\x44\xec\xca\xe5\x38\x05\x9b\x56\xbe\xc2\xa4\x14\x4d\x85\xe0\x58\xb2\xf6\x82\x63\xfb\xab\xbf\xaf\xbf\xaf\xee\xbf\x5d\xed\x1f\x57\xbb\xab\x7e\x90\xca\x50\x00\x00\xe9\x55\x93\x9a\x0a\xcd\x12\x89\x05\xbb\xaa\x18\x5b\xfb\x73\x2a\x63\x89\x5c\xf4\x83\xcc\x1d\x76\x66\x71\xdd\xa4\x32\xb3\x58\xbe\xcc\x9b\xe6\x04\x5f\xc8\xac\x70\x2a\x95\x42\xa1\xbc\xcd\xed\x6a\xb7\xba\x7b\x78\x0a\x14\x4f\x4e\x15\x4d\x51\x37\x66\x65\xde\xba\x48\xcd\x78\xd8\x51\x7f\x98\xc7\x89\x1c\x20\x79\x09\x8b\xc3\x11\x1d\x39\x86\xe3\xac\x1f\x7f\xd1\xad\xbb\xa3\x14\x75\xfc\xa2\x50\x9d\x44\x28\x9d\x19\x64\xb6\x26\xd0\x20\x4e\x75\xea\x49\x5e\xd0\x7e\x87\xe2\x78\xe7\x7e\xd3\x46\xd6\xed\xdc\xf5\x8f\x53\x4d\x39\x52\x9a\xde\x91\xe5\x71\xb6\x7e\x53\x4d\x01\x0b\xa6\x7d\x64\xd0\xad\xcf\xdb\xdd\xc3\x6c\xea\x68\xee\x10\xba\x37\x87\x23\x48\xfd\xd2\x65\xec\xdd\xaa\x50\x9d\xc3\x12\xc2\x07\x64\x9a\x04\xdf\x38\x57\x59\xd9\xab\x8f\x7d\x5d\xbd\xcf\xa6\x9a\x49\x09\x4a\x04\x6f\x6f\xb6\xbf\x8f\xba\x3e\xd4\xd0\x0c\xbb\x01\xef\x55\x61\xe3\x09\xf4\x8b\x77\xa9\x03\x96\xbb\xb1\x7b\xd8\x3b\x26\x70\x0a\xa9\x8e\xdc\x6e\xda\x68\x59\x5f\x56\xfa\xd4\x5d\x67\xb5\xa9\xea\xa1\x85\xd8\xbf\xb4\xa0\x33\xac\xae\x04\xc9\xc4\xbb\x9b\xfb\x9b\xbb\xa7\xbb\xfd\xf5\xd3\xfd\xe5\xcd\xfd\xb7\x70\x4e\x6b\x22\x8c\x1c\x1a\x5c\x03\x6f\xc1\xb6\xab\xf6\x01\xe9\x08\x7e\x04\x8b\x00\x20\x19\x69\x80\x3a\x87\xbc\x9f\x1f\x13\xc2\x13\x67\xc4\x2b\x1c\x3f\xca\xf2\x75\xab\xab\x7a\x96\x34\xb0\x98\x3a\xb4\xce\x33\x3e\x25\xc4\xd5\xce\xbd\x48\x38\x4b\xd2\x04\xc6\x26\xf1\x58\xbe\x0d\xc7\xa8\x91\xe3\xe6\xd2\x3c\x0a\x0e\xc3\x20\xc1\xb8\xfb\xf6\xe1\xdb\xfe\x9f\x50\xbb\x2d\xd1\x1f\x63\x9e\x8d\xdb\x05\x70\x3f\x9d\x1b\x6b\x7f\x44\x82\xe8\xfd\xb7\xaf\xda\x97\xcd\xc0\xe8\x9a\x5e\x22\x93\xc0\x9c\xbb\x66\x0d\xe3\x34\x84\x71\x42\x70\x3b\xf7\xc6\xa9\x0e\x7f\xe6\xdc\x4e\x5d\x0e\x08\xfd\x75\xa0\x4a\x93\x0f\x7f\xe5\xfb\xdc\xb2\x9c\x33\xee\x7b\xe7\x58\xcb\x73\xc9\xc3\x63\xde\xcc\xc4\x69\xe3\x65\x3b\x0f\xce\x04\x89\x90\x68\x90\xeb\x8a\xdc\x0d\xcf\x51\x10\x67\xd9\x75\x07\x45\x55\x8e\x9d\x61\x39\x13\x89\x8d\x1c\xa6\xfe\xa6\xdc\xe5\x73\x81\x01\xce\x84\xd0\xb8\x65\x9e\x1a\xa8\x57\xe3\x95\x8f\x65\x14\x10\x15\x70\x77\x75\xbf\x7b\x78\xdc\xf6\x7f\x06\x23\xac\xef\x1f\xd7\xd5\xe1\xf1\xac\xd7\x37\xbb\x64\x19\x3b\x5d\xbf\x5e\xad\x0e\xb6\xdd\x14\xd0\xfd\x12\xc9\x64\x4a\xb1\xc5\x8b\x54\x48\x59\xdc\xc9\x16\x6a\x99\xcf\xee\x9b\xe4\x09\x8c\xa7\xc8\x55\xfb\xb2\xab\x10\xe0\xd9\xe4\xcf\xfd\x99\x24\x43\xba\x66\x17\x86\x7c\x97\xb5\x59\xcb\xe3\x44\xea\x86\x33\xc5\x9d\xbf\x5a\x0d\xd2\x7c\xec\xaa\xeb\x53\x61\x87\x6e\x36\xd3\x91\xc0\xf8\xc2\xe6\xa5\x2c\x3e\x82\xdc\x07\x67\x3a\xcd\x10\x03\x53\xc2\xbb\x63\xbd\x2f\x6f\x26\x4c\x67\xd6\x95\x8a\x40\x23\xf0\xf1\x33\x4f\x12\xce\x0c\xd7\x28\x07\xd4\xdd\xf6\x5d\x75\x7f\x3a\xac\x9d\x03\xd2\xe4\x45\x67\x10\xa5\x68\x49\x71\x0f\xef\x0b\xe2\x0f\x9c\x41\x2a\xd1\xcf\xf5\x11\x9b\x11\xb3\x3b\x06\x8c\x70\x4f\xcb\x0d\xfe\x0b\x58\xbb\x0f\x3f\xca\x42\x46\xb2\x10\x8b\xf6\x0d\x91\xe5\x35\x91\x47\x5a\x62\xe7\x75\x65\xcc\xc5\x6e\x3d\xea\x52\x77\x73\x00\x63\xa1\xa5\xde\xf1\xe8\xbf\x1c\x66\x2b\xac\xed\x3c\x8e\xe3\x00\xc5\xfa\xfd\x43\x2f\x14\x6f\x79\x0c\xca\xb9\x0d\xcb\xa2\xb8\x74\x05\xe7\xb5\x2c\x0a\x25\xf5\xeb\xe4\x26\xf0\x24\x75\x6c\x94\x67\x67\xf1\xb4\xc4\xe0\xe1\x3c\x81\xc8\x97\xae\x4d\x97\xf5\x03\x56\x2b\xcf\xcc\x56\xe7\x04\x7b\xce\xd3\x28\xc6\x0a\x8c\xa3\xeb\x3d\x58\x8b\x2d\xca\xa7\x63\x51\xc9\x4f\xb4\xd7\x78\x97\x58\x60\xc9\xf1\x6e\x75\x73\xbf\x5f\x3f\xdc\xdc\xef\x37\x5d\xe0\xb0\xfb\x7e\xf5\x38\xb0\xcf\x39\x4f\xc1\x15\x2c\xbd\x82\xe2\x37\xf9\xc9\xce\xce\x29\x71\x8a\xa6\x4e\x19\xce\x41\xf4\xe7\xdd\x43\x4e\x63\x07\x91\xb5\xc5\xa9\x79\xb9\x7a\x5c\xc7\xd1\xec\xaa\x18\xd7\x58\x49\x5d\x3f\xfe\x63\xb3\x7b\xf8\xe7\xc3\xed\x78\x85\xe3\x0c\x0c\xca\x84\xad\xca\x67\xf0\x91\xb8\xaf\x32\x7d\x19\xf4\x71\x1e\x13\x8c\xa8\x5d\x12\x3b\xd0\x75\xfb\x6a\x19\xe7\x49\x82\xbb\x78\x21\x1b\x07\x26\xda\xc8\x40\x9c\xe2\x9c\x6b\x62\xd3\x20\x7d\x56\xbd\x97\xe0\x82\xa4\x9b\xf2\xea\x13\x7e\x0c\xe7\xdc\x28\x6c\x17\x5e\x79\xbd\x13\xd7\xaa\xc1\x6d\xeb\xba\xaa\xbb\xff\x7b\x70\xcb\xc2\x42\x4f\x8e\x8b\xc8\x49\xd8\x7a\xa3\x55\xdc\x85\x7d\x6f\xb7\xdb\xe3\xf3\x33\xe7\x44\xce\x05\x33\x89\xef\xfa\xcc\x95\xa4\xbb\x83\x16\x9d\x93\xbf\x3f\x5c\xde\x86\xdf\x24\x24\xc5\xa9\x56\xd5\x06\x6a\x57\x34\xee\xf6\x87\xc9\x9b\xcd\x85\xb1\x4a\x0c\xb4\xa1\xf3\x76\x30\xcf\x32\x83\xe2\x04\xdd\x7d\x0b\xa7\xce\xac\x73\x4c\x41\x3b\xc1\xb2\xed\x95\xf7\xc6\xfd\xa7\xe1\x0c\x32\x02\x95\x0c\xad\xca\xd6\xc1\x6c\x02\xe5\xe9\xdf\xb3\xfb\x2a\x79\x14\xdc\xa6\xd6\xb2\x7c\x93\x8d\x2b\x15\x8f\xb3\x05\x2e\x8d\xc2\xb4\x1c\x9e\x9f\xbb\xe7\xfc\xda\x2f\x26\x5c\x5a\x8e\x2b\x9f\xcd\xeb\xa6\xdb\x66\x27\x5b\x09\x57\x46\x62\x3e\xf1\xdf\xb2\x25\xd1\xeb\xf0\x57\x23\x65\xf0\xaa\xfe\x02\x80\xc1\xb5\x71\xf4\x3a\x57\xf9\xfd\x55\x95\x35\x7c\x08\x62\xb7\x7e\x54\xcd\x39\xfe\x74\xce\x25\xe5\xdc\xa4\x8e\xfd\xfb\x96\xc3\xbb\x67\x41\x3a\x75\xf9\xe6\xa6\xbc\x9b\xc5\xe8\xe1\x23\x4c\x63\xf1\x6b\x0f\x87\xbc\xbd\xa8\xba\xfd\xc6\x75\xac\xe6\x00\xa2\x5f\x16\xed\xfa\xf1\xc3\x6b\x03\x52\x61\x91\xb9\x95\x3f\x0f\x7d\x63\x85\x5b\x48\x81\xf5\xd8\xe2\x9d\x6c\x5e\x67\xcf\xdc\x5a\x12\x47\xa1\x5f\xf2\x0a\xf3\x56\xc7\xf4\x1e\x89\x28\x81\x8c\x0f\x78\xac\x91\xf0\x03\x17\x11\x48\xc4\xc2\xbf\x43\xfb\x32\x4b\xe6\xba\x28\x04\x35\x65\x6e\x77\xff\xe8\xff\xc4\x5c\x82\x7c\x75\x7c\xa9\xab\x72\x07\x4d\x3b\x71\x93\x9c\xff\xfb\xb9\x7b\x11\x17\xb1\x65\x76\x68\xb1\x8f\xad\x88\xb9\x48\x74\x82\x70\xb7\xc3\x74\xe7\x17\x94\x27\x5a\x06\x08\x64\x5e\x06\x62\x78\x38\x2a\x34\xd2\x9c\x6c\x20\x6f\xf8\x55\x34\x1c\x67\x51\x86\xfc\xce\x43\xee\xbd\x0d\x9a\xdf\xfe\x4c\xd9\x54\x30\xed\xec\xc7\xf6\xa1\x55\xe2\xcb\x0d\x7f\xaa\xfa\x21\x78\xac\xf0\x8d\x3b\x95\x0d\xc8\x62\x6e\x39\x74\x06\x05\x12\x9c\x12\x4c\xd4\xda\x65\x8d\x39\x2e\x38\x38\xd1\x4c\x2d\x0b\xfd\xb7\x53\xae\x5f\x37\x75\x75\xa8\x1c\xff\x6a\xfa\xd5\x22\xb1\xb8\x90\x1c\x5d\xcb\x33\xdd\x17\x27\xfd\xfa\xa1\x4e\x1f\xbb\xc9\x6b\x2d\x84\x96\x41\xc8\x20\xcc\x81\x9b\x7e\x86\x64\x52\x82\x1d\xf5\x2f\x2e\x87\xf4\x56\x48\xc9\x9c\xd9\x48\x29\x03\x87\xe4\x69\x0e\x58\xe6\x42\x42\x86\x51\xc5\xb1\x90\x1f\xbb\x6a\x04\x7d\xf7\xc7\x55\x6c\xb1\x2a\xdb\xd6\x39\x38\x61\xa9\x33\x1d\xeb\xd9\x3d\x52\x46\x43\xe0\xb2\xf7\xea\xd8\x0d\x06\xdb\x8b\xed\x75\xa1\xd3\x38\xe9\x96\xd9\xa3\x6f\x95\xed\x0f\x8f\xc8\xe5\xd8\x14\x9e\x25\xbf\xb8\xb6\x0a\x9d\x3a\xf4\x1e\xca\x65\x61\xb9\x38\x1c\x30\x51\xe2\x97\x51\x44\xde\x2d\xc1\x30\x84\x89\x5d\x31\xe4\xe8\x61\x31\xcd\xc5\xc7\x48\xd1\x35\x9c\xca\x28\x1e\xb0\x3e\xdd\x37\xe0\xa3\x41\x23\xd2\x1e\xba\x30\x3d\x2b\xc4\x0e\x35\x87\xd7\xb4\x72\x7d\xb1\xe9\xdd\x01\x6e\xf8\x14\x20\xdb\x85\x55\x7f\xad\x54\xff\xa6\xd8\x88\x63\xee\xfb\x57\x79\x90\xed\x28\x40\x10\x96\x67\x08\x10\x45\x0c\x63\x33\xc9\x31\x84\xe5\x8a\xc6\xa3\x5a\xc6\x5d\x5e\x7a\xc5\xd5\x9e\xbc\xda\x0d\x02\x7c\x43\xd7\xe5\xc7\x18\x23\x99\x91\xc4\x60\x52\xd7\xb4\xb2\xcd\x35\x86\x92\xce\x50\xda\x3d\xf0\x33\x06\x33\xcf\xe2\xc4\xc1\x47\xf6\xd2\x98\xde\x7e\x6c\xf0\x95\x9d\xce\xb1\x2c\x4e\x29\x32\xf2\xf6\x13\x9d\xb5\xe6\x25\x3f\x2e\x2f\x8a\x59\x12\x11\xd4\x6a\x6d\x5a\xf9\x0c\xb7\x30\x12\x07\xed\x8e\x51\x6c\x58\xbf\xc8\xe6\x25\x74\xe4\x82\xae\x3c\x2a\x93\xfc\x2b\xfe\x77\x28\xc8\x85\x8f\xd0\x08\xd1\xa5\xee\x4a\xa7\x30\x7c\x9e\x25\x1a\x30\x58\x08\xfd\xfb\x5e\xce\x68\xec\xdd\xc3\xb3\x54\xf0\x90\xa8\xaf\xe5\x04\xa5\xce\x33\xca\x52\x13\x50\x0e\x4d\x53\xe9\xbc\xdb\x82\x76\xab\x07\xaf\x32\x35\xf6\x22\x9f\xcc\x86\x8c\x4a\xed\x68\x3b\x2e\x87\x9d\x89\xe4\xfa\x41\x2c\xd1\x58\xb8\xef\xe2\xd8\xab\x9b\xa7\xbb\x70\x45\x8c\x39\xd1\x9f\xe6\x28\x0f\xe1\x6f\xdc\xf8\x1f\xe3\x48\x99\xde\xaf\xbb\x34\x5b\x0f\x09\x7f\xf2\x29\xc6\x9f\xea\x49\x65\xdc\xc6\xc1\x0d\xe3\xb6\x7a\x9e\x3d\x55\x91\xa4\x7a\xdc\x30\x7f\x44\xa4\xd7\xd8\x9f\x49\xfc\x8b\xa4\xff\x9e\x74\x90\x33\x21\x63\xbc\x8b\x45\x7e\xa8\xea\x5c\x07\x18\x4d\x96\xc5\x0a\x3b\xa3\x97\xdb\xdd\xde\xcb\x46\x85\x43\x32\x95\xe0\xea\x6f\xdb\xef\xab\x98\xb2\xef\xb2\x79\x79\xf4\xc8\xa6\x79\x50\x97\x49\x6a\x68\x40\xfe\x77\x6b\x62\x0f\x38\xd8\x56\xa7\x7a\x42\x7d\x0c\x1f\x30\xa9\x1e\x22\xb4\xdb\xdc\x29\x72\x4e\x6f\x83\xf2\x26\xa4\xeb\x0f\x05\xf5\x7a\xa8\x23\x67\x4a\x26\xd2\x93\x43\x1b\x67\x3e\x3e\x86\xa4\x67\x4a\x72\x09\x3d\x0d\xb9\x99\xa3\x6c\x32\x13\x67\x18\x7a\x5f\xe4\x1f\xa7\x02\x26\x9b\xf5\x42\xc2\x9a\x41\x9c\x06\x33\xb2\x7b\x78\x77\x55\xda\x75\x75\x08\x14\x9d\xe9\x35\x43\xe2\xd6\xf5\x67\x68\x2f\xdc\x2c\xdc\xb6\xb2\x69\x73\xdd\x4f\x68\x10\xa9\xd3\xfe\x2d\xe4\x87\x7b\xd1\xc3\x01\x13\x87\x2e\xf5\xdd\xc7\x37\x44\x34\x85\x42\xef\x62\x76\x94\x59\x61\xb0\x63\xdd\xbe\xd4\x00\xdf\xab\x16\x6d\x1f\x2f\x4f\x63\x9f\x02\x9e\x59\xc5\xc5\x88\x2e\x1c\xb8\xa8\x7f\xc8\xbc\xbb\xb8\x11\x7b\x38\x3c\x1a\x19\x89\xcc\x51\x6f\xbd\x62\xfd\xd7\x00\x0e\x19\x59\x83\xae\x4a\xcd\x4b\x0e\x85\x69\x9e\x3c\x37\x83\x4b\x42\x2c\x0a\x77\x14\x37\xbf\x5f\xa1\x12\xd9\x57\x77\x59\x12\x19\xa3\xda\xd6\xa9\x31\xf3\xca\x92\x8c\x09\xe3\x99\x67\xc7\xfe\x0e\x1f\xe7\xea\x71\x93\xc9\x28\x63\x02\xd8\x4d\x50\x27\xb7\xb7\x74\x2b\xe4\x74\x0a\xc8\x38\xd6\x58\x3e\x30\xf0\xb6\x0e\xfe\x0f\x83\xdb\xc0\xf4\x07\x26\xa9\xd2\x6a\xd4\xd6\xbf\x93\x3f\x9d\xb2\xe9\xe2\xcb\x2b\x13\x26\x11\x4a\x88\x65\xf5\x6b\x80\xeb\xa2\x7a\x0f\x0f\x5f\xa6\xb1\xc5\x70\x4b\x9d\x3e\xf6\xcd\x50\x1c\x96\x34\x4a\x99\xf3\xd8\xf8\xfd\x1f\xeb\x47\xf8\xef\x29\xaf\xc1\xec\xaa\x47\xd0\x90\xbf\x8d\x79\x47\x5c\x52\x45\x30\xb7\x91\xc6\x04\x8f\x94\x2f\x73\x08\xc9\x52\x8b\xe8\xb6\xee\xda\x67\x8e\xff\x61\x04\x53\x48\x60\x91\x06\x49\xfb\x57\xa5\xa9\xea\x06\xc6\x9e\xdf\x63\x0d\xc6\xe9\x73\x63\x42\xa3\x8e\xc8\xd5\xc3\xf6\x02\xda\x51\x20\x24\x59\x46\xb0\xde\x77\x0f\xef\xe8\x35\xd3\x3d\x0b\x04\x88\xfb\x88\xfa\x13\x95\x96\x45\x7e\xef\xf4\x2b\x33\x83\x77\xf8\x07\x3c\xc3\xa2\x6d\xe2\x79\x5b\x52\x32\x60\x51\xd0\xd4\xee\x3d\x7b\x26\xfd\x0a\xc9\xa5\xc4\xdd\x64\xff\x06\x0b\x79\xd3\x79\xa2\x22\x45\x1c\x51\x3b\x28\xc8\xfc\x01\xf9\x98\x4e\xca\x65\x16\x25\x01\xcc\xb9\x96\xc7\x2b\x5d\x35\x68\x1c\xdf\x1f\x16\x60\xe2\x91\x08\xe6\x35\xaa\xa9\x9e\x27\x6c\xc3\x17\x66\x59\xcc\x7c\xcd\xe0\xe2\xdd\x03\x88\x50\x24\x64\xdd\x05\x25\xf3\x39\x9e\x59\xe3\xa0\xc0\x95\x9a\x1d\x91\xdc\x3d\xb3\x6e\xf1\xac\xaa\x62\x6c\xa4\xc1\xa5\xb4\x29\x04\xe6\x59\xfb\x50\x18\xb7\x8b\xdd\xc3\xfb\x65\xde\xe0\xe4\xe9\x27\xfe\x39\x57\x42\x2a\x2a\xb0\x56\xe9\x84\x12\xf3\xaa\x5c\x95\x66\x7d\x6a\x1f\xac\x0d\xa7\xd7\x3c\x42\x22\x0c\x1a\xea\x4d\x5b\x24\xd2\x24\x19\xf3\xfb\xde\xb5\x93\x26\x7f\x3c\x15\xe7\x50\xe7\x5f\xfd\xeb\xcf\x06\xc0\x10\x09\x71\x79\xf3\xc7\xf2\x02\x2a\xc1\x46\xd8\x62\x52\x88\xf3\xe9\xef\x80\xcd\x68\xda\x4b\x65\x8e\x40\x73\xfd\xe1\xcc\x09\x07\xc9\x53\x03\x01\x92\x3d\x1c\x95\x29\x0c\x6e\xaa\xfb\x63\x0d\xfb\x5c\x57\x8e\xbe\x36\x5d\x58\x54\x9c\x3a\xfa\xea\xad\x7c\x93\x3e\xac\x9c\x3c\x27\x15\xf3\x18\x1d\x39\xf0\xc3\x53\x95\xfd\x7e\x84\xc2\x34\xe1\x54\xaa\xde\xb1\xea\x17\xf8\x74\x15\x73\x8b\x9e\x50\x2d\x34\xed\x4d\x13\x36\x19\x7f\xfd\x2a\x91\xd6\x79\x9f\x9f\x4a\xd3\x2b\x57\xfa\x63\x69\xa4\xb0\x8d\xae\x9c\x88\xe1\x44\x6f\x6e\x32\x8e\x13\x47\xb4\x92\xaf\xb0\xae\xaa\xd7\x7c\x5a\xbc\x55\x29\xc4\x3c\x1e\xa8\x7f\x17\xe7\xac\x99\xe5\x95\x5d\xa5\x36\x43\x7b\x16\x2d\xcb\x2e\x61\x0d\xd7\x4c\xa9\x93\x61\x3e\xba\x90\xb5\xf7\x3d\x0a\x58\xe5\x7e\x9c\xd4\x41\x4f\x30\xc0\xf2\x83\xe9\x86\x59\x9d\x19\x41\x87\x0f\x19\x43\x53\x8f\xf6\xe8\xc5\x9d\xfd\x31\x16\x01\x3e\xa0\x5e\xc7\xe2\x5b\x2d\xcb\x60\x72\xd5\x0f\x4a\x41\x79\x7d\x69\xa7\xeb\xb9\xb8\x4c\x2b\x26\x15\xea\x7b\x9e\xbb\x8e\x2d\x57\x0d\xc2\xcd\xe6\x24\x45\x62\x54\x23\x2d\x6c\x4f\xaa\xad\xff\xf9\xd7\xeb\xe5\xad\x49\xf1\x58\x05\xdf\x52\x03\xc7\xf6\xe0\xa8\xb8\x2f\xf9\xb1\x99\xca\x29\x4d\x2f\x8c\x67\xae\x84\x55\xf7\x01\x7a\xd0\x48\x0e\x2b\x5d\x37\x24\x75\x34\xca\xd2\xd9\xc5\x4e\xbf\x57\xc4\x0a\x57\x85\xeb\xa7\xdd\xd3\xe3\xea\xef\xe1\x53\x22\xa5\x63\xa9\xac\x16\xf6\x49\xd4\x1f\xe3\x80\x84\xec\x6f\xd0\x76\x2b\x04\x42\xbf\xc7\xbf\x5a\xa8\x24\x72\xf8\x89\x09\x06\x4f\x65\x34\x52\x3e\x58\xfb\xa3\xaa\x5f\xa1\xbe\x6c\x37\xd5\xd9\x9b\x97\x89\x4c\x5a\xa4\x2b\x3f\x7a\xae\x58\xff\x79\xa1\x51\xa7\xea\xf1\xf2\x8f\x71\x95\x58\x49\x46\x83\x14\xfe\x6f\x23\xef\x03\xae\xa4\x95\x22\xee\x45\x8b\x70\x7f\x9b\xbe\x50\x2a\x62\xc4\x19\x49\xa0\x9b\xa0\x6c\xe1\x33\xa4\x5b\xf8\x00\x71\x3a\x1e\x5d\xbc\x81\x8d\xa6\x55\x69\x76\xd5\x44\xe0\x78\xf6\x5c\x15\x71\xe4\x74\xed\xb0\x2b\x4b\x51\x8c\x52\x22\x43\x47\x46\x5f\x76\x9d\x1f\x95\x91\x53\xf4\x2d\xc3\x45\x6e\xa1\xb0\xfd\x4f\x00\x47\xe6\x0b\x24\x8c\xbb\x7e\xe2\x84\x11\x9a\x58\xec\x83\xf6\x52\xaa\xae\x1c\x34\x93\xa8\xe5\x4a\x27\x80\x55\xe3\xee\xed\xf5\x44\xb2\x4f\x89\x77\x4a\xf3\x28\x1b\x72\x04\xb4\xe5\x9c\xed\x71\xca\x48\xc6\x06\x55\xe3\xd5\xdd\xcd\x76\x3e\x40\x71\x8c\xf5\x43\x0a\xec\xfb\x29\xee\x19\xc6\x51\x18\xa5\x05\x92\x58\x2b\xcf\x5a\xde\xa3\x3a\xc3\x6f\x63\xf4\xd7\xbf\xe8\xac\x6c\xac\x0c\x38\x42\xfc\x33\xf8\xf6\xd2\x13\x9e\xda\xad\x10\xe3\xea\x94\x02\x42\xa4\x27\x3c\x62\x96\x7f\xd3\x45\x01\x8b\x40\xea\xd9\x57\x00\x57\x08\x61\xb1\x55\x7d\x38\x15\x72\x53\x83\x76\xc8\x29\x7f\xdc\x76\x49\x7e\x97\x21\x15\x32\x3f\x6c\xbf\xdf\xec\x96\x37\x3a\x1d\x51\x1d\xbb\x32\x45\xd3\x6c\x7d\x5e\x3f\x0b\xfb\x75\x04\x12\x37\xdf\xbd\xa7\x82\x2e\x9f\x89\x24\x51\xe2\x20\x3c\xd0\x36\x0f\x65\x98\xe5\x9a\xa4\x4e\x40\x61\xd0\x2d\xf2\x70\xf6\xdb\x5e\x22\x88\x6b\xc2\x95\x0c\x6c\x6d\x97\xaf\x5e\xc2\xcf\x73\x28\xae\x26\x8a\x6a\x8f\x4b\xfa\xf6\xed\x2a\x50\xc7\x45\x38\xaa\xa5\xb5\x33\x0b\xf6\x07\xbb\x5f\x20\x8d\xea\x38\x51\xd6\x9f\xe8\x38\x21\xa3\x7c\xa5\x33\xc9\x75\x42\x08\x16\x2e\x1e\x8e\x67\x28\x46\x9d\x50\x87\x6d\xea\x8b\x7b\x5f\xef\xb6\x3a\x01\x65\x1d\xc8\x67\xef\x55\x32\xf7\x83\x17\x29\xd7\x69\x4c\x5c\x81\xdf\x75\xd9\xba\xf9\x37\xbf\x1b\x94\x38\xa8\xe8\x8f\xbc\xc9\x55\x5e\xe4\xed\xc7\x25\x1c\x42\x06\xaf\x29\x8d\x52\x3a\xb1\x92\x0f\xa4\xb5\x11\x7e\x89\x7c\xf2\x34\x19\x23\x69\x34\xdd\x10\x27\xa9\x4d\x18\x06\x1a\xb7\x39\xa7\xd6\xe9\x54\xb5\xe6\xa2\xec\x5c\xf3\xc8\xb1\x2d\xbc\xd8\xe5\xbc\xd4\xb1\xc4\x0f\xd4\xdc\xfb\x91\xe6\x65\xde\x5e\xb5\x2f\x97\x30\x98\x99\x4c\x35\x2f\xe2\xe8\x2f\x93\x57\x56\x73\x60\x41\xc1\x1a\x51\x8a\x1b\xa9\x5f\xc7\x54\x22\x3f\x4c\x10\x96\xf9\xbe\xd1\xf2\xa3\xef\xc7\x59\x7c\x43\x76\xbb\xdd\xaf\xb3\x09\x2d\x52\x81\x41\xde\xbe\xad\x36\xfa\x93\x55\x59\x0b\xea\x84\xba\x1a\x68\xcf\xcc\xc2\x16\x43\x00\x2d\x38\x47\x5e\x57\xdd\x20\x9f\xfb\x63\x53\xe5\x9f\xad\xf9\x5a\x68\xcd\xb2\x49\x8f\x7b\x77\x79\x35\x12\x1c\xe3\x5a\x80\x95\x48\x0c\x96\x87\xe0\xe9\xc4\x75\x96\x44\x88\x5d\x85\x5a\xc7\xd1\xdd\xe3\xed\xe4\xcd\xca\x04\x8d\x49\x5f\x38\xd9\xbd\x80\xd3\x45\x9d\x8e\xb1\x59\x90\xaf\xbb\x87\x9f\xa8\xc8\xe0\x05\x7a\xfe\x5a\xcd\x3b\xd9\x5a\x12\x16\xa4\x97\xef\x9c\xc2\x02\xae\x54\xd8\xe9\xec\xd2\xa5\xcd\xec\x69\x49\x2e\x8c\x0b\xad\xb1\x20\x77\x2d\x8b\xe2\x62\xee\x5f\x3c\x1a\x6d\x20\x56\xbd\xd7\x05\x46\x72\x41\x93\x41\x77\x49\x32\x0d\x15\xe4\xbc\xf8\xf0\xfe\xa8\x93\xa6\x9e\x56\x5d\xfa\xda\xbd\x3b\xf9\x01\xce\x2c\x49\xb9\x56\x3a\x45\xc3\xc6\xef\xb2\xb9\xaf\xbc\x4e\x5c\x38\xbf\xd6\x12\x43\xdc\xd2\xf6\x7f\x32\x89\xc5\xb2\x83\xdb\xae\x42\x90\x34\xf6\x53\x0b\x03\x25\x75\xfa\xa9\x75\xae\x02\xf5\xaa\x7f\x6a\x10\x39\xc3\xa0\x7b\x78\xdf\xc8\xa6\x99\x91\x96\xbe\xd4\xf9\xe5\xda\x32\x8b\x3e\xd0\x79\xf3\x03\xbd\xf8\x1c\x26\x36\x9c\xda\x72\x20\xc6\x37\x49\x2e\xab\x93\x2a\xe0\x22\x2f\x0d\x98\x8b\x22\x77\x7a\x0d\x31\x65\x73\xf7\xa8\xd9\xf9\x95\xc4\xdd\xf4\xf2\xee\x72\xd3\xad\x57\xa1\xf6\x6f\x22\xc2\xb0\x55\x8c\xea\x0f\x0f\x76\x5d\x1d\x0e\xa7\x32\xef\x69\xe2\x26\x4a\x35\x27\x81\x04\xe6\x5e\x81\xf1\x0e\x69\x22\x63\xb0\x6c\xb6\x7e\xd8\xdc\xf8\x9e\xca\x57\xd5\x22\x43\xa2\x94\xda\x50\x93\xfb\xd9\x6e\xc1\xab\xf6\x4e\x1e\xa0\x21\x09\xd7\xce\xce\xd7\x2f\x5a\xe1\xef\x86\x24\xde\x76\x6c\x93\xff\x84\x62\x5d\x15\xd5\x14\xd8\x12\xa6\x88\x89\x23\x27\x9e\x8b\x25\xf1\xf0\x90\x4c\x2c\x32\x99\x05\xcd\x88\xe3\x5a\xd6\x93\xa0\xdd\x0f\x4a\x04\xc5\x9a\x0e\x62\xa1\x36\xd5\xbc\xe0\xd1\x8f\x72\xb7\xf4\x5e\xde\x57\x1e\x06\x34\x0e\x3c\x4d\x62\x00\xa1\x76\x3e\x9f\x99\xb4\x34\x67\x67\x02\xe3\x1c\x6e\xe0\xfd\x72\xa2\xa9\xf2\x49\xa0\x69\x52\x12\x61\x37\x61\x5d\x7f\x1c\xdb\x6a\x2b\x9f\xe5\xaa\x86\x52\xce\xec\x07\x4f\x33\x85\x23\x6e\xd2\x58\xe3\x3d\xf1\x65\x73\x57\x3e\x08\x8c\x97\x4f\xbe\x8b\xc6\x46\xb0\xa0\xfa\x81\x78\x9e\x71\xed\xd3\xd0\xd4\x6d\xd4\xd6\x7b\xcb\xae\xfa\x99\x41\x0d\xc5\x0d\xf2\xea\x71\xcd\x63\x82\xb7\xe6\xae\xea\x81\x30\xd3\x59\xc1\xb2\x08\xc3\xb8\x22\x3f\xe4\xe8\xea\x8d\xc8\xec\x3f\xe4\x5b\xbf\xfe\x19\xa6\x8d\x8b\x72\xa4\x5b\xb4\x26\xa9\x9a\xe1\x91\x45\x48\x58\xae\xab\xab\xd2\x79\x58\x86\x43\x82\x38\x1f\x3b\x75\xfa\xc0\x25\x69\x71\x55\x36\x22\x21\x9e\x28\x5b\x3a\x4e\xc0\x27\xfd\xef\x30\x3c\x55\x48\xbc\x43\xd8\xc6\x36\x7f\xde\xb6\x27\x75\x1e\x10\x87\xc1\x56\x63\xe1\x0f\xc2\x66\xb2\x85\x76\x85\xe0\xfc\x11\xa3\x61\x7a\xd7\x33\x01\x78\x43\xfe\xf6\xb4\xda\xde\x84\x5f\x92\x29\xa7\xab\x70\xfd\x77\x57\x95\xf5\x7f\x96\x84\xd0\xc1\xc0\xea\x6a\xf7\x3d\x5e\xe0\xad\x18\x69\xa3\xcc\xb9\x47\xb7\x2f\x93\x79\xaa\x22\x19\xbb\x34\xf9\xc3\x29\x4c\x35\xab\xd2\x6c\xc7\x94\xa4\x49\xa5\xe0\x93\x1b\x62\x12\x27\x8a\xfc\x03\xea\xd3\x61\x72\x7e\x43\x09\x76\x2b\xaf\x36\xdb\x8b\xa1\xbf\xdd\xfd\xd9\xc1\xf3\xfb\xb4\x7a\x2d\x8f\xfd\x41\x45\x18\xf5\x18\x95\x9b\x5d\xff\x57\x2b\xb8\x6f\x3c\x75\xbb\x57\xd8\x19\xfc\x51\x88\x78\xea\xa3\xcb\xfb\xca\xcc\x43\x21\x03\x89\xc2\x15\x56\x1a\xe3\x01\x2e\x21\x62\x99\xdd\x7a\x4b\x34\xce\x68\xdd\x7d\x0d\x6a\x64\x07\xf2\xfe\xa7\x54\x11\x88\x0c\x4d\xe5\x60\x70\xec\x54\x1b\xc2\x4f\x05\x12\x3b\x70\x15\xc8\xba\xf8\xb8\xc8\x6b\x57\x8b\x78\xec\x35\xbc\x39\x10\x4e\xb0\xc8\xb9\x79\xbc\xf9\xe7\x95\x77\xff\x18\x8e\x25\xa9\xb7\xd0\x0c\x0c\x83\xe9\x97\x13\x43\xa9\x8f\x05\xbf\xc9\xc3\x90\x71\x0f\x23\xe2\xc8\x51\x53\x8e\x55\x3e\x2f\x21\x43\xcc\x84\x30\x63\x2f\xb2\x31\xfb\x00\x62\x4e\x94\x0f\x1a\xfe\x00\x78\x2d\x3e\xbc\x32\xc3\x46\xd6\x6d\xae\xf3\xa3\x2c\xe7\x84\x06\x88\x25\xc3\x75\xef\x1b\xb4\x5b\x28\x8a\xd0\x17\xf4\x56\x25\x61\x90\xca\x50\x6e\xb5\x77\x3c\x59\x3f\xdc\x6d\x56\xf7\xff\xd8\x3f\xdd\xdf\x3e\xac\x7f\xdf\xaf\x76\xfd\x48\xe3\xbc\x4a\xfe\x07\x75\x75\xd3\xbf\xf0\x90\x46\x14\xfb\x56\x25\xfc\x9c\xc8\x1a\x41\xca\x04\x42\xd4\xda\x6a\x8b\xb3\xb7\xff\xbb\x31\x36\xee\x13\x4e\xef\xc7\xb6\xb8\x16\x40\xea\x0d\x63\x6f\xee\xaf\x6f\x6f\x7e\x84\x13\x50\x62\x12\xd1\xe3\x0a\x6c\xfe\xdc\x0c\xb8\xa4\x30\x84\x27\x98\x24\x07\xbc\xf0\x10\xd2\xff\x9e\x97\xcf\xdd\xfe\x79\x4e\x51\xfe\x8c\x34\xf7\x29\xde\x66\x00\x00\x01\xcd\x08\x52\x70\x83\xd2\xc9\x57\x60\x7b\xa0\x0a\x74\x12\xd8\x18\x63\xcd\x9e\xe9\x30\x16\xc5\x89\xaf\xc3\xdc\xac\x1f\xe4\xc8\x55\x7c\x94\x9f\x01\x8b\x89\x72\x8e\xb2\xd8\xdf\x1f\xbf\xf0\xc0\xb2\x18\x5f\xc4\x46\x76\x81\x44\x37\xcd\xe7\xcc\x0a\xe0\x69\x8a\x34\xa5\x02\x64\x97\xd2\x7e\x93\xc3\x73\xea\x12\x67\x24\x5d\x74\x0f\xd5\xb3\x42\x67\xea\x61\x1c\x38\xd8\x38\x1d\xea\x90\x9f\xfc\x62\x41\x74\x88\x35\x2e\x4e\x79\x61\xc6\x3d\x8c\xe9\x4b\x20\xb8\xf3\x9b\x3c\xc8\x9f\x5b\x59\xc0\x14\x00\x0f\x19\x4b\x30\xc6\xf1\xdb\x66\xaf\x30\x7a\x66\xc3\x37\xfb\xfe\x2c\x8b\x11\x57\x61\xaa\x47\x50\xa7\xfe\x9d\x92\x24\x31\xfe\xb2\x7c\x02\x80\xed\xfd\x6b\x80\x45\xdc\x06\x48\xad\x9d\x34\xb1\x6c\x01\xb1\x8e\xfd\x89\x2c\x58\x1d\x30\x0c\x41\x65\x2d\x1c\x54\x82\xd9\xc1\x99\xdd\x51\x16\xc6\xba\x68\xcb\x19\x34\x68\xe1\x56\xeb\xde\x9f\x2f\x6f\x5f\x6e\xab\xf3\x48\x7e\x12\x6c\x81\x16\x46\x38\xf2\x7c\xbb\xad\x74\x2e\x0b\xdf\xae\xda\xbc\x7f\xe6\x69\xd3\x7f\x10\x30\x71\x51\xfd\x75\x6b\xc5\x70\xe9\x6f\x83\xdd\xb8\xff\xbb\x89\x08\x89\x27\xc6\xd0\xd7\x08\x84\xb4\x50\xcf\x0c\x9c\x39\x40\x94\x60\x51\x0b\x11\x65\x58\x54\x3e\x27\xdf\x03\x44\x12\xf3\xb0\xb9\x4c\xd0\x4d\xe9\x50\x9a\x9f\x4c\x2a\x88\x33\x84\xee\xae\x1f\x6e\xee\xb7\x01\x25\x1b\x2e\x12\x14\xa7\xbd\x08\xf4\x1d\xb4\x2f\x95\x59\x5d\xdc\xf4\x47\x8d\xb3\xc1\x6f\xa1\x69\xf7\xb6\x3a\xd5\x37\x25\xe2\x63\xaf\x65\xd1\xc0\xd5\x7f\x6f\xab\xfe\x25\x00\xeb\xe8\xda\x48\xa1\x79\x2a\x9b\xd0\x73\x09\xc7\x6d\x44\xa4\x93\x59\x2b\xa0\x85\x47\x78\x3e\x7f\x8f\x2d\xa5\x88\x51\xe9\xb6\xf5\xaa\xfe\xc5\x63\xb7\x51\xe2\xcc\xa4\xbb\x5d\xc0\x23\x96\x43\x13\x39\x8c\xe0\x4e\x22\x74\xfd\x22\x51\x84\x77\x7c\x3d\x96\x18\x97\xfe\x1d\xf2\xd2\xbf\x3b\xd7\x55\xed\xe7\x40\xd8\x06\x6d\xcc\x53\x11\xf0\x6e\xf9\x4f\xa8\x77\x1f\x47\x18\x0e\x0a\x17\xdb\x78\xbd\xe8\xaf\x48\xee\x93\xc7\x68\x13\xc3\xf1\x59\x23\x49\xf3\xf9\x34\xfb\xa5\x67\xa4\x84\x4f\x7e\x7f\x62\x0c\x0a\xdf\x78\xe4\xc1\xaf\xc4\xa1\xfc\xa7\xd2\x28\x49\x65\xb0\x59\xcd\xdb\xbf\x4a\x03\xdb\x16\x64\xb7\xe7\xdd\x94\x6e\x56\xfd\xa2\xa7\x63\x29\x73\xf6\x27\xcf\xd0\x6e\x65\x79\x83\xb1\x27\x56\x43\xc6\xf1\xb1\xa5\x5c\x25\xae\x56\x3d\x5e\x46\x2d\x23\x12\xb5\x01\xbe\x4b\x95\x0f\xf7\x99\x31\x9e\x05\x3c\xe5\x4b\xb7\x03\x2e\x9a\xe3\x4c\x5f\x44\xcb\x98\xd3\x1d\x51\xd0\xb4\x08\xc1\x3b\xb5\xce\xc1\xab\x3f\x2b\x07\xd9\xab\xb9\xa3\x20\x2b\xae\x26\x4b\xa9\x91\xe5\x24\x92\x41\x97\x66\xd0\x9b\x0a\x07\xa5\x65\x2e\xd2\x96\x85\x19\x62\x20\xcb\x55\x82\xbc\x79\x44\x6b\xf9\x06\xf9\x2c\xb6\xb0\x5d\xea\x33\x76\x35\x9e\x64\x87\x56\x28\x11\xc4\xb6\xbb\xdc\x72\x7d\x6a\x2b\x6b\x47\x6b\xa2\xcd\x68\x86\x94\x71\x59\xb4\x50\x6f\x00\xea\x5d\xd5\xfd\xaf\x73\x83\x3b\x16\x52\x8f\xf7\xc5\xb9\xf0\x25\xb7\x99\x88\x70\x92\x0c\xa5\xd2\xc5\x6a\x90\xcd\xa4\x74\x86\x54\x27\x93\x23\x53\x75\x76\x58\x27\x98\x52\x63\xca\xbd\xaf\xec\x7e\xdb\xca\xd7\xfe\x1a\x65\xc4\x08\x0c\x5b\x9b\xdf\x64\xc4\x6c\xd6\x4b\xe2\xa4\x9c\x6f\xd6\x0f\xdb\x13\x1a\xf2\xf4\x9f\x27\x1a\xed\x02\xe1\x0d\xeb\xee\x83\x71\xcc\x17\x9a\xc8\xa3\x9d\xdd\x4a\xea\xea\xc1\x77\x79\xd9\xbd\x0b\xfd\x69\x2d\x70\x33\x11\xf3\xef\xf5\xd9\x97\xae\x4f\x45\x0a\x7a\x76\xa1\x97\x9a\xf2\x87\x74\x4c\x90\xf8\xf3\xec\xc5\x81\x9a\x5b\x28\x9f\x7b\xd5\x19\xab\xd3\x24\x1a\xbb\x9b\x4d\x9d\xdb\xb8\xd5\x22\x8e\x03\xf5\x55\xd6\x23\x90\xe7\xec\x2e\x1b\x65\x31\x42\x41\x15\x66\x07\x15\x31\xd3\x97\x0a\x80\x53\x5f\x69\xfa\x86\x90\xac\x62\xd5\xb6\x75\x80\xc6\x8d\xf2\x66\x6b\x99\x63\x9c\xaa\x2e\x8a\xb8\x59\x46\xf5\x88\x88\x10\xe2\x3c\x11\x2a\x44\x4c\x4c\x8b\x47\x22\x22\x71\x84\xbf\xfb\xa1\x32\x05\xa8\x89\xe6\xb1\x88\x48\x1a\x69\xd9\xdf\xaf\xdc\xc0\xa6\x00\x33\x53\x73\x12\x11\x61\x1a\x5f\x91\xc0\xab\xbf\x04\x9d\x1f\x64\x11\x80\xbf\x0b\x6b\x94\x88\x88\x48\x83\x98\xdc\x3d\xbc\x9f\x67\x86\x22\x8a\x69\xc4\x7d\x9b\xf3\x5b\xfe\x06\xe5\xa3\x0b\xca\x06\x03\xe0\xde\xcb\x33\x7c\x80\x33\xac\x57\xf4\x6a\x31\x32\x37\x0f\xa7\xaf\xe1\x46\x22\x4a\x78\xec\x25\x2b\x11\x38\xd6\x67\xe8\x22\x4a\x54\x8a\xd1\x83\xab\x3f\xbb\xec\xfd\x57\xba\x2f\xb3\x93\xa7\x69\x82\x4f\x3b\x98\xd4\x5c\x6c\xef\x96\xec\xd4\x97\x9d\xbb\x44\x94\x4a\x16\xfb\x95\xc3\x16\xf2\x39\x5c\x58\x0a\xae\xce\x82\x0c\x01\x9c\x48\x77\x39\x4a\x19\x0e\x6e\xf5\xdd\x20\x22\xc7\x5a\xee\x17\xce\x5f\x7c\x38\xec\x64\x39\x1c\x4e\x60\x5d\x95\x25\x7a\x7f\x2f\xb6\x6c\x45\x44\x55\x84\x41\xc9\xfd\xfa\x71\x32\x3f\x58\xec\x6c\xe9\x94\x34\xcf\x50\x8f\xa1\xac\x22\x62\x32\xc2\x37\xde\x80\x2e\xf2\x12\xd0\x85\x00\xbd\xed\x67\xcf\x99\xa9\xde\x14\x7c\x53\x55\x05\xae\xdf\x4d\x38\x09\x8f\x39\x06\x00\x5e\x5f\xb8\xff\x38\x09\x9f\xe6\x69\x0a\x7e\x96\x60\xb8\xba\x6a\x1c\x03\xca\x1f\x16\xca\x62\x05\xdc\x17\x80\x9b\x8b\x0f\x67\xbc\x15\xde\x7b\x11\xc9\x34\x41\x70\x86\x92\x0d\x8c\xb4\x75\x44\xa4\x88\x75\xc5\x6b\x14\x25\xe9\xcf\xa8\xb8\xfb\x59\x41\x07\x72\x2d\x47\xbe\x56\x5e\x4e\x7b\x79\x32\x28\x91\x45\x66\xa2\x57\x71\x26\x6a\x29\x22\x95\x11\xec\x1b\x5c\x82\x3a\x3d\xaf\xb1\x60\x34\x1f\xc0\x91\x98\xe7\x30\xd6\x5b\x54\x13\x59\x00\x7b\x88\x48\xe9\x84\xd8\x91\x04\xf9\xa6\xea\x1f\x8d\x66\x3a\x68\xb2\xb8\xdc\x0c\xd7\xe4\x7e\x6e\x98\x44\xe1\x5a\x76\x90\xe5\x49\x16\x28\x2e\x31\x48\x74\x05\x30\xd9\x62\x92\x2a\x22\xc3\x69\x94\x86\x68\xaa\x74\x01\xfe\xb8\x26\x26\x22\x88\x2d\x2a\x6f\xdf\xca\xa6\xed\xc5\x5c\xaa\x3a\xac\x85\x93\x1f\x41\x22\x1f\xca\xac\x9c\x65\xed\x71\xa8\x5c\x9f\xf5\x77\x05\x89\x92\x88\x7b\x7e\x91\x37\x88\xde\xd7\x0e\xf0\x16\x7e\x1a\x89\xb8\x48\xc7\x7b\xb1\x2c\x8a\x6d\xae\x8a\x51\xff\xd2\x0f\x24\x2c\xe5\x7a\x9c\x33\xe7\x53\xc2\x92\x20\x44\xda\x54\x0e\x32\xe4\xf2\x67\xf8\x0e\xa2\xdd\xc2\xd5\x82\x3c\x90\x09\xd6\x47\x90\x98\xb1\xa4\xbb\xb5\xe5\xca\x6f\xc2\xfd\xed\xf4\x03\x12\x23\xa4\xab\xb8\x7b\x41\xc4\x5d\x75\x37\xaf\x8e\x08\x92\x40\x82\x5b\xfe\x8b\x2c\xde\xba\xf4\xf1\x43\x07\xd0\x93\x20\x69\x0a\xe8\xc3\x79\x91\x17\xc5\x77\x28\xeb\x8f\x9e\x41\x12\x06\x50\x57\x09\x39\xd6\x95\x92\xae\x01\xd8\x1f\x62\xa4\xe7\x52\x4e\x02\xed\xee\x90\xd3\xee\x0a\x6e\x6b\x3f\xbf\xc9\xe6\x5c\xd1\x5a\x10\x9a\x78\x1a\x1b\x8c\x89\xbf\x82\x50\x66\x32\xe7\xc5\x31\x2b\x38\x8b\x39\x36\x67\xee\xd0\x11\x4e\xa0\x35\xc8\x10\x51\xa3\xec\xc9\xb5\xa3\xfb\x3d\x94\x17\xf0\x22\x9d\x33\xc0\x23\xbc\x2d\x89\xe4\x4f\xf8\x0d\xfd\xbc\x09\xde\x55\x3d\xd2\x3c\x89\xa7\xff\x19\xbe\xd9\xb8\xbd\x6a\x7b\xb5\x7e\xb8\xbf\xdc\x6f\x9f\x36\x9b\xdb\x7f\xf4\xbf\xcb\x88\x24\x64\xf3\x08\x40\xd8\x81\x3c\x3c\x95\xce\xf6\x78\x8c\xd1\xf6\xe3\xb9\x4e\x30\x44\xda\x1f\x2a\x93\xdb\x8f\x5d\x75\x7c\x3a\x9e\xab\x7a\x0b\xc2\x8d\xc2\x59\x14\x10\xe0\x25\x82\xf2\xce\x1a\xaf\xa3\xc2\x8b\x20\x99\x89\xc7\x9f\x79\xac\x54\xb5\x5c\x84\x10\x44\x26\x56\xa7\xa1\xec\xf2\x25\xef\x58\x10\x99\xda\xd8\xdb\x3d\x98\x6e\x83\x5c\xac\x3c\x7e\xf2\x35\x40\x4d\x14\x88\x69\x85\xb9\xed\xa2\x87\x7a\x36\x99\xa5\x4d\x4c\x37\xe9\x5e\xf3\xb6\x75\x02\xd6\xbb\x2a\x20\x51\x67\x37\x45\x25\xce\xa2\x1d\xf5\xe3\x27\xd3\x4b\x31\xea\x21\x5b\xf5\x21\x47\x85\x05\x59\x42\x79\xe6\xbb\xef\x47\x6b\x26\xb9\x43\x52\x8e\x0c\x4e\x04\x31\x89\x32\x34\xf0\x78\xbb\xe4\xd5\x6f\xfd\xab\xe5\xa6\xa9\x20\x46\x39\xd6\xb0\x13\xba\xe8\x26\xe0\xf9\x3a\x01\x86\x20\xe3\xf9\x1f\xd0\xae\xca\xaa\x7d\x81\xfa\xa9\x81\x22\x78\x55\x86\xaf\x06\x9b\x06\x28\xd9\xca\x31\x37\x2f\x65\xff\x5a\xda\x8c\x62\x48\xb8\xba\xbd\x7d\x58\xef\xb7\xeb\xfe\xef\x8a\xc7\x5e\xe6\xe4\xb1\x6f\x9c\xf4\x9b\x27\xb1\x5a\x61\x2b\x68\x75\xac\x8a\xa2\xea\x96\x80\x01\x21\xf9\x65\xdc\x12\x47\x11\xcd\x6c\xef\xf0\xea\xfd\xe2\xaf\xab\xda\xc7\x19\x8b\x3d\x19\x11\x47\x9c\x29\xe6\x57\xc4\xf5\x83\xc7\xc4\xfe\x36\x1b\x93\x39\x60\x72\x88\x90\xdd\xe2\xdf\xe3\x7a\x46\x72\xab\xd3\xcf\xc5\xa9\x4b\xcf\xdc\xcb\x87\x16\xd4\xdb\xd5\xad\x27\x17\x88\x38\x36\x11\x4a\x65\xbd\xc0\x4f\x3c\x6d\x55\x14\xae\x80\x1f\x06\x50\xab\x71\xf3\x75\xca\xe1\x93\x48\x25\x66\x24\x8b\x03\x95\xd5\xd7\x91\xeb\xfc\x7f\x93\x8a\xf5\xec\xfe\x30\x99\xc6\x4e\x0f\x42\xed\x75\x65\x72\x0d\x16\x15\xa8\x17\x13\x4f\x11\x33\xc8\xb0\x6f\xf8\xb4\x5b\xc7\x77\xff\xd8\x85\xef\xe5\x84\xe3\xec\xf9\xe6\x6a\x47\xdd\xfb\xfd\xb7\x01\xc0\x14\x06\xb1\x0c\xf1\x1e\x26\x38\xed\xc2\xe7\x4e\xea\x22\x16\x9c\x60\x82\xd3\xa7\xb7\xce\x85\x7c\x76\x4e\x21\x9d\x29\x2f\xb6\x89\x76\x93\x44\x58\xc4\xc2\xa6\xd2\x3b\x04\x55\x6f\x33\x7e\xfe\xb2\x98\x82\x88\xb3\x44\x4a\xf0\x7a\x85\x63\x40\x7d\x38\xcc\x08\x0c\x7b\x87\x0f\xe4\x3f\xf9\x05\x99\x4a\x10\xa4\xb5\xab\x0e\xaa\x2a\x64\xb8\x2a\x19\x29\x54\x5e\xf1\x90\xb4\x51\x5c\xb1\x2a\x8a\xd9\xd7\x49\x70\x36\x9b\x85\x6c\x1c\xc2\x7e\xff\x26\xbe\xcb\xe6\x65\xef\x87\x85\x73\xaa\x98\xeb\x2c\xdc\xff\x43\x3e\xc5\xe5\x8a\x58\x6b\x40\x6f\xa9\xfd\x51\x7e\x2c\x29\x24\xfb\x68\xcf\x8f\x36\x89\x44\x3c\x9c\x2c\x0a\x0c\x44\x9d\xb5\xd8\x99\x0b\x88\x88\x0d\x25\xd0\x83\x70\xef\xbd\x5d\x70\x38\xc6\x0d\xf6\xcc\xf6\x87\xbc\x9c\x6d\x1c\xb1\x91\x29\xc2\x8f\xd5\xe9\x63\xf8\x80\x65\x89\x4f\xee\x9a\xd0\x07\x9d\x96\x36\xc3\x38\x25\xdd\xae\x53\x23\x45\x7b\x57\x3d\x56\xc5\xc4\xa0\x5d\x24\x91\x60\xc2\x57\x52\x36\xf5\x52\x44\x99\x44\x86\x22\xd5\xd1\xa5\x4a\x8f\xd0\x7d\x5c\x0f\x78\x58\x91\x44\x10\xa3\x10\xb3\x3a\x79\x1c\xe4\x7c\xe1\x4d\x22\x60\xa1\x8c\x7f\x5d\x03\x20\x7a\x03\x03\x9d\x4f\x0d\xf8\x44\x12\x59\xe7\xa2\x84\x51\xec\x6d\xb7\x5d\xf9\x03\x44\x68\xe5\xb5\x24\x6e\xcc\x4e\x96\xaf\x41\x76\xd6\x1f\x4f\xa2\x98\x39\xa9\x2d\x24\xc2\xbb\xca\xd7\x3e\x8e\xf6\x7f\xed\x02\xdb\xe0\xdb\xde\x8d\xd3\x18\x31\xb9\xe9\xb9\x72\xee\x2c\x2e\x2e\x9a\x5e\x49\x42\x1d\xc3\xd1\xd5\x77\xdc\x7b\x78\xd6\x85\x10\x49\x22\x92\x90\xb6\x3d\xca\xb2\x3a\x8c\xad\x58\xbb\xa3\x9c\xb2\x51\x64\xb9\xaa\xd5\x88\x8f\x21\x92\x44\xa7\x41\xa9\x12\x67\xf9\xc5\xc7\x45\x6e\xc6\x38\x13\x91\xb0\xcc\x11\x8e\x7a\x3d\x6c\x72\xd5\xbe\x6c\xc2\xbc\x4e\x98\x75\x96\x72\x8d\x2c\xa0\xc1\x46\xc7\xec\x77\xf0\x88\x32\x8f\xf1\x32\xbe\x6f\x3e\x7d\x4c\x9c\xbb\xde\xed\x7e\xbf\xcf\x9d\x85\xc9\x12\x30\x6d\xf6\x19\x01\xe0\x57\xf6\x8b\xaa\x2a\xe2\x70\x35\x1c\x62\xd4\xeb\x75\x7b\xe4\x83\xbd\x85\xe7\xfe\xb7\x8a\x4c\x38\x33\xcf\x53\xbb\xab\x7a\x09\xb5\x80\xc2\x43\x53\xf5\xe9\x95\x0b\xe3\x3a\xb0\xaa\x90\xfa\xf5\xac\x7a\x2e\x12\x49\x28\x04\x87\x77\xb7\xb7\xcf\xb9\x3a\x22\x91\x71\xa4\xe2\x99\xd2\xda\x7c\x08\xd3\x18\x22\x87\x55\xf4\xba\xaa\xaf\x7e\xba\x96\xc5\x27\x48\xea\xf0\x41\xd1\x37\x51\x46\x54\x28\x7f\x50\x45\x29\x92\xe6\xba\xd3\x14\xe1\x7c\x43\xbf\x55\x24\x8a\x48\x0f\xb7\xb9\x29\x37\xb2\x69\xae\xf3\x62\x6e\x80\x2a\x12\x25\xa3\x60\x05\x7f\x91\xb7\xba\xca\xcb\x8b\x3a\x37\xcf\xf3\x9f\xa0\x45\x8a\x6a\x35\x77\x37\xf7\x53\x35\xa3\xee\x90\xc4\x14\xf6\xe9\x18\x8a\x74\x0b\xee\x5b\x22\x31\x3e\x92\x6f\xac\xfe\x02\x3b\x23\x12\x93\x52\x35\xa0\xe0\x5d\xf1\x2d\x1c\x12\x4e\x79\xa4\x2a\xe1\xa5\x3a\xf5\x7f\x86\x24\xc3\x57\xe0\x35\x2f\x8a\x4d\x15\x44\x63\x44\x02\xdc\x69\xe3\xf9\x3b\x03\xb2\xf8\x67\x3e\xce\xf9\xc2\x30\x99\xa0\x89\x8f\xca\x4b\x83\xf2\xbe\x58\xa9\x1c\x5e\xc5\xc9\x8c\x01\xb0\x28\x8f\xa2\xab\xc3\x21\x2f\x9f\x0b\xa8\xb7\x50\x14\x8d\x5f\x2a\xb6\xbf\x3f\xa1\xe0\x68\x5d\x3d\xca\x56\xde\x94\xcf\xf5\x02\x63\x66\x56\xe8\x5f\xba\x07\x96\x28\xe2\xca\x93\xcf\x35\x92\x46\x3f\x6f\x79\x8a\xc4\x26\x04\x6b\xd6\xba\x2a\x9b\xd3\x3c\x41\x48\x2c\x8d\x44\xa8\x87\x74\x0b\xd7\xd8\x18\x4b\x24\x96\x65\x08\x9d\xfc\xbe\x19\x87\x8f\x89\x95\x19\xca\xff\x61\xb5\x18\xe5\x32\x96\xb7\xd7\x34\x22\x16\x35\xd0\xff\xd3\xcd\x9b\x6e\x83\x38\xe7\x81\x87\x91\x89\x34\x69\x1f\xcd\xb5\x33\x47\x4b\x91\x92\xc8\x62\xe7\xe5\xa5\x8b\xd7\x7d\x53\x7b\x52\xbe\x4a\x49\x26\xc1\xf4\xcb\xd4\x10\xe3\xb5\xf2\x39\x00\x68\x44\xda\xc5\x0e\xdc\x21\x34\x5a\xf8\x39\xca\x53\xd3\x6e\x73\xf3\xa0\x28\x74\xfa\xcd\xcb\xe7\xd5\xb8\xef\x3b\x99\x14\x69\xa2\x12\x94\x3e\x0a\xcb\xaa\x2c\x42\x06\x1d\xce\x97\x92\x18\x93\xe6\x15\xbd\x1c\xdf\xbb\x14\x39\xb0\xff\xef\xff\xfb\x7f\x7f\xcb\xef\xb0\x15\xeb\xc3\xe4\x5f\xc2\x36\x45\x9a\xda\xc4\xe1\xd8\xbb\xbb\x7e\x31\x47\x84\xfa\x41\x34\x73\xf6\xe5\x50\xea\xca\xfc\x22\xf0\x4e\xa9\x49\xac\xf0\x69\x99\xd7\xd3\xbd\xfa\xd9\x42\xd9\x38\xab\xb9\xde\xab\xb1\x1b\x99\x46\xe3\x02\xc5\x6a\x3a\xe5\xfc\x28\x66\x29\xf5\x65\xd6\x9b\xc6\xa1\x2f\xb7\x30\x26\x43\x8a\x94\x4b\x8e\x89\xf9\xb9\x03\xc7\xf4\xd2\x04\xc9\x02\xbb\xe2\x7b\x55\x37\x30\xdb\x1c\xbb\x1c\x0c\xfb\x68\x57\x05\x1c\xf3\xe7\x5f\x1b\x38\x7e\x56\x41\xfd\x72\x97\x49\x85\x22\x92\x8e\xdc\x95\x96\x6f\x63\x46\x18\xba\x3d\xf6\xfc\xda\x6a\xfa\xab\xe6\xc5\x85\x34\x13\x3c\xee\x7e\xdc\xde\x42\xab\x5f\x70\x51\x41\x9f\x09\x54\x79\x9a\x5e\x81\xf2\x2c\xd9\x06\x5a\x17\x25\x7d\xe1\x8a\x25\x52\x95\x71\x6c\xd2\x63\xda\x31\xae\xe4\xcc\xc6\xe9\x34\xc2\x25\xf1\x11\xc5\x16\x17\x16\xa1\xe5\x1f\xaa\x05\xc3\x44\x36\x90\xde\xa7\x93\x20\x54\xc6\x52\x9d\x09\xe4\xa7\x38\xfd\xba\xa0\x5f\x33\x3b\x95\x22\x88\xc2\xbb\xcb\x8d\x29\xba\xc8\xac\x8f\x84\x53\xa3\x5c\xd5\x0a\x0b\xce\xa3\x0d\x2b\x35\x26\x12\x3e\xe3\xf3\x04\xbb\x91\x4b\x60\x77\x38\xc5\xf5\xbc\x79\xa9\x54\xf5\xbf\xbc\x98\xbc\x76\xa0\x63\xd4\x7c\xa9\xca\x8d\xfc\xa8\x4e\x9f\xa4\xd8\x29\x68\xe7\x07\xd6\x05\xf3\xdf\xa0\x8c\x7a\x53\xfd\x59\x50\x93\xda\x54\xe1\xca\x58\x56\xdb\xb6\xaa\xa1\xd9\xf6\x8b\x66\x6a\xa9\x44\x35\x8f\x6f\x23\xcb\xff\xb1\x6b\xf5\xe4\x44\x34\xca\x0c\xfa\x33\xb9\x70\x70\x2d\x8f\xcd\xaa\x34\x4b\x16\xcb\xcb\xcf\x84\x92\x8c\x20\x2b\xea\xae\x2a\xc1\xc8\x55\xa1\x65\x21\x97\x56\x06\x1a\xcb\x98\x87\x99\x14\x28\x66\x9e\x3b\x39\x7f\x09\x86\xe8\x92\xc6\x40\x71\xa9\xdf\x56\x85\xac\xef\x57\x9f\xd7\x43\x69\x22\x1c\x36\x01\x99\xc3\x8e\x4a\xea\xe6\xea\x4d\xb9\x2e\x43\xf4\x4b\x53\x2a\x64\xb8\x39\xbe\x67\x85\x2b\xf4\x0e\xea\xc3\xc4\x1f\x50\xd0\x94\x65\x83\xf7\xe0\x4d\x60\xfd\x0b\x9a\x2a\x83\x29\xcd\xf1\xad\xdd\x1f\x8b\x43\xbb\x6f\xfa\x7b\x4f\xa9\xe0\x98\x8c\xc1\xe1\x58\x54\x1f\x00\x5d\x50\x37\x26\xbd\x75\x23\x54\x10\xe7\x78\x28\x27\xd0\x36\x0c\x4d\x47\xb8\x4e\x41\x59\xe4\x7c\x1d\x55\x55\x9e\x9a\xe4\x6a\x08\x9b\x29\x42\x42\xbd\xc6\x41\xfe\xdf\x53\x6e\xf2\xf6\x03\xf5\x3d\xce\xd9\xdd\xff\xc7\x7f\xfd\x17\x88\x58\x62\xb1\xe5\x54\xe6\x6d\x93\x46\xde\x71\xeb\xea\x67\x5b\x87\x24\x95\x66\x89\x92\xa1\x87\x58\x9e\x0e\x93\x2b\xcf\x52\x9b\x3a\xb0\xdb\xfb\xa4\x32\x41\x33\x9b\xe2\x4f\x0a\x2e\x2f\x3f\xe0\x25\xd7\x43\x25\x61\xb2\xfb\x4c\x56\x22\x2a\x75\x86\x35\xa3\xbd\x96\xe5\xd6\xa1\xec\x1e\xde\xfa\xe0\x8b\x6a\x0a\x19\x1b\x09\x3b\xb8\xbb\xbe\x1a\xda\x15\x0b\x53\x46\x6b\xc7\xd5\xff\x3c\xea\xf7\x03\x8d\x57\xbb\xdd\x6d\x77\x0f\x8f\xff\x5c\xbf\x85\xfd\xbc\x3b\x80\xed\x9c\x4b\xf9\x71\x53\x6e\x41\xf7\x0f\xc8\x70\x83\x88\x08\xaf\xa1\x35\xa0\x95\x66\x27\xce\xb2\xd8\xa7\x3f\x97\x95\x9e\x1f\xd4\x4c\x0f\xc6\x05\x31\xf9\x3d\x6f\xdb\x1c\x9a\xe9\x7c\x02\xc2\xdc\x16\x71\x3a\x1c\x26\x1e\x18\x82\x42\x42\xb1\xd4\xe8\x5e\xed\x33\x08\xce\xd2\xeb\x06\x5d\x56\x1e\x82\x98\x1b\x54\x47\xd9\x81\x3c\x4c\x12\x32\x6a\x63\x8d\x91\xfd\x4a\x6b\x28\x4d\xbe\x96\x4d\x23\xff\x7f\xd6\xde\xa4\xb9\x71\x1d\xcb\x1f\xfd\x2e\xff\xd5\x5d\xf4\x82\x33\x80\xb7\x93\x65\x39\x53\x7d\x3d\x95\xa5\xcc\xac\xfb\x3a\x3a\x14\x07\xc0\x81\xcd\x4a\x8a\x54\x91\x94\x9d\xae\x4f\xff\x82\x07\x00\x27\xd1\xce\xfb\x8f\x78\xbd\xb8\xd9\x65\x42\x14\x45\x82\xc0\x19\x7e\xc3\xca\xda\x36\xe4\xaa\x9f\x1e\x86\x01\x01\x45\x9d\x17\x5b\x17\x9e\xb4\x03\x07\x80\x67\x41\x98\xa5\x6a\x30\x07\xdc\x6a\x2c\xdb\xdc\xe4\x33\xc9\xff\x6e\x1c\x30\x17\x70\xef\x7f\x95\xf7\xe7\x63\x7f\x02\x6e\x55\x3d\xf3\x16\x8f\xde\xab\xca\x1d\x0a\x23\x43\xab\xe3\x76\xf5\x75\x6c\x6d\xcc\xb3\x28\xb0\xc1\xa8\x46\x57\x35\xee\x0f\x24\x48\x34\xff\xd5\x7e\xff\xd8\xc5\x37\x7f\x43\xc4\x8e\x67\x11\x66\xa9\xab\xf7\x5a\x0b\x41\x2b\x97\xb2\xae\xb4\x15\x6e\x1e\xaf\x7f\x59\x9c\x45\x69\x32\x5a\xff\xae\xac\x60\xd2\xe5\x43\xc8\x62\x09\x21\xf3\x2f\xb7\xac\xa1\x7e\x5f\x82\x38\xf0\x2c\x46\x2d\xbc\xc2\x1c\x09\x97\x2e\x5f\x65\x12\x80\xa4\xd6\x0d\x29\x9b\xcf\x78\xf6\x3c\x4b\x22\x87\xfe\x2a\x10\xd4\x0b\xd1\x3d\x46\xda\xe8\x3c\x4b\xb4\x65\x39\x8d\xac\xc5\xfa\x23\x9c\x2a\x24\x44\x7a\xc4\xdd\x20\xb1\xcb\xb3\x34\x88\xe3\x71\x7c\xda\x53\xcd\x66\x3f\x21\x4d\x8d\x97\x72\x73\xd5\xd6\x05\x12\x17\xcf\x52\x96\x82\x45\x06\xe9\xb3\x72\x6d\x79\x4d\x55\xaa\xc9\xaa\x95\xa5\x10\x51\x97\xaa\x69\xeb\x7d\x65\x03\xfe\xc9\x33\x48\x15\x23\xa5\xa3\x36\x77\x10\x5d\xf7\xf7\x2c\x4e\x2d\x0b\x58\xd5\x70\x22\x6a\x45\xbf\xb0\x64\x59\xa2\x28\xff\x1a\x6c\x59\x9c\x83\x5d\xf7\x88\x17\xca\xc3\xbf\x03\x91\xba\xd3\x32\x54\x04\xd0\xd4\xd8\x05\xca\xb4\x76\x3f\xcc\x8a\xe9\x19\x8f\xac\xcc\x79\x17\x6d\xfc\x2d\xdb\x3a\x9e\x75\x53\x9c\x24\x69\xf0\x75\x5d\x95\x3b\xf5\x52\x55\x85\x63\xb4\xfa\x11\xdc\x86\xf1\xe6\x5c\x6a\x77\xcf\x57\xcf\xa3\xf7\x92\x83\x24\x3c\xd3\x5f\xe7\x23\xd6\xf9\xf0\xba\x89\x8c\x7b\xe7\xd1\xd5\x73\x97\xa1\xdc\xa1\xce\x61\x10\x81\xe7\x99\xe0\x16\x80\xbd\x6b\xcd\xd9\x7a\x18\xf4\x61\xb1\x1b\x01\x41\x8c\xa3\x96\xcd\x1d\x9c\x4e\x56\x06\x9d\xc8\x73\x1f\xcc\x5f\x60\x98\x49\x47\x21\x9f\x4e\x40\xc9\xa2\xd0\xed\xa5\xe5\x48\x8c\x82\x67\x2a\xe4\xb4\xac\x1e\xf3\xb2\x5b\xa4\x4e\xed\xc8\xc6\x92\x67\x2a\xce\xe2\x49\xd9\xd8\xf6\x4f\x3f\x6f\xee\x64\x2a\x0d\x4c\xec\x89\x93\x56\xcb\xe1\x6b\x75\xae\x9f\x29\x74\x1c\x37\xdb\xb8\xfb\x80\xce\x80\x38\x76\x06\x14\x15\xfd\xc7\x0f\x41\xa3\x05\xcc\x1d\x4e\xb0\xec\x79\xca\x33\xcc\xac\x71\xda\xcb\xb9\x7c\xae\x67\xe9\x47\x86\x82\x91\xb3\xf8\xf7\xdb\x6f\x93\xf5\x0d\xc1\xda\x53\x5a\xf0\xbd\xfb\xa3\x51\x8c\x48\x67\xf4\x2b\x2f\x54\xac\xec\x20\x16\x04\x8a\x0a\x71\x9b\xef\x9e\xd4\xc0\x59\x20\x2c\x64\x5d\x52\xab\xef\xaa\xf7\x86\xce\x27\x76\x58\x9c\x05\x92\x5b\x7b\xce\x9e\x45\x39\x69\x39\xb0\x40\x6b\x92\xc7\x7d\xdc\x3c\xad\x37\xf7\xfb\xc3\xf5\x96\x9c\xfa\xfc\xe1\x30\xb0\x6f\xdf\x6d\xf5\xfc\x81\x7b\x94\x1f\x28\xac\x48\x61\x8d\x25\xbe\xdd\x40\x7d\xc4\x7a\x8d\x75\x6b\x17\xde\x0f\x0a\xaa\x2c\x54\x09\xe9\x11\xda\x56\x48\x0f\x0a\xf7\x5f\x1e\x25\x11\x71\x4e\xfe\xcc\xd5\xcf\xee\xde\xe8\xfe\x40\x16\x50\xf7\x8d\x2a\xd7\x54\x58\x1f\xf1\x03\xbb\xc3\xc2\x72\x2d\x6e\x27\x3b\x0c\x8b\x98\x26\x10\x11\x21\x40\xa6\xae\xea\x9c\xc5\x8a\xd1\x5a\x7b\xe8\xd5\x00\xac\xe5\xf8\xec\x59\x24\x22\x0b\xb3\x01\x24\x32\x0e\xde\xfd\x08\xb0\x26\x1a\x7b\x03\xf5\xb1\xff\x23\x66\x14\x14\xaa\xaa\x54\x30\x27\x6c\x8e\xd7\x41\x96\xf2\x4c\x78\x37\x48\xa8\x2f\x4a\xbf\x2c\x8b\x42\xa5\x2c\x7a\xf1\x1e\xdf\x64\x55\xea\xf9\x00\x88\x63\xbb\xf4\x77\x6f\x57\xb8\x9c\xcd\xb0\xcc\xd8\xc6\xbd\xaa\x8e\x26\xaf\x8f\x36\xdb\x9b\x9d\x49\x24\x21\x31\x2b\x54\x8d\xba\xf2\x2e\x5e\x73\xc3\x18\xce\x20\x0d\x52\x36\xf0\x2b\x6c\xe2\xb5\xfc\xc0\x21\x43\x8b\xf8\xc6\x22\xf7\x2d\x9d\x2c\x99\xf4\xc3\x87\xff\xe9\x3f\xc3\x83\xc4\x92\xe5\x09\x41\x31\x6f\xa4\x5e\xa4\xeb\x17\x05\x24\x06\x02\x69\x1e\x7d\xdb\x5d\x1f\xd6\xab\x47\x7f\xdd\x4a\x73\x42\x2f\xd5\xf9\xf3\x4b\x1b\x27\xb3\x1f\x8f\xa1\xf6\xa8\x95\xfb\x2e\x9e\x35\x9f\xc9\x6e\x72\x66\x62\xab\xfc\xdb\x22\x1c\xbd\xf7\xe3\x41\x8d\xdf\x44\x63\xb8\xcc\x06\x0e\x0c\x0c\x91\x37\x0f\xe2\x24\xc8\xfa\x88\xb4\xdb\x52\x96\xe4\x8c\x38\x0f\x98\xf6\x52\xb7\x8f\xdb\x03\xea\xbc\x3d\x84\xbe\xbc\xcd\xc3\x30\x21\x38\x4b\x03\x06\xbf\x60\x4b\x0c\x14\x70\x5a\x85\x37\x45\x55\x5d\x14\xe2\xa6\xcf\x86\x87\x80\xcc\xc9\x2f\x39\x64\xd3\x7f\x8d\x01\x4e\x3c\x8a\x19\xa5\xd8\x50\x14\x4d\xdb\xbd\x19\x83\xcf\x26\xe7\x51\x12\x52\xd7\x3b\x6f\x36\xa7\x4a\xf5\x3b\x13\x8f\x05\xa3\x14\xd4\xd1\x27\x57\xdb\xeb\x5d\x7f\x48\x66\x0a\x7b\x92\xde\xbe\xaa\xd5\x4b\x7f\x48\x09\x22\x04\x9d\x6a\x7c\xfd\x5a\xe9\xa2\x57\xa1\xe1\x3c\x11\x8a\x1a\x02\x56\x15\x66\xa1\xff\xef\xc7\x99\x84\xea\x4d\xf2\xfc\xbe\xa4\xc1\xc6\x79\x2a\x6d\xcc\x47\x8e\x33\x9f\x01\x09\x2e\x93\x93\x2e\x85\xa0\x69\xdc\x27\x32\xcb\x8e\x78\xb3\x1b\x9c\xf1\x98\x76\xa9\xc3\x47\x12\xe2\xdd\x10\x20\x0f\x57\x4b\x0d\xb1\x6e\x3a\x8b\x88\x3c\x9e\xe9\xc8\x23\x04\xb6\x0d\x25\x5b\x43\x94\xca\x99\x4b\x4e\x41\xe6\xfe\xbe\xb1\x28\x05\xe7\x06\xd8\x5c\xf6\x02\x39\x67\xca\xf7\xdc\x6e\x6a\xc4\x55\x91\xbb\xba\x63\xff\xf8\xb9\xe0\x84\xc8\x39\xe6\x65\x8b\xda\xe1\xc6\x9c\x05\x54\xff\x74\xb8\xca\x42\xbb\x62\x74\xcf\x54\x55\xc7\x13\xd4\x78\xd5\x2a\x1b\x39\x7e\xab\x8b\x69\x02\xc1\x45\x02\xa4\x8d\x76\x93\xbf\x4e\x49\x25\xf4\x75\xd6\x7f\xa3\x9b\xbf\xeb\xea\x5c\x37\xc3\x21\x05\x9c\xff\xfd\x15\xc1\x7d\x0a\xa2\x44\xd9\x9e\x46\x0f\x35\x1c\x81\xc5\x39\x87\x8c\x51\x78\xb6\xd2\x7a\x5d\x95\x0d\x96\xed\x85\x65\x14\xe7\x20\xad\x70\x11\x51\xd0\x96\x8c\x43\x38\x97\x71\x4a\xf1\x75\x43\x0a\x6d\xd3\xcd\xd2\x4a\x4a\x0e\xa7\x93\x31\x0f\xbc\x1e\xe2\x69\xdb\xd8\xa5\x73\xf4\x20\xa5\x01\x8b\x3a\x24\x72\xb9\x85\x0e\x7e\x56\xd1\xe7\x2a\x64\x41\x2f\x00\xdf\x85\x91\x36\x7e\x9c\xde\x09\x95\xa5\xc4\x8b\x21\x6b\x94\x29\xeb\x6a\xae\x56\xfb\xd1\xbf\xa3\xe5\x95\x2b\x26\x88\xd5\x05\xb2\xa1\x1b\x7a\x33\xab\x63\x71\x85\x96\xd1\x6f\xcb\xef\xab\xda\x77\x36\xfb\xe0\x93\x6b\x15\x11\x6a\xc2\xa6\xc3\xdd\x3c\x99\xdd\xb6\xff\x49\xff\x77\xf6\x38\x51\xa3\x77\xf7\xfa\xd6\x10\x1b\xfd\x43\x3c\x08\x37\x21\x7a\xb0\x9d\xa3\xdc\x75\xfb\xb6\x37\xa9\x9f\x5e\xac\x89\x2c\x5a\xd1\x09\xaf\x38\xf5\xcd\x05\x3f\x42\x3f\x3e\x96\x84\x23\x69\xeb\x77\x52\xa1\x7f\xaa\x2e\x59\x90\xf3\x8f\x68\x49\xfa\x65\xce\x6e\x61\xb1\xe9\x25\x82\x20\xf1\x74\x3a\xd7\x3e\xe8\xb5\x37\xbd\x45\x11\x95\xe1\x17\x4a\x74\xe3\x57\x4c\x04\x99\xa2\xcd\x0f\xad\x72\x19\xde\x41\x79\x11\xd6\x0e\x0b\xdc\xec\xff\xe3\x7e\xc9\x13\x61\x16\x85\xe1\x00\xc0\x1e\xa3\x9f\x97\x04\x8e\xfd\xa7\x98\x26\x81\xfa\x02\x9a\xf6\xba\x8b\xed\xfc\x4a\x21\x42\x15\x64\x30\xb3\x80\xa3\x36\xab\x3f\x6e\x12\xcf\xf8\x5c\xf7\xd6\x9f\x5c\x44\x26\xa0\xfa\x31\x4d\xa5\xc7\xaa\x1e\x92\x41\x11\x07\x19\xc9\xbb\x2d\x4b\xdd\x8c\x97\x59\x11\x87\xd6\x25\x6c\xff\xb0\x5f\xdd\x3a\x18\xdd\x28\x32\x10\xb1\xc6\x08\x7a\xb6\xcb\xb7\x32\x57\xd5\x2c\xbf\x11\x31\x6a\x12\xad\xb6\x72\xbf\x48\xf2\x82\x7f\xa2\x77\x8f\xfa\x56\xb6\x79\xff\x53\x92\x80\x13\x75\x44\x57\xfb\x3a\x7f\x7e\xc6\x7a\x42\xcc\xe5\x22\x09\x63\xaa\x8e\xae\xab\xbc\x5c\xe9\xd7\xbc\xa9\x6a\xca\xce\x26\x16\x42\x9f\xce\x28\x91\x60\x4c\x22\xc0\x87\x83\xf2\x7e\x0a\x36\x0c\x1a\x73\x5a\xdc\xd8\x94\x19\x4f\x59\x5d\xbd\x43\xd9\x5e\xd7\x55\xde\x6e\x54\x55\x56\xc7\xfc\xdf\x67\x3c\x38\xc5\xaa\xc4\x5f\x5e\x96\x31\x12\x8e\x72\x38\x5f\x5f\xf5\x5e\x7e\x1d\xba\xd1\x44\x4f\x3c\xe4\xcd\xee\xbd\x6c\x5f\xb0\xc9\xff\xd3\xa5\xb1\xae\x03\xb6\xfc\x21\x1e\x30\xaa\x21\x5c\x57\xe5\x42\x75\xdb\x0f\x4a\x53\xe2\x07\x90\x08\x53\x5b\x9d\x4e\x1f\xc8\x87\x72\xc1\x59\xe4\x2b\xb0\xbb\xbc\xbc\x70\xde\x1d\x36\x72\xc1\x45\x48\x2d\x4e\x6c\x5f\x06\xdc\xac\x10\x4c\x40\x3c\xe9\x65\x9c\xce\xa7\x65\xf5\xb2\xe9\x17\x0b\xb4\x5b\x4c\x37\xea\xda\xc3\xa4\x86\x48\x59\x80\x42\x65\x55\xd0\x09\x6b\x4b\xa8\xa7\x53\x31\xeb\xbb\x0a\x19\x5a\x68\x8a\x77\xbc\xa3\x7c\x4e\x57\x6f\xfd\x69\x64\x1a\x90\x0f\xe5\x17\x6c\xaf\xa0\xfc\x89\xf5\x1a\x4a\x9d\xeb\xa9\x01\x31\x17\x12\x02\xe1\xe0\x05\x5d\x04\x7b\xdb\xdd\x8a\xa5\xb7\x41\x85\x11\x29\x7e\xe4\xcd\x97\xf3\xc8\xb3\xb1\x3f\x6a\xf1\x80\x27\x68\x5f\xdc\xec\xb4\x4a\x68\xfd\x71\x2e\x03\x8f\x59\x53\x3f\x27\x6c\x15\x2e\x74\x14\x06\x83\x68\xa0\xdb\xc1\x16\x19\x29\xdd\x58\x4e\x75\xbe\xb2\x6a\x73\xf3\x7e\x75\x7e\xff\x3b\xb7\x5c\x27\x11\xcd\x8a\x9a\xcc\x9e\x71\x10\x5d\xe4\x42\x83\x6d\xdb\x92\x5d\x87\x7f\xc9\x1d\x8d\x9a\xde\x7c\x3f\x10\xd3\x8c\x5a\x5e\x77\xab\x7f\x1e\xd6\xab\xfb\xef\xab\xdd\xe1\x7e\x75\xb7\x39\xdc\x6e\xee\xbf\x78\xee\x22\x17\x26\x56\x14\x75\x9c\xc6\xfb\xcc\xa7\x21\xb5\x30\x1a\xbd\x1c\xc7\xa6\x4b\x14\x15\x8e\x36\x77\x08\x14\xd7\x36\x66\x76\x08\xe7\xd1\x8e\x08\x81\x66\x14\x9e\xc2\x6c\xab\x84\xc0\x40\x64\x37\xd3\xe7\x67\xa7\xc9\xd5\x23\x42\xdc\x90\x30\x8d\x7c\xed\xf3\xea\x5c\x97\x4f\xf8\xef\x33\x36\xed\xb7\xbc\x6c\xef\x06\xb7\x8b\x25\xb5\x20\x0e\x61\x26\xc9\xd9\xe3\x90\xb7\x15\xfc\x31\x06\xdc\xf9\x01\x12\x29\xb7\xee\xd6\xbb\x1b\xaa\x9e\xcc\x70\x82\x10\x2b\x69\xfd\xe8\xcf\xa5\xa6\x02\xb5\xfb\x7b\x92\x49\x6d\xf5\xa2\x9e\xf0\x5f\xb6\xf1\x3b\xfd\x60\x22\x02\x23\xc7\x58\x97\xba\x3a\xee\x6b\x84\xe6\x5c\x7f\x50\x88\x81\x34\x00\x5b\xb8\x85\x02\x69\xf7\x9d\x53\xa1\x39\xa4\x89\x51\xa9\xdf\xb8\x06\x33\x93\xf1\x1e\x09\xa9\x66\x54\x4f\xb0\x7a\x4b\xdd\x2e\xf4\x9b\xe7\x3b\xbb\x8c\x2c\x90\x99\x1a\x0b\xa6\x0d\x42\x0e\x1c\x58\xec\xbb\x1f\x14\x5a\xdf\xc3\xe9\x67\xef\x64\xc5\x81\x65\x2c\xe9\x15\xa8\x3e\x6e\x24\x03\x33\xa1\xc7\xca\x77\xfb\x0d\x11\x50\x16\xf8\xda\xd3\x20\x02\x78\x16\x68\x3d\x40\xd5\x47\xec\xbd\x95\x69\xb1\xde\xfc\x3a\xe5\xf5\xfb\x9c\xc8\xc7\x81\x33\x43\xe5\x31\x3c\x9e\xda\xf7\xfd\xde\xe3\x44\x81\xcb\x24\x62\x63\x23\x4b\xe2\x71\xad\xeb\xf7\xa6\x85\x19\x40\x0a\x44\x6c\x19\x78\x5d\x82\x52\xea\xfc\x35\xd7\x67\x28\xd6\x70\x6a\x3e\x5e\x8e\x41\xf0\x8c\xca\x89\x3f\xf3\xa2\x98\x41\xf3\x97\xa2\x8d\x0f\xd8\x4a\x00\xcc\x3a\xd0\xe4\xcd\xf6\xa2\xce\x09\xa0\xe2\xd8\x3d\x8e\x7b\x67\xca\x38\x16\x6b\x78\xc4\x9a\x34\xfe\xfd\x70\x99\x84\xda\x85\x8e\x8f\x0f\x0f\xb7\x36\xe9\x8e\xfd\x51\x15\x18\xa7\xee\xf3\xf4\xf8\xd0\x25\x01\x53\x4c\x3e\x28\x85\xb4\x52\x9f\xaa\xf2\x3f\xf9\x14\xd5\x09\x4a\x0b\x39\x10\xd0\x6f\x10\x5d\xce\x1f\xcd\x5e\x0b\x9d\x2a\x42\xae\x3b\x9d\xb7\xfe\xbb\xb5\x91\x5a\x7a\xcd\x39\x8d\x35\xb4\x95\x8f\x85\xc0\xa8\x80\xfa\x2f\x37\x0f\x77\x0f\xf1\xf5\x6d\xde\x37\xca\xc1\x68\x2b\xb2\xfc\x02\xcd\x13\xb6\xe7\xfa\xa3\x4c\x02\x0c\x26\xa4\x2b\x31\xf8\xa3\x35\x55\x09\x85\xed\x3f\x4c\xae\x50\x86\x69\x68\xd1\x96\x94\x93\xf7\x7c\x52\x2e\x43\x26\x49\xd6\xb7\x3b\x47\xb7\x32\x4f\x15\x24\xb9\x8c\x12\x49\x4b\xea\x76\x75\xe7\x99\xe2\x87\xab\xd5\x6e\x92\x4f\xc9\x24\x0e\xa8\xb2\x78\xb0\x18\x70\x82\x7a\xba\x5b\xf9\x41\x31\x46\x26\xa9\x16\x91\x5b\x6a\x68\xed\x73\x28\xfe\xe9\x6b\x2f\x13\x61\x75\xc4\xe4\xf9\xfd\xcb\xbc\xf8\x25\x13\x1d\x13\x26\x7a\x73\xcc\xdb\xd1\x7b\xb3\xd5\x23\x95\x60\x37\x34\x8d\x14\x9b\x14\xad\x3f\xe3\x23\x4c\xf6\x5e\x99\xc6\x8c\x8a\x20\x77\xf0\xfc\x9c\x4f\x78\x2a\x32\xcd\x18\x33\x8e\xc3\xfe\x0c\x2d\x6a\xdb\xda\x78\x42\xd2\x66\xe9\x32\xe5\x89\x3a\xcb\xff\x5d\x8f\x43\xa6\x42\x53\xe6\x6d\x67\x9f\xcb\xaf\x3f\x18\x2a\x43\xea\x06\xb6\xd8\xb4\x5f\xa1\x59\x57\x75\x8d\xca\x42\xc2\x6e\xaa\xda\x1a\x33\x8d\x1a\x4c\x32\xd5\xe8\x7d\xc0\x36\x8d\x82\x13\x7e\x1d\x9b\x4b\xba\x41\x2c\x09\x35\x75\xa8\x29\xcd\xaa\xe9\x6c\x77\x0d\x69\x8c\x82\x9d\xca\xcb\x17\xc3\xd2\x20\xb1\xcd\x5b\xb2\x37\xfb\x60\x02\xf0\x44\xe9\xa9\x9b\xf7\x86\x6c\xdd\xab\xf2\xe1\x64\xa1\xd0\x7e\xa0\x31\x54\x46\xef\x01\xac\xab\xba\xfb\x35\xfe\xb0\x40\x1d\xbb\xe0\x46\xe7\x8d\xae\xca\xfe\x47\x0a\xc3\xad\x65\x5e\x37\xe7\xaf\x73\x2f\x03\xcd\x25\x44\x9a\xb2\xe1\xdb\xea\xf9\x2a\xd7\xb6\xb5\x40\xe8\xe2\xdf\xc8\x61\x70\x09\x46\x93\xff\x48\xe9\xa0\xd8\x93\x89\x22\x93\x80\x5a\x43\x2d\xc2\xd1\x92\xe4\x86\x9d\x6e\xfa\xdb\x65\x12\x53\x93\xe8\x40\x3b\xde\xc3\x09\x4b\x22\xab\xba\xa3\x2a\x02\xdb\x52\xac\xca\x73\x63\x49\x7b\x03\x7e\x42\xaa\xd8\x26\x3e\xed\x5b\xb5\x6b\xf1\x34\x42\xd8\x48\x95\x58\x51\x50\xaa\xb9\x5b\xe9\xec\x65\x54\x83\x1b\xaf\xb3\x44\xb9\x5b\x47\xd2\xa0\x5f\xa1\x79\xb9\xcd\x65\xfd\xfe\xc7\xd8\x4b\x83\x4b\x0d\x56\xf4\x92\x8a\xf2\x1f\x80\x4e\x96\xbf\x01\x93\x80\x1e\xce\xf6\x7e\x02\xa3\x93\x08\x48\xa9\xe5\xcf\x9f\x9e\x70\xe6\xd3\x47\x69\xd2\xd0\xf8\xaa\x59\xd9\x62\x8d\x16\x45\xf4\x78\x2e\x73\x8a\x64\xa6\x5f\x60\x44\x48\x40\x33\x82\x56\x68\x54\x23\x19\xc0\xd9\x7c\x33\xc2\x52\xc2\x1a\xac\x73\x28\xec\xbe\xb2\x6d\xbe\x35\x53\x4a\x35\x57\x81\x64\xdc\xaa\x42\xb6\x58\x1f\x51\x5f\x36\x6c\x54\xa0\x15\x25\x96\xdb\xb2\x2a\xf3\xb9\xc1\xcd\x52\xc7\x40\x85\x88\xd6\x9b\x14\xf4\x31\x2f\x07\x4f\x94\x19\x5e\x4c\x45\x4e\xc8\xea\x19\xdb\xf5\x4b\x5e\xe8\x66\x89\xdf\xa2\xa2\xc8\x10\xc4\xaa\xbb\x2f\xeb\x22\x9f\xcb\xad\x70\x15\x65\x48\xc4\x50\xaf\x99\x3b\x9a\x24\x2a\x32\x9c\x34\x3b\xfd\x31\xed\xe8\x8f\xfe\x78\x12\x68\xa9\x2f\x34\x3d\xf7\x2f\x75\x75\x7e\x7e\x21\xbf\xb7\x7d\xf5\x3b\xbb\x7c\x7f\xaa\x84\x85\x83\x3c\xf1\xc4\x1d\xef\xa3\x4f\x28\xeb\xfb\xe1\xf2\xa1\x27\x04\x8d\xf5\x56\x2f\x17\x58\x55\xa2\xed\xca\xac\xb1\x51\xe8\xf4\x8f\x47\x8f\x29\x4d\x24\x15\xbc\x07\xad\x83\xfe\x47\xa6\x12\xe9\x55\x2d\xcf\xc7\x71\x12\xd8\xcc\x34\x83\xb9\xca\xc0\x50\x72\x44\x7a\x27\x55\x89\x4e\xee\x64\xf3\xef\xb1\x32\x13\x57\x19\x46\x64\xad\x70\x05\xd5\x0d\x96\xcf\xeb\x17\x1c\x71\x56\x3e\xc4\x84\x2a\x06\x01\x35\xd4\x29\x46\x1b\xf9\x14\x73\xc5\x8c\x2d\x2d\x59\x19\x7c\xec\x97\x3b\xc5\x43\xdb\x4f\xef\x96\x9f\x7a\x42\x0b\x53\x3c\xb6\xaf\x73\x9b\x63\x9d\x8c\x1f\x39\x67\x56\xd2\x96\x54\xf5\xdd\x76\x3b\x9d\xf4\x5c\x69\x22\x6c\x76\x09\xea\x28\x3a\x50\x22\x8c\xb8\x43\x5d\xdc\x85\xb3\x59\x28\x78\xe8\xa2\xc7\xd2\x9a\xb2\xce\x8f\xa3\xb5\xb0\x21\x46\x18\x5d\xe8\x47\x34\x17\x25\x53\xa0\xba\xd0\x86\xdc\x4a\x3e\xf7\x44\xe1\x4a\xc5\x9c\x18\x42\x25\x36\x2d\x6a\xb2\xb8\x59\x15\xc5\xbe\x5a\x15\x45\x34\x7b\x11\x48\xe3\xd5\xaf\x88\x37\x55\xdd\xef\x80\x4a\x27\x8a\x42\xbb\xa1\x3f\xd9\x1f\xc9\x2c\x73\xe5\xb9\x5b\x80\xba\x5c\xa1\xbb\xd5\xfd\xcc\xc1\x98\x53\xe1\x02\xb4\x26\x81\xcb\xbc\x7d\x9f\x35\x82\x16\xa3\x08\x85\x52\x5b\xf8\xaf\xd5\xe1\x1d\x81\xa3\x95\x11\x98\xba\xd4\xe4\x4b\x5d\x9d\x4f\x0b\x25\x4f\x65\x40\x50\xa2\x7c\xcc\xcb\xf5\xa8\x1c\x77\x38\x5e\xed\xd7\xfd\x79\x54\x46\xa5\x0d\xe5\x2b\x53\x1b\x32\x9c\xf6\xdf\xa3\x03\x30\x96\x1d\x56\x43\x5e\xe2\xaf\x41\x71\x83\xeb\x28\xb4\x3d\x20\x79\xae\xcb\x9b\x73\x69\x89\x3a\x8b\xaf\xa8\x8e\x12\x13\x8f\x35\x7f\x3d\x08\xe2\xb3\xd6\x9b\x8e\x32\xad\xc3\x91\x13\x1c\x39\xbe\xfb\x63\xda\x90\x5a\xc7\xb9\xc1\xfa\xea\xfc\x3e\x9b\x1b\x3a\x0e\xed\x4b\xde\xb4\x78\xda\xbf\x55\x7f\x4c\x2e\x26\x4e\xa4\x72\x99\x42\xb7\x79\x7d\xa4\x7b\xf4\x79\xa0\xa5\x63\x06\x13\x38\x38\x31\xfa\xfc\xe5\x25\xa9\x35\x50\x7e\x56\x9b\x52\x8f\xde\x0d\x4d\x1a\x5e\xb4\xbc\xa8\xfe\x4f\x08\xb4\x0c\x34\x6d\x55\x23\x65\x8a\x63\x6f\xd3\x79\xf5\x77\x32\x41\x74\x1a\x82\x65\xfc\x93\xb2\x5f\x0f\xea\x18\x27\x53\xfd\x3f\xfe\x23\x82\x51\x83\x18\x34\x69\xee\x38\x3c\xc8\xf2\x66\xaf\x53\x48\x55\xe0\x88\x04\x58\x36\xe7\x66\x11\x15\xa5\xb3\x20\xa0\xf0\x82\xc8\xa7\xce\xb9\xf6\xa2\xdb\xd6\x8f\xb5\xec\xa3\x1e\x90\x6a\xbb\x36\x8e\x08\x3b\x3f\x71\x62\xf4\x20\x36\x4d\xa1\x84\x77\xbd\x9b\x0d\x54\xe0\x35\x4d\xd6\x7d\xde\x75\x69\xe7\xc6\x35\xd3\x98\xc5\xde\x2e\xbf\x84\xb2\xfd\x48\xf0\x72\x7a\xa3\x79\x94\x51\x23\x63\x90\x29\x78\xac\x8a\x5c\xbd\x7b\x51\x81\x5e\x2a\x64\x36\x87\x79\xf7\x0a\x59\x01\xa3\x73\x5d\x5e\x55\x55\x81\x50\x8e\x8a\x45\x9a\x4b\xe9\xd9\xdd\x5d\xbc\xb6\xfc\x26\x88\x2c\x24\x09\x89\x2f\xd8\xf6\x6e\xfc\x5c\x0b\x88\x49\xfb\x73\xd2\x32\xfd\xe0\x05\x84\x80\x53\xf9\x76\x97\x17\xaf\x58\x8f\x48\x10\x1a\xc2\x94\x7a\x9e\x65\xa5\xf1\xd0\xe4\x7a\x56\x33\xd0\x90\xd9\xca\x3c\x49\x94\xda\x5a\xcc\xa8\x18\xa7\x41\xa4\x54\x75\xfe\x9e\xd7\xed\x19\x8a\x39\x89\xc9\x8d\x92\x49\x40\x68\x14\xdb\x7c\x99\x57\x6b\x5c\x3f\xfa\xa2\xe3\xf0\x29\x8a\xc0\xfd\x4f\xff\x05\xa9\xa1\xb5\xe8\x34\xb2\x4d\xe6\x5a\x2b\xab\x1d\xed\x52\xf1\xbc\x79\xc1\xfa\x0e\xca\xe6\x06\x71\xed\x4a\x1d\x73\xf2\x96\xd6\x5a\x51\x8d\xe4\x98\x97\x56\x0c\xd4\xfd\x1d\x03\xa5\xc7\x74\x88\xed\x85\xb7\xfe\x87\xf5\x0f\x6d\x30\x24\x10\x7d\xb7\xc9\xc6\xc4\x32\x74\x67\xc5\xc0\x79\xf2\xbe\x61\xbe\xae\x1a\xdf\x77\xed\x8f\x66\xb1\x33\x04\xdf\xfc\xfb\x9c\x9f\x50\xaf\xca\xf7\xe8\xf3\xc2\x29\x06\x2c\xd4\x56\x22\xb0\x7c\xbf\xb0\x71\xe4\x18\x98\x84\x34\x6c\xba\xe0\xea\x09\xf2\x66\x88\x47\x30\x0c\x0d\x71\xe5\x1e\xee\xbe\xac\x61\x2c\xe8\x80\x61\x04\xde\xd2\xae\xe7\x52\x4e\xc8\x22\x18\x02\xcb\x5c\x56\xe0\xfe\x6f\x3a\x8d\x30\x54\x21\xb5\xf5\xf2\x16\x8f\x8d\x05\xfd\x4c\x2f\x2c\x4a\x23\x82\x89\x5a\xd8\xc0\x5d\x5e\xe4\xed\xc0\xa0\xc4\x28\x95\xce\x7a\xa8\x9c\xdc\xa1\x88\x71\x2a\x9f\xdd\xc3\xb9\xcd\xd5\x79\x12\xdb\x60\xcc\xa2\x28\x18\xb6\xcf\x6b\x68\x71\xcc\x1e\xc0\x18\x02\x22\x5a\x1c\xcf\xc5\xe3\xb2\x29\xf6\x30\x90\xea\x1d\xbb\x16\x4a\x4d\x5e\xe5\xc7\x13\xe4\xcf\xe5\x47\x8e\x50\x8b\x6f\x31\x26\x18\x11\x02\x08\xbc\xee\xc6\xa3\x8b\xa6\xfd\xf5\xa4\x22\xf4\x6e\x03\xdf\xab\x76\xb9\x47\xe4\xd7\x71\x4c\x15\xa3\xb9\xfd\xf6\x52\x6d\x77\xbd\xf1\x43\xbf\xb0\x60\x16\xda\x94\xa4\x40\xd3\xce\x30\x30\x98\x65\x2c\x72\x0c\x30\x0b\x10\x72\xf1\xdd\xb4\xc8\x8f\x19\x47\x4a\xc4\x1a\xdf\xf0\xa1\xa6\xf2\xea\xdc\x7e\xc0\x5a\xc7\xcc\x51\xab\x29\xf0\x2d\xaa\x3e\x3b\x45\x96\x32\xea\x17\xa2\x72\xa4\xef\x6e\xeb\xd9\xe5\xcf\xcb\x31\x3a\xb2\x2c\xa5\x45\xba\x6f\xf9\x91\x6a\x76\xfb\x56\xd5\x3f\xe7\x1a\x71\x1c\x19\x84\x81\x5d\x62\x4f\xd6\x6d\xb3\xdb\x88\x7b\xb7\xf9\x45\xa9\x0f\xe4\x31\x93\xa2\x5f\x8f\xbe\xcc\x55\xf8\x39\x8a\x2c\xf5\x08\xe8\xbe\x89\xee\x59\x2d\x4b\x05\x76\x14\x26\xa4\x4c\x71\xf3\xf8\xcf\x79\x69\x12\x41\x30\xf2\x5a\xec\xbd\x46\x1e\xe1\xdc\xa0\x9e\x1a\xdf\x71\x04\x48\x6c\x57\x01\x0c\x6e\x7e\x9d\x3e\xb8\xc7\x20\x03\x12\x80\x35\xd5\xb9\x6e\x5f\xf6\x08\xc7\x1f\x3d\x21\xad\x3f\x13\x4a\xa2\xc5\x5c\x3d\xae\xd7\x9f\x45\xc5\x28\x59\x46\x71\x0a\xb4\xed\xc8\x4b\x96\xa3\xe2\x10\x28\xdf\x58\xb7\xfe\xf8\x54\x20\xec\x1f\xa8\x0e\x05\x09\x35\x0e\x0c\x78\x13\x86\xc3\x41\x6b\xdc\x7f\x5b\x55\x3f\xbf\x9d\x7a\x50\xc0\x75\xfe\xba\x9d\xa7\xa5\xa8\x63\xa4\xa7\xd7\xed\xfe\x59\x18\xf4\xa7\x10\xbd\x8b\xbf\xc7\x99\x4f\x6f\x83\x96\x86\xf0\x8f\xbb\x3f\x3d\xf0\x08\x4d\x94\x50\x86\xed\x94\x6e\xe1\xac\x70\x9a\xb1\xa0\x49\x2d\x3c\xf4\x9b\x93\x98\xc9\xcb\xd6\x65\x6e\xa3\x17\xc7\x64\x8c\xca\x35\xdf\x4e\x55\xdd\x5a\xff\xc8\x79\x2f\xc4\x04\x69\xc8\xd9\x6f\x34\x9a\x6c\x15\x6f\x72\xd5\x26\xe0\x11\xc1\x42\x35\xbc\x93\xec\xce\x74\xc1\x32\x81\xe4\x7e\x9d\xf5\x35\x6c\xca\x23\x06\x5f\x45\x37\x30\x8c\x13\x22\x94\x13\x4f\x66\x87\xed\xf9\xd4\x1f\x41\xa1\xbc\x35\x78\x8f\xd3\xcc\xab\xf2\xba\x52\xe7\x89\x3f\xde\xf4\xc2\xa2\x40\x10\x20\x45\x8f\x12\x5b\xaf\xca\xea\x87\x84\x16\x48\xfc\xb8\x79\x3a\x7c\xdb\x6d\x9e\x0e\xab\xbb\x87\x6f\xf7\xfb\xfe\x70\x14\xca\x6c\xd4\x11\xac\xdb\x12\xeb\x59\xfa\x67\xe2\x2c\x4c\x12\x9f\x5d\x3b\xd8\xb9\x3f\x84\x99\x71\x55\x8c\x1b\x9a\xda\x2e\xd4\x9c\xc2\x87\x4c\x9a\x08\x2a\xdf\xda\xea\xdf\x65\x27\x91\x4f\xc0\x6d\x26\xcb\x12\x42\x50\x1f\xbb\xbd\x9a\xe4\x53\x5e\x30\xaf\xa7\xb5\xad\x30\x9a\x7f\x48\x44\x54\x82\xf8\x6b\x73\x7b\xfb\x8f\xd5\xce\x77\x0a\x0d\x33\x11\xf5\x8f\x35\x54\xbe\x45\xe6\x8e\xf0\x18\x2d\x86\xce\x93\x4e\x56\x96\xf6\xbc\xb8\x11\x18\x6e\x90\x70\x33\xa6\x7c\x5d\x7e\xc9\x8d\x08\x39\xda\x35\x8d\xee\xd4\x2d\x9a\xb6\x5b\x35\x37\xfd\xda\x6c\x44\x6a\x29\x1a\x4e\x2e\xd1\xd6\x9a\x6e\xaa\xfa\x72\xcb\x37\x02\xa3\x24\x73\xdd\x69\x6c\xda\xed\xf1\x54\xac\x17\x82\x34\x03\x32\xa2\x8e\x2f\x1e\xf3\xd6\x01\xbb\x96\x82\x72\x23\x59\x4c\x11\xe3\xf6\x7e\xff\xb4\x79\xdc\x5e\x1f\xee\x56\xff\x3c\x10\x9e\xc3\x5f\x9c\xca\x32\x8a\x6a\xee\xff\x73\xbc\x9d\x4c\x70\x25\x13\xef\xc5\x61\x25\x0e\x5c\x1a\xdc\x05\x1b\xeb\xcb\xa2\x95\xd1\x92\x13\x90\xf8\x64\xa7\x53\x39\x4a\xaa\x0d\x62\x16\x58\x33\x80\xfc\xd4\x56\x2f\x67\xa9\x86\x88\xc5\xa0\xd1\x54\x3b\x6b\xce\xa7\xee\x35\x6e\x26\xd0\xbc\xe5\xa7\x82\xc6\xba\x1b\x5a\xd7\xd4\x2f\x35\x62\x3b\x88\x88\xba\x31\x26\xb0\xd1\xae\x05\x74\x7e\xb3\xcf\x6c\xda\x7d\x30\x26\x50\x09\x73\x9b\xe0\xcd\x6c\xe7\x35\x26\x8c\x69\xe1\xa8\x49\x18\x79\x7e\x2c\xb5\x3e\x99\x04\xf0\xbd\x9b\x28\x07\x19\x13\x07\x54\x4e\xbd\xaa\x11\x7e\x9e\x4f\xf3\x8f\x66\xd6\xa0\x03\xac\x87\x95\xc6\xb2\x9a\x52\xeb\x44\x10\xa4\x11\xad\x7d\x36\x42\x26\x75\x8e\xf3\xcc\x28\x41\x04\x01\x8b\xa9\x09\xbd\x5e\xaf\x9f\x2e\x5c\xf4\x45\x10\xc8\x84\xba\xc8\xb6\x02\x3d\x61\x8d\x5c\xb4\x29\xe6\x5a\x58\xff\xeb\xce\x11\x82\x65\x4b\x28\x28\x77\x2f\x58\x98\x25\x94\x94\x08\xa2\xc0\x92\xb6\xad\xca\xdb\x60\x74\xea\x0f\xeb\x90\x02\x04\xe7\x9f\x47\xf1\x24\xa1\xec\xfb\x01\x98\xc0\x60\x6d\xb2\x3b\x93\xda\xfe\x71\x66\xf7\x22\x82\x98\x31\x70\x74\x9e\x91\x55\xf7\x6c\x8c\xb2\x88\x25\xfa\xfc\x65\x0d\x7b\x3a\x38\x09\x45\x10\x0f\x98\xe9\x3f\x46\x49\x8a\x08\x92\x44\x51\xcb\xfa\x54\xe3\x31\x9f\xb0\xf7\x44\x90\x86\xca\xe2\xf9\x5f\x6a\x6c\x5e\xaa\x42\x47\xfd\x91\x54\x43\x34\xf8\xe6\x78\xa9\xfb\x6e\x85\x1d\xc6\xa8\x94\x5e\xdd\x43\xde\x74\x0b\xc0\xb6\xa4\x2f\x9f\x5e\x5a\xaa\x18\xad\x3a\xb4\xa5\x42\xf9\x91\x40\xf5\xdf\x16\x64\xff\x20\xe8\x75\xdf\x96\x85\x5c\x5b\xa5\x66\x4f\x3b\xbc\xaa\xab\x79\xde\x2e\x82\x4c\x43\x88\x5e\x4e\xe3\xd7\x88\x32\x22\x02\xa6\x74\x60\x29\xc5\xb2\x51\x75\x2e\xff\x9e\x24\xa6\x08\x78\x94\x92\x98\x1a\xf5\x88\xac\x54\x93\x4f\x8e\x6d\x6d\xeb\xbe\x6a\xfd\x1f\x06\x00\x46\xf7\x39\x49\x16\xf9\xfb\x1f\x0f\x87\xbf\x36\xab\xa7\xc3\x9f\x9b\xcd\x63\x2f\x6a\x21\x02\xae\x6d\x67\x0b\x8a\x62\xa4\x4c\x3d\x42\x09\xbb\x71\x10\x47\x54\x5e\x3a\x4e\xd5\x72\xfc\xd1\x2c\x25\x24\xf0\x63\x71\x6e\xab\xf2\x12\x4c\xd4\x8d\xd0\x94\x05\x34\xd8\x8e\xdc\x8c\xc6\xf2\x75\xf3\xdf\x3f\xfd\x06\x99\x18\x6a\x92\x76\xcb\xe1\xea\x19\x07\xb3\xf5\xd5\xe7\xa5\x77\x11\x48\x63\x9d\x4e\x2d\x97\x73\xf2\x30\x54\xca\x8d\xd7\x56\x26\x02\x6d\xb5\x18\x48\x88\x40\x29\xa4\xa2\xc4\x4d\x5e\x7a\x25\xdb\x91\xcc\xb0\x3f\x9d\xce\x34\xa1\x0e\x9f\x90\xf4\x29\xdc\x5f\x31\x4a\x69\xb5\x5f\x27\x37\x9b\x46\xd5\xd5\xdb\x87\x5c\x80\xf3\x05\x82\xa5\xfb\xb4\xa4\x19\xd7\xe5\x27\x05\xf6\xb7\xd3\x04\x11\x03\xaf\x3a\x94\xff\x67\xe0\xaf\xfd\x4f\xc4\xfd\x9a\x64\x32\x2b\x50\xfe\x50\x2f\x26\x24\x22\x30\x2a\x26\x53\xae\xd7\xaa\x45\xfd\x67\xae\x7e\x56\xc6\x2c\x2a\x99\x8a\xc0\x68\x69\xe9\x9c\xbe\x15\x92\x3b\x20\x58\x8f\xbb\x5f\xa0\xda\x8a\xc0\x20\x24\xda\xbb\x5d\x8c\x6d\x06\x97\x9f\x55\x18\x24\x29\x95\x65\x6e\x73\xd3\x05\x80\x87\x20\xf0\x8b\x41\x18\xb1\xc4\xae\xf4\x36\xed\x1d\x4b\x60\x0e\x9d\x0e\x11\xc6\xa9\x0c\x4c\x9f\xd4\xaf\x8a\xe7\xaa\xe9\x0f\xb1\x38\x72\x1a\xea\xde\x41\xed\x38\x60\x11\x3e\x7a\x18\x7d\x0c\xdd\x9d\x40\x2a\xbb\xfc\x92\x12\xd7\x41\x91\xb8\xb8\x3f\x88\x16\x70\xb5\x29\xb1\x7e\xce\xc7\x11\xb0\x08\x93\x24\xa3\x1e\xf3\x0f\x68\x7e\x07\xbc\x17\x61\x62\x24\xc1\x56\x1c\xb5\x6d\x94\x07\x4d\xee\x6d\x98\xa2\x15\xd2\xb4\x2d\xa5\x83\x9f\x97\x07\x6c\x5f\x0e\xaf\xa3\x45\x38\xcc\x12\x49\x1d\x0d\x5b\x83\xb8\xce\x49\xea\xd1\x1d\x63\x31\x23\x1f\x8d\x5c\x55\xb1\xf2\x8e\x2d\x22\x64\xa9\x70\x6c\x4a\x6a\x68\xec\xdf\xf0\xc2\xb7\x6d\x14\x41\x88\x90\xa9\x98\x40\x79\xab\xf5\x7a\xf3\xb8\xdf\x5c\x4f\xa2\x68\x11\x72\x9d\xd2\xbd\xa1\x0c\xfa\xaa\x2a\xf5\x63\xd5\xdd\x88\x55\xa9\x1f\x5e\xb1\xbe\x83\x7f\x55\x75\xaf\xa6\x29\x42\xc8\x42\xaa\x7a\x3e\x6d\x6e\x36\x4f\x4f\xab\xdb\xc3\xd5\xc3\xfd\x37\x12\xe7\xbf\xdb\xde\x7a\xed\x3a\x11\x02\x13\x41\x32\xef\xce\xed\xab\xe5\x09\x1c\x82\xc4\xc0\xae\x3f\x64\xd7\xec\xb0\x7d\x7f\x4c\x6f\xbd\x0c\x6c\x97\xae\x29\x4f\x72\x7e\x88\xab\xc4\xf5\x62\x7f\xac\x9e\x3e\x94\x0b\x17\xa1\xe2\x48\x35\xd5\x21\x87\x84\xcc\x5f\xb2\x32\x2a\x54\x83\x5d\x16\x39\x9d\xf4\xf9\xf2\xf4\xfb\x74\x1a\x11\x73\xe4\x74\x97\xf7\x20\x7a\xff\xcb\x3e\x59\x36\x46\x27\x60\xa9\x19\x2b\xe9\xd3\x97\xf4\x32\x01\xea\x85\x9a\x6c\xa3\x1a\xb9\x0f\x65\x42\xad\x0c\x0a\x4f\x35\x19\x3b\x97\x89\x10\x03\x4d\xeb\x25\x29\x23\x8c\xde\xc0\x66\xdc\x88\xe9\x07\xa7\x29\x21\x7e\xbe\xac\xee\x36\x87\xf5\xc3\xae\x9f\x0d\xc8\x12\x6a\xbe\xfc\xb5\x5d\x7f\x5d\x6d\xef\x87\x92\x9c\x08\x11\x65\x6c\xe7\x74\xb7\x82\xda\xb2\xb4\x3f\x66\x74\x94\x0d\x24\x74\xaf\xda\xb6\xb8\x5b\x44\x41\xa0\x99\x6b\x6a\x52\xbe\xf9\x70\x6e\x55\xd5\x47\xd9\x22\x0a\x18\x0f\xed\xb5\xed\x7f\xd3\x63\x13\x51\x00\x9a\x60\xb0\x77\xef\xdd\x7e\x9f\x9f\x8f\x17\xea\x57\x9f\x3f\x89\x28\x30\xd6\x5f\x7a\x87\xed\xd7\x6a\x5a\xe7\xe9\x52\x32\x25\xac\xd8\x9a\xb5\x10\x87\x16\x89\x48\xf3\xa1\xdb\xb6\xff\x1c\x08\x12\x24\x7a\xce\x5f\xf1\xce\x3f\xa0\x28\x54\x08\x63\x8a\xf1\x0d\xe2\x38\x80\x8c\x42\x0c\x13\xd6\xb3\xa4\x7f\x60\x3e\x2a\xd7\xcd\xce\x6f\x04\xcd\x82\x55\x59\x95\x4f\x78\x9a\x7b\xf7\x8a\x28\xd2\x89\xb5\x35\xb7\xa5\xaf\x69\x2d\x41\x44\x71\x98\x0a\xe2\xac\x62\x37\x8b\x0a\xf2\xb3\xac\x9b\xab\xf7\x5d\x09\xa7\xe6\xa5\x72\x7d\xc6\xe9\x29\xe3\x50\x46\x7c\xd0\xb1\x82\x8f\xcc\xfd\x45\x14\x0b\x0c\x83\x7e\xed\x23\xc2\xf8\xcc\x32\x45\x44\x49\x1c\x50\x35\xe1\x3a\x6f\x9a\xaa\xa0\xa9\x49\x6c\x07\x87\xc5\xeb\x97\xf5\x28\xd1\x31\x55\x30\x9f\xb0\x39\x55\xe5\x32\x4c\x5b\x44\xa9\x93\xaa\x5a\x12\xb1\xf3\xff\x4e\x9e\x6c\x9a\x70\xaa\xb8\x98\xbc\xc6\x85\x28\x3d\xca\x02\xeb\x90\x50\x5e\x6f\xfe\xe9\xaf\x39\x8b\x12\x6e\x3c\x61\xbf\x69\xb1\xbc\x6c\x39\xf9\x91\x49\x40\xe9\x2a\x55\xf3\x87\x1c\x51\x44\x59\x66\x9c\x0a\xf5\xaf\xab\x5c\xf7\xb9\xb5\x88\x98\x49\x68\x61\xb2\x8a\x51\x87\xa9\x58\xd3\xf2\x6f\xe6\xa9\x4c\x79\x5f\xba\x25\x67\x20\x9b\x63\x93\x58\xa5\x1b\x04\x52\x59\x07\x08\x92\xcc\xdc\x36\xbd\x06\xed\xa5\xa0\xa2\x88\x64\x2c\x0d\x73\x1a\x00\x96\xd9\x0d\xa7\xc7\xc1\x8a\xdb\x8f\xca\x98\x2d\x3b\x76\xc1\x9a\xae\x54\xff\x77\xae\x69\x11\x7e\x7c\x18\xbb\x42\x8b\x48\xea\x88\x65\xbe\x4f\xdd\x62\xfd\x0a\x45\x7f\x2e\xe5\xdc\xff\x7b\x14\xe8\x3d\xbe\x2d\xa9\xd2\xf8\xe1\xcc\xc2\x7a\x9b\xb7\xfc\x84\x93\x2f\x51\xc2\xae\x19\x58\xb6\xf5\xfb\x98\x49\x3b\xcb\x0d\xfd\x70\x97\x98\x74\x19\xf1\x64\x5e\xe8\xc0\x8a\x71\x9c\xcb\x91\x6d\x15\xf7\x07\x35\x04\x56\x9f\x80\xf6\xdc\x49\x7e\x18\x61\x1c\x53\x57\xcd\x23\xfd\xd3\xc7\xba\xfa\x17\xaa\x76\x72\x99\xe8\x08\x10\xd7\xeb\xcd\x7e\x7a\x00\x15\xdd\x08\xcb\xc1\x7e\x30\xa6\xf0\x42\xe3\xfd\xbd\x32\xa1\x95\x5a\xef\x61\xdc\xeb\xea\x78\xcc\x9b\xc1\xea\x58\x44\x86\x33\x82\xe5\xb8\xfc\x85\xf0\x69\xbb\x89\x6d\xb9\x1f\x28\x63\x62\x31\x19\xc4\x81\xef\xfd\xde\x9f\x06\x81\xea\xbd\x07\x5b\xd6\x7c\xc4\x0b\x1d\xa3\xbf\x9b\xb1\xd9\x13\xc6\xa1\x8c\x65\x32\x08\x5c\x1d\xe2\x60\x72\xd7\xe3\x08\x2c\x77\xed\x5c\x56\x5d\x5a\xfd\x58\x40\x89\xb3\x25\x2d\x8e\x94\xe5\xfb\xda\xf5\x67\x9c\x6c\xce\xbe\x2c\x32\x31\x59\x8a\xdd\x57\x63\x73\x3c\x11\xc7\x81\x92\x7c\xd4\xea\x58\xbe\xd4\x38\xb2\xac\xbc\x7e\x46\xda\xa7\x7c\xd1\xb1\x5f\xfe\xee\x38\x8b\x92\xd4\x8b\xe5\xb4\x1e\xa0\xe6\x0f\x32\xcb\x41\xa7\x2c\x11\xca\x75\x51\x95\x48\xd8\xe9\xa9\x5a\xad\x88\x63\x61\x28\x4c\xbe\x76\x70\xcd\xe9\xda\x14\x27\x49\x4a\xfb\xf0\xfe\x71\x3b\xf9\x81\xa9\x8c\xa9\x1c\xfa\x78\xed\xb1\x16\x22\x4e\xd1\x62\xc2\x7d\x0b\xf1\xee\x7d\xa4\xcb\x29\xe2\x2c\x54\x04\xee\xed\xe2\xa1\xa1\xcf\x3c\x5a\xa8\x63\xc6\x02\xe5\xa2\x22\x7f\x99\x6e\x46\x0d\x8b\x74\xcc\xb3\x44\x58\x41\x8e\xea\xb4\xe9\xf6\x9b\xf6\xa5\x6f\xf2\x75\x47\x4d\xe4\x16\x80\xa2\x5b\x37\xf5\xb6\xc5\x63\x7f\x09\x22\x8d\xb5\xf3\xfd\x7e\x78\x2b\x27\x3f\x48\x08\x2b\x60\x76\xcc\xcb\xfc\x78\x3e\x5e\xe5\x7a\x4c\x9c\x12\xb1\x90\x46\xe3\x50\x65\x44\x7d\xf5\xde\x1f\x52\xc8\xbb\x07\xb1\xbe\x5d\xed\x76\x87\xab\xcd\xaa\x8f\x70\x62\xc8\x12\xf2\x25\xde\x39\x62\xb3\x45\x6b\x3f\x55\x1f\x84\x0c\xdc\x7f\x8c\x45\x96\x0e\xd9\x56\xa7\xab\x73\xff\x45\xc0\x35\x85\xae\xd4\x68\x99\x04\x64\xb1\x8c\x38\xb9\x70\xa0\x6b\x50\xdf\x57\xc7\x9c\x80\xa1\x5f\xe1\xf5\x75\x14\x32\xfa\xe1\x4a\x51\x9a\x4e\x56\xa8\x77\x79\xd3\x38\x7b\x0e\xab\x47\xb0\xb8\x8e\xc5\x0a\xe2\xd0\xb6\x80\x56\x7f\xad\x6f\xbf\x5d\xfd\xd1\xff\xdd\xea\x96\xda\x5a\x94\xb5\xa2\xa7\x46\xda\x52\x54\x1c\x6b\xa9\x29\x41\x20\x5a\xc9\xa6\xd4\x97\x95\x9c\xd8\x70\xed\x04\x9d\x40\x1f\x34\x1e\xcf\x75\x0d\xcf\x78\xb0\xf1\xeb\xe1\x5c\x6a\xac\x8b\xf7\xd1\x33\x37\xca\x7a\x54\xb4\xf0\xab\x5b\xcf\xef\xcf\xc7\x31\xaa\x5c\x24\x41\x6c\x35\x27\xf2\xe6\x11\xba\x5f\x3a\xbd\x17\x49\x90\x68\x5a\x0e\x47\x6a\xc7\x61\xdc\x7f\x36\x4d\x6c\xf0\x4c\xab\xd3\x7d\xd5\x2e\x29\x91\x89\x24\x60\x30\x14\xfe\x6d\x65\x61\xf6\x25\x8a\x93\xeb\x44\x73\x3e\x3a\xe3\x62\xfb\x48\x3c\x53\x51\x24\x61\x86\xf4\x3a\x3f\xad\xaf\xfd\x97\x87\x3a\x20\x32\x38\xea\xbc\xf5\x6a\xc1\xa8\xe7\xa8\xa2\xe1\xdd\x48\x42\x1d\x11\x67\xe3\x44\xcd\xeb\xed\xfe\xe1\xd0\xcc\x82\xa1\x24\x0a\x18\x9d\xd3\x4e\x93\x3e\xa7\x94\x33\x3a\x97\x48\x22\xd6\x37\x6b\x9e\xe1\x88\x5d\x8a\xeb\xbe\x71\x3e\x10\x98\x57\x1c\xe8\x12\xe9\x2b\x28\x67\xe1\x5c\x12\x47\xd6\x9f\xe9\xe4\x5f\x81\x6e\xaf\xf8\x9a\x37\x17\x2c\x1c\x91\xc4\xb1\x48\xba\xe9\x41\x4e\xdb\xd8\x9b\x5a\x8c\x5e\x8e\x24\x4e\xad\x12\xf9\x5b\x2f\xf9\x76\x3e\x9d\x8a\xbc\x5f\xd2\x92\x98\x45\xa1\x6b\xd6\x53\x85\x9f\x7e\xdc\x64\x2e\x27\x49\x20\x45\x17\xb3\x76\x8f\xfb\xae\x6c\x4f\x7e\xb9\x19\xaf\x34\x49\x12\x1a\x72\x56\xbc\xdb\xde\x1f\x36\xfb\xaf\x9b\xa7\xc3\xfa\xe1\x7e\xff\xe4\xbf\x26\x85\x94\x59\xf0\x4e\x5e\xe8\x3e\xd6\x59\x5c\xab\x93\x2c\x0e\x88\x15\xfe\x78\x2e\x0a\x8f\xed\x2f\xba\xf9\xfd\x3e\xc7\x58\x5f\x56\x1b\x92\x2c\x96\xa4\x90\xb0\x43\x2c\x26\x91\x48\x92\xa5\x40\x8c\x29\x87\x1f\x82\x9f\x58\x5f\x23\xe8\x62\x2e\x7e\xdd\x8d\xb4\xa2\x8b\xdd\x24\xb7\x10\x78\xec\x4b\x7a\x49\xa6\x52\xe6\x7a\x53\xf6\x46\x54\xf5\xf1\x2e\x2f\x71\x5b\x5e\x5f\x6a\xc9\xcc\x7f\x19\x46\x4e\x03\xa2\x51\x67\x5c\x43\x3b\xbb\xd3\x4c\x71\x6f\x60\x70\x43\x5e\xc2\x17\x96\x0e\x82\xbc\x56\xc2\x01\x1c\xff\x58\xe7\xaf\x79\x81\xcf\xfd\x9c\xe5\x49\x42\x3f\xd3\xa9\x31\xdc\x57\xbb\x32\x3f\xf5\xe2\x0a\x22\xe1\x2a\xd2\xd2\x7b\x42\x27\x87\x91\x0b\x8d\x48\xb8\x16\xb6\x91\x9a\xab\xab\x6a\x36\xd9\x38\xa6\xb4\xa2\x39\xaf\x89\x25\xda\x9e\x1b\x29\x04\x86\x89\xd7\xc5\x22\x9e\x69\x98\x4e\xc2\x8a\x44\x68\x41\x2a\xa5\x12\xca\x9f\xa4\x9e\xdf\x6d\x10\xd3\xaf\x03\x65\x8d\x0c\x6e\x1f\xf6\xfb\xcd\xd3\x5f\xfe\x0a\x65\x62\xed\x44\x0e\xf6\x29\x4e\x32\x84\x69\xac\x9f\xc8\x14\x03\x97\x15\x8c\x88\x6c\x8b\xbc\x44\x91\x48\x11\x58\x8d\x1e\x84\xe3\x63\x55\x15\xd3\xd0\x3a\x91\xc6\x42\xbe\x06\x5d\xfc\x71\x45\x34\x51\x11\xd0\x57\xed\xf6\xff\xb8\x48\x73\x07\x30\xd0\xec\xfa\x94\x89\x63\x0f\xa4\xb1\x07\xbe\x6d\x89\xbd\x77\x9a\x1b\xc4\x74\x63\x55\x36\x96\xe9\xfe\x20\xc3\x4b\xb4\x88\x1d\xf9\xb4\x39\x17\xed\x41\x0e\xb0\x54\x91\xa0\xeb\x96\x3a\xd2\xbb\x6d\xb6\x75\x6b\x9a\xef\xaa\x8e\xb0\x0c\x61\xd6\x7f\x48\xd2\x6b\xdd\x25\x8c\x9f\x4a\xb6\x8a\xc4\xc8\x8c\x80\x24\xbb\x99\x58\xea\x52\x01\x6c\xba\x21\x18\xb4\xbe\x6a\xd8\xb4\xf9\x11\x5a\x9c\x54\xc2\x27\x37\x22\x0d\x64\x4c\x89\x3f\xfe\xc2\x5a\xe5\x8d\x6d\xb6\x7f\x1a\xe3\xa6\x21\xb3\x85\x3c\xd0\x7a\xe7\x32\xda\xbf\x73\x6d\x93\x4b\x4c\x43\x08\xb9\xf1\xd0\x58\xaa\xa4\xf6\x65\xbf\x34\xe2\x42\xa2\x97\xe9\x68\xce\x4b\xa2\x72\x22\x8d\x74\x44\x2c\xbd\xa2\x7a\x7e\xac\xab\x63\xde\xe0\xb7\xd2\x9c\x0b\x93\x17\xc5\x78\x3f\x59\x0e\x5f\xd3\x58\x5a\x08\x4a\x6e\x0d\xa7\xac\x88\x14\x55\x3e\xfc\x45\xa4\x81\xce\x6c\x0d\xe3\xbd\x5b\xda\x3e\x74\xf9\x16\x69\x0a\x8c\x24\xbd\x7b\x0e\x81\x57\xa4\xea\xd1\xd5\xfd\x39\x4d\x44\xa2\xcb\x53\xa4\x9e\x65\x89\x4d\x5e\xe8\x34\x73\x51\xc5\x91\x14\xa9\x87\x70\x23\xcd\xd0\x1a\x15\x68\x3c\x15\xd5\x32\xc3\x53\xa4\x2c\x88\x08\x2a\x74\x00\xad\x7d\x61\x45\x7f\xd4\x55\x48\x59\x6c\x9d\x12\xda\x67\xdc\x61\xdb\x7d\x59\xe3\x5a\xd8\xcb\xbf\x97\x87\x19\xe5\x38\x57\x0f\xdf\xee\xf7\x7f\x39\x63\xe9\x69\xa9\x35\xe5\x51\x4a\x31\xe4\x76\xfd\x70\x78\xb8\x1f\xfe\x0a\x84\x19\x1b\xf4\x29\x9d\x31\xf4\xe7\x13\x8e\x83\x24\x1f\xb6\xe6\x2d\x6f\xd5\xcb\x0d\xa2\x85\x87\x8e\x76\xcb\x94\x83\x42\x4b\x6c\xa0\x98\xe3\xb2\xbd\x9a\x8a\xd8\x50\xaa\x67\xd1\xbc\xe3\x77\x33\x4b\xa6\x58\xde\x69\xe4\x99\x8a\x0c\x32\x2f\xaa\xe9\x32\xdd\x4f\x6a\xd0\x5d\x6a\x42\x2b\xc6\xed\xce\xb6\x59\xa6\x8a\x29\x22\x95\x52\x81\x67\x59\xdd\x23\x6a\xd4\x83\xb9\xa9\x1f\x4b\xf8\x8b\xd1\xbc\x91\x26\x22\x8a\x67\x41\x08\xb2\x07\x33\x9d\x2b\x2a\xcc\x98\xed\xe5\x79\xb5\x13\xbf\xcc\xa6\x2a\xe5\x22\x1c\xb9\x88\x0d\xba\x9d\x56\x1e\x79\xd0\xaf\x14\xa9\x12\xb6\x3a\x7e\xcc\xcb\x4d\x91\x3f\xe7\x63\x6f\x29\x91\x2a\xa5\x08\x9e\xf1\x63\xb3\xe9\xf2\xaa\xb1\x1e\x9a\x48\x75\x1c\x29\x69\x43\xac\xfe\x4f\x4c\x46\x56\x5b\xb8\x52\xd8\x34\x3b\x55\x8d\x84\x52\x26\x97\xaf\x4d\x28\x28\x81\xe9\xf6\x2d\xd5\x6e\xa0\x2e\x47\xf3\x1d\x43\x49\xda\x76\xd8\x6d\x0f\xf6\x8e\x4e\xb7\x92\xd4\x88\x5e\xb6\xd5\x63\xb4\xa9\xca\xd7\xfd\xc7\xb1\x84\x16\x6b\xf1\xa9\xc1\x28\x95\x93\xca\xfd\x45\xb4\x31\x4a\x6a\xb3\x20\x32\x44\x0a\x78\x38\x4d\x80\x45\x22\x0b\xb2\x84\x1a\x05\x64\xb8\x39\x41\xdd\x46\xbc\x1f\x62\xf9\x6d\xf7\xf9\x4b\x5e\x78\xa1\x27\x91\x05\x80\x14\x6f\xfa\xfa\xb0\x15\xdd\x1c\x62\x8b\x2c\xd0\x91\x74\xdb\xd4\x2d\x94\x7a\x6f\x73\x8c\x69\x00\x93\x85\x11\x47\x2b\xfc\x54\x35\xdd\x8a\x33\xb9\xb8\x30\x41\x9a\x01\x79\xf3\xe4\x5a\xc5\x97\x31\xfc\xe4\xb6\x64\xa1\x4c\x3c\x3c\xed\xc9\x86\x44\xae\x22\xdc\xe7\x34\x59\x04\x40\x6b\xa3\x76\xba\x81\xa8\x2f\x7d\x2a\xba\x51\x32\x08\x67\xa9\xd9\xa5\xb4\xcf\x14\xc2\xde\x7d\x4a\x53\x64\xe0\x9d\xb3\x8a\xe7\xaa\xff\x5a\x29\x32\x17\x29\x3e\x9e\x4f\xa7\x2e\x1a\x1a\x72\xe4\x2c\x0e\xb4\x1e\x32\xc1\x7f\x74\x51\xee\xc5\x76\x97\xc5\x69\x18\xa3\x2d\xb2\x62\x3d\xae\x0e\x4e\x87\x25\xc2\x10\x0d\xa8\x97\x67\x2f\x8a\x71\x35\x21\x4b\x8d\xe2\xc2\xe3\xa9\x6a\x83\xf9\x1c\xc8\x23\xb2\x2c\x34\xca\xf8\xb0\x30\x9a\x14\xb8\x32\x16\xea\xc8\x71\x89\x6c\x9e\xbf\xab\x0a\xfd\x88\xb5\x83\xfd\x4e\x6f\x23\x64\x82\x24\x10\x1d\xa7\x78\x75\x1e\x99\xb6\x88\x4c\x6a\xab\xff\x40\xce\xe6\x87\xf3\xe9\xa0\xf3\xd7\x9c\x2a\x65\x93\x2e\x8d\x1f\x8d\x11\x5d\x14\xb4\x8b\x46\x4b\x22\x53\x89\x01\xdd\x37\x74\x15\x5e\x2a\x21\x89\x4c\xa5\xa0\xb9\x45\x53\x54\x6f\xcd\x8f\x17\x2c\xbf\xd8\x6d\xc3\xfe\x48\xd2\x46\xb2\x52\x23\x03\x96\x5d\x64\xd8\xe5\x87\xff\xe7\xff\xf9\x3f\xff\x3e\x57\x2d\x10\xc9\x6f\x7a\x56\x23\x91\x00\x3a\xf4\x36\x9e\xaa\xba\x05\xe7\x97\xeb\x04\x3f\x86\x14\x2b\x33\x4a\x30\x67\x43\xb3\x4e\x6e\xfa\x6d\xd4\xbb\x57\x2c\x4f\x6b\xa3\x23\xc2\x87\x6c\xd7\x0f\xb6\x46\x7f\x61\x5a\x2a\x58\x60\x24\xd1\xdc\xa1\x3e\xc2\x33\x6a\x1c\xa6\x8f\x9f\x9e\x2c\x0c\x23\xa2\xb0\xad\xa1\xbd\x60\x05\x2c\x6e\xaf\x2c\x8c\x79\x18\x3a\x09\x3b\xac\xc7\xbc\x45\xc1\xc2\xc4\xaa\xdc\x90\x96\xe3\x9f\x79\x51\xcc\x76\x0b\x16\x66\x86\xfa\x6f\x55\x9d\x3f\xe7\x25\x14\xb4\x8a\xff\xc0\xfc\xf9\xa5\x1f\x12\x47\x56\x45\xae\x3a\xb7\xa7\x73\x9b\xcf\x7e\x52\x9c\x30\xb2\x4b\x39\x10\x03\xa6\x3b\xfd\x18\xa7\x38\x83\x58\x2f\xbe\x0c\x2c\xd6\x92\x3a\x18\x44\xd5\xdf\xec\xbf\x1e\xd6\xdf\x36\xfd\x97\x6b\x5b\xbe\x38\x97\x54\xbc\xd8\xfc\xb2\xc5\xc3\x59\x9d\x8f\x25\x61\x40\x6d\x18\x4b\xb6\x6c\xb0\x3d\x74\xff\x9e\xe0\x7d\x76\xb5\x09\xb7\xd0\x4b\x82\x5a\xd9\x72\xd0\x02\x1a\x81\x25\x60\x28\xe9\xef\xf6\xd0\xc7\xb3\x2c\x72\x35\xe0\x0e\x02\xff\xa4\x12\x69\x35\x9c\x74\xf5\x56\x16\x15\xe8\xfe\x5a\x34\x70\x17\xbe\xfe\xa8\xea\x09\xd7\x54\xb0\x34\x92\x60\x49\x0d\x75\x55\x56\x57\x50\xfe\x7c\x2c\xa0\xed\x52\x52\xff\xf1\x34\x95\x14\xed\x91\x8b\x3a\xa9\xf5\x38\x55\xa7\x64\xf6\xdc\x53\x6d\x15\x62\xa4\xdd\xde\x1f\xcc\xb8\x05\xc6\x52\xe4\x22\x9e\xee\x5a\x16\x75\xa9\x57\xed\x32\x4e\x82\xb1\x2c\xe5\x61\xaf\xad\x4d\x80\x53\x87\x21\xfc\x6e\xf5\xe9\xb6\xb3\xa5\x83\x31\xc6\x2c\xc3\xc7\x6e\xad\x7f\xcc\xce\xa7\x33\xca\x5f\xae\x6b\x84\x49\x01\x99\xf1\x2c\x25\xa5\x78\x2b\x70\x84\x7d\xfd\x86\x71\x6d\x9b\x90\x7e\xcb\x5c\x3d\x6e\x97\xf5\x57\x05\x13\x49\x12\x38\x43\xa1\xaf\xf9\xf3\x0b\x36\xed\x55\x1f\x5c\x33\xa1\x02\xab\xde\x34\x18\x65\x74\xe1\x4f\x51\x8d\xb6\x7e\x26\x74\x86\x6a\xc8\x37\x1d\x66\x6f\x39\xdf\x64\xc0\x24\x71\xd6\x5a\x68\x7e\xda\x42\x36\x95\xbe\x97\x10\xea\x82\x01\x6a\xd2\xe8\x7c\x7c\xda\xde\xad\x9e\xfe\x3a\xec\xf6\xab\xa7\xfd\x18\x65\x29\x98\x8c\x79\x8c\x23\x33\xac\x05\x01\x39\x3f\x1b\x25\x0f\x42\x57\x6e\xbf\x82\xa2\xa8\xda\x87\x93\x43\x18\xfb\x93\x29\x65\x6d\x55\x6d\x81\xae\xff\xab\x8e\x69\x82\xee\xef\x1e\xee\x37\x7f\x45\x2c\x62\x01\x1f\x8e\x25\x51\x36\xf2\x5c\xeb\x7e\x50\x9f\xc5\xcd\x68\x35\x82\x69\x16\x58\x21\x49\x55\xd9\x2f\xbe\xf2\x73\x6e\x39\xe4\x67\x5a\x2a\x6a\xab\x1e\xac\xe9\xf3\x88\xcc\xf5\x5b\x6f\xfb\xc5\x7f\xf9\xfc\xfc\x3a\xa0\x80\xd0\xa6\x2f\x63\x94\xcc\xdc\xdd\x42\x30\x13\x87\x71\xe4\x63\x9c\xc6\x83\xc2\x6d\xfc\xeb\xd6\xa7\xc9\xb9\x8d\x4c\xe5\x20\x8c\xe7\x6b\x88\x7e\xee\xf2\x20\x8a\xa8\x20\x8c\xaf\x6e\x19\xca\x7d\x6f\xc8\xcf\x62\x1e\xc6\x48\x37\xf7\x0e\xcb\xea\x75\x12\x2e\xf1\x50\xc6\x84\xad\x39\x61\xdd\xbd\xf4\x3b\x1c\xe9\xed\xf3\x81\xbb\x92\xfd\xef\x07\xb7\x61\xf1\xcd\xe5\x49\x2c\xb8\x17\x2b\x9b\xbe\xa2\x3c\x05\x85\x38\xae\x7e\x39\x09\x9f\x6a\x0c\x60\xe4\xa9\xb4\xdd\xc3\x2e\xe5\x3e\xd7\xa7\xc2\xcb\xf6\x0a\x9e\x65\x48\x5d\x1c\x63\xcb\x5b\xd6\xe7\x07\xe6\xf5\x54\xce\xd1\xd0\x02\x7c\xfb\xb0\xfe\xd3\x67\x6c\xd7\xdf\x9e\x56\xfb\x6d\x9f\x9d\x71\x01\x48\x95\xbe\xa7\xcd\x6e\xf3\xf4\x7d\x73\xed\xc7\xdd\x3c\x7c\xbb\xbf\xde\x3c\xed\xfa\x71\x32\x90\x7e\xfb\x25\x3b\xe6\xab\xf3\x3b\xd6\x13\x8d\x93\xe5\xad\x90\x43\xcc\x8c\x2b\xc7\xed\x8e\x50\x14\x8b\xee\x2e\x17\xf9\x1f\x87\x58\x24\xc9\xc0\x41\xff\x51\xe7\xed\x87\x1c\x74\xc1\x21\x51\x56\xc8\xac\xe7\x11\x4f\x5e\x46\x0e\x99\xa0\xda\x52\xb7\x80\x13\xf6\x55\x55\x75\x17\x12\xff\x16\x09\x38\xab\x71\xcc\xae\x31\xd3\xc8\xbc\x86\xe4\x2b\x96\x67\x5c\x5e\xa8\xb8\x64\x8c\x56\x8b\xff\xe6\xfb\xc3\xf5\x66\xbd\xbd\x5b\xdd\xee\x0e\x37\xab\xf5\xde\xeb\x47\x0b\x2e\x31\xa4\xe4\xf9\x66\xf5\x78\x53\x51\xc7\x61\x50\x8d\x15\x5c\x05\x8c\x70\x2b\xf4\xfb\xfa\xea\x58\x38\xfb\x1a\x25\x99\x72\x22\x99\xb6\xb9\xa6\xab\x6b\xdc\x34\xea\x8c\x05\x50\x9a\xf1\xfe\x91\x6c\xa5\x3f\x81\x62\x81\xf6\x69\x40\x73\x2e\x26\x6c\x0f\xc1\x75\x04\x18\xf4\x18\x62\xcf\x61\x77\x99\xc5\x58\x31\x6b\x72\xd3\xdc\x87\x91\x71\xa2\x7a\x9f\x4b\x8f\x5f\xf5\x80\xec\xc5\xd8\x8d\x23\x67\xe0\x44\x08\xbc\x84\x6f\x14\x4e\xaf\x07\x51\x49\xbf\x8a\x74\x33\x11\xb5\x85\x8b\x60\xdd\x5c\xe7\xcd\xe9\xdc\xe2\x55\x55\xea\xc9\xbb\x6e\x22\x46\x89\xa3\x05\xc9\x3b\xd6\xd9\xac\x63\xc4\x4d\x17\x98\x5a\x2f\xa2\xdd\xa8\xd7\xfc\x9b\x19\x6b\xb4\xb5\xe8\xa4\x62\xf0\xf5\xbe\xff\x46\x63\xbb\x87\x35\x9e\xe0\x7d\x7b\x24\x2d\x8b\x16\x8b\x59\x14\x24\xc2\x30\xf3\x2d\x84\x6b\x17\x22\x85\xfd\xb1\xc8\x70\x97\x1e\xe1\x20\x1f\x35\x4e\x54\x45\xc8\xd2\xd0\x29\x65\x92\x8d\xc2\xa5\x2e\xe2\x62\x3e\x2c\xa2\x2c\xa0\xac\xa4\x7d\x3f\x59\xbb\x07\xf7\xf7\x98\xa1\xed\xd8\x9f\xdf\x1f\xeb\xfc\x58\xd5\x3a\x87\xb1\x19\x90\x10\x49\x94\x50\x8f\x6b\xbb\x7e\x38\x3c\x7e\x5d\xed\x36\xd1\x00\x96\x5b\x6f\xee\xf7\xab\x2f\x9b\x61\xa8\xb2\xf3\x72\x4c\xee\x19\x9b\x98\x2d\xde\x50\x91\xc4\x40\x42\xba\x8f\xab\xa7\xfd\x76\xbd\x7d\xa4\x85\xeb\x70\xb3\xe9\xcf\x9b\xa6\x49\x4c\xc2\x50\xe7\x53\xde\xff\x4d\x26\x96\x45\x8e\xf8\xb3\xff\x1b\x5a\x99\x73\xb7\xa8\x1d\x56\xd7\xd7\x4f\x9b\xdd\xce\xe3\x3b\x45\x86\x5c\xb8\xcc\xee\xcb\x19\x6a\x28\x5b\x44\x3d\xde\xbf\x6e\xb1\x1c\x82\x6f\xc1\x02\x24\xf1\x07\x63\xcd\xac\x1f\x0b\xb8\xc4\x96\x4e\xed\xab\xc7\x4f\x8a\xc7\x21\xc1\x1e\x4f\x70\x6e\x70\x70\x12\x15\x82\x2b\x4c\xdc\x42\x49\x9a\x33\xd3\x1a\xb5\x1b\x24\xb2\x8c\xd6\xf4\xb6\x3e\x37\x43\x67\x6e\xd7\x33\xe5\x85\x80\x50\x2a\x97\xcd\xad\xfe\x71\xbb\x1c\x0b\x08\xe0\xc6\xc9\xb0\xb4\xeb\xe2\x8c\xf1\xe4\xbd\x12\xa0\xac\x6f\x58\x8d\x43\xa9\x7e\xdf\xeb\xfe\xd8\x13\x8e\xf0\x51\xb3\xcd\x5d\x80\x61\x44\x48\x77\xc9\xeb\xa1\x39\xe5\xe5\x61\xec\x6d\x20\x84\x02\xe3\xd4\x77\x55\x35\xe6\xf3\x0b\xa1\x74\x48\x79\x1e\x96\x7a\x45\x1c\xba\xcb\x5b\x3b\x26\xf3\x7f\x5a\x44\x14\xca\x58\xd5\x82\xab\x87\x7f\xf6\x40\x27\xa1\xc3\x80\x42\xea\xe3\x82\xb5\xd7\xb4\x84\x23\x34\x60\xea\x7a\xfb\x94\x91\xba\x15\xcf\xfd\x53\xcd\x5a\xae\x02\x23\xe5\x83\xf5\x87\xda\x46\xf6\x3f\x20\xef\xb2\xe4\xab\x0a\x6a\x3d\x1f\x9d\xa9\xd0\x72\x91\xf7\x2f\x38\xcb\x01\x85\x81\x94\xc0\x01\xce\x3f\xba\xf7\x4d\x16\xc2\xe8\x30\xf1\x19\x41\x7d\x3e\xe1\x08\xc3\x28\x8c\x89\x28\x97\x3d\xc2\xaf\x55\x59\x95\xef\xc7\xea\xbc\x84\x8f\x84\x00\x62\x19\x7b\x29\x92\xb9\x01\xd9\x9c\x60\x02\x81\x4b\xbd\xcf\x25\xa5\x7b\x53\x54\x0e\x04\x98\x59\x30\x5e\x0f\x97\x84\x28\xb1\x54\xaa\xeb\xaa\xb0\x70\xe7\xc4\x1f\x89\x75\x44\xfa\x81\xce\xb7\xd5\x69\x9d\x7e\x1a\x40\x40\x1a\x72\x12\xdd\xd8\x7c\xf9\xb2\x3b\xec\x1f\x0e\x5f\x57\xfb\xf5\xd7\x43\x78\xfb\x70\xb5\xdb\x6f\xfc\xfe\x09\x59\x9c\x50\x98\x71\xbb\xdf\xf5\x7f\x62\x32\x4d\xbd\x8f\x64\xeb\x24\xa3\xc7\x61\x43\x17\x15\xb0\x29\x60\xd6\xa4\xfd\xa7\x21\xd1\xde\x20\x99\xe4\x0e\xc9\x6b\x65\xfa\x79\x96\x44\xa4\x98\x42\x6a\x34\x97\x55\x3a\x60\x59\x42\x41\xcc\xd7\xf7\xe7\x7e\xe1\x04\x06\x51\x46\x2f\x68\x55\xf4\xd6\x4f\x02\x78\xa6\x04\x7a\x3e\x80\x25\xbb\x15\x73\xb3\x54\x01\x5c\xc7\x31\x73\x5d\x64\x24\xd1\xc8\xc1\x65\x60\x52\x6e\x02\x11\x89\xd0\xad\x26\x33\xfd\x88\x51\xf9\xfb\xf3\x7f\xfc\x99\x74\x4a\xe5\xa1\xf5\x97\xcd\xfd\x42\x01\x05\x20\xe1\x94\xf4\x7d\xcf\x47\x5e\x90\xdd\x9f\xd1\x55\xe7\x8f\xd5\x2b\x52\x62\xe6\x8f\x18\xd0\x13\xda\xf6\xd5\xb9\x9e\x9f\x54\x86\x9a\xbb\x78\xf3\x0b\x96\x78\x0b\x72\x76\x27\x24\x22\x75\x68\xc9\x10\x68\x44\x42\x17\x20\x4d\x44\x82\x6d\x4d\x0b\x56\xc6\x66\xb6\x86\x82\x52\x48\x64\xde\x55\xf9\x33\x6f\xbf\xe7\xaa\xed\x95\x94\xc6\x1b\x1c\x68\x13\x12\x79\x83\xfa\xe5\x87\xfd\xd3\x6a\x7d\x08\x79\x1a\x0c\x87\x63\x6a\xd0\x1e\xec\x5c\x5e\x36\x07\x12\x80\xa1\x21\x7b\x97\x3f\x7f\x7c\xdd\x2f\x1a\xb4\xcc\x86\x0b\x69\xb7\x34\x28\x9f\x10\xf4\xfd\x18\x08\x36\x9d\x7b\x26\x00\x13\x3a\x38\xe3\xa6\x7d\x19\x5a\x69\x60\xb2\xd8\x47\x4e\xdd\xf2\xd3\xb7\xbf\xb9\x3f\xae\x32\x12\x2c\xa1\x64\xca\xf7\x2d\xa7\xb7\xc8\x28\x45\x00\x52\x0d\x2d\xec\xaa\x73\xad\xf0\x0b\xb6\x3b\x3c\xe6\x2e\x2c\x9c\x8c\x96\x61\x68\x08\x98\xa7\x21\x2f\xde\x5d\xad\x72\x8e\x89\x95\xa1\x8c\xb4\x63\x4b\x51\x91\xe7\x00\xa5\x3e\x94\xf8\x36\x96\x3d\x10\x32\x32\xa9\xb1\x55\x1e\xf5\x52\xe6\x0a\x8a\x75\x75\x3c\x9e\xcb\xbc\x7d\x77\x5d\x23\x37\x2e\x96\x11\xd9\xdd\xab\xaa\x69\x67\xcf\x57\x26\x41\x12\x44\x23\x64\xd2\xde\x33\xc0\xfc\x87\x89\xb0\xef\x76\x3f\x22\xde\x51\x91\x66\xe8\x2c\xc9\x34\xc9\x08\x5f\xe5\x1e\xed\x69\xfe\x0d\xa9\x4c\x69\x0d\x76\xd6\xe6\xcb\x9b\xac\xcc\xe2\x30\x56\x03\xcf\x0c\x4b\xd2\x54\x27\x41\xd2\x3f\xce\x83\xf2\x80\x90\x2c\x44\x82\x46\x0f\xbb\xad\xe5\x29\x91\xc0\xea\x52\xe6\x21\x59\x96\x06\x6e\x13\xd8\xb5\x55\x0d\x63\x53\x62\x21\x19\x58\xca\xb2\x76\x73\xd2\x05\xda\xd3\x1e\x8a\x64\x68\xa8\x1d\x6e\xd7\x12\xca\x7a\xdd\x11\x9e\x02\x05\x38\x3f\xdf\xd5\xec\x33\x9c\x47\xc4\xc6\xd3\xa8\x0a\x12\xcb\xa2\xd6\xd8\x35\x9a\x41\xe8\xb8\x1b\x24\x42\x37\xff\xb6\x47\x78\xc6\x6b\xb4\x21\xf4\x4c\xaa\xd0\x87\xb7\x92\x1b\x2b\xf5\x64\x93\xfb\xeb\x73\xf7\x7b\x49\xcf\xf9\xa1\xec\x7f\x92\x08\x52\xb2\x4e\xc9\x9b\xd5\x59\xe7\x17\xd5\x10\x29\x58\x4c\x6c\x1f\xfb\xc4\xef\x20\x2f\xbd\x4e\xd0\xf4\xc6\x09\x88\xb4\xa3\x5d\x75\x9f\x3e\xb4\xd5\xa1\x25\xb7\xde\x66\x7e\x42\x60\x56\xa5\xc5\xc3\x57\x6c\xd9\x6d\x3c\xa3\x21\x85\x84\xf7\x4a\xef\xf0\x8a\x7a\x33\xe0\x00\xa6\x67\x03\xa9\x49\xcf\xc7\x36\x41\x2f\x67\xcc\x72\x15\x56\x82\x4a\xa9\x57\xb4\x49\x9e\xaa\x37\xdb\x08\xfb\xe6\xbf\x1d\xb5\x49\x1c\xbb\xf6\xb6\xaa\x7e\x9e\x67\xb5\x38\x89\x88\xb4\x7c\x81\xfe\xd7\xb9\x69\x0f\xbe\xd0\x70\x28\x2b\xed\x25\x91\xdc\x48\x13\x29\xfa\xa9\xda\xe6\x4c\x23\x0d\xcf\xd9\xcd\x33\x59\xa6\x9d\xf1\x89\xa7\xf1\x6f\xcb\xb6\xba\x27\x02\xa5\xc6\x5f\xb3\x2b\x30\x32\x20\x0f\xcf\xf6\xd7\x0d\xe2\xb5\x67\xd0\xf6\x1d\x25\x69\x4c\xa0\xd9\x2c\xc3\x13\x93\x48\x54\x05\x71\x4c\x56\x2b\x0e\x16\xbb\x7f\x58\x84\xf8\xa9\x20\x31\x54\x55\xfb\x51\xd5\x85\xbe\xca\xdb\xcd\xeb\xb8\xe0\x4d\xf7\x36\xf2\xff\x7c\x90\xd9\x7f\xdc\xdd\x55\x61\x2a\x69\x7e\x4e\xd5\x45\x84\x0a\x33\x45\xb0\x8e\xf5\xdd\xfa\x76\xd1\x7f\x78\x7a\x96\x0c\x43\xbb\xea\x7e\xcb\xfb\x66\x80\x0a\xc1\x72\x32\x9f\xab\xb6\xba\xc7\x5f\xed\xb8\x66\xa5\x42\x9d\x26\xba\x0f\xf6\x71\xfa\x2e\xaa\x08\x42\xc8\x7a\x60\x41\x2f\x55\x35\xf9\xd2\x38\xcd\x28\x14\x5f\xd5\x12\xd6\xbf\x61\x9b\xa8\x98\x19\x22\x23\x1f\xe1\x23\x38\x90\x8a\x41\x78\x76\xe9\xee\x54\x95\x4d\x45\x55\xe0\xc6\x2a\xf0\x2c\xae\x82\x2a\xc9\xac\x1b\xa3\xbd\xcc\x6d\xf9\x9a\xfb\x12\xad\x1b\x90\xc6\x92\x6a\x37\xba\xba\xcb\x75\x99\x3f\xbf\xb4\x4f\x67\xbf\x09\xab\x2c\x4e\xfd\x1a\xba\x2d\x5f\xb7\x7e\x09\x57\x2c\xb4\xc2\xcb\xe7\xb2\x5b\xd8\xf7\xbe\x98\xdd\xdf\x1c\xd6\xc5\x83\x7e\x46\xbc\xe5\x1a\xbf\xe4\xa6\x5d\x57\xba\xbf\xb7\x5e\x60\xe0\x5c\x8e\xc3\xac\xd9\xb5\x8b\x30\xca\x98\x57\xed\x40\x7d\xf5\xee\xf8\xa3\xd3\x9b\x22\x74\x48\x84\x48\x5f\xb7\x25\xaf\x95\xcb\xa2\xa7\x12\x5a\x91\xa6\x26\x41\x60\x9f\xc0\x18\x32\x08\xf8\xcf\x07\xdb\x87\x82\x38\x20\xfd\x1e\x67\xde\x32\xd1\xa3\xfb\x30\xff\x19\x5e\x6b\x05\xcc\x8a\xb5\xdb\x77\x87\xf6\xb8\x07\x73\x57\x95\xd8\xbe\xc0\xb7\x06\x6b\x8a\x6b\xdc\xee\x31\xfb\x45\xc0\x95\x72\x09\x31\xbd\x4a\x5b\xbd\x1c\x84\x28\x50\x92\x6a\xfa\xba\xae\x4e\x76\x17\x9d\x9e\x48\xa2\xb5\x50\x6c\xeb\xf7\x2e\x9c\x99\xb0\xb7\x95\x8a\x90\x2a\x42\x37\x90\xd7\x4b\xbe\xd3\x7e\x58\x16\x93\xd4\x8d\xbb\x0f\x36\x9a\xa5\x60\x7c\x0e\xf7\x59\x2c\xfc\x2b\xc5\x53\x2a\x23\x1c\x9e\xb1\xc4\x07\xb3\xae\x61\x46\xb0\x53\x4a\x58\x7f\xde\xf6\xad\xfa\x0b\xa1\xf6\xa0\x5d\x77\x54\x27\xa9\x15\x98\x37\x2d\xd6\x5b\x55\xcd\x3e\x8c\x01\x50\xe5\x85\x4c\xd5\x87\xf0\x51\x61\xca\x03\x57\xc0\xdc\xa1\x6a\x2b\x0b\x11\x5a\x9f\x67\xc1\x93\x32\x91\xa5\xca\x52\xaf\x6e\x92\x25\x2b\x13\xa1\x2d\x56\x59\xdd\x91\xf9\x0e\xae\x4c\x6a\x88\x16\x72\xbd\x23\x45\xd0\xe9\xbd\xd7\x81\xd2\x14\xc4\x18\xa7\x24\xd8\xcb\xee\xf8\xcf\xeb\x30\xb0\xaa\xd3\x7e\xe2\x3a\x65\x16\x77\x34\x4a\x6c\x98\xf8\x8c\xed\x15\xb6\x57\xd0\xe4\x6a\x38\x04\x38\x96\xea\xb3\x08\xc2\xee\x77\x25\x81\x1f\xa2\xec\x6d\xf1\x72\xc2\x1f\xca\x1a\x2c\x2e\x34\x3a\x0e\x32\x87\x3b\xec\x3e\x6f\x5f\xbb\x3e\xf6\xd6\x49\x9a\x89\x61\x5b\x38\xe6\xe5\xa9\xce\x5f\xa1\xc5\xe6\xa2\x08\xae\x93\x2c\xc6\xcc\xd1\x49\x6d\x16\x6e\x55\x75\x83\xbf\x53\xc4\xd7\x09\xc4\xb6\xd3\xde\x2d\x4b\x42\xcc\xce\x9d\xa6\x5a\x8c\x66\x66\xdf\x00\x9d\x8d\x12\x99\x95\x18\xdf\xdd\xf9\xeb\xcf\xb8\x30\x6e\x6e\x38\x8b\x93\x4f\xe1\x19\x9a\x61\x20\xad\xae\x56\x9b\xff\x5f\x39\x70\x09\xcd\x83\x00\x2c\x31\x9c\x60\x1d\x20\x3d\xa0\xf7\xd3\xca\x89\xe6\x71\x42\x55\xa4\xfd\x6e\xbf\xe9\xc9\x05\x9a\xa3\xa1\x57\x89\xb0\xc9\x37\xdf\xee\xaf\xef\x36\x87\x87\xfb\xdb\xed\xfd\x66\x54\x96\xd3\x22\xe1\xac\x57\x4e\xb6\x20\x91\xe9\xcf\x11\x89\xa2\xd2\xe1\x1a\x4e\x27\xd4\x17\xbe\xf3\x6e\x14\x70\xab\x34\x93\x3f\x42\x3f\x27\x41\x01\xb3\x1e\x42\xa0\x67\xfb\xa1\x96\xda\xc4\x53\xa0\x99\x35\x76\xf2\xc7\x55\x24\xb9\xf3\xe5\xca\xcb\x67\x0b\x0d\xc6\xe1\x68\x1a\x7b\x1e\x97\xdd\x49\xc6\xe0\x3f\x3f\x86\x1b\x5a\x91\xef\xb0\x3c\x07\xd9\xe7\x65\x0b\xad\xa4\x4a\x71\xe0\x31\x2f\x2f\xf2\x5a\x69\xe6\x2b\x4c\x2e\x47\xb0\xb9\xdc\x05\x31\x4d\xeb\xc0\xa0\xbb\x7c\x54\x2f\xd0\x27\xda\x5a\x87\x51\x16\xf5\x6f\xb1\x33\x5a\xf7\xc7\x22\x4e\xe0\xc3\x2f\x5d\xf6\xb3\x7c\x05\x18\x24\xdc\xb5\x99\x46\x25\xcf\x3b\x28\xcf\x50\x14\xbf\xc1\x62\x6b\x8c\x05\xe1\xb8\x36\xed\x0b\x85\xbd\x9e\x1a\x3b\x7d\xde\x86\x59\xd3\x2a\xd0\xda\x22\x82\x96\x77\x93\x6e\x1c\x1f\x2b\x02\x4e\x2b\x53\x76\x10\x06\x42\x83\xf7\xc8\x6e\xf2\xe6\x53\x99\x46\x81\x81\x32\xd1\x58\x27\xd1\xe6\x92\xcb\x5d\x24\x0c\x34\x10\x9a\xa8\xc0\x57\x2c\x0e\xc9\xe1\x34\xd6\x6b\x12\x18\x46\x31\x51\x58\x8e\x55\xd9\xb4\x58\x7f\x45\x28\x7a\x8a\x23\x86\x49\x4c\x6e\xad\x9a\x9c\x79\xf6\xd5\x63\x35\x7c\x4e\x45\x04\x65\x5c\xed\xef\xc6\x3b\x04\x46\x3c\x21\x7d\x85\xff\xb7\xaa\x8a\xea\xb9\x4b\x76\xbf\x40\xad\x87\xe3\x71\xc2\x3c\xc8\xcd\x61\x38\x46\x8a\xfa\xb3\xdf\x99\xc4\xf6\x65\x51\x4e\xd8\x6a\xbb\x7e\xf0\xa7\x49\x12\x43\x6b\x98\xcb\x02\x27\x5b\xc5\xec\x06\x24\xd2\x7a\x5d\x76\x11\x39\xd6\xae\xd0\x37\x6b\xd3\xb8\xa1\x69\x28\x48\xdb\x70\x5d\x35\x6d\x5e\x38\x2d\xb9\xc9\xcf\x4b\x39\xd7\x66\x20\xca\x9e\xa5\x2f\x1c\x2e\x3f\xa9\x2c\x62\x3a\xf2\xe0\x08\xdc\xaa\x8a\x4e\x66\x2d\xac\x9b\xbe\xe8\x3c\x46\xd2\x60\x96\x26\xbe\x62\xbe\x7b\x3f\xca\x6a\x6a\x9a\x27\x30\x63\x29\xfd\xf2\x2e\x3c\x1c\x75\xd3\x30\x53\x49\xea\x30\x65\x77\xef\x9b\xb2\xcd\xdb\x77\x1b\xbc\x4c\xaf\x88\x39\xab\xbf\x17\x68\x36\x65\x75\x7e\x76\x9d\xd6\x11\x6f\x79\x01\x19\x80\x22\xb1\xfd\x1e\x27\x16\xd1\x0c\x85\x19\x14\x0a\xa9\x03\xff\x85\xb4\x59\x1e\x6b\x6c\xda\xfc\x19\x47\x2e\x1a\x02\x21\x8e\xe9\xa6\xe5\xaa\xda\x94\xfa\x1a\x5a\x6c\x87\x8c\x13\x41\x0b\x99\x8c\x2d\xd7\xb0\xfd\x40\x31\xd1\x7d\x40\x66\x9a\x9c\x3b\x6d\x37\x74\x28\xdd\xbb\xc3\x2a\x34\x7d\x6f\xb6\x32\xed\x1b\xd4\xae\xce\xef\xa0\x9e\xd3\x47\xae\x98\x22\x0e\xe8\x73\xfe\x8a\x57\x79\xdd\xbe\x7c\x18\x8d\x8e\xc2\x7b\xd4\x46\x92\x4b\xf0\xcd\x66\x73\x78\xf8\x71\xdf\x57\x6c\x51\x1b\xf4\x0a\xcf\xc4\x03\xb8\xa9\xea\x5d\x0b\x3f\xe7\x90\x42\xc4\x30\x0b\xe5\xe0\x9b\xf4\x58\xd9\xee\xfe\xac\xf9\x89\x18\x01\x86\xbd\xfa\xc6\x7f\xe7\xe5\x73\x31\xdf\x78\x10\x63\x41\x2e\xe2\xe5\xb9\x28\xa8\x08\xe5\xd7\x2b\x7f\x3c\x53\xa9\x6b\xc2\xdd\xe3\xdb\xb6\xc5\xe3\xd0\x71\xf6\x43\x58\x64\x94\x5f\x2e\xcf\x65\x5b\xbf\xaf\xf3\x36\xbf\x64\x8b\xff\xcf\x05\x5a\xc0\x9f\x00\x43\x70\x7b\x3f\x89\x30\x2c\x11\x82\x67\x1f\x31\x41\x64\xfd\x57\xc9\xf3\xbc\x9b\xc9\x03\x62\x06\x8d\x96\x04\x5b\xf4\x4a\xf2\xbb\x97\xea\x6d\x7a\x07\x4d\x10\x58\x0c\xa5\xb1\x8d\xe5\xe6\xe0\x3b\x5f\x26\x70\xd0\xa7\xbf\x66\x7d\x52\x13\x30\x5b\xa4\x5e\x63\xd9\x3d\x1b\xec\xf1\xab\x26\x50\x8e\xa8\xdb\xc5\x7c\x3b\x6c\x1d\x07\x82\x42\x40\x0b\xe2\x98\x17\x67\x4c\x18\x01\x89\x42\xbd\x40\xf3\x62\x13\xdc\x4f\x77\x15\x13\x66\x40\x0b\xe3\x88\x95\x39\x11\xd1\x16\x26\x14\x09\x84\x17\x22\xbf\xfe\xa0\x01\xca\xda\xbe\x60\x7b\x9b\x43\x53\x95\xf7\x23\x39\xca\x0f\xbe\x32\x0a\x22\x63\x46\xdb\xff\x56\x2f\x99\x1e\x76\xe3\x04\x78\x14\xda\xfe\xa5\xae\xde\x0e\xf1\x21\xb7\x6a\xf4\xb4\x84\x1c\x80\x4a\xf7\x9e\x3b\x97\x57\x25\x8d\xf2\xd7\x1d\x45\x92\x84\x53\x64\xae\xad\x50\xfe\xf1\x54\x95\xc3\x16\x63\x22\x66\x89\xd2\x8f\x75\xa5\x37\x93\x07\x12\x09\x4e\x22\x48\x6f\xc4\xc0\xfe\xd9\xff\x19\x82\xc4\xb6\xea\x6c\x4f\xbd\x67\xf2\x8e\x33\x7b\x13\x07\x21\xf5\x39\x4a\xfc\xd5\xde\x10\xa4\x30\x3f\x62\x75\xee\xbf\x36\x0e\x18\x64\xbd\x52\x1b\x85\x10\xfb\xaa\x9b\xfe\x9f\xae\x2e\x26\x09\x21\x19\x22\x8f\x05\xd8\xa8\x49\x94\x0a\xc7\xda\x3d\xb4\x64\x7d\x68\x5b\xe1\x3f\x64\x52\xda\x86\xff\x79\x9b\x9b\x71\x7b\xcb\x64\x49\x92\x38\x7c\xd6\xed\x59\xfd\x7c\xdf\xb5\xbd\xcf\x88\x30\x59\xaa\x88\xf8\xfa\x02\xa5\x2e\x46\xe5\x78\x77\x98\xc5\x9a\x30\xe5\x3d\xf3\xd9\xbf\xbd\xf3\x84\xcc\x30\x6e\x21\xe2\xdd\x6d\xf6\x92\x89\xef\x7f\xfe\xb5\x9e\xfd\x34\x11\xc5\x44\xf3\xba\xed\x52\x83\xee\x2a\x27\x8f\x4b\x30\xab\x14\x5f\x56\xed\xe6\xdf\xe7\xfe\x79\x2c\xd5\x5d\x8c\x90\x81\x99\x9a\x45\x41\x81\xd6\x73\x68\x71\xd6\xce\x33\x5c\x23\x54\x80\x63\x39\x9a\xcd\x68\x69\x9e\x5d\x34\x0a\x0a\x4a\x7d\x84\x75\x80\x5a\xe6\x6d\x0d\xf5\xfb\xcc\x3e\x7e\xf6\x05\x26\xa1\xaa\xa9\x3c\xd7\x96\x36\xb3\xd4\x9b\x36\xc0\x13\xd2\xfb\x7a\xa9\xca\xb0\xcc\xcb\x7f\x81\xbf\x19\x20\x44\x68\xfa\x56\xd0\xaa\xed\x5e\x1e\xb8\x04\x6a\x1b\x19\x69\xe5\x42\xd1\x43\x5b\x1d\xe0\x63\x4b\xd1\xd9\xf5\x29\x04\x7a\xad\x6e\xdf\x0d\x8e\x04\x29\x8c\x32\xca\x02\x74\xa0\xc0\x6d\x99\x0f\x9a\x62\x46\xa7\x4c\x78\x13\xf3\xea\x15\x6f\xa1\x69\xe9\x87\x75\xf1\x46\x5e\x3e\x37\x16\x8f\xf5\x3b\x57\xbd\xee\x3c\xc6\xc3\xd3\x57\x45\xd1\x4d\xef\xa3\x2c\x66\x99\xb8\xd1\x60\xa5\x51\xf2\xe6\xaa\xce\x7d\xbb\x61\x5e\xbc\x98\x7e\x04\xd3\x88\x6a\xa7\xeb\xa7\x87\xdd\x6a\xfb\x64\x71\x8a\x87\xed\xfd\xfa\x69\x73\xb7\xe9\x29\x37\xc6\xa0\xe4\xf6\xce\xaa\x73\xdd\xe4\xaf\xbd\x0a\x77\xdf\xa0\x85\x20\x88\x62\x4a\xe5\x4c\x5e\xea\xd5\xb9\x06\x5a\x74\x9a\xbc\xf5\x5a\x7a\xe3\x6e\x1f\x04\x01\xa4\x44\x40\x7b\xa9\x8e\x28\xbb\x18\x67\x02\xe9\xf1\x83\xb4\xea\x2d\x57\x6b\x84\xc1\xe6\x92\xff\xd7\xc5\x7f\xdd\x47\xc2\xd8\x12\x85\x15\x94\xd6\xeb\xc8\xc9\x25\x4d\xd5\xf4\x21\x88\x12\x41\x80\x94\xeb\x20\xf8\x73\xbb\xf1\xbf\x21\x66\x01\xd5\x31\xbb\x39\xbb\x38\x47\x21\x88\x91\x51\x7e\xb4\xaf\x73\xb2\x84\xfe\x3b\xe6\x28\x10\x24\x91\xa1\xdd\xec\x5f\x55\x5e\x5e\x41\xdb\xce\xb2\x50\x08\x92\x4c\x13\x8c\xef\xdc\xe8\x47\x7a\xb3\x7c\x79\x06\x82\x84\xc5\x94\xd8\xbf\x92\x3e\x49\x73\x98\x3c\x75\x08\x12\x1e\xab\xf4\x02\xaa\x71\xfb\x6d\x3f\xfb\x06\x96\x31\xaf\x41\xb0\x6d\x1e\x6b\x7c\xc5\xd2\x0d\x9f\x50\xe0\x86\xd2\x1e\x04\x3c\x61\xf1\x80\x14\x75\xea\x53\x9b\xf6\xe5\xa1\xd6\x58\xff\xf8\x9a\x3b\x5c\xe7\x40\x49\x99\xfc\x3b\xf5\x56\x86\x40\xe8\x58\x4d\x88\x0f\xfa\x35\x6f\xbc\xad\xc9\xb2\xeb\x19\x04\xc0\x8c\xab\xda\x8e\x89\x86\x4f\x13\x0a\xd9\x47\x55\x09\x08\xc0\x58\x25\x09\xc2\xb3\x79\x37\xca\x0f\xde\xb4\xd9\x17\xcb\x30\xa6\x8c\x6e\xbf\xbd\xdb\x1c\xf6\x0f\x87\xbb\xd5\x9f\x9b\x43\x78\xd8\x7d\xdd\xee\xd7\xb7\x0f\xf7\xfd\x94\x91\x90\x08\x6b\xc7\x79\x89\xce\x59\xfe\x49\x52\x5a\x6c\xf4\x0f\x4b\x24\xf1\x27\x52\x5a\x44\xce\xab\xd4\x9a\x88\x2e\xf5\x20\x20\xd0\xdc\xc6\x96\xcf\xd8\xee\xde\xe0\x34\x7b\xc8\x9a\xcb\xd4\xb9\x24\x7c\x85\xa6\x8b\xfe\x5d\xb8\x66\x21\x94\xa3\x67\x6b\x02\x69\x2c\xf7\x9a\xd4\xc2\x16\xf5\x92\x21\x30\x71\x18\x53\x54\x7d\x2e\xb5\x8f\x91\x3e\xe0\x82\x43\x60\x52\x41\x6c\xeb\x02\x4d\x1b\xb1\xe9\x95\x85\x51\x14\x65\x59\x4f\x6b\x21\x40\x93\xbb\xb4\x1b\xc4\x66\xef\x88\x38\x10\x46\x31\xa7\xbc\xe6\xee\x7d\xc1\x95\xdd\xbd\xf0\x93\x6b\x0c\xa3\x18\x43\x87\x44\xba\xc5\xd7\x68\xfe\xbd\x3c\xa4\x80\xa6\x3c\xbb\xd2\xbd\x35\xeb\xf2\x5f\x17\x87\xd6\xc6\xb1\xb2\xb6\x5c\xb6\x1e\xf1\x7e\x37\xb2\x05\x82\x30\xc1\x58\x5a\xb2\x6c\xe9\xe0\xcc\xfb\x6a\x71\x71\x75\xe3\xd3\x00\x23\xe5\xc1\xf4\x56\xcc\xb5\xb9\x14\xc9\x85\x30\x45\xa9\x1c\x16\x63\x2d\x2f\xc4\x0f\xa8\x7c\x38\x3b\x73\x96\x31\x12\xe8\x6e\x5e\xaa\x73\xa1\x77\xa3\xa2\xa5\xbf\xd6\x8c\xf3\xd4\x65\x3b\xab\x57\xd8\xaa\x6a\x2c\xf6\x01\x61\xd6\x25\xdf\x9e\xee\x9d\x97\x54\xde\x9e\x7e\x05\x8b\x63\x6e\x5b\xaf\x6d\x97\x9a\x97\x38\xed\x45\xcc\x3b\x89\xfe\x53\x69\x0c\x3d\x6e\x97\xea\x4b\x17\xf2\x17\x10\xb2\x2c\xa0\x28\xcd\xfb\xc2\x8c\x81\xb1\xf3\x91\x12\x5c\x4d\xb8\x3b\x30\x7b\xa4\x4c\x4a\x8d\xd3\xb6\x81\x3b\xc2\x03\xe5\x00\x47\xa4\x1e\x7b\x42\x95\x43\x71\x83\x24\x20\x30\x3b\x09\x4f\x4c\x1a\x5e\x40\x5d\x17\x0b\xa3\x10\xf2\x4c\x7b\xa5\x23\xab\xab\x38\xcb\x3d\x20\xe4\x8c\xd9\xf2\x16\x40\xa9\xb7\x64\xf3\xda\x0c\xff\x59\x7e\x61\x42\xae\x22\x0a\x93\x36\xdf\x36\x57\xa3\xb0\x0e\x42\xc1\x02\x6a\x43\x77\x37\x71\x53\xea\x8f\x9d\xea\x3e\x41\xcc\x73\x7f\x2e\x11\x53\xd4\x66\xf2\xba\x69\x9d\xb1\xed\x75\xdf\xfd\x83\x10\x22\x46\x2d\xae\x7f\xfb\x14\xab\x3f\x10\x27\x91\xf4\x30\x33\x8d\xf5\x5d\x55\xe2\xbb\xed\x0e\xe3\x34\x5d\xed\xc6\x6a\xd4\x83\x9a\x08\xbe\xed\xa1\x59\xe6\x34\x43\x08\x59\x4a\x7b\xa1\x45\x47\xdf\xfb\x94\x0f\x42\xe0\x82\xa0\x26\x8f\x5f\xff\xb9\xff\xf3\x7e\x75\x7d\xfd\xd4\x1f\x01\x46\xa9\x16\x91\x1c\x0e\xaf\xb9\x1a\x9b\xc3\x7d\x14\x0b\x84\xa0\xad\xf1\x3f\x35\xce\xfd\xea\xe5\x3d\x9e\xbd\x2c\xd0\x05\x2c\xec\xc2\x73\x7d\xb9\xe2\x00\xa1\x4c\xad\xea\xea\x00\xa7\x98\x88\xcc\xf8\x4d\x28\x94\x82\xcb\x31\x4e\xe4\x5b\x97\x1c\xbf\xd5\xf9\x07\x80\x0e\x08\x25\x24\xb4\xc4\xd3\xa5\xca\xaa\x7f\x20\x2a\x8c\x3d\xe4\x72\xab\x2a\x42\xbe\x5c\xcf\xc1\x60\x10\xaa\x2c\xa5\x54\x6d\xb3\xff\x7a\xb5\xdd\xaf\xfc\x87\x75\xc0\x6d\xf7\xbd\x86\xb7\x27\x28\x75\x75\xec\x12\xaf\xe9\xe2\xa1\x4d\x1c\xa7\x03\x6a\x61\xbd\x79\xf0\x47\x30\x08\x48\xe1\x41\x3a\x44\x98\x25\xd5\x58\x8c\x3d\xea\x71\x4f\x14\x42\x13\xa4\x7d\xb5\xa7\x0b\x88\x8f\x83\x49\xd1\xd8\x68\x67\xf6\xa3\xbb\xfd\x88\x82\xd7\xf2\x05\xeb\xbc\xdd\x53\x9b\xfa\x0b\x96\x9e\xe6\x3e\x7d\xdd\x4c\x18\x52\xaa\x7f\xb7\xef\xbf\x55\x46\x84\x95\x31\x6d\x3b\x5d\xe1\x0d\x5a\x6f\x0b\x1f\x76\x0c\x22\x36\x7e\xf6\x46\x01\x57\xde\x7f\x6d\xfb\xfd\xf0\x34\xdb\x42\xa2\xd0\x70\x4a\x9c\xfe\x45\xd9\x17\xa1\x65\x16\x67\x76\x14\x45\x92\x36\x40\x54\xd5\x6d\xa5\x7e\x46\x4e\x6c\x07\xa2\x48\x31\xeb\xa4\x4c\x37\xea\x60\x6d\xec\x9b\x03\x4c\x25\x88\x21\x8a\x93\x90\xc3\xa8\x82\x32\xa9\x92\xf9\x31\x9c\x1b\x27\x95\xe1\x80\x8d\x37\x95\xf7\xe5\x5a\x5e\xbe\xa2\x58\x2b\xb2\xd7\xbf\xc9\xc9\xa9\xbd\xf6\xef\x7e\x94\x30\xa1\x46\xbd\x0c\xcb\xb7\x22\x7f\xba\xa6\x1f\x82\xda\xc3\xdc\x1c\xf7\xfd\xb3\xa5\x67\xb8\x17\x89\xc9\x7c\xd9\xed\x3b\x96\xba\xaa\x57\xa7\x53\xe1\x3c\x0d\x76\xaa\xea\x76\x73\x72\x84\xb2\x1b\xe3\x28\x51\x85\x28\x4d\x2c\xde\xda\xc9\x6b\x78\xc8\x81\x7b\xac\x9f\x06\x57\x51\xca\xac\x08\xda\x13\xea\xa7\x5c\xca\xaa\x1c\x12\x7b\x88\x52\x19\x19\xab\xbd\xaf\xcf\xca\x1a\xe5\x2c\x9f\x25\x4b\x42\x3a\xcb\xce\xc2\x02\x9b\xbc\xb9\x22\x80\xfa\x0c\xc0\x06\x51\xc6\x0d\xdd\xd9\xcd\x2f\xf5\x72\xd5\xaa\xf1\x22\x1e\x65\x22\x0a\xa4\xeb\xcc\xcc\x62\xdc\xdf\xf5\xd3\xba\x0f\x33\xaa\xff\xf5\x0c\x3f\xa7\x56\xe1\x0e\xb3\x48\xd2\x24\xf8\x82\xed\xd7\xea\x19\x26\x3f\x23\x8e\x46\x31\x7c\xc4\x52\x2b\xd4\x4d\xb8\x53\x5d\x57\x53\xfc\x0e\x44\x3c\xb0\x06\x5c\x9f\x5a\xe5\x2e\x6e\xfe\xee\x04\x22\x12\xc4\x32\x92\xb6\x6e\x3a\x20\x97\x20\x12\xa9\xe5\xe5\xae\x9a\x1c\xca\x35\x9c\xf2\x16\x8a\x35\xf5\x94\xce\x53\x7c\xc8\x79\xee\x96\x08\x51\xb7\x09\xa2\xd7\x55\x9e\x93\x35\xff\x7f\xfc\xd7\x7f\x5d\x82\xc4\x86\xa7\x1d\xb0\xf6\x85\x56\xb7\x93\x44\x32\xb0\x0b\x84\x2f\xf7\x3c\xd6\x95\xc9\xfb\x37\x52\x46\x11\xc5\x90\xdd\x6e\x7d\xd5\x03\x77\x20\x52\x71\x14\xb8\xa4\x9d\x44\x6d\x6e\xd7\x1b\xa8\xcb\xcb\x29\xec\x87\x6b\xab\x8c\x69\x3b\x13\xaf\x79\x75\x6e\x68\x79\x77\x8d\x64\x37\x4a\xa7\x32\x93\x13\x0a\xfd\x53\xf7\x4e\xcd\xd2\x84\x48\xcb\x84\x88\xd4\x5f\x48\x8c\x7c\x3d\xc8\x38\x43\xa4\x8d\xa4\xea\x3e\xd4\xed\x8f\xaa\xfe\x69\xf5\x38\xbc\x51\xe4\xe2\x83\x59\x6a\x63\x41\x84\x8c\xd1\xdc\x7f\x81\xe6\xe5\x2a\xbf\xd4\x7c\xfe\xdd\x24\x9a\x3e\x00\x44\x96\x1a\x67\xb5\x58\xb7\xb9\xf2\xca\x56\xe3\xb9\x6c\x22\xab\xc2\x73\x95\xb7\xaa\xca\xcb\xbb\x4a\xe6\x45\x7f\xb7\x4d\x6c\x8b\x8b\x36\x59\xed\x36\xb7\x7d\x0d\x79\xbb\xac\xbe\x03\x91\x91\x21\x85\x45\x87\x23\x96\xc4\x1d\xf4\x7f\x47\x5b\xc0\x23\x21\xe7\x5d\xfe\xab\x7d\x77\x76\x2a\x4f\xe7\x62\x58\x15\x8d\xb1\x88\xee\xee\x29\x40\xdb\xed\x85\x93\x25\x2c\x0e\x62\xab\xf4\x56\x9d\x7c\xcb\x7d\x5b\xb6\x95\xab\xfa\x2c\x2f\x3a\x71\x60\x2c\xfe\x5d\xa1\x07\x3c\x4d\xf7\xcd\xe1\x46\xc4\x61\x94\x12\x2c\x95\x54\x8a\xef\xdb\x66\x57\x15\x9a\xd4\x81\xe8\x4d\xf1\x83\x34\x7a\xc3\xf7\xe5\x5a\xf3\xec\xfb\x23\x66\x71\x72\x74\xdb\x3d\x60\x67\xf2\xc8\xe3\x38\x88\xc3\x01\x42\x49\xa6\x93\x23\x56\x05\xc4\x71\x18\x90\x3a\xe4\x0b\x34\x6b\xeb\x70\x7f\x29\x83\x30\x9d\xf5\x71\x9c\x58\xc1\x68\x72\xc4\x79\x2c\x40\x79\x54\xa6\x3f\x27\x79\xd5\xf5\x6c\x66\xbb\x70\x0f\x51\x6a\x9c\x06\x31\xb1\xd8\xbb\xa5\x6d\x4c\xc6\x83\x38\x65\x31\x85\x93\xd0\x34\xf9\x73\xe9\x55\x19\x96\xc8\xb6\xb3\x1b\x91\xea\x98\xe2\xaf\x1d\xb6\x57\xe7\x9c\x1e\xd9\xdf\xdf\xf8\xe2\x54\x4b\xa6\x06\xb9\x18\x27\x70\x31\x14\xca\xe2\x2c\x36\x52\xf5\x2a\x2d\xd4\xd0\xbc\x26\xc5\x9d\x41\x31\x05\xe2\x2c\x53\xe4\xfd\xb2\x7f\x09\x8e\xc9\x7f\xfa\xbf\xb2\x90\x3a\x91\x8e\xba\xd7\x2c\xf2\x00\xbb\x61\x9c\x70\x8a\x47\x1b\x15\xec\xda\xea\x34\x8a\xf8\xe3\x8c\xa9\x8c\xac\x0c\x2c\x9a\xa5\xfb\x6d\x33\x18\x75\x37\x46\x13\x22\xf2\xdb\xe9\xb9\x06\x8d\x77\xd0\xb4\xc3\x9d\xcd\x38\x23\x28\x3e\xa5\x14\x96\x40\x6c\xe1\xd5\x13\xe7\x21\x88\x33\x6d\xa2\xd4\x6b\x31\x0f\x6c\xdd\xcb\x0b\x66\xa9\x54\x54\x66\x28\xe0\xf9\x5b\x3e\x13\x2d\x87\x98\x65\x8a\xe4\x8b\x1f\x4e\x58\xee\xab\xfd\x0b\x3a\x62\xbe\x3f\x2c\x53\x8a\xcf\xee\xde\x7f\xe4\x23\x3b\xa7\x45\xc4\xe5\xf4\x7b\x79\xa4\xa8\xc0\x65\x75\xd2\xe6\xd6\xae\x63\x06\x90\xff\x00\xb3\x5e\x13\xae\x9c\x5b\x0d\xbc\x21\x37\x40\xc4\x21\x45\xdf\x55\xf9\xb7\x24\x1c\x20\x16\x5c\x11\x80\x69\xf7\x63\x7b\xb3\xf7\x3e\x75\x8b\x30\xcf\xcb\x4d\x32\x16\x60\x15\xd0\x57\xb7\xeb\x9e\xf0\x39\xe6\x7b\x42\x0c\x3c\x4e\xc7\x58\x07\x92\x4a\xdd\xf8\x1e\x75\x77\x9c\xd1\x22\xb1\xf6\xe8\xce\x5f\xef\xdd\x42\x32\x52\xf0\x28\xf5\x93\xd3\xbf\xfe\x13\x3f\x34\x37\x98\xfd\x28\x10\x11\x05\xf3\xc7\xbc\x3c\x37\xa4\x01\xec\x98\xf8\x93\x77\xc8\x17\x83\x63\x19\x20\xb1\xf1\x7b\x17\xa6\xee\x41\x4f\x17\xbf\xc9\xcf\x96\x19\x77\xca\x69\x06\xeb\x7a\xee\xfc\x02\xb1\xd4\x19\x31\x2f\xda\xfc\x88\xa1\xff\xa5\xd2\xc4\x24\x98\x4e\x6b\x26\x09\xf8\x5c\xac\xda\x2a\x89\x59\xda\x57\xd9\xd7\xe4\x9d\xda\xee\xf1\x78\x2a\x08\x5d\xe4\x47\x69\x43\x8e\xed\xc7\xc3\x66\xff\x95\x82\xc2\x5b\x68\x9c\x5c\x82\x1f\xa3\xa3\x58\x28\x6b\x0f\xe9\x59\xe4\x7d\x94\x1f\xeb\x38\x25\xce\x8c\xdd\xa9\xe8\x52\x1e\x3e\x9c\x2e\xfd\x67\x14\x31\xd9\x14\x34\x6d\x81\x77\x79\x49\x25\xfe\xfe\x8c\x29\x12\x90\x92\x74\x04\xb7\xc7\x53\x31\xbb\x21\x9a\x45\x10\x0e\xd1\x64\x33\xa5\x81\x41\xac\x25\xa3\x06\x06\x61\x17\xeb\x71\xa7\x78\x7a\x1e\x8c\x64\x64\xc9\xb5\x27\xc8\x3d\xc4\xcd\x6f\x0e\x98\x18\x41\x79\x9f\x82\x63\xf7\x22\xcf\x9f\x0a\x72\xbb\x67\xa2\x03\x68\x78\x21\x3d\x7b\xe3\xa6\x63\x4d\x68\x2f\xe8\xa5\xd2\xc5\xc5\xf3\x4d\x02\xe4\xa9\xab\x62\xdd\xad\xfe\xf2\xd6\xa5\x17\xc4\x28\x48\xc2\xd0\x4a\x9c\x50\x99\x88\x7a\x79\x76\x8b\x78\xf2\x5a\xb7\x9f\x16\x83\x67\x85\xc6\x24\xe4\x46\x3a\xc9\xfd\x07\x33\x76\xa2\x59\x57\xc7\x13\x94\xef\xcd\x24\x0f\x4e\x42\x6d\x5d\x21\x5f\x2d\x25\x7a\x52\xd8\xeb\x87\x64\x04\xd5\x3d\xa8\x02\xa1\x5e\x15\x85\x55\xdb\xf4\x86\x80\x90\x84\x18\x78\x29\xe4\x6e\x5d\xe4\x7f\x0c\x41\x69\x12\x05\xa1\xcd\x5a\x1d\xdd\xf5\x2b\x42\xdd\x4a\x04\xff\x54\x93\x28\xca\xa8\x8a\xb6\x47\x38\x7e\x45\xd0\xcd\xfa\xa5\xca\x67\x9c\x01\x48\x22\xb0\xda\xf0\x7b\xf8\x89\x44\x1c\xa9\x35\xd6\x1f\x9a\xeb\xce\xff\x5d\x9c\xad\x49\xa4\x05\xb9\x78\xe9\x8a\x0c\x8d\xbe\xe4\xa6\xbd\xcd\xcb\x11\xab\x01\x92\x24\x4e\x08\xbd\x77\x38\x56\x25\xbe\xf7\x7f\xcd\x32\xaa\x4f\xfa\xe5\xea\xfb\xe3\xfa\xd7\x02\x3c\x0b\x92\x44\x6a\xaf\x43\x3d\xd1\xd9\x9f\x2e\x44\x49\x1a\x30\xe3\xfb\xe8\x5b\x9b\xe4\x4e\x7c\xe9\x20\x49\x65\xe6\x54\xb3\x7d\x6f\x7b\xf9\x0d\x4c\x52\x89\x54\xe2\x5a\x91\xcb\xd7\x92\xde\x18\x24\xa9\x8e\x1c\x0a\xd4\xda\x52\xcd\xa6\x63\x96\x65\xca\xc9\xc3\xf4\x6a\x69\xb3\x42\x62\xc2\xd2\x98\xa2\x03\x0a\xe5\xb0\xe9\xbb\x1e\xfd\xf2\x91\xf0\xd8\x12\xc6\xec\xbb\xd1\xdd\xd3\xf8\xce\x1f\x13\xa0\x12\xd5\xef\x4f\xa4\x5a\x5b\x80\xfa\x79\x3b\xa7\xf8\x41\x97\x0d\x67\xbe\x50\x7c\xd6\x6b\x2c\xdb\x1f\x98\x8f\x5c\xe9\xbb\x11\x19\xc5\x83\x9b\x92\x52\x84\x71\x6e\xdb\x25\x4c\x34\x69\x9c\x96\xc5\x13\x62\xb7\xa0\x94\xea\xdd\x91\x69\xfb\x61\x92\x52\x84\x73\xe9\x76\xd8\x01\xbd\x91\x57\xe5\x6c\x15\x4a\x64\x82\x64\x86\xf5\x63\xbb\xbb\x7e\xb8\x5b\x3f\x6c\xef\xfb\x23\x19\x4b\xbc\x17\x10\x96\x50\xb4\xef\xb3\x3b\x2b\x99\x15\xc4\x79\x7c\xbc\x5a\x1f\x56\x8f\xdb\xfe\x83\x4c\xd3\x03\xd1\x9e\x69\x3d\xfe\x3a\x40\xcf\x0b\xb1\x3a\xfd\x76\xcf\xdb\x96\xa6\xea\xdf\x61\xe5\x58\xce\xb7\xf8\x9a\x9f\x9b\xeb\xd5\x43\x7f\x20\xcd\xa6\x5a\xbd\x17\xfe\x7d\xdd\x18\xa4\x5a\x3c\xe9\xd4\xb9\xc8\xf3\x1a\xa1\x68\x66\x17\xaf\xb8\x35\x9e\x3a\x10\x4f\x76\x77\xea\x36\x9d\x4a\x43\xff\x52\x60\x2c\x49\x6a\x07\x8f\x58\x3f\x63\xa9\xde\xbf\x95\xc4\xea\xee\x8f\xa7\xcc\x6a\x56\xb5\x78\x9a\x7a\x93\x42\x82\x99\x11\xde\x35\x1c\x51\x3f\x9c\x2f\x3b\x95\x9f\x45\xb3\x09\x72\xce\x47\x39\xac\xef\x52\x4c\xd2\x82\x04\xb5\x25\x49\xfa\x1a\x42\x17\x51\x36\x84\xd3\x18\xe0\x7d\xf3\x17\x18\x0d\x8b\x1d\x58\xd3\x9d\x74\x5f\xb9\x80\x94\x1c\xc6\x6f\x3f\xa2\x4b\x40\x62\x58\xa6\x53\x4f\xd6\xf0\x20\xdc\x69\x26\x92\x18\x69\x43\x8a\xbc\xb9\xa5\x8a\xe5\xec\xdb\x8d\x8e\xbc\x6b\xd3\x5d\x5e\x20\x3c\x23\xe9\x32\x5f\x6c\x07\xe3\xef\x4d\x83\x38\x46\x5b\x5b\x7a\xc5\x7a\x78\x21\xd3\x20\x01\x82\x9e\xb9\x94\x07\x3e\xf4\xd3\x87\x34\x50\xd6\x1e\x8f\x8a\x90\xfb\xea\x07\x4e\x35\xb5\x20\x0d\xb3\x58\xa6\x76\x8f\xb9\x46\x93\x97\x48\x3a\xe2\x7e\x3e\xa6\xa1\x56\x68\xbb\x92\x9b\xa7\xf8\xb0\x5e\x3d\xfa\x03\x51\x84\x89\x45\x5c\x94\xeb\x8a\x60\x05\x5f\x96\xd0\x48\xe3\xd5\x2a\x8d\x20\x35\x9c\xf6\x87\xba\x86\x9b\xee\xca\xfb\xb3\x61\x1a\x58\x76\x7c\xb7\xbd\xdd\x56\x4d\xbb\x2a\x35\x25\x1d\x9f\xea\x3c\x40\x1a\xab\x30\xf2\xef\x14\xd4\xcf\xd8\x5e\x3b\x19\x3f\x92\x9c\x99\xf5\x04\xd3\x24\x0e\x53\x35\x42\x15\xd1\x3b\xb4\xb4\xb0\xa6\x89\x91\x01\x8c\xc0\xc7\x94\x07\xce\x86\x2e\x9b\x8c\xcd\x1e\x40\x1a\x07\x84\xfd\xa5\xd4\xa5\xdb\xee\xc6\x4b\x5e\x9a\x45\xda\x39\xbe\xb4\xe7\xba\xbc\xc6\xf9\xbc\x49\x59\xa2\x49\x61\x85\x30\xe7\x77\x3d\xcf\x07\x52\x26\x42\xd2\x2c\xf9\xe6\x2c\x2f\xfc\x25\x4e\xbf\x9d\x29\x6b\x69\xb2\x55\x95\xbf\x31\x04\xcb\x6c\xbc\x1c\xf8\xa7\x61\x75\xca\x30\xa4\x30\xcf\x37\xd0\x3e\xa2\xd0\x41\xca\xb9\x26\xbb\xca\xf5\x5f\x57\x9f\x70\xb1\x20\xe5\xce\xb9\xda\x46\x50\x1b\x0b\xea\x72\xb9\xbf\x5f\x2f\x17\xfb\xd0\x29\x57\x49\x30\xc8\xad\xef\xe6\xd5\xe1\x7e\x94\x21\x98\x07\x05\xdd\x96\x5a\xbb\x2d\xbb\x59\xef\x8f\x6b\x49\x05\x05\xd0\xda\xb5\xa6\xfc\x91\x2e\x68\x75\x5b\xa9\x0f\xb3\x7b\xb0\xf8\xf4\x3b\x80\xc7\x04\xdc\xf4\xe0\x70\x7a\x0d\x9f\x67\x97\x2b\x01\x68\xd0\xf7\x6f\xb7\xeb\xd5\xfd\xe1\xf1\xe1\xfa\xb0\xf9\xe7\xfe\x69\xb5\x26\xb1\x8f\xab\xd5\xce\x37\xf4\x53\x15\xe9\xac\x7b\x93\xa6\x56\xab\x17\x01\xcf\xf2\xfc\x57\xdc\x84\xae\x3b\xbf\x81\xba\xdc\x80\x7a\xb9\x1a\x70\x74\x90\x6a\x69\x5f\xef\xc1\x6f\x76\xf1\xe6\x6a\x25\x29\xc0\x5d\x43\xa9\x2f\x72\xae\x7e\x8c\xa6\xc9\xf0\xb4\xba\xff\xb2\xd9\xdc\x5f\x1f\x44\xff\x25\x5a\x6b\x6b\xb8\x54\xfd\x7a\x9f\x83\x88\xfd\x18\x13\xd1\x92\x5d\xe2\xaf\x76\x2c\xdd\xb0\x86\x19\x0b\x19\x52\x0c\x15\x89\x02\xe5\x65\xde\x8e\x3d\x9d\xc3\x59\xb4\xec\x87\x27\x96\x32\xd7\x3d\xb8\x5f\x27\x67\xef\x32\x6e\xb7\xa4\xc8\x02\xea\x3a\x3c\xc8\xbc\x85\x92\x0a\xc2\xe3\xe0\x22\x45\xa5\x08\x2a\xb0\xfb\xb0\x21\x9b\x1a\x05\x14\x03\x55\xc6\x0c\x9f\xef\x57\x49\x63\x58\x22\x9c\x40\xf8\xa0\x40\x09\x59\x10\x0a\x61\x91\x17\xcd\x1e\xd5\xcb\xf8\x4b\xb3\x20\x53\xd6\xae\x45\xcb\xfe\x4f\x2c\x0d\x07\x64\x79\x5e\x3e\x6f\x4a\x3d\xc0\xa4\x21\x0b\x43\x46\x51\xee\xdd\xea\xfe\xeb\x6a\xbf\x5f\xdd\x3f\x3e\x3d\xfc\xf3\xaf\x30\xdc\x7f\xfd\xb1\x59\x7d\xdf\xf4\xc3\x98\xb1\x4e\x73\x2f\x70\x95\xeb\x0b\x69\xa4\xc9\x56\xda\x0d\xb6\xf0\x8e\xaa\xf2\xbd\xda\xfc\x75\x5a\x56\xc9\x42\x13\x27\xcc\xcb\x6a\x6c\x34\xc1\x94\x9d\xcb\xf7\xe4\xc9\x65\xa1\x51\x9e\x46\x69\x1b\x7d\xb3\x8d\x3b\x8b\xc2\x98\xf2\xc2\xbb\xd5\x9f\x9b\xa7\xeb\xd5\xc3\xe1\x66\xb3\xb9\x3e\xdc\x7d\xbb\xdd\x6f\x1f\x6f\xb7\x1e\x43\x0d\x59\x94\xc4\x5e\x35\x68\x55\x3e\x23\xc5\x48\x57\xef\x73\x87\x44\xee\x47\x33\x24\x50\x59\x53\x1d\x71\x24\x35\x06\x59\xa4\x14\x15\x95\xe0\xac\xf3\xf6\x1f\x67\x3c\xe3\xe6\x57\xde\x78\x49\x61\xc8\x22\x93\xd2\x06\x7b\x70\xe6\x82\x63\x27\x10\xc8\xe2\x24\x4b\x7a\x44\x30\xb1\x0a\x57\x79\x3d\xee\x68\x4c\x57\xcb\x2c\x4e\x35\x19\x0d\x59\xa7\x18\x2b\xc1\xf4\xa5\x82\xe2\x09\x41\xf5\x8c\x1c\xc8\x62\x6e\x53\x0e\x92\xa0\x24\xd5\xb2\xc3\x6e\xdd\x0b\xa1\x40\x16\xcb\x98\xd8\xc8\xe4\x22\x32\x7a\x97\xb3\xd8\x70\xc2\xf1\x9c\xba\xe7\x50\x10\xd6\xb5\x9f\x69\x49\xca\xc1\x69\xc1\xaa\xf3\xef\xd6\xf5\x2c\x51\x51\x3c\x54\x95\x2e\xb0\x20\x6e\x54\x16\x86\xa9\x63\x2e\x1c\x7c\x2f\xf9\xf0\xd6\xaf\xa5\x59\xa6\xb5\xcd\x75\xde\xf2\xb2\xf7\x4a\xf4\x07\x99\xb1\x5a\x29\x44\xe3\xa6\x77\xf8\x06\x67\x8b\x75\xc6\x43\x69\x17\xd2\x7f\x3e\x6e\xd6\xfb\xcd\xb5\xff\x2c\x8f\xad\x4a\x35\x68\x7d\xb5\x5f\x2f\x6c\x3a\x0e\xac\x32\x5b\x0c\x33\x9e\x88\x68\xe6\x7a\x43\x41\xa1\xb3\xbe\x19\x97\xd9\xdc\x27\x20\xb2\x80\x08\xbb\x72\x39\x0d\xe9\x49\xe2\x9c\x8c\xf3\xe7\x0c\x40\x51\x43\xe0\xba\x7b\x76\x71\x78\xb8\xde\xac\x0f\x51\x10\x05\xfe\xca\x65\x20\x69\x0a\xdc\xe3\xdb\xaa\xa6\x4a\xeb\x9c\x91\xf2\x5f\x8b\xbb\xe3\xc5\x6a\x3f\x2b\xc0\x67\x92\x2b\xe3\x13\xbd\x1a\xdb\xe7\xe5\x75\x3c\x93\x22\x61\xf1\x28\xc0\x59\xd1\x6d\xb3\xb4\xf1\xe9\x9b\x28\x65\x02\x83\x14\xc4\x94\x17\x31\xbb\xad\xd2\x80\x15\xa1\xa3\x28\x7b\xf2\x8a\xa8\x30\x22\x28\xd4\x99\x1c\x15\xaf\xec\x37\x2c\xa7\xc6\x99\x32\xca\x3b\x35\x5b\x1d\x98\x39\xa4\x62\x18\xaa\x83\x88\x84\xfc\x41\xeb\x0b\xf5\x73\xc8\x34\xa6\xca\x11\x5f\xdb\x95\xb7\xd5\x9a\x66\xd9\x19\x46\x86\xd0\x66\x23\x43\x28\xd3\x45\x9d\xc5\xb8\xcd\x96\x99\x28\x13\x0e\x6e\x7f\x55\x55\xc5\x4d\x38\x02\xac\xb1\x20\x48\xa4\x18\xe9\x8d\xbb\x74\x8a\xd6\xc8\xab\xf7\xc5\xfb\xcf\x82\x20\xb5\x6e\x6a\x43\xa5\x7b\x42\x77\x03\x16\x38\x2b\x94\x06\x5b\x12\xca\x1d\x23\xa2\x2e\x1c\x96\x27\x8f\x8c\x05\x3c\x91\xae\x0a\x65\xeb\xd1\x24\xb9\x71\xfd\x3b\x9e\x05\xb0\x30\x89\xa9\x10\xd6\x56\xcf\xcf\x05\x7e\xb7\x56\xd8\xcb\xb7\x9e\x85\x89\x22\xcd\x93\x13\xbc\x5f\xd4\xc1\x58\x98\x05\xe0\x9f\x0b\xce\x66\x14\x0b\x33\x20\x8a\x8f\x4f\xca\xa8\xce\xb8\x5c\xd7\x63\xa1\x80\xc8\xcd\x05\x1b\xb6\x3f\xe1\xc9\xba\xff\xae\xe1\xb4\x2d\x57\x6d\x5b\xa1\xe7\xa0\x01\x0b\x81\x65\x6e\x87\xff\x81\xf9\x94\x45\x38\xbb\x7a\x9d\x50\x91\xc1\x89\xc4\x3e\xe1\xab\x3f\x47\x14\x44\xdc\x25\x0a\x1b\xa8\x8b\xf7\x25\x19\x0d\x60\x91\x30\x18\xce\xc0\x95\x93\xa2\x23\x8b\x1d\xf0\xe8\x04\xef\x92\xd0\x04\x23\x15\xaa\xe9\xb9\x62\x2e\x29\x75\xf2\xa5\xa5\x1f\x79\xfb\xd2\xad\x81\x1f\x00\xdb\x3e\x76\xc9\x05\x96\x28\x20\x21\x37\xd2\x28\x2f\x4b\x54\x16\x20\x65\x53\x89\xbf\x55\x21\x67\x69\x18\x50\x89\xba\x86\x16\xaf\xba\xc4\x0a\xea\x1c\xe7\xb7\x2f\x0d\x03\x02\x01\xec\x5a\xec\xb6\xad\x86\x14\x72\x2e\x06\x29\x6b\x30\x4f\xc0\x0e\x2f\xde\x3b\x4f\x8d\xc6\x41\x3f\x4b\x31\x73\x73\x7e\x62\x14\xbb\xb8\x8b\xb2\x14\x99\x77\xe4\x38\x54\x17\xd4\x7b\x22\xff\x53\x8f\x67\x55\xe4\x8f\x50\x37\x60\xbc\x4e\x3f\x1d\xa2\x9c\x94\xba\x85\xae\x59\xad\xfb\x83\x3c\x73\xca\x3a\xc7\x63\x6e\xef\xdf\xa4\x18\xcf\x32\x8e\x14\x36\xc9\xf3\xfb\xc7\x9c\x01\x60\x2c\x15\x94\xc4\x5e\xad\x6e\x6f\xfd\xb9\x59\x16\x5a\x4d\x5c\x28\x2d\xff\xf6\xf1\xfb\x63\x7f\xcc\x70\x22\x14\x3a\xf9\xd8\x95\x97\xa3\x01\xc6\x21\x15\xae\xd4\x41\xd1\xc5\x1f\x8b\x9d\xa3\xd9\xd7\x73\xa5\x29\x5e\xfb\x17\xa8\x9f\x3d\x17\x13\x98\x08\x22\x3d\xf8\xec\x3d\x55\xd5\xac\xfc\xc6\x44\x90\x26\x2e\xa2\x7a\x84\xc6\x85\x67\xce\xe7\xda\x0f\x89\x15\x89\xe5\xab\x5c\x0f\x0b\xde\x58\x9e\x08\x98\x60\x89\x48\xbc\x16\x24\xd1\xbc\xe2\xfe\x10\x67\x10\xf9\x1d\xca\xa9\x97\x2f\xa9\xbf\x00\x13\x3a\xb5\xe6\x6b\x79\xdb\x77\xd3\x99\x0c\xc1\x5a\xc2\xc2\xe9\x1a\x8f\x55\xff\xe7\xc8\xea\x26\xff\xab\xca\xcb\xc3\x33\x5c\xbc\xb0\x92\xa1\x72\xec\x61\x67\x1f\x7e\x07\x3f\xb1\x5e\x77\x7b\xc1\x85\xed\x9f\xff\x0c\xb7\xfd\x14\xd0\xfa\x2b\xd4\xaf\xd8\xb4\xbd\xb9\xc9\xa6\xd4\x55\xdd\x90\xab\x98\x7f\x1a\xa3\x6e\xd0\x74\x56\x4b\x99\x51\x49\x72\x45\xed\xde\x2f\x5f\xd6\x8f\x55\x55\x5c\x8a\x45\x00\x53\x0c\xa9\xb5\x6a\x37\xc9\x55\xa3\xf2\x59\x11\x86\x29\x19\x50\x59\x9e\x2a\x1e\x74\x21\x97\x0d\x83\xd9\x1e\xe1\x3e\xa9\xd3\x80\x2a\x1a\x5d\xae\x74\x85\xed\xfe\xfd\xd4\xdf\x51\xcd\xad\x79\xc7\x40\xc1\xa6\x07\x4a\x8b\xc6\xa9\x26\x26\xed\xf4\x2a\xb4\x33\x30\x24\x55\x90\xb6\xb5\xe6\x6a\xb6\xcf\x3a\x34\xf0\x98\xd6\x69\x14\x3b\x9e\x72\x7d\xd1\x01\x61\x1a\x03\x5a\xab\x7d\xc9\x60\xe7\x35\x5b\x5b\xd4\x04\xf5\x71\xe3\x30\x08\x9c\x0b\xe0\xbf\x50\xb5\xae\xa1\x31\x88\xbe\xcd\x6e\x21\x06\x89\x70\x89\xc5\xcd\xb9\x28\xdc\xf0\x0f\xde\x50\x0c\xe3\xc0\x9e\xfa\xd8\x65\x6a\x43\x02\xc5\x8c\x51\x54\xeb\xd6\x50\xcd\x8a\xb3\x3c\x08\x24\x09\x50\x2a\x9a\x39\xeb\x17\x38\x9e\x2e\xcb\x0b\x3c\x88\x63\xda\x45\xf2\xb2\xc1\xfa\xd2\x5f\x73\x36\x98\xa5\x54\xeb\xa0\x28\xe0\xac\x2e\x7f\x16\x0f\xb4\x02\xd9\x43\x0d\xba\x1b\x71\x97\x17\xd8\xb4\x55\xe9\x19\xc1\x93\xa7\xcd\x03\x13\x49\x18\x85\x77\x7f\xe2\xc4\x08\x15\x78\x18\x05\x91\xcd\x1d\x9e\xbf\x95\xa4\xd6\x82\x37\x55\xfd\xb3\x5f\x05\x79\xa8\x25\xa1\xdd\xa9\x09\xd2\x6d\x60\x30\xa4\xab\x3c\xd4\x8a\x26\x00\x39\x0a\x7e\xf3\xb4\xfb\xb1\x13\xbe\x43\x8b\xf1\x28\x8d\x29\x87\xb1\xf0\xdb\xdf\xc2\xb7\xce\x33\xc0\xec\x70\x8f\xa2\xd4\x42\x03\x08\x32\x4b\x0b\xca\x30\xd5\x78\x94\xf1\xc8\xc5\x4a\x6b\x6a\x43\x4e\x99\x3d\x9f\xfd\xe3\xcf\xc0\x83\x04\x7b\x02\xa0\x67\xc5\x4e\x6e\x59\x1c\x44\xb4\x6e\xed\xde\xcb\xfc\xd7\xdf\xec\x83\xf3\x38\x48\x09\xd2\x54\xe2\xdb\xba\x72\x96\x4b\xb3\x67\x1b\x73\xab\x3e\x85\xed\x8b\xa9\xea\xb6\xcc\xfb\x66\x2d\x8f\x95\x01\xe1\x68\x67\x77\xa8\x07\xe9\x5b\x77\x3c\x31\x56\xd5\xdf\xdd\x94\x9f\xbb\x5e\xe3\x0d\x78\x1a\x45\x84\xc8\x07\xad\xc7\x1d\x80\x59\x3a\xb1\x50\x7d\xe5\x69\x64\xcd\x93\xf3\x66\x70\xce\x59\x8c\x62\x79\x9a\x86\xe4\x77\x0c\xd6\x43\xf5\xd5\xbe\x91\xd3\xa9\x98\xea\x80\x6a\xe2\x5f\xb1\xc8\xcf\x47\x07\x2b\xe9\x2f\x52\xf7\x5a\xad\xdf\x61\x51\xea\x0d\x78\x96\xd8\xa0\xe0\x6b\x75\xc4\xdb\x0a\xca\xe6\xc3\x7b\x7f\xf1\x4b\x32\x16\x12\xd0\xa6\xc4\xb7\x09\x54\x95\x67\x2c\xe1\x2e\x50\xfc\x8e\x4d\x9b\x97\xcf\xbe\x92\x31\xfd\x6e\x26\x93\x50\xf4\x2f\xbb\x73\x1c\xec\x62\x33\x7f\x1c\x03\x82\xc5\x5e\x7d\xfb\xeb\xb0\xde\xee\xff\x1a\x54\x40\x80\xf3\x10\x54\x36\xe9\x23\x78\x1d\xb8\x91\xc8\xfb\xf4\x7e\x72\x94\xe4\xb0\x02\x85\xc7\xc3\x37\xfd\xd9\x8c\x50\x8c\xb0\xda\x37\x38\x8f\xb4\xb8\x08\x91\xcc\x90\x6e\xdc\x5a\x7a\x57\xbd\xe2\xf2\x03\xf7\x1f\xc8\x62\x6a\x9e\x40\xd3\x3f\x0a\x91\x59\x94\xda\xa1\x1d\x75\x78\x38\x64\x48\x4b\xd3\x1a\xea\xc1\x4a\x67\xf6\xed\xc0\x63\xf2\x02\xec\x53\xa8\xef\x23\xec\xf5\x05\xb6\xe2\xb7\x38\x25\x2e\x23\xd9\x1b\xe9\xf6\x0a\x78\xc0\x65\x1a\xbb\x9b\x63\xb1\xc9\x57\xe4\xa5\xbc\x2a\xf5\x46\x55\xcd\x7b\xd3\xe2\x44\x01\x0b\xba\xa0\x9a\x20\x28\x1a\x15\xb9\x33\x4e\x6e\x80\x0a\x0d\xbd\x97\xb9\xcd\x53\x47\x50\x67\xae\x22\x4d\x8c\xc6\x7d\x75\x6a\xfe\xf9\x77\xdf\x73\x15\x87\x24\x57\x4b\xc8\x78\x8b\x56\xee\xcf\x27\x2d\x2f\x5f\xbd\x40\x9d\xf7\xa0\x3d\x7f\x14\x13\xed\xf1\x7a\xd7\x67\x6c\xb6\xb3\xe4\x80\x63\x9a\xa5\x61\xef\xc5\xe7\x5a\xbc\xfe\x98\x49\xa4\x7b\x7b\x28\x4c\xbd\xaa\xaa\x9f\x2b\x75\xc9\xe7\xe1\x68\x38\x9d\xe4\x74\x6e\x5e\xf6\xa4\xf6\xb7\xeb\x72\x55\x0f\x2b\x5a\x7c\x0c\x22\x10\x3a\x1d\xa7\x69\x5d\x5a\x72\x5b\xa9\x91\xd0\xde\xf2\xf3\x13\x61\x10\x24\xd9\xe0\x6d\x30\xa8\x6a\x83\x08\x13\xa4\x26\x47\x3f\x55\x28\x7e\xdc\xfc\x3a\x61\xd9\x4c\x9c\x51\x27\xe4\x20\x11\xa6\x48\x4b\xef\x6b\xd5\xa2\x0f\xc5\xfa\x63\x98\xc6\xd9\xb8\x94\x78\x8d\x2d\xe4\xf3\x56\xa6\x08\x51\x91\x10\x8c\xf5\x8b\x52\x6d\x55\x37\x07\x8d\xaf\x1e\xe9\x3e\x34\x26\x45\x88\x48\xfc\x3a\x52\x67\xbd\x7a\x7f\x84\xa6\x79\xab\xbc\x6c\x12\x1f\x57\x79\x44\xe8\x5c\xbc\xa8\x89\x70\x55\x9d\x7b\x8d\x6c\x10\x51\x1c\x52\x26\x76\x84\x5f\xf9\xf1\x7c\xdc\xdf\x5f\xf5\x47\x0c\x04\x13\xd9\xba\x63\xf5\x94\xeb\x8b\xf7\x95\xbe\x87\xcd\x6e\x6d\x64\x64\x0c\xbe\x0c\xf5\xf7\x70\x5c\x22\x89\xad\xc7\x50\x79\x3e\x36\x67\xaa\xa7\xf4\x91\xbc\x48\x52\xc3\xbd\x56\xb6\xfd\x30\x7e\x88\x05\x9f\xae\x55\x22\x61\x92\xde\xfa\xd3\xb9\xbd\x23\xb3\xbe\x39\x50\x77\x7a\x15\x69\xa0\x65\xe6\x85\x8b\xda\xb1\x52\x58\x77\xcc\x04\xdd\xb3\xd9\x9f\xeb\x9f\xf8\x7e\x75\xae\x9f\x1d\xc1\x7a\xf6\x0c\xd3\x34\xa3\xb6\xf5\xc1\xca\x53\xb8\x72\xe1\xe0\x20\xe3\x86\x65\x2c\x8c\xac\xc4\x3d\x75\x3d\x3f\x45\x8c\x7c\x00\x21\x16\x99\xb6\xef\x33\x55\x4e\x46\x91\xa1\x60\xa9\x26\x94\xb3\x5f\x85\x06\x93\x60\xc7\x42\x9d\x4b\xeb\x2c\x8a\xb2\x81\xe0\x81\xa4\x4e\xc0\xb6\x7b\xf6\x93\xbb\xc1\xc3\x24\x23\x39\xe1\xed\xed\xed\xea\xcb\xe6\xd2\xa7\x05\x84\x48\x34\x35\xaf\x0e\x03\xd6\xfa\x92\x6f\x23\x44\x82\x68\xc6\x6e\x08\xa3\x00\x6c\xa8\x19\x08\x91\x46\x8a\x79\x2c\xa4\x8b\xfd\x6d\x9c\xf2\x19\x92\x46\x40\x66\xc2\x74\xf0\x20\xbe\x81\xb3\xc2\x29\x5d\x42\xc8\xd8\xb6\xf8\x4f\xe4\xf5\x68\xe3\xc4\x89\x14\xc5\x74\x74\xaa\xe8\xb1\xad\x9f\x36\xab\xfd\xc3\x93\x35\xe2\x38\x6c\xee\x7d\xb5\x57\x48\x2d\xa9\xda\x2b\xdf\xcf\xd5\x79\x82\xb5\x15\x4a\x0f\x0e\x5e\x24\x8f\x77\xbb\x32\xe6\x83\x99\xa8\xe3\x8c\xd9\x66\xb9\xca\x4f\x39\x96\xed\xbc\xc5\x39\xfd\x9d\x5a\x84\x16\xb2\x87\x4d\x7b\x20\xe2\xbe\x24\x54\x2a\xc1\x21\x7d\xf5\x7e\x25\x49\xcc\xba\xcb\x83\x08\xc7\xf8\x08\xef\xbd\xba\x04\x08\x13\x84\x5e\x8a\x7a\x87\x45\x71\x0d\x79\xf1\x6e\x69\xaf\x93\xd2\xce\x7c\x8a\x98\x4c\x7b\x6c\x89\x55\xcb\x21\x32\xe0\x90\xfa\x3c\x62\xdd\x7b\x89\xcc\x3e\x89\x46\x31\x0f\xc5\xb7\x48\xc4\xe9\x8e\x00\x61\xc6\x48\x47\x1b\xcb\xd6\x71\x8e\xb8\x3f\x02\x96\xa9\x38\x62\x25\x4d\x2f\xd3\x8f\xd3\x51\x38\x36\x12\xbc\xae\xdf\x9f\xce\x97\x2a\x77\x8b\xcf\x00\x42\xad\xd1\x6e\xbf\xd7\x79\xa3\x8a\xaa\x39\xd7\xd8\xe5\x6b\xef\xbb\xfc\xb9\x9c\x07\x18\x10\x19\x9b\xf5\x7e\xfd\xf3\xfa\xf0\x70\x2c\x73\x5d\x15\x45\x5f\xcc\x81\xd8\x28\xed\xab\xbc\xbb\x9f\xd6\x4e\xcc\xe4\xcf\x7e\x8d\x83\xa4\xdb\x21\x6c\xe6\x7f\xd3\x6d\x10\xdd\x0e\xfc\x15\xf5\x33\x4e\xfd\xba\x00\x12\x66\xad\x9d\xf3\x86\x44\x44\x9c\x51\xc5\xf7\x41\xd9\x17\x20\x91\x20\xa4\xd7\x2a\xbc\x82\x56\xbd\x4c\x66\x3c\xa4\x10\x90\x54\xe3\x11\x7e\x3d\x86\xbd\xf0\x11\x40\x2a\x63\x4a\x1a\xbb\x0d\xcc\xe5\xd8\x4e\x48\xda\x0d\xc8\x32\x41\xac\x88\xab\xf3\xfb\xa1\x0b\x55\x0f\x56\x82\x2b\x2f\x47\x7d\x14\xc8\x32\x19\x79\x68\xd9\x98\x79\xe2\x0f\x33\xae\x62\xaf\xea\xf4\x8d\xb4\xea\xc7\x4d\x2e\xc8\x54\x20\xe0\x43\x08\x44\x3c\x3b\x1b\x8b\x53\xea\x85\x5e\x79\xf5\x3b\x00\x96\x58\x73\xb1\x03\x1e\xf3\xf6\xe6\xdc\x9e\xeb\x0b\xaf\xa9\x0f\x9e\x37\x63\x8a\x30\x75\xdf\xf3\xe6\x0c\x45\x5d\xa9\x9f\xed\x68\xc9\xeb\xd2\x24\x26\x06\x62\x9e\x4f\xb9\x6d\x38\x3b\x77\xcd\x03\xe0\x3c\x20\xb4\xda\x0e\x5b\xe7\xc7\x4c\x98\x36\xeb\x24\xbe\x00\x8e\xee\xa2\x28\xe6\x74\x53\xae\xaa\x5f\x61\xff\xb5\xc8\x98\x95\xe1\xa3\x22\x90\xfb\xab\x4c\x6c\xab\xa2\x7d\xae\x6d\x14\xe2\x3c\x3a\xfb\x08\x11\x24\x57\xde\x9a\xfa\xb1\x2a\xff\x93\xff\xb1\x90\xb0\x82\x54\x48\xef\xe0\x2e\x3f\x9e\x0a\x9c\xa4\x1f\xa0\x62\x41\xa0\x91\x17\x68\x6e\xa1\x7c\x3e\x8f\x14\xe3\x96\x37\x71\x50\x2c\x05\xbf\x48\x43\x5e\x76\x77\xe9\x7a\xec\x3e\x39\x1f\x0e\x3c\xf3\x9d\x98\x5d\xdb\x0b\x3c\x01\x28\x9d\xd0\x7b\x3f\xc1\x95\x3f\x42\xdd\xe6\x70\xa9\x75\xe7\x3f\x83\x48\x2f\x58\xae\x2a\x9a\x76\x91\x3f\x99\x86\x84\x22\xc4\x3f\xf3\xb6\xc5\xb2\xb9\xae\xab\xd3\xa5\xad\xba\x1b\x8b\x31\xa7\xb1\x27\xab\x75\x70\x43\x28\x97\x9e\x28\xea\x06\x99\x04\x42\xd7\x48\xb4\x3b\xd0\xe4\xe5\x32\x99\x24\xc5\x5a\xdf\x41\x3c\x34\x83\x56\x30\xc8\x40\x05\xe8\x2d\x66\xd7\x55\xa9\xa0\xbd\xc3\x63\x55\xbf\xc7\x11\x75\x9b\xfa\x61\x46\x05\xdc\x6f\x8a\xa4\xda\xfd\xed\x69\xbb\x29\x27\x8e\x78\x20\x43\x25\x9c\xac\x08\xc5\x34\x03\xe8\xdc\x4f\x4d\xcb\x1a\xb8\x28\xd4\xc8\x28\xb1\x90\x84\x53\x55\x4f\xa0\x03\x32\x62\x31\x71\x4f\xbb\x0d\x60\xf3\xdc\xaf\x4e\x32\x8e\x02\x4a\x44\x5e\x73\x7c\x5b\x36\x22\xf6\x03\x53\xae\x6c\x6f\x9d\x30\xef\xd6\x99\x73\x36\x44\x4a\xdd\x45\xd7\x07\x59\x57\x3f\xb1\xbe\xc1\xc1\x03\xfb\x6f\x72\x44\x64\x2c\x95\x2b\xda\x75\x5b\x95\x59\x43\xad\xaf\xa1\x85\xe1\x72\x75\x42\x75\xad\x12\xdf\x36\x65\x5b\xcf\x10\x2f\x32\x09\x5c\xce\x5b\x14\x44\x89\xe8\x82\xbd\xc6\xbe\x45\xfd\x29\xd2\x24\xa6\x35\x74\xbf\x59\xdd\x1d\x1e\x1f\x1e\x6e\x0f\x23\x42\xb5\x4c\x93\xd4\x89\x58\x3a\x55\x8c\x70\xac\x8f\x0f\x32\x55\x8a\xe4\x48\x08\xf8\xde\x8e\xd7\x37\x99\x39\x6f\x08\x27\x17\x38\xf6\xae\xe9\x5b\x44\x92\x25\x96\x75\xd8\x56\x3f\xfb\x3f\xa5\x36\x89\x3f\x76\xb9\xdb\xe4\x45\x95\x8c\x73\xeb\xf1\x5b\xa3\xac\x73\xdd\xbf\x47\x92\x09\x4e\x95\x05\xdb\x29\x9b\xed\x24\x92\x29\x2b\x61\x61\x7d\xa2\xb0\xfe\x0a\xc5\x6b\x5e\x3e\x77\x99\xd0\x13\xb4\x23\x87\x3a\x37\x9e\x8b\x84\x02\x60\x5b\x66\x70\xaa\x9d\xd3\x21\x82\x89\x48\x8f\x30\xa1\x63\x36\xa4\x1b\x02\xa9\x89\x7d\x9b\x00\x4a\x9d\x77\xe1\x56\x43\x68\x45\x3f\x80\x65\x64\x67\xbc\xd9\x15\x55\xdb\x4c\xa6\x27\x30\x23\x32\x1f\x04\xfe\xfa\x82\xe5\x67\x7a\xac\x20\x41\x27\x01\x9b\x68\x14\xd0\x25\x4f\x27\x83\x4c\xa3\xd4\x96\x10\xab\x72\x5b\xaa\x59\x21\x55\x4a\xa1\x49\x21\x4a\xe3\xa9\x40\x8a\xaa\xfc\x11\xc5\x33\xc2\x13\x74\x73\xa0\x6f\x8f\x4e\xa7\x81\xe6\x82\x52\xdf\xbb\x6b\x6b\x6d\xfa\x8c\xd1\xef\x42\x8f\x0f\x66\xbc\xe6\x18\xd8\xdc\xb8\xdd\xb5\x8a\xb8\x6a\xad\xba\x78\x5b\x7e\x67\x8f\x36\x1f\x37\x1e\xcf\xfb\x6f\x32\xd9\xd0\x49\x9f\x08\xba\x81\xd4\x26\x42\x17\x23\xfa\x3c\x78\x12\x22\xba\x61\x18\x42\xe6\x9a\x27\x6d\x81\x04\xd6\x74\xbe\xe0\xee\x57\x2f\x89\x04\x5c\xb2\x78\x25\xc6\x09\x99\x30\xed\x51\x7d\xac\x66\x32\xfb\x6a\x03\x3e\xd1\xde\x1c\x4f\x45\xf5\x8e\xc3\xaa\x6a\x40\x99\x41\x65\x61\x8f\x30\xef\x51\x9d\x27\x5e\xe3\xd3\x13\x1b\x29\x31\x1e\x21\xe6\x7b\x69\xeb\x89\x68\x82\x0a\x74\x46\xf0\xb7\x12\xdf\xbe\xd4\x88\xc4\x2a\x1f\x2f\xda\x2a\x84\xbe\x94\xf2\x03\xf1\xa7\x9e\x19\xad\x82\x0a\xa5\xf5\xd6\xf8\x52\x15\xfa\x98\x97\xed\xb7\xb2\x19\xcb\xc2\x4e\xa6\xb8\x8a\xd2\x28\xb2\x21\x6a\xb7\x1c\x97\x48\x0b\xda\x1f\xfe\xa0\x0e\x83\x41\x4a\xd7\x41\xc9\xdc\xb1\x38\x8b\x68\x42\xfd\x05\xea\xa5\x55\xd5\xf0\xe7\x94\x3c\x29\x3c\x53\x77\x24\x5a\x73\xfe\x00\xc1\xb7\x38\x61\x55\xcc\xad\x06\xf1\x55\x71\x3e\x41\x33\x79\x8d\x55\x2c\x0c\x2d\x81\xe7\xb2\x01\x83\xdb\x66\x14\x4e\x87\xfe\xf3\x49\x24\x8c\xf5\x65\x2c\x9b\x16\xca\x36\x2f\xab\x53\x81\xe4\x03\x72\xe3\x94\xb2\xfd\xe9\xd2\xc4\xaa\x14\x1d\xcc\xb9\x30\x79\x31\x95\x17\x05\x95\x02\x78\x81\xec\xbd\xad\x80\x0c\x24\x4f\x95\x6a\xf4\xec\x48\x2a\xd7\x13\x8c\x19\xeb\xe5\xf0\x40\x65\x32\x92\x5e\xea\x95\x8a\xd9\x24\xc1\x41\xa9\x7d\x55\x8f\xd4\xf2\x41\x65\xda\x32\xcb\x4c\x5d\x35\xed\xa4\xe2\xa7\x98\x60\x94\x6f\x7a\x0e\xdc\x73\xae\xa6\x4b\xa4\x62\x12\x49\xe9\xc9\x06\x65\xdd\xdd\xf1\x9f\xe5\x49\x44\xf8\xd9\x27\xfc\xf7\x39\xaf\x51\xdf\x20\xde\x57\xed\x1d\x7e\x50\xcf\xe8\xc6\x93\xf4\xdf\xfa\xc7\xfe\x33\x1c\xab\xe2\x0c\x8c\x0d\xb8\xaa\xff\x60\xb9\x54\x4e\xec\x07\x5a\x0f\x94\xab\xbc\x6d\xdf\xa0\x9d\xbd\xf8\x8a\x3b\x3f\x2c\xfb\x86\x39\x77\xbf\xd9\x18\xe1\xfc\x24\x24\xbe\x40\x31\x6c\x47\x4a\x18\x4e\x6d\x82\x76\x42\xa4\xf1\x0b\x46\x3c\xac\x0e\xf1\xff\xfe\x9d\xe2\x88\x12\x46\xd9\x59\x46\x0b\xd9\xba\x2a\x5f\xb1\xb6\xe2\x57\x17\x97\x24\x43\xa6\xdc\x3b\xf9\x88\xcf\xcf\xae\x4a\xf2\xc1\xe6\x32\xbb\xc5\x32\x8a\x49\xe6\xc5\xa9\x10\xff\xc0\xfc\x6e\xed\x7f\x92\x8c\x2d\x83\xe1\x1f\xeb\x87\x4f\x5d\x85\x96\x8b\x17\x4a\xa5\x01\xe1\xf9\xb6\xe5\x6b\xf5\x73\xa9\x77\x7a\x91\x43\x28\x85\x48\x28\x0d\xbb\xe3\x3f\x76\x01\x81\xce\xfb\x80\x40\xe9\x20\x25\x1f\x51\xb0\xfd\xbb\x85\xfc\x4c\xe9\x24\xa1\x8a\x99\x87\x86\x7a\x5d\xe1\xfe\xb0\xa6\x0e\x6d\xb7\x32\xdd\x56\xea\xe7\x1a\x9a\x97\xea\xfc\x01\xfa\x41\x69\x15\xa6\x6e\xbf\x38\x9f\x96\x15\xc4\x41\x69\x1d\xd9\x8c\x8f\x70\x6d\x8f\x0b\x02\x59\x33\x1d\xe5\xee\x23\x06\x82\x51\xe7\x70\x5e\x96\x5c\x9c\xeb\x93\x9a\x65\xe4\x04\x01\x14\x0a\x65\xc9\x90\xd0\xe2\x63\x01\x65\xf3\x60\xac\xe0\xc6\xe7\xed\x50\x85\x10\x91\x3a\x71\x4e\x56\x19\x36\x7a\xb4\x7b\xa1\x1f\x60\xac\x6f\x02\xb6\x2f\x50\xb7\xab\xba\x5d\x75\xeb\x6f\xbf\x97\x2a\x13\xb0\xd0\xc1\xfb\x76\x2d\x9e\xf6\x6f\xd5\x52\x17\xc2\x0f\x4e\x2c\xc2\xc8\xd7\x3b\xec\x62\x19\xf1\xc5\xd5\xd8\x3b\xe3\x81\x32\x9c\x93\xf0\xcf\x63\x5e\x14\x50\x2f\xce\x41\x3b\x52\x07\x4c\x52\x3b\xad\xaa\x41\x15\xf8\x70\x6e\x55\x75\xc4\x66\x19\xf2\xa0\x03\xff\x9a\xdb\x22\x41\x9f\x66\xd8\x84\xdd\xfd\x40\x1d\x2a\x49\xe5\xae\x5e\x27\x7c\xb0\xff\x58\x9c\x2d\x3a\x4a\xad\x7b\x50\x17\x90\x5a\xf1\xee\xfb\xf3\x8c\x03\xa6\x23\xe6\xfa\x14\x05\xe4\xc7\x5e\x46\x75\xf9\x37\xc5\xcc\x6a\xda\x68\x6c\xda\xba\x7a\x5f\x8f\xcc\xfd\xfe\x6b\xbc\xd9\xe8\x98\x59\xa5\xa3\xeb\xff\x7e\x1c\x6f\x54\x3a\x89\x52\x8a\x78\x73\x55\x45\x59\xff\xc7\x84\x51\xd7\xfa\xf1\xdc\xe6\x63\x79\x14\x9d\x18\xa0\xb2\xca\xe6\x69\x1d\xf5\xda\x35\x3a\x15\x8a\xe6\x49\x97\x0e\x9d\xe0\x7d\xd6\x9c\xd4\x29\x64\x5c\xf5\x94\x89\xad\x26\x2b\xa6\x09\xde\xbb\xdb\x49\x08\xeb\x42\xf5\x7b\xaf\xb8\xdd\x8c\xba\xa8\x3a\xc3\x2c\xb1\x28\x85\xe7\x17\x57\x6c\xe8\x0f\x19\x61\xe2\x5e\xc4\xe9\xd7\x24\x16\xd1\x8c\x09\x02\x11\xb9\xee\x62\x8f\x31\x5a\x7e\x3c\x3c\x65\xe0\x26\x34\xd6\xbb\x8b\x36\xa4\xe6\x3c\xce\x7a\xbb\xc2\x03\x0c\x7a\x35\xb3\x9f\xcc\x15\xcf\xac\x18\xee\xba\x3a\x1e\xa9\xc8\x34\x8a\x4c\x34\x57\xc2\xca\x4e\xd1\x1e\xb2\xcb\xbb\xeb\xf5\x78\x83\xbf\x15\x2c\x6b\xa1\x99\xc7\x21\x74\x41\x94\xc5\xcb\x8e\x1a\x83\xd3\xcb\x81\x28\xe4\xae\x44\x68\x41\xea\xe3\x88\x57\x43\x2c\x89\x72\x02\xb6\xab\xaa\x97\x48\xee\x7e\x28\x6a\x57\xc9\x2e\xf5\xc1\xb9\xe6\xf5\xa7\x31\xa9\x19\x5c\x5e\xba\xb4\x78\xa1\xc9\xae\xc1\x30\x7a\x8e\x48\x11\xe6\x63\xf5\xd6\xaf\xbb\x5a\x62\x4a\xcd\xb1\x9e\x30\x67\xcd\x3c\xdc\x51\x15\x48\x67\xd4\xd9\x5a\xe9\xfe\xe6\x25\x3f\xcd\xf5\x3e\x87\x1b\xa4\xa4\xa6\x86\x71\xde\xec\x5f\xf2\xe6\x2b\xd4\xda\x10\xac\xc2\x99\xd5\xfb\xb3\x9a\x2c\xf5\x78\x52\xeb\xd8\xdb\x2d\x50\x4d\x0b\xc7\x99\x6c\x22\x06\x41\x60\x8d\xd6\x60\xa4\x1f\x30\xf1\x8c\xf5\x03\x41\x65\x56\x80\x41\x36\xa3\x57\x07\x03\x93\x26\x54\x90\x20\x20\xe8\x6a\xde\xed\xc2\x30\x42\x9a\xa8\x37\x5f\x6f\xc6\x2f\x28\x86\xdc\x26\x08\x6e\xae\xb4\x40\x58\xd0\x49\xe4\xf0\x61\x12\x34\x7e\x13\x30\x92\xdc\xda\xce\x7f\x5d\xed\x36\x33\xfb\x6d\xc0\x48\xc5\x74\xf3\x9d\x3d\x81\xdf\xc7\xf6\xf9\x88\x12\xf0\xbb\x94\x66\xf4\xff\x75\x73\xa6\xff\xc7\x7d\x45\x1c\x5a\x74\xbe\x6d\x1a\x7d\xf9\x70\x91\xc4\x38\x01\x31\xcc\xa4\xe2\x14\x66\xd3\x49\x84\x71\x22\x69\xdf\xd9\x18\x24\x70\xf3\xe4\x86\xc5\x59\x42\x50\x79\xf2\x63\x3c\x24\x56\x4e\xf8\x70\x1a\x91\xb8\x30\xd1\xb6\x77\xf4\x27\xbe\x3b\x6d\x8a\xb1\x62\xd7\xe2\x4a\x8b\x09\x0a\x0a\x3b\x8e\x07\x35\xc2\x66\x8d\xd7\x28\x4c\x43\x10\x30\xae\xc4\xe3\xeb\x12\x33\x19\xd3\x54\x5b\xeb\xb7\x23\x96\x1a\x35\xa1\x5b\x3d\x09\x87\xe4\x57\xfa\x7c\x0e\x53\x9d\x30\x57\x25\xbb\xaf\x34\x36\xdf\x61\x0e\xf1\xc5\x14\x51\xc9\x81\x7f\xf9\x18\x5f\x5f\xe7\xaf\x1b\xa8\xbb\x84\x68\x3e\x36\x03\x49\xd0\x46\xdb\xaf\x7a\xcd\xbb\x57\x61\x98\xf1\x2e\x6a\x98\x3d\x0d\x9e\x66\x16\xf9\x5b\xe7\xa5\xfe\x56\xe6\xaa\xaa\x67\x82\xcb\x80\x3c\x0b\x68\x41\xa3\xae\x3b\x85\x5c\x43\x24\xe4\x87\xa8\x34\x75\x58\xb5\x1f\x6f\x93\x52\x10\x72\x34\x81\xab\x79\xdc\x42\xd3\x76\x73\x6e\x92\x29\x21\x37\xce\x36\x79\xb7\xf6\x28\x4d\x14\x01\x24\xb6\x49\x70\x5f\xb5\x50\xbf\xaf\xb4\xa5\xb9\x90\x9a\xca\x6f\x4b\x10\xe3\x38\xc9\x9f\x30\x0e\xbd\xfa\xed\xa3\xe5\x6b\x7c\x3b\xed\xab\x4b\xc8\x31\x8a\x0c\x19\x1b\x93\x16\xaa\xfa\xe8\xc2\x82\xd9\x40\x30\x59\xe8\xdb\x04\xc4\x69\xf8\xa0\x4c\x8c\x10\x00\x81\x26\x0b\x2c\xf5\x80\x6a\x41\x48\x2d\xbe\x6f\x55\x93\x9a\xd1\xe7\xed\x7e\x04\x06\x94\xe8\xed\xb0\xdd\x5e\x5b\x11\xad\xe5\xa9\x2c\x03\x1b\x34\xdc\xe6\x0d\x4c\x5e\x1d\x09\x21\x0c\x79\x9b\xb5\xd7\xef\xf6\x41\x02\x01\xcf\xa6\x92\x4a\x32\xc6\x06\x94\xec\x6d\xd5\xe4\x8e\x01\xde\x4f\x5e\x95\x25\xe4\xde\x68\x4f\xd7\x13\x3c\x4a\xbd\x86\xa2\xf8\xe1\x57\xf9\xf9\x79\x8d\xa0\xaa\x3f\xf5\x36\x7c\xa9\xea\x89\xce\xf0\x41\x85\x00\x35\x07\x96\x8d\x4b\x95\x93\x12\x15\x6a\xb0\x5e\xf2\x76\x39\x71\xfb\xec\xb2\xcc\x0c\x6a\x0d\xda\x9a\x89\x50\x2e\x75\xf5\x73\xbe\x0f\x98\x20\x05\xc7\x74\xd9\x55\xe5\xf3\x8f\x3a\x6f\xfb\xf2\xf8\x32\xe3\x0f\x0d\xb7\x72\x3f\x87\xbc\x79\xd0\xfa\xa6\x80\xe7\xf9\x39\x55\xac\x1c\x3b\xb8\x87\xa6\x93\x3b\xc1\x12\xe7\xd3\xc5\xbd\x26\x4c\xad\xb7\xea\xe1\xe8\x30\x72\x93\x73\x9a\x30\x4b\x69\x55\xd8\x3c\x12\x0f\x7c\x9a\x3c\xf8\x31\x92\x53\x2f\xe3\x74\x2e\x8a\x11\x09\xce\x84\x46\x64\xe0\x79\x1f\xdd\xfa\xda\xe5\xaa\xe4\xec\x3d\x49\x3f\x4d\xc4\x24\xa1\x41\x0e\x35\x6a\xc4\x4b\x4d\xb8\x49\x2d\x6e\xfc\xae\x99\xd8\xa5\x7d\x7e\xa5\x5c\x8e\x99\xa7\xf7\x91\x7a\x12\xcc\x33\x6b\x27\x8f\xd8\x24\x2a\xa4\x6d\x7c\xbf\xdd\x3c\x25\x87\xa7\xd5\xde\x77\xe8\xbb\x4d\xd7\xd9\xd1\xd7\xe5\xae\x3a\xe2\x82\x5e\x3c\x98\x34\x53\x32\xe8\x97\xd0\xa9\xfd\x18\x98\x4c\x84\x84\x77\x6a\xac\xcf\x20\x6a\xe7\x94\x35\x7e\x75\x4c\x66\x0c\x55\x95\x80\x34\xe5\x67\xe7\x67\x88\x44\xb4\xf8\xbe\xbd\xfe\x3d\x84\xc9\xf0\xc0\x04\xe8\x15\x78\xbb\x69\xd8\xad\xd2\x1f\xbc\x2e\x46\x70\xeb\xbc\xd6\x60\x4b\x6d\x06\x0b\xe3\x9e\x7e\xbd\x0c\x98\x4a\x7a\x1e\x0f\x79\x64\x74\x8f\x35\x6f\x67\x5a\xce\x46\x06\xd6\xae\xb5\xfb\x9e\xeb\xfd\x57\xff\xdb\x24\x28\x31\x95\x8c\xa0\x9f\xfe\x31\xff\xde\x48\xc9\xb4\x4b\x73\x1c\x7e\x0e\xea\xf7\x83\x99\x56\xb5\x8c\x0a\x12\x7a\x6f\x9f\x50\x3f\x52\xbb\x38\xff\xff\x58\x7b\xb7\xe6\x56\x71\x35\x6f\xfc\xbb\xbc\x57\x7d\x31\x17\x20\x09\x10\xff\x3b\xdb\x71\xb2\x3c\x9d\x83\x27\xf6\x5a\x6b\x76\xef\x9a\x72\xe9\xf0\xc8\x61\x2f\x0c\xde\x80\x93\xb8\x3f\xfd\xbf\x78\x24\x71\x0a\x49\xf7\xd4\xfb\x5e\xa5\x2a\xc8\x18\xb0\x90\x9e\xc3\xef\xd0\x1f\x4a\x12\xd4\xc9\x3c\x64\x75\xf7\x2f\xb0\x72\x20\xd8\xff\xaf\x6c\x75\xa8\x3e\x68\x38\xbb\xbe\xb8\xdf\x2d\x8c\x4e\x98\x77\xd0\xb0\x15\xfc\x69\x3c\x6c\x34\x17\xa1\x2b\x89\xdd\x5b\x6e\xcd\x88\xd4\x33\xbe\x17\xcd\x85\x35\xba\x87\xba\x59\x37\x2f\x3e\x3b\xf1\x97\xd5\x46\x9a\xe0\x5d\xf4\x2d\x2c\xbd\x4b\x4d\x0c\x10\xc3\x5d\x71\xa0\xab\xc9\xf8\x17\x18\x62\x82\x44\xdf\x73\x2e\x14\x2c\x3f\xab\x6f\x19\x23\x39\xa6\x1c\x59\xbd\x15\x55\x53\x7c\x22\x3e\x22\x83\x00\x24\xee\x91\x58\xb5\x5b\xbf\x83\xba\x0c\xe0\x8d\x6e\x4c\x48\x0d\x4a\x10\x1f\x84\xd6\x3f\x2c\x5e\xe1\xaf\x42\xc8\x2e\xf8\x97\x01\xa1\xca\xf0\x6e\xaa\x4d\xb2\x04\x3f\x06\x28\x76\xc6\x37\x85\x2a\xab\x0a\x54\x33\xc3\x9f\x71\x43\x69\xc0\x30\x85\xf1\x02\xd8\xce\xae\xf2\x6b\x26\xa4\x0c\x68\x68\xc5\x68\x7e\x65\xed\xa2\x75\xca\x8a\xa7\xc2\xb3\x1d\xda\x83\xd6\xc4\xb4\x7e\x29\x2b\x84\x78\x38\xa5\xd2\x3e\x50\xe7\x9f\x9d\x56\x84\xc8\x2b\x3c\x58\x4d\xeb\x36\xd4\x76\xa2\x39\x93\x3b\x64\x44\x59\xcd\x4e\x2b\x1d\x5d\x0f\xfd\x1f\xdd\x90\x48\x43\x62\x45\xcd\x5e\xa1\x68\x5e\xf6\x20\x4e\x1d\xa4\x2e\xf7\x97\x1a\xa7\x09\x0c\xcc\xb0\x26\xdf\x12\x43\x88\x4d\x46\x67\x6f\xfc\x33\x2b\x9c\x57\xdc\xf1\xa5\xf9\x38\xd8\x58\x38\x02\x88\xc6\xc7\x67\x8b\xbc\xe3\xfc\xc9\x20\x21\x01\xae\xf3\x0a\x37\xf4\x3b\x51\x0f\x14\x0d\x64\x90\xa4\x06\xf1\xa6\x48\xdd\x29\x8d\xff\x37\x67\x9a\xa5\x3e\xab\xee\x20\xde\x32\xe0\xa9\x35\xda\xf4\x25\x0f\x77\xfd\x83\x92\xb3\x0c\x52\x99\x10\xe1\xd2\xe4\xea\x75\x84\x21\x94\x41\x0a\xd2\x8a\x1d\x1f\xe0\xfd\x3c\x79\x72\x22\xd0\x96\x96\x63\x4b\xcf\xd8\xf3\xed\xdc\x22\xdd\xaf\xf8\xa1\xbf\x32\xd8\x59\x64\x20\x34\x37\x5e\xfc\xbe\x11\xbf\x40\xef\x5e\x26\x82\xa6\xed\x18\xeb\x37\xed\x24\x71\x91\x71\x3a\xdd\x6a\x07\xf3\x5e\x0a\xa9\xad\xb9\x22\xd6\x0e\x66\x76\x10\x19\x48\x69\x2c\x8e\x57\xeb\x75\xd1\x54\xe5\xb9\x9b\x92\xd2\x51\xed\x11\xd9\x77\x1a\xc4\x64\x83\x6f\x50\x49\x8a\x44\xa6\xe6\x52\x15\x4f\xc5\x53\x25\x54\xde\xee\xb6\xee\xa8\x8e\x58\xe8\x4c\xb9\x11\xf2\x04\x79\x3e\x58\x81\x64\xa0\x85\xd0\xb2\xbb\xe5\x26\x53\x8b\xaa\x12\xdd\xf7\x6b\xc3\xb0\x59\x2f\xea\x1a\xaa\x66\xfd\x6f\x42\x5d\x9c\x4f\x5d\x95\x90\xba\x81\x40\x14\x8a\x73\x59\x45\x0f\x5f\x77\xba\xef\xe8\xcc\x32\x80\x28\x40\x17\xb3\x6f\x65\xae\x47\x85\x36\x7f\x3c\x21\xa1\x8b\xe3\x97\x97\x6a\x5a\x5c\xf6\x83\x20\x20\xa2\x83\x6a\x7a\xed\xda\xc9\x20\xc3\xa8\x6d\x63\x89\xc2\x2e\x65\x9f\x2c\x22\x61\x10\xf3\xd4\x2a\x0f\x08\x8c\x54\x0e\x5d\xf5\x70\x74\xc2\x30\x24\x3c\x84\xae\x06\xe5\xda\x19\x13\xa9\x9a\x71\xa9\xfd\x9f\xe4\x7f\xfc\x67\x59\x44\x7a\x05\x8c\x9e\xf1\x33\x7b\x7f\x61\xc8\x2c\x43\xf5\xdc\xbb\xc3\x7e\x18\xa0\x50\xa0\x05\x61\x75\xbb\xef\xdb\xed\xfd\x3f\x0e\xcb\xa7\xef\x8f\xfb\x7f\x1c\xee\x37\x0f\x1b\x87\xf2\x91\x61\x98\x72\xd2\xc5\x01\x65\xae\xcb\xb7\xc2\xd1\x29\xfc\x00\x48\x84\x0b\x5b\x7e\x94\x56\xc6\x51\x54\xfe\x3d\x0b\x09\x0b\x63\x97\xcf\x7c\x83\xaa\xec\x05\x8c\xa6\x51\xaf\x0c\x89\xb6\x1d\xe0\xe5\x7e\xd7\x6f\xc2\x32\xa4\x24\x02\xd1\x71\x31\x2c\x98\x7a\x65\xcd\x0d\x1c\x02\x7f\xfc\x16\x84\x8c\x4a\xdc\xd2\x5e\x44\x25\xce\xa2\x3b\x0f\x83\x00\x9b\x74\x9d\xf7\x52\x3e\x5f\xce\x94\x61\x4c\xad\x60\xba\x6f\xae\xcf\x5a\x1e\xb8\xb1\x49\x10\x60\x50\xd5\xc5\x22\xd6\x9c\xa1\xaf\xe4\xcb\x30\x61\x01\x96\x67\x9b\x0c\x2a\xda\xfd\x53\x6a\xcd\x3f\xc4\x9e\x7f\x47\xd4\xd8\x9d\x80\x4b\xeb\x26\x81\xbd\x2d\x30\xcd\x53\x9b\x29\x38\x43\x3e\x51\x35\x59\xdd\x60\x39\xc1\x8d\x4e\xc1\xd6\xad\xb2\x1a\x43\xfa\xa1\x2e\xa5\x0c\x45\x64\x81\x4f\xae\xb8\xf3\x26\xce\x2e\x91\xf4\xa9\xf8\x67\x21\xf5\xf8\xb1\x49\x60\x84\x75\x13\x01\xea\x25\x34\x6f\x60\x3d\x08\x3e\xdb\xd7\xc7\x27\x50\x51\x94\xba\x25\x06\xf1\x93\xbd\x47\xa1\x0c\x15\xb7\x4a\x3f\xd2\xca\x8d\x61\xd4\x37\x7e\x20\x4a\x48\x36\xa2\x6e\xaf\x9b\x97\x7d\x39\x6b\xee\xea\x3f\xa1\x15\x82\x28\xf0\xb1\xc5\x37\xd9\x6b\xfd\xf4\x36\x90\xbd\xf5\xa3\x8c\xc1\xad\xf6\x5c\x36\x07\x7f\x35\x3a\xb0\xe8\x22\xb7\x18\xeb\x01\xfa\x54\x86\x9a\x58\x57\xc2\x93\x78\x47\x83\xbe\x41\x8e\x20\x43\xad\x08\xd2\x50\x9d\x72\xfa\x10\xe4\x8e\x6a\xb2\xdd\x04\xd1\x9a\x78\x85\x96\x2e\xea\xb6\x6d\x8f\xf1\xe5\x69\x6d\x6b\x87\xd6\x36\xc1\x41\xf8\x3a\xac\xa1\x0c\x41\x2a\x84\x5d\x9c\xa1\x3a\x43\x73\xf1\x2e\x06\x32\x04\x45\x82\xae\xd2\x50\x9e\xa1\x6a\xae\x0e\x5f\x81\x7a\x41\x36\x98\x1d\xec\x0f\x21\x98\xd8\x3b\x0a\x3e\x5c\x6d\x47\xf6\x93\xf5\xd0\x84\x11\x1a\xd6\xd9\x8e\xe0\x4d\x25\x8e\x65\xf1\x51\x95\x5c\x86\x46\xc6\x9a\x75\x21\xfd\xa3\x50\xed\xfc\x7f\x84\xc6\x4c\xc7\x41\x88\x80\xbd\xf5\xe3\xee\x19\x70\x6a\x4c\x82\x0f\x12\x04\xc6\x12\x53\x72\x10\xd5\x60\xf5\x20\x81\x00\x9a\xfe\xef\x18\x67\x9f\xd5\xbb\x25\x09\x19\x45\xbc\x7d\xbb\x10\x6e\x7c\xab\xd1\x1f\x13\x91\x23\x8a\xe7\x39\x54\xc6\x67\x41\xfd\x61\xe1\xcd\x4b\x97\x65\xa1\x67\x9e\x06\x21\xce\xeb\xd2\x9b\x77\xec\x2e\x72\x96\x06\x2f\x09\x49\x42\x4c\x59\xce\x9b\x1b\x3f\x25\x09\x8d\x59\xd0\xf5\x6b\xb6\x79\x39\x1f\xc9\x4b\xc2\x08\x41\x34\x0d\x22\x4a\x97\xd7\x8f\xc0\x7a\x49\x18\x08\xec\x3d\xab\x5e\x5c\xd5\xad\x80\x7e\x80\xe9\x5c\x54\x5c\x16\x3a\x15\xe9\x68\xc7\x24\x18\x4d\xac\x76\x67\xa1\xa0\x1e\x3d\x2b\x66\x74\xe0\x6a\xb0\xbf\xc3\x15\xc9\xa7\xe3\x1b\x8c\xe2\x10\x5b\xca\x79\xa9\x7e\xa1\x2f\xe0\x10\x2b\x24\x49\x94\xca\xa8\xa3\xa8\x9e\xd0\xdf\xeb\x15\xd0\x64\xa0\xd7\x72\x90\x24\x92\x06\x6d\x6b\xba\x4a\xfe\x27\x4f\x33\x4e\x05\x36\x9f\xba\x4d\x7b\x04\x8e\x91\x24\x09\x08\x42\xa0\xed\x8f\xf2\x96\x35\xea\x65\xb6\x43\xec\x87\x13\x85\x38\xed\xbb\x0a\xa0\x90\x59\x77\xd1\x09\x63\x91\xeb\x7d\x7f\x2f\x54\xc7\x69\x19\x3f\xb5\x44\x10\xdc\x96\x0d\xa8\x97\x76\x11\x7d\x10\xd6\xfc\xe6\xb6\x44\x5d\x84\x6a\x79\xdd\x15\xe2\x5c\xbf\x94\x4e\x4d\x72\xf6\xfd\x23\x5c\xc4\x98\xb7\x96\xd5\x51\x14\xd9\x9f\x50\x11\x7f\x11\x5c\x6a\x5b\x20\xc8\xf3\x67\x78\x05\xd1\x35\x60\x24\x49\x69\x80\x45\xa7\x4d\xbd\x59\x3d\x55\x97\xa2\x77\x16\x92\x24\x55\x8c\xb9\xa4\xeb\xae\x9c\xf0\x0e\x25\x11\x0c\x10\x2c\x81\xf8\xbe\x6a\x64\x03\x21\x89\x88\x19\xa6\xed\xeb\x95\x93\xe7\xfd\x59\x89\xf3\x79\x5c\xad\x9a\x47\x16\x48\x22\x94\x10\x81\x33\x3d\xba\x13\x0d\xbc\x75\x01\x25\x91\x22\xc0\x70\xb8\xac\xb2\x63\x56\x78\xcd\xae\xee\x28\x04\xc8\x88\x58\x66\x85\x78\x1f\x4d\x3d\x15\x24\x41\xec\x11\x08\xb8\x30\x8f\xef\x45\x91\x08\xab\xfe\x0f\x50\xb5\x91\x56\x83\x3a\x88\xdf\xb2\x1a\x8d\x5c\x86\x69\x2c\x51\x3c\xd5\xb6\x4c\xa9\x01\x4e\x63\x82\x9e\x24\x4a\x2a\xb4\xdb\xc2\x1e\xde\x04\x32\x2c\x89\x8e\xc2\x78\xe8\x50\x78\x70\x86\x1b\xe8\xa9\x7f\xd8\xac\x9e\x3e\xe2\xb7\xdc\x27\x0d\xb1\x76\xba\x59\xbd\xcf\x72\xb8\xcf\x5e\x67\x94\x8d\x24\x31\x29\xc8\x41\xe2\xf6\x08\x6f\x4e\x18\x7b\x34\xf3\x69\x48\x03\xdb\x0d\x42\x83\xe1\x07\xf1\x7e\x2f\x3a\x95\x23\x49\x43\x26\x11\x40\x78\x5f\x1e\xb7\xbd\x8c\xa3\xa4\x61\x9a\x20\xe2\x08\x63\x67\xbf\x81\xf9\x07\x4c\x49\x18\x05\x4e\xeb\xe3\x5b\x79\xa9\xe6\x6b\xcd\x92\xd2\x50\xf9\xa8\x71\x95\x35\xe2\x83\x0e\x86\xa4\x14\x84\xea\xdd\x34\x1d\x4f\xad\xa9\x2e\x0a\xb3\xb0\xcb\x18\x61\xf7\xbf\x68\x0a\x5d\xc6\xaf\x37\x65\xa1\x00\xdd\x49\xbf\x61\xb6\x36\xb5\x4d\x92\x34\x62\x0c\x7f\xec\xff\x14\xbf\xca\x57\x7f\xab\x91\x00\xea\x78\xc6\xfb\xec\x64\xad\xcb\x26\x6c\x05\x49\xe3\x94\x13\x57\x7c\xb1\x10\xd9\xe1\x24\xa2\xb1\x54\x58\x3f\xfd\xd9\x06\x8c\x03\x05\x45\x49\x13\x62\xad\x58\x76\xf5\xcb\xef\x5e\x77\x56\xd2\x84\x19\x04\x46\x2d\xf7\xeb\xc7\xee\x7f\x71\x84\xbf\x47\x2e\x6a\xbb\x2a\x1c\x5e\x43\xfa\x4d\xd4\x2f\x07\x77\x25\xfd\x40\x40\xfc\xd6\xb2\x2c\x75\x39\xac\x1f\x49\x9a\xa8\x64\xa0\xec\xe4\x60\xf4\x93\x67\x90\x28\x83\xdb\x42\x9e\x35\xcd\xa6\x5e\x89\x73\x7d\xc9\xc7\xc5\x58\x49\x39\x0f\x9d\xc8\x87\xf8\x05\x37\x16\x0e\xf0\x11\x04\x3e\x2b\x4a\x20\x69\x1a\xd9\xaa\x76\x1b\x28\x07\xf7\x4f\x3e\x05\xa1\x69\x2c\xb0\xb8\x65\xe7\x00\x76\x77\xf6\x20\xaa\x31\xa6\x70\xe6\x97\x4d\x79\x64\xad\x85\x5f\x44\x35\xd0\xf4\x6d\x0f\x08\x8b\xad\x11\x59\x51\x58\x3b\x90\xee\xdd\xa4\x22\xb2\x95\x88\xda\xcb\xcd\x23\x38\xfd\x46\x5c\xfb\xf2\x03\x15\x32\xb2\x26\xc3\xe2\xba\xbb\xc8\x8e\xc6\xdb\x35\x4d\xda\x11\xa9\x72\x60\x38\xac\xfe\x4c\x9e\xa5\x30\x5d\x3e\x8e\xa8\xcd\x42\x5c\x9a\x7a\xa2\x67\x38\xf9\x88\x0c\xad\xb7\x57\x51\x36\x7f\x40\x35\xa9\xf6\x50\x19\x59\x53\x8e\x73\x05\x0f\x59\xd1\x5d\x86\x8c\x43\xe4\xc9\xef\x30\x79\x5a\x66\xc7\x4f\x4e\xae\x58\xe4\xb3\xf7\x76\xc5\xbb\x11\x8d\x58\x3a\x0d\xea\xc9\x17\x29\x08\x99\x43\x1e\x1f\x4e\x59\xf1\x7d\xbd\xaf\xb7\x50\x59\x7b\xd6\x87\xb2\x82\xfd\x8b\x98\xbe\xc9\x9a\x87\x32\xee\xdd\x7b\x70\x8e\xf6\xfd\x3e\x37\x08\x54\x80\xb1\x15\xe2\xc0\x17\xab\x55\x9b\x8a\xfa\x63\x86\xa6\x18\x5b\x1d\xec\x5a\x70\x3f\xd4\x51\x1e\xdd\x07\x0b\x53\x19\xb9\xd4\x4d\x89\x6a\x1c\x66\x8d\x57\x20\x16\x2a\xab\xd5\x8b\xb3\xca\x27\x6b\x2c\x54\x32\x1e\x06\x03\xdb\x0a\x1c\x6a\xf2\x93\xe4\xe7\xb3\x9c\xe6\xab\x8d\x8d\x85\x60\x7d\x8f\xff\xb8\x56\x57\x51\x94\xaf\xbf\x5f\xe4\xee\x3b\x09\x42\xde\x5d\x86\x61\x23\x51\xa4\x36\x3f\x18\xcc\x60\x46\x34\x09\xf8\x40\x6f\x1b\x15\x94\xaf\x0d\x50\xf2\xdb\x47\xac\xb1\x64\x94\xa4\xa8\x54\x78\x12\xef\x07\x53\x56\xcd\xa5\xe8\x16\x1a\x46\x65\xc4\x7b\x09\x18\xac\x0e\xcd\xd8\x9d\x4b\x46\xb5\x8a\x7c\xe5\xdb\x66\xab\x8b\x0a\xec\xab\x73\x73\xa9\xbc\xf7\x84\x1b\xcc\x52\x85\xd8\x1d\x87\x7f\x1b\x89\xde\x4a\x16\x91\x14\x43\xa1\x43\x6d\xeb\x63\x59\x71\x5c\x9f\x4b\xf5\x82\xaf\xdb\x48\x26\xdb\x7d\x20\x4e\x42\xd4\x47\x7b\xc3\x0b\x5b\x95\xa7\xd3\xa5\xc8\x9a\xab\xf3\xca\xf8\xad\x1f\x15\x59\x18\x7a\x79\x5e\x7b\x0d\xe2\x0f\x35\x4f\x16\x73\x8b\xc0\xfa\xcf\x9b\x45\xd1\x40\xd6\xff\x3f\x65\x58\x7a\x7a\xce\xbc\xe4\xe2\xf8\x01\x24\xa1\x6d\x98\x0f\x30\xd9\x22\x47\xdb\x81\x0c\x79\x77\x27\x28\xba\x56\xe1\x3c\x52\x5e\xb2\x34\x66\x58\xbc\x12\x7f\x8a\x26\x3b\x0f\x97\x60\x26\x58\x84\xfd\xae\xd5\x4b\x9b\x7c\xdf\x66\xef\x93\x67\x20\xa2\xc0\x8a\x14\x60\x04\x8a\x52\x26\x4d\x26\x73\x20\x41\xaf\x3e\x26\x99\x30\x16\x55\xe8\x09\xa9\x08\xbe\x9e\x8d\x12\x99\x8c\xa9\x6d\x97\xaf\x31\x61\x9a\x1c\xe4\x09\xf2\xbd\x10\x1b\x33\x48\xa8\x98\x94\x09\x4a\x7e\xde\xec\x66\x90\xe2\x6e\x8c\x0a\x42\x04\xe5\x3e\x97\x32\x2b\x54\x99\x15\xeb\xe7\x15\x09\xbe\x00\xc6\xb6\x1f\xd1\xd8\x9e\x5c\x3e\x3d\x7e\xdf\xf9\x70\x95\x29\x12\x60\xf6\x76\x58\x1e\xac\x3b\x15\x2e\x96\x4d\xd9\xc0\x4d\x9b\xbe\x94\xe7\xf6\x99\x8f\xe2\x4d\x06\x84\x42\xe8\xfc\x50\x77\xfb\xc5\xc3\xf6\xb0\xfc\xbe\xfa\x7d\xbd\x3f\xec\x36\x7f\xac\xbb\x41\x94\x6b\x67\x4b\xe5\xf8\x77\xdb\xb2\xcc\x47\x15\x62\x66\x38\x50\x27\xd8\xb0\xfa\xe3\xf9\x7e\x26\xda\x9e\xcf\x12\x99\x49\x03\x0b\x4f\x12\x39\x6c\xea\x27\xff\xe4\xa2\x80\x01\xaa\x5b\xe4\xe5\xf1\x11\xde\x2c\x31\x75\x3c\xc5\xa2\x40\xa5\xc6\x45\x45\x6d\x30\x30\x71\x3b\x91\x51\x48\x01\xdf\x55\xd7\x1c\x14\x45\xd3\x09\xf1\x8f\x4f\x44\x98\xd5\x6f\x5d\xef\xef\xf6\xc8\x58\xea\x7e\xc0\x88\x18\xbb\x53\xf8\x15\xee\x1e\x4c\xd3\x1f\xe3\xa9\xeb\xe3\xdd\x65\xa6\x99\x79\x0b\x22\x1a\x04\xa9\x17\x64\xf5\xe5\x86\xfd\xfe\xa7\x73\xee\x09\xfd\x99\x28\x53\x98\x31\x5c\x90\x78\xe8\x54\x6a\x86\xf3\x3d\x62\x3a\x44\xf7\xb4\xb7\xec\x0c\xd6\x3a\x0d\xb4\xd5\x1d\xac\xbb\x21\x26\xb4\x31\x50\x38\xbc\x81\x38\x14\xa1\x0b\xe1\x1f\x44\xa3\x5e\x3e\xf6\x3e\xa2\x98\xc6\x91\xe7\xc7\xd9\xc6\x74\x3d\x26\x62\xfb\x71\x32\xc4\x44\xd4\x06\xc0\xdd\x17\x28\x4d\x6c\xf4\x6c\x45\xfb\xca\xe6\x65\xfe\x15\x8a\x62\xad\x8c\x0b\x91\x6d\xe9\x7e\x53\x6f\xc5\xb5\x5d\xac\x47\xe8\x36\x19\x25\x32\xc0\xb8\xed\x0d\x9a\x97\xd1\x53\x48\x40\xa3\xad\xd9\xba\x28\x8b\xe7\xf1\x11\x23\x51\x08\x66\x87\xac\xa1\xd5\x0b\xfc\xfb\xe2\x54\x4a\xc7\xd7\xc0\xa9\xa5\x8c\xed\xd6\x8f\xab\xc3\xea\xe9\x11\xc5\x82\x91\x44\xb5\xde\xed\xfc\xc9\x38\xe3\xb8\x6b\x1f\x9c\xcc\xc0\x68\xf2\x8d\xd7\xa8\x88\xeb\x00\xf5\x02\x5d\xdf\xe4\xf6\x52\xe8\x71\xfe\x1f\xa5\xc0\xad\x7a\xc2\xe5\xcf\x3f\x07\xd2\xb7\xb3\x7b\x5d\x24\x02\x88\xa3\x5e\x91\xc1\x16\x88\x8f\x80\xbf\x9a\x1f\x92\x90\x58\x77\x7a\x46\xc7\x4a\x9c\x66\x7e\x53\x15\x10\x4c\x47\x9a\x97\xaa\x7c\xab\x7f\xbe\x40\xf1\x2d\x43\x82\xdc\x37\x64\x5e\xfb\x40\x22\x52\x8c\x24\xb6\x76\x70\x9c\x5b\x9c\x22\xad\x2c\x89\xab\x2a\x2f\x85\x46\xaf\xd0\x9b\xf2\xad\xa0\xbb\xdb\xf5\xfb\x24\x1b\x8f\xb4\x12\xd8\x40\x76\xd8\x93\xdd\x8c\x4b\xbb\x8c\x80\xeb\x78\xa8\x9d\xd9\x91\xb0\xdd\x71\x43\xd2\xc4\xb1\x3b\x17\x8d\xa7\xdf\xcd\x4f\x27\x43\x0c\x06\xac\xfb\x4a\xbc\x42\xfe\x07\xe8\xec\xef\x09\x8e\xc8\xc8\x50\x08\x5c\xb5\xb0\xf7\x62\xeb\x7e\x02\xa3\x69\x34\x0c\x6a\xbe\x41\xae\x67\x0b\xa3\xf3\x2b\x5a\x64\x40\x58\x4a\x9c\x57\x99\xea\xc8\xf2\x93\x0e\x54\x1c\x90\xd8\x2a\xe7\x5a\x15\xd3\x0f\x87\xa9\xe0\x5e\x76\xcd\xc6\x10\x87\x2f\xe1\x16\x32\x0e\x95\xc1\xb6\xd3\xee\xe7\xfd\xd8\x6f\x5c\xc6\x84\x86\x88\x4a\xeb\x01\x01\xb6\xac\x3d\x0f\x52\x90\x31\x49\xc2\x20\xe9\xd4\x85\x32\x2d\x9a\xb2\x1a\x6a\xf0\xcc\xa0\x53\x64\x4c\x20\xd0\xce\x51\x77\x33\xed\xb7\xc5\x34\xa0\x38\x6f\x5f\xca\x5c\xf7\x64\x50\x7f\x7d\x34\xe4\x58\xf9\xa8\x4b\xd3\x28\x71\xf6\xb6\xde\xfe\x28\xc4\x58\xaf\xf3\xae\x28\xab\x21\xa4\x73\xa6\xa7\x18\xb3\xd0\x5a\x38\xb6\xfb\xa9\x44\x8c\x5e\x57\x5b\x8a\x99\x08\xb0\xe3\xec\x17\x64\xf4\xb0\x9c\xc9\xbb\xc6\x97\xcf\x80\xa5\xd6\xf0\x75\xd4\xdc\x72\x47\xa3\x40\x07\x5e\x64\x0c\x97\x8b\x55\x9e\x79\x1b\xcc\xf9\xdf\x2a\x8a\x25\x0b\xbb\xc2\x00\x64\xcf\x22\xab\x7d\x70\x88\xc5\x6d\xbf\x3b\xc4\xb1\x92\x09\x38\xe1\xeb\x6f\xf8\xf0\xfc\x11\x6f\x2b\xa2\x72\x0b\xe5\xea\x37\xbf\x38\x31\x31\x2e\x88\x85\x38\x81\x8f\x10\x62\x9e\x2a\x6f\xe2\xda\x85\x85\x0e\x14\xf0\x11\xf8\x2b\xe3\x54\x51\xcd\x3c\x2a\xc3\x02\x6c\xda\x5c\xc7\x11\x11\xdc\x20\x41\x29\x65\x83\xe4\x0c\xb3\x88\x4f\x0a\x19\xb1\xe0\x71\xe0\x06\x2f\x33\xad\xb3\xe2\xf8\x3c\xa3\xac\xea\x07\xa7\x06\x9b\x36\xbb\xfd\xd3\xf3\x7a\x77\xd8\x3f\x1d\xbe\x6f\xef\x9e\x17\x37\xeb\x43\xb8\x5a\x3f\xee\xbd\x90\xb5\x8c\x85\x12\xce\x88\xb5\x11\xb9\xe7\x88\x75\x07\x75\x8a\xf5\xb6\xac\x76\xc1\xcb\xf7\xba\xcd\xc0\x4c\x27\x6a\xeb\x07\x4a\x42\x83\x60\xe0\x8b\x7f\xce\xd4\xa2\xae\x51\x36\xd2\x37\x1c\xc3\x68\x3c\xdf\xa5\x8a\x71\x3f\xca\xac\x1d\xd6\xbc\xae\xb9\x8c\xa5\xb6\x37\x72\x2e\xfb\xdc\x29\x56\x21\x63\x62\x20\x4c\xb9\xbc\x6e\x46\x44\x6a\x19\x6b\x63\xdd\x1f\x5c\x26\xd8\x6e\x2d\x23\x01\x5e\x19\x43\x62\x59\x7b\xed\xaf\xd2\xfd\x4f\x58\x90\x9f\xa5\x4c\x7c\x7f\xbe\xef\x0e\x68\x40\x7a\x44\x7b\xff\x7e\x73\x4a\x02\x22\xb0\xf7\x2e\xec\x2c\xd8\x75\xff\x57\xe0\xf1\x47\x38\xab\x46\x37\x94\x84\xd2\x20\x7c\x5f\x58\xa9\xee\x21\x52\x5e\x26\x24\xb6\x10\x4a\x04\x04\x78\x40\xe2\xdc\xe6\x92\x90\x54\x18\x57\xc3\x9f\xcb\x9e\x13\x22\xed\xa6\x7e\x84\x66\x97\x55\xd0\xe7\xa7\x7e\xad\x4e\x68\x2a\x63\x27\x25\xbb\xbc\x0e\xd4\x36\xfc\x61\x25\x70\xba\x99\x3c\x3b\xd7\x6d\x12\x90\x43\x5f\x57\x4c\x58\x48\x1d\xe5\x0d\x41\x0b\x8f\xf0\xf6\x30\xe3\x16\xe2\x07\xa7\x11\x75\x7d\xd2\x76\xff\x1c\xa2\x26\x65\x12\x05\xfe\x1d\x18\x59\x4f\xc8\x24\x32\x56\xce\xa9\x19\x98\xd4\x23\xcc\xb6\x1f\x10\x31\xa7\x06\x78\xba\xe4\xfe\x47\x4c\xe2\x20\x46\xc4\x46\x9b\x96\xe4\x88\x49\x6f\x3e\xdf\xdb\xbe\xc8\x14\x92\x98\x1a\xb4\xdc\xda\x42\x55\xfb\x9e\x98\xc7\x4d\x8c\x6f\x30\x8e\x25\x3e\x8d\x93\xa8\x7e\xd9\x1f\xb4\xde\x8d\x45\x69\x64\x12\x2b\x19\x3a\xb6\xe9\xc1\xf2\xa2\x0e\x97\xfa\xb3\xd0\x28\x89\x0d\x20\x64\xcb\x2d\x0b\xa0\xb3\x6e\xb9\x4f\x12\xce\x98\xc3\x64\x22\xc3\xf1\xeb\xc5\x37\x49\x24\x47\x19\x85\x36\x59\xed\x28\xd3\x7d\xc9\x3d\x49\x14\xc3\xca\x8d\xa5\x3d\x4d\x66\x6b\xa2\x43\x54\x49\xcf\xea\x43\x9b\x3c\x1f\xb0\x9b\xe8\x3f\xc9\x49\xea\xc8\xe8\xbf\xa0\x38\x58\x2b\xf2\x37\x91\xb5\xa1\xd2\xe1\x3c\x6c\x46\x26\xbc\x7d\x96\xce\x4f\xda\xbf\x87\xf3\x57\xcb\x85\x9d\x95\x45\xd9\x88\x2a\xfb\x53\x58\x29\xff\x69\x0f\x36\x49\xb9\xe4\xae\xac\x75\x9b\xbd\x43\x3d\xfb\x8e\xa4\xc0\xc1\xbd\x03\x3f\x44\x95\xb5\x0b\x56\x7d\x5b\x56\x37\xe2\xec\x63\xb8\x44\x44\x0a\x85\x03\xb6\xf7\x8b\xfd\xe6\xf1\xfb\xc3\x61\xf1\xf0\xf4\xfd\x71\x7f\x78\xbc\x59\x75\x43\x12\x81\xaa\x1b\xdb\x0a\x6a\xaf\x20\xf1\x69\x9d\x71\xfc\xf4\x04\xa4\x26\xee\x60\x18\x0f\xdd\xd4\x96\x04\xb0\x6d\xe9\x94\xa2\x86\x02\xf2\xe3\x13\x48\x66\x65\x1c\x6f\x2a\x10\x27\x14\x8e\xed\x4e\x21\x39\x92\x97\x57\xa6\x1c\xc7\xcc\x89\x0a\x35\xe2\x37\x06\x67\xed\xad\x47\xe7\x1f\x3a\x10\x8a\x8d\xa7\xdd\x8b\x38\x43\xfd\x92\x99\x36\x15\xb9\x2f\xcb\x5f\x97\xee\x41\x19\x11\x63\xba\xff\x9a\xc1\xdb\xed\x24\x87\x4f\x8c\x02\x7c\x53\x10\x53\x85\x25\x7c\x2b\x44\x54\x0f\x0a\x06\x3c\x20\xda\x09\xaa\x16\x8d\xc8\xfd\xe5\xf2\x80\x06\x56\xac\xa9\x2a\x15\xd4\xb5\x97\x41\xdf\xa1\xb2\xde\xfc\xdb\xc1\x43\x6a\x69\x02\x56\xcb\x78\x29\xf2\x41\x17\xd2\x0f\x49\xac\x98\x64\x9b\x9e\x1c\x1e\x16\xff\x58\x1c\x16\xbb\xdd\xd3\x6a\x33\x60\x81\x48\x4e\xb4\x45\x6c\x3b\x71\x90\x1d\xa8\x12\xf5\x3d\x7b\x6d\x10\xc9\x09\x00\xa2\xcd\x2c\x91\xf6\x46\x5c\xdb\x29\x84\x1c\x86\x49\xfc\xcd\x89\xb1\x1a\x27\x38\x27\xd1\x07\xf4\x5c\x56\x4d\x1b\xae\x9d\xce\x50\xd4\xd6\xe1\xab\x5d\xd8\x27\x97\x4a\xe3\x10\x69\xb2\xcb\xcb\xd5\x16\x9e\xc7\x93\x80\xd3\x34\x35\x3e\x4a\x28\xba\xb6\x3a\x67\xa1\x15\xe9\x74\x68\xe4\x09\x26\x7b\xf8\xf7\x93\xe2\x20\x67\x00\xf8\xc5\xf7\xe5\x71\xa1\x6d\x9c\xbe\x15\x59\xf5\x21\xac\x9d\x3c\xfd\x28\x94\xa8\xd5\xf1\x22\x6a\x27\x65\xe2\x68\x66\xfe\xca\x22\xa2\x02\xd7\xae\xe8\xdc\xb7\x86\x48\x1e\x1e\x45\x0a\xd5\x04\xce\x8e\x05\xf2\x7b\x56\x1c\x75\x39\xe5\xee\x0f\xbd\xf1\xfd\x07\x13\x86\x08\x97\x05\xc2\x8e\xf1\xcc\x63\x0c\x0c\x8f\x8c\x4d\x73\x6b\x68\x16\x97\xa6\x5c\x66\x95\x15\x35\x1f\x3f\xf2\x98\x30\xdc\xa2\xb1\x08\xe4\x3f\x1a\x47\x1c\x37\x9c\xfa\x52\x9f\x61\xa2\x2a\x21\x79\x1c\xa7\xf6\x61\x6d\xbf\x2a\x2f\xf1\x38\x05\x94\x27\xb3\x95\x3a\x68\x5e\x48\x10\x26\xdd\x37\x38\x4c\xc6\xa8\xa3\xfa\x25\xfe\x93\xc7\x46\x60\x7d\x13\x57\xd7\x6f\xa5\xce\x47\x01\x03\x8f\x8d\xc2\x22\x59\x56\xaf\xf3\xec\x98\xc9\xfc\x2b\xfd\x4d\xc9\x93\x84\x28\x0b\x0f\xbf\x7e\x2f\xb2\x4f\x3a\xf7\x9c\xc7\x06\x31\x3c\x3f\x44\xd1\x60\x9b\xe0\x6f\xf8\x93\x4b\x9e\x86\x11\x06\x8b\x87\x23\x96\x8b\x50\xf1\x6f\x3e\x7e\xe7\xa9\x62\xa1\x2b\xed\xaf\x06\xe1\xf7\xf8\x2a\x04\xb5\x94\x54\x59\x56\x55\xf9\x36\x1f\x5a\x70\xa1\x15\xd2\xdc\x11\x8e\x3c\xd2\xba\x77\x03\x24\x53\x08\xa0\x39\x97\x75\xb3\x7e\xb7\x20\xbf\x4f\xf4\xdd\x27\xef\xcc\xf8\x8b\x64\x62\x85\x7a\x33\xcf\xd6\x1c\x22\x71\xb8\x4c\x84\xd5\x6e\xd4\x7a\x55\x5e\xaa\x1a\xa6\xaf\xe3\x2c\x6d\x79\xf4\xf8\x94\x20\x38\x71\x9e\xaa\x36\xed\xe8\x4f\xad\x43\x62\x86\xf2\xec\xa3\xc5\x9e\x6b\xa9\x11\xbc\xf3\xe3\xf9\x76\xa0\x6c\x25\xb9\x56\x11\xd6\x70\xd1\x44\xda\xc2\xc2\xad\xa0\xd8\x60\x41\x86\x50\x0a\x1b\xdd\x3f\x58\x89\x84\xd9\xdf\x0a\x68\x68\x59\x0f\x50\x29\x12\x8c\xbe\x04\x28\xc7\x3d\xa1\xa3\x00\x50\xf2\x4f\x12\xdb\xf6\x18\x25\xff\x64\xae\x3d\xc6\x0d\x93\x08\x36\x7e\x28\x2b\x0d\x23\x7d\x22\xc9\x4d\x6a\x78\xb7\x75\xd8\x0a\x94\x45\x7a\x2c\x61\xba\xa4\x1b\x90\x18\xef\xa1\x5e\xce\x2e\x3b\x8e\xca\xb1\x69\x10\x4a\xd4\xcb\x93\x1e\x63\xb9\x44\xa1\x4a\xf5\x02\xb3\x94\x67\x99\x06\x3c\x94\x66\xa0\x6a\x36\xe7\x68\xed\x87\x0a\x85\xa0\xd2\xac\xb6\xe2\xaf\xbb\xfe\xf7\x49\x43\x46\x8d\x5b\xf5\x91\x1c\x37\xfe\x64\x18\x09\x0c\xae\x44\x9e\x29\xc0\x5c\xa5\xf6\xb6\x5e\x53\x69\x97\x0f\x48\x8f\x01\xa9\x5d\xa6\xa1\x90\x18\x43\x5f\x0a\x53\xe6\x79\xf9\x36\x2e\xbc\xa4\x84\x48\xaf\x60\xd5\x26\x34\xab\x32\xcf\xc5\x61\xb1\x3c\x04\xe1\x28\x0a\x4d\x49\x42\x51\x2e\xc0\xcd\x26\x17\x8b\xd5\x3d\x0a\xc0\x8f\x33\x14\xf5\xcc\x1d\x85\xd6\xe6\x71\xe3\xe7\x47\x83\x28\x18\x96\xa3\x50\x61\x71\xae\xb4\x91\xd2\x30\xc6\xec\x10\x5e\x45\x7e\x11\x0d\xac\x44\x03\xc7\x41\xdb\xf7\x2b\xa4\x7a\x4a\x09\xc5\x1a\x69\x51\xb6\x9f\x86\xd9\x58\x7e\xfc\x6d\x06\xac\x80\x1c\x34\x93\x42\x49\xca\x98\x4c\xa5\x5b\x0c\xa6\x7a\x99\x7e\x88\x89\x02\xf0\xda\x22\x5e\x8d\xde\x7f\x3e\xd2\x0a\x4f\xfd\x23\x93\x28\x2d\x3f\x61\xfd\xc9\x34\x0e\x12\xb4\x1f\xa8\xcf\x65\x53\x0f\xea\xdd\x69\x4c\x03\xe2\x62\xf6\xef\x45\xf6\xef\x0b\xc6\x1b\x76\x21\xc1\x36\xf3\x9c\x8c\x8e\xff\xa8\xf4\x10\x40\xfb\x9c\xff\x28\x0b\x37\xa5\xb9\x1f\x61\x38\xee\x79\xf2\x52\x15\x4e\xe6\x57\x1c\xc1\xed\xcd\xfe\x0a\x12\x01\x58\x5f\x2a\x2e\xa7\xa7\xf3\xb0\xf8\x9d\x26\x10\x2b\x35\x56\x5e\x74\xf3\x62\x27\xba\x9e\x57\x9a\x86\x96\xf8\xa1\x5e\xda\xd7\xce\xeb\x84\x39\x3d\xf3\x09\xed\x69\x58\x4e\x4a\xd3\x44\x3b\xf9\xbf\x42\x8f\xc1\xe4\x33\xa0\xa6\x34\x35\x81\x8a\x3a\xb6\x61\x3b\xf7\xda\x90\x64\x75\x69\x4a\x63\xea\x59\xca\xa6\x4c\x05\x21\xc2\xb8\x22\xcf\xcf\x6e\xe9\x4f\x25\x0f\xbc\xc8\xec\x33\xd4\x16\x2b\xfa\x7b\x56\xe8\x02\xea\x7a\xfd\x0a\x13\x11\x31\x99\x2a\x46\xb1\x59\x28\xb1\x0e\xa5\xfe\x8a\x9a\x91\xaa\x84\x83\x7d\xec\xd7\x75\x71\xcc\x0a\xe8\x93\xf0\xee\xc7\x53\x5a\x62\x64\xdc\x6e\x0c\x58\x42\x51\xd7\x4e\xe2\x60\x72\x36\xe0\x54\x39\x9d\xb5\x4a\x63\xf5\xa4\x4f\xda\x43\xc2\xff\x63\xf2\xd7\x7d\x4c\x47\x01\x62\x25\xb6\xf9\xa5\x19\x21\x2d\x52\xdd\x46\x39\x8e\xf5\x93\x15\xbf\xa6\xaf\xaf\x06\x6b\x87\xa1\x45\x23\x36\x1a\x8a\x26\x33\x48\x7e\x1e\x5f\x95\x06\x0b\x24\x07\xdb\x57\xc5\x7c\xd3\x97\xc4\x52\x48\x6c\x9f\x09\x29\x4a\xe1\xa1\x72\x92\xb4\x37\xe5\x45\xe6\xe8\xe2\x7d\xa8\x5f\xca\x4b\xae\xf7\x2f\xed\x06\xee\x3f\x24\x13\xe4\x35\xad\x16\xfb\xc3\x76\xfd\x7c\x58\xef\xbf\x1d\x6e\x37\xcf\xbb\xfd\x61\xbd\x78\xbe\xff\xc7\x61\xb9\x79\xbe\x19\x50\xda\x64\x0a\x9a\x06\x64\x60\x8c\xe3\xc3\xee\xfa\xa3\xd6\x89\x4c\x01\x42\xcf\xad\x7d\x80\x46\x2c\xd1\x90\xe7\xf8\xd2\x7c\x18\x66\xf5\x34\x35\xa8\x52\xc3\xef\xff\x58\x75\x34\xc5\xfe\xc9\x9a\x48\x75\xda\x99\x83\x6d\x33\x35\xc2\x30\x35\x00\x6d\x4f\xf3\xd9\x7e\xa8\x08\x28\x43\x61\x3c\xdb\x9b\xba\xab\xca\xb7\xe6\x65\x5b\x96\x1f\x8d\x4b\x10\x64\x46\xad\xcb\x71\x73\x2b\xaa\xce\x38\x4d\x8a\xd0\x04\x78\x19\x02\x25\xb8\x27\x62\xc7\x6e\x0c\x09\x82\x28\xe8\xda\x1a\x68\xb3\xe9\x8f\xd0\xd8\x0a\x37\x97\xfd\xbf\x62\x86\x2d\xfa\xfd\x76\x4b\x82\x90\x23\x2e\xbf\x3b\x26\x24\xd6\xdf\x9f\x4b\xf5\x6b\x2b\xce\x50\xed\x54\x56\xd7\x65\x55\x2f\xf4\x6b\x7b\x93\xba\x1b\xa8\xad\xa4\x55\xfb\x10\x5e\x2a\x00\xec\xde\x2e\x8e\x1f\x8b\x97\x7f\x0f\xf0\x2a\x28\x8d\xf1\x5d\xea\x30\xd5\xed\x63\x5a\x5d\xa6\x37\xca\x82\x04\xd7\x12\x4b\xda\x70\x10\xc9\xd1\x02\x2e\x98\x0a\x91\xec\x7e\xbc\xf8\xf8\x93\xfb\x23\x3a\xf1\xce\xbd\x0f\x59\x71\x69\x26\x72\xf6\x52\x44\x32\x91\x16\x9e\xee\x96\x75\xa7\x88\xe7\x0e\xc7\x90\x20\x41\x41\xe8\xd7\xac\x2e\xab\xeb\xbe\xb7\xf0\xf4\x43\x92\xd0\xe0\xaf\xf8\xf4\x3e\xd3\xd1\x14\x49\xaa\x0d\x74\x7d\x84\x59\x3e\x85\xe0\x46\xa3\x1e\xdb\x41\x95\xa7\xf3\xa5\x81\x4d\xd1\x2e\xe7\xd9\x2b\x0c\x1e\xc6\xe4\xd9\xa5\x81\x15\xfe\xc2\xbc\x13\xcd\x7d\x3e\x9a\xa7\x48\x91\x4a\x89\xc2\x31\xa2\xfa\x5a\xb8\x5b\x8a\xd4\xc8\x24\xf4\xb1\xe3\xa2\xfe\x65\xc5\x17\xdc\x41\x41\x53\xec\x2f\x82\x46\x3f\x97\xaf\x6b\x4f\x42\xf0\x30\xb6\x3e\xc8\xd9\xf1\x08\x95\xf3\xc2\xbe\xf4\x6a\x6c\xdd\xeb\x26\x44\xaa\x95\x5f\x29\x45\xfd\x22\xdb\x81\xf3\x46\x43\x1f\xf7\x48\x21\x84\xc4\x3e\xe1\xc3\xf5\x33\x55\xb9\xbf\x2c\xd6\x08\x19\x10\x6c\xc3\xbf\x41\xa5\xfa\x26\xb0\xd0\x81\x15\xb1\xda\xb2\x9f\x37\xc3\xf5\x55\x68\x92\x5a\xf7\xc5\xfa\xf6\x52\xa8\xc9\xd3\xd6\xd4\x46\x2d\x87\xd3\x25\xff\xe4\x67\x03\x02\xc6\x2a\xec\x5b\xa5\xe4\x21\xa5\x4c\x40\x6c\x25\xc7\x4d\xf6\x0e\x9d\x11\xec\xf8\xf3\x86\x59\x1a\xb8\x68\x53\xf7\xce\x21\x1a\xa3\x89\x73\x9f\x06\xfe\xf3\x7f\xfe\x63\x12\xdb\x09\x93\x08\x94\xba\xdc\x5f\xcf\x50\x3b\x53\x3c\xff\xbd\x46\x10\x6c\x0c\x62\x3b\xa0\x27\xe7\x08\x23\xba\xda\xc6\x6e\xbd\x7a\x7a\xbc\x39\xec\xf6\xeb\xed\xd0\x18\xf3\xd2\x73\x52\xa5\x30\x46\x5b\x03\xef\xae\x11\x58\xe6\x2e\x01\x19\xdd\x84\x0c\x42\xab\x40\xe3\x04\x7d\xd0\x27\x7b\x96\x22\x28\x83\x24\xc6\xee\xee\xac\xbf\xf8\x78\x2e\xc9\x90\x06\x51\xd4\xd5\xdd\x16\x79\xde\x35\x2c\xac\x7c\x69\x37\x0c\x62\x0f\xab\xac\xda\x87\xf6\x5c\x96\xa7\x87\x29\x42\x45\x12\x22\x91\xd8\x00\xef\xa0\x2c\xfc\x6c\xa6\x3b\x2e\x09\xa3\x28\xbc\x5f\x5f\xaa\xd7\xec\xf5\x6b\x5d\x5d\x29\x49\xc2\xb1\x0b\xe0\x5d\x88\xfc\x25\x11\xb0\xe4\xb7\x5d\xf9\x6b\x38\xd9\x24\x25\xd6\xc0\xa0\x86\xe6\xe6\xb1\x5c\xeb\xac\xdd\x00\xc7\x2b\x9f\xa4\x49\x92\x5a\x09\x2d\xbb\x0f\x67\x65\xb1\x7e\x3f\x67\x95\x68\xba\x98\x48\x32\x49\x62\xab\xf8\x59\xbf\x2c\xf2\xfc\xc9\x8b\x85\x4b\x19\xa5\x54\xf6\x28\xd8\x39\xeb\x96\xcf\x56\xf2\x41\xb9\xc6\x9d\x2b\x86\x24\x8e\x3b\x89\xa2\x9e\x06\x85\xfa\x39\xb3\x6f\x9f\x4c\x88\xf6\xe4\x2b\x0c\x7b\x76\x0d\x9c\xd9\xe4\x11\x27\x89\x46\xa8\xb3\xbd\xc4\xe7\xa1\x0e\xb1\x9f\xdc\x92\x47\x29\xaa\x35\x9e\xec\x24\xda\x75\x09\x22\x56\x1d\xb4\x8b\x43\x6d\x1a\xe7\x8f\xa4\x69\x8c\x76\x32\xdf\xe0\x1d\xf2\x75\x9b\xe6\x7e\xb1\x8a\xb8\xcf\x08\x4a\x4c\xd7\xdc\xa7\x53\xfc\x8c\x14\x94\x4b\xde\x91\xb2\x3f\xb9\x67\xc1\x63\xea\x72\x8d\x75\xf3\x82\x92\xff\x13\x49\xf5\x76\x8c\x88\xac\x3e\x60\x9b\xb4\x64\xff\xfd\xd9\xa9\x44\xea\xbd\x2f\xda\xe9\x5e\x81\x6f\x87\x48\x49\x2c\x2f\xee\xd0\x58\xaa\xd5\xf8\x73\x32\xe2\xd2\x05\x57\x3f\xb2\xea\x32\xa2\xf7\x4e\xee\x58\x42\x80\x69\x02\xbc\xdb\xb2\xa6\xff\x02\x15\x32\xac\x37\xa3\x3e\x92\x65\xcd\xbd\x64\x13\x0e\xaa\x54\x44\x60\xc7\xce\x62\xff\xa4\x28\x7e\x4d\x07\xa8\x10\xdb\xb1\x67\x2c\x1c\xef\x20\x37\xd3\x01\x3a\x06\x6e\xa3\x6d\x57\x89\x9f\x11\x9b\x91\x52\xd3\x00\xfb\x07\x37\x98\x9e\xa1\x2a\xe8\xf0\x3d\x32\x44\x21\xb6\x15\xde\x55\x7e\xd1\xd0\x95\x70\xc7\x27\x31\x54\x20\x92\xa2\x7e\x73\xdd\xaa\xf1\x8f\xa2\x82\x34\x14\xae\x97\xd3\xa5\x80\x38\x05\x16\x58\x3e\x46\xc8\xa9\xfb\x46\x15\x72\x11\x5b\x3b\x98\x1c\x1c\xa2\x74\x94\xf6\xfa\x61\x42\xa0\xae\xe3\x8f\xf5\x6e\xbf\x79\xbc\x3b\x2c\x6e\x7e\x6c\x76\x4f\xcf\x87\xd5\xfd\xe6\xf6\xd6\x9f\x8b\x30\xc0\xe4\xa8\x6a\x43\xda\x38\x9c\x5c\x15\x11\x1d\x16\x09\x29\x1c\xe3\x9b\x52\x94\x58\x33\x93\x23\xf6\x8f\xb1\x7c\x75\x5b\x56\x13\x1d\x2e\x3f\x36\xb6\x19\x7b\x05\x9e\xd9\xe1\x44\xa8\xfc\x95\x50\x19\xa2\xb8\xfd\xf3\xfa\xe7\xe2\xf9\xe6\x70\xfb\xf4\x8c\x7f\xb7\x4f\xbb\xcd\xa0\xc0\xae\xa8\x36\xbe\xb4\xbd\x2c\xcb\xba\x99\xb6\x29\x15\x8b\x2c\x69\x03\xcd\x7f\x7a\x71\x21\xa9\x98\xb6\x4e\x62\xbf\x6f\x1e\x31\x4d\xf8\xb9\xde\x74\x87\x80\x23\x9a\x00\x45\x80\x1f\xe1\xbd\x59\x57\x62\xbc\x14\xaa\x88\x12\xeb\x77\x5d\x2e\x07\x76\xaf\x23\xfd\xaa\xf1\x0b\xa4\xa2\x44\x20\x2c\xf0\x01\x74\xd6\xdd\x65\xa4\x43\x8c\xac\x1c\x81\xf6\xe7\x50\xaa\xaf\xbf\x87\x24\x90\x98\x23\xf9\xbd\xae\x97\xc8\xf6\xfb\xa1\xe2\x8a\x61\x63\xf9\x47\x56\x35\x17\x34\x5c\xce\xd7\x03\x15\x71\xa9\x52\x1a\x21\x00\xe8\x15\xaa\xcc\x5c\xb7\x55\x59\x9a\x81\x0c\xd5\x6c\xa9\x42\xa5\xc6\x52\x6c\xda\x98\xf9\x41\xbc\x77\x57\xe7\x0e\x0b\x16\x93\xd8\x12\x43\x3a\x88\x44\x77\x2c\xb2\x85\x8c\xc3\x17\x34\x6d\x25\x12\x6b\xa3\xf1\x98\x1d\xa1\xca\xc4\xa3\xc8\xaa\xa1\x7e\x8e\x54\x82\xa7\x54\x23\x4b\xed\x33\x37\x1f\xa9\x64\x92\xc4\x98\x28\xe4\x99\xb2\x6a\x4f\xc3\x6c\x50\x49\xa5\xb9\x93\xa6\xf0\x39\xf4\xfd\x6b\x38\x99\xb9\x9a\x30\x94\xe1\x3b\x5a\xa4\x62\x73\xc1\xee\xea\xe0\x4a\x81\x40\xda\x81\x18\xd6\xc5\xbf\x86\x13\x09\x92\x54\x84\xdd\xca\xb8\x2b\x55\x26\x72\x87\xdb\x98\x6c\xa0\xca\x10\x86\xa6\x71\x53\x06\xd1\xed\x3c\x65\x7a\xf2\x73\x98\x84\xe1\x52\xea\x4e\x6e\x6b\xaa\x0b\xad\x3f\xdb\xf2\x94\xe1\x31\xeb\xa3\x14\x9c\x35\xfb\x72\x95\x67\x7d\x71\x51\x07\xa9\xc2\xba\xb2\xee\xf4\xd4\xc7\x8b\xde\xc7\x50\x58\x87\x8a\xe0\x9b\xb9\x7a\xc9\xce\xce\x4c\x7c\xd8\xf6\xd7\x24\xb4\xb2\x32\xfe\x97\xbf\x87\x57\xc8\xe7\x96\x24\x4d\x48\x84\x36\x94\xeb\x1c\x54\x1b\x50\x64\xcd\x75\xae\xcd\xaa\x09\xb1\xbb\xbd\x75\x85\x5f\xef\xbf\xcd\xd7\xea\x35\x15\xb6\xfb\x51\x43\x17\xa5\x3a\xa8\x52\xbd\xb3\xea\x12\x16\x5e\xf1\x09\x23\x49\x53\x61\x12\xe2\x90\x02\x77\x65\xde\xc5\x71\x9a\x4a\xe6\xd5\xdf\xcb\xb7\xc5\x05\x83\xa3\xf1\x14\xd2\x4c\x6b\x99\x7a\x4c\x79\x3b\x01\x0f\x59\xf1\x2a\xf2\x4c\xff\x01\x55\x89\xe1\x9c\x87\x0c\x69\x06\x09\x8a\x86\x61\xab\x0e\xa5\x7a\xe7\x6e\x3a\x0a\xb4\xf2\xd2\x80\xb7\x55\x79\x9a\xd2\x1d\x26\xd7\x1e\x31\x06\x7c\xd4\xa7\xd9\x97\xdb\x5c\x4c\x98\x2f\x3a\x62\x06\x41\x17\xfa\x5a\x88\x53\xc7\x9b\xd6\x51\x6c\xd1\xa3\xff\xaa\xcb\x62\x25\x9a\xdf\xe6\xbc\xf4\xfc\x50\xae\x70\x71\xbc\x2f\x8f\xcb\xcb\xf5\xb6\xac\x6e\x33\xf1\xd9\x45\xc5\x89\x02\x87\x86\x3c\xe4\xa2\x6e\x0e\xa2\xae\xa1\x39\xe8\x89\x65\xae\x1b\x9d\x04\x80\x9b\x5e\xfb\x08\x6f\x45\x96\xdf\x41\xf3\xbd\xa8\xbb\xf8\x4a\x27\x09\x45\x18\xd7\x0e\x8a\x73\x59\x88\xbf\xee\x18\xe9\x24\x15\xd8\x8d\x6a\xbf\x7b\xe5\x12\x7f\x54\x46\x79\x13\xd5\x10\xc6\xaf\x39\xb7\x44\x67\x9b\x38\x6f\xd1\xd6\xc7\x69\x35\x8c\x9f\x1f\x17\x80\xab\x0d\x14\x7a\x55\x66\xc5\x6d\x9e\x9d\x3f\xf3\x45\x72\x9f\x48\x75\x12\xbb\xb8\xe3\x7b\xa1\xa1\x7a\xb3\x0a\x57\xee\xa8\x20\x56\x1f\x4b\x68\xfd\x58\x7a\xb4\x23\x09\xc6\xb7\x21\xa8\x21\xbe\x0d\x72\xb0\xc6\x9b\x07\x93\x15\xba\x5d\x90\xbf\x65\x45\xb3\xad\xe0\xd5\x9a\x10\xed\x45\x47\x02\xd0\x82\x27\x08\x9c\xbe\x5b\x7d\xfb\x7b\x4a\xe8\x52\xcb\x84\x62\xf0\xf2\x22\x6a\x6b\xfa\xb5\x3e\x4e\x38\xe4\x5a\xca\x14\x61\xff\x77\xa5\x7e\xcd\xe0\xcd\xca\xa2\xfd\xf5\x2f\x21\x41\x60\x04\x6c\xdd\x0d\x5c\x45\xcb\xf6\xaa\xc7\xe7\x57\x8c\x09\xef\x57\x59\x36\x13\x76\xdc\xf4\xc1\x28\x66\x3d\xce\x2d\xe8\x5a\xe4\x7b\x91\x7f\x05\x16\x1c\xec\x3d\x5a\xc7\x02\xfb\x14\xbf\x6f\x9f\xb6\x9b\xa7\xcf\xd0\xc6\x1a\x28\x47\x99\xe7\x73\x2e\x1a\x53\x56\xa7\xee\xff\xca\x02\xc4\xac\x4e\xc4\x73\x1b\x2e\xd5\x77\x95\x28\x9a\x4f\xa4\x50\xa5\x36\xa1\x74\x9e\xac\x28\xcb\x33\x45\xbb\x4f\x47\xc7\x31\x16\x53\x36\xf5\x1d\x14\x50\x67\xf5\x6c\x31\x47\x9b\x04\x50\x88\xd4\xd1\x89\xd6\xef\x67\xa8\x32\x28\x26\xe2\x72\x52\x1b\x61\x83\xd6\x36\xc4\x77\x27\xc4\x65\xf1\x33\x97\x9b\xee\x63\x29\xa6\x9c\x77\xd9\xeb\xa0\x27\x32\x39\xb5\x94\x89\x85\xd9\xad\x44\xf1\x2a\x6a\x5b\x21\x72\x3f\x82\x7f\x0b\x20\x20\x86\x92\x21\x04\x73\x40\x66\x99\xfd\x6e\x08\x98\xd1\xa9\xe7\xe8\xdf\x8b\xba\xd9\xa9\xb2\xf2\x2f\x2c\x84\x3c\xc2\xa6\x25\x58\x91\xc2\xa7\x09\xcf\x1e\x68\x4c\x11\x42\x80\x22\x0b\x58\x54\xde\x68\x4f\x30\x07\x1a\xc7\x48\x81\x44\x74\xc0\xd7\x79\x34\xd0\xd4\xe0\xc4\xbd\x5d\xaf\x6f\x7c\x5d\x1a\x18\x21\x38\x49\xf3\xf2\xd8\x27\xb8\xc0\x88\x75\x60\x71\xd9\x23\x2e\x32\x8e\x88\xf1\x95\x65\x9a\x84\x28\xb1\xbd\xb0\xed\xf7\xe5\xfd\x66\x75\xd8\x2d\xee\xd7\x23\xe5\x12\x88\x49\x8c\x4d\xbe\xce\x21\xa7\xdb\xad\x75\x37\x44\x11\x84\x4d\xaf\x2b\x9f\xe2\xf1\xf9\x32\x14\x24\x21\xc7\x8a\x6d\x36\xd3\x9f\xff\xbf\xfd\xeb\xbf\x42\x81\x1e\x4a\x4f\x1f\x1a\x10\xa7\xc3\x07\xf3\x0f\x09\x3c\xb6\xba\x75\xb6\x62\x7a\xe7\xed\x58\x24\xa4\x32\xc5\x5d\x66\xff\xed\x79\xbd\xfb\xf6\x74\x7f\x43\xbb\x23\x9a\xe2\x4c\x9a\xdf\xaa\x86\xcb\x03\x08\xa6\x8d\xab\xf8\xdd\x83\xd0\x50\xc9\x52\x54\x7a\xce\x8c\x55\x82\x0c\x28\xea\xbe\x15\x97\x93\x85\xfb\x74\x97\x22\x23\x8a\x09\xbf\xc8\x73\xe4\xb6\xf6\xcf\x5c\xa6\x30\x14\xfa\x5d\x5e\x67\x5f\x52\x90\xd2\x78\x57\xa5\x12\x51\xdf\xff\x6f\x1f\xb6\xd4\x02\x19\xd2\xed\x7f\x51\xa9\x68\x5f\xee\xf0\x0e\xa7\xa5\x0b\x50\x9c\x62\x8b\xd7\xe6\xc8\x3b\x61\xe0\x78\x11\x95\x13\x3b\xf6\x37\xa5\x8c\x8e\xe2\x91\x69\xf6\x9d\x38\x21\x44\x3b\x13\xf9\x43\x56\x2c\xa1\xd9\xf5\xf5\x24\xd0\x94\x62\x1d\x62\xf7\x6d\xf1\xbc\x3e\x6c\xbf\x3f\xaf\xbe\x2d\x76\xeb\xe7\x5d\x77\x3c\xb6\xbe\x3b\xda\xa9\x92\x8d\x98\x49\xa0\x79\xe8\x55\xf4\x6d\xb3\x1d\xcb\x42\x98\xd9\x44\x7e\xe9\xd0\xc2\x8a\x2d\x2f\x37\xf7\xf7\x7d\xe6\x07\x10\xa4\xde\x7d\xb4\x38\xc2\x1c\xae\x09\x4c\xac\xc1\x1a\xb1\x58\x11\x32\xeb\xe5\x3c\x59\x29\x4c\x12\x8a\x5e\x8d\x68\x55\xe6\x65\xb5\x87\x8e\x62\x07\x46\x51\x4c\x72\x1a\x38\xa1\x16\xdd\xa5\x82\x07\xf1\xee\x8e\x9a\x20\xa0\x88\xd0\x45\x6f\xbc\x29\x93\xdb\x8f\x21\x8c\x84\xc3\xce\x43\xc7\x9d\xc0\xfa\xfe\xa4\x47\x60\x02\x4d\xa9\x1d\x5e\xf8\xb2\xec\xe8\xae\x4c\x28\x63\x3e\x34\xcc\xc1\x06\x41\x36\xcd\xc6\x0d\x51\x89\x4a\x7b\xf1\xa8\x0f\x10\x25\x43\x34\xf5\xd3\x72\xe1\x1a\x0e\xa8\xb3\x33\x3e\x0d\x8d\x23\xe4\x97\x9d\xb2\x62\x60\x65\x23\x0d\x4b\x69\x48\x7b\x7c\xae\x47\xbc\x7c\x52\xba\x1b\x9f\x93\x81\x7b\x22\x98\x8a\x1c\xc4\x08\x71\x62\x22\xa1\xa8\x67\x2d\xa3\x94\x98\x5f\x76\x4d\x9c\x12\xdb\x7b\x6b\xc4\x2f\xf8\xc0\x6c\x37\x49\xaa\x70\xc7\x78\xba\x34\xab\xbc\xbc\x7c\x92\x15\x19\x1e\x58\x71\xa6\x63\xf6\x0a\xab\xb2\xa8\xfb\x6c\xc8\xf0\x34\xc5\x08\x54\x5e\xae\xdb\xf6\xc9\x0f\xb9\x14\xe3\x87\xc7\x5d\x73\xf3\xe8\xaa\x89\x9b\x62\x2b\xea\x66\xe2\x71\x3e\xbf\xa5\x98\x94\x05\x68\x6a\x6c\x67\x5c\x47\x40\x99\x5d\x3c\x4c\x1a\x43\xec\x49\x6a\x4e\xd3\xb8\xfd\x19\x90\x5a\x5a\x58\x5c\xb6\x1b\x29\x02\x8d\xca\x9c\xfb\x9b\xf5\x18\x61\x68\x44\x92\x72\x2f\xc0\x23\xaa\xbc\xac\xf4\xea\x05\xea\x66\x0a\xb2\x37\x42\x5b\x42\xb4\xb5\x9b\xdd\x66\xc8\x25\x1f\x6f\x25\xc3\xa2\x83\x11\x86\x40\xe7\x81\x81\x90\x5f\xa7\x06\x3e\xa5\x44\x1b\x09\x76\x16\xa1\x80\xdf\xf0\xd2\x14\x4b\x06\x94\xdd\x83\x98\xdc\xbd\x06\x8a\x72\x64\xa7\xeb\xcf\xac\xb0\xec\x73\x77\x04\x48\xe2\x9d\xf5\xd6\xfb\x6f\x1f\x0c\x3a\xa4\x81\x98\x11\x4b\x88\x2b\x47\x38\x1e\x63\x42\x8b\xa5\x46\xfb\xd1\xcd\xe3\xdd\xe1\xf7\xf5\x72\xb1\xec\x8e\x46\x41\x90\xf6\xea\xcf\xcb\x2b\xa2\x4e\x86\xdb\x8a\x31\x1c\x90\x3e\x7c\xa8\x2e\x85\x6b\x5b\xae\x86\x4c\xdf\xff\x37\xeb\xba\x31\x2a\x42\x41\x43\xd1\xa9\xc1\x7c\x85\x16\x50\x41\x90\x58\x00\xcf\x32\xeb\x5c\x66\xdd\x11\xca\x38\x02\x3c\x8a\x8d\x4d\x49\x05\x9a\x0d\xd7\x2f\xbe\x86\xa8\x02\x66\x12\xe3\xa4\x2e\xb0\x9a\x9e\x8b\xa6\x44\x16\x10\x4c\x14\x29\x55\x10\x89\x98\xc6\x03\xe2\x66\x35\x8d\x21\xfd\x38\xc9\x30\xde\x75\x52\x5c\x2f\x65\xd5\x6c\xf4\x2c\x26\x46\x05\x91\x36\xd8\x82\xc6\x82\x1b\xf6\xe0\x97\x99\x87\x20\xaa\x20\x26\x0a\x6b\x7c\x56\x59\xe9\xfc\x2b\x2b\xea\x7d\x39\x1b\x8d\xaa\x20\x31\x16\xc2\xd5\xc6\x85\x33\xe6\xe4\x33\xe8\x21\x15\xf0\x30\x44\xf6\xb0\xa8\xeb\x36\x19\x1f\xdf\x46\x9a\x28\xc9\xfa\x06\xe3\x6f\xe3\x0b\x4f\x53\x6b\x5e\xee\xfe\xeb\x7b\x5d\xe3\x41\x22\x8e\x30\x4c\xc8\x2b\x35\x12\x61\xf3\x87\x85\xc2\x96\xf3\xcf\x51\x75\xcf\x1d\x94\xa1\x15\x11\x44\x86\x68\xf5\x0b\xba\xd4\x51\x05\x92\xa4\x48\x50\x3b\x99\xea\xc9\x4c\xbe\x52\x2a\xd3\x19\x18\x0d\x78\xf7\x1e\x49\x30\x7e\x66\x52\x53\x8f\x62\xbf\xbf\xff\x71\x68\x1f\xdd\x21\x8c\xfd\xd7\xa8\xc0\x8a\x97\x54\x96\x76\x30\x15\xda\x57\x81\xd6\x80\x28\x3f\x0b\x75\xb0\xec\xd9\x93\x03\xc9\x21\xf7\x65\xfc\x40\x81\x04\x58\xfa\x3e\x1c\xca\x4b\x73\xbe\xb4\x79\x79\x2e\xc5\x04\xb3\xac\x02\x48\x21\xb6\xdc\x97\x7f\x5f\x32\xbb\x14\x8f\xe4\x78\x54\x00\x0a\x9c\xde\xeb\xa5\x7e\x2a\xc0\x1a\x56\xfa\x63\x40\x30\x38\xb8\x14\x16\x2c\xde\x2e\xd1\x58\xa0\xec\x07\x68\x7c\x87\x85\xd6\xf6\xb9\x5a\xec\xfb\xdc\x8e\xa1\xc2\x40\x07\x5e\xa3\xfa\xb6\x37\x67\xfa\x14\x56\x35\xa9\x98\xa9\x90\xd0\x20\x4c\x3d\x8d\xe1\xd6\xdf\xef\x67\xf0\xdc\x1e\xda\xa4\x42\x12\x41\xd2\xdb\xf4\x0f\x31\xce\x2a\x24\x92\x52\xe3\x40\x59\x1d\xdb\x42\x85\x44\x73\x69\x51\xdb\x6e\x5f\x19\xd4\xcb\xfc\x10\xc3\x91\x16\xab\xaa\xf6\xb7\x5e\xad\x9f\xfc\x67\x69\x60\xd5\xc9\x3a\xdb\xbf\x4f\x1c\xa6\xfd\x70\xca\xf0\x97\xbf\x2b\x4b\x3d\x78\x23\x3f\x86\xe2\x2a\xa4\x8c\x61\x90\x9a\xd5\x77\x97\x2c\x9f\x08\x25\xab\x90\xc6\x76\x0e\xd9\xfa\xea\xcd\xf7\x9d\x9b\x66\x3e\xd6\x56\x21\x35\x56\xe5\x14\xcd\x4e\x86\xab\x5b\xc8\x62\x43\x79\xe7\xd7\x5c\x34\x6b\x87\x02\x9b\xd7\xc2\x54\x21\x4b\x18\x6d\xef\xde\x1a\xc9\x82\xfe\x74\x1c\x07\x2b\x00\x6c\x25\x8f\xa6\x98\xde\xf9\x47\xc2\x0c\xed\xac\x0a\xcb\xcb\xd9\xfb\x25\x8d\x9e\x45\xc4\x62\xdb\x92\xa8\xa0\x7e\xe9\xcb\x8c\x2a\x8c\x13\x86\x6f\xad\x86\x5a\x4d\x32\xda\xf6\xa0\xb0\x69\x88\x4d\x36\x7a\x35\x8f\x91\x8a\xeb\xfc\xde\x10\x26\x34\x46\x8d\xa2\xfa\x22\x6f\x91\x66\xf0\x29\x34\xb9\x2b\x91\xa8\x30\x61\x60\xac\x23\xc0\xcf\xac\x29\x3e\xf3\x4c\x54\x61\x12\x4b\x0c\xe7\x7e\x2e\xee\xef\xd7\x7b\x4c\x5f\xfd\x1d\x25\x92\xa2\x7a\xd5\x19\x2a\x53\x56\xa7\x67\x10\x1e\xdc\xa5\x42\x4e\x04\xee\xc3\xba\x74\x0a\x08\x50\x61\x05\xa5\x3b\xee\xbc\x6d\x6d\x24\xf6\x0a\x3f\x5f\x2e\xc6\x64\x50\xef\xbe\xf8\x15\xc6\x93\x8e\x43\x8a\xb1\x13\xee\xa0\xcf\xa0\x2e\x55\x7b\x70\x99\xe5\xf9\x20\x3b\xfa\x72\x17\x56\x61\x2a\xac\xdd\xbd\x15\xee\x3a\x81\x73\x37\xfe\xba\x55\xed\x3f\xab\x35\xda\x35\xfd\xc8\xd4\x0d\x9c\x46\x93\x56\x12\xc6\x62\xaf\x8a\x72\xca\x9a\x4d\xd1\xc0\x00\x92\x30\xc2\x3a\x0e\xbf\x23\xf4\xd7\x25\x63\xa6\x64\xd7\xf5\x9b\x13\x8f\x56\xa1\xe4\x06\x55\x5f\xd1\x9c\xb9\xac\xbb\x27\x2b\x25\x18\xee\x21\xff\x50\x75\xa2\x4c\x2a\x54\x4a\x60\x9c\xb6\x3b\x89\xaa\x81\xf7\x4d\xf1\x5a\x0e\x9c\x0a\x26\xbf\xbb\x0e\x8d\x1e\xb6\xa5\x3e\x11\x9d\x1f\x3f\x4f\x9d\xa4\x00\xbd\x23\xb2\x53\x2e\x1b\x3d\x36\x9d\x6a\xc6\xfd\x72\x89\x1d\x1d\xa4\x5f\x8e\xcf\x03\x2c\xc4\x52\xe5\x72\xf3\xc7\xcd\xfa\xc7\xc1\xce\x3d\x7f\x1b\x86\x04\x68\xff\xb0\x5a\x3f\x1d\xf6\xeb\xc5\x43\xf7\xff\x88\x60\x74\xa0\xac\x1b\xc1\xbe\x7c\xc8\x8a\x6c\xdf\xa8\xc9\xb9\x4d\x12\xd3\x68\xa4\xef\xfe\x0c\xf5\xf4\xe1\x1a\x1e\x61\x0d\xc8\x56\x7b\xbe\x5d\x75\x55\x3e\x88\xf3\x5f\xdc\xbd\x91\xba\x8b\x98\x2d\x13\xb9\xcd\x37\xe7\x63\x19\x12\x84\x09\x96\x85\x34\xbc\x7e\xd8\x75\x49\x10\x27\x18\x79\xc0\xfb\x39\xeb\x4a\x12\xaa\xdd\x5b\x15\xef\xd0\xad\xe7\x31\x5a\x2e\x1c\x6d\x2e\x24\x04\x19\x58\xbb\x82\x11\x93\x50\x91\xd0\x08\xe6\xee\xff\xb1\x6c\x60\x79\xc5\x1f\x61\xfc\x90\x08\xa1\x14\x37\x45\xff\xeb\x2f\xf2\x0f\x8e\x2f\x7e\x24\x8f\xa3\xb8\x87\xb5\x0d\x42\x08\x9b\xbf\x42\x31\x5f\x33\x55\x84\x08\x8e\x34\xb6\x5f\xaf\x6a\xa1\xe7\xb9\x65\x8a\x10\x99\xa4\xbe\x4b\x79\x78\x83\xec\xe0\x22\x95\x2f\x91\x63\x8a\x10\x15\x3a\x43\x23\xac\x39\xb8\xff\x52\xc2\xa4\x6d\xf4\xd9\x48\x6e\xb2\x95\x13\x2a\xad\x95\xba\x6f\x14\x4c\xd2\x6e\x45\xa2\x30\xc6\x86\xda\x52\x48\x31\xe0\x32\xe0\x01\x7c\x5b\x3e\xb4\xfc\x27\x4f\x2b\x4a\x48\xe2\x79\x70\xdb\x32\xcf\xbb\x10\x8a\xfb\x01\xdc\x9a\xc4\x1d\xa1\xf9\xaf\xe6\x7a\x9b\xe5\x39\xe8\xa7\xca\x5a\x7d\xe7\x80\xbd\x22\x0b\xa8\x1b\x85\x84\x24\xd2\x36\x5c\xfa\xbe\x5b\x3f\x1f\xee\x9e\x9f\x7e\xee\xbf\x1d\x10\x9a\xb9\x3b\x3c\xaf\x77\xeb\xe7\x1f\xeb\x1b\x7f\xa9\x71\x10\x63\x9b\xf2\xe1\xc7\x9d\x9a\xa1\xe6\x8c\xe6\x4a\x1c\x43\xe8\xb0\x81\xeb\x77\x9b\xc5\xdd\x55\xe5\xe5\xc3\x8b\xe0\x87\x0b\x81\x79\x33\x3e\x01\xff\x81\xee\x7b\x65\x0c\x5d\x97\xf5\x20\x2f\x7e\x59\x22\x3c\x8c\x03\x3a\x7c\x6d\x1e\xc4\x74\x3a\x72\x61\x05\x00\x85\x3e\x65\xc5\x9d\x33\x6f\xf0\x65\x1c\x45\x52\x16\x5a\xba\x8a\xa3\x3c\x1f\x1a\x2c\x18\xcd\x3b\x26\x29\x22\x62\xfb\x04\x3c\x7f\xac\x7d\x0d\xea\xc9\x37\x0a\xe7\x84\x86\x18\xa4\xdb\x2c\x87\x51\x53\xbd\x93\xf3\x0b\x83\x3e\x20\x64\xff\xf3\x51\xe5\xcf\x9d\x4d\xaa\x14\xc9\x76\x9d\xac\x78\xec\x7a\x41\xbe\xf5\xd1\x0d\xd4\x84\xc4\x5e\xdf\xac\xcb\x6c\xda\x74\x6e\x32\x13\x75\x40\xbd\x6b\xec\x22\xcf\x07\x64\xcd\x4d\x17\x71\x10\x9d\x84\x92\x76\xd6\x18\x26\x3b\x4e\x25\xbc\x27\xa7\xe4\xb1\x45\x3d\xb8\xf8\xd0\xb3\xb6\xbf\x50\x7b\x50\x44\xcb\x58\x3b\x5c\x4d\x47\xf4\xf2\xdb\x18\x31\x01\x43\x38\xe0\x42\x6b\x27\x6f\xf3\xe1\x5c\xa3\xe9\x66\x84\x8a\x7c\xd9\x29\xab\x60\xec\xeb\xaa\x88\x51\x16\x6d\x64\xb1\xcc\x5e\x8b\xe7\xc1\x8b\x7d\x4c\x32\x33\x62\x80\xe1\xca\x84\x70\x97\x94\x4d\x7e\x60\x63\x02\x2f\x74\xdb\xe5\x45\xd4\x75\x71\x15\x0d\x22\x62\xdf\xe7\x8b\x3c\x65\x75\x9d\x95\x85\x37\x02\x18\x58\x3a\x2a\x1a\xc6\x26\xb1\xec\xaa\x02\x79\x6e\x93\x59\x44\x43\x11\x28\xe1\xea\x6b\xb7\x56\x49\xb9\x76\x0c\xef\xee\x49\x8c\x3f\xa0\x4d\xe4\x0b\x42\x88\x0d\xab\xcb\xbc\x36\x65\xf5\x92\xf9\xe2\x88\xa2\x84\x84\xb6\x36\x8a\xbf\xcf\x7b\xd6\x5c\x6f\xcb\x6a\xd9\x28\xf7\xeb\x6e\x2b\x30\xd9\xfb\xc0\x7c\x56\x51\x22\xac\x9a\xd7\xa1\x2c\x6c\x1b\xc7\x42\x9b\x26\xbb\x2e\xa5\x81\xf5\x0c\xb1\xa8\x33\xe4\xd1\x8e\x54\x0f\x14\xa5\x06\x90\xa0\xe2\x32\x96\xd1\xfc\xa1\x4c\x71\x7c\x66\xdf\x77\x37\xab\x61\x38\x44\x99\x4e\xb0\x52\xfb\xfd\x71\xb3\x5f\xdf\x1c\x1e\x91\x44\xbb\x3b\xdc\x7e\x7f\xf4\x8b\x12\x8d\x08\xf5\x06\xee\x8f\xf0\x66\xfb\x6e\xd3\x8a\xeb\x10\x8b\x3a\xcd\xc2\x68\xcc\x14\xc8\xae\x20\x61\xe9\x83\xa5\xe3\x68\x70\x3f\x46\xd9\x5a\x7f\x65\xb5\x99\xa7\x14\xb1\x76\x80\x09\xe3\x01\x35\x7e\x56\x96\x6f\x8a\x00\xea\x2e\x21\x09\x12\x5f\xf9\xab\x8e\xb0\xbc\x5c\xe1\xc3\xde\x3f\xbf\x5b\x51\x1e\x5a\xdd\x9b\x13\xa0\x1f\xe1\x47\xd1\x65\x45\x39\xd1\xa9\x45\x20\x38\xc3\x0d\x6f\x66\x3d\x7a\xa3\x46\x72\x7a\x8a\xf2\x38\x46\xa2\x64\x2e\xea\x66\x3b\x55\x0c\x57\x94\x27\x1a\xcb\x73\x8f\xbb\xf1\xef\xc5\x15\x75\x88\x8c\xfb\x52\xe8\xff\x6e\x3f\x34\xb9\x9a\x34\x4d\x74\x3f\x0f\x96\x97\xeb\xd4\x8f\x71\xfc\x45\x22\x08\x54\xb7\xf4\xa3\xfa\xae\x95\xe5\xf6\x2b\x15\x15\xa1\x08\x45\x87\x65\x69\xb7\xec\x09\xdb\xe1\x93\xa5\x9c\x8a\x58\x80\xcd\x62\x1e\x66\x68\x7d\x8a\x8a\x34\xc6\xfe\xa5\x03\x05\x6f\xab\xf2\xfd\x6a\x45\xe3\x1f\x4a\xf5\xeb\x07\x99\x3c\x11\xa1\x24\x32\xf5\x34\xc8\xcb\x9c\x2a\x93\xa2\x32\x4e\xb0\x62\xd4\x35\xbf\xcc\xa4\x52\xad\xa8\x14\x24\x76\x4b\xf3\xf2\xba\x83\x93\x28\x9a\x4c\x79\x27\x45\xbb\x3e\xfe\x93\xfa\x49\x23\x4d\x20\xfb\xae\x8d\x6b\xc4\x60\x38\x3f\xbe\x51\x1d\x1a\x84\xd4\xad\x9b\x97\x1b\x91\xe5\xd7\x81\x9c\xc4\x74\xa4\x31\x88\x3a\x73\xe7\x5a\x8a\x3a\x53\x93\xd7\x18\x54\x84\x58\x8b\x5b\x51\xfd\x99\x8d\x7e\x7a\x00\x91\xda\x55\xb1\x80\x4a\xe4\xf7\xe5\x71\x72\x76\x30\xb1\x76\x76\xbf\xd9\xe9\x62\xd3\x9e\xfd\x8b\xcb\x75\xfd\x59\x0c\xb5\xc5\x8b\xdf\x45\x7e\x3d\xd7\x65\xf7\x6f\x6e\xa9\x75\xfb\x0c\xaa\xc3\xcf\x2c\xd7\x4a\x34\x07\x5f\x69\x1c\x2c\xf4\x2c\x48\x2d\x1e\xdf\xde\xdf\x58\xe5\x71\x3c\xb5\x58\x48\x43\xac\xf7\x9f\x2c\x25\x63\x5f\x6e\xfb\x54\xa8\x8d\x0a\x92\xae\xcb\x7c\x93\x15\x65\x77\x40\xc4\xb6\xb2\x87\x12\x9f\x93\xcb\x67\xa1\x34\xa9\x03\xb6\x3c\x15\xcb\x4b\xe5\x6c\x6c\x2d\x6c\xdb\x8d\xa1\xa1\x3d\x03\x76\xbe\x46\x64\xb6\x98\xcd\x57\x0f\x18\xa5\xdc\xaa\x18\x8b\x2a\x6b\xae\x56\xf5\xc7\x1f\x4a\x99\x37\xa9\xb7\xbd\xae\x7a\xd1\x2c\x46\x0d\x83\xc9\x6d\x33\x1d\x51\xe3\x41\x23\xa6\xbc\x54\xae\xf8\xbb\xfe\xf7\xd2\x2e\x96\x7e\xbf\x75\xe3\x23\x95\x80\x17\xd1\x6f\x43\x1e\x57\xf8\xff\xdf\xd4\xac\x15\x8b\x63\x6d\x51\xfc\xd9\xb1\x80\xa1\xbd\xb9\x62\x31\x58\xd7\x8f\xc6\x72\x66\x9f\x0a\xf8\xa4\xf0\xc2\x62\x23\x13\xab\x27\x22\x8e\xb0\x1a\x24\x31\xee\x78\x12\x2a\xbb\xf3\xce\xe9\x4d\xe1\x57\xb2\x99\xcc\x79\x9e\x77\xad\x58\x12\x5b\xd8\xef\xef\x59\xd3\x40\x31\xf6\x2a\x53\x2c\xe1\x12\x85\x04\xd6\xcf\x2b\x4e\x12\x9c\xcb\x0f\x9f\xa9\x95\x2b\x96\x40\x97\xdc\x5a\x39\x51\x1b\x54\xfd\x9d\x22\x21\xe3\x81\x45\xe2\x21\x4f\x79\x25\x0a\x9d\x69\xd1\x4d\x53\x9e\x04\xaa\xc3\xbb\xa3\x6e\xb9\x3f\xc0\xb5\xf0\xfa\xf1\xd6\xcd\x1f\x05\xc1\xbe\x17\x4d\x96\x8f\x1e\x7f\x1a\x85\x91\xd3\x07\xec\xa1\xcd\x56\xf3\xc6\x9f\x4b\x50\x1e\x9b\x1e\x66\x37\x94\xfd\x53\x4c\x30\x65\xd9\x3d\x3e\x3e\x75\xe1\xa9\x8b\x4e\xfd\xa8\x34\x89\x3b\xc1\x96\x67\xd1\x00\xeb\x3e\x0f\x82\x27\x3e\x72\x40\x31\x07\x4c\x6c\x46\xf1\x18\x93\x26\xc5\x49\x9e\x0b\x6c\x60\x09\x4f\x18\x1f\x3d\x64\x45\xa8\xb6\x20\xfd\x63\xbb\x4f\xdc\xb5\xdb\xf9\x6a\xe0\xe6\xe8\x87\x31\x96\x40\xbf\x01\x89\xa6\x99\xb8\x88\x2b\xa6\x64\x8c\x4b\xd9\xe6\xf1\xc7\x7a\xb7\x77\xca\x2c\xfe\x82\x15\x08\x24\x65\x28\x17\xe3\x2e\xba\x1f\x43\x19\x45\x65\xa7\x1b\x74\x5b\x56\x6b\x55\xd6\x56\x4d\xc4\x8d\xd0\x41\x02\x49\x47\xe7\x56\xd3\x24\x91\x69\x16\x63\x6f\xe4\xbe\x3c\xae\xc4\xe9\x2c\xb2\x63\xe1\xe3\xad\xc9\x40\x15\xe3\xe6\xa5\x4b\x35\x90\x03\x50\x4c\x3b\x8f\xd2\xc3\x41\x4d\xca\xe7\xa3\xbd\x88\x41\x40\xb1\xaf\x73\x38\xb6\xe9\x59\x53\x89\xad\xa8\xc4\x69\x34\x31\x80\x93\x74\xa2\xe6\xf2\x0c\xd6\x3c\x7e\xfc\xb4\xc0\x00\xa2\x29\x70\x8b\x5e\xdd\x3f\x62\x2a\xa5\x33\xd1\xad\xc9\x26\xa4\xb8\x35\xfe\x14\x55\x03\x6a\xb8\x69\x30\x23\x78\xea\xf5\xb4\x5e\xb2\x5c\x2f\x71\x11\x18\xff\xfa\x51\x00\xd6\xb0\xfc\xf9\xdb\xd3\x6a\x3e\x4c\x88\xc2\xc8\xe0\x5e\x88\xd2\xca\x1e\xc9\x3e\x40\xb0\xab\x28\x94\x01\x16\x23\xeb\x8b\xac\x11\x2f\x79\xc8\x0a\x9d\xbd\x66\xfa\x22\xf2\x43\x6d\xdd\xcb\x46\xf7\x15\x11\x26\xc1\xe9\x43\x81\x6a\x6c\xef\x73\x32\x84\x0a\x8d\x7e\x86\x32\x17\xea\xd7\x6d\x95\x69\x94\xd0\xb6\xf2\xbe\x6e\x08\x53\xca\x9a\xd8\xd8\x30\x62\xbd\xff\x36\x6a\x6b\xab\x28\x06\x8b\x68\x69\x63\xef\x3c\x1f\x13\xc7\x55\x94\x30\x81\x48\xb6\x4b\x81\x1b\x8e\x15\x8a\x41\xe9\xf1\x6e\x44\x64\x90\x1d\x61\x9b\xbe\x4f\xe6\x59\xbc\x8d\x8c\x6e\xbb\x2f\x4a\x8c\x22\x7c\x80\x0f\x78\x68\x33\x0b\x00\x67\x07\xf7\x91\x9b\x37\xbb\x7d\x44\x3c\xb0\x42\x1e\x47\xb7\x1d\x8c\x9b\x56\x11\x8f\x94\x6d\x4e\xda\x6a\xb4\x87\xdb\x4e\xf0\xb5\x7e\x70\x92\x22\x94\xf5\x67\xa6\x5d\x17\xb7\x3f\x4f\x9a\x32\x3b\xfb\xae\xe7\x09\xd9\x5d\x45\x29\x53\x88\x7b\xcf\xdb\x48\xe6\xc6\xd3\xe1\x7f\x8a\x57\xef\x2d\xa3\xa2\x54\x32\x44\xd5\xa3\x8c\x15\x5c\x4e\xf7\x65\xd3\xc0\x80\xf8\x3f\xbe\xa9\xd4\xd8\xc9\xb1\x12\xbf\xfa\x2f\xfb\x8b\xe0\xdd\x7d\x54\x10\xeb\xd5\x95\x67\x0a\x8a\x1a\xcb\xa9\x37\x50\x94\x18\x69\x7b\x85\x1e\x15\x09\x4e\xac\x22\xa7\xf5\xbe\xee\x31\x23\xed\x4a\xc6\xff\xd9\x29\x57\xf8\x27\x23\x52\x86\x3f\xfb\xc1\x59\xba\x8e\xdc\xf6\xc7\x73\x50\xc6\xd4\x2b\x80\x60\x51\x66\x26\xf4\x8c\x24\x44\x89\xeb\x3e\x3c\xe9\x2e\x76\x8e\x94\x04\xff\xf6\x79\x3d\x86\x5b\x44\xb9\x9c\xc6\xcb\x4d\xa4\x63\x9d\x76\x7e\x08\xf8\x84\x76\x83\x9f\x43\x9b\x08\x3b\x77\x36\x81\xba\x2f\xc5\x47\xa0\xc3\x27\x70\xc2\xbf\xfc\x3b\xba\x0b\x6d\x12\xda\x11\x35\xab\x59\x80\x97\x2f\x67\xce\xc0\x4b\x54\x64\x28\xe5\x9d\x73\xe3\xae\xb9\x68\x28\x9a\xd2\x38\xd9\x94\xd1\x43\x8d\xc3\x40\xf6\x6c\x44\x07\x0b\x7e\xc9\xea\x7f\x80\xf0\x3f\x69\x1c\x86\x36\x56\xef\x64\x3f\xbe\x17\xb6\x6e\xae\x57\x65\xf9\x2b\x9b\x34\x53\x63\x42\x62\xa3\xbc\xc2\x5f\xf6\x27\x74\x42\xfa\x2a\x26\x22\x66\xc3\xc4\x60\x55\xba\xc2\x81\x1f\xc0\x28\x67\x56\xcc\xff\xdd\xf9\x17\x0d\x1e\x7f\xcc\x94\xc1\x05\xe4\x94\x15\xcd\xa1\xc9\x4e\x70\xb0\xfd\x2b\xeb\xb8\x31\x3f\x6b\xe2\x48\x5a\xc7\x17\x68\x5e\x86\xe1\x64\x1c\xa9\x18\xa9\xc6\xd6\xab\xcf\x2d\x46\x70\x27\x72\xf1\xfe\xe1\xe5\xf9\x3a\x35\x8d\xe3\x50\x60\x60\x77\x23\xca\x8e\x9c\xe5\x1b\x88\xd5\x27\xdc\x04\x15\xc7\xd4\x0a\xe5\x6a\xf0\xb2\x13\xab\x49\x63\xd4\x0f\xe4\xb6\x7c\xb4\x7a\x7a\xbc\xdd\xdc\x1d\x6e\xd7\xeb\x9d\xbf\x89\x58\x2a\x5c\xa3\x7e\x96\x55\xae\x7f\x66\x1a\xee\xcb\x91\x77\xb9\x8a\x93\x28\xc6\x29\x8b\x96\x52\x6d\x48\x36\x84\x9f\xa9\x38\x89\x13\x6b\x61\x75\x29\x74\xfb\x3a\xa0\x14\x79\xe1\x83\xbf\x98\x6b\x13\x27\xfd\xec\x18\x28\xb4\xab\x38\x55\x56\xa7\xb4\x86\x06\xfd\x05\x67\xd9\xd6\x2a\x4e\x41\xe1\x1b\xd5\x61\x7d\x66\xd7\x60\x37\xd8\xab\x75\xca\xcb\x75\xdd\xbc\xdc\x97\x65\x23\xcb\xf7\xc9\x09\x85\x96\xb4\x33\xc9\xfa\x5c\x00\x6c\xfc\x21\x49\x22\x69\x99\xc0\xf5\x25\x9f\xb0\x52\x54\x2c\x63\x85\x9a\x57\x05\xbc\x79\x20\xf5\x6f\x1f\xfc\xbc\x55\xac\x88\x65\xd2\xfe\xeb\xa2\x8f\xce\xcb\xfa\x33\xe8\xfb\x7f\x4c\xea\x32\x73\x05\xd0\xcf\xea\xa2\xfe\xdb\x62\x6b\x6c\xe1\xa2\xbc\x59\x3b\xb9\xf1\x3c\x54\x5c\x2a\x3a\xa2\xb2\xcc\xc6\xdd\xd3\x2f\xd2\xa1\x4e\xc1\x87\xd6\x4f\x97\x66\x2f\x8e\xa3\x6e\x48\xac\xa9\x4d\x85\xdd\x56\xb7\x7b\xb9\x34\x9d\x75\x60\xff\xed\x9a\x0b\x0c\xc4\x5f\x44\x8d\x31\x16\x34\x1d\x99\x4d\xc5\xc0\x18\x56\x2d\xd7\xaa\xbc\xef\xd4\x4f\x55\x0c\x51\x4a\x62\x47\xf1\x38\x34\xe5\xa1\xce\x34\x1c\xd4\x08\x51\x3f\x7f\xab\x20\xa5\xb4\x1c\xd4\x77\x6f\x9f\x3b\x2c\x3a\xc6\x46\x11\x3f\x39\x6f\xb2\x5a\x5e\xaa\x3a\x2b\xb0\xb4\x3b\x9e\x17\x49\x40\x15\xea\x6b\xa0\x9a\x1c\x2a\xdb\xef\xbd\x25\xc2\x6f\x7e\x88\x8c\xb1\xa2\xaa\xe1\x7e\xaa\x43\xac\x92\x90\x01\x16\x79\x06\x85\x68\xaf\x5f\x39\xb3\x3d\x25\x84\x85\xd8\x77\xdc\x96\x0d\x14\x8d\xcf\x61\x12\xca\xd3\xa0\xcb\xc1\xc7\x75\x88\x84\x02\xa0\xc0\xa1\x12\x95\x3e\x60\xf8\x75\x68\xb7\xdc\xe1\x5b\x9c\x30\xaa\xb0\x5d\x75\xbb\x1a\x48\x4d\xa8\x24\x0a\x24\x56\x56\x25\x52\x71\x2d\xaa\x66\xf6\x71\x26\x91\x56\xa8\x23\xbf\xbe\x7d\x6a\xc3\xe9\x65\xaf\x0c\xe0\x07\x18\x7b\xaa\x36\xf9\x7e\xc9\x2a\x2f\x22\x3e\xb9\xd6\x98\x86\x48\x29\x10\xa8\x9f\x36\x7a\xc7\x92\x44\x10\x04\x6d\x2e\xce\xe7\x1c\x7a\x09\x78\x95\x24\x2a\x00\xd7\x21\xcf\x4a\x4d\x1e\x2f\xa7\xa1\xe3\xb1\x4a\x12\x88\xa4\xf7\x0e\xb7\xdf\x6a\x8b\x0c\xe3\xd3\xf3\xc0\x7a\x3d\x7d\xb7\x6f\x0b\x1a\x95\x0d\x12\x78\x5f\x6e\x4f\x38\x95\xc6\x81\xf5\x9d\x23\x5a\x8f\xff\x53\x09\x8f\x48\xea\xd2\xd7\x27\x63\x32\x24\x4c\x55\xf9\xf8\x51\x70\x49\x92\x78\xc6\x0d\x66\xf2\x48\x53\x16\xa8\x4e\x2a\xbd\x79\xb1\xa0\x83\x5d\x53\xaa\x5f\x13\x0c\xd2\xfc\x0c\x4f\x52\x61\x30\xf1\x59\xbf\x42\xd1\x2c\x2f\xd7\xdd\x80\xf1\x3b\xac\x63\x76\x4f\x40\x04\x24\x71\xc2\x73\x0f\xd9\x20\x82\xff\x27\xff\x1f\x3f\x82\x90\xa8\xf3\xc2\x7d\xb8\x8e\xd9\x8c\x2a\x11\x91\xc2\x77\x66\x51\x35\x99\x11\x6a\x26\xa5\x4c\x84\x24\x1e\x79\xfb\x20\xde\xf7\xe5\x0e\xf2\xb1\xc8\x8e\x4a\x04\x50\x9f\x8f\x3f\x8a\x13\x2e\x5b\xbf\x97\xd9\xaf\xd1\xae\x94\xc8\x90\x63\x5f\x1e\x4b\x5a\x8e\xb8\xd3\x91\x91\x54\x22\xb9\xb1\x8a\x7c\x03\xb5\x39\x07\xd7\x1b\x7f\x99\xa2\x0a\x57\xe4\xdf\xab\xeb\xb9\x29\xcf\xd7\x2e\xa6\x7d\xf8\xdf\xa0\x11\xc7\xf7\xa8\x92\xd0\x0a\xa9\x7a\xc2\xb9\x5f\xc4\x12\x05\x21\xa2\x48\x7d\xf8\x62\x95\x0a\xfa\xc3\x46\x23\x45\xd2\xc2\xa9\x10\x69\xef\x4c\x44\xb1\x58\x3d\xd1\xb5\x9d\xfc\xdc\x9a\x02\x16\xab\x32\x55\x6e\xea\x55\x5e\x76\x4c\x52\x95\xe8\x44\xe3\xa1\xba\x11\x85\x6e\xe3\xb3\xe1\x93\x84\x58\x8a\x3e\x15\xdf\x42\xb5\x82\xa2\xa9\x6f\xc4\xf5\xa9\xe8\x1e\xa7\x09\xac\xdd\x70\x56\xb7\x2f\x36\x4c\x38\x08\x2a\x31\x89\x35\xa8\xc1\x14\xe2\x06\xf2\x46\xfc\xdd\x00\x68\x72\x13\x46\x24\x64\xd4\xdc\xbf\x07\xd3\x74\x8a\xd7\xa3\x2f\xe5\x01\xd7\x08\x78\x42\x03\x01\x3b\x05\x66\xd7\x4c\x1e\xc8\x00\x8b\x0d\xa7\xac\xc0\xa0\x6a\x14\xc0\xf0\x40\xa5\xd4\x55\x55\xd0\x76\x66\x88\xb7\x1b\x5f\x1d\x0f\x4c\x84\xc1\x92\x2b\xcb\xda\xf3\xec\xcb\xad\xa8\x9a\x4c\x65\xe7\x0e\x93\xab\x78\x48\x75\xec\x75\x0c\x36\xcd\xcd\xeb\x68\x01\xe0\xa1\x08\xad\x2d\x8b\xeb\x25\x59\x93\x08\x54\x28\x99\x8d\x6a\x78\xa8\x98\x4e\xfc\x8c\xc2\xfb\x25\x83\xd9\xce\x43\x08\x1d\x1d\xc5\xe9\xd0\x74\xe4\x96\xac\x2c\xb0\xc7\xf2\x31\xcf\xe2\x21\x30\x2e\x3b\x07\x9f\xef\x59\xff\x44\x68\x18\x5b\xcf\xab\x97\xd2\x01\x52\xac\x11\x5a\x77\x9c\x5a\x30\x66\x1b\x0a\x9d\xa0\x03\xba\xf9\xa3\xa9\xf4\x7c\x94\xa1\xd6\xe3\x8c\x10\x80\xe2\x2c\x20\x21\xf3\x59\x95\xfa\x35\xce\xdd\x66\x57\x35\xce\x42\xc0\x22\xdc\xa1\x86\x66\xd9\x6e\x66\x79\x1b\xf9\xea\xa1\x16\x86\x1b\x19\x09\x2b\xdf\x91\xd5\x4e\xd5\x02\xb1\x2a\x9f\x94\xb8\x79\x24\x19\x71\x42\x61\x2e\xbd\x9e\x1c\xd7\x04\x5c\xd7\x6a\x73\xb2\xca\x7c\x48\x9a\xc2\x9a\xd2\x44\x26\xaf\xbf\xda\x58\x11\x70\x74\xda\x6d\x59\x35\x76\x96\x8e\xda\xb7\x3c\x86\x14\xc1\x0a\x48\xb3\xb2\x4f\xa9\x17\xa5\x53\x3c\xa1\xaa\x47\xf2\xec\xa0\x19\xc0\x02\xe6\x6f\x24\x01\x8b\x58\xb2\xa8\xa6\xf1\x26\xc7\xb9\x54\x18\x2e\xfd\x63\xbd\x78\x3e\xec\x7f\x3e\x39\xaf\x67\xff\x65\x69\x1a\x86\xbc\xd3\xa8\xc2\x30\xb6\x5d\x7e\x37\x37\xf3\x00\x65\x9e\x2a\xa6\xdc\xbb\x83\xdd\x73\x2b\x22\x1f\x0c\xdb\x63\x5c\x86\xb1\x57\xc6\x6d\xe7\xec\xae\x81\xb1\xc3\xba\xe2\x92\x2b\x91\xf8\xa8\xb3\xbc\x62\x4f\xef\xa3\xa2\x83\xe2\x52\x00\x26\x02\x87\xac\xc6\xf6\x16\xee\xbb\xe3\x21\x2a\x24\x21\xf4\x96\x39\xc3\x96\xfe\xe4\xd2\x95\x90\xd8\xb5\xc8\x45\x75\x84\xba\x19\xd6\x89\xb8\x52\x24\xb0\x4b\xa2\xc3\x6f\x6f\x6e\xa6\x3a\x2b\xf3\xaa\x47\xee\xf3\x3a\x04\xd4\x89\xb8\x29\xd5\x4c\x91\x64\xfe\x67\x33\x34\x8a\x89\xab\x95\x5e\x1a\xf0\xee\xda\xb6\x8a\xe5\x95\x0a\x46\x91\x08\x37\x8c\x87\x81\xdb\xaf\x57\xfb\x4f\xee\xd3\x40\x84\xbf\x78\x01\xef\x7e\x4e\xa5\x81\x10\xf8\x8a\x56\xa2\xd0\xe5\x29\xfb\x73\x32\x4b\xd2\x30\x0a\x71\xae\xfb\x57\x1b\x65\x33\x3e\xa6\xa1\x1f\x2b\xf1\xee\xf3\x84\x88\xd4\x8c\xf9\x40\xdb\x4b\x75\xee\xa2\xa4\x94\xa4\x09\x72\x7e\x7c\xfb\xc1\x9a\x84\x8f\x4f\x42\xa3\xc0\x9b\xb7\xd9\x62\x6a\x2f\x26\xa0\x52\x1a\x13\xe1\x2a\x39\x0b\x34\x59\x6f\xdf\xff\x76\xaf\x5c\x54\x93\x65\x20\xa5\x2a\xc4\xd5\xec\x0e\x9a\xef\xe7\x7d\xa6\x7e\xcd\x34\x7e\x53\x96\x70\x74\x87\x3d\x5c\x41\x54\x28\x96\xb6\xb2\x05\x8a\xdf\xba\x01\x56\x5d\xf4\x08\xcd\xa6\xc8\x9a\x4d\x71\xbe\x34\xd6\x17\xaf\x81\x0f\xed\xa3\xf9\x9f\x38\x65\x42\xc5\x56\x26\x18\x44\x35\x00\x54\xb8\xc3\x51\x9a\x62\xa1\x19\x5b\x4c\x59\x73\xed\x39\x1e\x2a\x8d\xa4\xc0\xb5\xac\x9d\x1d\xa5\x95\x86\xbf\xad\xe0\xdf\xdd\x61\x25\x52\xd7\x78\x7a\x16\x0d\xcc\x68\x8b\xb5\x63\x24\x12\x04\x6c\xaa\xbd\xec\xa4\xa0\x55\x1a\xc7\x1c\x11\xa6\x6f\x58\xb7\x9d\x5a\xa4\xa9\x34\x16\x94\x5b\x0e\xd8\x39\x2f\x27\xb0\xe3\x34\x36\x56\x71\x66\x60\xa4\x3e\xf4\x0e\x68\x07\x10\xde\x6b\x3b\xa0\x29\x4b\xfd\xd2\x27\x76\x69\x12\xd8\x92\xd8\x7d\x79\x74\x85\xe3\xe1\x5e\x99\x26\x81\x24\xd6\x40\xa0\xfc\x6d\x74\x3f\x49\x92\xa2\xd2\xc0\xae\x34\xcd\xa1\x73\xfc\x51\x69\xa2\x38\x36\x40\x5c\xd6\xbb\x2a\x8b\xba\xc9\x9a\xcb\x07\x01\x15\x95\x72\xc2\xf1\x0c\xeb\x1c\x71\x20\x83\x94\x22\xe5\x91\x46\xe0\x72\x01\x9f\x40\x32\xfd\x38\x01\xc8\x10\x5b\x2d\x76\xdf\xfe\xdb\x7f\x38\x0d\x94\xea\x76\xeb\x85\xb5\x90\xf8\x54\x0c\x42\xa5\xd2\x59\x36\x89\x5e\x32\x96\xfb\x43\x71\xa0\x7b\x62\x5d\x3b\xc7\xd7\xcd\xcb\xd4\x80\x7e\xfc\x7b\xc8\x24\x46\x19\x02\xfb\x91\x07\xf1\x3e\x12\x5c\x9e\xbf\x0b\x4f\x04\x72\xf5\xb9\xda\x36\xde\x88\xdf\x16\x52\x88\x02\xac\x74\x61\x11\xe7\xbe\x14\x23\x06\xa2\x4a\x41\x27\xf1\x80\xc7\x66\x1f\x18\x66\x80\x6e\x80\x09\x63\x8c\x86\x24\xa0\x45\x93\x17\x99\xf2\x47\x59\x04\xbe\xe0\x5b\xd7\x80\xe5\x3c\xab\xfd\xb4\x85\xea\xdb\xa5\xd0\xd5\x60\x6c\x6c\x1b\xc2\x06\x60\xeb\xd5\x12\x95\x08\x04\x45\x43\xc0\xbb\xbc\x94\x22\xdf\xe8\x32\x6f\x7f\xcb\x61\x94\x2b\x42\x46\x10\x43\xe4\x1e\xde\x24\xc5\x9e\x7d\x94\x22\x8c\x28\x7a\xec\x88\xac\xba\xa9\xca\x33\xee\xf4\x87\xee\x84\x31\x57\x66\xa0\xf8\xfa\xdb\xac\x70\xcd\x9c\x2e\x95\x12\x21\x07\x89\xc9\x0b\xfc\x0b\x54\x33\x47\xfd\x1f\x8c\x55\x56\x6c\x2c\xab\xb1\x2b\xd9\x66\x44\xf7\x50\x1c\x9b\x97\xd1\x6b\x22\x42\x23\xb0\xc4\x27\xb4\x9e\x93\x9f\x54\x82\x8a\x30\x74\xaf\xe1\x4f\xc8\x70\x0d\x7c\xc8\x54\x55\xfe\x0e\x57\xff\x2a\x0a\x0a\xa9\xec\xb7\xff\xf6\xda\xfc\x5c\x1b\x9f\x8b\x05\x56\x45\xfc\x19\x96\x65\x55\xac\x0b\xa8\x8e\xd7\xbf\x25\x40\xae\x04\xa3\xc6\xba\x02\xf9\xe5\xa2\xb8\x7e\xa2\x25\xa2\x44\x14\x98\x28\x75\x5a\x22\xf5\x68\x51\x11\x51\x14\xa1\xd4\xda\x22\xcf\x57\xe2\xdc\xa8\x17\xe1\x8f\xc4\x54\xa0\x80\xe4\xc0\x83\x77\xd7\x94\xe7\xf3\x20\x49\x17\x31\x93\x18\x2f\xcb\x4b\xde\x29\x9f\x7d\x7a\x15\xb1\xb4\xb2\x0b\x8b\x73\x59\x79\x9f\xdc\xbf\xbe\xcf\x58\x27\xb8\x85\x36\x19\x54\xc3\x58\x5d\xc4\x46\x19\x35\x98\x37\x3f\x36\xdb\xaf\x23\x5e\x91\x18\xa9\x87\xbe\x3d\x5e\xf0\xf8\x27\xc0\xaf\xfd\x9b\x47\x5b\x08\x4e\x24\xce\x56\x54\xab\xbb\x2f\xcb\xee\x59\x71\x69\xad\xbc\xfd\x37\xa2\xe0\x4c\x56\x1c\xf7\x2f\x55\xa7\x52\xfc\x75\x7d\x5a\x70\x15\x3a\x65\x94\x4d\xf1\x20\xb2\xa2\x11\x59\x31\x28\xdb\x88\x94\x40\x60\xf9\x4b\xfa\xa2\x6c\x97\x74\x5a\xa3\x18\x9f\x30\xe5\x69\xea\x02\xc7\xb1\xf3\xf9\x74\x9c\x24\xa8\xac\xd6\xe5\xf1\x65\x35\xd4\xfb\x54\x42\x84\x02\x0b\x5f\x87\x5e\x94\xd4\x92\x4c\xf6\xb6\x92\x3e\x99\xb9\x22\x31\x74\xc8\xaa\xdf\x15\xe5\x9b\xc9\xc5\x2f\x0f\xa4\x68\xa3\xdd\x1f\x99\x98\xae\x0b\x13\x71\xbd\xa9\x7e\xb2\x12\x3a\x24\x58\x6b\x41\xf1\xf4\xfa\xd0\xce\xd8\xc3\xb9\xca\xa6\x3c\x31\xa1\x29\xa3\xbc\xdf\xa8\x6f\xd1\xac\xbc\xcd\xe7\xc2\xc9\x85\x6a\x46\xb4\x17\x72\xf9\xd9\x7b\x27\x28\x01\x91\x41\x88\x5a\x5e\x8a\xe2\x19\xce\xf6\x66\x1f\xcb\x26\x33\x99\xfa\x68\x9c\xad\x04\x80\x9d\x3d\xbb\xfd\xe2\x6e\x7d\xb8\x7d\xfa\xfe\x7c\xd8\x6f\x1e\xd6\x87\x75\x07\x0b\x14\x26\x26\x58\x0f\x5f\x3d\xdd\x3f\x3d\x1f\x7e\x7e\xdb\x78\x5d\x5f\x25\x03\x95\x78\x61\x26\x04\x44\xd7\x4f\xc6\xb9\x63\x7d\x96\xcf\xf7\x41\x9a\x0c\x03\xd0\xce\x83\xa2\xd3\xde\xdb\x8a\xba\x86\x49\x65\x4f\x32\x66\xb8\xee\x52\x46\x93\x1d\xd1\x1b\x1b\x8b\xad\xe3\x81\x11\x25\x98\x38\xd7\xa5\xfa\x29\x2a\x30\xa2\xc2\x9e\x81\xbf\xda\x88\xc5\xd1\xd0\x27\xb7\x0d\x65\x46\x62\x6e\x5f\x49\x75\x28\x19\x09\x2b\x61\x75\xb7\xfb\xfe\x00\xba\x8b\x7f\x64\x04\x06\x85\xc1\x50\x6b\xf5\x47\xd9\x80\x35\xcb\xc7\x9e\xee\xc6\x4c\x25\x13\x67\xe9\x99\x32\x32\xa1\x8a\xfd\x16\x5a\x7b\x83\x10\x25\x63\x69\x10\xa8\x73\xfb\xc7\xfe\xa3\x1a\xad\x92\xb1\xb6\x2e\x67\x5e\x82\xb2\xcf\x26\x26\xe3\x0c\x43\x26\xc1\x2b\x5e\xdd\xcc\xfa\x2f\x93\xd0\xca\xaa\xdb\x30\xcc\xe1\x47\x46\x0c\x56\x99\xa4\x11\x8d\x7b\x7c\xcb\xc0\x7f\xd7\x0f\xd0\x02\xe5\x3d\x85\x2c\x2b\xeb\xb6\x39\xfd\x12\xad\x11\xfe\x72\x2e\xcf\x56\x2d\x62\x72\x99\x9c\x49\xdf\x45\xdd\xa8\xb2\x0f\xda\x24\x8f\x28\x4a\xe3\x1f\xda\xf4\x7a\x4e\xef\x0f\x87\x20\xd0\xd8\xe2\x1e\x76\x50\xe8\x4f\xe4\x02\x94\xe4\xdc\x6e\x86\x8b\xe5\x7a\x18\x04\xc8\x94\x1a\x4b\xda\x71\xf4\x81\x51\x18\x23\x45\xbb\x3d\x75\xeb\xec\x1d\x14\x13\xe5\x1c\x3f\x2c\xb2\x51\xbc\x55\x2c\xc7\x5e\x50\xdf\x83\xf1\x63\xe2\x44\x81\x4b\x4f\xec\x4d\xec\x4b\x47\x83\xb9\x2d\xab\x91\x6e\xe7\x90\xa5\x34\x99\x42\xfe\x64\x52\x61\x10\x68\xdd\x4a\x06\x59\x90\x14\x8a\x6a\x32\x12\x64\x76\x40\x86\xa9\x86\xfb\xf8\x57\x92\x4c\xa0\xce\xc9\xb0\x63\xde\x2e\x7c\x5d\xe8\xbe\x2e\x6c\x09\xfd\xc3\x6a\x22\x65\x62\x4b\x3f\x35\x34\x4b\xb4\xfc\x58\x1c\x2b\x80\xaf\x64\x0b\x86\xbb\xa2\x94\xd2\x5a\x77\xdf\x3c\xed\xfe\x7b\xf4\xcb\xa8\xc0\x92\xa7\xdf\x20\xab\xb7\x50\x2d\xb3\xe3\xf8\x30\x4b\xb1\xbd\x86\x5d\x63\xdb\x63\x7e\x10\xc5\x45\xe4\xf9\x24\x1d\x91\x8a\x13\xa5\x3b\xd6\xae\xfa\xb5\xbc\x2e\xaa\x66\x68\x93\x33\xbe\x1f\x4d\x64\x32\x22\x88\x2f\xaf\xf7\x70\x14\xea\x13\xf4\x83\x84\x80\xe0\x7b\xe6\x00\xd0\x97\xe6\xa5\xac\x6e\x2a\xf1\x96\x15\xc7\xfa\x43\x27\x6f\xbc\x7b\xf8\x33\x44\x16\xc3\x77\xba\xae\x8b\x26\x6b\xae\xbb\xa6\xba\xa8\x89\x73\xa6\x92\x00\xdc\xba\xf8\x97\xc7\x72\x42\x2d\x92\x86\x6a\xe6\xeb\xe3\x08\x64\xa9\x9f\xcc\x36\x9b\x54\xab\xb9\x1f\x1c\xdb\xee\xfc\x8b\xa8\x6f\x1e\x77\x1e\x10\x3c\xbf\x46\x19\x1e\x5b\x1f\xb1\xa2\x81\xea\x55\xe4\x3b\x50\xdd\xda\x60\x84\x95\x12\x1a\x9b\x09\xdd\x40\x2e\xae\x5d\x74\x2e\x8d\x34\xa8\x73\xff\xbc\x5e\x6c\xd7\xcf\x87\xcd\xe3\xfe\x79\xbd\xdd\xdc\x1c\x1e\x16\xff\x7d\x58\x2d\x9e\xef\x3c\x49\x56\x05\x91\x48\xc2\x51\x1b\xbf\x7f\x0f\x55\x90\x82\x50\x43\x00\xdc\xb6\x43\xe5\xab\x40\x70\x6e\x4d\xdc\xde\xed\x22\xec\xeb\x23\xfe\x38\x00\x6a\x7b\x9f\x4a\x9d\x99\xeb\x5f\xd1\xd6\x15\x21\x11\x19\x6e\xc7\x65\x35\xa2\xfd\x8c\x27\x8b\x22\xa4\x43\xac\xee\x44\x0e\xeb\x2e\x0a\x51\x44\x58\xca\xd3\xe1\x5c\x81\x73\x13\x85\x69\x60\x39\x1f\xdd\x29\x22\x23\xaf\x5e\xb6\x2d\xf3\x4c\x5d\x3f\xd3\x93\x9a\x05\x7a\x28\xa2\x02\xd3\x59\x61\x34\x22\xbf\x2d\x3f\x68\xe3\xb8\x91\x54\xc4\x08\xc0\x5a\x59\xe2\xde\x7f\x5d\xca\x89\xde\x83\x52\x2c\xb2\xbc\x08\x6f\xfe\x8e\xd7\xfb\x5f\x17\x98\x6e\x4b\x8a\x25\x69\x18\x0c\x10\x1a\xff\x75\x81\xea\xba\xd1\xf5\xbe\x5c\x42\xb3\x29\x34\x3a\x64\x8e\x26\x97\x8a\x28\xf7\x14\xe3\xf6\xe1\x79\xbc\x84\x05\xfd\x62\xdf\xe0\x61\xda\x2c\x52\x71\x90\x44\x2e\x4a\x7c\x3a\xbb\x9e\xde\xec\x7b\xa9\xe2\xc0\x0a\x32\x75\xd8\xf7\x9e\xcd\xad\x62\xc2\x30\x44\x5c\x3f\xed\xda\x90\xb0\xfb\xd1\xe2\x88\x2a\x3e\x5c\x3d\x7d\x9f\xa1\x3e\x4c\x9e\x4b\xcc\x09\xb8\x87\xbc\xbd\xc8\xdf\xe1\xda\x17\x3b\xc9\xa8\xd8\xa9\x12\x96\x28\x67\x74\x9d\xd5\xed\x46\xfb\x74\x6e\xa3\x75\x5b\x4a\xed\x66\x69\xc2\x53\x4e\xbd\x8e\x32\xbc\x66\xe5\xa5\xbe\xb9\x14\x47\x28\xcb\x62\x33\x12\xfd\x52\x2a\x11\x9c\xfb\x46\x42\x0f\xcd\xb8\x58\x04\xf4\xa7\xba\x4d\x4a\x71\x62\x9d\x8a\xec\x12\x3f\xb9\x1f\x9e\x50\xc2\x3d\xd1\xcb\xd7\x7b\x1e\xb2\x5a\x7d\x55\xeb\x50\x9c\x47\xd8\xa9\xb6\xc2\xb6\xd1\xe4\x9c\xa9\x61\xc8\x97\x41\xac\x77\x7b\x1a\xdf\x1d\xed\x42\xd7\x36\xc0\xa2\xd4\xc2\x49\xb1\x3f\xd5\x66\xf0\xa3\x8b\x96\x69\x80\x4d\x64\x61\x79\x0e\xbb\x0b\x12\x4c\x06\x9a\xeb\x4a\x49\x1d\xa0\x73\xc0\xc3\xe6\xf1\x70\xb3\xde\x2e\x9e\xf7\xdf\x9f\x51\xe9\xab\x1b\x00\x9c\xbb\x79\x76\x5f\x16\x47\xcc\x45\xba\x63\x26\xc4\x52\xbb\x0b\x70\xdc\x04\xb7\x51\xc0\xd0\x78\x56\x29\xc5\x94\x87\x8a\x3b\x59\x16\x5b\x36\x9b\x2a\xe6\x28\xa5\x22\x6d\x69\xe1\x65\x3e\x09\x6b\x95\x92\x09\x36\x21\x2f\x85\x57\xfb\x06\x3d\x92\xa7\x0d\x09\x9f\x4d\xbc\xbc\x48\xba\x52\x3a\x00\xac\x67\xdf\xe6\xd9\xf9\x9c\x35\x53\xa9\xae\xcb\x8c\x3f\xa6\xfb\x24\x30\x6b\x44\x2d\xb4\x7e\x84\x37\x8f\xca\xf9\x0b\x95\xf0\xf1\x4f\x0a\x90\xca\xb8\xef\x9b\x4f\xee\x0e\xc0\x02\x1f\x6a\x24\x0a\xba\x59\x3b\x79\x2d\xc1\x24\x98\x16\x89\x57\xa8\xc4\x11\x76\x65\xae\x07\x5e\x3d\x4a\x99\x20\x52\x56\x9c\x16\x2f\xcf\xe6\xb6\x17\x94\xbe\x9b\x9f\x83\x86\x0b\xa4\x15\x0f\x55\x9b\xbe\xb6\x80\x51\x3a\x88\x05\x66\x05\x59\x83\x7e\x40\x8f\x30\x71\xf6\x56\x3a\xe0\x7a\xe4\x92\xf4\xb9\x20\x9a\xd2\x61\x98\x22\xbf\xe0\x11\xde\x6c\x08\x32\x0d\x57\x27\xdf\x1e\x72\x6b\x72\x7d\xcc\x4e\x27\xc0\x75\xce\x4f\x32\x4d\xc2\x44\x26\xbe\xdc\x02\x6d\xce\xd3\x46\x20\xfb\xb2\x3b\x9e\x50\xa4\xee\x36\x48\x8c\xec\x1f\x9b\x26\x3c\xb0\x3a\xdc\xe5\x79\x28\x45\xdb\x1e\x10\x58\xeb\x3e\xfc\xfb\x02\x97\x4f\x38\xe7\x9a\x48\x8a\x77\xf0\x0c\x7a\x99\x5f\x46\x6d\x75\x4d\x63\x83\x97\xf4\x90\x15\x7f\xa1\x95\xa3\x69\xe2\x04\x7f\xdb\xbd\xb3\xd0\xe5\x09\xfd\xa7\xa6\x24\x73\xcd\x42\x82\x42\x81\x3e\x27\x1b\x63\xe2\x35\x63\x11\x52\x88\x91\xa8\xe0\x2a\x87\x28\x9b\x39\xe4\x94\xe9\x88\x10\xa4\x59\x5b\xff\xd2\x8f\x54\xc9\x2e\x24\xd6\x91\x30\xa9\x55\x83\x2e\xdf\xf4\xed\xa5\xd0\xae\x13\x3e\xbe\xa8\x48\x27\x88\xc0\xb8\xb5\xa5\x74\xff\x52\x7e\x52\x1f\xd5\x49\x9c\x5a\x47\x93\x57\x28\x9a\x95\xa8\xf4\xb3\xab\xad\xfa\xbb\xe0\x11\xc7\xb2\xc2\x29\x2b\x9a\xcd\xea\xe9\xef\xb0\xf8\x35\xe7\x12\xaf\xc1\xb9\x1f\x67\x7f\xc2\x5c\xf3\x5a\xa7\x69\xa4\xc5\x60\x6e\xfa\x37\x79\x2e\x9e\xd1\xa9\xa2\x08\x29\xee\xcc\x51\xd6\x85\xae\x3b\xd4\xbd\x16\x52\x22\xf3\xae\x8d\xc7\xb6\xcf\xeb\x87\xcd\x77\xbf\x6c\x6a\xc9\x38\x7e\xd2\x97\x19\xaf\x13\x5c\xab\x56\xb1\xc0\x44\xf5\x41\x54\x55\xd6\x73\x5e\xb4\x4a\x23\xe4\xb3\x1e\xb2\xda\xea\x71\x82\x7e\xaa\x46\x66\xdb\x93\xfb\x56\xa9\x8a\xa9\x23\x3f\xd5\x59\x3d\x4c\x30\xb5\x92\x16\xbd\xd7\x74\xd8\xc7\x6a\xd2\x87\xd5\x9a\x06\xde\x69\xe8\xa3\xb8\xa9\x0f\x69\x3b\x91\xd3\xf1\xe3\xd1\x54\x32\xc7\x7f\x44\x25\xcc\xdb\xb2\x9a\x4a\x53\x29\xad\x85\xf5\x12\xad\xc0\x52\x0c\xfd\xb5\x19\x15\x63\x91\xd9\xd6\x9f\xac\x2f\xb0\x3d\x04\x41\x40\xb1\x44\xb8\xbf\x34\x65\x95\x89\x7c\x26\x93\x87\x20\xd4\xbc\x2b\x00\x2c\xc7\x3c\xa7\x36\xab\xc0\x9d\xb1\x7c\x85\x4a\x57\xc2\x34\xab\x3c\x33\xa6\x3b\x1a\x51\x31\x40\xcf\x2d\x0a\x6d\x9d\x5b\x47\x7d\x64\x08\xc0\x2a\x81\xb7\x37\x67\xd5\x08\x67\x9f\x3f\x84\xa1\xb2\xce\xf1\x2f\x59\xae\x2b\x28\xc6\xcb\x3a\x84\x2c\xd5\x4e\x7a\x7a\x25\x0a\x7d\xbd\x17\x85\x45\x30\x8f\x6f\x27\x64\x06\x0b\xb0\xb7\x4f\x0f\x4f\x83\xc6\x09\x84\x5c\xc7\x72\x54\xd8\x1b\xe4\xce\x10\x72\x50\x6e\x53\xda\xb8\x24\xe3\x73\xa1\xd9\xf1\x65\xa5\x09\x36\xc0\xee\x00\x21\xe1\xbb\xe6\x62\x0c\x1a\x67\x4c\xa9\x99\x7e\x3c\x50\x2c\x9b\xef\x41\x9c\x16\x85\x5e\x7c\xd0\x4d\xf8\xe4\xe9\xd0\x20\x35\x2e\x7c\x40\x49\xed\xbf\x92\xa2\x53\x40\x13\x86\x0d\x56\x5c\xdb\x9f\xf2\xeb\xe9\x9c\x75\x69\x13\x30\x93\x12\xb7\xc4\x5b\xc7\xc4\xc9\xd6\x03\x51\x28\x11\x91\xec\x97\x20\x27\xb2\xbd\x6e\x3e\xe9\x5b\x43\x14\x2b\x5c\x76\xa1\x79\x99\x88\xcf\x29\x88\x43\xeb\x3e\xbf\xe9\x96\x14\xbd\xcf\x3e\xf2\x63\xfd\x68\x1a\x60\xee\xeb\x24\x91\xdb\x94\xb6\xb6\xa2\x78\xcb\x6b\x14\x04\x41\x77\xd6\x34\x26\x8e\x35\xe1\xeb\x0b\x5d\xf7\x0e\x62\x61\xf5\xc7\xe1\x84\x62\x61\x28\x32\x25\xc6\x1d\x40\x88\x45\xc2\xc0\x7d\x11\x54\x8f\x65\xf1\x0c\x80\x9b\x9d\x5f\x98\x20\x09\x28\x8a\xd4\x63\x0f\xd0\x05\x48\xf3\xb7\x9f\x84\xc6\x83\xc3\x9e\xe1\x98\x95\x85\xbf\xa4\x6d\xf6\x0e\xf9\x4c\x6b\x17\x92\x88\x24\x9d\x33\x2f\x3a\x52\x41\x9e\x0f\xaa\x28\x90\xa6\x11\x6e\x19\x3f\xe0\xd8\x11\x71\x40\x24\x02\x85\x7b\x9c\xa5\xc2\x4b\x76\xf6\x2d\xa3\xf1\x43\x14\x32\x41\xdb\xcc\x02\xde\x36\x7a\x2f\x8a\x5f\xdd\x09\x24\xc7\xca\xf5\xc9\xd1\x3a\xde\x0f\x42\x7f\xf8\x30\x58\xb9\xb9\x2d\x26\xd3\x5b\x71\x7d\x98\x37\xb7\x54\x20\x83\x30\xb1\xac\x82\x3e\x77\xef\xef\x40\x8a\x00\x83\xfd\xfb\xf2\xe8\x94\x96\x26\xcf\x40\x25\x54\xf6\x96\xf5\xed\x1e\x6a\xe5\x9d\x66\xd5\x56\x15\x28\xa1\x62\xdd\x37\xf4\x86\x6e\xb6\x0a\x74\x20\x70\xbe\xef\xac\x8b\xe5\xdc\xa6\x05\x9a\x25\xd4\xee\x26\x4e\x3c\xbe\xfb\xb0\xb1\x53\xe1\x08\xcd\xe1\x2c\xaa\xe6\x1a\xf6\x47\x54\x60\x55\x2d\xaa\x42\xe8\xd2\x8a\x62\x0f\x8e\xa1\x7b\x89\x6a\x10\xd2\xdf\x9b\x1f\x0f\x1e\x02\xf0\x50\xc9\xe1\x06\x35\x7d\x6d\xe7\x2e\xd4\x04\x0a\x95\xbe\x2e\xb5\xde\x62\x73\xb5\xdf\xd4\xc1\x04\x06\x71\xb3\x9e\x9f\x53\x7e\x86\xd4\x04\x43\x08\xbe\x04\x7f\x88\x3f\x87\xd1\x14\x98\xc8\x02\xb0\x0b\x38\x3a\x41\xf9\x67\x4c\x33\xbb\xa5\xdd\x04\x41\x12\x7a\xa5\x58\x2c\x29\xdd\x82\xab\xc7\x01\xfc\xcc\x0a\x5d\xbe\x0d\xf7\x09\x13\xb0\x48\x3b\x15\xb5\x5d\x69\x9a\x37\x51\xc1\x1a\x0d\x8f\x54\x59\x7d\x10\x06\x9c\x8f\x3b\x4c\x20\x8c\xea\x5d\x5e\x26\xb4\xdf\x41\xd0\x65\xc2\x30\xf4\x2b\x4d\xcf\xc0\x30\x21\x89\x90\x39\x7a\x0f\xba\xef\x4a\x98\x90\x24\xe8\xd3\x7a\x2a\x35\x8c\xec\xd6\x94\x09\x13\x6e\xdd\xdb\x9f\x7e\xae\x9f\x9f\x6e\xf7\xdf\x9e\xd7\xbe\xbd\x60\x48\x10\x06\xd0\xd3\x54\xc6\x17\x4a\x42\x83\x71\xfb\xea\xf6\x71\x68\xea\xa5\x0c\x51\x04\x05\x50\x6e\xe0\xbd\xd7\xf2\x33\x04\x08\x96\x49\xef\xac\x01\x45\xe5\x17\x17\x43\x89\x06\xda\xd5\xcb\x06\x1c\xbd\xba\x1b\x41\x03\x2c\x67\x78\xa9\x12\x8b\xca\x1d\x5f\x0d\x4d\xa8\xc7\x7f\xdd\x96\x55\x73\x29\xc6\x61\x83\x69\xb7\x81\x76\x26\x2d\xec\x7e\x38\xdc\x32\xc7\xeb\xae\x61\x94\x31\xbb\xb4\x1c\x45\x5e\xbe\xfc\xd6\xfd\x3b\xc5\xa2\xf5\x01\xbd\xc2\xb6\x65\x99\x4f\x5e\x4b\xc3\x04\x49\x9d\x60\xea\xb7\xf2\x52\xc3\x5a\x77\xd1\x89\x69\x17\xec\xb4\x8f\xaa\x70\x32\xf5\xb4\x18\x13\x11\x83\x8f\x4c\x5e\xae\xcb\x4b\xfe\x6b\x5b\xc1\x29\xbb\x9c\xda\x67\xfe\x11\xcb\x33\xfe\xd2\x48\xda\x8e\xfb\x29\xcb\x73\xb4\x28\xe9\x40\x29\x26\x0e\xad\xed\xf5\x41\x89\xe2\x53\xb9\xbb\xcf\xf0\x9f\x1f\x7a\x68\x26\x66\x89\x4f\x28\x2c\xf6\x73\xd7\xae\xba\x1f\x35\xb9\x4c\x12\x2b\x9c\xc1\xcd\x4b\x56\xe9\x9b\xac\xc6\xba\xfa\x30\x41\x32\x09\x0f\x93\x4e\xb5\x0c\xf4\x98\x78\x67\x78\x48\xd0\xc6\xaa\xcd\x06\x11\x1d\xb9\x83\x2e\x21\x31\x5c\x06\x08\xef\x5e\xe6\xd9\x79\x46\xf3\xdf\x8f\xd2\x0a\xd9\xa9\x1d\xa3\xe9\xa9\x9a\x44\x48\x26\x0d\x03\x62\xfd\x88\x1d\x04\xe4\xdc\xd7\xa4\x4c\x4a\xa3\xd4\xe1\xf5\xb7\x22\xd3\xe8\xe8\x34\xfa\x82\x34\x52\x96\x83\xd9\x4e\xc5\x17\xac\x4d\x6c\xea\xd1\x5b\x90\xc6\x11\xfe\xe2\xb5\x30\xd0\x63\x76\x16\xb9\x6f\x5b\x19\xc9\x2c\x89\xb1\xb2\x22\x1b\xa5\xc9\x3e\xa9\x82\x1b\xc5\x34\x9a\xcd\x79\x36\xe8\xcd\xf7\xe7\x81\x05\xbf\x32\x3a\x12\x28\x61\x71\x6e\x5f\x8e\xa7\x62\xa4\xce\x62\xb4\x56\x46\x0e\xe5\x35\xb1\x84\xda\xd9\x07\x8f\xbf\x09\x28\xa0\x7a\x87\x06\x99\x35\x13\xc5\xb5\xc9\x45\x01\xb3\x2e\x50\x16\x8c\xf0\x9a\x69\xa8\xda\xc9\xf7\x2d\x6b\x93\xed\xeb\x6c\xd8\xe8\x57\x2e\x88\xac\x12\xc6\x72\x71\x3b\xd2\xdc\x30\x10\xa5\xc2\x72\xeb\x4f\x58\xf1\x1b\x3c\xb7\xd3\xe8\x52\xc6\x3f\x25\xc4\x04\xdf\x01\x9f\x96\x3c\x97\x39\xfc\x36\xc7\x9b\x33\x20\x62\x04\x78\x23\x03\xb5\xde\x42\x75\x23\xba\x85\xb0\xdd\x26\x9c\x0e\xe9\xee\x2c\x8a\x5f\xdb\x32\x2b\x3e\x53\x4f\x32\x26\xd2\x49\x34\x60\xa0\xba\xc0\x75\x5a\x7e\x32\x26\x16\x08\x30\x5d\xe4\xcd\x4c\xd6\x61\x4c\x62\x7f\x39\xdb\xaf\x70\xc5\xfb\x76\x85\x74\x2f\x83\x0e\x02\x1a\xe0\xab\xd2\x74\x7a\xc3\xc3\xc0\x5b\x07\xa1\xe3\xcc\x6e\x4b\x3f\x7b\x75\xe0\x0b\x17\x48\xa0\xb2\xd5\x5c\x27\x62\xe4\x07\x50\x16\xf4\x5e\x20\x18\xea\x9f\x40\x67\xa2\x1a\xb7\x6b\x74\x40\x98\xe5\x19\xe2\xe4\x79\xcf\x4e\x97\xd3\xb2\x5d\xdc\x4e\xfd\x99\x04\xc7\xd9\x85\x8c\xa9\x5b\xf1\x0b\x3e\x02\x43\x75\xc0\x12\x6b\x25\x78\x2a\x8b\x36\xc2\xdc\xe8\x7d\xf9\x98\xa9\x5f\x85\x98\xf8\xd5\xeb\x36\x93\x32\xf1\xc0\xdd\xb3\x9e\x5c\x4f\x14\x1b\x8c\x7c\x54\x59\xe6\x37\xe5\x5b\xe1\x2f\x23\x4a\x38\x56\x88\x90\x34\x7d\xff\xb4\xfa\x1d\x9b\xe8\xdd\x51\x61\x01\x74\xff\x79\xa9\x9b\x4c\xd9\x4b\xfc\x41\xfc\xd1\x38\xb0\x73\x42\xd8\x65\x60\x30\x21\x75\x10\x53\x6a\x63\x0c\xd4\xcd\x05\xed\x21\xe5\xab\xb2\x2a\xa0\x42\x7c\xa0\xad\x2f\xf5\x6e\xf3\x3a\x48\x24\xc1\x68\x19\x5d\xd6\x7c\xc0\xcb\xdd\x41\x0e\x16\x4d\x86\xcf\xdb\xc6\xe1\x43\xd3\x6f\x37\x4a\xb8\x46\xfa\x29\x2b\xc6\x33\xbf\x3b\x9e\xa2\xec\xa2\xd0\xfa\x13\x59\x72\x3f\x30\xd2\x08\x65\x6a\x07\x42\xe5\xc9\x98\x93\x93\xe9\x90\x59\x37\xe1\xed\xe1\xfb\xee\xc6\xdf\x86\x24\x02\x77\xcc\xc7\xef\x0f\x87\xfd\xe6\xde\x73\x12\x75\xa0\x28\x47\x9d\x1a\xbc\xfa\x34\x9d\x4d\x5f\x74\xa0\x22\xcb\x39\xaf\x40\xc3\x09\x7b\x3c\x16\xb6\x36\xf9\x72\x15\xa7\xd8\xb8\x5a\xb7\x93\x70\xf7\x26\xce\x1f\x56\x8e\x36\x86\x9c\x9e\x5b\xa8\xd4\x57\xdd\xad\x2a\x9c\x0d\xc3\x3e\x2d\x3c\xe9\x40\x87\x36\x92\x3c\x57\xa5\x82\xba\xfe\xab\xee\xcf\x60\xe7\xd3\x81\xa6\xd6\xa8\xb7\xdb\xf9\x16\x53\x31\x20\x1d\x68\x1e\x08\x2f\x43\x60\xeb\x6d\xc3\x46\x81\x0e\x34\x58\xe3\xa6\x23\x34\x3f\xcb\xea\x17\x54\x73\x42\xc5\x3a\x00\x6e\x8b\xa1\x0f\xff\x58\x3b\xbc\xa2\x0e\x49\x9c\x60\x86\xe4\x85\xad\xbb\xf0\x7a\xfa\x30\x43\x92\x84\x18\x4a\x39\x9d\x1d\xd7\x67\x9e\x0e\x4a\x19\x56\x3a\x4e\xe2\xdd\xa9\x05\x20\x31\x0f\xfc\xce\xd4\x8e\xb0\x12\x04\x08\x90\xec\xba\x7b\x3a\x24\x32\x4e\xad\x7f\xbe\x14\xc5\x07\x44\xbf\x0e\x89\xb1\x1d\x7a\x70\xa2\x77\x95\xff\x20\x0d\xac\xe9\x0e\x76\x2e\x51\x4a\x3f\x9b\x5e\x3a\x0d\x00\x2d\xfe\x0e\xca\x66\x48\xb7\xf0\x35\x7f\x4a\x87\x94\x59\xdb\x12\xd7\xeb\xb5\x63\xfa\xbe\xd6\x07\xd3\x56\x1d\xd2\x28\x48\x6c\xde\x84\x09\xdd\xed\xd4\xac\x43\x87\x94\x5b\x61\x23\xc7\x65\x6d\x63\xb4\xf9\x17\x2b\xa4\x22\xc2\xba\xf1\xb6\x82\xb3\xc8\x5c\x43\xdf\x81\x92\x91\xd1\xf5\x29\x02\x67\x72\x1e\x15\x21\x66\x43\xfe\xc8\x34\x94\xbd\x84\xa9\x0e\x69\x7b\x8b\x18\xf5\xca\x3c\x53\xbe\x32\x52\x0c\x3b\xef\x3a\x64\x01\x43\xfe\xae\xf5\xfd\x46\x8b\x9f\xcd\xf2\xfb\xfe\xe9\x79\x4e\x3a\x42\x87\x4c\x59\xc1\x59\xac\xd3\xa2\x28\xd2\x33\xd4\xe5\xa5\x52\xdd\x86\x13\x32\xa0\x48\xe1\xf6\x22\x0c\xab\x97\x32\x1b\x1c\x8e\x62\x86\x1c\x7d\x9c\x1b\x0f\xeb\xc5\x83\x5b\x52\x66\xf7\xfb\xc9\xbd\x46\x3a\x41\x54\xd9\x01\xac\xa7\x9a\x1b\x3a\x1a\x13\xd3\x18\x4b\x50\x65\x81\x06\x74\x5f\xd5\x68\x75\x18\x6b\xcd\x9c\x08\xdc\xe9\x52\x64\xcd\xf5\x3b\x2e\xc6\x3e\x5a\xd4\x61\x02\xd6\x30\xe0\xfe\xfb\x8f\xcd\xe8\xb9\x25\x26\x41\x98\x5f\xdd\x08\xff\x2f\x4e\xa4\x51\x9e\x68\x94\xd5\xa5\x46\xf9\x96\xc1\xbb\xfc\xf9\x8f\x98\x26\x11\x4e\x9b\xa3\x38\xc1\xa0\x57\xae\xc3\x34\xb5\xb6\x6e\x3f\xd7\x9b\xc3\x6a\xb1\xed\xfe\xad\x34\x56\xb1\x6e\xba\x3d\x2a\x14\x01\xc7\x56\xcb\xc3\xe6\x71\x68\x8c\xa3\x43\x91\x5a\xf4\xee\x9e\xaf\xe6\xde\x66\x99\x52\x64\xbf\xbb\x50\xda\xaf\x6b\x43\x01\x30\x1d\x4a\x45\xac\x37\xc1\xfb\x19\xaa\x66\x22\xf5\xa4\x43\xa9\x43\x84\xfb\x9f\xad\xef\x39\x39\xe4\x17\xf5\xeb\x2a\x2f\x57\x84\x68\xf4\xaf\xb1\x34\x80\x51\xf1\x12\x0a\x30\x19\xc6\x29\xa3\x87\xaa\x98\xb5\xbf\x5d\xef\xbf\x7d\xdf\xdd\x6c\x9f\x37\xab\xee\xf6\x54\x64\xf0\x75\x59\xeb\xac\x79\x28\x75\xb7\xa4\x80\x4e\x50\x85\xf2\x24\xde\xef\x2e\x02\xdd\xa5\x40\x0f\xe2\x57\x1d\x1a\xae\x10\xfd\x56\x76\x70\x41\x27\x0f\xae\x43\x93\xda\x06\xde\xbd\xa8\x1d\xd6\x67\x9c\x28\x4f\x7e\x25\x63\x42\xee\x74\x3c\xdd\xa6\xe9\x9b\x1d\xfd\x3e\x41\x82\x44\x63\x2f\x21\xb3\x76\xfe\x93\x80\x88\x04\xce\xb4\xa7\x86\xe6\x5e\x54\xa8\xdd\xd4\x2d\xc7\x1d\xcf\x6c\x10\x36\x7e\xc0\x93\x6b\x12\x68\x86\xdd\xa1\xe5\x7a\x7f\xd8\xff\x63\xbb\xfe\xb6\xd8\x7d\x73\x37\x4b\x42\x41\x1c\x76\xa4\xc0\x66\x58\xbb\x65\x6e\xfc\xef\x44\x88\x4c\x95\x9d\x36\xbb\xb1\xb8\x8a\x26\x44\x87\xd8\x8b\x6a\xa7\x7f\x0f\x67\xd5\x84\x06\xa1\x52\x9d\x3d\xee\xec\x9e\x43\x28\x57\xdc\x65\xf9\x0e\x1c\x31\x09\x63\x35\xa1\x42\x20\x97\xcf\x94\x15\x64\xc7\x62\x79\xf9\x40\xa8\x1a\x3f\x6b\xc2\x88\x94\x36\x40\xf9\xd7\xa5\x6e\x06\x2e\xef\xc8\xdd\x3f\xdb\xd0\xda\x8d\x8d\x68\x8c\x81\x86\x05\x76\xd9\x3a\xde\xa2\x69\xda\xa8\xe1\x63\x7a\xa9\x49\xa4\x54\x3a\x84\x28\x7f\x21\x0e\xa1\x49\xcc\x35\x32\x23\xcf\xe2\xba\x39\x59\x25\x81\xa5\x28\x7e\xdd\x96\xd5\x5d\x59\x6a\xdf\xcb\x72\x83\x13\x11\x21\x97\xab\xda\xac\x9e\x66\x53\x0d\x4d\xb8\x12\x81\x73\x91\xf0\x82\x30\xfe\xa7\xf8\x08\x30\xfa\x04\x70\xd4\x33\xf4\xdd\x49\x53\x4e\x62\x4b\x59\x1e\x6c\xed\xce\xa0\x77\x72\xf3\x22\x8c\xb1\xcc\x71\xba\x22\xc5\x6a\x50\x7d\xd2\x44\xd0\x00\xe9\x8f\x5e\x00\xd6\x79\xeb\x80\xc6\xd2\x77\x37\x2a\x4d\x11\x22\x75\xf7\xe3\x09\xa3\xb2\x6d\x55\x1e\x2b\xf1\x51\x79\x60\xfc\xbd\x32\xb4\xe2\x99\x3f\x17\x1b\xdc\x55\x06\xe1\x35\x51\x24\xc5\x16\x3b\xfe\x0e\xe8\xc0\xec\xa9\xf8\x6e\x40\x1b\xaf\x6a\x3f\xe0\xd0\x4c\x2d\xff\x35\xd1\x34\xc2\xd9\x62\x1b\xcc\xa2\x6a\x8a\x41\x63\x69\x7e\xfb\x27\x5a\xf2\x10\xc1\x08\x79\x05\x42\x0f\x7c\x6f\x35\x81\x54\x63\x7a\xb3\x7b\x29\xdf\xdc\x43\xc0\x0c\x7e\x7c\x4b\x00\x1c\x6b\x04\x77\xd0\xdc\x97\xa2\x18\xb9\x36\x0f\x16\x04\x30\x80\x25\x51\x17\x97\x3c\xbd\x81\xee\x80\x28\xee\x0b\x69\x10\x05\x58\xfe\x6d\x3f\x8e\x15\x8b\xf9\xa0\x81\x06\x89\xe5\x00\xf7\xc6\x53\xae\x76\x3b\xba\x32\x1a\xc8\x18\xb5\x0f\xe4\x54\x3d\x6e\x3c\x6f\x68\xc8\xac\xa9\x3a\xca\x1a\x3c\x6c\x76\xfb\x2f\x64\x8c\x35\x0d\xb9\x75\xe7\x6b\x44\x9e\x5f\x7f\x7c\x50\xfb\xd5\x94\x88\x30\xb4\x6a\x7e\xd6\xbb\xb2\xde\xe8\x0f\x43\xc0\xb6\x95\x5e\x2e\x55\x66\xae\xa7\xec\xf3\x30\xc7\x7d\x80\x86\x0c\xd9\x85\x16\xfc\xe4\xcb\x94\x9a\x52\x88\xb1\x8d\xf5\x22\xea\x9b\xac\x3e\x5f\x1a\xd8\x95\xf9\xeb\xa4\x11\xac\x29\x0b\xed\x32\x62\xb2\x42\xef\x2e\xb2\x56\x55\x26\xa1\xb2\x5a\xdd\xe3\x67\xc6\xe2\x08\x69\x95\x6f\x90\x29\x8f\x5b\xd5\x94\x69\x85\xa8\x97\xc5\xb7\xdd\x7c\x27\xb2\x7b\x96\x11\x17\x28\x2d\xe9\x0b\xe2\xb3\xaf\x01\x8d\x63\x8a\x24\xad\xea\x52\x6c\xa1\x8f\xe1\xfd\x51\xad\x79\x32\x40\x03\xfb\xcd\x18\xf5\xc0\x26\x77\x96\x80\x42\x75\xfc\xc3\xc1\xaf\xf5\x58\x97\xb1\x88\xdf\xc3\xa1\xdb\x3f\x58\xbf\x81\x38\x9a\xbf\xa6\x3c\x10\x81\x8d\x63\x5f\x41\xe4\xcb\xec\xa3\x1b\xe4\xf8\xde\x38\x09\x1c\x83\xc7\xf6\xa8\x7b\x35\x70\x4d\x39\x0d\x20\x1a\xc7\xc4\x1d\x9b\x71\xfe\x19\xf0\x44\x63\x57\x24\x2f\xd5\xaf\x69\x89\x68\xf6\x55\xa5\xdc\xc4\xa8\x94\xd0\xe6\xd0\xfb\xea\x02\x79\xf9\xda\x51\x1a\x67\xa7\x6a\x1a\x46\xe0\x9d\x66\x6f\xe9\xe4\xc9\xa5\x84\x62\xd0\xb7\x59\x3d\x1d\x96\x4f\x8f\xdf\x77\xe1\xe1\x79\xe1\x21\xf1\xed\x61\x60\xae\x2e\xb5\xbb\xc8\x7f\x81\x6a\x3e\x48\xeb\x6b\x9a\x46\x14\x59\x28\x0a\xe1\xec\xce\x4b\xce\x1f\x4b\x15\x46\x54\x76\x3b\xea\x7b\x19\x1f\x6b\xf0\x9a\xa6\xa0\x83\x01\x48\xc0\xab\x1b\x0f\x81\xcb\x9a\xa6\x26\xa2\x43\x88\x05\x0a\xbd\xb4\x67\x61\x41\x37\x42\x24\xae\xb4\xea\x76\x95\x0c\xaa\x85\xdd\xc8\xc7\x17\x2e\x82\x50\x86\x5e\x7e\xb1\x38\xba\xd2\x25\xfa\x58\x4d\xf6\x6c\x2a\x88\xc1\xaa\x79\x8e\xd1\x11\xaa\xf2\x4c\x05\xa8\xdd\x48\xd9\x3e\x6f\x47\xc0\x47\xe0\x4e\xd7\x11\xd2\x54\x6a\x89\x15\xaa\xdf\x33\xf5\x4b\x65\xcd\x75\x18\xf0\x51\xa5\x39\x83\xae\x19\xbd\x28\xae\x48\xe0\xc6\x84\x7d\x74\xd5\x0a\xc0\xa0\xa2\x4f\x05\xf0\xe7\xd8\x13\x75\x32\x55\x94\x09\xec\xb3\xc2\x7c\x8a\xc0\xd0\x4c\xb0\x1b\x22\x31\x52\x7e\x84\xf7\xa6\x63\x2b\xfb\x1f\x44\x07\x29\xf6\xb7\xb3\x1a\x69\x34\xbf\x8d\xa6\x95\x0e\x99\x19\xe1\xb1\xfd\x0b\xfa\x97\xc9\x26\x85\x24\xc6\xc7\xd0\xa6\x04\x3b\x70\x40\x6c\xff\x18\x40\x05\xde\x2f\xf8\x19\xce\xb9\x50\x5f\xa8\x9c\x69\x0a\xc6\x50\x47\x06\xdd\xac\x9e\x76\x67\x50\x7f\x5b\xc7\xe2\x7f\xf9\xd7\x7d\xa1\x09\xac\xad\x8a\x04\x55\x9e\xe0\x19\x8a\xbe\x70\x46\xbd\xd8\x38\x56\x2d\xd0\xe7\x75\x28\xa6\x3b\x7f\x42\x16\x80\xf6\x74\xd6\x9d\x28\x1e\xc4\xfb\x6d\x35\xb1\xde\xd3\x2c\x30\x01\xde\xe5\xae\x7c\xcd\xa0\xe9\x21\x08\x9a\x85\x4c\x21\x3b\xed\x47\xa6\x9a\xec\xd4\xfd\xd7\x00\x96\x8b\xf2\xf2\xd8\xc5\xfe\x8c\x44\x3c\x24\x9d\xd5\x4c\xd1\x54\xd7\x61\x76\xc5\x08\x27\x01\x1b\x5b\x40\x0d\x62\xdf\xf6\x30\xae\x22\x6e\xa5\xd9\xd4\xeb\xd3\xb9\xb9\x8e\xeb\xa7\x8c\xc8\xc0\xdb\x48\x21\x47\xb9\x3c\x4e\x60\xae\x9a\x11\x95\x00\x1b\x60\x78\x37\x9d\xda\xe2\x4f\xc8\xe6\xca\x73\x8c\xa8\x34\xb2\x8a\x42\xc8\x98\x87\xa1\xa2\x87\x66\xc4\xa8\xd8\x36\x15\x8b\xc0\xd5\xfd\xdd\x11\x9a\x04\xde\x5a\x67\xe3\x32\xd9\xa1\xcf\xcf\xe4\x5b\x68\x22\x90\x92\xbe\xdf\xae\x46\xe7\x67\xed\x7a\xf2\x7f\xfe\xbf\xff\xf3\x47\x76\x3e\x43\x85\x0b\x4a\x9d\x1d\x6f\x85\xc2\xc2\xfc\xf8\x1c\x8c\xd9\x7e\x7d\x56\xbb\x40\x69\x44\xfe\xd4\x8c\x25\x29\x06\xfe\xb7\xf7\xab\xb1\x89\xa1\x66\xcc\x84\x48\x2a\xc3\xa6\xf5\xc8\x18\xc0\x0d\x88\x58\x8a\xb5\xe1\xbb\x9b\x95\x05\xc2\x87\xfe\xa3\x11\x27\x22\xf4\xc2\xf2\xcd\xea\xa5\x4d\x56\xdb\x69\x37\xbb\x35\xb3\x38\x04\x1d\x0e\x64\x4a\x07\xcb\x13\x8b\x59\x82\x26\xc5\x25\xc6\xb2\x61\x50\x5f\x4f\xb2\xf4\x85\x2c\x96\x30\x8e\xdb\xf5\x29\x2b\xa6\xf3\x33\x71\xf8\xcb\x87\xc5\x76\xdf\x0d\x8f\x23\x4b\xe7\x75\x5f\x74\x90\x97\xeb\x01\x46\x0e\x0e\x9a\x25\x02\xb8\x17\x11\x16\x55\x73\x5d\x4e\x9e\x68\xa2\x20\xb2\x8a\x57\xf0\x51\xa0\xa6\x8f\x2b\x59\x62\x00\x29\xf2\xbb\xbe\x83\x74\xb3\x9c\x5c\x24\x0f\x8c\x10\x9d\x1a\x0f\xa2\xf9\xe7\x23\x4b\xc6\x63\x16\xb8\xf6\xe7\xfa\x24\x45\x5d\x4f\x7f\xe8\x94\x48\xc4\x8e\xfb\x4d\x68\x62\xed\xe5\x47\x51\x43\x98\x4d\xc7\x3b\x61\x6b\x54\xd0\xf5\x77\x9f\xb2\x08\x0b\xcf\xca\xa9\xf7\xc2\x7a\xf2\x78\x44\x1a\xa2\xb6\x80\x14\x59\x5e\x5e\xba\x99\x2d\x84\x95\x85\xef\xb4\x9d\x6f\xa0\x11\x59\xde\xd5\x80\xa6\x0f\x6a\x7c\xf1\xc2\xd0\xd8\x69\x0d\x3c\x64\x9f\xf0\x66\x34\x93\xa1\xe0\x8e\x63\x6b\x15\xb9\xab\x4b\x3d\x7d\x33\x25\x49\x39\x74\xbe\x60\x73\x9e\x42\x9a\x49\x4a\x02\xe2\x97\x95\x0b\xbe\x84\x5e\x68\x01\x4b\x65\xc3\xa4\x8b\x49\x11\x62\x20\x6b\x9f\xc2\x4d\xd6\xbe\xb5\x53\x23\x52\xcd\x14\x49\x70\x83\x7f\x58\x6c\x1e\xf7\xeb\xc7\xc5\xe3\x6a\x7d\xb8\x5d\xaf\x0f\xdb\xf5\xf3\x6a\xfd\xd8\x4d\xc0\x36\xcf\x72\x0a\x6b\x6d\x80\x3e\x2f\x2c\xa8\x19\x80\xcd\xc6\xf3\xf2\x58\x6e\xbb\xc0\x25\x0a\x42\xab\xf5\xab\x07\xea\x32\x5d\xad\x67\x12\xc9\x47\x81\x8e\x0c\xf1\x3d\x22\x17\xf4\x3a\x4f\x4d\xdf\x19\x89\x42\x23\x34\x52\xba\xb2\xa6\x29\xff\xfd\x97\xac\x5a\x1d\x11\x11\xf9\xf5\x7a\x57\x9a\xa6\x23\x90\xe9\x88\xc6\x2a\x70\xb6\xa3\xed\x37\x21\xc8\xc8\x9a\x2b\x0c\xb7\xef\x88\xc6\x06\x67\x8f\x2f\x75\x3f\x8a\x13\xac\xdf\x87\x20\x35\x1c\x03\xd6\x6e\xb7\x5b\x38\x23\xaa\x28\x2a\x5b\x35\xac\x41\x0f\x3c\xbf\x7e\x45\x2c\x11\x08\xcf\x7c\xc3\x9a\x7b\xf7\x5f\xad\x52\xdb\xfb\x7d\x2c\x8b\x4f\x04\x6a\x74\x14\x89\x14\x5f\x86\xdf\x2f\xba\xac\x9f\xcb\x4b\xd3\x9f\x20\x0e\x13\x0b\xab\x6a\xe3\x13\xac\x10\xee\xa0\x79\x84\xa6\xfd\x9a\x6e\x0c\x51\x18\x32\xd8\xa0\x67\x5b\x95\x2f\x99\xcc\xfa\xda\x64\x14\x8b\x10\xbb\xba\xcb\xac\x31\x97\x6a\x14\x58\x45\x3c\xb6\x0f\xf2\xd0\x9e\x7c\x7e\xba\x47\x3c\x55\x11\x9a\x3d\x5c\x90\x79\xb1\xb9\x99\xa8\x8c\xeb\x88\x03\x43\x96\xd2\xf9\x52\xbf\xf8\x9c\xb5\xa3\xdf\xf6\x05\xf3\xc9\x3b\xe7\x17\x83\x28\x4d\x24\xd1\x1d\x69\xc3\x16\xb8\x87\xea\x91\x3a\x6a\x13\x46\x3a\x0c\xa8\x7c\x93\xf0\x52\x15\xf3\xbc\xe1\xc9\x3d\x08\x42\x10\x81\x03\xcd\xcb\x20\x44\x88\x84\x0e\xbd\x4c\xcc\xa2\x28\x2e\x22\x47\xd7\xb4\xda\x11\xeb\xdd\x20\x19\x04\x3c\xec\x5c\x1b\xe7\x5f\x95\x48\x06\x1c\xa1\x49\x5e\xc9\x64\x00\x2f\xf9\x52\x80\x50\x47\x92\x52\x84\x3b\xb4\x49\xee\x37\xa8\xca\x45\x5d\xc3\x7c\x2f\x5c\x47\x32\x0e\x7a\xad\xa6\x49\x67\xc9\x0f\xe1\x11\x86\xc0\x4e\x59\x36\x3b\xbe\x34\x2f\xe5\xa5\xfe\x18\x6a\x8d\x5e\x28\x15\x24\xb8\x01\xac\x50\xfe\x6c\xd7\x85\x4b\x91\x8e\x08\x36\x2d\x6f\x21\x93\x90\x4d\xaa\x81\x91\x86\x58\x8a\x0e\xb5\xfd\x52\x01\x8c\xea\x2d\x11\x44\x5c\xb0\x01\xa0\xc6\xb5\x2f\xc6\xaf\x0e\xa4\x82\x78\x32\xa8\xeb\xdb\x20\xdb\xeb\x52\x64\xcd\x14\x39\xa0\x23\x50\x96\x15\x56\xc0\x7b\xb3\xb0\xdd\x52\xb0\x79\xba\x1b\x60\x28\x41\x19\xe3\xfa\x72\x3e\x97\x55\x53\x8f\xe6\xbb\x51\xd4\xf6\x60\x71\xd2\x3c\x99\x61\x0b\x3c\x0e\x03\x8b\xde\xce\x0a\x3d\x82\xab\xe9\x38\x8c\x68\x62\xf7\x05\x55\x41\xb3\xb3\x8a\xfc\xee\x18\x09\x08\x16\xab\xcf\xa5\xed\x81\x7f\x46\x32\xf6\xc3\x09\xa7\x8e\x49\x7d\x2f\xba\x26\x4c\x4c\x58\x8a\xfb\xea\x48\xe0\xed\xcb\x92\x47\x4c\xb8\x62\x0e\xd0\x88\xcc\xf0\xb1\xdc\xf6\x78\x7e\xc6\x44\xa4\xb8\x3e\x3d\x64\x85\x1e\xbc\x01\x31\x31\x1c\xc3\xe7\x43\x2f\xf5\xe9\xdc\x45\xf6\xbd\x2f\xd4\xe4\x5c\x51\x24\xb0\x4d\xa9\xa5\x3f\x4b\x24\x3b\x1f\xad\x1f\xd9\x79\x58\xe1\x72\x03\x62\x61\xa1\xcb\xed\xc4\x6d\xde\xcb\x2a\x3b\xf6\x97\x10\x6b\x86\x56\xc9\x8b\xaa\xd9\x97\x97\x7f\x95\x97\x6a\x20\x5a\xf3\x97\x29\xc8\xf8\xd2\x92\x44\x23\x2f\xd5\x39\x90\x7c\x5d\x6c\x8c\x79\xc0\xd0\x8f\xd5\xc7\x2a\x76\x76\x22\xf7\x5f\x0c\x8b\xfc\xb3\x2f\x63\xcc\x09\x27\x66\xae\xa2\x31\x18\x92\x46\x08\x34\x3f\x9d\xee\x33\x39\x42\x1f\xe9\x58\x10\x5b\x7c\x6b\xaa\xeb\xd3\x19\x8a\xe7\xb2\xfc\x48\x68\x98\xff\xe1\x45\xa2\x2d\x7f\xca\x61\x3c\xc7\xc0\x67\xbf\xac\xc6\x82\x3b\x35\xb8\x7a\x75\x69\x32\x58\x95\x5d\x83\x35\x16\x82\xb8\x64\xc4\x96\x84\xfc\x1e\x39\x07\x03\xd5\xb1\x00\xed\x73\xb7\xa1\xcb\x81\x8e\x25\xd5\xd8\x6c\x59\x56\xe2\xb5\x3b\xb7\x54\x01\xeb\x44\x62\xb6\xee\xa1\x3a\xa0\xba\x1b\xa2\x28\xb3\xea\xf4\xeb\xbb\xef\xf7\x8b\x67\xec\x4e\x1c\x56\xbd\x63\x40\x3b\x42\x62\x7a\x8d\x66\x5a\xa7\x73\x03\x07\x36\x4a\xb1\x63\x13\x71\x44\x40\x22\x24\xb3\xd3\x4a\x76\x22\x16\xc3\xa7\x95\x04\xda\x06\x4e\xfe\x5e\xa7\x35\x9a\x24\x24\x84\x58\xfd\xc0\x12\x95\xec\xf4\xc0\x4c\xe1\xd3\x12\xfb\x5f\xfd\x1d\xf6\x8f\x92\x50\xdb\x9f\xda\xd7\xeb\x6e\x20\x87\xe3\x00\x97\xa7\x13\x12\x10\x04\x71\x79\x22\xec\x50\xb8\x6f\xf5\x7c\xdf\x0d\x23\x8a\x29\x9f\x0a\xb9\xf7\x7d\xf4\x5b\x25\x24\xb5\x68\x88\x6e\xa7\xbc\x45\x95\xa5\x93\x28\xea\xbe\x2a\x9a\xd0\xc0\x5a\xf6\x16\x97\xd3\x93\x99\x90\xc5\x9f\x8a\xf5\x79\x39\x89\xea\x13\xca\x22\x54\xfe\x41\xa3\xef\xc3\xcf\xf5\xfa\xf7\x03\xf5\x27\x63\x34\x55\x0e\xbb\xb3\xbc\xd4\x59\x31\xd5\x89\xd1\x09\xe3\x01\x02\xed\x0e\xd8\x3c\x74\xd2\x4f\x3b\x5c\x4b\xbb\x93\x68\x2a\xdd\x62\xf6\x00\x8d\x68\x7f\x03\xbf\xd9\xcc\x4e\xca\x24\x62\x49\x18\xf5\x96\xbd\x23\x3a\x91\x4e\xa2\x28\xed\x4d\x70\xef\xca\x5c\x8f\xf6\xa5\x24\x8a\x53\xdc\x44\x50\xe4\xd6\x69\xdf\x1d\x56\xcf\x4f\x3f\x3d\x28\x25\x49\xa2\x08\xb1\x27\x90\x23\xd9\xe7\x65\x90\xef\x27\x9c\xc4\x08\x33\xc2\xa2\x5e\x75\x5a\x41\xe5\x54\x37\x26\xd1\x78\xc2\x89\xc2\xaa\x32\xbc\x83\xba\x34\x08\x38\xb7\xbc\x62\x7f\xdc\x68\x84\xc4\x3a\xa7\x82\xd9\x2c\x21\x49\x99\x15\x8a\xb1\x8f\x7e\x8d\x56\x83\x87\x36\x98\xf7\x38\x99\x24\xe5\x16\x4c\xed\x83\xd9\x7b\x51\xe8\xbd\xf8\x05\xe5\xeb\x47\xf2\xcd\x78\x29\x49\x52\xad\xa5\x0b\xa4\xb1\x52\x7f\x5b\x56\x9b\x06\x4e\xb8\x04\x96\x8d\xaf\x80\x7f\xb9\x1c\x25\x22\x89\x50\x16\xc3\xa3\x05\x0f\x3f\x36\xdb\xed\xfd\x62\xb5\x7e\xe8\x33\x8e\x44\xe8\x50\xf7\x6a\x84\x9d\x36\xf6\xb8\x38\xdb\x8d\x25\xc8\xb0\x39\x0a\x67\xdf\xb6\x85\x4a\xf5\xb8\xa7\x44\x72\x8d\x0b\xef\xcd\xcf\xe5\x7e\xa6\x83\xf6\xf7\xaa\x55\x89\x4c\xa5\x8e\xfc\xbb\xf4\x95\x4a\x8d\x4e\xa4\x88\xb8\xe3\xc2\xdc\x80\xca\xa6\x7a\x16\x3a\x91\x8a\xab\xb4\x83\x93\xd9\xe0\xf5\x03\xfe\x29\x51\x41\x98\xf6\x06\xfd\x2b\x51\x38\x89\xe1\x41\x5b\x38\x51\x09\xe3\x9d\x5f\x6a\x93\xbd\xc2\x6d\x2e\x8e\x43\x82\x8f\x4e\x74\x10\x60\x73\x47\xa3\x16\x55\x56\xd4\xbb\xac\x38\xe6\x33\x0a\xdd\x7e\x7c\x48\xc1\x6d\xce\xdf\x8b\xec\xdf\x17\xd8\xe8\x27\x63\xf1\x45\xcb\xab\xc3\x19\xb5\x41\x01\xd6\xbd\x36\x37\x93\x39\xac\x79\x82\x33\xe4\x5c\x95\xfa\x0b\x5a\x70\x3b\x50\xa0\x43\xf0\xc9\xe1\xee\x7b\xd9\x3a\x9d\xe8\x54\x8c\x5a\xa9\xab\x12\x29\xc7\xf5\x40\x89\xd8\x8f\x54\x46\xda\x3e\x6a\x55\xc3\x0f\x51\x6d\x3c\x73\x68\xf2\x6d\x40\x44\xdc\x61\xc3\x0e\xde\x7f\xda\x7f\x1f\xf0\x14\xe3\xb5\xaa\xcc\xf3\xa7\x09\x83\x91\xfb\x31\x2a\x76\xfc\xae\x5e\xad\xac\xfb\xbc\x02\x8b\x1b\xb6\x74\xa1\x1f\x80\x42\x49\x9f\xf7\xda\x13\xd0\x0a\x57\x23\x8b\xdf\xfb\xf2\x39\x01\x30\x80\x6e\x16\x58\xa9\xb2\x29\xab\xdd\x0e\xe5\x01\x03\x7c\xa4\x3f\x37\xfb\x6f\x37\xcf\x8b\x9f\x8b\xfb\xc3\xfe\x79\x73\x77\xb7\x7e\x1e\x19\xec\x68\x1e\x48\x83\xfa\xa9\x96\x8c\xda\xcb\x04\x69\x4e\x8c\x4d\x7c\xdc\x2d\xd8\x3a\xc3\xa4\xc0\xc7\x69\x68\x1b\x07\xc2\x39\x85\x6f\x7f\xec\x0f\x9b\xe2\x75\x7c\x1b\x1f\xef\x9a\x53\x63\xf0\xa5\xb6\xb9\xc6\x48\xce\x64\xb6\x41\xc4\x59\x20\x95\xf2\x36\xd8\x16\x71\xdb\xd1\x96\x34\x67\x54\xa8\x5e\x57\x41\xb8\x54\xb5\xc6\x5a\xe8\x9c\x00\x99\xe6\x2c\x16\x1e\x3e\xfd\xe0\xed\x30\x09\xef\xae\x8f\xc5\x16\x70\xd0\xb7\x41\x91\xca\x36\xea\x9a\x70\x26\x05\x46\xfd\xda\xd6\x25\xeb\x71\x98\xc6\xa3\x20\x40\x24\xe8\xa6\xc0\x52\x8e\xcc\xa1\x26\xcf\xdd\x83\x8f\x28\x60\x20\x65\x6c\x43\xa6\xfb\x77\x9b\x33\x77\x98\xe5\xd2\x3c\x19\xd4\x15\xb5\xab\xd9\xf7\x5e\xbf\x6b\x3e\x99\xe4\x91\xe4\x3a\xf0\x4b\xd3\xba\xd0\x4f\xa6\x2f\x5d\xba\x21\xb1\x64\x58\x71\x5c\x5e\x54\xb9\x87\x7a\x58\xf8\xe6\x89\x60\x28\xf1\x63\x1b\x4b\x9b\xe2\xd5\x46\xb3\xb3\xcb\x20\xe7\x44\x21\x56\x6a\xdd\xbc\x6c\xa1\xc8\xba\xfb\xe6\x22\xa6\xe9\x40\xf1\xc9\x96\x4f\x82\xee\xa8\x55\xbd\x43\x2f\xa4\xac\x59\x5e\x77\x79\xd9\xb8\xc8\xca\x87\x3d\x3c\x65\x9a\xb8\x2a\xf3\x3d\xbc\x42\x3e\x67\x7e\xdc\xae\x1a\x31\x86\x7a\x08\xcc\x5c\x17\x4d\xa6\x85\x86\x5a\x97\x85\x50\x19\xca\x62\x8e\x9f\x8d\x48\x69\x68\x3d\x08\x3b\x0d\x24\xd4\x75\xeb\x5e\x7e\x2e\x93\x00\x0b\xa3\x37\x9f\xe4\xea\x5c\xea\x84\xbb\xeb\xba\x9b\xbe\xfa\x5c\x85\x01\x52\xa7\x17\xff\xb9\x7a\x18\x1f\xa0\x20\xbc\x6b\xdc\x7b\xbb\x39\xfa\xca\xe2\x78\x8a\xab\x38\x44\x70\xc4\x7d\x79\xb4\x69\xdc\xbe\x03\x54\x7f\xb9\x15\x73\x25\x44\x02\x03\xa4\x77\xbd\x85\xea\x27\x64\x93\xa7\xa5\x53\xc0\x3d\xa4\x53\xe9\xb6\xc2\x27\xfe\x22\xb5\x52\x89\x70\x7d\x42\x57\x68\x9f\x9e\x00\x18\x86\x13\x97\x42\xb6\x9f\x9b\x4d\x52\x39\x84\xb6\x68\xf7\xbb\x17\x71\xf0\xe7\x37\x41\x80\x6d\x76\xdb\xc3\xa9\xbb\x7a\xc0\xfc\x83\x36\x60\xb0\xcc\x68\xf1\x5e\xf0\x33\xeb\xd3\xe6\x34\xe0\x02\x83\x28\xcb\x51\x6c\x60\x25\x3c\x99\x50\xa7\x41\x1a\x86\x81\xa7\x52\x2e\x3b\x32\x9d\x4e\x43\x42\x51\xf9\xf7\x94\xa1\x8f\x38\x54\xaf\x23\x0e\xe7\xc7\x25\x2a\x0d\xdb\x2c\xcd\xd6\x6a\x4f\x65\x01\x7f\x01\x27\x4a\x43\x15\x60\xc1\xae\x6e\x5f\xd7\x55\x79\x3a\x41\xdf\x76\x4f\x43\xcd\xb0\xb4\x82\x1c\xc9\x13\x14\xcd\x52\xd4\xbf\xa0\xa9\x1f\xb2\x62\x60\xef\x3a\x7e\x06\x29\x89\x02\x85\xc0\x04\xf1\x0b\x1e\xae\x43\x84\x4c\x4a\x63\x8e\x7a\xaa\xab\xb2\xa8\xa1\x40\x3e\x6b\x1b\xb1\x4f\xc5\x19\x3e\x15\x21\xd0\x29\xd5\x56\x40\x1c\x81\xa0\x96\x38\xb6\x28\x8e\xbd\x57\xec\x28\x0d\x49\x99\x33\x88\x42\xd4\xdd\xc1\xe2\x2e\xfd\xb5\x30\x05\x08\x52\x29\xcf\xd0\x8c\x30\x7d\x69\x94\x24\xc2\xbd\xea\xe8\x6d\xd1\x09\xd6\x22\xb9\xaa\x63\x95\xeb\x34\x12\x89\xe8\xa7\xe6\xbe\x7c\x06\x95\xc1\x44\x73\x44\xa7\x91\x4a\xe2\x8e\xc3\x07\xce\x20\x77\xb0\x1e\xa7\x31\xd3\x56\xa7\x77\xb9\x5c\x3d\x6d\x1e\xbf\x82\x9a\xa4\x31\x04\xd8\x99\x7a\x7b\x81\x02\x57\xd8\x95\x28\x96\x60\xd5\xf4\xbb\x05\x21\xe5\xb1\xf5\xa4\xc8\x54\xb9\x13\x39\xd4\xa3\x5c\x20\xe5\x22\x36\x3d\xbc\xd7\x1a\x6e\x7f\xea\x93\xf4\x77\x2a\x12\x7d\x34\x97\xa6\x41\x14\x39\x54\x9c\x55\x2f\xf9\xb2\x14\x98\xa6\x29\x03\x27\x43\xe4\x72\x81\x8e\xbe\x30\xba\xed\x34\x4d\xa2\xb8\x5f\x04\xac\xca\xaf\x3b\x26\x68\x88\x8a\x25\x26\x2b\xf4\xf2\x3a\xa5\xb5\xeb\x54\xf0\x10\xd5\x5b\x36\xb5\xcb\x31\xbd\xa8\xb3\x3f\x2e\x18\x99\x4a\x07\xf8\x63\x92\x26\xde\xcc\xdf\x56\x3b\xba\xff\x6b\xcf\xd8\x92\x23\xa4\x4a\x2a\xb9\x51\xc6\xa3\x46\x3f\x60\xe1\x07\x4f\x4a\x2a\xa1\xd8\x98\xe5\xd3\x79\xbf\xcc\xa3\x92\x52\x15\x4a\x63\x1d\x3e\xaf\xae\x79\xd9\xf4\x3e\x78\x23\x9f\x9a\x69\x82\x30\xa8\xf2\xa7\xc0\x02\x9c\xde\x36\x15\x5c\x3d\xaf\x17\xfb\xa7\xe7\xdd\x48\x0f\xbd\x1d\x04\x48\xec\xc0\xd7\x37\xf3\x48\xde\xd4\xc8\x10\xab\xf3\x08\x91\xeb\xfe\xa9\x00\x52\xbf\x35\x9e\xcb\x0a\x95\x6e\x51\x20\x2c\x6b\xfc\xa4\x13\x41\x62\x7c\x37\x78\x25\x2a\xbd\xbf\x9e\x61\x04\xe3\x17\x81\xb0\xcb\xf4\xb9\x2a\x4f\xe5\x70\x09\xfe\xff\x39\xfb\xb2\xe6\xc6\x71\x64\xeb\xbf\xd3\x0f\xf3\x40\x10\x04\x97\x47\x6d\x2e\x6b\xca\xb6\x34\x92\xaa\xaa\x7b\x6e\x4c\x28\xb0\x24\x6c\x8e\x29\x52\x43\x52\xb6\xd5\xbf\xfe\x0b\x26\x00\x6e\xa2\xdd\x1d\xdf\xc4\xbd\x55\xd5\x02\xb8\x63\xc9\xe5\xe4\x39\x9c\xd0\x04\xe3\x9b\xea\xe2\xa8\xe7\x1f\x5a\xe6\x04\xc5\x49\x18\x1a\x0a\xc5\x54\xd7\x4f\x77\x37\x64\xe0\xc3\x01\xc7\x89\xf0\x99\x05\x33\x59\x0a\x8c\x2e\x95\xc2\x09\x78\x58\xdd\x63\x54\x1f\x3b\xc0\xc6\x78\x0c\x77\x5f\x91\xfb\x94\xa0\xdd\x7d\xc6\x70\x4f\x5b\x83\xa6\xb8\xcf\xa4\xa9\x31\x2f\xd3\xc5\xe9\xa6\xf4\xc2\x75\x4a\x0c\xa7\x8f\xb1\x5b\xd0\x9c\xfc\x9b\xe1\x16\x77\x02\x11\xb4\xf6\x1e\x1f\x6d\x7c\x9c\x86\x09\x31\x7b\x87\xe5\xec\xef\x47\x8d\x39\x15\x21\xae\xa4\x45\xf3\x85\xef\xe8\xf2\xe8\x1a\x82\x48\x20\xe8\xb0\x7b\xfe\xc9\xb9\xcb\x19\xf1\x31\x4b\xbd\xf9\xfe\x38\x25\xf4\x7f\x9b\xc4\xe2\x8c\x84\x5e\x7f\x61\x5d\x5a\x38\xdc\x5a\xe1\x94\x6c\x86\x4d\x8d\x38\xd9\x16\xc7\xd3\xbb\x1a\x4b\x30\x8e\x5d\x5d\x73\x85\x91\x87\x6d\x09\x32\xed\x04\xd0\x14\x67\x2a\x90\xc6\x4e\xc2\x41\x9b\xf3\x4b\x5d\xad\x3e\xce\x59\x17\x05\xe4\x0c\x14\xfa\x9a\x2a\xad\x1a\x33\xbc\xd9\xcc\xd3\xfc\x52\x5c\xaa\x25\x64\xe9\x1b\x94\xed\x68\x8d\x02\x00\x93\x6a\xc6\x28\xc1\x1a\xb9\xf0\xfb\x99\x0d\x44\xe2\xe0\x1f\x83\x27\x8c\x24\xc3\xbc\xde\x83\xa1\x4e\x9a\xb7\x9c\x50\x83\xc2\x05\xdb\x39\xa6\x11\xa6\xdb\x9c\x8f\xb8\x6c\x4c\xc6\xe2\x7c\x9a\xe8\x19\x30\xa3\xb4\xff\xce\xcf\x36\x08\xe6\x5a\x78\x84\x7c\x72\xeb\xa7\xfb\xd5\x6e\x7d\x98\x3d\x2d\x56\x7f\x29\x4e\x68\x0f\x4d\x82\x10\xeb\x83\x9a\x7d\x7a\xa3\x35\xea\xa0\xbd\xa7\xed\xb4\xe6\x89\x14\x48\x3d\xf3\x90\x66\x69\xfd\x32\x49\xff\xdb\xff\xd4\xf6\x28\x6e\x47\xc5\x1e\xea\x6d\x51\x64\xae\x1c\xf7\x26\x71\xcb\x39\x4f\x70\x8f\x52\x45\xbf\xca\x5e\x71\xae\x00\x41\x2c\x87\x92\xbf\xc1\x98\xce\xba\x69\xd6\x3a\xc1\x08\x13\xda\x61\x8b\x87\x27\x5d\x16\x27\x53\x7f\xf9\xc8\xbb\x4c\x24\x17\x2c\x30\x3a\x39\x18\xa1\x40\x31\x87\xfc\xe3\x06\x73\xe6\x3a\x87\x14\xb7\xc4\xe3\x25\x3f\x73\xf9\xba\xae\xe1\xd4\x57\x43\x71\xbd\x44\x18\x75\x35\x2c\xc8\x82\x7a\x28\x9e\x8a\xf2\xc4\xb3\x87\x54\xb7\x2f\x4e\x46\xca\x4a\xe1\xe6\x80\xee\xde\x46\x8f\x4e\xa4\xc2\x50\x9b\x71\xf8\x76\x57\x94\x1d\x79\x82\xe2\x2a\xf1\xbc\xfe\x98\x78\xe4\x39\x12\x91\xfc\xd6\x2e\xed\xe3\x35\xde\x1e\x08\xdc\x54\x8f\x1c\x36\xbf\x9e\x8e\xeb\xa7\x66\x59\xdf\xaf\xfa\xf0\x3d\xae\x83\xc4\xb3\x5b\xf3\x1d\x2f\x4f\xed\xcf\x71\xe2\x19\x03\xfa\xad\x78\x05\x27\x81\xe9\x1a\x95\x44\x6c\x83\x83\x6a\xb4\x88\x79\xe1\x79\x81\x07\xad\x11\xf1\xab\x68\x9c\xc1\xa7\xa2\x76\x42\xed\xfd\x59\x21\xbc\x98\x63\x34\x74\x3f\x7b\x58\xb5\xc7\xc7\xc0\xc4\x04\x2b\x1e\x6e\xf0\xd6\xbe\x1c\x3c\xa1\x20\x09\xa0\xbb\xe0\x44\x84\x7f\x9b\x9e\x83\x82\x08\xa3\xbd\x3b\xc9\xaa\x7e\x68\x47\x92\x20\xd2\xc4\x79\xda\x27\x9b\x9c\x26\xc2\xf7\x62\xcc\xf8\x1d\xd2\x9a\xe7\xe9\x9f\xfd\x20\xb6\xf0\x05\x80\xee\xf4\x3b\x26\x2a\x34\x05\x0d\x22\x8e\x55\x24\x52\xc2\xb9\x07\xc8\x19\x3e\x1b\x95\x06\xb4\x2b\x2e\x36\x04\xf0\x2b\xad\x5f\x30\x47\xc1\xb3\x71\x57\x65\x68\xb5\x06\x02\xd6\x46\xb8\xda\xf5\x00\xd0\xb1\x8d\x3c\x3e\xf3\x1a\xc7\x7e\x67\x8c\xc5\x76\xa6\x8a\x00\x38\xae\x71\xc7\xba\x38\xf7\x98\xe6\x9a\x06\x8d\x0c\x20\x2f\x8d\x79\x81\xf1\xb6\xd1\x2d\x30\xdf\xa4\xef\x2b\xe4\x15\xb0\xc8\xc7\x0a\x93\x84\x9f\xf8\x57\x82\x51\x8e\xf1\xa5\x9f\x8d\xeb\xee\x2e\xc4\x12\x53\xa1\xf5\x0c\xb5\x2d\x6e\x46\x88\xf7\x6d\x36\x4d\x30\xc5\x7c\x3b\x5a\x30\xf3\x37\xa0\x59\xb2\x7d\x42\xa2\x7c\x07\x66\xe2\x25\x3c\x15\x0b\x5e\x4d\x31\x4b\x29\x11\x52\x13\x2c\xeb\xd8\x63\x31\x26\x38\xa8\x74\xb4\x5d\xa3\x48\x39\xe6\xcb\x47\xfe\xf1\xcf\xcb\xe9\x3c\xba\xb3\x98\x06\x08\x0d\x11\x46\xbb\x65\x0f\x79\xfd\x0b\xd2\x31\x60\x40\xc4\x52\x60\xbc\xf4\xbd\x28\x4d\xe0\xb1\x5d\xa8\x44\x12\x04\x88\xba\x45\xa1\x5a\x94\xd4\x9c\x43\x5b\xc2\x21\x12\xa1\xc1\xf1\xf1\x15\x15\xee\x46\x8b\x7e\xfa\xdf\x76\xe3\x9c\x84\x06\x88\x2c\x8b\x37\x23\x1e\xd5\xfc\x3d\x34\x95\x05\x97\x11\xe6\xd1\xd6\x4f\xeb\xc3\x7a\xf6\xd0\x5f\x1e\x84\x20\x49\x18\x38\xe8\x61\x06\x15\xde\xc9\xe8\x29\x04\x8d\x10\xee\x8c\x61\x9a\xe6\x1a\xfd\xa5\x59\x88\x66\x87\x75\xde\x22\xaf\x7a\x12\x0c\xbd\x5c\x82\x10\x8c\x60\xe1\xef\x3d\xaf\x5e\x74\x6b\x8e\x08\xa1\x14\xae\xc0\xf3\xcd\xdc\x54\x11\x0f\x23\x90\x7f\xc3\xf7\x10\x42\x4b\x19\xba\xdc\xfc\x00\xd1\x20\x24\x65\x76\x4d\xc0\xcc\x25\xaa\xd7\xda\x26\x25\x3c\xdc\x27\xaa\xf4\x39\xff\x71\xbe\x2b\xca\xed\xcf\xed\xe8\xe5\x2a\x25\x5b\x71\xa0\xa2\xc8\xd6\x2e\x67\x22\x80\x19\x7f\xd6\xc8\xae\x23\x43\x9b\x6d\xd1\x7e\x84\x71\x3f\x5d\xa0\xb6\xc5\xf0\x35\x6a\x11\x22\x7c\x6f\x5b\x82\x4a\x71\xbd\x34\xfb\xd7\xf0\xb2\xd2\x8b\xe3\x00\x6d\x4b\x1c\x9d\x8d\xd5\x5c\xdd\xf4\x90\xa8\xff\xf7\x8d\x9f\x9a\x25\x78\xda\x21\x97\x84\x52\x6e\x8a\x4e\x8b\xf3\xe1\xb9\x1f\x7c\x97\x84\x26\xcc\x14\x37\xa1\xbd\x32\xab\x6b\xde\x2c\x2b\xfb\xba\x0b\x65\x4b\x12\x27\xd0\xb9\x8b\x6e\xa1\xfe\xf5\xc2\xb3\xa1\xa3\x25\x49\x6c\x88\x6c\x30\xe9\xb7\x87\x5c\xf5\xc9\x90\x94\x24\x4a\x80\x31\xf0\xb1\x52\xfc\xb1\xd5\xdd\x52\xd2\x0f\x43\x93\x0b\x43\xd4\xe2\x2c\xaf\xde\xa1\x34\x2c\xb7\x7f\x8b\xda\x45\x49\x5f\x1a\xa9\xd6\x37\x28\xd3\x2d\xaf\xaa\xe1\x8d\x51\x12\x10\xd4\xf4\xe5\x99\xec\x4c\x74\x49\x05\x37\xa4\x9b\x18\xc2\xc6\xec\xcf\x63\x51\x82\x29\xe0\x98\xb4\x79\x25\xd5\x3e\x7e\x70\xa7\xef\x73\x3a\x15\xb9\xe3\xe1\x18\x7d\x9b\x80\xf8\x86\x5a\xa5\x84\x96\x03\xfe\xb7\xb6\xcd\x50\xc9\x58\x19\x0c\xf7\x2b\x05\x6e\xb1\x78\x87\x66\x02\x5d\x6e\xc9\x1e\x5c\xcf\x44\xf8\x5d\x28\x29\x43\x3e\x85\x1f\x79\x0b\xda\x92\x2c\x21\x06\x85\x25\x8b\x1e\xef\x97\x6b\x94\x61\xa2\x7b\xa0\xdb\xf6\xfe\x87\xa3\x86\x49\x63\x59\x2a\x57\x92\xe3\x92\x75\xae\x5d\x73\xcc\xc1\x3d\xae\x96\xeb\x19\x7a\x8f\x9b\xdd\xe1\xf8\x6b\xf6\xf0\xb0\x72\xc1\x62\x19\xb2\x00\x8b\x44\xbf\xad\x1e\xdb\x9f\xc2\xd0\x98\xb2\xed\xf8\x18\xf3\x59\x7f\xf2\x89\x43\xc1\x7c\xa3\xd0\xea\x80\x80\xb6\x21\xa2\x01\xa6\x35\xfa\x45\x00\xf3\xeb\x63\xd1\x6c\x8e\x9f\x17\xa1\x77\x73\x20\x92\x12\xe3\x72\x35\x94\x28\x14\x07\xb3\xac\x7d\xc8\x48\x51\x1c\x39\x2d\xff\xc5\x7b\x39\x4a\xa6\xcb\x18\x14\x8e\xfa\xf5\x62\x83\x42\x66\x28\x6a\x30\x9e\xa8\x09\x8b\x31\x23\x85\x00\x4a\x63\x8c\x8c\x7b\x24\x21\x26\xe7\x8c\x2b\x58\xdf\xf2\xaf\x4c\x85\x83\x24\xf7\x23\xdc\x56\xe7\x08\x40\x37\x94\x5d\x0b\x07\x20\x1d\xc6\x69\x25\x57\x86\x91\xcd\xc4\x50\xf6\x45\xa6\xf0\xf3\xbb\x47\x15\x1e\xd3\x49\x97\x15\x98\x17\xf9\xf8\x49\x85\x88\x1d\x19\xf0\x2c\xcb\x66\x17\x95\xd6\x45\x1b\xc2\x94\x32\x8e\x13\xc3\x68\x9a\x6b\x28\x31\x8a\xf8\x17\x61\xa4\xc1\x93\xa8\x40\x23\xa0\xe6\x11\x6a\xee\xd0\x40\x5f\xfa\xbe\x52\xc5\x4c\xc5\x8e\x4b\x38\x95\xb0\xd1\xb3\x73\x3a\x7e\xf1\x10\x10\x14\x24\x2b\xce\x98\x12\xe8\xd5\xce\x49\x00\xa3\x5c\xf1\xd2\xa9\x63\xba\x8c\xa3\xd4\x7e\x82\x05\x5b\x18\xc5\xb1\x49\xcb\xf6\x49\x75\x14\x50\x23\x2b\x82\xa5\x1f\x46\x41\xb7\xe8\x08\xee\xba\x48\x8c\x75\x82\x27\xef\x5f\x79\x9a\x38\x8e\x67\xe3\xd3\xb5\x31\x91\xf6\xf6\x15\xf1\x29\x16\x70\x22\xf3\x30\xe2\x99\x7b\x6c\x3f\x4a\x91\x24\xa0\x6d\xbe\x81\x6b\x7f\x7c\x34\xc4\xa4\xe5\x13\x9f\x5f\xae\x7d\xd9\xb8\xe1\xec\x52\x94\xc6\xd4\x1f\x0c\x8e\x59\xbd\x96\x85\xbb\x10\x0d\xb9\x07\x7d\xfb\xd4\x98\x92\xc3\x8d\x46\xd1\x48\x93\xa4\x13\xc5\xdb\xf1\x1a\x36\xda\xe6\xa1\xee\x79\xf6\xd6\xdb\xcf\xdd\x11\xc0\x90\xec\x05\x72\xd5\xec\x07\x4d\x87\x6e\x66\xaa\x80\x05\x88\xed\xd5\x69\x09\x9b\x7c\x3c\x2a\x46\x81\x6f\x15\x24\x61\xec\x19\xcf\x73\xf5\xc6\xb3\x8b\x43\x27\xd8\xae\x71\xdf\x4d\x55\x41\xc2\x85\x7d\x73\x53\xd9\x56\x15\x24\x4e\xd7\x05\x03\x03\x5f\xe5\x37\x15\x53\xba\xc5\xad\x6f\x36\x0f\x47\x50\x69\x7d\x24\xe1\x60\x0f\x52\xa1\x67\xfc\x56\x71\xb9\x3e\x2d\x17\x9f\x14\xf5\x4f\x0f\x94\x48\xfb\x98\x03\xf8\xce\xaf\xfc\xb5\xfd\x24\x31\xf5\x03\xab\x31\xf2\x04\x1f\xf5\x77\x18\xad\x28\x2a\xa6\xd2\xea\x76\xeb\x12\xaa\x17\x04\xa1\x48\x1b\xf4\xea\xd7\x3f\x8d\x9e\x26\x66\x1e\x1a\x27\x3f\x74\xb1\x2d\xf2\x3f\xd3\xf6\x7a\x1c\xd0\x4e\x5a\x1e\xdc\xf2\xae\x12\x2a\x14\xed\x17\x55\x9c\x20\xef\xd3\x7b\x2a\x95\x40\x40\xfb\xfc\x41\x3f\xaa\xe6\x5d\x0e\xf2\xa6\x5f\x42\xce\x14\x27\x11\x5a\xa5\x0b\xae\xa1\xef\xde\x2b\x1e\x11\xc4\xbb\xe4\xf0\xee\x7c\x4e\x9b\x0c\x9d\xde\x3f\x1a\xa7\xdb\x12\xce\xe5\x50\x59\x7b\xcb\x36\x09\xa6\xbd\xe6\x4d\xed\x36\x5b\x0c\xc0\xbb\x9f\xb5\x91\xbf\xaf\x81\x1b\xbc\xfe\x5d\x2b\xbf\xa3\x94\xa4\xa1\xb2\x4e\x7e\x71\xc9\x25\x2c\x32\xe0\xa5\xd3\xab\xed\x8a\xbd\x5d\xef\x58\x63\xe4\x60\xbf\x6d\xc9\x47\x94\x22\x1e\x46\xb4\x4c\x96\xc6\xfd\x18\x1a\x6d\x52\x74\x27\x8e\x67\xac\x61\x39\x9e\x8b\x22\x3b\xf6\x65\xab\x55\xf3\x3f\xcc\x6c\xec\x81\x97\xf2\x65\xbd\xdd\x0d\x47\x1b\x50\x0d\x64\x40\x11\x33\x4c\xf2\x2a\x88\x15\x84\xfd\xc2\xc5\x39\xd4\xc3\xea\xb1\x2f\x33\x02\xf6\x3f\x07\x2f\x58\x2b\xa3\x1b\x5e\x68\x0d\xe5\x31\x75\x6f\x0a\x3c\x2f\xc6\xba\x7f\x53\x24\x75\x9f\x9e\x9b\xeb\x9d\x78\xd5\xb9\x40\xe0\xd1\xc8\xa9\x69\x1e\xd2\xfa\x92\xf1\xb4\x84\xa3\x85\xc1\xc5\x6d\x27\xa9\xb4\xdf\x56\x77\x61\xac\xfc\xa6\x5e\x61\xf8\xcd\x81\x04\x0c\x2d\xe8\x1a\xb9\xf6\x77\x80\xc6\xed\x6f\xa3\x3e\xa1\xe7\xb0\x7e\x0f\x05\x96\xdb\xa8\x8b\xac\xfb\x09\x1a\x20\xa1\x0f\x41\x17\x73\xb2\x86\xd0\xc0\xc3\x00\xa2\x8d\x15\xd1\x37\x61\x6f\x37\x04\xb7\x58\x81\xcf\xa2\xd8\x88\x61\xd9\x54\xe1\x70\x41\x1d\x3d\x87\x1f\x1a\x0a\x9c\x97\x56\x5a\xae\xf9\x8d\xa0\x59\x6e\x29\xdd\xbb\xd2\x5c\xf0\x15\xeb\x70\x3e\xdb\x32\xfd\x13\xda\x16\x30\x91\xfa\x3f\xf9\xf9\x67\x9a\x65\x7d\xad\xf8\xd1\x05\x35\x09\x0c\xd5\x65\x5e\x3b\x66\xa6\x27\x48\x9f\x5f\x44\x71\x29\x6f\x92\x3a\xf6\x20\x4a\x18\x18\xd6\x77\xc4\x76\x99\xb6\x09\x66\x8d\x66\x4f\x46\x2a\x9e\xa3\x5b\x16\x8c\xa6\xcd\x96\x5f\xab\x3b\x80\xa3\xb8\x6e\xcb\xe2\xe3\x46\x88\x64\x74\x8b\x81\x0e\x50\xba\x6f\x97\x56\xaf\xfd\x4d\x11\x98\x17\x38\x7a\x76\x97\x7f\x69\x3e\x2c\x56\xd2\xb9\x2e\xc4\xc7\xed\x2c\xe3\x55\xdd\x31\xa1\xe1\xa2\x38\xbc\xd3\xd0\x97\xaa\x63\xcd\xfa\x06\xa7\xd3\xf5\xf1\x52\xa5\xb2\xaf\xad\x64\xbb\x46\x49\x22\xfd\x2e\x79\x00\xfc\x34\xd6\x93\x54\x10\x33\x03\x31\xd0\x3c\xcd\x4c\xd9\xc0\x5d\x69\x20\xf3\x3c\x9b\x5f\xff\x0d\x65\xd1\xf6\xe4\x11\xe2\x3c\xb8\x52\xdb\x12\xa9\x3f\x1b\xa7\x1c\x05\x62\xa7\x77\x21\x48\x3c\x8d\xb6\xc0\x29\xcd\xef\x8a\xf2\x09\xde\x0f\xc5\x39\x95\xee\x7c\x49\x40\x91\x82\x2d\x2b\x9e\x53\x79\x94\x43\x54\x3b\x24\x41\x88\x24\x96\xa9\x02\x8e\xf0\x0d\x17\x99\x9f\xda\x1b\x21\x61\x86\x14\x4e\x9e\x2e\xd9\xb9\x78\xf7\x3f\xbb\xa1\xc8\x38\xd6\xbb\xd9\x61\x15\xb4\x57\x82\x00\xb3\xd3\xab\xa7\xe5\x3d\x2f\xdf\xba\x60\x10\x70\xdf\x20\xfd\xad\x7a\xe5\xf7\x34\x7f\x56\xc5\x09\x6d\xa2\x09\x79\x40\x05\x3c\x50\x84\x39\xc0\x6c\xae\xd3\x67\x0b\xc5\xf8\x2c\x79\x39\x5c\xd7\xdc\x49\xb8\x62\xda\xd6\x7b\x97\x15\x18\x4d\xd3\xe1\x75\x44\x18\x9b\x00\x9e\x95\x66\x40\x82\xcd\x2f\xbd\x51\x10\x89\x51\x83\x31\x20\xad\x9d\xbd\xb5\xd8\xb5\x72\x63\x77\x3e\x14\xcf\x26\x81\xfd\x45\x49\x2b\x48\xa6\x30\x4b\x08\xa7\x73\x56\x5c\x01\x56\x1f\x50\xca\xb4\x02\xc3\x30\x51\xf5\xac\x25\x90\x89\x40\x7b\xb2\x86\xaa\xfe\x99\xc2\xbb\x7b\xb1\xca\x22\x59\xd7\xf9\x5b\x5a\x83\xb9\xe4\x28\xb6\x0a\x2a\x04\xf4\x6b\x2d\x53\xdb\x80\x6f\xc5\x75\x49\x84\x86\x2e\x84\x82\x55\x6e\x76\x25\xac\xc6\xd5\x6e\x00\xcc\xc7\x35\xff\xf1\xf2\xfc\x0c\x59\x3b\xaa\xb5\x17\x30\xda\x7e\xb3\x1a\xf2\xfa\xc7\x6e\xfd\xdb\x94\x3f\x00\x5a\x11\x61\x9d\xe1\x4e\x99\x7e\x88\x71\x37\x3d\xb5\x27\xa2\x9e\xb4\x3c\xbc\x1f\x5e\xd2\xea\x0f\xe0\x6e\x73\xd1\x9e\x34\x30\x93\x15\x2f\xb3\xeb\x4c\x15\xe7\x1a\xca\x11\xe6\x49\x93\xc8\x28\x4d\x9d\xf8\x07\x26\x8f\x6e\xa8\xe7\xb4\x1f\x73\x0b\x33\x3e\xf7\x3c\x79\x4d\x03\x82\xa1\xd0\xdd\xf5\x63\xf5\xf1\x57\x36\xcd\xf4\x70\xd1\x94\xab\x30\xee\xe1\x60\x70\x35\x5b\xe7\x0b\x18\xc7\x14\x74\x90\xc4\x0e\xbc\xda\x15\x96\xb9\x5b\x61\x94\x9b\x4a\x2d\xa8\xea\x3d\xd4\x86\x93\x9e\x67\x4b\x57\xb3\xa0\x43\xdf\x04\x1a\xcf\x06\x5c\xba\xd1\x96\x08\xa5\x47\xf0\xa1\x43\x16\x47\x76\x37\x74\x82\x47\xcf\x62\xf4\xc2\xc3\x28\xc1\xbc\x15\x06\x8d\x27\x78\xc5\x27\x4d\x06\x77\x6c\x6c\xaa\xc6\x00\xd1\xcb\xbd\xe1\xab\x43\x61\x54\x15\x5c\xd4\xfa\xd0\xaf\xe9\xff\xec\x85\x8e\x6e\x4c\x9a\xba\x9a\x0a\xea\x7f\x5d\xa0\x9a\xcc\x3b\xe9\x50\x85\x18\x99\xb3\xb4\x4e\x3b\x90\xe9\x39\x85\xde\x20\xb6\xfd\x22\xa0\x08\x49\x6b\x5f\x5f\x1c\x12\x43\xff\xbc\x5a\x6c\x9e\x96\xfb\xe3\x76\xb5\x3b\xde\x6f\x7e\xec\x5c\x7b\x42\x4d\xd0\xe5\x9f\x05\xf8\xbe\xc3\x8a\x6b\xee\x47\x98\x48\x37\x75\x46\xbf\x2e\x1f\x29\xff\x59\xd4\x1d\x29\x82\xe6\x54\x63\x70\xd1\x84\xd7\x9e\xe0\x1d\xad\xe3\x09\x67\x5f\x73\xc5\x30\x9a\x72\x6c\xac\x3a\xb8\xa9\x9d\xb0\xbd\x04\x31\x12\x19\x25\xf0\x0c\x4b\x1d\x07\xe0\x0f\x2d\x82\x18\xb3\x7a\x58\x5f\xd7\x0f\x00\x68\x19\x71\x2c\x1d\x36\x14\x62\x06\x2b\x51\x8f\x02\xf1\x5a\x26\x11\xe2\xfc\xce\xa8\xd8\x34\x28\xa1\x76\x3d\xb4\x09\xc5\x3d\x41\x59\x0c\x2f\xad\x48\x60\x48\xac\x1e\x67\x8b\xbf\x4c\x52\x4e\x17\xb0\x34\xab\x82\x13\x41\xf8\xd1\xac\xa9\xbf\x8d\x3d\x3b\xad\x92\x10\x6d\xbe\xc3\xfe\xb0\xe0\x59\x36\xdb\xae\xdb\xeb\x4b\x1f\x79\x6d\x4e\xfc\xe3\xc9\xe9\x10\x2a\xad\x40\xa0\x4d\x64\xf4\x44\xfe\xd5\x22\x16\x34\xf8\x86\xc5\xc6\x2e\x78\x26\x5a\x35\x0e\xec\x6b\x48\x18\x32\x86\x9c\x2f\xe5\x33\x38\x78\xb3\x6d\xd3\xda\xc3\x5b\xb1\x3c\xda\xfb\xb4\x9c\x88\x68\x63\x5f\xf0\x88\x97\x04\x96\xe9\x60\x63\xb5\xa5\x9a\xdb\x17\xbc\x27\x6f\x36\x22\xf6\xe8\x40\x1d\xe0\x11\xdf\xb0\x85\xbe\xf3\x5a\xbe\xf4\xcc\xa1\xa6\x25\xc1\xf1\xf5\xde\x12\x20\x95\xc3\x7a\x73\xf0\x48\x94\x24\x76\x6d\x5b\x39\x8b\x16\x3c\x22\x04\x62\x71\x8d\xec\xc3\x16\xca\xb4\x50\x9b\x37\x67\xb4\x37\xed\x0a\x03\x9c\x70\x82\xf2\x19\x72\x3b\x1a\x7a\x46\xcf\xf0\x01\x7d\xe2\x45\xdc\xc9\xf0\xaa\xc6\x09\xc5\x0c\xab\x6b\xf5\x35\xb1\xec\x1b\xfb\x33\x2f\x87\xc6\x15\x78\x3e\xd5\x98\x3e\xb9\xe3\xaf\xf0\xfb\x8f\x45\x7b\x54\x2c\x91\xa3\x6f\x3f\xeb\x7e\x02\x85\x1c\xd3\x8b\xd5\x7e\x4a\x98\xb7\x37\xa1\xc0\xa3\x89\xf2\xc3\x56\x8d\x8a\xb7\x2b\xd9\x2d\x33\x49\xbb\x4e\x81\x17\x90\x10\xd1\x5a\x4b\x5e\xec\x2e\x19\x54\x0e\xd9\x3f\x53\x0a\x6e\xe9\x62\xfe\xee\xdf\x7d\x2a\xce\xd1\xc8\x60\x01\x0f\x2d\x16\x7f\x9e\x71\xf9\x7a\x93\xbe\x06\x8f\x35\x3b\x38\x8e\x61\x5e\x55\xa9\x34\x8e\x9c\x6d\x0b\x69\x98\x48\x27\xe1\x85\x75\x2f\xcd\xca\xdb\x47\x04\x83\x17\x45\xda\xb7\xa2\xf2\xdf\x78\xd5\x83\xec\x81\x17\xf1\x08\x93\x07\x48\x39\x8d\xb1\x4d\x9b\x9c\xb5\xed\x71\x0c\x22\xb2\xc9\x85\x9e\xa5\xda\x36\x27\x21\x2e\x2a\x8d\x0f\x8d\xf0\x93\x43\x61\xe8\x43\x86\xcf\xc8\x3d\x8d\xb9\xbb\x33\xa6\xab\xaa\x61\xbc\x1c\x3c\x4e\x69\x94\x58\x63\xe0\x6e\x33\x7a\x78\xde\xb8\x98\xcd\x20\x38\xf1\xb2\x1e\xb1\xba\x4f\x2d\x22\xd0\x18\x0c\x58\xce\x7e\x34\xc1\x56\x7c\x2a\x77\x29\xc1\x69\x62\x60\x03\x15\x94\x6f\x30\x53\x7f\xf9\x4d\xdd\x81\x90\x24\xa4\xab\x88\x40\x62\xa2\xe9\xcb\xcb\xa0\xd5\xac\x5f\x14\x27\xcb\x1c\x3b\x32\x6b\xc0\x93\x90\x20\xb3\xe7\x09\x03\xd9\x43\xf8\x45\xb7\xde\x81\xa7\x12\x8a\xf6\xa9\xcb\xba\xe1\xe4\x47\x0f\x60\xec\xae\xd9\x03\x20\x09\x23\xc3\x89\xb6\x46\x26\xbe\xfa\x3a\xba\xb2\x26\x5e\x68\x63\x63\x8f\x45\x5e\xbf\x64\xd7\x5e\x6d\xef\xcf\x22\xbb\x9c\xc0\xb0\xde\xb4\xbb\x18\x10\xcf\x37\x89\x24\xc9\xf3\x91\x54\xd1\xe4\x3b\x20\x1e\xa3\xb8\x0b\xef\x0a\x91\xe6\xf7\x45\xa1\x7a\xb1\x26\x20\x9e\xf4\xb1\x48\xfb\xf0\x81\x19\xa9\xd7\x3e\x3e\xb3\x69\xa5\x00\x23\xb1\xdb\xe2\x32\x22\xfc\x1a\x7e\x1d\x42\x42\x10\x46\x9e\x6e\xe7\xe4\x84\xda\x22\xa6\xb4\xc8\x97\x43\x1b\x07\x88\x1f\x50\x54\x00\x9b\x29\x65\xf2\x7a\x36\x92\xd8\x5f\x7a\x27\x04\x2f\x2f\x1d\xa2\x0d\x88\x0f\xa6\xa2\xca\x61\x21\x1f\xd2\xaa\x7d\x06\x4a\x13\xb4\xa6\xef\x67\x0f\x87\xf6\x37\xed\x21\x7b\xc9\x0e\xd4\xbe\xf8\xd8\xf1\x6b\x15\xc4\xae\x2d\xf0\x8c\x96\x47\x5a\xb5\xe9\x1a\xd7\x42\x58\x5b\x68\x7a\x78\x29\x8b\xf7\xd5\xa8\xf6\x6a\xc9\x8b\x16\x76\xd0\xac\xe5\x15\x54\x8d\xa7\xd9\xc3\x33\x02\x09\x20\x40\xfe\xc3\xc5\x15\x13\x08\xe7\xb4\x76\xf2\x5e\xbd\x0c\x2f\x10\x46\x03\xdc\x4b\x8c\x13\xe1\xb0\x22\x83\x87\x66\x09\xc7\x52\x26\x99\x71\xb9\x28\x8a\xb3\x55\x1e\x03\xd5\xb8\xcc\xc3\xca\x75\x77\x44\xb3\x89\xe2\x06\x55\xd8\x71\x5e\x19\x45\x0a\x77\xd5\x50\x00\xa2\x65\xfe\xcb\xe5\xeb\xf1\xe4\x64\x2a\x80\x84\xe0\xa1\x1f\x7a\xee\xbc\x95\x05\xcf\x5b\xdf\xa5\x86\xd1\x37\x8d\x03\x0f\x2d\xcc\xc3\xe6\x30\x7b\x38\xce\x76\xdf\xdd\x89\x62\x49\x90\x1c\x7d\x2d\x0b\x04\xf5\x98\xdb\x6c\xa5\xf2\xff\xd6\xfc\x27\x09\x89\x30\x88\x98\xf1\x93\x28\xb6\x03\x9d\x3d\x77\x9d\x24\x90\xd2\x9b\xd2\xbc\x68\x3b\x30\x8d\x19\x40\x2c\xe2\xc3\x65\x18\x2e\xa7\x7e\xed\x38\x90\x44\x12\xe2\xb7\x65\x65\xb7\x72\x53\x76\x59\x20\x9c\x30\x4f\x60\x7c\xd4\x18\x7a\xbd\xab\x70\x12\xa3\x17\xb6\xe5\x58\x20\x52\xa4\xf9\x54\xc1\x21\x10\xce\x0c\x1c\xb2\xb2\xe3\x17\x3e\x0d\xb7\x8d\x5e\x85\x50\x1a\x63\xa3\xae\xb6\x73\xd3\x09\x0c\x02\x51\xd2\x43\xa8\xcb\xc3\xec\x8f\x99\xfb\x4d\x87\x12\xab\x79\xee\x7e\xa0\xa8\x61\x3f\x89\x08\x44\x73\x53\xa4\x7e\x80\xaa\x5e\xed\x16\x91\x6f\xc9\x6e\xc0\xf7\x98\xc4\x85\xc0\x32\x88\xb7\x22\x51\x8d\xe1\x84\x42\x95\x9f\x66\xff\xbe\x70\xdf\xc1\xf7\x92\x30\x8a\x1d\x47\x1a\x4f\xb3\x79\x09\x5c\xba\xd1\xe8\x13\x4a\x85\xdd\x2b\x1d\x43\x8b\xe5\x55\x74\xaa\x8a\xb9\xda\xf5\x06\xdf\xe8\xe4\x44\xfb\xc8\x08\x56\xa1\x22\xa0\x21\xa2\xb4\x4d\x3e\xf1\x10\xe4\x82\x24\xb5\xfb\xe3\xea\x69\x79\x5c\xb6\x00\x0d\xf0\xfd\xd8\xe0\xea\x65\x06\xbc\xfc\xd7\x25\x95\xaf\xf3\xcb\x75\xcb\xdb\x79\xe2\xfb\xb1\xc2\x7c\xb6\xbb\xad\x66\x9f\xbf\x0d\xbf\x81\x4f\x89\x01\xa4\x8b\xcb\x75\x37\x5f\xf4\x93\xf4\xe0\x53\x3f\xc2\xdc\x16\x22\x1a\x36\x37\x47\x52\x0f\x01\x3b\x0a\xb2\xef\x70\x35\x91\xfe\xd1\x3b\x75\x3d\x39\xc1\x52\xfd\xc6\x74\x9c\x2a\x93\xb2\xdd\x58\xc8\x62\x5b\x02\xb2\x87\x67\xf4\xb7\x7b\x6e\xa3\xfd\x42\x63\x2a\xbb\x29\x5b\xce\x67\x61\xe4\xd4\x64\x5b\xc5\xe9\x87\x1b\x4b\xc9\x67\x32\xc1\x60\x48\x5d\x67\xfb\xd6\x35\x01\x3f\x24\x84\x63\x41\x69\x0e\x83\x15\xcf\x0f\x6d\x59\xad\xf1\xce\x10\x37\x32\x5c\xfb\xff\xc6\x5f\xee\x54\x32\xc1\x2f\xbf\x9a\xed\xff\x78\x58\xdf\xad\xbe\x32\x4d\xfd\xc8\x8f\xc2\xb8\xb5\x26\x8e\xc2\xa4\x8c\x5d\x63\x40\x6d\x0e\xbd\xde\xd7\x5c\xde\x90\x21\xb9\x6e\xcc\x4f\x3a\xc6\xb7\x7d\x4b\x43\x0e\x7e\x14\x1b\x00\x0a\x0a\x64\x3c\xf5\xca\x22\xc0\x8f\x20\xc1\x34\xc9\x5b\x61\x38\x72\x47\xef\x2f\xf6\x62\xf4\xdf\x4d\x94\xb3\x2b\x43\x6f\x9b\x35\x1a\xa2\xfb\x22\xe3\x65\x5a\x0c\x5e\x65\x1c\x70\x6d\xa0\xaa\x8b\xd5\xd3\xe1\x78\xf7\xe3\x69\x79\x7c\xda\x3c\x39\x3a\xed\xb6\x1b\xe3\xd2\x16\xc2\x57\x90\xab\xe7\xa2\x18\xc1\x5e\xc0\x4f\xa4\x40\x13\x5c\xa5\x95\xb8\x94\x15\x56\xa6\x8c\xfb\xf0\x84\x21\x17\xc0\xb3\x13\xc5\x01\xe5\x0a\x37\xc0\xe7\x1c\xa8\x35\xfc\xff\xfc\x61\x0e\x6b\xdf\xe1\xf0\x2c\x22\xa1\x74\x4c\x30\xf8\xe5\xaa\x32\xfc\x8c\x5c\x19\xcd\xcc\x13\x37\xc2\x38\xb8\x8e\xae\x72\xd5\x33\x6e\x7d\xc1\x22\x6d\x39\x02\xdb\x20\x3e\xf8\x82\x13\x0c\x6f\x2e\xef\x7e\x0e\xde\xa2\x50\x89\x34\x61\xb8\x4a\xa6\x23\x96\xf5\xa6\x55\x2b\x6b\xba\xcd\xa1\x7e\xbc\xd4\xcd\x1a\xd0\xf3\xb3\x90\x3e\x2d\xe8\xa2\xac\xcb\x4b\x9d\x42\x3b\xf9\x15\x24\x60\x9d\xb0\x6f\x7f\x9a\x7b\xdd\x68\xfd\x70\x63\xae\xfb\x10\x73\x74\xfd\x2a\x40\x33\x9d\x7e\x32\xbb\x21\x09\x74\xd4\xa9\x2e\x1e\xf7\xb3\x87\xd5\xa0\x8e\x13\x7c\xed\xfb\x08\x4a\xb5\xe0\x22\x54\x47\x43\xf9\x36\xa3\x3a\xdb\xa3\x27\x6a\xfa\x72\x2c\xc5\x32\xd4\x0a\xbb\x36\xb5\xf5\x65\x12\x08\x7c\xcd\xc3\x58\xf7\xeb\x3b\x4c\x19\x4f\x7b\x07\x2a\x70\x4c\x8b\x8d\xff\x32\x7c\xa1\xd4\x0b\x04\xce\x94\xc5\x6e\xb6\x76\x3e\x26\xf5\x98\x17\xba\x7a\xe4\x8e\xd2\x04\xa8\xc7\x43\x5c\x58\x2b\xae\x01\x69\x80\xa6\x27\x26\x25\x11\x18\x51\x77\x9b\x2a\x30\x55\x50\x6d\x89\xf8\xe4\xcb\xa4\x84\x03\xda\xf9\x48\x2b\x75\x78\xe1\xef\x5d\xb9\x31\x50\x3f\x31\x99\xd8\x7b\xe0\x99\x25\xfc\x19\x1e\xcd\x62\x23\xdb\xb3\x5c\x1f\xba\x14\x27\x50\xc6\xb9\xec\x63\xbb\xa6\xb4\x72\x6d\xd7\xd0\x33\xe8\xa4\x95\x73\xf7\xf7\x75\x71\x9e\x59\x5d\x32\x67\x9e\xd0\x30\xa2\x38\x35\x65\x91\xe7\x20\xbb\xd0\xed\xb8\x6e\xce\x75\xd7\x0a\x2d\x85\xdf\x15\x37\x12\xcc\x5d\x5c\x68\xf4\x16\x06\xe5\x2d\xc3\x3b\x8b\xb8\xc6\x2f\x58\x68\x9d\xa5\x79\x17\x36\x19\xec\x48\x34\x0e\x08\xb5\x01\xe5\xb9\x69\xf8\xbc\xd6\xa2\xf5\xf6\x69\xcc\x0c\x5d\x14\xf2\x70\x9e\xce\x3c\x7d\xce\x31\xb9\x9b\x76\x74\x87\x83\xee\xda\x16\xf2\x5b\xea\x8d\x2e\x1a\x82\xf6\xc8\x28\x35\x31\x7c\x17\x89\x67\x9c\xf0\x34\x4f\xeb\xbe\x69\xfd\x97\xf6\x16\x4d\x18\x98\x23\x2b\x63\xfb\xf7\x71\x1e\xb6\x0b\x97\x1c\x17\x99\x45\x49\xea\xf4\x95\x67\xeb\x6a\xff\x52\x94\xed\xc8\x15\x94\xe2\xba\x71\x2e\xe1\xcc\x4b\x30\x21\x9f\xb6\x91\xf9\x66\x81\x82\x9a\x77\x55\xb7\x40\xa5\x6f\xd2\x1c\xb6\xa4\x67\x99\xbe\x4d\xf3\xc7\x01\x95\xcc\xe3\x76\x73\x9e\x3b\x04\xc9\xce\x54\xa1\x4f\x47\x8d\xed\x71\xca\x8f\x02\x66\xc8\x6d\x8a\x6c\xb0\x9b\x50\xc5\x28\x66\x18\x72\x78\x47\xc5\xbc\x2c\xcd\x5f\x9b\xb7\xbd\x7a\xda\x4f\x56\x4f\x01\x55\xd2\xc7\xfd\x67\x7f\x98\x1d\x8e\x8f\xb3\xdf\xdb\x33\xe9\x98\x45\xed\x56\xbb\x9a\x0d\xfc\x19\x0a\x81\xa1\x4d\xcd\x8b\x7a\xf5\xbf\x0b\xcf\x86\xd2\x0a\x83\xdb\x0d\x3c\x4f\x28\xeb\xf0\x99\x8c\xe6\x17\x72\xa4\x10\x78\x21\x71\x71\x1d\x37\x3b\x7a\xdc\x0e\xae\x53\xdc\x66\x79\x9f\x73\x9e\xd7\xf3\xa2\x5d\xb9\x02\x42\x3c\xac\x7c\xea\xea\x45\x21\x20\x11\x4f\xac\xb4\x7b\xd6\x5b\xf7\x03\xc2\x09\xae\x63\x96\xc5\x71\x78\x27\x04\x04\x42\x72\xdb\x55\xa0\x8d\x49\xf4\xa1\x15\x9f\x0b\xf3\xdb\xd3\xf8\x22\x44\x0c\xd1\xaf\xd5\x5c\x76\xc3\x24\xa0\xcc\xc3\xd1\x39\x5f\xee\x1f\xb1\xe6\xec\x2f\x2b\x85\x20\xa0\xa1\x47\x79\xc7\x1d\xda\xbc\xc7\x91\x77\x12\x04\xb1\xd6\x26\xed\x93\xe7\x50\x3e\x5c\xe4\xeb\x75\x60\xc9\x04\x81\x60\x18\x62\xf8\x9e\xbe\xa7\x37\xd8\xc2\xcf\xd4\xc4\x63\x77\xb0\x8c\x99\xcd\x2e\x5a\x59\xbd\xfa\xd2\xbe\xf8\x40\x25\x2c\x6c\x39\x8e\x2f\xa5\x09\x89\x7d\x62\xe3\x06\x2c\x96\xd2\xe9\xf6\xc2\xbb\xdb\xfc\xc7\x7d\x00\xc3\x0d\xe7\xa2\xaa\xea\xde\x30\x0f\x98\x16\x7c\xa4\x05\xe6\xaa\xb0\xa7\xaf\x16\x6a\xe9\xcb\x1e\xf3\x4e\x1f\x00\x0e\x41\xa4\x8c\x9e\xf3\xaf\x8b\xc0\x99\x3c\x7c\xa5\x31\xb3\x02\xb9\x59\x51\xb5\xf9\x17\x77\x68\xcc\x83\xa4\x45\x15\xfc\xa5\xc8\xcf\xf0\xa6\x92\xd0\xc8\xfc\xcc\xd6\xdb\xd9\x1f\xee\x84\x49\xc2\x82\xae\x82\x04\x23\x4a\xe7\xf1\x72\xe0\xba\x72\xc9\x3b\x66\x50\x7e\x1a\x8f\x05\x2e\x62\xf4\x5a\xf8\x69\x6d\x3c\x62\xf7\xbb\x34\x44\x2d\x18\x91\xba\x03\x64\x7b\x31\x2c\xf2\xd3\x2f\x8f\x6b\x4e\xac\x38\x14\x92\x74\x22\x9f\x66\xfb\xd9\xa5\x0e\x99\xc1\x74\x97\xef\xbc\x54\x8f\x1d\x6e\x07\x02\xe5\x19\x59\xa9\x25\xf0\xfa\xc5\x10\xc2\x1e\xd3\x34\x6d\x9b\xa9\xa1\x2e\x7d\x86\xfa\xd8\x2c\xad\xd5\x31\x03\x5d\x1f\x75\x51\x1e\x4b\x48\x47\xc9\x46\x68\x4c\x31\xa4\x60\xb0\x94\x82\x77\xe6\x82\x9f\xf0\xa3\xf5\xb4\xf4\xdd\xe1\x51\x1c\xda\x12\xf0\x5e\x38\xfe\x2b\x38\x05\x04\x3a\x32\x4e\xe1\x61\x71\xc3\x75\x3f\x31\x3f\xb5\x00\x8b\x2f\x32\xe8\x27\x04\x6c\x0c\x88\x38\x20\xd0\x40\x3d\xfb\xcc\xfd\x5a\xaa\xe1\x75\x99\xe7\x45\x98\x65\x58\x20\x6d\xe8\x8f\x3c\x6d\xdf\x37\xf3\x02\x8a\xf5\x8b\x8d\x5f\x4d\xdb\x1f\x19\x0d\xa3\x8e\x17\xdc\x48\xc4\xf5\x83\xd9\x8c\x90\x84\x1a\x07\xc2\x40\x3a\x0c\x15\x81\x6b\x6c\x16\xbb\x1b\x20\xe3\x5f\x45\xe8\xa7\x91\x79\xcd\xd9\x42\x9c\x9d\x2f\xf0\x71\x28\x66\x95\x4c\xd3\x5e\xa6\x1f\x98\xef\xf1\x24\x68\xf5\x37\x8d\x56\xe9\x68\xe8\x32\x9f\x98\x9c\xe5\xfa\x69\xf1\xa3\xbf\xc1\x31\x9f\x0a\x8c\x27\x37\xc3\xac\x7e\xe1\x9f\x83\x04\x80\xf9\xa1\x8f\x81\x03\xa8\x5f\xc2\x66\x17\xde\xbc\x8f\x91\x96\x4d\x9f\x28\x36\x14\xa6\xcf\xa9\x8b\xa0\x31\xca\x3d\xd1\xe9\x83\x4c\x91\x0a\x4c\xfd\xcb\x1d\x2c\x18\x86\x89\x91\xd8\xa6\x25\xe4\xb7\x3b\x99\x4b\x0a\x0e\x6f\x34\xf0\x85\xb6\xc0\x9f\xf4\xf9\x19\xca\xed\xcf\xed\x1e\xcb\x2e\x3e\x19\x1c\x81\x2f\x99\x6e\x83\x5d\x37\x6c\xf3\xc0\x02\x2a\x5c\x06\x67\x07\x55\x91\xbd\x8d\xc3\xe8\x2c\x48\x22\x84\xda\xcf\x2f\x8d\xd3\xe0\xb8\x3a\xff\x2e\x83\x92\x3d\x09\x4b\x28\xce\xc7\xa7\xa2\xac\x5f\xb6\x45\x06\x16\xac\x3a\xe0\xe0\x02\x16\x26\x3e\xde\xae\x79\x9d\x8f\x08\x71\xcb\x0b\x05\xb3\xea\x00\xfc\x64\xd0\xd9\xa3\xdb\x8b\x94\x8f\x10\xd7\xa3\x01\x55\xef\xe0\x0d\x6b\x5a\xdb\x71\x6b\xc9\x36\x7c\xcf\xf6\x8f\x21\x41\x1c\x4f\xa1\x75\x2a\x53\x9e\xdd\x71\x09\xa2\x28\xdc\xfe\xcf\x92\x84\x31\xd2\x22\x04\xde\xd2\xe2\x52\x19\x70\x71\x3b\xab\x12\x9d\xa0\xd5\xb6\xbf\xc8\xc1\x78\xe3\x94\x62\x66\xd7\x52\x77\x61\xdb\x0e\x30\xb6\xda\x77\xb2\x5c\x6f\x2e\x2c\x7e\x10\x83\x10\x90\x65\x7c\xa8\xd9\x00\x8c\xcb\x08\x43\x40\xdb\xe5\xb6\x67\x35\x36\xde\x3d\xe9\x54\x78\x67\x17\x14\x0f\xbf\x29\xe7\x02\x26\x3c\xe5\x27\x8e\x61\xb1\xe2\x48\x96\xf2\x17\x0c\x91\xc0\x04\x95\x18\xe6\xc7\xd8\xe9\xa5\xfa\x44\x72\x62\x3a\x27\xc1\x04\xd3\xac\xcf\xdd\x39\xd2\x89\x19\x5d\x4a\x7a\xac\x8b\xae\x8c\x54\xd6\xbb\x21\xa1\x02\xa3\xe0\xb2\xe4\x65\x6a\x59\x9f\x47\xcf\xa9\x22\x82\xa2\x71\x0f\xc5\xb3\x0d\x5b\xb9\x0c\xc5\x2d\x4b\xf1\xdf\xaa\x0a\x6f\x4e\x99\x38\x57\x67\x92\x5b\xf5\x93\x97\xa7\x62\x40\x72\xa3\x9f\x9b\x87\x1f\x8f\xab\x63\xe4\xb9\x87\x00\x15\x62\xad\xe6\x31\xcd\x15\x7c\x4c\x91\xb6\x01\xd3\x84\x22\xec\x20\xe3\xb9\x32\x94\x9e\x06\xf7\xed\xce\xa1\xe3\xc8\x10\xf0\xc1\xbb\x49\x2c\x0c\x33\x75\xa6\x57\xe8\xb1\x30\xb6\x50\x98\x79\x2d\x07\x70\x37\xd7\x23\xa1\x58\xdc\x78\x0f\x69\x39\x66\x0d\x1d\xf6\x24\x5e\xe8\x28\x89\x76\xc0\xb3\xb4\xea\x55\xc1\x40\x48\x24\x0d\xfd\x21\x6b\xf7\xf4\x87\x0e\x89\xd2\xb8\x8f\x2d\x9b\x95\x53\x14\xb5\x8b\xcb\x8f\x6e\x8c\x80\x76\x97\xfb\x95\xfe\xf9\xe7\xe1\x7a\x1e\xd7\xfd\x42\x48\x23\xcd\x8d\x95\x60\x98\x97\xdc\xaa\x39\x31\xb0\xed\x11\x2c\x21\xe8\x01\x65\xf0\xb6\xed\xcb\x8b\x40\x18\x52\x4f\x78\x66\xd1\x1f\x4e\xbc\x30\xa6\xc6\xb0\x7a\x28\x9e\x1f\x0a\xf9\x8a\xc5\x5c\x78\xa5\x6e\x22\x0f\x8c\xdd\x30\x8e\x19\xf2\x4a\xd8\xd2\x8f\x29\x7d\x24\x08\x93\x20\x90\x6d\x6e\xa2\x39\x67\xda\x18\xf9\x06\xe1\xe1\x16\x97\x30\x09\x15\x95\x4e\xc3\xae\x55\x83\x9e\xf4\x77\xc3\x44\xb1\xd0\xa9\xc2\xf6\xcd\xeb\x90\x0b\x86\x45\x2d\x69\x5e\x41\x59\x1f\x8b\x52\x8d\x18\x34\xfa\xc1\x61\xe2\xbb\xa7\x10\x7e\x02\x26\x32\x56\x5f\xca\x7c\x5d\x99\xf4\xc6\x64\x6a\x23\x14\x8c\xc5\xbc\xf5\xf9\x7e\x42\x99\xea\xb4\x53\x4b\x1e\xf5\x4d\x22\x4d\xc7\xfc\xee\x7b\x7e\x82\x9f\xfc\xf2\x29\x09\x1d\x84\x82\x7b\xdc\x29\xad\x2c\xac\x63\x55\xd5\x4e\x33\xc0\x3d\xab\x0c\x09\xd2\x10\xbb\x5c\xc3\x0c\x45\xb6\x21\x7d\xce\x31\x83\xfc\x54\xd4\x26\x93\x6c\xbb\x2b\x12\x78\xcc\x16\x6b\xa3\x76\xe0\xf0\x9a\x8a\x1a\x04\xae\x34\x73\x2f\xbb\xee\x2c\x76\xa5\x3d\x3e\xa2\xae\x9c\x75\x7f\x39\x37\xbb\xd3\x1b\x1f\x8d\x1e\x15\x51\x74\x62\x1f\x8a\xe7\x66\xb8\x35\xff\xbf\xc3\xb7\x84\xac\x0c\x08\x8d\xb8\x8d\xab\x87\xc0\x14\x66\xab\x2f\xf9\x63\x3a\x5e\x1b\x42\x08\x13\xac\xd0\xca\x38\x3e\x66\x99\x42\x1b\x5c\x08\x41\xfa\xb8\x1d\x1d\xa7\x24\x8f\x6c\x1f\x1d\xf8\xa2\xdb\x32\xf6\x90\xfe\xe9\xa8\x3b\x27\x17\x11\x0d\x4a\x58\x87\x9e\xa7\x39\x32\x91\x3d\x7f\xb2\x8a\x47\x1e\x63\x41\xe2\x88\x0e\x35\x1a\x95\xc3\x29\x72\xfb\xa7\x3b\x32\xa2\x9a\xb4\xcc\xf9\xab\xc3\xfd\x6f\xa3\x33\xf3\x10\x25\x34\x3e\x03\xc4\x44\x9e\x20\x88\x39\xcc\x1d\x16\x09\x22\x92\x18\xc9\x71\x34\x67\x9e\xc9\xe8\x00\xa2\x12\x64\x0d\x97\x5d\xa1\x29\x44\x04\x3c\xcc\xdc\xe2\x8f\xe3\x78\x7c\xe4\x07\x1a\x31\x81\xf9\xe5\x84\x5c\x14\xd5\x43\x8f\x35\x10\x22\x9f\x89\xc8\x8d\xbe\xe3\x0b\x37\x2a\x9b\x8d\x49\xb3\x37\xea\xa5\x79\x91\xff\x1b\xca\xa2\xfb\xb9\xe6\xaf\xd0\x1e\x0c\x46\x2d\xae\x71\xca\x0a\xe3\x00\xf7\xdf\x8f\xaf\x09\x16\x46\xef\x21\x57\x98\x6b\x46\x7e\x24\x48\xdf\x46\xb2\x33\x10\x51\xcf\xf3\x59\xaf\x16\xe1\x93\xe2\x98\xdb\x3f\xfb\x2e\x49\x44\x03\x0a\xae\x04\x54\x5f\x37\x83\x45\x63\x7c\xc2\xc1\x78\x89\x68\x10\x20\x5e\x7e\x36\x4f\xeb\x5e\xe0\x22\xa2\xcc\x90\x79\x98\xfd\xb8\xe4\xcd\xce\x7c\x2a\xde\x46\x15\xf9\x10\x05\x01\xc3\x4f\xa0\x4a\x9e\xe6\x3b\x1c\x74\xad\x98\xe8\xa8\x27\x63\x86\xe6\x0e\xd7\x83\x96\x57\xaa\x1a\xd2\x8a\x0c\xdf\x4e\xe8\xf9\x8a\xba\x31\x31\xc6\x2a\x3a\x63\x3c\x0a\x89\xe1\x9b\xdc\x1f\x56\xdb\xe3\x7e\xfd\x6f\x97\x35\x8c\x42\x1e\xf9\xcc\x7d\xe2\xf7\xb4\x7e\x99\x21\x7d\xc2\xa1\xbc\x40\xd7\x25\x46\xb0\x7f\x7e\x39\xdd\x02\x7f\x21\x0a\x35\x53\xbe\x51\x73\x7b\x34\x7e\xf1\x1c\xea\x23\xf4\x40\x42\x51\xc4\x69\xdc\xc3\x06\x1f\xca\x54\xbe\x66\xb0\x2c\xde\x73\x97\x38\xb6\x1d\x63\xf0\x5c\x2c\xc4\x2c\xba\x06\x7e\xb1\xcf\x78\xf5\x92\xe6\xcf\x06\x64\x36\x1a\x1e\x49\xe2\x21\x5c\xa6\x27\x59\x6e\x32\xbd\x13\xe2\x5c\xbd\xd7\xd7\x87\xc7\x45\x89\x56\x86\x22\xbd\x86\xb3\x99\x02\x7d\xdb\x37\xe2\x2c\xc0\x64\xb9\x2a\x2c\x82\x0f\x69\xd9\xf3\x9b\x2f\xcd\xc3\x04\x33\xc3\x5b\x28\xab\x94\x1b\x62\x92\x09\xea\x6e\xd7\x5b\x19\x57\x55\xa7\x25\x20\xff\xcb\x43\xf1\x4c\x66\x79\x91\x5f\xdb\xd9\x2b\x88\x51\x51\xdb\xf2\xeb\x53\xfa\x92\x66\x8d\x89\x38\xa4\x9c\x87\x48\x02\x77\x6c\xc3\x77\x30\x82\x14\x44\x52\x6b\x6a\x68\x7f\xe7\xc6\x4f\x98\x40\xec\x43\xa4\x42\x86\xdc\xa1\x68\xba\xec\xcf\x50\x9e\x7a\x31\xc3\x48\x09\x81\x96\xf6\xe1\x30\xdb\x2d\xdd\x8f\x90\x84\xb8\xbc\x89\xcb\x75\xce\xe5\xab\x13\xcd\xe9\x55\x77\x41\x04\xd2\x03\x4b\x19\x60\x58\x3d\x1b\xb7\x65\x40\xbd\xd8\x76\x34\x4c\x37\xbb\xd9\xd3\xb7\xd5\xea\x69\x79\x0c\xdd\x29\x34\xf1\xd1\x89\xcc\x80\xbf\x81\xd3\xd0\x1a\xcc\x6b\x9d\x08\x57\x54\xb8\x83\x73\x51\x8e\xce\x1d\x7b\xda\x47\x54\xf3\x1f\x8b\x7d\xcd\x73\xc5\x4b\x35\x49\x55\x73\xbb\x62\xc4\xc4\x8f\xb4\xad\x92\xee\x03\x55\x21\x26\x2c\x4c\xba\xe4\x6b\x0b\xba\x1b\x99\x07\xc3\x55\x24\x26\xb1\x2f\xad\x46\xca\x3f\x2f\xcf\x5c\xf1\x2f\xc8\x72\x6e\xc6\x4a\x4c\x04\x89\x3a\x62\x51\x0b\xbb\x9a\xa7\x59\xd6\xdb\x8b\x26\x8e\x02\x40\x58\x24\x8e\x2e\x5b\xb9\xb4\xca\x55\x6b\x74\x39\x8f\x20\xf6\xbd\x80\x5b\xba\x54\x8c\x7f\x39\x0a\xb4\xbf\x70\x0c\xbe\x76\x18\x62\x3f\x36\x3c\xf6\xe8\x0f\xfc\x4a\xb1\x8c\xd6\x35\x49\xe2\x2a\x53\xed\x6b\x6b\xac\x87\xc6\x98\x18\x93\xbb\x41\x4c\x93\xc8\x14\xef\x9b\xaa\xb9\xb4\xc8\x07\x78\xaf\x38\xf0\x04\xae\xec\xeb\x6f\x87\xfe\xac\x8d\x03\x19\x92\xc0\x91\x82\xa4\x8d\x3f\xde\xe3\x2d\x80\x38\xf4\x40\x88\x8e\xec\xa9\x55\xdc\xe9\x19\x3b\x71\x14\x02\xc6\x88\x55\x5a\x82\xac\xf7\x90\x65\xbb\xde\x19\x22\x69\x18\xb7\x97\xab\xbb\xd9\x8f\x87\xc3\xd1\xd1\x66\x2c\x36\x7b\x97\xc0\x8c\x63\xcf\xc3\x82\x96\x4e\x4d\xe0\xf0\x02\x8d\x75\x38\xb3\x82\x0b\x9f\x71\xca\xda\xe3\x13\x10\x38\xd6\xb0\x76\x7c\x99\x5a\x9e\x45\x77\x76\x1e\x10\x0c\x48\x2a\x87\x4e\xfd\x5a\x4d\x0d\x62\xae\x4d\xc4\x04\x67\x8b\xdd\x4e\x87\x98\x35\xdb\x51\x44\x0c\x57\xd5\xf9\xc5\xec\x95\x55\x4f\x0b\x73\x78\x4a\x11\x99\x4d\x6b\xbd\x43\x57\x17\xb3\x2d\x5f\x61\x17\x62\x01\x21\x0e\x0b\x23\x15\xf4\x39\x6f\x94\xed\x2e\x7d\x53\x97\x7e\x57\x0e\xd1\x50\x31\x70\x4e\x68\x9b\x26\xed\xa7\x22\x6e\xf6\xf0\x18\x64\x44\x9b\x1d\xe8\xbf\xcd\xe2\x7e\xdd\x8e\x4c\x8c\x58\x7b\x4c\xb9\xcc\x76\x59\xbc\x5b\x3a\xab\x49\xf3\x31\xd6\x91\x41\x2f\xb9\x37\x6e\x4a\x3f\x8b\x12\xc1\x1f\xa3\xae\x82\x32\x83\xb5\x37\x6a\x02\xa6\xb2\xdf\x9c\x7b\xb8\x50\x27\xc4\x33\xb8\x9f\x87\xf4\x7f\x97\x54\x4d\xe0\x83\xbe\x9e\x6b\x09\x91\x1c\x33\x22\x36\xb6\x84\xa0\xd0\x51\x7a\xa9\xcb\x43\x26\x44\x09\x2f\xfe\x32\xd9\xe9\x3a\xea\xc4\x05\x69\x9f\xe0\x7d\x6b\x32\x79\xb7\x2e\x62\xe2\xfb\x11\x25\x96\x32\x67\x07\x7a\xc0\xed\xe8\xba\x84\xc0\x45\x5b\x0d\x9c\xd6\x00\xdb\xf5\xb2\x7d\x7e\x3f\xf6\x1d\xb9\xc5\x7c\x69\x37\xf0\xdf\x26\xb6\xea\x84\x7a\x01\xf2\x1b\x71\xa5\x44\x7d\x95\x93\x1c\xa6\xae\x6b\x1c\x28\x0b\xc5\x32\xa4\xb0\x5b\xfc\x10\x90\xcb\x81\x58\x7d\xef\xbd\xd0\x98\x61\x01\xde\xd9\x04\x86\xcc\x51\x3d\xf2\x23\x48\xa8\xd0\x98\xc4\x3a\x39\xbd\x1d\xdc\xfe\xcc\x64\x5e\xe7\xbf\x56\x6b\xd7\x31\x08\x43\x04\x37\x38\x90\xdb\xa1\x78\xe4\xf9\x75\x6c\x98\x25\x41\x42\x70\x71\x43\x1b\xfa\x78\xd8\xcd\x16\x47\xdf\xf3\x3c\xaf\x3d\x8d\x8c\x5d\x98\x6b\x76\x79\xbe\x94\xed\xef\x5a\x48\xfb\xbe\xd0\x18\x79\xe3\xd9\xa2\x00\x8c\xfa\xb5\x75\x79\x7f\x91\x90\x4b\x58\xa0\x91\xc5\x7d\x5d\xb5\x31\x0b\xdb\x12\x92\xc4\x27\x03\x9e\x68\x13\xef\xeb\x16\xbf\x24\x04\xce\xec\x77\xf8\x8c\xf4\x76\xaa\xa6\x0e\x92\x48\x18\xfa\xfe\x01\x50\xc0\x9d\x35\xa6\xbe\x93\x68\x34\xa4\xa5\xb7\x34\x43\x4d\x27\xca\x65\xeb\xef\xdd\x17\x19\x96\xac\xf3\x0f\xf7\x22\x46\x03\x2f\x4e\x38\x86\xa7\x52\x94\xa1\x36\x5c\x4e\x37\xbb\x74\xfb\x41\x62\x6e\xb8\xf4\x2c\x7b\x03\x06\xc8\xc6\x43\x39\x11\xb1\xd7\xea\x2e\xcf\x79\x05\x3f\x76\xed\x77\x17\x4c\x61\xdc\x65\x3e\xdb\xaf\x7a\x42\xec\x90\xc8\x50\x98\xf2\x92\x34\xcb\xba\x40\x53\x22\x35\xc3\x32\x7c\xf3\x30\x86\xf7\x1c\x0b\x3e\x27\xf0\x03\x89\x6a\x36\xd5\x9e\x2b\x34\xbb\xd4\x2f\xd3\xd0\x89\x04\x02\x86\x8c\x4f\x85\xad\x16\x39\xfe\xef\xd2\x47\x0c\xf4\x17\xfd\xff\x23\xee\xe1\x41\xc6\x08\xcf\x70\xb1\x8c\xd5\xe1\xbe\xee\x0c\xce\xe1\x4b\x00\x88\xa8\x83\x41\x1e\xe3\xa3\xe0\x55\x2a\x5d\xc0\xaa\x9a\x43\xfd\x0e\x90\xbb\x02\xc0\xa3\x43\x9f\x1b\x2f\x73\x7e\xa5\xdd\x08\xd7\x9e\x89\x9f\x7d\x4b\x4f\x27\x8b\x44\x9d\x0c\xca\x4e\x8f\x61\x9d\x28\x1a\xb9\x88\x52\x63\x5f\x1e\xde\x8b\xf6\xcc\x9c\x63\x5c\xe0\x58\x41\xf6\x49\xf4\x2e\xd1\x60\x98\x1c\xcd\xeb\xbf\x2b\x8b\x3f\x21\xbf\x4d\xc0\x72\x8f\x85\x71\xe8\x4c\x99\x7d\x6b\x7b\x70\x4f\x09\x4c\x8b\xdd\xf3\x52\x2d\xf8\xd9\x95\x90\x4f\x5e\x8b\x13\xcf\x70\x7e\x5a\xb1\xda\xae\x34\x6e\x80\xb1\xe4\x24\x08\x5c\x35\xc3\xb6\x2c\xfe\x0b\xb2\x3e\x14\xe8\x0d\x7d\xb2\xce\x71\xa2\xa5\x08\x5d\x68\xd1\xac\x36\x13\xe2\x98\xc0\x7d\x2b\x49\x2f\xc0\xa8\x72\xbb\x9f\x63\xf3\x0a\x1e\xaf\xb7\x55\x04\xdd\x45\x7c\xe0\x49\xbb\xed\x3d\xf0\xaa\x3e\x7c\x18\x44\xfd\xfc\x7a\xcf\xdb\x78\x0d\xf7\x75\x88\xae\x84\x41\xf9\xaf\xf5\x13\x80\x02\x75\x40\x3a\x62\xe8\xa6\xe6\xd8\xd5\x9e\x4e\xa3\x4d\x7f\x73\x4e\x03\xa9\x44\x27\x09\x51\xe4\xd3\x53\x80\xd3\x48\x5b\x46\x29\x68\x71\x5d\xe3\x8c\x1f\x0f\x88\xaf\x83\x1e\x4d\x0c\x1d\x7d\xf9\x20\xa0\xcc\x6e\x95\xdf\x20\xf7\x5a\xdd\xdb\xae\x07\x23\x09\x92\x87\xf5\x70\xe6\x68\x44\x2f\x78\x26\x27\x62\xf4\xa3\x83\x79\xc8\x6d\xf9\xcd\xae\x90\xb6\x04\xc6\xe4\x3b\x86\x1d\x43\x42\x5c\xd9\xba\xc5\x13\x2f\x2f\x65\x3f\x87\x36\x3a\x71\x18\x78\x46\xdf\x8a\xe7\xc5\xac\x79\x3d\x7d\xdd\x2f\xe0\x61\x28\x71\xf6\x8a\xcb\x35\xcd\xc7\xee\xec\xf8\x54\x32\xc6\x50\x4d\x5a\xb9\x9c\x11\x86\xcc\xee\x2c\x84\xa0\xfd\xf6\x11\x35\x8c\xa0\xb3\xed\x66\x04\xd6\x72\x1d\x94\xd9\xbb\x91\xe2\xab\xf9\x1c\xec\xa9\x78\x77\x8d\xb1\x47\x30\x40\xfe\x5e\xa6\x35\xec\x6e\x69\xbf\x5d\x37\x11\x5a\x29\x00\x84\x56\x97\x85\x4e\x33\xd8\xa6\xb2\xbe\x94\x43\x46\x23\xe0\x09\x0b\xb1\x8c\xff\xae\xa8\x5e\xb8\x15\x6c\x76\x57\x4b\xb8\x1f\xf1\xde\x4a\x7a\x8f\x3a\xa0\xbf\x4d\x15\x6c\x74\xd7\x4e\x80\x23\xe7\xd5\xd1\xb0\x38\xf4\x25\xed\xa6\xc1\x9e\xe6\xcf\xe1\xa8\xe4\x5c\x45\x02\x5d\x5a\x5d\x47\xfe\xe8\x2b\x0b\x9a\xa0\xb9\xdf\xad\x0d\xed\xb2\xa0\x02\x43\xb8\xf5\x0c\xf5\x7c\xbd\xec\x15\x8b\x70\x60\x44\x5b\x47\xe7\x1e\xd2\x36\x95\xc7\x21\x06\x6a\x18\x6f\x0d\xdc\xc8\xc5\x45\xee\x8a\xf1\xe0\x02\x1d\x73\x27\xf7\xbb\xda\xdc\x9b\x68\xcb\xf4\x68\x10\x1e\xd5\x28\x6a\x6c\x2d\xcd\x01\xb4\xc5\x75\x61\x01\x74\x80\xa1\x6d\x9a\x3f\x16\x87\x56\xd7\x65\x7a\x52\x0b\x2f\xd4\x21\x41\xc3\x2a\xbf\xf0\x0c\x19\x19\x7a\x15\x28\xc2\x4b\x84\x7b\xc6\x96\x06\xbb\x42\xd0\xdc\x5f\xf9\xa4\x93\xee\xb8\x20\x41\x4c\x95\xa9\xe9\x18\x5a\xe2\x82\x84\x21\x5a\xa2\xc8\xa9\x14\x8d\x96\x03\x41\x20\x22\xd2\xd2\x13\x0e\x65\x26\x40\x10\xcd\x30\xfc\xd3\x0c\xf9\x9f\x3c\x7b\xeb\xd5\x2f\x83\xf0\x09\xc5\xfa\x0f\x1b\x7b\x47\x52\xd3\x16\xce\x2b\x7c\x96\x60\x9c\x5f\x34\x26\x4f\xae\xac\xed\xa3\x51\x00\x42\x8d\xca\xf1\x41\xf8\xdc\x54\x73\xce\x79\x0e\xbc\x3c\x6e\x4a\x2e\x2f\x59\x31\xea\x44\x89\xe1\x7e\xd6\x00\xd5\x81\x37\x3e\x4a\x59\x9c\x0c\xdd\xc7\xf4\x17\xa0\x94\xba\xe8\xf2\xfe\x9a\xd7\x2f\x50\xa5\x7f\x22\x55\xb7\xec\x13\xc4\x4c\xbf\xce\x66\xa9\xc5\x22\x8c\xe2\x82\x1e\xfc\xe7\xfa\x93\x9f\x7c\x7e\x9a\x84\xd2\x89\x3e\xce\x51\xcd\x1c\x51\x8a\xd3\x43\x30\xf0\x09\x92\x85\x3f\x36\xa3\x84\xa7\x99\x8d\xca\x75\x05\x0d\xae\x9f\x86\xd8\xa6\x90\x1a\x2b\xdd\xb2\x2e\xaf\x6b\x38\x59\x32\x08\xdb\x8f\x91\x10\x51\xff\x56\x3f\xae\xf1\xf3\x5b\x02\x39\x10\x2c\x4c\x90\x6b\x03\x77\x34\x03\x7d\xc4\x20\xd6\x38\x9a\x2e\xc2\x90\x39\x1f\xa6\x19\xbf\x4b\xcb\x47\x3e\x1a\x41\x91\xef\x63\x82\xbb\x79\x4d\x36\x74\xec\x22\x4b\x22\x52\xb1\xe3\xfc\xda\xa7\x23\xf5\x2c\x10\x31\x11\xdc\xce\x81\xbd\x7c\x81\x2c\x4b\xf3\x67\xdc\x69\x1c\xe4\xcb\xf5\xd3\x1a\xc9\xab\x36\xbb\xd9\xe2\x61\xfd\xef\xd5\xf1\xdb\x6c\x7f\xc4\xaa\x11\xd7\x23\xa1\x54\xf4\x2b\x70\x7a\xde\xd0\x67\x20\x8f\x30\xb0\xff\x88\x1b\x97\xa9\x73\x9e\xdc\xbf\xdc\x99\x03\xe2\x0a\xb0\xed\xc0\xb1\xb0\x9f\xaf\xc7\x4f\x12\xc4\x11\xd6\x7e\x97\xe5\x20\xf8\x23\x12\x26\x50\x8d\x65\x59\x16\xe7\xa7\xa2\x4e\x7b\xfb\xdd\xe7\xd5\x1e\x82\x0b\x66\xbc\xa3\x33\xc8\x54\xa7\xd2\x39\x94\xd3\xc3\x49\x52\xa2\x0d\x0a\x1f\xef\x74\x75\xb8\x77\x22\xcb\xa3\xa5\x41\x46\xa6\x32\xf3\x5c\x16\x12\xaa\x6a\x67\xa1\x59\x13\x1e\xb6\x90\x4a\x22\xe6\x66\xff\xce\xcf\x2e\x9a\x36\xbc\xaa\x8a\xa2\x80\x38\xd6\xa0\xdb\xac\x98\x00\x5f\x05\xdd\x22\x3a\x4a\x0c\x0a\xcd\x63\x21\x3b\x04\xe4\x1c\xea\xba\x19\xda\x8d\x59\x37\xfd\x90\x5a\x85\x28\xa5\xa0\x4b\x80\xbb\xa2\x6c\x79\x2e\x41\x7a\x61\x82\x21\xaa\x33\xbf\x0a\x2e\x5f\x0f\x85\x4d\x3f\x7f\x86\x58\x94\x5e\x64\xe2\x7a\x3f\xea\xf2\x32\xac\x00\x94\x24\x0c\xc2\x36\x07\x75\x57\x02\xcc\xf2\xf4\xc4\xb3\x66\xe9\xb1\xff\xb2\x62\xe8\x13\x5f\x4d\x92\x58\x09\x23\x1c\x5a\x64\xfb\x96\x96\x08\x24\x49\x0c\xc8\xba\xe5\xe3\xdd\x5d\xf2\x77\x7e\x6d\x9b\xb9\xd2\x36\xf6\x90\xcd\x1e\xa1\x7e\x29\xd4\x68\x5b\x95\x7e\xa0\xb9\xe7\x68\x7a\x9b\x8f\x7c\x32\x01\xd1\x0f\x57\x9d\xf8\x8f\x61\x77\x11\x90\xc8\xad\x1b\xf9\xeb\xf7\x3f\x16\xc3\x6f\x23\x7d\x69\xe8\xb1\x4c\xb2\x1b\x83\xc3\x77\x45\xd9\xda\x3b\x33\x43\x57\xe7\x6e\xd0\x57\x1e\xda\xe7\xe2\xd2\x2c\x6c\x7d\xde\x27\xdb\x81\xfa\xcc\xb3\x95\x8a\x90\xd7\xe8\x23\xb5\xbe\xac\xed\x12\xf8\x80\xab\x39\xcf\x87\x2f\x3c\x88\xa3\xd8\xa4\x26\x72\x5e\xc3\x3f\xb9\x7c\x3d\x17\xed\x85\x43\x9a\xe0\xd7\x40\x43\xc5\x04\xe6\x5c\x0b\x0f\x71\x11\xb2\x0c\xa1\xe9\x9f\x60\x98\xd4\x6f\xc4\x98\x41\x46\x9e\x46\x84\xd4\x19\x09\xe2\x1e\xbb\x73\x44\xd4\x54\x46\x3c\x42\xcd\xef\x8a\x8f\xc1\x6d\x45\x94\x71\x93\xf1\x79\x2b\x5e\x61\x0b\xa5\x85\x0c\x4f\x23\x56\x02\x77\x54\x92\xa0\x33\x67\x09\x11\x26\x3c\x60\x19\xf1\x10\x37\x1a\xf8\x30\x26\xeb\x94\x00\xc1\xf4\x16\x23\x23\xc1\xcc\xab\x02\x3c\x6a\x02\x54\x24\x23\xa5\xa4\xe7\x82\x1a\xa7\x53\x5a\xd7\x80\x7c\xaf\xa3\x6e\x71\x4c\x31\x5c\x08\x2a\xad\x77\xd0\x8c\x61\x59\x7f\x02\x0f\x90\x31\x8f\x11\xd3\x76\xc9\xcf\xfc\x52\xc1\x90\x5a\x09\x64\x02\x3a\x91\xfd\xb1\x6d\x28\x5e\x2c\xc4\x68\x7a\xa7\x96\x3c\x30\x39\x8f\x0a\x8c\x76\xed\xcd\xaa\x3a\xea\x2f\x3c\x1f\xad\x0b\x53\x1b\x92\x42\xe9\x8a\x84\x7f\x9c\xcf\x50\x3e\xa4\xa7\xb4\xee\x17\xf5\x4b\x41\x68\xe2\x59\x43\xe6\x0b\x6a\x43\x90\x82\x32\x53\x73\x68\x84\x1f\xad\xc1\x3a\x7c\x01\x82\x01\xba\xb3\x6b\x7e\xfa\xb6\xdb\x6c\x0e\xed\x45\x62\x65\xf8\x68\x6c\xcc\xa0\xdd\x4e\xf7\x30\xae\x5b\x92\xd2\xc6\x0e\xab\x96\x76\x06\xb1\x3f\x8d\x1b\xba\xe5\xa9\x9a\x8d\x62\x13\x52\x46\x9a\x25\x2d\x75\xef\xb6\x84\x54\x16\x03\x27\x5b\xaa\x80\x23\xfc\xc2\xa1\x8b\xb1\xd8\x60\x56\x6d\xf9\x15\x60\x26\x47\x1a\x4a\x7d\x11\xd5\x9e\x7a\xca\x6d\x41\x97\x54\x11\x45\xc6\xe5\x56\xae\x14\x1c\xa4\x70\x14\x43\x92\x2a\x26\x36\xce\xa4\x00\x4e\x3f\x0e\xbf\x6f\xc6\xa5\x92\xed\x85\x5b\xab\xf9\xd6\x41\x1e\xbe\x26\xa5\x09\xd6\x5f\x96\xbc\x84\xb5\xda\xf1\x56\x1e\x0d\xa4\x8e\x22\xc7\xc5\xf8\x23\xd7\x69\x9e\x56\x2f\xa0\x7a\x62\xcf\xa0\xbc\x30\x41\x36\x92\xd7\xd7\xf5\x62\xd3\x98\xb6\x51\xd4\x36\x81\xb6\xe1\xf1\x4c\xab\x66\xbc\x5f\x64\x9b\xff\x55\x3e\xf3\xd0\x96\x30\x6a\xeb\x9f\x32\x47\x82\xa2\x71\x4c\xfa\x7a\x5e\x2e\x58\x64\x68\x06\x74\x3a\x4a\x45\x04\xdd\x61\xcc\x1e\x36\x30\x0d\x1a\x5f\x12\xd7\x30\x24\xb8\x2f\x8a\xec\xff\xa2\xff\xb8\x16\x65\xc4\x0e\x06\x32\xc6\x93\xd3\x53\xb1\x28\xc2\x2c\x90\xd1\xf1\x3d\x4c\xf0\xea\x4e\x3f\x4c\xe8\x79\x8a\x74\x23\xdf\xd2\x91\xef\x2d\xe9\xfe\xdf\x2b\xcc\x51\x51\x18\x19\xf6\x8b\x66\x1b\x31\xee\x74\x07\xc6\x51\x91\x14\x58\x45\xf7\xbb\xfd\x1f\xf1\x46\xf7\x1e\xb3\x28\xb1\x6f\xe6\xdb\x76\xff\x88\xdc\x54\xc3\x51\xa6\xe2\x28\x32\x18\xe9\xe5\xcf\xf5\x7e\xb3\xdb\xbb\x73\x73\x19\x73\x0b\x2e\x31\x91\x9a\xee\xb2\x82\x47\xf8\x3d\xb9\xe2\x67\xf4\x3f\xfa\x18\x56\x25\x24\x0f\x3b\x45\x19\x78\x2e\x3e\x21\xa1\x06\x25\x20\x31\xd5\x7d\x69\x8e\x3c\x16\x7c\x18\x49\x57\x32\x34\x84\xc0\x48\xb4\x34\xb6\x0e\xbb\x15\x5f\xc9\x58\x4a\xdd\xf3\xd4\x57\xeb\x6d\x14\x45\xb8\x3f\x6a\xde\xa6\xea\x94\x94\x8a\x1a\xc8\xf9\x39\xe3\x12\x8e\xd5\xff\x2e\xbc\x84\x49\xe4\xc4\x70\xd6\x28\x09\x01\x26\xd9\xcf\x97\xea\xe5\xb7\x5e\x77\xdb\xac\x3c\xe5\x75\x75\x38\xd5\xe5\x04\x5f\x0c\x27\x15\x19\xc1\x2a\x4b\x0f\x52\x0d\xc1\x53\x4a\x09\x15\xab\x41\x5c\xdd\x70\xf1\x5c\x7a\xd4\xa4\x2d\x45\x69\xf0\x8f\xbe\x93\xa2\xc0\xa7\x2e\x81\xdc\x5c\xf0\xa9\xa8\x9f\x2e\xd9\x08\x81\xa0\x40\x9b\xb7\x50\xa1\xd6\x52\x5a\xc2\x12\x32\x7e\x1d\x0d\x0a\xd0\x80\x61\x18\x55\xcc\xcb\x82\x2b\xd9\x95\x28\x82\xc7\x05\xd2\x15\xe9\xa2\x94\x1d\x79\x18\x80\x27\x12\x5c\x2e\x97\xbc\xb8\xbf\x08\x1b\x8d\x74\x6d\x52\x20\x58\x0e\x45\xb5\xe7\x69\x77\x2e\xa9\x12\x1b\x39\x6b\x5c\x79\x8b\x89\x9e\x08\xe8\x83\xa7\x0c\xb3\x45\x65\x29\xc7\x6f\x64\xf4\x6c\x3f\x12\x9a\x80\xae\x34\xb2\x01\x08\x43\xde\x5e\xca\x6a\xe4\x28\x01\x51\x5e\x60\xaa\x73\xe4\x16\x4a\xb4\xa7\xdc\x4d\xf9\x09\x38\x18\xa6\x29\x07\xda\x68\x83\x78\xc1\x9d\xeb\xd2\x47\x0c\x82\xcf\xa9\x72\x84\xeb\xc8\x10\xea\xb6\x4d\x44\x39\x8c\x6c\x4c\xf0\xa5\x42\x1e\x39\x2b\xf8\xb5\xd1\xb3\x4f\xf0\x6a\x40\x43\x86\x23\x7f\xf6\xcd\x95\x8c\x02\xe5\x66\x90\xdd\xf3\x12\xe0\xd4\x0b\x2a\x00\x95\x0c\xb7\xcf\xe5\xa5\x2d\x98\xfe\xac\x38\xa9\x77\x05\x65\xb0\x57\xc6\x66\xeb\x5b\x66\x10\x28\x93\xa9\x33\x0c\x6b\x8f\xab\x43\x1b\xb3\xef\x7a\xc4\xda\x94\x0b\x1a\xd4\x46\x33\xea\xeb\x92\xa7\x93\xc8\xe3\xa9\x19\x05\x8c\x70\x4c\xd9\x5a\xba\xc0\x71\x8a\xdb\xf6\x0a\xad\x6a\x3b\x9a\x1e\x5c\xa5\x6d\xfa\x09\x22\x9b\xcc\x84\x52\xfa\xde\xdd\x66\xbe\xff\xed\x53\x94\x06\x24\x20\x10\x0d\xda\xb8\x3e\xe5\x69\x07\x58\xb9\x31\x9d\x05\x06\x1e\x52\x2c\xcc\xfd\xb6\xdb\xfc\x5a\xdc\xcf\xbe\xd4\xd2\x03\xe0\x09\xc7\xc9\xea\x9c\x64\x7f\x34\x1a\xa5\x47\x50\x2d\x8a\x17\xa7\x92\xf7\x80\x61\x20\x83\x00\xfd\x6f\x01\xba\x28\xc1\x2e\x01\x06\x8c\x5c\x8d\xcf\xc1\xbd\x08\x99\x99\xfa\x9a\x1f\xcd\xcf\x1a\x23\xdc\xa9\x5e\xe5\xea\x9b\xf1\xed\x5c\x9b\x8a\x39\x0e\xee\x87\xc2\x60\xc8\x26\x18\xf6\x26\x17\x64\x50\x49\x88\x1b\xe9\xd1\x0a\xfb\x75\x40\x8b\x69\xb3\x11\x80\x18\x42\xb4\x0a\xea\x4d\xb9\xe0\xf2\x05\x0e\x96\x28\xf7\x5c\x94\x35\x94\xdf\x78\xb5\x28\xaa\x71\x76\x0c\x20\xf0\x83\x0e\x3c\x6b\xe8\x71\x06\x81\x59\x00\x96\xa0\xed\xf3\x7c\x81\xa1\x16\x03\x00\xc4\xd2\x67\x3d\x4e\xf2\xe6\x02\xee\xc9\x21\x09\x43\xdd\x33\x20\xcc\x27\xe7\x3d\x41\xa1\xe1\x07\x04\xee\xe3\x3c\x73\x66\x80\x85\xfb\x7f\x25\x6d\x0d\xd0\x2c\x8f\xcd\xfc\x98\x2f\x66\x0f\xb3\x7a\xe0\x6c\x35\x77\x87\xbb\xa6\x09\x7d\xde\xa5\xcf\x2f\x35\x94\x73\x5e\xd7\x26\xd7\x3e\x2c\x16\x0a\xcd\xfa\x4d\xa6\xfe\x8b\xb8\xab\xe9\x20\xc0\xfa\x76\x84\x77\xa0\x26\xac\x67\xb5\xbd\x1f\x0b\x65\x6c\x22\xd7\x33\x34\x01\xcb\xed\xec\x61\xb6\xb6\xa4\x82\xa0\x3d\x5f\x1a\xc9\x3f\x34\x71\x57\xb9\xea\x55\x7d\x6b\x8f\x29\x84\x55\xc1\x1b\x97\x97\xde\xef\x84\xfb\x38\xbd\x4c\xa8\x75\x9d\x57\x26\x91\x80\x15\x32\x28\xb0\x3f\xe0\x2f\x8d\x87\x90\x00\xed\x7b\x1e\x46\x95\x8f\xee\x33\x34\xfe\xdf\x54\xaa\x5e\xd3\xc8\x08\x4a\x37\xbb\x9d\x63\x18\x1a\xd4\x60\x6a\x9a\x08\xe4\x9a\x72\xd5\x88\xc3\xd9\xa1\xa9\xf6\x29\x6b\x63\xfd\x8f\xcd\x12\x04\x79\x73\xab\x9f\x5b\x99\x3a\x60\xa6\x16\x70\x96\x9b\xd2\x33\x43\xfe\x60\x1b\x99\x17\x21\x8d\x1c\x6f\x3c\xf6\x60\x67\x78\x12\x87\xc7\xb3\x88\xa0\xde\xd5\x2f\x5e\xcb\x17\xb7\x45\x98\xa4\xf1\x3a\xb7\x9b\xb6\xa9\x11\xb4\x07\x84\x4c\xda\x7a\x32\xa4\x1c\x1c\x9d\x2e\x14\x31\xf2\x31\xf4\x35\xf1\x6d\x53\xec\xc5\x98\x2a\xab\xde\xd3\x5a\xbe\xb8\x30\x59\xae\x0c\x9c\x7a\x93\xa9\x4d\xde\xf5\xb5\xfa\x48\xcd\x5a\xb4\x2c\xf9\xfb\x8d\xa5\xa7\x63\x46\x0c\xb1\xdd\x6c\x33\xc9\x9b\x38\x31\x41\x74\x1c\xc7\x0e\x0d\xb4\x2f\x64\xca\x33\x9b\xaf\xdd\xbe\x7f\xa9\xad\x00\x3a\xd6\x1a\x97\xee\xc7\xf5\xd3\x71\xfd\xf4\x73\xb5\x3f\x74\xd2\xf6\xa0\x93\x00\x68\xe0\xa0\xcf\x03\x0c\x6b\x2b\x43\x19\xdb\xbf\xbb\xc8\xa1\x4e\x62\x43\xc0\xbe\x80\x0c\x44\xb5\xe5\x65\x7d\xfd\xd6\x7b\x5b\x3c\x60\xdc\x4a\x64\x58\xd3\x6b\x6f\xd7\xc5\xd1\x1a\xf6\x15\xf8\x40\x0b\xcf\x47\x1c\x10\x5a\xdc\x8f\x85\x32\x2a\xe3\xed\xf8\x10\x5e\xd0\x93\x3e\x55\x2d\x11\xf2\x68\xd9\xd6\x22\xf2\x91\xcb\xd3\x2c\x04\xdb\xac\x18\x96\x30\x4e\xbd\x6b\x21\x22\x7c\x29\xc8\xb3\x5f\xbd\x40\xe9\x62\xbf\x3b\x63\xb0\x7e\x52\xa6\xa2\x05\x18\x8a\x11\x71\xb9\xde\x15\xe5\x3d\x97\xaf\x50\x7e\x2b\xb2\x51\x34\x51\x4b\x2f\x8c\xb4\xc3\x89\x94\x7c\xc0\xbd\xe3\xba\xc8\x10\xdd\x85\xd5\x07\x96\xa6\x7e\xa5\xd8\x37\xbc\x05\x45\x4c\xd1\x18\x57\x7f\x59\x18\xe7\x8e\x48\xc0\x97\xfd\x1c\xd1\xc2\x59\x6c\x37\xf1\x70\xad\x54\x80\xca\x07\x6f\x29\xbc\xff\xc8\xad\x33\xb2\x83\x0a\x99\xeb\x3b\xef\xb9\xed\x2d\x51\x95\x90\x97\xf5\xaf\xa2\x7c\x35\xbb\xea\xfc\x3a\x53\xa7\x69\x89\xc9\xee\x3a\x20\x7c\xd9\xf2\x7c\xb4\xfe\x79\x87\xc4\xd0\x9a\x50\x04\xdc\x6f\xee\xee\x56\xbb\x3e\x48\x5a\xeb\xd8\x04\x9d\x76\xf3\xbb\xbf\xc2\xab\x69\xcf\x23\x26\x41\x89\xb1\x99\x21\x72\x62\x84\x58\x9f\x9a\x5b\xda\xf3\x7c\xe6\xdb\x08\xba\xd9\xa9\x2f\x25\x1c\xc5\x25\xcd\xd4\x28\x5c\xa5\x3d\x42\x5a\xf5\x31\xf4\x87\x4e\xa0\x52\x5e\x0e\xcd\x7d\xed\x11\x4a\x50\xdd\xdb\x04\xab\xd7\xf9\xe1\x05\xf6\xd7\xaa\x06\x6b\x6e\x35\x1d\x8c\x90\xf7\xf1\x70\xbf\xf9\xb1\x9f\x3d\x2d\xdb\x06\x16\x38\x8f\xdd\x61\xf3\xbf\x0a\xe3\x6b\x8f\xa8\x08\x6d\x60\xb3\xb3\x1c\x33\x4b\x53\x31\x7c\x40\x5f\x06\x58\xa3\x78\xea\x11\x45\x6a\x8f\x4a\x1a\x18\x3d\xa4\xe2\x5c\x54\x70\xf8\x18\x3d\x6b\x10\x06\xb4\xab\x45\x75\x01\xb2\x7d\x2f\x9d\xe5\x3a\x72\x1a\x82\x8b\x15\x55\xe9\x73\xde\xcc\x64\x63\xb2\x18\x66\x18\xcc\x1a\x0e\x6f\x29\xe0\x1a\x37\x9a\xc5\x66\xb7\xb3\xc4\x8e\x23\x5d\x24\xed\x31\x3f\x0c\x9a\xdd\xec\x77\x7e\x29\x2f\x28\xff\x38\x44\x62\x37\x3d\x04\x06\xd2\x7f\x3c\x3d\x6c\x16\xdf\x8f\x9b\x1f\x87\xf5\xd3\xb7\xdd\x6a\xbf\xda\xfd\x5c\xb5\x7d\x22\x86\x68\x17\x0c\xba\xb5\x3f\x26\x3c\xb0\xc1\x19\x34\x97\x0c\x7a\xe3\xae\xe8\xbb\x2e\xda\x0b\x7d\xc9\xb8\x53\x41\x18\xe1\x03\xb4\x17\xb2\x10\x33\x28\x86\x80\x7c\x02\xd3\xa9\xbd\x30\xa1\xb8\x84\xce\x37\x4f\x3f\xf6\xc7\x87\xd9\x61\x71\xdf\x9e\x3b\x61\xa4\x23\xb9\x30\x5a\x20\x46\x1a\xfa\x0c\xcd\xc6\x70\x13\x17\xd6\x5e\x44\xbd\x48\xb8\x6c\x17\xcf\xb1\x86\xa9\xb8\xed\x44\xd0\x58\xa8\xf9\x2b\x98\x9a\x8b\x4f\x53\xc0\xda\x8b\x78\x18\x52\xc7\x2f\x30\x30\xcf\x5c\x31\x57\xe2\xf7\x13\xeb\xee\x30\xc1\x50\x8f\x10\x21\x40\xfb\xaf\x38\x83\x3f\x49\x0d\xbb\xf3\x48\x89\x01\xb0\xd5\xe1\xfe\xd8\x6c\x6c\xbd\x8c\x99\xf6\x62\x3f\xc6\x4f\x64\xdc\xa6\x01\xc8\xd5\xf5\x08\x24\x9a\x72\x67\x7e\x45\xd2\x9f\x51\x6b\xe2\x27\xa6\xf2\x54\x8e\x07\x5f\x9c\xc4\xd8\x64\x46\x36\xc2\xc9\x1f\xd2\xaa\xc6\x8c\xf9\x84\x34\xb4\xf6\x12\xcf\x88\xd3\x88\x4b\x99\x6f\xcb\xf4\x54\x94\xca\x95\xba\x8f\xae\x9a\x10\x8a\xf4\x20\x8f\xb3\xa7\xfb\xd9\xe1\x30\x7b\xda\xee\x36\xbf\xff\x11\x1e\xee\xf7\xed\x83\x25\xd2\xd4\x25\x1a\x1b\xab\x59\x6f\x77\xbc\x1e\xcf\xa9\x04\x04\x32\x20\x9e\xcb\xe2\xe3\xfa\x49\x32\x6d\x34\xd8\x38\x31\x74\x66\xb8\xd3\xce\x79\x95\xca\x75\x2e\x0b\x47\x6b\xa5\x3d\x1e\x05\x68\xcc\x8b\xbf\x03\x9f\xd7\x1e\x4f\x22\xe1\xca\xe5\x2c\xd6\xec\xa5\x74\xe0\x11\xed\x09\x4f\x61\xdd\xfe\x33\x3f\x59\x0a\xfb\xb6\x85\xc5\x81\x0b\x58\x2d\xee\xad\xf8\x4e\xdc\xb6\xc6\x34\x0a\x1c\x2d\xdc\xb6\x4c\xdf\xd2\x0c\x9e\x41\xdd\x54\xb0\x69\x4f\x24\x1c\x13\x7a\xdf\xb9\x09\x27\xae\x76\x0b\xdf\xfb\x72\x23\x90\x2c\xa4\x7a\xa0\x98\xe5\x82\x5f\xda\x93\xdc\x63\x36\x0c\xf1\x98\xe6\xe9\xb6\x28\xb2\x55\x73\x67\xac\xeb\x00\x58\xe9\x6a\xa3\x09\x87\x97\xb4\x1a\xdd\x90\x94\x26\x8a\x50\xbd\xf3\xf3\x7a\x39\x26\xb5\x19\x4d\x2d\xa9\xfc\xc8\x42\xa6\x16\x37\xc8\xb0\xa6\xb9\x2d\xa6\xb6\x9f\x61\x7e\x6d\xa6\xfc\x58\x2d\x5d\x7b\x52\x47\x18\x2c\xd3\x69\x96\xe1\x08\xad\x30\xe7\xf8\x09\x60\xcb\x1a\x77\xda\x53\x31\xa3\x16\x2d\xfa\x04\xef\xfb\xba\x04\xa8\x7b\xda\x0d\xae\x97\x52\xbe\xd3\x79\x19\x69\xff\x0f\xfa\x01\xa5\x78\xb6\x77\x50\xbc\x9f\xa1\x6d\x5a\x14\x52\x67\xfd\xd8\x2f\x8f\xdf\x36\xb3\x87\xf6\xf7\x28\x44\xab\xfe\x88\x0b\x91\xcb\x34\x58\xf4\x7d\x5f\x4e\x7a\x34\xec\x20\x0e\x91\x98\xa3\x7a\x29\xde\x8d\x8d\xe1\x1a\xb8\x46\x0b\xb0\x18\x91\x71\x7f\xe3\xed\xbd\x68\x9b\x62\x78\x86\xfa\xa9\x50\xe3\x29\xa5\x19\x4d\xa0\x03\xb1\x75\xd5\x2d\xae\x3d\x89\x30\xe5\xe1\xe0\xe5\x1d\x6b\xb2\x26\x5e\x98\x70\x83\x05\x2b\xe5\x0b\x62\xc6\x1a\x0b\xe8\x36\x1e\xa9\x89\xc7\x3d\xa1\x3a\x9f\x7f\xf6\xc6\x6b\x5e\x7e\xe5\xf5\x37\x87\x48\x49\xda\xe5\xa8\x31\x35\xef\x00\x6e\xd4\x8e\x35\x21\x2c\xe2\x6d\xd1\x50\x7a\x39\xfd\xe2\x59\x36\xf8\x9c\x84\xc4\x1c\xa9\x3c\xbf\x41\x0e\xa5\x0b\x43\x4d\x44\x72\x46\x37\x40\x24\x0f\xd9\xb0\x64\xc2\x29\x2c\xb9\x77\x4b\x08\x78\x91\x6a\x79\x6f\x8a\x61\x6d\xc2\xd0\x63\xd5\x84\x26\x94\x04\x56\xf9\x15\xf2\x8a\xd7\xf0\x80\x95\xa6\x8f\x45\xde\xd8\x98\xa3\xe7\xa2\x60\xb6\x2c\xdd\xb8\xf7\xb3\xea\x52\xa6\x8f\x45\xde\xa9\x11\x69\x42\xb5\xf4\x78\xcb\xcf\x7c\xae\xe1\x48\xbd\xe1\x83\x33\x2f\x42\x60\xb5\x68\x7c\xc8\xbb\x34\xcb\x36\xe5\xf7\xd4\xd2\xed\x76\x71\x30\xf6\x9f\x1e\xc8\x22\xfc\xcf\x0d\xe2\xe2\x2b\xa0\x85\x26\x21\xf1\x03\xbb\x82\xfc\x58\x3b\x59\xad\xc1\x5d\x84\xbe\x46\x62\x3b\x13\x18\x68\x81\x8f\x88\xdd\x0b\xdc\xc3\xc4\xca\x50\x3d\xce\xd7\x87\x99\xb3\xfb\x48\xe2\x81\xea\xa4\x8f\x97\xf0\xfa\xe7\xf4\xe8\x4a\x7c\x8d\x9c\x73\x8f\xfc\xbf\x50\xd5\x57\x83\x95\xfe\xe7\x25\x97\x3d\xbb\x89\x24\x11\x40\x5f\xe3\x6b\xcb\xe5\x2b\x7f\xb6\xe9\xd7\x09\x7f\x43\x93\x04\x12\xa4\xe5\x59\x3f\xfd\x9c\x3d\xac\x97\xc7\xcd\x6e\x89\x06\xf9\xb7\xa7\xd9\xe1\xc7\x6e\x35\xdc\x3e\x09\x67\x22\x0e\x5d\xc4\xc8\x5a\x6f\x8a\xb8\xab\xf3\xc8\x90\xb5\xa2\x89\x6c\x03\x1d\xcd\x60\x9e\x5f\xd7\xcb\x3e\x08\x48\x13\x1e\x27\xbe\x70\x5c\xa3\xf8\x04\x6e\xd6\x4d\x5a\x2b\x84\x83\x49\xa1\xdb\xa2\xc6\x3b\x80\x6a\x96\x2b\x53\xe2\xf1\xcf\xc7\xc9\xe8\x92\x26\x5c\x0b\x34\x71\x90\x3f\x15\x83\xec\xee\x46\x85\xaf\x8c\x16\x55\x31\x2f\x8a\xac\xfd\x55\x48\x84\x5a\xec\x2f\x52\x42\x55\x59\x48\xcd\x40\x2d\xfe\x4b\x57\x4c\x13\x49\x5b\x2c\xc3\xfe\xcc\xdf\xf3\xcf\x50\x0f\x4d\x4f\xe1\xa2\xf0\x36\x0e\x80\xb3\xfe\xab\x99\x25\x6d\x0e\xf7\x94\x66\xaf\x73\x17\xf7\x1e\x0d\x12\x45\x63\x93\x53\xc7\x55\xae\xc5\x48\x20\x93\x32\x1d\xcd\x3d\x15\x85\x68\xaf\x08\x23\x46\xd8\xa3\xba\xd2\x04\x3c\xe5\xd9\x2d\xac\x59\x94\x9a\x6d\x67\x71\xa9\xea\x42\xa5\x3c\x1f\x5d\x12\x02\xda\x05\x20\x9c\x00\xc5\x5d\xd1\xb2\xcf\x38\xd5\xf9\xd1\xd5\x81\x1b\xb5\x4c\x21\xa7\x77\x03\x02\xc2\x28\x54\x9c\x2d\x15\xe3\xba\x79\x9b\xcf\xbd\xfd\x87\x80\xf6\xe3\xb0\xe3\xcf\x3c\x14\x96\x6e\x78\xb8\x3d\xdb\xce\x3a\xf0\xb1\x7a\x6b\x7f\x79\x6c\xa1\x19\x9a\xe8\xc4\x40\x01\x6d\x41\xc0\x9f\x25\x8c\xea\x4c\x35\xd1\x3c\xc2\xd7\x54\xd5\x25\xf0\x53\x5a\x5f\xdd\x83\x0d\xf0\x4a\xda\xf7\x34\xb5\xc8\xe4\xeb\xea\xa3\x59\xfa\x3e\x11\xae\xd5\x3e\x49\x24\xd8\x97\xbb\xcd\xf8\xb5\x6f\x02\x8e\x7a\xfa\x54\x63\x50\x11\x6b\xe9\xf4\x65\x1a\xd0\x33\xd8\xae\x7d\x3f\x10\xdc\x2e\x98\x8f\x50\x73\x2c\x98\x28\x87\x7b\x85\xef\x33\xc3\x30\xc8\x95\xda\xd7\x17\xd5\x63\xfa\x1d\xfe\x35\x18\x7f\xbe\x2f\x24\xb2\x7d\x74\xda\x0c\xf6\x0d\xdc\x90\x92\x6a\x9f\xfa\x3a\x8a\x46\x5c\xad\xbb\xa2\xf8\x74\x1e\xb9\xc3\x62\xcf\x99\x46\xcd\x62\x30\x42\x43\xba\x4e\x52\x42\x4b\x8b\x3c\x87\xba\x9a\x30\xb2\x7c\x0a\x0c\xf7\x0d\x05\x3a\xcd\xc1\xd2\xd1\x4f\x6f\xc5\xa3\x7b\x08\x88\x89\x14\xe6\xf0\xde\xb2\x80\x0e\xde\x5e\xe0\x4b\xc4\xe8\xa0\x0b\xd4\xaf\x38\x1e\xde\x41\xc0\x00\x53\xb2\x03\xad\x2a\xd7\x16\x07\x5e\x62\xc2\x16\x2d\x21\x9c\xf6\x03\x08\x10\x74\x9c\x5f\x4e\xe6\x86\xab\xd9\x1b\x4f\x33\x2c\xf6\x87\xc6\x43\x45\xfa\x89\xc9\xdd\xc1\x67\x4c\x38\xf4\xe5\xe2\x85\x37\xc3\x13\x4a\x34\x56\xfa\xb5\xa7\xda\x67\x61\x98\x58\xd3\xf0\x2e\xcd\x60\xb2\x10\x4d\xfb\x2c\x32\x32\xfb\xcf\x50\xff\xc4\x4a\x63\x5b\x44\x31\x30\x0b\x7c\xc6\x29\x02\x63\xb6\x3f\xe6\x0f\xeb\x05\xf2\xc9\xee\x0f\xb3\xdd\xe1\xb0\x7e\x5c\xed\x0f\xb3\xc7\x6d\xdb\x51\x85\xc8\x65\x83\x9c\x50\x1d\xdb\xae\xf6\x19\x48\x8c\x1e\xb4\xda\x73\x77\x70\xeb\xe9\x8c\x9e\x13\x24\xa8\x81\xbd\xd2\x27\x1c\xd3\x7e\x08\x1a\xdf\x83\xb8\x5c\x67\xea\x2b\x8f\xc1\x8f\x48\x84\x31\x90\x1f\x4f\x77\xbb\xd5\xea\xdf\xab\x1e\xbf\xb7\xf6\xa3\xd8\x84\xef\x94\x01\xc0\xac\x3e\xd2\x7a\x18\x75\x1f\xc6\x93\x3e\xff\xcd\x9d\x4f\x82\x93\x95\xda\x67\xc5\x33\xcf\xed\x76\x38\xba\x25\x05\x58\x80\x3d\xbf\xd6\xb0\x32\xfa\x86\x4e\xb6\x52\xfb\xb1\x4f\x70\x5c\x66\xc5\x7b\x3f\xc0\x37\xeb\x0b\x2d\xb8\xae\x01\x4b\x4c\x10\x4a\x17\xc7\x43\x07\x9b\x6b\x4f\xc5\x35\x9e\xea\x85\xe7\x2a\x83\x39\x8c\x67\x6f\x2c\x03\xf4\xbf\x67\xeb\xdd\x72\xb7\xd9\x1e\x91\x29\x12\x45\x96\x16\x6d\xe4\x59\xfb\x49\x24\xfc\xd6\x68\xae\xbe\xa5\x6f\x9f\x70\xa2\x69\x3f\x89\x13\xc4\xea\x22\x65\x11\x4a\x8e\x54\x43\xbb\xc2\x4f\x92\xd0\xd5\x2b\xda\x1d\x64\x7e\x5d\x55\xb2\x2c\xde\x47\x34\x63\xda\xe7\x3a\x46\x76\x93\x8c\x57\xf5\xc2\x01\xb9\xfa\x14\x02\xda\x17\x1e\x04\xa4\xab\x2c\xec\xa4\x42\xb5\x2f\x20\x21\xda\x86\x57\xed\x4f\xd2\x0a\x74\x1b\x74\xa7\x9a\x5f\xf7\x85\xae\xdf\x79\x39\x90\xad\xd7\xbe\x54\x89\xd1\xaa\xba\xa8\xd4\xa8\xdc\x95\x2e\xa8\xe7\xab\x88\x0b\xd6\xcf\x95\xa7\x45\x6e\xf9\x19\x5c\x17\x00\x21\xa9\xd1\x99\xdf\xf7\xeb\x63\x6c\x3b\x25\xb1\x42\x05\xe5\xff\x3f\x8c\xcb\xf0\x85\x53\x22\x25\x06\x91\xb5\x29\xb1\xea\x03\x80\x26\xf3\x96\xb1\x3b\x0e\x28\x16\xf1\x9c\xd2\xdc\x94\xa6\xb7\xc0\x50\x4d\x7d\x69\x88\xa7\xe0\x94\xd6\x77\x97\x7e\x05\xc8\x5f\xdc\x8c\xaf\xc0\x33\xb6\x1b\xe2\xbe\x8e\x67\x0c\x0c\x1e\x5f\x8a\x4e\x89\x40\x53\x1a\xf8\x31\xef\x80\x1f\x45\x86\x1b\x8c\x5d\x06\x77\xf0\xbf\x4b\x5a\x82\xba\xe3\xe9\x28\x15\xa3\x29\xe5\x1e\x82\x6e\x78\x69\x62\x8d\xf6\xe7\x20\xe4\xe8\xb3\x34\x77\xfb\x65\xaa\x56\xd3\x20\x16\x41\xe8\x34\xd8\x5b\x06\xc3\x4d\xde\xe3\x8c\xb6\x3d\x43\xc6\x90\x80\xde\xd0\x9a\xf4\xe6\xcd\xe8\x8c\xa1\x16\x4a\xb6\x26\xd1\x23\xff\xb0\x2a\x72\xbf\x20\xfd\xf4\x08\x40\xbc\xc9\x8b\x29\x6d\xeb\xf9\x9f\x34\x0a\x08\x8e\xad\xc6\x4c\x18\x93\x6c\x7d\xfd\xe2\x23\x50\x28\xfa\xd8\xd5\x39\x94\x29\xbc\x8d\x7c\x63\x1a\xd3\xa4\xb5\xdf\x4c\x9e\xa2\x1f\x90\x71\x2e\x10\x4d\x24\x47\x94\x1f\xd6\xf5\x0c\x26\x2f\x15\x44\x23\xe4\xd6\x68\x8d\x8e\x77\xd9\xa1\x50\x96\x3b\x24\x4e\xb0\x22\xea\x74\xad\x91\xaf\xb1\x87\xf1\x71\x3d\x44\x62\x45\x32\xe5\xeb\xb2\x78\xcf\x2d\x1d\x89\x6d\x55\x1e\xc3\x8a\x22\x84\x11\x0d\xce\xac\x48\x40\x8c\x5a\x6a\xbd\x29\xd3\xe7\x34\xc7\x40\xe9\x17\x9a\x05\x7f\xe7\xaf\x89\xf4\x56\x73\x25\xe9\x5b\xac\xd2\xc3\xf9\x91\x7f\x18\x35\x9e\xd1\xdb\x55\xd4\xf3\xe8\x44\xbd\x9a\x71\x21\xbf\xb4\x86\xa8\x62\x86\x8f\x1d\x23\xd5\xc0\xcb\x7e\x22\xdd\x75\x01\x15\xdb\x9d\x1a\x21\x6d\x96\xa4\x74\xb0\x27\x52\xa5\x3d\x1e\x3b\x1e\x02\xc7\x88\x93\x9e\xc6\x94\x68\x9a\x6a\x5f\x8a\xae\xd6\xf7\x0e\xc0\xe5\xc5\x47\xd6\x06\x6d\x8c\x69\x4c\x52\x35\xd3\x73\xc9\xd3\xec\xea\x48\xb2\xa7\x9f\x44\xb3\x08\xa7\x58\xfb\x16\x0c\x7e\x7e\x7c\x56\x49\x90\x06\xce\xc4\xc5\xcd\xd7\x9b\x5f\x3b\x2b\xa6\x77\x3e\x45\x9c\x32\x22\xf1\x0c\xd6\x7d\x20\x1a\xaf\xa9\x06\x85\x5b\x60\x6d\xb0\x0b\xa6\x20\xd6\xbe\x90\xc0\xf3\x8d\x3e\xc5\xfe\x7e\xb6\x5b\xdd\x6f\x1e\x96\xab\xdd\xfe\x88\xff\xe1\x7a\xf8\x9e\x07\x96\x72\xd8\x8e\xcb\x8d\xc6\x20\xe4\x90\xfa\x73\x70\xff\x81\x1f\x28\x6e\xb4\x18\x2f\x79\x9d\x42\x75\xec\x53\x67\xe8\x80\xc6\x9c\x58\x87\xe6\x2d\x55\xd0\x2b\x68\xbb\x03\x50\x62\xac\x1d\x31\x72\xff\x02\x1a\x2b\x84\xa9\xd8\x5a\x3c\x03\x5c\xf8\x6d\x62\x15\x0f\x82\xc8\x47\x2c\x0d\x1a\xc8\x66\xc9\xb8\xc5\x5f\xeb\x80\xf9\xbe\xf0\xba\x84\x56\x96\xa5\xcf\x90\xa3\x5e\xf6\x28\x9b\xd9\x74\x15\x89\x41\x29\xed\xeb\xa2\x3c\xcd\xd3\x52\x8d\xf2\x31\x01\x0b\x62\xcc\x2c\x76\xd5\xd2\x2a\xad\x7f\x1b\x59\x44\x6d\x58\x3d\x60\x51\x94\x68\x9b\x97\xb2\xfc\x0f\x69\xfd\x92\xe6\x7d\xdd\xdf\x7f\x8c\x6e\x42\x52\xe4\x51\x70\x7a\xb8\x7b\x54\x9a\x99\xb6\xbe\x83\x30\x94\x58\x34\x60\xf4\x85\x0e\xf1\xea\x77\x34\x62\x8e\xfb\x1f\xdb\xed\xc3\x1f\xee\xa6\x63\x9f\x60\x80\xd5\x82\x74\x52\xdd\x85\x42\xff\x3a\xa5\xaf\x83\x18\x4c\x01\xc6\x33\xd4\x47\x9e\x65\xcd\xce\x76\x1a\x0b\x85\xea\x20\x09\x24\xef\xe8\x64\xc6\xd4\x19\x97\x21\x1a\xd1\x1d\xc3\x18\xb1\xc5\x9b\x4e\xc5\xed\x0b\x6c\xb8\x0e\x78\x98\xe0\xfe\x71\x30\x2a\x51\xaf\xbd\x0d\x24\x10\xd4\x43\x6b\xbe\x59\xb9\x1f\x31\x57\xd8\xa3\x66\xd1\x81\x88\x13\x8f\xbb\x72\xc4\x43\xd8\x12\xbb\xb6\x03\x4f\xaa\x90\xd9\x71\x32\xcb\xb2\x03\x64\x59\x8b\x5f\xd3\x81\xf2\x0c\xdd\xad\xf5\xc1\xff\x75\xe1\x59\xcb\x24\x35\xbf\x0e\x1c\x86\x40\x35\x03\xd3\x89\x92\x23\x63\xab\x6a\x53\x92\x81\xd2\x01\x6a\x2e\xf2\x4f\x12\x1e\x93\x5b\x5c\x00\x44\x60\x4a\x41\x1b\x07\x65\x8f\xe8\x0e\xc7\x66\x3f\xe9\xdc\x34\x4e\x96\xe1\x8a\xab\x8b\xf3\xa0\x4e\x55\x07\x20\x8d\x6c\xdc\xf6\x22\x26\x12\x3c\x01\x68\xe2\x13\x87\xec\xc7\x0c\x03\x66\xed\x56\x6d\xc6\x5c\xa3\xe3\xa9\x31\xca\x90\x2b\x7e\xbd\xc3\x3f\xfb\xa6\x69\xa0\x39\xe3\x9d\x88\xf5\xce\x72\x95\x0c\x67\x26\xf3\x88\xc6\x9d\xc5\x46\x25\x2e\xf5\x6d\xcd\xc1\xe8\x80\x40\x45\xfe\xc0\x7c\x5e\xe7\xdb\xcc\x55\xed\x68\x46\x48\x5b\x28\xb6\x84\x37\xc8\x8a\xf3\x2d\x5d\xb8\xeb\x2a\xb4\xb3\x86\xe6\xa9\x5a\xab\xae\xf6\x55\x33\x5f\xf8\xc2\xf2\x99\xa3\x84\xd8\xe5\xbc\xd6\x8b\xc3\x72\x74\xf7\xbe\x94\xda\x68\xcc\xe7\x80\xc4\xb8\xe5\xd5\x45\x08\x19\x25\x7e\x68\x82\x24\x97\xca\x80\xe2\xba\x35\x81\xd1\x98\x1b\x22\x6b\x9e\xe6\x9f\x70\xf4\x68\x46\x21\x46\x50\x49\x75\xe2\x65\xdd\x38\xe8\x50\xd6\x37\x4c\x0b\x83\x80\xf7\xdf\x1a\x49\xac\x19\x82\xb1\xab\x5a\xaa\xe5\x8b\x2b\xf3\x1b\x0c\x1e\xc6\x68\x82\xf1\xb5\x3d\xf4\xc0\xc4\xdd\x49\x58\x28\x7c\x8c\x38\xe6\x12\x8a\x0b\xda\xf7\xdb\xd6\xc6\x65\x2c\x36\xc5\x19\x46\xd4\x75\x7c\xa8\xf6\x13\xdf\xd8\xff\x6f\x50\x36\x2b\x72\x71\x5f\x67\xf2\xb3\x22\xe9\x9b\xbf\x87\xf7\x19\x51\x89\xc1\x33\x07\xa7\xdc\xc1\x1b\xe4\x8e\x2c\x4c\xb3\x28\x0c\x88\xb5\x2c\xee\x8b\x31\xa4\x57\xb3\x38\xf2\x02\x84\x75\x39\xa6\x0d\xcd\x62\xc5\x64\xd2\x33\x92\x7f\xec\x97\x1d\x41\x89\x66\x49\x48\x31\xb2\xdd\x56\xd6\xfc\x51\x5c\x4a\xdc\x49\x56\x6f\xe3\x79\xc4\x78\x00\x22\xe9\x51\xe2\x0e\x2a\xf0\x47\xc3\x91\xeb\x88\x26\x6e\x38\x96\xf5\xcb\x0d\x5d\x84\x66\x82\x52\x14\xc2\x53\xbc\x86\x55\xae\xd6\xb2\x70\x77\x25\x12\x8d\x9f\xe3\x5c\xbc\x43\xe9\x4f\xfa\x50\xad\xac\x95\x3b\x84\x87\x58\x39\x6c\xd1\xb4\x1b\x37\x71\x99\x0c\x8d\x17\x83\xe0\xc1\x4d\x3e\xbe\x09\xe5\x85\xd2\x1f\x28\x7b\xc2\x60\x80\x8c\x46\x9b\xb2\x72\x50\xf2\x85\xa7\x43\xae\x66\xcd\x20\xb4\x50\xd8\x56\x24\x56\x8d\x9d\x37\xdb\x53\x33\x93\x68\xb3\xab\xdf\xd8\x9e\x63\x5a\x72\xac\xe7\x1c\x17\x1d\x35\x2d\x02\x8d\x7e\x7e\xa9\x5f\x0a\x2c\x53\xee\x6f\x6c\xa1\x17\x32\xb0\x4b\xfe\xd1\x12\x3a\x1c\x79\x29\xd2\xba\x3a\x62\x8a\x79\x78\x1f\xa1\xc7\x01\x4b\x7a\x1d\x80\xc8\xe2\x57\xa6\xa9\x39\x74\xe8\x69\x13\x31\x3e\x59\xd9\x72\xa8\xaa\x99\x52\x13\x26\x4a\x48\x3c\x88\x02\xa7\x80\x2d\x33\x5e\xf6\x41\x22\x21\x89\x44\x8c\xc9\xb3\xfc\xd3\x34\x82\xeb\xa9\x04\x92\x87\xfd\x5c\x7d\x9b\xed\xdb\xc3\xb5\xc6\x12\xb5\xd7\xab\x80\xf2\x09\xea\xf7\xa2\x7c\x1d\x59\x35\xa1\x1f\x44\xda\xc9\x81\xbf\xa4\xa5\x0b\xbe\x8d\x50\xad\xb6\x73\xc0\x12\x0c\xae\x65\xbc\xc2\x44\x73\xfe\xdc\x87\x94\x84\x41\x6c\x24\x42\xac\xb2\x07\x86\xd3\xaf\xe3\x53\x70\x8e\x81\x41\x6e\x39\xac\x1f\xfa\xc7\x0b\x5f\x40\x2b\x21\x36\x7a\x42\x46\x35\x1e\x78\xac\x6c\xc4\xa0\x57\x1c\xee\xba\x30\x1e\x76\x24\xa9\x18\x9b\x68\x17\x8f\x76\x11\x0e\x99\x94\x48\x0a\x04\xf5\xcb\xa1\x18\xd1\xf2\xf7\xba\x45\x24\xc4\x12\xa7\x76\x90\x3a\xc1\xbd\xb2\xe4\x63\xe2\x25\x1d\x46\x01\xb1\xf4\xf4\x6a\x5e\x14\xaf\x68\xb9\x59\xfe\x07\x32\x9a\xf1\x61\x14\x24\x71\x47\x79\xf0\x63\x0f\xff\x33\x1e\x80\x6b\x66\x81\x32\xca\xfa\xf9\x40\xbb\x4b\x87\x91\x50\x18\xb3\xcb\x11\x47\x3a\xe6\x5d\xd0\x61\xa4\x01\xb1\x5e\x0f\x9b\x6f\x47\x1c\x6c\xf6\x96\xbf\x62\xae\xd6\x61\xa2\x14\x35\xb8\x66\x64\xc9\x77\x9c\x2f\xa3\xef\xc6\x83\x76\x41\xdd\xf1\x5c\x15\xa7\xf8\x86\xb7\xab\xe9\x64\x92\x58\x0b\x5e\xf3\xac\x78\x76\xe4\x48\xae\x55\x1a\xc9\xef\x67\xa8\x1f\x40\x3d\x43\x69\xc2\xda\x83\x79\xc9\x95\x0e\x62\xc7\x4b\x72\x45\xc3\x60\xb8\xf3\xd9\x7e\x82\x18\x04\xeb\xdb\x05\xb6\xfc\xba\x3a\xdc\x2f\x31\x9c\x34\x98\x3d\x22\x88\x90\xc1\x16\x87\x13\xc6\x07\x5b\xf5\x31\x1d\x4a\x4a\x23\xa3\x94\x5e\xbc\x23\x85\xe1\xf1\x9e\x67\xed\x48\x92\xa1\xa1\x77\x3d\x00\x3f\xf5\xca\x14\x26\x9d\xe5\xfe\xa0\x91\x71\x84\xbb\x84\x09\x13\xf7\xcc\xa2\x50\x8a\x80\x6a\x37\xee\x7b\x2f\x45\x4a\x23\x95\x65\x10\xea\x53\xbe\x60\xa8\xbc\x00\xbb\x98\x69\xb5\x07\x50\x0b\xc3\x2c\x90\x3a\xe5\xa5\x78\x58\xb6\xf1\xf7\x0c\x82\x50\x11\x23\x26\xfe\x70\x79\xbb\xd1\xf0\xd2\xa1\xf2\x3d\xde\x32\x61\x36\x5e\xf0\x5d\xf1\x35\x5c\x2f\x54\x94\x83\x11\x33\xd6\x97\x5c\x75\xd0\x85\x50\x25\x11\x36\x3c\xf2\x57\xf8\x8a\xe5\x64\xd2\x13\x19\x0c\x30\x95\x00\xc6\x3e\x8e\x15\xd4\x35\x56\x46\xef\xa0\xea\xe5\x1d\x42\x25\x35\xae\xa7\xdb\xa2\x5d\x05\x15\xc4\x94\x38\x6a\xec\xe2\x74\xce\xe0\x63\x51\x9c\xc4\x68\xb0\x68\x29\x9d\x55\x68\x6d\xe6\x9e\x5d\x18\x79\x94\x21\x46\x6a\x89\xd2\x10\x28\x9d\x80\x16\xb8\x7b\xc4\x88\x50\x1f\xcd\x26\xfc\xe6\x4b\x38\x15\x5f\x19\x6c\xee\x98\xc0\xb0\x08\x3a\x13\x66\x96\xdd\xc8\xa6\xb8\xf5\x25\x22\xa0\x71\x27\x38\xf3\xc6\x98\x19\x98\x42\x91\x0f\x44\x5a\x4c\xef\xe2\x85\x9f\x86\x84\x42\x3a\xa2\xc4\x8b\xa3\x56\x4a\xe7\x46\x43\x5f\x47\x34\x48\x42\x1b\x0a\x98\xcf\x97\x13\x56\x5f\x44\x93\x5e\xec\xf2\x74\x6a\x29\xe1\xe8\xf0\x81\x68\xa2\xb5\xad\x77\xbe\x2f\x2e\x55\x9f\xc0\x59\x47\x54\x44\xba\x05\x78\xe4\x69\x7d\xbd\x4b\x73\x9e\xcb\x94\x67\x56\x7c\xaf\xed\x17\xa3\x5f\xbb\x3f\xcc\xbe\xaf\x8e\x06\x5c\xf8\xb8\x7e\x3a\x1e\xee\x77\xab\xfd\xfd\xe6\x61\xd9\x76\xd4\x04\x77\xae\x8e\x12\x6f\x36\x1c\x9d\xa3\x67\xd0\x11\xb1\xae\xec\xe6\x3d\x3b\xa1\x5c\xc6\x0e\xfe\xe7\xce\x16\x44\x01\xf2\xde\x22\x5a\xb0\x8f\xf6\x1f\xbd\x8a\x80\x4b\x94\x27\x13\x97\xeb\xea\xf9\xb9\xfd\xfe\x81\x0a\x90\xdd\x55\xd7\x20\x5f\xd2\x3f\xdd\xcf\x8c\x19\x22\x13\xed\x9e\xd5\xc9\x19\xb8\x76\xae\xb1\x76\xc2\x8a\x66\x9a\x35\x0a\xa9\xcf\x5b\xc7\xc9\xf5\x94\x01\x6e\x30\x38\xda\x31\x5b\xd3\x81\x39\x86\x77\xc8\x20\xa1\x5e\x8b\x1b\x5d\x3f\x1d\x56\xbb\x9f\x2d\x74\x29\x0a\xb9\x87\x79\x4b\xae\x94\x61\xd9\x2d\xca\x43\x31\xcd\xb3\xae\xa3\x66\x3d\xeb\xf4\x12\xf7\xe7\xa2\xac\x0d\x58\xe0\xd3\x62\xb1\xe6\x18\x81\x9e\x58\x33\xdd\xbe\x35\x36\x2d\x32\xcd\xe3\xba\xb6\xd9\xcc\xdd\x6d\x44\xbe\x41\xed\xda\x40\xdc\x25\xbf\xa1\xfd\x73\x1d\x93\x08\x89\x01\x97\xe9\xa9\x27\x07\xa7\xa3\x48\x03\x38\xa1\xf9\xc2\x68\x0d\x20\x68\x19\xaa\x1a\xcd\xf6\xe1\x14\x49\x02\x0f\x83\x31\x0f\xc5\xf3\xfc\xf2\x49\x0c\x2f\xe2\xd2\x60\xa4\xea\xa2\x79\x19\x86\x38\xb3\x28\x07\x21\xae\x88\x83\x82\xc4\x66\x57\xcc\xd3\x4f\x9f\x4b\x70\xc0\xf5\x00\x01\x86\x48\x36\x3f\x68\x96\x2a\x8c\x5b\x9a\xed\xe6\xb5\x3a\xd6\x6f\x1b\x2c\x1b\x0d\x3a\x15\x24\x0e\x32\xff\x73\xbd\x1d\xbd\x21\xc5\xcc\x2d\x59\x79\xcc\xdd\x62\xda\x22\x8f\x54\x1c\x61\x29\xcb\xb6\x48\xab\x3e\xb1\x8d\x8e\x14\x57\x21\xef\xc9\x14\x7d\x95\x55\x8c\x20\xf2\x62\xcb\x63\x9c\xa7\xff\x1b\x9c\x07\x04\x73\x9c\x52\xf7\xc5\xfb\xe3\x45\xbe\xfc\xc8\xeb\x34\xb3\x6c\x76\xc7\xd1\x43\x69\x69\x24\x12\x17\x0f\xeb\xd5\xd3\xe1\x78\x58\x3f\xae\x8e\x87\xcd\x71\xb9\x5a\xac\x97\x2e\x4c\x19\x7b\xc4\xc7\x7d\xde\xc0\x62\xb8\x68\xeb\xad\xc6\xc0\x90\xd8\xa3\x8c\xd8\x05\x7c\x53\x1a\xd0\xa6\xe3\x17\x73\x7f\xdf\x01\xfc\x4a\x73\xd5\xe2\x3c\x63\x42\x18\x12\x55\xd5\x03\x0e\xd5\xc1\x6d\xc6\x24\x32\x92\x49\xf5\x3a\xaf\xea\xde\xb2\x19\x13\x91\xb8\xca\x25\xcb\x39\x3f\x3d\xae\x62\x3f\x01\xb0\x36\xcd\x8d\x8b\xe6\xba\x68\x8d\xf9\xbc\xb4\xb2\x95\x3d\x23\x7e\x17\x1d\x53\x6d\x32\xa7\x75\x7a\x02\x4b\xab\x3f\x7c\xfe\xc0\x8b\xd0\xf8\x55\x70\xe2\xb9\x3a\x94\xe9\x88\xb9\xb2\xe9\x21\x1d\x24\xe9\x31\x7d\x2e\x91\x1d\x62\x32\xd7\x1e\x07\xc4\x30\x22\x1d\x79\x8f\xe3\x6b\xfa\xe1\x18\x51\x18\xa8\x9e\xa7\x39\x5c\xca\xbe\x6a\xa2\x8e\x59\x14\x62\x50\xb5\x59\x53\x6d\x44\xde\x24\x39\xda\x52\x24\x1d\x87\xd4\xa8\x2d\x5c\x5a\xb1\x11\x1d\x87\xb1\xc0\xd0\x36\xb2\xbe\xef\xd3\x5c\x82\xef\xb5\x6d\x42\x21\x25\xc2\xfc\x72\x6d\x96\xc9\xbb\x22\xcb\x1a\xdf\x77\xf4\x00\x91\xdd\x89\x50\xb0\xd8\x45\xee\x6d\x5b\x4c\x23\x9c\x7b\x8b\x66\x3f\x44\xb8\xdf\x46\x77\xe4\x4b\x83\x75\x23\x8e\xad\xaf\x60\x54\x3e\x66\x59\xb6\x2d\xb2\x0c\xb7\xb5\x51\xdc\x24\x4e\x98\x47\x49\xaf\xf6\xec\x53\xe4\x78\x1b\x02\x8d\x93\xd0\x60\xb4\x4a\xa3\x25\x35\xfa\x5a\x22\x31\x1f\xfc\x19\x0c\x3b\x45\x4f\xd0\x5f\xc7\xd2\xe7\xb8\x21\x8b\xc6\xfd\xf2\xfc\x76\x40\xab\xc0\x33\xe1\x5e\xd4\xd4\xeb\x1c\xa4\xe1\xbd\x2a\x4e\x70\x0f\x33\x76\xdd\x90\x96\xf8\xa6\xe0\x69\x78\x57\x4a\x05\x2e\x96\xba\x39\xa7\xf9\x0d\xea\x29\x06\xdf\xf0\x19\x3f\xa4\xf9\xeb\x60\x30\x40\xe8\x23\x72\xfa\x5b\x09\xd0\xf1\x44\xdb\x46\x2d\x18\xaa\x37\x41\x29\x7d\x9f\x7e\xe6\x5d\x7f\x72\x4f\x5a\xc6\x60\x0b\x39\x9f\x0a\x03\xcd\x32\x25\x07\xdf\xe1\xfa\xfb\x27\x13\x4e\x43\x88\xe4\x57\x8d\x55\xb1\x3a\xfe\xb1\x9a\xed\x8e\xdf\x57\xab\x6d\xab\x0c\xad\x63\xad\x95\x2b\x57\x3d\xda\xac\xb7\x8b\x10\x9c\xc6\xc6\x72\xe2\x79\x46\x72\x34\x87\x8f\x1a\x49\xd1\xb6\x45\x91\xb9\x0c\x86\xed\x43\x7d\x85\xcf\x78\x74\x72\xad\x86\xa9\xa2\xfe\x7b\xba\xab\x3a\xa1\x2c\x41\x88\xa6\xec\x88\x41\x5d\x4b\x92\x30\x65\x09\x56\x9e\x8a\xba\x2d\xb4\xd7\x09\x15\x89\x5b\x7a\x1a\xc3\xed\xd2\xd8\x5d\x37\x3a\xdb\x3a\x09\x98\x19\x4e\x3d\xf2\x94\x21\x11\xcc\xf0\x4e\x18\x4b\x0c\xc9\xac\x91\xe5\x46\x1c\xea\x8f\x73\x57\x27\xed\xba\xc5\x24\x30\x5a\x53\xf9\xf3\x03\xb4\xb6\x52\xc2\xb8\x17\x58\x01\xb9\xcf\x72\xf6\xae\xa7\x52\xb8\xc9\x57\x2f\xc5\x79\x5f\x17\xa5\x8d\x38\xb9\x56\x48\x9c\xa4\x0f\x42\x40\x96\x65\x71\xae\xc6\xfb\x42\x12\x12\x8e\xcc\xb5\xbb\xd9\x61\x75\x3c\xac\x57\x3b\xea\x8e\x0f\x7d\x11\xf9\x3d\xae\xce\xcf\x61\x6a\x49\x18\x7a\xa0\x2c\x45\xce\xa1\x40\x6e\x6e\xd7\x12\xc7\x88\x7b\xd9\xf2\x8b\xdd\x55\x47\x11\x96\x24\xe4\xc2\xca\x55\x98\xec\xf4\x8f\x66\xbf\xef\x18\x53\x75\x12\x0a\x23\x55\x6e\xac\xac\x27\x78\x9f\xd2\xbc\x6a\xba\x49\xcf\x6c\x85\x46\xd9\xaf\x8f\x4d\x20\xe1\x3f\x86\xff\xe9\x8e\x91\x4a\xa9\x7e\xd4\x72\x5b\xc2\x2d\x9b\xb6\x4e\x42\x05\xd2\x24\xab\x70\x5f\x30\x8e\xfb\x92\xd7\x9c\x8c\xa3\x96\x7f\x59\x05\xf3\xf7\x06\x73\x08\x1e\x46\x3d\xdf\x0d\x95\xbe\x71\x01\xda\x11\x12\xea\x00\x47\x4e\x9d\x42\x49\x1e\x1c\xc9\x4f\xf3\xbb\x29\x1c\x41\x3a\x38\x95\xd6\x33\x24\xe4\xc1\x18\x94\xad\x04\x9e\xbe\x5a\xd4\xfc\x9f\x43\xd4\x0c\x69\x44\x75\x12\x27\x89\xc1\xad\x5c\xeb\x97\x22\xef\xd9\x98\xcd\xac\xf2\x6c\xc4\x7c\x0b\xc5\xb9\x3b\x24\x69\xac\x68\xcb\x11\x06\xe5\x12\x6e\xfc\x36\xd7\x8f\x27\x8e\xde\x64\x5e\x94\x65\xf1\x6e\xf9\x02\xe7\xd7\x8d\xf8\xaf\xcd\x42\x39\xc4\x70\x92\x88\xc8\x94\xce\x98\xaa\xe0\xae\xf4\xba\x69\x8a\x7d\xcb\xd6\x3a\xbf\x94\xb9\x55\x33\xfb\xd2\x1b\x4f\x44\x24\x64\xec\x2a\x66\x4c\x98\xab\x97\x33\x4b\x84\x36\x61\x60\xd3\xfc\x71\x07\x30\x5a\xae\x84\x56\x68\x2e\x6e\x7e\xae\xf7\xf3\xcd\xe6\xfb\x6a\x69\x9c\x31\x03\x95\x72\xbd\x24\xf3\x99\xc1\x6f\x16\xe5\x30\xc4\x9a\x48\x26\xb0\x98\xdc\x06\x9a\x8f\xe7\xe1\xf9\x55\x10\xa3\x5d\x75\x3f\x7b\xb8\x43\xe3\xaf\x6d\x88\x8c\x94\x4f\x63\x3a\x1b\x6f\xc3\x35\x00\x41\xee\xdc\xa3\x99\x85\xfd\x64\xa1\xed\x01\xdc\x78\xc2\x3a\x4b\x9f\x5f\xea\x65\x91\x0f\x84\x29\x74\x02\x02\x3c\x1b\xd3\x58\x16\xc6\xff\xef\xaf\x28\xdc\xa3\x91\x0c\x7a\x94\x00\x8f\x69\x5e\x37\x6f\xa6\x2c\xce\x5f\x23\x19\xb8\x17\x51\x24\x1a\xe0\x4a\x61\xf0\x6c\xd4\xca\x03\xd4\x88\x3a\x22\xcf\x4d\xfe\xc6\xab\xc1\x7d\x71\xe2\x19\x12\xf3\x67\xa8\x55\x2b\xa3\xac\x39\x21\x4a\x39\xf6\xc3\xb4\x54\x45\x79\x1e\x02\x57\x7a\x91\x27\xee\x7b\x1c\xd5\x74\xd3\x0a\x39\x5a\xda\xcd\x81\xfb\xd4\xe8\x69\x3f\x43\xbd\x96\xc5\x12\x74\xc6\x3b\xcc\x1d\xf7\xa5\xc0\xd4\x27\x5a\x20\x6a\xaa\x3c\x86\x53\x65\x20\xab\x15\xd4\xfb\x83\xc3\xe7\x0e\xde\x3b\xa7\x00\xba\x4f\x00\xe9\x96\x58\x1e\x78\x21\xaa\xa4\xcd\x91\xbb\x62\xf1\x92\x9e\x91\x81\x61\xf0\xf0\x01\x35\x39\xc9\x67\xa8\x67\x65\x6d\x4a\xd5\x3a\x3d\xf5\xe1\xa8\xe6\x41\xcc\xb1\x90\x29\xad\xf6\xfc\x04\x4b\x3e\x4d\x17\xa4\x79\xc0\x19\xb5\x27\x45\x16\xc2\xf9\xe8\x8b\x04\xca\xc3\x48\xe5\x91\xbf\x41\xc9\x9f\xd1\x5c\xfb\x22\x9d\xc1\x19\x49\xb4\x8d\x80\xf4\x44\x69\x34\x0f\x99\xc2\x31\xf9\x6b\xf7\xd0\xb7\x76\x78\x18\x25\x98\x6c\xb3\xea\xbd\xa3\xab\x87\x3c\x44\x0d\x28\xe9\x82\x8f\x53\x64\xd2\x9a\x87\x92\xeb\xd0\xf1\x77\x76\x01\xe5\x71\x39\x16\x0f\xa5\x42\x65\x1c\x8b\x3f\x5b\xd5\x2f\x3f\xaa\xf1\x25\x23\xa0\x38\x51\xcf\x19\x28\x44\xbe\x8c\xb6\x00\x1e\x47\x1a\xe3\xdd\x06\x51\xf7\x85\x3f\xc3\xe3\x38\x42\xdf\x1d\xe5\x1e\xce\xbc\xaa\x3e\x53\x86\xd0\x3c\x89\x7c\x30\x34\xbc\x1f\x2d\xaf\xe1\xaa\x6c\x07\x78\x92\x04\x26\x6b\x7b\x46\xd5\x50\x8c\x07\x57\xf3\x2b\x96\x72\x0d\xaf\x99\x24\x0a\x01\x2d\x98\xb9\x4c\xf3\xe7\x23\x86\x91\xaa\xf6\x44\x82\x29\x13\xc2\x02\x75\x14\xbc\x82\x63\x1f\xec\xcf\x13\x08\x94\xec\x86\x58\xb3\xd5\x6c\xde\xdb\x56\xee\x2b\x16\xb8\x4a\xd8\x13\xac\x32\x7e\xae\xba\xf9\xc3\x63\x8e\xa2\xaf\xb6\xee\x0e\xaf\x7b\x37\xae\x4c\xe5\xc2\xb7\xc2\xed\xf0\x3e\x24\x53\xfd\x64\x3c\x09\x5f\xa2\xfd\x69\xa3\x24\x77\x65\x91\xd7\xad\x4e\x9d\xe6\x32\x32\xf8\xce\x67\x93\x3b\x34\xab\xdd\x7a\x24\xe7\xab\xb9\x4c\x24\x46\xee\x30\x65\x87\x39\xac\x5f\x90\xee\x78\xda\xbb\x7d\xc9\x63\x4b\x48\x6e\xd7\xcc\xc6\x78\xb1\x02\xa2\xd3\x3b\x07\x57\x81\x17\xf0\x0e\xa8\x39\xc2\x88\x8f\x1e\x44\x31\x19\xf3\xee\xf5\x18\x3e\xa6\x2f\x03\xba\xee\xc0\xc4\x60\xa6\x97\xfb\xc3\xb1\x83\x88\x73\xa0\x3e\x73\x60\x3d\xfe\x81\xbb\xfc\x24\xf3\xad\xe6\xc0\x03\x14\x4c\xbb\x2b\x79\xfe\x6a\x61\x21\x90\x93\xf6\x44\x8a\x26\xa1\x0b\x7b\xfe\x2c\x1a\x2b\xe3\xae\x28\xf7\x90\xab\x5f\x90\x36\xae\xe3\xea\xc3\x04\x9f\xdc\x01\x3a\x31\x21\x29\xbb\x5f\xdd\x7e\x63\x0d\x10\x18\xc0\x5e\x5d\x17\xfd\x7d\x43\x78\x2c\x42\x00\x4c\xab\xac\x8f\xa1\x82\x3a\x1d\xf2\xe8\x0c\xce\x26\x3c\x4e\x65\xcb\x6d\x6a\xf2\x0c\x58\x6c\xd4\x9e\x53\x99\x8a\xd7\x67\xa4\xff\x75\x6a\x2f\x7d\xa5\x63\x67\xe5\x09\x92\x28\x04\x50\xaa\x22\xcb\x78\xd9\x71\xdc\x68\xe1\x43\xc0\xd4\x98\x15\x71\xf8\x58\x82\x7a\x0a\xb3\x84\xf5\x87\x9b\x4e\x82\x12\x1e\xf2\x8e\xfd\x6c\x5b\x16\x75\x61\x2f\xf9\x8f\x71\xbe\xe1\x33\xcd\x42\x2d\x68\xc0\x7c\x2b\xf4\x99\x15\xd7\x7d\x0d\xe7\xbb\xc2\x49\x8e\x68\x41\x15\x15\xa4\xa3\x9c\xbd\x4f\xab\xdb\x8d\x45\x50\x6d\x4a\x0c\xd0\x4a\x59\x19\xad\x60\xb5\x6d\x4c\xd3\x11\x2d\x81\x08\x42\xc5\x5a\xe6\x7b\xa3\x39\x55\xa3\x16\xdc\xe0\x4d\x05\x42\x82\x53\x66\x73\xc5\xb1\x22\x80\x98\x9a\x62\xec\xba\xbc\x36\x86\x0c\x7f\x1e\xc5\x0f\x45\xa0\x19\x02\xdf\x56\x87\xfb\xc7\x9e\x85\x28\x18\x8b\x1d\x9d\xff\x04\xa7\x57\x30\xba\xc7\x30\x22\x08\x2a\xbc\xd4\x7a\x8f\x53\xc1\xe2\xaf\x7b\x04\x85\x5a\x44\x61\x80\x38\x84\xc2\x94\xf7\xb9\x5f\x35\x51\x91\x23\x2c\xaf\x6a\xa3\xb2\x6c\x0d\xc0\xd6\x6e\x16\x71\x1c\x50\xd9\x02\x99\xfa\x25\xc2\x82\x87\x31\x5a\x97\xe7\x5f\x2e\x9f\x39\x7a\xd5\x32\x02\xd2\x31\x79\xe1\x5c\xea\x34\xf0\xa6\x16\x77\xa1\x3c\x86\x11\x75\x03\x16\xee\x28\x69\x26\x52\x3b\xee\x08\xee\x11\x1b\x86\xdd\x42\xce\xb3\xfa\xba\x4c\x2b\x71\x29\xab\x2f\x7c\xfd\xe1\x5d\x02\xf5\xb0\xb0\xc7\x4c\xdd\x4e\x46\x66\x78\x1d\xe0\x31\xa6\xef\x6c\xf8\xea\xfb\xb5\x27\x85\xed\x52\x2a\x42\x87\x90\x68\x87\x2c\xb5\xcc\xef\xed\x07\xd7\xa1\x16\x16\xae\x8f\x5c\xc9\x36\xdf\xf3\xc0\xab\xda\xfe\x73\x0c\xdb\x97\x1e\x00\x71\xcc\x7e\x28\x2f\xff\xb8\x58\x5c\xca\x5b\x16\x03\xe9\xc7\x3a\x8c\x1d\x79\x66\x57\xe6\xa1\x6e\x22\x9b\xc3\xb7\x27\x7d\x45\x85\xa5\xa2\x98\xf3\x0a\xdc\xfa\x75\xfb\xfc\x92\xea\x80\xb4\xf9\x9a\x22\x53\xc5\xfb\x68\xf1\x94\x81\x60\x18\xb0\x78\x49\x9f\x5f\x70\x4b\xc3\xc1\xd2\x37\x6d\x24\x8b\x0c\x81\x7b\x73\x33\x16\x53\xd5\x4b\xb6\x4b\x96\x40\x68\xa3\x89\xc7\x89\x5b\x60\xdc\x48\x9d\xa2\x65\xe3\x20\x81\x53\x3b\x88\x0c\x29\xa0\x11\xb0\x42\x94\xf4\x5f\xc5\xa1\xa6\xfd\x49\x19\xc5\x52\xdb\x08\xf9\xb1\x34\xb5\x50\xae\x85\x07\x06\x27\xff\x51\x97\xfc\x58\xa7\x27\x38\x8a\xe2\xf2\xfc\xd2\x3e\x48\x1c\x44\x56\x59\x14\x55\x0d\x06\x20\x6d\x99\x90\x90\x52\x17\x5b\xaa\x1f\xa0\xaa\x0e\x2f\x7c\xfc\x32\x13\x16\xe3\x86\x79\x32\x35\xd7\xfb\x33\xcf\x51\xd8\xc3\x35\xcb\x04\xbf\x46\x6a\xe3\x3d\x1b\x3d\x5c\x5d\x24\xa7\x04\x91\xe7\x25\x7f\x9f\x5f\xae\x37\x8d\x7e\x62\xc0\x8d\xfc\x7d\x5e\x14\x18\xcd\x74\xa1\x03\xc9\xb9\xe2\x3d\x12\xb6\x65\xfa\xb6\xf8\xbb\x65\x60\x52\xf8\x09\x0e\xc3\xd7\x34\x7f\xde\x9f\xd3\xb2\x25\x10\x91\x22\x01\xdf\xce\x0c\xc3\x89\x8b\x62\xf6\x9d\x3f\x2a\x25\xf5\x90\x36\xc7\x7e\x57\x5b\x4e\xaa\x2f\x9f\x0a\xb2\xb8\xe3\x12\xf0\xec\x2a\xb6\xbc\xe6\xfc\x94\x4a\x44\x53\xf4\x8a\x30\x24\x28\x0f\x15\xb1\x36\x39\x7c\xff\x92\x55\xc8\xf6\xd7\x44\x53\x83\xca\x7d\x03\x9e\x99\x75\xf1\xb7\x61\x8f\xd8\x47\xe2\x53\x28\x79\x05\x3b\x0c\x9e\x0c\x5f\xb1\xf2\xac\xe2\xcd\xd9\x28\xa1\x18\x6c\xb9\xa1\x54\x19\xdc\xbf\x22\x8c\x24\x76\x7d\xfd\xc9\xb3\x54\x39\xcb\xc4\xe8\x10\x2d\x3b\xd7\x4d\xf9\x54\xe1\x3a\x35\x90\x71\xfe\x74\x6c\xff\xff\xfe\x3d\xf8\xa0\xca\x07\x60\x16\xa1\x65\x36\xa3\xc6\x1c\xe1\xb2\xde\x5e\xc4\x77\xb8\x4e\x3b\x54\x8a\x26\x81\xab\x84\x7b\xe4\x06\x79\x40\xfc\xd8\x2d\x92\x8a\x2a\x82\x7e\x6d\x91\x67\x86\x15\xa9\x5a\xf0\x7c\x59\x20\x81\x84\xed\x12\x28\x53\x8f\x79\x84\x53\x5a\xaf\xca\xb2\x28\x47\xaf\x37\x24\x86\x5f\x01\x49\x6e\x2c\x14\x65\x0c\xfa\x9b\xf8\xb4\x2a\x24\x49\x60\xa3\x1e\x97\xf3\x68\x4c\xb7\x37\x18\x06\x2c\x21\x2e\x85\xb3\xc8\xd2\x6e\x85\x52\xa1\xa0\x9d\x18\x2d\x6b\xc3\xae\x46\x86\xcd\xc6\xd8\xec\x9a\x7b\xa3\x28\x45\x5a\xd1\x34\x64\xba\xc7\x48\x08\xcf\xd5\xe1\x05\xcc\x10\x5b\xb7\x8f\x1f\x6a\x23\x60\xb2\xd8\x6d\xf6\xb3\xf5\xee\xb8\xbf\x5f\x6f\x8f\x3d\xa9\x2e\xad\xa2\x88\xa0\x81\x85\xa8\x5a\xac\x97\x6f\x2d\x5a\xd7\x23\x89\xd1\x16\x3a\x54\x69\xfe\xbc\xe4\x7d\x4f\x52\xc5\x24\xf1\xc3\xd6\x20\x76\x00\xb4\x25\x9c\xc7\x85\x42\x2a\xa6\x89\x0c\x1d\x44\x47\x88\xb4\x5e\x3e\x7d\x1f\xec\x6a\x2a\x0e\x08\x82\x78\x06\xb8\x20\xbb\x9f\x7d\x86\x0f\x52\x71\xcc\xf1\xa0\xea\xfc\x59\x9e\x6b\xf8\xd9\x12\x99\xe0\xeb\x5a\x7d\x9c\x8b\xea\x52\xc2\x22\x2b\xaa\x89\x2f\x3e\xb9\x28\x29\x11\x49\x14\xe8\xde\xd5\x62\x77\xe6\x9f\x64\x6a\x95\x48\x88\x61\xb3\x40\xc4\xfb\xec\x71\xf3\xe3\x09\x9d\x88\xe3\xfe\x30\xfb\xb6\x22\xc7\xed\x6e\x75\xdc\xcf\x1e\x56\xce\x19\x50\x02\x7c\x0c\x0c\xd9\x74\x73\x63\x20\xf2\x29\x19\x92\x29\x02\x01\x25\x2d\xd6\x28\x95\xc5\xa2\x28\x47\x1b\x9d\x92\x81\x01\x3a\x1e\x11\xf4\x6d\xa2\x3b\x16\xa3\xd7\x0a\x21\x5d\x3a\x1c\xe6\xcd\xa2\xa8\x24\xa3\x3a\xec\x05\x9d\x06\x36\xfa\xe8\xc1\x25\xd3\xe8\xf0\x3d\xa4\x6f\x50\x9e\x8b\x22\x7b\xab\x1e\x79\xbe\x48\x6b\x97\xdd\x52\xca\xef\x95\x46\x6c\xb4\xcb\x8d\x8f\xa6\x24\x44\x86\xf7\xac\x36\xa2\x99\xb6\xfa\xd5\x9d\x43\x07\x12\xb7\x9c\xb5\x04\x51\x8c\xd0\x48\x4a\x87\x81\xec\x98\x78\xfa\x51\xcd\xf6\xf0\x98\x63\x45\xd0\xcf\x87\xc3\x50\x67\x42\x2b\x2d\x55\xd0\x15\xc0\x58\xb1\xc8\x9e\x7a\xa2\xe9\x06\x1e\x51\x34\xee\xbd\x12\x5b\xdd\x3c\xb8\x11\xf0\xc2\x24\x36\x01\xce\x2e\x70\xf2\xa5\x91\x00\x9e\x50\x48\x40\xa6\x9b\x41\xdc\x56\x1e\xff\xe6\x5a\xb5\x36\x46\x13\xaa\x31\x59\x29\x83\x47\x28\x5f\x0d\x1d\xe7\xb0\x18\x30\x0c\xfe\x71\x83\xbf\xe8\xfe\x35\xc6\x2c\xb7\x3d\xfc\xff\x4c\x8a\x92\x59\x8f\x09\x7c\x20\x8c\xb7\x50\x9d\x54\xbe\x7e\x56\x80\x07\xbe\xf6\x90\x2d\xd6\xd0\x25\x6e\x76\x7b\x57\xc2\x6a\x09\xc2\x1c\x4a\x06\x82\x48\x22\x72\xa9\x59\x9c\x31\x48\x3b\xcb\xd5\xb6\xc5\xcd\x43\x10\xe9\xc8\xeb\xdc\x6d\x53\x55\x35\xbc\x14\xf3\x04\x2e\x2b\x82\xdb\x04\xc7\x37\xa8\x7b\xc8\x68\x60\xc4\x08\xbe\xfd\xe4\xd9\xeb\xb5\x4c\xc1\x02\x4d\xdb\x66\xe9\xe3\x0d\xfc\x4c\x55\x9e\x7e\xb4\xbf\x6a\x86\xa0\xa4\xc5\xe2\xf7\xfe\x6a\x07\x21\x11\xa6\x2c\xd9\xc8\xe8\xf6\x5d\x18\x08\xb9\x12\x56\x56\x78\x8a\xb9\x78\x6a\xee\x42\x44\x00\x67\xa7\x8b\x4c\x36\xae\xe6\xae\x6f\x1f\x42\xe4\x1b\x26\xb8\xe5\xea\xe7\xea\x61\xb3\x5d\xed\x86\x15\x34\x10\x25\x46\xad\xbb\x7a\x29\xde\x8f\x6e\xbb\xe0\x6e\xf0\x1c\x75\x51\x1e\x11\x3e\x98\xe6\xc7\xd5\xe1\xfe\x08\xff\xbb\xa4\x6f\x3c\xeb\xb6\x21\x88\x89\xc6\x22\x45\x8e\xc1\xcd\x6a\x56\xe2\xeb\x69\x9f\x2a\xf6\x83\xc0\x22\x47\x57\x56\x7e\xd1\x31\x09\x7e\xb9\xdd\x43\xcc\x58\x68\x64\xae\xbf\xe1\xb7\x6f\x4f\x18\x69\x84\x36\xe3\x52\xed\x5c\xb8\xaf\x49\x3e\xdc\x91\x82\x60\x19\x9d\x59\x25\xab\x22\x53\x29\x94\x25\x9c\x33\xc8\xd3\xea\xa5\xbc\x31\xf2\x21\x16\x81\x34\x98\x83\x0c\xea\x09\x56\x1f\x88\x95\x87\x18\x0f\xd1\x93\xaa\x75\x39\xbf\xb2\x0d\x52\x41\x22\x25\x3e\x4a\x33\xe9\xee\x8b\xaa\xfe\x8a\x53\x57\x03\x67\x11\x82\xb1\x7b\xe5\x6a\x9f\x22\x06\x41\x08\xc3\x07\xf9\xab\x28\x33\xb5\xb8\x9c\xfb\xba\xba\x83\x7d\x0b\x04\x44\x08\x6e\x6e\x86\x17\x7c\x8c\x09\x23\xa6\x6f\x45\x6a\x1f\x13\x33\xcd\x0b\x78\xe6\x35\x74\x72\x30\x43\xcb\x11\xa4\x4e\x30\xc1\x76\x0f\x59\x8b\xf4\x05\x45\xa4\xa9\x62\xaf\x06\xb4\x4c\xc3\x4b\xa8\x90\x13\x83\x24\xe2\xa7\x66\xa1\xeb\x01\xae\x41\x25\x1c\x33\xa0\x83\x94\xde\xe8\x16\x15\x08\x6d\xf5\xf6\x37\xba\x97\xb9\x04\x20\x54\x4b\x87\x28\x9b\x2a\xda\xea\xce\x01\x7e\x40\x5b\x90\x6a\x35\x51\xdc\x0d\xc0\x28\xde\x89\xb3\x77\x1f\xd2\xd7\xcf\x3e\x1f\x84\x54\x19\xe7\x54\x5e\xca\xb4\x4e\xe1\x26\x67\x0b\x20\x08\x06\x15\x51\xd9\xef\x5f\x17\x28\xaf\xfb\x6e\x42\x69\x4f\x78\x08\x33\xda\xaf\x1f\x10\x38\xd4\x5b\x3f\x34\xa1\x06\x82\xf4\xe1\xb7\xbf\xd8\x1c\x72\x0f\x78\x6a\x6b\xdb\x41\x19\x49\xb4\x8f\x73\xfa\x89\xec\x80\xd6\xbe\x90\xc2\xf1\xdd\x34\x96\xdb\x17\x6f\x5a\x53\xcf\xa8\x61\xe7\xf0\x51\x3f\xa6\x79\xbd\x2d\xaa\x2a\x15\x19\xf4\x3c\x27\x4d\x79\x12\x37\xc3\x71\xfe\xb0\x59\x7c\x77\x3f\x06\x81\xc6\x37\x82\x15\xe3\x2d\x37\xb7\xd6\x01\x33\xd8\x9a\x4b\x6e\x03\x19\x2e\x5a\xd2\xf3\xc3\x75\xc0\x8d\x66\x68\x8d\xdb\x45\x65\x90\x2c\xd3\xaf\x5e\xb3\xc8\x84\x3c\x6c\x88\x73\x96\xab\xf9\xa5\x6c\xdf\x5d\xe8\x87\xa6\x28\xcb\x14\xe8\xa0\xad\xf3\xa5\xb5\xa6\x43\xce\x03\x13\x1b\x47\x3a\x1e\x6e\xb8\xb5\xda\xf3\x41\xec\xb2\x9f\x5b\x53\x11\xda\xe1\x32\x86\x1f\x5c\x47\xda\xe8\x20\xbb\x65\xba\x9b\xda\xa3\x90\xb7\x4e\x7c\x15\x3a\x66\x5a\xcc\xfe\x82\x1a\x50\x3f\x68\xe1\x11\x69\xc0\x2d\x8d\x89\xb1\x42\x73\x59\x8e\xe2\x79\x5a\x50\x1f\x93\x1d\x48\x8f\xb8\xcf\x79\x9a\xad\xda\xe3\xe3\x10\x8d\x84\x23\x57\x6a\x66\x8b\x47\xbe\x88\xe3\x6a\x99\xf8\x1e\x46\xa4\x20\xaf\x4b\x9e\xcd\x79\xfe\x3a\x8c\x21\x68\xa9\x12\x84\xc4\x40\x2f\x60\xd3\x35\x6a\xc0\xf4\xdc\xe9\xf8\x0e\xa9\x5d\xf7\xc6\xcf\xac\x7c\x6a\xd3\xde\x59\xd6\x33\xe8\x99\xe7\x79\x54\x62\xb1\x5d\x9b\xdf\xef\x1f\xd9\xb4\x73\xc3\x73\xf1\xdf\x34\x7f\xfe\xf7\x4b\x6a\x59\xa1\x7f\xb3\xad\xc4\x0b\xf0\x83\x0b\xf8\x94\x41\xa0\xff\xc1\x9b\x23\xa8\x91\x69\x7e\x58\x2f\x56\xbb\xf5\xa6\x9b\x7a\x4d\x5b\x14\xe3\x46\x79\xe2\x1f\xcd\xd6\x93\xe6\xcf\xdf\x0a\x8b\x5f\x6d\x5a\x35\xc5\x18\xb5\x70\x55\xca\xcc\xf3\x7c\x8f\xe1\xa2\x61\x2a\x64\x52\x67\x8b\x35\x2d\xc2\xc7\x02\xaa\xbb\x4b\x55\x94\x7c\x70\x19\xca\x40\xb4\x14\x5c\x3f\x1c\x18\xda\xf7\x5c\xb3\xf4\xa5\xec\x81\x3a\x1c\xa5\x92\x5b\xdc\x48\xd8\x76\x8c\x31\x7a\xd9\x0c\x35\x9f\xee\x6b\x9e\x2b\x5e\x9a\x14\xc9\x44\x92\xb3\x39\x40\xb1\x58\xb7\x58\xb0\x01\x90\xda\x39\xa5\x7e\x67\x0b\xc6\xff\x19\xd6\x38\xff\x9f\xff\x1f\x77\x1e\x08\x50\xeb\x65\x32\xb6\x71\x99\xa8\xeb\x6b\x8f\xd3\x92\x5b\xad\xaa\x5c\xd9\x9c\x90\x13\x7d\x64\x9e\x17\xc4\xc4\x91\x4f\x36\xd6\xb8\x95\x27\xec\x67\x8c\x47\x1f\x33\x80\x88\x1b\xb5\x80\x34\xbf\x73\xaa\x1d\xcc\xf3\x98\x17\x21\xff\x88\x1d\xad\x9f\x23\x53\x9b\xbe\x44\x62\xd2\x64\xb1\x7a\x18\x7c\x25\x16\xb3\x16\x3a\x71\x11\xaf\x3d\x51\xf5\xe1\x43\x31\xc1\x83\xa8\xa5\xd7\xad\xcb\xe2\xea\x14\x62\x5c\xa0\x99\x79\x5e\xe8\x69\xea\xa0\x70\xbc\x96\x2f\x43\x12\x31\xd7\x49\x68\x1c\x7e\xa9\x75\xba\x6c\xb6\x60\x69\x77\x66\xc9\x6f\x45\x9b\x3b\x02\x9b\xe6\x78\x30\xa5\x66\x85\x83\x02\x1e\x0a\x47\x42\x6b\x7b\x44\x34\x0c\x5c\x58\x0c\xb8\x82\x52\x14\xce\x2b\x69\x47\x55\x14\x69\x04\xe9\xfc\xb7\x2a\xf2\x05\x1f\x1b\x11\xc3\x77\x17\x41\x10\x41\x5b\x9e\x5e\x16\xd5\xd9\x54\x78\x0d\x64\x1c\xb1\x9f\x44\x1b\x76\x2d\xfe\x6c\x73\x0f\xcd\xcf\x5a\x63\xc9\xd7\xb7\x32\x55\xf2\x22\x60\x9b\xf1\x5a\x17\xe5\x69\xf0\x1d\xe2\x20\x50\xaa\xa7\x85\xb2\xaf\xf9\x6b\x9a\x3f\xbb\x6c\x8b\xeb\x25\x22\x65\x78\x34\xae\xdb\xb2\x50\x97\x09\xf1\xf5\xe1\xad\xc7\x52\xe3\x2c\x7b\x2b\x6a\xd8\xa2\xc6\x61\x7b\x2a\x1d\x26\x16\x2d\xb0\x2b\xb2\xac\x78\x1b\x52\x0b\x33\xcf\x4b\x02\x8a\x36\xd3\xe3\xec\xf7\xe3\x76\xb7\xfe\x39\x3b\xac\x8e\x77\x3f\x9e\x96\xeb\xa7\x6f\x7d\xd3\x9b\x79\x9e\x08\x05\x16\x48\xb8\xd5\x0d\xb5\xad\x87\x5c\x3f\x4d\xaf\x24\xc0\x00\x09\x37\x11\x9d\x5b\x70\x2c\xf3\x3c\x19\x46\x48\x90\x6a\xb5\x08\x87\x7e\xce\x3f\x06\x5f\x50\x86\xda\x77\x45\x64\xad\x35\x77\x07\xb0\x78\xe1\x65\xcb\x4a\xc0\x9f\x27\x81\x02\xcc\xf3\x94\xef\x2b\xa7\x2d\xc6\x6b\x7e\x24\x41\x2f\x1a\xc9\x3c\x0f\x22\x8a\x89\xdf\xfd\x1e\x59\x7f\x07\x1f\x0b\x12\xb0\xc2\x6a\x8d\xbd\xfd\x6f\x28\x8b\x1b\x62\xf1\xa6\x97\x0c\x88\x68\x51\x21\xd6\x35\x6d\x27\x0b\xf1\x22\xe9\x00\xfe\x87\x97\x1e\xa1\xfd\x90\xa5\xa4\x5f\x4d\xcb\x3c\x42\x82\x10\x5d\xab\xa3\xa9\x49\x7b\x82\x8f\xda\x20\x75\xb7\x45\x9a\xd7\x93\xe6\x04\x1e\x95\x98\x00\x9b\x35\xfa\xdc\x5c\xfb\x4b\x5e\xf7\x69\x3f\xd9\x9d\x35\xe4\xda\x08\xeb\x99\x90\x9c\xe1\x81\x9c\xc4\x45\x37\xbd\x81\x26\x49\x97\xaa\xb4\x38\x89\xa9\xeb\x4e\x32\xa4\x33\x8f\xf8\x01\x41\x8b\xc2\xca\x70\xce\x72\x65\x90\xc1\xbc\xe4\xa7\xa9\x48\xfa\x17\x44\x9a\xcd\xd9\x18\x33\x3a\x9b\x88\x8d\x1c\x15\xea\xbb\x3e\x51\x80\xf5\xbc\xff\x6a\xda\xfa\x96\xc5\xb4\x46\xd8\x3f\xfa\x03\x88\xf8\x5c\x49\x53\x60\x2e\x5f\x07\x02\x9d\xfd\x77\xe8\x83\x08\x0d\x3b\x9d\x53\x9e\x65\x1e\xa1\x54\x21\xd6\xc7\xd6\x46\xfe\x4c\x3b\x85\xdb\xe1\x3b\xa5\x42\x60\x19\xf7\xe1\xc5\x34\xcf\xdd\x19\x02\x4f\xc3\x90\x4b\x75\xde\x73\xec\x3e\x19\x25\x41\x6c\xe8\x3f\xd3\x3c\xad\x57\xe7\x42\xbe\xf4\xcb\x8f\x9a\x76\x4e\x10\x1f\x99\x17\x0a\x8e\x46\xb3\x72\x74\x3f\x2c\x8a\xf1\x91\x57\x79\x5d\x5e\x67\x4a\xf5\xa2\x89\x93\x93\x90\xb0\xc4\x08\x6a\xe2\x5a\x6e\x0c\xc1\x05\x14\xc3\x35\x81\x84\xc4\x8f\x8d\x0e\xf9\x18\x11\xdb\x34\x0a\x03\x71\x15\x06\x66\x8e\x76\xe2\x23\x2f\x3f\x09\xc8\x34\x07\x28\x3f\xd1\x6d\xf1\x1b\xa8\x5b\xc9\x7c\xe6\x91\x48\x13\x6d\x65\xde\x8c\xec\x5d\x51\x1e\xdd\x6b\x88\xbd\x04\xe3\x00\x4f\x2b\xcb\xa6\xdd\xfc\x16\x1b\x95\x67\x67\x16\xf3\xce\x44\x22\x31\xf7\x74\x5f\x4f\xa8\x31\x3a\x47\x97\x4b\x7c\x6e\x74\x45\xa1\xaa\x8f\x94\x1c\x39\x4a\x53\x7d\xe3\xd5\x8f\x8a\x3f\x03\xf3\xe6\xcd\xfe\x55\xb9\x13\x26\x2c\x12\x2d\x3f\x40\x9e\xea\x81\x14\xed\xe4\xcc\x49\xa2\x10\xc7\x7a\xb9\x56\xee\x24\x3c\x50\x61\x17\x42\x78\xe2\x27\xd8\x5f\x4f\xa2\xc8\x6e\x91\x65\x4d\xe7\x88\xa3\xc5\x62\xdf\xe4\x63\x3a\xe9\x7f\x32\x8f\x08\x4f\x10\xa3\x83\x86\xc0\xf0\x87\x82\xe7\x1d\x62\x7f\x74\x8f\xee\x10\x0e\x91\x8d\xaa\x96\x3e\x0a\x2c\x4f\xbc\x20\xa1\xc5\xc0\x6b\xdd\xd7\xfc\x74\xae\x26\x14\xf3\x99\x47\x24\xf3\x3d\xd6\x2d\x91\x0f\x1c\xd5\x71\xf8\x27\x58\x17\x7b\x10\x50\x8e\xca\x15\xc7\x54\x16\x7d\x7c\x65\xd3\x14\x07\x4e\xce\x66\xcb\x4b\xbb\x44\x8c\x9e\x5b\x2b\xc5\xec\xee\xbd\x3f\x83\x5c\x2f\x87\x0b\x89\xef\x29\xa9\x83\xce\x63\x3b\x14\x2b\xde\x11\x10\x4f\x1a\x1d\x3e\xf1\x98\x13\x61\x58\xe7\x3a\xe3\xbd\x9d\xc5\x27\x54\xe2\x18\x5e\xfd\xbe\x5d\xed\x0e\xfb\xe3\x76\xb3\x79\x38\xce\x96\xcb\x5d\xdb\x21\x8a\xb1\x5c\x8d\x2b\xb5\x45\xc2\xd9\x53\x6f\xad\xfd\xa4\xd0\xb1\x39\x0c\x18\xda\x6f\x47\xe5\xf4\x37\xf6\x5d\x69\xb6\x5b\x39\x7d\xdf\xa7\x68\x5f\xcf\x7e\xce\xd6\x0f\xb3\xf9\xc3\xea\xb8\x7e\x6a\x23\xf9\xee\x0e\xfc\xd8\xf7\x88\x63\x1e\xc7\x22\xd8\xd6\x3e\xf3\x7d\xe5\xa3\x13\x89\x92\x2f\x65\x5a\x5f\xe7\x25\x80\x23\x75\x6c\x3b\x41\x82\x20\x1e\xf8\x30\xbc\x1a\xf6\x67\x1a\x18\xbe\x25\xae\xd4\x53\x51\xf3\x5b\x9e\xa7\xc9\xef\xeb\x53\x45\xfc\xc0\xb2\xd2\x38\xaf\xc1\x36\x05\x9e\x41\xab\x96\xf0\x5f\x90\xf5\x54\x5c\xaf\xed\xc8\xf1\xed\x14\xb9\x2d\x54\x69\x99\x85\xc7\x1d\x49\x80\x30\xbf\x13\xae\x43\x8f\xfc\x75\x90\xe9\x6c\x3a\xc4\x12\x3d\x0b\x5c\xf6\xfe\xb8\x77\xcb\x88\xcf\x12\xa9\x7a\x5c\x3b\xdb\x12\xd6\x8b\xcd\x5d\x09\x26\x9a\x31\x1c\x97\x3e\x13\x09\xa6\x94\x01\x05\xff\x26\x23\xea\xf1\x2d\x27\xa4\x3d\x38\x66\x49\x60\x81\x07\x73\xc3\x6b\xd6\x2c\x37\x26\x95\x3a\x1c\x87\x3c\x0e\x51\x17\xf2\x99\x9f\x90\x96\xe8\x47\x85\xa8\x1e\x0c\xe5\xbb\x5b\xe1\xdc\xf8\x8c\x97\xca\x95\xbf\x0c\xcf\x21\x28\x31\xf8\xd8\x73\xd6\x67\x7f\x68\x5a\x62\x61\x62\x4c\xd7\xbc\x7e\xa9\x7a\x00\x9b\xa6\x0d\x08\x02\xab\x2e\xb9\x63\x72\x9a\x5f\x3f\xc1\xd5\x32\xcf\x97\x89\x50\xee\x1e\x3a\xbc\xcd\xf0\x3e\xa4\x24\xc8\x08\xfe\x3d\xad\xeb\xeb\x60\xb4\xa9\x88\xa1\x75\x82\x7a\xa0\xd3\xbb\xe4\x68\x7e\x2a\xae\x90\xb3\xca\x06\xc0\x6f\xd0\x3a\xed\x74\x01\x6a\x48\xfd\x56\x5a\x03\x52\xf5\xc2\x10\x6b\x18\xb7\x3d\xb5\xaf\x00\x2c\xc0\xa1\xd9\xcc\x0e\xc0\x4f\xa3\xa2\x9f\xe1\x3d\x68\xf0\x99\x83\x66\xa5\xea\x81\x57\xf5\x0f\x5c\xf3\x06\xa3\x8d\x7a\xd2\xa4\x57\x11\x82\x7f\xb9\x8e\x17\x4c\x4a\x7c\x83\xab\x5f\xef\x17\xbf\xb5\x3f\x49\x8c\xee\x63\x7e\xc3\x81\xe5\x86\xe6\x00\xf5\x83\xd8\x04\x44\x52\x83\xcd\xbe\x2b\x4a\x43\x35\x61\x65\xf9\xdb\x7e\x9a\xd2\x96\x9c\x13\x8d\xfe\x49\x3c\x23\xf3\x28\x8b\x04\xb2\x11\x8b\xcb\x75\xd1\x4b\x23\x8d\x7a\x85\xbe\xd5\x73\x36\x2f\x7e\xa2\x30\xae\xe9\x14\xc4\xf8\xcc\xeb\xbc\xd9\x49\xd7\xa7\xc6\x0f\x18\xbc\x94\x30\x8c\x0c\x43\xbe\xb8\x94\xf9\x27\x55\x73\x4d\xb7\x38\x72\x7a\xeb\x36\xc1\x85\xac\xdf\x3d\xef\xc2\x75\x54\x21\x46\x7f\xb7\x86\xa3\xc4\xfd\x1c\xf9\x26\xfd\x63\x23\xc7\x83\x92\x93\xa6\x39\x64\x98\xb2\x79\xd8\x2c\xbe\x9b\x0e\x9b\xf5\x53\xdf\xca\xf9\x3a\xcc\x43\x23\x90\x61\x9f\xb1\x7d\x24\xfa\xc9\x3c\x1a\xcb\xc4\x09\x5f\x36\x73\x27\xcd\x9f\x67\x6d\x1d\x6e\xaf\xac\x81\x79\x34\x21\x09\xae\xca\x3a\xed\x6a\x7c\x7f\x42\x59\x21\x7d\xd6\xf4\x5b\x4e\x88\x31\xbe\x2e\x39\xd6\xb7\xdd\xc6\x01\x9b\x3e\xbe\x40\x0f\x74\x91\x01\xcf\xef\x8a\x42\x2d\xca\xeb\xd9\x02\x63\x9a\x66\x46\x4c\x72\x90\xe7\xc7\x2c\xe5\x79\xfb\xbb\x0c\x71\x43\x4e\xf3\xb7\xb4\x86\x7b\xa4\x87\x2d\x87\xbb\x2a\xe5\x1e\xe8\xb8\x83\x53\x37\xd6\xc6\x27\xb6\x2d\xe5\x34\xc4\x82\x82\x13\x4f\x73\xc4\x71\x23\xb6\x00\xa3\xe3\x6d\xd4\xb7\xe9\xa6\x4c\x0c\xde\xbc\xcf\xa1\xd9\xed\x1c\x4f\x2a\xc2\x40\x7a\xae\x26\x18\xaf\xbc\x35\x1e\x09\x4c\x82\x88\x99\x47\x65\x10\x24\xba\xe7\x29\x6d\x4b\x78\xce\x79\x5e\xf7\xe5\x1f\x9b\x6e\x71\x60\x66\x1d\xaf\x5e\x36\x97\x2e\x77\xd7\x34\x71\x8e\xbe\xe4\xd9\xec\xe6\x06\xe9\xd3\x6b\x34\x90\xf1\x17\x5e\x81\x6f\x94\xc4\x0d\xcd\xe7\xca\x92\xc6\x32\x8f\x2a\x48\x90\x34\x35\x87\xf7\x85\x63\x27\x65\x1e\x05\x42\x14\xb4\x61\x5a\xa8\xd7\x6a\xc1\xcb\xe7\xc2\x90\xa7\xf4\x43\x98\x14\x12\xa3\xdb\x69\xde\xcd\x2f\x38\x94\x97\xaa\x1e\xba\x71\xae\xa7\x08\xb0\x10\x41\x19\x8c\x7b\x97\xc5\x6f\x2f\xaa\x13\x0d\x7d\x76\xc7\xd9\xc9\x6c\x19\x36\x46\x14\x78\x1e\x41\x9b\x6b\x97\x56\xaf\x03\xa9\x5c\xd7\x4e\x3d\xac\x77\xe7\x86\x20\x55\x63\x69\xdb\xbf\x2e\x70\x71\x2f\x2c\xf0\x98\x76\x22\xae\x8f\x70\x12\x50\xa2\xca\xe2\x54\x40\x2a\xf0\x12\x0f\x31\xdc\x47\x59\x9c\xce\x17\x43\x71\x57\x2d\x2e\xa3\x4d\x2c\xf0\xa4\x51\x03\xb3\x55\xd2\xee\x42\x84\x30\x66\xa7\xa0\x91\x3a\x34\xb8\x93\xdb\x4c\x78\xd3\x37\x14\x98\xb9\x42\x81\x08\xa3\x90\x39\x39\x60\x02\x12\x19\x25\x6b\x91\xaa\x4d\xf3\x11\xf7\x69\xb3\x74\x7d\x92\xfb\xe9\x6f\xf5\xf6\x78\x3f\xd6\x56\xfb\xab\x59\xfe\x10\x1b\x96\x5d\x47\xbb\x61\xe0\x27\x04\x6b\x6f\x4f\xfc\xe3\x50\xec\x21\x73\x21\xe0\xc0\xd7\x1a\xf1\x8b\x9d\xde\xee\x3a\x77\x5c\x56\xcc\x0b\xa8\x4f\x30\x6f\x59\x63\x7d\x9d\xcb\x85\x76\xab\x5a\x40\x69\x20\x6d\x39\xcc\xd7\x8e\x45\x10\x24\x46\xc9\xec\xdd\xf1\x1a\x58\x4e\xe2\x01\xee\xa6\xe9\x27\x08\xf1\x1d\xa7\x38\xc8\xd7\xea\x72\x5a\xb4\xf4\x0c\xcc\x0b\x22\x2a\x51\x82\x4b\x01\xaf\x5f\x30\x9c\xa3\x09\x6b\x1b\x13\x2f\x64\xad\xa7\xdf\x8a\x00\xb8\x56\x41\x69\x34\x70\x84\x1c\x1b\x90\xeb\xa0\xe3\x30\xea\x8a\x7b\xca\xe2\x8c\x11\x87\x6a\x20\x69\x65\xfb\x26\xc2\x47\x3c\xc4\xb9\xa8\x21\xaf\xd3\x16\xe7\xe6\x9a\x75\x80\x2c\x58\x79\x71\x4a\xf3\x5e\x12\x60\xb8\xc3\x05\xff\x8f\xb2\x37\xd9\x6e\x1c\xc7\xb6\x86\xdf\xe5\x1b\xc5\xa0\x06\x04\x48\x90\xe0\x3f\x93\x64\xd9\xa1\x9b\x6e\x54\x96\x9c\x91\x59\x77\xd5\xd2\x42\x73\x60\xb3\x4c\x91\x2a\x92\x0a\x87\xea\xe9\xff\xc5\x03\x80\x9d\x68\x67\xdd\x41\x46\x64\x08\x60\x8f\xe6\x34\xfb\xec\x2d\x54\x8a\x4f\xe3\xbd\x9d\xd9\x57\x27\x03\x81\x15\xa3\xf7\x4f\x77\x07\x84\x83\x6e\xea\x7d\x59\x2e\x1d\x84\xa3\xed\x40\x28\xb5\x8e\xae\xd0\x16\xd5\x36\x71\x0e\xbd\xdd\x11\xc9\xd4\xf2\xfa\xde\x41\x56\xbf\x89\x41\xe8\x32\x92\x69\x22\xdc\xea\xa0\x7c\x5c\x47\x4f\xb2\xc7\x6d\x37\xa5\x21\xf1\x2a\x84\xca\x86\xff\xde\xa1\xd8\xdc\xd4\xae\x62\x7b\xbc\x40\x44\x2a\x65\xf8\x80\xdb\xc5\xf3\xfe\x71\xcc\x78\xda\xb6\x2a\x40\x5c\xd2\xc9\xb1\x97\x4d\xa8\x9f\xc6\xa7\xd2\x01\xf7\xf2\x10\x56\xbf\xdf\x1b\xa5\x91\xa6\x89\x19\x42\xea\x07\x4c\xb4\x2c\x88\x0c\x89\x3d\x05\xc2\x6e\xa2\x40\xda\xb6\x32\x40\xfd\x1f\x93\x97\xe5\xc4\x5c\x8a\x4c\x6c\xb7\xf4\x1a\xaa\x9f\x99\x82\xaf\x2a\x63\xdb\xde\x42\x25\xae\xf6\x75\x48\xea\xd9\x71\x5b\x0e\x7a\x4a\x89\x24\xf6\xf7\x99\x19\x0b\x8d\x5d\x63\xee\x58\xc0\x82\xc0\x72\x25\x57\xd9\xeb\x5b\x43\xf9\xf8\x5c\x2c\x08\x0c\xbe\xc2\x7b\x71\x2e\xd4\xdb\xd6\xc2\x25\xeb\x61\xba\x8b\x05\x8c\x38\x6a\x0f\x27\xfe\x00\x95\xc7\xc4\x8f\x5f\x06\x23\x8c\x7b\x88\xb5\x45\x65\xd6\xc3\xb9\xc7\x08\xd3\x4c\xf4\xd5\xf1\x37\x59\xdd\x2e\xa2\x1d\xa5\x56\x6f\xa2\x33\x1a\x48\x44\x95\x0f\xb9\xc9\xfd\x59\x28\xe3\x58\xf9\xb9\x7b\x2b\x3f\x0e\xe2\xdc\x94\x47\x54\xe2\x6c\x97\xa5\xc3\xa9\x2b\xe1\x68\x3b\x0a\x89\x25\x1c\x3f\x33\xf8\xf8\xdc\x59\x63\x11\xd7\xdc\xc9\x25\xb7\x0e\x98\x8b\x27\x7f\x01\x88\x6b\x8f\x01\x2e\xed\xfd\xa1\xc3\x7a\x03\x3f\xb1\xfc\xca\xb5\x32\x4a\x99\xe9\xa9\xdc\xa7\xb6\x03\x63\xcc\x11\x41\xdb\x2d\xfa\x50\x43\x6e\xda\x1d\xb0\x3a\xab\xc9\x56\xc2\x18\xd7\xae\x0a\x0a\x79\x23\xdf\xa0\x79\x9b\xdc\x3e\xd3\x09\xda\xe4\x3e\x68\x54\x3c\x40\xde\xbf\xac\x38\x10\xb6\x28\xce\xcb\x50\xe1\xd6\xe7\xd6\x9a\xc1\x0b\x8f\x45\x88\xe5\x21\xa3\xf4\xe8\x6e\xe0\x4e\x0c\xfb\xca\xd0\x97\x5c\xee\x06\xca\xd3\x2c\x60\x5c\x45\x18\x7c\xa9\x85\x81\x29\xe9\xd8\x78\xb4\x33\x6e\x2c\x05\xfa\x09\x63\xd2\x3f\x00\xde\xfd\x49\xd2\x20\x44\xf8\xea\x1d\xb4\x26\xc1\xd8\x95\x60\x29\x89\x92\x5e\x31\x38\x2b\x6e\x2a\xf1\x91\x15\xaf\xf5\xf2\x82\xff\x9c\x86\x53\x58\x6a\x04\xfa\xcf\x7e\x6a\xa3\xd7\x76\xc5\xdb\x38\x5e\x29\x98\xa0\x01\xb2\x6a\xe0\x68\x5a\xf5\xab\xbd\x6f\x4e\x24\xa6\xa3\x4f\xe7\x3c\xb7\x2e\xea\xec\x82\xc3\xa4\xb0\x6b\xb8\x8b\x42\x5b\x6e\x9e\x21\x90\x64\x0e\x3d\xc8\x02\xa6\x42\x85\x61\x86\x07\x51\x2f\x8a\xf3\xb7\xee\x57\x8d\x3e\xee\x29\x03\x85\xb5\x6e\xe0\x23\x74\x4c\x0b\x86\xb0\xfe\x03\x16\x8d\xed\x4b\xa7\x3b\x5d\x0f\x41\x8a\x7c\xf2\xfe\x21\x21\xba\x63\xb3\x69\x3e\xca\x4d\xf1\x53\xe4\x99\xbe\x15\x79\x0d\xeb\x7f\xdf\x97\xdd\x37\x05\x4d\x30\xed\x67\xe1\xe8\x5b\x68\x5a\x87\x6b\x07\x55\xe6\x7c\x66\x7b\xe2\xee\x85\x1b\x1a\xa7\x49\x1f\x23\x19\x55\x90\xf8\x2e\x32\x42\x78\x83\xd0\x57\x56\xf0\xe4\x26\x8d\x61\x49\x34\xe0\x67\xbe\xce\xf6\x75\xa3\x32\x0e\x52\x6a\xfc\xce\x72\x94\x19\x14\xcd\x7d\xfb\x1a\xd6\xbf\x14\x9c\xa6\x70\x49\xec\xae\xb0\x9e\xa4\x1c\x2b\x0d\xac\x5a\xd3\xcc\xbf\xd8\x98\x04\x56\x1f\xfc\x61\xf3\xb8\xee\x7e\x0b\x85\x2f\xbe\xbd\xa9\xca\xd3\x63\xd9\xf4\x4b\x4e\x4c\xc1\x90\xd8\xed\xa4\x4f\xa7\xd6\xef\xab\xdf\xfd\xb2\x10\x87\x2c\x44\x6c\x10\x96\x87\xf5\x30\x38\x6c\xb1\xe8\xfc\xd5\x9f\xdb\xef\xeb\xe7\x3f\xba\x9f\x63\x81\x91\x57\x9b\xcf\x9e\x09\xeb\xc7\x61\xe2\xca\x89\x5b\x07\x73\x30\x46\xe3\xd0\x84\xb1\x2b\x9e\xb0\x46\x6d\x3d\x45\xeb\xfa\x3d\x3d\x8e\x78\x84\xd8\x4e\xff\x92\xdb\x89\xbb\x41\x5f\xaa\x72\x0a\x58\xfd\xf5\x58\xc8\xb0\x00\xdc\xd6\x07\x5d\xc5\x92\xbf\xc8\xc9\xc4\x8c\x69\x8e\x32\x0d\x18\xe4\xf2\x3f\x2a\xe9\x25\x34\xae\x56\xb6\x38\x4e\x6d\xc2\xb9\xb5\xd2\x6a\x68\xbe\x9f\xe5\xb7\xae\xc5\xc2\x51\xcf\xc5\xa9\xe3\x68\xe8\xda\x84\xc5\x2a\xd7\xd0\xdc\x6f\x2d\x68\x7e\x5b\xd6\xd3\x62\xc3\xb6\x23\x50\xf4\xeb\x1b\x10\xc7\xdf\x00\x4e\x59\xf1\xda\xad\x59\xe3\x9e\x89\xb1\xe9\xcd\xdf\x16\xa3\x8c\x78\xcc\x99\x42\x06\xb7\xdd\x87\xa8\x8e\xcf\xa0\xaf\x33\x7b\x71\x4a\x75\x6a\xd9\xc0\x56\x58\x0e\xda\x0c\x84\x18\xe7\xd1\x68\xe3\xb7\x96\xa6\xc0\xd3\xde\x71\x5d\x9e\x2f\xed\x3a\x7f\xfb\xc7\xe4\x0e\x53\x11\x8f\x41\x23\xbf\x81\x14\x72\xe7\xc1\x25\x7d\x47\x11\x08\x21\x5c\x6d\x45\x55\xc3\xee\x94\x67\x8e\xca\xdc\xd6\x73\x8f\xb2\x93\x93\x43\x3d\x6a\x0d\xf3\x47\xed\xf0\xbd\x2d\x2b\x24\x18\xf5\x0f\x2b\x04\x68\x9b\x7e\xa9\xcf\xe0\x61\xed\xbe\x51\xb2\x18\xe3\x77\x03\x50\x4d\x3f\x0e\xa4\x0e\x07\x0c\xd3\xbe\x0c\x6a\x62\x0c\xc6\xd2\x18\xac\x67\xcb\xc1\x34\xc9\xe4\xee\x94\xb4\xd1\x81\x47\xf8\xb0\x32\xb2\x9f\x2c\xf1\xff\x6d\xfe\xd2\x9f\xd6\x58\x3c\x0b\x8a\x90\x66\xde\xef\x89\x35\x8b\x54\xe2\x19\x7e\x5f\x47\xa6\x7b\xac\x53\x90\x8e\x95\x0e\xfd\x0b\xde\x35\x28\xab\x8c\x89\xe5\x91\xe2\x15\x3c\x5b\xb3\x6b\x06\x12\xc4\xca\xe7\xf5\x77\xa3\x18\x54\x0c\x2a\x40\xbc\x80\xdd\x2d\xd7\xfd\x5b\x05\x20\x48\x94\xd3\xa0\x16\x2c\x72\xe5\x4c\xc2\x2a\x09\x09\xc0\x60\x96\x03\x79\x8c\xb0\x92\xd2\xde\x70\x8d\xfb\xc4\x37\xdf\x2d\xd4\x2a\x98\xd6\x95\xd6\x6f\x99\xa3\x5f\x7f\x40\x10\xc6\xf4\xd4\x46\x19\xcf\x5f\xf2\x13\xaa\x5d\x79\xee\xcb\x0a\xe7\x40\xd4\x7e\xcd\x49\xa8\xb0\xc2\x66\xae\xc8\x69\x5b\x36\xa2\x29\xff\x8a\x34\x67\xbc\x4d\x26\x21\x58\xe5\x82\xd6\x34\x7a\x7a\xba\xb7\xc2\xad\x94\x8d\x5e\x5c\x12\xb5\x8e\xa3\x8d\xaa\x55\x42\x0f\x92\x6d\x49\xeb\x64\xb5\x9f\xd0\x89\xd6\x5c\x19\xe7\x5f\xc6\x74\x13\x16\x59\xb3\x19\x21\xf3\x1d\x0f\x6f\xde\x4e\xbd\x4a\xe4\x59\x3d\xdc\xf0\x92\x58\x47\x48\xf3\x83\xd5\x36\x56\xbf\xd9\x71\xb8\xcf\xda\x46\x49\x22\x54\x00\x83\x15\xd9\x06\x25\x47\x89\xf5\xc9\x11\x3c\x0a\xad\xcc\x59\x5d\xc3\x51\xe6\x97\xdd\x9b\x38\x66\x57\xd4\x29\x9f\x3c\x0b\x4f\x42\x8c\x6a\x14\x65\x75\x44\xa2\x2b\xbd\x16\x55\x7e\xf1\x94\xd0\x7e\x80\x26\x29\x4b\x71\xfc\x16\xf0\xb1\xec\x69\xd2\x27\x43\x42\x70\x4b\xb3\x2a\x2a\x51\xcc\x72\x29\x63\x1f\x5b\x75\x8d\x61\xa4\xff\x23\x66\x2a\x11\x46\x22\xf8\xd3\x59\x55\xcb\xf3\xe5\x1a\xe2\xce\x82\x44\x86\x91\x17\x00\xf8\xed\x71\xf5\x2c\x1a\x78\x6e\x97\x94\x1d\xca\x7d\x9f\xab\xfe\xa9\x34\x49\xd0\x67\x41\xc7\xf7\x94\x5f\xa6\xa4\x85\xff\xb7\x05\x23\xd1\x2c\xb5\xc5\xee\x4d\x79\x1a\xf3\xd2\xb4\x8d\x9c\xf3\x64\x24\x0c\x4a\xd2\xf1\x78\x85\x84\xe3\x32\x56\x9f\x65\xad\xaa\x4c\xc2\xa4\x39\x4d\x84\x83\xe2\x2c\x5f\x16\x57\x29\xf3\xf1\x9b\x02\x30\x88\x93\xc6\xb5\x61\x08\x68\x1b\x6d\x35\xc3\x68\x10\x0f\x12\x50\xca\x9b\xf6\x79\x0e\x95\xe9\xb0\x06\x9c\x70\x5b\x3f\xeb\xd1\x58\x77\xb3\x94\x80\xe3\xcf\xc0\xc3\x90\x21\xa2\xc9\x71\xba\x5a\x1a\xb0\xac\x78\x1d\xfa\x63\xfe\x53\xb4\x9d\x31\xb9\x7d\x14\xbf\x9e\xa1\x68\x06\xea\x39\x6d\x63\x14\x22\x37\x40\x86\x55\x1c\x0d\x58\xa5\x2d\x17\x98\xfe\x6c\xa9\xf8\xec\x6f\x7f\x4e\x69\x33\xfc\x76\xbb\x59\x96\xe5\x7b\x56\xbc\x5e\x21\xe2\x78\x94\x86\x52\xf5\x24\xd6\xf3\xe7\x8a\x52\x85\xc9\x0b\xc4\xac\x60\xe1\xd0\x7c\xc4\x8e\x47\x92\x5a\x4d\xd4\xac\x68\x9c\xbb\xd5\x4c\x66\x11\x8f\xb4\xc0\xec\xb8\xc9\x4e\x16\xfe\x3b\x86\x44\x72\xa6\x52\xe3\x54\xf7\xec\xee\xbd\x29\x56\x96\x63\xa8\x1d\x57\x42\x35\x5d\xe1\x22\x0b\x78\x9c\xd0\xd0\x42\x7a\xe5\xf9\xd5\xb2\x68\x1c\x9c\x6a\x74\x69\x0e\x46\x9c\x15\xf8\x5d\x80\x27\xd4\xd6\xd3\x94\x9d\x45\x8c\xda\xc7\x7f\xb1\x89\x76\x07\x03\xe6\x05\xd6\x2f\xcf\x4f\x7f\x7f\xd9\x3c\x3e\x7e\x51\xeb\x39\x3d\x94\x59\xc8\x73\xe5\xb5\x7e\xee\x4b\xf5\x3e\xf0\x99\x79\x12\x53\xac\x4b\xc0\x28\x06\x09\x26\x5f\x28\x11\x12\xf7\xe3\x7f\x95\x59\xf1\x74\x6e\x96\xa2\x69\xf2\xf1\xd4\xe1\x69\x14\x31\x3b\xb8\xda\xed\x2c\xbf\x3c\xa0\xe0\x7c\xaf\xcd\x7c\xb5\x58\x62\xd0\xae\xfb\xc3\x9d\x45\x04\x02\x03\xef\x8f\x59\x33\x4a\x42\x73\xc1\x53\x0b\x4e\x68\x1d\xfe\x33\x16\xd6\x75\x7e\x04\x17\x32\x42\x87\xbf\x7e\x2b\x3f\xb6\x65\x99\x77\x6b\xcc\xf8\x29\x64\x90\x32\x5f\xdd\xf8\xe8\x78\xcc\xf7\x1f\x65\x7b\x77\xdd\x1c\x91\x92\xc7\xae\x22\xf0\xe1\x32\x51\xc1\x63\x01\x57\x1a\x48\xe8\x11\x1f\xa7\xd6\xa6\xdd\xdc\xcc\x68\xe8\xb2\x80\xeb\xc0\x30\x67\xc2\x58\xa2\xad\x27\x63\x27\xdc\x2c\x16\xbe\x3d\x20\x0e\xd0\x74\x6c\xed\xe5\xf5\xfe\xfb\x0b\x0a\x67\x51\x7f\x5f\xda\x30\x8c\xa2\xa3\x0e\x64\x7d\x2a\x8b\x1a\x9e\x4e\xa3\xd9\x0d\x61\x42\x78\xc7\xb7\x93\xe9\xdf\xfe\x5c\x0d\x22\x10\xdc\x84\x0c\x8d\xec\x37\x10\xa7\x5d\x59\x35\x2e\x93\xe2\x4d\x06\x6e\xa2\x58\xf8\xf0\x98\x38\x82\x8b\x3c\xf8\xb3\xa7\x41\x14\x58\x36\x65\xbf\x6b\x0d\x23\x4f\x69\x10\x33\x04\xc2\xf4\xca\x3d\xb7\x65\x75\xdb\x15\x6f\x76\xdd\x52\xce\xba\x6c\xfb\xfa\x98\x75\xc7\x13\x65\xf3\x2d\xe8\x60\xef\xa0\xfb\xb2\x29\x01\x4f\x2f\xe5\x42\x38\xe5\xa5\x6b\x32\x9c\xf7\x32\xd9\x96\x07\x69\x55\x1e\x8f\x59\x8f\x5c\xbe\x7a\xc9\x29\x25\x76\x1e\xac\xef\xee\x76\x87\xfd\xd3\xe1\xfb\x62\xbf\xfa\x7e\x20\xab\xe7\xa7\xd5\xce\x9f\x98\x3a\x3d\x0f\x9b\xd2\xe8\x56\x52\xd0\xcb\xc9\x32\x92\x52\x2e\x11\x99\xa8\x44\x61\xe9\x53\xdb\x37\xd7\xbd\x32\x6a\x52\x04\xab\xe2\x92\x51\x74\xf7\x1d\x06\x4a\x58\xea\x91\x5b\x91\xe5\x03\xd3\x08\x57\x02\xdf\x29\x14\xa8\xeb\xbb\xcc\x9a\xe2\x5c\x9f\xbb\x9f\x95\xf4\x55\x7e\x18\x19\xb9\x81\xbc\x17\x08\xf6\x7d\xb4\x4a\xf4\x90\x77\x69\xf4\x02\xa2\x48\xf0\x51\x36\x66\x08\x08\xf2\x7d\x78\xe4\x83\x62\x48\xdc\x39\xc7\x33\xcc\x82\x94\x11\x26\x5d\x42\xd3\x91\x6b\x0c\x98\x9a\x59\x90\xc6\xa1\x54\xd1\x18\xfd\x5d\xef\x27\x90\xb2\x34\x66\x76\x9a\x38\x0a\xb7\x1f\xe7\x3c\x2b\x1e\x90\x69\x7a\x3b\x88\x35\xa6\x49\x62\x50\x2d\xd2\x40\xa3\xde\xae\x18\xb9\xdb\x0e\xc0\x30\xa2\x69\xcb\x25\xfc\xaf\x82\x84\x88\xd2\x45\xab\xbc\x83\x5c\xa5\x22\x01\x4f\x5f\x84\x02\xb4\x73\x65\x8a\xae\xab\x34\x14\x23\x91\xe2\x57\x77\x29\x15\x1a\xd5\x47\x6c\xf6\xed\x62\x62\x0b\xc7\x67\xcd\x9a\xff\x2a\x7d\x9c\x2a\xa6\x8d\x75\xd0\xac\x7c\xb6\x2d\x1a\xee\x1a\x01\xd1\x08\x8b\xdd\xdd\x70\x4d\x4c\x55\x1a\xc8\xd0\x71\xea\x39\x14\xbe\xd5\xc0\xff\xd4\xb6\x1a\x3e\x99\xd2\xa1\xab\x84\x12\x9d\x8b\x99\xea\xd8\x8a\x06\x1d\x41\x67\xe7\xe3\xe8\x13\x68\xae\xb0\xe9\xf7\xc5\xfd\x8b\x8f\xd6\xa4\x26\x30\x10\xf9\x82\x73\x57\xc3\x30\x94\x63\xf9\xe4\x71\x4d\x6c\xd0\x9e\x5e\xfc\xfb\x2c\xfe\x6a\x13\xf3\x3c\x39\xe3\x71\x63\x12\x65\x3c\x67\xb6\xe5\x29\xba\x3d\x17\x53\x80\x54\x6a\xb8\xe5\xa2\xb0\x9f\xea\x20\x46\x03\x54\xb4\x8f\x8b\x94\xb7\x22\x87\x4d\x7d\x9f\xfd\x84\xae\xc5\x24\x78\x1c\xba\x74\x87\xfa\x4d\x54\x50\x1f\xea\x32\xf7\xef\x49\x90\x20\xf1\x35\x13\x96\x28\x09\xd5\xb4\xbb\xd6\x30\x09\x6c\x12\xac\xb8\xd8\xf8\x66\x8d\xe6\x6f\x73\x1d\x62\x12\x24\x02\xd1\xcf\x12\x97\x75\xfb\x0a\x1d\x2a\x48\x9c\x60\x91\x90\x7d\x28\xbd\x68\xa6\x67\xd4\xd6\x41\xae\x4a\xb9\xe8\x52\x89\x82\x52\x40\xef\x62\x29\x0a\x55\x56\x77\xa2\xc6\x8f\x3b\x83\x33\x12\xa1\xd4\xa1\x15\x22\x6e\x67\xa1\xd7\x42\x67\x81\x88\x52\xc3\x8c\xe7\xd7\xad\x0a\x8f\x5d\xf6\xe3\x54\x30\x2e\x43\xe3\xb5\x8c\xa6\x63\xd0\x7f\x13\xc1\x14\xc7\x71\xf4\x56\xd6\xcd\xc1\x72\x50\x4c\x6e\x80\x81\xc4\x52\x6b\xbb\xb2\xef\x4e\x42\x41\xbb\x4a\x39\xce\x34\xd7\x29\x4e\x18\xc6\x09\xff\xfe\xf7\xe5\x48\x7f\xcf\x37\x73\xcb\xc3\xee\x20\x30\xfa\xb1\xd4\x16\x14\xe4\xdb\x65\x44\x9d\x77\xdb\xe4\x08\x58\xb7\xe2\x19\x73\x7c\x71\x2c\x10\x49\xc2\x30\x3a\x5c\xc0\xc7\x8d\xe8\x46\x01\xa7\x14\xf3\x99\x58\x29\xba\x3e\x42\xf5\x0a\x85\xba\xec\x9a\xf2\xd4\xf7\x88\x10\x29\xdd\x0e\xd3\xe7\xcd\x76\xfd\x70\x43\xe2\xa0\x6b\x64\x1a\x0d\xc7\x1b\x10\xcd\x5b\x7b\x83\x5d\x83\xb6\xb5\x3c\xd6\x76\xd8\x65\xaf\x2e\x1e\x3d\x8a\x5d\x89\x54\x32\xf4\x2b\x65\x59\x8e\x31\x54\x22\x05\x62\xab\x94\x84\x7a\x3f\x9f\xfa\x5f\xad\x58\xa0\x55\x75\x28\x9a\xaa\xcc\x77\xc8\xd1\x82\x50\xa5\xd6\x77\x7f\x2c\x9d\xee\x92\x3b\x42\xc6\x26\x71\x1f\xfc\xa1\xee\x6c\x01\x4c\x8a\xb6\xb3\xf7\x36\xcb\x61\x60\x08\x0b\x4d\x0d\xda\x68\x3f\xa1\xd0\x77\x67\x51\xa1\x30\xfc\xf8\x3d\xea\x24\xc4\x52\x81\xbb\xed\xee\x06\x94\xb8\xb4\xcb\x45\x7b\xe7\xeb\xe2\x67\x56\x95\xc5\x71\x86\x0a\xcd\x1f\xa9\x12\x2c\x36\xf9\xc8\x8a\xd6\x7e\x3d\xe0\x4c\xae\x2e\x07\xbb\x52\x74\xb7\xa0\x34\x16\x1f\x9a\x73\xa1\x47\xaf\x04\xa8\xe5\x37\xf2\x55\x4b\x7d\xe4\x1c\xbe\x14\x02\x1d\xdf\x04\x70\xa6\xf9\x60\x99\x46\x80\xac\x6f\xd3\x1a\xeb\x55\x15\x14\x75\x59\xad\xde\x44\xf3\x60\xc9\x6d\xc6\xaf\x40\x06\x01\x45\x72\x08\xb7\xe3\x59\x69\x98\x6f\xbe\x31\x12\x11\x78\xb0\x26\x3e\x60\x97\x9f\xe4\xbe\x4b\x1c\xcb\x1e\x69\x94\x9f\x48\x38\x1e\xfa\x92\x44\xa9\x77\x62\x71\x8e\xef\x1a\x38\x91\xc9\x4d\x10\x61\xd3\x08\x4d\x69\x55\x13\xa6\x50\x34\x49\x84\xc4\x8a\xa6\xed\x7a\xff\x55\xf6\x53\x12\x13\x60\x32\x05\x37\xe6\xad\xc8\xb4\xe5\x36\xbe\x2d\xab\xad\xb8\x4c\x03\x5a\x92\x0a\x40\xeb\xda\x07\xc1\x56\x6f\xd9\xe9\x5a\xc7\x6e\x7c\x27\x51\x94\x20\xe2\xc0\x55\x6b\x4e\xee\x33\xe2\x0a\x27\xa6\x38\x37\x65\x51\x1e\xcb\x73\xbd\xb2\xc8\xde\x6e\x14\x4b\xc6\x55\xd0\x5e\xf4\x7f\xce\xaf\xaf\xad\x67\x7d\x6e\x86\x23\x43\x32\xa9\xd2\xb0\x53\xaa\x45\xa3\x75\x20\x51\xc8\x02\x19\xd3\xd4\xcb\x8d\xcd\x4b\x3d\x8d\xb7\x26\x19\x4b\xe1\x13\xe1\x3f\xfa\x15\xdf\x7f\xbe\x24\x4d\xa8\x83\x64\xec\x44\xe1\xe8\xcc\x66\x87\xbc\x4c\x64\x22\x5c\xd7\x67\x54\x47\x9d\x5f\x9c\x64\x02\xa9\x95\x49\x54\x28\x89\x3c\xc9\xd2\x4f\x5d\xf6\xf1\xb1\x9c\x0a\x54\x0f\x2a\xe5\xbf\x40\x35\x3b\xa1\x7c\x9e\x50\xa6\xc4\xda\xd7\x35\x34\xbf\x5d\xd4\x15\xaa\xf2\x6f\xd7\x99\x4b\x99\xd2\x18\x13\xfd\x2f\x45\x36\x5e\x91\x64\x1a\xca\x50\x3a\x40\xe5\xf2\xfc\x9f\xff\xac\x84\x81\xae\x2d\x8d\x71\xdb\x40\xce\xf0\xac\x70\xa8\x4f\x1f\x1e\x9b\xdf\x04\x65\xaa\x2c\x16\xdc\xe7\x5d\x3b\xcc\xac\x6b\x17\x22\xa6\x74\x24\x75\x72\xb5\xf5\x4a\xa1\x00\x27\x4a\xa6\x4a\xdc\xbe\x6d\xa0\x8b\xf8\x53\x48\x42\x12\xcb\xd3\x68\xaa\xb2\xb6\x19\xe6\xf1\x97\x96\x11\x24\x5e\xb0\xf4\x47\xd6\x58\xc3\xf4\xe5\x79\xf3\x65\x72\x5b\x2a\x87\x27\xcf\xb1\xec\xea\xb6\xac\x30\x4e\x37\x5e\xdc\xa5\x0a\x93\x50\xbb\x18\x65\x59\xf4\xcc\x1b\xf3\x23\x45\x45\xb6\x6c\xe1\xd0\x3a\xe8\xfb\xd2\xd7\x0e\xcf\x27\x4e\xa5\x8a\x25\x66\x80\x9d\x46\x89\xc8\x47\x02\xa4\x51\x60\xab\xbb\x7a\xfd\xd1\xbf\xd9\x9f\xdd\xd1\x9a\xa4\x68\x1b\xbd\x48\xef\x7f\xf8\x06\x11\x32\x4f\xa1\x86\x95\x5f\x03\xf7\x53\x6a\x91\x24\xbd\x82\xd7\xff\x94\xf2\x79\xca\x0f\xd2\x3f\x0d\x24\x0c\xd3\x4f\xaf\xd9\x4f\x18\x6b\xeb\x4e\xc7\xf2\xe0\x02\x20\x79\xc8\xbc\x2c\xdc\x29\x2f\x67\xcb\xd3\xdb\x7e\x4a\x24\xdc\x47\xac\xb3\x2b\x44\x8c\x04\x1d\x44\xa1\x87\xfe\x5e\x51\xf7\x4c\xd2\xbc\xd2\x80\xd0\xaa\x8b\x9a\xe5\xa3\x85\x43\x05\x41\xa2\xe2\x2e\x9b\xb7\xef\x68\x61\x86\x45\xaf\xa3\xff\xfd\xb4\xe1\xbf\xff\x5f\xf6\x4f\x7f\x71\x63\x6d\x88\x3c\x6b\x37\x24\xd8\x43\x75\xac\x27\x65\x92\x8a\x30\xbb\xf4\x39\x26\x52\x04\x74\xb5\xcb\xcc\xf0\x89\xfd\x88\x54\x14\xac\x5e\xcf\xe2\xe6\xf7\xcd\xee\xe9\x79\x5c\x78\xa8\xc2\x88\xe3\x6b\xc5\x9c\xfe\x93\x59\xbc\x14\x99\x2a\xab\x62\x53\xdc\xb6\xae\x61\x77\xc5\x90\x51\x5b\x30\x6f\xb3\x54\x13\x8b\x5c\x85\x3c\x4a\x52\xb7\xbf\x36\x2e\xe2\x66\x19\x7e\x9c\x3c\xec\x80\xa9\xb5\xed\x0e\x71\x12\xf7\x80\x17\x64\xd2\xb2\xe2\x30\xdf\xae\x33\xd8\x2a\x0a\x38\x96\xf9\x3d\x8a\xcc\x9f\x20\xa2\x29\x9a\x23\x15\x9c\x72\x6b\x0b\xf8\x06\x19\xa3\xda\xe5\xe1\x5c\x9c\x84\x7a\x5f\x9c\x2b\x71\xa5\x81\xdc\x76\x03\xeb\xe2\xa2\x9f\xd0\x71\xea\x3c\x19\x5f\x25\xd0\xc7\x57\x15\x53\x69\xea\x66\xc7\x4e\x55\xe2\x74\x69\xbd\xae\xd1\xd0\x53\x71\x92\x78\xd5\xf5\x76\xe3\xce\x8a\xd7\x5d\x53\x89\x06\x5e\x2f\x57\x1d\x39\xd2\x7c\xed\x5a\xc7\xa4\x5d\x16\x1e\x06\x40\xe5\xb1\xba\x51\xdb\x5b\x44\x88\x12\x3c\xc8\xf3\x65\x9b\xfd\x82\xdc\x2a\x10\xfe\x55\x36\x68\xb4\x1e\xa9\x18\x0c\xe7\xdd\xe4\x3e\x9e\x6a\xcc\x86\xcf\xad\x6f\x2a\x11\x2a\x71\xc4\xde\xed\x8c\xf9\x86\xd3\xa6\xdf\x01\x15\x67\x04\xe1\x1f\x03\x49\xb6\xc7\xf2\xbe\x2c\x5e\x91\x25\x78\x4e\x05\xc4\x1f\xc8\x49\xe0\x6c\xf6\x75\x75\xc6\xe8\xd7\xfe\xad\x82\xfa\xad\x75\xcc\x26\x5d\xb5\xd4\xb4\xa3\x5c\x42\x86\xb2\x87\xac\x87\x74\xa8\x34\x20\x68\x7a\x9b\xec\x17\xe8\xfb\xf2\x75\x72\x78\x1a\x08\x4c\xbc\x9d\x11\x26\x3f\xb0\xf2\x54\x1a\xc5\x1e\x9e\x80\x16\xfb\xf8\x2d\xb5\x9b\x4e\x32\x00\xa9\x6f\x0a\x53\x0e\x2c\x64\x25\x92\x10\x43\x07\x62\x07\x8d\x45\x84\x4d\x2e\xac\x98\x8e\xa4\xbf\xef\x1f\x90\x39\xfd\x78\xdf\x2a\xac\x34\xb5\x05\x7f\x3c\x88\x2c\x9f\x1e\x6e\xc2\xd8\x9b\x1e\x90\xa1\xf5\xf7\x54\xc0\x4b\xdd\x3d\xb7\x8e\x34\xba\xcd\x65\xff\x83\xc1\xcd\xb7\x1d\x93\x8d\x7a\xdb\x3b\x23\xeb\x93\xb2\xca\xf1\x30\xd4\x52\x7a\x3e\x4b\x9b\xd1\xea\xf5\xec\xaf\xcd\x85\xf1\x8d\x42\x12\x23\x95\x80\x0d\x8d\xda\xe0\xd9\x74\x3a\x00\x58\xc2\x4d\xa1\xf5\xbe\xfc\xaa\xfa\x42\x19\x1a\x60\x98\xa7\xca\xd4\x5b\xeb\xdd\x18\xf3\x55\xc2\xcb\x1f\xc4\x62\xcf\x4c\xf8\x52\x43\xb5\x68\xfa\xc4\xfc\x0c\xef\x1f\x0b\x74\x10\x48\x4c\x12\x77\xfa\xa8\x0e\x6c\x7e\xcd\x0a\x3d\x67\x29\xeb\xd6\x72\x0f\xba\x5d\xf7\xf7\x3e\x6e\xe1\x98\xc4\xc6\x17\x23\x54\xa0\x97\x7c\x12\x97\xce\x42\x9f\x7d\x78\x4d\x92\x04\x69\x43\x97\xe7\x0b\x5a\x40\x9f\xc4\x97\x35\x4d\x52\x0c\x0b\x78\x8e\x82\x0f\x51\xe9\x87\xac\xc0\x42\x84\x71\x71\xf7\xf8\x30\x69\x84\x27\x2d\xf5\x74\x1c\x87\x21\xb1\x91\x77\xec\x75\xe4\x28\xe6\xce\x35\x54\x77\xd0\x6c\x2d\x9b\xc2\xfe\xd7\x55\xcd\xc2\xe4\xbd\x46\xc2\xee\x54\xca\xa7\xf3\xee\x4a\x91\x0f\xf5\x5a\xda\x3e\xd2\x56\xee\xcb\xf3\x85\x04\xc1\xbb\xf7\x05\x5c\x2b\xd6\xc0\xb8\xa4\x20\x82\x96\xe1\x54\x76\x6d\x29\xc1\xfa\x2a\x47\xf6\xb5\x5d\x3f\x1f\xd6\xfb\xef\xeb\xe7\xc3\xf6\x79\x3d\x28\x93\xd3\xb1\xe6\xb8\x17\x1e\xec\xe4\x1a\x8a\x2e\xce\x8e\x7e\x9d\x70\x83\x71\x56\x24\xdb\xb9\x45\x0a\xf8\x91\x02\x8c\xef\x26\xad\x08\xab\xd5\x20\xf9\x92\x80\xcb\x66\x43\xe6\x7a\xf8\x73\x69\x9a\x06\x03\xa3\xf6\x60\x4b\x67\xbf\x75\xcd\x02\x99\x14\xee\x76\xdf\xbf\xf2\xd9\x34\x0f\x38\x32\x6d\x5a\x4a\xa2\x71\xde\x5e\xf3\xc0\x80\x55\xdd\xd4\x4f\xc6\x20\xea\xef\xeb\xcf\xc7\xa5\x42\xcc\xd2\xee\xe1\x7e\x26\x10\xa3\x53\xca\xb0\x36\xfd\x79\xbd\x5c\xdf\xaf\x9e\x36\x8f\xfe\x42\xa9\xb4\x55\x2e\x5b\xd1\x54\x65\xf1\x54\x40\xcf\x9d\xdc\x75\xd1\x11\x4e\x82\xc2\x25\x50\x9c\x99\xda\x7d\x77\x91\x1a\xd4\xda\xdf\x41\x9e\x7b\x85\x8d\xf6\x67\x1d\x62\x6e\xfa\x7b\xa9\x73\xf4\x9a\x3a\x1b\x40\xcb\x84\x22\x79\xc6\x51\xfc\x5a\x89\x93\x8b\xb6\xf9\xe3\x14\x8d\x2d\xef\x11\x9a\xf1\xf5\xd5\x9c\x54\x51\x28\x1c\xe8\xeb\x4e\x1c\xe1\x41\xa8\xb7\xac\x80\xab\x4e\x12\x37\x08\xa1\x75\x7b\x8a\x5b\x00\x3d\x0a\xc9\x4e\x4d\xd8\xaf\x82\x0f\x9f\x70\x74\xb5\x57\x51\x80\xb6\xf6\xf9\x34\x8c\xd1\x6a\xad\x63\xe3\x99\x0c\xca\xf5\xb1\x35\x83\xa1\x5a\xfc\x7c\x75\xee\xe3\x9c\xa3\xed\xcf\x08\xdc\x12\x93\xad\xa0\xce\x2a\x31\xc2\x7c\x69\xd0\x96\xcf\x52\x68\xdd\xcc\xda\xe3\xe3\x95\x06\x34\xa0\x29\x6e\xab\x2e\x6f\xaa\x73\x17\x3a\xd2\x86\x04\x88\xa6\xc5\x22\xa5\xec\x9a\x5f\xc4\x77\x4b\x00\xc9\x15\xce\x45\x5d\xe6\x4e\xb8\x64\x84\x1a\xd7\x86\x9b\xc4\xca\xbf\x3d\x83\xd0\x93\x5a\x2b\x08\x88\x15\x3d\x1d\x08\xd1\x8e\x92\xf2\xd1\x68\x42\x40\x10\xc6\x28\xc6\x21\x50\x19\xad\xab\xb9\x1a\xe5\xb8\x20\x88\x25\x66\x2a\x30\xf1\xe2\x09\x8e\x7c\x1b\xb7\xa1\x35\x0d\xae\x5a\x77\xcc\xcf\xc5\x02\x20\x51\x82\xea\x1a\xcb\xdf\xd6\x7f\xac\xca\x11\xe3\x08\x90\x24\x44\x20\xde\x51\xfc\x6a\x8d\x94\x8e\xdb\x17\x9b\x52\xb4\xa5\x0e\x52\xe8\x57\xb8\xad\x00\xfe\x33\xb1\x41\x81\xc8\x94\x39\x3a\xda\xdd\x5b\x76\x72\x6c\x24\xab\x5c\xd4\xf5\xf2\xf2\x50\x6a\xc8\x47\x45\x53\x40\x63\x45\xc3\x41\x9d\xd1\x52\xd4\xd0\x69\x2b\xb5\xed\x89\xc1\x44\xe1\x3e\x53\x7b\xa1\xf6\xa5\xd3\xce\xb3\xac\x19\x7f\x91\xf7\x1f\x2f\x0d\x40\xb9\xc2\x04\xc5\x6e\xbd\x7a\x7a\xbc\x39\xbc\xec\xd6\xcf\x87\xd5\xcb\xbe\xbb\x92\x52\x4e\x03\xa0\x42\x16\xac\x45\xa1\xdd\x66\x58\x8f\xf8\x4a\x20\x8c\x42\x04\xd3\x9e\x86\xd2\x92\xed\xef\x49\xea\xd5\xab\x3b\x83\x63\xea\xbf\x74\xa5\x4a\x10\x72\x40\xca\xbc\xd7\xaa\x3c\x9f\x6c\xf2\x0b\x9f\xdb\x7a\x39\x93\x5b\x0f\x25\xc1\xaf\x6d\x63\xff\x33\xb6\x3f\x44\xa1\x42\xfb\x41\x75\x97\x9b\xd9\x3e\x21\x92\x41\xec\x82\x71\xc1\x2f\x0f\xbc\xfb\x51\x89\xd3\x69\xba\xbc\x00\x23\x21\x62\x9e\x5c\x9e\xf3\xa5\xee\x42\x58\xc0\x52\xc0\x17\x99\xd5\x0e\x27\xe6\x7e\x4f\x82\xd8\xc8\x8e\x2f\x0c\x35\x27\xac\xcf\x3a\xbe\xd5\x84\x1a\x7c\x4f\xcb\x0a\xc4\x7b\x77\x2c\x8f\xd3\xc0\x4b\x4f\x1e\xc1\x67\x04\xbe\x0d\x72\x44\x90\x68\x2b\x1d\x88\xda\xd2\x15\x34\xe5\xcc\x0a\x0f\x9c\x08\x17\xdb\xe9\x48\xcb\xac\x68\x70\x33\xe2\x24\x02\x4e\x00\x87\xf9\xc1\x2a\x53\xc2\xec\xb9\x1c\x3f\x4a\x6b\x06\xac\x0b\x1d\xfa\x9b\xe5\x8c\x63\xf8\xc0\xca\xc3\x5b\x6a\xb7\x39\x24\x9c\xef\x1e\x83\x2f\xd9\xc7\x80\x36\x26\xc4\x45\x33\x5f\xa2\x0a\x3c\xe1\x98\x5b\xb7\xb1\x09\x0c\x60\x8e\xb9\x28\xae\xf2\x68\x9f\xe3\xa4\x21\x35\x29\x06\xd4\x5c\x44\xe0\x36\x13\xcd\x16\xaa\x75\xf3\x36\x28\x22\x04\xe1\x2a\x3c\xf3\xb2\x7c\x3f\x9f\x36\xbb\xa7\x90\x90\xf8\x40\x0e\x22\x3f\xbd\x89\x03\x1d\x7d\x03\x41\x2c\x97\xd1\xc3\x65\xa3\xcb\x7c\x55\x8e\x19\x70\x40\xb0\xd0\x46\xf5\x3d\x02\xbf\x50\x65\x55\x81\x6a\x5c\xf9\xc7\xb2\x2c\x74\xbd\x2f\x7f\xd8\xb0\xb9\xf5\x8e\x7d\xd4\xbd\x3b\x47\x4a\x11\x07\xee\x0a\x6b\xd1\xa6\x98\x5d\x98\x41\x52\x8d\x99\xad\xe5\xf2\x71\x74\x06\x99\x00\x3a\xc2\xbb\xf3\x09\x2a\x25\xaa\x71\xa3\x88\xb0\x9a\xf8\x67\xd9\xc0\xae\x10\xa7\xfa\xad\xf4\x25\xcc\x23\x72\xaa\x99\x0f\xa9\xa8\x95\xd5\xb0\x75\x7a\x58\x36\xd6\xf5\x66\xff\x1c\x1c\x10\xff\x73\xee\x68\x96\xa2\xc3\x88\xe8\xd2\xfb\xac\x6e\x76\xad\xe5\xa4\xae\x66\x9e\x8a\x25\x71\xd3\xa8\x75\x6b\xdb\x65\xc4\x05\x66\x5d\x07\x4d\x2d\x29\xc5\xa9\x7c\xef\x0a\x20\x47\xd1\x11\xd0\x31\x45\xed\xc9\x5c\x20\xe6\xe1\x1d\xb1\x13\xe3\xab\x68\xcd\xb1\x18\xaf\x40\xea\x68\x0c\x34\x2f\x8a\xcb\xbe\x5c\x14\xd3\xed\x0b\x62\x3b\xed\x94\x28\xf4\xe5\x5e\x74\x16\x1e\x80\x14\xb8\xbf\x1f\xb3\x22\x2b\xce\xc7\xed\xb0\x2e\xeb\xef\x67\x61\xb5\x11\x5d\x5f\x13\x4a\x5f\x31\xe6\x59\x73\x7e\x2f\xfb\x6c\xc7\xf8\x8a\x46\x25\x2a\xe8\x68\x6a\x54\xb3\x2f\x97\xe7\x0c\x99\x15\xdd\x26\x38\xea\x6e\x82\x44\x19\x4f\x59\x05\xa2\xed\x36\x53\xf1\x6c\x02\xce\x03\x5f\x45\x8f\xae\x89\xc7\x00\x78\x44\xc4\xa4\xbb\xe1\xa1\x03\xf6\x0e\x21\x11\xed\x7f\xbd\xca\x02\x0b\x0c\x21\x89\x8f\xa4\x6c\x5d\xb4\xa9\xfe\xc4\xe9\x31\x44\xc5\x63\x9f\xad\x75\xf6\x5f\xbd\x4a\x08\x0b\x0c\x35\xd2\xa7\xb8\x86\x38\x20\x13\x6a\x8d\xc1\x5f\x87\xf8\x04\x17\xcf\xf2\xcd\x11\x63\xe8\xfa\xe2\xb6\xf3\xfc\x96\x15\x65\xd7\x12\x53\xcc\xe7\xfe\xb4\x4b\x4e\x56\x16\xb7\x22\xcb\xa7\xce\xad\x89\x62\x40\x33\x5b\x89\x5c\xcd\xc4\xa6\x4d\x94\x6a\xaf\xf5\xb2\xcb\x33\xdd\x2e\x86\xc3\xbc\xba\xef\x65\x52\x8b\x4b\xd5\x1a\x63\x41\xf3\xb3\xd6\xb0\x20\x54\xd6\x58\xda\xd5\xa7\x6b\x9b\xc8\xf7\x02\xe3\x6b\x7f\x7e\x94\xd5\xa7\x20\x02\xd7\x3b\x21\x0c\x39\xc4\x0a\x50\xa2\x7e\x1b\xce\x77\x93\x28\xcb\xef\x88\xe5\xac\xef\x50\x8c\x36\x73\xc3\x8d\xc2\xd4\xd3\x7d\xf9\x3a\x2a\x5f\xb9\x29\xd5\xf9\x08\x45\x63\xc9\x87\xf4\x3c\x49\x8d\x49\x09\x40\x38\x8d\xeb\xd7\xcf\x1e\xd6\xe6\x2f\x92\xb2\x58\x4b\x47\x2c\x3a\x32\x1c\x4d\x1a\x4b\x24\x88\x39\x66\xc5\xba\x79\xdb\x42\xf5\x58\x5e\x95\xd0\x98\x54\x86\x29\x0c\x95\xfc\xbf\xb6\x78\x8d\x60\x1a\x61\x61\x58\x27\x12\x2d\xe1\x35\x2b\x3a\xaa\x57\x16\x18\xc9\x44\x4a\xad\xf7\xda\x3a\x39\x9d\x50\xf9\xc8\x3e\x31\xca\x18\xd4\xe3\x81\x5f\x36\x12\xfb\x5d\xe4\xe6\x3e\xeb\xf2\x24\x46\xcb\xc0\x4b\x94\x3c\xc2\x87\x03\xc5\xcf\x7f\x1c\x60\x96\xe9\x01\x79\xf7\x7e\x66\x0d\x9a\xff\xcb\x6c\xaa\x81\xe9\x19\x07\x0c\x08\x85\xdc\x04\x38\x9f\x2c\x20\xdd\x5f\x15\x74\x88\xa6\xb8\xbc\x16\x01\xbf\x0e\x19\x76\xdb\xa0\x01\x43\x11\x18\x82\xfe\x82\x83\x63\xdf\x83\xe9\x3e\x83\x71\xda\xcb\xcf\x87\xc7\xc3\xcd\xe1\xc7\xe2\xfe\x7e\xbd\xef\xda\x68\x80\xce\x3e\x14\x7a\x61\x49\x51\xba\x96\x84\x52\xd9\x95\xa7\x15\x05\xe4\xf5\xdd\x39\xeb\x90\x32\xc6\x48\xc0\x9c\x15\xb2\x65\x2c\xc5\xd8\xba\x20\xc8\xfd\x29\xdd\xf2\x79\x3c\x1f\x37\xaa\xec\x37\x65\x12\x04\x51\x80\x7a\xf6\xce\x3c\x71\xac\x78\xbe\x31\x0e\xa8\xe5\xd7\x85\xd6\x4b\x50\x43\x63\x78\xf8\xee\x49\x10\x68\x89\x29\xff\xdd\x9f\xab\x95\x3f\x9a\x24\x16\x10\x92\xd5\x4f\xe7\x46\x95\x08\xaf\x1b\x85\x0e\x49\x40\x38\x47\xc4\xd7\x6a\xfb\xc7\xd0\xc8\x25\x01\x25\xa9\xb2\x84\xc9\x06\x39\x99\xac\x0f\x3c\xae\xcb\x26\x01\x4d\x42\x2c\x21\x5d\xbf\x3c\x3e\x3d\x6c\x16\xdd\xcf\x42\x7b\xf3\x73\x83\xc0\xd5\x2e\x05\x30\x7e\x33\x54\xaa\xd4\x93\x1e\x66\x4d\x3e\x1b\xd9\x25\x01\x05\x5b\x54\x8d\x45\x6d\x65\x01\xae\xa8\x6d\xfd\xef\x51\x3d\x2b\x09\x42\x61\xb5\x9f\x6c\xa5\xf2\x55\x1d\x93\xeb\x15\x09\xcb\xd1\x2a\xcf\x95\xd7\x6b\x1b\x7a\x5c\x24\x88\x94\x64\xaa\x23\x08\x7b\x2a\x96\xf0\x26\x72\x33\xb9\x73\xa6\x4d\xe8\xa8\x4a\x6c\xf0\x72\x79\x59\x0f\x32\xaa\x53\xee\xf8\xb9\xe2\x29\x12\xc4\xd2\x32\xa8\x34\x9f\x54\x29\x4c\x62\xea\x24\x48\x52\x8a\x81\xdc\xb7\x8b\xae\x4a\x57\xd5\xfb\xd0\xa3\xb3\xff\x36\xbe\xc7\x44\x05\xc8\x12\x7e\xbb\x5c\xaf\xfd\xc3\x25\x46\x63\xd5\xb8\xcd\x02\x76\x24\xc0\x8c\x04\x22\x04\x1c\x6a\x55\xeb\x0b\xd1\x41\x21\x1b\x09\x04\x10\xcc\x57\xfc\x29\x8a\xd7\xfa\xed\x2c\xb2\xbf\x8c\x73\x92\x40\x12\x86\x1c\x10\x58\x35\xd4\x6e\xac\xea\x6d\xbc\x8d\x90\x40\x9a\xc0\xca\xb4\x61\x48\xda\x85\x26\xfd\x35\x15\xb5\x4a\x6d\xa8\x12\x2f\x54\x0e\x9d\xaa\x76\xdb\xc8\x38\x4a\x6f\xdd\x65\xaf\x69\xf7\x1b\xa7\x98\x41\x5b\x89\x06\x5e\xcb\xea\x72\x03\xd6\x15\x18\x5f\x53\x29\x19\x85\xc3\x25\xb6\x9e\xf0\xf5\x90\x40\x3b\x6e\xff\xcd\xea\x69\xd7\xfa\x03\x8e\xc5\x75\x72\x22\xa0\x21\x58\xdc\xbc\x1d\x8c\xc3\xda\x8a\x4d\xa1\xe1\xd7\x84\x7c\x88\x04\x10\x51\x8c\x4f\xb8\xea\x98\xdb\xb2\x6a\xf7\xb0\x6b\x0d\xbe\xc9\x51\x82\xa2\x3a\x5e\x27\x1c\x24\x8e\x65\x71\x25\x1c\xf4\x45\x00\xc7\x9f\x47\xb1\x14\xe1\x83\x96\xe3\xc2\x65\xb9\x26\xdb\xcc\x78\xfc\x80\xb1\x04\xcd\xd6\x7b\xfc\xfb\x59\x54\x0d\x54\x3b\x10\x75\x59\x7c\xeb\x42\x38\xd8\x4d\xc3\x50\x8b\x15\x1a\x31\xe4\x08\x18\xdf\x87\x89\x22\x5c\xee\x06\x44\x5c\xbd\xcb\x49\x02\x23\x0d\x1f\xc1\x48\xc7\x4f\x68\x7b\x91\x20\x61\xc2\x61\x23\x36\x27\x53\xfb\x64\x76\x3d\x09\x0e\x13\x12\xe8\x90\x38\x4e\x71\x0d\xeb\xe6\x6d\xf7\xf6\x49\x79\x0e\x21\x84\x46\x3d\xe5\xd1\xc3\x39\x6f\x9e\x7e\x42\x65\xf2\xf2\x63\xd6\xc6\x23\x84\x44\x92\x46\xbe\x70\x02\xd5\x0a\xb3\xe6\xed\xa9\x79\x83\x6a\xcc\xe0\x3f\x39\x8a\x1b\x32\x24\x25\x68\xcd\xcc\xdd\xa5\x6e\xe0\x1a\x8d\x3f\x3e\x90\x9a\x80\x2a\x6f\x31\x7a\xe4\x24\x21\x61\xbb\xca\xdb\xf7\x65\xa9\x9f\xee\x44\xdd\x29\xb7\xf6\x47\x87\x2c\xc2\x18\xa2\x65\x88\x79\x70\x16\x92\xcf\x7b\xf9\x4e\x9a\xa1\x99\xbf\xdc\xaf\xd6\xfb\xd5\xe4\x0c\x11\x55\xca\x66\xc1\x1c\x71\xce\x2b\x74\x24\x28\x84\x44\x22\x45\x14\xf9\xfe\x0d\x96\x50\x37\x5e\x26\xb2\x6d\x51\x12\xe9\x51\x8e\xe2\x1d\xb6\xe2\x72\x9c\x92\x46\x12\x92\x50\x8a\x95\xfa\xfb\x8f\x72\x61\xaa\x4c\x4d\x07\xce\xf8\xd3\x27\x0c\x02\x17\x7c\x79\x3c\x1f\xdd\x1c\xee\x80\x0a\xed\x48\xb0\xaf\x0f\x06\x83\x61\x02\x06\x24\x84\x07\x56\xc6\xc0\x16\x26\xda\x81\x36\x5a\x9a\x49\x4a\x39\x32\x85\xdd\x41\x01\x75\x56\x2f\xcf\x17\x1b\xa6\x98\x9d\x29\x24\x0d\x2d\x27\xc1\xfd\xcb\xef\xbd\xc2\x43\xfb\xbb\x08\x11\x22\x73\x67\x93\x3d\x7d\xbc\x8b\x10\x21\x00\x59\xac\x84\xd6\xb7\x15\x00\xba\xa5\xd5\x5f\x55\x29\xf9\x63\x95\x46\xbe\x1f\xab\xaa\x83\x7a\xe9\x61\x70\xd8\xae\x9f\x57\xeb\xc7\xbd\x15\x7f\xf6\x97\x91\x44\xa3\xcb\xd4\x9e\xe8\xdb\xe8\x45\xca\x28\xb2\x7c\x40\xe5\xc7\x69\x90\x32\x26\x44\xca\x88\xd8\xfd\x4f\x8a\x06\xf6\x1f\xe5\x2d\x14\xc7\xf3\xa1\x6b\x56\x01\x26\xe4\x0f\x42\xeb\x6b\x6e\x0f\x42\x14\xd3\x08\xb6\xda\x75\xb8\xa5\xdb\xb2\x7a\x46\x98\xe9\xa4\xa7\xa6\x14\x39\xd7\x7c\xcd\xd7\xe3\x72\x75\x45\x0c\x41\x08\xd0\xd8\xd7\x3e\x94\x5a\x2f\x0a\xdd\x4e\xaf\x25\x7c\x92\x70\x22\x04\x58\x8c\xb8\xa9\xdf\xc4\xf1\x3c\xf0\x0f\x08\x01\x6e\xf5\x70\x5a\xa3\xa4\x5e\x9c\x9b\xd2\x55\x2f\xf5\xc1\x22\x42\x40\x72\x3d\x50\x54\xb5\x35\xa7\x7f\x15\x7d\x1c\x8f\x1c\x23\x22\xee\x92\xb1\x0f\x59\x81\xc5\xba\xa3\xc7\xa6\x41\x44\xd3\x2e\xde\xbf\x1b\x24\x91\xc7\x0f\x42\x83\x58\x73\xe2\xb7\x2a\x33\xb2\xce\x68\x20\x25\xed\xca\x3a\x6d\xbe\xa8\x7e\x2a\xba\x56\x13\x50\xee\x3c\xe0\x49\x92\x6d\x7c\x2b\x34\xa0\x5e\xac\xf2\xe9\xfc\x33\xd3\x65\x95\x89\x75\xa1\x4f\x65\x56\x34\xdf\xe6\x8f\x08\x0d\x22\x4f\x5a\x37\x6a\xc4\x5f\x34\x3b\x52\x29\x8d\x13\x69\x4b\x49\xdb\x79\xba\x53\xa2\x52\x59\x73\xb1\xeb\xbe\xbf\x5b\xca\x55\xe4\x52\x17\xde\x45\xd9\x56\xa5\xc9\xfe\x62\x16\x50\xaa\x62\x4b\xa2\x68\x5f\xf2\x27\x55\x73\x7f\xf9\xef\xff\x06\x29\x4f\x68\x98\x5a\xb6\xfa\xe5\x66\xbf\x7a\xda\x3c\x6c\x1e\x37\x77\xdf\xba\x26\xa3\xbb\x20\x61\x57\x69\x0d\x53\xbb\x82\x86\x40\x50\x99\x1a\x46\xb1\x27\xd7\x18\x85\x16\x53\x72\x5f\xbe\x2e\xcb\x72\x2a\x29\x34\xb7\x09\xd2\x48\x58\xc5\x1c\xc4\x04\x5c\x55\x08\x13\xca\x68\x84\x08\xc6\x2e\xc1\x69\xcb\xe6\x97\xcf\xde\x4c\xa7\x2c\x4a\xd0\x46\x5b\x5d\x8a\x77\x95\x89\xea\x3f\xc3\xf9\x42\x59\x12\x60\x69\x9e\x8d\x4f\x2e\x47\x95\x9f\x9e\x9b\xba\x9b\x39\x94\x25\x69\x2c\x3a\x63\xc1\x97\x60\x6d\xab\xb2\x34\xa8\x12\x6d\xe9\x60\x7c\xe7\x34\x41\x52\x1c\x4b\x06\x32\xdc\x94\x5d\x87\x24\xe2\x91\x8d\x54\xbe\xda\xdd\x74\xc6\xe0\xec\x09\xc1\xbf\xac\xea\x25\x34\x11\x96\xeb\x12\xe5\xd6\xb2\xba\xa3\xfc\x1d\xbd\xcd\x44\x09\x2c\x2b\xa9\x5a\xd3\x2c\xab\x6a\x2b\x4e\xeb\xdf\x05\x17\x32\x91\xf6\x86\xad\x5e\x98\x29\x0f\xbe\xda\xb7\x4f\x67\x11\x9a\x06\x29\x16\xfa\x6c\x1e\xef\x56\xf7\xdf\xba\x1f\x35\x22\x41\x55\x69\x6c\x9e\x61\xd9\xb5\x24\x0a\xa1\x5a\x22\xab\x6e\xaa\xf2\xe4\x30\xc9\x96\x56\xdf\x75\x11\xa9\x0a\x43\x2f\xfe\xd2\x97\x9e\x7e\x56\xb0\xf0\x15\xb4\xe6\x13\x58\xc5\x78\x54\xc9\x38\xc2\x5b\x3a\x9c\x6c\x46\xe7\xa6\x84\xfa\xb1\x6c\xd6\xbf\xa6\xac\x9e\x6d\x57\xc6\x75\x57\x7e\xe5\x9d\xb1\xf9\x95\x46\x05\x12\x17\xbd\x0a\x71\xc7\x37\x3b\x47\xce\xbb\xb3\x82\x0f\x56\xf8\xb0\xfe\x2e\xea\xb7\xb1\xc4\x18\x23\x54\xc7\x54\xfb\x50\x59\x2e\xea\x89\x55\x4d\x35\x17\xb8\xdc\xae\xf5\x87\x28\xc6\x03\x58\xeb\xc0\xf3\x1b\x6d\x1a\x38\x8e\xbc\x3c\x6a\x08\x60\xe4\x14\xd5\x7b\x51\xae\x73\x10\x7a\x25\xd4\x70\x93\xf6\x70\x67\xc7\xf7\x3a\x19\xa4\x26\xe5\x69\xd0\x7f\xbd\x5b\x24\x83\xef\xbf\x9c\x51\xb6\xce\xc3\xcd\x88\x76\xab\x0c\xa7\x67\x30\x14\xfd\x98\xd5\xf7\xf5\x1f\x63\xc8\xe1\x97\x23\x3a\x0c\x62\xc1\x11\x5b\x95\xd5\xbf\x97\x88\xa1\x1f\x9b\x2f\x61\x20\xa3\xc0\xd5\x52\x39\x12\xf1\x65\xa6\x67\x2a\xaa\x49\x18\x28\x8e\x19\x27\x53\x56\xef\xbd\xfb\x15\x12\x1d\x82\xf3\xe0\x5f\x6a\x9f\x01\xec\xa7\x7b\x48\x4c\x80\x76\x6c\xaf\xaf\x65\x53\x56\xfe\x78\x9a\xd8\x08\x3a\x1c\x4f\xcd\xa5\xc3\xd1\xf8\x46\x6e\xc7\x98\x43\x82\x5e\x4d\xff\x90\x1a\x81\x3c\xe2\x75\x23\xde\x61\x86\x38\x93\x84\x21\x49\x30\x95\xb1\x59\x3d\x1d\xec\x2e\xde\x35\x08\xbf\xa5\x3d\x97\x39\x8c\x84\x54\x48\x18\x91\x14\xe3\x78\x6e\xf4\x79\x71\xa4\x07\x57\x3d\x3a\xbf\x13\x87\x11\x67\x28\xc0\xb4\x12\x79\xfe\x8c\x38\x8d\x4f\x02\x85\x24\x8c\x52\x8d\xc5\x2a\xb5\x7a\x03\x7d\xce\x61\x9f\x7d\x52\x31\x4c\x42\x16\x24\x89\xf4\x65\xe3\xc8\x22\x82\xe0\xb6\xe1\x6c\x0c\x19\x0b\xe3\x21\x13\x5c\xeb\x63\xdc\xc2\x97\x6a\x3f\x78\x94\xf2\xf9\xb9\xaf\xae\x1f\x73\x74\x1d\x74\xb9\x3d\x7f\x92\x12\x27\x21\xd3\x56\xa5\xf0\x15\x9a\x9d\x2a\x3f\xa1\x19\x1e\x78\x5c\x21\xd3\x06\x77\xb9\xc7\xb2\x58\x58\xa9\xa1\xac\x1c\xe8\x53\x0f\x0b\xd6\xfd\xa1\xfc\x9f\xd3\x8b\x9a\x04\x8d\xef\xa5\xa8\x33\x35\x19\x1a\x71\x90\xa6\x96\x28\x00\x8e\xd9\xf9\x68\x49\xf8\xfe\xc2\x42\xbb\xca\xd1\x90\x30\x6e\x0d\xc5\xae\xd8\xb0\x39\xd7\xa3\x72\xc8\xc1\x40\x8f\x69\x1c\xe8\x4e\xdd\xfd\xdd\xd5\xc8\x39\x1a\xd8\x3e\xda\x4a\xc2\x24\x15\x18\xfb\xed\xd7\xe8\xab\xab\x4f\x1e\x33\x11\x22\x91\x9d\x22\xee\x95\x01\x33\x1e\x58\x89\xd6\x68\x2c\x97\x45\x7e\x89\xe3\xb8\xbb\xaa\x86\x44\xf4\x8c\xd1\x33\xf7\xc5\x59\x12\x49\x1f\xbf\xfd\x85\xb5\xaa\x65\xb1\xdf\x3f\x58\xa4\xa0\x0e\xbf\x0d\x42\xb2\x24\x4c\xa9\xe5\xc2\x44\x85\x74\x8b\x2a\x18\xd6\x3d\x4e\x00\x06\x24\x14\x01\x89\x3a\x15\x11\xb5\x2a\xab\xd9\x64\x27\x09\x45\x6a\xab\xc7\xfe\x14\xff\x2e\xcb\x61\x25\x04\x09\x85\x4e\x31\x22\xb0\xfe\x69\x13\x81\x57\x9c\x98\x93\xd7\xa6\x24\x41\xde\x8d\x8e\x4b\xfd\x65\x77\xf3\xc9\x10\xd7\x01\x47\x1f\x67\x2b\x0a\x0d\xc7\xd6\xb5\xf4\x0d\x24\x76\x42\x4d\x8d\x2b\x1f\xec\x85\xd2\x26\xa7\x00\xa2\x7b\xd6\xd3\xf6\x9d\xd4\x13\x46\x40\x12\x9a\xc4\x96\xd7\x63\xd4\x79\x14\xb6\xf0\x1d\xd2\x14\x3a\x59\x36\x0b\xda\x9a\x9e\x42\x2b\x70\x7e\xda\x2a\x07\xd1\x2e\x01\xe8\x70\xba\x14\x72\x39\xf1\xb2\xa2\x80\x68\xc4\xe2\xbe\x22\x22\xe8\xd7\x12\x46\xf9\x06\x12\x05\x91\x42\x0a\x4f\x53\x56\xaa\xbd\x6b\xa8\x9b\x27\xf3\x84\xb1\x53\xa8\x67\x4e\x97\x1a\x2c\x91\x76\xd5\x41\xfb\x0a\xb3\x6b\x2e\x30\xe1\xfa\x50\x69\x45\x00\x2a\xa7\x16\x73\x0b\x30\xc4\x1a\xb7\x1d\x14\x81\x4e\xd4\xbe\xfc\x00\x8d\xe4\x1c\x4f\x66\xf5\x56\x66\xaa\xdb\x1b\x22\xaa\x42\x04\x3c\x59\x95\x83\xf5\xbf\x49\xe8\xac\xc3\xf0\x6f\xee\x6f\xd7\x31\x0c\x2c\x90\x03\xa9\xb5\x7a\xd5\x4b\xdf\x4a\x78\x10\x78\x56\x8b\x02\xd1\x64\x03\x6a\x71\x12\xb5\xdb\x8c\xf6\x96\x53\xf4\x88\x34\x28\xe3\x1b\x0e\x63\x86\xe1\x67\x3c\xbf\xd7\x5f\xaf\xfb\xd6\x38\x22\xc3\x71\xd6\xee\xa4\xab\xbf\xef\xc6\x5f\x2e\x0a\x39\xb5\x32\x64\xc7\xf2\x27\xec\xcb\x45\x05\xe2\xdb\xd8\x2c\xed\x3a\x32\x39\x50\xcc\x5c\x95\x45\x81\xac\xf8\x3d\x23\xcb\x10\x90\xe7\x0f\x12\x96\x29\x57\x7f\xc2\x5f\x38\xda\x85\xfc\x31\x40\x91\x70\xbc\xb5\xcb\xc6\x22\x3b\x7f\x9b\xdc\x3a\x00\x56\xfa\x78\x4f\xbe\x5d\xfb\x9e\x2d\xe9\xcf\xbc\x0c\x14\x89\xa2\x20\x94\x0e\x0c\x5d\x94\x1a\x8e\x65\x01\xb3\xda\xbf\x6d\xd7\x88\x60\x2d\x64\x01\x1f\xdd\x3b\x8d\x62\xc0\x58\xcf\x6a\xb3\x7f\x7e\xf9\xc3\xff\x1a\x47\x29\x5a\x2b\x76\x57\xbe\x2b\x73\xfd\xc9\x30\x8d\x19\xb7\xb2\xab\x22\x57\xa8\xd9\x0b\x35\xb2\x24\x3f\x9e\x8f\x60\x05\xfc\xc7\xb7\x10\xc7\xa9\xa3\xdc\xc1\xc2\xb9\x7a\x64\x86\x44\x89\x30\x3e\x3f\x36\xae\xe3\x21\x11\x4f\x99\x27\x56\xb7\x6b\xd5\xe0\x93\x70\xa5\x10\x38\xea\x84\xd1\x57\x80\xe5\xf4\x9f\xbc\x2f\xae\xc1\xdb\xc8\xad\x15\xd6\x2e\x30\x96\x92\xcb\x11\xb5\xbb\x6e\xa9\x31\xb8\x06\x76\x4c\x5f\xbb\xb3\x74\x94\x02\x18\x4c\x9e\x3c\x97\x88\xb8\x53\x93\xc7\x55\xc9\x21\x53\x6e\x26\xba\x9f\x6d\x47\x6e\x3b\x56\xf0\xb3\x7c\x87\x9d\x33\x4a\xfe\x2a\xa2\xe1\x0f\x06\x8e\xf4\x5d\x0f\xe2\xb5\x80\x26\x53\xf5\x75\xc6\x98\x44\x92\x84\x08\xed\x3e\x59\xde\x73\x5b\x06\xd7\xde\xf7\x20\xc7\x15\xe9\xd8\xca\xc9\xbf\x95\x55\xdd\xda\x7b\x70\x3b\x9d\x45\x3a\x09\x90\x64\xf7\xa3\xac\xde\x31\xea\xb2\x9a\x16\x95\x7f\x1e\xdb\x8e\x74\x62\x47\x9a\x86\x9f\x90\x97\xa7\x67\xfb\xb5\xc7\x1f\x5b\x2b\x03\xa1\x93\xe6\x83\xea\x20\x94\x82\x53\xd7\x08\xca\xbe\x26\x1b\x50\x5b\xad\x1f\xf7\x3e\x80\x16\x99\x20\x0c\x7b\x2b\x7e\x5b\x95\x4d\xa9\xca\xfc\x16\xe0\x19\x54\x76\xca\x26\x02\xa2\xed\x01\x21\xc1\x8c\xda\xe1\x11\x3e\x56\x9e\x13\x7a\x6a\x2d\x4e\xa6\x8a\x51\x02\x89\x4e\x2c\x43\xf1\x88\xe9\xcc\xf6\x60\x01\x0b\x55\xdc\xaf\x03\xcb\xf2\x13\xac\x0c\x61\x01\x70\x0c\x73\xad\xb6\xdb\x61\xdd\x3e\x69\x8d\x53\x9c\xba\xfb\x4c\x14\xff\x78\x3b\xf7\x34\xbf\x84\x11\xb0\xd1\x8d\xbb\xe7\xf5\xfa\x71\xb9\xd9\xfb\xdf\x29\x8d\xd0\xd8\xda\x8a\xbc\xdd\x10\xbe\x0a\xcc\x32\x1a\x01\xee\xb5\x0b\xeb\x0d\x7d\x8a\xae\x21\x8c\x0a\x89\x31\x49\xf7\x9d\xdb\x47\xce\x27\x65\xc6\x84\x85\x31\xc1\x30\xa3\xdf\x24\xe6\xe7\x17\x0b\x13\x22\xc2\x11\x1b\xc4\xd8\x0d\x75\xdd\x22\x1e\xdb\x85\xa3\x35\xce\xda\x1d\x7f\x9c\x3a\x64\x11\x17\x16\x7d\x38\xab\x53\x4e\x7d\x37\x46\x39\x5a\x5b\x1f\x1e\xf6\x07\xfa\x21\x9b\x84\x35\x19\x0b\xad\xfe\x8c\x87\xf9\x4e\x5a\xa5\x40\xfb\xf8\x28\x7e\x79\x62\x16\xdf\xa2\x3b\x55\xf8\x19\x3e\x4e\xd7\x29\x0e\xb4\xb0\x7a\xe0\xa7\x9b\xf2\x75\x10\x50\x66\x71\xc8\xb0\x08\xe4\x24\xea\xfa\x46\x74\x3f\x27\x31\x43\x7e\x3f\x14\xf6\xcd\x26\x4b\x20\xe3\x14\x8c\x2f\x3b\xdb\x56\xe5\xaf\xcb\x10\x80\xfe\x59\x64\x6c\xb0\xd7\x30\x1e\xa5\x08\x79\xb5\x18\xd6\x5f\x96\x43\xea\x2a\x8c\x7d\x95\xa9\x27\x8c\x2b\x8e\xb1\xa7\xe7\xf5\xea\x76\xf5\xf4\xc9\xd7\xe5\x20\x98\xdf\x32\xdb\x0b\xbc\xd4\x43\xc9\xd4\x49\x0c\x8d\xa5\x61\xc2\x10\xd1\x2f\xaa\x95\xa5\x85\x9f\xbc\x7b\x41\x03\xe9\xa0\x0c\xa8\x25\x2b\xae\xf8\x10\x09\x93\x04\x70\xd7\xff\x4f\x3f\x38\x64\xc8\xd0\x45\xde\xed\x17\xcf\xfb\xcd\xe3\xdd\x61\xc0\xdb\x42\x98\x22\x11\xb6\xc2\x31\x6b\x3e\xa5\x9b\x9b\xda\xf6\xa3\x99\xa3\xa4\x55\xfe\xd6\x55\x79\x42\x2c\xbf\x65\xeb\xfe\x7c\x02\x29\xb0\xf1\x7f\x09\x75\x73\xa8\xbb\x9d\xe2\x90\xe1\x56\xe1\x3a\xe9\xc8\x95\x33\x42\xb3\x6c\x5f\x88\xc6\xa2\xf9\x45\x63\xf7\x93\xd9\x75\x88\xe9\x48\xb3\xae\x7e\xc9\x5a\x5b\xf5\x94\x8d\x88\x30\x2d\x22\x99\x8e\x83\xcf\x83\xe4\x2c\x33\x84\x62\x66\x63\xf5\xf4\xf0\xf0\xf2\xb8\xd9\xff\x69\xe5\x89\x6c\x25\x44\xd7\x89\x32\x5c\x71\x6d\xee\x77\xf7\x96\x9d\x9e\x8a\x87\xf5\x62\x64\xc7\xfb\x31\x6f\xb4\xc6\xa5\xfb\x98\xbd\x62\x74\x6e\x54\x1e\x39\x19\x04\x71\x40\x19\x06\x65\x9a\xb7\x0a\xe0\x7b\xd9\x7c\x2f\xcf\x55\xed\x00\x5b\xae\x38\xea\x07\xb8\x4a\x3c\x12\x07\x4c\x63\x20\x25\x3b\x8a\x57\xf8\xde\xc9\x22\x90\x38\x10\xd6\xaa\x5b\x68\x7d\x53\x1e\x45\x66\x6b\xaa\x1c\x56\x68\x86\x8f\x9d\xc4\x24\x8c\x79\xe8\x97\x98\x8e\x20\xda\x9f\x8f\x4a\x2a\x2d\x14\xc3\xad\x3c\x9f\x56\x36\xbb\x03\xc2\x90\x78\x63\xfa\x5e\xd4\x6e\x71\x73\x61\x61\xd7\x25\x0a\x0c\xf8\xaa\xfd\x01\xaf\xc0\xe8\x63\xc5\x91\x94\x91\xf3\x5f\x5d\xce\x77\xd7\x64\xc5\xfb\xe5\xbe\xfd\xc3\x0f\xf1\x18\x51\x2a\x68\x27\x68\x28\xca\xe3\x41\x8b\xf2\xd0\xd7\x78\xb4\xed\x89\x85\xb0\x88\xf7\xe9\x05\x58\x2c\x90\x88\xf2\xee\x9c\xbd\x5a\x0b\x61\xae\x96\xee\xd3\xe0\xe3\x97\x31\xfe\x98\xc5\x06\xc1\xbb\x8b\x57\xa8\x87\x9b\x59\xcc\x12\x97\xad\xb5\x6c\x38\x9f\x69\x8b\xcf\x96\x90\x91\x98\xf1\x70\x68\x55\xa3\xcf\x3f\xb9\xb0\x08\x10\x15\x78\xb2\x42\x1b\x9f\xe1\x3a\x06\xc3\x34\x8e\x65\x8c\x1c\x47\xe7\xc2\x60\xb8\xcc\x2f\x06\x35\x12\xe9\x8d\xe2\x3a\x71\xac\x0c\x9e\x5e\x89\x62\xd1\x34\x33\xdc\x39\xae\x1f\x17\x46\x44\x5e\x7b\x4c\xbd\xfb\x41\xda\x93\x45\xf2\xe1\x9f\xee\xa0\x14\x74\xe0\xc7\xc5\xea\xbb\x63\xd0\xf4\x38\x89\x58\xc4\x12\x4b\xd4\xb7\x59\xf1\x5a\x8e\xde\xa9\x80\x34\x0d\x87\x95\xd4\x53\xce\x3c\x12\x0b\x43\x99\x73\xf7\xbb\xd1\xd4\x31\x6d\x91\x58\x46\xdc\xc8\x5e\x76\x22\xab\x1b\xf2\x09\xc5\xce\xe7\xd6\x5c\xac\x12\x9b\xb3\xf7\x28\xea\x19\xb7\x28\x56\x12\x10\x94\x06\xe6\xa3\x81\x6e\xe9\x89\x95\x0e\x53\xd9\x99\xbb\x5b\xa8\xdc\xca\x38\x64\xbb\x73\x5d\x75\xd2\x97\x84\x2c\x2c\xb4\x2a\x2b\xa7\x35\x47\xbe\xaf\x06\x04\x8d\xa0\xd2\xd6\xa5\xe7\xaf\x23\xb1\x06\x8e\x69\x9b\xd7\x72\x24\x1a\x41\x62\x48\x24\x24\x9e\xea\x5e\xa8\xc6\xa1\x31\x7d\x6b\x2a\xd0\x03\xc6\x8b\x17\xfa\xe6\x33\x42\x75\x12\x83\xb6\x84\x02\x9e\x34\xf4\x66\xf3\x38\xb1\x6d\x62\xd0\x0a\x23\x43\xb8\xd6\xf6\xa5\x4e\x24\x36\x34\x49\x5d\xc5\xff\x10\xb4\x15\x9b\x58\x20\x5f\xc2\xb6\x2a\xff\x05\xaa\x39\xd8\x8c\xc3\xe4\xac\x86\xa7\x3c\xf6\x16\xd1\xe2\xe6\xe6\x79\xbd\xf3\x8b\x77\x12\x88\x54\x07\x1d\x79\x50\xeb\x7c\x77\x5e\x77\x42\x28\xb3\xf6\x8d\x03\x8c\xd7\x63\x90\x41\x42\x22\x8d\x96\xd6\x6a\xf3\xbc\xba\x5f\x0f\x6e\x37\x21\x3c\x46\x5b\x04\x69\xda\x1e\x4a\xfd\x74\x72\x3e\xdd\xf0\xfb\x8f\x5f\x4f\x42\xa4\xd5\x8c\xef\xbf\x60\x2f\xc5\xf3\xe5\xca\x92\xd0\x40\xe2\x3e\xdf\x60\x52\xcc\x5b\x2c\x9e\xac\x8b\x24\x21\xb1\xea\xb2\x4e\xa2\xc6\xcf\x68\x3d\xaa\xec\x22\x49\xbb\xf0\x23\x39\xa2\x27\x08\xf3\xc7\x33\x1e\x77\x8c\x7e\x50\x8f\x05\x33\x48\xc2\x4c\x8c\x18\xb3\x03\x3e\xac\xf3\xdf\x3e\xb1\xe8\x93\x38\x12\xc8\x30\x7e\x0f\x75\x5d\x16\x87\xf0\xb3\x6e\x1c\x70\xa5\xb7\x5e\xf4\xa6\x81\xe3\x57\x59\xb3\xab\x60\x59\x92\x24\x84\x0f\xc4\xe7\x0e\xc8\xff\x51\xe8\xf2\xb8\xd8\x6e\x0e\xf0\xcb\x5a\x74\xc3\x99\x9a\x24\xa9\x55\xa9\xa9\xa1\x69\x1d\x22\xbf\xf9\xb8\x75\x28\xe1\x81\xc1\x88\xe8\xc7\x5f\x7c\x0a\x1e\x09\xac\x36\xf2\xe0\xda\x6d\x2e\xfc\x8c\x4e\x38\x0f\x9c\x8c\x8f\x2a\x0b\x2d\xaa\xcb\x66\xf5\x34\x7c\xff\x9c\x47\x98\xed\x7f\x13\xf5\x9b\xd7\x70\xfd\xab\xcc\xee\x68\x72\x27\x22\xa6\x5e\xa7\xbe\x35\x2f\x6d\x1a\x08\x45\x77\xfa\x41\x2d\x92\x00\x4b\x17\x8f\x59\xe1\xe2\x6c\x61\xd7\x94\x6a\xcc\x23\xd5\x23\x20\xf4\xe4\x12\x46\x22\x47\xcf\x4f\xe4\xec\x72\x24\x48\x79\x7f\x7a\x49\xb4\x67\xc7\x7b\x46\xe2\x0d\xb7\xb6\x62\xd9\x7c\x2f\x7f\x74\xfd\xc9\x24\x35\x88\xf0\x73\xfb\xd8\x8d\xc8\x6e\xcb\x79\xfa\x0d\x92\xa8\x88\xe3\x82\x77\xbf\xd8\x6f\x47\x23\x55\x71\x49\x1c\x48\xc5\xda\x17\x03\x32\x26\x92\x28\x93\x84\x6e\x33\xb1\x80\xea\xe7\x19\x0c\xea\xe4\xb6\x74\x6a\xd7\x00\xa1\xf5\xb9\x86\xea\x8b\x20\x51\x02\x31\xf5\x54\xf1\xfb\x5f\x1d\x95\x81\x03\x0a\xfd\xf6\xe3\x6d\xec\x15\x26\x20\x05\x3a\xb7\x50\x4e\x6b\xdd\x48\x02\x40\x11\xda\xb8\xda\xf9\x74\x5d\xd7\x10\x62\x08\xdf\xd6\x7b\x7f\x7f\xba\xff\xf3\x93\x9b\x31\x91\xc0\x1a\x35\x14\x80\x1a\x67\x8e\x12\x13\x2b\x8c\x08\x7d\x17\x95\x56\xa5\x06\xdd\xc7\xf9\xff\x4b\x53\xc7\x9f\x08\x22\x0b\x97\x7b\xb3\xfe\xcc\xf8\x29\x78\x10\x25\xb8\xd7\xdc\x8b\x42\x5b\xb9\x7d\x37\x5e\xa6\xfd\x62\x2b\x62\xe0\x33\x43\xcb\x0b\x7e\xb6\xcf\x5c\x2f\x77\x14\x61\x01\xbe\x8a\xf5\xaf\xf2\x94\x8b\x02\x46\x91\x78\x4e\x52\xc0\x09\x0b\x9e\x53\xcc\xe7\x6d\xb6\xa2\xaa\x41\x4d\x36\x1e\x4e\x84\x40\x28\xd6\xf3\xfa\x7e\xbd\xd8\xad\x0f\xeb\xc7\x1b\x7f\xa6\x90\x27\xc4\x55\x84\xee\x8e\xa2\xba\xe2\x29\x74\xdd\xa2\x50\x62\x66\xbc\x3e\x9f\x4e\x65\xd5\x40\xe5\xd2\x0c\xf5\xb4\x5f\xec\x01\x2d\xcd\xaa\xcc\xcb\xaa\xfe\x83\x7b\x22\xd1\x3e\x79\xf4\xbf\x51\x30\x49\x24\xf1\x28\xb5\xa4\x55\x27\xac\x52\x03\x3d\xad\xf5\x25\x3c\x52\x29\xd6\xf2\x02\xf2\x0e\x0f\xdc\x18\x1e\x29\xe5\x91\xa2\x23\xbc\x0a\x8f\x8c\x51\xce\x06\x5a\x1c\x65\x36\x2d\x53\x1e\x78\xc7\x9c\x71\xa0\xc9\xf0\x85\x6e\xc5\xd9\xf3\xf5\x11\xce\x64\x82\x08\x42\x8f\xec\x76\x71\x2b\xfd\x05\x0d\x1f\xe1\x71\x62\x55\x82\x3a\x61\x98\x6b\xdb\x86\x27\x8c\x26\xa6\x97\x03\x98\x72\x1a\xf9\x5e\x22\xc1\x4c\xe9\x1d\xa0\x8a\xdb\x1c\x9f\x2c\xe1\x3c\x34\x98\xb7\x79\x06\x95\xc1\x4f\xd0\x8b\xa2\x2c\x6e\xca\x42\xcc\x05\x08\xfc\x21\x3c\xc1\x40\x50\xa7\x85\x9c\x8f\x06\x19\xe7\x29\x62\xc3\x3f\x20\xb3\x68\x8c\x6d\x05\x9d\xb8\x18\xe1\xdc\xa4\x88\x77\x15\xba\x2b\x88\x9d\x25\x46\x20\x3c\xa5\xca\x92\x95\x6e\xee\xd6\xcf\xdf\xa6\x6d\x26\xe8\x45\xbd\x3c\xdf\xc0\x9c\x71\xc7\xd3\x94\x21\xd0\x1d\x33\x2f\xd9\x69\xb4\xc3\x71\x21\x29\x2e\xb0\x96\x23\x7a\xd7\x51\x31\x12\x2e\xb4\x2d\x3f\x74\xd0\x3e\x04\xa4\x8d\x4f\x2c\xb4\xc0\x13\x17\x65\x93\x99\x4b\xcf\x09\x3d\x63\xf3\x72\x49\x04\xa2\x3c\x16\xf7\xf7\x4f\xab\xc3\xfd\xe6\xef\x2f\x9b\x9b\xc3\x7e\xbd\x78\xf0\x97\x93\x51\x98\x38\x01\xb4\x4d\xf1\xd3\xa6\x53\xe6\x5f\xbf\x4c\x04\x4d\xbd\x0f\x7f\xb3\xde\x8f\xee\x5a\x6a\xad\x53\xef\x0d\xd6\x4d\x79\x1c\x2b\xd3\x12\x2e\x41\x87\x66\x18\x88\x1e\x55\x41\x8f\xaf\xa4\x02\x43\xba\xac\x56\xfd\x54\xec\xdf\xb2\xda\x0a\x57\xb9\x0e\x3a\x94\x71\xe4\xa3\xe8\x8d\xc8\x77\x9d\x7a\x2d\xe1\x3a\x56\x68\x07\x1e\x4e\x15\x4c\x2a\x2b\x7d\x8f\x24\xe5\xb6\xee\xfd\x5f\xe7\xba\xf9\x84\xfc\xec\x6f\xa3\x3b\x82\xd8\x6a\xfa\x5b\xaf\x70\x1e\xbd\xf7\xa5\x11\xc4\x8d\x8e\xd0\x77\x52\xda\x2e\x8d\xe3\x38\x61\x1a\xc4\x36\x99\x5a\x41\x9d\xbd\x16\x8b\x7a\x75\xae\xae\x93\x73\x69\x10\x4b\x44\xbd\x81\xad\x9e\x42\xb1\x6a\x7f\x06\x12\x5a\x21\x62\x2c\x2d\xf4\x2e\xe2\xc3\xee\xe1\xf3\x70\x4f\x4a\x20\xc4\xe9\x9c\x67\x75\xe3\xf8\xec\xd1\xbc\x1b\x22\x5c\x67\xe2\x26\x29\xa5\x56\x01\xa0\xab\xd1\x5c\x3d\x79\xae\x54\x0f\xc8\x18\x3d\x7c\x4a\x4d\xa8\x6c\xac\xb0\xcc\xf7\xe5\xa6\x18\x42\x23\x53\xc6\x52\xd0\x03\x8f\xe6\x41\xf8\x50\x53\xca\x80\x63\x1d\x4f\x6b\x1e\xf5\xbc\x33\x24\x8d\x19\x24\xcc\x63\x31\x54\x55\xaa\x89\xe6\x19\x49\x13\x42\x90\xa6\xe2\xa5\x68\xce\xc5\xeb\x0f\x91\x9f\x2f\x7e\x25\x48\x93\x30\x4c\x2d\xd2\xb7\x68\x86\xe5\x08\x69\x12\x02\x2e\xc0\xb9\x97\x33\x22\x69\xa2\x12\xe1\x20\x5e\x3e\xab\x94\xa6\x41\x68\xac\x38\x69\x56\x8e\x79\x7b\x49\x9a\x52\x9b\x6f\x41\xc6\x82\xc1\x67\x1e\x7f\xc7\x34\xb4\xe5\x5c\x18\xc9\xf1\x64\x65\xf3\xb6\xb4\x3f\xc2\x61\xe1\x73\x51\x37\x7f\x82\xa8\xec\xb0\x1f\x14\xa2\x91\x54\x04\x09\xf7\x78\xa6\xf2\x78\x3c\x17\x59\x73\x91\x97\x99\x2c\x4f\x2a\x88\xf0\xb9\xf8\x1d\x34\xe7\x79\x01\x75\x92\x8a\x24\xb4\xc8\xec\xa6\x3c\x2d\x30\xad\x91\x15\xaf\xdd\x1a\xed\x3b\x99\x10\xc7\x75\x27\x42\x8f\x22\x57\xbe\x55\x02\xc5\x18\x0e\x12\x60\xdd\xc0\xb1\xfb\x06\xd2\xc4\x01\xed\xf0\x9b\xdc\xff\xac\xe2\x10\x39\xad\xda\x49\x70\x1e\x2f\x99\xa9\x26\x81\x0f\x11\xf8\x8d\xe7\x53\x5f\x6c\xf2\xf6\x80\x31\xed\x39\x05\x9a\xb2\x9a\x68\xf6\x92\x14\x52\x5b\xd0\x76\x5f\xbe\xd2\xcf\x32\x2a\x5f\xf2\x69\xfe\x6d\x88\x42\x4c\x01\x48\xda\xa5\xed\x07\xab\x64\x6a\x52\x1b\x43\x14\x27\x44\xc2\x3e\xc2\xc7\xea\xf6\x69\x3c\x36\x44\x90\x84\x46\x76\x10\x72\x84\xf1\x9f\x40\x65\x22\x6f\xed\xe3\xda\xb1\xb4\xcf\xfb\x03\x22\x10\x06\x79\x9e\xea\xa6\x54\xef\xcb\xf3\x65\x2c\x6d\x33\xfb\x6e\x44\xa0\x42\x44\x7b\x1e\x2f\x2f\x75\x56\xbc\x7a\x80\xa5\xbb\x65\x41\x08\xa4\x5d\xe1\x1b\xca\xa1\xe9\xae\x29\xb2\x62\xf1\x77\x56\xbf\xfe\x07\xa0\x3e\xcc\xf9\x8a\x56\x8e\x08\x22\x34\x96\x97\xfe\x9e\xbd\xbf\x5b\x22\xc5\xa9\xa2\xc9\xf8\x39\x88\x22\xa9\xdb\x94\x0e\x75\x99\x0f\x61\xdb\x82\x72\x8a\x01\x5e\x99\xe9\xf5\xc3\xd3\xe3\x7e\x53\xa8\x0a\x09\x6f\xfb\x0e\x0c\x77\xb4\xdd\xe2\x7e\x1d\x20\x88\xdd\xb7\x84\x31\x20\x21\x99\xdd\xbc\xd1\xce\x36\xe7\x5e\x93\x78\xf2\x21\x42\x01\x9a\x75\xf3\xe9\x24\x8a\xcb\xb6\x02\x03\x15\xa0\x1d\x39\x1c\x3f\x22\x52\x3a\xf1\x39\x40\x4b\x9a\x33\x7e\xfe\xc8\x24\x98\xcb\xfc\x2e\x3e\x07\x7d\x7f\xfd\x95\x98\xa1\x78\x86\x55\x59\xd4\xed\x4a\x5d\xbc\x7e\x1f\xd4\x8e\x4d\x5e\x5f\x2c\x2d\x2f\xbd\x50\xcd\x59\xe4\x07\x03\xa0\x3b\x51\x5f\x22\x92\x38\xa5\x6e\xf3\xdc\x9d\xc0\xd5\x1f\x39\x4d\x0c\x0f\xd7\x11\x09\x8f\x30\x34\xee\x70\x1b\xab\xac\xc2\x5d\xbb\x07\xf2\x09\xce\x05\x16\xcf\x6d\x33\xd5\x9c\x2b\xb8\xcf\x64\x25\xaa\x0b\x26\xff\xc6\xb7\xce\x55\x88\xe6\x60\x6b\xa2\x22\x3e\xa1\xf3\x6f\xfa\x4d\x40\xa4\x84\x60\xdc\x0d\x6b\x0c\x50\xf3\xbf\x2f\xf5\x68\xbd\x01\x0c\x44\x41\xeb\x3a\xc3\x88\xc7\xbb\x6d\x14\x98\x47\x3d\x96\x3a\x33\x97\xed\xc3\xde\xd3\xb6\x8f\xdf\x89\xd0\x0a\xfd\xfd\x2e\x8a\x3e\x01\xfe\x09\x19\x32\x8c\x0e\xe2\x1d\x3c\x3d\xae\x0f\x37\x83\x91\x23\x13\x8a\xee\x4d\x71\x3e\x3e\x19\xf4\x26\x77\x0d\x74\xc6\xbe\x50\x81\x26\x81\xc7\xc5\x1d\x61\xd9\x2e\x4d\xb8\xb3\x0c\x72\xd5\x42\x07\xb6\x2a\x61\xf7\xd6\x19\x83\x93\x8f\x0c\x89\xc1\xa9\xb8\x7a\x7a\xd8\x2e\x1e\xff\x74\x99\x8d\xc3\xfd\xd3\xea\xb7\xc3\x76\xfd\xbc\x79\xf2\x6e\x90\x00\x9e\xb0\xc8\x59\x53\x3b\xb0\xc2\xa8\x63\x3e\xd9\xeb\xed\x5e\x98\x80\xa3\x65\xd9\xce\x9a\xef\x87\xcd\xe3\xe1\x61\xf3\xf8\xb2\x5f\xfb\xe8\x9b\x30\x2a\x42\x52\xfa\x83\xad\x30\x70\xfb\x92\x15\xb4\xf6\x7b\xa4\x0c\x12\x91\xba\xf0\xd3\xcb\xee\x66\x3f\xfe\xd6\x32\x90\x69\xd8\x89\x18\x88\xfb\x52\xbd\x3b\x41\x73\x7f\x38\xa5\x49\xe0\x36\xa9\xcd\xea\x69\x04\x8d\x95\x61\x90\x3a\xdc\x4d\x01\x95\x68\xe0\x01\x8e\x65\x75\x41\xa4\xf7\xf5\x53\xf9\x63\xe2\x18\x83\x2c\xa2\xdd\x09\x97\x65\x89\xb2\x7f\xb3\x53\x48\x86\x3a\xc1\xec\xd2\x61\x88\x79\x7c\xf6\x33\xfa\x2a\xf2\x30\x9c\xe0\x32\x22\x32\xa6\x1d\x02\xc9\x6a\x5d\x3d\x99\xd5\x94\xf3\x90\xc8\x88\x4a\x7c\x06\x0d\xc2\x82\x14\xfd\xe7\x97\x51\x1c\xa6\x36\xb9\x95\xbd\xbe\x42\xf5\x62\xb5\xe8\x2c\x08\xdd\x77\xe1\x96\xc8\xaa\x79\xab\xca\x8f\xfa\xc7\x1b\x14\x77\x56\xb6\xc2\x8b\xb6\x3c\x96\xcd\xc6\xe9\xd9\xe8\x41\xec\x53\xb2\x28\xc6\x2f\xb7\xbe\x59\x95\x15\x38\x6d\x75\xf2\xdf\xa1\x31\x24\x4b\xad\x35\xf7\x50\x16\xaa\xba\x9c\x46\x9e\xbb\x8c\x23\x2b\x49\x8e\xc5\x9b\xa0\x6f\xb2\x9f\x9f\xbc\xdd\xd8\xf1\x92\xdd\x8b\x6a\x12\x93\x94\x71\x6a\x2b\x7e\xb3\xda\xf9\x2a\x35\x4c\x5f\x5b\x6c\x00\x47\x55\xa7\x89\x37\xa5\x8c\xff\xd4\x88\x95\x09\x15\xa9\xe8\xf6\x4b\x07\x0d\x9d\x5a\xce\x32\x49\x23\xaf\x88\x66\xca\xea\x78\x0b\x90\x43\x5d\xcf\x25\xa5\x47\xdb\xff\x5c\x6a\x5a\x26\xa9\x66\xcc\x65\xda\x1d\x58\xd4\xb5\xa4\x2c\xc2\xaf\xbf\x2b\x4f\x6f\xe5\x28\xaf\x24\x53\x9e\xa2\xc7\x7e\xe8\x82\x91\xb6\x14\xc5\x37\x0b\x8a\xcc\x07\xb2\xf5\xd9\x9b\xdf\xcb\xa1\x1e\xe7\xf8\x49\x52\x95\x58\x95\xe0\x06\x4e\x87\x1c\xb5\xc7\x5d\x8b\xa0\x56\x65\x0e\xaf\x7b\xf0\xe4\x3c\x03\xae\x09\x22\x05\x33\x41\x34\x92\x0a\x3b\xf5\xc1\xd7\xf9\xad\x47\x8a\x84\xe1\xae\x79\x2f\xea\x66\xfd\x0b\x54\x77\x2e\x69\x02\xe5\x36\xbd\x79\x5a\xdb\xeb\xec\xbc\x94\x82\x20\x20\x24\x6b\xe0\xe8\x9d\x94\xaa\xc7\x68\x7c\x96\xc5\x73\x47\x2b\xc5\xc2\xae\x94\xf2\x36\x2f\x71\x43\x7a\xfa\xf0\x8c\x0c\x73\xa8\x80\xc9\xc3\x68\xcd\xf0\xed\xf9\x7d\xad\xc3\xd1\xf8\x76\x43\xd1\xc9\xbd\x39\x1f\x8f\x97\xa9\xee\xce\x15\x36\x99\x04\x7e\x14\x02\xb5\x02\x9a\x08\x1e\x5b\xb5\xd3\xa8\x3c\x8c\x10\x11\x2a\x08\x25\x67\x2e\xd3\xb9\xcc\xf4\x90\xc4\x8a\xa8\x80\x9b\x0e\x75\xd9\xee\x20\x4f\xdd\x76\xad\x48\x28\x30\x7b\xf1\xb0\xf8\xe3\xd0\x7a\xf1\x3f\xd6\x37\x87\xe5\xd3\xcb\xe3\xfe\xcf\xae\x07\x4b\xd1\x9f\x81\x42\xdf\x89\xa3\xcc\xb3\xe2\xb5\xb5\xc7\x2e\x13\x02\xc4\x91\x47\xab\x88\x00\x1c\xaa\x37\x77\xab\xfc\x2c\x07\x98\x1d\x85\x1f\xe9\xff\xfd\x7f\xff\xaf\x34\x26\xcf\x0a\xd4\x80\x19\x4f\x26\x45\x29\xc1\xe4\xc8\x5b\x99\x6b\xa8\x5c\x74\x69\xc8\x15\x4c\x54\x98\x86\x51\xe7\x8c\x38\xfa\xb1\xe5\xc5\x49\x1e\xcc\x8d\x13\xee\x0f\x14\x14\xc1\x2a\xab\xed\x6a\xdd\x3a\x95\x5e\x5f\xb9\x6b\x66\xda\x05\xcf\xb6\x65\x9e\xd7\x3d\xb9\x18\x51\xa1\xb4\xb0\xb2\x1a\x1a\x4c\xab\x4c\xa9\xb3\xa6\x5f\xd0\x5f\x32\x0a\x54\xec\xa2\xe4\x9b\xa2\xa9\xca\xfa\x64\x77\xd4\x79\x6e\x01\x15\x81\x35\x98\xf3\xf2\xf5\x01\x19\xe1\x1c\xdd\xe7\x50\x0b\x96\x28\x16\x29\x14\x63\x95\xe7\xcb\xee\x54\x65\xd3\xf4\xb9\x62\x11\xa8\x21\x75\xfc\x22\xcf\x27\x91\x08\xdf\x51\x33\x1c\x1a\x15\x56\xb5\xb4\x7b\xf1\x0f\x80\xf7\x4e\xd3\x91\xa8\x98\x51\x2c\xc0\x86\x5f\xa7\xb2\x42\xd4\x71\xd7\x92\xda\x00\x7c\xf3\x51\x3e\x94\x45\xf3\x56\xdf\x8b\x8e\x6c\x8b\xa8\x84\x2a\x2c\x70\xb1\xa5\x54\x20\x8e\x48\xa7\x33\xbe\x78\x12\x59\xfd\x2a\xa1\x47\x0a\x03\x03\x25\x38\xf7\xe7\xf8\x30\x4e\x8c\xaf\xa5\x5d\x9e\xab\x5a\x4c\x56\x63\xc5\x19\x43\xa1\x89\x02\x7e\x35\xfb\xf2\x5c\x15\xa2\x35\xe0\x97\xa2\x78\xf7\x37\xc7\x13\x86\x84\xb7\x37\xcb\xee\x17\x1d\x69\x67\x63\x1d\x44\x25\xb3\xa6\x3e\x7c\x7c\x0d\x75\x50\x1c\x02\x9f\x46\x6a\xdd\xbe\x91\x74\x10\x51\xa9\xa4\x61\x0f\xc0\x3e\xa1\xd0\x0e\x0a\x36\x4d\xbe\x94\x08\x00\xc5\xa0\x6e\x17\xab\xfd\xd3\x84\x67\x93\x28\x11\xa7\xb1\xa5\xe6\x6b\x5d\x89\xb1\x7d\xeb\xbb\x24\x36\xcd\x26\x34\xca\x76\xd4\xb3\x01\x51\x25\x29\x31\x6e\xc6\xb4\xab\x80\x12\x95\x2e\xc4\x14\x35\xae\x64\x0c\x3e\xa8\x68\x73\x68\x28\xca\x49\x51\x72\x63\xda\x95\xc7\x81\x7b\x7a\x67\x12\x3f\xf6\x7c\x49\xbe\x4f\x6a\xc5\x08\x0a\xf8\x58\xff\x3a\xb5\x5f\xb8\xfe\x24\x25\xa4\x54\x98\x62\x61\xce\xc3\xcb\xfd\x7e\x73\xd8\x75\x65\x8a\x4a\x45\x9a\x38\x44\xc3\x0d\x1c\xcf\x15\xba\xd7\xf3\x1f\x44\xb1\x00\x41\xab\xff\x80\xac\x38\x77\x0b\x8e\x4a\x2c\xa4\x7c\x2b\x3e\x86\xeb\x90\x4e\x6c\x18\xf6\x41\xa0\x14\xc3\xa5\x1c\xd0\xe0\x7e\xe9\x2c\x29\x08\x69\x90\x74\xee\xbe\x7a\x47\x7b\x0d\x21\x6d\xf3\xb7\x65\x1c\x72\x41\x9e\xab\xc2\x03\x84\xe7\xed\x8f\xc9\x85\x8c\x88\x22\xe9\x2f\x34\x0e\xca\x0c\x17\x18\xa3\x2c\x59\xe2\xb0\x36\x7f\xea\x74\x5e\x5b\x36\xca\xb4\x9b\x15\xea\xa9\x7c\xa8\xc1\x7b\x31\x86\xeb\x61\xa0\x7e\x3c\xb7\x34\x09\x48\x6c\x65\x54\xce\xaf\x6f\xcd\xbe\xd4\x62\xb2\x80\x69\x1a\x28\x44\xb5\x7a\x0b\xe1\xb0\xde\x7f\xa7\xf7\xe7\x19\x10\xae\xa6\x91\x0d\x1f\xb7\x43\x17\x3e\xac\xb4\x92\xdf\xaa\x87\x03\x49\x53\x2e\x90\xd0\xae\xf6\x6a\x3f\x43\x1f\x4d\x53\x61\xf9\x48\x96\x9b\xdf\x76\xdb\xe7\xa7\xbf\x66\xf9\xd0\x54\x29\x1b\xcc\xaa\xb2\x49\x68\x4f\x87\x84\x7b\xc5\x09\xbb\xfe\x22\x9f\xf5\xf8\x11\xc3\xc8\x32\x80\x58\x20\xc1\x72\xca\x4e\xa3\x43\x6e\xab\xa9\x84\xd6\x37\x16\xdb\x3b\x08\xe8\x8e\x6e\x24\x8a\x13\xc3\x7c\x99\xce\xeb\x6d\x96\xe7\x8b\xea\x15\xc1\x5a\x7e\xaf\xd3\x2c\x94\x08\x97\xfa\xfe\xfc\xfd\x2f\xd5\x49\xfd\x21\x2c\xd0\xd4\x43\x32\x31\x72\x3a\xbb\xf8\x6b\x96\x0a\x6a\x61\x64\xa7\xfc\x90\x15\xaa\x3c\xc2\x93\x21\xc1\x7b\x77\x69\x9d\xe2\x84\x7a\x13\xf5\xba\x68\x3f\xb8\x1d\xb6\xc8\x4c\x34\x7e\x6b\xcc\x44\xb8\x21\xb7\x1f\xe8\x3b\x54\xe5\xa4\x39\x06\x16\x25\x83\x9a\xdf\x01\x65\x1f\xd1\x49\xa4\xb0\xa6\x69\x07\xcd\x0f\xf1\x0a\x15\xe8\x1f\x90\xcd\x23\xfd\x74\xc2\x34\xee\x6b\xcb\x97\x3f\xd7\xcf\x87\xdd\x7e\xbd\xf5\xfc\x7f\xdd\xcb\x4f\x63\x0a\xce\x5e\x71\x65\x45\xfe\x71\xd2\x24\xc1\x1d\x7c\xbf\xde\xed\xbb\xdf\xd2\xc4\x03\xdc\x64\xdd\x88\xac\xc0\x12\x10\xdf\x2a\xa4\xc6\x9a\x1d\x9d\xd5\xc2\x06\xfb\x17\xd3\xba\x78\x2d\x55\x84\x99\xad\x83\xae\x44\x56\xa0\x3d\x33\x49\xfc\x5c\x1b\x74\x5a\x25\x31\xb3\xb3\xac\x78\xec\x0c\x7c\xad\x12\xe3\xc5\xe8\x6c\x30\xa8\x02\x6d\x73\xea\x6a\x42\x0b\xe4\x02\x29\x5a\x87\xc4\xa7\x2a\x5c\xf2\xdd\xd5\x4d\xfa\x53\x6a\x4e\xf0\xee\x44\x51\x94\xe7\x42\xc1\x6d\x59\xbd\xcf\x20\xce\xfa\x37\x0c\x41\x8a\x51\x7b\x38\x4c\xf5\xc7\xe7\x97\x43\x0d\xcc\x0a\x2b\x29\x51\x37\x4e\x3f\x0a\xb7\xfa\xf3\x50\x87\x6c\x60\xa4\x6b\x10\x81\xe8\xc5\x2d\x70\xf5\xdc\xd9\x22\xcc\x4f\x17\x2b\x0d\x3a\xc1\x8b\xb4\x66\x0a\xaa\x7c\x8f\xad\x14\x6d\x62\x8d\xfe\xcf\x5d\x5e\x4a\x91\xbb\x44\xfa\xd0\x43\xd2\x26\xd5\xe8\x9f\x17\xf0\x31\x5a\x3c\x8c\x22\x68\x00\xb9\x6c\x90\x69\x1d\x76\x3d\x4d\xd2\x43\x10\xa4\x48\x82\xb3\xa8\x2a\xd1\xc1\x0f\x21\x48\x63\xbb\xf2\xb6\x2b\xf3\xef\x48\x54\x38\xb2\x53\x21\x00\x8a\x91\xc9\x29\x55\xee\xe4\xec\x24\x10\x63\xc1\xf4\x7d\x39\x30\xb4\x80\xc4\x2c\xb2\xb5\xcd\xe2\xe2\xb1\x6d\x84\x8e\x35\xde\x08\x10\x1d\x59\x19\xab\xb2\xcc\x6d\x6c\x03\x6f\xb6\x3b\x09\x00\x71\x21\x3e\xbc\x87\xb2\xf2\x1c\xa8\xab\xbc\xac\xe1\x8a\xcd\x61\x7e\x4f\x02\x4a\x09\x75\x72\x05\x5b\x5b\x3a\xf1\x35\x79\x3d\x81\x08\x64\x90\xf4\xf5\xa2\x9e\x27\xc3\x45\x6f\xb2\x72\xb2\x00\x03\x23\x92\x31\x5f\xff\xe4\xc0\xe8\x03\xbd\x38\x02\x8c\x25\x71\xd2\xd3\xf6\x3b\xf0\x40\x7b\xda\xa9\x5f\x0e\x71\x9a\x0a\xee\x17\xf3\x0c\x11\x9e\x37\xa8\xc1\x36\xbe\x64\x0c\x1a\x97\xd8\xe7\xf5\xfe\x1f\x3e\x2c\x08\x89\x21\x14\x8b\x55\x74\x79\x63\x39\x66\xbf\x4a\x70\x03\xa7\x00\x9d\x06\xf7\x0e\xcd\x76\xdd\x39\x16\x90\x46\x11\x22\x06\x86\xd9\xe3\x41\x88\x05\xd2\x28\xc6\x68\xb0\x85\x60\xce\xa6\x75\x40\x44\x31\x97\x3d\xa4\x05\x81\x07\xf5\x38\xd1\x07\x42\x01\x09\x06\x60\xce\xbe\x3c\xd0\x75\x90\x0c\x10\x2c\x59\xfe\x84\x4a\x57\xc2\x38\x5d\xe3\x51\xa8\x0c\x24\x50\x4c\x41\x49\xb4\xae\x27\x97\x50\x91\xe5\xbd\x39\x17\x3f\xcb\xa9\xdf\x01\x2a\x62\x38\x3c\x4c\x56\xd5\xcd\xe1\x94\xa3\xaa\x55\xd7\x66\x30\x80\x90\x67\xc7\xac\x99\x7f\x44\xc5\x23\x34\x08\x76\xfb\xbd\xd0\xc7\xac\xa0\xdd\xb1\x46\x93\xd8\xd3\x08\x35\x23\x6c\x91\xeb\xa1\x49\xe2\x94\x01\x87\x68\x84\xfb\xc1\xb8\xf4\x1d\x39\xe5\xce\x75\x7a\xbc\xdd\x4f\xcf\x92\xc6\xd2\xaa\xf9\xb9\x5a\xb7\x76\x60\x8d\xaa\xef\x40\x4b\x2d\x5d\x61\xea\x6d\x59\x41\xf6\x5a\x2c\xab\x4c\xbf\xc2\xba\x52\xfb\x72\x5d\xa9\xcd\xf1\x64\x25\xf2\x46\x60\x03\x7f\xb0\x31\x98\x8d\xcc\x34\x14\xad\xbf\x03\xd5\xa6\x7e\xaa\xb2\xd7\xac\x98\xe8\xfa\x11\x80\x90\xe3\x66\xa0\x5d\x3d\x6b\xcf\x16\x34\x39\x27\x44\x21\x58\x8f\xd1\xc2\x87\x7a\xd3\x10\x40\x71\x1c\x0e\xed\xdc\x13\xa7\xac\x11\xb9\xa7\xe2\x9e\x5c\x4b\x29\xaf\xef\x77\x3e\x2d\x5b\x63\xfe\xaa\xa6\xfc\xbf\xfd\xdb\x9e\xd1\x90\x30\x0c\x6d\x05\x57\x9e\xc1\x4f\x40\x61\xc4\x49\x0f\x23\x90\xd9\x72\xfb\xf4\x7d\x3a\x4a\x0d\x35\x04\x39\x52\x9a\xec\xd8\xe1\x91\x91\x56\xb4\xc9\x7c\x3c\xca\x84\xb1\xd5\x5d\xf5\xb1\x96\xb2\x6e\xf6\xe5\x76\x30\x52\x4d\x28\x12\x69\x19\xb3\xb3\xe2\x36\xcf\x4e\xdd\xef\x32\xb2\xda\x0e\x56\x52\xe5\x16\xe0\x13\xfa\x07\x13\xc5\x5c\xf9\xf7\x97\x8b\xec\x38\x33\xf0\x4c\x04\x8a\xb9\x3e\x3f\x5a\x4f\xbc\xda\xf4\x46\xec\xc8\x32\x31\x8c\x44\xb6\x26\xd7\x72\x99\x6d\xc5\x05\xe0\x33\x7c\xc0\xf8\x1a\x8c\x05\xe8\xc3\x6c\x54\x39\xca\xca\x1a\x96\x6a\xe9\x85\x3d\x0f\x58\x0f\x6a\xb7\xd2\x03\x12\x18\xdc\x02\xbe\xf8\x43\x51\xda\x12\x0f\x55\xf6\x88\x57\x13\x73\x5b\x43\xd0\x6d\x3a\xf7\xcf\x2b\x2b\xa3\x3c\xe1\xde\x19\xdf\x4a\xac\xb9\x72\x61\x90\x29\xea\xa9\x67\xac\x9a\xee\xdf\x26\x36\x3c\xe9\xe5\x3c\x1e\x32\x55\x95\x0f\x25\xd6\xf4\x8d\xcf\xce\x83\x04\xb7\xba\x9b\x3f\x96\xc3\xdd\xdb\xa4\x24\xb0\x52\x78\xe2\xb5\xfb\x29\xa4\x56\xe4\xa2\x2c\xae\x02\x7c\xbe\x4b\xac\x71\x39\xb1\x92\x52\x9d\xda\xfe\x97\x49\x32\x3e\x4f\x7a\x68\x52\x63\xd0\x02\xc8\x45\xdd\x95\x98\x63\x72\x50\xd4\x30\x80\x56\x1b\xc1\xb8\x4f\xd6\xac\x8b\xd7\xac\x80\x7a\xd3\xa5\x37\x8c\x48\xc0\xe8\xce\x71\xb0\xef\x79\x5f\xb6\x5b\x93\x4f\x2b\x8d\x1f\x40\xc8\x04\xbd\x76\xef\xda\x4d\x98\x5b\x89\x11\x10\x21\x3f\xab\x68\x37\xa8\xcd\x4d\xaf\x3f\x4a\x8c\x30\x32\xf1\xd2\x79\x9d\x7e\x7f\xd7\xa6\x31\xc8\xa4\x44\xfd\x96\xd9\xe2\x33\xdf\x24\x03\x82\x00\x97\x2e\xfa\x31\x26\x76\x31\x32\xb4\x8a\x5f\x8d\x47\x49\x3b\x33\x80\x76\x1d\xa2\x20\xf0\xa6\xda\x46\x95\x7e\xdf\xed\x9a\x05\x43\x70\xc5\xe3\xf3\xf2\x60\xeb\xa2\x7c\x83\x4e\xb1\x72\x44\x3b\x08\x40\x6d\xe5\xf9\xa1\x3a\x74\x3d\x0c\xa4\xba\x2b\xa8\xc9\xca\x62\x65\x25\xa7\x2d\x7b\xba\xef\xa5\x62\x83\xa6\xb5\x25\xf5\xb3\x68\xc8\xf5\x80\xeb\x99\x18\x4d\x15\x42\xb9\xfe\xed\x38\xa0\xbf\x43\xae\x37\x05\x02\x8b\xf4\xe5\xc9\x78\xc7\x75\xbc\xcc\x1a\x2d\x3c\xb5\x0a\xa8\x77\xac\xc3\x02\xcc\xef\x76\x0f\x60\x88\xc0\x3d\x7e\x2b\x4e\xa2\x12\xff\xf9\xcf\xa8\x4a\xc1\x98\x88\x47\x1e\x7b\x60\x47\xa1\x6f\x50\x02\xeb\x1b\xa5\x73\x45\xbb\x11\x67\xb4\xad\xbe\x47\xfe\x9f\x06\xb6\x50\xb5\x4b\xe4\x4b\xf1\x99\x68\x0d\x0d\x82\x38\xf0\x4b\xd1\xb2\x75\x4c\xcb\x21\xbb\xfd\xb4\xaf\x8e\xf1\x3b\x3e\x6d\xd7\x8f\x9b\xc7\xbb\xc3\x7e\xf3\xe0\xa2\x4e\x34\x20\x61\xc4\x23\x4b\x1c\xa2\x6c\x05\x4f\xbd\x68\xbd\x29\x24\x5d\x9c\xcf\x95\xd1\x80\xa4\x1a\xf1\x1c\x27\x71\x19\x1a\xc1\x34\x20\x60\x4c\x47\x18\x82\xdf\x0a\xf3\x89\x93\xe0\x13\x0d\x28\xa7\x3e\x04\xb7\x54\xe5\xf9\x54\x16\x3d\x3c\x7e\x08\x65\xa4\x01\x95\x31\x4e\x7d\xaf\x74\x62\x2d\xd8\x81\x9c\x38\x0d\xc2\x80\x3b\x92\x36\xb4\xb3\x90\x17\xd7\xca\x27\xf9\x1e\x91\x32\xe8\x27\x3e\x9d\xa0\x78\x06\xbd\x2e\xac\xa3\x3e\x8c\x60\xd1\x80\x45\x21\xe2\x7c\xc1\x71\x07\x52\x7f\x34\xe3\x9a\x8b\x0e\x84\x81\x6b\x72\xc7\x2b\x48\x03\x26\xb9\xcf\x43\xb6\xce\xf2\x60\x20\xd0\x20\x0e\x53\x67\x3f\xe5\x23\xb5\x2c\x1a\xc4\x06\xb0\x28\xb4\x4b\x21\x7e\xe1\xa8\xd1\x20\x51\x1e\x67\xd4\xcb\x39\x80\xfe\x84\x22\xde\x1d\xc3\x05\xf1\x32\xfb\x2b\x51\xe9\xfa\xb6\x2a\x8f\x58\x99\xf3\xd5\x66\x4e\x03\xae\x00\xf5\xbf\x76\xfb\xbf\x6f\x2b\xd8\xac\x9e\xf6\x50\x37\xdf\x21\x3f\x5d\xe3\xd4\xdc\x11\x29\x09\xa2\x1e\xc8\x68\x45\x9f\x9f\xcf\xf9\x35\xfa\x6f\x72\xa5\x94\xa6\x12\x65\xf3\xf2\x57\xa8\x32\x31\x7a\x71\x02\xac\xc1\x50\x83\x0d\x35\x8e\x92\x67\x7e\xbd\xa6\xc1\xdf\x46\x1f\x50\x12\x89\xb1\xe0\x76\x83\xbc\xc3\xf4\xea\x0a\x39\x0b\x7c\xb3\x20\xac\xc7\x6c\x2c\x94\x6a\xe8\xb7\xf1\x93\x48\x29\x5d\xa5\xae\x4d\x1b\x3b\xb4\xfe\xa2\x69\xcf\x88\x63\x73\xa7\xde\xe0\x28\xf0\x35\x7e\xb6\xb1\x4c\xb6\xa7\xff\xfd\xe7\x68\x73\xa1\x81\x34\x11\x2a\xe5\xee\x8e\x22\xcf\x37\x5d\xf0\x87\x06\x2a\x4c\xa4\x7b\xe6\xa7\xd5\xdd\x80\x42\xa7\x6b\xb7\x0a\xbe\x15\xe4\xe2\xe2\xc3\x1d\xae\xa4\xe7\x4b\x0c\x08\x71\x7f\x51\xfe\xc5\xae\x47\x03\xc5\xac\x78\xf1\xc7\x50\x30\xc4\xb7\x25\x8a\xab\x41\x89\x6e\x3f\x5b\xfb\x1e\x1a\x53\x1f\xdb\xc5\x9f\x4f\x2f\xfb\xc3\x62\xbf\x5f\x3f\x6c\xf7\x87\xcd\xe3\x7e\xfd\xfc\xfb\xe2\xbe\xeb\x06\x21\x92\x2e\x61\xe1\x93\x28\x06\x3f\x63\x76\xe0\x46\x1c\x8b\xe7\x52\xbd\x77\x2f\x05\x48\x47\xff\xb7\x82\xaa\x93\x99\xbd\x6c\x6e\xc6\x93\x17\x12\x89\xe0\xb1\xb2\x75\xea\x0f\xed\xf7\x7b\xbd\xf8\xac\xe7\xe0\xaf\x31\x38\x85\x06\xc0\x49\x14\x8e\x95\xf8\xc7\x4c\x50\x34\x00\x19\x7b\x8a\xae\x3d\x1c\x4f\xad\xf5\xb4\xbc\x78\x7f\x7a\x34\xc4\xb9\x3f\x02\x12\x9c\x79\x8f\xf0\xb1\x13\x85\xfe\xc8\xbc\x7a\xdc\x97\x94\xb8\xee\x60\x23\x28\x32\xd2\x2f\xa1\xc9\xe1\x32\x9a\x14\x46\x27\xb8\xce\x3d\xb6\xbe\x96\xfb\x91\x04\x5c\x47\xae\x14\xad\xab\xa4\x0b\x83\xd1\xcb\x21\x01\x48\x16\x77\x85\x44\x23\x1f\x8f\x12\x22\x14\x1d\xc2\xee\xba\xd2\x53\x4a\x08\xd8\x6d\x7a\xb5\xdb\x0f\x6f\x84\x10\xc3\xf1\xad\x49\xf9\x08\xcd\x47\x59\xbd\xdf\x55\xe5\x47\xf3\x36\x7a\x6f\x84\x52\x21\xdb\x01\xf1\x3f\x42\xbd\x9f\xca\xe6\x7b\xd6\x8d\x74\x42\x99\xc4\xc2\x2d\xf8\x09\x45\x33\x90\xb9\xa4\x84\x42\x8c\x62\xd4\xe8\x53\x7a\x5a\x63\xc4\xbf\x60\xc1\xc3\xba\xdb\x82\x29\x09\x95\x42\x7f\x7f\xa1\x91\xef\xa6\x35\x87\x26\x4f\x16\xc5\x49\xd4\x4e\xf8\x45\x03\xe2\xb8\x9c\x2a\x24\x53\xc2\x52\x5b\xf3\x62\xb3\x6e\xab\xac\xb9\x20\x32\xf4\xcb\x55\x8b\x30\xa1\x51\xc3\x78\x04\x8e\xfd\x1c\x5c\xe0\x8f\x52\x12\x1d\xd1\xb2\xd8\x7a\x12\x8a\xa1\x25\x43\x49\xcc\x02\xc4\x1e\x14\xe7\xe3\x4a\x14\x1a\x35\x59\xba\x07\x89\xc5\x20\xde\x60\xd3\x0a\xde\x48\xa3\x24\x91\x89\xe5\xbc\x01\x0d\x70\x3c\x4c\x63\xf9\xb3\x5e\x06\x25\x89\xd2\x36\x47\x54\x8d\x07\x19\xe1\x01\xc5\x72\xd6\x46\xbc\xcf\xf3\xb8\x53\xc2\x99\xc1\xb9\x96\xd5\x3f\xb2\xe6\x2d\x1b\x6c\xdd\x9f\x1d\x20\x8d\x74\xd1\x0c\x0c\xba\xcd\xa2\xe5\x29\xe1\x2a\x44\x2f\x58\x9e\xf3\xf7\xe7\x5e\x6b\xce\x78\x00\xc3\x1c\x16\x89\x12\x6e\x2c\xdd\x4b\xeb\xf9\x61\x8e\xa6\xdb\xf6\x49\x1a\x09\xe5\x62\xf3\x98\x11\xfc\xfa\x95\xa4\x31\x27\xd4\xc7\xe7\x45\xb1\x1a\x8e\xcb\x94\xd3\x50\xb8\x1a\x2e\x2f\x5e\xde\xc7\xb5\x29\x49\xd3\x20\x8d\x7a\x6b\x2c\x2b\x5e\x1d\x5a\x69\xaa\x72\x4e\x49\x2a\x12\x4c\x25\x1e\xd5\x6b\x05\xaf\x65\xd5\x0c\xdf\x7e\x6a\x0c\x66\x08\x3b\x1d\x3b\x6b\x7a\x1f\xcc\x24\xdc\x45\x89\x30\x29\xe2\x88\xda\x21\xbb\xac\xca\x77\xa8\x6e\xc4\x8c\x08\x11\x25\x92\x06\x36\xc5\x9e\xbd\xbe\x41\xdd\x2c\x33\x3d\x99\x26\x32\xee\xd4\x13\xda\x93\x1d\x68\x3c\x5e\x3d\x64\x12\xa5\x69\xc7\x43\xd6\xee\xf0\xf9\xf9\x08\x38\x29\xe1\xca\xe2\x74\x1f\x88\x77\x9f\x47\x82\x15\x93\x44\x58\xd5\x17\x51\x35\x4a\x14\xa7\x72\x5a\x13\x4c\x12\x7f\x97\x4a\xc7\xb8\x86\xd9\x38\x93\x43\xfb\xd7\x93\x67\x55\x20\x91\x33\xeb\x74\xae\xdf\xa0\xda\x57\xa2\x1d\x0d\x07\x7f\x0a\xcd\x62\x65\x45\x71\xdd\x06\xdf\x6f\x5f\x44\xf3\x00\x51\x33\x68\xe5\xfb\x61\xd7\x4f\x32\x60\x96\x0d\xd4\x80\x7a\xf3\x55\xc5\x5e\xaf\xa7\x35\xed\x36\x3d\xad\x01\x25\x20\x29\x62\x38\x3f\x46\xeb\x21\xa8\x10\x91\x55\x0f\x77\xf7\xe3\xd5\x14\x80\x60\x8c\xfc\xe4\xa0\xc8\xb7\xd7\xb2\x99\xae\xa7\x89\x08\xba\x72\x59\xfd\xf4\x31\x9e\x6b\x7e\x43\x6b\x7d\xae\x88\x0d\x98\xce\x31\x57\x39\xd9\x76\x26\x27\x95\x22\xf1\x1c\xbe\x98\x07\xa6\x2c\xfe\xd6\xb5\xe9\xd0\x0a\x7d\x9f\xf2\xf2\xd2\x74\x51\x1b\x4a\x8c\x66\xfe\x63\xed\xb2\xe2\x35\x07\xcf\xc1\xd0\xed\xb7\xb6\x23\x0d\x02\xe1\xb9\x91\x1f\xcf\xc7\xef\x88\xf3\x98\x2c\xc4\x94\x04\xa1\xe9\x89\x59\xbd\xa0\xcc\x5c\x98\x86\x52\xaa\xac\x31\x7e\x83\x7c\x74\x1e\x96\xe3\xb6\x5e\x1a\x46\x09\x17\x9e\x40\x79\x5b\x96\xa7\x1e\x19\x4a\x69\xc8\x8d\xd6\xc3\x28\xc8\x30\x1a\xe4\xfa\x44\x09\x31\xca\xbf\xbf\x46\xe4\x57\x89\x91\xe9\xee\x30\x06\x79\x0d\xd6\x04\x1a\x69\x83\xaf\xa8\x75\xe3\xed\xc0\xdf\x42\x75\x53\xe6\xb9\xf0\x0b\x14\x65\x84\xf3\xa8\x8b\x2f\xb6\x2e\x97\xc7\xa3\xb7\xb7\xb6\x2f\xc7\xc3\x9b\xb2\x90\x21\xe5\x6c\x3b\x07\xec\x5b\xbf\xc9\x14\x0c\xd8\x2f\xc6\x33\x8a\x32\x46\x39\x78\x7e\x0d\xdd\xb3\x8e\xfb\xe6\x38\x41\xa9\x86\xa6\x1b\xee\x4e\x51\x7a\x7a\xd9\x58\xe3\x3e\xfa\x70\xae\x44\xd3\xe7\xd5\x29\x65\x49\x02\x69\xbf\x2f\xa9\xb2\x1b\x1f\x34\x0e\x13\x74\x68\x57\x0f\xab\xfb\xd9\x54\xe6\x0c\x72\x81\xd2\x24\xa5\x76\x80\x0f\x88\xb3\xb6\x50\xad\x2e\x2a\xef\xce\xcc\xb9\x9d\x04\xc8\xa8\x3c\x7e\xde\x54\x31\x5f\x27\x7b\x03\x36\x5c\x83\x29\x3e\x51\x28\xd8\x56\xb0\xcb\x5e\x0b\xd0\xb3\xc6\xfb\x97\x3e\x11\x15\xb1\x15\xf2\x74\xc1\xbc\x87\x2c\x7f\x6f\xaf\x3e\xc8\x2d\x51\x2a\x8c\xad\x97\xcf\x5c\x9c\x68\x7e\x91\xa3\x52\x26\x16\x36\x77\x9e\xac\xd3\x54\xf1\x08\x63\x29\x32\xd3\x4f\xc5\x2e\x6b\xdf\xce\xd7\xae\x1a\xd5\x52\x60\x15\xdb\x9d\x57\x82\x1c\x4a\xe0\x51\xaa\x55\x80\x42\x49\x76\x19\x42\xff\xaf\x97\x31\xa0\x54\x6b\x16\x59\x3a\x3f\xb4\x9f\xc2\x9d\x4f\x24\x52\xaa\x21\xd1\x83\x58\xda\x3c\xcf\xd7\x27\x37\x05\x84\x24\x89\x7b\x57\x03\x03\x87\x02\xd5\x21\x82\xa2\x33\xd1\xbc\xe5\x65\x31\xcf\x25\x3b\x5f\x12\x31\x7e\x51\x10\x5a\xdd\x54\xbb\x5a\x60\x21\x81\x2f\x84\x9d\x74\x8c\x14\x77\x35\xbe\xbb\x46\x98\xe9\xb0\x36\x31\x27\xc3\x9a\x6e\x5b\x4e\x3d\xff\xd9\x4c\x6a\xc1\x7e\x4e\x61\x08\xdf\xe8\xc4\x7b\x0c\x83\xd8\x20\x6e\x35\xab\x57\xcb\xf5\xa4\x8d\x44\x0c\xad\x2a\x8f\x96\x74\x62\x37\x73\xe0\x6d\x1a\x52\x6d\xe9\x7a\xb6\x48\xec\x31\x26\x97\x9e\xbd\xbd\x30\x4c\x04\x56\x73\xe1\xf7\xef\x90\xe8\x34\x8c\x62\xcb\xaf\xdd\x74\x76\xd4\x67\x69\x57\x1a\xb2\xd0\x92\x63\x09\x94\xa9\x78\x2a\x46\x70\x39\x1a\xb2\x24\x41\x01\x7a\x17\x82\x7f\xde\x68\xbf\xaf\x86\x31\x61\x58\xd9\xb4\xd0\xda\xd3\x04\x7c\x25\x8c\x4b\xc3\x24\x12\x36\xe7\x94\x35\x0e\xf6\x3a\xdc\x10\xc3\x84\x05\x98\xb7\x3a\x1e\x30\x00\xdb\xf9\x3a\x61\xa2\xad\x3c\x49\xbb\x55\x65\x08\x49\x19\x1e\x05\x21\x75\x8d\x0b\xbd\xd1\xcb\xcb\x4a\x7c\xb2\x2e\x86\x3c\x00\x24\x59\x82\xa2\xc9\x9a\x2e\xde\xd9\xfe\x6e\x30\x80\xf0\x50\x16\x70\x59\x68\x0d\x1a\x75\x01\xe6\x54\xff\xa6\x67\xe4\x0a\x75\xf2\x16\x85\xae\x20\xab\x47\x37\xc6\x53\x6e\x30\xee\x50\x96\x48\x17\x91\xfd\x04\x0c\x62\x8d\x7d\xc7\x31\x3e\x78\xb8\x91\x84\x69\x18\x49\x39\x18\x3c\x6b\x84\xe7\x59\xfb\xd3\x39\xf3\x7c\x72\x3f\x69\x68\xc1\x0c\xbb\xbb\x9b\xbd\xbf\x0f\x11\x48\xac\x3c\x70\xe4\x09\x0f\xe2\x17\x8e\xf8\x3e\x94\x15\x8a\xd0\x52\xd9\xf8\x19\x31\x8e\x02\xfa\x4e\x3a\xc5\x98\xab\x3c\xe7\xf9\x90\xed\x92\x86\x02\x00\x63\xad\x76\x62\x8e\x39\x91\xc7\x03\x40\x18\x7b\x2b\x12\x06\xf5\x7b\x34\x94\xb1\xc0\x52\x91\x87\x8b\xea\xc4\x1c\xe7\x47\x90\x0a\xa8\xc7\xd2\x3c\x5b\xa1\x9a\xb5\x23\xf6\x1a\xd9\xae\xa1\x52\x96\x7d\x20\xab\x7f\x2b\xca\x8f\x62\x25\x26\x90\x0e\x1a\x6a\x9e\x22\xdc\xe8\xa3\x3e\xcb\x6f\xc3\x30\x89\x97\x1f\xa3\xa1\x16\x51\x44\x47\xc0\x0b\x34\x7e\x91\xb7\xd8\x77\x01\xcb\xac\xfb\x3a\x25\x84\x19\x5f\x0c\x68\x82\xb0\x7c\x37\x89\x3a\x0a\x49\xdf\xcc\x12\x6b\x31\x64\x45\x6b\x0f\x78\x63\xe9\xf3\x39\x0b\x8e\x03\xd2\x6f\x3a\xab\x5e\x68\xc9\xf5\x30\x84\x04\x3d\x00\xc3\x52\x37\x74\x27\x24\xf1\x15\xef\xef\x30\x6c\xd5\x1a\x57\xbd\x85\xf5\xbf\x84\x72\xf7\xe3\xf8\xa1\x0c\xa3\x3e\x4b\xb4\x77\xeb\xf1\x64\x25\x0e\x0d\x0b\x11\xf4\xb0\x29\x9a\xec\xb5\xdc\x77\x74\x38\x34\x34\x3c\x25\x9d\x6b\xbb\xce\xb3\xd7\x4c\xe6\x88\x29\xa9\xbb\x1e\x52\x20\x48\xa5\x19\x70\xfc\x4e\xec\xfe\x28\x08\x23\x2c\x91\xdf\xff\xfe\xcd\xff\xc2\x0c\xf3\xdc\x26\x59\xde\xbe\xe5\x02\x29\xf1\xab\xe3\x75\x4e\x94\x46\x84\xf0\xd4\xe9\x57\x77\x9e\x26\xfd\xa7\x6f\x64\x1c\x11\x60\x0d\xd4\xcd\x83\xdf\xcf\x22\xc2\xd2\x40\xfb\xf2\x4c\x1f\x96\x72\x77\x37\x02\x08\x4e\xae\x14\x87\x91\x5d\xdb\x2b\x71\x04\x94\xe5\x99\xe3\xea\xa2\x11\x91\x61\x6a\xd3\x47\x05\x74\x64\x00\x34\x0a\x13\xc2\x2d\x0d\x63\x9e\xdf\x67\x72\xf2\x1c\x11\xa1\xb8\xe3\xd9\xf4\xa0\x90\xf9\xa4\xf8\xa1\xeb\xa6\x93\x31\xe1\x56\x6b\x18\x60\x36\x71\x50\xc5\x4a\xa3\x28\x11\x88\x2d\xd3\xe5\xc3\x40\x6d\x63\x72\xc9\x44\xa7\x1e\xf1\x78\x30\x83\x42\xff\xf9\xad\x2a\x8a\xb4\x85\x69\xd8\x22\x8b\x4d\x97\x1b\x1f\x21\xbb\x68\x14\x81\xc6\xe7\xfc\x17\x2e\x04\xe8\xc9\x4d\x9e\x95\xb1\x14\x83\xb5\x56\x19\xc6\xc6\xaa\xfd\x8d\x33\x6e\xa9\xb7\x1c\x16\xc7\x27\xdf\xbc\x5f\xb7\x2f\xfb\xe4\x19\x8d\x62\x61\x45\x6e\xbb\xcc\xe1\xd0\x8f\xb9\x96\x2c\x98\x8b\x44\xcf\x94\x1b\x8c\xc0\xcc\xe3\x19\x13\x25\xb1\x42\x61\x2e\x24\x64\xd9\x67\x47\xb8\xeb\xd6\xe0\x28\x49\x42\xa4\x0f\x69\xdf\xe7\x30\x04\x11\x25\x32\x45\x63\x1b\x43\x63\xed\xf7\x40\xf5\x87\x60\xe0\x2d\x0e\x17\x08\x9c\xa8\x7e\x9d\x88\xb8\xb1\xa2\x6c\xf6\xa5\x2f\x45\xf1\x5e\x95\x79\xf7\x02\xd2\x48\x20\x97\xf9\x01\xfd\xca\x6e\x51\x8b\x52\x09\xb8\xa3\x36\x1d\x0a\xf3\xa5\xf6\x7b\x65\x24\x28\x68\x17\x15\x58\x2e\x5e\x5e\x3e\xc3\xc1\x4d\xbe\xbe\xe0\x04\x51\x54\x1d\x4f\xe1\x62\xb7\x5b\xef\x0f\xcb\xc5\x6e\xdd\x9d\x58\x44\xe8\x30\x7a\x65\xe2\x1f\x65\x95\x6b\xef\x6c\x4f\xc6\x80\x10\x90\xf2\x4e\xe5\xf9\x58\xde\x3f\xed\xd7\xa2\x2a\xa6\xdd\x24\xb3\x74\xb8\x0e\xd7\xd7\xbe\xbc\x1b\xc8\xe1\x75\x48\x13\x33\x3e\x40\x27\x1d\x86\x51\xde\xc0\x51\x14\xba\x5b\x90\x22\xcd\xac\xa4\xf9\x47\x6b\x72\xb6\x03\x89\x75\x2d\x89\x16\xfd\x48\xba\x9b\x62\xae\x69\xa4\xb9\x65\xea\x2e\xce\xc7\x1e\x1f\xe6\xdb\x94\xc6\xf1\xfc\xb0\x79\xdc\xdb\x42\xbd\x9b\x97\xe7\xc5\x7e\xf3\xf4\x78\xd8\x3c\x1e\x7e\xac\xd7\xbf\xed\x7c\x57\x20\x96\xd1\xbc\x9d\x1c\x36\x78\x89\xd7\xf2\xad\x34\x8a\x9c\x53\xb9\xdd\xb8\x80\x30\x1d\x6d\x8b\x11\x44\x80\xc8\xde\x76\x49\xeb\xe4\x60\xfa\x68\x48\x04\x31\xb3\x05\x6e\x1d\x67\xe9\x12\x1a\xaf\x54\x37\xf1\xf0\x23\x48\x09\xe6\xa5\x6d\x64\x26\xea\x18\x72\xba\x93\x49\x2b\x26\x84\xd4\x41\x98\x50\x59\x9e\xab\x19\x1e\x18\xdf\x1d\xac\x38\x52\x0d\xcd\xee\x24\x14\x6c\x8e\xa7\x73\x3e\x61\x06\xa1\x91\x09\x39\x4f\xfd\x97\x6f\xdd\xb0\xd1\xf3\x19\x61\x0b\xf4\xba\x54\xc6\x42\x8f\xeb\xc4\x28\x0b\x92\x24\x0d\x86\x55\x13\xa6\x81\xea\x06\x84\xce\xb3\xc2\xbf\x4a\x94\x81\xc1\x32\x7e\xd1\x9c\x86\x36\x1d\x23\x22\x8c\x7c\x41\xfb\x48\x6b\xd8\x7f\x4e\x46\x53\x8e\x3c\x95\x3f\x82\xf7\x6c\x1f\x0c\x0e\xa5\x4a\x52\x33\x48\x32\xbd\x0c\x94\xfc\xc7\xc3\x85\x45\x24\x31\x2e\x34\xf3\x08\xbf\x9a\xdf\xe0\xd2\x03\x67\xda\x56\x19\xfb\x48\xed\xe2\xee\xec\x19\x65\xb9\x6f\xa6\x31\xe2\x0f\xbc\x6d\xf0\xb2\xbb\xb1\x70\xb4\xe9\x45\x58\x80\x2c\x62\x8b\xf7\xfa\xcd\xa5\x73\xbf\x20\xd1\xa5\x2c\xe2\x29\xc2\x36\xb2\x7a\x97\xb5\x2e\x5e\x77\x3b\x22\xc4\x14\x51\x59\xac\x9f\x57\x09\x25\x2e\xa5\xaf\xaf\x5c\x97\x81\x69\xcb\x22\xc9\xd0\x99\xdf\x77\x1a\xdd\x7d\x1c\x8d\x45\x32\xb6\xea\x24\xa2\xb8\xc1\x80\x79\x6b\x34\x8f\xef\x45\xf1\xc8\xed\xf2\x0b\xd5\xed\xeb\xfe\x0d\x30\x16\x80\xad\xe7\xab\xd5\x19\xc6\x51\x4f\xc6\xe2\x88\xba\x77\xeb\x4c\x96\xae\x41\xe0\x39\x47\xb2\xfe\x7e\x25\x65\x8c\x2b\xd4\x59\x5d\xed\xb6\xa3\x28\x1e\x63\x22\x40\xa5\x84\xef\x50\xd9\x30\xac\x27\x63\x18\xbf\xed\x58\x84\x48\x56\xf3\xb0\xf8\x03\xc9\x7b\xef\x9e\xba\xdc\x18\x8b\x8d\x72\x55\xb3\xd9\x4f\x78\x7e\xbc\x9b\xf7\x5e\x58\x12\x5a\xd9\x4a\x04\x70\x6d\x61\xbe\x82\x9f\xb2\x84\x07\x4e\x5b\x09\x15\x4c\xa0\xfa\x39\x9d\x26\x2c\x51\xd4\x32\xa5\xfb\x01\xb8\xf1\xe9\x89\x6f\x5d\x0f\xeb\xb7\x66\xaa\x24\xbd\xa3\xc0\x12\xc5\x29\x1b\x78\x24\x8f\xe2\x08\x7f\x6c\x6e\x6e\xab\xf2\x78\x23\x4e\x57\x2c\x10\xd7\x65\x74\xbc\x3b\x91\xc6\x59\x68\x35\x77\x6c\xd2\x7e\x3a\x0b\xd2\x30\x4a\x06\x32\xaf\x87\x37\x9b\x8c\xf6\xad\x4c\x05\xbd\x08\xe7\x2d\x74\xb7\x9e\x1a\x4b\x59\xab\xa0\x68\x6a\x37\xf2\x5d\x93\x08\x04\x6e\x87\x56\x1e\x6c\xba\x63\xe1\x4d\x8e\xde\x93\xe0\x0a\xc9\x10\x84\xd6\x5e\x73\xe8\x2a\x0a\xf2\x5f\x72\x47\x52\x26\x29\xf3\xfa\xd5\x37\x18\x56\x3d\xf6\x22\x97\xbe\x4b\x68\x89\xc0\x1d\x61\xf9\x80\xf6\x9d\x32\x15\xda\x2a\xa1\xbb\x87\xd5\xd2\xff\xa6\x03\x16\x26\x43\x86\xe9\xdb\x21\x18\xa4\x1b\xbb\x86\x0b\xe6\x16\xe2\x8e\xfc\xf5\x1a\x9b\xc1\x8c\x91\x58\xd4\x81\xbc\x7f\xf5\x56\x5c\xba\x17\x17\x07\x5c\x73\xaf\x40\xd5\x71\x73\xd0\x38\xd0\x80\x01\x0b\x8f\xd1\xe8\xa2\x9d\x83\x78\x53\x4c\xc2\x08\x71\x87\x4f\xf7\x4f\xbf\xaf\xbf\x5a\x61\x62\x92\xd0\x01\xb9\x02\x62\x82\x47\xe0\xe1\xf1\x7c\x88\x09\x00\x92\x02\x8a\xa3\x65\x54\xb6\x35\xd5\xfe\xb2\x54\x71\x0c\xc6\x2b\x91\xab\xbb\x8e\xf8\x87\xc6\x21\x11\xd2\xcb\xd2\xdb\x3a\x05\xdf\xc0\x35\x82\x96\xec\xbc\xf9\xb2\xec\xef\xbf\x85\x48\xd2\x38\x94\xc2\x2b\xee\xdd\x8b\x76\xd7\xdd\xda\xf4\x21\xc0\x08\xce\x36\xd9\x5a\xe3\x50\x4b\x0c\x3c\x3e\x97\x43\x80\x11\x8d\x23\x1a\x60\x3a\xe2\x26\x2b\x44\xb5\xde\x7f\xb7\x65\xa2\x5d\x6b\x44\x30\x5e\xb0\xfe\x05\xea\xec\x75\xd6\xcf\xd5\xe4\x3b\xc7\x91\x31\x48\xd1\x8c\x78\x42\x53\x56\x8b\x57\x91\x15\x9d\x67\x16\xb3\x28\xc2\xa2\x5c\xc4\x40\x6d\x6a\xe4\x80\x7d\x9b\xee\x1e\x31\x63\x31\xd2\x5f\x1f\x40\x95\xf5\xa5\x1e\x22\x16\x69\xdc\xae\x89\xdc\x13\x4c\x1e\xcb\xea\xf2\xa3\xac\x74\x8d\xd4\x28\xbe\x87\x96\x3c\x18\x28\xd6\x63\xc0\xb7\xdd\x4c\xc9\xe4\x3a\x71\x10\xab\xb4\xd7\xa2\xfc\xcf\xd4\xc5\x8c\xe3\x38\x0a\x3c\x59\xaa\x9d\x4d\x33\xc9\xb0\x38\x56\x2a\xb1\xec\xaf\xd7\x42\x15\xd7\x22\x38\xf3\xb5\x9e\x33\x41\x4a\xde\xd7\x3c\xd0\x38\x61\x12\x5c\xc6\x63\x9d\xdb\xfa\xcf\xc7\x2b\x53\x30\x4e\xa4\xc6\xd7\xeb\x5c\x14\x17\x65\xf2\x8d\x10\x23\xaf\x94\x9d\x48\x87\x2d\x54\x07\x9b\x38\x38\xf4\x32\x12\xae\x2b\xa7\x0c\x37\x0d\xeb\xe0\xdf\xaa\xce\xac\x1c\x5f\x2e\x0d\x39\xe6\xb7\x72\x30\x4d\xc8\xa6\x8d\x71\x6c\x3f\x35\x0e\x79\x1b\x95\xe8\x54\x50\xbb\x54\x5e\x2c\x62\x19\x0d\xf3\x05\xfb\x2b\x27\xf7\x3a\x78\x15\x8b\x34\x55\x6e\x0c\x38\x24\xc0\x7d\x59\xc3\x2e\xd3\xf3\x95\x7d\x34\x16\x42\x2b\xea\x82\x20\xcb\x4e\x6d\x7c\x3e\x73\xf8\xc9\x6c\x93\x09\xc1\x88\x9b\x7d\x12\x59\xfe\x1a\x4d\x1e\xc9\xa3\xb8\xab\x98\xaa\xea\x4c\x58\x62\x30\x58\x8a\xa6\xc9\xc1\x64\x90\x4f\x6c\xc5\x58\xa6\x0e\xa2\xec\x1e\x7c\x77\xa9\x17\xfa\x98\x4d\x07\x97\x14\x29\xa6\xb1\xf6\xbb\x65\x77\x2d\x95\x18\x47\x17\x74\x07\xc5\xaa\xd4\xdd\x32\xa3\x24\xf7\xdc\xe7\x8b\x3c\xc7\xb4\x38\x0a\xea\x58\x5c\xc9\xc4\x63\x8f\x35\x30\x70\xa1\xec\xd5\xdb\xb9\x78\xa7\xfb\x12\x81\x60\x3d\x1b\x20\x8d\x21\xd2\x18\xa1\xad\xac\x91\xdd\xe1\x47\x47\x76\x69\x0c\x89\xc1\x94\xde\xe2\xc7\x8d\xff\xc9\xc4\x8c\x6a\x47\x41\x08\x55\x73\xd9\xe8\x7d\x69\x1d\xc1\xf1\x6b\x35\x86\xe0\x36\xb8\xbf\xf7\xcf\x97\x04\x01\xe0\x4f\x4e\xe5\x63\x95\x97\x75\x7b\xc5\xde\x4a\x4d\x82\x28\x46\x6f\x64\x58\xb1\x88\xa5\xed\x85\xc8\xeb\x46\x18\xa3\xb3\x5a\x9e\xab\x1a\x61\xf4\x73\x91\x56\x7f\x9e\x34\x41\x93\x03\x77\x25\xda\x9d\x5d\x08\xb4\x0d\x30\x92\x79\x37\x5a\x24\x93\x40\x27\x81\x8d\xa0\x08\xbd\xb4\x8b\x6c\x3d\x91\xee\xa3\x09\x09\xa8\x13\xb8\x2a\x9a\xdb\x5c\x34\x37\x22\xeb\x35\xd6\x7c\x9f\x30\x40\x76\xa2\x0e\x8b\xba\x29\x4c\xb9\x6b\x1d\x22\x3f\x0b\x93\x30\xb6\x5a\xbc\xfa\xdc\xa8\x37\x67\xf9\xed\xcb\xe5\xd9\x2f\x85\x49\xc4\x95\x71\xe5\xcf\x37\xa2\x11\xcf\x50\x9f\xca\xa2\xf5\x19\xbe\xd6\x6f\xf5\x22\x96\xfd\x84\x4a\x58\x18\xbb\x82\x44\x6b\x7b\xfd\x81\x6b\x66\x55\xfe\xcc\xf4\x74\x51\x4c\x58\x42\x3d\xfb\x11\xa6\x11\x6c\xd5\xf7\xe4\xf1\x58\x1a\x4b\x33\x34\x48\x40\xaf\xde\xb2\x5c\x4f\x3d\xd4\xa4\x9d\x07\x98\xc2\xc9\x85\x7a\xff\x3e\x7a\xd7\x09\xa5\x58\x9b\x36\xe5\x43\xf4\xcd\x91\xad\xd2\x6e\x37\x82\xcb\x40\xa3\xac\x3b\x3c\x4a\x85\xab\x6b\x3e\xc8\x71\x49\xc2\xe4\x44\x46\x0b\x0b\x04\x2f\xdf\x7f\x64\xcd\xdb\x50\xd0\x7e\xbc\x06\x8d\x33\x2b\x53\x14\x5e\xc2\x69\x8c\x6b\x19\x1c\xb3\x66\xf7\x8e\xb5\x98\x20\xea\x1d\xcc\x57\x36\x51\xa4\x11\x56\x1d\xc9\xef\x0f\x80\x77\x1b\x71\xc2\x78\xd9\xba\x6e\xb2\x63\x87\x0b\xa7\x49\xca\xb5\x25\x96\x1a\x28\xef\x0b\x44\x85\x5c\xe1\x25\x46\x96\x4f\x92\x0a\xe6\x56\xe9\x9f\x90\xef\xdf\x2a\xb0\x4e\x65\x57\x36\x48\x13\x01\x22\x10\x5d\x41\xd4\x27\x15\x05\xae\xaf\x14\x04\x1c\x6a\x74\xf3\xfb\x61\x37\xf9\xec\x2a\xe0\x98\xb0\x7c\x10\xbf\x0e\xab\xc5\xd6\x5f\x40\x73\x83\x6e\xc3\x69\x98\x7f\xec\x77\xb7\xc4\x38\x6a\x9d\x4d\xa1\xb6\x36\x91\x30\x28\x53\xee\xcf\x6e\x22\x63\xdc\xb5\xbd\x6f\xe7\x1c\xb0\x21\xa1\xec\xf8\x86\x79\x40\xad\x88\xbf\xe3\x0a\x1e\x25\xe4\x7c\x17\x16\xa0\xb8\x48\x6b\x17\x6f\x2b\xc8\x4a\xbd\xc2\x95\x67\x32\xa8\x79\x20\xb9\xd7\xe6\xb7\xd1\xbf\x65\x79\x9e\x16\xe4\x53\x1e\xa8\x10\x2c\xc9\xfe\x88\x01\x94\x72\x12\x68\x34\x6b\x5e\x8a\xac\xf9\x4b\x97\x98\x13\x1a\xa0\x25\x55\x9e\x9b\xba\x11\x58\x84\xeb\xa4\xe8\xeb\xee\x84\xa9\x75\x62\xac\x7c\xce\x42\x97\xa7\x76\x89\x18\xa0\xa1\x98\xef\x28\x25\x86\xf9\xfc\x46\xde\xab\x80\x0c\x56\x55\x4e\x4d\x8c\x11\x20\x64\xc0\x79\xd9\xf9\xa5\x9c\x87\x26\x0c\x53\x9f\x04\x1b\xa7\xe0\x46\x77\x1c\x1a\x1b\x5e\x45\x4f\x73\x8c\xf5\x8e\xfe\xd9\xbb\x69\x21\xfd\xdf\xc8\xad\x94\x3c\xe2\x1a\x0b\x84\xdf\x95\x7a\xa7\x2c\xae\x9b\xaa\x6e\xaa\xb9\xd0\x35\x8f\x84\x65\x8f\xe9\x49\x63\x0d\x54\x22\xb7\xa1\xe5\xf1\xe7\x8c\x64\x80\xbb\xc3\xd6\x7a\x55\xdd\xeb\x8a\x20\x44\x90\xec\x73\x29\x4b\x2f\xf5\xb6\x51\xe5\xf4\x68\xb0\x01\x82\x03\x16\x60\xe8\x27\x73\x2f\x30\x34\x9a\x15\xaf\x7d\xd6\x90\x33\xc6\x39\xed\x05\xb3\xfd\x7b\x19\x92\xe1\x53\x1e\x07\x56\x67\x6c\x71\x73\xb3\xd9\x6f\x9e\x1e\x17\xf7\x56\xa4\xfc\x70\xb3\x7e\x7c\x7a\xf0\xa7\x8a\x69\x8c\xe8\x10\x6b\x6c\x3d\xc2\xaf\x06\xc9\xbb\x90\xa9\xeb\xd2\x91\xc1\x0f\x4d\x78\x9e\xa4\x61\x18\xb9\x5d\x39\xab\xe0\xb1\x6c\xfe\x01\xd5\xf4\x41\x92\x54\x62\x7e\xa4\x2a\x73\x58\xb5\xf6\xf6\x97\x90\x1d\x9e\x28\xf0\x48\x35\x97\xa5\x1d\x66\x1c\x5c\x27\x1e\x1a\x15\x0f\xf8\x23\xff\x9b\xea\x23\xca\x53\x1a\xa1\xc9\xee\x77\x65\xc7\xb3\xf4\x1f\xd0\x73\xca\xf8\x6d\x7f\x89\xe6\x67\xfb\xa5\xf3\x55\xd9\xfb\x0f\x3c\x8d\xa2\x28\x75\x0e\x16\x62\xa4\x0e\x86\x24\xdf\x45\xfd\x76\x70\x67\xe8\x3a\x26\xb1\xb6\x70\xc2\xfa\x0c\xd6\x0e\xae\xa7\x71\x17\x2e\x62\x8e\xf0\x81\x77\xb8\xa0\xce\x6f\x3d\x3b\xf2\x24\x23\xa8\x75\xf0\x9f\x57\x68\x9e\x30\xb9\x39\xa2\x66\xa3\x5c\x72\xc0\x71\xf5\x20\x7e\x2d\xcf\x75\x56\xf4\x01\x21\xae\x20\xd1\x43\x1c\xec\xf2\xf2\x5c\xe8\xc7\x72\xf2\xbc\x3a\x22\x98\x57\x12\xdd\x7b\x59\xf5\xf2\x1e\x9f\x20\xdb\xb8\xe6\x09\xa2\xd9\x1f\x4a\x9d\x59\x01\xe5\xe7\x15\x0d\xbe\x5c\x52\x74\x1a\xa1\x31\x77\x0b\x4e\x86\xed\x13\xef\x97\x83\x8c\x90\xe1\xf6\x06\x8e\x3d\xfc\x86\x83\xd4\x58\x30\x57\x94\x88\x9b\xed\x7e\x06\xad\xa4\xd3\x52\xda\x09\xf3\x57\x83\x01\x0c\x43\xfe\x9e\x97\xc7\xcd\xe3\xa2\x27\x8e\xa0\xdc\x08\x82\x89\x78\xe7\xa1\x8f\x02\x09\x1e\x8a\xc6\x8d\xb6\xc2\xea\x47\x54\xae\xdd\x8a\x8b\x2b\xa4\xb9\x39\x7b\xa2\x29\x9a\x06\xa9\x41\x63\x5f\x5b\xa1\x3a\x5f\x8e\x83\x73\xa0\xfe\x36\x22\xce\xf2\x47\xe8\x24\xe9\xbd\x7d\x8c\x24\x7b\xb7\x29\x25\x44\xe2\xd7\xd5\x25\xd4\x4f\x1f\xc5\xba\x79\xfb\x2e\x0a\x9d\x5f\x15\xe9\xfb\xee\x71\xcc\x1d\xe0\x7e\x71\xd6\x59\xe3\x58\x7a\xc4\x3c\x3d\x3d\x4d\x69\x2a\xd0\x4d\x72\xea\x88\x07\x24\x57\xeb\x41\xf2\x29\x15\x86\x18\xf7\x76\xe7\x48\x18\x68\x4a\x15\xb1\xd2\x58\x50\x37\x7b\xa4\x66\x73\x02\xff\xeb\x02\x55\x30\x9f\xe1\x67\x56\x67\x65\x67\xad\xa7\x54\x71\xdc\x46\x7f\x8a\x3c\xd3\xc3\x92\xea\xaf\xbf\x5c\x1a\x8a\x08\xab\x38\xd6\xb5\x12\x27\xf8\x2e\x1a\xf5\x86\xa4\x42\x95\xdf\x2d\xc7\xf7\x15\x1a\x8a\x31\xe9\xf5\xd3\xce\xbf\x84\x01\x91\xac\xeb\x14\x11\x96\xf8\xc7\x6b\x6d\xaf\xd6\x6d\x39\x57\x77\xa2\x5e\xff\x52\x70\x6a\xd6\xbf\xae\xc5\xb4\xc6\x37\x15\x11\x8e\x45\xcd\x36\xd8\x97\xfd\x07\x2a\xcf\x82\x3f\xff\x7d\xa2\xc8\xda\xdd\x0f\x59\x01\x58\x0b\xeb\x7f\x4f\xa9\xd7\x0b\x7a\xb8\xb4\x4b\xfe\x6d\x05\x5e\xff\x7a\x9a\x7d\x48\x23\x29\x31\x60\x7b\x2e\x4e\xe2\xb2\x2d\xcb\x7c\xf0\xc1\x22\x1d\x40\x4f\x9d\x6d\x0b\x22\x87\x45\xb7\x63\x9b\x31\x65\x11\x30\xe1\x78\xb7\xaa\xce\xaa\xa9\xeb\xcf\x8c\xc6\x94\xa5\xb6\x92\x59\x1c\x65\xb6\xf2\x17\x8d\x03\x8e\xa6\x85\x12\x79\xbe\x83\xea\xe7\x67\x98\xa3\x94\xc7\x4c\xb9\xb2\xa6\xe5\xf9\xe2\x5d\x9e\x34\x55\x56\x90\x3d\xab\x77\x67\xf9\x2f\x50\x4d\x27\xcd\xe1\x3a\x88\x44\xa3\xc0\x7b\x3b\x37\xbc\x3f\x89\x60\x96\xaf\x41\x44\xa9\x80\x00\xfd\x80\x23\x02\x43\xb6\x30\x2e\x06\xa7\xa9\x30\xa1\x85\x77\xe0\x82\xb7\x28\xf4\x0e\xf2\x7c\xe1\x41\x20\xed\xfc\x6e\x3e\xaf\x8a\x99\xbf\xa4\xe4\x80\x1b\x38\x54\xaf\x20\x8b\xac\xbb\x94\x26\x4c\x59\x6b\xfb\xdf\x67\xe8\x63\x73\xa9\x8e\x3a\x3d\x55\xeb\x45\x58\x24\xd6\x5d\x55\x9e\x4f\x93\x21\xad\x65\x80\xa9\x9b\x9f\x19\x7c\x2c\xf2\xdc\x29\x14\xd4\x03\xb8\x49\xaa\xa5\x96\xde\x2b\x99\x58\x86\x29\xc4\x0c\x6d\x67\x9b\x31\xdd\xbd\x95\xa7\x87\x52\xc3\x35\x93\x76\xdb\x33\x21\x5e\x92\xc8\x96\x15\xda\x02\xb6\xcb\xa4\x9f\x09\x2c\xb4\xdb\x2a\x91\xd0\xf1\xf5\x44\x10\x58\x78\x95\xf5\x7e\x6e\x20\xcf\x7e\x0e\xf0\xc7\x22\xe0\x0a\x63\xfe\xff\xb2\x21\x94\x2d\x54\x75\xc7\xf6\x48\x45\x20\x19\x3a\x27\xde\x25\x5c\x8a\xfa\x1d\xae\x45\x46\x66\x91\x97\xd7\xa8\x12\x11\x28\x83\x7c\xac\x27\x7a\xb2\x73\x62\x6a\x85\x0b\xe2\xd8\xc3\xed\x22\xdc\xf3\x12\x53\x41\xe3\x14\x63\xcc\x59\xfd\x0c\x18\x2f\xbc\x2b\x3b\xf0\x82\xa0\x09\xc5\x05\x14\x95\x5a\xec\x8e\x39\x64\xee\xeb\x7a\x59\x93\xa2\xf5\xdb\x0f\xe7\x1a\xaa\x83\x6e\x9d\xf2\x03\x72\x09\x4c\x6e\x24\x8c\x53\xbc\xd5\xac\xc8\x9a\x1b\xbb\x2c\x77\xe7\x61\x2c\xc2\xdd\xeb\x67\xd9\x00\xf2\x0d\x75\x45\x3b\x57\x19\xa9\x6e\x4c\x08\x26\x03\x64\x93\x6e\xad\x16\x2f\xdf\x3a\x84\x9f\x8a\xd8\xa4\x18\x7a\xfd\xc7\xf7\xf5\x9f\xfe\xb7\x24\x92\xbc\xb3\xc7\xe4\xf9\x75\x54\x7c\x28\x12\x25\xb0\x66\x7f\x99\x35\x8b\xfc\xf4\x26\x26\x84\xc5\xdd\x6b\xe7\x01\xc1\x6f\x7c\x2e\xf2\xac\x6e\xfe\x7e\x16\x79\x66\xb2\xd6\xee\xaa\x9a\xe2\xea\x0b\x70\x6a\x6b\xdd\x74\xf6\xda\xa3\x69\x04\x17\x80\x25\x8c\xaa\xd3\x6f\x21\x5d\x93\xb1\x64\x10\xef\xb5\x6a\x17\x86\x1f\x6f\x50\xbc\xd4\xb0\x29\x76\x99\x06\x85\x8c\xf8\xd3\xc5\x7b\xb8\xf8\x8b\x34\x08\x53\xd5\xdb\xf4\xb8\x47\x8d\xef\x28\x8d\x2c\x04\x6a\xff\xfc\x30\xe1\x2d\xa3\x22\xe5\x14\xf3\xde\x53\x52\x4e\x14\x5f\x9e\x37\x6c\x44\x2a\x42\x66\x59\x05\x9a\xac\x82\x99\x78\x9b\x48\x95\xd5\x69\xb2\x36\x03\x46\xac\x7e\x17\xe7\x7c\x3a\x46\x04\x15\x60\x79\x1e\x1a\xa8\x46\x5c\x1c\x54\x08\x6d\x42\x39\x48\xc6\xde\x9f\xd5\xbb\xab\x3f\x1d\x61\xc0\x84\x00\x81\xa6\xc5\xa9\xca\x14\xdc\x23\xfd\x8d\xb5\xca\x5c\xbb\x0a\x2d\x34\xd1\x27\x21\xfe\x7e\x2e\x1b\xf7\x9a\x7c\x0f\xce\xa9\xea\x9e\xa7\x35\xa5\x47\xf2\x2d\x54\x68\x2a\x10\x19\x73\x38\xbc\x7a\x96\xb9\xf1\x1b\xd1\x11\xe9\x88\x31\xfc\x1b\xb6\xbc\xef\x85\x5e\x5b\x1e\xff\x7a\x7e\xeb\x12\x3a\x8e\x30\x57\xbc\xfb\xbe\x78\x5e\x1f\x6e\x9f\x5e\x1e\x6f\x10\x5a\xe0\xaf\x0d\x31\x37\xb1\xa7\xc1\x3f\x17\xb6\xe4\x6a\x3b\xc5\x5b\x08\x43\x14\xa2\x97\x4f\xa2\xaa\x61\xa6\x0e\x46\x98\x84\xe0\x96\x9d\x21\xb7\x2c\xb2\x7f\x4f\x26\x5b\x4f\x1c\xe0\x0f\xe1\xa9\x70\xe1\xa7\xfa\x7c\x9c\x26\xad\x84\x91\x0a\xeb\xfa\x6b\x27\x0c\x3c\x84\xf0\x39\x7e\xa4\xab\x34\xe3\xf9\x8a\x38\x9c\x4a\x02\x96\x55\xd6\xea\xbe\x8d\x82\x10\x73\x20\x5c\x19\x86\x56\x34\x49\xe5\x19\x14\xcd\xd1\x7e\x2a\x84\x48\xb9\x77\x26\x23\x09\xbc\x43\xbf\x2f\xcf\x97\x95\xa8\xf4\x68\xe6\x4b\x16\xc7\x80\x51\xb1\xac\xc9\x9c\x14\x73\x3d\xc0\xcf\x4b\x06\x1c\x17\x4b\x84\xf4\x60\xda\xc3\x7d\xc6\xae\x83\x31\xe8\xce\x3f\x2f\x17\xde\x7e\x90\x09\xa3\xc8\xf2\xe4\x14\xfc\xbe\xa2\x4b\xf5\x47\x18\x3d\x90\x9c\x78\x00\xf5\xf6\xfb\xf3\x6a\xde\xc6\x95\xad\x23\x2c\x3b\xb4\x5d\x3b\x0a\x6e\xcb\xea\x36\x33\x5d\xb2\x4f\x0a\x00\x5f\x0f\xb9\xc8\xf3\xef\x27\x89\x4c\x84\xc8\xc8\xf9\x0a\x8f\xe7\xb1\x4a\x61\xeb\x1d\x4a\x8c\x80\xff\x04\x2c\x28\x5d\x42\x01\x26\x53\x99\xa8\x2e\xb7\xa5\x4b\xf7\xcf\xda\x06\x52\x18\x8d\xd3\xd6\x15\xfc\x58\xf0\xfe\x8b\xb7\xeb\xa4\xd4\x96\x81\x7d\x99\x69\x9d\x15\xaf\xcf\x33\x14\x9d\xae\xa7\x12\x91\x2d\x56\x6f\x5f\xf0\x53\x01\x7d\x1e\x5b\xea\x38\x75\xd5\x32\x79\xfe\x0c\x83\x28\xd6\x27\x6f\x52\xa7\x29\x86\x79\xdb\x6f\xd4\x31\x52\x51\xa9\x35\x40\x3b\x7b\xda\xce\x2b\xc8\xf2\xf9\x15\x4d\x9a\xc4\xaa\x1b\x0b\x2b\x3f\x7c\x45\x70\x4e\x55\xc0\x94\x70\x30\x73\x4b\x77\x84\x8e\xf3\xb4\x93\x4c\x4d\xeb\xb6\x38\xed\xdf\xe7\xbd\x13\xfa\xa2\x8a\xa8\x20\xec\x09\x8c\xdd\xde\xfd\x35\x16\x5b\x11\x1d\xa2\xa7\xf8\x0f\x28\xca\xe3\x94\x71\x92\x2a\x1a\x58\xae\xcc\xcd\xea\xe9\x01\xa0\x39\x8f\x60\x30\x8a\x52\x81\xbc\x13\x36\xaa\x75\x25\xec\xf4\xd5\x8e\xa2\x5a\x2f\xd2\xe9\x5b\x7c\x72\x6b\x61\x04\x31\xef\x38\x11\x0b\x2d\x2a\x8d\xf1\x20\x7f\x75\x16\x2a\x99\xf8\x0c\xe5\xb6\x9c\x40\x14\xf9\xdf\x06\xff\xf0\x71\x1e\xc5\x12\x8e\x28\xf7\xd3\x08\xb4\x33\xa7\x83\x4c\x15\x93\x91\xb3\x42\x1b\x1f\x06\x19\xef\x7c\x13\x65\x57\xaa\x98\xe6\x18\x6f\xf7\x31\x04\x9b\x8a\x1e\x86\xba\x55\x12\x58\x50\x8a\xea\x57\xf0\xf2\xd4\x35\x46\xa1\xa6\xce\x37\xb8\xc1\x09\x33\x2c\x52\x53\x49\x2c\xb1\x9e\x07\x6f\xfa\x1a\x5e\xa6\x92\xd8\x4e\x19\xa1\xf5\x4d\x56\x63\x61\xad\x65\xd3\x9a\xd5\x1b\x1d\x1f\xcb\xb5\xf1\xec\x72\xc8\x47\x36\x6e\x4d\x89\xf6\x4a\x53\xf7\x59\xd1\x1a\xde\xeb\xfd\xf7\xb1\x7f\xa0\xd2\x28\x92\x74\x24\x37\x81\xf7\x39\x96\xf7\xef\x5e\x55\xca\xc1\x71\xa6\x82\x7a\x9f\x07\x62\x4c\x6e\x41\xa6\x48\xb9\x61\x90\x3f\xdc\xb2\x6a\xfa\xea\xac\xc2\xe5\x8c\x5d\x57\x49\x45\xe2\xa5\xea\xbb\x12\xdd\xf1\xd9\x64\x18\x23\xfb\x69\xbb\xd7\xbe\xd8\x52\xaf\xee\xe8\x24\xc6\x5a\xdd\xfa\x5c\x9f\x30\x4e\x32\xd4\x17\xa0\x4a\x1a\x40\x3d\x98\xfa\x7c\x3c\x7a\x53\xce\x35\x29\x66\xb4\xdb\xe2\xab\x0c\x7e\xc2\x03\xba\x44\xa3\x51\xaf\xd3\x84\xea\x5e\x79\x1b\x0b\x01\x06\x2b\xbe\x02\xa1\x70\x59\xc3\x2d\x6d\x5f\xbe\xb4\x83\xda\x86\x41\x86\xd9\x0d\xd7\xd9\x44\x36\xbf\xee\x73\x6b\xcd\x0f\xff\xd9\xe7\x97\x42\x65\xa2\x58\x47\x63\xaa\xe0\xf2\xe3\x13\x51\x47\xaa\x8c\x8e\x88\xe9\x2b\x84\x7a\x6c\x8d\x0e\x02\xa6\xf1\x5b\x64\x85\x7e\x84\x8f\x2e\x6c\x33\x8e\xb6\xe9\x80\x27\x28\xa8\x70\x53\xb6\x6d\xdd\xbe\xa7\x03\x69\x48\xd4\x57\x9c\xae\xca\x3c\x17\x87\xc5\xe2\x10\xd0\xb9\xa8\x9e\xa6\x24\x12\xc9\x60\x59\xcb\xbc\xc4\x50\x36\x94\xda\xfe\x72\xe5\xd6\x34\x8c\xc3\xbe\x0c\xd1\x93\xfa\xf8\xb1\xab\x29\x17\x18\x45\x3b\x9e\x6b\x75\xc5\x15\x4d\x35\xd5\x3c\x74\x64\x8d\xcb\xb2\xcc\x2d\x11\x7a\x87\x00\xee\xc6\x86\x0e\x19\xc1\x40\xdf\xff\xdc\x7b\x50\x97\x0e\x59\x8a\xe5\xbe\xbf\x97\x0d\x58\x40\xc6\x34\x57\xa1\xc3\x38\xa2\xba\xa3\x3f\x9f\xbe\xc4\x50\xa4\xda\x01\xc1\xbd\xc0\xcf\xb4\x4b\x94\x50\x90\x9d\x04\xce\xa0\xf2\xb8\x6b\x8f\x30\x72\xb3\xf4\x1c\x07\xf5\x50\x91\x6d\xf2\xa6\x22\x2e\x52\xe7\x15\xff\xb1\x3d\xcb\xf1\x9a\xa8\x23\x48\x30\xb8\xd0\x2b\x44\x3e\xa3\x3d\xab\x6f\x4b\x94\x72\x9b\x74\x67\x41\x84\xf8\xb1\x1a\xe9\xba\x47\x01\x2c\xdf\x43\x68\x3a\xa0\xf6\x7a\x06\x55\x56\xfd\x77\x89\x43\x69\xc9\x60\x2d\x02\xf2\x7a\x91\xd6\x31\x0f\x22\x4b\x14\x34\xe0\xc2\xa4\x3a\x21\x11\x86\x76\x06\x90\xdf\xac\x78\x9d\xad\x13\xd3\x89\xe6\x88\x86\x6d\xd7\x33\x1f\x1f\x9b\x8d\x48\x69\xce\x02\x0b\x04\x68\x97\x66\x8f\x53\xd4\x5c\xda\x20\x66\x05\xaa\xfc\x09\xd5\x40\x96\x93\x6a\x29\x03\x64\x6a\x2c\xe0\xe3\xa1\xd4\x90\xef\xde\xb2\x93\x4b\x76\xf8\x2e\x2a\x48\x85\xa7\x2d\x39\x44\x07\x51\xb7\x06\xea\x9d\xa8\x5f\x5a\xeb\x3a\x09\x02\xf4\x5d\xbb\x37\xa2\x04\x45\x68\x72\xd3\x38\x26\x80\x21\x48\x5c\xeb\xd0\xd2\x6b\xd8\xba\x71\x57\x98\x3f\x94\x3c\xa5\x10\x50\xa2\x2c\x57\x94\x3a\x57\x59\x73\x79\xee\x11\x84\xbe\x87\x0e\xa8\x53\x25\x68\xed\x64\x1f\xf8\xef\x5b\xd1\xa0\x5b\x6e\xb6\x4f\x4f\xdf\x0f\x37\x8b\xa7\x43\x48\x0f\xc2\x37\x13\xa2\x89\xad\x4b\x2f\x06\x53\x1e\x08\x08\xee\x40\x8b\xa8\xfb\x34\x0d\xa3\x00\x65\x14\x79\x74\x31\xbf\xbf\xc3\x18\xc9\x78\x9a\x00\x35\x29\xee\x9c\x0f\x50\xa9\x73\x0e\x93\xbc\xdc\x0c\x34\xc7\x1d\x17\x52\xc1\x58\x17\x5a\x09\x46\x60\x10\x08\x23\xea\x59\x5f\x4f\xad\x5b\xfa\xc7\xe4\xa2\xa1\xb6\x41\x2f\xcb\xd9\x50\xfc\xb4\x82\x18\xbd\x18\x0b\x85\x28\xd0\x28\x38\xb1\xdd\xfe\x36\x3a\x73\x14\xc6\x18\x17\x72\x23\x70\x6f\x6b\x28\xc6\x67\x67\x61\x8c\x59\xca\x4c\x95\xf7\x60\x9a\x11\x7a\x0a\x58\x62\x53\x98\xf7\x4f\x77\x87\xb5\x57\x67\x5c\x9c\x9b\x72\x60\x31\x00\x4b\x34\x31\x2e\x26\x79\x5f\xbe\xae\xab\xca\xb9\xae\x9f\xec\xf3\x10\x07\x32\x75\x88\xab\xbd\xc8\xa1\x40\x72\xa0\x39\x86\x46\x0a\x31\x8f\x45\xdb\xd5\xb2\x82\x3d\x23\x45\xca\xd0\x96\x81\x98\x2b\x84\xca\xe6\x59\xdd\xd8\x11\x77\x10\xf5\xfb\xe4\x2c\xdc\x50\x34\xbf\x35\xe4\xd0\x80\x9d\xdf\x9f\x14\x03\x8f\x7c\x56\x48\x23\x09\x72\x80\x0d\x9b\xc9\x46\x43\x9a\x84\x34\x1e\x94\x9c\x8d\x59\xb3\xfb\xa7\x16\x2c\xf6\x3c\xa2\x0f\xdb\x39\x29\x33\x0a\x82\xdb\x3a\xf8\x5e\x53\xf8\x94\xfd\x06\x97\xd1\xf6\x0d\x02\x38\xb2\x7f\xe8\xd2\x21\x2e\x10\x25\xfc\x5c\x96\x03\x9e\xae\x49\x65\x88\xb7\x78\x40\x52\x86\x58\xb7\xbd\x15\x1f\xd2\x53\xff\x73\x46\x3a\x63\xe2\xd3\x4e\x6d\x68\x90\x2c\xc1\xfa\xaf\x07\xd0\x99\x2a\xbf\x83\xc8\x9b\xb7\xc9\xe6\x00\x8a\x0b\xe4\xfe\x3e\x66\x45\x73\x10\x85\xee\x19\xa7\x66\xd7\x7f\x50\x90\x62\x11\x9a\xa3\x27\xf5\xf5\xd3\x93\xb7\xa5\x4c\xa2\x30\x12\x90\xa9\x77\x8b\x39\x1d\x7d\x9e\x4f\xff\x70\x87\x1b\x1d\xe2\x6c\xdf\x3c\xae\xd6\x8f\xfb\xc3\xed\xcb\xe3\xcd\xe1\xf7\xf5\x6e\xbf\x79\xbc\xf3\xf7\x6d\x40\x20\x52\x5a\xe5\xd0\x15\xcc\x83\x31\x40\x86\x48\x2c\x6b\x60\xbf\x65\xa7\x69\xad\xbc\x21\x89\xb2\xee\x63\x79\xd4\x7e\x71\x32\x84\x07\x58\xc9\x27\x74\x3b\xe4\xb3\x76\x1f\x72\x79\xe9\x07\x40\xc7\x7d\x72\x0e\xb0\x98\x6e\x40\x75\x9f\x73\xa1\x67\x34\x26\xa9\x21\x26\xe2\xca\x8b\x3e\xfc\x0c\x27\xe7\xa0\xa9\xa0\x5e\xa0\x60\x7b\x2e\x2c\x53\xc4\xbe\x5c\xd4\x75\xf6\xea\xd7\x0a\x13\x26\x0a\x31\x3d\x59\xfd\xbd\xd4\xf9\xd5\x7d\x44\x11\x53\x9e\x7f\xbf\xae\x4b\x85\xaa\x3d\xf3\xe5\x13\x26\x8a\x13\x5c\xb0\x36\x5d\x04\x46\x63\xa1\xe2\x7f\x03\x6d\xec\x9f\x89\x05\x96\x6b\x2a\x73\x1a\x41\xe3\xc1\x4d\x83\xaf\xe3\xfa\x86\xa5\x80\x55\x87\x8b\xcd\xea\xbb\x7f\xc6\x98\xda\xba\xfd\x53\xa6\xca\x53\x7d\x80\x21\xd5\x20\x35\x71\x4c\xa5\xcf\x4c\xba\xc8\x70\xe9\xcb\x23\x27\xeb\x92\x89\x93\x28\x41\x37\xf7\xdc\xa7\x36\x4d\xac\x04\xa6\x7e\x35\x08\x7d\xf3\xff\x73\xf6\x66\xdd\x8d\xea\xd8\xfb\xf0\xd7\xa9\x8b\xbe\x00\x24\x01\xba\x74\x1c\xa7\xca\x7d\x92\xd8\x1d\xbb\xaa\x7a\x58\xbf\xe5\xa5\x61\x2b\xa1\x83\xc1\x0d\x38\x29\x9f\x4f\xff\x2e\xb6\x24\x26\x93\x9c\xfa\xbf\x37\x27\x75\x8c\x98\x84\x86\x3d\x3c\xfb\x79\x2a\xf1\xdc\x47\xde\x4c\x0c\xc0\xbc\xac\x45\xd1\xef\x64\x26\x49\x18\x42\x13\x7f\x64\xf0\xbe\x03\x55\x41\x73\x03\xd3\xee\x4c\x14\x4f\xfb\xa8\xfd\xbc\x63\x6f\xd2\x80\x8a\xd4\xd5\x6c\x6d\xcb\x3c\xdf\x8d\xc8\x73\x46\xab\x9a\x49\xa9\xc4\x4a\xe1\x9b\x5c\x14\xcf\xb5\x78\x1d\xee\x19\x26\x15\x09\x82\xbb\x3b\x49\xce\xdd\x59\xd6\x4d\x75\x56\xcd\xa6\x80\x1e\xd2\x60\x78\xc0\x3c\x3d\xf0\x5d\x05\xf0\x94\xa1\x46\xff\x43\x59\x35\x7d\x93\xd0\x72\xdf\x38\x91\xa8\x5b\xbb\xbf\x75\x47\x93\x10\xed\x5d\x1b\x12\xea\x51\x5b\x53\xe8\xbb\x11\xa1\x50\x7d\x15\x81\xa3\xe6\xb8\x2b\xab\xa5\x28\x74\x77\x2f\x11\xc5\xc8\x45\xd8\x09\x12\x59\x0b\xb4\x1e\xe5\x83\x8d\x20\x56\x21\x02\x65\x6b\xae\x73\x66\x93\x7e\x92\x01\x8b\xaf\x29\xef\x3a\x66\x96\xb1\xe4\xbe\x3f\x47\x44\x18\x4f\x13\x4d\x23\xd4\xeb\xfc\xfa\x66\x64\xbb\x6a\x8e\x50\xac\xfe\xf5\x5b\x6f\xd2\x4a\xce\xde\x89\x3c\x97\x33\x97\x18\x61\xcb\xdc\xf5\x54\x10\x1a\x6e\x99\x63\xd4\x21\xfc\x60\x84\xe8\x48\x85\x96\xb4\x02\xcb\x30\x76\xcd\xd0\xaf\x37\x5a\x29\x0c\xe6\x7f\x5d\x3c\xac\x0e\xbb\xef\xdb\xed\xfd\xbf\xba\x43\x00\x58\xe8\x7c\x40\x18\x47\xbb\xfb\x7e\xfb\xb9\x9c\x2c\x40\x90\x86\x31\xe9\xf2\xaa\xb7\xbb\x43\x0d\x48\xd7\xb0\x3d\xcb\x3f\xe0\x52\x23\xe1\x85\x6f\x2a\x22\x84\x51\x34\x20\x8e\xce\x3a\xec\xa0\xc4\x06\xb4\x2d\x4b\x7c\xf6\x72\x08\xcb\xd2\x11\x3f\x3c\xb5\x8f\xdb\x37\x03\x63\x49\x61\x9c\x5c\xe2\x6f\x21\x4b\x8c\x01\x89\xce\x60\xcf\x43\x34\xf0\x7b\x8d\x31\x86\xbb\xd0\x05\x6e\x39\xfe\x9b\x5c\x91\x3a\x93\x20\x10\x24\x18\xec\xf9\xbd\xf0\xd6\xd4\x64\x24\x41\x68\x04\x8b\xbc\x09\x51\x1e\x4b\x04\xe0\x8e\xaf\x16\xd1\xc4\x6a\x9b\x9c\xe5\x31\x6b\xb6\xb9\xc8\x8a\x06\x7e\x35\x33\xdc\x71\xd3\xaf\x4a\x82\x28\x8e\x95\x57\x07\x81\x3c\x47\x28\xe7\x87\xe2\x20\x24\x88\x44\x48\x5c\x04\xa3\x6a\x5e\xd0\xa6\xe9\xbb\x80\x04\x24\xd0\xdc\x16\x73\x7b\xfc\xf5\x28\xc0\x42\x02\x22\x18\x72\xe1\x3d\xad\x76\xab\xc5\xd3\xf2\xdb\xe1\x76\xf5\x63\x75\xbf\xd9\x3e\xac\x1e\xf7\xbe\x0d\x25\x14\xcd\x3b\x34\xa3\xf7\x03\xcc\xed\xa7\x5f\x87\x04\x34\x71\xe4\x88\x38\xcf\xb1\xb3\x1e\xca\xb7\x0c\x3e\x0b\x92\x93\x80\xb1\x08\xa1\xd4\xa2\xf5\x3b\x1f\x44\x25\xf3\xab\x78\x7f\xd7\x92\xa6\x1d\x7d\xbe\xf3\xae\x27\x30\x04\x12\xb0\x98\xa0\x39\x73\xbb\xfe\xba\xde\xde\x2f\x96\xab\xdb\x9d\x7f\xaf\x38\xe1\x18\x0b\xfc\x6a\xbb\xda\xc3\x9a\xfd\x30\x99\xf4\x54\xcc\x75\x97\xce\x80\x93\xc8\xf4\x90\xa8\x80\x04\xb1\xb0\x98\xf9\xfb\xf2\xf9\xa9\xb4\x33\xfd\x23\x26\xb7\xc9\x0b\x27\xdc\x72\x8f\xb4\xfb\xe2\x63\x59\x1d\x7d\xd4\x88\x04\xa9\x96\x28\xe0\x62\xb2\x02\x77\xdd\x9b\x73\xa1\x73\x58\x6f\xef\x76\x13\x99\x93\xd1\x3a\x47\x02\xae\xc0\x8a\x5f\x56\x59\xd1\x60\xa5\xcf\x27\x70\xe0\xf1\xc3\x08\x69\x90\x79\x74\x9a\x55\x73\x2b\x9a\x63\xc9\x9f\x1f\xba\x32\x84\x50\x38\x9f\xb5\xd2\x1f\x05\xcf\x49\xa0\xa8\x35\xd4\xde\x5f\x44\x0e\x3f\x45\xd1\x60\x4c\xcb\xfb\xb7\xed\x71\xe5\x95\xb2\x2c\x27\xeb\xf8\x8b\xaa\x38\xf5\x21\xdc\xc1\x33\xad\xf6\xdf\x26\xed\x74\x14\x63\x42\xf9\x41\x34\x0d\xbc\xff\x2c\xa7\x52\xef\x1f\x4c\x40\x4d\x29\x02\xfd\x0b\xfc\x14\xbd\x57\x46\x02\x6d\x84\x76\x72\x33\xeb\x06\x8e\xfb\xb2\xf5\x64\x6f\x41\x36\xb3\xdb\x32\x09\x80\x30\xea\xda\x5b\x53\x70\x5f\x8e\x50\x05\x93\x1b\x43\x92\x52\x33\xf0\x4d\x50\xeb\x76\xb2\xb4\x84\x01\x33\x52\xf9\x5c\x4a\xef\x3c\x0e\xf9\x6d\x49\x18\x98\x00\x5f\x01\x13\x8b\xeb\xa2\xab\xb0\x26\x61\x18\x13\x64\x82\x44\xed\xce\xc3\xc3\x62\xfd\xd8\xe3\x74\x49\x18\x25\x96\x51\x10\xac\xd4\xa2\x5b\xaf\xfe\x13\x39\x4a\x87\x1e\xb9\x49\xc2\x88\x87\x68\x2d\xfc\xb0\x29\x98\x15\x72\x2a\x5e\xc6\x3c\x15\xb3\xfd\x1b\x46\x42\x44\x36\xc9\xf2\x8c\x39\xe2\x01\x57\x5d\x7b\xd0\xca\xfc\x7f\x2b\xdf\xb2\xac\x23\x52\xf6\x07\xa5\xe5\x2c\x39\x5d\x2a\xb7\x3d\x4c\x68\xa5\x48\x48\x98\x42\xf7\xd2\x55\xb9\xa1\xde\x62\x77\x3e\xd1\x29\xae\x63\x87\xa3\xa8\x5e\x9d\xbe\xc2\xec\xa7\x08\x69\xa2\xf1\x53\xd8\xf5\xa0\xcb\x5f\x4c\xed\xdb\xe9\x8b\xce\x2e\xd1\x21\x4b\x2c\x40\x4b\x95\x45\x01\xaa\x99\x97\x6e\xf2\x6d\xd3\xd0\xd1\x20\xee\x4e\x65\x51\x77\xc0\xcf\xbf\x8d\x1c\x38\xd7\x38\x89\xad\xf5\xfb\x9e\x35\xc5\x80\x84\x8b\x84\x09\xb7\xe5\xee\x1d\x45\xcf\x8d\xcd\xda\x74\xc7\xc1\x56\x73\xbb\xe0\x67\x0d\x15\x52\xa7\xe2\xb6\x3c\xc9\x83\xba\x33\x38\x0d\x2d\x5d\xb1\xbb\xa2\x0d\xc0\xcf\x01\xd2\x48\xc8\x05\x84\x43\xa1\xd4\x75\x51\x37\xc3\x66\xff\x89\xfe\x6f\x58\xd3\xd3\x0e\xb0\x1e\x2f\x42\x3a\x50\x7d\xf7\xcf\x41\x78\x9a\x84\x22\x31\x08\x68\xd0\x76\x47\xd1\x67\xd5\x11\x78\x77\xaf\x27\x63\x8d\x15\xfc\xf7\xe5\x73\xeb\xfa\xec\x30\xd5\xf3\xfa\xb9\x2d\x41\x42\xc9\x13\xdc\x09\xcb\x02\x96\x50\x34\x1b\xd3\x91\x96\x92\x50\x85\xd2\x47\x7a\x2d\x22\x37\x2b\x9e\x6f\xce\xfa\xd9\x33\xf1\x91\x50\x45\x71\xe2\x68\xd1\xda\x35\xeb\x09\xea\x32\x7f\x83\x0a\xc9\x3f\xc7\xf7\x51\x69\x8c\x94\xb8\x36\xab\x7f\xb0\x3a\x3d\x22\x3f\xd8\x2d\xba\xbb\x1e\x17\x88\x09\xcd\xb6\xe2\xb2\x6b\x44\x37\xb5\x95\xb0\x58\xda\x1f\x02\xa3\xb1\x1f\x8f\xcd\x8f\xfe\x8e\xbf\x95\x02\xbb\xd9\x4a\x51\xbc\xfe\x9c\xb2\x7c\x8e\x9f\x5b\x87\x1c\x39\x41\x3b\x9c\xe1\x13\x58\x6b\x0a\x6b\x0f\x3d\xca\x70\x1e\x74\x48\x50\x3f\x06\xe3\x3e\xa2\xca\x2f\xbe\xba\x7d\x5d\xbc\x39\x42\x06\x3d\xe9\x24\xa0\x29\x86\x38\x4f\x65\x89\x48\x68\x07\xc2\x1e\x7c\x64\x90\x56\xf5\x09\xb7\x63\x4b\xf4\x3e\xde\xb0\x43\x30\x41\xe2\xd9\x24\xde\xf6\xe5\xcd\xe9\xca\x96\x0b\xc1\x58\x6d\xac\x43\xad\xca\x0a\x46\x05\x26\x24\x34\xd4\x3a\xd0\x02\xc5\xe5\x67\x35\x19\x48\x68\x0c\x27\x2e\xa0\xf4\x50\xbd\xce\xfa\xcf\x24\x0a\x1d\xc8\xef\x35\xcb\x9d\xc5\x4b\xa2\x30\x8e\xb0\x74\x75\x5f\x89\x37\xc8\xfb\xb0\x26\x89\x42\x03\x08\x88\xa8\xcf\xb2\x35\xb2\x7e\xc7\x12\x26\x51\x64\x02\xe5\xe5\xc0\x5f\x44\x51\x80\x95\x01\x1e\x00\x29\xda\x36\x1c\x23\xcd\xf5\x7b\xd6\xa8\x97\x1e\xb2\x42\x22\xc2\xb9\x27\xde\x40\xa3\xa5\xb3\x94\xed\xb2\xd1\xb9\x43\x24\x22\x2a\x46\x17\x50\x89\x5c\x2d\xcb\xba\xa9\x6f\xce\x97\x76\xa7\x1f\xeb\xd1\x76\x80\x8b\x19\xd8\x04\x89\x88\x36\xdc\xf3\x3c\xbe\x64\xa7\x5b\x68\x44\x96\xd7\x43\x88\x3b\x89\x68\x10\x26\xb6\x62\x4f\x3b\x51\xdf\x31\xcd\x32\x89\x58\x48\x52\x67\xdd\x5b\x01\x95\x47\xa4\xc1\xba\x03\xf0\xe3\x61\x8c\xbf\x23\x11\xd3\x0a\xb1\x2e\x18\x14\xc7\x91\xb7\x7b\x29\xcf\xb9\xbe\x01\xe2\x3b\x22\xe6\x34\xb1\x5a\x28\x4e\x32\xb4\x3b\x20\x05\x49\xfa\x3a\x67\x97\x34\x41\xcc\xf5\x67\xb9\x70\x12\x25\x01\x0f\xad\xe4\x32\x68\x57\x47\x7c\x73\xf9\x18\xa3\x40\xa2\xc4\x70\x8c\x51\x6d\x86\xd6\xf6\x07\x17\x4f\x63\x8e\x7e\xe7\xf2\x2c\xcb\x6b\x81\x3c\x12\xf1\x40\x92\x4e\x62\x52\x34\x70\x5f\x62\xd5\xc3\x97\xfe\x30\xa5\x9e\xcb\x71\xb2\xa1\x4e\xee\xc4\x03\x8d\x75\x5a\x2e\x53\xfa\xb5\x12\xd7\x09\xc1\xf9\xd2\x56\x7f\x01\x06\x78\xaf\x4d\xa3\x9e\x3d\xb6\xfd\xb3\x40\xfb\xf4\xfe\x89\xc4\x48\xaa\xa7\x00\x74\x5c\xe5\x73\x84\x08\x24\xe2\xca\x96\xba\x62\x1e\xb8\x5d\x3e\xca\x73\x33\x69\x22\x4c\xe2\xb3\xe2\x96\xb7\xf3\x09\xea\x73\x3e\x4f\xee\x46\x22\xc9\x52\x7c\x7b\xd4\x99\x8e\xbe\x74\xbf\x1a\xa4\x9c\xb6\xfe\x8d\x2b\x07\x9c\x5f\x27\x22\x45\x34\xce\xcf\x02\x51\xe1\xa5\x2f\xe2\x21\x91\x16\xa9\xe1\x1e\xe7\x97\x8b\xcb\xad\xb8\x4c\xc7\x2d\xd0\x94\xf2\x01\xff\xea\xf7\x2a\xdb\x56\x60\xb2\x5f\xc3\x38\x32\x89\x20\x01\xcc\xd3\xb4\xaf\xe4\x4b\xc3\x9c\x5f\xf3\xff\x34\x3d\x21\x4d\xc0\x65\x52\xdb\xbe\xbb\x2b\xab\x6e\x97\xb1\x35\xf3\xdd\xb3\x83\x8c\xad\x74\x5d\x27\xb2\xec\xe8\x42\x26\x1f\xcf\x84\x01\x0d\x3b\x4a\xd2\xa3\x68\x86\x2b\x8a\x09\x43\x57\x62\x8a\x55\x1a\x23\xb9\x10\x12\x19\x19\x70\xa7\xaf\x67\x73\x1e\x4b\x5b\x71\x33\xe9\x22\x63\x48\x90\xfa\x64\xaa\x53\xb6\xff\x98\xe0\xb9\x6d\xcf\xd0\x87\xd8\x9f\x5b\xd3\xa4\x5f\x7c\x49\x10\x72\xac\x66\x78\xbd\xc8\x4e\x3b\xb8\x3b\x26\x28\xa2\xa4\xe5\xf9\x82\x0a\x34\x7f\xc0\xa5\x1e\x7d\x02\x12\x48\x85\x01\x26\x9d\xd5\x58\x83\x7d\x35\x7d\xfb\xf7\x26\x61\x92\xfa\x0d\xec\x50\xf5\x5e\x06\x89\x22\x86\x5b\xdf\xaa\x79\xc1\x29\xf9\x23\x83\xf7\x89\x0b\xd4\x2e\x7e\x98\x32\x40\xb7\xa9\x10\xe7\xa6\xbe\x2f\x9f\x33\xd5\x5d\x22\x66\x88\x1d\x6a\xad\x0f\xd9\x29\x9f\x11\x12\xf1\x94\xc5\x5d\xc1\xe1\xcd\xf9\x32\x60\x1b\x25\x84\x28\x16\xf8\x12\xab\xee\xc9\x87\xc4\xc1\x83\x87\x27\x00\xd4\xd2\x6a\x5f\x56\xcf\x57\x9c\xa2\xae\x11\x8d\x18\x26\x21\x33\x55\x0e\x25\xb0\x08\xa1\x84\xa7\x8e\x43\xdb\xe6\x6e\xde\x51\xeb\xfe\xfd\x5a\xbf\x73\x76\x31\x20\x94\x5a\xc7\x3f\xab\xd7\xc5\x3e\x83\x2a\x9c\x74\x0f\x55\x11\x32\x42\xb9\xfc\xef\xee\x5d\x9c\x06\x7e\x1c\x61\x09\x55\xc2\x13\x27\xf4\x6a\x3c\x93\x69\x47\x58\x6a\x30\x1d\xa1\x44\xdd\x5c\x89\x0f\x13\x12\x2b\x0b\xc4\x77\x85\x62\xb8\xa4\xff\x01\x97\xc9\x45\x12\x1a\xa1\x4f\xbc\xaf\xce\xc7\xd3\x4d\x56\x3c\x7b\x03\x80\x24\x94\x22\xf0\xe6\x24\x2e\x4e\x23\xa5\x3b\x12\xdb\xfc\x5b\x05\x6f\xe5\x2b\x56\x4b\x41\xd1\x64\xea\x5a\x0f\x8c\x90\xc4\x08\xdc\x5d\x30\x58\x32\x82\x2b\x8d\x96\x1f\x92\x4a\x82\x73\xfa\xd8\x57\x6f\xdf\x83\x69\xd6\x85\xe3\x6a\xf3\xb7\xe6\x94\x21\x6f\x59\xeb\x1b\x3d\xc0\x11\xbc\x3a\xc1\x07\xc9\xb5\xeb\xd4\x28\x21\x3c\xb1\x54\x05\xb9\xa8\x5b\xff\xbc\x2e\x73\x7c\xf0\x6d\x35\x00\x6e\xfa\xa6\x4e\x5c\x12\x7c\x26\x72\xb0\x2e\x10\x11\x53\x0c\xbc\x1e\xb3\x62\xff\xcb\x3f\x9f\x00\x3b\x69\xb2\x62\x9f\x9d\x4e\x50\xfd\xe3\x0c\xe7\x0f\xc2\x43\x44\x86\x29\xfa\x52\xf7\x8b\xe1\x04\x57\x41\xe4\xd0\xb9\x16\xe2\x8f\xa4\x9f\x33\x10\x11\x42\x34\x8d\x10\x95\xbd\xcc\xf1\x56\x43\x68\xdd\x87\x99\x61\x42\xb4\x63\x7e\x7b\x86\x66\x51\x81\xb0\x56\xd8\xb8\x05\x70\x70\x12\x88\xbb\xa3\xa8\x3a\x05\xf2\x9b\xcb\x5c\xca\x94\x10\x08\x2c\xd9\xba\x57\x10\x2d\xf4\xed\x35\x49\xc2\x24\x02\x31\x7e\x26\x13\x5b\xcc\x0c\xa6\xbd\xd6\xc5\x1b\x14\x58\x4b\x30\xfa\x18\x34\x08\x00\x01\x1d\x1a\xd1\xe6\x5e\xc3\x94\xd0\x30\xa0\xf8\x42\xdf\x8b\x2c\x2f\x9b\xbd\xc8\x72\x1b\xac\x99\xed\x74\x1a\xf2\x00\xbb\xf7\x6c\x95\x3c\x1f\x26\xb3\x86\x86\x3a\x0e\xd3\x2b\x98\xce\xcd\x3c\x4c\x87\xd0\x48\x0b\xea\x49\xc5\x6e\xe0\x52\x7a\x7c\x24\xa1\x04\x62\xab\xd7\x27\x1a\xb8\xcb\x0a\x91\x23\x56\x34\xec\x0e\x9b\x50\x04\x1d\x8a\x10\xa3\xa8\xad\x7f\xf3\x00\xad\xe7\x51\x4c\x55\x33\xdc\x49\x94\x58\xfa\xbf\xa3\x45\x76\xdc\x82\x5f\x51\x29\x4d\x09\x4e\xf6\x87\xf5\xe3\x61\xb7\xb8\x5f\x1d\x16\x0f\x9b\xef\x5d\x84\x94\x52\xae\x31\x65\xbc\x2f\xcf\x55\x4f\x03\x48\x28\x0b\x29\xd8\x0a\xfd\x63\x56\x2c\x5f\x44\xf5\x0c\x87\x13\xe9\x8e\xa6\x86\x41\x4f\x42\xb4\xaf\x00\x86\x64\x79\x84\x32\x45\x31\xc2\x7f\x5f\x3e\xe3\xef\xb6\xe2\x66\xfc\xcc\x71\x90\xb8\xe8\xa1\x29\x0f\xd8\x6a\x63\xc6\xe9\x5a\x42\xe3\x48\xc7\xd2\xfb\x4a\x68\x37\x0d\x62\xc4\x34\x8e\x0c\xc2\xd0\x1f\x97\x5b\x5c\x18\x46\x38\x25\x42\x63\xad\x14\x1b\x8b\x8b\xb6\x1b\xbd\xdb\xa7\x4d\x59\x5d\xd5\x1e\x8c\xb7\x01\x9a\x68\x86\xb9\xcc\xad\xa8\x84\xce\x8e\x10\x74\x1f\x29\xa5\x54\x0c\xa1\x8d\xa3\x88\x2a\x4d\x93\xd4\x58\x04\xd2\x29\xbf\x5c\xb9\x3f\xb3\x66\x16\x4d\x53\x83\x91\x77\xa1\x1a\xac\x23\x9f\xb5\x0f\x69\x2a\x14\x67\x2e\x6b\x34\x2e\x19\xe9\x4b\xc2\x08\xe5\x81\xc2\xfc\x3e\xb4\x2e\xeb\xee\xac\x14\xd4\x36\x90\xd2\x37\xb0\x12\x14\xab\xed\x53\xf7\x53\x92\xa0\x66\xc3\x93\x53\x6c\x6f\x37\x84\x31\x4a\x91\x50\xce\x2d\x71\x62\xfd\x52\xbe\xcf\x55\xd1\xfa\x66\x82\x10\xcf\xba\xff\x92\x55\xfa\xba\x5a\x81\x50\xae\x34\xca\x1d\xed\xa1\x6e\x06\x8b\x1c\xe5\x60\x41\x83\x3e\x04\xd3\x5c\xfb\x06\x54\x44\x06\x29\x99\x7e\xee\x41\xbd\x0c\xfc\x4f\x2a\x03\x2b\x0c\xf5\x0c\xcd\x0f\xa8\xb0\x5e\x64\x2e\x01\x31\x9e\xa8\x2a\x8a\x03\xee\x4d\xee\x9b\x46\x39\x56\xbe\x5e\x33\x6f\x28\xc7\x7f\xbe\xc2\x1d\x12\xaa\x99\x50\xb2\x47\xf9\xdf\xec\xf6\x43\xe4\x4a\x7b\x5c\x81\xa5\x2d\x92\x43\x59\x27\x42\xb5\x36\xa1\xb5\x1f\x91\xa0\x74\x88\x07\xbb\xb5\x13\x6b\xd2\x69\x10\x30\x8c\x81\x1e\x9e\xcb\xdc\x11\xff\x4c\xba\x06\xa2\x98\x7a\x55\xed\xb3\xea\x1e\x01\x88\x41\xb3\xc3\x64\x45\x56\xbf\x6c\x7f\x6c\xbb\x03\x32\x44\x08\x24\x0a\x05\xdd\x5c\x89\xf4\x13\x6a\x62\x81\x68\xbc\xfb\xf2\x19\x3d\x27\xc4\xa6\xc2\xbc\xec\x20\x61\x41\x18\x60\x86\x69\x50\xd2\xe4\xb2\x9f\xee\x86\x2c\x0c\x53\x7c\x67\x97\x88\x5d\x20\xbc\xcb\xe2\x74\x7c\x0b\x16\x45\x2e\x5b\x81\xcb\xf5\xb6\x2a\x15\x80\xae\xbd\x4e\xa0\x6f\x26\x34\xbe\xd2\x5d\x05\x79\x3e\x14\x6d\x21\x58\xc8\x32\xd0\x1e\xbe\xf1\xa4\x07\xdd\x71\x69\xd9\x12\xb3\xfa\x11\xde\xb1\xc0\xc3\x1f\x21\x09\x41\x1a\x1a\xe9\x2d\x71\x6b\xfd\x6d\x3c\x07\x22\x61\x44\x44\xb8\xe4\xd8\xf8\x2e\x32\x19\x0d\x47\x13\x23\x10\xa2\x79\x5e\xe5\xea\xd0\x80\x38\xfa\xf3\x68\xa2\x89\xf1\x3c\x3e\x65\xe9\x33\xd3\x84\x31\x1a\x58\x45\x37\x78\xff\x37\x9c\x6b\x97\x07\xc3\x2a\xb3\xd1\x85\x59\xcc\x90\x68\x1a\x7c\x68\x79\xdc\xf3\x0c\x20\xb2\xea\x3d\x97\x53\x53\xee\x0a\x10\xaf\x50\x0d\xca\x2b\x08\x4b\x12\x0e\x66\x04\x48\xee\x25\x10\x46\xc3\x8c\x25\x92\x63\xff\x0c\x95\x21\x3e\x2d\x05\x20\x2c\xa5\x1c\x4b\x33\x1c\x50\x77\xe4\x51\x4e\x9b\xc6\x09\xce\xde\x9b\xc5\xf2\x8f\xef\xdb\xc3\xdd\xe6\xbb\x5f\x83\x58\xaa\xac\x55\xf5\x0c\xcd\x9d\x38\x2b\x68\x6e\x2e\x58\x4f\xde\x0f\x0e\xce\xb9\x70\x06\xb0\xa8\x9e\x0f\xe4\x90\x15\xa7\x73\xf7\x61\x05\xb7\x15\x75\x35\x34\xf7\x8b\xc7\x5b\x57\xbc\x7b\x99\xbc\x9e\x8c\x12\x84\x90\xde\x64\xcd\xfa\x28\x1c\x35\xf7\x20\xa6\xc4\x24\xb5\x08\x09\xdc\xfb\x5a\x4f\xaa\xf1\x95\xb9\xbe\x81\x09\x02\x07\x66\xfb\x61\xb3\x18\x98\x98\x1d\x2d\xe8\x4c\xc5\x56\xd0\xad\xc6\x71\xec\x97\xf3\xf1\xa3\xe8\xd0\x2a\x20\xe2\xfc\xff\x59\x56\xaf\x7f\xd1\xcd\x9a\x18\x94\xe8\x7f\x12\xc5\xab\xd5\xb6\xcf\x3b\xb9\x83\xe9\xa5\x5d\x69\xfe\x6b\x96\xa3\x6c\x87\x2d\x35\xf1\x9c\x12\x84\x69\x1e\xe1\x47\x7e\xba\xdd\xb6\xc3\xad\xff\x5d\x45\x98\x7b\x3a\xc8\x70\xc2\xc7\x3f\x5a\x36\x19\xd0\x20\xec\x08\xd1\xa6\xa1\x83\xe1\xfa\xc8\x4c\x44\x10\xb9\x77\x74\x7a\x98\x58\xa4\xd5\x0b\x87\x92\x38\x08\x01\xf7\xe9\x0e\x8b\x35\xd2\xa5\xbd\x72\x85\xfd\x59\x4a\x63\x99\xe1\x57\xe8\xec\xd0\x81\xbc\x8b\x6b\x14\x12\x2b\x3e\xd3\x6e\x45\x17\x8b\xc0\xaf\x9d\x30\xd7\xa8\xbb\xe2\x90\x58\xa0\x50\x6b\xdd\xf9\x04\x62\x59\xb9\x75\x63\xe8\x46\x4e\x9e\x22\x24\xda\x2a\xdb\xda\x71\x7a\x07\x30\x5e\xf0\xe2\x88\x11\xc1\x87\x82\x32\x77\x65\xc7\xc3\xb0\xcc\x45\xf1\x2e\x3e\x48\x4a\xc6\x24\x8e\xa2\xa0\xe7\x7f\xd9\x97\xab\xc9\xd4\x9f\xb4\xa7\x4c\x09\xd1\xe1\x9e\x6f\x3b\xb5\x76\x12\x53\xa7\x95\x6a\x83\x69\x55\x07\x51\x98\x9c\x6f\x12\xcf\x01\xba\xa8\x24\xf6\xe5\xb8\x01\x8b\x2c\xf6\xfa\xa7\xa8\x4e\xbb\x13\x74\xa1\x8e\x98\x71\x5b\x0e\x79\x76\x35\x36\xb6\x9f\x3d\xaf\xd5\xa4\xa7\x99\x52\x58\xb0\xb3\x5c\x7e\x3b\x3c\xac\x1e\x17\x07\x6f\x54\xc5\x31\x51\x16\x4e\xd8\x65\x70\x17\xeb\xe5\x47\xc6\x59\x1c\x27\xc6\xcb\xcd\x5e\xa9\xcb\x7f\xa0\x3c\x46\xe2\x58\x07\x48\x03\xeb\xb4\x07\xca\x42\xe4\xab\x5f\x27\x28\x6a\xa8\x87\x7a\x6d\x24\x8e\x0d\xb1\x55\xbf\xad\x31\x54\xbf\xdc\x95\x2e\x20\x1d\x8e\x41\xd0\x24\x4e\x1c\x54\xe0\x94\x0b\x05\x8b\xa2\x7e\x1f\x38\x18\xa3\xa1\x98\x2a\xc5\x98\x0f\x59\xaa\x57\x1f\x8b\x8b\x39\x8d\x64\x3c\x48\x95\xa3\xde\x28\xd2\x20\xf8\x16\x82\x68\xb4\x89\x5c\x50\xe0\xab\x38\xc2\xba\xeb\x7b\x21\x14\x38\xb7\x04\x69\xcb\xb3\xe7\xc2\x95\x25\x4d\xb6\xf2\x58\x6a\x8e\x21\xd5\x1d\x34\x0b\x34\x09\xcb\xea\x62\x3d\x99\xa2\xb9\x8a\xfc\xc7\x2a\xd4\xf8\xb1\x77\xe2\x78\xca\x61\xf5\xb4\x8c\xc8\x6c\x75\x9d\x6f\x1e\xc5\xe8\x1a\x3e\x64\x45\xf6\x00\xeb\xaa\x82\xb7\x52\xb5\x36\xe9\x0f\x94\x67\x9b\xd7\x37\x99\xb8\xe6\x23\xd7\xb4\xf7\xa7\x63\x15\x01\x15\x0e\x0d\xb7\x3a\x8a\x2c\x9f\xc2\x30\xe6\x5c\xc7\x58\xa5\x16\x64\xf4\xdf\x73\x75\xd9\xb5\x1e\xbc\xff\x9d\x5b\x06\x7d\xaf\x2e\x7e\x77\x2e\xc6\x1a\x60\x24\x56\x32\x21\xb1\xcf\x67\xc3\xf7\x2a\x8b\xc6\xab\x8a\x32\xca\x95\x05\x6a\x31\x66\x79\x24\xb1\x4e\x2d\xad\x43\x56\x3b\x74\xd3\x20\x9b\x41\xa6\x83\x47\xf3\xc4\xa1\xcf\xfb\x58\x8e\x5f\x3f\xe6\x27\xb9\x96\x16\x5c\xf7\x0c\x4d\x47\x9a\x5f\x0f\x85\x4c\xff\x13\xfa\x4c\x77\xac\xb5\x0d\xd0\x1e\xc5\x2f\x0f\x85\xe8\x8b\xd3\x49\x0c\x41\x2a\x95\x93\x72\xc4\xc3\xf3\xcb\x02\x44\x96\x65\x40\x9e\x2f\x77\x65\xd5\x6e\x52\x96\xa4\xed\x83\xd4\xf1\xb4\xbe\x7e\x36\x28\x1f\x03\x31\xb1\xe8\x78\x6a\x55\x0e\xd7\xe9\xc6\x24\x20\x29\x42\xa5\x6f\x5a\x7f\xf5\x5f\x87\xed\xea\x69\xd9\x43\x7b\x92\x40\x04\x18\x5a\x6e\x5e\x40\x8a\xe2\xb5\xfb\x19\x08\x1a\xb4\x9b\x3f\x2b\xe8\xe0\x28\x49\x98\xb2\x98\x0f\xa5\x4c\x71\x25\xde\x35\xa2\x19\x87\x41\x93\x30\x4d\xc4\x30\xff\x8c\x9e\x77\x7d\x05\x07\xf9\xdb\xf8\x24\x2e\x31\xef\x91\x7f\xc2\xcd\xe8\x9b\x82\x05\x24\x39\x62\xe1\x3f\xb3\x3c\xef\x90\x6f\x24\x89\xb8\xdd\xad\x5a\xeb\xfd\xfe\x87\x25\x2b\xe7\xdd\x41\xc1\x95\xe3\xcc\xf3\xf4\xc5\xa3\x3e\x4d\x22\x15\xa2\xd9\x6b\x6d\xd6\x4c\xe1\x83\x38\x94\xc3\x6f\x25\x3c\x46\x68\x72\x92\x10\x6a\x03\xff\x36\xbc\x7d\x5d\xad\x42\x12\x92\x0a\xaa\x46\x0b\x76\x3b\xd8\x75\x5f\x54\x33\x62\x1d\xba\x5a\x9d\x27\x7d\x43\x39\xc1\xdc\xff\xb6\xac\x86\x5a\x36\x24\xa1\x00\x38\x10\x5e\xb2\xff\x0e\x84\x0f\x26\x67\x33\x61\xf5\x5a\x6d\x4a\xe3\x3e\x93\x95\xa8\x2e\xed\xe7\xbb\xb3\x79\x9f\x2f\x9f\x84\x65\x13\x66\x42\xb4\x25\xd6\x55\x59\x7c\x13\x85\x1e\x1a\xce\x49\x2c\x02\xa2\x3b\x5a\x7d\x93\x35\x9b\xea\xbe\xbc\xce\x9a\xcd\x9b\x6c\x49\x12\x18\x6e\x75\x90\x30\x8f\x95\xf7\xcb\x4c\x92\x30\x86\x99\x42\xab\x4f\xb1\xa9\xda\xa5\x7f\x89\xf8\xee\x01\xce\x2e\xf5\x8d\xb9\x42\xac\x37\xb6\xf5\x8b\xc5\xa7\xf9\xb8\x24\x31\x56\x8a\xd8\xf9\x41\x58\x26\xf6\x06\xf5\x44\x27\x90\x24\x3c\x08\xb0\x4e\x6b\xf5\xeb\x25\x93\xd9\xf0\x03\x73\x0e\xc8\xd3\x66\xaa\xf2\x4f\x28\xf6\x97\xb1\x48\x34\x49\x44\x60\xab\xf8\x7d\x18\xa4\x35\xef\x9c\xff\x3c\x99\xcc\x82\x47\xd4\x86\x52\xfc\x4a\x99\x08\x03\x18\x71\x00\x51\x37\x42\xd7\x0a\x61\x2d\xb5\x0f\x98\x26\x92\x2b\xa4\x68\x78\x2c\x9b\xbb\xf2\x58\x92\xdb\xee\x80\xb1\xb1\x2e\x4b\x3b\xd6\xe3\x3f\xd0\x19\x9b\xc5\x33\x25\x4a\x38\x6a\xb4\x76\x45\x87\x06\x2b\xd6\x42\x32\x79\x44\x2d\x2d\xfb\x2e\xf6\x70\xbb\x97\xce\x98\xd5\x89\x36\x44\xc6\x23\x2f\x0a\xf9\x1f\xf3\x2b\x60\x66\x62\x18\x41\x80\xaf\x7d\xcc\xdd\xe5\x28\xcb\x7c\xdc\x7b\x26\xa1\xc8\x9f\x76\x18\xb2\x81\x1e\xe4\x65\x5b\x95\xbf\xae\xc3\x46\xb3\xe0\x5b\x7f\x25\x65\xc3\x64\x07\xa7\xc9\x86\x74\x34\xc8\x17\xdb\x6f\x12\x61\x7c\x08\xd3\x43\x14\x4d\xde\xda\x68\x2b\x1a\x8f\xd4\x22\x56\x35\xd5\x75\x74\x1a\xa4\x11\x02\x03\xbf\xff\xf1\x15\x6b\x12\xfc\xef\x61\xc8\x18\xe9\x55\x88\x33\x93\x61\x59\xd5\xac\x0f\xe0\x3f\x41\x1a\x12\x61\xdc\xc6\x75\x9c\x78\x64\x69\x48\x63\x3b\x38\x9e\x56\x36\x46\x89\x85\xdc\x03\x61\x76\x92\x86\x1c\x52\xe6\x37\xab\x46\xe4\x1d\x18\x77\x72\xa9\x28\x52\x5a\xf4\x3c\xef\x2f\x65\xd5\xac\xf5\xd8\x33\x4b\x29\x65\xcc\xd5\x3d\x6c\xc5\x05\xe0\x63\x4d\x21\x92\x52\x16\x25\x9d\xda\x79\xeb\x0b\x76\xc1\x82\x94\xc6\x81\x25\xdc\xa8\x04\x34\xe0\x88\x49\xd0\xf3\x9d\xcf\x44\xa7\x34\x21\xd4\x42\xa4\x5c\x2a\x10\xf4\xae\x11\xea\xf5\x05\x95\x8d\xc6\xdf\x25\x65\x81\x96\xa4\xdb\xe8\x9b\x4c\x65\x27\x51\x34\x37\x97\xb5\x9e\x36\xa4\xa9\x5b\xa6\x15\xbc\x81\x5e\x35\x2f\xed\x30\x5a\xbd\x09\x59\x7e\x00\x12\x4b\x59\x4c\x91\xdc\x4d\xd4\x35\x3c\x17\xe2\xa0\xb3\x2a\x6b\x9a\xf2\xa0\xb3\xc3\x5b\xd9\x94\x93\x2e\x65\x49\x14\x83\x33\x23\xd6\xdb\x91\xb5\x93\xc6\x8c\x21\x0a\x67\x79\xbf\xd9\x8d\xb5\xf4\x49\x1a\xcb\x04\xfd\x3e\xdd\xec\xa1\x6e\x3e\x16\x2e\x21\x69\x42\x2c\x55\x70\xe9\x38\x03\x27\x85\x89\x3e\xdb\xeb\x5b\xd3\xd0\x03\x46\x5c\xc5\xee\x84\x9b\x95\xa4\x89\x88\x10\xf5\x64\x3a\x26\x2c\x7f\x24\x0d\x43\x44\x81\xbc\x08\xaf\xda\xdd\xb9\x31\x69\x9a\xd2\xc8\xe5\x6d\x1a\x27\x51\x3d\x17\x31\x4c\x79\x44\xb9\xb3\xd8\x0b\xb8\x44\xf7\x70\x2c\x07\x49\xba\x54\x44\x29\x77\xb6\x8d\x17\xbc\xbe\x76\xa6\x52\x41\x9c\x6c\x70\x57\x99\x32\x47\x94\x44\x52\x91\x52\xf4\xad\x0a\x1f\xaa\xfa\x5d\xb8\xd4\x6c\x84\x2e\x15\xa9\xb2\x4e\x5e\xf6\x06\xe2\x5d\x5c\xc6\x89\xe2\x54\x72\x9b\xe4\xb0\xd3\xc7\x13\x76\x63\x30\xf5\x32\x9d\xe0\xdd\x1c\x51\x3c\xc4\x52\x77\x4b\xcb\xe6\xf5\x9a\x47\x6b\x5d\xaa\xc3\x08\x43\xd2\x8b\xa2\x28\xcf\x85\x82\xbe\x86\x92\xa4\xda\xc4\x26\xf2\x0b\x2f\xe8\x6d\x85\x20\xe5\xef\x45\x1f\xad\x48\xb5\x51\xc8\xe9\xa4\x06\x56\x88\x15\x45\xee\x3f\x1f\x04\x09\x73\xe9\xf8\xcc\xcb\xf9\xb4\xbf\x1a\x44\x94\x36\x25\xfa\x47\xdd\x15\x21\x15\x08\xeb\xb2\x05\xa6\xab\xff\x85\xdc\x39\x78\xfc\x6f\xa3\xbf\xdd\xaa\x01\x02\x10\x68\xff\xef\xf3\xc9\x6f\x0d\xee\x88\x61\x9c\x27\x23\x30\xca\xc0\xdf\x48\x8d\xe4\xa9\x33\xb3\x97\xa2\xf2\xc8\x3f\xeb\xca\xf5\x95\x7c\xfe\x36\x3c\x08\xa4\x76\x42\x25\x59\x85\xe1\xb7\x7e\x3f\xe6\x51\x94\xa0\x0c\x96\x8d\xf2\xfd\x5c\x0e\x88\x4b\x86\x06\xdc\xbc\xd1\xcd\x69\x90\x20\x0e\x5c\x95\xc7\x63\xd6\x34\x00\xf5\x90\xa0\x85\x70\x1a\x8a\xc4\xf1\x0e\xaf\x8b\xb7\xac\x81\xe9\x5a\xc3\x69\x62\xd5\x9a\x1f\xd6\x8f\x87\x9b\xd5\xfe\xf0\x63\x71\xff\x7d\xd5\x9d\x0e\xd4\x83\xa3\xac\x7d\xbd\x2d\xeb\xac\x97\x21\x19\xce\x61\xce\x28\xc3\x5b\xb5\x86\xc3\x6d\x25\xde\x5b\x8f\xd8\x5f\x87\x69\x89\x92\x10\x6e\x09\x77\x4c\x37\xbf\x6d\xc1\x8e\x9f\x38\x51\x96\x29\x13\x4d\xd4\x60\x7e\x3d\xe4\x9c\x6a\x44\xda\x23\xc7\xf0\xed\xdf\x77\x33\x80\x24\xce\x79\x40\x9d\x1b\x74\x2f\x0a\xdd\x15\xfd\x4c\x5b\x59\xc6\xd9\x53\x3b\x86\x2b\xb8\xcf\xfe\x77\xce\x34\x96\x15\x0f\xa7\x19\x17\x86\x5b\x12\xd6\x9e\x31\xf2\x76\x3a\x65\xb8\xe4\x96\x94\x39\x53\x25\x66\x5b\xd5\x38\x37\xc6\x55\x60\x79\x03\x5c\x7c\xc8\x07\x14\x38\x44\xd2\xc8\x0e\x2b\xb1\x7c\x11\x59\x01\x7a\xe9\x6b\x78\xc6\xcf\x6b\x92\x40\xbb\xe8\xc1\xc6\x87\x44\xac\xd4\xcb\xf0\x6b\x19\x43\x11\x0a\xb0\xb8\xfd\xb1\xde\x6d\x9e\x76\x87\x9f\x8b\xfb\xfb\x95\x77\xc5\xb8\x31\xd2\x8a\x9c\x62\xc6\xf2\xc9\xda\x10\x93\xfb\x18\x83\xec\x7d\x1e\xa9\x69\x73\xea\xf6\xa0\x08\x42\x13\xf7\x8b\xce\xcf\xec\xcf\x3f\xb7\xa2\xd0\x9d\x3b\x38\x00\xd9\x8e\x07\xb4\x08\x22\x82\xb0\xc0\xd5\xf7\xdd\xcd\x70\x46\x8a\x80\xca\x80\x39\xb6\x9c\xe1\x9b\x88\x20\xb6\xc9\x9e\x03\xea\x00\x1d\x9d\xea\xe0\x28\xa9\x3c\x1e\x1b\x22\x54\x2c\x74\xa3\xba\x2f\x22\xb4\x05\x41\x96\xf8\xc0\xb5\x23\x32\xc1\x76\x4d\x59\xd7\xeb\xa2\x29\xf7\x2f\x70\x97\x55\xdd\x61\x1a\xa4\x58\x14\xd6\x9a\x59\xdf\x44\xbd\x15\xed\xae\x34\x31\x5e\x04\x65\x14\xd7\xa4\xdd\x59\xda\x3a\x8e\xeb\x02\x4b\x22\x68\x22\xb1\x18\xb1\x28\x8f\x59\xd1\x6e\x5f\xc3\xc4\xab\xa0\x2a\x15\x16\x9c\x99\x3d\x3f\x1f\xb3\x02\x46\x12\x36\xed\x71\x01\xe0\xab\x9a\xfe\x5b\x56\xed\x90\xaf\x5b\x03\x64\xf2\x28\x2c\xb0\xd5\x14\x42\x6b\xd4\x96\x9e\xce\xb2\xf9\x2a\xdd\xd1\x8a\x29\x18\x44\x9a\xbb\xf2\x2a\x4c\x1e\xd5\xa3\x3c\x8c\x60\x10\x23\x98\x66\xd9\x2e\x74\xf5\x8c\xb5\x2d\x62\x12\xe3\x62\xe8\x4c\xfd\x51\xdd\xf3\x9c\x2b\x2e\x62\x88\x70\x9c\x3d\x88\xa2\x11\xa7\xff\x76\xe8\x63\x91\x10\x13\x43\xa7\x64\x7d\x3e\x4e\x6e\x94\x4a\x12\xb8\x25\x7c\x83\x34\x92\x3d\xf8\x5e\x70\x2a\xb0\xa8\xc3\x1b\xd7\x48\xbd\x00\xed\x3e\x35\xf3\x38\xfe\x9c\x98\xa7\xd6\xeb\xf3\x5c\xf4\x77\xe5\x07\xc0\x03\xc1\x93\xd4\x7b\xfd\xf6\x92\x76\xff\x09\xfc\x61\xa3\xd0\x00\x58\xdd\xff\x18\x8d\x71\x41\x6c\x0e\xfe\x19\x9a\xef\xeb\xe2\x03\x94\xaf\x10\x89\x56\x2e\xf4\x6b\x29\x4f\xaf\xa0\xc4\x42\x88\x18\x53\x53\xaa\xcc\xdb\xfd\x7e\x18\x9c\x14\x42\x06\x3c\x75\xa6\x72\xfb\x6c\x77\x70\x4d\xbd\x3b\x6f\x79\x74\x17\xa0\x96\xc1\xe5\x7c\x59\xf7\x8f\x0e\x06\xdd\xca\x77\xc8\xf6\xe5\x5c\xac\x52\x08\x93\x60\x2d\x99\x67\x91\xee\x01\xf3\xce\xec\x9f\xe3\x39\x27\x42\x9a\xc4\x74\x8c\x6c\xfb\x4a\xe8\x21\x1f\x1b\x11\x8a\xc4\x78\xf8\xb6\x2a\x4f\x43\x8d\x21\x22\x94\xb0\x21\xc6\xa7\xc5\xe3\xd7\x95\xf5\x3e\x68\x77\x4c\x46\xd8\x3f\x36\xba\x8d\xdd\xb0\x1c\x56\x77\x08\xad\xc0\x07\xce\xaf\xb9\x37\x89\x80\x54\x23\xa6\xed\x58\xea\xcc\x5c\x0e\x6e\x42\x86\xfd\xaa\x3f\x7e\x07\xc3\x74\x68\xdd\x50\x54\x8f\x18\x87\x26\x85\xd1\x82\x07\x3d\xc5\xa3\xb2\xba\xff\x1f\xc2\x05\x65\x20\x63\x4c\x22\x78\xf6\xf1\x9b\x4c\x87\xf3\x4e\xb2\x0c\x99\x21\xee\x35\x90\x76\xa3\x39\x68\x87\x6f\x9e\xb4\x93\x94\xa3\xb6\xd7\xf9\x28\xfc\x27\x95\x11\xe1\xca\xa1\x8c\xb7\xe5\xcf\xc6\xcc\xe3\xc9\x65\xa4\x35\xa2\x62\x7e\x7e\x5d\x0e\x07\xb3\x24\x69\x04\xa2\x63\x47\xce\x2f\x58\x95\xe3\x0f\xb2\x20\x64\xde\x82\x42\xfe\x39\xe7\x83\x8c\x2f\xcd\x48\xe0\xa1\x22\xdf\x0b\x2c\xd7\x47\x05\x91\x6c\x1a\xd0\x94\x8c\xda\x89\x33\x8c\xf1\x95\xe7\xe6\x16\x54\x76\x1c\x68\x8d\xfc\x6d\x72\x96\xa4\x08\x6e\x6c\x17\x33\x7a\x5f\xaa\xd7\x11\x39\x1d\x91\x31\x95\x81\x83\xd3\x3f\x9e\x8f\x0e\x89\xe2\x78\xda\xe6\xb3\xe5\x32\x36\xb6\xbe\x19\x8b\x59\x51\x33\x1e\x63\xd2\x67\x91\xff\x84\x6c\x92\x7a\x1a\x9f\x99\x08\x86\x9f\x40\xf7\xac\x58\xa3\xf4\x85\x4c\x64\x64\x79\xf3\x31\x85\x0e\xe7\x63\x6e\xdd\xa0\x47\x68\x86\x33\x42\xa6\x31\xa1\xd7\x14\x5d\xa8\xf8\xec\x2f\x95\x42\x84\x75\x1b\x0e\x17\xa5\x27\x10\x1d\xc9\x03\xc9\x1c\x73\x99\x7d\x86\xb9\x10\xbd\x6f\x4b\x08\x66\x56\x0f\xed\x5a\x57\xee\x26\x5f\x50\x84\x21\xb2\xab\x65\xaa\xb4\x57\x1a\x8f\x7d\x29\xa4\x30\xd6\xb8\x2a\x15\xd4\xf5\xae\x81\x3c\x17\xd5\x68\x22\x4b\xa1\x03\x69\x99\x63\x6b\xf5\x32\x00\x96\x48\x19\x81\x74\x10\x58\xab\x33\x30\x5d\xb5\xe6\x27\x85\x0a\x29\x56\xc7\xe4\xa2\x6e\xfe\xc8\xd4\x6b\x69\x4c\x3b\x67\x6f\xce\x78\x8d\xae\x91\xf2\x0c\xf4\x7f\x2f\x65\x6f\x3f\xf5\x1f\x4c\x85\x1a\x3f\xd8\xe6\x71\xbf\xd9\xfe\x95\x84\x02\x91\x8a\x24\x18\x72\xdc\xad\xf7\x93\x3e\x52\x09\xe1\x9e\x07\xf0\x80\x3a\xbe\xdd\x43\x24\x3a\x8e\x3a\xe2\x85\xd6\x15\xfb\x89\xd8\xd4\xe6\x5c\x75\x9d\xa0\x09\x43\x8c\x1b\xd6\xb2\xf4\x79\xef\x8f\xba\x62\x7c\x6b\x9d\x30\xac\x05\x39\x1c\x3c\x9c\x7b\x6e\x76\xe9\x54\x6a\xe9\x28\x6f\x31\x10\x68\x69\x9e\x84\x2f\x86\xed\x7a\x16\x64\x68\x52\x9f\x40\xfe\x26\x72\x73\x9f\x99\xee\x65\x8c\x26\xda\x25\xf7\x30\x12\x07\xa2\x5a\xe0\x67\xfe\x34\xd8\xaa\x02\x9a\x62\x8c\x7c\xbf\x1e\x2d\x2f\x2a\x88\xad\x4c\x1c\xa6\xd5\xac\x24\xc2\xb8\x5f\x55\xc8\x29\xc6\xba\x9c\xe8\x93\x2a\xff\xff\x95\x25\xa9\x50\x12\x44\xc0\x3e\x94\xe5\x5f\x7e\x66\x15\xd1\x00\x59\xe6\x56\xa2\xbe\x3c\x64\x85\x45\x22\x8c\x26\xb2\x8a\xd2\x28\x35\x8e\xef\x4a\xe4\xce\xbd\xec\xc4\x8c\xba\x56\x90\x22\x7b\xe0\x9d\x50\x20\xcb\xf2\x75\x10\xbe\x56\x84\x86\x38\xf4\x24\x5c\xcb\xf4\xfd\x96\x0f\xa5\x48\x12\x21\x99\x84\x8d\x02\xdf\x8a\x4b\x7d\xd7\xee\xc8\xbd\xc4\x30\x51\x44\xb0\xc4\xd2\x72\x29\x91\xab\xbb\x5c\x3c\xd7\xdd\x21\xa5\xb0\x47\x9e\xa0\x3e\x1f\xa1\xa3\xee\xe9\x69\x7b\x88\x22\x06\xd0\x5a\x7a\x11\xf5\x7a\xb9\x41\x16\x38\x3f\xa1\x15\x15\x60\x3d\xff\xaa\x7c\x47\x82\xc0\xbc\x9c\xc8\x79\x11\xc5\x28\xc7\xa0\xdf\x3d\x1c\xa7\x74\x60\x44\xc5\xd4\xd6\x9d\x9e\x00\x5e\x2d\xe8\xd6\x1f\x88\xad\xda\xe2\xbf\x56\xab\xd1\x60\x49\xc2\x34\x56\xbe\xd8\xc6\xf2\xf8\xe0\xa8\xe8\xfd\x70\x95\xa4\x16\xfc\x60\x5d\xac\x03\x16\x57\x1c\x86\x39\x5b\x95\x92\x34\xed\x95\xc6\x1f\xa0\x11\x7a\x90\xe1\x1a\x0f\x83\x94\xb2\xc8\xa5\x1b\xd1\xd1\x5b\x18\x93\xe5\xd9\x90\x89\x62\x3c\xc6\xd2\x58\x61\xdc\xf8\xfb\x5b\xb9\xec\xd8\x0c\x88\xe2\x29\x45\x3b\xe5\x54\xb5\xe3\xb7\x3d\x02\x7a\xd3\x81\x63\x94\x08\x2d\xa1\xee\xd7\xcd\xfd\xed\x61\xbf\x39\x2c\x37\xf7\xf7\xab\xe5\xfe\x10\xee\x7e\x6e\x9e\x6e\xbb\x56\x90\xc8\x74\x9c\x83\xb7\x20\x49\xcc\x1e\x78\x67\x62\x26\x5e\x3a\xb5\x3c\x94\x30\x0c\x7d\xdc\xae\xea\x6e\x07\xcd\x63\x69\x99\x82\xdb\xd5\xe0\xb1\x6c\x86\x9e\x8b\x92\x51\x8c\x35\x0a\xa7\x0a\x54\x56\x83\xdb\x8e\xf7\xa5\xfb\xc7\xe4\x93\x4b\x4a\x02\x57\x72\x5c\xe6\xba\xb9\xf6\x1d\x94\x8a\x0c\xca\x0e\x9d\x0b\x8b\x94\xf3\xf8\xb1\x49\x2b\x02\x18\xdf\xad\x2f\xf5\xb0\xa4\x40\x41\x60\xf9\x8f\xbe\xef\x16\xc3\xc9\x04\x89\xa3\x61\xed\x43\xb2\x03\x91\x56\xa2\x80\xdb\x2a\x58\x8c\xfd\x19\xb8\x42\xd5\x2b\x10\x21\xeb\x10\x3f\x6d\x37\x60\x1f\x0c\x84\x9b\x7c\x3b\x00\x1c\x84\x99\xea\x75\xb3\x88\x32\x54\x47\x16\x6a\xa8\xe1\x57\xfd\x52\xbe\x4f\xde\xc6\xb0\x50\xaa\x0e\x02\xb2\xeb\x63\x6c\xca\x68\xab\xa7\x5c\x43\xf3\x50\x16\xcd\x4b\x7e\x99\x59\xbc\x75\x60\x22\xc4\x28\xec\xf6\x2b\x0f\x11\xd4\x21\x8d\x44\x32\xa8\xe1\xe9\x62\x99\x61\x3c\xcd\xf1\x9e\xfb\x62\xb7\xfe\x9a\x04\x52\x0c\x63\x08\x59\x56\x4d\xbf\x64\x68\x02\x3a\xb6\x2c\x3f\x37\x65\xb3\x18\x5b\x3a\xbe\x54\x4e\x13\x00\x74\x57\x4f\x98\x78\xf3\x90\xbc\x01\xbe\x46\xd3\x90\xb8\xf0\xf7\xb1\x7c\xc3\x0e\x9f\x35\xb6\x34\xe3\x01\x76\x4d\x5d\x9a\xe6\x7b\x61\xe9\xb7\xc6\x86\xad\x8e\xb9\x0c\x92\x2e\xed\xbf\xbb\xe6\x93\x9e\x77\xf6\x74\x6c\x34\xe3\x13\x72\x96\x99\xd2\x13\x9d\x04\x49\xe0\xc8\xc6\x7e\x94\x4d\x6b\x9d\x8a\x4a\x1c\xaf\x45\xb0\xfe\x7f\xfe\xf5\x77\x21\x31\xd8\x18\x21\x92\xd9\x88\x0f\xf9\xc5\x66\x76\x24\x9d\x90\x04\xe3\xbf\x6f\xf8\x7c\x87\xac\xfd\xd6\xfe\x10\x35\x88\xa6\x47\xce\x8a\x6f\x98\xb2\xa8\xbb\x63\x3c\x41\xb7\xfb\x2b\x34\x5f\xcb\x52\xd7\xdd\x18\xe9\xfa\x36\x01\x8d\xdd\x7f\xe8\x98\x5e\xb7\xe2\xdc\x2f\xf3\x3a\x25\xa9\x8c\x7d\x5c\xa2\x51\x2f\x8b\x77\x71\xd9\x5a\xae\xe3\xc9\x18\xe5\x09\xc4\xac\x23\x1b\xf8\x13\x7c\xf9\xa5\x5f\x78\x34\xe7\x2a\xea\x52\x36\xfb\x72\xd5\xbc\x0c\xa2\xf3\x9a\x6b\x5b\xd5\x38\x16\x34\xbd\x56\xbb\x74\xcd\x45\xa0\xd0\xfe\x43\x44\x28\xb4\x1b\x9f\x35\xcc\xeb\x01\xd1\x20\xd1\x82\xa6\x38\x02\x16\xcb\x7d\xf7\x93\xe6\x98\x7c\x2d\x2b\xa1\xf2\xec\xcf\x09\x1b\x28\xd1\x32\xd4\x88\x21\xb9\xad\x40\x3f\x57\xbb\x77\x4f\xc3\x4c\xb4\x64\x46\x4b\x4f\x6c\x8e\xa8\xb2\xfd\x62\xb3\x83\xc6\x02\xfb\xdb\xe5\xd1\xee\x45\xe3\xc1\x2b\x63\x69\x85\xab\xbf\x3f\x0c\x77\x33\x2d\x45\x8a\xb6\xe9\xb7\xb2\xca\xfe\x2c\x8b\xc0\x2f\x55\x5a\x51\x85\x62\x2a\x5f\x2b\x00\x4f\x5e\x44\xb4\x0e\x39\x32\xfe\xd7\x4d\xa5\x84\x27\x5b\x1d\xc2\x6c\xc6\xe3\x45\xa7\xa9\x25\x32\x79\x07\xf1\x8a\x6a\x81\x57\x35\x49\x93\x0e\x85\x98\x20\x1a\x3a\xab\x1f\x44\xdd\x40\x35\x87\xc6\x83\x40\x26\x68\xf5\xdc\x8b\x42\x2f\x3b\x6c\xb4\x50\xcd\xee\xba\xa9\xa2\xb1\x46\xb5\xdd\xf2\xd2\xee\x9a\x57\x16\xd7\x79\x80\x2a\x72\xe7\x84\x2c\xb0\xf4\xfd\x5a\x7b\x4c\x9d\x4b\xdf\xed\x45\x75\x2d\x16\xe6\xcf\x12\x21\x82\x48\x74\xe9\x39\x20\x27\xc7\x41\x68\xee\x0a\x3d\x45\x71\x19\x3b\x2f\x10\x85\xcc\xb8\x8a\xd5\xc7\x52\xc3\x75\x46\x08\x08\x8f\x62\xe5\xcf\xaf\xe0\xf1\x7c\xec\x4e\xa6\x3a\x05\xe3\x11\xa9\xad\xf9\x7d\xf0\x0e\x1b\xda\xd5\xfd\x1a\x03\x14\x62\x1f\xc8\x3a\x9c\xba\xdc\xaf\xbf\x0e\x63\xa1\x31\x57\x44\x57\xeb\x06\x8e\x5f\x26\x50\xaa\x59\x17\x00\xe2\x34\xc4\x41\x0d\x2e\x0a\xd3\x41\xfc\xc6\x6f\x12\xa7\x49\x14\x74\xf4\x65\x03\x92\x73\xff\x1c\x49\x18\xa7\xce\x59\x9e\x8b\x5d\x8d\x87\x0c\x24\x5a\x60\x7e\xe8\x11\xde\x3d\xf3\xf5\xac\x6d\x3d\xf3\xa5\xd3\x58\x20\x2f\x88\xea\xe9\x56\xea\x01\xbd\x31\x81\x54\xd9\xb0\xfe\xcf\xac\xf0\x53\x06\x38\x4b\x30\x18\x84\xc2\x00\xab\xa7\xdd\x01\x39\x47\x76\x13\x04\x12\x70\xad\xd0\xc0\x10\x8d\xe7\x9b\xb9\x9c\x26\x1b\x2a\x88\x80\xa2\xd0\xe5\x02\x6d\xde\xfb\xb2\x0f\xad\x81\x34\xb1\xf4\x91\xb9\x41\xd1\xfa\xf0\x63\x2a\xa9\xb5\xf3\x2b\xf7\xa2\x78\x9d\xb9\xbe\x66\x21\xed\x75\x53\xbf\x74\xbf\xa6\x68\xf2\xdf\x97\xcf\x8f\xf0\x3e\x55\xc3\x9c\x65\xde\x01\xe0\x21\x66\x13\xb6\xa2\xae\x6f\x85\x5f\xf5\x01\x5a\x43\xcb\xc6\x8f\x3c\xf7\x81\xde\x9d\xaa\x6c\x50\xa4\xea\x5a\x1a\x06\x41\x2f\x45\xc5\xfc\x05\x4c\x9c\xe0\x0a\x31\x32\x8f\xc1\xc8\x90\x98\xf1\xcb\xdf\x9e\xbd\x9c\x68\x57\x48\xec\x78\xca\x89\x09\x92\x08\x17\x8d\xe2\x7c\x5c\x9c\xbc\x30\x0e\x31\x61\xa8\x2c\x85\x7c\x7d\x3c\xa8\x1c\x44\x31\xbf\xe6\x98\x88\x5a\x76\xed\xac\xfe\x6e\x83\x18\x38\x6e\x8d\xe8\xcc\x3d\x13\x31\x4b\xdc\x93\xd5\x8f\xa2\x75\x52\x4e\x1d\x40\xdf\x90\x34\x40\xbc\xfa\x6e\xbf\xd8\xaf\x0e\xdb\xfb\xc5\xbf\x3a\x5a\x46\x62\xa8\x60\x88\x58\xff\xdf\x19\xaa\xcb\x13\xd4\xe5\xb9\xea\x2f\x4a\x25\x89\x3d\xe3\xc0\x5d\x67\x43\x1a\xaa\x65\xd0\x91\x3f\xfd\x84\x6c\xa8\xc6\x4e\x4c\x4c\xa4\x24\x23\x23\xe4\x0e\x8b\x36\xae\x23\x85\x26\x66\x16\x49\xeb\x78\x2b\x90\x6e\x17\xcb\xd2\x1a\xa8\x44\x3e\x0f\x39\x34\x71\x42\x03\x37\xec\xfe\x38\x95\xa7\x76\xee\x4f\x69\xa3\x66\xe7\xbe\x89\xc1\x20\xc0\x6a\xf5\xfd\x6e\x94\x6c\x31\xb1\x09\xd0\xc1\x73\xd9\xa1\xc3\x6e\xbf\xf8\x63\x75\xd8\xff\xf4\x96\x9e\x49\x5c\x5a\xc3\x0a\x4b\xdd\x9e\xa7\xef\x91\x86\xa9\x8e\xbb\x0a\x9c\x71\x5e\xc5\xa4\x21\x78\xdc\xc8\xee\x2c\x6b\x55\x65\x27\x2b\x27\x3b\xde\xff\x4c\x0a\xd4\x71\xca\x59\x4a\x5d\xd8\x35\x70\x9a\xdc\x88\x47\x80\x98\xc1\xef\x58\x01\xb6\x2f\x6d\x06\x79\xb2\x9a\xdb\x79\x31\x29\x2d\x37\x9c\x59\x9d\xa9\xfd\xb7\xf5\xd3\xed\x61\xbf\x5e\x3d\x1d\x6e\xd7\xbb\xe5\xa0\x94\xce\x70\x25\x10\x16\xb0\x5c\x2e\x3f\xf3\xfa\x0d\x07\x5b\x9d\x55\x43\xb3\xae\x5d\xa8\x66\x30\xeb\x8d\x10\xdc\xb2\xee\xe0\xc6\xe4\xbe\xeb\x15\x1e\xc8\x37\x36\x3a\xec\x0a\xc2\xe6\xc8\xdd\x89\x91\x3c\xea\xb9\xe5\x6f\x4b\x75\xc6\xb7\x1d\x3d\x92\x22\x1c\x29\x3d\x6a\x61\x60\xa1\x35\xb5\x6a\x7c\x34\xf8\x9b\xfd\xe3\x5b\x25\x8e\x85\xa3\x5d\x8e\xda\x7d\xd2\x07\xa0\xf1\x83\xb1\xc9\x6d\x75\x10\x27\x81\xe3\xf1\x5e\x54\xcd\x7b\x59\xbd\x4e\x4d\x35\x03\x61\xca\xbd\xa6\xc0\x2a\x37\xe8\x63\xd6\xd9\x24\x36\x63\x20\x11\x68\x5d\x6d\xbf\x3f\x2d\xbf\x2d\x76\xab\xa7\xc3\xc3\xe2\x9f\x76\x51\x3e\x2c\x17\xdb\xc3\xed\xe2\x5f\x1e\x43\x6e\xc0\xe8\xa4\x57\xc1\x79\x10\xbf\x7c\x4d\xe0\xf8\xe1\x4c\x62\x43\xaf\x07\xa8\x5b\x83\x74\xff\x02\x8b\x8d\x1b\x07\x8e\x80\x60\xea\x46\xcc\xdb\x87\xc6\x08\x19\xea\x5e\x05\x4f\x95\x85\x65\xa8\xec\x83\x05\xc6\x80\xa5\x44\xac\xa1\x79\xc2\x28\x0e\x7a\x5e\x5b\xa8\x66\xf4\x87\x69\x10\x08\x4e\x5c\x71\x75\x79\xb6\xb6\xf0\xa4\x76\xb7\x1b\x2a\x34\x08\x39\xa7\xdc\xf3\x91\x94\x27\xf4\x25\x97\xa2\x81\x67\x27\x52\xe9\x75\x44\xaf\x87\x21\x0d\xa2\x84\x60\x0d\xa0\xed\xa9\xff\x9e\xc6\xa5\xe8\x34\x20\x51\x8a\xf1\xc4\x7f\x8b\xd3\x32\x2f\xcf\x6e\x81\xa2\x01\x11\x81\xaf\xfe\xdf\x83\x38\x0e\x96\x02\x1a\x50\x29\x8d\xb3\x3e\x56\x45\x53\x95\xa7\x8b\x3f\xc2\x12\x21\xe2\x01\x45\x98\xd5\x38\x18\xbf\x3a\x03\xcb\x5f\xb6\x7b\x58\xdf\xaf\xfc\x89\x31\x31\x14\x3c\xf8\x7b\xff\xcd\x54\xe5\x71\x6c\x4a\xd3\x20\x09\x4c\x4a\x3c\x36\xec\x5c\x15\xc2\xb2\x05\x3a\x1b\x65\x50\xf8\x48\x03\x1e\x8a\x28\x18\xab\x32\xf4\x8c\x89\xb7\x8e\xfb\x00\xf4\x15\xcf\x22\x0d\x04\x03\x7c\x0e\x55\xfb\x6b\x09\xde\x21\xb4\x1c\xca\x76\x2e\xc4\x40\x03\x01\x11\x6e\x03\x0f\xa2\xae\x91\x76\x65\x07\xc5\x54\x9c\x9a\x06\x32\xb2\xae\xb7\x67\x53\x9a\x9b\xee\x34\x90\x84\x62\x71\x70\xeb\x62\x3e\x6c\x96\xfe\x51\x54\xc2\x90\x97\x0e\x9a\x97\x8e\x0b\xc9\x1f\xe2\x89\x57\x9c\x5f\xe4\xb9\x67\x37\x5a\x9f\x0c\xa2\xc6\xc1\x25\x77\xa2\xc0\x37\x17\x06\xd7\xea\xba\x29\x2b\xf8\x06\xc2\x55\x1f\xdf\x01\x8c\x85\x17\xc6\x8f\xa5\x14\x4d\xa9\x4f\x61\xe2\xa6\x65\xb3\x7a\x3d\xdc\x9c\x06\xca\x24\x3e\x5f\xb9\x05\x54\x05\x76\xd1\xa4\x31\x60\xda\xb5\x6e\x1d\x0b\xc0\xe5\xbc\xd0\x7b\xf1\xab\xbd\xff\x5f\x00\x22\xfd\x89\x3c\x64\x76\xbc\x20\x46\x1a\x13\x72\x2e\x5d\x37\x3c\x21\x75\xcd\x21\x32\x98\xbd\x50\xc8\x74\xea\xaa\x88\x4d\x55\x8e\x50\xd3\x6e\xbd\xa2\x01\x88\xd8\xbb\x66\xe7\x1a\x2a\x77\x78\x32\x8c\x0d\xd1\xe8\x91\x18\x80\xad\xcd\x54\xf8\x2e\x30\x2c\x26\x96\xfd\xe1\x7b\x3b\x02\xde\xab\xac\x13\x4d\xa7\x81\xd1\xb6\x5a\xdd\x5d\xf4\xee\x5c\x68\x84\x2e\x0f\x02\x8f\x34\x0c\x98\xa5\xb2\x5a\xe8\x6f\xd9\xdb\x44\xee\xe8\x63\xe2\xec\xee\xd9\xc2\x20\xa1\x81\xd5\x94\x56\xb9\xa8\xe0\xbe\x7c\x83\xb9\xc5\x21\x0c\x84\x42\xb8\x42\xd5\xda\x26\x4b\x31\xde\x48\x69\x18\x06\x11\xe2\x90\x1c\x17\x51\x57\x2a\x3b\x17\x9d\x4f\xa7\x80\xd0\xf9\x5f\xfd\x95\xa9\xc6\x80\xcf\x52\x9c\x7c\xb7\x85\x91\x30\x48\xcf\xfb\x53\x34\x75\x59\xe8\xf2\xd9\x1f\x20\x84\x9a\xd8\xf5\x27\x52\xf1\xce\x06\x4c\x69\x48\xb4\xcd\xfb\xae\x8f\xc7\x5c\x5c\xe3\x0c\x68\x48\x13\xc0\x12\x5e\xef\x55\xdd\x95\xd5\xdc\xa8\x0c\x29\x4f\x12\xb7\xbe\x2d\xac\x6c\x11\xe8\x7d\xa9\x3d\xa6\xb9\x6d\xc0\x91\x85\xe9\x16\xe3\x4b\xc3\xb5\x31\x64\xa1\x54\xa4\xe7\x14\x2d\xeb\x46\x96\x17\xbf\x62\xcc\xa6\xd0\x43\xdf\xdd\xad\xd1\xd0\x55\x66\x55\xeb\xa2\xb9\xcb\x20\xd7\x61\x77\x65\x99\x9a\xb4\x23\xc4\x46\x6a\xe6\x7a\xb8\x82\x7d\x12\xa6\xa5\x21\x33\x04\xc3\x7b\xf2\x7c\xd9\x35\x67\x9d\x95\x63\xc6\xb9\xf1\x77\x8f\x13\x6b\x0b\xdb\xda\x5c\xcc\xa3\xcd\x60\x54\x68\x18\x73\x8e\x93\x70\x3f\x4a\xf3\xd2\x30\x8d\x25\xe6\x29\x76\x65\x2e\xaa\x5b\x51\x8e\x0f\x26\x1c\xfd\xdf\x13\x12\xf5\x62\xe0\x06\x53\x97\x23\x89\x6a\xdf\x56\x82\xaf\xaa\xc3\x40\xcc\x13\x08\xed\xe2\x45\x37\x97\x7d\x25\xd4\xeb\x04\xbb\x46\xc3\x14\x94\xd6\x83\x38\xe6\xb0\x68\x66\xf2\x9a\x3c\x0a\x68\xec\xa5\x8e\x94\xc3\x44\x55\x1f\x2a\x39\xb9\xb3\x44\x10\x62\xe0\xed\x34\x58\xd6\xac\x02\x9f\x6f\x40\x62\x2c\xc9\x74\x6a\xe7\x95\x6e\x37\xeb\x42\x41\x9e\xc3\x18\xa2\x4c\x43\xa1\x22\xdc\x5b\x6c\x49\xc9\xa1\xce\x3a\xd9\x4f\x1a\x0a\x10\x18\xfa\x3e\x9d\xe7\x8b\x84\x68\x28\x8c\xf0\x84\xaf\x3f\x45\x55\x65\x65\xd5\xd5\x34\x82\xb6\xd8\xbc\x49\xe7\xc8\x28\x44\x0c\xca\xfa\x8f\xfd\x5f\x7a\xd5\x34\x94\xd2\xa6\x71\x51\x1c\xa0\xca\x9a\x8b\x35\x07\xad\xdd\x7e\xbe\x22\x66\xa2\xa1\x0a\x19\xf4\xb6\x06\xba\xb9\x9f\x25\xf2\x68\xa8\x5d\x25\xaf\x85\x2a\x7e\xb9\x8a\x3c\xd1\x50\x2b\x2e\x6d\xb5\xa3\x06\x38\x4e\x24\xab\xc6\xdb\x53\x08\x91\x45\x17\xb4\x36\xc4\x13\x98\x1b\x1b\xcb\xf3\xfd\x09\xc4\x0a\xea\xfc\xe3\x2c\x8a\xe6\x7c\xdc\xf6\xb3\x19\x20\xc0\x55\x10\x83\x7f\xab\x42\x87\x81\x3f\x62\x62\x12\x0e\x59\x25\xa7\xb5\x8e\xe3\xd7\x89\x02\x12\xe2\xb2\xbb\xdc\x23\x0c\xfa\x8b\xff\x99\x0a\x27\x40\x94\x9d\x3c\x44\x8b\x46\x21\x4b\xd0\x3f\x70\x09\x77\x84\xb1\x60\xe1\x49\x0e\xeb\xe3\x29\x47\xd4\xda\x35\xa3\x0e\x8d\xc2\xc4\x42\x7b\xff\x11\x4d\x0e\x44\xd4\xe6\xd5\x4d\x66\x9a\x97\xd5\xaf\x06\x90\xf2\xb4\x7d\x27\x94\xc3\x5e\x75\x1a\x16\x34\x8a\x94\x21\xd4\x19\xed\xdb\xf2\x34\x3f\xbe\x22\x92\x5a\x96\x01\x95\x97\x75\x9f\x05\xa4\x11\x11\x01\xd6\x99\x7e\x2d\xe7\xeb\xfd\x3e\x9d\x3f\x11\xa5\xcc\x62\x8f\xcb\xac\x58\xd7\xf5\x19\xb4\x4d\xed\xf7\xb4\x24\x34\x8a\x03\xe5\xc3\xc4\x37\x16\x88\x39\x22\x78\x18\x5f\x30\x49\xac\x77\xf1\xb0\x7e\xdc\x8f\x68\x4f\x68\x94\x70\x8b\xb2\x75\xea\xbd\x63\xae\x8d\xd9\xd4\x2e\x8d\x12\xa0\x28\x82\xbb\xd8\xee\xbe\xcc\xee\xb5\x5d\xbb\xd4\x38\xfc\xb7\x45\x91\xaf\xeb\xad\xc8\x26\xcb\x51\x94\x06\x11\xa6\x3f\xa4\x4d\xe9\xd6\xf7\x03\x9e\x53\x1a\xf1\x20\x88\x3d\xc6\xbd\x7e\x1d\x06\x9b\x69\xc4\x23\x85\x29\x24\x9b\xe4\x59\xbc\x89\x2c\x6f\x5d\x0f\x07\x29\xee\x66\x7a\x6f\x35\x44\x5c\x58\x55\x74\x04\x28\xd7\x99\xba\x69\xcd\xdc\xa6\xde\x42\x45\x82\xbe\x4e\x98\x46\x5c\x53\x94\x00\x3e\x66\x8d\x79\xd7\xc3\xc5\x39\x12\x84\x58\x5e\x03\x5c\x3d\xf2\xcb\xa1\x86\x1c\x54\x73\xc8\x86\xda\x21\x7e\x53\x89\x04\x0f\xa4\xee\xcc\xec\xc3\xff\xce\xe5\x75\x7d\x88\x6f\x2a\x38\x6a\x64\xd6\x4d\x79\xda\x41\x73\x3e\x75\x77\x04\x20\xc9\xa0\xe2\x63\x5f\x16\xb5\x67\x9f\x70\x4d\x24\x0b\xb1\x26\xea\x61\xf1\xf8\x4f\x2b\x22\xef\x0f\x70\x41\x6d\x99\x5d\xd9\x7a\xf8\xe8\x17\x1d\x9c\x22\xae\xfb\xed\xcb\xe8\x6b\x48\x2d\x91\x15\xac\x81\xba\xf5\xb9\x5e\x36\x6f\x50\xe5\xa5\xd0\x83\x7b\x01\xa4\xae\x68\xe4\x6b\x5e\x4a\x91\xa3\x5f\x81\x4b\xde\x5c\xdd\x24\x8d\x54\x6a\xf0\xf9\xb3\x7a\x53\xec\x20\xcf\xa7\x87\x85\x26\x5d\xf8\xef\x24\x96\x65\x05\x73\x61\xe7\xb6\x21\xf0\x0e\x27\xf1\x55\x1c\xa1\x7d\xb6\x9b\x0b\x6a\x76\xfa\x26\xca\x49\x5a\xb6\xdd\x83\x55\x02\x0e\x14\xe3\xd2\x74\x93\x0b\x82\xc0\xba\x0c\x65\x37\x4e\x5b\xad\xe5\x8f\x19\x6d\x02\x4b\xe0\x01\x05\x72\x45\x7f\x30\xb7\x34\xe1\x49\xc7\xe6\x3c\x66\xe9\x6d\x0f\x5a\x35\xca\x47\x78\x47\x86\x85\x89\x03\x7b\xfd\xdf\x0f\x33\x52\x34\xd2\xa9\x56\x96\x0b\xfb\x99\x75\xdf\x57\x03\xc3\xed\xea\x66\xbd\xff\xb6\xb8\x5f\xdc\x8f\x86\xaa\x76\xd8\x41\x47\x68\xbb\x2c\x91\xc5\xb7\xe9\x46\x39\xa4\xdc\xba\x16\x7b\xef\x3f\x45\xc6\x21\xf8\xfe\x80\xea\xf9\xf7\x42\xcb\x34\x32\x9a\xb1\x2e\x63\xf5\x8a\x3c\x25\xed\xb8\x9a\x7c\x3e\x12\x86\x14\x29\x1b\x9e\xbd\xbd\x3e\x71\x17\x48\x48\x24\x36\x68\xca\x02\x7e\x35\x55\x4f\x47\x42\x49\xa8\x9d\x48\x76\x23\x9e\x81\xf4\x14\x15\x94\x44\x51\x10\x89\x61\x95\xf1\x88\x1d\x85\x12\x46\x0c\xd2\x81\xc0\x2f\x2c\xdf\xee\x7e\x4e\x12\x43\x5c\x5e\xc5\x16\xd9\x5c\xe5\x31\x28\x61\x9c\xe2\x5d\xdf\xb0\xea\xa3\x37\xee\xe7\x8d\xf9\x39\xd8\x14\x25\x4c\x24\xe8\xa7\xf4\xd5\x79\xdd\xe8\x20\x4c\x0a\xf4\x48\xb3\x06\x8e\xf5\x5d\x59\xb5\xef\x85\x54\xef\xf3\xbb\x0d\x61\x5a\xe2\x2e\xb9\xdc\xde\xf9\x4b\xc4\xad\x85\x39\x90\xf8\x1e\xb0\xa9\xe3\x6e\x31\x35\x2e\x46\xd7\x8b\x13\x4b\xdb\x68\xa1\x19\x4f\x20\x72\xdc\x94\xad\xf5\x38\x2c\xbd\x0c\xa3\x74\x98\xd2\x76\xe2\x76\x83\xf8\x0b\x89\x95\xd5\x9a\xb0\xdb\xc8\x8f\x2c\xcf\x45\x56\x4c\x69\x33\xe6\xdf\x2a\x06\x26\x1c\xc2\xc9\x2e\x22\x17\x34\x48\xc7\xdd\x98\x04\x22\xd5\x68\x9a\x40\x75\x79\xb8\x58\x82\x9e\xf1\xd7\x4a\x78\x9a\xba\x75\xc4\x71\x1e\x55\xd3\x16\x92\x60\x36\xe0\x45\xd4\xdf\x0b\x87\x9d\x03\xdd\xe7\xe9\x26\xad\xc1\x7a\x88\xef\x53\x4e\xe5\xc1\x6b\x27\x26\xe0\xe9\xb8\x7c\xe1\x5a\x9a\x95\x92\x94\xf5\xb8\x16\x54\xbc\xfb\x72\x3d\xe7\x7d\x53\x11\x53\x18\x93\x39\x20\x74\xb2\xaa\x27\x3d\x92\x2a\x86\x29\x91\x17\x81\x2e\x0e\x74\x00\x12\x4a\x78\x64\xe3\xaf\x75\x76\xc4\x0d\x63\x23\xf3\xec\x79\x90\x2a\xf5\xcd\x84\x09\x5d\xd8\x66\xad\x41\xdc\x42\x17\x53\x9e\x3c\x3e\x57\x31\x2a\xa6\x17\x65\x71\x77\x2e\x9e\x33\x99\xc3\xcd\x58\x2b\xcb\x8f\x12\x7f\x02\x84\x58\xa3\x28\xcf\x97\x7d\x05\xf0\x49\x21\x38\x25\xdc\xd8\xf7\xd8\x67\x47\xf8\xcd\x15\x87\x08\x62\x11\x7e\x0e\x93\x24\x7c\xc2\x87\x12\x91\xc6\x68\xf0\x6b\x99\xef\x5e\xc4\x5d\x9e\x9d\x46\xaf\x2c\xb8\xf2\xbc\xa8\x0b\x2b\xa5\x3d\x53\x05\x4d\x89\xd0\x21\x46\x20\x1e\xd6\x8f\x58\xc8\xb7\xf9\xee\xed\x25\x22\xa9\xc1\x18\x16\x58\x20\xc4\xfe\xbd\xec\x8e\x08\x86\xbc\x65\x28\x85\x76\x25\x65\x31\x79\x6b\x08\xac\x14\xa9\xbd\x7d\xbd\xfa\xdf\x59\x8c\x6a\x62\x29\x81\x30\x90\x74\x98\xb0\x83\xfd\x07\xe6\x1d\x01\x6a\xa1\xed\xed\x9e\x7d\x27\xb2\xfc\x7b\xd1\x54\xe7\xa1\x2c\x0e\x0a\x7d\xf8\xc6\x9c\x23\x4d\x87\xa9\x00\xe6\x29\xf8\xdb\x36\xca\x42\x03\xca\xa2\x11\x59\x51\x5f\xf3\x96\x51\x62\x52\x6b\xc9\x7b\x9a\xb6\x0d\xca\x18\x3c\xbf\xcc\xe6\x8c\x29\x0d\x02\x85\x56\x5e\xd5\x36\x09\xf9\x78\x84\xd1\x20\x8d\x2c\x9f\x22\xea\xe9\x0e\xe4\xb4\x29\x0d\x38\xc3\x15\x6e\xf7\x6d\x3d\x84\xfd\x53\x1a\x12\x8d\x34\xf2\x1d\xf3\x5c\x9e\xdf\x95\xd5\x24\xf2\x38\x91\xe2\xa5\x94\xd2\x04\x83\xbd\x67\x1b\x27\x19\x5d\x91\x29\x69\x88\xab\x84\x6b\x6a\x57\xd1\xdb\x2d\xd7\x94\x01\xc1\xfa\xb5\x43\x56\xa3\xf4\xff\x0f\xcc\x57\x8c\x5f\x24\x96\x31\x12\x7f\x5b\x88\xfc\x43\x56\x20\xb0\x3d\xf2\x97\x88\x75\x8c\x99\xf3\xdd\x4b\xd6\x8c\x6e\x9d\x90\x18\x62\x5f\x1c\x5f\x35\xfd\x4d\x13\x4a\x74\xdc\x91\x82\x57\x8b\x49\x80\x81\x26\x42\x23\x3c\xab\x80\x77\x54\xfe\x1d\x2d\x12\x34\x91\x29\x8e\xd6\xec\xd4\x7a\xed\xe3\x13\x95\x75\x51\xec\xe2\xef\x49\x42\x9f\xe0\x74\x1e\xfb\x54\xc3\x20\x21\x4d\x8c\x90\x41\x1f\x53\xec\xd5\x3e\xfd\xe3\xa6\x2a\xc6\xed\x6e\x7d\xb3\x5c\xf8\xdf\x44\x10\x21\x1e\xfd\x54\x95\x0d\x28\x7c\x0d\xa1\x1a\x98\x29\xee\xa7\x54\x88\x08\xab\x52\xef\x37\x5f\x0f\x37\xd0\xdc\x97\xf5\x87\x14\xd5\xee\x0c\x19\x4a\xd4\xa2\x28\x8b\xfc\xf2\x4d\x54\x6f\xd3\x8a\x7b\x4a\x25\x8f\xb1\x5e\x71\xbd\xdc\x1c\x6e\x36\x8f\xdf\x77\xd1\x61\x77\xff\xf5\xf1\x70\xbf\xda\xed\xfc\x33\x4a\xb0\xa0\xf6\x5e\xa6\xa5\x2a\xbe\x37\x59\x9e\x35\x97\xf9\x49\x47\x15\x8d\x11\x8b\xaf\x44\xae\x06\x46\xe6\xa0\x81\x96\xda\xfb\xda\x87\xa6\x3c\x94\x1f\x0a\x6b\x74\x9f\x4b\x19\x10\xd6\x5b\xc8\x9e\x6d\xb8\xde\xdb\x6a\x54\xc7\x8c\x0e\x25\x7a\xb7\x15\xce\xba\x91\xaf\x3f\xbe\xbf\x4e\x95\x88\x06\xa6\xc1\x7d\xf9\xfc\x99\xb7\x46\x35\x4f\x30\xf5\xd5\x5a\x23\x57\xc3\xcc\x84\xa1\xe5\xc8\x6f\x47\x67\x56\x3c\x0f\xeb\x97\x28\x35\xd4\x42\x59\xb0\xe0\xb1\x81\x6d\x2e\x8a\x7a\x63\x7e\x40\xa1\xaf\x85\x66\x46\xf5\x99\xfe\x7c\x57\xd9\x73\xaa\xca\x53\x59\x8b\xfc\x47\x39\xcd\xaa\x53\x16\x52\x82\xc1\xe4\x55\xf3\x72\x7f\xf1\x28\x26\xca\xc2\x44\x5b\x30\xd6\x60\xa9\xbb\xb9\xf4\x9a\x0a\x9f\x7a\xda\x2c\x14\x21\x7a\xb2\x3e\xd4\x6c\x19\x32\xea\xee\xe2\x4a\xa2\xd2\xf7\xbf\x87\xb8\x58\xca\x42\x23\x71\x3b\xc7\xd2\x39\x51\xc3\x7d\x29\x8a\x4d\x71\x03\x2f\x22\x37\x03\xf6\xf5\x0f\xf2\x66\xee\x22\x51\x4c\x69\xef\x78\x3f\xc2\xfb\xed\xa5\x10\xc7\x4c\xb9\xe4\xdb\x62\x1c\x51\x1f\x6f\x50\x2c\x92\x89\xa6\x9e\x0d\x14\x0b\x2a\xf5\x9c\x49\xcd\x48\x60\x75\x89\xfc\xb0\xee\xfa\x65\x51\x8c\xbc\x5a\x46\x02\x8e\xd1\x7f\x79\xbe\x3c\x3c\x2e\x47\x3b\x11\x23\x34\x42\x03\xed\xdf\x22\xfb\xb7\xc8\x7a\x10\x28\x65\xc4\x50\xe8\xe5\xe2\x3c\xb1\xf9\x5f\x46\x3b\x7e\x2b\x0a\xc2\x68\x4c\x11\xa2\xd3\xba\x2d\x50\x34\xbe\x28\x7c\x6e\xc3\x66\xd4\xc8\xc4\x81\x44\xc3\x41\xaa\x85\xb1\x24\x62\xce\xb6\x5c\x3c\x43\xd1\xac\xf5\xcd\xc5\x17\xe3\xde\xc0\x64\x90\x33\xc6\x39\xde\x71\xf5\x78\x7b\xb8\x5d\xec\x57\xdd\x55\x20\x94\x3e\xac\x6c\x6f\x0b\xf5\xfe\x45\x34\x4b\xe1\xe8\xee\x06\x95\xc6\x7e\xa3\x61\x71\x62\x33\xc9\x3d\x4b\xcd\xdc\x2a\xc1\x62\x2e\x90\x80\xfe\x11\x50\xcb\xc6\xff\xaa\x53\xdd\x6b\xa6\xef\x4e\xa0\x32\x27\x48\xb9\x2c\x0b\x2b\x50\x39\xd9\x60\x59\x42\x52\xc2\x06\xdb\x21\x06\x8d\xaf\xa2\x71\xf3\x5d\x9d\x10\x8b\xa3\xae\xa1\x79\x3a\xff\xb5\x10\x89\x3b\x2b\xa5\x91\x31\x5d\xe0\xf1\x1e\xde\x16\x85\xbe\x6b\xad\x3d\x0c\x9c\x57\xf5\x34\x69\xc4\x78\x14\x6a\x57\xb6\x82\x38\x9c\x8e\x96\xd0\x1d\x17\x21\x23\xc2\x1b\xa4\x93\x7e\x12\x2c\xe5\xbd\xba\xdb\xae\xcc\x33\x8d\x4a\x88\xf3\x89\x0e\x26\x20\x30\xb1\x57\xff\x69\x2d\xb2\x59\x48\x00\x65\x32\x32\x81\xa3\xb4\x71\x88\x98\xc5\x71\x3a\x2c\x14\x0b\x30\x14\x70\x2a\xb3\xa2\x79\x2a\x4b\x84\xad\x7d\x99\x9d\x97\x8a\x89\x20\xf2\x86\x3e\x9c\xf6\xef\xe5\xb0\x40\x6a\x7a\x59\xcd\x6c\xd5\x72\x9e\xbd\x41\x75\xf1\x5c\x46\x9f\x77\xba\x8e\x00\xad\x9e\xac\xd3\x5d\x59\xe8\xb7\xd6\x52\xa9\xdb\xfe\x34\x53\x89\x7e\xca\x34\xb3\x4a\x95\x96\x59\xf5\x05\x5c\xe1\xde\xb0\x58\x88\x32\x9d\x4a\x66\xe3\x5d\xc5\x52\x9c\x5a\x1b\xd2\x1f\x81\x98\xa0\xa9\xbd\x7d\x5a\x1d\xba\x0d\x14\x8d\x62\x4f\x57\x47\x19\x24\x8e\x32\x1f\x4e\x79\x39\x8f\xcf\xa0\xcc\xc4\x29\xb1\x6a\xed\xcd\xb9\x2a\x6c\xe6\xd7\xc7\x8b\x6c\x93\x38\xa0\x80\x2c\xd9\x75\x53\x9e\x86\x42\xa8\x34\x0e\x18\xf3\xf2\x09\xed\xfa\x33\xd5\x53\xf9\x08\x16\x10\x07\x71\x9a\x74\x15\x0c\x28\x55\x15\x1d\x48\x77\x51\xb0\xbc\x79\xed\x06\xfd\x33\xc3\x80\x70\x25\xbe\x8a\x0f\xa5\xe3\xdd\x69\x61\xa0\x5c\x0c\xbd\xb9\x02\x94\x7d\x70\x46\x04\xd6\xb8\xb0\x44\xb5\x1f\x60\xfc\x06\xd5\xa2\xb4\x75\xeb\x31\xa0\x27\xcf\x55\xb1\x5e\x6e\xdc\xe2\xee\x0f\x72\x89\x56\x24\x58\xf6\x3a\xc4\x7f\xf8\x63\x51\x18\x1b\xeb\xb5\x16\x45\x56\x3c\xef\x50\x14\xc7\x1f\x8b\x14\x82\x27\x8f\xe7\xbc\xc9\x5a\xdb\x74\x8b\x05\x12\x1f\x92\xbe\xd0\x38\x4a\x13\x9c\x1e\x47\x87\x47\x19\x41\x39\x69\x4c\x44\x04\x56\x84\x4a\xd4\x25\x42\x89\x6e\x33\x63\xd6\xc5\xcd\x69\xb2\x3a\xc5\x94\x50\xb4\x10\xf6\xef\x25\x92\x7c\xa3\xdd\xf2\x17\xc0\x92\xdf\x2d\x38\xfa\x7c\x99\x8a\x29\x63\x18\xcb\xb5\xfc\x16\x63\xae\x23\x1a\x33\x42\x90\x02\x47\xa2\x48\x83\x7f\x31\x96\x58\x0e\xea\x1a\x9a\x6f\x99\xd6\x50\x2c\xcf\xad\x65\xf9\x65\x4c\xf8\x41\x63\xc6\xe3\x8e\x8c\x07\x23\xdc\x2e\x40\x3d\x7e\x79\xc6\xb5\x75\x61\xb6\xeb\xc7\xbb\x3e\xaa\x15\xc7\x84\xa3\xb1\xfb\x77\xa1\x5e\xeb\x6b\xaa\x05\x1a\xc7\x71\x6a\x91\x29\x65\x81\xc1\xc9\xae\xd0\x89\xc6\x49\x94\x60\x18\x7a\x8d\x30\x9b\x9e\x44\x84\xc6\x09\x05\x04\x98\x7f\x13\xea\xd5\xa2\xbb\xfa\x7d\x3e\x4e\x18\x41\xd8\xc7\xea\x0d\x49\x37\xac\xe0\xbc\xb3\xc3\x07\x56\xe1\x87\x0a\x97\x1f\xf4\x71\xd2\xfa\xb3\x6e\x2b\x38\x9e\x06\x11\xf7\x38\x31\x0c\x55\x3d\xb2\x42\x3b\x94\xc3\x88\x9b\x9c\xc6\xa9\x4b\x26\x38\xa5\x40\xac\x19\xbc\x3b\x23\xa1\xd1\x60\x22\x73\x11\xfa\xd2\xf0\xbb\xcc\x34\x2f\x2e\xb6\x3b\x21\x42\x6f\xdb\x09\xec\xb1\x83\xce\xde\xb2\xdd\x29\x1f\xc4\xd2\x3e\xdd\x02\x63\x19\x25\x7e\x23\x68\x17\xe2\xe9\x46\x11\x4b\x9a\x22\x17\xc7\x51\xbc\xc2\x2e\x3b\x9e\x72\xa7\xe4\x78\x75\xf9\xd9\xe0\x7e\xac\x22\x89\x1c\x5e\xa7\x41\xfe\x63\x3c\xf1\xbb\xa6\x3a\x48\x11\x29\xeb\x69\x19\x27\x73\x4e\xab\xc0\x11\xc0\x60\x91\x3a\xe6\xb9\xe7\x3d\x80\x58\xab\x24\x1c\xa8\x0e\x78\x40\xcc\x07\xe8\xc6\xe1\xba\xa9\x75\x8a\x40\xa2\x93\xf5\x32\x46\xd6\x7e\x0c\x21\x67\x3d\x2c\x0f\x53\x0a\xa3\xac\xb0\x6f\x46\x23\x74\x97\x6d\xb5\xf7\x18\xea\x33\xbc\x17\x88\x28\x1d\x28\x7d\x2c\xd4\x70\xf8\x80\xb1\x3a\x70\x59\xa1\x33\xe4\xa7\x2c\xf4\xae\x6c\x8d\xa1\x61\x3e\x39\x09\x62\x2e\x8d\x2b\x8d\x43\xf3\x76\x02\x26\xa5\x49\x20\x43\x2f\x19\xe1\x70\xf6\xa3\xae\x4a\x02\x63\xf1\x2c\x35\x34\x0f\xe2\xd7\xee\xea\x78\x98\x10\x74\xe6\xa0\x1f\xc6\x5d\x29\x45\x7b\xb4\x4b\xc2\xdb\x10\x66\x6b\xa9\x8d\x0d\xf2\xbf\x4d\xae\x97\x72\x4c\x44\x69\x68\xa0\x3a\x66\x05\x38\xb1\xf4\xa1\xe1\x9d\x84\x9a\x21\x27\xc9\x0f\x68\xee\xb3\x66\xbe\xe8\xa6\x6d\xa5\x91\x33\xec\x0e\xe5\x63\xdd\xc7\x1d\xef\xac\x49\x14\x51\xac\x7d\x40\xa0\xc2\xbf\xbb\x5a\x59\x9a\x10\x6a\x09\x08\x50\x74\xc7\x2a\xfe\x8f\x3f\x63\x42\xd2\x10\xf5\xa9\x2c\xa4\x2e\x2f\xeb\x49\x01\x07\x4d\x88\xa4\xe0\xde\x7e\x80\x21\x73\xcc\x5e\x76\x3d\x9c\x83\xb3\xd3\x84\xa8\x24\xf0\xca\x10\x87\xb2\xf0\x5a\x72\x77\x22\xaf\x61\xf5\xbf\xfb\x0e\xde\x92\xd0\x90\x45\x6c\xe6\x0e\x78\xe9\x71\x24\x3a\xa1\xa1\x49\xdd\x44\x7e\x80\xe3\x0d\xd4\x56\xe2\xf7\xdc\x03\x8c\x12\xaa\x29\xca\x04\x76\x74\x73\x37\xe2\xf9\x73\x0b\x39\xa1\x46\x6a\x0b\x9c\xbe\x15\x97\xfd\x4b\x56\x35\x17\xb4\xa5\xfa\x11\xc6\x02\x86\x3b\x1c\xc6\x24\x31\x60\xd6\xda\xb6\x3d\x65\x37\x4d\x98\x8a\x22\xac\xa0\xc9\x0a\x8d\x98\x07\x8c\x14\x8e\x39\x95\x47\x37\x8d\xa5\x4e\x22\x5f\x16\x3f\x93\x46\xf6\xcd\x40\x20\xdd\x90\xb0\xc9\xdb\xf1\x7a\x91\xc4\x86\x22\x42\xe9\x78\x40\x98\xf5\xe2\x74\x1a\xe6\x50\x93\x44\x13\x57\x2b\x99\x29\x38\x28\x97\x22\x0a\xbb\xc3\xc0\x30\xbc\xf4\x22\xda\xc5\x0e\x61\xa9\xa7\x1c\xd6\x0d\x1c\x3f\x34\x93\x3e\xdf\x2a\x92\x34\x96\x3e\xc0\x7d\xbb\xdb\x3b\x36\x40\x7f\x2c\xb1\x05\xa7\xeb\xdb\x0e\xf6\x98\xa4\xda\xb2\xbc\x74\x0c\x36\x56\x62\xd2\x1f\x35\x01\x06\xb8\x5c\x75\xe9\xed\xde\xda\xb5\x73\x58\x9c\x24\x35\xd4\x8b\xce\x7e\xcb\xea\xd6\x99\xbc\x87\xe2\xb9\x79\xf1\x77\xe2\x81\xc4\xb9\x90\xd5\x1b\xb4\xa8\xbb\x5d\x25\xe1\x61\x8c\x26\x9f\x55\x0d\x18\x10\xe5\xb7\x87\x0c\x32\xe4\x1e\x86\x24\x0a\x4f\x60\xa0\x82\x39\x0b\x75\xce\x7b\x4d\xb8\xe6\x4e\xe6\xdf\xfa\x20\xbd\x82\x05\x4d\x04\xb3\x34\xfa\xfb\xf2\x58\xaa\x32\x2b\x46\x96\x60\x22\x98\xad\x0a\x1c\x16\xdc\xed\xa0\x69\xa6\xa9\x8f\x44\xa8\x80\x59\x5c\xf3\x1b\x38\xf6\x9e\x9e\x10\xb1\xf5\xd8\xca\x6a\x9a\x9e\xfc\x30\xff\x9f\xa8\x30\x66\x5e\x1f\xe7\x74\xaa\x50\xd9\x08\x96\x2f\x50\x37\x5d\x0e\xfe\x4b\xd7\x54\x22\xbd\xed\x80\xcc\x70\xe0\x59\x27\x8a\x86\x5e\x92\xaf\xe3\x79\x25\xd1\x78\x15\x54\x69\x80\xa6\xf0\x2d\x1c\x4b\x55\x89\x26\x53\x5b\x91\xb7\xef\xd8\x5d\x44\x58\x97\xa8\x7d\xd8\xf6\x55\xda\x73\x87\x55\x13\x34\x51\x52\x08\x27\xd7\x73\x87\xa5\xdb\x1f\x8e\xdd\xc1\x42\xa2\x75\x88\x9e\xcf\xa1\x80\xf7\xc5\xb3\x4b\x8a\x74\x0a\x86\x1f\xac\x13\xda\x08\xd4\x65\xff\xd9\xc5\xa4\xf7\xe5\x88\xb9\x9f\x26\x40\xcc\x40\xa7\xdc\x0b\x1d\x4e\xbe\x17\xc4\x02\xe3\x31\x75\x76\x3c\x8f\xc4\x9b\xce\x1f\x24\x8e\x07\xff\xfd\x4f\x98\xc4\x7e\x7e\x00\x08\x15\x76\x02\x98\x9d\x13\xec\x8e\x1a\xcd\x7d\x78\x04\x13\x45\xb6\x73\xc6\x7b\x47\x1a\x46\x1a\xb7\xaa\x9e\x9f\xef\xaf\x08\x5f\xe7\xfb\x26\x0d\x13\x12\x78\x09\x39\xf4\x84\x56\x53\x67\x35\x0d\x55\xe8\x42\x0a\xed\xaa\x6c\x89\xfa\xfb\x9a\x45\x9a\x86\x86\x12\xe8\x18\x68\xd1\xf7\xda\x67\xcd\x44\x61\x99\xa6\x11\x81\xd8\x05\xcd\xd1\x9e\x1c\x22\xdc\x7c\x93\x14\xfc\xb2\xa2\xe0\x06\x9a\xd6\x20\x9e\x36\xe1\xca\xd2\x36\x9e\x65\xe6\x1f\x20\xd2\x09\x71\xb8\xbf\xae\x80\xc0\x41\x14\x27\x6f\x1b\x69\x8b\xdb\x6d\x20\xef\xd9\x37\x68\x4a\x02\xed\x81\xe1\x4e\x0d\x4f\x3b\xc5\xf2\x7e\x51\x4e\x69\xa0\x62\x47\xcc\x32\x5c\x0c\x52\x2a\x19\xda\x39\xcd\x0b\x20\x89\x4d\x6f\x28\xa5\x2c\x8d\x91\x39\x00\xd3\xe6\x3e\x56\xe6\x8f\x49\x89\x88\x8d\xf7\xc3\xbe\x13\xe2\xa0\x69\xac\x0d\x22\xeb\xfa\x02\xf7\x21\xa3\x25\x4d\x93\x20\xc1\xac\xd2\x41\x3a\x93\xd5\x55\x41\x74\x69\xbe\x34\x89\x79\x34\xcc\x90\x5a\xb6\x94\x71\x37\x24\x10\x60\x64\x61\xfb\xb4\x5e\xae\x0e\x0f\xeb\x5b\x7f\xf9\x54\x29\x4b\x32\x6b\xcd\x3e\xdc\x4d\x31\xc2\xe2\x19\xdd\x69\xca\x69\x84\xae\xc1\x77\x09\x08\x85\xea\xf0\x55\xa9\xd0\x14\xb7\x52\xf5\x62\x76\xaa\x47\x03\xa4\x32\x4a\x30\x82\x54\x9e\x9b\x76\x1f\xd3\x59\xf1\x3c\x90\x25\xa7\xa9\x64\x10\x4b\x9f\x54\x13\xaa\xe9\xa8\x87\x0e\xbe\x85\x0a\xc0\x57\x27\x3e\x89\xe2\x75\x32\xb0\x54\x14\x48\x4f\x1a\x76\x79\xbc\xca\xb7\xa4\x9a\x0a\x8c\xe9\xb8\xa4\x4a\xaf\xe2\xf0\x34\x2d\x5a\xa2\xa9\xe6\xa1\x0c\x3d\xaf\x69\xbf\xf6\x5e\x17\xe0\x0e\x16\xa5\x54\xcb\x30\xa1\x23\xd8\xfe\x55\xa1\xb5\x77\x4e\x53\xad\x2d\x61\x5b\x01\xef\xd3\x28\xd9\x07\x33\x14\x82\x14\xe1\x9e\xa8\xfb\x26\x72\x8b\xec\x99\x74\x81\x49\x2d\x38\xb5\x75\x8d\xcb\x73\x0d\x2b\xfd\x0c\x0f\x59\x91\x1d\xcf\xc7\xb9\x5d\x37\x35\x10\xe2\x06\xa9\xcb\x9f\x65\xf5\xba\x28\xf4\x56\x5c\xf6\x1b\x9f\x4f\xe5\x41\x1c\xa0\xc3\xb6\x2c\x8f\x27\x68\xb2\x51\xe6\xe9\xaf\x96\x99\x4f\x0d\x0d\x1e\x72\xe1\x1e\xd4\xc5\xba\xeb\x5d\x56\x3c\x63\xda\xee\x3c\x53\xee\xec\xce\x8a\x42\x26\x6c\xf1\x1e\x14\x7a\x75\x2a\xd5\x64\xe1\xe0\x11\x15\x56\xca\xad\x35\xf1\x6a\x07\xa5\xd2\x77\x65\x05\x6f\xdd\x38\xe3\x51\x1c\x21\x26\xb3\x93\x64\xa1\x9c\x08\xcb\xc8\x95\x1d\x4f\x65\xe5\x08\xed\xee\xca\xea\x83\x38\xff\x78\xc7\xe5\x34\xb0\x30\xb2\xb7\xf6\xd9\x27\x03\x89\xb3\x80\x60\xf2\x14\x90\x5f\x06\x10\x62\x35\xfb\x7d\x39\x8b\x2d\xc4\xac\x01\x71\x1c\x04\x22\x38\x4b\x38\x1d\x08\x37\x75\xaa\xd9\x94\x33\x25\xf0\xeb\x3d\xdc\x2e\xf9\x6f\x66\xe7\x79\x42\x12\x70\x85\x7b\x6b\xb7\x97\x90\xcf\xa3\x9a\x3c\x89\x2d\x52\xc9\x61\x00\x77\xa7\x72\xe2\x4d\xf2\xd4\x29\xee\x2d\x8e\x50\x65\x4a\x14\x8b\xac\xca\xb3\x02\x06\xfc\xe4\x6d\x1b\x81\xe1\xa8\xed\xe2\x5f\x3e\xf9\xc8\x79\x20\x43\xe6\x47\x41\x25\x0a\xf5\x02\xd3\x7a\xc0\xb9\x00\x1c\xe7\xdc\xc4\xda\x75\xc9\xc8\xfd\xe5\x5c\xa5\xb6\xfe\x05\xf7\xef\x91\x54\xd4\x38\x10\xe9\xdb\x6b\x25\x98\x5f\x33\x2c\xa6\xdc\x1d\x11\xdc\x98\xbe\x44\x6b\x9b\x55\xa2\x78\x11\xb8\xaa\x8c\x3b\xd9\x37\x17\x21\xb7\xb9\xe5\xca\x06\x3e\xf4\xf8\xc1\xa4\x0a\x39\xe9\x43\xe4\xa8\x10\x7d\x1d\x77\xe6\xd2\x50\xdc\x44\xee\x33\x09\x95\xaf\xee\x6c\x7f\xe6\xc8\x17\xb5\xbb\x5b\x8a\x53\x86\x30\xc3\xf6\x73\x5f\x67\x0c\x27\x90\x66\xae\x68\x1c\x25\x3d\xfb\x66\xbd\x39\x75\xe1\x26\xae\x62\x29\x65\xc7\x9c\xff\x19\x0e\x84\xab\x44\x32\x5f\x9e\xf3\x3c\x85\xa0\x70\x25\x0c\x66\x37\xca\x5f\xaa\x73\xb9\xb8\x92\xca\x52\x96\xb4\xab\xf8\x2c\x7f\xd3\xac\xfd\xca\x35\x03\xd2\xa1\x04\xaf\x24\x1b\xa7\x8d\x93\x04\x2d\x58\x07\x42\xee\x56\xd2\x0f\x2e\xad\x95\xaf\x65\xb6\x36\xce\xb7\x8b\xac\x32\x9d\xfd\x89\x9b\xb5\x8b\x0e\xce\xcf\x01\x6d\x42\x6e\x6d\x9f\x1a\x2b\x94\x6c\x9c\xc2\x9b\xfa\x1c\x94\xe5\xa4\x35\xa7\x5b\xa7\xa6\x7d\x75\x09\x11\x84\x1c\xa2\xbe\x5e\x1b\xb9\xca\x0f\x1e\x7c\x20\x02\xc2\x50\x16\xe7\x00\xed\x32\x82\x94\x18\x58\x20\x37\xce\x70\xa7\xf3\x53\x54\x04\x54\x47\xae\x50\xf9\x21\x7b\xae\x44\x03\x98\x51\x1b\x4f\x53\x11\x80\x44\xfb\xd7\x6e\x80\xab\xa2\xc9\x9a\xcb\x68\x44\x8f\xf6\x4b\x11\x4a\xea\x99\xf6\x7e\x94\x0d\x0c\x65\xc4\xfb\x3b\x87\x10\x11\x9f\x54\x81\xdc\x0a\x41\xd6\xf3\x79\x1f\x11\xa5\x1a\x4b\x0f\xe4\x0b\x1a\x14\xfe\xd5\x49\xc4\x7c\xd1\xdd\x1f\x17\x09\xd5\x23\x60\x19\xe6\xe4\x64\x1a\x47\xe8\x69\x1c\xec\xee\xba\xc6\xfa\xb3\x72\x62\x9a\x0b\xc6\x53\xc4\x40\x3c\x23\xf8\x15\xc7\xb4\xdf\xe8\xef\xfb\x02\x3b\x11\xab\x54\x59\xba\xe5\xdd\x51\xe4\x79\xd5\xa8\xc9\x6b\xc5\xc6\x92\xbd\x66\xb5\x97\xce\xea\xf5\x7f\xa9\x48\x13\x8a\xf0\x9f\xac\xde\x95\xf9\xdb\x44\x32\x92\x8a\x54\x46\x68\x94\xff\xaf\xba\x3c\x94\xfa\x9c\x77\x20\x7e\x91\x2a\x11\xf3\x41\x42\x7c\x51\x5c\x1e\x56\xdb\x8f\x15\x6b\xa8\x48\x41\x23\x16\xe9\xfb\xee\xf6\xb0\x5c\x3d\xee\x0f\xdb\xd5\xd3\xe1\xeb\xbf\xbd\x93\x26\x38\x0d\xb8\x5b\xf0\xaa\xe7\x0f\xe9\x87\x7d\x63\x0d\x56\x66\xbb\xb5\xe0\x2b\x2f\xa5\x37\x7e\x78\x11\x30\x34\x33\x1e\x96\x8f\x1e\x78\x2a\x04\xb5\xda\xe2\x56\x76\xaa\xdd\x53\xad\x2a\xfd\xf5\x02\x26\x84\x4a\x90\x2c\xac\xf5\x29\xa3\xc3\x72\xb1\xf5\xd7\x90\x8c\xc5\xce\xc1\xb0\xca\xeb\xef\xe5\xe4\xce\x2a\xb2\xba\x6a\xab\x87\xbf\x2f\x96\x7b\xa8\x47\x20\x1c\xa1\x44\x84\x94\x11\x59\xc7\x29\x31\xc1\x2a\x0b\x25\x21\x91\xbd\x84\xbc\x05\x2a\x0d\xcd\xb4\x79\xc3\x4a\x28\xa5\x30\x09\xb7\xd9\x3c\xad\x6e\x37\x9b\xe5\xb7\xc5\xda\x67\x6c\x84\x8e\x34\xc2\x5e\x6f\x32\xd4\x7f\x5c\x56\xe5\x7b\xf7\x44\x3a\x01\x47\xaf\xd5\xc9\xe2\x0c\x61\xed\x43\x88\xa7\x3f\x83\x5b\xde\x1a\xac\xb9\xeb\x68\x9c\xa8\xd0\x32\x41\x6b\x53\x97\x8f\x65\xb3\xe8\x39\x30\xc7\x06\xac\xd0\x2a\xb6\x7a\xe8\x08\xa0\xc6\x58\xca\x20\xeb\x31\xcd\x0f\x09\x48\x29\x4a\x7b\x2f\xcf\x75\x53\xea\x4c\xe4\x77\x65\x35\xc8\x2b\x0a\x80\x14\x59\x19\x1e\x16\x8f\xdf\x16\xfb\xfd\xe2\x71\xfb\xb4\xf9\xe7\xbf\x1e\x16\x8f\x8b\x1f\xdd\xf0\x32\x81\x8d\x5f\x62\xec\x6f\x61\xae\x62\x17\xed\xca\x4f\x7d\xe1\x3b\x42\x21\xaf\x86\xe0\xec\x46\x3e\xad\xb3\xf3\x57\x53\xb6\xa8\xfc\xe1\x72\x97\x55\xe3\x01\x20\x83\x88\x21\x85\x92\x25\x45\x7a\x2a\xa7\x8e\xa5\x0c\x22\x89\x8a\xb5\xea\xdc\x94\xc6\xf8\xd3\x22\x11\xa0\x2b\x83\xd6\xd9\xc2\xf2\x60\x7d\x13\xf5\x23\xfc\x9a\x18\xc3\x92\x04\x91\xb2\x45\xea\xbf\x5a\x83\x79\x9c\x0a\x91\xc4\x08\xdc\x02\x5d\x26\x78\x2f\xea\xd7\x51\x28\x44\xd2\x94\x22\xf3\x40\x6b\xcb\x7c\xf5\x1d\x28\x29\xb7\x9c\x3b\xa6\xcf\x86\x8f\x63\x80\x92\x85\x46\xf9\x34\xa8\x65\x3a\xdf\x98\x95\xad\x9f\xe9\xda\xc4\xa1\x85\xff\xa0\x03\x49\x96\x9e\x85\x87\xca\x38\x09\x98\xa7\xbd\xaa\x44\x61\xca\xea\xe8\xe8\x66\xbb\x60\x88\x6f\x29\x18\x26\x97\xd6\xcb\x8d\xa5\x6a\xe8\xb6\x6a\x19\x4b\x81\x72\xad\x7a\xcc\x6d\xe1\x8f\x82\xc6\x34\xda\x42\xeb\x47\x78\xb7\xf5\x1b\xea\xf2\xe5\xaf\x58\x9a\xa8\x4c\x62\x12\x5b\x21\x89\x3f\xfe\xb5\xf4\x4a\xa7\x93\x6f\x96\x52\xcb\x73\x54\x40\xeb\x6a\x8f\xf8\xc7\xa9\x4c\x55\x80\xe8\x31\x93\x41\x6e\x83\xb2\xdd\x11\xcd\x3c\xa6\xe9\xda\xd1\x93\xa9\xd6\x71\xec\x4b\x07\xaa\x8b\x0d\x88\x7e\x6a\xe3\xca\x54\x1b\xe5\xd6\x8e\x06\x57\xb7\xeb\x81\xec\x5a\x72\x49\xb1\x6e\xe6\xfb\xe3\xfd\x66\xf9\xc7\x61\xbf\x5a\x3c\x74\xc9\x76\x29\x88\x2d\x4d\x11\x3e\xd4\x76\xa8\x91\x08\xd0\x1f\x4e\xb4\xb0\x89\x8a\xc6\x8b\x6d\x0d\xed\x5a\x29\x35\x49\x5c\x68\xa4\x1d\x9f\x1d\x99\x46\xf7\x66\x2a\xb4\x1a\x04\x9e\x0f\xa8\xbb\xb2\x96\x9a\x0e\x08\x05\xb2\xc2\x09\xc2\x8f\xce\x06\x16\xa0\xb1\xdb\x7a\x90\xdf\xca\xbc\x75\xc0\xf7\xe2\x97\xbf\x04\xc8\x08\x7d\x20\xab\x1e\xd4\xae\x9e\x53\xfe\x49\x2a\x41\xc5\x71\x0f\x7d\xf9\x61\x41\x0e\x43\xaf\x70\xfc\x21\xc0\x10\xe9\x0b\xae\x11\xb7\x8e\x89\xa1\xfa\x1b\xe4\xa7\x19\x6a\xd3\xcf\xbf\x90\x21\x02\x93\x8c\x27\xbc\xd0\xbe\xbc\x3d\x17\xcf\x50\x16\xeb\xdb\xf1\x23\xaa\x20\x49\x30\xfe\xf9\x15\x9a\x51\x24\xdc\x1d\x0e\x59\x10\x75\x82\xee\x18\x0a\x76\xd8\x9d\x2f\x5d\x03\x1b\x8f\xc9\xea\xaf\x50\xc0\x4e\x65\xd0\x87\xdb\x54\xc4\x15\x22\x41\x6d\xba\xba\xe3\xa2\x5f\xb7\x16\x4f\x8d\x40\xef\xb1\xbe\x26\x55\x84\x09\xe2\x36\x89\x9e\x72\xf9\x23\x90\x95\x3f\x47\x06\x68\x9d\x64\xaa\xdc\xbe\x88\x1a\xc8\x88\xc4\x97\x2a\x1a\x1a\xf4\x06\xde\x32\x78\x7f\x80\xea\x35\xef\x63\x68\xe1\x28\x08\xe9\xda\xb3\x30\x0d\x49\x6f\xf7\xa2\x17\x57\xd9\xdc\xcc\x4c\x11\x40\xfa\xb7\xab\x60\xc7\x7f\xfe\x6f\x34\xb3\x15\x63\x91\xee\x59\x84\xe5\x40\x38\x6e\xf4\xcd\x14\x13\x80\x31\x22\x97\x0e\x1d\xc1\x5a\x14\x93\x31\x82\x86\x8e\xe2\xd7\xe8\x03\x30\x63\x39\xe8\xfd\x3e\xdf\xeb\x74\x2d\x0a\x94\xca\xba\x2e\xe4\xfe\x7f\x8d\x45\x0c\xe6\x9c\x4a\x22\x0b\xeb\x3c\x3c\x43\xf3\x4d\x54\xba\x5f\x5c\x55\x1a\xc7\x76\x45\x6f\xea\x49\x5a\x4d\xf1\x30\xe2\xce\x6f\x5c\xe5\xa5\x05\x72\x8c\x3f\x22\x0f\x2d\x2e\xbf\xb5\x77\x9c\xf0\xf7\xbc\x59\xac\x38\x11\xd4\x0b\xb3\x75\x5c\x15\x5d\x77\x70\x1e\x20\x0e\xe1\x84\x13\xba\x1d\x06\x77\x95\x98\x9a\x5d\x8a\x2b\x85\x16\x9a\xf3\x56\x2d\x25\xdd\x54\xf7\x97\x2a\x41\x09\x4e\x8e\xed\xd3\x6a\xb7\x3b\x3c\x2c\x9e\xfe\x58\xed\x3b\x9e\x20\xaa\x04\x0f\xb8\x53\xf9\xb5\xde\xc1\x87\x70\x98\xf1\xdd\x85\x12\x18\x51\xf9\xc7\x59\x54\xaf\x28\xe5\xd0\x5d\xd1\x58\x20\xba\xbc\xf2\xc4\xfd\xe0\x94\x2c\x48\xc3\x2e\x6a\x7c\x2c\xdb\xb5\xcb\x51\x38\xad\xba\xf4\x8f\x92\x10\xe2\xc4\x7b\x16\x47\xd8\x22\xe7\xc8\x13\xd4\xad\xed\xfd\xc1\x32\xad\xa4\x31\x38\x87\xb0\x64\x67\x63\x1e\xb2\xe2\xdc\x74\xcb\xa5\x52\x34\x46\x27\xd3\xd2\xc3\x0e\x6d\x31\xa5\x62\x4b\x4e\xf9\x07\x9a\x7a\x9f\x04\x54\x26\x93\x56\x69\xe9\x18\x8b\xaa\x0c\xea\xe5\x28\x5c\xab\x20\x48\x51\xba\x03\xf7\x6f\x66\x3f\xf0\x13\x1c\x45\xcf\x8e\x4b\x15\x24\x71\xe8\xb5\xc6\xf7\x22\x7f\xed\x7e\x57\x8e\x32\xef\xdc\xbc\x38\x4a\x8a\xc9\x00\x32\x91\xc0\xba\xe5\xfa\x5d\x9c\xee\xa0\x7b\x13\x13\xc7\xb1\x43\x46\x22\x93\xb2\x77\x99\xfc\xe6\x71\x1d\xf6\x54\x46\xe9\x10\xe9\xfe\x56\x8b\x9f\xcb\x4d\x67\x06\x2b\x03\x89\xb6\xdb\xf4\xaf\xe6\xae\xac\x5e\x71\x64\xd9\x63\x3a\x20\xd2\x62\xad\xf1\xa2\x77\x00\x0f\xe2\x75\x72\x5d\x1d\x30\xa1\x7b\x25\x91\xfc\x14\x06\xe3\x57\xd0\x41\x1c\xa0\xe2\xc5\xfb\x4b\xd6\xc0\x7d\x56\x4f\x8c\x24\x1d\xb2\x00\xa5\x32\xb2\xfa\x16\xea\xa6\x2a\x2f\xa0\x47\x23\x5b\x87\x8c\x58\x15\x39\x7d\xcc\x8a\xdd\xb9\x3e\xb5\xd6\xb8\xb3\xe0\xfa\x10\xad\x0e\xd3\x34\xa6\x9e\xd5\xca\xd5\xc2\x0d\xad\x4c\x1d\x4a\x82\xf5\x72\x5f\xa1\xb9\x11\x85\x2d\x98\x33\x0e\xa8\x92\xfa\x36\xc6\x6a\x43\x7f\x2f\x4e\x22\xd3\xb7\xd9\xdb\xba\x8b\xf3\xe8\x88\x1a\xa4\x31\xb2\xbc\x3f\xed\x3c\x5b\xdc\xaf\x0e\xf7\xeb\x87\xf5\xbe\x6b\x92\x84\xc6\x56\x39\x9c\xc4\xb9\x86\xce\x7a\xd0\x11\x97\x28\xc9\x24\x33\xad\xa1\xea\x63\xc7\xe3\xbe\x8c\x04\xa1\x0e\x88\x89\x31\xde\xfe\x8b\x6b\x12\xa8\xd4\x22\x7d\x30\x04\xf5\xe5\x3a\x46\xad\x89\x21\x40\x7d\x56\xe9\xb4\x2e\x4c\x69\xfd\xfa\xc9\xf7\xa0\xa1\xc4\x50\xc9\xb9\xf0\x08\xf5\x99\x32\x13\x4d\x65\x82\x92\x4a\xad\xa1\xb2\x31\xb7\x20\xba\x09\xab\xa9\x16\x68\x98\xa2\xc6\xba\x6a\xd6\xc5\x5b\x99\x29\xd0\xa3\xa4\xae\x66\x01\x41\xd2\xf6\x77\xc4\x57\x1c\x4e\x65\x99\x1f\xc4\x30\x6c\xa6\x19\x84\x18\xbf\xea\xa4\xfb\xd0\x3e\x9b\x2f\xd2\xd5\x71\x4a\x71\x90\xdc\x97\xcf\x16\x8e\x52\xbf\xb7\x3e\xee\xb9\x68\xae\xe8\x56\xe7\x83\x4f\x3a\x16\x91\xec\x35\x62\x90\xee\x72\xdc\xf9\x09\xa1\x18\xc4\x71\xaa\x3f\x03\xaa\xaf\x6b\xba\xf6\xf0\xf7\xc1\x72\x83\x0d\x49\x27\x3c\xf5\x99\xf0\x0e\x0d\xed\x92\x7e\xe3\xd7\x4d\x14\xb1\xd5\xc0\x3e\x98\x90\xe9\xca\xb3\x55\x53\x9d\x26\x81\x45\xbb\xbe\x94\xef\x5d\xe1\x61\x67\xf3\xeb\x94\x2b\x74\x0e\x0b\xdc\xbf\x07\xda\x6d\xdd\x94\xe3\x91\xec\xc8\x2b\xce\x55\xe5\xaa\xcf\xad\xf2\xbb\x28\x5e\xd7\xb7\x93\xae\xe1\x3a\x46\x7e\x0f\x93\x15\xda\x5a\xaf\x97\x2f\x73\xef\x27\x28\x45\xe3\xe1\xab\x25\x4d\xbf\x81\xa6\x5e\x17\x4f\xe2\xcf\xf9\x85\x5c\x0b\x46\x30\x70\xfa\xbd\xc9\xf2\xee\xd9\x44\x1a\x20\x93\xeb\x56\x34\x9d\x06\x00\xd5\x42\x49\xb4\x28\x8a\x73\x9f\x78\xe9\xdf\x58\x80\x56\x43\xd1\xd4\x65\x99\x4d\x71\xda\x5a\x52\x66\x99\x23\x9b\x17\x79\x9e\x64\xcb\xb4\x52\x56\x51\xe2\x70\x55\x74\x38\x0a\x32\x4c\x4e\x32\xd2\x92\x1c\x66\xc5\xeb\x27\x54\xeb\x93\x71\xa8\x43\x2d\x68\x3f\x91\x07\xea\xc4\x5d\x17\x68\xcd\xb4\x95\x78\x6c\xaa\x0c\xde\xc0\xe1\x8b\xdd\x51\x10\x41\x20\x06\xaa\xb9\x4f\x03\x16\x59\xd7\xc4\x48\x25\xfc\xf6\xd0\x4e\xd2\xf9\xa0\xa9\x36\x60\xd0\x86\xbf\x5d\xad\xb6\xdb\xc5\xbf\x1e\x3a\x6a\x49\x0a\x01\x09\x70\xb6\xe0\xe6\x3e\x0c\x7d\x8c\x17\x6f\x08\x48\xe8\x9d\xab\xfb\x52\xbd\x2e\x94\x1a\xd1\x21\x0c\xd7\x71\x08\x52\x83\x2e\x50\xf3\xd2\x87\xf8\xfc\x21\x49\x59\x38\x0e\x7f\xcc\xdb\x9d\x6d\x4b\x5c\xe5\xd7\xcb\xcd\x61\x71\x7b\xfb\xe4\xaf\x10\xc6\x09\x02\x2d\x6e\xee\xbf\xaf\x06\xb9\x09\x88\x94\x89\xbc\x0d\xd8\x4e\x85\x7b\x78\x03\xc7\x4c\x38\xb9\x72\xa4\x95\x07\x30\x2d\xb4\xc5\xfa\x8b\xfc\x3a\x0c\x06\x24\x50\x88\x9d\x80\x76\xe3\xbd\xc9\x2a\x3d\xb4\x31\x80\x10\x65\x02\x5f\x21\x82\x61\x9c\x01\x3d\x37\x05\xc2\x02\xe6\xd3\x9c\x16\x4a\x59\x9f\x73\x94\x8d\x47\xfc\x4a\xfb\xd3\x74\xf6\x01\x61\x52\x58\xb7\xa5\x3e\xc3\x67\xe8\x36\xa0\xda\x60\x81\x0c\x02\xbb\x82\x43\xfb\xe7\xab\x13\x1c\x1e\x8d\x30\x48\x82\x04\x4b\x4b\x2c\x32\xe4\xe7\x6a\xf5\x47\x17\xae\x86\x24\xd6\x18\xf0\x3e\xda\xe4\xe2\xb6\x2c\x3b\xe2\xcd\xae\x89\x00\x04\xc8\x59\xdc\x02\x66\xca\x47\x23\x0b\x12\xb0\x92\x73\xdb\x0c\x7e\xfd\x06\x9f\x0b\xa4\x2c\x46\xe3\xe4\xe9\x76\xf3\x61\x09\x91\x6f\x0a\x14\x77\xb9\xd6\x96\x3a\x58\x75\x93\x75\xd1\xc0\x33\x54\x07\xff\xd9\x36\x6f\x50\x99\xbc\x7c\x1f\x15\xde\x01\x8f\xba\xa1\x6a\x53\x04\x0f\x67\xcc\xb6\xaa\x31\xd0\xa3\xdf\x50\x81\x47\x14\xad\xf7\x12\x41\x63\x59\xde\x2d\x52\xc0\xdb\xdd\xab\xcb\xaf\x20\xdd\xe3\x15\x1d\x0a\x12\xad\xa7\x8e\xca\xe4\xb6\x12\xcf\xe5\xe4\xbb\x8a\xd0\xaa\x89\x98\xfc\x72\xdb\xae\xee\x1f\xc2\xc1\x41\xd0\x00\x79\xbb\x33\x0d\x45\x93\x99\xcb\x34\xe5\x0c\x02\x08\x58\x79\x89\x0a\xc4\x71\xd5\x2d\x16\x20\x89\x49\xdc\x78\xdb\x9c\x7a\x6d\x35\x7f\x7e\x2f\x6c\xf6\x9f\xc4\x5f\x4b\x72\xc0\x98\xe9\xe1\x54\xf9\x30\x00\x5a\xd2\x7e\x0c\xcc\xae\xe5\xa0\x98\xd5\x17\x79\xf7\x08\xd0\x21\x5a\x0b\x54\x2c\x30\x1e\xd9\x88\x5f\xc8\x44\xe2\x7f\x16\x36\xac\xb7\xdc\x3c\x6c\x57\xfb\xf5\x7e\xbd\x79\x3c\xfc\x58\x3d\xed\xd6\x9b\xc7\xae\x89\xe6\x98\x7c\x5b\xdc\xdf\x6f\x96\x07\x54\xe2\x5e\xaf\x7c\xf9\x20\xe8\x20\xf5\xdc\x72\x1d\x39\xec\x1c\x6f\x16\x68\x4a\x1d\xfc\xc3\x4e\x87\x65\x59\x37\xe8\x77\x7a\xea\x5c\x57\x1a\xde\x89\x97\x53\xd0\x89\x15\xd5\x16\x5a\xf7\x85\xf1\xee\x18\xb4\x06\x92\x3d\xb6\x2c\x8f\xc7\x73\x91\x35\x17\x14\x18\xfb\xa0\x77\x40\x24\xdc\xe5\x41\x30\xb7\xed\x6c\xa5\x71\x23\x43\x98\x2d\x1a\xad\xdb\xcd\xb3\x35\xca\x9a\x66\x1a\x55\x03\xc3\x95\x07\xc2\xac\x4e\x59\x5d\x6a\xb8\xc1\xec\xea\x50\xbe\x7c\x7c\x73\x13\x06\x80\x16\xfe\xfa\xb5\x80\xf7\xa1\x45\x6c\xc2\x30\x62\xc3\x8d\x66\x29\xf4\x5b\x7d\x0f\xa6\x59\x17\x76\xcf\xe9\x7d\x18\x13\x46\x02\xb5\x49\xb3\xda\x69\x9e\xce\xd1\xb6\x99\x90\xc6\x96\x4f\xf3\xe5\x6c\x4c\x0e\x53\x5e\x16\x13\x4a\x89\x1d\x87\xe8\x10\x81\x4d\x7e\x2b\x70\x62\x48\x4c\x84\x2b\xeb\xca\xe6\xa8\x72\x5c\x33\x9a\x90\x0e\x49\x81\x28\x8a\x83\x09\xfd\xca\x66\x68\x22\xb1\x6c\xce\x9a\x09\x65\x75\x74\x9c\xe6\x93\x08\x80\xa1\x69\x84\xd6\xd7\xf1\x72\x2f\xea\xe6\x09\x26\x65\xda\x86\x05\x06\x57\xab\x22\x53\xaf\x85\x38\xc2\xc6\x8c\xbf\xa4\x61\x61\x6c\xf3\xfa\x9e\x54\x67\x76\x2f\x33\x2c\xd4\x98\x60\xdb\x41\xb3\xcc\x9a\x4b\xa7\x4d\xfb\x99\xed\xf1\x79\x28\xcd\xb0\x38\x41\x8f\x0d\x4d\x56\x84\x47\x0c\xf3\xb3\x5d\x23\x8d\xb5\x2a\xbb\x97\xf2\x34\x79\xb5\x38\x10\x88\xb8\xdc\x3c\xae\x0e\xab\x87\x4d\x67\x10\x98\x38\x8c\x12\x87\x3d\xc4\xa1\x36\xb2\x57\x4d\x4c\xc2\xc0\xc5\xd7\x1f\xb2\x02\x95\x05\xca\xf7\x2e\xa6\x6b\x62\x02\x60\x25\x12\xea\xf3\x71\x2c\x08\x48\x4d\x12\x10\x6b\x5c\x22\x78\xaa\xfb\x35\xd5\xc2\x03\xa4\x1d\x38\xe1\x05\x26\xdc\xeb\xd4\x24\x92\x72\x17\x2c\x76\x58\x18\xc4\xf6\xae\x8b\xd5\xb9\x2a\x97\x83\x30\xbb\x49\xb4\xc6\x1d\x29\x2f\x9b\x8d\xc1\x2c\xd5\x67\xd2\xe5\xd4\xa4\x61\x92\x76\x82\x3d\x96\x49\xad\x1c\x08\x2b\xff\x27\x0c\xfc\x90\x4e\x09\x45\xcc\x7e\x01\xa0\xeb\x7d\xd6\x65\x22\x4d\xaa\x22\x6d\x3c\x37\x6a\x76\xea\xd2\xb1\x5d\xaf\x71\x1e\x47\xce\x92\xeb\x14\x57\xac\x7d\xe2\x1b\x28\x4b\xc5\x5c\xc0\x7b\x7b\xf7\x59\x78\x82\x11\x69\xe0\x32\x78\x85\xfe\xa3\xfa\x20\xcd\x6f\x84\xe2\x98\x81\xd3\xa0\x3a\x7a\x31\x23\xb5\x55\x32\xf8\xbe\xbb\xfd\xb9\x5a\x77\xbf\x82\x46\x03\x07\x11\xd5\xeb\xfa\x06\xb2\xe2\xd9\x67\x5a\xab\x01\xb3\xc2\xfc\x8d\x54\xca\xb0\x4e\xe2\x28\x7e\xf5\x41\x1e\xa3\x5b\x8f\xd0\x52\xba\xd4\x3d\x7a\xce\x80\x49\xf1\xa9\x9a\x97\xaa\x7c\xaf\x7f\xbe\x40\xf1\x04\xb6\x9a\x2d\x2b\x9e\x17\xfd\xe8\x33\x92\x60\x92\xe4\x41\xfc\xda\xf4\xba\x57\xd4\x18\x88\xd1\xe0\x69\xad\xbb\x1e\xfc\x3f\xc6\x43\x8d\x9e\x8f\x05\x01\x8b\x30\x8e\x9f\x89\x4d\x61\xcd\xd0\x6b\xb2\x88\xde\x08\x60\x41\x14\xda\x2c\xac\x50\xcd\x59\xe4\x5d\x08\x91\x05\x51\x12\xa2\xa3\xb2\x44\x88\x76\xf7\xab\x04\x4f\x05\x8b\xee\x69\x06\xf5\xcd\x65\xe0\x83\x8d\x06\x30\x0b\x48\x1c\x21\xe9\x39\xc2\xc0\x71\xcb\x8c\xfc\x95\x88\x88\xad\xa8\xc7\x51\xe4\xf9\xa9\x2c\xfe\xcc\xba\x23\xda\x32\xcf\x15\x2e\xa5\xb4\xcd\x41\x3f\x03\x7a\xf1\xb5\x6f\x43\x23\x1b\x21\xfa\x2f\xca\x81\x21\xb3\x81\xc7\x4b\xfe\x45\x48\xd5\x5f\x80\x06\x28\xcc\x66\x55\x3c\xbe\x7e\x7f\xdc\xcd\x8e\x2c\x16\x50\x69\x10\xaa\x2e\x9a\x46\x28\x8c\xaa\x64\x7f\xc2\x8d\x15\xf7\xba\x82\xfc\x8c\xdf\x9e\x1a\xea\x19\x59\xef\xaa\xb2\x68\x56\x0e\xab\x32\x23\xaf\xc7\x02\x16\x24\x08\xcd\xb5\xf9\xca\x4a\x7e\xf0\x38\x8c\xa4\x9e\x7a\x70\x53\x60\x8d\x52\xbb\xd7\x77\xfd\xc2\x62\x82\x7d\xb7\xae\xd5\x71\xde\x5f\x73\x0d\xe3\x50\x29\x17\xdd\x47\x0a\xa9\x9b\xfc\xdc\x8e\xfe\xc5\x47\xe3\x2a\xa6\x36\x97\x06\xbf\xb2\xba\xf9\x3c\x27\xc5\x82\x58\x58\x8c\xdc\x3b\x64\x0f\x36\x25\xf9\xb5\xf4\x92\x00\x2c\x48\x22\x03\x36\x94\xbb\xfe\xd1\x81\xb6\x59\x90\x88\x34\x82\x4e\x49\x13\xcd\xd6\x1e\xc7\x36\xee\xab\x04\x38\x72\x56\xb5\x3b\xe0\x5d\x59\x2d\xf2\xfc\xcb\x60\x48\x73\x19\x22\x27\xc8\x3b\x64\xcf\x2f\xc8\xf5\x80\x9e\x11\x32\x20\xf9\x26\x26\x40\x4a\x8e\x63\x1f\xb2\x1d\xea\x6d\xb1\x40\x86\x06\x93\xc3\x78\x89\x97\x3e\x85\xc1\x02\x49\x13\x5f\xb5\xdd\x3a\x62\xd7\x2a\x3f\x2c\x90\x4a\xa7\x7a\xa8\xcc\x84\x9a\x4c\x70\x2f\xda\x1f\x3c\x43\xf0\xaa\x70\xb4\xf2\xf6\x7f\xbb\x2f\xa8\x38\x57\x56\x0d\xd5\x6a\x48\x9c\x9b\x0c\x86\x38\x59\x0f\x97\xbd\x8a\xd4\x0c\xc7\x8b\xa3\x14\x67\x81\x4e\xb5\x12\x9d\x90\x96\x4d\xad\x0d\x03\xbc\x2c\xd0\x3a\xb0\xb8\x71\x91\x2b\x1c\x4a\x16\x20\xf1\x21\x32\xbc\x7f\x4d\xa0\x26\x1a\x92\xba\x76\xaa\x69\xeb\xed\x90\x95\x94\x05\xa0\x43\xef\x34\x3e\x88\x5f\x37\x30\x42\xbe\xb5\x87\xad\x77\xf4\xdf\xd3\xc5\xe1\x54\x58\x18\x24\x1c\x43\xca\x3d\x8a\xd8\x4a\x02\x67\xc5\x33\xa2\x23\xea\xae\xa1\x49\x91\x19\xc5\x21\xd1\x07\xb7\x6d\x0f\x69\x47\xdf\xff\xea\x40\xd1\x7f\x95\x77\x71\x67\x86\x5c\x22\xfb\xa4\xd0\x7a\x28\xae\xf1\x9b\x49\x1a\x77\x91\x28\xa4\xdc\x19\xef\xf7\xa3\xb2\xe4\x49\xb3\x58\xa3\x00\xc4\x7d\xf9\x8c\xd5\x93\x1f\xde\x65\x38\x7d\xc3\x48\x10\x1b\x0f\xd8\x3c\x7e\xdf\x3d\x6d\xee\xef\xbf\x74\x07\x52\xf4\x5d\x8f\x97\xf2\xa5\xdc\x77\xcc\x73\x2c\x24\x24\x46\x8c\xc0\xa9\x2a\x4f\x2f\xa8\x00\x36\x1b\x8b\x64\x21\x49\x19\x92\xcb\x0d\x4a\xa2\xba\x6b\xa4\x9a\x27\xce\x2f\x10\x5d\xfe\xe2\x3f\x74\x5e\xdc\x87\x85\x84\x5b\xfa\x2e\x44\xed\x00\xa0\xbc\xd4\x20\x63\xc6\x42\x22\x22\x5b\x75\x68\x21\x73\xdb\xaa\x2c\xaf\x88\x2e\xfe\xf3\x7f\x7f\xbb\x42\x8a\x74\xa7\x13\xda\xe3\xf6\xf5\x59\xf9\x0a\x9c\x81\xce\x6f\xf7\x5e\x34\x21\xa8\x79\x73\x38\x09\xf5\xea\x68\x5b\xb7\x6f\xa7\x39\xcf\xe2\x2f\xbe\x2c\x8b\x24\xd6\x3e\xdd\xfe\xc2\x8c\xd1\x68\xd0\xc5\x21\x0f\x49\x8f\x6a\xf2\xbf\x4a\xdb\xf9\xbb\xd5\xb2\x5d\x34\x7a\x2e\x09\x16\x26\xc4\xaa\xb1\x2f\x4b\x47\x9d\x3c\xba\x5c\x12\x1b\x8c\x1c\x21\xf4\x6e\x81\x1e\xe4\x76\xb3\xb9\xf7\x8a\x29\x3f\x56\xbb\xfd\xea\xb6\x6b\x9c\x80\x19\xd0\x8e\x2c\xcb\x6a\x84\xbd\x67\x61\x1a\x1a\xdc\x1d\xf6\xab\x7f\xde\x8c\x6e\x93\xc6\x0a\x4b\x89\xc5\x59\x67\x0d\x2a\xaf\xfb\xaa\x4e\x8b\x2c\x9d\x0b\xb0\xb1\x30\xe5\x21\xfa\xed\x27\x71\xf1\x98\x9e\xf9\xf9\x24\xa8\xe5\xb0\xb2\x26\x97\xde\x97\xf7\x99\xad\x3a\xc6\x2f\xc4\x5c\x2b\x25\x14\xe2\x56\x5d\xe0\xdd\x22\xec\xc7\x77\xd4\xca\x92\xa7\xa1\x9b\x3f\x94\x28\x4e\x5d\x03\x88\x80\xf4\x45\xa4\xb7\x60\x30\x6d\xff\x97\xdf\xb7\xdf\x3d\x42\xa0\x14\x57\xcc\x51\x12\xf7\xae\xac\x90\x0f\x72\xfc\x5a\x40\x55\xe4\xf5\xcc\xe0\xf9\x39\x87\x9b\x72\xa4\xfb\xc0\x42\x88\x25\x02\x04\xb1\x08\xf2\xa9\x2c\x8f\x93\xf7\x01\x93\xc6\x36\x3b\xf5\x8e\xb0\xa0\x89\x3d\xe1\xfc\x4a\x16\x1a\x12\x06\x69\x6f\x5f\xee\x90\x1b\xb4\xec\xc9\xdb\xa6\x6c\x81\xfe\xb4\x14\x22\xb7\x8e\x7d\x6a\xd6\xb2\x28\x08\x2c\xdf\xe1\x5b\x06\xef\x76\x81\x1d\x8c\xd1\x28\x20\x04\x53\x92\x4f\x8b\x7f\x75\x3f\x25\x5c\x2b\x74\x6b\x9c\xee\x7d\xf7\xbb\x40\xb0\x9b\x83\x73\x94\xe5\x28\xdb\xc5\xa2\x30\x52\xa9\xa5\x5c\x80\x51\x0d\x39\x8b\x42\xae\x59\x37\x48\xbc\x13\x3e\x7a\x9f\x28\xd4\x61\xe2\xa4\x36\x37\xc5\xb2\xcc\xcb\x6a\xb0\xef\x47\x51\x10\x20\x48\x14\x89\x3c\x0f\x27\x51\x35\x87\xae\x9c\x65\xfc\xb6\x84\x82\x72\x2a\x05\x43\x9d\x4f\x16\x11\x50\x48\x04\x6e\x9e\x07\xda\xb6\x2c\xa2\x01\x93\xc1\x40\xd6\xc9\x85\x44\x3e\x43\x12\xfd\x75\xe2\xe4\x13\xaf\xd7\xdf\x36\x0c\x12\x37\xbe\x7a\xea\xe7\xc1\xe1\x44\x20\xc7\xc0\xbb\x28\x9a\x7d\x79\x03\x3f\x5f\x3a\xb7\x93\x45\x54\x03\x4e\xa6\xb2\xb0\x49\xe7\x3b\x91\xe5\x33\x0c\xf2\xae\x35\xd6\xb0\x74\x75\xca\x5e\x76\x04\xc9\x25\xf3\x7c\x7a\x5f\x96\x0a\xc4\xb3\x5a\x30\xee\x22\xcf\x11\x44\xe0\xd7\xf4\x88\xe9\x34\x71\x88\xde\x4d\x25\x54\x0e\x48\xae\x88\xda\x4a\xa3\x91\x10\x33\x4b\x5a\x56\xbf\x94\xef\xa3\x65\x2a\x4a\x28\x71\x8a\xc8\x18\x9c\x2b\x1a\xa8\x96\xd5\xe5\xd4\x94\xbe\x01\x0f\x35\xe6\xf8\x70\xdb\x18\x54\xe2\xb0\x88\xa7\xd4\xaa\xfb\x34\x42\x66\x58\x54\xe6\x0e\x08\x1a\x0a\xcf\x25\xe5\xbf\xba\x4d\xb0\x0d\x43\xc7\x2c\x12\x31\x0f\x1d\x3c\xe2\x6b\x59\xea\xc9\xab\x0b\x45\x42\x27\x97\xa8\x67\x09\x99\x7c\x15\x13\x8b\x64\x12\x5a\xc4\x94\x2d\x9f\xe8\x09\xc2\x1d\x0e\x7e\x72\x65\x15\x72\x14\xb6\x3c\xdc\x96\x67\x99\xc3\x6d\x87\xd6\x64\x91\x8e\xb4\x97\xe7\xde\x42\x55\x4f\x02\xb1\x2c\x02\x92\x62\x81\xe9\x3f\x6f\x7e\x7c\x43\x67\x6d\x1e\x59\xc0\x22\x90\x16\xc7\xbd\xda\xb7\x3e\xd3\x44\x6b\xf4\x83\x31\x68\xc2\xc8\xaa\xcc\xb4\x5e\xd6\x4f\x80\xd7\x19\x02\x37\x16\x99\x28\x31\xcc\x63\x85\xd0\x8c\x99\x21\xf7\x63\x91\x49\x23\x0b\x8b\x03\xf5\x62\x79\xf5\x5a\xef\x12\x43\xb0\xfe\x65\x0d\x00\xee\xad\xc2\xaa\xa2\xce\x63\xfb\xc7\xcf\x48\x82\x08\x70\x38\x20\x01\x67\x56\x16\xeb\x31\xfc\x94\x91\x40\x59\x15\x29\xcf\x6d\x73\x38\xbd\x96\x57\x9f\xaf\x0f\x80\x32\x12\xc6\x29\xd2\xa3\xfb\x8c\x1b\x02\x87\x7b\x9d\x13\x46\x70\x94\x5b\xc7\xf6\x4f\x57\x64\x3f\xc6\x97\x33\x12\xc5\x29\xf7\x42\x53\xed\x96\x8d\x55\xa8\x11\x1d\x4d\x02\x12\x81\x46\x58\x9c\x38\x37\x65\x95\xfd\x29\x74\x59\x89\xc7\x73\xa1\xc4\xc2\xfe\x50\x9e\x7d\x0f\x89\xd9\x84\x01\x23\x24\x26\xe8\xc0\x37\xe5\x0d\x89\xc6\x99\x9f\xd9\x57\x23\xc6\xf8\xc8\x53\xbb\xa5\x3d\x96\x4d\x66\x32\xbb\x4a\xd6\xb8\x9a\xb6\xf6\x96\x5f\x9b\x52\x67\x72\xb9\xef\x4c\x68\x64\x81\x91\x4e\x9c\x01\x61\x2f\x33\x81\x52\x46\x68\xa2\x94\x95\x17\x69\xce\xa7\xd6\xe0\x12\xcf\x76\xb4\xcd\x7f\x41\x9a\xda\xf0\xfa\xd8\xe0\xfe\x31\xc2\xc9\xff\x9e\x71\x46\x58\x14\x93\x7e\xf1\x70\x83\xfc\x41\xfc\xfa\x09\xd9\xe4\x03\x31\x6a\x95\x4d\x71\xc3\x69\xb7\x3b\x4f\x72\xef\x8f\x73\xea\x01\x07\x96\x3d\xc2\x19\x97\xbb\x7e\x59\x21\x4c\x75\xe5\x0b\xfd\x47\x0e\xc7\xdf\x98\x41\x62\x85\x81\xc5\x11\x6c\xb8\xe1\xc3\xdd\x78\xfa\xe5\xdc\x15\xe2\xc4\x26\xb4\x11\x75\x31\x7c\xc4\x38\xa5\xb4\x47\x35\x7a\x15\xe4\x8d\x44\x02\xee\xd1\x43\xc4\xda\xca\xb3\x7b\xca\xb6\x6d\x9f\xf0\x62\x24\x86\x08\x33\xb2\x9b\xe5\x7e\x31\x5a\x69\x49\x62\x02\xf4\xd5\x25\x34\x77\xee\xcc\x19\x2c\x14\x23\x69\x60\x53\x66\x5f\x37\x9b\xaf\xc3\x5d\x9d\xa4\x91\x15\xec\xb5\x9d\xfc\x0e\x70\x05\x25\xf4\x0d\x63\x4b\x26\x3f\x92\x8b\x24\x5f\x26\x8d\x14\x8f\x3d\x2c\xd3\xb6\xb8\xd2\x79\x64\x84\x07\x16\xcf\xd4\x7e\xfb\xa6\x1c\x3d\x0d\x17\x5c\xd9\xfe\x32\x15\xd4\x2f\xdb\xb3\xcc\x33\x75\x67\x33\x01\x76\x6d\x15\xf9\xaa\x79\x19\xb1\x25\xfb\x53\x35\x45\x63\xd7\x72\x89\x66\x7f\xc2\x98\x41\x85\x11\x41\x53\x63\xeb\xfc\xef\xce\x05\x8e\x97\x27\xfc\x2a\x8b\xab\x13\x86\xd3\x51\x30\x95\x3a\x8a\x2c\x4c\x94\x37\x22\xef\x36\x42\x22\x78\x20\xfb\xb1\xbc\x6b\xca\x13\xf2\x93\x17\x8f\xf0\xcb\xe6\x57\x07\xe6\x0f\x11\x42\x20\xc1\xcb\xc3\x6e\xbb\xcd\x85\x02\x2b\x21\xfb\x5b\xf9\x07\x46\x64\xc8\x63\x3f\x8e\x6d\x40\x04\xe5\x73\x51\x41\x76\x70\x0f\x19\x5b\xf9\x95\xba\xf5\xe1\xa5\xa8\xeb\x76\xc1\x9a\x7c\x23\x19\x5b\xb5\xa8\x5c\xd4\xce\x00\xe8\x70\x3e\x8c\xc8\x84\x0a\x17\x13\xb6\xf8\xcb\x51\x39\x12\x23\xd2\x30\xac\x8f\xb3\xee\xfc\x5c\x6a\xb5\xff\x22\x2a\x88\x40\x0d\x34\x4a\xaa\xcb\x94\x7b\x8f\x11\x15\x6b\x4f\x22\x62\x59\xa9\xba\xd4\xfc\xa4\x9d\xa2\x18\xb2\x71\x24\xd5\xa3\xa9\xa3\xb4\x8d\xc8\x3c\xdc\x2f\xfd\x63\xea\x40\x23\xf1\x89\xdf\x1f\xec\x36\xb5\x7f\xa9\xca\xf3\xf3\xcb\xb6\x2a\x7f\x5d\xd1\x95\x4d\x9e\x5d\x9b\x20\xb2\xdc\x66\x5d\x5c\x8c\x80\xb4\xf0\x12\x8f\x5b\x9a\xf8\x54\x73\x2a\x33\xfe\x4c\x15\x63\xfd\xb0\x14\x8d\x7a\xb1\x92\x27\xc3\xbc\x88\x77\x23\x88\xa1\xb6\x36\xbb\xb2\xa4\xf4\x4f\xc2\xa7\x30\x51\x00\x07\x51\x4f\xaa\x3c\x9e\x72\x70\x0c\xa0\xf3\x2b\xac\xd1\x01\xed\xa5\xae\xe1\xf2\x84\xe2\x4f\xd3\x36\x29\x32\x48\xd8\xbc\x66\xef\xbd\xba\xdb\xd1\x00\x62\x24\x10\xc8\x1e\x1e\x10\xcd\x02\x79\x3e\xc0\x19\x30\x1a\xc6\x80\x51\xa9\xb7\xb2\x81\x45\xf7\xa3\x4c\xb1\x3a\xe9\x90\x83\x69\x96\x2f\x59\x3e\xf2\xfd\x68\x44\xb9\xad\x3c\x87\x1c\x9e\xd1\x70\xb4\x3c\x9a\x36\xf6\x73\xad\x1d\x32\x9e\x02\x34\x8a\xa5\xb0\xf2\x32\xc8\xe0\xed\x76\x8e\x4d\x85\x08\xc4\x01\x01\xfa\xec\x07\xf1\xd7\x48\x24\x8d\xbc\x10\x04\x46\x7b\x4a\xf3\x50\x6a\xac\x1f\xf8\x09\x3e\x5f\xc0\x68\x64\xe2\x34\x18\x64\x26\xaf\x59\xba\x18\x25\x54\x62\x00\x7e\x5f\xb6\xae\xa5\xcd\xe9\xef\x20\xcf\x7b\x77\x85\xb2\xd8\x60\x65\xc7\x51\xfc\x52\x5d\xe4\x9e\xb2\x24\xc4\x71\x64\x57\x8d\x47\x51\xa9\xf2\xb3\x50\x30\x65\x26\xc4\x38\xde\xa6\xc0\x70\x06\x96\x2b\xdc\x94\xe5\xeb\x8f\x20\x24\x72\x54\xf3\xdf\xb6\x65\x28\x44\x56\x97\xb9\xbe\x2b\xab\xbb\xb2\xea\x5f\x2a\x0e\x02\x23\x06\x86\x7f\xf6\x27\x58\xf6\xed\x1c\xaa\xeb\xc0\x17\x8d\x29\xd5\xac\x2f\x8b\x73\xb0\x7e\x17\xc6\x8f\x7c\x23\x16\xa1\x1d\x31\x34\x07\x3f\xe9\xff\x38\x0d\xd0\x9c\x72\xae\x89\xe5\x90\xee\x03\x58\x34\x16\x61\xe4\xa3\xde\x58\x72\x62\x8f\xce\xf5\x4a\x0c\xa1\x90\xbe\xbe\x76\x08\x51\x62\x34\x0d\x08\x96\x15\x3f\xed\x97\xcb\xcd\xfa\xd1\x12\xe5\x7d\xd6\xc3\x29\x4b\x90\x11\xff\x98\x15\x5f\x45\x4d\x17\x4a\x75\x2b\x1e\x4d\x95\x25\x30\xf4\x90\xcf\x4f\xd7\x0d\xca\x43\x6b\x68\xbb\x41\x3a\x7d\x32\x1e\x6a\x34\x35\xfa\xb0\xe9\xdf\x77\xfb\xeb\xfe\x9a\x5e\x94\x6a\xf4\x6a\x4c\x96\xe7\x37\xe7\x8b\xad\x57\xf9\x4d\x64\xba\xbf\x04\x8b\x49\x17\xc8\x7b\x10\xc5\xc5\x87\x4d\x26\x58\x0e\x46\xb9\x02\x4c\x8a\xb8\x08\xdc\x4e\x14\xaa\x39\x4f\xa3\xab\x1d\x17\x1e\xb6\xc7\x1d\xa1\x41\x22\x3c\x9f\xa8\xab\xb7\xb3\xca\x58\x8c\x72\x43\x31\xf5\x80\xa5\x63\xc7\xd6\x3e\xa8\xa1\x6a\x26\xf4\xae\xfe\x23\x8d\xce\x14\x29\xc3\x60\xa2\xbf\x05\x1a\x42\x99\xcc\xe1\x83\xa8\x16\x15\x3a\x41\x56\x11\xd4\xa6\x7d\xdc\xff\xf8\x3e\x8f\x5b\x62\x54\x0a\x89\x9d\xe3\x4c\xd2\x76\x57\x9d\x6c\x9a\x54\x07\x34\xe2\x9d\x02\xd9\x4d\x59\xe6\x28\x41\xe6\xb3\x65\x54\x87\x29\x95\x7e\x1f\xcb\x14\x5c\x95\x15\xff\xe7\xff\xa6\x41\x23\xaa\xa3\x04\x23\x59\x36\x6a\x61\x13\x8b\x1f\xda\x9b\x53\xfc\x1f\xa3\x9a\x25\x1e\x30\xd6\xa7\x05\xa9\x4e\x18\xf2\x8f\xbc\x94\xad\x29\xda\x88\xa6\x9e\xd0\xbc\x33\xaa\xa5\x41\x23\x6b\xf5\xb0\xde\xed\xd6\x9b\xc7\xc3\xdd\xe6\xe9\xb0\x5b\xdc\xaf\x76\xfb\xc5\xd7\x55\xec\xaf\x04\xb1\xa5\xf7\x7c\xf6\x6a\xa7\x37\xae\x22\xc3\x1f\xd7\x56\xb1\xde\x29\x88\xfa\x5a\xd8\x29\xac\xd8\x26\x22\xda\x75\x5f\xe6\x42\xbd\xde\x94\xbf\xc6\x76\x19\x0b\x65\x2c\x63\x07\xc0\xb6\x1b\xc3\xaa\xe8\xd9\x4f\x18\x0b\x75\x28\x93\x1e\xf9\xb1\x2f\x51\x1b\xc9\x1f\x8d\x84\x4f\x7f\xbf\xcf\xf7\xe0\x27\x72\x80\xad\xef\x6e\x41\x59\xe8\x26\xb6\xfb\x91\xbf\x2c\x89\x38\xc6\xef\xef\x37\xcb\x3f\x56\xb7\x08\xf5\xeb\x68\xc3\x5b\xf3\x40\xe1\x84\xdc\x7f\x1b\x5a\xaf\x8c\x06\x01\xe6\x3a\x5c\x18\x4a\x1c\x4f\x22\x7b\xbe\x26\x1d\x1a\x2e\x3d\x8c\xe9\x18\x4d\x7b\xcc\xdb\xcd\xc7\x71\x59\x1c\x18\x5c\x89\x8f\xf7\xa5\xd0\x8b\x42\x3f\x21\x97\xea\x97\x49\xa3\x38\x20\x71\xaf\xfa\x82\x35\xa2\xe3\x97\x8d\xb5\x8c\x99\x47\xa8\x3f\x64\x9d\x22\x09\x63\xb1\x21\x98\xb4\x7c\x12\x15\x2c\xd1\xa6\x71\x07\x12\xa6\x7d\x39\xce\x13\xbc\x95\xaf\xb3\x12\x3d\x8c\xa5\xdc\x4a\xcb\xb9\x5f\x07\x64\xd8\xa3\x77\x4d\x21\x54\xde\x30\xf1\x61\xf9\xf1\x23\xf2\x94\x5a\x6a\x04\xb4\x91\x1e\xb2\x5e\x9f\x67\xb6\xf3\xb8\x4e\xb5\x07\x12\xe7\xe2\xd8\x95\x9c\x31\x26\x84\x31\x3e\x6b\x86\x00\xbb\x43\xd5\x5a\x41\x07\xd1\x34\x70\x3c\x7d\x90\x44\x65\x42\x86\x98\xd5\x5a\xbc\x94\x65\xee\x04\x2c\x7e\x87\x60\xe0\xf7\x16\x61\x26\x20\x42\x43\x75\xb7\xff\x87\xcd\x66\xde\x0c\x00\x6d\xbe\x8d\x49\xb1\x56\xce\xfd\xda\xfa\x3e\xce\x51\x70\x0d\x64\x6c\xf9\xa9\x44\x9e\x3b\x13\xa6\xfb\x5a\x12\x18\xc6\x59\x04\x92\xe8\x3e\xc2\xfb\x36\x17\xc5\x35\x4d\xe4\x07\x99\xab\xb9\x9d\x91\x49\x30\x1e\xca\x1b\xa2\x47\x73\x85\x48\x65\x4c\xd1\x84\x8d\x37\xb5\xb6\x91\x55\x44\x1a\xc7\x87\xe6\x85\x18\xa7\x56\x02\xd3\x29\xe0\x7a\x7c\x38\x55\x59\xd1\x2c\x96\xe5\xb9\xaa\xa7\x37\xd5\xd2\x8a\xc4\x21\xd6\x34\x3a\x08\xa4\xc4\x7d\x82\xf6\x09\xd0\xb7\x3b\x14\x28\xfc\x8e\xbc\xf2\x87\xfa\xa5\x3c\xe7\x1a\x53\xbd\xbe\xaf\x20\x66\x58\x8c\xe7\xc2\x7f\x96\x16\xd7\x36\x9f\xdc\x09\x04\x45\xe8\x8e\x04\x55\x1e\xe1\x5b\x59\x8f\x79\x0d\xaf\x15\x81\x3e\xe9\x4e\x43\x22\x22\xfc\x14\xbc\x39\x57\xc5\x18\x7b\xcd\x98\xa1\x3c\xf5\x5c\xd8\xce\x13\xaa\x3f\xe1\xcf\x60\xcc\x00\xc5\x13\xd0\xb5\x18\x09\x7f\xcc\x8d\xcd\x7e\xdf\x8e\x03\xc7\x21\x87\x16\x81\x45\x72\xdb\x1a\xd9\x95\xea\xec\xb1\x38\x10\xd6\x5e\x41\xde\x87\xf1\xd4\x1f\x3f\x47\x1c\x68\x82\x8b\xcb\x4b\x59\xd5\xb0\x7b\x29\x61\x82\xfd\x9a\x34\x0f\xe3\x30\x70\xa1\xf3\xe5\x66\xf3\x19\x15\x07\x8b\x43\x6e\x49\x91\xe1\x08\xd5\x33\x14\xea\x32\x25\xf5\x9e\xb6\x57\x01\x0c\x15\x10\x6c\xd9\xd8\x8c\xaa\x39\x8b\x89\xb6\xb0\x24\xbb\xde\x2c\x2b\x61\x50\xe5\x60\x2c\x87\xe7\xda\xd2\xc8\xc2\xf7\x3c\x76\xfa\x06\x9a\x91\x4a\x7f\xdb\x42\x19\x0b\xc9\x39\x9d\x06\x02\x83\x57\xd7\x01\xd6\x6d\x87\x58\x85\x33\x0a\x26\xc5\x54\x04\x29\xf4\xcc\xb8\xfe\x53\x30\x25\x30\xf0\x2a\xcf\x97\xdd\x4b\x76\x1a\xd6\x64\x76\xa5\x99\xe3\x0b\x31\x80\xc4\x46\xb8\x5d\xcc\xa6\x44\xa6\x3c\x84\xa7\x7f\xb6\x27\xc5\x71\xcc\x70\xd5\x87\x5f\xa7\xac\xc2\xc9\x3c\x04\x67\xc4\x09\x0d\xfa\x4a\x27\x9b\x19\xf8\x99\x35\x2f\xe5\xb9\xb9\x05\x95\x1d\x85\xc7\x29\xb7\x2d\x01\x43\x1e\x37\x65\xa1\x5f\x33\xf5\xfa\x97\xdc\x32\x23\x8b\x2f\x4e\xa9\xd5\xcc\x2e\xab\xec\x39\x2b\xda\xe9\x32\xe9\xca\x34\xb5\xc0\x64\xa4\xcb\x2e\x34\xfc\x02\x6d\x85\x20\x3e\xe2\xba\x9d\x9c\x6e\x34\x6a\xa1\xf8\x6a\xd8\xa8\x43\x2e\xb3\x98\x03\xc3\x59\xef\x45\x58\xb7\xed\x72\xd6\x75\x01\x37\x0c\x31\xad\x27\x1b\x91\x1c\x97\xbd\xb7\x87\x55\x20\x3b\xf0\xd2\xa7\x3b\xc8\x79\x44\x2b\xe8\xce\x17\x24\x4e\x9d\x3f\xd2\x1c\xae\x10\xe9\xae\x91\x8c\x22\xe5\xec\xb3\x43\x05\xaa\xac\xf4\x61\x20\x81\xc6\x62\x19\x93\xb4\xe7\x0c\xbb\xf1\xa3\xcd\x57\xb9\x55\xd3\xcb\x29\x40\x4f\xae\x02\x2b\xc0\x7d\x50\x98\xbf\xfb\xad\x9d\x2d\x56\x52\x05\x6e\x67\x77\x39\xdd\xae\x4c\xc6\x49\x83\xf7\xb4\x93\xff\x6f\xc9\xfc\x58\xb3\x90\x78\xcb\xfb\x0d\x2a\xf1\x6c\xb7\x65\x1b\x8d\x18\xbf\x82\x96\x21\x72\xf6\xf8\x34\xc2\xa7\x98\x71\x16\x43\x04\x58\xec\xbc\xbf\xb9\xa7\xfd\x56\xef\x0f\xb2\x18\xb5\xfe\xdb\x51\x77\xc6\xb0\xde\x5d\x56\x0c\xd9\xe7\x7d\xbb\x18\x30\xcf\x9a\x15\xba\x0f\x8f\xc4\xa0\x09\x46\x55\x35\x78\x9d\xa4\x6e\x6c\x98\x40\x5b\x75\xbe\x4a\x14\xe7\x1c\xd5\x63\xbb\x43\xc0\x70\x6b\x2f\xca\xc6\x2a\x43\xcd\xef\x2c\xb6\x75\x12\x06\x16\x6b\x3c\x50\xe1\xc0\x5a\xe6\xcd\x30\x2f\x3f\x1f\x4b\x49\xc2\x90\xeb\x89\xde\xf3\xf2\xc5\x3e\xcb\xa4\x21\x67\x88\x45\x3e\xf4\x9b\xbb\x93\x6f\x40\xcf\xfc\x9a\xe6\x85\x25\x51\xaa\x03\x47\xe9\x82\x96\xfa\x07\xd9\xae\x24\x32\x36\x6c\xe7\x97\x27\x9b\x27\x1c\xb7\x21\x09\xc1\x7c\xef\xfd\xcd\xd3\x0e\x59\x68\x7d\x40\x6f\x7e\xab\x48\x88\x20\x96\x14\x79\x7b\xd8\x2d\x17\x9e\x4d\x96\x25\x44\xd9\xdd\xfe\x1d\xa3\x99\xfb\x0f\x2e\x32\x79\x40\xaa\x0c\xfa\xf2\xf7\x9b\x1f\xab\x7f\x6d\xbe\xdf\x6d\x9e\x56\x3f\x56\x4f\xfe\x92\x31\x55\x69\x9f\x65\x75\xdb\xf8\x16\xaa\xd5\x04\x58\xcf\x92\x98\x01\xef\xfd\xbc\x07\xe8\x4a\xa7\x27\xf7\x8b\x85\x25\x65\xbe\x66\x53\x06\x4b\x90\x72\x9b\xd5\xa7\xf3\x07\x84\xd0\x2c\x89\x65\x82\x7d\x35\x64\xa4\x75\x93\xef\x83\x2f\x90\x40\xea\x78\xe1\x6a\x3b\xe0\xb2\xe6\xf2\x3d\xeb\x56\x90\x24\x95\x96\x49\x70\x59\x56\x90\xe7\x56\x02\xe6\x93\x30\x4a\x92\xea\x88\xba\x92\x85\x0d\x66\x6b\x6a\xac\x18\xa9\x07\x1c\x87\x13\x1f\x38\xe1\x9c\x63\xf4\x60\xf9\xed\xa7\xbf\x2b\x17\x0a\x6b\x46\x74\x21\xc8\xa4\x27\xb9\x31\xb8\x35\xda\xcf\x78\x93\x97\xcf\x7e\xab\x49\x64\xa0\x31\x1a\xe7\xa0\x4f\x1f\xa6\xfc\xc3\xf1\x5e\x97\x48\xd0\x48\xc2\x6b\xe9\xc5\x1f\x40\x67\x62\x2b\x2e\x43\xb7\x2e\xd1\x41\x88\xb5\xeb\xbb\x73\x79\x84\xe2\x41\x54\xaf\xaf\xa2\x3f\x46\x31\x72\x24\x6c\x85\xe4\x95\x9d\xeb\x9b\x29\x5b\x80\x01\x85\x2d\x4c\xd9\x41\xb7\x20\x24\xa0\x43\xd9\xc9\xe5\x76\xfb\x7d\x62\x5c\x78\xd1\x4e\x0e\x5f\x23\x80\xd0\xf1\xba\xdd\xff\xc7\x03\xdf\x70\xc0\xad\x52\xf8\x30\xd5\xfc\x18\x31\x00\x9e\x75\xbf\x9d\xc6\x65\xe1\x44\x73\x11\x62\xba\xbe\xa2\xa8\xb7\x67\xa5\x61\x10\x0c\x34\x8b\x5a\x33\xba\x80\x49\x26\xf3\xd3\x35\x3c\x0d\x03\x8d\x16\x9c\x38\x9d\x7a\xfe\x41\x96\x86\x69\x10\xd8\x9a\x0e\x6b\x31\xad\x8b\x21\x56\x20\x0d\x25\xa4\xba\x67\xa3\x77\x01\xdf\x11\x14\x21\x8d\x22\xe6\x25\x6c\x16\x4d\x79\xdc\x95\x93\xe2\x34\x6f\x0c\xa5\x11\xa1\x88\x71\xfc\xbe\xbb\x3d\x6c\xbf\x3f\x2d\xbf\x2d\x76\x2b\xa7\x89\x7c\x78\x5a\xfd\xe3\xfb\xfa\x69\xfd\xf8\xf5\xe0\x79\x4a\x59\x1a\xa9\xc0\xca\x4a\x36\xa2\x6a\x1e\xca\x42\x54\xea\xe5\xd2\x6e\x03\x43\xaa\x09\x96\x46\xda\x16\x65\x9f\xa0\x32\x65\x75\x74\x1c\xcb\x8e\x68\x69\x00\x1b\x4d\x49\xc0\xd0\x36\xcc\x6a\x4f\x82\x8b\x04\x92\xdd\xe1\xc8\x18\xab\xfd\x6e\xb7\x2c\x04\x4d\x0f\x86\x43\x4a\x48\x88\x76\xfe\x7e\x73\xdf\xfd\x94\xa6\xb8\x02\x61\xd8\xe6\xb0\x79\x5c\x1d\x6e\x56\xfb\x61\x41\x38\x4b\x29\x31\xda\x43\xfc\x35\x8e\x9d\xf1\x8c\x4a\xa9\xa2\x86\xf7\x39\xd4\x37\xf0\x4e\x50\xf7\xe0\x8c\x73\x2c\xc9\xd8\xfd\xe3\xc9\xa2\xda\x0e\xb7\xab\xe5\xfa\x61\x71\xef\xa3\x21\x69\x1c\xdb\xca\xc5\xac\xb6\xc1\x4e\x98\xa0\x32\xd2\x98\x0b\xc4\xbd\x99\xaa\x3c\xfe\x18\x22\xf0\x59\x9a\xf0\x00\xf3\x92\xed\x12\xe4\x3a\x0f\xe7\x5e\x57\x74\xd1\x3a\x6e\x37\xf0\x6f\xa8\x7c\xca\x33\x4d\xa3\x28\xb1\x86\x4a\xdd\xa0\x6d\xd4\x6e\xdb\xb3\x71\x89\x34\xe5\xda\x53\x0f\x3f\x88\x5f\xf7\xa5\x7a\x1d\x90\xd7\xf4\xcf\x97\x4a\x8e\xc1\x3d\x5b\xbe\xe6\xd4\x54\xbb\x82\x1c\x96\x8a\xd4\xd0\xc4\x95\x38\xdc\x9d\x9b\xb3\x87\xed\x7d\xcc\xae\xc6\x52\xc9\x84\x90\x3d\x7b\x5d\x56\x3c\xcf\xb6\x9e\x9c\xa5\x45\x04\xa4\xb7\x2b\x4f\x83\x94\x4b\x0a\x51\x84\x94\xed\x07\x79\xbe\x6c\xcf\xcd\xbe\x44\xc6\xc5\xbf\x32\xa6\xc6\x1d\x02\x94\x6a\x4b\xcc\xf5\xcf\xc3\xdd\x6a\x75\xd8\xae\x9e\x96\xab\xc7\x76\xfc\xf8\xbb\x98\x28\x45\x1e\x8f\x73\xd1\x76\xda\x65\x8d\x25\x7f\xcd\x65\xd2\x63\x86\xc6\xbe\xf0\xed\xdf\xfb\x3f\x90\x73\xcf\x0f\x18\x1e\x70\x8d\x48\x9e\xfa\x54\x81\x18\xbb\xb7\x3c\x00\xaa\xad\x82\xe7\x8d\x35\x69\x06\xc9\x4b\x1e\x32\xc9\x07\x8c\xd3\x6d\x1f\xfb\x79\xce\x23\x42\x11\xe5\x6f\xb2\x37\xf8\x56\x9e\xab\x3e\xe2\xc9\x23\xa2\x10\x26\xe0\x98\xad\x3e\xf2\x31\x26\x19\x71\x1e\xe9\x38\x4d\x7a\x5e\x26\x5b\xcb\x7f\x1e\x42\x84\x78\x64\x54\xe2\x2c\xec\xfb\xb2\x69\xa0\xba\x78\x24\x89\x6b\x40\x13\x8d\xf1\xa2\x7f\xfe\xfd\xef\xdd\x4f\x90\xa2\xdf\xe0\x93\x5c\x1f\x33\xf8\x33\xce\x42\x3b\xf8\x73\x30\x0d\x9b\xec\x75\x9c\x85\x80\x40\x27\x5d\xe6\xb9\xa8\xf6\xe5\x7d\xf9\x06\x97\x9e\x14\x9b\x71\xa4\x00\x73\xdd\xf5\xe9\x3e\xcf\x63\xc6\x3b\x41\xf6\xd6\x67\x1b\xe5\x24\x78\x12\xcb\x80\xf5\x44\x9e\x43\xc0\xc9\xe4\x91\x92\x34\xf0\xb0\xeb\xf7\xbe\x0a\xfe\x46\x34\xea\xe5\xcb\x55\x98\xdb\x9f\x03\x5c\x77\x32\xdf\xc7\x53\x03\x07\x12\x8f\xd2\xb7\x3c\x31\x04\xb9\xa3\xec\xee\xf2\x84\x9e\xcc\x54\x42\x78\x92\x17\x98\x31\x3e\x78\xaa\x58\x62\x8b\x09\xdf\x40\xe4\x87\xd6\xe7\xf9\x3c\x4e\xe3\xcf\x33\xa9\xf2\x59\x6a\x1f\xb1\x1d\xbf\xb6\x50\x01\x77\x49\xc3\x85\x4d\x73\xad\x75\x7d\x73\x99\x92\xae\x8d\xdf\x5b\x06\x14\x8b\xeb\x2e\x20\x86\x83\x55\x06\x80\xa1\xdc\xe7\xec\x0d\x6e\x84\x7a\xfd\x60\x3f\xe7\x32\xd4\x18\x06\xb4\x7e\x49\x53\x56\x60\x6b\x14\xae\x90\x29\xbe\x7d\x9c\xe0\xb0\x5b\xd7\xe8\xaa\x6f\x45\xe5\x88\x45\x26\x43\x01\x98\xcd\xdb\x3a\xa6\x6a\x84\x72\x76\x30\x68\x0e\x2a\x75\x4c\x33\xed\x9c\x18\xd1\xd4\x31\x0e\x9a\x10\x27\xc6\x35\x9e\xd4\x26\x60\xda\x4a\x62\x16\xfb\x4a\xe8\x89\x87\xc4\x8d\x8c\x4d\x2f\xc4\xd4\x4b\x05\x8c\x1f\xcc\xe8\xc4\x4b\x1a\xfc\x0b\x44\xb5\x29\xbc\xea\x44\x36\xdd\xb3\x44\x10\xa6\x94\xd9\xba\x01\x35\x75\xbd\x45\xc0\x08\xe9\x82\xdc\x58\xf6\x5c\xb8\xb9\x3b\xca\x5e\x88\x30\xe2\x18\x2b\xdd\x67\xbf\xcf\x17\x36\xee\x4b\x41\xe2\x04\x1d\xb0\x02\xde\x6f\xb3\xe7\xac\x11\x79\xb7\x71\x8c\xd3\x59\xde\xda\x15\x24\xb1\xaa\xae\xcd\x88\xb3\xc9\x1f\xe4\x16\x6b\xbf\xfa\xff\x48\xfb\xb3\xe6\xc6\x71\x6c\x5b\x1c\xff\x2e\xf7\xa9\x1e\xfa\x81\x20\x89\x81\xff\x37\x59\x96\x33\x75\xd2\x53\x5b\x72\x66\xd5\xed\xe8\x50\x60\xd8\x90\x79\x4c\x91\x3a\x24\x65\xa7\xfb\xd3\xff\x83\x1b\x00\x27\xc9\x99\x75\x7e\x37\xa2\xa3\x9d\x25\x82\x33\xb8\xb1\x87\xb5\xd7\xfa\x09\xb5\xce\x1b\x98\x50\x73\x51\x99\xd8\x34\x88\xa1\xe0\xe2\x28\xcf\x04\x7c\xa9\xa4\x89\x6b\xb5\x45\x37\x6a\xd3\x02\x1c\xc2\xde\x54\x0a\x54\x8e\xbc\xfe\xfa\x7c\xb5\x85\xa6\x8d\xe2\x7e\x8b\x71\x1d\xbd\x9b\x23\xec\xcb\x7c\x29\x9b\x06\xb1\x6d\x07\xd9\xe6\x5a\xf6\x83\x2c\x47\xca\x0f\x94\xf1\x4d\xe9\xec\x85\x30\x25\x7a\x9c\xb5\x2b\x7e\x9d\xc6\x62\x52\x7e\x94\xa0\x31\x7a\xda\xb5\x2c\x4d\x75\x98\x7c\x9b\xb3\xd6\x54\x2a\x33\x96\xa2\xb0\xd4\x10\x75\x2e\x6e\x6f\xff\xfa\x5d\xa1\x54\x66\x3c\x4b\xe5\x80\x50\x9f\xbf\xd7\xfe\x3d\x64\xd2\xe9\xc3\xd9\xee\x76\xee\xaa\xb2\x09\xb2\xb4\x17\x48\xce\xa8\x94\x42\xe2\xb3\xbb\xc9\x0b\x68\x3e\x9a\x76\x78\xaa\x2a\x21\x29\x84\x8a\xba\xe9\x73\x1b\x71\x3a\xbe\xab\x71\x73\xce\xa0\x23\x71\x1a\x18\x14\xa9\x34\x3c\x13\xb6\x4f\xd5\x3c\x55\x6a\xc6\x83\x4d\x25\xb0\x28\x01\xdf\xcc\x7f\x31\xf5\x77\xd1\xf2\x4b\x90\x2e\x4b\xee\x80\x27\x85\xcc\x0f\xb3\x57\x07\x86\xa1\xeb\xb3\x39\xba\x95\xed\x3c\x75\x36\x1d\x6f\xa9\xc6\xae\x40\x30\x79\x7b\x26\x23\x3d\x1f\xab\x48\x6c\xbc\xb8\xb1\xba\x43\xfc\xd4\x4d\x55\x6f\x5a\xb9\x0a\x65\x1a\x69\x01\x10\xaa\x12\x32\x36\xdf\xfe\x5a\x0e\xb8\xcf\xde\x33\x90\xd6\x52\x0c\x91\x0e\x58\x35\xea\xdb\x19\xfb\xb5\x50\x5a\xcb\x31\xff\xe4\x83\xf1\x33\x9c\x91\x8a\x32\xed\x90\x18\x1f\xa7\xe6\xec\xbb\x51\x84\x08\x07\x3b\x68\xe5\x2b\xbc\x60\xb9\xa5\x79\xac\xaa\x62\x5a\xa9\x54\x24\xa6\x88\xb5\x0d\xf9\x83\x55\x5d\x9f\x67\xc8\xc2\x58\x29\xb1\x65\xd4\x91\x9b\x6c\x02\x46\x46\xc5\x89\xc5\x0c\x05\xe8\xaa\xf4\xab\x36\x2a\xe3\xf5\x27\x89\x95\x8a\x82\x08\xf9\xcd\xf3\x7d\x08\x48\x54\x12\x6b\x91\x04\x27\xb4\x8b\x21\xc7\xc0\x09\x95\x70\xa7\x48\xe7\x99\xd4\x3d\x52\x32\x09\x9b\x53\xdf\xf7\xfe\x15\xe4\xdb\xc7\x6d\xde\xc2\x08\x3d\xaf\x52\x1b\x23\x1b\xf3\x5b\x20\xc6\x6d\xa6\xc4\x4d\x9f\x9a\xc3\xf3\xa2\xb4\xa2\xa0\x59\x1a\xf0\x0f\xd0\x17\x12\x15\x8b\x8d\xf6\xcd\xc8\xdb\x97\x1a\x9a\xaa\x98\x39\xe1\x8a\x81\xc6\x48\x1a\x4a\xb3\x94\x45\x71\x91\x56\xe9\x93\x35\x5c\x31\x70\x08\x6c\x59\x14\xd5\xbb\x2b\x89\x5d\x5c\x26\x15\x8f\x22\x19\x58\xea\x16\xb7\xab\xa7\xa1\xbd\x51\x71\x92\x60\x1f\xf3\x4d\x01\x3f\xf3\x5e\x3f\xef\x77\x3c\xe8\x54\xf1\x98\x29\x27\x0c\xf0\xdf\xa7\xa6\x3d\x63\x3e\xeb\x06\xd8\x24\xf4\x99\x55\xe5\x3e\x6f\x4f\x06\xfa\x93\x72\x1a\x44\x25\x6f\x60\xde\x4e\xa1\x44\x4a\x28\x0c\x60\x92\x49\xe4\xa9\x04\x8b\x30\x94\xdf\xb9\x39\x1f\x7a\x02\x2e\x87\xf0\x4a\x80\xc5\x43\x3d\x37\x1e\x92\xe9\x7f\xcf\x92\x08\xdf\xfd\x21\x2f\x27\xeb\xa3\xca\x68\x2a\x4d\x2f\x35\xdc\x8e\x83\xb2\x7e\x88\x72\x3a\x86\x8f\x7f\xde\x4e\xf9\x87\x3e\x89\x41\x66\xef\x22\xd3\x32\x1d\xb3\x31\x2e\x83\x69\x1b\xae\x5a\x12\x27\xbf\xf6\x5d\xde\xcf\x1e\x8d\x4c\xd2\xc4\x86\x96\xc5\xfa\x15\xda\x31\x68\x53\xa9\x24\x75\xd2\x08\x18\x64\xaf\x0e\x79\x33\x15\x16\xa4\x4a\x47\x36\x1a\x64\x49\xbb\xf7\x32\x6e\xdd\x0e\xeb\x4c\xf2\xef\xd9\x44\xd3\x82\xc7\xee\x33\x2b\xcb\x1e\x2f\x0a\x33\xdf\x4f\x69\xe9\xa4\x7e\x5e\x64\x61\x47\x5e\x8c\xdf\x6a\x4c\x8a\xeb\x7c\x65\x2d\xd4\x4b\xd9\xfa\x42\xd9\xb6\x9a\x6b\x42\x5c\x0c\xe1\x14\x10\xa7\x0c\xf5\x96\xc3\x7b\x1a\x56\x71\x65\x13\x83\x8c\xfb\x0f\x58\xe6\x1e\xa7\xaf\x94\xa5\x8c\xb2\xa0\x92\xd7\x39\xfe\xbd\xfa\x49\x3f\x02\x28\xb6\xb8\xe9\x17\x3b\x0a\x30\x74\x44\x12\xf4\xb3\x74\x75\x3a\xf6\x96\x46\x47\x82\x18\x9f\xde\x45\xdf\x69\x72\x75\x3a\x92\xd4\x95\xaf\x8f\x47\x28\xcd\xa6\x3a\xd5\xfa\x82\xe8\x46\x58\x88\x35\xe1\x69\x62\xb0\xef\xee\x61\x33\x7d\xf7\x9a\x00\xc3\x9c\x91\x2b\xcd\x5d\x0d\x18\x54\x1d\x47\x42\x3a\xd7\xed\x00\xd7\xa0\xe5\x47\x08\xae\xaf\xd0\x2c\xd6\x53\xc0\xe3\xdf\x8b\x8c\x75\x2c\x9c\xeb\xf4\x1f\x38\x35\x23\xe3\xa8\x63\xe9\x74\x17\xa5\x31\xff\x3c\x49\x17\x0b\xff\xa6\xea\xef\xf7\x4c\x12\x86\xcd\x14\x87\x4a\xbf\xee\xc6\x6a\x8d\xbf\xd9\x2d\x73\x72\x0e\xbe\x6c\x53\xc9\xda\x3c\x94\xcf\xcd\x67\x29\x6f\x9d\x72\xc1\xf8\x39\xa9\x69\x55\x2f\x8b\xea\x64\x42\x72\x1d\x15\x80\x66\x77\xde\xbf\x85\x54\x0a\x94\x86\x78\xcb\x03\x72\x51\xa7\x2a\x46\x66\x83\xe3\xa9\x79\x71\x91\x47\xbf\x45\x53\x44\x71\x2e\x65\xdd\x7e\xe8\xdf\xa4\x84\x75\x0a\x1c\x8b\x01\xee\x4b\x5c\x60\xf9\x76\x36\x65\x58\x44\xa3\x28\xe4\x24\x0f\x32\x2f\x7d\x90\x35\x9b\x0f\x2c\x4e\xb0\x5c\xa0\x72\x73\x96\x62\xd7\x2c\xd5\x9e\x10\xa9\x81\x09\x19\x2c\xd5\x3c\xe3\x1a\x82\xd4\x61\x79\x6a\xbc\x0e\xe4\xf4\x1a\x78\x66\x53\x07\xe0\xff\xd8\x56\x2b\xa7\x93\x70\xae\x61\xef\x07\x0b\x42\x31\x1f\xec\x08\x64\x1c\xa3\x51\xbf\x49\x22\x9c\xb9\x06\x9d\x1f\x73\x28\xdb\xce\xc9\x97\x79\xd9\x7f\xfd\x5a\x68\x86\x08\x97\xd6\x49\xd3\x9c\x8e\x9d\x6d\xe8\x2f\x36\x4b\xad\x43\x10\x15\x55\x03\x81\xa3\xef\x6c\x29\x9c\x4f\xa4\x91\xe9\xd3\x19\xc4\x59\xf7\x34\xaf\x1f\xd6\xe1\xa0\x32\x8b\x91\xe1\xc4\x05\xd8\x57\xdd\x22\x79\xb6\x4c\xfc\xe3\x12\x60\x47\x4b\x6d\x24\x1d\xb8\xb8\x90\x3b\x08\xdb\xbd\xde\x7a\x54\xb4\x56\x84\x62\x5b\xe0\x0f\x50\xbd\x50\xdd\xa7\x33\x4d\x31\x82\x90\xb7\x55\xdb\x63\x15\x2e\x52\xd7\x52\xad\x53\x08\xf4\xe3\xd3\x2a\x92\xdf\x6e\x88\xeb\x03\xfb\xb2\x70\x02\xcf\xe1\x72\x80\x38\x03\xd4\x53\x17\x4e\x2c\xfa\x27\xdf\x1c\x24\x8e\x1e\xb3\x5b\x86\x4f\xa5\xb9\x38\x45\x80\x66\xa8\x21\x65\x8b\xea\x3d\x2f\xf7\x5f\x65\x5e\x4f\xdd\x43\x0d\x9c\x21\x0b\x96\x05\xaf\x9c\x8a\x9e\xce\xcb\xd0\xa7\xa9\x2d\x89\xb0\x4d\x34\x30\x67\x20\xbf\x95\x6f\x94\xf8\x04\x9c\xa8\x6d\xc6\xb2\x31\x17\xe3\x13\xbc\x41\xdd\xc0\x2f\x41\xec\x7f\xc7\x69\xd2\x56\x0a\x4c\x5d\xeb\xa2\x9b\xa8\x07\x59\xca\x7d\x3f\x4d\x4d\x14\x39\xdf\xbd\xc9\xf7\xe5\xe9\xd8\x99\x9f\x0b\x82\x53\x73\x73\x6e\xa2\x54\x60\x43\xe4\x0e\x3b\x8e\x31\xc9\x34\x39\xa7\x21\x89\x03\x04\x34\x2f\x72\x67\x64\x2b\x77\xfb\xba\x3a\x1d\xff\xe8\xcb\x43\xe3\x3b\x37\x84\xc7\x98\xbd\x7d\xf8\xba\x1c\x15\xc1\xff\x96\x39\xef\xf6\xc5\xbe\xec\xe5\xd3\xc3\x8f\x6b\x24\x4a\xed\x05\x23\xa8\x21\xca\x65\x41\x9b\xca\xb6\x4b\x79\x1c\x03\xdb\x0d\xd1\x54\x7b\x94\x07\x92\xf8\x38\x7e\xe9\xfe\x0b\x35\xc4\xf2\xcc\xe9\x6c\xe4\xfb\x3d\xd4\x9b\xd7\xdc\x7b\x2d\x49\xfc\x2f\x42\xfe\xfd\xaf\xc4\x73\x9a\x89\xd1\xbf\xd2\x7f\xff\x2b\x21\xfd\xcf\xff\xc6\xff\xf5\xff\x4d\xff\x3d\xd9\x8f\xb0\xc9\x7f\x26\x71\x37\xda\xff\xe2\x2f\x21\x16\x16\x89\xc6\x75\x55\xda\x7c\xff\x0b\xb6\x6a\x3f\x3e\xe1\x4e\xa8\x75\x1a\x9e\xff\x2f\xf2\x1d\xff\x5f\xff\x86\xf3\x67\x4a\x7b\x03\xbf\xda\x7e\xc5\x4b\x78\x3e\x1e\x1d\x7f\xea\x2c\x0a\x30\x69\x46\x43\x9f\xcb\xaa\xc4\xcc\xfe\xf5\x99\x47\x6d\x28\x95\xdc\x21\x46\x5d\xdf\xd7\x42\xeb\x33\xf9\x6d\x6a\x28\x33\x98\x79\xdc\x49\x53\x1d\xdb\xc5\xcf\x7c\x06\x14\x16\x9f\x4c\x1d\x9a\x51\xe3\x18\x95\x5d\xe7\xf4\x2f\xa5\x7f\xa8\x61\x4c\x07\x6d\x42\xe7\x89\x62\x26\xe0\x47\x55\xbf\x42\x7d\xac\xaa\xe2\x42\xd5\xc5\x30\xae\x90\xff\xf0\x0a\xf6\x79\x39\xc9\x86\x1a\x66\x22\xec\xe0\xfb\x73\x7d\x3d\xf6\xe2\x0c\xb3\x09\x3e\xc4\x2d\x14\x70\x7c\xe9\xa5\x7c\xa9\xe1\xb1\xc4\xaa\xb1\x7b\x14\x9d\x6f\xf7\x3c\x4b\x26\x1a\x4e\x33\xfc\x98\x7b\x00\xd5\x6a\xfb\xf5\xba\x1e\x8c\xa6\xe1\x59\x8c\x6c\x2a\x07\x6c\xbb\xdd\x42\xf9\x58\xc8\xb6\xdf\x68\x01\xdb\x0f\xba\x60\x69\x80\x09\xd3\xb0\x59\x28\x85\x19\x4d\xd5\xdd\x0b\x8a\x90\xf9\x0d\x59\xcc\x5d\xf4\x22\x3f\xb0\x0d\xa5\xad\x5c\xa7\xd5\xec\xe2\xa4\x8e\xb8\x53\xbf\xd0\xa7\x1a\xcc\x7d\xd5\x93\x69\x53\x23\xad\xb3\xa8\xd8\x0e\x80\x45\x01\x97\x2f\xfd\x35\x9e\xd0\xef\xac\x52\x97\xb6\xed\x1c\xd5\x87\xcd\x85\xb4\x82\xd1\x89\x03\xc4\x5e\x2f\xbe\x0f\x9c\x9d\xd4\x18\xc2\x50\x01\xb1\xb7\x39\x08\x0e\x22\xb3\x77\x68\x28\x4f\x75\x28\x10\x4e\x3b\x13\x8d\x11\x04\x0b\x07\x4a\x61\xa4\xde\x2d\x72\x75\xe7\x28\x58\xeb\x97\x96\x30\x4e\x67\x58\x94\xec\xbc\x1e\x87\x23\xaa\x9b\x76\xee\x9e\x1b\x88\x85\x04\x8f\x72\xba\x92\x66\xde\xcb\x63\x80\xca\xc0\x42\xe6\xcb\xb9\x2b\x4f\x52\x17\x06\x64\x1c\x7d\xd8\x87\xab\xa7\xdd\xb5\x57\xe2\xe8\xb7\x29\x61\x9d\x46\xc8\x3c\xfa\x32\x36\x49\xb1\x59\xa3\x00\xdb\x3e\xbc\x85\x26\xaa\xb0\xa3\x55\x69\x12\x79\x22\x4c\xf2\xc7\x74\x47\x9d\x61\x7a\xad\xc8\x0f\x79\xeb\x4a\x65\x8f\x50\xff\x05\x32\x2c\x2f\x10\x49\x07\x36\xea\x62\x62\x47\x35\xe1\xc5\x4f\xc6\x0d\x43\x40\x78\x8c\xbd\x02\xb7\xd5\x7e\x83\x92\x9e\xfb\x51\x5d\xf4\x12\xa7\x5d\xb7\x0b\xc5\x28\x7e\x2b\x6b\x93\x87\x6b\x85\x98\xa4\x4e\x44\xab\x7b\xbe\x58\x80\x5f\x56\xcd\xa1\xf2\xc8\xca\x31\xb8\x0d\xe2\x24\xf2\x31\x37\xf4\x9d\x84\xd3\x19\x0b\x09\xd7\xd8\xd7\x66\x7c\xc8\xfd\xe4\x8a\xd3\x6b\x1d\xa2\x6a\x48\x84\xc5\x76\x59\x2d\x4b\xaf\x6d\x82\x6b\xec\xfc\x38\x36\x1a\x38\xde\x46\x7c\x95\x14\xd2\xc8\xc9\x9f\xfb\x06\xfb\x16\xce\xb8\xa2\xc2\x64\xf7\x8a\xaf\x14\xd2\x94\x63\xe3\x1e\x36\x3b\x9c\x65\xe6\xc2\x20\x96\xf2\x01\x32\x14\x72\x52\xc0\x88\xc1\x09\x5f\x05\xd5\x89\x66\x5d\xfe\xf3\x04\x73\x42\x03\x60\x8a\x20\xfc\xe2\x2d\xd7\x6d\x55\xe7\x70\x3a\x74\xce\x6f\xae\xc7\x86\x0a\x98\xd5\x48\xb5\xe6\xcb\x49\x3b\xdb\x37\x17\x02\xcf\x4c\xec\xbc\xe3\x7d\xa0\xa4\xa5\xc0\x25\x63\x49\xa0\xf0\x7d\x47\xfe\x2e\x0d\x8f\x50\x6b\x28\x5b\x39\x9f\xeb\xc0\x8d\x42\x3e\xce\x2f\x57\x13\x0a\x23\xc8\x38\x38\x11\xbc\xce\x71\xfe\x02\x25\x34\xc3\xdb\xcf\x74\x82\xb9\xbf\x77\x80\xd7\x31\x4b\x78\xb7\x45\xa2\x92\x42\x51\xed\xb1\x60\xd4\x5d\xec\x6f\x40\x83\x20\x89\xfb\x2a\x64\x5b\x1d\x72\xfd\x73\x02\x47\x00\x19\x6b\x6c\x75\xf8\x22\x0f\x70\x35\x4c\x2a\x15\xf3\x50\x2e\x5d\x20\x8f\x5b\xe7\x50\x4d\x52\x2a\xd3\xf7\xa4\xb4\xcb\xf5\x8d\x53\x1b\xb3\xcb\xd0\xa9\xc1\x96\x63\xd4\x3d\xb9\xcb\xcf\x26\x97\x66\x1c\x6b\x75\x5a\x96\x57\xbd\xc1\x01\x60\x22\x0d\xf2\x86\xb7\xd5\xbe\x1a\x7e\x97\x48\x1c\x3f\xf5\x7c\xa7\x2b\x1d\x80\xc9\x8c\x03\xb5\xbd\x41\xd1\xcd\x15\x27\x64\xee\xb7\xda\xd8\x11\xeb\xe4\x8d\x13\x2f\xa9\xea\xa1\xb1\x76\xd4\x67\x34\x3b\xa6\x05\x8a\x26\x78\x29\x8b\x7c\x7f\x2a\x42\xc1\xc1\x46\x89\x20\x2c\x70\xdf\x3e\xa0\x71\x9c\xa1\x72\xa7\xcf\xc3\x46\x2c\x8b\x26\x94\xe5\xa5\xb9\xad\xf4\x2b\xa6\x5f\xfe\xce\x72\x61\x23\x13\x61\x0e\xf8\x09\x9a\xdc\x9c\x64\x31\x61\xf4\xb8\x14\xdb\x5a\x92\xc4\xb8\x72\x1d\x1d\x30\xc5\x09\x71\x74\x5f\x56\x5e\x95\x43\xc9\xcf\x92\x54\xa3\xa1\xc4\x0e\xe2\x3a\xee\x7f\xa6\x91\x75\x1d\xa6\x8d\xee\x7f\x93\x89\xf6\x48\x7a\x19\x52\x90\xa3\x75\xc5\xc6\xc4\xa9\x17\x8f\x74\x90\xa7\xaf\xdd\xc6\x9d\x59\xf1\x86\x55\xbe\xc9\xed\xc7\x11\xcc\xb5\x6c\xe5\x40\x21\xfb\x59\xa3\xf1\xdf\x73\xe6\x6c\x2c\x62\xe6\xb9\xc2\x70\x2d\x5e\xcc\x32\xed\xdd\x34\x70\x12\x49\x98\xb7\x71\xca\xe6\xc3\x0d\x18\x8d\xb4\xfe\x5f\xaa\xd3\x55\x3e\xfc\x08\x98\x08\x94\x2a\xaf\x46\xac\x36\x36\xc9\x18\x46\x13\x47\xc4\xe6\xfe\x08\xcc\xbe\xfd\x66\x9d\x62\x43\xba\xaa\xaa\xd7\x7a\xda\x25\xe2\x47\xa4\x24\x41\x08\x95\x7f\x41\xc9\x0e\x2d\xed\x28\x99\x61\x53\x21\xb1\x84\xb7\x7c\xde\x6c\x1f\xee\x76\xab\xa7\x65\x1c\xed\xae\x9e\x9f\xee\x77\x9b\xd5\xd3\xf7\xf5\x72\xb5\xbb\x5f\xdc\x85\x14\xb1\xa5\x29\xa5\xde\xa3\x78\x94\x8e\x66\x60\x7a\x42\xca\x29\x6a\x4e\x1d\x7d\xe4\x3e\x4b\x0c\x5a\x2a\x9c\x77\x3b\xb4\x25\xe3\xda\xf3\x1b\xbe\x01\xbf\x1c\x5a\x26\x53\x6c\x6a\x3e\x54\x26\xb7\x1f\xbb\xfb\xea\xed\x74\xb8\x58\x7c\xb6\x5c\x48\xdb\xa7\x9c\xf5\xeb\x45\x23\x63\x45\xe4\xa9\x58\xa0\xbd\x92\x0d\x3c\x3f\xad\x27\x9e\xa8\x15\x31\x15\x2e\xd2\xf9\x58\xfd\x04\x7d\xb9\xce\x61\x05\xa3\x18\xa4\x41\x37\x64\x94\x88\xb0\x59\x6c\xe2\x64\x40\x6f\x75\xd3\xb8\x6f\xd2\x1d\xeb\x3a\x4d\x0f\x97\x51\xc7\x24\x1d\xd8\xe5\x9d\x74\xe6\x83\x7d\x3e\x6b\xc9\xb3\x92\x24\xbd\xd3\x7a\x38\x1d\x76\x26\xd0\x60\xfb\xed\x4a\x68\xac\x28\x9f\x9a\xce\xff\x3a\x95\x6d\xb3\xee\x23\x85\xe9\x49\x55\xc6\x1d\x0f\x69\x99\x77\xb1\xb5\x2c\xbe\xc8\x03\xf2\xf2\xe6\xc3\xc1\xb4\xc0\x9e\x39\x97\x0b\x5b\xb5\x2f\x33\xb2\xb8\xd9\x6d\x28\xeb\x58\x15\x1e\x65\xf7\xcd\xff\x79\x69\xf5\x16\x53\x63\x02\x24\x09\x95\x00\x47\xf0\xb7\xc2\xb6\xba\xcb\xef\x17\xb4\x42\x7c\xf9\x51\x7e\x6c\x5f\x3c\xbd\x49\xb8\x52\x9b\xa6\x91\x33\xfc\x9d\x2b\x59\x63\x6e\xf4\x79\x5d\x4e\xe9\x26\xac\x15\x54\x27\x7d\xfe\x3b\xd4\xcb\x7c\x9c\xce\xa2\x28\x92\x4e\x1a\xc8\xf7\x5a\xcb\x8f\xc3\x25\xea\xbb\xde\x97\x66\x51\x94\x58\x2c\x5b\x79\x8c\x20\x1c\x8e\x55\x2d\xeb\x8f\x49\xfc\xcf\xa2\x08\x5c\xa5\x18\x0a\x79\x6c\xc0\xdc\x55\x65\xfb\x82\xa0\xe5\xf5\xf2\x01\x5d\xbb\x3f\xc2\x40\x1b\xa5\x08\x43\xaa\x8b\xf0\x13\x49\x39\xf7\x1c\x24\x77\x79\x01\x4d\xdb\x05\x41\x97\x1e\x3f\x8b\x88\x91\x89\x5b\xe6\x4a\xa8\x7f\x87\xf6\x9d\xef\x0b\x8e\x82\xd8\x37\x06\x7d\x72\x86\x98\x6a\x64\x75\xe9\x6c\x6b\x0d\xa7\xc3\x65\x90\x3e\x8b\x62\x29\xf0\x9b\x6d\x4e\xfe\x16\xf7\x40\x9f\x37\xd7\xe1\x9e\x62\x1d\x21\xda\x6a\xf1\xb4\xba\x09\xbf\x25\x49\x8a\x89\x4e\xd4\xb3\xc1\x36\xbe\xb0\x41\xd2\xc8\x04\xfe\xac\x80\xf8\xb9\x7c\x79\x89\xd4\x88\x82\xb8\x87\xf7\xab\x93\xd9\x9f\xf7\x80\x85\x71\x2a\xb3\xd9\x84\xd2\xc0\x42\x5d\x8f\x5a\xf1\xa7\x77\x93\x0a\x07\x76\x1f\x57\xf1\xc2\xa6\x4c\xa2\x33\x5b\xe7\xa6\xa7\xa3\x65\x51\x2a\x5d\x5e\x55\xc9\xb6\x2d\xa0\x5f\xb3\xfc\x56\xc6\xb8\xf5\xf0\xbc\xeb\x4a\x0f\x05\x90\xf3\xbc\x26\x8b\x38\x95\xe8\x12\xbb\x2e\x2c\x4f\x03\x11\xb6\x89\x14\xbb\xf5\xbf\x54\x25\x6c\xeb\xfc\x78\x9c\x70\xfe\xb1\x88\x67\x44\x66\xfd\x64\xf7\xed\x74\xd3\x07\xc1\xa5\x13\x9b\x3c\xec\xaa\x77\x64\x2d\xe9\x45\x13\x58\xc4\x6d\x12\xa7\xe1\xb9\xdf\xe6\x1a\xca\xe6\xb2\x3a\x40\x37\x34\xc5\x04\x9f\x45\x8c\xe7\x05\x2a\x78\x16\x89\x34\x71\x15\xf7\xc5\x62\x3b\x58\x18\x16\x09\xc5\xcc\x80\xf7\xf5\x56\x73\x22\x6e\xe5\x07\x66\x22\xf6\x71\x75\xdd\x7e\x3c\xbc\x97\xcd\xa2\xb9\x54\x5d\x18\x7d\xee\xb8\x4f\x10\x15\xeb\x19\x9d\x90\x50\x3a\xb0\x50\x4f\x4f\x21\x19\xc3\x9c\xae\x3a\x79\xf6\xad\xab\x8f\x27\x2f\xec\xfa\xc9\x8d\x2b\xc5\x70\x9e\xf7\x0a\x6a\x9e\xba\x7f\x16\xee\xb3\x48\x99\xc4\xeb\xa8\x9b\x65\x55\x14\x52\x55\xf5\x58\xfe\x60\xf2\xea\x67\xd1\x1d\x8b\xb4\x72\x32\x83\x9b\xfc\xb5\x52\xb2\x5b\x4e\xf2\xf2\x54\x5d\xe8\xb2\x62\x91\x49\x9c\xfc\x76\x5b\xad\xfe\xdc\xbe\xcf\xb8\x85\x58\x04\x5a\x06\x42\xb5\x0d\x14\xc5\x12\xf2\x62\xf4\x35\x85\x41\xc6\x09\xad\x39\x99\x85\x11\x36\x99\x45\x60\x89\xb2\xc3\x0a\xeb\xf1\xff\xb3\x7b\xb5\xd4\xd1\xf4\x6b\x17\x95\x63\xa5\xa0\xbb\x54\xef\x33\x33\x12\x11\x0a\x93\x86\x8f\xb9\xef\x35\x7e\x89\x24\x4a\x05\xf3\xf4\x91\xab\xff\x96\x75\xfe\x74\x2a\xe0\x17\x40\xc7\xfe\x3e\x48\x44\x25\xce\xca\xeb\xfd\x4f\x14\x1e\xf2\x3f\x13\xc2\xa9\x2f\x9a\x1c\xab\xf2\x0c\xfc\x3d\x49\x17\x33\x42\x04\xc7\x2c\x44\x7d\x6a\x9a\x5c\x96\x1e\x30\x19\x36\x2a\x8b\x49\xb0\x45\x01\x35\x2a\x3a\x99\x91\x4f\x33\xac\x12\xa4\x8b\x11\x86\x0e\x69\xa4\xa7\xfa\x96\xb7\x03\xbc\x74\x3a\xab\x48\x9c\x31\x64\x78\xfa\x02\x6d\xb0\x4c\x9d\xc1\x7d\xb0\x97\x96\x45\x46\x62\xa9\x8d\x4f\x84\x6c\x34\x94\xb2\xce\xab\x06\x8b\xdd\xd3\x3b\x89\xa1\xef\x28\xfa\x01\xaa\xc9\xdb\xcb\x0d\x42\x8c\x24\x84\x63\x4b\xf5\xbb\xbe\x0c\x71\x61\x24\x49\x38\xea\xa3\x69\x9f\x23\xbc\x83\xa6\x91\x01\x4f\xc7\x48\xc2\x04\xae\xc5\x3d\x5a\xb2\xef\xe9\x9c\xd1\x2e\x30\x92\x08\x27\xd4\x1b\x92\xb4\x9f\x77\x30\x0c\x67\x4f\x3d\xe8\xaf\x6f\x72\xbe\x96\x1f\xe8\x94\x2f\x4f\xed\x6e\x3a\x97\x49\xe7\x0d\x77\x13\xfe\x7f\xe2\x70\x71\x8c\x30\xc4\x7d\x6e\xa1\x69\xbf\x3c\x2c\xb6\x63\x93\x49\x98\x96\xd6\x84\x26\x44\xac\x26\xde\xae\x67\x47\x64\x96\x07\x7e\xf9\xaf\x08\x2f\xaa\xaa\xc2\x8c\x94\xed\xfc\x30\x6e\x1d\xdb\xd3\xf6\xdb\xf5\xe4\x0c\x22\xd3\xca\x57\x8a\x6b\x54\xdd\x6e\xa1\x2e\xcf\x57\x9e\xd9\x2d\x67\x2c\x72\x32\xa8\xbe\xad\x0a\x9d\x06\x64\x7e\x9b\x25\x3b\xba\xa1\x9e\x02\x2e\xd7\xaf\xbe\x24\x38\x3f\x96\x6b\x19\x41\x82\x83\xfd\x95\x57\xd4\x46\x22\xc4\xc1\xed\x66\x44\x46\x86\x39\x53\x81\x19\x2a\x44\x51\x0d\xb0\xcd\x30\x28\x16\xf8\x30\x0e\x18\xb1\xc7\x11\x11\x43\x38\x18\x42\x16\x46\x64\x2a\x50\x69\x54\x9d\x3e\x16\xe6\x97\x6f\x78\x8a\xea\xf2\xbb\x2b\x62\x38\x2a\xf1\x5c\xf7\xac\x44\x8c\x28\x05\xc4\xa7\xd2\x8a\x93\x7e\xfd\x40\x2a\x83\xb0\x51\x6b\xc0\x09\x78\xfb\x10\xa4\x18\x19\xd1\x26\xc5\x2e\x33\x15\x92\x44\xab\xed\xd7\xd9\xa3\x83\x8c\xa0\xe1\x3b\xc8\x57\xe8\xb3\x07\x8c\x80\xa5\x8e\xa3\xac\xaa\x77\x83\x84\x02\x23\x96\x28\x2f\x48\x59\x9a\x8b\x78\xe7\x4f\xec\x92\x4d\x1c\x4d\xb8\xa7\x2c\xb8\x93\xaf\xbd\x81\x25\x16\x62\x47\x37\x86\x4f\x70\x46\xbe\xe2\xc6\xc4\x51\xe4\xe8\xfb\x03\x6f\xc7\x47\x75\xba\x88\xc6\x65\x71\x64\x08\x52\x4d\x17\xb2\x41\x18\x72\x01\x2d\x60\x35\xd3\x9f\x2e\x26\xcc\xf1\x59\x7b\xa9\x41\x04\x95\x9e\xaf\x2a\x31\x31\x16\xab\x3f\xab\xcd\xdd\xd5\x68\xf1\x8e\x63\xe3\x5b\x84\xde\x56\x65\xe3\x1b\xe4\x82\x71\x8c\x93\x58\x80\x4f\x63\x5e\xe5\xa6\x6f\xe9\x3a\x23\xa7\x9f\x58\xa9\x38\xe1\x84\x0e\x2c\x41\x3e\x8e\x7e\xac\x8a\x62\x76\x6b\x89\x50\x51\x3c\x86\xe5\x5e\xe8\x41\x63\x71\x1a\x29\x04\x21\x3d\x76\xcb\x4f\x9b\x97\xf0\x38\xe4\x1b\x59\x9c\xc6\xe0\x48\x61\x3d\x29\xcb\x04\xf9\xcb\xe2\x94\x3b\x8a\x17\xf7\x2e\xbe\xe5\xe5\xde\x8c\xfa\xcb\x2f\xcf\xdf\xc1\xe8\xc7\x29\xb8\x7e\xe1\x6e\x36\x5d\x6c\xc9\xec\xef\x99\x52\x8e\x32\x39\xd2\x85\x69\xcd\x73\x03\x97\x7b\x92\x58\x4c\xb9\x04\x8f\xcd\xbf\x79\xde\x6e\x87\x56\xe4\x70\xd1\x2c\xa2\x76\x58\xbc\x1f\xfa\x57\xc5\x52\xc3\x74\xdf\x13\xb2\x45\xd6\x9a\x99\x8b\x15\x33\x88\x31\x2d\x80\xfe\x7a\x3c\x74\xf3\x84\x63\x70\xce\x88\xaf\xa8\xdd\xe4\xb2\x75\x79\x89\x65\x55\xbe\x75\xab\x9f\xd9\x56\x73\x2e\x43\x16\x0b\x93\x22\xd0\xf1\x6a\xfb\xd7\xf2\x4c\x91\x6a\xbc\xca\xc7\xc2\xea\x28\x1b\xba\x20\x46\xe9\xe7\xbf\x2d\x42\xfb\x19\x4e\xe0\x57\x65\x42\x16\x67\x09\xc3\x09\xe7\x64\x90\x03\xbf\xf4\xec\x3e\x32\xcd\x30\xee\x59\xd4\xed\xd5\xf2\xb7\x61\x2d\x8e\x47\xaf\xd6\x54\x2b\x8c\xa7\xe6\x32\x55\x2c\xce\x80\x63\x2c\x7b\x5f\x29\x59\xff\x42\xc7\xce\x0f\x57\x31\x20\xdc\x0e\x13\x83\x4b\x59\x14\x46\xb6\x72\x29\xcb\x3b\xec\x42\x18\x09\x5f\xff\x63\x2e\x82\xcd\x62\x65\x00\x55\x77\x43\xfa\xe5\xee\x03\x45\x51\xa6\xd7\xa3\xac\xca\xfc\xb2\xb6\x28\x0a\x64\x43\xf1\x0c\x61\xc1\x36\xc5\x3a\xa5\x66\x4c\x41\xed\x60\xe6\xcd\x63\xdd\xc3\xb5\xbb\x31\x1c\xbb\xaf\x5b\xa4\xce\x99\xdb\x23\x2d\x1c\x35\x9e\x54\xd5\x1b\x6c\xe0\x0d\xca\x01\xe0\xc4\x62\x9d\x19\xec\xd7\x68\xa1\x69\xe3\xdd\x1b\xd4\x85\xec\x62\x9a\x7d\x80\x5e\xdc\xc3\xfb\x7d\x65\x86\x53\x49\x97\x69\xc1\xec\xd6\xf2\x43\x17\xc3\x16\xc5\x62\x6f\x1b\x66\x0a\x2f\xd3\xb7\xaa\x35\xc7\x46\xbc\x43\x5e\xfe\x80\xfc\xc7\xd4\x5b\xc1\xc8\xdf\x0f\x34\xa9\x43\xc0\xba\x8f\xca\x45\xec\xf3\x59\x39\xbd\x53\x63\x13\x2c\x0f\x2e\x1f\xee\x3c\xdd\x50\x38\x16\x64\xc6\x66\x03\xd3\x09\x22\x94\xc2\x26\x29\xf0\xe1\xad\x7e\x1e\x0b\x39\x58\x59\x2b\x23\x5c\x64\xcd\x65\x2a\xae\xb3\xa4\x2e\x4b\xa2\x14\x12\x2f\xdb\xe4\x13\x36\xe8\x2b\xcc\x5e\x47\x42\x44\x62\x9d\x68\x4c\xf3\x0a\xf5\xdc\x93\x48\x88\x10\x71\x34\x32\xb1\x9b\x77\x59\x1f\x30\xa3\x7a\x21\x52\x4d\xe2\x44\x21\xab\xc0\x15\xb8\xca\x5f\x7f\xfd\x49\xac\x08\xbe\xd7\xa3\xfc\xa8\xab\xa2\x98\x59\x9d\x24\x89\xd2\xc8\xbb\xaf\xd7\x95\x76\x99\xaf\x71\xd6\x86\x25\x89\xb4\x98\x7c\xfd\x0a\x45\x7e\x3a\xdc\x43\xfb\x5e\xd5\xaf\x13\x14\x0a\x4b\x12\xed\x28\x47\x1d\xff\xca\xf3\x71\x79\x56\x1a\x67\x49\x9a\x24\xc6\x83\x6b\x36\x6d\xa5\x5f\xe7\x9b\x19\xc5\xf4\xc9\x1b\x2a\xeb\x3b\xd3\x87\x87\xe9\xd5\x68\x59\x92\x6a\xd7\xe7\xd4\x9c\x0e\x0f\xf6\xfe\x0b\x54\x87\xcf\x50\x05\x7e\x07\x9a\x46\x28\x23\x88\xb3\x14\xab\x4b\x3d\x51\x1e\x4b\x18\x4d\x11\x00\xef\x60\x62\xc1\xf6\xc8\x91\x6c\x08\x4b\xb8\xc8\x44\x8f\x15\xbf\x20\xb4\xe3\x87\x09\x6e\xb1\xfd\xac\xad\xaa\x7d\x01\x5e\x0e\x2a\x9c\x27\x4b\x53\xea\xe3\xe0\xa1\x9c\x38\xd4\x5a\x59\x92\x71\x97\x38\x41\x49\x9b\xba\xff\x55\x39\x82\x30\x75\x72\xca\x05\xbd\xb2\x10\x4b\x32\x43\x30\x27\x7c\x0f\xef\x4f\xcb\xd9\x73\xcc\x40\x39\xb1\xc8\x72\x5f\xe7\x66\xdd\x2c\xbe\x56\x75\x9d\xab\x02\xbe\x9e\x0e\xb2\xbc\xd4\x4e\x7d\x6e\x41\x13\x69\x18\x96\xdf\x3b\xbf\x61\xec\x40\x27\x8a\xb8\xb2\x96\x77\xa0\x1f\xe5\xd9\x7b\x54\x34\x55\xde\xc1\xc5\x07\xde\x8c\xab\x5f\x2c\x51\x52\xa3\xdb\xd6\x7d\xca\x37\x55\x3d\x89\xe8\x12\x65\x22\xcc\xeb\xb6\x3d\xd9\xc2\x4d\x55\x8f\x35\x58\x58\xa2\xc0\x62\x2d\x6e\xf3\x92\x1f\xbb\x20\xfa\x4e\x62\x1f\x45\xd8\x6a\x63\xbc\xf9\xa6\x18\x7f\x28\x17\x97\x9e\x44\xc7\x09\xe2\x21\xda\xfc\x00\x9e\xd4\x34\x6c\xe1\x02\x99\xdd\x37\x50\x9a\xc7\x1a\x3c\x45\x8d\x49\xc3\x76\x30\xcc\xb8\x6a\x63\x81\x84\xd6\xbf\x62\x92\x61\x89\xd5\x80\x6b\xcd\xc1\xd9\xd3\xf0\xcd\xa4\x24\x62\x89\x17\x67\xed\x82\x90\x53\xdb\x6c\xda\xaa\x1e\x02\xb9\x94\x10\x89\xd9\xcd\xe5\x4b\x9d\xff\xe7\x3f\x3f\xc7\xef\x21\x25\xb1\x53\xde\xd9\x43\x3b\x51\xc9\x1a\x7b\x36\x29\x61\x24\xf5\x95\x9b\xea\x08\xe5\xb5\x91\x28\x45\xdd\x34\x83\xd9\x4f\xe3\x24\xc3\x14\xda\x35\x38\x5e\xcc\xed\x0b\x2c\x02\xa0\xfd\x72\xfc\x99\x26\x91\x83\x48\x0d\x96\xfa\x6e\xd4\x80\x75\xe6\x10\xf8\x59\x36\xb2\x56\x69\x22\x39\xc2\x6c\x73\x4f\xc6\xe9\xbb\x61\x56\x3f\x1d\xfe\x92\xa5\xd3\xfb\x48\x63\xc1\x9c\x8e\x17\xb2\x88\x0c\x69\xcf\xb0\x9d\x53\x34\x95\xa6\x05\x79\xc0\xda\x64\xf7\x46\xc2\xeb\x4a\x29\x51\x7a\xe0\x43\xee\xf9\xab\x3e\x35\xe0\x29\x65\x0c\x09\x88\x72\xcc\xf1\xb8\x16\xe5\x70\x30\x96\x26\xe8\xb0\xa8\x53\x5d\xce\x38\x92\x7e\x19\x44\xa6\x19\x8d\x71\x4d\x6a\xeb\x5c\xbf\x16\xb0\x39\x85\x85\x27\xcd\xc0\x2a\x67\xd5\x8e\x50\xdf\xf4\x4d\xfa\x2c\x95\x44\x04\xfd\xb9\xc7\xea\xd8\x33\xd4\x2f\x9a\x9b\xfc\x27\x18\x64\xd6\xb9\xa9\xea\x2e\x8a\x59\xcf\xc2\xcc\x54\x52\x86\xeb\x81\x71\xec\x0d\xcd\x7c\x33\x73\x15\x6d\x5d\x4d\xd8\x84\x58\x2a\x0d\x41\x43\xde\x79\x01\x9b\x93\x42\x14\xc0\x79\x25\x98\xa5\x5a\xd2\x24\x09\xf8\xd9\xce\x77\x33\x3e\x0b\x31\x52\x9f\xe8\xad\x68\x0a\x69\x84\x25\x28\x17\xe8\x38\x40\xae\x83\x28\x4d\x3e\x95\x14\x6c\x46\x90\x70\xf7\xa9\x8f\x1c\x53\x2b\x9c\xa3\x81\x5d\x60\x87\xaa\x69\x77\x05\x48\x3b\xbb\x1f\x9b\xf1\x58\x04\x5a\x9a\xea\xfd\xb2\xfb\x4e\x23\xa0\x10\xa1\x55\x3b\x39\xf8\xe6\x2f\x7c\x3e\x4a\x88\xc0\xb0\xa0\x5b\xd2\x9e\x9c\x6e\x71\x67\xb3\xe3\x8f\x1e\x51\xc2\x28\x49\xa8\xa7\xaf\xe9\x66\xd6\x73\x03\x75\xd3\xfb\x31\x57\xf3\x6c\x0b\x25\x1a\x12\x11\x74\xcf\x36\x2d\x1c\xa7\xb0\x18\x46\xe3\x38\x41\x18\xad\x34\x66\x65\x72\xb7\xec\xdf\x00\xcc\x58\xa4\x66\x37\x15\x0b\x8e\x09\x85\xb7\xaa\x95\x03\x78\x78\x12\xd6\xd1\x58\x3b\x9c\xf9\xc3\xb1\xbc\xcb\xfb\x08\x8c\xc6\xa0\xb1\xa9\xfd\x4b\x59\x35\x79\x83\x88\xd7\x7e\x5b\x62\xc0\xf3\x2d\x79\x1e\xf4\xe9\x13\xa7\x69\x2a\x11\x45\xd4\x76\xe1\x4c\x51\xdc\x07\x92\x33\x46\x53\x99\xa4\x18\x24\x75\xf3\x72\x94\xd2\xa6\xa9\xa2\x08\xef\x6e\x4e\x87\xaf\xb2\x36\x4b\x79\x0c\xd5\x09\xd1\x0f\x01\x83\xdc\xd6\xaa\xd5\xae\xe8\x35\x9b\xb8\x48\x7f\x4d\x47\xde\xb4\xa3\x65\xbc\xf8\xc5\x51\xaa\xd3\x2c\x0a\xd9\x2d\x57\x04\xf0\x50\xa5\x71\xc3\xcc\xa8\xda\xc9\x10\x67\x83\xeb\xde\xc3\xfd\xf6\x69\x7d\xf5\x8c\xda\x3a\x77\x8b\x3f\x77\xf7\x0f\xbb\x1f\x5f\xd7\xdb\xd5\xed\x7a\xb3\x0d\x17\xcb\x23\x86\x80\xab\x2f\xd0\x06\xb8\x1e\xde\xcd\x6d\xfe\x36\xac\xfe\x94\x47\x8e\xe8\xbd\x73\xb0\x56\xb5\x8e\xa3\x69\x62\x90\x72\xaa\x82\x5b\x34\xea\x31\xbb\x96\x79\xf1\x71\x5b\x55\xed\xa4\x7c\x39\xbd\x3f\x61\x62\xe2\x5b\x84\x3d\x21\xef\x4d\x55\x7b\xd2\xeb\x89\x0b\x47\x33\xee\xb0\xa7\x06\x5b\xac\x82\xed\xa7\x19\x77\x52\x88\x3a\xaf\x31\x95\x37\x86\x10\x30\x9a\x09\xca\x7c\xd2\xdc\x0b\x65\x9d\xf7\x9e\x4c\x94\x00\x18\x95\x31\xc4\xbe\x54\x33\x96\xc8\x1a\xb6\x62\x7d\x4f\x17\xb2\x69\x72\x3d\x2f\x91\x85\x51\x5c\xbb\x5e\xb5\xe3\x61\x37\x6e\x7c\x64\x54\x5a\x67\x96\x6b\x9f\x95\x1d\x73\x02\x5d\x5e\x7b\xa9\x4a\x5c\x15\x25\x2f\xdb\xbb\xde\x25\xa6\x1a\x00\xeb\x2e\x8e\x87\x7a\x7d\x7b\xbb\xfe\xe7\xf3\xfa\x7a\xb7\x5d\x2d\xee\xc2\x10\x88\x63\x5c\x52\xde\x72\x78\x8f\xd3\xfe\xd7\xd4\xba\x9c\xd3\x49\xb9\xd7\xad\x65\x21\xeb\x8b\x48\x62\x46\x41\x2a\x31\xa6\x8e\xbd\xfb\xf8\xf2\x65\x8c\x66\x63\x14\x0c\x45\xef\xf4\xb6\xda\xdf\xe5\x7b\x77\x23\x81\x50\xff\xbc\x3a\x3f\xbd\x33\x1b\x3b\x28\x4e\x67\x9e\xfa\xee\x8b\x2e\x9c\x41\xaa\x4e\x74\x58\x66\x0f\xd6\xfa\xd6\x90\xce\xb4\x2f\xea\xfd\xc3\xa9\x7d\xb0\x88\x86\x6d\x6e\x64\x1e\x32\x7b\xd4\x9a\x58\xf2\x31\x8f\x5d\x95\x97\xd7\x63\xa1\x89\x8b\x56\x88\x45\x51\x34\x88\x39\xb9\xc4\xe7\xd0\xd5\xc3\x58\x94\x08\xab\x7a\x7c\x46\x78\x22\x4f\x9d\x49\x9f\x5e\x25\x8b\x68\x82\x46\xe2\x7a\x7b\x33\x06\x5b\x31\x46\x22\x47\xb5\x3f\xe3\x0a\x61\x8c\xd0\x08\x7d\xef\x89\xea\xf7\xb4\xcf\x99\x31\xa2\x24\xf1\xa5\x97\xeb\x53\xb9\x87\xaa\x9c\x0e\x9b\x5e\x04\x51\x1a\x39\x12\x1a\x59\x35\xb2\x4a\xc2\x41\xe2\x54\x23\x4e\xe0\x90\xa3\x30\xea\x0f\xd4\x01\xfc\x16\xb6\x26\x91\xc2\xc5\xe0\xdb\x87\xfe\x8e\x31\xcc\xc5\x6a\x04\x4b\x62\xe7\xf6\x95\x95\x81\x9d\x39\x1d\xe7\x26\x8e\x25\x22\x63\x10\xaa\x44\xba\x2a\x4d\xf3\x08\xb5\xd3\x19\x99\x0d\xcc\xa4\x70\x0c\xcd\x3f\x9f\x37\xd7\xe8\x2e\x0f\xbd\xdb\xdd\x66\x40\x36\xd2\xc7\xfc\x15\xde\xab\xca\x0c\x24\x38\x8c\xa5\x91\x93\x05\x18\xf1\x0f\x5c\x90\x67\x66\x9d\x1f\x81\xcf\xd6\x3b\x68\x98\x59\xae\x6a\x4c\x09\x58\xa9\xfb\x53\xb1\x34\x43\x0e\xb4\x9d\x3c\x1e\x0b\xb4\x42\x50\xb7\xb9\x9d\xf0\x68\x8f\x73\x74\xbf\x2a\x30\x30\x66\x24\x52\x15\x3e\xfd\xf5\xe7\xea\xcf\xdf\x39\x57\x9f\x4c\x47\x9e\x50\x7c\x81\x8f\x35\x7c\xbf\xff\x76\x79\x9d\x1f\x5b\x2e\x96\xe9\x2c\xb5\x13\xbd\xf9\x3f\x2e\xd5\x34\x99\x4c\xb4\xa2\x63\xa8\xc8\x98\x27\x95\x31\x15\x0b\x87\xad\xdd\xe1\x87\x10\xfa\x23\x67\x3d\x19\x8c\x29\x05\x48\xeb\x88\xaa\x38\xa8\xd9\xfb\xe8\xb1\x79\x63\xfd\xb2\xf3\xfb\x52\x86\x21\x82\x02\xdb\xf8\x50\x08\xbe\x3f\xb5\x8e\x23\x4c\x27\xbc\xd7\x79\x0b\xa1\x24\xf4\x0b\x2d\xaa\x7e\xb7\x24\x28\xbf\xdc\x76\x53\xec\x02\xeb\x1b\x63\x3a\xe1\x08\xc2\xeb\xfc\x6b\xbc\xca\xe9\x5d\x6b\x01\x48\xb0\xb2\x5d\xae\x77\xae\xb1\xe3\x97\x1a\xa8\xdd\x1b\x66\xb8\xb4\x3c\xbc\x63\xe8\x3d\xff\x58\x8d\xd6\x76\xe8\xdf\x42\x1f\x7c\x3f\x47\xb2\x32\x66\x8c\xa3\x07\x70\xa2\x7a\x0b\xf3\xd6\xcd\xb9\xe6\x17\x74\xd6\xd3\xdd\x81\x25\xf8\xf5\x04\xde\xe4\x7a\xaa\x88\x4b\xd8\xbf\x68\x68\x8e\x08\x7b\x70\x81\x1f\xcd\xd6\xbf\xda\x7e\x5d\xbe\x3b\xff\x36\x01\x54\x4f\x31\xb4\x43\xb6\x53\x27\xa0\xb6\x83\xc3\xb1\xf5\xc2\x78\x8f\x55\x55\xec\xca\xca\x31\xc3\xe9\x6a\xf4\x40\x6d\x2a\x9d\x2c\xa3\xfc\x70\xf1\x6d\x6f\xec\xac\x66\x66\x10\x37\xb4\x79\xeb\x41\xab\xc3\x76\x89\xf5\xa7\x2f\xf2\x3f\xc7\xba\x3a\x8c\x12\x41\x3c\x32\xcc\x01\x1f\xda\xea\x18\xba\xdd\x06\xbb\xc4\x23\xb0\x3c\x0e\x9c\x29\xa5\xcd\xf7\xbd\x27\x7f\x1e\x21\x71\x42\x39\xf3\x1d\xbc\x33\x27\x96\x13\x21\xcc\x98\xf7\xe5\xea\xf4\x71\xf5\xb1\x79\x3d\xcd\x90\xde\x8c\x13\x70\x10\x45\x24\xcd\xe8\x9e\xff\x72\x20\x92\x64\x3c\xb6\x0e\x1b\x71\x7c\xf9\x68\x72\x2d\x0b\x87\x2a\x0a\x5b\x53\x99\x80\xc1\xba\x70\x20\xda\x08\x5b\x28\x75\x9a\xdd\x58\x38\x5f\xeb\xea\xd7\xeb\x16\xa7\x46\x65\x3e\x31\xef\x68\x9f\xc2\x2a\x72\x5d\xca\xf1\xd3\xa1\x60\x33\x97\x5f\x6b\x51\x47\xc5\xcc\x68\x5e\xc6\x86\xbe\x3f\xd5\x28\x86\xe5\x8c\x6a\xac\x7b\xff\x58\x6f\xbf\x5e\x3f\x2d\x7e\x2c\x6e\x77\x3f\xd6\xf7\xd7\x0f\x3f\xc2\x85\x33\x41\x13\x31\x5a\x78\x6f\xaa\x1a\xf2\xfd\x3c\xb7\x10\x06\x9b\x08\x25\x57\x5e\x9c\x1f\xbd\xda\x7e\x5d\x97\x3f\x20\x77\xf0\x51\x3f\x46\x44\x11\xa6\x08\x26\xfc\x59\xbb\xbb\xe7\xdb\xed\xfa\xf1\x76\x1d\x38\x05\x19\x17\x31\x60\x44\xfb\x72\x2c\x4e\x97\xfb\xc1\x18\x17\xa9\x33\x8f\x8f\x98\xf4\xa9\xf3\xb7\x6f\xf0\xf1\x1b\x42\xe2\x4f\x44\x08\xe7\x07\xa6\x31\x1e\xb8\x84\x9f\xed\xd5\xe9\xa3\x3a\xb5\xe7\xda\xb9\x8c\x67\x2c\x4e\xd4\xb8\x3c\x81\x33\xee\xba\x0b\x3c\xc3\x5d\x64\x59\x84\x48\x81\xdb\x6a\x7f\x5f\xb5\xb9\x86\xbb\xe6\x8c\x99\x68\x62\xd4\xb8\x8c\x12\x19\x38\x31\x5b\xa4\x45\xae\x2f\xac\xd7\x5c\x46\xd6\x71\xbb\x40\xd3\x7e\xcd\xdb\x4d\x68\xdf\x1a\x89\xb7\x85\x6b\x90\x99\x63\x13\xc0\xef\x1d\xcc\x44\x49\x6e\xfa\xfe\x74\x24\xc0\x7f\x6c\xbb\x43\xde\x39\x7d\x25\x7c\x6c\xab\x6f\x00\xc7\xd9\xad\xeb\x84\x60\x18\xda\xca\x9f\x2b\x59\x77\xe1\x7f\x33\xb0\xd9\x84\x31\x54\xf1\x28\x90\xf9\xe9\xd7\x51\x20\x31\x4f\x54\x72\xad\x63\xc5\xfa\x98\xc8\x5c\xe0\x1c\x66\xdc\x28\x4b\xba\x99\xb8\xdb\xd9\xaa\x7e\x9f\x1b\xc6\x33\xb0\x86\xdf\x0b\x38\xd5\x69\x00\xa7\xc8\xd2\x75\xa8\x4e\x0e\x2c\x22\xe9\xd6\x1a\xfd\x92\x17\x66\xe5\x34\xa3\x2f\x4e\x0b\x41\x12\x9a\xb8\x2e\xf0\x12\x49\x61\xdd\xfa\xb0\x83\xf6\x65\xf7\x36\x9a\xe3\x82\xa4\x09\x71\x89\xd0\xd7\xb1\xa6\x13\x13\x04\xa2\x48\x05\x19\xa0\x00\x93\x68\xeb\x5c\x07\x4b\x2a\xe2\x28\x43\xf3\x13\xc8\xef\xee\xe4\xab\x5b\x05\xa6\x57\x12\x33\x00\xc7\xf0\xa4\x21\x7f\x3b\x97\x8d\x39\x43\x27\x0e\x8f\x44\xc4\xc2\xd1\x0b\x6d\x5e\xaa\xe3\x11\xea\xe2\xe3\x4b\x51\x29\xcf\x35\xd7\x5f\x86\x71\xcd\xe8\x88\xf3\x0a\x39\xe8\x8b\x98\xb4\x99\x90\x27\x13\x49\xa2\x1c\x71\xfc\x5f\x8b\x70\xb4\x44\x66\x98\xe1\xb8\x5d\x6c\xb6\xdb\xa7\xf5\xe2\x36\xa5\x2c\x6c\x4b\x89\x42\x60\x09\xb6\x1b\x23\xb2\xe5\x53\xe1\x82\xb0\x07\xd5\x98\x21\x0d\xaa\x69\xce\xf1\x9e\xf4\x96\xcd\x2e\x29\x15\x1a\xe1\x1d\xb2\x9b\x36\x77\xeb\xdb\x66\x7b\x66\x80\xc3\x48\x1d\x93\x2c\x50\x3d\x1c\xab\xba\x75\x62\x5b\x79\x65\xc2\x82\xb2\x2e\xbd\xfb\x1b\x6e\x80\x26\x04\x49\xb3\x7c\xa1\x36\x54\xbc\x6f\xab\x7d\xae\xfb\x31\x96\x21\xc3\xd2\xf5\xea\x76\xbb\xd8\x4d\x9e\x34\x8b\x0c\xe2\x08\xbf\x6c\xaf\xef\xa7\x1b\x48\x82\x05\xab\x27\xd0\x39\xbc\x81\xd9\x0e\xc4\x58\xb3\x8b\x66\x24\xc5\x36\x93\xbc\x59\xb4\xb7\x20\x9b\xf6\x8f\xc1\xd2\x9f\x3d\x3d\xa6\x68\x3a\xc4\x3c\x8b\x7d\x0d\x48\x15\x37\x9b\x5f\xdc\xc6\x98\xf1\x80\x43\xde\xfe\x6e\x72\xf9\x5d\x04\x75\xd1\x49\xcf\xad\x30\x2c\x8c\x22\x23\x0e\xae\x8d\x8b\xaa\x03\x89\x85\x4d\x32\xd6\xd4\x87\x40\xf7\xf0\xee\xca\x68\xd3\x03\x4b\xe1\xa4\x45\xf7\xc8\x38\xd9\x9c\x8a\xcb\xed\x87\x4c\x48\x15\x23\xfc\x03\xba\x40\x60\x9a\xcf\x10\x8a\xba\x1e\xe9\xb7\xaa\x85\xe6\x4e\x36\xaf\x57\x1f\x0f\xa1\xc5\x67\x36\x54\xc7\x4e\x09\x7a\x75\x7f\xbd\x7b\xb8\xd9\xdd\xad\xef\xb7\xbb\xeb\x9e\x1d\x85\x09\x43\x12\x07\x74\x0a\x50\x23\x47\x1f\xea\xbb\xf2\x3a\xbf\xf0\x31\xff\x09\xc5\x85\x15\x43\x98\x24\x8b\xbc\x49\x44\xdf\x71\x6d\xce\x48\x86\xfc\x48\x4b\xb9\xef\xe2\x3f\x54\x6f\x70\x53\x57\x07\x9f\xed\xb8\x1d\xb5\x1d\x87\xb1\x5c\xa0\xcd\xd8\xac\x7e\x43\x4b\xcb\x84\xcd\x48\x34\xc0\x17\x1e\xab\xe6\x1c\x2c\xf9\xbb\x15\xf3\x7f\xf9\xb7\x3f\xb1\x63\x25\x08\x60\xa5\x6b\x78\x9b\xcb\x5e\xb3\x2c\x32\x2e\xca\xfe\x1b\xf5\xfe\x21\xd3\xf3\x77\x43\xb1\xc9\x33\xcb\x62\x15\x23\xfc\x08\x35\x06\xb7\x43\x41\x3b\x8b\x21\x41\x0e\x09\x03\x9d\xef\x6b\x56\x3f\x8f\xf9\xc4\x93\xcc\x62\x70\xda\x3b\xe8\x43\x47\x3b\x28\x9b\x53\x1d\x88\xa0\x3f\x82\x9c\x5e\xb0\x0e\x59\x12\x71\x24\x9e\xef\x13\x17\x33\x5e\xbd\xd9\x65\x25\x91\xa2\xbd\xce\x63\x3f\x41\x9b\x29\xb3\x1b\xcb\x92\x2c\x4a\x7d\x73\x0c\x72\x15\x4f\xa2\xfa\xc9\x94\xcb\xa8\x31\x58\x9c\xbc\xc9\x4b\xf3\x67\xd8\x9f\x5a\x49\xc5\xc8\x1b\x1e\x9c\x86\xfe\x14\x2c\xd1\x49\x00\x24\x0f\xcc\x63\xe3\x80\x67\xe4\x8e\x64\x3c\x33\xe8\xb5\x38\xb9\x8d\xce\xa0\x34\xcb\xa2\x1a\x8a\x57\x99\x20\x9c\x79\xff\xdb\x01\x96\x1b\x2c\x14\xcc\xa6\x7d\x26\x62\x57\xf7\x29\x64\xe3\xa0\x6c\x3b\x49\x48\x7f\x0c\xab\xd2\x74\x14\xe5\x8e\xe4\xd9\x59\x96\x45\x09\x96\x7f\x7c\x97\x69\x33\xa7\x81\x9c\x9e\x27\x63\x16\x19\x0c\xb6\xd7\x2b\x07\x95\x79\x9a\xca\x2b\xb3\x2c\xe3\x16\x31\x79\xc7\xaa\x0d\x89\xab\xb0\x45\x3b\x78\x22\x6a\xdc\xa2\x99\x1b\x15\x69\x2f\x9f\x4e\x72\xc7\x80\x9a\x37\xd8\xd7\xa7\x65\x33\x9f\xfa\x52\x3a\xfe\xcb\xfe\xf9\x6c\x4e\xca\x73\xf5\xdc\x60\xc4\x74\x38\x42\x9b\xcf\x33\x17\x33\x54\x5c\xa6\xac\xc0\xc5\xf4\xcb\x5f\xdb\x8b\xf0\x91\xf3\x9a\x6a\xa6\xa9\x65\x9e\xdc\x68\x28\xfe\x64\x5a\x66\xe8\xe9\xec\x1a\x68\x9f\xaa\x02\x50\x5e\x19\xaf\xe6\x93\x7a\x62\x66\x98\xa3\x64\x6d\xa0\x5d\x35\x6d\x7e\x90\x2d\x18\x97\x8a\x9a\xda\xc0\x0c\xa4\xc5\x20\x2d\x6f\x1e\x65\x6e\x1e\x4e\xf3\xed\x96\x33\xb4\x14\x5d\x54\xff\x50\xc2\x75\xfe\xd6\xe0\x1c\x0d\x97\x66\x65\xc0\xe9\x63\xf5\xc3\x91\x64\x36\xe3\x28\x4d\x46\x29\xc1\xa4\x03\xfc\xd4\x70\xfc\x3c\x0f\x2b\x23\xe6\xea\xf0\x79\xb3\xad\x65\xf7\x22\x91\x46\xd6\x6f\x8c\x53\x05\x51\x28\x73\xb9\x1e\xa6\xa5\x2c\x8a\x6d\x7e\x80\xa6\x95\x87\xe3\xf4\x05\xca\x24\x22\xc8\xbb\xe5\x23\xb5\xc1\x60\xc8\xc4\xa6\xa8\x4b\xaa\x1d\x7f\xc2\xdd\x87\xd7\x2c\xf2\x9b\xd3\x4c\x71\xd9\xd7\xe1\x5f\xc1\x2d\x8f\x9d\xa3\x3a\xa3\x93\x67\x32\x05\x8e\xb7\xfe\x05\x5a\xe7\xb3\x8d\x9c\x65\x3f\x84\x11\x8b\xfe\xee\xae\xad\x65\x5e\x76\x1e\x77\xfc\xff\x4a\x71\x10\x8e\x1c\x47\xd8\x55\x6b\x7c\x49\x16\x69\xd8\xaf\x46\xe2\x4b\x97\xfd\x02\xc9\x4c\x06\xe3\x46\xaf\x59\x07\xd6\x6c\x34\x8f\x18\xc2\xcd\x02\x29\x28\x06\xcc\xe1\x23\x97\x9c\x32\xb4\xbd\x9d\x77\xd1\x5b\xac\x49\xf6\x5a\x76\x21\x6d\x3a\xc6\x19\xa3\x95\xf0\xf0\x88\x30\x46\x45\x88\x58\x9f\x85\x57\xd3\x87\x2d\x22\x6e\x82\xf0\xc4\x1b\x34\xed\x5c\xc0\x67\x76\xe1\x42\x3a\xf1\x69\x3d\x7c\xa9\x53\x34\x8a\xcc\x92\x0c\x83\xf5\xbf\x9e\xef\xff\x5c\xdf\x27\x7f\xf3\x03\x95\x99\x64\x42\x8d\x25\xcc\x03\xad\x9b\xdf\x2e\x13\x81\xbd\xfd\x37\x55\x75\x39\x6f\x2c\x25\xe7\x28\xfc\xfb\xdc\xc0\x6e\x15\x78\x0f\x96\x95\x99\x79\x27\x52\x72\x8d\x6f\xca\xb7\x38\xcd\x16\x1d\xa9\x52\x07\xe6\x71\x9a\x13\x3e\x3e\xf9\x3c\x0a\xfb\xf5\x6c\x52\x36\xc2\xbe\xf8\x7d\x6e\xb1\xcb\xff\xf2\x7a\x28\x35\x01\x84\x09\x2d\x50\x63\xb5\x79\xac\xab\x6a\x86\x48\x92\x26\xce\x70\xa1\xc2\xae\xe5\x5f\x43\x6e\x3d\x0c\xae\x5f\xb6\xa4\x49\x09\x36\x99\xfe\x29\x4b\x53\xcb\x09\x68\x52\x1a\x16\x39\x78\x9f\x31\x35\xe9\x7f\xcc\x2c\x52\xf1\x0c\x5c\x2a\x9b\xe7\xc7\xc7\xdb\xbf\xc2\x76\x10\x19\x66\xa6\x5d\x99\xf0\xb9\x81\xfa\x2a\x6f\x6f\x0a\x79\x99\x8e\x98\x49\x9b\x58\x44\xb4\x3c\xd6\xd0\xed\xf0\x73\x9b\xef\x65\x38\x96\x4d\x0d\x4e\xf6\x85\x2c\x9b\x97\xd3\x38\x36\x90\xd6\x30\xe4\xc6\x7e\xa9\xde\xef\x4e\x28\xa3\xba\xee\x2b\x72\x30\x14\x3d\xa5\x05\x40\x92\xd5\xcd\x3f\x9f\xd7\x4f\x4f\xab\xdb\xdd\xd5\xc3\x43\x5f\x29\x54\x51\xe4\xb2\xc6\x5f\x51\xbd\xbb\x8c\x7e\xfe\xca\x75\x54\x51\x3a\xa3\x99\x1b\x1c\x5c\x11\x86\x64\x09\x4a\x4b\xe8\x1a\x4c\xde\x5e\xcb\x6a\xfa\x05\x28\x42\x13\x6c\xbe\x30\x50\x40\x0b\x17\xdb\x76\x99\x22\xc6\xd1\xb7\x7d\xbd\xee\x2f\x34\xd6\x14\x7f\x32\xd5\xe6\xa4\x35\x40\x67\xaa\xfb\x3a\x9d\x1f\x93\x44\x12\xf4\xc5\x55\xb9\xe8\x5c\xe6\xf1\xfa\xa0\x92\xc8\x31\xd5\x1f\x72\x8f\x9b\xba\xa9\xea\x11\x8e\x5c\x25\xb1\x91\xa1\x56\x8c\x11\xc9\x70\x9a\x34\x03\x4c\xa5\x2f\x4e\xba\x3d\x0d\x65\xf5\xcb\x09\x2a\x95\x1a\x1e\x3a\x84\xbf\x42\x5d\x9d\xf3\x9f\x60\x34\xe6\x18\x2d\x5c\x45\xff\x1d\x33\x8e\x93\xc4\xb3\xa2\x54\x60\x9d\xf4\x15\x1b\x31\x67\xdb\x4c\x84\xc1\xc8\xae\x86\x63\x21\x35\x38\xe0\xfe\x4c\x5b\xdf\x8f\x65\x31\xc7\xd0\x0f\xb1\x6c\x1f\xab\xc3\x98\xd7\x72\xf2\xaa\x59\x0c\x48\x92\xf2\x5f\xd0\x8e\x52\xb5\x8a\x25\xc6\x25\x7d\xba\xa9\x78\x7b\x8e\x1d\x54\x2c\x4d\x11\xa1\xe4\x00\x15\x4f\xf2\x75\x66\x61\x14\xd3\x2e\x25\x64\xbd\x93\xe6\x2c\xaa\xeb\xb4\xdf\x14\xb2\xf7\xb1\x14\x33\x0a\x79\x7a\x16\xa7\xa6\xad\x65\x91\xcb\xb7\xe6\x11\xea\x53\xd8\xcc\x69\x82\x36\xb1\x0c\xe2\xd2\xd7\x93\x86\x57\xa6\x38\x73\xe2\xaa\xe5\xe9\x70\x23\xd5\x28\xc1\xa2\x44\x62\x30\x89\x9d\x97\xb6\xda\x6d\x3e\x0e\xaa\x6f\x2a\x54\x82\x39\x44\x0e\xae\x39\xd7\xd5\x7e\x59\xd5\xfd\x05\x09\x4d\x82\x9a\xb7\x2f\x37\x6d\x17\x0f\x1b\x68\xdb\x5e\x07\x36\x78\x02\x4a\x68\x1e\x8f\x69\xb7\x7e\x99\xcd\x50\x02\x8c\x9d\x10\xa9\x9e\x49\xbf\x30\x95\x49\x81\xee\x63\x1b\x9a\xe0\xfb\xbb\xc9\x20\x0b\x89\xf7\xab\x1a\x5e\xaa\xa1\x74\x38\xbd\x26\x95\x1a\x64\x03\x5e\x2f\x1f\x52\xcf\xfb\x1f\xb6\x64\x2a\xf5\x48\xcb\xc5\xf1\x88\xab\xc2\xf4\xa5\xea\x48\xf7\x74\x99\x77\x63\x66\x2c\xa6\xb4\xb6\x19\x19\x40\xa8\x97\x72\x8a\xca\x10\x11\x8f\x94\x2b\x26\x36\x56\x99\x2c\x46\x25\x87\x63\x21\x5b\x5b\xd5\x87\x5b\x79\x2a\xf5\xcb\x08\x84\xa8\x8c\x72\xcb\x79\xde\xdc\x79\x62\x18\x5c\xcf\x47\x15\x45\x65\x74\x2a\xfb\x02\xc8\x6d\x55\x9d\x87\xb4\xff\x8f\x7f\xdd\x79\x34\x21\x4a\x26\x3d\x50\x06\x3a\x5f\xee\xa6\xf3\x6f\xe3\x6b\x90\x3d\x92\x50\x93\x2c\x42\x3b\xd4\x13\x95\x0e\xfd\x72\x17\x97\x00\x1d\x13\x81\x54\xff\x8f\x5d\x64\xf0\xbb\x00\x5e\xc7\x89\xf3\xf0\xc3\xe4\xba\xce\x6b\xd0\x9f\xb4\xb4\xea\x98\xd9\xc0\x93\xed\x82\x8a\x0b\x06\x48\xc7\x5e\xb8\xbd\xdd\xbd\x8f\x08\x79\x98\x8e\x35\xc1\x42\xed\xf7\xd5\x66\xbb\xbe\xff\x82\x38\x84\xdd\xf2\x76\x7d\x13\xba\x73\x75\x22\x54\x0c\x9e\x2c\x37\x2f\xf7\x5f\x6a\x59\xfe\x3d\x66\x47\xa6\x13\x48\x88\x67\x31\x6e\xe7\x5e\xcb\x6c\x68\x9a\x24\x99\xed\x67\xc0\x55\x9d\x9b\xfd\xbc\x34\xa7\x53\x26\x75\x3c\x6e\x41\x3c\x3b\xe6\xf4\x55\xa6\x99\x8e\xe5\xa8\x57\xed\x06\xe0\x2e\xac\x05\xfd\x31\x95\x6b\x7c\xf8\x51\xcb\xe3\x11\xea\xdb\x11\x36\xf8\x93\x3e\x8f\xd9\x39\x20\xc2\xc6\xd1\x9d\x1a\x53\xc5\x32\x4d\x09\xc8\x78\x60\x93\xf5\x1a\x8d\xde\xdf\x9f\xde\x3a\x35\x16\xfb\x63\x1f\x97\xc3\x43\x67\x82\x7d\x12\x7d\x16\xfd\x10\xc9\x70\x99\xfd\x01\x57\xa7\x8f\x45\xf9\xf1\xb5\x3a\x35\xfd\xe9\x39\x73\x92\x21\xce\x88\x0f\x74\x3f\x4c\x73\x50\xe8\x92\xed\x3c\xa0\xf1\x57\xee\xae\xe6\x36\x65\x43\x4b\xc9\x44\x72\xdc\x8f\x10\xb1\x04\xea\x3b\xa1\xbc\xcf\x8f\xcb\x2c\x12\xa6\xcc\x6e\x54\x08\x8b\xbd\xdf\xdd\x74\x58\xcc\xdb\x7a\xb4\xd0\x89\x83\xe4\xcb\x9f\x8f\x55\xd3\xe4\x53\x58\x74\x18\x04\x24\x86\xfe\x82\x2e\xd1\x3c\x74\x63\x24\x72\x67\x7f\x7b\x5a\x05\x6c\x97\x96\x34\x76\x7c\xe3\xdd\xa7\x4c\xc4\xec\xc2\x24\x8b\x13\xf7\xb4\x7c\xa5\x6f\x7a\x40\xc9\x09\x1a\xcf\xf5\xfd\x7a\xbb\x5e\xdc\x22\x49\xf5\xee\x6a\x71\xbb\xb8\x5f\xae\xfa\x13\x08\xc3\xe9\x98\xcd\xc0\x4d\x33\x24\x66\x1d\xc9\x41\x85\xd1\x3a\xc6\xa8\xb3\x80\x76\xdd\x3e\x05\x34\xa0\x98\x3d\x7d\xc5\x98\x4b\x9a\xb6\x5e\x67\x7c\x8a\xed\xd6\x4a\x3a\x72\xc5\x6e\xfb\x78\xbd\xd0\xda\x48\x14\x3b\x2b\x64\xd3\xee\xea\xaa\xe8\x1f\x9f\xb6\x09\x66\x26\xb7\xd5\xb1\x9d\xd6\x02\xb4\x89\x19\xba\x18\xd7\xf9\x3e\x47\x2f\x25\x6c\x80\x08\xd8\xa0\x15\x7d\x07\xad\x34\xb2\x95\x17\x14\xca\x99\x86\xc4\x62\x74\x6c\x50\x41\xff\x5d\x1e\x27\x67\x80\x54\xe1\x9a\xec\xab\x19\x68\x2d\x6f\xea\xea\x70\x53\xd5\xb0\xaf\xbb\xf5\xfd\x37\x22\x86\xb3\x4f\x0f\x58\x82\x19\xe3\x1f\xf2\x0d\x5b\xbb\x83\x35\x78\xf2\x49\xb8\x8f\xfe\xc4\x32\x45\x0e\x16\xbf\x7b\xc8\x1d\x05\x77\x5f\x5b\x9b\xa1\xed\xd1\xb2\xd0\x5f\xe4\x9b\xff\xd9\x44\xd2\x20\x89\x98\xad\x01\xb6\xd5\xea\x67\x5b\xcb\xe9\x0b\x30\x91\xd2\xc8\xa2\xd9\xd7\x28\x6c\x5e\x80\xf3\xb8\xc6\xcf\xc5\x90\x04\x02\xaa\xe6\x4e\xfe\x0c\x8d\xe5\x57\xe7\xad\xee\x86\x68\xc1\x3c\x1b\xc8\x5d\xb3\x9f\x1d\xc5\xa4\xd2\xd7\xed\x56\x81\xe4\xb6\xc7\x76\x4c\x0f\x13\xb3\x94\x79\xa4\xfc\xd5\x28\x0b\x35\x7d\x80\x26\xe6\x04\x2b\x0a\xdb\x17\xb8\xbb\x7b\x78\x7a\xfc\x32\x7e\x5d\x26\x06\x4d\x5c\xdd\xd3\xf5\xa9\x9e\xa9\x51\x32\x93\x64\x19\x08\xcf\x22\x9f\x97\xfb\x27\xf8\x9f\x53\x5e\xc3\xa8\x7d\xc6\x24\x40\x91\xab\x6f\xb7\xf7\xa5\xed\x27\xd4\x42\x18\x33\x6f\x33\x93\x46\x91\x24\x03\xae\x7f\x26\xfa\xd6\x0f\x72\xb7\xd4\x4d\xcd\x49\x71\x73\x36\x39\xfe\x31\xdb\x2d\x65\x08\x36\x7e\x7c\x5a\x2f\x57\xbb\x00\xa6\x33\x54\xa4\xd8\xc4\xa0\x1d\x5b\x6d\xb3\xc1\xd6\x95\x7e\x6b\xc6\xb9\x87\x45\x22\xc6\xde\x21\xfd\xce\xa4\xe3\x99\xa1\x96\x22\xdc\x74\xe7\xfc\xaa\x31\x4e\x71\x76\xf9\x4c\x4b\x44\xc1\xe6\x37\x01\x92\x6a\x78\x22\x8d\xb7\xf1\x0e\xb2\x94\x43\x7d\xad\xfa\xad\x4a\x53\xec\x16\x2e\x9c\x2b\x0a\xbf\x32\xd4\x86\xeb\x08\x81\x0f\xcb\x97\xaa\x6a\x60\xf1\x0e\xb2\x3f\x8e\x8e\xf5\xb8\x05\x0c\x19\x7f\x2e\xf4\xee\x1b\x21\x00\x99\x4a\x8a\x61\x0a\x88\x4c\x11\xdb\x87\x41\x38\x5f\xc7\xd0\x93\x30\x2c\x8b\x98\xe6\x81\x70\x18\x5b\x2a\x3e\x85\xb7\x9b\x8c\x66\x49\x3c\x26\x06\x1b\xb7\x70\x0e\x6f\x20\x53\x8e\x9f\xf6\x2d\x87\xf7\x45\x51\xf8\xe7\xa3\x65\x3b\x33\xf6\x26\xd3\x11\x38\x5a\x17\xe4\x43\x7a\x02\xcc\xf0\xcd\x06\x49\xce\x83\xf7\x7b\x05\x6d\x73\x7f\x3a\x7c\xf6\x1c\x65\x96\x04\x41\xbf\x6d\xd5\x45\x69\x8d\x53\x82\xbf\x1c\xf9\x19\x69\x9d\x22\xe9\xd1\xe5\x52\x7e\x40\xfe\xf0\x0e\xf3\x8f\x51\xda\x0c\xc9\xd1\xb7\x5f\x17\x3f\x76\xcb\xbf\x96\xb7\xab\xdd\xed\xea\xfe\xcb\xf6\x6b\xb8\x59\x95\xb8\xe0\xe0\x1d\xf2\x9b\xaa\x3e\x57\x09\x67\x46\xe9\x28\x72\x8a\xf0\xcb\x97\xbc\xb8\x2c\x89\xc3\x8c\x36\xb1\xf5\xee\xff\xee\x76\xf5\x7d\x75\xbb\x0b\xe8\x41\x63\x94\x53\xc6\x6d\xa0\xfd\x3e\x74\xed\x7c\xf2\xcd\x18\xe8\x7d\x97\xb5\xae\x02\x8e\x6c\xc4\x50\x17\xc6\xd9\x34\x72\x4d\x6b\x48\x1c\x63\xa6\xe6\x0a\x32\x57\x64\x5d\xd4\x79\x29\x77\x72\xec\x75\x19\xc8\x58\x50\x59\x1f\x6a\xf5\x3e\xbf\x60\x2c\xb0\x38\xf0\xbd\xcb\x78\xfa\x2a\x81\x64\xce\x94\x5e\x87\x3a\xea\x6f\x53\x6b\x40\x74\x1a\x19\xdf\x35\x71\x03\x70\x7f\x3a\x38\xb6\x36\x7f\x31\x10\x73\x87\xac\xbc\x3d\x4d\xda\x5c\x20\x06\x89\x2e\x73\x17\xf9\x7f\xa2\x11\x32\x7d\x70\x90\x78\xcd\x8d\xc7\xba\x6a\x91\x43\xf7\xb7\x4c\x3c\x93\xf8\x0d\x12\x63\x33\xdf\x33\x33\x4a\x30\x4f\xcf\x91\x46\x12\x3f\x20\xe9\x32\xc2\xab\xf6\x65\x55\xfe\x2d\x90\x04\xa4\xb1\x23\xbe\xbc\xad\xf6\x0b\x14\x0f\x0f\x70\xbf\xcf\x6a\x83\xe3\x83\x8e\x05\x62\x18\xa4\x69\x46\xd3\xe9\x52\xf4\x84\x80\xf9\xe9\xcb\x4a\xb3\x18\x01\x61\xfe\x5a\x9b\x89\xc0\x0f\x83\x54\xb9\x9c\x27\xf6\x9e\xbc\xe5\xcd\xf0\x4a\x52\xa5\xd1\xf0\x1c\xe5\x47\x9f\x99\x84\x14\x22\x2c\xe6\x6d\xa1\x69\x57\xdb\xaf\x93\x77\x45\xe3\x04\x31\x2d\x0f\x47\x28\x1d\x07\x3f\x6a\x60\x5f\xb0\x73\x40\x63\xad\x3c\x3a\xe3\x0e\xbb\x3f\x3b\x7f\x75\x5d\xf6\x1e\x32\x50\xc6\x81\x8e\xe9\x02\xe4\xfc\x08\xda\xc6\x81\x60\xbd\x7b\x54\x8b\xba\x96\x1f\x73\xe9\xda\x60\xf1\x80\x02\xc1\xe4\x9f\x45\xaa\xfe\x5c\x9e\xc9\xac\x30\x60\x91\xc4\xe4\x26\x5e\x6e\x78\xa0\x37\x32\x2f\x3e\xab\xf7\x01\x8b\x5d\x0d\xd5\x2b\xac\x3a\xc9\x05\x18\xfc\xcc\x7f\x5c\xfa\xd7\xf4\x2e\x78\x4c\x90\x0d\x6d\x87\x21\x8a\xbd\xe0\x8d\x00\x17\x99\xab\x81\xbf\x80\x7e\x75\x1d\xe7\x03\x8e\x14\xb8\xd2\xb8\x7e\x1d\x4f\xed\x73\xd3\xb9\x08\xbd\xcc\x6b\x18\x60\xdd\xba\x80\x41\xe9\x38\x35\x07\x22\x01\x14\x72\xac\x65\x69\x64\xd5\xff\x4a\x33\xec\xd4\x41\x50\xd4\x28\xd8\xb8\x94\x71\x00\xa1\x12\xf4\xce\x1e\xa5\x2a\xaa\xc7\xe2\xd4\x4c\xe6\x83\x00\x8b\x9a\x0d\x88\x71\xbd\xaf\x5a\x59\xe7\xa3\x16\xfc\xb3\x46\x69\x10\x96\x62\x04\xb0\xd3\x75\xf5\x5e\x9e\x37\xd7\x43\xc6\x19\x41\x5d\xa1\x53\x51\xe8\x7a\xea\xd9\x42\x26\x01\x9b\x31\x1e\x96\xdb\xe5\xc3\xfa\xbe\xff\xd9\x10\xeb\x3a\x1f\x6e\xe7\xa2\xe7\x0c\x32\xd0\x02\xb1\x17\xff\x73\xca\x8f\xdd\xe2\x31\x26\x3d\xbd\xf4\x02\xfd\x7e\xd2\x12\xed\x2b\x10\xbe\x56\xe7\x4b\xac\x7e\xbb\xa2\x12\x71\x60\x57\x72\x3f\xfc\xa6\x92\xc8\x2d\x92\x7d\xe2\x31\x84\x71\x9f\xae\xd4\xa0\x0c\xc5\x94\xce\x66\xfb\xb4\x58\x4c\x6e\xd7\x08\x86\xd9\x89\x03\x74\x5e\x5c\xf3\x92\x1f\x2f\xd5\xb1\x00\x54\x82\x79\x42\xec\x7f\x5d\xb8\x42\xef\xc4\xf1\x03\x9b\xc5\x59\xf0\x76\xbb\x29\xfc\xe4\x16\x71\x24\x05\xf6\xff\x9e\x37\x97\x59\x12\x65\xf8\xdc\xbe\x5c\x2f\xdd\xc1\x82\x4f\x67\x09\xcd\x70\xed\x76\x59\x79\x64\x60\x5e\xcc\x8a\x24\x96\x64\xdc\x3f\x89\xff\x46\x03\x7d\x55\x55\x9d\xe7\x6a\xf5\xfc\x2c\x26\xf6\x22\xd7\xae\x0c\xb6\xc1\x66\x10\x4f\x6e\x32\x9e\xca\x96\x18\x83\x35\xe6\xdc\x56\x95\xb9\x86\x10\x3d\xd8\x58\xb9\x2c\x78\x7f\x9d\x71\xbf\x05\x14\xb6\x06\x1d\x5d\x60\xef\xb2\xc1\xcd\xb6\xba\xcb\x87\xa3\xc6\x56\x0b\xd7\x75\x78\x2c\xaa\x8f\xb5\x01\x39\x7b\xba\x36\xc9\x32\xc9\xa7\x20\xb3\x75\xf9\x56\x9d\xb1\x9d\x7b\x93\x6d\xd3\x24\x41\x8f\xb7\x75\x35\xd0\x9b\x40\x52\xcb\x6c\xca\x52\x90\x43\xa9\x15\x39\x4e\x7f\xbc\x40\x79\x55\xb5\x2f\x08\xf3\x0e\x5f\xbc\xa5\x51\x8a\x16\xd8\x54\xef\x65\x60\xc8\xf3\x9b\x18\x73\x2a\x4f\x35\xe2\xa9\x46\x00\x1e\x84\xf0\x22\xef\x7b\xe0\x77\xbf\xfc\x67\xf2\x75\x58\x06\x04\xfb\xe1\xd1\x0f\x9b\xe6\xdf\x67\xd5\x70\xcb\xb5\x6b\x27\xa8\x3d\x38\x63\x07\x3f\x41\xef\xf2\xfe\xa2\x33\x92\x78\xfe\xfa\xe5\xa9\xbf\xdc\x2c\xb3\x5a\xf5\xb4\x65\x01\xc6\x1b\x2e\xa5\x2f\x1d\x59\x99\x72\x74\xcd\x9a\x63\x31\x27\x63\xb1\x32\x73\xe8\x02\xd4\x60\x7a\x92\x97\x70\x08\xd3\x6f\xd7\x4a\x63\x47\xb0\x6f\xfc\xe0\x2f\xd3\x58\xcd\xf7\x0f\xac\xc7\xcc\xaa\x94\x61\xc7\xd6\xf2\xe1\xe1\x11\xd5\x9c\x76\x4f\xab\x1f\x8b\xa7\xc0\xaf\x67\x95\x90\x89\xcf\x60\x3f\xe6\x6f\x17\x64\x2f\xa6\x57\xa4\x4c\xe4\xb8\xd9\xa4\x2d\xaa\xd7\x33\xf9\xf5\x8b\x28\x1f\xab\x8c\xc6\x14\xe9\x19\xc9\xd3\xec\x23\x52\x36\xc5\x4f\xd5\x31\x3c\xfd\xbc\xec\x43\x5b\x9d\x50\xac\x7b\x5c\x9d\xca\xff\x54\x85\x1c\x5b\x1a\xab\x99\x91\x3e\xf1\xfd\x7c\x2c\xf2\xb2\x9f\xb3\x5a\xc5\x99\xc3\x21\x14\xd6\xd1\xe0\x84\x2d\x36\x4e\x10\x40\x7a\xc2\x86\x48\x4c\x20\xc1\xfb\xec\xcd\x59\xea\x08\xef\x77\x79\xb3\xd1\x2f\x70\x80\x90\x32\xf8\x44\x6d\x92\x59\x2b\x1c\x4f\xad\x0e\xed\xbf\x63\x5a\x73\x66\x6d\x46\x84\x87\x57\xdc\xc3\xcf\xf6\x5b\x8e\xfa\xb7\x58\x3b\x77\x43\x78\x14\x31\xc1\x7a\x4e\xbd\x2b\x84\xc9\x06\x95\x59\x11\x86\x68\x45\xa2\x50\x7b\xcb\x4b\x07\x56\xc1\x54\x4a\x38\x08\x49\x2d\x82\x3a\x4d\xd5\x6d\x72\x79\xde\xf3\x44\x0c\x8f\x08\x33\x30\xe6\x06\xde\xb5\xd5\xae\x76\xf8\x96\x5f\xfb\xb0\x3c\x22\x99\x4a\x78\x0f\xc5\x6f\xeb\xaa\x28\xa0\xfe\x55\x93\x39\x8f\x88\x74\x12\x79\x23\xa8\x9c\x6b\x92\xeb\x8c\xcc\x27\x67\x01\x47\x84\xb4\xad\x4f\x4d\x5b\x40\xd3\x8c\x24\xe0\x77\x73\x51\xe5\xd9\xbe\x71\x14\x05\x75\x05\x5f\xb6\x43\x26\x80\xf1\x60\xd2\x8f\x55\x14\x41\x73\xdd\x04\xde\x86\xec\x1e\xce\x66\xe2\x47\x24\x54\x61\xf1\x6e\xf3\x63\xfd\x7f\x57\x4f\x9b\xb6\xf3\x48\x6a\xf3\xf7\x62\x0b\x1e\xa5\xcc\xf5\xdc\x74\xce\x02\xda\xbd\x43\xf5\x36\x53\x35\xe3\x51\xaa\x32\x8c\xac\x17\x9b\x3f\xcf\x18\x64\x26\x47\xa3\x2c\x76\xa0\x99\xb2\x81\x01\x20\x39\xf3\x28\x79\x44\x3d\xf5\x60\xf7\x55\x34\x50\xaf\x2f\x4f\x5a\x1e\x31\x93\x61\x10\x8d\xf2\x05\x9b\x30\x87\xb8\x70\x29\x54\x34\xad\xb7\x13\x1c\x34\x36\x10\x4c\xff\xcf\xef\x94\x45\x04\xfd\x23\x9f\x76\xaa\x36\x3d\x53\x79\x98\xbc\x19\xc9\xa4\xc3\x2a\xb7\xf5\xa9\x74\x42\x81\x61\x93\xe1\x0e\x17\x0b\x6f\x48\x80\x87\xb1\x80\xab\x2e\xe7\xe5\x7e\xfc\x25\xf1\x48\xc6\x92\xb0\x90\xa8\x9d\x49\x04\xf3\x48\x8a\x34\x73\x62\xae\x45\x25\x91\xe6\xf9\x8f\xf9\xc3\x51\x8c\x50\xd7\x0c\x78\x42\x97\xb4\x6c\xbb\x61\xeb\xc7\x9b\x0d\xf2\x97\x84\x51\x3a\x76\xa9\x68\xf9\x0a\x28\x5f\x71\x46\xad\x42\x07\x8f\x48\xfc\xfb\x1f\xbf\xd7\xd5\xe5\x91\x96\x1c\xd1\x54\xd5\x71\x1c\x5f\xf2\xc8\xc4\x56\x38\x68\xcc\xa9\x69\xc1\x4c\xef\xd7\x24\x04\x09\xae\x97\x55\xd9\x2d\x99\xd2\x43\x0c\xa7\x0c\x7e\x3c\x82\xc8\x38\x16\x38\x63\xae\xb1\x0e\x73\x0e\x69\xe5\x11\x30\x1e\x7b\x58\xf3\x03\x02\xa2\xc6\x8c\x2d\xff\x4a\x86\x1b\x4a\xc2\xc3\x82\x2c\xe3\xde\x6e\xb5\xe5\xbc\x28\xc8\x23\xcb\x7a\x58\xfd\x63\x5d\x75\x1e\xd3\xa2\x56\xb9\xef\x7a\xbd\x81\xa1\xdf\x3e\x8c\xd7\xa0\x06\xcc\x76\x77\xf6\x5a\x7e\xc2\x35\xc8\x23\x0b\x02\xdb\xc9\x1c\x44\x79\xe7\x53\x28\xd3\x17\x4e\x22\x11\x85\x05\xe0\xee\xe3\xb6\x52\x03\xdf\x06\x27\x91\xd4\xe8\x8d\x9c\xca\x62\x5c\xb5\xf9\xcc\xa3\xe5\x24\x32\x40\x52\x27\x5f\xeb\x20\x26\xe1\x77\x30\x19\x1d\xd5\x89\xae\x86\xf4\x37\x27\x44\x25\x84\x0c\xec\xb8\xee\x0b\x1f\x88\xde\x2f\x65\xfb\x38\x89\x89\x70\xbc\x37\x75\x8e\xc5\x7a\x28\xc2\xe1\x62\x01\x98\x31\xea\x96\xa7\x2f\x75\xf5\x7e\x16\x0d\x72\x92\x50\x81\xe6\xf4\xea\xea\xea\x77\xec\x50\x9c\x24\x82\x60\x72\xc9\x55\xfb\xbf\x7d\xe8\xe9\x2b\x24\x89\xd5\x38\xbf\x74\x75\x38\xca\x36\x57\x05\xc4\x51\x38\x51\x6a\x14\xb2\x1b\x2c\x0c\x06\xdf\x1f\x48\xbd\x7b\xd1\x94\x90\x14\x22\x0c\xc8\xab\xf7\xb2\x09\x97\x3b\x95\xfc\x9d\xef\x60\x1d\x93\x68\xc0\x9e\xf6\x7d\x23\xc8\xd8\xd0\xdf\x2b\xe5\x44\x64\x83\x2c\x86\x33\x0a\x97\x93\x73\x9c\x50\x6f\xcc\xb1\xc5\x25\x10\xa3\xf8\xe0\x70\x76\x31\x17\x8a\xf0\x9c\x50\x4d\x03\x99\xbc\x63\xd3\x71\x83\x2f\x31\xc2\x72\xc2\x12\x8d\xd3\x33\x2f\xf3\x76\xd1\xfe\xfc\x5b\x44\x1b\x9c\x88\x84\x21\x69\xaf\x34\xc6\x7f\x31\x7f\xcc\x07\x68\x04\xcf\xe4\x65\xd3\xca\xb2\xcd\xe5\x84\x35\x7d\x7e\x34\xe5\x80\x25\x81\x76\x6b\x33\x97\xe6\xe8\x86\x64\x59\xef\x56\x60\xb4\x7b\x29\xca\x9d\x1d\x37\xa3\x59\x00\x3d\x7a\x15\x92\x29\x51\x31\x27\x59\x96\x24\x69\xbf\x12\x4d\xc4\xf8\x3e\xf3\x11\x67\xa7\x90\x4e\xe6\xc0\xf5\x89\xce\x32\x4d\x61\x8c\x31\x71\x3c\x7a\x1f\xdd\x0c\x18\x13\xf6\x70\x22\xa3\x94\x9a\x7e\xd9\xd9\xed\xe5\x01\x76\x4d\x9b\xeb\x3f\x26\xef\x55\x46\x0e\x19\x1f\x1e\xd3\xa2\x34\x9d\x07\xd6\x1f\x84\x58\xac\xa9\x40\xad\x09\xa3\x2e\x3a\x5c\x4a\xfd\x32\xcb\x07\xa4\x61\x78\xcc\xb0\xf1\x24\x24\xad\x66\x2f\x50\x5a\x82\xed\x60\xce\xea\x90\xc8\xa7\x45\xdd\x34\x5c\x97\x4e\x1b\xde\x8f\x55\x51\x8c\x0b\xbf\xf3\xf7\xbb\xa7\x38\x8b\x34\x4e\x43\x97\x1e\x27\x2a\x31\x34\x1e\x9a\x42\xf3\x36\xff\x0f\x94\xb3\xbe\xd0\xf1\x9f\x4f\xdb\xde\xfc\xf1\x74\x4a\x91\xf5\x55\x36\xaf\xff\xec\x42\xe9\x0b\x1c\xf4\xff\xb8\x28\xdb\xcd\x09\xa4\x12\xe1\xc2\xd2\x98\x55\xb9\xcf\x4b\xf8\xbc\xb3\x35\xec\xa1\x85\xf1\xdc\x66\xa8\xe0\xb8\xd1\x55\x0d\x67\xf1\xc4\x74\x1f\x0b\x11\xae\xf5\x77\x8b\x3f\x77\x67\x28\x3b\x1e\x47\xa9\x44\x42\x16\xf7\xa4\x83\x3c\x13\x8f\x23\xee\x62\xf8\xee\xcb\xbc\x92\xe5\xb4\xfb\x95\xc7\x51\x26\x30\xab\xf8\xcf\x51\x7d\x96\xc7\x84\xc8\xc0\xbc\x19\x00\xc9\x93\xc9\x18\x13\x25\xb2\x31\xc5\xdd\x7d\x85\x19\x84\x8b\xa5\x33\x1e\x13\x48\x43\x07\xd1\xd5\xe9\x63\x86\xc1\xe2\x71\x0c\x71\x2a\x43\x63\xf3\x7e\x7f\xb6\x3d\x89\xec\x48\xa0\x70\x99\x0f\x7c\xc0\x7e\x40\x1a\x39\x6d\x91\xb7\xea\xa4\x5f\x66\x0d\x9f\xa3\x51\xc4\xc5\x93\x4e\x5a\xf1\x61\xa4\x9c\xc1\xe3\x94\xb9\x72\xfa\x75\xde\xa8\x53\x7d\x01\xc2\xd9\x8f\xd3\x24\x20\xea\x9c\x2e\xdf\xb2\xf3\x1a\xfc\x04\xeb\x3d\xc0\x38\x65\x8e\x0a\xe7\xbf\xa5\x7e\x3d\x56\xed\xa6\xe7\x5c\xe5\x31\xe5\x12\x9b\x29\xbc\x30\x54\xaf\x7e\xd0\xf4\x03\x94\xc0\xca\xef\xae\x7b\x65\xae\x02\x18\x36\xb1\xc4\x75\x8c\xec\xf2\x26\xd8\x20\x24\xd2\x9e\x3d\x0f\xc6\x44\xe4\x9c\x85\x26\x2f\xab\x8b\x54\x8d\x3c\xe6\xc4\xc9\x42\x29\x2c\x42\x3d\x86\x53\x70\xae\x9c\x2c\x56\x5b\xd5\x03\x91\x19\x8f\xb9\xd1\x58\xad\xbe\xba\xea\x7f\x81\x98\x9a\x89\xae\x14\xc2\xce\xd6\x66\x18\x90\x78\x3a\xad\xce\x6d\x94\xba\xc8\xff\x03\xff\x3c\x85\x0f\xfa\x72\x97\xff\xe8\xfa\x00\x5c\xe0\x72\x04\x30\xbb\x62\x40\x65\xf0\x58\x10\x86\xa0\x5c\x79\x32\x79\x3b\x02\x03\x88\xd9\x21\x44\xac\xd0\x01\x56\x95\xba\x93\xaf\xd0\x20\xa9\x4b\x20\x2f\xfd\x4c\x35\x13\x7f\x8f\xa3\xfe\xef\x78\x22\x78\x45\x76\x1e\x67\xb1\x53\xd0\x40\x02\xf6\x27\xd9\xc2\x43\x39\x7e\x58\x8a\x24\xc8\x07\x26\x8d\x99\xa8\x33\xfd\x2a\xbd\xc0\x63\xc5\x65\x94\x0c\x8a\x15\x37\x00\x8f\xc5\xa9\xb9\xce\xbb\xf7\xec\xb8\x25\x26\x25\x25\x1e\x2b\xad\xbc\xea\xbb\xd3\xf1\xf8\x78\x94\xcd\x38\x49\x39\x9a\x90\x4a\x5b\x70\xb0\xb4\x22\x7f\x83\xda\xa5\xd1\x3e\x83\x6f\x4f\x1c\x81\x58\x13\x8a\xc9\xdc\x1e\xbb\x37\x7b\x7b\x43\x66\x98\xc7\x9a\xc5\x28\xe0\x79\xac\xaa\x62\xfc\x7d\x19\x1a\x67\x62\xd2\xcc\x3a\x59\x94\x62\x10\x34\x20\x55\xfd\x5c\x42\x51\xb5\xd9\x94\xb5\x09\xc7\xfe\x93\xb2\x42\x45\xad\xe3\x25\xb2\xd8\xb3\xc7\x9a\x10\x93\x22\xb2\xd5\x57\x28\xd6\xe5\x6c\x59\x99\x18\x9b\x84\x98\x4c\xbb\x62\x5b\x9d\xc3\x39\x3d\x38\x0e\xc0\x1a\x6a\x55\x82\xed\xd9\xc6\x78\x42\x6c\x82\x28\xe8\xca\x4f\xf4\xdd\xff\xfc\x62\xa6\x8f\xef\x3d\x89\xb9\x40\xc0\x5f\x10\xb9\x5f\x76\xce\x67\xe9\xb8\x47\xa7\xa7\x8e\xb3\x34\x0e\x11\x46\x55\x37\xfa\x05\xae\x2e\x90\x73\xf1\x24\x96\xae\x91\x4b\x49\xfd\x7a\x3a\xee\xba\x8f\xdf\x54\xef\x65\x28\x2b\x4e\x1f\x4f\x12\x0b\xf7\x31\x79\x5a\x86\x1e\xb1\xd1\x6d\xb2\x98\x95\xbd\x85\x9f\x83\xe6\x31\x4f\xd2\x14\x98\xed\x71\x9f\x66\x96\xea\xe3\x49\xca\x2d\x5e\xe6\xc0\x14\x7b\x7d\x66\x7e\x12\x46\x04\xa6\xfb\xe1\x4f\xe7\xae\xfc\xf3\x24\x8b\xbc\xfd\x58\x8e\xce\xc3\x74\x66\xd2\x11\x1b\x23\xae\x1d\xcd\xe8\x7b\x27\xe3\xa4\x2d\x4f\x04\x89\x63\xa7\x01\xd1\xae\x4b\xdc\x03\x19\x76\xda\x53\x5d\xae\x7e\xea\x0b\xd2\xd9\xfd\x7e\x00\xe9\x98\x9f\xfa\xd3\xac\xcf\xd4\x67\x48\x04\x73\x90\xb9\xe6\x20\x8b\xa2\xb7\x7b\x89\xb0\x92\x3a\x7d\xef\xa6\x8b\xa6\x37\x6d\x0d\xf2\x30\x7b\x95\x59\xc2\x50\x72\x0e\x7e\xbe\xc8\x53\xd3\xde\x9c\x9a\x79\xf1\xb2\x1b\xe3\x80\xac\x98\x8c\x6a\x6f\xea\xea\x3f\x50\xe2\x84\x9c\x3e\x6e\x1d\x29\x4c\x09\xba\x38\x72\xa2\x4b\xe5\x47\x98\x38\xc5\xa8\xec\x3b\xd4\xb2\x7b\xc0\x41\x8e\xf0\xb3\x3c\xea\x67\x77\x7f\xf9\xf1\x99\x44\xe2\x5a\xd7\x99\xf9\xed\xdc\x46\xfc\xfa\x01\x1a\x4a\x31\x31\xb9\x7b\x41\x70\xf6\xb2\xaa\x8a\xeb\x39\x45\x3c\x4f\x4c\x67\x1a\xff\xcf\xff\xef\xff\x3c\xae\x9e\xd6\x0f\xd7\xbb\xc5\xcd\x76\xf5\x84\x1e\xd0\xfd\xc3\x76\xb7\x7d\x5a\xdc\x6f\x6e\x56\x4f\x8b\xab\xdb\xd5\x6e\x7d\xbf\xdb\xac\x96\xe1\x3d\x18\x90\x68\xfe\x5b\x24\x5c\xf6\x3f\x5a\x96\x62\xa1\x66\x77\x74\x76\xe8\x3a\xdf\x43\xd3\xf6\x5b\xb9\xb4\x5e\xd1\xb8\xbd\xbf\xd9\x36\x5e\x7c\x7d\x54\x69\xfa\x8c\x69\x83\xa7\x51\xe4\xc4\xdd\xbc\x9c\xc3\x7f\x49\xfd\xfa\x58\x85\x23\xa7\x11\x75\xbd\x78\xda\x21\xa5\xa5\xe9\x37\x08\xa7\x5c\xb2\x87\x16\x59\x7b\xc7\xb7\x9e\x46\x32\x55\xdd\x14\x70\x90\x8e\x8f\x6b\x28\x60\xff\x69\x92\x20\x8d\x4c\x9a\x78\x8a\x8c\x6b\x38\xd6\xa0\x65\x7b\x89\xd9\x88\xa7\x84\x03\x4a\x93\x75\x01\x4b\xeb\x3c\xb7\xb0\xc5\x3a\x6a\xa4\xce\xc1\x80\x06\x8a\x62\x68\xff\xe2\x69\x42\x19\xda\xdf\xef\xcf\xb7\xcb\xc5\xfd\xee\xf1\xe9\xe1\x6e\xb5\xfd\xba\x7a\xde\xf4\x03\x34\x60\xa8\x74\xf5\xfe\x3e\xca\x4c\xf3\x34\x65\xae\x06\xe6\x3d\x38\x9f\x39\x78\xb0\x8b\xf6\xa5\x80\x16\x3e\x8b\x47\x2f\xce\xb7\x34\xe5\x19\x22\x10\xfc\x73\x1e\x3d\xe3\x34\x8b\x50\xa8\x70\xf5\xb4\xe4\x31\x99\x26\x0a\x52\x4a\x08\xe2\x2f\x70\xc9\xde\xd9\xaa\xde\x49\x63\x76\xcd\x68\x3d\x4d\xb9\x70\xb4\x7f\x37\x35\xc0\x0e\x11\x36\xbb\xc5\xee\x5a\x7e\xec\xb0\xca\xb3\x1b\xf7\xa8\xf1\x94\x2b\x37\x55\x9e\xaa\xc1\x77\x4b\x45\x9a\x22\x1f\xce\xd5\xed\xdd\x40\xe2\xc4\x53\x49\x01\x4b\xd6\xef\x90\x3f\x42\xbd\x68\x7b\x8f\x2e\x95\x22\x43\x50\xff\x97\x87\x87\x2f\xb7\xc1\xff\x4e\x15\x48\x74\xc2\xf0\x5a\x71\x25\x7c\x28\xe1\x1a\xa4\x19\xb2\xfa\x3c\xd5\x49\x82\x3e\xf8\x57\xa9\x5f\xa1\xde\x1c\xa5\x86\x2b\x59\x97\xf0\xd1\x4c\x9e\xbd\x16\x1c\x45\x1d\xa5\x19\x48\xe1\xb6\x55\x77\xd5\x23\x4f\x61\xbc\x20\xa5\x5a\x47\xd6\xe7\x3c\xef\x64\xf9\x31\x2e\x29\x4d\xd3\x45\x64\xfe\x6a\x0c\xa3\x01\xe9\xd0\xe7\x10\x2f\x2c\x79\x29\x64\x11\xb6\x93\xf7\x7d\xf1\xde\xb7\x79\xb0\xe3\xc6\x35\x9e\x82\x31\xb1\x98\xd0\x1a\x40\xdd\x7e\x60\x26\xf3\x92\xab\x92\xda\x4c\x0a\xdf\xa0\xbb\x68\xdb\x3a\x9a\x1a\x12\x1a\xb1\x34\x04\x1a\xc1\x7d\x7e\x94\xb5\x3c\xc0\xa8\x37\x7e\xec\xce\xd0\x48\x2a\xcc\x4c\x5d\x3d\xdc\x3f\x6f\x76\xdb\xf5\xdd\x6a\x33\x3f\xa4\x91\x18\xff\x7e\x91\x07\x18\x3f\x76\x4a\x44\x9c\x26\xe7\x35\xb9\x8b\xf9\x1f\x4a\x04\x85\xa1\x05\xfd\x0b\x8a\x5e\xf7\x9b\x32\x6c\x54\x0b\xb5\x55\x9f\x28\x09\x2a\x05\x8e\xae\xdb\x8f\x4d\xa2\x88\xf0\x40\xf5\x39\x4e\xf8\x5c\x50\x2c\xe7\x34\x61\x8e\x37\xf2\xcb\x09\x9a\x66\xfb\x32\x01\x1b\x2e\x5f\xba\x3d\xca\xfe\xd3\xa0\x89\x64\x2a\x0e\x34\x1f\xf5\x69\x68\xa6\x98\x78\x81\x33\x18\x0c\x89\xa7\x54\x98\x9e\x2d\xd6\xff\x19\x1e\x62\x2a\x2c\xa2\x74\x1c\x15\xd7\x79\x1b\xdd\x45\x6b\x47\x53\x19\xa5\x4e\x69\xb3\x85\xc3\x31\xd4\xf4\xbb\xdf\x65\x50\xa1\x5a\x95\x6d\xfd\x71\x75\xc1\x95\xa2\x34\x21\x68\x8e\xdd\xcc\xba\xf6\x6c\x8b\x9f\x7b\x69\x94\x75\x5e\xaa\x63\x08\x79\xdf\xb5\x2f\xb0\x2b\xe5\x01\x76\x95\xdd\xb9\xe4\xf1\x2e\x84\x45\x5d\x78\xe7\x18\xd6\x5c\x35\xda\xe9\xe9\x2f\x5f\x40\xbf\x36\x93\x98\x23\xc4\x12\x94\x1b\x1d\x84\x52\x82\x46\x0a\xa6\xd8\x6e\xea\xea\x30\x03\x36\x85\x4a\x0d\x15\xd4\xb1\x5f\x1e\xe5\x87\xeb\xe5\x0c\xf4\xed\x97\x57\x06\x9a\x25\x1a\xd7\x68\x37\x1d\xc2\x32\x72\x8e\x84\x9a\xce\x90\x8c\x42\xec\xdb\x70\x77\xc7\x1a\xde\xf2\xea\xd4\xec\xf6\xd8\x65\xbb\xc3\xd8\x6b\x67\x2a\x7d\x3a\x8c\x58\xc4\xc2\x8e\x3c\x89\x31\x4e\xb5\x79\x69\x8e\xd5\x27\x8e\x17\xcd\x32\x63\xad\xb3\xe4\x28\x08\xea\x4e\xfe\x60\x67\xdf\x98\x4c\x89\x08\xc5\xfb\x42\xe6\x07\xa4\x1a\x6b\xe5\x6b\x3f\x39\x25\xe7\x81\xc7\xfe\xf1\xe1\xe1\x76\xd7\xf9\xa4\xbb\x38\x9b\x84\x18\x54\x2a\x81\xfc\x00\x77\xb2\xed\x62\xf6\xc9\xc7\xaa\xd2\x08\x21\x29\x61\x49\xc1\x6e\x20\x8f\xbf\x72\x8d\xcd\x61\x20\x73\x02\xf5\xab\xc5\xd3\xed\x5f\xbb\xf5\xfd\xf7\xd5\x66\xfb\xf0\xb4\xf1\xb9\x98\xdd\xed\xfa\x6e\xbd\xed\xc7\x0a\x8d\x55\xd0\x57\xad\x5f\x63\xca\x9a\xb6\x9e\x5e\x90\x56\x11\x36\x93\x8c\xf0\xe3\x9c\x6a\x90\x4c\x0d\xd5\xaa\x50\x1b\x6c\x66\xdf\xae\x49\x19\xbe\x19\xd4\xbe\x24\xab\xd2\x8c\xb3\xf0\xd4\x58\x8d\x76\xee\xa2\x93\xf7\xff\xe8\xf4\x7d\xca\xcc\xc7\x29\x48\x9b\x39\x75\x33\x57\x9a\x9c\xb0\x55\x84\x31\x26\x41\x9f\xf6\x7b\x0e\xef\x5f\x7a\x78\x14\xa7\x96\x0b\x34\x01\x48\x58\x88\xa8\x96\x0b\x62\x3f\x6e\x2c\x8b\x88\x43\xc2\xad\x0a\x70\x3c\x4b\x7f\x8b\x2a\x9d\xb3\x88\x73\x70\xec\xd2\xb2\x98\x37\xa2\x9d\xfb\x73\x2c\xe2\x4e\x20\xfe\xf1\xf9\xea\x76\xbd\x74\x39\xb7\xd5\xbd\xc7\x0e\x70\x16\x5a\x9f\x90\xe0\x6f\xe9\xfa\xd8\x73\x55\x80\x77\x19\x07\xb9\xba\xdf\x3c\xf8\x70\xb8\xd4\xc5\x12\xe8\xeb\xdf\x0e\x4c\xc6\x08\x01\xbc\xf8\x51\x33\xc2\x1c\x44\xf1\xe8\x32\x51\x53\x7f\x87\xc5\x89\xc1\xc2\xc8\xa2\x6d\xa5\x7e\x71\x22\x70\xd3\xfd\x63\x29\x84\x87\x1c\x95\xe6\x06\xe0\x0a\x6c\x55\x03\x8d\xa2\xfe\x10\xd6\xd5\xfd\x90\xd6\x83\xec\x30\x40\x75\xdc\x6b\x57\x40\xc3\xa0\x84\x1a\xac\xd1\x84\xf0\xf5\x8f\x51\x4d\x70\x0e\xcc\x20\xf1\xbf\x67\x8d\xc7\xd3\x2b\x4a\x80\x60\x06\xe4\x88\x8c\x10\x93\x86\x26\xce\x52\x66\x30\xdf\xf4\xf0\xfa\x2a\x0f\xf9\xf8\xfb\x65\x34\xa2\x59\x3c\x6e\xea\xba\x92\xfa\xb5\x73\x13\x6e\xaa\xda\x37\xe6\x16\x52\x23\x69\xd4\x2c\x43\xcd\x28\x51\x9e\x35\x0a\x7b\x45\xcf\x84\x44\x39\xa3\xb1\xc5\xec\xa2\x6c\xba\xd8\x18\x21\xee\x28\xed\x34\x01\x7c\x86\xb1\x92\x67\xde\xd9\x3a\x47\x49\x84\x31\xda\x47\x8d\xd0\x1e\xa0\x69\xf2\x6b\x78\xbb\xc4\x77\xc3\x19\x35\x06\x1b\xc2\xee\xb6\xe7\x18\xe4\xbf\xf9\xd7\x1f\x89\x47\x49\x68\x94\x70\x08\x6d\x47\xe4\xd4\x3c\x76\x16\xa6\xfb\x57\x5f\xcb\x60\x3c\xca\x10\xce\x6c\xb1\xd3\x7d\xd4\x4a\x35\xe4\x05\x18\x57\x19\xf6\x5e\xd6\xd0\xd6\x39\xbc\xc1\xf7\xd9\x33\x15\xca\xd9\x9f\x9d\x17\x12\xaf\x0f\x1f\xbf\x16\xa2\x9b\x4d\x03\x61\x1d\x64\xc6\x57\x39\xc7\x35\x5c\x3f\x22\x4b\x00\x7d\xdf\xfb\x3e\x1d\xc9\x94\x50\xd8\xc8\xb4\x01\x30\x77\x88\xb5\x5b\xca\x12\x13\x0f\x61\x80\x26\xe8\xdd\xdf\x7f\x5b\x4e\x26\x8f\x4e\x0c\x84\x42\x57\xee\x43\xd7\xb0\xd0\x32\x4d\x09\x32\xbe\x6b\xa7\x33\xfb\x78\x52\x45\xae\xbf\xf5\xf1\x12\xd3\xa0\xd1\xd9\xc0\x8a\xd2\xa6\x3d\xa9\xe6\x2c\x8d\x3f\x7d\x15\xda\x1a\x84\x24\xbd\xe7\xa5\xa9\xde\xe3\x09\xc8\x97\x33\x13\x31\x5c\xd7\x31\x7b\x81\x4c\x1f\xcd\x40\x1f\xc7\x99\x21\x2e\xff\x1b\xba\x4c\x90\xbd\xf6\xa3\x0b\x0e\x7f\x73\x56\x93\x02\xce\x61\xff\x46\x6e\xf3\x72\x5f\x54\xe5\x7e\x29\x3f\x85\x3c\x7d\x62\xa6\x80\xb9\x06\xfc\x9d\x3a\x7d\xfc\xd9\x6d\x3a\x73\x21\x26\x9e\x00\x03\xa9\x99\x67\xb1\xbb\x71\xfc\x57\x5f\x2a\x59\xcc\xe6\x8b\x4d\x28\xf4\x52\xc3\xad\x7e\x39\x93\x4e\xe6\xcc\x72\x17\x41\x8d\x5a\x47\x30\x1d\x74\xe7\xa4\x1a\xce\x55\x4c\x38\xb3\x99\xc6\x09\x91\x37\xeb\xd2\xb5\x84\x56\xf5\xc7\x74\x0c\x8f\x22\xc7\x48\x5c\x95\xc5\x87\x4f\xe8\x37\x0f\x35\x7e\xe3\xb3\x91\x24\xb6\x88\xf4\x59\xca\xe3\xb1\x3b\xb7\xd7\x14\x98\x5e\x26\x27\x09\x41\x9c\xad\x92\xe5\x6b\x7d\x3a\xb6\xb3\x1e\x18\xce\x09\x8f\x10\xce\x18\xd6\x9f\x1f\x79\x89\x4c\x81\x17\xb9\x1e\x38\x27\xc6\x29\x1c\xd6\x20\xcd\x94\x29\xd6\x0f\x88\xb9\xc4\xa8\xf6\xff\xfe\xdf\x6e\x11\x1c\xcf\x6b\x1e\x4b\xe0\x51\xc8\x0e\xcb\x32\xf4\x29\x4f\x4f\x90\x58\x89\xf4\x29\x4e\x34\xfa\xbb\xac\x73\x9c\x6f\xff\xab\x0c\x10\x4f\x35\xa4\x26\xb4\x35\x22\x32\xfa\x97\x9e\x3b\xa7\x8a\xfa\x7e\x4b\xc7\x3a\x8a\x98\x92\x66\xa6\xab\xc3\x39\x4b\xa3\xcc\xe7\xff\x9e\xe6\x14\x85\x9c\x73\xe2\xd2\x4e\x66\x26\x57\xc4\xb9\x48\x79\x70\x5b\x1d\x5a\x65\x32\x25\xb9\x60\x09\x1e\xd6\x02\x32\x09\x86\xc7\x25\x04\xc7\xfa\x9a\xa9\xbe\x81\xd6\xb2\x73\xd9\xe6\xc7\xcd\x9c\xc3\xe6\xf5\xc2\x6f\x64\x51\x74\xeb\xcc\xb2\x0b\x95\x4c\x7f\x18\x05\xd8\x76\x3b\x70\x27\x70\x9e\x31\x20\x3e\x2f\x73\x26\x01\x32\x1c\x5e\x72\x8a\xa1\xe4\xf2\x69\xe1\x79\x34\x56\xf7\xd7\xbb\xeb\x45\x28\xf1\x71\x65\x12\x47\x0b\x58\x57\xfb\xd1\x4a\xcf\x35\x17\x48\x17\xbb\xc9\x5b\x5d\x1d\x26\x73\x40\x6b\x0b\x51\xa8\x79\xb9\x0c\xe2\x73\xd9\xe6\x85\x23\xde\x0c\xa3\x40\x53\xc4\x8d\xe8\xaa\x7a\xcd\x61\x20\xd0\xf1\x48\xf9\x9e\x09\x8c\x73\xb0\x4e\xfa\x67\x03\xed\x62\xf6\x74\x2c\x27\x98\x66\x7f\xfc\xfa\xb0\xba\x5f\xff\xb9\x5b\x3e\x3c\x6d\x16\x6b\xcf\x5d\xca\x45\xc4\x78\xe4\x31\x39\x47\xd9\xe6\x23\xf0\xca\xc5\xaa\x83\x20\x26\x03\xd7\xc4\x33\x2c\xa4\x4f\x18\xa6\x7d\xc2\x4e\xc3\x45\x1c\x09\x44\xf4\x3c\x3f\xee\x50\xa9\xe5\x47\x9f\x4a\x16\x71\x1a\x23\x3e\xa1\x0b\x9b\xab\x26\x6f\xa1\xfb\x5a\x06\x75\x92\xc9\x9d\x88\x84\x08\x94\x58\x3b\x22\x54\x72\x84\x5f\xe6\x22\xa1\x3c\x48\x3d\x6d\xa0\x3d\x1d\x43\x18\x1e\x5e\xbf\x48\x13\x26\x1d\x42\x29\x2f\xaf\xf3\xe6\x58\xc8\x0f\xaf\xc3\x14\x46\xd0\xc8\xea\x20\xd2\x5f\xb5\x50\xb6\xb9\x2c\x7c\x97\xf5\xf4\x76\x28\x25\x48\x2e\xb4\xaf\x2a\xef\xb5\x84\x29\x2c\xa8\x4a\xf0\xab\xfd\xbe\x7e\x5a\xdc\x22\x6b\x6c\x38\x3a\x23\x4e\x28\xe0\xfb\xf7\xeb\xab\x33\xd1\xe9\xd9\xf3\x62\xd2\xe9\xd5\x07\x1e\xb6\xd5\xa1\x0b\x58\x61\xe6\xb2\x0b\xa6\x95\xd1\x7d\xd3\xb2\x7e\xdd\x9c\xea\x63\x71\x6a\x86\x72\x97\x60\x36\x16\xda\x1f\xa8\x2a\x9b\x75\x33\x84\xf0\xd3\x27\xcb\xac\x49\xa3\x1e\x22\xd5\xcd\xb2\x66\xf2\x78\x39\x65\x81\x60\xcd\x35\xdd\x3c\x56\x45\xae\x3f\x3e\xb9\x7e\x9e\x65\xd8\x93\xf1\xcf\xa7\x6d\xd5\x3f\x5e\x11\xb9\xac\x80\x3a\x15\xaf\xee\x32\xf6\xb0\xda\xef\x87\xcd\x3a\x4a\x47\xf0\xed\xaa\x3e\xa7\x5d\x3a\x8f\x05\x84\xa0\x09\xba\xca\xcb\x17\x59\x96\x50\x2c\xba\xe0\xf7\xec\xee\x84\x8c\x30\xfb\x84\x12\xd1\xde\xa5\xbb\x93\xc7\xd9\xe3\xcc\x52\xd7\x29\xea\x73\xa1\x45\x55\xce\x1f\x78\x46\x75\x68\x5d\xf5\x46\xfb\x22\x89\x11\x17\x99\x74\x71\xef\x6d\xa5\x27\x1d\x1d\x5c\x64\x8a\xe8\x31\xa4\x15\x57\xb4\xb0\x80\x5c\x7e\x9a\x99\x92\xa8\x88\x9c\x37\xcf\xa5\x13\x07\xbb\xaa\xda\x97\xd9\x19\x25\x77\xb2\x2f\xa3\x56\xa6\x1b\x80\x73\xeb\x2c\xa4\x64\x38\x0f\xbd\xc3\xe1\x2e\xee\x72\x9a\x37\xec\x61\x1d\xb9\x9c\x87\x00\x84\xb4\x52\x9f\xb4\x16\xca\x33\xf1\x7e\x79\x7c\xfe\x39\xb9\x59\x15\x1b\x74\x47\xe1\x54\x57\x5b\x90\x87\x99\x8b\x2f\x54\xe2\xea\x31\x65\x55\x1f\x64\x91\x37\x18\x07\xac\x4b\x33\x46\xff\xf7\x6f\x5a\x29\x17\xce\x38\x45\xa1\x4f\x1e\xbc\xd2\x3a\x76\x3a\x77\xe6\xa4\xe1\x1a\xd4\xa7\x1c\x0f\xfd\x0e\x8e\x9a\x78\x44\xd1\x75\x76\x48\x8b\x95\x53\xd4\x46\xde\x56\x9e\xb6\xfd\xd2\x3a\x3c\xab\x72\x0b\x9d\xa4\xc8\x1e\x9d\xff\x90\x65\xbb\xad\xbe\xe5\x45\x71\xf7\xd1\x40\x11\x10\x7b\x42\x33\x86\x9f\x84\xcb\x62\x5e\x2d\xb6\xcb\xaf\xfd\x26\x9b\xa2\x36\x45\x17\xe1\x6d\xe1\x70\x24\x61\x83\xa1\x8e\x7d\xf8\x0b\xb4\xd7\xb9\x79\x94\x1f\x0f\xa7\x59\x92\x47\x18\x48\x11\x9c\xf5\xd0\xe3\x46\x84\x01\x81\x26\xcb\x5f\xf6\xb6\x5a\x34\x3a\xcf\xa7\x34\x01\xb3\x69\x07\xb1\xe5\x83\x98\x1c\xb2\x6f\xf6\x9e\xe4\xf0\xee\x21\x13\xc8\xda\xa1\x4e\x75\xb9\x6a\xf4\x48\x38\x28\x0c\x80\xbe\x15\xdc\x17\x90\x3b\xb7\xfa\x2a\x94\xe7\xc3\x05\xda\x8c\x61\xcf\x61\xf3\x52\x1d\xb7\xd5\x61\xf8\xdd\x32\xec\xf8\x2c\xe1\x7d\xf7\x22\x9b\x97\xe9\xad\x66\x11\x51\x1e\xc0\x52\xba\x2c\xa9\x6b\x62\xfb\xa5\x57\x94\x45\xb1\x44\x92\x03\x54\xba\xc8\xfb\x96\x16\x9e\x45\xdd\x73\xf7\xad\x79\x8b\xf2\x03\x7b\xef\xfa\x6d\xc6\xe9\xb2\x04\x0a\x5f\x27\x95\x3d\xcf\xd5\x8c\x9f\xd0\x64\xd9\xcc\x48\x1a\x61\x93\xf9\xd5\x7a\xbb\x59\x2d\xba\x55\x68\xd4\xc2\xfc\x79\x0a\x67\xb8\x6a\x92\x46\xb6\x57\x13\x5a\xf7\xa4\xa3\x61\x81\xcb\x08\x75\xd4\x2c\x56\x9e\xf4\x3c\xa3\x90\x11\x11\xd1\x78\xa4\x52\xbd\x76\x49\xeb\xbc\xdc\x3f\x75\xe1\xdb\x24\xb4\xca\x62\x45\x11\x98\x7d\x05\x6d\xb7\xba\x07\xa2\x45\x9e\xc5\x40\x30\x47\x84\x49\xd3\x65\x50\xfd\xec\x37\xc6\x6c\x58\xb4\x5c\x6e\x74\x67\x43\x7f\x0e\xcf\x92\x98\xa3\x32\xf5\xf6\x61\xbb\xb8\xdd\xad\xb6\x5f\x57\x4f\xbb\xaf\x8b\xa7\xeb\xdd\x72\xf1\xd8\x8f\xa1\xc4\x35\x4c\x3a\xd6\x4d\xec\x37\x0b\x9b\x84\xf2\x69\x18\x6c\xa8\x5a\x22\xdc\xd6\x09\xee\xdc\x39\x58\xc6\x28\x5c\xcb\x12\x65\xcd\xa0\x42\xbc\xb9\xfe\xb4\x57\x78\xf6\x90\xd3\x38\x45\xe7\xe6\xeb\xc3\x8f\xdb\xc9\xdd\xa5\xb1\x03\x5d\x5a\x00\x47\xc4\x37\x65\x75\xe1\x59\x4a\x01\x21\x1f\xb2\xfc\xc0\x94\xce\x57\xe9\x1b\x53\x9b\xd1\x08\x6c\xd7\xb8\xc9\x4b\x73\xf7\x71\x93\x37\x2f\xbb\x55\x17\x2e\x5e\xc9\x5a\x57\xc6\xe7\xc1\xb3\x30\x98\xb9\xb7\xd9\x4d\xc5\x40\x2a\xda\xfd\x2a\x91\x71\x74\xf3\xb8\xfa\x36\xb9\x3c\x1a\x31\x1c\x8e\x9a\x63\xed\xf0\x5d\x65\x94\x5a\xc4\xf9\xad\x7e\xca\xce\x21\x0a\x4a\xa4\xdb\x7a\x78\x31\x34\xcb\x10\xd7\xae\xa5\x97\xbd\x5e\x99\x7c\xdc\xb1\x3b\xce\xa3\x64\xdd\x4a\x43\xfb\xf4\xfc\xba\x7c\xcb\xbb\xff\xb7\xd5\xa5\xa4\x4b\xc6\xb5\x83\x02\x6e\xa0\x6d\xbd\x33\x37\x43\x0b\x66\x82\x1b\xa7\x6f\xbc\x59\x06\x57\x29\x13\x42\x22\x61\x88\x96\xb5\xd9\xed\xab\xc2\xec\x6c\x5e\x0f\x33\x41\x64\x0a\x7b\xb4\xd6\xcd\x32\x6f\xb1\x84\x80\x3c\xe8\x33\xcb\x20\x0c\xc5\xfc\x40\x8d\x1e\xf1\xc4\xb4\x65\x19\x8d\x31\x3f\x17\x16\xe1\x9b\xba\xf3\xce\x7f\xbd\x52\x64\x2a\x4b\xb1\x01\x0b\x3c\x61\x68\x70\xa5\x1e\xa7\x88\xef\xf9\x5e\xd2\x60\x68\xf2\x5c\xe6\x6f\x50\x37\xb2\x08\xa4\xbb\x01\x9a\xf6\xbf\x20\x26\xe6\x99\x36\x89\xf6\x54\x40\xdd\xd1\x1c\x7c\xfd\x8f\x7e\xa3\x25\xde\x7f\x45\xaf\xe2\x4c\x23\x97\x67\x26\xb5\x68\x4d\x9d\x83\x80\x54\x3b\x37\x00\x41\xff\x62\x7a\xe5\x86\x5a\xe5\x28\x34\xd5\x69\x8f\xb6\x37\x59\x9f\x0f\x92\x2e\x6a\x2e\x01\x8c\x83\xa4\x86\xab\x31\x8a\x33\x0f\x2d\x5c\x9f\x0c\xfc\x9c\x5d\x09\x44\x4a\x0c\x1c\xbc\x8b\xb2\xea\xe2\x02\x84\xcc\xc4\xb3\x91\x36\xe2\x88\xad\xbe\xba\xbf\xdf\xa1\xda\xd4\x62\xdb\x8b\xd1\xf2\xcc\xc6\x8e\x8a\xb6\x39\xa9\x43\xde\xf9\xae\x3f\x3f\x30\x92\x0b\x68\x00\xfa\xef\x71\xdd\x30\xb3\x8c\xe0\x70\x64\xc0\xbf\x86\x51\x8d\x3b\x0c\xd0\x31\x85\x31\xd9\x92\x2c\x0a\x35\x52\xe8\x9c\x66\x53\xc2\x4e\xe0\xa4\x3c\xde\x42\x0c\x29\x22\xf7\x1d\x44\xfd\x00\xc9\xbd\x77\x76\x5d\x15\xe7\x5e\x99\x8c\x98\x70\x1a\xce\x03\xec\xf0\x2e\x2f\x07\x4f\x5e\x12\xaa\x51\xe4\xc1\x19\xb4\x07\x6b\x9b\xe3\x64\xed\xbe\x9c\xbe\x0b\x3b\x4b\x2a\x3c\x1c\x0d\x65\x86\x9f\xa0\x01\x5c\x86\x67\x57\x11\x13\x81\x29\xd7\x1f\xe0\x9a\xcf\xa7\x9f\x94\x8c\xb9\xe4\x2c\xa4\xd4\xfa\x00\x6b\x26\x25\xc9\x65\x0c\x0c\x21\x9b\xdf\xab\x5c\xc3\x08\x36\x24\x13\x9e\x20\x98\xbe\x3b\xe9\xba\xbc\xbc\x52\x4f\xff\x73\xd6\x36\xcc\x25\x4d\x12\x70\x92\x5d\xfb\xc7\xba\x3a\x74\x2e\xa3\x57\xea\xff\x6c\x25\x9e\xee\xcf\x29\x43\x48\x8e\x63\x0f\x0b\x80\x14\x29\x12\xc7\x3d\xb6\xfd\xf6\x34\x36\xab\x52\x50\x97\xc8\x6f\x50\x78\x66\xf6\xb4\x84\x76\xcd\x04\x21\x4a\x7b\xfe\x95\x70\xce\xe5\xcb\xc9\x18\xc7\xef\xf9\x5d\xe6\x6d\x5e\xee\x6f\xaa\x1a\xeb\x68\x93\x5a\xbb\xcc\x98\x41\xce\x95\x63\x37\xb9\xb7\x7d\x7a\xaa\x7d\x71\x02\x04\x17\xe8\x69\xff\x31\x2b\x01\x4f\x3e\x28\x99\x89\x04\x61\x6d\xdb\xba\x2a\xa1\xce\xfb\xe5\x5d\x4a\x69\xc1\x11\xdf\xef\xf7\x05\x2c\x6a\x8c\x8e\xbf\xe7\x4d\xae\xf2\xe2\x0c\xdb\x2b\xa5\x8d\x84\x0a\x7a\xdb\xfb\xaa\xb9\xfa\xf0\x5c\x83\xd3\xef\x57\x2a\xc3\xb1\x3a\xb0\x7b\x87\x7c\x5b\xdd\xcd\xf4\xb1\xb8\xd4\x9a\x10\x8f\x40\xbc\x99\x6a\x65\xf8\x01\x86\x65\xb8\x84\xdd\xad\xef\x77\xcf\x8f\x48\x6e\x7f\x11\x47\x2c\x8d\x16\x09\x3a\xb9\xe5\x1e\x8a\x91\x37\x20\x41\x51\xd7\xf6\xe8\x94\xde\xb1\x47\x39\x5f\xde\x6c\x67\x57\x02\x20\xb0\xd1\x73\x07\xb5\x6c\xe0\xbe\x32\xf0\x35\x87\x5a\xd6\xfa\xe5\xe3\xbc\x89\x6d\x6a\x99\x25\x80\x72\x7e\x30\xe8\xea\x00\x9b\xff\x39\xe5\x75\x0d\xc5\x61\xa4\xac\xcb\xa5\x4d\x00\xb1\x94\x9b\xed\xe2\x09\x59\xea\xbe\xae\x1f\x37\xdb\xa0\x22\xc3\xa5\x55\x22\x8b\x06\xee\xe5\x19\xcb\x37\x57\x51\x44\x30\xb9\x70\x2a\x8f\xf2\xd4\xcc\x6c\xbb\x8a\xb8\x36\xbd\x1a\x04\xc6\xd0\x5f\x03\x02\xba\xbf\x45\x45\x98\x20\x24\x24\xf8\x1c\x88\xd2\x6f\x49\x52\x85\x9e\x0f\x32\xd3\x6e\x46\xe0\x1b\x95\x64\x29\x12\x10\xbb\x6f\xe6\x02\x7d\xf8\xc5\xb9\xad\x52\x9a\x08\xd6\x8b\x02\x20\x57\xe3\xd8\xd2\xaa\x94\x3b\xae\x8b\xea\x55\x1e\xf2\xbb\xbc\x47\x17\xec\xc2\x79\x69\xea\x06\xec\xa1\xc5\x85\x61\xa2\x82\xcc\x15\xcb\x00\xc5\x96\x76\xaf\x79\xdb\xce\xd5\xea\xb8\xe2\x11\xc5\x2e\xd4\xa3\xac\x9b\xa0\xc4\x30\xb2\xd9\x8a\xc7\x29\x0f\x4c\x91\x53\x14\xc6\xf4\x73\x51\x5c\x46\x18\x70\x3d\xca\x8f\xfe\x91\x08\xdf\xf4\x65\xe0\x4d\x57\x65\x3c\xb6\x19\x4a\x0a\x46\x03\x65\x9e\x2c\x5f\xa3\xb8\xdf\xa0\x20\x86\xe1\xf5\x82\xb9\xd2\xa1\x5a\xa1\x94\xcd\xb0\x2e\xdf\xd9\xd1\xc6\x8b\x73\x84\x6d\x5a\x6b\xe5\x1e\xe4\x5b\xf5\x8a\xe4\xe6\xb2\x84\xf2\x4c\xe9\x22\x8c\x06\x27\xbc\xdc\x40\x69\x06\x74\x5d\x17\xc4\x62\xea\xec\x6b\x75\x80\x71\x5c\xa3\x4c\x2c\x31\x1f\x20\x8b\xa2\x42\x58\x5a\xf2\x57\xaf\xce\xca\x55\xe7\x30\xa8\x50\x82\x39\x00\x99\x9d\xcc\x46\x0e\x05\xe7\xfc\x89\xee\x2d\x19\xf7\xaa\x5e\xf2\x63\x5b\xcd\x07\x33\x86\xa8\x51\x7f\x7b\x37\x55\xed\xa3\x90\x4f\xf2\xae\xca\x4a\x95\x25\xbd\xa2\xff\xe2\x4a\x4e\xea\xa8\x3a\xe2\x91\xe3\x95\xd3\x2f\x60\x4e\x05\x2c\x65\x71\x2e\xfb\xe1\x7a\x62\xe6\x9d\x1b\x97\xc2\x75\x4d\x32\x85\x4b\xec\xb1\x6a\xda\x1b\x6c\xa8\x3f\xaf\x6f\x69\x22\x79\xe4\xda\xf0\xe5\x1b\x14\xcf\x65\xde\x0e\x1e\x98\x26\x36\x83\x41\x25\xb9\xe7\x98\x9a\x9b\x44\x4d\x2c\xa0\xd9\xc7\x28\xf8\x13\xb5\xba\xb1\x23\xad\x93\x2c\x41\xb8\x53\x70\x58\x37\xa7\x23\xd4\xa7\xb3\x8a\xa8\x4e\x54\xc2\x59\xef\x9d\x77\x11\xf1\xe5\x3c\x89\x4e\x6c\x96\x85\x24\xae\xc3\x23\xcd\x06\xd0\xc8\xd1\xf8\xae\x9b\xed\x4b\xde\xac\x7e\xba\xb2\x56\xb8\x51\x16\x65\x8e\x3b\x59\x16\xda\x69\xa8\xcd\x76\x67\xdc\x91\x82\x3d\x55\x0a\xc5\xd9\x4c\x5e\xee\xd7\xba\xea\xf7\xd7\x2e\xf1\x81\x79\x6c\x5c\xd2\x7a\x2b\xa9\x05\xe5\xe8\x19\x2a\xd9\xea\x17\x24\x93\xb8\x80\x04\x08\x28\xa6\x90\x1d\xd2\x42\x39\x1e\x5b\xec\x58\x43\xf7\xe6\x13\x42\x5b\x3f\x5e\x66\xa9\x75\x72\x8b\xc6\x9c\x97\x96\xb5\x8a\x6d\x68\x19\x5d\x97\xad\x08\xd7\xa6\x52\x81\x42\xc1\x28\x71\xe8\xc2\x5f\xf4\xb2\xfb\xcd\x19\x8a\x85\x1f\xf2\x32\x10\x7f\xfc\xda\x48\x6a\x1d\xbb\x08\xc9\xc5\x6d\x55\x0d\xcd\xa3\xac\xa1\x6c\xe7\x30\x2f\xad\x69\x96\x86\x46\xc4\xbc\x00\x74\x13\xa0\x5e\x78\x7c\xc9\x80\x2d\x26\xfd\x91\x15\xc4\x22\xe0\x45\xd7\xcb\x07\xdf\xd0\xf2\x70\x84\x9e\x09\x83\x6b\xad\x45\x04\x8e\xfb\x66\x73\x90\x75\x4f\xc1\xe1\x7b\x70\x86\x3c\x8f\x36\x71\x82\x7d\xd1\x5b\x90\x87\xdb\x4a\xbf\xf6\x52\x43\x71\x7a\x57\x95\xed\x4b\xff\x55\x1a\x46\x23\xe7\xea\xca\x62\x04\xb2\xfe\x2c\xfc\x9e\x7f\x98\x93\x55\x55\x1b\x13\x39\x38\x6c\xb3\xd6\xd5\xba\x7c\x9c\xd6\x57\xb4\xb1\x1c\x43\xb2\x29\x7a\x75\x4c\x48\x31\x3d\x1c\x44\xae\x73\xa5\xf3\x24\x1e\x9f\x56\xbb\xf5\xf2\x61\xb7\xb9\x7d\xf8\x72\xbf\x5b\x3e\xdc\xde\xae\x96\xdb\x55\x00\x91\x68\x90\x54\x3b\x32\x33\x79\xf4\x42\xa7\x6b\xb3\xad\xae\xe5\x41\xee\xe1\xa6\xaa\x57\x25\x1a\xb1\x73\x40\xb5\xdf\xdf\x66\x12\x31\x2a\xcd\x4b\xf5\x8e\x26\x71\xb6\x3e\x69\x6b\x7a\xd2\x98\x9b\x53\x5d\xca\x19\xff\x27\xd7\x16\x00\x49\x12\x3e\x65\x66\x9e\xde\x9b\xb5\xa9\x33\x4c\xc7\xe1\x14\x36\x4d\x7c\x40\xf8\xed\x54\x36\x17\x5b\x12\x4c\x94\x38\x89\xa5\xfb\xaa\x7d\xc9\xcb\xfd\xb6\x72\x99\x95\xf9\x28\x91\x60\xe3\xf6\x0e\xba\xc8\xa9\x8b\x50\x5e\xf3\x62\xea\x01\x9c\x89\x6b\x4f\x9f\x88\x21\x49\x46\x7a\xa6\x17\x6c\xa4\xf8\x63\x36\x80\x6a\x87\xcf\x6b\x07\xd7\xcd\x10\x2e\xa2\x89\x58\xe8\x99\x8e\x36\x37\x44\x53\xb4\x46\x4e\x54\xf2\x92\xd0\xee\xf4\x66\x62\x2a\x23\x3b\x42\x49\x78\x35\xff\xe9\xa0\x34\x8a\x49\x60\xed\x76\xd4\x1c\x3f\x5e\xa0\x7c\xfc\xa8\xe5\x21\x0f\x8c\xad\xd8\x12\xdc\xe0\x42\xfc\x13\x73\x02\x81\x68\x89\x9b\x34\x4d\x31\xdb\x65\xa0\x95\xfa\x65\xa0\xa0\xe8\xb7\x33\xc2\x7b\xef\xd9\xaf\xbc\xe3\x6e\xde\x5f\x27\x23\x4c\x6a\x13\x44\x74\x9d\x4a\x47\xfd\x72\x89\x42\x96\x1b\x4a\x09\x56\x4e\x77\x8d\xb4\x5e\x76\xed\x13\xc8\x92\xa1\xd4\x29\x09\x1d\x4f\xaa\xc8\x9b\x97\x09\xf3\xcd\x24\x91\x69\x28\x8b\x99\x7f\x8f\x8e\xbf\x7d\x5c\x28\x32\x34\x73\xda\x91\xb7\xd5\x3e\x74\x96\xe1\xba\xfc\x49\x64\x32\xbb\x88\x2c\xc9\x5c\x66\xe7\xbb\xc7\x2c\x4d\xc8\xf8\xb8\x61\xc4\x22\x8e\x7e\x34\x15\x2e\xdf\x0e\x8b\x25\xf6\xd2\x06\x5f\x03\xe0\xae\x32\x48\x4d\x39\x7f\xcf\xcc\x52\xeb\x96\xb2\xf2\xb6\xda\xaf\x67\xe8\x02\xc3\x23\x1d\x44\xf0\xd6\xba\x7a\x3a\x15\x30\x4a\x4a\x1a\x4e\x12\x43\x27\xfc\xc6\xdd\x5a\x32\x79\x20\x9c\x53\x6c\x48\x83\x63\xa5\x5f\x26\x1e\xac\xe1\x82\x19\x87\xc6\xe9\x02\x6a\x57\x51\x5b\xa1\x5e\xab\x19\x73\x52\x98\x2c\x49\xb0\x7c\x0a\xe5\x10\x6c\x23\xf6\x3c\x19\xc8\xc7\xb9\xc9\xac\xc1\x15\xa2\xaa\x0d\xd4\xb7\xb2\x69\xc7\x1b\x25\xb1\xca\x89\xc7\x04\x19\xe2\x17\x79\x38\xe6\x95\x03\x4c\x85\x41\x19\xc1\x54\xfd\x75\x65\x02\xcf\x3c\x37\x4a\x44\x7e\x61\x3d\xe4\x65\x68\xd1\x9b\x3e\x23\x05\xd6\x84\x36\xdb\x9f\xba\x38\x99\x4f\xf8\x67\xb8\xd1\xb1\xcf\xf2\x43\xdb\x5d\xe1\x59\x1d\x34\x0c\xa3\x0c\x23\x6b\x97\x1c\x72\xc6\xf7\xbf\xbe\x7d\xf2\xaa\x35\x35\x99\x09\x17\x38\x7c\x60\x3a\x73\x4d\xe7\xd7\xb2\x9a\x2f\xa6\xc6\xc4\x16\x69\xe7\x16\x65\x67\x00\x7e\xfe\x96\x9e\xc0\x18\xe1\x60\x5a\xbe\x6b\xf4\xcb\x49\xd6\xb2\x6c\xa1\x5f\x48\x8d\xb1\x31\x09\xb2\x6f\xd5\x1b\xd4\x5f\xa0\xfd\xeb\xf9\x6e\x66\xa7\x20\x66\x32\x60\x46\xc2\x8e\x56\xa4\xa9\x1a\xd9\xb7\x33\xce\x36\x0e\x11\x27\x58\x9b\xc5\x52\xd0\x28\x63\xb9\xac\xea\x1a\x74\x5b\x7c\xa0\xcc\x4a\xc0\x0e\xe7\x55\xe9\xc1\xfa\xbd\x27\xde\x1f\x48\xc5\x58\x95\xc4\xc2\x03\x7a\x1b\xd3\xe7\x0e\x44\x08\x1f\xb2\xa1\x4f\xf8\x9b\x96\xab\xc9\xcd\x01\xb1\x12\xe2\xd1\x72\x75\x91\xe1\x73\xb6\x4f\x9c\xb8\x08\xef\x45\xd6\x46\xcb\xe3\xf3\x26\x2c\xbf\x10\x7b\xfa\xb7\xc7\x53\x51\xf8\x04\xeb\x52\x1e\x47\x88\x2b\x88\x85\x70\x7e\x86\xf7\xfe\x47\xcc\x3b\x97\x97\x64\x48\x33\x2d\x9d\x22\xb9\xed\xdb\xa1\xfe\xce\x55\xa6\x90\xd1\x40\xbc\x19\x38\x00\xc6\x57\x42\x13\x87\xbc\xf2\x18\x65\x8c\x9d\x57\xdb\xaf\x3d\x3f\xdd\xa0\xb0\xc6\x81\x2a\xc0\xe5\xcc\x8f\xdd\x1d\x4e\x45\xbf\x09\x40\xd2\x49\xa1\x6c\x24\x19\xc6\x81\x45\x3a\xe6\x7d\x6c\xb1\x08\xfa\x8d\x72\xae\x49\xc2\x81\x49\x86\xf9\xf1\x6e\x25\xf1\x2a\xc9\x85\x2c\xff\x18\xb6\xca\xee\xdb\xba\x5b\x6d\x37\xac\xff\x51\xc7\xd6\x09\x17\x0c\x94\x20\x61\x1b\x27\xda\xf0\x50\x3a\x82\xb5\xae\xbe\x3a\xc1\xdc\xe9\xe4\x06\x2e\x2d\x66\xa9\xa4\x31\xeb\xc7\x9b\xcd\x4d\x5e\xc0\x9c\x15\x6c\xd6\x90\x30\xdd\x5f\x70\x82\xf9\x07\x35\xe7\xd7\xe3\x20\x6c\x1a\x91\x01\x7a\x7d\x2b\x4b\xe3\xb8\xe0\xa7\xf7\x9d\x89\x14\xab\x77\x2e\x18\x45\xaf\xb4\xf8\xc0\x5c\xeb\xe5\x33\x4a\xca\x92\x5e\x6f\xbf\xb9\xfa\xb8\x6d\xf5\xf6\xe7\x64\xbd\x01\x29\x32\x0c\xbd\xfb\x4e\xed\xf0\xbb\x92\x58\x12\x37\x60\xe5\xa9\x68\x3d\x9f\xf6\x14\xe7\x0b\x12\x0c\xb6\x0f\xec\xf2\x66\xe6\xfc\x81\x4a\xd2\xc4\x11\xd2\xeb\xaa\xc6\x80\xa5\x33\xe9\x9f\x74\xcd\x86\x7d\x32\x2a\x7d\xb7\x6f\x5e\x6e\x8e\xa0\xf3\x01\xae\x37\xff\x26\xff\x15\xff\x3b\xec\xa5\x63\xfc\xa4\x3d\x29\xf5\xce\xe6\x3f\x3f\x97\x41\xea\xf7\xe1\xd2\x71\x54\xef\x6f\x65\xed\x05\x0c\x02\x59\xf2\xaf\xbf\x15\x88\x53\xe9\x5b\x26\xee\x4f\x87\x4f\x1e\xbc\xa5\x02\x2b\xf9\x5a\x96\xd7\x60\xeb\xaa\x69\x3d\x75\x4b\x78\x74\x36\x22\x04\x9f\xbb\xe9\x4c\x1e\xbe\x9e\x95\xac\x8b\x8f\x40\xd0\x36\x8c\x4b\x62\x9c\x34\xee\x95\x9f\x2b\x9c\x73\x1b\xa5\x26\x1e\x04\xa9\x6e\xc1\xec\xcf\x85\x57\xff\x75\x8e\x87\x3e\x03\x9a\x58\x92\x25\xd4\xf6\x94\xfd\x33\xd3\x38\x3d\x27\xc9\x18\xc6\x96\xa8\x0b\x98\x9b\x75\xb0\x6a\x96\x58\x86\x71\x7f\x2d\x6b\x27\xd5\x73\x2e\xbb\xc9\x6d\x9c\xc4\x08\x25\x55\xa7\x8f\x9b\x93\x7e\xed\xef\x35\xd6\x4c\xf1\x11\xb3\xc3\x83\xb5\xa8\x70\x3d\x42\xb8\x7f\x92\x4d\x0f\x07\x30\x1c\x7b\xbb\x6e\xab\x72\xbf\x85\x3a\xa4\x7d\x6d\x12\x53\x14\x46\x71\x0f\x11\x2f\xc9\x19\x39\x0c\x6d\xa7\x17\x97\x32\xad\x46\x39\xac\x39\x48\xc3\xa6\x5c\x61\x8a\xb2\x79\xd9\x99\x0a\xf5\x5a\xc3\x59\x52\x43\xc7\x52\x23\x7d\xf3\xfc\xe5\xd9\x6e\xa9\x54\x5e\x90\xa1\xf5\x75\xf2\x16\x15\xe4\x0e\xd5\x65\xeb\x6e\x59\xec\x42\xd9\x9b\x53\x69\x26\xca\x2f\xdc\x32\x0a\xb1\x6f\x7e\x9b\x72\xdc\xba\x6f\xbd\xbf\x78\xc6\x52\x30\x41\xed\x7b\x13\x8a\x4d\xab\xeb\xdd\xf6\x61\xf7\xf8\xf4\xf0\x70\x13\x0e\xc8\x23\x85\xd9\xba\x1f\x55\x5d\xfc\x5d\x8e\x35\xcb\x55\x16\x8d\xf8\x78\xd1\xb8\xcf\x91\x95\x56\x30\x85\x31\x50\xfb\x02\x4f\xf9\xdb\x70\x0b\x19\x49\x9d\xe3\x24\x75\xed\x03\x85\x7e\x53\xea\xa8\x78\x64\x5e\x5f\xd7\x5e\x61\x61\xdd\x34\xa7\x6e\x58\xaf\x44\xc8\xad\xe4\x11\xea\x51\xee\xdc\x6b\xc6\x3a\xd0\xa4\x25\x79\xf6\x3c\xa5\x24\xac\x27\xf3\xc5\x8b\xfd\x92\xbf\xc1\x19\xf5\x8a\x1f\xad\xa4\x8e\x3c\x9a\x18\xbd\x91\x5e\x20\x28\x24\x8e\x86\x54\x82\x55\x2a\x43\xbb\x18\x26\x72\x30\x8e\x17\x63\x18\xab\x93\x2c\x73\xa6\xb2\x0d\xd0\xde\xdf\x04\x47\x56\x0b\x89\x20\x20\x7d\x6a\xda\xea\x30\xa5\xc7\x09\x43\xb2\x0c\x43\xc0\x00\x84\x3f\x5d\x74\x1c\x7e\x0d\xb9\xb6\xc6\xc6\x6a\xec\xf2\xd4\x9d\x57\xf0\x2b\xc5\x40\x6e\x81\x4a\xb4\x22\x37\x4f\xab\x95\x63\xbc\x7c\x7c\x7c\x58\xdf\x87\xd6\x24\x6b\x0d\xd7\x03\x6e\xe1\x1e\xfa\x87\x73\x56\xdf\xba\x6c\x7a\xac\x11\x2c\xe9\x45\xcb\xbe\xe6\xc6\x40\x19\x04\x21\x27\xd5\x3c\x11\x45\x22\x46\x05\x95\x43\x5e\xb6\xa8\x0a\xe1\x9f\xed\x85\xd9\x20\x22\x12\x39\xed\x39\xe4\x46\xc9\xcb\xfd\xa6\x94\x79\x31\x96\xa0\x11\x51\x4c\xe8\xb4\xa8\x9e\xf7\x09\x43\x11\xc5\x31\x35\xd4\xa7\x9f\x9d\x2a\xce\xb9\x11\xee\x87\x1a\x8f\xac\xd6\x9d\x27\xed\x98\x97\x3e\xa5\xf4\x1c\xe2\xa4\x6e\x4f\x40\xd1\xb7\xc5\xab\x3a\x15\x27\xb7\x70\xac\x97\x0f\xfd\x35\x68\x96\x79\x93\xe2\x83\xb5\xe9\xfc\xef\xa7\xa8\x88\x62\x1b\x39\xd2\x60\xf9\x86\x6a\xf1\xe3\x84\xbc\x88\x52\xee\x58\x6d\xf6\xd0\x3a\xbd\x9d\x99\x08\x9a\x88\x28\x4b\xb2\x78\xc4\xff\x71\x61\x66\x8b\x88\x72\x27\x05\xa1\xab\xd2\xe6\xf5\x21\x7c\x32\x2e\x49\xd3\x8f\x31\x88\x5c\xec\x15\x94\x90\x31\x73\x5b\x39\xb6\x9e\xd3\xd0\xad\x28\x22\x2a\x12\x04\x50\xea\x02\x64\x8d\x3d\xce\xd3\x57\x48\x85\xc0\xea\xeb\x8b\x7c\x03\xb3\x70\xc6\x22\x9c\x86\xc5\x80\xf1\xcd\xf7\xf5\xd3\xf6\x7b\xc0\xac\x8a\x88\x29\x89\x3a\xd4\xeb\x52\x55\xed\x04\x29\x78\xd6\x64\x26\x22\x1e\x39\x7e\x0e\x53\xbd\x97\xdb\x17\xb8\xee\xdc\x94\xf5\xe1\x00\x26\xef\xe3\x50\x11\xf1\xd4\x60\xd1\xf0\x15\x3c\x5b\x59\xf8\x9d\x39\x5e\x96\x76\x10\x16\xdb\x56\x0f\xe5\xfb\xf0\x24\x38\x8f\x12\x33\xb0\x8a\x7e\x91\x8d\x5b\x3c\x87\xaf\x5a\x44\x5c\x30\xed\xbd\x0f\x64\xbc\xc1\x16\xf9\xe9\x53\xe0\x42\xd2\x21\xe6\x5e\xa0\x58\xcb\x7c\x72\x85\xa1\x19\x70\x35\x22\xe8\x7c\xb0\xde\x51\x9b\x1d\x52\xc4\xb1\x13\xad\xa8\xf2\xf2\xb6\x0a\xa4\x9b\xd3\x77\x2d\x80\x20\xf8\x5c\x41\xfb\x50\x7a\xef\x76\x76\x14\x00\x42\x03\x45\x00\x3a\x45\x33\xc7\x5e\x44\x19\x48\x4c\x77\xbe\xe4\xde\x71\xf0\xbf\x2b\xee\x3c\x06\xef\xe3\xfd\x3a\x6c\x0b\xfb\x98\x0c\xb5\x41\x06\xdc\x23\xb6\xd2\xff\x31\x7e\xa3\xca\xb8\x6c\x8b\x71\xbd\x2e\x57\x4e\x40\x6e\x57\x95\xc5\xc7\xae\xa7\x88\x16\x91\x8e\x2c\x62\x2a\x96\x0f\x77\xeb\x6f\xab\x11\x75\xb8\x88\x74\x2c\xb1\x5c\x5f\xe2\x1d\x3f\xd8\xe0\xe2\x06\x0f\x4e\x44\x9a\x46\x58\xc5\x5b\x37\x8f\x35\x1c\x64\x7b\xaa\xe7\x8f\x57\x5b\xc7\x84\x8b\x6e\xba\x27\x93\x95\xfd\xcc\x05\xce\xb1\xa8\x84\x86\x29\xa8\xae\xf5\x1b\x65\x8a\x6b\xc7\xa3\x6c\xeb\xaa\x73\x09\x82\xf2\xf5\xec\xc1\x82\x75\xe4\xd7\x58\x15\xfd\xd1\xb9\x0e\x60\x6e\xaa\x5f\xd2\xc5\x8a\xc8\xc6\x29\x06\x64\xb7\x00\x9b\x93\x6f\x75\x0c\x9b\x92\xcc\x63\x99\xb1\x06\x70\x81\xf8\x5d\x10\x92\x11\xd4\x27\xbc\xbe\x5f\x6c\xd7\x7f\x8e\x56\x74\x41\x62\xcb\xb1\x40\xbf\x88\x9f\x27\xbf\xa7\xa9\x75\x40\xad\xea\xed\x20\xa7\x82\xad\x82\xd0\x48\xe3\x97\xf5\x45\x1e\x86\xdb\x0c\xdb\x08\xc5\x64\xe4\x4b\xf5\x7e\x27\xcb\x0f\x24\x50\x58\x97\x3f\x20\xdf\x56\x57\x58\xaf\x1e\xdb\x1c\x42\xa9\x03\x8d\x37\xd0\x3a\x7c\x57\xbd\x1a\xd9\x6b\x3f\x88\xc5\x1c\xe1\x55\x08\xa9\x1e\x44\xbd\x66\x83\x7c\x73\xb3\x96\x85\x9e\x10\xf3\x8f\x6c\x2d\x61\x4a\x66\x8e\x1f\xcd\xb5\x41\xcc\x9e\x13\xf7\xf2\x96\x47\xf9\x71\x25\xcb\xd7\x41\x06\x4a\x10\x9e\xc4\x1e\xff\xde\xde\xc2\x1b\x99\x9d\x9c\xa7\x0c\x79\xb1\x9e\xba\xd5\x66\xf2\x1c\xb9\x20\x68\x78\x8f\xa7\xf2\x15\xad\xd0\x59\x4b\xa8\x1f\x28\x52\x6e\x58\xef\x19\x7b\x35\x30\xa8\x37\x37\xdb\x51\x65\xf0\x52\x8b\xa0\x20\x22\x8b\xb1\xc9\x73\xd9\xb9\x05\xa6\x9a\x9c\x3f\x33\x26\x14\xb6\x9d\x29\x68\x6e\xea\xea\x80\x1a\x0c\xde\x14\xf9\x81\x32\x91\xe0\x04\x65\xdb\xfc\x0d\x36\xcb\x07\x74\xa3\xa6\x5f\x32\x91\x82\x68\x0f\xcd\xbf\xcb\x4b\x27\x9f\x36\x1b\x21\x05\xf6\x52\x6d\x9e\xbe\x6f\xbe\x8d\x3e\x4f\xa2\x8c\x23\x43\xf3\xf5\x13\xaf\xf6\xbe\x28\x8d\x47\xd3\x7f\xc6\x3f\x75\x1e\x38\x4d\xfe\x35\x04\x51\x33\x74\xd2\xd0\x59\xda\x33\xdd\x76\x17\x6f\x53\x57\x8a\x74\x45\xd7\x8b\x9e\x93\x20\x3a\x16\x81\xe0\xed\x7b\x85\x2e\x88\x23\xeb\x0f\x9b\xa9\x04\xa7\xc6\xff\x36\xaf\xba\x89\x30\x84\x13\xa7\x5d\x64\x5d\xf5\xcc\xdc\x57\xef\xae\x6d\xb0\x3f\x88\x14\xa8\xa9\x21\xcd\x7f\x9f\x1a\x6c\x46\xef\x0f\x84\xa5\xb5\x68\xec\xd1\x0b\x62\x48\x84\x26\x1b\x73\xe6\x1a\x4b\xf7\x4e\x6e\xd8\x21\x6c\xfb\xea\x7b\x37\xd2\x44\x2e\x5f\xf0\xe6\x19\x16\x75\x95\xf4\x1b\x53\x82\x3e\xff\xa3\x9c\xf1\xc5\x09\x02\xcc\x11\x0d\x21\xde\xc3\x69\x87\x86\xbd\x2c\x21\x31\xed\xfd\xe2\xe7\xb2\xa9\x0a\xb3\x91\x16\x36\x07\x39\x7c\x21\x36\xd1\x28\x8d\xe5\xbd\x5c\xbf\x22\x5e\xb4\x67\xc4\xea\x58\x8e\xc8\xbf\x47\x5d\xce\x43\x94\x32\xdf\xc5\x32\x9c\xc8\xae\xdb\xf1\xd1\x95\x0e\xc0\xb8\xe2\x41\x33\xae\x47\x8a\x38\xd2\x19\xb6\x32\xa1\x42\x9a\x17\x3b\x10\x71\x64\x34\x86\x79\x52\xa9\x93\x7e\x99\xaf\xd6\x31\xd1\x02\xf3\x24\x0b\xad\xa1\x70\x74\xc4\xb8\x14\x87\xdd\x63\xe6\x10\x69\x79\xb3\x2e\x07\xc0\x8f\x88\xe3\xcc\xa0\xe1\xbf\x93\xe3\xee\x0b\x11\xa7\x91\x41\xf7\xbb\xc8\x9b\xf6\xb1\xfe\xd0\x6d\xd5\x5f\x49\x1a\x47\xf8\xee\x7b\xf6\xef\x3b\xd9\xea\x17\x7c\x95\xbb\xbe\x02\x4d\xd2\x61\x76\x87\x7f\x8b\x7f\xb1\x7f\x4f\x48\x4a\x3f\xf9\x7f\x7f\x1e\x4a\x84\x1c\x74\xe8\x74\xa0\x4d\xb8\xb0\x68\xf7\x8f\x8e\xc6\xdc\xfa\xac\xf9\x3d\xbc\x8f\x49\x56\xc2\x00\x21\x52\x2f\x67\x7f\x01\x42\x29\x62\x96\xb8\x24\xb3\x45\x03\x3b\xf5\x66\x63\x26\x88\x89\x03\xb5\x6e\x0d\xd7\x08\x8a\x3f\x40\x83\xa9\x85\x59\xf0\x31\x3d\x2d\x52\xed\x74\x13\xf7\x76\xb9\x9c\x3c\x66\x4e\x05\x62\x3f\x57\xdb\xaf\x4f\x4e\x25\xcf\xf4\x9b\x44\x82\x1d\xc8\xd7\xa0\xa1\x6c\x4f\x75\x5e\x5d\x68\xd7\x14\x31\x57\x31\x0d\x02\xe5\x5d\x24\xd3\xe3\xdd\x47\x60\x8c\x2e\x7e\x89\x30\x2a\xd9\x6c\x56\xe1\x27\x61\x25\x5a\x93\xed\x8b\x74\x4c\x47\xc1\xad\x6e\xce\xe9\x96\x44\x9c\xc5\x12\x9d\x4a\xf0\x1a\x24\xb3\xab\xc8\x52\x3a\x02\x3b\x23\xe2\x31\xef\x1c\xf9\x8b\x26\x3f\xce\x4c\x82\x88\x23\xc0\xaa\x42\xf3\xc7\xe4\x50\x32\x75\xe4\x23\xea\x54\x77\xbe\xeb\xa2\x34\x9d\xb5\xfb\xac\x50\x39\x32\xa6\xe3\xb9\x23\xa9\x16\x9d\xbd\xfe\xfa\xe3\xcb\xf4\x81\x4b\x15\x29\x9f\xe1\x38\x1d\x7f\x07\x85\xfc\xdf\xfe\xf5\xe7\x50\x69\x84\xad\x16\xfe\x61\x74\xee\xf3\xd7\xea\x54\x17\x1f\x7f\x8c\x1e\xa8\x62\xae\xec\x9d\x3b\x82\x35\x27\x61\x14\x20\xb4\xfd\x18\x8b\x01\x5e\x2f\x42\xf0\x5c\x6a\x8c\xa2\xc6\x5f\xb0\x32\x4e\x73\xa9\x29\xe5\xb1\x79\xa9\x5a\x5f\xdd\xa8\xea\xcb\x0d\xb9\x22\xd6\x92\x86\x82\xea\x4e\x36\x4d\xa5\x03\x27\x71\xd8\xae\x25\x66\x28\x3a\x1b\x39\xf2\xd5\x62\x43\x52\x3b\x30\x19\x7d\x3d\xaa\xfb\xca\xa0\x62\xe7\xac\x39\xe6\xbc\x2c\x24\x62\x13\x9b\x64\xc0\xfb\x74\x2f\xf4\xa9\x0a\x0c\x52\x22\x36\x2c\xc2\xbe\xcb\xce\xd8\x5c\x9b\xf3\xa2\xf4\xf4\xf1\x9a\xcc\xa9\x60\xbe\xe7\x45\xf1\x81\x0d\x43\xb2\x78\x9d\xbc\x64\x80\x18\x35\xc3\x7c\xf0\x8a\xc4\xe5\xd3\x67\x60\x69\x14\x4d\x14\x0c\x9c\xfc\xf0\xf9\xf7\x95\x44\x8c\xf3\xa0\x5f\x77\x70\x1d\xf4\xe8\x15\x6e\xa0\x28\xe6\x43\x8d\xc4\xa2\xac\xef\xee\xf9\x6c\x52\xa1\x67\x32\xb9\x9c\x24\xb2\x31\xba\x2f\xcd\x49\x8d\xe8\x54\x67\x87\x27\x9c\x09\xda\x53\xd0\x7e\x96\xe6\x08\x83\x7d\x29\x66\xd7\x7d\x46\xbf\xc6\x94\x8c\x3f\x9c\x24\xc9\x24\x96\xd0\x96\xf5\xc7\xb1\xad\x36\x5a\x16\xc7\xde\xdf\x4d\x52\x92\xc5\x71\xf0\xfe\x5d\xe9\xcd\xe9\xf2\x86\x01\x54\x6a\xc4\xa1\xc1\xcf\x8b\xd6\x70\xfa\x22\x13\xc6\x53\x66\x7a\xcd\x9b\x4d\x0b\x21\x56\x49\x38\xd1\xd8\xfb\x07\xa5\x41\x22\x92\x61\xba\x27\x5c\x29\xc4\x65\x62\xce\x71\x77\xf3\xf0\x7c\x7f\x1d\x70\xa1\x22\xe1\x10\xe1\x67\xdf\x4d\xb2\xdd\x4b\xde\x60\xbb\xfc\xf4\xa4\x59\x2c\xa5\xa7\xae\xd8\xe4\xaa\x98\x6b\x07\x8a\x44\x82\x4b\xa3\x5d\xe5\xed\xf2\x05\x35\x3b\xc6\x73\x2b\x51\x29\x47\x57\xc6\x37\x05\xe6\x6d\x7b\xc6\x90\x39\x7f\x33\xe3\x2f\x21\x51\x92\x53\x0f\x0a\xa8\xbd\x4e\xf0\x98\x1f\x25\x8c\x02\x92\x3a\x0e\xbb\xe0\x6b\x8e\xb8\x38\xa6\x37\xa4\x53\xa7\xa9\x1e\x22\xc6\xd0\xfa\x18\x2e\xd8\x10\x8e\x2b\xb9\x2e\x72\x28\x1d\xfb\xd0\x64\x6a\x86\xb4\x48\x62\x68\x8a\x0d\x7e\xc8\xfa\xe9\x56\xd9\x59\xd6\x55\x24\x46\x49\xcc\xba\x35\xae\xaa\xf2\x2d\x6f\xdb\x7c\x06\xf7\xee\x06\x39\x04\xa5\x33\x14\xf8\x65\xc1\xa5\x45\x25\x01\x13\x61\x4b\xea\xaa\x34\x3c\x5c\xae\x8d\x9c\x7b\x1a\x98\x51\xef\x7a\xcd\xa9\xcb\xae\x55\x62\x89\x40\x06\x26\x9c\x94\x3d\x12\x78\x0c\x0c\x17\x89\x05\x67\x23\x9f\xe0\xd4\x34\x79\x0b\x3f\x47\x76\x2d\x8d\x44\x8a\x70\xe0\x1d\xa6\x2f\xea\x91\xf2\xfb\xe4\xcd\xa5\x91\x8a\xac\x08\x4a\x3b\x3f\xa1\x38\x77\x2f\xd2\xc8\xa6\x98\xba\x97\xdd\xa7\x31\x6e\x5e\x98\xce\xfc\x94\x44\x2e\xe6\xa9\xca\xee\x4b\xfe\x8c\xc6\xf7\x93\x9c\xea\xa7\xbf\xff\xd2\x6c\xa6\x24\x21\xc8\x19\x50\x1c\x8c\x0c\xb7\x4e\x54\x86\x80\xe5\x57\xe4\x9f\x08\x68\x0d\x91\xc6\x22\x71\x44\xed\xb5\x2c\x7d\x1b\xf3\x35\x7e\xa4\xd3\xe9\x90\x26\x99\x42\xf2\x4b\xb4\x88\xd2\xda\x02\x6e\x1f\xb6\xae\xf6\x70\xf1\x65\xa5\x89\x72\xa8\xea\xdd\x90\x5a\x7c\x3e\xee\x6b\x69\x40\x3a\xe8\xfc\x39\xf0\x4a\xa4\x29\x91\x98\xd2\xf7\xa4\xc2\x57\xf9\x04\xeb\x22\x52\x4a\x9c\x8a\x22\xce\x00\xef\xb3\x85\x57\x9f\xd2\x84\xa2\x87\x95\xf7\x7d\x80\x9b\x23\x84\xb2\xe8\xf4\x09\xd1\xc4\x22\x8d\xac\x9f\xb7\x3e\x15\x79\xf9\x69\x52\x43\x30\xe3\x73\x2f\x0f\xd3\x98\x35\x65\xb1\x72\x44\x91\x55\x89\x76\xfa\x62\x90\x96\xb2\x04\xf0\x41\xdc\x00\x60\x47\x3a\x98\xe5\x10\x8d\xa4\x2c\xd3\x5e\x29\xd6\x89\xe8\x22\x55\x18\xca\x6c\x07\xe4\x02\xca\x18\xc9\xb1\xde\xc7\x19\x50\x70\x36\xad\xfe\xf5\xef\x8b\xf5\x64\x91\x72\x26\x79\x10\x6d\x0f\x64\xa1\x97\x2f\x5a\x44\x0e\x38\xe3\x49\x20\x9a\x47\xa8\x43\x93\xe7\xec\x51\x0a\x4a\x9d\x8c\xd6\x4b\x75\xdc\xbc\x54\xd0\xbf\x0e\xc1\x15\xc0\x90\xf0\xf1\xbd\x5d\x33\x0c\xf2\xec\x4e\x42\x00\x9c\x0a\xc9\xad\x1c\xe1\xdc\x1f\xab\x56\xb6\xd5\x7c\x71\x4f\x33\x22\xf1\x83\x5e\x2f\xef\xff\x79\x46\x90\xf0\xdb\xaf\x6a\x7e\x2c\xc0\x5c\xad\x76\x40\x3c\x87\xe4\x6c\x56\x85\x3c\x36\xbd\x89\x4d\x33\x6d\x39\x1f\xf5\xb7\x5c\xaf\xef\x5d\xd7\x49\x53\x15\x6f\x9f\x70\x3d\x88\x34\xb3\x0c\x73\x69\x18\xd9\xec\xf2\x80\xf9\x15\xa9\xb4\x8e\xe9\xc1\x67\x29\xf1\x56\x7b\x90\xee\x24\xf3\x9a\x1a\xeb\x92\x93\x38\x9d\x1f\x5d\x67\xcd\xea\x6a\x19\x8e\x04\x69\x86\xad\xa0\xb2\xbe\x8c\xee\x15\x29\x08\x86\xb1\x6c\x73\xda\xef\xa1\x69\x9f\xeb\xe2\x72\x8e\x37\x05\x13\x31\x8f\xf3\xbd\x92\x6d\x5b\x60\x07\xfa\xed\x88\x0f\xd2\x8d\xa3\x84\x30\x54\x0f\x87\xd2\x3c\x58\x0c\xc4\xff\x08\x5b\x18\xc3\x3a\x99\xdc\xc3\xf0\x7d\x52\xa2\x5c\xbb\xd6\xcd\x7f\x7d\xed\x7f\xb2\xc4\x03\x64\xe0\xa7\x81\xb7\x6e\x0e\x85\x4d\x31\xb5\xa6\x47\x22\x78\x38\xe0\x10\xe6\xd0\xd8\x52\xed\x2a\xc2\x79\x61\x70\x15\x78\x2e\xf3\xf6\x32\x77\x9f\xa0\x29\x71\xba\xf1\x1e\xab\x74\x2b\x9b\x76\x2c\x2d\x26\x68\x9a\xb8\x34\x22\x66\xc9\xab\xc3\xda\xfc\x74\x44\x8c\xab\xa2\x01\xac\xf7\x37\x13\x0e\x70\x41\x69\xcc\x33\x18\x0b\xa5\xf5\xd6\x68\x56\xbb\xa1\xd4\xf8\x78\xca\x79\x4a\x21\x4e\x3a\x67\x14\x13\x94\x19\x85\x34\x9c\x08\xed\x5d\x16\xd5\x30\xf1\x28\x17\x19\xfa\x49\x9e\x88\x1f\x26\x62\xcd\xbf\x5b\x26\xa6\xef\x8d\x2b\x11\x18\xb1\x7d\x8d\xef\xea\xc3\xff\xc3\x4b\x32\x06\x47\x81\x0a\xe0\x98\x1e\x52\xf9\xfe\x0a\x64\x3d\x5a\x4b\xa9\x00\x4b\x02\x02\x0b\x25\xa1\xee\x2b\x87\xae\x5a\xca\xb2\xbd\xaa\x41\x06\xad\x0c\x41\xb3\x84\x72\x97\xad\xee\xee\xbb\x77\x0a\xa8\x14\xee\xad\x9c\x51\x73\xcf\x2e\x58\x66\x89\xe3\x0c\xd0\xd5\x63\x5d\x69\x00\xd3\x37\x00\x09\x2a\x75\x82\x3d\xe4\xb9\xae\x56\xa8\x2c\xe6\x7f\x57\x91\xc5\xd2\xf2\x55\xde\xea\x2a\x2f\xef\xe4\xcf\x7e\x0b\x49\x13\x7f\xda\x40\x21\xe4\x12\x3b\xdd\xbf\x2e\x90\x9b\x08\xaa\x38\x0f\x9d\xe2\x01\xc0\xe9\xdd\x87\x4b\x1c\x9c\x13\x5f\x82\x2a\x1d\x63\x17\xe3\x3b\xe4\x4f\x32\x6f\xc0\x5c\x9f\xba\xad\xee\x7b\x19\xa5\xe2\xa8\xd2\xd4\x25\x1e\xab\x6a\x61\xcc\x25\x02\x24\x41\x95\x4d\x20\x0d\xeb\xdf\xed\xa9\xbf\x25\xcd\x2c\x62\xf0\x71\x75\xfe\x0a\xb2\x68\xfb\x87\xaf\xc1\x39\x20\xdf\xf3\x76\xbc\x78\x51\x13\x3b\x06\x9c\x12\xde\xaf\x1d\xcd\xfe\xff\x9f\xb3\x37\xdb\x6e\x1c\x47\xb6\x40\x7f\xa7\x1f\xfa\x81\x13\x48\xe0\x51\x96\xe5\x4c\x57\x79\x3a\x92\x32\xb3\xfa\x9e\x75\x96\x56\x00\x08\x58\x2c\x4b\xa4\x9a\xa4\x32\xad\xfa\xfa\xbb\x18\x00\x38\x89\x76\xd5\xbd\x2f\x9d\x5d\x26\x48\x71\x00\x02\x31\xec\xd8\x1b\xe4\x34\x10\x69\xa7\x2e\x73\xdb\xc0\x37\x12\xcb\x69\x40\xbd\x0d\x88\x76\xfe\xc6\x1f\x19\x78\x80\x0c\x43\x30\xa9\xc3\xb5\xed\x54\x57\xac\x60\x28\x05\x75\x46\xfe\x72\xcc\xeb\x8b\x6b\xda\x77\xce\x8c\x90\x99\xa3\x6a\x68\xb7\x23\xcb\x62\x3a\xc7\xaa\xcb\xd3\x30\x66\x94\xc8\xf6\x2d\xc9\x4f\x78\x3e\x42\xf5\x66\x41\x5f\xe3\xcb\xa6\xa1\x08\x28\x55\x46\xf3\x76\x4e\xe0\x8d\xa7\x51\xa0\x09\xbc\xe3\xcb\x07\xe3\x0a\x43\x1a\xc5\xb6\x69\xe3\x98\x17\x94\x84\xbb\xc5\x03\x5c\xba\x83\x46\x53\xa6\x0e\x9b\xfd\xa4\x21\x94\xa7\x71\x18\x32\xf4\xad\x58\xf7\xd3\x1b\x8b\xd3\x80\x88\xad\x07\x0c\x1c\x23\x37\x37\x4d\x14\x23\xdb\xeb\x8b\x48\x9b\x33\xb9\x6e\xe6\x7c\x78\x21\x82\x2e\x37\x8c\x29\xdb\x76\x4a\xb2\x61\x58\x5d\x75\x22\xf2\x34\x15\x9a\x22\x33\xeb\x09\x11\x6b\xc0\x74\x8b\x4f\x21\xd2\x41\x44\xd0\x50\xa8\x9b\xf2\x58\x76\x97\x87\x48\x13\x22\x71\xa7\xd1\x36\x2d\x7d\x56\xe8\xe7\x29\x24\x16\xbf\x72\x93\x37\xf5\xb9\x7a\xed\xde\x05\xb0\x88\x78\x9f\x7a\xfe\xd8\x21\xd8\x93\xa7\x90\x0a\xef\x0c\x3c\xc2\x7b\xeb\x18\x6e\xda\x79\x48\xe9\x96\x6e\x8c\x48\xc8\x96\x3c\x42\x5d\xe7\x3f\xf1\x70\x71\xb3\x14\x2e\x58\x3d\x17\x87\xbc\xc0\x09\xe9\x31\x4f\x41\x66\x44\x27\xf2\xf8\x9f\xcd\x7f\x1e\x6f\x9e\x1f\xba\xbf\xab\x88\x1a\x93\x49\x48\xec\xd9\xbc\xd8\x2b\xf6\xe0\x1c\x37\x4c\x86\x8a\xb4\xdf\x6e\x89\xbe\x69\x59\x56\xdd\xf3\x28\x65\x08\x95\xa6\x11\x9a\x7d\x1b\x3b\xec\x8c\xa7\x2b\xe0\xa9\x32\x19\x41\xc5\x1f\xf3\xa2\x41\xbd\x6a\xf6\x96\xa3\xed\x43\xfa\xa3\x7f\x96\x89\x4a\x95\xe1\x89\x2b\x95\x6e\x73\xac\x46\x4c\x7d\x3c\xd5\x3a\x24\xa8\xc1\x72\x69\xab\x6a\x04\x1f\xf2\x07\x31\x09\x29\x87\xe2\xa6\x00\xbc\xff\xc0\x7c\x32\x03\x90\x47\x3c\xee\x05\x39\xe8\xbe\xfd\xe9\x06\x94\xec\xc0\xd0\x1b\x74\x42\x5f\xf3\x6d\x10\xfe\x14\xc5\xa8\x73\xe2\x00\x75\xd3\x4b\xe3\xf2\x2c\xe0\x09\xcd\xa7\x1a\x1b\x47\x35\xb7\xdc\x0f\x3d\x73\x3f\x4c\x64\x44\xa1\x43\x4c\x9f\x77\xb9\x69\x2e\x9b\xfc\xdd\x37\xec\xbb\x31\x61\x94\x92\x79\xfb\x42\x9d\x15\x3e\x95\xe9\x0f\xf2\xd0\x39\xdd\xcd\x77\x38\x1f\x08\x8f\x30\x5e\x17\x59\x14\x71\x42\x3b\xe4\xaa\xf4\xb4\xb6\x14\xde\xde\x17\x53\x65\x13\x9e\x45\x06\x13\x97\xae\x71\x5e\xc0\x6c\x32\x34\x8b\x59\x4c\x9e\x40\x3b\x2b\xbf\x4c\x71\x64\x3c\x8b\x33\x4e\x50\x68\xfb\x1d\x48\x62\xc2\xe4\xa8\x3b\xe9\x9e\xd3\x78\x6f\xfa\xf7\xe4\x6c\x65\xa9\x41\x6b\x6c\x86\x38\xd3\xf9\x44\x85\x3b\x27\x09\x05\x4d\x0b\x6d\x21\xec\x64\xc1\x06\xd3\x26\x63\x41\xc6\x9d\x27\xf8\xad\xc8\xff\x7b\xc6\xdf\x71\x8e\x1b\xd3\x7b\x8e\x19\x53\x40\xc6\xb2\x94\x7f\xa2\x6a\x7e\x2f\x72\xd3\x5d\x2a\x8d\x43\xd2\x1b\x7f\x39\xc0\xe5\x0f\xd6\xfd\x55\x30\xcb\xfc\xd4\x4e\xca\x2f\xf9\x4f\x5c\xfc\xea\xcc\x67\x96\x0a\x31\xc2\x79\x74\x64\xa6\xe1\xe4\xbd\xa6\x3a\xa2\x68\xae\xfa\xf5\x05\xfc\xf2\xcc\x44\x1c\x50\xb6\x9c\x98\xcf\xfa\x3f\x82\xad\x8c\x13\x33\xc2\xd7\xdf\xbf\x4c\x83\x9a\xd1\x5e\x92\x09\x93\x91\xcb\x7c\xbc\xdc\x56\x65\x81\x43\x1f\x78\xf2\xf6\x41\x25\x99\xa7\x1d\xbb\xab\xca\xa3\x03\x6f\x4e\x9a\x68\x27\xe7\x18\x41\xca\xb2\x34\x45\x09\xee\x62\x9d\x82\x19\x18\x4f\x26\x83\x94\x90\x7c\x6d\x34\xed\xc2\xe8\x69\x17\xe3\xe4\xdb\xaa\x48\x76\xfc\x06\x03\xac\xea\x2d\x69\xf9\x9f\x87\xfc\xe6\xfe\x04\x8d\x21\x3a\x98\xd4\xeb\x95\xe2\x3f\xcf\x74\x6a\x11\x64\xf7\xcb\x67\xa0\xda\xab\x7f\xa9\x26\x42\x7a\xd3\xa7\x33\x29\x99\x9c\xe7\xdb\x36\xfb\xe7\x36\xc0\x2d\x0f\x4d\xeb\xe0\xda\xda\x6c\x77\x04\x45\xdc\xf3\x9d\x8d\x43\x46\x3b\x86\x07\x91\x05\x2e\xde\x40\xa1\xa0\x9a\xee\xab\x3c\x90\x99\x05\x9e\x2c\x16\x6a\x88\xcd\x75\x87\xc3\x20\xa0\x09\x70\x7b\xff\xb2\xdb\x7e\xf1\x15\x12\x1e\x0a\xee\x5b\x1b\x69\x95\xdf\x5c\x56\xdb\xaf\xe3\xe5\xc9\xa3\x30\xe2\x8e\xa5\x4c\xe3\x62\xf8\x06\x78\x94\x72\xe8\xe0\x18\x54\x24\xb2\x5d\xff\x7e\x32\xf2\x98\x33\xca\xc8\x40\x01\xaa\x9c\x00\xa3\xda\x28\x10\x9d\x93\x75\x83\xcd\x28\x5d\x31\x7e\x73\x3c\x31\x11\xa9\x38\xd8\x8d\xf2\xe0\xc8\x45\x3e\x7d\xdb\xad\x6f\x48\x7d\x1d\xbe\x97\xd9\xfa\x11\xdb\xf2\x11\x8a\xcb\x5c\x17\xa9\x3b\x2d\x4d\x6c\x75\xb6\x8d\x42\x9a\x7f\xc0\xc5\xc4\x79\x9a\xda\xc2\xa7\x97\x3f\xc8\x15\x3e\x42\x71\x86\xc3\x24\x2f\xcb\x53\xc5\x42\x37\x33\x0b\xcb\xec\x38\xe3\x37\x73\x1e\xa7\x5e\x61\xba\x13\x98\x1c\x6e\xdf\x9c\x73\x49\xf9\xeb\x5d\x97\xd9\xf7\xf9\x50\xe7\x2a\x7d\xb6\x71\x4e\x76\x24\x2e\x22\x93\x3a\x52\xd7\x6e\x4a\x59\x87\x6e\xca\x4b\xc2\x39\x08\x2b\xd8\xda\x6e\xf9\x37\xe7\xcb\x66\x0f\xd5\xfc\xae\x3d\xe9\xad\x1e\xe8\x0d\x8c\x27\xa5\x0c\x6d\x7c\xe4\xf9\x55\xfa\xcd\x95\x4b\xa6\xa8\x82\xe3\x12\x04\x9e\xc6\x6e\x7e\xcd\x73\x69\x22\x2e\xbd\x52\x5f\x71\x6e\x67\xe2\x73\x81\xf3\xec\x6c\xdd\x29\x22\x8a\xbb\x72\xcd\xea\x08\xf9\xe1\x8a\x22\x81\x73\x15\x59\xd1\x40\x0f\x6a\x71\x0d\xd2\x93\xc5\xa5\xa4\xc4\x9e\x49\x67\x63\xa1\x51\x23\x63\xc3\xaf\xff\xd7\x9f\x6b\xac\xc8\x3c\x1e\xf3\xc6\x02\x10\xa8\xb7\x85\x32\x85\x13\xcf\x7c\xa8\xe9\xc8\xb9\x8e\x33\x8a\x66\x6f\xca\x03\x56\xa3\xfc\x1c\xd7\x29\x50\x03\x92\xc9\x0b\xbd\xc1\x63\x6e\xd9\xd0\x5a\xcf\x62\x4c\x9c\xcc\xb9\x06\xad\x7c\x26\x0f\xeb\xc6\x37\x82\x4d\xde\x02\xa6\x92\xbc\xa0\xd7\xfc\x27\x6e\x09\x78\xdb\xee\x66\x93\x97\x80\x99\x15\xe7\x2b\xce\xc7\x67\xf3\x78\x69\xf6\xb9\xea\x20\x9f\x1c\x55\x48\x9d\x80\xc7\xbc\x18\x1a\xe5\xfb\xe2\x5b\xad\x97\x83\x5c\x09\x47\x8c\x84\xf4\x44\x43\xfe\x8f\x26\xca\x68\x8b\x5f\x1e\xca\xb3\x76\x11\xb3\x3f\x94\x21\xd1\x93\x1d\xac\x5a\x98\x25\x30\xf3\xc7\x38\x23\xe6\xc9\xfb\xaf\x2f\x8f\xdd\xdf\x84\xcd\xee\x5b\x5a\x93\xf1\x23\x88\x20\x52\x2a\x1d\x6c\x66\x5f\x4c\xf3\xd9\x46\x26\xc2\x28\x64\xaa\xeb\xdb\xec\xf7\x60\x11\x8a\x90\xd8\x08\x6e\x9f\x3b\x53\x2b\x42\x65\x59\xf7\xdc\x84\x7b\x57\x78\x9a\xba\x4b\xe3\x59\x2d\xa2\x44\xf2\x70\xa0\xa8\xf0\xaf\xb9\x6a\x8b\x88\xc3\x94\xe2\xcb\x03\xfe\xc4\xc3\x2e\xf2\xf2\x61\xdd\x51\x4b\xf2\x24\xcf\x17\x92\x37\x99\x91\xd9\xe0\x22\x8e\x0c\x6d\x64\xb2\x51\x0e\xe1\x7d\x7e\xdd\x37\xe3\x88\x4f\xc4\xb1\x96\xca\x87\xe0\xd6\xd2\xac\xf1\x98\x77\xc9\x2f\x11\xeb\x84\x6e\xb7\x2a\xf4\xf6\xb8\x6a\xf6\xbb\x79\x63\x2e\x58\x10\x52\x71\xf3\xe6\xac\xde\xea\x41\x66\x45\x30\x2e\x89\x60\x7a\xf7\x8a\xcd\xf6\xbd\x8d\x1f\x6e\x06\xfd\x3f\xa3\x45\xd0\xdd\x7a\x1a\x2b\xee\xdc\xff\x9b\xbc\xb5\x85\x15\x0c\xd2\x7b\x23\xc5\x6f\x2e\x52\x66\xdb\x78\x07\xf4\x83\xed\xc3\xdc\x9d\x0b\xdd\xa3\x10\x45\x9a\x25\xc2\x45\x5d\xd4\x0c\xbc\x1e\xd0\xe5\xfb\x21\x26\xce\x5c\x26\xc9\xe6\xa3\x9a\x2e\x36\x14\x59\x98\x12\xa8\x61\x71\x7b\xbb\xde\x3d\x2e\xfe\xb3\xd8\x3d\xaf\xbf\x74\x07\xe3\xcc\xc8\x2e\xbd\xeb\x3c\x5c\xcf\xf8\x39\x7e\x4d\x19\x84\x2a\xf5\xbe\xfa\xe1\x8c\xdb\xd2\x76\xbc\x74\x97\x02\x4b\x44\x4c\x65\x7e\x07\x89\x18\xb0\xbd\x71\x91\xa1\xcd\x99\xd4\xa7\x43\xde\x6c\xf7\x78\x33\xd1\x96\xe1\x82\x9b\x24\xe8\xd0\x1e\xe7\x42\xdf\x17\x54\xb0\x1b\xf7\xe7\xb2\xf9\xfd\x55\x88\x20\xa6\xaa\xb1\x6b\x21\x28\x0f\x65\x75\x73\x38\x77\xbf\x0e\x61\x96\xc4\xbd\x92\xd6\x44\x2e\x84\x0b\xc9\x39\x25\x1e\x7b\x34\x93\x4f\xe9\x0a\x95\x4a\x72\x99\x77\x16\xb8\x7e\x8b\x06\xdb\x0f\x34\xa4\x8c\x73\xd6\x53\xe8\x0c\xbc\x96\xd6\xf9\xf4\x3d\x07\xd7\xb1\xd6\x4c\xbd\xf5\xf1\x3f\xe3\x10\xed\x33\x41\x57\x2e\xb4\x82\xc4\x36\xbb\x1f\xf3\x66\xe5\xe3\xa9\x39\x1d\x9d\xfe\x1c\x64\x48\xc0\x87\xae\x45\xe9\x7f\x1a\xef\xdc\x0b\xcc\x2c\x4b\x4a\x6b\x4b\x37\x4d\xae\xde\x3e\xda\xa1\x84\x89\x03\xa2\x20\xbe\x5b\xbc\xb4\x33\xd4\xb5\xdb\xfa\x10\x42\x18\x6d\xf9\xb3\x7f\xe2\x3e\x57\x07\xb4\xfe\xad\x3d\x06\x81\x54\x5a\x7b\x72\x2e\x97\xf0\x1d\x6f\xd0\x6e\x60\x18\x45\x10\x75\x82\xe5\x8e\xa6\xe2\x9b\xa3\x14\xf2\x63\x44\x68\x45\xcd\x2d\x91\x2c\x10\x43\x3b\x45\x17\x77\x38\x99\xb4\x10\x2a\xa0\x6a\xdb\xa1\x4b\x34\x0f\xc2\x2a\x88\x04\x8f\xa0\xff\xb0\x84\x4e\x43\x6a\x8b\xea\x64\x9a\x39\xc4\x2c\xd5\x9e\xb3\xc6\x8a\x9e\x8d\xee\x38\xe6\x31\xc1\x57\xff\xac\x4b\xcb\x1a\xe6\xda\xa8\x67\x5c\x29\x88\x75\xe8\x05\xbb\xbf\x15\xca\xe2\xfc\x6c\x5f\xfd\x38\xa0\x1c\xad\x0a\x48\x44\x40\x9d\x03\x8a\x74\x28\xdc\x1f\x59\xa0\xd0\x79\x65\x94\x6b\x9c\x0d\x74\x81\xc5\x61\xec\x98\x93\x7b\x86\x9a\xf1\x1b\x62\x4e\x4f\xa6\xd7\xf2\x9f\x46\x9f\x90\xf2\x8c\x4a\xac\x26\xb7\xe2\x2c\x03\x14\x33\x64\x81\x45\xe1\x83\x6a\xf7\x0f\xab\x75\x96\x17\xaf\x93\x1f\xc9\x92\x98\x92\x00\x75\x5e\xbc\x9e\x0f\x50\xdd\x6e\xbf\xf7\x42\x67\x1c\x32\x11\x13\x7a\xe7\x0b\x36\x3f\xf2\x83\x5e\x42\x65\x99\x7a\x26\x57\xe1\x99\xa4\xba\xa2\xef\xcd\xd9\x3a\x7a\xf2\xe3\x7c\xab\x36\x07\x08\x8c\xa5\x49\x68\x5d\x80\x35\x74\x89\x21\x00\xa9\x8d\x55\xf5\x79\x7f\xcc\x0b\xac\xea\x3f\x06\x72\x3a\x1c\xc0\x24\x84\x71\x7e\x05\x92\xf2\xdb\x9f\x8d\xe9\x9f\x58\x06\x61\x60\x3b\x6e\x89\xfb\x3f\x57\xf9\x89\x52\x65\x63\x67\xd7\x0f\x86\x20\x30\x83\x94\xce\x4c\x2e\x19\x94\x89\xe9\x2e\x5b\xef\xe8\xb7\x52\x4e\xae\xa0\x93\x94\x54\x39\x1f\x56\x36\x63\x34\x69\xd7\xe4\x80\x69\x44\x99\xcf\xc5\xf3\xfd\xa6\xfb\x1b\x97\xd4\x6b\xf0\xb3\x6c\xf0\xbe\x78\x24\xa2\xaf\xdf\x71\xe2\x21\x81\xc9\x32\xab\x6b\x4e\xb8\x8a\xdd\x69\x9e\x2b\xf2\x23\x7b\xf4\xef\xd9\x0d\x50\x06\x22\xa2\x8e\x5c\xd0\x9a\xd2\xec\x5b\x38\x75\xb1\xfd\x5c\xb8\x22\x03\x88\xa0\x93\x57\xcb\xc9\x58\xbe\x40\x5d\xcf\x72\x03\x71\x19\xa2\xa1\x0d\x4b\xe6\xfa\xd9\xb8\x85\x3a\x6b\xae\x64\x68\x22\xa1\xba\x9e\xc8\x1b\xd2\x2b\x1e\xbf\x5b\x19\x31\x46\x7e\xb2\x41\xb5\xff\x5e\x36\xf8\x74\x3e\xb6\x31\x23\x14\x7a\xa4\x49\xe3\x46\x27\x31\xa3\x9f\x7e\xc4\x2a\x6f\xfa\xd6\x1d\x99\xc4\x19\xb1\x30\x10\x78\x74\x04\xac\x93\x09\xc4\x14\xce\xb6\xbe\x6c\xbb\x25\xc2\xc1\x27\x66\xfd\x00\x15\xc4\x6c\xd8\x52\xf5\xa5\x24\x69\xef\xc9\x8d\x32\x66\x45\x93\x5d\x7e\x68\xb9\x87\x3e\x6b\x2b\x19\x66\x19\xf3\x9c\x44\x9e\xaf\x63\xf5\x7e\xfa\x90\x9a\x68\x10\x5e\x4a\xae\x15\x55\x08\x4f\x55\x79\x2c\x29\x5a\xce\xcb\xc2\xaa\xe1\x0c\x98\x22\xb8\x14\x91\x26\x0c\xcd\xb7\x1a\xab\x41\x1b\xf6\xac\xc5\x92\x42\x2b\x1c\x92\x0f\x5a\x4c\xf4\x4b\x85\x27\xa8\xf0\x0e\xf2\xc3\xb9\x5b\x8a\x12\x74\x8c\xae\x91\x85\xda\x68\xbb\x35\x55\x34\xd7\xfa\x77\xbd\xef\x24\xc1\x68\x27\xb1\xe2\xdc\xf7\x8f\xe5\x27\x06\x60\x2b\x29\x33\x4d\xf2\x16\x56\xcb\xbf\xd9\x6f\x3a\x35\x29\x2e\x55\x9c\x30\x27\xc3\x63\x13\x08\x3f\x1e\x3e\xc7\xc5\x49\xa5\x25\x1b\x74\x9c\xda\x50\x60\x62\x84\x25\x3a\xe9\xfc\x5d\x85\x66\x73\xa9\x1b\x3c\x4e\x07\x08\x4e\xbb\xe3\x31\x7f\xad\xa0\x41\x72\x32\xff\xec\x31\x89\x12\x51\x11\xe4\xa3\x3e\x1f\x8f\x6e\x1e\xbb\x23\x26\x0b\x52\xd7\xfe\x7e\x63\x43\x6e\x8f\x9f\xbd\x7e\x63\x2a\x90\x9a\xb2\xfb\x06\xdb\x89\xb6\xdd\xf7\x4c\x0f\x5c\x85\x2a\x26\x42\xa6\x9d\xd7\x63\xba\xd7\x63\x9f\x5c\x45\x71\xe6\x7f\x6a\xf9\xc7\x83\x8f\x7f\xaf\xd8\x42\xb9\x8a\xd2\xc4\xeb\x5d\xe4\xaa\xdc\xed\x29\xe8\xad\xed\x0e\x67\x1d\x90\x36\x78\x1d\xd0\x07\x70\x15\x87\x29\x09\x38\x1d\x4a\x28\x7c\xc7\x70\x59\x3c\x95\x4d\x6e\x72\x05\xcd\x55\x00\xa8\x62\x19\x60\xdf\x38\x6d\xed\xa2\x17\x78\xe9\x2e\x2a\x39\x7d\xe9\x23\x1e\xcb\xee\x6f\x2a\x14\xae\xd6\x46\x92\x31\x93\x67\x64\xa9\xa1\x84\x48\x47\x7d\xed\xfe\x9e\x06\x9a\x3e\xf3\x6b\x05\x0a\x2d\x1e\xa1\xef\xf2\x51\x69\x24\x29\xe4\xdb\xf4\x9b\xdb\x8f\xb2\x7a\xab\xf7\xe5\xa9\xa3\x5f\xe3\x2a\x95\x76\xc3\x26\x5f\xbf\x6e\xca\x23\x75\xc9\x11\xcf\xdc\x80\x80\x76\x3c\xbf\x54\xea\x68\x2c\x1b\x78\x73\x4f\x79\xd3\xcf\x0b\x95\x45\x21\x15\xa7\x8e\xf0\x67\x59\xad\x7e\x52\xd8\x3a\x3e\x3f\x63\x61\x3c\x14\x3d\xad\xf0\x98\x9f\x8f\x83\xfd\x5b\x65\xcc\xc2\xa4\x3d\x2a\xd5\xa2\x4b\xf3\xd7\x8f\x94\x81\xe6\x17\xd7\x7c\xcf\xa3\xe2\x2a\x80\xac\x6b\x8b\x40\x1b\x38\xf5\x14\x35\xed\x00\xa0\x18\x7d\x47\x7d\x81\xed\xec\x28\xae\xf1\x83\x4a\x60\x42\xd9\xef\x76\xc7\x2d\xf3\xeb\xa7\x04\x96\x90\xfb\x40\x75\xa8\x9b\x61\xc0\x30\x5a\x67\x4a\x66\x31\xa5\x58\x1e\x21\x2f\x0a\x6c\x56\xdb\xe5\xe6\x5c\xfd\xf4\xaa\x4c\x5c\xa9\x30\x36\x4e\xb2\x0b\xab\x66\x58\x21\x57\x1a\x02\xa7\x5d\x45\x1e\xe9\x88\xc7\x69\xfe\xd3\x69\xad\x8d\x18\xb4\xfb\xdd\xe6\xc6\xe4\xea\x7c\x68\x2e\x56\x74\x6f\xe8\x44\x2a\x4c\x64\xc2\x47\x7a\x47\xbd\x13\x36\x6b\x79\x14\x82\xa5\x03\x7d\xa5\x0a\xcd\xf3\xb9\x51\xa5\x0f\xa3\x7d\x32\x45\x99\x4c\x91\x3e\xa1\xe7\x61\x1a\xf6\xe5\x29\x23\x58\x36\x94\x14\xf2\x82\x0c\xa3\x57\xa6\x83\x58\x04\xe3\x08\xf5\x7e\xf9\x6c\x05\xfb\x3b\x7a\x4e\xae\xc3\x00\xa8\x7d\xe2\xe6\x00\xea\xed\xb7\x7e\x86\xea\x30\xb5\xdd\x87\xa7\xb2\xd9\xb4\x51\xdf\xae\x3f\xc0\x65\x36\x40\x5b\xbd\x60\x75\x3c\x37\xb4\xd4\x7f\x77\x1e\x36\xff\xdf\xe4\xff\xfc\x68\x40\xdb\x5b\x46\x59\x87\xd9\x10\xea\x5a\x87\x95\xeb\x28\x8c\xe9\xb6\xee\x87\x0a\x47\x5c\x47\xcc\x32\x37\x3e\x94\xaf\x1b\x2c\xb4\x6d\x2d\xfc\xa4\x4a\xa6\x23\x90\x14\x72\x75\x8d\x82\xf9\x3b\x1e\xbc\xf1\xd2\x71\xa6\xd5\xb0\x86\x96\x17\xaf\xa3\xde\x63\x1d\xf3\x88\xaa\xcf\xb2\xa2\x34\xc6\xe6\x54\xe5\xcd\x14\xc0\xa9\x63\x19\x51\xb7\x80\x04\x79\xb9\x29\xab\x62\x55\x68\xbb\x6b\xce\x3a\x4d\x3a\x96\x29\x65\xd4\xac\x8d\xc4\x91\x46\x24\xd7\xb1\x42\x6e\x1b\xf5\xf3\x4a\x8f\x4c\xb5\x1b\x90\x04\x86\xf8\x45\xf1\x3d\xaf\x9b\xba\xdd\xd3\x6f\x2e\x94\x72\x1c\x1b\x44\x9d\x60\x40\xb0\x83\xff\x6c\x36\x9f\xa4\x9e\x27\x95\x01\x9d\xc6\x11\x65\x9b\xbe\x40\xa1\xf7\xf9\x6f\xbe\xd1\x48\xa7\x20\x08\xaa\xb3\xdc\x2e\xf7\x79\x01\x83\x54\x8b\xce\x58\x68\x61\xa9\xa3\xd6\x01\x9d\xf1\xc8\x06\xa7\xd8\x38\xf9\x7d\xaf\xb9\x3a\xcc\x1a\xea\x4c\x1a\x1e\xf4\xd4\x40\xc3\x27\xe5\x01\x50\xbf\xa0\x2e\x37\x24\xbe\x73\x95\x09\x9d\xc8\xca\x72\xcd\x53\x16\x39\x1d\x63\x62\x2a\x18\xbf\x5a\x6e\x32\x8f\xd9\x71\x9a\x81\x78\xed\x31\x8f\x5f\x87\x70\xf9\xa5\xe5\xf3\xc3\xf3\x7a\xb7\xf6\x34\x7e\x5c\x0b\xcc\x08\x64\x69\xa9\xbe\xed\x57\xb8\xbf\x1d\x59\x06\x2d\x8c\x05\x95\x7f\xbf\x5f\x6d\x9f\x16\x8f\xc4\xfe\xb0\x5d\x6d\xb6\xdd\x35\x8c\x55\xf2\xf2\x4c\x91\xf3\xb7\x00\xb1\xa2\x0a\xfb\x9f\x1a\x15\x69\x19\xfd\x4d\xb1\x42\x83\x90\x52\x0d\x72\x4e\x2f\x4e\x19\x71\x32\x6b\x65\x1c\xd1\x13\xf8\x1e\x83\xf2\xe8\xb0\xf4\x57\xae\x9b\x3b\x41\x05\x56\x82\x68\x9b\xbf\x62\x35\x11\x54\xe5\x5a\x45\x40\xdb\xdd\x7a\xb5\x59\x2d\xd6\xcb\xaf\xbb\xc5\xd3\xed\xee\x76\xf5\x7d\xf5\xf0\xfc\xf2\xb8\x7a\xda\xee\x7e\x2c\x1e\x1e\x56\xdd\xb3\xeb\x00\xa5\xf3\x5d\xe9\x91\x66\xbb\x21\xe6\x4b\x25\x9f\x17\xf1\xb5\x4e\x4d\xe4\xaa\x10\xa3\x3e\x9d\xc1\x96\xa0\x4d\x10\x53\x12\x5a\x9e\xab\xe2\x8e\x64\x0f\xfd\x7d\x19\x8e\xd4\x73\x4c\x85\xf8\x2f\xd8\x78\xda\x34\x7f\x58\x06\xf4\xd2\x1e\x9e\xbc\xa2\x0a\xc7\x20\xb6\x32\x07\xed\x2b\xeb\x28\x27\x2e\x8f\xa5\xde\xe2\x7b\xb3\x28\xf4\xb2\x69\x28\x4f\xfa\xe9\xc3\xf8\x6b\x81\xa0\x08\xec\x3f\x30\xb2\x7b\x18\xaa\x30\x6b\xa7\xca\x7a\x7b\xef\xff\x14\x09\x24\x33\x62\x91\xba\xa4\x95\x5d\x9a\xee\xa0\xd2\x04\xca\xf9\x45\x9e\xd2\xe8\x3b\x62\xcc\x6d\xa6\xf9\x66\xd1\x3a\x13\xf5\x70\x67\xc1\x18\x45\xe8\xfa\x09\xcf\x78\xf8\x89\x4f\xe5\x51\x56\xb8\x38\x9d\x26\xd7\x48\xd2\x28\x63\xc3\x86\x90\xed\x1e\x57\x85\xbe\xa6\x9d\xe1\xc8\x58\x4c\x3c\xc0\x47\x82\x34\xe4\xc5\xeb\x38\x8c\x42\x26\x54\xec\x3a\x46\x76\x58\x34\xd5\xe7\x22\x2b\x1c\x99\x66\x44\x67\xf5\x72\x2e\xde\x6c\x72\xf9\xef\xa0\x7b\xee\xc4\x34\xb4\xe9\xfd\x41\xd4\xd1\xc7\x56\xd7\xfd\xaf\x98\xa6\x8c\x50\xdd\xcb\xb2\x3c\x6c\xcb\x73\x35\xfa\x20\xa9\x50\xd4\xee\xbf\x87\x7a\x9f\x1f\xcb\xa6\x1c\x3b\x5d\x57\x9c\x95\x73\x81\xdc\xe4\xf7\xb2\x50\x52\x3a\xe6\xb9\x7a\x85\x62\xdc\x90\x86\x19\x4b\x89\xb7\xe8\x09\x7f\xfd\xcf\x1c\x05\x29\xc7\x2c\x03\xcf\x0c\xb1\xc1\x83\x79\xa9\xb0\x29\xab\x1c\xae\x9b\x59\xc6\x2f\x85\x33\x0c\xdc\x86\xea\x9c\x54\xfb\x4a\x67\x1d\x23\xe4\xa9\xa5\xa9\x75\x22\x95\xb6\xd9\x60\x32\x35\x78\x26\x4c\xec\xf8\x2d\xb7\x7b\x4f\x6d\xc5\x91\x8b\x28\x72\x02\xd6\xf7\xc7\x53\x59\x35\x5b\xf8\xc0\x75\x46\x11\x19\x47\x35\xed\xf8\x92\xef\xca\xea\x65\xd5\x93\x34\x4d\xbf\xf3\xe4\x6c\xc8\x82\x4e\x4d\xe0\x8a\x67\xaa\x1e\xe2\x54\x3e\xba\x82\x8c\xac\xd5\xf7\xec\x9a\x7e\xfd\x23\xf0\xc0\xb3\x07\x6d\xf7\x55\x59\x60\x17\x76\xcf\xcc\x7c\xc0\xc0\xda\xf7\x5f\x50\x59\xed\xca\xba\xbb\x8e\x51\xb1\xcb\xb4\x7c\xcf\xab\x73\x4d\x79\xe9\xab\x0b\x48\x8d\x49\xec\x3d\xad\x5c\xb9\x78\xcc\x5f\x43\xa5\xb1\x54\x9d\x74\x5a\xeb\xb5\x3c\xe6\x87\xf6\x0d\x15\x38\xd7\xa6\x8c\x0a\x6c\xf6\x79\xd3\xbc\xb6\x01\x24\xca\x36\x8c\x5b\xf5\x60\x2c\xd4\x59\x4a\x05\xca\x53\xfb\x2c\xab\xed\xd7\x8e\x36\x8f\xa3\x06\xab\x96\xd4\x2e\x52\x5b\x0a\x9d\x38\x41\xa8\xc1\x76\x73\xbd\x3a\xa8\x84\x25\x25\x9d\x8c\x91\x8a\x82\x81\xe3\x5b\x8f\xcc\xbf\x0a\x56\xc6\xa7\x18\x1e\xf9\xca\xc4\x63\x7e\xb8\x1b\x10\x73\xfa\x01\x10\xd0\xa6\x4e\xa7\x6f\x4b\x6a\x76\x67\x43\xf2\x0e\x34\x18\x2b\xdd\xe5\x9c\x1f\xf2\xe2\xcd\xe1\x86\x47\x17\x32\x81\x92\xaa\xa7\xfc\xda\xe6\xc7\x41\x2a\xf4\xff\x5f\x67\xa3\x09\x03\x46\x91\x39\xbe\xbe\x92\x92\xcc\xe4\x9d\x99\x30\x64\xc4\x8e\xe2\x2a\xc1\xe3\xfe\x59\x13\x26\x96\x4a\x08\xb4\x1e\x72\x10\x7e\xd2\x94\x36\xf9\xf9\x28\x31\xb1\x9e\xa8\xd1\x7c\xe9\xfd\x2b\x13\xc7\x28\x2c\x09\xf2\x16\xde\xa6\xeb\xd8\xc4\xcc\x62\x93\x5d\xe7\x16\x0b\xe3\x79\x07\xc5\xc4\x10\x92\xdd\xa2\xbc\xcb\x08\x52\x3d\x41\x71\x9b\x58\x03\xd1\x5b\xf9\xcd\x75\x4a\xd0\xe4\x86\x25\xd2\x82\x68\x2c\x47\x36\x16\xd7\x49\x04\x93\x98\x90\x48\x38\xbf\xc2\xa1\x8c\xfd\x2c\x35\x2c\xe6\x91\x63\x8d\x77\xbc\x9c\x43\xff\xcf\xa4\x2c\xb6\xc9\x1c\x5b\xca\x68\x23\x81\x6f\x85\xc6\xea\x01\xcd\x04\x2b\x6b\x52\x61\x45\xcb\xad\x8a\x66\x59\x6d\x5e\xfc\x6f\x64\x26\xa5\xae\xe6\x9b\xa7\x1b\xff\x27\x1e\xa6\xd2\xa6\xcc\x6c\x6b\x9e\x13\x3a\x1c\xfb\xe3\x86\xa3\xf5\xa0\xdb\x18\xeb\x72\x2a\xbb\xcf\x2c\x12\x2b\x36\xbd\x84\xea\x05\xaa\xb7\x81\x67\x6d\x20\xcd\xcc\xa8\xed\xb2\x8d\x51\x2c\xf9\xd6\x74\xe2\x8d\xee\x1e\x78\x48\xa6\x76\xbb\x5e\x3c\x6d\xee\x56\xeb\xcd\xee\x65\xb5\xde\xd1\x7f\x2d\x96\xbd\xc8\x0d\x37\x52\x18\xca\x31\xec\x3c\xd8\x61\xf2\x1a\x54\x10\xb2\xd0\x4b\x3f\xfc\xf7\x9c\x57\x33\x14\x7f\xd7\x3b\xa7\xd1\x29\xa0\x1a\xe4\x10\x27\x0d\x62\xa3\xc2\x8a\xd1\xa9\xf1\xa4\x15\x74\x0b\x03\x64\xf4\xe4\xaa\x82\x91\xdf\xd2\xc6\x9c\x23\xeb\x64\xb4\xe0\x42\xfa\x50\x43\xbd\xa1\xde\x34\xd5\x59\x35\x2f\xe7\x43\x8d\xed\x1f\x46\x7d\x3f\xb3\x26\xdf\x20\x4b\xa8\xbc\xf3\xa5\xbd\x8b\xfc\x80\xd5\x95\xf6\xd4\x60\x2c\xe7\xd4\x0a\x7e\x73\xbf\xf6\x75\x46\x83\x32\x21\x2a\x0c\x84\xea\x70\x59\x96\xc7\xe3\xb9\xc8\x9b\x09\xd0\xd9\x98\x2c\xa5\x4f\xbd\x7e\x5f\x2d\x1e\x86\x62\x83\xab\xf7\x06\x7b\xdc\xbd\x08\x82\x24\xcb\x5c\x5e\x9d\x5a\x47\x88\x38\x7b\xda\x7d\x2a\x82\x00\x02\xb2\xb9\xa0\xb5\xad\x3b\xff\x1d\xee\xd5\x9d\x17\x86\x49\x10\x90\xdd\x69\x77\xa6\xdb\xc5\xf3\xa7\x4e\x82\x08\x42\x86\x7a\x8c\xcd\xec\x49\x8f\xfd\x90\x54\x65\xa2\x37\xff\x1d\x88\x54\x04\x71\x14\xc5\x5e\x21\x8e\xbc\xd1\xf3\x15\x84\x88\x77\x43\x53\xf2\x3e\xef\xf2\x53\x3d\xee\xe0\x89\x82\x0f\x6e\x2d\x46\x43\x2c\xcb\x55\x59\x36\xbb\x30\xf8\xd7\xf8\x41\x63\x13\xd8\x22\x7d\xfe\x13\x57\xcd\xfe\x06\x8a\xb7\x75\x79\x38\x8c\x3e\x8b\x08\x12\x91\xd0\xa8\x76\xe9\xa1\xc3\x23\xf8\x63\x2c\xe2\x60\xd1\xb4\x87\xc3\x66\x24\xd6\x33\x4e\x37\x4c\xde\x30\xd5\x54\x07\x58\x9f\x6d\x39\xf6\x95\xa6\xc3\x65\x98\x85\x3d\x45\xc6\x82\xe8\x89\x51\xaf\x07\x5d\x5f\x83\xc1\x3a\xa6\xb7\x64\x85\x02\x87\x46\x46\x04\x0c\x43\x4a\x68\x40\xfd\x66\x3d\x92\xf1\xdb\xca\xe2\x50\xda\x44\xb0\x2a\x0b\x0d\xd5\x85\x26\xe1\xb9\xfb\x56\x99\x08\xcd\x50\x19\x65\x64\x98\x45\xc0\x13\x04\x0f\x2d\xf6\x41\x22\xea\x09\xac\xa5\x0b\xb3\x44\xc0\x05\xb7\xf4\x10\x65\x85\xf9\x6b\xf1\x29\x0f\xa9\x08\x44\xa4\x88\x8d\xfa\x8f\xa6\xc2\x63\x6f\x06\x45\x20\xd0\x4a\xd6\xc9\xf3\xc7\x4d\xa2\x22\x80\x50\x11\x00\xec\xa1\x7c\xbd\xc9\xf5\x1d\xe4\x87\xbf\xe1\x23\x15\x01\x24\x4c\x8c\x2a\x38\x56\xc0\x64\xb8\xc4\x24\x64\xb1\x47\xef\xe6\x45\xf3\xaf\xd1\xf9\x3a\x89\x43\xab\xb2\xf4\x13\xeb\xfb\x6e\xf5\x6a\x06\x94\x6e\x3f\x5a\x4b\x66\xb3\xbf\xdd\xc6\x88\x93\xcf\xa9\xc1\x1a\x4b\x1f\xaf\xde\x62\xfb\xed\xca\xf7\xcb\xe4\xdb\x69\x34\xf4\x7c\xf7\x85\x2e\x0b\xac\x73\x58\x9f\x4f\x39\xec\xfd\x8f\x62\x08\x18\x77\x25\xb3\xee\xaf\x06\x98\x18\x00\x58\x17\x43\xfd\xf6\xf1\xf5\xd1\xa0\x55\x9a\xaf\x57\xef\xa8\xfc\x05\x8c\x40\xe5\xf6\xe2\xcd\x7e\xa2\xc1\x29\x02\xa3\x14\xeb\x10\x56\xdf\xe1\xe0\x24\x69\x44\x18\x84\xa9\xcb\x41\xd8\x1c\x61\x5f\x92\x18\xff\x6a\x18\x88\x80\x1a\x1c\x57\x0f\xf7\x7f\xb8\x65\xb9\xc1\xa6\xbb\x0c\x84\x1e\x8b\xb7\xa2\xd0\x70\x34\xdb\xc3\x40\x61\x4c\xad\x13\xc7\xf6\xd3\xcc\x25\xb7\x3e\xdc\xa4\x44\x18\x06\x1c\x9c\x2b\x7f\xaf\x4a\xcb\xfe\x32\x19\x11\x6a\xca\x12\x80\xd6\x71\x34\x44\x8c\x74\x37\x10\x46\x98\x39\xdd\xe8\x65\xf9\xcb\xdf\x75\x98\x49\xc0\x41\x1f\xdc\xed\xf4\xba\x3c\x8a\xc2\xe1\x17\x1f\x24\x67\x26\x4d\x9c\xed\x60\x6b\xe0\x2c\x14\x2b\xe9\x7e\xc3\x48\xe1\x76\x88\x61\xea\x77\x76\x77\x13\x61\xc4\x62\xab\xca\x52\x68\x7c\x47\x7d\x5b\xaa\x7a\x72\x4f\x71\xc6\xac\x96\x77\x7e\x38\x94\xbf\x06\xab\x2f\x8c\x95\x45\xb9\x9d\x09\x18\x4a\x5b\x34\x31\xfc\xcd\xff\x52\x92\x48\x5f\x11\x6e\xb7\xa4\xd9\x4a\xb0\x08\x13\x16\x1a\x87\x5e\xfd\x5a\xd6\xb6\xc0\x58\x9a\x7c\x16\xf2\x4f\x0c\xa5\xb4\xcd\xad\x1f\x96\xfe\xa6\x58\x98\x11\x73\x33\x11\x04\xe5\x68\xf3\x67\xf3\x33\x8c\x31\x9b\xc7\x76\x75\x94\xbb\x89\xda\x75\x3b\x80\x93\x63\xd6\x7e\x86\x7a\x60\xc8\x66\x49\xa6\xdd\x39\x69\x88\x2c\x73\x20\xeb\x1a\xaf\x89\xf9\x44\x98\x66\x52\xe8\xc1\x47\xfe\x90\x6f\xd3\xe6\xcb\xff\xef\x5a\x00\xac\x9b\x02\x69\x66\x94\xea\x69\xaa\xdd\x16\xdc\x27\xf1\x45\x98\x0a\xed\x59\x52\x6d\x91\xd1\xc6\xf2\x73\xfa\x8b\x22\x4c\x55\x44\x41\xfc\x13\x9e\xab\xf2\x47\xee\xcb\xb9\x22\xcc\x84\xb6\xa9\x7a\xab\x6d\x0a\x87\x7f\x4c\x5f\x3a\x6b\x5e\x43\x9e\x29\x74\xf7\xbd\x02\x82\x96\x0c\x93\xeb\x22\xe4\x52\x65\x3e\xc0\xc1\xea\x58\xcf\xe0\x6e\x44\xc8\x4d\x10\x58\x00\xcb\xe1\x60\xb5\xfd\x3f\xf2\x71\xe6\x27\x24\x37\x31\x95\x67\xf6\x47\x35\xde\xf6\x43\x11\xbb\xd6\x88\xf6\x5d\xed\x6a\x38\xe0\x0e\x0b\xbd\x1b\xa0\x49\x44\x28\x12\x1d\x74\x40\x45\xf2\x20\x86\x1b\x62\x28\x32\xc3\x5c\x73\xda\xaa\x49\xfa\xdc\xb5\x08\x05\xe7\xd1\x30\x3b\x77\x5b\xaa\xf3\x11\x0b\xaa\xa5\xcd\x25\x70\xda\x33\x04\x05\xb2\x5b\xa8\x40\x0d\xd6\x9f\x10\x19\xef\xd5\xc3\x49\x71\xe3\x13\xee\x18\x11\x42\xa0\x89\xbc\xc1\x94\x16\x8a\x68\xb7\xe7\xce\x32\x43\x8a\x16\xd6\x50\xde\xf4\xfd\xaf\x68\x49\x83\xfc\x10\x2e\x88\x7e\xb6\xbd\x57\x3d\xda\xd7\x27\xef\x56\xb6\x8e\x0b\x25\xe8\x8f\x90\x17\x5f\x9b\xe3\x61\x62\xa0\x65\x62\x71\x87\xe4\xd3\xd7\xd8\xed\x4b\xa1\x44\x24\xb0\xff\xeb\x99\x84\xb9\xad\x76\xac\xcd\xc4\x76\x5e\x70\xa8\x58\x48\x54\x1c\x70\x3a\xb5\xa7\xce\x3d\xac\x66\x51\x9c\x7a\xf0\xa4\xf1\xaa\x85\xd7\x31\x91\x08\x35\x97\xda\x12\x3f\x15\x75\x03\x45\x73\x57\x4c\x96\x05\x82\xa6\x4b\x51\xb1\xeb\x23\x91\xa7\xc9\x0b\x30\x71\x0a\xe9\x00\xae\x8f\xf7\xcb\xe7\x47\xb0\xba\x0f\xae\xfd\x6e\x74\x42\x14\xc4\x19\xc5\x30\x4d\x97\x18\x13\x51\xc0\x25\x55\x7c\xce\x35\x56\x6b\xda\xbd\x5b\xaf\xb1\x3c\xf7\x6a\x10\x84\x12\xf3\xc3\xc3\x24\x4b\x99\x17\xe7\xa7\x98\x6d\x76\xe2\x47\x91\xe4\x8e\x0a\xbe\xbd\xa4\x2d\x78\x4c\xac\x7e\x14\x87\x21\x11\x53\x9b\x31\x41\xde\xb5\x2b\x17\xc5\x49\x68\xb9\x95\xf7\xd0\xd4\x8f\x97\xdf\xce\xd5\x65\xcc\x36\x3a\xb6\xba\x51\xac\x6c\xe8\x7a\x84\x77\xa2\xa4\x19\xf8\xd4\x51\x12\x69\x22\x73\x20\x65\xa8\xfb\x42\x9f\xdb\x4f\x3a\xf6\xbb\xa3\x84\x19\xca\x22\xb6\xf7\xbe\x28\xea\x5f\x58\x39\xf4\xc4\x68\x82\x45\x89\x50\x09\xf1\xb9\x9f\x4f\xfd\x1b\x4a\x8c\xd3\x22\xcc\xb1\x8a\xd6\x08\xaa\x9f\x53\x11\xcb\x22\x1f\x6d\x3e\x94\x50\xd8\xd0\x0a\xb5\x33\x4c\xe3\x8b\x33\x65\xd0\xd1\xf1\x2e\x97\x5f\x77\xa8\xf3\x66\x97\xf9\x0b\xa5\x29\x0b\x9d\x36\xc9\x0d\x16\x68\x72\x95\xc3\x84\xff\x53\x44\x29\x67\x3e\x70\xfa\x91\x17\xba\xfc\x65\xdd\x8c\x59\x07\x2c\x4a\x25\x63\x70\xc5\x26\x1e\xfa\x0d\x61\xbc\x47\xcc\x64\x95\xdb\xaf\xe5\xf7\x8c\x28\x55\x9c\x3a\x56\x1e\xf3\xa6\x2a\x0b\xcf\x87\xdb\xfe\xdd\x66\x1b\x6a\x6c\xbe\xc0\x71\xda\x34\x2b\xa2\x8c\xb9\x14\x5d\x5e\xf4\xc0\x44\x7f\x2c\x4d\x59\xec\xa5\xc2\xd4\x5b\xeb\x52\x0e\xe1\x2a\xc3\x85\x19\xb5\xb6\xdf\x39\x9e\x2f\xf2\x7c\xc8\x15\xb1\xca\xd3\x46\x9f\x7f\xc0\x12\x22\x22\x0e\xe8\x79\x37\x57\x85\x26\xbd\x8b\x68\x72\x7f\x5c\x6a\x32\x5f\x0f\xd0\xe4\x67\x12\x0c\xeb\xbf\x3b\x57\x99\x96\x3d\xab\xa6\xeb\x35\x1d\x87\x27\x7e\x28\xf2\xa0\x27\xcb\x7b\x2a\x89\x9a\xc8\x75\x6e\xa7\x4e\xd5\x2f\xf4\xf3\x40\x84\x18\x19\xdb\x6d\x8a\x56\x16\xad\x7b\x25\x22\x42\x9a\xa6\xaf\x50\x53\xcf\x91\x03\xd6\xae\xfb\x0e\x66\x11\x89\x34\x21\xf5\x4d\x47\x8f\xb4\x2c\x8f\xc7\xb2\xf8\x85\x57\xfd\x72\xce\x65\x1d\xbd\x46\x91\xa2\x27\x1f\x1b\xf6\x2a\x88\x48\x48\x4e\x09\xe4\x9d\x77\x00\xdd\xdf\x81\x19\x4a\x85\x90\xce\xd1\x68\x45\x81\xc8\x28\xa5\x85\x85\x2a\x35\x7e\xf3\x92\xcb\x7c\xf2\x0d\xc0\x84\x04\x4e\xf8\x02\x65\x31\x3a\x5f\x32\x4d\xf5\xa6\x3d\x1c\x9a\xbb\x3f\xba\xbf\x66\x41\x00\xbd\x30\xa0\x93\x68\xaf\x26\xaf\x5b\x66\x21\x41\x30\xf2\xda\x85\xb4\x79\xf1\xba\xaa\x15\x9c\x70\x5b\x7a\xc7\x7a\x30\x23\xba\x15\x28\x75\x16\x38\x1f\xbd\xbc\x62\xba\x11\x91\x0a\x4c\x60\x79\x81\x5c\x85\xf9\xce\xa1\x5c\xf5\xbf\x46\x97\x51\x2c\xa4\x2e\x63\x82\xd1\x6f\x7f\xff\xb2\x5b\x7e\x5d\xac\xef\xb7\xff\xf1\x0f\xa1\x13\x45\x25\xf5\xe5\xe2\x76\xf7\x7c\x2c\x72\x5d\x1e\x0e\xd0\x4d\x2b\xad\x02\xf0\x14\xf4\x17\x28\x9a\xdb\xaa\xcc\x9b\x95\x2a\x8b\xf2\x98\xff\xf7\x8c\xbb\x65\x79\x3c\x35\xb8\x9b\xce\x54\x4c\x0d\x1b\x32\xe9\xd4\xdd\x37\x42\x48\x89\xc3\xe3\xe1\xe1\xfb\xee\x67\x1c\xec\xc2\xa8\x3b\x82\x86\x81\x53\x8a\x24\x55\xb8\xd2\x51\xc1\x7e\xdc\xb4\xda\xce\x40\x0d\x56\xe2\x99\x48\xa4\xbb\xc8\xdc\xfa\x80\xb6\x15\xce\x0e\x8d\x83\x50\xd1\xce\xbe\x53\x70\x38\xac\x51\xe5\xa7\x1c\x7b\xb3\xf7\x11\xe5\xc5\x6c\xaa\xb9\xdf\x1b\xe2\x00\x22\x1b\x46\xd3\xba\xf3\xed\x77\xf3\x34\x22\x22\x0e\x23\xdb\x5f\x85\xb6\xbb\xfa\xb6\x5b\x28\x71\x98\x21\x01\xc8\xe5\xf9\x72\x7f\x3c\x1d\xb0\xf5\x97\xe0\x2a\xe7\xdd\x17\xfd\xe7\x31\xf7\xfe\x62\x5c\x46\x6a\xc0\xfe\xeb\x3c\xb7\x1b\x47\x0f\x3e\xbe\xa7\x88\x77\x42\x30\x76\xa3\x1c\x66\xff\xfc\x18\x15\x44\xca\xb7\x2e\xd6\x03\x80\xa5\x88\xe3\xc0\xb6\x89\xee\xa1\xde\x0f\x41\x0e\x1f\xb1\x50\xb9\x7c\x57\xcc\x58\x46\x2e\x87\x85\xff\xb9\x3b\x9c\x90\x88\x89\x98\x65\x81\xef\x8c\xbe\x3d\xe3\x95\xba\xb6\x88\x99\x91\x14\xc9\x82\xee\xe2\xad\xf2\x83\x4c\x53\x9c\x46\x8c\x62\xa9\x9b\xf3\xe1\x50\xdf\x41\x75\xec\xcc\x67\x9c\x46\x9c\xf0\xac\xbf\xbd\x0c\xc2\xbf\x38\x8d\x39\x35\xe5\x52\xce\xfc\xf9\x44\xe6\x6d\x20\x2a\x3a\x98\x06\x69\x1a\xd1\x7d\x4a\xd7\xe2\xbd\x87\x1a\x59\x77\x19\x97\x92\x76\x45\x98\xe1\x03\xdb\x06\xc7\xc3\x3c\xf5\x93\x88\x33\x8d\x94\xee\xda\x6c\x17\xdb\x6f\x9b\xdd\xed\x6a\xf1\xb0\x5b\xaf\x1e\x56\x0b\xcf\xcd\x29\xe2\x0c\x19\x25\x69\x5a\x47\x11\x0e\x9b\x37\xaf\x4c\xd5\x1e\xe1\x29\x0c\xa2\xb0\xfa\x7f\xce\x50\x34\x03\xcd\x69\xbf\x83\x26\x5e\xf1\x53\xc4\x3c\x4b\x78\xaf\x3d\x6b\x91\x3c\xeb\xf3\x01\x3f\x54\x87\x98\x77\x0e\x63\xce\x35\x25\x6c\x3c\xaf\x83\xd7\xd5\x7d\xa9\x90\xb4\x07\xf4\x57\xa8\xf7\x43\x26\xc8\x7f\x76\xd9\xd6\x85\xcf\x7c\xa6\xd9\x71\x26\x5d\x71\xa2\x0d\x52\x58\xb1\x00\xee\xc8\xf1\x1e\xe0\xd7\x65\x6a\x44\x63\xa1\x2d\xc1\x86\xed\x46\x80\xaa\x59\xe3\x4f\x2c\xce\x38\x43\xf6\x21\x62\x81\xe8\x08\xc8\xad\xa1\xa7\xd2\x27\x81\x2a\xfd\x1b\x07\x26\x89\x5f\xee\xf7\x6f\xf7\x9b\xe1\xfe\x11\x43\x1a\x89\x6c\xb8\xc6\x1e\xc0\x98\xc9\xe5\x01\x2c\x45\x42\x8d\xcd\x23\x36\xa0\x87\x89\x91\xe1\xbe\x18\x83\x09\x84\xe9\xe0\x7e\xab\xff\x46\x41\x97\x27\x76\xff\x76\x03\x13\x43\x0c\x6a\xe6\x3f\xe5\xf9\xca\x9b\x9f\x09\x29\x62\x30\x8c\xa6\x4c\xbb\xdb\xe6\x65\xb1\xbd\x9c\xa6\xeb\x4d\x26\x2c\xee\x74\xd3\x1f\xb1\x7a\xa5\xba\xcc\x34\x83\x33\xd1\x9f\x10\xb1\xcc\x84\xb1\x35\x25\xcb\xc8\x3d\xfe\x0c\x12\x43\x6a\x6b\xd8\x39\x1d\x2e\x1b\x79\xcf\x75\x1d\x88\x58\x09\x11\xab\x81\xc5\xc7\xbc\xab\x70\x77\x9e\x6e\xac\x14\xb0\xae\x0c\xbe\x7a\x3f\x1d\xca\xea\x03\xbf\x2b\xd6\x91\x95\x3c\xfb\x7d\xf4\xc1\x10\x62\xd2\x40\xfa\xbe\x5a\xdf\xde\x2f\xb7\xdd\x9f\x8d\x36\x6e\xbe\x38\x58\xe1\x0b\xd4\xf5\xa9\xac\x9a\x87\xf2\x35\x57\xff\x1a\xbd\x4c\x13\x03\x51\xac\x2c\x0e\x87\x47\xa8\xde\xf2\xe2\xb5\x7e\xb1\x3a\x3d\x1f\x27\x67\xc7\x37\x97\x04\xc6\x96\x7d\xc8\x29\x54\xd5\x85\x68\x6b\x6c\x77\x6b\xcf\xa4\xe0\xc6\x86\x2c\x24\x98\xf4\x6d\x07\x69\x11\x49\x28\x25\x0f\x26\x55\xd0\x9b\x21\x2c\xe6\x0a\x59\x2f\x92\x50\x73\xea\x70\x5f\x37\x72\x43\x25\x18\xd2\x89\xfb\x80\x2b\x60\x3e\xf1\x90\x84\xc6\x10\xdf\x51\x7e\x3c\x1d\x76\x97\x1c\x0f\x3a\xeb\xf7\xba\x24\x8a\x81\x72\x1f\x37\xe7\x0b\x49\x9e\x8c\xbf\x70\x12\x25\x92\x6c\x87\x6b\x59\x5e\x54\xcd\x14\x8f\x25\x92\x38\xb6\xd4\x2b\xb9\xc7\x45\x0c\x45\x20\x45\x92\x24\x91\x77\x1d\x9d\xd3\x35\xd0\xde\xec\x6f\x33\x91\x99\xf6\x19\x62\x1f\xe4\x84\xe3\xb7\xca\x12\x4e\x51\x4c\x81\xbf\x88\x59\xaf\x26\x25\x9e\x6e\xa6\x25\x2c\x13\x5e\x41\xc3\x49\x07\x3a\x89\xa0\x9b\x97\x67\xf3\x59\x5b\xaa\x48\x88\x54\x71\x9c\xfe\xed\xae\x2a\x2d\x36\x93\xd2\x33\xd1\x17\x3f\xff\x92\x34\xb2\xde\x06\xf9\x39\xad\x73\x3f\x9c\xb4\x49\x8a\x19\xa1\xcb\xb7\x39\x56\xbb\x35\xe4\xc5\x11\xde\xda\xff\x37\xb0\x57\x7e\x68\x16\xc7\xbe\x29\xd2\x43\x4b\xee\xe7\xbb\x22\x44\x92\x25\x36\x89\x68\xca\x0a\x15\xd4\x8d\x53\x42\x9c\xbc\xcb\x8c\x71\xe2\x42\xf5\xd9\x03\xaa\x3b\x7e\x86\x6f\x10\x49\xc6\x13\x8a\x55\x8f\xa5\xce\x8d\xaf\x1c\x0f\x04\x48\x26\xed\xef\x83\x13\x95\x15\xb5\xf5\xad\xba\xa7\x21\x75\x8b\x48\x32\x9d\x86\x7d\x66\x62\x51\xbf\x5d\x85\x5e\xa3\x4f\xcc\x59\x46\x31\x0a\x75\x26\xd2\xb8\xda\x12\x23\x5c\xf1\x50\xf8\x13\x4c\x16\x7b\x09\x75\xfb\xa6\x46\x0a\x58\x6e\x94\x00\x4e\x5a\x14\x45\xd9\xe4\xe6\xe2\x45\x3e\xc7\x57\x12\xc8\x88\x6f\xde\x58\xf0\xb4\xe5\x1f\xb8\xab\x2c\xda\xa1\xfd\x30\x55\xf7\x50\x00\x69\xea\x71\xf8\xe5\xb9\xaa\x2d\x99\xc8\xe8\x41\xc0\x28\x4b\x6f\xfa\x5a\x0d\x6c\xe2\x28\xef\x98\xc8\x90\x5b\xcd\x61\x6f\x12\xb6\xe5\x08\x14\x34\xfb\x86\xa4\x44\x8a\x21\x96\x65\x55\x1e\xf0\x7d\x90\xa1\x4b\x34\x72\xcf\x51\x7b\x8b\x70\x18\xf9\x86\x09\x6a\xe8\x89\x00\xd5\x5b\x9f\x03\x4b\x8c\x91\x89\x4b\x82\x7b\x76\x1c\xdf\x04\xe9\x1c\x44\x16\x28\xe9\x15\x33\x96\x50\xe7\x45\xd9\x29\xa7\x85\xb3\x9b\x17\x0b\x14\x5a\x0a\x6c\x42\x38\x54\x65\x1b\x02\x57\x9b\xf3\xa9\x35\xcf\x1f\xb4\xfc\x08\x16\xe8\x58\x58\xc6\xff\x36\x2c\x18\x71\x00\x09\x16\xc6\x21\x95\xa2\x75\x79\x77\xd5\x42\x28\x58\x98\x30\xe1\x4a\x24\x84\xd4\x22\xf6\x37\x7b\x71\x9c\xb2\xf8\x09\x16\x85\x01\x51\xc1\x94\x27\xaa\x87\x9d\xce\xcd\x08\xa1\x21\x58\xac\xb8\xcf\x63\x6f\xb0\xd0\xcb\x72\x5a\xfc\x64\x89\xe2\xca\xa2\x09\x5b\xa7\xd1\x97\x57\x87\x09\x32\x96\x20\x32\xf2\x06\x55\x73\x6e\xbd\x2d\xd2\x4c\x18\x10\x03\x08\xc6\x62\xcb\x03\x78\x2c\x35\xbe\x9f\x76\x05\xe4\xde\x85\x9a\x73\xa0\x58\x2a\x39\xe5\x3d\xea\xf2\xa0\xaf\x1e\xce\x8d\xc9\x50\x52\x74\xfc\x82\x0d\x0e\x91\x82\xed\x11\x4c\x5c\x65\xfc\xa5\x2a\xff\x44\xd5\x7c\xab\xc7\x4c\x64\x82\xf1\x90\x13\x2d\x0a\xe5\x49\x37\xf9\xab\xcd\x59\xb4\x4f\xd7\xba\xfb\xed\xe4\xb4\x3d\xfe\x6b\xe7\x1b\xf8\x1e\xae\x89\x71\xbd\x86\x16\x4e\xbe\x34\x4f\x43\x42\xd6\x18\xca\xb4\xf6\x7d\xa2\xed\x91\x28\xec\x26\x63\xeb\xf8\xcd\xa5\x4d\x18\xe7\x11\xb1\x20\x1c\xf3\xa2\x59\x78\xfe\x55\xc1\xb8\xc8\x2c\x50\x1b\x2e\x36\x7d\xde\x3d\x18\x84\x29\xd9\x77\x70\x5c\xe0\xff\x0f\x56\xe5\x07\x81\x21\x83\x38\x20\xc7\x62\x4d\x2c\xf0\xad\xef\x3d\xf1\x3e\x19\x24\x46\x45\x4e\xc1\xeb\xd8\xce\x1e\x57\x0a\x79\x80\xba\x59\xfc\xc4\x0a\x5e\x67\xf5\xaa\x05\x83\x54\xa0\x45\xf5\xea\x1d\x7c\xb6\x21\x31\xc8\x22\x6a\xd9\xfc\x1f\x09\x35\x5a\xb5\xbb\xee\x59\x50\x53\xe2\x75\xd7\x9a\x9f\x91\xbc\xeb\xa7\x15\x08\x26\x43\x88\xb1\x2f\xdf\x8c\xb7\x69\x26\x63\x46\x34\x5a\x4f\xdf\x1e\x6f\x56\xeb\xdd\xf3\xdd\x6e\xf9\xfc\xed\x69\xbb\xbe\x5f\x6d\xfc\x10\x15\x1b\xea\xf3\xa3\x76\xe9\xe3\x16\x0e\x6f\xdd\x11\x99\x41\x3c\x56\x58\x9c\x72\x1b\x4c\x6e\x46\x07\x56\x40\xcc\x9b\xbe\xaf\xe5\x81\xe8\x29\x3e\x2f\x20\x32\x9d\x85\x14\x62\xb6\x8e\x6e\x97\xa6\x9f\x0c\x01\x91\x68\x1b\x04\xef\x28\x59\x53\x4f\x07\x28\x49\xd6\xfb\xe6\xfe\x6e\x31\x5a\x21\x18\x22\x91\x22\x9d\x0e\xa0\x70\x7c\x24\xb5\x15\x00\x89\xcd\x4b\x59\x4e\x9c\x24\x86\x4a\x5a\x4e\x0e\xfa\x95\xc9\xaf\x21\x66\x44\x04\xf6\x08\x7f\xb6\xbb\xc4\x77\xe8\x66\xab\x09\x90\x3a\xc2\x88\xf9\x6c\x79\x26\x42\x3f\x1b\xdf\xf9\x01\x49\xa0\x7d\x51\xc1\x4b\xf3\xd4\x5d\x3b\x98\x48\x03\x99\x25\xb6\x6e\x45\xfc\x54\xed\x32\x1a\xd4\x8c\xd2\x28\x02\xca\x17\x1d\xe1\xdd\xee\x3b\x8e\x25\x98\x88\x9e\x07\x0e\x48\x1a\x31\x1e\xa2\x13\x19\xb1\xb2\x62\x05\x0e\x58\x17\x44\x1a\xa5\x9c\xe8\x6a\x17\xf9\x8c\xb7\x91\x46\x99\xf4\xc4\x62\x6b\xd4\xe7\x8f\xb2\xaa\x69\x04\x22\x09\x7d\x0d\xcb\x63\x30\xea\xee\x37\x40\x53\x30\xa3\xdf\x36\x37\x23\x63\x9c\x26\x99\xe0\x56\xbb\x97\x92\x89\xf3\xe1\x79\xca\x30\xa3\x8e\xfe\x4d\xeb\xe7\x62\xd7\xcd\x7d\x33\xc0\x79\xb8\x91\x69\xa6\x88\x74\xca\xb7\x80\xf7\xec\x9d\xfd\xd5\x32\x21\xad\x7c\x62\x3e\x4e\x00\xf9\xc3\x1a\x69\x1d\xfb\xd9\xfb\xf0\xec\xdd\xc2\x94\xab\x08\xdc\xdb\xa0\x32\xe1\x76\x4c\x79\xeb\x44\x7d\xc6\xbf\x26\x22\x46\x1f\x1a\xdf\x4f\x37\x97\x6d\x47\xdd\xc9\xfd\xe1\x58\x18\x97\x57\x19\x29\xc0\x4e\xde\x80\x60\x09\xd5\x8f\xad\x0b\x37\x2c\x06\xcc\x16\xa4\x53\xc1\x32\x96\x74\xba\x4a\xf9\xf1\x7c\x74\xac\x0a\x93\xcb\xaa\x00\x43\xd7\x18\xd3\x6c\xf2\xd7\xc2\x6a\x98\x8d\x1c\xac\x14\x82\x2c\x52\x1d\xa9\xea\x17\x97\x85\x1e\x65\x3f\x53\x88\x32\xca\xeb\xdc\xde\x2f\x57\xbb\xf5\xe2\xc9\xd3\xc8\x88\x14\xc0\xf2\x72\x0e\x43\xa3\xee\x0b\x6e\x4b\x2a\x36\xeb\xd2\x06\x5c\xa5\x57\x6e\x17\xa9\x14\x19\x65\x29\x8f\xf0\xee\x3a\xde\xba\x23\x1a\x28\x57\xb3\xab\xb1\x11\xfe\x8f\x2a\x88\xa8\xf7\xba\x8b\xd5\x23\x17\xab\x3b\x9f\x38\x9a\xa4\xee\x52\x15\x30\xdb\x74\xe5\xd9\x6f\x45\xaa\x12\xdb\x63\xd1\xae\xb5\x29\x2a\x5b\xa4\x8a\x0b\xea\x76\x20\x32\xb4\x0f\x56\x81\x4e\x8d\x65\x8a\x39\xe4\x7f\xfd\x35\x48\x6c\xcc\xb9\x51\x29\x42\x4c\x95\x04\x18\x4a\x8e\x0e\xb6\xcb\xd4\xc4\x49\x16\x7b\xe6\xfa\x6d\x79\x83\x8b\x35\xfe\xcc\xb1\x93\x15\x14\xa9\x01\x49\x91\x6f\x87\xdd\x6c\x77\xf1\x19\x5e\x56\x91\x05\x49\xe0\x4b\x32\xdf\xa1\x9a\x2b\x73\x66\x81\x4a\x02\x47\xdd\x7a\xe7\x22\x90\xd9\xf0\xc0\xcd\xdc\x2c\x4c\x91\xea\x7a\x36\xb1\xd8\xd7\xad\xa7\xb9\xc5\x2c\x4a\x2c\x21\xf6\x2b\x36\xbf\xf2\x22\x08\xc3\x80\x05\xf3\xd3\x3c\x8b\x32\xe4\x71\x9f\xfa\xb9\x5c\x95\x48\x3f\xdd\x78\xb2\x08\x83\x34\xea\x04\x44\x9f\x4a\x8d\x5f\xaa\x72\xa0\x29\x73\xee\x9b\xc2\x44\x16\x07\x21\x71\x7d\x93\x3f\xf4\xb3\xdb\x0f\xb2\x84\x2b\x42\x2c\x9f\x0e\x90\xf7\x7f\x44\xab\x45\xe5\x0a\xde\xb4\xf0\x6d\x14\x41\x29\xc8\xd8\x8f\x63\x29\x8b\x9c\x59\xff\xad\x94\x7d\x6c\x16\xfe\x33\x49\x00\x91\x31\x8e\xd2\x92\xb1\x9f\xe0\xf2\x50\xc2\x35\x16\x7b\xf4\xd1\x98\x42\x4a\x3c\x90\xb3\x64\xe3\xf8\x35\x0e\x01\x26\xe3\x4f\x91\x86\x46\x79\x42\xce\xce\xa1\x63\x7d\x6e\x82\xfd\x9f\x1f\x98\x64\xb4\xc8\x1e\x2f\xb7\x77\xa3\x14\x5b\x96\x8a\x80\x66\x25\x59\x7a\xfb\xc9\x27\xda\x0e\x22\x4b\xb5\xd6\x8e\x56\x64\xa3\xb0\x80\x2a\xa7\xa0\xa2\x5e\x14\x9a\xda\x90\x9d\xa1\x1c\xad\xc8\x2c\x0b\x92\xd8\x05\x5e\x33\x58\x97\x8c\x07\x11\x59\xf6\x3f\xcb\xbc\xf8\x02\x47\xea\x43\x76\x0a\x7f\xf7\xb7\x03\xbd\xc3\xa9\x9f\x34\xbe\x8a\x08\x2c\xa6\xc7\x86\xac\x77\x88\x1b\xa7\xc0\xff\x69\x43\x90\xc8\x44\x2c\x89\x8a\x5a\x23\xf5\xaf\xe5\x9d\x50\xe5\x78\x98\x8a\x98\xd3\xd9\x26\xe1\xa8\xff\x0f\x1e\x5c\xa6\x52\x61\x65\x3c\xa0\xbd\xf6\xb2\x3c\x78\xef\x78\x32\x0c\x90\xbb\x3c\xc8\x1d\xa2\x2d\xf8\xde\x9c\x2b\x57\xbd\xb1\x9a\xb0\x6e\xa8\x4e\x52\x7a\xd6\x4e\xaa\xa8\xaf\x5c\xf9\x11\x4c\x11\xa1\xec\x4d\xbe\x81\x7c\xf4\xd2\x27\x37\xa7\xd3\x34\x71\x1f\xb4\x0d\xc1\xee\x20\xf7\xfa\x8c\x22\xd3\x26\x23\x97\x4b\x9e\x2f\x04\x77\x77\xc5\xcb\xf3\x4c\xf5\x78\x50\x47\x1e\xc3\x8f\x32\x6d\x24\xed\x12\x4e\x4e\xb6\x5d\xba\x93\x07\xc7\xd0\x50\x40\xad\x06\x6c\xeb\x22\x43\x60\x1d\x6c\xa9\xb5\x4d\x5e\x8b\x30\x8e\xfe\x35\xaa\xdb\x0c\x0d\x17\x1a\x4d\x14\x5c\xdf\xe4\x01\xea\x26\x9f\x95\xc0\x1e\x2d\x32\x93\x29\xda\xdc\xba\x50\x1e\xd5\xde\xc5\xbb\x1f\xac\x33\x83\x86\x30\x7b\x86\xac\x85\x33\x8c\xae\xb9\x59\xf0\x20\xb2\x6a\xa9\x47\x78\xc3\x11\xba\xe2\x3a\x4b\xc8\x03\x16\x91\xf7\xfd\x2b\xa7\xed\xb1\xdf\x07\x79\x90\x65\x52\x78\x11\xcb\x97\x4e\x57\x4e\xf0\x40\x07\xd4\xdf\xb7\xa3\x0f\xdf\x7a\x85\x43\x96\x66\xc1\x03\xcc\x22\x37\x85\x36\x88\xba\xa7\xc9\xbd\x2b\xab\xb9\x7a\x3d\x0f\x83\x80\x96\xde\xf7\xfb\xe5\x8a\x1a\x4c\x77\xf7\xcb\xe7\xdd\xfd\x66\xb7\xd8\x6d\x96\x8b\x47\x7f\xdd\x30\x06\xa2\x3e\xb5\x1b\xda\x68\x36\xcd\xe1\xf9\xfd\x59\x26\x24\x28\x91\x2c\xcb\xb7\xbe\x71\xef\x03\xd5\x3e\xc1\xa3\x94\x73\xbb\xc2\xa8\x80\x40\x70\xe9\x2b\xc9\x03\xc1\x23\xae\x48\x6d\xf6\xee\xe1\xfe\xe5\xe5\xfe\x69\xb5\xd9\xac\x9f\xbf\x3d\xdd\xde\x3c\x3f\x7d\xf3\x21\x0f\x8f\xc0\xca\xf6\x52\x07\x58\x8e\x85\xae\xef\xf2\xe2\x15\xab\xba\x0d\x0e\x89\x1b\x74\xca\xf4\x3c\x7e\x2d\x11\xa4\x24\xba\x77\x9b\xe7\xa7\x41\x35\x8b\xc7\x81\x34\x49\x07\x12\x5e\x3a\x11\xb8\x2b\xa1\xde\xb1\x43\xc2\x63\xc0\xc4\xd7\xf7\xae\xd9\xe3\x26\x3f\x9d\x84\xc6\x4a\xd3\xe2\xaf\xf5\xf9\x9a\xdd\x6b\x38\x7b\x79\x22\xac\xf3\x7d\x84\x77\xc7\x76\xea\x33\x1a\xfe\x86\x13\x6d\xd9\x73\xe5\xf9\xf2\x15\x07\xd8\x11\x77\x98\x45\x29\x4f\xc7\xf2\xc6\xfe\x4c\x06\x8a\xec\x02\x18\x93\x1f\x72\xc2\x37\x37\xbf\xca\xca\x87\x29\x3c\x4d\xac\xf8\x9f\xcc\x3f\xc8\xf1\xf1\xd6\x53\x6d\x2f\xbe\xc5\xda\x6b\xe5\x7f\xa6\xd4\x2c\x78\xaa\xd0\xb7\xde\xea\x06\xe1\x48\xbc\xd0\xad\xf1\x0f\x27\xb7\x9d\x6a\x69\xd3\x54\xaa\xf5\x31\x87\xf9\x32\x9e\x61\x6c\x49\x5e\xa0\xf8\xad\xfd\x70\xe3\x5b\xca\x0c\xf7\x78\xe6\xfb\xe2\x74\x6e\xea\x59\x46\x01\x37\x98\x73\x41\xb5\x4e\xcf\x62\x7f\x0b\xb9\x8b\xc3\x14\xa2\x9e\xec\x0f\x5c\x04\x86\x1a\x7b\x8e\xa5\xde\x9d\x5c\x07\xcf\x74\xe3\xf9\xac\x3b\x79\xf4\xd3\x42\xd9\x42\x96\x13\x40\xb5\xaa\xa7\x96\x30\x7c\x38\x61\x43\xe1\xa7\x18\x40\x68\xba\x32\xeb\xaa\xd0\x65\x55\x53\xf8\xf3\xd1\x0e\xe5\x4f\x93\x16\xcb\x59\x93\x15\x59\x77\x94\x7e\xed\x11\xe5\xfb\xf1\xda\x35\xb8\x45\x38\x4e\x1e\x18\x14\x27\x64\xf1\x09\xab\x63\x7e\x98\xc8\x16\x08\x0e\x1a\x8d\x63\xd4\x71\x89\xdb\xb2\xea\x2e\x6e\x04\x95\x86\xc8\x9c\x8c\xc8\xea\xe7\x97\xa3\xcc\x32\x02\x4b\xdd\x3f\x7f\x1f\x53\x60\x09\xae\xe3\x44\x8e\xf5\xa2\x6f\xb6\xeb\x69\xe6\x90\xeb\xcc\x12\xd4\xd9\x44\x07\xa5\xfb\x68\x72\x4d\xe6\x95\x96\x61\xd7\x6b\xe2\x92\x9f\xf7\xf5\x5d\x59\xad\x87\xdc\x58\x03\x03\x87\x71\xc8\x1d\xa7\xcc\x47\x73\xfb\x43\xaf\x80\x63\x16\x11\x6e\x6f\x7b\xff\xc7\xfd\xd0\x0d\xe3\x28\x90\x6a\x10\x7e\x51\xe6\x1f\x80\xe4\xb8\x61\xae\x4f\x6b\x6e\x9b\x3b\x0f\xd0\x40\xc3\x7b\x36\xa9\x76\xcd\x55\xd4\x34\xe8\x13\x84\xee\xc7\x45\x80\x29\x65\xa9\xdc\x6a\xdf\x94\x2a\xc7\x91\x26\x9b\x10\x61\x64\x2b\x78\x03\xf6\xcd\x5b\xac\x9b\xaa\xbc\x74\x9b\xb7\x08\x99\xd1\xb1\xe7\x65\xb1\xa8\xc4\xfb\xba\xf5\x2d\xba\x01\x2a\x20\xe2\xa3\xed\x66\xbb\xda\x6c\xe3\xee\xcf\x06\x28\x66\xee\x9a\xac\xcb\xaa\xde\x51\x92\x4e\x97\xbf\x88\x38\x7b\xfc\xc9\x44\x14\x47\x59\x32\xe0\x49\xb5\x30\xbf\x4f\xa8\x52\x85\x88\xb2\x20\xb1\xcc\x5c\x70\x74\x03\xfd\x11\x13\x51\x17\xd7\xce\xae\xbb\xef\x65\x33\xa6\xd7\x10\x22\x0e\x23\xff\xf6\xd4\x19\x97\xd0\xb4\x71\x80\x15\x41\x18\xd9\x7c\x11\xa7\x11\xf9\xc9\x6d\x28\x7b\x03\xea\xed\x95\x28\xc2\xc8\x89\x0b\xd9\x78\xa9\x88\x58\x60\xe4\xe0\x23\xce\xd1\x1f\xe6\x11\x44\x92\xa6\x54\xf8\x05\x59\x56\x96\x19\x79\xd0\xa2\x21\x12\x6d\xd3\x2c\xdb\xf5\x37\x1f\x98\x0b\x16\x67\x49\xcf\xee\xf6\xdd\x02\xa6\x26\x2b\x47\xa4\x51\xc4\xad\xe4\x00\x51\x99\xaf\xb1\xce\xeb\xe6\x8a\xe9\x5f\x88\x94\x85\x26\x1e\xc8\xcd\xbb\xd2\xf2\x94\x70\x51\x88\x34\x4b\x29\x91\xb1\xa3\xc4\x97\x69\xd7\x97\x17\xbc\x18\x10\xea\x08\x91\x05\x40\xa1\xf4\x73\x81\xbf\xe3\xe5\x6f\x27\xaf\x3f\x2b\x41\x8a\x21\xfa\x85\x6e\x13\xcd\x13\x3b\x2c\x32\xd4\x44\x62\x7c\x8b\x3f\xfb\x9c\x9b\xe0\x5c\x53\x1f\x4a\x81\xbf\xfe\x87\x00\x64\xe5\x15\x1c\x4c\x70\x4c\x13\xf7\x19\x36\x4d\x05\x0d\xbe\xda\x9b\x9b\x60\x7e\x26\xb3\x49\x88\x30\x73\x86\xb2\xf5\xca\xea\x7a\xa7\xf6\x90\x17\xbb\xa2\xec\x81\xde\x42\x68\xab\x9e\xf3\x8b\xa6\x5b\x47\x20\x27\x84\x8c\xed\xa7\x97\xe7\x8b\xe5\x1d\x8b\xba\x23\x29\x0f\x2c\x2b\x0c\x79\x4d\xe4\x08\x8d\x7f\x59\xf1\x8c\xf2\xba\x1a\x55\xa9\xf1\x05\x2a\x38\xd6\x33\xc3\xb4\x4c\xa5\xd5\x31\xaf\xa9\xea\x3a\x7e\x68\xad\x52\xe9\x12\xf7\xf7\x0d\x1e\x37\x4d\x79\x3a\xa1\xf6\x51\x5c\xff\xd1\xd0\x40\x2a\x3b\x38\xf0\xbc\xe6\xa6\x1d\x0a\x41\xc4\xb8\xb0\xb2\x0d\xbb\x97\xf5\xfd\xd2\x4f\x4b\x08\xa2\x94\x39\xa1\x96\xbc\x78\xfd\x01\x9d\x8e\xef\xb8\x74\x0b\x81\x14\x54\x50\x5a\xe4\x15\x90\xad\x1e\xf3\xf4\xcc\x6c\x98\x10\x20\x23\x4b\xdc\xba\xfd\x14\xa5\xec\x7e\xfa\x04\x12\x84\xb1\x15\xb8\x5a\x56\x50\xbc\x5d\x6a\x87\xf5\xf3\x47\xa3\x38\xa2\x66\x46\xf0\x55\x91\x61\xb3\xf4\xac\xdd\x85\x48\x28\x82\xda\x17\xe5\xae\x34\xbb\x66\x18\x1f\x43\xa4\xac\xb0\x93\x63\x8b\x1a\xa7\xe6\xe6\x23\x57\x88\x91\x51\x16\xc5\xed\xf6\x43\x7e\xe5\x41\x49\x66\x7c\x4e\x92\xa6\x84\x60\xc9\x0b\x8b\x0e\xfa\xcd\xaa\x6a\x8d\xac\x15\xb0\x38\x95\xc1\x08\xe8\xe1\x6f\x93\x25\x99\x0c\x5c\x29\xa4\xd2\x03\x75\x8e\xf1\xa7\x64\xad\x9b\xe7\x72\x8d\xf0\xbe\xbc\x5e\x6e\x40\x60\xfc\x09\x69\x3b\xc9\x34\x7f\x1e\x75\x03\x33\x61\xe4\x75\x38\xb0\xf2\xb3\x1e\x52\x91\x44\x69\x67\x6c\x9a\xf3\x55\xa5\x0c\xb2\x94\x19\xe1\x0c\xfe\x7d\xf1\xb3\xbc\xe2\xae\x9f\x9d\x1f\x19\x57\x21\x8c\xe4\x60\x7e\x72\xff\x9b\x99\x8c\xc9\xbe\xee\x49\x35\x78\x80\x86\x85\xcc\x64\xae\x14\x48\xcd\xcb\x3f\xf2\x83\x56\x3e\xf7\xe7\x93\x4d\xc0\x03\xe3\x63\x8d\xe5\x79\x5a\xb5\x00\x1e\x07\x6e\x7f\x6a\x76\xa7\x9e\xdf\x70\x57\x9c\x8f\xed\xe4\x39\x55\xe5\xae\x6a\x6f\xc7\xce\xa2\x5d\xeb\x11\x35\xd7\xd8\x16\x7f\xb1\x4c\x3a\xc1\xb5\x6b\x96\x93\xf1\x5b\xe2\x32\xa5\xd8\xf2\xf9\xd4\xc0\x70\xf3\x06\x91\x84\x1d\x1a\xf5\x74\x9a\x7f\x73\xe3\x1f\x15\x90\x12\x07\x6d\x5e\x7f\x3f\x1f\x8a\x81\x44\x55\x9a\xfc\xbb\xdf\xa5\x40\x80\xa0\x74\x55\x5e\x2f\xcb\x5a\x8f\xe7\x21\xf0\x40\xfa\xfc\x8f\x4f\xfb\xcd\xfe\x16\x80\xa5\x61\x6c\xaa\xcb\xe2\x60\x75\xbe\xb0\xfe\x08\xc9\xf0\xef\x29\x62\x6a\x26\x23\x00\x00\x86\xa7\x3d\xb8\xf4\x50\xaa\x17\x1b\xe6\x8c\x7f\x58\x06\x31\x55\x8e\x6f\xce\x17\x8b\x4d\x9f\x7e\x47\x19\x68\xaa\xb3\xfd\xb6\x58\xfe\xfe\xf2\xbc\xdd\x51\xb0\x4c\x8d\xf1\xcb\xd5\x93\xaf\x22\x80\x62\x92\x1c\x48\xbb\x92\x5d\xbd\x36\xea\x8f\x2a\x22\xc8\xd8\xd5\xfb\xdc\x51\x06\xf8\xdb\x54\x59\x00\xd8\xf9\x54\xf9\x11\xd7\x24\x31\xe0\x8f\xca\x84\xd2\xf4\xf6\xb2\x7a\x61\x4d\x5c\x7f\x54\x49\x9f\x0c\x2a\x3e\xea\x3c\x71\x63\xb5\x8c\xb4\xe9\xd5\xf9\xf3\x99\xd2\x17\x68\x0d\x42\x76\x90\xcd\x5f\x05\x56\xb6\x1b\x76\x5b\x6e\x90\x78\xe9\x9e\x8b\x47\x24\x2a\x1e\x7f\x07\x18\xd9\xc4\xe1\x17\x38\xe2\x53\x1b\x1b\xb5\xef\xf0\x53\x9a\x15\x01\x18\x27\x81\xcd\x86\xd6\xe7\x23\x3a\xf6\xb4\xee\x82\x29\x12\x22\x93\x4a\x7a\xf7\x47\xcf\x48\x3e\x23\x5d\xf0\xd9\xa2\x47\x13\x8a\xd4\xf3\x7a\x2f\xcf\x4d\x69\xcc\x20\x09\x0f\x26\x4c\x08\x77\x24\xf1\x06\x8a\xbe\x0f\x40\x06\x42\x46\x3e\x87\x33\x8c\x2d\x65\x00\x96\x45\xa9\x2b\x1f\x95\xea\xed\x5b\xd1\x4c\xd1\x57\x32\xd0\xc2\xb5\xce\x1c\xcb\x9f\x96\xd3\xf3\x3a\x8f\x21\xc3\x30\xd2\xdc\xe7\x6a\xaa\x9f\xb9\x22\x69\xfb\xc5\xe9\x74\xf0\xc4\x97\xd3\xf1\x82\xba\x1b\x96\xe5\x71\x20\x14\xde\xfe\x5d\xa7\xaa\x93\x2e\xb1\x35\x8c\x7e\xe3\x96\x61\x26\x13\xdf\x75\x81\x87\x43\xdf\x94\x3d\xbe\x7a\xc4\x32\x2a\xa2\x9a\xfc\x70\xf8\x76\xda\x96\x83\x14\xf2\x20\x75\x95\x0e\xfe\xa3\xef\xe8\xfa\xb4\xfd\x50\x46\xda\x6a\xd6\xac\x49\xb1\x56\x7f\x3e\x2d\x64\xcc\x02\xaa\xf6\x34\xf9\x11\xbb\xdd\x75\x57\xff\x82\xd3\x8e\x64\x17\xfd\x53\xc7\x29\xc6\x4e\xbb\xad\x29\x90\x0a\xa4\xed\xf6\x36\x7e\xa8\x38\x8b\x7d\x3f\xba\x25\x50\x99\x2b\xe3\xc9\xc4\xc1\x21\xcf\x75\xd7\xb2\x32\xe3\xd1\xcb\x04\x91\xdc\x1a\xd0\xfa\xfb\xc9\xfc\xad\x51\x9a\xe7\xe9\xea\xde\x0a\x0b\x25\xd9\x13\x87\xd0\x5b\x62\x35\x60\x3c\xf5\x63\xd2\x58\xba\x02\xe2\xba\x94\xe5\x74\x02\xb1\xd4\x36\x67\x7f\xfd\xcf\xfd\xcb\x38\x27\xf7\xf7\x54\x61\x42\x32\xae\x89\xfd\xd3\x3b\x1d\x65\x81\xb3\x69\xe2\xb9\x95\x25\xd3\x28\x25\x1e\xb3\x85\xd6\x77\x79\xbd\xbf\xb9\x7c\x92\x61\x96\x29\x04\xca\xf5\x72\x2d\xe1\x04\x2a\xf7\x24\xb6\x42\xa6\x26\x26\xcf\x67\x54\x41\x9c\xe2\x24\xe7\xef\x3f\x13\x69\xe8\xb9\xd9\xbf\x15\x75\x79\xd0\xdb\xdb\x95\x17\xd6\x79\x39\x40\x63\xca\xea\xe8\x7f\x87\xeb\x8c\x32\x70\x8b\x25\xd4\xa0\xf3\xc5\x31\x57\xf9\x70\x5b\x94\x22\xb4\x35\x7b\xf2\x3b\xca\x0a\x5e\x71\xb6\x97\x58\x0a\x16\x52\x25\x2d\xaf\x3d\x6c\xcd\x62\x19\xef\x8b\x17\xeb\x63\x5d\x8d\xb7\x1d\x19\xf2\x7c\x19\x24\xcf\x3f\x92\x60\x11\x52\x40\x28\x22\x2f\xa9\xda\x87\x46\xa1\x88\xfe\x3d\xfa\x37\x0d\x46\x9d\x2e\x12\x42\x4d\x18\xcb\x9d\x39\x1f\xda\x25\xfc\x52\xa1\x9b\x59\xfa\xc5\x71\x7b\x7f\x94\xb0\x1d\xdf\x30\x44\x69\x34\x2c\x91\x7b\x41\x74\x97\x5f\x9c\x3c\x1e\x30\x41\xa9\x80\xd5\xf6\xeb\x40\x17\xc0\xbf\x54\xd0\x92\x82\x65\x5a\x4d\x2f\x7b\x8b\x41\x1a\x72\x36\x8d\x1f\x01\x4d\xe2\xa8\x9a\x9e\xf0\xd7\x80\x04\x6a\xfc\x93\x32\x95\x54\x87\xd9\x56\xd8\x8c\x58\xee\x84\x94\x19\xf7\x3c\xc5\xdb\x8e\xd2\x7e\xd5\xce\xa6\x42\xe1\x1d\x12\x53\xc5\x78\x12\xa9\x58\x93\x7f\xbb\x78\xad\xd0\xe6\xcb\xdc\x01\x64\x9d\x9c\x1c\x41\x51\x37\xe5\x61\x8c\xb9\x92\x98\xa1\x70\xb8\xac\x49\x9b\x8d\x1f\x20\x94\x0a\x2c\x17\x9e\x3d\xf3\xeb\x80\x7e\x4b\x48\xd4\x82\xda\x6e\x7c\xb8\x71\x0d\xaf\xfb\x90\x7f\x77\x00\x2e\x93\x68\xb4\xa3\x61\x24\xb9\xae\x76\x7f\xf3\xfe\x86\x34\x21\x78\x0a\x4d\xa2\x67\x6d\x37\x21\x67\x01\xc7\xef\xd4\x30\x1d\x7b\xc2\x5a\xa7\x2a\xe4\x8f\x64\x99\x1e\x14\x6f\xe8\x31\x97\xd7\xbd\x8e\xd2\xe8\xd8\x2b\x45\x9d\x4f\x16\xd1\x7f\x57\x56\x1b\xe2\x09\xd9\x34\x78\x9a\x0f\x9e\x55\x18\x27\x44\x1f\x77\xb7\x5a\xed\x1e\xef\x1d\xaf\x90\x50\x61\x12\xd0\x8d\xe7\x45\x8d\x55\xd3\x33\x0b\x7d\x40\x97\xa2\xc2\x44\xd1\x34\x3c\x12\xdb\xfd\xa4\x8b\x52\x45\xa1\xa1\x8d\x36\x2f\xa8\xc1\xae\x4b\x71\xab\x28\x13\x04\xba\xfb\x82\xc5\x72\x9f\x9f\x1e\x08\x0a\xbb\x7a\x6f\x2a\xf8\x3c\x78\x51\x11\x0f\x09\xce\x5b\x9e\xb0\xb8\xcb\xab\xba\x19\x61\x51\xc6\xd9\x7f\x15\x01\x50\x26\xe8\x5c\xe4\x4d\xdd\xfa\x50\x1d\xf0\x4d\x45\x60\x98\xa5\x54\x83\xd7\xa1\xfc\xa4\x3f\x2c\x19\x4f\xfa\x54\xdd\x6e\x90\xf6\x51\x11\x6a\x22\xbe\xe8\x4e\x1a\x92\xd4\x7d\x6e\x3a\x55\x1c\x1b\x22\xff\x27\xc0\xd7\x44\xc0\x6c\xfc\xea\x62\x11\x88\x21\xe6\xe6\xb6\x0f\x8e\x54\x6c\x62\x74\xeb\xf5\xa5\x2c\x0f\xf3\x54\x0d\x2a\x36\x99\xe9\x69\xc0\x6c\xba\x6d\xb2\x01\xab\x24\x32\xc4\x06\x79\x2e\xdc\x2c\xd6\x43\xb7\x4b\x25\x09\xa3\xd9\xf9\xa5\x6c\x50\x95\xf9\x68\xcd\xab\x04\x53\x62\x65\xcc\x55\xb9\x29\x4d\xd3\x89\xda\x0a\xc5\x58\x42\x7c\x30\x5e\x04\x60\x0a\x16\x52\x69\x9c\xc8\x60\x40\x39\x67\xd3\x8d\xa3\x45\xac\x52\x96\xd2\xfc\xa7\x4c\xb5\xcd\x63\x7a\x0b\xa0\xb2\xcc\xaa\xf7\x76\xf4\x2f\x5f\x4b\x7d\x98\xfc\x46\x06\x9c\x00\xae\x83\xd0\xaf\x76\xfa\x33\xdd\x04\xe1\x8e\x97\xde\x8b\xb4\x8f\xa7\x0f\xe7\x31\x99\xa8\xbc\x5e\x1d\xf3\x66\xe0\x24\x2b\x2e\x6c\xbe\xcd\x7f\x9c\x79\x6a\x37\xf2\xc9\x66\xaa\xb3\x93\x39\xc1\xa5\xa1\x7c\xff\x73\x75\xda\xe3\xb9\x7e\x84\x2a\x2f\xe0\x06\x8a\xd7\xb7\xf2\xad\xfb\x41\x6d\xb3\x01\x6d\xf8\x39\x5b\xe9\x52\xd2\x84\x91\x15\xc7\x6b\x56\xdb\xaf\xf3\xfe\x80\x52\x71\x9c\x38\x32\xc0\xfb\x06\x8f\x1f\x98\x06\xa2\x38\x6f\x23\xb2\xe7\xa7\x6f\x9b\xdd\xf6\x7e\xb5\x0e\xfd\x7d\x60\x00\x54\x28\x5c\x9f\x0f\xd8\xbc\xc1\x7d\xd9\x1f\x90\x14\x67\xee\x6a\xf8\xe9\x12\x62\xff\x9a\x38\x5e\x0a\x65\x9c\x7a\x59\x98\x9d\xc6\xe3\xb9\x6a\x77\xfb\x36\xa8\xdd\xc9\x11\x3b\x83\x32\x71\x48\x51\xcd\x1a\x2d\xf9\xf4\xf8\xfe\x8c\x08\x28\xa3\x70\xaa\xf0\x5e\x95\x2e\x0d\xde\x13\x22\x74\x17\x01\x43\x75\xf8\x57\x87\x6b\xa0\x0f\x35\xba\x92\x0e\x75\x42\xfe\x67\x83\xef\xcd\x84\xea\xcc\x8d\x88\x02\xc9\x6c\x56\xfc\xd8\xce\x01\xd4\xdf\x2d\x55\x7f\x39\x4d\x37\xe8\x28\xb4\xb9\x8c\x9e\xa4\xf4\xa5\x1a\x22\xae\x75\x94\x49\x82\xc0\x61\xa1\x57\xcd\xfe\x0b\x0e\x05\xa9\x85\x8e\xc0\xd0\x52\x6b\xb0\x6e\xee\xca\x72\xd3\xc3\xcd\x75\x1c\x5a\x4a\xbb\x47\x68\xd4\x9e\x80\x28\xb7\x08\xfa\x90\x17\x1f\x20\xa6\x74\x1c\x6b\x7a\x7d\x92\x32\xf2\x6e\x5f\x19\xed\xa1\x3a\x56\x68\xb7\x5f\xd5\x10\x75\x70\xf7\x77\xcd\xb2\x2e\x1a\xfe\x56\xb7\x91\x56\x57\x99\xd2\xb1\x4e\x29\xc6\xfe\x69\xb9\x5b\xaa\xa9\x2e\x7d\x3b\x02\xa8\x27\xe5\x98\xd7\xea\xa9\x74\x9c\x6e\xfe\x60\x92\x24\x04\x48\x7f\xf4\xd0\x16\x7f\x80\x45\x48\xd5\x94\x3f\x8e\x65\x81\x0d\x0c\x5f\x1a\x8b\x63\xe6\x92\x9f\x63\x78\xbb\x66\x2c\x14\x0e\x36\xf8\x32\x05\x74\x68\xa6\x03\xaa\x3a\x0d\x78\xd6\x3f\x2f\x74\x69\xa6\x15\xb5\x73\xbc\xec\xa1\xd2\xe7\x7a\x5c\x72\xd5\x69\x9a\x11\x8a\x56\x7e\x84\xa6\xd4\xa9\xb4\x37\x4a\x9a\x47\x3d\xa1\xaf\xd0\x99\x4e\x68\xd6\x6b\xaf\xdc\xf5\xa9\x17\xa8\xb9\x08\x33\xd6\xb1\xc1\x1e\xfa\xfc\xe0\xcd\x69\x3a\xe3\x44\xa0\x42\x17\x16\xd9\x17\x3d\x07\x52\xd3\x22\xb5\x7a\x8d\x0d\x56\xc7\xbc\x18\x6e\x38\xa3\x89\x2e\x04\xc7\x61\x84\xfd\x15\xea\x3d\x65\x20\xea\x7d\x7e\x9a\xdf\xa3\xb4\x90\x91\xe3\x93\xb7\x73\xb9\x1f\xef\x06\x80\xb2\x80\xa7\x3d\x71\x4e\x47\x2c\x1d\x32\x74\x69\xc9\x24\x28\xd2\x66\xaf\xf3\x66\xb8\xef\x68\x29\x50\x5a\x07\xce\xeb\x76\x7e\xf0\xd6\x55\xaa\x7d\x8b\xd9\x2d\xb5\x7e\x4f\x25\xb8\xad\xc7\xee\x47\x67\xb1\x57\xea\x5b\x1e\xf2\xc1\x5c\xd2\x31\x23\xaf\xe2\x7e\xf9\x3c\x20\x55\x16\x5a\x67\x56\x30\x97\x44\x5e\xb6\x83\x48\xe9\x0a\x84\x7e\x0d\x32\xd1\x9a\x1b\xca\xa4\x3c\xad\x6f\x76\xe3\xc5\x67\x34\x2a\xde\xe1\x7a\x0f\x70\x19\x3e\x3c\x06\x51\x6a\x2c\x01\x4d\x83\x55\x01\x87\x0f\xe1\x7a\xa3\x57\x81\x41\xa4\x09\xa0\x72\x42\x7c\xeb\x2e\xc5\x14\x79\xec\x1a\x0f\x70\xd9\x9d\xca\xf2\xb0\xd3\x15\xe4\x85\xa3\xca\x99\x5c\x80\x1b\x47\x23\xd6\x2e\xc0\xe7\x9f\x9d\xc3\x8c\x81\x30\x9e\x0e\x68\x38\xd1\x76\x1a\xde\x70\x3f\x75\x69\x31\x90\x82\xcc\xf3\xc3\xe3\xf3\x08\x22\x83\x81\xea\xf8\xbd\x29\xbf\x98\xff\x35\x89\xd9\x30\x4c\xb8\xf1\x3f\x44\xbd\x5a\x06\xab\x8e\x9d\x0d\xc3\x34\x25\x65\x72\xd2\xa8\xb4\x41\xca\xd2\xfa\x36\x79\xb3\xbf\x73\x4c\x75\x50\x61\xd1\x3c\x95\xcd\x7d\xf1\xad\xeb\xdb\xc7\x28\x30\xa9\x5b\x29\xbf\x95\x92\x00\x6e\x30\x57\x65\x18\x2d\x09\x8c\x62\xa5\x8c\x13\xc6\x3b\x3b\x85\x98\x59\x12\x8c\xc9\x97\x88\x74\x1c\x78\x98\xfa\x76\x5f\x95\xbf\x6e\x0e\xa5\x6c\x63\x5b\x7c\x2a\x9b\xb5\x63\xd6\xec\xcc\x22\xc6\x41\xe4\xd1\x8d\xdb\x0a\x34\xd2\x53\x6f\x48\xec\xae\xdd\xa4\x27\xab\x1e\xe3\x18\x09\x37\x45\x8c\x60\xba\x37\xdd\x18\x63\x48\xba\x4a\xed\xcf\xde\xe6\x3f\x17\xfa\x43\x25\xe2\xc9\xfd\x26\x21\xd3\xb1\x87\xb4\xad\xb6\x5f\x2d\x4f\xa9\x3f\xa8\x12\xd5\x27\x2b\x1e\xca\x9f\x58\x7d\x82\xdc\xc0\x04\xd1\xc2\x1a\x1a\xa8\xbc\x16\xfa\x79\x24\x06\xeb\x06\xb2\xc8\x22\xf3\xb0\x75\xfa\x77\xb2\x17\xa6\x11\xc8\x92\x40\x30\x1f\x13\x19\x5f\xbb\xed\x8f\x86\x60\x06\x46\xe7\xbe\x30\xe5\x23\xbc\xbf\x60\x45\x1f\xe8\xfe\x38\x2c\xdb\xf9\x73\x74\x42\x36\x70\x9f\xab\x7a\xb8\xf3\x60\xca\x2d\x47\x95\x93\x78\xba\xce\xa5\x4c\x48\x36\x30\xcb\x32\xc2\x56\x14\xf8\xeb\x2b\xe6\x1f\xe4\x7a\x91\xa7\x09\xc5\x64\xfb\x36\x2a\x82\x23\xe8\x3f\x41\x61\xa1\x2e\xbe\x01\x6c\x58\xc5\x40\x91\xf0\xd4\xa7\xca\x9a\xfd\xd6\x3a\x34\xcf\xe7\xe6\x74\x6e\xae\xb9\xa9\x05\x0a\x61\x3f\x88\x63\x61\x20\x3d\xae\xee\xd5\x09\xa1\x2d\x4d\x04\xf1\xea\xcd\xf6\x96\x4f\x51\xed\x28\x8c\xa4\x4e\x9f\xfb\x97\xbb\x4d\x6b\xa8\x47\x05\x04\x84\xc8\x7a\x9e\x17\x84\x6a\xfb\xab\x1c\x70\xbc\x76\x03\x78\x66\xb9\xa7\xbb\x4f\x04\xa9\xe6\x5d\x3e\xe1\x95\x80\x9d\xb6\xc7\xd0\xdd\xc7\xe8\x79\x24\xb7\x10\x54\xca\x15\xec\x47\x69\x5f\x94\x32\x8e\xac\x49\xb2\xed\xd4\x47\x92\xd3\x29\xdf\x2f\x13\xea\x91\xf1\x03\x49\x69\x57\x88\x95\x33\xb4\x4d\x2f\x2e\xcb\xed\x79\x39\xfd\x48\x94\xd4\x3c\xf9\x7c\xea\xa7\x84\x8a\x6c\xb3\x77\x7d\x56\x0a\xeb\xba\xaf\x18\xa3\x82\x98\xaa\x99\x47\x28\xf2\x13\x21\xc3\x37\xa8\xaa\x0e\xc3\x80\x5a\x1b\xcf\x38\xb9\x51\xfb\xb2\x3c\xcc\x6f\x9b\x88\x4a\x52\x1d\xcd\xc2\xea\xc3\x41\xca\x18\x11\x19\x51\x59\xef\x2d\xb7\xde\xe4\xd3\x1b\x65\x79\xe6\xf1\x1d\xd5\x80\x8e\x72\x98\x95\x30\x41\xa4\x12\xed\xbb\x29\xac\x91\x7d\x29\x0f\xb9\xba\x4c\xb4\xa5\x84\x09\xa3\x10\xb8\xaf\x1f\xda\x14\x53\x77\x84\x53\xb5\xe4\xbf\x67\xac\x2e\x8e\xbd\x66\xf4\x08\x26\xc9\x58\xe4\xe0\x37\xa4\xa0\xd1\x2e\xdf\x25\x54\xba\x35\x60\x54\xa5\xf2\xe3\xa4\x24\x68\x16\x19\xab\x17\xc8\xf5\xc2\x63\xda\xfc\x08\x96\x72\xe9\x70\x61\x0e\xb9\x60\xd9\xa9\x7e\x3b\x57\xe5\x48\xa6\x58\x18\x86\x01\x21\x09\x4e\x9e\x8d\x74\x38\x51\x4d\x1a\x2a\x2a\x11\x14\xf8\xde\x78\x35\x9b\xee\xd5\x99\x34\x52\x94\xc2\x97\xe7\xcb\x12\x0e\x6a\x51\xe8\x19\x41\xcc\xbf\x35\x95\x26\x15\x40\x6c\xfe\x58\x98\xb2\x52\x03\xc1\x8d\xfe\x1b\x9a\x2c\x15\xd4\xdd\x6d\x65\xe2\x3f\xc0\xef\x1b\x9e\x85\x49\x4f\xab\xd1\xc9\x7b\x0f\xa7\xbf\x11\x69\x46\x54\x41\xaa\xa4\x66\xda\xc7\xd6\xe2\x0d\x0a\x68\xdd\x3d\x8e\x6e\x51\xa4\x40\x44\xf7\xa7\xb2\x26\x0f\xf2\x73\xea\xbd\xf1\xe3\x89\x2c\x51\xe8\xeb\x4f\xae\x43\xe4\x4b\x09\x87\x31\x15\x97\x11\xc0\x28\x0a\xdc\xfd\x2c\xcf\x6a\x8f\x55\x7d\x5f\x10\x64\x54\xbf\xf8\x49\xdf\x7d\xb3\x76\x55\x90\x29\x38\x1f\x1a\x28\x9a\x81\xed\x35\x10\xa4\x5e\x74\xbc\x7b\x8f\xcf\xe7\x39\x3a\x5a\x03\x71\x42\xb9\x00\x93\x17\xda\x2b\x22\x0d\x05\xbc\xfc\x30\x63\x3b\x15\x64\xae\x47\x8d\xd8\xee\xb0\x8c\x13\x82\x63\x38\x8c\xd1\x3a\xd7\x63\x42\xbf\x6c\xde\xb3\x32\x2a\x92\xd4\xa0\x74\xbb\x7e\x7e\x5a\xfd\x41\xe5\x47\xff\x0c\xda\x25\xa5\x69\x17\x73\x9f\xfa\x09\x51\x4f\x7b\xec\x8c\x16\xcc\x8a\x35\x6d\x97\x43\xb1\x1d\x61\x34\x5a\xe2\x83\x21\xb8\x86\x40\xb8\x93\x0b\x60\x64\xab\x44\x8e\xb0\xae\x3c\x1c\x6e\xb1\x56\x55\x7e\x1a\xf9\x31\x7d\x2b\x2c\xf7\xe7\x65\x11\x81\xa6\x17\xb7\x8f\xf7\x4f\xf7\x9b\xed\x7a\xb1\x7d\x5e\xfb\x1f\x37\xcc\x46\xb7\xaf\xd8\x3c\xc2\x6b\xae\x1c\x31\x9c\x3f\x9a\xda\x56\x99\xd6\x00\xf8\x9b\xbb\xc3\x89\x88\x12\x04\x41\x94\xd0\xa3\x11\xa3\xe7\x65\xb9\x6f\x4d\xec\x4c\x2f\x0c\x04\x01\x17\xda\xb3\xb2\xed\xf3\x83\x9e\x62\x50\xfa\xdb\x86\x20\x8c\x6c\x57\xee\x01\x0a\x5d\xf7\x72\x81\x10\x84\x19\x87\x5e\xdb\xf3\x6a\x29\x0c\xbf\x38\x04\x21\x47\x02\xeb\xaf\x57\x9b\xd5\xfa\xfb\x6a\xb3\xdb\x6c\x17\xbf\xaf\xfc\xa5\x22\xad\x28\xae\x96\x67\xfd\x8a\xcd\x10\x8f\x06\x41\x84\x36\xb6\x72\x8e\x81\x85\x2c\x8e\x9f\x3b\x76\x94\xcb\x37\xe7\xcb\x5d\x59\x11\x5a\xe6\x33\xb6\xff\xcf\x0c\x0b\x04\x89\x42\x26\xbb\xd6\x32\x1f\xc5\x0c\x92\x55\x10\xb0\x50\xd1\x4e\xbc\xf3\xf6\xef\xa1\x2c\x4f\x77\xb9\x29\x67\xb3\x00\x10\xb0\x48\x53\x43\xbd\x6f\x21\x18\xe3\x57\xdd\xe8\x64\xfc\x89\x18\x03\x4a\xac\xad\xda\xd8\xe3\x54\x75\xd4\x57\x10\x30\x01\x16\xd8\x66\x95\x8c\x7e\xcb\x8b\xd7\x6b\x0c\xf7\xb8\xeb\x65\xc6\x41\x84\x80\x19\x43\x59\x49\x9f\x9b\xb0\x40\xb2\xe1\x3a\x86\x20\x4d\x52\xda\x68\xef\x8b\xdc\x31\x6a\x2f\xb7\x4b\x7f\x23\xa9\x09\x89\xdb\x6f\xfb\xb8\xba\xe2\x1d\x86\x20\x0b\x19\xcd\x1b\xd2\xd8\xea\xb9\x46\xc6\xd7\xcf\x42\x4e\x46\xe9\x7e\xf9\xec\x3a\x41\xc3\xee\x7c\x16\x83\x75\x08\x7f\xde\x21\x8e\x48\x43\x21\xc8\x44\x14\xb4\x17\xff\x7a\xd1\x55\xe9\xff\xc8\x63\xc3\x92\x69\x21\x8d\x8a\x98\x9f\xc5\x6b\x10\x08\x13\x99\xc4\x33\xe9\x9e\x6b\x9c\xa2\xfa\x20\x00\xb4\xec\x1d\x78\xcc\x9b\xcd\x5b\x7e\x38\xac\xa1\x75\x0a\xbe\x50\x5f\xd5\xdc\xc5\xaf\x92\xf4\x1f\x4c\x36\x99\x59\xcb\x4b\xcb\xfe\x7d\x8d\xf5\xa9\x2c\x6a\xdb\xc0\x3a\x5d\xdc\x0a\xd3\x2c\xf5\x1c\xf0\xc3\xac\xde\x07\x97\xd6\x22\x25\xf6\x54\x67\xa6\x08\x62\xf4\x08\xf5\xdb\xdf\x85\x22\x93\xcb\xa0\xb4\x79\x72\xaf\x30\x4f\x8d\x3f\xf3\xa9\x17\x08\x4c\xcc\x19\xb8\xee\x85\xaa\xc6\x4f\x71\x18\xed\x68\x8b\xae\xdf\x51\xd7\x99\x6d\x31\x1d\x84\xa9\x10\x06\x51\xa2\x7d\x06\xa6\xf5\x1d\x9b\x6a\xf2\x61\xc2\x40\x73\x6a\xce\xb9\xcd\x2f\xe6\xe0\x19\x1a\x21\x0c\x05\x5a\xc2\x67\xad\xef\x55\x39\x57\xc5\x84\x30\x8a\x03\x39\x88\x29\x97\x70\x38\x0c\xe6\xe7\xb8\xfe\x94\x5c\x89\xff\x5e\x47\x24\x10\x46\x22\x24\x9a\x8a\x9f\x16\x6b\x3a\xec\x62\xed\x46\xa0\x65\x61\xa7\x16\x9e\x6d\xb9\xa1\xf5\xe8\x49\x2a\xe3\xe8\xff\xfc\x38\xc9\xb8\x53\x52\x20\x56\xe6\xe1\xba\x0d\xe3\x38\x21\xac\xd5\x17\x42\x2f\x1d\x72\x05\x93\x4a\x14\x84\x49\xa0\x4d\xd0\x13\x21\x4d\x5e\x5a\x12\x71\x6a\x49\x79\xad\xa0\x68\x16\xe4\x5b\xfb\xa2\xe5\xf8\x15\x25\xc2\xf6\x7b\x7a\xe1\xeb\x27\x7c\x6f\xbe\x59\xa4\xac\x7f\x22\x96\xb2\xd4\xad\x52\xdb\xe4\xdd\xa7\xc9\xae\x96\x51\xc8\x54\x6c\x7b\xeb\xdc\xbc\xb8\xb9\x3c\x0f\x19\x09\xe7\x97\x67\x98\x71\x2b\xe4\xf0\xb0\xbc\x9d\xef\xba\xf9\x9b\x7f\xfd\x65\x00\x3c\xb2\xd5\xa9\x2b\x6c\xf3\xd3\x6c\x7b\x31\x84\x3c\x4c\x32\xee\xd7\x5a\xeb\x9c\x2e\xcf\xc7\x36\xcc\xc8\x7f\xa2\x27\xda\x9d\x3c\x1a\x8f\x24\x31\xf2\xb5\x7e\x1e\xb5\x35\xce\xae\xa6\x90\xa7\x2a\xf3\x94\xc6\xff\x74\x5f\x9a\x61\xa4\x18\xec\xcf\x21\x07\x24\x04\x0f\xb5\xd1\x8e\x67\x0a\x37\xc2\x58\xd4\x9a\xf3\x20\x9d\x43\x34\xff\x82\x20\x94\x54\x39\xfe\xcb\x2f\xdb\x1f\x79\x51\xd0\x3c\xf6\xac\x1f\x10\x02\xb7\x5c\x25\x32\xd7\x37\x43\x21\x8a\xff\xfd\xbf\xc9\xc5\x64\xa0\x48\x38\xd3\x35\x09\x39\x8a\xd8\xc9\x4b\x93\x89\xed\xbc\x7e\xc5\xe6\x78\x79\xc3\x4b\xae\x27\x13\x50\x8a\x94\xd8\x0c\xef\x72\x7d\x7e\x27\xc1\xc4\xbe\x3e\xf8\x0f\xcd\xd8\xf4\xbe\x34\x80\xc5\x0b\x9f\xeb\xd5\xf6\xab\x7f\x2e\xa5\x62\xe6\x59\x71\x6c\xa3\xc9\x1a\x8a\x2b\x36\x1b\x37\x18\x03\x20\xc2\x5c\x1b\xd5\x12\x1b\xf5\xf0\x83\x60\xaa\xe8\x27\xb0\xd0\xd7\xed\xf9\xed\x61\xa3\x9c\x1d\x5f\x1d\x4f\x87\xf2\x82\xf8\x4f\x7a\x3b\x21\x44\x11\x85\x96\x00\x94\x92\x53\x1f\x32\xd2\x4c\xef\x56\x58\x55\x11\x4a\x85\x3f\x9b\xdf\xb1\x28\x2e\x3d\x74\x0a\x42\x13\xab\xa8\x23\x04\xf2\xda\xc3\x93\x7b\x36\x5c\x44\x4e\x24\xc5\x41\x3c\x06\xc5\xc2\x29\x47\x0d\x44\x01\x4b\xa5\xdd\x06\xfe\x44\xd5\x38\xec\x85\x9f\x43\x51\x18\x59\xd0\x80\x9d\xaa\x50\x68\x5a\x83\x83\x7c\x34\x44\x91\xe6\xa1\x43\x8c\x2c\x57\xcf\xfe\xc4\x38\x8d\xb9\xab\xd0\xdf\xe5\x07\x7c\x28\xd5\xf8\x36\xa3\x38\x4b\x88\x3b\xaa\x0d\x3c\x7f\x74\xd5\xda\x0b\xf5\xed\xf8\x21\x22\xb6\x1c\x8a\xd5\xe5\xd4\xc0\xb9\x3a\x77\xb7\x95\xb0\x80\x48\x18\xa8\x83\xf7\xeb\x59\x8e\xa7\x62\x94\xa8\x94\x62\x49\xb5\x87\xaa\x21\xee\x4f\x7f\x62\x16\xd9\xfa\xfd\x06\x9b\x85\x3e\xe6\xc5\xe4\xc4\x8c\x71\x7a\xff\x4d\xf9\x75\x12\x26\x41\x94\x09\xcb\x1d\x4d\x49\xe0\x28\xd9\xfb\x4b\xf2\xd8\xf5\xaa\x93\x71\xb6\x0d\x04\xed\x4a\x24\xf7\x78\xf2\xd0\xd4\x33\xeb\xc5\x61\x17\xa7\x7c\xb2\xcf\x45\x02\x2d\xfd\x6d\xdd\xce\x47\x3c\x42\xd1\x77\x21\x6e\xcb\xe7\x2b\x46\x58\x88\x20\x0e\x62\xe1\x11\x24\xa7\xd6\x08\x60\xf5\x52\xe5\x7f\x61\xf7\xaa\x20\x49\x08\xc3\xbe\x23\x50\xd6\x61\xca\xa5\xee\x47\x31\xe6\x30\xb3\xed\xbc\x82\x06\x2b\x4b\x36\x94\x17\x8f\x50\xbd\xe6\xf3\x8c\xf8\x7e\x0b\x8b\x20\x63\x20\x06\x70\x59\x55\x6a\xac\xda\xa8\xf6\x11\xde\x37\xf9\x5f\x7e\x03\x8a\x64\x1c\x52\x9d\xeb\x26\x4a\x06\xd1\x1c\x44\x32\xe1\x96\x81\xd2\x73\x07\xd8\x04\x26\x75\xf2\xcf\x1b\xe7\x48\x2a\x15\x72\xdf\x6c\x3e\xa8\x80\x43\x24\x4d\xd4\xd1\x4a\xdb\x47\xb5\x89\xd0\xd9\xdd\x23\x52\x81\x55\x19\x69\xaf\x63\x13\xaf\x8f\xf0\x86\x95\xe7\xae\xfc\x7c\xbd\x46\x1a\x43\x62\x4a\x5e\xee\xf3\xd3\xb6\x42\xa8\xcf\x9d\xff\x10\x61\x1c\x92\x09\x50\x70\x72\x29\x9a\xee\x48\x02\x54\x34\xab\x20\xaf\x51\xfb\xc9\x0f\xdd\x24\x45\x0c\x28\x8a\xea\x16\x82\xc9\x42\xed\x9c\xde\xd5\x7f\xcf\xf9\xa9\x5d\xa2\xdb\x0a\xa8\x2b\xe1\x0e\xf1\x03\x05\x29\x88\x0c\xa6\x31\x38\xc2\x95\x47\xc8\x8b\xbe\x44\x08\x71\x20\x6d\x21\x70\xe7\x09\x82\x82\xdd\xce\x1f\x0b\x33\x45\x44\x33\x9b\xaf\x8b\x88\xa5\x5f\xa1\xde\xfb\xfc\x7b\x37\x02\x24\x3d\xb8\xb7\x30\xb6\x11\xba\xcb\x3d\x40\x1c\x31\x43\x97\xd8\xd5\x44\x7f\x49\xe0\x36\x2f\xdb\x4c\x91\x54\xc4\xfd\x48\x1d\x38\x71\xe7\x5c\xbd\x1d\xf0\xb6\xfc\x55\x50\x62\x0c\xeb\xb5\x03\x57\xf8\x1f\x8d\xa3\xc0\x6d\x91\xdd\xce\xd2\xa7\x20\x21\x8e\x39\x23\x48\x34\xe4\x95\xae\xca\xd3\xb6\x9c\x21\xe6\x1a\x7f\xbf\x38\x61\x56\xb3\x5c\x53\x1a\x65\xd6\xf7\x8c\x13\x85\x04\x7c\xd4\x56\x03\xd2\xed\xce\x1e\x18\x32\x6b\xfe\x63\x16\x5b\xed\xf6\xdf\x2b\x78\x43\xab\x95\x48\x28\xed\xee\xfd\xb1\xd8\x10\xb1\xc3\x36\x0a\x7a\x66\x35\x88\x59\x62\xe9\x46\x29\x5b\x4b\xde\xe4\xe4\xba\x28\xa9\x77\x27\xaf\x7f\xe4\xc5\xe6\x50\x5e\x75\x6c\xba\x71\xa9\x8a\xe9\xe3\xba\x94\xa7\x4d\x66\x7d\xb0\x63\xfd\xb3\xd8\x22\x4e\x31\xd0\x30\xa2\xf5\xf2\xe9\xcf\xc9\x38\x93\xf8\xee\xab\xc7\xbc\x68\xda\x57\xf6\x52\xb5\xce\x66\xcf\x41\x3b\xdb\x75\x0c\x71\x06\x48\xfb\xfa\x66\x5f\xfe\xda\x35\x7b\xdc\x15\x60\x21\xb5\xcf\x94\xad\xd9\x2d\xfc\x5b\xe2\x1c\x08\x21\xfc\xf8\xfd\xd1\xff\x49\x04\x60\x89\x93\x2a\xc4\xf6\xf3\xb8\x1a\x8a\x3b\x0a\x01\xa3\x14\x56\x7d\x96\x3d\x63\xf7\xf8\xc7\x21\x45\xea\x0e\xde\xfe\xf1\xe0\xcf\x92\x19\x26\x91\x2d\xca\x14\x1a\xaa\x6e\x1a\xaa\x20\x22\x97\x9c\x8c\xb8\x0d\xb5\xda\xe8\xd5\x12\xf0\xe4\xae\x04\x7e\x4d\x1b\x01\xb1\xe2\x96\xa3\x5e\x5f\x0a\x38\xe6\x6a\x89\x79\xdf\x43\x0f\xb1\xd6\x61\x6c\x7c\x1e\xbc\xac\x70\x50\x4f\x82\x18\x23\x16\x1a\x4b\x46\xfe\x33\x2f\x5e\x87\x14\xb4\x10\x9b\x28\xcd\x22\xcf\x1c\x59\x4f\x72\xa6\x10\x1b\xce\x2d\xa2\x89\x72\xa6\x5f\xac\x42\x91\xf7\x1b\x92\x60\x58\x56\x81\x24\xc8\xac\x52\x0d\x15\x85\x5c\x29\xd5\xeb\x34\x0e\x53\x8c\xe3\xd9\x91\x04\x52\x72\xd7\x53\xb2\x38\x1c\xb0\x7a\xcd\x71\xd0\x8d\x05\x49\x80\x96\x71\x9c\x30\x10\x1f\x2a\xde\x4e\x04\xd2\xff\x37\xfa\xbf\x7f\x4f\x45\xe0\x20\x09\xa3\x90\x2e\x45\x74\x06\xad\x55\x6b\xb0\x18\xa4\x1b\x92\x30\x31\xc6\x15\x06\x7b\xe2\x38\x5b\x63\xef\x86\xa4\x82\xb2\x82\xf5\x2f\x38\xdd\x5d\x53\x47\xff\xa3\x15\x32\xcf\xc3\x0d\x49\xa8\x59\xe0\xe5\xf1\x0f\xf9\xeb\x7e\xa6\x1a\x05\x49\x84\x9c\xa6\xeb\xe6\x7e\xf9\x87\xbf\xa9\x38\x8d\xb0\x23\x95\x68\xad\x60\x77\xc0\x80\x08\x06\xa5\xbb\x17\x92\x90\x86\xc3\x84\x79\xdb\x8d\x4e\x22\xab\x44\xe5\x84\xa6\x1f\x9e\x97\x3e\xab\xf8\x01\x4e\x7a\x72\x7a\x12\xc6\x56\x82\xb1\xb8\x39\x57\x05\xa5\x98\xfb\x9a\x20\x24\x49\x1a\x85\x2e\xcc\x7f\x82\x23\x2e\x0a\xbd\xb9\x1c\x65\x79\x98\x4b\x5d\x26\x2c\xe2\xc4\x5f\xa7\x07\x22\x99\xe3\xae\x4e\x48\x58\x6c\x1b\xbb\x7c\x20\x43\x3a\xbb\xe7\x43\x53\xe7\xaf\x53\x8b\xe5\x7d\xd6\x24\x95\x92\x1c\xc3\x36\x32\x1b\x48\x98\x8d\x9c\x92\x24\xd5\x16\x8c\xde\xce\xe4\xe9\x9a\x48\x52\x13\xa4\x56\x13\xfa\x69\xf9\xbc\xde\x2d\x9f\x9f\xbe\xaf\xd6\xdb\xd5\x7a\x77\xb7\x58\x6e\x9f\xd7\xff\xf1\x77\x97\x05\x60\xdc\xbc\x7e\x6a\xf6\x37\x97\x99\xdc\xe9\x20\x9c\x48\xb2\x40\x52\x33\xf2\x2b\x1c\x6d\x16\xc7\x37\x26\xfa\xe3\x29\x7a\x74\x35\xd9\x64\xe7\xdb\x8d\xe9\x67\x20\xe1\x21\xd0\x14\x5f\xac\x6f\xee\xb7\xeb\xc5\x97\xd5\x8c\x35\x49\x78\x96\x11\x5c\xb7\x71\x0d\xd1\x38\xd0\xe5\xc8\xb1\xbe\xcd\x6b\x79\xae\x88\x79\xd1\xff\x3a\x04\x09\xb4\x86\xeb\xf9\xc7\xd3\x6a\xbd\x5b\x3e\x2c\x7e\xdc\x2c\x96\xbf\xef\x6e\x17\x5b\x9f\xdc\x4d\xa4\x31\x92\x7b\x53\xe2\xb9\xd3\xc6\x6c\xfc\x6e\xa4\x0a\x32\xf0\xfd\x17\x37\x87\x36\x00\xf3\x07\x78\x14\x69\xef\x7f\x1d\xf3\x62\x22\xca\x34\x99\x6f\x4a\x59\x0c\xc9\xed\xb9\xd8\xe7\xde\xdc\x25\x9a\x23\x73\x0e\xe5\xcd\xe2\x5b\xe4\x18\x04\x67\x3d\xb8\x44\xa3\x66\x9d\xac\xd1\x8d\x2d\x54\x4d\xd6\x04\xa6\x82\x2c\xe0\xef\x17\x89\xd4\xc3\x99\x57\x14\x0d\xf5\x05\x94\x53\x93\x1f\x7b\x36\x1a\x48\x8c\x12\xca\x4e\x9e\xf2\xed\x7c\x1a\xaa\xe0\x01\x0b\x82\x80\x54\x6c\x7f\x6c\xfe\x18\x7a\xb1\x2c\x8c\x23\x02\x01\xc3\x51\xe6\xef\xdd\x1f\xb5\xd5\x91\xb1\x1e\xfd\x90\x61\xdc\xcf\x66\x16\x31\x1b\x09\xd5\x60\x90\xea\x33\xcf\x66\x0b\xf5\xdb\x84\xfa\x04\x58\x94\x81\x91\x3d\xd6\x6d\xd8\x79\x3d\x18\xa4\xc1\xd2\xdb\xe5\xba\x0d\x76\xef\xca\x8a\x28\x54\xe7\x9c\x7e\x16\xa1\xf2\x96\xd2\x12\xb4\x2f\xcb\xc2\xe4\xaf\xe7\x21\x6d\x30\xb0\x38\x0c\x42\xe6\x61\x2c\xd4\x89\xba\x68\xae\x35\x05\x80\xc5\xdc\xe6\x80\x15\x14\xab\xf7\xbc\xe9\x09\xd4\x80\xc5\xc6\x12\x1e\x92\x40\xe0\xe4\xbe\xbb\xd7\x90\xc4\x29\x75\xc4\x92\x70\xb4\xfb\x25\xdb\x98\x39\xfa\xde\x2c\x51\x9a\x22\xfa\x93\xa5\xb5\xa0\x0a\x02\xd1\xd0\x4e\xee\x27\xc1\x8c\xaa\x34\x7b\xa8\xf7\x8f\xa0\xf6\x79\xe1\xb7\x08\xc6\x54\x68\x9c\x45\xed\x32\x02\xfd\x89\x69\xcc\xa9\xe8\x79\xa2\x02\xb0\xed\xa8\xb6\xeb\xb4\xdd\xe6\x07\xd4\xab\xc0\x52\x88\x09\xf3\x79\x87\x48\xe9\x3d\xd4\x1f\x18\x5b\x37\x3e\x03\x61\x65\xdc\xee\x5f\x36\xa3\xb9\xc3\x83\x44\x7a\x7a\xe1\x1e\x1e\x38\x3e\x99\x0b\x43\x20\x11\x38\x37\xfb\xab\x4c\x23\xe3\xca\xb6\x91\x5b\xbe\xb1\x89\x95\x65\x22\x04\xea\x27\x39\x79\x4e\xc6\x5b\x68\x60\x4d\xbd\xb4\xf3\x89\x13\x26\xa2\x98\xd0\x08\x2e\x41\xfa\x72\x80\x62\xfa\x86\x45\xeb\x35\x79\x40\x96\x43\x42\x4b\x67\xd0\xfc\x90\x14\xa8\x08\x48\xa9\xfd\x29\xca\x6c\xfc\x5d\x65\x6c\x61\x71\x6d\xc4\xf0\x15\x2c\x7d\xd4\x44\xe0\x14\x98\xe2\x01\xe5\x90\x4b\x57\xa4\xdf\x11\x58\x82\x3c\xae\xc5\xb9\xf1\x96\x8e\xe9\x40\xa4\xd6\x4f\xb6\x41\xf3\x6c\x7e\x89\xe9\x38\x26\x22\xb5\xdf\x7f\x1f\x7d\x0b\xad\xed\xb2\x20\x30\xce\xa6\x29\x4f\xf7\xcb\xe7\x81\x2f\xc3\xd0\x51\x10\xd9\x66\x01\x9a\x0f\x03\xd1\x11\x3a\x4e\x25\x75\xa4\x4e\xf0\xb2\xb2\xb7\xe0\x0f\xf2\x94\x38\x30\x95\xa7\x92\xbf\xf4\x5d\x1c\xc0\x50\x22\xe5\xb9\x3b\xca\x48\x9c\xda\x5d\x86\x8a\x11\x18\xb9\xc0\xd7\x03\xaa\x66\x78\xf1\x34\x10\x92\xfa\x07\x3b\x86\xf4\xfb\x3e\x64\x4b\x43\xc7\xa9\x57\x63\xd3\x5e\xbe\xb9\xde\x52\xd2\x88\xc5\x14\xb6\xd0\xbb\x77\x13\xbf\x9e\x22\x1f\xaf\x89\x70\x20\x8d\xb8\xe5\xb4\xae\xf0\x27\x0e\x82\xe6\xd1\xae\x96\x46\x1c\xc3\xcc\x8b\x43\xd5\xfb\x7b\xfd\xbe\x98\x67\xbc\x80\x34\x56\x12\x02\x5f\x51\x6f\xa3\xd6\x9e\xe6\x71\x30\xc8\xa0\x05\x4f\xef\x1a\xa8\xa8\x63\xce\x7a\xb8\xad\x4f\x72\xc2\x42\x2f\xe1\x70\x90\x70\xcd\x73\xed\x4e\x4f\xb8\x24\x13\xef\xe3\xef\x8e\xdf\x17\xd2\x04\x34\x41\xa9\x8e\x16\xfe\xd2\xd1\x32\x40\x9a\xc8\x8c\xba\x73\x5d\x81\x73\xa7\x9d\xe8\x92\x9f\xf0\x29\x0b\x0c\xf5\xe1\x14\x67\xc7\xec\x61\x81\x20\xfd\xf1\x98\x19\x47\x93\x78\x18\xa6\xd1\x52\x96\xd9\x3c\xcd\xf2\xf9\xb6\x1b\xcb\x0d\x51\x18\xe8\xbc\x42\xd5\x94\x15\x31\x91\xf9\x63\xc6\x6a\xed\xe7\xf5\xe6\x52\x34\x7b\xac\xf3\xbf\x70\x44\x53\x0f\x69\x06\x11\xa9\x1c\x20\x05\xac\x03\x84\x26\xa4\x99\xb1\xd9\xb9\xd6\x77\xf8\x52\x16\x13\x0b\x98\xf2\x30\x41\xab\xda\x96\xd7\x79\x6d\x7a\xcb\x99\xf2\x34\xa5\x7c\xe0\xc9\x33\x55\x87\x11\x77\x6e\xd7\x78\x71\xa5\xc2\x20\xc1\xf9\x68\x1a\x8d\x98\x80\xdc\x00\xd0\x21\x01\x27\x8f\x96\xf3\xb0\x6e\x6e\xce\x97\x09\x88\x6c\xd6\xc3\x4e\xc1\xc4\xb1\xb4\xd1\x5c\x73\x85\x5c\x1d\x3f\x88\x8c\x6c\x72\xf3\x57\x9f\x63\xf9\x60\x60\x0c\x99\x03\x17\xe5\xaf\x85\x93\x5e\x9b\x1f\xaa\xd2\x84\x1c\xfc\x0e\x52\x90\xab\x2b\xe6\x53\xff\x4a\xce\x23\x0c\x5f\x5f\x6e\xef\x8c\x49\xaa\x32\x6e\xa3\x19\xba\x5a\x3b\x17\x1f\x5f\x7c\x12\x35\x55\x3a\x8a\x6d\x39\x9f\x40\x91\x83\x9d\xc8\x8f\xd0\x69\x4a\x50\x7c\x4b\x38\xff\x8f\x30\xaf\x90\x6a\xd0\xb1\xf2\x64\x63\x88\x74\xc1\x6a\xbe\x4e\xe9\xce\x40\x6e\x7b\xe5\xdb\xa9\x7c\xae\xb1\x81\x49\x12\x7c\xb8\x13\xa5\x26\x03\x24\x96\xd5\x5f\x08\x6f\xb6\x04\xd5\x87\xb9\x19\xe9\x63\xdb\x8a\xd8\xc7\x3d\x98\x90\x05\xa9\x15\xb2\x69\x97\xe0\x72\xdf\x17\x7f\xfc\x61\x83\x14\xf2\x7e\xf1\x5a\x06\x63\xce\x7b\xc8\x42\x69\x79\x4a\xb0\xd9\xaf\xce\xde\x06\x66\x71\x64\xbb\x0e\x97\x4b\x5b\x2a\x5a\x54\xd2\x1f\x4a\x20\xf3\x81\xcd\x0f\xcc\xef\xca\xea\x51\x4d\x52\x1b\x59\xa2\x91\x22\x34\xeb\xc6\x50\xba\xd7\x12\x94\x93\x11\xbe\x9d\xdf\xd7\x32\x16\x86\x54\x36\x3f\x0d\x68\x35\x86\xef\x2b\x63\xb1\x65\x3e\x24\x34\x45\x75\x28\x2b\x3d\x68\xcb\x58\x43\xa1\xcb\xe3\xe4\x46\x18\x40\x68\xfb\x14\x5b\x7b\x37\xd4\x88\xf6\x03\xa4\xad\x81\xbb\x5d\xe6\x6b\xa9\x0f\x3d\x24\x18\xb2\x34\x49\xbd\x04\x0e\x55\xc8\x3b\x96\xfd\x2b\x2c\x48\x96\xa6\x29\xb9\x6e\x6e\xbb\xf9\x72\x6e\x3f\xfb\xe8\xb7\x52\x8e\xb4\x21\xad\x96\xcf\x4f\xcf\x8f\xff\xd9\xdd\x3c\x3f\x6f\xb6\xbb\xed\x7a\x71\xbb\xea\x7e\x4f\xc4\xe4\x31\xd7\xa0\x27\x81\x58\x96\x62\xe6\xc9\xc2\x9f\x4a\xa7\x32\xf1\xc1\x2c\xcc\x32\xae\x08\x01\x48\xb8\xf2\x49\xfb\xea\x15\x92\x1c\x32\xce\x85\x4b\xa6\x37\x77\xe7\x82\x4a\x25\x9b\xfc\x7d\x26\x1c\xcf\x20\x51\xb4\x29\xef\xa8\x2e\xf7\x72\x4d\x84\xe6\xc7\x71\x4e\x0e\x43\x55\x1e\x28\x3b\xbe\xc1\x89\x20\x39\x64\xa0\x0d\xe9\x9c\x9c\x86\x5d\x2c\x90\xc9\x24\xa0\x62\x32\x75\x76\x7d\x4a\x2b\x08\x99\x64\x19\x15\xc4\x1f\x41\x97\xc6\x0c\xca\x3f\x99\x92\x31\x65\x59\x68\xef\xf6\x8b\x7d\xc4\x45\x03\x99\x86\x94\xc2\x5e\x79\xae\x0a\xdb\x2a\x47\xef\x74\xc4\x79\x3e\x7e\x2a\x2d\x99\x97\xb6\x58\xe3\xe4\xfb\xf0\x20\x4e\x29\x57\x4d\xac\x68\x70\x20\x87\xc6\xa2\xac\x47\xee\x27\x0f\x83\x90\xc3\xb0\x49\x60\x00\xc9\x03\x1e\x86\x19\x4d\x80\x0a\x89\x20\x61\x54\x7a\x19\x3f\x3d\x0f\x63\xa3\x99\x67\x2b\xb7\xfd\x94\x3b\x93\x5b\x8d\xd0\xaf\x79\xd1\xbc\x54\xf8\x73\xd1\xbc\xb4\xbb\x6f\xeb\x22\x0f\x9f\x84\x87\x22\xd1\x0e\x13\xfc\x1d\xab\x9a\xf4\x34\xda\x40\xe5\x33\xb6\x43\xe0\xa1\x64\x84\xa5\x54\xb6\xa2\xf6\x88\xaf\xe0\xc9\x69\x46\x2f\x8a\x47\x4c\x49\xa7\x30\xe3\xfd\xb6\xd9\x79\xc2\x59\x68\x8c\x1c\xd6\x33\x6e\x73\x85\xb6\x38\xf3\xa9\x3c\x0a\x70\x96\xb1\xd4\x7e\x3d\x27\x69\xec\x73\x70\xf3\xdf\x8e\x33\x1d\x19\xe8\x58\x69\xda\x28\xee\xdb\x69\xf2\x05\xd3\x90\xc7\x4e\x0b\xe0\xeb\x49\xb6\x3e\xc4\x54\x0d\xe8\x23\x2a\x04\xe0\x29\x4b\x88\x8d\x71\x55\xe8\xd4\x7f\xcb\x54\x89\xd0\xd3\xb0\x43\x83\xf7\xaa\x6c\x3f\x0d\xa5\xec\x6f\x2e\xb7\x57\xb6\x88\x67\x01\xb3\xc4\x07\xc4\x56\xeb\x48\x46\xfd\x31\x65\x83\x8c\x57\xaf\xc2\xf0\x90\xd7\xcd\x50\x2f\x00\x38\x8f\x03\x42\x35\x51\x43\x22\x1c\x76\xb6\x3b\x72\x77\xbc\xec\x70\x10\x89\x71\x2e\x2d\x73\xfe\x57\x38\x94\xf1\xed\x66\x5f\xe5\xc7\x93\x93\x7b\x1b\xbf\x0e\x21\x63\xcb\x9d\xed\x22\xa4\x5b\x54\xf9\x11\x0e\xf5\xa4\xad\xb4\xdf\xa2\x39\xa8\xc0\x25\x34\x5a\x7f\xdf\xff\xa0\x0c\x41\x98\x9e\x8d\x6c\x5b\x4e\x22\x3f\x3f\x8c\x31\x0b\xca\xaa\x7f\xe4\x07\xbd\x84\x4a\xdb\xe6\x0b\x7d\x57\x56\x4b\x68\xf0\xb5\xac\xc6\x40\x00\x2e\xa5\xb4\xc5\x4b\xdf\xa5\xe9\xe0\xd2\xe3\xdc\xe8\xf0\x06\xa5\xb4\x4a\xf6\x44\x30\xbd\x4b\xfc\x1d\x2a\xd0\x44\xb3\x72\xcc\x5f\x2b\x68\x5a\xef\x70\xf2\x2a\x94\x61\x59\xd8\x25\x86\x5d\x6f\xc8\x8c\x0e\x06\x70\xcd\x38\x39\x73\x04\xdf\x7d\xda\xdc\xfd\x98\x7c\x63\x9d\x2a\x1c\x36\x8e\x59\x7e\x83\xae\xcd\xd0\xdf\x91\xd6\x99\x30\x5e\x68\xa0\x26\x8a\x77\x24\x37\xfd\x23\xd8\x11\x47\xa1\x53\x57\x80\x6f\x26\xc0\xb9\x6e\xfd\xa2\xb1\xbc\x84\x5f\x6e\x5e\xc6\xb7\x25\x02\xb0\x4c\xf5\xf8\x8e\xc7\x53\xd3\x9a\x40\x02\x62\x8e\x9e\x4d\x84\x2c\xa5\x64\xc0\x43\xf9\xba\xd0\xfa\xba\xe8\x22\x42\x64\x28\x3a\x76\x94\x3b\x90\x55\xae\xe6\x8d\x97\x88\xa5\xc9\x2c\x62\xe1\xe0\x25\x6e\x3e\x1a\xa9\x14\x77\x5a\xe0\x1f\x8b\x1a\x83\x88\x4d\x68\x09\xfe\x7c\x58\x7f\x3c\x41\x31\x56\x1d\x02\x91\x24\xdc\x22\xec\x49\x75\x3a\x7f\xbd\xeb\x9b\x7e\x41\x24\xca\x2a\x7a\xbb\x66\x5d\xeb\x32\x6c\x1a\x78\xb3\x81\x8d\xc3\x8f\xda\x2a\x40\xff\xcf\x30\xb7\x39\xfa\xaf\x1e\x38\xfd\xef\xeb\x13\xfb\xfb\x66\xa8\xa9\xd2\xfb\xbc\xfd\xba\x5a\x2f\xd7\xdf\xee\x37\xab\xf5\xee\x6e\xfb\xb0\xdb\xbc\xac\x56\x3e\xc0\x11\x69\x10\x91\x68\x13\x36\xfb\x6f\xb5\xee\xfe\x2a\x2c\x8a\xcd\x99\xbe\xd6\xcc\xc3\xe1\xb1\xd4\x78\xb0\xb9\x5e\x37\x2c\x63\x61\xe4\x2a\xb7\x5f\xe0\xd8\xa1\xe7\x41\x64\x02\xa8\x5f\xed\xa1\x54\x6f\x3e\x0f\x32\x53\x3b\x17\x99\xe4\xe4\xb8\x58\x71\x98\xf6\xc3\xdf\x0e\xf2\xd4\xfe\x6a\x3c\x4e\xd8\x98\x3c\xf2\x31\x2f\x5a\x77\xb3\x78\x45\x1f\x30\x0a\x11\x59\x11\x59\x27\x79\x72\x83\x1f\xec\x0c\x42\x64\xa1\x40\x8f\x21\x1c\x14\x54\x85\xe0\x10\x08\xff\x33\xeb\xf2\x02\x07\x4f\x3a\x02\x42\x48\x1b\x5d\x9f\xc8\x67\xb5\x07\xf3\x2e\xc7\x22\x84\x0e\xc9\xa3\x3e\x17\x75\xeb\x44\x35\x90\x97\x93\x27\x85\x44\x50\x7f\x84\xab\xbe\x5c\xd9\xfb\xf1\x86\x28\x00\x18\x71\x7a\x38\xef\x71\x04\xf1\x15\x32\x90\x1e\xd8\xd1\x2b\xf2\x83\x90\x32\xe8\x8b\x62\xfe\xad\xbb\xd5\x3f\xbe\x19\xd5\xae\x4a\x47\xff\x03\x35\x8e\xfc\xb1\xff\x8d\x82\x79\x00\xd5\xf5\x9b\x54\x51\x16\xf5\x94\x91\x93\xe6\xaa\xc9\x2f\xc6\x56\x24\xea\xe8\x4a\xe0\x5d\x1f\xb0\x3f\xce\x6d\xc9\xf2\x08\xef\xf9\xf1\xec\x4b\x7a\x9e\x0d\xa2\x1b\x65\x40\xb9\xee\xa4\x97\xb2\xee\x22\x7a\xa1\xa3\x4c\xf7\x5c\x57\xae\x66\x6d\x8b\x81\x96\x78\xf2\x5f\xf3\xb4\x36\x93\xe7\xd1\x4c\x51\x50\xf6\xb2\x7c\x79\xf1\x97\xc6\x20\x56\xae\x7e\x4f\xca\x3c\x37\x68\xca\xea\x4a\x28\xcd\x0f\x4e\xa2\x01\xe1\xe1\x63\xf7\x74\x98\x31\xb0\xfd\x37\xef\x37\x65\x55\x95\xbf\xe6\xd2\xf9\x02\x85\xcd\x53\xff\x75\x28\x9b\xda\xbb\x3f\xee\x98\x89\x34\x05\x74\xb5\xe3\xa7\x5f\x76\xb9\x8b\xe4\xdf\x63\x15\xa9\xf1\x1d\x19\x91\x51\xe5\xdc\xcd\x23\x7a\xf5\xd0\xcd\x6a\x63\x2c\x93\xb9\xca\x2b\x72\x92\x5a\x7b\x04\x9e\xec\x0a\x20\x08\x14\x09\x5f\x93\x42\xdb\x6f\xa5\x9c\x87\xa5\x41\x10\xdb\xb7\xef\xd1\xdd\x7a\x18\x25\x4f\xcb\x3e\x10\xa2\x4c\xfa\x6f\xb5\xd0\x7f\x9e\x75\xae\xfa\x1e\x1e\x80\x28\x06\x16\x8d\xd2\xf5\x37\xf7\x0f\x0f\xf3\xc6\x19\x62\xc1\xa8\x5d\xfa\xcb\x6a\xfd\xcf\xe0\x6e\xe3\x9b\x89\x75\x64\xc9\x0e\xfd\xad\xdb\x0f\x73\x33\xc1\x5d\x43\x92\x64\x9e\xaf\x8f\x14\x27\x67\x89\x2b\x00\x12\x16\xd2\x36\x65\x33\x09\x5e\x7e\x7c\x8d\xa7\xf3\x8c\xa8\x30\xf7\x27\x29\x0e\xae\xc5\x73\x5b\x3e\xc2\x3c\xed\x09\x00\x93\x82\xbe\xe4\x43\xf9\xfa\x82\x55\x5d\x16\x4f\x78\xcd\xde\x30\x3e\x25\x0d\xd1\xab\x0d\xfa\xc4\x5c\xeb\x2e\x8e\xd4\xa0\x00\xd2\xd8\x9a\x9a\x76\x49\x3e\x42\x51\x6f\x7e\xe5\x03\xdf\x74\x3e\x7f\x01\x69\xeb\x92\x79\x3f\xbc\xa7\xa9\xe8\xae\x29\x6d\x76\xbf\x22\x91\xa0\xbb\x1c\x9c\x6e\xa7\xba\xac\x09\x70\x33\x99\x41\xa9\x32\x14\x9a\x9d\xc6\xcc\x97\xe3\x41\x59\x64\x01\x67\x87\xbc\x78\xdb\x42\xfd\x66\xc5\x62\xe6\xf7\x76\xc8\x32\x9b\x5f\x39\xd9\xcc\xdb\x78\x0f\x72\x63\x78\x1c\x46\x16\x58\xd7\xad\xe8\xbf\x99\x2e\x3c\x8d\xb9\x7b\xa1\x8f\x79\xf1\x84\xef\xcd\x0d\x8e\xe8\x33\x01\x38\x58\xda\x3d\x37\x05\x46\xa2\x54\xd3\x22\x2a\x70\x8c\x08\xb7\x6c\x2a\xc4\xbf\xbc\xb2\x18\x45\x9b\xf3\x6f\x5d\x24\x40\xa9\x77\x87\xc1\xb6\xe2\x9a\xdf\xcb\x06\x89\x80\xc6\x66\x61\x5a\x87\xa2\xe7\xa3\x04\x10\x19\x50\xaa\x0e\x5e\x2b\xc4\x27\x7c\x9d\x23\x51\x6c\x47\x21\xb9\x01\x37\x37\xcb\x97\x2a\x3f\xe2\xea\xbd\x3f\xdf\x32\x4b\xd3\x76\x59\x11\xcb\x61\xbf\x79\x8d\x5f\x0f\x44\x8c\xd2\xdb\xd6\x7a\x2f\xe1\x74\x1a\x10\xd4\xdc\x1f\x4f\x87\xbf\x5b\x95\x93\x9b\x02\x15\xd2\x94\x77\x32\x8d\xc4\x26\x7a\xfa\xb6\xf1\xbe\x0b\xc8\x90\x47\x0e\x1d\xd2\xe0\xaa\xd0\xb7\x83\xc7\x96\x11\xa3\x7e\xb7\xbc\x5e\xa3\xc6\xa2\xb4\x0c\x02\xba\x3b\x9c\xd8\x9d\xe4\x58\x36\xdd\xdf\x14\x07\x8a\xb4\xee\x97\xcf\xb6\xed\x7d\xd0\xbd\x0b\xa0\x83\x84\x12\x0f\xa0\xb5\x23\x47\x1e\x54\x89\xe6\xef\x5f\xb3\x80\xb2\x1f\xe7\x1a\x2b\x82\x92\xcc\x74\x24\x02\xe8\x4c\x59\xd1\x5c\x1f\xa9\xbe\x3c\x2e\xc8\x4f\xce\x61\x3e\x5b\x05\x98\x58\xb9\xe0\x53\xd9\x40\x53\x5a\xae\xa9\x61\x23\x00\x20\x4f\x28\xde\xd3\xe5\x4b\x85\xfd\x6d\x76\xcb\x13\x55\x24\x6d\x77\x6a\xeb\xd3\xbe\x92\xe1\x3f\xe4\x75\x33\x61\xfa\x05\x19\x84\x01\x39\x55\x7f\x96\x79\xe1\x49\x41\x66\x9f\x55\x06\x91\xc5\x10\x58\x3a\x25\x97\x10\x71\xac\x52\x20\x03\x4c\x32\xaf\x00\xb3\x2f\xab\x2e\x77\x30\x90\x1e\x03\x19\x26\x96\xf0\xb8\xbd\xeb\xf2\xfd\xe2\x96\xc3\x50\xad\x7a\xd6\x30\xc8\x10\x6c\x78\xfa\xdb\xb9\x78\x3d\xe0\x46\x55\x14\x5b\xfb\x83\x52\xb3\x2e\xb3\x62\x55\x84\xfc\xa1\xc8\x58\x8d\xbb\x0a\x41\xef\xce\x69\xb2\x03\x6a\xf5\x75\x47\xe3\xc0\x16\x20\x64\x29\x1f\xe1\x0d\xeb\x55\xb3\xf7\x19\x87\x69\xa6\xd9\xcb\x40\x9f\x89\xe0\xd4\x9f\x1f\x42\x4a\x55\xe0\x0a\x7e\xb9\xee\xb4\xb9\x8f\x29\x63\x16\x07\x91\xc7\x1b\x97\xe6\xeb\xf9\x08\x45\xc7\x76\x07\x32\x06\x9b\x44\x75\xa1\xbb\x55\xc9\x1a\x04\x74\x32\xd6\xa8\x7b\x3d\x3e\x4f\x2b\x36\x17\x42\xca\xd8\x48\xaa\x5e\xde\x7c\x71\xbc\x0e\xfe\x1a\x49\xc6\xac\x9c\x51\x5e\xd5\xcd\x2d\x5c\x96\x9e\x11\x09\x64\x62\x42\xdf\xe3\x4d\x75\xda\x59\x73\x2b\x59\x20\x48\x4f\x6a\x47\x7a\x9e\x76\x1a\x2f\x2c\x06\x70\x72\x0f\x8c\x6b\x6a\xfa\x20\x27\xdb\x62\x26\xbe\xc2\xcf\x9f\x58\xd4\xbb\x43\x7e\xcc\x1b\xd4\x9b\xb3\x07\x5d\x4a\x26\x18\xa5\x65\xa9\x0c\x78\xbf\x7c\x26\xce\xab\xb4\x3b\xaa\x03\xea\xdf\x5e\xae\x9f\x7f\xdc\x6e\x16\x0f\xab\xdd\xe3\xe2\x8f\xdd\x62\xe9\x55\x0c\x41\xa6\x3c\xa0\x14\xb5\x82\x6a\x0b\xef\xf9\x84\x2c\x0b\x64\x8a\x92\x5a\x25\xb6\x20\xa5\x77\xa3\x65\x96\x06\x84\xd8\x9c\x2d\x8a\xcc\x15\xf1\x65\x66\x6c\x3f\xb2\x2e\xc9\xc6\x8c\xb2\xe0\x92\x87\x51\xe2\xfa\xee\x47\xcc\x45\x33\x60\x1d\xc9\x23\xdb\xa3\x4f\x1e\x3c\xc8\x83\x03\xe1\x76\x97\x12\x51\x42\x0c\x8a\x8b\x21\xd5\xbd\x3f\x2a\xa2\x80\xac\xa1\xa9\xca\xbf\xf0\x43\x4e\xd7\x99\x02\x88\x14\x5c\x92\x88\xd0\x6d\x05\xaf\x65\xe1\xdc\xe7\xae\xb1\x77\xf2\x01\x85\x94\xd1\x80\x1c\xb7\xe7\x59\x73\xc7\x01\xc0\x4a\x2a\x15\xb9\x2a\x2b\x4b\xbc\x35\xce\x8f\x4a\x50\x8a\xe2\x17\x12\x86\xdb\x6c\x17\xeb\xed\x4e\xf8\x63\x32\xce\x74\xdf\x2c\xf0\x65\x00\x9c\x70\x03\x54\x1c\xc7\x7d\x6e\xe6\xf3\xbc\xa2\x54\x2c\x22\xd4\x6e\x3b\x3b\xa2\xdd\xba\x47\xd9\x48\xa5\x92\x70\xc0\x9f\x0d\xf5\x34\xb7\x31\x81\x67\xa5\xc9\x3f\xf8\xc7\x5d\x5b\x67\x59\xc4\x3b\xfc\x65\xeb\xab\xd8\x9d\x64\x6c\xb6\x50\x83\x8c\x3a\xbc\xc1\x76\x8f\xc3\x9c\x81\x34\x60\xc8\xa8\xed\x7b\x01\xd8\xb8\x3b\xa6\x18\x59\x65\x97\xc6\xba\x45\x79\xc5\x16\x6e\x47\xaa\x20\x91\x04\x98\xb7\x23\x1f\xbf\x6d\x96\xf3\xe6\x5b\x05\x8e\x44\x48\x97\xdb\xfc\x88\xe5\xb9\xb9\x2b\x2b\x92\xaa\x81\xbc\x80\x09\x33\x0f\xa8\x30\x11\x71\x97\x20\x0e\x5c\x57\xf2\xf3\x09\x8b\x9e\x81\x71\x47\xc7\x8e\xd8\xec\xcb\xee\xa1\x54\xa8\x80\x6a\xca\x24\x67\x6a\x23\x92\x99\x96\x0f\x15\x05\x99\x15\x54\xb6\x36\xa2\xae\x47\x2b\x4a\x45\x2c\x8a\x5d\x5d\x2a\x3f\x7a\x35\x89\xee\x60\x8a\x84\x33\xd5\xf8\xf3\x8c\x87\x9f\xb8\x2d\x35\xd4\xab\x42\x9d\xb1\x6e\xa0\x1b\x15\x87\xe8\x55\x9d\x09\x04\xd6\x86\x9a\x6d\xd8\x3e\xe1\x01\x04\x15\xa7\x96\x67\xad\x46\x92\x33\xf9\x58\x9a\x09\x54\xcc\x63\xa6\xbb\x08\xdf\xaf\xbf\x5e\x45\x71\xce\xa1\xfe\xa0\xbe\xaa\x92\x24\xe0\x2e\x40\xff\x0a\x95\x5e\xc2\xc9\xcb\x09\x8f\xdf\x54\xc2\x03\x82\xe1\xd6\x87\x61\x04\x7f\x15\xbf\xfb\xd1\x42\x52\x26\x6b\xf9\xbc\x5e\xed\xb6\xab\xc5\xa3\x63\xa4\xf6\x6f\x85\xa9\x84\xf8\x7b\x9e\xcf\xd3\x0f\xce\x50\x51\x4e\xfc\x5b\xdd\x9b\x85\x99\x45\x32\x92\x5f\x00\xc5\x0c\xb7\x14\xd4\x8e\x86\xa6\xb3\x15\xfd\x85\xb3\x28\x23\xe6\x89\xe6\xad\xfb\xbc\x59\x06\xda\x3a\x27\x76\x7b\x18\xe0\xcb\x55\x06\xb6\xff\xf5\xdb\xf6\xe6\xef\x74\xba\x40\x65\x52\x18\xdb\x05\x0e\x94\x87\xf6\x17\xe1\x81\xc5\xd7\x3a\xfc\xe4\x38\x93\xa7\x78\x22\xa8\x80\x71\xc8\x1d\x0d\x73\x3d\xec\x2d\x07\x62\xde\x4b\x7d\xb8\xd6\x63\x33\xe7\x97\x95\x48\x22\x70\x78\x8b\x7b\x8d\x45\x43\xe4\x63\x5e\x1b\xe2\x83\x53\x50\x04\xc6\x79\x25\x0f\xb9\xaf\x8d\x2a\x48\x43\xe6\x30\xdd\xc3\xca\x08\xff\xdf\xc4\xcf\x3f\x19\x30\x72\xf4\x9b\xf2\xf5\xd5\x26\x58\xfc\xb9\x32\xcd\x78\x36\x48\x8f\xbc\x0e\x1b\xef\x3f\x4d\x89\x28\x09\x91\x15\x8d\x83\xe2\xf9\x27\x56\x55\xae\xaf\x27\xf2\xfc\x73\x48\xcd\x29\x23\x4e\xbe\x9c\xe3\xc7\x9d\x2c\x2e\x85\x71\xea\x42\x8b\x55\xa1\xcb\x5f\xad\x73\x35\x2e\xae\x2b\x74\x19\x46\x4a\x41\xdc\x94\xed\x5a\xb0\x7d\x0e\xd7\xdb\x98\x42\x1e\x13\x8f\x94\x23\xb1\x75\xc5\x1e\x7f\x10\x63\x2f\xb0\x7b\x77\x6e\xd7\x23\x2d\xd0\x51\x24\xac\x4c\x90\x52\x1b\xd5\x4f\xcb\x94\x87\xf3\x51\xbe\x32\x8e\xd3\x81\x90\x31\x3b\x0d\x0d\x4c\xa6\x90\x89\x53\xca\x19\x99\x01\xe6\x61\xfe\xf5\x1a\x34\x88\x2e\xd7\xf1\x52\x95\xa6\x47\xa9\xe8\x90\x33\xa2\xd9\xa0\x3e\x6f\xac\x6a\x8b\x37\x1f\x59\x42\x1d\x45\x48\x90\x35\x05\x45\x59\xe4\x7f\xa1\x7e\x79\x58\xae\xfd\xc1\x98\xd9\x10\xbd\xa0\xe9\xeb\xeb\xba\x2e\x1a\xe8\x22\x21\xcd\x58\x20\x95\xb3\xe5\x0b\x59\x3f\xc2\x7b\x7f\x04\x80\x75\x22\x05\x94\x3e\x52\x7b\x3c\x1c\xf2\xe2\x75\xc6\x6a\x6b\xa6\x20\xeb\xb3\x81\x7f\x3c\x3e\xfc\x87\xfa\xee\xfe\x35\x84\xaa\x8f\x1f\x5f\xa7\x89\x26\xfc\x8f\xcd\xac\xbf\xe4\x13\x66\x2f\xd0\xa9\x84\x24\xf3\x7d\x86\xd5\xa0\x6c\xa5\xb3\x20\x54\x6e\xf7\xdc\x76\x9c\x3e\xa0\xb3\x24\xa3\x86\x81\x36\x86\x9b\x00\xf0\x74\xa6\x02\x4f\xa2\xf6\xad\xc6\xca\x31\xea\x74\x57\xe4\x51\x98\x0c\x12\xc8\xd3\xe6\x4a\xcd\xb3\xd0\x02\x17\x5a\x2f\xf2\x47\xde\xec\xbf\x4d\xc1\x17\xf3\x2b\x41\x73\x1e\x50\xc7\x29\xf5\x49\x59\x4c\xd4\x95\xa7\x71\x85\xb1\xd7\x82\x09\xba\x9d\x5f\x47\xd7\xfa\xe5\x61\x3e\x5d\xdb\x8e\x16\x0a\xc2\x60\xce\x15\xfb\xe0\x75\x43\x60\x98\xc3\x1c\x6c\xdf\xa6\x1c\x16\xb3\x8e\xbd\x86\x4c\x62\x8f\x8d\xf9\xee\xe8\x13\x27\x5f\x09\x34\xf0\x6c\x54\x94\xad\xbf\xe2\x61\xfa\xfe\x24\xe3\xa1\x6f\x47\xb2\x82\xa9\xeb\xfb\x9b\x09\x19\x0e\x68\x99\x6a\x92\xc1\x3d\x17\x36\x29\xf2\xc1\x7d\xa9\x20\x22\x26\x64\xc7\x31\xdc\xa1\x88\x17\x5a\xe7\x43\xba\xe8\x6e\xb8\xf2\xfb\xfd\x42\xdb\xfc\x24\x81\x6d\xb0\xe9\x5b\x12\xb4\x92\x56\xb0\x90\xcc\x51\x53\x5d\xc6\xb4\xc7\xa3\x82\x97\x56\x26\xc9\x2c\x38\x39\x7f\xcb\xdf\x74\xae\x3b\x6b\xab\xb5\x62\x49\xe0\x0b\x75\xc3\x30\x4b\x6b\x57\x70\xb2\xd5\x8e\x36\xc6\xbf\x3d\x37\x6a\xef\x73\xd4\x6e\x14\xc6\x86\x46\x3d\xa1\x6a\xa0\x5a\xee\xf3\x02\xba\x43\x99\xf2\x15\xfe\xc7\xcb\x72\x8f\x13\x7d\x00\xd0\x28\x54\x0c\x5d\x9d\xec\x05\xea\x7a\x1e\xb1\xad\x4d\x24\xa2\x9e\x8c\xe4\xf7\xbc\x69\x5a\xe7\x2d\x2f\xea\x35\x1e\x6d\x53\xdb\xb6\xbc\x6d\xa3\x37\x3f\x1e\x8c\xee\xc7\xdb\xb4\x6c\xaf\x14\xf9\x99\xda\x11\x60\x18\x6a\x72\x8c\xca\x11\x9f\xcf\x07\xa9\x9f\xe9\xb9\x99\x08\x32\x8f\x7c\xae\xeb\xe5\x75\xda\x1c\xa3\x58\x43\xe4\x98\xa7\x76\x14\x39\xed\x10\xaa\xf6\x11\xea\xab\x91\xc6\xab\x97\x77\x72\x19\x83\x02\x0a\x46\x59\x00\x94\x4c\x1e\x7e\x35\x8c\xb8\xc5\xfc\x5a\x3d\x9b\xc5\xeb\xc4\x8f\xc7\x24\x45\x42\x6c\x5a\xad\x82\x5b\x38\x9d\x6e\xca\xf2\x6d\x36\xcd\x86\x89\x0a\xa8\xde\xf5\x33\xc7\x5f\xa7\x01\x1a\x10\x99\xb0\x2a\x72\x7b\x1b\x0b\x7b\xde\x08\x72\x4b\x8f\xf9\x14\xf6\x8b\x4c\x46\x24\x07\x8f\x65\xfd\x92\xff\xf5\x17\x6c\x5a\xff\x6f\x03\xa6\xbf\x9e\xb6\x93\xc8\x5a\xd6\x35\x9a\xd1\x2a\xc3\x34\x8c\xbd\x06\xf3\x23\xbc\xdf\x9c\xeb\xbc\xa0\x2e\xbd\x17\xac\x96\x79\x73\x99\xfc\x5a\x1a\x0b\xf2\x46\x7f\x40\x05\x03\x2c\x0c\x66\x60\x95\x4b\x2a\xfc\x59\xbe\xe1\x15\x5b\x09\xf2\x30\xb1\x45\x2c\x8a\xe5\x4a\x63\x3a\x3b\x8d\x3c\xd2\x86\xba\xf0\xab\xbc\xc6\x1f\x50\x55\x79\x79\xdd\x1d\x37\xbe\x0b\x0e\x96\x6f\xc8\x4e\xc1\xd6\x44\x7b\xe0\x5f\xbb\xc1\x8c\xff\xc7\x9f\xa2\x01\xdd\x7a\xa1\x1d\xab\xf5\x9c\x5e\xa6\x98\x12\x14\x2a\xf1\xa2\x1a\x0f\x79\x81\xb7\xd0\x40\x34\x19\x02\x4c\x10\x90\xfd\xd0\x28\xff\x04\x20\x22\x52\x9d\x7b\xc8\x8b\xd7\xff\x8c\x48\xe5\xdb\x63\x22\x60\x24\xa4\xdb\x54\xe7\xba\xf9\x9c\x86\x61\xfc\x4b\x32\x61\x54\x4c\xd9\x12\xb4\x62\x74\x55\xa9\x43\x25\x5d\x4a\xd3\x9c\x0b\x4b\x57\x36\x7e\xe3\xd2\x44\x61\xdf\x21\x48\x62\x84\x33\x3d\xd6\x28\x8d\x0e\xfb\xad\xfa\x2e\x3f\xe0\x10\x07\x8b\x2a\xb4\xbd\xae\x0a\x8a\x6f\x45\xbd\xc7\xc3\x64\xf6\xa8\x28\xb2\x9c\xce\xbe\xc4\x33\x49\x0d\xfa\x61\x2c\xa3\xf7\xfa\x84\x63\xdd\xfd\x0f\x96\xba\x4a\x23\xdf\x70\xf2\xed\x7e\x4a\xd1\x81\x3a\xce\xa8\x00\x76\x84\xe2\x6c\xfb\xa2\x5b\xc7\x8a\x90\xdf\xde\xe6\xc3\xe1\xb9\xe8\x72\xa0\xa8\x13\x43\xb1\x66\x0d\x06\x9b\x8b\xe5\xb5\x19\xff\x20\x86\x92\x1c\x24\x97\xa8\xba\xc1\xd7\x57\xa8\xea\x65\x79\x3c\x9e\x07\x19\x38\x44\x91\x10\x52\xcf\xc6\xb2\x61\xf7\x67\x14\x84\x84\xcb\x0b\x75\x97\xbf\xee\x5b\xf3\x34\xb5\x0c\x26\x4a\x3a\xef\xe5\x8a\x0d\x1a\xd0\x24\x49\xa6\x7a\xa5\x2d\xda\xbf\x47\xc1\x2c\x9a\x4c\x23\xc5\x1a\x3f\xa1\x81\x6e\xed\x18\xcd\x45\xbb\x76\xee\xda\x0d\xb2\x87\x75\x9a\x20\xb5\x50\x0b\x2f\x9a\x8c\xbf\xe6\x42\x5a\x13\x68\x2b\x68\x4e\x4d\xf4\x84\x3d\xbc\x42\x3e\xf8\x98\xd6\x04\x18\x52\xb3\xfc\xe3\xe5\x47\x7e\x38\x8c\xab\x6b\x1f\x62\x6b\xfd\xb9\x26\x60\x71\xef\x8e\x3f\x96\x3f\xf1\x9a\x21\x0d\x4c\x18\xc5\xc4\x26\x44\x44\x9a\x83\xc2\x85\x09\x93\x34\x70\x28\xd5\x0d\x36\x1d\xa9\xe0\x50\xfb\x02\x4c\xa8\x0c\xb1\xf6\x38\x21\xf6\xda\xe6\x3d\xfd\x47\x32\x11\x4b\x09\x0c\xf2\xf5\xfc\xfa\x08\xcd\xbe\x3c\x77\x07\x0c\x8f\x3a\x76\x93\x73\xd1\x60\xe5\x5b\xfa\xfc\xcb\x37\x5e\x2d\xc6\x16\x73\xe7\xf7\x36\x13\x6b\x46\xdd\x02\xcb\x1f\x4b\xf3\x01\xd6\x7d\xe8\xd5\x99\x18\x85\xce\xfc\xd3\x3e\x3c\x6f\xfd\x8f\x25\x81\xcc\x32\xaf\xe1\xf1\x52\xa1\x4f\x76\x76\xc7\x95\x16\x83\x9e\xc0\x71\x42\xcd\x30\x93\x49\x98\x10\xd2\x11\x51\x4e\xff\x9a\xd3\x38\x8e\x1d\xbb\xe2\x97\xf2\xa0\xdb\x6d\x6f\x83\x55\x0e\x13\x40\x92\xc9\x62\xe3\x5b\x60\x1f\x6d\x7e\x65\x48\xe9\x75\x95\x61\x32\x59\x66\x28\x57\x33\x71\xb6\x0d\x8f\x80\x5e\x8c\x07\xce\x77\x7f\x4f\x03\x22\x0d\xf8\xfe\xb2\x1a\xe5\xa0\x0d\x77\xb2\x01\xad\xe9\x7a\x3c\x7b\x58\x87\x11\x2c\x20\x1f\xf7\x81\x00\x8f\x93\x1d\xdd\x08\x93\x72\x4f\xa9\xfa\xee\x7c\xcf\xc7\xe5\x8f\xb1\xed\x30\xc2\x08\xf2\xdc\xb7\x7b\xdc\xa8\xfd\x11\xd5\x5b\x97\x02\x36\xc0\x82\xd8\xd6\x89\x9c\x9c\xce\xb4\x06\x62\x80\x49\xaa\x24\x1d\x73\x5b\x10\xf2\x45\x0d\x23\x93\x80\xbc\xb1\x17\x2c\x5a\x0f\xbc\x7b\x74\xc9\x92\x40\x0d\x9a\x45\x47\xda\x17\xa3\x14\x85\x91\x46\x27\xee\xfe\x2d\xe5\xd7\x0d\x34\xcd\x01\x5f\xca\x37\x3c\x96\x45\xf7\x4b\x2a\x14\x81\x4b\xd0\xfe\x22\xca\xad\xee\x40\xc4\x02\x8f\xe6\x82\xe9\x8d\xab\xcc\x76\xf0\xe5\x75\x7d\xc6\xbb\xea\xba\x53\xfe\x43\x98\xc7\xf8\x3a\x3a\xb3\xcc\x58\x43\xb9\xbe\x5e\xc6\xda\x0f\x52\x01\xe5\x7a\x76\x82\x22\xe2\xcd\xb1\x7d\x9b\xfe\x20\x86\x36\x20\xfe\x42\xdb\x92\xc9\x27\xc2\xbf\x60\x90\x59\x7e\x32\x1f\x1a\xb4\xbb\xc9\x2c\x15\x80\x41\x19\x12\xc3\xc0\xe6\xbf\x55\xf7\xc2\x51\x01\x40\x97\x49\x5d\x54\xd4\x8b\x54\x7b\xb6\x24\x37\xc8\x24\x8c\x50\xc1\x0e\x77\xe0\x04\x49\xab\xf2\x68\x09\x5e\xaf\x2c\xe0\x07\x56\xcd\x30\x41\x24\x6e\xed\xf8\x25\x74\xfd\x99\x93\xbb\x34\x19\xb2\xa4\x93\x4c\x9b\x36\x48\x8c\x67\xa7\x51\x52\x06\x9d\x97\x44\x8e\x34\x92\x4c\xfb\xcd\x65\xee\x15\xc8\x20\xc8\x52\x32\x4c\x8e\xa1\x66\xdb\xba\x5f\xc5\x6f\x70\x44\x5f\x6f\x93\x41\xc0\xb9\x71\xb8\xeb\x97\x43\xd9\xb4\x2e\xcd\x07\x2d\x44\xd7\x89\x33\x19\x84\x92\x51\x5a\xa1\x41\x38\xae\x8e\xe0\x7b\x42\x65\x10\x62\xe4\x61\xca\x17\xac\x9b\x52\xc3\xe5\xd5\xc3\x92\x64\x10\xc9\x2c\x12\x1e\x24\xa1\xde\xbe\x39\x4d\x97\xd1\xa7\x96\x41\xa2\xa4\x1c\xe0\xe2\x77\x75\x5f\x02\x94\x41\x82\x8c\x94\x39\xb4\x65\xeb\x68\x2f\xf3\x41\x31\x5c\x06\x2c\x40\xcb\x0d\x55\xdf\x17\x5f\x3a\xd4\x8a\x0c\x58\xac\x02\x0b\x35\x7a\x77\x7e\x49\x38\x30\x34\x32\x60\x89\x71\x52\x75\x90\x17\xa4\x4e\xdb\x0b\xbc\xc9\x20\x0d\x58\xdc\x6b\x8f\x7c\xa2\xd0\xec\xc7\x27\x56\xee\xf1\xa1\x7c\x5d\xee\xf3\x0f\x0b\xa4\x32\x48\x33\xa5\x3c\xb7\xb6\x4d\xc7\x2f\xcb\xba\x79\xec\xd0\x74\x32\x48\x8d\x22\x54\xd6\xd7\xc5\xe6\xeb\xcb\x6a\xdd\xd1\x2d\xc9\x20\x8b\xb3\xd0\x45\xa6\x8b\xa6\x01\xf5\xb6\x86\xe2\xad\xdb\xf9\x65\x90\xf1\xd8\x13\x3e\x2c\xe1\xb4\x46\x75\x9d\x0a\x9e\xf0\x6e\xc8\x20\xd3\xb6\xd0\xb2\x7b\xb5\x6c\x04\xc4\x4a\xe0\x2f\x28\x80\x91\x95\xa6\x06\xcf\x41\x10\x49\xff\x3a\xef\x40\x06\x10\x73\xca\x3e\xe3\x11\xab\x57\x2c\xd4\x65\xca\xa3\x22\x03\x48\x15\x11\x4a\xac\xa0\xbe\x3c\xe6\x05\xde\xab\x72\x32\x9b\x41\x67\x3e\x79\x40\x1e\x50\xbb\xd7\xfb\x55\x2b\x03\x19\x58\xed\xe4\x5e\x83\xd3\x24\xdd\xb1\x4c\x51\x0d\xff\x04\x17\x0d\x97\xc9\x34\x53\xa1\x95\x65\xbe\xc5\xd3\xa1\xa4\x7d\xa1\x8f\xf4\x64\xa0\x8c\x22\xd7\xf4\xf7\xd6\xab\x19\xed\x5c\x32\xd0\x09\xd2\x8e\x76\xcc\xdb\xf7\xd2\x3d\x89\xee\x19\x47\xb7\x50\xbc\xad\x6c\x88\x39\x24\xba\x94\x81\xe6\x91\x0b\xbf\x4d\x7b\xea\x5d\xdf\x69\xf0\x08\xa7\xc9\x73\x6b\xd0\x44\xb8\x23\x95\x56\x8f\x0e\x35\xea\x7f\x0b\x43\x88\x4c\x2f\xd0\xf4\x78\x19\xba\x85\x32\x40\x66\x51\x4b\xe7\xa2\x75\xe1\x56\xef\x13\xb6\x7d\x3f\x2a\xb3\x54\x2d\x6b\x6c\xf2\x0a\xaf\x74\x66\x64\x80\x5c\x72\xcb\xfa\x77\xcc\x8b\xdd\xa1\x63\x18\x90\x01\x2a\xdb\x11\xf2\xf8\xb4\x1c\x2d\x1d\x34\x09\x24\x1d\xe1\x37\x56\x56\xf6\xb2\x3f\x2a\xc9\x61\x7b\xb4\x79\xae\x0f\x2b\x90\x43\xf3\x27\x03\xa3\x84\xf2\xdc\xfa\xbf\x86\xe8\xfc\xd1\xeb\x0a\x03\x16\x99\xce\x61\xcb\x8b\x9b\xcb\xe6\x50\x36\xae\x3f\xdb\x15\xde\x64\x18\xc8\x8c\x9a\x2f\x1d\x8f\x1f\x21\x50\xc6\x90\x53\x19\x06\x3a\xa0\x6c\x84\x2e\x8b\xb2\xb9\xfd\xfd\xf7\x36\x60\x1f\x3e\x64\x18\xc6\x09\x05\x47\xc7\xf3\x61\xec\xe7\x76\xc7\x39\x6d\xc6\xab\xf7\xf6\xb4\x1b\x7f\x5a\x14\x26\x9e\xa7\xec\x6f\x51\x68\xfe\x14\xc1\xa8\xd4\xf0\xf0\x74\x3b\xba\x83\xc8\x84\x72\x4a\x9f\xf1\xff\x72\x76\x65\xdd\x89\x23\x59\xfa\xef\xd4\xc3\x3c\x28\x42\xa1\xed\x11\x30\x76\xd2\xe9\x85\x36\x64\x65\x55\xf7\xe9\xc3\x89\xe5\x06\x56\x25\x48\xb4\x24\x6c\x53\xbf\x7e\x8e\x6e\x2c\x5a\x10\x59\x35\x33\x0f\x95\xd3\x56\x20\x90\x14\x8a\xb8\xcb\xb7\xb8\x59\xba\x52\xd3\xd4\x1c\x41\xc2\x28\xc5\x9d\x11\x1b\x6f\x82\xd7\xb9\x6c\x5f\xc7\xed\x47\x39\x43\xb5\xee\x99\x6e\xa0\x42\x51\x7f\xf7\x35\x4c\x1b\x27\xfa\xbc\x5e\xf3\x73\x3d\x8a\x7b\x04\x89\x88\xc6\x5f\xa7\x73\xdd\x5c\x76\xf8\x5f\xf7\xc9\x88\x19\x6d\x9b\x87\xd9\xf3\xcc\xff\x8d\x6b\x0b\xb8\x79\x39\xbf\xe7\xaa\xac\x72\xbe\xe0\x8a\xd7\x4d\xc5\x15\x1f\x9d\x3a\x06\x21\xcc\xd2\x8d\x14\xf5\xe1\xc1\x84\x69\x94\xc2\xc3\x19\xd6\x86\x41\x66\x22\x95\xd5\xf1\x66\x0a\x3d\x55\x23\x14\x24\x11\x04\x45\x3b\xca\xe2\x71\xf9\xdb\x89\x8f\xde\x73\x92\x06\x51\x2c\xfa\xb6\x37\xde\xa6\xcc\x0e\xc8\xa2\xc8\xd9\x1b\x3c\x5d\x16\x50\x74\xcb\x12\xc9\x22\x99\xc6\x3d\xb0\xfd\x70\x8e\xbb\xe9\x98\xc5\x8a\xdb\x65\xdb\xdf\x93\xe7\x72\xd4\xd1\x16\x24\xe3\x29\xae\xde\xa7\xaa\xac\xeb\xef\x79\xf1\x52\x3d\x96\xf5\xb0\xe2\x23\x08\x4f\x12\xdb\xb4\x2a\x1a\xe7\x58\x68\x38\x92\xbd\x28\x47\x10\xce\x33\x44\xf6\xc0\x79\x3f\x98\x52\x22\x52\x5e\xc0\xc4\xfd\xe6\x29\x0c\xab\x20\x22\x0b\x11\x09\xa6\xbd\x47\xd9\xa2\xac\x8f\x65\xbd\xe9\x9c\x34\x05\x91\x24\x36\x70\xe8\x0a\x4e\xbc\xb2\xf6\xd3\x83\xf7\x9a\xc8\x34\xc3\xb5\xf0\xdb\x7c\xe1\x3e\xa5\x02\xe5\xb6\x31\xfc\xd1\x86\xbf\x57\x56\x97\xeb\xb2\x9e\x20\x8a\xcb\xd8\x43\x86\x78\x05\x3d\xf2\x6c\x7b\x50\x21\x9a\x1a\xad\xc2\x77\xeb\xd7\x25\xc2\x3f\xbe\x2f\x97\x5f\x5d\x08\x44\x80\xa7\xb8\xf3\xd4\x28\xab\xd0\x6b\xc7\xfa\x01\x92\x87\x69\xcf\xae\xef\x0e\xde\xdd\x0a\x4b\x34\x04\xd2\x89\xc0\x3d\x38\xdf\xdd\x71\x64\xdc\x0e\xd3\xc4\x52\x20\xd7\xbf\xae\x31\xca\x1a\x0c\xa0\x41\x0c\xca\xa9\xa4\x58\xeb\x91\x5f\xdc\xa1\x54\x63\x1f\x71\x7d\xe0\x97\xdf\xa8\xff\x6b\x16\x1b\xa1\x7c\x59\x81\x2c\xdf\xa1\x22\x83\xc7\x34\xdd\x2f\x16\x94\xf0\x14\x77\x84\xe7\xd5\xe3\xf2\x37\x77\x2e\x22\x38\xfa\xf7\x74\xc0\x32\xec\x30\x0d\x27\x16\x25\x60\x9c\xd2\x14\xc8\x81\x31\xd3\xe0\x8b\xec\x58\x6a\xdf\x88\x13\x54\x56\xb4\xb4\x9e\x0c\x6a\xdb\x91\x8a\x3a\xc5\x0a\x64\xce\x3e\xf1\x22\xd7\x50\x37\xf3\xcb\x40\x0c\x63\xf4\xa9\x54\x1b\x60\xc3\xe3\x60\xdf\xa1\x34\x4b\xe3\xcc\xd9\xde\xb6\x79\xe0\xac\x3a\xf6\xad\x67\x70\x84\x74\xc6\xb8\xe7\xa3\xb9\xd5\x2f\xfa\x2e\xaf\x4f\x67\x44\x48\xf0\x43\xbd\xae\xca\x35\x6f\x3a\xf3\x1c\x41\xa9\xd5\xf8\x3f\xf2\x4f\x84\xa5\xf6\x9b\x6b\x82\x86\x34\x33\x55\xb0\x37\x90\x3f\xfa\x5a\xf2\xc3\xfb\x17\x0a\x8d\x59\x20\x96\xfb\xad\x34\xbf\x3d\xc4\xb4\x31\x98\xe0\x4a\x3d\xf1\xe2\xb2\x2d\x3b\x28\x5e\xbf\x67\x7c\x85\x25\x10\x34\x0a\x18\xa2\xae\xfe\x28\xf3\x62\x67\xa1\x5f\xbb\xaa\x2c\x47\x2f\x19\x8d\x48\x88\xed\xae\xaf\xb3\xa2\xe6\x55\xde\x15\x67\x05\x8d\x24\x41\xe2\xf2\x8f\x8b\xb4\x6d\x1b\xc3\x72\x99\x9f\x6a\x3f\x04\x14\xe2\x08\x8d\x68\x55\x4f\x40\x41\xd0\x94\x81\x44\x2c\x24\xb2\xff\x50\xdc\xf3\xa7\x7b\x19\x4d\x33\x92\x49\xf7\xba\xe6\xa7\xed\xe5\x04\xa3\x1b\x95\x72\x85\x53\x5b\x15\x3c\x1e\x1d\xca\x02\x49\x94\x5d\x8a\xf3\xe2\x0c\xaf\xa0\x00\x8e\x63\x1b\x09\x41\x33\x4d\x91\x45\x80\xc6\x7d\x4e\x59\x5d\x50\x1e\x00\x6e\xfb\x88\xd8\x42\xff\xb1\xd1\x86\x30\x0e\x7e\x29\x0f\x13\x27\x90\xb3\xfd\x6c\xdf\x5b\xec\xf4\xdb\x46\xff\xd4\xcc\xe7\x9c\x71\x4f\x1a\x69\xe4\x5b\x1b\x4c\xb6\xcf\x30\x20\xee\x47\x88\x80\x60\x8b\xc9\xb2\xe3\xcc\x1a\x3d\x4e\x0f\x47\x3f\x43\x50\x23\x00\xc8\x95\x32\xde\xdd\xc3\xd5\x43\x84\x0c\x1b\x96\xd6\x37\x7c\xb6\x58\xbc\x7c\x7b\xde\xee\x9e\x66\xfe\x15\x97\x8c\x61\x93\xdd\x52\xd7\x5d\xed\xe7\x8a\xb1\x78\x8d\x3b\x17\x54\x4a\x85\xa1\xf5\x5b\x5e\x41\x65\xa0\xfd\x56\x59\xf9\x2f\xd5\xb7\xdc\x19\x94\xe2\xa1\xcf\x72\x4d\xe9\x6d\x50\x99\x12\x54\x59\x30\x87\x5f\x83\x76\x75\xbb\x98\xd7\x3b\x5e\xa8\x9d\xf9\xdc\xdf\x56\xa6\x1d\x7e\x39\x10\x10\xd6\x46\x76\x5d\x16\x7f\xe6\xee\x1b\x81\x66\x38\x11\xbf\x5c\x4e\x50\xc9\xde\x0b\x01\x61\x06\x41\x17\x54\x2f\x65\x59\x5f\xea\x06\x8e\xff\x78\x1a\xdd\x76\xc8\x38\xa2\xb2\x0d\x1d\x71\x03\x87\xc3\x6c\x0f\x45\xb3\xc9\x11\x3b\x31\x1e\x2c\x43\x6c\x92\x9b\x7c\xd1\xcb\xb5\xd9\x96\xde\x0d\xa6\xe9\xd5\xbf\xfd\xf4\x9b\xea\x88\xa0\xa2\x3e\xaf\x9a\xbc\x36\x10\x15\x77\x24\x4d\x90\x1a\x81\x5d\x2e\x0c\x12\xcc\x81\x30\x08\x0d\x7c\x1b\x78\xf3\xcd\xe0\xee\x46\xf1\x43\x18\x44\x06\x9d\x64\x66\xca\x3d\x97\x4d\x59\x59\x31\x24\x37\x82\x1b\xbf\x1c\x5c\xef\xb8\x13\xdf\x1c\xf7\x64\x7c\x49\x51\x84\x24\x30\xa7\xf4\xcc\xd1\x41\x30\x1e\xd2\x08\x70\x72\xcf\x94\xea\xb9\x0b\xcc\xf6\x3c\x2f\x6a\x63\xad\x9d\x17\xfb\x65\xd1\xe4\xd7\x32\x0f\x63\x00\x5e\xff\xf6\x84\x34\x0b\x70\x63\xbf\xdb\x20\xd9\xf2\x7a\x15\x1d\x4e\x94\x30\xa4\x46\xab\x22\x2f\xda\x67\x54\x83\xf7\x7a\xeb\x15\xe7\x26\x03\xc8\x90\x89\x2c\x8e\xdd\x27\x8f\x8e\x50\xed\x83\xad\x90\x69\x86\x18\x3d\xeb\x25\xe3\x34\xfa\x6e\x40\x12\x6f\xfd\x6b\x4f\x16\x85\x12\x69\xc4\xeb\x27\x17\x2f\x85\x91\xce\xa4\x61\x3d\xa2\xd7\x40\x9f\x04\x26\xc2\x98\xe9\xd0\x94\x31\x7e\xc0\x08\x8b\x21\xc2\x38\x0e\xb2\x0e\xa4\xf9\xe5\xee\x37\x39\x05\x65\x11\x61\xac\x81\xf7\xe3\xd8\x6d\xb9\x5a\xcc\xd6\x6d\xde\x80\xdc\x49\x28\x24\x32\x8d\x1e\xb8\x9f\x69\x09\x8d\xb0\xe7\x77\xea\xbd\xe5\x61\x92\x1a\x2f\x60\x17\x62\x97\x95\x85\x26\xfe\x55\xc4\xee\x3e\x9f\x05\x68\xd1\x80\x54\xf9\x1c\xaa\xd0\x9f\x18\x48\x14\xdc\x00\x7b\xda\x21\x69\x42\x51\x24\x1d\xdd\x56\x47\x5a\x79\x22\x4c\x53\x23\xbf\x2a\x1a\xf9\xca\x1b\xf0\xe8\x16\x11\xa6\x59\x8c\x0f\xf7\xdb\xe6\x6e\x51\x5d\x4e\x4d\xd9\x8f\x38\xc2\x34\x53\xc8\x33\x3f\x95\x1f\x50\x7d\x3b\x8d\x72\x87\x30\xe5\x29\x36\x66\xcc\xdb\xd4\x26\x58\xbd\xea\xea\xe0\x49\x70\x96\x22\x8c\x1c\xb1\x8c\x4e\x27\xc3\xb3\xb5\xc1\xdf\x42\x1e\x6b\x6c\xde\xdc\x95\xc7\x73\x3d\xf8\x29\x82\x84\xb1\x6f\xfa\x0f\x0a\x01\xa1\xa0\x01\x2e\xff\x8b\xc7\xe7\xdd\x7a\xf9\xba\xeb\x4a\x46\xa1\x60\x0c\x79\xbe\x79\x21\xa1\x68\x72\xe7\xa2\xd9\xdf\xe4\x43\xc1\x05\x22\x76\x9e\x61\x81\x36\x87\xb6\xf0\xea\x0f\x03\xc3\x5e\x05\xe2\x56\xf2\xea\x0e\x05\x5d\x07\xda\x10\x43\x3e\x8b\x08\x85\x0e\x12\xdf\x7e\xcc\xff\x04\xb3\xa1\xfa\x9f\xab\xc2\x14\x33\x2e\x37\xdb\x66\xc5\x65\xc1\xa1\x72\xd7\x3b\xb9\x47\x86\x8a\x09\x5c\xda\x36\x8b\x6f\x77\x2f\xfe\x4c\x4a\x68\xea\x92\x14\xbb\xd8\x2e\xca\x42\x1e\xce\x0a\xfc\x82\xa6\x80\xb8\x98\x70\xce\x8b\x1f\xcb\x66\x60\x10\x26\x42\xe0\x19\xe2\xff\x2d\x1f\x17\x7d\x80\x96\x9f\x27\x28\xea\xbf\x48\xdc\x43\xcd\x14\x35\x1a\xb1\x70\xc8\xe1\xbd\x5c\x57\xe5\xa9\xca\xa1\xe1\x55\x3e\xed\x69\x22\x58\x10\x31\xac\xa8\xb5\xaf\xd3\xe6\x54\x79\x74\x9e\x60\x41\x92\xa2\x99\x8b\x02\x59\x2a\x93\xe6\xdc\xc3\x38\xcc\x64\x01\x37\xbe\xce\xf2\xec\x45\x44\x04\x0b\x54\xa4\x94\x2f\x04\xad\x0a\x54\x15\x80\xb1\xc0\xb8\x60\x24\xe3\x08\xdf\x6c\xc3\xc9\x49\x17\x5e\xc1\x28\x09\x32\xbb\x98\x3f\xf3\x4a\x96\x8f\x53\x02\x68\x82\x51\x16\x63\x50\x8c\xd2\x96\x55\x07\x5b\x11\x8c\x05\x51\x16\x3b\x69\x29\x53\x06\x34\xa8\xe7\xc1\xab\xce\xa2\x30\xed\x61\x96\x30\xc7\x77\x6f\xc2\xff\x2b\x0e\x60\x11\x4b\x43\x6a\xf3\x17\x5e\x81\xd5\x79\x9e\xd5\x86\x68\x39\xc2\x2a\x09\x16\x89\x2c\xcb\x3c\x36\x3b\x7f\x9a\xc0\xb8\x0b\x16\x07\x04\x79\x07\x5f\x73\xf9\x63\xfb\x06\x6d\x58\x6d\x76\x4c\x57\x01\x61\x71\xc2\x02\xd6\xeb\x1f\x8e\x6a\xf4\x2c\xa1\x09\x36\x1e\x0f\xe8\x0f\x9e\xee\x78\x3f\xb5\x60\x49\x04\x08\xd5\x47\xec\xfb\xea\xf9\x61\x37\x7b\xde\x7e\x59\x3d\x3e\xfa\xe3\x89\xc4\xd6\xe9\xf9\xa4\xca\x11\x5c\x41\xb0\x24\x8d\x1d\xa8\xa1\xbd\xc1\xe6\xe5\x59\xd5\xf5\x79\xd0\xa5\x1b\x7e\x26\x25\x71\xe4\x0c\x8c\x31\xd4\xdd\xbd\x93\xe4\x0b\xaf\xdf\x76\x76\x9c\xfb\xe6\x94\x82\xb4\x4a\xcb\xb2\x2c\x0a\x90\xcd\x53\xa9\xce\x7e\x4d\x60\x69\x14\x62\x71\x6c\xb5\xbc\x9f\xbf\x12\xe6\xff\x1c\xa7\xa8\x6d\x57\x9e\x9a\x95\x9f\x11\xa9\x34\xea\xdb\x15\xec\x5f\x41\xb7\x93\x7b\x98\xbd\xb0\x14\x62\x5c\xd9\xac\xf8\x41\x55\x4e\x20\xae\x6c\xb4\xca\x32\x10\x08\x40\x7a\xc8\x79\xd1\x7c\x07\x50\x5f\x73\xd4\x2c\xb0\x87\x79\xc4\x78\x36\xd2\xa5\x7e\xef\x0e\x0b\x22\x11\xda\x55\x56\x6d\xfe\xc7\xfb\xf3\x56\x24\x21\x77\x36\x6e\xbd\x36\x89\x3b\x0a\x46\xff\xde\x9a\xda\xda\x1f\xd8\x05\x41\x4c\x06\x86\xc1\x6e\x76\x02\xab\xee\x31\x4e\x6f\x47\xef\x9a\x0c\x23\xac\x9b\x97\x27\xc3\xca\x1a\x1d\x8d\xb3\xcc\x2a\x8d\xcf\x2a\x91\x37\x15\x6f\xca\x6a\x35\x9a\x5f\x52\x52\xec\x15\x14\xf0\x31\xd5\x73\x18\x3d\x7e\x29\x43\x6a\x2a\x61\x5d\xf0\xf3\xd3\xea\xac\xff\x9c\xcc\x6c\x02\x3b\x60\x79\x8e\xd7\x17\x45\x03\x45\xad\xc0\x41\x5e\x75\x79\x08\xa8\x61\x3a\xc0\x94\x26\xd8\x08\x7c\x7d\x79\x5c\xee\x16\x2f\xcf\xdb\xd7\x97\xc7\xc7\xe5\xab\x3b\x0c\x3a\xc1\xd2\x1f\x74\x9a\xf3\xf6\x88\x66\x89\xb3\x45\x56\x79\xb1\xc7\x62\x94\x5f\xe9\x99\x8e\x34\x72\x14\x8d\x74\xd8\x82\x57\x6a\x68\x94\xd2\x8f\x4b\xa3\x20\xc8\x70\xa1\x12\xed\x56\x70\x5e\x97\xd5\x28\x28\x8a\x82\x54\xf6\xec\xe7\x5f\x61\xdf\x26\x2e\x65\x65\xec\x1b\x87\x43\x09\x09\xb0\x5b\xc4\xad\x19\xb5\xa1\xab\xaf\xd1\xde\xfb\x17\x37\xc6\x42\xbb\x90\xad\x9f\x37\xed\x5b\x37\x7c\xe2\x11\xe1\xb1\x03\x20\x3d\xe5\x45\x73\x67\x38\x79\x3e\x36\x88\x08\x97\xb6\x23\xb1\x37\xba\xa0\x5b\x14\xdb\x73\x87\x69\x9b\x8a\xf9\xd7\x68\xd5\xc0\x71\x20\x26\xd5\xdf\xf3\x22\x9a\x72\x34\x21\xfb\xca\xf3\xaf\x67\x5e\xec\x8d\x9c\xc3\x4f\xc2\xed\x88\xa6\x86\x34\x80\x88\x85\xf5\x78\x3d\x8d\xa8\xc8\xb0\xc2\xf5\xfd\xf1\x69\xab\xf3\xa2\x80\x8b\xff\x59\x32\xc1\x1e\xe4\xc3\xeb\xcb\xf7\xed\x97\xdd\xe6\xdb\x7a\xfd\xf8\xbb\x3b\x18\x06\x04\x1f\x82\xd3\xcb\xfe\x91\x37\xcd\x65\xd0\x4c\x89\x42\x45\x33\xd2\x03\x40\xf7\xc4\xb8\x45\xc4\x6c\x47\xd9\xc1\x44\x51\xa5\xb4\xe1\xc7\x93\x1f\x90\x72\x81\x55\xfc\xfc\x13\x55\x29\x27\x5f\x8c\x88\xe9\x00\x7b\x88\xa7\xaa\x3c\xe6\x58\x8a\xfc\x56\x78\x0c\xb6\x88\x22\x12\x63\x2e\x79\xcc\x0b\x6b\xe0\x31\x28\x11\x45\x51\x2c\x70\xa6\xfc\x0b\xaa\x72\xf9\xf9\x85\x17\xea\x70\x83\x91\x2c\xa2\x58\x00\xea\xdc\x9f\x2a\x78\x5f\x1a\x07\x54\x77\x9a\x58\x99\xd6\xf4\x1e\x9a\x07\x7e\x04\x9c\xdc\xf3\x2b\x9f\x63\x11\xa5\xa9\x36\xd4\x2b\x5d\x4e\xda\xc2\x8b\x28\xe3\xd6\x91\xdf\xbd\xe6\x33\x75\xcb\xc0\x46\x44\x1c\x32\x24\x9e\xce\x51\x46\x60\x5b\xb6\xff\x62\x33\xbc\x3d\xb9\x41\xc6\xbb\x05\x1e\x01\x58\x28\x83\x80\x2c\x86\xe6\x82\xf9\xdb\x28\xc7\x6c\x77\x57\xd0\x1d\x57\xd1\xf1\xdf\xfb\xdc\x73\x77\x3e\x21\x44\xd8\xe9\xde\x58\x7c\x4f\x6d\x13\xc8\x3e\xa9\x2a\xed\xfd\x97\xb8\x2f\x92\x49\x82\xf8\x3a\x87\xaf\x37\x6e\x5d\xee\xdc\x52\xa7\xe8\x7e\xbc\xe6\x12\xaa\xfa\xbd\x5e\xf0\x77\x7e\xc8\xa1\xaa\x19\x0d\xdc\x18\x45\x14\x56\x1a\xb7\x4f\xaf\xfd\x60\x3b\x52\xd4\x40\x74\x2d\xde\x79\xe0\x5a\x31\x3d\x85\x94\x12\x19\xb3\x7c\x8d\x69\x12\xb9\x1d\x08\x2c\xc2\xc5\xcd\x30\x64\xbf\xc2\xe5\x5a\xc1\x57\x44\x90\xc4\x03\xec\xc8\x77\x0b\x3a\xb9\x1a\x26\x84\xa5\xb0\x98\xe4\xe3\xa5\x70\x96\x54\xa3\x81\x52\xa3\x8f\x85\x49\x71\x36\x7c\xcf\x67\x15\x14\x53\xb2\xb3\xbe\xc2\xdc\xdb\x75\x23\x9d\x0a\xbc\x4d\x18\xb1\x1b\x87\xb8\x9f\x0a\x03\x88\x48\x73\x23\xf7\x58\xb6\x33\x70\x0b\xfe\x85\x8c\x83\xf6\x48\xd7\x58\x07\x7e\x9c\x7e\x27\x63\x42\x33\x54\xd6\xe3\xf0\x63\xe3\x3e\x4c\x89\x59\xe2\x76\xff\x57\x4b\x03\x11\x53\x26\x62\x7b\xab\xf2\x42\x97\xb7\x2d\xa0\x45\x1c\x06\x0a\x01\x33\xcb\xfb\x2f\x7f\xc9\x6e\x12\x71\x18\x4a\xed\xd6\xf5\x06\x8e\xf5\x4a\xd5\xf3\xcb\xf6\x72\x82\x59\x61\xb7\x9f\x09\x25\x14\x11\x87\x69\xe8\x20\x9a\x08\xb0\x3a\x1f\x5d\x91\xf0\xd7\x7f\x6d\xfb\xe9\x59\xcc\x68\x82\x3a\xa5\x05\x7c\x5a\x6b\xd9\x17\xfd\x9d\xef\x71\x29\xb4\x1f\xb5\x64\x3d\xf7\x89\x48\x64\xdc\xc9\xed\xc1\x5f\x24\x31\x71\xa4\x78\xec\x00\x57\xed\xd7\x5b\x0a\xf9\x70\x50\x9c\x52\x6e\x28\xfd\x57\xcc\xd5\x89\x5b\x12\x4b\x99\xf6\x1d\x05\x1f\xcb\x6b\xee\xf6\xe0\x03\x69\xc0\xb1\xfe\x50\x9f\xa0\x40\xd5\xe5\x8f\x8e\xfc\x23\xe2\x94\x33\x0c\x3f\x3a\xe3\x28\x54\xec\x2a\x14\xb2\x73\xa6\xf3\xc5\x38\x85\x00\xe1\x1d\xfc\x74\xb2\x05\x99\xd1\x32\x15\xa7\x3a\xc4\x2f\x7d\x2c\xf7\xfb\xce\xf2\x57\xc4\x9c\x51\x91\x3a\xf3\xe7\x8f\xa7\xb2\x40\x71\xa0\xfe\xcd\xeb\x71\xbe\xa7\xe6\x0f\x8f\x98\x30\xb6\x4f\x7f\x9c\xeb\xa6\x57\xf4\x1a\x5b\xbb\x89\x98\x67\x60\xb7\xa7\x62\x51\xfa\x72\x45\xcc\x79\x88\xac\x96\xbc\x7e\xca\x0b\x67\x21\xd8\x73\xb0\x15\x31\x97\x52\x50\x8f\x83\x9d\xf7\xed\xfd\x07\x8c\xb8\x4e\x9c\xc1\x45\x69\xb1\x60\x21\x56\xd9\xa7\xf7\x8e\x58\x00\x08\xdb\x64\xf9\x32\x32\xd3\x16\xb1\x6c\xa3\x22\xe3\x4e\xd9\x78\x95\x5e\x11\x4b\x9e\x65\x16\x78\xf8\x25\x2f\x9a\xe1\x67\x80\x1a\xf8\xf7\x40\x6a\xec\x15\xd0\x85\xcb\x2d\xd6\x31\x24\x02\x6b\x68\xe7\x4e\x27\x71\x40\x01\x13\x31\x28\x63\x0f\x74\xb7\xda\x98\xfa\x37\x96\xc3\x77\xb3\x27\xf3\x3f\x5c\x01\x3e\x21\x94\xe8\x5e\x14\x35\x8e\x54\x12\xc2\x62\x6c\x81\xbe\xb7\xeb\xa9\x91\xf1\xb9\x07\xa8\xbf\x43\x05\xaf\x28\x53\xa2\xc6\x1f\x88\xb8\x2d\x18\x1b\x19\xb1\x75\x55\xee\x2b\x7e\x3c\xc2\xa0\x10\x97\x50\xc2\x0c\x3e\x70\xb7\xdc\x7e\xc1\xf4\xfd\xdb\xe9\xd4\x66\xb5\x9e\xb9\x2d\x12\x2a\x43\x6c\x78\x43\xc5\xdb\x35\xf4\xa9\xbd\xcc\xeb\x6c\x23\xa1\xd2\x78\x0e\x43\xdd\xe4\x47\xde\xdc\xb0\x60\x16\x49\x18\x50\x4c\x3a\xca\x76\x7f\x77\xb7\x32\x09\x45\x88\x81\x26\x7c\x36\x50\xa8\xed\x88\xa8\x20\x12\x16\x05\xda\x2a\x72\x9f\x8c\xc9\xc3\xe8\xb4\x11\x55\xae\xa0\xfb\x47\x5f\x7e\x48\x24\x11\x33\xfa\xf8\x7d\xab\xd0\xed\xe7\xdf\x82\xb4\x8b\x24\x52\x2a\x55\xae\x37\x27\x3a\xeb\xdf\xc9\xa8\x24\x89\xc3\xd0\xf8\x2e\xe7\xfb\x62\xa4\xac\x29\x92\x98\xa5\x48\x53\xde\xfd\xf1\x74\xbe\xad\x26\x32\xfc\xfa\x38\x36\x5c\xda\x36\x35\x04\x95\x7b\x2c\x6a\x7b\xc4\x04\xa1\x6f\xbc\xfe\x7e\x43\xc4\x43\x24\x71\x02\x4e\xf3\x05\xd3\xb1\x31\xa0\x24\xc9\x08\xc3\xe4\x2a\xaf\x31\x43\xe8\xc4\x39\xa7\xaf\x2f\xcb\x08\x76\xd6\xf0\x29\x61\x0b\xb5\xdf\xc8\x4c\x32\x41\x91\x58\xb4\x93\x56\x30\xc7\xda\xea\xff\x2c\x4f\x4b\x32\x25\xc0\x68\x7f\xd7\x50\xbd\xb7\xab\x24\xee\xaf\x7f\xab\x8b\x93\xf0\x28\xd0\x16\x7b\xf9\x72\x50\x13\xe5\x90\x84\x27\xa6\xb9\xda\x40\xdd\x90\x5d\xf9\x0e\xd5\x81\x9f\x4e\x79\xb1\x77\xe6\x8e\x1b\x7e\x84\x4e\x19\x5b\x24\x5c\xa4\x38\x5d\xe6\xb3\xad\xfb\x93\x48\x08\xca\xc1\x37\xfb\xca\x45\x7b\x4f\xfc\x13\x31\xce\x75\x37\x86\x62\xf1\xc1\x72\xf2\x0f\x65\x01\xd3\xd7\x3e\xb1\x03\xf5\x1a\x13\x89\xe0\x1a\x77\x36\x6c\x93\xbc\x0e\xe0\xdb\x76\x84\xa4\x8a\xab\x8e\xeb\xe7\xa5\x4c\x87\xd7\x2d\xc3\xd4\x8d\x7a\x7c\xfc\x75\xd7\x4e\x9e\x1d\x75\xad\xfa\x44\xf2\x4c\xc6\xce\xe4\x0f\xcd\xea\xcb\x11\xc2\x2a\x51\x2c\xc1\xda\x82\x80\xe6\xa5\x58\x94\x87\xb2\xfa\x65\x48\x51\x11\x89\xca\x0c\x83\x5b\xe2\xdc\x1c\xdb\xfc\x8c\x4e\xc7\x43\x44\x2c\xec\x3c\xf1\x62\x52\x31\x58\x24\x4a\x50\x66\xf3\x76\xa3\x8e\x8c\x53\xcc\xab\x5c\x4e\xdc\x32\x25\x8d\xa4\x8c\x59\x86\x1f\xcf\xf2\xc7\xc5\xf0\x03\x4e\x50\xa8\x31\x24\xeb\x36\xaa\x30\x01\x50\xd8\x3b\xdb\x92\x34\x4b\xfb\x91\x75\xa2\x19\xe9\x9a\x99\xbb\xbb\xe5\x62\xf5\x34\x7b\xdc\xf8\xa3\x92\xba\x14\xa8\x4d\x92\x73\x7e\xc8\xff\x5c\xf3\x0a\x8a\xe6\x5b\x91\xa3\x39\x6e\x4f\x8c\x47\x24\x5a\x65\x46\x61\xb7\xe2\xc5\xc8\x84\x59\xa4\x41\x1c\xa3\xfe\xbb\xe0\x6a\x0f\xfd\x97\x2b\x0d\x34\xcb\x2c\xd6\x70\xf6\xce\xf3\x43\xbb\x06\xae\x9c\x3c\x81\x48\x09\x33\x5d\x34\x3d\x20\x56\x88\x94\x32\x8a\x72\xe3\x26\x59\xe9\x85\x5e\x66\x17\x19\xca\x96\xba\xcf\xa8\x38\x33\x0e\x05\x86\xfb\x31\x11\x8f\xd9\x91\x21\x89\xc0\x3b\x06\x6f\x16\xb3\xbb\x99\x6d\x8a\xb9\xe3\xa1\x46\xd4\x4c\x1b\x06\xe2\x98\x3e\xe0\x27\x0d\x33\x85\xa5\x97\xbc\xc8\x2d\x7e\x12\x9b\x9a\xfe\xb0\x48\x10\x36\xe7\xec\x08\x6c\xde\x36\xbc\x61\x4c\x08\x04\x78\x3f\xfd\x8e\x0f\xe7\x79\xf6\xb4\x74\x9f\x8f\x02\x85\x7b\xf8\xba\x3c\x1c\x6e\xf4\x74\xdc\xc8\xcc\x60\xc2\xd6\xe7\xe2\xc7\x3c\x57\xe8\xc3\x0d\xd7\x9c\x9f\xf1\x87\xa2\x20\xc0\x15\xb8\x52\x92\x9f\x56\x45\xcf\xda\x43\xa4\x71\x28\xd0\xaa\xe7\x5f\x50\x94\xc7\xa1\xf8\xd0\xe4\x0b\x92\xc6\x19\xc1\x79\x2f\xa0\xd9\xbd\xf7\xe6\x4b\x1a\x67\x46\xef\xe1\x0e\xde\x73\x09\xbd\x4d\x33\x8d\xa5\xb5\x18\x3e\x5f\x96\xfb\x3d\x22\xe6\xae\x57\xc0\x34\xd6\x51\x96\xf5\x7a\x88\x3f\x93\xbc\x17\x69\x42\x02\x63\x23\xf5\x06\xf2\x87\x8b\xce\x5e\x4d\x6d\xcc\x58\x7b\xfe\xfc\x32\x12\x4e\x31\xb3\xb0\x44\x9e\xaa\xdf\xa6\x4d\xd3\x20\x41\x59\x4f\xbb\xb8\xe1\x82\x3f\xe8\x0a\xa5\x69\x68\xc3\x66\x74\xb8\xb4\x2a\x3c\xee\x58\xc6\x31\xc6\xe5\xc7\x7e\x21\x23\xcd\x58\xa8\xad\x14\xea\x4c\xeb\xfc\x90\xf3\x1b\x52\x3f\x22\xcd\x38\x43\xbc\x0b\x42\x4f\x4f\xa5\x7c\xab\x7b\xd8\xd6\xd1\x85\x70\x6e\xb6\xeb\x1a\x1a\x7b\xf9\x5d\x1d\xf1\xba\xb9\x90\x72\x15\x21\x42\x24\xaf\xbf\x35\xf9\x21\x6f\x2e\x5f\xca\x83\x1a\xef\xb7\xa9\x60\x3a\x23\x2e\x2c\x83\xca\x39\x2e\xfc\xb4\xc3\x98\x0a\x29\xb0\xa2\x6e\x44\xc9\x36\xfc\x30\x7e\x5f\x05\x84\x98\x78\xdb\x72\x7f\xaf\x0f\x96\xca\x58\x60\xc3\x19\xc1\x70\x73\xab\xc7\xe1\x0e\xaa\x80\xaa\x4e\xba\x6e\x18\xae\xa4\xc0\x52\xe3\x3c\xf4\x71\x39\xc1\xf8\xad\xd3\x3c\x35\x26\x3a\xfc\x72\xe7\x2d\x2c\xfa\x01\x74\xaa\x85\x01\x9d\x2c\x9b\xb7\xaf\xdd\x72\x94\x05\x6d\xe0\x6d\x6a\xbf\x8e\xb4\x74\xa5\x4c\x3c\xfa\x77\x5a\xfe\xd2\x9d\x0f\x4c\xf7\x16\x8e\x79\xb3\xac\x65\x55\x7e\x98\x15\x6d\x04\x08\xcd\x08\x37\x19\x3c\x32\xad\xfa\xa2\x18\x22\x23\x5a\x21\x58\xef\x04\x95\x2e\xab\xe3\xf6\x0d\x9e\xf8\x3e\x97\xdb\x2a\x97\x3f\xdc\x18\xca\x52\x4c\x25\x65\x59\x55\x20\x1b\x23\x5e\xf7\x4b\x57\x6c\xc8\x68\x1a\x82\x03\xf4\xa3\x04\xc3\x92\x57\x87\x8b\x87\xd0\x0c\x7f\x34\x95\x0a\x89\xe9\xc6\x8d\xdf\x4f\xda\x41\x68\x9e\x51\x88\x58\x27\x94\xb3\x98\x6f\xa7\xe7\x69\x16\x4a\x2a\xa4\xeb\x5d\x15\x5d\xd8\xd9\xeb\x24\x67\x2c\x08\x52\xe2\xe1\x23\xed\xce\x31\xa8\x05\x66\x2c\x92\x8e\x3d\xfe\xd8\x1e\x1d\x7c\x36\xd1\x48\x32\x5a\x35\x7c\xd0\xdb\xcd\x98\x32\x2b\xaf\xd3\xa7\xbb\xd6\xc8\x15\x59\xa4\xe3\x08\x3c\x77\xbd\x42\x9e\xee\xfc\x72\x57\xca\xae\x92\x6c\x47\xc6\x21\x95\xbc\xc7\x54\x72\xa9\x51\x16\x4b\x82\x77\x16\x2d\x7b\xc0\xa8\xde\x2e\xca\x93\xdb\x62\xb2\x34\x88\x69\xda\xc9\xaf\xf7\x84\x88\x44\x96\x5a\x2f\x3f\x28\xda\xab\xf2\xb9\xa3\x3d\x9a\x05\x81\x74\xc6\x09\x90\xeb\xb2\x9a\x76\x0f\xf8\x9f\x61\x16\xed\x3e\x2c\x8d\x87\xdc\x1f\x65\x6e\x18\x1c\xe3\xd1\x83\xa8\x26\xcb\xac\xae\x7f\xe3\xfd\xb6\x9b\xb7\x76\x5b\xbd\x15\xe6\xfe\x74\x91\xcd\xb8\x4d\x07\x65\x59\xbc\x43\xd5\x98\x92\xca\xeb\xef\x8b\xd1\x3c\xe3\x9a\x50\x61\x65\xff\xae\x0b\x71\x99\x08\x62\xd4\x0c\x3e\xf2\xcf\xa9\x0a\x71\x26\x18\x43\x1a\x1c\x2a\x98\xdd\x81\xce\x0b\x50\xfd\x4b\xb5\xc3\x40\xa4\x58\xb8\x31\x26\x78\x9b\xd5\xcb\xf3\xee\xf9\xdb\xd3\xea\x79\xb6\x7d\x71\xcd\x91\x4c\x27\x12\x6b\x7e\x56\x94\xbc\xd7\x4e\xbb\x7a\xdd\x87\x13\x48\x2b\x19\x3a\x24\xad\xd1\x31\x37\x07\x78\x10\x19\x17\x25\x0c\xba\xea\x73\xd5\x6e\x69\x37\x48\x47\x3c\x90\x0a\xb3\xf0\x79\xde\xc8\x32\x2f\xfe\xe5\xce\x41\x42\xc3\xf3\x33\xbf\x0a\x89\x0c\xb7\xe0\x01\x9c\x24\x02\x51\x77\xcf\xf0\xd1\x94\xc5\xb6\x72\x9e\x3e\x82\x13\x6e\x18\xc7\xef\x39\x7c\x7c\xe5\xd5\x91\xff\x5a\x36\xed\x2c\x1f\x1a\x1b\x0e\x7f\x11\x55\x8a\xba\x5d\xf2\x90\xe3\x82\xe2\x4e\x17\xd2\x00\x03\xb6\xfb\xbb\xbe\xad\x94\xe0\x61\x96\xa4\xd4\x75\x6d\x8f\xed\x56\xec\x4b\x44\x6e\x04\x18\x6e\x15\x5e\xc8\x26\xdf\xbf\x9e\x0f\xd7\xfd\x74\x1e\xa5\x86\x0e\x2e\xbc\xdb\xdf\x65\x14\x11\xb8\x81\x82\x08\x6a\xdb\x87\x25\x12\x3b\x37\x9d\x80\xdf\x60\x0a\xf0\x38\x09\xf1\x29\xb5\xc9\xe3\x5d\xee\xa1\xc8\x3c\x96\x01\xf1\xd4\xb8\x86\x1f\xda\x88\xbc\x59\x43\x75\xc7\xaf\x3c\x3c\xed\x27\xd2\x50\x06\x36\x6d\x79\x5a\xce\x7a\x8d\x06\x9e\x26\x9c\xa9\x61\x8f\xde\xaa\xf5\xfa\x11\x29\xc3\xb7\xe2\x54\xe5\xef\x88\x55\x3d\x1f\x57\x8b\x97\xee\xa8\xf1\x3e\x57\x20\xce\x7b\xea\xff\x2a\x63\xbc\xdb\xd8\x04\x83\x36\x52\xf4\x47\x40\x30\x77\xbf\x0f\xc0\xab\x9b\xd6\x63\x82\x67\x24\x30\xbc\xbe\x53\x59\x35\x75\x78\xe7\x4e\x91\x51\x85\x18\xda\xdd\x48\x0e\xa4\x57\xa5\xe6\x19\xb0\xd4\x45\xc8\x58\x80\xe9\x12\x23\x3b\x42\x10\x1e\x87\x0e\x85\xb3\x6c\xde\x3e\x5f\x41\xe6\xf0\xee\xcb\x6a\x5c\x88\x24\x72\x29\xee\x06\x9a\x6f\x27\x7f\x00\x02\x22\xfa\xfe\x99\xa0\x0c\xec\x7e\xd3\xf0\x1f\xdd\x8c\x93\x04\x30\xd2\x79\x05\x8c\xba\xe6\xb0\x3f\xfb\x7b\xaa\xac\xf5\xed\x1b\x46\x0e\x85\x84\x43\xcf\x0c\xd8\x91\x05\xb8\xca\x34\x4a\x45\x7d\xe0\x0e\xf6\x72\x6e\xfc\xfd\x55\x02\x58\x5f\x3e\xbe\xb7\xbe\x70\x25\x15\xde\x7b\x63\x30\x72\x3e\xe8\xfc\x70\x38\xf6\x1c\xcb\xfe\x4d\xbb\x5c\x2d\xf9\xcf\x10\x43\xde\x3b\xe6\xce\xa6\x49\x60\x75\x20\xe1\xa5\x30\xb8\x98\xa1\xbb\x8a\xe0\x40\x09\x96\x3b\x90\x66\xa2\xca\xb3\x38\xc0\xaf\x25\x2a\x47\xfb\xc2\x0a\x87\x50\x63\x11\xc3\xb9\x2b\x98\x2e\xd4\x54\x05\x98\x03\x83\x2c\xed\x71\x02\x5e\x51\x8c\xd4\x9f\x28\x22\x81\xea\xbc\xbe\xea\x41\x87\x90\x43\x2a\x2d\x77\xf7\x19\x3e\x4c\xb6\x38\x7a\xff\x20\x93\x28\xc8\x2c\x0e\x5c\xfe\xb0\x0a\xa7\xee\x90\x35\x49\x5e\x3d\x2f\x5e\x97\x4f\xcb\xe7\x6d\x4f\x1e\x50\x70\x1d\x84\x99\x0d\x88\xff\x1e\x86\x8d\x6b\x66\xd4\xe3\xf9\xb9\xde\x57\xe5\xf9\x66\x83\xdd\x0d\x07\x89\xf2\x11\x1e\x18\x7b\x7f\x28\xf1\xd2\x07\xbb\xcc\xff\x0d\x0b\x23\x02\xcd\x31\xa4\x7c\x5d\x6e\x96\xaf\xbf\x2e\x77\xcb\xdf\x16\x5f\x66\xcf\x0f\xcb\xdd\xe6\xcb\xec\xd5\x5d\x9b\x20\x69\x18\x53\xab\x23\xc1\xd5\x65\x5b\xce\x81\x8f\x8a\xa5\x82\x0a\x12\x98\x8e\xbe\x31\x1d\x7f\xe6\x47\x58\x94\xd5\x15\x0b\x7c\xbc\x55\xf7\x74\x38\x7a\x6f\xa8\x08\x09\x0b\xfb\x38\xc3\xaf\x45\xbe\x7f\x6b\x7c\x97\x72\xf8\xd4\x44\x08\x91\x36\x14\x94\xcf\xe7\xd2\x5b\xc8\x0d\xa6\xa1\x60\x84\x06\xa1\x9b\x86\x65\x01\x86\xe4\xe4\x2e\x91\xb1\x04\x15\x39\x9f\x5f\xb6\x4d\x6f\x79\x13\x2c\x49\xbd\x33\xb0\x05\xf4\x0c\xbf\x9a\x29\x8d\xba\xd1\x06\x49\x30\xd5\xef\xb2\x03\xa3\x2c\x25\x91\x4b\xb2\xbe\xf3\xaa\xe2\x45\x73\x19\xcb\xcc\xf7\x67\xba\x68\xc3\x64\x0c\x6f\xdb\xad\x16\x8c\x43\xcf\x64\xec\xe2\x90\x0a\x22\x12\xc2\x38\xdd\x35\x0f\xd0\xcc\xcf\xf9\x41\xe5\xc5\xbe\xcf\x32\x19\x3d\xfe\x44\x6a\x5c\x84\x06\x56\x6f\x3f\x2b\x9a\xd9\xcf\x71\x42\x70\x81\xc2\x16\xbf\xe1\xf4\xd5\x9d\xb8\x8f\xbb\x77\x3c\x0c\x0d\x47\xfb\xe4\xa9\x86\x3f\xeb\x07\x8e\x7e\x1b\x8f\x79\xe2\x3c\x91\xf9\x1e\x71\x15\xb8\x9a\xdd\x62\x07\x0e\x63\x3f\xc1\x13\xa3\x45\xb6\xb3\xee\x70\x28\xcc\xe7\xe1\xea\xee\xdf\xab\x06\x66\x7b\x4f\x70\x07\x5a\xac\x17\xcb\xfb\xae\x20\x2f\x94\x4c\x50\x79\x8c\x4b\x59\x9d\xb1\x1b\x39\xc8\xa1\x05\xc4\x31\x4f\x06\x80\x29\x4e\xa2\x09\xc0\x94\x80\x38\xc1\x0d\x73\xd9\x06\xce\x55\x59\x40\x55\xfa\x43\x29\x47\xb6\xf4\xf2\xe1\xf7\xf5\x76\xbb\xdc\x6c\xfd\x01\x30\xec\x5a\x53\x94\x69\x97\xeb\x0e\xb8\x29\x74\x26\x0d\x27\xa0\x12\x46\xff\x70\x34\x43\xb5\x0a\x3c\x2a\x13\xd4\xc3\xdc\x9f\x55\x43\x86\x7d\x88\xdd\xf1\x82\xc0\xe8\x2f\x70\x38\xf9\x0c\x4d\x06\x41\xca\x6d\x10\x68\x68\x57\x8f\xf0\x0e\x23\xea\x9d\x0c\xa8\xc2\x1a\xdd\x43\x59\x3e\xe0\x0b\x5f\x68\xcf\x97\x92\x41\x42\x88\xd5\x93\x9b\xb5\x39\xfc\x01\x6a\xd4\x2c\xa8\xbb\xee\x94\x0c\x04\x43\x34\xc8\xcb\xf3\x72\x33\xdb\xbe\x6c\xbe\xac\xfa\xd1\x85\xa4\x54\x11\x2b\xf8\x67\xe8\x64\x83\x39\x22\x43\x66\xac\x5b\x9c\x59\x41\x03\x6e\x1b\x96\x0c\x08\x6e\xe0\xaa\xe2\x79\xd1\xd3\xa8\xba\x89\x1b\x95\x51\x14\x20\x61\xee\x88\x23\xfb\x79\x92\x8c\xa4\xd1\xeb\x75\xb2\x40\x2e\xfd\x5e\x43\x35\x9f\x6f\xed\x7d\x1b\x9d\x4d\x6a\x9c\x47\xc7\x36\x26\xea\x5f\x52\x1c\x48\x6c\xaa\x7c\xe4\xa3\x6a\x86\x8c\x15\x23\x86\x68\x7a\x97\x63\xbe\xb8\x81\xc3\xe1\xff\xc4\xb4\xb0\x33\xda\x09\xbe\x09\x19\x03\xc1\x57\xf0\x01\x6c\xa2\x8e\x89\xad\xb1\x92\x75\xef\xa9\x4c\x28\xc3\x5c\x9c\x1f\x1a\xa8\xe6\xbc\x28\xbc\x03\xf6\x35\x86\x5f\x26\xd4\xb8\xa0\xd7\x18\xe7\x61\x39\x3e\xf4\x0a\xeb\x42\x26\x69\xa6\x32\x07\xd3\xf9\x95\xb7\x09\xbb\x3b\x02\x46\xad\xc7\x09\x82\x21\xa7\x62\x42\x17\xc6\xbd\xc9\xfd\x2f\x4d\xb9\x31\xcb\xaf\xa1\xb9\x83\x86\xcb\xb7\xf6\x15\xc0\x38\x75\x78\x07\x33\x22\x68\x97\x5b\xfc\x54\x43\x68\xf4\xf0\xb3\x44\x21\x28\xfc\x16\xff\xe6\xc6\xc7\x78\xa2\x43\xbb\x3d\xec\x4e\x15\xec\x7e\x5c\xe4\x2e\x97\x65\x91\xff\x77\x87\x6b\xe3\xae\x38\x1f\x01\xf1\x78\x37\x26\x1d\x17\x1a\x61\xa1\x82\xd7\xf0\xad\x72\x71\xb0\xe4\x5a\x62\xac\x61\x08\x78\xf3\xcb\x82\x5f\x81\x2f\xec\x48\x41\xb5\x61\x11\x9f\x45\x87\x04\x90\x42\x06\xa8\x35\x64\xe8\x8e\x77\xab\x5f\x57\x77\x1e\x34\x27\x25\x31\x22\xd7\xdc\x15\x07\xb6\xe5\xe2\x8d\x37\x4f\x50\xd7\x7c\x0f\xf5\x23\xe8\x51\x54\x24\x25\xf5\x58\x5f\x23\xcf\x8c\x29\xeb\x7d\x59\x99\xea\xeb\xf0\x92\x24\x35\x8a\x35\xf8\xb0\x10\x5b\xfb\xed\x75\x65\xde\xde\xfe\x26\x22\x25\x0b\x13\xe9\xc5\xc0\xd6\xbc\x76\x38\xb6\x4e\x78\x5e\x48\x99\x64\x46\x19\xb9\xcd\x82\x2e\x27\x3f\x67\x65\x4a\x32\xef\x79\xde\xa6\x66\x86\x5d\x68\x65\xd0\xfc\x22\xa6\x42\x85\xe0\x92\xd9\x62\x36\x94\x7f\x9d\xdc\xa3\xa5\x8e\xe3\x84\x75\x58\xdf\xe3\xf9\x68\x8b\x85\xdf\x21\x1f\x5e\xa5\x22\x22\xc5\xfd\xc0\x38\x30\x70\x8f\x59\x57\x44\x07\x31\x6a\xe2\xbe\x3c\xbb\x00\x4a\xd1\x38\x8c\xc9\x88\x8b\xbb\xe6\x55\xd3\x95\xe5\x15\x95\x12\xe3\xc7\xe7\x72\xa8\x29\x33\x9c\x2f\x8a\x85\x2c\x13\x3d\x0e\x6a\xbb\xea\xfa\xaf\x66\x49\xa4\x4d\xf0\x6b\x25\xc4\xea\x1e\x45\x55\xb1\x24\x43\xaf\xef\x4d\x29\xa5\xb1\x3b\xea\x3f\x0e\xc5\xd2\x0c\xa9\x01\x66\x35\x5b\x0f\xb0\xda\x2a\x62\x9a\x3b\xbd\x08\x0f\x0c\x6a\x27\xe5\xe6\x83\x9f\x26\x55\x4f\x85\x8a\x20\xcd\x8c\x12\x83\x29\x81\xcf\xaa\x2a\x7f\xe7\x87\xfe\x6b\x3b\xba\xb8\x38\x61\x88\x4e\xdf\xa3\xbb\xd8\x65\x03\xef\x7e\xd9\x54\x09\x33\x79\x66\x05\xfb\x01\xae\x72\xf8\x04\x55\x22\x32\xbc\x05\xaf\xc2\xbb\xdb\x0b\x95\x48\x53\x73\x71\x2a\x04\x77\xb9\x9c\xa4\xb6\xaa\x04\x8c\xbd\xb0\xef\xdb\x18\xfe\xc5\x68\x54\x46\x28\xea\x52\xba\xa0\xe6\xeb\xcb\xcf\xcb\xf3\x2a\xa3\x09\xde\x09\xf4\x51\x9c\x9f\x2f\xcf\xe5\x07\x42\xdd\x6e\xdc\x86\x8c\xa5\x48\x54\x3b\xd7\xb0\x5c\xad\x13\xe2\xf2\x3a\x95\x25\x0c\xcf\x93\x9b\x86\xd7\xaf\x46\x75\xb6\xec\xe6\x5e\xc6\x05\x22\x28\x17\x16\x32\x55\x37\x3d\x82\xa7\xca\x20\x0e\x6d\xe7\xe2\x71\xd1\xfd\x91\x53\x04\x3a\x9f\x9b\xe8\xae\xf4\x82\x1e\x8a\x13\x8e\x48\x45\xac\x43\x21\x44\xfa\xa7\x2b\xe9\x20\x88\x52\x3c\xd5\x9c\x39\x10\xb4\x2c\x2d\x78\x71\x78\x95\x9c\xc7\xf8\xb0\x71\xa2\xee\xfa\x64\x6d\xc5\x41\xa0\x40\xe3\x9a\x9f\x3b\xf9\xe8\xa7\xf2\x86\x2b\xb4\x50\x82\xa6\x28\x6a\x64\xb3\x98\xcd\x20\x7b\x51\x22\x53\x56\x7d\xd7\xb8\xa8\xc1\x09\xbf\xcc\x30\x5b\x6e\x16\x1e\xed\x87\x65\x28\x9d\x8a\xf2\xea\xe8\xe1\xb4\x8b\xa6\x1a\x45\x42\x4a\x4a\x62\x4c\x20\x2d\xc0\xa6\x9d\x18\xf3\xcb\x80\xd0\x70\x4d\xdb\x6d\x93\x71\xa4\x61\x1f\x72\x0d\x4d\x7e\xb4\x74\x60\xff\x3c\x75\x22\x98\x76\x0f\x7c\x60\xd9\x21\x94\xe6\x1c\x3b\x30\xb3\xcd\x6a\x36\x5f\x6d\x37\x03\xe5\x99\xeb\x98\x5d\x69\x9d\x3a\x39\x12\x2c\x6a\xb4\x6f\x2f\x96\x8d\x06\x17\x0c\x01\xcb\x12\x5f\x3c\xfe\x83\xb7\x21\xfd\x02\x0e\x87\xbe\x64\xbf\x00\xa2\x22\x94\xe0\x10\xe7\xcb\xfc\x70\x46\xfc\xe9\x72\x3f\xed\xba\xe1\x20\x98\x40\xb9\xc4\x78\x12\x57\x6c\xe7\xac\x31\x6c\x7f\x00\x53\x8c\xd9\x7d\x7e\x5b\x9d\xdb\xe4\x7b\xbc\xb6\xf4\xa2\x02\x88\x42\x8a\xe0\xb1\x87\x43\x29\xf8\x01\x29\x49\xee\x44\x11\x33\x8d\xa1\x9e\x35\x74\x75\xd9\x96\xaf\x46\x66\x65\xda\xb8\x4f\x40\xa4\x8c\x54\xd3\x6f\x8a\xcb\xc1\x76\xe1\x8e\x43\x08\xc6\x07\xbc\x36\xde\x16\x3f\x9d\x3b\x10\x07\x31\x63\x56\x13\x40\xaa\xab\x15\x7d\xb8\x72\x41\x4c\x59\xd0\x61\x19\xbe\xd5\xa6\x5c\x6d\x8c\x4d\x0a\xf5\x6a\xc8\xfd\xd7\xbe\x12\xf8\x58\xae\xa9\x8c\xd7\x73\x0d\x62\xae\x31\xf0\x5c\x1c\xda\x33\xf5\x4d\x83\xdc\x00\x45\x11\x14\x0f\x9f\x79\xb3\xf6\x50\x1e\x48\x52\x8a\x8c\xdc\xef\x2f\xaf\x8f\x77\x4f\x2f\xf3\xd5\xe3\x6a\xfb\xbb\x3f\xd8\xce\xfb\x3e\x43\x4b\x1d\xf3\xe2\x3a\x43\x87\x44\x2b\x48\x3b\x2e\x6d\x87\x08\x83\x34\x00\x34\x71\x39\xf2\xea\xc7\xa2\x3c\x1a\x60\xb5\x4f\x10\x20\xcd\x34\xee\x5a\x6a\xd6\x46\xa7\xeb\xf3\xc1\x40\x26\x32\x77\x93\xb3\xd4\xb8\x5c\x2d\x5e\x7f\x5f\x6f\x5f\xe6\xab\xed\x72\xf1\xb2\x7a\xfe\x19\x40\x1d\x78\x10\x09\xab\x0c\xf3\x6d\x73\x37\x77\x0a\x9d\xed\x01\x20\x72\x68\x01\x6b\xe2\xfc\x69\x35\x07\xe0\x34\x63\xe8\xb0\xf5\xfb\x7c\x1b\xfe\x3d\x8d\x7b\x01\x3c\x66\xa4\xe3\xb0\xec\x8c\x96\x8e\xf4\x11\xcc\x68\xca\x09\xa2\x10\x5e\x6c\x33\x9c\x95\x2c\x11\x7a\x69\xa3\x13\xf7\xc3\x45\x68\x8c\x69\x7a\x3c\x0a\x13\xc1\x8f\xfa\x72\xa3\x09\x2a\x80\x3a\xbb\x2f\x54\x4a\x0a\xa9\x3f\x21\x68\xe3\x8f\xf7\x06\xf2\xc7\x7d\x59\x21\x6e\xa7\xb7\x13\xf6\x5f\x43\x49\x18\x82\xa2\x4c\xf5\xef\x9f\xe7\x72\x8c\x52\x03\x99\x41\x6c\x0a\x19\xba\x5d\xc9\xdc\x3a\x0f\x52\x53\xe3\xec\x66\xda\xd6\xed\x09\x0a\x18\x41\x62\x00\x68\x86\x48\xb8\x0a\x9a\x2a\x87\x77\xb8\x46\xc1\xe1\x10\x8b\xd8\xdd\xf0\x03\xaf\xae\xea\xdc\xa3\xeb\xd6\xc4\xc0\x33\xf6\x60\xc9\x4a\xab\xbb\xf9\xe5\x9a\x66\x01\x3a\x33\x2e\x7c\x35\x34\xf7\x79\x2d\xf9\xe1\x57\xe3\xc5\xf8\xd3\xae\x13\x68\x21\x32\x67\x24\x7c\xc5\x4b\xd1\x01\xa3\x10\xb9\x25\x8e\xab\xb1\x68\xdd\x70\x86\xe9\x40\x0a\x82\x1b\x40\xed\x9d\xa3\x4d\x40\xca\xd5\xbb\xbd\x8b\x9a\x68\x8a\x30\x46\x27\xdb\x3e\x13\xf9\x21\x6f\x72\xa8\x51\xf1\x60\xf8\xed\x94\x33\xc8\xac\x6e\x02\xcf\x8b\x7a\x9a\xdb\xa7\xc3\xd0\x88\xc2\xdc\x95\x7b\xac\xe1\xb9\x3f\xf3\xd0\xb6\xdb\x6f\xac\xce\x76\x1c\x0b\x62\xa7\x5f\xbe\x6c\xde\xfa\x38\x1c\xcd\x12\x85\x5a\xd7\xa2\x68\x2e\x9d\xf7\x87\x3b\x1a\x49\x8a\x01\x8e\x35\x08\xf9\x02\x55\x39\xfd\xea\xe9\x48\x45\x66\xea\xb8\xcc\xbf\xab\x3b\xe9\x38\x48\x85\xa3\x71\x9e\x2f\xe3\xfc\x44\x27\x54\xb8\xf0\xca\x78\x8e\xa0\x20\xbf\x3d\x98\x46\xa6\x61\x61\xa2\xdc\x63\x91\x9f\x8f\x3d\x03\x53\xa1\xd3\x38\x44\x5a\x43\xa1\x47\xad\x7b\x9d\x45\x60\x9c\x35\x9a\x8a\x37\xb0\xcf\xe5\x48\x38\x5f\xe8\x2c\x89\x22\x3b\x4d\xbf\xd9\x9a\xd0\xe4\xfc\xd4\x82\x28\x6c\xee\x2d\x57\x6b\x1a\xfc\xcd\x75\x45\x8b\x54\x3b\x74\xb9\xdd\x5d\xfb\xac\x35\x2d\x04\x60\xcf\x7e\xe7\x56\xea\x5d\xfe\x33\xcd\x07\xf7\x8e\xf7\x51\x83\x5a\xc6\x04\xf5\x6f\xb1\x84\xb9\x3e\x8c\x89\x86\x5a\x11\x83\x15\x39\x9b\x72\xdb\x64\x5f\x50\xab\x14\xb0\xcc\x62\xd0\x62\x68\x11\xdc\x66\xf3\xf8\xfa\x9d\xaf\xbc\x71\x84\x56\xdc\xd8\x07\xfd\xf7\x0c\xd5\xa5\x6b\x42\x8d\xbf\x5a\xa4\xd8\x37\x93\x8e\xcc\x87\x09\x67\x5e\xec\x0d\x2d\xc6\x8d\x92\x49\x10\xf4\x8a\xd4\x83\xd2\x68\xff\x65\x1e\xcd\x36\x4d\x38\xd6\x7f\x96\x2f\x9b\x81\xce\x8c\xd6\x5c\x82\x0d\x74\xe7\xe7\xcb\xa2\x9c\x5a\xc4\x65\x10\x84\x1c\xb3\x71\x83\x64\xfb\xbe\xda\x7e\xb9\x7b\x9d\x7d\x9f\x3d\xee\x96\xcf\x77\xbb\x3b\xdf\x44\x90\x41\xc0\x84\x94\x36\x62\xf8\x4b\xea\x84\x0c\x82\xd8\x74\x4d\x2c\x69\xbf\x3c\x28\xdf\x8c\x9d\x34\x0c\x99\x5c\x0e\x65\x10\x70\x85\xf3\x72\xf3\x56\x7e\xd8\x2a\xee\xe0\x99\xc9\x80\x84\x21\x56\x75\x74\x7e\x38\xb8\xf9\x2c\x03\x12\x0b\xc4\xd5\x20\x73\xc3\x96\xac\xd6\xfc\x72\xdd\x60\x77\xe3\x33\x66\xa8\xf5\xe8\xd2\x06\xf5\x00\xb6\x2d\x03\x1a\x51\xe7\xb2\xf2\x52\x1c\xf2\x02\xba\x46\x64\x7b\x10\xb0\x7a\xcf\x9d\xbc\x19\x22\x92\x9b\xb2\x9a\xa3\x71\x8e\x7c\x83\x49\x19\x38\x19\xd0\x34\x96\x1d\x7d\xf8\xf1\x65\x3b\x7a\x36\x61\x10\x61\x4c\xb7\xf4\x0e\x31\xf6\x00\xa3\x0a\x93\x8a\x79\xfe\x4f\x4c\x7f\xb0\x18\xfc\xb3\x8e\x8e\x0c\x18\x33\xe5\xf7\xaa\x3c\x17\x6a\xfb\x56\xc1\xe0\x12\x18\x64\xb8\x4e\x23\x05\xfd\xb7\x57\xb3\x5d\xf6\xa6\xa7\x0c\x62\xaa\xe2\xde\xa2\x76\x97\x6b\x9d\xcb\xb3\x37\x15\x96\x41\xac\x52\x6f\xbd\xce\x1b\xc4\x56\x94\xe7\xa6\xe7\xce\x2e\x83\xc4\x4a\xa8\x9b\xde\xe1\xe9\xd1\xa9\xb7\xc9\x20\xc9\x62\x4c\x8d\xe1\x98\x23\x86\xf5\x6f\x2a\x2e\xfc\xed\x08\xb3\xfd\x86\xcc\x0a\x67\x18\xec\xa0\x8f\x1a\xdc\x71\x6e\x2a\xd5\x9e\xbe\x6b\x5e\xd5\xd7\x31\x18\x12\x29\xb2\x4e\x0d\x6a\x77\x7a\x2f\x76\x98\x34\x38\x14\xeb\x68\x72\xf2\x94\x24\xde\xc5\xf8\x65\xe1\x63\x36\x77\x38\x33\x5e\x65\x9d\x62\x45\xdf\xc8\x62\x32\x32\x92\x81\x88\x08\x26\xd2\xcd\xdb\xc0\xac\xc7\x1d\xe5\x04\xdb\xc7\xf3\xbc\x99\x97\x75\x27\x19\x23\x03\x29\x8d\x9e\xc1\x76\xf6\x5b\x6f\xdb\x90\x01\xc4\x04\xb5\x23\xe6\x79\xcf\xca\x63\x0a\x94\xfc\x7f\x69\xdf\xb5\xa7\x15\xd2\xca\x1b\x19\x8b\x8a\x2e\x8b\x96\x81\x4e\xa9\xb0\xb5\xdf\x95\x5d\x18\x46\xd7\xa1\x33\x1e\x82\xab\xae\x57\xbc\x50\x0f\x50\x40\x9d\xd7\x38\x29\xfd\x82\xdc\x7d\x9d\x96\x21\x6e\xba\xba\x02\x50\xe5\x51\xe2\x1e\xd9\xfc\x85\xad\x92\x0c\x34\x18\xe1\xca\x65\x1b\x9e\xf7\x5e\x31\x12\x04\x52\xda\xf8\xca\x30\x60\xef\xf2\xda\xc0\x99\x07\xdf\x4b\x02\x6a\xaa\x99\x5c\xa9\xf5\x1b\x42\x3b\x8b\x72\x2c\xb2\x7a\x2d\xb9\x9a\xfa\x4f\x1b\x0c\x87\x45\x45\x4e\x77\xb9\xfc\xd8\x14\x51\xcd\xdc\x28\x44\xd4\x4b\xc4\x30\x29\xff\x83\xb3\x54\x86\x6e\x97\xd9\x58\xca\xf8\x88\x49\xda\x8e\xe2\xbd\x4a\xf7\xa8\x94\x3e\x39\xdf\x48\x20\x28\xa4\x23\x69\xc1\x7a\x10\x60\x48\x12\x48\xb3\xbb\x5a\xcc\x15\xa8\x1d\xfe\x8c\xdd\x07\xe4\x7e\x08\xc8\xd4\xb0\x53\x11\x36\x72\x67\x10\x3a\xfe\xa8\x86\xc0\x6a\xb4\x96\xfa\x45\x7f\x2f\xab\x1f\xa3\x1b\x4d\x79\x80\x3f\xe3\xae\x2a\x0b\xd8\xbc\x95\xfe\x92\xa8\x54\xcc\x96\x1d\x2d\x75\x72\x30\x93\x08\xd5\x01\x86\x75\x57\xc2\xae\x1d\xf3\x5d\x92\x90\x18\x6b\x34\x71\xae\x0a\xaf\xab\x22\x49\x18\x45\xe8\x0d\xb7\x2f\xcb\x69\xfa\x8a\x24\x61\x96\xa0\xe2\x45\x9b\xcc\x9f\x4f\x83\x28\x5d\x92\x90\x33\xe3\xef\xd7\xe6\x2a\x0e\x0f\xef\x8e\xa9\x20\xf6\xce\x4b\xa6\x3b\x36\x98\x81\x21\x50\x84\x85\x43\xa1\x76\xab\xc5\x8b\xbf\xd7\x8c\x6a\x04\x71\x0d\x7c\x76\xaf\xb0\xbe\xa3\x87\xc8\x62\x81\xab\xf3\x0e\x3e\xf3\xba\x59\x60\x11\x73\x74\x21\x2c\x15\x46\x32\x89\x1f\xe4\xc2\x79\x36\xf6\x1b\x89\x92\x44\xcc\x28\x31\x23\xe4\xe8\xd0\x66\xa1\x5e\x53\x56\x92\x98\xc5\x08\xc0\x52\x20\xf3\x36\xd0\x78\xd1\xa3\x9b\x11\x27\x84\x5b\x86\xca\x86\x1f\x0d\x3b\xd7\x7a\x56\xdd\xaa\x42\x49\x12\x43\x88\x66\xf4\xbb\x1d\x7c\x82\x3c\x37\x80\x70\x93\x55\x71\x3a\x37\xab\x1a\xab\x8c\xbb\x9d\xff\x38\xeb\x3e\x9f\xfe\x67\x7a\x23\x24\x89\xce\x50\xa2\xdf\x2a\xf9\xff\x84\x8a\x22\x49\xc6\xb3\x48\x5a\xe3\x91\x7d\x0f\x45\x6c\x0f\x8b\xd0\x38\x18\xe3\x1a\xf1\xae\x26\x6c\x4a\xdb\x31\x92\x7b\xa9\xd7\x42\xe7\xfb\x36\xbc\xfe\x65\x22\x39\x93\x44\x64\xc6\xc7\x64\x0b\x75\x33\x7f\x9e\xff\x65\x5c\xdd\x7e\x82\x61\x81\xe1\x84\x72\xeb\x0f\xb6\x03\xe8\x1e\x88\x90\x31\xaa\xf5\x70\xa5\x36\x67\xd1\xee\x3d\xf5\x98\x16\x22\x89\xa2\x14\xf3\xa6\x63\xee\xca\xff\xc3\x46\xed\x68\x1e\xe9\x84\x70\xeb\x1d\x8e\xd9\xde\xfc\x5c\x15\x3d\x09\x09\x49\x83\x58\x22\xae\xf6\xbe\x8d\x30\xf0\x7c\xc6\x6a\xfe\xe7\x8b\x0c\x0d\x62\x8d\xe5\x0a\x9d\x17\x58\x3c\x76\x59\x99\xa4\x41\x12\x31\x03\x25\x2a\x9a\xda\x99\xbb\x5c\x81\x05\x07\x17\x45\x03\xae\x50\x7f\x08\x35\xf4\xf0\x6c\x03\x6e\xe1\xed\xe9\x46\x03\x49\xb0\xb8\xd0\x21\xa4\xd6\xe7\xd3\xe9\x82\x28\xea\x63\xcf\xeb\xaa\xfb\x00\x18\x5b\xf2\xe6\x03\x8a\xe6\xb2\x7d\xcb\xab\x66\xa0\x6b\x24\x29\x25\xc6\x09\xf8\x54\x81\xcc\xcb\x0f\xe0\xdd\x81\x14\xeb\x53\xed\x9a\x63\x5f\xe3\xa7\x12\x8a\x2b\x01\x31\x37\x9c\x0a\x47\xe0\x41\x9a\xb4\x3f\x0d\xe7\xdc\xc6\xa6\x0f\xfc\x08\x1e\xce\x70\xe0\xfb\xeb\xca\xa4\xa4\x21\x35\xc0\x64\x1f\xad\xaa\x6d\x39\xbe\x31\x6e\x68\x06\x88\x23\xb3\x72\x70\x0d\x1c\xdb\x95\xdb\x19\x67\x4f\x6e\xfb\x34\x14\x4a\x5b\xf6\x56\x79\x78\x1f\x8a\xa4\x48\xca\xa8\xc4\xed\x07\x13\x26\x32\xbd\x33\x8f\x4e\xc8\x42\xed\x9c\x33\xcc\x62\x51\xea\x0e\x8d\x2c\x69\x44\xa4\xe8\xa9\x4b\x23\x90\xed\x4a\xb1\xe4\x56\xc4\xd2\xbb\x2d\x51\xa8\x51\x8d\xae\xdc\x15\xe5\x7b\xb9\x3b\x55\xa5\x38\xc0\x71\x58\xcd\x91\x34\x82\x0c\x7f\xcc\x0e\x15\x16\xf3\xe2\x0f\xfe\xcb\x44\x41\x59\xd2\x98\x44\x51\x6c\x8b\xe3\xf7\xc6\xc2\x16\xfb\x04\x0e\x6a\x2f\x69\xcc\x03\xec\x7e\xaf\xec\x3e\xee\xfe\x9e\x50\x8d\xc9\xe2\xb7\x02\x93\xd0\x11\x62\x42\xd2\x44\x08\x84\x13\x99\x22\xc0\xa2\x3c\x9e\x78\xd5\x7d\x58\x2a\x8c\x01\xf0\x65\xee\x60\x20\xc3\x6b\x48\x65\x02\x41\x27\x6c\xd0\x3e\xd2\xfe\x0d\xcd\xc2\x00\xa7\x19\x4a\x1b\xbe\x21\x67\xa1\x1e\xfd\x06\x9e\x26\x88\x5f\x38\x79\x58\xcd\xb6\x7c\x05\x13\x59\x8f\x86\x8a\x80\xe2\xae\x3f\x7f\xf9\x6d\xd3\xdf\xdd\xa8\x20\x84\x64\xae\x59\x78\xea\xfe\x9a\x62\x0d\xc8\x9a\x92\x0f\xf2\x9a\xf1\xc3\x1b\x7d\x91\x32\x3d\xca\x07\x9e\xa3\x66\x0a\x9d\x6a\x49\x4b\x2a\x69\x10\x44\xce\x46\xa2\x1f\x92\x52\x99\x2a\x0c\x49\x9d\x0c\xc3\xb6\xfc\x59\xf9\x4b\x52\x29\x59\xac\xcc\x8a\xa5\x5e\xa1\x7e\xe6\xc7\x1b\x70\xe3\x76\x28\xc7\x4e\xef\x43\x7d\xd8\x34\xbc\x50\xbc\x52\x7f\xaf\x72\x22\xa9\x0a\x00\x7b\x3c\x5f\xbf\x3d\xcf\xea\xc1\x0d\x84\x84\x07\x41\xcf\x65\xa2\x5d\x89\xef\x01\x85\x04\xfe\x62\xad\x85\x84\x63\x8f\xf0\x9f\xe7\xf6\x2e\x97\xc5\xa6\x29\xab\xd1\xd6\x46\x21\x35\xba\x05\xcb\xc5\x6c\xed\xbf\x51\x10\x54\xc4\x78\x2b\x8b\xf6\x83\xf5\x7d\x59\x35\x82\xcb\x1f\x67\xff\xf8\x00\x32\x8c\xe2\xac\x82\x27\xb2\x0f\xc6\x80\x63\x19\x06\x01\x53\x4e\x58\xed\x74\x18\xc0\x20\x65\x18\x08\xc0\x80\x5c\xf2\xc3\xe1\x05\x11\xfe\xd3\xcb\x61\x48\x98\xc2\x26\xe0\xd3\xea\x79\xf9\xba\xdb\x6c\x67\x5f\x5d\xa9\x22\x24\xda\xe4\x7a\xe7\xe2\x64\x30\x3d\xee\x00\x0d\x22\xd2\x29\x09\x5a\x70\xfb\xf0\xb4\x94\xc5\x81\xf1\xa5\x9a\x7c\x96\x21\x4d\xc1\x59\xcf\x3c\x5d\x66\x52\xc2\xa9\xb9\x49\x9e\x92\x61\x24\x8c\xa4\x29\x58\xd5\x90\xf1\xab\x14\x46\x9a\x21\xbb\x73\x77\x2c\x95\xdd\x03\x5c\xe9\x61\x4a\xd1\x5a\x86\x31\x09\xb0\xb0\xb1\x06\xec\x93\x77\xf8\x52\x19\xc6\x59\x40\x0c\x25\x7a\x86\xe0\xe5\xe1\xda\x1b\xc6\x3c\x10\xa2\x8b\xd1\x7f\x31\x78\x96\xfe\xbd\x8f\x05\xc1\x1a\xc1\xa9\x7f\x52\x20\xe6\xa4\xce\xf1\xf5\x7a\x27\x1f\x7e\x4d\xc2\x09\x42\x27\x6a\x7e\xd9\x94\x47\x68\xde\x86\x80\x25\x19\x66\x6d\xf6\xe7\x9a\x6d\xcb\xff\x9e\xf3\x77\x7e\x80\xee\x39\x8c\xae\x37\x13\xc6\xf4\xa8\x06\x2b\x44\xd1\x01\x2a\xdc\x4f\xcc\x24\xe1\xa2\x9f\x7c\x78\x66\x49\x0f\x5d\x2c\xc3\x0c\x8c\x7b\x03\x57\xca\x48\x7c\xdf\x5a\x58\x7a\xf6\x95\x83\x97\x31\xe4\x4c\xe2\xb3\xc7\xbe\xf3\xab\x67\x03\xc9\x50\xa6\x36\xb7\x39\x37\x5f\xc0\x2f\xc7\xa1\x54\x29\x12\x62\xda\xa9\x6c\xe5\x63\xfa\x7d\xd2\x76\x00\xc8\xbe\x6a\xf7\x3d\xd8\x0d\xcc\x1e\x57\x81\x95\xf7\x87\x63\x39\x8e\x3e\x43\x15\xf3\x44\xf9\xce\x82\x33\x81\x99\x5e\xad\x42\x25\x35\x66\x29\xa6\x01\x63\xdd\x53\x6b\x14\xcb\xb9\x71\xe3\x21\x4c\x7b\x66\x99\x4f\x79\x61\xd8\xb3\xa3\x41\x8c\xc6\xd2\xb9\x2e\xbc\xba\x2e\x88\xb5\xed\x1f\xcf\x75\x9d\x25\xb1\x4d\x68\xee\x0c\x25\xba\xf6\x57\xaa\x35\xf7\x6b\x02\x26\x71\xed\x1a\xbe\x52\xb5\x63\x7f\x0f\xbe\x96\x05\x21\xcd\xc0\x27\xe7\x88\xbf\xb9\x85\xdc\x90\x2c\x48\x0d\xfa\xf9\x01\x0a\x78\x5f\x7e\xca\xb7\xbf\x62\xfa\x4f\x17\x34\x58\xa0\x63\xed\x80\x03\x23\xe5\x34\xc9\x48\x1c\x22\xe2\x1f\x3e\x4d\xf9\xc6\x24\x17\x0a\x4b\x9d\x7d\x5f\x5e\xc9\x48\x62\xa2\x72\x93\x69\x16\xa3\x08\x83\xd1\x84\x48\xef\x73\xe4\xea\x45\x46\x91\x76\x9e\x3b\xb5\x6b\xc9\xa8\x0a\x92\x6c\xe8\x8d\x37\x3a\x51\x18\x10\xac\xb9\x63\x0c\xbc\x34\xb9\xd3\x75\xe0\xeb\x06\x47\x21\xf6\xc9\xea\xb7\xf2\x63\xd7\xbc\xc1\xae\xe0\x47\xd8\x95\x7a\xf7\x82\xea\x06\xbb\x3b\xf7\xbd\xa1\x96\xd8\x86\x6e\x07\x36\x3d\x5a\xbe\x3d\xcc\x78\x8a\x30\x8e\x21\xa8\x71\xd3\x94\xd8\xa9\xeb\x78\x88\x92\x31\x19\x82\x4d\x4e\x66\xea\x7d\x54\x77\xb2\x63\xa2\x20\x41\x41\x0e\xe5\xc4\x3a\xc7\x4f\xee\x3a\x80\x67\x51\x9a\x20\x66\x64\xd7\xbe\xe6\x16\xb1\x7f\xeb\x4d\xb7\x1f\x89\xc3\x10\x11\x21\xbb\x0a\xde\x81\x1f\x2c\x19\x70\x78\x61\x71\x16\x61\x7d\xe0\x15\xf2\xbb\xb2\xcd\x06\xfa\x7b\x31\x4b\xc2\x04\x57\x71\x07\x55\xbf\xff\xf6\xec\xef\x58\xc2\x8c\x16\xaa\x2f\xfc\xfb\x92\x0d\x4b\xa2\x38\x89\xfd\x43\x34\xdc\xc7\xa9\xbe\x9d\x64\x09\x98\xe9\x85\xf2\x61\x65\x65\x9d\xf5\x5c\x41\xdc\x0f\xe2\xca\x3b\xd7\x7a\x81\xbb\x2b\x21\x7f\xc9\x52\xa2\x52\xd1\x67\x8b\x7d\x87\x7c\x7a\xbb\x61\x19\x25\x34\x73\x5c\x13\x04\x74\xe1\xeb\xe9\x2f\x21\x8b\xe3\x80\x77\xc1\xe4\xca\x16\xfb\x6a\x8f\xbf\x73\xe3\x92\x14\x6c\x75\xd8\xda\x2f\xff\x0e\xbc\x6a\x4f\xf8\xd4\xcd\x93\x05\x3f\x8d\x26\x71\xa6\x32\xc3\x0e\xb5\x40\x6e\x77\x3a\x1e\x1b\x86\x3d\xfe\x2c\xe3\x30\xd7\xa7\xaa\x49\x26\x98\x44\x33\x03\x57\x59\x5d\x57\xb0\x41\xef\x84\x2f\xbc\xc6\x1d\xe9\xef\x00\xbd\x25\x13\x5c\x41\x5f\x2a\xc4\x18\xc5\x94\xa3\xfb\x29\xb4\xb1\x2e\x16\xe7\x4e\x30\x5f\x32\x99\x69\xac\xef\x7c\xf7\x01\xe5\x98\x8a\x2d\x99\x0a\x3d\xfa\xcb\xc8\xe0\x8d\xb5\x65\x9e\xcb\xcd\x5b\xf9\x51\x63\xf2\x5e\xfa\xbb\x09\xc4\xd4\xc2\xda\x4d\x11\xa1\x42\x0e\xb8\x77\x6f\x9c\x03\x6f\xac\x84\x9a\x19\x8a\x5c\x53\x5d\xb0\x50\xb0\x1c\xaf\xe7\x4c\x0b\x62\x91\x83\x47\x2c\x16\x3c\xf4\xfc\x8b\x64\x14\xd0\x00\x2c\x7a\xd2\xe3\xbb\xcc\x7e\x35\x39\x79\xa2\x40\x86\x51\xdc\xdb\xde\xe6\x65\xe1\x15\x6d\xdb\xa3\x46\xcd\x38\x37\xb3\x79\xeb\x65\x96\x30\xeb\xb1\x83\x08\xe1\x28\x95\xf8\x52\x9d\xde\x78\xf1\x9d\x1f\x40\xf3\xaa\x6f\x44\x2c\x23\x1a\x30\xd5\x05\x75\x18\x23\x8c\x9f\x50\x44\x05\x43\x67\xfe\x79\xf9\x99\xf7\x6a\xe2\x11\x15\x02\x91\xf1\x18\x78\x0d\x54\x21\xdd\x00\x49\x5d\x3a\x0b\x0d\xb2\xd5\xb6\xa5\xe2\x17\x7f\x18\x22\x94\x33\xb0\xd6\x52\x7d\xc7\x04\x19\x85\x60\x92\x5d\x24\x8c\xf3\xba\xc4\x3c\xef\x2e\xd7\xfa\x76\xfd\x21\x62\x61\x80\xfd\xae\x55\x51\x9f\xb5\xce\x65\x0e\x85\x65\xb0\xfe\x74\xa2\x46\x11\x4d\x71\x3f\xc0\x07\x61\xd4\xef\xea\xb4\x1f\x76\x45\x11\xd5\xdc\xd6\xee\x9e\xa0\xe1\x8a\x37\xfc\x5b\x3d\x5e\xe7\xa2\x28\x4a\xdc\x23\xfe\xfa\xfd\xcb\x7d\x59\x3d\xf0\x51\xfe\x18\xc5\xc4\x98\x24\x1a\x5b\x22\xdb\xf3\x77\xfa\x50\xe5\xf8\x84\x31\x37\xe8\xcc\x53\x95\x3b\x3e\xed\xa6\x5b\xb3\xa2\xd4\x1a\x47\xd9\x1b\x78\x97\x4b\x98\xc3\x55\x2c\xf8\x3f\xc3\x45\x71\xb8\x38\x46\x59\x10\xa3\xf5\x4f\x1b\x6e\xbe\xda\xee\xa9\x3b\x7f\x96\x19\x2e\xa6\x69\xd2\x60\xdb\xd9\x1d\xe2\x29\x47\x23\xc5\xc7\x72\x3f\xcf\x6f\xd6\xa7\x6e\xdc\x6f\x91\x39\x4b\x62\xe4\x72\xd9\x44\xfb\xe7\xcf\x48\x82\x11\xe2\x7d\xfe\xcd\x8a\xb5\x77\xf3\x50\xc5\xd4\xd1\xa2\xd1\x08\xcf\xff\x5d\x66\xdc\xd4\xae\x05\xb7\x15\x71\x32\x80\xd3\x77\x67\x57\xda\xe8\xcf\xf6\xe4\x09\x96\x9f\xa7\x95\xd5\x78\x30\x04\xa1\x41\xaa\x15\x41\xc0\xa5\xfd\xc4\x43\x55\x7e\xe4\xc5\xfe\x89\x7f\x0e\xc9\x98\x6e\x24\x0d\x90\x8d\xd1\x6e\x90\x95\x93\xa8\xbe\x1a\x93\xa0\x6a\xee\xf1\x89\x7f\x62\x7f\x69\xe1\x35\x74\x64\x04\x11\xc3\xa8\xe6\x8d\xd7\xf3\xb2\x79\x9b\x35\xb6\xb8\x76\xe5\xb8\x32\x7a\xb4\x3a\x49\x8d\xde\x1d\xb3\x1c\x03\xff\x77\x19\x59\x6d\xb8\xd9\xe4\x96\x38\xf8\x6d\x71\xa0\x38\x52\x35\xf2\xe3\xc9\x74\xf4\x7b\xf0\x03\x19\x07\x9a\x62\x17\xdf\xd8\x4b\x5f\xbf\x14\x31\xa1\x04\x31\x42\x05\x7c\x18\x2a\x2d\x54\xef\xb9\x84\x71\x62\x1b\x93\x90\x63\x75\xc8\xd0\xf8\xad\x9c\x85\xba\xd1\x38\x88\x49\x42\x93\xac\xd7\xf0\x07\x35\x3b\xf9\x00\x2f\x26\x32\x8d\xc2\x61\x6c\x70\x2d\xb1\x28\x63\xa2\x2c\xd9\x1d\x17\xbf\x76\xa5\xc8\x8b\xbd\x11\xde\x9b\x9c\x84\x31\xd1\x99\xb0\x34\x69\x6c\xa5\x59\xe5\x82\xe1\x20\x4a\xcd\xe3\x32\x8d\x6c\x74\x23\x1e\xfd\x78\x4a\xbd\xbd\xbc\x0d\x86\xc7\x67\x90\x6e\x63\x5b\xb5\x2f\x3c\xfe\xac\x89\x7a\x56\x4c\xb3\xc4\x88\x32\xb6\x1b\x84\xa1\xf1\x8c\xd6\xc4\x38\x64\x14\x6b\xc3\x0b\x5e\xf0\xea\xf2\x6b\xec\x6e\x11\x13\x22\xa1\x83\x98\xa2\x17\x60\xc6\x51\x6a\x40\xaf\x7c\x5a\x52\xc3\x8d\xca\x04\x72\x7c\xac\xe0\xf6\x17\x43\x12\x1d\xbd\xc7\xfe\x97\xc4\x91\x4e\xed\x55\x0d\x17\xe5\x2e\x13\x88\x63\xa1\x5c\x9a\xf9\x1d\xf8\x69\x5c\x70\x8f\x13\x1e\x29\xe1\xfb\x0f\xfc\xf0\xda\x5b\x93\xe2\x84\x83\xf1\x51\x7a\x5d\xee\x16\x2f\x2b\x2f\x84\xbf\x7c\xdd\x79\xe6\xb2\x8c\x13\xe5\xad\xa7\xcc\x33\xec\xe9\x6a\x8f\x1e\x77\xa2\x13\x04\xf1\x0e\xb4\xce\xf6\x46\x45\x6a\xb2\x64\x11\xa7\x59\x80\xc1\xa1\x0b\x9e\x17\xbc\xe1\x87\xd2\xd5\x03\xe2\x2c\x8c\xa3\xc4\x1b\xc8\xaf\xaf\x44\xc9\x65\x9c\xa9\xc8\xec\xc7\xd6\x55\xd5\xf0\x83\x27\x23\x84\x98\x07\x14\x39\x9e\xed\xef\xa9\x31\x2b\xf7\x5b\x7f\xcc\x63\x40\x10\xb6\x38\x94\xff\x3d\x03\xaf\x76\xc6\xf6\xa1\xf1\x37\x8b\x43\x18\x45\xdd\x46\xe4\xeb\xd9\xe7\xeb\x37\x58\x70\x8d\x99\xbb\xa9\x64\x1b\xe0\xaa\x19\x70\x3f\xde\xb1\x62\x21\xb9\x62\xa3\x5b\xf6\x52\xe5\xfb\x1b\xde\x9d\x32\x16\x2a\x33\x2e\x9b\x0e\x9a\xd9\x99\x5f\x1b\x64\xf2\x68\xbc\x4c\x4d\x11\x79\x7e\xbe\x8c\xbe\x5a\x72\x85\x42\xb2\x75\x53\x56\x60\x2a\xbc\xcf\x48\xa2\xe8\xa7\x45\xb1\x84\x10\xed\x9e\x5f\xef\xb6\xee\x56\x40\x00\xc2\x2a\x4e\x6d\x24\x14\xbc\xca\xcb\x1a\x2d\x22\x47\x9a\x29\x83\xf3\x80\xa0\xa8\xb6\xc4\x9b\x83\x3f\x8f\x48\xb0\x97\xe0\x8a\xa0\x98\xb9\xd9\x83\x49\x90\x68\xe7\x6b\x8b\x9a\xcc\x13\xe7\x4c\x08\x83\xcc\x43\xf3\xa1\x5a\x73\xf9\xa3\x5f\x65\x4d\x08\x07\x0c\x95\x97\xcb\x7f\xbd\xf4\xa3\xb8\x84\xd8\x52\xc8\xbd\xe9\x6a\xa2\xcf\xbb\x3d\x44\x05\x41\x0e\x58\x6e\x84\x54\xda\x07\x68\x16\x14\x17\x59\x0f\x61\x99\x32\xa1\x0a\x70\xf1\x99\xbf\x3c\x7f\xdb\xb4\x2f\xce\xee\xf5\xe5\xdb\xf3\x5d\xe8\x4e\xc8\xe2\x00\x67\x68\x3b\x51\x1c\xda\xdb\x1d\x8b\xa8\x8e\xad\xc1\xca\x03\x14\x41\xbf\x82\x94\x44\x29\x13\x26\x37\x47\x31\x97\x95\x85\x92\xd4\xfe\xb8\xd2\x66\x22\xbc\x9d\x2b\xff\xeb\x63\xc9\x51\x27\xe2\xc4\x73\xf5\xe2\x83\xc3\x24\x09\x68\x6c\x32\xe5\x76\xee\xf7\xd8\x68\x32\x49\x48\x88\x13\x10\xbf\x7b\x51\x7e\x0c\x27\x49\x92\x44\x29\xed\x38\x03\x5b\xe0\xc7\x45\xd9\x93\x2f\x76\x8b\x55\x92\xea\x0c\xbc\x62\x25\x46\x29\x7e\x97\x74\xdf\x94\xc5\x09\xd2\xdf\x17\x0e\xc1\x0b\x77\x70\x70\x80\x43\x99\x70\x9a\x22\xe9\xef\xcb\x79\x5f\xcf\x2f\x7d\xcf\x71\x99\x70\x88\xb1\x10\x00\xcd\xdb\x5d\xfe\x5e\xbf\x7c\xf4\x92\x2a\x3b\x44\x04\x34\x35\xd5\xad\xa3\x31\x7a\x5d\x60\xbe\xd9\x2b\xdd\x25\x22\x8c\x74\xea\xc2\x6b\xa3\x07\xa6\xc7\x65\xf7\xe1\xb3\x15\x49\x66\xa9\xe6\xf5\x5b\x7b\x3b\x47\x47\x33\x89\x6a\xc9\xf3\xd9\x66\xb9\x5b\xbf\x6c\xdc\xf7\x48\x16\xa2\x1f\xcd\x91\x7f\xe6\xc7\xf3\x71\x7e\xbe\xcc\x79\x37\xb1\x25\x33\xd6\x34\x6e\x7a\x7d\x85\xcb\xb0\x76\x9a\xc8\x8c\x73\x36\xea\xe3\x6f\x9a\xab\x8e\x70\x22\x85\x40\x60\xd6\xce\xf8\x5f\x4c\x42\x58\x65\xa2\x62\x46\x2d\xce\x76\xfd\xeb\x7a\xd9\xae\x6a\x05\xfa\x64\x8c\xae\x46\x87\x0a\xeb\x1f\x6f\xbc\x91\x6f\x4f\x65\xd5\xe4\x23\xdd\x25\x99\xe8\x44\xc7\x36\x4c\x78\xa8\x78\xd1\x00\xf8\x87\xab\x21\xc0\xd0\x7a\xfd\xed\x75\xf1\xa5\xbd\x1f\x56\x64\xb4\xab\xe8\xa7\x41\x68\x04\x95\xf9\x81\x57\x47\x74\x8d\x1b\x25\x84\xed\x08\xe4\xba\xc3\xf1\x74\xfd\xed\x69\xc0\x62\xdc\x88\xf2\x7a\x55\x20\xcc\x95\xf8\x33\x0b\xc6\x52\xb7\x4d\x34\x79\xb1\xdf\x60\x06\xd4\x2b\x99\xa5\x24\xd0\xf8\x96\xaa\xff\x37\xa1\xd4\x9d\x88\x26\x61\xa7\x5a\x85\x11\xda\xe9\x90\xfb\x1c\x20\x25\x61\x2c\x69\x0f\xa5\xad\x06\x2f\x41\x4a\xe2\x18\x2b\x46\x0e\x73\xfa\x94\xdb\xf8\x31\x9d\xee\x9f\xa4\x44\xa4\x08\xf9\x79\x5a\xbd\x2e\x5e\x06\xab\x58\x1a\x51\x1a\x76\x16\x66\x9b\xfc\x4f\xb3\x17\x8c\x6e\x6a\x44\xe3\x44\x20\x87\x08\xbd\x7c\x1d\xb6\x7c\xfa\xdb\xa2\x2c\x61\xda\xb9\xbb\x0d\x22\x3b\x3b\x20\x61\x89\x74\x8a\xa4\xa5\x6e\x3e\x78\x05\xbf\x9a\xb7\xcc\x08\x63\x0f\x1b\x2c\x69\x02\x0c\xa7\xe8\x06\xeb\x0c\xe7\x0a\x16\xed\x9c\x86\xca\x09\x64\x0c\x9f\x70\xaa\x8c\xed\xa2\xe1\x23\xb8\xcb\xcc\x18\x73\x16\x86\xa6\x5a\x5b\x23\xd4\x51\xfe\x58\x0d\x05\x36\x64\x9a\x49\xa3\x79\x51\xa3\x6d\x4d\x01\x6a\x71\x91\x07\xb8\x5a\xac\x52\x4e\x02\x0c\x77\x8d\xdc\xeb\x60\xbf\x4b\x79\x9c\x61\x66\xd1\x86\x5c\x1e\x93\xe2\x7e\x0a\x4f\x0c\xe8\x59\x84\xb4\x29\x37\xf8\xb1\xd1\x4f\x10\x19\x33\x0d\xef\xd3\xe9\xd0\x61\x7f\x7e\x9a\xaa\xa5\x32\xa0\x22\xec\x6b\x68\xcd\x2f\xab\xf1\xab\x21\x45\x8a\xe8\xcd\xbb\xf9\x6a\x7d\xcd\xc8\x91\xa9\xd4\x49\xd4\x59\xa1\xf7\x04\x94\xdd\x4f\x57\xc4\x48\x90\xb5\x49\x4c\x53\x1e\x9f\xca\x0e\x90\xdf\x87\x19\xcb\x14\x92\x10\xa3\xc2\xba\x7d\xc5\x96\xce\x8c\x41\xa6\x1a\x18\x32\x7c\x45\x59\xfe\x70\xd3\x39\x0b\x52\xc0\xc2\xea\x1d\xff\x28\x7e\xf3\x7f\x14\x19\x4f\x7b\x2e\x10\x03\xb5\x82\x7f\x87\xff\x19\xcf\xf4\x7f\x93\x4e\x4e\xa5\x8f\x88\xc9\x48\xc6\x79\xe8\x36\x95\xe3\xb9\xaa\xf8\x1e\xda\x67\x32\xc4\xcb\x66\x44\x2a\x5c\x6f\x6d\xbc\x05\xc5\xfe\x9c\x17\x63\x41\x89\xc1\xed\xca\x88\xe6\xb8\x21\x22\xec\x3d\xdc\x71\x94\xc0\x78\xe0\xf5\xb7\x9a\xef\x81\x06\xc1\xbc\xe4\x95\xf2\x57\x49\xb9\x40\xc0\xe8\x03\x3f\x82\x73\x84\x1c\x3e\xf7\x2c\x0c\x28\xae\xea\x0e\xb1\xea\xab\x36\x19\x63\xc6\x4e\x1b\x6b\xcf\xc7\x7c\xe4\x5f\x69\x07\x25\x2c\x40\x59\x62\x55\x1e\x79\x3e\x40\x2f\x66\x49\xc4\x8d\x9f\x96\x71\x1a\x76\x7f\x4d\x59\xe6\xb1\x5e\x58\x1f\xcb\x9b\xcb\x8b\x1e\xdd\x99\x24\xd3\x0e\x95\xed\xa0\xf0\xd5\x24\x8f\x40\x66\x09\x68\xd5\xf9\x72\xad\x64\xd9\xf9\xbb\x0f\x6f\x5d\x62\x9b\x88\xdf\x9f\xb7\x83\xe5\x28\xcb\xa8\x11\x49\x7e\x6f\xc3\x0b\xec\xb7\xf8\x5f\xcb\x13\x9e\x3a\x28\x17\xaf\xae\x1c\x2e\x65\x26\x62\x8a\x89\x62\x1b\xc6\x57\xbc\xda\xf0\x83\x8b\x0b\x32\x19\xf1\x0e\xb9\xd6\x3e\x01\x93\x99\xba\xa3\x32\x25\xba\x4b\x92\xee\xa0\xe1\xf9\x61\xb4\x73\x64\x2a\xd0\xc2\x50\xa3\x5e\xbe\xdf\xa1\xdf\xed\xec\xf1\xf1\xe5\xfb\xec\x79\xe1\xba\xb8\x99\x62\x11\xa6\xb6\x47\xec\xe8\x9f\x56\xc5\x77\x0f\x26\xcc\x34\x8f\x11\xa4\x20\x72\x65\xfd\xa7\x06\x92\x2d\xbd\xf5\x8e\x13\x22\x43\x2b\x4e\xde\xa6\x87\xfd\x07\xc9\x49\x92\xa0\x33\xee\xe3\xea\xf9\xeb\xf0\xf2\x39\x11\xa6\x3a\x84\x16\x57\xf2\x0d\xd4\xf9\x30\x9e\x61\x9c\xc8\xc8\xc9\x50\x3c\x97\xaa\x6f\xb0\xe0\x07\x70\x29\xfb\x9c\xdd\xe5\x88\x73\x23\x39\x01\x93\xa6\xa2\x7c\x83\x23\xb6\x49\x4e\x03\x23\x59\xb3\xc3\x7b\xbc\xce\x3f\xe1\xf0\xad\x50\x50\xbd\xe6\xfb\xb7\xd1\x06\xc0\x29\x31\xf4\xe3\x79\xde\x3c\xe5\x87\x43\x07\x5e\xf6\x27\x8b\xb5\xee\x40\x9f\x0f\xe7\xf5\x5b\xc5\x7d\xeb\x8d\x87\x2c\x40\xb1\x48\xf4\x71\xeb\x34\xc0\x86\x0f\x8c\x87\xc2\x38\xfc\xd6\xc6\xb5\x76\x59\x55\x65\x35\x60\x90\x0e\x5f\x67\xce\x52\x85\x1a\xeb\xcd\x14\xa6\x6c\x78\x1b\x99\x62\x42\xf4\x02\x01\xd4\xd4\x36\x1d\xab\x72\x94\x5c\xf2\x48\x04\x11\x3e\x4d\x30\x95\xf8\x6e\xb2\xf3\x48\x84\xf8\xa0\x8d\xb6\xdf\x13\x2f\xf8\x7e\x9c\x07\xf2\x58\x73\x7c\xa9\x9f\x4b\x63\xe5\x7d\xf4\xe0\x74\x9e\x68\x8a\x78\x82\xc7\xfc\x1d\x4e\x00\x95\x5d\x55\xae\x94\xaf\xff\xfd\x9f\x41\xc6\xc3\x53\x42\x0c\xc4\x13\x97\xba\x97\xe2\xaa\x7a\xc6\xd3\x98\x31\xdb\x1d\xfe\x2b\xd6\xc3\xe8\x26\xa6\x42\x46\xd4\x7b\x92\xae\xfc\xec\x48\x81\xe2\xf4\x47\x86\x58\x7b\x21\xb0\x69\xca\xca\xd3\x8c\x24\xcf\x88\xc2\xfe\x88\xe6\x53\x20\x06\xce\x03\xe3\x96\xea\x18\x4a\x50\xe5\x3e\x6e\xe4\x9c\x47\x61\xdc\x31\xdf\xbc\x77\xe2\xcf\xb7\x4c\xce\x05\x48\x3d\x4a\x9b\x8d\xf7\x62\x0d\xd5\x7b\x5e\xec\x9f\x61\x5a\x21\xa8\x3b\x85\x0c\x08\xce\xb1\xa7\x7f\xb8\xc4\x96\xcb\x24\x43\x38\x94\x99\x40\x0b\x87\x6d\x1e\x5d\x8f\x4c\x8d\xf2\x24\x3f\xf2\x4e\xea\x58\x72\xa9\xb4\x69\x5e\x41\xdd\x2c\xde\x72\xf9\x03\x8a\x85\xcf\xe6\xb8\xa2\xcc\x99\xfc\x3e\xf2\xba\xdd\xe7\xfb\x32\xa0\x92\xab\x44\x7a\xb0\x6b\x8f\xb9\xd3\x74\x53\x46\x41\x88\x05\xa8\x13\xbf\xcc\x0e\x87\x2e\xb9\xe3\x90\x24\x71\xe2\x2b\x13\x96\x90\xe6\x44\x15\x86\x3f\x1d\x54\x40\xbd\x28\xc9\x1d\xc8\xfc\xe8\x11\xb5\x5c\x0b\x8e\xbf\xa0\x80\x8f\x27\xb8\x6e\x4a\x72\xad\x09\x76\x2f\x16\xed\x0b\x53\x1e\xf2\xca\xad\xd0\x22\x60\x09\x98\xaa\xda\xca\x79\x78\x5e\x51\xe1\xa5\x08\xd2\x34\x91\x0e\xd9\xcd\x65\x33\xd4\x53\x1e\xee\x46\x22\x90\x24\xd6\x9d\xf7\xe3\x22\xaf\xb0\xd8\xd1\xc5\x33\x82\x04\x01\xa2\x6b\x4a\xad\xe5\x1b\xb7\xb2\xb3\x93\x4f\x5a\x10\x96\x60\xf9\xd0\x92\xe9\x5e\xb9\x10\x79\xb3\x2a\x1e\xda\xa9\x3c\xa9\xca\xe5\x7e\x32\x49\xb9\x45\x5d\x9d\xea\x47\xd8\x73\x79\x71\x15\x7f\xa3\xd6\x88\x97\x4a\x83\xce\x30\xa2\x1f\xbd\x08\xca\x12\x6c\x48\x9d\x8b\xbc\x59\x36\x6f\xdd\x86\x22\xa8\x32\x85\x66\xbc\x3a\x2c\xaa\x2d\x7a\x70\xf7\xe1\x0b\x2d\xa8\xd6\x88\xcc\xf6\xd0\x88\x05\x3f\x2d\x9b\xb7\x97\x9e\x65\x9d\x1d\x19\x92\x14\xeb\x32\xe7\xc2\x55\x79\xfb\xe5\xe5\xd1\x1d\x0e\x25\x90\x81\x8a\xda\x13\x1c\xcb\xea\x62\xf2\xcc\xe1\x79\x59\x14\xa0\x85\xcc\x66\xf1\xf2\xba\xdc\x6d\x5f\x76\xdf\x57\xcf\xee\x52\x98\x36\x3a\xb1\x27\x33\xdf\xb0\x0c\x34\xfc\xa2\x48\x41\x6c\xac\x8e\x65\xcf\xeb\xf6\xea\x95\x16\x71\x10\x62\x05\x6e\xb7\x07\x6c\xd7\x0e\x0a\xd0\xd3\xcb\x80\x48\x28\xc5\x07\x74\xaa\xc0\xf0\x26\x30\x68\x99\xb9\x57\x43\x24\x21\x45\x3e\x6c\xcf\x58\xda\x1f\x52\x0a\x75\x53\xe6\x87\x33\x2c\xde\xf2\xd3\x83\x37\x0b\x96\x22\x8d\x24\xd6\xaa\x2c\x3d\xa7\x1c\x09\x5f\x48\x91\x2a\x15\x98\xda\xcc\x58\x43\x79\xb0\xd9\x88\x8c\x1a\xb3\xfd\x9d\xd9\x26\x4c\xf9\xc5\xbd\xd1\x22\x93\x80\xb2\xbe\xe5\x98\x20\x38\x7a\x54\x3c\x8e\x52\xdd\x61\x41\x26\x65\x14\xa6\x17\x39\xc1\x63\x89\x5f\x51\x94\x0d\xaf\xf2\x3f\xa1\xcf\x65\x19\x01\x61\x27\x8b\x77\x83\xdd\x47\x70\x9e\x30\x43\xe8\x2d\x4c\x8d\x65\xf4\xa8\xb9\x0a\x70\xaa\xd6\xe7\xa3\xd5\x7a\x76\xca\x48\x2e\x55\x17\x82\x50\x9c\x4b\x6e\xe1\x9e\xcb\xe6\x27\x4c\x02\x21\x28\x47\x8c\xe9\xc9\xaa\x11\x19\x72\x4f\x99\x77\x5e\xc2\x52\x88\xc4\x5c\x63\x1b\x02\x56\x39\x8c\x55\xed\xa5\x10\x4a\xf7\x63\xf3\xd9\xe9\x74\xc8\x8d\x45\xa7\x91\x8b\x1f\xd2\x4b\x84\x8c\x23\x61\x4b\x59\x27\x93\x6f\x9e\xab\xd3\xe1\xdc\x1d\x4f\x23\x15\xf8\x7d\xd2\x48\x5a\x8e\xe6\x87\x14\x61\x60\xad\x7e\x77\xb9\x2c\x77\xdc\xbb\xd7\xbb\x93\x28\x6d\xb8\x5a\x70\xe4\xf9\xc1\xe7\x14\xf6\x20\x44\xa6\xdf\x77\xb7\xfa\x75\x77\xb7\x72\xea\x67\x52\x00\x64\x08\xed\xb4\xf0\xe3\x1e\x8d\x63\x7c\xc9\x3a\x48\x31\x1d\x9c\x6f\xfd\x9b\xaa\xad\x97\xc8\xa9\x82\x5e\x2d\x78\x02\x9d\x2c\x49\x14\x04\x1d\x8b\xa0\x81\xce\x98\xd9\x0d\x48\x13\xe4\x77\x6c\x1a\x2e\xf2\x43\xfe\x27\x5e\x59\xa7\x11\x27\x25\xe1\xca\x22\x26\xb6\xf9\x01\x6c\x32\x3b\xd8\x0e\x24\x85\xd8\x3f\xb5\x9e\x15\x6d\xed\xc1\x3c\x77\xe7\x3e\x6f\x57\x4a\xaa\x8d\xd5\xdf\xce\xb5\xbf\xed\x94\x30\xa1\xfa\xe4\xf4\x91\x61\x4c\x31\x5f\xf7\xa1\x47\x3f\x25\x96\x61\x12\x4a\x47\x81\xf8\x87\xff\x63\x16\x63\x1f\xdd\x32\x87\xb0\xa2\x42\x07\x70\x0f\x19\xca\x2c\x22\xbd\x49\xb9\xfb\xc8\x9b\xb7\x9d\xe2\x57\xf2\xbd\x37\x03\xaf\x89\xed\x42\x86\x3a\x42\x40\xcd\x1d\x38\xb0\x3c\xbf\x0d\xb1\x93\x8c\x18\x1b\x0e\xa3\x80\xd3\xc0\x02\xaa\x26\xd7\xed\xb4\x06\x63\x94\xf1\xf7\x68\x74\xee\x6c\xd4\xe4\xa8\xf5\xf9\x58\xea\xfa\xbf\x67\x5e\xdd\x42\xea\xc9\x28\x20\x28\x5b\xdd\x86\x39\xf7\x3c\x3f\x6c\xda\x74\xa4\x71\x78\x8a\x76\x95\x7b\x2e\x9b\x9e\xcf\x82\x94\x11\xd5\x38\x6b\x91\x96\x68\x66\xeb\x7c\xf1\x4b\x7f\x2e\x44\x49\x84\x13\x6e\xd7\xa6\x7f\xe7\x06\xbe\x40\x3f\xf1\xb8\xf1\x9b\x23\x19\x61\x08\x68\xfd\x76\xae\x38\xa2\xb2\x8d\xd2\x51\x92\xb5\xac\x8e\xe7\x03\x1f\x1a\x51\x4b\x99\xf2\x18\x94\xed\x7e\x61\x4e\xc8\xbe\x2f\x97\x5f\x77\x58\xc6\xf7\x63\x24\xa0\x0e\xa1\x82\xf7\x5d\x8d\x0c\x6d\x35\xcc\xb0\x65\x16\x31\x6a\x17\x0b\x0b\x23\xb7\x82\x6e\xca\xce\x99\xe9\xc7\xc7\xc3\x2c\x88\x5c\x65\xe3\x1d\x0e\xe5\x09\x2a\x83\x4d\xc2\x26\x17\x42\x21\x8e\x30\xae\x02\xb5\xdb\x2d\x2e\x0c\xdf\x8e\xa2\x82\x43\x7b\x4d\xbe\x71\x21\x45\x64\xc4\xeb\xa0\x79\x73\x66\xd9\x77\xe7\x76\x0e\x74\xbd\xbc\x76\x0c\xd2\x24\xe7\x0f\x77\xfe\x4f\x4a\xa1\xd6\xc9\x4a\xc2\x81\x17\xea\xbd\x5e\x54\x25\x6f\x72\x17\xdc\x49\x19\x9a\x4d\x0a\xa9\xbc\x4f\x65\x01\x97\x6f\xa7\x6d\xf9\xfd\xad\x3c\xc0\xbd\x31\xad\x1c\xfe\x44\x45\x35\x8a\x3e\xec\x4c\x83\x7b\x76\x38\xac\x79\xbb\x4c\xbd\x82\x61\x04\x61\xb8\xe3\xdc\xad\x6d\x00\x65\x3f\x0a\x89\x71\x0e\x37\x81\xac\x71\x30\x70\x6b\xf3\x88\x7a\x33\xba\x9d\x00\x44\x19\x19\xe3\x8f\x0e\x2b\xe4\x49\x2b\x52\xb3\x0c\x1f\x75\x5e\x3f\x20\x69\xd2\xff\x3d\xd3\xa8\x54\x80\x2f\xb9\x0f\xbb\x9f\xba\x2e\x94\xd4\x40\xa2\xa4\x13\x06\xf1\x85\x39\x3b\x73\x55\x10\xc6\xd8\x1d\x3b\x41\x95\x97\xaa\x4f\x88\x52\x41\xc8\xc3\x0e\xb9\xb2\x52\xc8\x40\x5b\x35\x70\x05\x05\xf6\x39\xde\xf0\xa2\x14\x09\x13\xac\x89\x3c\x96\x7b\x07\x72\x9d\x44\x2e\x2a\x9a\x40\xea\xd6\x82\xf0\x17\x7f\xd2\xfe\x63\x51\x54\x33\x15\x4e\x10\xd1\x06\x0b\xbb\x0a\x49\x82\x70\xd1\x2f\xfc\x1d\x06\xa0\x43\x15\x12\x40\xd8\x8b\x49\x5e\x0e\x87\x2b\x39\xa2\x61\x4c\x92\xba\xca\x96\x0a\xad\x76\xab\x13\xe5\xb8\x83\xd3\xa1\xbc\x8c\xca\xe2\x2a\xd4\x21\x2e\x40\x0a\xb0\x02\xe4\x9f\xb8\x3d\xcc\xa8\x31\xb3\xff\xfa\x7b\x1a\x04\xc1\xe0\x87\xb1\x08\x62\xa7\x61\x73\xce\x55\xbd\xc9\xff\x04\x7f\x2c\x35\x91\x81\xe8\x40\x3e\x5d\xa4\x64\xc7\x44\x81\xc0\xc7\xf4\xdf\x33\x6f\xa0\xa2\xee\xa3\x71\x60\xd6\xd7\xbe\x8a\xf1\xe0\x86\xc6\x69\x06\xa6\x44\x71\x38\xec\x0e\x5c\xdc\x2a\xa9\xab\x58\x28\x07\x5e\x30\xe5\x6b\x87\xb3\x9d\x5f\x8c\x58\xc7\x8d\xcd\xc1\x7e\x3c\xa1\x21\x33\xe2\xe6\x0d\x7a\x86\x4c\x89\xd8\x8e\xbe\x31\xa1\x82\x44\x3d\xda\x1c\x28\x4c\x57\xae\x09\x33\x2a\x49\x09\x22\x5b\xda\xc5\x7c\x65\x3b\x12\x0b\xee\x24\x89\xa4\x4a\x64\x8a\xee\x0e\x26\x71\x6a\x9f\x7d\x57\xd8\x54\x89\x62\xa8\x6b\x9f\xd7\xbf\x43\xfd\x3d\x2f\x8a\x2e\x19\x56\x29\x35\x75\xe1\x99\x5f\x6f\x55\x1a\x11\x84\xad\x3f\xad\x9e\x0d\xc8\xc0\x1f\x48\xa4\x01\xdd\x9f\x4f\xa8\x60\xbe\x35\x46\xc5\x6b\x9e\xdf\xc8\x5d\x54\xaa\x4c\x45\x42\x9c\x2f\xb3\x42\x79\x3e\xd9\x78\x77\x1d\x7e\x28\xa3\x11\x76\x2e\x78\xdd\xc6\xd1\xbd\x59\x92\xc5\x86\xe4\x60\x62\xf4\x5d\x35\x08\xd2\x55\x96\x12\xec\x88\x3c\x5d\xc4\x60\xe5\x57\x3c\x24\x98\xaf\x3c\xf8\x10\x4b\x71\x26\x18\xf1\x8d\x3b\x0b\xb9\xb8\x71\x0d\x9c\x0b\x93\x38\x55\xf0\x9e\x97\xe7\x1a\x1f\xae\x3b\x91\x08\x12\x4c\x4e\x10\xb6\x8d\xc9\xf8\x04\x9e\x53\x09\x22\x9c\xbe\xa4\xc9\x2c\x26\xf1\x48\x4a\xa4\xa9\xf5\x56\xb4\x54\x84\x49\x02\xdc\x70\x49\x11\xca\x48\x5d\x2d\xca\xa2\x6e\xaa\x33\xc2\xb9\x06\x03\x64\x06\x08\xa1\x3f\xc1\x7e\x0f\x6a\xb9\xfd\xd2\x35\x6c\x94\xd4\xa1\x55\xbd\x39\xe4\x70\xae\xea\xdd\x09\xaa\x1d\x78\x50\xba\x52\x49\x84\x3b\xd5\x66\xbb\x1c\xbc\xca\x2a\x8b\xb0\xcb\xeb\x6c\x4a\xa7\x85\x2a\xbb\x40\x55\x29\x61\xf2\x11\xd1\xae\x1a\xb0\x79\xcb\x1b\x74\x3e\x3b\x94\x95\x5f\x85\x95\xca\xf0\xb7\x54\x56\xf0\xcc\x4b\x19\xf6\xfc\x42\xa5\x02\x12\x61\xaf\x7d\xd7\xcb\x0d\xae\xcc\x6b\x07\xd7\xaf\x43\x16\x75\x6a\x1a\x03\x6b\x9e\x69\x39\x3d\xf7\xb9\x24\xd6\xa9\xab\x6c\x22\xb0\xeb\xaa\x13\xab\xb4\x32\x8e\x91\x47\xac\x2a\x1e\xa1\x68\xee\xbb\x4e\xab\xd2\x90\x60\x4c\xa2\x79\xdd\xcc\xcf\x97\xbe\xe6\x05\x10\x95\x22\xe0\x61\x73\xe4\x55\xe3\xa6\x25\x50\x1a\x90\xbe\xea\xe3\xaa\x18\xc5\x42\x40\x35\xe0\xf2\xbb\x38\x40\x59\x8f\x0f\x86\x41\x8a\x85\x1f\xae\xd4\xf2\xda\x0a\xcd\x0d\xa2\x06\xde\xb7\x87\xc6\xf9\x26\x0d\xb6\x16\x08\xb3\x14\x43\x8f\xd7\x5c\x29\x5f\x2c\x86\x50\x19\xd3\xfc\x1a\x0e\x7a\xa7\xc0\xcc\x35\x77\x90\x65\x1a\xeb\x19\x1c\x23\xa9\x79\x87\xc8\x06\xa6\x53\x24\xce\xae\xcb\xef\x5f\xaa\x87\x03\xf7\xc9\x1b\x44\x89\x88\x2c\x51\x6d\x0d\x05\x3f\xe4\x7f\x7a\x0d\xdf\xdb\x13\x09\x22\xc1\x31\x68\x41\xa6\xa8\x95\xc3\xb7\x87\x62\xda\x6b\xc6\x23\x79\x4d\xdd\xe7\xe3\x9a\x20\x24\x11\xc1\xae\x21\xe2\xbf\x50\xdb\x59\x0e\xfd\x5e\xda\x21\x12\xeb\x5f\xeb\xd7\x25\x86\x9b\x9b\xe5\xe2\x05\x55\x6f\x7e\xdf\x6d\xb6\xb3\xd7\xad\x1f\x67\x19\x93\x58\xa3\xdb\xf4\xca\x81\xa3\x22\xf3\x70\x3d\x81\x34\x08\x50\x1e\xee\x5c\x43\xb5\x2b\xb5\x76\xae\x0f\xfe\x70\x64\x44\x5c\xce\xf9\x41\xb5\x61\xa3\xf5\x89\xea\xbf\x80\x90\x86\x1a\x79\x07\xa6\xd4\xb4\x2c\x54\x3d\x1b\x2d\x26\x90\xa6\x11\x40\xa7\xbc\xb9\x73\xd8\x1d\x3e\x82\xc5\x40\xc6\x42\x6c\xa8\x0c\x0d\xf7\x48\xe4\xe6\x43\x66\x83\x3d\xac\x81\x0d\xac\xb6\x24\x70\x1e\xe0\x83\x3f\x96\x2a\xd7\x17\x8b\x17\x71\xee\x51\xc3\xaf\x11\xa9\x90\xa9\xb3\x90\x3c\x96\x6b\x7e\xf6\xbd\x06\x10\xd2\x78\x8c\x1b\xf4\x58\x1b\x50\xaf\xa1\xba\x76\x07\x97\x20\xa9\xa9\xf3\xab\x06\xf8\x11\xd1\x31\x6d\xd8\xe9\x6a\x16\x20\x99\xc4\xd5\x01\xf7\x05\x13\xb7\xb4\x01\xd2\x1c\xa0\x40\xbb\x54\xe5\x07\x46\x0a\xe3\x4c\x7b\xcd\x0b\x8b\x6b\x1f\x83\x31\xa1\xdd\xa2\xed\x22\xe0\x62\xa9\x81\xb7\x59\x2f\xf4\x01\xa5\x35\x5a\x93\x36\xfc\x07\x78\xb6\xc3\x9c\xcb\x1f\x7d\x5e\xc1\xf0\x72\x20\x03\x6e\xe5\x4d\x9f\xe1\xe3\xe7\x69\x14\xe8\xc8\xe8\x24\xcc\xd5\xa9\x0d\x2d\x5c\x69\x1f\x7f\x82\x8d\x72\x75\x10\x18\x83\x3a\x54\xd4\xaa\xcb\x35\x06\xbb\xbf\xb8\x83\x11\xc3\x15\x6d\xd3\x1e\xfc\xb8\x16\x57\xd1\x41\x62\xac\xe0\x71\xd3\x47\x4d\x42\x7b\x80\x5a\x71\xd4\x63\x5e\xdc\xf1\xdc\xff\x35\x33\xa5\x7d\x5d\x56\xfd\x34\x52\x53\x01\x5a\xfa\x55\xcc\xb3\xee\x06\x7c\x27\x4d\x35\xc5\x68\x70\x6d\x94\x3d\xd0\x72\xa7\x28\xc0\xaf\x29\x3a\x24\x14\x45\x16\x9e\x67\x9b\xbb\xd9\x3f\xfd\x5f\x99\x90\xda\x1b\xe0\xde\x3b\x77\x1d\xa9\xc3\x28\x40\xcb\xb6\x8f\xb7\xbc\x41\xe2\x72\x27\xd5\x36\xac\x1a\xe9\x30\xd5\x86\xee\x50\xee\xf7\x07\x58\x1f\x4a\x83\x96\x04\xb5\xe5\xfb\x6b\xb1\x40\xa9\xc3\x36\xf0\x30\xe5\xfc\x29\x43\x22\x37\x4a\x85\x08\x59\x2c\x10\x98\x37\xbc\xaf\x2c\xce\x70\xc9\x6d\x8c\xe0\x0d\x96\x2b\xbc\xbd\x9a\xd4\x0c\x20\x23\x0e\xd3\x9b\xcb\x1b\x84\x35\x1d\x71\x45\xe1\xff\x6b\x57\xe1\xce\x01\xa1\x31\x7a\x3d\xf3\x4a\xe5\xbc\x70\x51\xb4\x8e\x03\x86\xfc\x56\xb4\x55\x18\x6e\xe7\xe7\xbe\xd8\x4f\x7f\x2b\xd1\x31\x35\xf7\x1c\x2d\xb7\xf2\x3f\x91\x6d\xb7\x2d\x0f\xd0\x97\x70\xd1\x31\x8d\xf0\xdd\x7e\xd1\x1a\xf1\xdf\x76\x71\x5c\x1d\x4f\x37\x02\x2e\x1d\xdb\x4e\x93\x89\x73\xa1\xf9\xde\xc5\xb9\x3a\xe6\x89\xab\x51\x43\xfe\x0e\x57\xa1\xdb\xed\xb2\x8d\x4e\x23\xe3\xcd\x66\x24\xcd\x96\x9b\xc5\xec\xd1\x35\x95\x75\x9a\x19\xff\xc9\x1a\xb3\xc7\x81\xd4\x7b\xf7\x00\x52\xc9\x0d\xe0\xb0\x5e\x5c\x1f\xe4\x61\x14\xf2\x9e\xc7\x33\xf2\xa2\xea\xeb\x8a\xb4\xe6\x10\x62\x91\xe5\xdb\xf3\x7a\xe1\xbe\x9e\x6b\x0a\xba\x83\x50\x6e\x67\x2f\xce\xad\x75\x92\x6d\xac\x05\x33\x5b\x1d\x92\x36\x50\x02\xbd\x53\xf4\x19\x7e\x9b\x90\xca\xb2\x7b\x8f\xc7\xbc\x69\x40\xf5\xe9\x57\x5a\x12\x8e\xf5\x31\xc9\x4f\x5c\x7a\x3b\x4e\xa9\x65\x14\x1a\x93\x5a\x6f\xdc\xe2\xba\xba\xc3\xb3\xcb\x98\xe1\x92\xb7\x94\x65\x8d\x96\x9c\x6d\x78\xe5\x4e\xa2\x2c\x2a\xfa\x54\x95\xea\x2c\x1b\xb6\xf3\x5e\xcb\x52\xab\x54\xe2\x3b\xf8\x0a\xed\xf6\x5f\x16\x7f\xfa\x45\x05\x68\x68\xe4\xa8\x16\x0f\x8b\xd1\x55\x03\x8f\xb1\xef\xe5\x21\xfd\x5d\xa3\x46\xeb\x34\x31\xce\xfb\xbc\xaa\xca\xa6\x5e\xf0\xf3\xfe\xcd\x7e\x9b\x0a\x82\x40\x06\x89\xab\x3b\x03\xdc\x9f\x5d\xd9\x40\x05\x01\x33\x52\xae\x9d\x5b\x96\x61\x07\xcf\x2f\xb3\x61\x49\x47\x05\x24\x26\x91\x76\xa1\xc7\xfd\xb9\x36\x96\x04\x7c\x3c\x4a\x98\x75\x6d\x67\x94\xb3\x7b\xa4\x95\xfe\xc5\xa8\x80\x92\x10\x1d\x89\x9b\xbe\xb1\x39\x2e\xa3\x9b\xb7\xfc\x34\xe5\x06\xa6\x02\x9a\x19\x80\x77\x5e\x28\xf8\x04\x35\xbf\xb4\x2b\xd6\x14\x82\x5a\x05\x54\x50\x3c\xfd\x1b\xaf\x2d\x15\x76\xd9\x91\xac\x54\x10\x12\x86\x77\xb9\xf4\xee\x34\xee\x00\x23\x38\x3b\x1d\x0c\x7d\x38\xf3\x54\x10\xc6\x32\x35\x18\x97\x8b\x99\x49\xb7\x38\x4b\x2a\x60\x24\x54\x83\x49\xd4\x2e\xb5\x3d\x9c\x85\x0a\x18\xd7\x46\x1c\xfc\xe9\xa9\x0d\x74\xc4\xf9\x32\x38\x1c\x33\x81\xd4\xa4\xa7\xb2\x02\xd4\x6f\x28\xf3\x9f\xa9\x76\xa9\x20\x4e\x83\xc8\x91\xc2\x31\x10\x1f\xfe\xf6\x98\x07\xb8\xa3\xb4\xab\xfd\xb9\x33\xce\xbf\xba\x82\xd1\xad\x4c\x32\x23\x4a\x76\x34\x02\xb6\x13\xfa\xea\x2a\x48\x83\x14\x59\xb5\x86\x47\xfd\xd4\x26\x19\xfc\x30\xd8\xf1\x54\x90\x52\x4f\xe6\x79\xc8\xd5\x8b\xb6\x05\x2a\x0b\xe7\x52\x41\x9a\x1a\x5b\x04\x93\xa8\xbc\xf2\x42\x95\xc7\xfb\x7c\xff\xd6\xd0\x3b\xe0\xcd\xdb\xa4\x70\x69\x9b\x7f\x10\xee\x78\xa4\xeb\x1e\xf0\x48\x05\x19\xc4\x0e\x4e\xfa\x74\xae\x9b\xcd\x8f\xfc\x34\xe5\x24\xe8\x77\x07\x15\xf0\x84\x21\x6b\xf3\x01\x06\xbd\xff\xf6\x80\xa1\x93\xb4\x77\xce\x4e\x27\x5b\x5d\xed\x86\xa8\x54\x05\xbd\x6a\xf3\xae\x86\x66\x87\xd3\x6b\x77\x2e\xf8\xb9\xbb\x0d\x22\x4e\x12\xe6\xb8\x75\x58\x40\x1d\x5d\x91\x80\xcc\x28\x67\x95\xda\x3b\xb8\xbd\xc2\x3b\x14\x67\xb8\x1e\x2c\xdb\xd7\xb2\xdd\x2b\x7e\x5b\xcc\x36\x5f\x7a\x31\xb2\x0a\xa4\x20\xc8\x92\x37\xeb\xbd\x89\xe4\xbf\xad\xd7\x8f\xbf\xbb\x01\x4a\x25\x48\x06\x15\xd0\xec\x78\xaf\x6f\xa0\x02\x88\x22\xbc\x11\x35\xd7\xd0\x5c\x9e\x4a\x05\x2f\xfe\xb4\xa0\x03\x9f\xf1\x7f\x2b\xea\xd2\x04\xe9\xfe\x3e\xb4\xbb\xb9\xdd\x24\xde\xf8\xf1\xd4\x2e\xe1\x43\xbf\x6b\x33\x8e\x04\xa9\x44\xa1\x5e\xc3\xf9\x9a\x00\x59\x2a\x12\x64\x1c\x2c\x3a\xd9\xd2\x71\xdc\x01\x1e\x07\x3d\xda\x42\xbb\xc7\x4c\x76\x08\xed\x70\x12\x0a\x24\x16\xac\xf9\xc5\x69\x6f\x4c\xae\x49\x84\x12\x9a\x3a\xd1\x3a\x13\xa5\x2c\x0d\x27\x7f\x38\xdb\x09\x0d\x03\xc2\x7a\xd2\x42\xfc\xb3\x57\x6a\x55\x84\x5a\x85\xd1\xd3\x81\x5f\x26\x2d\x2f\x47\x67\xd3\x12\x81\x46\x2f\xcf\xcb\xdd\x7c\xf5\xf8\xb8\x7a\x79\x76\x17\xca\x82\x24\x36\x6f\xec\x07\x54\x12\x75\x7c\x10\xc9\xd9\x7f\xeb\x09\x8b\x3c\xe9\x6b\x25\xcb\x76\x23\xc4\xde\xf2\xf2\xda\x48\xc5\x7d\x40\x67\xf8\x62\xb8\xe2\xfb\x4d\xf4\xcd\xe0\x6b\xa2\x20\xc0\xc5\xd7\x48\x35\xbc\x9c\xfe\xe2\xaa\x22\xc1\x90\x77\x07\xc7\xbc\x7d\xf5\x0e\x07\x4b\x9c\xc9\xa1\xde\xc0\x4d\xc0\x8f\xfd\x70\x4c\x42\xac\x0e\xb4\xfb\x8b\x69\x36\xfc\xe2\x8f\x48\x2c\x82\x9e\x6b\x30\xa2\xc9\x97\xd1\xb3\x89\x79\x8c\xa0\x2e\x13\xd2\xfa\xb7\x74\x2a\xff\x50\x24\x16\x29\xbe\x6a\x6d\xca\xb2\x13\x5c\xfe\xd8\x1d\xcb\x02\x2e\xee\xcb\xd2\x50\x60\xc0\x53\xe3\x25\x63\xcd\x9c\xfa\x63\xcc\xd8\xf4\xcc\x7a\x7c\xfa\xc1\xfd\xca\x28\xc1\x70\xf5\xc8\xab\x1f\xdf\x6a\xa8\x66\xb5\x63\x21\x0f\x27\x5d\x16\x07\x06\x62\x61\x37\x42\xd4\x05\x9b\xc6\x3e\x2a\x92\xf1\x2c\x33\xe2\xd2\x58\xbb\x79\x05\x2e\xbd\x33\x93\x22\x3c\x14\xce\xfa\xf2\xe5\xdc\xc8\xf2\x38\xd4\x3a\x51\x44\xb0\x48\xd8\xdd\xde\x34\x94\x7b\x3c\x0e\x45\x44\x14\x63\xe1\x63\x0b\x75\x33\x85\xc7\x98\x54\x36\x51\x44\xa8\x2c\xb6\xdf\x8a\x9d\x83\xeb\x40\x49\x11\x01\x0c\xab\xac\xaa\x5d\xc9\x51\xb8\x5c\x13\xe6\xbf\x17\x22\x43\x76\x05\x79\x2e\xf2\xb2\xbf\x88\x11\x19\x10\x5c\x4e\x6a\x64\xa9\x5b\xfd\x88\x59\xa1\x16\xfc\x70\x40\x84\xf6\x4d\x82\xea\x2d\x91\xab\x29\x69\x34\x45\x64\x48\xb0\xb4\x7b\xe8\x62\x23\x22\xb3\xd4\xbd\x58\xce\xa4\xe6\x5a\x14\x72\x74\x1a\x1e\x87\x36\x95\x59\xf9\xc7\x22\x21\x08\xb5\xc7\xfc\x19\x3e\x81\x69\x78\x75\x76\x47\x6e\xed\x00\xeb\x9e\x55\x9f\x0e\xf9\xd5\x5b\xe2\xc6\x28\xcd\x03\x57\xe8\xf1\x78\x1c\xac\x6d\x8e\xe6\x96\x4e\xcd\x5a\xfd\x5a\xd6\x6f\x9c\xf7\xa8\xb5\x8a\x06\x81\x36\x4e\x0c\x5e\x1e\x72\xf0\x25\x34\x20\x51\x16\x3b\x20\xac\x99\xdf\x7d\xc8\xcc\xf4\x8b\x4b\x03\x4a\x99\xd7\x45\x58\x38\xe1\x19\xef\x7c\xa6\x68\xc0\x52\x84\xc8\xd7\x87\xdc\x69\xf9\xfc\x4f\x87\xc3\x9a\x38\x61\x9a\x3a\x1b\x29\x0c\xf1\x9d\xba\xa7\x49\xca\xba\xbd\x9b\x92\x38\x8a\x3b\x24\xcc\x63\xd9\x99\xb2\xff\xd2\x1f\x95\x45\x4a\x3a\xea\xbd\x6b\x90\x0e\xbf\x91\x86\xc6\x7b\xad\x38\x1f\x35\x22\x74\xdd\xdf\x59\x82\xee\x74\x75\xbb\x58\xb8\x32\xd0\xf9\x0a\x0b\xae\x28\x4d\x41\x04\x43\x0d\x12\x03\xf6\xbd\xcf\xe1\xa0\xea\xf1\xd7\xf1\x10\xb1\x8c\x47\x5e\x9c\xf9\x61\x28\x8a\x30\x1a\x09\x14\x1b\xb8\xf3\xed\x62\x96\x57\xee\x67\x85\x19\x45\x34\xf4\x81\x37\xf2\x6d\x58\x10\x6d\x0f\x2a\xaf\x16\x7b\xb8\x95\x59\x2b\xca\x02\x2f\x01\xb4\xfc\x3c\xb5\x91\x4f\x71\x7b\x6c\xc8\x40\x8e\x99\x93\xbc\xd8\xe7\xa2\x4d\x19\x6b\x68\x54\x5e\x8b\x73\x55\x63\x35\xf8\x26\x9f\x52\x51\x4c\x01\x7a\x94\xba\xfb\xb2\x82\x7c\x6f\x5a\x79\xb5\x25\xab\x5c\x05\x6b\x23\x81\x16\x45\xe3\x24\x40\xf7\x11\x04\xda\x1c\xa0\xee\x6b\x81\x29\x1a\xa7\x31\x82\x08\x4d\xcf\xc1\xff\x35\x33\x3a\x5b\xf3\x03\x97\x3f\xd6\xc0\xab\x43\x6f\x7e\x26\x81\x54\x46\xce\xbb\x69\x6f\x45\x3b\x7b\x5f\xc7\x7c\x26\x45\x13\xca\xe2\xd4\x2e\xc3\xff\x3d\xe7\xfe\xd4\x49\x96\xe0\xa6\x77\x9f\x17\x9d\x5f\xfb\x95\xbe\xad\xa2\x89\xd0\x3a\xec\x95\x32\xda\xc7\xbe\x2c\x50\x9c\x37\x1f\xcb\xe4\xba\x8f\x40\x86\xd5\xaf\xcd\x72\x3d\x7b\xed\x2c\xa3\x15\x4d\x49\x88\x2f\xf2\x2e\x37\xba\x9f\x9e\xc0\x32\x2b\xd4\x13\x34\x6f\xe5\x0d\x65\x2a\xf7\xf1\x08\xa4\x51\x2a\x81\xd5\xe2\xa5\x3e\x81\xcc\x1d\xd2\x52\xd1\x8c\x06\x26\xab\x34\xe6\x44\xa8\x4c\x85\x9e\x74\x57\xcb\xc0\xf0\xfe\x64\x61\x84\x3e\xea\xb3\x76\xdf\xbc\x2f\xab\x0e\xf3\x71\x75\x79\x3f\x11\x39\x54\x34\x63\x31\xb2\xda\xf4\xb9\xb9\x83\x77\xac\xd8\xb9\x23\x91\x46\x28\xe9\x91\x7f\xde\x3d\xcc\x9e\x96\xfe\xef\x49\x68\x7a\x67\xed\x37\xff\xba\x5a\x0f\x1c\x10\xc7\x67\x17\xc6\xd8\xa0\x2a\x0f\x07\x94\xfe\x1e\x8c\x4b\xaf\x90\xa1\x8a\xf2\x48\x19\xa5\x2b\x28\x9a\xa1\xcf\xb3\x1b\x90\x04\xce\x75\x70\x26\x9b\x33\x4a\x57\xf9\x63\x99\xc0\xc9\xb1\xab\x30\xb5\xb9\x46\x0d\x4e\x7e\x23\x4f\x5c\x5b\x7f\x93\x2b\x4f\x79\x1d\x5d\x89\x48\x09\x51\x1d\x66\xf7\xb5\xd3\xca\xf7\xdf\x2e\xb8\x06\x33\xc4\xff\x49\x06\x1c\x93\xb6\xd5\x40\xa1\xb0\x33\x76\xbd\x19\xdc\x51\x19\x85\xbc\x2f\x0a\xb8\x33\x8d\xc8\xd1\x20\x09\x18\x8d\x3c\xc2\xb1\x2c\xea\xbb\xaa\x3c\x9d\x50\x54\xf3\x0d\xbe\x97\xd5\xc1\xbf\x33\x2a\x92\x61\x32\xe0\xfb\x0f\xe2\x28\xaa\x64\x84\x9c\x99\xfb\x0a\x41\x24\xb3\xb3\x6c\xc6\x8c\x99\xe1\xe4\x53\x56\x51\x79\xfd\xfa\xfc\x30\x7a\x6f\x35\xf0\xcc\xf4\xd8\x50\x47\x4a\xf5\xd8\x47\xa3\x5f\x1f\x06\x54\x60\xa3\xe9\xdb\x69\x8f\x9e\x1f\x7b\x28\x1a\xbb\xf9\x5c\x77\x38\x55\x18\xc4\x3a\xf4\x85\xe7\xf6\x6e\x0c\x41\x35\x6e\x54\x22\x0d\x6d\x2c\x7f\x87\x6d\xf9\x6b\xd9\xdc\xd0\xa4\x51\x6d\x34\x62\x4c\x19\x7b\xcb\xec\xba\xca\xdf\xf3\x03\xec\xff\x42\x35\x56\x85\x44\x86\xc2\xea\xf3\xb6\x41\xcb\x65\x36\x84\x52\xd8\x51\x34\x34\x96\xd5\xcf\xe7\xa6\xca\xcb\x5e\x6c\x10\xd2\x24\x35\x98\xff\xb2\x8d\x86\xef\x73\xed\x2a\x63\x2a\x0c\x13\x81\x00\xa8\x03\xaf\xf6\xd0\xf5\xa6\x55\xc8\xa2\x14\x93\xb5\xbb\xf2\xd0\x5f\x83\x43\x16\x0b\x15\x5b\xb5\x5d\x7e\x30\x3a\x34\xa3\x1f\xc2\x44\x82\x09\xd0\x23\x7f\xe7\x96\x92\x3b\x1a\x11\x31\x81\x9e\xe6\xba\x34\x4a\x0e\x9d\x46\xbf\x0a\xa3\x28\x0d\x0c\xbf\x41\xad\x9b\xf2\x34\x3a\xc1\x74\xcc\x1a\x46\x99\x16\x7d\x85\xf9\xc1\x9b\xef\x2a\x12\x61\xc4\x8d\x87\x82\x83\xa2\x4c\x3f\xaa\x38\x20\x88\xc1\xdd\xe5\xf5\x2b\xec\xcf\x07\x5e\x4d\x15\x2d\x55\x18\xf3\xc4\x48\x14\xf2\x6a\xd0\xcd\x52\x61\xac\x88\x95\x3b\x97\x97\x5b\xca\x8e\x2a\x4c\x64\x8a\xcb\xd5\xa1\x5d\xd2\x76\x6c\x98\xb2\x87\xa9\x43\x3f\xd9\xd7\xc8\xe0\x4f\x0d\x93\xf2\xc6\x09\xd3\x28\x70\xc1\xea\xe2\x5c\x37\xe5\x11\xaa\xed\xe7\x4b\x95\xef\x9f\xe4\xc7\x95\xb3\xf5\xf0\xfe\xa5\x59\x86\x7a\xc7\x58\xe4\xdb\x35\xe5\xee\x74\xee\xc1\x75\x87\x63\x33\x8b\xfa\x37\x6a\xcc\x73\xde\x34\x07\x38\x1d\x89\xfb\xe1\x3c\x48\x1d\x36\xe0\xb9\x54\x80\x5e\x49\xe3\x5b\xc7\x89\xce\x2c\x5d\x72\x0b\x9f\x03\x17\x44\x15\xf2\x08\x42\x03\x0d\xb1\xca\xae\x83\x7e\x87\x0a\x79\x62\xa4\xe8\x7f\xe7\x97\xcb\xf0\xbe\x73\x2e\x31\x5a\xb5\x16\xb7\x58\x6f\xd7\xbc\x2b\xea\x84\x5c\x0b\xec\x47\x2f\x9e\x7f\x9f\xbb\xbf\x09\xaa\x43\xbb\x22\x3f\xc3\x67\x63\xd1\x6f\xc3\xdf\x2b\x04\x41\x71\xb3\xdf\xec\xff\x05\x99\xfb\xb4\x24\x0a\xf5\xf8\x77\x7b\xa3\x47\x73\x55\x4a\x0b\x65\x22\xb1\xc3\x3b\x7b\x98\x6d\x46\x94\x25\x15\xca\x94\x60\x10\xaa\x01\x06\xa1\xe2\x08\xc2\x37\x3a\x23\x67\x58\x47\x3c\x94\x4d\x03\xd5\xc5\x4b\xd2\x4e\x6d\x25\xa1\x54\x09\x66\x98\xed\xeb\x64\xc5\xcb\x1c\x2a\x4f\x85\x2a\x48\x0d\x5f\x12\xb9\x9b\x4b\xab\xde\x39\xba\x00\x88\x19\xf6\x44\x9b\xe6\x60\x59\xb0\xee\xe3\x9a\x19\x92\x9f\xdb\x36\x9e\x06\x92\xd0\x2a\xd4\x4a\x91\x8e\x90\x35\xe9\x2c\xa0\x58\x40\x28\x36\xb0\x7f\x3f\x17\xff\xc8\xf9\x53\x7e\x33\x4b\xfd\xe9\x16\xc6\x82\x28\xc4\xa4\x6c\x56\xc0\xb1\xcc\xfb\xd3\x82\x05\x32\xc0\x92\xa2\x89\x7a\x8c\x93\x72\x59\x5d\x6c\x49\xb0\xdb\xa3\xc7\x45\x67\x46\xc2\xd8\x00\xe9\x9c\x93\xad\x9b\xe4\x8c\xc4\xde\x36\x61\x55\x5b\x51\xb7\x62\x8e\xf0\xe6\x2e\x3b\x61\x44\x29\xdc\x1e\x96\x9f\xfc\x78\x72\xa8\x12\x1f\xfa\xda\x41\x34\x22\xa1\x43\x42\xf9\xa6\xb6\xfb\x1e\x9a\x1a\xbf\x00\xae\x14\x5a\x55\x8d\x96\x5a\x46\xb3\x10\x53\x47\xa4\xce\xaf\xcb\xf2\x6d\xf4\xa6\xb1\x30\x33\x2e\xb6\x5e\xd9\xed\xfd\x96\x83\x79\x77\xd9\x21\x24\x98\xd3\x89\x81\x98\xf8\xe8\xb6\xfb\xdf\xcf\x98\xc6\x2e\xc6\x31\xc7\x9e\xb4\x03\x92\xba\x2b\x60\x91\x69\x0f\xed\xa1\x79\x38\x8f\xf5\x0e\x52\x37\x28\x53\x89\xc7\xca\x40\x75\x0f\x30\xd0\xfc\x53\x8c\x89\x28\x48\xfb\xb5\x77\x43\xe8\xd8\x96\x1e\xeb\x60\x1f\xe0\x64\x1a\xcf\xa2\xc0\x54\xde\x6b\x68\xfe\x51\x8a\x57\x64\xea\x4f\x04\x87\xdd\x2d\x88\x08\x47\x49\x02\xa3\x75\x9f\xba\x9f\x11\x51\x83\xbc\xb2\xc2\xbf\xd0\xc6\x0e\x4d\x4f\xcd\xf0\xdc\xf1\xf5\xdb\xc1\x14\xb7\xd6\xdc\x31\x99\x15\x8b\xa2\xcc\x61\x55\x76\xb2\xcc\x8b\x7a\xd7\xb3\x4a\x50\x2c\x12\x8c\x1b\x93\x36\xa3\x66\xf5\x54\x16\xcd\xdb\xe1\xd2\x8b\x6a\x7e\x2d\x0f\xe7\x23\x58\xa1\xa1\xd1\x8b\x14\x13\x65\x6d\xcd\xc6\xd1\xca\xe8\xe2\x62\x1a\x6b\x5b\x0a\x58\x15\xef\x65\x2e\x1d\xdf\x6b\xb0\xce\xb3\x38\x55\x61\xdf\x2f\xd0\xc0\xe4\x4d\xdb\x65\x78\xc2\x24\x89\x51\xfb\xc3\x00\xc6\x76\xb3\xba\x76\x52\x87\xf5\xb6\x5c\x57\xe5\x1f\x20\xa7\x85\x7b\x14\x4b\x34\xc3\x98\x75\xc1\x8b\x2f\xbc\x50\x07\xd4\xb7\x19\xcd\xe1\x94\x01\x02\x39\xdb\x5f\x99\xcb\x65\xf3\x36\x7b\xe7\xf9\xa1\x0d\xdd\xdc\x4a\xc3\xd2\x08\xb0\x36\xbe\x7b\x2b\x6b\x4f\x1d\x18\x6d\x75\xb7\xf9\x25\x8a\x65\x91\x29\x4d\x9f\x72\xf9\xc3\xd4\x94\xdd\x99\xb3\x24\x88\x2c\x3d\x6e\x79\x44\x00\xe9\xb4\x61\x4d\x3b\x92\xe0\xa6\xb6\xf9\x32\x0b\x77\x91\xb3\x8c\x55\x2c\x93\x24\x33\xce\x4d\x45\x5e\xbf\xd9\x34\xc3\x1f\xe5\xa9\xc6\xf6\xc1\x6c\xbb\x7d\x1d\xac\x5a\x9c\x6b\x22\x47\x39\x25\xd6\x1d\xf7\x15\xc0\x71\xe2\xfa\xec\xe7\x04\x68\x19\xb8\x42\xed\xa5\x40\xc0\x82\xa3\xf4\xb2\xd1\x7b\x21\x23\x69\x92\xc5\x9e\x24\xe0\x7d\x59\xd9\xdf\x38\x7a\x0c\x2a\x30\x2a\x18\x3f\xc0\x94\x04\x07\x5c\x4c\xc5\x94\xe2\x58\xd9\xb9\xcb\x2b\x90\x0d\x3a\x57\xb8\x43\x40\x00\x1b\x55\xf5\x59\xd4\xa6\x9e\x31\x3d\x19\x74\x40\xd0\xf2\xa3\xd9\xc3\xe2\xca\x54\x4e\x31\x1d\x1a\x5d\xc6\xf6\xed\xe1\x53\x21\x59\x14\xc4\x81\xf3\xaa\xaf\xcf\x47\xc5\x1b\x4e\x86\x93\x3a\x0a\x62\xe3\xb5\x7b\xcc\x8b\x75\xd9\x6c\x9c\x7f\xa3\x8a\x88\x88\x22\xb3\x92\x1e\x9a\xf1\x36\x1d\x51\x0d\xc8\x3c\x17\xe7\x8b\x67\x89\x8c\xbe\x9a\x85\x14\xdf\x01\xc9\x8b\x5b\x06\xe6\x6e\x64\x1a\xa2\xe8\xc2\xf7\x76\x79\x45\xd8\x1f\xa8\x6e\xc5\xeb\xae\x37\x62\xde\x79\xb0\x73\x8c\x73\x32\x5f\x6e\x08\xc4\xd8\xf2\xf9\x70\xae\x93\xde\xd5\x53\x45\x11\x95\xf8\x40\xe6\xbc\xce\x65\x7f\x6a\x45\x91\x85\x02\x56\x50\x94\xe7\x42\xc2\x82\x9f\x4e\x7e\xc6\x47\xb1\x6d\x16\x89\xf3\x65\xd1\x53\x4c\x9f\xec\x22\xb4\x83\x71\x45\x9c\xbf\xbc\x7c\x5d\x2d\xfd\x29\x12\x63\x34\x2f\x4a\xf1\xc4\x7f\x40\xbd\xac\x24\x0d\x5c\x24\x3f\x2e\xe4\x0e\xa6\x31\x0d\xfe\x67\x2a\x74\x8f\x62\x08\xb8\x71\x5d\xb9\xe6\x2c\xb8\x6f\x4d\x48\x18\xb5\x3f\xfc\xeb\x72\x3e\x9b\x2f\x5f\x77\xdb\x97\xdd\xd3\xec\xeb\x72\x47\xf0\x0f\x6e\x54\x4a\xd3\xc4\x90\xa8\x30\x5a\x33\xc9\xf2\x71\x42\x99\x7b\xf8\xae\x44\x69\x64\x58\xbb\x0f\xe5\x01\x8e\x7d\x7d\x6b\x15\xa5\xb1\xb0\xa6\xdf\xe6\x0a\x87\xcd\xee\xe9\x1b\x97\x05\x89\x51\xfc\xbc\xbf\x5f\x2d\x66\x8f\xbb\x5f\x5f\xb6\xab\xe7\x07\x04\xe5\xbd\xdc\xef\x9e\x5e\x9e\x7d\x0d\x2b\xca\x42\x86\xa5\xd0\xbc\x98\xc8\x83\xa6\x21\xb5\xc3\x19\xc7\x49\x8c\xfd\xad\xcd\xf6\x9f\x7e\x6a\x6f\xa1\x6e\x8c\xcf\x78\xaf\x61\xfc\xd3\x62\x78\xc4\x39\x45\xe6\x98\xc1\x07\xf2\x03\x8c\xca\x93\x91\x08\x23\x0c\x36\x94\xc5\x99\xd7\x66\x77\x74\x47\x53\x8a\x77\x09\xd1\x49\x7f\xf0\xeb\x52\xbf\x1b\x97\x99\x4a\x22\x47\xd5\x79\x0c\x7b\x06\x56\xdd\x7e\x18\x45\x69\x85\x36\x4d\x78\x29\x60\xf3\xc6\xab\xbe\xea\x81\x8a\x84\x64\xa8\x7a\x30\x87\xe6\xa5\x78\xed\xde\x19\x19\x06\x04\xfb\xf8\xcd\xa5\x97\x24\x47\x32\x36\x3e\x45\x77\xb3\x97\x75\x79\xa8\x7f\x70\x7c\x65\x56\x8b\x97\x0a\x93\xc0\x9e\x25\xbe\x6a\xd7\x22\x8c\x27\xb6\xb3\xc5\xb6\x7d\x7a\x8b\xd7\x6f\xab\xcd\xf2\x75\xb7\xfc\x6d\xfb\xda\xfe\xe9\xe5\x79\x37\x9f\x6d\xfc\xeb\x00\x94\x4a\x35\xc1\x19\x6f\xf7\xf1\x9f\xb4\x65\x86\xd7\x0b\x51\x90\x74\xb5\xbb\xdd\xa9\x77\xa9\x31\x51\x2a\xe2\x9e\xf1\xb1\xc9\x8b\xfd\xc1\xb9\x9a\xe2\x77\xb9\xd5\x61\xb8\x66\xc5\x34\x23\x78\xca\x6e\xd7\xab\x47\x8a\x40\x53\x3f\x69\xa2\xac\x15\x87\x22\xc1\x8a\xf3\x31\x2f\x8c\x59\x40\xbf\x49\xd0\x1e\x4d\xa4\x9f\x17\x1b\xae\xe1\x70\xe5\xe0\x6a\x87\x32\x16\xc4\x59\xf7\x76\xee\xda\xf4\x6d\x87\x6e\x59\x93\x10\x92\x98\x25\x66\x5d\xd8\x6c\x67\x0f\xcb\x1d\xd9\x6d\x57\xbe\x76\x18\x33\x6e\x7c\x8b\x54\xc5\xf7\x65\x81\xf5\xb9\x6d\x69\x0a\x16\xc3\x2f\x8d\x88\xc0\x17\x6c\x9b\x1f\xb1\xd3\xd0\x3e\x97\x5b\xd6\x7c\x93\x8b\x43\x1c\x31\x8a\xf9\xf3\x87\x23\x29\xb4\x7f\x0a\x71\x43\x58\x15\xaa\xac\x6a\x70\x7b\xaa\x3b\x2a\x43\xbc\xf5\xb3\xba\x86\xba\x9e\x4a\xea\x7f\x9e\xef\xc4\x71\xac\x42\xdb\xf9\x78\x3d\x57\xe7\x81\x76\x9e\x8a\xe3\xc4\x48\xa5\x9c\xf1\x8b\x65\x79\x3c\xe5\x87\xce\x2b\xb6\x1e\xac\xc1\xe9\xa4\x28\xa9\x8a\x63\x29\x75\x87\xc9\x5d\x43\xb5\x01\xeb\xfc\x4c\x26\xac\x65\x54\x1c\xab\x04\xb3\xa5\xbf\xc1\xf8\x9d\x2c\x2c\xc4\x09\x31\x91\x4b\xfd\x91\x37\xf2\x6d\x77\xea\x81\x3d\x55\x9c\xd0\xc0\x09\x7a\xde\x57\x00\x4f\x79\x81\xa6\x5c\xc3\xc7\x90\xa4\x61\x60\xc4\x6c\x1e\xcb\x3d\x62\x4d\xc0\x89\xc1\xde\xb8\x8d\x69\x44\x8c\x6b\x11\x7e\xd9\x6a\xfb\xb2\xab\x4b\xdd\x0c\x75\x58\xda\x51\x31\xe6\xa8\xff\x2a\x8b\x66\xd0\xcf\x8c\xb3\x88\x62\xb5\xc3\x3a\xdb\x3b\xf1\xf3\x6b\xac\xaf\x8a\xb3\xd4\x9c\x64\x9e\x37\xb5\xf4\x72\x7a\x2a\xce\x54\x1c\x18\xa3\x1a\xa8\x4b\x5f\x47\x8d\x33\x6d\x84\x08\xca\x76\xed\x9b\xd5\x1b\x2e\xab\x5c\xf7\xde\xf9\x4c\xc7\xa9\x9d\x00\x58\x78\x44\x6b\x16\x77\x90\x6b\x33\x1f\xf7\xd0\x38\x9c\xe2\x6b\x59\x0e\xfd\x72\x55\x2c\xa8\xb6\x8a\xb0\x75\x53\x95\x97\xd9\xe1\x30\xc8\xdf\x63\x91\x98\xc4\x19\x8b\xd5\xfb\x02\xd4\xb6\xb3\xf0\x69\x8f\x1a\xaa\xc8\x7c\xf1\x4f\xf7\x27\x19\x1a\xfc\xef\x31\x2f\x40\x61\x86\xb3\xab\xfb\x3b\x65\x2c\x53\xa3\x8b\xb8\x87\xe6\xae\x73\x7b\x26\xa1\x3b\x2c\x62\x74\xbe\x07\x87\xbf\x33\xba\xfa\xc3\x53\x28\x8d\x3f\x0a\xe1\x5a\x70\x3e\x7a\x9b\x74\x15\x4b\x00\x11\x79\x7e\x34\x52\x06\xb7\x25\xfa\x0f\xfb\x4b\x52\x34\x43\x6f\xce\xf2\xa3\xb8\xcf\x0f\x3d\x20\xc1\x44\x56\x90\x04\x91\x46\x69\xc1\xa7\xf9\x82\xd7\x6f\x83\x9f\x91\x10\xa2\x9c\x83\xf9\x4e\xf2\x42\xa1\xa2\x5e\xed\x8f\xa6\x29\xb1\x7d\x03\xc3\x26\x5c\x18\xff\xfb\x45\x0f\x70\xeb\x86\x4a\x8d\x40\xdb\xfa\x04\x46\xf7\x0b\x99\x53\x03\xb3\x95\xc1\x24\x4f\x68\x48\xf1\xbe\xaf\x0d\x2a\x6b\x5c\x13\x9c\xdc\x3d\x12\x9a\x46\xa9\xf1\x24\xad\xad\x82\x68\x73\x31\xcf\x74\x93\x2b\xd8\x96\x4f\xbc\xa7\xfb\xd9\xeb\x27\x25\x54\x84\x06\x9b\x63\xe8\x26\x58\x00\x7a\xee\x83\x60\x06\x77\x2c\x04\x8a\xb5\x22\xd4\xc5\x6c\x07\xff\x9d\x95\x26\x61\x81\xc2\xf5\xf7\xf7\xfb\x7f\xf4\x5f\xae\x24\x22\x0c\x59\x92\x2e\xdd\x16\xfc\x74\x7a\xca\x8b\xc9\x3e\x6f\x12\x07\x82\x45\x06\xbd\x2d\x7d\x31\xcd\xde\x9c\x51\x9e\x90\xb4\x8b\x27\x22\x66\x9e\x57\xdb\xd5\xec\x71\xf7\xf0\xf8\x32\x9f\x3d\xee\xee\x66\xab\xc7\xdf\x87\xa0\xaa\x24\xe6\x01\xea\xde\x58\x98\xd8\xeb\xd0\xdc\x40\x25\x09\xc9\x90\x14\x33\x7f\xf9\xf6\xbc\x1d\x7f\x38\x49\xd2\x2c\xec\x37\xe5\xeb\x3e\x38\x20\x49\xb8\x11\x03\xb5\xe0\xdf\x2a\xf4\x9f\xb3\xe0\x33\x54\xbe\xe5\xf2\xc7\xf5\xde\x9d\xa4\x71\xe4\xc8\x7d\x16\x90\x75\xe5\x80\xa0\x92\x2c\x96\x81\x73\xbd\x9b\x9d\x55\xde\x58\xdd\xc1\xe9\x89\x95\x81\xc2\xb7\xf7\x2e\xdf\xe7\x9f\xa2\x1c\x7f\x23\x8f\x05\xbe\xbb\x05\x7c\x36\x77\x80\xb5\x44\x6c\x7b\xb4\x6f\xa8\x57\x8e\xb2\x63\x45\x60\xe2\x01\xe9\x41\xeb\x28\x37\x38\x3d\x37\x65\xc8\xb1\xe0\xbe\x5a\xbc\xdc\xdc\x6e\x27\x57\xef\x44\x86\x22\x31\x5f\xe3\xb9\x62\xee\x48\x4a\x31\x19\xdf\x1d\x2d\x9e\xb8\x7c\x05\x59\xbe\xdf\x4a\xde\x13\xa9\x43\xf3\xaa\xc3\xa1\x51\xe5\xc7\xa8\x57\x9f\x40\x6c\x1c\x6c\xdb\x0b\x2d\xf6\x50\x74\xe2\xfa\x2a\x81\x84\x12\xab\x7f\x7f\x0f\x7d\x48\x9f\x29\x07\xd1\xf4\xdf\xf4\x3f\x6e\x68\x2a\x91\x1f\x09\xcd\xdb\xb6\x5c\x80\x17\xe0\x57\x09\x64\x19\x2a\x36\x99\xba\x16\xce\x31\x7b\x28\x0d\x08\x20\x8c\x67\x03\xcd\x91\x7f\x4e\x78\x9d\xa9\x34\x00\x8d\x0c\x85\x36\x80\x41\x5a\x56\x1b\x08\xf7\x2a\x44\xae\x58\x97\x06\x3a\xc6\x37\xea\xeb\xf9\x0f\x2f\xa3\xa3\x52\x92\x42\x6c\xe8\xcf\xb2\xac\xd4\x1d\xf4\x2a\x5a\xfd\x4b\xb1\x6f\xb1\x53\x1f\x1b\xfe\x04\x22\x28\x5a\x77\xac\xc3\xe7\x87\xc5\x76\xf7\x7e\xc3\xf5\xce\x8e\xa6\x84\xa1\x3a\xf4\x81\xd7\xcd\x3d\x97\x8d\x01\x0c\xf6\x0c\x11\x55\x4a\x69\x82\x34\x57\x23\xe9\x7e\x99\xb7\x09\xf5\xed\x0a\x4e\x4a\x95\xc2\x77\xc9\x90\x8f\x06\xa6\xb1\x2a\x0d\x03\x6a\xaa\x4c\xd5\xe5\xb4\x2d\x0f\x87\x79\x59\x3a\x1f\xd1\xd1\xaf\x3c\x8f\xbd\xc9\x54\x1a\x12\x63\x6d\x79\xff\x6d\x1b\xb9\x13\x26\x96\xd7\xfd\x51\x56\x3f\xb0\x46\x31\x7e\x22\x49\x2a\x98\xb6\x92\xa1\x5d\xf8\x3d\x19\x3c\xa6\x69\x98\x86\xd0\x13\xee\x5c\x76\x15\xb0\xd1\x4d\xce\x88\xc2\x74\x5f\x1b\xe4\x99\xa5\x04\x99\x22\xe5\x13\xef\x0c\x01\x54\x9a\x45\x0a\x49\x59\x27\x5e\x75\xf7\x6d\x74\x32\x19\x10\xee\x11\x41\x2b\x47\x3c\x55\x29\x4f\x12\x44\xb0\xf1\x29\xb3\x5e\x37\x06\x34\xb6\x15\x76\xbe\x22\xfb\xd8\x07\xe8\x4d\x55\x79\x53\x21\x29\x76\x1b\x8c\xe6\xe1\xf2\xbf\x84\xda\xed\xdf\xee\x07\x64\xb4\x2f\xa4\x32\x12\xd8\xf9\x2d\x2b\x05\xd5\xfa\xc0\x7b\xe7\x9d\x6a\x6a\xbb\x4f\x71\xca\x6d\x60\xe4\xe8\x14\x57\xf2\xd7\x2a\x55\x24\x72\x40\xf9\x6f\xb5\x95\x0f\x72\x87\x68\x16\x58\x38\xe8\x57\xb8\xac\xa1\xb2\x46\x5c\xf5\x50\x7d\xcf\xff\xc7\x7d\x8c\x31\x7c\xb9\x2b\xfe\xf1\xad\x06\xdc\x23\x87\x97\xa3\x54\x88\xe7\xb5\x4f\xcf\xba\x53\xb9\x5a\xa6\xfb\x76\x08\x24\x35\xf6\x66\x4f\x08\x21\xb2\xa4\xe4\xd9\xa0\xf0\xe3\xb5\x32\xef\x66\x2f\xf6\x96\x6f\x0a\x7e\xda\xbc\xf9\x60\x28\x85\x24\x41\xfd\xe4\xfd\x98\x56\x33\xfe\x77\xf8\x23\x35\x8d\x59\xe0\xb4\xb9\xaf\xfc\x47\x47\x63\x43\x81\x3f\xc2\xc9\x5f\xba\x02\xd6\x64\x23\x2c\x0b\x94\xe1\x93\x6d\x5f\x5f\x9e\x57\x56\xb2\x53\x65\x24\xce\x30\xcb\x98\x5a\xfc\x27\xb7\xa9\x8c\x00\xc5\xd4\xe9\xe9\xd7\x27\xca\x0c\x23\xac\x5e\xf0\x93\xa7\x01\xab\x8c\x42\x84\x1b\x4a\x7e\xba\x38\x98\x76\xc6\x62\x8e\xb0\x83\xa6\xe2\xf5\xdb\x18\x9a\x9c\x31\x08\xa3\xbe\x44\x98\xe9\xf9\x0f\xb7\xfa\x8c\x69\x62\xcc\x9b\x0f\xbc\xd1\x65\x75\x7c\x2c\xf7\xe5\xb5\xd6\x9d\x1d\x1c\xc5\x02\x5f\x6a\x13\x37\x3d\x20\xcc\x71\xaa\x66\x99\x45\x49\x88\x0c\x84\xf7\x2f\xbc\x6e\x03\x79\x35\xbd\x4a\x64\x11\x37\x82\xf5\x4f\xf9\x9f\xe7\x5e\xdd\x22\x8b\xad\x45\x87\x09\x92\x5c\xe3\x77\xb6\x58\xfc\x1c\xda\x98\xc5\x20\x63\xc7\xd5\x57\xc7\xbc\x40\x8d\xce\x9e\xb1\x89\xc7\x5e\xfb\x19\x9e\x25\x91\x71\x8f\x3e\x7e\x0e\x67\x76\x96\x24\x12\x55\x87\x3a\x4e\xe6\x7d\x79\x03\x09\x91\x25\x59\x8c\xb2\x1f\xdf\x97\x8f\xdb\x8e\x93\xa7\xb2\x34\xe3\x88\x1a\x78\xbe\x54\x65\x81\x19\xcb\x6e\x5c\x87\xcd\x52\x95\x21\x07\xd4\x4a\x09\xbb\x1c\x7d\xaa\x32\x90\xa5\x5a\xe1\x0a\x65\x03\xb7\xe9\x98\x27\xcb\x82\xc4\x71\xd5\xee\xa0\x28\x8f\xb9\x91\xbb\x98\x5f\xae\x5d\x28\x54\x96\x41\x80\xaf\xd4\xf1\xb2\xce\x0b\xfb\x02\x6f\xa1\x6e\x5c\x5b\x30\xe3\xca\xb8\xeb\xbb\xfb\x60\x05\xdc\x07\xb0\x14\x3b\x54\x32\x1d\x38\xf9\x50\x80\x57\x90\xf9\x29\x87\x31\xc0\x24\x53\x91\x71\x66\xae\xa1\x50\xdf\xf3\x62\x5f\x9b\xf8\xa0\x7e\xf1\x84\xb4\x76\x8c\xc0\x5e\x95\xbd\x1b\x8b\xd9\xf6\xc6\x94\x6c\x57\xa0\x0c\x31\x56\x3f\xe0\x7c\xda\xbc\xe5\xc5\x08\x6c\x9d\x81\xa4\xc4\xa1\x73\xfb\x4a\xbe\xc3\x51\x9a\xc7\x8e\x0f\xe9\x2a\x0a\x73\x5f\xe6\xcb\xb4\x4a\x11\x2e\xd9\x6e\x78\x6b\xa8\xea\xee\x9a\x79\x40\x78\x24\x9c\xe4\xe2\xfe\x3c\xb1\xbe\xdc\x5a\xa3\x06\x77\x85\x07\xa1\xc6\xfa\x35\xa6\x80\xfb\xb2\x91\x6f\xf9\x8b\x23\xfe\xfc\x4a\x7f\x19\x0d\x8e\x80\x5a\x2a\x5c\xfb\xda\x74\xd2\xd2\x6e\xf6\xf2\x20\x95\x08\x3a\x34\xcb\xd8\x06\x40\x79\x2f\x3e\xdf\x17\xfc\x77\xf6\x9f\xde\xff\xeb\x3e\xc8\x33\xdc\x9f\x5e\xcf\xee\x6d\xe4\x84\x2a\x6c\x23\xbc\xa8\xf3\x07\xef\x45\x89\x9c\x32\x8d\xea\xa5\xf2\x50\xd6\xc8\x6e\x73\x5b\x35\x0f\x59\x90\x19\x3b\x95\xe2\x6c\x45\xa8\xfc\x21\x15\xe2\x42\x76\xcc\x8b\x2f\xcb\xdf\x3c\xc5\x52\x71\x96\x24\xd4\x4e\xdb\x31\x28\xce\x8d\xe0\x04\x65\x57\x90\x8e\xee\x3b\x0b\x83\x07\xc9\x23\x26\xf1\x75\xba\xc3\x02\xd9\xf8\x6d\xe3\x11\xcf\x30\xc5\x45\xd6\xcb\x37\x27\x02\xf8\xc4\x3f\xad\x80\xe4\xe4\xfb\xcd\x23\x1d\x61\x6d\xf4\xce\x59\x4b\x7b\xdd\x2b\xc5\xe3\x98\xa6\xbc\xdf\x8d\xfe\xbc\xb1\x7c\xf2\x58\x58\x3c\x60\xf9\x0e\x3d\x3c\x73\xfa\x6f\x92\xc4\xff\xb9\x55\x86\xe4\xb1\x64\xc4\xab\x57\xe4\x45\x73\x5f\x95\x57\xa2\x37\x6e\x28\x04\x98\x02\xee\xca\x13\x14\xb3\x42\xfd\xa3\xcc\x8b\xc5\xdd\xfa\xfb\x72\xfb\xe5\x97\xf1\x48\xc3\xc7\x68\x52\xf8\xec\xa7\xa7\x3c\x8d\x38\xb1\x5a\xb1\x8b\xe5\xe7\xe8\xfe\xa7\x19\xc7\x62\xd6\x07\xe4\x66\x33\xf1\xfb\x08\xcf\xe2\x88\xf6\xcd\x4a\xda\xd9\x46\xa7\xad\x95\xdc\x27\x92\x94\x98\x00\x9d\xab\x6f\xe6\x88\x0f\x46\x5c\x6c\xcf\xb3\x4c\x47\xc6\xc9\x12\x11\x6e\x0b\x5e\xa9\x3b\x7e\xbc\x7e\xea\x3c\x70\x00\x3d\x0d\x55\x05\xd5\x63\x5e\xfc\x00\x04\x73\x8d\x3a\xc0\x9c\xa7\x09\xa2\x0b\x56\x86\x72\x9f\xff\xd9\x5d\x03\x17\x14\x39\xad\xd5\xb9\x58\xf9\xfe\x36\x17\x14\x70\x51\x3b\x80\x6e\x52\x3a\xfa\x5e\x49\x62\xec\x87\x6f\xd0\x9e\x68\x83\x42\x1b\xfd\x37\x44\xb2\x54\x74\x8e\x31\xf0\xff\xb2\xb2\x53\x5c\x46\xb1\xc5\x5e\xf5\xdd\x52\x6e\x0b\x9a\x29\x2e\x93\x80\x79\x9d\x85\x29\xae\xbf\xe2\x52\x07\x88\xc9\xdd\x7e\x99\x2d\x5e\x5c\xeb\x96\xb7\x4f\x12\x91\x6a\x3d\x60\xf1\xa8\x25\xc2\x95\x66\x18\x66\x36\xfc\x07\x38\x0e\xec\xe8\xe4\xc0\x00\x97\x8c\x76\x59\x5e\x35\xaf\xbd\xd7\x5f\x07\x29\xb6\x67\x8f\x60\x44\xab\x86\x9f\xd3\x49\x84\x5d\x9d\x0a\x14\xc0\xc8\x03\x7b\x1c\xdc\xf9\x49\xa2\x53\x8e\xbc\x88\x3b\x53\xf2\x9b\xc0\xa5\x8b\x20\xe1\x60\x5b\xa4\xed\xd6\xe4\xb7\x45\x9f\x5c\x8b\x20\x53\x8e\x76\xb2\x39\x1d\xf2\x66\x5d\x36\xb3\xfa\x3e\xff\x04\x85\xb8\xed\x2b\x0d\xb1\x5e\x0c\x21\x48\xa2\x70\x79\x58\xdc\x6d\xa7\xbe\x9c\x72\x8a\xe5\x14\xfe\x61\xc3\x62\xa7\x59\x34\x0a\x9b\x44\x18\x08\x57\x7f\x7b\x6a\xb3\xe2\x86\x1f\x06\x05\x3a\x11\xa6\x12\x99\xd5\xc5\x1d\x1c\x4b\x59\xfb\x3f\x67\x9c\x78\x05\xd4\xfb\x1e\x21\x40\x84\x99\xc2\x4e\xfc\x17\x7e\xe9\xc9\x9b\x29\x11\xea\x2c\xee\x83\xbb\xcd\xfc\xed\x8e\x6a\xee\xf2\x88\x39\x34\x93\x1c\x16\x3b\x94\xd1\xd4\x88\xf4\xe0\x3e\xe3\x66\x0a\xde\xaa\x06\x8e\x93\x49\x9a\x60\x71\x86\x7c\xc0\x53\x55\x7e\x5e\x3c\x40\x6b\xba\xb3\x38\x8c\xce\x05\x93\x0a\xf7\x08\xcf\x2d\x10\x11\x65\x5c\x79\x24\x42\x77\x67\xdd\xe1\x30\x20\x46\xc5\xb5\x3e\x0b\x59\xe5\x62\x84\x00\x10\x91\x22\x08\xf5\xa9\x9d\x40\xfb\xf6\x71\x4d\xfd\xa7\xb5\xa1\x40\xf3\x43\xd3\xa6\x53\xb8\x62\x60\x3f\x6e\x0d\x15\x36\xe7\x46\x4f\x3a\xa6\xca\x19\xf5\xd9\x0c\xe6\xbe\x34\xb2\xb1\xc3\xcb\x88\xe3\x14\xc3\xfd\x3b\x78\xdf\xe1\x8c\x71\x32\x77\xee\x8b\x63\x1e\x92\xbe\x22\xf3\xbc\x2a\x7f\x5c\xd7\x79\x46\xf7\x35\x01\xe3\x94\x94\x17\x4d\xf9\x0e\x95\x3e\x94\x1f\xbb\xe3\xf9\x30\xfa\x8d\x29\x50\x8c\x6b\xe1\x9d\x1f\xce\xc6\x51\x09\x2d\xca\x66\x13\x61\x91\x48\xed\x22\x81\x40\xc2\x7c\xff\x26\xca\x73\x65\x75\x67\xed\x08\x11\x00\xc6\x2d\xdb\xf3\xbf\x78\x3e\xc5\xfe\xbd\xae\x3e\x08\xa1\x8c\xee\xf6\x02\xda\xe9\xd2\x6b\x21\x09\xa1\x25\x4b\xfc\x1b\xf0\x58\x8e\x33\x0b\x21\x43\x63\xa9\xf1\x6d\xde\x9f\xce\x60\x35\x93\xdb\x54\x87\xe7\x23\xfd\x4e\x25\x49\xc0\xb1\x8c\xea\x11\x05\xc8\xdd\xb8\x2f\xab\x6d\x7e\xcd\x62\x1b\xe8\xc0\x8e\x6a\x4d\x92\x10\x9e\xda\xba\xd8\xf3\xf9\xb8\xcd\xe5\x8f\xd1\x0a\x26\x89\x30\x7e\x75\x18\x13\x3d\x1a\x34\xe3\xac\x50\xeb\x31\x08\x47\x12\x21\xa2\x6e\x51\x1f\xa9\xac\x8f\xce\x29\x13\x2c\xfc\x7d\x9d\x3d\xff\xee\x3a\x81\x92\x92\x28\x51\x83\xb9\x56\x5f\x19\xf0\xb8\xa1\x54\xa2\xca\x24\x47\x99\x59\x1b\x7a\x8c\x86\x64\x0c\x6b\x75\x15\x6f\xa0\xbe\x2f\x2b\x83\x55\x91\xb9\xdb\x3f\x99\xbf\x05\xa1\x0a\xb0\x07\x58\x49\x57\x39\x92\x2c\xd4\x58\x5c\x99\x29\xe5\x0b\xf1\xfe\x58\x26\xac\xa0\xc9\xe1\xb0\x7c\xde\x8c\x5a\x90\x6e\x90\x4a\x91\x38\x72\xb2\x73\xd1\x18\xaa\x8e\xee\x2c\x53\x12\xb9\xea\xc6\x4f\xd6\x01\x52\x6e\x33\x43\x27\x5f\x12\xb4\xe9\x6c\x7f\xcf\xd7\x5c\xfe\xd8\xa0\x42\x9a\x53\x02\x72\x03\x38\x68\x70\x0b\xc2\xaa\x68\xa3\xcc\xfc\x1d\x26\x22\x3f\x19\x0b\x03\x15\x55\xee\x18\x3c\xbe\x3e\x5f\x53\xd5\xdd\x68\x1d\x2a\xfd\x77\xa4\x41\xae\x0a\x32\xf6\x04\x49\x20\x91\x13\xb4\xab\xdf\xd0\x47\x75\x6d\xb5\xce\x06\x70\xf5\x1b\x57\x9d\x24\xcc\xc8\xa1\x56\xfc\x23\x2f\xf6\xeb\x2a\x2f\x9a\x6d\xe9\x66\xcb\x78\x2c\x60\x07\x8d\x17\x6a\xfb\x06\xc5\x64\x26\x2a\x53\x6a\xfc\xb4\xde\xcb\x06\x9e\xcb\x76\xf6\xde\x98\xbb\x69\x2c\xd2\xc8\xd9\x8c\x3f\x40\x63\x50\x7c\xf6\x9b\xef\xf2\x1b\x8a\x6e\x6d\xce\xc9\xb5\x37\xa0\x35\xa8\xbb\x0e\x77\x21\xb3\x58\x61\x98\xda\x06\xc5\xc3\xba\xa8\xe4\x51\x88\x49\x42\x95\xef\xdf\x9a\x30\x18\x5d\x9c\x63\xb6\x5b\xf5\xf2\xbe\x7b\xe8\xf8\x39\xfc\xad\xd8\x4c\x8a\xc4\x78\x75\x5f\xca\xfa\xad\xe7\x4f\xab\xa4\xb0\x12\x5d\x8b\xf5\x8b\xff\x13\x97\x49\x1f\xff\x6e\x3c\xdc\x27\x3a\x54\x52\x48\x43\x64\xe6\x4a\xb5\x2f\x8e\xb9\x03\xae\x04\x35\x51\x2a\x96\x42\x99\x40\xb3\x86\xa6\xcb\x06\xc9\xc0\x8c\x46\x49\x19\x2b\xe4\x5c\xd4\x27\xfe\x51\xcc\x3e\xf3\xab\xb9\x67\xc7\xa9\x2c\xc6\xa5\xa5\x50\xd2\xfd\x74\xa5\x94\x22\x16\xd1\xbb\xe1\x1a\x70\xf2\xdc\xe7\x9f\xee\x38\xb0\x10\x97\x3d\xae\x14\xd2\xc9\xa7\x27\x03\x64\x19\x73\xa6\xf9\xed\xce\x26\xcb\x2b\xf8\xaf\xd4\x44\x20\x22\x47\xe7\x07\x78\x82\xea\xc7\x01\xba\xac\xe0\xc6\x33\xd0\x2c\xc2\x2f\x6f\xb7\x84\xbb\x72\xdf\x4f\x68\xa4\x4e\x24\xb6\x94\xdb\x60\x23\xbf\x45\xb2\x56\x24\xe5\xd4\x61\x9f\x1b\x38\xd6\xcf\x65\xe3\x4c\xcf\x47\x5b\x80\x22\x19\xc3\xd0\xa9\x0d\x5a\x0e\x48\x97\xe6\x7d\x11\x18\x3b\x8a\xfe\x2f\x69\x6f\xd2\xdd\x38\xae\x65\x0b\xff\x97\x1a\xc5\xe0\x0e\x08\x36\x00\xf9\x66\xb2\x24\x3b\x5c\xe9\xae\x2c\x39\x22\xb3\xee\xaa\xa5\x85\xe6\xc0\xe2\x35\x45\xaa\x48\xca\x0e\xdd\x5f\xff\x2d\x1e\x34\x6c\x44\x3b\xe3\x7d\x2f\x07\xe9\x58\x02\xd8\xa3\x39\xcd\x3e\x7b\xa7\x91\x74\x30\x94\xcd\x81\x17\xc5\x68\xf1\x57\x61\x1a\x83\xd5\xe2\x59\x14\xc5\x4d\x55\x8c\xca\x7c\x86\x15\xcf\x2a\xca\x8c\x1c\xf6\xe6\xd1\xc5\x02\x55\x9c\x64\x18\x1d\x39\x35\x50\x37\x4b\x5e\x22\x9e\xc8\x37\xa6\x02\x23\xb2\x5e\x3b\xec\xe9\x79\x7d\x7f\xfb\x72\xbf\x7b\x5e\x6c\xd7\xbe\x13\xa7\xc8\x93\x52\x54\xd5\xdb\xe9\x38\x8f\xba\x54\x49\x9a\x2a\x13\xef\xef\x05\x1a\xb7\xd5\x76\x00\xf8\xf9\x3a\x1c\xa7\x28\x0b\xb1\x0e\xb3\xe8\x36\x95\xf6\xca\xd7\x20\x2a\x9a\x72\xa9\x5c\x9c\x0e\x8f\x80\x4f\xab\x96\x3f\x3b\x77\x6a\xd4\xcd\x9c\x40\xb5\x2d\x10\xb3\xad\x29\x23\xa8\x75\x24\x79\xe9\x35\xc1\xfa\xaf\x9d\x02\x41\x81\x98\x37\x78\xf3\x07\x80\x61\xba\xeb\xf6\x3f\x57\xf4\xad\x78\x1a\x21\xf1\xf6\x21\x2f\xc7\x2a\x49\x4a\x71\x08\xd3\x21\x06\xdd\x0b\x02\x4d\xfc\xcd\xce\xe1\xc1\x73\x6c\x5a\x5e\x0b\xc7\xb9\xfe\x37\xef\x4d\x84\x26\x8e\x9f\x0f\x74\x83\x90\x38\x08\xd3\x32\xfe\xf6\x84\xa4\x91\x1d\xb4\xd6\xc5\x9b\xf1\x3e\x94\xcc\x52\xd1\x93\x1e\xfd\xf1\xd7\xd2\xa4\x56\xc6\xb3\x4e\xa9\x94\x60\x84\x4b\xe7\x35\x86\xb8\xf2\x4a\xf5\xa1\x19\xa5\xd2\xd0\x49\xc2\x5d\x9d\xea\x12\xea\xf1\x9e\x33\x39\x15\x70\xda\x6b\x1f\x8d\x24\x10\xe6\x70\xe9\x0a\xc2\x80\xda\xea\x2b\x84\x98\x34\xe3\x1a\x9d\xa9\x0d\xa6\x74\x98\x65\xf6\x66\xf0\x36\x3c\x47\xf1\xac\xf1\x03\x01\x89\x33\xe6\x22\x3e\x2e\x87\x3e\xa0\xd0\x9a\x5d\x10\x20\x88\x99\x32\xa2\x66\x79\xd3\x3e\xd9\xe0\xf8\xf8\xd3\x42\x00\xd4\x18\x83\x08\x0c\xa8\xab\x43\x35\xb0\x0e\x20\x64\x81\xf4\x1b\xdf\x75\xfe\x6b\x79\xaa\x6d\x79\x96\x3f\x41\x98\x72\xa7\xac\x3f\x87\x56\x87\x90\x87\xb8\xae\x55\xa5\xd3\x82\xfe\x8c\x06\x75\x72\xf7\x91\xe0\x19\xf3\xcb\xcb\xad\xea\x6c\x18\x9d\xf7\x90\x11\x88\x03\x23\x77\x89\x8b\xd2\xc4\xbf\x87\x38\x32\x91\x99\x1d\x57\xea\x16\x01\x2b\x96\xc4\x71\x36\x63\x02\xb1\x34\xa1\xd3\x62\x68\x04\x0c\x73\x59\x97\x76\x34\xc4\x52\x8a\xa0\x8f\xeb\x60\xe5\xa2\xbb\x7c\x12\x6a\xe4\xf2\xd9\xf2\x37\xb8\x37\x0c\x46\x5b\xe0\x87\xf1\x02\x0b\x54\xc9\x24\x19\xda\x07\x8f\x7a\xa6\x6e\x0f\xa8\x0e\x30\xf5\x73\x2a\xbb\xdb\xbb\x3e\x95\xaa\xbe\xe2\xc5\xa0\xa0\x05\x18\x44\x49\x30\x3c\x51\xb7\xb0\xd9\x8b\xad\x91\x7b\x74\x76\x98\x43\x4a\x12\x57\x4d\xb9\x56\xf9\x60\xdd\x1e\x7f\x8a\x8c\x04\xc2\xe2\xc4\x37\xf0\xda\x0b\x58\xff\x16\x18\x00\xb2\xd0\xd4\x29\xad\x00\x8e\xdd\xee\x36\xdc\xda\x20\x63\x32\xb5\xab\x28\x96\x85\xbd\xf3\xa2\x5b\x29\x16\xea\x5f\x27\x9b\xa8\xb2\x31\x44\xe0\xc4\x28\x6f\x7a\xe8\xce\xfa\x97\xa1\x27\xbe\x55\x57\xe7\xaf\xe4\x32\x14\x70\x11\xe0\x1a\xfe\x5a\xf3\xb2\xbd\xab\x78\xe9\xa3\xd2\x5f\xb2\x88\x2b\x10\x22\x45\x61\x9f\xcd\xf2\x7a\x74\xd7\x42\x32\x07\xe3\xda\x21\xea\x76\x50\x28\x09\x92\xa4\xa8\x9f\x7a\xa8\x5a\x27\x16\xac\x40\x32\xc3\x89\xb8\x33\x3e\xfe\x76\x0f\xa6\x40\xef\xd3\xec\xdf\xf0\xd1\x25\x53\x58\x3f\x37\x0c\xfd\x4f\x23\xf4\xa3\xed\x6f\x9a\x17\xfc\xa4\x75\x36\x28\x65\xaf\xa9\x82\x10\xe3\xb0\xf9\x73\xee\xf7\x65\x50\x24\x75\x6a\x61\x8e\xac\xe2\xc9\xb0\xae\x7d\x2a\x3e\xff\xe9\xdf\xc1\xf0\x55\x2a\x93\xd2\xc9\xb0\x4e\xa8\x83\x6c\x17\x08\x63\xc4\x87\x2d\x6e\x9f\x77\xe1\x18\xcd\x03\xc0\x05\xba\xe2\xba\x06\x5b\x26\x8e\xdc\x2e\xca\xb7\x6b\xed\xe4\x3b\x36\x95\x6e\x25\x3f\x8e\xf9\x5c\x40\x27\x29\x71\xa2\xe4\x67\xe3\x25\xc9\xe9\x1c\xd0\x1c\x64\x9f\x53\xfd\x91\xd7\xed\x89\x17\x93\xf9\xac\xc1\xd4\xb1\xe2\x38\x33\xf5\x6c\x9f\x94\xc9\xba\x03\x74\xe6\xde\x27\xae\x11\xbe\xec\x41\x87\x69\x22\xad\x95\xd9\xcb\x39\x5f\x86\x11\x47\xf7\xa8\xc3\x4c\x38\xad\xce\xb6\x80\x2b\x68\x5f\x4a\xe9\x0c\x50\xa3\xeb\xef\xb0\xfc\xee\x6f\x77\x7c\x1c\xb8\xc3\x95\x36\x69\x34\x23\x32\x6f\xe5\x71\x96\x56\x47\xdb\xdd\x59\x14\x6b\x74\x16\xc4\xe9\x6c\xeb\xca\x26\x2e\xd8\xe4\xa6\x22\xa1\xd0\xcb\x5a\x5c\x3d\x2f\x90\x22\xcb\x9f\x48\xa5\x08\x2a\x14\xe0\x13\x75\x3a\x49\x0d\x4b\x87\x47\x2f\x6c\x64\x55\x43\x73\xab\x97\x50\x14\xb7\xcd\x55\x85\x74\x7b\x5f\x6e\x1c\x3a\xd1\x19\x02\x34\x73\x1f\x1d\xff\xed\xb1\x39\xfa\x3a\x9a\x06\x4c\xdb\x55\xf5\xfe\x6c\x88\x8e\x7d\x4b\x86\xf6\xbd\x31\x0f\xae\xeb\xea\xdf\x30\xcb\xa0\xa8\x34\x8d\x29\x32\x06\xdc\x3d\x6e\xb7\xeb\xe7\xbf\x76\xd7\x2f\x0f\xab\xdd\xe6\xfb\xe2\x79\xed\xcf\xc5\x29\x2e\xae\xa7\x52\x54\x9e\x3c\x43\xb3\xc0\x60\x1d\x5e\x1d\x94\xeb\xe2\x19\xfa\xf9\xa3\x59\x14\x65\x86\x36\x8d\xab\x7b\x68\x38\xaa\xc7\x9c\xa7\x4b\xc4\x84\x88\x5f\x69\x96\x08\xe5\x25\xb5\xec\xc4\xe9\xc3\xe8\x3a\x25\x61\xa8\x1d\x59\xee\xe7\x44\xc3\x4a\xa7\x54\x21\xfd\x07\xcc\x51\x49\x2b\x9d\x2a\x86\xf8\x5a\xbc\x8d\x25\xba\x11\xed\x1e\x19\x8c\xbe\x8d\x96\xa3\x7f\xc6\xee\xc6\x52\x4d\x06\x90\xfa\x1f\x55\x7b\xe1\xe4\xf9\x67\xc8\x22\x9d\x19\x31\xdc\xe5\x9d\xbb\x60\x96\x84\xb8\xad\x4e\xea\x09\xdd\xdf\xd1\x60\x11\x59\x8c\x3c\xaf\x25\xfc\x42\xb3\xf0\x1a\x30\x98\x38\x9e\xfc\x5a\x06\x99\xe3\xc1\xb4\x41\xa5\xf3\xe6\x7c\x10\x95\xf3\xe5\xb5\x0c\x19\xa2\xbe\x97\x45\x75\x52\xa2\xce\xe5\x64\x18\xc8\x10\x62\xa3\xba\xe4\x38\x8d\x95\x96\x51\x9c\x98\xb4\xef\x2f\x67\x1a\xb9\x26\x45\x84\x46\x8a\x79\x80\xd6\x96\xe1\x6f\x00\xe9\xee\x4e\x75\xdf\x29\x0a\x11\x64\xf7\xe3\x71\xbb\xde\x2d\x6e\x16\xb7\x0f\x4e\x17\x48\x69\xdc\xb3\x0d\xa1\xfa\xdd\xdd\xe2\xf9\xe6\xf1\xce\x39\x5e\x1a\x54\xe8\xbc\xec\x6e\x6a\xb7\xb0\x23\xf1\x08\xa4\xae\x01\x32\xab\xba\xe1\x35\xb2\x26\xcb\xb1\xd6\x9d\xed\xe2\x70\x19\x4e\x41\x7a\xf4\xcc\x10\x04\x49\x82\x65\x61\x48\xf9\xd1\xf9\x00\x83\x2d\x14\x82\x80\x31\xc3\x28\x53\x57\x47\x68\xf7\x67\xff\x3b\x37\x32\x48\x35\xbc\x57\x6f\x60\x15\x54\x26\xd8\x07\xd7\x55\x64\x3c\x33\x65\x99\x76\x8d\x9a\xd0\xdd\xff\x33\xfa\x1f\xdf\xd5\x70\xeb\xae\xaa\x07\xa4\xe1\xad\xd4\xd9\xc8\x4e\x6c\xf7\x79\x73\x03\xed\x76\x0f\x28\x6d\xf9\x58\x82\xbf\x11\x60\x6e\xd7\x78\xa8\x3c\xfb\x93\xc7\x87\x43\x40\x44\x08\xa6\xf0\x48\xe4\xfe\x37\x15\x65\x7e\x83\x3c\x2e\x7a\xb5\x54\x6b\x69\x42\x40\x40\x24\x16\xdd\x65\xcb\x4c\x7c\x83\x42\x5b\x8c\x37\x4d\x25\x73\xde\x82\xea\xdd\xca\xe1\xcb\x87\x20\x14\x29\xb2\x34\xfc\xa8\xf2\x63\x3b\x7c\xa7\x11\xa1\x88\xf5\x43\x65\x96\xd0\x05\x5c\x0e\xbc\x27\x76\x83\x20\x52\x81\x74\x7c\x53\xdd\xf4\x32\xec\xa2\xf0\xa8\xbf\xe7\x4d\x5b\xd5\xb9\xe4\xc5\x3d\xb4\x5c\xf1\x96\xcf\x65\x3e\xba\x13\x44\x99\x4d\x60\x5b\x80\xab\x59\xff\xac\xf5\x3f\x34\x9e\xed\x11\x31\x65\xe1\x20\x81\x88\xc5\x8f\xd0\xe4\xff\xfe\x22\x79\xe8\x8e\x64\x29\x86\x34\xba\x71\x38\xe1\xcc\xee\x1a\x33\x96\x58\x74\xe4\x3b\xd4\x98\x94\xb4\x49\x8a\xdf\x82\xa9\x42\x90\x08\x85\x62\x71\xad\xf3\x4d\x3b\xb3\xb9\x7b\x1b\x43\x91\xdb\xdf\x35\x68\xdc\x39\xc1\x7c\x1c\x71\x3a\x77\x7b\x96\x1f\x2d\x34\x55\x98\x8f\xc2\x84\xd1\x8f\xa1\x0c\x3d\x04\x34\x23\x86\xf2\xcf\xb0\x02\x6d\x6b\x9e\x97\x70\xc1\x2a\x38\xfd\xeb\xe0\xab\x10\xb0\x8c\x9b\x5c\x57\x8e\x20\xc5\xce\x43\x18\x59\x26\x10\x30\x19\x21\x9f\xf9\xbb\x99\x4f\xc3\x72\x02\x08\x98\x0e\x0d\xb4\x6c\x9f\xeb\xf6\x2a\x6f\x9b\x3b\xd0\x43\xd5\xc6\xfe\xe1\xd2\xd8\x54\x55\xfc\x58\xcf\x82\x34\x47\xb3\x33\xd5\x86\x4f\xa6\x5b\x67\x6e\x1e\x27\xdf\x8e\xd3\x00\x2d\xda\xbb\xc7\x9b\x5d\x09\x1f\x37\xbc\xb9\x94\x16\x87\x40\x10\x53\xae\x08\xa5\xda\x89\xc2\x8b\xf0\x74\x0d\x09\xfa\x86\xbb\x53\x79\xe4\xf2\xcd\x2c\xf4\x97\x7c\x78\x10\x88\x58\x0a\xea\xf9\x96\xf9\x2e\x9c\xb6\x27\x0a\x49\x20\x6c\x99\x08\x6a\x05\x96\x6a\x5d\xaa\xb9\x11\xe0\x8e\x01\x8a\x8c\x84\xc6\x1d\x9b\x14\x67\x74\xcd\xcc\x42\x83\x5a\x97\xc9\x7b\x42\x65\xf8\x4f\x4e\x27\x53\x99\x7a\xd4\xce\xa9\x6c\x4d\xc2\xff\x93\xbe\x99\x51\x2f\x7b\xee\x6c\xe4\x57\x5e\x8e\x56\x54\x65\xfd\xe1\xb7\xba\x79\x69\x94\xfb\x15\x42\x42\xd2\x41\x09\x9a\x25\xad\x72\x73\x7b\x74\x7a\x08\x33\x24\x41\x52\xa7\xc3\xd1\xcb\x89\x42\xa0\xb9\x44\xa4\x8e\x79\xe0\x0b\x2c\xa9\xeb\x05\x12\x69\x97\xde\xca\xea\xa3\x34\xaa\xab\xe0\xef\x42\x6b\xc3\x17\x6f\x37\x1d\x68\x2d\xe9\xf4\x21\x1f\x13\xfc\x00\x09\x08\x63\xa2\x97\x7f\x5d\x59\x6a\x9d\x6f\xbe\x19\x90\x7a\x17\x8c\xbb\xda\x93\xaf\x8f\x3f\x2c\x09\xe2\x04\xac\xc4\xc9\x4f\xc7\xd4\x3e\xa1\x78\x00\x42\x92\x38\xb6\x02\xa7\x43\x06\x7b\x20\x44\x49\x64\x29\xaf\x8e\x50\x5e\x66\x4d\x80\x84\x91\x61\x1e\x7d\xe5\x87\x71\xdd\x01\x90\x88\x68\x3e\x49\x89\xcd\xdb\x4d\x40\x22\x16\xea\xd8\xf3\x04\x7f\x99\xfd\x00\x92\x64\x52\x59\xed\x27\xf4\x5e\x9f\xf1\xfc\x97\x75\x70\xe3\x4b\x24\x8a\xe2\x2e\x8b\x26\xde\x83\x15\x5c\xf2\xa2\x01\x7d\xd6\x12\x08\xa5\xa6\x46\x14\x85\x42\x9e\x78\xfd\xb6\x38\x1e\x5d\x1b\x0b\x35\x46\x22\xb1\xc8\xd9\x45\x0b\xf9\x8c\xbd\x0b\x84\x25\x69\xc0\x7b\x1e\xc1\x64\x36\x34\x85\xdd\x70\x71\xe0\x4a\xf5\x38\xde\xd9\x10\x2e\x10\x26\x28\x8e\x9d\x63\x5d\x1d\xf2\x66\xac\x13\x05\x24\x23\x21\x6e\x47\x70\xc8\x5b\xd4\x68\x37\x8b\xc1\x4d\xfe\x3e\x63\x33\xf7\x4e\x35\x90\x2c\xa2\xf8\x42\x5b\x68\xda\xed\xbe\xae\x3e\xfe\x4e\xb7\x0e\x48\x96\x19\xed\xaf\xc6\x70\xc5\x23\xfb\x27\x99\xbc\x80\x2c\x4b\x33\x03\x05\xaf\x3f\x78\xad\x06\x5a\x2e\x93\x4f\x93\x89\x08\x6b\x40\xf2\x66\x21\xdb\x7c\x1c\x56\x03\x92\xa9\x08\x93\x43\xb2\x00\x5e\xdf\x2e\x1f\xc5\x34\xc4\xe1\xfb\x59\xd5\x9d\xba\x67\xfa\x07\xc2\x03\x82\x22\x99\x96\x59\xc5\xa3\xa8\x16\x45\xe1\x75\x15\x80\x70\x2a\x09\xeb\x6b\x3a\xa7\x4e\x37\x10\xa1\x22\x47\x6b\x68\x55\x42\x9a\xf6\x9b\xa9\x34\xb0\xf5\x06\x08\x0f\x77\xdd\x65\x6a\x88\xd8\x9b\xce\x67\xeb\xb7\xeb\xc9\x73\x4b\x48\x30\x6c\x76\xdc\x73\x2c\x82\x6c\x78\x01\xbb\x6d\xe5\x6e\x4a\x25\x31\xe2\x84\xb8\xa8\xfc\x0a\x44\x14\xe3\x10\xfb\x65\x1a\x71\x99\x62\x4a\x17\x0c\x44\xa5\xa6\xb2\xb3\xdb\x06\x91\x14\xf9\x93\xc1\xa7\x52\x69\x82\x73\xf0\xab\x75\x8c\xc8\xc3\xad\x8b\xa8\x8c\x0b\x43\xcb\x5c\x5a\xbe\x83\x41\xe2\x0e\x88\x92\xdc\xe0\xd0\xf7\xbc\x86\x3d\xc6\xa2\x88\x6b\x03\x12\x38\x8c\xba\xad\x71\x9a\xff\x6e\x90\xc4\x98\x9e\x3a\x95\x4d\xfe\x5a\x4e\x1e\x04\x12\x99\xa6\xc6\x33\xbe\x3a\xb7\x7e\x8a\x02\x17\x88\x3a\x6c\xaa\xa2\x9b\x35\xf6\xd6\x06\x12\x73\x40\x74\xa4\x11\xca\xbf\x7c\x5e\x2f\xb6\xeb\xdd\xf3\xfa\xe9\x71\xf7\xfc\xe8\xf4\x07\x80\xe8\x84\x62\x84\xc2\xbc\x48\x3b\x88\x2f\x42\x8e\x40\xb4\x4c\x30\x1b\x8e\x08\x00\x4b\x1f\x3e\xc5\x2e\x8d\xff\x9a\x03\x43\xc2\x08\x96\x8c\x71\x07\x9f\xdf\x6c\x97\xab\x67\x1b\xdd\xbc\x1e\x5f\x25\x24\x9a\xa6\x1e\x29\x51\xbf\x41\x7b\x6b\xbd\x14\x08\x43\x1e\x3a\xf5\x6b\x53\xef\xad\xae\xce\x58\x98\x38\xfc\x50\x61\x28\x18\x12\x07\x8b\xd3\x79\xb5\xfe\xe1\x8e\x8d\x62\x53\xd0\xb9\x7d\xdc\x2e\xee\x76\xcf\xeb\xff\x7a\x59\x6f\xb6\x3b\x4b\xcf\x3d\x88\x1c\x41\x18\x2b\x20\x1e\x49\x39\x54\xd6\x59\x76\xcf\xad\xfa\x10\x2b\x84\x49\x9c\x39\x56\x75\xc7\x36\x6a\x71\x4d\xa3\x6f\x17\x26\x3a\xa3\x36\xa0\xf9\x97\x94\xce\x17\x9e\x1d\x04\x21\x8d\x43\x99\xd9\x62\x14\x8c\x55\xe0\x19\xbd\xec\x2b\x84\x69\x00\xf8\x24\xef\x26\x3d\x00\xc3\x00\xa0\xef\xa2\x89\xd1\x2a\x53\xc7\x2a\x77\x11\x68\x08\x33\x19\x63\x6d\xf7\x07\x7e\x63\x0b\x59\xe8\xd5\x1b\xc6\x37\xc2\x99\xd1\x40\x31\x82\x67\xeb\x03\xd4\xaf\x9d\x8f\x7b\x35\xb0\xb9\x42\x29\x62\x4d\x8c\x3c\xf2\xd0\xec\x08\x15\x89\x30\x16\xca\x95\x7a\x7c\xb8\xd9\x2d\x5e\x56\xb7\xdb\x6f\xf3\xd4\x2e\x83\xd7\xa9\x88\xc6\xf2\x45\x87\xc8\x5e\xe8\x16\xea\x3e\x8a\x0a\xa1\x0a\x53\xf4\x93\x6e\x6e\x97\xdb\xb9\xd4\xfc\xfc\x36\x19\xaa\xc8\x14\xbf\xa2\xb4\x8c\x80\xda\x5b\x0e\xa1\xd2\x1a\x13\xd7\xe3\x1a\x1d\x83\x59\x19\xed\xfe\x21\x24\x09\x26\x16\x9f\x2b\x47\xf1\xf6\xa3\x6a\xe1\xb1\x9c\x72\xb5\xb9\xee\xdc\xf0\xfb\x5d\xdf\x3e\x6f\xb6\xbb\x27\xcc\x57\xde\x2f\xfe\xdc\x6d\x9e\x16\x0f\xfe\x94\x9c\x65\x03\xc1\xe1\x6b\x24\x1a\x1f\xb0\x22\x40\xa8\xad\x98\xbb\xa5\x96\x7c\xac\x15\x58\xc1\x6b\xd3\x21\x0a\x48\x84\xef\xff\xa9\xe0\xe7\x3f\xa3\xc0\xff\x1c\xfb\x40\xe1\xed\xe1\xc8\xa5\x59\xaa\x8c\x2d\x3c\x9c\x2b\x51\x20\x0c\x3e\xc5\x78\xf5\xf3\x8b\x73\x14\x48\x07\x6b\x83\x43\x7e\xba\xc8\x8d\xda\x5e\x24\x08\x90\xd5\x07\x17\xfa\xce\xbd\x6f\xba\x55\xf0\x89\xd7\xfc\x30\x19\xe2\x11\x09\x28\x96\x26\x18\x26\x33\x83\xcc\xaf\xd6\xed\x1e\x9f\x6f\xb4\xe5\x45\x84\x48\x74\x2e\x90\xf2\xb0\x69\x57\x55\xe9\x90\x8d\x10\x91\x14\x82\x21\x11\x26\xaa\x2e\x8c\xbe\x7c\x14\x52\x91\xd9\x4c\xa2\xad\xe9\x77\xf9\x28\x3f\xea\xa2\x88\x80\x61\xec\x68\xa1\xe6\x2d\xec\xa6\x00\x1d\x88\x22\x9d\xa1\xfb\xb6\x38\x56\x45\x51\x6d\xe0\xd8\xc2\x01\x69\x58\xd4\x04\x86\x0d\x51\x12\x25\x48\x3e\xf7\x31\x24\x88\xbb\x4c\x01\x8f\xcf\x9f\x24\x0a\x43\xdd\x4f\xff\x39\x64\x15\x82\x28\xa1\xa9\x30\x09\xc1\x66\xe0\x19\x46\x8c\x09\x34\x77\xff\xd3\x48\xda\xba\x9f\xd3\xc8\x40\x08\xdf\xbb\xcf\x3c\x7d\x11\x29\x17\x48\x7d\x77\xc5\xc5\xf9\x6f\xa4\x2c\x20\x4a\x25\x73\x08\x2c\x1b\xc9\x37\x71\x80\x33\x72\x9a\x8e\x0c\xb1\x28\x8b\x32\x16\x79\x96\x2c\x0c\x88\xec\x78\x2d\xf2\xb6\xd9\x1d\xb8\x1f\xa7\x22\x4e\xa8\x57\x88\x1c\xd9\x6a\x91\xe0\xa9\x57\x24\x6b\x6e\xa0\xf5\x75\x71\x10\x09\x11\xe3\x7b\x41\xf1\x8b\x6e\x21\xc4\xe8\xf9\xe4\x70\xc9\x51\x6b\x64\xa0\x2e\xd1\x2b\xa5\x5e\x40\xf4\x20\x92\x82\x09\xab\xf6\x85\x93\xe2\xa5\x71\xfc\x5b\xe3\x17\x86\x82\xe1\x9d\xdb\xc3\xcf\x63\x89\x36\x88\x24\x18\xec\xa9\xe4\x45\xb1\x19\x8a\x7e\x43\xa4\x22\x81\x98\xf9\xbc\x79\x7a\x5e\x7b\xee\x3e\x88\x94\x00\x35\xdc\xb9\x56\xd0\xc8\x3a\x3f\x9a\x22\x93\xc9\xa0\x70\x9e\x48\xa4\x74\x1a\xd9\x58\xeb\xb5\xa1\xde\x6c\x2f\xc3\x6e\x10\x41\x68\x36\xcc\x11\x5b\xa9\xc9\x6b\x7e\x86\x00\xba\xcc\xed\x40\x04\x11\x43\x20\xcc\x9f\x3a\x2f\xf3\x16\x16\x4d\x03\x7e\x68\x01\x0d\x70\x1a\x95\xf0\x61\xe5\x08\x7d\x4b\x46\x4c\xed\x30\xee\x25\x3f\xf3\x72\xbe\xee\x73\xfe\xcf\x78\x24\x69\x9e\xc6\x43\xe8\xae\x0f\x19\x0f\x7b\x9b\xbe\x71\x10\x72\x08\x87\xb1\xd7\xd6\xeb\xf2\x0c\x34\x86\xba\x7e\x42\x24\x2e\x93\xa8\x0d\x1b\xc4\x26\x2f\xde\xa1\xee\x3c\x82\x6a\xb4\x18\xc6\x41\xc4\x51\x11\x06\x8d\x50\x36\x5c\x88\xe3\x20\x56\x10\x79\x8d\xb8\xfc\x70\x3a\x2c\xeb\xce\xdb\x1c\x7f\x8a\x38\xcc\x0c\x7f\x5e\xbe\xe3\x87\xdd\x2b\x94\x50\x57\x7e\x6c\xc4\x11\x61\x81\x81\x58\xf2\x02\xd4\x55\xae\x9a\x79\xdf\x26\x8e\x08\xc7\x5c\x85\x31\x86\x91\xb8\xb3\x5b\xb9\x48\x6f\x10\xc7\x51\xa6\x69\x2f\xd7\xb2\x98\x94\x0d\x40\x1c\x69\x46\x32\xbf\x77\x9b\x73\xb8\x9d\xca\xdf\x50\x1c\x87\x26\x3e\x6d\xd8\x02\xcc\xfa\xb8\x42\x66\x84\xd9\x7d\x34\x8e\x15\x47\x77\xf0\x7d\x18\x7c\x1f\xf7\xb0\xcc\x4f\x46\x92\xef\x7b\x55\x37\x70\x1e\x61\x51\x07\xce\x56\x4c\x75\x8c\x37\x59\x80\x37\x6e\x62\x96\x08\xd1\x67\xd4\xfe\xd8\x8e\xbf\x50\x1a\x31\xc4\x07\x59\x7e\x83\xee\x0b\xcd\x2a\xd3\x40\x9c\xa6\x49\x1c\x38\x35\xf1\xe7\xf1\xee\x36\x7e\xdb\x69\xca\x84\x1a\x65\x86\x06\x16\x47\x9c\x4a\x53\x24\xa1\x3a\x77\xe8\x34\x59\xfc\xe2\x54\x27\x58\xce\xe7\xc4\x1a\x9f\xd6\xcf\xcb\xf5\x03\xb2\xdb\x84\xee\x0c\x99\x12\x2e\x94\xf3\xd2\x2d\x71\xd7\x27\x28\x1a\x5f\xc0\x6b\xd4\x2b\xbb\xf6\x9f\x8f\x1b\xf7\x13\x27\xca\x41\x80\x36\xfc\x3d\x2f\x5f\x9b\xd9\xe8\x4a\xcc\x53\x1e\xda\xb5\x6c\x71\x3c\x0e\xe9\x2a\xc6\x7b\x73\x2c\x12\x03\xcb\xde\x5d\xdd\x3d\x2e\xff\xd8\x3d\xaf\x7f\x2e\x9e\x9d\x55\x1d\x8b\x44\x33\xe5\xc2\x30\x85\x9a\xb5\x4a\x63\xc1\x09\x93\x3e\x82\x31\x0d\x9a\xc4\xc0\xa4\x90\xbe\x28\x7d\x7e\x09\xb8\x0c\x02\xc7\x9a\x46\x18\x90\x81\x5f\x2d\x94\xaa\x33\xbb\x6c\x89\xe8\x65\x31\x02\x24\x41\x96\x3a\x1a\xcf\x43\xf7\xf9\x6b\x8c\x3c\xcc\xbb\x73\x49\xa0\x03\x5b\x37\x33\xaa\x8b\xfe\x2d\x7b\x31\x21\x84\xdb\x28\xa5\xcb\x74\x5c\x71\xf9\xb6\xad\x2c\xc0\xc8\xf5\x8a\x63\xe8\xc3\x84\xbf\x55\xf1\x02\x49\x18\xc8\x30\xf3\x72\x14\x46\x46\x8c\x38\xbb\x2d\x09\xb3\x18\x9d\x50\xf0\x44\xcb\xc6\x30\x77\xcd\x3c\x08\x84\xe7\xb9\xc6\x7a\x20\xd7\x14\x41\x88\x3c\xbb\xeb\x3f\x17\x58\xa7\xf9\xc5\xf6\x9e\x24\x94\x63\xde\x49\xf3\x93\xec\xf6\xa3\x4f\x5e\x61\xc2\x88\xad\x4a\x3f\x5f\xe6\x19\x87\xd3\x20\xa1\x49\x00\xda\x21\x82\x50\x7b\x09\xb9\xe7\x77\xa8\x83\xba\xbb\x55\xbb\x19\xe9\x27\x7b\x28\x23\x71\xec\xf8\x74\x78\x01\x66\x73\xc7\x89\x3d\xe0\xf4\x81\x84\x65\x94\x5a\x9d\xed\x1a\x4d\x00\xab\xc5\x33\x3e\x59\x1a\x12\x1c\xc9\x7b\x03\x1a\xf3\xb5\x4e\x90\xa4\x51\x84\xfc\x8c\x9b\xc5\xcd\xc2\xff\x96\xa4\x18\x99\xc0\x25\x62\xc2\x77\xe7\xba\x68\x82\x45\x20\xe8\xd4\x4f\x96\xeb\xd1\xc2\x97\x64\x91\x44\x58\x95\xdd\xa8\x77\x1b\x68\xdb\xee\xaf\xe4\xcd\x1e\xb5\x6d\xd4\xa9\xe6\x03\x17\x2d\xe1\xcc\x30\x26\xbc\x42\xfb\x5f\x27\x68\x30\xf2\x59\x36\x1f\x9f\x54\xea\x75\xfd\x8d\xb0\x85\xad\x47\x19\x68\x00\x7e\x49\x45\x06\x09\x07\xa2\x8d\x6e\x9b\x73\x18\x17\x45\x61\x6b\x5d\xef\x73\xcf\x6a\x01\x89\x20\x46\x22\xdd\x14\x3d\xe2\xf8\xec\x0d\xdb\x44\x72\x03\x60\x41\x86\x9e\x0d\x60\x74\xd5\x36\xa9\x90\xa3\x71\xf3\xfd\xe5\xea\x65\x68\xbf\x26\x2a\x8e\x70\x7d\x32\x1a\xff\x17\xe5\x22\x90\x28\x16\xe1\xf6\x8c\x9e\x75\xb7\xfb\x5c\xf7\x61\x8b\x44\x65\x21\x95\xb6\xd4\x6a\xc5\xf3\xcf\x1e\xd7\xf5\x86\xd0\x21\xc3\x5e\x72\xb5\x68\x6e\xcb\x16\x3e\xcb\x4e\x43\xe7\xd4\xa0\xe3\x2e\x84\x15\x13\x19\x4f\x6d\x88\x25\x42\xdc\x30\x04\xb0\xad\x16\xf5\xe1\x3c\x19\x6a\x3a\xb4\x58\x72\x53\xe9\x3f\x93\x0f\xc5\x3e\xb8\x06\x35\x26\x18\xfc\x00\x1f\x98\xb5\x9e\xce\xa5\xb9\x84\x5a\xa2\x75\x18\x5b\xd8\x31\xee\x1a\xdb\xea\xa6\xae\x4e\x17\xd0\x24\xb7\x00\xd3\x80\x18\x85\x01\x27\x34\x3d\x17\x65\x1a\x5f\x82\x06\xb1\x11\x58\x1a\x46\xc3\x87\xb4\x63\xa3\x07\xa6\x41\x46\xa5\x13\x74\x33\x5a\x74\xc6\x98\x72\x34\x63\x83\xf3\xaa\x18\xa9\x68\xef\x72\xd9\x2d\xe6\xc3\x11\x41\x49\xc2\xa9\x5d\xc1\xac\x67\x68\x1b\xc2\x98\x62\x12\xc3\x19\x29\x98\xf9\x71\x6c\xff\x9f\x7c\xf9\x89\x48\x3f\xd0\x90\x6b\xf4\xd3\x5e\x6b\x5e\x2a\xe7\x1d\xcd\x4e\x27\x1a\xeb\x08\x2d\xda\x9d\xcb\x12\x6f\x79\xf3\x36\x79\x90\x24\x49\xc1\x00\x1d\xd5\xa2\xb5\xd5\x25\x38\x57\x27\xaf\x26\x51\x82\x69\x3f\xcc\xb7\xfb\x7c\x32\x10\x28\x55\x1a\xac\x78\xea\xa9\xe0\xb5\x23\x81\x72\xad\x20\x10\x95\x88\xe6\x9e\x91\x5e\xb7\x2d\x2c\x31\x0a\x42\x5c\xa9\x1e\x8f\xfd\x7b\x31\x0f\x9a\x72\xc3\x4c\xf1\x47\x5e\xbe\xaa\xea\x30\xa5\xb9\xfc\xcd\x0d\xf1\xb3\x93\x2b\x83\x52\x40\x22\xf5\x87\x9b\x99\x24\x1b\xcd\xba\x4d\xd4\xae\xc5\x53\x70\x15\xd0\x2c\xa2\xb8\xb7\x7c\xcf\xdb\xdf\x63\x76\x01\x9a\x65\x21\x9a\xe0\xb5\x2c\xbb\x55\xc2\x2d\xd8\xb6\x95\x33\xc6\xd8\x08\xc0\x10\x65\x23\xdb\x91\x72\x15\x1b\x92\x21\xec\x82\x92\x56\xb3\xc0\x5a\xa0\x22\x06\xfc\xee\x8e\xd9\xf9\x99\x5f\x62\x4d\x5c\x57\xc6\x13\x67\xdc\x95\x79\xdb\xac\x40\x43\x79\x49\x26\x3b\x79\x7d\x32\x51\xcc\xaa\x1c\x09\x94\xe1\xde\x29\xe0\x3e\x2b\x4c\xa5\xcd\x40\xe3\xdb\x45\xb9\x92\x4f\xae\xae\x04\xc1\x34\xc7\x55\xde\xee\xa1\xf4\xcb\x17\x85\xcc\xec\xdc\x43\x84\xf8\x3f\xe6\xd0\x12\x14\x44\x84\xd3\x6e\xc9\x0f\x47\x9e\xbf\x96\x36\xc4\x39\xbe\x5d\x4d\x03\xac\x32\xb3\x79\xe2\x31\x94\x07\xa8\xe6\x09\xd2\x31\xe7\xa5\x2c\x50\x98\x74\x5d\xfa\xda\x47\xd7\x45\x92\xd0\xc4\x34\x9f\x87\x06\xa2\x6f\x4d\x1d\x5b\xe0\x72\x9f\x17\xaa\x86\x72\x50\x28\x00\x2c\x88\x98\x0a\xfa\x6c\xe5\xb1\xce\x11\x5e\x75\x18\x56\x31\xb8\xae\x09\x71\xf8\xfb\xff\x3a\xe5\xf2\x0d\xc1\xcb\x0e\x43\x6a\x4a\x47\xc2\xd4\xf5\xe5\x06\xae\xe2\x3e\xf3\xdd\x80\x05\x70\xfc\xc1\x18\x49\x24\x26\x5e\x6e\x97\x8f\xbb\xe5\xe3\x03\xf2\x86\xba\xbb\x23\x0c\x4c\xd9\x18\x70\xc3\xc6\x34\x53\x56\x04\x8c\xa4\x21\x12\xc7\x97\xa7\x83\xab\x2c\x6e\xfc\x19\x24\x33\x6c\x27\xd0\x98\x92\xd4\xe7\xea\x6d\xe3\xc9\x05\x81\x45\x91\x40\x75\x89\xea\x08\xe5\xfa\xf5\x75\x18\x79\x77\x69\x16\x16\xc5\x3a\x31\x06\xf8\x3b\xf0\xe2\x2a\x57\x5f\x33\xf7\x7e\xce\xe2\xe0\xce\xa7\x54\xe4\xe9\x63\x97\xfc\x88\xca\x10\x3d\x10\x86\x25\x19\x81\x70\xe0\xac\x7f\x86\x99\x9d\x25\xa3\x01\x46\xa3\x08\x67\xc0\x3d\xfa\x89\xf7\xbc\x46\x9d\xf2\xaf\x6f\x89\x46\x59\x6c\xd3\xf6\x5b\xfe\x0b\xd7\x42\x1b\xa2\x9d\xf4\xe3\x04\x4b\xd7\xab\xb2\x38\x3f\xda\x18\xfe\x16\xf8\x61\xa6\x3c\x00\x58\x9a\x19\x2a\xb1\x66\x5f\x7d\x1c\x6b\x2f\xa9\xd2\x35\x64\xa8\x8b\x77\xc5\x4d\xdd\xd1\xa2\x71\x41\x6f\xc6\x79\x3a\xa0\xa0\x30\x24\xfd\x97\xb0\xba\xd9\x4d\x97\x89\x2c\xc5\xd2\x06\x03\x12\xc4\x52\xe2\x91\x6b\x3c\x2e\x24\xf8\x2d\xbc\xec\xc0\x47\x62\x02\xe2\xc0\xd5\x4e\x42\x09\x3a\x97\x39\xaf\xf3\xcb\x1a\x14\xdb\x5d\xa6\x89\xa1\xe5\x35\x8a\x71\x18\xbd\x9b\xbc\x20\xc9\x8d\xfa\xba\xa9\x05\x70\x0c\x7d\xf3\x5f\x48\x51\x8d\x13\x95\x1b\x9b\xea\x3b\x6f\xd6\xbf\x8e\x79\xfd\x49\xf9\x27\x30\x1d\x64\xb8\x47\xd9\x9a\xb5\x87\xeb\xad\x55\xad\xcb\x85\x9d\xd9\xe9\xa7\xa1\x2b\x17\x2c\x4b\xfe\xc7\x9d\x2c\x0c\xd1\x3d\x3c\x56\x4d\x7b\x75\x3a\x9b\x58\xf2\x6f\x39\x65\x4c\x47\x21\x62\x91\xc0\x2e\x5b\xeb\x76\xbf\xad\xd6\xa7\x09\x7c\x20\x0d\x42\xa7\x29\xdc\x48\xae\xa6\x21\xd6\x34\x88\x0c\x48\x41\x9c\xce\x1b\x24\x1f\x44\x0f\x4d\x8d\x49\x7a\x6d\x5f\x92\x18\xcb\xd8\x26\x84\x77\x47\xde\x34\x61\x5f\x91\xf5\x8f\xff\x9b\x7f\xb8\x53\x52\xe6\x05\xb5\x56\x43\xb9\xb9\xc9\x95\x45\x96\x18\xf5\xb4\x87\xaa\xdb\x48\x51\x3b\x6e\x38\x0e\x7d\x3f\x6e\xc0\x71\x86\x7b\x00\xd4\xd5\xf9\x93\x33\x86\x49\x42\x6d\x76\xd3\xd2\xbf\xcd\x8f\xb6\x34\x12\xa6\xc0\xec\x42\x9c\xfa\xd3\xd1\x3d\xb7\x76\xa4\xb1\x62\x61\xe4\x25\x6d\x86\x3c\x02\x90\x26\x41\x88\xea\xaa\xe8\xc3\x8c\x57\x87\xf9\x6f\x9f\x26\x01\x43\x0c\xbe\x82\xc6\xc6\x10\x17\xe5\x2b\x14\xfe\x84\x89\x46\x14\xf8\x6a\x46\xc0\xef\xff\xf6\xaf\x3b\xa5\x12\x81\x05\xfb\xdd\xe7\x25\xca\xb3\x4e\x87\x12\x23\x31\xd6\x71\xf5\x44\xb5\xa6\x90\x64\xfc\x3e\x19\xd1\x81\x1c\x30\x78\x0f\x41\x29\xab\xb1\xbb\x99\xa6\x89\x21\x58\x40\xc3\xdb\xee\x73\x66\x72\xf9\x0d\x31\xcd\x54\x16\x5a\x6e\x22\x2c\xac\xe9\x4c\x92\x0b\x19\x7f\x48\x39\x35\x14\x1c\x2e\x67\xd6\x59\x63\xdb\xfc\x00\x45\x25\xdf\xa2\x31\xc4\x2c\xe5\x2c\x03\xe2\x54\x3c\xb5\xff\x15\x94\x34\x6a\xb6\x82\xff\x6b\xe8\x1f\xa4\x5c\x33\x2c\x30\xb8\x18\x22\x43\x83\x21\x15\x40\xb2\xc0\x01\x2a\xa7\xb3\x54\xd2\x08\x81\xaa\xef\xb0\xcf\x65\x01\x3b\xde\x34\x70\xf0\xb2\x95\x7d\x3f\xc8\x12\x74\xff\x77\x8e\x10\xad\x7c\x3d\xe5\xe5\x54\xdd\x6c\x7c\x8c\xee\xc6\x17\x4e\x9e\xe6\x64\x5d\xe4\x9f\x79\xbb\x37\x53\x9d\xcf\x4b\xdd\x41\xaa\xa9\x01\xa6\xf5\xe5\xd4\xa6\xa6\xaf\x72\xf9\xc6\xf9\xe3\xb2\x20\x4d\xd0\xb2\x30\xc5\xe3\xa3\x3c\xef\x17\x81\xfc\x2c\xe0\x19\xe2\x84\x3b\xf3\xd1\xd6\xe9\x3f\x9c\x0e\xf3\x4b\x76\x46\xa8\xc0\x4d\xb5\xce\xcb\x37\x10\x67\x17\xb5\xcc\x88\xe0\x98\x4c\x42\x9e\x95\x0d\xc8\x7a\x20\x1b\x3c\x17\xbd\xcf\x88\x8c\x30\xf6\x62\x02\x5b\x9d\xf9\x72\x5b\x3a\x36\x2f\xdf\x25\x41\x1f\xb5\xf1\x88\xc6\x4b\xf9\xaf\xc1\x9d\xa9\x14\x63\x83\x66\xa7\xb4\x72\x1e\xf3\xf5\xb7\x90\xc5\x11\x8f\x82\xb1\xe4\x8c\xf9\x24\x58\x27\xf1\x6d\xd2\x39\x73\x12\xae\xdd\xec\x5a\xa1\x55\x3b\x72\xad\x6c\xbf\x84\x72\xac\x51\x32\x03\xe4\x1e\x9a\x3d\x32\xa6\x8c\x8c\xd7\x2c\xc9\xc2\x94\xf5\xb4\xcb\x43\x1c\x9d\xeb\xa1\x35\x7a\x71\xae\x2e\x00\xe0\xdf\x93\x40\x6e\x46\x53\x8e\xc8\x47\x07\x39\xb8\xe7\xbf\x9e\xea\x4a\x77\x56\x87\x45\x2f\x3f\xea\xef\xd5\xa9\x99\x98\xbb\x19\x4b\x0d\x11\xe9\xf6\xe1\x69\xe9\xde\x72\x1a\x91\xc4\x06\x96\xfe\xf3\xa4\x5e\xe1\x73\x9a\xba\xae\xaf\x0a\x52\x97\x1e\xcd\xbd\xf6\x16\x64\x29\x05\x89\x32\x7e\x15\xfc\x1b\xca\x1f\x55\x3b\xe0\x27\x9d\xbc\xfa\x94\x29\xb4\x68\x0a\xde\xb4\xbb\xa6\xf0\xf9\xc8\x2c\x85\x18\xcf\xc1\x45\xd3\x7a\x9e\x1c\xc8\x38\x49\xf1\x59\xcb\xd3\x61\x55\x95\x43\xaa\x7e\xc8\x78\x64\x38\x4b\xee\x6f\x1f\xae\xd6\xdb\xdd\x11\xea\xcd\x93\x23\x9d\x83\x8c\x27\x26\x5f\x81\x4a\xa7\xf6\x7e\xc7\xcf\xc3\x2d\x39\xd8\x2b\xb4\xe8\x52\xed\x9a\xf6\x02\x11\x94\x71\x2d\x91\x8c\x77\xfd\xbc\x0c\xc3\x68\xeb\xd6\xfd\x39\xc5\xd0\xd9\x1a\x10\xc8\x54\x68\xb4\x3e\x10\x52\xdd\xeb\xf0\x75\x0d\xc0\x86\x86\x44\x33\x0a\x2b\x65\x4a\x18\x8c\xd1\xae\xe5\xaf\x33\xc5\xee\x90\x41\x18\x86\xd6\xc4\x7d\xac\xb9\x2c\xf2\x7f\x83\xa9\x7c\xba\xe1\xcd\x00\x34\x66\x7b\xeb\x8c\x92\x68\x08\xab\xb1\x00\x4b\x7b\x39\x1e\x24\xa6\xc2\xcd\xe0\x48\x5a\xe8\x1c\x63\x5e\x7a\x65\x7d\xe0\x24\x08\x31\xa6\x78\xe5\xab\x0c\x80\x93\x94\x21\xfc\x04\xb1\x5d\x57\xe7\x16\x06\x45\x19\xae\x4b\x16\xf3\x1e\x48\xb6\x91\xbc\xe0\x9f\x48\x55\xcd\xa4\x88\x38\x11\x82\x98\xac\x7d\x89\x8e\x59\x39\x58\x37\x47\x4b\x0a\x27\xca\x28\x9f\xc8\xea\x60\xc1\x80\xcf\x5e\x53\x13\x38\xd1\x06\x5a\xfa\xb0\xb8\x5f\xef\x36\x8b\xed\xe3\xe6\xfb\xad\x6b\x0b\x19\xa0\x2d\xe4\xf2\x32\xeb\x87\xd5\x40\x6c\x00\x78\x64\x75\x11\x91\x2e\xc5\x14\x0e\xfe\xe0\xa7\x62\x9e\xdf\x0c\x78\x94\xd1\xd0\xc9\xfe\xec\x36\xeb\xf5\x6a\xbd\xf2\x67\xe2\xca\x92\xd8\xff\xf4\x74\x8a\xe3\xcf\xc4\xe3\x20\xc3\x8a\x6a\xae\x94\xd1\x5c\x9a\xad\xda\x19\x0d\x04\x1e\x4b\x8d\xb5\x9b\x8b\xfb\xa7\xed\x70\x83\xe4\x09\xcd\x10\xb9\x7b\x75\xbb\x18\xfd\x4e\xa3\x8c\x44\x5e\x26\x0a\x37\x97\xd9\x9c\x11\xa7\x31\x8b\x5d\x6e\xff\xc7\x93\xa9\x37\xb4\x02\xff\x5f\x9a\x2d\x9c\xb2\x0c\xd7\x15\x84\x3c\xb4\xd0\xf4\xd9\x6d\x9e\x92\x30\xf2\x88\xa9\x85\x52\xcf\xd5\x80\xc2\x71\xf4\x5c\x29\x31\x90\x0d\x50\xf9\x1c\x13\xf6\x3f\x2e\x53\xbd\x3c\x0d\xc1\xac\x09\xbc\xce\xf9\xe8\x99\x53\x69\x08\x76\x4d\x48\xd2\xe4\x6b\xc7\xf7\x9c\x4a\x8d\x6c\xfd\x4f\xbc\x56\xf9\xe0\x86\xb3\x58\xc8\x9e\x86\xf3\xa5\x81\x7a\x5b\x9f\x9a\xf6\x99\x97\x6f\xd7\x55\xed\x04\x90\x2d\x71\xe5\x24\xee\x4f\xc2\x0b\xdb\x9b\x67\x49\x88\x6c\xb2\x9b\x23\x97\xf0\xe7\xe8\x26\xb3\xd4\xf0\xc7\x99\x05\xe1\x01\x3e\xa6\xbc\x50\xae\x9f\xe4\xb8\x6b\x9b\xba\x89\xeb\x51\xbe\xd2\xdb\x5e\x9c\x53\xc9\x0d\xcb\x07\x42\x67\x0c\x40\x6e\xb2\xbf\x71\xce\x29\xe2\x8a\xba\xa1\xbf\x19\x83\xdb\x38\x57\xa6\x82\xf3\xd5\x60\xdf\xaf\xce\x2b\x78\xcf\xa5\xa3\xff\x1a\x12\xf4\x01\x17\x24\x01\x2b\xe3\x73\x82\xe2\x1d\x16\xc7\xe3\xb8\x90\x1b\xb8\x90\x14\x69\x94\xac\x3b\xdb\x34\xa7\xee\xbe\x46\x9f\x74\x7e\x34\x09\x30\x3c\x20\x9d\x7d\x60\x71\x1d\xfa\xe4\xac\x6e\x2e\x49\x8c\x56\xf7\xcb\xc3\xed\x7f\x7d\x95\xca\xe2\x92\x86\x51\xd6\xa7\x79\x91\x6e\x73\x42\x6c\x01\x5c\xa6\x09\x5a\xd3\xe2\x54\x97\x37\xbc\x59\x94\xaa\xdb\x84\xe7\xe8\x06\x67\x22\xcc\xc3\xa1\xa8\xa2\x28\xb0\xd1\xbe\xd5\xa9\x7c\x85\xaa\xbc\x2e\xaa\xca\x0a\x8c\x4f\xbf\x82\x4a\xd3\xb8\x67\x0b\xe8\x3e\xa8\x25\xb4\x99\xf5\x6a\xb8\x52\xa6\x80\x40\x81\x38\xbd\x76\x0b\x79\xbb\x39\x09\xcf\x65\x6c\x3b\x01\x31\xda\x2c\x79\xe3\x8c\x27\xc7\x34\x3c\xbf\x70\x81\xe6\x92\xd8\x1a\xda\xfa\x1d\x1c\xd1\xb8\x6f\x15\x38\x6d\x97\x8b\xe7\xd5\x6e\xbb\xf8\x63\x3d\xac\x41\x04\xae\x21\xc1\x41\x5d\xc2\xc7\xca\x09\x39\xcd\xce\x6a\x11\xa4\x2a\xe5\x3d\x8b\x82\x8f\x97\xda\x81\x24\x88\x43\x1e\x23\x66\xea\x9b\xfb\x95\x49\x65\x6b\xce\xae\xe0\x35\x2f\x87\xd5\x15\xae\x4b\xc6\x95\xb9\xff\xce\xb0\x33\x38\x9d\x6e\x9d\x1d\x22\xbd\x06\xd3\x43\x90\xcc\x00\x9f\xdd\x8e\xf7\x54\xf0\x12\x7c\x86\x4b\x10\x9d\x61\x5e\xfd\x3f\xaf\x86\x53\x54\x84\xa9\x29\x05\x7e\xae\x84\xb7\x5e\x44\x14\x85\xaa\x67\x97\x58\x60\x16\x79\x7c\x73\x51\x2a\xc0\xc2\x73\xfa\x1d\xea\x69\x5a\x74\x20\x22\x4d\x71\x88\x1a\x22\xed\x6d\x7d\x82\x6f\x26\x6a\xd3\x0f\x2c\x44\x47\x21\x3f\x5e\x67\x36\x77\xbe\x85\xad\x3a\x74\x37\x93\x10\xa3\x1f\xd3\x18\x7a\x19\xb9\x87\xfb\xbc\xdc\xfe\x9a\x5c\x29\x89\x84\x8f\x23\x76\x96\x4f\xa9\x30\x0f\x6a\x23\xbb\x55\x69\x68\xf7\xf3\xaa\xc4\x78\x7d\x83\x7c\x7a\xab\xce\x8f\x79\xa8\x30\x19\x03\xad\xe7\x9c\xe8\x3d\x47\x41\x83\x18\x53\xfb\x37\x55\xf9\xba\xdc\x9f\x78\xf9\x3a\x7a\x79\x94\x70\xac\xb7\x83\x5f\x20\x4f\xad\x65\x81\x5c\xf2\xe2\xc2\x19\x1a\xfb\x2a\xa3\xc7\xa7\x21\x61\xa9\xf7\x88\x67\xc4\x9b\xbb\x2e\x8a\x39\xbd\x44\x2b\x8d\x3a\x10\x00\x9f\x1d\xfd\x82\x72\x96\x3a\x52\x6d\x43\x61\xe0\x73\x96\x82\xc5\x04\x03\xdf\xa6\x78\x65\x7c\x1a\xdb\x25\x13\x02\x91\x65\x43\x06\xf0\x17\xac\x76\xc1\x60\x68\xec\x4e\xc5\xc3\x18\x41\x9a\xf7\xf9\xab\xf1\xb9\x9b\xc8\x37\xa9\x10\x69\xf3\x6e\xea\xea\xa3\xdd\x3f\x55\x55\xb1\x1b\xc5\x2b\x04\xd7\x44\x59\x92\xbe\xb7\xfe\xe6\x04\x0b\x30\x3a\x7a\x78\x5b\x55\xc8\x30\x3b\x8b\xea\x10\x92\x28\x84\x07\x1e\x6d\x40\x79\x83\xfb\x29\x99\x8f\xbe\x08\xc9\x52\xb4\x2d\x97\xbc\xe9\x19\xe6\x40\xc8\xce\xe2\xb3\x83\xa6\x1b\x11\x6e\x61\xf9\xb9\x87\x72\xd3\x56\xc3\x09\x2b\xb9\x66\x60\xbf\xc1\xd5\xe9\x6c\x42\x12\x23\x13\x6f\xce\xe0\x13\x52\xd2\xd0\x82\x91\x91\xa6\x82\xe7\x4d\xbf\x08\x09\xa9\x0d\xa1\x66\xcb\x7f\x5d\x38\x84\xf3\x9f\x55\x85\x24\xa3\xae\x02\xdb\x1a\x39\xab\x07\x17\x8f\x17\x2a\xe3\xce\xdc\xfa\x92\xc8\x01\x84\x52\x24\xf1\x58\x8c\x09\xb5\x3b\x08\x88\x19\xae\xdf\xcb\xe5\xd3\xdd\xcb\xe6\xab\x5d\x48\x00\x33\xe2\x7d\x35\x74\x9f\x76\xd4\xa4\x41\xb1\xd4\x89\x11\xbe\x0e\x78\x08\x2f\xa6\xc5\xf0\x30\x19\x10\x40\x2b\xcd\xa8\xd5\x7f\x73\xbf\x4a\x66\x01\xaf\x9d\x4f\xd0\x6d\x60\x37\x7c\xb2\xed\x48\x42\x42\x3e\x46\xbc\x3e\x1e\xa1\x1c\xc1\xd6\x25\x11\x31\x1a\x08\x8b\xf2\xdc\xee\xf3\xf2\x75\x71\x3c\x5a\xdc\xc5\x48\x4a\xf2\xff\x2d\x49\x28\x89\x96\x08\xef\x92\x55\xf9\x0e\x75\xfb\xa9\xa6\x08\xc8\x90\x10\x6e\x45\xe4\xba\x11\xfc\xa8\x1f\xc6\x53\x51\x86\x92\xa1\x27\xce\xcd\xfa\x05\x7e\xaa\xc8\x50\x19\xaa\x10\xab\xe6\x37\xa4\x70\x04\x19\x05\x02\x83\xfb\xbc\x69\xf2\xd7\xf2\x2e\xc7\xf4\xd5\xea\x6a\x72\xf2\x6e\x1d\x97\xa3\x8d\x7a\x2e\x53\x20\x23\x4d\xa8\x01\x5b\xc9\xaa\x54\xcd\x6d\xb9\x72\xf2\x61\x20\x63\x10\x58\xe1\x7b\x53\x15\xea\x42\xbf\x6d\xb0\x41\xc9\x44\x48\xcc\x2a\x1c\x4f\x8d\x41\x3b\x4f\xc8\x5d\x2e\x0b\xf9\xbb\x63\x00\x9d\x15\x59\x9d\x8e\x93\xf1\xe3\xd2\x05\xb3\x26\x05\xf2\xea\x85\x36\x10\xe4\xca\x13\xba\xb5\x73\x32\x62\x58\xc8\x33\x43\x69\xfb\x6b\x79\x3a\x38\x45\x38\x9b\x5f\x75\x7b\xa7\x4c\x09\xf1\x11\x16\x0c\xaa\x0c\x7c\x31\x99\xa6\x92\x65\x23\x7d\x9b\xbb\xfc\x7f\x4f\xb9\xca\xdb\x09\x6e\x42\x66\x91\x14\x63\xf2\xf9\xdd\x2b\xf7\x17\xc9\x62\x86\xc0\xf0\xe7\x7d\x5e\xc2\xaf\xee\x53\x0c\x96\x2a\xc9\x43\x0e\x8e\x84\xb4\x7b\x50\xf4\x4c\x0d\x1c\x7e\x92\x39\xb2\x07\x08\x42\xa5\xfa\x14\x8c\xed\xec\x43\x29\x68\x82\xb5\x64\x79\xb3\xac\xea\x09\x29\x30\x48\xc1\x94\x21\x80\x86\xa6\xbd\x81\x76\xc9\x1b\x18\x66\x27\xa5\x8c\x22\x4c\xb6\x76\xed\xb8\x33\x49\x3f\x2c\xa4\x2d\x46\xfe\xeb\xe5\x69\x5a\xb3\xfe\xf5\xd4\x51\x34\x44\x7a\x0c\x95\xbf\x2f\x7d\xc1\x93\xd4\x11\xc5\x0d\x09\x49\x0e\x67\xeb\xb0\xa5\x66\x04\x51\x1a\x0a\x4c\x4e\xd3\x48\x6e\x4e\xfa\x28\x89\x80\xc3\x3f\xca\xea\xa3\xfc\x04\x9f\x3e\xfe\x68\x5a\xa7\x08\x38\x3f\xee\x1a\x68\x57\xf0\x3e\x9b\x36\x57\x81\x8e\x74\x0f\x41\xf9\xd1\xb9\x6b\x62\x20\xda\x35\xa2\x1f\xfd\xff\xb9\xb2\x8c\x9f\x56\x11\x1a\xe2\x87\x2b\xb9\x1c\xb1\x98\x81\x22\x69\x8a\x51\x8c\xfb\x87\xed\x88\x28\xc3\x37\x2b\x9c\xaf\xcb\xaa\x28\x78\x7b\x67\x15\x9a\x6d\x63\x44\x32\x54\x19\x28\x78\xd3\xde\x55\xf2\xcd\x22\xf1\x5c\x73\x4c\x88\x55\x6e\x6e\x1f\xe0\x63\xee\xec\x71\x94\x22\x47\x86\xae\x4e\x75\xbb\x47\x6a\x33\x4b\x8a\xe2\xcf\x91\x81\x91\x99\x5f\xfd\xb8\xdd\xac\x9f\x37\xbb\xc5\xc3\x6a\x77\xfd\x7c\xbb\x7e\x58\x6d\x76\x3f\x17\x77\x77\xeb\xad\xef\xaa\x18\x2a\xa8\xed\x1c\x74\xdc\x9a\x47\xb6\x39\x09\x02\xa4\x60\x3e\x9c\x91\x68\xe3\xc8\xcf\x5f\xed\x54\x2a\xa1\x29\x96\x01\x7c\x5f\x7e\xff\xdb\x62\x6d\x95\xb0\xc0\xc8\x91\x57\xaf\xaf\x05\x2c\x79\x69\x0a\x86\x6e\x3a\x73\xca\x5f\x1f\x78\x98\x3a\x06\xda\x6e\x85\x9d\x4c\x1f\x45\x93\x10\x3b\x34\xc7\xaa\x6c\xaa\x1a\x1c\x2e\xe7\xde\xcf\x6b\x45\x29\x71\x55\x2e\x4b\xa8\xdb\x5c\xe7\xb2\x5b\x88\xab\x7a\xbc\x0e\xcf\x0f\x4e\x45\xa9\x61\x4d\x3b\x75\x56\x45\xcf\xe1\xe4\x5a\x79\x0a\x6c\x50\xeb\x4d\xa2\xd1\xfe\xac\x58\x24\xe4\x38\x36\xff\x99\x4f\x38\x47\x9f\xeb\x4e\x92\x44\x88\xc6\x5e\xad\x7f\xac\xef\x1e\x9f\xd6\xcf\xbb\xeb\xf5\x7a\x77\xfd\xbc\x58\xee\xb6\x8f\x4f\xee\x56\x98\x34\x82\x0a\x7b\x5e\xf8\xb7\x93\x12\x10\xe0\xc2\x36\xcd\x31\xaf\xa7\x16\xed\xec\x86\xa9\xd2\x98\x73\x6b\x02\x3d\x9c\x0f\x4b\xe8\x2c\xdb\xc5\xd3\xed\xcb\xf3\x9d\x3f\x71\xc2\x12\xac\x80\xad\x5f\x2b\x7e\xf8\xf2\x33\x67\x60\x00\xc8\x4d\x55\x8c\xcb\x68\x15\x27\x0c\x4d\xff\x5d\x7b\x2a\xe1\x8e\x1f\x44\x35\x1f\x03\x56\x3c\xb4\x45\x96\x76\x8c\x6e\x3a\x73\x76\x4e\x96\x03\x14\xb7\x02\x18\x79\x77\xcf\xd0\x8d\x17\xcc\xf8\x7a\x2b\x53\x71\x21\xb3\xcc\x15\x9f\x60\xfe\xc0\x55\xde\xdb\x0e\x22\xd4\x28\xc9\x6c\xcf\xbb\xad\xae\xcc\xe2\x3f\xb9\x90\x24\x1c\x6b\xa0\x54\xde\x98\x38\x13\xc8\xfc\xe0\xeb\x35\x95\xcc\x0c\x9b\x8a\x25\x6a\x7b\x29\xf3\xd6\xc6\x7d\x90\x4e\xee\xb7\xd6\x69\x25\x79\x88\xc8\x95\x53\xd9\xf8\x18\xc6\x20\x0e\x68\x7b\xa9\x38\x46\xb7\xb3\x84\x0f\xa3\x8d\x3b\x2e\x84\x73\xbd\x94\xa9\x23\xc6\x50\xc6\x85\x95\x38\x70\x97\x94\x8e\x62\x84\x62\x7e\x6a\x2f\xcf\x4f\x14\x1d\x13\x2c\xdc\x15\xa7\xfa\xc2\xa3\x98\xbf\x4e\x6a\xbc\xce\x0d\xb4\x0b\x35\x92\x62\xfd\xec\x0a\x9c\xe8\x91\xf0\x3f\xfa\xe9\xae\x51\xb1\xd4\x46\x73\x11\x70\xa7\x86\xeb\x08\x90\x40\x23\x3e\x26\xb7\x5e\xaa\xc7\xcf\x43\xc8\x03\x62\x12\xb4\xc7\xa2\x3a\xe3\x37\x1a\x3a\xa0\x10\x4a\x90\x3e\x27\x57\xaf\x8c\xee\xc5\xa9\xed\x4f\x1d\xc5\x26\x8c\xd5\x5d\xf8\xd4\x76\xa3\xa9\xfa\x98\x95\x90\xfe\xad\x4d\x07\x62\x88\xf0\x21\xbb\xad\x01\x45\xbc\xcd\x2b\xc8\x1b\x83\x9f\x1c\xef\x05\x90\xa4\xa0\xe5\x70\x7d\xe9\x3d\x6b\x48\xc0\x08\xe4\x78\x21\xd2\xcf\xe9\x3d\xec\x11\x94\x65\x3a\xf3\x48\xa8\xa7\xaa\xc8\xe5\x79\x18\xc7\x72\xdd\xa4\x8c\xac\xd3\x31\xcb\xca\x69\xbb\x31\x12\xe3\x66\xb0\x33\xa7\xdb\x56\xc7\x5c\x8e\x56\x47\x60\x49\x86\xf4\xe3\x50\xca\x4a\x81\x63\x39\x9a\xf4\xa1\x01\xf2\x8c\xec\x79\xb3\x9f\x08\x32\x4c\xee\x9e\x89\xc8\x16\xe3\x59\x58\xfd\x2e\x9f\x26\x00\x26\x07\x48\x85\x99\xfe\xbc\xb9\x5a\x5e\x5f\x9d\xce\x26\xdc\xe9\x5e\x1f\x03\x53\x54\x8b\xc4\x6a\xbf\xcd\xe6\xd5\x1b\xd6\x90\x26\xcc\x53\xff\xee\xf2\xb2\x81\xba\xdd\xe9\xbc\x54\xdd\x0c\xfe\x9e\x97\xdd\xf2\xf3\x6e\x94\x54\xb6\x3c\x2f\xbe\x8d\x6e\x4d\x64\x5a\x67\x8e\xec\xcf\x61\x56\xfb\xc2\x58\x10\x32\xc0\xd8\x5a\x09\x1f\xcf\xc0\xb1\xa8\xc2\x37\x81\xa9\xda\x38\x5a\xb3\x63\xfc\x51\x24\x8b\x71\x22\x1c\xf2\xd2\xf3\x0b\xe5\x55\x79\xcf\xf3\x72\xc0\xcc\x00\x32\x53\x48\x43\x66\x05\x70\x7b\xa8\x3c\x48\xc1\x95\x0d\xa6\x5c\x63\xe0\xe2\x6a\x62\x23\xcf\x19\x8e\x20\x15\x48\x43\x27\x79\x67\x88\x27\xec\xef\x8a\x68\xc2\x07\xe5\x72\xb7\x25\xa2\x0d\x4e\xbc\xf8\x09\xf9\x38\x52\x33\x39\xa3\x8a\x14\x12\x05\xab\xaa\xac\xea\xbb\x7c\xa2\x30\x06\xa0\xd2\x94\x0a\x57\xdc\x77\x3a\x3c\x41\x7d\x59\xc8\x0c\x4a\x48\x34\xf9\xe1\x90\x7b\x12\x86\x6b\x00\xf3\x55\x26\x01\x39\x80\x20\xa0\xdc\x7b\x68\x68\x77\xe1\xb4\x6a\x16\x7e\xcc\x00\x0b\x58\x6a\x87\xe0\x54\x3c\x06\xba\xff\x1c\x59\xf2\x3d\xff\xf5\xd3\x56\x49\xda\x28\xa6\x0e\x48\x84\xe8\xa6\xbe\xac\x40\x13\x06\x5a\x3b\xde\xa6\xd6\xf3\xcd\x34\x57\xe7\xdb\xc9\xcd\x69\x22\xb4\x15\x51\xc4\x00\x96\x84\xfe\x93\xe9\x90\x29\x7c\xc9\x7b\xde\x3c\xf3\x7f\x3b\x6e\xbd\xe9\x19\x42\x1e\x69\xc7\xfe\xb6\xf8\xe8\x3c\x9f\xa7\xba\x7a\x1d\xa0\x2d\x74\x28\x4d\x79\x14\x46\x46\x1e\x0e\x33\x10\x1b\xdb\x31\xd2\x06\xc9\xf4\x5e\xb5\x60\x15\x1a\xbe\xf9\x26\x83\xd8\xb8\x5a\x6f\x37\xbb\xe5\xdd\xe3\xe6\xf6\xe1\x66\x98\x3b\xd3\xb1\x32\x6a\xc5\xbd\x98\xe0\xd0\x2c\x1d\x5f\x27\x06\x15\xdb\x17\x6a\x32\x4d\xa6\xeb\x04\x96\x3e\x9a\x00\x3a\x09\x12\x1c\x89\xb8\x6f\xbf\x43\x6d\x0a\xce\x9b\x97\xb2\xcd\x0b\x17\xed\x1e\x5f\x25\x61\x21\x2a\x65\x34\x68\x69\xbf\x1e\xda\x0d\xca\x11\xbb\x1b\x4e\xa4\x42\x97\x53\x55\xd7\x3c\x2f\x40\x5d\xea\xd3\x83\xa6\x61\x88\x45\x5a\x38\x47\x0c\x7f\xfc\x30\xe5\xa9\x69\x62\x2e\x81\xc5\x85\xd7\xbc\x3e\xac\xe0\x7d\xe3\x81\xda\x9a\x26\x31\xee\x94\x7f\xad\xee\x41\x8d\xb3\x54\x9a\x72\x85\xfb\xfa\x84\xb4\x46\xb3\xd8\x00\xb1\xd6\x47\xee\xcf\xc3\xd2\x84\x5a\x84\xd9\x7e\x2e\x08\xa1\x59\x16\x23\x1f\xd8\x6a\xb1\x45\xfe\x6b\x97\xdd\xf4\x27\xe0\x32\x56\x0e\xad\xf7\x8c\x5a\x33\x33\x71\x72\xcd\x44\x14\x38\x34\xd0\xed\x0e\x54\xde\xee\x88\x8b\x67\xea\x34\x90\x18\x11\x34\xe9\xdd\x30\x70\x16\xfd\xb6\xf2\xf7\x9e\x86\xb1\xa9\x62\xca\x7f\x21\xc2\xd6\xff\xae\x38\x06\x2e\x17\x45\x5b\x9f\xf2\xc6\x3f\x57\xc6\x08\x22\x88\xaf\xaa\xb7\xb7\xf3\x53\x55\x5d\xf1\x7d\xb3\x38\xb5\x55\x59\x1d\xaa\x53\x63\xca\xf3\x78\xbb\xaf\xca\x6b\x2e\xf3\xc2\x8b\x2c\x80\xce\x94\x82\x9e\xa8\xc8\x90\x04\xc3\x88\x88\xdd\x76\xe4\x12\x30\x63\x54\x9e\x0e\x68\x7c\xd6\xcd\x75\x55\x3f\x55\x45\x31\x4e\x58\x69\x11\x2b\xeb\x20\xf3\x76\x8f\x1e\x01\x67\xee\x62\x22\x0d\xa9\xcd\xbe\xdf\x54\x85\xfa\x92\xa6\x41\x0b\xc1\xd0\xaf\x71\x8b\x7f\x55\x7c\x92\x84\xd1\x42\x6a\x2c\x0a\x3d\xe4\xe5\x4f\xc8\x51\xe3\xda\x5f\x51\x19\x55\x90\xc6\xd4\xf7\x5f\xe5\xea\x56\x4d\x6e\x58\x92\x84\x1a\xde\x81\x02\x9a\xf0\x2e\x17\x35\xaf\xcf\x0b\xc5\x8f\xed\x94\x73\x40\x2b\x62\xd4\x94\xdc\x2d\x79\x51\xa6\xdf\x2d\x7f\xfb\x84\x27\x76\xb8\x08\xaa\x48\x62\x45\x94\xf7\xf7\xd6\xa5\x1a\x32\x42\x68\x25\x08\x5a\x5b\x47\x83\x5b\xd9\x56\x5b\xfe\x06\x8b\x66\xd3\xd7\x78\x6a\x08\xb5\x34\x82\x11\x46\x1b\xc6\xd0\x2d\x8c\xfc\x5a\xad\x99\xe2\xbd\x63\x64\xf5\x82\xfd\x42\xa7\x53\x81\xb4\xdd\x4f\x35\x7f\xe3\xcd\xbe\x57\x27\x00\xad\x55\x38\xe2\x90\xb8\xbe\xa0\xcf\x1e\x7d\x1e\x1d\x10\x11\xa3\xb7\x6e\x2a\x79\x6c\xa9\xa8\x6d\x0b\x89\x91\x75\x9f\x4f\x2f\xfe\x63\x9c\x68\xd4\x41\x18\x43\x46\x86\x40\xee\x75\xbb\x1f\x05\x26\x74\x10\x31\x43\x58\x6c\xe8\xc8\xb1\x80\x75\x80\x94\xd7\x41\x94\x0a\x6a\xd0\xe4\x3a\x2f\x0a\xcc\x1a\xba\xa6\x44\x44\x60\x24\x8f\x8e\xc7\xf3\xef\x55\x4d\x74\x07\x65\x56\x9c\x03\x4d\xbc\x8b\xe0\xa4\xed\x46\x93\x08\x83\xdd\x73\xb5\x7e\xe3\xd7\x45\x93\x98\x28\x47\xcb\x3b\x20\x42\xea\x5a\x44\xcc\x1d\x64\x0c\x11\xa5\xc3\x91\xac\x03\x9a\x99\xea\x45\x13\x1f\x32\xfb\xc1\x14\xd4\xa2\x03\x16\x69\x84\x07\xbd\xf2\x6e\xa9\x1d\xa6\x56\x69\xec\x5f\x34\xe3\x91\xaf\xcc\x29\x8a\x07\xf8\x30\xd2\x29\xdf\x46\xe3\x78\xa8\xab\xf0\x85\xf6\x8d\x0e\x98\x50\xc4\xc9\x7e\xed\x34\x40\xb3\x83\x76\xbf\xab\x86\xcf\x96\x65\x09\xb2\x9d\x75\x1b\x26\x6e\x42\x23\x95\x48\xbf\xb2\xea\x40\x44\x0c\x3f\xd2\x0f\xa8\x73\x43\x02\xdd\xef\x05\x3a\x50\x49\x98\xd1\x3e\x1f\xdb\x8b\xc7\xbb\xf6\x2c\xc3\x10\x81\x72\xf9\xd6\x9d\xf9\x98\x3b\x27\x75\xba\x7b\x87\x3a\xd7\x39\xa8\x19\xf8\x90\x0e\x14\x0f\x13\x61\xad\x1b\x57\x1f\x33\xf5\xd8\x26\xaf\xc8\x1f\x99\x60\xbc\xcc\xac\xf9\x7f\x57\x2c\x74\x11\xd8\xd6\x01\x44\x69\xe2\x2b\xe6\xcc\x24\x1a\xd6\xfb\x7d\x09\xc0\xd6\x01\x28\x2d\x7a\x16\x81\x6f\x33\xcb\x10\xb1\x3d\x35\xd1\x46\xa2\xcd\xaf\x71\x46\x58\x67\xdd\x4f\x5a\xcd\x58\x8a\xc5\x1a\xc8\xf7\x3c\x72\x80\xe6\x86\xc1\x45\xee\xff\xf3\xc9\xa4\x65\x88\xbb\xd1\x33\xf0\xe2\xbe\x2a\xe1\x3c\xfc\xb8\x24\x88\x25\x32\xc4\x20\x57\x1f\x26\xc7\x06\x6a\xc4\xce\x78\xad\x2f\x57\x63\x7b\x38\x21\x01\xb2\x4a\x1c\x73\x59\x1d\x1b\x1b\x08\xf3\x23\x90\x90\x50\x52\xb3\x13\x96\xd5\xa9\x94\x18\x51\x9c\xec\x00\x9a\x90\x28\x20\x36\xa5\x6e\x79\x1a\x5e\x9e\x6f\x87\xee\x9a\x26\x61\x44\xc0\xd9\x88\x88\x46\x42\x31\xe5\xf1\x69\x62\xc2\xb1\xe8\xdd\xd2\xed\xfd\xac\xf3\x76\xbe\xb2\x5c\x93\x98\x6b\xac\x8c\xd9\x9c\x44\x33\x52\x21\xfb\xad\x52\x6b\x4d\x62\x30\x32\xbd\xd5\xd1\x4e\x95\xa1\xfc\xab\xed\x93\x64\x80\x99\x17\x23\x98\xde\x99\x0a\xf5\x79\x4c\xd1\x35\x39\x29\x65\x21\x73\xe1\xb1\xd3\x61\x5d\xc0\xa1\x57\x6f\xd7\x84\x11\x62\x98\xa0\xf2\x03\x8c\xaa\xc8\x34\x61\x34\xc5\x3c\xbc\x38\x9d\xa1\xb6\x9c\x27\xae\x2d\x8d\x13\xd4\xed\x71\x23\xcf\xc6\x93\xcc\xb6\x35\xab\x19\x32\xbe\xa9\x34\x36\xd8\x04\xbf\x31\x19\xac\xfc\x33\x34\xd5\xa9\x96\x5e\x86\xe3\xd4\x57\xf5\x68\x92\x26\x11\xda\x59\xcd\x49\x1c\x72\x43\xff\x33\x30\x4b\x35\x49\x19\x43\x66\xaf\xa3\x61\x69\x31\x10\xa8\xd1\xe7\x4e\xb9\x11\xea\x55\xe6\x6e\xc7\xf8\x1d\x4d\x32\x9a\x32\x5b\xc6\xea\x75\x1e\xc6\x19\x45\x4d\x32\xc9\xac\xfd\xbc\xf1\x6e\xce\xb4\x0f\xa7\x1a\xcb\x55\xaf\x16\x2e\x04\xa9\x89\x88\xc0\x55\x38\x2f\x9e\xec\x1e\xdc\x83\x25\x35\x11\x31\xe5\x26\xe4\xa3\xbd\x17\x31\xbf\x47\x13\xc9\x43\x8c\xa2\x38\x54\xef\xb3\xad\x3a\xfa\x74\x32\x29\x12\x23\x55\x19\x0c\xff\x73\x17\x56\xcc\x70\x03\xfc\xb1\x5e\x8d\x26\xb0\x4a\x03\x64\x4a\xc7\x0d\x6c\xfb\x6b\x40\x8e\xee\x56\xa1\xc1\xea\x31\x45\x31\x68\xa2\xb2\xc0\x99\x2c\x96\x93\xe4\xf1\x98\x97\xde\x99\xd5\x04\x88\x44\x93\x71\xe7\x23\x06\x9f\x4e\x96\xe1\x79\x21\x49\xd1\xa2\x59\x6f\x5f\x46\xb7\x0b\xa9\xc4\xc9\x7e\xbf\xf8\x73\x77\xff\xb8\x7a\xb9\x5b\x6f\x5c\x93\xa6\x12\xcb\x9b\x15\x14\xdd\xc8\xbc\x9b\x91\xb3\x77\xbb\x1f\xd1\x32\x61\x16\xa2\xbf\x3b\x1a\x50\xed\xd7\x53\x56\xeb\x24\xce\x5c\xc0\xcd\xad\xba\x61\x18\x2a\x4e\xbc\x24\xce\x7d\x75\x40\xd0\xf2\x2c\xee\x58\x87\x21\x33\x21\x67\xac\x3b\x32\x85\xb5\x96\x56\xde\x15\x1f\xbb\x8e\xd2\x18\x67\x48\x36\x78\xee\x76\x16\x09\xf9\x71\x62\xbd\x84\x51\x1a\x07\x0e\x82\xec\xf7\x54\x5b\xab\x34\x21\x51\xd0\x61\x4c\x4c\x0a\xd6\x25\xbf\x2f\xa5\x65\x74\x18\x6b\xaa\xad\x0c\xf1\x8b\x89\x0f\xcf\xd2\x62\xe8\x30\xb1\x29\x39\xef\x0b\xdf\xf3\x5f\xc3\xb0\xcd\xa4\x3b\x03\x43\xf0\x77\xe3\x14\x0d\x16\xed\xe4\xca\x4c\x53\xa7\x9f\x64\xde\xcb\x0d\x94\x50\xf3\xce\xf3\x1d\x12\x63\x75\x1d\x4d\x35\xdc\x9e\x97\xea\x02\x07\x33\x3b\x8b\xc2\x34\x24\x18\x5a\xda\x2c\xb7\xcb\x2f\x32\x02\x3a\x4c\x45\x84\x10\x8a\x43\x5e\x3e\x81\x91\x79\x74\x2d\x52\x30\x5b\xaa\x69\x57\xfc\xe3\x48\x78\x62\xfc\xb8\x19\x25\x18\x4b\x30\x74\x73\xd7\x06\x47\x43\xdc\xb9\x78\xa6\xd1\x95\xe8\xc6\xef\xcd\x62\xe3\x7f\x06\x0e\x03\x40\x11\xe6\x9c\xaa\x7a\xf2\x9a\xb8\x4e\x91\xb2\xf0\xae\x7a\xad\x7a\xeb\x5f\x87\xc2\x0a\xf9\x9a\x6a\xb5\x3d\x6f\x20\xf2\x4d\x82\x52\x5b\xd0\x27\xf7\xb3\xac\x6d\x3a\x14\xa0\x31\xef\xba\xe7\xcd\xb6\xdb\xbb\x4b\xde\xf6\x23\x5c\xe8\x18\xa3\x2b\x57\x79\xdb\x5d\xf2\x99\xb7\xd3\x38\xd4\xe4\x7d\x2b\xce\xc0\x8c\x72\xc5\xcf\x2b\x7e\xf6\xa3\x1a\x02\x89\x11\x40\xe4\xa4\xac\xca\xc6\x05\xa3\xe7\x13\xf9\x3a\x84\x50\xa0\xfb\xac\x3f\x81\x2d\xba\x6e\xb1\xc1\xf3\x75\x13\x70\x95\x37\xc7\x53\x0b\xea\xd6\xb0\x3e\x6c\xe0\x7f\x4f\x50\x4a\xf8\x59\x57\xe5\x2b\xee\xe7\xa3\x42\x1d\x1d\x02\x4d\xa9\x0f\x70\xc0\xe9\xb0\x83\xfc\x75\xdf\xee\x04\x7f\x7d\xed\xbf\x3e\xa4\x71\x66\xa1\x35\x87\xce\xfc\xf9\xec\x3e\x84\x44\x31\x88\x9b\xfb\x21\x9d\x99\x0e\x41\x93\xd0\x97\x88\xb8\x52\xb1\xf1\xa1\x3a\x35\x04\x4a\x9d\x75\x32\x11\xf8\xd4\xa1\x16\x41\x0a\xde\x97\xb1\xdb\xfa\xf8\x0b\x46\x41\x1c\x08\xbb\x60\xdc\xdf\x3e\x2f\xae\x16\x77\x8b\x87\xa5\x8d\x5d\x75\xad\x14\x2d\x7d\xe0\x75\x71\xee\x56\x0a\x39\x80\xba\xe9\x28\xc8\x08\xc6\x9b\x3b\x1b\x24\x9c\x7f\xb8\x28\x00\x15\x0e\xb7\xf1\x7e\xff\x1f\xbb\x64\xe3\xa3\x08\x70\x74\xcd\xf7\x2e\xc7\xe6\x2b\x80\xc6\xcf\x18\x85\x8c\x60\x00\xc7\x62\x8f\x37\x28\xda\x31\xef\xc0\x5b\xcf\x9c\x64\xfe\xaf\x3b\x47\x66\x08\xb9\x57\xf7\xcb\x6d\x8f\x9f\xd0\x51\x14\x50\x8a\xa8\x82\x6e\x9d\xaa\xde\x27\x9e\x57\x14\x71\x13\xa1\x3c\xd6\xd0\xf9\xc2\xb2\x3b\xb4\xf1\xc7\xca\x04\xa7\xb2\x65\xad\xfe\x0a\x58\xa5\xa3\x98\x50\xa4\x02\xcc\x1b\xe4\xcf\xbf\x42\xc8\xa2\x3b\x13\x25\xd4\xa1\x38\x1e\xe0\x57\xfb\x38\x80\xa8\x7f\x6d\x2b\x46\x94\x64\x4e\x45\xd8\x54\xc7\x60\x11\xf8\x80\x2f\x5f\x47\x2c\x92\x2e\x82\xfb\xfd\xac\xea\xea\xab\x18\x8e\x8e\x98\x88\x23\x57\x29\xb5\x3d\x1f\xe7\xb9\xbd\x75\x94\x66\x11\x68\x47\xbb\x33\xa2\x13\x9a\xdd\xdd\xa2\x2c\x53\xb8\xcf\x9b\x0f\x2d\xe1\xaa\xfa\x35\xb9\x70\xa6\x15\x92\xe6\x59\xf2\x7b\xb3\x8c\x5c\xb8\x6a\xbd\x7b\x15\x71\x6e\xf4\x19\x8c\x6f\xad\xcd\x6d\x80\x1a\xf3\xb1\x5f\xda\x24\x91\x90\x41\x2c\x7b\xde\x9c\xeb\x53\xa9\xcc\xc8\xeb\x09\x28\x74\x24\x89\xa9\xcb\xaa\xb9\xc2\xa9\x39\x84\x28\xea\x48\x86\x11\xa6\xa8\xf3\xc6\xf9\x5a\x0f\x55\xeb\xea\x7a\xe7\x70\x37\x3a\x92\x94\xa6\x96\x9d\xac\x28\xa0\x73\xf6\xab\x6a\x5e\x67\x59\x47\x32\x23\x18\x59\xe5\x52\xd6\x27\x18\x90\xb7\xe9\x48\x72\x42\x4d\x20\xb2\xfa\x40\xc9\xf3\x0b\x69\x73\x1d\x49\x10\x52\xb9\x22\x7e\x14\xa1\x42\xc1\xbc\xba\xf9\xec\x63\x2a\x1a\xa1\x91\xa7\xb1\x0e\x0b\xd3\x89\x5f\x79\x87\x97\xe1\x82\x48\x31\x8d\x96\xce\x81\xff\x5a\xb4\x6d\x37\xfc\xc0\x4f\x13\x88\x94\x08\x06\x9c\x02\x3f\x01\xde\x8a\xf3\x20\x58\xf0\xa3\x2a\x4e\x07\xd8\xd8\xd4\xcf\xf8\xd6\x34\x0b\x30\x8a\xfc\x9a\x6b\x8f\x54\xd5\x71\x10\x81\xb2\x9f\x70\xbb\xef\x3e\x8e\xf8\xda\x3e\x8b\x3b\x37\x75\x48\x8b\x79\x53\x15\x0a\xbd\x55\x77\x46\x12\xaa\x78\x10\x7f\x33\xfc\x9b\x6e\x43\xf4\x7d\xb4\xf6\x25\x1d\x46\x88\xf4\x89\x9f\x3f\xa1\x71\xd2\x31\x91\x12\x9c\x4a\xd0\x10\xe8\x77\xf9\xfa\xe2\x90\x30\x74\x39\x9a\x8f\xbc\x95\xfb\xc7\x07\xdc\xd4\xaa\xba\x33\x70\x5c\x8f\x4c\x60\x46\xf1\x39\x77\x35\xf7\x3a\x8e\x18\x38\xa1\x3e\xf4\x3f\x8c\xfa\x9e\x6b\x84\x38\x33\xb0\xf8\x15\x6f\xf9\x5f\x4e\xda\xd7\xb6\xc6\x41\x68\x42\xbe\x1e\xe2\x61\x19\x47\xbd\x94\xc6\xa2\xb4\xd1\xc7\x4f\x81\x50\x33\xcf\x91\x10\x8a\x45\x60\x47\x7e\xde\x56\xb7\xe5\x7b\xde\x4e\xb2\x0a\x3a\x4e\xc2\xd0\xc6\xca\xda\x3a\x87\x77\xb8\xed\x35\x49\x86\xbe\x85\xef\xad\xf0\x95\xdb\x45\xa1\xa7\x16\x1d\xbf\xea\x84\x4a\xbc\xae\x01\x35\xba\xb8\xe9\xb6\x5a\xcb\x6a\x88\x7e\xd4\x71\x22\x09\x33\x1a\x4b\x7f\x6d\x36\xd3\x07\x9b\x70\xe7\xe8\x98\x2a\x86\x38\x5c\x7e\x30\x10\x4c\x2f\x38\x6e\x56\x7c\x37\xc2\x63\x96\xc6\xf8\x71\x78\x51\x4c\xc4\x37\xba\x36\x8d\xd6\xe1\x7d\x5e\x74\x9b\x5b\xcf\x05\xd9\x47\x90\x75\xcc\x04\x37\x1a\x2f\x45\x37\x09\x9c\x18\x9a\x8e\xd3\x90\x18\xad\x79\xbb\x64\x3b\x03\xc1\x35\xb3\x18\x03\x6b\xa8\x43\x35\x35\xdf\xfa\xa7\x19\xcd\xdc\xa1\x51\x1b\xa7\xda\x48\x94\x74\xd3\x76\x10\x6a\xd6\x71\x16\x69\x2c\x8d\xb6\x38\xd5\x6d\x75\x9f\x97\xf9\xe4\x4b\x66\x49\x9c\x11\x17\x08\x6e\x9c\xd6\xb3\x6b\xa4\x31\x04\x2e\x6d\x58\xbf\x21\x03\x8d\xaf\x57\xcb\xab\xe9\xa9\x18\x47\x1a\x48\x24\x4b\x5b\xee\x79\xfd\x0a\xbb\x23\xf1\xe7\x52\x09\x92\xd1\xfe\xd7\x66\x6b\xb8\x2c\x5d\x03\x8f\x19\xd6\x50\xd8\x92\x25\xfc\xff\x6c\x39\x86\x8e\x05\x31\x61\xc0\x57\xf4\xe8\x60\xf7\x76\x96\x3b\x51\x95\xa7\x66\x57\x9e\x0e\x50\xa3\x39\xed\xba\x86\xa9\x63\x6f\xb5\xa1\x10\x50\x86\xcd\x67\xfc\x65\x85\x15\x11\xeb\xb6\x5e\x44\x1d\x2c\x2f\x30\xfa\x3a\x96\x8c\x68\x32\x50\x2e\x5d\x6f\xbf\xbb\xeb\x28\x15\x62\x52\xfa\x60\xd2\xea\xb9\x9c\x27\x9d\xd3\x31\x70\x41\x2d\x9a\xc0\x8a\x0f\x0e\xd2\x9c\x93\xae\x2a\x10\xa6\x38\x44\x98\xd8\xc9\xd5\x49\xbe\x41\xdb\xf8\xaa\x42\xdb\x4f\x47\xa6\xfc\x07\x69\x54\x8b\xe2\x81\x1f\xc6\x31\x92\x24\x88\x8d\x71\x86\x6b\xdd\x92\x97\x0a\x59\xd2\xbe\xb9\xd6\x34\x54\xaa\xcf\xd1\xcc\x7b\xb4\x09\x09\xc2\x54\xf9\x0d\xba\xb1\x49\x55\xc3\x76\xb3\xfe\x35\xcd\x7e\xeb\x84\x24\xa6\xd2\x13\xfb\xcf\x55\xea\xe9\x6e\x7d\x41\x73\xde\x56\x75\xbe\x94\x28\xa2\xf1\xcd\x0b\x50\x7e\x42\x94\xa2\x13\xa2\x12\x3c\xb7\x7d\x2d\xf7\xfc\xf8\x54\x35\xd3\x93\x2b\x81\x2e\xf3\x3d\x78\x10\x8e\x4e\x42\xc8\x10\xc1\xe9\x20\x4c\x4b\xde\xec\xaf\xab\xfa\x3b\xaf\xd5\x07\xaf\xe1\x19\xda\x53\x3d\x71\x95\x93\x28\xd5\x08\x46\xaa\x8e\x50\xfa\x0a\x08\xf4\xbc\xdc\x59\xa3\x4c\x51\x33\xe0\xd5\x2c\x59\xa7\x4e\x22\x08\x1c\x79\xd3\x13\x3f\x35\xa0\x7a\xaa\xd2\xde\x06\x4a\xe2\x20\xc6\xc4\x33\x46\xb9\x1c\x9e\x79\xfc\x25\xe3\x50\x22\x20\x14\x0e\x79\xbb\xa8\x81\xaf\xdf\x79\x71\x1a\xca\xb2\x8f\x0c\xe8\x74\xf2\xde\x62\x4e\xe4\x40\xfa\x60\x5d\x9a\x3a\x16\xdf\x0a\x58\xb7\x2a\x4e\xe7\x24\x18\x90\xc3\xea\x24\xd6\x3c\x4b\xdd\x02\x52\xe2\x98\x75\x6b\x43\x42\x23\x82\x73\xd1\x10\xb1\x22\x5b\x9a\x6b\x11\x36\xc6\xc0\x35\x7c\x52\x3b\xaa\x13\x0a\xc4\xe8\x3f\xbd\x43\xcd\x5f\x61\x51\xb7\x1f\x55\xfd\xd6\xd9\x42\xa3\x3b\x48\x49\x80\x41\xdd\x97\xab\xdb\x6d\x18\x90\x34\xa0\x99\x6f\xa2\x29\x5a\xf5\xc6\xde\xb1\x93\xdb\xb5\x65\x49\x66\xe0\x44\xcd\xa9\x68\x1b\xa4\x89\x6d\x3c\x4b\x97\x4e\x52\xeb\xeb\xa8\xbc\xe9\xee\xfe\xaa\x1a\x63\x3d\xac\xfc\xb6\x4e\x32\x4a\x53\x1b\x42\xda\xec\x8f\xae\xc0\xf1\x79\x5a\x7a\xad\x93\x2c\x4d\x50\x81\xec\x8f\x1f\xf7\x43\xcf\x30\xc9\xb2\x38\x90\x23\x7a\xc7\x23\x94\x46\xfd\x70\x32\x54\x78\x96\x22\x66\x4a\xd5\xfc\xb5\x2a\x6f\xf2\xba\xb0\x14\x07\xa3\xf7\x21\x04\xa1\xf6\x86\xbe\x0d\x55\x0d\xfb\x3b\x51\x29\xc5\x4a\xed\x65\x7d\x3e\xb6\xd5\x53\x55\x35\xa3\x1b\x52\x22\x51\xb6\xe0\xaa\x07\x32\x4f\xb2\x22\x6e\xf2\x0d\xd2\xeb\x53\x69\xcd\x7f\x86\xfd\x76\x14\xfe\xcf\x3f\xc6\x77\xa0\x19\x09\xfc\x82\xde\xc7\xfb\xc7\xcf\x0b\x51\xea\xb4\x8a\xae\x4e\xe7\xbe\xc6\xd5\x2a\xa0\x13\x57\x07\x30\xbb\x9a\x26\x3a\x8c\x1c\xd3\x41\x9d\xb7\x67\xb3\xa5\x7e\xf3\x8d\xdc\xb0\x76\x1e\xa0\x54\xcf\xd0\x9a\xa1\x7b\x51\x07\xaa\x13\x4d\x0d\xb7\x28\x12\xa7\xa1\xb4\xce\xc5\x6d\x6a\xce\xd2\x70\xac\x85\x87\x22\x15\xf3\x0b\x94\x96\x3c\xb3\xa0\xa2\x75\xa9\xab\x5a\xba\x68\xc4\x3d\x6f\xe5\x7e\x30\xe7\x69\xc0\x28\xba\xf3\x46\x37\xf3\x9b\xfb\x95\x27\xb8\xe6\x38\xa4\xcc\xcf\xbc\x50\x72\x50\xa0\x37\x5e\x9b\x69\x00\x3a\xb6\x14\x0d\xbb\x3d\xf0\xe3\x64\x23\xa1\x81\x8e\x31\xa7\xd4\xeb\x3a\x9f\xfc\xa5\x08\x0f\x31\x6a\xe4\xb1\x16\xdb\xef\xeb\xe7\xdd\xfd\xed\x83\xe1\x01\xbb\xbd\xf2\x1d\x85\xd1\x1c\x44\x0b\xe1\xc6\xfd\x1a\x46\x40\x12\x4b\xd1\xd2\xe4\xa2\x80\xdd\xa9\xf4\x45\x15\x9a\xc6\x89\xc9\x9e\x20\x3d\xf5\xf1\xd4\x5e\xe7\x03\xf1\xd7\x91\x75\x48\x63\xa6\x50\xfa\x00\xda\xbd\x49\xea\xdf\x43\xd3\x70\xa4\x6d\xd6\x4e\xad\x5e\xd3\x58\x24\xb8\xdc\xa0\x1f\xe7\xef\x2d\x49\x62\xf4\xc7\x9f\xb9\xd6\x05\xec\x9e\x7a\x9e\x2b\x4d\x13\x65\xaa\xb3\xba\xb9\xfb\x96\xf7\x64\x8e\xf3\xd8\x00\x7f\x3b\x89\x62\x41\xd4\x13\x6b\xcf\x3b\x82\x34\xd1\x1c\x2d\x02\xf4\x1d\xd5\x49\x8e\xf9\x55\x35\x65\x2c\x46\x61\x94\xdb\x87\xdb\xed\xed\xe2\x6e\xf7\x63\x71\xf7\xe2\x82\x35\x34\xa5\x29\x96\xef\x41\xa9\xae\xf3\xba\x31\x92\xa7\xbe\x31\x0d\x30\x89\xb3\xc9\xbb\x21\x70\xd7\xab\xea\x6a\x9a\x66\x86\x0a\xd3\xc4\x00\x7f\xac\x27\x5f\x9b\x93\x28\x20\x4e\x44\xe7\x69\x08\xfd\xd7\x94\xc7\x09\x06\x55\x9f\x1f\xef\xd6\xbb\xe7\xf5\x8f\xdb\xf5\xcf\xf5\xb3\x6f\x94\x1a\x03\x93\x3b\x33\x4e\x9e\xa7\xf2\xdf\xfd\x25\x54\xa0\xf0\x0e\xcc\xce\x8d\x3b\xe2\xb0\xa0\xdb\xf5\x52\x9e\xb1\xf4\xa9\xae\xfe\x05\xb2\xdb\x71\x2e\x18\xf6\x35\x85\x28\xc5\xea\x5a\xf4\x19\x1e\xf5\xb2\xa8\x4a\xf8\xc9\x6b\xff\x2a\x80\x47\x86\xf8\x09\xc5\x11\xed\x4c\x99\x75\xd3\x28\x48\xc0\xf5\xe0\x1d\x9a\xb6\xdf\x65\xbf\xce\xf8\x53\x50\x1a\x01\xaf\xbc\x69\x4e\x35\xac\x16\xc7\x63\x67\xdf\x70\xe5\x4c\x73\xaa\x53\x91\xd8\x42\xd8\xf5\x2f\x59\x9c\xd4\xc4\x92\x61\x41\x64\xd2\xf5\x7d\x66\xc4\xab\xbf\x7f\x73\x5d\x62\x8d\xe0\x64\xf3\x6e\xcd\x3a\x37\x3b\xa6\x58\xa0\x32\x2e\x9d\x08\xee\xc4\xac\x62\x84\xa4\x92\x39\xbe\xa1\x77\xe0\xc5\xe3\x71\x1a\xdc\x67\x24\x34\xde\xa2\xd9\xa5\x1e\xeb\x57\x5e\xe6\x0d\x7e\xa4\x0b\xd3\x90\x85\x61\x8a\x25\x82\xe6\xb6\xbe\xf3\x66\x6f\x36\xd0\xd9\x38\x2d\x0b\x23\xe1\x14\xb7\x6d\xa8\xe2\x19\x8e\x15\x96\xbe\x0d\xf7\x5d\x16\xf2\x04\x93\x9e\x47\x8c\xf0\x3f\x55\xc7\xce\xe3\x18\x10\xac\xf4\x0b\x20\x0b\x75\x9c\x04\xce\x4e\x9c\x3c\x48\xa4\xa8\x0c\xa6\x1a\x58\x63\xbc\x09\x8b\x69\x88\xf5\x21\x2a\x6f\x8e\x43\x66\x4a\xd7\xcc\x8d\x22\xda\x11\xe4\xa9\xcc\x47\x04\xd7\x9a\xc5\x42\x28\x07\x7a\x98\x37\xd7\x59\x2c\x09\x95\x6e\x0c\xe7\xff\x86\xa7\xca\x1f\x9d\x88\x04\xb7\x97\x0f\x07\x39\xf9\x0a\xf6\xa7\x59\x22\x85\x63\x86\x45\xdf\xc2\x0d\xce\xdb\xb2\xf9\x1c\xc3\xac\x19\x25\x46\x84\xb5\xe5\x6f\x97\x60\x12\x46\xa9\xd1\xb9\x6b\x78\x71\x6a\xf9\xa2\x54\x55\x99\xbb\x75\x82\x51\x30\xf1\x7c\x23\x37\xd6\xcc\xc8\x67\x7f\x46\x95\x38\x9b\xed\x60\x2c\x50\xb8\xcd\x7c\x3f\x1f\x61\xa0\xa2\xa6\x19\xe3\xd2\xf8\x87\x6d\x75\x34\xca\xe0\xbb\x76\x30\xf4\xd3\x80\x99\x47\xb0\x4f\xbc\xad\x30\xe3\x32\xff\xc2\xd3\x34\x89\x6c\x86\x3a\x19\x9a\x3c\x2c\x23\x12\xa9\x01\xfe\xfb\x79\x33\xb4\x64\x18\x67\x46\x01\xa1\x46\xe3\xfd\x19\x5e\x71\x85\x19\xdf\xb9\xa0\x29\x86\xf8\xb8\x52\x7f\xc0\x79\xda\xc8\x22\x27\x79\xea\x82\xd6\x56\xfb\xc0\x77\xa0\xb1\xe7\x9b\x3a\xc9\xb7\x33\xb2\x60\x34\xfb\xfc\x68\xa2\x4e\xb3\xab\x0a\x13\x82\x69\xe2\xb1\xb6\x26\x9e\x3b\x22\xe8\xd4\x4c\x66\x31\x9e\xb8\x73\x1a\x6d\x59\xe1\xec\xee\x44\xe8\xf4\x0b\xb9\x13\x08\x19\x65\xbd\x59\x69\x45\xee\x5e\x1a\x50\x8b\xc6\xc4\x4a\x42\xf7\x10\x52\x83\x49\x6a\x5a\xe7\x71\xc3\x8b\xc9\x66\xc5\x54\x9a\x61\xf9\x33\x4e\xc5\x1f\x50\x2a\x6f\x4a\x31\xa5\x55\xe4\x45\x93\x9f\x78\xae\xb6\x95\xc1\x5e\x4f\xf2\xed\x0c\x28\xc1\x12\x7d\x23\xa4\x3d\x79\xd3\xc0\x48\x64\x63\x5c\xab\x76\x3f\x6d\x04\xe2\xc0\x89\xa7\xe3\xe3\x54\x82\xf0\x33\x2c\xcb\xf4\x1c\x0a\xed\x80\x3b\xe0\xff\xaa\x60\x34\x4c\x74\x66\x14\xd6\x1a\xb4\x7e\xfe\xeb\xe4\x81\xaa\x3a\x0d\x82\x08\x43\x6f\xd6\x9d\x6c\x6e\x0f\xdd\x9a\xd6\x27\xf2\x52\x42\x4d\x70\xba\x1f\xc0\x83\x54\x6e\x5f\x91\x35\xba\x17\x44\x90\xa2\x8a\x3e\x14\x05\x02\x1b\x9e\x0a\x2e\x6d\x2a\x6d\x3a\xb5\xd2\x58\x05\xda\x57\x6a\x3f\x07\xee\xc2\x31\x44\xa8\x18\xb2\xa8\x5b\x38\xe4\x8e\x9c\x54\xa7\xb1\x8e\x82\xd0\x19\x27\xa6\xcc\xe8\xd2\x19\x49\x93\xd0\x4a\xc5\x62\x8d\x75\x0b\x8d\xb7\xcb\xd2\x24\x8a\x39\x4c\xa9\xe1\x27\x47\x53\x85\x96\xa9\x29\x64\xe8\x31\x61\x7d\x0c\x35\x4d\xb8\xf0\x7a\xc8\x3c\x2f\x9b\x71\xad\xbc\xed\x44\x93\x0c\x49\x6c\x66\xbc\xe3\x0b\x4f\x63\xaa\x98\xa5\x53\xc6\x48\x90\xfa\x92\x0a\x13\x4d\x9a\x44\x21\xd3\x54\x68\x3d\xa0\xd8\xb7\x0c\xf5\x37\x95\x8f\x90\xa4\x29\xa4\x91\x0f\x5e\x2c\x8c\xdb\xfb\x77\xc5\xf8\xc3\x34\x43\x9a\x02\xc7\x9d\xa2\x32\xa5\xe6\xee\x57\x6d\x0c\x31\x93\xfe\x25\xfe\xb3\x65\x41\x86\x8a\x1b\x22\x57\xdd\x9d\x0c\x75\xb6\x74\xca\xa3\x00\x21\x2f\x1b\xcb\x5f\xb1\x8b\x7d\x0b\x03\xee\xd5\x0f\x30\xbc\x32\x8a\xe3\xa5\xc8\x7b\x83\x25\x11\xa7\x5a\x8e\x46\x77\xca\x39\x98\x34\xbd\x7d\xc3\x08\x11\x1e\xf7\xd0\x41\x12\x3b\x58\x14\x1a\xd6\x77\x50\xbe\xb6\x23\x69\x39\x9d\x8a\x2c\xc2\x8a\xea\x4d\x5e\x22\x93\x77\xde\x9e\xb7\xd0\xb4\xc4\x25\x99\x53\xc1\x95\x23\x20\x5b\x56\x87\x43\x67\xec\x9f\xaf\x78\x51\x54\xed\x4f\xc8\x87\xeb\x75\x2a\x89\x46\x0e\x44\xd4\x18\xaf\xb9\xf4\x85\x2d\x3a\x95\x71\x86\xeb\xde\x6d\xd9\xde\xae\xcc\x54\x1c\x4f\x07\x29\x22\x84\x22\x89\xee\xf1\xcf\xbb\x23\xcf\xfd\xeb\x93\x9a\xca\xee\x39\x36\xf7\xb7\x77\x8f\x3b\xc3\x00\xb4\xb8\x7f\x7c\x71\xfc\x08\x5d\x0f\x86\xe1\xf0\x1e\x9c\x86\xcc\xf2\x7e\xec\xab\x8c\x2a\x70\x21\x41\xae\x8a\xc1\xbc\x82\x28\xc5\x24\xa0\x2d\xb6\x5f\x3f\x2f\xc3\x00\x49\xc5\x0c\x61\xeb\x6f\x65\xf1\x52\x10\x86\x16\xee\x5f\xcd\xe7\x99\x8c\xbf\x39\x85\x0e\x62\xc4\x27\x88\xd3\xf9\x8a\x97\x6f\x50\x2f\x5e\x6b\xc0\xec\xcf\x75\x5d\x1d\xdc\xfa\xd4\x35\xd9\x3b\xcf\x82\x2c\x46\xd8\xed\x0d\xaa\xde\xa9\xbc\x6d\x46\xd1\xd5\x8c\xc4\xc6\x58\x31\xc8\x45\x44\x99\xbc\x4f\xea\x0c\x74\x46\x52\x81\xe2\x9c\x16\x5a\xe7\x42\x50\x2b\x13\x1d\x99\xe8\xcb\xb8\x63\xb8\xc6\x2d\x68\xe7\x32\x42\x06\xd5\xb1\xea\xfc\xc1\xf9\x2d\x3e\x0b\x83\x8c\x3b\x86\x2e\xcb\xec\xe1\x8a\x25\xed\x54\x19\xed\x29\x59\xa8\x00\x52\x17\x50\xbe\x81\xf6\x67\x55\x17\x6a\x53\xf2\x63\xb3\x9f\xda\xc7\x59\x14\x2a\xd6\x23\x32\x36\x86\xb3\x70\xea\xcd\x67\x71\xc2\xa2\x68\x10\xc8\x35\xfb\xbe\x9f\xd8\x59\x0c\x91\x02\x07\x33\x94\x15\x02\xf2\x1e\x8f\x36\xb2\x3c\x39\x15\xa4\xa1\x0d\xa4\x5c\xd5\xb9\x7a\x05\x4b\x30\x53\xd5\x9d\x4b\xf8\xeb\x7c\xa9\x33\xa9\xb3\x84\x86\xb1\xa9\x6f\xcc\x45\xf7\xbe\x5a\x5d\xd5\x07\x77\xed\x24\x0b\x10\x3a\xb4\xcb\x1b\x3c\xd5\x8a\xb7\x1c\x35\x20\x2f\x85\x27\x75\x96\x70\x85\x1b\xc4\x77\xde\x3c\x54\x18\x4e\xea\xa6\xab\x3b\x15\x0d\x0c\x9c\xf3\x08\xf5\x80\x76\x5f\x67\x54\x65\xda\x80\x10\x0e\x9b\x23\xa0\x24\xc2\xfb\x50\x9b\x5b\x67\x2c\x54\xe8\x12\xed\xfe\xb5\xea\xe9\x14\xbe\x1e\xb4\x59\xc6\x22\xc4\x96\x60\x0d\x40\xbf\xf2\x64\x99\x24\x68\x5f\xed\x0a\x5e\x2a\x23\x1c\x3a\x91\x2e\xb0\x1d\x79\x28\x11\x9d\xd0\xf9\xc3\x58\x59\xfe\x13\xc0\x0f\x70\xce\xcd\x9a\xb1\x39\xe6\x12\x5d\xd3\xcf\x46\x17\x57\x3a\x8d\x7b\x39\xa2\x0d\xa0\xa9\xad\x00\xab\x62\x6e\x3f\xc1\xd3\x65\x82\x11\x5c\xad\x04\x7c\x12\x00\xcf\x04\x37\x49\xef\x6e\x8b\x19\x7a\xea\x99\x4c\x63\x31\x44\xec\xe6\x9d\x6d\x7c\x41\x0f\xe6\x3a\x8b\x04\xb1\x6e\xc6\xdf\xba\xe7\xcd\xdb\xa7\x68\xb4\x4f\x5e\xb3\xd2\x86\x8a\xe2\x90\x97\x57\xb6\xfc\x71\xb4\x4d\x64\x40\x82\xd4\x66\x6b\xda\x62\xc4\x31\x3b\x7f\x4b\x3a\xd2\x18\x13\xb8\xe7\x6f\xb0\x41\x1d\x98\x6e\x91\x99\x29\x77\xd2\x99\x8e\x19\x46\x6b\x45\x5e\xb7\x7b\xe5\xe8\x41\x34\x27\x91\x40\xe3\xb2\xd9\x7f\x40\xcb\xdd\xaf\x21\xd1\x44\xfb\xd0\xf0\x95\x49\x6c\xfa\x46\xc6\x71\xd3\xbe\xb9\xdd\x2e\xdd\x6f\x51\x1a\x3a\xe8\xee\x53\xfe\x0b\x0a\xe4\x13\x9b\x44\x15\x78\xa4\x0c\xdb\xa8\xf1\x6e\xff\xf8\x6b\xf9\x99\x04\xbf\xe6\x31\x89\x30\x59\x6d\x58\x47\xbb\x47\xbb\x2d\x2d\xdd\xa8\xbb\x64\x1c\xd3\x20\xf4\x34\xf0\x35\xa0\x9b\xbc\xea\xb3\x23\x3c\x4e\x52\x61\xa3\xe2\x4d\x55\xa8\x7c\xaa\x17\xac\x79\x42\x42\x0c\xee\x83\x13\x10\x5d\xff\x1a\x10\x04\x74\xed\x91\x32\x15\x11\xa5\x7a\x6a\x2f\xe4\x6f\xe6\x3f\x33\x4f\xd2\x10\xe1\xd0\x36\x59\xfa\x6c\x42\xf6\x98\x3d\x70\x27\xa6\x81\xc6\x02\xf0\xd5\xd2\x68\xd9\x8d\xdf\x13\x65\x12\xa9\x01\xad\x2f\x33\x3b\xec\x39\x63\x0a\x63\x0d\xbc\x28\x30\x2a\xf9\x4f\xfa\x3f\xae\x45\x24\x38\x8d\x5c\xe9\xec\x94\x05\x42\x73\xa6\xa4\xe3\x61\x75\xa2\xbc\xa8\x90\xd7\xee\x87\xd3\x83\x33\xa5\xa9\x85\x6c\xaf\xa0\x80\x57\x23\xcd\x7c\x57\xc9\xb7\xb1\xa6\xcc\xe4\xce\x52\x46\x30\x69\xf9\x9e\xc3\x47\x61\x88\x6d\xe6\x1d\x2d\x9e\xca\x94\x66\x23\x35\x89\x27\x5e\xb7\x9b\x93\x68\xa7\x88\x97\xd4\xe5\xb6\xb9\x20\x04\x93\xbc\x18\x42\xbb\x5d\x3e\x7e\x8d\x38\xe0\x32\xce\xb0\xac\xa1\xfb\x84\x26\x38\xe9\xe1\xe0\x56\xae\x74\x7c\xf3\x8a\xa4\xa6\x48\x22\x6f\x4e\xbc\xa8\x2b\xf9\x36\xc0\xf0\x71\x15\x09\xc2\x07\x82\x6c\xcd\x85\xc6\xdb\xe4\xf2\x8a\x52\x8c\x1d\xc1\xaf\x23\x32\x09\xf8\xd4\xf5\xe4\xb2\x10\x24\x88\x3c\xc8\x1b\x5f\x06\xf3\x09\xae\x93\x83\xc8\xe2\x78\x40\x1b\x11\x86\x23\x43\x90\x83\x04\xd5\x0b\xba\x77\x0b\x42\xb7\x98\x3a\x8e\xb1\xf1\xed\xe9\x30\x4d\x07\x74\xc3\x25\xff\xe4\x43\x69\x4a\xd1\x1f\xd1\x55\x0d\x92\x37\x26\xae\x3a\xea\x22\x82\x50\xf7\xe5\x7d\x63\xa6\x0d\x2d\x02\xc6\xa9\xb5\x3d\x57\xf5\xe9\xb5\xf1\xbf\x73\x89\x41\x10\x5c\x95\x56\x98\x37\x99\x9c\x96\x44\x01\xd7\x16\xa7\x30\xb1\x35\x05\x89\x12\x9d\x8d\xd0\x13\x0b\xad\x7f\x6f\x92\x0a\x92\x24\xb8\xf9\xdf\xf0\x92\x7f\x21\x7a\xaf\x05\x01\x9d\x7a\xd7\x7a\xc4\xdc\xef\x3a\x68\xa2\x1c\xcb\xf2\x1b\xb4\x72\x0f\xcd\x63\x69\x0a\x39\x6d\x8f\xc8\x7e\xb1\x63\x4f\x0e\xb7\x99\x10\x5a\x68\x11\x01\x41\x4a\xaa\xc5\x69\x50\x65\xac\x45\x1c\x4a\x8c\xf2\xbd\x56\x85\xba\xcb\xbd\x99\xe5\x5a\x23\xa6\xad\x37\x69\xf2\x74\xd5\xc7\xe7\xb1\x5f\x11\x6b\x86\x95\xa4\x3a\x2f\xf3\x66\xbf\xac\x4a\x9d\xbf\x8e\xb8\xd8\xb5\x48\x02\x53\x31\xbf\xde\x6e\xff\xbe\x82\x4b\xd0\x58\x2b\x9f\x29\x36\x25\x1b\x97\xee\xb4\xa0\x42\x22\xed\x97\xce\x5f\xf7\xa8\x9d\x59\xbb\x75\x50\x30\x26\xb2\x81\x34\x88\xf5\x35\xd0\x4c\x4a\x47\x62\xed\x5a\x30\x4e\xe3\x68\x90\xad\x1c\xd9\xb9\x73\xf6\xad\x48\x03\x8d\x50\xd6\x0f\xc8\x9f\xa0\x5e\x94\x3d\xc5\x86\x16\xa9\x92\xa9\x61\x6e\x6d\x5a\xa8\xcb\x4a\xc1\xdf\x56\xc1\x88\x54\x1b\xb2\xab\xa7\xff\x74\x71\x77\x91\x45\x42\x0c\xf5\x4d\xbb\x09\xb9\x2e\xdb\xfa\xbc\x2c\xa0\x7e\x9b\xbc\x07\x1e\x52\xc7\x8c\x72\x55\xd5\x75\xf5\x01\xea\xaa\xaa\xde\x0c\xfd\xdf\x64\xd8\x73\x1e\x21\xf1\xd5\x9e\x17\xed\x20\x5e\x27\xb8\x90\x71\x36\x4d\x89\xb8\x3a\xc8\x61\xea\xfd\x93\x3f\xf6\x34\x4a\x49\x6d\xd8\x0b\xee\xf2\xf7\xbc\x7c\xbd\xaf\x4a\x5e\x7b\x1c\xa4\x80\x58\x11\x8f\x86\xed\xf9\x01\xb4\xd0\x84\x71\x0f\x8e\x7f\xb9\x02\x53\x4a\xe8\x00\x4a\xae\x13\xcb\xf0\x7b\x7b\x59\xee\x4d\x5b\x1d\x31\xbd\xdc\x6f\xf0\x42\xab\x4c\x53\x07\xa0\x43\x05\x73\x93\xbe\x2b\xfa\x69\xa3\xb5\xd1\x3f\x39\xd6\xa0\xa1\x36\xac\xff\x3d\xb3\x17\xb6\x1b\xb2\xa8\x13\x2f\x5f\xff\x33\x2f\xef\x72\xee\xc6\xb1\x0c\x42\x85\xd8\x3b\x93\x5a\xb6\x11\xba\xeb\xaa\x1e\x33\x9a\xf5\xf7\x23\x49\x64\xc4\x34\xbb\x95\xfd\xf7\xd8\xec\xb5\x24\x3c\x16\xa6\xce\x16\x78\x73\xaa\xcf\x23\x70\xa2\x24\x5c\xe3\xbb\xb2\x3a\x1a\x50\x37\x3b\x39\x30\xf6\x64\x28\x62\xb4\x06\x4f\xc8\xdb\x38\xeb\xa1\xa6\xae\xab\x14\xe8\xa9\x39\xd2\x0c\x64\xf6\x7f\xaa\xab\x23\x4c\xc8\xad\x87\x07\x45\xc4\x50\x92\xed\x6a\xfe\x71\xe3\xb5\x7d\x71\x1b\x1f\x3e\xd8\x68\x8c\xca\x88\xa5\x58\x93\xd9\xf0\x8f\xc1\xbe\x27\x23\xe0\x58\x1f\xe9\x70\x7b\xe8\x5e\x7f\x0d\x35\x95\x71\x08\x18\x85\xfa\x63\xfb\xdf\xee\x34\x71\x1a\xa1\x7f\xff\xe8\xe4\x6f\x7c\x03\xa7\x3a\x1a\x19\x24\x68\x88\x0c\x8b\xe5\xb5\x4c\x54\x9c\x0a\x4b\x12\xf3\x52\x36\x58\x06\x9d\x4f\xa8\x31\xb5\x4c\x80\x21\xc4\x30\xb7\x8e\xe1\xe6\x74\x78\x2c\x3d\x2f\x82\x96\x54\x28\xc4\x4a\x58\x8a\x8b\x27\x5e\x37\x20\xdd\xd8\x95\x8c\x84\xc8\x04\x73\xf3\xb8\x7d\x5a\xfc\xe5\x7f\x4d\x04\x2e\xb3\x9d\x45\xb3\xb4\x92\x0c\x2d\x7a\xbf\x9e\x08\x55\xcb\x54\x1a\x21\x26\x13\xcd\x5e\x58\xac\xda\xfa\xee\xf6\x4f\xbb\x8f\x2f\x79\x69\x52\x8d\x93\x18\xb7\xcc\xa2\x00\x57\xc1\xa1\x4a\xf2\xa7\xb1\xad\xe9\xa1\x80\x9b\xcf\x95\x35\xeb\xaf\xaa\xf3\xb2\xc8\xe5\xdb\x77\xf0\x8b\xac\xcc\x94\xe3\x36\x71\xf1\xa3\xa9\xd0\xb8\x96\x19\x30\xac\xca\xd9\x9b\xc2\xb2\xa5\xb9\x79\x77\x06\x9e\x70\x77\x86\x81\x80\xb6\xd3\xd4\x3e\xcd\x4d\x14\x7b\xa4\x48\x68\x2a\x7b\x3c\xe7\x10\x74\x77\xb1\x42\xcd\x29\xb3\xba\xd3\xf0\x0c\x83\x9e\xab\x97\xe7\xdb\xc5\xc3\x9f\xee\xbe\x84\x4a\x84\xa5\x1f\x2c\xdb\x55\xf5\xe1\xc7\xab\x0c\x8d\xa6\x75\x4f\x09\x92\xb7\x66\xea\x3c\x57\xd5\xc4\xdc\x96\x92\x1a\x2f\xc0\x18\x41\xf7\x95\x3a\x15\x70\x75\x52\x4e\x6b\x3d\x9d\x03\xe4\x48\xc9\x80\x13\x1b\x23\xdb\xc8\x3d\x74\x07\xa9\x61\x6c\x5a\xca\x4c\x05\xba\x57\xfc\x7c\xaa\x61\x30\x0a\x25\x84\x38\xf9\x79\x69\x4a\x26\xb1\x1c\xa8\x33\x7a\x5d\xbb\x8e\x91\xbb\xbd\x46\x9e\x04\x9c\x0c\x77\x3e\x7f\x25\xa5\x56\x98\x96\x39\x56\x4d\x67\x02\x0f\x36\x08\xa9\x98\xc6\xca\xb6\xc7\x9f\x0f\xeb\xe7\xdd\xf6\xf1\x8f\xf5\x83\x2b\x5f\x91\x40\x43\xcc\x12\xec\x79\xb3\xa8\xe1\x13\x3f\x57\x42\x67\x62\x1b\x9c\x70\x75\xc8\xcb\xd7\xe1\x6a\x38\xe9\x09\x0c\x53\xb6\xcb\xf5\xe3\xb8\x64\x43\xea\x20\x4e\x92\x01\x93\xd6\x9a\xd7\x25\x28\x97\x28\x71\x9d\xb2\x10\x8c\x69\x67\x42\x5a\xbb\x76\x68\x10\xa9\x20\x0a\xa4\x75\x86\xef\x72\x09\x65\x03\x0f\xd7\xdb\xf1\xa7\x53\x41\x62\x20\x10\x3e\xee\x6a\xb0\x40\xe5\xa9\x19\x3b\xc1\xff\x98\x1c\xa6\x53\x8c\x6b\x34\x87\x81\xad\xba\x31\x74\x5e\x3e\x94\xa4\x88\x10\x18\xaf\xb4\x62\x3e\x93\xb4\xb0\x0a\x23\x86\xac\x93\x77\xd5\xeb\xe6\x83\x1f\xbf\xa8\x11\x54\x51\x64\x64\x14\xcd\x6e\xb4\xad\xf9\x20\xb1\xaf\xa2\x84\xe1\x36\xf6\x54\xd5\xad\xae\x8a\x1c\x0b\x03\xbe\xe0\x80\xb2\x87\xc5\x22\x48\xad\xc7\xfd\x30\xe5\x9c\xd0\x2a\xa1\x0a\x4f\xba\x28\x8a\xdb\xd2\x6b\xa3\x75\xbf\x43\x66\x38\xf1\xaa\xef\x5c\x6d\xf7\x70\x95\xbf\xbe\x62\x4d\xce\x34\x85\xab\x50\x1a\xdf\xd0\x04\x99\x4d\x66\xf2\x2e\x2f\xcb\x94\xed\x81\x34\xd1\x38\xf0\x9b\x0f\x7e\xdc\xb4\x55\xcd\x3d\x85\x80\x62\xa1\xc2\x35\xd2\x14\xc7\xdb\x02\xf3\x4f\x56\x3a\x77\x08\xcb\x22\x0b\xc8\xd9\x74\x1b\xed\x61\xa0\xbe\x3e\x7f\x44\x2a\x0d\x7a\xc9\x6d\x56\xe3\xb4\xb3\x4a\x95\x21\x98\x39\xf0\x5f\x3e\x69\xc8\x5d\x09\x9e\xca\x14\x25\x06\x86\x50\xe7\xfa\x7c\xc3\x0f\x4e\x81\x60\x14\xd8\x54\x99\xd2\xda\x6b\xac\xce\x3e\xc5\xc0\x50\x50\x19\x10\x14\x69\xe8\x5e\xc7\x71\x40\x49\xd1\xb5\x50\x44\xfe\x76\xbb\x4a\xbd\xab\x73\xcd\x3f\x19\xb2\x3c\x50\xd2\xc0\x55\x1e\x7b\x09\xc3\xf1\x73\xf3\xd4\x84\xde\x47\xa0\xf9\x55\xde\xf0\x31\x33\xcd\xe4\xc4\x82\x13\x17\x30\xbd\xb5\x6f\x2a\xf9\x9b\xa1\x27\x04\x0f\x0c\xf9\xbe\xc0\xad\xb0\xf3\x48\xfa\x7a\x4a\xdb\x49\x12\x9e\x19\xbe\x95\x62\x73\xac\xea\x76\xc0\xec\xac\x95\xcc\xc0\x48\x53\xd4\xd5\x71\x64\x35\x29\xa9\xa2\xc0\xbb\x14\xbb\x66\x08\x78\x52\x10\x80\x4a\x06\x79\xf8\xab\xb3\x15\xfb\x1d\x3f\x11\x30\x23\xa8\xfc\xa1\x2e\x03\xa0\xb6\x8b\x0e\x12\xdc\x36\xdb\x0f\xb7\x22\x2b\x9d\x44\xc8\x85\xd3\x54\x75\xbb\x82\x46\xf6\x9a\x62\x97\x00\x7b\xa5\x69\x80\xc2\x0f\x32\xaf\xb1\xb6\xb2\xf7\xa0\x20\x60\x01\xaa\x5d\x18\xc8\x4b\x9f\xc9\x18\xbb\x28\x6e\x20\x41\x00\x41\x4a\x7a\x71\xdc\x59\x59\x30\xdb\x95\xd0\x18\xf3\x40\xd7\x35\x7f\x1d\xd4\xc8\x40\x18\x1a\x5f\xe6\x82\x26\x3b\x6f\xf7\xd5\xa9\x35\xcc\x34\xde\xf5\x81\x90\xf1\x81\x5a\xf3\xf7\x3f\x6e\xc6\xaf\x0f\x42\x45\xd3\xcc\x25\xd5\xcd\xf2\x3d\xfe\xb4\x10\xd1\x0c\x55\xd5\xb6\xeb\xc5\xfd\x66\xb7\x7d\xdc\x2e\x5c\x61\x35\x44\x69\x82\xd8\x27\x5f\x74\x3a\x92\xbe\x18\x18\xdc\x10\x89\xc4\x54\xd0\x54\x87\xe3\xd8\xf0\x87\x38\x36\xd2\xd6\xb8\xaa\xbf\x76\xce\xfd\xb9\x73\xac\x06\x95\xd5\xae\xa3\x34\x2c\xa0\xef\x9e\x19\x7e\xb0\x40\x43\x92\x89\xcc\xa2\xa3\xef\xab\x76\x24\xec\xa9\x21\x11\x29\xaa\xb1\x2d\x4e\xed\xde\x61\xf5\xe6\x6d\x62\xa0\x5a\xa0\x67\xbe\xac\xca\x6e\x25\xe0\x9d\xd3\xc9\xc7\x67\x63\x11\x85\x9e\xa3\xc2\xad\x4f\x26\x9f\x32\xcb\x03\x00\x2c\x36\xca\xa4\xc6\xfa\x7f\xfc\x28\x87\x7c\x2a\xc0\x12\x66\x74\xeb\x8c\x1c\x95\xdd\x38\x27\xa6\x2e\x30\x16\x4a\x6a\x55\xfd\x5a\xfe\xf6\x89\x94\xa2\x06\x96\x0a\xa4\x74\xdd\x4d\xcc\x6b\x77\xb5\x34\x4c\xb4\xa5\x65\xfb\x5e\xa9\x62\x44\xa7\xe8\xba\x00\x93\xd2\x75\x29\x10\x3d\x60\x5b\xb2\x90\x20\x54\xa5\xcf\xb0\xdf\xf3\xbc\xfc\x91\xf3\x67\x28\xfe\x8e\xb1\x05\xb2\xd4\x20\x13\x91\x06\x9a\x9f\x1f\x4f\x7e\x50\x73\x62\xa8\x0c\x27\x95\x31\x7f\x73\x3e\x1e\x29\xc8\x9c\x0a\x86\x8d\x6c\xcc\xf7\x94\xb1\x00\x5f\x29\xfe\x69\x95\x15\xf1\x53\x1e\x64\xa2\xd0\x05\xca\x1b\x17\x0b\xfd\xe4\x6d\xab\x30\xc0\x7a\x0c\xae\xd4\x5d\xf5\x3e\xc0\x59\xcc\x59\xb6\xa0\xc2\xd0\x98\x72\xfc\xfc\xa8\xf5\xb2\xc8\xa1\x6c\x57\x20\xe6\xd9\xd1\xba\xee\x80\x88\xff\xe3\xa9\xd9\x0f\xd4\x8f\xa6\x70\x2f\x80\x80\x1b\x24\x5a\xfe\x6e\xe9\x6c\xcc\x17\x9f\xdd\x31\x01\x68\x64\x45\x30\xec\xac\x55\x5b\xb7\x2e\x02\xa4\x3c\x16\x7d\xda\x38\x6f\xb7\xfb\x1a\x9a\xbd\xd7\x80\xd5\xa0\xc3\x00\x91\xed\xff\x5b\x9f\x8d\xf1\x6c\x98\x71\xc6\x33\x44\xc7\x2a\xb2\x51\xcb\xb1\x0f\x7e\xe9\x8b\x6b\x12\x67\x58\x69\x6b\x2a\x49\x06\x44\x45\xbf\x15\xda\xd3\x24\xa1\x19\xf4\x4c\x35\x07\xc3\x76\x32\x48\x1d\x68\x92\x59\x8f\xa8\xad\xb7\xd5\x4b\xa9\xa0\x2e\x72\xa8\xd1\xfe\x1e\xbd\x46\x4d\x78\xe6\x6c\xd0\xa7\x62\xb1\x98\x09\xc7\xea\x48\x64\xa9\x13\xfc\xab\xaa\xa2\xd2\x7a\x14\xa2\xc3\xa2\x28\x61\x58\x93\x4e\xa5\xda\x56\x63\xb2\xd2\xf1\x9d\xc7\x34\x4d\x6c\x28\x11\x75\x3e\x71\xc8\xdf\xf3\x37\xa8\x31\xf0\x78\x3b\x0d\x1b\xeb\x38\x0b\x32\x1b\xa1\x5f\x08\x28\xa6\xad\x1c\x22\xeb\xb6\xdd\xf0\xe6\xba\xaa\x57\xcb\x87\x6f\x93\x2b\x6a\x43\xb2\xf1\x70\xbd\xb5\x2f\x79\x5a\x39\xa5\x69\xc4\x91\x69\x77\x8d\x74\x05\xcb\xbd\xd7\x4b\xd3\x9a\x26\x80\x75\x02\xf7\xfc\xd7\x53\xb5\xf9\x53\x0c\x2c\x1b\x4d\x45\xe4\xe0\x06\x26\x19\x6a\xe7\xe3\x43\xd5\xdb\x62\x9a\x4a\xe1\xfc\x7e\xeb\x9a\x36\xbe\x09\x32\x15\x78\x3f\x7e\xe4\x1a\x68\xc6\x04\x96\xd2\x1a\x36\x0c\xe0\x07\x2c\x98\xb3\x4c\x4c\xff\x18\xfd\x71\x47\x64\x32\x30\x4c\x77\xe5\x81\xd7\x6f\xef\xcd\x75\x3d\xb0\x09\x35\x03\x89\x5c\x0e\x7d\x58\xb6\xf3\xc1\x97\x75\x75\x3a\xe6\x7f\x07\x42\x45\x80\x92\x05\x76\x6e\xf2\xb2\x5b\xaf\x60\x07\x5a\x83\x6c\xf3\x89\x51\xa4\xd3\x44\xe2\x78\xd2\x80\xac\xbe\xee\xf2\xa9\x60\x48\xfd\x68\x18\x3e\xcb\xb2\x5f\x5e\x75\xc6\x52\x92\x3a\xe7\xbd\xe5\x8a\xb7\x3c\x18\xcd\x2c\xcd\x85\xc0\xfc\x67\x0b\xfc\x60\xeb\x71\xba\x2f\x75\x37\xf8\x16\x82\x24\x78\x7e\xbf\x6a\x5c\xaa\xa2\x6b\x2d\x04\x8f\x6c\xe9\x25\x6f\xf3\x77\x58\x61\xa8\xfa\xdd\xbf\x23\xc9\xa4\x64\x63\x7a\x23\x9d\x7f\xb2\x4e\x69\x29\x98\x9b\xee\xe6\x7d\xda\xf0\x1e\x26\x0e\x7c\x1f\x40\x07\xea\xbd\x42\x46\x6d\x5f\xdd\xf4\x23\xe7\x98\x7f\x9f\x37\x58\xb5\x04\x12\xfa\x52\xae\xa3\x11\x8e\x3b\x0f\x68\xef\xb5\x56\x89\x01\xf1\xdc\x40\xeb\x06\x75\x37\xe9\xae\xab\xda\x23\x87\xc6\x77\xab\x80\x21\xc8\x10\x39\x46\xcc\xaa\xe3\x85\xb9\x6d\x17\xcd\x0d\xc6\xbd\x81\xb6\x81\x42\x77\x86\xeb\xfb\xcc\x4b\xd4\x82\xc9\x3e\x96\x30\x4b\x29\x79\xf9\x50\x34\x08\x82\x20\x41\xe2\xe8\xcb\x00\x9d\xeb\x10\x19\x71\xb5\x45\x51\xfc\xac\xea\xb7\x41\x49\x48\xd7\x08\x22\xb3\x25\x70\xdd\x6c\x30\x6e\xcd\xdc\x97\xa1\x41\x40\x42\x86\x7d\x1d\x0d\xbf\x33\x0f\xaf\xce\x77\xf0\xca\xe5\x85\x40\xee\xf4\x70\x1a\xa0\xc0\x9e\x80\x76\x57\xb8\x8c\x66\xf7\xbb\x08\x23\xcf\x30\xd3\xb4\xd5\x01\xea\xed\xaf\x45\x3b\x4a\xb1\x4d\x4e\x15\x32\x89\x26\x98\xe0\xe5\x5b\x67\x00\x1a\xae\x3d\x24\xd3\x74\x67\x8d\x12\x19\x19\x57\x32\x3f\xc2\x77\x5f\x28\x4c\x83\x20\x8e\x03\x5c\x56\x2d\x47\xb6\x89\xe3\xfb\xc6\x34\xc4\xe8\xf9\x1f\xbc\xfc\x77\xf7\x21\xdc\xef\x34\x4a\xd3\x51\xb8\xbe\xdb\x68\xa7\xcf\x3b\x7f\xb3\x14\x8c\x0d\xb5\x82\x43\xcf\xf8\x71\xb9\xa3\x77\x3d\xb5\x51\x0c\xfa\x99\xb7\x9d\xf7\x79\x87\x24\x00\x76\xb2\xd8\x2e\x2c\x0c\x90\x17\x7a\x4a\x3c\x3f\x40\x03\x74\xbd\x64\xac\x8d\x1c\xb2\x21\x2e\xe7\x05\x3c\x96\xaf\x55\xde\x3f\x0f\x93\x69\xe4\x6b\x34\x5c\xa4\xeb\x9e\xff\x1a\xf0\x1c\xdb\x9e\x69\x1c\x04\xb1\x33\xa9\x65\xcb\xcb\xd7\x02\x30\x06\x34\x3f\x48\x52\x2d\x70\xb9\x44\x5c\xca\x4d\xde\x4e\x06\x63\x96\x18\xfe\xdc\xa6\xad\x8e\x08\xec\x1b\xdc\x53\x96\x06\xa9\xe1\xc4\xee\x4c\xea\x89\x06\x6e\xd7\x0e\xa0\xa2\x61\xe5\x3c\xc2\xe0\x6d\x23\xa7\x29\x05\x87\x91\xc7\xb7\x33\x27\xd6\x47\x83\x40\x10\xed\x12\x5f\x57\x05\x97\x6f\x13\x1e\x03\x1a\x04\x32\x0c\x50\x4a\x73\xf1\x70\xfb\x37\x72\x02\x5d\xe7\xc4\x48\xe0\xdf\x55\xaf\xb7\x43\x83\x70\xf2\x5a\xa4\x0e\x94\x35\x2f\x71\x43\x6e\x3e\x93\x48\x99\xfa\x3b\x34\x08\x54\x90\xa0\x45\xf6\xe7\x7f\x2f\x9e\x47\x93\x57\x05\x02\x8c\x61\x79\x5b\x9a\x2a\x98\x39\xc3\xb2\xeb\xc8\x82\x20\x1a\x94\x6c\x0f\xf2\x87\x5d\x2b\x0f\x23\x4f\x71\x68\xe8\xc8\xca\x93\x93\x68\x75\x21\x98\xae\x1f\x84\xd4\xc6\x8d\x56\xf9\xab\x21\xaa\x78\xc9\x7b\xb5\xa4\x39\xdb\x2a\xb5\xc7\x42\x00\xc0\x1c\x89\xef\x06\x40\xf9\xab\x43\x9a\x08\xaf\xc9\x7f\x33\xc7\x7a\x6d\x3b\xea\xd4\x28\x7c\x38\x71\xfe\xab\xf3\xdd\x80\xf2\xd1\x58\xdb\x34\x20\x41\x6c\x8a\xf6\xa5\x97\x75\x98\x1f\xa9\x84\xd0\x08\xc3\x0c\xd6\x51\xe4\xf5\xd4\xcf\x9e\xf4\x0f\x83\xd8\xb0\x25\x62\x7c\xc7\x12\x31\x7d\xa6\xee\x6f\x23\xbf\x33\x26\x36\x0d\x48\x44\x0d\x23\xcb\xc3\x76\xf8\x39\x49\xc4\x39\x26\x7b\x91\x68\xd3\x6c\x7a\x26\x65\xb0\xe1\x07\xe8\x8d\x1f\x8a\x94\xcd\x99\x07\xb0\x74\x33\x01\xc5\xfc\x5d\x6b\x0c\x11\xb3\x1e\xd7\xdd\xdd\x0f\x4b\x84\x9b\xb8\xd6\x24\x06\xac\x0b\x3b\xf2\x33\x56\x74\xbb\x00\x44\xd7\x94\x50\xac\x9b\xde\xae\x97\xbb\xce\x43\x1f\x8a\x76\x74\xcd\x2c\x70\x48\x1d\x37\xc5\x36\x38\x15\xe6\x8a\xbb\x68\x40\xa8\x12\xcc\xda\xb7\x88\x55\x99\x55\x41\xc3\x7e\xca\x50\x6c\x0e\x14\xba\xc7\x3d\x58\x04\x18\x69\xba\xae\x4a\x55\x3d\x00\x96\x8b\xba\xbb\x62\x89\xc0\x15\x65\x21\xdb\xfc\x3d\x6f\xcf\x98\x24\x9e\x9d\x06\x84\x09\x81\x05\x94\x2b\xe0\x16\x24\xd9\xfd\xa8\x12\x93\xb1\x84\xa6\xbd\xf5\x83\xd9\x36\x66\x01\xc5\xf0\xab\x15\x85\xe5\xc5\x67\x83\x29\x0b\x19\xba\xa3\x4d\x0b\x47\x37\xb4\x49\xd6\xad\x87\x56\x41\x8b\x4b\xb8\xeb\xbc\x8a\xaf\x02\x64\x34\x20\x3c\x00\xcc\x28\x1c\x1b\x38\xa9\xca\x20\x5b\xba\x39\x96\x7e\x1b\xcc\x26\xc2\x85\xd9\xd2\x97\xbc\xd9\x5f\x75\xde\x43\x5e\x8e\xd7\x4a\x22\xa2\xd8\xa6\xc7\x0f\xd5\x3b\xa0\x22\x8c\xa8\xea\x21\xe7\xd4\xe4\xdd\x08\xce\x5c\xb0\xd4\xb3\xb2\x8f\x4f\x29\x95\xd1\x8b\x75\x5b\x60\xb3\xa8\xc1\x6c\xbc\xee\x79\x55\x94\x11\x53\xb3\x25\xab\x52\xe6\xc5\xd0\x3b\x1e\x39\xc7\xa9\xa3\x9a\x43\x36\x53\xff\x2f\x77\x9a\x24\xc6\x65\xed\xbf\xb7\x17\x6c\x11\x5f\x6f\xb5\x04\x6c\x2e\x6a\xf3\x74\xfb\x30\x5b\x5f\xf3\xc9\x5b\xd7\x82\x23\x20\x8c\x77\x63\x88\xb7\x70\x75\x3a\x0b\xde\x87\xb5\xa7\xbd\x65\x1a\x59\xff\xe4\x51\xa0\xd5\x5c\x3b\x73\x65\xd4\x31\x0c\x44\x86\xb1\x4a\xaf\x08\xf0\xfb\xf0\xf3\xee\x68\x65\x18\x3e\x76\x25\x7c\x6c\xb8\x52\x97\x63\x6f\xb4\x59\x8c\xbf\x67\x48\x22\x91\xa6\xa3\xaa\xad\x89\x84\x47\xd7\x27\x96\x48\x04\x8c\x52\x01\x07\x68\xf7\x95\xf2\x4d\x2c\xc4\x18\x1b\x4a\xf8\xa9\x99\x52\xfe\xae\x4f\x26\x99\x70\x29\x7d\xeb\xfb\x54\x7d\x8d\x10\x0d\xc2\x10\xac\xd6\xb1\xc9\x7c\x5a\xa6\x9d\x8b\x3d\x6f\xaa\x8f\x4b\x83\x30\x4e\x0c\xa1\x67\xb3\xaf\x3e\x16\xa7\x76\x5f\xd5\xf9\xbf\xa1\x7e\x2c\x61\x64\xe8\x84\x31\x95\xee\x29\x9f\xaa\x81\x8f\x40\x83\x30\x09\x8c\xfc\xda\xe6\x66\xb5\x7b\x3c\x94\xb9\xea\xe6\x40\xed\x5b\x49\xe8\x24\xfc\x57\xb9\xd6\xb9\x3c\x15\xed\x79\xf2\xf9\x12\x65\x0a\xfc\x74\x5e\x22\x3d\x8f\x23\x73\xa1\x41\x48\x89\xc4\x5c\x99\xb2\x58\x72\x93\xa2\x73\xd9\x92\xae\x83\x10\xa9\x61\x2b\x68\xdb\x02\x3d\xb6\x5b\xf5\xec\x29\x91\xbb\x0e\x92\xa0\xfa\x54\xa5\x35\xd4\x37\xdc\xd0\x84\xba\xd7\x37\x3b\xee\x42\x16\x47\x19\xf5\x6f\x73\x75\x6a\xe5\xde\x42\x7e\x0c\xfd\xf6\x6f\xc4\x38\x68\x10\xa6\x16\x29\xfa\xfd\xea\xc7\x70\xf7\x09\x33\x96\x24\x56\x92\xa9\x84\xda\x44\xe7\x9b\xaa\xe4\xc5\xc3\x09\xe5\x9d\x2f\x63\x91\xdd\x41\x59\x1a\x47\x9e\x05\xfc\x75\xdf\xae\x00\x0b\x62\x5d\xb3\x20\x91\xa1\x5c\x45\x39\x9c\xaf\x87\xfd\x1c\x37\x37\x9e\x43\x1b\xaf\xc3\x87\xf3\x86\x3a\xa9\xae\x93\xa2\x54\x3b\xeb\xcf\x10\xec\xcf\xb1\x32\x74\x3d\x75\x12\xe9\x81\x21\xb6\xe5\x6f\xb6\xb6\x67\x3c\xb2\x78\xa4\xc1\xc9\x42\x9a\x42\x46\x6b\x88\x5f\x04\xfc\xdc\x01\x52\xe2\x78\xbb\x2d\xe5\x9e\xe7\xe5\xed\xf2\xf1\xd3\xae\x82\x05\x58\xac\x6b\x4b\x6e\x31\xbc\xb3\x38\x1e\x8b\x5c\x5a\xe1\xf8\x8b\xf7\xe3\x8d\xc1\x50\x48\x1a\xda\xa0\x9a\x91\xed\xf4\x71\x6b\x1a\x84\x52\x19\xfe\x8d\x15\x14\xfc\x0c\xca\xd9\x28\x5f\x00\x01\xba\x83\x74\x84\x38\xb1\xdb\xc7\x3f\x47\x03\x42\x31\x45\x5d\xf1\x14\x5c\xf3\xbc\x98\xbc\x73\x08\x13\xc4\xd3\xef\x34\xc0\xb4\x29\xce\xb0\x80\xb2\x7b\x30\x59\x9f\x50\x85\xfc\x6e\x72\xaf\x40\x69\x68\x87\x0e\x74\x73\xd7\xff\xce\x0d\xb0\x70\x51\x1c\xf7\x95\xd7\xb1\xf7\x29\x20\x1a\x84\x5a\x28\x93\x01\xd7\x2d\xd4\x4b\xe7\x0c\xd8\xd6\x28\xa0\x14\xc3\xa2\x28\x70\x8a\xef\x73\x28\x20\x4f\x83\x88\x84\x12\x03\xa1\x77\xfc\xdf\xe7\xe1\x03\x47\x84\xa6\x01\x19\xe8\x3d\xb9\xa8\xc9\xf8\xe1\x22\xc2\xcc\xd6\x6a\x8b\x7a\x79\xd3\x1c\xab\xfa\xf2\x25\xfb\x31\xed\xbf\x5d\x44\x32\x8d\x75\x0a\xeb\xc7\xf5\xe8\xc2\xa1\x8e\x11\xde\xa5\x4f\x85\xce\xfd\x22\x13\x45\x24\x75\x25\x13\x43\xf6\xcd\x0b\xf0\xec\xf8\x7b\x46\x91\x5d\x96\x91\xcb\xfc\xa5\x41\x0f\xf2\x50\x8d\x83\xb8\x93\x23\xb8\xc0\xec\xd8\x92\x6b\xe4\xc3\x52\xfe\x0e\xa4\xc2\x34\xc1\x7b\xd5\xc2\xb6\x7a\xb1\xf0\xf5\x3a\x6f\x79\x31\x20\x14\xa0\x41\x14\xc7\x59\xd4\xe3\xb3\x97\x55\xf9\x3a\x8d\x77\xd2\x20\x4a\x88\x71\xbc\x5f\x36\xab\xbf\x46\xcf\x9f\x10\x16\x9b\x55\xbc\x84\x3a\x97\x0b\x39\x64\xdf\x1c\x73\x3a\x75\xbd\x63\x8a\x25\x07\x2f\xe5\x67\xe2\x9b\x5d\xa7\x24\x52\xa6\xf4\x05\x14\xd4\x70\xb8\x04\x3b\x7d\xba\x42\x46\x68\x82\xfc\xc7\xff\xf9\x8f\x6e\xd8\xc8\xbc\xe5\xbb\x63\xd5\x42\x0d\xbb\xe3\x49\x88\x22\x97\x6e\x87\x89\x68\xca\xa3\xc8\xed\x7f\x57\x88\x0b\x3e\xf7\x6d\x1a\x23\x54\x7f\xde\x81\x7a\xf5\xe1\x85\x88\x05\x99\x23\x42\x25\x41\xe7\xff\x72\xd9\x3a\x70\x39\x71\xd7\xcf\x22\x9e\x24\xbe\x84\xf7\x93\xac\x5e\xd7\x4f\xd2\xc0\x80\x32\x4d\xdc\x6e\x36\x46\xdf\xf5\xd3\x02\x21\x2d\x5c\xa9\xcf\x95\x85\x69\xd0\x5d\x15\x1d\x1c\x28\x5f\x73\xaf\x46\x4a\x83\x48\x92\x08\xed\xf8\xaa\x7c\x80\x8f\xbb\x8a\x97\x5f\xd5\x16\x74\xfd\x13\x48\x42\xa3\xb0\x35\x2e\x4b\x9a\x74\x93\x1a\x37\x9c\xc5\xfd\xd5\x62\xb3\x59\xac\x1e\x9f\x77\x9b\xf5\x8f\xf5\x83\xbb\xac\x22\x02\x01\x07\xaf\x27\x5e\xab\x9c\x97\xa4\x6f\x50\x44\xba\x42\x9d\xc2\x14\xc3\x0f\x66\x99\x22\xa0\xfa\x8c\x9a\x7a\x9c\x98\xc6\x91\xe2\xda\xe9\xc9\x20\xfb\xae\x3b\x2d\x44\x1c\x19\x07\xc4\xa9\x78\x73\xdb\xa9\x37\x54\x9d\xe5\xea\xe9\xf7\x7b\x7b\x35\xd2\xb1\xc2\xe7\x6d\x8c\xe2\x55\xeb\x56\x9a\x38\x4c\x64\xec\x29\x13\xbb\x5b\xbd\xf0\xa9\xe3\x90\x66\xca\x24\xe7\xef\xb9\x5f\xe1\xe2\x90\x33\xe4\x06\xcf\x25\x3f\x7a\x9b\x71\xca\x4e\x39\xeb\xa5\xc6\xa1\x16\x60\x31\x0a\x28\x93\xb9\x73\xe7\x8c\x62\x25\xed\xc6\x77\x93\xb7\xdf\x4f\xc2\x35\xc4\x09\xc1\x70\xbb\xad\x7f\x5b\x96\x6d\xed\x9b\x32\x86\x78\xcc\xdd\x6f\xe1\xcb\x2c\x51\xa3\xff\x12\x71\x2c\x81\x9a\x94\x6e\x29\xa1\x58\xbc\x56\x9d\x81\x63\x93\x31\x26\xbe\x4e\x83\x38\xa1\x81\xaf\x79\x00\x99\xe3\x8a\xbd\x69\xe1\xe8\xee\x21\x61\x81\x8b\x07\xff\x40\x99\x00\x69\xbb\x18\x20\xda\xc5\x2a\x1b\x27\x96\xf0\x5a\x41\x71\xcf\x4b\xde\xcf\xbe\x98\xc6\x34\x64\x6e\xc2\xf6\xe6\x70\xe3\xdb\x65\xc4\xf4\xc0\x0d\xf0\x30\xd4\xa7\xba\x6a\x11\x84\x7f\x5f\x29\xff\xe9\xa8\x62\xe8\x84\x15\xd5\xeb\xeb\x80\x76\x62\xba\xfe\xcf\x2e\xb9\x31\xd5\x8c\x28\x4f\x93\x61\xc8\xfe\xdb\xbd\xa5\xba\x9b\xa9\xc4\xa7\x41\xcc\xb8\x09\x4b\x21\xe9\x99\x99\xc8\x83\x7d\x33\x66\x9a\xe9\x64\x50\xde\x76\x75\x90\x2b\x7e\x6e\x2e\x4b\x7a\x68\x10\xa7\x91\x09\xd8\x1b\x06\x76\x0c\xd5\x79\xe3\x7c\x6c\x94\xbb\x03\x20\xcd\x6c\x74\x0d\xd3\x4b\x57\x80\xb5\x65\x7e\xa7\x88\xb3\x08\x70\xd7\xcd\x65\x15\x3f\xf3\xdc\x47\x77\x63\x1e\x0b\xd9\xbb\x00\xdb\x9a\xcb\xb7\x6e\x10\x5d\x75\xee\xd5\xfc\x08\xe6\xb1\xce\x0c\xbf\x20\x56\xa3\x1a\x11\x8c\xbe\xca\xb4\xeb\x41\x35\xaa\xb3\x3f\xf7\x3a\xd2\xdd\xaf\x3c\xc4\xed\xa5\xf3\xdc\x9e\xa1\xc9\x8b\xfc\x74\xe8\xa1\xa2\x34\x88\x45\x18\x99\x94\xf1\x9e\x37\xd7\x05\x9f\x2d\x2d\xe9\xba\xe9\xd0\xa4\xf8\xb8\x86\xcd\x49\xb4\xf5\xc3\xf2\xe9\x93\xae\x32\x10\x38\x4f\xdd\xf4\x30\xeb\xc9\xec\xaa\x18\x4b\x06\x28\x74\x75\xb5\xbc\x6a\x4f\x03\x73\x26\x96\x3c\xa6\x36\xeb\xbb\x41\x6e\x40\x83\x5e\x77\x12\x11\xb3\x7c\x68\xdd\x61\x72\x50\xcd\x72\x93\xbf\x03\xff\xb0\x32\xa9\x17\x6f\x54\x42\x82\xe6\xd8\xfd\xe2\xcf\xdd\x62\xb9\xbd\xfd\xb1\xde\x2d\x17\x0f\x3f\x2c\x3b\x35\x0d\x62\x15\x65\x68\xc6\x1f\xab\xaa\x70\xd2\xbc\x34\x88\x21\x4a\xd0\xbb\xda\x1c\x78\xdd\xae\x86\xfe\x53\x0c\x31\x8b\x8c\x2a\xcf\xf9\x3a\x2f\x0d\x7d\xe9\x1d\x6f\xfc\x60\xf6\xfd\x12\xa3\x81\x61\xc4\x6e\x4e\x06\xc9\x38\xbe\x3b\x60\xdc\x48\x10\x74\xa3\x76\x55\x57\xc7\x91\x0a\x89\xed\xa4\x53\xa6\xd2\x09\xd0\x75\xc9\x8b\xe2\x86\xf7\x5d\xb2\x80\x5b\x5f\xf0\xa6\xe0\x2a\xe7\x6d\x55\x2f\xf7\xd0\xb4\x63\x11\xf4\xae\xa7\x8c\x63\xc7\xe1\xaf\xd4\x63\xf9\xd0\x19\x09\x6a\xb4\x09\x27\x41\xe7\x83\x0e\xa2\x8d\x03\x16\x95\xc1\x62\x93\x04\x94\x6b\xdd\x97\xf5\xb8\xaa\xfa\xd1\xcc\x4d\x02\x00\xc4\xc3\xed\xcc\x24\xb0\x72\x47\x63\xb1\x93\xbf\x13\x0f\xb6\xa7\x22\x92\x49\x43\x2c\xfb\xbf\xa7\x5e\x57\x75\x6a\xcf\x7c\x69\xf0\x27\x21\x21\x86\x9f\x69\x5f\x7d\x78\xaf\x79\x7c\x99\x30\x05\x66\x58\x93\xab\x5f\x67\xb7\x52\x4e\x9e\x2a\xe4\x69\x9c\xf9\x94\x73\xe7\x44\x0d\x9d\xd0\xc1\x3b\x8a\xac\x12\x6e\xcb\xdf\x60\x2c\x65\x4b\x83\x24\x0e\x13\x4c\x5c\xe3\x18\xf3\xf0\xb4\xf1\xab\x39\x4d\x51\xb4\xdd\x71\xd4\xd4\xf0\xe5\xcd\x42\x34\x83\x40\xac\x6b\x56\x06\x76\xde\x18\x3e\xe6\x65\x75\x38\x54\xe5\x76\x6b\x08\xda\x6e\x55\x3a\xda\x83\x12\x6a\x8b\x94\xee\xa0\x1a\xcc\xcc\x84\x66\x14\x33\x37\x0e\x6a\x3b\xb9\x06\x8b\x28\x31\x75\x4b\x55\x3d\xf1\x80\x12\xc6\x02\x9c\x51\x6d\x8e\x82\xdf\xee\x8c\x4c\x87\xd2\xb2\xb3\xac\x80\x17\xbd\x5b\x3d\xbb\x66\x24\x69\x14\xbb\xf0\xc6\x2e\xef\x63\x1b\x49\x9a\x44\x49\xda\x6b\x86\xfb\x9f\x33\x82\x12\x10\x56\x13\x7e\x89\xdb\x6e\x31\x4f\x68\x4c\x83\x24\x4b\x62\xb4\x5f\x3b\x17\xc6\x9d\x22\x4b\x23\x83\x08\xcb\xa1\xde\x7e\x54\x4f\xa7\x5a\x7a\xd6\x43\x1a\x24\x9c\xa4\x32\x1c\x24\x67\x07\xea\x85\xdd\xcc\xff\x3a\x03\x98\xf0\x38\x44\x43\xb4\x39\x1d\xa1\xbe\xac\xd9\xea\x7a\xa4\x80\x39\x42\x3f\x65\x11\x38\xd2\x0c\x82\xd4\x09\x07\x82\xd9\xfd\xab\xdb\xd5\xa5\x0a\x36\x0d\x12\x11\xc6\x46\x7c\xf8\x33\xee\x34\x1a\x24\x32\x08\x91\xad\xf4\xbf\xab\x5a\xeb\xa1\x2b\x92\xc8\xd0\x10\x60\x58\xcb\xc1\x09\xb2\xcc\x6e\xe2\x89\x8c\x23\x47\x2a\x70\xd5\x7d\x89\xb1\x3c\x62\xd7\x01\x80\x19\x6a\x81\xc2\x92\x10\x8d\xdb\x15\x24\x44\x0d\xf6\xec\x8d\xc9\xea\xe1\xfc\x18\xf7\x84\x04\xc0\x9d\xc9\x89\x94\x4d\x1e\xbc\x1b\x5a\xf1\x25\xee\xa9\xd9\x56\xde\x7b\xac\xea\x19\xf9\xe2\xee\x50\x1d\x1a\xe5\x70\x28\x40\xd4\x0e\xf0\x6e\xdf\x09\x0d\xd2\xd8\x31\xb8\x58\x0c\xd8\xa2\x54\xdd\xac\x72\xe5\xf8\x93\xf0\xe0\xfc\xd2\x45\x09\xe5\x58\x94\x73\x55\x14\x55\xb7\x4f\x7c\x9b\xc4\x7d\x29\x51\x14\x37\xde\x43\x55\xb6\xfb\x28\x30\xe1\x0d\x77\x13\x21\xc9\x52\xc3\xc2\x5b\xe6\xe5\x6b\x18\xcf\xef\xc8\x34\x0c\x4d\xe6\xb3\x81\x52\x59\x1a\x34\x57\x63\xf4\xc9\x22\x69\x0f\x8c\x23\x8a\x46\xfc\x81\xff\x5a\x97\xdd\x2e\xd3\xba\x39\x41\x63\x95\xd2\xc8\x97\x9a\x81\x5a\x42\x5e\xa0\x5a\x8c\x6d\x4f\x48\xec\xd6\x9a\x3f\xfe\x5a\x0e\x8d\xd4\xf9\x18\x14\x4d\xba\xed\xd3\x26\x68\x0c\xcf\xe3\x10\x68\xdc\x75\xc8\x78\x9f\xdf\x69\xa6\xfb\x17\x4d\xb4\xb0\x4c\x06\x25\x34\x79\x33\x44\xd0\xd3\x80\xd2\x50\xe3\x7b\x36\x08\x7e\x03\xb2\xdc\x6d\x5e\x9e\x9e\xee\xfe\xf2\x5d\x52\x70\xeb\x07\x16\x82\x26\xbe\x41\x04\xd4\x14\x93\x6e\x78\x01\x03\x65\xda\xae\x0d\x14\x21\x1e\xce\x25\x78\xdb\x2c\x07\x01\x33\xca\x04\xb0\x6c\xc8\xa8\x84\x05\x34\xdb\xea\xb9\xea\xd6\xbf\xf1\x57\x4a\x33\xb3\xe8\x3f\x0f\x3e\x70\x16\xb2\xd0\x66\xad\x16\x45\xb1\x2e\xdb\xbc\x3d\xdf\xfa\x34\x21\xcd\x62\xa3\xcf\xe2\xa0\xd9\x26\xb0\xe1\x28\xff\xba\x0e\x59\x80\xb1\xaf\xc3\xa9\xd8\x70\xfd\x49\x0c\x95\x66\x99\xc2\x37\x6b\x23\xd2\x36\xc4\x89\x71\xa9\xd9\x35\x8b\x72\xa2\x19\xf7\x12\x12\xdd\x26\x52\x73\xf5\x79\x3e\x62\xfc\xa1\x79\x1c\x24\xe0\x0d\x8d\xae\xe1\xa9\xe0\x67\x1b\x50\xfd\x32\x08\x41\x39\xd3\x18\x8c\xea\x8e\x8b\xdd\x33\xf2\xcc\xd4\x67\xef\x6c\x65\xd8\x53\x55\xfc\x0d\xea\x82\x72\x50\xd1\x10\xd2\xfe\xf8\xe1\xd4\xc3\xbe\xbe\xbe\xe0\x86\x1f\xef\x90\x97\x3e\x0b\x33\xd1\x96\xe8\x7a\xc9\x8c\x27\x03\x6c\xde\xf7\xea\x1d\xea\x2d\xfc\xba\x08\xb5\xfc\x33\x74\xb3\x5c\x42\x24\x6c\xa8\xf6\xf7\x22\xd6\x54\x05\x0a\x55\x30\xad\x76\xca\x48\xe9\x74\x98\x34\xa0\x2a\x49\x9c\x94\xc2\x5f\x33\x86\x08\x55\xdc\x40\x8c\xff\xbc\xba\x73\x33\x73\xc7\x5d\x8d\x62\xd7\x2e\x49\xe0\x58\x7f\x9f\xb9\x84\xd1\xf8\x56\x00\x52\xf5\x3c\xba\xdd\xbc\x71\x4d\x20\x8d\x32\x84\xdb\x0d\x9d\x80\xca\xec\x17\x61\x41\x18\x63\x19\xd9\x3d\x7f\x03\x53\x0d\x37\x7d\xfc\x19\x9c\x01\x0b\x62\xc3\x89\xe4\x92\xa9\x06\xe7\x84\x4f\x1f\xbb\x2e\x29\x87\xc8\x01\x53\x17\xa5\x32\xa0\xcb\xdf\x4b\x81\xb1\x40\x13\xdc\x36\x1f\x2a\x05\xf7\xcb\x97\xdd\xba\x54\xc7\x2a\xf7\x8f\xcf\x08\x09\xdc\x92\xd1\x4d\xbd\x89\xa1\x3b\x39\x19\x01\x91\x74\x73\x19\x64\xd5\x60\x21\xde\x38\x04\xcb\x42\x22\x98\xd1\xef\x12\x79\xeb\xa8\xde\x07\x22\x95\x5d\x17\xca\xd4\x48\x32\x08\xd7\x11\x57\x04\xff\xc9\x75\x43\xca\x8d\xa0\x44\x75\x3c\xfb\x13\xb1\x98\x58\x9d\xfa\xee\xc6\x47\x11\x8c\xb9\x17\x1d\x82\x44\x00\x35\x3f\xa9\x7c\xf8\x95\x59\x14\x25\xcc\xda\x3e\x2f\x65\x2e\xab\xba\x9c\x31\x3f\x58\x14\x1b\x6e\x45\x63\xc8\x76\xab\x28\xf6\x32\x09\xfa\xf9\x57\x1f\x51\x8a\x69\x42\x9d\x9b\x6d\x75\xc5\xcf\xe3\xe1\x1d\xba\x8e\x8c\xe3\x6b\xbb\xe6\x27\x69\x0d\xb0\x39\x4b\xd9\xf5\x56\x01\x7a\x30\xa7\xfe\x73\x81\xfa\x09\xf9\xbc\x31\xc3\x62\x12\xa2\x4e\xc3\xa2\xdd\x23\xa4\x75\x60\x01\xb0\x38\x4d\x10\xad\x89\xfa\x9e\x7f\x01\xaf\xef\xf3\xd2\x2e\x23\xae\x00\xa6\xeb\x25\x52\x2c\xc0\x30\x81\x71\xcc\xae\x88\x81\x44\x86\xed\x95\x44\x04\x2b\xef\x44\xde\x56\x1f\xe5\xe8\x32\x09\x08\x14\x92\xea\xe6\x1f\x7a\x6e\xe3\x6d\x83\x51\x1e\x39\xce\xf3\x35\xaf\x8b\xf3\x13\xaf\xf9\xa1\xe9\xb9\xc3\x2f\x5f\x2d\x23\xa1\xa1\x4c\x96\xbc\xe0\xf5\x15\x6f\x50\x1b\x63\x72\x5a\xc6\x12\x0c\xe8\x8b\x93\x10\x05\x6c\xaa\xba\xdb\x80\x90\xb4\x17\xdc\xf6\xc3\xd2\x90\xa6\x26\x86\xfa\x9e\x77\x16\xda\x08\x41\xc3\xd2\x44\x60\x14\x0f\x78\x73\x76\x51\xf2\xb6\xce\xb1\x30\x7a\xfc\xf4\xa9\x48\x0d\xdd\x9e\xe3\xd1\x32\x11\x5e\x4b\xcb\x65\x3b\x65\x89\x4a\x83\x7e\xa9\x19\x0b\x6a\xd2\x80\x71\x12\xc6\x76\x09\x5d\xb4\x6d\xfd\xa9\xbe\xc3\xd8\x71\x9a\xbc\x1a\xae\x43\x42\x1d\x9a\xe3\x58\x43\xe7\x44\x81\x5a\x6d\xbf\x4f\xee\x58\xc4\x34\xb2\xe1\xd2\x25\x6f\xa6\xcf\x23\x32\x42\x0d\x87\xdd\x30\xd4\xc2\x44\xa6\x11\x5b\xd3\x70\x0d\xed\x79\x40\xc0\x49\x03\x26\x85\x71\x99\xdf\x73\xf8\x70\xc5\xb0\xc8\xd3\x62\x68\x82\x26\x1f\x47\x45\x09\x96\xd2\x75\xbf\x26\xdb\x6a\xd3\x73\xa9\xfc\x33\xf9\x1f\xd7\x47\x50\x42\x7d\xd1\xb9\xd9\xa4\xfc\xcb\x52\x82\x63\x16\xd7\x12\xcd\xde\xaa\xa2\xb3\x9a\xfc\xa7\x53\x92\xa8\x3e\xa9\xfa\x00\x1f\xcb\xcd\xd2\xa9\x17\xce\x4c\xae\xfe\xc6\x80\x6b\xd6\xa3\x8c\x2b\x24\xe6\xaa\x2b\x9f\xbd\x61\x20\x55\xe6\xcb\x91\x16\x52\x8e\x4d\x3c\xa6\x79\x82\xd6\xba\xcb\x01\xa2\x3b\x3f\xb1\x93\xd2\xce\xee\xef\x4b\x3d\xa6\x70\xd0\x7e\x67\x4b\x83\xd4\x88\xff\x95\xa7\x83\x4f\xc4\x0f\xac\xfe\xe9\x69\xb9\x0e\xec\x3c\xfa\x51\xb5\x50\x9b\x12\x90\x79\x63\x35\x25\x3a\xc1\xb0\x9a\x47\xf8\x9b\x4c\xd2\xf8\x8c\x61\xa0\x1c\x94\x1d\xe9\x7b\x46\xd3\x23\x0d\x99\x40\x4a\xaa\xdb\x55\x8f\x01\xef\x7e\xce\x74\x6a\x9e\x0e\x51\x06\x5f\x1b\x32\x69\xc8\x83\xb0\x27\x65\x95\x70\xab\xde\xc7\xfe\x78\x1a\x72\x8a\xf9\xb2\xa7\x53\xc9\xcb\xdc\x5d\x05\x73\x53\xa8\x5d\x0b\xed\xa9\x9c\xf8\xe9\x69\x44\x39\x7e\x06\x4b\x63\x02\xef\xcb\x53\x3b\xed\x02\x09\xe6\x0b\x0e\xfc\xd7\x50\x58\xb3\x73\x8b\x42\x86\x28\x80\xc5\xb1\x2a\x8a\x6a\x03\xc7\x16\xcc\xeb\xf7\x6e\xf3\x6f\xed\xbd\x69\x9c\xa4\x08\x78\x41\x8b\x7d\x77\xfd\xf8\x8c\x14\x77\xfe\x2a\x2c\xc6\xa8\xf4\xa1\x6a\xda\x67\x90\x50\xb6\x57\x03\xc7\x28\x4d\x88\x46\x8a\xaa\x6e\x3a\x6d\xf7\x79\xad\xee\xaa\xf6\x51\x2f\x0b\x7e\x6a\xfc\xf2\x95\x26\x40\xb9\xf6\x80\x31\x28\x8a\xc1\xc6\x96\x52\x08\x11\xc2\xee\xbf\xb0\x05\x8c\x3c\x21\xa7\xdb\x25\x4f\x24\x0d\x52\x46\xcc\xab\x36\x44\xf3\xf7\xd5\x7b\x0e\x23\x5c\x71\xca\x62\x81\xa1\xf6\xcd\x91\x97\x6f\xb7\xcb\x47\xf7\x7b\xca\x4c\xd1\xda\xed\xfa\x11\xcb\x62\x7d\x04\x39\x4d\x79\x86\x66\x11\x37\x6a\x00\xae\x64\xcb\x37\x4b\xae\x23\x1b\x98\x88\x07\x79\xe4\x34\x4b\x03\x03\x82\xb4\xb0\xeb\x66\x71\x69\x57\x8e\xee\x3d\x83\x08\x57\x94\xab\x1c\x17\xb4\x11\x15\x1b\x0d\x52\x21\x03\xac\x3b\xe7\x79\xbd\x9a\x0b\x69\x5c\x24\xf5\x67\xd0\x37\xa9\x50\x4c\xdb\xa4\xc5\x5d\x55\xbe\x4e\xa6\x94\x80\x04\xbf\xe8\x0e\x63\xb7\xdd\x96\x6f\xcb\xb4\xc6\xbc\x91\x34\x48\x25\x57\x18\x3e\xbd\xa9\x0a\x75\x18\x66\x3b\x7f\xcb\xff\x48\xa5\x88\x4d\x70\xed\x6e\xb1\xfc\x63\xf7\xb4\x7e\xbe\x7d\x5c\xf9\x53\x4b\x53\x27\x6e\x16\xbe\xe7\x53\x71\x59\x04\xe6\x3c\xf3\x54\x05\x11\xf1\x08\x51\xe3\x81\x23\xdc\xce\x7f\x04\x95\x30\xc7\x73\x8c\xe2\x53\x96\xb9\xaa\x87\x56\x8e\x87\x8f\xa2\x0c\xaf\xfd\xa7\x76\x84\x98\xbf\xa5\xfc\x4d\x83\x14\x98\xe6\xbe\x0c\x38\xe7\xcd\x7c\xae\x24\x85\x8c\x60\x99\xc7\x6d\x29\x1c\x82\xc0\xdd\x2a\x70\x4e\x2d\xd0\xed\x3a\xef\xec\x02\x74\xd8\xcf\x5f\x02\x39\xfb\x3b\x07\xc1\x71\x55\xb7\xa1\xdc\xe5\x30\xc6\xf4\x65\x5a\x3e\xd5\x24\xc0\xec\xaa\x61\xb8\x95\x6d\x30\x2b\xa9\xf9\x77\x1f\xd6\x7f\x12\x4d\x34\x1a\x12\xab\x9b\xd5\x96\x17\x7e\x35\xd0\x32\x40\x77\xd5\xb2\xfe\xf3\x02\x1a\xbb\xfb\x8e\xee\x26\x0b\x02\x03\x9c\x92\x55\x5e\x1e\x07\xb9\x95\x2c\xc8\x64\x62\x88\xe4\xab\x06\x4c\xed\xe4\x04\x4d\x3d\xdc\x7e\x06\xfa\x10\xee\x78\x01\x4e\x64\xd4\x16\x58\x98\xeb\xcf\x30\x52\xd1\x20\x23\x91\x21\x45\x14\x55\xfb\x58\x7e\x0e\x7d\xca\xc2\xc0\x94\x0a\xde\x2f\xfe\xdc\x5d\xbf\x3c\xac\x6e\x1f\x6e\xdc\x0d\x87\x60\xc4\x01\xec\x07\x59\x3d\xdd\x81\x91\x15\x51\x2b\x9e\x8f\xc7\x5d\x16\xa5\x34\x18\x88\x51\x3d\x96\x85\x73\x13\xb2\x58\x73\x48\x3d\xc3\xd1\x5c\xb5\x07\x0d\xb2\x24\xa4\x32\x74\x40\x05\x64\xcb\x2f\x55\x75\x98\xf7\xe7\xdd\x21\x11\xc3\x27\x1c\x08\x3f\x4e\x7b\xa4\x24\x0b\xc7\xa9\xc0\xed\xf6\xce\xdd\x57\x22\x43\x6f\xf3\xfe\x72\xf0\x0a\x17\x13\x9d\x7f\xa9\x94\x64\x0e\x3f\x70\xcd\xdf\xe0\x47\xde\xe4\xa8\xc9\xd8\x37\x63\x36\x62\x03\xf2\x54\xe7\xed\xd9\xae\xf0\xae\x5e\xf6\xd9\x80\x55\x3f\x89\x79\x66\x34\x51\xa6\x0e\xa9\x73\x05\xd0\x27\xfb\x79\x8f\x2b\xb9\x3f\x3d\xcd\x70\x3d\xde\xb4\xd5\xf1\x56\x56\xf7\xbc\x3c\xf1\xa2\x7f\xcf\xd4\xd2\xaf\xef\x5e\xa1\xbd\xe1\x07\xb0\x08\xb6\x1b\xef\x46\x64\x2c\x4c\x9c\x30\xa1\x0d\x37\x3a\x8c\xcd\x5d\xf5\x9a\xcb\xbe\x1b\xb7\x5c\x75\x46\xb2\x77\x26\x6b\x94\xb1\x24\xc3\x51\xfe\x74\xfb\x70\xb3\x7b\x7c\x5e\x2c\xef\xd6\xbb\xdb\x87\xed\xfa\xf9\xc7\xc2\xbf\x60\xd6\xf5\xfa\x8f\xff\xf3\x1f\xc7\xdd\xb4\xc0\xd0\x75\x10\x12\xb3\x8d\xbc\x2d\x37\xe0\x1d\xe2\x2c\x8b\x05\x16\x43\xdb\x95\xe0\xb9\x92\x73\xcb\xd7\x45\xa0\x31\xcb\xb8\x8e\x03\xaf\x3b\xa2\xf3\xd7\xab\xaa\x2a\xbe\x4d\x73\xe7\x59\x06\x12\x89\x26\x2c\xd9\x8c\xc9\x0c\x7f\x82\xdc\xc8\x78\x12\x0b\x6b\x7e\xed\x78\x51\xec\x1a\x28\x30\x60\x68\x78\x31\xdc\x1d\x73\x91\x60\x1c\xb7\x84\x8f\x8d\xdc\x43\x51\x74\xe7\xed\xbe\xe0\x98\xa4\x61\x72\x6a\xc5\x91\x51\xb0\xa8\x5e\xd7\x65\x5b\x57\xc7\xf3\xf6\x97\xa9\xd2\x6c\x66\x21\x81\x99\x48\x18\xe2\xcb\x77\x07\x9e\xa3\xee\xf9\xa0\x4a\xbf\x6b\x4e\xa3\xcc\xee\x8c\xc8\xab\x35\x21\x57\xed\x7a\x70\xf3\xd1\xec\x24\x5d\xa8\x77\xa8\xdb\xbc\xc1\x60\x7c\xfd\xea\x6d\x9a\x4c\x28\x89\xc1\xf5\xfb\xbc\x6c\xbb\x87\xc5\x8d\xa7\xf2\xd6\xe7\x16\x9a\xf6\x3b\x14\xc7\x91\x9e\xda\xfc\x27\x11\x20\xa9\x21\xf6\xe9\xf6\xde\x68\x05\x65\x85\x2a\xb9\x55\xed\xaf\xa5\xa3\xd0\x18\x91\x28\x31\x81\xe8\xb0\x19\xea\x25\xdf\x9b\x62\x15\xea\x0d\xb4\x37\x27\x04\xf3\xf7\x71\xa4\x4c\x85\x02\x61\xbd\x55\xcd\x65\x91\xff\x1b\x76\x7e\x20\x7c\x1b\xae\xa3\x8a\xa7\x19\x73\xcc\xe8\xae\xcc\x5c\xf9\x93\xe8\x08\x4d\xb6\x22\x6f\xda\x87\x1e\x93\x90\x41\x62\x72\x00\x98\x50\x38\xd5\x25\x3f\x40\xd9\x2e\x0e\xfe\xe2\x20\x29\x5a\xfe\x6d\x75\xd5\x5d\x6b\x14\x3f\xca\x74\x6a\x02\xc7\xa6\xc0\x61\xa4\x72\x37\x5f\xc8\x90\xe9\x8c\xa7\x96\x40\xf5\xba\xae\x0e\xbe\xd8\xe2\xb2\xa3\x36\xac\x07\xb6\xb0\x16\xea\xe6\x19\x64\x7e\xcc\x07\xf3\x49\x6b\xf2\xff\x71\xf6\x27\xdd\x8d\xe3\x58\xfa\x38\xfc\x5d\x7e\xab\x5c\xd4\x82\x00\x48\x90\x7c\x77\xb2\x24\x3b\x54\xe5\xa9\x24\x39\x22\xb3\xfb\xf4\xd1\xc1\x70\x61\xb3\x2c\x91\x6a\x92\xb2\x43\xf9\xe9\xdf\xc3\x8b\x81\x83\xe4\xc8\xec\xff\xa6\x22\xcb\x84\x38\x80\xe0\xc5\x1d\x9e\xfb\x3c\xd8\x7a\xf7\x59\x94\x0e\x6d\x39\x2c\x24\x0b\x12\x19\x91\x0e\x29\x77\xbf\x21\xde\x74\x6c\xa0\x05\x21\x3c\xf5\xb5\xfb\xed\xa0\x54\xfc\xa3\x68\xdf\xd0\xe5\xfd\x1b\xc0\x6b\x41\x38\xb5\x02\xaa\x3e\x67\x3a\x89\x03\xfb\xaf\x54\x10\x63\x7b\x48\x76\xe0\x34\xb9\x2e\xd8\x71\x26\x75\x4b\x41\x69\x6e\x0b\xe7\x58\xef\x11\x7b\x9f\x8d\x0d\x87\x0d\xc4\x8e\x1c\xa8\x73\xb4\x0e\xa7\xc3\x4d\x15\xb2\x62\x82\x91\x1c\x3b\x18\xb5\x27\x83\xec\x7b\x6e\xc7\x6b\x5a\xc4\x22\x47\xc6\xf1\x99\x13\x54\xfc\x75\x71\x46\xc4\xda\xa6\x3e\x75\x0b\xe2\x80\x78\xcd\x6e\x6f\xa1\xbf\xf5\x87\x31\xcf\x3b\xd3\xba\x0b\x91\xbd\xd7\x33\x26\x62\xb2\x8f\x3a\xd6\x70\x1a\xff\xd3\x17\x7b\x44\xac\xad\x4a\x17\xee\x7a\xb0\x9a\x3f\x8d\x52\x20\x22\xc9\x2d\x66\xcd\xd2\xd8\xef\x4a\xbb\xc5\xba\x83\x3c\x32\x16\x0c\x00\x8d\xcd\x83\xce\xc5\x1e\xf1\x3c\xbd\x1e\x49\x37\x2a\xce\x7d\x95\x65\xa6\x3f\xc6\x46\x46\xa4\x11\x43\x7c\xb9\x27\xc5\xbe\x4a\xe8\xdf\x8d\xa3\x8a\xba\xdb\x9c\x1d\x8f\xc3\x25\xe4\x06\x88\x08\x10\x8c\xb6\x9a\x3f\x39\x15\x8c\x06\xed\x5d\x9f\x17\x13\x82\xcb\x1c\xfa\x18\xf3\x84\xfd\xb1\x93\x85\x2b\x93\x2c\xa1\x3e\x77\x3b\x8a\x9e\x85\x32\x19\xda\x43\xa7\xb1\xf1\x17\x2d\x04\xee\x47\x9a\xb2\x9c\x04\x3e\xe0\x03\x4c\x21\x40\x42\x27\x52\x47\x03\x46\x94\xfa\xbc\x39\x56\xed\x18\x89\x28\x74\x9e\x46\xda\x17\xaa\x04\x66\x15\xa6\x49\x88\xc9\x59\x73\x9d\x7a\xa2\xb5\x9b\xf3\xaf\xc7\x02\x01\xa4\x50\x96\xa7\x73\xf7\x1d\x74\x8b\x0a\xa5\x8f\xcf\xe1\xc9\xc1\x71\x7c\x96\x9d\x47\xf7\x2c\xce\x08\x1a\xf2\xc7\x0c\xf3\x92\x21\x76\xba\x46\x00\x57\x37\xc8\xe4\x26\xb7\x60\xb8\x2e\x94\x5c\x83\xaa\x4f\x45\x2f\x12\xcc\x23\x19\xc9\x08\x09\x89\x03\x1f\xd9\x85\x5e\xb1\x1b\x48\x20\xc2\x48\x6a\xf9\xfd\x61\x33\x5f\xaf\x9e\xb7\xbb\xf5\xf2\x6e\xb5\xd9\xae\xff\xd8\xcd\x9e\x9f\x77\x2b\x1f\x56\x49\x02\xc4\x6b\x4f\x5a\x39\xd4\x5f\x46\x05\x92\x8a\x84\x5b\x3a\x1b\xf1\x69\xfb\xb7\xc7\xef\x49\xb2\x24\xb5\x54\xeb\x28\x11\x3a\x56\xa1\xf5\x43\x32\x8b\x98\xde\xc2\x01\xe9\xca\x4f\x35\x3c\x20\xad\x20\xbe\xf7\xd9\xb0\x7d\x38\xfb\xc7\xf0\x3b\x1d\x46\x56\x32\x66\x44\xf8\xee\xb3\x3b\xa4\x50\xf7\x8f\x14\x8b\xcc\xf8\x55\x20\x9a\xf6\xa6\xd0\x2b\x6f\x90\x24\x17\xb6\x52\xe9\x08\x4a\x57\xaa\x5a\x96\x7a\x10\x9e\x4b\x6e\x0c\x96\x02\x8a\xea\xa4\x7a\x68\x85\x4c\x19\xa5\x2c\x70\x1b\x3c\x8c\x74\xd7\xc7\x33\x94\x3a\x59\x00\xeb\x0e\xde\x57\xae\xd3\xc6\x1d\xcd\x28\x50\x4f\xe3\x35\x70\xc6\xb1\x3c\xee\x87\x30\x82\x09\x40\x8b\x42\x44\xf1\xc3\xd1\xe6\x24\xf3\x44\xa3\x71\xfb\x43\xed\x17\x95\x25\x06\xfc\xcb\x40\x54\x76\x7e\x9c\x8b\x78\x57\xaa\x2a\x8b\xff\x7d\xf0\xa4\x50\x53\xfd\x76\x1e\x49\x21\x2c\x59\x41\x59\xfc\xf9\xbe\xc3\x1d\xdd\xdf\x9c\x14\x11\x73\x4c\x33\x5b\x10\x07\xcb\x84\x7a\x25\xc3\x27\x55\x92\x63\x9b\xe4\x6e\xe7\x0e\x62\x2e\xb4\xe8\x73\x0b\x93\x69\x53\x89\xc0\x64\xbc\x28\x6a\x5d\x57\xc7\xe0\x86\x5f\xfd\x16\xa5\x02\x8a\xf9\x8a\x53\xa3\x07\x12\x02\x3c\x92\x3a\x8e\x3c\xf0\x0f\xd3\xd0\x1b\xd8\xef\xef\x45\xa9\xc7\x86\x42\xea\x54\xe4\x3a\x08\xad\x04\x1f\x4d\x6a\xad\x42\xf3\x70\x17\x8f\xaa\x0b\xa4\x8c\x04\x96\xa0\x99\x2e\xe1\xd3\x15\xc3\xaf\x7b\xa2\x12\x12\x9b\x70\x75\x85\x9c\x71\xb7\xa6\x93\x42\xf4\x88\x1e\x09\xc2\x3a\x02\xae\xce\x5b\xd5\x8d\x7a\x03\x0b\x25\xfc\x62\x0a\x40\x5a\x7e\x33\x34\xb0\x7b\xd1\xc2\xb6\xd8\xc3\xb6\xfa\x51\x68\x87\x5c\x0e\x0f\x6b\x88\x46\xe7\xab\xfa\x2c\x9b\x6f\xc5\xc7\xa4\x2d\x4a\x9a\x98\x83\x4b\x30\xfc\xfb\x54\x21\x8f\x51\xd5\xc5\x59\x5f\x5c\xd7\xc4\x1a\x03\xbc\xe7\xbb\x27\x1b\x9b\x3c\xce\xee\x77\xeb\xe5\x66\xb9\x46\x98\xde\xb3\x9f\xca\xce\xd7\x72\x53\x29\x6d\xd9\xfe\xd7\x88\x06\x69\xc0\x8a\xc9\x35\x5e\xe0\x7d\xaa\x1a\xd6\x8d\x31\x31\x7e\x9d\xdd\xa2\xb2\xec\x3c\xe3\x87\x51\x24\xb6\x7a\xd0\x88\xa3\xfa\x5c\xcd\x9f\xf0\xdb\xfe\x8b\xba\xed\x5f\xfd\xeb\xcf\x9d\x5a\xae\x58\x53\x03\xe8\x1f\x15\xa2\x59\x6f\xab\xda\x8a\x2f\x6c\x06\x28\x69\x45\x52\x40\x41\x2f\xf8\xc0\x68\xb0\xf8\xd2\x9b\x99\x5c\x81\x46\xca\x93\xc6\xd9\xaa\xf1\xaf\x22\x33\x45\xb5\xc4\x82\x99\x95\x91\xd8\x7e\x16\x6d\x9f\x7f\x54\xd4\x70\x6e\xc1\xfe\x2f\xab\xc7\x2d\xa1\xd9\x78\x26\x15\x23\x04\x8d\xa4\xae\x6e\x4e\x75\x89\xf0\xc4\x5f\x70\xcd\xe1\x0f\x92\xd8\x56\xb5\xad\xb0\x87\xf7\x44\x7c\xd3\x8e\x1f\x46\xc3\x6a\x7a\xa8\xf4\x98\xa8\x85\x47\x2a\xe6\x19\x3a\x84\x9d\x15\x0d\x1a\xd3\x55\x3d\xaa\xa5\xaa\x44\x29\x2c\xe1\x08\xa5\xe0\xd8\x4e\x91\xbe\x6e\x10\x27\x29\x3a\x32\x21\x0b\x7c\x57\xed\xf5\xcd\xe9\x6c\xb5\x08\xa7\x83\xb9\xc2\x75\x73\x10\x3f\x1f\x4f\x87\x27\x63\xe5\xb4\xe7\x67\xb5\x0f\xdf\xbe\xe2\x92\xa1\x59\x45\xb9\x21\x17\xe0\x5e\x7b\x6d\xd9\x54\xe1\xbf\xfb\xad\xb2\xd1\xaf\x6d\x5f\x7d\xa8\xca\x6e\xff\x5e\xe9\x07\x71\x3c\x0e\x4d\xde\xf0\x93\x57\x1c\x6c\x37\x23\x52\x7a\x0d\x71\xf8\x2a\x25\x56\x00\xd1\x12\x40\xfb\xb8\x60\x29\x90\xbb\x27\x0c\xa2\x14\xe3\x56\x8b\x89\x5e\xe3\x85\xd1\x2b\xbc\xc2\xe9\xeb\x7f\x92\xeb\xc8\x85\xf2\x8f\xa7\x03\x8e\x53\x95\x9e\x88\x05\x74\xe3\xa4\xc4\x32\xce\x5b\xd5\xb4\xbb\xbd\x33\x72\xa3\x3d\x48\xa5\xda\x22\xb0\x94\x50\x6f\xe1\xbe\x33\xaa\xf1\x89\x84\xf6\x84\xee\xdb\xea\x02\xfd\x35\x59\xc4\x22\xe6\xca\x12\x30\x8f\xb1\xa1\xfe\x30\xcf\x90\xdf\x62\x67\x1f\xf3\x2f\xf9\x8a\xff\x71\xf5\xbd\xb9\x93\x49\xce\xd1\x87\x6c\x4e\x07\xd7\x36\xed\x7d\x12\x25\xb3\x0c\xad\x95\x53\xef\x2b\xbd\xdf\xa6\x64\xce\x11\x67\x30\xb7\x2d\x81\x85\xdc\x03\x6e\xe8\x91\x1f\xa0\x28\x64\x6e\x69\xdd\x55\x62\xbf\x86\x6e\x46\x26\x85\x31\xa5\x20\x13\x49\xa0\x08\x3a\xe1\x6b\xbd\xe8\xe1\x53\x3a\x96\x21\x1a\x2e\x0e\x70\x23\x1a\xd0\x57\xaa\x57\x0a\x22\x5b\x57\xee\x1b\x59\x91\xca\x21\x7c\x3f\x26\x25\xb6\xd1\x07\x9a\x76\x03\x6d\xcf\xcc\x17\xd6\xba\x51\xb6\x37\xba\x19\xb4\xdc\x53\xfe\xdb\xd0\x63\x50\x46\xdb\x3e\xbb\x83\x6f\xaf\xb6\x7f\xd7\x84\x1a\xe1\x3c\xf1\x25\x22\x5c\xfa\xbc\xba\x26\x2a\x42\xb9\x85\x53\x13\x0c\xc3\x28\x9d\xa2\x89\x02\xc6\xfb\x0e\xcb\x30\x9d\xdb\xca\xb2\xb3\x4c\x67\x4e\x53\x6e\x71\x45\x55\x58\xda\x06\xea\x21\x2a\x60\x32\x5c\x02\x38\xb1\xb9\x59\xdd\x16\x0d\x4a\xeb\xa0\x8b\x79\x0d\x81\xa3\x99\xb4\x89\x28\x53\x7f\xfa\xd9\xd3\x0c\x62\x4c\x78\x14\xcd\x50\xdc\x6d\x20\x80\xee\xc6\xc5\x2a\xcd\x7d\xec\xf0\x54\xc2\x4d\x5d\xdd\xed\x2b\x39\xb5\x53\x3a\x89\x08\x02\x9a\x6e\x8b\x12\x66\x75\xdb\xfc\x25\x45\x87\x4e\x32\xee\x49\xea\x30\x40\xf4\x8d\x44\xba\x7b\x3e\xf0\x24\xc0\xaa\x3a\x1c\x07\x07\xb0\xbc\xe5\x5f\x15\x2a\xb5\x7a\x1d\x53\x3f\x86\xc5\xc8\x41\x83\xc5\x53\x6c\xc4\xf8\x05\x68\x79\x32\xab\x69\x14\x6b\xe7\x3c\x0e\xbe\x0d\x9d\x29\x8a\xfa\x0b\x55\x69\x57\x73\xf7\x5a\xdc\xa1\x9c\x65\xa8\xba\x56\x34\xcf\x56\xf0\x6c\x54\x7f\xd1\x79\x9a\xa8\xee\x35\xdd\xdd\x85\xbf\xa8\xcc\x39\xd8\x48\x00\x80\xec\x70\xae\x91\xba\x3d\x8f\xed\x98\xce\x8d\x45\xce\x77\x76\xac\x6a\x45\x5d\x4c\x03\x29\x2d\xa4\xfd\x6a\x6d\x6b\xde\xec\x35\x20\xc0\xb4\x52\xda\x73\x3e\x3a\xf6\xd9\x89\xa8\xa1\x1b\xa7\x13\x93\x47\x43\xad\xfd\xd1\xc7\xa1\xb5\xce\x30\xfd\xde\x9c\x0e\xab\xf9\x13\x6e\xfe\xf4\x65\xe3\xa3\x2a\xad\xb5\x41\x64\xd7\x47\xd5\x16\xe5\xab\x6d\x35\x1e\xa4\x3e\x26\x97\x82\x18\xb3\xf4\xff\x7b\x82\x13\xdc\xd6\x55\x30\x08\x1a\xf2\x58\xfb\xdc\xeb\xfc\x9b\x63\xc6\x20\xa3\x3b\x81\x88\x71\xfc\x1c\x03\xe0\x6f\xa6\x3b\xaf\xe3\x54\x83\x9b\xf9\xff\xb3\xf7\x33\x9a\x4a\x88\x72\x4b\xbd\x68\xc3\x91\x91\x2c\xc4\x64\x24\x21\x80\xde\xcb\x7d\x51\xfb\x5a\x2d\x50\x46\x45\x0f\x2f\xc2\x44\xcd\xf8\x55\x01\x35\x1c\x46\x3d\xf7\x3f\xcf\x4e\xfc\x6e\x98\x5f\x04\x16\x59\xca\x83\xf9\x5b\x51\x8a\x3e\x70\xf1\x35\x86\xbf\x59\x8f\x03\x96\x33\x7c\x9a\xc5\xf2\xfb\xf2\xfe\xe9\x79\xb9\xf6\x29\x23\x60\xb9\xc1\x40\xf8\xb9\x6a\x85\xdb\x8c\xfc\xa1\x38\x31\x18\x15\xbc\xdc\x6c\x3a\x4b\x35\x3c\x92\xc6\x08\x61\xdb\x15\x5f\x73\xe9\x40\xac\x08\xf2\xe1\xdc\x57\xaf\x41\xd3\xec\xfa\xc8\x84\x58\x12\xbe\xee\xdb\x3e\x61\xeb\xea\x6b\x31\xde\x23\x20\xc9\x52\xe3\x55\x32\x5c\xfb\x95\x3f\x02\xc6\x03\x5f\x7a\x2a\xd2\x6c\x08\xb1\x02\x9e\x48\xd7\xdd\x22\xea\xd6\x93\x33\xf7\x41\x1b\xf0\x4c\xa0\x8d\xd0\xa2\xf1\x11\x15\x70\x65\x93\x57\x4e\x96\x74\xe4\x06\x00\x37\x92\x72\xa7\x5d\x7f\x00\x0f\x23\xf0\x26\x12\xd2\x28\x43\xae\x2f\xe9\x09\xf7\x5c\x0b\xf8\xa8\xab\xd3\x8f\xcd\x63\xcb\xce\xdb\x7d\x4b\x5d\xb8\xb0\xb9\x6c\x53\x80\x54\x30\x2c\xc7\x57\x3b\x71\xac\xa1\xd4\xc5\x9f\x93\x01\x59\x94\xa0\xf1\xbe\xaf\x5e\x1f\x8a\x57\xcb\xc3\x67\xfb\x0a\x2e\x2b\x44\x93\xe5\x9b\x25\x3c\x8d\x7d\xd1\xf8\xbe\x7a\x2d\x26\xee\x13\xe4\xb9\x4c\xd3\x71\xe1\xcb\xba\x6d\x57\x93\xcd\x90\xab\x34\xb3\x6c\x47\x8f\x00\x7a\x6e\xc9\x8a\xba\x80\x2e\x4c\x4f\x6e\x08\xd6\x44\xe7\xeb\xc5\x68\x55\x09\x42\x22\x4b\xa2\x5d\x1d\xfe\x06\xf6\x15\x84\x04\xa9\x1d\xb5\x72\x0b\xb3\xe7\xe7\x2f\x96\x97\xa4\x19\xbe\xad\x1b\xa1\x43\xac\x02\x52\xc6\x79\x10\xae\xb3\x53\x35\x60\xde\x18\x9e\x88\xf0\x68\xfc\x31\x69\x15\x23\x32\xa1\x2d\x0e\x30\x66\x45\xe6\x11\x00\xe7\xca\xeb\x77\x9c\xa4\xaa\xca\xb6\x28\xa1\x6c\x17\x45\x63\xf9\x0e\xbe\xa3\x69\xbc\x0e\xe2\x01\xc3\x2d\x3e\x08\x73\x6d\x5a\xef\x61\xf3\x56\x4d\x5a\x0c\x4c\x44\x62\x4c\x41\xda\xd2\xf1\xf2\x35\x00\xdc\x0d\x89\x13\x6c\x97\x78\xab\xf4\x3e\xfc\x2d\xcd\x91\x69\xd7\x42\xd4\x91\xb7\x29\x38\x4c\x86\x68\xe2\x1a\xba\xdb\x07\xf1\x13\x93\xd8\xd0\xce\x3e\x85\x77\x5b\x0c\x8d\x53\xcc\xfd\xa9\xaa\x34\x45\x7d\xb8\x42\x14\x3f\x5e\x4c\x86\xca\x5c\xb8\x38\x74\x51\xa9\x53\x67\xaa\x30\x04\xbe\xc6\xfc\x7f\xcd\x09\x30\x14\x88\xb2\xdd\xbd\x68\x0e\x6b\xf1\x01\xbf\x8d\x07\x18\x4b\x7e\xd4\x40\xab\xaa\xc9\x77\x62\x58\xa6\x31\x91\x08\xa5\x46\xe4\x21\x6e\x50\xde\x8f\x30\x89\x50\x99\x35\xe9\x87\xa3\x28\x5e\xcb\x01\x2f\x99\x49\x74\x84\x9f\xfb\x1a\xf6\x95\xe8\xbe\xf8\x2f\xa5\xdf\xdc\x0f\x38\x11\xb1\x45\x23\x9e\x5f\xca\xa2\xb5\xbc\x5e\x2e\x73\x31\x19\xc9\x53\x4b\x23\xd1\xc0\xbc\x3a\x1d\xab\x72\xfc\x40\x3c\xb7\x95\xda\xa3\xa8\xdb\xb2\x8b\x2f\x11\x82\xab\x37\x27\x0f\x75\x31\x1c\x6c\x13\xea\xbf\x4e\x50\x6a\x18\x7e\x32\xa6\x33\x44\x36\x67\x7d\x2a\xdf\x11\x36\x8a\xe5\xb5\x63\x70\x5b\x4d\x9a\x24\x2c\xf2\xce\xd3\x1a\x3a\x57\xa9\xe7\x72\x33\x69\x62\x90\x16\x0d\x61\x04\xb6\x8f\xc0\x6e\x75\xe3\x47\xc8\x84\xf5\x0a\x6c\x1a\xd0\xb6\x0a\xf8\x43\xd2\xd9\x56\x68\x9f\x4f\xc7\xe3\xd9\x52\x81\x5f\xdf\x2a\x4d\xa6\x05\x66\xc7\x4e\x0d\x8c\x63\x5f\x93\x75\x1b\x3a\xba\x72\x65\x2f\x5f\xe1\x8e\xe5\x5c\xa0\x16\xff\x51\xd4\x7d\xc4\x6d\x64\x2c\xd0\x01\x40\x02\x09\xa8\xe3\x11\x7a\xd1\xe8\x88\x63\xbb\xf2\x8f\xd9\xf7\x41\x3e\xd3\xe8\x08\x6c\xa6\xb9\x28\xdb\xfd\x88\x96\x2c\x20\xe0\xff\xc7\x0f\x25\x80\x3d\x16\xbb\xce\x31\x73\x3d\x2a\xdb\x6a\xe3\x94\xf2\x46\x91\xb1\xff\x45\xee\xa0\x6f\x65\xd5\x14\x23\x9c\x95\xd1\x9a\x04\xab\xd0\x39\xa2\xeb\xa1\xfd\x1c\xcf\xb5\x36\x19\xe2\x2e\xef\xc4\xc1\xa9\x15\xfc\x7a\x21\x02\x61\xd8\xbd\x7d\x53\xbd\x6a\x51\x56\xc6\x0c\x5a\xe3\x0c\xc4\xa9\x24\x63\x14\xbf\x3f\xa2\xc0\xf6\x92\xda\x5e\xf7\xdb\xaa\xde\x82\x08\x4b\xce\xa4\x96\x0d\x7a\x8f\xb4\x08\x6b\x50\x55\xad\x3d\x01\xeb\xb0\x6b\xfa\x8b\x52\xfa\xb5\x27\x23\x51\x44\x94\xf6\xf1\xd9\xaa\x19\xe1\xca\x48\x14\xc5\x8c\xc7\x7d\x7b\xbb\xad\x0d\x57\x7f\x0b\x99\x47\x22\xcc\xe7\x7b\x2e\x0d\x34\xb5\x41\xae\x88\x93\x88\x44\x4c\xf7\xce\xd8\xf6\xe7\x44\xaa\xbd\x1b\x41\x81\x20\xd9\x5a\xb7\x8d\x0f\x2b\x5c\x24\x22\x82\xa0\x7a\xef\xa9\x2c\xda\x4d\x0b\x62\x8f\x1d\x7b\x47\xa1\x8a\x09\x11\x11\x89\x88\x26\x1e\x5d\x65\xd3\xdb\x4f\xc6\x69\x36\xf6\xf5\x98\x6b\x66\xb3\xfb\xa5\x55\x88\x3d\x8a\xf3\xf6\x0d\x1e\x44\x39\x3d\xb3\xb1\xcc\x1b\x48\x21\xee\x11\x20\x76\xc1\xcf\xab\xb2\x04\x35\x28\xcf\x4f\x68\x6c\x48\x44\x93\x84\x59\x88\x42\x7d\x28\xda\x9b\x53\x5d\x8e\xdc\x1f\x12\xd1\xd4\x58\xf2\x58\x71\x0e\xa6\x81\x44\x34\x4b\x30\xca\x19\xd0\xdc\xad\x01\x37\xad\x7b\xd1\x22\x68\xec\x03\x59\xe9\x16\x15\x34\x65\xfb\x4d\x7c\xc0\x4c\x6b\x44\x09\x8b\xbd\x3f\x16\x5e\x01\x55\x91\x6f\x42\xbd\x11\xad\x7a\x73\x58\x9c\xf1\x2c\x50\x1d\x93\xbe\x53\xf5\xb6\xaa\x1f\x90\xc1\x6e\x8a\x04\x27\x11\x85\x18\xab\xaf\x8e\xe2\x6f\x58\xbf\xf9\x6f\xfa\x3f\xff\xb8\xfa\x9f\x5f\x1e\xf8\xfb\xff\x49\xc8\xff\xb8\x1b\x60\x49\x86\x6a\x35\x36\x6a\x7b\xae\x8b\x0f\xd8\xc3\x2b\xe8\x31\x86\x6b\xf2\x92\x59\x2e\x9d\x1a\x0a\x2a\xe5\x38\x4e\xb6\xc9\x18\x01\xd8\xe1\x3a\xbb\x5b\x3e\xce\xff\xd8\xcd\x16\x8b\xb5\x9f\x42\xa6\xd3\x91\x42\x93\xcb\x33\x34\xfd\xf1\x1c\xd7\xb0\xa7\x17\x1e\x4f\x19\xd3\x5a\xd8\xb6\xab\x2f\x5d\x37\x12\xc5\xb1\x15\xd3\x3f\xd6\xf0\x51\x54\xa7\xe6\xf9\x24\xf7\x45\xf3\x06\xfa\xfb\x40\x81\xb6\x1b\xc7\x75\xe6\x3a\xe9\xd6\xf7\xf3\x67\xa8\x97\xdb\x6f\x93\xeb\xc5\xa9\xc1\x4a\x85\x29\x64\x55\x0a\xa5\x8a\xe9\x71\x9d\x62\xae\x4d\x83\xb0\x25\xff\x9d\x71\x42\xd6\x9c\x44\x49\x64\x45\xd7\x76\x06\x5a\xf5\xf6\x2c\x0a\x6d\xc9\x38\x6f\xab\x1a\xc1\xae\x93\x49\x4b\x98\xb3\x2b\xb6\xc0\x78\x7e\x69\xf4\xf6\xe7\x70\x93\x25\x51\x22\x63\x2c\x63\xa3\x1a\xcc\xf1\x5c\x23\x26\xc1\x1f\x53\x99\xf5\x59\xda\x93\xbc\x3d\x95\x57\xb3\x6c\x6e\x28\x8f\x25\x7e\x87\x77\xbe\x79\xae\xff\xb0\xfb\x11\xf8\x5c\xc7\xba\x52\xd0\x34\xdd\x96\x8a\x3d\x88\x5f\x9c\x8f\x6b\x75\x21\x79\xd7\x93\x57\x90\x28\x4d\x52\x5c\xe9\xbb\xcf\xc1\xee\x46\xa2\x4c\x26\xb8\x47\x74\x16\xad\x84\xfd\xce\x19\xcd\x9d\x3c\xbd\x3a\x59\xee\x7d\xcf\x34\xd9\x0d\xd7\x48\x49\xd1\x54\x9f\xf3\xaa\x1e\x3f\x5c\xe6\xc6\xe4\x3c\xa3\x56\xea\x67\xfb\xcd\xff\x2e\x07\x8a\x08\x35\x8c\xb1\x37\x57\x98\x79\xfc\x38\x63\x30\xf1\x76\x53\xbc\x9d\xc4\x60\xdf\x23\x91\x24\x1c\x65\xd3\xab\xd0\x82\xbc\x69\xc5\x17\x5a\x68\xbf\xfa\x77\xbc\x4e\x25\x11\xe8\xf8\xef\x7f\x51\x88\x22\x91\x14\x46\x88\x21\xd3\xc6\xf3\x93\xb9\x86\xc4\x23\x91\x74\x81\xc4\x06\xca\xc6\x83\x89\x48\x24\x81\xa3\x1a\x07\xfa\x46\x23\xbd\x4b\x4e\x22\x45\x34\x77\xe1\xe1\x63\x6b\x2e\x50\xa9\xe3\xf3\x2b\x16\xa1\x63\x2e\xbb\x00\x04\x19\x0a\xfc\x01\x69\x19\xb7\xf7\xd5\x2b\xca\x48\x8f\x1f\x40\x47\x11\x77\x50\xfa\x0d\x36\x3a\xcc\xab\xb2\x69\x6b\xf1\x17\x5c\xae\x83\x13\x24\x1a\x73\x0c\x4e\x3d\xa3\x73\x27\xaa\xcf\xc3\x2f\x94\x87\xbe\x3a\x8f\xc8\x72\xdb\xd5\x2c\x4f\xaf\xe1\x2b\x85\x1c\x30\x4b\x73\xac\x9a\x6e\xcf\xed\x22\xf7\x65\xbf\x6f\x82\xb1\xce\xb6\x07\x88\x3f\x14\x25\x5c\x43\xa2\x11\x12\x11\x09\xbe\xbb\x7a\x22\xea\x34\x19\xc8\x53\xa4\x6e\xeb\x9c\xa7\xd4\x5d\x87\x10\x6e\xab\x53\x87\xa0\xf3\xb8\x80\x7a\x04\x4a\x27\x84\x48\x1b\x16\xa8\xb3\x84\x1a\xd5\x1b\xe9\x94\x44\xd6\x8f\x54\x82\xda\x00\x02\x7b\x44\xae\x2e\x77\x42\xb4\xc6\x9c\x8c\x12\x7b\x35\xaf\x9a\xb6\xd9\x58\x90\xde\xd8\x29\xbc\x02\x2b\x22\x84\xe6\xc2\x37\x60\x60\x80\xb2\x2a\x55\x75\x80\x01\xe8\xd4\x8f\x53\x54\xd8\x16\xfc\x03\x2a\xe6\x3a\xd4\x8b\x37\x33\x84\xaa\x14\xfd\xc9\x35\xe8\xa2\x06\xd5\x4e\x1b\xe0\x27\x67\x83\x0c\x33\x31\x87\x2b\x44\x5c\x43\x23\x40\x18\x27\xb6\x8c\xd8\xf9\xa8\xdf\xab\x16\xf4\xae\x7f\xa5\x24\x8e\xac\x67\xba\x77\xfb\x3f\x6e\x63\x2f\xf5\x3e\x1c\xd7\x2a\xb2\xc7\x9b\xf6\x76\x8f\x26\x76\xf4\x1d\x90\x24\x12\xb8\x6d\x42\xfb\x76\x6a\xbc\xe7\x47\x38\xb1\x7f\x95\x27\xcf\xcb\x45\x08\xa7\x24\xa3\x9e\xb3\x61\x51\xa9\x91\x35\x27\x1c\xac\x46\xa6\x8d\xa5\x6f\x11\x0a\x3c\x94\xc0\x0f\xae\x0d\x49\x13\x9a\xc8\x9e\xf7\x63\xbe\x17\xd0\x60\x89\xb1\x77\x74\x48\x2a\xb3\xc8\x7d\x66\xb7\xc5\x4f\xd0\xb3\x52\xa3\xdb\x86\xfc\x85\x7e\x8c\xca\x2d\xce\x09\x5a\x11\x7a\xea\x1a\x9b\xd7\x73\x43\x32\x0e\x94\x0d\x90\x3a\xba\xfa\xec\xc5\xaa\x39\x21\x82\x46\xf8\x98\xab\xaa\x55\x7f\x2f\x6d\x47\x88\x8c\xa3\x3c\x99\x8a\x06\xfb\x13\xaa\x98\x73\x3a\x48\x7c\xdd\x9c\x17\x62\x40\x1b\x40\xfc\xdb\x57\xa9\x49\xd0\xb2\x7b\x59\xd6\xee\x6f\x92\x26\xdd\xab\x32\xa2\xd8\x0f\x4a\xb8\xdd\x01\x8e\x46\x73\x94\xb2\xfc\xb5\x79\x20\x5a\x08\xcc\xe7\x04\x1e\x26\xd7\x43\xd5\x85\xb2\x13\xd7\x8d\x80\x8c\x11\x1d\x70\xb0\xf9\x86\xd5\xfc\x29\x20\xb0\x08\x01\x63\x53\x1b\x36\xe7\xba\x80\x7d\xf1\x01\xf5\x79\xfc\xee\xc1\x28\xb4\xa5\x23\xba\xd9\xf1\x35\x0c\x31\x98\x05\x2f\xda\xe6\xbe\x78\x87\xf9\x5b\xa1\xc4\x6b\xe5\x2f\x62\x78\x6c\xf2\x01\x37\x46\x9f\x34\x24\x34\x0b\x63\x72\x8b\x7e\xde\x21\xb3\xca\xee\x50\x5d\x2d\xbd\x5d\x96\x56\x08\x31\xda\xf6\xb7\x23\x23\xaa\xad\xed\x5c\xf6\x9f\x12\x1a\x31\xca\x2d\xbc\xf4\x55\x94\xc5\x9f\xc1\x56\xd1\x48\x68\x0f\xa0\x9c\x9d\xda\x31\xe1\x0b\xa1\x11\x10\xcc\x54\x6e\x5f\x1e\x56\x7f\xbc\x3c\x62\x27\xd2\x5f\xaf\x23\x1a\x19\x83\x0a\x1f\xc2\xc9\x0c\x3d\x8b\x73\xe7\x70\x7c\x83\xbd\x5f\x4d\x94\x90\x08\x99\xf3\x11\x30\xee\xd0\xde\xcd\xb7\xe2\xf5\x0d\x10\x4a\xa4\xfb\x3b\x24\x90\x50\x1b\x18\xec\xa1\x0b\xf6\x07\x9c\x4f\x84\xd2\x38\xb7\xba\x59\xbe\x71\x72\xd8\x3d\x31\xac\x89\x11\xca\x28\xc9\xe4\x80\xba\x27\x74\x63\x4d\x29\xb9\xc6\x53\xc0\x12\x8e\x48\xab\x99\xaa\xe1\x2a\x79\xb0\x1f\xa7\xb8\x53\xbb\xe8\x7c\xf4\xe5\x41\x8a\xa6\x39\x4f\xde\x02\xd3\x06\xfd\xaf\xc7\xca\x81\xba\x46\xb3\xc6\x4c\x8a\xf8\xe0\xaa\xdc\x9f\x1d\x6c\xb1\xd0\xa1\xb0\x36\x2b\xf5\x83\xe5\xe2\x1d\xbc\x7e\x1a\x13\x45\xb3\xc1\xea\x5a\x4f\x31\x84\x84\xc6\x29\xc5\xd6\x8b\xb6\xfa\xaf\xed\xf4\x90\x48\x30\xd5\xfa\xe9\xbf\xf6\x89\x66\x6e\x37\x04\x62\x64\x68\xf7\xd0\xd2\x89\x63\x42\x93\x38\x96\x2c\xb0\x7f\x63\x2a\xe9\x4a\xde\x99\xd0\xc4\x68\x3a\xd0\xe6\x70\xd9\x98\xde\x74\x52\xae\x24\xba\xcc\xfe\xf5\x8c\x74\xec\xc7\x40\xe3\x6c\x9a\x07\x18\xb3\xe5\x0c\x63\x28\xc7\xd3\x17\xbb\x34\x0b\xa1\x69\x4c\x7b\x25\xe2\x10\xd3\x8c\xef\x35\x15\x04\xeb\x7c\xbb\x2e\xe0\x10\x75\xd1\x9e\x5d\x81\x70\x3c\x7b\xa9\x32\x18\xe7\xdb\xb0\xb0\x87\x05\xfb\xc3\x86\x06\x3a\x29\xac\xca\x6d\x45\xf3\xee\x2d\x3c\xcd\x28\x67\x21\x51\xfa\x50\x94\xc8\x8b\x31\x5c\xae\x59\x9c\x20\xaf\x3d\xe2\x24\xfe\x7d\x02\x67\xc0\x33\x7f\x98\xa7\xca\x3b\x05\x7e\x32\x87\xae\x05\xcd\x44\x6c\x15\x99\x5d\xe0\xd0\xdc\x57\x4d\xa8\x19\x10\x9a\xf3\x24\xb6\x29\x36\xd4\x12\xd6\xbb\x1a\x4c\x0d\xbe\x1e\x41\x68\x6e\xac\xc5\x46\x98\x90\x81\xba\x16\x9e\xa6\x70\x32\x0b\x22\xb5\x7b\xb8\x05\x84\x20\x73\xc1\x78\xbb\x19\xcf\xad\x48\x13\xee\x75\x16\x30\x74\xf0\xe9\x85\xc9\x3b\x10\x92\x62\x57\x42\xa8\x69\x3c\x95\xb7\x55\x7d\x05\x8c\x44\xa8\x50\x80\xc9\x23\x53\x57\x7f\x22\x59\x32\x7c\xf4\xeb\x57\x1a\x4b\x2f\xa3\xa1\x51\x75\x71\xec\xcc\x42\xec\x8f\xa9\x2e\x0a\x19\xcb\xa8\xaf\xfb\x1d\x94\xaa\x84\x1b\x11\xa0\x1f\x9d\x7b\x72\xc9\x1e\x41\xa8\xca\xb5\xd3\x5d\xab\xed\xfa\xbf\xad\xa6\x37\xa8\x79\xc4\x89\x2f\xe5\x5b\xd9\xfe\x87\xa2\x5c\xa3\xac\xef\x2f\x01\xbb\xdd\x4f\xb9\x07\xda\x3d\x14\xe5\xa6\x15\xef\x81\xba\x66\xf2\x1e\x20\x4e\x90\x23\xa9\x84\xcf\xbf\xc5\xa8\xfd\x8f\x2b\xcf\x02\x29\xc3\x8f\x63\xfb\x06\x77\x35\x08\x4b\xe0\xb5\x16\x0a\xc6\x86\x0a\x64\x82\x36\xe1\x42\x91\xd0\x6e\x05\xe3\x87\x07\x65\xd9\x2e\x1f\x56\x8f\xab\x87\x97\x87\xf9\xd3\xe3\x76\x75\xe3\xa7\x18\xb4\xed\x0a\x71\xe8\x7e\xab\x35\x13\x70\x9c\x84\x02\xa4\x94\x3b\x91\xca\x6b\xa4\xd6\x7e\x98\x89\x53\xa7\x21\xb3\x76\x6c\x3c\x17\x23\xb8\x53\x67\x1b\xf0\x2a\x5f\x8c\x32\xd4\xb0\xb4\x67\xbb\x6f\xa1\xc4\xde\xec\xc1\x0c\x19\x43\xf0\x7d\xd8\x62\x35\xd6\xf7\x47\x8f\xcb\x22\x12\xa3\xbf\x70\x28\x4a\xa8\xc1\x27\xd5\x09\x8b\x14\x60\x7a\xeb\xa5\x2c\x86\xbc\xfc\x57\x8a\x12\x84\x45\x3a\xc1\xdb\x70\xb5\x5a\xeb\x8f\x3b\xed\xbf\xbf\x53\x4d\x26\x8c\xc4\x80\x05\x53\x9b\xde\xf6\x49\x83\x07\x71\x9c\xdc\x2d\x55\x82\xf4\xda\x0d\x3e\xf3\xc5\xe8\x3f\x7a\x4b\xc3\x98\xb0\x9d\xb4\xcf\xeb\x25\x36\x20\xef\x58\x14\xed\xfa\xa8\x9d\x25\x10\x21\xa6\xe7\x70\xf6\x34\x1c\x43\xa0\x3a\x61\x89\xb1\x94\x6c\xca\x8b\x18\x8a\xba\xdd\x7e\x4e\x3c\x0d\xc6\xa9\xe4\x56\x14\xc1\xb5\x19\x17\x7f\x5e\xd7\x6b\x20\x8c\xe7\x1c\x3c\x22\x64\x2e\xf4\x47\x73\x0f\xa6\x5d\x95\xf6\xc5\xf6\x8e\x36\x4b\x63\x82\xf9\xf1\x43\x55\x42\xfb\x26\xee\x44\x0b\xa1\xd6\x44\x58\xaa\x79\x1a\x85\xaf\x3b\xf8\xbb\x88\xf0\xea\x3f\x1d\xbf\x6f\xb0\x2c\xcb\x10\x86\xd2\xd3\x68\x5d\x0e\xc9\x21\x93\x03\xa2\xe8\xc6\xa2\x6b\x27\x53\x9e\x0b\xab\xfe\x10\x7a\xf2\x07\x22\x1d\x84\xe5\x46\x78\x49\xff\xd9\x7e\x6f\xe9\x7b\xdd\x21\xc1\x29\xa6\x7b\x37\x65\x71\xec\x73\xee\x84\x49\x65\x7b\xa7\x97\x3f\xad\x9a\x80\x03\x5a\x7c\x91\xae\x75\x3f\x52\x8c\x0b\xcf\x63\xbe\xad\x36\x6d\xa5\xc2\xd6\xc4\x74\x66\xd0\x9e\x62\x2b\xd2\x90\xed\x86\x30\x0d\xa9\xd5\xe9\x39\xc9\x1f\xc5\x9f\xa1\x2a\x8e\x5a\xf7\x32\x73\x19\xf1\xfa\x03\xeb\xc1\xc3\x02\x09\x61\x40\x35\xd0\x01\x6b\xb5\x50\x2d\x12\x0c\x8e\x36\x2d\x66\xe2\x04\xdb\xc0\x2c\x77\x32\x8c\xf4\x8b\x08\x33\x89\x55\xa5\x72\xd4\xdf\xf6\x2c\xd3\x6e\x82\xf1\x73\x9a\xc4\x60\x4a\xe2\x61\xf6\xfb\xee\x65\x13\x04\xac\x77\x37\xb3\xfb\xd9\xe3\x7c\x19\xce\x9c\x72\xee\x85\x60\xf7\x55\x03\x48\x1d\x3e\x7e\x00\x93\x69\x61\xe9\x85\xf7\xfb\xcd\x5b\xd1\x8d\x2b\xfb\x97\x63\x74\x86\x0d\xb6\xdd\x76\x7c\x53\xbc\x0e\xb8\xb5\xc7\xcb\xdc\xe8\x1c\xcb\xc0\x07\xa7\x9b\x6e\xe5\x38\xc3\x59\x4c\xcc\x4d\xd8\x94\x9f\xa1\xee\x9b\xb8\x48\x1c\x11\x9a\x79\x4d\xae\xd3\xd1\x8b\x22\x36\xe1\x30\x4d\xf2\x20\xdd\x84\x5f\x90\xf3\x27\x46\x37\x10\x47\xc2\xd8\x3a\x0c\x76\xd7\x38\x7c\x58\x08\xf2\xe2\x48\x25\x58\x66\x1c\xc0\x44\xc6\x2b\x27\x8e\x94\x48\x9d\xc7\xb9\x6a\x6c\xd3\xf7\x98\x6a\x99\xc4\x44\x26\xa8\xf0\x88\xe5\x03\x5f\xe5\xfe\xc2\x21\x88\x89\x4e\xb4\x0d\x17\x8d\x81\x6b\xb1\x4b\x4c\x49\x84\x46\xaa\x8b\xf3\x77\xb2\xe7\x66\x26\x31\x4d\x2c\xe5\x7b\x79\x3a\xb8\xd6\x72\x2f\x74\xd7\x1d\xe4\x1a\x53\xc2\x9b\xed\xdc\x31\x1f\x86\x23\x90\xe2\x4c\x3a\x1d\x63\xc7\x34\xe4\x12\x86\x9d\xff\xda\xd9\x75\xcc\xe1\x85\x5f\x18\x0b\x32\x77\x82\x2f\x6f\xc5\x71\xc4\xa0\x3f\x76\x43\xdd\x63\xfe\x2a\x86\x8d\x19\x05\xfc\x68\x51\x02\xf6\x00\x77\x62\xb2\x50\x62\x26\x32\xec\x85\x2f\x9a\xbe\x30\x37\xfa\x56\x62\x26\x24\x86\x0b\xf8\xad\xcc\x1d\xab\xb5\x41\xcd\xc9\xf1\xa9\x62\x91\x61\x1e\xeb\xbf\xfe\x79\xfb\x6c\x3d\x1d\xff\x58\x9c\xe4\xc9\x80\x42\x2b\xfc\x99\x65\xcc\xd7\xe9\xcf\xcf\x7b\xac\x9d\x34\xfd\x41\x89\x85\xb3\xdd\x9b\x68\xde\xb6\xd5\xac\x51\x45\x31\xb9\x33\x9e\x08\xac\x00\x0d\x6c\xe5\xdf\x4a\xfc\x75\x91\x8a\xee\xce\x3d\xdf\xdc\x3d\xdd\x04\x04\x07\x89\x53\xae\x31\x31\x7c\xe7\x52\xab\xf6\x8d\xdd\x56\xb5\xab\x3e\x17\xaa\xef\xca\x24\x71\x9a\x11\x63\x3b\x73\xdf\x6f\xaa\x66\x3a\xb1\xa9\x48\x10\xa3\xbc\xf9\x14\xc7\x67\x71\x6a\xa6\x4e\x40\x9c\x4a\x25\x7d\x0b\xda\xf7\xe7\x01\x62\x98\xc4\x99\xb1\x7a\xd1\xc7\x6a\xbf\x7f\x98\x48\xa2\x91\x38\x67\x39\xa2\x93\x85\xa3\x9a\x09\x94\x2b\x7d\xa5\xb3\x1b\x24\x7d\x03\xe7\xee\x60\x3b\xf9\x76\x47\x87\xed\x9e\x9c\x2e\x4e\xc9\x80\x1e\xf6\x11\x3e\x43\x23\xa5\x03\x37\x93\x38\xe7\x32\xb3\x09\x7d\xbd\x39\xee\x8b\x76\xf6\x5a\x03\xf4\x38\x71\x12\xe7\x59\xac\x89\xd7\x85\x40\x76\xaa\x3b\x28\x91\x1c\xf4\xfa\x1b\x10\x8c\x78\x1a\xb6\xd5\x6a\xb7\xa6\x93\x7b\x12\x26\xb7\xf7\x74\xf2\xa4\xff\xaf\x45\xd8\xe9\x63\xc9\x00\x09\x2c\x6e\xe6\x9b\x61\x56\x3e\x96\xc2\x36\xfb\xf8\x08\x69\x66\x4c\xb1\x2f\x90\xdf\xc6\xb6\x2f\xfb\x71\x52\x31\xd6\xfb\xe3\x57\x89\x10\xc6\xf7\x23\x21\x52\x41\x85\x0e\x61\x99\x6f\xa2\x76\x62\x30\x2b\xa7\xae\x33\xb1\x26\x4a\xe6\x88\x32\x2b\x9a\x5b\x2f\xe0\xf2\x3a\x98\x30\x1d\x65\x88\x0a\xed\xfc\xd4\xf5\x6c\xbe\xdd\x3d\xce\x1e\x96\xe1\x60\x62\xa2\xd4\xc9\x39\xdd\x56\xf5\x30\x13\x11\xeb\x2c\xc1\x9a\x30\xa2\x74\x4e\xe1\x7c\x86\x4a\x84\x8b\xed\x74\x61\xcc\x17\x93\x6e\x58\x8e\xbb\xde\xe6\x08\xa0\xcf\x23\x21\x2b\x92\x90\x24\xd1\x2e\x5d\xfd\x1d\x9a\x21\x18\xc0\x0d\xa0\xcc\xd0\xbe\x8f\xb0\xa7\x0b\x1f\x8f\x62\x69\x84\x22\x4c\xc3\xc4\xde\xb5\xfc\x92\xff\x88\x13\x26\x33\xa4\x6a\xb9\x11\xa5\xaa\xea\x6f\xa2\xd4\xfb\x69\xe4\x95\xc4\x34\x8d\x75\x90\xe6\x0b\x61\xc7\xd0\x99\x4d\x62\x66\xe5\x33\x94\x6b\xda\xc7\x66\xea\xa1\x93\x9f\xc4\x8a\xe0\xae\xf7\x50\x94\x70\x21\x15\xdd\x1d\xd7\x12\x11\x07\x2f\xf5\x10\x2f\x48\x92\x24\x63\x98\x96\xbd\x29\x5a\x2b\xd9\x3a\x38\xc6\x79\x8c\xc6\x71\xc8\x55\x49\x12\x0e\x59\x1e\x64\x5e\x9f\xca\x7d\x50\x83\x19\xb0\x54\x91\x24\x25\x1a\x67\x5c\x0f\x70\xc9\x36\xe9\xdb\xef\x21\x49\xaa\x12\x70\x59\xdc\xbb\x6a\xaf\x3b\x5f\x66\xf3\x7e\x9a\xcc\x4f\x46\x12\x93\xf4\x25\x58\xdb\xc2\x32\x24\x30\x25\x49\x16\xe7\x4e\x71\xb1\x8b\x5a\x6e\x0a\xdd\x8c\x8d\x69\x92\xa5\x19\x32\xa5\x6f\xde\xeb\xd3\x41\xee\x61\x2e\x4a\x7d\x1e\x3d\x6b\x4e\x2c\xff\xdb\x11\x69\x2b\x2d\xd1\xd8\xe2\xe9\x26\x2c\xb6\xd1\x64\xe6\x54\x66\xc9\x40\xe8\xc6\x7b\x11\xa3\x77\x2f\x62\xc0\xcc\xba\x4d\xf3\x77\xa1\x90\x47\xef\x8e\x9f\x4f\xf0\xc8\x33\x8e\xd9\x89\xbe\x58\x21\x42\x49\xf4\x33\x6f\x6b\x00\x4f\xca\x49\x12\x61\x12\xcc\xda\x09\x4f\x55\xbd\x01\xdc\xe0\xdc\x61\x45\x73\x6c\xe1\xef\xec\x5d\x0b\x4d\x78\x7d\x5a\x82\x94\x81\x23\x61\xdc\x45\xf3\x2b\xd0\x21\x49\xb4\xc9\xf0\x2b\xac\xd1\x48\x68\xf0\x89\x84\x70\x58\x24\x96\x78\xd0\x88\xd3\xbe\x75\x04\x72\xee\x20\x88\x2c\xef\xe1\x1c\xdf\x60\xbf\xaf\xc6\x2b\x1c\x8c\xcd\x10\xda\x7a\xb0\x63\xc0\x9f\xd9\x06\x3b\x7f\x12\x93\x1b\x62\xae\x48\xea\x3f\x56\xed\x12\x8b\xb1\xe1\xe1\x8d\x88\x49\xe0\x3d\x9f\xb5\x9e\xc8\x9e\x70\xc2\x2d\x01\xfd\x66\x3b\x1f\x79\x96\x63\x63\xc2\x09\x48\xec\x8e\xdd\xc9\x53\xfd\x85\xd9\xe4\x34\x51\x5e\xd5\xed\xbe\x52\xef\x37\x67\xe4\x7a\xbe\xac\x67\x70\x46\x35\x7e\xe0\x45\xd9\xb4\x45\x7b\x72\x0a\x0b\xaf\xe0\x61\x49\x7e\x18\x27\xc2\xf7\x54\xd7\xf5\x4b\x51\xb6\xb7\x05\xec\xb5\x2f\xdd\xf1\x98\x48\x84\xa9\x0b\x7d\x5d\xc5\x80\x60\x53\x36\xed\x15\xbb\xec\x72\x19\x92\x1e\x11\x9e\x50\x16\x3b\x7d\x8f\x61\xab\xc5\x95\xbb\xe6\x09\x60\x6e\x6b\x77\xb4\xc9\xd8\x1b\x27\x4f\x3c\xbe\x24\xcf\xb5\x71\x93\xe0\xdc\xf0\x2f\x15\xcd\x39\xe1\x69\xce\xa9\x95\x97\x29\x3e\xa0\x6e\xc4\xde\x5a\xd9\xe7\xba\x6a\x2b\x55\xed\x87\x1f\x24\xcf\x12\x8a\xc9\x06\x6c\x95\xaa\x4e\x03\x3e\x82\x0b\x95\x8e\x09\x85\xc0\xf5\xbf\xf6\x4f\x96\x65\x02\xbf\xde\xfb\xcf\x1e\x65\x46\x78\x26\x05\x73\xb6\xe8\x07\x14\xb3\xd7\xd7\x1a\xe5\xe4\x1f\xc4\xd9\x09\xf7\xfa\x71\x2a\x57\x16\xb8\xd0\x05\x31\x17\xe6\xff\xaf\xfe\xff\x78\x42\x72\x91\x62\x19\x75\x2e\x9a\xb7\xdb\x6e\x83\xa8\xf5\xa7\xa8\xc1\x65\xb5\xdc\x20\x11\xe5\xe8\xed\xfc\x35\xfd\xd9\x45\x4f\xc4\x17\x97\x15\x2c\xb6\x79\x64\x4c\xba\x6e\x3c\x3d\x86\x4f\x0d\x0f\x6b\x23\x5c\x70\x86\x76\x64\x53\xa0\x3a\xad\x35\x61\x23\x4a\x2b\x37\x50\xc6\x11\x04\xc9\x9e\xf1\x9c\xc9\x24\x37\x3c\x6c\x71\x03\x7a\x0c\x6f\x2c\xb9\xcc\x28\x36\xb9\x76\x0e\xe5\x71\x9a\xfd\xfe\xe2\x29\x54\x1e\x23\x3f\xa2\x77\x41\x7e\xcd\xc3\x40\xb8\x82\x50\xa5\xf9\xe7\xd3\x1f\x57\x55\xa0\xc7\x4f\xa4\x89\x11\x72\xc2\xfa\x3d\xdb\xa3\x43\xd4\xc2\x5f\xfc\x34\xb1\x94\xae\xa7\x06\x6a\x37\x67\x13\x1f\xba\x1b\x82\x0b\xe9\x6e\x3e\x5a\xf7\x5a\x99\x68\xd4\x2b\x68\xd9\xcb\xaf\x84\xa1\x1c\xa8\xc1\xa8\xef\xb6\xaa\xdb\x11\x84\x83\x83\x14\xb1\xf0\xe4\x02\xea\xbd\xa9\xab\xaa\x5d\xa1\x00\xa8\x29\xae\xa9\xfc\x8f\xde\x85\x49\xa5\xca\x47\xad\x71\xd0\x6c\x26\x2c\x57\x84\x1b\x69\x55\x67\xad\x45\xf7\x7c\x1a\xd3\xda\x21\x37\x4a\x58\x9e\x7f\x5d\x1d\x2f\x4e\x01\x39\xed\xee\x12\x0e\x45\x7b\x0b\xd8\xe8\x33\xa1\xf7\xf5\x03\x0d\x64\xb6\xe1\x46\xe8\xd1\xb6\x91\x46\x59\x1e\xd9\xec\x33\x1c\x45\x0d\x0e\xd2\x80\x45\x9f\xdf\xfc\x10\x61\x35\xb0\x3d\xbb\xc3\x16\x26\xcc\xa1\x24\x8d\x24\xc1\x7c\xfa\x7f\x3a\x7b\x30\x58\xfc\x69\x64\xc0\x3b\x28\x3f\x8a\xf2\x6b\xd9\x6c\x92\x12\x42\x10\xc9\xe5\x69\xd9\x7a\x1d\x9d\x69\x99\xbf\xb7\x44\x29\xc9\x88\x03\x7a\x87\x57\xbc\x6a\x86\xba\x9f\x24\x25\xb9\x4d\xee\xaa\xce\xdf\x39\x88\xf7\xb0\xdf\xa6\x44\xa7\xc6\xee\x07\xff\x39\x35\x36\xa4\xb3\x0d\xf6\x03\x27\x24\xa5\x49\x9a\x3b\x8a\xab\xd9\xff\x9e\xc4\x41\x4c\xf2\x02\x29\x55\x11\x8a\x79\xd9\x58\xe4\x0b\xea\xe1\xc9\xb3\x52\x13\xa5\xc4\x67\x2f\x66\xfb\xb0\x0f\xfb\x5b\x1f\x3c\x21\x13\x29\xae\xe6\x02\xe1\xd6\x28\x29\x33\xbe\x3e\x83\x38\x71\x19\x97\xd9\xc3\xfd\xc0\xb1\xbe\x39\xed\xdf\x07\xf0\xc8\xee\x9c\x3e\x49\x98\xc6\xd4\x22\x73\x95\xd8\x6f\xeb\xe2\xb8\x87\x75\x55\x1d\xbe\x0c\x8f\x47\xab\x3b\x4d\x88\x2d\xd7\x09\xad\xe7\xcb\x2d\x1f\x72\xad\xf0\xf8\xca\x3f\x63\x96\x95\x21\x42\x24\xf3\x67\x14\x1a\xe5\x0c\x0b\x55\x79\xca\xbd\x61\x50\x93\x26\x52\x21\x07\xee\xb1\x06\xc4\xcf\x0e\x28\x26\x49\x9a\x98\xdc\x96\x56\x50\xb2\xc1\x47\x08\xe3\xf9\x46\x71\x88\xff\xf7\xff\xfb\x7f\xff\x55\xec\xf7\x3d\xa2\x2f\xe5\xb1\x49\x9c\xeb\xbe\x98\x6d\x67\x43\x03\x90\x72\x25\x70\x63\xf9\x06\x75\xb5\xad\x11\xfe\x70\xb1\x7d\xfe\x15\x9e\x68\xc8\xfd\xeb\x4e\x9b\x46\x99\x8f\xa3\x96\x8d\x12\x47\x70\x19\xa3\x41\xc6\x7b\x30\x38\x4e\xa3\x1e\xf1\x79\x53\xe8\xeb\x08\xc6\x34\x75\xfa\x0b\x55\xb9\x3f\xdf\xa0\x18\x48\x6d\x5b\x84\x97\x3f\x5b\x28\x9b\x69\x6f\x30\x49\x53\x41\x70\x43\xbc\xab\xee\xaa\xe7\x90\x8c\x4e\x53\x23\x22\xd7\x28\x7a\xe7\x48\xe4\x3a\xfb\x35\xf9\x71\x26\x32\x8b\xae\xee\x42\xfd\xee\x7d\x60\x82\xed\xb7\x70\x54\xe5\x03\xe6\x31\x4b\xb3\x57\xf4\xdb\xd5\x85\xa4\x2e\x49\x33\xb0\x6a\x96\x35\x6e\xda\xa3\xb2\x9d\x1b\x91\x13\x2b\x9b\x31\x7b\xd9\x7e\xdb\xcd\xbf\xcd\x1e\xef\x96\x4f\x3f\x1e\x97\x8b\xee\x7f\x3c\x54\x34\xcd\x63\xab\x0a\x5b\xed\xb5\x6d\x55\x85\x05\x28\x71\x0e\xe0\xc6\x71\x20\xf2\xcb\xc4\x58\x9a\x67\x34\xf3\x14\xc1\xdb\xea\x11\x7e\xb6\x2b\xfd\x33\x5c\x08\x34\x7a\x89\x8e\xb4\x77\x03\xaa\x0e\xc1\x5d\x2a\xa2\x1c\x29\x0a\x0d\xc0\x43\xa5\x71\xb7\x08\x73\x23\xa8\x40\x13\x67\xd7\x79\xdd\x3e\xd3\x70\x44\xe5\x56\x0f\xf6\x69\xb3\xee\x7c\xaa\xd1\x52\x94\x34\x67\x30\x14\x2f\x70\x8d\x02\xe3\x5b\x96\x2c\x47\xa4\xac\x63\x26\x7b\xae\x61\x63\xb9\x95\xbe\x6e\x6e\xbf\x7c\x6e\x29\x33\x17\x2a\xfe\x07\x54\x3b\xa6\x51\x72\x43\x14\x75\xa2\x49\xb0\xdf\xef\x96\x3f\xd5\xdb\xeb\x6e\x0d\x17\x72\x55\xe3\xdd\x3c\xd5\x54\x61\x75\xe6\x79\xbd\x7a\x58\x86\x89\xd4\x4c\xc5\x56\xe4\x1c\xab\x1d\xf8\xcd\x6f\xa6\x1b\x60\xaa\xb9\x94\x63\xe9\x90\xa5\x40\x34\x77\x83\x3d\xd3\x4f\xa5\x87\x9d\xcf\x61\xbf\xff\xc2\x9d\x48\x21\x8b\x64\x3c\x64\x6c\xdf\xbc\x15\x47\xe4\x2c\xf0\xa2\x23\xd7\x77\x25\x00\x86\x2e\xcf\x43\x55\x95\xab\x52\xf9\x3b\x37\x24\x25\x36\x45\x5e\x1d\xa1\x5c\x3c\x85\xbf\xc7\xc0\x5c\xa1\x74\xf7\x5a\xb5\x3b\xdb\x3a\xd2\x6f\x46\x26\xe3\xd8\x5e\xe1\x03\xb0\x35\x58\x96\xd5\x6a\x14\xfb\xa7\x46\x8a\xc0\x4c\x82\x5d\x08\x93\x4f\xd0\xa8\xc4\x13\xdb\x28\xc0\x50\xc8\xaf\xb1\x2c\xe2\x16\xb5\x58\xe8\xa1\xd6\xc7\xaf\xeb\xbb\x59\x04\xb1\xf0\xf2\x16\x5e\xcf\xc3\xce\x6a\x73\x5b\xd5\x6b\x31\x6e\xbc\x23\x19\xd1\x89\x2f\x54\xd8\x52\xf2\x75\x04\xe3\xe4\x2a\xc4\x48\x4c\x26\x8f\x74\x05\xdc\x31\x9a\x33\xcc\x94\xb8\x94\x9e\xcd\x77\x5e\x3f\x0d\xcd\x39\xee\x3f\x08\x49\xd0\xc5\x47\x78\x74\xc6\x25\x02\x7e\xf7\xa2\x69\xad\x1b\xe4\xc4\xe3\xfa\xad\x24\x63\x29\xc4\x2e\x13\xb9\x6b\x5a\xd1\xf6\x3f\x56\x09\x52\x6d\xdb\xce\xda\xd3\x61\xb6\x1a\xcf\x79\x16\x47\x29\x24\x3e\xbe\x5e\xd4\x81\x2a\xba\x3b\xa2\xb8\x4b\xd5\x6e\xc4\x1e\x36\xd5\x7e\x92\xf6\xca\x12\x62\xa3\xe9\x43\x67\x11\xce\x8e\x38\xf2\x7b\xa1\xa1\xba\x13\x07\xe8\xb1\x58\x97\x0f\x9b\x74\x31\x9f\xb5\x35\x2d\xa8\xf6\x2d\xe4\x97\xb3\x44\x4a\x04\xb8\xcd\x9e\xe6\x3b\x31\x16\x61\x21\x19\x97\x0c\x43\x89\xe6\xad\xfa\x44\xfe\xa2\xab\x9c\xa1\x24\xe3\xc6\x6a\x00\x61\xb9\xe9\xb6\xaa\x41\x89\x3e\xb9\xe7\xb1\x74\x59\xaa\x00\x55\x0e\x5f\xc5\xc1\xb2\x8a\x96\xde\x70\x65\x19\x8f\x30\x15\xab\xaa\x83\x2c\x4a\x58\x5c\x6b\x45\x25\x59\x96\x49\x17\x0a\x5b\xf0\xc6\x06\x73\x55\x96\x5a\xcd\x9f\x29\x8f\x19\x7a\xf3\xc1\x83\x59\xb5\x70\xb8\xe6\xfa\x7d\xb1\xba\x72\x69\xbb\x59\x54\xb5\x3f\x1d\xca\x7a\x28\xec\x32\x19\x29\xa2\x04\xab\x64\x3b\x59\x68\x6c\x9e\xdf\x0c\x24\x8d\xae\xa7\x6e\x32\x41\xc0\x91\xab\x62\xa2\xcd\xb9\x79\x17\xd0\xea\xc9\xaf\x64\x96\x46\x9e\x0b\x1f\xbf\x10\x8a\x79\x99\xc9\x4b\x50\x49\x9a\xf6\x7c\x22\xfe\x4d\x75\xaf\x33\x44\x0f\xd3\x2a\x6f\xa6\x64\x86\x10\xcf\xbb\x02\x05\xf6\x7b\x2d\xfa\x2f\xec\xf0\xe4\xc6\x14\x70\xed\x22\xb9\x81\xc7\x18\x0a\xf4\x7d\x37\xac\x73\x1c\xdd\xcf\x34\xd0\xcc\x51\xd6\x04\xaa\x0f\x2c\x7e\x5c\xdc\x1f\x08\x62\xbb\x45\xa1\xf6\xfd\xe1\x24\x33\x22\x57\x5e\x92\xaa\x6a\x6f\x0a\xc4\x0f\x8f\x24\x9f\x26\x6f\xca\x48\x82\x75\xe8\x53\xd9\x54\xfb\x29\xe8\x2b\x8f\x98\x4d\xd0\x3d\x88\xff\x74\x37\x12\x14\xd0\x49\x1e\xa9\x1c\x61\x4d\xa7\x52\xd9\x3c\x98\x93\x7a\xed\xab\x80\xfd\x40\x2c\xa5\xa8\xb3\x0a\x1f\x4f\x1e\x41\x6e\x75\xd0\xbc\xb4\xbb\x8d\xa6\x5f\x1a\xb8\x54\x33\x70\x3f\x21\xb9\xf0\x02\x28\x3f\xaa\xfa\x7d\x12\x9c\xe7\xc4\x00\x06\xe7\xb7\xb7\x73\x7f\x11\x9a\x0a\xed\xb2\x88\x0b\xd8\x63\xa6\x44\x0f\xe5\x3f\xdc\x30\x16\x71\x6c\x64\xb4\xdc\xe8\x6d\x0f\x66\xcd\x19\x31\x98\xef\xfb\xf3\x0e\x67\xf3\xcd\xcf\x8e\x83\xa1\x36\x61\x1c\xd7\x68\x75\x7f\x8c\x3a\x32\x7e\x99\xa8\xcc\x59\x96\x60\x6b\x40\x09\x9f\x58\xca\xb8\xbe\x39\xe6\x31\xc9\x75\x80\xfd\x1d\x8b\x29\xc7\xac\x1f\x15\x87\x06\x31\xdb\xb4\xf4\x65\x23\x2c\xc9\x63\xa1\x50\x7f\x63\xe7\xc1\xfb\xa3\xbe\xcc\x8b\x4e\xbb\xbf\xe9\x88\xbb\x93\x27\x2a\x25\x9d\x85\x11\xaf\xa2\x28\x9b\x76\x77\x1c\xb1\x78\x92\x9c\x53\x8b\x4e\x7d\x5e\x2f\x11\x61\xf2\x30\xfb\x7d\xf5\xf0\xf2\x30\xe6\x74\x26\x39\x17\x0a\x3f\xbd\xf5\x49\x16\x63\xb4\x5c\x9e\xe6\x14\x77\xb1\x40\xd8\xe8\x5b\x8f\xaf\x4f\x73\x2a\x04\x06\x03\xff\x9c\x3d\x2e\x66\xe1\x1c\x52\x8a\x9e\x32\x7a\x2d\x6a\xcf\x42\x7c\x7d\x76\x33\x66\xf5\xbf\x2c\x78\xcf\xab\x9e\x1c\xbb\x25\xef\x4d\xc2\x17\x7b\xff\x5f\xcc\x56\x06\x0c\xd7\x97\x95\x77\x18\x9b\xac\x3c\x8f\x52\x47\x17\xf3\xd3\x05\xa5\x57\xfd\xbe\x3c\x57\x02\x91\x53\xb3\x83\xac\xab\xe6\xd4\xf4\xd4\x32\x24\x17\x69\x1e\x6b\x2f\x14\x52\x1d\x56\xcd\x1a\x84\x1e\xb7\xb5\x84\x0f\x48\x65\x0c\xa3\x31\xe5\xb8\x66\xaf\x6f\x67\xb9\xca\x72\xd3\x17\xa1\xba\xfd\xac\x78\x2d\x2d\x23\xeb\xe4\xbb\x52\x42\x18\x4b\xb1\x89\x55\xaa\xeb\xeb\x5b\x81\x42\x40\xd7\x62\xf3\x6d\xa6\xde\x07\x68\x97\x5c\x99\xc4\xd8\xde\x96\x56\xbd\x4d\x59\x2f\x2f\xda\x6a\x49\xae\x29\x47\x53\x65\x49\xae\xa6\x86\x4c\x77\x5f\xb9\x6b\xa1\x34\xed\xea\xcb\x40\x33\x0c\xe7\xd8\x52\xb7\x58\xcf\x7e\x84\x53\x24\x24\x8f\xfb\x5c\xfa\x20\x83\x90\x03\x07\x2c\xcc\x9c\x1a\xa8\x2d\x98\xc4\xf1\x1e\x39\x3b\x31\x9e\x18\x90\x0a\x8b\x29\x77\x96\x96\xc8\xb2\x99\x80\xbe\xb9\x14\xc4\x72\x3f\x30\x09\x04\x01\xcd\xe5\x4f\xd5\x77\x85\xe5\x46\x48\x64\x1d\x13\x5a\xfb\xfe\x6c\xec\xad\x53\xc8\xfc\xee\xb2\xdd\x43\xb6\xbc\x30\x5d\x46\x71\xf4\xd2\xa4\x50\xef\xa7\xe3\x0e\x1c\xef\xc7\xa6\x15\x9b\x56\x5e\xbf\x0f\x11\x45\x86\x6b\xac\x14\xee\xf7\x55\x3b\xd1\xef\x23\x82\x50\xc2\x3d\xc5\x8b\x93\xde\xd3\xda\x61\x85\x7b\xbd\x09\x22\x88\xce\x70\x61\x6c\xd4\xdb\x01\xd4\xfb\x7e\xd8\x79\x4e\x04\x25\x09\x76\xa6\x0d\x10\xca\x7f\xcb\xa2\x0a\x4a\x53\x34\x6c\x87\x56\x8f\xd0\x44\x82\x32\x83\x02\xd7\xfb\x4a\x68\x0b\x71\x05\xed\xbb\xec\x9a\x4b\x99\xf9\xf0\x3c\x34\xce\xb1\x78\xf2\x4f\x51\xaa\xea\x3d\x9c\x2d\x49\x90\xba\xe0\xa3\x6a\xbf\x10\x88\x19\x6c\xe7\x82\xba\x42\xb2\xeb\x28\x0b\x2d\x25\xfe\xb0\x8e\x52\x3e\xee\xc3\x78\x2a\xf7\xe7\xbe\xec\xb1\x09\x61\xaf\x60\x82\x66\xb6\x59\xea\xb8\xaf\xce\x0b\x5b\xc1\x72\x95\xe2\x5f\x72\xcd\x11\x91\xa8\x18\x37\x1b\xeb\xf9\x0f\x99\xb2\xc6\xe3\xb8\x53\x04\x3d\x56\xed\xae\x1d\xc0\x62\x04\x4f\x00\xb3\xa0\xda\xb5\x40\x77\xcb\x6b\x59\x86\xc7\x48\x09\x8b\x58\x0f\xa7\x44\xd5\xab\xfb\x3f\x8e\x57\xfa\x37\x45\xca\x73\xe4\x4c\xd3\xa0\x2a\x0d\xd3\x83\x92\x62\x6c\x3c\x54\xf9\x5d\xa9\xea\x8b\xa7\xca\x73\x85\xe8\x23\x68\xdf\x9c\xb3\xe8\xbf\x0b\x21\xba\x4f\xd8\xa6\x01\xec\x83\x62\xc5\x87\x84\xc3\x99\xce\x59\xdf\x4c\x79\x0b\xde\x62\x0a\x99\x59\xd0\x40\x1f\x23\xfd\x9a\xaf\x81\x08\x1d\x65\x32\xf1\xbc\x1c\x47\xa8\x51\x1f\xea\xfa\x6e\x24\x74\x9c\xa1\x9d\xf0\xdb\xdf\xf3\x72\x3d\x5f\x3e\x6e\x67\x77\xcb\x9d\x2f\xa1\x09\x0d\xe0\xa5\x43\x5e\x5e\x56\x8b\x78\x50\x89\xf0\xd1\x82\x00\x09\xb8\x37\x34\x6d\x75\xdc\x40\x70\xca\x84\x71\xfd\x8b\x45\xd9\x6d\x6d\x8d\x0d\x7b\x66\xa5\x5e\x14\xc6\x14\xea\xb4\x6f\xcf\x61\xa4\x4e\x84\x2d\x84\x96\xe7\x99\x52\x17\xad\x8b\x92\x50\x82\xaf\xe2\xa9\x84\xce\x2a\x3f\x95\x70\x03\x23\x55\x30\x22\x89\xd4\x38\x57\xdf\x4e\x07\x51\x5a\x0e\xf9\xaf\x2a\x4b\xe3\x73\xd3\x48\x23\xc5\x5b\x0d\x6d\x5d\xc0\x07\x0c\xb3\x5b\x92\x4a\xe9\xa1\xb9\xdf\xc4\xde\xdc\x17\x06\x86\x9c\x93\x6e\x14\x4b\x08\x42\x05\x1e\xce\x36\x9f\xec\xff\x2c\x33\x0c\xca\x90\xcc\xdf\x7f\xe3\xdd\xe9\x1d\xa4\x7d\x57\x9d\xbe\x30\xb2\x32\xe6\x9a\x3b\x42\xe1\x6f\xa7\xb2\x85\xfa\xbe\x50\x10\x04\x9b\x88\xe4\x89\x6d\xfe\xb1\x61\xef\x5a\x94\x5f\x36\x9b\xfa\x1f\xf0\x8c\xd9\x29\x6e\xda\xba\x3a\x83\xbe\xa9\xc2\x02\x95\x3c\xb7\x6f\xea\x0a\xfc\x6e\x58\xd9\x92\xdc\x64\x48\xaf\xf5\x86\x49\xd7\x27\x63\xd4\x9b\x28\xca\x6b\xd8\x8e\xe1\xaf\xd2\x24\xa6\xb8\x2d\xc8\xe6\x41\xfc\xfc\xed\x0a\x3c\x40\xa6\xb9\x13\x6c\x2f\xbb\x79\x29\x3e\x60\x48\xce\x36\x20\xe2\x20\x32\x75\x5a\x36\xb7\xc5\x07\xb8\x1d\x6d\xb4\x0c\xb2\xd4\x44\x7a\x80\x86\x75\x21\xce\x28\xe5\xe3\x87\x2a\xcb\xed\x57\x62\xb6\xcf\x9f\x20\x67\xae\x81\x6d\xfe\x64\x2c\x0f\x01\x92\x3a\x4d\x3a\xa0\x65\x1e\x4b\x65\xd5\x8d\x3f\xa0\x3e\x56\xd5\xfe\xa3\x59\x57\x07\x11\x0e\xa7\x2c\x77\x55\xde\x67\x71\xee\x19\x1e\xc2\xe1\x98\x25\x83\xb6\xd1\xf1\xbc\xc5\x4e\x6c\x3d\xf3\xa3\x33\x65\x89\x96\x4e\xe7\x0d\xb6\x47\x5e\xcb\x3b\xfb\xb1\x8a\x23\x1e\xff\xd4\xc0\x4d\xd5\xb6\x5f\x75\x8f\xc9\x5c\xe5\x38\x8f\xdd\x39\x41\xb4\xbf\xf0\xd1\xa5\xa0\x14\x01\xc6\xf7\xa7\xf7\x0d\x7c\xc0\x28\x57\x29\x05\x63\x98\x9c\xf9\xd1\x39\x46\xf7\xa2\x69\x7b\xba\x65\x22\x45\x96\x23\xb0\xee\x71\x33\x1f\xbe\xd0\x89\x3b\x24\x25\x8d\xb9\x2d\xb1\xab\xaa\x74\x9c\x88\xfe\x50\xae\xb0\x57\x4e\x8a\x06\x06\x7c\xea\x44\x2a\x22\x10\x85\xe3\x7a\xc2\x47\x7a\x66\x44\x2a\x4a\xad\x44\x50\x85\x1f\x4f\xf8\x33\x57\x89\x65\xb9\x70\xa1\x5e\x33\x2d\x4a\xfa\x81\x12\x10\x1b\xf4\x5a\x55\x7a\x7f\x9a\x7a\xc3\x52\x13\x0a\x58\x46\x9c\xad\xee\x97\x8b\xdd\x66\x3b\xdb\xbe\x6c\xfc\x45\xb4\xca\x11\xa9\x7a\x2a\x0d\xc2\x09\x46\x1a\x8f\xe3\xf3\x40\x66\x4b\x39\x01\xd6\xf6\xee\xb8\x74\xff\xa6\x07\xef\x4f\x23\x89\xee\x81\xfb\x3e\x7a\xf8\x9b\xbf\x55\xd4\x57\x93\x02\xb4\xd9\x92\xf9\x05\x45\x9d\x30\x32\x46\xef\xee\xdf\x08\x61\xbe\xf3\x79\x1c\x09\x5a\x69\x35\xe8\xa0\x5a\x1e\x3a\x8f\x00\xbe\x80\xd1\x4b\x43\x33\x9a\xff\xed\xb2\xdf\xdf\x8b\x5d\xa4\x89\x73\xac\x28\x1c\xf7\xd5\xb4\x6a\x2c\x4d\x6a\x85\x9c\x3d\x0c\xf0\xb6\x33\x27\x78\xd9\x91\xa5\x37\xb9\xa2\xbd\x56\xd1\x73\x55\xed\xa7\xcb\xd4\x68\x85\xc2\xaa\xcf\xa2\x85\x12\xb3\x30\x2e\xa1\xf5\xc5\x83\x02\x27\xd2\xa5\x7e\x67\x5a\x8f\x58\xa2\x27\x77\x68\xc0\x0a\x01\x69\x6d\x4b\xce\xed\x2f\xeb\x27\x2a\x8a\x6c\x8e\x1a\x41\xc9\x8f\xa7\xc3\x02\x44\x00\x64\xab\x88\x66\x90\x0e\x0c\xe0\xcb\x7a\x92\xd8\x54\x51\xc6\x10\x69\x6a\x9f\x74\x55\x9a\x3d\xce\xc6\xa0\x07\x49\x11\x43\x91\x41\xf4\xdf\xd9\x72\xfe\xb4\x7a\xf4\x7f\xa6\xca\x32\xd8\xbd\x42\xfb\xad\xfa\x7c\x38\xa9\xb7\x97\xb2\x2d\xf6\xdf\x44\xad\xfb\xfe\x56\x45\xc1\x02\xe4\xec\x72\xdc\x89\x5d\x09\x9f\xbb\x83\x45\xc4\xfd\x9f\x16\xb6\x62\x32\x35\xae\x6c\x3a\x7f\xc3\x8e\xb8\x1b\x28\xc1\x14\xaa\x10\xd3\xce\x2d\x95\x50\x8e\xfe\xfe\x66\x48\xc8\x3c\xd8\x86\x54\xc2\x29\x92\x9b\x7f\x17\xa5\xd0\x45\x68\x91\x51\x9c\xb0\x68\xd8\x29\xfb\xb5\xab\xef\x7f\x90\x10\x9c\xbf\xaa\x84\x7f\x9f\x44\xdd\x42\xbd\x2a\x2d\xc6\x2e\xbc\x04\x2e\x32\x0c\x1b\x30\x12\x6a\xc5\x2b\x94\xb7\xe2\xab\x94\xaf\xe2\x52\x65\x3d\x3b\xf8\x55\xe2\xce\xf1\x0d\xa4\x71\x86\x7b\xcf\x16\x73\x85\x43\xce\x42\xa2\x52\x4e\x59\xe0\x08\x1a\xcc\x56\xcf\x41\x4f\x54\x0a\x32\xb3\x5a\x35\x58\x1d\x15\x45\x48\x32\xa9\x9c\xd8\xd4\xf6\x27\xc8\xbb\xc2\xb4\xf7\x45\x09\x03\x83\xae\xf2\x24\xc9\xa5\x97\xf6\xa9\x65\xd1\x36\xbb\xa3\xe5\xa1\xdc\x55\xc7\xfe\x26\xf2\x5c\x5a\xed\xf4\xe6\xb5\x81\xb2\x47\xbc\x29\xa1\x08\x22\xf0\x1c\x0b\x58\x33\xe4\x38\x24\x4a\x26\x02\xbf\x03\x64\xb6\xb5\x74\xf2\xc3\x8d\x48\xa9\x24\xc5\x88\xcf\xcb\x9b\x3c\xe9\x7e\xc6\x75\xc2\x33\xcf\xba\xb4\x45\x3d\x99\x21\x2c\x41\xe9\x34\x41\x0f\xed\x58\xc3\x47\x68\xfd\xf3\xc7\xf2\x48\x46\x41\x51\xfd\x8f\x2f\xde\x92\x76\x46\xf6\x15\xda\x9b\xf3\x03\x34\x97\x84\xe7\x93\xf1\x9a\x5a\xb3\xd8\xc5\xd3\xb3\x52\xaf\xab\xc0\x46\x4d\x14\xa8\x94\xf4\x50\x10\x57\x1f\x98\x17\x35\xe2\x57\x2e\xb0\xb6\xca\x70\x4d\x54\x68\xaa\x84\xf6\x8d\x46\x24\x73\xe7\xd2\x11\x4d\xd1\x3b\x68\x6b\x94\x59\x38\x87\xbf\x0b\x8d\x3d\x63\x41\x79\xe6\xe4\x89\xf2\x2f\x6e\x56\x13\xc2\x88\xe5\x85\xd3\xcb\xd2\x8a\xe2\xf8\xd3\x10\x4e\x5c\xa3\x61\xd1\x36\xcf\x63\x02\x6a\x37\x84\x49\x81\xd2\x99\x3e\x4b\xdc\xf9\x82\x76\x5f\x9d\xd5\xb5\x38\x4f\xa3\x7d\xcd\x74\x2a\x6c\x9c\xf9\x72\x7c\xad\x85\x1e\x41\xa1\x35\xd3\x79\x44\x47\x5a\xcb\x36\x4a\xae\x57\x8b\xf1\xb4\xe8\xd8\xe5\x83\xad\x21\xbb\x13\xcd\xbc\x0a\x8b\x5c\xc7\x39\x88\x2c\xbc\xd5\xaf\x32\x8a\x6e\x70\x42\x34\xc2\xaf\x37\xff\xfa\x63\xf3\xc3\xb3\xdc\x13\x9d\x24\x39\x1b\x21\x8b\x9e\xab\xea\x0d\x43\x9c\xf1\x8d\x24\x59\xa2\x85\x13\x1c\x80\xdf\x26\xa7\x36\x14\x7b\xd9\x0f\x45\x79\x03\xed\x26\x68\xc4\x13\xcd\xa3\x88\x06\x09\xfb\x53\xdd\xc0\x6a\x71\xdd\xe2\x68\x4e\x6c\xfb\x0e\xf6\xba\x62\xeb\xf0\x72\x3d\x4f\x29\xf9\x63\x1e\xce\x95\xe5\x46\x0c\x36\xe1\x61\xd3\xae\xe6\x99\x4c\xe2\x5e\xc1\x77\x5e\x95\x0d\x5c\x51\x6f\x1c\x3f\x13\xd7\xcc\xf5\x48\x3a\x89\x7b\x4c\xc9\xfb\xeb\xa5\x2e\xb5\x8a\x69\xdb\x67\x71\x5e\xf4\xd8\x35\x9d\x11\x8b\xa4\x80\x9f\x45\x7b\x73\x3a\x0f\x01\x0f\xfd\xe9\xf3\x98\x62\x9f\xf0\xce\x16\x41\x30\xbc\x69\x60\x0b\xf5\xa1\xb9\x0e\x7a\xd0\x79\xaa\x30\x47\x74\x07\xd8\xcb\x77\xee\x3e\xa8\x2f\xe6\x4b\x90\x98\xe5\x1e\xfd\x34\x3e\x8b\x88\x39\xd6\x29\xfe\x53\x15\xe5\xa2\x16\x9f\x93\xdb\x92\x24\xc5\x64\x6c\xc8\x47\x07\xf4\xe0\x64\x9c\x54\xc8\x70\x72\x3f\x5b\xdf\x2d\x77\xcf\x2f\xeb\xf9\xb7\xd9\xc6\x03\xf6\xb5\x34\x8a\x99\xfe\xf3\xb6\x7a\x5a\x83\xda\xfa\x84\x90\x44\x2b\x1e\x63\x67\xd0\x7d\xf5\xea\xdb\xe9\xbe\x82\x6e\xfa\x5f\xe8\x74\x90\x34\x1e\x98\x68\xad\x33\x8d\x6f\x66\x01\x3f\x67\xfb\xe3\x9b\x08\x7f\x37\x39\x12\x77\xec\x42\x64\x74\x18\x42\xab\x27\x6f\xdf\xc4\x1c\xf1\x87\x0b\xd1\x0e\xd2\xa0\xda\x24\x2a\xf6\x68\x96\xd2\x39\xd7\xb6\x83\xf3\x0b\xce\x37\x6d\x84\x32\x7d\xad\xeb\xe6\x54\xec\x75\x51\xbe\xa2\xb4\x0e\xd4\x1f\x93\x54\x7f\xf6\xdf\x24\xfa\x9f\xe9\x7f\xf9\x13\x69\x01\xce\x51\xbd\x10\x3e\x22\x10\x11\x86\x6e\x6c\x2d\x4a\xfd\x58\xf5\x91\x00\x44\x9c\x62\x64\xb9\x83\x43\xd1\x76\x8e\x8a\x12\x47\x9f\xf7\x1a\xab\x01\x12\x88\x4c\x6a\x99\xa7\x3f\xcf\x47\x98\x57\x7a\x92\x43\x06\x12\xa5\xa9\xed\x3b\xb0\x09\x0d\x4b\x7c\x21\x90\x51\x75\x63\xf7\xb9\x5f\x7e\x53\x40\x0c\x78\x1d\xa4\xdb\x1a\x60\x51\x94\xd5\xa8\xf0\x0a\x94\xc4\x58\x60\x29\x1a\x04\xe4\x5d\x5f\x7c\x40\x13\x8d\xaf\xb2\x3c\x1d\x5c\x8b\xff\x80\xec\xdf\x8d\x61\x89\x25\x39\xf3\xba\x75\x63\x20\xfd\xc0\xaf\x07\xc6\x23\xa4\x21\xf3\x5c\x25\x25\x72\x2e\x9c\xc4\xbe\x77\xe9\x80\xa9\x3c\xf6\x69\xa0\xe2\x2b\xe6\x22\x60\x26\x12\x6e\xd4\x75\x86\xfb\x61\xa2\x7c\x9a\x32\x87\x98\x46\xf8\xd1\x3a\x8c\xc3\x80\xbb\x06\xe2\x9c\xc5\x2e\x58\x9d\x36\xb0\xfb\x11\x82\x62\x76\x14\x7e\x1e\x8b\x1a\x42\xc7\x52\x7f\x6f\xb1\xd1\x74\x80\x96\x59\x36\xaa\xae\x3e\xaf\x2f\x7e\x48\x58\x8e\xe6\xdc\x83\x36\x7e\xd4\x55\xf9\xea\x66\x30\x20\xf7\xfc\xbd\x25\x26\x31\x36\x42\xdd\xf7\x24\x42\xc0\xa3\x04\x8b\xf5\x83\xdd\xd2\x21\x2d\x27\x50\x01\xe0\xc0\xb1\x5a\xb6\x08\x89\x99\xbd\x50\xef\x76\xb3\xbe\x7e\x7b\x29\xb7\x34\xfc\x1a\xca\xf3\xcd\xd9\x17\x13\x7f\x73\x1c\x15\xf6\x9f\x30\x94\x53\xe9\xc9\x20\x6c\xae\xd4\x49\x38\xda\xf6\xdf\xf1\x24\x66\x99\xc9\xfd\x73\xef\x22\x6b\x02\xb1\xb2\xb5\x53\x48\xc9\x75\x1a\xee\xfa\x90\x01\x60\xc2\x6d\xfb\xf4\xfb\x76\xe8\x82\x42\x4e\x40\xb8\x7d\xad\xfb\x52\xa7\x1d\xb3\x6e\x94\xe0\x80\xfe\xd4\x30\xbb\xda\xad\x18\x7f\x5c\x52\xc0\x10\xfe\xe5\x71\xb5\xb5\x88\x97\x07\xdb\x55\xfe\xdb\x85\xc2\x31\x01\xc9\x32\xc6\x43\xc9\xf1\x3f\xa0\x3c\x64\x6a\x32\x2c\x25\xca\x7d\x7f\x1b\x27\x4a\x39\x28\x9c\x80\x14\x49\xe2\x3c\x8f\x07\x68\xc5\x50\xd5\xc6\x8d\x50\xca\xa6\x57\x8b\xe6\xbe\x7a\x9d\x24\x75\x40\xd3\x28\xb7\xdc\x9e\x87\x42\xf5\x11\x19\x68\x96\x32\x4f\x16\x33\x64\x25\xbb\xba\xcd\x81\xce\x22\x84\xea\x6d\x96\x4f\xa3\x59\xd5\xc2\xb2\x46\x58\xd6\xa0\x59\xd3\x40\xd3\x0c\x5a\xee\x40\x1b\xb0\x1e\xee\xae\xb1\x3c\xfe\x4f\x66\xd9\xbe\x3d\xd7\x95\x29\xda\x09\x85\xc6\x64\x3d\x19\xca\xb1\xbe\xd9\x1c\x85\x82\x99\x41\x93\xde\x7d\x62\xe1\x01\x0c\xe7\xb6\x09\x1d\xb7\x1a\xf0\x42\x7c\x04\x8c\x23\x22\x6e\xa0\x5d\xd6\x8a\x46\xeb\x41\xfc\x32\xb9\x86\x4a\x1d\xb3\x54\x53\xed\x3f\xc0\x2d\xda\x2b\x40\xa5\x30\x3e\x8b\x86\xab\x03\xeb\x6e\x5f\xd7\xdb\x4c\x14\x69\xd1\xbd\xba\xa7\x87\xd5\xf7\xd5\x08\xd8\x69\x08\x4d\xb1\xe8\xba\x43\xc3\xb2\x6b\xab\xf7\xfe\x10\x8b\xd1\x6b\x7a\xfa\xaf\x35\x88\x3d\xa0\xfb\xd6\x8c\x7f\x9c\x50\xe6\x00\x10\x63\x12\x90\xf1\xf3\x19\x92\x5a\xf6\xd1\xa1\xa8\xfb\x74\x48\x96\x21\xdb\x92\xdb\xb2\x6b\x98\x84\x7a\x7e\x98\x4a\xb0\xa4\xfc\x21\x4e\xfb\x76\xd4\x0b\x6e\x88\xb6\xe9\xd7\x6e\xfb\xd8\x8b\x0b\x08\x9e\x1b\x45\x55\x66\xa5\x60\x85\xb6\x0c\x5f\xdb\xea\x11\x3e\x47\x5a\xb2\xd7\x43\x16\x43\x35\xa0\xd1\x6a\x8e\x5f\xf6\x4d\x1b\x16\xc5\x08\x7c\xe8\xb6\xd3\xce\xc8\xcf\xf4\x15\xee\x5e\x3f\x36\xd5\x66\x2c\xe5\xae\xaa\x2f\xcb\x3d\x86\xa9\x28\x72\x1b\x3c\x66\x7c\x1f\xc4\xcf\x67\xa8\x31\x6d\xf2\xc5\xe9\x15\xa7\x10\xba\xab\x7e\x0b\x7f\xb5\xe2\x0c\x8e\x38\xfc\xa7\xed\xc1\x1e\x40\xda\xfe\x12\xc5\x3b\x7a\x1d\x31\xb3\x42\x3c\xaf\x27\x29\xa1\x1e\x7c\x70\x26\xa1\x96\x04\xbc\x28\x8b\x76\xd9\xbe\x8d\x7b\x82\xc7\x93\x96\xc4\x22\x75\x80\xb1\x47\xf8\xd9\x76\xae\x74\x8d\x6d\xd3\x17\x15\x6d\xc3\x49\xc6\x1d\xd8\xda\x75\x3b\x2d\xe0\x58\x83\x43\xf5\x4d\x6f\xf5\x97\x35\x48\xc3\xb9\x56\x7d\xf9\xa8\x9b\x49\x8b\x46\xba\xbe\x84\xb9\x8c\x31\x31\x77\x38\x07\x48\xe0\x30\x41\x66\xd2\x88\x60\x49\x02\x05\x99\x2d\x4c\xc3\xd5\x81\x2e\x6e\x63\x7c\xe2\x34\x72\x2c\x6c\xd0\xaa\x37\x97\xa8\xbd\x90\x63\x0c\x5f\x72\x4a\x09\x52\x27\x7c\xbb\xbb\x1d\xb5\x79\x98\x94\x6b\x9c\x19\x1f\x90\x20\x70\x6f\x5b\x0d\x71\x94\x26\xa3\xc4\xba\x81\x36\x69\x3f\x17\xcd\x9b\x14\x7d\xfa\x76\x32\x3f\x99\xd2\x08\x01\xf4\x46\x66\xb9\xfd\xb6\xad\x26\x59\x3f\x93\x41\x4e\x7c\xfc\xbb\x85\xa6\x45\x90\xef\x19\xe9\xad\xbf\x5a\x98\xb9\x12\xe8\x25\x5b\xf4\xdf\x5d\x5d\x9d\x8e\xd7\x89\x57\xa6\xa5\xda\xbf\xfa\xf7\x12\x5f\x6e\x72\x88\xbc\x47\x7e\x41\x79\xe0\x86\x08\x00\x4c\x04\x94\xd5\x76\x02\x5c\x70\x03\xa4\x60\xa9\x1e\x70\x36\xdd\x78\xf2\xa3\xe9\x38\x6d\x50\xc3\xed\x55\x1c\x60\xd5\xcc\xfd\x57\x3d\xf1\x68\x8c\x62\x29\x22\xc2\x1f\xaa\xb2\x7d\x3b\xe2\x06\x04\xa1\x80\x63\x14\x4f\x90\xd0\x1c\x9b\x61\x6f\x8a\xba\x7d\x9b\xfe\x3c\x8d\x30\xe8\x5e\x88\xf2\xfd\xb4\xd3\x70\xf0\x9c\x76\x46\xa7\xc4\x53\x51\xe0\xfa\x9b\xb9\x8e\x77\xbd\xad\xb0\xaa\x56\x55\x93\xc0\xdc\xe8\xcc\x10\x19\xf8\x46\xde\xa1\x6c\xba\x17\x8c\x42\xf0\xe1\xa4\x82\x23\x54\x11\x25\x88\x6c\x39\x6d\x82\xac\xfa\xe2\x2d\x6b\x63\xfb\x74\x2c\x8a\x7d\x01\xa1\x8e\x6e\x20\x21\xe8\x00\xd5\x55\x35\x50\xb9\xf1\x07\x15\x13\x96\x6f\x15\x44\xbd\x39\x56\x9d\x2d\xe8\xbe\xb5\x7f\x56\xd2\xc7\x13\x97\x6d\x5c\xd3\x8f\xc4\xa4\x04\x3f\x29\x5b\x7d\x1f\x7b\x14\x7e\x48\x46\x70\x6f\x0e\x59\xa5\xaa\x1c\xb5\x7c\xd2\x28\xca\x53\x5c\x17\xb3\xf2\x15\xf6\xbd\xe8\x0a\x76\x00\xb8\x21\x84\x50\x8c\x22\xc0\xe5\xf4\x17\x50\x9e\x97\x3f\xa1\x56\x45\x03\x4f\xc7\x81\xba\x39\x8d\x48\x42\xa2\x20\x50\xe2\x48\xad\x2e\xab\x92\x7e\x30\x8f\xb2\x5e\x0f\x68\x81\xb0\x01\xab\xe6\xf1\x26\x7c\x43\x51\xe6\xc7\xa6\x20\x2d\x49\xbb\x69\x63\xfe\xdb\xe4\x44\xda\xa6\xfd\xdc\xa6\x8a\x09\xef\xba\x18\xa6\x0d\x69\x44\x63\x8d\x28\x44\x53\xd5\x0a\x02\x4a\x6a\x48\xcc\x4f\x23\xca\x29\x1a\x3f\x1f\xf6\xdf\x8b\xb2\xcf\x22\x87\x90\x65\xe4\x74\xd0\x88\xa6\x8a\xf4\xe8\xa3\xf9\x3f\xb7\x20\x0e\x63\x6e\x6c\x37\x90\xc5\x5c\x71\xcf\x8b\x5f\x1d\x5d\x49\xb1\x77\x3d\x69\xc4\x4c\x84\x1c\x33\x0f\xb3\xdf\x77\xab\xc7\xef\xcb\xcd\xf6\x61\xf9\xb8\xdd\xec\x6e\x96\xb7\x4f\xeb\xe5\xee\xe1\xe5\x7e\xbb\xda\xac\xee\x5c\x2f\x84\xbf\xeb\x38\xd2\xe0\x02\x41\x04\xc4\xdf\x54\xa2\xd6\x0f\x00\x2d\x42\xff\xc2\x20\xbb\xab\xdf\x14\x6d\xa3\x6a\x80\x72\x44\xe3\x9b\x5d\xf9\xdf\xd1\xec\xc5\x4c\x62\x48\xba\x58\x7d\x5f\x2d\x7c\xf3\x05\x8d\x92\x3c\xb3\x4a\xb0\x41\xa7\xfe\x9a\x8d\xa5\x11\xe7\xe0\x89\xfa\x5c\xc7\xdb\x10\x0e\x43\x23\x9e\x65\x91\x1c\x6a\xde\x56\xb6\x29\x4a\x57\x1e\xb4\x49\xa3\x34\x56\x8c\x8c\xbc\xfb\x07\xb4\xbe\x43\xc7\x99\x46\x69\x22\xb0\xa2\xf9\xea\x19\x0f\x26\xdd\xbe\x34\x4a\x55\xe6\x33\x8b\x9b\x93\xec\xce\x83\xe5\x96\x9b\xf3\x4a\x4f\x96\x55\xaa\xa9\x8f\x45\x3f\x50\x16\xdb\xdf\x4a\x96\x53\xac\x94\x3f\xae\x6f\xbc\xf4\xa9\x3f\x24\x72\x85\x8d\x63\x37\xab\xed\xe6\xef\x31\x9f\xd2\x48\x46\xc6\xb3\xa9\x3e\x9c\x67\x65\xfb\x56\x78\xf8\x04\x8d\x24\x4d\xf1\xa9\x77\xc8\x0e\x54\x40\xd9\x3d\xfc\x47\xa1\xa1\x7e\xe9\x13\x85\x7e\x6c\xa2\x90\xe6\x6b\x5e\x9f\x8f\x6d\x15\xce\x90\x26\xd8\xa9\x76\xac\xea\xd6\x54\xfb\xa2\xf2\x11\x94\x3b\xae\x23\x8a\xfd\xe7\x88\x9d\x1e\xec\xf5\x34\xd2\x92\x63\x4d\xa4\x3e\xc9\x61\xd3\x3f\x8d\x40\x66\xe0\xfa\x1d\x16\x45\x23\x4f\x75\x83\xf9\x48\x2f\xb3\x3b\x9e\x45\xd0\x92\x0d\x99\x49\x1c\x0d\xcc\x88\x6c\xe7\xc2\x97\xa7\x91\x31\x80\x9d\xef\x18\x7e\x57\xd5\x8b\x9e\x92\x4b\x52\x42\xb4\xa4\x4e\x54\xab\x3e\x3b\xae\x3e\x87\xa7\xa1\x84\xa6\x96\x2d\xea\xcd\x96\xa5\x9a\xc9\x6f\x19\x13\x9e\x6f\xfa\x79\x2f\x4a\x68\x1f\xa7\xd9\x02\x4a\x58\x12\x5b\x2a\xe8\x41\x1f\xab\xdd\x3d\xac\x26\xee\xf5\x3c\x3a\x25\x49\x24\x31\xf1\xf7\x2f\x51\x3d\x9f\xc6\xb4\x9d\x93\x81\x12\xb0\x6c\x3e\xd4\x81\x98\xdc\x43\x62\x6c\xe3\xbd\xf5\xde\x6e\x3c\x80\x66\x7a\xe5\x8b\x9c\x0a\xf1\x27\x40\x16\xd1\x4b\x35\x62\x97\x71\xba\x52\x59\xa2\x84\x4b\x8d\x3d\x0f\xf6\x69\xd7\x8e\xa4\xf1\xcb\xaa\xdd\xaf\xc2\x09\x4a\x52\x4a\x73\xe9\x1a\x87\xfa\xe2\x22\x25\x29\xa3\x59\xff\x60\x0f\xdf\x1f\x2f\xd8\x43\x29\x49\xf3\x08\x27\xf2\xe6\xf1\xc6\x72\x67\xed\x9e\xd7\xab\xf9\x72\xf7\xf8\xf2\xe0\x4f\x93\x51\xee\x28\x2c\x3c\x73\xc2\x57\xb9\x25\x4a\x32\x48\x94\x83\x9e\xde\x9d\x44\xad\x0b\x51\x7e\x87\x2f\xfa\x05\x28\xc9\x8c\x25\xfe\x2f\x50\x3f\xba\x99\x79\x63\x45\xf2\x28\xf2\x08\xd6\xe7\xaa\x69\xdb\xd7\xab\xf0\x01\x8a\x40\xbb\xcc\xd7\x7e\xf8\x64\xcf\x22\x82\x5b\xc5\xb0\xcd\x76\xb6\x5d\xee\x1e\x9f\xb6\xbb\xdb\xd5\xe3\x6a\xf3\x6d\xb9\xf0\xd7\x11\x92\xa0\xcf\x29\xab\xf2\xd4\xf4\x01\x2b\x25\x92\x32\x4f\x67\xd6\x1b\x5d\x6f\x01\x89\xec\x3c\x2f\x4f\x9e\xf9\x01\x75\x63\x79\x25\x07\xdb\x58\x58\x1b\x52\x67\x3a\xa8\x5d\x59\x19\x84\x35\xd2\xdc\x16\xe5\xeb\x8f\xa2\xd4\xd5\xa7\xbf\xa4\x62\x14\xb5\x1a\x74\xd1\xc0\x41\x8a\xfa\x7d\xb8\x7e\xc8\x74\xea\x34\xcb\x32\xe5\x1c\x2e\xa8\x57\xcd\x4c\x1f\x8a\x70\xf7\x1a\x2c\xcc\x6b\xf6\xb2\xb9\x19\x5a\x15\xa2\xc1\x4e\xb8\x4d\xcc\x76\x0e\x1a\xb4\xa8\xb1\x61\x71\x5c\xa3\x87\xd4\xc6\xb6\x06\x5a\x05\xee\xba\x33\x3e\xa8\x35\x59\x95\x28\xf8\x3a\x68\x15\xa5\x04\x72\x81\x1a\xba\x37\xb3\x7f\x8f\xae\x67\x52\x88\x93\xc0\xe9\x50\x54\x4e\xeb\x67\xfc\x28\x46\xe6\x9e\x48\xb5\x57\xd1\x74\x84\xec\x94\x46\x89\xdd\x16\x1d\x69\x50\x83\xba\x8c\xbe\xab\xde\x8d\x21\x51\x8c\x4c\xad\x45\xd9\x82\x53\x2b\x0b\x87\xf2\x8c\xfb\x84\xd5\x2f\x92\x33\x94\x12\x95\x45\x56\x08\xf6\x78\xdc\x9f\xf1\x3e\x59\x38\x89\x56\x48\x4a\xf0\x4d\xa8\xf7\xce\xb3\x0b\xec\x88\x94\x12\x48\x51\xfa\xfe\xbe\xba\x54\x65\x98\x5c\x81\xb2\x04\xfc\xad\x88\x57\xb8\x34\xcc\x97\x30\x23\x4a\x69\xa6\xb0\x80\x39\xdf\xce\x16\xf0\x51\xec\x47\xb0\x59\x4a\x63\x6e\x6b\x35\x0d\xb4\x8f\x85\x7a\x47\x0b\x3b\xda\xad\x69\x42\x2c\xf5\x79\xe0\xaf\xb5\xea\xb6\x03\x0a\x47\x4a\x93\x9c\x62\xbc\xb1\x43\x46\xf7\xc9\xef\x45\x86\x64\xb9\x77\x57\xc5\x53\x28\x4d\xa4\x05\xac\x37\xd0\xde\x76\x7e\x9f\xeb\x10\x7d\x32\xb6\xab\x63\xf0\x28\x5c\x6a\xdd\xb7\x2b\xe8\x93\x6a\x37\x98\xea\xbc\x74\x0b\x28\xd7\xb1\xa5\xda\x1a\x48\xe0\xda\x15\x3e\xfa\xfe\x69\x0a\x9a\xf7\xa9\x9e\x67\x24\xc8\xf9\x02\x9d\x7b\xfd\x9d\xa4\x46\x63\x3a\x1b\x69\xaa\x57\x2d\x1c\x30\x05\xed\xe7\x45\x44\x02\x15\x64\x8e\x58\x1e\xbd\x39\xe9\x57\x9f\x23\xa2\x54\x90\x08\x51\x3a\xf3\xa7\xf5\xb2\xaf\xdc\x50\x2a\xa8\x66\x24\x6c\xdc\x6d\xb7\x61\xce\x4a\x3d\x60\x05\xe7\xa3\xcd\x83\x0a\x95\x39\x00\xfe\xa9\x6c\x7f\x14\xcd\x1b\x74\x76\x70\xfc\x98\x02\x52\x2f\x3d\xb1\xc0\x40\x04\xf4\xf8\x05\x0a\x93\x79\x68\xc5\x43\x51\x22\xc0\xe8\x92\x3a\xd1\x8d\x95\x91\x44\x0f\x1c\x23\xeb\xeb\xf8\xcd\xeb\x73\x25\xa9\xa5\x21\x41\xd7\x3d\x64\xc3\x27\x65\xb3\x7f\x4c\x2e\xc6\x39\xae\x0e\x5d\xdd\x14\xaf\x8b\xba\x57\x9f\xfb\x8b\x6b\xa9\x34\x75\xa4\xd6\x81\x7e\xc0\x76\xf0\xd3\x3f\xfc\x33\x6b\xae\x30\x7f\xeb\xd4\x73\xab\x72\x59\xd7\xd5\x88\x72\x9b\x52\x9d\x51\x74\xcc\x6e\x4e\x5a\xfb\x0a\x1d\xa5\x5a\x0b\xa4\x52\x54\x6f\x55\xd5\xc0\x68\xcb\xee\x47\x48\x37\xe1\x77\x50\xa2\xe2\x52\xe7\x9d\xde\x9c\x37\xb0\x9f\xd2\x64\x51\x0a\x89\xe5\x68\x5f\x95\xcd\xa9\xee\xd1\x71\x94\x42\x96\x29\x8f\x4c\xea\xa2\x82\xdf\xab\x7a\x73\x52\x3d\x92\x9f\x52\x93\xa7\xcc\xaa\x8e\xd5\x08\xd0\x18\xb7\x14\x4f\xdf\xcb\xd7\xaa\xcc\x94\x1a\x60\xb9\xf1\xbc\x1a\xa2\xbc\xc8\xa9\x53\x16\x81\xd4\x56\x23\xc7\xd4\x55\xd3\xde\x22\x9d\xf2\x68\x1d\x31\x92\xa6\x98\xa1\x3e\x14\x65\x71\x27\x0e\xe0\xd1\x9a\x94\x91\x3c\x91\x4e\x43\x75\x76\xb3\xba\x10\x28\xe9\x03\x62\xca\xe2\x88\x6b\xea\x77\x47\x55\xd5\xfa\x2b\x32\x27\x37\x3e\x01\x26\xdc\x5e\xeb\x56\x2c\xb2\x1d\x56\x35\x1a\x86\x91\x35\x62\x09\x80\x61\xa3\x4d\xe9\xfa\x6e\xca\x38\x55\xd8\x56\x38\x7f\x5a\x3d\xee\x36\x2f\xcf\xcf\xf7\x7f\xec\xb6\x4f\xdb\xd9\x7d\x18\x90\xe4\xb6\xf9\xf9\x22\x59\xf3\x6b\x6f\x8b\xf1\x34\x92\x74\x92\xea\x70\x1c\xbe\xfe\xdc\x29\x73\x04\xbf\xf6\x16\x77\xd8\x8a\xbc\xd3\xc5\xc7\xdb\x80\x96\x8a\xb2\x34\xe1\xb1\x55\xf7\x5d\x54\x47\x58\x8b\x2e\xe4\xb0\xf0\x4d\xd5\x36\xbd\xbc\x02\x65\xb9\x21\x88\xa8\x6a\xeb\xe2\xf5\x15\xea\x4d\x65\xda\x50\x33\xa4\x4c\x8a\xc4\x53\x4e\xec\x6f\x84\x7a\xbf\x13\xcd\x28\xf4\x63\x9a\x5a\x95\xf1\x87\xa2\x14\xfa\x42\x03\x2d\x0c\x92\x5e\xfe\x61\x0d\xff\x7b\x2a\x6a\x6c\x4d\xb9\x92\x40\xa6\x4c\x27\x3c\xb1\x4d\xd2\x18\x23\x62\xea\x77\x62\x65\x98\x4e\xc0\xd5\xce\x3e\xaa\xfd\x07\xd4\x37\x85\x2a\xc2\xfd\xe4\x1c\x4d\xde\xb1\x86\xc5\x69\xb4\x5d\x33\x0d\x4a\x88\xd0\x1b\xe5\xcd\xdc\x24\x41\x46\x19\xc4\xb6\x55\xfe\xe6\x66\x98\xba\xa4\x0c\x8c\x49\x42\x2b\x71\xe3\x5f\x6c\x1d\x3c\x85\x38\x8a\xc0\x92\x4c\xa1\x49\x99\x9e\x37\x8e\x68\x86\x94\xc2\xf7\xc5\xff\x9e\x3a\x1b\x77\xa8\x54\x2d\xd4\xb9\x47\xaa\xdd\x0a\xd5\x56\x13\x48\x1c\x8d\x23\x65\xed\xf3\xfc\x69\xf9\xf8\xfb\xf0\x86\x62\x22\x0d\xf2\x33\x5e\x89\x3b\xe2\x98\x51\x44\x59\xbd\x9d\x0e\xa2\x2c\xda\xf3\x6d\x9f\x26\x89\x63\x69\xd9\x97\x4e\x65\x68\x07\xf5\xb8\xf6\xc9\xb5\x93\xce\x88\xf4\x5a\x0c\xf6\xab\x9e\x8e\x11\xb6\x3e\xb0\x40\x71\x97\xfd\xd9\xf5\x4d\x7c\x21\xf0\x42\xe3\x04\x64\xe4\xc0\xf8\x5d\x28\xec\x68\xb2\xaf\x8f\xe5\x2c\x42\x5f\xb8\x2d\xa0\xa6\xcb\xfe\x09\x78\x9c\x60\x8f\x0b\x0a\xd1\xee\x68\x17\xc4\x87\x43\x89\xc1\x0c\x16\x9a\xd6\x22\x94\x1b\xff\xa2\xdf\x67\x7a\xdd\x9c\x25\xcc\xef\xdc\xee\x81\x90\x4f\xb9\x15\x5e\xd1\x9b\xc6\xa9\x62\x59\x4f\x21\x33\x7f\x43\x3e\xcb\xd7\xcb\x30\x28\xf6\x5c\xff\x58\xba\xba\xad\xea\x6b\x8a\x9d\x7e\xa8\xe1\x58\x87\x0e\xa2\x0a\x97\x9c\xb6\x34\xce\xb8\x8e\xe9\x90\x2b\x7a\xf4\x45\xc6\x99\x32\x88\xdc\xdc\xe9\xca\xa6\xe3\x86\xdd\x8e\x34\xce\x34\x97\x21\xff\x2a\xd4\x1e\x42\x95\x74\x72\x15\xa3\x91\xf4\x71\x73\x3f\xf7\x3f\xcd\x09\x63\xb6\xeb\x49\xbd\x07\x54\x83\x3f\x46\x6d\xb3\xec\xb1\x86\x95\xaa\x06\xf0\x6f\x1a\xe7\x3c\x56\x2c\x48\x93\xab\xaa\xbe\x5a\x4c\xa6\x71\x2e\x12\x44\x44\xbe\x94\x47\x71\x6a\x9c\xfb\xe0\x8e\x89\x4c\xe2\x39\x1e\xce\xc8\xf8\x63\xb3\xe4\xf0\x19\x0e\x4b\xab\x85\xb4\xb3\x8c\x45\xc8\x3b\x6d\x9b\xe0\x26\xef\x42\x68\x85\xdf\x68\xe8\xf5\xf4\xdf\xf1\xdc\xf5\x28\xea\xc9\x34\x08\x48\x10\x2d\x5b\xaf\x16\x3b\x7f\x35\x29\x2c\x44\xe2\x20\x7e\xae\x0e\x56\x43\xd4\x1f\x91\x09\xae\x09\x0b\x94\x2d\xca\xd7\xf1\xdc\x4b\x69\xc5\x96\x1b\x68\xe7\x37\x62\xec\x41\x5d\x2d\xff\xd0\x58\x6a\x0b\x75\x1a\xe5\x18\x86\xab\x76\x1a\xbd\xc5\x8a\x69\xdb\xb1\x73\x10\xaf\xf0\x72\xdc\x57\x42\xfb\x87\x9b\x4c\x86\x4a\xac\x3e\xed\xcb\x66\x51\xed\xf7\xa2\x0e\x8f\xa1\x54\x24\xd0\xd4\x81\x38\xd8\x5c\xc9\xac\x1d\x75\x7c\xbb\x71\x3a\xb6\xa8\xdb\x97\xcd\x4d\xcf\x29\x47\x63\xad\xb9\xc8\x87\xd4\x27\x88\x76\xbb\x39\xe3\x6b\x71\x1a\x68\x24\x9c\x03\xac\xe2\x25\x52\xae\x1a\xa1\x20\xa8\x96\xec\x2c\x3e\xce\xa6\xa8\x7d\xe3\x58\xf7\x03\xdb\x19\xb9\x73\xcc\x98\xbf\x84\xeb\xd0\x18\x98\x64\x81\x13\x11\x44\x5d\x42\xff\x9c\xa0\x34\xde\xe8\x66\x0f\x10\xbe\x6b\x13\x11\x14\x32\xd0\xd5\xa6\xf5\x24\x8c\x34\x89\x28\xe1\xb9\xdb\x99\xe7\xdd\x6c\xb5\x50\x5f\xaa\x24\x84\xc1\xc6\xc3\xb7\xbb\xa8\x69\x51\xbc\x42\xd3\x8e\xbc\xc7\x24\x92\x46\xf4\x39\xef\x41\x25\xae\xc7\x12\x8c\x57\x42\x42\x22\xa2\x93\x41\xda\x00\x19\x22\xfc\xed\x11\x6a\xb7\xbd\xe6\xad\x30\xed\x6e\x0f\xe6\x1a\x0d\x0c\x4d\x88\x00\x0c\x13\x0b\x55\x3d\x77\x5f\x2f\xeb\x8d\x6a\x42\xf3\xc4\x8c\xa8\x4b\x61\x6e\x19\xbe\x0b\xb9\x87\x66\xd2\xfd\x42\x13\xaa\x08\x72\xbc\x56\x3d\x8d\xc1\xf0\x64\x9a\x27\x24\x44\x6e\xf0\x8a\xd9\xc9\x79\xb5\xef\xdb\x23\x7d\x5a\x27\x61\x24\xf5\x08\x4a\x2b\xb8\x37\x9e\x4b\xc6\x38\xf2\x3e\x60\x96\x70\xfe\x26\xf6\x7b\x28\x5f\x27\x81\x68\x12\x0b\x8d\x5b\xe1\xf3\x7a\xf5\x7d\xb6\x75\x5a\x03\xcf\x4f\x4f\xde\x23\x4b\x62\x65\x32\xe7\x62\x76\xbe\xe7\xb7\xaa\xb9\x1e\xc1\x74\x5e\x93\xd7\x99\xf6\x9c\xb4\x7e\xb9\x24\x3c\xd3\x58\xa7\x38\x14\xe5\x4e\x9e\xce\x3b\x39\x48\x53\x24\x29\x51\x9e\x8d\x65\x5b\x69\x71\xc6\x77\xd4\x0b\xe8\xd1\x24\xcd\x12\x64\x20\x3d\xda\xf8\x14\x55\xcf\x6b\xbd\xd2\x6b\x51\xbe\x86\x41\x19\x91\xb8\xe3\xcd\x4f\x52\x88\x3f\x07\xb1\x5f\x92\xf1\x0c\x49\x6a\x34\x7c\x58\xe6\x74\x9b\xd8\xbb\x70\x30\xc7\xb3\x97\xe9\x04\x7b\x00\x1a\xf1\x61\x79\x55\xfc\xe9\xf2\xcc\x22\xf1\x9c\x8c\x8d\xd7\x16\x19\x55\x6d\x92\x3c\xcf\x91\xaf\xfb\xd4\x40\xb3\x7d\x83\x83\xff\xb1\xe0\x56\x5a\xc3\x14\x3f\xe7\x38\x07\x43\x97\xdd\x11\x4c\xd3\x44\x68\x61\xe8\x00\x93\x3f\x2d\x13\xd3\x44\x72\x8e\x59\xdc\xfb\xd3\xcf\x80\x79\xa6\x89\xcc\x00\x9b\x00\x76\x35\x68\x80\xc3\xcd\xb9\xf3\x80\x31\x93\x74\x21\xb7\x74\x3d\x88\x19\x04\x0c\x89\x54\x2c\x95\x3d\x8d\x6e\x20\xfb\x6d\x10\x23\x43\x28\xd6\x37\xc3\x1b\x96\xa0\xb0\x4c\xd5\xbc\x55\x9f\x5d\x4c\x68\x19\x6d\xc6\x2b\x44\x49\x49\xd9\x80\x85\xe3\x3e\x00\xa5\x1b\x98\xae\x26\xa5\x62\x24\x27\x90\xa2\x81\x85\xdb\x8e\xfd\xb5\x94\x51\x31\x1f\x64\x56\xff\x0b\xea\xea\xdf\x27\x51\xb6\x53\xb5\x5e\x9a\x18\xa5\xac\x90\x12\x88\x3d\xd4\x3b\xe5\x29\xa2\x69\x62\x20\x47\xa6\x3e\xe7\x84\x7c\x49\x28\xf2\xcb\x88\x98\x47\x26\xc1\xd0\x6c\xb9\xfd\xb6\x7b\xd9\xf8\x0c\x26\x27\x54\x71\xd7\x2b\x53\x57\xe5\xf6\xb3\x1a\xa8\xce\xfb\x21\xb1\x5d\x46\x37\x8f\xdb\xdd\xfc\xe9\xf1\xfb\x72\xbd\x0d\xe5\x25\x4e\x94\x55\x7d\xc3\x0c\x28\x72\x67\xf9\x23\x94\x33\x95\x0c\x41\x25\xcb\xf6\x6d\x5b\xa1\x0f\xa5\x06\x0a\x27\x6e\x34\x8b\x6d\x54\x84\xdf\x5b\xe4\xcf\x11\x27\x36\xfe\x46\xa0\x9b\xb1\x3c\x8a\x08\x95\xd9\x95\x15\x42\x24\x50\xa7\xb4\x15\xef\xfe\xe3\xe2\x1c\x08\xe6\xd2\xef\x0e\xe1\x46\xd2\x18\x72\xe6\x8d\x0f\x1c\x3d\xed\xd8\xa8\x7f\xeb\xfa\x9c\xa5\x5c\x63\x87\xd8\x7a\xf6\x78\xb7\x5c\x3e\x2e\x76\x59\x38\x67\xce\x71\xc9\x21\xdc\x69\x24\x6c\xe5\x6a\xdd\x03\xc4\xd4\x65\x9a\x9b\xa7\xca\xf6\x93\x05\xb9\x35\x9f\xae\xe4\x99\x88\x6c\x02\xbc\x7b\xa8\xcd\x62\xfe\xeb\x9d\x8f\x67\x90\xd3\x9e\xbe\xe0\xae\x37\x45\x3c\x8f\xa9\x15\x59\x05\x94\x10\x7c\xb6\xdd\x1f\x78\x8b\xab\xa6\x39\x75\x77\xdb\xf6\xef\x38\x8f\xad\xbc\xca\x5e\x34\xad\x65\x27\xc3\xfc\xec\x28\xab\xc1\xf3\x04\xb0\xe3\xd2\xe9\x22\x5c\x05\x29\x50\x9e\xa7\xc6\x93\x2e\x85\x74\x2c\x09\xcf\x97\x0b\x40\xdb\xdb\x5a\x41\xed\x79\x5f\x4d\x0c\x23\x4c\x6e\x3c\x73\xb6\x4d\x21\x5c\x26\xe4\x9c\x43\xe4\xcd\x10\x17\x11\x10\x47\x20\xbc\xe9\x76\xa1\xa5\x31\x9e\x25\x6d\x54\x81\xf1\xc3\x63\x82\x59\x3b\xa1\x5a\x4c\x0a\x5b\xa5\xa9\xeb\xfe\x3a\x97\x24\x42\x6d\x07\xd9\xf7\xe8\x78\x2e\xc9\xc9\x40\x48\x10\xf7\x82\x5e\xc8\x30\x8a\xe3\x2a\xb2\xe9\xed\xa6\xf5\x84\x1d\x7d\x5a\xfe\xfa\x7b\x55\x5c\x62\x21\x7a\xb9\x7d\xf2\x27\xd1\x11\x4b\x86\x52\x6e\x8b\x40\x46\x6d\x0d\x67\x33\x61\x56\xa0\x5c\xc7\x02\xdd\x22\xac\x6e\x24\xc9\xe4\x76\xb5\x33\xcc\xed\x1b\x2c\x84\x2f\x45\x72\x88\xb9\xab\x22\xd4\xa8\x0b\xd3\x59\xc8\x85\x38\x37\xe1\x78\x66\x34\xf3\xfa\x5c\xe5\xa9\x59\x88\x76\x22\x7c\x46\x39\x48\x70\x84\xd7\xaf\xaf\x7b\x70\x45\xf4\x80\xb9\xa5\xdc\xe4\x80\xe9\xf0\x60\x19\x1e\xc4\xcf\x65\xfb\x66\x97\x65\x18\xa4\x62\x7c\x5c\xe3\x92\xf5\xdb\x5a\xe8\x8b\x18\xf2\xd7\xa9\x16\x6e\xb4\x8d\xf1\x5e\x11\x46\x0a\x23\xb2\x16\x3b\x24\x8d\xe2\x44\xf6\x1d\x00\x16\xa5\xdd\xed\xe8\xe8\x0a\x6f\xab\xe9\x68\x99\xa2\x8b\xb1\x00\x59\xb8\x5a\xef\x78\xf5\xa7\x24\x16\xc4\xd3\xd9\xbd\x55\x25\x4c\x0f\x27\x09\x12\xeb\x29\xd1\x58\xc5\xb0\xc9\x3b\x4b\x29\x21\xd4\x7d\x3d\x08\x54\xdb\x14\xaf\x43\x6c\x21\x4d\x19\x89\xb8\xb0\xea\xe8\xd5\x09\xc9\xb0\xfb\x23\xc6\x58\xb2\xc9\x29\xd7\xe9\x2f\x67\x29\x65\x09\x27\xc3\x99\xd6\x73\x71\x2c\x7a\xdb\x90\xb2\xcc\x36\xb5\xa0\xab\x1f\xee\x23\x8e\x2d\x37\xe4\xb3\xd8\xef\xcf\x03\x27\x26\x8d\x05\xc3\x62\x75\x17\x58\x58\x3a\x88\x5d\x67\x4a\x76\xba\x5f\x45\x69\xac\x44\xec\x38\x96\x7e\x40\xf1\x0c\xf5\xcb\x66\x51\x94\xdb\xbb\xe5\x64\xbe\x13\x22\x10\x6a\xb8\xb9\xdd\xee\x9e\x97\xeb\x5d\xb7\x79\xdd\xae\xd6\x9b\xed\x6e\x39\x5b\xdf\xff\xb1\xbb\x59\xad\x17\xbb\xf5\x6c\xeb\x81\x16\x69\x12\xc7\x19\x78\xbb\xec\xf4\x2e\x47\x8b\x66\x30\xd5\x49\x9c\x20\xb9\xcb\x1c\xf6\x20\x1b\x6c\x55\xf1\xa7\xe1\x09\xc8\xb4\x87\xa7\x79\xbc\xcf\x97\xcb\x6f\xe8\xf6\xa7\x5c\x32\x2b\x55\xd5\x39\xfd\xc6\x27\x0d\x26\x0b\x21\x8d\x28\xe6\xc0\x4a\x00\xdd\xdc\x9e\x4a\x8c\x34\xc6\x0f\x9f\x32\x4b\x58\xb9\xad\x4f\x4d\xbb\x86\x26\x2c\xc6\xff\x66\xff\xf3\x55\x92\x23\x3c\x5c\x1a\xe7\xb8\x69\xa3\x5a\x74\xdf\x76\x42\xd3\x34\xb7\x6c\x6c\x47\x71\xee\x15\x65\x69\x9a\xa7\x80\xc4\x0d\x5a\x9c\x9f\xab\xf6\x5b\xf1\xfa\xd6\xa8\x3e\x83\x98\xe6\x39\xc5\xb8\xfd\xfb\xcb\xfd\x7c\xf6\xb8\x7b\x7e\x5a\xec\x1e\x66\xbf\xef\xe6\xb3\xb5\xef\x2f\xa6\xa9\x60\xd4\xd3\x49\xdd\xd8\x55\xbd\xd9\x17\xca\x2d\xf1\xc9\x9a\x13\x8c\x91\xee\xd9\xfe\xfd\x51\xed\x3d\xc1\xf3\x78\x82\x84\xb0\x59\x60\x79\x3a\xcf\xca\x4b\x17\x78\x54\x36\x18\xf4\x9f\xd0\x54\x68\x2b\x91\x65\xfb\xc9\x2c\x09\xda\x57\x25\x78\x27\x01\x89\x04\xbc\xff\x98\x7e\x8a\x92\x69\x44\xd9\xdf\x6c\xe7\xb3\x17\x9f\x20\x49\x15\x4d\x90\x31\xd0\xea\x5b\x35\x1f\xcd\x1c\xf6\x6d\xa1\x9a\xfe\xb8\x26\xae\xec\xb9\xfd\x3d\xfc\x91\xc5\x58\x04\xb3\x30\xaa\xcd\x49\x36\xaa\x2e\xe4\x74\xeb\x4c\x55\x46\x30\xcf\x06\xb5\xa2\x51\x00\xb7\x9d\xbf\x26\x62\xa3\xa9\xe6\xc6\xa7\xed\x77\x07\xc7\xe5\xf3\xc5\x50\xe0\xb1\x76\x39\xa5\x7f\x9f\xaa\x76\xfc\x5d\xf8\xad\x34\x05\x6e\x3d\x1b\xcf\xf7\xfb\x0b\x70\x44\x0a\x32\x71\x7c\x00\xed\x83\xf8\x39\xd4\x63\xc1\xc8\x73\xb2\x2f\xa4\x26\xb2\xfc\xf2\xb6\x85\xdd\x14\xaf\x3e\x79\x3b\x9e\x05\x43\xad\x20\xe9\x5d\x61\x10\xde\xaf\x2f\x4a\x11\xa9\x89\x53\x35\x04\x84\x76\x4e\x2b\xb2\x2b\x7d\x61\xe9\xc2\x3b\x35\x9a\x49\xe9\x28\x92\xe5\x94\x22\xd0\xa2\x64\xed\xc8\x2c\x62\x19\x15\x01\xc6\xff\xff\x61\xf7\xc9\x22\x4e\xf3\xe1\x4d\xee\x14\x72\x8e\x5c\x9d\xca\x2c\x92\x91\x1c\x38\x94\xaf\xa7\xbd\xa8\xc3\xa2\xff\xaa\xc3\x9c\x66\x2c\x4a\x88\xe3\x31\xc4\x4c\x5f\xf1\x27\xfc\xfb\x34\x11\x29\xa6\x19\x8b\x63\xc4\x6e\x7d\x16\xe5\x6b\xe3\x21\x23\x9d\xcf\xfa\x9b\x1f\x90\x69\x2f\x4d\x77\x2f\xfa\xb0\x79\x14\x80\x67\xcc\x41\xaa\xd0\xd5\x77\x2f\xd8\x1d\x8a\x33\xe3\x12\x30\x4e\x63\x96\x45\xe1\x90\xb0\xbc\x9e\xf0\x13\x99\xd0\xc3\x9f\x8d\xa6\x34\x68\x48\x9d\xe4\xbf\xe0\x3c\xb9\x5c\x12\x51\xc6\x26\xef\xd8\x2b\x08\x7e\x35\x8b\x89\xa0\x49\x3e\x66\x98\xef\x1e\xd6\xe1\x29\x9f\xca\x2f\x92\xd0\x59\xa2\x53\x64\x22\x7a\x5c\xae\xbd\x39\xcb\xb2\x88\x22\x45\x24\x94\x7a\xfb\x56\xd4\xfa\x07\xc0\x7b\x60\xc5\xa4\x59\x26\x38\x56\x33\x1f\xab\x56\x60\xd2\x62\x1a\xd2\x64\x99\xc8\x85\x15\x59\xfc\x89\x90\xee\xa1\x5c\x91\x1b\x92\x47\x96\x5f\x0c\x83\xcc\xe7\xba\xf8\x28\xf6\xf0\x3a\xaa\xd0\x67\x39\x91\x48\x66\x80\x1f\xb7\xe5\xdc\xb1\xfc\x0b\xae\xca\x72\xa1\x0c\x45\x33\x11\x11\xc4\x51\x36\x56\x0e\xf4\xa1\x28\xdb\x01\xac\x27\x93\xa9\x75\x79\x9a\xbd\x68\xde\x16\xd5\x67\x39\x69\xfc\xbc\x1e\x71\x87\xf7\xa2\xa8\x07\xa3\x55\x87\xc7\xcb\xf4\x6b\xa6\x68\x8a\x41\xd3\x62\x39\x2a\x65\x64\x2a\xe3\xdc\x21\xd2\x5c\xe9\xcd\x7a\x5b\xe8\xe4\x2f\x26\x27\xd1\x09\x78\x42\x81\x1f\x50\xbc\x34\xfa\x32\xe7\x9e\x69\xc1\x12\x67\x69\x77\x2d\xd4\x87\x6b\xb5\xa6\x4c\x6b\x91\x21\x99\xc0\xe2\x6e\x74\x37\x90\x44\xd8\x20\x24\xeb\xea\x1d\xea\xc1\xc2\x84\x54\xa0\xb8\xd9\xae\x08\x3a\x93\x5e\x57\xe9\x62\x5e\x02\x36\x21\x03\x21\xb2\x0c\x4b\x12\x95\x42\xdd\xb3\x21\xac\x70\xfa\xef\xc8\xdc\x65\x00\x59\x6c\xdb\x13\x76\xda\x76\x9e\xed\x8e\x83\xac\x7b\x1e\x89\x08\x13\xb0\xb2\xd0\xcd\xce\xf6\x23\xec\xd4\xa0\x18\x90\x33\xca\xb0\x1b\xbf\xc0\x3c\x75\x08\xd7\x72\x96\x08\xef\xb7\xf9\xbd\xa4\x8b\x79\x37\xff\x0a\x03\x44\x8e\x6d\x2a\xdb\xf5\xd3\xe3\xf7\x51\x16\x3b\x67\xd2\x27\xb2\x30\x6c\xb4\x0e\x3a\xd4\x7d\xd5\x30\x67\xc6\xee\x73\x47\x71\xbe\x11\xbd\xe5\x75\x47\x63\x93\xa1\xf7\xde\x27\x1a\x6f\x8b\x52\x94\xaa\x10\xfb\xd9\x90\xd7\xef\x32\x36\xce\x13\xc5\x11\x53\xe5\xbf\xfb\x55\x0b\x87\x5f\x47\xc1\x79\xaa\x08\x57\x41\x84\xe3\x4a\xad\x2c\x4f\xb5\x34\x56\xc9\xae\x68\xda\x66\xc8\x0a\xe0\x06\x64\xc4\xca\xe2\x58\xa0\xf6\x98\xaa\x6e\xda\x00\xe6\x36\xcc\xff\xa6\xce\x75\xa0\xfe\xd6\xb3\x24\x43\xac\xcc\xf7\xcd\x76\x76\x95\x1e\x62\x72\xcd\x44\x22\x97\xf9\x23\xc8\xd3\xbe\x18\x2e\xcf\x3c\xe3\x80\x99\xd7\xb9\x28\x07\x0c\x1a\x23\xe4\x47\x9e\xa5\x4c\xf6\x74\x14\xee\x23\x9e\x35\xcf\xe2\x0c\x18\xc8\x8c\x32\x10\xfd\x7f\x05\xb7\x67\x3a\xa7\xc3\x2d\x23\xcf\x94\x65\xb1\x3b\x35\x7a\xf0\xd2\x73\x61\x09\x0e\x6d\x2a\xea\xb7\xd1\xd3\xe4\x26\x53\xc6\xb1\x8b\x4d\x26\x57\xe4\x36\xb7\xd5\x79\x94\x5b\x10\x87\x17\x57\x9d\x0d\x80\xbd\x5c\x68\x82\x39\xcc\x2e\x0c\x53\xd0\x38\x55\x1c\x7f\x10\x0c\x66\x4b\xfe\xdd\x9d\xf5\x8a\xaf\x98\x4b\x6e\x49\x23\x9e\xeb\xf3\x9f\x23\xeb\x99\xcb\x5c\x61\x93\x51\x2b\xde\xc1\x41\x92\xbf\x56\xf1\xa1\xb9\x54\x13\x32\xf2\x67\x8c\xb2\x26\x8f\x23\x4d\x8e\xed\xc7\x0e\x17\x59\x94\x0f\xe2\xe7\x0d\xb4\x5f\xb3\x45\xd3\x5c\x11\x89\xb9\x01\x57\x7a\x5f\x83\x50\x81\xcf\x8f\xe6\x8a\x59\xb1\xee\x6f\x9b\xcd\x5b\x75\xdc\x88\x3d\xf4\x06\x29\x57\x8e\x84\xdf\x89\x61\x14\x87\x01\xed\xc4\xe4\x2a\x3a\x32\xd4\xb8\xd0\x2b\x9c\x5c\xe7\xcc\x75\xf4\x1d\x90\x7d\xbe\x3a\x8c\x55\x55\x69\x0e\x59\x2e\xa2\x80\xfe\x59\x88\x62\xf2\xbc\x86\xc4\x48\x2e\xfc\x47\x35\xa5\x84\xa2\xb9\x89\x23\xea\x8c\x4c\x17\xcf\x3e\x9e\x0e\x93\x77\x63\x62\xc9\x9c\x3f\xd9\x36\xc3\x9c\x53\x6e\x64\xc2\xf4\xa0\x4b\x44\x56\xd5\xfb\x3d\x94\xaf\x21\x51\x20\xa2\x3c\x4e\x7b\xf6\x8d\x41\x03\x11\x15\x91\x4c\xb8\x87\xc6\xbc\x94\x4d\x88\x8f\x05\x89\x28\x4a\x52\xfc\xf1\xf2\xbc\x5a\x86\xa0\xd1\x8b\x13\x87\x51\xb1\x45\xfc\x35\xc2\xc0\x43\xf5\x05\xbe\x54\x30\xa2\x50\x6b\x46\x9f\x4b\x71\x28\x94\xbb\xb9\x21\xf5\x97\x1f\xc8\x05\x12\x37\xa0\x6c\xb4\x1a\xa6\x80\x05\xcb\x8d\x71\xb5\x70\xcc\x5c\x5e\x91\x28\xa7\xa2\x0b\xa6\x2d\x5f\x5b\xb3\xfb\xa8\x82\xde\x2a\x15\x71\x2e\xb0\x71\x60\x58\x1a\x6c\x06\x0a\xe2\xd7\xf7\x14\x11\x4b\xca\xa2\x9e\x74\x14\xba\xed\xb3\x98\x24\x33\x44\x2c\x81\x39\xea\x3a\x7b\xde\x9b\xf3\xa5\xa0\x2b\x15\xb1\xd2\x98\xd1\x00\x0b\x3d\x9f\x92\x9e\x50\x91\x10\xc0\x05\xda\x2d\x2f\x4b\x67\x11\x59\x73\x17\xf9\x01\x14\xb4\x03\x00\xdb\xde\x4e\xd7\x8f\x46\x27\xd3\x9d\xe4\x02\x1b\x2f\xfb\x4d\xe3\xf9\x74\x3c\x62\x72\x61\x7e\x2f\xea\xd7\xa9\xa4\x32\x15\x89\x30\xb8\xb8\xcc\x40\x3e\x8e\x8a\x94\x2b\x70\x49\xd1\xfa\x04\x33\x8d\xdc\x8a\xcd\x44\x78\xe9\xaa\x01\x10\xa9\x4a\x30\x78\x2c\xe1\x67\x68\xd3\x5a\x88\x73\x4f\x45\xe5\xaf\x91\x45\x32\xb6\xf1\xfb\xa7\x35\x38\xce\xce\x8f\xe7\x2e\x4b\x63\x44\x8f\x5a\x04\xf1\xe2\xe9\x71\xb6\x5d\x3d\x3d\xee\xd6\x4f\x2f\x8f\x8b\x9d\xf7\x9e\x45\x9e\xc6\x48\x41\xda\xbd\xf9\x88\x3c\x56\x03\x49\x65\x2a\x44\x2e\x90\xf9\x12\x4a\x78\x6b\x07\xa6\x4d\x08\x29\xb1\x2b\x68\x83\x4a\x18\xc3\x03\x2a\xf3\xe0\xe7\x6f\x62\x8f\xa4\x9b\x03\x18\xa5\x10\x26\xca\x72\x2f\x11\x60\xbf\xac\x4b\xe7\x4a\x48\x42\x49\xcf\x78\xd6\x4d\x85\x45\x12\xf8\x8b\xc8\x4c\x61\x87\xf6\x5b\xf5\xf9\x10\x9a\xb4\xa8\x90\x32\xc1\xba\x8e\xdf\xbc\x91\xdb\x32\x14\xe2\x27\x2b\x4b\x6a\xc1\xf3\x20\xab\xd5\x34\xa7\xce\xf6\x2f\x40\x86\x67\x57\xdc\x2a\x0f\xd9\x9b\x70\x0e\xef\xbf\xfe\x98\x0f\x1f\x47\x89\x8c\xba\x0a\xd4\xe3\x95\x68\x52\x68\x62\x25\x50\xab\x23\xd4\xa2\xad\xea\x0d\x94\x5f\xe3\xe4\x2f\x6a\x4b\x42\xe7\x16\xf4\x66\x65\xf3\xb1\xab\xe3\xb7\xf1\x86\xf9\x8f\x09\x96\xcd\xff\x50\x83\x95\xa9\x39\x1d\x44\xe9\x13\x01\x02\x62\x8d\xe9\xbd\xa7\x9b\xd5\xc3\xd3\xfd\xd3\xdd\x6a\x16\x8e\x28\x2b\xb9\x61\xa5\xad\xab\xd2\x11\x58\xef\x6e\x5e\xee\xef\xc3\x18\x48\x90\x5e\x61\xb6\xf8\xbe\xda\x3c\xad\x77\x9b\x6f\xb3\x75\x30\x69\x46\xf3\xd8\x42\x9f\x8e\xa2\xf0\xcc\x95\x62\x5a\x46\x15\xc6\xc4\x96\x58\xbd\x3a\x1c\x0a\x87\xaa\xc6\xba\x0d\xe8\x1e\xfe\x32\xfa\x89\x8c\x32\x48\x9d\x35\xf9\x5e\x0d\x79\x63\xaf\x96\x57\x65\x24\x00\xdd\x9a\xa3\xf0\x55\x43\x77\x80\xc6\x04\x57\x9e\x47\xdb\x54\x37\xa2\x7c\x9f\x05\xdc\xd1\x61\x51\x18\x03\xb5\xeb\x6c\x83\x66\x24\x3a\x49\x25\xe5\x26\x4f\xfc\x04\xdd\x16\x8d\xdf\x25\x24\x93\x19\xeb\xcb\xec\xf3\xea\x74\x0c\x20\x5e\x37\x22\x8e\x62\xbc\xb0\x3c\x35\x45\x09\x4d\xf3\xbc\x17\x65\x09\xda\x3e\xbc\x6b\x89\x19\xe2\x7e\x64\x1c\xe5\xe8\x0d\x0a\xad\x2d\x28\x18\x49\x36\x9a\x4b\xaf\x35\x8c\xb7\x59\x18\x47\xda\x79\x1d\x22\x27\xe3\xc4\x92\x37\x79\xd6\x64\x74\xa9\x6f\xab\xfa\xb1\x3a\x14\x65\x33\x6b\x2f\x3f\x43\x19\x1b\x81\x0c\x72\x4b\x7d\xfa\x8f\x28\xab\xbf\xee\x54\x92\x09\x95\x08\x0d\xba\x9f\x2d\x46\xd8\x36\xc9\x85\xed\xe6\xc0\xf6\x3c\x3a\xb9\x0e\x17\x39\x06\xa2\x3b\xcc\x3f\xd0\x5d\xa1\x2a\x57\xed\xbf\x98\x1b\xae\x15\xa6\x58\xd7\xf0\xde\x8e\x2e\x90\x66\xd2\x29\x0b\x88\x83\xcb\x75\xb8\x23\x19\x53\xdc\x26\x37\xb0\x01\x68\xe6\x01\x9a\xfe\x78\xce\x05\x4e\x4c\x8b\xbe\x21\x52\x67\xf9\x1d\x50\x0a\xc2\x63\x4f\x5a\x7b\x6f\xe9\x90\x07\x9f\xbf\x14\xb1\x40\x8f\xf4\x88\x62\x86\x55\xd8\x5c\xa6\xdf\xa3\x14\x39\xcf\xec\xf7\xd5\x3f\xd1\xe9\x0b\xf5\xab\x61\x3e\x51\xca\x34\x61\x6c\x00\xc5\xda\x56\xcb\xce\x18\x6a\xa8\x7b\xaa\x36\x1c\x65\x91\x62\x0d\xd4\x1b\x50\x27\xec\x24\x1d\xbf\x7e\x95\x70\x8f\xdf\xf7\xad\xad\x93\x01\x9c\x79\xb5\xe2\x79\xf5\xe7\x79\xf6\x7a\x91\x53\x90\x4a\xd8\xe0\xfa\x33\x54\x69\x6f\x7f\x9f\x0c\xd1\x3c\xcb\xd5\xa0\x42\x33\x69\x5b\x70\xa3\x80\x11\x24\x07\x7f\xb0\x42\xf3\x5f\x82\xe7\x46\x6b\xab\x8b\x72\x91\x3c\xa1\xea\x89\xb9\xa9\x34\xdc\xe0\x1a\x3d\x80\x16\xfb\x05\xa8\xe2\xd0\xe3\x29\x54\x44\xa4\xe5\x94\x45\x63\xa6\xaa\xc3\x11\xca\xa6\xef\x91\xf7\x3e\x82\x8a\x78\x8a\x0e\x72\xf3\x09\x70\xfc\xf5\x26\xad\x22\x60\x98\x9d\xdf\x1c\xab\x13\xe2\xd5\x85\x1c\xb7\x35\xa8\xc8\x18\xe1\xbc\xd2\x05\xee\xa6\xa0\x6f\x44\x53\x28\x1b\xd7\xad\x16\xd7\xd7\x88\x22\xcc\x20\x3a\xb8\x0b\xfd\x37\x57\x4a\xec\x7e\x58\x1e\x71\x87\x66\xf9\x03\x44\xbd\x10\x93\x5a\xbe\x22\x42\x23\xd8\xf9\x5f\x45\xdb\x42\x39\x28\x8e\x28\x62\x98\x65\x86\xf8\x14\xc7\x29\xd2\xe1\xbf\x93\x3e\x18\xe6\x8e\x53\xe9\x2a\xf7\x08\x55\x34\x8e\x70\xb6\xb0\x5a\x3e\xe2\x8b\xf3\x03\x64\xaa\xdc\x04\x6c\xb7\x5b\x6f\x4f\x87\x2f\x53\x31\x96\xe0\x0e\x8e\xfd\xdd\x73\xb1\xdf\x4b\x71\x25\x81\x7a\xb1\x23\x2a\x96\x26\xf8\xba\xf7\x85\xac\x45\x7d\x26\x89\xf1\x3a\x5e\x7e\x80\xd6\x89\xe8\x85\x0b\x6f\xab\x7a\xd4\xc2\xab\x98\xd1\xd2\xa5\xfe\xf0\xd6\xad\x5f\x3f\x7e\xc0\x38\x8d\xb8\x63\x28\x9a\xd5\xb2\x68\x71\xeb\x26\xa2\xd4\xf4\xba\x6d\x55\x71\xe6\x6b\x8a\xc7\xdb\x42\xb4\xb3\x52\xf7\x4d\x36\x2a\xce\x2d\x77\x6a\x80\x5c\xde\x88\xe6\x1d\xda\xab\x60\x5c\x15\xab\x2c\x07\xdf\x08\xfb\x13\xcb\xab\xaa\x38\x8a\xb2\xbd\xf1\x79\xca\xf1\x54\x27\x2e\xab\xfd\xfb\x1f\xdb\x57\x11\xd6\x7d\xd2\x6d\xe8\xce\xcb\x6a\xdf\xb6\x95\xe7\x38\x46\xc3\xf1\xcd\x53\x33\x11\x6a\x6d\x0d\xa1\x99\xff\x9d\x8a\x98\xeb\x1c\x90\xe3\xae\xf6\x30\x80\x26\xf1\x40\x49\xe1\x54\x6a\xa8\x7d\xa9\xf0\xea\x86\xac\x38\xb3\x8e\xfe\x63\xd5\xf6\xad\x4f\xd7\x17\x16\x4f\xbc\x22\x75\xe7\xcd\x77\x11\x5d\x3d\x68\xd7\xf3\x83\x24\x80\x95\xe9\x39\x9d\xbf\x4a\x1a\xba\xa1\x69\x66\x51\x27\xaf\x3e\xe5\x7f\xa9\x90\x4a\x55\x0a\xb9\x4b\xdf\x88\xf6\xad\xb3\x2c\x3b\x43\xb8\x9f\xc8\xd4\x08\xc4\x01\xef\x2d\x54\xa7\x1e\xf0\x16\x53\x95\x27\xc2\x33\x18\x3d\x88\x9f\xdb\x42\xbd\x43\x00\x6a\xaa\x3c\x07\x94\x36\xdb\x5d\x94\xef\x26\x3d\x27\x7e\xbc\x16\x9c\xfa\xf2\xc4\xe1\xd8\xc2\x8e\x8c\xbf\x18\x61\x62\x3c\xe1\xdd\x62\x3e\x53\x2a\xf2\xed\x5d\x4a\x12\x81\xe1\xfb\x48\x1a\xe5\x9b\x68\xde\x2e\xb0\x4c\xbf\xfa\xa6\xb5\xce\xd0\x22\x07\xe5\x5a\x8b\x90\xb4\xd3\x9f\x0d\x73\xff\x97\xff\xe5\x4e\x01\x51\x8a\x30\x88\x23\x8a\x39\x78\xc9\x11\x7f\x9b\x90\x46\xb1\xed\xe5\xdf\x57\x42\x7b\xa9\xb6\x2f\x6c\x1c\x40\x2a\x1c\x0e\xc5\x98\x55\x69\x3c\x40\x40\x99\xc8\x2a\x14\x76\x01\xbf\x23\xf0\x09\x33\x6e\x92\x58\x65\x5e\x3a\xc7\x51\xeb\xdb\x5c\xd9\x3f\xae\xc0\x59\x7d\xc9\x49\x47\x34\xd2\x4e\x95\xf5\x3b\xd4\x43\x55\xc4\x2b\x34\xd7\x14\x79\x34\x51\x08\xe3\xf7\xef\xf3\x0d\xb6\x85\x8f\xd3\xad\x57\x57\xa2\x8e\x12\x95\xf6\xb4\x4c\x96\xd1\xc5\x1f\x12\x26\x75\x1c\xe0\xbb\x9b\xf9\xe2\x66\xa7\xc6\x49\x0e\x1d\x29\xdb\x86\x68\x1b\x5c\xd7\x5d\x2c\x17\x25\x9e\x86\x7f\x77\xf3\xf4\xe8\x49\xa5\xa9\x26\x29\xc7\x96\x9d\x10\x54\x5f\x15\xb4\xa6\x9a\x68\xbb\x66\x1a\x68\x5f\xca\xca\x20\xb0\x64\x3f\x48\x1f\x74\xef\xff\xe5\x78\x0b\x93\xcf\x5f\x13\x03\x98\x10\x10\x5a\xdf\xc3\x6b\xd1\x2e\xe0\xe3\xea\x47\xaf\x29\xe1\xd8\x43\x2f\xdf\xc5\x08\x82\xad\x69\xcc\x85\xf3\x32\x6e\xa0\x6d\x1e\xc4\xd8\xcf\xd6\x54\x31\x84\x4b\xdd\x41\xf9\x5e\xb8\x9c\x59\xf8\x2d\x28\x99\x87\x82\x1f\x52\x94\x4d\xee\x8f\xa5\xf6\x83\x37\xa7\xbd\xc5\xc0\x8c\xd0\x0b\x9a\xc9\x04\x41\x61\x07\xf1\x73\x76\x18\x42\xda\x75\x92\x48\x04\xa2\x7d\x7f\xda\xae\x1e\xef\x76\xdb\xd5\xc3\x72\xf3\x3c\x7b\x0c\x87\x53\x8e\xc5\xa7\x23\xfa\xec\xab\xed\xd3\xee\x20\x8a\x6e\x75\xaf\xca\x1e\xcd\xa6\x93\x3c\x42\x80\x26\xaa\xfb\x5c\xad\x5c\x8e\x97\x52\x22\x6c\x7a\xb0\x06\xd9\x7d\xb7\x25\xdc\x42\xf9\x67\xe1\x41\xe0\x9a\xcb\xd4\xb2\xe0\x86\x60\xea\xc9\xac\x45\xd1\x80\x93\x0a\xd9\xbe\x89\x76\x8d\xa4\x46\xcd\x6a\x9a\x19\xd3\x29\xb5\x49\xe9\x53\x39\xe2\xfa\x9c\x74\x3b\xe9\x94\x2a\xe4\x69\x5a\x57\x7f\x56\x9f\xef\x62\x3e\x80\xc6\x5d\x5d\xfd\x29\x03\xab\xf2\xd8\xd9\x42\xdf\x51\xeb\xaf\x99\x93\x0c\xfb\x57\x34\xec\xaf\xb4\x3b\xea\x9c\x25\xd4\xe5\xa2\x6e\x42\xdd\x63\xfc\xfe\x72\xce\x55\xaf\x66\x3f\xa5\x08\xf7\x83\x94\x15\xf4\x5c\xcd\x9f\x96\xbd\x88\x22\xd5\x52\x25\x58\x1a\x5a\xc0\x87\x5d\xfc\x13\x2a\xae\xab\x5b\xb7\x96\xda\xa0\x0b\xef\x9c\xe2\xa1\x23\xa7\xa5\xa1\xde\xd5\x0a\xb9\x2f\x8b\x71\x1d\xdf\xb6\x8a\x08\x3a\xe9\xdf\x56\x77\xdf\x96\x6b\xd7\x83\xbe\x5e\x6e\x96\xdb\x81\x5a\x86\x3f\xa9\xe2\x40\xc9\x50\x4f\xa3\x1b\x1d\x0e\xe6\x0a\xe3\xf6\x75\x75\xda\x43\x3b\x0d\xc8\xb4\x4e\x63\xec\x9b\x6e\xab\x97\xe3\x11\xc6\xed\x82\x5a\xe7\x2a\x0d\x2e\xd5\x8f\xa2\x7c\xac\x64\xe5\x84\x93\xc2\xe7\x05\x59\x4a\xc0\xbf\xbf\x1b\x81\xcc\xff\xa3\x93\x98\x44\x22\xc9\xcf\xcd\x22\x1a\x4e\x05\x44\x09\x49\x5d\x2f\xf4\x43\x85\x00\xc6\x9b\xf1\x6b\x01\xa2\x01\x53\x45\x88\x96\x3c\x56\x7b\x51\x23\xcf\xc8\xaa\xb4\x6d\xa4\xfe\x44\x94\x59\x9a\xa1\xc7\xd9\x83\xed\x6a\x9f\x7d\x9f\xad\xee\x67\x37\x21\x3b\x0a\x94\x5b\x7b\xb7\xaf\x44\xd9\x37\x4d\x5c\xdd\x28\x80\x66\x06\x6f\xb7\x5b\x30\x25\xec\x1f\x2a\x7d\x72\x8e\xb3\xb7\xef\x40\x85\x4d\x61\xc9\x53\x7d\x95\x6b\x63\x70\x32\x1d\x69\x5f\xd2\x33\x95\xdf\x73\x20\x16\x76\xcd\xab\x53\xd3\x56\x07\x9f\xb5\xfa\x75\x94\x00\x09\x8b\x7d\x1b\x21\x62\x19\xd1\x99\xaa\xaf\x94\x0f\x20\x91\x04\x41\xcc\xbb\xea\xf3\xaf\x12\x84\xc0\xf3\x0c\x73\xe1\x6b\x50\xc5\xb1\x80\xb2\x9d\xc8\x7a\x8f\xd7\x36\x2a\x3c\xa5\x36\xa5\x89\x30\x9e\x05\xa2\x7b\x27\xd7\x4f\x79\x44\x6c\xa1\xb8\x14\xaf\x57\x0a\xba\x90\xa6\x51\x0a\x43\xff\xf5\x8a\xfc\xe0\xa0\x1a\x09\xa9\x14\x96\xd6\xb6\x2a\x9b\xd3\x01\x7b\x2b\x9e\xab\xa2\x17\x58\xa0\x90\xb1\x0c\x4c\xe0\x44\xba\x09\x06\x1a\xb2\x8c\xe0\xee\x50\xc2\xcf\x76\x5b\x9d\xea\x52\x74\xf7\x33\x50\xf6\xe8\x86\x64\x58\x1b\xdc\x6c\xd7\xab\x7f\x8d\xbf\x1e\xc8\x64\x1e\x5b\xeb\x04\xc7\xa7\x12\xee\x2b\xf5\xee\x29\x47\xfc\x08\xc8\xd0\x44\xdb\x77\x68\x85\xff\xbf\x2e\x9c\x80\xc8\x28\x56\x2f\x64\xa1\x27\x3b\x1c\xc8\x28\xb2\x38\xab\x2f\x21\xe4\x57\xec\x2d\x48\x66\x05\x38\x55\x98\x0b\xd9\x79\xfc\xd8\x46\x69\x1b\x2d\x41\xef\x2c\xb8\xae\x09\x23\x92\xd4\xf3\xf9\x05\x48\x2b\x63\xa3\xcf\x16\x24\xd7\x96\x4b\xca\x19\x7b\x07\x07\x0e\xa7\x10\x09\x36\x25\xe9\x0a\x9a\x97\x06\x73\xa2\xa3\xc2\xe6\xf8\xa9\xa5\xd2\xca\xc1\x3a\xd6\xed\x61\xda\xff\xea\x06\xa9\x0c\x12\xeb\x0a\x1c\x8a\x2e\xb4\x70\x45\xcb\xeb\x7d\xeb\xee\x37\x3a\x36\xc8\x05\xba\x19\x13\x3b\x00\x44\x51\x46\xa7\xdc\xfa\x42\xb5\xcd\x55\xe7\x02\x80\xd9\x86\xc5\x55\x69\xf6\xa7\xf1\x89\x62\x69\x75\xe5\x5e\x9e\xd6\xb3\xc7\xe5\xef\xe1\xef\xdc\x26\x3e\xed\x6b\xef\x9c\xe3\xb6\xba\xaf\x3e\x9f\xea\x6f\xc5\xeb\xdb\x64\xb9\x43\x2a\xad\x2e\x14\xba\xfb\xe2\x1d\xc6\x57\xc8\x29\x52\xa5\x9e\x7e\xed\x36\xb9\xd1\x26\x02\x3e\x64\xc7\x76\x38\xe8\x69\x25\x01\x0c\x31\x48\xb5\xaf\xba\x28\xa5\x3e\xb8\x96\x89\x70\x96\x34\x65\x99\xcf\x3d\xee\x0e\x55\x09\xe7\x1d\x86\xcb\xf6\xb8\x89\x18\x45\x26\xb5\xa3\x38\xbb\x58\xf7\x6a\x82\xc1\x50\x9a\x63\xa1\x72\x37\x55\xa6\xbb\xc8\x44\x0f\xd7\x96\x61\xa0\x91\x61\xe6\xb9\xfa\x84\x1a\xfb\x07\x4e\x87\x41\x56\xc1\x30\x03\xe8\x11\x17\xb8\xb4\x6e\x6c\x71\xf5\xe6\x7c\x7d\xdd\x98\x38\xd6\xc8\x02\xbf\x10\xfa\x1c\x20\x99\x26\x06\x8d\x8f\x50\x34\xb3\xa0\xae\x39\x8e\xd3\x3a\xef\x9e\x64\x21\x38\x9c\x39\x14\x38\x22\xca\x4b\x47\x86\x3d\xbe\x52\x92\x1a\x24\xa7\xbe\x3b\xe9\x2d\x34\x9e\xaf\xad\xad\x6e\xfd\x45\x13\x41\xd1\x50\xf9\xe9\x70\x71\xf2\xf4\xed\x98\x44\x88\xd8\xcb\x20\x17\xb5\xae\xab\xe3\x2a\x70\x20\x99\x44\x51\x70\x38\x9b\x2b\x10\x34\x3f\x08\xac\x4e\x93\xd0\x7a\xd7\x56\x3b\x69\x11\xdf\xee\x20\x8f\x72\x8c\xa9\x77\x35\xcc\xb0\xca\x3a\x55\xbe\xa2\x86\x33\x85\x6f\x6e\x29\xea\xf6\xed\x01\xf4\x9f\xe1\x40\x1e\x0d\xd4\x18\xbf\x8b\xd3\xbe\x0d\x87\x94\x49\x8d\x6f\x89\xf6\x56\xc1\x6e\x90\xb3\x89\x89\x37\x39\x01\x84\xfe\xcd\xca\x73\xfb\x56\x94\xaf\xb3\xe3\x71\xb8\xea\x4d\x4e\x53\x1d\x7b\x0a\x07\x04\x7e\x87\xc6\xf5\x5b\x80\x45\x61\xf5\xc3\xfc\x60\x6e\x54\x10\x82\x77\xe4\x78\x33\xa5\xaa\x5a\x17\xe5\xeb\xb6\x5a\x0b\xcb\x3b\xe6\x96\xda\xe8\x1f\x77\x06\x19\xe5\x32\x74\x73\x9b\x05\x34\x6a\xe2\x71\x19\x19\x19\xa4\xce\x39\x74\x37\x01\xcd\x6e\xfb\xb4\xfb\x36\xdb\xce\xbf\xed\xc8\xba\x50\xef\xb3\x52\x3f\x54\x3d\xa0\xd6\x48\x6e\xc0\x07\xea\x55\x39\x74\x86\xfd\x80\x9c\xe7\x76\xa3\x34\xc6\x6b\x74\x5c\x35\x61\x46\x91\xd4\x62\xd5\x44\x83\x1b\x87\xc7\xbd\xf9\x4b\x29\xc1\x90\x2b\xf6\xe0\xc1\x02\x37\xa7\xfd\xfb\xd7\x78\x13\xa3\x85\x21\x3d\x36\xd3\xb2\x1b\xa3\x57\x36\xf4\x61\x8c\x86\x18\x3f\x9a\xfb\xea\xf5\x2f\xba\x9f\x0d\x30\xe9\xeb\x6f\xcb\x52\x3f\x19\x6f\x72\x26\xa3\x54\x42\x7a\xee\xa2\x90\x93\x46\x06\x65\xea\x9f\x05\x8c\x61\x96\x72\xc1\x6a\x3d\xd4\x83\xee\x12\x37\xc4\x48\x82\x65\x91\xf5\xf2\x76\xb9\x5e\xcf\xee\x77\xeb\xe5\x8f\xd9\x7a\x71\xe9\xf6\x1a\x23\x99\xb4\x1f\xdb\x09\x42\xcc\xc4\xa2\x88\x13\x33\xcc\x6f\x37\x41\x01\x0a\xfc\x37\xc6\xa2\x48\xa5\xb8\xd7\x22\xe7\x07\xfa\xdf\xd7\x9e\x9d\x45\x24\xb3\x64\xd0\x07\xa7\x94\xdf\x6c\xab\x5e\x59\x94\x45\x8c\x9b\x8c\x0f\x2b\x7e\xa0\x97\xa2\xde\x9f\x47\x63\x52\x19\x29\x6b\x4b\x01\xc6\x79\x4d\x16\xc5\x8c\x61\x78\x29\xa1\x6d\x50\x1a\xdb\x43\x48\x58\x14\x1b\x81\x73\xb5\x1d\x42\xd9\xbe\xaa\x93\xb0\x28\xa1\x3a\x1b\x32\x34\x5d\x51\x1e\x63\x51\x92\x68\x6c\xd5\x43\x46\xd4\x1e\x43\xc7\xa2\x44\x47\x24\x1a\xec\xf6\x5b\x10\x87\x49\x09\x38\x94\x07\xbd\x5f\xc6\x22\xce\x63\x36\x82\x97\xa0\xb9\x98\x3e\x23\xcf\x05\xb6\x30\x89\xa6\x29\x5e\x4b\xfa\xc5\x4c\xa7\x39\xc3\xda\xe8\x1e\x41\x09\x4f\x66\x5e\x1d\x0e\x55\xf9\x5c\x83\x29\x7e\xfe\x36\xcd\xda\xb2\x28\xe3\x12\xc1\x72\xc2\xb4\x81\x00\x62\x4c\x9e\xc0\xa2\x2c\xe5\x18\x18\xdc\x57\xaf\x96\xe0\x69\xa0\x99\xe4\x87\x08\xbb\x9d\x5a\x57\xb5\x6e\x06\xa5\x6a\x16\xe5\x34\xa6\xae\xf2\xd0\xed\x43\xdf\xc4\x64\xd2\x44\x6e\x90\x77\xfb\xa3\x80\xcf\x07\x38\x54\xf5\x79\xf2\xe4\x52\x48\xf4\x0d\x83\x38\xc9\x20\xfb\x3a\xb9\x11\x29\x2c\xf7\x9c\xf5\xd4\x7e\x14\xed\xdb\x34\x96\x65\x91\x54\x1a\xc7\x74\xfb\xbe\x65\x69\x41\x97\xeb\x4a\xe4\xc1\x22\x15\x91\xc8\x45\x1e\x4b\x27\xdd\x31\xc9\x7b\xb2\x48\x69\x82\x28\x8d\xba\xa7\xc8\x43\x59\x79\xac\xb2\xfa\x31\x20\xb0\x3a\xd6\x9c\xe4\xa1\x68\x43\x16\xef\xca\x1b\xd1\x91\x25\x31\xc7\x8e\x59\xdf\x6a\xff\x75\x69\x7a\x7c\xbb\x3a\x66\x98\x5e\x5e\x54\x75\xb5\x28\xc4\xa1\xf2\xee\x39\x8b\xb4\xb4\x12\x5b\x68\xba\x3b\x93\x66\xe5\xca\xe6\x62\x1f\xe8\x11\xbb\x41\x90\xe6\x03\x94\x37\x2a\xff\x8f\x80\x0c\xc3\x2f\xc7\xff\x48\x91\xdc\x12\x74\xe3\xa4\xff\x53\xa8\xf7\x63\x15\xde\xbe\xd6\x09\x82\x8f\x6c\x92\x6c\xbb\x5e\xce\x36\x2f\xeb\x3f\xfc\x51\x88\xac\x42\x54\x17\x93\xaf\xbf\x2f\x17\x96\x2c\x6e\xb3\xbb\x7d\x5a\xef\x02\xaa\xb6\x1b\x66\x7b\x0d\x87\x84\x4c\x77\x50\x46\x57\xee\x8a\xc7\xc3\x4f\x0b\x24\xa1\xae\x73\x7a\x76\xd2\x45\x3b\xc3\x8f\x67\xd8\xc4\x36\x9e\x40\x43\x00\xb3\x33\xde\x2f\x9c\x35\x0d\xb4\x57\x5a\x15\x58\x64\x62\xcb\xbe\x7a\x84\x1a\xdf\xf4\xe3\x4f\xe5\xef\xd6\x70\x83\x35\x7b\x69\x39\x7d\x67\xc6\x4c\x56\xa9\xd1\x36\x1f\xd5\xd3\x10\x15\xe1\x1d\x90\x48\xa5\x88\x5c\x50\x55\xf9\x01\xf5\x97\x2c\x4a\x7e\x74\xaf\xb6\xe3\x7c\x72\x0b\x92\x9b\x07\xd0\x2b\x19\xa3\x80\x18\x21\x94\xa0\x5c\xfa\x6a\x33\xac\x04\x33\x42\x09\xe7\x89\xa7\x8c\xb2\x45\xf0\x31\x06\x3e\x71\x03\x99\xd4\x08\x23\x5a\x2c\x9f\xfd\x6f\xe3\x28\x15\xc3\x40\xc1\x3d\x54\x7d\x2d\x4e\x60\x24\x49\x72\xf4\xd5\xab\x5a\x43\x6d\x09\x99\xbf\x42\xc5\x86\x5f\x58\xf9\x07\x55\x0b\xe3\x1f\xeb\xbf\x09\xf7\x8c\x89\x5f\xff\xa7\xff\x7d\x0a\xf8\xfb\xa2\xdb\x5c\x86\xfd\xf1\xd9\x25\x6c\x97\x11\x6e\xb8\x76\x6e\xc9\x63\x85\x7a\x3b\xad\x08\xf6\x8c\xa4\x49\x8e\x71\xb9\xff\x48\x2c\x92\x66\x12\x5b\xfe\x5f\xff\x1d\x4f\x50\xca\x85\xee\xc3\xa2\x05\x88\xfd\x62\x00\x02\x98\xcc\x4d\xaa\xac\xbe\x79\xeb\x12\xfb\xb7\x55\x8d\xc8\x74\x14\xcf\x1d\x18\x21\x92\x25\xb9\x8e\xc6\x72\x48\x2d\x94\x6d\x21\xf6\x57\xf0\x8c\x8c\xe4\x9a\xe1\x97\xbb\x78\xfa\xe7\xca\x9f\x42\xc4\x56\x9e\xcc\x83\x2a\x5c\x24\x71\x99\x91\x64\x44\xe4\x16\x10\xfe\x03\xe0\xfd\xdc\x73\x44\x30\x22\xa3\x84\x7a\x65\x67\x51\x74\x36\x15\x13\x01\x57\xf7\x33\x22\x19\xc7\xf2\x07\xb2\x08\x6c\xa0\x7d\x39\x86\xd3\xa4\x80\x08\x9e\xfb\xea\xd5\x31\xc8\xfd\x5d\x95\xf9\x8b\xf0\x9f\x11\xa9\x25\x02\x1d\x2c\x25\x9b\x03\xa2\xef\xcf\xbd\x7f\x3e\x59\xc1\x2a\x4a\x8d\x7b\x06\xac\xa6\xdf\x9c\x17\xfd\x8e\x46\x54\x4c\xb1\x23\x16\xda\x37\x9f\x95\x1a\xe6\xbb\x19\x51\x89\x05\xcc\x6a\x38\x7a\x58\x23\x23\x4a\x49\xa2\x7d\x43\x9d\xa9\xac\x7d\xc6\xad\x69\xa8\xd7\xcb\x88\x66\x16\xdd\xb6\x2f\x3e\x60\x51\x8b\xd7\x40\xe2\xcc\x88\x4e\xac\xf7\x78\x3b\x7b\x58\x8e\xbe\x6d\x9d\x4b\x6c\x08\xb9\x3f\xfd\x1c\xe5\xee\x19\xd1\x2a\xc3\x74\xc1\xf2\x7f\x4f\x45\x7b\xde\xbc\x89\xee\x15\x6e\xce\x4d\xeb\x7b\xfe\x19\xd1\x9a\xe0\xc7\xdd\x4b\x7d\x20\xac\xee\xfa\x0b\xd3\x10\x6b\xdb\x67\x85\x44\xf3\x57\x13\x60\x8c\x40\x64\x75\xea\x84\xd6\x1e\x6a\x70\x6d\x0d\x99\x48\x73\x0b\x37\xb3\x3a\x63\xc3\x92\x05\x23\x86\x33\x0c\xa4\x8e\x96\xaf\xfa\x41\xfc\xc4\xc4\xff\x0f\x28\xc2\x88\x3c\xc3\xcd\xb4\x68\x36\xd0\xd3\x00\x33\x1a\x51\x42\x2d\xf8\xd5\xd4\xd0\xbc\xad\xe1\x78\x6a\xc5\x35\x9a\x01\xbf\xc9\xd3\x28\xe6\xb1\xab\x61\x61\x55\xf5\x0a\x4f\x34\xa3\xc4\x50\x84\xd6\x3f\x40\x2d\x86\xd3\x4f\x29\x27\xaa\xe7\xcb\xfe\x0e\xa5\xae\x26\x3b\x0f\xa5\x99\x44\x6d\xd3\x7f\x89\xfa\x20\xfe\x1e\xff\x30\xa3\x54\x4a\xdb\x52\xdb\xcd\x0e\x3a\xe0\x0b\xd8\x5f\xe9\x5f\xff\xab\x2f\xe2\x97\x85\xc8\xeb\x26\x99\x32\x99\x50\x3e\x11\x80\xb1\xb6\x1f\xf6\x97\x35\xd5\xc9\x6f\xb5\xc2\xdf\xde\xcd\xd7\xf8\x13\xf4\x33\xfc\x64\xc5\x71\xaa\xf2\x01\xbc\x6f\xd8\x18\xe0\x87\xa4\x0c\xe1\x77\xf3\xc7\x79\xf8\x55\x96\x61\xa4\xfc\xfc\xf4\xf4\x2d\xfc\x4d\x18\x5c\xf5\xc2\x61\x3d\x47\x2a\xb3\x8c\xc6\x90\x62\xff\x53\x65\x30\xc7\x70\x7f\x85\x51\x76\x72\xdf\x49\x16\xfb\x5a\xf0\xb7\xea\x00\x56\xe2\x62\xfb\x73\xf2\x2a\x39\xb3\x5d\x0e\xd0\xbe\x89\xba\x9d\xd5\xed\x50\x26\x91\x51\xae\x24\xda\xeb\xdd\xd1\x79\x77\x1e\xf6\x33\x3e\x4b\x26\x0c\x36\x2d\xfd\x01\x3e\x67\x38\x3e\x9e\xe7\xd4\xce\x3f\x88\xc3\x53\x19\x38\xf5\x18\xcd\x95\x11\xae\x22\xd0\xee\x01\x9f\xca\x57\x86\xb3\xff\xb9\x4e\xf6\x37\xc4\x73\x5c\x60\x3b\x18\x15\x0c\x12\x5b\x83\x6e\x26\x7c\x1e\x93\xf9\x11\x19\x41\x24\xe2\xa1\xd0\xa2\x71\x20\x84\xf1\x47\x4b\x45\x2e\xec\xb9\xaa\x60\x2f\xa9\x72\x54\x73\x9d\x13\x13\x28\x95\x18\x55\x0a\x90\xf4\x60\xf5\x7e\xaa\xc5\xac\x69\x2a\x55\x0c\x03\x13\xaa\x20\xc2\x5c\xc3\xe7\x5b\x35\x62\xaa\x65\x14\x22\xdb\xa5\x57\x34\xdd\x26\x78\x8b\x5c\x5e\xe2\x1c\x8e\x12\x8d\x9d\x84\x4f\x3f\x1e\x97\xeb\xdd\x6c\xb1\x58\x87\x23\x54\x62\xd4\x2c\xb4\xfe\x51\xd4\x97\x9d\x7d\xe3\xa7\x85\x38\x46\x05\x91\x1e\x98\x8c\x7b\x81\x47\x4d\x23\x0e\x6c\x6a\x47\x40\x6a\xc4\xbc\xd9\x5d\x61\xd5\x3c\x1d\xa1\x44\x31\x98\xde\xfd\xa0\x26\x92\xc2\x92\xdc\x35\xaa\x2e\x30\x4f\xff\x4d\x34\x6f\x1e\x20\xe1\x47\x65\x0c\xac\x0d\x13\xfb\x1f\x55\xbd\xd7\x36\x76\x44\x95\xfb\xd0\x19\xea\x11\x24\x8c\x1a\xa9\x45\xdc\xdb\xe5\x4b\x95\x54\x3b\x8e\x45\x84\xa0\x0d\x9b\x01\x76\xf6\x84\x66\x5f\xc6\x22\x6a\xd3\xdd\xd6\x93\xbf\x7d\x7a\x79\x5c\x2c\xd7\x9b\x70\x34\xb6\x34\x5d\x87\xdd\x5e\x34\x16\xc1\x33\x24\x27\x63\x2c\x12\x2a\x72\x2f\xd9\xc1\xbd\x87\xa6\x8c\x11\xb0\x99\x2c\x09\xa6\xaa\x61\x29\x94\xdf\x17\x19\x01\x81\x6a\xcd\x8d\xf8\xb0\x29\x5f\x14\x92\xf6\xab\x84\xb1\x58\xe1\xd7\xd6\xab\x80\xcc\x27\x8f\x14\x47\x0c\xd3\xb4\xc6\xfa\x7d\xc3\xc2\x1b\x63\x31\x65\xd2\x35\x2c\x1d\x06\x18\x53\x77\x34\x89\x88\x97\x23\x77\xed\x5e\x6b\xf8\xa8\xde\x61\x31\xe4\x28\x1d\x5f\x8d\x27\x96\xff\x28\xb0\x5a\xad\xb4\xa3\xb3\x5a\x96\xa7\x03\xa0\x58\x84\x3f\x3d\x4f\x0d\xe6\x84\x5a\xf1\xba\x2f\xca\xfe\xcf\x42\x11\x2f\x69\xbb\xbd\xc3\x94\xee\xf8\x1a\x59\x22\xb4\x4b\x5b\x3e\xc2\xe7\x54\x1c\xee\xea\x6a\x65\x59\x22\x11\x3b\x75\x03\x75\x3d\xac\xa6\x32\x96\xe5\x44\x8d\xf2\x0f\x33\xc7\xc0\x3f\xf8\x71\x9e\xa6\xae\x4b\xcf\xf7\xde\xa2\xb2\xcf\xe8\x15\x66\x86\x23\x44\xc0\xe5\x62\x8f\x5f\x87\xad\xee\x07\x39\xe1\xb8\xa2\x7a\x69\xe7\xfa\xb6\x3a\xd5\x9b\xd6\x53\x72\x31\x96\xd3\x2c\x66\x03\xcd\xbe\x51\xee\x99\xb1\x9c\x93\xa8\xd7\x2a\xee\x42\xc2\xcb\x4a\x1e\x63\x79\x9a\x61\x14\x68\x3f\xba\x07\xe8\xcc\x6e\xd9\x4e\xa6\xcd\x8f\xcd\x28\x42\x11\x3e\x0a\xf8\xbc\x17\x2d\x34\x08\xd4\xea\x65\xe0\x7c\x57\xa4\x1f\x2e\x13\xcc\x65\x6f\x5e\x36\xab\xab\xbb\xf6\x68\x86\xf2\x40\x81\xd1\x05\x7e\xad\xa8\x2d\x9a\xdb\x82\x05\x7c\x0b\x45\xe6\x07\x1b\x89\x98\x11\x83\x49\x97\xa0\x89\x37\x41\x08\x31\x26\xb8\xb6\xfd\x11\x01\x27\x25\x72\x7f\x7b\x22\x4d\xd2\x18\xb3\x09\x9f\x63\xdc\xc3\xf5\x17\x22\x64\x02\x2e\x42\xd8\x63\xb5\x3a\xb8\x4c\x4c\x12\x9b\x0c\xf7\x74\x10\x0f\xc5\xeb\x95\x36\x6d\xc6\x64\xac\xb0\x94\x54\xed\x3e\x60\xff\x56\xed\x8e\x75\x25\xf7\x70\xb8\x90\xdb\xf5\xc3\x13\xeb\x98\x1e\x3d\x11\x4d\x2b\xf6\xbd\x03\xc7\x54\x6a\x05\xdb\x9c\xb6\x72\x48\xbd\x4c\xd2\xb5\x8c\x29\x20\xda\x92\x87\xc2\xa1\x38\x1d\x16\x55\x37\xa3\xff\xf2\xa7\xd1\x24\x05\x1b\x22\xcd\x1a\x55\x84\xb3\x6b\xe0\x42\xf4\x82\x87\x74\x3d\xcc\x11\x8e\xef\x53\x1b\x85\x60\x77\xdc\xb6\x2e\x14\xec\x18\x33\xa9\xc5\xc0\x22\x57\xd9\xf6\xec\xf5\x77\x59\x4c\x24\x33\x2e\xf3\x63\xc1\x15\x8f\x5e\xba\x9a\xc5\xe4\xff\xcf\xd9\xb7\x75\x39\x8a\x63\x59\xff\x9d\x7a\xe8\x07\x40\x12\x88\x47\xdf\x22\xd2\x5d\x11\x61\x77\xd8\x99\x59\x35\xb3\x66\x79\xe9\x72\xe4\x60\x12\x83\x1b\x70\x46\x46\xff\xfa\x6f\x71\x24\x71\xb3\x1d\x55\xf3\xcd\x3c\x64\x75\x48\x60\x10\xba\x9c\xcb\x3e\x7b\x2b\x11\x38\x09\x9a\x2a\x03\xb7\xbb\x5d\xa5\x9a\x5d\x67\x12\x13\x0c\xc8\x0a\xdc\x55\x37\xc6\xdf\x84\x92\x38\xf1\xe1\x27\xa7\xc7\x3b\x5e\xbc\x94\x0a\x9e\xf2\xae\x6a\x16\x91\x2a\x56\x3e\x70\xdc\x8d\x11\x01\x63\xd1\x84\xf1\xa7\xa5\x2c\x36\x9e\xdc\xcf\x46\xd0\x3d\xc3\xb6\x9b\xb1\x34\x8e\x89\xb7\x3c\x30\x06\xff\xda\xfa\x98\xad\x85\x13\x4d\x7e\x2a\x8e\x13\x5b\xa3\x98\x8b\xec\x74\x83\xc7\xc1\x75\x4b\xc2\x00\xfd\xa8\xf9\x9f\x7b\x6f\xe7\xd1\x24\x32\x42\x77\x55\x07\x30\x85\x84\x4d\x2d\xda\xfe\x58\xa5\x09\xe3\x4e\x1c\x41\x8b\x17\x68\xde\xcb\xea\x47\x77\x53\x41\xb0\xa2\xac\x80\x5f\xcd\x6c\x28\x93\x48\x68\x22\x6d\x45\xcf\xee\x71\xd6\xe7\xd6\x08\xe5\x91\x42\x07\x10\x84\x7a\xb3\x75\x8b\x18\x71\xa9\xbb\x76\x9e\xa0\xdf\xfa\x5d\x14\x50\xd5\xd9\x53\x56\xfc\xf8\xcb\xed\x81\x72\x45\x31\xbf\x6b\xf9\xfd\xc6\x63\xc1\xc1\x86\xc0\x0a\xf8\x09\xd5\x56\x5c\x6a\xb0\x40\x70\xd7\x9c\xc6\x4e\xc2\x18\x0a\x3d\x42\xc2\xdc\x44\xd7\x10\x9a\xa6\x44\x59\x37\xcd\x64\x79\x3e\xde\x55\x69\xaa\x04\xe6\x4a\xec\x7e\x79\x45\x32\xde\x7f\x47\x49\x34\xb2\xc4\x9e\x32\x9b\xad\x47\xe7\xeb\xa1\xac\xb6\x9d\xd5\x40\x25\x15\xdc\x53\x11\x60\xad\xcd\xd5\x57\x96\xcc\x02\x10\x95\xe5\x1c\xfc\x9e\x15\x45\xaf\x7f\x43\xa8\xe4\x1a\x0d\x8b\x59\xde\x74\x6f\x2b\x9d\x1c\xa1\xdb\x16\x6e\x21\x27\x5b\xb3\x40\xe1\x41\x2c\xba\xc4\xe5\xc1\x33\x1d\x37\xad\x39\xa5\x6d\xd4\xa3\x9b\x7b\xe3\x57\x53\x31\xc7\xcc\x8e\xbc\x54\x85\xcb\x69\xfa\x5f\xd7\x51\xe2\x59\x4d\x7d\xf1\xcf\xba\x46\x3c\x73\x31\x5d\x53\x3a\x06\xf4\xea\xbc\x34\xd7\xc3\x25\xcf\x11\x36\x39\x1e\x02\x6d\x38\x86\x87\x57\x2f\xfb\x99\xff\x15\x88\x63\xa1\x7c\x1e\xff\x90\xd5\x1d\x03\xdb\x48\xf5\x92\x50\x10\x96\xdf\x67\xb5\x5f\xbd\xbe\xcc\x9e\x0e\xb3\xed\xf6\x75\xf3\x6d\xf6\x74\xf8\x36\x7b\xfa\xba\xea\xee\xa6\x52\x63\x6b\x5d\x3e\x7e\x2f\xca\xf7\x1c\x74\x17\x17\xa2\x60\x08\x12\x03\x3c\xff\xbb\x9d\x38\x70\x39\x7d\x3a\x49\xc1\x70\x9c\x69\x07\x54\xe1\x44\x89\xbb\x9b\xb1\x73\x6a\x12\x66\xa3\x7c\x68\xc1\x3e\x59\x5c\xb8\xff\x4d\xa3\x24\x77\x06\xc5\xe5\xdc\x93\xd7\xdd\x58\xb6\x06\x22\xb4\x86\xcb\xf6\xe1\xea\xd6\x74\xf4\x49\x3d\xc2\x02\x26\xc0\xe1\xd9\xe7\x99\x1e\xa5\x1d\x58\x10\xab\x70\xe8\x9f\x9a\xaa\x3c\xdd\x54\x51\xf4\xfd\x65\x84\xd0\xcb\x53\x56\x4c\x73\x2f\x2c\x00\x15\xf7\x74\x50\x7f\x5e\x4e\x53\x8e\x90\xd1\xe7\x64\x21\xa3\xb1\xee\x3c\xb0\x81\xf1\x30\xff\x78\x06\x9d\x89\x76\x22\xc0\x9d\x70\x1e\x0b\x93\x54\xb9\x43\xe9\x4b\xa6\x35\x14\x0b\xc8\x72\x5c\x10\x63\x96\x0f\xc2\xa2\x28\x44\xcc\x18\x4a\x9f\x6d\x26\x26\x1b\x8b\x18\xc7\xf8\xdb\xea\x65\xf1\x37\xc3\x09\x2c\x52\x0c\x0d\x65\x7b\x0e\xf5\x7a\x74\xb7\x07\x8c\x50\xad\xb9\xa3\x92\x1b\xa3\x1c\x09\x23\x8c\xc7\xf6\x64\xbb\xf6\xde\x19\x8d\xac\xf7\xef\xb4\x7c\x6f\x73\xc9\x0c\x1d\x50\x46\x49\x2a\x06\x5c\x87\x36\x3c\xd7\x5a\x44\x96\x47\xf3\xce\x48\x32\x16\xe0\xcc\xc1\x72\x08\xf5\x26\xb2\xc2\x47\xe3\x5a\x27\xe9\x9e\xb9\x3c\xde\x45\x18\xe3\xc6\xf2\x56\x79\xf7\x02\x95\x87\xaf\xca\x16\x09\x63\xd2\x56\x59\xdb\xe9\x5e\xef\xba\x68\x1f\x8b\x89\xe5\x84\x3f\x5c\x8a\xb3\x50\x3f\xac\x8d\x7d\xc5\xa4\x4f\x58\x4c\x29\xf2\x7c\x3a\xf4\x13\x06\xb5\xfe\x8a\x45\xde\x5f\x9a\x10\xcc\xc1\xec\x3e\xd1\x5d\xe8\xba\x5a\xea\x5f\xbb\x77\xce\xe1\x2f\xf9\xc0\xfe\x31\x9d\x77\x71\xaa\x9c\x34\x7f\xfb\x71\x5d\x3c\xd1\x01\x02\xa7\x54\x6a\x84\xc5\x4a\xe3\xb7\x1b\x29\x49\xbb\xb6\x44\xa9\x30\xf2\x90\x1e\x0b\x4f\x1f\x64\xd9\xaf\x9f\x3d\xd1\xda\x2b\x56\xd8\xcc\xdd\x95\x6a\x15\x61\x3c\xb4\x06\x68\xdd\x55\x72\xd8\x24\xce\xf0\x8e\x61\xd7\x39\xd6\x48\x9b\x86\x86\xc8\xbc\x2c\xf4\x28\x54\xc3\x78\xc2\x06\x71\x78\x27\x80\xb6\x28\x4f\xa7\xac\xae\x6f\xe8\x79\xfa\xab\x84\x50\x16\x33\x83\x3e\x20\xd4\x4e\xcd\xd8\x63\x02\x5d\xb7\x34\x20\x6e\x8d\x68\x80\xd3\x52\x94\x8e\x6f\xf0\x16\x32\x9c\xb0\x34\xd4\xe8\xe9\x9c\xcb\x32\x7f\x16\xbf\x46\xbe\x35\x4b\x53\x8a\x04\xbe\xee\x3c\x9c\x14\x32\x4c\x0b\x1b\x6e\x16\x3a\x10\x96\x8a\x18\xcb\x61\x56\x8e\x85\xfb\xb7\x1b\xc5\x5e\x6d\xaf\x34\xb1\xb2\xd1\xfb\xd9\x93\x4f\xd7\xed\x37\x87\xe5\x7a\xb7\x7f\x5d\xcf\xbf\x7a\xd2\x35\xc2\xd2\xd6\xb6\x1f\x66\xf5\xb1\x44\xd4\xf3\x27\x1f\xf2\xd6\x04\x05\xbd\xeb\xcc\x61\x26\x98\x4e\x1c\xfd\xdb\x17\x10\x55\x23\x41\xa0\x5d\x7e\x95\x9a\x60\x32\x0d\xa8\x15\xe9\x38\x8b\x42\x0f\xec\x32\x26\x05\x47\xbc\xdd\xec\x0c\xbf\xf6\x22\xf7\x16\x1e\x53\x22\xf6\x01\x67\x44\xbf\x6e\x0a\xf4\x5f\x6f\xef\xdf\xca\x58\x35\xe2\x75\xa1\x2c\x93\x8e\x47\x48\x12\xa6\x83\xc8\x79\x70\x5f\x3b\x51\x9b\xab\xea\x40\xc2\xb4\x88\xd0\xa6\x11\x97\xa6\x35\x3d\xc4\xc4\xe6\x61\x10\x09\x04\x5d\x1c\x64\xa3\x6e\x78\xac\x0c\x40\x81\xe8\xe5\x89\x90\x10\x7d\x58\x54\x41\x98\x89\xad\x26\xed\x09\x9a\xb7\x52\x8f\x50\x87\x24\x0e\x40\x2b\x97\xc0\x9a\xe5\x79\x6b\x90\x61\x89\xd2\x1c\x9a\xf7\xa9\x80\xe0\xd5\xf4\x8d\x03\xa3\x10\x7d\x25\x31\x91\x78\x68\x86\x3f\x1b\x87\x2c\xa4\x43\x97\xfd\xb6\xed\x15\xa3\x48\x98\xfd\x94\x2e\x1f\xdc\x03\x86\x7d\x17\x4d\xd0\xd7\xbc\xd8\xd9\x86\xac\x3f\x9e\xff\xd6\xaf\xcf\x38\xd4\x29\x78\x2d\xb9\x85\x17\x31\x2f\xab\xaf\xb5\x15\xd6\x45\xcd\x9a\xc9\xd9\x13\x47\x61\x10\x69\x87\xde\xc7\x78\xef\xfd\xc0\x78\x77\x85\x55\x7f\x46\x8a\xe8\x1a\x11\xdc\xf3\x2b\x45\x29\x12\x47\xc6\x92\x5c\x56\x20\x2f\x1f\xad\x15\x57\x9d\x86\x99\x2b\xd7\x8b\x24\x0a\x2b\x4a\xed\x5a\x7c\x81\x77\xbb\xdf\x8f\x3f\x10\xa3\x56\x05\xcb\x6e\x2c\xdf\xa0\x02\x9d\xa9\x66\xc2\x92\x41\x62\xc6\x00\x31\xb5\xcb\x4c\x54\x1f\x4f\xe5\xf1\x46\xa9\x00\x89\x59\x62\xd1\xfd\x87\x1e\xaa\xb4\x04\xd9\x61\xcb\x3c\x31\xc5\xf8\x5d\x98\xb6\xca\x04\xad\x37\x58\x0d\xa3\x41\x71\xcc\x4c\x04\x4e\x24\xc9\x06\x72\xee\x8c\x5a\x9c\x52\x24\x67\x59\x35\x6f\xf3\xac\xdb\x33\xe3\x58\xa6\x48\xfa\x65\x2a\x80\xaf\xe7\x09\x57\x26\x89\x93\x00\xd0\x9f\xb2\x9b\xe1\x0e\xf2\x7c\x76\x84\xa2\xd9\x65\x0d\xbc\xc2\xf1\xf6\x82\x8c\x93\x38\xc0\x05\xb9\xf8\x28\x54\x55\xbe\x15\x59\x37\x1f\x79\x14\xa1\xab\xf2\x00\xa2\xda\x98\xe7\x76\x5f\x2e\x8e\x9b\x4b\x37\x19\x78\x2a\xb1\xfc\xbd\x1d\x99\xb1\x7b\xed\x3a\x08\x12\x23\x4c\x70\xff\xd6\xda\x58\xb2\x2c\x7f\x58\xd2\x2e\xdf\x0c\x21\xf2\x6c\xcd\x5f\x37\x7f\xce\x9e\x16\x9b\xf5\x8b\x6f\x91\x91\x50\xfd\x39\xea\xd0\x77\x8f\x50\x04\x4f\x59\x71\xcc\xcb\xe2\xb8\x10\xf7\xb9\xb3\xc6\x63\x22\x13\xab\x6a\xe2\xb4\xfd\x3d\x9f\x86\x6f\x95\x0c\xbd\xe0\x4e\xb0\x17\x93\xba\x18\x04\xed\xba\xe8\x54\x23\x7a\xba\x2c\x9d\x65\x4a\x7c\x93\x8a\x2d\x0d\x38\x52\x2e\x9c\x3b\x70\x2a\x89\x95\x88\xd1\xde\x5d\xcd\x66\xbb\xee\x6f\x40\x51\x56\x6e\xbe\x7f\x3a\xec\xb6\xb3\xd7\xfd\xac\x7b\x5d\x4d\x12\xdc\xcd\xcf\x15\x28\x6f\xae\x9f\xab\x4c\xdd\x60\xc0\xf2\x57\xa4\xdc\x55\xd1\xa0\x58\x4a\xe5\x2b\x8e\x5d\xb3\x09\x2d\x9f\x9f\x8c\x6a\x34\xed\xef\xec\x24\x26\x0e\x59\xea\xb3\xdb\x1d\xc6\xdf\x37\x0a\xeb\xc5\x5a\xe9\x89\xd1\x34\x36\x86\xa2\xf8\xd8\x7c\x36\x64\xf8\x22\x49\xd0\xd3\x3e\x2f\x4b\x35\xf4\x18\x92\x20\xb5\xdc\xc8\xc7\x4a\x5c\x5b\x51\xbe\x0f\x98\xb0\x4f\x4e\xd9\x30\xd3\xb6\xba\x57\x5f\x4e\x92\x28\xd2\x80\xdc\x0c\xad\x0b\xb9\x2b\x4f\x50\x16\xb0\x2f\xbf\x65\xf0\xfe\xfc\x81\x6a\x20\xb7\x0e\xd9\x24\x22\xc4\xda\x68\x6f\xa0\x7e\xf4\x68\xa1\xcf\xd3\x74\xa3\x71\x4b\xa2\x84\x52\xcf\x18\x6b\x8e\x4b\x68\x44\x96\x8f\x4a\x7d\x49\x12\x49\x81\xa8\x3c\x14\x5a\x2f\x74\x8f\xb7\x49\x88\x8b\x6e\xbc\x2e\x5e\xba\x3f\x31\x96\x76\xec\xf8\x99\x82\x8d\x59\x88\xd3\x59\x64\xc7\x62\x1c\x3c\x48\x48\xc2\xd1\xa4\xda\xb5\xcf\x5c\x4c\x80\xd5\xb7\xcd\xd7\x84\x92\x10\xa7\x38\x6e\xf3\x16\xe3\xd3\xfe\x46\x0e\x3f\x21\xc7\xbd\xfe\x05\xde\x27\xdb\x7c\x42\xe3\x30\xb4\xbb\x71\x0d\x0d\x7a\x90\xad\xbd\x7c\x13\x70\x92\xd0\xd8\x42\xc7\xc7\xb0\x85\xd7\x4c\x77\x69\x67\x7c\x87\xc4\x77\x4f\x23\x8f\x1a\xda\x7e\xdb\xae\xda\xde\x85\x82\x2b\x24\x59\xc2\x02\x6d\xfa\x64\xce\x53\xeb\x53\x4f\x0e\xfa\x84\x31\xeb\x85\xfa\xf3\x72\xc4\x9f\x39\x7d\xcc\x38\x8e\x15\x8c\x31\xa7\xb9\x50\x3f\x30\x91\x74\x83\x48\x86\x24\xb1\x4a\xad\x52\x4b\xbb\x23\xec\xdf\x2a\x00\xcb\x69\xe8\xc7\x28\x89\x8c\x25\x29\xa8\xca\xf7\xc6\xd2\xcf\xd5\xe3\x65\x98\x24\xc2\xf2\xa2\xd6\xd0\xcc\x5a\x0f\xfa\x3e\x85\x07\x49\x12\x90\x4a\x78\xf6\xd8\x43\xd3\x95\x6f\x90\x24\x31\x06\x31\x1d\xd6\xd6\x2b\x90\x41\xbb\x6b\xe4\x24\xc1\x50\xca\xcb\x2f\xf1\x36\xb0\xd5\x12\x4e\xad\xc4\xb5\x41\x71\xa1\x87\xd2\xc2\x25\x5d\x63\x1a\x02\x51\x83\x58\xe2\x0e\x9a\xab\xd0\x51\x92\xf2\xd8\x6a\xda\x8b\x8f\x2d\xa2\x0d\xc6\xdf\x27\x15\x36\xfd\x8f\x24\x89\x9b\x4f\x98\x5e\xc6\xbc\xaf\xd3\xfc\x67\x92\x82\x4e\xc7\xfa\x18\x0f\x5f\x97\xd7\xd8\xe1\xc9\xa4\x16\x86\x85\xbd\xd3\x6a\xcf\xbb\xe9\x0b\xc8\x88\x21\x0d\xe6\xc1\x6b\xec\x7e\x96\x5e\x4d\x64\x6b\x0f\x4c\x99\x42\xf6\xa3\x7d\x2f\x91\x29\x81\x0e\x45\xe2\x84\xe3\x7c\xde\x7b\xf2\xdb\x4a\x47\xc2\x71\x53\xac\xeb\x0e\x5c\x39\xc5\xba\x24\x8a\xa4\xd6\xcf\x47\x50\xc8\x55\x8d\xd1\x64\x4a\x2a\xc5\x70\x4b\xfe\x03\x41\x76\xa3\x47\x6b\x0d\xbe\x00\xf9\xd8\xd0\x63\xc4\x60\xcc\xc1\x4e\x58\x0f\x4a\x19\xbd\xae\xd6\xb6\x5e\x09\xd5\x83\xf0\x0d\xa6\xa4\xb7\xe3\x9f\x86\x30\x32\xae\x06\x19\x7f\xbc\x5e\x42\xad\x6e\xfb\x68\x09\xf0\xd8\x65\x04\x9a\xf9\x66\xef\xcd\x89\x04\x04\x01\x17\xc1\xce\xcb\x63\x7b\xfb\xc9\x60\x80\xb2\x4c\x0d\x9e\x23\x5e\xe3\x32\x38\xf8\xeb\x8d\xb2\x6c\x34\x88\x0b\x42\x31\xef\xd3\x94\xcf\x97\xf0\x80\x27\xb8\xbb\x5b\x76\xfe\x11\x01\xe8\x68\x2b\xe5\x41\x9a\x32\xcb\x8c\x8b\xc8\xf7\x2d\x54\x7d\x16\x9b\x87\x4a\x44\x2e\x82\x7b\x71\x11\xf4\x69\x90\x69\xbc\x1c\x78\x14\x30\x54\x12\xc7\x81\x47\x97\x62\x3c\xd1\xb8\xef\x17\x19\xed\x68\xf3\x5b\x9b\xbb\x75\x3d\xe0\x74\x6e\x2d\x8f\x69\x15\xd1\x18\x7e\x39\x3c\x5c\x78\x94\x70\x5c\x33\x4e\xac\xee\xa9\x7c\x47\x13\xbe\x3f\x6e\x39\x49\x93\x24\xf1\x88\xd4\xf6\xac\xb8\x33\xa5\x38\xa5\x02\x83\xa8\xa7\x4b\xde\x65\x6f\xff\x31\x4c\xe2\x72\x16\x07\xca\x0c\x70\xd7\xf3\xb2\xcc\x6f\xc4\x12\x39\x53\x12\xcd\xee\x53\xeb\xc9\x8b\xfc\xb1\xf4\xb4\x73\x84\x33\x13\xe1\x5e\xbe\x9c\xfd\x97\xff\x53\x1c\x84\xe8\xeb\x15\xf0\xab\xdd\x83\xfe\x03\x3d\xad\x3a\xe1\x71\x64\x90\x30\x29\xab\x77\xa8\x95\xbb\xa9\xb2\x63\x56\x88\x7c\x40\x47\x47\x78\xac\x42\xe5\x5e\xb1\x75\x37\xaf\x23\xbf\x3c\x61\x91\xdb\xc1\x72\xa1\xb1\x5e\x6b\x90\x7e\xe6\xdc\xd8\x40\x7c\x91\x29\x38\x5e\x3e\x42\xff\xf7\x34\x0c\xc2\x4e\x62\x5b\x64\xb9\x65\x40\x28\x4b\x44\xcd\x77\x9d\x22\x5b\x08\xe7\x82\x02\xe3\x6f\x35\x18\x94\x34\x66\xb4\xf7\x45\x96\x22\xcb\x3f\x7a\xb5\x8f\x1b\x89\x22\x9e\x26\x2a\xe9\x2f\x70\x31\xe0\xfa\x2f\x04\x52\xa7\x06\xc0\xa7\x06\x01\x4f\xc1\xbe\xe0\xb1\x12\xea\x3a\x06\x36\xee\x2b\x52\x05\x69\x27\x2b\xd7\x13\xd5\x8d\x0d\x22\x2e\x43\x19\xd2\xbe\x68\xe2\x3a\xd9\xcf\x25\xa5\xb1\x4d\x44\x58\x57\x15\x2b\x09\x74\xd7\x9a\x86\x36\x29\x5f\xe6\x7a\x21\x2a\xdd\x5f\xa6\x94\x2d\x34\x6a\x4f\x19\x34\x59\x26\xe3\xa5\x98\xd6\x5d\x04\xac\x3d\xcc\x3f\x2b\x0e\x25\x5c\xd3\x04\x49\x63\xd1\xbd\xbe\x0a\x2d\x70\xad\x59\xec\x62\x60\x16\xc2\xbc\x31\xab\x3c\x3b\x66\x32\x07\x2f\x6e\xee\x7a\x42\x08\xe8\xbb\x9c\xc5\xc7\x3e\x3b\x77\x7f\x25\x09\x3a\x04\xc8\x00\x78\x97\x31\xf0\x3a\xc5\xca\x01\x2c\x67\xee\xf6\x69\xb6\x7f\xd8\xbc\x3e\x1f\x9e\x37\x2f\xfb\x2f\x4f\x1e\xcb\xcd\x4d\xcc\xb0\x12\xb9\xdd\x10\x1d\x75\x58\xd7\xc4\x2d\xf8\x44\x89\xba\x41\xa0\xde\x53\x3b\x4c\x8f\xa2\x7b\x28\x23\xb4\x17\xc6\xf6\xe9\xf9\x2d\x86\x03\x7f\xf7\x42\x57\x24\x0d\x58\x84\x5e\xba\xa7\x8b\xea\x51\x66\xfe\x11\xd3\x20\x09\x79\xe0\xcb\xa1\x64\x95\xd5\x2f\x97\xd3\x78\x4f\x4d\x03\xc3\xc2\xb4\x1b\xbe\xd6\xe2\xa8\x47\x84\x4f\xae\x5b\xa8\x6c\x1d\x05\x02\x59\xba\x48\xf8\xcc\x69\x73\xb6\xaf\x77\xa5\x18\x47\xd2\x50\x13\x5f\x1e\x85\x3b\x9d\xdd\x19\x9e\x44\x31\x29\x52\x25\x69\x14\x8a\xc4\x0e\x48\xe1\x84\x30\xda\x79\xd1\xfa\x52\x57\x45\xaa\x83\x5c\xf3\x6d\x43\x23\x8d\x52\x4d\xc0\x8b\x51\xa3\xeb\xf8\xfb\xcb\xe2\x55\x34\x30\xd0\x97\x22\x69\x24\x2c\x27\xb8\x1b\xbe\xa9\xfa\x25\x49\x49\x62\x81\x2b\xc8\xf5\xe5\xd7\xdc\x32\xeb\xd1\xeb\xd7\x73\x22\x25\x92\x3a\x8b\xe4\x0c\xea\x3a\xf2\x3c\x30\xa5\xba\x0f\x40\x19\x89\xad\x32\x71\xdd\x3a\x0f\xb7\x5f\x89\x26\x0c\x2d\xcd\xfd\xeb\x7a\xf6\xf2\xe8\x4b\xd0\x49\xca\xb8\x64\xc6\x29\x27\xed\xce\xa0\x32\x27\xa9\x52\xdb\x18\x57\x9e\xa9\xdd\xd0\xdb\x18\xdf\x94\x87\xd2\x32\xc2\xe1\xbe\xe5\xb8\x33\x27\x1b\x72\xdb\x09\x75\xa0\x10\x89\x80\x54\x16\xfd\x8a\x4a\xd3\xd0\x4a\xa7\x58\x01\xdf\xf2\x04\x8b\xb7\x2c\xd7\x95\x4b\xae\x4c\x4e\xa5\x34\x25\x09\x7a\xd3\x27\xf1\x6b\x77\xce\x8a\x62\x70\x23\x91\x0a\xcb\x6b\x25\x72\xd8\x9c\xa1\xe8\x96\x4a\x2a\x24\x47\x4c\xc0\x9f\xfb\xbd\xaf\xc5\x4a\xa5\x94\x28\xfc\x8a\xb2\x8e\x7d\x57\xa9\x03\x69\xb1\x13\xe5\xb9\xac\x9d\x5c\xcd\xe7\x9b\x65\x2a\xc1\x78\x65\xef\x57\x50\xe5\xe9\x84\x2f\x78\x7b\x27\x4a\x95\x14\x31\xf8\xe5\x84\x0e\xa4\x8d\xce\x4f\xc2\xf8\xa9\xd2\x2c\xed\xea\x19\x1e\x00\xea\xd9\x4f\x91\xe5\x36\x51\x89\xc1\x27\xd7\x4f\x13\xc0\x20\x6c\x6b\x66\xee\x2e\x72\x28\x2b\x7e\x0f\x6c\x3a\x79\x7c\xcd\x12\xac\xc9\x6f\x0f\xbe\x47\x68\xe6\x59\x33\x52\x3e\x26\xed\xb9\xa1\x35\x96\x7b\x75\xae\x44\x0a\xca\x96\xfc\xa3\x37\xbd\x2f\x7f\x2c\xc1\x31\xdc\x13\x11\x30\x96\x48\x07\xa2\xec\x1f\x7a\x34\x0a\x22\x88\x83\xc4\x71\xb7\xbc\x96\x13\x91\x3a\x22\xc2\x20\xc0\x78\x96\x4b\x66\x2d\xca\xd3\xb9\x2c\xa0\x47\x02\x88\x90\x85\x91\xcb\x74\x6e\xb6\xcf\x93\x7b\x87\xb1\x7d\x1f\x97\xfb\x2e\xab\xef\x90\x75\xdc\x3c\x44\x44\x34\xc4\x6d\xe2\xf1\x57\xeb\x37\xe1\x94\x9c\xec\x24\xc2\xf3\xb2\x20\x65\xed\x25\x1f\x10\x3c\xde\x1c\x41\x11\x69\x88\x3c\x62\xaa\xfa\xe7\x05\x8e\x65\xf7\xa4\x91\xd1\x56\xf4\x26\x17\xd9\xe9\xbf\xa0\x2a\x8b\xcc\xe5\x82\x63\xfa\x8f\xbf\xfe\xc7\xdd\xa5\x75\x8b\x89\xa7\x9b\x70\x29\xa2\xbf\xd0\xe7\x22\x82\x28\xca\xdc\xce\xf9\xb5\x68\x4f\xd8\xbe\x41\xe1\x8e\xee\xcc\xc8\x7d\x27\xa2\x84\x54\x3d\x7d\x94\x4c\x10\x4d\xb0\x1c\x00\xb4\xf5\x87\xbc\x49\x2e\x68\x18\x62\x36\x46\x68\xbd\xac\xb2\x9f\x53\x6b\x5c\x50\x19\xfb\xac\xc3\xac\xaa\xc4\xc7\x74\x07\xf6\x7b\x9d\x60\x69\x8a\x87\x18\x9c\xa0\x3a\x42\xa1\x3e\x7a\x91\x48\x22\x98\xb4\x1c\x1f\x90\xb5\x3e\x19\x82\x51\x37\x95\xe3\x98\x5d\x88\x62\x59\xee\xdf\xba\xa0\xa5\x88\x59\xcc\x4d\xaf\x34\x08\x55\xf3\xf1\x24\xbc\x59\x50\xcd\xdb\x75\x09\x76\x37\x1b\x45\xc3\x45\x1c\x6b\x8c\x85\xd9\x32\x65\x2f\xe7\xe3\x1b\x95\x4a\x9c\xe3\x37\xbf\x7c\x78\x82\xae\xf1\xb1\x26\x38\x8d\x0d\xf7\xa0\x82\xc9\x40\x70\x99\xd2\x9e\xe4\xcb\xf2\xe3\x8d\xb7\x11\xbf\xb3\x09\xee\x68\x8a\x26\x16\xe0\x9d\xb5\x3b\x29\xb4\xb9\xfe\xab\x7f\xba\x34\x4d\xb1\x7c\xed\xd2\xfa\x5d\xfe\x6f\x8a\xe0\x26\x6a\xf9\xaf\x26\x8f\x2c\xc2\xc0\x92\x1a\x5e\x4e\x27\x07\x37\xee\x22\x9f\x42\x44\x3c\x95\x3e\x3d\xbe\xaf\x00\xea\xf5\x1d\x85\x08\x22\x64\x22\x2c\x42\x30\x07\x51\x7d\x17\x59\xb3\x15\x59\x35\x87\x7e\x15\x4b\x11\x07\x16\x85\x72\x7e\x13\x37\x2a\xe2\x7c\x37\x45\x90\x2f\x40\xe4\x15\x08\xfd\xd1\x15\x2a\x5e\xd9\x0a\x42\x1a\x89\xa9\x4c\xa7\x29\x5d\x5e\xd3\xf5\xb5\x7d\x34\xd6\xc5\x2e\x16\x18\x93\x1e\x3a\xd3\x42\x05\xc6\x56\x31\xda\x59\x70\x9f\xbe\x9c\x08\x1d\x58\xaf\xa7\x71\x5e\x5c\xaf\x6e\x79\xa7\x3f\x0f\xd0\xef\x5e\xe9\xac\xd9\x67\x37\x24\x05\x6f\xb9\x7d\x93\x7b\x40\x18\x18\x77\x74\x58\x41\x2c\x8f\x94\xf9\xba\x5e\x4e\x46\x02\x22\x89\xc1\x3f\x17\x27\xa9\xa1\x5a\x40\xd5\x64\xc6\x33\x66\xdf\xfc\xb5\x91\xea\x9b\xbf\x51\x62\x0b\xdb\x84\x31\x59\x9e\xd9\x17\x3d\x56\xe2\x64\x6b\x35\xc6\xc6\xbe\x00\xae\xbd\x48\xcd\xfc\xf2\x31\xe2\x1a\xf1\x3d\x84\x4d\x50\xd9\xfc\x0d\xfa\x6e\x93\x0e\x8a\x29\xf7\x8e\x56\xb3\xa2\x7d\xf6\x27\x54\x2d\x77\x3d\x0c\x67\x49\x30\xf8\xc8\x8f\x50\x20\x04\x6a\x7c\x23\x19\xb4\x4e\x58\x7b\x23\xa5\xc7\xd5\xf7\xbe\x9d\x51\x66\x26\x50\x96\xcf\x23\xaa\x32\x10\x0c\xb3\x13\x6b\x0d\x28\x2b\x69\xb3\x41\x1d\xfe\x46\x06\x10\xa3\x17\xf1\x06\xf9\xb9\xf3\x57\x65\x18\x32\x0c\x09\x39\xc9\xcc\x01\x6d\x01\x91\x21\x0f\x10\x03\xf3\x02\xef\xaf\x18\xd1\x17\xf9\xdf\x03\x27\xc8\x28\x08\xc3\xb1\x02\x5e\xbd\xeb\xb7\x78\x19\xa9\x48\xf4\x54\x09\xed\xc1\x3d\x9f\xef\x27\x68\x15\xd7\x95\xa8\x20\xb0\x3a\x69\xc5\x12\x4c\x55\x76\x38\x5c\x49\x0c\x05\xab\xbf\xd4\xda\x59\x5b\xf1\x01\xda\xf2\xfe\x39\xcd\x80\x9b\x06\x8e\xa4\xcc\x3a\xfd\xeb\xc5\x06\xf9\xdb\xe8\x6f\x5d\x83\xb4\x44\xf0\xa5\x2a\x2b\x58\xb4\x86\x43\xd7\x64\x12\x5c\x94\x42\x96\x97\x3b\x59\x02\xc9\x62\x4a\x2c\x95\xd4\x62\x1f\x06\x01\x72\xcd\x6f\x7c\xb1\xa4\x64\x09\x10\x0b\xc5\x77\x64\x65\xbe\x21\x8e\x68\xa0\x9d\x03\x7a\xc1\x98\x7c\xf9\x3e\xe4\xfd\xf9\xab\x2a\x42\x7f\x1b\x1e\xd0\xc0\xa9\x36\x62\x20\xec\xf0\x33\xa4\x5f\x44\xfd\x76\x70\xfd\xba\xdf\x93\x24\x1c\xce\xab\x9b\x71\x42\x99\x04\x81\x31\x5e\x28\xb3\xac\x3e\x56\xbf\xce\x59\xf5\x81\x99\x4f\x47\xd8\xee\x3b\x32\xc9\x9c\x23\x8e\x90\x0b\x9b\xa2\x1a\x1a\x07\x32\x31\x41\x20\x46\x25\x88\xd6\x5e\x19\x92\xd7\xbb\xae\x3c\x20\x98\xe0\x9e\x61\x94\x6c\x99\xd5\x2a\x3b\xe7\x60\x19\xfa\xc6\xef\xcb\x23\x9b\xe2\x82\xe6\xcd\x39\x53\x9d\xae\xe5\x7b\xe9\xdf\x95\xb3\x50\xa6\x43\x75\x86\xec\x74\x39\xad\xce\xa5\x7a\x43\x90\xc6\xcf\x89\xce\x1a\x91\x3c\x91\xc8\x2e\x55\x9e\xa1\xb8\xc5\xfa\x7a\x67\xf0\xb9\xd4\x94\x8e\x82\x96\xa5\x59\x35\x6f\x98\xe4\xec\x9e\xc5\x24\x18\xa8\xfc\x4e\xf7\xfe\x4f\x22\x8a\x31\xd2\xf3\xaf\x77\x51\x6b\x18\x65\x64\xa5\x88\x54\x12\x77\x98\x83\xfd\x5b\x55\xbe\x77\x4d\x0c\xf0\xd7\x4c\x7b\xf6\x9d\xba\xbf\x26\x04\x7d\xdc\xf9\xd7\xf5\xd3\x72\xfd\xf2\x38\x24\x63\x22\x52\x18\x89\xbb\xcd\x53\x79\x0c\xaf\xa0\x22\xb7\xb7\xf8\x91\x3f\x17\xde\x79\x73\xc9\x42\x91\x7a\x82\xf9\xfa\xed\x2f\x51\x28\x77\xee\x02\x21\x22\xbe\xfd\x9c\xf4\xb4\x33\xc2\x8a\x59\xba\x5e\x0a\x28\x4a\x87\xd4\x96\xb2\xe0\x6b\xdd\xed\x26\x3a\xd4\xb4\x17\x42\xf4\x7f\x05\x6e\x14\x1f\x26\xe5\x27\x93\x0d\x40\x48\x2b\x47\x05\x0a\xe5\xaf\x47\x25\xbf\xd2\x84\x0c\xed\x9d\x83\xbc\x64\xb9\xde\x67\x27\x09\xd5\x42\x9c\xae\x32\xe3\xc3\xac\x81\x34\x3c\x4c\x6d\x31\x54\x01\x43\x6d\x86\x4f\xb3\x78\xfd\xb5\x18\xd0\x74\xc9\x65\x37\xf9\xff\xce\x34\x9c\x0c\xa7\xe1\x16\xe0\x64\x8d\xba\x1e\x08\xc8\x7d\x3b\x10\x0c\xee\xef\x7e\x64\x79\x3e\x07\xd1\xd4\x4f\x97\x7e\xaf\x33\x60\xcf\x03\xa1\xb5\x3b\x3e\xf7\xe5\xa2\x12\x05\xdc\xaa\x6d\x52\x01\x8b\x59\x30\xea\x7d\x7b\x7b\x54\x41\x6c\x75\x2d\x4e\x59\xd1\x3c\x94\x55\xeb\x22\x4c\x69\x10\x87\x25\x98\xa3\xc3\x50\x85\x29\x45\xbc\xeb\xcb\xbe\x97\x5f\x68\x7f\xce\x1b\xfc\x2a\x94\x89\x97\xf7\x74\x8f\x71\x2d\x60\x4f\x54\xc4\x43\x04\x0a\xbd\x65\x4d\x7f\x9f\x71\x81\xa0\x22\x71\x80\xbe\xf8\xe1\x60\xd7\xc1\xde\x82\x7e\x86\x47\x92\x22\x31\xc3\x3c\xeb\xbf\x2e\x70\x81\x75\xbd\x3a\x9d\x3d\xbd\x0d\x51\x24\x49\x91\x19\xb6\x79\xcb\x2a\x3d\x54\x55\x70\xd5\xf5\xbe\x1b\x58\xa6\x22\x34\x3e\xfd\x99\xda\x6f\x9e\xfd\x33\x53\x42\x43\x5f\x9b\x12\xfb\x7a\x49\x45\x49\xea\x32\x78\xaa\x2c\x74\x97\x09\x1d\x14\x24\x2b\xca\x28\x5a\x46\x99\x19\xd7\xee\xfa\x66\x13\xe0\x71\x85\x1a\x3d\xa3\x89\xa8\xe2\x80\x23\xaa\x51\x5e\x30\x28\xbc\x40\xaa\x3d\xa8\xd6\x1a\xff\x57\x7b\x2e\xd6\xce\x47\x0c\x23\x3e\x94\xca\x23\x2a\x66\x01\xa2\x1a\xf6\xae\x38\x75\xf7\x36\x51\x00\x22\x2a\x4e\x4d\xc0\xfb\xf8\x38\x32\xe4\x4e\x1c\x5c\x15\x1b\x40\x3c\x9f\xd0\x7a\x91\x35\x19\x0c\x70\xb0\x83\xa4\xdd\xc4\x59\x53\x09\xb7\x6a\x03\x3e\xef\x6a\x49\xf5\xab\xf2\xb4\xbf\x2e\x90\x50\x89\xa6\x98\x90\x79\x2c\x73\x47\xe1\xf9\x0c\x79\x1f\x68\x51\x29\xe7\xc6\x52\xc1\xcd\xf2\xcc\xab\x99\xfc\x77\x98\x78\x3a\x6e\xd7\x4d\x24\x02\xeb\x01\x1f\x00\xee\x44\x78\x6f\x2f\x52\x25\x23\x61\xa4\x4b\x65\x57\x3f\x21\x1c\x9b\xaa\x4a\x12\x0b\x65\xa8\xa1\x79\x51\xcd\xaa\x2f\x2a\xbf\x52\x06\x20\x4a\x0a\x89\x44\x94\xbb\xd5\xd3\xd3\xea\xf5\xb0\xdb\xaf\xb6\x87\xf0\xb0\xd9\xae\x7c\x22\x5f\xa9\x88\xa0\xb9\xfd\x04\x75\x5d\x16\x07\x7a\x67\x8d\x2a\x2a\x46\x45\xdf\x5d\x8d\xd2\x08\x86\xa6\x14\xd8\x5a\xca\x67\x28\x6a\x51\x65\xd9\x20\xbf\xab\x74\x68\x01\xf8\x07\xbb\x8b\x79\x9a\xfe\xae\x55\x23\x61\xb8\xae\xcf\x6a\x78\x11\xa5\x58\x0b\xfa\x08\x0d\x96\xd1\x8c\xa7\xa3\x4e\x53\xac\x89\x3a\x79\x16\x48\xa2\xb4\x52\x36\x3b\x84\xec\x97\x0b\x4b\xd4\x36\x95\xa3\x21\x0a\x04\xc5\xcd\x09\x73\xd7\x1e\x95\xe0\xdb\x64\x8c\x76\x57\x7d\x2e\x8b\xba\xbc\x2a\x9d\x70\xbd\x4c\x48\x31\xd2\xf3\xcf\xd9\xe2\x77\x84\x3b\xfa\xcb\x4d\x04\x58\x99\x83\x88\xc6\x76\x58\xf7\x6f\xe2\x4e\x60\x53\x99\xd8\x18\xe1\x02\x98\xa8\x56\x71\x19\xc9\x3e\xdb\x33\xe1\xe6\x17\xd1\x41\xac\xb1\x42\x72\x0c\x62\xd8\x96\xef\x9f\x71\xfb\x11\x1d\x70\x61\xcb\x5e\xb2\x13\x48\x51\xfc\x50\x9f\xa1\xfb\x75\x18\x58\xae\x56\x17\x53\xc4\xaa\xb3\x4f\x6c\x01\x7f\x55\x92\xa0\xf5\xed\xb0\x7c\x3d\x92\x44\x87\x09\x47\xa9\x5e\xab\xb3\xe2\xc0\x4d\x5d\x23\x24\x08\xb8\xd9\x7e\xf9\xa3\x2a\x73\x9f\x5a\xd3\x11\xf3\x30\x88\x9f\x65\x5f\x81\xa6\xa3\xd4\x6a\xb8\xef\xa0\xc1\xe4\xe5\x10\x41\x7d\xf3\x5d\xa2\x34\xc2\xd0\xc1\x6e\xff\xaf\xab\x0a\x83\x1b\x42\x67\xa3\xaf\xad\x23\x09\x98\xbf\xb4\x4f\xed\xd0\xf5\xde\xd5\xd4\x24\x56\x78\x32\x74\x76\x2c\x32\xa8\xf7\x5e\x24\xff\x24\xe6\x71\xfd\x89\x68\x4a\x11\xed\x29\x31\xf2\x83\xf4\xea\xfe\xa5\xa9\xa6\x22\xf5\xea\x9a\xed\x7a\x5f\x17\xce\x64\xf6\xfb\xbf\x66\x11\xf5\xdc\xf0\x4b\xf1\x51\x6f\x45\x5d\x83\xde\x65\x85\x82\x27\x51\x37\xad\x3f\x85\xb1\x05\xc7\x03\xe9\x2f\x62\x41\x34\xa8\xbb\xeb\x9d\x10\xcd\x12\x8e\x05\x90\xb3\x73\x99\xe7\xe5\x0e\xce\x0d\xb8\xba\x7e\x1b\x6f\xf7\x9c\x44\x9f\x3b\x7d\x3a\x0e\x12\x3a\xb4\xe3\x16\x15\xe8\xac\xa9\x3d\x25\x60\xfe\x71\x6b\xd6\x8e\xeb\x11\x74\x4c\x2d\xf6\xeb\x24\x7e\x5d\x27\xc2\x74\xcc\x42\x14\xe2\x5d\x6c\x17\x2b\xc7\xbb\xe4\xdf\x21\x4e\x22\x4f\xdd\x8d\x99\x28\xc4\xc7\x90\xf1\x8e\xa0\x13\x6a\x0b\xe8\x85\xd6\x23\xe2\x3f\xa2\x13\xd0\xe8\x2b\x7c\x7b\x5d\x6c\xd6\x2f\x87\xe5\x6a\xb1\x7e\x9e\x3d\x79\x94\x9c\xe6\x8a\xa1\xd0\x84\xe5\x74\x44\x27\x19\x4f\xc3\x1e\x17\x7e\x7b\x4a\xa5\x21\xc7\xfd\x70\xfb\x75\xfe\xb4\x5e\x1c\x16\xaf\x9b\xef\x4b\x64\x1a\x5e\xcc\xbc\x6f\xa8\x53\x49\x65\xe8\xea\xb8\x1e\x33\x73\xc7\xc1\xd4\xa9\x4c\x30\xb0\x00\xbf\xce\x79\xd9\xc5\x00\x75\xaa\x0d\x67\x83\xaf\x3a\x86\x4c\x69\xc1\x18\x09\x7d\x38\x62\x0b\xd5\xd7\x5a\xbf\x60\x49\x72\x27\xba\x42\xb4\x48\x15\x46\x08\xeb\xec\x58\xcc\x1a\x5f\x08\x78\x7b\xde\x4a\x12\x60\xf9\xcd\x29\x2b\xd6\x4e\x9f\x65\x84\x4b\xd7\x92\x00\x66\x54\xd7\xdb\x6e\xb7\xd4\x8a\x51\x44\x81\x60\xa5\xa4\x2b\xe5\xf0\x0f\x6a\x83\x60\xbe\xa3\x21\xe8\xf6\x94\xc6\x60\xf8\xeb\x6a\xe2\xdd\x7e\x28\x65\x04\x12\x33\x89\xe6\x2d\x87\x06\x66\x36\x12\x87\x61\xe7\x7e\x2f\xd1\x52\x62\xf4\xec\xfb\x90\xef\x94\xe8\xf6\xe1\x50\x55\xf5\xf4\x94\x49\xff\x47\x60\x24\x22\x4e\xab\x24\x53\xe2\xaa\x3a\x48\x43\x2c\x90\xf2\xa4\xe3\x73\x10\x95\x1e\xb9\xbd\x1a\x38\xc7\x52\xa8\xf7\x7c\xd7\x94\x67\xf4\xc9\xbb\xbb\x4b\x5b\x6f\xec\x6b\x93\x5b\xd7\xe2\x26\xfa\x4a\x83\x61\xa9\x05\x4c\x37\xd5\xa5\xbe\xa5\x33\x4f\xb4\x49\x93\x38\xf5\xe9\x1d\x2b\x26\xd8\x67\xfa\x21\x50\x91\x23\x4c\xf0\x84\xc1\xb7\x4a\xa0\x21\x30\x5c\x79\x82\xa3\x1c\x3e\x5e\x32\xf5\x03\xbc\x74\x8b\x6d\x4d\x3c\xac\x13\x35\xa9\x2e\x5d\x5b\x18\xa9\x0e\x39\xb2\x40\x80\xfd\xe8\xf8\x86\x30\x36\x18\x4a\x28\xe0\x57\xf3\xd8\x0d\x3b\x84\x9a\x25\xaa\xd3\x6b\xd8\xf5\x05\x5e\x10\x25\x02\x27\x50\x1f\x1b\xba\x05\x9c\x83\x48\x11\x9a\x8e\x08\x43\x7f\x40\x31\x2b\xf4\x2d\xf1\x67\x77\x09\x89\x42\x03\x5e\x94\x00\xb1\xbb\x8e\x63\xe1\x6a\xa3\x01\x42\x20\x8d\x47\x74\x5d\x1f\x5f\x8b\xac\x8b\xf2\x01\xe1\x4e\x1f\x46\x1f\x4c\x59\x1d\x8a\x8f\xd3\x6f\x93\xdf\x32\x12\x59\xea\xdb\x8f\xff\xaf\x4b\xf6\x1f\x7f\x21\x4d\x8d\xd2\xbe\xfc\x65\xdb\x94\xe7\x7b\x0a\xfd\x9f\xba\xcc\x40\xa5\x41\x15\xd3\x63\xd6\x7a\x78\x93\xa1\xa1\xc0\x30\xa6\x6e\x77\xb8\x41\x7a\xc8\xb5\xb3\x38\x44\x95\x39\x4c\x8e\x6d\x3a\x47\xac\x2f\xf7\x81\x38\xd0\x28\xfe\xf1\x58\xe6\x70\x72\x85\xb3\x9f\x16\x93\x4f\x1e\xcf\x53\x12\x0e\x98\x5e\x3e\x8d\x32\xb8\xcb\xb8\xd6\xa9\xd7\x45\xb2\xbb\x84\x25\x64\xf4\x0f\x9e\x52\xe5\x09\xed\x70\x7b\x0f\x56\x9d\x61\x01\x29\x13\x08\x1e\xcc\xea\x17\x38\xe6\xd9\x11\xb3\x7a\xb7\x9f\x4e\x04\x21\x25\x9e\xb9\xac\x11\xb9\xff\x04\x13\x1b\x70\x8a\x8f\xf0\x57\xc7\x36\xfe\xf2\x02\xef\xbf\xdf\x45\x42\x83\x10\x21\xd5\x4e\x62\xe3\xbe\x1a\xf9\x3f\xc6\xd7\xa8\xc8\x33\xbb\x3e\x7f\x3c\x88\x5c\x75\x25\xc9\x20\xd3\x98\x38\xdc\x6e\xf7\x27\x49\x94\xa5\xfa\xfd\x26\xf2\x4c\xef\x90\x66\x70\x98\xbe\x19\xaf\x43\xa9\xa9\x0f\xe9\x3d\x38\x99\x9e\x01\xbd\xef\xf4\xb3\x8e\x05\xed\xfc\x2d\x0c\x47\x79\xe1\xc5\x1b\xe4\x23\x99\x25\x02\x8a\x00\x86\x70\xbe\x7f\x59\xbd\xdc\x22\x0f\xfc\xd4\xf0\x02\x95\xc6\x78\xba\x3e\x95\xc7\x6f\x99\x55\xe2\x19\x99\x08\xae\x9b\x8e\x35\x82\x5b\x9e\xca\x63\x07\x5d\xb4\xc4\x86\x93\x05\xa0\x45\x84\x86\xdc\xb9\x82\x9f\x3b\xa8\x32\xa8\x77\x90\xe7\xe5\xa5\xf9\x52\x5e\xfa\xd9\x04\x89\x42\x70\x0b\xae\x71\x57\xe3\xd7\xb5\x71\x89\x80\x9c\x4c\x95\xd1\x20\x70\x0d\x20\x93\x54\x74\x02\xa9\xab\xba\x01\xb8\xa5\x36\x4d\x00\x74\x88\x86\xe8\x2c\xcf\xa6\xd1\x55\x30\x5c\xa7\xe0\x61\xcc\xad\x8b\xe4\x1d\x1b\x13\x84\x29\x52\x4b\x28\x51\xcc\x2f\x55\x31\x95\x0f\x1b\xcf\x31\x13\x24\x02\xb3\x93\x8e\x0c\xcb\x6d\x93\x37\xe7\xbc\x09\x04\x44\x56\x18\xb7\x34\x59\xb3\x84\xd6\xa9\xad\xee\x10\xd7\x12\x13\x28\x81\xc2\x4d\xf3\xcd\xd7\x97\xfd\x9f\xae\xe4\xcb\x3f\x64\x18\x52\x13\xf5\xda\x06\xd6\xd9\xc6\xd8\xc5\x43\x39\x3d\xc7\x26\xf7\x0d\xe3\x00\x6c\xdc\xa2\x68\x5e\xe1\x27\xf4\x11\xd8\xf1\x8c\x30\xa1\xb0\xd2\x94\x87\x53\x76\x3f\x16\xde\xf5\xb5\x95\x10\x4f\xe5\x71\xed\x6a\xae\x2d\x53\xc5\xf5\xeb\xdd\xbb\x83\x86\xd0\xa9\x58\xbc\xec\x36\xaf\xde\x6e\x31\x51\x64\x05\xae\x84\xd6\x4f\x9b\x45\x53\x3e\x7d\xd9\xdf\xb6\xf3\x4c\x14\x29\xa7\x5a\x0c\xea\xc7\x12\x72\x38\xde\x20\xca\x30\x11\x4d\x89\xe9\x8a\x84\x57\xfb\x2f\x73\xd1\xa8\xb7\xdf\xa6\x51\xaf\x7b\xf0\x62\x43\x22\x83\x47\xe3\x8d\xd4\x95\x21\x5a\xa2\xcf\xf7\x6d\xb5\x43\xd9\x94\xc5\xd3\xfa\xe1\xc1\xbf\x08\x63\x46\x05\x9e\xc4\x2a\xd7\x50\x3d\x56\xe5\xe5\x4e\x91\x8f\x61\xb1\xa5\xb9\x74\xe0\x40\x4b\x37\x87\xa2\xbd\x37\x69\xc4\x89\x89\xc3\x00\x7d\x69\x79\xf9\xd8\x95\xa7\xbf\x19\x35\x37\x71\x94\x58\x7e\xba\xd5\xe3\xd3\x70\x2f\x31\x09\x23\x7e\x7b\x7e\x88\x3e\x2f\xbb\x36\x3c\xd0\x18\x47\x43\x92\xc7\x21\x6b\xce\x9d\x1f\xe5\x22\x0a\x43\xe7\x8b\x6f\x0a\x40\xda\x99\xe9\x63\x8e\x7f\x21\x55\x12\x1d\xd6\x2f\x4f\xdf\x07\xa5\x40\x46\x90\x08\x43\x92\x05\xbc\xdb\xfc\xd3\xbd\xdb\x4c\x1e\x40\xa4\x1c\x37\x96\x6d\x05\x5a\x34\xf0\x6b\x79\x11\xfe\x96\x92\xd9\xda\x8c\xf3\xa5\x99\x5f\x3e\xec\xb9\xfc\xf7\xe6\xaf\x54\x09\x02\x98\x2c\x24\xcb\x33\xd6\xe3\xe6\xcd\xc7\x7b\xb8\x51\x29\xc7\x01\xfb\xdf\x8b\x3e\xba\xca\x81\x87\xb2\xfa\x1c\x41\x64\x94\xb0\xb4\x34\xf3\x2c\x17\x85\xca\x4a\x4c\xa5\x94\xde\x92\x9c\xf4\x35\x4c\xbb\x5a\xb2\xa6\xec\x80\xce\x65\x7d\x25\xd7\x76\xe7\x5d\x34\x8d\x3c\xe9\xb3\xd5\xf4\xbb\x8a\xeb\x18\x9d\x58\xbe\xdc\xf2\x1d\x85\xc3\xa7\x8d\x80\x8a\x7b\xea\xad\xb5\x61\x8b\x29\xe4\xcd\xe8\x34\xc4\xdd\xa2\xb6\xfa\x00\x65\xd5\x6b\x5b\x4c\x69\x7e\x8d\x4e\x81\x8c\x9c\x1d\xff\xa9\xb4\x12\x88\xce\xfa\x92\x35\x0b\xe1\xf5\x47\x89\x01\xb0\xd1\xc0\xfa\x24\xaa\xce\xc1\x41\x6f\x74\x10\x99\x35\x26\x4c\x99\x33\x01\x7f\xc0\xa6\x98\xc3\x9b\xc8\xcd\xed\xb4\xc2\x5f\x81\xa3\x8c\x89\x2d\xd9\xad\x85\x89\xed\xcb\x07\xb0\x88\xe5\x61\x2f\x1a\x04\x14\x04\xeb\x63\xae\x68\xf4\xa0\xfc\xf7\x08\x42\xe0\x3b\x27\xcc\x9a\xb6\xf5\xb6\xb5\x8a\xb2\xb2\x70\xa0\xd8\xe1\x44\xa2\x41\x90\x86\x2e\xd0\x5d\x01\x7c\x29\xed\xd1\xda\xd9\x63\x34\x08\x13\xc0\xbd\xd3\xd2\x1f\xaf\x7e\x39\xfb\x6a\x22\x00\x76\x6f\xa1\xd0\x20\x4c\x43\x88\x06\x6a\x32\x96\x66\xba\x2f\x45\x70\xdd\xa2\x80\x53\x4b\xf7\xb8\xcc\x6a\xf1\xb3\xe7\xec\xa0\x41\x44\x43\xcc\xe6\x59\xcc\xfd\xa6\x78\x77\xd2\xc3\xbe\x39\x31\x58\x68\x79\xca\x0a\xe9\x0b\xf7\x69\x10\x09\xe5\x09\x6f\x66\x79\xde\xba\x75\xdd\x4f\xba\x1a\xa8\x11\xa1\x84\xbf\x0a\x6c\x99\x68\x93\x41\x15\xf5\x44\xd7\x34\x20\x01\xa5\x8e\xb5\x0b\x01\xc4\x98\x25\xbb\x5c\xe7\xb9\x69\x40\x44\xea\x8b\x38\xbe\x95\x8d\xc5\xe2\x3c\x94\xd5\xe6\xdc\x2b\x64\xba\x9e\x94\xc7\x48\xe0\xbd\x29\x60\xf3\x26\x0a\xe1\x7f\x2b\x8e\x03\x24\x19\xec\xd8\xba\x5c\x40\x7a\x3a\xce\xa3\x9f\x4d\x02\x8e\x8e\xec\xf6\x75\xbd\x79\x5d\xef\xff\x44\x6d\xf4\xc3\x6e\x3f\xf3\xa7\x60\xdb\x45\x22\x0a\xe0\x7c\xa8\xa1\x79\x81\x5f\x56\x03\x66\x07\xa0\x27\x82\xa2\x93\x2f\x98\x00\x25\xd1\x90\x7e\xbf\xfe\x94\xa0\x86\x06\x9c\x11\xfc\x22\x96\xee\xa8\x35\xbb\xb6\x58\x42\xd8\xe5\x4d\x68\x90\xb2\x54\x3a\xb7\xf1\x5f\x17\xab\x49\xe8\x5b\x04\xc5\x8d\xcd\x7a\x44\xb7\x2a\x6a\xc6\x2f\x2e\x68\x40\x5d\x08\xed\x28\x4e\xa0\x44\xa5\xcf\x65\x3d\x59\x38\x82\x6a\xdc\x8c\x0e\xfa\x8a\xe9\xff\xf6\xac\x95\x5a\x7b\x81\xe4\x65\xf6\x33\xd3\x50\xe8\x69\x0d\x19\x0d\x14\xd1\xe8\x1b\x66\xf5\xe2\x2d\x3b\x6f\x45\x5d\xbf\x97\x95\xbe\x3d\x2d\x34\x09\xd0\x34\xd9\xa1\xc1\xb9\xbb\x9c\x26\xf7\xd2\x9c\x4a\x17\x21\x9d\xf9\x60\x45\xe7\xcd\x39\x94\x9e\xfb\x8f\xf1\x5f\x06\x9f\xac\xfd\xdf\xee\x76\xa0\x28\x46\xd1\x44\x5d\x43\xd5\xec\xab\x8b\x63\xbe\x1a\xaf\x7d\x30\x32\x70\x64\x27\xfb\x4a\xfc\x84\xfc\xda\x20\xa1\x81\x89\x28\x75\x5c\x66\x7a\x77\xc9\x50\x9a\xb5\x0b\x00\xd0\xc0\x80\xa5\x50\x17\x1e\x82\xf9\x50\x56\xde\x98\x1c\xaf\xae\x30\x08\x02\xdc\x86\x35\xe4\xe0\xd0\x42\xb9\xc8\x4e\xd3\x5e\x29\xa7\xdc\x45\xba\x4e\x65\xe1\xc9\x45\xdb\x06\x4b\x26\xf8\x3c\x5b\xbf\xec\x87\x79\x71\x1a\x06\x8a\x86\xbe\xe6\x3e\x43\x82\x1c\xbf\xdc\x5b\xf3\xdb\xc2\x12\x17\xbd\x7e\x31\x0d\xc3\x28\xb1\x32\x25\xe2\xfc\x20\xa4\xff\x6b\x24\xc0\x45\xf0\x1a\x87\xc8\x1d\x4d\x77\xd7\x8b\x25\x3e\x69\x67\xf9\x64\x91\x2d\x7b\xd2\x27\x8e\x6c\xd5\xb3\x0d\xf8\x63\xb7\xdb\xab\x2b\x8c\x41\x21\x23\xf7\x23\x74\x9b\x57\x98\xa4\x0a\xb9\x80\x67\xbe\x52\xa9\x33\xd8\xc6\xd7\x26\x2a\x40\xe1\x8c\xec\x74\x76\x0c\xf7\x96\xad\x50\x77\x37\xd2\xa0\x9c\x09\xf6\x65\xb7\x7b\x2b\xcf\xad\x7f\x71\x35\x91\x43\x4e\x28\x83\x29\xc0\xc2\x9e\x94\x57\xda\x55\x34\xe4\x32\xb5\x28\xd1\x2e\xbd\xe4\x81\xa2\xfe\x67\xb9\x89\xd1\xf2\xc3\xcf\x3b\xcf\x01\x2b\xbb\xbb\xb1\x17\xcc\xc4\x2e\x3a\xb0\x83\x21\x05\x04\x0d\x05\x57\x92\xe0\x27\x7e\xf9\x32\xdb\xef\x67\x2f\xdb\xd7\xcd\x1f\x7f\xce\x5f\x97\xdf\xff\xec\xba\x68\x2e\x3c\x99\x46\x6b\xcc\xfa\x2d\x3a\x94\x8c\xab\xce\x9d\x99\x43\x73\x8b\x71\xee\xfa\xbf\x26\x5f\x43\x4a\x9b\x13\x43\x1c\xed\xd8\x79\xbd\xc9\xad\xeb\xf6\xf2\x50\x39\xd9\x9b\x6e\x15\x74\x79\x14\x1a\x6a\x66\x99\xf9\xe4\xe5\x63\x91\x67\xbf\x06\x36\x32\x0d\x75\x1c\x24\xcc\x27\x00\xb0\x7a\x67\x80\x35\xa7\x21\x10\x83\xf1\x97\xa2\x6c\x32\x63\x67\xa3\xd5\xd8\xf8\xd4\x95\xa2\x21\xc4\x32\xd5\x4e\x39\x23\x2b\x8e\xd6\x3e\xec\x66\x05\x70\x85\x29\x65\xfb\xb9\x1f\xc5\x09\x61\x85\x55\x06\x8d\xa8\x3e\x6e\xa4\x66\xfc\x65\xa9\x95\x72\x43\x06\x50\xe6\x6f\x66\x88\xa4\x31\x6e\x82\xfb\xeb\x32\x6f\x1a\x1a\x4e\x30\x57\xaf\x44\xae\x56\xc5\xcf\xa1\x86\xaa\xed\x11\x05\x60\x25\x4e\x5b\x47\xef\xa1\xac\x86\x22\x3f\x34\x0a\x13\xa9\x6d\x75\x18\x52\x37\x7a\x52\x96\xdb\x6b\x29\x0a\x8d\xe5\x8f\xc1\xfa\x18\xfd\x3c\x7b\x99\x8d\xa7\x6e\x14\x91\x10\x97\x6e\x0e\x47\x28\x74\x8d\xa9\xa5\x5e\xc8\x98\x46\x11\x0f\x63\x27\x46\x32\x7f\x82\xe2\xf8\xd6\xf4\x2d\x9c\x75\x15\x6f\x3f\xb3\x1a\xf3\x95\x97\xa2\x99\xbc\x4c\xc4\x53\xf4\xa9\x2d\x03\xb8\x1f\xf7\xcf\xa2\x26\x34\x22\x71\x1a\xb4\xef\xb8\x6b\xad\xcd\x65\xe6\x31\x0c\x34\x22\xa9\xc2\x64\x9a\x0f\x4e\x7f\x3d\xcf\x0a\x3d\x92\xe8\x9c\x5a\x99\xfe\x42\xc9\xb0\x06\xfc\x94\x15\xd9\xf3\x30\xc0\x43\x23\xa2\x25\x02\xd8\x5e\xa1\xee\xf6\x9b\xf6\x8f\xc2\xd9\x2c\x8f\x15\x40\x97\xc3\xa2\x11\x65\x0c\x35\x0a\x76\x7b\x87\x42\x14\x7d\x93\xd4\x98\xae\x76\x91\x1b\xff\x57\x1d\x73\xb7\xb8\x57\xc5\x31\x2b\xa0\xa3\x64\xff\x96\x55\x53\x1b\x35\x62\x44\x63\x2a\xab\x9d\x16\x45\xa9\x61\xdf\xd9\xe6\x34\x62\x71\x1c\x86\x3d\xbe\x1e\xf4\x20\xc3\x40\x23\x66\xa4\x37\xb3\xfe\x59\x4a\x4b\xd2\xe3\xc9\xd6\xef\x15\xa8\x4d\x66\x4b\xcc\x24\x1e\x1a\x35\xc2\xdb\xfd\x6e\x06\x7a\x08\x12\xa1\x11\x27\x16\x6d\x79\x16\x1f\xfb\xf2\xb1\xac\x8e\x65\x67\xa9\x45\x3c\x8d\x98\x8d\x3c\xb5\x86\xd6\x64\xae\x71\x11\x33\xc7\x4c\xb2\x2d\xab\xa2\x6e\x44\x75\xaf\x46\x7b\x32\x21\xb8\x01\x8c\x1f\x3a\x4e\x09\xc7\xc2\x82\xe7\x6a\x51\xf4\xdf\x26\x0d\xe3\xb0\x67\xd2\xdb\x89\xec\xc9\xd2\xf2\xac\x74\x36\xe4\x72\x9a\xdc\x5c\xb8\x2c\x15\x22\x0c\xb3\x81\x90\x1f\x8d\x64\x98\xb0\xb4\xab\xe4\xfa\x91\xc3\x13\x88\x9f\x93\xb3\x22\x92\x54\xd8\x3c\x8b\xc8\x8a\x17\x68\x9e\xc4\xa5\x50\x6f\xeb\xa2\xb5\x1f\xb3\x9f\xf0\x6a\x61\x10\x43\xca\x7c\x1a\x49\xad\x71\x17\xeb\x32\xae\x2f\xf0\x6e\x2d\x0d\xd7\x41\x31\x82\x3e\xc2\x23\xd8\xcc\xb0\xdf\x61\x6f\x44\x2f\x69\xa4\x12\x8b\x6e\xa8\x0b\xd1\xa8\xb7\x2f\x50\x95\x93\x27\xd4\x84\x62\x1e\x5c\x7e\x3c\x8b\x5f\xed\x49\x76\x93\xdf\x81\x46\x3a\x26\x82\xd8\x7d\xd9\xe3\x1b\x06\x5b\x7a\xa4\x0d\x20\x37\xcb\x3c\x6b\x4e\xbd\x41\x79\x97\x82\x8d\x46\xc0\x23\xac\x23\x78\xc9\x8e\x50\x65\xe2\x67\x3d\xab\x8e\xed\xa8\xf4\xf3\xc5\x84\xb6\x9a\xb0\x28\x4f\x70\x50\xa2\xd0\x99\x16\x4d\x79\xd0\xe2\x90\x15\xfa\xca\xf2\x8a\x4c\x04\xa2\xc3\x78\xda\x02\xe1\x7a\xb2\xdf\x98\x24\x42\x81\x1e\x3b\x07\x5e\x41\x95\x55\xb7\x99\x19\x1e\x61\xf0\xaf\x42\xba\xad\x2d\x34\xb3\x4b\x25\xe6\x65\x59\x37\xc3\xc2\x10\xff\xba\x46\x07\xc6\x2d\xdc\x6d\xf6\x0b\xf2\x45\x99\x97\x97\x89\x59\x43\x02\x2e\x70\x31\x1c\x50\x00\xa2\x6a\x10\x7a\x86\x72\x37\x63\xa1\x95\xf1\x48\x93\x30\xb2\xe4\x98\xeb\x97\xff\x5a\x39\x3d\x0a\x4a\xc2\xd4\xb2\x62\xf6\xd8\xf1\xd5\x49\x64\xf9\x2d\x56\x0d\x4a\xa2\x48\x61\xb5\x40\x6b\x55\x66\xc5\x71\xad\xf7\xe5\xc2\xee\x0b\x99\x9c\x16\x35\x51\x12\x31\x6d\x39\x26\x5d\x8a\xb2\x3d\xcc\x87\x13\x8e\x44\x71\x92\x9a\xde\x91\xee\xb4\x07\x46\x4b\x85\x44\xb1\x2d\x0c\x39\xba\xfc\xc2\xa3\x17\x83\xa7\x24\x4a\x6d\x26\x14\x01\x93\x95\xee\x8b\x05\xda\x73\x41\x9c\xa7\xcf\xa3\x95\x43\x01\xe5\xf9\xe1\x7c\x56\xdd\x5d\x80\x60\x12\x69\x21\xda\x69\x3f\x4e\xf9\xb6\xad\x29\x8c\x35\x3f\xc4\x47\x55\xe6\xf9\xeb\xa5\x78\xf7\xb5\xe4\x94\x10\x30\xb6\x88\x09\x65\xee\xbc\xe5\xdd\xc1\x8b\xba\xc2\xb6\xff\xf3\x3f\xee\xfe\x34\x54\x81\xf3\xd4\xd6\xdb\x87\xdd\xa2\xd4\x63\x60\x0f\x25\xcc\x49\x47\x1e\xa1\x99\x3f\xac\xfe\x98\x0c\x62\x1c\x31\xee\x1c\x1f\x1b\x29\xb6\x29\xd4\xe1\x92\xec\xee\xd4\xfe\x1c\x8c\xe0\x7f\xcb\x42\xac\x27\x15\x98\x94\xc4\xd2\xe2\x81\x5b\x03\xf2\x2c\xde\x8b\xac\x38\x3e\x94\xd5\xe2\x2a\x1d\x4a\x49\x12\x24\xac\xaf\x8b\xe9\x64\xd0\xb2\xb2\xd8\x95\x97\x4a\x0d\xd5\x56\xfd\x15\x61\x9a\x38\x41\xe5\x9b\x56\x10\x49\xd2\x90\xb9\x2f\x6f\x6b\x78\x71\x76\x5d\xb3\xfc\x53\x92\x08\x69\x81\x26\xad\x41\x8a\x08\x03\x2f\xcd\x33\x1e\x3f\xce\xb8\x27\xdc\xb2\xd3\x20\xcf\xc5\x61\x36\x3f\x04\xe1\x8d\x3a\x15\x4a\xb8\xa2\xbe\x64\xd4\x9d\xac\x3b\xf5\x06\x79\x9e\x15\xc7\x81\xa8\x2b\x25\xdc\x58\x16\x99\xa2\xfc\x99\x29\x58\x5e\x8a\x23\x94\xc5\xba\x6b\x4e\x23\x81\xd5\x59\xae\xa6\xd4\xc5\x43\xd6\x85\x2d\x1c\xb8\x79\x30\x91\x94\x12\x5b\x3d\x9e\x97\x05\xac\xbb\x89\x2a\x92\x18\x99\x13\x6c\x9d\xcf\x3d\x85\x2f\x4a\x84\x0a\xd0\x5f\x3e\xf4\x02\xda\xb3\xa6\x11\xfd\x6c\xf0\xfd\x8c\x41\x83\xc8\x33\xaf\x8e\x4e\x13\x22\x43\x2e\xbd\x78\x82\x6d\x39\x78\x73\x91\xa8\x58\x63\x2c\x7a\x7b\xa9\x60\x5a\x77\x43\x89\x02\x86\x41\xb6\xf6\x4a\x5b\x1c\xef\x1a\x74\x28\x3d\x75\x04\x2a\xef\x58\x09\xb0\x6a\xe2\xf8\x10\x1d\x6b\x15\xf4\x2a\x2f\xdd\x66\xa0\x13\x2b\xb2\xf2\xfb\x66\x22\xe0\x4c\x09\x84\x42\x38\xb7\xde\x16\xfa\x67\x27\xd8\x3f\x6d\xa3\xc9\x9d\x21\x21\xa8\xdf\x94\x15\x59\x93\x89\x7c\x77\x05\x00\x69\xbb\x24\x9a\x8f\x76\x03\xcc\x00\x0d\x72\xde\xd7\xfb\xae\x49\x14\x56\x54\x2e\x67\x9b\xb3\xc8\xf4\xe6\x32\xfd\x22\x26\x95\x48\x75\xbc\x7b\x83\xaa\xcc\x61\xe4\x9b\x10\xa3\x74\xe4\xb2\x26\x19\x54\x70\x1b\x16\x47\x69\x14\x01\xba\x05\x4e\xe0\xab\x2c\xf3\x7a\x6d\x5e\x00\x3a\x15\xf1\xb6\x8b\xc1\x9c\x2e\x96\xd9\x23\x9b\x9b\x43\xeb\xd6\xf7\x31\x5d\x7e\x45\xd2\x88\x05\x6e\x0d\x37\x97\xaa\x00\xdd\xae\x91\x25\xa8\x72\x78\x7f\x1e\xa0\xfd\xd0\xf8\x7a\xe2\xf9\x00\x13\x44\x69\x24\x0c\x26\x08\x0f\x98\x21\xec\x19\xdb\x5d\x33\xa5\x96\x76\xc5\x72\x66\x58\x7a\xa1\x72\xa0\x0b\x35\x5c\x7d\x94\x32\x9b\xf3\xc3\x2a\xbc\xd6\xd2\xb2\xd8\xac\x41\x78\xaf\xdf\x47\xc7\x17\x8a\x88\xf3\x2e\xe3\x88\x03\xfd\x50\x56\xbb\xed\x78\x26\xd0\x38\x8c\x53\xe9\xab\xa4\x1b\x71\x95\x8e\xe8\xba\x09\x1c\x94\xdd\x47\x01\xd5\x71\x5c\x5b\x47\x69\x2c\x08\x49\x27\xd8\x6f\x5b\x94\x88\xe5\x85\x43\x04\x78\x77\x85\xf1\x32\xdd\xcf\xe2\x7c\x6e\x7d\xc6\xfc\x5a\xb7\x9a\xd2\x18\xa4\xee\x43\x38\xaf\x50\x8f\xb7\xd1\x01\xf0\xdb\x56\x0f\x77\x5f\x91\x53\x4b\x81\xfe\x54\x1e\x5f\x4a\xcf\xfb\x4c\xaf\x50\x12\xf7\x75\x9e\x29\xe5\x42\x23\x3d\x4d\x93\x41\x85\x24\x04\xfe\x03\x72\x49\x6d\x60\xf3\x52\xbf\x5d\x1d\xbe\x94\xcb\x18\x93\x1e\x88\x1e\xc5\xdd\x6d\x36\x28\x3b\xa6\x34\x4d\x39\x82\x6a\xdb\x59\xd1\x88\xac\xf8\xed\x33\xcf\x9a\x0a\xa2\xf1\xb8\x9d\xbd\xfc\xfe\xea\xef\x20\x78\x40\x90\x68\xce\xd2\xe6\x1c\xe1\x96\x9c\xe6\xbd\xfb\xa5\x5a\x7a\xcc\xd6\x3d\xe0\x82\xeb\x2a\x43\x8d\xfe\xca\xa2\x3c\x9d\xc1\xea\x62\x23\x33\x63\x76\x55\xf8\x43\xa9\x4c\x04\x25\x63\xbe\xf7\x2b\x20\x7d\xdb\xcb\x8e\xe8\x21\xab\x3d\xc5\xd2\x8d\x6a\x07\xd7\x59\x19\x82\x05\x5c\x2e\x4b\x8d\x29\x87\x68\xc4\x48\x45\xa9\xe6\x61\xdc\x69\xda\xd6\xaa\xff\xb3\x75\x64\xe5\xa5\x2a\x9e\x45\x7d\x8b\x94\x60\xf2\xae\xd0\xfe\xbf\x43\x12\x94\xcd\x08\xda\x33\xe8\xc4\x65\x44\x07\xbc\x66\x77\xab\x58\xaf\x6e\x6f\x84\x4c\x68\xaf\x1e\x70\x17\x6b\x44\x59\x10\x13\x74\x80\xcb\x1f\xe2\x94\xb9\xf3\xd6\xa3\xd9\x5c\xd9\x02\x65\x21\xa5\x89\x4b\x9c\x96\x97\xe6\x01\x60\x8a\xd5\xa1\x2c\x14\x92\x71\x4f\x3e\x04\x97\xba\x73\xe3\x58\x24\x42\x3c\xed\xba\xda\x64\x09\x05\xa0\x0c\xb6\x07\x5c\x53\x16\x19\x82\x58\x95\x5a\x7c\x3c\x96\xa5\x96\x1f\xdd\x7d\x09\x63\x48\xc6\x6d\x6c\x09\x2d\x7e\xec\x8e\xf3\x02\x63\x29\xc4\x77\x65\x81\xed\x6a\x51\x37\x3f\x40\xa3\xac\xe2\xc4\xb8\x62\x2c\xe1\x9d\xbd\x77\x72\x7a\xc4\xed\x91\xde\x3d\x0b\x53\x12\x75\x7d\x57\xdb\x81\xb7\xce\xe2\x90\x60\xc0\xbc\x74\xda\xbd\x07\xc4\x08\x4e\xbd\x26\x5c\xce\xff\xcd\x26\x9f\x83\xc5\x3a\x48\x5c\x76\x65\x2b\x9a\x0c\x41\x05\xe7\xfc\x63\xe2\x0a\xfc\xe3\x06\x8f\x1a\x65\x49\x18\xd1\xa1\x1c\xf8\x6c\xff\x32\x79\xa3\x24\x22\x58\x25\x9e\xb5\x2b\xa0\xe7\xda\x9e\x4e\x0a\xc6\xa9\x65\x99\x71\x85\x44\xe3\x8a\x06\x27\xc7\x7f\x27\x98\x78\x75\x8a\x0d\xfe\x8b\xff\xcf\xa0\x6b\xfc\x3f\x57\x77\xe0\x7e\xb3\xc4\xb8\xfe\x55\x81\x44\xf7\x70\x1a\xc9\xe8\x16\xa2\xd2\x0f\x65\xd9\xc8\xd6\xf2\xe9\x02\x85\x8c\x6b\x40\x3e\x71\x28\x6a\xb4\xe3\xb6\xbf\x7c\x4b\x4a\xe2\x50\x7b\xb0\x5c\xd3\x3a\x58\xc3\x63\x89\xa5\x82\xa3\x4b\xba\x85\xaa\x86\x6c\x78\xfe\x33\xe1\x2b\x60\x41\x9c\x66\x85\x76\x15\xf1\xf5\x54\xb0\x98\x32\xa1\x6c\xad\x8d\x0f\xa1\xec\xb2\x63\xe1\x72\x74\xe3\x2f\x21\xb9\xc4\x88\x45\x6d\xc3\x35\x93\x46\xa5\x89\xe8\xe2\xb7\xa2\xfe\x01\xcd\xea\x17\x56\xe4\x4e\xfa\x69\x8a\x44\x1e\x58\x72\xe3\x20\x1a\x30\x2b\xb4\x95\x72\x18\x96\x38\x50\xa6\x68\xec\xd9\x00\x0f\xa8\x58\x79\x27\xf0\xf2\xf9\x26\xcd\x54\x6c\x04\x0c\x38\xaa\x3a\xdb\xec\x16\xdf\x33\x65\x2a\x4d\x11\xab\xbb\xfb\xb2\x1d\x0d\xa8\x4a\x85\xe2\x9d\x25\xf3\x9c\xfd\xea\xc5\x46\x28\x53\x3a\xc0\x38\xaa\xbc\x14\x3a\x87\x1b\xfe\x04\xd3\x29\xd3\x36\xba\x79\x9c\x67\xda\xd6\x56\xde\x48\x0b\xde\x4b\x3c\x8f\x6c\x6c\xa6\xa5\xc1\x9b\x39\xa5\x36\x0c\x11\xf8\x47\xd1\x0a\xd0\x2a\xf4\x2a\x6e\x58\x50\x7c\xdb\x9b\xc4\x9b\x46\x41\xcf\x49\x45\x99\x36\x42\x27\xce\x82\x99\xed\x27\x51\x31\x06\x61\x62\x8b\x14\xd0\x1c\x79\x44\x95\x4e\x5f\x68\xea\xee\xe6\x7b\xc6\x36\x58\x22\xcb\xf2\x47\x56\x1c\xe7\xde\x4f\x99\x4c\x07\x13\xe8\xd0\x02\xa3\x8f\xc7\x1c\x1c\x6d\x38\xca\xea\xfb\xd7\x31\x09\xc3\x0c\xe1\xe6\xbf\xf6\xc3\xcf\x11\x07\x8a\x60\xb1\xd9\xb6\xfc\xfe\x9c\xcd\xfd\x5f\xc3\x40\x61\x41\xd1\x6c\x39\xfb\xa4\x42\x81\xc6\x21\xb3\x02\x34\xaa\x7d\xaa\x7c\x00\x3e\xf0\xed\xa0\x31\x42\x30\x22\xdb\xde\x7d\xdd\x6e\x3d\xeb\x12\x8d\x43\x03\x24\x9d\xc8\xf0\xb5\x7b\x37\xd6\x68\x43\x71\xad\xc0\x78\x33\x03\x1a\x93\x50\x5a\x30\x96\x27\x1b\xed\xf7\xb8\xf1\x3c\x8e\x89\x8e\x65\x0f\xd6\x9d\x67\x5a\x4f\x13\x57\xad\x93\x27\x88\x97\x25\xdc\x35\x55\xc7\xc5\x42\x63\xca\x19\x62\xb9\xcc\x65\x40\x38\x4a\x63\x2a\x43\xb4\x0b\xf6\xaf\xeb\xaf\xcf\x9f\x0e\x19\xd3\x36\x20\x35\xcb\x33\x28\xfa\xc2\x21\x1a\x23\x1a\x73\xb8\x87\x17\x7a\x44\xf5\x38\x7e\xc4\x38\xb6\x0e\xa0\x7b\x8b\xce\x33\x8c\xe3\x54\xe3\xf6\x32\x17\x7a\x9e\x35\x6a\x40\x58\x49\xe3\x58\x19\x9b\x87\x70\xb4\x17\x79\x7e\x95\x06\x8b\x93\x94\x60\xd5\xdb\x40\x60\xad\x6b\xb1\xa5\x30\xb9\xa8\x9b\x43\x61\xd5\x87\x5d\x13\x27\x11\x9e\xaa\xee\xd4\xb8\x87\xc0\x19\x5a\xb2\x31\x57\x41\xea\xed\x73\x64\xb3\xc3\x8d\xe0\x32\x10\x7d\xa3\x71\xaa\x08\xa6\x41\x3b\xb3\xb4\xfb\xbb\xa5\xc6\x38\x42\xf3\x92\x29\x40\xa2\x8b\xf1\x6b\xa4\xc0\x13\x0b\x28\xfd\x3d\x53\x3f\x4a\x63\xc6\xe9\x9f\x58\x69\xeb\x62\x9c\xcb\xba\x39\x97\x05\x2c\x2f\x70\x57\xa2\x96\xc6\xca\x44\x18\xef\xb5\xda\xe5\xb8\x80\x6e\xc2\xc7\x68\xac\xa9\xb1\xeb\x29\x17\x1f\x7f\x84\x81\xcf\xdb\xc6\x9a\xd9\xcf\xfe\x02\xcd\xa2\x67\xd7\xa1\xb1\x4e\x9d\xec\x3f\x34\xbf\x5f\x74\x59\x77\x9a\x44\xfd\x8f\x43\x1a\x40\xd2\x05\x84\xe6\x9e\xf2\xaf\x75\x43\x04\xe5\x3d\xdb\x81\xdb\xf5\xfb\x5d\x28\x36\x91\xc5\xe6\xb7\x06\x30\x92\x09\xd4\x4f\x60\xba\x99\x62\xa2\x14\xad\xf8\x45\xf5\x71\x6e\xca\x7f\x0a\x0d\x5d\x4b\xc2\x31\x3f\xd2\xc9\x02\x65\xc5\x11\x6b\x0f\xfb\x38\x79\x6c\x80\x21\x7c\xd9\x82\x9a\xdf\xb2\xb3\xff\xe8\xae\x82\xed\x0e\x3d\x5c\x7b\xa1\x42\x63\xd2\xb3\x78\xcc\xb4\xfe\x64\x03\x1f\xae\x9d\x24\xd0\x32\x32\x5d\x24\xcb\xab\xda\x8c\x6e\x9f\x84\xcc\xd6\x5f\xb7\x3b\xef\xd7\x22\x53\x65\x75\xc7\x67\x4f\x48\xc0\xf1\x0d\x6c\xc4\xc6\xdb\x8b\x1d\x5b\x71\x7d\xa5\xc7\x7b\x73\x36\x0f\xe7\x74\x42\xb8\xc2\x52\x8b\x93\xf8\x01\x63\xcc\xdb\xdf\xca\xc6\x24\x44\x12\xdc\xa5\x91\xc2\xcc\xd9\x18\x70\x97\xbe\x8c\x26\x54\x6b\x8a\x68\xd1\x8b\xfa\xf1\x81\x22\x8a\x8b\xcb\x79\xb8\xbf\x27\x0c\x08\x82\x79\x9e\xd7\x2f\x87\xf9\x6a\x7f\x98\x3d\x6f\xbe\xbe\xec\xfb\x56\x6b\xb3\x2f\x1f\xf7\x07\x35\x8e\xb5\x24\x09\xa1\xd2\xa5\x6e\x10\x93\xdd\x15\x2a\x4f\x2b\x3b\x68\x92\xa4\xf6\xb4\xc3\xe2\x39\x8d\x33\x62\x20\x67\x49\x13\x4e\x63\x0c\x00\x19\x18\xe5\xe1\x92\x94\xd2\x80\x78\xee\x5e\xbc\xe1\xc6\x38\xc9\x76\x75\x03\x9f\xef\xae\x12\xc2\x06\x63\x2b\x4f\x98\xeb\xcf\xf3\x44\x32\x85\x41\x8c\xf3\x45\x8e\x8a\xc2\x68\x22\xe3\x00\x63\x4b\x18\x1c\x59\xeb\x7d\x69\x1f\xb2\xaa\xc4\x2d\x9f\x30\xd1\x41\x64\x19\xb7\x5a\x77\xf9\xa1\xb5\x17\x7d\x03\x33\x96\x84\xd1\xe1\x61\xb2\xc2\x94\x5d\x9b\x0e\x30\x17\xa8\x44\x9e\xef\x6e\xd2\x92\xfd\x8d\x19\x04\x71\x68\x1c\xfa\xe2\x49\x54\x47\xf0\x20\xe0\x19\xd2\x73\x89\xfc\xf6\x71\x90\x98\x24\x40\xcf\xca\x46\x58\x07\x47\x30\x0f\x42\x2d\x2c\x8b\x79\x9e\x81\x79\x6d\xbf\x62\xd7\x14\xa5\x21\xb7\x2f\x33\x2e\xe3\xf4\xed\x3a\x08\x1d\x24\x3b\x53\x65\x3d\xa4\x44\xa4\x3c\x8c\x12\x2c\x06\xb3\x7a\x7a\x35\x0c\x61\x08\x3c\x34\x01\xf7\xc8\xd4\x6f\xe5\x45\xbd\x79\x3a\xa7\xee\x89\x79\x14\x5a\x51\xcb\x37\x51\xb7\xce\x6d\x77\xdf\xc8\xf1\xd9\x5b\xa0\xdb\x3c\xd3\x0f\x65\xb5\xfb\x01\x8d\x7a\xbb\xbd\x8c\x79\x14\xcb\x44\x74\xc6\xd4\x6e\xf4\xdd\x79\xa4\x18\xd6\x5c\x56\xa2\x81\x8d\xd9\x8a\xea\xc7\xa0\xca\xc1\xf5\x21\x91\xc2\x45\xf4\x06\xa2\xf9\x7a\x1b\x47\x4c\x39\xa1\x4c\xf9\xc8\x95\x13\x7c\xbe\xb5\x45\x71\xe2\x68\x3a\x9e\x45\x25\x21\xcf\x05\x1e\xbf\x7f\x99\x36\xe3\x24\x8e\x30\xcc\x68\x31\x0e\xdf\xdb\xe5\xdf\x9d\xae\x9c\x08\x42\xbc\xe0\x38\xc6\xce\xd7\xc5\x32\xab\xcf\x97\x49\xf1\x34\xe5\x04\x14\x5a\xfa\xe2\x7c\x1e\xa8\xe6\xba\x46\x2a\x00\x63\xdd\x07\xa1\xf5\xe2\x4d\xb4\x4b\x7d\xe0\xda\x0d\xd3\x60\x9c\x71\x22\x7b\xbb\x78\xe1\x72\x74\xd7\xba\x2c\xa3\x57\x60\x4a\x61\xaa\xf7\x71\xbe\x3d\x6c\x4e\x45\xa6\xcb\x3c\xef\x12\xe5\x9c\xe9\x38\x71\xe3\x67\xb9\x86\x7a\xe2\xbc\xee\xbc\xe2\x0c\x22\x18\x28\x41\xdc\xd1\x78\xa5\x3c\x0e\x09\x72\xc0\x2d\x33\x71\x2a\x0b\xaf\xe0\x33\xdc\x5a\x78\x1c\x5a\x1c\x7d\x0d\xd5\xcf\x4c\x81\x97\x84\xf1\xad\x51\x08\x6d\xeb\x2f\x3b\xde\x23\x6f\x90\xc7\x54\xa1\x21\x66\xc5\x59\xa6\x3f\xcd\x0d\x3a\xfe\xa8\xe7\x8e\xbf\x88\x47\xea\xf8\x3b\xc4\x42\xe0\xda\xc8\xea\xfe\x30\x1c\x7f\x0c\x9e\x10\xe2\x62\x2f\xa8\x9e\xac\x06\x39\xdf\x90\x7a\x17\x38\xa4\xd7\x18\x1d\xbf\xf7\x73\xae\x2c\xdb\xbf\x3f\x77\x5b\xf3\x66\x61\x99\x21\x07\x36\x00\x4f\x89\x51\xd2\x17\x86\x7c\xbb\xaa\x71\xa4\x5c\x04\x0a\x59\xcc\xed\xc7\xee\xa0\x2b\xe3\xd7\x16\xcc\xc2\x9d\xb2\x7a\xf7\x56\x56\x8d\x07\xd3\x22\x95\x4e\xbf\x76\x85\x20\x32\xf4\xfc\xa1\x8e\x47\x70\xfe\xf1\xd2\xd7\x60\xfb\x7e\x3a\x4d\x4c\x9f\x6a\xf8\x3f\x51\x82\x50\x2e\x09\xc3\x6d\x09\xd9\x1b\xce\xa5\x07\x64\xde\x2e\xf3\xf6\xd7\x24\x0a\x2b\x3d\x3b\x45\x1c\xff\xc8\xd2\x24\x89\xe5\x32\x52\xe5\xcf\x3b\x44\x92\x94\x2b\x16\x22\x4d\x68\x56\x3f\x7f\x6c\x73\x51\xc0\xf4\x8b\xab\x34\x42\xf0\x98\x14\xad\xf7\x3d\xcb\xf3\xd1\xc1\xc4\x75\x4c\x90\x2e\x73\x59\xaa\x4b\xfb\xeb\xa2\xfa\x98\xa4\x36\xb8\x4e\x22\xaf\x99\xbb\x59\x3c\x4e\x86\x5f\xa7\x80\xa5\xbe\xb6\xd0\x0e\x37\xba\xb5\x2a\x27\x9d\x80\xa6\xe8\x02\xe9\xdd\x6a\x7f\xf8\x63\xfe\x84\xca\xd0\xab\xdd\x6e\xda\x2d\xb6\x96\xa8\xb2\x53\x73\x40\xbc\xfd\x79\xe8\x95\x9b\x40\x62\x78\xbc\x35\x6d\xc7\xdf\xd3\x50\x9b\xab\x6a\x2c\xb7\x6c\x59\x8d\x95\xee\x29\x37\xd2\x72\x6f\x9d\xb2\xc2\xc3\x05\x6f\x98\x35\xbe\xb3\x63\xb3\x58\xcd\x5f\x9d\x00\x2a\x4d\x03\x95\x08\xee\x15\xb6\x61\x2c\x3c\x46\xd3\x90\x50\x9f\xaf\xc4\xbb\xd7\xd9\xf1\x86\xbe\x3d\x4d\xc3\xd8\x60\x0a\x7e\xc0\x15\xef\x68\x02\xa7\xf0\xe2\xc9\xfd\x4d\x20\xdd\xfd\x9f\x9e\xbe\x1d\x40\x67\xcd\x21\x1e\x0d\x41\x1a\x85\xdc\xd3\x26\xb5\x56\xb2\x2d\x62\xf7\x4f\x1f\x71\x8d\x31\xda\x77\x51\xb7\xe7\xd3\xaa\xe8\xd3\x36\x29\x49\x42\xe8\x62\x86\x5e\x1a\x6e\xdd\x4d\xd0\x94\x24\x56\x18\x53\x68\xbd\x12\x55\x01\x13\xef\x20\x25\x3a\x31\xed\x56\xb6\xc8\x2a\x75\xc9\x9a\x79\x05\xe2\xc7\x7d\x46\xb3\xc9\x8b\x11\x88\xa9\xa5\xf8\x47\xdd\xd5\x7d\x39\x7e\x29\x2a\x19\x82\xb0\x15\x94\x33\xad\x17\xe5\x64\xc6\xa5\x54\x69\x54\x5c\x85\x81\x02\xaa\x6f\xd2\xee\x93\x08\x5b\x98\xea\xff\xce\x62\x2a\x5d\x4c\x7e\x63\x05\xba\x1d\x0d\xc4\x75\xc2\xf4\x66\x0d\x0b\x4d\xe3\x24\x71\x3f\xda\xcb\x5a\xf8\x26\x6e\x98\x3b\x64\x0e\xae\x84\xfc\x90\xa9\xb2\xc8\xfe\x7d\x10\x95\xcc\x9a\xfa\x70\x86\xea\x00\x43\x79\x51\x77\x65\x12\x46\xa9\x0b\x0a\x60\xfe\xd8\x66\xb5\xa7\x9d\x62\x49\x5d\x14\xf1\xe5\xdc\x2e\x82\xf1\x83\x25\x5c\xe1\xae\xf6\xbf\x70\x92\xe0\x43\x8f\x69\x22\x2d\x48\xe2\x70\x84\xe6\x41\xd4\x6f\x59\x59\x6c\x45\x25\x4e\xd3\x7b\x4b\x1b\xf8\x2b\x1c\x2a\x08\xfd\xb5\x6a\xfc\x39\x12\x4d\x3c\x13\xeb\x62\xf1\xc5\x4e\xc3\x90\x8f\xfb\xf0\x90\xc5\xe0\x14\x65\x16\x9b\xf9\xc5\x47\xac\xd3\xb4\x7d\x40\x57\x88\x64\xc3\xe4\x5d\x4b\x6c\xd3\x24\x07\x47\xdb\xb6\xf8\x50\x39\xec\x7e\x74\xc5\x05\x69\x0a\x11\x92\xc9\xad\x5e\x17\x49\x92\x2c\xe1\x54\xfe\xe5\x86\x9b\x0a\x48\x31\xab\xd2\xba\x90\x7d\xbd\x08\x4d\x55\x90\x38\xda\xf9\xde\xe1\x18\x0f\xa3\x0a\x64\xe4\xe2\xe0\xd6\x23\x78\xde\x3d\xf8\xab\x35\x8b\xb5\xf4\x07\x8c\x9b\x38\x55\x79\xf6\xfb\x4c\x0a\x44\x61\xfc\xd0\xd1\x4e\x95\xea\x33\xf2\x45\x7f\x0d\x08\xfc\x6c\x1d\xf8\x6d\x21\x6e\x04\x2e\xba\x03\x35\x05\xa3\x63\xe8\xc9\x9f\x56\x3f\xa1\xfa\x90\xa5\xee\x06\xda\x04\x21\x46\x00\x4c\x26\x9a\x11\x1f\x13\x15\x01\xd5\x81\x25\x5e\x50\x65\xd1\x7a\x20\xba\x6b\xe1\x51\x1c\xf8\x8c\xaa\x05\x13\x62\xfa\xf5\xd3\x1d\x59\x44\x01\x44\xba\x4b\x53\xb4\x46\x44\x59\x94\xd5\x2d\x35\x53\x2a\x22\x92\x60\x91\xf5\xb7\xd5\xe3\xec\x65\x68\x2a\x09\x12\x4a\x4f\x3a\xfe\x0a\xff\xbe\xb4\x07\xfa\x2b\x9c\xcb\xaa\xa9\xb7\x50\xd9\xff\x82\xea\xa1\xac\x9c\xe0\x9d\xff\x8b\x45\x77\xfa\xa1\x17\x34\x24\x18\xce\x51\xbe\x4a\x0a\xd6\x85\xe3\xcc\x18\xfd\x1a\xe5\x34\x4d\x3d\x7e\xa0\x81\xa3\x67\x8a\xf2\xcd\x82\xa1\x2b\xd9\x40\xdd\xcc\xb3\xa6\x5e\xfd\xfb\x22\xf2\x11\x47\x32\x15\x4c\xc4\x24\xea\xcd\x0c\x51\x7c\x38\x23\x63\x64\x63\x09\xc4\xf6\x23\x6d\x7d\x5d\x0f\x02\x6d\x22\x8e\x63\xe3\x2e\xef\x8b\x86\xd7\x45\x0d\x55\x83\x2c\x77\xdd\xef\xc4\x3c\xb5\xda\xed\xd6\xd9\x6b\x76\xc3\xf2\x90\xdb\x5f\x24\x51\x0a\xeb\x04\x3c\x5a\x75\x1c\xcf\x12\x89\x4e\x90\x7b\x40\x66\xda\xcb\x34\x8f\xaf\xe7\x81\xf5\x6d\x91\xb4\xcf\x06\x1e\x6f\xff\x10\x27\x1a\xe3\x46\x87\x01\x31\x9a\xa3\x87\x2a\xd4\xdb\xb5\xa9\x3e\xbe\x5a\x48\x48\x2d\x39\xd2\xc7\xea\x17\xa8\x71\xef\x49\x5f\x19\x11\x24\x34\xf2\xc2\xe9\xd6\xc6\xdc\x35\xa2\x75\xa5\x1e\xa0\xab\x5e\x12\x92\x24\x54\x7a\x0e\xe4\x0a\x84\x76\x8e\x52\x8d\x6e\x76\xbb\x5e\xaf\x52\xe9\x42\xd2\x04\x83\x41\x3f\xcb\x06\xbe\x43\x76\x7c\x6b\xbe\x16\xd9\x55\x27\x11\xc5\x2e\x4c\xe0\xe9\x57\x86\x4a\x14\x7f\xcf\x6c\x14\x2a\x8c\xd0\x38\x3d\x39\x0b\xe1\x9e\xfd\x21\x54\xa4\x30\x08\xf3\x5d\xfc\x84\x7a\xc4\xb4\x44\x85\xd2\x12\x8f\x35\x9d\xd5\x28\xfb\x62\x3f\x73\x8f\xa3\x10\x0a\x0c\x46\x54\x0a\x78\x9f\x6f\x7f\xfb\x8c\xfc\xfe\xd6\x66\x24\x74\x1c\xa0\x1f\x68\x8d\x71\x0c\x21\xd9\xa3\x88\x4c\xc6\x44\x2b\x1b\x3a\x71\xe0\x3d\x57\x7e\x80\x65\x86\x77\x10\xb5\x02\x28\x65\xa1\x4b\x3c\xc1\xba\x1e\xe2\x3c\x05\x08\x86\x6d\x95\x28\x74\xe1\x15\x2d\xa9\x30\xc2\x42\x63\xaa\x51\x61\xfa\x38\x8b\x22\x8c\xb2\x82\x7b\xa7\xac\xd8\x59\xa1\x17\xa7\xd3\x88\x86\x6a\xfd\xd6\x8f\x8e\x0c\x52\x1a\x44\xde\x8b\xb6\x85\x5d\x9e\x57\x77\x7c\x0a\xc8\x90\x44\x98\x77\xf3\xd9\xa6\x25\x74\x98\xe4\xd1\x88\xc9\x08\x64\xd4\xe7\x52\x3c\xab\xf6\x88\x61\xcc\xf5\x24\xc4\xea\x2a\x3a\xa6\xf1\x3b\xf8\x79\x49\x64\x67\xc9\xb5\xc6\xda\x15\x6f\x2e\x95\xad\x75\x93\x76\x91\xb1\xf5\x74\x52\x4b\x0a\x56\x9b\xe7\x2c\x3e\x5e\xe1\xaa\x18\xd2\x75\x62\x0c\x70\x01\xef\xbe\x3e\xed\x67\x5d\x44\x4e\x26\xcc\x16\x12\xf7\x52\x4d\xbe\xf4\xea\x76\x19\x3a\x95\x89\x09\x31\xc2\xf7\x7a\xc9\xbb\xb5\x28\x39\x49\x84\x74\x8c\x78\x88\xc8\xf8\xdf\x4e\x39\x8f\xca\x54\x09\x64\xad\x2b\xca\x99\xfe\x09\x95\x37\x35\xa5\x8a\xad\xa8\xc3\x2c\xcf\x5b\x73\xac\x80\x0a\x55\x80\xc7\x3f\xa7\x78\x84\xd5\x34\xda\x27\x1d\xed\x43\x4d\xe1\xa7\x52\x93\x00\x0b\x5c\xb4\x8b\x54\x74\x73\xa7\x3b\x49\xa5\x4e\x02\x54\x40\x7b\x17\x1d\x0a\x4d\x6a\x9e\x60\x09\x5f\xad\xde\x40\x5f\x72\x58\x88\x3c\x9f\x6c\x4f\x9f\x80\x6c\x25\x70\x8a\x87\xef\x0b\xbc\xb7\xcb\xc2\xc6\x96\x6f\x2e\x07\x09\xd2\x12\x3c\xb5\xa3\xd3\x05\xb1\x27\x2f\x01\x12\xb0\x26\xe0\xf0\x50\x01\x2c\xbb\xe4\xa0\x34\x2a\xc5\x80\x26\x0e\x2f\xc2\xac\x9e\xb3\xce\x64\x57\x61\x62\xbf\x7f\x0d\x0d\x96\x33\x5c\x0b\xa4\x52\x15\x31\xc6\x1c\x5a\x62\x29\x3e\x86\xe1\xb7\x69\x48\x49\x45\x89\x41\x12\xcb\xcc\x66\xb5\x37\xd5\xe6\x7c\x67\x89\xab\x48\x26\x28\x99\x73\x2e\xdf\xa1\x02\x7d\xb8\x78\x1b\x4e\x11\xa2\x08\x19\xc8\x91\x8d\x03\x7e\x2e\x24\x75\x73\x82\x29\x42\x09\xe2\x59\xde\x4a\x9d\x7f\x5e\x72\xa3\x48\x62\xa5\xf0\xe5\xe5\xe3\x55\x54\xb0\x6e\xe0\xae\x4c\xb5\xbb\x82\x06\xc4\xd3\x84\xac\xf6\x5f\x7e\x4d\x30\x81\x8a\x06\x56\xcd\x62\x39\x48\x63\x29\x1a\x45\x3a\xc0\xf5\xd5\xf9\x0c\xfb\xf2\xeb\x7c\x23\x47\x54\xc9\xbe\x33\x4f\xc0\x26\x82\x76\x4d\x89\xa0\xae\xb5\x2a\x37\xc5\x17\x51\xe9\x45\x17\x27\x54\x31\xe1\x7a\x08\xa0\xc0\x4f\xb6\x2f\x2d\x47\x91\xaf\x0d\x9f\xe2\xb3\x6e\x0f\x57\x1c\x13\x2f\xa1\xf5\x75\x5d\x34\xd7\x3c\x98\x54\x25\xb1\x25\x94\x86\x42\x0f\xe1\xb8\xfe\x61\x12\x49\x50\xc7\xe0\x9f\x98\x4f\xcd\xa7\x17\xcb\x84\x3b\x8e\xa2\x4d\x75\xfc\x94\x5d\xfc\xc6\x7e\xa9\x78\x92\x60\x80\xd9\x15\x81\x3e\x65\xff\xbe\x60\x70\x6f\xff\x76\xa3\xd8\x5a\x71\xae\xe3\xc8\x01\x2e\x97\x70\xba\x54\xd5\x20\xf2\xe9\xfb\x28\x5b\x03\x63\x39\x8e\x9e\xb3\x02\x74\x87\x6c\x9c\xf4\x04\x8e\xf1\xc9\x6d\x59\x0e\xbf\x67\x1a\x93\xc8\x9d\x0a\x3d\xae\x62\x73\x9e\xe6\xfe\x55\x1a\x33\x3c\x8d\x6c\xd8\xed\x79\xbf\xf8\xeb\xc0\xaa\x12\x31\x4d\x7a\xe2\xdc\xf5\x69\xf0\xf8\xd7\xb1\xb5\x01\xf0\xe4\x93\x11\x14\x32\x00\xb7\x94\x3c\x16\xaa\x13\xd7\x1a\xc8\x85\x50\x25\x4c\x14\xba\x20\x9f\xd3\x4c\x87\x06\x54\x33\xa6\xab\x18\xc5\x5f\x47\x48\x70\x25\x99\x0d\x91\x3f\xb4\xee\x9a\xbe\xc1\xcc\x42\x95\x94\x1a\xe3\x88\x36\xdc\xe1\xc3\x7f\xb7\x37\x07\x29\xb5\x72\x50\xd6\xee\x4c\xb9\x41\x72\x32\xb9\xc8\x68\xcb\x0d\x76\xb0\x26\xc9\xe1\x8c\xe1\x2f\x9b\x33\xfc\xda\x64\x79\x7d\x33\x25\xa4\x54\x42\x22\xcb\xb2\xd5\x54\x19\xfc\x1c\x07\x00\x95\x4a\x12\x2f\x62\xd4\x6e\xd3\x4b\xd1\x88\x4d\xb1\xba\xf6\xcb\x95\xd2\x89\x08\x3a\x5b\xbd\x3c\x89\x81\x03\xe2\x62\xe0\xf3\xd2\x05\x62\xfd\x74\xd2\xa1\x41\x0e\xb1\xae\x5c\x6e\x5a\xc2\x79\xc3\xab\x53\x9a\x5a\xbe\x0a\x8c\xeb\x52\x9b\x4a\x7d\x85\x93\x18\x60\x64\x15\x84\x56\x90\xac\x9d\xe6\x18\xf9\x1c\x02\x80\x14\x80\x46\xc7\xc6\x81\xd0\xea\x7d\x76\x82\x9e\x28\x8d\x2a\x30\x0a\xe9\xcf\x4c\x9e\xfd\x7b\xf4\xbc\x26\xd6\x89\x05\x6f\xcc\x31\xe8\xfb\xdb\x8d\x63\xce\x77\x4d\x43\x8c\x23\xbe\x5c\x4e\x59\x7d\xf2\x25\x35\x3a\x20\x81\xdf\x72\x90\xe4\xd0\x64\x6a\x18\xd6\xfb\x74\x07\xd6\x01\x09\xd1\xde\xd9\xe6\x42\x8c\xc5\x61\xa8\x0e\x98\x15\x9b\x72\x04\xa8\xa2\x6e\xbe\x67\xf9\xb4\x3a\xe5\xd6\x22\xd1\xed\xbe\x4d\x11\x6f\xd6\x5e\x5b\x83\x53\x0e\xe8\x2a\x06\x87\xcf\xc2\xfd\x35\xda\x46\xa3\x9c\x58\x76\x53\x95\xb9\x15\x53\xfd\x9e\x35\x6f\x5b\xd1\xae\xb4\x97\xb2\x59\x17\x5f\xbb\x40\xbe\x0e\x80\x93\xf6\xa8\xfd\x5f\x5b\x1e\xf6\x3d\x2b\x06\x12\x7d\x54\x87\x11\xa8\x78\x5c\xb0\xb8\x3e\x9b\xba\x2f\xc0\x8c\x82\xc9\x68\x60\x39\xb1\x3b\xbb\x6d\xea\xc0\x72\xb1\xdd\x9a\xe4\x9a\xd0\x80\xb2\x49\x40\x26\x0a\x46\x53\x5d\x13\x48\xd0\x7d\x72\x45\x61\xf7\xa4\x37\xa8\xa6\x01\x61\xd4\xb3\xb0\x8e\x17\xfb\xe4\x19\x5b\x9f\xc9\x15\xee\xbc\xc0\xaf\xe6\x77\xb8\x21\xff\x40\x35\x55\x1c\xbf\xdd\xfe\xcf\xed\xea\xf0\x65\xb6\xfb\xe2\x07\x85\x11\xae\x1d\x3d\x5e\xd5\xac\x55\xd9\xfd\x3d\x26\xf6\x64\x28\x2f\x32\x07\xac\xe8\xd8\xc1\xb1\x5d\x38\xbb\x7c\xc8\xf4\xf0\xa9\x09\xa0\x59\x22\xd0\x31\x79\x14\x59\xb1\x87\xd3\x79\xd7\x5c\xcc\xd8\x06\x9e\x7a\xa3\x9a\xf1\x08\x4b\x0a\x32\x5f\x40\x37\x3c\x14\x3b\x76\x7b\xdf\x39\x8d\x2c\xf1\x67\x56\x1c\x07\x44\x84\x54\x33\x1d\x60\x90\xd5\x51\x88\xcd\xcb\x11\xe7\xe6\x28\xb3\xa9\x63\x91\xa2\x20\x85\x75\x12\xb0\xf8\x57\x54\xe2\x04\xcd\x20\x4f\x39\x79\xc8\x84\x71\x4c\x93\xfc\xe1\xfe\x2f\x98\x78\x64\x3a\x49\xad\x84\x6c\xe6\x5c\x54\xaf\x5f\xbe\x80\x0a\x2b\x92\xd6\xcb\xb1\x01\xf1\x39\x36\x4d\x73\x66\xa1\x2f\x16\x64\x6e\x65\x03\x6e\x6e\xd1\x3a\x0d\x98\x15\x08\x6a\xed\x68\x07\x54\x75\x66\x91\xf7\x07\x74\xca\x25\x7e\x73\xa7\x25\x63\x03\x5d\xae\xa6\x72\xcc\x85\x37\x7e\xa9\x94\x1b\x0c\x76\x65\xf5\xae\xcc\x7f\x76\xf1\x2a\x9d\x0a\xab\x6b\x3f\xcb\xaa\x65\x55\x9e\xef\xc5\x03\xf9\xed\xf8\x83\x16\x5c\x68\xd2\x71\x47\xed\x60\x98\xe3\x9b\x76\x95\x01\x1a\xae\xb9\x28\xf4\x49\x54\x3f\xac\x98\x6e\x03\xe7\x25\x14\xe5\x29\x2b\x7a\xee\xcf\xb6\x6f\xc4\x9d\x53\xfc\xfd\xcb\xe3\xb2\x2c\x46\x98\x05\xdf\x49\x93\xc8\xf4\xb5\xda\xc8\xf2\x38\x1e\x50\xc9\x04\x26\x1b\x66\xaf\xcb\xf9\x50\x4b\xce\xdf\x41\xc5\x1c\xe1\xea\xeb\xa7\xf2\x27\x04\xbf\xe6\xfb\xc5\x78\xc9\x2b\x1e\x60\x46\x5a\x22\xed\x42\xef\xc9\xe9\x5b\x4c\x0a\x5a\xf3\x14\x4f\x1e\x61\xab\x80\x26\x8d\x2a\x0e\xbc\x93\x72\x39\x3b\x43\xf4\x26\x76\xdc\x5f\x00\x34\xf0\x6f\x37\x41\xe3\xb5\xbe\x90\xb2\x84\xe6\x99\x28\x8e\xf9\x74\xc3\xd0\x46\x44\x9e\x2d\x46\x9f\x3a\x2d\xcf\xce\xa9\xd4\x40\x95\x47\xd1\xee\xc5\xe7\xe5\xbb\xda\x04\x34\xb5\x71\xe8\xb2\x29\x55\x99\x3f\x00\xbc\x82\xca\xce\xd9\xe0\x79\x4c\x98\xea\x9e\xdb\xdf\x52\xb3\x77\x48\xf4\xd1\x88\x1a\xe0\x98\x5e\x5b\x22\x47\x9d\xbb\x1e\x02\x1e\x5b\x40\x78\x23\x7e\xc0\x80\xdf\xfb\x5b\xd9\xc0\x61\xd5\xbc\x75\xfd\xa4\x74\x14\xa5\xa0\x7e\x3c\x7f\xec\x87\x95\xa4\xae\x4b\x98\x4a\x2c\x12\xc2\xf5\x31\xcb\x2a\x5d\x95\x77\x90\x00\x10\x1a\x82\x8e\xfb\x5b\xf9\xfe\x2c\x0a\x14\x41\x5f\x88\x62\x7e\xf9\x18\x0f\x27\x44\xa1\xc2\x11\x58\x66\x15\x58\x66\xd8\x76\x6d\x56\xa5\x82\x41\x6a\x08\x22\x6a\x30\x68\x66\x13\x50\xd6\xdf\xb0\x27\xce\x0d\x6a\x53\x0a\x11\x0f\x71\x57\x40\xdc\xef\xe7\x07\x3b\x44\x3c\xf6\x62\x7f\x4f\xa2\xc1\x3c\xc9\xe4\x66\xa0\x2c\xa5\xb8\x2d\x22\xdd\x58\x35\xe6\x2b\x7a\x52\x0a\x91\xd1\x48\xfa\xbd\x2f\x2f\xe8\x16\xf5\xc6\x0b\x90\x50\x63\xcc\xe0\x55\x18\x93\x7b\x09\xf1\x5b\x01\x68\x20\xb1\x46\x5e\x82\x37\xeb\x79\xad\x9d\xbd\xe7\x5b\x53\xc9\x5d\x8a\xcd\x4a\x56\xde\xc8\xdf\x01\x0d\x00\xc1\x15\x23\x2f\xed\x1a\xc7\x7c\x73\x46\x02\x65\x29\x6e\x65\x07\xab\x8a\x6e\xe3\x91\xad\xa1\xb6\xb8\x4c\xac\x6a\xa0\xdc\xf2\x9a\xb6\x86\x08\x72\x04\xf4\xf8\xca\xb6\x0d\xb3\xa0\x26\x2b\xf4\xb6\xac\xeb\x4c\xe6\xe0\x00\xd8\x65\x55\x6f\xcc\xab\x78\x1f\xc7\xa1\x81\x0a\x8e\xec\xf8\xbf\xc4\xa5\x6a\xdd\x9e\xfe\xe3\xb3\xc0\x48\x17\x48\xea\xcf\x61\x60\x29\xf1\xfc\x76\x5d\xb9\x5c\xdb\x3c\x7e\x46\xa6\xb8\x84\x41\xc6\x0a\x7d\x10\x14\xa9\xf3\xf7\x89\x23\x61\x94\x37\x65\xf0\x1c\xb7\x6c\x4f\x83\xaf\x33\x2d\xd3\x1a\x59\x24\x90\xd0\xd4\xb3\x6c\xfa\x84\xff\x48\x31\x87\x42\x92\xa4\x18\x53\xbd\x14\x43\x6a\x43\xdf\x08\x14\x19\x1d\x7d\x5e\xe5\xa5\x1c\x88\x62\x7d\x3e\x75\x79\x6c\xd1\x9b\xdd\x87\x16\xb9\x98\x0e\x00\xd7\x31\x8f\x6c\xa6\xeb\x80\x79\x71\xdd\xc7\xfa\x40\x08\xca\x2c\xd7\xbc\xe3\x4d\xb7\x06\xd5\x00\xfe\x08\xc2\x18\xe6\xe3\x7c\xff\xbe\x64\x55\x05\xf9\x49\xb4\x07\xf6\x2b\xfc\xdb\xf7\x91\xce\x8b\x39\xb8\x84\x13\x4c\xb9\x2e\x40\xea\x04\xd9\x83\x9a\x37\x20\x31\x13\xa3\xa3\x06\x14\x97\xba\x23\x27\x18\x30\x02\xb9\x66\x4d\x2c\x85\xaf\xb8\x34\x6f\xb6\xc0\x67\x3c\x63\xb5\xb0\x01\xf5\x76\x7a\xd4\x0f\x28\x32\x3f\x40\x76\x80\x06\x1d\xf9\xcc\xa2\xdd\x32\xf0\x1d\xdb\x5f\xb1\x54\x68\xe3\xf1\xd2\x46\x22\x1f\x46\x97\x9a\x70\x7f\x07\x9a\x5a\x22\xe1\x5b\x11\xb7\x91\x6d\x42\x6f\x9a\x7e\xce\x7a\x07\x13\x59\x9d\xc8\x73\x55\xfe\xea\x54\x3c\x6f\x23\xb9\x27\x16\xcf\x78\xd6\x19\x16\x63\x9d\x64\x85\x85\xd2\x87\xca\x51\x6e\xdc\x04\x28\x8c\xc6\xcb\x04\x21\xc7\xba\x3c\xe4\x4f\xbc\x43\x98\x35\xfa\x2d\x13\x30\xa3\x93\x61\x3d\x69\x27\x1c\x2d\xfd\x94\xf9\xcd\x77\x8d\x25\xf1\x2a\xcd\x8b\xf1\xd0\x9a\x30\x08\x4d\xa7\xcd\x30\x88\x04\x9a\x90\x51\x44\x6e\x21\xcf\xba\xa5\xa1\xb9\x7d\xaa\x98\x90\x27\xc4\x29\x79\xe1\x64\x6e\x7a\xa8\xad\x21\xa9\xa4\x49\x57\x32\x71\x30\x03\x0a\x10\x43\x03\xcb\x14\xfc\xba\xda\xad\x5e\xbf\xad\x96\x1e\x64\xff\xf0\x75\xff\xf5\x75\x75\xd8\x6c\x57\xaf\xb3\xfd\x7a\xe3\x09\x4f\xa9\xa1\x91\xf0\xb0\xeb\xa1\xe9\x33\xb6\x3e\x0d\x86\xea\xdd\xd9\x81\xca\xe7\xf3\x4c\x0f\x13\x06\x86\x51\x11\x26\xfd\xe1\x52\x37\xeb\x06\x4e\xf6\x10\x58\xf7\x98\x48\x13\x33\xe5\xf7\xb2\x87\xac\xc8\xea\xb7\x6e\xf3\x33\x71\x62\xd0\xb0\x5b\xae\x47\x05\x22\x26\x36\x89\xdf\x14\xaf\x59\x3d\x27\xa3\xc6\x85\x2d\x75\x3e\x42\x73\xd0\x96\x05\xfb\x20\x1c\x52\xf2\xa0\x2f\x23\x07\xdd\xa4\x2c\x74\x3a\xdb\x48\x72\x8f\xce\x43\xcf\xd5\x4d\x8d\x20\x41\xe2\x62\x0d\x96\x40\xf7\xea\xc4\x34\xc2\x58\xa6\x89\x1c\x4c\x13\xf2\xc9\x2c\x90\x89\xb6\x7a\xe5\x65\x56\x3c\xa3\x17\x70\xdb\x95\x30\x2a\xd2\xa9\x2d\xc5\xad\x3e\xac\x83\x8b\x47\xe1\x73\x59\xd4\xf7\x2f\x02\xa6\xf0\xdc\x79\x9e\xfd\x71\xf8\xba\x7e\xd9\x53\xee\x9f\xdb\x48\x9a\xc8\x01\x43\xc3\x73\xa6\xaa\xb2\x35\x4b\x6c\x07\x16\x84\x61\x82\xc9\xe5\xe5\x66\x31\x18\x69\x16\x44\x49\x88\x28\xd7\x93\xf8\x01\xcf\xa5\xd7\x85\x71\x8d\x24\x10\xb8\x77\x4d\x27\x56\x57\xf4\xd0\x76\x81\x84\xf9\x03\x46\x55\x7d\x4e\xfe\xe6\x1c\x67\x01\x09\x13\xde\xf3\x0d\x7f\x83\x2a\x1b\xb8\xb9\x6e\xea\xb1\x80\x10\x8e\x4e\xf5\x1f\x99\x28\xeb\xb7\x6c\xf4\xc4\x24\xb6\x84\x86\xff\x81\xe6\xad\x9a\x5f\x3e\xd6\x7d\x8b\x48\x90\xce\x79\x8d\xc5\xe3\x48\x13\x31\x94\xb7\xbb\x5e\xfc\x2c\x20\xc0\xf0\x78\x3b\x3d\x7c\x7d\x41\x95\xb1\xf9\xe6\xe5\xeb\xce\xdf\x90\x32\x81\x94\xf7\xb2\x6c\x9a\xf2\x84\xe9\x65\xdf\x12\x47\x42\x76\x85\xd6\xcf\x78\x66\xbc\x94\x1a\xba\xf1\x66\x41\xa0\x42\xa4\xa9\x17\xcd\xba\xde\xbf\xc1\x33\x60\x1c\x69\x63\x9e\x32\x03\x7d\x2f\xc0\xb3\xc5\x32\x23\x88\x42\x8f\xf1\x24\x2c\x60\xd4\x72\xaf\x28\xeb\x89\xb7\x3e\x92\x65\xff\xf9\x0b\x54\xb1\xbf\x9c\x1b\xaa\xfa\x30\xd8\x76\xa0\x27\xc6\x82\x38\x4c\x91\xc9\x69\xf5\xbc\xdd\xff\x79\x78\x5d\xed\x36\x5f\x5f\x17\xab\xc3\x6e\xb5\x3f\xac\x97\x5d\xa7\x98\x87\x01\xf2\x60\xaf\xf7\xab\xa7\xf5\x6e\x6f\xf9\x14\x9f\xd6\xcf\xeb\x7d\xdf\x27\xd5\x83\x5c\x7c\x03\x9e\x87\x80\x05\xb1\x0c\x74\xdc\x53\x3a\xfc\x1f\x23\xd5\xed\xf5\x31\x82\xe9\xab\xb2\x11\x0d\xcc\x33\x57\xbd\x70\x1d\x17\x63\x01\xa7\x12\xa5\x16\x36\x67\x28\xbc\x52\xa4\xcd\x87\x8d\x87\x94\xbb\x6a\x0b\x1b\xcb\xb4\x1b\x97\x23\x3a\x68\xba\x0f\xc3\x53\x8d\xc7\x88\x41\xa9\x29\xe4\x0a\xde\x5d\x4e\x96\x6d\x7b\xfc\xb3\x29\x89\x63\xc7\x9b\xbb\x28\x4f\xa7\x4b\x31\xa0\xb7\xf6\x5d\x28\x45\x30\xe9\xa0\x9e\x75\xd7\x0c\xd4\xe5\x7c\x37\x66\xcb\xda\xbe\x88\xfa\x6d\x34\xe3\x53\x2e\x11\x2f\xd5\x9d\x50\x8b\xaa\xac\xeb\x45\x59\x14\x28\xb7\xfc\x8a\x47\xc2\x68\xcb\x98\xd0\xac\x4e\x7c\x6f\x16\xa4\x2a\x4c\xdd\xaa\x75\x59\xbe\x61\xdc\x7f\xda\x19\x92\xc4\x2a\xb8\xfa\x07\x92\xa1\x2d\x19\x38\x8b\x4c\xef\x4b\x9f\x27\xf4\xad\x2a\x92\x11\xef\xd6\xc6\x16\xaa\xe5\x00\x05\xcc\x02\xe5\x24\x4b\x6c\xdc\x05\xc1\x03\x7f\x27\xaa\xc4\x02\x05\xa1\x9b\xcc\x36\xa8\xe2\x52\xcb\xd7\xe7\xd7\x7f\xb3\xff\x71\x97\xe8\x40\x60\x11\xd7\xc2\xff\xd6\x6f\x83\x10\x10\x0b\x74\x14\x81\xdd\xad\x2f\x45\x63\xe5\x20\x9f\xba\x68\x12\x0b\x34\xd3\xb1\xdb\x54\x0f\xae\x52\x73\xfc\x44\x3a\x4d\x89\x87\x22\x39\x51\xb1\xee\x5a\x4d\xd1\xe0\x3f\x78\xa5\x23\xfc\x85\x5b\x5e\x11\x0b\x20\x64\xe8\xe0\x7b\x89\xa9\xfb\xf4\xfa\xfe\x02\xce\x84\xc3\xce\x62\xe2\xbf\x1c\xcc\xf2\x69\x57\x08\xb1\xc0\xe5\x05\xde\x47\xca\x7b\x37\x7b\x87\x41\x10\x7b\x62\x0f\x7b\x28\x59\x80\x4f\x17\x66\xc9\x4a\xeb\xf9\x0d\xe0\x3a\xed\x45\x09\x02\x3b\x7b\xa2\xd2\x4d\x71\x5b\xbe\x9e\x85\x01\xb1\xb1\xa4\x37\x51\xf7\xb0\x11\x16\x06\x94\x22\x71\xc8\x3c\x6b\xda\x93\xf3\x8c\x8e\xdf\x70\x0d\x84\x81\x52\x96\xd1\xfc\x65\xbd\x5f\xcf\x9e\x0e\xa7\x4b\x6e\x4b\x1c\xbb\x0e\x60\x10\x98\xf7\x79\xdd\xb5\xfd\xa7\x9b\x20\x61\x48\x58\xe4\x30\xa5\x48\x08\x05\x55\x57\x81\xd6\x3f\x74\x48\xa9\xa7\x03\x6b\x37\x97\xad\x50\x3f\xc4\x11\x3c\x83\x0c\x0b\x43\x91\x72\xd9\xb9\x8a\x6e\x72\x56\xa5\xbe\x78\x64\x2f\x0b\x43\xb0\x27\xe9\x09\xc7\xd3\x06\x01\x4c\x36\xd6\xf3\x65\x61\x14\x46\xc1\x88\x1f\x6c\x09\x3f\xa7\x9e\x69\xdb\xcb\xc4\x56\xff\x5a\x87\x7f\xde\x19\xe7\x48\xa5\x58\x01\x65\x93\xda\xee\x61\x7a\x71\x1f\x9f\x24\x1a\x5f\x44\x42\xcb\xc6\x8e\xb4\x67\x27\x09\xad\x2b\xbb\x9f\x52\x7a\xb2\x90\x44\x36\x70\xb7\x2d\xf3\x4c\xc1\x81\xf8\xa7\x27\x29\x47\xec\xb1\x70\x35\x4b\x9e\xda\xc3\xd5\x4b\xdf\x79\x52\x62\x84\x71\xda\x01\x59\xdd\x20\x2a\xf7\x8a\x96\x83\x85\x34\x54\x51\xe0\x35\x61\x4e\xd9\xaf\xeb\x04\x42\x7f\x47\x9a\x24\x48\xe4\xbc\x15\xb5\x14\x45\xf7\x95\x68\x2a\x92\x78\x6c\xe7\x17\x05\xd2\x71\xde\x2a\x5e\x66\x21\x15\x02\xc9\x21\x4f\x96\x05\x74\xa0\x8c\xe4\x3a\x30\x62\x21\x68\x96\x5a\x76\xf5\xef\xd0\x65\x6d\xc2\xf0\x1f\xa3\x7f\xbd\x55\x13\x32\x2e\x71\xbb\xe8\xe0\x71\xe5\x74\x68\x99\x0a\x31\xc8\xa2\xc1\x64\x05\x3c\x83\x82\x42\x4c\xce\xaf\x90\xa9\xd8\xf2\x7e\x62\xa1\x55\xd4\x3d\x8d\x8e\xb8\xf2\xd6\xba\xfa\x91\x15\xc7\x76\x26\x0f\x32\x21\x2c\x8c\x49\x8a\xa8\x6f\x2c\xe9\xf3\xfb\xd5\xf8\xe6\x31\x0f\xec\xce\xd2\x88\x23\xb0\x25\x08\x9d\x67\x45\xb7\xd2\x13\xc2\x05\xe9\x8c\xb7\x9d\x12\x39\xa0\xd8\x33\xf7\xed\x60\xcd\xf9\xa3\xa7\x84\xda\x18\x47\x1e\x30\x7e\x4d\x1e\xda\x19\xf4\xb8\xda\x1f\x9e\x57\xfb\xd9\x72\xb6\x9f\xf9\xdf\xe0\x24\xc6\x02\xfe\xdd\x62\xaa\x9f\x7c\x9d\xda\x65\x21\xe7\x04\xcd\x2c\x2c\x96\x43\x0e\x2c\x54\xed\x45\x29\x2b\xeb\x70\x7f\xc6\xb1\x71\x9b\xba\xc0\xdf\x5a\x68\xcc\x48\x9f\x73\xa1\x50\xda\x60\xe4\xfd\xb0\x30\x65\x12\x53\xa9\xcb\xed\xcb\x36\xbf\xd4\xa3\xdd\x2a\x35\x56\x5b\xfe\x52\x43\x85\xb5\xfb\x93\x12\x45\x16\x4a\x19\x3b\x3d\xe9\x1f\x50\xe4\x50\x1c\x7d\xa8\x92\x85\x52\x45\x43\x25\xc5\x97\xf5\xf3\xc3\x6c\xb2\x51\x48\xa3\x11\xc6\x94\x35\xe0\xf8\xdc\x3e\x3d\x30\x42\x15\x19\x14\x7f\x3c\x57\xb0\x3f\x76\x9f\x53\x31\x85\x0b\xc5\x72\x65\xe0\x9e\x6b\xc5\x14\xfa\x0e\xda\x63\x4b\x1f\xb3\x9f\x83\xbf\xa7\x80\xfe\xe3\xe3\xe6\xf1\xf5\xa5\xfb\xa3\x0e\x90\x5c\xe8\xa7\x2d\x14\x74\xc4\x51\xb7\xbc\x74\x16\x6a\x6d\x19\x54\x7f\xb6\xe7\x48\x3d\x0a\x28\xb1\x10\x74\xea\x43\xba\x55\xb3\x45\x0c\xf3\xae\x67\x10\x61\xa1\x09\x1c\x11\x25\xe6\xd3\x47\xf0\x5a\x16\x05\x49\x88\x73\xdc\x7a\x80\x36\x83\x75\x8b\xc0\xa8\xed\x19\xe3\xf3\x9e\x4a\x3d\xad\x4e\x61\x51\xc0\xa9\xf5\x59\x9b\xb2\x82\xdf\xe1\xa3\xbb\xbd\x12\x18\xea\xc9\xe1\x27\xe4\x5f\xcf\x37\xd8\xfc\x59\x14\x18\x8d\x15\x4c\xc2\xa2\x3b\xb7\xb8\x4e\xfd\x0d\xc2\x20\xd6\x9d\x71\xb4\xaf\x32\x39\x39\x6c\xa2\x90\x70\x14\xbe\x3e\x57\xd9\x7f\xe0\xb9\x2c\xfa\xdf\x0e\x49\x0a\x1e\x22\x51\x1c\x21\xb7\xce\xf4\x72\xaa\x9f\xc9\xa2\x30\x16\x96\xa3\xdd\x26\x66\xee\x66\x0a\x58\x14\xaa\x80\xa8\xb1\x1c\xa3\xc7\xa1\xdc\xdc\xad\xa3\x88\xc5\xb1\xcb\x32\x5b\x38\x83\x9f\x98\x93\x6e\x89\x42\x03\xf1\x15\x7a\x69\x70\x16\x45\x3c\xf5\x05\x4f\x96\x65\x27\x2b\x8b\x7a\x21\x72\xe4\x13\xfc\x0b\x1b\xf0\xff\xf7\x5f\xff\xd3\xd2\x98\xbe\xc0\xe9\xb6\x55\x30\x9e\x1e\x94\x18\x0c\x46\x9b\xac\xd0\x2f\xf0\xab\xf9\x0e\xf0\x43\x8b\xde\xa0\x18\x50\x34\xb0\x88\x1a\x5b\xfa\x3f\xcf\x4b\x89\xb5\x2f\xfe\x95\x99\x88\x70\x47\xdc\xbc\xce\x16\x4f\xeb\xff\x5a\x1d\x16\x9b\xe7\xe7\xf5\x6e\xb7\xde\xbc\x74\x5d\x94\xd5\xf6\xa9\xe0\x7f\x41\x35\x16\x8d\x97\xd5\x50\x2d\xde\x44\x75\xec\x4c\xa4\x28\xd6\xb6\xc4\xd1\xc1\x30\x6f\xbf\x66\x0c\x56\x4f\xea\x77\xf4\x34\xf7\x6f\xb0\x6a\xde\x32\x2f\x4a\xc9\xa2\x84\x06\x28\x61\x80\x91\xb9\xb3\xa8\xa0\x50\x1f\xaf\x80\xdf\x71\xbc\x3d\x45\x1c\x0c\x82\xe8\xe7\xf3\x3f\x3f\x61\x32\x60\x51\xeb\x5f\x3a\x0b\x78\x99\xfd\xbc\xd2\x72\x65\x51\x1a\x72\xa9\xba\x81\x1f\x50\xb5\x0d\xba\x08\x29\xbd\xd0\x21\xe4\xf9\xa2\xf4\xe7\xec\xa4\x9b\x0e\x55\xea\x59\x97\xeb\x8d\xb9\x55\xaa\x7f\xbd\xb1\xbb\x8b\xa5\x2b\xde\xb2\x72\x87\x9e\x07\x60\xd2\x87\x87\x81\x1a\x43\x8c\x1d\xc2\xf9\x56\xe6\x9f\x45\x4a\x70\x44\xd3\xab\xd2\xc3\x3d\xac\xae\xda\xb2\x4f\xf6\xf9\x81\xd7\x84\x1b\x35\x08\xcf\xac\x8b\xc9\xbd\xb4\xb0\x71\x08\xd9\x07\x77\xdb\x3f\x6a\x0c\xea\xe0\xe1\xb6\x04\x0b\xa2\x98\x16\x01\xdf\x58\xd5\x5a\xa6\x18\x9c\x38\xf4\x69\xc7\x3b\xcb\x59\x03\x13\xda\x3b\x40\x5b\xa8\x8c\x53\xa5\xe8\x66\x1d\x48\x69\xe1\x18\xa8\xb6\xd8\x8e\xfc\xba\x58\xed\xbf\x74\xcd\x5a\xe3\x4e\xe3\xe3\xc9\xed\x37\xa9\x27\xb4\xbb\xae\xab\x09\x4d\xe8\x94\x2a\xbb\xf2\xfa\xf1\x9e\x6b\x62\x9a\xda\x5c\x01\x88\xfa\x52\x7d\x6c\x0c\x3a\xcb\xf9\x74\x73\x31\x09\x47\x35\x38\x6f\x67\x76\x6e\xf7\x28\x89\x7d\x3d\x2e\x24\x90\x09\x9e\x82\xce\x27\x5b\x56\x59\xe1\x73\x8c\xb7\xfd\x21\x12\x40\x80\x48\x90\xdd\x7e\xf6\xb8\x8a\x0e\xfb\xf5\xf3\xea\xb0\x7a\xf1\xc1\x11\x12\x06\x34\xec\x43\x09\xcf\xeb\x97\xc3\x62\xf3\xb2\x7f\x5d\xcf\xbf\xee\xdb\x05\x3e\xbe\x57\x28\x12\xaf\x13\x6d\x4f\x59\x37\x4e\x93\x69\x45\x42\x2d\x8d\xf1\xc5\x9a\x16\xf6\x35\xc8\x92\x31\x12\x31\x6e\xa1\x42\x83\x9a\x4f\xe7\x76\x99\xc9\xad\x22\x19\xe3\x2a\xde\x3d\xac\xfd\xd5\xd4\x95\x82\xee\xab\x4b\xdd\x74\xf9\x51\x46\xa8\xa4\x78\xb8\xac\x6b\x1b\x24\x7a\x05\xa1\x3f\x0e\x87\x75\x61\x4a\xaf\xae\x36\xca\x7a\x30\x42\xc1\xc6\x5b\x2a\x50\x1f\x2a\xbf\x3a\x06\x49\x12\x58\x7e\xe5\x83\x75\xf4\x07\x67\xec\x64\x90\x93\x28\x74\xa1\xed\xfa\x92\x7b\x63\x95\x24\xcc\x20\xf0\xcd\xd5\x1f\x3b\x73\xf5\xf7\x3f\x17\xf7\x42\x5f\xfe\x3a\xa0\x81\x2b\x9e\x5f\xaf\xd7\x87\xdd\xe4\xa9\x38\xb3\x89\xb5\xd9\xf3\x50\xa3\x89\x91\x94\x10\xb4\x1b\x9a\x72\x9f\x9d\xcb\x55\xd1\x8c\x22\xa1\x24\x65\x11\xb5\x74\xe6\xcd\x5b\x56\xef\xa1\x6e\xc6\x57\x27\x9a\x59\x27\xa6\xdd\x5e\x36\xeb\x25\x12\x0a\x1c\x7c\xb3\xe0\x96\x31\xc0\xda\xc5\xfb\x2c\x87\xfa\xa1\x2a\x4f\xf3\xd2\x8b\x6c\xfa\x88\x04\x11\xd2\x90\xc4\x93\x54\x29\x04\x2b\xdd\xa3\xa0\x70\x57\x28\x12\x26\x74\xc0\x11\x5a\xbf\x0c\x58\x59\x18\x51\x29\x93\x7c\x50\x2d\xf5\xe9\xf1\x4e\x54\x1a\x63\x74\x76\x0e\xcd\x5b\x79\xce\xc4\x6d\xf3\x8d\xa8\x14\xc0\xa2\x91\xe7\xbb\xc9\x94\x53\xc6\x12\x99\xb7\xbe\xf0\x1e\x4e\x67\xea\x1f\x44\x87\x4a\x78\x8e\xba\xb5\x83\x49\xf9\x30\x21\x81\x08\xbc\xfe\xc6\x93\xa8\xbb\x4c\xa3\xdf\x86\x88\x89\x88\xe1\x83\xd0\xcf\x3f\x2f\xd5\x87\x75\x51\x7f\xbb\xc1\x85\xc6\x88\x71\x85\xb4\x33\xad\xbf\x41\x95\x99\x0c\x34\x66\x24\xc6\x33\xd8\x48\x85\xb4\x08\x67\xf1\xd1\x2e\x22\x5c\x65\xaf\xa0\x20\xeb\x40\x2e\x8c\x18\x65\x23\xa8\x67\x78\xd7\x19\x9c\x33\x7f\xb2\xd3\x20\xe4\xdc\x59\x63\x13\xb2\x53\x46\x83\x84\xe2\x20\x38\xc2\x8d\xee\x12\xad\xd0\x4a\x38\x68\xa8\x9b\xaa\xfc\x58\x9f\xce\x79\xd7\x66\x14\x7a\x0c\xa8\xe6\x71\xd8\xbe\xae\x30\xcc\xfa\x7d\xb5\xfa\xdd\x0f\x12\x0d\x69\xa4\x92\x2e\x56\x91\x3f\x64\x90\x77\xee\x1f\x0d\x53\x16\xda\x18\x63\xd3\x64\xc5\xd1\x1a\xdf\xae\x2d\x62\x29\x02\x1b\x3a\x4d\x06\x17\x72\x1f\x3f\x74\xc4\x63\xdd\x13\x03\xd9\x54\xa3\x33\xae\x7d\x2d\x33\xf7\x5d\x0d\x60\xca\x0c\x5a\xfb\xbd\x35\xf5\xdf\x44\x05\x6f\xb8\xa9\xdd\xc6\x82\x30\x4a\x08\x60\x36\x77\x56\x60\x6e\xff\xb5\x94\xe5\x68\x09\x51\x9a\x04\xa3\x23\x72\x67\x99\x7c\x11\x3e\xee\xbb\xa4\x96\xf0\xcc\x02\x4f\x17\x65\x51\x43\x96\xef\x2e\x59\x5d\x77\x5f\x85\x05\x02\x01\x96\xb3\xc5\x6a\x00\x0c\x63\x94\x49\x40\x8f\x73\x39\xc0\xc8\xfd\xff\x99\x92\x34\x89\x12\xd2\xf1\xc6\xb7\xbf\x71\x10\xcc\xff\x4c\xa2\x02\x2c\xa3\x7b\x85\xe2\xf4\x37\x38\x1f\x18\xe5\xc4\xe2\x54\xdb\x6f\xfa\xb2\xf7\xbe\xcc\x78\xe8\x38\x67\x78\xc8\x7e\x11\x55\x76\xca\x26\x56\x0b\xe5\x92\xe2\xd2\x71\x58\xee\x55\xa5\xa2\xe0\xf6\xea\xa6\x1c\xac\xd6\x10\x06\x51\x6e\x58\x7d\x34\x4d\x14\x7a\xff\x08\x3f\x5c\x22\x97\x7e\xde\x0d\xad\x08\x39\xa6\x22\x16\x1e\x9d\xf2\x37\x5e\x4f\xa4\xcc\x44\xc3\x98\xcb\xea\x78\x6c\x3f\xec\x34\x0c\xd9\x75\xb7\xa3\xb1\x10\xe7\x33\xe8\x5e\xef\xfc\xaf\x3e\xd0\xe4\x2e\x86\xa6\x2e\xd0\x93\x7b\x90\xf3\xe4\x45\x25\x09\x31\xab\xd1\x9a\x10\xef\xeb\xba\xf6\x9a\x75\x8c\xca\x38\xc4\x10\xdc\x12\xea\x26\x7b\x01\xd0\xa3\x49\xaa\xa2\x10\x39\xd6\x16\xa2\x7e\x23\x61\xb7\x32\x55\xac\x45\x77\x64\xef\x41\x9c\xea\xae\x25\x21\x48\x82\x92\x67\x36\x3b\x7a\xf5\x2a\xb7\x52\xaf\x8c\x2a\x9e\x50\x87\x40\x9d\x67\xcd\x6e\xbf\xbc\xb3\xaa\x94\xe1\x18\xf4\x41\x37\x75\xbc\xbb\x51\x1d\xd2\xd8\xd6\xf8\xd7\xcd\xac\xd0\xf3\xcb\xc7\x27\x7a\x9a\x8c\x42\x64\x8d\xa3\x76\xd4\xe6\x4d\xf9\x3d\x6b\xde\x76\x4d\x79\x0d\x97\xfe\x5c\xc5\xed\xaa\xdf\xb5\x46\x0c\xa3\xc0\x42\x48\xfc\x3c\x7c\x17\x95\xbe\xf7\x4c\x26\xe4\x68\x42\x58\xc9\x46\x34\x3f\x7d\x91\x7e\xd7\x43\x79\xff\xe3\x51\x9c\xa0\x7e\x1a\x46\x52\xa8\xa1\xcc\x8b\xca\xec\xcb\xf3\xc4\x20\xa3\xa6\xfd\xd8\xb6\x10\xb3\xaf\x4e\x67\xd4\x24\x1a\x1d\xf0\xd5\xfe\xcb\xea\xf5\x75\xb5\xec\xfe\x9e\x26\x3e\xf8\x65\x71\xb1\x4e\x6a\xa3\xb3\xd7\x59\x10\x46\x18\x99\xab\x2f\x43\x92\x7d\xc6\x02\x1a\x59\x9a\xac\xdd\xa2\x1c\x31\x71\x33\x16\xb0\xb4\x47\x87\xc0\xb4\xba\xc4\x5b\xae\x2c\xe4\x09\xf2\x30\xcd\x70\x20\xfc\xc5\xa1\x91\x38\x1b\x5b\x33\x38\xaf\xad\xdf\x79\x73\x9e\xb0\x76\xda\x5a\x32\x92\x99\xcc\xe1\x06\xdf\x0b\x63\x91\x60\xb1\xe3\x3a\x7c\x2e\xf5\x25\x1f\x1b\xe7\x2c\xd2\x5c\xd2\xce\xfd\x74\xa7\xe4\x64\xff\x60\x84\x04\xe8\x11\xbd\x3c\x95\x13\x6b\x90\x91\x58\x60\x0e\x6b\xfe\xb0\xfa\x63\x34\x02\x84\x5b\x0c\xd3\xbb\xc8\x7f\xec\x4b\x9c\x0d\xc3\x9d\x9b\x11\x6e\x69\x08\x4d\x56\xc1\xea\x27\x14\xcd\x53\x79\x0c\xfa\x46\x2d\x82\x9e\x8a\x77\x73\x86\x0e\x59\xc5\x18\x49\xad\xc3\x68\x2d\xc8\xb9\x67\x47\xfb\xfa\xba\x1e\xbf\x1a\x91\x2e\x08\x92\x97\x45\xc7\x36\x7e\x2f\x5e\xcd\x68\x90\x52\x5f\x78\x54\x40\xe5\x09\xba\x5e\xdb\x23\x3d\x53\x1e\xe0\xb9\x2f\xaf\x2a\x85\x26\xb7\xd1\x61\x92\x7a\xc4\xe7\x1b\xe8\xdd\x47\xdd\xc0\xc9\xd1\xe2\xb8\x3e\x2c\x00\x0f\x46\x78\x81\x5f\xcd\xcc\x1f\xdf\xa8\xcd\xee\xfb\x90\x94\xca\x81\x7f\x3d\x8c\x05\x5e\x51\xa8\x4e\xdd\x62\xc6\x38\xc5\xf4\xac\xcd\x07\x2c\x7b\xad\x04\xd7\x1e\x9b\x24\xf6\x26\xc7\xc7\x00\x9c\x34\xde\xae\x58\x22\x28\x6a\x9f\xef\x33\xa8\x0e\xdf\xb3\x5c\x2b\xaf\xea\xcc\x58\x22\x63\xac\x96\xcd\x4b\x07\xd5\xdb\x97\xed\x09\xf0\x58\x7a\x38\x37\x63\x89\x36\xc8\xab\x34\x2b\xb2\x13\x8c\x26\x07\x0f\x93\x14\x61\xea\x51\xf7\x17\xca\x2d\x7e\xc0\x21\x95\x76\xd6\x18\xba\x5f\xac\xcf\x58\x2a\x40\x46\x43\x61\x75\x57\x94\x71\x47\x2c\x98\xb1\x54\xd9\x48\x26\x66\xe5\xb7\x55\x29\x73\x38\x8d\xb0\xcf\x8c\x09\x0a\xd2\xb2\xd0\xfd\x2c\x7f\xc0\xac\x99\xba\xd9\x93\x71\x1a\xd0\x7b\x31\x26\x03\x0e\x6e\xcf\x72\x74\xa3\x37\x77\x3f\x26\x49\x8c\x83\x8f\xa0\x0b\xc7\x98\x79\x98\xad\x5f\x97\xaf\x9b\xed\x28\x01\xcf\x64\x9a\xe0\x2e\x52\xfa\x12\xc6\xa7\xb2\xfc\x71\x47\x0e\x97\x31\x29\x03\xcc\x7a\x76\x2c\xb5\x17\xe9\x69\x18\xea\xbe\x08\x72\xbc\xb2\xa5\x64\x31\x1b\x80\xe5\xeb\xeb\x6a\x03\xc6\x54\x42\xbc\x04\xbe\xb7\xe0\x37\xef\xfe\x04\x1d\xcf\x18\xa5\x08\x56\x86\x3e\x95\xc7\x76\x26\x78\x9d\xff\xdb\x0f\xac\x03\x1e\xf7\x1a\x72\x48\xaa\xeb\xeb\xca\x37\xc8\x98\x32\x12\xd1\xb8\xd2\x27\xf3\x77\x89\x22\xc4\xfb\x9f\x3e\x7a\x0a\x43\xc6\x74\xcc\x54\x57\x71\x31\x34\x4d\x7c\xbb\xa2\x2a\xf2\x18\xa7\xf7\x0f\xa8\x86\x19\x15\x06\x81\x46\x27\xd5\x0e\xcb\xbc\x2a\x7f\x5c\xed\x89\x40\x23\x2c\x49\x10\x5a\xaf\x8a\xa6\xfa\x58\xfb\x02\x69\x4b\xe3\x75\x2d\xea\x88\xf5\xe2\xb7\x67\x04\xb0\xd0\x8a\x6a\xad\x5f\x0e\x8f\x9b\xd9\xd3\x61\x35\x5f\x74\x8f\xa2\x08\x0c\x91\x96\xbb\xf2\x92\xdf\x39\x0d\x0c\x8f\x30\xd0\xb2\xad\xe0\x67\x56\x5e\xea\xe1\x78\x18\x45\x71\x2a\xfd\x44\x1c\x95\x63\x95\xf4\x7a\xf2\x5d\x1f\x61\x1c\x95\x9f\x3f\x08\x86\xca\x14\x2c\x0e\xa8\xc0\xe3\xc6\x4b\x37\x7f\x9f\x3d\x3d\x75\x6e\x50\x1c\x08\xcb\x9f\x5e\x5f\x8e\x47\xe4\xa2\xea\xe4\x64\x58\x1c\x06\x14\x6f\x7d\xa8\xa1\xd9\x54\x47\x51\x64\x53\x68\x3e\x8b\x43\x88\x31\x5e\x68\x00\xc6\x68\xca\xb6\x29\x45\xde\x10\x09\xaa\x3c\xc1\x2b\x14\xe5\xfb\x64\xe6\xc5\xa1\xb1\x78\xdb\xa7\xcd\x7e\xbf\x5a\x7c\x99\x79\x05\x64\x16\x47\x81\xad\x1c\xe8\xf6\x89\x11\xb2\xf8\x3a\x9e\x14\x47\x91\x32\x7a\x48\x5b\x5b\x4e\x1f\x95\x04\x14\xf7\x2f\x24\x34\x44\x77\xef\xef\xe0\x94\x59\x4c\xe2\x48\x5a\xa9\x87\xa3\x23\xf2\xf5\x0f\x49\x64\x64\xba\x80\x1c\x82\x61\xd6\x96\xdd\x7c\x90\x87\x8b\xa9\x48\xd0\x1e\x5d\xc2\x39\x2f\x3f\x3a\xa5\xf3\xb6\x41\x63\xba\x7b\xfd\xf0\x32\xae\xf8\xb8\x03\x94\xbc\x36\xe9\x63\x16\xca\xd8\xc9\x21\xa3\xe8\x11\xc6\x75\xa6\xdb\xdd\xf8\x6d\x92\x40\x68\xe5\xf8\xb3\x6d\x88\x34\xe4\xcf\x65\xd1\xbc\x75\x9f\x3d\x61\x41\x42\x3b\x91\x5a\x1f\xcd\xba\x2a\xcb\x60\x71\x12\x5b\x40\xbd\x14\x35\x5c\xd7\xf7\xb3\x38\x49\x19\xba\x88\xa7\xf6\xf6\x11\xb5\x54\xd8\xbe\x91\x27\x36\x9a\x67\x2e\x85\xae\x44\x56\xf7\xd9\x0b\xdf\x81\x87\x3c\x72\x44\x60\x48\x83\xf3\x24\xea\x66\xf6\x13\x2a\x71\x84\x9b\xbe\x59\xcc\xb9\x42\x1b\xa3\x80\xf7\xc7\x4b\x7f\x2c\xc7\x5c\x44\xc9\x10\xa5\x3e\xcb\x07\x01\x5b\xd7\x47\x18\x0d\x43\x32\xed\xdf\x6e\xa8\x7c\xb1\x58\x46\x96\x27\x1a\x90\x89\xee\x4f\xff\x03\x32\x4d\x99\x45\x3e\x97\xfa\xd2\x99\x9a\xb1\x12\x21\x96\x67\x2c\x36\x2f\x0f\xeb\xc7\xc3\xc3\x6a\xb5\x3b\x3c\x7f\x7d\xf2\xcd\xda\xe9\xad\xdb\x30\xaf\xbe\x55\x5f\xc0\x62\x4d\x02\xac\x72\x52\x1e\x96\xd8\x9a\x56\x13\xaa\x92\xf1\xc6\x14\xeb\x38\x49\x60\xc8\x42\xdb\x74\xa7\x7b\x0c\x5c\xc7\x0e\x9f\xb9\xbf\x34\x65\x95\x89\x7c\x2e\xe4\xc7\xa3\x73\x20\x7d\xe8\x2b\x06\x11\xa2\xee\x56\x5d\x64\x3f\xa0\x6a\xba\x8f\x62\x68\x18\x6b\xb4\x70\xca\x62\x3f\x20\x88\xfe\x7b\x10\xb8\xd8\xc4\x76\x47\x71\x1a\x72\x8f\xcb\xad\x3b\x33\xba\x76\x6e\x69\xae\x55\x73\x41\x6e\x13\x3c\xd9\xe6\x60\xca\x6a\xac\x7d\xf3\x79\x58\x20\x09\x28\x43\x66\x64\x27\xb5\xf5\x38\x58\x16\xae\x47\x18\x71\x04\xb9\x88\xdc\xfa\xcf\x7d\xb8\xf6\x1f\x93\x8e\x2c\x01\x0b\x03\x69\x5f\x58\xdf\x31\xea\x93\x28\x88\xc1\x0d\xac\x3d\x13\x27\xc5\x3a\x2c\x89\x84\x44\xee\x2e\x14\xf6\x43\x4a\x27\x4b\x74\xda\x35\x43\x48\xa6\x88\x88\x3b\xe0\x53\x96\x10\xb0\xcc\xfa\xba\x7c\x10\x59\x9e\x15\x47\x9b\x89\xf0\x03\x99\x50\xa9\x11\x05\x58\xc0\xfb\x72\x44\x5a\x73\x23\x6f\x94\xb0\x04\x40\x0e\xf5\xa8\x5c\x51\xd3\x64\x8b\x4d\xe2\x58\xc6\xd4\xe3\x11\xe6\x70\xf4\x05\xe3\x2c\x49\x84\x65\x61\x39\xa0\x95\xb6\x03\x71\x7f\x6f\x1d\xbf\x07\x0f\x53\x3c\xfd\x76\xab\xdd\x6c\x3b\x1b\xa1\x61\x13\x4e\x54\x1c\x7b\xcb\xcf\xd2\x25\x8f\x0c\xe2\x84\xeb\xd4\xe2\xed\x95\x28\x76\x50\xe8\xf6\x33\x3f\x66\xbe\xa0\x80\x25\x69\x08\x34\xee\xf5\x34\xfc\x7c\x45\x9a\x62\xdc\x3e\xc6\xcf\x92\x52\xed\xca\xc8\x5b\x93\x00\xb3\xdc\xcb\x11\x62\x99\x25\x22\x32\x08\x09\xf1\xc0\xa2\xdf\xae\xf7\xe4\x44\x90\x44\x0c\x62\x40\xc8\x1a\x9e\x5f\x8f\xc7\xf8\xb7\x85\x0e\xb0\x2a\xbe\xfd\x00\xb6\x28\xc4\x0f\x3e\xe9\x8f\x3a\xea\xa5\x19\xc2\x24\xfe\x9f\xcf\x9c\xfa\x44\x68\x9a\x38\x88\x41\x2d\x72\xd8\x42\xd5\x67\x17\x12\x29\x58\x62\x27\x62\xf9\x7e\xd8\xbf\xc1\xa1\x10\x27\x38\x94\xe6\x50\xa2\x5c\xd0\xc1\x5b\x31\x89\x62\x1a\x05\x06\xdc\xdc\xda\x67\x4d\x3e\x1d\x33\x4d\x6c\xe5\x1d\x20\xf9\xfa\xd9\xc3\x8f\x12\x2d\x09\xb7\x05\x3b\xc5\xe1\x7d\x68\x8e\x24\xa0\x55\x18\x76\x93\xed\xa9\x2c\x1b\x59\xfe\x9a\x2c\x4e\x43\x84\x0c\x06\x12\x2a\xdb\x72\x5a\xcc\xc2\x12\x43\x13\x5f\x5a\xf8\x0a\x22\x7f\x2c\x73\x3d\xb7\x74\x13\xb6\x03\x0f\x48\x80\x4e\xae\x65\x18\x2e\xea\x66\x80\x4c\xe0\x51\x1c\xe3\xdc\x72\xfc\xe8\xdb\x4b\x9e\x6f\xc5\x07\xd6\xe6\x8d\x57\x4a\xd7\x9f\x23\xb4\x65\x87\x42\xd3\x96\x65\x40\x7d\xdc\x8c\xbc\xdd\x4a\xab\x70\x12\x86\x62\x50\x16\x3d\x10\x0a\x62\x9c\xf0\x54\x59\x2e\xcb\x76\x27\xf5\xe0\xc4\x4f\xe7\x0b\x27\x10\x61\xf1\xc3\x6e\x3f\xdb\x7f\xdd\x1d\x96\xab\xd9\xd3\x61\xb6\xdd\xbe\x6e\xbe\xad\xfc\x6d\xa9\x60\x92\x0d\x06\xba\x07\x32\xfa\x05\xcd\xa9\x02\x1c\x67\xdc\x5a\x5f\xe0\x7d\x75\x2e\xd5\x5b\x77\xbd\xb1\xf2\x38\xb3\xfd\xc2\x95\x4a\xa3\x80\xad\x4f\x66\x70\x16\x11\x24\xdd\xd9\x35\x95\x68\xe0\x98\xa9\xe1\xe2\xe5\x8c\x05\x18\xd4\xab\xc6\x81\x4b\xce\x92\x04\x31\xff\xf2\xf2\xf1\x47\xa6\xfb\xbf\x0a\x4c\xd9\x9c\x2d\x1f\xf0\xe6\x4e\x4a\x84\xb3\xd4\x3a\x1f\x42\x6b\x47\x20\xf8\x17\xe3\xc4\x54\xe4\xbd\x20\x2b\x38\x59\x77\x3f\xa9\x55\x18\xe1\xcc\x6d\xbf\xa8\x4d\x45\x0f\xd5\xe0\x19\x8f\xc3\x08\x1f\xf5\x88\xf0\xc8\xee\xaf\x91\xe5\xfe\xdd\x43\x8d\x73\x61\xd7\x88\x42\x63\x05\xdd\xe9\x2c\xb2\x63\x31\x49\xab\x5d\xc5\x16\x47\x33\x9d\xb7\x26\x24\x1d\x04\xda\x17\x5e\x56\x76\x5b\x95\xa7\xd2\x56\x0d\xf9\xae\x52\x22\x57\xc7\xf3\xec\x8f\xf5\xf3\xd7\xe7\xc3\x76\xf6\xba\x5f\x2f\xd6\x5b\xac\x26\x19\xd1\x88\xb7\x7d\x35\x73\xbc\xaf\x2f\xa5\x16\xb9\xc4\xd2\x0a\x4b\x81\x3d\x9a\xd7\x49\x6a\x45\x35\xfe\xd9\x85\xd6\x78\x22\x24\xd1\x9d\x74\xc5\x4e\x18\x68\x3e\x9e\x4b\xdd\x0d\x00\xe7\x09\x7e\xab\xdd\xdb\xa5\x69\x9c\x61\xde\xb5\xa9\x10\x55\x93\x6d\xfd\xd7\xee\xbd\x83\x9b\x70\xc1\x62\x24\x38\xb3\x6a\x67\xab\xe6\xad\x7b\x53\xdf\x43\xa6\x5e\x42\xbb\xe7\x24\xcd\xfa\xe9\x26\x55\x80\xeb\x3d\x2b\xb2\x66\xc4\xd1\xf2\xf9\x04\x90\xc6\xe6\x33\xeb\x31\x4f\xe9\xd8\xae\xe3\x8a\x31\xb0\x4c\x54\x39\x60\x45\x28\xe8\xfa\x21\x13\x93\x3d\x87\x2b\x45\x12\x57\xc0\xb9\x80\xa2\xbe\xb4\x03\xd9\x83\x1f\xbd\xf1\xc4\x35\xa1\x11\xe9\xe3\xa0\xcf\x99\x2b\x04\x9b\x7f\xcc\x61\x7a\x4b\xad\x2c\x5e\x17\x39\xa0\x2f\xc5\x0f\xba\x2f\x7b\xd8\xa5\xef\x63\x88\x49\x06\x30\xaa\xf2\x74\xce\xa1\x01\xfd\x9c\xe5\x50\x37\x65\x31\xd9\x94\x39\x30\x5b\xac\x77\x84\x4e\x79\xd3\xd1\x1e\x5f\xf3\x3d\xf8\x4b\xc0\x60\xbe\xc9\xd2\x2f\xdb\xd5\x30\xde\xdd\xc6\xf3\xd6\x44\xc2\xc6\xaa\xaa\xf2\x5d\xb7\xeb\xfb\xf0\x0a\xf5\xa5\xf3\x5c\xb9\x91\x06\xb3\x1b\xde\x1b\xdb\x14\xab\xaa\xba\x17\xc6\x4b\x83\xd0\x0a\x2a\x9c\x0e\xf5\x19\x13\x1a\xda\x2b\x89\xb2\x34\x48\x2d\x73\xf9\xbc\x2a\x9b\x37\xc8\xc7\x27\x45\x1a\x98\x00\x3f\xdc\xf2\xeb\xef\x3d\x81\x0d\x4b\xa3\xd0\x20\xad\xd9\x59\xe4\x42\x67\xc5\xea\xdf\x97\xac\xe9\xee\x18\xc5\x02\xcd\x06\x27\xba\x21\x72\xd8\x4c\xf0\x11\x29\x89\x29\x46\x21\x2d\xee\x7a\xfd\xb2\xbc\xf3\xe0\x24\x11\xe8\xbf\x66\xb5\x0d\x85\xf7\xf4\x85\xf7\x2e\xe0\x16\x4e\x78\xc6\xbc\x7e\x0f\xde\x48\x29\xb5\xda\xaf\x4f\xfb\x3f\xb7\xdd\xdf\x74\x9a\xda\x83\x61\x29\x1a\xf1\xe2\xa2\x98\xbe\x11\x44\xdc\x3e\xe2\xea\xf1\x71\x77\xd8\x6f\x0e\x5f\x66\xfb\xc5\x97\x43\xb8\xfb\xd7\xd7\xf5\xeb\xeb\xca\x3b\x19\x29\x4b\xa4\xf1\x4c\x24\xad\xe1\x79\x2d\xe1\xc3\x52\xa6\x52\x94\x35\xeb\x4c\xcf\x7d\x06\xd5\x70\xef\x49\xe3\x28\x44\x93\xe1\xcb\xec\xcf\xd9\x7e\x73\x78\xd8\x3f\x1d\x76\xdb\x55\xb7\x67\xb4\xed\xf6\xac\x09\xba\xbf\xf0\x04\x8b\x69\xb2\xa2\x28\xd5\x24\xd0\x9e\xc6\xca\x18\x1f\xbd\xf7\x79\xa5\x9b\xf2\x1d\x2c\x4d\x58\x9c\x86\x1d\xa6\xc9\xf1\xae\xdd\xb4\x89\xd3\x44\x04\x7e\x75\xe2\xc3\x77\xa6\x77\xca\x85\x0d\x33\x7c\x80\xa8\xf2\x8f\x79\xa7\xa2\xe1\xdb\x53\x96\x78\xa8\xec\x4e\xe4\xa2\xfa\x18\xe0\xea\x3f\x8d\x0d\xa4\x29\x53\xca\x02\x23\xf2\x52\xe8\x0e\x2f\x36\x22\xb7\xf9\x0c\xd4\x92\x0a\x1a\x83\xaf\x51\x6b\xcf\xd7\xd7\xf6\xb0\xbe\x66\x64\xf6\xbd\x13\x8a\x3a\xe6\x19\xfa\x22\x59\x71\x1c\x44\x8b\x52\x91\x2a\x5c\x73\xed\xad\xea\x2b\xd6\x46\x96\x0a\x88\x50\xf0\xba\x1d\xed\xa5\x68\xc0\x42\x16\xfd\xd5\x92\xf1\xd8\x7a\x8d\x42\xff\xeb\x22\x8a\x26\x6b\x3e\x86\xd8\xef\xdb\x9e\x56\x2a\x53\x85\x07\xc8\xd7\x1a\x26\x68\x87\x54\x6a\x0b\x86\xf0\x76\x77\x05\xba\x8f\xf6\xde\xa9\x14\x1f\xdf\x5c\x87\x21\x47\xf0\x66\x71\x84\x7c\x52\x10\x92\xea\x28\xf0\x91\x5b\xc7\x9f\x5b\x63\xd6\x69\x32\x81\x74\x2c\x75\xe8\xde\x6b\x20\xc0\xc4\x52\x9d\x08\x61\x91\x6e\x85\xc5\xf4\x3c\x8b\xe2\x22\xf2\x81\xc0\xdb\xe4\x61\x20\x46\xc0\x78\x8f\xe3\xfa\x0b\x88\x53\x0a\x41\xe2\xf9\x1b\x1e\xb2\xaa\xf6\x1c\x32\x37\x23\xa2\x29\x44\x89\x74\xa0\xfa\x8e\x0d\xfb\x1a\xed\x36\x99\x7e\x10\xa7\xae\x82\xb2\xe9\x34\xc7\x50\xe7\x63\x3a\xae\x3e\x9a\xd1\x05\xe2\x53\x00\x21\xfb\xd8\x55\x7b\x4e\x0c\xcb\x6b\xdb\x76\x40\x90\xa6\xe7\x0b\x72\xe6\x71\x3d\x09\xbd\x4c\x06\xc9\xa4\x80\x1b\x67\x2e\xea\x06\xad\x49\x5c\x6c\x5f\x90\x48\xd4\xdf\xd9\xc8\x34\x76\x28\x18\xeb\xfd\x6f\x2e\x8d\x2a\x4f\xbd\xbe\xcb\x35\xfe\x5b\x04\x69\x8c\x51\x2b\xbb\x67\x0f\x8b\x82\xad\xba\xf0\xe8\x29\x44\x18\x52\x13\x3a\xd0\x76\x33\x58\x22\x22\x4c\xb8\x2f\xa9\xd9\x5b\x9c\x77\xe0\xf3\xc6\x22\x0a\x00\x73\xae\x6f\xa2\xfe\x4b\xa6\x5f\x26\x48\xc8\xb0\x28\x52\x97\x3e\x1e\x7b\xa7\x9f\xe6\xc6\x7d\x56\x9c\x64\x0b\xcb\x4e\x36\x75\x3e\x05\x55\xb6\xfe\xcf\xe2\xae\xea\x25\xe4\xdd\x11\x28\xa8\x36\xe8\xc9\xfc\x9d\x6a\x9a\x9b\xee\x87\x60\x49\xa4\xed\x61\xf1\xba\x2a\x8e\x95\xf8\x39\x4e\xa5\x0b\x06\x16\x0e\xf7\xd5\xd2\x8e\x4f\xc7\x93\x99\x50\xe9\x1e\x8d\xd2\x8e\xf8\x88\x34\xc0\x75\x8b\x43\x81\x69\xc9\xd7\xef\x3b\xef\x43\x8a\xd6\x6a\x4d\xbb\x60\xa2\xfd\xde\x7e\x5f\x16\x49\x90\x60\xe2\x66\x59\x5d\x8e\x4b\x10\x9d\xb4\x15\x13\x89\x56\xe0\x38\xf5\x6c\x1c\xa4\xbb\x86\x0b\xca\xfd\xd9\x51\xe6\xda\xc6\xba\xa3\xc9\x93\xa4\xa1\x46\xc6\x58\x1b\x35\xb3\x13\x1b\xc9\x78\x4f\xa0\x07\x0c\x6b\x37\x6d\x1b\x21\xd2\x18\x05\xa1\xcf\x65\xdd\xfc\xb3\x94\x96\xe9\xe7\xce\x6c\xb8\xbd\x2b\x0a\xa1\x21\x74\xe2\xe3\xab\xd3\x39\x2f\x3f\x00\xd6\x13\xd8\x83\x90\x42\x42\x4f\xe5\xe5\x54\x76\x06\xac\x3d\xc3\xd0\xc2\xe4\xf6\x2a\xb0\x5c\xc3\x7e\x1d\xdc\x16\xa1\x61\x42\x45\x04\x2d\x1d\x4c\x45\x0d\x2a\x66\x85\xa2\x84\x0e\x35\xe4\x47\x4b\x5f\x28\xae\x22\xf7\xf4\x3b\x68\x3f\x5a\xbb\xb7\xf6\x45\xe4\x4c\xe8\xd4\x78\xec\xb8\xa7\x6d\xbc\x3d\x0e\x10\xd1\x04\x3c\x01\xc0\xd3\x60\xe3\xb7\x10\xc2\xd1\x55\x31\xf5\x17\x49\xf0\xca\x98\xb7\xb7\x3d\x01\x2a\x46\x5a\x79\x5f\xcf\x97\x35\xd9\x7f\xba\x08\xe6\x3f\x2e\x43\x06\xcd\x69\x94\x64\xb4\xe9\x0a\x13\x09\x84\xc6\x5b\xbc\x1e\xe8\xe5\x72\x3f\xf9\x4a\x46\x30\x0c\x50\x59\x80\xdb\xe1\x11\x9a\xe7\x8f\xa1\x9a\x23\x93\x01\x0d\xbc\x10\x0d\x2e\xec\xdb\x74\x0f\x4c\x06\x2c\xc4\x50\xc9\xf3\xea\xfb\x6e\xb8\xf8\x64\x10\x87\x36\x4c\x2e\x7e\x80\x27\x0c\xf6\x4d\x52\xf1\xbe\x18\xb1\xfd\x82\xb3\x42\xdb\x68\xc8\xcd\xe8\xbe\x0c\x74\x12\xf6\xd0\x7a\x0f\x4f\xde\x98\xe9\x51\xd5\x1f\x04\x32\x00\x26\xdd\x82\x82\xe6\xad\xba\x42\x8d\xcb\x50\xa5\x3c\xf1\xbb\xe9\xfc\x52\x39\xc4\x51\xf7\x90\xa1\xd1\x08\x34\xf0\x59\xe0\x75\xfb\xb1\xb7\x9b\x75\xd7\x21\x4a\x6c\x25\x5d\x03\x75\xf3\x20\xb2\xfc\x39\x2b\x9a\xef\x6f\x28\x4c\x71\x3e\x77\x0e\xa0\x8c\x04\xc7\x78\xb8\x4d\xe3\x8e\xfc\x54\x49\x12\x8d\xd9\xf7\x2f\x65\xf3\x2c\x0a\x14\x51\xff\x6b\xc4\x93\x24\x22\x51\x16\x1a\xd9\x5a\x06\x5e\x1b\x65\xfc\x76\x31\x8f\xf1\xdc\x95\x97\xaa\xb0\x94\x45\x2e\x1e\x6c\x79\x8b\xfd\xc3\xc5\x4a\xc7\x71\x5f\xe5\x39\xa2\x2c\x1a\xfd\x66\xac\x6d\x61\x88\x98\x3c\x9f\x6b\x4e\x02\xc0\x73\x03\xcb\x55\xe0\xe9\xdb\xd3\xe4\x71\x12\xc1\xb1\x00\x61\x09\xcb\x2b\x93\xf8\xaf\x34\xcb\x3e\x8f\xb5\xca\x44\x12\xe6\xf0\x03\xdf\xca\x06\xaa\x7a\x56\xd4\xbd\x3d\x24\x79\x1a\x21\x00\xd3\x67\x49\x1e\xca\x6a\x53\x20\xb1\x97\xef\x91\xf2\x00\x83\x58\x67\xa8\x4c\x39\x16\x2a\xb9\x09\x45\x90\x29\x10\x5c\x5e\x6f\x48\x85\xed\x48\xd0\xd0\x05\xed\x02\x03\x52\x84\x11\x2e\x8b\xb3\x15\x27\xfe\x0e\x99\x63\x41\xeb\x3a\x10\x82\xb8\xee\xb5\x2a\x31\x26\xeb\x82\x34\xe3\x77\x13\x24\x56\xa1\xe7\x7a\x33\x42\x01\x82\x88\x46\x23\x2f\x0c\xc3\x64\x6a\x93\x41\x15\x0d\x21\x99\x52\x86\x29\xe9\xb5\xe2\xd7\xad\x63\x8f\x26\xce\x2d\x34\xab\x94\x32\x42\x24\xd7\x53\x56\x88\xd3\x47\x37\x79\x15\x61\x18\x19\xde\x35\x15\x0c\x90\x65\x37\x18\xd8\xfc\x05\xc2\xe0\x11\xf5\x55\x66\xe5\xe5\xb3\xb2\x0e\xa9\x8c\x84\xa4\xf3\x19\x27\xf6\xad\xd4\x42\x63\xa6\xa6\xc8\x8a\xe6\x6d\x60\xeb\x48\x13\x1a\x4c\x4e\x8a\xce\x27\xb5\xe4\x45\xd6\x71\xe8\x7a\x69\x19\x38\xda\x7a\x4c\x1e\x2f\xde\xb2\xfc\xca\x79\xbd\x3d\xa1\x54\x40\x0d\x66\x36\xab\x1e\x38\x31\x85\xd6\xa8\x20\xe5\x64\xe0\x6c\x23\x4c\x0b\xd3\x31\x83\xb1\x50\x01\x00\xca\xc0\xb8\x8a\xe3\xa7\xec\x3f\x1e\x02\xa8\x42\x62\x2c\x26\x6b\x84\x75\x78\xca\x4e\x53\xf7\x46\x85\xa9\x30\x81\x17\x92\x6e\x87\xcf\xc1\xcf\x86\x63\xa9\x22\x9a\x78\xb1\x83\x3f\xc5\xc7\xcb\xe5\x34\xb9\x49\xa4\xe2\xc0\xf8\x9c\xc3\x95\x84\x01\x53\x91\x26\x88\x71\xaa\xca\xd3\xb9\x5b\x3a\x2a\x02\x8e\x4b\x47\x96\x75\x3d\xd0\xd9\x63\x2a\x32\x02\xd1\x2e\x2f\x80\xc0\xc6\xbf\xa8\x0c\x54\x24\xb0\x51\xe2\xd6\xd9\xad\xae\x21\x5d\x8a\x06\x12\x93\xf5\xd2\xba\xb7\x58\xe0\x31\x79\x01\x2a\x38\xe2\xe8\x54\x59\xe9\x3f\xa7\x6d\x92\xe2\x06\x7b\x68\xc4\xd1\x32\xe1\x8f\xc6\x86\xf1\x08\x43\x51\xab\x17\x6f\xbd\x29\x06\x31\x1a\x5b\xa7\x6c\x52\x44\x7e\x07\xd7\xa1\x62\x4e\xf0\x4b\x9e\x1c\x99\xbc\x3f\x79\xc6\x0f\x92\x44\x14\xed\x49\x2f\xda\x57\x4f\x83\x81\x2a\x89\x6c\xe1\x5d\x3b\x12\xe2\x63\x7a\xb9\xb4\x87\xdc\xb3\x57\x56\xf6\x57\xa5\xa1\x9d\xcc\xfe\xa0\xd9\x77\xd1\xa7\xfc\x03\x6b\x2c\x40\x2f\x44\xaf\xa0\xca\x54\xda\x1a\xa8\x6e\x57\x9f\x2a\xaf\x32\x95\x02\x0b\xc1\x7b\x57\x68\xe4\x8f\xf7\x9e\xc9\xd7\x13\x4a\x78\x50\xbd\x15\xf4\x1f\xe5\xb3\x95\x92\x31\x1e\xa3\xdb\xaf\x4f\xa3\xf3\x5f\xe9\x80\x72\xf7\x10\x3e\xc4\xe1\x9f\xc5\x2f\x10\x1d\x4a\xc4\xf8\x6f\xc5\xc7\xa7\x50\x01\xdf\x9d\xc4\x3c\xf6\x3c\x55\x3b\x9b\x6b\x7d\x1a\x83\xac\x7a\x03\x40\x01\x4d\x2c\x3b\xc2\xe9\x63\x09\x2a\x3b\x75\xd9\x62\x05\x2c\xb2\x3c\xd0\x43\x0e\xdb\x7b\x19\xdf\xf1\x23\x40\x42\x3c\xa9\xc5\x73\x56\x7c\x2b\xa7\x56\x85\x32\xc4\x6a\xa5\xe2\x5c\x1e\x22\x34\x75\x20\x38\xc2\xc6\x97\x22\x1b\x53\x8c\x31\x1d\x00\x15\x8e\x31\x79\x5e\xde\xa9\x67\xd5\x61\x1a\x61\x8e\x5a\x57\xe5\x79\xfc\x0d\x74\xa8\x0d\x86\xdb\xeb\xa8\xfb\x53\x94\x44\x94\xf7\x05\x6f\xff\x37\x2e\x76\xa6\x49\x10\xe0\x97\xb1\x91\xc2\xd9\x1d\x51\x00\xa6\x29\xe1\x96\x27\xc0\x6a\xa4\x5a\x47\xc8\x22\xfd\x9c\x2c\xbf\x7f\x20\xca\x35\x4e\x62\xcb\x76\xe2\x89\xbb\xa7\xe5\x44\x9a\x4a\x6d\x49\x6f\x44\x75\x84\x41\xf1\x90\x66\xa1\x46\xe6\xf4\xc3\xf9\x4d\xd4\x10\x59\x8c\x47\xd7\x28\x29\xe6\xe5\xb6\xaf\x2b\x2c\x7e\xdc\x3f\xaf\x5e\xf6\x07\x0f\x0d\xda\xad\x16\x9b\x97\xa5\x07\xa8\xe8\x38\xb4\x41\xde\xed\xbb\xfe\x22\xea\x39\x40\xb1\x83\x31\xdd\x1a\xd3\x71\xc2\x52\xe7\x2b\x3c\x42\x51\x9e\x26\x9f\x59\xc7\x9c\x04\xb6\x58\x04\x8f\x17\xcb\x14\x5e\x96\x7f\x99\xc8\xbf\xf9\xef\x9d\x5d\x47\xc7\x5a\xa2\xc7\x76\x29\xb6\x55\x79\xca\x6a\xd0\xdb\xf2\xdc\xbd\x05\xc4\xb8\x2c\x5d\xea\xed\xff\xd1\xf6\x6e\xcd\x8d\xe3\x4a\xd6\xe8\xdf\xe9\x87\xfd\x40\x12\x24\x00\x3e\xca\xb2\x5c\xd6\xb4\x6d\x79\x4b\xaa\xaa\xee\x3d\x31\xa1\xc0\x25\x61\x71\x4c\x91\x6a\x92\x2a\x97\xfb\xd7\x9f\x60\x02\xe0\x4d\xb4\xbb\xe6\x9c\x38\x5f\xc4\x37\xd5\xdb\x84\x78\x05\x12\x79\x59\xb9\xd6\xa3\xf8\x39\xd8\x25\x35\x23\x1c\x2b\x25\x5d\xee\x13\x69\xfb\xae\x78\x1e\x34\xd3\x04\x29\xee\x1f\xe0\x45\xa8\xf7\x2d\x9c\x2f\x4d\xcf\xc0\xe1\x4f\xc6\x83\xd0\x73\x70\x6d\xa1\x2e\x2f\x95\x1a\xbb\xb1\x9a\x8b\x28\x10\x9d\x7b\x3e\x70\xa0\xee\xc0\x4f\x03\xcf\x87\xce\xfd\x4f\xa0\xd3\x98\xc2\x86\xcd\xfc\xda\xb5\xd1\x29\xb5\xb9\xa3\xd5\xfe\xfe\x70\xbf\xd8\xde\x1e\x96\x0b\x9f\x44\xd6\xa9\xe6\xe8\x8f\xfa\x96\x84\xe6\x88\xd8\xa8\x6b\x38\x8f\x4e\xb5\x49\x95\x07\xce\xe7\xef\x07\xed\x9a\x1c\x0f\xcd\x11\x0e\xb5\x9d\x46\xe3\x97\x92\x1a\x12\x42\xaf\x0c\xe5\xd3\x70\xa4\xbb\xb6\x49\x92\xbe\x4d\xb6\x17\xad\x7d\xae\x1c\x70\xf0\x0a\xab\xf4\x0b\x41\x9b\x16\xa1\x42\xc7\x06\x77\x5a\x44\x7f\x7f\xc0\xb0\x9e\x68\x91\x50\xe4\x3e\xf6\xc0\x9c\xf1\xed\x4b\x6a\xbf\xe9\x6b\xd6\x34\x50\xd4\xb7\x15\x86\x23\xfb\x72\x7f\x04\x94\xee\xfd\xad\x1b\xa7\x10\xd8\xbf\x79\xde\xaf\x37\x4f\x8b\x87\xc3\xf3\x66\xf3\xd0\x1d\x14\x91\x24\xdd\x33\xee\x41\x9c\x5c\x2f\xd4\xac\x4b\xac\x55\x68\x85\xb9\xcf\x87\x1a\x1a\xc7\x6b\xea\x0d\xc0\xec\xb6\xa2\x55\x0c\xc4\xe9\xcd\xb5\xdb\xa4\x68\xa0\x12\xb9\xa5\x82\x99\x7c\x40\x6d\x08\x66\x28\xed\xd3\x36\xf5\xee\x98\x0d\xe2\x2b\x0d\x21\x78\xa5\xb7\x6f\x50\xe8\x29\xdf\x85\x36\x49\x88\xc1\xfa\x72\x7f\x3f\x9a\xd5\x86\xa5\x84\xf8\x79\x71\x0b\x3f\x20\x2f\xcf\x7d\x42\x46\x1b\x15\x05\x8e\xff\xc6\x26\x63\x90\x4b\x66\xd6\x0a\x42\x10\x48\xe8\x11\xf6\x77\xad\x29\xac\x3e\x00\x33\xcd\xbb\x48\x10\x28\x86\x12\xb9\x8e\x6b\xbe\x5d\x66\x08\x05\x1e\xbd\x65\x08\xa0\x5b\x88\x3b\xc7\x29\x2a\x72\x35\x43\xa5\xda\x0e\x4d\x85\x63\xad\xb4\x11\x46\x87\x5f\x83\x30\xb6\xcd\x45\x07\x3b\x41\x2c\x2e\xc3\x1f\xa3\xf6\xa5\xc8\xcb\xfb\xf3\x76\xb5\xbf\x5d\xed\xbb\x3c\xaa\x2b\xec\x7c\xea\xea\x41\x48\x45\x30\x54\xd9\x17\xb3\x69\xdb\xc9\x6f\x98\xc2\xd8\xd0\x00\x78\xb0\x98\x3f\xa2\x6c\x9e\xc0\xf7\x3e\x8f\xb7\x14\x88\x42\x85\xf6\xa1\x23\xfe\x84\xb7\x9b\x4b\x51\x8c\x33\xdd\x1f\xf4\x91\x74\x8c\xa4\xfe\x5c\x44\x01\xe9\x99\x58\x86\xdd\xb0\x10\xc5\x01\xc6\x46\x8d\x78\x85\x55\x73\xbc\x2b\xab\x4e\xbd\x74\xfc\x24\x51\x1c\x78\xb9\x78\xcb\x5c\xb0\x2a\xa0\x7a\x79\xbf\x79\x9f\x6d\xee\x86\x98\xc4\x68\x99\x9e\xe0\x6d\xd7\x0c\x95\x7e\xc7\x67\x8d\x63\x8d\xa8\xaf\x9b\xf5\x7e\x33\x9c\xc1\x10\xb3\x08\x37\xa1\x5c\x8d\x09\x2a\x20\x16\x3a\xb5\xf9\xa9\x99\xca\xdd\xf8\x1e\x68\x00\x26\x72\x75\x84\xf9\x14\x3e\xd0\x08\x80\x7a\x25\x35\xdb\x00\xfa\xfb\xbb\xb2\xb1\xca\x0c\x4a\x07\x58\x90\xa2\xa3\x22\xf2\xfc\x51\xd4\xaf\x5f\x2e\xbe\x47\x15\x18\x00\x12\x01\x6f\x97\x4b\x9f\x04\xd8\x43\x57\x10\x06\x1e\x30\xd1\x11\x0c\xe2\x86\x5a\xd7\xd7\xb2\x26\x09\x70\x22\xc0\xcb\xbf\xfa\x3a\xdb\x28\x77\x03\xdc\x08\x8c\x1e\x1d\x47\xfb\x48\x7a\x7b\xf2\x76\x53\x22\x89\xe9\x25\x22\x2c\x3f\xaa\x3f\xa6\x94\xad\x20\x0e\xba\x5a\x9f\xad\xdf\xe9\x87\x88\x30\x15\x5e\x0a\xb2\x28\x1b\x51\x4d\x88\xd9\x40\x44\x16\x43\x06\xcd\xb1\x3d\xa0\xba\x1f\xd2\x08\x5b\xb0\xb3\x22\x6b\x3a\xe2\xef\xcf\x17\x97\x0c\x34\xf4\xd5\x02\x27\x4b\xbf\x17\xaf\x50\xdd\x00\x8a\xe8\x3d\xba\xff\xfe\xe0\x51\x75\x48\x31\xb0\x3d\xb4\x7e\x66\x95\xe9\x17\x78\x12\x4d\xf6\x03\x06\x21\xc2\xf4\x17\x14\x7c\xc9\xbf\x57\x4c\xe9\x5e\x8f\xe6\x02\x63\xfd\x33\x2a\xec\xb7\x5b\x4c\x0f\xc9\x04\x50\x09\xc7\x46\xf8\x93\xa8\x5e\x3b\x0c\xf5\xbc\x05\x30\xa1\x20\xce\xd6\xde\x97\xce\xdc\x7e\x5a\x21\x02\x43\x43\x4c\xc1\xe0\x66\x69\x7f\xe0\xbb\xb6\x26\x03\x99\xec\x24\x2b\x06\x82\xb1\x37\xef\xeb\x49\xae\x05\x8c\x26\xd8\x7b\xd5\x6e\x48\x50\x35\xe3\x82\xd3\x68\x45\x98\x40\x04\xe8\xcb\x6e\x9e\x56\xfb\xf5\xad\x0f\x2b\x4d\xc8\x52\xc4\x3a\x9e\xca\x42\x54\xea\x58\xdf\xbc\xcf\xc8\x7b\x26\x26\x62\x36\xea\x41\x52\xc0\x8b\x74\x6b\xb7\x0d\xec\xea\x1b\xc8\xcb\xb7\xff\x40\xe5\x53\xd2\x26\x92\x0a\xdd\xa4\x4b\x91\x35\xf5\xa6\x68\xcd\x8f\x23\x01\x77\x03\x88\x22\x98\x92\x7f\x9e\xba\x76\x26\x0e\x23\x0c\x27\x91\x2b\x07\x9f\xfd\xb6\x5f\x6b\x26\x8e\x00\xa9\x3e\x16\xcf\xfb\x6f\xdd\xdf\x74\x8a\xab\xc6\x88\x2c\xb7\x2b\xdd\x19\x5c\xff\xc5\x4d\x12\x59\x72\x8f\x76\xe7\x78\x47\xb2\x45\x7f\x20\xa6\x98\x6b\x5a\x3e\xac\x9f\xbb\xbf\xa5\x36\xaa\xb1\x04\xbb\xcb\x4b\x75\x4d\x29\x32\x6e\x48\x18\xbf\x64\x4a\x14\x26\xc8\xb0\x2a\x34\x13\x6e\x1b\x2a\x82\x38\x75\xe2\xef\x5f\xaa\xec\xb4\x05\xd1\x6e\xe0\x8b\x17\x91\x15\x75\x73\xad\xf2\x92\x18\xaa\x42\xc4\xf8\x94\x98\xfa\xdf\x98\xf9\x59\x6f\xa8\xa6\xb8\x77\xde\x6d\xbe\x3e\xdd\xae\xb6\x3b\x47\x49\xea\x9f\x8b\x31\xe5\x29\xcc\xec\x44\xf1\x33\xea\x76\x16\x5d\x6d\x98\x10\xb8\xd2\xa1\xd0\x58\xd5\xeb\x9a\xee\xdd\x71\x1e\x2b\xec\x4e\x73\x69\x7f\x2b\x4f\x08\xba\xc7\x0a\x3d\x94\xff\x50\xae\x36\x9c\xab\x40\x77\xcd\xff\x58\xb4\xf6\x67\x4f\x23\xea\xc9\xb5\xd7\x1a\x15\x12\xd7\x0d\x9c\xea\xe5\x10\x94\xfd\xaf\x39\x70\xa0\x49\x09\xb3\xe8\xa1\xcb\x69\x63\xba\xc6\xb0\xb5\x42\x4d\xa5\xfe\xfc\x2c\xb0\x3d\xea\x4e\xe5\x23\xfa\xff\x97\x65\xc7\x88\x48\xa6\x23\x2a\xe5\xc3\x5b\xd6\x1c\x0f\x06\xa6\x39\x23\x23\x22\xe3\xf1\x42\xd8\xf0\x7f\x5d\x9e\x34\x42\x19\x4c\xae\x1d\xb2\xda\xb9\xb7\xfe\x00\x50\x24\xed\x7e\x7c\x57\x47\xd1\xf4\xaa\x9e\x89\x91\x69\x6a\x3b\x43\xb2\x42\x7f\x2d\x96\x65\xe1\x49\xa7\x47\xef\x4e\x0a\x8a\x1f\xa4\xe7\x05\xef\xd0\xb9\x7e\x84\x4a\xd3\xb1\x00\x9f\x76\x0c\xa1\xaf\xdd\x06\x64\x54\x42\x10\x5c\xed\x93\xd7\x37\xc8\xee\xf9\x41\x51\xd6\x28\xc6\x89\xea\x66\xc1\xc6\xd8\x74\x78\x77\x2e\x69\x95\x12\x4e\xe2\xa7\xdf\x7c\xc7\x6e\x83\x51\xc6\xc1\x5d\x2c\xc2\x1e\x8b\xfb\xa3\xee\x06\xa3\xb5\xe2\xb6\x02\xdd\xc6\x1d\xdd\xdb\x32\x81\xc1\x80\x08\x91\xe4\x0f\xd9\x98\x7f\xfa\x9f\xb2\xfb\x63\x13\xd0\xe5\x6f\x8c\xe1\x91\xa5\xe3\x13\xa7\xf3\x00\x47\xe3\x8f\x42\x8c\x70\xbe\x5c\xd4\xd8\xec\x6f\xff\x4e\x83\x80\x58\x04\xac\x44\xb5\xbc\x09\x1c\x63\xa6\x74\x41\x83\x20\x01\xcb\x13\xa6\x42\xbb\x91\xc4\xcf\xfe\x32\x34\x08\xb8\x45\xfe\x59\xc5\x71\xd1\x46\xa9\x79\x97\xcf\xa3\x41\xa0\x23\xd7\xcc\x81\x6f\xcc\x51\x66\x55\x75\x63\x05\xf0\xfd\xb0\x90\xc4\x49\xbf\x71\xef\x33\x27\x47\x5d\x0e\xe5\x48\xba\xa1\x56\x20\x62\x24\x3d\xf0\x61\x0b\xcd\x3f\x54\x4c\xfc\x39\x95\x66\x2e\x6c\xf0\x8e\xeb\x2d\x34\xed\x7e\xe3\x6f\x30\x4a\x02\x84\x13\x66\xf5\x52\x34\xf0\x52\x0e\xca\xf0\xbd\x67\x47\x03\x92\x30\xd3\xcb\x74\x76\x80\x3e\xd0\xfe\xeb\xd4\x93\xa7\x21\x8e\x96\x5b\x68\x5c\x7d\xf7\x22\x37\xb7\x1e\x00\x40\x83\x38\x88\xad\x8c\xb6\xed\x2c\xb0\x30\xc0\x45\xa1\x47\xcc\xf0\xd3\x47\xfc\xa8\x39\x7c\xae\x70\x48\x03\xbf\xcd\x81\xd5\x9c\x68\xa3\xa6\xe1\x6c\x89\x95\x4d\x94\xee\xf6\x9b\xc3\xef\xab\x3f\xfd\x9f\x13\x6a\x35\x33\x91\x43\xe3\xa2\x9a\x1e\xe9\x4b\x83\x44\x1a\xed\x98\xa4\xf6\x8e\x44\x68\xce\xbb\xa7\x41\x62\x0c\xce\x44\x8c\x2f\xdb\x33\x74\x6f\x9b\x72\x8a\x33\x4e\x5d\x9a\x9b\xc5\xd7\xc8\x25\xf4\x3f\x53\xfb\x6b\x7f\x63\x79\xdb\x51\xd1\x74\x9c\xde\xa7\x01\x95\x0c\x59\x7d\x35\x9c\x4a\xd5\x81\x7a\x69\x40\x8d\x6d\xa7\x58\x2e\x6e\x7a\xa2\x03\x77\x8c\x87\x80\xa5\xa5\xff\x5a\x2c\x7f\x7f\xde\xec\x47\xfd\x73\x34\x48\x23\x40\xb7\x36\x7b\x29\xb2\xc1\x44\x4e\xb9\x8e\x51\x14\x29\xbf\xcc\xc3\xd5\x68\x90\xa6\x2c\xf0\x60\xd2\xa3\x28\x0a\xc8\x97\xd5\x07\xb8\x41\x1a\x08\x42\xd0\x6d\x10\x75\x0d\x56\x35\xc2\x2a\x69\x7e\x46\x47\x43\x03\x21\x24\x77\x0a\x00\x26\xcb\x61\xd0\xe3\x32\xdc\x78\x69\x20\xa3\x18\x81\x1b\x70\x82\xea\xa5\x03\xb6\xdf\x56\x83\x2a\xab\x1f\xc9\x84\xb6\x96\xaf\x68\x6e\x2f\x30\x47\xe6\x47\x03\x29\x18\x46\x03\x87\x8e\xe3\xe4\xc6\x12\xa1\x8c\xd7\xca\xe4\x11\x15\x89\xd0\xe7\x80\x1f\xcf\xe2\x7d\x73\xf9\x50\x75\x7e\xfa\x33\xca\x6d\xdf\x8c\xff\x6e\xbb\xa6\x3c\xf7\x02\xe7\x34\xd0\x81\xc6\xce\x5d\x2d\x1a\x31\xa0\x83\xa3\x81\x4e\xb8\xab\x6b\xdb\x66\x0e\xd0\x03\x7f\x80\x06\x1a\x80\x3b\xac\xf9\x5e\xd4\xaf\x57\x2d\xe4\xff\x1f\xff\x75\x57\x01\xc3\x91\xd5\x51\xe8\x1f\x59\x7b\xf5\x3e\x7a\xf0\xf7\x61\x18\x43\x9c\xda\xf2\xdb\xed\x20\xa8\xa5\x61\x20\x08\x36\x5f\x23\x74\x63\x99\x35\x42\xc3\x7c\x8f\x29\x0d\x03\xc3\x70\x92\x9e\x5d\x8f\xe9\xcd\xa5\x2a\x06\xec\x30\x6e\x54\x48\xad\x09\x7f\x5c\x3f\x1d\xd6\x4f\xdf\x56\xbb\xfd\xea\x71\xe5\x31\xe5\x34\x0c\x8d\xa5\x0f\xf9\xcf\x7e\x7b\x58\xed\xef\x0f\xf0\xb3\xa9\xc4\xe1\xdc\x67\xee\x69\x18\x45\x9c\x58\x47\x48\xea\xcc\xaa\xbb\x79\x76\x37\x3f\x22\xb1\x20\xf6\x76\xfb\xba\xbb\x14\xea\xb7\xf1\x66\x46\x43\x12\xa4\x42\xf5\x79\x72\x1f\xf0\x4d\xef\x95\x44\x11\xea\x0c\xc8\x4b\x55\x3c\x88\x09\x00\x8c\x86\x24\x66\x88\xda\x80\x9f\xe7\xbc\xac\x86\xc4\xab\x34\x24\x00\x98\x4c\x38\x64\xf5\x24\x09\xf9\x4b\xc9\x48\x77\x16\x64\x82\xf1\xb1\xbe\x2a\x4f\x59\xf1\x82\x11\xf8\xa2\xee\x52\xf1\x34\x4c\x78\x84\x48\x96\x87\xf2\xc5\x0a\x18\xac\x9a\xe3\x16\xfe\x9a\xdc\x6c\xa2\xb5\x47\x34\xed\x00\xf4\x0e\xf3\xc6\x37\x93\x07\x4e\xc0\x16\xef\x6b\x68\x9e\xcb\xaa\x31\x65\x9e\x5d\xb1\x1a\x5c\x41\x10\x69\x48\x43\xd0\xb1\x97\xae\x29\xcf\x9d\x73\x30\x78\xe3\x94\x59\xf2\x53\x09\xcd\xe1\x87\xa8\xda\xf9\xf1\x5b\x7f\xc8\xea\x7c\x5f\xa4\x2e\x11\x1a\x81\xc5\x86\x59\xe2\x78\xff\x13\x2e\x91\x8d\xc8\xa5\x9b\xe7\xfd\x0a\x3f\x56\x71\x6e\xb9\x61\x8a\x1d\x34\x37\xa2\xe8\xba\x4b\x68\xc8\x20\xc4\x70\xed\x29\x53\xf0\xe5\xf2\xbe\x17\x3f\xfd\x11\x1e\x58\xaa\x57\x24\xb5\xf2\xdd\xc1\x6f\xa5\xbd\xd2\xa2\xd0\x96\x81\xfd\xae\xd7\xe4\xa0\x21\xe7\xb6\xf0\xa9\x3f\xa0\xed\x9b\xdc\x17\xe7\x02\x49\xd1\x4d\x59\xbd\x89\x4a\x8b\x01\x4b\x87\x1f\x21\x6d\xf3\xaa\x6a\xbd\xc2\xbc\x03\x49\x4d\x46\xa5\xb1\x46\x6c\xac\x3a\x66\xb9\xfe\x58\xd4\x8d\x86\x69\x42\x8d\xec\x5f\xda\x40\x20\xd3\x0f\x48\x03\x04\x6b\x22\x7e\xd9\xe7\x96\x86\x6d\xde\x34\x14\x52\x78\xd6\xae\xc7\xa2\x39\x3f\x66\x2f\xd5\x30\xca\xff\xd7\xb4\xde\x4b\x43\xa1\xe3\xc8\x4d\xa9\x8d\x43\x16\x7e\xad\xf2\xdf\x46\x63\x24\xb5\x2d\x60\xd0\x1c\xa3\xbf\xb2\x4b\xdf\xdd\x4b\x43\x99\x06\x9e\x7d\x74\x0b\x39\x9a\xac\xef\x59\x73\x9c\xbc\x03\x09\x21\xce\x5b\x61\x13\x96\x07\x31\x2c\xc8\xd1\x50\x71\x4a\x07\x9a\x08\x4f\xf0\xe6\x88\xbf\x44\xde\x47\x89\xe3\x7f\x06\x53\x57\x93\x18\x51\x41\x0f\x5f\xff\xd8\xae\xbe\x3e\xfa\x93\x02\xb1\x1a\x6d\xcb\xb2\xb0\x6e\x49\x59\x75\x13\x7f\xfc\xe2\x21\x01\x4f\x28\x60\xf3\x90\xdf\x2c\x07\x2e\xae\xfc\xff\xf6\xed\x76\xdd\xbf\xfe\x57\xda\xb8\x5e\xe1\x76\x7a\x4c\x1b\xcd\x69\x14\x88\x94\x24\x0e\x59\xbc\x2f\x07\x69\x63\x1a\x05\x4a\x61\xe4\xf1\x45\x14\x4f\x77\xfb\xee\xaf\xc6\xe8\x9e\xaa\x79\x51\x64\x27\x91\xd7\x7f\x74\xe4\xe7\xce\xab\x8c\xc2\x20\x21\x8e\xe5\xcc\x69\xd7\x58\xad\x8b\x59\xb7\x2a\x0a\x25\x93\x56\x17\x4b\x58\xcd\xe3\x69\x4f\x0d\x8d\x48\x6c\x85\xf5\xb7\xd6\x2b\x77\x7c\x93\xbb\x49\x61\x81\x46\xc4\x28\x6c\xa4\xbc\x14\xb6\x28\x39\x7e\x8b\x51\x9c\x30\x94\xb1\x2b\xe0\x67\xf3\x8c\x29\x2e\xfc\x7a\xee\x68\x12\x46\xe8\x90\x2d\x37\xeb\xa7\x9b\xf5\x97\xc1\x9f\x11\xa3\x8b\xcb\xf8\x58\x95\x6f\xed\x5a\x36\x50\xfd\x07\xaa\x72\x98\xa3\xa4\x51\x22\x09\xa6\x2f\x9c\xf0\xc9\x61\xf1\xf0\xb0\xf9\xbe\x78\x5a\xae\xfc\x00\x2a\x6d\xc1\xb7\x34\xc6\xff\x89\x45\x84\x39\xbb\xe7\x53\x6a\x57\x7c\xa8\x38\x4a\x22\xa7\xe7\x25\x7f\xed\x52\x8b\x36\xdb\x3d\xc4\x20\x4f\xad\x6a\xc4\x88\x51\x93\xd8\x69\x58\x66\xa5\x11\x13\x0a\xdc\xda\xb8\x5d\x96\xa7\xd3\x4d\xbb\x9d\x35\xb5\xdf\x0c\x47\x5b\x49\x94\x26\x29\x52\x68\xd6\xe5\xa5\x39\x0a\xc7\xcf\xee\x8e\x09\x22\x79\xe8\x79\x2a\x2f\xb5\xcf\xca\xed\xdf\xca\x6e\x04\x0d\x89\x35\xb8\x58\x98\x39\x79\x42\xb0\x7a\x64\x1e\x22\xc1\xc2\xd4\x72\xae\xb6\x73\xf6\x5e\xe4\x3f\x5c\xf7\xc0\xb0\xe7\x8d\x46\x42\x27\x38\xec\x9c\xfd\x84\x2e\xea\x89\xa4\x12\x98\x4a\xd8\xb5\x9b\xdd\xcc\x7b\x54\x34\x42\x90\xcf\x43\xf9\xb2\x45\xfc\xf2\x53\x39\xdf\xbd\x3c\xa0\x5e\xa1\x91\x8e\x40\xf5\xb2\x1e\x53\xd3\x38\x5d\x75\x91\x4e\x04\xf6\x87\xad\xf4\xe5\x11\x9a\x2a\xf3\x1b\x42\xa4\x85\x55\x04\x40\xd1\x8f\xba\xb9\xce\x80\xd1\x48\x4b\x48\x69\xd7\x0f\x07\x0e\x8f\x3e\xba\x19\x20\x2c\x1d\x38\x83\x7e\x4d\xcd\x46\x4b\x11\x44\x96\xd9\x40\x95\x95\xfe\xcf\xe4\x5a\xe0\x8c\x12\xd6\x9e\x94\x55\x4c\xd5\xf0\xf3\xae\x2a\x4f\x5b\xf1\x36\x1f\x0c\x44\x10\x6b\xac\xd0\xa8\xc3\x19\x39\xb6\x11\x40\x3a\xaa\xe2\xb4\x63\x00\x49\x45\x6c\x60\x8a\x98\xde\xc9\x3a\x35\x01\xb3\xfb\x35\xb8\xee\x2d\xfb\xb5\xe7\x77\x9d\xc8\xa4\x96\x56\xdb\xb5\x95\xdd\xe4\x42\xbd\xe6\x18\xa5\xba\x87\xdf\x9d\x6d\xc7\xe0\xe4\x22\xc2\xb6\x30\x3d\x57\x65\x69\x36\x66\x2b\x2a\x78\x86\xb3\xdf\x16\x22\x23\x14\x76\xa6\x9e\xb2\x5e\xa9\x99\x46\x06\x1c\x18\x4d\xdb\x0c\xeb\x68\x97\x21\x01\x27\xc6\x11\x45\xc0\xfb\x20\x39\x4e\x49\x98\x44\xd8\xbd\x81\x58\x86\x4d\x01\xab\x2e\x24\x25\xa1\x31\xc8\xae\xf0\x52\x89\x62\x5e\x32\xf5\xd3\x04\x19\x25\x91\x48\x02\xef\x48\xec\xa0\xb9\x9c\x9f\x2b\xec\xfc\xce\x06\xde\x37\x21\x22\x42\x13\x71\x28\xe0\xed\xb9\x3d\x39\x54\x53\xa0\x10\x25\x71\xa8\x6c\xaa\x0d\xbf\x4c\x7e\x0e\xe3\xf1\x3b\x23\xb1\xb2\xb2\xc7\xa8\x51\x68\xab\xb3\x8b\xc2\x56\x5b\xae\x12\xec\x94\xc4\x3a\x45\x8f\x0c\x33\x85\xab\x76\xcb\xc7\xaa\x57\xe4\xef\x29\x61\x26\xb1\x4b\xbe\x56\x55\x86\x4d\xdb\x36\xa7\x3f\x7e\xab\x89\x16\xe8\x6b\x7f\x2b\x31\xf6\xea\xf7\x4d\x92\x80\x05\xad\x60\x73\x46\x2e\xa4\x6d\x77\x0a\xbb\xf3\x43\x82\x09\xf1\x2e\x7c\xbb\x2b\xab\x2b\x9f\x84\xd0\xc4\xe6\x33\x35\x88\x7c\x0b\x3f\xa0\x9a\x6c\xae\x84\x1a\x25\x2c\xf4\xa3\x11\xd9\x75\xbc\x41\x18\x89\x70\xf7\xb1\xc4\x28\xb3\x1f\x6f\x02\x27\xa4\x84\xc9\x9e\xe8\x53\x94\x93\x13\xf2\x34\x40\x86\xba\xbb\xac\x10\x79\xf6\x37\x76\x6a\xfb\xa8\x10\xf9\x5e\x3e\x9a\x17\xd3\xd3\x18\x8c\x2d\x70\xe3\x7e\xae\x4a\x65\x21\x06\xb7\x20\xae\x43\x85\xf1\xdd\x71\x15\x60\x44\xe9\x60\xe9\x79\x59\xc0\x3f\x42\xfa\x07\xfe\x0c\xe1\x9a\x23\x55\xa9\xb5\x88\xfb\x72\x7e\xe1\x92\x34\x08\xa9\xec\x93\x69\x5d\x17\x21\x25\x29\x0d\x10\x58\xf7\x04\x6f\xce\x00\x8f\x40\x7b\x7e\x94\x56\x98\x16\x00\xc7\xed\x6d\x2b\x94\xee\xa0\x08\x40\xf6\x62\x5a\xc3\xc6\x00\x4a\x04\x21\x58\x80\x5e\xd7\xbb\xd6\xe9\xc3\x9e\x2e\xbf\x55\x11\x19\x24\xd8\x14\xa0\xb3\xba\x7d\xf3\xcf\x96\xc7\xb5\x3b\x4a\x0c\x76\x6e\x4b\x87\x67\x5a\x9f\xac\x66\x3c\xed\x06\x70\x85\xa9\xd1\x76\xa1\xed\x2f\x05\x6c\xce\x1d\x2a\xa0\x17\xc5\xbc\x4a\x81\x5a\x88\x56\xc4\x87\x1d\x04\x94\x48\x95\x22\x82\xac\x5d\xd9\x87\x6e\x5a\xab\x20\x14\xa6\xab\xd1\xb9\x65\xb8\xee\xa2\x04\xa2\x22\xb0\x50\xd5\xf6\x7b\x23\x0c\xc8\x5a\x7f\x7f\x56\x95\x5a\xf0\x4e\x05\x1a\x25\x78\x06\xba\x3b\x94\x28\x90\x68\xe0\xbe\x41\x26\x5e\xfe\xcf\x64\x99\x9f\x32\x10\x51\xa2\x43\xe0\x71\x37\xaf\xbe\x95\x8d\x50\x43\x2e\xe2\x0f\xc3\x3f\xa2\xdb\x90\xdb\x4a\x98\x88\x4b\xee\x88\xfe\xcb\xaa\x6e\x9d\x1d\x75\x1c\x83\x5b\x29\x81\xc0\x70\x3e\x52\xad\x07\x3d\x42\x04\x52\x02\x69\xa0\x5d\xc3\xd9\xcd\xe5\xfd\xa9\x7c\xf3\x49\xec\x2b\xed\xec\x7e\x56\x9b\x88\xe2\x86\xe8\x30\x0b\x0f\x59\xf1\xfa\x41\x95\x9d\x12\xc3\x02\x35\x62\x41\xb9\x41\x17\x6b\x62\x59\x0c\x4f\x62\xb7\xc7\x34\x8e\x9b\xe0\x1a\xb3\x3c\xf9\x49\x6a\x0b\x3f\x79\xf9\x92\x15\x16\xe5\x31\xb9\xb2\x62\xd0\xde\xe5\x31\x7b\x39\x6e\xcb\x1e\x24\x4a\x89\x31\x89\x48\xaf\x69\x21\x47\x3f\x8f\x03\x25\xf0\x13\x2d\x5e\x2a\xc0\xf6\xcf\x67\x18\xb7\x47\xd1\x38\x0c\x19\xd6\x15\x44\xd5\x64\x75\x53\xcf\x32\x8e\xd3\x38\x64\x21\x76\x69\x9e\x3d\x69\x9b\xf9\xaf\xec\x4a\x1b\x9a\xc6\xa1\x52\x18\xbc\x41\x9e\x9d\xb2\x42\x54\xd3\x49\xd1\x0f\x43\xca\x96\xd7\x77\xe5\xd2\xc6\x7a\x7a\x3d\x10\x18\xca\x6e\x37\x5f\x9f\x6e\x0f\xb7\x5f\xad\x3a\xa5\x7b\xf6\x38\x52\x2e\xf0\xb4\x3c\x19\xab\x9f\xe7\xbc\xcc\xe6\x81\x97\x34\x26\x89\x90\xbe\xef\x7c\xe0\x61\x75\x37\x43\x94\x90\x16\x2b\x58\x40\x55\x5e\x6a\xaf\x07\xee\x2f\x96\x84\x14\x6b\xd5\x7f\x96\x97\xaa\x6b\x2c\xef\x0f\xa6\x88\xf1\x7b\x7b\x13\xa7\xf5\x72\xe3\x49\xf2\x46\x00\x4f\x1a\x27\x2a\xd0\xc3\xbe\xf3\x91\x8a\xeb\x78\x4a\xc4\x8c\x1a\xf4\xbb\x4d\x9e\x9d\x87\xde\x92\x3f\x9c\x2a\x7c\x31\x67\xf1\xee\xc3\xe3\xc9\x37\xe0\x4a\x26\x6e\x33\x7a\x76\x9c\xfb\x33\xcd\x09\x34\x4e\x63\x21\x51\xe6\xfb\x7e\xf1\xfd\xb0\xfc\x73\xf9\xb0\x3a\xdc\x61\xc1\xd4\x5f\x2a\xd5\x06\xb3\xaa\xe7\xaa\xdf\xb0\x36\xdd\x6b\x11\x0e\x86\x69\x2e\x85\x1e\x39\xf5\xb1\x90\x0a\xa1\x57\x67\x61\x3b\xab\x56\x05\x76\xd8\x4e\x2e\x2f\x09\xb1\xaa\xd2\x38\x7f\x3f\x84\x50\x0c\xbc\xe1\x58\x72\x2b\xef\xbd\xd0\xfa\xc9\xfa\x3d\x4d\x76\x0d\xbb\x99\xbc\x4f\xc5\xa4\x71\x00\x8e\xd5\xa5\xba\xab\x5c\x6b\x88\x3b\xaa\x39\x8d\x46\x24\x5c\x16\xf6\x75\xfb\x9a\x8f\x8a\x6b\x34\xd6\x4a\xa6\x5e\xf8\xea\x7e\x6f\xe9\xa7\x87\xc1\x55\xac\x75\x14\x0f\x80\x28\x03\x14\x25\x3a\x54\x30\x5d\x51\x90\x32\xd4\xb9\xde\x2e\xf6\x3e\x64\x8c\x41\x5a\x6d\x5c\x47\x68\x5f\x9e\xce\xa2\x78\x1f\x15\x3e\x27\x0f\x67\xe2\x34\xb0\x01\xa5\xc8\x9d\x96\xe8\x68\x72\x27\x41\xa2\xd1\x1d\x75\x3d\x0c\x59\x7d\x7b\x39\x49\x77\xb9\x24\xe2\x56\x94\x51\xe8\xff\xbd\xb8\x02\xeb\xa2\xd0\xe8\x60\x6c\x8c\xcd\x3c\xdc\x22\x9b\xc4\xb3\x25\xec\xf9\xb4\xf9\x94\x26\x84\x04\x48\x61\x5f\x5f\xce\xed\x2e\xea\xe8\x17\x7f\x9b\x0c\x92\x5d\x0f\xe2\x17\x71\x42\x9e\xd2\xa9\xa7\x99\x24\x41\x84\x40\x99\x0e\x64\x34\x72\xa3\x3f\xee\x28\x6d\x7f\x49\x11\x49\xbd\xc4\x36\x71\x03\x13\xd5\x25\x9a\x24\x11\xa0\x1d\x13\xda\x0b\xed\xde\x95\xd5\x4d\x27\xba\x98\xc1\xc7\x64\x7e\x34\x49\x34\xd3\x56\xb2\x46\x03\x9c\x66\x54\xfa\x69\x92\x18\x83\xb9\xe6\xef\x20\xeb\xac\x81\xfb\x12\xaf\x31\xba\x05\x4a\x53\x2c\xd6\x89\xba\x2e\x55\xe6\xc4\x84\xf7\x20\x4e\x93\x4f\x47\xa9\x40\xd3\x72\xba\xe4\x0e\x2e\xf8\xc9\xad\x31\x9a\xe0\xbb\x6f\xf7\x9e\xdb\xed\xae\x67\x9d\xa0\x09\xe3\x1c\x89\xf1\x4d\x56\xd5\x4d\x67\xc0\x06\xb5\x88\x84\xc9\x08\x43\xae\x0a\xf2\x52\x68\xcb\x69\xf5\x41\x7d\x28\xe1\x61\x8c\xe2\x44\x07\x47\xe2\xd4\x49\x8f\xd7\x8d\x38\x9d\xfd\x19\x79\x44\x10\x9b\xfa\x0c\xea\x92\x67\x97\x53\xf7\xf7\x24\x44\x37\xee\x4d\x14\x2f\x3f\xb3\xa3\x28\x67\xeb\xa3\x6e\x70\x1a\x24\xca\x76\x20\xda\x0e\x78\x94\x58\xff\xd2\xf5\x8b\xd2\x24\x25\x2e\x45\xd1\x86\x49\x4e\x39\xff\x3a\x0f\x90\xa4\xdc\x36\xaf\x59\xac\xf2\xa9\x9c\xd1\x8c\xa7\x49\x9a\x8a\x78\xd8\x11\xed\x84\x4c\x9e\x51\x33\x1d\x5a\xdf\x70\xc8\xf2\x85\xdd\xdc\xd8\xc4\x97\x67\x7f\x5d\x32\x9d\x35\xef\xa8\x8e\xe9\x0e\xca\x40\x63\xdd\xff\xd0\x88\xfa\xd5\x52\x8c\x0c\x63\xa0\x44\x86\x12\x5f\xf8\x01\xe5\xd0\x67\x67\xb2\x4c\x42\xe5\x74\xdb\x2f\x35\xe8\xc5\xf3\xba\x3b\xb9\x52\x98\x6f\x43\x46\x98\xda\xb1\x0b\xf4\xe9\x89\xde\xc5\x49\x24\x08\x6c\xd1\x5a\xe1\x36\x89\x15\x2f\x51\xc3\x30\xc1\x90\xa8\xc0\xd5\xe2\xdc\x4e\xe1\x44\xfd\xa6\xec\xae\x34\x51\x22\x46\x9e\xec\x6f\x5f\x47\x93\x59\x73\x91\x20\x5b\xe0\x62\xfd\x64\x65\x5f\x57\x4f\xb7\x28\x82\xd2\x8d\x00\x9b\xe2\x39\x5d\x9a\xac\x9d\xc6\xed\xd4\x6c\x67\xfc\x6d\x66\x10\x7a\xd1\xcc\x12\x5a\xcc\x4c\x71\x6d\x62\x94\x27\xae\xff\xaa\x9a\xdf\x46\xef\x0a\x02\x8a\xd5\x99\xcd\x62\xff\x49\x3e\x3b\x01\x29\xd0\xd6\x5b\x51\xb0\xbb\xb2\x52\x80\x0d\x98\xd3\x3a\x4d\x62\x82\xd4\x74\xd8\x66\x4f\x93\x33\x41\xa5\xfa\xa1\x49\x88\x3e\xdf\x7f\x6d\xfe\xe3\x1f\xd8\x48\xab\x3d\xf6\xe7\xcd\xaf\x51\xe0\x63\x51\x5a\x58\xe2\xec\x62\xa2\x32\xd6\x1e\x53\x68\x2d\xbe\xb4\xae\x6d\x96\xb7\x53\x1c\x81\x5b\xa3\x3b\xa6\x81\x8c\x90\xd7\xea\xf5\x11\xdd\xc8\x57\xbf\x44\x68\xa0\x05\x73\xad\x29\x9e\x41\x6f\x87\xc9\xe7\x2b\xd7\xd8\xbf\xee\xe8\x1f\x44\xf0\xfc\x89\x41\x60\x0a\x64\xbb\x78\xfa\xb2\x6a\xbf\xb9\xa7\xba\x6f\x7d\x7b\x5b\x39\x7f\x5c\xfc\x71\xb8\x5d\xac\x1f\xfe\x3c\x2c\x37\xbb\xf5\x97\xa7\xc3\xae\xd3\xc5\xa1\x34\x4c\x23\x24\x3f\x39\x1c\x0e\x17\xdb\xde\xbf\x2f\xa7\xd8\x81\xc1\x44\xa5\x51\x62\x9b\x29\x6c\x1b\xee\x18\x4e\x82\x59\x28\x69\x11\xb3\x4e\xb1\x71\x4a\x69\x44\x29\x89\x45\xe8\x92\x6d\x36\x95\x3d\x2c\xbf\x51\xc2\x12\x70\x8d\x41\x07\x2c\xf2\x1d\x86\xa0\xd1\x01\x85\x7b\x1b\xc7\x49\xdc\x9d\x10\x85\xf6\x28\x1a\x75\xbc\xf2\x40\xfe\x21\xac\x1a\x54\xf0\xdc\xff\x1d\xdd\x69\xcc\xb5\x76\x95\xb7\xd6\x9a\xad\x55\x39\x79\x94\x04\x02\x4f\x2a\xab\xc1\xf1\x81\x8f\x56\x6b\x1b\x63\x21\x71\xdf\x1f\xcf\x0b\x14\x3b\xbc\x22\x15\x98\x0f\xe9\x5a\xa7\x2f\x50\xc3\xca\xc3\xee\x2c\x14\xb4\xe6\xe0\x46\x34\x4d\x0e\x0f\x65\x5d\xc3\x35\xfa\xb2\xfd\x7f\x36\x0d\x6a\x8b\x0f\x03\x5b\x48\xa9\xb6\x5a\xe8\x4d\x76\x82\x1b\x68\xde\x00\x0a\x84\xd1\x79\xe7\x98\xb2\x50\x61\x80\x7b\x77\xf3\xe0\x5a\x35\x06\x10\x8f\xf6\x28\x4a\x19\xb5\x96\x6b\xe7\x5a\xb9\xab\xf9\x0d\x83\xb2\x44\x61\x06\xca\xba\x4f\x2e\x46\x9c\xec\xd0\x94\xa5\x42\xb1\x61\x4f\xee\x95\xeb\x39\x6b\x3d\x28\xd7\x16\x8e\x56\x5f\x24\x1a\x85\x0e\x10\xf6\x0f\x3f\x33\x36\x29\x9f\xd5\x8b\x8b\xce\x86\x9c\xf1\xe3\x7b\x4f\x23\x82\xc9\xaf\x5e\x32\xe4\x47\x98\xdc\x8b\xfa\x78\x70\xe7\xf3\x2f\x24\x65\x31\x02\xcf\xee\xc5\xe9\x6f\x31\xd8\xe7\xa9\x20\xb6\x70\x66\xd1\x3d\xf3\x2c\xdd\x94\x0a\x63\x89\x76\xcf\x15\x9c\x45\x05\xcf\xd5\x58\xd2\xef\x53\x5f\x9a\x4a\xa6\x71\xeb\x71\xc9\x94\x4e\xe3\x9d\x52\x99\x86\x76\x53\x6a\xc3\xc8\x76\x6d\xf5\xf7\x25\x81\x7a\x39\xf7\xb5\x2a\x87\x65\x89\xf1\xc9\x15\x03\xec\x7b\xf9\xbe\xfe\x8f\xdf\x3c\xa8\xd2\x31\xae\xfa\x36\xf0\x76\x73\x2e\x8c\xf8\x3f\xe5\x27\x46\x77\x4f\xe3\x91\x1d\x51\x5a\x88\xa0\x37\x03\x13\x5f\x81\x6a\x41\xd1\x8b\xb7\x62\xea\x47\xd1\xe1\x32\xa8\x06\xae\x47\x2a\xf6\x98\x0c\x77\x02\xc3\xe3\x93\x40\x28\x31\xd9\x3c\x93\x0c\xa7\x90\x70\x8c\x26\xdb\xb0\xa9\x7d\x7f\x97\x6b\x9c\x16\x05\x23\x30\xa5\xf3\xd6\x37\xae\xb8\x23\x26\x20\x89\x6b\xe6\x44\x76\xe4\x2d\xb4\x9b\x68\x3b\xc9\xc7\x57\x31\xb1\x12\xda\x83\x97\xbe\x43\xf6\x5d\xbc\x40\xd5\xe1\x1d\xa8\xa1\x3c\x26\xbd\x7c\xa8\x1e\x87\xab\xd4\xa8\x58\xc7\x5d\x33\x45\x81\xfe\x10\x5c\x4e\xfb\xd2\xa6\x5b\xdd\x30\x16\x48\x2b\x80\xfe\x02\xcd\xad\x2d\x27\x8e\x1c\x58\x46\x42\x40\xec\xf6\x43\xf9\xf2\x04\x6f\x1d\x7d\xd0\xb0\xc7\x6b\x7e\x9e\x31\x42\xac\x02\x66\x97\xea\x45\x90\x68\x79\x69\x0e\xb2\xe7\xff\xa2\x8c\xc4\x96\x28\xf2\x51\x64\xc5\x35\x22\x6f\xbc\xc0\x18\x49\x8c\x85\xff\x9c\x33\xf5\xea\xd2\x90\xfe\x50\x1a\x28\x5b\x48\x2a\xb4\x4d\xf6\x0f\xab\x6e\x83\xdb\x52\x10\xd9\x6a\x15\xb2\xe1\x1c\x4a\x83\x4d\x68\xed\x92\x3d\x54\x65\x6f\xb4\x18\xd1\xd6\x73\xb5\xd8\xb1\xd2\x95\xd9\x87\x1b\x0e\x8b\xa5\xed\x52\x57\x79\x59\xfb\xac\xa2\xf7\x7d\x06\xe4\xaa\xc4\xed\xb7\x8c\x72\x16\xea\xc1\x27\x3b\x98\x81\x0d\x65\x54\x08\x84\x3c\x3f\x9e\xf3\x4b\xdd\x05\xeb\x37\x1f\xbc\x0a\x16\xc5\x96\x92\xde\x32\x58\x6f\xa1\x3e\x97\x45\x3d\x12\x3e\xa7\x8c\x29\xcb\xb4\x34\xec\xd2\x70\xa5\x58\x7f\x55\x66\x40\x3a\x1f\xb5\xdd\x34\x0f\x42\x29\x38\xf7\x70\x33\xc6\xc3\x44\x78\xd1\x7f\x51\xec\x20\x9f\x04\xd5\x8c\x73\x4b\x09\x58\x01\x2a\xe8\xd6\x9b\x5c\x4f\x76\x76\x96\x46\x52\x84\xae\x78\x34\xf2\x8c\x98\x88\x0c\xc2\x0f\x9d\x52\x9f\xe3\xb5\x1d\xcd\x64\x26\x49\x8a\x5e\x46\xeb\x57\xcd\x35\x7d\x53\xa6\x24\x43\xa4\x53\x5d\xe6\x7a\xad\x41\x7c\x87\xec\x19\x7b\xae\xfc\x29\x74\x62\x35\x7e\xdf\x86\x4f\x0e\x2a\xa6\xca\xab\xba\x23\x99\xf3\x3e\x83\x6a\xd7\x88\xa6\xbb\xb4\x09\x69\x42\x7b\xdd\x91\x9b\xd2\xe7\x04\xbb\x01\x69\x12\x3a\x4b\x74\x83\xb1\xcb\x51\x74\x87\x14\xc5\xdb\x5e\xab\x63\xf6\x52\x0e\x1d\x6e\x1e\x84\x04\x33\x7a\x28\x37\x78\x88\xba\x3f\x47\x1c\xf3\xd4\x7d\xc3\x90\x6d\xfd\xdd\x97\xcf\x55\xf6\x43\x7c\xa0\xee\xd8\xfe\x4e\x20\x01\x26\xe6\xd5\xbf\x40\xe1\x24\x57\x07\x0d\x67\x94\x07\x84\x43\x97\x81\xee\xe9\xee\xfc\xd1\xc4\x4a\xd9\xe2\x44\x1e\x6c\xfc\xbc\x0d\xc5\xc1\x12\x95\x62\x30\xf5\x28\x7e\x66\xa7\x2e\x14\xe4\x21\x85\xc8\x6d\x0b\xb8\xb7\x37\x95\xc5\x51\x8e\xef\x2f\x94\xa9\xf1\xe6\xb2\xde\x8a\xac\x93\xc9\xa5\x3c\x4a\x65\x48\x7b\x54\xee\xd0\xf1\xf7\x23\x40\x18\xa7\xf3\x57\x83\xba\x54\x13\x63\xcf\x09\xe1\x61\xd7\xe2\x6e\x9d\xe3\x4f\x2b\x76\xfe\x67\x54\x20\x9b\x80\x13\x8d\x41\x80\xf5\x6c\x45\xf9\x9f\x60\x76\x9c\x00\x60\xf4\x80\xe7\x78\xce\x45\xd1\x25\xd1\x38\x31\xa9\xb0\x1e\xed\x0e\x9a\x26\x1f\x24\xb3\xdd\x80\xd8\x18\x2c\xaa\x48\x44\xcd\xed\xfa\x5f\x26\x89\x56\xaa\xf3\x03\xd6\x78\x3f\x03\x12\x33\x37\x8a\x82\xa5\xc1\xb3\x05\x15\x07\xb5\xd0\xa3\xc2\x0a\x67\xb1\x52\x08\x8b\x43\xd1\x8a\xc9\x1e\xc3\x59\x92\x24\xb1\xe3\x06\x73\x9a\x2c\x83\xcc\x28\x67\x89\xc0\x36\x45\xd7\x85\x71\xd8\x7f\xdf\x74\x87\x28\x93\x23\x51\x84\xaa\x3c\x0d\xbb\xf2\x3e\xda\xce\x87\xcb\x9f\x73\x20\x08\xa7\x59\xad\x9f\xa3\xe0\x9f\x83\x2c\x9e\xc6\xda\x69\x51\x5a\xfe\xf9\x63\x05\x70\x5f\x36\xf7\xe5\xa5\x9a\xe9\xc0\xa4\x3c\x85\x88\x8f\x88\xf5\xbc\x7b\xc4\xe7\x62\xd4\x69\x7c\xc4\x45\x60\xb9\x3e\x73\x81\x92\xff\x83\xdd\x81\x8b\x28\x08\x7a\xae\xe9\x8e\x81\x66\x42\xb2\xdf\x8e\x33\xd4\xf2\x6a\xf4\xbc\x06\xfe\x90\xe0\x98\xe7\x42\xee\x35\x18\xf0\x14\x50\x2e\xa4\xc1\x7c\x67\xbb\x2b\xe1\x65\x2d\x3e\xd9\x96\x62\x31\x5b\x33\xd0\x4e\xa2\x5c\xe8\x18\x25\x4f\x1e\xe7\x69\xa3\x47\xb5\xc1\xd1\xfb\x94\xa1\xc4\xbe\xdc\xc5\x66\x89\x7d\x03\xde\x36\x72\xa9\x6d\x9d\xf6\x26\x6b\x8e\x90\xe7\x63\xf3\xa5\x42\x11\xd3\x4e\x05\xf3\xe6\xe9\x66\x39\x10\xba\xf7\x63\x78\x82\x74\xfb\xb7\x8b\xfd\xfa\xe9\x4b\xf7\x57\xc5\xf4\x50\xdf\xb1\xfd\x61\xef\x8c\x70\x65\x52\x4c\xbc\x3d\x6c\x76\xab\xed\xe1\x61\xb3\xfc\x7d\x98\x85\xe0\x3a\x31\xc8\xa7\x60\x5b\xe7\x06\x0b\xf6\x3a\x9b\xd8\xe1\x86\xaf\x2b\x58\xee\x64\x10\x18\x2a\x06\x7a\x2d\xf3\x88\xb0\x19\x9e\x1e\xca\x21\x4c\x70\xc7\xf3\xfc\xcc\xff\xbe\x64\xea\x75\x59\x16\x3f\xa0\x6a\xfa\x57\x08\x60\x12\xcf\x18\x72\x88\x0e\x27\x68\x8e\x1d\x18\x86\x1b\x21\x90\x9b\xd3\xb1\x93\x64\xd2\x51\xf6\x93\x6e\x80\xb6\x64\x4e\x42\xff\xd8\x0d\x74\xed\xe6\x52\xea\x69\x10\x2a\xbc\x92\xca\x41\xa0\xea\xd1\xa3\xe7\x40\x6a\x8f\x81\x71\xfd\x9c\xe8\xde\xad\x0b\x53\xde\xbc\x8f\x9a\x31\xfd\xc8\x44\xa2\x53\x5d\xfe\x80\xea\xad\xca\xba\x92\xff\x68\xc6\xa4\x01\xd3\xa1\x8b\x6b\x9f\xe0\x67\x83\xd8\x44\xe7\xd4\xf3\xc0\x8f\xe1\x34\x76\xbc\x02\x7b\x10\xa7\x59\x0c\x59\x1a\x18\x12\x38\xbb\x7d\x98\xea\xb2\xd3\x34\x8c\xa9\x57\x52\x75\x9c\x4d\x98\xad\x1f\xd6\x45\x71\xcc\x80\xf1\xa0\x9d\xa1\xf3\x97\x22\x92\x22\x64\xd7\x63\xcc\x46\x39\xff\x34\x4e\x52\xc1\x06\x8a\x67\xed\xcc\xac\xde\x5b\x73\xe6\x5e\x58\xfb\xaa\xc6\x27\x8c\x53\x89\x6e\x01\x14\x7a\x9c\x3b\x18\xfd\xe3\x07\x03\xc7\x2f\x59\x5c\x4e\xb6\x0a\x04\x7a\xf1\x33\x1b\x6a\x6c\x75\x69\x89\x34\x89\x52\x6d\xba\x7b\x69\xef\xa1\xf3\xb8\x3f\x20\x6e\xa5\x69\x12\x87\xda\x31\xb2\x7c\x11\xf5\xb2\xac\x1b\x1f\x62\xf9\x01\x8c\x60\xfa\x48\x8a\xe6\x24\xfc\x22\x4e\x13\x9e\x60\xbe\xea\x60\xb2\x97\xe6\x68\xb3\x8b\x53\xb8\x61\x9a\xc8\x24\xb5\x8d\x65\x70\x72\xc9\xd4\xef\x90\x75\xa7\x30\xa9\xad\x6a\xfb\x8a\x2a\x0a\x12\x34\xd7\xd9\xdb\x94\x2a\x81\x54\x18\xa6\xac\x14\xdc\x5c\xaa\x62\x44\xf3\x32\x1e\xcb\x42\xe5\x43\x4d\xe7\x96\xf9\xac\xf0\x15\x1d\x27\x4d\x19\x09\x31\x1d\xf8\x7c\xbf\x7a\x1e\xda\xa8\x94\x09\x5b\x34\x45\x08\xe9\x5f\x97\xac\x02\xfd\x98\x15\x9d\x7d\x4a\xb9\xb4\x14\xad\xd6\x05\xdb\x7f\xdf\x4c\x44\x9f\x69\xca\x4d\x18\x87\x83\xbd\x06\x84\xab\x16\x2c\x4c\x03\xd5\x58\xd9\x86\xa6\xa9\x4e\x71\x27\xdf\xb5\x3e\x4a\xd6\x64\x50\x77\x7e\x5d\x9a\x42\x6c\xb3\x15\x35\xaa\x2d\xdf\x95\xd5\xb2\xf5\xb3\x26\x8f\x22\x92\x04\x53\x52\x59\x91\xb5\xd1\x37\xa2\x04\x6e\xca\x1f\xfe\x24\x82\xdb\xad\x0c\x85\x0b\xca\x97\x4a\x9c\xea\xd1\x6a\x90\x0c\x3a\x85\xd1\x76\x6f\x70\x4b\xe1\x9a\x91\x9b\xa6\x4a\xd8\xd0\xd6\x42\x8c\x6f\xa0\xb9\x79\x1f\x09\x43\xb8\x61\x9a\x6b\xec\x5a\x5c\x68\x5d\x56\x8f\xa5\xce\xcc\xfb\x36\x7b\xf9\x25\x32\x05\x9a\x6a\x61\xac\xf8\x58\xd9\x4e\x98\xf1\x31\x88\xb9\x70\xe5\xa3\xf9\x02\x45\x0a\xad\x6f\x64\xa9\xc3\x1c\xaa\x63\x5f\xc1\x04\x53\x90\x82\x64\x74\xb8\x99\x74\x35\xdf\x61\x72\x37\x05\xe0\x98\x51\xf1\xba\x1a\xb7\xf0\xa3\xdf\x68\x53\x30\x9c\xea\x81\x1c\xc4\xcd\xfb\xad\x98\xb5\x8e\x86\x6a\x54\x7c\xb5\xb8\x4c\xbb\x90\xc7\x20\x3a\x11\x90\x20\x1d\xf0\xd1\xe8\xe1\x1c\xf7\x43\x24\xb7\xb4\x4f\xc2\x00\x12\xdf\x5b\x14\x88\xb5\xe6\xe1\x78\x9b\x11\x61\x48\xc3\xa4\xcb\x96\x3e\x66\x85\x85\xe5\xda\xe8\x6d\x32\x34\x8d\x30\x56\x75\x0b\x66\x80\xa5\x6e\xfd\x14\xac\x8c\xdb\xbe\x1b\x38\x95\x9f\x7a\x07\xbf\x04\x1a\x11\x11\x51\xe8\xfc\xac\xb0\x29\x37\xea\x2e\x45\xe3\xb0\x9f\x57\x1f\x36\xd9\xfc\x43\xf3\xcd\xe8\xdf\x0f\x7a\x24\x04\x49\x6d\xe1\xf9\x6e\xb1\x7e\x38\xdc\x3d\x2c\xbc\x87\x21\x88\xb6\x11\xc9\xa1\x7d\xc5\xbf\x42\x2a\x35\xdc\x49\x45\x2c\x29\xd6\x74\x2e\xb5\xee\x32\x8f\xee\x50\x12\xda\x22\xec\x57\xb5\x2c\xb3\xe2\xd1\x52\x54\x38\xf1\x62\x4b\xb6\x34\x4f\xde\x45\x05\x4d\x52\x47\xe3\x22\xb4\x2a\xf3\xb2\xfa\xa3\x01\xe1\x43\x28\x41\x13\xe5\x69\xe3\x2c\x01\xd0\x30\xc3\x20\xa8\x32\xb8\xc7\x9d\x5c\x89\x71\x71\x99\xd1\x6a\x1d\xbc\x28\xf7\x33\xc6\x25\x16\xc2\xbc\x50\xcc\xcb\x0c\x07\xcc\x67\x35\x58\xc1\x38\x60\x6c\x7c\x12\x3f\x47\xd0\x05\xc1\x13\x86\x8c\x9c\xcb\x3e\x60\xdb\xbd\x9f\x64\x99\x4f\x66\x24\x57\x31\xfa\x24\xad\xb3\x7a\xca\x34\x36\xe4\xb8\x43\x69\xc0\xc5\x90\x51\xc4\x5a\x55\xdb\xe4\xda\xf3\x27\x51\x91\x46\x24\x76\xc0\x4e\xab\x7c\xf6\xa9\xc5\x11\x69\xa4\xb4\xe8\xed\xf5\xa6\x4f\x51\x88\x54\x5a\x84\x4e\xe3\x6d\xb8\x2b\x1b\xfb\xe3\x22\xb0\x75\xc0\x33\x54\xa7\xac\x69\x86\x0a\x4b\xe3\xa7\x12\x09\xc5\x60\xca\xda\xe8\x7e\x91\x09\x6a\xb0\xad\xe3\x2c\xde\xef\x60\x54\x9c\x13\x22\xb5\x9d\xe7\xc8\xc2\x32\x12\xd8\xa3\x42\xc6\x80\x7e\xfb\x97\x2a\xbb\x9a\x3c\x93\xa7\x93\x49\x94\x0e\x79\x56\x76\x2f\x62\x5f\xee\x5e\x8a\x7b\x54\xe3\x9e\xdf\x4a\x85\x62\x4e\xae\xab\x6c\x44\x03\x87\x0a\x81\x33\x97\x2b\xe6\x15\x2a\x14\x0f\xb0\x30\x68\x79\x20\x71\xeb\xa9\xa7\x8e\x86\xd0\xc4\x02\x6d\xa5\x2b\x61\x8d\x2d\xa4\xd0\x31\xc7\xcf\x55\xc0\x1b\x56\xa9\x0f\xe7\x6b\xe9\x69\x2a\x34\x48\xa4\x1c\xda\x9d\x44\x35\x14\x06\xc7\x23\x7c\x88\xaf\x19\xa7\x99\x84\x36\x9c\x78\xc5\xc0\x81\xe4\xe5\xd5\x6a\xee\x9c\x29\xa1\x8d\xad\x36\xd5\x2f\x6a\x72\xab\x90\x46\xb1\x05\x22\x7e\xc5\x6c\x19\x36\x09\xfc\xd6\x1d\x24\xf8\x51\xdc\xc6\xb3\xfa\xeb\x72\xdd\xcd\x33\xf2\x89\x05\x28\x23\xac\x83\x55\xbc\xee\xcb\xe5\x51\x54\xa7\xd9\x7a\xb0\x00\xb0\xda\xe7\x9d\x86\x3f\xd2\x6e\x75\xd3\x01\x4c\x9a\xc8\x01\x2f\x7a\xbb\x18\xd6\xe6\x26\xd3\x56\xa5\xac\x07\x28\x0b\x43\x52\xef\x1e\x63\xdc\xb6\xae\x37\xe7\xfe\x4d\x1a\x66\xb9\x69\x31\x73\xf9\x28\xaa\x57\x6f\xc4\x64\x10\x24\xd8\x5e\xf2\xef\x0b\x54\xef\x83\x15\x37\xfa\x46\x32\x10\x16\x82\xfe\x58\x9e\x86\xc5\x09\x19\x06\x06\xd1\x76\x6d\x98\x51\x3c\x96\xd7\x54\x12\x6e\x1c\x81\x18\x33\x5f\x28\xe6\x65\xe9\xa4\xfa\xc5\x26\x89\xa1\xd2\x0c\x88\x91\x27\x17\x27\x06\xe8\x40\x59\x6b\xa7\xc4\x14\xa0\x26\xe3\x48\x2b\x39\x14\xd4\x9b\xa0\x4a\xe6\x3e\x92\x8c\x89\x46\xab\xe3\xf2\xa5\xbb\xa3\x20\x5d\xc1\x9d\xff\x8f\x1f\x44\x6d\x25\xd8\xd8\x9f\xfe\x36\x3e\x03\x8d\xb1\x65\xf8\x05\xf5\xa0\x7e\x0e\x03\x76\x19\x0b\x8d\x99\x98\xdf\x2f\x5a\x14\x59\x3e\x9c\xd8\x32\x89\x2c\xea\x48\x68\xfd\x08\x37\xef\xdb\x65\x77\x80\x32\x2d\xba\xde\x9c\xc7\xf7\xfb\x36\x96\xc8\x8a\x97\xaf\x45\xd6\xa5\x20\x65\x02\x91\x4f\xd0\xe3\xce\xe0\x8a\xfb\xfe\x30\x8d\x12\x4c\xf3\xa3\x5f\x92\x81\x6d\xf2\x1c\x27\x50\x25\x8d\xa4\xee\xd2\x50\xad\x1f\x3b\x82\x7a\xc9\x36\xb2\x6e\x0f\x6f\xef\xbe\x8e\xda\x40\x25\xe5\x09\x26\xe7\x1c\xe8\xf9\xa3\x0e\x62\xc9\x22\x5b\x55\x71\xec\xbf\x36\x11\xde\x57\x17\xc7\xdf\x81\x09\x23\x3d\xe7\xce\x21\xef\xc5\xaa\xa8\x64\x2e\xe1\xee\xfd\xa7\xef\x22\xeb\x1e\x81\xc7\x56\x2a\x4f\xd4\x35\x54\x8d\x17\x91\x98\xcc\x0b\xe1\xd0\xa0\xd8\x75\x96\xbd\xb4\x77\x8d\x1f\xe9\x0b\x14\x81\x3f\x91\x60\x01\xc6\xee\xcb\xb2\xa8\x2f\x79\x23\x5c\xbc\x57\x8e\x3f\xb5\x90\x81\xdf\x94\x9d\x4b\x65\x63\x46\x24\x9b\xf4\x63\xb4\x41\x23\x72\xb3\xde\x2f\x37\xeb\xa7\x2f\x0b\xdf\x24\x26\x65\x64\xa5\xae\x0f\xde\x94\x4d\x63\xb7\x8f\x01\x12\x52\x72\x82\x80\x3e\xd9\xce\x05\x14\xab\xed\xde\x81\x0a\x34\x1d\xd2\x12\x60\x1f\xe2\xa2\x70\xdc\xbb\xc3\x0f\xa7\x14\x47\x94\x85\xf7\x7f\x76\x59\xd3\x06\xb6\x1f\x7c\x3e\x4d\x0d\xb6\x48\xdc\x42\xeb\xcd\x56\xf6\x53\xfb\x3c\xde\x7d\xd9\x3c\xb7\xbb\x87\x4f\xa5\x4b\xcd\xb8\x71\x1e\xb3\xb3\xd0\x93\x6c\xbf\x84\x28\x46\x8f\x13\x95\xa1\xbe\x16\x4d\xd6\x7d\x61\x10\x3c\xf2\x75\x00\xfb\x42\x3f\x6b\xe2\x54\x41\xc4\x50\x37\x64\x59\xbd\x9f\x9b\xb2\x80\xb7\x7a\x5d\xe8\xb2\x80\x3a\x13\xf3\x96\x47\x05\x90\x40\xd0\xd1\xdd\xa0\xd7\xf0\x98\x79\x21\xde\xef\x22\x6b\xee\xca\x6a\x8b\xc7\xfc\x5b\x55\x61\x0c\x58\xa7\xd3\x55\x79\x1e\xba\x5e\x2a\x22\x49\x32\xec\x1f\x14\x27\x47\xaa\x39\x97\x17\x51\x91\x10\x01\x78\x8e\x23\xa1\x5e\x8f\xb8\x2f\x0f\x00\x84\xf6\xdc\x93\x9e\x64\x15\x09\xf0\x5c\xa6\xf7\x2f\xe8\xb7\x5f\x61\xb6\x7e\xad\xe5\x44\x45\x9a\x46\x41\xc7\xbb\xff\xdb\xd5\x41\xcc\xed\xb8\x66\xf9\xe1\x64\x51\x24\x24\xb8\xec\x50\x07\xff\xb0\xbf\xdf\xae\x76\xf7\x9b\x87\xdb\xfe\xb0\xb1\x62\x66\xa7\x0c\xab\x7e\x37\x59\x31\x50\x71\xf8\xd7\x75\x12\x43\x11\x46\x5d\xb5\xa7\xb1\x45\x36\xef\x72\xa0\x9b\xda\x97\x48\x55\x1c\x25\x21\xeb\xf2\x88\x03\xf9\xe8\x79\x46\x54\xaa\x12\x15\xe3\x63\xf8\x44\xce\x22\xf7\x53\x4b\x25\x4a\x1b\x3e\x48\x06\x35\x22\x9f\xbc\x03\x1a\x72\xdb\xaf\x2c\x4e\x3d\x6d\xc6\x7c\x71\x4d\x51\x62\xb1\xc9\xc7\xb2\x28\x2f\x55\x97\x83\xe9\x77\x60\xc5\xc2\xd4\x03\x74\x7d\xd9\xe1\x33\xae\x45\xaa\x18\xb5\xa9\x94\x43\x25\x8c\xc9\xe1\xb6\x53\x33\xa6\x8a\xe9\x10\x49\x7e\xb6\xe5\xdf\x60\xab\xee\xb3\x2e\xba\x1f\x6d\xa4\x63\x12\xc1\x42\x0f\xdc\x02\xe8\x11\xe9\x91\x1b\xc7\x23\xed\x52\x8c\x5d\x72\xf6\x79\x4e\x41\x7d\x16\xf6\xe2\xcf\x91\x8a\xd0\x73\x8f\xd5\x35\x34\xab\xd3\x29\x6b\xa6\x89\x02\x95\x86\x01\xe2\xc7\x74\x79\x91\xf9\xc7\x50\x8c\x4f\x0b\x32\x2a\x4d\x43\xd2\xb1\x16\x4e\x2f\x20\x15\xd6\x3a\x91\x41\xc4\x5b\xa6\x87\xec\x15\x06\xde\x89\x4a\x35\xc5\x4e\x29\x87\x27\xff\x06\x95\xce\x46\xed\xe8\x4a\x44\x16\xb1\x87\xe6\x27\x7b\x29\x44\x3e\xce\x28\x28\x21\x43\x14\x8f\xca\xea\xdd\xb9\x2c\xea\x12\xb1\x17\x56\xb1\xec\xa3\xcd\x4f\x29\x1a\x50\xe7\x8a\x59\x85\x85\xcf\x1d\x79\xa5\x03\xd7\xf8\x3e\x28\xc9\x5a\xb9\xa4\xae\x2a\xa6\x20\x0c\x24\xd2\xb2\x5f\x64\x9e\xa9\xdf\xe1\xfd\x1b\x54\x99\x79\xff\x87\x33\x03\x91\x3a\xea\x10\x07\xce\x38\x4f\xc8\x7d\xa9\x82\x44\xe1\xc4\x3d\x65\xc5\x77\xc8\xf6\xa5\x87\x97\xfb\x6b\x9b\x20\xc1\xf4\x1b\x14\x7a\xad\xca\x9d\x70\x32\x38\x3e\xc8\xd7\x41\x40\x84\x35\x8b\x2a\x3b\x67\x7d\xfa\x43\x87\x01\xf5\x2d\x1e\x56\x2d\xd3\x62\x50\x87\x36\x55\x87\xa1\xc2\x70\x76\x39\x0b\xb1\xd7\x61\x64\x84\xee\x8c\xe8\x2b\xac\x0b\xa7\xdf\x33\xfe\x4e\x3a\xa4\x4a\x11\x4f\x3e\xd2\x9f\x5c\x09\xd4\x68\xb6\x26\xe0\xd9\x27\x42\x3f\x58\x47\x3a\x4a\x49\x64\x09\x5b\x4c\x55\x0e\xc3\x41\x1d\x69\x11\x46\xbd\x20\xc3\x07\x0c\x5d\x93\x02\xc3\x47\xe6\xf9\xbf\xff\x67\xf6\xea\x84\x47\x01\xf1\xb0\xd7\xf1\x27\xd2\x24\x0d\x48\xe2\x5d\xbe\x01\xae\x67\x36\x15\xa2\xe3\xc8\x92\x27\xce\x11\xa1\x74\x93\x43\xc7\xa9\x44\x5e\xc7\x81\x7d\x9c\x03\xf0\xe8\x24\xb5\xa2\x42\xab\x90\xfb\xd7\x91\x28\x8e\xe6\xa9\x28\x35\x1c\x72\x30\xcd\x01\x59\x07\xa6\x3f\x04\x89\x10\xd1\xf2\x0c\xc5\x7f\xca\x02\x76\xc7\xf2\x6c\xef\xd8\xdf\x28\x6b\x3d\x23\xa7\xdb\xb9\xda\xdf\x1f\xb6\x9b\xdf\xfd\x25\x98\x31\xe8\x82\xb6\x67\x8f\xe2\xc9\x99\xb9\x8a\xbd\x78\x07\xf4\x4b\x76\xfc\x3a\xb9\x0e\x6c\xc2\xc3\x57\xb6\xb7\x6d\xac\x5b\xdf\x65\x3f\x6d\xcd\xec\xf0\x39\xc2\x4b\x0b\xa5\x6c\x69\xc9\x34\x50\x21\x7b\x94\x5d\xf6\x38\xf7\xd1\xd1\xda\x7a\x89\xfc\xa2\x3c\x65\x85\xe8\x4b\x5d\x5a\x86\x21\x22\x74\xdb\xf7\xb3\xfa\x99\xd5\x4d\xfd\xc1\x97\x92\x91\xc0\x6e\xe2\x36\x04\x81\x26\x6b\x0d\xf2\xe2\xcf\xc9\xc3\xb6\x9e\x9b\x8b\x09\x6e\x2a\x80\x36\xce\xf6\x4d\xa1\x71\xf0\x2f\xfb\x8f\x1b\xaa\x89\x35\x67\x0d\x54\x78\x47\x63\xe6\x56\xaa\x21\x11\x16\x06\x65\x29\xed\xca\xea\x15\xec\x0e\xf0\x81\x8c\xe8\xf8\x46\x80\x1a\xac\x0f\x60\xd2\x5a\x1d\x41\x0f\x5b\xf9\x34\xf0\x18\x93\xd5\x1d\x29\xda\x00\xd2\xa3\x0d\x37\x40\xc7\x6a\xc7\xd7\xbd\x16\x10\x12\x8d\x51\x66\xdd\xae\xf4\xbb\xb2\xfa\x9e\x35\xc7\x87\x52\xbd\x7e\x16\xdc\xf7\xdb\x1b\x84\x71\x8c\x9a\x5a\x77\x97\xe6\x52\x41\xdd\xd3\xc3\x51\x08\x93\x14\x75\x3f\x2c\x7a\x42\x3f\xad\x1f\xef\x16\xf3\xd6\x1b\x42\x6a\xb3\x33\x27\x2d\x87\x4e\x11\x84\x42\x60\x00\x20\xea\x3a\x7b\x29\x96\x50\x35\x99\xc9\xd4\x10\x82\xf1\x49\xb9\xd0\x9f\x43\x81\x1c\x58\xb3\xac\x78\xf9\x22\xb2\xe9\xde\x06\x51\x20\x2d\x4b\x38\x6e\x06\x48\xd0\xd2\x45\x77\x10\x05\x80\x7b\x3d\x52\xe1\x3c\x5d\x4e\xb6\xc7\xae\x3b\x4a\x22\xac\x86\x2f\x6e\xbf\xad\x77\xab\xed\xee\xb0\xfb\xfa\xfc\xfc\xf0\x67\x77\x98\x5a\x3c\xed\x39\xea\x59\x16\xdd\x21\x12\x24\xe8\xc4\x67\xf5\x2a\xcf\x5e\xb2\x2b\x16\x12\x20\xb1\x76\xb1\x98\x0d\xb1\x5b\x3b\x58\x4c\x35\x2b\x28\x10\x15\xf9\x0a\x50\xfe\x90\xc9\x1d\x34\xd1\xf4\x4a\x4a\x52\xeb\x97\x59\xf9\xaf\xeb\xa4\x38\x10\x48\x6c\xf3\xf9\xb0\x53\x64\x4e\x86\x9f\x42\x1c\x2a\xe9\xfb\xaa\xfd\x8e\xd4\xfe\x51\x3b\x74\x75\xd7\xa2\xc4\xfd\x31\xc3\x15\xef\xf9\x07\x77\xe7\xac\xdd\x52\xce\x97\x49\x99\x1e\x12\x25\x31\x9f\x5c\x37\xe5\x79\x1e\x38\x06\x34\xb4\x58\x08\x4c\x90\x95\xff\x0b\xaa\x69\x5d\xe1\xa1\xc5\x9d\xf5\x25\x81\x26\x80\xad\xc3\xa8\xfb\x31\x91\x4a\x98\x5c\x41\x71\x84\x93\x39\x59\x95\x7a\xfa\xf4\x2c\x0c\x30\x9d\xb7\x5b\x2e\xb6\x8b\x9b\xd1\x7c\x65\x51\x64\xe5\x96\x6d\xf9\xe9\x7d\xd4\x1b\x3c\xb3\xde\xaf\x3c\xec\x0f\x8e\xce\x3f\x12\x8b\x24\x16\x70\x7c\x7c\xeb\x97\xee\xa7\x5d\xf2\xdd\xa4\x61\x20\x02\x9b\x01\x50\x9f\x29\xfe\x51\xe0\x31\x4d\x22\xaf\x0e\x35\xda\x09\xfd\x00\x11\x6b\x3f\x1d\xbe\x38\x30\x67\x77\x4c\x69\xa4\xb7\x10\x1d\x60\xed\x8a\xc7\xd6\x07\xdd\x90\x72\x45\xc2\xbe\xb9\xba\x35\x25\x1f\xd8\xc8\x4f\x60\x01\x90\xa6\x02\x31\x13\xf9\xcf\x63\x6b\x8d\x62\x7f\x27\xa9\x24\x84\x0e\x0a\xcc\xcd\xa5\x42\xb2\x8e\x19\xb4\x13\xc8\x98\x12\xd3\xe1\xa1\xb6\x65\x39\xe6\xc0\xf5\xa3\x92\x40\x76\x7c\x9f\x0f\x20\x34\x54\xb2\x14\x95\xdd\x92\x69\xfc\xaf\xd1\x3f\xfe\x37\x22\x44\x4e\x9d\xe7\x5c\x28\xb8\xb9\x7c\xa8\x02\x3e\xbf\x1d\x80\xa2\x16\x5e\x89\x82\x93\x05\xa0\xca\xf8\xc6\x74\x66\x61\x64\xf8\x94\xb2\x3a\x55\x95\x2d\xbc\x1e\x30\x8d\x01\xfa\x30\xc3\xd7\xdd\x0e\xb6\xf9\x20\xc4\x30\x1d\x30\xed\xf1\x51\x04\x71\x9d\x2e\x01\xa5\x3b\x12\x2a\xcb\x14\xf4\x03\x66\x31\x00\x00\xca\x12\xdc\x38\xe1\x39\xa8\xee\x2e\x79\x8e\xc2\x73\xa3\x71\x26\x10\x96\x2f\xc2\xf3\x5f\x5b\xdd\x2e\xf7\x29\x4d\x08\x16\x74\xf9\x82\xd2\x23\x59\xbb\x9b\xae\x74\xd6\x1c\x98\x1f\x10\x69\x9e\xa4\xbd\xe4\xc7\x56\x34\x13\xa1\x11\x6a\x08\x95\xd8\xcc\x7e\x93\x55\x3d\x52\x6e\x5a\x7f\x1b\x99\x59\x43\xb8\x6d\xde\xb7\xe8\xeb\xd9\x62\x88\x1f\x29\xac\xe4\x15\xa6\x7e\x9f\xab\xf6\x43\xf7\xdb\x89\x89\x21\xc4\x8f\xf8\xb8\xf8\xe3\xf0\x65\xbb\x78\xda\xaf\x56\x8e\x57\xd7\x32\xdf\x78\xd5\x5d\x6a\x92\x90\x1a\x18\xb0\x65\xa2\x3a\xdc\xa3\x98\x27\xf0\xa6\x26\x31\x04\xdf\xee\x43\xf9\x12\x1e\x4c\xa1\xa6\x64\x80\x9f\xd7\x9c\x7c\xf9\x73\x7c\x4e\xa6\x19\xee\x2d\x9d\x22\x67\x3e\x26\x7c\x33\x4c\xa7\x98\x3e\x15\x4a\x5d\x4e\x88\x3f\xd0\xf7\xe5\xa5\x7f\x5a\x4e\xc0\xeb\xfb\x6e\xad\x8c\xd4\xf8\x53\xf3\x58\x13\x97\x2e\x7c\x16\xd5\xb5\xac\xae\x1f\x26\x25\xe6\x94\x6e\x6d\x26\xfb\xff\x05\x1d\x88\xe1\xc0\x51\xfe\xe8\xf1\xe1\xdf\xdd\x1b\x4e\x23\x8e\x0d\x22\xd6\x21\x47\x94\xfa\xf6\x92\xc3\x97\xaa\xbc\x5c\x49\x1e\xfe\xc3\xe9\x53\x66\x71\xa3\x88\xf1\xde\x1d\x2f\xc6\x5c\xc3\x44\x8c\xb7\x4e\x35\x34\x9b\xb3\x53\x20\xfe\x22\xea\x6b\xb9\x2b\x6a\x52\x95\xa6\x0e\xbf\xe3\x54\x3b\x67\xd7\x94\x11\x91\x95\x99\x6c\x5c\xb3\xa1\x2b\x66\x8f\x4f\x26\xa8\x05\x20\x5d\x8a\x1f\x36\x88\x9d\xdd\x52\x8c\x24\x1c\x4d\xf0\xb7\xc5\xc3\xd7\xd5\xcd\x62\xe9\x43\x03\x23\x55\x88\x08\x45\x10\xd5\x80\x5f\xca\xa8\x40\xa3\xe9\xb7\xc1\xae\x85\x19\x21\xbd\x51\xf7\xf9\x15\x4d\x89\xc7\xd0\x2d\x8f\xa2\x7a\x99\x6c\xa7\x46\x99\x08\x79\xf6\x7a\xf6\x5f\xcc\xd3\x7e\xdc\xa0\x69\x34\x51\xda\x61\xae\x3b\xe2\x7d\x7f\x28\x49\x12\x9b\x57\x76\xcc\x17\x1f\x2d\x01\x3f\x5e\x24\x81\xec\x1b\x3d\x9c\x78\xe9\xc4\x93\xe8\x2e\x0c\x21\xc5\x37\x0d\xa7\xac\x41\xb5\xaf\x0f\x5c\x08\x03\x51\x82\x19\xb2\xb5\x2a\x57\x85\x1e\xf4\x87\x1a\xe0\x11\x4e\x92\x2f\xd5\xe5\xdc\xc0\xc0\x5d\x36\x86\x47\x58\xcd\xff\x02\xcd\xf2\x98\x9d\x9f\x2e\xa7\xd9\x36\x39\x63\x40\xa2\x6d\xf1\x89\xe1\x5c\x43\x35\x51\x96\xf1\x37\xc2\x82\x90\x30\xc4\x02\x00\xae\x59\x07\xec\xef\x93\x31\x2c\x08\xa9\x0a\x63\xaf\xdf\x69\xd3\xc0\xfb\x12\xcd\xd5\xe4\x4c\x51\x1c\x52\xa7\x04\x73\x5b\xaa\xa6\xac\x06\xe4\x25\x1f\xea\xd3\xf2\x5f\xf8\xbf\xe3\x22\x28\x0b\xa2\x44\x23\x24\xd8\x7b\x35\x8b\xfc\x2a\x59\xe6\x3e\x08\x0b\x48\x4a\x31\xe6\x5b\x8a\xfa\x38\x70\xc4\x58\x40\x54\x8c\x80\xa4\xd5\x7e\x69\x77\xfa\xd9\x0f\xc5\x82\x98\x58\xfc\x68\x56\x23\xf6\x75\x74\x8e\x98\x28\x01\x03\xe7\x7b\x63\x0c\xca\x52\x76\x00\x97\x8f\xac\xcf\x0c\xf5\x39\x0b\x68\x28\x92\xc4\x15\xbf\xd1\xcc\x8c\x60\x2b\x2c\xa0\x69\x12\x77\x1f\x02\xb3\x7c\xfb\x72\x4a\x51\xf5\xb1\xf9\xe6\x96\x2b\x65\xb8\xb2\xda\x53\xa6\x58\x38\xea\xfa\x97\xfc\x8e\xbe\x44\x64\x88\x37\xe1\x2c\x60\x84\x48\x97\xfe\xbe\xc9\x9a\xb7\xb2\xd2\x75\x27\x3c\x3b\x67\x73\x58\xc0\xe2\x18\x3f\x92\xd7\x67\x2d\x25\xdc\x55\x19\x14\x1f\xd6\xcf\xa7\x30\x13\x7f\x1e\x69\x31\x48\x37\xe0\x68\xea\x87\xc1\x29\x0b\x78\x60\x70\xd2\x75\x14\x72\xf5\x0e\x9a\x55\x81\xf8\xb5\x2d\x58\xfe\xd1\xfa\xa9\x6c\x06\x0c\x7c\x2c\xe0\xb1\x55\xc1\x39\x96\x97\x1a\x46\xe5\x6b\x16\xf0\x84\x7a\x1d\xf8\xc7\xf7\x2f\x50\xf8\x76\xa0\xf6\x88\x55\xdb\x92\xc5\xb2\x8d\x10\xba\x3f\x2b\xcb\x70\x2f\x41\x95\x27\xf8\xbd\x4b\x4f\xb1\x80\x9b\x14\x91\x28\x5b\x9f\xb9\xfb\x2c\xb1\xca\x82\xd6\xfd\x64\x1e\x00\xf4\x41\x48\xd0\x93\xde\x7c\x1c\x32\x44\x13\x9e\x70\x77\x7a\x11\x02\x75\x94\x09\x3e\x96\x9c\xe9\xb5\xed\x6f\x47\x42\x1c\xf7\x10\x8a\x7c\xf5\xfc\xc7\xf8\xcd\xab\x20\xd0\x81\xef\x8e\x72\x84\xf1\xe3\x09\xad\xc2\x24\x08\xd0\xd4\x66\xc5\xb2\xeb\x55\x60\x81\x22\x21\xc2\x4e\x5b\x6f\x65\x28\x40\xdf\x1e\x11\x2a\xf2\x61\xb4\x4d\x08\xa1\x5c\x7c\x56\x74\xdf\x47\x71\xee\x31\xab\x83\x04\xc4\xaf\xcd\x25\x25\x28\x92\x71\x3e\xed\xbf\x8d\xd6\xb1\x0e\x63\x74\xd3\x5f\xe1\x7d\x3a\x8d\xb5\xa0\x86\x0f\x60\xb9\xcf\x3e\x51\x3a\x1e\x06\x11\x60\xb5\xf2\x56\x34\x97\x13\xce\x9a\xac\x1e\x5d\x02\x68\xec\x15\x82\x47\xd2\xee\x08\xf8\x99\x7a\xf8\x83\xaf\x06\xa0\xb1\x46\x57\x37\xd5\xb2\x2c\x94\x98\x27\x5e\xfd\xc7\x24\x07\x0b\x4c\x2c\x75\xdc\xa3\x6e\x6e\xb3\x1f\x43\x86\x45\x16\x18\xce\xd0\xfa\x1c\x82\x9f\xff\xc9\x64\xd6\x8c\xee\xde\x40\x80\xd9\x97\x7d\x59\x36\xd5\xa4\xf9\x80\x85\x01\x70\x34\x91\x6e\xa9\x6f\x85\x94\xd9\xaf\x8b\xbb\x0d\x3f\x21\x77\x67\x8c\x20\xc0\x8c\xc8\xa4\x51\xe6\xd1\xef\x85\x2c\x24\x01\x70\xd5\xf1\xcc\x6c\xde\x26\xf0\x04\x16\x92\x88\x92\x91\xa8\xc0\xe8\x71\x43\x42\x63\x44\x1a\xb9\x4e\xa2\xaa\x81\xca\x37\xdb\xcc\xda\xb3\x90\x80\xcd\xa0\x64\xb5\x53\x91\x9c\xf5\x8f\x58\x18\x87\x34\x75\xcb\xc2\xb9\xc1\xf6\xc2\x6d\x08\x53\x9d\x06\x5c\x37\xed\x50\x86\xce\xb8\xb7\x90\x36\xab\xb2\xcc\x9a\xf7\x61\x98\xc6\xc2\x58\x19\x0c\xd3\xbe\x40\xf3\x70\x51\xaf\xef\x5f\xc4\x49\xe6\x6d\xb4\x30\x5a\xb0\x61\x12\xd9\xba\x59\x56\x2f\x45\xaf\xf9\xc5\x42\x2a\x68\xea\x2b\x60\xdf\xd6\xcf\x93\xe7\xe2\x31\x1f\x24\x1f\xaf\x52\x24\x33\x53\x29\x4c\x63\x89\xe0\x14\x27\x5d\x86\xf2\x6b\xfe\x62\x29\x8f\x90\x50\x6f\xb5\xd8\x62\x2b\xfa\xd3\x7e\xbb\xbe\xf9\xba\x5f\x6f\x9e\x26\xbc\x42\x2c\x94\x42\xa0\x8a\xd4\x0e\xce\xe7\x7f\x6c\x29\x61\xa1\xd4\x56\x85\x1b\xb7\xa0\x97\x6b\x81\x8a\x76\x84\xc2\x4f\xfe\x5c\x65\x27\x90\xa2\x78\x1d\x95\xe8\xc6\x8f\xad\x98\xc6\x74\x57\xbb\x6f\x04\x91\xbf\x25\x4d\x48\xe8\xa8\xa9\x5f\x11\x3d\x5c\x94\x65\xf1\x2d\xab\x27\x9e\x37\x0b\x35\xb5\xde\x43\x4f\x6c\x3f\x01\x50\xb1\x50\x0b\x85\xbd\xbf\x4b\x0f\xba\xde\xfd\x55\x5d\x9d\x06\x6c\x57\xcf\x29\x2b\x9a\x67\x24\x7d\xfc\x3f\x45\xfb\x2c\x84\x38\xc6\xbe\x9c\xac\xf6\xd8\x0f\xff\x28\xa0\x2c\xab\x6e\xfb\xd5\x91\xb7\x79\xd4\x34\x3a\x79\x1b\x46\x04\xd6\x1b\x2d\x3a\x36\xc1\xd1\x14\x8c\x02\x65\x73\x63\x35\x14\xfa\x59\xbc\xf7\x1c\x80\x2c\x0a\x41\x5a\xb1\x6b\x3b\x1b\xda\x4d\xf8\xf2\x72\x3c\x5f\xba\x01\x51\x60\x34\xf3\xc0\x3a\x9c\x2c\x6e\xe2\x5c\x23\xe5\xc7\x4f\x17\x45\xa1\x36\x76\xcd\x39\x21\xa9\xc5\xf8\x1d\x47\x24\x8a\xb1\xc6\xa5\x44\x7d\x74\xac\xa4\xfe\x48\x12\xf8\x9c\xee\x5d\x05\xb0\xfa\xd9\x40\x51\x4f\xb9\xb1\x58\x44\x54\xe4\x00\x87\x75\xb3\xaf\xb2\x6e\x1e\xfa\x56\x50\x16\x11\x10\xe8\xf9\x60\xc2\xc3\x26\xaa\x57\xfb\xfb\xa5\xa8\x34\xba\x60\x36\x89\x39\xdf\x9c\x34\xf8\xaf\x71\x9c\xc0\xa2\x98\xc4\x7c\xf0\xd2\x3e\x0c\x65\x58\x14\xa7\x51\x37\x45\x7e\x29\x7d\xd7\xbf\xbe\x84\x5a\x30\x81\x8b\x0d\x7b\x2a\x3e\x16\x25\x12\xb0\x17\x61\xb9\xbc\x3f\x6c\xbb\xce\x46\x16\x51\x2e\x65\xdf\xce\x36\x9b\x60\x65\x11\x8b\x52\xcc\xb9\x63\x8b\x62\xc7\x3c\xc8\x22\xc6\x6d\x79\x1c\x77\xef\xa1\x55\x88\x98\x52\x91\xbe\xd6\xc2\x98\x58\xda\xee\x99\x39\x15\xdc\xf9\x60\x5f\xca\x5c\x5b\xc5\x68\xec\xe8\x57\xd7\x7b\x6f\xc4\x9d\x14\xf0\x16\x44\xee\xdc\xe2\x7e\xeb\x8a\x84\x02\x9c\x43\xe7\xbe\xf3\x6b\x29\xce\xad\xd9\xef\x1e\x5a\x71\x8d\x30\x3c\xec\x20\xdf\x8b\x57\x04\x67\x3d\x95\x8d\xd3\x95\x1c\xd0\x88\xb3\x48\x41\x88\xa9\xce\xfb\x52\xe7\x37\xe5\xcf\xc9\x9b\xd1\x51\x8a\xb8\x99\xbf\x45\xfd\xb3\xfd\xff\x7f\x89\xbf\xfc\x0f\x21\xa0\xe8\x2e\x8d\xa5\xd5\xff\x04\x51\x75\x23\xa2\x00\x53\x39\xc2\xd2\xff\x83\xcd\x68\x79\x14\xc8\x64\x3f\x8a\x4c\x1c\x46\x6e\x7d\x23\x3b\xc2\x6d\x56\xcb\x4b\x55\x83\x5b\x9d\xdf\x8f\x50\x3c\x8b\x4b\x0d\x7a\x10\xcb\x45\x46\x69\xde\xef\x38\x43\xf1\xb3\x7e\x10\x09\x42\x8d\x35\xbe\xf5\xf7\xef\x2b\xd7\xd2\xc5\x48\x48\x6d\xf1\x52\x68\xfd\x4f\x9f\x8f\x10\xa6\x43\x4b\x29\x6d\xf9\x1d\xa7\x0e\x03\x89\xe3\x10\x05\xbd\x6d\x2b\x50\xde\x31\xa7\xfd\xaa\xf1\x9b\xdb\x95\x48\x1c\x73\x6d\x4b\x25\xb3\x2c\x77\x8c\xc4\x8c\xab\x21\x46\x62\xad\x07\x7d\x43\xa3\xef\x48\x12\x11\x2a\x35\x10\x4b\xb0\x8a\x83\xee\x20\x8b\x0d\xf1\xa2\x26\xc8\x85\x3f\x43\x71\xc4\x08\x4b\x6c\x57\xfd\x6e\x73\xb7\x3f\x2c\x17\xcf\x87\xd5\xd7\x6d\x77\x06\xc5\x99\x63\x5d\x5f\x34\x2e\xa5\x51\x0f\xb2\x14\x8c\xf0\x38\x42\xeb\x6d\xa3\xf2\xba\x97\x40\xf0\xc7\x99\xa6\x72\x18\xf6\x58\xcb\xd4\x1a\x88\xa7\xb2\x50\xb6\xbc\x99\x15\x2f\xf8\x3f\xba\x1f\xa5\x29\x06\x90\x3f\xca\x06\x6e\x26\x4f\xcc\x53\x8d\x10\x1f\xf4\xf1\xb3\xd6\x69\x99\x0f\x0b\x48\x2a\x0c\x2e\x96\x02\xda\x30\xd0\x47\x41\x24\x35\xc4\x0b\x5f\x7b\x56\xb7\x4b\x25\x86\x2c\x17\xdd\x40\x0b\x6b\x68\xef\x7c\xe3\xe1\xea\x8c\x88\x48\x84\x2e\x3a\x79\x2e\xcb\xbc\x7b\x50\x11\x27\x5e\x9d\xfb\xe9\x72\xb2\xf4\x2b\xf8\x36\x54\xa9\xaf\x5c\x20\x22\x12\xe7\x52\x88\x6b\x0c\xdf\x74\xf2\x5c\xe6\x88\x58\xff\x2f\xf9\x3c\x46\x04\x83\xa8\xc7\x32\x0d\x70\xa6\x8c\xc8\x84\x61\x22\x48\x43\xa7\xbd\xff\x5c\x95\xad\x83\x39\xf1\x13\x88\x0a\x20\xf1\x5d\x07\x8b\x3c\xbf\xab\xfe\x5e\x28\xe5\x4f\xa3\x74\xca\xc1\xa7\x89\x0f\x62\xd0\x30\xcc\x88\x36\x81\x65\xab\x2c\xab\x1a\x2c\x0b\xbc\x3f\x64\x08\x0f\x98\x53\x7b\x9b\x21\xbd\x60\xc4\x08\x8e\x10\x8c\x85\x33\x17\xd7\xcd\xfa\x2c\x0e\x03\x3b\x83\xb1\x1e\x76\x5b\x89\x97\xe9\xb7\x8c\xc3\x28\x88\x93\x1e\x81\x3d\xd0\x96\x19\x5c\x2b\x0e\x69\x84\x62\x1b\x6f\xa2\x5e\x79\x71\x19\x9b\x5f\xe8\x13\x0c\x71\x98\x26\xc4\xc1\xf2\x9e\x37\x9b\x87\x03\xe8\xac\x39\x84\x49\x7f\x98\xf9\x30\xec\xe6\xf2\xbe\xb5\x48\xbf\x01\x62\x85\xc5\x11\xb5\xb4\x4e\x4a\xe4\xf9\xcb\x6d\xaf\x13\xe6\x8f\xc7\xa1\xc1\x79\xf7\xb0\xd9\x3c\xae\x17\x61\xf7\x67\x10\x08\x24\xfe\x02\x8d\x95\xe7\x18\x76\x4a\xb8\x31\x09\x0b\x90\x94\xa0\x3a\x5d\xae\xf8\x83\xdd\x10\x1a\x28\xe4\x59\x76\x25\xfc\xec\x35\x7b\x16\x53\x00\xe2\x5c\x03\x47\xfb\x4b\x9d\x70\xdf\x15\xd8\x8c\xcb\x05\x61\x37\x28\xd1\xc2\x36\xb2\x96\x95\x78\x81\xd5\x4f\x94\xf9\xf2\xf7\xc7\x38\x09\xf4\xb0\xbd\xcf\x37\xd2\xdd\x65\xd8\xf5\xe2\xc2\xfc\xf1\x75\x99\x20\xd6\xa0\x2b\x55\x5d\x44\xee\x1a\x1e\xea\xee\x9c\x26\xc0\xd4\x72\xeb\x59\x6d\x2e\xcd\x9d\xc8\x73\x29\xd4\xeb\xb0\x65\x9d\xc5\x5c\x04\x8a\x0e\x35\xd0\x2c\xe7\x32\xae\xfe\xde\x17\x8b\xb9\x08\x51\xe5\xe8\x5c\xbe\x0d\xb0\x09\x2c\x4e\xe3\x08\x95\x80\xbf\x6d\x50\x79\xfc\x79\xbb\x7a\x5e\x6c\x57\xd8\xdf\xb7\x7b\x5e\x3c\x75\xc3\xc0\x42\x3e\x30\xef\xf5\x90\x29\x28\x6a\x78\xba\xdb\x8f\x3d\xb9\x58\x84\x09\x02\xbb\x1d\x53\xf3\x5a\x83\x98\x6c\x99\xb1\xa0\x11\x6e\xc1\xaa\xcc\x0a\x9b\x9c\x7d\x7c\xed\x6e\x46\x08\x81\xc6\xd1\x27\x15\xf7\xe5\xa2\x28\x9b\xa3\x65\x81\xff\x1c\xe8\xd0\xdd\x83\x24\x12\xf1\xd5\xa5\x03\x35\x2f\x2a\x6b\x23\x67\x9d\xee\x58\x45\x81\xf0\xea\x07\xc1\x01\x5b\x31\xd6\x45\x03\xd5\x0f\xd1\xcd\x3c\x95\x80\x30\xbe\x6a\x86\x60\xeb\x8a\x4c\x1e\x4a\xf1\x04\x7b\x1a\x4e\x3a\xfb\xd1\x51\xf6\x5c\x06\x7d\xa5\x2c\x56\x2a\x34\x0e\xa6\x64\x4b\x23\xf7\xa2\x3e\xc2\x94\xa5\x80\xc5\x3a\xa6\x58\x87\x39\xd8\xa0\x1a\x2b\x0f\x8e\xc7\xa3\x9e\x71\x14\x62\x88\x01\xa1\xb4\xd0\x3a\xd7\xda\x76\x29\xdc\x4e\x7b\x4a\x59\x0c\x82\x28\xe9\x39\x2b\x3a\x6e\x5c\x7b\x75\x6b\x28\xfe\x3b\xfa\x9f\xae\xfd\x7b\xf4\x9f\xfe\x0c\x52\x12\xe8\xfa\xd5\x7e\xcf\x4e\x13\xbd\x68\x3f\x4c\x07\xd8\x91\x70\xca\x8a\x7f\x5f\xca\xea\x82\xf4\x19\x9d\x90\x02\x8b\xc1\x50\x74\x00\x5c\x46\x2b\xfb\x1b\xd5\xe5\xe6\x03\xc4\xd8\x44\x56\xd2\xda\xbb\x00\xc3\x04\x62\x12\x52\x46\x8d\x43\xc0\x17\x8d\xab\xdd\x8d\x6e\x26\x09\x85\xc6\x60\xf4\x90\x15\x35\x54\xed\x3e\x2f\xd4\xeb\x43\x39\xdf\x96\x19\x8e\xa8\xce\xbb\xac\x77\xff\xae\x93\x28\xd6\xd4\x05\xf1\xbe\xcf\xfa\x58\x41\x7d\x2c\x27\xf8\x2e\x96\x90\xc8\x32\x7b\x63\xa8\x36\xc2\x0c\xb2\x84\x24\x22\x8e\x3a\xde\xc5\xd6\xbd\xfc\x4c\x39\x96\x25\x44\x10\xe5\x6a\x51\x8f\xe2\x7f\xcb\x6a\xf5\x03\x8a\x4f\xa4\x7f\x58\x42\x8c\xc2\xb2\xaa\xbf\xb0\x2d\x8a\xbb\x83\x71\x08\xc8\xf4\xb7\xc8\xcd\xa0\x5d\x85\x25\x31\x4d\x91\x7a\x61\xd5\x1c\x6f\x1a\x65\xcd\x70\x77\xcc\x18\xaf\x7c\xae\xaa\xb2\x68\xa6\x4d\x30\x2c\x49\x02\x81\x20\xbc\x1f\xe5\x4f\xff\xa3\x24\xe4\x48\x4d\x86\x7d\xf6\x8b\x3c\x77\xfb\xc5\xe0\x30\xd6\x47\xda\x90\x6a\x51\x38\xee\x16\xcb\x43\x73\x93\x35\x7d\x13\xf9\xe4\x65\x24\xdc\x76\x44\x2d\xfe\xce\xc5\x50\xf3\x9f\x25\x34\xd4\xb6\x71\xc4\x6f\xf5\x1d\xd2\x7e\x7c\x06\x1a\xa5\xd6\xc3\x3f\x9f\xa1\xd0\x9b\xa2\x4b\xa6\x26\x54\x86\x58\x49\xf8\x22\x4e\xb0\x1f\x04\x6a\x09\x0b\x0d\xe6\x29\x8e\xa2\xd0\x48\xa8\x5e\x5e\x9a\xfa\xf0\x61\x72\xed\x33\x38\x08\x4b\x18\x37\x08\x2d\xb8\xa0\xc6\x99\xc5\xfc\x05\xc3\xbd\x3a\x61\xa9\xc0\x1c\x92\xb2\xcd\x14\x6f\x20\x72\x2f\x65\xc5\x12\xce\x52\x34\x6f\x5f\x2a\x51\x34\xa0\x37\xd5\x8b\x28\x9c\xb9\x1f\x04\x19\x49\x6a\x04\xc2\xdd\x96\xa2\xa9\xaf\xa1\x13\x2c\x11\xb1\xcd\xb0\xeb\x42\x3c\x66\x3f\xfb\x45\x25\x12\xdb\x8d\xf4\xd2\x1a\x28\xd4\x26\x99\x60\x62\x59\x22\xa8\x65\xcc\xab\xa1\xb9\xc9\x41\xa8\xe3\xad\xc8\xf2\xf7\xeb\xd2\x28\x4b\x84\x54\xa9\x53\xe7\x38\x97\x95\x68\x46\x5c\x02\x2c\x11\x8a\x5a\xa9\x43\x9c\x6c\x43\x47\x22\x91\x81\x6d\x10\x7f\xca\x4a\xd9\x91\xa9\xb2\x44\x91\x20\x76\x1e\xc8\xfe\x67\x47\xc1\xea\xdc\xa7\xc7\xe5\xf7\xf1\x76\x94\x28\x30\x58\x35\x43\x24\xb4\x6b\x42\xf5\xa7\xd2\x31\x51\xc6\xe9\xc6\x67\x3f\x21\xff\x6d\x60\x02\xdc\x3f\x51\xec\xc7\xa6\x0a\x67\xf7\x1f\xdb\x7d\xf7\x73\x13\xd2\x9e\x11\x67\x77\x91\xae\x90\xf9\xc5\x51\xff\xcc\xbd\x0e\x50\x21\x5e\x12\x49\xc6\x44\xfe\x75\x77\xeb\xcf\x66\x68\x42\x5c\x2c\xd2\xa0\x48\xdf\xe4\x41\x0c\xd5\x21\x38\xbf\xea\x46\xa8\xd7\x6f\xa2\xca\x86\xca\xd6\x2c\x31\x3c\x44\x83\xa3\xb3\xda\xc9\x88\x78\x75\xaa\xc9\xd7\x33\xa9\x40\xe2\xf8\xd6\xfe\x62\x44\xe5\x4f\x41\x83\x30\xc4\x9a\x27\x5a\xd2\x9e\x90\x90\xd1\x20\xb2\xf6\x44\x5e\xaa\x62\xd7\xae\xe2\x3e\x9c\xa1\x01\xd7\x88\xf1\x58\x2f\x37\x16\x1c\x71\xf0\xb1\x56\x37\x22\x4d\x64\xd4\xc1\x8f\x23\x78\x79\xe9\xae\x48\x02\x13\x3b\xed\xfe\x27\x71\x7e\xed\x34\x7a\x19\x25\x61\x12\xb8\x02\xc3\xef\xef\x72\x5e\x59\x89\x51\x42\x9d\xbb\x51\x16\xf5\xe5\xd4\xb9\x99\x94\x68\x81\x8c\x13\x3a\xab\x8f\xbf\xcd\xa0\x8f\x18\x8d\x23\xab\x4b\x77\x78\xfb\x40\xe7\x7b\x60\xf6\x69\x9c\x44\xd8\xc5\xdb\x10\x4c\x85\x7b\x48\xfd\x20\xd3\x45\x63\x46\x13\x4f\x4d\xf4\xf8\x3e\xc3\x93\xcc\x68\x42\x0c\xe9\x18\x4e\x9a\x63\x05\xed\x17\x12\x79\xa6\x57\x7f\x7d\xcd\xba\x99\x4f\x13\x19\x77\x8a\xfc\x97\x22\xab\x8f\x7f\x3c\x4f\x12\x6e\x94\xa6\x80\x79\xcf\xaa\x54\xaf\xd0\xac\xeb\x07\x71\x29\xd4\x11\x26\x7b\x10\xa5\x3a\x74\x2c\xef\x88\xf4\xc3\xde\x22\xcc\xb2\xfb\x4b\x51\x23\x0c\xf4\xdc\x86\x3e\xbe\xed\x4a\x23\x7e\x1c\x4b\xa9\x1c\x7a\x98\xb6\x13\x79\xa0\xa9\xcc\x28\x03\x82\x16\x12\xdd\x95\x21\x39\x0e\xa3\x3c\x8a\x91\x19\xe2\x6b\x0d\x95\x53\x47\x99\x35\x8c\x94\xf3\x14\x25\xb9\x16\xe7\xf3\xfd\x45\xfa\x9f\xa7\x3a\x44\xe4\x6a\xed\x39\xe5\xba\x03\x20\x91\x57\xc7\x7a\xfb\x8f\xa2\x7e\xed\xaf\x29\x08\xd7\x0e\x7f\x75\x70\x56\x74\x28\x90\xc8\xa8\x68\xcd\x4f\x57\x9d\xff\xaf\xf2\x28\x8a\xa7\xf7\x97\x0a\x8a\x7a\x7e\xa6\x09\x11\xa3\x25\x5b\xcb\xe2\xef\x55\xa3\xa2\x60\x0f\xf5\x28\xc5\x45\x65\x60\x69\x5c\x44\x9e\xdf\x95\xd5\x73\x79\xc6\x20\x60\xf2\x49\x64\xc2\x3c\x64\xff\x49\xbc\x4f\x67\x88\x0a\xac\xea\xed\x80\xa2\x65\x26\xc3\x4e\x55\x1a\x20\xbe\xa9\x9d\xb6\x56\xae\xbd\xfb\x0c\x4a\xda\x7a\x8b\x45\x5c\x21\xd7\xf7\xa8\x59\x82\x51\xa5\x15\xe6\x1c\x6f\x2e\x55\x61\x69\x4c\x66\xda\x93\x26\xd7\x33\x56\x33\xa7\x9d\x6e\xd3\x5b\xd6\xa1\xc6\xb0\xf2\xfb\x6a\x7d\xd8\x6f\x0e\xcb\xcd\x97\x9d\xbf\x92\x8e\x2c\x95\x82\x85\x52\xff\x1a\x31\x70\xfb\x2b\x22\x6c\x2e\xdd\xb6\x8f\x59\x63\x6a\x71\xa0\xdd\x10\xa0\xb6\x27\xe3\xc5\x55\xa4\x86\x61\x37\xd5\x8c\x21\xb5\x07\xae\x33\x75\x41\x0c\xf0\x6d\x09\xf5\x53\xd9\x7c\x03\xdf\x99\xc7\x28\x44\x36\x99\x7e\x10\x5a\xdf\xc2\xa9\x54\x1f\x49\xb8\x0e\x2d\x81\x51\x04\xe9\x10\x4f\x96\xd8\xcd\xae\xf3\xbb\xb2\xda\x1f\xb3\x2e\x8b\xc2\x82\x30\xe4\xfd\x67\xbc\x43\x6d\xf4\xb1\x00\xd7\x3f\x60\x2c\x1c\x18\x31\xa4\x33\xff\xcb\x47\xa3\x2c\x88\x28\x5a\xc8\x21\xd2\xf3\x51\xe8\x79\x74\x28\x43\xf0\x00\xeb\xba\x03\x95\xa8\x86\x93\x17\x2b\xac\xd8\x6e\x55\x37\x20\xf2\xa5\xa8\xf4\xf7\xac\x39\xee\x4a\x95\x89\x7c\xad\x61\xd4\x3e\x3a\x39\x71\x48\x05\x26\xab\xb1\xcd\xb9\x53\xf2\x65\x2c\x64\x01\xe0\xfb\xad\xcf\x62\x9e\xee\x9c\x31\x12\x47\xc8\xf8\x5d\x5f\x15\x65\x18\x91\x2c\xb1\x9e\x7f\x79\x86\xaa\xb1\x2c\x23\xfb\xb2\xcb\x2a\x8e\x47\xc7\x86\x43\xd8\x91\x84\x8a\x4a\x1d\xdf\x07\xec\x98\x6e\x50\x42\x8d\xcb\x06\x61\x94\xed\x2b\x28\xe3\x5b\xa2\x5a\xdb\xf0\xd4\x5a\x8d\xfb\x52\x0f\xce\x40\x21\x41\x16\x2c\x34\xdb\xe8\xae\x96\xe7\xb2\x06\xfd\x7b\x56\xbc\xe8\xf2\x34\x25\x66\x62\x8c\xe9\x10\x57\x74\xa6\x4a\x44\x9f\x76\x93\x98\x31\x88\x31\xec\xd6\x65\x9e\x8b\x6a\xaa\x08\xc8\x18\xe7\x09\x02\xde\x6e\xd6\xfb\xf5\xdd\xea\x0f\xff\xe7\x34\x24\xe0\x4a\x5e\x2e\x0b\x30\xc0\xe4\xb0\x94\x71\x47\x8a\xe3\x5a\xe2\x91\x83\x53\x9c\x27\x6f\x2b\xd5\x22\x76\xdd\x34\x8b\x37\x51\xb9\xda\xe8\xc0\x7b\x64\x82\xc5\x18\x87\x7b\x31\x93\x3e\x4e\xed\x06\x30\xf4\x88\x10\x22\x33\xe9\xe0\xe0\xf3\x89\x3a\x26\x38\xc7\x86\xe3\x69\x4f\x35\x63\x42\x86\xa9\x05\xee\x23\xbf\xfb\x35\x78\xb9\x1d\x42\x31\x3c\x59\x3f\xad\xf7\xeb\xc5\xc3\x61\xb7\x5f\x6c\xf7\x3d\xdd\x19\x63\x32\x34\x98\x7f\x39\xc8\x8b\xdb\x7f\xef\xaa\xf2\xb4\x7b\xaf\x9b\x89\xf8\x34\x63\x52\x10\x7c\xb7\xa5\x0d\x20\x7e\x89\x0d\x99\x31\xa9\x24\x77\xc2\x74\x97\xf6\x93\x65\xc5\x33\x22\xba\xea\xfe\x26\x55\x18\x44\xda\x8b\x04\xd6\x96\xee\xeb\x83\xa8\x8e\x29\x00\x2c\x29\xed\x84\x69\x23\x15\xab\x41\x23\xf2\xfb\xbb\xee\x76\xdc\x40\x88\xb4\x8a\xbd\xd2\x56\x96\xbf\xcf\x6c\x09\x0c\x22\x30\x91\xe7\x6f\x3a\xe7\xef\x53\x65\x34\xc6\x7c\x83\x8a\x84\x66\x53\x2c\xcb\xfc\x72\x2a\xa6\x23\xa4\xc1\x5a\x46\x2f\x30\x66\x6b\x6b\x1f\x44\x33\xbf\x88\x7d\x19\x3f\xb4\x61\x94\xdb\xf2\xc0\xa6\x7d\xed\x57\xbc\x18\x8c\x19\x23\xf1\x33\xc2\x4f\xa8\x54\x56\xc3\x43\xd9\x0b\xf3\x0f\x89\xda\xf9\xff\x78\x40\xd5\x24\x4f\xc1\x03\x41\xb0\x12\xd5\x71\x7f\x34\xa5\xe3\x77\x63\x3c\x90\x04\xd5\x46\x4e\xe5\x8f\xae\xff\x67\x34\xb1\x79\x18\x87\x41\xea\x75\x0a\x10\xf6\x32\xdb\x83\x30\x9e\x1b\x3c\x54\x0a\x45\x49\x84\xd6\xcf\x65\x9e\xa9\xf7\xdf\x2e\x43\x61\xed\x89\x84\x22\xe3\x51\x18\xa1\x13\xee\xb4\xbd\x6c\x22\xa5\x33\x0e\x3c\x0a\x29\x77\xac\x0e\xab\xfd\xfd\xd7\xdd\xed\x15\x49\x18\xe3\x11\x11\xb1\x55\x63\x38\x65\xcd\xad\x68\xac\x60\xcd\x77\x80\x57\x5f\x52\xe3\x84\x31\x6c\x71\x54\x65\x75\x0d\x7b\x1a\x7d\x18\x1e\x27\x96\x2f\x64\x5d\x89\x73\xd6\xdd\x47\xec\x32\x9e\x98\xce\xb3\x8b\x6a\xb5\x5d\x32\xc6\x7e\xb5\x5b\xf5\x5f\x83\xfc\xd2\x2c\x37\x11\xe3\x31\xb7\x1e\xc4\xb3\x78\x47\x64\xd9\x3f\xbc\xe9\x58\x5a\xee\x15\x5b\xc4\xfc\xd6\x1a\xe2\xf9\x38\x9f\xc7\xca\x76\xbf\xdc\x82\x82\x2e\xec\xe3\x49\x4c\x63\x5f\xd5\xec\x21\x2d\xc8\x12\xf1\x70\xcd\xc6\xca\x78\xc2\xe2\x58\x7b\xdd\xc3\x70\x58\x5d\xe0\x89\xe0\x1e\xfc\xbe\x14\x85\xc6\x1d\x01\xb7\xa9\x45\x55\x89\xf7\x6e\x94\xb4\xf8\xab\x5e\x5d\xbe\xee\xf9\x72\xdc\x18\x4a\x14\x56\x0a\x50\x55\x58\xf6\xae\x04\xa7\xa0\x7d\x18\x84\x97\x9e\x99\x07\x2c\x0e\x91\xe7\xe0\x69\xfb\xe8\x7f\xc5\x49\x88\x71\xf5\xd7\x22\x6b\xde\x47\x55\x98\x4e\xa9\xed\xff\x50\x66\xe9\x26\x2d\xe7\x14\xc5\xe9\x07\xee\x69\x1d\x3d\x43\xb5\xba\x7a\x69\x3c\x75\xea\x2a\xa2\xd0\x87\xa2\x7f\xf9\x69\x1a\xc5\xbc\xb7\xf3\xbf\x67\x1d\x80\x8f\x8b\x30\xc0\xde\xe9\x53\x59\xb4\xce\x5c\xa7\xc9\xcb\xb8\xa0\x12\x27\xa1\xd5\xc5\x22\x87\xe7\xed\x0a\x55\x37\x6e\x36\x4f\x5f\x77\xdd\x20\x66\xab\xc7\x35\x34\xb8\x25\x79\x03\xc8\xfd\x71\xb0\x5d\xf6\xbe\xdb\xb5\xcc\xaf\xe0\x9a\x6e\xa4\x94\x26\x72\x35\xb4\x95\xa8\x8a\xac\x78\x71\xda\x7b\x37\xef\x5f\xca\x52\xd7\x33\x95\x4a\xae\xa3\xc8\x6a\x12\x1d\xcb\x4b\xae\xef\x84\xe7\x70\x60\x5c\x53\x30\x3d\xb0\xe7\xee\x02\xf9\xf4\xa7\x29\xf3\x95\x87\x7d\x36\xd0\x1b\xfa\xa4\x5a\xc1\xb5\x4e\x69\xd8\x91\xdb\x61\x39\x0b\x29\xf2\x26\x5e\x11\x07\x60\xa9\x95\x5f\x3e\x9d\x2f\x8d\x65\x39\x86\xea\xc7\x60\x0a\x9b\x38\xc6\x5d\xd5\x57\xbb\xf1\xa3\xb6\xfe\x2c\x88\x79\xc2\x41\xc6\x0d\x0b\x88\x73\x1e\x0e\x67\x8b\x8d\x3d\x54\xa0\xe7\x72\xc1\x69\x10\xa6\x18\x02\x58\xfe\x81\x5b\xc8\xb3\x1f\x8e\xde\xc3\x92\x81\xe6\x65\x31\x83\x3b\x99\xfb\xaf\x7f\x4d\x4e\xcc\xe2\xc0\xe2\xe8\x54\x75\xc9\x9a\x27\x51\xa9\x2b\xa6\xb6\xa1\x23\x96\x06\x3a\x92\x5e\x23\xbb\x2c\x4f\xd8\xca\x32\x39\xa5\x21\xc6\xd5\xbe\x16\x7d\x8b\xc4\xed\x80\x0a\x77\x80\xde\x76\xbf\x89\x48\x84\x7d\xb4\x47\xd1\xa8\x63\x7d\x91\xb5\xaa\x32\x39\xa5\x0d\x66\x29\x51\xd6\x3b\x75\x3e\xe5\x63\x96\x43\xdd\xb4\x8f\x3e\xbe\x03\xa2\x09\x27\x1d\x90\xb9\x7a\x9f\x6d\xfb\x66\x69\x4c\xc1\x17\x79\xd7\xd8\x64\xe2\xfe\x9e\x24\xc6\x58\xf2\xb3\x9f\x5f\xd6\xdb\x87\xee\xcf\x8c\x09\xf7\xe4\xab\xd3\x39\x2f\xdf\x51\x37\x55\x4b\xa1\x5e\x37\x1f\xc0\xad\xd3\x44\x4b\xe5\xfc\x98\x29\xb6\x79\xf4\x56\x59\x12\xe1\xa2\x5d\x68\xbd\xfb\xbe\x28\xb4\x85\x9b\xcc\x37\x7c\x4f\xff\xfd\xe0\xf0\x0c\x96\x9e\xa5\x4c\xda\xda\x55\xfb\x9b\x57\x1b\x12\x3e\xab\xe6\x8f\x30\xf0\x0f\x99\x2a\x5b\x85\xfd\x71\x86\x76\x52\x1e\x7e\x87\xb2\x7b\x5f\xa9\x66\x84\x0d\xb3\x17\xd5\x4a\x95\xb5\xf5\x0b\xdd\x10\xc1\x2c\x45\xef\xf7\x63\x99\x8d\x6a\x0c\xa9\x00\xe3\x35\x89\x06\xe9\x9e\x54\xc6\x09\xb5\x0e\x2b\x64\xaa\xc4\xa4\xca\xed\xf0\x70\x1a\x23\xfb\x64\xfd\x96\x35\xea\xb8\x3b\xe7\x99\xed\xb6\x1b\xeb\xfe\xf4\xfe\x76\x2a\x53\x2f\x54\xde\x3c\x80\x78\xb9\xc0\xb6\xf4\x84\xbf\xc3\x19\x30\xeb\x49\xa6\x2a\xd0\x38\x0b\xb3\xe2\x87\xa8\x32\x51\x34\x37\xd5\x20\xb6\x4b\x75\x00\xca\x25\x94\x1e\xa1\x69\x1f\xbf\x39\x0e\x98\x46\xfa\xaf\xae\x1d\xe9\x79\x0d\xb9\xd1\x60\x05\xdb\xbb\x93\x18\x23\xe3\xce\xe4\x74\x34\x02\x2c\x85\xd0\x72\x40\x2d\x54\x59\x89\x4c\x8b\xc7\xb2\xc8\x94\xf8\x2e\x8a\xa6\xde\x97\xbf\x17\xe5\xdb\xfe\x08\x4f\xf0\xb6\x28\xea\x37\xa8\xee\x45\x7d\x1c\xfb\x5b\x29\x24\x29\x46\x48\x58\xd4\xd8\xe2\xa6\x3e\xea\xe1\x9b\x3c\x2b\x48\xcb\xf0\xd7\x15\x08\xb1\x99\x66\xbe\x7a\x94\x9a\x58\x23\x28\x7c\xb9\x5a\xdd\x2e\x37\x6b\x5f\xcb\x4c\x0d\xb5\x1d\x3b\xab\xcd\x6e\xb5\x5d\x5e\x53\x69\x8f\xe6\xb8\x01\x9b\x30\xa9\xc0\x64\x79\x6e\xb7\xf6\x0f\x81\x62\x22\x48\x55\x44\x2c\x35\xdc\x30\xb8\x1c\xaf\x2f\x11\x88\x04\xfb\x67\x0f\xb6\x96\x86\x71\x42\x1b\x70\x3f\x42\xa5\x8e\xa2\x2f\xee\x8c\x1e\x47\x84\xa9\x8c\x86\xe0\xa5\x55\x73\x7c\x14\xaf\x1f\xd5\xce\x44\x28\xad\x74\x9b\xd0\x7a\xf2\x96\x66\x6d\xaa\x08\xa5\x46\xec\xb1\x3f\xfd\xae\xb9\x74\xdb\xb3\x08\x35\x45\x7c\xc4\x9f\x9b\xcd\xe1\xeb\xd3\x7a\xdf\xfd\xdd\x24\x48\xe5\xe7\xf2\x2c\xdf\x91\x09\x79\x52\x97\xed\x5e\x4e\x14\x30\x8f\x96\x42\x57\x6f\xcc\xc6\xe7\x07\x25\x24\xf6\x69\xd2\xee\x45\x27\xdd\x29\xa8\xc2\x6c\xc3\xed\xe5\xaf\x0b\xdc\x54\xf0\x96\x15\x2f\x4e\x34\xd0\xdf\x52\xc4\xb8\x25\xe3\x6e\x57\x9c\xab\x92\x7c\xf0\x1d\x08\x48\x2c\xc5\x20\xb0\xe3\x5e\x54\x7a\xe9\xa9\xa0\x99\x88\x63\xdb\x16\xef\x7a\xa1\x91\xda\x00\x65\xa8\xfc\x71\x60\xca\x02\x7d\x2d\x13\xd4\xcd\x18\xf2\x26\x92\xc8\x20\xbc\xca\xcb\x8c\x7d\x29\x73\xdd\x1d\x4b\x35\xd6\x78\x6b\xa7\xee\x73\x2d\x01\x35\x70\x9c\xaf\xda\x8d\xfd\x49\x94\x46\xa3\xa8\xab\x89\xe2\x0d\x13\x54\xd8\x0c\x99\x4d\xc8\x6f\x17\xfb\xd5\x21\x4a\x0e\xcf\xab\xed\x72\xf5\xb4\x1f\x39\x4e\x82\x91\x34\xf0\x6a\x03\x3e\xf2\xec\x64\x53\x98\x60\x3c\x88\x2d\xc9\x9e\xc9\x31\xef\x7f\xf3\x3e\x83\x52\x11\x9c\xc7\x48\x38\x66\xa9\xdf\x6f\x32\xdd\xe7\x7f\x05\xe7\x86\xf5\xa2\x15\x4e\x95\xd1\x59\xb4\xe7\x76\x55\xfd\xdc\x8b\xfa\xf5\xb7\xf1\x03\x4f\x9e\x7b\x76\x82\xa7\x2a\x45\x9d\xa4\xe6\xa5\xda\x59\x36\x8f\x91\x4a\x32\x13\x22\x22\x10\xf9\x04\x38\x36\xdd\x79\xea\xde\xf1\x89\x44\x12\x88\x5e\x83\x12\xad\x67\x85\x1c\x32\x59\x6f\x82\xa7\x3f\xe1\xb6\xf3\xb8\x86\xe6\x8f\xa6\xf4\x11\x97\x90\x11\xc5\xea\x64\x73\xcc\xea\x75\xbd\x3f\x22\x0b\xe1\xf8\x97\x32\x26\xd8\x69\xfd\xb5\x58\x96\x85\x99\x5f\xe9\x32\x89\x31\xfe\xfb\xb2\xda\x1f\x1e\x17\x7f\x1c\xbe\xae\x9f\xf6\x9d\x1e\x12\x13\x52\x44\x51\xe2\x80\x45\x7d\x6b\xb4\x3b\xa8\x34\x47\x30\x72\x5e\xbe\x61\xcd\x0b\x75\x70\x26\x9f\x0b\x52\xe0\xed\xdd\x1f\xdf\x65\x95\x69\x57\x3d\x44\x82\xa7\xf1\x38\x13\x2a\xee\x7b\x42\xdb\xf9\x6f\x7d\xdf\xfe\x20\xba\xb6\xd0\x6e\x27\x6a\x3e\x3b\x28\x4c\x44\xb1\x9f\xd1\xdb\xeb\x4d\xbb\xee\x67\x09\x66\xe7\x57\xa8\x31\x31\x8f\x7b\x72\x99\x6d\x99\x8f\x23\x59\x3e\xd8\x45\x85\x31\x29\x76\xd1\x89\x4b\x53\xba\xdd\x7e\x82\xe5\x90\x01\xd3\x18\x81\xb4\x7e\x5c\xf1\x92\x83\xe5\xc6\x53\xcb\xbc\xbc\xe8\xf5\x66\x7f\xa5\x33\xc7\x64\x00\x01\x66\xad\xee\x84\x82\x3d\x28\x5f\x87\x95\x61\x2c\xa2\xde\x09\x3f\x97\xb5\x98\x94\x10\xfd\x38\x1a\x63\x6c\x27\x2f\xef\xcb\xcb\xb9\xfb\x35\xb5\xbb\x0a\x26\x6c\x44\xbe\xc5\x76\xe1\x2b\xc9\x58\x26\x43\x16\x29\x27\x97\xf1\xf3\xe7\xb5\x92\xd6\xaf\x01\xd4\x65\x68\x12\xed\x66\xeb\x54\x71\xc2\x8d\x88\xc2\x04\x8d\x49\x1f\xe9\x3b\xe9\x96\x5b\xf8\x01\x79\x97\x40\x91\x51\x14\xa0\x37\x79\x29\x90\xaf\x6e\x7a\x16\xaa\x84\xec\x6d\xe6\xa3\xf8\xd9\x27\x93\xbc\x3f\x26\x49\xc4\xd0\x4f\x3d\xdb\xe4\x69\xe7\x0d\x8f\xb0\x97\x32\x0e\x28\x12\x5c\xdd\x76\xfd\xe4\x4c\x26\x81\xc0\x52\xd0\x8b\x18\x2f\x74\x99\xc4\x29\xe6\x65\xdb\x20\x68\x66\xbe\xcb\x24\x91\xc6\x13\x14\xe6\x99\x7a\x7d\x84\x46\xe8\xeb\x4f\x4d\x13\xab\x5f\x53\x23\x05\x49\xd3\x0b\x7d\xce\x87\x8a\x92\x71\x8d\xa1\xbd\xa9\xca\xd3\x3d\xfc\x5c\x1e\x85\x83\xf6\x87\x7e\x80\x88\x3d\x6d\xfa\x76\x7f\x78\xde\xae\x97\xab\xc3\xfa\xe9\xd0\x5a\x61\x6f\x80\x25\x53\x01\x36\xb8\x77\x59\x44\xc9\x74\x12\x25\x03\x6e\xf2\xe7\xd2\xca\xdc\xba\xc3\x9c\x04\x58\x43\x6a\xdd\x11\xf4\x1c\x26\x4f\xc1\x39\x45\x26\xb3\x1c\x4c\x93\xb2\xc9\x41\x19\x33\x6c\x34\x41\xc1\xbf\x9b\x4b\xa1\xf3\xbe\x55\x4e\x4a\x6a\xfd\xa5\x93\xf8\xf9\xdd\x33\xbe\xb9\x43\x2a\xe6\x98\x88\x78\xfc\x73\xb7\x5f\x6d\xff\x5c\x3e\x2c\x76\xbb\xf5\x72\xe0\x54\x49\x1d\x26\x88\xfa\xf4\xbc\x24\x6b\x8f\xef\x41\xe3\xd2\x33\x15\x33\xa9\x69\x2a\x68\x3f\x4b\x6e\x2f\x90\x7b\x03\x2a\x21\xe0\x98\x15\x3d\x8b\xaa\x79\x47\x77\xf1\xa3\x19\x3f\x9e\x79\x90\x80\xed\x41\x68\xe7\xef\x03\x98\x66\xd4\x68\x24\x21\xb5\x41\xd0\xcd\x9f\x43\x5b\x29\x41\xc4\x08\x19\x79\xf3\x15\x4f\xd0\x36\x35\x30\x39\xb9\x50\xe8\x41\x8f\xb6\xeb\xe1\x64\x35\xca\x76\xe9\x59\x95\xe6\xe5\x51\xe4\x39\x14\x1f\xcb\x34\xcf\x36\x08\x8e\xbc\x4e\x15\x85\xc6\x8b\x33\xde\x65\xb5\x12\xf9\x84\xd3\x6c\xe4\x44\xab\x28\x11\x88\x73\x68\xc3\x76\x47\xe3\x33\xbd\xb6\x77\xc2\x54\xc4\x43\x94\x2d\xf4\x35\x0c\x14\x15\x29\x9a\xd1\xbb\xfe\xe0\x2a\x82\x20\x4f\x66\x07\xb0\x19\xd2\x7d\xb9\x31\x84\x28\xee\xb2\x5d\xeb\xa2\xe1\xad\xa5\xbf\x79\xf7\x5a\xed\xe1\xb8\xdb\x9d\x29\x92\x10\x6c\x01\x7d\xf8\x7d\x79\x45\x79\xc4\x14\xa1\x0c\x01\x44\xeb\x6a\x8c\xf4\x51\x44\x50\xcc\x9e\xfe\x7e\x14\x8d\x38\x75\xd0\x32\x45\x84\x46\x0c\x04\xe2\x14\x50\x12\x74\xd6\x33\x56\x04\xa2\x04\x3a\xaa\xf8\x85\x52\x50\xd7\xb7\xd0\xc6\xc6\xf3\x51\x87\x8a\x13\x8e\x2d\x8b\xff\xf9\xdb\x8b\x98\xfc\x62\x39\x53\x25\xa1\xc4\xce\xe7\x1f\x19\x58\x50\x6b\xbd\xeb\xfd\x40\x95\x68\x8a\x35\xc8\xd3\x25\x6f\xb2\xe3\x20\x38\x1a\x9f\x84\x46\x16\xaa\xe2\x59\x36\x5a\xf3\x75\xbd\x53\x29\x0a\x04\x33\xa9\xca\x6a\xab\xcc\xfb\xbc\x8a\x19\x22\x5c\xc2\xe9\xe6\xcd\xe6\x4f\xc5\x50\x43\xce\x0d\xe3\xb1\xdd\x4b\x11\xef\x79\xf3\x8e\x92\x3d\x23\x5a\xb5\xd9\xb9\xe2\x7e\x9c\xca\x20\x74\xe5\xf7\x55\x73\x1c\x26\x4d\x55\xaa\x23\x84\x07\xda\x94\x90\xe5\x3b\xbd\x0e\x88\x95\x08\x0d\xee\x58\x27\x84\x4a\x1e\x54\x79\x3a\x5d\x30\x9b\x69\xb1\xb7\xdf\x44\x1b\xbe\xfa\xb1\x51\x94\xf2\x71\x5e\x12\x2b\x71\xe3\xaf\xe3\x07\xcb\x28\xd5\x3d\x09\xce\x42\x66\xdf\xa0\xaa\xfb\x42\x93\x92\x61\x80\x2e\x5c\xfb\xc4\x05\x54\x5f\xab\xbc\x3b\x42\x43\xe9\xf3\xbd\xc7\x72\xf0\x4c\x32\x25\x5e\x67\xf5\x70\x44\x7e\x99\xc9\x97\x51\x31\xc7\x8e\x0f\xbc\x37\x17\xf5\xb8\x43\x9a\x18\x24\x44\xfc\xfa\xf4\xb0\x59\xfe\x8e\x1b\x45\x77\x28\x21\x18\x4b\x3e\x7f\xbd\x79\x58\x2f\x51\x6a\x78\x77\xd8\x3d\xaf\x96\xeb\xc5\xc3\xe1\x2b\x52\x58\xf5\x4a\xea\x4c\x69\x1a\x63\xab\xdb\xc3\xea\xe9\xf6\x8f\x81\x65\x56\x5a\x5a\x6f\xaf\x80\xb7\xdd\xd1\x75\x57\x85\x1f\xb8\x0a\x4a\xab\xd0\x36\xff\x76\xc9\xae\x7d\xd9\x9a\x95\x55\x73\x1c\x33\xd7\x32\x05\x84\xa3\x6f\xf7\x0d\xaa\x06\x7e\x1e\xc6\x4b\x62\x3c\x9b\x20\xb5\x8d\x9e\x2f\xd0\x6c\x7e\x40\xd5\xbe\x24\x7f\x16\x13\x32\xbc\xa0\xf7\x10\x9f\xab\xec\x54\x56\x3a\x13\x96\x16\xfa\x33\x31\x02\x7f\x06\x66\x2b\x08\x4e\x56\xbf\x53\x1e\xe9\xae\x90\x86\xe8\x43\xe5\xa2\x6e\x7e\xcf\xd4\x6b\x69\xcc\x20\x59\xa3\x8c\x36\xca\x4b\x81\xa0\xeb\xbf\x2e\x54\x79\xca\xfa\xb2\x93\x1d\xa7\x03\x4a\xb1\x91\x5c\x97\xd8\xd2\xe3\x7e\xae\x43\x62\x9c\x06\x29\x42\x83\xdb\xfb\xfd\x06\x85\x1e\xf8\x6a\x23\x2b\xaa\xc3\x84\x61\x01\xe3\xb9\x2a\x4f\x43\xab\xa6\xa3\xc8\x02\x30\x6b\x68\x0e\x99\x2a\x8b\xec\xaf\xc3\xb9\x82\xc3\xeb\xbb\xb2\x12\x90\x87\xa2\x63\x34\x1b\x3d\xbf\x26\x11\x05\x83\x0e\x81\x6d\x3e\xbc\xbb\x7c\xd0\x3e\xab\x89\x0e\xb0\x3e\x6c\x5d\xc0\x55\x73\xfc\x8c\x51\x8a\x69\x02\xc6\xc4\xbd\x32\xd1\xb8\xc3\x66\xfc\x85\x75\x1c\x46\x09\xe9\x58\xec\xb0\x37\xff\x5c\xf6\xb0\x26\x1d\x47\x82\xcb\x3e\x0b\x37\xce\x02\xe9\x38\x4d\x83\xb4\xfb\xb5\x95\xaa\x9c\x28\xac\x33\x1d\x43\x8a\xdd\xc6\x36\x4b\x64\x95\x4a\x3f\x2d\x16\xe9\xd8\x24\x08\x3d\x7a\xcb\x0a\x5d\xbe\x85\xd7\x7b\x8c\x4e\x8c\x80\xce\x8b\x87\x53\x76\x39\x0d\x61\x88\x9a\x4a\x85\x74\x4b\x3d\xe9\x09\x66\x15\xe6\x7a\xc1\x34\xd5\x61\xec\xa2\xcd\xe7\xb5\x6b\x9d\x48\xfd\x89\x52\xaa\xa2\xd8\x93\x19\x16\xb5\x85\xba\xee\x44\xde\xa1\xf4\xae\x1a\xb8\xb4\x88\x2c\xc7\x8b\x25\x72\xbc\x6f\x63\xea\xe2\xb9\xac\xb3\x81\x68\xcb\xbf\x06\x62\xaf\x3e\xe0\xd0\x22\x4a\xad\xfa\xb8\xaa\x16\x27\x74\x93\xef\xca\xea\x8b\xf0\xcb\x41\x8b\xd6\x2f\x6d\xed\x84\x90\xc3\xd6\x5c\x77\x54\x0a\x93\xf6\x44\x3b\x98\xb0\x5c\x14\xfa\xe6\x52\x5d\x09\xe5\xfa\x1f\x98\x04\xd1\x2e\x37\x55\xa6\x67\x5c\x9e\xf9\xd9\xa2\x40\x61\xb8\xf1\x1d\xa1\xad\x18\xa4\x15\x13\xf9\x6a\xa6\x75\x68\x29\x8d\x34\xd4\xed\xc7\x51\xd9\x90\x28\xc6\x8f\x61\x31\xd6\x7d\xe4\xe5\x7d\x9c\xe4\xea\x8e\x4b\xe9\x1a\x0a\x74\x56\xbc\x8c\x80\x44\x1a\x68\xca\x6d\x86\xec\x7f\x2f\x75\xd3\xe7\x7e\x34\xf0\x00\x73\x37\x0e\x5a\xe6\x3b\x64\x3f\xa9\x4f\x0c\xbb\x4b\xc7\xb5\x5e\x0d\x3c\x44\x7f\xdc\x5c\x0a\xbd\xbb\x28\x05\xa0\x07\xb7\xa0\xc0\x96\x68\xdb\x05\xb3\x9e\x7a\x14\x6e\x90\x71\x80\x22\x79\x79\x1f\x16\x19\xfc\xd1\x24\x44\x5c\x82\xa8\xd4\x31\xfb\x01\x1d\x4d\xee\xe4\x4d\x18\x88\xb4\xe3\xd5\x5f\x35\xc7\xbb\xb2\xda\x81\xe7\x83\x66\x10\xc4\x02\x9b\x6b\xb2\x22\x6b\xd6\xc5\x8f\xac\x81\x51\xc3\xc5\xe8\x4c\x10\x50\x8e\x25\xab\x85\xd6\xdd\xef\xa5\xd0\xb2\xe3\xe6\xef\xfe\xaa\x19\x37\x0e\x04\xdf\x1a\xa5\xfb\xf2\x04\x8b\xd3\xe4\x13\x41\x48\x00\x9c\xcb\xe8\x82\xcd\xa9\x33\x02\xa1\x00\x8f\x7a\x41\xc8\xaa\x6f\x1c\x82\x50\x59\xab\x83\x3c\x21\xf6\xc6\x97\xa5\xf6\xb6\x19\xa2\x88\x23\xc9\xae\xcc\x5e\x1e\xcb\x02\xde\xbb\xbf\x0b\x8a\x0a\xf3\xf6\xfb\x0e\x31\x30\x7e\x80\x8e\x84\x25\x8f\xaf\xa0\x0f\x61\x3f\xb7\x36\x40\x88\xc6\x0e\x8f\xdd\x9b\x69\xe6\x78\xa9\xaf\xdd\x43\x88\x83\x58\xf9\x36\x81\xce\x27\x80\x98\x30\x4c\x2e\x2d\x17\xdb\xf5\x70\x8b\x80\x38\x4e\xd0\xf1\xbd\xdb\x3c\x6e\xba\xbf\x31\xea\xa1\x8e\xcf\x48\x80\x6c\xad\xca\x84\xaa\x8d\x41\x2c\x54\xa4\x06\x8d\x97\xdd\xb3\xc6\x3a\x0e\x6d\xc3\x7e\xa9\x17\xa3\xcb\x25\x11\x91\x98\xfc\x7b\x86\xba\xec\xfe\x48\xc2\xd4\x8b\xca\x5f\x9a\xe3\xcd\x3b\xbe\xf0\xd1\x53\x25\x31\xa1\x4e\x42\xad\xc9\x61\xbe\x8c\x05\x89\x09\xf9\xb5\x9e\xec\xb6\xb5\x8c\xd3\x3a\x1b\x50\x4e\xd1\x69\xf3\x6c\x37\x87\xb8\x3b\x22\x15\x02\x3a\xd0\x79\xfe\x05\xa6\xd6\xf6\x17\x06\x4d\x4f\x63\xad\x4a\xbb\x52\x2c\x79\xad\x3f\x25\x0b\x20\x4d\xbd\x84\x6a\x6e\xb0\x35\x3c\x1f\x90\x9f\xfb\x85\x0d\x8c\xc6\xb4\x97\x9f\xbb\x85\x1c\x5e\x06\xe0\x56\x37\x88\x87\x56\x01\xe8\x8f\xcd\x37\x7f\x01\x1e\x71\xdc\x54\x2c\x7d\x69\xf7\x57\x16\x3b\x7e\xda\xba\x69\x1d\xfc\xc9\x2a\xe1\x4a\x63\x27\x8c\xcc\xf4\xc6\xcc\xe7\x23\x80\x6b\x82\xc6\x04\xdd\x85\xa8\x3b\xb1\xa1\x16\x88\x77\x72\x76\xec\x97\x09\x03\x19\xa4\x41\x84\x14\x78\xa8\x85\x93\x46\x93\x7b\x4a\x03\x8b\x62\x79\xb0\x6d\xae\x96\xc7\xfa\x9f\xba\x22\xfc\x6f\x89\x65\x0e\x44\xc3\xb7\xbc\xd4\x4d\x79\xfa\x40\xc7\x9a\x41\x1a\x0b\xb4\x10\x8e\xae\xe5\x0e\x86\xc2\x7a\x0c\x52\xce\x81\x75\x62\x63\x0b\x2b\xa0\x9d\xe5\x59\xf3\x3e\xc8\x3a\x40\x2a\xad\xca\x83\x8d\x8f\x77\x6f\xe2\x9a\x37\xee\x9a\x9b\x09\x44\x64\xb0\x7b\xbf\x11\xf5\x6b\xbd\xeb\x99\x1d\x40\xc4\x44\xda\x36\xfb\x52\x5f\x14\xe8\x9b\xaa\x2c\xfe\x86\xa5\x38\x77\x13\x5c\x80\xe5\xb9\x69\xd7\x76\x6b\x0e\xe6\x44\xfc\x26\x57\x93\x89\xe9\xa4\x30\xb2\x0f\x95\xe9\x27\x5f\x5d\x3a\xae\x6a\x6b\xcc\xb0\xa5\xae\xcf\x5a\x7f\xd6\xfb\x38\x39\x8f\x0a\x02\x35\x50\xc1\xc2\xdb\x9d\xf0\x2c\x4e\x7e\x40\x39\x56\x40\xde\xb2\xa2\xc8\x8a\x17\x07\x45\xbe\x9b\xfa\xa7\xa0\x24\x8f\x86\xda\xb7\x8b\x42\xff\x0a\x7f\xc2\xf4\x6a\x4a\x21\xcd\xb8\xd3\xc1\x42\x43\xe5\xed\x41\x81\x24\x8f\xdd\x8c\xd7\x09\xf7\x6d\xf2\x6e\x85\xcf\x55\x9a\x40\x0b\x1d\x88\x5e\xae\xda\xea\x5e\x60\x61\xaa\x77\x05\x00\x12\x13\xa4\x9d\x50\x84\xc8\x27\x62\xd0\x0c\x40\x0a\xec\x86\xd1\x7d\x13\x8c\x3b\x62\x12\x81\x85\x67\x0d\xf2\xf2\xb2\x6b\x2e\xc6\xf4\x47\x94\x4c\x07\xb0\x1e\xef\xce\x0d\x8b\xde\x60\xa4\x70\x4c\xb8\xad\xb3\xbe\x40\x6a\x65\xd0\xe3\xe2\xe8\x9c\xbb\x60\x82\xd0\x82\xd1\x56\xfb\xfb\xf1\x97\x30\x41\x6c\x49\xe7\x1f\xd6\x8f\xeb\xfd\x61\xbf\x5d\x3c\xed\xee\xda\x30\xf2\x79\xb5\x5d\x6f\x7c\x33\x8a\x09\xa8\x2d\xd8\x1c\x70\x6d\x62\x73\xcc\x42\x96\x3f\x60\x9b\x0d\x96\xb7\x1b\x1b\x46\x80\xa9\x09\x9f\x4d\xfa\xe8\xa3\xfe\x77\x18\x84\xff\xe3\xcd\x8a\x09\x99\x25\x4c\x39\xf5\xed\x6c\x23\x1c\xc0\xf8\xd3\x9b\x38\x8a\x30\x69\x09\xed\x48\x1b\x7c\xf5\xa9\x02\x43\xd3\x00\xa1\x1d\x47\x51\xbb\x16\x33\xd0\x77\x65\xf5\xe8\xd1\xe1\xfe\xb1\xa8\x88\xd0\x6d\xb1\xc4\x8a\x4b\xa8\x9a\x29\xf1\xf8\x78\x35\x1a\x16\x72\x91\x0e\xd2\x2e\xeb\xee\xa3\x1b\x46\x39\x66\x4a\x57\x45\x56\x1f\x33\xdc\xec\x27\xbb\x83\xe1\x41\x8a\x3e\xcb\xed\x7b\x21\x4e\x99\x7a\x7e\xaf\xc4\xa9\x43\xd6\x19\x4e\x62\x6e\x09\xed\x5c\x37\x05\xe6\xd2\xfc\x41\x61\x5b\xe3\xc0\x37\x6a\xbb\x0d\x6a\x76\x19\x1a\xae\x6c\x3b\xe1\xa5\xce\x8a\x97\xa5\x28\x7e\x88\xfa\xa6\x3d\xa7\xa8\xb2\x0e\x61\x66\xb8\x36\x58\x47\xb1\x2a\x63\xeb\x09\x52\xc8\x08\x1d\xa1\x27\xbc\x5d\x3e\x60\xcd\xf0\xb3\x8a\xb8\x91\x92\xc9\x8e\xa9\x63\xa1\xf5\x4e\x14\xbb\xbc\x6c\x6e\x50\xdb\xf5\xc3\xbd\xc4\x48\x1d\xf1\xd4\xb9\xf3\x55\x39\xdb\x23\x63\x54\xa8\x66\x01\xd6\x0e\xd4\x7d\x05\xb0\x36\x3a\xd5\x82\xf8\x0c\x9a\x12\x75\x33\xdd\xdc\x3e\x51\xac\x66\x46\xab\xc8\x58\xc9\x1c\x8c\x1d\x86\xce\x8f\xd1\x3a\x71\x21\x69\xb3\xd6\x5b\x31\x93\xce\xf5\x03\x8d\x55\xb3\xdb\xae\xfe\xfd\x75\xbd\x5d\x75\xcb\x08\x12\x6b\x18\x84\x52\x70\xee\x91\xdf\x06\xa8\xb4\xce\xa7\x4f\x94\xd7\xcb\xf2\x74\xce\xa1\x01\x3d\x7e\x36\xa0\x26\x00\xbf\x45\x6e\x7e\xa0\x96\x07\x4c\x08\x35\x78\x10\xa6\x1a\xf3\x09\xcb\xcd\xd2\x51\x81\xd7\x9f\xa1\xc8\xb8\xff\x99\x96\x98\x34\xd3\xf0\xa3\x6c\x60\x5f\x2e\x45\x35\xbc\x3a\x0f\x22\xc5\x11\x31\x77\x57\xc1\x40\x38\x84\x07\x91\x31\x8e\x36\x03\x9c\x2a\xd1\xc1\x1f\x22\x34\x0e\xbb\x24\xfc\x22\xcf\xbb\xf6\x88\xd9\x56\x34\x1e\xc4\x8c\xa3\x85\x2b\x4d\xbb\x2b\xd4\x3b\xa1\xaa\xcc\x64\x13\x1a\x73\x1e\xc4\x29\xa1\xa1\xa3\x64\xb4\x39\x08\xef\xff\xf1\x20\x91\x3c\xf6\xdd\x52\x96\x68\xc5\x1d\xa0\x34\xb0\x4a\x5f\x97\xfc\x75\xa1\xb5\xc7\x08\x7c\x34\x3d\x79\x40\x8d\x46\x57\xdc\x72\xd8\x3b\xf6\xb8\x2b\x65\xc3\x6e\x38\x93\x3c\xd6\x8e\x3e\x4f\x0e\xa5\x76\x67\x93\xe7\x3c\x60\x86\x21\xf3\x81\x86\xf6\x4b\xf7\xf4\x09\x36\xf6\x9d\xc8\xef\xf0\x80\x87\x29\x38\xc6\x0d\xc4\x1d\xcd\x39\x7c\x3c\x10\x49\x60\x0b\x13\xc7\xb2\x6a\xa0\xb8\x05\xa1\x91\xa5\x6f\x32\xaa\x8d\x82\xdd\x3e\x57\xe6\xda\x42\xf6\xaf\xc8\x19\x78\x20\x03\x95\x58\x49\x41\xdb\xd2\x5c\x4f\xce\x23\x89\xb4\x39\x59\xb4\xac\x30\x20\xfc\xec\xde\x8a\x4c\x40\x3a\x18\xe6\x7d\x79\xa9\x3d\x13\xee\xfe\xad\x9c\x7c\x53\x99\xea\x38\x1d\x68\x97\xe8\x09\x26\x96\x07\x52\xdb\xa6\xbb\x6d\x56\xe3\xfc\x1b\x2c\x4e\x1e\xa8\x88\x22\x0c\x64\xb1\x7f\x9e\xf5\x19\x79\xa0\x84\x0d\xac\x67\xeb\xf7\x3c\xd0\x60\x70\x4e\xd9\xfc\x72\x14\x84\xa9\xed\x95\x70\xc5\x13\x37\x0a\x48\x12\x7b\x54\xa9\xc8\xe1\x3b\xa6\x91\x66\xcd\x00\x0f\x80\xaa\x54\xf6\x79\xc0\x61\x3c\xc9\x03\x90\x02\x93\x84\x5f\x56\x4f\xc1\x61\xb9\x5d\x21\x05\xdb\x01\xb7\x61\x3f\xc4\x04\xcc\x23\xac\xfa\xd6\xf8\x3b\x70\x17\x5d\xeb\x81\x7c\x71\x3b\x38\xc5\xae\xcb\xb3\x78\x3f\x78\x11\x8f\xf1\xf2\x35\x01\x68\x77\xeb\x87\xa3\xa8\xda\xf5\xe7\x99\x4b\xc6\xf7\x6d\x24\x45\x5e\xdf\xcd\x19\x0a\x2b\xb4\xdc\xed\xad\x3c\x0c\xc0\xca\x0c\xd5\xc7\xf2\xbc\x13\x1e\x0e\xc4\xc3\x30\x54\x1e\x16\xf7\x8c\x0e\x70\x33\xba\x7a\x18\xc6\x71\x2c\xfa\x12\xdf\xb2\x3c\x5d\xb5\xda\xf0\x30\xa4\xa1\x93\x66\x6a\xe4\x8c\x7e\x01\x0f\x43\x9e\xa0\x67\x7b\x80\x9f\xf8\x0d\xb7\xe2\x6d\x0b\x2e\x6a\xfa\xb8\xfc\xd0\xfe\xce\xca\x84\x15\xe8\x91\x6e\x0c\x56\x51\xeb\x7d\xb9\x2a\xac\x2c\x87\x70\x68\xce\xcc\x2b\xcc\xf3\x30\x54\x96\x92\xbb\x4f\xf4\x0d\xf2\xc8\x73\xfb\x2e\x0f\x23\x62\x73\x04\xaa\x44\xcf\xac\xf2\xa7\x8a\x12\x11\x4a\xbb\xb5\x5b\xaa\xd5\xf1\x43\x91\x30\x32\xae\xb2\x87\x98\x8a\x19\xd4\x39\x0f\x49\x1a\x23\x93\xa5\x1a\x74\xc2\xf4\xb2\x14\xe3\xa9\x1e\xc6\x8c\xe3\x6b\xb2\x82\xb8\x5b\x38\xcf\x93\x6e\x8f\x7f\x94\x24\xa0\xc2\x11\xd3\xc6\xe8\x51\x3f\xcb\xb8\xf3\x30\x51\x21\x66\xdc\x6f\xab\xf2\xac\x07\x9b\x43\x98\xa8\x14\x59\x0e\x5f\x2a\x81\x0a\x5f\xae\x29\xfa\x6a\x91\x4e\x69\x9e\xbd\x01\x69\xa7\x04\x06\x9c\x2e\x43\x5d\x2b\x71\x86\x99\xfa\x14\x0f\x29\xb1\x65\x73\x0d\x46\x5c\x72\xac\xd2\x97\x97\xc6\xbd\x4c\x3f\x26\x89\x2c\x58\x10\xc4\x69\x61\x11\xce\x9d\x3f\xc8\x43\xaa\x53\x2b\x01\x77\x11\x08\x12\x03\x6d\x29\x24\x06\x3e\x3c\x0f\xa9\xb1\x38\x0d\xf8\xf1\xf8\x72\x6a\x86\x46\xf3\xc3\x8e\x87\x7e\xf5\xb0\x80\x84\xce\x88\xdb\x82\xd5\xf8\x11\x58\x68\x05\x23\x45\x5d\x23\x34\xf3\x58\xea\x35\x2a\x52\x0e\x78\x34\xed\x8b\x8a\xfd\x2f\x18\x43\xec\xf5\x63\xf6\x73\x6c\x10\xdb\xb7\x66\x15\x88\x91\xc3\xb0\xab\x4d\xf1\x90\x13\x82\x31\xba\xcc\x6c\x51\x60\x7c\x62\x3f\x48\x5b\xda\x95\x36\x1e\xc9\x45\x63\xca\xea\x34\xa7\x9c\xcd\xc3\x94\xd9\x12\xb0\xd3\xae\xbc\xa2\xe0\x76\xc3\x64\x44\x10\x7a\x68\xd3\x5a\x1d\x39\x1d\x0f\x25\x21\x5e\x89\xb5\x2b\x6e\xb8\x5a\xc7\xb4\xc6\xe1\x7f\x91\xd0\x24\xec\x30\x83\xfb\x72\xae\x19\x86\x87\x92\xc5\x51\x2f\x04\x71\x77\xb9\x5a\x75\x2a\x12\x9e\x27\x77\xff\x5a\x6c\x8c\x2d\x34\xa9\xe9\x79\x14\x89\xf0\x6a\x42\x6b\x5f\x2c\x98\x68\x3e\xf1\x50\x31\x1e\xb8\x02\xea\x63\x56\x74\x98\x1d\x27\x34\xd4\x1e\x07\xec\x11\xfd\xb6\x58\x8c\x3e\x91\x92\x31\x6e\x79\xdf\xd6\x6a\xb0\x62\x14\xa4\xdc\xab\x9a\xc2\xcf\xf1\xb7\xd3\x49\xa4\x3b\x02\xd6\xf5\xc9\xf2\xb8\x75\x07\x39\x89\x1d\x4a\x64\xb1\x7f\xbc\x2a\x6d\xf0\x10\x22\xc2\xb4\x45\xff\x9f\xca\xf1\x6c\x01\x42\x10\xe8\xd2\x8b\x07\x17\xaf\x1d\xfb\xf4\xe4\xcd\x99\x20\xc4\xd6\xb2\x75\xbd\x5e\x6e\x5a\x2f\xd4\x9f\xc4\x10\xf0\x62\xf0\x9d\xb0\x85\x3f\x44\x2d\x7e\x6d\x97\xb5\x8e\xed\x4d\xf6\x79\xfb\x14\x0f\x4d\xbb\x19\xe0\x6e\xfc\x6a\x9b\xc7\x91\x7c\x63\xe0\xae\x86\x46\x87\xd8\xf2\x2e\xb4\xb6\xce\xe4\xfc\xbe\x1e\x1a\x60\xe8\x74\x67\xf5\xea\x74\x6e\xfc\xbb\x88\x02\x12\x63\x41\xba\x39\x66\x95\x1e\xf0\xc8\xf1\x28\x30\x5c\x3b\x32\x96\x4d\xd1\x53\x86\x8c\xee\x2f\x0a\x49\x94\xd8\x56\x73\xff\xf4\x51\x48\x95\xb0\x7c\x9a\xfa\x09\xde\x6e\x2a\x51\xa8\xe3\xba\x58\x9d\xb3\xba\xd4\xf3\x91\x02\x8f\xc2\x34\xc2\x1a\xd8\x42\xeb\x85\xc5\x50\x34\xef\xe3\xfb\x8f\x22\x21\x05\xf4\x92\x19\xa7\xcb\xa9\xb5\x7e\xcb\xb2\x9e\xde\x12\x89\xad\x47\x61\x35\x8d\xbd\x6c\xe6\x2d\xf4\xd4\xa1\xe3\xf1\x71\x10\x63\xfa\xa4\xa3\xa7\xfa\x0e\xd9\x5d\x59\xd9\x77\x31\x1a\x99\x04\x29\xb5\x72\x71\xb0\x5e\x6e\x3a\x9f\xd2\x1f\x4d\x63\x2d\x3d\x64\xd6\x19\xab\x3b\xac\xe5\xf7\x23\x38\x42\x40\x6c\xff\xf6\xc6\x6c\x2f\xf9\x8c\x4c\xe7\xf8\xb1\x13\xc5\xb1\x2b\xeb\xe0\xfe\x3c\xb9\x79\xca\x18\x96\x50\xf6\x97\xe2\xb6\x7a\x14\x47\xd1\x7e\xc7\xc7\xf2\x28\x4e\x27\x5f\x48\xe6\x11\x05\x89\xec\x64\xd5\x00\x9a\xc3\x23\x26\x53\x5f\x99\x78\xb4\xad\x45\x5f\x06\xb9\x76\x1e\x61\x1a\xd7\xc6\x41\x5d\xf3\x32\x8f\x78\x60\x49\x3b\xd7\xcb\xcd\xb8\xea\xcd\xa3\xd6\xac\x73\x2b\xb3\xd3\x54\xd9\x74\x02\x46\x9c\x18\x8c\x0b\x30\x06\xba\xe9\xd2\xec\x3c\xe2\x3a\x89\x6d\xfb\xe8\xff\x82\x9a\x55\xaa\x73\x03\x53\x1a\x30\xd7\x60\xb3\x2b\xca\x37\x93\x8b\xd7\xa9\xa2\xc4\xe4\xed\x89\x04\x5c\x67\x6a\x73\xa9\xe6\x29\xff\x78\x24\xd2\x00\x27\xfa\xae\x29\x2b\xeb\xe3\xfd\x6b\x3a\xc0\xda\xa7\x1a\x1a\x9f\x8f\xf5\xdd\x42\x57\xbb\x77\xb7\xc7\x45\x42\x32\x5c\x1a\x0f\xe5\xcb\xba\x81\xd3\xd6\x91\xf0\x7f\xb6\x41\xce\x37\x84\xb8\xf3\x49\xca\x30\x3d\x7f\x38\x1c\x7e\xcf\x7c\x81\x8a\x47\x92\x85\x41\xd0\x85\x4f\xdb\xb2\x3c\x4d\x1e\x4f\x0a\x81\xb0\x8d\xfb\xc5\x7e\x79\x7f\x58\x6e\x36\x0f\xb7\x9b\xef\x4f\xdd\xcf\x95\x95\x76\xb7\x05\xa4\xd6\x8c\x3e\x63\xff\x0b\x36\xc7\x0d\x9e\x46\x82\x48\x1c\x42\xbd\x5d\x77\xfb\xce\x0e\x5d\x2f\x66\x1d\x86\xe8\x82\x1b\x91\xe5\x8e\x48\xc1\x5f\x4d\x13\x89\xf2\x52\x67\x6d\x06\x5a\x68\xcf\x55\x59\x9a\xd1\xdc\x84\xd0\x8e\xcb\xea\xdd\x7e\xe3\x53\x1d\xfe\x24\x40\x03\xcc\x3e\x9d\x47\x61\x51\x04\x3a\x05\xf4\xeb\x45\xf1\x28\x7e\x0e\x61\x90\x3c\x32\x4e\x23\x0e\x51\x81\x8f\xc3\x74\xcc\x04\x40\x3d\x85\x57\x8f\x9e\x8c\x04\x91\x6d\x0a\x3b\x8b\x77\x2b\xfe\xf3\xdb\xe4\x38\x05\x5c\xac\x9d\x7a\xe0\x78\x09\x90\x40\xd9\x86\xe5\x17\x68\xfe\xab\x94\xd7\x44\xed\x9c\x84\x2a\xb4\x14\x0d\xa8\xbb\x23\xde\x41\x6f\x3c\x53\x31\x27\x21\x44\xcc\x49\x6e\x36\xf3\x0e\xf8\xe4\x7e\x89\xab\xa7\xb4\x71\xe4\xb3\xab\x00\x3b\x21\x27\x4e\x08\xb3\x3c\x3d\xf8\xf6\x77\xc7\x2a\x3b\x9d\xef\x44\x75\x9a\x7a\x36\x84\xe8\x24\xf6\x1e\x37\xea\xce\x0d\xe3\x19\x42\x0c\xb5\x0c\xc5\x55\xf6\xf2\xd2\x4e\x9e\x0e\x00\xc2\x49\x1c\x49\x74\xca\x4a\xcb\x63\x6a\xca\x89\x7e\x1c\x27\x71\xfb\x4c\xc8\xb1\x9d\x9b\xd6\x42\x63\x67\x4d\xef\x89\x92\x98\x59\xb0\xd3\x7a\xb9\x39\x3c\xae\x9f\x0e\xb7\xab\xe7\xcd\xae\x8b\x0c\x49\xcc\x35\x66\xa9\x0e\x05\xbc\x7d\x99\xaa\xca\x71\x92\x68\x83\xbc\x6c\xbb\xbb\xfd\xe1\x79\xb5\x3d\xac\xf6\xf7\x87\x9b\xc5\x6e\x35\x00\x07\x71\x92\x18\x82\xd5\x3f\x79\xc9\x72\x3d\x9c\x84\x84\x26\x80\x6d\xb2\x4f\xf0\xe6\x84\xda\x26\x6f\x86\x32\x8b\x2b\xd2\x59\xad\xca\xa2\x00\x65\xfb\xda\x67\xb5\x3e\x67\xad\x3b\x61\x69\xea\x14\x0e\x9b\x47\x4b\x9c\xe1\x99\xc9\xee\x2a\x71\xdd\x37\xc8\x09\x33\x06\xe9\x8e\x0a\x78\x9b\xdf\xe7\x09\x0f\x39\x32\xff\xa0\xb7\xf0\x51\xa8\xf3\x11\x08\x61\x6c\x72\x08\x0f\xa5\xaf\x68\xde\x67\x2f\x47\xa8\x9b\xaf\x45\x66\x3d\xb1\xb5\xfe\x89\x2c\x02\x5d\xa9\x9c\x13\xce\x25\x6e\x6f\x52\x14\xae\x83\xfc\x2a\x39\x44\x38\x30\x65\x31\x3e\x59\xf1\xf7\x10\x9e\xcf\x49\x4a\x44\xac\xbc\xee\x6b\x71\xa9\x6f\xde\xaf\x50\xdf\x9c\x08\x57\x61\xdf\x82\x2a\x7f\x40\xd5\x53\x91\x71\x22\x34\xf3\xfb\x3e\x4a\x19\x8f\x7f\x28\xe3\x10\xd3\xbc\x59\x61\x72\xdc\x04\x0e\xca\xe5\x16\xfd\xef\x95\x86\x38\xed\x15\x06\xe7\x75\x6f\x39\x51\xa0\x10\x95\xe5\xfe\x7a\x77\xe9\x55\xaa\xdc\x08\x1d\x0b\xcc\xbc\x9d\xb2\xa2\xd7\x9c\x5a\x96\x65\x9e\x15\x2f\xa3\xd8\x9a\x68\x9a\x5a\xc5\xc2\x23\xa8\x57\xab\x7a\x81\xd5\xb9\x8f\x08\x57\xfc\xcf\x20\x40\x1a\x78\xdb\x44\x67\xe9\xb3\xf1\x4d\xf4\xf6\x9a\x40\x60\x1b\x15\xc1\xa1\x0c\xd7\xc5\xd7\xba\xbb\x2e\x44\x69\xe4\x72\x4c\xcf\xbb\xbc\xf4\xc1\xe1\xf8\x2a\x40\x62\xf4\xf8\x97\x59\xd9\x06\xb2\xd8\x0f\x36\x0b\xee\x9c\xe9\xc4\xe5\x04\x58\x20\x7b\x0e\xa2\xef\xc7\x5e\xe1\x60\x36\x70\x26\x86\x79\xb0\xd8\xa9\xfc\x01\xcf\x3d\x1b\xf6\xf8\x3b\xc6\xad\x09\x0e\x3e\x6d\x10\x8a\xe7\x7b\x83\xfe\x35\x39\x4f\xac\x74\xea\x23\xd0\xfc\x02\xbb\xf2\xf4\xc1\x7e\x16\x07\x2c\x0a\x6d\xcc\x26\x2a\x75\xb4\xac\xd1\x23\x23\x18\x07\x8a\x62\x40\xd1\xba\xdf\x0e\x1d\xb9\xfa\xeb\x92\x35\xef\xae\x55\xe0\x37\x3f\xce\x70\xe0\x9d\x3b\xb2\x6a\xae\x70\xc5\x6e\x5c\x18\x05\x09\xef\x14\xc7\x5e\x03\xfa\x5b\x7f\x80\x92\x71\x32\xe6\xe3\x7d\xa0\x17\xf0\x1b\xab\xc5\xf3\x38\x34\x16\x1c\xe2\xda\x6e\x6d\xb6\x65\x00\x00\x6a\x47\x68\xff\x39\x90\xe3\x7b\xf2\x15\x22\x6e\x33\x39\xb5\xc8\xc1\x92\x1e\xfb\x1f\x12\x26\xf1\xd6\x65\x1b\xc7\x3a\x5b\x36\x09\x39\x63\x22\xc0\xa4\x03\x32\x96\xf6\xd2\x5b\x78\xf3\xc2\x83\xfd\x65\xe2\x44\x61\x81\xde\x72\x54\x3e\x95\x1a\x6e\xc0\xb4\x4e\xda\xa7\x3e\x73\x1c\x33\xab\x54\x64\xa0\x51\xc7\x01\x3d\x7a\x7b\x44\xa5\xb6\x91\x18\x9b\xb9\xaa\xee\xef\x42\xe2\xc6\xdd\xf8\xf8\xa9\xcc\x5d\x35\x5c\x9c\xa0\xf5\xde\xd6\xdd\x9b\x49\xb8\xc1\xba\x9e\xcd\x86\x3b\x2c\xff\x4c\x36\x7c\x72\x4f\x49\x9a\x04\x0e\xa9\xbc\xc3\x40\x64\x81\xe6\xbd\x5e\xf6\x4c\x1b\x6e\x24\x0d\x39\x66\xb8\x8c\xa8\x4e\xed\xa5\xeb\x8f\x53\xf3\x31\x8d\x43\x69\xf9\x10\xb1\x2b\x3b\xb3\xdc\x76\xd5\xb5\xac\xdf\x64\x82\xd1\xd8\x36\x1a\x28\xc7\x2d\x59\xfe\xf4\x01\x61\x4c\x0d\xa0\xdb\x7f\xa8\x21\xcf\xd1\xd5\x2b\x6d\xf2\xf3\x1f\x8a\xd1\x93\xe7\xe5\x4e\xbc\xdf\xa5\xc4\x9f\xb1\xba\x86\x13\xad\x1e\x02\xb4\x7f\xa9\xc4\xcd\xe3\x54\xc9\x74\x58\x28\xb7\xb5\xfc\xc9\xb4\x92\x84\x62\xf3\x2a\xfc\x80\x2a\xab\x2f\x43\x0c\x29\x8f\x65\x9c\x1a\xb7\xf1\x38\x39\xf2\xe8\x43\x3f\x7c\xd6\xea\xc6\x52\xa7\x7d\x63\xd2\x49\x64\xc5\x8c\xff\x16\x6b\x4a\xa4\xf1\xdc\x9d\x17\x9d\x35\x96\x96\xc9\xb7\x59\xf1\x58\xa7\x02\x4b\xd0\x7f\x5d\xd0\xd9\xb6\xa5\x75\x7f\x10\x22\x9b\xb9\x58\x64\xf5\x71\x40\x41\xca\x63\x50\x3a\x71\x06\xbb\x7d\x7b\x87\xb4\x3b\xa0\x01\x31\xeb\xe7\xb2\xf8\x3b\x73\x86\xbe\x03\x80\xf0\x18\x8c\xc2\x06\xe8\x7d\x25\x7e\x40\xfe\x84\x1b\xdf\x2f\x01\xb0\x78\x6c\xc2\x14\xc1\xbf\xdf\xcb\x2a\xd7\xcb\xcb\xf9\x4e\xa8\xa6\xac\x26\x29\x9f\xd8\x88\x18\x4b\x76\x8b\xf3\x79\xa1\x87\xe2\xf6\xf3\xf8\x88\xa1\x11\x32\xd2\xb6\x81\xd6\x59\xf1\x60\x85\x3d\x5d\xb4\x8d\x3e\xb8\x03\x6d\xf2\x24\x20\x4a\xbb\x85\xe3\x00\x2c\xb9\xdf\x9b\x6f\xde\x3f\x8d\xfe\x92\x20\x0e\x13\x2b\x62\xf9\xf2\xd2\x83\x7b\x06\x74\x4e\x3c\x09\x98\xed\xa4\x30\xe2\xa2\xa0\xb9\xb9\x71\x7d\xf3\x3c\x09\x8c\xc0\x1c\x4e\x59\x94\x1e\x9d\xc0\x13\x42\x28\x2e\x4d\xdf\x08\xdc\xa1\xf2\xea\x65\xe7\xa5\x27\x84\x88\x50\x7b\x3e\xe1\xaf\x6d\x44\xad\xca\x3c\x17\x0d\x54\xd9\xdf\xa0\x3b\x9c\xaa\x1f\x4d\x09\x02\x71\x2b\x0b\xef\xda\x14\x60\xb9\x5e\xfc\xe1\x34\x0a\xa0\xd7\x7c\x1d\x36\xf9\x8d\x5c\xb5\x84\x80\x25\xb8\x47\x7d\x89\xdf\x8b\xf2\x6d\x8c\x07\xe5\x49\xcc\x13\xc4\xa4\x43\x73\x3c\xd4\x9d\x3e\x0a\x4f\x62\x6d\xd0\x58\xd6\x4a\x14\x05\xe8\xdb\x4c\x9c\xca\x42\xf7\x70\x1d\x9e\xc4\x86\x22\x83\xa1\xbc\xbc\x23\xcd\xfa\xa6\xb8\x81\xa3\xc8\x27\x8e\x51\x92\x68\x40\x18\xe5\xf7\xfb\xf5\x7e\xf5\xb0\xde\xed\x0f\xab\xa7\xdb\xc3\x6d\xef\x6a\x27\x2c\x48\x7c\x0a\xc7\xf3\x37\x77\x87\x48\x18\x30\x2f\x63\xf2\x98\x15\xcd\xc7\x46\x2f\x61\x42\xc6\xb6\x1b\xff\xaf\xee\xe7\x4a\x06\x36\x4d\x56\x5c\x44\x7e\x05\xe3\x1a\xcd\xd9\x84\x87\x9d\x9e\xf6\x7f\x95\xb2\x7b\x4c\xee\x64\xd0\xef\x96\xe1\xd0\x72\x24\x9c\x42\xe2\xd0\xe7\x3e\x86\xe2\x53\xaa\xa7\xde\xc3\x18\xf3\xa4\x76\xb3\x38\x8d\x18\xfa\x84\xe8\xe9\x59\x52\x1d\xcc\x28\x0e\xb3\xfd\x1e\xaf\xec\x7f\xa2\x03\x6e\x7c\xc6\xd5\x6e\xb2\x56\xd4\x73\xfc\xda\x53\xad\xc2\xa0\xcb\x9e\x78\x2a\xe1\xf9\x27\x17\x8c\x20\x5c\x0c\x53\x30\xf7\xa5\xce\xed\xae\x8b\xc8\xa4\x89\xa7\x9e\x08\x6d\xb0\x15\x68\xf1\x70\xbb\xfa\xb5\x9e\x1e\x9e\x08\x88\x30\x32\xcf\x9a\x72\x55\xe8\x1e\x63\xc6\x13\x19\x69\x3e\xd4\x44\xec\x2b\x20\x93\x18\x39\x91\xb1\xad\x73\x78\xd1\x02\x44\x29\x8d\xc8\x1c\x79\xa2\x22\x12\x0b\xff\x36\x5d\xc2\xf0\xef\xb1\xa4\xe1\xf8\xa4\x8a\x06\x36\x5f\xec\x2e\xdf\x3a\xb3\xe4\xb3\x4a\x59\xa2\x44\x98\xc6\x83\xa5\xde\xa5\xf4\x26\xb7\xab\xc3\x90\x58\xd6\x25\xf5\xae\x5a\x0f\xdf\xee\x0d\xa3\x19\x04\x91\x4d\xfa\x76\xb4\x8c\x93\x73\x00\xb3\xed\x22\x76\x33\x40\x2b\xee\x19\xc4\x3f\xaa\x3a\x7d\x14\x5e\x8e\xbf\xb7\x31\x7a\xc0\x9b\x02\xd5\x93\x38\xc1\x1f\x03\x9d\xe5\x3e\xd3\xd4\x59\x44\x1a\x68\x85\x4a\x17\x59\xbd\x05\xd3\x59\xdc\xdf\xfc\x51\x63\xe5\x00\xee\x00\x26\xa9\x48\x1a\x32\x2b\xe5\xff\xef\x7f\xff\xbb\x87\x5b\xf8\x63\x9a\x20\x6e\x07\x59\xe4\x31\xb3\x8a\xc9\xa6\x7a\xe1\xcd\x10\x8d\x42\xab\x92\xe3\x4b\x3e\xa2\x3b\x10\x4b\x44\xf1\x5a\xb6\x31\x47\xfa\x3e\x7e\x81\x94\xa4\xc2\xcb\x5d\xe1\x42\x99\x79\xc9\x94\x68\xa2\x58\x2f\xe6\xbf\xde\x2e\xe7\x17\x09\x8d\x53\xc5\xbd\x7e\x4a\x06\x55\xdd\x31\xe2\x4c\x49\xcb\xe6\xfe\x8b\xff\x37\xf9\x9f\xff\x8e\xdd\x1a\xa2\x49\x0c\x98\x78\xc5\x0a\xce\x07\x01\x25\xa5\x81\x1c\xf4\x15\xa0\x36\xa7\xf5\xea\xa7\x9b\xdb\xf8\x36\x69\x1c\x5b\xd5\x61\x2c\x6d\xdc\x2e\xd6\xcb\x8d\x7f\x65\x34\xb1\xf5\x0d\xa4\xdf\xaa\xf4\x4c\x39\x87\xd2\x84\x22\x9c\x08\x8f\xe9\xe9\x41\x2d\xd0\xdb\x38\xb4\xef\x7c\x53\x59\xe6\xfc\xa1\x4a\xc3\x7c\x88\xf5\xd1\xbf\xae\x52\x41\x59\x1a\x60\xe7\xa6\x6d\x70\xdb\x65\x2f\x85\x68\x2e\x15\x60\x47\x4c\xb7\xe3\x51\x06\x1a\x64\x27\xa5\x81\x09\x15\xbc\x49\xbf\xf8\x69\x1a\x58\x1e\xca\x27\x00\xbd\x05\x53\x41\x3d\xa9\x11\xd3\x34\x8d\xb0\xa5\xa4\x34\x26\xcf\x0a\x58\x60\x13\xc3\x7c\x70\x47\x53\x69\x37\xd8\x5a\x38\x64\xc2\xf4\x5c\x46\xe2\x6b\x3e\x89\x9f\xdf\x21\x6b\x27\x84\x77\x11\xa8\x8c\x78\x18\x0d\x34\x87\xf2\xac\xc6\x7a\xcf\x55\xd6\x83\x4a\xce\xd5\x48\x01\xc3\xf6\xf1\x20\x9b\xfa\xfb\x19\xc2\x0f\xee\x4d\x09\x83\xbe\x62\x2e\x6a\xdb\xef\x7c\x10\xa1\xbf\xb8\x8e\x74\x32\x06\x89\x63\xd2\xe4\x79\x5a\xa1\xa1\x3a\x01\xcc\x0f\x5f\x0a\x9f\x81\x5e\x8a\xd3\x59\x64\x2f\xd3\x27\xd5\xc2\x16\xcb\x2d\x13\xf1\x16\x54\x59\x7d\xc8\x7f\x3b\x34\x18\x10\x45\xdc\xe9\xfa\x95\xf5\xa9\xac\x7b\x25\x25\x4e\x81\x0b\x6c\xf3\xfe\x82\x35\x06\xdf\x66\xc0\xa9\x89\x1c\x01\xb3\xc8\x8a\xdf\x45\x75\x12\xa3\x42\x0b\x35\x91\x4a\xad\x12\x46\x9e\x83\x6a\x16\x79\x8e\xf6\xc6\x1f\x8d\x13\x6a\x29\xae\x34\xc0\x09\x74\x3b\xc7\xfb\x83\x82\x18\x97\x05\x6a\x5f\xef\xfa\xca\x23\x1d\xec\x5e\x1d\x8d\xac\xfd\x2d\x0b\x02\x8e\xe4\x23\xdb\x87\xe7\x2d\x36\x2b\xee\x3b\x56\x7e\xce\x02\x45\x91\x17\xd9\x45\x7c\x5b\xd1\xc0\xf2\x38\x07\x7e\x1b\x7f\x44\x16\x80\xe1\x74\x8c\xe6\xc7\xee\xbd\xae\xa4\xc2\xc2\x44\x20\x4e\xed\xcb\x72\x79\x3f\xdc\x37\x58\xc8\x43\x4f\x78\xdd\xce\xab\x65\xfb\x36\x5e\x60\xa5\x2f\xb6\x5c\x7f\x0b\x8d\xc8\xf2\x71\x3e\x96\x85\x3a\x42\x41\x22\xa1\xf5\x23\x34\x50\x61\x8b\xfc\x6f\xb3\x49\x6e\xf7\x8b\x08\x88\x95\x41\xdd\x3c\x3f\xaf\xb6\x87\xc5\xe3\xe6\xeb\xd3\xfe\xb0\xfb\xfd\xc1\xdf\x46\x1c\x69\x0c\x16\x3b\x69\xb0\xcb\x55\x66\x9b\x25\x81\x15\x66\xab\xa1\xd0\x2e\xe9\x31\xc2\xf9\xb0\x44\x52\x90\x5d\x1d\x7a\xeb\x4a\x44\x3d\x4f\x7b\x3b\x82\x21\xd5\xd4\xff\x43\xd9\x97\x6c\x37\x8e\x23\x6b\xbf\x4e\x2d\x7a\xc1\x99\xc0\x52\x92\xe5\x4c\xff\x69\xd9\x6a\x4b\xce\xac\xea\x7b\xee\xd1\x09\x00\x01\x9b\x6d\x89\x54\x93\x94\x6d\xf5\xd3\xff\x87\x01\x80\x93\x28\x67\xdd\x4d\x65\xb7\x09\x52\x1c\x30\x04\x22\xbe\xe1\x64\xfb\x9f\x61\xc3\x0d\x5f\x66\x2c\x43\xe3\x06\x5d\x49\x68\xc6\xd1\x4d\x56\x1d\x29\x09\xb2\x42\x95\x5d\x10\x00\x59\x9a\xfa\x3e\xad\x49\x55\x10\xf7\xf5\x07\x58\x9a\x2a\x53\xa4\xa4\x9b\xf4\x77\x7f\x4b\xe8\x94\x91\xd0\x9f\x81\x06\xca\x42\xa1\x1a\xd4\x18\x52\x06\x92\x66\x5d\x38\x1e\xf7\x99\x6c\x16\xcd\x4e\x17\x8b\xa5\x3c\x12\x2c\xed\x29\x28\x0c\xbf\x1a\x67\x3e\xd8\xd1\xfc\xd3\x00\x3c\x8b\x9e\xf1\x57\x12\x0d\xc3\x99\x14\xa2\x44\x46\x5d\xaa\xf2\x9f\x27\xd8\x9b\x52\x4a\x56\xe4\x73\x2b\x16\x39\xbc\x73\x88\x0c\x66\x91\x66\xd5\x32\xa7\x41\xb3\xe8\xdf\xbd\xd0\x21\x11\x71\x77\xa7\x0a\x09\x4c\x3a\xb9\xcd\x48\x65\xe8\xa7\xd2\x6d\x33\x9a\xef\xfb\x5c\x11\xa6\xf8\x09\xb3\x8e\x0c\x34\xfc\x69\x29\x03\xad\x3a\x30\xb9\x39\x6d\x1c\x58\xa4\x52\xa1\x41\xa4\x90\xbf\x51\xcf\x7b\x89\xa5\x2a\x32\xea\xe7\xcb\x77\x2c\x1f\x3f\x72\xe7\x58\x3a\xea\x81\x2a\x06\xb0\x31\xc0\xfc\x74\x76\xc1\x5a\x37\x4f\xa5\x4a\x30\x9a\x36\x9a\x5d\x09\x69\xf2\xdf\xad\x96\x9b\xed\x6c\xb5\x76\xbf\x83\x89\x20\x61\xe5\x15\xbc\x63\xde\xdb\x7d\xa7\x98\xe8\x28\x1a\xca\x4b\x75\xc1\x68\xaa\x59\x14\x18\x30\xfb\xfb\x62\xb6\xbd\xc1\xaa\xce\xf2\x3e\x9c\x86\x79\x41\xea\x07\x2d\x09\x5a\xb5\x15\x76\xe6\xc5\xa9\x96\xbd\xf0\xcc\x40\x38\x6f\x8b\xf2\x16\x89\xc4\x39\x66\xda\x32\xe6\x31\xa3\xe0\x2d\xa0\x59\x32\xaf\x84\x06\xcc\xd3\x3a\x16\x2d\x67\xd4\x0e\xc7\xbe\xae\x30\x63\x7e\xc8\xa8\xc9\x11\xce\xca\x29\x72\x32\xe6\xeb\x44\x9b\xa4\x8d\xd3\xa0\xed\x84\x3e\x6c\x93\x20\x88\x29\x0b\x52\xe4\x78\x28\xf2\x16\x51\xc4\x82\x38\xa5\xad\xc5\xe6\x00\x65\x0b\x41\xf8\x55\x94\x6f\xd5\x6b\x71\x1c\x74\x76\x16\x24\xa1\x89\xe8\xa0\x7c\xc1\xaa\x5e\x63\x3e\x90\x96\x63\x2c\x50\x06\x02\x4e\xba\xf4\xcd\x1d\x38\x50\x2b\x0b\x03\x45\x28\x99\xdd\x6e\x77\x2c\x8b\xcf\xb3\x31\xb8\x6b\x8f\x46\xa9\xc1\x86\x41\x3e\x47\x57\x48\x51\xf3\xf3\x72\xf5\xf8\xb0\xfd\xa3\xbf\x1f\x63\xb1\xef\x13\x81\xab\x36\xe8\x28\x5a\x5d\xdd\x65\xe2\xc0\x26\xd5\x8a\x2c\xaf\x8c\x11\x13\x81\x48\xda\xe3\x32\xa6\x32\x9c\x51\x0a\x39\xb7\xf4\x26\x2b\xf1\x6c\xfe\x71\x6d\x51\xd1\xca\xaf\xb0\xca\x4a\x9c\x0a\xc5\x58\xac\x13\x72\x3f\x20\xdf\xde\xfe\xfc\xcf\x12\xa1\x09\x35\x7c\x28\xaa\x7a\xd3\x6d\xd9\x59\x22\x91\x64\x50\x6e\x8b\xf2\x8d\xfa\x62\xab\xe2\xca\x58\x1a\x86\x06\xf4\x3c\x7f\xfa\x22\x59\xdf\x36\x36\x34\xcf\x66\x6d\x2a\x72\x32\xeb\x43\xb0\x3c\xdf\x53\xc7\xb8\x60\x2c\xe5\x48\x43\xc3\x96\x5d\xce\x9b\x57\xb8\xdc\x3e\x5d\x4b\xa7\x0d\xd3\xf0\x93\xc5\x6d\xc6\x02\x13\x66\x89\xd3\x79\x51\x82\x18\xbd\x22\xc6\xcc\x12\x65\x96\x86\x59\xfe\x82\xa4\xc4\xbe\x41\x02\xf2\xf7\x62\x4c\xc6\xb8\x12\x16\x82\x44\xd8\x8b\xae\xe4\xd2\xaf\xd0\x8f\xc6\x0b\x8f\xc0\x4f\xda\xb5\x69\x05\x9f\x03\x0c\xc2\xa8\x6d\xcc\x53\x9b\x89\x7b\x36\x07\xdc\x9b\xe7\xd2\x2c\xf4\x99\x2c\x1e\xdf\xb1\x8c\xdb\xbf\xab\x24\xea\x43\x8a\x28\x10\xda\x16\x83\x1e\x0f\xb1\xa9\x24\xce\xb6\x9f\x46\x5a\xda\xfd\x3d\xf5\x68\xe6\x31\xda\xf4\x4f\xc5\x69\x8f\x75\xbb\xa6\x30\x10\x82\x62\x9d\xc3\xb9\xe3\xde\x74\x13\x1e\x03\x1d\xd2\x70\xf8\xe7\xd3\xfd\x6e\xd0\xaf\x44\xe4\x7b\x8e\x7d\x4a\x07\x46\xe6\x13\xc3\x27\x16\xb1\x0c\x0c\x6a\x73\x45\xa5\x80\x5f\x50\x8e\x90\x1f\x4c\x40\x42\xe5\xf5\x0f\x9a\x63\x48\x22\xd5\x1d\xd1\x1e\x6d\x8f\xdb\xc8\xf7\x79\x73\x23\x4d\xe6\x67\xf8\x2b\x52\x09\x4a\x64\x52\xad\xb8\xb7\x70\x32\xa9\x8d\xa0\x69\xb3\xb7\x3b\x43\x5e\xdf\x94\x45\x56\x2f\x65\x91\x17\x87\xec\x3f\x27\xdc\x2d\x8a\xc3\xb1\xc6\x5d\x34\xba\x9e\x0a\xb9\xe1\xed\x56\x56\xbd\xee\x09\x41\xb6\x6e\x0f\x8c\xa9\x38\x12\x36\x4e\xbc\xbf\xff\x69\x48\xe9\x61\x3b\xcf\x28\x69\x3c\x81\x89\x86\x54\x14\xba\x89\xd2\x07\x01\x04\x53\xa8\x29\x61\xb5\x5a\x3d\x0e\xde\x2d\x26\x5c\xb5\xcf\xb1\x2e\x3e\xb0\x7c\x3e\x8e\x5f\x97\x8e\x0d\x02\xfb\xa5\x04\x89\xa6\x7b\x92\x9b\x33\xa5\xc7\xfd\xe1\x9c\xa6\x41\x91\x7d\x8a\xe9\xfa\xce\x71\xc0\xf8\x0f\x3c\x3f\xdd\x4f\x2f\xd3\xdc\xb3\x68\x44\x32\x66\xa3\x14\x8f\xbb\x87\x81\x9a\xcd\xf0\x24\x3f\x96\x7e\x64\xf9\x0b\x1d\xf9\xde\x1d\x4c\xe2\xc4\x28\xc8\x9c\x7f\x65\xf5\xab\xc3\xc1\xdc\x5d\x47\xb3\x9c\x7a\x66\x6f\xc3\x2d\x03\x0f\x52\xa9\xcc\xc7\xa1\x68\x67\xfe\x30\xbf\x14\xb6\x67\x3c\x8c\x8c\x0e\xbc\x75\xed\x69\xe2\x96\x49\x2a\x29\xe3\xa1\x94\xf4\xb1\xeb\x82\xfc\x62\x86\x8f\x15\xa2\xc1\xb1\xed\x2a\xac\x29\xd1\x7c\x01\xb9\x72\x0d\xb5\x51\xae\x73\xac\xa6\xca\x2a\x38\xdb\xc3\x11\x37\x26\xd4\x3d\x49\xa4\x31\x34\x9f\xc7\xb1\x26\xde\x46\x26\x8b\x75\x67\x6c\xc6\x78\x0c\x8a\x96\x9b\x5d\x13\x96\x17\xea\x34\x4e\xe3\x4e\xef\x1d\x78\x12\x2a\x72\x32\xbf\x5b\x3c\xae\x9a\x25\xd9\xb0\x0f\x5c\x4f\x1e\xb5\x65\x66\x57\xb4\x81\x77\xfc\xab\x38\xcd\x72\xb5\x1a\xd4\xd7\x79\x02\x21\xb1\xa1\x66\x37\x3f\xef\x36\x8f\x4f\xbb\xcd\x76\xf6\x63\xb9\x7b\x7c\x58\xb6\x0d\x84\xf1\x4d\x6e\xa6\xbf\x77\x2c\xeb\x75\x99\x15\x65\x56\x67\xff\xed\x92\x5e\x97\xb2\xc3\x17\xa0\xa5\xff\xc3\xac\xcf\x13\xd4\x26\x2b\xda\xab\x43\xf6\x94\xf4\x18\x4f\x34\x08\xdd\x4a\x0f\x93\xd6\xb4\xc5\xc3\xdb\x06\xa9\x07\x22\xea\xb2\x3a\x57\x61\x17\x03\x79\xef\xfe\x1a\xc8\x53\x66\x8c\x8f\xc9\x14\xa5\xc8\x8d\x70\xfa\xf2\x3f\x73\x73\xa3\x2b\xac\xaa\x0e\x13\xc9\x53\xf0\x81\x30\x91\x4d\x58\x44\x02\x9b\xcd\x92\xbd\x2e\x5b\xf6\x36\xe3\xa9\x34\x5a\x38\xeb\x12\x8f\x50\xe2\xd6\x68\xe0\xfe\x86\x81\x3d\x5d\x72\xe2\x29\xf2\x34\x1a\xfa\x52\xef\xc9\xd8\xb8\xc7\x74\xb4\x4d\x59\x90\x12\x62\xea\x50\x28\x57\x02\xec\x55\x53\xda\x5e\xc2\xd2\x90\xa6\x7e\xcc\x8e\x81\xf7\xf7\x76\x3d\x9c\x69\x3f\x32\x25\x5d\x5d\x98\x18\xfe\x8f\xf6\x08\xa3\xa5\xe1\xb8\x87\x51\x61\x88\x73\xae\x52\x82\x87\x7f\x1e\x8b\xb2\xde\x42\x3e\x64\xb5\xb6\x5d\x80\x2b\x46\x70\x8a\xd2\x44\x16\xb3\x16\x4e\xc2\xb9\x02\x82\x8a\x68\xf2\xe9\xf9\x59\x34\xef\x9b\x96\x96\xe1\x0f\x41\x94\x10\xea\xb0\xd9\xab\x07\x2e\x37\xc3\x21\x36\x35\x7b\xb3\xa4\xbb\xc9\xcf\xec\xbc\x7a\x13\x91\x08\x14\x65\x8a\x66\xc4\x44\xab\x96\xfb\xf3\xe7\xa8\xaa\xc8\x45\x88\xc4\xd1\x5d\x15\x45\x5e\x92\xa8\xec\xf4\xb7\x12\xa9\xc1\x11\x35\xbb\xe3\xc1\x02\xf7\x75\x69\x93\x2b\xf0\x8c\x3d\x59\x8b\xd7\xe4\x4a\x0a\x2f\x30\x76\x63\x13\x8c\xd6\xe1\xe9\xc8\x52\x62\x2b\x7c\xbb\x7b\xba\x9f\x3f\xdf\xde\x2e\x9f\x36\x77\xff\x6a\x87\x34\x6a\x4d\x4c\x8c\x79\x51\xbc\x35\xaf\x2f\x3b\xe0\x73\x9d\x8d\x64\xdc\x18\xd7\x41\x44\x50\x45\x32\x21\x87\xfd\xae\xec\xd1\xfe\x19\xd7\xa1\xa6\x79\xe1\x94\x5b\xf3\xd2\xf5\xbe\x18\xc0\xb1\xb9\xd6\xc6\xb7\xdb\x5e\xb5\xe9\x22\xd5\x00\x72\x0d\x3e\x7a\x14\x8b\x58\xcf\x29\x79\xde\x16\x66\x72\xea\x69\xba\xda\xa6\x01\x4b\x95\x73\xb2\x43\x38\x4c\xf0\x03\x20\xe0\x40\x02\x30\x96\x1c\x63\x94\xb4\xde\x2f\xd6\x05\x88\x83\xd8\x51\x94\xef\xc1\xba\x8e\xb4\x95\x7c\x88\x03\xe6\x00\xf4\x66\xbe\x9f\x46\x54\x41\xcc\x13\xca\x1c\x1b\xff\xf5\xa2\x65\xbc\x4e\x8e\x16\x88\xb9\x51\x19\x6d\x42\x07\xb2\x43\xec\x0b\xa5\x5f\xc8\x3c\x33\x48\x52\x8f\x22\x5f\xa7\x51\xd4\xbc\x3c\x97\xe5\x83\x44\x04\xce\x5e\xfa\x17\x66\x4f\x90\x55\xcd\xd2\x6c\x8b\x22\xc3\x81\x00\x09\x9a\x12\x93\x41\x27\xbb\x2b\xa4\x81\xa6\x4c\x9b\x2c\x8b\x0f\x35\x08\x2d\x20\x55\x29\xda\x44\xf7\xec\xa5\xcc\x16\xaf\x90\xe5\x54\x9b\x1f\x3e\x7e\x8a\x7e\xeb\xb2\x42\xcb\xaf\x2a\x6e\x70\x59\xc9\x13\xee\x61\xf4\x2c\x29\x6a\x6d\xd3\x18\x8f\xa5\x99\x92\x6d\xce\xab\xa5\x6b\xb5\x3f\xae\x13\xda\x47\x1a\xda\xed\x2d\x54\xf5\xed\x3e\x1b\x8b\x24\xb8\xed\x1a\xb0\x24\xa6\xfa\xff\x06\xad\xb2\x63\x35\x32\x73\xee\x5e\x03\x93\x31\x25\x9a\x7e\x9d\xdf\xb1\xcc\x6f\x66\x8f\x7d\x74\x03\xf0\x98\x51\x9e\xea\x08\xe7\xb2\xd8\xef\x37\x3d\xb1\x73\x06\x3c\x49\x23\x35\xe2\xf9\x7f\x39\x35\x02\x57\x48\x32\xef\x96\x94\x93\xab\xfa\x02\xb2\x06\x5c\x87\xbe\x6c\x77\xe3\xfd\xb0\x1f\x40\xb7\x20\xa4\xe7\x66\x99\x31\xd8\xa2\x2c\x7f\x99\x12\xa9\x62\x20\x42\x25\x3a\x7b\xfc\x1b\xc3\xef\xf9\x86\xb9\x47\x9b\xc0\x9b\x9e\x79\xeb\x97\x73\x06\x88\x38\x91\x96\x59\xb1\x33\xd2\x10\x3b\x79\xc9\x7f\x03\xa1\x03\x9a\xdd\xe7\xb3\xc5\xe8\x88\x14\x29\x05\xcf\xdb\xc7\xed\xec\x7e\xb7\x78\x5c\xad\x9e\x1f\xee\xb6\x7f\xed\x66\xf7\xf7\x8f\x0b\x62\xf0\xb9\x27\x94\x5a\x8a\x2e\xed\x77\x9f\xe5\x1d\xa1\x71\x7a\x1e\x05\xe5\x1b\x38\xbe\x4b\x8a\x0c\xd0\x94\x63\x5c\xdc\x64\x58\x01\x2a\x49\x7d\x2b\xe4\x78\xb2\x49\x5a\xf5\xc7\xc4\xfe\x17\x10\x39\xe1\xb1\x3e\xda\x7d\x01\x68\x3f\x24\x8a\xbf\xe9\x97\xdf\x4e\xcd\x8d\x76\xfb\x4b\xd0\x91\x51\x56\x76\x77\x77\xdf\xfc\x37\x6f\x95\x42\x19\x68\x69\xc4\xaf\x29\x9c\x28\x29\xf6\x5e\x17\xc5\x9e\xa8\xa5\xbb\xac\xea\xbc\xe1\xed\x09\xc2\xf3\x53\x93\xa2\x84\x12\x5e\xeb\x5e\xc0\x26\xbc\x14\x4d\xd0\x48\xc6\xc8\x9f\xb6\x24\x68\x8a\x84\x55\xdb\x48\x31\x92\x79\xe9\x29\x54\x7f\x7b\xd8\x7c\xdd\x6d\x85\x0f\x26\xe6\xf9\x86\xf5\x1c\xab\xda\xa4\x86\xdc\x67\xe9\x6d\xa7\x45\x20\x8d\x02\x91\x09\x40\x8c\x3a\xce\xa5\x4e\x34\x13\x61\x1c\x5a\xa0\xe8\x61\x4d\xda\xca\xdd\xf3\x45\xa1\x36\x84\x4c\x33\x43\xdf\x17\xf2\xad\x97\x4f\x12\x51\xaa\x28\x2f\xba\xd9\x3c\x6e\xbf\x2f\x67\xf7\xdb\xef\xbb\xdb\xe7\x87\x9b\xcd\x6e\x76\x73\xf3\xb4\xdc\x6c\xda\x76\x5c\x18\xad\x6c\xfa\x9c\x3f\x70\x5a\x90\x92\x89\xd8\x07\x4b\x93\x43\xf9\x46\xb1\x5c\x5b\x68\x9a\x22\x78\x89\x58\x86\xb4\x08\xd4\xc6\xef\xea\x84\xad\xf7\x28\x13\x49\xea\x91\xbf\xca\xc7\xe1\xb4\xd7\xfb\xc2\x66\x97\xc7\x06\xd6\x4c\x24\x2a\xa6\x3d\xda\xb1\xa8\x3b\x21\x14\x26\x58\x0c\x60\xb4\x1c\x3e\x2d\x09\xaf\x3d\x22\x63\xca\xc6\x3a\x1a\xa6\x2b\x61\xa3\xb2\xd6\x6b\xed\xe7\xe5\x7e\xe0\xf9\x9d\x84\x89\xdd\x95\x19\x73\xae\xec\x80\x5f\xaa\x85\x0c\x5f\x0c\xf8\x8e\xff\xd3\x31\x11\x7a\xbd\x71\xd4\x38\x8d\x62\xd9\x69\xd2\xd1\x3a\x4c\xf2\x11\xee\xbe\x00\x79\x18\x39\xad\x23\xea\x97\x77\x63\x37\x31\x26\x04\x44\xd4\xcd\xbe\xcf\x9e\x6e\x76\x8b\xd9\x7a\xe7\x80\xdb\x42\x25\xc6\x6a\xd9\x26\x9e\xfa\x8b\xee\xe8\xb6\x31\x65\x2c\x75\x4b\xca\x0b\xe4\x59\x65\xb3\xdc\x93\x53\xa4\x40\xe6\xd1\xb6\x7c\xe7\xaa\x08\x2f\x59\x91\x0f\x7a\xec\xff\xf8\xc9\xff\x5e\x79\x45\xc8\x23\xa6\xdc\xae\xd9\xbc\x23\x8a\xf1\x27\xad\x26\xdc\x39\x98\x52\xf5\xf6\x1e\xdf\x71\xff\xab\xdb\x1a\xde\x35\x6b\xf0\xdf\xad\x92\x4e\x8e\x52\xe9\x47\x40\x4c\xec\x59\x46\x4a\x4b\x0b\x6c\xee\xc3\x85\xc7\xd2\xe7\xc6\xc4\x20\xab\x8c\x8d\x64\x33\xcb\x5c\x72\x4c\x6c\xe3\xd0\x4f\x08\xdb\x4c\xa3\xc2\x81\x92\x6d\xf9\xe2\xcb\xb5\x42\x46\x5c\x12\x0c\xcc\x96\xe2\x48\xa5\x7c\x9a\x11\xeb\x4e\x90\x40\x9e\x98\x75\x6f\x0b\x8d\xa5\x8b\x68\x64\x84\xc2\x18\xd3\xd2\x38\x6e\xd3\x0c\x93\x2f\x57\xc6\xbe\xa6\xd8\x78\xff\xfa\xf6\xef\xed\xc3\xdc\x5d\x23\x89\x12\x12\x1e\x7f\x82\x63\xa6\xac\xe9\xc6\xf0\xc4\x24\x4a\x34\x7d\x95\x4c\xa3\x01\xae\xed\xb2\xf6\x6c\xe1\x53\xa5\xa1\x3a\x89\x61\xc7\x1b\x3e\x78\xa2\x23\xc2\xbf\x90\xcc\xab\x9a\x9f\x37\xb5\x95\x4e\x9a\x17\xe0\x6c\xa8\x98\x64\x51\x60\x94\x7f\x95\xb2\x1e\x32\x17\x9c\xa0\x6e\xcf\x6c\xcf\xe1\x81\xa0\x29\x47\x15\x03\xf0\xf2\x60\x43\x1d\x8d\x2c\x22\x98\x14\x12\x43\x1b\xad\x9a\xea\xf1\x74\x16\x43\x2a\xd0\x98\x74\x13\xda\x57\x48\x28\xa9\x74\xea\x60\x85\x4f\xa8\xf5\x4c\x0d\xa9\xf2\x12\xd3\xd4\x70\x43\x4b\xb8\xde\x51\xfe\xf6\xbf\xdd\xbe\x4b\x22\xf7\xa8\xde\xd5\xda\x86\x5f\xb5\x04\x61\x52\xc7\x52\xdb\x94\xee\x4c\x19\xc3\xfc\xe1\xc7\xd6\xda\xa8\xd1\xe4\x45\xdd\xa7\x36\x2a\x2f\x49\x69\x73\xf7\x81\x59\xb5\x29\x74\x27\x63\xc8\x94\x1f\x18\x95\x80\x26\xa6\x2d\x72\xa8\x8b\xb2\x87\x3f\xbe\x30\xa7\x73\x27\xc5\x31\x74\x8b\xe1\xee\xd8\xc3\xa8\xdb\x16\xa1\x9f\x52\xfd\x84\xb8\x24\xdf\xfa\x55\xb4\xdf\x5b\x02\x0e\x3c\x4f\xdd\xf5\x82\x08\x3b\xce\x37\xe9\x17\xf6\x4d\xcb\xda\x56\x80\x36\x8b\x6f\xbd\x19\x54\xb3\xcf\xb8\xbb\x99\xce\xf3\xa9\x50\x8b\x54\x58\x49\x43\x37\x63\xb8\x27\x88\xc1\xf3\xa3\x56\x5a\x73\xd0\xc5\xd8\xff\xc4\xff\x3b\xba\x52\x2c\x05\x0d\x25\x07\xf4\x9e\x37\xcf\xdd\x43\x8b\x4f\xcf\x29\x2a\x89\x62\xc7\x75\x26\xc5\x52\x10\x7b\xbc\x53\x64\x20\x33\x00\x3c\xff\x63\xb2\x76\x31\x08\xe1\x54\x02\x29\x41\x05\x9a\xc0\xfb\x51\x97\x54\xeb\xb2\xfe\xdf\xc3\xb7\x94\xa6\x21\xc9\x2b\x2f\x8a\x2c\xa7\x5d\x63\xfb\xcc\x29\x46\x24\x93\x44\x76\xb7\xbd\x87\x9e\xfe\x66\x23\xe4\xd4\xe0\x66\x52\xcd\x68\x53\x93\xb7\x7c\xe5\xe9\x17\xc0\x42\xcf\x01\x21\x77\x27\x42\xd7\xec\xea\x2e\x26\x52\x2c\x56\xc4\x5b\x22\xef\x05\xfc\xec\x7d\xfd\xfe\xb6\x6f\x38\xef\x2a\xc6\xa4\xb5\xbe\x20\x66\xe2\x13\xaa\xac\xc4\xcb\x65\x75\x7c\x27\x3c\xe5\x81\xa3\xf5\xd5\xb3\xda\xb2\x0a\xa6\x13\x18\x83\x67\xe5\x89\x59\x7f\xcc\xdd\xdd\x14\x27\xb1\x1f\x0d\x4c\x05\x11\xf3\x44\x8b\x9d\x79\x79\x35\x10\x15\xf7\x94\x10\x23\xc1\x81\x5e\x4e\x3d\x5a\xab\x9b\xee\x14\x60\x42\xc1\x2f\xe5\x04\x2f\x01\xe8\x6c\x9c\x7f\xb4\xa7\x09\x9e\x18\xac\x82\x5b\x89\xe9\x27\x7b\xf5\x04\x25\x64\x42\x09\x13\x5d\x94\xf5\x29\xc7\x9d\xc8\x46\x99\x54\x25\x43\x4e\xb2\x45\xa7\x5c\xda\xbd\xc3\xf0\xb1\x24\x8f\x03\x4a\x50\x74\x62\x26\xd3\x2f\x57\x45\x46\xc9\xef\x00\x9f\x0f\xa7\x03\xe9\xd9\x60\xd5\xc6\x76\x4a\x7b\x8a\x58\x18\x3b\x33\xa1\xb4\xa2\xce\x14\xae\x2c\x2d\xdf\xbf\x0f\x02\x1c\x5e\x5d\x47\x8a\x74\x4c\x46\xc9\x41\x5b\x1e\xef\x2b\x1a\xb8\x13\x62\x09\x6e\x6b\xb2\xca\xf2\x27\x22\xa1\x78\x4d\x34\x50\x9c\x6a\xf3\xff\xec\xad\xa1\x17\x1a\x5b\x08\xa3\x2d\xb0\x3c\x95\x97\xca\x02\xe8\xfb\x86\xef\xbc\xbe\xfd\x76\x65\xc8\x74\x13\x3e\xfa\x81\xa6\xf2\x8e\xbd\xa3\x66\xe1\x6b\x7e\x78\x60\x1a\xd5\x2e\x98\xe1\xff\xba\xb3\xe2\x84\x83\xc9\x4b\xbd\x75\x7b\x2c\xf4\x9b\xc8\xd2\x42\x99\xe9\x15\xb5\x07\xac\xe7\xd2\x2f\x24\x3c\x08\x65\x34\xfa\x39\x70\x0c\xbc\x94\x60\x6f\xad\x8b\x3a\xc3\x90\x03\x2d\x45\x54\x4f\x6e\x42\xa9\xde\x0f\x45\x71\x48\x33\x2b\xb1\x31\x9b\x99\x57\xb5\x47\x52\x4d\x2b\xa7\x91\xb0\x1a\x14\x17\x5d\x0b\xa1\xb8\x33\xdb\xde\x60\x3d\xcf\x6a\x92\xb8\x6d\x13\xc5\x18\x83\x97\xda\x49\x60\xf9\x29\xf7\x27\x75\xc9\x05\x77\x2d\x31\x20\x0d\x07\x71\x3a\xcf\x72\xd8\x9f\xab\x6c\x34\xb9\x61\x92\x46\x94\x31\x7c\x2a\x8a\x83\xa1\x5a\x34\x11\xd5\x08\xab\x7c\xba\xc4\xe4\x61\x1a\xa7\xb4\xa6\x99\xfd\xc5\xee\x48\x3a\xa9\xbb\x66\x9a\xd9\xd5\x53\x5a\x29\xee\xb4\x24\xf2\xc2\x9e\xf6\xdf\x2d\x62\xb5\x30\x11\x22\xaa\x3e\xae\x04\x53\xa1\x28\xff\x64\x9d\xf4\x67\xc7\x6c\x74\xeb\x29\x86\xc6\x56\xb6\x82\x77\x34\xeb\x97\x9c\x84\xf2\x0e\xf2\xc6\x28\x62\x4e\xf9\x6e\xca\xc4\x7f\xdb\x83\x81\xff\x50\x69\xca\xf1\x1b\xdc\x8a\x3a\xfc\x3d\xa1\x22\x72\x18\x13\x59\x71\xdf\x15\xfd\x51\xb2\x88\xaa\xb4\x4f\x98\x37\x57\x2c\xba\x14\x1a\x4a\x6e\x1e\x01\x9b\xe0\x62\x8d\x79\xb3\xc2\x3d\x57\x66\xef\xdf\xb6\x81\x84\x12\x41\xf9\xe9\x40\x5b\xfd\x57\x92\x55\xac\xba\xc3\xc2\x90\x86\xf2\x37\xf9\xa1\xaa\x81\x31\x11\x43\xf4\x43\xea\x09\x04\x13\x5d\x98\x1c\xeb\x00\x3d\x85\x3a\xe5\x74\x77\xff\x85\xff\x0e\xf2\xaa\xa8\x59\x92\xf8\x5d\x25\xad\xcf\x9b\x1b\x4c\x8c\xa8\xc1\xa4\x19\x6f\xa0\xf0\xb9\xe7\xb7\xe7\x0b\x23\x48\x8b\x9f\xce\x62\x73\xe8\xbd\xde\x17\x59\xd1\x5e\x24\x68\x4e\x2e\x8e\x98\xcf\xb2\xf2\xa6\x74\xee\x37\x4c\x7b\x89\x08\x78\x8b\xc9\x33\x64\xc4\xfe\xef\x6b\x4f\x48\x42\x02\x42\x5d\x1c\x32\xd9\xec\x92\x27\x00\xfe\xbd\xff\xd5\xdb\xa3\x6b\x3f\x36\x43\xf4\x66\xd5\x1b\xd1\x13\x02\x6e\xc3\x4e\xaa\xfd\x24\xa0\xad\x99\x2b\xbc\x2f\x8a\x62\xaf\x8a\x0f\xf7\xda\xb5\x9f\x70\xf4\xad\x59\x54\xc7\xdf\xd0\x41\xc2\xa9\xa4\x44\xe6\x60\xcb\xed\xf7\xdd\xf6\xcf\x1f\xed\x31\x10\xb4\x21\x59\xd8\x2c\xf6\x54\x56\x49\x07\x92\x25\xd0\xae\x8c\x4d\x4f\x59\x63\xd9\x8b\x6a\x5a\x36\x5e\x6f\xba\xd0\x81\x4a\x88\x09\x4d\x3a\x58\xab\xbb\x87\xbb\xd5\xec\xde\xf8\xe2\xb8\xdf\x0e\x7d\x4e\xb5\xc5\xe3\x1e\x24\xce\x5b\x26\xc2\xa4\x71\x6d\xbf\x18\x77\xa5\xf8\xa6\x43\xce\x49\x46\x6c\x8e\xcd\xfc\x64\x6c\x08\x87\x53\xbc\x8e\x01\x2c\x50\xa0\xee\xf5\xea\x9b\xf9\x70\x08\xeb\x58\x1a\x8a\x8e\x51\x8a\x58\x83\x13\x73\x64\x3a\x56\x7e\x6a\xa5\xb5\xa9\x68\x65\x62\xcd\xe1\xd9\x49\xac\x69\xee\x32\x89\xba\xcd\x6b\xf1\x91\xdf\x60\x5e\x1c\x1c\x8a\x6a\xf8\xba\xfa\xef\x2c\x49\xc3\x41\xea\x5c\x51\x8c\xa4\x4f\x34\x42\xdd\x2d\x24\x68\xed\xf2\x8d\x76\xb2\xeb\xf9\x3a\x45\x4d\x14\xc6\xf9\xfd\x8f\x81\x2a\x94\x3d\xcc\x18\x04\x16\xb6\x49\x7a\x01\x9b\xd3\xe1\x00\x65\xf6\x5f\xbc\x30\x48\x65\x9a\xf1\x38\x85\xdf\x43\x14\xfc\xf1\x69\xda\x30\x37\x9c\x2d\xfb\xf4\x5c\xab\xb9\xcf\x28\x5a\x3e\x40\x96\x93\xe0\x7a\x95\xbd\xf4\x39\x42\x9a\x2b\xa0\xb4\x70\x67\x93\x32\xa1\x15\xca\x34\x30\x3f\xec\x8a\x89\xee\x73\x18\x49\xa1\xe1\xb3\x03\x40\xa2\x7b\xb3\xfb\xa6\x19\x20\xbd\x49\x5d\x83\x8a\xbd\xc8\xda\xc9\x2c\x3f\xeb\x12\x06\xb3\x95\x06\x94\x14\x19\xd8\x3c\x3a\xaa\xd5\x5f\xe3\x2e\x23\x98\x4f\x19\xe4\x6c\x51\x8c\xcd\x5f\x98\x16\x02\x84\x0b\xb0\x9c\xc4\x3c\x6d\x0c\xb6\x85\xfb\xbf\x4f\x28\xb3\x63\x86\x03\x8a\xf9\x3f\x46\x31\xa4\x16\xca\xa3\xa0\x63\xbb\xde\x6e\x2c\x5d\xb8\xbd\x47\x29\x12\x2a\xad\xbb\xad\xcb\xa2\xc7\x3e\x1d\xbd\x38\xe5\x45\xc4\x90\x72\xb2\x94\x45\xb9\x20\x73\x4a\x0b\x08\xb9\x24\xd1\x5f\xb9\x4c\x60\x64\xe6\x77\x44\xe8\xb9\x1f\xe8\x66\x0f\xd7\x28\x8d\x91\x51\x81\x35\x54\x78\xd5\xf7\x45\x61\x5a\x33\x49\x3c\xf9\xd1\x12\xa4\xb5\x36\x45\x3c\xb1\x07\xf9\xb6\x82\xca\x2e\x6d\xdc\xf3\x98\xa6\x8a\x34\x39\x01\xec\x5b\x6a\xc9\x30\x8c\xee\xdf\x00\xf7\x3c\x08\xc1\xe8\x2b\x6d\x68\x66\x1b\xf4\x5c\xee\xf9\x96\x11\xd6\x6a\xdb\xda\xbf\x07\x71\x20\x6d\x94\xb7\xa9\x5e\x7f\xe0\xb9\x9f\x4e\x68\x0e\x1b\x80\xa5\x79\x03\x6f\x98\x5b\x14\xd4\xef\x62\x5d\xee\x05\x10\x11\x42\x6b\xf6\xbc\xfa\xb3\xb7\x74\x72\x2f\xf4\x42\x6e\xc5\x86\x88\xc0\x3c\x5d\x9d\xe5\x5e\x18\x68\xdf\xe0\x90\xf2\x66\xb6\x7b\x72\xfc\xdf\x61\xab\x28\x64\x24\x8f\x87\x9f\x97\x49\x6e\xee\x45\xd2\xf7\x22\x47\xab\x30\x10\x7a\x5a\x74\x7b\x84\xfd\xb6\x25\x37\x52\x37\x7d\xff\x4d\xee\x45\xa8\xa9\xa2\x3d\x47\xb0\xba\xb9\x16\x26\x12\x1a\xe9\x15\xd5\x36\xd4\x31\xf1\x76\x50\x16\xf9\x4f\x02\x94\xbe\xf4\xa4\x99\xb8\x17\xb3\x34\x05\x17\x97\x3e\x7e\x10\x02\xb7\x89\xac\x86\x2f\x2d\xf1\x43\xd3\x6f\x9b\x88\xa2\x13\xb1\xba\xbe\x26\x70\x2f\x49\x52\x87\x38\xff\x9e\x55\x7d\xbe\xe7\xe8\x83\x24\xe0\x87\x6d\x9a\x7d\xf1\x0a\xe5\xd8\x5a\x8e\x7b\xa9\x97\x12\x4c\x72\x75\x76\x42\xa9\xd5\x6f\x29\x64\xdc\x4b\xfd\xc8\x37\x84\xd6\x62\xbf\xe8\x02\x34\xee\xa5\xc2\xe0\x7b\x5b\xf6\xc2\x78\xd4\x0d\x3f\x16\xf3\x7d\x0a\xbf\x7f\x5d\x05\xad\x73\x8f\x25\x92\x8c\x0a\xe1\x8f\x89\xe5\x85\x7b\x4c\x71\xd2\xf2\x5b\x7e\x5e\xcf\x13\x72\x8f\x21\x78\x5e\xab\x09\x3d\xd4\x7e\x9b\x7e\xc9\x5c\xc7\x16\xd4\x42\x2e\xfb\xd8\x0a\x76\xb7\xdb\xef\x6a\x52\x9d\xdc\x9e\x0e\x3c\x4a\x44\xab\x30\xf9\x6f\x94\xf5\x92\xfc\x57\x71\xf4\xfe\x85\xcf\x68\x68\xcc\x4a\x78\xb1\x2a\x67\x1b\xb8\x14\xed\xf9\x5b\x86\x89\x6c\xf4\x08\xd2\xf7\x95\x9d\xa0\x64\x71\x2a\x2b\xac\xee\x31\x7f\x79\xad\xdd\xc7\x92\xb1\xa2\xc2\xda\xb1\xe9\xdd\x51\x9b\x78\xe3\x9e\xd4\x9e\xf2\x7b\xca\xe2\xc3\x7e\xaf\x3c\x41\xa8\x8d\xcd\x76\xf6\xd4\xe5\x3b\xdc\xc1\x20\x14\x76\xbf\xd4\x2c\x06\x26\x7b\x7d\x45\xfa\x91\x7b\x2a\x4c\x29\xcc\xdf\x17\xf2\xcd\x62\x86\xaa\xf6\x4a\x2c\x1c\xda\x05\x6f\xbf\x8f\x7a\x06\xfa\x8a\x00\x65\xd5\x6b\xf1\xd1\x74\xc2\x87\xd3\x45\x25\xd8\xb5\x4c\x25\x6d\x5f\x9a\x98\x78\xf4\x01\x50\x84\x9a\xf5\x4d\x56\x37\xa7\xc3\xb6\x78\xea\x4b\xe2\xda\x96\x3a\x30\x79\xee\x76\x62\x9c\x4a\x87\x73\x4f\x47\x3e\x85\x2c\x3f\xb3\xf7\x4c\x99\x75\x73\xeb\xe0\xeb\xcd\xd1\x98\xb6\xa4\x96\xd3\x8f\x65\x55\xe4\xb0\xbf\x31\x6b\xb0\xbd\xe0\x6d\x31\x9e\xd4\x34\xc4\x8e\x5e\x6d\x39\xfa\xa8\xe7\xe7\x91\x0c\x36\xf7\xbd\xc0\x37\x8c\x1c\x1a\xef\x17\xc4\x77\xee\xfb\x3e\x23\xc3\xe0\xfb\xbb\x87\x9b\x3e\x22\x92\xfb\x7e\x9c\xd2\x62\xf1\x0a\xd5\x5d\x3d\x47\xcc\x2d\xb5\x63\xfc\x13\x01\x17\xa4\x33\xf4\xa5\x91\x5c\x7f\x24\xf8\x81\x64\xc2\x7a\xca\x96\xcd\xce\x8c\x02\xbc\x66\x20\xf5\xf2\x4c\xdc\x0f\x03\x45\xda\x0e\xa7\xea\x8a\xa6\x4b\xd3\x44\xd3\x54\xb5\x99\xdd\x2f\x83\xdd\xf2\xe1\xa6\x3d\x17\x12\xa2\x1e\x80\x52\xdf\x4e\x4d\x84\x30\x3a\x4f\x19\xfd\x7e\x68\x82\xa9\x8d\x35\xa5\x9c\x9e\x31\xfd\x48\x09\xaa\x14\xd4\xce\xa7\xee\xc2\x66\x93\xfb\x91\x8e\x9c\x48\x84\x33\x4a\x0a\x52\x77\x2f\x89\x2f\x48\xde\x80\x62\x69\xba\x8b\x6d\x41\x26\xce\xc6\xa6\x6f\x7a\x7a\xf2\x53\xad\xa8\x8c\x41\xd6\xc6\xc4\x7b\x30\x92\xf6\x1d\xf0\x8f\xfb\x5c\x79\x94\x66\xf9\xeb\xca\xad\x73\xad\x8d\x46\x20\x56\xf5\xce\x68\x71\xec\x74\x96\xab\x87\xe2\x7b\x96\xd7\xb3\xba\xe5\xb4\x0f\xce\x82\xd0\xf0\xc9\x08\x8d\xdf\x4b\x4f\x0d\xd7\x4a\x1f\xac\xcd\x9b\x38\x9d\xfb\x80\x0b\x77\x34\x66\x51\xe0\x56\x3a\x8a\x7a\x0d\x08\xc6\xdd\x3a\x60\x2a\x9d\x34\x1b\xe4\xea\x4c\x88\xdb\xcb\x78\x9e\xfb\x22\x95\x54\xc9\x6e\x37\x83\xab\xc7\x71\x0b\x48\x49\x27\xad\x04\x07\x6c\xe2\xbe\xd0\x1e\x19\xcd\x51\xd5\x7a\x5a\x69\x65\xd0\x23\x85\x96\xa4\x37\xf7\x52\x14\x56\x24\xda\x1f\xbf\x4c\x99\xc4\x24\xbf\x7d\xc8\x72\x9a\xc7\x46\x77\x21\x53\x9f\xc8\xe9\x68\xf8\xd3\x81\xbb\x13\xa9\x4c\xd1\xa8\x59\x47\x8b\xa2\xec\x66\xc7\x2b\xcb\xe0\x97\x3a\xb5\xdc\x57\xb1\x71\x06\xd9\xc1\xf1\xb8\x77\x2a\xfa\xa3\x26\x3c\x0c\xa1\xd3\x53\xea\x2a\xae\x13\x7a\x3f\xdc\x57\x18\x51\x4e\x0e\xda\x1a\xd2\x70\xc9\xf0\x91\x73\xca\x54\x7c\xe0\x8e\xfa\x51\xdd\x9f\x23\x50\x19\xf6\xd1\xf6\xfb\xdd\xd3\xcd\x6e\x7b\xb7\x7c\x22\x53\xbf\x9d\xb1\x87\xdd\xde\xad\x96\x5d\x4b\x4d\x59\x4f\x85\xef\x16\x11\xea\x8e\xe8\x20\xa0\x18\xb1\x89\x8b\x77\x7e\xfb\xd7\x30\xa2\xb2\x59\x3e\x96\x07\xe3\xbe\x16\x8c\xf0\x4f\xff\x3e\x1d\x8e\x77\xee\x56\x02\x2f\x36\x80\xc4\x16\x85\xda\xfc\x49\x11\xac\x69\xfb\xfc\xb0\xfc\x97\xfb\xa3\x1f\xa4\x0c\xac\x70\x43\x4b\xe6\xe3\x81\x1f\x23\x19\x77\x62\xfd\xba\xca\xf2\xb6\xa3\x06\x3e\x0f\xa5\x24\x72\x51\xf9\x86\x35\xed\xe1\xcd\xb8\x1d\xcf\xc8\x81\x0f\x9a\x5b\x91\xb9\xc7\x53\x3d\x27\x7c\xce\xf4\xe2\x13\x34\x53\x66\xd8\x09\x4a\x36\x21\xde\x24\x86\x8d\x07\x01\x1a\x81\x84\x0a\xf7\xfb\x35\x34\x9d\xb9\x0f\xf7\xe8\x44\x0b\x86\x67\x85\x51\x4c\x9b\x24\xdc\xc3\xb1\x42\x65\xa0\xea\x6e\x62\x0d\x42\x9e\xb6\xf9\x64\xa2\xc9\xf4\x77\x81\x3c\x88\x22\x19\xdb\x18\xe1\x4e\x16\x13\xfa\x3e\x3c\x88\x62\x8f\x16\x4f\xd9\xc5\xb6\x41\x0c\x8a\xb4\xaf\x9d\x27\xcf\xe7\xae\x36\xa8\xb5\xe1\xad\xc5\xc2\x68\x60\xf5\x75\xa0\xe7\xe7\x71\x23\x14\xe4\x26\xa2\xf7\xa7\xcf\xdb\x9e\x26\x58\x2f\xca\x0b\x12\xc6\xbd\xce\x24\xa6\x09\x4a\x42\x77\x2b\x09\x0f\x09\xec\x93\xe3\xc7\xec\x80\xb9\xa2\x22\xe5\x17\x4e\x31\x3c\x48\xa4\xa4\xd2\xda\x4e\x42\x3e\xb1\xcd\x18\xbd\xde\x34\x32\x1a\x59\x3b\x28\x91\xb4\xde\x67\xb9\x6a\x8b\xf3\x96\xc0\xe6\x9a\x0a\x49\x05\xcb\x9d\x4d\xf4\x7d\x05\x6a\xe1\x41\x2a\x0d\x74\xb6\x2e\x4f\xcd\x8c\xbb\xe9\xe9\x7a\xf2\x20\xc5\x88\x88\xac\xc6\x02\x7f\xf3\x7d\xf6\xb4\xdc\x3d\xde\xee\x2c\x2c\x7c\xd3\x36\xd3\x8c\xe2\xda\x2d\xe4\x2f\x45\x5f\x11\x83\x07\x8c\xc5\x56\x80\xa3\xbe\x59\xfe\x1c\xbd\x73\xae\x94\x79\x9f\x45\xae\xb3\xf2\x40\x68\x3d\x6b\xe3\x40\x9f\xe8\xa6\x68\x76\xd0\xed\xde\xb9\xf7\x25\x00\x78\x6a\x2a\xee\x8f\x47\xec\x0d\x1d\x50\x21\x45\xfe\xe5\xa4\x99\xc0\xf4\x87\x10\xa1\xe1\xdc\xdd\xac\xee\x1e\xb6\xee\x42\x42\x33\xda\x5b\x64\x15\xd5\x62\x0e\xa8\x32\x28\xc7\x7d\x46\xaa\x84\xb2\x32\x39\x7e\x5a\xee\x44\x13\x17\x3d\x14\xee\x22\x8a\x9b\xb2\x15\xcd\x4f\xf4\x0e\xdb\x57\xa6\x34\x52\x18\x77\x80\x4f\xfa\x9c\xdf\xfb\x49\x60\x1e\xe8\xd4\x78\x5e\xbf\x60\xfd\x8e\xaf\x25\xfe\x47\x59\x02\xef\x64\x04\x1b\x7a\x89\xa6\xf2\xb5\x03\x09\x2d\x8a\xc3\x21\xab\xeb\x96\x08\xcd\x43\x2f\x35\x96\xc2\x65\x51\x43\x8d\xf3\xac\xb6\x46\xe1\x7d\xc8\x37\x0f\x3d\xf0\x28\xda\x15\xe5\x69\xac\x58\xd9\x1c\x4c\x91\xbb\x08\x66\x55\xa8\x1e\x3a\x9a\x87\x4d\x18\x0f\x5d\x1e\x67\x03\xef\x59\xfe\x52\x4d\xe1\xb8\x79\xe8\x69\x15\x40\xcf\xe1\x62\xf4\x3b\xbe\x17\x82\xc5\x49\xcc\xb4\xce\xf6\x19\xd4\x78\x3d\x75\xc3\x43\x9f\x01\xd1\xac\x0e\xf0\x86\x4e\x23\xbf\xbf\xd2\x86\xbe\x88\xe3\x56\xca\xa4\x4f\xc8\xe4\xa1\x8f\x3e\xd7\xad\x01\x55\x6d\xd5\x03\x06\x73\x7f\x18\x30\x45\xa8\x3b\xb7\x05\xb8\x46\x66\x73\xcd\x41\x13\xc1\xe9\x58\x16\x9f\xd9\xe5\xc5\x24\x97\x76\xa6\x6b\xe6\x0f\x37\x05\x0f\x43\xef\x3f\x46\x57\x94\x9a\x59\x42\xee\xd8\xbb\x85\x87\x61\x6c\xe0\x09\xef\x84\xb9\xea\x2c\x59\x79\x18\x32\xa3\xb0\x42\x1b\x05\x0a\xaa\x28\x05\x34\x65\xd3\xc3\xc3\x90\xfb\x24\x8f\x69\xa6\xb6\x07\xfc\x98\x54\xa6\x1c\xfc\x72\x94\x72\x8a\xf3\x09\xeb\xec\xe6\xa2\xbd\xfb\xf5\x98\x61\x80\x0e\xb6\x45\xa9\x8d\x2e\x01\xc5\xc3\x18\x3c\xe5\xb5\xc2\xcf\x64\x5e\xb4\x2d\xe6\xa7\x2a\xcb\x7b\x05\xde\xb1\x72\xce\x6f\x78\x11\xc3\x5e\x14\x43\x40\x77\xf7\x58\x66\x2f\x59\x5e\x6d\x9b\x50\xad\x57\x12\x18\x3e\x7d\xe2\x2b\xb2\x5d\xbf\x0b\x06\xb3\x57\x98\xf8\x9a\x32\xed\xb7\x88\x0b\xc7\x4a\xfb\xed\xb4\x32\xba\x91\x24\xe2\x34\x94\x9b\x20\xce\x4c\x12\x8b\xe2\xba\xe7\xea\xef\x2e\x26\x7d\x2a\x0e\xfd\x59\xec\x0b\x7a\x1a\x77\xa7\x8c\x4b\x90\xad\xf8\xfc\x19\xcb\xdb\xa2\x3c\xfc\x71\x59\xc6\xe3\x21\x53\xa6\x1a\x06\x46\xcb\xdf\xc9\xe6\xfc\x0d\x91\x58\x1e\x72\x96\x10\x6e\x7c\x5f\xd4\x35\x96\x67\xc3\x91\xb0\xc7\x40\x46\xba\xcb\x35\x0c\x44\x7a\x79\x28\x02\x41\x7c\xa9\xda\x58\x04\xd9\xc0\x1a\xcb\x6a\x08\x2c\x73\xad\x55\x40\xbd\x43\xd2\xcb\xea\x13\xe2\x78\x28\x35\x33\x0e\x33\x74\xe2\xb6\xd8\x20\xaa\x87\x66\xfe\xbd\xdc\x2b\x87\xca\xf3\x8d\x60\x16\xd6\x59\x89\xbf\xb2\xbd\x5a\x42\x75\x76\x3c\xf9\xdf\xff\xd3\x5e\x46\x91\x78\x3b\xcd\x1f\x13\xc9\xa1\x50\x29\x74\x02\x1b\xb3\xe3\xd1\xb1\x06\x78\x88\x41\x40\x33\x93\x38\x95\x79\x6d\x2d\xaa\xba\x63\x89\xc1\x44\xd0\x80\xfb\x99\x95\xf5\x09\xf6\x4b\x62\xec\xb5\x4d\x24\x8b\xed\x10\x1a\x8c\xf9\xc8\xf3\x0c\x33\xc7\x16\x4a\x8d\x7c\xab\x3b\xe6\x7b\x44\x31\x37\xd5\xe6\x45\xb3\xcb\x3c\x40\xab\x99\xc2\x23\x8f\x47\x44\xb1\x5f\xc5\xfd\x9e\x1e\xf9\x11\x52\x34\xb2\x81\x77\x34\x0c\xd2\x07\xac\x3f\x8a\xf2\xad\x6d\x00\x1e\xc5\xe4\x77\xea\xb3\xe3\xbb\xf3\x28\x08\x38\xad\x3c\xaf\x50\xfd\x2c\x6a\x54\x8f\xf9\x4d\x21\x4f\xcd\x1c\xbc\x2e\xec\xcc\x3e\x4a\x08\x45\x41\x18\x39\x45\xd1\x55\xcb\x46\xed\xeb\x23\xf0\x28\x88\x22\x4a\x87\xac\x7b\xa9\x9f\xf6\x58\xca\x94\x01\x12\x89\x7d\x26\x7f\xe0\xf9\xaf\xdb\xa2\xfc\x73\xf8\xe5\xa3\x80\x29\x0a\x8c\x1f\x3f\xf2\xe6\x0d\x19\x09\xfd\xf6\x0a\x4a\x7a\xc6\x77\xec\x3d\x2b\x07\xa2\xfe\x3c\x0a\xd0\x60\x82\xdb\xaa\x5d\xfb\x77\xad\x0d\x58\x34\x37\xd6\x67\x93\x53\x75\x14\xfa\x40\x61\x5a\xe7\x83\xd3\xa3\x05\x5f\xa4\xd1\xae\x19\x4b\xf1\x28\x0c\xd1\xb7\x58\x9b\xa5\x05\xf5\x8c\x9e\x30\xe4\x21\x75\x8e\x9b\xf5\xa3\x0b\x2a\xa2\x28\x14\x54\xa6\x5b\x6c\xaf\x68\x42\xb9\x76\x49\x08\xdd\x4e\xb9\x19\x5f\x2d\x8c\x98\x47\x71\x24\x98\x21\xf8\x64\xe5\x34\x70\x93\x47\xb1\x8c\x1d\x1d\xc4\x59\x5d\x8c\x5e\x44\x82\x21\x31\xd5\xbf\xfd\xf9\x73\xf1\x50\x5c\x77\x35\xe7\x51\xea\x05\xb4\xbc\xf6\x1c\x16\xfe\xd6\x66\x75\x72\x86\x8a\x52\xdf\x70\x6a\x57\x77\x0f\xbb\xa7\xe5\xed\xf3\xc3\x0d\x29\x38\xef\x6e\x96\xe4\x13\xb4\x7c\x72\x8f\xc9\x58\x40\x01\xfb\x6c\x38\x0d\x4e\xa7\x46\x22\x0e\x46\x65\xb5\x42\x4b\xcb\xe8\x55\xd5\x78\xc4\xd1\xa7\x7d\xfa\x2c\x7f\x19\x94\xeb\x9b\x23\x8a\x6a\xe6\xc5\x01\xe5\x57\xf9\xa9\x08\x98\x4f\x13\xa4\xc0\xda\x57\xb8\xaf\x61\xa4\x7f\xcd\x23\xe1\x1b\xcd\x62\x50\x6a\x83\xe5\x3b\x96\x7f\x4c\xd5\xb3\x47\xf7\x2d\x3d\x93\x43\x2d\xd1\x48\xe9\x9f\x6d\x7c\x3f\x7e\x99\xc3\x11\x2a\x7d\x9f\x78\x31\xe2\x74\x1e\xac\x55\xc3\x0f\xa7\x42\xa3\x87\x98\x55\xb3\x53\xfd\x7a\x63\xe6\xa2\xd1\x14\x1c\x29\x89\xd2\x40\x66\x3a\x54\xda\x48\x28\x82\x47\x4a\xc7\xe4\x21\x69\xd4\x9e\xc6\x9c\x8f\x2e\xca\x8c\xd0\x53\x24\x45\x61\x2a\x4d\x6b\xa8\x2a\x1b\xa5\x3a\xa3\x68\x1e\x61\x14\xa4\x76\x4b\xdc\x17\x18\xb9\xae\x4a\xc4\x23\x64\x9e\xec\x98\x39\xdb\x57\xcb\x9d\x1d\x3d\x09\x0a\xa4\x42\x9b\x99\xb0\x97\x95\x2c\x8b\xab\xa1\xe0\xe8\x2b\xe8\x18\x3c\xe3\x05\xb9\x47\x28\xa9\x4e\xfa\x50\x94\x07\x6b\xce\x5f\x4d\x03\xd4\x79\xa4\x93\x20\x4d\x6c\xe2\xa5\x2c\xde\xa9\x74\x33\xf8\x45\xeb\x96\xc2\x63\x5f\x70\x2a\x46\x11\xf8\xd6\x86\x5b\xa6\x8a\x32\x79\x43\x71\x18\x32\xda\xec\x2e\x5e\xb3\xfd\xde\xc8\x56\xfc\xe1\x0e\x81\x24\x9d\x69\x2a\x94\xd3\xfd\xb9\x09\xa8\x43\xc6\xf1\x38\x14\x40\x69\xc0\x66\xe7\xd3\x7c\x4e\x62\xe2\x6e\x0b\xe3\xaf\xe9\x1a\x45\xbe\xa0\xcc\xbe\x65\x1f\x3d\x21\x71\x4d\x9f\xb0\x2a\xf6\xad\x03\x0a\x8f\x23\x10\x94\x38\xa0\x30\x72\x47\x12\x65\x19\xaa\x1d\x3a\x36\x35\x8f\xe3\x34\x49\xf8\x05\x41\xf3\xba\xcd\xd2\x64\x77\x8d\x63\xc9\x1c\xe1\x6c\x7e\x3a\x1b\xe5\xbc\x5c\xad\x4b\x7c\xcf\x8a\x53\x65\x35\xac\x06\xe3\x20\x4e\x38\x38\xd6\xdf\x6d\x59\xe4\xf5\xd8\x87\x8a\xc7\x89\x0e\xa9\xb8\xb1\xa3\xa9\x74\x90\xd4\x88\xd3\x30\x89\x58\x5b\x44\xbf\x60\x2f\xf2\x38\x8d\x7c\x5a\xe5\x3e\x20\xa3\xe1\x60\x1c\xb6\xdc\xe9\xcc\xd3\x89\x75\xb0\xf8\x89\xb9\x2a\xca\xab\x52\x3b\x3c\x66\x51\x40\x1b\x69\x28\xc5\x5f\x97\x7e\x42\x63\x3c\xea\xb0\x2f\xf0\x48\x12\xbf\xa2\xee\x0c\x50\xee\x8b\x51\x15\x37\xe6\x0c\x35\x76\x5e\x03\x65\x9d\xf5\xf4\x98\x78\xcc\xb9\x4f\x79\xfb\x22\x5f\x3a\xb7\x4d\xc7\xa5\xea\xc6\x59\xcc\x55\x2c\x2d\x3f\x63\x61\xfd\xc3\xec\x6b\x9f\xbc\x31\x88\x24\x11\x52\x0d\xa9\xd7\xc5\x8c\x84\x1a\x31\x43\xdb\xb5\x4b\x91\x08\x7f\x24\x0e\x37\x3b\x88\x0c\xf3\xfa\x3e\x7b\x79\x6d\x56\x4e\x3c\xf6\xbd\x41\x06\xdb\xd0\x18\x94\xa2\x7c\x70\x4e\x9a\xfd\xc7\xa2\x82\xfd\x85\x98\xfa\xa0\x3a\x67\xcf\x13\x51\xea\xf5\xd3\xc3\x26\x3d\xb9\xd3\xbf\xa3\x00\xf2\x58\xc6\x2d\x50\xc4\x72\x1d\xa9\xa4\x4b\x90\xd5\xde\x7c\x18\x4b\x60\x54\x1b\x7f\x7a\x2d\x54\xe6\xf4\x5a\x78\xac\xbc\x80\x62\xb4\xa5\xd1\x47\xfb\x62\x39\x89\x55\x1a\xf0\xb4\x27\x90\xd5\x6c\x3b\x6e\x8b\xf2\xa6\x84\x8f\x8b\x12\x7d\xac\xd2\x94\x1a\x37\x71\xa2\x95\xfe\x19\x35\x90\x9a\xb2\x77\x66\xea\x6b\x23\xf2\xfe\x5b\xf5\x93\x49\x56\x7f\x12\xfd\x63\x4a\xb6\xb4\xfb\xbf\xfd\x40\x3b\x46\xdf\x08\xdc\x3e\x3f\x7c\x73\x89\x98\x18\x03\x20\xe0\xce\x6a\xb9\x9d\xfd\xd9\xc1\xda\xdd\xd1\x38\x92\x76\x90\x50\xa5\xc9\xd0\x1d\xd6\x7b\x18\x49\xe7\xf0\x18\xa5\x21\xdf\x38\xa1\x23\x23\x19\x66\x0f\x6a\xae\x28\x13\x6b\x1e\xf0\xa9\x20\xfb\x77\x93\x7e\x9d\x06\x5a\xf2\xc4\x4b\x64\x62\x92\xec\x87\x23\xec\xb7\x24\x06\x9e\xe5\xfe\x04\xd6\x6c\xe2\x5c\x1e\x91\xfc\x57\x55\x17\xf2\xad\xa3\x81\xf1\xc4\x03\xcf\xc1\xf3\x67\x25\x49\x22\x99\x61\x74\x8b\xa3\xc7\x49\xfc\x58\x12\x45\xcb\x0d\x8b\x0d\x59\x80\x7c\xdd\xff\x92\x20\x04\xb4\xdc\xeb\xf5\xfe\xf4\x92\x5d\x89\x0f\x93\x40\x78\x94\xd7\x32\xeb\xf1\x32\x57\xad\xf8\x26\x4f\xc2\x40\xc7\x06\xf1\x9c\xd5\xb3\xba\x86\xae\x88\xe5\x1a\xf0\xd4\x99\x52\x1a\xf1\xda\xbe\x12\xb1\x6d\x13\xfb\x9c\xa2\x9d\xdd\xb1\x2c\x24\x56\x55\xcf\x7c\xe9\x16\xaf\xc4\x60\x49\x1c\x18\x35\xf5\x12\x7b\x8b\x4c\x12\x33\xa9\xc3\x56\x2d\xf7\x3c\x98\x82\x93\x24\x61\xa4\x14\xda\x89\x03\x1a\xec\xf2\x7c\xc2\x29\x91\x27\xa9\x9f\x04\x41\x97\xc3\xba\x04\x5a\x5d\x89\xb2\x12\x16\x7a\xcc\x73\xb3\xa3\xd3\xab\x43\x65\x56\xc3\x1e\x47\x8f\x27\x4c\xa2\xc5\x3e\xea\x53\xae\x1e\x8a\xfc\xc7\x5f\x8b\xd6\xd7\xd5\xb6\xe1\xca\x14\x27\xea\xe2\x48\x4c\xb1\x9b\xe2\x00\x99\x25\xa6\xf5\x07\x79\xc2\x55\x4c\xb1\x2e\x1c\x8f\x45\x96\xd7\xd7\x61\x5a\x3c\x81\xd4\xa8\xf8\xd3\x38\xc9\x2b\x72\x46\xef\x39\x37\x0f\xd1\x0c\x89\xf0\x0d\x00\x14\x69\xf3\xd4\xb3\xf2\xe3\x89\x88\xb5\xd3\xc2\x21\x8a\xe7\xdd\x4d\x7b\x44\x01\xed\x1b\xaa\x93\x38\x64\x75\x3b\xa3\x4e\xcc\xa0\x89\x8c\x99\x6c\x49\x1d\x7a\xec\x33\xc7\x13\xc9\xa5\x07\xed\x70\x9c\x66\x3d\xd9\xa6\x2a\x30\x52\xd5\x12\xf6\xf2\x27\x56\x35\xed\x87\x2f\x33\x3c\x89\x4a\xd1\x24\x2f\x0d\x41\x6e\x5d\xf6\x60\xa5\xae\x09\xf3\x09\x8b\x89\xb9\xea\xac\x4a\x78\xa2\xb4\x11\x5d\xb8\x7d\xbe\xbf\x37\x49\xdc\xdd\xaf\xd9\xfd\xfd\xd2\xcd\x50\x09\x26\x40\xe7\x3d\xca\xba\xd9\x4e\xb6\x7f\x4e\x81\x2c\x41\xf7\x59\x55\xaf\xcb\xb3\xac\x8b\xb0\x3d\x24\x4d\xb9\xa3\xa6\x8d\x7b\xbf\x4f\xf9\x2d\x91\x68\x1a\x10\x92\xe8\xd8\xb8\x03\x1b\x8e\xe3\xb0\x3f\x68\x06\x14\x05\xd2\x2c\xd9\xcc\x46\x77\x8b\xc7\xaf\xa1\x2f\x89\x96\x92\x34\xfa\x40\x14\x83\x90\x3c\xd1\x2a\xa0\x92\xd5\x66\xbe\xe9\x6f\x68\x12\xad\x12\x26\x3b\x93\x39\x9a\x7b\x3a\x6d\x3e\x9e\x7a\x41\x2c\xfa\x0a\x56\xcb\xa6\x0b\x65\xf9\x4b\x2f\x31\x99\x7a\x91\x47\xf2\x17\x50\x62\xeb\x6f\x7c\x49\x47\x1c\x21\xdd\x78\xea\x25\x8a\xd6\xf9\x53\x4f\x63\x76\x28\x2c\xcc\x53\x4f\x1b\xc0\xcb\x3c\xab\x6f\x3f\x54\xff\xce\x53\x3f\xd0\xba\xe3\x40\xd0\xa1\x1e\x66\x28\xf5\xb9\xb1\xcc\xfa\x7e\x82\xfc\x45\x41\xf5\x9a\xfd\x1e\x81\x94\xfa\x2a\x21\x7c\x9d\x3e\xe5\x72\xe7\xcd\xe6\xdc\x5d\x2d\x0c\x14\x25\xca\x2c\xea\xe6\xcf\xf6\xef\x60\x12\x1b\x02\xe4\xdb\x97\x84\x3b\x9e\x86\x52\xd3\x96\xd3\xee\x37\xea\xd7\x4d\xd6\xfc\x72\x1f\x92\x77\x31\x13\xa5\x21\x26\x04\xa7\x24\xaf\xd7\x1b\xa8\x61\x5b\x3c\x88\xff\x77\x2a\x8b\xb2\xea\xe7\xe3\xd2\x48\x26\x61\xd0\x01\x64\x28\x1a\x26\x28\xc7\x54\x24\x96\xc6\x00\xdc\x3a\x15\x7c\x2b\x9a\x19\xae\x27\x8f\xc5\xd3\x24\xf1\x6c\x96\xeb\xdc\xe6\x85\xd2\xd4\x63\xc4\x4b\x32\x01\xc8\xa6\x99\x94\xf0\xa5\xdd\xe7\x98\x8a\x4e\x3c\xfa\xc0\x69\x24\x03\x43\xa1\x38\x9e\x8e\xed\x85\x12\x41\x40\x96\x9a\xcc\x01\xad\x04\xd6\x5d\x7e\x03\xe7\xaa\x6d\x02\x90\x38\xaf\xab\xe7\xdc\xf2\x90\xd5\xa2\xe3\xe8\x8d\x7e\x46\x71\x85\x03\x1e\xa6\xd9\x92\xdd\xe5\xef\x05\x29\x1c\x7f\xb9\x88\xa6\x3c\x8c\x89\x51\xba\x33\x2e\x6a\x8f\x47\x07\x47\xbc\x10\xc8\xe6\x29\x8f\x03\x62\x85\x9b\xb7\x60\xb1\x99\xa7\x69\xc4\xd7\xf4\x80\x4f\x21\xe0\x04\x79\xfe\x7e\xf3\x7a\xca\xd5\xa9\x7d\xc1\x10\x7a\x84\xfb\xb3\x46\xf0\xba\x28\x2b\x94\xa7\x32\xab\x33\x1c\x0f\x0a\x48\x3c\xd1\xa9\x46\xb7\xe1\xdb\xd0\x76\xc1\xb5\x45\x93\xf1\x96\xad\xe5\x5a\x31\x98\x64\x52\xe1\x87\x1c\xdb\xcd\xd8\xb7\x4c\x8f\x82\xc5\x54\x86\xc6\xb6\x49\x2a\x7f\x38\xc1\xa6\x12\x98\x53\x68\x6a\x35\xbc\x0a\x32\xfb\xfa\x63\xaa\xc0\x90\x4a\x09\x44\xc3\xab\x40\xe3\x30\x60\x4b\x95\x8f\x60\x2f\x45\x42\xf7\x5b\x84\x83\x59\x47\xaf\x0c\x0c\x15\xa0\xef\x5c\x31\xac\x10\xac\xe1\xd9\x9b\x1c\xf6\xb0\x31\xa2\x4f\x05\x97\x1b\x3c\x60\x8d\x1d\x80\xe2\x2e\xaf\xea\x4e\x51\x8a\xa7\x1a\x42\xe2\xcf\xea\xa2\x5c\x14\x87\x03\xe4\xaa\x3b\x12\x85\x86\x71\x4d\x86\xfe\x0b\x12\xe1\x30\xc1\x77\xdb\x6d\xb5\x08\x02\xaf\xc3\xa3\xda\xb1\xd1\x5a\x99\x4f\xf7\x3e\x2d\x93\xb4\xd5\xf5\x28\xca\x85\x4b\x49\xb7\x93\xc9\xa8\xb9\x32\x5f\xab\x84\x5c\x15\x07\x23\x8d\x7f\x97\xcb\xa2\x9d\xe8\x99\xa7\x4d\xda\xfe\x15\xcb\x62\x7b\x3e\xe2\xdd\x15\x30\x0a\xf3\x3d\x65\x22\x4e\x12\xf2\xd8\x7c\xbf\x73\x68\x32\xe6\xc7\x11\x09\xf7\x65\xd5\x4c\x34\x3b\xdd\x71\xba\xb3\xff\x51\x99\x9f\x46\x14\x5b\x1a\x0d\xd8\xef\x70\x34\xf5\xdb\xc9\xa7\x65\x7e\xaa\x28\xb1\xb6\x2e\x8b\xea\x88\xb2\x2e\xca\xea\x06\xdf\x7b\x2e\xc4\x83\x0e\xc6\x7c\x11\x6b\x1b\x57\x58\x9b\xaa\xe1\x4f\x4b\x96\xf2\x4e\x3d\x7d\xac\x01\xc4\x59\xe0\x81\x71\x25\xcb\xca\xfa\xd5\xa8\x68\xbb\x67\x0c\xc2\x80\x36\xc0\x56\x46\xa8\x1a\x02\xf4\x39\x0b\x64\x42\x3f\x6d\x0a\x1c\x95\xef\x79\xc7\x4e\xf5\x88\xb3\x40\x9b\x42\xfa\xec\x54\x17\x87\x42\x64\x7b\x5c\x9c\x05\x96\x72\xc4\x3a\xe3\x2c\x0c\x0d\x5c\xda\x55\x67\x96\xb9\xea\x09\x8e\x72\x16\xa6\xa9\xc1\xa1\x4a\x79\x5b\x94\x16\xf1\xe1\x8e\x69\xee\x99\x9a\xb5\x45\x04\x6c\x8b\xf9\xe9\x7c\x25\xbb\xc4\xa2\x90\x47\x5e\xab\x23\x7c\x1a\x21\x5e\x58\xa4\x22\xb0\x88\xc4\x79\xf6\xb2\x2e\x8b\x43\x61\x51\x73\xee\xe7\x62\xf0\x28\x5c\xee\xf9\xf8\x35\x7f\xf4\x85\x09\x1d\x55\x3b\x5a\x26\x43\x0f\x92\x46\xed\x2a\x8e\x4f\x50\xe2\xe4\xe2\xc3\x62\x8c\x92\xb6\x90\x98\xeb\x7d\x26\xeb\x51\x0a\x89\x25\x20\x58\xe0\xec\x7f\x91\x46\x13\x95\x69\x6e\xcb\xe2\x60\x25\x3d\x27\x67\x05\x96\x28\x03\x9e\xb7\xa0\x95\xde\xa2\xc2\x18\x72\x4a\x5c\x1a\x6e\x7c\xcf\x18\x78\xf8\x14\x9c\xa9\xa4\x63\x4a\x5c\x4e\x87\x0c\xb8\xe9\x38\x8b\x87\x1f\xdb\xdf\xc2\x14\x19\x68\xc5\x59\x5f\x3f\xbb\x2c\x0e\x7f\x4c\xfb\xe3\xd8\x33\x84\x52\x44\xc0\xf8\x99\xe1\x47\xbd\x3a\x77\x66\xa9\x9c\x49\x5f\x11\x16\xaf\x09\x05\xe7\x7f\x8e\x6e\x5c\x25\x29\x40\x4f\x9d\x66\x0e\xa5\xa4\x9a\x7e\xd3\x0b\xb8\x5d\x84\xc6\x24\x4d\x5a\xb6\xb9\xbb\x02\x03\xf2\x17\x74\xe6\x78\xeb\xb2\x78\xcf\xaa\x31\x30\xff\x52\xe6\xcf\x9e\x8e\x4a\xa6\x89\x13\xdc\xfa\x38\x8f\x21\xf4\x4c\xfb\x09\x18\x42\xe7\xa9\xc2\x81\xda\x0a\x67\x3a\x40\x66\x75\xa6\x5c\xe5\xcc\x55\x49\x46\x17\x11\xe8\x38\xcb\x7d\x58\xe1\x60\x53\x67\x9a\x72\x2f\xd0\xda\x26\xbd\xd7\x58\x3e\xe7\xd9\x15\x14\x37\xf7\x58\x64\xaa\x2c\x0f\xf3\xbf\xe5\x8f\xc4\xb9\xcf\x8d\xf3\x51\x25\xf7\xfd\xc1\xce\x7d\x61\xfc\xb4\x0d\x6c\x63\x57\xe8\x01\xd2\x8d\xfb\x52\x10\x51\x70\x59\xbf\xd2\xa4\xb3\x39\x16\x79\x55\x94\x7d\x75\x66\xce\x03\x5f\x06\x49\xeb\x6f\x62\x61\x6e\x83\x97\xc0\x43\xdf\x30\x59\x2b\xac\x57\xb5\xea\x9b\x33\xb4\xcf\x14\x46\x48\x18\x3f\x81\xcd\xda\xf0\x94\xc9\xd7\x56\xce\x9e\xf3\x50\xc4\x9e\x73\x4b\x2c\x4e\x62\x8f\x7d\x67\x42\xce\x23\x4f\xa5\xad\x32\xc4\x47\x8b\xc6\x75\x47\xa3\x90\x86\xef\xe6\x15\x75\xd1\xfe\x31\xf6\x28\x33\x5c\xd5\x27\xd5\xcd\x28\x3c\x62\xa9\x0c\xdc\x95\x64\x51\xaa\x07\x38\x60\x4f\xfb\xcd\x4d\x4e\x3c\xe2\x32\x4d\x5d\x43\xb7\xdd\x6e\xaf\x02\x49\x20\xdc\x41\x85\x07\x4a\x01\x36\xcb\xfc\xa9\x1a\x5f\x06\x0c\xa3\xb5\x05\x34\x0f\xdf\xcd\x34\xc0\x83\xc7\x9e\x20\xe6\xbe\xc1\x2e\x98\xdc\xec\xe8\x8d\xc7\x61\xec\xd9\xc4\xf1\xa5\x86\x1e\xe7\x31\x03\x61\xb0\x6c\xb9\xc4\x3d\x89\x3f\x0c\x3f\x47\x1a\x20\xbd\xf1\x53\xfe\x5e\x9c\xe4\xeb\x1f\xa3\xd4\x9a\x6b\x15\x47\xc4\x91\xd9\x60\xdd\x23\x73\xda\x27\x1d\xfe\x62\x2a\x24\xb4\x86\xd3\x9b\x23\xf6\x68\x6f\xbc\x89\xa6\x28\xce\x7a\xde\x2c\x9f\x76\x3f\x1f\xb7\xcb\xe9\xd9\x92\xa7\xda\x14\x6e\x57\x20\xcb\x82\xa4\xd2\x46\xc5\x79\xce\xac\xeb\xf2\x01\x32\x22\x10\x58\x1a\xb3\x3e\xb5\xdb\x69\xce\x80\x59\xc1\x71\xda\x6f\x6e\x8b\x79\x51\x8e\xd0\xf0\x9c\xc7\x3e\xb1\xe6\xad\x86\xf3\x00\xbb\xc9\x79\x9c\x72\xeb\x31\x5b\x15\x7b\x9b\x45\x36\xba\xb5\x4d\x30\x34\x5c\xa4\x38\x4f\x13\xde\x39\x05\xdc\x17\xef\xb8\xa9\x8b\x92\x74\x69\x49\xbf\xae\xc5\x96\x8d\x82\xf0\xc1\xf8\xe5\x29\x27\x61\xa1\xce\x4a\xf1\xee\x9f\xdb\x41\x2f\xe7\x2a\x64\xba\xfd\xa2\x73\xac\xe7\xe7\xf9\xe8\xa1\xc0\xe7\xb1\xb2\xdb\x8e\xd9\x24\x69\xc3\xcd\x97\x5f\xa1\x6e\x38\x84\x40\xea\x88\x58\xbf\x62\xb9\xc9\x72\x89\xbe\xe7\xb9\xdb\x00\x21\x42\x27\xb9\x0f\x9f\xf6\x55\xc0\xb8\x76\xcc\x41\x46\x89\x73\x9e\x6b\x03\xc7\x71\xfa\x76\x12\x27\xc4\x45\x18\x58\x28\x6b\x13\x50\x76\xa9\x4b\x2e\xd0\xa8\xa4\x77\x06\x24\xef\xfc\x3b\x54\xaf\x3b\x7b\x3d\xd7\x4e\xfa\x89\x13\x69\x5a\x1b\xd0\xd5\xfc\x74\x1e\xc7\xad\x5c\xfa\xcc\xac\x2d\x3d\x1b\x8c\x35\x96\xcb\xed\xf7\xf6\x3a\x41\x42\xbc\xa6\xff\x97\x65\xee\x4f\x4a\x32\xad\x1d\x3d\x7f\x75\xdd\xf8\x78\x38\x09\x28\x85\x89\xb1\xd9\xcf\x33\x9a\xcf\x27\x52\xb7\xa3\xf9\x1c\x75\x44\xa1\xb0\xf3\x9d\x2a\x74\xb6\xc7\x99\x28\x4e\xf5\x6a\x88\xce\xe2\xda\x93\xa9\x9d\xd1\x1e\xb5\xb6\xf6\x34\xcb\xfa\x75\xf4\xb8\xda\xd7\x04\xd5\xaa\x5f\xb3\xea\xae\xba\xed\x60\x17\x5c\x07\x9e\xa7\x3b\x31\x84\x31\x9e\x8c\xe4\x34\x6d\x98\xb6\x53\x50\x83\x80\x0a\x77\x8e\x54\xcb\xc1\xf3\x99\x33\x28\x6a\x3e\xc6\xb6\xb8\x85\x7d\x35\x0a\xf5\xc0\x8b\x12\xc2\xb7\x7c\x80\xd5\x01\x18\xcb\x96\x71\xf0\x44\x2c\xad\xc9\x76\x13\x79\xd9\x8d\xf5\xff\xf0\xff\xfd\x9f\xc4\x16\x5e\xc1\x07\x93\x7d\x12\xa7\xfd\x9b\x11\xd4\x7f\xc1\xfb\x6e\x4b\xd4\xc4\x85\xd8\xa2\x68\xe6\x7e\xf7\x67\x09\x5d\x46\xb4\x97\xdb\x87\x20\xd1\x44\xed\x9c\x9f\xce\x76\x4e\x1b\xbc\x34\x08\x3d\x4f\x27\xad\xf3\xe9\x0b\xde\xdd\x8c\x1b\x80\xb1\x61\xf9\x3e\xff\x73\x22\x25\x08\x51\xca\xe9\x86\xee\xd6\xcb\xc1\x60\x86\x48\x46\x14\x47\x53\x42\xb5\xcf\xa1\xe7\x10\xa1\x82\x81\x46\xb9\xe3\x33\x58\x69\xa9\xe1\x0d\xc4\x89\xd2\x0e\xf5\xfc\x80\x1f\x54\xa1\xc0\x92\xa2\x6d\x12\xf1\x9e\xdd\x59\x57\x53\x77\xf9\x18\xcd\x66\x9f\x00\xcd\x06\xf3\x7d\x5d\xf7\xc9\x9e\x93\xb0\x90\x84\x84\x8e\xc5\x7e\x6f\xc1\xb3\xed\x5a\x08\x09\xd3\xb1\x65\x65\x53\xa9\xc9\xb7\x93\xa9\x19\x19\x2b\xf8\x1c\xdd\x31\x25\xd4\x7b\x95\x9e\x12\xad\x4b\xdc\xc5\xb6\xb4\xcb\xd2\x39\x38\xe6\x60\x8c\x40\x1a\x1b\xff\x13\xb2\xf1\xfa\x0b\x81\x1c\x8c\x8c\x2a\xbc\x01\xc7\xb4\x44\x2f\x60\xd2\x18\x61\xda\x9a\x98\xf5\xe2\xb1\x07\x39\x26\xa2\x33\x66\x5c\x8f\xaa\xfa\x83\x9f\x84\x40\x72\x6d\xe1\x56\xab\xd3\xbe\x7e\x28\x5c\xe9\x0c\x00\x42\xd6\x49\x02\x12\x33\xb8\x85\x45\xdb\x78\x6a\xd8\x39\x40\xa4\x84\x08\x74\x81\xf8\xc3\x48\xd8\x92\x03\xa8\xd0\x11\x6f\x9b\x28\xdd\x95\x14\x86\x8d\x84\xe7\x39\x85\xd7\x0b\x5c\xc1\x74\x5c\x0c\x22\x34\x22\xf6\xee\x97\xd7\x46\x68\x77\xe8\x1f\x39\x3a\x25\x35\x5c\xd4\x66\x12\xb0\xb8\x87\x9d\x38\xef\xb2\x2b\xdb\x1e\x10\xcc\x84\xde\x0e\xc7\xbd\x5b\x3d\x3e\x6c\xbf\xdf\xff\xf5\x47\x7b\x1c\x63\x1a\x19\xd5\xdd\xe2\xf1\xa1\xa8\x87\xd4\x3b\x10\x9c\x11\x74\xed\xc3\xda\x7d\x3e\x61\x75\xda\x53\x08\x12\xb5\x4d\xd0\x78\xf8\xb9\xfa\xa3\xc6\xb2\x84\xbd\xe1\x5a\x0d\xef\x45\xc6\x66\x43\x6b\xb2\xba\xbd\x34\x31\xa8\x38\x51\xd6\xb1\xfd\xb3\xbe\xcd\x74\xd1\xac\xdc\x60\x04\x1d\x87\xd7\x50\xca\xf7\x43\x97\x4f\x9f\x43\x2e\xfb\x1e\x85\x17\x88\xca\xe1\x87\x56\x4a\x50\x7c\xda\xb1\x12\xfe\x96\x32\x2a\x07\xb4\x76\xa0\x6e\x03\x35\xcb\xeb\xec\x3f\xe3\x6d\x34\x68\x2f\x21\x26\xbd\x09\x0c\x66\xfb\xbd\x33\x2a\xfb\x0d\xd4\x52\x78\x91\x59\x4f\xab\x0f\x28\x29\xc3\xe3\x76\xf1\xee\x38\x08\xb4\xe9\x6c\xa0\x51\xe5\x4c\x4c\x06\x48\x3a\xe1\x47\x11\x41\x79\xc8\xb0\xe3\xb5\x2c\x3e\xaa\x85\x43\xf8\x3e\xa1\xd9\xae\x3d\x14\x75\x4f\x69\x96\x8b\x80\x1b\xfa\x50\x05\xb6\xf6\x63\xf3\xbd\xb7\x45\x69\x47\x68\x9f\x60\x2c\x42\x3f\x26\x98\xc3\x6d\x51\x36\x51\x18\x96\x37\x8e\xca\xff\xd5\xb4\x25\x22\xdf\xa7\x34\xea\xcd\xf2\x7e\xe6\x3a\x9e\x88\x78\x40\x5a\x42\x1f\x48\x0e\x12\x77\x9d\x4f\x90\x6b\x00\x3e\x36\xfd\xea\xe1\x79\xb5\xdb\x6c\x67\xdf\x96\x0e\xfb\x26\x62\x8e\x69\xdc\x95\xfa\x7a\x65\x44\xd7\x40\x8b\xd8\x69\xc3\x91\x86\xe6\x05\x96\x5a\x24\x51\x68\x4b\x3d\x0f\x37\x9b\x61\x95\x47\xa4\x3e\x7a\xa6\xee\x29\xf6\x2e\xbf\x30\xec\x86\x22\x0d\x7c\x8a\xf0\x54\x81\x15\x41\x60\x97\x9f\x3d\xc0\xb5\x6b\x24\x4d\x59\x88\x98\xe1\xc7\x1a\x9a\xa7\x1c\xa9\x44\x70\xc1\x74\x48\xea\x92\x96\x83\xb7\x58\x3e\x34\xcf\xba\x73\x0c\x2f\xc1\x23\xa9\x29\x07\xed\xca\x2c\xc3\x78\x76\x22\x86\x9c\xfc\x14\xee\xbf\x6d\xc2\x5a\x70\x91\x9a\x48\xd7\x7c\xc3\x60\x3a\x77\x23\x38\x72\xa7\x35\x3d\x3f\x19\xe1\x6a\x03\xe3\xbc\x16\x72\x0a\xf0\x34\xda\x4d\xa2\x01\x6f\xd1\x2a\x38\x8a\x66\x04\x84\x92\x5e\xb2\x31\x28\x5d\x96\x9f\x56\x78\xde\x94\x86\x9d\x61\xa9\x6b\xcc\x9c\xdf\x6d\x5d\x66\xe8\x5c\x8b\x6e\x8b\xf2\x27\xe4\x59\x3d\xd4\x13\x10\x00\x11\xf1\x3f\x7b\xda\xb7\xd7\x85\x34\xb8\x10\x91\x32\xce\xfd\xce\x7b\x6a\x50\x57\x16\x02\xd2\xc0\x79\x0d\x98\x82\x62\x13\xa1\x8c\x36\x5d\x42\xfa\xc6\x5b\xbc\x19\x7b\xb7\x90\xed\x77\x8a\x76\xcf\x46\x9e\xde\x5d\x4a\xc6\x7e\x68\x23\xb4\x6f\xdf\x96\x93\xa9\x3a\x21\x95\x68\x4d\x1a\x89\xd9\x71\x61\x9d\xc5\x85\xf2\x7c\x57\x53\x7d\xef\xdc\x72\xb9\x50\x61\x44\x74\x04\x85\x02\xea\xd6\xe2\xe6\x2e\x5f\x65\x39\xb1\xc7\x5d\xb3\x08\x29\x6b\x6f\x0b\xf2\x1b\xdc\xef\xdd\xeb\xbe\x62\xcf\x3c\xfa\x79\x15\x2b\xeb\x68\xb6\x69\x93\x13\x42\x69\x15\x1a\xf1\x81\x96\xe8\x90\xe1\x55\xdd\x11\x2e\x30\x36\x93\x9e\xe1\xca\xec\x96\xb3\xa7\xfb\xbf\x76\xf3\xd9\xe2\xc7\xb2\x25\x1b\x09\xc4\xd6\x9e\xac\x53\x33\xad\x26\x78\xc6\x02\x75\xec\xa7\x5d\xce\xf6\x51\x3f\xe6\xb7\x45\x69\xaa\x30\x5f\xd8\xd8\x70\xe9\x73\x15\xb9\x22\xeb\xa9\x96\x85\x4d\x42\xf4\xd5\xd9\x87\x3f\x25\x7d\x30\x1c\xa2\x66\xf7\xf3\x1d\xa1\xac\x05\x82\x7b\x0b\xd2\x57\x40\x45\xd6\x6f\x58\xaf\x20\xcf\x34\x56\x75\x31\x3f\x2f\xa0\xc6\x97\xa2\x1c\xf6\x53\x19\xf8\x81\x0b\x6a\x9f\x2b\x2c\xaf\x24\x6f\x65\x10\x47\xc2\x0d\xa7\xcd\xda\x14\x4f\x4b\x17\xa5\xca\x20\xf1\x51\x75\xce\x46\x46\xc2\xd0\xfe\x5e\x86\x97\xc0\xb9\x93\x0b\xe1\xec\xf9\x61\x68\x36\x52\x9b\xe2\x80\xa3\x2d\xbe\x8c\x7c\x3f\xb4\xd7\x7e\xc0\x8f\xf9\x49\xbd\xe0\x65\xc2\x64\xb2\x8f\xc8\x28\x61\xb4\xd4\x53\xaa\x6a\x5a\x56\x43\xc6\x32\x08\xf8\xd0\x5d\xdf\x7c\xaa\x7b\x68\xfe\xd4\x5b\xb3\xe8\xcf\xbd\xd2\xb3\x8c\x75\xe8\x12\xc5\x66\xb4\x36\x0b\xd6\x35\x77\x26\x2e\x93\x30\xa2\x95\xf9\x09\xb4\xde\xa3\x89\x6f\xb1\x9e\x17\xc5\xdb\x64\x1e\x5a\x26\x10\x2b\x83\x0e\x29\xb3\x77\xdc\x55\xaf\xd0\xec\x6a\xa7\x9b\x6a\x9f\xa6\xef\x76\x7a\xee\x93\x77\xa7\xf3\xb8\x32\x8d\xbc\xb0\x1f\x70\x6e\xf2\xe2\x43\xef\xe1\xcd\x11\xd1\x7f\x9b\x09\x96\xa9\xf4\xa9\x7a\x71\xd8\x15\x86\x48\xd7\x85\x01\x32\xc5\x90\x99\x59\xc0\x6c\x38\xee\x16\x8f\x1d\x0a\x77\x78\x19\x96\x32\x1a\x35\x87\x2c\xcf\x0e\xa7\x83\x23\xf6\xb8\x2b\x31\x9e\x4e\xf9\x8c\xa0\x1a\x97\xb3\xdb\xde\xc4\x44\x48\xc6\x54\x45\xeb\xc7\x37\xfa\xe6\x4c\xa6\xb4\xa8\x93\xca\xae\x8b\x15\x6d\x14\x71\x65\x84\xf2\x40\xc6\xd0\x13\x28\xa2\x36\x26\x0c\x97\x6f\x17\x30\x4d\x09\x5e\x40\xb3\xd3\xd7\x25\x77\x09\x7e\x42\x10\x01\x7c\xc7\xbc\xbe\x2f\x5e\xbe\x77\xdb\x57\x29\x22\x9f\x76\xd2\x4f\xc6\xf6\xac\xad\x74\x4b\x21\xbc\xc8\x6e\xf1\x97\xb9\x5c\x9f\xc4\x1b\xb6\x03\x51\x28\x8f\x92\xff\xab\x2c\xaf\x8d\x19\x7d\x85\x17\x74\x6c\xdb\x56\x82\x54\x91\xf3\x0e\xa7\x55\x34\xba\x72\x9b\x2a\x56\xda\x3a\x07\xd9\x65\xe9\xeb\x71\xa7\x12\x9f\xd4\x30\xc8\xa2\xb7\x17\xe9\x49\x65\x51\xbc\x16\x5f\xdc\xa3\x06\x8f\xfa\x04\xea\x28\x31\x09\x8f\x7d\x01\xaa\x0b\x34\xec\x61\x9d\x02\xa1\xf0\x0e\xdd\xf6\xce\xfe\x84\xf2\xfc\x80\xb6\x81\xb2\xc8\x25\xd4\xcf\x77\xe3\x75\x4b\x79\x01\xb7\xba\x08\xea\x0a\x04\xff\x1f\xa3\x13\xc2\xd4\xe9\xf1\x3e\xdc\x6e\x27\xa7\x47\xe5\x89\x98\xb6\xf6\xe2\x74\xbe\xcb\x0d\x8e\x6f\x7a\x2b\xa4\x3c\x0c\x43\xd9\x4f\x01\xd3\x7f\x89\x4f\x5f\x8d\xef\x14\x35\x33\xa1\xfc\x7e\x3f\xcb\x55\xb3\xa2\x53\xd8\x95\x99\x29\x69\x7e\xfe\x17\x96\x2e\xc3\xad\x7c\x9e\x90\x60\x9c\x84\xdc\x18\xc6\x8c\x76\xae\x6d\x33\x49\x65\xe9\xf9\xcd\x66\xd5\x9e\xaa\x7c\xb2\x5c\x38\x16\x55\xfd\x8d\xc4\x01\x86\xe9\xc1\xa9\x29\x47\x05\x5e\x4a\x18\x88\x15\x54\x55\xf6\x8e\xfb\xb3\xe5\x44\x37\x8f\x54\xe4\xfb\x2c\xc7\x9f\x99\xc2\xa2\xd9\x5b\xbb\x35\x5f\x05\x91\x41\x18\xef\x33\x8d\x9d\xa6\x2c\x57\x41\xac\x29\x1f\x64\xf1\x02\x64\xdf\xd5\x43\x20\xfe\x3d\xbc\xb5\x0a\x38\x0b\x5b\xff\x23\xda\xf9\xf5\x7e\xd9\xc2\xe0\x28\x17\x31\xb8\xa7\x90\x19\xbf\xb3\xdb\xbb\x87\xd9\xfd\x6e\xb6\xba\xdf\xdd\xcc\xb6\xcb\xf6\xa8\x08\x68\x63\x9a\xe3\xc7\xcf\xe2\xb3\xfd\x2b\x9a\x40\xf0\x90\xd9\xf7\xdb\xe6\xad\x54\x84\x01\x51\x3f\x77\x15\x68\xdc\x38\x15\xef\xe9\xae\x10\xe9\x80\xa2\xff\x42\xeb\x4c\x66\xb0\xef\x64\xc6\xb8\x8a\xfd\x84\x20\x14\x86\x55\xb5\xfc\x44\x79\xaa\x8b\xb2\x13\x4a\x72\xcd\x92\x98\x92\x59\x72\x5f\x54\x68\xd5\x52\x6d\xd6\xe7\x08\x65\xa7\xfd\x34\xbd\x17\x55\x31\x53\x91\xdf\x4d\xbd\xfd\xc5\x8b\xb2\x37\x71\xfb\x3b\x3a\x74\x69\x3d\x83\xb1\x6c\x6e\xe2\xd2\x30\x92\xab\x24\x30\x8c\xa0\x12\xdf\xb1\xac\xc7\x20\x81\xff\x1b\xf9\x50\x25\x82\x99\x05\x26\xcb\x6b\xb3\xcb\x74\x59\x3c\x95\xfa\x06\x87\x4b\xc5\xbc\xb2\x13\x6b\x9f\xd1\xcc\xd2\xa5\x8d\x5c\xf3\x34\xa5\xda\xf3\x1e\x75\xcd\x83\xd1\x3d\xa7\xcd\xd6\x9f\xec\xa9\x72\x3c\x6f\x4e\x87\x59\xbd\xc1\xba\xde\xe3\x94\xee\x77\xfb\xef\x97\x37\xce\x52\x10\xb6\x1c\xb3\xdc\x7e\x7f\xde\xdc\x4c\xbd\x2a\xc6\xe3\x34\xee\x7c\x0c\xcc\x06\xcf\x1e\x03\xdf\x88\x27\x3c\x14\xb9\xc4\x6d\x36\xc6\xbc\x2a\x48\x12\xbb\x19\x37\x8b\xd7\xba\x2c\x0e\xd9\xbe\x0d\x4d\x14\x20\x13\x5e\x37\x75\x98\x7a\xc5\x2e\x9c\x06\x0b\xdb\x73\x84\x17\x53\x10\x7a\x22\x3b\xe7\xc3\xc4\xe4\x21\x30\xa4\x39\x66\x53\xe3\xf1\xf6\x94\x4f\xe2\xc2\x46\x17\x95\x28\x92\xd6\x4c\x21\xcb\x67\x2f\x97\x3c\xab\xe1\x09\x2a\xf4\x03\x57\x2a\xe8\xc7\x53\x05\x85\xdd\xa3\x1b\x52\x51\x1c\x44\xce\x40\x88\x48\xa5\x5f\xae\xb7\x4a\x01\x58\x76\x52\x85\xf5\x3f\x4f\x45\x9b\xfb\x51\x0a\x15\x0d\x69\xa7\x1a\xb7\xf9\x7d\x90\xf9\x7f\xec\xcc\x18\x1a\x03\x1f\x53\x87\x20\xac\xea\x73\x76\xf1\x8a\x31\x32\x85\xe6\x87\xac\xbf\xe6\x2b\x54\x46\x2e\xd4\x68\x88\xa3\x81\x61\xb4\x3a\x83\xae\x95\x0e\x13\xa2\x98\xe9\x32\xc3\x5c\x55\xcd\x7c\x30\x1a\x07\x1a\x90\x42\x56\x4b\x3f\xb7\xab\x79\x7f\x43\xa0\xb4\x4c\xa8\xc9\xd6\x82\x5b\x9d\xe4\x11\x65\xca\xbf\x32\xd2\xfb\x3b\xff\x0e\xee\x06\x3d\x3f\x75\xb6\x01\x37\x84\xb1\x86\x1a\x95\xf1\x19\xb2\x98\xa9\x9b\x13\xc1\xa6\xaa\x1a\x0e\xc7\xe1\x9b\x42\xcf\x47\x8a\x79\x95\xb3\x17\x7d\xfc\xe8\x76\xb9\xe8\x61\x48\xa2\xb4\x59\xde\x11\xd1\x87\x3f\xee\xfb\xc6\xe6\x3d\x27\xab\xfe\x3e\xd8\x0b\xfd\xd8\x64\x44\x35\x0e\x93\x5b\xe8\x8b\x98\xb8\xc0\x0f\xf8\xd1\x4f\x49\x61\x10\x08\x87\xac\x72\x9b\xd8\x61\x2d\xed\x1f\x53\xd8\x37\x0c\x22\x11\xd9\x5a\xca\xa2\x04\x61\xb6\xf4\xc3\xa7\x0c\xe2\x58\xf2\x36\xee\xfc\x5e\x94\x15\x3e\xfe\x7a\x18\x37\x92\x9c\x98\x7a\x12\xf2\x27\x94\xef\xcb\x26\x46\x20\x7d\x75\x7b\x3c\x11\x46\x03\xb5\x3a\x40\x59\x3f\xe7\x54\x2d\x9b\x8c\x63\x30\xc1\x84\x7e\x0e\xac\x80\xd9\xba\x38\xb6\x79\xe0\xcd\x6b\x71\xda\xab\x55\x96\x8f\x26\x32\x4c\x59\xc4\xbb\x7b\xec\xd9\xdf\xb8\xe3\x3c\xa6\x70\xb0\x46\x38\x58\x33\xb3\x36\x17\x8f\x29\x20\xa5\xa7\xb2\xa3\xae\x5a\x8d\xb9\xfb\xa2\x78\x6b\x11\x99\xc8\x82\x98\xf8\x2f\x9b\xe2\x94\x2b\x91\xf5\x7d\x88\x39\x32\xc5\x8c\x69\xa0\xea\x1b\x5b\x73\xe4\x3e\xe7\x2d\xe4\xbb\x3e\x95\xf9\xa5\xb1\x2b\x47\x1e\x26\xda\x54\x99\xac\x76\xe7\xb9\x3d\x5d\x02\x2d\x78\x5d\xdd\x85\xfc\xd2\x6e\x8b\x72\xfa\xc5\x81\x9f\xd2\xd0\xb3\xf9\xe7\x0b\x88\x1f\x02\xf3\x68\x91\xf9\xbe\xbc\xfb\xf6\xdd\x25\xf9\x10\x24\xa3\x7c\xc5\x0e\x0f\x59\xfd\x58\x82\xdc\x37\x7b\x0b\xa7\x43\x15\x8d\xfa\x0b\x28\xe3\x5b\xd8\xc6\x78\xe6\x6d\x3a\xcc\x18\x8a\x44\x51\x04\x34\xcb\xf3\xec\x35\xdb\xc3\x54\x4a\x74\x78\x57\x42\xa4\x2e\x4b\xb6\xe8\xf9\x5c\x0e\x83\x1a\x94\x32\x24\x22\x44\x96\xb7\xa2\x9a\x83\x34\x1a\x2a\x5f\x10\x36\xb4\x59\x6e\x9a\x3d\xbc\x5b\x1c\x7e\x66\x70\x97\xe7\x58\xba\x3c\x22\x2a\x66\x9c\x20\x49\x93\xfb\xaa\xc0\x41\xdb\x18\x68\xa3\x73\xff\xf4\x63\x98\x27\x1f\x35\x53\x91\x51\x92\x80\xfd\x7e\xb9\x47\x79\xb9\xf5\x46\x8d\x01\x15\x7c\xaa\x66\xd0\x1a\x87\xca\xf6\x48\x44\xdf\xcd\x6d\x9c\xad\x09\xeb\xe0\xbd\x6b\x8f\x45\xc4\x30\x39\xec\x7a\x9a\x7f\xda\x83\xd8\xfc\x35\xcb\x8d\xf5\xcc\xf4\xa2\xa3\x7d\x4f\xa2\xef\xcc\x5a\x9e\xee\x9e\xaf\x35\x0b\x62\xaa\x91\x9b\x4a\x98\x4d\x28\x94\xc5\xa1\x4f\xfc\xd5\x7e\x1a\x92\x17\xf3\x07\xbc\xe3\x02\x8e\x51\xfb\x77\xc6\x93\x74\x20\xe8\xde\xec\x16\x88\x24\xf9\xf8\x38\xef\x5a\x09\xc2\xd2\x3f\x75\x7f\x0a\xbd\x88\x80\x23\x22\xbb\xe8\x2a\x97\xca\x27\x3a\x0c\x43\xd2\x40\xcc\xf1\x73\x90\xc2\xd7\x61\xcc\x58\x87\xf8\x9d\xef\x8b\xe2\x70\x9b\xed\x6b\x57\xe5\x1f\xd3\x7e\xbb\x0b\xda\xc5\x66\x55\xbc\x67\xad\x51\x38\xd7\x91\x87\xe4\x84\xa7\x4d\x8a\xbf\xb5\x96\xea\x52\xb3\x53\xd2\x42\x3a\x4a\x8c\xdf\xe4\x29\xcf\x64\x51\xe6\xa3\xb9\x54\x47\x80\x44\xc8\xbc\x9f\x6d\xd7\xfd\x4b\x7d\xb9\x6e\xeb\x24\xe1\x14\xd1\x1b\x7d\x69\xb3\xf2\x0e\x92\xb3\x3a\x11\x69\x62\x53\x68\x9b\xd3\xe1\x2e\x9f\x9f\xef\x8d\x5c\xc5\x1f\xa7\x1e\xfd\x4f\x33\x4f\x44\x30\xd0\xc8\xbb\x16\x0a\x0d\x87\xbd\x66\x9e\x4c\xed\x89\xb6\xf4\xdb\x01\x3d\x35\x8b\x3c\x9a\xa8\x56\xd9\x4b\x09\x3d\x36\x8a\x3b\x8c\x9a\x90\x03\x7a\x7f\xaa\x5e\x3b\x34\x83\xe6\x51\x40\xea\x56\x0f\xf8\x71\x53\xc2\xc7\x13\x82\x3a\x6f\x8b\x75\xcf\x2b\xf5\x9a\x69\xae\xbb\x40\x6c\x7a\xdc\xfb\x21\xcb\xa9\x8b\xae\xb1\x74\x15\xa1\xf6\x47\xb8\x47\x9d\xeb\x15\x2a\x2a\x16\x18\x60\x69\x3f\xda\xd0\x1c\x14\x85\x7b\xf2\x15\xca\xbe\x89\x35\xd7\x10\x48\xe8\xe0\x9a\x2e\xa1\x31\xa9\x12\x3a\xbc\x33\x01\x8a\xd4\x1e\x77\xb6\xa6\xf0\xb8\x57\x57\x70\x19\xc3\xd7\x2c\x00\x29\xe7\xb0\x33\xd6\xe3\x17\x76\xae\x5c\x0b\x2d\x29\xe5\x7d\x3a\xbe\x94\xa0\x70\x53\x97\x27\x49\x3a\x57\xc3\x66\x32\x8c\x08\xcd\xad\x9b\x88\xde\x48\x02\xde\x3a\x15\x70\xf7\x6a\x64\x1c\xfb\x5f\x30\x8e\x06\xef\x48\x0a\x9d\x7a\xce\xf0\x9b\xde\x80\xe3\xa2\xd8\x06\x2a\x8d\x69\xbb\xf1\xed\x79\xfd\x45\x8d\x41\xa3\x67\xdc\x62\x2b\xac\x2f\xf8\x7d\x5a\x07\x8a\x98\x6b\xdb\x47\xb7\x38\x69\x0d\xa6\x6b\x11\x80\xe2\x0b\x5f\xad\xa6\xa5\x61\xb6\x6e\x6f\xfe\xfb\x5b\x74\x22\x78\x9e\x02\x96\x5a\xbd\x37\xc2\xe2\x0c\x93\x4a\xb6\x95\xef\x03\x69\x59\x1d\xb2\xfc\x89\xb0\x3f\xeb\x32\x7b\xcf\xf6\xf8\x62\x0d\x60\x5c\x33\x16\x3a\x04\x43\x40\x84\xef\x7a\x7c\x1d\x91\x10\x66\xbe\x37\xaf\xfe\xad\xc8\x7e\x5a\x7e\x1a\x3c\x5f\x7b\xa4\xbc\x5b\x7d\xc0\xb1\xc7\x54\x03\x2f\x08\xcc\x01\xe3\x88\xd8\x03\xc8\x55\x6d\x0b\x96\xf0\x56\x06\x63\xe6\x2a\x3d\x4b\x33\xaa\x47\xb7\x1d\x06\x21\x09\xa7\xaf\x4e\x55\x66\xd4\xda\x7b\xe3\xba\x39\x1c\xd1\x42\xba\x23\x19\xee\x62\x3f\xc9\xd3\x6e\x9a\x41\x68\xfc\xf1\x9b\x30\xba\x19\x7e\x97\x74\x93\xae\x69\x1a\x8e\x95\x7f\xab\x15\xe4\x27\xd8\xef\xcf\x93\x5a\x1a\xe0\x85\x08\x54\x3f\x75\x2a\xf7\x1d\xa3\x0b\xbc\x88\x29\x25\x2e\x48\xbc\x8b\x66\xa0\x4f\xec\x3f\xc1\x8b\xb8\xa0\x8c\xd2\x4e\x9c\xce\x14\x8e\x5d\x79\xa6\x38\x32\x29\x16\xb3\xd6\x7c\x39\x19\x80\x97\x24\x31\x44\xfd\x38\xee\x5b\xb1\x37\x6c\xbb\x51\x3b\xa1\xe9\xd3\x60\xfe\xef\x2c\x6f\x86\x7e\x0f\xf3\x6f\x9b\xa4\x1e\x23\xb4\xc7\x82\x88\xf9\xdd\x57\x65\xc2\xf8\x8d\x34\xc3\xca\x05\xc7\xbe\xbb\x2e\x0f\x90\xb0\xaa\x2e\xbe\xf8\x62\x18\x81\x07\xd6\x52\x8e\x06\x1c\xc9\xa7\x8e\xee\x12\xa4\xef\x1b\x8a\x9f\x38\x16\x1f\xc1\xe4\x38\x07\x4f\xc4\x1e\x29\x2a\x1c\x33\xf9\x76\x5b\xf4\xb0\xe8\xd7\x77\xff\xe0\x09\x9e\x10\xcf\xf2\xee\xed\x54\x42\x8f\xfb\x7e\x55\xf4\x60\x78\xba\x0c\x19\xad\x27\xfb\xec\x0d\x67\x65\x3d\xde\x6e\x81\x27\x63\x2f\xb1\x7b\x9d\xde\xd0\xc0\x6a\xf6\x47\xdb\x20\x0d\x6c\x46\xe7\xbb\xd5\xf6\xb9\xd2\xe9\x24\x4b\x43\x8b\xa2\xed\x2d\xe3\xbd\x55\x11\x3c\xa9\xe2\x00\x9d\x74\xdc\x4e\x16\x87\x43\x56\x55\x59\x91\xef\x9a\xb6\xef\xd0\x62\x4b\xc0\x53\x9e\x4f\xb5\xb2\x2c\x7f\xcf\x2c\x70\xe4\xf2\xa1\x5d\xdb\xd0\xd8\xb3\x54\x0e\x21\x58\x6d\x0b\xab\xb2\xd4\xf6\x06\x95\x32\xca\xef\x76\x59\xf7\xbf\xa7\x22\x76\x6d\xab\x3c\xba\x05\x4c\x3c\xc2\x57\x59\xe2\xf1\x57\xb3\xed\xf8\xcc\x54\x06\x91\xdd\x85\x59\xdd\xf6\xab\x1a\x77\xe0\xe9\x54\xa4\x72\x80\x9a\x6c\x07\xf0\x7e\x60\x6d\xe0\xda\xab\xc8\x29\x52\xad\xb0\x1e\x12\x87\xc1\xf7\x3c\x4d\x8a\xec\x94\x9a\xb5\x84\xc2\x56\x97\x14\x7c\x0f\x0c\xa7\x81\xc0\xe8\x34\xf0\xb6\xc5\x48\x62\x1b\x7c\x4f\xa6\x3d\xab\xe2\xea\x1e\xf5\xa8\x8b\xf9\x9e\x8a\xd4\x78\xa6\x9f\xec\xad\xbe\xef\x87\x14\x08\xab\xc2\x2c\x2d\x56\xa1\xcb\x1e\x75\x13\x39\x59\x6d\xd2\x6e\xde\xcc\xf3\xc3\x6b\x04\x82\x51\xb8\x20\x8b\xbc\xce\xf2\x13\x7e\x33\xf3\x66\x37\x61\xf8\x61\x1c\x3a\xfd\xdf\x26\x7c\x31\x3b\xc8\x69\xb5\x17\xf0\x43\x30\x32\xcf\x2f\xd9\x3b\x3e\x65\xd5\xdb\x57\xb7\x1f\x79\x82\xf6\xfb\xbb\x6e\x56\xb9\xe6\x54\x3a\x01\x85\x01\x3f\x0a\x8c\x3e\x29\x10\x5f\xbc\xb9\xf1\x2a\x23\xdc\x1f\x4e\xee\x6e\xc1\x8f\x12\x8f\xfa\xce\xaf\xd9\x8d\x7b\xb8\x48\xf9\xa1\xdf\xf1\xc2\x2c\xca\xa7\xef\xaf\x04\x7e\x0c\x86\xa6\xde\xc1\x98\x77\x0f\x4f\xdb\xd1\x83\x27\x80\x94\x9a\xfd\x90\x75\xe0\x4e\x4c\x83\x98\x30\x04\x84\xe5\xb3\x31\xcf\x0d\xd4\xce\x7b\xbc\x69\xc0\x2d\x57\x83\x8a\x1c\xad\x6c\xe3\xe8\xbe\xb9\x48\x22\x27\x61\x74\x3a\xda\x5a\xcb\xa5\x63\xf3\xa9\x65\x65\x80\x0f\x9a\x09\x5b\xed\xf9\x8e\x65\x71\xd3\x13\xc2\x36\x10\xd5\xc1\x3f\xad\xc4\x47\xff\x9f\xa1\xca\x04\xf8\x22\x0e\x68\x03\x88\x9f\xc7\xcc\xf4\x10\x52\x0e\x71\xcf\x22\x30\x25\x53\x52\x57\x14\x2b\xf6\xcd\x3a\x55\x5e\x61\xe4\x81\x2f\xb4\x09\xdd\x2b\xac\x17\x8b\xef\x46\x89\x9b\x0d\xc7\x9b\x0c\xc1\xe1\x09\xee\xa1\xaa\x67\xeb\x3e\x81\x02\x7c\x99\x68\x02\xd7\xca\xa2\xaa\x27\x25\x93\xc1\x97\x8a\x11\x65\xba\xcd\xac\xf6\xa5\xad\xc1\x57\x2c\xf5\xed\x9a\xb7\x82\x4f\x57\x42\x1d\x85\x70\xbe\x12\xbe\xd0\x2d\x08\x72\x1c\x73\x36\xc7\x75\xe7\xd4\xf5\x86\x79\x33\x4a\xba\xdf\x40\xc1\x48\xb3\x61\x85\x37\x50\xfc\x5d\xed\x9d\xd1\x63\xa0\x14\x74\x07\x07\xf8\xfc\x5e\x1c\x51\x9f\xf6\x95\xe1\x24\xba\x1f\xd1\xdc\xd0\x34\x45\x89\xf0\x76\xe7\x7a\x6e\xe0\x25\xd6\x42\x82\x50\x74\x84\x9f\x9b\xfe\x1a\x81\x1f\x70\x65\x0a\xdd\x7b\x7c\x21\xe8\xa1\x2c\x4a\x45\x40\x2c\xb7\x26\x04\x3e\x8b\x53\x73\x17\x4d\x30\xb5\xe9\x95\x8b\x4d\x17\x8c\x6d\xbb\xc0\x4f\x08\x34\xda\xfa\x21\xfc\xf3\x84\xa7\xff\xb3\x30\xd9\xe8\x06\x83\xc4\x23\xea\x8a\xc8\xd4\x63\x3e\x2f\x11\xd5\x6f\x48\xdd\xcd\x29\x10\x59\x21\xcf\x15\x56\x15\xbc\x0c\x60\x6b\x10\x04\xc2\x68\xb2\xef\x9b\xbe\x45\x73\x48\xfb\xd5\x82\x50\x70\x93\x6b\x3c\x1d\x4c\xcd\xff\xc5\xe9\x84\x43\x10\x62\xe8\xd9\x18\xe0\x2e\x97\x27\xd1\x4c\x1c\xdf\xa1\x7a\xed\x2d\x45\xc3\xd0\xbb\x3d\x2f\x95\xba\xdd\xb8\xf4\x51\x31\xb3\x5c\x19\xa8\xf6\x70\x5a\xb5\x0e\x61\xff\x13\xff\xef\xe8\x4a\x91\x8a\x09\xb8\xba\x2a\x54\xa6\xcf\x3f\xb3\x17\xcc\x65\x36\x54\xba\x87\x20\xf6\x3c\xaf\x65\xe2\xed\x8e\x58\xee\x3e\x30\x73\xcf\x10\x47\x3e\x11\xe6\x16\xdd\xa6\x88\xd4\x44\xff\xae\xbe\xa6\xbb\x8c\xf5\x24\xab\xa8\xd2\x34\x9c\xb6\x82\xa4\x59\x3a\xc8\xb7\xb9\xaa\x8a\x7c\x17\x5f\xe9\x7a\x49\x68\xcc\xa9\x76\xd5\x7f\xc6\xbb\x9e\x20\x11\x29\x25\xc5\x9a\x49\xa2\xb9\xd3\x69\x99\x0a\x08\xd2\x20\x4a\x02\xbb\x17\xfb\x32\x57\x08\x41\x2a\x23\x4a\xfe\x18\xfb\xd5\x26\x40\xbb\x98\x48\xaf\xa9\x19\x0d\x2f\xc4\xbc\xd0\x77\x3a\x6e\xd4\x0d\x57\x90\xc3\xcb\x08\x99\x03\x01\x4b\x63\xca\xe6\x64\xb9\x2c\xa9\x16\x77\x73\x77\x73\x5b\x16\x83\x2a\xe5\xb4\xde\x18\x04\x4c\x19\x26\xdb\x0b\xd6\xff\x2c\x2d\x35\xd7\x1d\xd2\x1e\x65\x93\x4f\xb9\x51\x9b\xe9\xfe\xce\x02\xe6\xd2\x74\x94\x39\x73\x47\xb8\x1f\x7b\xad\x16\x15\x95\xe9\x1c\x46\x25\x6f\x9b\x84\xca\xb3\x58\x8a\xd9\x3e\x83\x6a\x38\x5e\x78\x64\x68\xbe\x07\xf8\x9c\xb9\xf8\xb3\x19\xde\x15\xd1\x3c\xfb\x4b\x66\xc0\x6d\x7c\x37\x7f\xfc\xfe\x6c\xb2\x0c\xd7\xbe\x1c\x44\x06\xba\xf8\x82\xf5\xce\x49\x10\xec\xc4\x79\x77\xb0\x2f\xd3\x35\x4b\x12\x42\x0d\xbb\xcc\xed\x64\x5c\x71\xe5\x43\x01\x48\x22\xb6\xe9\x7d\xf1\x81\x65\xeb\x54\x32\xba\x0f\x61\x4c\x6e\xd7\x4f\x77\x3f\x67\xdb\xa5\x41\xc9\xee\x56\xb3\x3f\x77\x8b\xd9\xda\xdd\x85\xf0\x53\xdf\x02\x3f\xf6\xe7\x9b\xac\x92\x53\xee\xde\xae\x6d\x9c\xc4\x49\xa7\x8e\x37\x50\xea\xe9\x4a\x5e\xc3\x9b\x10\xdc\x48\x72\x2d\x9f\x16\x01\xb9\x86\xb6\x26\x16\x83\x0f\x21\x7d\x90\xe8\x40\xa1\x50\xe3\xf7\xce\x95\x6c\x78\x0f\xca\x97\xc2\xa9\x3a\xde\x3d\xfc\x5c\x6e\xb6\xbb\xe5\xf6\xbb\x13\x73\x84\x40\xc5\x5e\xc0\x1c\x15\xa4\x59\x18\xad\xe3\xcb\x84\xd8\x2f\x04\xca\xe6\x3b\x36\x58\xd7\x34\xf7\xd6\x04\x8b\xd8\xcd\xcd\xff\x7f\x82\xfc\xed\xa9\x2f\xb8\x79\xe5\x6b\x28\xa5\xe9\xe6\x15\x79\xe6\x54\x54\x2d\x1a\x82\xe5\x20\x40\xc6\x1c\x15\x91\x92\x6d\xfd\x04\x45\xa0\x53\x06\x9d\x60\x0e\xa9\x80\x9b\xa4\xe6\x64\x5e\xd5\x61\x74\x21\xd0\xdc\x44\x63\xed\x1e\xfa\xb6\xfc\x1b\x99\x53\x08\x3d\x14\x46\xaa\xb5\x78\xa9\x0e\x44\x06\xea\x12\x18\xa1\xef\x09\xd2\x0f\x16\xd9\x7f\x8f\xee\x6f\x41\xda\xc2\x4e\x37\xa7\xe3\xb1\x28\xeb\xd5\xa0\x33\x87\x61\x14\x91\x4e\xcf\x6a\xf6\xf0\x7d\xb6\xdd\xce\x1e\xd6\x4f\x8f\x7f\xfe\xe5\x07\xdb\xef\xb3\x9f\xcb\xb6\x51\xec\x91\x98\x99\xad\x56\x38\x33\xc8\xc1\x37\x09\x43\xe6\x51\x62\xe4\x90\xe5\xa4\x8b\x3d\x95\x82\x0a\xa3\x50\x91\xd4\x13\xec\xf7\xc5\x47\x7f\x7f\x19\x46\xd6\x3d\xb8\xe9\xe6\xa6\x7f\xb4\xea\xf4\x10\xc6\x69\x44\x09\xc8\x23\x9c\xbf\x17\xa7\x4b\xe0\xbd\x6d\x96\xb0\x88\x20\x72\xcb\xfa\xb5\x24\x48\xa0\x3b\x3f\xe1\x26\xf8\x20\xca\xce\xa6\x57\xd5\xa6\xa9\xa0\xcb\xb0\x84\x2c\x8a\x69\x92\x87\xd2\xc4\x4f\xfd\xf7\xcb\x62\x8f\x10\x04\x36\xaa\xb4\x96\x66\xd3\x3b\xea\x90\xc5\xe0\xca\x40\xe3\x51\xfe\x8f\x21\xba\x0e\x42\x26\x3d\xc2\xac\xdd\x50\x37\xec\x14\x6d\x20\x84\xc0\xa7\x58\x2a\xcb\x09\x4c\xdd\xd5\x2d\x20\x14\x31\x38\xfd\xd6\x45\x74\xeb\x7a\x2d\x11\xb8\x15\x96\x74\x91\xcb\x8e\x17\x0a\x30\x67\xe5\xf8\x71\x5b\x94\x2f\x5d\xf9\x79\x8a\x2a\x08\xa1\x10\x4c\x4a\x97\x88\xa9\xe4\x58\x0b\xca\x25\x90\x42\xe9\x9b\x25\x7c\x77\x34\x62\x39\xc6\x31\xef\x01\x3f\xfe\x68\x1b\x24\xa9\x45\x9b\xdf\xe5\x59\x9d\x51\x6a\xeb\x8f\xde\x8d\xc9\x24\x00\xc3\x5e\x7e\xc9\xf2\x27\x23\x75\xda\x9e\x9c\xf2\x28\x26\xb3\x56\xda\x3a\x1a\x30\xe9\x68\xb7\x17\xaa\x00\x68\x07\x66\x4d\xe3\xab\x7e\x99\x19\x42\x15\x05\x84\x4f\x9c\x3d\x6c\x47\xdd\x56\xc5\x40\x3c\x5d\xbb\x70\x9a\x3b\xdf\x5f\x66\x4a\x46\x5d\x4d\x87\x82\x04\xf7\x0c\x14\x79\x0e\xd5\x28\x12\x0f\x75\xec\x53\xb9\x1c\xcc\x75\x97\xcd\x4e\xa5\x8d\xe9\x42\x9d\x1a\x37\x4e\x8b\x5c\x35\xf2\x9d\x5f\x8f\x7d\xcd\xcc\x29\x95\x15\xe7\xbe\x3b\x1c\x87\x98\x1c\x88\xbc\xd8\x8f\x8d\xfc\xd5\x6b\xcf\xf2\x1c\x22\x4f\x19\xba\x33\x99\xd0\x38\xa9\xb2\xc9\xe7\x8a\x7c\x3f\x94\x69\x07\xa1\x21\x1d\x06\x9b\x8f\x71\x41\x67\xe4\x83\x91\x5a\xff\x20\xb4\xfe\xa2\x28\x91\x32\xfb\xf6\x68\x13\xe9\x47\x1d\x72\x79\x71\x41\x55\x6f\x9a\x08\x21\x1d\xa5\x71\x5f\xb7\x45\x8e\xae\x3f\x44\x81\x60\xa4\xb2\xa4\x70\x0f\x67\x77\xe9\x30\xe2\xe0\x74\xe9\x32\x59\x16\xab\x82\x4c\x1e\xef\x1c\xca\x07\xa2\x10\x00\xd3\xb6\x70\x3e\xa6\x87\x40\x14\x2a\xc9\x5b\x2b\x3d\xc3\x0b\x9c\x9f\xef\xf1\x05\x64\xfb\x23\xb1\xc7\xa9\x82\x6d\x37\xc2\x2b\xf8\x6c\x8f\x38\x01\x32\x2b\xec\xa1\x7a\xc6\x53\x10\xa5\x1e\x77\x34\xce\xb7\x65\xfd\xba\x7e\xcd\x3a\xb5\x55\x88\xd2\xc8\xa3\xc8\xd2\x61\x83\x1d\xdb\xa2\x3d\x0e\x40\xb1\xc7\x2b\xec\xdf\xb3\xfc\x85\xb0\xcc\xef\xb0\x77\x87\x99\xf4\x08\xea\xf2\x0d\xf3\xe5\x67\x6d\xec\xd5\x09\x81\xf1\x65\x9f\x89\x78\x92\x3a\x9e\xbb\xf5\x0f\xd8\xf7\xf2\x88\x13\xc9\x79\xe6\x4e\x64\x29\x55\x45\x57\xb3\xa7\x1f\xcb\xed\xdd\xc3\xb7\xdd\xfa\xf1\xf1\x7e\x37\xbb\xb9\x71\x0b\x76\x04\x21\xa7\xb7\x71\x34\x90\xcf\xbe\xc4\x20\x44\x90\x18\x4a\xd6\xee\xe0\xd0\xef\xdf\x71\x7f\xec\x7a\x24\x28\x1e\xb1\x56\xcc\xee\x1d\x4b\x97\xbf\x1a\xde\x3f\xa0\xa6\x20\x44\x97\xc5\xe1\x09\x61\xff\xc7\xe0\xa8\xf0\x85\xdf\x55\x71\xaa\xe6\x7d\xd6\x78\x83\x2b\xac\x80\x9c\xa5\x87\x3e\x8d\x10\x89\x20\x50\x9d\x53\xef\x2d\xec\xf7\x02\xa6\x05\x17\x9a\xb6\xa9\x6e\xc1\x0e\xf9\xd8\xc6\x16\x22\x11\xa2\x04\x07\x84\x9f\x43\xee\x5c\xe7\xdc\x03\x8a\x04\x88\x65\x7a\xca\xad\x2b\xcb\xe2\x35\xdb\xab\x21\x12\x1b\x22\xc1\x80\x90\xf8\xf3\xe2\xf3\xb3\xbf\x96\x47\x82\x27\x84\x6d\x58\xef\x51\xbd\xe0\x1a\xce\xe3\xf9\x2e\x92\x89\x99\xd1\x9a\x95\x9d\xf2\x77\xcf\x79\x56\xe4\xcd\x50\x18\x3e\xb4\x8a\x84\x68\x77\x88\x66\xe8\xb7\x06\x5e\xc3\x2b\xea\x38\xe2\x8e\xeb\xb2\xf3\x76\x98\x57\xa7\x12\x37\x58\xbe\x67\x12\x1d\x3d\xc1\xc1\x10\xda\x5e\xaf\xa5\x29\x49\x3c\xe1\xe1\xec\xbe\x7e\xec\x05\x71\xca\xda\x51\x56\xec\xd5\x63\xee\x80\xc1\xae\x05\x86\xb4\xa7\x5d\xc3\xd9\xe8\x7d\x5e\x95\x02\xb6\x27\xf8\x91\xa2\x64\xfa\xd3\xb2\x6f\x37\x07\xb1\x2f\x38\x99\xbc\xc8\x4b\xd5\x2c\x88\x83\x50\x92\xc0\xba\x2d\x5b\xde\x16\x65\xdf\x12\xc3\x36\x0a\x53\x9f\x5e\x50\x8e\x9f\xf5\x36\x6b\xbb\x68\x1c\xa6\xe8\xc4\x75\xac\xd7\x79\x26\xf6\x38\x80\x1d\x0e\x47\x5b\x1c\xf2\x40\xa5\xbd\x7a\x8f\xfa\xd6\xee\x85\xe2\x10\x04\x25\x64\x9b\xa9\x94\xd4\xbe\x3a\xda\x03\xc4\xa1\xe6\x54\x16\xb4\xa2\x0e\xdb\xcf\xf1\x83\x44\x3c\x0c\x64\x47\xed\x99\x8a\x2e\x87\x27\x24\xbe\xa4\xda\x23\x29\x32\x3f\x61\x75\x3a\x20\x69\x54\x74\x87\x0d\x23\x97\xc0\x0d\x9d\xa7\x01\xc4\x09\x37\x8c\xec\xbb\xc5\xe3\xee\xdb\xe3\xec\xbe\xfd\x3b\x44\x4c\xd8\xea\x98\xc9\xf0\xae\xb2\xe6\x29\xf7\x8e\xe6\x0b\x71\xea\x09\x0a\x02\xee\xf2\x6f\x4f\xa8\x32\x97\xd1\x77\x87\x59\xac\x21\x74\x39\x80\x6a\x8d\xe5\x2f\xcc\x02\xcf\x1d\xe5\x49\xe4\xec\xa3\xe6\x50\xef\x8b\x52\x3d\xe1\x7f\xda\x83\xca\x33\xd6\x53\x36\x6a\x9b\xe5\x46\x20\xa8\x20\x4c\xec\x95\x57\xc0\x95\xa4\x8c\xf4\xee\x94\x1f\x9b\x61\xfe\x92\xed\xb3\xfa\x7c\x89\x59\x82\x18\xc2\x24\x88\x7b\x06\xc8\x4f\xf8\x9f\xd9\xa1\x9d\x5a\x2f\x53\xf9\x64\x46\x65\x51\x76\xdf\xa0\xba\x2d\xca\x1f\xbf\xbe\x8f\xae\x29\xa2\x98\x32\xde\x25\x4a\xcc\xde\x51\xfd\xc2\x6c\x95\xb5\xef\x42\x08\x49\x1b\x7f\xb7\x1a\x58\x67\xdc\xd1\x35\x64\x20\x75\xd0\xbb\x2f\xb7\x66\x5c\x51\x1b\x87\x58\x46\x11\xad\x8f\x9b\xed\x96\xca\x34\x2e\xb9\x1b\x4b\x6d\xdc\x38\x7e\x65\x3a\xa3\x45\xab\x43\x42\x42\xac\xd2\x80\x96\x1e\x55\x6c\x40\x63\xd3\x1d\x7e\x51\x8e\x76\x90\x8a\x18\xbd\x5c\x05\x09\x95\x92\x75\xd1\x04\xf2\xad\x49\xeb\xb0\x11\x06\x89\x29\x2b\xe6\xb6\x4c\x6a\xff\xae\x55\x68\x32\x24\xaf\x59\xdd\x6c\xfe\xed\xdf\x13\x1f\x63\xed\xa4\x2f\x48\x2d\xe2\x02\xe2\x0b\x49\x10\x0b\xd9\xe6\x14\xb6\xc5\x0a\xf2\xf3\xf5\x9a\x4b\x12\xa4\xc6\x4f\x90\x60\xe5\x83\x77\x95\x04\x3c\x24\xfe\xe3\xfa\xfe\x79\xfb\xbc\x21\xb6\x9a\xbb\x8f\xd0\x33\xd6\x9a\xb5\x13\x98\x6c\x6f\x3d\x09\x3d\x23\xb2\xb3\x1b\xd0\x36\x4d\x8d\xab\xaf\x93\x35\x2a\x22\x0d\x7f\x3a\x4c\xbc\xc4\x3e\xa7\x51\x0b\xaa\x8c\xf6\xf8\xe8\x51\x43\x65\x98\xb4\x36\xe5\x4c\xd4\x29\x0a\x80\x9b\x77\xe6\x44\x5b\x21\x89\x42\x89\x89\x25\x72\xce\x87\xf1\xbc\x6b\x91\x72\x9b\x7d\xfb\xf5\x5a\xec\x91\xbc\xdd\x49\x1c\x69\xf8\x7b\x49\x22\x59\xd2\xe9\x54\x6c\x8b\xf5\x29\x7f\xeb\xa7\x6d\x92\x04\x12\xc2\xcc\x0a\xcc\x91\x00\xf6\xe5\x48\x3e\x06\x92\x14\xa4\x33\x47\xb2\x11\x35\xf5\x25\x77\x14\x65\x12\x76\xe8\xf8\x9d\x38\x9d\x77\x3d\xaa\x23\x24\x4c\x05\xb4\xee\x35\x93\x71\x33\x61\xad\x8b\x7a\x73\xdc\xb7\x1b\x6e\xf2\x15\x11\x66\xdd\x68\x82\xb3\x66\xeb\xe6\xa6\xae\x04\xd0\xd8\x41\x90\xa5\x40\xdd\x93\x34\x83\x44\x30\x93\xb1\x25\xc2\xd4\xdd\xe2\xb1\xfd\x7b\xd3\xfb\xbb\x47\xbe\xab\xae\x1a\x2d\xda\x13\x64\x1c\x50\x5c\x63\xc0\x82\xd5\xfd\x5f\x0f\x77\xb3\x51\xc7\x52\xa1\xef\xf4\x3b\x49\x6e\x61\x49\xd1\x83\x3d\x88\x29\x27\x76\xe4\xaf\x56\x19\x80\x9e\xe3\xb6\x28\xb7\x78\x19\x98\xb9\x93\x98\x31\x3e\x35\xb2\xf7\x48\x72\x8b\xb3\xf1\xd7\xd3\xd6\x72\xab\x24\x68\x66\x5d\x9e\x30\xd3\x56\x7a\xc5\x50\x48\x3e\xb2\xbc\x32\x9e\x6a\xe6\x8c\xd4\x8b\x14\xed\xc9\x08\x1e\xb9\x2d\x7a\xd5\xb6\xc9\xdb\x48\xfd\x88\xeb\x2e\x8b\x34\x23\x89\xf8\xe1\xb3\xa7\x64\xe0\xe9\x04\x15\x10\x49\xc3\xae\x17\x15\xa5\xbe\xd2\x66\x0b\x6d\xc1\xb0\x26\x47\xb0\x2e\x8a\xfd\xdc\x35\x09\xa2\x18\xbb\x0a\xc7\xfc\x54\xe6\xf3\xe6\xa6\xab\x4e\xa4\xd3\x35\x8c\x23\x5a\x4f\xaa\x23\xca\xe7\xbe\xa0\x16\xa4\x01\x0b\x4d\x26\xc4\x5a\xed\xdf\x96\xc5\xe1\x5b\x5f\x7a\x7f\xf2\xe3\xa6\xa1\xe7\xbb\x42\xd5\x8d\x59\xa4\xc7\xc1\x42\x1a\x26\x9e\xea\x64\x8d\x1e\xe0\x7d\xf8\x15\xd2\x90\x19\x3f\x4f\xeb\x0a\x51\x9c\x5e\x5e\xff\x76\x1e\x7b\xf4\xba\x43\x0e\xce\x9c\xdb\x5c\xed\xd9\x4e\xa3\x3d\x82\x76\xdb\x54\x12\x3d\xcf\xb2\x32\x5f\x8c\x82\x74\x27\x99\x35\x7a\x06\x85\x14\x4c\xfc\xeb\x5f\xff\xfa\x6d\xc5\xdb\x9e\x12\xc5\x92\x62\xfd\xf5\xd3\x92\x8c\xf0\x96\xdb\xef\xbb\xa7\xd9\xdd\xc6\x65\x88\xd2\x88\xa1\x34\x62\x11\xfd\xfc\x58\x1a\x71\x4e\x53\x0a\xcd\xd6\x6b\xa2\x56\xa0\x9a\x26\xbc\xd9\x33\x62\x3f\xf5\xfb\xca\xfc\x64\x8c\x54\x8e\xc4\xbe\x47\xdf\x2d\xd6\x1e\x45\xd1\x47\x28\xeb\x26\x94\x1c\xc8\x2c\x34\x87\x81\x6a\x73\xc7\xd3\x7e\x3f\x87\x2e\x2f\x62\x0f\x27\x41\x2c\xc1\xd5\xa6\x5f\x9a\x6d\x48\x51\xfe\x16\x13\x07\x69\x33\x15\xb4\xc8\x23\x37\x0b\xae\xb2\x3c\xeb\xc5\x59\x69\xca\x19\x19\x63\x2c\x73\xe5\xea\x43\xee\x08\xfa\x84\x40\xcc\x4c\x36\x64\x83\xa8\x6e\xa1\x3c\x64\xf9\xcb\x6c\x70\xf3\x2c\xf6\xb9\xdf\xa3\xa5\x4c\xe3\xee\x5c\x63\x16\x50\xc0\x50\xe2\x7f\x4e\x59\x89\xea\x5b\xb1\x57\x4e\x9f\xe6\x16\x64\x2b\x50\x0e\x29\x30\x46\xd5\xde\xab\xfe\x92\x97\x60\x50\x48\x45\xc0\xc0\xd9\x64\xef\xea\x57\xdc\xb9\x69\x7c\x57\x1a\x36\xcc\xb1\x5f\x13\x4d\x05\x67\x14\x80\xbd\x17\x35\xae\x8b\xe3\x69\x0f\xe5\xd8\x3b\x1f\x52\xa1\x8d\xb0\x9d\x41\x18\xec\x5e\x7a\xbe\xad\x13\x75\x60\xd6\xaf\x14\xb3\xeb\x86\x30\x90\x4a\x8f\xdb\xe9\x90\x3c\x1d\x4b\x2a\x11\xfc\xd1\x1e\x14\x04\x84\x7c\xfc\xf5\xb0\x13\xa7\x72\xec\xbf\x3d\x7a\xab\xd2\x43\x66\xa3\x3d\x52\x82\xed\xa0\x0b\xed\x53\xc8\xc8\xd0\x01\xbe\x07\xdf\x82\xf6\x47\x62\x1e\x91\x6a\xe4\xf6\xe7\xdf\x1d\x66\xca\x87\x14\xfb\x4c\xc6\xaa\x59\xa6\x8d\x9b\xf8\x78\x14\xab\x50\x12\x78\xe3\x36\xab\x5e\x05\xe4\x6f\x8b\x57\xac\x2e\x1b\x25\x22\xee\x68\x80\x8f\x7b\x63\x7c\x34\x21\x74\x04\xa9\x02\x63\x9e\x7a\xb3\xfc\xb9\xb8\x9f\x6d\x36\xb6\xde\xf0\xf4\xcd\x2d\x96\x29\x82\x26\x41\x98\x77\x03\x75\x79\x3a\xed\xb1\xed\xa6\x3a\x0a\x08\x20\x45\xac\x39\xd2\x4e\x33\x89\xb4\xb1\x53\x05\xa4\x5a\x32\x91\xda\x49\x16\xb2\xfd\xd9\xad\x84\xdd\x5b\x75\x28\x79\x60\x7e\xe4\x93\x4e\xc0\x1a\xca\xb2\xa8\x7b\x31\x2b\xf3\x13\xa3\x58\xd2\xaf\x26\xbb\x43\x60\xec\xab\x4d\x6a\x41\x67\x2f\x8b\x3d\x58\x43\xc2\x41\x2f\xea\xff\xd7\x7d\x48\x16\x04\x29\xd9\x76\x0b\xac\xdd\x8a\xc4\x82\x84\x8b\xc8\x24\x21\xfe\x8b\xf9\x05\xef\x05\x58\xc0\x13\x8a\x22\x76\x94\x88\xc8\xfe\x8b\xcd\x82\x36\x19\xa1\xb3\x30\x84\xc4\x3a\x8c\xdf\xd8\xf2\xf6\xc6\x14\x7b\x87\xd5\xda\x69\x2d\xbb\xe9\x5c\x24\x0b\x93\xc4\xf9\x34\xfe\xb5\xdc\xfc\x2c\x6a\xac\xe6\x67\xeb\x43\x37\x6a\x29\x8c\xd5\x9b\xa8\xcf\x92\xb6\x86\x85\x76\x4f\x19\xa1\x1f\xf5\xc4\xa8\x9f\xf3\xaa\x68\x51\xbe\xb6\x49\x0c\x92\x32\x5c\x90\x57\x1f\xc6\xe5\x15\x3a\xa4\xee\x30\x23\xcc\x62\xe5\x07\x9d\xc6\xf4\xe3\x69\xdc\x35\x59\x8c\x86\x07\xba\x34\xac\xc0\x9e\xa8\xc7\x55\x2c\xe9\xdf\x2a\xb1\xb1\x84\x85\x14\x63\x5a\xf8\xcc\xcf\xe7\xf5\xf4\xb8\x66\x09\x78\x94\xe8\xbb\x59\x2c\x66\xea\xbd\xe9\x48\xbf\x35\xa1\x07\x96\xfa\x68\x2c\xbc\x4c\x0d\xe4\x3b\x65\xe2\xdc\x0b\x4a\x75\x92\x28\x1b\x92\x64\xb0\xb7\xa5\x96\x47\xad\x47\xcf\xce\x78\x22\x6c\xa1\x71\x5d\xb4\xa0\x06\xc6\x43\xa0\x09\xb3\xaa\x8b\xe3\xaf\xa2\x7c\x6b\x05\xbb\xdc\xf1\x94\x13\x2b\x48\x95\x90\x35\x4b\xbb\x7c\x1b\xa7\xef\x5d\x43\x88\x49\x7a\xcf\xea\x9b\xef\xdc\x05\x00\x42\xfa\xc6\x87\xdd\x01\x3e\xfb\x82\xb8\xee\x38\xfa\x61\xd2\x53\xf7\x06\x59\x7f\xb9\xf2\x32\xc1\x35\x85\x90\x73\xd2\x1c\xdd\x1c\x33\x85\xe5\x3f\x4f\xd8\x6e\xfa\x99\x00\x53\xda\x30\xd3\xbb\x95\x20\xbe\xee\xe8\xf5\xf5\x97\x15\xe8\xf9\x9d\xe6\xa6\xb5\xef\xfa\x4d\x27\xb1\xa7\xca\x20\xa2\x02\x90\xb3\xf7\x90\xa7\x76\xee\x62\x92\x4b\xaa\x02\xce\xef\xb6\xab\xe7\x7f\x2d\xdb\x3f\x2b\x33\x77\x36\xd3\x7e\x91\x8f\x09\x06\xb6\x91\xf2\x0c\x39\xf7\xc9\x6c\xf3\x4b\x67\x99\x34\xbe\x9b\xd1\x59\xa1\xe1\xa9\x3e\xe7\xcd\x39\x95\x5d\xd5\xbf\x0e\x38\x98\x4a\x8d\xd5\x78\x56\xdd\x6f\x1e\x6e\xb7\xee\x36\x15\x33\x76\x01\x25\x7c\x5c\x50\x35\xa7\xdf\x05\xb2\x94\x72\x43\x07\xf8\xdc\x89\x36\x68\x66\xa8\x03\x15\x3a\x4f\xc7\xcd\x6b\x56\x2f\xf6\x45\xee\x96\x4c\xa6\xb9\xaf\x3b\x2e\x8d\xcb\x99\x5e\x43\x29\x0c\x1e\x97\x7b\x29\x50\x3a\xf0\xb9\x22\x34\x9c\x59\xcf\xcc\xb9\xb1\xdb\xaa\x73\x0f\xcc\xd6\xd0\x24\x0b\xdc\xaa\x70\x81\x80\xe2\x7e\xe0\x59\xd9\x88\xbc\x26\x6d\xc2\xfe\xe2\xff\x8f\x51\xdb\x28\xa4\x71\x60\x1c\x4a\x40\xec\x7b\xca\x0d\x93\x2f\x99\xfb\x11\xf7\xfd\xfe\x0a\x3c\x3f\xcf\x0b\xe8\x5c\xc5\xfa\x49\x72\x1e\x80\x01\xb6\xd9\xe7\x6a\x9e\xf8\xbe\x80\x96\x6b\x36\x94\x20\x05\x1e\x68\xa9\x93\xae\xb0\x40\xb6\x1a\xee\xfd\xf2\xd0\x07\x60\x2e\xe7\x60\x04\x69\x83\xf6\x58\xe8\x27\x72\x98\xc2\x9d\x0a\xec\x79\xc8\xe2\x24\xed\x82\xba\x61\xa4\xc5\x23\x3f\x10\xaa\x55\x69\x6c\xb1\xf2\xa3\x6b\xc4\x4a\x53\x87\x7e\x78\x1c\xb8\x86\x00\x4f\x64\x12\x3a\x0d\x6f\xea\x03\xcf\x86\x12\x74\x7b\xda\xef\xfb\x85\x5c\xce\x3c\x16\xb7\x25\x96\x99\xb5\x78\xfd\xf5\xda\x25\x7f\x39\xf3\xdb\xc4\xc6\xba\xd8\x67\xf2\x3c\x3f\x6f\xe1\x73\x51\xa8\x49\xf9\x70\xe0\x3c\xf4\x09\x9d\x6c\x9d\x40\xdd\xc0\xe5\x22\x52\xe4\x20\xb0\xac\xcb\xa2\xfb\x63\x6c\x14\xbc\xe8\xe6\x5d\x51\xcf\x2c\x05\x5f\x97\xf4\x48\xba\xca\xfa\x79\x2f\xe0\xf8\x50\xd4\x03\x93\x0c\xe0\x92\x9b\x62\x8a\x95\xb9\x1c\xba\x30\x0e\x2f\x25\x55\x64\x01\xf5\x04\x38\xf9\x81\x65\x8e\xa3\x62\x1d\x57\x5e\x80\x6d\x96\xe9\x96\x62\x0b\xd2\x82\x7d\x28\xea\xde\xdb\x54\x01\x90\xd7\x6b\xb3\x87\xdf\x16\xbf\xb2\x7c\xdb\x33\x48\x70\x6d\x12\x0e\xa9\x1d\x12\xcd\x5c\xd2\xfc\xa7\xab\x69\x73\x95\x26\xce\xac\xf5\xf1\x88\x39\xad\x2a\x24\x07\x39\xab\xeb\x62\xd9\xc2\x78\xb8\x12\x31\x6d\x49\x8e\x3d\x1d\xe5\x47\x3d\xbf\x08\x3d\xb9\x92\x9c\xfa\x2a\xe6\x65\xb1\xdf\x5f\xa6\xd4\x39\xb2\x88\xd0\x39\xc4\xd1\x71\xcc\xad\x71\x13\x1d\xa4\xce\x3f\xeb\x1a\xc7\x7c\xf4\x56\x51\x2a\x12\x1f\x9a\x67\xa4\xdc\x81\x6a\x1a\x26\xd6\x1f\x74\xe0\xb1\xc8\xe6\xe4\x6b\x1a\xc8\x13\x32\xa4\x00\x9e\x36\x2c\xcf\x23\x96\xba\x28\x0f\x4f\x68\xe5\xa6\xa8\x20\x39\xb9\xcb\xb8\x1a\x9b\xf4\xf6\x4b\xe0\xa7\x5c\x71\x13\x17\x92\x61\x59\x71\xca\xd5\x7d\x51\x61\x59\xdd\xf6\xa2\x06\x08\xfd\xc8\xd7\x6d\xcd\x92\xb4\x3a\xd4\x79\xba\x63\x41\xe8\x0b\xdf\xd2\x2e\xcb\xce\xe1\x08\x20\x14\x9a\xd2\xf3\xc6\x68\x6f\x6e\xf4\x2c\x87\xaf\x1c\x42\x4c\xa8\x86\x88\x87\x63\x7d\xde\x16\xa3\xa3\x91\x08\xa9\xd4\xdf\x42\x52\xee\xd4\x34\x5b\x04\xe2\x20\xa0\x30\xf0\x36\xab\xca\x7a\xa8\xa8\x3f\xba\xdb\x58\x84\x16\xa5\xf9\x39\x3f\x9d\xfb\x99\x01\x88\xa5\xd2\x76\xd7\x6d\x64\xa1\xfa\x9c\x1d\x3b\xc1\x42\x12\x86\xc2\xa4\x0f\xcc\x64\xe9\x86\x22\x24\x89\x11\xda\xa9\xa1\x34\x6e\x20\xb4\x1c\x51\x6e\xdf\xf7\xda\x46\xcc\x20\x02\x8e\xaf\x50\x61\x30\x74\x61\x00\x48\xc3\x14\x3b\x83\xac\xe6\x5d\xf6\xa7\x3b\x60\x68\x9c\x3d\x7e\x21\x1c\x8b\x7c\xa8\xce\x05\xd0\x04\xfc\x92\xf2\x89\x45\x79\x96\x9d\x89\x37\x00\x97\x31\x65\x6d\x76\xa0\xd4\x2a\xcb\xa9\x54\x76\xb1\xf5\x70\x38\x66\xe0\xd2\x80\x8b\x5c\x1d\xc0\xca\x65\xb9\x8b\x01\x60\xd2\x2e\x0a\xd5\x6d\x51\xba\x52\xfc\x2c\x57\xbd\x92\x3b\x80\x48\x7a\x6a\x2f\xdb\x66\xbf\x7f\x2a\xaf\x7d\x14\x90\xc6\xc7\xdb\x4c\x8a\x56\xc0\xf0\x3a\x86\x6d\x72\x1f\x3e\xfc\xa7\xbb\xb6\x08\x02\xca\xc4\x88\x22\x3f\x55\xab\x66\xb3\x6c\x20\xfa\x77\xf9\x40\xd3\x1b\x40\x80\x47\x62\x6b\xcb\xb2\x2c\x4a\x9b\x79\x6c\xb3\x13\x20\x54\x48\x6e\xa1\xc6\xa6\xb9\x2f\xae\xde\xdb\xe2\x83\xf2\x81\x32\xf8\x54\xea\xd8\x50\x29\x66\x82\x55\x00\x2a\xf5\x5c\xb0\xdd\x04\x1f\x04\x04\x76\xe9\x0e\xb7\x6a\x00\x62\xa8\x0d\xa4\xd7\x6e\x05\xfa\x1f\x2d\x89\xfe\x27\xf8\xdf\xde\xff\x1a\xfd\xc9\x5e\x42\x7b\xe0\x29\x63\x9b\xe1\x9c\xb0\x7a\xb3\x30\x68\xc1\x9c\x68\xf6\x03\x7e\xac\xe0\x73\xb8\x0b\x1f\xbd\x48\xad\x7c\xe2\xda\xdf\x16\xd5\x2b\xfc\x5d\xd9\x0c\x73\xae\xf0\xac\xbc\xf8\xe3\xb7\x75\xbf\x4b\x0b\x8f\x03\x55\x43\xf7\x59\x45\xc2\x74\x55\x67\x34\x01\xc2\x8f\x8d\xc6\xa0\xb1\x3c\xe9\xde\xb2\x08\x2c\x71\x60\xb3\x5a\xfe\x2d\xa6\x9f\x3b\x8d\x99\x3a\x8d\x49\x59\x0e\xc0\x38\x22\x4c\x0c\xb6\x63\x7e\x2a\xf3\xdf\x78\x35\x81\x08\x99\xb1\x03\x33\x7d\x7b\x99\xab\x0b\xbd\x33\x10\xa1\x8c\x29\xb4\xf9\x71\xf7\xf0\x6d\xf7\xeb\xee\x61\xb7\x7a\xbe\xdf\xde\xad\xef\x97\xbb\x75\x0b\x30\x14\x11\x0f\x69\x73\x66\xf1\x0a\xcd\x0a\xe2\x0e\xc5\x42\x52\x79\xcc\x0d\x43\x1c\x6e\x7c\x45\xea\x07\xce\xe7\xc2\xe8\x05\x4d\x0f\x2d\x91\x26\x31\x25\x2f\xc5\x69\xdf\xae\x69\x34\x11\x9b\xce\xd4\xd9\xa1\xfd\xe3\x6a\xc9\x4a\xb0\x34\xd0\x5e\xcb\x03\x98\xf7\x44\x87\xd7\x72\xd4\xb5\x05\x13\x8a\xa6\x8f\xf5\xe3\xe3\xf7\xdd\xf6\x71\xb7\x98\xdd\xdf\xef\xfc\xf5\xfd\xf3\x6a\xde\x3d\x37\x0f\x04\x45\x07\xeb\xe5\xfa\xbe\xfd\x1b\x00\xad\xa4\xab\xd9\x9f\xbb\xa7\xe5\xcf\xe5\xc3\xf3\xb2\x3d\x84\x22\x8a\x3b\x5b\xb1\x36\x85\x3f\x2c\x7c\x4f\x06\xfa\x02\x02\x33\x04\x54\x91\x37\xc3\xf9\x52\x2b\x18\x04\x30\x4e\xf3\xa3\x0d\xa2\x86\x36\xd2\x20\x1c\x1d\xaf\x19\xac\xb2\xce\xde\xd1\x78\x3b\xb5\x47\x8d\x89\x29\x09\xe7\xaf\xa0\x19\x62\x83\xc4\xbf\x10\x11\xc4\x5e\x47\x89\x6b\xe9\xf4\x20\x44\xec\x13\x1e\x63\xe7\xac\x4e\xb6\x50\xbd\x4d\x0f\x3e\x21\x43\x4d\xc9\x2c\x45\x92\x1f\xab\x2c\xaf\x67\x2f\xdd\xdc\x25\x54\x28\x1c\xd0\xe7\x57\xf6\x1b\xe5\x36\x10\x3a\x34\x46\xdc\xb2\xc8\x75\x56\x1e\xbe\x28\xdd\x8f\x4f\x14\x9a\xd4\x0b\x08\x2a\x69\xf4\xb6\x47\x8c\x24\xd3\x50\x7a\xcc\xa8\x35\x50\x16\xec\x36\x23\xf0\xda\x64\xff\x94\x9e\xd0\x54\x94\xae\x7b\xe8\xc7\xcd\x39\xaf\x5f\xb1\xce\x3e\xc7\x57\xd5\x48\x45\xf1\xf9\xf3\x5f\xcb\xa7\xdd\x66\xbb\x5c\xef\xe2\xdd\x62\xf6\xb0\x58\xde\x0f\x37\x16\x32\x48\x14\x4d\xfa\x48\x92\x5a\x38\x53\xca\x08\x5a\x8d\xfd\x23\x5d\x73\xee\xa1\x9d\x08\x6f\xb3\xb2\xaa\x5b\x15\xc9\xf6\xb8\xa0\x40\xe4\x76\xee\xba\xb0\x0c\xc1\x27\x80\xf9\xf7\xfb\x85\x2b\xd2\xca\x28\x55\x82\x9c\x12\xf7\xc5\x49\x89\x32\x23\xbf\xd7\xe9\x34\x85\x8c\x54\xcc\x82\x56\xe7\xd9\x58\xe5\x0f\x6f\x2a\x52\x3c\x95\xed\xf6\xd6\x42\x14\x17\x50\xaa\xc1\xea\xdd\x32\x95\xdc\x59\xe8\x51\xd4\xa5\xce\xf9\xac\x2c\x81\xd0\x31\x7f\x0c\xc7\xb3\x8c\x34\xa3\xce\xb4\x69\x02\xdd\x51\x69\x42\xc6\x9e\x97\x38\xd4\x43\x66\xea\xfa\xa7\xfc\xda\xa2\x20\x63\x4f\x13\xb3\xbf\xca\xfe\x8b\x8f\xba\xb7\xeb\xc4\xee\x82\x91\x32\xa5\xf5\xba\x38\xae\x4b\xbc\x93\xc5\x2c\x57\xcd\x3c\xdb\x35\x40\x62\x39\x1f\x8b\xaa\xe9\xd8\xed\x9f\xb9\x52\x56\xe4\xfc\x4e\x16\x6b\x28\x81\x6c\xd3\xaa\x4d\xb3\x51\x6f\x17\x03\x19\x2b\x41\x19\x98\x43\x0b\x8a\x93\x89\xe7\x53\x37\x3d\xe2\xf1\x16\xca\x4b\x89\xcc\x2f\x67\x77\x99\x04\x5e\xec\xf2\xa1\x50\xc3\xba\x68\xee\x69\x34\x9e\x28\xde\xee\x07\xf5\x32\x61\x3a\xb5\xd8\xa7\x39\x56\xcd\xab\x53\x63\xf0\x84\x4c\xd3\x94\xd2\x19\xcb\xe5\xed\x49\xbe\x55\xfd\x95\x50\xb2\x94\x11\x0a\x99\x04\xf6\xdc\x44\x7d\x83\x32\x3b\x40\x67\xf4\x72\x39\x37\x4b\x9e\x28\xcd\xc6\x92\x95\x48\x9a\x22\x7d\x87\xdc\xa1\x8e\x3e\x48\xce\x18\x21\x89\x36\xdf\x16\x0b\x77\x0b\x24\x14\x47\x40\xe3\x12\xce\x46\x55\x44\xf7\xce\x9f\xee\xc7\x8a\x99\x0a\x6c\xb3\x07\xc4\xb2\x1d\x31\x8a\x61\x04\x6d\x84\x83\x83\x15\x72\xf4\xbe\x95\x8e\x02\xe1\x7e\xf6\x51\x3f\x14\xf9\xb6\xcc\xde\x33\xd8\xdb\x8c\xce\x78\x5c\x60\xa2\xa4\x53\xdc\xb6\x0e\xf6\xc6\xeb\xe3\xa2\x4e\xd4\x75\x12\x4c\x95\x8b\x74\xee\xa1\xaa\x17\x90\x2b\xe2\x49\xb4\x9d\x54\xc7\xd2\x66\xb2\x9a\x3e\xfc\xe3\xaf\x05\xa1\xf5\x32\x54\xa3\x29\x48\x0b\x46\x19\xb8\x7f\x65\x2f\x2f\x03\x11\x0e\x50\x9e\x67\xa6\xf3\x03\xd6\xb0\xff\x28\xca\xb7\x6a\x31\x01\x00\x53\x5e\xa8\x69\xf2\xfd\x36\xdf\x0e\x47\x9e\xf2\x54\x42\x9b\xfd\x1d\x11\x68\x1f\xf0\xc3\xa8\xf4\x0c\x6e\x40\xf9\x81\xf1\x2d\x93\x86\x9f\x7e\x8d\x77\xfc\xe5\x3c\xde\x44\xa9\x06\xca\x67\x4c\xb0\x40\xf5\xd2\x3e\xca\xd7\x48\xb0\xd0\x1e\x36\x4e\x05\x49\xe2\xfb\x6d\x2f\x1b\xab\xa0\x83\x0a\xc0\x78\x41\x8a\x53\xb6\x57\xd3\x6b\x82\x0a\x23\xa0\xbd\xfc\x7c\x76\x77\xbf\x19\xc4\x6d\x6d\x03\x05\xb6\xba\x6c\xd4\x1d\x9b\x40\x6d\x40\xe4\x53\x61\xac\x88\x61\xb2\x58\x3d\xb6\x7f\x62\x98\xb4\xda\x3e\x87\xec\x2a\x37\xd6\x35\xd7\x2d\x01\xdd\x52\xfc\x47\x5f\x21\x0a\x21\xb6\x58\xe1\xa7\x66\xde\x5d\x3c\x8e\x6e\x33\x8a\xfc\xd4\x02\x0a\x7e\x16\xfb\xd3\x01\x05\x54\x16\x77\x7b\xa1\x08\x05\x2a\xe2\x01\xc5\x2e\xb7\x27\xc2\xd1\xd9\xfc\xbb\xad\x84\xd8\x36\xb1\x87\x34\xf0\xb2\x56\x98\x7e\x99\xd7\xe5\xf9\x2e\xd7\x6d\x0e\x49\xc5\x22\x24\x94\xbc\x01\x38\x8f\xee\x39\xf1\xd0\x60\x36\x4f\x82\x78\x44\xf9\x14\x97\x48\x25\x2a\x72\x1e\x49\xf7\xb4\x17\x18\x1d\x4f\xad\x09\xf0\x8f\xe2\xad\xfb\xdd\x14\x90\xd6\xb4\x79\x56\x57\xa7\xc3\x02\x2a\x97\x9b\x51\xcc\x0b\xc9\x22\xec\xc3\x0a\xa4\xd3\x36\x30\x74\x47\x79\x1c\x5a\x95\xec\x5a\xbe\x9a\x14\xe1\x17\xd3\x98\xe2\x31\xa3\x32\x40\x26\x8b\xe7\x3c\xab\xfb\xd9\x3b\x05\x3c\x42\xcf\x95\xe7\x6a\xb8\xeb\x7a\x7d\x7f\x4a\x53\x20\x8d\xce\x1a\x6d\x17\x36\x35\x3a\xdd\x24\x50\x32\x49\xa9\xec\xf9\x0b\xf6\x75\x36\x00\xb5\x2a\x89\x9a\x42\xf9\x23\x9c\x5b\x28\xdb\xe8\x0b\x2a\x91\x24\x2d\x48\x90\x54\xf5\xdd\x01\x99\x44\xc6\x56\x00\xdf\x9c\x12\x69\x2f\x55\xa0\x30\x91\xf4\xc9\x2c\xe4\x85\x64\xa9\x4c\x22\xcb\xa5\x51\x15\x32\xa0\xf2\x35\xe5\x3f\x26\x1c\x43\x40\x21\x17\x24\x66\xd8\xee\xb7\xeb\xa2\x94\xed\x37\xd0\x61\x40\xc2\x13\x7b\xc4\xb7\x4d\x8d\xb0\x7f\xcc\x5d\x65\x05\x3d\x4f\x46\x24\xb7\xfd\x0a\x25\x3e\x15\xc5\xe1\x66\xb6\x6d\x81\x41\x83\x57\x87\x5e\x12\x51\xc5\x9b\x22\xd1\x53\x8d\x4f\xc5\x7e\x7f\x81\x7c\x46\x3f\x0d\x48\xfe\x89\x08\xbc\xa5\x51\x30\x1b\xdc\x2c\x06\x81\x11\xe0\x34\x15\xee\xd4\xdd\x49\xc8\x62\x82\x3a\x81\x94\x4d\x00\xd0\x62\x9d\x30\xf2\x43\xe8\x36\x52\xbf\x50\xc0\xf1\x78\x45\x35\xc9\x9d\x11\x73\xda\x56\x35\xdb\x99\x55\x0f\x41\x77\xd9\xa5\x30\xd2\x68\xe4\xca\x9d\x3e\xeb\x97\x13\x03\x26\xbe\x29\x50\x19\x2d\x56\xb2\x55\xba\xb0\x3d\x18\x9d\xc1\x03\x4a\x7c\xed\x40\xa9\x35\x9c\xaf\x38\xcc\x03\x26\x22\x8a\x2d\x0b\xf4\xbe\x90\x6f\xa7\xe3\xe8\xbd\xa6\x49\x9a\xf6\x10\x5f\x7d\xf7\x4d\x40\xe6\x03\x5a\x55\x66\x12\x6b\x0d\x9b\x95\x94\x7a\x5b\x9b\xc0\xe8\x50\x37\xc8\x62\x63\xf2\x4e\x0b\x27\x39\xa9\x8f\x7a\x33\xb2\x18\x3d\x63\x21\x6b\x5f\xf4\x43\x51\x1b\x19\x8e\xe9\x17\xce\x74\x44\xec\x84\x5f\x28\x7a\xc5\x6e\x64\x1a\x29\x57\xf6\x80\x35\x94\x78\x3a\xf4\x07\x15\x72\x44\x4a\xc6\x56\x21\xef\xab\x3d\x01\x42\xac\xc9\x75\xd9\x8e\x88\x5d\xd5\x2f\xf5\x21\x24\xa6\xe8\x45\x2c\x6d\xe7\x39\x94\x63\x75\xb9\x9d\x19\xde\x22\xa0\x26\xde\x4b\x96\xbf\x62\x99\xd5\xa8\x7e\x66\x2d\xcb\x07\x85\x2f\x29\xb4\x3f\x38\x0b\x9b\xc5\x2b\xe4\x39\x8e\x6b\x38\x28\x84\xa0\xc4\x68\x75\x12\xcf\x77\xf9\xd0\xbb\x74\xf4\x3d\x85\x4c\x88\xd0\xfe\x33\xdb\xef\xff\xdd\xfe\x8e\xd6\x94\xe3\xdf\x4b\xf9\x49\xca\x32\x83\x19\x1a\x65\x94\x8a\x68\xc8\xbd\x32\x1b\xb8\xe1\xa5\x25\x0b\x84\x65\xdc\x13\x75\x74\x9d\x1d\x47\x4b\x2d\x4a\x1e\x4b\x39\x70\xd8\x34\x42\xee\x45\x79\x01\xf9\xb4\x67\x28\x19\x30\x23\xe2\x5c\x96\x19\xbc\xe0\x6f\x55\x24\x06\x73\x83\xc2\x58\x12\x5d\x6f\x5f\x08\x93\xc4\xff\x09\xa7\xbd\x8b\xd2\x51\x69\x9f\xe6\x27\x4b\xe5\x9b\x9a\x15\x10\x25\x85\xc6\xbb\x8a\x08\x99\x6f\x59\xfe\xb2\x3c\x16\xf2\xf5\xe6\x64\xd1\x73\xc3\x77\xa0\xd1\x80\x25\x6a\xac\x6a\xcf\xef\xb9\x24\xb7\x99\x5a\xed\x45\x40\x74\xd7\x1c\x3f\xdc\xc3\x0c\xdf\xb7\xf6\xb5\xd2\x69\x8f\xb0\x3f\x81\x51\xe2\xf6\x07\x75\xa0\x80\xf6\x30\xcd\x0f\xfe\xc0\x33\xaa\xef\xdd\x2a\xa7\x23\x3f\x0e\x9d\x6f\xd2\xab\x83\x1f\xb4\x07\x83\x80\xd0\xc1\x4f\x9b\xf5\xfd\x76\xf7\xdd\xfd\x39\x0e\xcd\xa6\x68\x05\x26\xdb\x15\xb4\x07\x98\x62\xae\x9e\x99\x8d\x9e\x5b\x27\xa1\x47\x6f\xf2\x66\xf6\xf4\xe3\xe1\xf1\x66\xb9\xbb\x5d\x2e\x37\xbb\x9b\xe5\xc3\xe3\xea\xee\x61\xb6\x7d\x74\x5b\x4f\x9d\x08\x2f\xd1\xce\x2b\xe1\xb3\xb6\xc5\x8c\xed\x76\x45\x3f\x76\xa7\xf8\x40\xe8\x44\x27\x98\x50\x28\x6e\x2a\x78\x6d\xda\x78\xf0\x8d\x74\xca\xac\x96\x71\x13\x78\xfd\x42\x7c\xbb\x2d\x4e\x2e\xea\xd2\x29\xf7\x29\x33\x4a\x2b\xeb\x5d\xfe\x0b\xb3\xd1\xad\xa7\x4a\x08\xc3\x43\xcf\x15\x2d\xdd\x16\x15\xbc\x2d\x8c\xda\x65\xeb\x87\x38\x3c\x8d\xf9\xc6\x64\x76\x77\xc8\xf2\x7a\xca\xb8\x02\x34\xf7\x53\xce\x5d\xe5\xae\x55\x4c\x70\x49\x77\x0d\x5e\xc8\xac\xb4\x75\xe7\xea\xd3\x4f\xea\x6b\x48\x05\xd5\x7d\xea\xa2\xd5\xc5\x03\x2d\xa2\x30\xd2\x4e\xf7\xa6\xd9\x91\xf6\x2c\x81\x86\xef\x45\xf0\x80\xe0\x3e\x2b\xc4\x63\x6f\xfe\xd3\x42\x79\x74\x05\xa7\x58\xe7\xfe\x2e\xc3\x88\x82\x43\x12\xd3\x20\x90\x68\xeb\x5b\x02\x1a\xd3\x48\x3a\x17\x8a\x5d\x91\x23\x95\x44\x97\xcd\xd2\x3f\xea\xbd\x08\x8a\x70\xa4\xb6\x74\x42\x0b\x42\x4b\x64\xd2\xda\x07\xe2\x6d\x6c\xef\x96\x4f\xc1\x6e\xfd\x74\xb7\x58\xb6\x87\x94\x0c\xb9\xfd\xf9\x65\xae\x3a\xdf\x2b\xd0\x1a\x3d\xc2\x45\x2c\xb2\x52\x12\x29\xfd\x0d\x73\x5a\xe5\xc6\xba\x0c\xff\x57\x85\x5f\xe1\x79\x01\x13\xbc\x07\x1c\xa4\x59\xfd\x2e\xbf\x2d\x41\xfe\xe1\x9a\xa4\x48\xef\x6b\x5f\xbc\x18\xe1\xfc\x56\x2b\x8f\x14\x69\x94\x6b\xe7\xc7\x8c\xf7\x6c\x22\x8c\xa4\x75\x57\x79\xef\x7d\x5a\xe1\xf9\xcd\xb6\xcd\x2d\x76\x58\x6e\x8b\x09\x7a\xaf\xf0\x82\x30\x26\xd4\x5d\xbd\x07\x77\x62\xc8\x52\x82\xe0\xcf\x4a\xf9\x8a\xf5\xf9\xe8\xe0\x2c\xc2\x0b\x51\x11\x31\x5f\xee\x11\x8c\x0b\xba\x3b\x12\xf9\x8a\x22\xb5\xcd\xf2\xe7\xf2\x61\xfb\xe0\x1c\x9c\x84\x17\x69\xdf\x77\xf2\xe5\x3b\x7d\x85\xc4\x28\xbc\xc4\x57\x69\x47\xf4\x7a\xc2\x66\xa0\xb5\x9b\x62\x9b\xb7\x12\x5e\x12\x47\x04\xb7\x59\x42\xd9\xbc\x41\x53\x58\x37\xdf\xaa\xb2\x3e\xff\x5f\xe1\x85\x85\x97\x30\x24\x31\x46\xeb\x57\xf5\xab\xd9\x86\x4e\x22\x72\x84\x97\x70\x03\x6b\xad\xe4\x2b\xaa\xd3\x1e\x07\x96\x80\x03\x82\xc5\x90\x94\xe7\x4e\x6f\xfa\xb3\x35\xa8\x90\xc5\xe6\x5c\xd5\x78\xe8\x67\x3e\x85\x97\xc8\x90\xb6\x35\x4e\x0d\xe1\x0a\x3a\xe6\xeb\xbe\x95\x20\x50\x66\xd3\x61\xb2\x7e\x83\x86\x12\x5e\x1a\x19\xf2\x6c\x56\x39\xe2\xf1\x1f\xc3\x2b\x32\x60\x64\x89\xb2\xbc\x79\xde\x3e\x3f\x3d\xb8\xbb\x65\xda\x90\xd7\xa4\xe1\xfe\xdd\x16\xe5\xba\xcc\x8a\x32\xab\x9b\x4e\x1a\x5c\xc6\x99\x5f\x6e\xb5\x2f\xd0\x72\xf6\x47\xb8\x9f\x38\x4b\x3d\xd3\xb5\x27\xa3\x2e\xe1\xf1\xd4\x64\xff\x7f\xfc\x78\xfc\xd6\x5b\x71\x84\x27\xb4\xa4\xe9\xac\x89\x6d\x67\xb9\x6a\x05\x8d\xc7\x37\x35\x78\x25\x32\x0e\x53\xd1\x23\x81\x39\xf3\xc5\x76\xd4\x49\x1e\x92\x66\xe4\x1e\xaa\xfa\xc6\x71\x5b\x9b\x3f\x2b\xda\x16\x74\xca\x4e\xb3\xf6\x90\x00\x27\x83\xf8\x9c\x67\xff\xe9\x56\x4c\xe1\x49\x19\x93\x2a\xc7\xee\x26\xd3\x3a\x93\xa7\x7d\x7d\x5e\xc0\x9e\xea\xb7\x7f\x5c\x66\x2c\x85\xa7\xbc\xd0\x61\x01\x0c\x0c\xa7\xef\x5c\x36\x1a\x45\x4a\x71\x4f\xbb\xbd\xf7\x15\xa3\x25\xe1\x29\x2d\x3a\x0f\xf0\x5c\xdd\xa0\x36\xc0\x88\xd3\x18\x5c\x29\x3c\x04\xf3\x88\xd9\x49\xe1\xe7\x9d\xda\x16\xc6\x46\xec\x8f\xe1\x67\xd3\x5e\x80\xad\x52\x95\xf3\x04\xef\xa8\xb4\xc2\xd3\x3e\xeb\x41\x0b\x17\x85\x36\xbb\xe1\xd9\xa8\xeb\xe9\xc4\x70\x3b\xb2\x5c\x6d\x10\x95\x33\xa3\x31\x47\x7d\x8f\x1b\xa8\xf4\xec\xe6\xe7\x6e\xbe\xfd\x6b\xb7\x79\x5e\xaf\x9d\x7b\xa2\xf0\x7d\xc9\x68\x02\x79\x42\xd8\x2f\xab\x1a\x6a\x5c\x94\xe7\x63\x5d\xdc\x9e\x72\x65\xb7\x0c\x83\x1f\xf3\x7d\x05\xb4\x55\x5a\x6d\xff\xea\x77\x21\x3f\x60\x22\xd0\x1d\x10\xa4\x99\x88\xc7\x31\xa3\xf0\x03\x48\x85\x31\xbd\x3c\x37\x3f\x78\xf8\xb2\xa2\x20\xfc\x50\x03\x35\xdf\x40\x13\xb5\x0f\x7e\x2e\xf2\x58\x1c\xb9\x15\xfc\x57\x96\xf7\x74\x3d\x85\x1f\x05\x09\x44\x6d\xdd\x82\xca\x58\xc3\x0b\x47\x1c\xc0\x08\xed\x9d\x8f\x35\x54\x55\x56\xb5\xaf\x2b\x52\xda\xf8\x14\xac\x97\xcb\x9b\xdd\x66\x3b\xdb\xee\x56\xb3\x3f\xdb\xa3\x08\x54\x23\x9c\x6d\x7e\x34\xc7\x7e\x2c\x77\x4f\xb3\xed\xdd\xa3\x3b\x1c\x87\x21\x41\xe5\x9d\x52\x60\x4b\x17\x9b\x40\xfb\x08\x3f\x96\x51\xda\x6a\x05\xb5\x8a\xd6\xd3\x7d\xd4\x4f\x99\x4f\xc5\xdd\xe5\x01\x4b\x43\x48\x69\x0f\x24\x91\x91\x96\x3c\x1c\x4e\x79\x56\x9f\xd7\x7d\x49\xcf\xe1\xfb\x4f\x59\x42\xa4\x1c\x49\xfe\x2a\x8b\xa2\x7b\xec\x94\x09\x52\x62\x79\x98\xcf\xba\x80\xa4\xf9\xb3\x26\x11\xb4\x63\x51\xec\x89\xbb\xef\x0e\x70\x0f\xd1\x44\x30\x07\x7c\xc0\xfa\xa3\x28\xbf\x50\x9d\x13\x3e\x8f\x80\xa2\xc5\xd9\xfd\xfd\xe3\xa2\x79\x63\x0f\xbb\xfb\xc7\xc5\x8f\xdd\xf2\xe1\x66\xb7\xbd\x5b\x2d\x37\xdb\xd9\x6a\xdd\x5e\x3b\xf5\x68\xff\xbe\x7d\xc5\xfe\xbd\x70\x1e\xf5\x64\xd2\x57\x50\xbd\x7d\x5d\x91\x12\x3e\x47\xa3\x99\x4a\x45\x32\xda\xa6\xf5\x51\xa0\xc2\x07\xc9\x3d\x47\xab\xfe\xf3\x7e\x5d\x16\x47\x2c\xeb\xf3\x64\xa2\x51\xf8\xa0\xd3\xd8\x45\xa3\xd3\xb3\xec\xe8\xd7\x45\xc8\x29\xe8\x58\xbc\x96\x45\x5e\x18\xc9\x8b\x75\x41\x78\xe2\xee\xa1\x44\xc2\xa0\x19\x4e\xcf\x4f\xab\xf9\x17\xab\xd0\xe8\x3b\x0a\xad\x42\x27\x1b\x7a\xca\xd5\x14\xb1\x5b\xf8\x92\x25\xda\xdd\xf0\xbc\xd9\xfc\x9e\x8e\xe3\x16\xc2\xa8\x90\x93\x05\x17\x81\x18\xae\x2e\xa3\x5f\xaf\xaa\x57\xb0\xdc\x83\xd7\xa1\x2c\xaf\x19\xeb\x57\x1b\x53\x6d\x3e\xe0\xf8\x78\xaa\x8f\xa7\xe9\x32\x90\xf0\x15\x84\xc9\x60\x1c\x5f\xb8\x4f\x0a\x1f\xbd\x88\xe0\x2b\x64\x74\xb9\x76\xb4\xe2\x71\xa3\xd8\x6c\x56\xe4\x6b\x13\x4a\xe4\x2f\xd8\x5c\x2e\xcb\x5f\xac\x61\xde\x60\x47\xee\x56\x10\x5f\xc7\xbe\x91\x79\x81\x37\x24\x00\xbf\x89\x9c\x46\x97\xd6\x29\xa3\xba\xc1\xbf\x8b\x2c\xdf\xfc\xa7\x1c\x1f\x15\x5a\x09\xfb\x0d\x9a\x78\xf3\x92\x7e\x32\x7e\xa3\xc3\x10\xa9\x03\x59\x09\x5f\x23\xa2\x4d\x64\xef\x0e\xe7\x5d\x95\x59\xc3\x0a\x11\xf8\x01\x27\x2c\x7f\xa1\xaf\xd9\x97\x88\xc0\x8f\x18\x99\x44\xde\xe0\xfe\xf4\x59\xb4\x67\x42\x42\xf3\x19\x6d\xd0\x6e\xb2\x4a\x9c\xca\x0a\x3b\x0f\x53\x11\x04\x29\x10\x15\x82\x4a\xae\xae\x30\xb2\x86\xb2\xde\x7e\x14\xc3\x08\x70\x08\x0c\xfb\xbb\x80\xe7\x41\xed\xcb\xfe\x66\x18\xa4\xca\x6c\x0c\xf1\x3d\xb3\x6e\x19\x0e\x0e\xe1\x9a\xc4\x3e\xb1\x7a\x1c\x82\x96\xe4\x6e\xbe\x2c\x33\x37\xe7\x08\x52\x7a\x30\xc8\xe5\x79\xc7\xec\x1c\x8e\x8a\x20\x4c\x8c\x44\x6c\x55\xec\xc9\x66\xcc\xf4\x98\xe1\xda\x1d\x44\x8a\x11\xaa\xcf\xc4\xa6\x36\x88\xb6\xc7\xe2\x40\x58\xe5\x48\x23\xd0\x32\x88\x5f\x83\x38\xd1\x94\x65\xb8\x99\x3d\x6e\x50\x9e\x88\x29\x74\x51\x63\xba\x1a\x27\x3b\xca\x88\x08\x62\x9e\x70\x1b\xb3\x11\xaf\xd0\x5d\x3f\x09\x4d\x0e\x8d\x4a\x7e\x16\x48\xba\x30\x42\x9b\xae\x49\xea\x79\xa4\x92\xb5\x28\xca\x63\xd1\xe7\x1a\x8a\x20\xe5\x1e\x77\x32\x4a\x75\x71\xbc\x2f\xe4\x5b\xff\xbd\xa7\x02\xb9\xc1\xb9\x9d\x8b\x52\x76\xf3\x58\xd0\xac\x4e\xed\x7a\x6c\x93\x47\xcf\xc7\xf6\xa8\x4a\x69\x9b\x43\x83\xb4\xc5\x40\xba\x83\x9a\x85\x76\x94\xaf\xf1\xe5\xc5\x42\x52\x06\x1e\x99\xc3\xe9\x2f\xe0\x4c\x69\xab\x0d\xda\x76\xd8\x6a\xf4\x15\x21\x48\x88\x4e\xf6\x91\xe5\xf3\x32\x93\x6f\xc6\xc8\xc3\xfd\x26\xa4\x29\x65\x71\x97\xb9\x8a\xdb\xbf\xb1\x44\x18\x8d\xac\xe2\x38\x58\xcb\x6c\xee\x57\x04\x20\x25\x98\x05\xfb\xe6\x69\x3d\x1c\xe9\x01\x60\x40\x8b\xd6\x43\x51\x67\xfa\xbc\xb3\x01\xdf\xc4\x56\x22\x10\xcd\xee\xbf\xdd\x86\x6f\x8b\x53\x99\x43\x7f\xc8\x49\x4f\xc7\x71\x5b\x15\xa3\x62\xda\x68\xb3\x11\x48\xdf\xe0\xa4\x67\x07\xa8\xf1\x54\xae\xf7\x50\x67\xf9\x20\x5d\x2a\x02\xa9\xd2\xd8\x2e\x7e\xdf\x8e\x2f\x3f\x9c\xcf\x9f\x08\x24\x46\x94\x10\xad\x6a\x78\xc3\xdb\xa2\x6c\x13\x66\x5f\x4e\x49\xed\xc9\xa9\xf6\x3b\x87\x73\xab\x75\xd1\x1b\xbc\x8a\xc7\xca\x7e\x4d\x43\x28\x1f\xe6\xc8\x6c\x2b\xfc\xff\xa4\xfd\x59\x73\xa3\x48\xf6\x3e\x8e\xbf\x9d\xbe\x98\x0b\x48\x20\x49\x2e\x65\x59\xb6\x35\x6d\x5b\x1e\x49\xd5\xd5\xfd\xfb\xc4\x84\x22\x97\x93\x16\x63\x04\x1a\x40\xb6\x35\xaf\xfe\x1f\x9c\x5c\x58\x24\xbb\xfa\x1b\xff\xe8\x88\xae\x2a\x91\x6c\x49\x2e\x67\x79\xce\xf3\x44\xd4\x6a\x4c\x95\x86\xe4\xc8\xc1\xa7\xb7\xfc\x0d\x66\xcd\x9a\xbf\xf9\x21\x07\xd2\x18\xe7\xbb\x6e\xf1\x05\x75\x5b\x7d\xfc\x3d\x64\x96\x20\xa0\x42\x19\x58\x7e\xc2\x3b\x99\x7f\xb1\x30\xea\x98\x46\xbe\xbc\x11\x89\xa7\xe0\x74\x18\x71\x9c\x08\xa2\x69\x22\x8c\xd6\xcb\x15\x7e\xea\xee\x30\xd3\x89\xaf\xc7\x5e\xfc\x97\x10\xb3\x5a\x10\xbb\x34\x12\xb7\x6a\xe8\x34\x92\x76\x65\x5b\xce\x57\x8f\xa0\x5e\xfb\x69\xa0\x39\xc5\x08\x6c\xe7\x2d\x61\x8e\x72\xf7\x9e\x76\x0e\xd0\xce\x3e\x6e\xdf\x4e\x3b\x6a\x20\xf4\x8f\x26\x6f\xa3\x0c\xe6\x44\xf2\x16\xb9\x79\xc7\x87\xa3\x20\x22\xd2\xc9\x4d\xe4\xe5\x6b\x01\xf7\x27\x68\x9a\xcb\x6d\x35\x0a\x98\x29\xff\x6f\x4e\xa2\x1b\xa1\x77\x35\xc0\xff\xf2\xf2\x75\x90\x41\x13\x51\xa0\x09\x66\xd7\xfe\x98\xcf\xf7\x1e\x59\x69\x8f\x85\x8c\xa4\x56\xd5\xe8\x2e\x2f\x26\xab\x67\x14\x66\x1a\xb7\x1d\xb4\x7c\x7f\x58\x32\xc5\xc1\x3a\x13\x85\x60\x02\x0e\xff\xe1\xf2\xed\x58\xb9\xa9\x11\x11\x21\x48\x62\xd3\xd4\x3c\x2f\x1b\x63\xf5\x5f\x0f\x34\x1b\x9b\xc4\xcd\xdd\x88\xc8\x04\xd7\x03\x54\x28\x2b\x78\x7e\x98\x1d\xfc\x65\xa3\x18\xe2\xcc\xee\xd2\x50\x1b\x82\xdd\xab\x2b\x4f\x14\x25\x46\x05\x45\x9c\xce\x7f\x96\x43\xb4\xe6\x70\x86\x47\x11\x07\x2c\x97\xf8\x6b\xf3\xe0\x6f\x01\x71\x62\xf5\x13\x7e\x7a\x2a\x8c\xf1\x30\x8a\xe2\x90\x62\x52\xb4\xfd\xff\x47\xf9\x4e\x44\x31\x31\x77\x77\x45\xab\x37\x27\x37\xf5\xa3\x24\xc9\x20\x74\xa2\x78\x9d\xb7\xd8\x8e\xf8\x2f\xc6\xd7\x49\x52\x86\x8e\xe3\xa8\x8a\x43\xf9\x4b\x09\xa3\x7d\xc8\x95\xb2\xaa\xd2\x23\xd5\x82\xc9\xd2\x19\x25\xda\xc8\xab\x98\x3a\x2d\x7f\x15\x1a\x18\x19\x43\x2c\x49\xb6\x79\x86\xed\xf9\x08\xd7\xea\x4a\x44\x44\x43\x13\xa6\xe8\x39\x33\xae\x31\xa4\x89\x88\xf2\xd4\x28\xc3\x2c\x5f\x06\xb6\x76\xc4\x28\x53\xc2\xf1\x8c\x1f\x04\xd4\x37\xe7\xa5\x9a\x98\x8a\x51\x16\x24\x4e\x9a\xfa\x19\x3e\x5b\xcb\x76\x8e\x63\x73\xfc\xb5\x32\x42\x59\xe0\x89\x65\x2d\xee\x73\x7c\x2d\xce\x8c\x21\xf3\xb3\x33\xad\xad\xc9\xf9\xd2\x8f\x66\xce\x20\x33\x41\x64\xb7\x05\xfc\x73\x3c\xdc\xb9\x8c\xd1\x12\xf1\x44\xca\x8f\xf9\xbb\x9f\x22\x5c\xc5\xda\x13\x4b\x15\x55\x8d\xa4\x57\xee\xa0\x08\x95\xc9\x76\x3c\xf0\xe6\x06\xa0\x7c\x01\xa7\x21\x72\x35\x1e\x16\x09\x42\x43\x8b\x4e\xda\x1c\xb9\x84\x66\x9f\x1f\x9f\xaa\x12\xce\x93\x37\x12\x32\x46\x2f\xb4\x7a\x97\x2f\x50\x0f\x68\xfa\x44\x24\xb3\x34\x19\x58\x3d\x86\xaa\x69\x62\x3f\x44\x12\x62\x57\xea\xbf\xae\x2a\xbf\xcc\x5e\x1f\xc8\x12\x94\x27\x73\xeb\x45\x92\x5d\x5f\x5c\x1f\x6e\x93\x7c\xad\x88\x54\x96\xe1\x8c\x9d\x1d\x8f\xa7\x76\xb8\x42\x01\x31\xf9\x3d\xe3\x4e\xde\xe6\xfc\x50\x95\x6a\x22\x72\x78\xf5\x8f\xef\x82\x62\x11\x30\xc9\x7b\xa6\x2e\xbb\x3f\x5e\x8b\x20\x47\x20\x03\x34\x26\x6c\x91\xb1\x65\x7d\x1e\x7f\x16\x9d\x18\x15\xd7\x95\x21\x37\x32\x5c\x81\xd7\x67\xab\xce\x62\xb4\x3f\xee\x2b\xd4\x59\x6b\x47\xab\xb1\x16\x14\xf3\x07\x65\x35\x08\xa9\x45\x5a\x19\x5d\xe2\xaa\xe6\xb2\x1b\x1c\x3b\x4c\xfd\xa0\x2f\x3f\x40\x1c\x74\xed\x34\xa6\x7f\x17\x7f\x6e\x77\xf3\xd5\xd3\xcb\xec\xf9\xaf\xdd\xf6\x61\xbd\x58\xf8\x0b\x69\x91\x85\x3e\x4e\xf5\x3e\x54\xb4\x1f\x8f\xb3\x38\x88\x33\xb4\x6d\x2c\x4f\xd5\x2d\x14\x8e\x32\x45\xc4\x41\xca\x22\x27\xed\xd2\xbd\x2d\x46\x13\x4d\x71\xb5\xcf\xf4\x7c\x95\x5b\x1c\x3a\x6e\x71\x90\xa5\x28\x7f\xb2\xab\x4f\xa5\x05\xb9\xcf\xb1\x20\xe2\xff\x71\x3d\xbd\xbe\xbe\xc6\x81\x10\x3c\x1c\x70\x0f\x18\x7e\x74\x33\xde\x1b\xf7\x32\x24\x56\xe8\x03\xec\xc9\x2b\xf1\xbf\x25\x01\x92\xca\x34\x55\xdd\x6e\xab\xe3\x4b\xe5\x69\xbe\x45\x1c\x45\x12\x69\x25\x0c\x3f\xce\x23\x2f\x95\xa5\x57\xe5\x93\x05\x2a\x8e\x03\xc8\xb8\x93\x4d\x99\x2a\x8d\x88\x38\x0e\x39\x32\x0e\xfe\xb1\x5c\x6f\x7f\xcc\x1e\xb7\xb3\xc7\xdf\xdd\xa1\x24\xd2\x38\xe2\xf6\xbc\x56\x3f\x21\xf7\x42\x7a\x22\x4e\x62\xa3\x21\x5f\xc2\x67\xbb\xcb\x5b\x38\xec\xf2\x9e\x0d\x47\xc4\x09\x37\x5c\xa6\x12\x8a\xa2\x59\x8d\x6b\x7c\x45\x9c\xc8\xcc\x91\x37\xbd\xe4\x30\xe1\x31\x12\x31\xf2\x0f\x0d\x76\xb5\x11\x2f\xf9\xe5\x84\x8d\x29\x0d\x34\xf3\x1e\x88\x7c\x1b\x32\x30\x8b\x98\x4a\x86\xda\xad\x47\xac\xb6\x18\xa2\xed\x45\x9c\x26\x26\x3b\x6b\x19\x1d\xa9\xcb\xb2\xc4\x8c\x32\xa4\x4e\xdb\xf3\x66\x8f\x48\x5c\x7f\x20\x33\x54\xbc\x8e\x0a\xc0\xfd\xce\xa9\x42\xf7\xc0\x4a\xfb\xbf\x2c\xd6\x43\x0a\x5f\x11\x73\x26\x52\x5f\xae\xb2\xe3\x9e\xfc\xe5\xaa\xd1\x10\x8b\x50\xa3\x50\x9f\x99\x11\xdb\xca\xa5\xe5\xae\xce\x10\x41\x23\x74\xdf\x6e\x78\xf9\xb6\xeb\x4c\x85\x9d\x2b\x63\x73\x37\x17\x1a\x8c\xb8\x55\x67\xa7\xa0\x29\x83\x94\x9b\x6e\x93\x8f\x65\x90\x32\xd4\xd5\x41\xab\xca\x47\xb3\x7a\x1b\x3d\x96\x09\x43\xff\xef\xe7\x79\xa2\x98\x2f\x62\xc9\x09\x67\x4e\x88\xa8\x95\xfb\x9e\xd3\x48\xc4\x4a\x85\x89\x93\x61\x31\xc5\x13\xbd\x63\x10\x2b\xad\x11\xb6\xe2\xb8\xa2\xef\x79\x73\xc9\x6a\x25\x62\x20\x31\x62\xca\x24\x2f\x0a\x43\x74\x53\x7d\x99\x7c\x9a\xc4\x44\xec\xff\xfb\xd7\x00\x26\xd0\x2a\xef\x2c\xe6\x65\xa9\x0b\x9c\x07\xc6\x22\x70\x8f\x0c\x8a\x20\x34\xc4\x4c\xa6\x66\x3e\x1c\x2e\x3a\x31\x22\xe9\xc6\x18\xc7\xf5\xd2\xc6\xf5\x5c\x03\xca\x68\xe2\x0b\x75\xef\xaa\xfa\x67\xb7\x32\x7e\x1b\xf4\x4b\x02\x61\xb4\x97\x77\xe8\x7e\x6f\xf2\xd7\x91\xf3\x9f\x84\x24\x32\xea\x1b\xc6\x0e\x5a\xbe\xdc\x6d\x7a\x1e\x69\x67\x1e\x27\x24\x12\x58\x0d\x65\x58\x46\x26\x6a\x26\x22\x21\x3c\xc0\x40\x28\x12\xd4\xdc\xfd\x78\xbe\xdd\x0c\xe8\x2a\xbb\xc3\x0c\xf3\xdf\xb7\x36\x1d\xfb\x25\x5c\x5c\x24\x51\x46\x31\x24\x82\x70\x3a\xbb\x59\x7d\xa3\xef\xf2\x77\xff\x66\xaf\x1e\x93\x18\xfb\xe2\x61\x36\x7f\x58\xfe\xee\x82\xe4\x49\xcc\x0c\xc0\xa9\x81\xf6\x74\x9c\x9d\xda\x3d\x94\x6d\x2e\xf9\x75\x06\x69\x91\x24\x81\x52\x36\xd6\x39\x7b\xad\x73\x74\x35\x6e\x2b\x79\xba\xe2\xf4\x27\x09\x31\x85\x7f\x9e\xe1\xe6\xd9\xd9\xe8\xe1\x78\x9f\x4e\x12\xa5\x94\xad\x9f\xf8\x67\x25\x16\x87\x63\x51\x9d\xa1\x7e\xe6\x93\x8a\x1b\x91\x24\x90\x65\x43\x91\xc7\xc5\x50\xad\xd1\xb6\xa1\x71\x4a\x45\xef\xb1\x57\xcd\x17\x81\x8b\x84\xc6\xc6\x51\x34\xa5\x78\xaa\xc7\xa5\x8b\x84\x26\x11\x22\x3a\xe7\xb3\xe7\xd9\x70\xef\x4e\x52\x46\x9c\x3a\x8e\x95\xd9\xfc\xd1\x40\x8d\xb5\xaf\xc8\x32\x30\xa0\x66\x15\x49\x2a\x05\xc6\x52\x4c\x31\x12\x46\xce\x9a\xe7\xd3\x61\xf2\xbc\x2c\x36\x74\xa2\x2d\x34\xc8\x5e\x85\x26\x9f\xbb\x04\x63\xa9\x91\x96\xe6\x2d\xac\xf4\xe6\x08\x32\xd7\xb9\x44\xbe\xc8\x71\xcf\x30\x41\xc4\xb8\x8e\xd2\xb2\x38\x18\x73\x67\x6c\x11\x5f\xdf\x4b\x93\x2c\x20\x4e\xc5\xf6\x36\x7f\xf5\x49\xab\x24\x0b\x18\x7e\xc8\xee\x09\x43\xff\xa3\xb6\xb4\x9d\xdd\xf5\x7b\x41\x3c\x91\x70\x1a\xe2\xc6\x66\x59\xdf\x81\x1f\x9e\x97\x4f\x77\xb3\x6b\x44\x06\x22\xe1\x60\xf0\xa8\xb6\x88\x23\xb8\x70\x1f\x07\xab\x5a\xc2\x41\xe1\x96\x6d\x1b\xfb\xd0\xd5\xb7\x16\xa1\x3d\x57\x50\x82\xea\xb4\x2f\x37\xbf\x0f\x0d\xcf\x44\x08\x9d\x68\x67\xb8\xdb\x9c\x0d\x66\x5c\x9b\xfc\x75\xf2\xac\x32\x16\x68\x79\xa1\x2e\xac\xd9\xd5\x42\x67\x4e\x24\x32\xd1\x88\xca\x90\x75\x75\x3a\x7a\x3a\x4f\x91\x48\xa6\x91\x44\xcd\xd6\xe1\xa0\x9d\x0c\x7e\x84\x48\x4e\x90\x27\xdd\xa9\xae\x5d\x65\x34\xec\x9a\x81\x8c\x1d\x27\x44\x3b\x7d\x2c\xc5\xdc\xe4\x31\x55\xa3\xb7\xfc\xc0\x5f\xe1\xae\xae\x0e\x16\x2c\x74\xdd\xa2\x4f\x54\xc8\xf4\x48\xc7\x1a\xd4\xf2\xa8\x9b\xc9\xf2\xa7\x22\xe2\x35\xfe\xbc\xdd\xff\xa3\x51\xbf\x5d\xe7\x86\x99\xde\x03\x02\x5b\x95\x6f\xcf\xbc\x88\xb0\x25\x10\x72\xb4\x07\x8e\x13\x55\x25\x77\x38\x92\xdc\x14\xb2\x70\xad\xc7\xeb\x37\xa4\xc2\x09\x27\xbc\x40\x89\xc9\x06\x4f\x7a\x6e\x9a\xd0\x20\x62\x58\x7d\x97\x5f\x29\x6f\xf9\xdb\x32\x2c\x17\x63\xd2\xaf\x87\x34\xc8\x4c\x0c\x09\x43\x32\x70\x55\x58\x41\xd0\x50\x1a\x72\x6b\x03\x3b\xbd\x81\x4b\x02\x0b\xff\x67\x7f\x65\xc2\x58\x68\x5f\xee\xaf\xd3\x01\xea\x7c\xba\x70\x50\x92\x11\x03\x67\xb4\x81\xeb\xad\x63\x38\xed\x2b\x5e\x05\x25\x52\x84\xbd\x76\xdf\xf3\x90\xe7\x6a\x72\x35\x69\xc4\x36\x05\x2f\xdf\xa0\x9e\x15\xc5\x38\x73\x4d\xa3\x38\x8e\x83\xe1\x97\xb4\x95\x6e\xbe\xab\x23\x15\xe2\x9a\xb9\xfa\xf9\xbc\x58\xef\x7a\x63\x6d\xbe\x78\x76\x40\x1a\x1a\x47\x86\xd8\xdd\x7c\xeb\xf9\xa9\x6e\xaa\x7a\xb7\x54\x3b\x7f\x5c\xa6\x58\x81\x3b\x94\x17\x73\xc7\x92\x04\x5c\x85\xe0\x3f\x4f\xf5\xd9\x04\x0d\x26\x7e\x1c\x4d\xa8\xd1\x81\xbe\xcd\x25\xac\xb4\x2e\x72\x47\x25\x22\x68\xc2\x4d\x64\xbb\x5b\x4a\x5f\x0a\x5e\x2e\x1b\xf4\xf2\xae\x4f\x0e\x9a\x08\xc0\x2c\xce\xa9\x01\xe5\x88\x8b\xfd\xab\x52\x46\x31\x20\x76\x34\x82\x56\x86\x4a\xba\xc9\xab\x72\x80\x17\xa0\x29\xcd\xa8\x0f\xab\x3d\x03\xa8\x3b\x5b\x9a\xf8\x08\xef\x50\xb8\x75\x94\xb2\x88\x65\xf6\x3b\x2f\x0f\x47\x83\x80\x31\xdb\xef\x70\x8b\xa4\x2c\x25\x38\x86\x56\xb0\xed\x1c\xb1\x3e\x90\x42\x99\x32\xc2\xfc\x77\xf9\xb1\x41\x03\xd1\x44\x39\x83\x2b\xdc\x00\x5d\x63\x85\x44\x96\xe6\x2b\xae\x34\xfa\xb2\x9d\x61\x8b\xda\x9c\xaf\x5f\x66\xc2\xec\xe9\x59\x14\x18\x7d\x72\x2f\x6d\x95\xff\x8f\x7f\x2d\xdf\x22\x68\xc6\x22\xc4\x3d\xdf\x56\xaf\x20\xab\xbc\x1c\x31\xa2\x09\x9a\x71\x99\xb0\x1e\xa7\xf0\x00\xbc\x68\x2f\xd2\x9e\xb6\x2d\x0f\x98\x92\xd6\x6f\x58\xa3\x72\xcd\xf0\xcb\x18\xc4\x87\xad\x91\xfe\xb7\x3b\x25\x31\xe6\x7b\xb7\x71\x6d\xf7\x75\xf5\xd1\x18\x50\x56\xfb\x5c\x0d\x55\x8f\x05\x15\x16\xd4\xbe\x86\x96\xe7\xc5\x63\x75\xe6\x45\x7b\x36\x78\xa7\x21\xc7\xfe\x95\xd8\x83\x75\xcb\xa9\x4c\x3c\x87\xda\x4d\xcd\xe5\x9b\x0d\xe6\xb9\xa3\x92\xe0\xee\x90\x37\x4f\x3c\x2f\x5b\x40\x38\xc6\x53\xa5\x7c\x47\x28\x62\x58\xdb\x3e\xaa\xba\x50\xf3\xd3\x71\x0d\xcd\xa9\xc0\x62\xd2\xc8\x37\x49\x24\x33\xc2\x96\xb2\x3e\x1f\x5b\x50\x37\x9d\xab\xd3\x4e\x67\x00\xa4\xa1\xc8\x6c\xa2\xf4\xef\x56\x7d\x0a\x0a\x12\xb0\xd0\x43\xf0\x72\x7a\x3d\x60\xa9\xdf\xe7\x37\x5d\xaf\xd7\xd3\x16\x3a\x40\xff\xcc\x19\x65\x17\x9b\xb8\x6d\xa7\x63\x46\xe8\x14\xc8\xe9\x2b\x05\xba\xe3\x1c\xb3\x5d\xca\xa9\xca\x98\xdf\xd3\x20\x30\x3c\x67\x9d\x19\xf5\xc4\xcb\x2f\x22\xa4\x69\x90\x19\x34\x08\x66\x21\xab\xfa\xed\x12\x47\x67\x1b\x86\x84\x81\x74\x65\x7c\xed\xa5\x50\x80\x48\x43\x95\x61\xb2\xd9\x15\x88\xbd\xd4\xd5\xe7\x24\xf8\x96\x92\x34\x42\xc0\x2c\xf0\xe6\xdc\x59\x0e\x57\xf6\x97\xc9\x09\xcc\x00\x83\x5c\x37\xbd\x90\x97\xeb\xf1\xbf\x34\x8e\x03\xac\x80\xba\xb1\x3c\xa2\xcd\x2d\x56\x04\x8f\xde\x3b\xb5\xc4\x0e\x96\x4e\x8e\xb9\x53\x65\xa4\xac\x09\xb7\xfd\xfc\xc5\x47\x4f\x93\xc4\x54\xa6\xd4\xd0\xbd\x00\x94\x16\xaf\x36\xc8\x5f\xa6\xd4\xe6\x63\x7e\xaf\x3a\x5f\xb9\xb7\x9b\x52\x1a\x33\x1c\xb0\xcd\x07\x3f\x7e\xd1\xcf\x54\x28\x24\x13\xb0\xbc\x3d\xcd\x58\x4b\x52\xa4\x8c\x73\x14\x11\x33\x60\xd1\x87\x93\x98\xf4\x70\x16\x08\x70\x80\x03\xe4\x3b\x7b\xca\xcb\x53\x73\x07\x7e\x77\x4f\x33\x22\x71\x35\x03\x07\xc3\x71\xd1\xfc\xc5\xf6\x61\x7a\xb1\x94\x4a\x36\xb4\x8f\x57\xa2\xe5\x79\x09\x6a\xf9\x3c\x9b\x34\xe5\x24\x4e\x6d\x18\xbc\x78\x2f\x36\x3d\x62\xc8\x1d\x07\xb3\x10\x21\x00\x0c\x57\xbf\x91\x59\xd2\x1d\x47\x24\x59\x01\xba\x4d\xe3\xc9\xc5\x45\x10\xa7\xa4\xaf\x52\xec\xfd\xcd\x30\xb0\x2d\x64\x10\x61\xbd\xcf\xc3\xea\xe5\x65\xd4\xe5\x52\xc6\x88\x2d\x52\xb8\x48\xb9\x5f\x55\x42\x82\x04\x77\x3c\x13\x33\xf5\x3f\x2b\x6d\x9d\xaf\x2d\x2f\x5f\x73\x51\x00\xd6\x8a\x0c\x61\x05\x57\x4d\xf2\x54\x65\x01\x52\x6e\x9d\x4a\xa3\x66\xf0\xfb\x59\x5e\xb4\xe0\x89\x9c\xb0\xab\x9d\x8e\xc7\x0b\x69\x61\x1b\x08\xbc\xfa\x87\xbb\x94\x60\x96\x7b\xbb\x54\x5e\x9b\xe2\xfa\xfc\x86\x38\xc4\x85\x68\x71\xdc\xd7\x55\xb9\x2c\x55\xce\xbb\x6d\xb0\x5b\x40\xbe\xc5\xcb\xa6\x20\x78\x6a\x6c\xc0\xa6\xe5\x3d\xe5\x9f\xeb\x29\x1d\x71\x1c\xe2\xff\xac\xfe\x53\xfd\x92\x2c\x53\xa4\x9a\x2b\x34\xa8\x10\x39\xe3\xeb\xc9\xba\xfd\xdd\x0f\x4b\xad\x45\x66\xe6\xd5\x7b\xe5\xf7\x3a\x16\x90\x10\x87\x3b\x46\x8a\xc6\xf4\xa7\xb3\x52\x3d\x41\xbb\xaf\x26\xd4\x37\xf6\xc4\x90\xc5\xd0\x5d\x6e\x79\x38\x02\x97\x7b\xfc\x72\x68\x49\x4e\xaa\x30\x04\x23\x34\x02\xc3\xb5\xd5\x9c\x0e\xe0\x91\xdf\xee\x28\x4b\xb9\xb5\x34\x90\xc9\x00\xa1\xfe\x79\xf9\x63\x73\x7b\xbd\xc7\x59\x94\x45\xca\xc1\x0f\x3a\x8b\xfc\x7a\xab\x38\x55\xd2\x97\xee\xf9\x19\xf8\xdb\xa4\x11\x4b\x31\x9d\x7f\x9f\xdb\x65\xa4\xb7\x74\x59\xac\xb4\x74\x43\xd5\x7e\x9b\x75\x3e\x20\x30\xee\xeb\x92\xdd\xc6\xce\x68\x64\x94\x1e\xca\xea\x8f\xaa\x85\xcd\xc9\x05\x17\x59\x4a\x22\x94\xd4\xfc\xbc\x58\xfa\xae\x3a\x96\x53\xf0\x2e\x4b\x55\x86\x51\xcb\x9b\x1f\x37\x37\x8f\x8b\xe1\xf4\x63\x2c\x4c\x91\xc4\x92\x77\xd3\x68\x34\xe3\x19\xa3\x8c\x19\x76\xf8\x2d\x1c\x8e\x55\xcd\x6b\xcb\x37\xcb\x5c\x83\x34\xc4\x30\xf1\xcb\xc3\x6a\xf1\xbc\xfc\x73\x37\x5f\xad\x37\xb3\xe5\x7a\x77\xb7\x7d\xdc\x21\xb6\xd1\x5f\xc9\x92\x02\x4a\x5e\x14\xbb\xb6\x8f\x33\x32\xa6\x63\x8c\x33\xd6\x80\x5a\x46\x0a\x26\x91\x68\x96\x09\x70\x12\x9c\x96\xc2\x62\xcf\x6b\x2b\x0b\xd6\x20\x4d\xc0\x28\x76\xcb\x32\xa1\x65\xda\x2b\xa8\x9d\x2e\x42\xc9\x8c\x8b\x2c\x55\xee\x96\x93\x63\x22\x22\x18\x14\xc3\xaa\x8e\x7a\x80\x02\xb0\xc7\x25\xa1\x58\x69\x77\xac\xf3\xff\xc1\xcd\xf9\xb9\xfa\x70\xf7\x95\xb1\x74\x12\x2c\xb7\xfc\x73\x59\xde\xb4\x72\xc3\xdb\xaa\xd9\xe7\xd3\x4b\xa4\xa1\x4b\xe9\x9d\x8e\x26\xac\x8f\x80\x6d\xb8\xc6\x92\xec\xce\x91\x0c\x4d\x08\xa3\xe4\xf5\xb4\x78\xde\xee\x7e\x6c\x16\x6b\xe2\x6f\x0e\x11\x0a\x00\x5a\xca\xe6\x65\xa9\xab\x9d\xae\xea\x9d\x31\x06\x47\x93\xcf\x33\x27\x5d\x1f\x28\x8a\x67\xb8\x77\xb6\xaf\xf5\x20\x0f\xc8\x74\x98\xa0\xbf\x5b\x62\x49\xb3\x97\xbe\xf1\xd1\x11\xa6\x33\x19\xdb\x00\x9a\xe1\x28\xba\x52\x11\x2a\x98\x56\x14\xb1\x90\x38\x45\x57\xda\x02\xe3\xbd\xa9\xe7\xe7\x81\x06\xc3\x25\xfa\x0c\x1f\x13\x45\xdc\x71\xbf\x68\x9d\xb8\x7a\xe6\xcb\xa8\x5a\x16\x48\x30\xa9\x90\xfc\x80\x5b\xa3\xda\x35\xde\xfa\xca\xc2\x44\x19\xf2\x4e\x28\xaa\x11\xaa\x20\x0b\xa9\xd9\xe7\xb0\x90\x62\x56\xbe\x42\x81\x94\x04\x86\xb8\x70\xb8\xca\x67\x61\x16\xb3\x9e\xc0\xe0\x52\x73\x42\x64\x51\x90\xa1\x63\x71\xac\x61\xfb\x6a\x52\x74\x23\x74\x68\x16\x85\x92\x9b\xc1\x78\x2c\xb8\x84\x99\x3a\xe4\xa5\xe1\x1b\xbf\x0c\x59\xdb\x53\xe2\xd8\xc8\x4f\xdd\x57\x03\x06\x2e\x91\xc5\xd4\xa4\x8a\x8f\xbc\x86\xb2\xfd\x3d\x57\xcd\x63\x5e\xbe\x7d\x57\x6f\x90\xc5\xd4\x80\x84\xf2\xc6\x86\x65\x47\x64\x04\xb6\x51\x92\x52\xa3\x79\x97\xeb\xd6\xa7\x6d\x5d\xb8\x73\xdc\x94\x12\x49\xbc\x29\x68\xec\xf3\x5d\xee\x58\x57\xdd\x37\x26\x7d\x0c\x77\xf4\xd7\x2f\x0f\xfc\xfd\xbf\xc6\xff\x76\x0f\x12\x69\xc4\x6b\x5a\xba\xdc\x3f\x96\x9b\x35\x34\x50\xbf\x4f\x29\x69\x47\xdf\x8a\x52\xca\x74\x5f\x3d\x7f\x1d\xa1\x9b\xa5\x02\x30\xb0\xec\xcd\x5d\x6e\xb4\x67\xc6\xdf\x3d\x95\x96\xc3\xd8\x35\x33\x44\x47\xfb\xfc\xb8\xd2\xcb\x16\x0e\xcd\xa6\xad\x6a\xfe\x0a\xd3\x8b\x43\x82\xe8\xcb\x1f\x65\x2e\xeb\xc9\xb0\x64\x01\xc3\x8c\xa0\x38\x9d\x7f\xf6\xee\x7f\xc6\x62\xb3\x04\xef\xac\x8e\xde\xdd\x57\x65\x3c\x19\xcb\x28\x86\xec\x66\xca\x61\x79\x0d\x26\xe7\x8b\xd6\x92\xa1\x31\x24\x8a\xd6\x50\x03\x6d\xab\x4d\x9f\x1e\xc8\x98\x4a\x99\x74\x84\x73\xa5\xda\x14\xd5\x2b\x9f\xc2\x8a\x6d\xd3\x8c\x87\x48\x75\x09\x2a\x6f\x2d\x25\xc2\xf8\x56\x3c\x54\xe8\xda\x7d\xf0\xf2\x87\xaf\x94\x14\x99\x08\x03\x0c\x83\x0d\xbc\x3d\xa3\x5d\xec\x6d\x9c\x4c\x10\x9a\x66\x2e\x14\x8f\x1f\x78\xc0\xea\x66\x92\x70\xe3\x0e\x96\xa1\x42\xec\xbc\xd1\x20\x45\xad\x08\x80\xd1\xa6\x97\x49\x1a\x62\x80\xea\xe5\xc7\xe3\x66\x9a\x15\xc9\x24\x57\x46\xf2\xd5\x70\x82\x3e\x35\xaf\x97\x0a\x38\x22\x93\xda\x14\x5e\x0e\xc0\x31\xa3\x24\x62\xa6\xb8\xd1\x3c\xed\xcc\xc3\x67\xf8\x40\xca\x84\x91\x31\x9e\x29\x11\x03\xed\x11\x6e\x93\xd7\xd0\x19\xc5\xf2\x7c\x5d\x9c\x7c\xa6\x9d\x07\x22\xc6\x14\x69\xde\xfc\x5e\x56\x1f\xe5\x06\x0a\x40\x8e\x7a\x5c\xe0\x63\xdf\x88\x09\xe7\x24\x56\xe5\xc9\x87\xd5\xae\xee\x3b\x3c\xd0\x21\x8a\xcf\x61\x3e\x62\xde\x13\xf3\x09\x1e\x26\x0c\x4b\x95\xe0\xbd\xb4\x04\xa6\x5f\x96\xe6\x7e\x15\x86\x1c\xbe\x2f\x27\x81\x51\x7c\x3f\xf0\x4f\xc3\x33\xe0\xac\x4e\x4e\x62\x46\x8c\x56\x1b\xe6\x24\x9e\x73\xf9\xf6\xcc\xa7\x40\x19\x4e\x38\xe8\x21\x17\xd3\x34\xd6\x7d\x3d\x93\xc6\x63\xc2\x2d\x71\xff\xef\x00\xc7\xe9\xda\xc7\xe3\x58\x45\xb6\xb7\x76\x7c\x94\x50\x75\x0d\x52\x82\x35\x9e\xe2\xe4\x45\x63\xb7\xdb\x9f\x37\xe7\x81\xa3\xf6\x8f\xc9\x25\x25\x41\x3c\xce\x01\x05\x9e\x4d\x5d\xd9\x55\x15\xac\xe9\x93\x6a\x43\x28\xbe\x6b\xa0\x9d\x9d\x6a\x8e\xe3\x8e\x44\xbf\x4d\x5b\x71\x44\x1f\x99\x85\x0f\xab\xee\xb7\x95\x21\x2e\x70\xc6\x02\x4f\x12\x89\xb1\x63\xd9\x79\x19\x28\x95\x78\xe7\x3d\x3e\xdf\x06\x74\x60\x6d\x57\x57\xed\x9b\xb9\x7b\xd0\x8c\xc5\x4e\x6e\xf0\x66\x3b\x79\x00\x0a\x04\x09\x2f\xb6\xf7\xf3\x4b\x1e\x0f\xc1\xd3\x84\x1a\x67\x01\xc1\x71\x0d\x5a\x0b\x3d\x66\xc2\x35\x52\x84\x79\x31\x38\x9b\x29\xec\xec\x6f\xc3\xea\x3a\xbd\x22\x44\x98\x69\xc1\x3e\xdc\xc0\x88\x55\xc6\xea\xdc\x33\xd7\x54\x6b\x95\x58\x4c\x05\x34\xed\xdc\xcf\x47\xce\x54\x4c\x86\xf9\xb7\x07\x2e\xdf\x2a\x0b\x36\xf4\x2b\xf7\xe4\xc6\x59\x12\x4a\x3f\x37\x50\xae\x3b\x87\x7a\x9b\xbf\xd6\x0e\xf7\xce\x33\x1e\x07\x8e\x8e\xf2\xb6\xe6\x1f\x13\x20\x92\x6b\xa5\x55\xd4\x75\x49\x75\x34\xfa\xf2\xbd\x67\xc3\x79\xa0\x11\xb8\x66\x1c\x52\x13\xb7\x9b\x08\xa3\xbb\x96\x44\xeb\xb4\x8f\xdc\x5e\x5f\xd3\x79\xe7\xc1\x27\x46\x57\x74\x40\xf5\x6c\x0f\x4a\x2b\x9b\xba\xe7\xcd\xc6\x94\xe0\x7a\xeb\x8e\x4b\x25\x31\x59\xe2\x50\x02\x77\x35\xc0\xa3\x29\x83\xf8\xb2\x12\x7f\x72\x75\x0d\xb1\xe3\xae\x99\x3f\xec\xba\xbd\x60\x17\x3a\xb8\x29\x57\x69\x0a\x96\x27\xfa\xf9\x74\x78\xa9\x2b\x75\x92\x1e\xb6\xc2\x15\x03\x0c\xfe\x68\x87\x0f\x9d\x70\x47\x08\x0e\x41\x82\xc0\x96\x63\x0d\x8e\x2c\x72\xf2\xb5\x20\x34\xbc\x5a\x6e\xdd\x33\xd5\x87\x79\x67\x2b\xdb\xcb\x4d\x02\x8e\x22\xe0\x10\x5a\x5b\x75\x1a\x48\x13\x61\x92\x79\x31\x3b\x93\x2e\xed\xba\x6c\x10\x25\x17\x21\x0d\x12\xc3\x20\x5b\xc0\xbe\x87\x43\x89\x90\x9a\x3a\xea\xbc\x99\xf3\xb2\xad\x4a\x9b\x14\x9e\x2c\x67\x82\x04\x3a\x33\x25\x1d\xbc\x96\xfb\x4b\xa9\xc9\x49\xeb\xd4\xe8\x04\x49\x7e\xc4\xc2\x6d\x17\x84\x17\x44\x86\xa4\xa7\x19\xb7\x68\x27\xef\x7f\xc6\xff\x9e\x7e\xb4\xff\x0b\x7b\x6b\x6a\xe8\xab\x8b\x28\x34\x0e\xc6\x10\x0c\xff\xd3\x69\xce\x0b\x11\x25\x86\x92\x0b\x2b\x8f\xee\xf3\xd7\xd7\xc6\x1f\x91\x86\x92\x0d\xa5\x92\xe2\x4d\x9f\x00\x13\xb1\xd4\x58\xe9\x68\x9e\xcd\x2c\x16\x57\xe2\xd0\xd7\xb8\x1d\xa7\x20\x00\x11\xab\x24\xc5\x0c\xea\xfb\x93\x9d\xb5\x8d\x63\x9b\xfe\x76\x58\x8a\x24\xd0\xb8\x96\xed\xba\xd9\x87\x0a\x59\x05\x3f\x3f\x4f\x70\xca\x22\x89\xa4\xc1\x50\x1a\xaa\xf5\x2f\x16\xea\xaf\x6e\x41\x81\x89\x21\xbe\xd2\x73\x44\x0b\x41\x83\x18\x63\x3f\xbb\xbc\x6c\xa0\x6e\x37\x55\xdd\x3e\xc1\xa1\xaa\xcf\x8e\xe2\x32\x0c\xdd\x2b\xd2\xd0\x48\x65\xc1\x27\x4c\xe2\x56\x82\x02\xb7\x08\x4e\x70\x09\x72\x09\xc7\xbe\x14\x43\xa4\x44\x22\x0a\xd1\xa1\xf7\x9b\x65\xe9\x68\xa4\x5d\x0b\x91\x72\x93\x44\xaa\xfd\x10\x4e\x75\x84\x81\x67\x83\x5d\xbc\x54\xb0\xe8\x5a\x64\xcc\x26\x07\x1e\xf2\xd7\x3d\x34\xed\x53\x5e\x40\x83\x2b\xe6\x6c\x3a\x67\x58\xc0\x31\x47\xb6\x93\xd6\x5c\x78\xd7\xa0\xe1\xca\x27\x0f\xaf\x33\x8a\x77\x57\x50\xa8\x13\xa8\x6c\x74\xea\x62\x1d\x10\x8c\x00\x23\xbf\x16\x68\xed\x83\x34\x22\x13\x19\xf7\xb2\x50\x6a\xc0\xa4\x74\x5d\x14\x50\x08\x6e\x09\x32\xde\xf8\xf1\xe8\xf2\x20\x82\x27\x12\xad\x17\xbb\xed\x7a\xbe\xbf\xd1\x50\x61\xbf\x18\x28\x5c\x69\x8c\xf1\x70\xa5\x5e\xaa\x37\x38\x54\xe5\x2d\x46\x44\x9b\x2f\x88\xd2\xdc\x69\xc0\x90\x15\xec\x71\xf9\xb4\xdc\xee\x36\xdb\xd9\x3a\x76\x8f\x25\x64\xe8\xba\x63\xca\x09\xe7\xa7\x8e\x00\x89\x00\x02\xf3\x95\xbb\x29\xf0\x04\x2d\xff\xce\x6d\x14\x32\x49\x31\xd4\x71\x07\x30\x11\x68\xb0\x0d\x20\x88\x43\xeb\xbe\x0f\x53\x35\xe3\x9d\xf9\xcb\x7d\x5a\x00\x89\xb1\xba\x43\xf1\x96\x6f\xaa\x53\x2d\xe1\x1e\xda\x7f\x9d\x78\xdd\x1a\xf1\xcd\x62\x3a\xb4\x80\x1a\x02\x43\x71\x3a\xcf\xab\xbc\xec\xbc\xd9\xf7\x1c\x3e\xa6\xad\x78\xca\xec\x26\x63\x6b\xcc\xd0\x86\x1a\x38\x4c\xae\xa1\xc8\x14\x18\xc2\x87\xbc\xbc\xe0\x63\xef\x8e\x73\x66\xc9\xb6\xad\x9e\xeb\x6f\xa3\x72\x34\xdb\x4c\x27\x31\xce\xa9\x97\xf9\xdd\x6f\xfe\xa7\x0c\x6d\x59\x6c\x3e\xe7\x45\x81\x65\x65\x75\xcd\xbd\x8e\x93\xf7\x61\x65\x40\x4c\x85\x98\xf5\xeb\x6e\x6a\x00\x75\x85\xef\xc2\xb5\x16\x11\x3a\x77\xb6\x96\x61\x44\xca\x21\x64\xa0\x53\x2d\x1c\xb1\xc0\xe7\xf9\x11\x5e\x2f\xc9\xe6\x6c\xd3\x50\x87\x98\x9d\x30\xe3\x01\xad\xaa\x59\xa9\x96\xe5\x3b\x94\x6d\x55\x0f\x38\x01\xff\x16\xa0\xd5\x85\x4a\x24\x09\x19\x1a\x7e\x8e\x2a\xc5\x99\x31\xe3\x9b\x13\x16\x24\xca\x4b\x92\xcc\x8a\xa1\xda\x9f\x90\x51\x18\x21\x93\xdf\xe2\xee\x0e\x13\xc5\xe3\x73\x23\x22\x53\x57\xb9\xd8\xd6\x3c\x2f\x77\xdd\xf8\xd9\x15\xc3\xe8\xa0\x8c\x18\x43\xd4\xae\xe4\xa5\x81\x36\x4c\x2f\x22\x8c\xb0\x49\x09\x1f\xee\xd3\x5e\x99\x01\x32\xb2\xf1\x29\xc3\xa8\x6d\x50\xb9\x0f\xbc\xd0\xbf\xf5\x91\x88\x7f\x5c\xfd\xab\x3f\x3f\xe6\xde\x0c\xb6\x44\x08\x5f\x18\x6d\x32\xa6\x5a\xf8\xd2\xa1\x07\xde\xca\x3d\xd4\xe7\xcd\xbe\xce\x0f\x0e\x59\x2b\x93\x80\xa2\x9b\xf2\x07\x16\x2f\xb9\xfd\x0f\x91\x3c\x5f\x44\xb7\x65\x12\xa4\xc2\x4e\x86\x9b\x82\xcb\x37\x5d\xf0\xd7\xeb\x1e\x8b\x4c\x44\xe6\x0a\x64\x0d\x38\xe1\xe7\x3e\x6f\x2e\x7c\x25\x99\xc8\x40\xaa\x1e\x18\x3b\x44\x8c\x49\x1a\x9a\xd4\x93\x01\x39\x3e\xf1\x1c\xf1\x82\xc3\xf0\x86\xa4\x31\x04\xba\xb7\x60\x17\x3e\xe5\x23\x69\x92\xa6\x36\xf7\x37\x2b\x0a\x6b\x1c\x3e\xf6\xd5\xf4\x32\x65\x99\xb4\xf1\xfc\xd5\xf3\xfd\x6e\xf6\xe3\x76\xb9\x1d\xa3\x7d\x24\x4b\x42\xcb\xac\x61\x5e\x61\x59\xde\x42\x23\xa1\x54\x7c\x50\xff\x37\x39\x85\x13\x6a\x6d\xbc\x6e\x0d\xf8\x99\x97\xcb\x72\x80\xf2\x19\x77\x67\x96\x31\x0c\xa2\xff\x51\x15\x23\x50\xbc\xcc\x44\xe0\x04\x13\x5e\xea\xea\x90\x37\xb0\x54\x5f\x92\x82\x0d\x36\x26\xc9\x59\x88\x8b\x60\x8d\x90\x80\x9b\x5e\x7f\xe4\xc2\xd0\x9e\x1a\xe0\x13\xe6\xaf\xc9\x87\xe7\x1c\x10\x5d\xf3\x02\xed\x81\x97\xb2\x1a\x97\x54\x49\x2e\x52\x27\xa6\x7a\x3b\x3b\x4e\x7c\x1e\x29\x83\x28\xe1\xc3\xe0\xfa\xac\x54\xae\xbc\xd9\x35\x21\x0c\x2b\xc7\xde\xf2\xb6\xc5\x61\x78\xe0\x79\x89\x88\xe4\xdb\xba\xf2\x23\x56\x46\x61\x28\x87\xa8\x9b\xd1\x70\x91\x29\x89\xc3\x01\x06\x78\xca\xda\x24\x24\x90\xc8\xb2\x36\xb5\x27\x53\x47\x79\xc1\x5f\x29\x24\xd0\x04\x51\x37\xb5\x8d\xfd\x59\x7b\x01\x51\x8d\xee\x56\xc0\x38\xc2\x54\x3e\xfa\x90\xb6\x5d\x3b\x87\x30\x5e\x09\xc0\x95\x55\x41\xdb\xfc\xf7\xc4\x6b\xf8\x25\x55\xb5\x50\x41\x40\xf0\x1d\x91\xbd\x1f\x5d\x71\x7b\x35\x15\x85\x3c\xa1\x16\x23\x3f\xe7\xc7\xc7\xea\xe3\x47\xa3\xfc\xc1\x94\x60\x4c\xfb\x25\xff\xcc\x4f\xbb\x1b\xf0\x68\x0b\x15\xf1\x10\x61\xe9\xa8\xce\xce\x0f\x83\xfe\x54\x91\x8a\x03\xea\x16\x89\x91\x38\xb8\x50\x31\x15\x8a\x0c\x74\x80\x6f\x4e\x75\x79\x07\xe0\x34\x96\x7e\x15\xaf\x71\x57\x61\x31\xba\xbb\x58\xc7\x81\x84\x3b\x82\xcb\x37\x2f\x12\xe0\x5a\x29\x2d\xed\x77\x41\x32\x72\x2c\x83\x9b\xb0\xe0\xb9\x19\xa6\x92\x80\xc5\x7d\x52\x61\x57\xe9\x1d\xae\x87\x6e\x18\xa8\x24\x90\x4e\x93\xdd\x48\xcf\x9d\x46\x65\xc4\x2a\x61\x86\xb3\x1a\x3f\xe8\xee\x85\xb7\xf9\xc5\xc4\x54\x09\x10\xea\x6a\xb8\xfb\x5a\xb8\xd1\x6a\xae\x68\xc8\x11\xd1\x54\x56\xa5\x35\x63\x0d\x05\xb2\xd1\x39\x72\x77\xa3\x69\x8a\x88\x4a\xd7\xbb\x7f\x37\xcc\x35\x7e\x1e\xca\x4c\xa9\xbb\x13\xa0\x1c\xc5\x05\x55\x1a\x70\x0c\x2e\x3f\x2d\x9f\x77\x4b\x97\xea\xf1\x07\x21\xc5\xb4\xe5\x9c\xb7\x56\x09\xf5\xab\x65\x64\xfc\xe5\x52\x5b\xd2\x7f\xe0\x9f\xf9\xc1\x79\x00\x77\x55\x3d\x2c\x52\x50\x2c\x35\x6a\xc5\xdb\xfa\x4c\x08\x21\xfe\x67\xad\x10\x0d\x62\x59\x0f\x9f\xf2\xb2\x5b\x89\xec\xc1\x8c\x68\xa4\x16\x71\x44\x24\x9e\xdc\xde\x84\x69\xaf\x1b\x18\x0a\x75\x86\x7c\x68\x69\xb1\x7d\x98\xb0\xc9\x09\xc5\xa3\x18\x83\xb4\xbf\x24\x4c\x52\x9c\x27\x18\xe7\xd7\x55\x2d\x73\x51\x9c\xad\x87\xbb\x93\x76\x78\xba\x27\x15\xd2\xc8\xda\xdf\xf0\x66\x08\x1e\x72\x5b\xfc\xf5\x07\x15\xda\xe6\x81\xaa\x52\x72\xdf\x51\x32\xa0\x86\xb9\x0b\x4d\x94\xa1\x3a\xec\x78\xad\x54\x32\x54\x98\x5c\xb9\xaf\x0a\xb5\xf6\x65\x2e\x4a\x52\x82\xc1\x6e\x59\x1d\x8e\x55\x03\xff\xc4\x02\xd9\x89\x85\xff\x7f\xc9\xbf\x5d\xeb\x2c\x89\xe9\x08\xc6\x6b\x30\xec\x3f\xea\x7c\xbc\xc3\x29\xa9\x04\x51\x4e\x29\xba\xad\x0e\xbc\x05\xb5\x86\x63\x55\xb7\xb7\x27\xac\x7a\x6d\x5a\xee\x2d\x06\x25\x15\x70\xf7\x11\xf8\x6b\x2e\x37\x6d\x75\xa9\x56\x6a\xdb\x02\x01\xcf\x81\x78\x53\xa9\x33\x16\x02\xa2\xe9\x3c\x89\x3e\x2a\xe0\x29\x58\x09\xe4\x4b\xb1\x02\xa1\x40\x48\x8c\x7d\x28\xa4\x06\x73\xbe\xa7\x02\x20\x41\x2f\x1d\x83\x3c\x4a\xf5\xe0\x58\xd4\xf5\xf6\xff\x07\x75\x05\x96\xbc\xc8\x1d\xd3\xca\xd3\x21\x63\x0c\xfd\xb5\xe0\xa5\xba\xd0\x57\x12\x10\x04\x04\x49\x9a\xe0\x33\x9f\xd8\xc5\x10\x44\x66\x69\x44\x14\x33\xd6\x5f\x2e\x4b\xe9\x0f\x26\x01\x1e\xbc\xcb\x05\x56\x10\x37\xd6\xcf\xb9\x10\x4a\x75\xed\x25\x4d\x4d\xd2\x29\x3f\x6e\xf2\xff\xb9\xe7\x84\x30\x92\x99\xb9\x49\xa1\x46\xa9\x06\x20\x01\xc1\xb0\x15\x57\x6a\x53\x1d\xe0\x76\xb1\x6d\xb6\x5f\xe4\x63\x80\xc4\x1c\x6b\xbd\x8c\xf7\xfc\xcb\xd5\xe7\xab\x3f\xaf\x15\x1b\xba\x3b\x68\x53\x26\x3b\x50\x1a\x5b\xe9\x9f\x90\xcf\x0d\x1f\x9b\x8f\x06\x42\x44\x20\x8d\x06\x94\x42\x66\xaa\x5d\x05\x22\xb8\x33\x62\xa3\x86\xd4\x58\xb2\xe5\x99\x9c\xc4\x30\x20\xca\x84\xb2\x96\xc5\x16\xea\xc3\x04\xad\x0d\x71\x60\x05\x05\xcc\x3a\x64\xa3\x17\x9e\x05\x0c\x62\x42\xd0\x48\x56\x9d\xdb\x7d\xc8\x4b\xaf\x82\x30\xbe\x4b\x9c\xc6\xb8\x0e\x14\x9d\x19\x7d\x27\xf3\xce\xb0\xb3\x22\x41\x03\xfc\xdf\x3f\xa6\x27\x51\x3c\xc9\x54\xd3\xf8\x34\xc7\xc9\x54\x7e\x3b\x73\x6b\xf8\x37\x77\xa2\x34\xd5\x4a\x4e\x37\xbb\xb9\x70\x35\x21\x56\x99\x08\x86\xd4\x7a\x55\xf1\x8e\x28\x65\xb3\x90\x7e\x53\x73\x0a\x49\x90\x68\xa3\x31\x80\x6c\x79\x48\x5d\x33\xe9\xb5\x24\x63\xc8\xdc\xba\x59\xde\x6f\x87\x56\x1e\x24\x3a\xe6\xd4\x47\xd8\x73\xd9\x4d\xc7\x9b\xf3\x46\x56\xf5\xc4\x86\x02\x1a\x18\x25\x2c\x4c\xa9\x7d\xd4\xf9\xd4\xc8\x02\x9a\x2a\xac\xbf\x91\xb6\x5f\x9e\xf9\xc1\x16\x4c\xbb\x45\xad\x37\x6a\x81\x6a\x1e\x5a\x57\x62\x28\xe8\x82\x8b\xc9\x90\x5c\x0b\x58\xa0\x20\xf5\xb4\xe2\x55\xbd\xbc\x9d\xce\x6a\x46\x42\x44\x6a\x3c\xc3\x79\x6a\xc4\x02\xa3\x1a\xc3\xf9\x68\x79\x75\x9b\xf5\xae\x3b\xdc\x0c\xa2\x8f\x90\x59\xb2\x9e\xce\x8f\xc8\xcb\x57\xbb\xa1\x1a\x11\xc5\xaf\x80\xf2\xee\xd4\x2c\xcd\x26\x2f\xb1\xad\x46\x4f\x9f\x71\x86\xfa\xc5\xf7\xd0\xde\x77\xfb\x11\x56\x23\x0e\xd9\xe0\x05\x64\x3a\xc5\x12\x5e\x38\xe4\xad\x45\xa4\x5f\x09\x56\x8e\x6f\xcc\x03\x91\x66\x0e\x0a\x83\xb9\xa6\x51\x61\xfd\x68\x32\x73\x46\x4c\x44\x0a\x97\x8b\x5e\x12\xea\x74\x09\x04\xfb\xd2\x82\x05\x9e\x19\xd8\xc9\xec\xc7\xf6\x61\x77\xb7\x5e\x2c\xfe\xbf\xc5\x6c\x3e\x5f\xfd\xf0\x36\x09\xf0\x4c\x61\x4c\xe5\xe6\x71\x35\xff\xfd\x65\xf9\xe7\x6e\x80\xe0\x06\x2e\x01\x6d\x1d\x5b\x3f\x0a\x36\x31\xfb\x8d\xe6\xb6\x00\xae\x0c\x7c\xc7\x46\x3d\x78\xa9\xe4\x90\xdb\x71\xdc\x58\x24\x86\x47\xc6\xc4\x2a\xe6\xbc\xb4\x16\xdb\x60\xc4\xc9\x88\xe0\xba\xe2\xcb\xbb\xbf\x4f\x08\x82\x8c\x13\x1c\x17\xe2\x74\x9e\x4f\x05\x7f\x05\xc8\x24\x94\x72\xc0\x46\xf8\xab\x8b\x41\x62\x69\xdd\xd1\xa7\xc5\x3d\x31\x1c\x54\xaa\x83\x0a\x32\x74\x63\xfc\x0a\x61\x66\xce\x40\xa5\x47\x80\xa2\x0a\x12\x9b\x2b\x5e\x89\xff\xe0\x5c\x6f\xf7\x26\x82\xd5\xc3\x2a\x26\x43\x45\x09\x86\x45\x05\x4f\xb6\x40\xd0\x5d\x0c\x88\x44\x17\xc2\x31\x30\xbb\x30\xf0\xf8\xb9\x21\x09\xa3\xee\xab\xde\xfd\xfc\x35\x70\x10\x20\x8d\x30\xe5\xd8\x42\xd3\xfa\x85\xcb\xdf\x2f\x35\x89\x6a\x27\x05\x75\x53\x5d\xe2\x20\x27\x9d\x06\x99\xc4\x3c\x54\xa5\xb5\x61\x3d\x18\xa4\x55\x40\x13\x8e\x73\x0f\x78\x5d\x9c\x5f\x4e\xb5\x34\x19\xce\x37\x28\x47\x86\x34\xe8\xcc\xd4\xf7\xfe\xf1\xe3\xc5\x15\xd6\xee\x6e\x66\x1b\x64\xd2\x5b\xf8\x46\x9c\x60\x58\xfc\xe7\x7c\x1b\x8e\x57\x17\x1d\x04\x0e\x56\x7b\x74\x89\x84\xd1\x53\xea\x80\x6a\x8c\x11\x7a\x61\xfd\xea\xb9\x27\x74\x1e\xbd\xe1\x25\x63\x59\x3f\x3c\x75\xc0\x52\xac\xda\x15\x79\x3d\x29\x10\xe8\xe1\xfe\x3a\xe0\x11\x32\x14\x3e\x2e\xff\xf5\x63\x79\xbb\x1b\xd0\xdb\xbd\xbc\x3c\xfd\xe6\x1a\xc9\xd4\x55\x3d\x59\xa0\xfe\xf4\x95\x74\x6c\x2a\xca\xab\xa2\x18\x56\xde\xeb\x30\xca\x90\xe3\x1d\x4a\x35\x6b\x0d\x2f\xc9\xf8\x5d\x49\xc0\xb1\xd8\xe1\x54\x1a\xcd\xee\xd9\x76\xc2\x05\x37\x1e\x7c\x9a\xd0\x00\x7d\xae\x97\xd9\x76\xfe\xb0\xfb\x63\xb1\xde\x2c\x57\x8e\xab\x54\x47\x01\xc1\xbb\xe1\xd6\xb3\x2c\x3b\x87\x3c\x7f\xcf\x9b\xbe\xc6\xc9\x37\x24\x49\x10\xa3\xdb\x52\xbf\xcd\x1a\xa3\x50\x39\x4a\xbe\xeb\x28\x0e\x71\x93\xd8\x75\x93\xbe\x1a\xd4\x3d\xe8\x98\x90\xc8\x33\x40\x9c\x4a\xb5\x98\x66\x3b\x75\x4c\x28\x1a\xd6\x9e\x17\xdb\x33\xd6\x0e\xfd\x7e\x1d\x13\xe0\x89\x73\x45\x1a\xbb\x4b\x7c\x31\x7e\xff\x5e\x3e\x48\xc7\x51\xc6\x30\xb5\xce\xcb\xfc\x63\x68\x0e\xea\xc4\x56\x8c\x35\x2d\x20\x27\x96\xf9\x16\xee\x20\xd1\x38\x2d\xfe\xe8\xa1\xb7\x3a\x49\x32\x0c\x97\x22\x4c\xe5\x1a\x7c\xf0\xfa\x46\xa2\xa9\x32\xe4\xd5\xbc\x69\x2a\x99\x77\xd3\x6b\x32\x44\x2f\xa1\xa9\x9a\x05\x29\x02\x2c\x4c\x08\x0f\x1d\x8a\xc9\x00\x63\x44\xa5\x56\x4e\xec\xee\x54\xaa\xa7\x1e\x2d\xa2\x99\x30\x71\x6f\x63\xe6\x6c\xc0\x4e\x27\x67\xa8\x68\x26\x34\x66\x61\x6e\x4f\xad\xdc\x4f\x42\xc3\x5f\x74\x23\xd3\x46\x17\xb7\x73\xfd\xe0\x0e\x59\xae\xdc\xdd\xb2\xd0\x68\x1f\x1b\xab\x7e\x65\xa2\xb2\x96\x53\x5c\xe8\x2c\x13\x38\x9b\x96\xf3\xd5\x1a\xf1\xc4\x5f\x2b\xa4\x5f\xbf\x73\x26\x22\x18\x6c\x51\x1e\x19\xfc\xed\x5e\xa0\x33\x91\xe2\x9a\x8a\x21\x8e\xbb\xaf\xeb\xd1\x5d\x73\xa0\x48\xbe\xf8\x61\x28\x09\x1b\xc7\x5e\xab\x79\x94\x66\x06\x30\xcb\xd5\xf9\x1a\xed\x95\xe6\x09\x20\x8e\xbf\xc2\xca\xf7\xbc\x7c\x5d\x69\x9d\x4b\xaf\x6e\xe5\x2f\xc4\x33\x04\xd6\xe6\x65\x67\x23\x34\xe0\x71\x0e\x97\xcc\x68\xee\x0c\xc8\x88\xab\x35\xb0\x70\xab\xef\x43\x60\x5a\x04\x0a\x0b\xca\xf2\x16\x0e\xa3\x79\x25\x84\x42\xe3\x75\xf8\xc1\xb7\xd5\xbc\xe6\xfa\x4b\xfc\x90\x3b\x53\x1a\x24\xf3\x83\xaf\xdc\xf8\xe5\x16\xa5\x85\x4e\x6c\xe5\xc2\x3b\x14\x26\x65\xe5\x97\x0a\xc9\x84\x70\x52\x5d\x93\x42\xf9\xf1\x45\x64\x96\xa0\x58\x4f\x03\x45\xb1\x69\x7b\xee\x30\xad\xb2\x14\x01\x63\x18\xd2\xc6\xa5\xb7\x1e\x58\x20\x5a\x89\xd4\x31\x2a\x5e\xa1\x03\x9c\xbc\x9d\x52\x06\x9a\xbe\x6b\x38\x82\x41\x2e\x4a\x0f\xae\x38\x6e\x1a\xa8\x70\x48\xf5\x45\xbb\x7f\xa9\x73\x99\x8f\xe4\x5c\x84\x06\x60\x46\xc4\x3f\x3f\xee\xad\x01\xf6\x5d\x5c\x45\xeb\x30\xb3\x54\xdc\x35\x56\x3a\x0f\x31\xab\x32\x08\x42\x1a\x8e\xb9\x95\xbb\x39\x80\xa9\xdf\xb6\x2a\xaf\xd7\xda\x31\x77\xae\x10\x31\x12\x6b\x9b\x6f\xbe\x39\x49\x09\x4d\xa3\x4f\x17\x26\xde\xd5\xa5\x4b\x06\x21\xc9\xd0\xe9\xd7\x00\x77\x55\xbd\x39\x16\x79\x67\xc0\x20\x02\xcd\x47\x06\x65\x40\xc2\x0c\x9d\x03\x63\x0f\x6e\x7f\x45\x75\x35\xbe\x05\xa1\x1a\x77\xa8\x3c\xf7\x97\xe3\x59\xe4\x85\x6c\x10\x7c\x66\x0f\x44\x34\xc0\x6f\x2b\x78\x03\x3f\xd6\x4b\xff\xb3\x54\x71\xe6\x15\xc6\xf3\x76\x60\xc2\xc8\x20\x0e\x28\x2e\xbe\x08\xde\xed\x96\xf9\x0d\x8c\x83\x96\x32\x88\x09\x65\x76\x47\xc6\xea\xfa\xd0\x9f\x1b\xa5\x69\xe4\xc4\x0a\x46\x9b\xfc\xc0\xdd\x96\x41\x9c\x4a\xcc\xdc\xc3\x3b\x2f\x4e\xa6\x94\x05\xa5\x03\x9f\xa0\xad\x73\x89\x81\xd9\xe9\x1d\x33\xc1\x32\xcf\xb8\x37\xaf\xab\xa6\x73\x56\xdf\x3c\x16\x49\x06\xb1\x0c\x31\x78\xf3\x78\x92\x6f\x67\xc7\x60\xe7\xf4\x1b\x7a\xe7\x4b\x06\x49\x60\x98\x43\x8a\xaa\x7a\xf3\xbf\x11\xe9\xca\xb7\xee\xeb\xea\x74\x74\x45\xae\x43\x77\x55\x06\x49\x1c\x86\x0e\x43\xde\xd9\x75\xdf\xed\x68\xfe\x14\xae\x7a\xe8\x83\xb3\xbf\xae\xac\xae\x23\xe9\xe9\x71\x10\xc4\xcf\x55\x19\x24\x89\xc4\x92\x94\x0f\xcf\x9e\xe6\x74\x2f\xaf\x2d\xea\x32\xa0\x81\xd1\x05\xdb\x19\x6e\x8b\xea\x78\x2a\x78\x9d\xb7\xe7\x0d\xb4\x88\xe3\x3a\x8d\x10\x2b\x8e\x27\x4e\x06\x94\x30\x0c\xd7\x73\xa5\x10\xf1\xfd\x9d\x70\x50\xd7\x5a\xa2\x4f\x74\x57\xd5\xaf\x7e\x18\xd1\x58\x51\x87\x07\x9c\x63\x2c\x11\x2b\x46\xaf\x42\x09\xed\x29\x2c\x25\xb8\x75\xf4\x5e\xeb\x66\xb6\xad\x16\x5f\xbc\x1b\xd3\x5c\xdb\xcc\xd5\x9c\x37\x30\x58\xbe\x65\x90\xd1\x10\x43\x5a\x1a\x5a\xb9\xb7\x72\xf0\x48\xde\x6a\x0a\xa8\xa7\x20\x72\x19\xf0\x30\x44\xaa\x30\x55\xcd\x5d\x6a\xf7\x37\x7f\x88\x62\xa1\xd7\xa2\xdd\x6f\x4f\x75\xf9\x73\x7e\x3f\x19\x9b\x22\x04\x84\x1a\xff\xb1\xd8\x6c\x97\xcf\xf7\x08\x71\xd8\x22\xa1\xb3\xbb\x84\xa0\x14\x63\xaa\x2f\xf7\xab\xdd\x8f\xe7\xce\x15\x5d\xdc\xee\x8c\xb5\xbc\xdc\xfe\xb5\x9b\xcf\x5e\x5c\x4b\x49\x0c\xd0\xac\x2f\x59\x1f\xdf\x4b\x11\xc9\xec\x62\xfd\x00\x75\x85\x78\xa6\x2f\x7a\x53\x71\x70\x63\x7a\xdd\x47\x3b\xdc\x41\x41\x11\x2f\x35\xe7\x2d\x7c\x8e\xa6\x07\x88\x04\xa7\xff\xe3\xea\x7e\xb7\x98\xd6\xf7\x21\xdb\x06\x32\x16\xf4\xcd\x25\xe6\xe3\xac\x96\xfa\xee\xc3\xb7\x9c\xf4\xb0\x4e\x0d\x97\x22\x52\xc2\xcc\x94\xba\x35\xc8\x89\xdf\x7a\x8b\x6e\x1c\x40\x92\x61\xa0\xa4\x32\x09\x0d\xd4\x1a\x28\x25\xcc\x79\x93\x97\xd5\xf0\x71\xc3\x90\x69\xb4\x93\x3b\x83\xef\x67\xde\x99\xd9\x13\x36\xbc\x71\xaf\x84\xa1\x90\x96\x48\xc5\xd1\x2a\x8c\x7b\x38\x24\x71\x8a\xee\xac\xe2\x2d\x17\x38\xae\x86\xdc\x40\x32\x8c\x42\x85\x2e\x31\xbe\xc7\xd3\xa5\x7e\xa5\x7f\xfc\x28\x8a\x0d\x6f\x3b\xb4\xb7\xd0\xc8\x3a\x3f\x5e\xd3\x56\x93\x61\x24\x12\xed\xf3\xe7\x36\xe9\xe5\x6e\x16\xa7\x09\x37\x25\xbe\x67\x27\x54\xed\x8e\x08\x81\x3a\x1b\xe2\x74\x9e\x9d\xda\x6a\xfa\x16\xb1\x26\x28\x78\x73\xe8\x3c\x4b\x9c\x73\x8f\xbc\x69\x4d\xd7\x38\x98\x9d\x6d\x9a\x04\x1a\xaf\x94\x97\x79\xfb\x08\xba\x75\x34\x40\x8d\x6f\x60\xeb\x2a\xef\x51\xa5\x68\x5e\x95\x0d\xc2\x17\x5a\x97\x5b\xa8\x7f\x1b\xdd\x9a\x66\x86\x67\x2a\x6f\x0c\x82\xe1\x1a\x2f\xb7\x0c\xa9\x34\x95\xdf\xb8\xd8\x67\xee\x56\x29\x09\x8c\x86\x03\x3f\xc0\x1c\x7a\x6c\x85\x0c\xd3\x94\x20\xe0\xf0\x9f\xd5\xf9\xb5\x5a\xac\x36\xdf\x93\x8f\xfc\x2d\x4b\x59\x86\x8c\x00\xa2\xa3\x0b\xde\x98\xe0\xcb\xb2\xd9\x0e\xb4\x72\x6f\x07\x11\x14\x77\x06\x4b\xb2\xc8\x27\x87\x6e\xa0\xbd\x42\x79\x28\x43\x96\x49\x1c\x94\x16\x6a\x30\x3b\xe4\xcd\x68\xd0\x32\x29\xb1\x4a\x0b\x35\x0f\x36\x50\x14\x0f\x9b\xcd\xbe\x3a\x7e\xbf\x97\x84\x59\x2c\x12\xff\xb4\xa3\x9a\x03\x77\xdd\x2c\xd5\x2e\xe4\x7a\x3d\x24\x25\xc3\x0c\x52\xe6\x54\xb0\xf2\xd7\x72\xba\x10\x86\xdc\x72\x7b\x22\x8f\xc4\x6e\x3b\x5b\xdf\x3b\x39\x16\x19\x4a\xaa\xdc\xcb\xff\x91\x7f\x2b\x26\x27\x91\x77\x1d\x65\xa8\x0b\x5e\x2e\xfe\x74\x57\x50\x41\x88\x75\x05\xbd\x65\x66\xf8\x15\xbf\x73\x4d\x64\xa8\x62\xad\xb2\x01\x95\xb4\x19\x9e\xdb\x7d\x5e\x2b\x8b\x22\xe9\x63\x56\x32\x84\x20\xc2\x82\x13\x03\xd3\x5f\xfb\x68\xc2\x18\xae\x69\x1b\xeb\x20\xc1\x1c\x0a\xea\xa2\x2d\xd5\x80\x25\xe0\x37\xc3\x33\x3d\x6d\x4f\x52\xa4\x93\xcf\xa5\xa1\x1c\x4a\x7e\xf3\x07\xb4\xb0\x22\x8b\x51\x1f\xc7\x95\xa1\xd6\x21\x5a\xaa\xe8\x02\xdb\x1f\x49\x10\x6b\xcc\xd6\x4b\xa8\xdb\x5c\x9f\x9f\x78\xd9\xe3\xab\xfe\xed\xda\x50\x8a\xcb\xc7\xd3\xec\x4f\x47\xea\x31\xbb\xfd\x63\xb9\x59\xad\x37\xbb\x97\xd9\x7a\xfb\xbc\x58\x6f\xfc\xf5\x24\x60\x1c\x1d\x99\x04\xa7\x34\xb4\x92\x04\x2a\x4d\x06\x1a\xdf\x6b\xae\x75\x01\x2f\xb6\x8a\x61\xd4\xd5\x24\xd0\x12\xed\xfb\x27\xa8\xdf\x3a\x6f\x01\x60\x5d\x55\x56\x79\x6c\x10\x2c\xb2\xad\x43\x96\xe2\x9a\x7e\xcf\x0f\x16\x8f\x3d\x75\x07\xae\x8d\x68\x36\x34\xb8\x09\x89\x63\x84\x6e\xdf\x2e\x1e\xdc\x40\x23\x84\x02\x26\xd6\x77\xc7\xba\xea\xcc\x6f\x7b\x7d\x77\x38\x0a\x03\x1a\xd8\x18\x28\xaf\x27\x6f\x10\xa5\xd2\x92\x78\x1e\xf2\x72\x67\xb8\xe9\xc4\xa9\x2e\xa7\xcd\x64\xea\xb8\x97\x1d\x03\x9b\x9b\xfa\x37\x67\x64\x0b\x42\x7b\x7d\x8a\x69\xb9\x9a\x44\x1a\xf5\x49\x1c\x12\x34\x2f\xef\xa1\x9d\xef\xf3\xa3\x67\x15\x76\x56\x24\x89\x43\xe1\x90\x4d\xf3\xbc\x3d\x63\x88\x7c\xfc\x6c\x31\x4f\x1d\x16\x7c\xf6\xce\xf3\xa2\x5b\x8b\x5c\xf0\x69\x34\x1c\x49\x2c\x59\x6a\xc4\x65\x5a\xe8\x56\x92\x52\x41\xbd\xd2\xd3\xcb\x01\x51\x26\xbf\xde\xf4\xbc\xaa\x92\xd0\x38\x43\x50\xd6\xd3\x79\x0b\x76\xf9\x0b\xfd\xb1\x44\x61\x18\xb6\xf3\xa4\xef\x00\x16\xcc\x86\x28\xae\x7b\x24\x84\xf6\xc8\xd0\xbb\xaa\x6a\x05\x2f\x8a\x91\x90\x82\x6d\x96\x0a\x62\x95\x6e\x7f\x29\xaf\x37\x5e\x01\x08\xd3\x1c\x70\xd3\xcd\x5f\xbf\xa0\xe9\xee\x8d\x64\x92\x25\x86\x6b\xd1\x16\xd7\x1d\xbb\xf6\x36\x10\x1d\x07\xff\x18\xc4\x5a\xba\xa6\x80\x85\x50\x33\xa5\x76\xb7\x95\x1c\x26\x20\xae\xba\x9f\xa3\x9d\x9b\x64\x2a\x0d\x3d\xdd\xbb\x61\x53\xc0\x22\x49\xb7\x73\x12\xae\x63\xb4\x25\x9e\xf2\x76\x5f\xe7\xc5\xec\xd3\x2d\x52\x44\x48\x6d\xe6\xd9\xec\xcf\xcd\xec\x71\xb1\xe9\x4d\x40\x22\x13\x1e\xda\xce\x9c\xf3\x1a\x17\xe9\x2f\x18\x59\x4f\x43\x4a\xb7\x0b\x78\xd5\xa8\x9a\xd6\x5e\x5b\x25\x0a\xa9\x40\x9a\xf3\x41\x54\xc5\x55\x60\x99\x24\x20\x33\x03\x6b\x39\x41\xd3\xec\xda\xcf\xb1\x17\x44\x34\x35\xfa\xf3\xa6\xa8\x74\xaa\x11\x78\x75\x37\x88\x82\x08\xb0\x78\xff\x26\x6f\xa1\x91\xb9\x45\x0c\xc9\x28\x48\x8c\xd3\xd6\x40\xfb\xb3\x2a\x3b\x4f\x7e\x3c\x64\xa2\x40\xf0\xc4\x6e\x39\xdb\xbc\x3d\x15\x3c\xaf\x61\xd7\xb9\x13\x2d\xec\xe2\x69\x5b\x15\xa6\x46\x21\xb5\xac\x4e\xa5\x84\x65\xd3\x9c\x06\x26\x53\x14\xe8\x14\xa1\xfe\xad\xe5\xf6\x1b\x9f\x4d\x28\xc7\x3d\x1b\x2b\xa7\xef\x4e\xa5\x7a\xf8\x39\x77\x67\x12\x19\x98\x0a\x7e\x47\x16\x2a\x23\x02\x41\xe8\x08\x14\x1c\x61\xf1\xd5\xb1\x1b\x45\x60\xe2\x2b\x9d\xc9\x50\xc9\x37\xd7\x51\xa6\xea\x6d\xd2\x4f\x71\xc8\xac\x9b\xfb\xa3\xb3\x2c\x87\x94\x8f\xe3\x8b\xc6\x11\xc7\x68\xa7\x72\x53\x77\x1c\x64\xeb\x1a\x68\xfc\x4a\xce\x1e\xd7\x27\xcf\xcb\x2a\xa3\x38\x83\xc4\xa9\xa2\x9e\xca\xc3\x68\x0b\xfe\xd6\x06\x89\x62\x99\xa5\x16\x97\x71\xb7\x5c\x6f\xb6\xbb\xcd\x76\xf1\xb2\x43\x68\xf7\xa4\x3f\x53\x2a\xa5\x29\x98\xeb\xb7\x54\x77\x28\x25\x98\x0a\xc0\x79\x73\xe4\xb9\xaa\x4e\x6e\x55\x8a\x18\x89\x41\xfb\xd1\x35\x7e\x35\xb7\x37\x46\x4c\xc5\x88\x01\x3e\xf2\x53\x03\x4f\xd3\xf2\x17\x19\x65\x61\xa6\xa5\x07\x35\xa2\x50\x99\x2d\x83\xb9\x40\xe1\xc9\x28\x13\x29\xae\x2d\x9d\xcd\xd9\xe0\xae\xe8\x36\x9a\x88\x93\x00\x43\xe1\x7f\xe4\x4d\xcb\x87\x5b\x6a\xc4\x39\x47\x1d\x97\xa6\xe4\x79\xe1\xd9\xac\xbb\xdf\xa5\x76\x82\x5b\x5d\xfb\x6d\xb5\x68\xf7\xe8\x79\x8e\x36\x81\x48\x50\x43\xc4\x5e\xe7\xaf\xfb\x96\x45\x93\x47\x92\xc4\x10\x76\x1a\x65\x1b\x13\x7c\xfc\xa8\x2e\x99\x44\x65\x04\x94\x63\x81\x06\x46\x99\x6f\x90\x7b\x77\x3c\x0e\x80\x42\x20\x8d\x5d\x52\x56\x87\xfc\xa2\xc2\x5b\x46\xc0\x00\xd7\x1b\x2b\x2d\x60\x0d\xda\xc9\x55\x78\x8a\x09\xeb\x03\xc6\x45\x1e\x78\x33\x22\x8a\x18\xad\x8a\x71\x10\x66\x3a\x1e\x85\x3c\x3a\x67\xe3\x0a\x6b\x9d\x5d\x9b\xec\xae\x62\xff\xe8\x4c\xae\xe1\x9f\xb6\x91\x67\x05\x30\xff\x70\x23\x21\x0e\xe2\x00\x47\x99\xb1\xa4\x79\x01\x9b\x23\x6e\x82\xdb\x4f\x57\x9b\x30\xea\xaf\x38\xcc\x8c\xb0\xf6\x66\x3b\xff\x7b\x23\x3e\x8e\x38\x91\x7c\x10\x86\x9e\x7d\xc5\x73\x3b\x39\x2f\x4e\x03\x2d\x2c\xe5\x81\x67\xe8\xb6\xc7\x12\xaa\x9c\xd4\xda\x62\x3d\xbf\x2a\xb3\x2a\xe3\x24\x4d\x4c\x34\xdb\xd3\xf8\x20\xd7\xfe\xa8\xaf\x69\x44\xa3\xc4\x31\x47\x36\x46\x59\xb7\x99\x34\x89\x65\x64\x60\xcf\x32\x87\x77\x58\x83\xe7\x4a\xbe\xfe\xdc\x94\x13\xec\x51\xae\x94\x89\xb8\x4f\x67\x5f\x8c\x62\xd4\xdd\x9b\xed\x79\x03\x2f\x27\x51\xe4\xb2\xeb\xf9\x68\xb7\xad\xdc\xb3\x33\x12\x18\x89\xad\xce\x12\x30\xa5\x87\xea\x2a\x43\x89\x8c\x19\x0f\x30\xc9\xc9\x71\xdc\xed\x7a\x9d\x76\xdf\x11\x59\x6c\xf4\xcb\x4d\xe4\x00\xe3\xb1\x26\x46\x8e\xcf\x77\xfb\x6d\x3c\x5e\xc6\x22\x0a\x33\xc7\xb7\x01\xf2\x54\x43\x4f\x64\x24\x63\x01\x29\x4e\xc3\x3d\x6f\x2c\x7f\xff\x6f\x93\xb3\x75\x88\xa4\xa6\xb9\xac\x06\xc4\x65\x32\x96\x61\x8a\x9c\x40\x7b\x3e\xa9\x7d\x96\xb1\x04\xae\xb5\x63\x6f\x39\xd5\x12\x86\x02\x15\x5f\x0c\x32\x15\x44\xa8\x71\xb7\x59\xdd\x6d\xe7\xb3\x97\x61\xf0\x28\x56\x81\x44\xf8\xd9\x07\x6f\xee\x2b\x5e\xb8\x74\xaf\x3b\x1a\x1b\x28\x49\x83\xaa\x7d\x28\x4e\x51\x7d\x9e\x27\x8f\xa4\x52\x99\x64\x9e\x79\xeb\xa5\xae\x8e\x93\xd0\x66\xac\x44\x2a\xdd\x76\xe6\xea\xd3\x27\x26\xe7\x65\x84\x26\x56\xda\x6c\x32\x37\xcb\xdf\x37\xbf\x4c\x73\xc8\x18\x12\x83\xe1\x54\x60\xa6\xd2\x63\x25\xdf\x26\x37\x99\xf4\x0b\xb0\x88\x19\x65\xfe\xb2\x7d\x86\x8f\x71\xc0\xc6\x3f\x06\x30\xca\x91\xa0\x89\xe7\xc5\xf9\xbe\xae\x3e\xda\xfd\xee\x78\x3c\xb8\x2e\x02\xc9\x0d\xeb\x03\x2e\xc8\x23\x16\x22\x19\x83\x26\x21\x58\x0d\x96\x12\xc5\x60\xd0\xf8\xe7\x5f\xc7\xfb\x0d\xc1\xcc\xdf\x8b\x30\xc4\x3a\x01\x2c\x09\xb3\x36\x87\x9b\xea\x0d\x19\x4f\x52\xcd\x24\x9a\x26\xb7\xf0\x9e\x77\x86\x8b\x93\xf5\x54\x93\x0f\xa9\x05\x37\x65\x70\xb6\x42\xb8\x72\xd5\x70\x32\xd6\x40\xd0\xc9\x3b\xee\x10\x33\xf9\x39\x90\xdd\x1d\x3d\x52\x12\xa4\xa6\xb2\xa2\xdb\x37\x51\x57\x67\x80\x47\x91\x49\x90\x85\x10\xf9\xa5\x29\x25\x61\xb7\x2a\xbd\xf0\x81\xdc\xcc\xe8\x89\x92\x40\x48\x62\x4b\xec\x0c\x88\xa7\x18\xd2\xdd\xc8\x24\x0c\x0c\x11\xa1\xe7\x99\x38\xb5\xb3\xc2\x28\xcc\x34\xbe\x0d\xd7\xd4\x82\xd7\x5f\x56\xab\x47\x5b\x7c\x9b\x8e\xba\x28\x21\x89\xc0\xe0\xfb\xa9\x74\xee\xc3\x06\x8a\x31\x75\x4e\xd7\x48\x61\x4e\x1e\x4a\xf5\xe4\x5d\x05\x77\x8c\x26\x98\x4f\x34\x1b\xdc\x9a\xe7\x7d\x14\x33\x21\x94\x06\xca\x27\xfd\xf5\x33\x3f\x18\x01\xe1\xf1\x23\x44\x01\x60\xdf\x7c\x40\x6e\x74\x1f\xdc\xe9\x9d\xb1\xe3\x2a\xe3\x78\xd3\x7c\x54\xf5\x75\x8b\xdd\x36\x8f\x23\x89\xb5\x46\x3b\x38\xe4\xed\xe6\x2d\x2f\x0a\x5b\x75\x94\x03\x4a\x1a\x7f\x97\x58\x96\x49\xac\x42\xa4\x78\xf8\x7d\xfd\xd7\xcb\x66\xbb\x5e\x3d\xdf\xff\xe6\x8f\x68\x27\x76\x64\xcd\x1d\x63\x32\x5c\x9d\x5b\x49\x12\x87\xa2\xaf\x09\xb4\xfb\xe6\xa4\x3f\x13\xca\x0c\x18\xc2\xa0\xb4\xfa\xfd\xe7\x7b\x19\x88\x6f\x9c\xa6\x24\x81\x08\xeb\xf9\x90\x7a\x82\x17\xb6\xca\xc9\x1e\xa4\x71\xa6\xd8\x84\x15\xd8\xd0\x2d\xce\xbb\x1d\xe1\x8a\x05\x94\x50\x1e\x69\xaf\xae\x6d\xc3\x41\xfe\x72\x42\x23\xb3\x87\xc9\x00\xcc\xd6\xf3\xeb\x8c\x5b\xd8\x10\x33\x94\x4b\x54\x59\xb6\x6f\x6a\x8f\xa5\x24\xc4\x31\x85\x28\xfe\x0d\x2f\x5b\xa4\x3f\x6b\xee\xf3\x77\x28\x6f\xce\xcf\x55\xdd\xee\x5f\xaa\xa2\x6f\x2e\x83\xd0\xc6\x6d\x96\x4f\x3f\x9e\x76\xf3\xd5\xf3\x76\xbd\xbc\xf9\xb1\xf5\x18\x13\x99\xa4\x4a\x20\xba\x79\x77\xe8\x85\x0d\x06\xf6\x4d\xff\x5c\xa9\x4e\xb8\xa9\xc6\xbe\xcd\x9b\x81\xf2\x8c\x4c\x58\x1a\xe3\xce\x75\x2c\xf8\xf9\x7e\x40\x37\x31\xb9\x40\x96\xc4\xb8\xfe\x70\xa5\x66\xc7\xe3\x17\xdc\xc1\xae\x6d\x0a\xae\xaa\x65\x5e\x77\x73\xf0\x66\x82\x47\x96\x49\xa6\x05\x42\x95\xb9\x45\xcc\x0d\x6d\xe2\x84\xa7\x2a\xb4\xb5\x15\xfe\x69\x07\x2b\x0b\xe7\x0a\x0b\x84\x31\x27\x83\x26\xf1\xcd\x79\x89\x56\xc1\x13\xd4\xdd\x20\x6c\x6f\xce\x98\x6c\xba\x26\x09\xd0\x9d\xae\x13\x5b\xee\x74\x6b\x85\xe7\x9d\x89\x37\x69\xa8\xd3\xd0\x49\x43\x55\x85\x5a\xf0\xba\xcc\xcb\xd7\x69\x2b\x41\x19\x56\x4b\xe4\x12\x53\x68\xee\x1d\x84\x02\x04\xc5\xcf\xab\x65\xd9\x9c\x6a\xb8\x31\x75\x19\x83\xb7\x94\x34\xc5\xef\x6b\xf0\xf5\xcb\xb2\x2d\xfc\x11\x1e\x22\x02\x06\x06\x22\xb6\x88\xee\x59\x95\x7e\x74\x48\xa9\x81\x8d\x02\xa0\x9d\xab\xd9\x2c\x4b\x2b\xe0\xfc\x55\x9c\x69\xfc\xf0\x8a\xa4\x96\x1b\xba\xdd\x9e\x0f\x63\xfe\xe1\xf1\x37\x55\x34\xc4\x4a\x1e\x8c\x80\x4d\x0c\xb9\x44\xc9\x94\x59\x37\xa3\x37\xe3\x0c\x54\xe5\xf6\xc2\x4f\x4a\x14\x40\x68\x0d\xa9\xbb\xbc\x80\xd9\xf4\x56\x90\x71\x5c\x97\xe4\xe1\xb8\xf8\xef\x85\xbd\x33\x18\x08\x90\x01\x26\x08\x76\x68\x40\x86\x23\x6f\x24\xd1\x69\x28\x53\x5f\x73\xb3\xd2\x2f\xdd\xb7\xb3\x59\x11\x3f\xf8\x35\x8b\x32\x13\xef\x2c\x61\x24\xf8\x26\x69\x90\x65\x8e\x9b\x7a\xeb\x75\xed\x9b\xd9\x2b\xcf\xcb\xe6\x2a\xf1\xa2\xa4\x61\x10\xa2\x3b\xea\x36\xe7\x27\xcf\xbd\x33\xc6\x09\x5f\x4b\xd9\xfa\x4b\xe8\xc4\xee\x9a\x4f\x39\x92\x04\xf5\x4b\x15\x73\x6d\xd2\x20\x36\x64\x5c\xc6\xc6\x9d\x82\xad\x25\x25\x8c\xa1\x5b\xbb\xdd\x83\xdc\xf3\xc3\xb1\x97\x16\x94\x94\x64\x89\xb0\x2b\x23\xee\x4c\xdd\xe0\x72\x9a\x75\xcb\x12\x87\xe9\xc4\xd7\xa1\x31\xa7\x58\x97\x78\x72\xd2\x62\xc3\x7e\x4a\x18\x27\x9d\xc1\x67\x5e\x71\x39\x5f\x99\x02\xb0\x6f\xb7\x1e\x9a\xc8\x18\x6d\x8c\xe6\x83\x1f\x17\xdb\x87\xa7\xdf\xd7\xd7\xb3\x6c\x34\xd1\x56\xfa\xd9\xe6\x80\xa6\x6f\x9a\x26\x1c\x3c\x47\x73\xb3\x13\x4e\x9c\x4b\xd2\x34\x55\x58\x12\xde\xed\x47\x93\xc8\xc6\xf5\x65\x8b\x32\x69\x14\x73\x4c\xad\xab\xb5\x27\x5f\xea\xaa\xd2\xbf\x5d\xf1\x36\xc3\x8c\x0c\xc3\xb5\x34\x63\x8c\x11\x4f\xdf\x77\xe2\xc5\xf3\x69\x12\x83\xa2\x59\x96\x05\x89\xaf\x74\xb4\x40\x76\x77\x8c\x0b\xac\xab\x44\xdf\xc4\xbc\xcd\x30\x11\x4d\x05\x89\x30\xbf\x60\x10\xc0\x53\x9e\xf2\xf1\xb4\x46\x4d\x47\xee\x46\x51\x67\xbd\xc0\xb2\xc4\x2c\xc3\x52\x2f\xcb\xbb\xaa\x7e\x33\x09\xce\x01\x94\x5b\x52\x91\x31\x0c\x7a\x9d\x8e\x6a\x96\xd7\xb7\x4e\xb5\xd1\xe9\x94\x0d\xc6\xa8\x24\x21\x5a\xc9\x73\x7e\x3c\xc2\x40\x4f\xe3\x5b\x03\x96\xca\x28\x43\x37\xf6\xbd\x6a\xa1\x6e\x46\xb6\x1d\x95\x29\x60\xc7\x18\xd7\xcd\x08\x1d\xfa\x63\x40\x42\x1b\x28\x5a\x96\xef\x55\x2e\xc7\xfa\xb2\x6e\x49\xf8\xb5\xc1\x40\x15\xa1\x38\xb7\xfc\x13\xbb\x9a\xfe\xeb\x9d\x08\x89\xa1\xfb\xdc\xb4\x55\x9d\xff\x97\xcf\x3d\xb7\x89\xa4\x20\x32\x4c\x8a\x8a\x01\xb5\xb4\x3d\xa4\x43\x93\xda\x32\xa5\x7c\xb8\x0c\x38\xcc\xce\xa8\xbb\x75\x14\x62\xb2\x16\xd5\x6e\xae\xef\xb9\x54\x47\x26\xb7\x7e\x6a\xa0\xf6\x6c\x2f\xee\x98\x50\xf8\xb9\x16\x25\xd4\xaf\xf9\x70\x46\xa6\x41\xc8\xb0\xd8\xa6\xc1\x8a\xab\x9d\xf4\x1a\x2c\x32\x0d\xa8\xd1\x4c\x2a\xaa\xd7\x1f\x65\xfe\x0e\x75\x03\x16\xd4\x30\xe7\x45\x6f\x14\xa4\x01\x37\x45\x2a\x27\xfb\x7e\xec\x1f\x17\xff\xff\xbf\x30\xa5\xff\xf6\xcd\x15\x5a\xbd\x66\xf1\x7f\xca\x4b\x2c\x9b\x1c\x0d\xe0\x34\x0c\x23\x47\x06\x6c\x40\x93\xdd\xda\x58\xfb\xa3\xc4\xa8\x51\xb7\xe8\x8c\x60\x9d\xca\x1a\xb0\xf7\x1e\x31\x23\xb1\x86\xf7\xbc\xc9\xab\x72\x51\x62\x80\xca\xfd\xb3\xf1\xe7\x8b\xd0\x95\x79\xdd\xf3\x66\x0d\xff\x1d\x7f\x96\x34\x54\x41\xa8\x0c\x77\x3c\xee\xe1\x23\xa7\x35\x25\x41\x8c\x21\xdb\xbc\x71\xae\x2f\x1c\x3d\x3f\x88\x4c\x49\x4a\x24\x0c\xd2\x0d\x7f\x40\xa9\xbe\x20\x2d\x94\x69\xa4\x08\xb2\x19\x14\xd5\xab\xa5\x70\x18\x0e\xc2\x34\x0e\xb3\xc4\x42\xd8\xb6\xdb\xc7\xc9\x53\xc6\x99\x24\x46\x1a\x6c\xe6\xee\x1d\x43\x14\x87\x83\x82\xa2\xbc\x7c\x1d\x46\xb7\x2f\xf0\xab\x32\x4d\x42\x8a\x51\x95\x27\x2e\xff\x75\x02\x18\x65\xf0\xd2\x84\x84\x52\xf8\x65\x64\x0d\xc7\x93\xe1\xaa\xc7\x8a\x98\x65\x79\x73\x2a\xde\xbe\x76\xd3\x53\x9a\x1a\xb6\x41\x93\x11\x5d\x95\x60\x68\xdc\xa7\xa0\x5a\xd7\x9a\x99\x72\xb7\xce\x64\xb8\x39\x8f\x18\x3a\x5d\x0b\xc1\x30\xc2\xb7\x73\x55\x41\x1f\x8e\x79\xb2\xef\x93\x34\x53\x18\x62\x46\x48\x23\xc2\xe0\x9a\x69\x0b\x9d\x61\xac\xfb\x3f\x55\x3e\x66\x7b\x91\x29\x0b\x18\xb5\xd0\x95\x9b\x53\x5d\x3e\x7a\x3a\x41\x99\xb2\x38\xcb\x92\x0b\xb4\xa2\x49\xbe\xf8\x36\x54\x18\x49\x85\x6e\xed\xb4\xf0\x83\xd1\xa0\x66\xa9\xa9\xb8\xe3\x2e\xbb\xe6\xe9\xf8\x31\x40\xe5\x5a\x31\x8e\xd3\x43\x54\xd5\x5b\x5e\xbe\xde\x41\xff\x10\x59\x80\xf0\xa2\x35\x34\x23\x10\xcb\x45\xee\x65\xdc\x6f\x4c\x0a\x2c\x46\x59\x6c\xaf\x70\x8f\xc9\x94\x29\x4e\x9c\x84\x58\x0d\x3a\xff\x34\x36\xc4\x68\x1c\x66\x10\x39\x42\xc1\xfb\x6e\xea\xd7\xe7\x0d\xbc\x43\x79\xc5\x31\x4a\xb9\xe6\xc8\xb8\x51\xc3\xeb\xe6\xe8\xf8\xea\x7b\x3a\xe8\xf1\x47\x17\x32\x0b\x2c\xad\xaa\x73\x1d\x79\xdd\x3a\xcc\xb9\x7b\xef\xee\xbf\x6e\x1d\x12\xf0\x72\xaa\xbf\x40\x71\xa5\x32\x0b\x50\x1d\xf9\xae\x86\x66\xff\x93\xb7\x50\xdf\x15\x95\xef\x54\xc9\x33\x3c\x6a\x41\x28\x37\xbc\x7c\xab\xab\xa2\xb0\xca\xf4\xdf\xdb\x1f\xa9\x94\xd4\xba\x87\xc5\x45\x61\xc9\xc0\x1c\x4b\x55\x2c\x63\x83\x05\xf7\x65\xf3\xdf\xe6\xa7\x52\xa5\x00\xab\x91\x50\xb7\xeb\x85\x9f\x6f\x4e\x5a\xbb\x27\x56\x60\xaa\x7d\x6d\x64\xb2\xaa\xa1\x1d\xc2\x63\x52\x08\x48\x64\x56\xa1\xe7\xaa\xe5\xf5\xf9\x0f\xe8\x9c\x27\x69\xcc\xb4\x2f\xeb\x20\x71\xf3\x33\xff\xeb\xad\x91\x14\xd2\x00\xad\x91\xea\x1d\x6a\x5d\x54\x1f\xc3\xa2\x11\x99\xea\x30\x31\x98\x1f\x63\x46\xac\xf4\x64\x3d\xd4\x91\x36\x7a\x97\x28\x3f\x7d\x3a\xbb\x47\x64\x61\xb7\x4e\x77\xfd\xb6\xaf\x2c\x5f\xed\x86\x6b\xb8\x60\x10\x1a\xf7\x36\x0b\xe3\x24\xb0\x63\x6d\x76\x55\x5d\x5f\xb2\x50\x2b\xa4\xea\x9b\x29\xf5\x54\xa9\xb1\x90\x99\x6d\x42\xa2\x28\x35\xd4\xbf\x67\x9b\x27\x8b\xdd\x63\x91\x24\xc0\xe8\xb5\xcb\x51\x3d\xae\x5d\xc6\x8d\x45\x81\x8e\x85\xdb\x8f\x0f\x47\x94\x4b\xdd\xf2\xe6\xcd\xbf\x52\x14\xc7\xa8\x8d\x74\xf7\xb8\xfa\xd7\xd2\xff\xc8\x42\x6d\x00\xe0\xa5\xca\x7b\x05\x34\xc9\x62\x92\xa1\x89\xff\x9f\xa3\x41\xed\xf8\xdf\x23\x83\xed\xbb\xa9\xab\x8f\x32\x87\xbe\x38\x4c\xb2\x98\x1b\xf8\x96\x29\x22\xed\xf6\xb6\xce\x5d\xcb\xab\xd2\x2b\x06\x76\x6d\x20\xb0\xfa\x40\x58\xac\xfe\x17\xf0\xbe\x36\x72\xc0\xfe\x34\x70\x03\x58\xd2\x6d\x4c\x3e\xc1\xe5\xc6\xff\x24\x7a\xea\xdb\x9a\xc0\x98\xe4\x7d\xdc\xf2\xea\x00\x46\x22\x6c\x57\xe4\xb4\xad\xb9\xba\xb4\xe4\x7f\x55\x14\x32\x3c\x7e\x59\x12\x74\xd5\x0f\x65\x94\x4b\x47\xb7\x61\x6c\x88\x4b\x30\x03\x4b\x43\x33\x67\x91\xfa\xfc\xb1\xfa\x18\xd0\x31\x48\x96\x52\x30\x82\xc0\x56\x2b\x3a\xb4\xbf\xb3\xc8\xa4\x75\x76\x07\xfe\x89\xa3\x79\xe4\x24\x32\x9e\x18\xb1\x45\xfb\x34\xd0\xd0\xc9\x4d\x39\x44\x88\x62\x72\x2b\x17\x13\x41\x42\x2c\x95\x03\x62\xe3\x7d\xf0\x91\x89\xc8\xa4\x67\x9f\xb6\xeb\xf1\xaa\xfc\xbd\xe0\xa9\x3b\x3b\x36\x72\x35\xd2\x45\xab\x1e\x3d\xe3\xb1\x64\x2a\x10\xa1\x8d\x8d\x6e\x4e\xa2\x91\x75\x2e\xa0\x36\xbc\x24\x83\x26\x52\xf7\x24\x2e\xb7\xb3\x55\xb3\xbc\x4e\x89\x23\x99\xa2\x09\xd6\x4d\x1c\xf7\x70\x1c\xe1\xc9\x98\x02\x8e\xe5\x44\x58\xbb\xb1\x5b\x3c\x6f\x76\x65\x1f\xc0\x62\x10\xc7\x96\x96\x03\x99\x69\xf2\x0a\x1d\xd4\xf1\xbb\x5e\xb7\x16\x7f\x19\xdf\x66\x90\x44\x48\xa7\xe9\xe8\xc1\xed\xcf\x3a\xc8\x30\xe9\xf4\xc2\xcf\x77\x55\x6d\x69\x0c\xe6\x0f\x8f\x8b\xf7\x2b\x8b\xbc\x3b\x27\x4e\x8c\xba\xc1\x1e\xe4\x9b\x05\x60\xef\xf3\xe3\xa5\xdb\x30\x1c\x9a\xe6\xdc\x2c\x90\x91\x72\x6a\x62\xbc\x44\x39\xc8\xdf\xfc\x0a\xeb\xda\x68\xc0\xe5\x6c\xde\xb9\xd5\x0a\x85\xd6\x1c\xcd\x8a\xcc\x42\x12\x20\x39\xf5\x21\x2f\x6d\xc5\xed\x48\xca\x54\x66\x84\x04\xc8\x82\x39\x7f\x9a\x0d\xd5\x21\x64\x46\xa2\xc0\xe9\x29\xdb\x9d\x73\x42\x66\x20\xb3\x58\x05\x68\x43\x2f\x9f\x6f\x16\xdb\xd1\xc9\x49\x64\x62\x55\xf3\xf9\x6c\xf3\xf0\x4d\xc5\x83\xcc\x12\xa6\xd3\x78\x20\x20\xa4\xbb\x5d\x66\xe5\x36\xa9\x8c\x46\xa6\x2c\xf5\xa5\xfa\x39\x53\xef\xf3\x71\xc1\xb1\xcc\x68\xc2\x99\x2f\xee\x99\xc2\x3e\x86\x38\xf3\x8b\x5e\x1e\xfd\xdb\x5e\x2d\x8d\xbc\x5e\xdd\x1f\x55\x0b\xf3\x5f\x4a\xdc\xc9\x2c\x65\x31\x26\x1d\x76\x2e\x31\x6e\xe3\xef\xd3\x56\xa6\xda\xdc\xc9\xb2\x0d\xdc\xd7\x2c\xe5\x0c\x99\x3e\x7e\x6c\x17\x83\xf8\x9a\x7b\xc1\xd4\x56\x2f\x75\x7d\xbf\x28\x95\x73\x11\xc7\x73\xd7\xb5\x95\x04\x03\x06\x1e\x7d\xb9\xe1\x4a\x15\xf0\x6b\x04\x66\xc6\x42\xc3\xa7\x6e\xc5\xc0\x0d\x39\xbe\x1f\x22\x19\x15\xc2\xea\xe8\x1c\x4f\x2d\xac\x8e\x50\x4e\x13\x38\x59\x26\x02\x47\x2e\x72\xf7\xf3\xb6\x3b\xb6\xd8\x3e\x4c\xda\xf0\xd0\xc4\x20\xc7\xe9\x90\x71\xc6\x28\xe3\x89\xa4\x06\x4b\x85\x25\xf9\x28\x7e\x0a\x86\x5d\x62\xfc\xcc\x32\x54\x71\xe8\xa6\x95\x9d\x89\x77\x13\x3e\x4f\x99\x49\xa2\xb9\x4b\x5a\x0e\x97\xda\x4c\x26\x19\xd6\xc3\xe8\x11\x1b\xd9\xf7\xab\x42\x26\xb3\x54\x99\x50\x97\x3e\x95\xea\xe6\x3c\x2a\xe8\x71\x6d\x04\x43\x9e\xc2\xee\xc2\x03\x27\x3d\x53\x59\xa6\x8c\x76\x14\xb7\x91\xcd\x21\x27\x85\xcc\x80\xa4\xc8\x2e\x8f\x55\xa6\xbb\x9f\xcb\xe7\xfb\x8d\x3f\xc4\x32\x41\x1d\x9d\xe0\xdf\xd0\xef\x74\xa7\x71\x6d\x54\xfe\xdb\xbc\x40\x2d\xe1\x0f\xef\x51\x67\x9a\x26\xd2\xb9\x1b\xb9\xba\x00\xf3\x65\x9a\x27\x58\xb2\xd0\xec\x79\x3d\x0a\xb0\x65\x5a\x72\x74\x6f\x8c\xcb\x36\x3b\x1e\x97\x28\x83\xd2\x3b\x0b\xa6\x1d\x0f\xc2\x20\x34\xd4\x63\x15\x0e\x98\x9d\x70\x04\x36\x92\x07\x34\x70\xa2\x35\xb3\xd6\xc6\x8b\x7d\x3d\xc6\x75\xf4\x16\x0f\x74\xe4\x13\xc2\xbc\x38\x41\x38\xee\x77\x1e\x06\x06\x97\x80\xa3\xff\x27\x00\xb2\x9d\x2d\xe7\x2b\x0c\x34\x2d\x9a\x36\x3f\xf4\xd3\x8a\x87\x91\xd2\xe1\x20\x63\xfb\x4d\x0d\xde\xd8\x34\xe0\xa1\xce\x22\x07\xdc\x82\x66\x12\x2b\xe6\x11\x21\x46\x0b\xc0\xdb\x48\x37\xa7\xf3\x0d\x97\x6f\x77\x9e\xd0\x48\xf2\x28\x06\x3e\x30\x77\x9b\xdd\x78\xcc\xf2\x28\xe1\xb8\xac\x72\xa5\x06\xd8\xbd\x7e\x3d\xbb\x46\xd6\xfa\xdd\xff\x43\x3a\xc6\xa3\xb8\xdb\x88\x44\x5b\x8a\x9b\xce\x1c\x79\xe5\xcd\xf1\xd2\xdb\xe2\x91\xe2\x68\x92\xec\xde\xab\x93\xdc\x43\xdd\xdc\xfa\x08\xff\x48\x94\x41\xf2\x48\x4b\xdc\xac\xfb\x14\xc0\x4b\x9d\xff\x0f\x26\xf3\x96\x27\x94\xe0\x38\x6f\x3e\xf2\x56\xee\x3b\x23\x98\xb7\xb9\x28\x80\x90\x08\x3e\x07\x0b\x23\x4f\x32\xaa\xbd\x48\xc2\x72\xbe\x9a\x17\x83\xfa\x0c\x9e\x88\x04\x97\xd4\x3a\xec\x7f\x51\xa6\xde\x00\x9a\x76\x59\xb6\xb7\xe7\xd2\x10\x3c\x8e\x67\x05\xa7\x24\x14\x96\x61\x7b\x71\x10\xbc\x69\x26\xa0\x02\x9e\x32\x6e\x80\xb6\xa5\xa3\x35\xf2\x60\xd5\xdf\x06\x4d\xc0\xe9\x67\xd6\x75\xf5\x01\xf5\x1a\xda\x53\x5d\x2e\xda\xfd\x0b\xd4\x77\x39\xbf\x02\xc8\xe2\xa9\xc8\x9c\x3c\xbe\x11\xe0\x1a\xd0\x49\xff\x63\xd2\x54\x12\x23\xd6\xc8\xdd\x2a\xcc\x39\x31\x31\xb0\xd5\xe7\xa8\xec\x8b\xf3\x34\x42\x24\x47\xb7\x22\x8d\x24\x16\x25\xe7\x42\x52\x4b\x73\x83\xfd\x5c\x4e\x75\xdb\x27\x77\x95\x9c\x62\x51\x3c\x12\xb8\x6e\xf3\x57\x57\xb1\x68\x0f\xab\x48\x8b\xc0\xcf\xfc\x3b\x98\x7a\x02\xfd\x85\x94\x0a\xb0\x08\x02\xd3\xe1\x23\xd9\xc5\xee\x98\x08\x0c\x9f\x99\x1a\x12\xb5\x8e\xbf\x01\x30\x9f\x39\xef\x36\x32\xe4\x27\xba\x8c\x2c\x70\x50\x51\xd0\xa7\x7a\x47\xd4\x47\x93\x57\xd3\x24\x91\xe0\x04\x50\xfc\x90\xd1\x11\x4d\x6d\x74\xd4\xba\x8f\x4e\x67\xe3\x86\xb7\x6d\x01\x68\x52\xdf\x9c\x97\x93\xfd\x5c\x04\x71\x86\x71\x4b\x0c\xfe\x3d\xc3\xa9\xae\x10\x9c\x3e\x75\x3b\x87\x1b\x9b\x08\x20\x43\xea\xca\xed\x9f\x57\xde\x44\x84\x91\xd1\x88\xc8\x0d\x44\x02\x46\x53\x4b\x84\x34\x42\x5c\x95\x71\x28\xab\x8f\x51\x1d\x8b\x20\x71\x88\xd5\x1e\xce\xdd\xbc\xb0\x2c\xbf\x4d\xba\x89\x28\xd0\x88\x13\x2c\x4d\xed\x9c\x87\x72\x5c\x27\xe2\x95\x22\x0a\x43\x8c\x8d\xee\x2c\x27\xd0\x03\x2f\x74\xe7\x20\xba\xc7\x89\xb2\x38\xf6\x22\xe3\xf5\x1b\xb4\x50\xff\x0e\x67\x7f\x54\x1a\x61\xc2\xbb\x1c\x99\x7f\xdc\xaf\x2a\x0a\x70\x73\xac\xf3\xd7\x6e\xd8\xd5\xe7\xd9\xc9\xc7\xe3\x45\x04\xcc\xf1\xd1\x59\x02\x59\xef\xe6\x88\x38\xa1\x98\x32\x7b\xac\x5e\x87\x52\x64\xd7\x6d\x71\x91\x90\x40\x52\x4c\xd1\x15\xfc\x7c\xd5\x8a\x12\x09\xc9\x70\x6e\x2f\xe7\xab\xdd\xcb\x7a\x39\x5f\xb8\xd1\x22\x92\x34\x34\x9c\xd5\x0d\xe0\xe6\x5f\xf3\x52\xee\x2f\xe4\x4f\xff\x3e\xa4\x5e\x24\x2a\x48\x1d\x9b\x79\x95\x97\xcd\x26\x2f\x4d\x3d\x13\xb2\x8d\x4e\xba\x9d\x66\x92\x38\x82\x48\x78\x1f\x59\x10\xd3\x86\xa6\xee\xa9\x33\x79\x90\xb9\x1e\x77\x77\x77\x10\x38\x06\x62\xe6\x37\x4b\xb3\xd5\xfd\x2a\x5d\xf2\x95\x3f\x6d\xaf\x97\x12\x82\x60\xfb\x03\xff\x74\xac\x20\xab\x1e\x11\x2b\x52\x1a\x07\xc6\x60\xea\x56\x47\xbf\x7a\x8b\x94\x65\x58\xad\x73\xb4\xe7\x3c\x2d\xb7\x93\xb7\xc8\x02\x93\xc7\x3b\xd6\xb0\xcb\xa5\x7f\xfe\x2c\x26\x48\x58\x70\xcf\x0f\xb0\x6c\xe1\xf0\x0c\x2e\x02\x27\x78\xec\x33\x89\xb7\xfc\x3c\x20\xd9\x93\x82\x2b\x13\xce\x5f\xf3\xe3\xd1\x5f\x8a\x43\x12\x7a\x83\xc1\xfa\x79\xb7\xbc\x05\xd2\x37\x90\xb8\x53\x94\x55\x7d\xe0\xc5\xba\xaa\x0e\x4f\x3e\x8c\x22\x44\xc8\x35\x1f\x92\x3b\xf2\xd7\xc9\x1b\x88\x4c\x85\x59\x5f\x2c\x65\x13\xe1\x13\x31\x55\xdb\x56\x12\x85\x42\x6b\x50\xaa\x01\x44\x43\xc8\x4c\x22\x59\xd1\xec\xf6\x76\xbd\x43\x1d\x5c\x7f\x04\x00\x35\x27\xdb\x3d\x8c\xa1\x0c\x42\x89\x14\x2b\x73\x6d\x34\x60\x3c\xb8\x41\x1a\x74\xf7\xa6\x05\x70\x3e\xa2\x00\x9d\x70\x5c\x6c\x4f\x87\x9e\xe4\x42\x0a\x1d\x49\x8c\x35\xe0\x44\x58\xad\x1e\xfd\xef\x99\x4c\xc0\x86\x06\x72\x74\x94\x7e\xfb\xca\xb9\x1a\xdd\x5c\x06\x51\x14\x5a\x9b\xd3\x86\x45\x1f\xab\x57\x87\x1d\x91\x41\x16\x78\x96\x68\x4c\x58\x9a\xd8\xaf\x3d\x4a\x22\xc3\x0f\xdc\x40\xbb\x6c\xba\x25\x8a\xe7\x25\xd4\x77\x55\x7d\x07\xb6\x3c\x72\x60\x3a\x48\x92\x28\x44\x31\x5b\xde\x78\xf7\xab\xa4\xd4\xe4\xe7\x0d\x93\xe4\xa2\x54\x53\x97\x56\x46\x81\x81\x89\x1d\xa1\x3e\xe4\xed\x05\x50\x4d\x46\x71\xa8\x43\x57\x61\xae\xe0\x13\xf1\x1e\x13\x53\x54\xc6\xcc\x90\x33\x21\x0e\xea\x01\x78\xdd\xde\x00\xef\x45\x9a\x6d\xe7\x8c\x4e\x49\x6c\xbe\x55\x75\xee\xfb\xbe\x6a\xf7\xc3\x9d\x57\x26\x3a\xe2\x96\x63\xa6\x1b\x1e\x17\x48\x41\x99\x68\xe5\xf2\x4d\x37\xe6\x2e\xbf\x5d\x2c\x37\x92\x86\x8a\x51\x57\x22\x57\xbe\x16\x9e\x41\xe3\x69\xc2\x04\x29\x25\x4d\x39\x4f\x9c\x54\xdb\xe2\xf3\x58\xe4\x32\x6f\x0d\x3b\xd2\x69\x28\x8c\x4b\xfe\xfd\x8f\xc1\xa7\xa6\xf1\x3f\xfa\x80\xa0\xa4\x59\xea\xc0\xde\xcf\xf0\x81\xf5\x90\x97\xe8\x0b\x49\xa5\x32\x85\xc1\xb5\xc8\xad\xfa\x96\x3d\x92\x52\xa2\x98\x2d\x0b\xfc\x09\x39\x0e\x87\x17\xa8\xe7\xbe\x7c\x41\xa6\x8a\x21\x92\xd8\x44\xb0\x6d\x12\xfa\xde\x83\xd6\x65\x16\x66\x92\xf5\x34\x55\xc8\x4a\x32\xf9\x9e\x59\xa2\x11\x09\x3f\x7b\x9c\xb9\x62\x3e\xc9\x13\x23\x9d\xf0\xaf\x3a\x3f\x1e\x8b\x71\x19\xb1\xe4\x34\xc0\x8d\xfa\xb5\xce\x8f\x23\x07\x4e\xf2\x34\x40\x86\x84\xdb\xea\x24\x0a\xd8\x0c\x85\x27\xaf\x6e\x46\x92\x67\x31\x6e\x7a\xeb\x53\xf3\xca\x9b\x89\xe4\x91\x94\x5c\x84\x1a\x51\x79\x1f\xbc\x19\x04\x70\x71\xdb\x70\xeb\x7b\x2f\xc9\x37\xe9\x56\x21\x02\x2e\x86\xfc\x4f\x23\x1d\x73\xd9\x2d\x13\xda\x83\x89\x54\x71\xad\xda\x53\xca\x48\x60\x2d\x8f\xcf\x35\x0c\x85\x8b\x3c\xf9\xbf\x94\x12\x52\xce\x5c\xc1\xfa\x11\xa9\x0b\xdd\x21\x95\x50\x8c\x97\xfd\xf7\x04\x27\x98\x9d\x54\xde\xba\x22\xdd\xeb\x4b\x84\x4a\xa4\xb0\x91\x45\xe4\xaf\xbd\x70\x4c\xa5\xca\x32\xc7\x30\x74\x0b\x4d\x5b\x57\x67\xec\x84\xe6\xee\xf3\x38\x65\xb3\x93\x52\x01\x75\x72\x21\xf7\x55\xa5\x5e\x8c\xf2\xe0\xc8\xaf\x94\x10\x26\x38\xcc\x96\xf3\xd5\x1d\xa2\xae\xec\xef\x3a\x8b\xb0\xa0\xfa\x01\xce\x27\xb8\x0c\x2a\xfa\x67\x56\x01\x31\x6c\x56\xb6\xa6\xcf\xaa\x84\xbb\xdd\xf0\xab\x93\x12\x83\x49\xeb\x56\xe9\x59\x51\x6c\xf7\xe3\x82\x51\xd7\x4a\x87\x81\x65\x10\x7e\xa8\x4e\x0d\x2c\xd4\xd4\xd4\x56\x21\xa3\x8e\xf8\xf7\x47\x29\x0b\xd8\x70\x0d\xcf\xf5\xb4\x91\x20\x8e\x5c\x1a\x29\xf1\x26\x87\x09\x01\x0c\x92\x58\x97\xfe\xd4\xee\xab\x3a\x6f\xfb\xd2\x99\x7e\x65\x55\x84\x2b\xc4\x5d\xf5\x4e\x5e\x4f\x9c\xe9\x9a\x88\x18\x35\xb8\x1b\x4c\x8e\x1a\xd2\xe7\xab\x5f\x5b\x11\x6d\x82\x5b\x58\x04\x75\xe8\x26\xb7\x89\x3c\xf9\xe5\xcd\xd2\xb1\x4a\x15\x31\xe0\x46\xd8\x40\x9c\x0a\xde\x7c\xf7\x39\x22\x65\x2a\x21\x1c\x50\x6a\xbe\xcf\x8b\x2f\x30\x15\x2a\x0e\x32\x57\xf8\xfb\x0c\x79\x5d\x95\xf9\xe7\x4b\x5d\xe9\xfc\x3a\xa0\x4a\xc5\xb1\x32\x50\xe4\x53\x63\x80\x7e\x2b\x3d\xc9\xbd\x9f\x2e\x50\x61\x2a\xce\x32\x92\x0c\x19\x34\xe5\x10\xbd\xab\x92\x90\x45\x91\xad\x52\xcf\x79\x0b\xa3\x6a\x82\x30\xa5\x23\x9f\x5d\x25\x84\x68\x32\x80\x73\xd8\xd4\xcd\xfa\x79\x7b\x33\x79\xd6\x84\x52\x1c\x60\x8b\xbf\xea\x5c\xbe\x0d\xd6\x0f\x95\x50\x96\x32\x6f\x48\x42\x51\x1d\xa1\xbe\x66\x48\xaa\x44\x46\xe8\xaf\x2a\x38\x16\xd5\x79\xc2\x17\xa0\x68\x10\xa3\xb3\xd8\xed\x71\xb3\x52\x19\x22\x5b\x77\x2c\x4c\x23\xbb\xba\x88\xd3\xf9\x38\xd8\xc8\x55\xaa\x18\xb5\xe3\x15\xc3\xd9\x6b\xe3\xb2\x56\xf5\x74\xec\xb3\x20\x4c\xac\x9f\x3e\x90\xa2\xba\x05\xcd\x4f\x45\xbb\x91\x7b\x50\xa7\x2f\xa8\xfb\xa5\x62\x3a\x8e\x4c\x99\x67\xb9\xf8\x3c\x56\x1e\x06\xa9\x98\x4e\x31\xf0\xa4\xf3\xd7\xbd\x2f\xc4\x50\x4c\x73\x84\xee\x8a\x53\x5d\x6e\xeb\x53\x73\x85\x11\xd2\xb6\xcc\x02\x82\xc6\xd5\x9c\x37\xae\xd6\x4f\x65\x29\xa3\xdc\xc5\xe8\x8f\x53\xa5\x68\xa9\x32\xa6\x23\xbb\x08\xad\xa1\x39\x56\x65\x03\xff\x3a\x41\x7d\xde\x9e\x8f\xd3\x89\x98\x29\x03\x43\x6d\x4e\x62\x77\xe0\x6d\x9d\xcb\xaa\xe0\x57\xdd\x14\xc5\xa5\x46\x5a\x70\x84\x07\x6f\x86\x3e\xf8\x75\xeb\x4b\x71\x88\x11\xf2\xfc\xd7\x89\x97\x37\xbc\x1a\x8e\x08\x11\x45\xcc\x7e\xae\x45\x37\xa8\xc0\x40\x65\xee\xaa\x7a\x5e\x1d\x8e\x60\x4b\x86\xc7\x97\x13\x69\x88\x6e\x92\xa3\xb8\xe9\x4b\xa9\xbf\x4b\xca\x7d\x9b\x06\x57\x92\x9a\xdc\xe7\xfc\x69\xeb\xf6\x78\x25\x45\x88\x65\x4a\xb7\x8b\x3f\x16\x8f\xab\x97\xc5\x7a\xd7\x0c\xe3\xb8\x0a\x22\x69\x0a\xc5\x0c\x43\x9e\xc9\xe6\x7a\x11\xf8\x6e\x07\x88\x9c\xea\xeb\xa8\x5e\x65\xb4\x09\x28\x48\x43\xf4\x81\x91\x9a\x01\xd4\xb6\x67\xe2\xf5\xd7\xc9\x12\x80\x11\x07\xe8\x45\xc1\x94\x6d\xa9\x63\x23\x5a\x84\xc4\x78\x1b\xc7\xa7\x30\xe9\x3e\x9d\x1a\x0e\x90\xbb\xb5\x7f\x52\x2d\x25\x85\x41\x89\xdd\xe3\x54\x41\xe7\x22\x77\xe5\x4e\xd4\x02\x7d\x30\x04\x20\xff\xf3\xf4\xca\x95\x8f\x1a\x41\x40\x4d\x09\xc9\x7d\xfe\x3e\x09\xd0\x42\x90\x66\x1a\xbc\xf6\x97\xb1\x2b\xfd\x21\xd0\x56\xb1\x72\xc4\x05\xf4\x65\x00\xd2\x3f\x0c\x04\x9c\x62\x25\x07\x26\xe2\xab\xcf\xc1\x30\x83\x90\xa4\x68\xc3\xaf\x6c\xe1\xbf\xff\x3d\x0e\x31\x93\x3e\x88\x91\x42\x98\xf0\x24\x76\x84\x9f\xb9\x9c\x8d\x99\xe9\x26\x9c\x02\x40\x52\x23\x41\x72\xbb\x98\x2f\x9f\x66\x8f\xbb\xe5\xf3\xad\xe7\x66\x80\x28\x8d\x10\x54\xfc\x7b\x5e\xaa\x99\x1a\x25\x18\x21\xd2\x32\xa0\x8e\xd7\xa9\xf6\xdc\xd1\x12\xe2\x90\x23\xf3\xc0\x3d\xaf\x4f\x8a\xfb\x5f\xe3\x2c\x33\x35\xf8\xff\x39\x35\xc6\x67\xf7\xcf\x34\x0c\xd1\xba\xe6\x3c\x43\xc3\x68\x3d\x7b\x1a\xbd\x70\x22\x22\xa9\x7b\xcf\xf0\x01\x0a\x65\xae\x65\x8f\x53\x62\x72\x20\x26\xac\xf5\x37\x48\x89\x25\x50\x16\xa1\xa1\xd5\x42\xd3\xee\xcc\x3e\xfe\x3b\x9c\x77\xae\xb8\xef\xb9\x7a\xc8\xfd\x58\x86\x94\x32\x65\x95\x1d\x31\x48\x3e\x46\xc3\x40\x4a\x39\xfa\x40\xd5\x11\xca\x55\xa1\xe6\x35\x6f\xfb\xa1\x91\x82\x5f\xda\xd1\x1c\x1c\xc6\x39\x27\x43\x21\x0b\x8d\xaf\xfe\x58\x95\xaf\xf0\x9e\xb7\xa3\xb8\x25\xf0\x24\x40\x5a\x4c\xe9\x38\x14\x8d\x6e\x81\x1f\x01\x5c\x52\x74\x0c\xb6\xbc\x7c\x1b\xc7\x35\x41\xf0\xc4\x78\xa0\xd8\x3f\x3b\x0d\x93\x75\x14\x04\x57\x19\x33\x6a\x32\x28\x23\xe4\x7e\x56\x0c\xd7\xf9\x0f\x5e\x63\xad\xc3\x05\xf6\x60\x7c\x15\x19\x48\x57\xe0\x7c\x0b\x65\x75\xc8\xcb\x21\x93\xaf\x6b\x94\xea\xcc\x0a\xdb\x18\x0c\xe1\xc0\x41\xba\x08\x97\x80\x94\x12\xc3\x2f\xe6\xc9\x97\xf3\xd5\x55\x43\x03\xa4\xe2\x48\x0c\x62\x40\xcc\x3e\x45\x72\x09\x0d\xba\x06\x74\x03\x25\x0d\xf7\x6b\xb7\xe0\x6d\x4e\xc2\xfa\xb1\x57\xe3\x37\x00\x81\x32\x22\x69\xa6\x40\x68\x56\x14\xcb\x7f\x6d\x87\x21\x7e\xd7\x8e\x28\xe4\xb5\xdd\x6c\xb7\xeb\xef\x2a\xe2\xae\x17\x2b\x02\xc8\x34\x18\xb9\x12\x33\xe5\x2f\xad\x13\x8d\xa8\xbb\x3b\x03\x27\x44\x71\xca\x71\x4c\x43\x87\x24\x96\x06\x56\xfd\x4f\x2e\xdf\x5e\xaa\x56\xd7\xd5\x61\xf1\xde\x6d\xa2\x43\x0f\x5f\x87\x3c\x4e\x4c\xf7\xbe\x8e\x92\xa9\xa3\x4f\xa6\x43\x69\x77\x59\x2c\xed\x0a\x36\x50\x14\x3d\x49\xe3\xe8\xb9\x35\x49\x8d\xf2\x51\xcd\x4b\x55\x1d\x0c\x93\xf4\xb4\x4d\x44\x94\xb2\xeb\xe8\xd3\xf9\xbe\x2a\x7c\xe2\x54\x47\x51\xa6\x8d\xf6\x52\xad\xf2\x31\x9e\x5f\x47\x49\x8a\x23\xe1\xb0\x1b\x56\xb0\xeb\x48\x64\xe0\x59\x5a\x27\xba\x95\x6e\xb2\xeb\x48\x12\x1c\xff\xcd\x81\x7b\x3a\x2f\x1d\xa9\x00\xa3\xc0\xaa\xae\x8e\x3d\xa7\x48\x67\x08\xc5\xa9\x8f\xc0\x6d\xda\x5e\xc0\x5f\xea\x38\x33\xb1\xd3\xf6\x03\xf8\xdb\x2d\xcf\x8b\x5e\x85\x6d\xd2\x65\xb1\x64\xac\xaf\x5e\x77\x41\xd8\x49\x47\xd0\x8c\x85\x56\xcc\xf3\x1b\x9c\xce\xd7\xa6\xb2\xa6\x8a\xe2\x5e\x7e\x2a\x45\x85\x63\xc1\xba\x03\xf6\x70\x1a\x18\xd1\x61\xf3\x10\x58\xee\x3a\x7e\xca\x94\x98\xf7\x59\xcd\x46\x5d\x9d\x26\x86\x3f\xc1\x54\xb6\x60\xc0\xea\x5b\x3b\x44\xa7\xd4\x48\x00\x99\xaa\x07\x8c\x1b\xd4\x07\xb4\xda\x6d\x50\x7c\xf2\xe2\xa9\xd4\x98\x49\xcb\x65\xb5\xd8\x3e\x0c\x0d\xf3\x21\x28\x48\xa7\xca\x73\x3e\x3c\xe5\x25\xd4\x57\xc0\x8d\x9a\xc5\x11\x97\x8e\xed\x6f\xf4\x16\x99\x10\xda\x9a\xed\x16\x6f\x76\xc7\xe5\xc5\x7a\xa4\x33\x29\x13\x36\x00\x07\x8f\xa1\x9c\x93\x60\xf4\x70\xb7\xd2\x19\x70\x1c\x40\xeb\x7d\x5e\x3a\xd9\x0c\xa9\xb9\x30\x7c\x56\x9d\xdf\x8e\x99\xf8\xaa\x54\xeb\x53\x01\xd3\x59\x20\x02\x1e\x73\xb7\x01\x55\xa5\x29\x33\x5c\xfc\x17\xa3\x51\xee\x5a\x82\x48\xdc\x3e\x8f\x28\x54\xbf\xad\x26\x73\xce\x8f\x6f\x91\x1a\x6e\x21\x8c\x9f\x3d\x55\x65\xbb\xc7\x7e\x74\xe0\x87\x6f\xa3\x8c\x5a\xa4\x26\xff\xbe\x85\xa6\x9d\x20\x5f\xb5\x8c\x13\xc4\x5a\x70\x74\x71\x37\xf9\x6b\xf9\x63\x52\x18\xad\x65\xcc\x5d\x62\x7c\xcc\xce\xa3\x25\x23\xa0\x6c\xc5\xa7\xdc\x43\xaf\x34\x21\xb5\x92\xc4\x50\x8d\xa1\x82\x6b\x33\x06\x93\x6b\x48\xb2\x38\x1d\x21\x69\x5c\x59\xca\x40\x7c\x49\x6a\x50\x5c\x81\x07\x17\x6c\x3d\x4c\xc0\x1d\xd7\x54\x23\xe9\xba\xe9\xbd\x55\x2f\xc7\x2d\xb5\x66\x04\xc1\x0c\xd2\x4b\x2a\x20\xbf\x27\x78\x25\x59\xa9\x35\x37\x2a\x61\x46\x18\xbd\x9d\x06\x8c\xb4\x56\x0c\x31\x96\x06\x1d\x7d\x2d\x1e\xa4\xb5\xa6\xb6\x5e\xc4\x70\x53\xed\x6b\x80\x87\xaa\x7d\xa8\x4e\xf5\xf0\x49\x55\x10\x86\x1c\xbb\xd9\x20\xc3\x9a\xdd\x3e\x6f\xaa\x09\xd7\xb9\x0a\xc2\xc8\xa8\x3b\x1c\xf2\xaf\xe1\xb1\x57\x10\x43\x2a\x08\x55\x48\xba\x2d\xeb\xcf\x21\x2e\x41\x05\x84\x04\xa6\x0c\x16\xf1\x13\x9b\xd9\xe3\x62\xf7\xb2\x5e\xfe\xe1\x69\xc7\x55\x40\x32\x8d\x8e\x1a\x02\xef\xfe\xfa\xf1\xb2\x5c\x6c\x1c\x43\xbe\xf2\x6d\x78\x82\x30\xec\x9d\x99\xa4\xed\x1d\xc0\x4c\x34\x93\x47\x8f\x54\x84\xc1\xf7\x07\x8c\xbc\x19\xcf\xe7\xef\x00\x48\x54\x10\x69\xce\x52\xe7\x0b\x6a\x98\x0a\x65\xa8\x20\xd6\x09\x6e\x94\x87\x16\xa3\x11\xee\xb1\x92\x20\xc4\x15\xe6\x00\x2a\xef\x63\xa4\x2a\x48\x88\x88\xfc\xf5\x0c\xf0\xf8\x8c\x71\xe9\xc9\x13\x27\x44\x63\xd8\xa6\x45\x8d\xa5\xb6\xd9\x40\x6b\x19\x60\xfd\x95\x24\x89\x95\x65\x46\xfa\x99\xab\x76\xdf\x4d\x9b\x2b\x16\x7e\xd7\x12\x74\xec\xb5\xc8\x5e\xc1\xe0\x6a\x06\x2b\x9d\x0a\x12\xc5\x53\xe8\xa7\xca\xb0\xf2\x42\x05\x34\x14\xd4\xa8\xd1\xf0\x76\x7f\xcb\x5b\xbe\xe3\x91\x3f\x16\x33\xdc\x01\x5c\x55\xf5\x42\x9d\xf0\xf3\x7c\x23\x08\xdd\x9d\x94\x51\x1b\x14\xc1\x26\x37\xe7\xcd\x3e\x3f\x4e\x92\xb6\x2a\xa0\x99\x44\x71\x4c\x6b\x1e\xaf\xb9\x04\x5b\xf3\x74\xfd\x5b\x51\x61\xa4\xb8\x25\x14\x20\x26\xe4\x53\x2a\xa0\x0a\x90\x59\x7b\xcf\xdf\x7b\x03\xad\xb9\x80\xa0\x5d\xc3\xb2\xa8\x20\xa5\x19\x0a\x5f\x39\x66\xcd\x70\x37\x7b\xea\xd5\x1d\x54\x90\x66\x86\xf3\x7b\x97\x37\x4f\x58\x21\xf2\xe2\xd3\x11\xd7\x9f\x35\x85\x48\x99\xa8\xca\xe7\x68\x52\xa4\x9a\x64\xb6\x28\x79\xc1\xdb\x1e\xc2\xa0\x02\x16\x2a\xcc\xc0\xfd\x0f\xea\xaa\xb3\xa0\xcd\xba\xc0\xc7\x7e\xd6\x35\xbb\x58\x05\x8c\x08\x24\xc1\x30\xa1\x87\x63\x0d\xbc\xdb\xab\xb1\x54\xcf\x5f\x3d\x0a\x31\xd9\x7d\xf3\xfc\x3c\x7a\x1e\x26\xb8\xea\x65\xad\xe4\x79\x5b\xa1\x53\x3e\x9a\xdf\x0c\x18\x86\xa6\x5d\x44\x6c\xbe\xe7\x45\x01\xe5\x2b\x86\xc6\x5e\x78\xd3\xce\x4f\x4d\x5b\xa9\x4b\x66\x9f\x2b\x8c\x9b\x13\x4f\x51\x05\x19\x10\x9c\xba\x26\x79\x35\xb7\x8f\xf1\xad\x3d\xa0\x02\x9e\x31\x24\x91\x10\xdd\x2b\x5a\xad\x98\x5b\x03\x86\xfb\x6d\x84\xac\x19\xa4\x5b\x54\x20\x12\x40\x4e\xdb\x6e\x25\xc7\x62\xd8\xf1\x22\x29\x79\x48\xb8\x07\x3e\xde\xf0\xbe\xf3\xa4\x64\xae\x14\xe4\x0f\xa8\x07\x75\x45\x2a\x50\xa0\x31\x90\xbb\xc9\x0f\xc7\x02\x9c\xb5\x36\xea\x62\x48\x24\xae\x83\x98\xd6\x1a\x33\x4e\x5f\x7f\x3b\x90\x02\xc1\x7f\x9b\x6a\xcf\x73\xd1\x3b\xec\x2a\xd0\x61\x84\xb5\x6e\xb7\x35\xff\x30\x08\xd7\xe1\x15\xfe\xdf\x61\xb5\xdd\x15\x93\xd4\x06\xf5\x66\x85\xab\x91\xff\xa2\x29\xe1\x46\x5b\x1b\x77\xfd\x5b\xd0\x50\xaa\xbb\x89\xa7\xa7\x02\xcd\x0c\xa1\xaf\xd9\x34\x67\xea\x1d\xea\xbc\x99\x6c\x6e\x2a\x0c\x88\x4e\x7b\xf6\x59\xb3\x75\x1a\x5c\xb6\x6f\x41\x8d\x6b\x78\x2a\x73\x04\x2c\x5b\xd3\x7b\xb8\xaa\x85\x61\x12\x28\x13\x24\x52\xae\x96\xa4\xdb\xc4\x97\xe5\xe4\x6e\x61\x67\x89\x62\x35\x49\x5d\x9f\xfb\x5a\x57\x15\x86\xda\xa8\x24\xef\xba\xa1\x3d\xfb\xe0\xb5\xea\x53\xf3\x2a\x24\xa1\xc8\x42\x87\x9b\xf8\x9c\xf3\x63\x18\xfc\xe9\x8f\x45\x26\x6f\x6b\x88\x4e\x4c\x8e\xe3\x92\x07\x4d\x85\x44\x8b\x44\x8c\x71\x33\xce\x1f\xf5\x76\xb6\x0a\xe3\x94\xa1\x93\xb1\x43\xb9\xe6\x5b\x10\xed\x54\xbc\x7d\xfc\x2d\xc2\x58\x10\x0c\x64\x58\xc3\x73\x18\x19\x53\x61\x42\x39\x46\x13\x1c\xb8\xf5\x65\xbd\xd8\xde\x2e\xfc\x51\x4e\x31\xec\xe8\x7d\xca\x6f\xd6\x97\xc9\x5d\x93\xce\x11\x1e\x04\xc4\x86\xd4\x16\x2a\x4c\x94\xc1\xe8\xdf\x60\x36\xd9\x33\x6d\xa9\x30\xd1\xc4\x62\x0e\xfe\x03\xb2\xbd\xa6\xe1\xfc\x85\xd0\xb5\x0a\x69\xa0\x8d\x56\x80\x31\xf9\x2d\xd7\xbe\xfa\x46\x38\x47\x85\x34\x14\xd2\x26\x31\x54\x35\x0e\xa1\xab\x90\xd2\xcc\x64\x37\x8d\xc7\x34\x2b\xb1\xb0\xf1\xcb\xf7\x1f\x2c\x1f\x21\xd5\x29\x1a\xcb\xbb\x9d\xdb\x0c\xbb\xf5\xef\x4b\x42\xc1\x91\x8d\x14\x52\xcd\xe3\x70\xb0\x8f\xda\x1a\xc6\xc9\xd3\xa5\xa1\x0e\x60\x20\x82\x65\x15\x43\x2d\x50\x76\xfc\x9a\x29\xd7\xe8\x5b\x0d\xbd\x9b\xce\x40\xfa\x85\xd2\xbb\x0a\x59\xc8\xd1\x36\xbe\xdb\xfe\xf1\x65\xd1\xd0\xb5\xa0\x81\x0a\x19\x31\x45\x94\xab\x1a\xca\xc1\xb2\x14\x32\x16\x83\x0d\xa8\x8f\x56\x25\x77\x38\x33\x75\x4d\x08\x3e\xbb\x2b\xf2\xa3\xe1\x05\x1d\x2e\x92\x21\x93\x46\xda\xf6\x65\xb3\x1c\xff\xae\x8c\x82\xc5\x6c\xbb\x5d\xef\xb6\xeb\xd9\xed\xec\xe6\xd1\x0f\xe5\x2c\x30\xec\x6b\xae\x53\x97\xb7\x9e\xe2\xea\x0b\xd3\x24\xcc\xc2\x54\x24\x63\x78\xcc\x73\x55\x22\xbe\xee\x11\x35\x4f\xfd\xb5\xa5\xa9\xb8\x41\x8e\xed\xce\x24\xb8\xad\xf9\x6b\xe5\x9f\x8b\x07\x0a\xf9\x1c\x37\xfb\xea\xa3\xe7\x84\x55\x21\xd7\x41\xe8\x24\x7a\x2f\xe8\x5f\x54\x28\x08\x41\x97\x01\x13\x1b\x97\xa4\xd0\x2a\x54\x69\x88\xde\xce\xf3\xd0\x29\x1e\x8d\x24\xc5\x33\x74\x5a\x0d\x53\x4a\x37\x04\x9f\xab\x72\x5a\x19\x68\xdb\x42\x68\x92\xe9\xc6\xc0\xfa\x25\x8b\xbc\x0a\x81\x84\x38\xa8\x90\x2a\xf2\xaa\xbe\x8e\x0a\x81\x19\xea\x64\xd7\xeb\x9d\x57\xf6\x55\x77\x03\x8b\x32\xe9\x07\xb4\x59\x45\x27\x6f\x0c\x3c\xc2\xd0\xb6\x9d\x91\xea\x0a\xc9\x60\xd7\x48\xa4\xca\x99\xd5\x48\x06\x7d\xb6\x3b\xb1\x7b\x2a\x1d\x18\xe6\xc4\xed\xbe\xae\x4a\x78\xe2\x6f\x17\x7b\x8e\x8e\x0d\xbc\xe8\x60\x95\xa0\x4c\x8a\x6d\x14\xd8\x52\x24\x08\xcd\xcb\x21\xd0\x6c\xf7\xb2\x5e\xa0\xdf\x82\x83\xc0\x35\x09\x63\x89\xb6\xe2\xd3\xcd\x26\x47\x9a\x6a\x3f\x11\x48\xa8\x29\xd6\x6e\x6c\x0e\xbc\x6e\x11\xa9\xbd\x69\x79\xa9\x78\xad\xfe\x9e\x40\x87\x22\x24\x16\x18\x38\x37\xcc\x3f\xb3\x9b\xe5\xca\x5d\x3b\xa2\x69\xd0\x7f\xf7\x27\x38\x54\xf5\xd9\xe0\x69\x47\xaf\x49\x22\x16\x22\x3f\xb0\xed\xc0\x59\xa9\x46\x72\x42\x8a\x44\x42\x07\xc8\x34\x56\xbe\xd6\xd0\xf0\xfa\xae\x2a\x55\xe5\x3b\x20\x92\x09\x02\x5d\x1b\x36\x2c\x94\xea\x7e\x57\x3c\x32\x99\xb0\x71\x7d\xa7\x3d\x1e\x27\x06\x0d\xdb\x59\x64\x3f\x50\x19\xe7\x9e\x1f\x44\xd1\x99\xca\xbc\x6e\xcf\x77\x55\x7d\x33\x96\x02\x18\xec\x7f\x24\x49\x03\x43\xef\x05\x7a\x20\xbc\x37\xb6\xd1\x49\x92\x19\x87\xa8\x81\xf6\x17\x16\x14\x49\x04\x0f\x95\xc3\x84\xcb\xbd\x91\x1b\xbb\x56\xf9\xa6\x08\xb5\x8c\xf9\xdd\x13\x2f\xcb\x47\xde\xb4\x9b\xfc\xb3\x05\xac\x74\xfd\x9f\xef\xb3\x34\x01\x44\xdf\xf7\x59\xf6\x45\xf7\x70\x83\xf8\xff\xdf\x72\x37\x49\x9a\x12\x2f\x5c\x67\x50\xb8\x8d\xad\xaf\x1f\x0f\x78\x92\x32\x1f\x12\xed\x9c\xda\x27\x3e\x71\x20\x49\xca\x4d\x56\xbd\x3d\xd5\xe5\xaa\xbc\x3b\xd5\x25\x97\x0e\xa4\xfa\x7f\x89\xb1\xb8\x43\x62\xcd\x10\xc2\x80\x05\x8e\x98\xb9\x6c\x4e\xf5\xb0\x3c\x60\xf2\x88\x99\x5d\xd9\x8c\x45\xf8\x05\x85\xdf\x2f\x5e\x33\x4b\x00\xc1\x53\x92\x17\x85\x4d\x10\xcf\x06\x98\x63\x45\x32\x16\xa0\xfb\xbc\x5d\xcc\x9e\x76\x8f\xab\xf9\xef\xbb\xdb\x1f\x6b\xbb\xd2\xcc\xd6\xdb\xd0\xb5\xe3\xa9\x51\x21\x30\x83\xde\x01\x97\x7f\xf1\x10\xa3\x6f\x61\x33\xf5\x8a\x70\x91\xa1\xad\x67\xb1\x66\x77\x70\xe0\x9d\xc1\xde\xc8\x81\xe9\x44\x84\x36\xf9\x24\xab\xf9\x6f\x90\x35\x37\x03\x16\x87\x2f\x5e\x58\x26\x21\x22\xf6\xf0\x62\xf5\xf9\xda\x86\x4d\xa4\x30\x6a\x89\x3c\xaf\xf9\x57\x45\x96\x93\xcb\xaa\x18\x30\x7c\xde\x0d\x4e\xbc\x66\x0e\xf5\xac\x54\x8f\x95\x7c\x7b\xb1\x32\x17\xe1\x55\x24\x85\x22\x2a\x21\x98\xad\xbf\xbb\xfb\xb1\x78\xf4\x65\x5a\xbf\xd6\xc7\xfa\xaa\x2f\x7f\xf5\xe7\xe4\xc1\x55\xc8\x33\x87\xac\xb7\x11\xec\xbb\xaa\x5e\x95\x30\x06\x94\xfc\x62\x1c\x69\x6d\x20\x3f\xf7\x50\xe6\x55\x5f\xf0\xf9\xf5\xfa\x19\x05\xa1\xc6\x15\xf8\x69\x79\xeb\x56\xce\x28\x88\x28\x7e\x9c\xa7\xd9\xfd\xf3\x72\xfb\xc3\x9b\xc2\x51\xc0\x64\xdc\x6b\x8e\xee\x73\xa5\x6c\x4c\x63\x3c\x19\xa3\x20\x33\xfa\xe5\x08\x28\x02\x75\x3d\x26\xaf\xa2\xa0\x73\xef\x7d\x94\x3a\x7f\xa9\xaa\x62\xa1\xf2\x76\x47\xdd\xfd\x42\x42\x99\x95\xec\x59\x96\xf3\xbc\x96\xa7\x62\x00\x3d\x51\x11\x09\x04\x86\xfc\x90\xb1\xec\x74\x58\x74\x43\x69\xbb\xaf\xa1\xd9\x7b\x9e\x77\x15\x11\x6e\x14\x4b\x35\xd2\x27\x21\xed\xd3\xad\x3f\xa6\x64\xec\x03\x01\x8b\x62\x5c\xd1\x60\xdb\x44\x4c\x28\x9b\x7f\x9f\xcf\x1f\x4c\xcd\x17\x19\xd5\x7c\xa9\x28\xca\x34\xc2\x9c\x76\x55\xa1\x2c\x4a\xcf\x1d\x11\x31\x11\xbe\xcb\x8c\x37\x36\xb9\xbe\x4e\xf0\xf9\xcc\x14\x7a\xae\x2c\x33\xab\xb5\x0a\xc7\x2e\x79\x14\xf3\x34\x75\xb4\xa2\xbc\x75\x59\x72\x15\x25\x22\x54\xd6\xbd\x5a\x7c\xb6\x35\xbf\xe5\x67\x7f\x8c\x86\xd4\xa9\x8e\x3e\x55\x0a\x8a\xc9\xfd\x29\x98\xb0\x3c\x57\xca\x94\x10\x5c\x2d\x5f\x52\x51\xca\x33\xbc\xc5\xe3\xdc\xed\xec\x11\x0b\x13\xea\x65\xd6\x51\xf4\x77\x59\xb6\xf0\x0a\xf5\xf6\x7c\x74\x3a\x52\x2e\x70\x11\x65\x19\x88\xd4\xd2\xe6\xcf\x96\xeb\xdb\xf5\xea\x65\xf7\xc7\xea\xf1\xc7\x93\x1f\x5e\x22\xd1\xce\x16\x44\x0f\xf6\xbc\xbc\x9d\x3c\xab\x4c\x41\x26\x2e\xa1\x89\xcb\xe4\x65\x0a\x42\x45\x2a\x30\x4a\xe9\x2a\x6f\xf8\x6b\xed\xc8\x21\x54\xa4\x20\xc5\xb4\xa2\x00\x1b\xdf\xee\x97\x76\xdb\x02\xc2\xd8\xc8\x3f\x58\x6e\xdf\x4b\xb2\x49\xdf\x90\x5b\xa9\xfd\x1b\x18\x11\x10\xab\x08\xe2\x04\xc7\xc2\x2d\x6f\xb7\xd5\x6d\x5b\xcb\x61\xea\xd5\xb6\xd1\x41\x80\x7c\x42\x77\xd6\xe3\x54\xdb\xfc\xab\x28\x5e\xa4\x43\x82\x3c\x8d\xba\xe0\xaf\xb3\x52\xb9\x53\xc6\xef\x1c\x07\x71\x82\x0e\xee\xe2\xcf\xd5\xc6\x4d\xe4\x38\x00\x83\xd1\xc3\xc2\xa3\xdb\xaa\x1c\x4e\x9e\x38\xd0\x11\x16\xc3\xbc\x3c\xcc\x36\x8b\xdd\xea\xc5\x65\xf7\x55\x1c\xa6\x01\x45\xae\xc6\xcf\x63\x6e\x78\xac\x86\xa1\xb1\x38\xe4\x51\x5f\xa7\xe6\x76\xe5\xc5\x67\x0b\xa5\x02\x35\xdf\x9f\xca\xb7\xdb\x91\xdc\xbe\x8a\x49\x42\x50\xd5\xea\x90\x97\x50\x3f\x9f\x0e\xee\xf7\x28\x89\xc9\xd0\xc9\xbb\xb0\x8a\xc7\x6b\x74\x1c\x89\x18\x61\x3e\xba\x06\xf8\x1b\x0c\x54\x2a\x8e\xc3\x0c\x69\xde\x8b\xbc\x69\xb7\xd5\x31\x97\x6e\x52\xc4\x31\xcf\x10\xc1\xf0\xfb\x49\x55\x8d\x15\xe6\x37\xa0\x95\x4a\xbe\x9d\xbe\x7a\x80\x24\xa6\xbc\xcf\x7e\x6f\x1b\xfe\x98\x97\x6f\xa3\xa5\x20\xa6\x51\x86\x3b\x70\x09\x1f\xf3\x3d\x2f\x4b\x28\xbe\xac\xaf\xb8\x96\xd0\x1a\x4c\xf6\x98\xa6\x3a\x88\x07\xf4\x67\xbf\xda\x04\xc7\x27\x4b\xa3\x36\x5f\x5b\x3d\xeb\xd0\xd1\xd0\xd9\xe3\x69\x68\xf4\x32\xca\xea\x0e\xa0\x41\xa8\x8e\x3b\xc2\x45\x4a\x2c\x97\xc7\x34\x59\xac\xe2\x54\x8b\x34\x1c\x02\x00\x2e\x8e\x4b\xac\xbb\x37\xb9\xae\x63\xed\xa2\x43\x31\xcb\x22\xc3\xc9\x8f\x32\xdb\xbc\xc5\x3a\x91\x5e\xfa\xed\x1a\x31\x8b\x8a\x19\x07\xc4\x1e\x0a\x68\xda\x5d\x73\x12\x87\xbc\xe9\x9c\x98\x1d\x97\xf2\x54\x73\x79\x76\x17\xcf\x88\x4e\x62\xc7\x92\x7b\x2e\x2e\x29\xa0\x47\xdf\x28\x8b\x0c\x76\x78\xb3\x7a\x9c\xad\xe7\x0f\xb3\xa5\x8d\xf1\x7e\x55\x97\xd8\x0f\xa8\x8c\x19\xbe\x27\x67\x14\xb9\xf9\xeb\x9f\x83\x85\xe8\x8e\x98\x68\xde\x84\x3b\xc5\xb6\xe1\x51\x0a\x3d\x4f\xe1\xb0\xaa\x22\xfc\x32\xc9\x6c\x4f\x15\x11\xe3\x86\xf1\x44\xd7\x1c\xd3\x24\x5b\xcb\x7e\x3c\x69\xc7\x01\x3f\xe1\xce\x25\x51\xc9\xf5\x45\x3d\x16\x90\x62\x5d\x16\x58\x59\xb6\xcd\xc3\x2c\xf2\x15\x1e\x78\x4d\x13\x19\xf6\x27\x48\x16\x00\xf7\x29\xec\x67\x7e\x80\xe6\xc8\x25\x18\x56\x80\x6b\xfc\x90\x2a\x96\x40\x23\xbb\x37\xb9\x6e\x52\x59\x90\xda\xa2\x9b\x67\x53\xb3\xd1\x74\xde\x9b\x1c\xda\x96\x31\x00\x65\x46\xa6\xa9\x54\x37\x95\x18\x40\xc8\x55\xac\x55\x80\xf5\x04\x79\xf3\x7c\xea\xc3\x51\x6e\xaf\x89\x75\xb7\x6d\x77\x6b\xdb\x90\x11\x40\xc5\x1a\x62\xa4\x35\xc1\xdb\x40\xbd\xf3\xd7\x4b\x82\x44\xe0\x0a\x55\xf3\x52\xbd\x42\xf9\x0c\x1f\x0f\xdc\x25\x4e\x55\x12\x70\x82\x41\x10\xa3\xe3\x3e\x2b\x8a\x1b\x2e\xdf\x5e\xeb\xce\x94\x58\x1e\xf8\xab\xcb\x0f\xab\x24\x00\x6d\x42\xe2\xf9\x01\x0a\x64\x5d\x33\xcb\x94\x2b\xec\xf2\x57\x0c\x03\x8e\x4b\x6c\x75\xaa\x3b\x93\xbe\xff\xd9\x44\xc7\xad\x39\x6d\x14\xe4\x26\x33\x30\x21\x61\x80\xd8\x9a\x66\x5f\x7d\xa0\x26\xc2\xf4\x38\x11\x58\xb6\x73\xc1\xca\x6d\x33\xe0\xdd\x90\xbc\xbd\x8a\xa6\x51\x09\xd1\x99\x32\xe1\x9e\x23\xea\x12\xaf\xbb\xf3\xae\x6f\x4c\x49\x14\x79\x20\xbb\x61\x67\xed\x66\x02\x7a\x67\x55\x3d\x00\xb1\xab\x24\x62\x84\xc6\x0e\x36\x80\xec\x79\xd7\xb0\x2a\x2a\x89\x83\x28\x34\x71\xcf\xf7\xea\x0d\x56\x35\x97\x5f\xe0\x63\x55\x12\x47\x11\xd2\x14\x4e\x69\x5a\x87\x2d\x4c\x6d\x02\x6e\x5d\xa2\xff\xd2\x71\x0c\x0e\xbe\xbb\x69\xb9\x7c\xdb\x5c\xec\xa5\x49\x0c\x32\x1b\xaa\xa1\xcc\x4a\xe5\x68\x9f\x0d\x0d\xf4\x57\xac\x52\xf6\x7c\xca\x64\x6c\xd9\x88\xb7\x15\xd2\xe3\x4e\x6e\x40\x95\x21\xe2\x6f\xbc\x57\xfb\xbd\xbb\x94\xa4\x2c\x65\xfd\xa2\x8b\x49\xcb\x9b\x42\x56\x6f\x93\xeb\xa6\x82\x08\xaf\x36\x69\xbf\x89\xa3\x62\x75\x4d\x14\x80\x5b\x28\x8d\xfa\xf5\xf7\xf2\xb3\x2a\x49\x81\x38\xd7\x64\xf6\x5a\x95\x4b\x65\x82\x28\xe3\x4f\xc7\x82\x08\x89\xcc\xee\xc9\x8f\xbb\x69\x19\x6f\x77\x54\x20\x49\xda\xdd\xea\xc7\xf3\xed\x62\xbd\xe9\x75\xf5\x54\xc2\x62\x42\xe9\x38\xeb\x7d\xbf\x78\x5e\xac\x67\x8f\xbb\xc8\xb7\xa1\x81\x8a\x2d\xcf\x63\x3d\xe2\x7f\x53\x09\xb3\xc0\x1e\x97\x65\xc1\x1b\x5f\x1f\x5f\x59\x16\x22\x1f\xd4\x11\xea\xa6\xb3\xed\xbc\x24\xde\xa4\x1b\x33\x19\x39\x6d\xf5\x1f\x77\xdb\xc9\x45\x44\xa0\xd1\xe6\xf5\x81\x69\xcc\xe5\xe5\xfc\x22\x27\xe0\xda\x67\x31\xb2\x0a\x55\x65\x81\x62\x7d\x08\x2b\xd9\xe4\xaf\x25\x6f\x4f\xb5\x1d\x49\xb6\xa9\x0c\x29\x9a\x43\x8f\xd5\xeb\xb2\x6c\xba\x37\xbd\xfe\x45\x24\x37\x5e\xee\xbf\xf2\xaa\x7c\xbd\xf9\xb5\x93\x97\x28\x62\xbc\x4b\x1c\xf3\x27\x81\x30\xd5\xeb\x4f\xab\x52\x8a\xc0\x87\xce\x48\xff\xb9\xdc\x3e\xdc\xae\x67\x3f\x77\x2f\xf3\xed\xee\x76\xb6\x7c\xfc\xcb\x7d\x0f\xc5\x03\x14\xf2\x32\x52\xd3\xbc\x9f\x5c\x10\x46\xc8\x3a\xb5\xeb\x0b\x5d\x27\x49\xec\x04\xa2\x04\x01\x04\x25\x80\x6a\x30\xc2\x3d\xfe\x9e\x90\x44\x18\xe9\x30\x11\x8c\x25\x9e\x3a\x29\x3c\x73\x2d\x53\x93\x66\x55\x0e\x80\x3f\xcc\x75\x25\x3a\x32\xc4\x61\x0d\xb4\x6d\x01\x37\x93\xda\x00\x95\x68\x4a\x11\x06\x5a\xa1\x30\xbe\x03\x81\x8f\x10\xc6\x8a\x06\x2c\xb6\xe5\x2b\xa5\xba\x79\x59\x6c\x56\x5f\xd7\x6d\x28\x1a\x08\xed\x80\xa5\x2f\x35\x74\xce\x28\x6a\x28\xd5\x95\xb3\x77\x69\x00\x14\x31\xb9\x6d\x7d\x6a\x26\x81\x54\x1a\x66\xb6\x00\xae\xad\x6a\x50\xc3\xf5\x93\x92\x18\xb0\xec\x6d\x93\x2b\xf8\x67\x35\x4c\x70\x52\xc2\x8d\xe4\xcf\x37\x3c\x54\xd7\xa7\x35\x8d\x34\x8f\x1c\xa7\x5d\xfe\x09\x85\x81\x06\x5a\x3b\xe4\x1f\xc3\x50\x26\x8d\x03\x8a\x18\x0d\xc4\x5e\x40\xbb\x74\xbb\x18\x8d\xa3\x08\x13\x55\xb9\xac\x6e\x81\xab\x9e\x0d\x50\xd1\x98\x66\xb1\x37\x2c\x14\x14\x2d\xf7\x47\x78\x8c\xb6\x09\x32\xde\x20\xda\x68\xf6\xda\xdb\xa5\x34\xe6\x02\xd9\x15\x5a\xfe\x06\x66\x78\x8c\xbe\x1b\x4d\x02\x81\xb0\x05\xa4\x2f\xdc\xa5\xbb\xe3\xc8\xac\xa5\x94\x50\xbc\x6f\x73\x04\x99\xeb\xf3\xdc\xe3\x89\x26\x97\x49\x43\x53\x9b\xb7\xe7\x0d\x42\x13\xd0\xac\xbc\xe8\xba\xf1\x68\x48\x13\xe3\xa9\xbf\xbe\x1f\xa1\xbb\xef\x0e\x7c\x18\x98\x66\x01\xc3\x52\xdb\x43\xee\xc8\x71\x6f\x86\x3a\x5b\x13\x52\x49\x45\x33\x2d\xb9\x65\x36\xd8\x9c\x8e\xc7\xaa\x76\x18\x91\xc9\x73\x72\x8b\x9b\x69\x90\xf4\x68\x77\x34\x26\xc1\x8e\x8f\x07\x0f\x27\x86\x0d\x9e\x37\x0d\xb4\xcb\x5b\xff\x73\x6c\x44\x8b\x4a\xf8\x6c\x2f\xf4\xf8\x14\xe5\x94\x63\x80\x58\x81\x44\xc2\x77\x83\xc6\x73\x07\x53\xea\x18\x22\xe6\xd5\xe9\x58\x95\xd7\x9e\x4e\xc8\x04\x9d\x8c\x5c\x41\xd9\xe6\x3a\x87\x7a\x5b\xcd\xab\xaa\x56\x68\xe0\x8f\x67\x3e\x95\x01\x60\xc1\x47\xd7\x45\x23\x2d\x8c\xc9\xc8\x94\x24\x48\xbd\x78\x97\xe9\xcb\xbb\xaa\xc6\xe2\xe6\x53\xb7\x50\x2c\xe7\x2b\xb7\x33\x50\xc9\x41\x60\x90\xb2\xaa\x8a\x39\x3f\xfe\xd8\xf8\x77\x57\xd4\x52\xce\x18\xda\x98\x6d\xb5\x01\x07\x35\x55\x54\xa5\xc6\x84\x92\x55\x59\x82\x6c\x9f\x2a\x2c\xc5\x71\x07\xa5\x40\xd6\x19\x63\xed\xb9\x8a\x97\xc9\xcb\x00\x49\x11\x8b\x23\x0b\xe0\xb5\xaf\x7c\x5c\x1d\xa1\xec\x7a\xd8\xf7\x22\xb0\x28\xb4\x7c\x68\x4e\xef\xc8\x30\xa9\x8f\xfb\x11\xb8\x4a\x93\x3e\xe3\x7b\x2d\x2e\xfb\x55\x05\xbb\xa2\x20\x04\x82\x0d\xdb\x3d\xff\xd8\x54\x87\xa9\x67\x3c\x7e\x6e\x1d\x31\xe4\xf2\x32\x40\x3f\x43\x29\xee\xcd\x52\xaa\x39\x45\x03\xe2\xee\xf9\xf7\xd5\x66\x68\x3a\x53\x2d\x28\x96\x94\xce\x7f\x6c\xb6\xab\xa7\xdd\x62\x3d\x27\xc1\xee\x69\xf9\xbc\xdd\x6d\x16\xeb\x3f\x96\xf3\xc5\xee\x79\xe6\x23\x39\x69\x10\x6a\x34\xbe\x16\x7e\x82\xa4\x41\x1c\xe2\x10\xfd\x50\x36\x69\xe1\x7e\x4f\x40\x88\x81\xb1\x75\xfd\xb9\xd3\x40\xa7\x28\xde\x97\x37\x4e\x14\x70\xdc\x85\x69\x98\x2a\x9c\x50\xb3\x42\xf0\xda\x6f\x03\x69\x28\x00\x29\x0f\x5c\x1d\xc1\x17\xea\xf3\xb6\x35\x21\x21\x9a\xbf\x0a\x2b\x60\xb1\xbc\x6b\x03\xaf\x9d\xc1\xbc\x29\x78\xb3\x1f\xc1\x06\x52\xa2\x78\x6c\xb5\xba\x7c\xe8\xf0\xfa\xc3\x47\x41\x8c\x29\x48\x2b\x8f\x69\x17\xea\x6e\x50\x8e\xa2\xa7\xd3\xb3\xa8\xe6\xa6\x2a\xc6\x29\xb5\x12\x77\x6b\x1a\x71\x57\x69\xf3\x08\x5c\x41\x2d\x2a\x4f\x4a\xac\xd2\x34\xd4\xa9\x31\x39\x60\x77\xa8\x4a\x47\x43\xa1\xd2\x34\x92\x18\xca\xb4\xbc\x3d\xbb\x1e\x73\x90\xa6\x92\x2b\x3a\xea\x5f\xd4\x63\xfe\x85\xda\xa2\x3b\x19\xc2\x38\xee\x99\x13\x0b\x2e\xdf\x8a\xbc\x41\x49\xcb\xc9\x57\x62\xd4\x80\x71\x45\x5e\x14\x13\x78\xb4\x4a\x19\x33\xcc\x44\x3b\x75\x05\x6a\x71\x51\x32\xa2\x52\xc6\x63\xcc\xbc\x60\xd0\xb1\xe6\x6d\xfe\x0e\x26\x47\xf9\x2d\x68\x68\xf2\xec\x0c\x62\x0c\xc5\x79\x66\xca\x6d\x5e\x14\x7f\xbe\xcc\x10\xc5\xef\x47\x6f\x46\x8c\xc3\x8a\xf6\xa9\x4b\xbd\xf8\x83\x94\x98\x0c\x33\x46\x7e\x31\xc2\xec\xf9\x42\x54\xca\x03\x8d\x8b\xf0\xe2\x70\x6c\xf3\xee\x9b\x5f\x29\x55\x54\x29\x27\xd4\x51\x7a\x5a\xc1\x8f\xab\x36\x6c\xca\xa3\x14\x97\xb5\xd5\xdc\x06\xad\xbe\xb7\xde\x53\x2e\x42\x34\xb7\x66\x08\x1c\x6a\xee\x9f\x56\xab\xe7\xc9\x25\x45\x94\xda\x12\xa2\x56\x0f\x20\xe9\xdf\xa7\x1a\x52\x21\x8d\x3a\xe8\x7a\xd1\x2d\x00\x8b\x5b\x27\x85\x7a\xb7\x5a\xef\xbc\x9d\x3f\x7b\xbe\x35\xff\x18\xf5\x97\x50\x11\xc2\x10\x6e\x66\xcf\x73\x6c\xbd\x7e\xfa\xf1\x38\x73\x47\xa5\x08\x50\x17\xad\x33\x73\x9e\x78\xfd\x76\x9d\x61\x47\xa5\x2a\x60\x91\x11\x7a\x2a\x55\x61\xc4\x1a\xdc\x25\x14\x0f\x8c\x90\xce\xa4\xe6\x53\xa5\x9a\x87\x48\xde\x32\xff\xd7\xfc\xd7\x76\x73\xaa\x55\x28\x6c\x7c\x7b\x79\xd4\x13\x2f\x2e\xd5\x8a\x61\x86\x17\xb5\xee\xd6\x18\xf0\xb1\xb7\x61\x01\x31\x75\x80\x56\x21\xac\xcc\xdb\xd5\xa1\xcc\x1d\x90\x69\xf4\x1e\x2c\x48\x8c\x41\xe3\x9c\x91\x27\x5e\x8e\x99\x3a\x15\x0b\x23\x40\x50\x07\x16\xe4\xed\xde\x73\xf8\x58\x95\x77\x05\x0a\xbd\xb9\x16\x69\x9a\x09\xcb\xcd\xe6\x69\x50\x15\x8b\xa8\x44\xc0\xd7\xe9\xa8\xcc\x26\x6e\xb8\xc4\xa6\x14\xf4\x8a\x45\x69\x00\x86\x13\xed\xb5\xe6\x0a\xb6\xa7\x46\xe1\x16\xbd\x3c\x1c\x8b\x49\x7d\xb4\x62\x31\xe1\xb8\x4a\x3e\xc3\xc7\xcd\xea\xe5\x57\x58\xa8\x6b\x10\x68\x16\x47\x12\x31\xee\x5e\x83\xad\x05\xb5\x2c\xaf\x29\x7d\x29\x16\x2b\x81\x81\xea\x1b\xc8\xff\x83\xf4\x3e\xde\xfc\x65\x49\xc4\x85\x59\xb5\x36\x27\x81\x85\x52\xe3\x53\x69\x64\xe4\x7c\xb9\x21\xe0\x37\xa4\x11\x63\x1d\xbd\x7e\x5d\x71\xe7\x70\x23\xc9\x75\xfb\xe3\xe9\x65\x33\x9b\xff\xee\xee\x95\x26\x0c\x89\x1c\x41\xe5\xed\xfc\xd4\xfb\xf4\xff\x67\x59\xdb\x15\x4b\x53\x8d\x71\x83\x9b\x4a\xf8\x93\x04\x4d\x6c\xdd\x7a\xe7\x62\x40\xdd\x9e\xbb\x7d\xb7\xcf\x5a\x84\x93\x79\xc5\x18\x63\xa6\x34\x46\xee\xab\xaa\x40\xa4\x9f\x2f\x78\x51\x2c\x23\x1a\x71\xc9\x0a\x4c\x05\xc0\x20\xfa\x33\x19\x56\x59\xc4\x11\x5d\x36\x00\x29\x33\x7f\x95\xd8\x90\x96\x63\xf9\xcd\x90\x13\xc1\x35\xe0\x11\x45\x52\x75\x05\x0a\x3e\x7f\xe5\x50\x5c\x5f\x20\x18\x4f\x34\x3a\xe6\xf3\xd9\xcb\xce\x97\xb3\x2a\xc6\xd3\x58\xda\xa8\xd1\xba\xaa\x0e\x93\x91\xce\x33\x53\x8c\xd6\x2d\x83\xfc\x1d\xd4\xa2\xdd\x7f\xa7\x43\xa6\x18\x17\x21\x71\x85\x03\x3c\x2f\x1b\x97\xe6\x1d\x3b\x72\x4c\x24\x04\x3d\x56\x03\xaf\xf6\x42\x44\x8a\xc9\x28\x43\x03\x6d\x96\xcb\xa1\xbd\xc3\x54\x68\xc0\x2f\x0a\x4c\xbc\x7a\xcc\xcd\xe5\x1b\x19\x2c\xc4\x18\xb4\xf2\xcb\x28\x32\xd3\x41\x88\x72\x07\xf3\xc5\xaa\x8f\x04\xb8\x63\x31\x31\x82\x8e\xbc\xb3\x86\xca\x4a\xf5\x47\x98\x29\xba\xdc\xb9\xca\xc5\x2b\x35\x0e\x2a\x0b\x42\x1a\x5b\x95\xe3\x01\xff\x8c\xca\x42\x2e\x91\xf6\xe3\x68\x3d\xdd\x2d\x7c\x4e\x4f\x25\x21\x03\x87\xa5\xba\xce\xc7\xad\x32\x92\x2a\x9c\x8c\x13\x5a\x8e\x27\xfe\xb9\x69\xe1\x38\xe9\xa0\x2c\x8e\x09\x0e\xff\xdd\x81\x7f\x9a\xbd\x1e\x1d\xbe\xa1\xa3\x9e\xc5\x4a\x42\xd8\x43\x16\x4a\x75\x53\x55\x6f\x73\x5e\xbe\xf3\xc9\xde\x97\x25\x24\x34\xe9\x5e\xfe\x79\x73\x3a\x8f\xde\x8e\x46\xb1\x48\x07\x95\x1d\xd7\xd4\x49\xbb\x56\x86\x6c\x55\x9c\xce\xc7\x68\x12\x98\xc8\x28\x27\x9c\x5b\xb3\xff\x75\x10\xa3\x74\x87\x45\x82\x4e\xf0\x4e\x56\x87\xe3\xa9\x85\x65\xd9\x4d\x98\xfc\x7d\x42\xb2\x3f\xfe\xd2\x59\x1a\x1b\x08\xb5\xd9\x7e\xd7\xc0\x8b\x03\x32\xc4\x4e\xee\x9d\x26\x11\x8a\xb7\x6e\xa1\x69\xd7\xa7\x66\x3f\x58\xe3\xb2\x34\x75\x7c\x03\x97\xd2\xf1\xa3\x45\x35\x4b\xa5\xb1\xd1\x31\xfc\x87\x23\x04\x29\x7e\x3b\xc7\xd1\x5d\x8c\x85\x31\x76\xf6\xcd\x70\xb0\x67\x2c\x49\x43\xee\x6a\x95\x9d\xcf\xe5\x0f\xd2\x00\x8d\xc6\x03\x7f\xb3\xf9\x8e\xf6\x7c\xe1\xa1\x4c\x1c\xe6\x6f\x79\x94\x54\xc6\x64\x82\x1e\xd6\xec\x78\x74\xb0\xc6\xab\x9b\xc5\x00\xf2\x94\x31\xb0\xd8\xc5\xce\x2b\xf4\x04\x2d\xdd\xef\x10\xc3\x28\x0a\x6d\x58\x7e\xec\xe1\x2c\x94\xc8\x2e\x52\x1d\xa1\xbc\xaf\xab\xd3\xd1\xc6\x39\xdc\x61\xce\xad\xc2\x50\xd1\x99\xf0\xa0\x76\x26\xe6\xe0\x0e\x6b\x8a\x91\x36\xa4\x5d\x31\x28\x4c\x77\x88\xf3\xc0\xc1\x7e\x9e\xf9\xc1\xaa\x6d\xfe\x0e\x57\x29\xe7\x54\xc6\x35\x33\x1a\x79\x18\xd8\x1f\xd1\x54\x4e\xfa\x46\x04\x14\x58\xbf\x63\x74\x53\xd5\x45\x53\xc7\x0d\xa5\xa5\x53\x9c\xdd\xfe\xb1\xeb\x61\x41\xbd\x3e\xa5\xca\x24\x33\x71\xa3\xbe\x6c\xcb\xf0\xe9\x5e\xc9\x99\x67\x52\x44\x06\x30\x58\xbd\xb7\xe3\x3c\x4c\x26\x95\xc0\xda\xd5\x9f\xb3\xc7\xc7\xc5\xd6\xff\x0a\x42\x10\xaf\x29\x26\xfd\x4a\x64\x11\x54\x99\x8a\x32\xbb\x35\x2f\xdb\xce\x2d\x76\xe7\xa9\x38\x43\x79\xaf\x43\x5e\x3e\xbd\x4d\x75\x84\xc6\xcf\xa4\xa4\xc2\xe5\xb5\x7d\xad\x9f\xe1\x13\x75\x0f\x3c\x78\xd7\x07\x2a\x32\x1d\x03\x16\x39\x77\x96\x04\x52\xac\xcb\xb7\xf9\x05\x21\xbe\xca\x34\x28\x66\x51\x10\xb6\x04\x77\x00\x5d\xe7\x41\x22\xa5\x61\xe7\x42\x3f\xae\xe7\xcb\x1c\x3d\x11\x0f\x12\x8d\xe9\xb2\x9d\x95\x79\x5c\x63\x55\xed\xa4\x51\x18\x19\x0c\xe7\xce\x06\x26\xaf\xbf\x1d\x0f\x59\xe4\xd2\x62\xcb\xb2\x69\xf3\x16\xdd\x9d\x9b\xf3\xf3\x44\x4b\x56\xf1\x50\x99\xd5\xa1\x39\x1d\xfa\x81\xcf\x49\x4c\xd1\x3d\xb4\x38\x50\x9b\x2c\xba\x84\xa0\xb9\xe6\x2c\x36\x6b\x9f\x93\x28\x18\x27\xba\x6d\xab\x88\x1a\x3a\x01\x69\xed\xe6\x1d\x8a\xf5\xbb\x5b\x46\x52\xe1\x3a\x81\x82\x4e\x39\xa8\xce\xe2\x6a\x56\x65\x71\x7e\xea\xb7\x29\x1e\xc7\x0a\x6b\xff\x37\xc7\xaa\x6e\xff\xf4\xbf\x66\x02\xa1\x3c\xdd\x86\x36\x2c\xa6\xe2\x31\x28\x27\xca\x8a\xe3\x72\x73\x04\x50\x63\x73\x84\xc7\x5a\xe1\x36\xb2\xdd\xc3\x0d\xf8\x7d\xd6\x1f\x04\x04\xf6\x99\x20\xd7\x47\xef\x07\xf3\x24\x48\xd1\x0f\xbe\xab\x41\xa9\xfc\x0a\xff\xa6\xe2\x34\x34\xca\x78\xb6\x24\x51\x4f\x0f\xd3\xc8\xf0\xe5\x74\x26\xfe\xf8\xa3\xa4\x81\x0d\x7d\x35\x68\x53\xac\xf4\x3f\x2b\x31\x4e\xb2\xba\x86\x04\x52\x93\x31\xc5\x88\xe7\xcd\xd9\x6a\xa6\xd5\x5f\x15\xc3\xbb\xf3\x58\x86\xf8\xd5\xcd\x07\x3f\x4e\x30\x8f\x93\x91\x94\x66\x1c\x93\xd2\x22\xff\x1a\x27\x36\x7e\x2f\x16\x83\x0c\x6c\xad\x9c\xa1\xb8\xbc\x83\x2f\xf0\x8d\x3c\xe3\x19\x35\xca\xe7\x37\xeb\xbb\x9f\x8b\xe5\x64\xb4\x73\x12\xa2\x25\xcf\x8f\xc7\xe2\xfc\xc2\xcf\x62\xa0\xbb\xfb\x8f\x69\x53\x65\xc2\x04\x3c\x6f\x7c\xf9\x91\x3b\x96\x99\xfa\x3e\x64\x6b\xdb\xf3\x53\x83\xd2\xda\xf9\x61\x3a\x03\xb9\xa6\x98\x60\x5f\x2f\xee\x16\xeb\xf5\xec\x71\xf7\xb2\x5e\xdd\xaf\x67\x4f\x1b\x77\x21\x21\xa5\x13\xae\x3f\x34\xaf\x93\xef\x29\x54\x80\xef\x02\xd3\x80\xef\x08\x41\x71\xd1\x05\x92\x09\x4c\x7a\xbf\xac\x17\x4f\xcb\x1f\x4f\xbb\xf9\x6c\xbb\xb8\x5f\xad\x5d\x3e\x84\x4b\x65\xe8\x77\xba\x15\xf8\x65\xb1\x5e\xae\x5c\x14\x92\x2b\xc2\x5d\x49\xcc\xcf\xbc\x2c\xf3\xf2\x75\x14\x43\xe2\x10\x18\x46\x4e\x2c\x3a\x16\xbc\xc9\xe5\xae\xe1\x65\xb7\xc3\xfa\x06\x04\xbb\xd7\x68\xa8\x6d\x5d\x3d\x25\xd7\x01\xc3\xb4\xd9\xc3\xa9\x7c\xed\x8e\xf8\xdf\x25\x15\xa9\x95\x9f\xaf\x4f\xb2\x5d\x95\x63\xd6\x14\x25\x42\x12\x32\x0b\x0d\x9f\xbd\x78\x1a\x22\x77\x30\x36\xd4\xc1\x2f\xfc\x54\xe0\x04\x1e\x66\xdd\x45\x98\x1a\x78\xfc\xef\x75\x7e\x6c\xab\x67\x18\x54\xf3\x7d\xe9\x44\x8b\x30\x03\xc3\x6a\x79\x04\x99\xf3\xe2\xfe\xec\xd2\x21\x22\x0a\x25\x31\xb3\xeb\x2b\x5a\xdf\xa9\x0e\x8b\x12\x11\x4f\x59\xaf\xbd\xfd\x00\x75\x75\xad\x3e\xe6\x4b\xaf\x44\xc4\x82\x27\xa1\xd5\xe9\xcd\x6b\x78\xae\xda\xc5\xe1\xd8\x5e\xdf\xb5\x45\x2c\x04\x16\x01\xaa\xaa\xac\xda\xbf\xfe\xfa\xeb\x96\x1f\x8f\xc3\xb5\x47\x24\x92\xa1\xf9\x70\xe0\x9f\x13\xcc\x93\x48\x54\x84\x1f\xe2\x50\x29\xcc\x43\x1c\xdc\x90\xbb\xfe\x5c\x94\x12\x6a\x72\xdf\xb6\x86\xc5\x6b\x47\x8e\x62\x64\x22\x8d\x28\xd2\xee\xfc\xac\xf3\xf6\x02\x1a\x20\xd2\x24\xcd\xec\xe0\xdf\xf1\xc3\x35\xf6\x7f\xd7\x90\x82\x56\x03\xfa\xf0\x3b\x24\x1f\xba\x50\xc1\x9b\x9c\xa4\x53\x0c\x82\xd9\xcd\x6f\xc1\xeb\xe2\xbc\xc1\xf4\xda\xa1\x5f\xac\x45\x16\x64\xa8\x52\x65\xf8\x1a\x66\x05\xf2\x8e\x36\x63\x4c\xbd\xc8\x40\xe2\x52\xb0\xfc\xb9\x1d\xc4\x4d\x44\x06\x80\x71\x93\xa7\xfc\x73\x54\x31\x23\xb8\xdf\xec\xea\xa7\xbc\x6c\x67\x48\x5f\x33\xbc\xab\x48\x85\x2b\xb5\x5a\x7c\x82\xec\x0c\x04\x57\xf8\xe0\x9a\x28\x4a\x0d\x49\xd4\xe9\xb8\xe9\xf1\xa1\x02\x02\xa3\x30\xbc\xe7\xcd\x7e\xdb\x0b\xe2\xbb\xa3\x24\x74\x9c\xac\x37\x5d\x7f\xfa\xab\x01\x01\x21\xed\x12\x8a\x02\x21\xf9\xbb\xa5\x8a\x1b\x7f\x12\x88\x42\x70\xfa\x2f\x9b\x93\x98\xf4\x03\xc4\x02\x49\x99\x9e\x2a\x97\x60\xf9\x26\x6a\xf2\xff\xe3\xec\xcf\x9a\x1b\xc7\xb1\xf4\x71\xf8\xbb\xfc\xae\xea\x62\x2e\x40\x70\x01\xf9\xde\xc9\x92\x9c\xa9\x2e\xdb\x52\x4b\x72\x66\xd5\x4c\x4c\x28\xb0\x1c\x48\x1c\x53\xa4\x9a\xa4\xec\x54\x7f\xfa\x37\x78\x00\x70\x13\xed\xaa\xfe\x4f\xc4\x74\x76\x9b\x20\xc5\x05\x38\x38\xcb\x73\x9e\x47\xe8\xd8\x28\xe8\xb5\xc1\x97\xb9\xa3\xc1\x0f\x4a\x12\xf8\x98\xf3\x68\x06\x1c\xf2\xbe\xb7\x2b\x09\x4f\x0c\xd1\xdf\xb5\x3a\x7d\x8e\x55\xb7\x83\x3d\xaa\xd1\x14\x2c\xdf\x3b\xc1\xe6\x4f\x22\x7f\x77\x06\x27\xcc\x96\x5c\x9f\xf9\xaf\xc6\xe9\x9b\xd5\x35\x1f\xcb\x5f\x2a\xe9\x69\x1f\x21\x62\xb6\x23\xc5\xb5\x76\xd9\xa3\xd4\x0b\x30\x91\x2f\xd2\x7a\x5e\xde\xaa\x9a\x3b\x88\x94\x3d\xee\x07\x01\x36\x4b\x37\x9b\xc3\xf4\x7e\x17\xbb\x91\x4c\x41\xbf\x3b\xec\x3d\x85\x0f\xc3\xfc\x30\xbc\x1f\x1f\x12\x4c\xaa\x70\x65\xb8\x6b\x3f\xc3\xeb\x8d\xcf\x52\x18\x8e\x03\x4e\x37\x30\xb3\xae\xef\x33\x8e\xc6\x07\x61\x88\xbc\x52\xa6\x65\xdb\x10\x3b\xc0\x9d\x52\xe1\xf8\x24\xcd\x71\xe7\x71\x5f\x3c\x47\xad\x3a\x7b\x30\xf4\xb4\x67\xee\xfb\x1d\xf9\x09\x1e\x0a\x5e\xaa\x3b\x2d\x40\x25\xc3\xd0\x24\x8d\xb6\xb3\x97\x6f\xcb\xe5\xcb\xe2\xc0\xda\x23\x91\x9f\x18\x19\xa3\x12\xa0\x3c\x5c\x78\x5b\x2b\x90\x21\x53\xdc\xb1\x10\x3a\x8e\xd9\xb5\x5e\xf0\x1b\xb2\x1c\x8d\xde\x60\x18\x87\xc2\xd0\xdb\x6c\x57\xf3\xef\xa3\x83\x8c\x47\xd4\x6a\x25\x19\xfd\x17\xf7\x77\xe5\x45\x56\x25\xa0\xcb\x82\x7c\xe9\xb7\xc8\x38\x06\xcf\x56\x4d\x67\xf9\x11\xb2\x95\x7a\xe6\x97\x4b\x4f\x4e\x62\xd0\xc2\x20\x63\x25\x94\x6d\xab\x40\xe8\x38\x3c\x73\xd3\x5d\x5e\xad\xaa\xea\xda\x96\xbd\x64\x42\x03\x1a\xd9\x10\x77\x07\x99\xc9\xba\xfd\xc5\x97\x49\x82\x00\x0b\xb3\xee\xcb\xe0\xda\x5f\xc0\xfb\x92\x77\x34\xd1\x4a\x26\x5c\x38\x62\xba\x03\xf2\xc5\x7f\xa2\x76\xf6\xf7\x76\x2f\xc9\xfd\x10\x63\xbe\x1c\x3e\xe6\xfc\x7c\xe1\xe9\xf1\x4e\xfd\x7d\x74\x86\x20\x12\xd1\xdd\xf5\xed\x02\x63\xf7\x56\x8a\x88\x21\x38\x7d\xf9\xc0\xf3\xb7\x6e\xbe\x08\x4e\x30\x03\x7a\x2c\xf6\x45\x13\x78\xed\x6a\x70\x19\x65\xa9\xbc\x48\x99\xc6\x0d\xcc\x82\x3c\xa4\x63\x54\xbf\x54\x11\x88\x3e\x99\xfb\x06\x0c\x2b\x12\x6e\x47\x2e\xab\x20\xc1\x0b\xd0\x5e\x3f\x99\x4c\xc4\x5f\xb7\xda\x49\xe0\x46\x17\xba\x72\xac\xec\xc3\x87\x51\xc4\xf3\xbc\xc8\xb9\x5a\xd5\xa9\x0f\xa2\x6f\x2f\xa2\x88\xf4\x9d\x8c\xf9\xf2\xe5\xdb\x02\xde\x27\x37\x7e\x45\x64\x88\x2b\xab\x2d\x6e\xec\xf6\xb3\xc7\xc7\xc3\xb7\xed\xfa\xd5\x01\x97\x14\x51\xc4\xa2\xc4\x6a\x9e\xa5\x5d\xca\x41\x79\x3e\xc7\x56\xa4\xd5\x7c\xed\x18\xc1\xfe\xd6\xd7\x45\x26\xd4\x66\xba\xfe\x09\x7f\xa6\xf9\x71\x9d\x66\xed\x15\x35\x43\x53\xbc\xc5\x77\xf5\xcc\xd3\xcf\xf2\x25\xc6\xfd\x1a\x3e\x0b\xa5\xd2\xed\x8c\xcf\xe9\xaf\x8d\x4b\xb8\xe7\xf5\x97\x34\x34\x4a\x51\xdf\x74\x62\xcb\x22\x37\xae\xe4\xbd\x42\xe7\xf8\x97\x62\x1a\x18\x4d\x92\x4b\x09\xc8\x7a\x81\x7c\xf0\xee\x29\xa8\xd0\x92\xb7\xb4\x9d\x63\xce\x33\xa5\xfc\xd0\x70\xe0\xd5\xc5\xe5\xcb\x9c\xaf\xf2\x79\x8c\x3c\xc5\x2f\x70\xa9\xaf\xce\x45\x50\x01\xf1\xd0\x83\xba\x18\x22\xf4\x67\xd3\x13\xd2\x05\xcc\x2a\x20\x89\xeb\xe9\xfa\x67\xe3\xbf\xa4\x45\x8e\xc8\xd3\x59\x96\x99\x88\xb4\xbf\xd7\xaa\xc0\x57\xc6\xd4\x34\x5b\xd8\xc9\xaa\x84\x5d\xb0\x69\xb8\xe8\x13\x77\xba\xe1\x09\xb5\xc0\xdf\x97\x3b\x2d\x7e\x37\x44\x7a\x18\xf0\x23\x22\xa1\x6a\x4c\xde\xd5\x2d\x2b\x15\x8a\x28\x51\x2d\x2d\xaa\x4e\x8f\x43\xa7\x5d\x85\x42\x20\x33\x55\x51\x72\x99\xa5\xff\x86\xc3\xbf\xae\x50\xde\x86\x77\x1c\x81\xd1\x82\x10\xd7\xdb\x8e\xe7\xbb\xac\xf8\x24\xf3\xa0\x22\x88\x59\x4b\x99\xb6\xbe\xd6\xbf\x0d\x8e\xb2\x20\x11\x56\x3a\x0e\xc5\x24\xee\xd4\x23\x94\x62\x4c\x62\xaf\x14\x82\x7b\xf6\xc5\xeb\x6e\xb1\xed\xcd\x7f\xa6\x62\xdc\xb3\xde\x7b\x2d\xb9\xf6\x50\xac\x7c\x2c\xa8\x89\xeb\xed\x00\x39\x94\xc7\x21\x06\xc4\xce\x45\xfb\x4f\x14\x0c\xff\x97\xbd\x46\xa2\x15\x96\xaa\x1c\x00\xcf\x16\xd5\x8b\x97\x22\x5f\xd6\xa7\x87\xeb\xed\xb3\x82\xba\xe2\x1e\xc5\x15\x7b\x2a\xea\x4d\x51\xf3\xba\xe8\xb7\x2c\x2a\x9e\x18\x02\x73\xf1\xce\x3f\xa3\xfe\xb2\x23\x25\x03\xcc\xb3\x1e\x4b\x2e\x6d\x7f\xd6\x4c\xd7\x50\x62\xe5\x97\xec\x79\xd9\x21\x9d\x95\x22\x4c\xc7\x8e\x99\xf4\x98\xe6\x53\xaf\x53\x31\xd3\x07\xb5\x5f\xf4\x35\xc8\x94\x02\xdf\x87\x51\x09\xc7\xf3\xdb\x83\xb1\xb0\x60\xd9\x73\xf1\x0e\x3f\x1d\x2d\x1d\xa8\x2f\xf5\x08\x95\xd2\x24\x41\x23\xb3\x9a\x0f\x7e\x4b\x7b\x14\xf1\x15\x20\x0d\xf6\xa1\xad\x6e\xf9\x36\x79\x0e\x84\x24\xb8\x8d\x7f\x33\xdd\x39\x5b\x9e\x1b\xf8\xe9\xc8\xde\x00\x49\x00\x39\xcd\xb9\xd6\x29\xda\xc5\x0a\x5d\xcd\x61\x3a\x1d\x88\xf0\xd1\x57\x2c\x2e\x70\x47\x2e\xaa\xc0\xa3\x66\xa9\x9a\x74\xe9\x33\xd4\x7c\x6a\x45\x81\x1f\xf8\x68\xda\x76\x2f\xfb\x4d\xc6\x25\x18\x3a\xa3\xbf\x6a\xd2\x77\x27\x73\x8d\x89\x82\xa5\xba\xf6\x22\x0d\x08\x7d\x42\x3c\x07\xec\x31\x18\xc6\xcf\xba\x80\x20\x8c\x13\x0c\x88\x96\xf3\xf5\x33\xea\xc4\xd9\xbf\x47\x84\x13\x66\x1b\x37\xd2\xfc\x0a\xbb\x6b\x85\x35\x7d\xb5\x3c\x5f\xb2\xe2\x06\x30\x3d\xeb\xdd\xd9\x94\x62\xbf\xb1\xc9\x2b\xb5\xd7\x0c\x09\xba\x6a\xf8\xd7\x2d\x7e\x74\x35\x0d\xea\x87\x28\x36\xba\x48\xd8\x85\x8d\x19\x61\xc4\xd5\xba\x2b\xb1\x40\x08\x8b\xec\x2a\x79\x0d\x4e\x20\x70\xf8\x68\x2c\x8c\x91\xdc\x72\xf3\xf3\xdb\xd3\x10\xf4\x38\x7c\x8b\x2c\x51\x58\x93\xd9\xaf\x66\x2f\x7f\x2e\xfb\x2f\x92\x71\xdf\x73\x11\xd9\x7b\x61\x32\xbd\xa3\x49\x10\x07\x1c\xc1\x7a\x82\xe7\x6f\xcf\xd7\xac\x4e\xab\xb6\x71\x0e\x92\xc4\x60\x25\xef\x95\x6d\x2c\x64\x1a\xb3\x85\xf7\xab\x09\x12\x10\xc2\xd2\x59\x3c\xa0\x66\xb4\x8d\x02\x87\xf7\x9d\x68\x9f\x8a\x96\xbc\xc6\xf2\x40\xd8\x63\x9c\x12\xcc\x31\x3c\xcf\xfe\x38\x3c\xbe\xbe\x2c\x76\x87\xed\x6c\xb5\x5b\x2e\x0e\x8b\xd7\xed\xea\xe5\x9b\xeb\x72\x6f\x87\xeb\x88\xfa\x7d\x2f\x73\x59\x9f\xf6\xc5\x8f\x54\x7c\x12\x09\x80\x08\x0d\x31\xb4\x4a\x2b\x9b\xbc\x75\x04\xa6\xd5\x58\x31\xda\x9e\x21\xa3\x08\x8b\xc2\xe7\xa2\x79\xf2\x9f\x3c\xed\x37\x86\xbb\x31\x8c\x3b\x2a\x70\xcc\x6c\x7f\x2a\xdc\xae\x40\xc5\x14\x8d\x52\x5a\x6d\x78\x3a\xea\xa4\x06\xa0\xc4\x01\x43\x9b\x10\x0e\x7d\xe1\x6a\xec\x3a\x02\x50\x86\xe5\x65\x79\xd8\xed\xff\x79\x01\x14\xcb\x73\x87\x84\x61\x5f\xad\xae\xa2\x8f\xbd\x00\xd0\xd2\xa4\xb1\x1d\xaf\x8b\xfd\xbb\xf6\x40\xcb\x16\x37\xfb\x9e\x16\xd7\xaa\xd3\xc4\x70\x63\x84\x8e\x4d\x52\x81\xab\x5b\xfb\x47\x15\x3a\x9a\xa1\x79\xf1\xae\x41\x8f\x27\xb1\x06\x82\xae\x68\x5a\x35\x21\xcc\xfa\xbd\x75\x71\x41\x43\x8c\x9f\x78\x8e\x99\xac\x33\xa8\x54\xa6\xb9\x83\xa8\x6a\x42\x22\x14\x2e\x30\x94\xcc\x7d\x3b\xa9\x89\xef\x45\x61\xc7\xf8\xbe\xbe\xd6\xb3\x6b\x7d\x82\xbc\x4e\x6d\x30\x3d\xb8\x03\x4d\xe2\x58\x18\xdd\xa3\x26\xe8\x5b\x80\x4c\xbf\x20\x99\x76\xe7\x70\x06\xcc\x21\x2f\x2d\x7c\x65\xe2\x2b\x6a\x22\xc2\x90\x7d\xb5\x42\xee\x17\x87\xf6\x42\x23\x6b\xb9\xdb\xff\x74\xd9\x4b\xed\x45\x11\x5a\xb1\xea\x13\xc7\x45\xd3\xc8\xa7\x16\xe8\x96\x9a\xae\xc8\xa5\x4b\x66\xb5\x23\x94\xd7\x72\x79\x9b\xbc\x50\xcd\x8f\x4e\xa6\x4a\x69\x1f\x94\xd3\x3f\xc2\xb2\x7e\x8f\x54\x51\xe9\x30\x24\xd4\x0a\x20\x3d\x5c\x6f\xd3\x15\xa1\xe1\x0d\x85\x00\xb4\xaf\x0d\xe1\xa0\x50\xf6\x70\x24\x39\xe3\x6d\x33\x75\x35\x76\x26\x07\x13\x59\x33\xed\xc7\xda\xce\xca\xc7\xa2\x7c\x48\x6b\x24\x3c\x9a\xfe\x34\xb1\x4f\x0c\x2f\x60\xf3\x9c\x4f\x85\x7c\x7b\xbd\xec\x40\xfe\xd6\x1e\x0d\x51\x41\xfb\x67\x51\xbe\xe1\xb2\xe9\xbb\xff\x2d\xb7\x80\x8e\xa3\x18\x03\x15\xd3\xe1\x3f\x3b\x16\xf9\x26\xe3\xa3\x68\x46\x27\x89\x51\x60\x99\xcf\xbf\x1f\xf6\xcb\xa7\xc3\xec\xc7\xea\xc7\x81\xb4\x2f\x94\xc7\x2a\x49\x5c\x35\x74\x10\x72\x6a\xae\x38\x56\xfd\x5a\x24\xf2\xd7\xde\x8c\x96\x9e\xc9\x4b\x98\x2c\x49\x76\x89\x46\x77\x22\xa9\xe6\xc6\x58\xac\xf2\x4d\x59\x1c\x7b\x06\x5c\x43\xe8\x51\xb0\x4c\x67\x9b\x6f\x6b\x64\xba\xcc\x6e\xab\xbc\x86\x32\xe7\xd9\x0f\x7e\xcd\x26\x70\x36\xce\xaa\x69\x88\x23\x04\x2d\x6d\x4a\xe0\x7f\x91\x8d\xd2\x10\x73\x57\x6e\xdd\xbd\xa5\x59\x86\x5e\xf6\x27\xd9\x7b\x7b\x8a\x8e\x8d\x04\x9d\x14\x76\xdb\x71\x53\x0e\x08\x89\x85\x69\x04\x73\x26\x7b\x0b\x55\x73\xaf\xf6\xb0\x1f\x68\x4c\x43\x9a\xcd\x81\x67\xd0\xcd\x4b\x37\x22\x96\xb8\x73\x61\x0f\xec\x7e\xac\x83\x0c\x24\xf4\x14\x3a\xd1\x16\x6e\x6a\x4e\x36\xee\xc9\x73\xd1\x2b\x90\x4c\xcd\x49\x20\x61\x48\x10\x88\x51\xd5\x70\x59\xe7\x4e\xe6\xa7\xbd\x76\x44\x50\x35\x58\x15\x2f\x45\x63\x7d\x0a\x8b\x3d\x1b\x5d\x43\xf9\x18\x6d\xfd\xb7\xd7\x6c\xca\xdf\x20\x87\x2a\xad\x46\x63\xa2\xc0\xf0\x49\x7e\x07\x75\xc4\x25\xfb\xe6\x12\xcf\xee\xb7\x22\x9e\xc8\x2e\x85\x86\x16\x2f\x87\x1d\x0c\x32\xd9\xed\x50\x89\x21\xcc\xeb\xcb\x6e\x33\x7b\x9e\x40\xc1\xf4\x03\xdf\xb6\xb0\x0f\x84\x79\xd4\xed\xd7\x2b\x59\x6c\x78\xc9\xcf\x7f\x89\x41\xec\x89\xb4\xdf\xc7\x0d\xdd\x2d\xb1\x10\x7c\xb3\x6b\x18\x81\x9d\x09\xc0\x0c\x10\x16\xf9\x68\xec\xb7\x9b\x97\xce\x7d\x01\xc2\x12\x96\xb4\x73\xa0\x71\x24\xda\x6f\x1f\x13\xa3\x42\xd4\x22\x96\xef\x31\x0b\x63\x2e\xe9\x29\x3f\x00\x48\xec\x0b\x2c\x3a\xcb\x12\x54\xb1\xac\x4f\xf7\xf2\xb9\x40\x92\x40\xa0\x8e\xe0\x7e\xb3\x6b\xff\xc4\x03\x6e\x64\x2a\x75\xcb\xe9\x78\xb7\xba\x80\x08\x22\x71\xcb\x7c\x5e\x0d\xbe\xa8\x68\xc2\x74\x57\x20\x2a\x6e\x83\x38\x13\x88\x64\x71\xc4\xda\xf2\x4a\x13\x73\xac\xb1\x3f\xe6\x2e\x27\xfa\x15\x3d\x24\x10\xa9\x02\xcf\x14\x47\x1d\x1e\x6b\xce\xb3\xac\x63\xbe\xb5\xc3\x54\x12\x6b\x68\xb1\x0e\x82\x8b\x34\x4b\xeb\xd4\xe6\x67\x5b\xce\x43\x20\x8a\xfb\x98\xc8\xfd\x59\x14\xd3\xc4\x40\xbd\xdd\xa1\x19\x9d\xb0\xb6\x0b\xae\xda\x15\x99\x5a\x39\xf9\x35\x20\x4a\x25\x71\xd0\x6a\x5d\xbc\x56\x6a\x34\x1b\x80\x41\xdc\x57\xbe\x47\xa0\x7b\xa7\xf1\xf9\x59\xce\xe4\xee\xed\xeb\x58\x61\x36\xa2\x6a\xf6\xc1\x83\x77\xe8\x49\x88\x00\xd1\xc2\x90\x56\x59\x9c\x2c\x3d\xec\xf6\xb3\xdf\xad\x3f\x09\x1e\xf1\x12\x27\x1d\x79\x48\x65\x91\xa7\xff\x3a\x5c\x4a\x38\xbc\xdd\xe4\x41\x14\xf9\xb5\x3a\xa8\x4f\xb8\xdc\xc1\x23\x51\x44\xe3\x41\xb9\x71\x0b\x97\xa2\xac\x2d\xab\x90\x4b\xfc\xd8\xd1\x5e\x10\x7a\x7d\x0d\xd9\xbe\x1d\x1b\x5e\xd7\x8b\x89\xa3\x6e\x6e\xbc\xa8\x2a\x3d\x9e\xc6\x3d\x76\xbd\x25\xed\x51\x62\x84\xa4\xda\xc4\xb1\x2b\x33\x7e\x9d\x41\x02\x8f\x86\x84\x24\x3d\xf8\x81\xb1\x9b\x23\xf5\x52\xf0\x68\x1c\x39\x8f\x71\x88\xbe\x72\xaf\xdf\xa3\x22\x88\xa0\x2b\xf3\xa9\x4d\x91\xb6\xc9\x47\xf0\x7c\xa9\x4c\xd7\x54\xc6\xd3\xf3\x77\xea\xfe\x1c\x10\xc0\xee\xdb\xbd\xcd\x6b\x7c\x8e\x4b\xea\xaa\x0c\xe0\x05\x2c\xc1\x5a\x7a\x0d\x55\x6d\x4b\x19\xa6\x5c\xff\x02\x1f\x5b\x78\x4f\x1b\x53\xf9\x52\x18\x82\xb5\xf6\x97\x84\x51\x16\xdb\x40\xbf\xc0\x0a\x5e\x48\x23\x34\xc8\x3a\xd5\xf5\xed\x50\x7f\x14\x87\x0f\x80\xb7\xf6\xbe\xa3\x00\x4c\xa4\xd1\xdc\xf7\x90\x0e\x6d\xf4\x22\x23\x9d\x20\xd5\x73\xfa\x90\x3a\x3c\x04\x78\xcc\xe7\x98\x67\xc0\x16\x33\xec\x8b\xfd\x8e\xcd\x03\x77\x4a\x6b\xe0\x31\x60\x92\x5a\x50\xc5\x63\x0a\x99\x32\x9c\xbc\xf6\x68\x9c\xc4\x56\xec\xd2\xa4\x1a\x1e\x6e\x4f\x70\xe4\x3d\x16\xd2\xa9\x3d\x1c\xbc\x18\x04\x6a\xb2\x41\x7d\x7a\xdd\x2d\x7a\xf8\x3d\xf0\x62\xad\x5d\x6e\x6e\x0b\x1a\xe3\x97\xe9\x19\x92\x10\x26\x5d\xc1\x9c\x7a\xa3\x69\xca\x3d\xdf\x77\xfa\x70\x86\x27\x7e\xc2\x3e\x78\x22\x12\xb2\x93\xb3\xbf\x8d\x5b\x03\xc1\x13\xca\xc7\xd7\xdc\xc4\x7f\x3d\xd9\x0b\xf0\xa4\x36\x52\xf3\x46\x70\xe4\xa5\x89\x3f\xc7\xb2\xde\xe0\x29\x5f\x62\x3d\xb1\xba\xaa\xe2\xed\xea\x4e\x55\x4c\x61\x04\x87\xf0\xb2\x95\x68\x1f\x1c\x48\x84\x28\x76\xfc\xa4\xcd\x1c\x9f\xda\xcc\x3d\xf0\x03\xdc\x29\x6c\x67\x59\x71\x45\xf1\x9f\xe1\xef\x82\x34\x54\x09\xe8\x12\x3e\x02\x54\xbd\x1e\x42\xf0\x34\x63\xac\x43\xa4\xe3\x75\xf6\x45\x57\x4c\x02\xea\x79\x4c\x33\xa3\x08\xfb\x68\xd9\x4f\xda\x43\x4c\xf9\x96\x01\xe7\xe1\x7a\x9b\x17\xd7\x72\xd4\x0e\x05\xd4\x4b\x22\xb4\x59\x17\xbf\x3d\x49\x4b\xec\x0f\x38\xf0\x09\x50\x37\x50\xea\x9b\xfe\x29\x84\x01\xcb\xb7\x56\x26\xad\xbb\x24\x0d\x0c\xc0\x0e\x9f\x07\x3b\xac\x7a\x2b\x85\x52\x6e\xf4\xb4\x66\xab\x9f\x5f\x6d\x06\x94\x2a\xdf\xb7\xf0\x40\x0c\x3a\xcc\x4b\x19\x0e\x01\x93\x0a\xa8\xa0\x7e\x2e\x72\xa8\x4f\xfc\xb3\x22\x4d\x67\xe2\xa8\xef\x27\x98\x7e\x13\xd7\xdb\xde\x65\xc2\xdc\xbe\x46\x03\x4f\x1a\xd8\xab\x79\xdb\xcb\x5f\xc5\x25\xe3\x39\xd4\x9f\xa1\x1c\xae\x03\x75\xec\x9e\x2b\x13\x0f\x1f\x26\x60\x1a\x2b\x0b\x2e\xc5\x77\x28\xf4\x81\x3b\xb1\xb3\x43\x56\x1c\x53\x39\x7a\xcd\x51\x68\xbc\xc0\x59\x5a\xee\x3e\xf8\xe5\x3b\xf6\x4a\xfc\x85\x15\xa6\x2c\x14\xc8\x71\xec\x96\x37\xb6\xb0\xfe\x45\x52\x6d\xb8\xd4\x29\x53\xa6\xf3\xb0\x31\x32\x13\xbc\x8d\x40\xe3\x90\x69\x0b\x1f\xb4\xe5\xdd\xe9\x7b\x89\x99\x67\x89\x3d\x50\x78\x2c\xdb\xc2\x3b\xe4\x57\x87\x0f\x1b\x5e\x33\xf1\x0d\x03\xfc\xdf\xa3\x1b\x75\x3b\xf9\xe0\x0d\x73\xaa\x88\x01\x6b\x35\xf1\x80\xc3\x50\xb8\x83\x0a\xd0\x0d\xd9\x7d\x80\xeb\x31\x1a\x6e\x0b\xc3\x5b\x17\xda\x77\x32\xc2\x0e\x21\x39\xc9\x4b\x0f\x54\x7a\x46\x49\xe6\x9a\xa7\x35\xa8\x17\x23\xd4\xe0\x7e\x55\x32\x1f\xfb\x43\xb8\x52\xbf\x5d\xef\x54\xd0\x81\x4a\x65\x3c\x16\x0c\x84\x8b\xa9\x54\x01\x50\x15\xfa\x86\xec\xb1\xd9\xe7\xaf\x25\xf4\x57\x92\x8a\x88\xd1\x3d\x38\x95\xad\xd8\x3f\x50\xc5\x03\xe1\xb7\x70\x71\x18\xca\x17\xb9\x31\x22\x56\x36\x2f\xd0\x12\x82\x4e\x86\x6f\x40\x81\x1a\x60\x47\x75\x2a\x3e\x9e\xa1\xaa\xf8\xf1\xde\x95\x1a\xdc\x31\x24\x46\x8b\x5d\x3a\xc0\x27\xa8\xc6\x59\x6b\x8f\x02\xd8\x98\xe1\xf7\x3f\xe7\x4e\xd9\x61\x5f\x58\x68\x9d\x69\x06\xea\xad\x56\x50\x40\x7c\x97\x29\xca\x9a\x80\xaf\xe4\x99\xa9\x22\x56\x4f\x90\x1f\xeb\xf6\xb9\x41\x19\xad\xb3\xe5\x7e\xbe\xbb\x96\xef\x23\x41\x43\xa0\x9a\x08\x61\x85\x79\x0c\x98\xb6\xbc\xcd\xef\x5e\x8c\xf6\x08\x36\x03\x5b\x16\x4f\x28\x9b\xff\x52\x3f\x40\x0e\x3a\x95\x29\x2f\x5b\xb8\xd1\xe4\xe6\x4d\x75\xa8\x3d\xda\x72\x34\x3c\xf2\xab\x84\xf1\x8c\xd1\x2a\x40\x45\x10\xe4\xcc\x54\xcb\x5f\x17\xc8\xab\x56\x79\xcf\x7d\x5a\x9f\x04\x5e\x2c\x9c\x09\x35\x39\xa2\x01\xfe\x04\x7c\xa2\x02\x74\x01\x9b\xef\xb2\x80\xf7\xd1\x51\x8f\x29\xc3\xd2\x67\x01\x14\x0a\xe0\x3c\xea\xb1\x01\x9f\x7a\x1e\x6e\xdd\x59\x51\xc1\x00\xb7\x09\x3e\xa5\x89\x49\x5b\x5a\xa1\xcb\x2f\xd0\xbe\xe0\xd3\x84\x3b\x9e\x09\x53\x9d\x69\xaf\x22\x75\x6c\x60\x0e\xe7\x34\x6f\xb9\x84\x0f\x35\x9c\x2f\x4f\x85\x7c\x1b\x1b\xeb\xc9\x58\xcb\xf7\x85\x44\x00\xf6\x7c\xbd\x7a\xd9\x1d\xf6\xeb\xc3\xf7\xd9\x7e\xfe\xfd\xe0\xed\xf6\xdb\xd5\x66\xb3\xdc\xba\xe8\xca\x0f\x12\xcf\x25\x7f\x77\xeb\xa7\xc5\x61\xf7\xba\xd9\x38\xe6\x03\xf0\x43\x9f\x6a\x57\x1c\xeb\x95\x04\x1f\x01\xba\x11\x86\x63\x26\xcd\x2f\xd7\x9a\x7f\xc2\xee\xd1\x9f\xea\x7e\xe8\x1b\xf2\xcd\xe6\xdd\x1e\x21\x97\x37\xf7\x1d\x47\x58\x22\xf0\xc3\xc4\x48\x36\xdb\x68\xbc\xbc\xc2\xeb\x6e\x61\xfa\x35\xbb\xed\xda\x8f\xe2\x04\x75\x0d\x57\xf3\xb5\xc9\x2b\x4f\xc9\x89\x4f\x00\x66\xc0\x67\x24\x42\xb9\xd9\xcd\x76\xdc\xe4\x08\x3e\x63\x94\x18\x85\x10\x4c\x78\x4e\x13\x48\x80\x1f\xd3\xd0\xf0\xe3\x1b\xe7\xca\xaa\x1b\xf5\x77\x47\x3f\x89\x13\xac\x66\x5b\x3d\x49\xc7\x0e\xd8\x07\x46\x82\x9f\x80\x88\x5b\xfd\x5e\x83\xd9\x5f\xeb\xb9\xeb\xd1\x74\xc6\xd1\xe7\xcd\xeb\x6b\xdf\xc8\xba\x4c\x8f\x0b\x78\x1f\xbd\x35\xae\x75\x62\x5d\x0d\x9b\x95\xeb\x3a\xaa\xc0\x17\x02\x70\xad\xfe\xf7\x3f\x9e\xfa\xd5\x37\xf0\x65\xc8\x10\x05\x81\x9e\x99\x6b\xbc\xdf\x94\xb0\x9a\xaf\x27\x28\x77\xc1\x57\x21\x4f\x5a\xb2\xef\x0b\x86\x8c\xf9\x0d\xbd\xec\x6a\x95\x3f\x40\xfd\x01\xdd\xb5\x15\x30\x6c\x3a\x7d\x7d\x79\x5c\x3f\xaf\xff\x76\xae\xc4\x07\xcf\x30\xe4\xd4\xfc\x0d\x1c\x95\x7c\xfb\x5e\x21\xa6\xc8\x87\xe1\x3a\x54\xe6\xd7\x69\xf4\x1f\xf8\xda\xd7\x5e\xbf\x17\xe8\xcb\x0c\x21\xf8\x9a\x09\xf4\xb5\xf0\xb1\x0d\x52\x70\x8a\x1b\x16\x7c\x1d\x87\xd8\x36\xf6\x81\x1d\xae\xae\xd5\xda\x1c\x0c\x88\x2f\x15\x73\x5c\x1a\x25\xf0\x69\x34\x33\x04\x24\x61\x58\x1d\x71\xef\xd9\x9d\xef\x85\x0a\x1b\x70\x34\x2f\xe1\x03\xb2\x71\x5b\x22\x04\x1e\x93\x06\xdc\x6b\x00\x59\x23\x9d\x5e\x37\x88\x33\x4c\xf7\x2e\xb6\xf3\xf6\xc2\xc2\x43\x2e\xa9\x9c\x9f\x61\xcf\x7b\x41\x9f\x3b\x0e\x1a\x3b\x1d\xf6\x27\xfe\xe1\x3c\xaf\xa9\xb0\x37\xa0\x51\x20\xa1\xa7\xfb\x30\x60\xc1\x81\xc0\xa7\x01\xf6\x8b\xce\xcb\xdb\xa5\x2e\x2e\x4e\x37\x07\x02\x3f\x21\xc8\xe5\x7d\xe6\x6f\xf0\x54\x1c\xe7\xc8\x0b\xf6\x77\x1d\xae\x69\x7b\x17\x04\x1e\xc3\xce\x95\xda\xa9\xf0\x50\xe2\x25\xee\x07\x03\x2d\xb1\xb0\x9c\x62\x4a\x72\x90\xd9\x0c\xc2\x44\xa2\x3e\x78\xc7\x7c\x3a\xfd\x99\x22\x42\xd1\x56\x20\xdd\x01\x5c\xcf\x7f\xb8\x0b\x44\x01\x41\x90\x70\x8a\xea\xe2\xda\x70\xfa\x4d\x5b\x8b\x20\x0a\x18\x76\x9d\xbf\x1b\x8c\x90\x89\x9b\x6d\x2f\x4e\xda\x87\xd2\x8d\x4e\x8b\x39\x2e\x9f\x39\x64\x75\x2a\xfb\x11\x74\x10\x47\x86\xd0\xec\xdf\x50\x16\x3b\x4b\xbd\x7c\xff\x76\x62\x4e\x4c\xfe\xb7\xd9\xb4\xfa\x02\xf0\xf6\x78\x22\x3c\xf4\x2f\x66\xf9\xad\x3e\xa5\xf9\x71\x66\x71\xbf\xae\x56\xfa\x1f\x7e\x93\xbf\xfb\xaf\xfd\x75\xce\x04\xc2\xd1\xd2\x8e\x55\xab\x13\x57\x84\x80\x27\x26\x3b\xfd\x72\xbc\x76\xab\x83\x4b\x8a\xe8\x28\xbc\xcd\x05\xaf\xf9\x27\x6f\x5c\x10\x4a\xad\xdf\xcd\x65\x9d\xbe\x03\xf2\xa8\x8c\x1e\x5f\x68\x23\xca\xf3\x0d\x72\x5e\x16\x9f\x03\xb4\xbe\xca\xbf\x43\x20\x03\xca\x49\x27\x44\xb5\x4b\x55\x6b\xb7\x03\x99\xc4\x18\xc9\x18\x07\x7b\x5c\x5e\x84\x40\x72\xe6\x45\x6d\x7d\xa3\x71\xe3\x65\x0a\xef\xae\xc8\x01\x81\x52\x09\xea\x1c\x7c\x43\x67\xa1\xeb\xe4\x81\x40\xe9\x04\x33\x3f\x97\xb2\x50\x57\x14\xc8\x69\x2d\x10\x84\x12\x37\xda\x12\xde\x81\x67\xa0\xe6\x8d\x83\xd7\xde\x12\xc4\x0c\x88\xb5\x4f\xff\xbc\xa6\xf2\x6d\x53\x16\xe7\xa2\x27\x70\x05\x01\x88\xc4\xf5\xae\xee\x00\x54\x85\xf0\xa6\x27\x5e\x59\x16\xff\xe1\x23\x80\x62\x49\xe4\x34\x57\xaa\x8d\x85\x87\xb8\x4b\x69\xdf\xb0\x6f\x5a\x05\x48\x05\xd9\x88\x98\x1c\x02\x1d\xc5\xc8\x3a\xb7\x59\xbf\xac\xdb\xd3\x58\x80\xbc\xda\x1a\x85\x47\x9e\xa1\x3e\x15\x6a\xc2\x14\x85\x84\xf8\xd8\xc7\xf3\xe0\x68\x1d\x21\x24\x51\x80\x7d\xf5\x3f\xd3\x3c\x7d\xeb\x5b\xd6\x90\x44\x86\x13\xec\x8c\xb0\xd1\xc6\x5b\x30\xc5\xfa\xae\x26\xe3\x06\x4a\xd3\xd9\x54\x41\x69\xe6\x65\x27\xa8\xdf\x7c\x7e\x9b\x83\xa3\x5d\x2e\xba\x53\xd7\x1f\xe7\x8b\x27\x67\x7e\x48\x40\xf8\x16\xe3\xb7\xcc\x55\x35\x1b\x59\xef\xd0\x13\x80\x22\xa1\xaf\xe7\x33\x3f\x2d\xd2\x9c\xbb\x8c\x5a\x48\x95\x44\x4b\x82\x9d\x3a\x96\x78\xd3\x7d\xb7\xd0\xa7\x44\x75\xf4\x69\x7b\xc3\x8e\xa6\x0b\x2b\x89\x37\x15\x31\x85\x7e\x62\x28\xae\x4c\xdc\xf9\x36\x20\x6d\xe9\xbf\x68\x3f\x21\xe8\xef\x7c\x14\x85\x1a\xa0\x1b\x20\x0c\x48\x84\x75\xf0\x03\xf9\xf5\x94\xd6\x20\x1d\xa7\x74\x7b\xdc\x8b\x11\x64\x58\xa6\xc7\x53\xcd\xc2\xd1\xa3\x06\x21\xc5\x1c\xe5\xfa\x75\x3f\x5f\x3f\x2f\x0f\x08\xde\x75\xa7\x86\xbe\x8e\xc2\x8e\xfa\x6a\xda\x4c\x86\x61\xc8\x8d\xb7\x00\x55\xed\x4c\xab\xad\x27\xf7\x63\x2f\xef\xae\xed\xc5\xc1\xaf\xfa\x7f\xbe\xff\x9f\xfd\x28\x34\x0c\x23\x46\xc3\xce\x66\x2d\x51\x8d\xb6\x8d\x24\xc2\x48\x49\x30\xcc\x8b\x68\xdb\x31\x0b\xd6\x29\x06\x41\x18\x41\x88\x28\x79\x14\xcc\x43\xf2\xdf\x66\xfb\xb8\xaf\x94\xf7\xde\x7c\x04\x46\x64\x08\x5b\x67\x94\x65\x03\x6e\xa9\x9c\xda\xaf\xc0\x42\xd3\xb7\xfb\x3c\xfb\xe3\xb0\xfe\xf9\xb2\xdc\x1e\x1a\x6f\xff\xb0\x5b\xed\xdb\xb7\xc9\xc0\xac\xfc\x0b\xbf\xad\xaf\x43\x4f\xd9\xa3\xf1\x7f\x0d\x3e\x4b\xec\xb5\x20\xbb\x0d\x97\x6f\x8d\xab\x8e\x25\x82\x5e\x92\x23\x1e\x7d\x86\xc4\xa7\x2e\xd5\x85\x34\x82\x1d\xc4\x78\x94\x14\x09\x93\x88\x63\x99\xfc\x5c\xbc\xc3\x1c\xd2\x6c\x0c\xf2\x80\x30\x81\x90\x91\x36\x34\x5c\xe3\x6b\x6c\xec\x8b\x3c\xf1\x34\xa7\x5f\xa5\x23\xc2\x44\x9b\x3a\x97\xc9\x49\x39\x6e\xda\xe1\x18\x2e\x63\x2c\x0e\x95\xc5\x48\x08\x06\x42\x0e\x66\xd7\xb1\x7d\xb6\x77\xad\x59\x10\x0a\x12\x61\x2f\x13\xb6\x31\xe1\xd7\xdf\x40\xb9\x6c\x43\xeb\x50\x81\xc4\x42\xf3\x9f\xbc\x58\x5c\xdb\x55\x00\xd2\xf4\xff\x19\xa8\xd7\x02\x10\x28\x95\xcb\xb4\x35\xcc\xa1\xf6\x59\x68\xab\x44\xb8\x8f\x98\xa2\xba\x0b\x1b\x6c\xc8\xd9\x93\x0f\x77\xa7\x29\x3f\x56\xbd\x32\x1d\x02\x8c\x2e\x59\x5f\x83\xa0\x9b\x4d\x11\x49\x38\xe6\xa3\x1e\xaf\x99\x4e\xb3\xac\x31\x82\x46\xbb\x76\xba\xb3\x1b\x22\x22\x35\xb6\x39\x36\x96\x58\xfd\x4c\xf3\x4d\x51\x64\x83\x8c\x6a\x44\x23\xa2\x6d\x62\xc5\x30\x92\xbf\xc0\x87\xf1\x22\x78\x5a\xb6\x83\x62\x8a\x38\x9a\xdd\x7c\x61\x00\x79\x5e\x7b\x44\x2a\x2e\x5c\x5f\x63\xb3\x75\x58\xad\x37\x77\x58\x01\x22\x39\xf4\x35\x57\x8f\x3c\xcd\xda\xbd\x31\xf2\x89\x17\xda\xea\xc8\x1c\x4a\x43\xcb\xd5\x17\xb0\x6b\x46\x44\x41\xd2\xa7\x93\x1c\x29\x20\xc7\x6e\x5c\x68\x26\xbb\x61\xc2\xda\x5c\xb3\xcc\x31\xda\x9a\x79\x3e\xee\xf6\xfe\x42\x41\x17\x22\x3f\x56\x26\xa3\xd3\xc4\x53\xab\xc7\x9d\xad\xdc\x0c\x07\x05\x44\x07\xb2\xc7\xc6\xe3\xee\x38\x8c\x35\x62\xd6\xce\x37\xcc\xed\x2c\x7f\x5d\xd2\x72\xac\x5b\x05\x51\x14\x46\x0e\xdd\x3d\xe7\x59\x36\xcd\xef\x09\x51\x64\x55\xda\xdb\xc7\x7f\x4b\xf3\xe3\x23\x40\x35\x0e\xa5\xa3\x88\x49\x4b\x18\x8b\x60\xf2\xd7\xed\x6a\x7c\x29\x29\xb1\x22\xb0\x2f\xb9\x84\x7d\x31\x8d\xb7\x98\xb4\xce\x51\xa4\x23\x83\x63\x45\x65\xa8\x5e\xe3\x2a\x44\x2c\x32\x02\x83\xe6\x06\x7f\x14\x75\x9a\x1f\x07\x8d\x2b\xd3\xdb\x67\xc4\x44\x4c\x6c\x23\xa8\x3f\xbe\x8b\xfb\x0a\x71\x14\x13\x40\xa0\xd1\x7c\xbb\x9c\xed\xd7\xdb\xdd\xc1\x74\x78\x1f\x66\x8b\xc5\x76\xb9\x73\x19\x91\x28\x66\xa1\x27\x5b\x5a\xd6\x1f\x50\x39\xaa\xba\xea\x71\xc4\xc2\x05\x51\x0c\x86\x3c\xa5\xf1\x90\x8a\x34\xfb\x7e\x3d\xab\xfa\xb6\xfc\x25\xe1\x72\x47\xca\x01\x51\x02\x4c\x59\x3e\x87\xf4\x7c\x3d\xbb\x28\xff\xa9\x28\x2e\x77\x4f\x6a\x4f\xe1\x9e\x92\x96\x5a\xf5\x78\xaa\x41\xfd\x40\xba\x7c\xeb\x42\x7e\x72\x4a\x60\x04\xf3\x4a\xa8\x4b\x9e\xd6\x8e\xab\xe3\xd0\x2e\x34\x11\x08\x70\x0d\x91\x43\x76\x51\x88\x44\x4c\x90\x82\xdb\xf2\xe2\x7c\x83\x73\xb5\x33\x7d\x8c\xed\xd9\x20\x10\xeb\x69\x43\x83\x87\xeb\xad\x3d\xa2\x25\xef\x54\x7b\xff\x51\x88\x87\x9b\xe3\x80\x1b\xbd\x08\x19\x18\xc9\x5b\x8c\xb9\xf6\xe7\x22\x87\x9b\x2b\x4a\x46\x92\x07\xd8\x00\x6a\xea\x42\xcb\xb2\x2c\xa6\xe1\xcd\xcd\x48\xc3\xf8\x7d\x84\xba\xf1\x49\x5d\xa8\x5a\xc2\x78\x91\xa9\xd8\x57\xb4\xbd\xb1\xa7\x82\xe7\x36\x56\x9e\xd5\x58\xe6\x7b\xb8\x3d\x21\x03\xd5\x68\xae\xab\x84\x9b\xf2\x68\x7f\x92\x4f\x4c\x2b\x88\x39\xa1\xbd\xb4\x70\xd6\x4f\x0b\x0f\x91\x8d\x10\x81\xf2\x11\xc8\x84\xf5\x71\xc3\x8d\x8a\x84\x15\xce\xfa\x47\x9a\x6a\xf4\x1c\x16\x8d\x91\x1f\xfb\x50\x91\x06\x1f\xdd\x3e\x6c\x2c\x7a\xde\xbf\xf6\x92\xbe\x91\xd6\x31\x77\x35\x88\x4e\x0f\x01\x18\x21\x26\x42\x68\x4b\xfc\xbc\xcc\xd3\xfc\x38\xda\x8c\x19\x91\xe6\xc3\x36\xd3\xa2\xb2\xb2\x32\xcd\x96\xed\x0e\x2b\x23\x85\x87\xf9\x48\x84\x38\xf4\x78\x27\x80\x51\x12\x21\x1a\x73\x8b\x8b\x66\x10\x1f\xfc\xd7\x10\xfc\xeb\x4e\xa0\xda\xc5\x16\xab\x0a\xa3\x0e\x7c\xa6\x4f\x74\xcf\x81\xd1\xd0\x27\x16\xa6\xb9\x6d\x6c\xd6\xd7\xa6\x81\xf9\x84\x3b\x50\x81\x79\xc1\x08\xd0\x9b\x72\xb2\x99\xef\xeb\xd0\xfa\x2b\x73\x7e\x19\xac\x07\x16\xf8\x1a\xdf\xe9\xe5\x9a\xbf\xdd\xf5\xfe\x00\x0b\x18\xc3\x5a\xc2\xf3\x77\xb3\x99\x61\x9b\xd5\x70\xf6\xb1\x90\x86\x58\x16\x71\x6a\x7b\xb8\x9f\xf7\xf0\x4d\x2c\x0c\x00\xf5\x05\x14\xbf\x55\xfd\xfe\x45\x60\x91\xc7\x59\x5b\xff\x5e\xc0\xfb\xd4\x16\xc2\x22\x1e\x23\x0a\xef\xbd\x99\x4c\x06\xda\x05\xbd\x38\x8f\x45\x5a\xe0\x16\x63\x28\xcb\x47\x48\x6a\x3b\x86\x25\x86\x2c\x61\xb6\xf8\xb1\xda\xad\xfb\x84\xc5\xc0\x98\x0a\x90\xb0\xd0\xa4\x71\x9e\x1b\xe3\xc3\xd3\xbc\xea\x4f\x4b\x16\x33\x8e\xcf\x28\x8b\xb2\x04\x59\xaf\xcb\xf4\xd8\x3c\xed\x00\x23\xc6\x62\x30\x4c\x18\xe6\x42\x86\xc7\xaf\xbd\xcb\x84\x03\xf6\xc3\x9b\xad\x17\x7b\x29\xe5\x7d\xb0\x32\xf9\x8f\xbd\x02\x8f\x69\xe0\x64\xa4\x31\x43\xf2\x45\x99\x94\x89\x28\x31\x92\x19\x65\x63\x7b\xef\xd6\xb6\x1b\x25\x7d\x5c\x8b\x5c\xa9\x81\x6e\xdc\xe8\xed\x49\x8f\x11\x3b\x81\xfe\x51\x08\x44\xea\x0d\xaf\x23\x3d\x49\x85\x83\xa9\x98\x45\xb8\x48\x8f\x50\xdd\xc3\x8c\x86\x01\x89\x3b\x9d\x19\x0e\x3c\x8c\x6b\x7a\x50\x08\x7b\x58\x25\xca\x68\xed\x3b\x86\xe6\xc6\xe1\xbd\x96\x9f\x68\xae\x01\x03\x5f\xd0\x41\xa9\xa9\xe8\x3e\x83\xa6\x91\xc5\x5a\x39\x1d\xab\x21\x2c\x64\x64\xce\x62\xc2\xe3\x28\x71\x8a\x34\x3c\xeb\xf2\xef\xab\xbc\xed\x44\x82\x98\xfa\x22\x60\x7d\xb5\x6b\xf5\x70\x2d\xa7\x91\x8f\x10\x53\x88\x23\x5b\x72\x40\xa9\xd9\x91\xb9\x8d\x03\xdf\x48\x91\xcc\x8e\x25\x60\xf0\xfe\x5a\x66\x5b\x87\x3b\x88\x83\x98\x40\x9b\xbb\x7d\x86\x9a\x2b\xde\x35\x53\xf4\x4b\xcc\x83\xf9\x10\x87\x89\x61\xb7\x98\x9f\xa0\xad\xb0\xfc\xb0\xac\x1f\xc3\xd7\x17\x47\x9e\x24\x23\x4a\xb2\x36\xcc\x1c\x8e\x8c\x89\x29\x02\x6e\x4a\x38\xa7\x39\x28\x34\xab\xee\x46\x63\x2f\x70\x8a\xcb\x0a\x0c\x6a\xa9\x3d\x44\x19\xaa\xf4\x7c\x43\xed\xd0\x61\x8d\x2a\x8e\x43\xc3\x6d\xdd\x04\x9e\xcd\x06\x4c\xbb\x03\x02\xbd\x8b\x8f\xa2\x7c\x83\xb2\x71\xcf\xbf\x5f\x45\x7b\x30\x8e\x42\x6e\xd3\xa3\xf6\xf1\x8c\x96\x6b\xcf\x10\xc5\x31\x67\x42\xf5\x24\x34\xba\x2a\x4f\x1c\x8b\x00\x23\xb5\xba\x65\x63\x2f\xe4\xdb\x13\xe8\xee\x9e\x55\x88\xce\xff\xff\x5d\xd5\x11\x1e\xf9\x9b\x99\x37\xb3\xbc\x6b\xcf\x99\x34\xeb\x71\x92\x98\x14\x7a\x07\x61\x99\xaa\x53\xc7\x89\x0a\xb1\xd4\x6d\x53\xcc\x13\x1a\x96\x3d\x34\x4f\xcc\xfd\xc0\x79\xa9\xf8\xdb\xcd\x4e\x75\xad\x5a\x35\xfa\x76\xcb\x8c\xb9\xaf\xf0\x4d\xef\xa0\xbc\x34\x93\xb6\xda\x5e\x11\x45\xe6\x9e\x8a\x47\x0a\x2b\x93\x56\x9f\xa0\xd9\xb3\xa7\x1a\x28\x21\xe6\x22\xc2\x56\xc0\x59\x29\xd2\xba\xe4\x47\x10\x6d\x1e\x3c\xe6\x92\x60\xe6\x58\xc1\x3b\x64\xc5\x05\xca\xea\x2e\xd3\x14\x73\xa5\x2c\xf1\x76\xfd\xdc\x58\x57\x3e\x6a\xb8\x83\x58\x30\x89\x20\x9d\xfc\x7a\x96\x3c\x6b\x73\x3d\xb1\xa4\x86\x58\xf9\xc8\xcf\x30\xba\x7b\x19\x32\xb0\xc8\x68\x3b\x89\xf6\x45\xf3\xd3\x1f\x6e\xbe\xa2\xa5\xe8\xdd\x85\xf2\x89\xe9\xe3\xe1\x97\xb4\xe6\xd9\x1e\xe4\xa9\xa5\xfa\xfd\x1a\x43\x11\xab\x98\xe2\x6d\x54\x1f\xfc\x72\x4f\x3c\x03\xb1\xe2\x8a\x05\xd6\x2b\x4d\xe1\xdd\x31\xbc\xba\xc9\x7d\x87\xc8\x8a\x95\x68\x99\x44\x1c\xb3\x3f\x77\xa4\xda\x10\x2b\xe9\x61\xa0\x62\x62\xc4\x1d\x18\x32\xab\x2f\x8b\x7e\x9d\x85\x51\xca\x34\x66\x3c\x5d\x7f\xb5\xdf\xab\xbf\x9d\xc5\x0a\x4c\xa3\x05\x92\x20\xf0\x52\x59\xb5\x8f\xaf\xaf\x0a\x7e\x82\x49\xb7\x7f\x6e\xbf\x7d\xb5\xf5\xc4\x9a\x79\x28\xaf\x7a\xe9\xa5\x5e\x26\xc7\xc5\x2a\x4a\xdc\x0b\xb0\xed\x32\xf3\x7b\x30\x45\x42\x08\xc5\x9d\x93\x2b\x85\x6f\xe8\x13\xad\x86\x49\xb1\xed\x2f\xff\x9b\xbb\x7e\xc4\x74\x4b\x60\x98\x0d\xb1\x44\x09\xe1\x21\xd6\x1a\xe1\xd7\x05\xbf\xc0\x3d\x34\x3c\xf1\x02\x95\xb0\x8e\x45\x03\x33\x8b\x06\x8f\xf5\x57\xf2\x3e\x83\x5f\xa2\x49\x6c\x24\x4e\x66\x7f\x4c\xf6\x67\x4d\xa4\xcc\x12\x9a\xa8\x40\xda\xec\xd1\xea\x61\x3f\xb7\x30\x30\xcc\x8c\x34\xeb\xf8\x73\xa7\x3e\xf1\x29\x65\x86\x11\xf2\x63\xec\xd3\xbb\x11\x89\x42\x1c\x40\xe3\x4f\x3d\x96\xc5\xd9\xb8\xc3\x3d\xe6\xfe\xf8\x7f\x3c\x1a\xff\xef\x7d\x79\xb3\x9b\xe4\x89\xaf\x04\x6a\x8c\xbd\x15\x1d\x61\xca\x80\x8d\x0c\x92\x80\x98\xee\x6a\x13\x1b\x7f\x2f\xee\xee\x23\xa0\x3e\x7e\x82\x53\xf1\xf1\xcc\xf3\xdb\x74\x54\x98\x04\x54\xa3\xfb\x2e\xae\x69\x86\xa5\xa7\xa2\xaa\xbb\x1d\x3a\x09\x18\x4d\x5c\xdb\xe6\xfe\xfb\x70\xcb\x49\x02\x45\x59\x6c\x45\x69\xb7\x70\xb9\xd6\x83\xce\x9f\x69\x83\x90\x84\x9c\x20\x61\xcf\xaa\xb8\x6e\x8b\xa2\x1e\x68\x4e\x4d\x51\x46\xda\xd3\xa2\xc0\xc7\x8c\x38\x8a\xb9\xa0\x32\xe8\xfe\x0b\x54\xd6\xc4\x87\x8b\x02\x03\x30\xc4\x90\x02\x2a\x97\xd4\x9a\x98\x1d\x51\xc8\x11\xb3\xd5\x36\x45\xfc\x04\x78\xcb\x2c\x68\x63\x38\x87\xa3\x58\x48\x07\x83\x48\x15\x54\xf7\xba\xaa\x90\x44\x42\x80\x91\xa2\xb4\x16\xd3\xe9\x07\x57\x4f\x05\x57\x6d\xba\x2a\x89\x94\xe1\x68\x3d\x54\x50\x5b\xae\x80\x09\xa7\x32\x61\xc4\x48\xb3\xed\xe6\x9b\x9d\xd7\xb7\x4e\x09\x23\x4a\x9b\x6d\xba\x4e\x4b\x78\xe6\x7d\x16\x71\x37\x24\xd0\x18\x26\xda\x76\x3b\xc3\xc0\xfc\x08\x08\x70\x1f\xdd\x36\x63\xb1\x49\xad\x73\xf5\xc8\x45\xfb\x1b\xb1\x32\xcd\xfe\xe9\xf1\x54\x27\x64\x74\x4e\xcc\x13\xf4\x20\x75\xcb\xbd\xd1\xf8\x61\xc3\x72\x40\x92\x84\x42\x25\xed\xde\x69\xf3\xaf\xf7\xb9\xb7\xcf\xfe\xbd\xcb\xb6\xb9\xcb\xda\x6e\x90\x26\x4c\xed\xb8\xda\x20\x49\x58\x82\x32\x0b\xe7\x42\xed\x6e\x67\x51\x64\x43\x43\x95\xa8\x10\xd3\x0a\xf3\xf5\xfa\x69\xb1\xfe\xf9\x72\xe8\xf3\x56\x41\xc2\x03\x0f\xaf\xba\x28\xb9\xae\xbb\x3d\xef\x4b\x8b\x9f\x70\xed\x23\x84\xf4\x98\xbe\xc3\x63\x51\xca\xd1\x96\x9d\x08\xcf\x47\xaa\xc6\xb6\xc6\xbd\x80\x2c\x7d\x87\xae\x37\x73\x68\xe1\x44\xe0\x59\xd5\x17\xe4\xf4\x7c\x2c\xca\x6f\x45\x91\xf1\x5e\x8a\x35\x91\xbe\x11\x88\xc4\x3d\x01\x33\x17\x8e\x33\x71\x35\xea\x35\x48\x64\x60\x28\x6d\x2f\x25\x5c\x78\xaa\x5e\xf3\xb4\xc5\x83\x27\x32\xb0\xa8\x3f\x5e\xc3\x1e\x72\x7e\xb7\xa7\xc8\xc4\xc7\x14\x58\x55\xf3\xb7\xbb\xa2\xf4\xe8\x2d\x48\x2d\x50\xb2\x36\xad\xe1\xbc\x45\x0e\x24\xf7\x33\xca\x17\x88\x10\x99\xd5\xc5\x3a\x87\xa9\x98\xec\x7a\x87\xf9\x4c\x20\x88\x8d\xa7\x89\xf1\xb4\x9a\xd2\xfb\x82\x44\x6b\xd3\x10\x67\xe6\x96\xb3\x10\x5b\x68\xae\x84\x61\xa3\xf5\xdd\x47\xeb\x82\x13\xc2\x10\xe5\xa7\x78\x9a\xdd\x90\x95\xb5\xe7\xc3\x72\x12\x46\x46\x36\xe6\x03\xe0\x32\x1d\x9d\x70\xc2\xb8\x6f\x9a\x61\x64\xf1\x0e\xe5\x2e\x3d\x5f\x46\x5d\x12\xf1\xf4\x6c\xe1\x9e\xa7\x2d\x5b\xe9\xf1\x98\x59\xfe\xcc\x67\x5e\xcb\x53\x1b\xaa\x73\xcf\xf2\x14\xcf\x94\x42\xf3\xb5\x2f\x10\x62\xf8\x15\x6f\x05\x70\x2f\x24\xd0\x69\xf4\xb9\xf8\xb2\xf1\xeb\x3f\x17\xb3\x02\xee\x45\xda\x37\x90\xf6\x5b\x9f\xca\x1b\x0f\xc4\x86\x34\xe0\x5a\x35\x6f\x36\xad\x3f\xc9\x4d\x72\x3f\x90\xe0\x3a\x96\x79\x59\xdf\x75\x5f\x02\xf7\x63\x2f\x49\x9c\x12\x67\xe9\xe4\x79\x9d\x42\xd3\x68\xac\x88\xd0\x7d\x5a\xcd\xd7\x87\xa1\x4c\x03\x70\x5f\x9b\xf7\xf2\x0d\xea\x26\x6a\x11\xa9\xdb\x9a\x78\x40\x42\x14\x80\xdd\xf3\x5f\xed\x9f\x6c\x7f\x95\xeb\x2e\xfa\x04\x77\xc3\x03\x1a\x5a\xae\x43\xf9\x36\xba\x97\x20\xf4\xc0\x35\xdf\xf1\xac\xa7\x62\x6a\x77\x29\x1e\x7a\x31\xc2\x08\x53\x59\x60\x3a\x67\x13\xb8\x5f\x0f\xa9\x87\x56\xef\xf0\x5e\xd4\x30\xfb\x14\xa5\x37\xe9\xe3\xf0\x28\x36\x44\x51\x39\x7c\x18\xb3\x3e\x2f\x2e\x6e\x0f\xe2\x51\x62\x54\xba\x10\xc3\xe1\xda\x8c\xd6\xf9\x03\x9c\x78\xa6\xd7\x7a\x0b\x12\x71\xea\x9f\xba\x45\x13\x4c\x7f\xc0\x23\xdb\x98\x61\x7a\x87\xfa\x5a\xf4\xc0\x23\xc5\x22\x65\x23\xcd\x6f\xbd\x5e\xd9\xb6\x0d\xad\x77\x19\x25\x7c\xe9\x2e\xf3\xd5\x22\x9f\xb6\x21\x3c\xd2\xc6\xa8\x77\x08\x90\x7d\x71\x79\xbd\xdc\xcb\xc7\x02\x67\x24\x0a\x44\xaf\x65\xa6\x28\x5b\x2d\xa3\xcf\x60\x1a\xee\xbe\xbf\x2e\xc9\x8f\x6e\x89\x25\x21\x9a\xda\x26\x62\x3e\x18\x80\x97\x7b\x31\x31\x68\xe0\x1d\xd0\xa3\x15\xf8\x04\x9e\xd0\x58\xb9\x72\x00\x6e\x42\xdf\x3b\x88\x31\x4f\x22\x43\xd9\x66\x6b\xb7\xc8\xdc\xf1\xc4\xab\x7a\xc3\x53\x35\x6b\x2f\xce\x89\x46\x24\xc8\x7c\xde\x6f\xc5\xe0\x42\x50\xdd\xb2\xfd\xe4\x50\xde\xba\xda\xcd\x97\x6f\x56\x48\x13\x45\x1c\x0e\x5c\x14\x65\xfd\x78\xad\xda\xb5\x23\xe3\x48\x05\xad\x62\x14\x1a\x51\x2e\xef\xcb\x16\x5c\x4a\x53\xa3\xba\x94\xe9\x7b\x9a\xc1\xf1\x73\xca\x8d\xd1\x6f\x4b\x65\xa4\x26\x90\xc6\x7f\xc3\xaf\x15\x18\xba\xb1\xd6\x05\xe3\x4a\x9a\xa6\x09\x9c\x37\x3b\xa8\xef\x85\x48\xbf\x24\xb5\x00\xae\x14\x57\xb4\xe5\xd8\x99\x84\xc9\x73\x05\x06\xce\x57\x42\x55\x64\xef\x70\x40\x80\xca\xe1\xd4\xcb\x2d\xd9\x81\x40\xe2\xc0\xee\xae\xb8\xe9\x5e\x3b\xbe\x7a\xb7\xf0\x41\xf7\x6e\xb8\xdf\xbf\xd8\x71\xac\x03\xd7\x02\x4c\xb3\xbd\x81\x5f\x00\x3f\x4f\x13\x75\x98\xe1\x82\x44\x46\x62\x12\xe5\x02\xf3\x87\xeb\xcd\xec\x0d\xbf\xb9\xc3\x89\x44\xfb\x0e\xf5\x49\x0c\x3b\xbb\xed\x00\x2f\x0c\x8c\x08\x99\x95\x23\x49\x47\x66\x58\x78\x60\xb0\x1d\x1a\xe4\xe9\x47\x51\xc3\x33\x4f\x11\x0f\xf2\x60\xba\xd6\x47\xa3\xa9\x97\x18\x65\xf9\x42\xd7\x92\x5f\xb6\xc0\x65\x67\x8a\x05\xa5\x4c\xc2\x80\x63\xb9\xf1\x9a\xdb\xa3\x21\x60\x41\xb2\x2f\x68\xb2\xce\xc7\x37\x4c\x23\x86\x49\xc6\xf9\xaf\x97\xfa\x3e\x55\x20\x28\x67\x81\x61\x31\x78\xe6\xa8\x1e\xd0\x5e\x5d\x13\x6c\x64\xba\xf0\xdb\xee\xc4\x4b\x38\xd9\x0a\xc5\xf0\xfe\x7d\x12\x72\x3e\x22\x72\x5b\xe5\xc3\x2a\x8b\x08\x18\x20\xd2\x3b\x4b\xf3\xb7\x3d\x42\x06\xfb\x6a\x0a\x43\x97\x53\x84\x5e\xc2\x6c\xc1\xec\x11\x35\x80\x7b\x7e\xa7\x08\x63\x6a\xa5\xec\xab\x7a\x51\xc8\x6b\xe3\x09\xb7\x08\xbb\x9e\x13\xdb\x4e\x7a\x11\x72\x85\x89\xea\x66\x1a\x62\x4a\xc9\xcc\x93\xf6\x82\x02\x90\x84\xd3\xde\x8b\x53\xcb\x6a\x73\xb4\x22\x04\x81\xd4\x35\x8f\xa9\x3a\x2e\xf7\xdf\x77\x97\x7e\x9d\x5c\x44\x5a\xe3\x93\x59\x53\xfa\xcf\x6b\x51\x5e\xcf\x43\x9c\xba\x60\x51\x62\x1a\x5e\x4c\x3c\xdc\x84\xec\x2d\x41\x24\x08\x26\x02\xec\x85\xbb\xe6\x0a\x4a\x55\x1c\xef\x7b\x95\x04\x93\x86\x95\xf6\xd0\xc4\x8b\xf5\xa9\x0f\x7d\x11\x71\x68\xe8\xef\x76\x35\xcf\xd2\x5c\x76\x58\x45\x11\x47\x06\x9a\xd2\xb8\xee\x59\xb6\xe1\xf2\x8d\x77\x8f\x9d\x78\xc6\xb5\x55\x45\xce\xeb\xc6\xf9\x75\x49\xaa\xef\xc0\xb3\x16\x54\x21\x38\x15\x9e\xdf\x03\x37\x8f\xe6\x0e\x8f\x8c\x46\xde\x6a\xbe\x36\xf2\x5e\x37\x4b\xba\xe8\xce\x17\x91\xc2\x2e\x61\xa4\xb9\x1a\x12\xf7\xc6\x6e\x08\xc4\x51\xc7\x5d\x8e\x8b\xd1\xd0\xab\xdd\xa7\x78\x85\xd0\x0a\xf3\xaa\x5c\xa9\x55\x0d\xe7\x0e\xa3\xfb\xff\x0d\x0a\x29\x24\xe1\xda\x29\x44\xcb\x53\xfb\x72\x64\x44\xb1\xc2\x30\x7f\xdd\x6e\x97\x2f\xbb\xe5\xf2\xeb\x6c\x9c\x90\xb1\x6c\x99\xd0\xdd\x8d\x8f\x7e\x48\x47\x98\xea\x3b\x88\x11\x07\xaa\x3d\xae\x12\xc5\x2c\x32\x6d\x76\x49\x1d\xa9\x8c\xbb\xd8\x64\x12\x54\x28\x2e\x3d\xda\x52\x34\x6d\x10\x90\x58\x37\x61\xfb\x7c\xcc\xa0\x08\x02\x68\x92\x18\x66\xc3\x77\xc8\xeb\x6b\x89\xa1\xe9\x50\xbd\x06\x84\xf6\x88\xe9\x97\xae\x8b\x12\x06\xbd\x9b\xc3\x1f\xd6\x21\xc5\xdc\xe8\xa6\x2c\x0a\xbd\xd6\xbb\x13\xc0\xc5\x6a\xcc\x82\x24\x1e\x35\xf4\x22\x3c\x83\x7e\x57\xa7\x24\xbe\x66\x9d\xb4\xef\xbc\xbc\xa9\xf2\x47\x0a\x1f\x83\xb8\x51\x92\x50\xe3\x7c\x5b\xbe\x6e\x7f\x2e\x57\xed\xa9\x51\x62\x58\x06\x81\x9f\xd7\x39\x2c\xd2\xf7\xea\x35\x97\xb6\x7e\xe9\xc6\x48\x23\xbc\x7a\x48\xab\x4f\x54\xf9\x40\x52\x9f\xa2\xfb\x7a\xe4\x55\xbf\x61\x5a\x52\x3f\xc2\x12\x7d\x9b\x9a\xd8\xf3\xea\x6d\x8a\x16\xbf\x19\x0a\xd8\x11\xb0\xde\xec\x07\x8d\xef\x92\x86\x9c\x44\x6e\x91\x7f\x42\xa8\x3d\x70\x3f\x25\x85\x04\x23\x39\x51\xd4\xa7\xef\xfc\x1d\x66\xb5\xad\x01\xdd\x37\x06\xf6\xed\xa3\xf4\xa9\x4e\xda\xf6\xe4\x0b\x9f\xec\xf9\x92\x7e\x1c\xe1\xa3\xce\xae\x75\x81\x1a\x9a\x78\xb3\x73\x9e\x3b\x7e\x1b\x90\x3e\xd7\xd4\x66\x32\xf7\xe5\xb5\xaa\x41\x61\x3d\x75\x64\x96\xed\xe0\x80\x68\x44\x86\x7e\x9b\x3d\x2f\x0f\x9b\xf5\xfa\xe9\xb0\x7a\x59\xed\xdd\xa5\x02\x99\x84\x9e\xab\x9c\xba\x98\x68\x3a\x10\x90\x01\x84\xd8\xe2\x24\x79\x96\x2d\xb7\x73\x2f\x0a\xad\xcd\xad\x90\xd8\x43\xf3\x5e\x33\x1d\xde\x81\xad\xcb\xc9\x90\xfa\x89\x5b\x23\xef\xbc\xe6\xe5\x70\xea\x44\xd4\x74\x2f\xf2\xaa\x82\xb2\x5e\xfe\x8b\xc6\x56\x69\xda\xee\x0a\x96\x20\x05\x64\xa4\x02\x1e\xb5\x0e\xc0\x84\xd3\x2b\x19\x0b\x7c\xd5\xb6\xe1\xfc\x1f\xc8\xda\x6a\xb5\xd5\xcb\xbc\x2e\x6f\xb3\xaf\xdb\x5d\xba\xeb\xc4\x01\xb3\xb4\x7a\x47\x9e\xa7\xff\x86\x32\x72\x2f\x2c\x49\x94\x72\x5d\xdd\xdf\x90\x49\x4a\xec\xea\x56\xb6\x0e\x64\x22\x3c\xc4\x3b\x22\x92\x71\x77\x39\x41\x77\x88\x13\x8f\xc1\x20\x6f\xf1\x67\x51\x88\x7e\xde\x42\xf2\x80\x63\x32\xe2\xf5\x77\xd3\x73\xd2\x5b\x10\x93\x59\x1e\xc9\x23\x9e\x40\x6b\x83\xb7\x20\x8b\x52\xf5\x0b\xab\xc3\x89\x2b\x12\x26\xd5\x58\x99\xf9\xe5\x7a\x5e\x5f\x6b\x59\x9c\x87\x9d\xc1\x52\x88\x10\xf3\xe5\xaf\xb3\xcd\x5f\x26\x7a\xa6\xcd\xab\x94\x09\x57\x49\x27\x65\xc0\x0d\x7e\x6e\xe4\x88\x48\xe5\x79\xd4\xa9\x51\xb6\x2d\xfd\x4f\x08\x3f\x77\x23\x98\xc0\x24\xb3\xc9\x0e\xdd\xb1\x92\x81\x84\x30\xc1\x1d\x13\x72\xc3\xd4\x3b\x8a\x68\x86\x77\x05\x4c\xa1\xdb\xa9\x8a\x3e\xc2\x7f\x34\x03\x40\x11\xea\x42\xf2\xea\xf8\x8d\x57\xc8\xe4\xe7\x6e\x48\x27\x1a\xf7\xf5\xd3\xed\xe2\xde\x97\x22\x22\x51\x6c\xa8\xc5\xfc\xdb\x17\x79\x0e\x45\x63\xc0\x99\x84\x46\x7b\xfa\x2e\x14\x55\x31\x96\xac\x8f\x29\xcf\xeb\xc7\x3f\x8b\xeb\xf4\xd2\x54\x54\x9b\xc6\x62\xcb\x40\x76\xe8\x4c\xb0\xf2\x7d\x1f\x9d\x75\x55\x5d\xba\x3f\x09\x4c\x62\x7f\xaa\x31\xfa\xf7\x42\x3f\xe5\x07\x7e\xd2\x76\x62\x3f\x19\x2f\x2d\x97\xe9\xa5\x05\x41\x29\x5f\x07\x86\xed\x02\x72\x55\x0d\x15\x8d\x40\x35\x96\xc9\x68\xb5\x23\xbe\xe7\xeb\x6e\x27\x77\x8e\x0f\x82\x0c\x8b\x3d\x98\xfa\x19\x8d\x52\x04\xdb\xe2\x55\xb3\x57\x42\x63\x9c\xbe\x61\xdb\xd1\x35\xab\x87\x31\x9b\x0a\x3d\x85\x8f\x60\xef\xe1\xe1\x7a\x1b\x72\xfc\x0e\x66\x8e\x0a\x43\x10\xb6\xde\x65\xa8\x0e\xeb\x31\xc5\x70\xec\x46\x32\x86\x6b\xfd\xe1\x7a\xfb\xbe\xde\xee\x96\x75\x1f\x89\xa0\x42\x1d\xc7\x7d\xb1\xa4\x6f\xfb\xd9\xe8\x09\xa2\x50\x71\xb0\x2f\xae\x0f\xd1\x54\x91\x32\x0b\xfe\x68\x6e\xe1\x3e\x99\xa4\x22\xf0\x70\xbb\xb6\xf9\xe4\x6b\xd9\xac\x08\x64\xb4\x6c\x1c\xd4\xc6\xc6\x2f\x7a\xd2\xd6\xd3\x21\xa9\x62\x2c\xc2\xde\xa6\x1e\x2d\xc0\x27\xef\x84\x49\x82\x1b\x7f\xe3\x1b\x1c\xce\x45\x5e\xf5\x5c\x70\x15\x07\x14\xdb\x31\xf6\xeb\xd7\xed\xcb\xec\x79\xf9\xb2\x3f\x3c\xcc\xf6\x7b\xc7\x91\x07\x2a\x4e\x34\xb2\xa5\x9b\xf6\x4d\x2c\xee\x4f\x7f\xf8\x24\x32\xb4\xf9\x68\x57\xe1\x7a\xde\x97\xfc\x1d\xb2\x7b\xc3\x34\x7d\x93\x89\xf4\x70\x07\xea\x11\x3e\x57\x6f\x9f\x65\xbc\x54\xa2\x15\x16\x3c\xf8\x7b\xb3\xf0\x87\xae\x88\x12\x14\x62\xc7\x56\xe7\xa4\xdb\x66\xb9\x32\xb1\xc9\x27\x50\x12\x25\x02\xa9\x1d\x32\x65\x7f\x2a\x8b\x8f\x2d\xa0\x03\xf7\xc4\x9b\xbf\x38\x36\x90\x45\x01\x55\x5e\xa3\x47\xd1\x32\xaa\xb9\x63\xed\x2b\x15\x09\x17\x46\xab\xb3\x96\x27\xeb\xea\xec\xef\x58\x31\xee\x0b\x3e\x4a\x08\x8e\x9c\x5c\xf9\xf5\xfc\x58\xb6\x88\x05\x25\x94\x87\x74\x0a\x27\x5e\xf5\x92\x30\x4a\x80\xc0\xcc\xb6\x91\x74\x31\x45\x78\x8b\x74\x6b\xa3\xc5\x67\x3e\x7e\x4e\xc9\x04\x67\x8e\x6d\xdf\x18\x42\x47\x1a\xd1\x52\x79\x8f\x5f\x28\x50\x0f\xfd\x2f\xc3\x80\xf1\x09\xda\x45\x41\x94\x44\xc8\x8c\x62\x80\xc6\x9b\xb2\x90\x50\x55\x63\x9c\xa9\xd2\x9e\x94\xc1\x10\x41\xc4\xb3\xc7\xe2\xaf\xe8\xb5\xcd\xd9\x40\x02\x42\x6c\x8b\x61\x5f\xfd\xce\xfb\xe8\x42\x77\xf0\xe2\x00\x8b\x15\xbf\xe7\xc5\x47\x6e\x00\x5c\x8b\xf4\x98\xd6\x3c\x33\xb0\x95\xc1\xfd\x80\x17\x87\x88\x4c\xeb\x63\x1e\x27\x85\x6a\x01\x68\x64\x98\x82\xcf\xfc\xd7\xe3\x35\x57\x3d\x2d\x34\x00\x0a\x3e\x72\xdb\xcf\x33\xe0\xb9\xcd\x27\x6c\x8b\xe2\x3c\xcb\x95\xe9\x1e\x1a\x5d\x0a\x54\xa8\x9c\x61\xb6\x71\xaf\x9b\x40\xe0\x7b\xa6\xfb\xc3\x49\x3a\xde\x67\x16\xc0\x57\x46\x97\xd6\x68\x54\x34\xf6\xa3\x09\xda\x36\x9f\xaa\x53\x01\x04\x22\x40\xda\x56\xeb\x56\x20\xec\xa5\x6f\xb7\x20\x54\x11\x8b\x9c\x67\x76\xb6\x5c\x21\xf6\x58\xe4\x05\x71\xd7\xac\xfb\x70\xbd\xa5\x23\x00\x37\x44\xbe\x46\xd2\xe5\xe7\x34\x87\xc6\x3b\xe8\x3b\xf0\x10\x05\x7e\x10\x9a\xcd\xff\x99\xa7\x79\x2f\x13\x02\x11\x8b\xd1\x8c\x1e\x44\x1f\x47\x35\xfd\xf1\x59\x60\x72\xb3\x7b\xa8\xea\xd0\x5d\x80\xc5\x34\x72\xda\x7a\xf8\xa6\x41\xdd\xab\x64\x35\xc3\xb8\x6d\x9c\x6c\xbb\x09\x46\x03\x38\x89\xfc\x9e\x7a\x7d\x55\x0f\xa8\x07\x3f\x63\xd1\xea\x39\xf2\x10\x93\x08\x23\xcd\xb6\xce\x6e\xd9\xfc\xb1\x40\xef\xc6\x04\x02\xad\xe4\x6e\xb1\x38\x2c\x4b\x49\xa9\x3f\x78\x53\x71\xec\x13\xaf\xd3\x58\x9c\xa8\x18\x01\x0f\x62\xda\x98\x97\x7f\x3e\xb8\x18\x01\x44\x18\x62\xa5\xf8\x52\x64\xd9\xc3\xb5\xcc\xe7\xc5\xf9\x92\x41\xcb\x8b\x0a\x20\x6c\xad\xa7\x02\x83\x94\xe9\x21\x91\xbb\x74\x0e\x08\x1e\xa2\x2f\x53\x9d\x8a\xb2\xc6\xbe\xe9\x5b\x7b\x01\xae\x70\x53\xfb\x47\x5a\x43\x4f\x1b\xfd\xd3\xe2\x17\x08\xc1\xf0\x96\xb0\x55\x91\xd7\xf0\xdf\x45\x0e\xbf\x59\x6e\xb0\xff\x72\xff\xe2\x79\xdd\xbf\xf6\x54\x49\x3d\xd3\x5a\xca\xaf\x59\xfd\xa5\x14\x57\x33\x56\x61\xfe\xc7\x6a\xa4\x8f\x4a\x87\x20\x7d\xd5\x4a\x89\x4b\x54\x06\x44\xbd\x85\x01\xea\x10\xa4\x30\x8c\x49\x47\xa8\x17\xc5\xb9\x89\xe7\x6e\x17\x38\x75\x96\x16\xa4\x8e\xb1\xe9\x7a\x07\xf5\xa6\x94\x79\xbd\x1d\x2b\xa4\x03\x28\x69\x32\x97\xe8\x45\x98\x22\xb5\xcd\x85\x0d\xd7\x2d\x50\xc5\x9d\xd8\xbc\xc1\xc0\x7e\xc5\xac\x00\x4d\x48\xe2\xf7\x11\xb7\x3d\x98\x1c\x68\xe2\x63\x90\x79\xc9\x38\xd2\x19\xad\xd5\xc8\xd1\x00\x4d\x25\x4e\x36\x6d\x2d\xfc\xfe\xa3\x68\x4f\x66\x1c\x31\x1f\xf8\xbe\xf6\xc5\x10\xb1\xe6\xc6\x24\xc4\x10\x6c\xd6\xbc\xac\x2d\x41\x87\xa5\x05\x30\x23\x34\xe1\x21\x2a\x69\x54\x28\xcf\xba\xef\xf3\x7a\x4f\x3f\x91\x26\x32\x46\xe9\x88\x1d\xd4\x0b\x5e\x8f\xf9\x7a\xdc\x20\xed\xbb\x94\xcd\xf7\xe2\x3c\x7a\x87\xda\x8b\x3d\x6e\x7b\x45\xb6\xbc\x4c\xeb\x9b\x5d\xd1\xa9\x5d\x2a\xb1\x1b\xc7\x3d\xa4\x36\x75\x68\xd2\x6a\xeb\x14\x7a\xdc\xed\x7b\xda\x90\xab\x64\x57\xf9\x76\x5b\xe7\xa3\x8f\xaa\x29\x23\x88\x6f\x6a\x1c\xd4\x92\xf7\xd7\xa9\xf6\x7d\x11\x3b\x7d\xe1\x5c\x17\xfe\xb4\xeb\xa5\x7d\xcb\x00\xa3\xd3\x5f\xae\xeb\xe9\x4e\xa9\xa7\x5b\x80\xda\x07\x23\xf7\x61\xc1\x0e\x83\x66\xe0\xeb\x3d\xe8\x46\x07\x10\x2b\xe1\xf0\xde\x99\x1c\xdc\x61\xe4\x11\xd4\x63\x6d\xf5\x47\x46\x6f\x91\x51\x8e\xc9\xe5\x07\x5e\xd7\x99\x63\xd1\xfc\xc4\xfe\x0e\x50\x55\x6d\xd1\xcc\x1b\x46\x1d\x43\x32\x6c\xd0\x2c\xf1\x10\x6d\xfd\xf3\x96\xed\xd2\xaa\x1e\x65\xc4\x74\x2c\x23\xec\xc2\xe2\x4a\x35\x6f\xf0\xc9\xa9\x8e\xe3\xe5\xff\x0e\x8e\x4a\xc7\x2a\x8a\x0c\x7a\x24\x2f\xae\xb9\x04\xac\xcb\x38\x43\xab\x93\x30\x46\xb9\x25\x1b\xec\x15\xd7\x52\xc2\x74\x00\xe3\x4e\x88\x05\xca\xb7\xba\x17\x36\x61\x7b\x75\x22\x24\xc6\x9c\x97\x13\xaf\xc0\x5f\x1a\x79\x8c\xf6\x91\x12\xf0\x70\x9b\xfb\x80\x74\xfc\x95\xed\x08\x4e\x22\xfc\x8d\xdd\x66\xb3\x83\x32\x85\xea\xe1\xaf\x4d\xa9\xe6\x11\x4d\x54\x2f\x2b\x01\x6d\x99\x5d\xf3\xc8\xf4\x06\x6c\x66\x7f\xae\x5f\xf7\x87\xcd\x7c\xdf\x1e\x11\x31\x76\xc5\x15\xef\x50\x66\x88\xda\x19\xb6\x1c\xbb\x61\xda\xc3\xce\x10\x95\x56\xcd\xae\x3d\xbb\xd6\xc5\x0e\x30\x9b\x61\x07\x08\x11\x11\x9b\x16\x5e\xbf\x7c\x1b\x41\x5a\x87\xf7\x29\x54\x84\xdd\x92\xb2\x30\x65\xb2\x5e\x1a\x50\x2b\x8f\xe3\xd7\xd8\xce\xf6\xcb\xc3\xf2\x8f\xcd\xfa\x65\xf9\xd2\xde\xab\x0a\x13\x44\x54\x36\xf1\x27\x28\xc3\xdc\x0e\xe8\xea\x7e\x56\x3a\xfb\x32\xea\xd5\xe0\x27\xdc\x77\xcc\xfd\xb2\xbc\x5d\x6a\x50\xbf\xc3\xed\xb1\x2c\xce\x23\x6a\x89\xf1\x89\x9a\x18\xae\x23\xa8\x31\xbb\xb1\xcc\xd5\x62\x02\xe5\x63\x47\xeb\x24\xc2\x57\x5c\xa2\xba\xe8\xa5\x68\xe7\x81\x16\xd4\xeb\x80\x6e\xf3\x12\x54\x5a\x37\x0e\xe3\xcb\xea\xf9\x71\x36\x6d\xf1\xb4\x08\x31\x61\x59\xd5\xc5\xe5\x80\x7a\xb1\xa3\xdf\x52\x86\xcf\x67\xdf\x38\x84\x9f\x91\x7e\x7c\x9d\xeb\xd1\x1a\x3c\xa3\x94\xd9\x98\x73\xdc\x49\x36\xa7\xae\xd6\xa7\x35\x48\xcc\x6c\xe9\xa2\x6c\xf6\xa5\x39\x9f\x10\xad\xed\x8c\x8f\x26\x84\x1b\x51\xe3\xc5\xf5\x7c\x59\xa4\xef\x76\x4e\x36\x7f\x57\x18\x7e\x65\xbc\xaa\xb1\x21\xaa\x3d\xa0\x0d\x7c\xb2\x4f\x64\xd7\x2b\xd5\xfe\xdd\x72\xc3\xd4\xbe\xa2\x89\x17\x1a\xda\xb2\x99\xf5\x37\xbe\xca\x0f\x6b\xe2\x45\x46\xaf\xe5\x1b\x14\xdf\xe0\x3c\xfc\x18\x9a\x78\x2a\xf1\x6c\xb3\xc4\x77\x50\xc7\xfb\x6b\x0d\x5e\x87\xef\xfe\xb9\x0e\x7b\xad\xfb\x7b\xa9\x26\x94\x30\xd6\x72\xfc\xcd\x8b\x34\x7f\x2a\x5c\x0f\xb5\x26\x94\x72\x19\xb4\x6d\x5d\x77\xa2\x5d\x6e\x54\x60\x64\xf3\x31\x0c\xfb\xc6\xdd\x36\x86\x07\x10\x9c\xb2\xb0\xca\x81\x69\x4b\xb8\xa9\x09\x0d\x39\xf6\xd0\x3d\x17\xd9\x80\x3b\xa0\x39\x22\x91\x4f\xf5\x39\xad\x4f\x65\x9a\x2d\xe0\x5c\xb8\x43\x3e\xf8\x84\x39\xaa\x74\x28\xab\xb6\x6e\x16\xff\x5d\xc4\xed\xc0\xa5\x6b\x2e\x18\x68\x9b\xab\x9b\x67\x29\xb4\x68\xe9\xf1\x9b\x0f\x18\xc1\x4d\x49\x8e\xe8\x82\x34\x09\xb4\xf6\x0d\xae\xc2\x30\x9e\xa2\x1a\xf5\x57\x62\x33\x9a\x84\xc4\xe7\xca\x55\xd4\xcb\xf4\x1d\x36\x28\x15\xba\xe8\x55\x74\xd1\xc8\x0c\x3f\x54\x98\x24\x81\x95\x14\xb3\x97\x7f\xfc\xa4\x6f\x4f\x93\x28\xf2\xb1\xc0\xb9\xe5\x2a\x2d\x3a\x2e\x13\x4d\xa2\x44\x62\xb9\xa7\x71\x96\xf3\xb4\xfd\xce\x91\x56\x08\xda\x3a\xf1\xaa\xed\xf9\xf8\x6d\x78\x49\x96\xb4\x94\x47\x8d\x01\x4d\xf3\xa3\xed\xf4\xb2\xc7\xe3\xc8\x43\x16\x90\x4b\x09\x3b\x34\x97\xcd\x23\xb4\xae\x5b\xfc\x1f\xf1\x9a\xc4\xee\x9a\xa0\xb1\xe3\xe1\xcc\xf3\x2b\xcf\x7a\xbc\x19\x9a\x24\x34\x40\x52\x96\xf2\x9a\xef\x90\x32\xab\x8f\x6f\x1f\xf5\xd0\x68\x92\x44\x86\x1a\x23\xad\x0c\xce\x1c\x83\xcc\x51\xdb\x49\x33\x4a\x33\x43\x38\x60\xd2\x83\xae\x33\x79\xfa\x1d\x73\x2f\x34\x77\x00\xc6\x0d\xc5\x60\xba\x25\x91\x76\x83\x58\xa0\x9a\x4b\x1e\xe2\xc3\xa5\xc8\xae\xf2\xc4\x1b\x0b\x5e\x9d\xb8\x7b\x0e\x2e\x4d\x22\xb4\x99\x80\x9b\xd1\xfd\x88\xd0\xc3\x5c\x9f\xb8\xde\xc6\x6d\xb1\x9a\x48\x65\x5c\xc4\xf3\xc1\x90\xae\xb8\x0b\x4a\xcd\x31\xb2\x58\xbc\xec\xb6\x06\x8d\x51\xba\x43\x8a\x70\xdf\xf6\x84\xca\xea\x91\x97\xe7\xee\x90\x0e\x0c\xc7\xd6\x7a\xb3\x34\x1c\x5d\xbb\x61\xcb\xae\x26\x5a\x4a\x2e\x1c\x17\xd5\x1b\xe4\x7d\xb6\x74\x37\x44\x49\xd4\x99\xde\xf3\xea\x6d\x78\xc8\x23\xc4\x47\x43\x72\x4e\xf3\x65\x55\x03\x9c\xfb\xd4\x5c\xda\x23\x49\x6c\x00\x8e\xe7\x4b\xd6\xd2\xb1\x3d\xef\x9e\xbf\x8c\xbb\xb5\x47\x94\xc7\x6d\x1d\xdf\x35\xc2\x7f\xa6\xb4\xe7\xce\xd0\x4a\xa8\x3e\x7d\x9d\xbb\x03\x8f\x79\x09\x19\xd4\x37\xf6\x50\x96\x7d\x59\xac\xe1\x4f\x7b\x3c\x0e\x4d\xa2\xcf\x56\x1d\x66\x13\x9c\xa4\xda\xa3\x7e\x84\xac\x3f\xcb\xfd\x77\x43\x5f\xe0\xba\x75\xfb\x56\xdf\xf3\x45\x62\xc4\x8f\x54\x5a\xb7\x6d\xd0\xdf\x8b\xeb\xd0\xcb\xd3\x9e\x0f\x04\xa1\x64\xcb\xfa\xf4\xc3\x94\x74\x37\xd9\xf5\xd8\xae\x6e\xcf\x07\x81\x5c\xc7\x26\x87\x72\xe2\x69\xfe\xdf\x77\x7e\xdc\xe0\x87\x03\xca\x30\x57\x9b\xca\x62\xcc\xc4\xaf\xbd\x80\x69\xac\x0c\xf4\xb9\x18\xbb\x35\xf3\x45\x43\x83\xf6\x02\x25\x23\xea\x0a\x14\x08\x73\x1c\x1a\x33\x2f\xa4\x11\x33\x0a\xf0\xbf\x0e\xfa\x8a\xee\xea\xb7\xc2\x25\xff\xb5\x17\xc6\x01\xd3\x16\x02\x5a\xa2\x1b\xfe\x15\xb5\xa3\xf6\xc2\xc4\x72\xe7\x63\x9e\xa5\x3c\xd4\xbd\xfd\xc4\x8b\xb8\x69\x35\xd9\x6c\x57\xf3\xe5\xe1\x79\xf5\xe2\x0e\x30\x1e\x22\x0e\x2c\xcb\x0f\x3a\xfd\x05\xca\x3f\x64\xf9\x5d\x0b\x8a\x1d\x1b\x7b\xbe\x91\x4e\x46\x63\xd3\xf8\x20\x1d\x7b\xb4\xf6\x62\xdf\x48\x9d\xaf\xbe\x3f\x4e\x5b\x0b\x2f\x56\x3e\x76\xbf\x61\x2f\x9a\x32\x37\x78\x48\xab\x43\x05\xd0\x02\xd7\xb5\xc7\x43\xc1\xba\x66\x28\x9c\x0a\x43\x5c\x93\x1b\xc7\x62\x84\xe9\x98\x56\xce\x9f\x20\xaa\x74\x24\x8c\xa5\x3d\xce\x3d\x1d\x76\x4d\x21\xf7\xcd\xb3\xd3\xaf\x92\x43\xa8\x4c\x4d\x1d\xc1\xc6\xe7\xe2\x1d\x2c\xab\xe5\x68\x32\xca\xd8\xc8\xde\x1e\x5c\x17\xe1\x54\xe5\x5a\x7b\x92\x13\x69\xf7\x85\x54\x16\x7d\xcc\xbf\xf6\x24\x48\xc4\x32\x5d\xf3\x12\xb8\xb2\x24\x9e\xd3\x29\x07\xed\x29\x41\x44\xe7\xa5\xbd\xc0\xc7\x43\x57\xf8\x19\x8e\x84\x30\x90\xbe\xcd\xb3\x3f\xdb\x66\x83\x5e\xc1\x3c\x1e\x0f\x8f\x02\xf4\x8a\x9f\x67\x2f\xdf\x67\xfb\xfd\xec\x65\xb3\x5d\xff\xf1\xe7\x9f\xeb\xed\xef\xb3\x1f\x4b\x77\xab\xc0\xfc\x58\xb6\x5f\x66\xb5\x5b\xbd\x0c\x97\xb0\x16\x2c\x32\x89\x2c\x9e\x81\xc2\x3e\x66\x73\x84\x12\x22\x91\xb3\xa7\x65\xb6\xce\xa6\xd4\x1a\x06\xb7\x44\x49\xa0\xa9\xeb\x97\x36\xa8\xfe\x29\xfe\xea\xfe\x5e\x49\x3d\x9f\x60\xf1\xdf\xd0\x5f\xad\xf5\x7c\x3b\xf2\x61\x28\xa5\xbe\xec\x08\xb1\xa1\x84\xc9\x46\x3b\x4d\x29\x8b\xf1\xc3\xbe\xee\x16\xbd\xaa\xae\xa6\x34\xf1\x71\x07\xf8\x92\xc3\xb7\xf5\x40\xdb\x3d\x90\xd2\x24\xc1\xec\x68\x33\x95\x46\x49\xa5\xe9\xa7\xa7\x2a\xe2\x96\xfe\xb3\x15\xd8\xd0\x34\xd0\x46\x79\x21\x2f\xea\x54\xdf\x36\x59\xe3\x00\xbf\x14\xf5\x86\xdf\x60\x98\x5e\xd2\x34\xf4\x7d\xfc\xa2\x36\xdd\xfd\xad\xc8\xfa\xd4\x41\x9a\x86\x09\x41\x15\xf7\xdd\x7e\xf6\x6d\x79\x58\xbf\x2c\x8d\xa2\xd5\xf2\x65\xd1\x8d\x08\x70\x67\x39\xa3\x30\x1f\xe6\x71\xee\x3b\x48\x34\x8d\x02\x86\xa9\x69\x71\xbd\x79\xa4\xc6\x0c\x54\x7b\xbf\x51\x20\x68\x9f\x2f\xfe\x5e\xad\x4a\xd3\x48\x85\x38\x6b\x0c\x58\xbe\xa8\x6b\x70\xda\xc2\x9a\xc6\x3c\xc6\x4c\xba\xc1\x36\xbc\x14\xf5\xee\xd2\xf3\xca\xc6\x24\x58\x83\x45\x47\x63\x00\x92\xb4\xa8\x9e\x66\x71\x4e\x58\x7f\x9a\x90\xd8\x12\x0a\xf4\xf9\xc1\xef\x3c\xb2\xc1\xab\x4d\x64\x8c\x41\x14\x38\xe8\x77\x0b\xcd\xd5\x54\x78\x14\xf3\x7e\xb6\x3c\xf0\xc0\xf3\x91\x1b\x40\x35\x49\x90\x3d\x76\x9e\xd6\xa3\x1d\x81\x6a\xc6\x9d\xf4\xd0\xcf\x34\x7f\xe9\x35\xe9\x6b\xaa\x25\xc1\x0a\xce\xa5\x2c\x7e\xdd\xac\x57\x36\x9e\xb5\x1a\x84\xc9\x07\x98\x28\x7d\x96\xab\x5d\x2f\x5a\x1d\xce\x30\x9f\x30\xc3\xf9\x81\xbb\x45\x76\x6b\x33\x6f\xda\x27\xe0\x21\x21\xf3\xc6\xb0\x11\x74\xfc\xb7\x9f\x44\x7b\xf6\x34\x2f\x32\x20\xf9\x57\xf3\xe8\xdb\xf4\x38\x65\x6a\x7c\x4a\x12\xdc\xf6\xde\xa1\xcc\xf9\xb9\xe3\x43\x74\x87\xa9\xc6\xc6\x8c\x59\x5d\xf2\xf6\x6f\x11\xc7\xdc\x37\xb2\x9f\xee\xea\xa2\xe4\x47\x40\x10\xd6\x6f\x5d\xb7\xe1\xf0\x5e\x28\x37\x88\x86\x73\x9a\xd3\x30\xfa\xb2\xc1\x46\xfb\x54\x50\x2e\x6d\xce\x72\xb7\xd9\xc9\x14\xf2\xe9\x06\xdc\x66\x68\x20\x4d\x95\x29\xcd\x57\xf3\xb5\x81\x7b\xfe\x04\x78\x1b\x88\xc9\x68\xdf\x0f\x43\xec\x53\x4d\xab\x87\x12\x90\x08\x67\xce\x2f\x9f\x7c\x08\x3f\x8c\x2d\xf9\x94\xec\x31\x54\x6b\xdf\x4f\x42\x74\x4c\x0e\xb8\x5f\x62\x60\xb9\x80\x6c\x22\xeb\xf8\x57\xe1\xc4\xc0\x54\xde\x35\x6c\x8e\x6e\x86\x03\x42\x0e\xbe\x37\x0e\xcb\x23\x80\x69\x6c\x1b\xda\x16\x3f\xf0\x62\xa4\x6f\x31\x5e\x77\x0d\xab\xf9\x7a\x3c\x82\x33\xa4\x9f\xaa\x78\x2e\xeb\x2b\x6f\x57\xb4\x1f\x4a\x83\xba\xdd\x2d\xe7\xeb\x97\xc5\xee\xb0\x7e\x3c\x2c\x66\x7f\xba\xa3\x11\x35\x0c\x06\x19\x16\x76\x77\x17\xc3\x97\xe2\x0e\x06\x44\x33\x67\xbb\x79\xf6\x5a\x0d\xb8\x6d\xb5\x1f\x49\x30\x0e\x74\xde\x18\x8b\x83\x02\x7e\xcf\xf6\x79\xed\x38\xd6\x3c\x1a\xf7\x73\xa2\xda\x67\x44\xe0\x86\x33\xbb\x36\x16\x82\x23\xf7\x97\xbb\x36\xf3\x4d\xb2\x7e\x73\xcd\x32\x9b\xa6\x1a\xf3\x88\x0c\x5f\x00\x0b\xb8\x25\x9b\xae\x1f\x0a\xa7\xc2\xad\x7d\xa6\x03\x5c\xfc\x56\xe0\x68\x5c\x3b\xd4\x7e\x0c\x81\x67\x9d\x42\xcc\x72\xb5\xb3\x21\xa1\x66\x51\xc2\xaf\x1a\x35\x0f\xdd\xdf\x39\x0b\x31\x55\x6b\x5a\x84\x6c\xef\xcb\xe8\xa2\x5c\xf9\x81\x6b\x7a\x59\xbf\xb8\xfd\xdc\x17\x34\xf6\x8c\xac\x7d\x33\x8b\xd1\x57\xfe\xfe\xf2\x41\xdb\xc3\x81\x61\xea\x6d\xf6\xea\x7b\x96\x2f\x37\x28\x22\x58\x0f\x32\x5f\x0c\xd1\x1f\xab\xf6\xde\x44\xa4\x10\x4f\xda\xea\xfd\xee\x97\xb3\xe7\xc3\x6e\xb5\xe8\x6e\x21\x36\xa8\x73\x24\x09\x2a\x79\xcb\xe0\x3d\xb0\x8b\xbe\x48\x18\x52\x9c\x2d\xc0\x55\xac\xd4\x24\xde\x54\xfb\x42\x24\xe8\x34\x5f\xf3\x0a\xea\x1f\xe9\xe5\x93\xc2\xb5\x1b\x0d\x1e\xea\x3e\x67\xa9\xae\x0f\x82\xb7\x5f\x5b\x40\x64\xd0\x12\x4f\xcb\x3f\xf6\xdb\xf5\x7c\xdd\xfa\xcb\xbe\xd0\x11\x96\x2a\xbf\x3d\xcf\xdd\x9f\x64\x6c\x36\xb0\x12\x89\xbc\x7f\xf2\xb2\x4c\x5b\xaa\x0b\xed\xab\x98\x20\x80\xe8\xbd\x71\x23\x8c\x9e\x29\xa8\xab\x34\xd4\x58\xa3\xbb\xd7\x91\xb1\x04\x73\x28\x0d\xfa\x7b\x6c\x7e\x34\x04\x96\x37\x49\x61\x33\x80\xcd\xd3\x98\xa3\x81\x17\x68\x4c\xea\x57\x3c\x03\xcf\x89\xa4\xd9\x63\xd4\x0b\x9d\x1c\xd4\xb2\x3e\xdd\x15\xc9\x74\x40\x63\x86\x18\x8f\x0f\x9e\xd7\xd5\xbe\x78\x4c\x8f\xa7\xe9\x4c\xac\x0e\x68\xe2\x3b\xce\xba\xc6\xe6\xb9\x06\xd4\xf6\xa7\x64\x82\x65\xd2\x1e\x09\xc4\x38\x97\x14\xf8\xd4\xf7\x2d\x7a\x7e\x96\xbb\xaf\x8e\xeb\xe1\x2b\x59\x39\x1d\x04\x32\x50\xa6\xcb\x5b\xa6\x97\x14\xf2\xfa\xc7\x6a\xe3\x7e\x37\xf2\x62\x15\xbb\xb5\x65\xe9\x69\xc6\x14\x08\x3a\x88\x62\x8a\xb9\xc8\xf9\xfa\x65\xbf\x5d\x3d\xd8\x06\xcd\x81\x56\x90\x0e\x58\x08\xac\x4f\x76\xf3\xa5\xf8\xab\x0e\x58\x24\x11\x86\x53\x5c\xfa\x8a\x97\x3a\x60\x89\x0e\x7b\x98\x36\xc8\xb2\x34\x3f\xde\xe3\x00\x9c\x86\x9d\x0e\x98\x30\x52\xff\x48\xbe\x58\x41\xdd\xc4\x15\x87\x4d\x91\xa5\xf2\xd6\x5e\x13\x28\xe2\x0f\x90\xa2\x7e\xd0\x4a\xa5\x83\xd8\xa3\x40\xed\xe9\x8f\x3c\xcd\x3a\xfc\xe3\x2a\xaf\xae\x5a\xa7\xcd\xd6\x86\xd9\xee\xaa\x7d\x22\x77\x6a\x10\x86\xd0\x12\x8c\xa7\xf9\x33\xff\xd5\x63\x39\x1f\x7e\xff\x38\x36\xd5\xf8\x23\xd4\x88\x88\x6d\x42\x76\x27\x7e\xaf\x83\x24\x20\x68\xe1\x1d\x41\xa0\x69\x33\xf9\x1d\xa6\x5b\xc6\x75\x90\x70\x1f\x85\x7e\x8a\x0b\xe4\xf3\x13\x38\x66\x55\x1d\x70\x2a\x11\xe1\xd7\x91\xc4\x98\xa2\x6c\x3b\xdf\x85\xef\x61\x04\xf8\xc0\xab\xba\xc8\xa1\x3d\x51\x28\x8e\x2c\x1e\xb9\x65\x3e\x33\x14\xfd\xdd\x69\x40\x11\xb2\xb3\x7c\xfe\xc7\xcc\x2d\xe2\x40\x46\x41\x60\x52\x98\xef\xe9\x3d\x12\xd9\x0d\xe2\x3e\x62\xad\xf7\xd8\x11\xd6\x9e\x0a\x21\x32\xc9\x58\x66\xe6\xa1\xed\x0a\x54\x60\xd4\xf8\xb8\xb2\xfc\x0e\xd5\xd8\x86\x06\x2a\xd2\x98\xfa\xd8\x9d\xd2\xa9\x3d\x21\x50\xb1\xd1\xad\x3b\x1f\xaa\x8e\x0b\x4b\x07\x4a\x44\x58\x76\x38\xf1\x6a\x0b\x17\xe0\x36\xb2\xfb\x9f\xa0\xbd\xae\x8a\x12\x27\xea\xb3\x6b\x19\x5e\xcc\x8e\x3e\xe8\x3c\xd7\x81\xd2\x80\x11\xef\x37\xa8\x0d\x09\x60\xcf\x99\x09\x40\xc4\x86\x43\xa6\x99\x95\x06\xc6\x6e\xca\x35\x56\x02\xb6\x1d\x66\x60\xa6\x2d\x4a\xec\x50\x0e\x54\xa4\xa6\x23\x9d\x00\xb4\x42\x1f\x7f\xb3\xde\xff\xc3\x5d\x4a\x53\x40\xdf\xd4\x70\x80\xc2\xf9\xd2\x5c\x6e\xaa\x9d\x7f\xda\x15\x0d\x09\x51\x3a\x74\xb8\xec\x79\x81\x29\x11\x97\x56\xfa\x6d\x34\xd4\x67\x58\x59\x79\x2a\x8e\x48\x73\x5a\x7f\xc6\x6c\xd1\x8e\x07\xac\xea\x35\x6b\x23\xcd\x8f\x1d\xc5\xf2\xf0\xb1\x42\x8f\x42\x64\x0d\xee\xee\xa8\xf6\xc5\xa4\xd5\x0d\x3d\x45\x3c\xdd\xc3\x23\x36\x7b\xad\xf5\xfb\x87\x3f\x4b\xbd\x08\xb3\x2b\x17\x7e\x5b\x5c\x7b\x34\xe6\xa3\xae\xbc\x7e\x6c\x13\xfa\xdc\x34\xc6\x3d\xa4\xf5\xa5\x93\xe4\xd6\xa1\xaf\x38\xd6\xc7\x05\x2a\x67\x18\x7b\xd0\x1d\xd3\x58\x73\x44\x77\x13\x6b\x67\x4f\xeb\x3d\x52\x36\xbb\x11\x01\xd1\x96\xd0\xb9\x9e\xf3\xf3\x85\xa7\xc7\xd1\x7c\x0d\x03\x08\x4c\x75\x97\xe7\xea\x76\x69\x6d\x4c\x18\x40\xec\xc0\x97\xcf\x86\x9b\x70\xf0\xd3\xcc\x8f\xa4\xc5\x38\x3d\x96\x00\x8f\x3c\x93\xad\xd9\x0e\x63\xdf\xf4\xe6\x62\x9e\xd9\x72\x27\x4c\xb0\xa8\x7f\x59\x7c\xd4\x61\x1c\x08\xdc\x22\x7e\xa4\xf0\x71\x40\xf0\x7f\xd6\xec\x3b\x5d\xa1\xeb\x70\xd7\x85\xa4\xc3\x38\x0a\x93\x56\xee\xc3\x98\x20\xcc\x21\xa9\x1e\xab\xad\x1d\x9a\xf0\x50\x5a\x0d\x86\x87\xab\x10\x19\x0c\x62\xb8\x50\xd0\xb8\x03\xa2\xbc\xe6\x55\xdb\x0d\xa5\x43\x29\x39\x82\xb8\x5c\x81\x1b\x3b\x93\x50\xeb\xc0\x8d\x50\x91\x87\x01\x20\xfc\x02\xd9\x27\xe4\x1d\xde\x81\x8a\x02\x2c\x17\x3c\xee\x5e\x66\xbb\x61\xa4\x1d\x2a\x66\x64\x45\xf7\xeb\xfd\xec\xc9\x48\x70\x75\x0c\x6c\x3a\x54\x3c\xf6\x93\x96\x88\x70\x32\x65\xda\xcf\xb6\x84\x8a\x27\x91\xd7\xcb\x85\x2c\xf3\x3a\xad\x6f\x98\x22\x68\xdc\xe4\xd1\x8d\x01\xf3\x11\x35\xad\x78\x9f\xd3\x4d\x87\x20\x02\x04\x05\x5f\x70\x9b\x68\xe3\x55\xcf\xbd\x7d\x4d\x09\x76\x02\xae\x5e\x56\xfb\xd5\xec\xc9\x9d\xa6\x99\xe0\x08\xff\x30\x1d\x27\x7f\xbe\x6e\x56\xcb\x4f\x56\xa2\x8e\x35\x56\xb0\x0d\x21\x5c\x56\xf0\x36\xc4\x0a\x75\x12\xe0\x4d\x75\x70\x7e\x4b\x34\x31\x4a\x72\x44\x84\x30\x74\xad\xd0\xab\x32\x24\x4d\x3d\x6d\x5c\x1d\x91\x84\x21\x9c\xe5\xb1\xe4\x67\xf8\x28\xca\x41\x35\x2f\xa2\x61\x88\x36\xa3\x2c\xb2\x26\xae\x9c\xe2\x65\xd0\x11\x95\x02\x0b\xe3\x28\xcd\x81\xf8\x68\xd0\x0f\x13\x9d\x98\x3a\xa2\xc0\xb0\xa5\xdc\xb8\x15\xdf\x78\x0d\x1f\xc6\x73\xfe\xcd\x42\x3d\x26\xaf\xef\x2b\x43\xd8\x99\x81\xae\xa3\x68\x38\xc7\xa3\x80\x1a\x0e\x89\x0a\x72\x65\x16\xe5\xe4\xbb\x8c\x82\x98\x06\x56\xd4\x6b\x59\xca\x88\xb1\xfb\xce\x4a\x1d\x05\x52\x1a\xeb\xdb\xf8\x12\x3f\x8c\x9d\x6c\x51\xaf\xa3\xb1\x21\x05\x84\x6f\x99\x8c\xe6\x10\x3d\xfe\xe5\x5a\x8e\xc2\xc0\x43\x3b\xb4\x83\xfa\xa9\x18\xb9\x28\x51\x14\x10\x69\x94\x06\xea\x53\x9a\x65\x83\x42\x4f\x14\x29\xea\x0b\xa7\x7c\xf3\x0d\xea\x9f\x45\x99\xa9\x8e\xf6\x49\x47\x2c\xf6\x94\x73\x70\x6c\x07\x7c\x0f\xbc\xa4\xa3\x58\x45\xbe\x89\x7f\x25\x5c\x6a\xd3\x44\xd4\x03\x2f\xbb\x51\x5a\x6b\xd5\xb2\xae\x37\xd6\xea\x8e\xdd\x59\x47\x89\x17\x3a\x52\xbf\xe7\x9b\x49\x27\x0c\xa2\xda\x28\x89\xb5\x03\xcd\x3f\xa7\x79\x63\x34\x4d\xaf\xe5\xe8\x3a\x9c\x2b\xa4\x4f\xda\xe5\xc5\xfb\x68\x6e\x0a\x9f\x62\xa9\x75\xf3\xe3\x8f\xc1\xac\x14\x51\x82\x6e\x9c\xfd\x42\xe3\xde\xad\xff\xa4\x58\x79\xff\x75\x84\x12\x46\xad\xdc\xd0\xba\x36\xf3\xd9\xad\xba\x48\x12\x1a\x98\x7a\x5f\x0e\x25\xaf\x61\x77\x2a\xca\xfa\x29\xcd\xdf\xba\x01\x26\xf2\x2c\xf2\xec\xb6\xe1\xb7\xc7\xa2\x7c\xbc\xba\x76\x16\x1d\x49\x46\x9d\x66\xf1\xec\x52\x28\x28\xb9\x2a\x90\x88\xe3\xf6\xf5\xd6\x1d\x49\x95\x68\x23\x9f\xba\xcc\x4c\xae\x65\x03\x65\x5a\xa8\x71\x67\xbf\x1d\xae\xfc\x28\x09\xda\xc6\x3d\x53\xdb\x9c\x7e\x58\xe0\x12\x63\x73\x2c\x84\x0d\xf1\xb5\x3a\xd2\x31\x8d\xa1\xbd\xcc\x2c\xcb\xf6\xc5\xb5\xcc\x79\xe3\x57\xcf\x91\xff\x58\xf5\x5e\x8d\x4e\x84\x53\xf4\x7e\xe2\xb9\xba\xdf\x8d\x22\xad\x7d\x61\x93\x55\xf6\xc3\x0d\x57\x14\x23\x3e\x41\xb0\x7c\xeb\x86\xcd\xaf\xe3\xba\x05\x23\x01\x1f\x08\x97\x7d\xde\xa1\xa0\x19\xe1\x14\x29\x6d\x14\x70\x95\xa5\x39\xec\x4f\x2d\xfc\x5d\x33\xd2\x49\x37\x58\x65\xd4\xf9\x29\xcd\xd4\x6b\x9e\xbe\x43\x0b\x51\xd6\xcc\x0b\x03\x19\x3b\x16\xd6\x5d\x5d\x5c\x1e\x4d\xbd\xab\x3d\xae\x03\xc4\x34\x18\xfd\x85\x89\x96\x10\xcd\xa8\x56\x74\xe0\x5d\x9a\x52\xf8\xe4\x07\x61\x81\xc7\x02\xd5\x83\x66\xae\x46\x1b\x35\x0b\x3c\xa9\xb5\x23\x15\xb9\x56\x60\xda\x60\xdc\x41\x9a\x60\x92\xdf\xe0\xb7\x17\xd0\xea\x51\x3d\x63\x0d\xfe\xce\x9f\xed\x9b\x59\x16\x24\x21\xbe\x91\x6b\x6e\xa5\x32\xd4\x9c\x5f\xaa\xf6\xd2\x8a\x6b\xeb\x02\x7d\x1b\x29\x1b\x68\x16\x52\x8d\x19\x6b\xc1\xe5\x1b\x36\xae\xf4\x41\x79\x9a\x85\x82\x10\xd9\x4e\x24\xe4\x75\x18\x3d\x55\x28\x8d\x5e\xfc\x82\x5b\x61\x15\x77\x6a\x14\x99\x5a\x4a\x89\x59\xee\xfd\x76\xe6\x0e\x30\x12\x62\x65\x4a\x80\x2c\xce\xb0\x4d\x25\x06\x60\x83\x07\x62\x09\x8d\x44\xe7\xa2\x8e\x7e\x32\x0e\x64\xd8\x3a\x47\xc6\x72\xad\xf3\xd5\x7c\xed\x7e\x20\x06\xc0\x9e\x80\x92\x5f\x86\x1e\x2d\x4b\x28\xd1\x6a\xd0\x38\x8a\x7a\xc6\xce\x7c\xb2\xc4\x27\x9e\xcd\x32\xb8\xa3\x68\x3f\x47\x57\x89\x8c\x6a\xf4\x3f\x66\xf3\xdf\xbf\x0a\x10\xdc\xf0\x44\x1a\x31\x27\x53\x22\x1a\x84\xcf\x4c\x84\x3c\xb4\x0e\xe8\x62\xa9\xd2\xba\x28\x2d\x6f\x5f\x79\xbb\xa7\xbc\xb3\xe7\xa8\x84\x4b\x8b\x86\xbd\x5e\xac\x1b\x31\x08\xad\x98\x0e\x22\x7c\x0e\x23\x03\x52\x7a\xed\xdf\x65\x82\x89\x88\x1a\xf8\x79\xb2\x26\x69\xc6\xc5\x24\x22\x98\x13\x7d\x81\x8f\x75\x99\x01\xcf\x7b\xc2\x3c\x3a\x26\xca\xf0\x35\x16\x42\x5f\x2b\xd9\x18\xf0\xef\xbc\x3a\x35\xb7\x6b\x6a\x6c\x13\x35\x8f\xd8\x63\x4c\x23\xb8\x08\xf2\x9a\x67\x27\x6c\x7c\xef\x4f\x97\xd8\xe3\x0a\x4d\xc8\x16\xaa\x34\x4b\xdb\xe2\x46\xec\x09\xa5\x5a\x70\x6f\x0f\x7a\xd7\x15\xba\x62\x1a\x71\x8c\x53\x9a\x58\x71\x55\x2d\xcf\x97\xda\x5a\x65\x77\x1c\x08\xe6\x97\xd3\xfe\xab\xda\x40\x89\x66\x63\xb8\x1e\x62\x3f\xe6\x68\x39\xf7\xcb\xdd\x7e\xbe\x5e\xbd\xb8\x57\x17\x07\x71\xc2\x75\xeb\xfc\x7d\x7b\xde\x7f\xf2\xea\x02\x10\x91\xb5\x95\x1b\x5e\x97\x45\x3e\x94\x35\xb6\xa3\x42\x3f\x89\x02\x27\x97\x9d\x4a\x98\x17\xd0\x29\x80\xbb\x31\x81\x41\x9a\xcc\x8b\xb6\xcb\xd7\x1d\x91\x0c\x49\x7c\x7e\xce\x56\xfb\xd5\xcb\xb7\x01\xe1\x97\x8e\x43\x88\xa8\xb4\x7a\xa6\x26\xfa\x1c\x7c\x89\xc8\x97\x08\x39\x35\x59\x87\x55\x0d\xe5\xc1\x9d\xc9\x28\x71\x8a\x42\x3b\xb3\x59\x3d\x16\x25\x3a\x11\xc5\x58\xe6\x70\x32\x06\x8e\x59\xc0\x85\x75\xd5\x8e\xbc\x7a\xad\xc6\x15\xc2\x98\x29\xa5\xec\x02\x33\x19\x12\x6c\xba\xfc\x1d\x6e\xed\x07\x88\x29\xc1\xc5\xf5\xfb\xcb\x7c\xc0\xd5\xa7\xe3\xc4\x37\xcb\xfa\x09\xa0\x2c\x6e\xc8\x3c\x7b\x3d\x0f\xe6\x90\x08\x02\x41\x1c\xd5\xe8\xaf\x09\xf9\x6b\x1d\x0b\x16\xa2\x63\x6e\x31\x87\x13\x70\xc3\xe9\x2a\xfd\xb4\xcb\x11\x4b\xdf\x7c\x23\xb4\xad\x99\xb2\xcd\x5d\x6b\x3d\x59\xc9\x89\xa5\x6f\xf8\x75\x9d\x8e\xfb\xc4\x4f\xc4\xc3\x65\x23\x7d\x40\x82\x9a\x1d\x2f\xf9\x2c\x57\xcf\xfc\x6a\x45\x9c\xdc\x23\xcb\x24\xc4\xec\xdd\x0d\x78\xf9\x38\x12\x11\xd7\xb1\xb2\xbd\x97\x2e\xc2\xdb\xcc\xfe\xd8\x6f\xc7\x63\x92\x24\xb6\x88\xdf\x4f\x92\xaf\xb1\x92\x3c\x36\x22\x52\xf5\xbc\xb8\x1f\x35\x1a\x0d\x84\x13\xbb\xf1\x96\x3d\x2d\x04\x1d\x83\xa7\x5b\xb2\xe7\xf5\x3b\x94\x3a\x2b\x3e\x9a\xe5\x5e\xd5\x3c\xaf\x1f\x4b\xde\x53\x2a\xd6\x31\x80\x91\x16\x44\x51\xab\x43\x34\xd0\x6f\xd5\xb1\xf6\x94\x49\x4f\x15\xf2\xed\x80\xd1\x8b\xe9\xcb\xdb\xf0\x9b\xe2\x77\xe2\xd5\xee\x24\x41\x31\xc3\x33\xdf\xae\x7f\x2e\x5c\xd3\xed\xe1\xdb\xba\x8d\xf0\x62\x2d\x8d\xb0\xdd\x43\x6a\x1a\xf9\x7b\x56\x2f\x21\x09\x51\x76\x6e\x7f\xa4\x79\x9f\x8f\xc7\x6d\x0c\x09\x11\x40\x6c\x03\x06\x82\x8b\x87\x13\x38\xf1\x88\x34\xfc\x4e\x4d\x8c\xe2\x10\x49\xe8\xc2\x0f\xa7\x6a\xcf\xb6\x25\x1e\x0d\xb1\x26\x7f\xb9\x65\x45\x8e\x48\x6c\xd5\x5e\x8e\x19\xa7\x2b\xad\x26\x60\x42\x6e\x4c\x62\x4c\xdf\x53\x71\x7c\xcd\xd1\xeb\x18\xee\x65\x89\x27\x01\x33\xa1\xf6\x76\x7e\x16\xe5\xdb\x64\x3b\xed\x60\x59\xb4\xc9\xe3\x84\x12\xd3\xe3\x87\x82\x2e\xd5\xa3\x41\x0a\x8f\xee\x81\xfa\x9c\x49\xbc\x07\xf9\xb6\x9b\xed\x0b\x97\xf1\x4e\x68\x18\xfa\x61\xab\x46\x31\x93\x72\xac\xfd\xd9\xfe\x8a\xf6\xd0\x26\x9c\x4d\x45\xe8\x36\xfa\x01\x3f\xf2\xd1\x66\xa7\xd5\xae\xc8\xde\xfb\xc5\xfa\xc1\xc4\x4c\x02\x8f\x26\x26\x7a\xcb\xf4\xa2\x2c\x2e\x5f\x74\xda\xe8\x24\x60\x0c\x5f\xcc\x03\x6f\x69\x4b\x5b\xa0\x4d\xf7\x79\x02\xa6\x0c\x41\x11\x9c\xd3\xda\x64\x9d\xe7\xfc\xc2\x45\x9a\xa5\x75\x13\x1e\xf7\xe9\x39\x3b\x7e\x05\x9d\x04\x40\x23\x0b\x31\x6c\x3c\x2f\xdc\x03\xd6\xa3\x0d\x20\x09\x20\x74\xba\x00\x3f\x8a\xfa\x9e\xa5\xd7\x0e\x0b\x03\x2f\xea\x24\xb1\x36\x25\xfc\x83\xcb\xb7\x4b\x51\x3f\xa4\xea\x9e\x70\x41\x27\xa1\x52\x44\x38\xe4\xfd\x62\xf6\xe7\x81\xba\x3d\x2e\x89\x08\xb3\xd2\x4e\xd7\xbc\xfe\x13\x78\x1b\x23\x24\x51\x10\x61\x74\x64\x9b\xaf\x9e\xd3\xcf\x65\x48\xdd\x19\x89\xa4\xd6\xd2\xbf\x14\xf9\xe3\x35\x3f\xa6\x22\x43\x2e\xa9\xfd\xed\x32\x8a\x48\x93\x48\x53\xa4\xf2\x7a\x86\x53\xc9\x7b\xc4\x3a\x3a\x61\x2c\xf0\x2c\xff\x09\xf6\xed\x4e\x39\x17\x49\x62\x79\xd3\xcb\x22\xcb\x1e\x8b\xeb\x30\x9a\x8f\xef\xff\xd3\x9e\xc6\x09\x35\xd4\x6e\x27\x68\x26\xd6\x99\xd7\x70\xb9\x95\xfc\x9c\xb6\x4b\x8c\x87\xc0\x45\xb7\x5b\xfc\xfa\x3a\xad\x9c\x08\x22\x1c\x9b\x92\x83\xc0\x18\x95\xa3\x31\xea\x22\x11\x81\xd1\xaf\xb3\x0a\x4e\xbc\xaa\x33\x98\xd4\xe5\xfb\xd2\xd4\x26\x82\x27\x48\x5f\xeb\xb2\xde\xc3\x75\x21\x7d\x89\x39\xd7\xc6\xff\x1e\x28\x78\xea\x44\x46\x1e\xc6\x99\x1b\xda\xae\x46\xa9\x0c\x26\xf1\x9c\x96\xb5\xc3\xad\x75\xc7\xa4\x54\x6e\x63\x2d\xdf\x9a\xff\x7c\xfb\xac\x32\x95\x28\x1a\xe2\x5b\x98\xaf\x5f\x1e\x9f\x56\xf3\xfd\x61\xf9\xb2\x38\x3c\xae\xda\x1a\x70\xa2\x98\x8f\x96\xf4\xe1\x7a\xdb\x16\xf2\x0d\x6a\xeb\x65\xfc\xa5\xb4\x86\x4e\x74\x68\x5a\x16\x0c\x74\xa6\x5a\x98\x2e\x95\xf6\x7b\x69\x91\xc4\x7c\x48\x0e\x34\xb2\xc1\x5a\x28\x26\x7b\x79\x80\x79\xc9\xc5\x77\xe0\x8e\xa1\x5e\x27\x5a\xa9\xc8\x48\x0e\x5c\xab\xee\x8f\xda\xe8\x3f\x7d\x83\x7a\x71\xcb\xf9\xb9\x59\xe5\x25\x42\x70\xae\x5d\xa3\x53\xfb\x59\x38\x21\x1a\x43\x4b\xee\x30\xdd\x06\x99\x3d\xab\x07\x18\x34\x37\xd8\x93\xb1\x93\x1a\x1d\x36\x3b\xf5\x11\x03\xcd\xbf\x23\x40\xc1\xe4\x1c\xe4\x84\x29\xf4\x92\x8a\x92\xcb\x26\x0c\x3d\xfc\xeb\x0a\xe5\x6d\xec\x6a\xe0\x6c\xfc\x9f\xf0\x7f\xdd\x49\x42\xfb\x89\x53\x20\xc9\xdf\xec\x33\x0e\x17\x29\xf7\x42\x1f\x53\xb9\xaf\xfd\x42\xf0\x7d\x47\x48\xef\x09\xda\x13\x8d\xc7\x89\xce\x2e\xac\x64\x31\x6a\xa3\xb1\xc3\xa8\x0f\x08\x89\xd9\x9d\x8a\xeb\x4f\x9e\x1f\xff\x48\xf3\xe3\x6c\xf5\x6d\xfd\xd7\x6e\x12\xa7\xbe\x66\xbe\x75\x5c\x71\x2b\xed\x0c\x9f\x6d\x4a\xf3\xda\x5f\x09\x15\x32\xc6\x3d\x15\x47\x7a\xd0\xb9\xbc\x6b\xe8\x9d\x4e\x42\x8f\xbc\x40\x1c\xec\x8d\x5e\x3d\x8d\x69\xd0\x36\x35\xf0\xf4\x5c\xad\xd4\xc3\xed\xde\xda\xf1\x80\x18\x2d\xed\x66\xcf\xf8\xce\xdf\xdf\x21\x1f\x51\x39\xbb\x71\x94\x61\xbb\x21\x37\x11\x61\x5d\x94\x07\x44\x81\xa4\x45\x7e\xd0\x30\xae\x6f\xf3\x40\x32\x8b\x09\x78\x87\xb2\x1e\x66\x54\xa7\xe7\x4a\xa0\x43\x6d\xdb\x3a\xb6\xa0\xa7\x28\x06\x35\x0f\x63\x1f\x37\xe9\xfa\x08\x8b\x6b\x5f\x52\x4b\xf3\x28\x30\x42\x8d\x67\xec\xa1\x5c\xe5\xcd\xd9\x69\x8b\x35\x74\x83\x42\x03\x11\x7e\x5e\xcd\xb7\xeb\xc5\xfa\xe9\x69\xb6\xdd\x35\x01\xcb\xc1\xfc\xf7\x76\x58\x14\x6b\xab\x06\xf5\xd8\x75\x00\xb8\x83\x5c\x51\xdb\x04\xbd\x80\x4b\x09\x18\x73\x0e\x2d\x2a\x8f\xa4\x21\x18\x1d\x94\xcf\x31\x89\x32\x00\xc9\x5e\x87\xf8\x3d\x7b\x72\xec\x71\xa3\xb3\x2d\x8b\x96\x5d\x76\x3e\x4d\xb1\x3a\x7a\x85\x31\xd3\xf8\xd2\x9f\x8b\x22\x3f\xf2\x4e\xe4\xef\xb3\xe1\x31\xc7\x84\xfb\x43\xc9\xff\x9d\x66\xef\x55\xe3\x4e\xf3\x6d\x2a\x5d\x1a\x98\xc7\x0a\x12\xd2\xd3\x9b\xe7\xf5\x86\x97\xfc\x0c\x75\x8f\x0d\x70\x74\xcd\x44\x70\xb4\x36\xbb\x53\xf1\xf1\x5c\x1d\xfb\xa1\x2f\x4f\x80\x62\xda\xfe\x29\xd5\xf5\xeb\xe5\x07\xd4\xd5\x5f\x27\x2c\x38\xa7\xd4\xf8\x9c\x85\xa5\x0c\x77\x37\xc7\x43\x2a\x1c\x43\x5d\xe3\xb6\x7e\x4f\xab\xba\x40\x8e\xa6\x49\x60\x17\xe7\x20\xb1\x60\xa2\x91\xf4\xf6\x81\x67\x59\x51\x8f\x3e\x9b\x08\x15\xd6\xed\x1e\x79\xe6\x15\xd7\xf6\x8b\x8b\x24\xc0\x5c\xfa\x43\x5a\x5f\xb2\xeb\xa0\x7a\xc3\x65\x10\xa1\x97\xe2\x4a\xed\x5b\xfe\xef\x7f\xb7\x80\x14\xae\x08\xc7\x34\xdc\xef\x9b\xf5\xe6\x30\x5f\x3e\x2d\x1f\x0e\x08\xbb\x98\xcd\x47\x6a\x68\x9a\x83\xaf\x10\x45\xca\x07\x9e\xa7\x3b\xa8\x4c\x01\xbc\x82\xfa\x70\x46\xc6\xda\x83\xc3\x5e\x1e\xca\x7b\xe3\xa5\x03\xa3\xd7\xf6\x90\xd6\x8d\xfb\xb2\x48\xf9\xb9\xc8\xd5\xbe\x83\x16\x70\x9d\xf8\x98\x35\x31\xcb\xc3\x01\x58\xee\x73\xdf\x93\x1f\x59\x78\x20\x30\x11\x27\x5b\x32\xfd\x56\xc2\xa4\x39\xa8\xec\xf6\x9c\x65\xb3\x2c\x73\xdc\x50\xc3\x5b\x14\x54\x11\xa4\x5d\x1f\x66\x33\x6d\xc7\xc3\x78\xb0\xcf\x24\x42\x3e\xf6\x1d\xa1\x99\xfb\x35\x5f\x18\x3e\x9b\x0a\xab\x18\x6f\xd8\x6b\xd4\x7a\xc4\x22\xf0\x63\x25\x5d\xbf\x4a\xdd\x65\x2e\x1d\xf2\x40\x04\x31\xd3\x76\x00\x86\x2c\x77\xe8\x5e\x11\x70\xa3\x23\xd9\xb2\x91\x28\xd3\x40\x3f\x1a\x16\x05\x54\xd9\xfb\x30\x82\x4a\x63\x22\xc3\x9e\xa3\x2e\xa2\x50\x22\xba\xe6\x58\xf2\xdc\x01\x75\x06\x4f\x15\x45\x46\x09\xa0\x34\x85\xb6\x2e\x9d\x28\x22\xad\x50\x6b\x64\x76\xad\x4f\xf7\xe2\xb1\xa3\xef\xc4\x3c\x0f\xbb\x93\x1e\xae\xf2\xed\xb6\xe3\x59\x07\x43\x14\x4c\x84\xd4\x36\x92\xa1\x16\xcf\xdf\xc0\x70\x0b\x06\x21\x12\x5f\x41\x2e\x0b\x4b\xfc\xb1\x52\xbf\xd9\x71\xc3\x1f\xd6\x5e\x60\x91\x8a\x96\x7a\x7f\xf9\xeb\x92\x15\xe5\xa8\x90\x27\x98\x96\x88\x06\x54\x90\xd5\xfc\xae\xf7\x7c\xf4\x6f\xfb\xd1\x62\xce\x4c\x4a\x15\xaa\x4b\x91\x57\x56\xa8\x6f\x34\x67\x62\x11\xa3\xd0\x7f\x07\xbd\x5b\xff\xbe\x7c\xd9\x1d\x1e\xd7\xdb\xc3\x76\xbd\x3a\xac\xb1\xf4\xbb\xda\xb7\xf1\xb6\x48\x7c\xc0\xc6\xca\x87\xeb\x6d\xb6\xfd\xa3\xcf\xb8\xa4\x45\x92\x98\xea\x12\x7a\x85\xae\x21\x62\x50\x27\x1d\xba\x19\x22\xe1\x54\x04\x86\x62\xba\x23\x19\xb2\xc7\x78\xc0\x91\xff\xfc\xdb\xeb\xba\x17\x5d\x08\xce\xc2\x20\x68\x0b\x5d\x58\x68\x1d\xa3\xa5\xdc\x48\xce\xcd\xe2\x31\x7e\x7d\x8f\x61\xc0\x0e\x10\x94\x52\x4b\x75\xbb\xb4\x70\x49\x93\xe1\x6a\xa9\x06\x9b\xa5\x66\xfe\x34\x30\xe4\x6d\x53\xa4\x10\x81\x8f\x0b\x8b\x57\x55\x7a\xcc\x07\x59\x3b\x21\xbd\x10\x92\x3e\x05\xcc\xd0\x6f\x71\xa3\xe2\x20\xb4\xb4\x1e\xaf\xab\xc5\xe0\x67\x9c\xc5\x15\x52\x99\xb4\xc1\x2c\x4f\xeb\xf4\x4b\x95\xcb\xf6\x04\x4f\x3b\x46\xd4\x59\x56\xf3\xd2\x70\xd6\x8d\x5e\x90\x8a\x34\x66\x02\x4c\x7d\xb2\x59\x8a\x5c\xd6\xae\xbb\x7a\xf8\xa1\x14\x07\x37\x55\x11\x80\xb9\xca\x75\xf1\x58\x94\x36\x79\xd6\xe3\xa0\xd1\x42\x41\x40\x54\x47\x57\x6e\xa1\xa6\x93\xd9\x35\x01\x2c\x4a\x0c\xb3\x64\xa9\xaa\x83\xc8\xb8\x7c\x3b\x60\x89\xc0\x5d\x4c\x07\x11\xa6\x66\xaf\x79\x25\x79\x9e\x0f\xaa\x24\xd2\x0b\x2c\x2e\x93\xbb\x2c\xd2\x7e\xd7\x1d\x8b\x7d\xd6\xe5\x15\xfb\xca\x01\x6e\x84\x14\xd8\xdf\xb6\x85\x5f\x7d\xab\x22\xa9\x17\x18\xc6\x61\xa8\x8f\xfc\x0c\xcd\xad\xa5\x79\x5d\x16\x53\x64\x7f\x5a\xfa\xa1\x87\x95\x91\x65\x56\xc1\x7b\xfa\x59\xc0\x2f\xfd\xc4\xc3\xd4\x98\xad\x75\x77\x6c\x4f\x46\x0c\x6a\xf8\x5a\xa4\x9f\x98\xee\x43\x63\x4d\x67\x47\xc8\xe5\xcd\x72\x77\x94\xe3\xa1\x82\x88\xa8\x03\x59\x06\xe3\xc3\x32\xf6\xac\xd6\x99\x4e\x7b\xc5\x6d\x19\x68\x8a\xf7\x9d\x56\xeb\x7c\xd3\x92\xe1\x8f\x5e\x51\x18\x26\xa2\xe5\x63\xff\xd6\x98\xe1\x91\xfd\x90\x51\xe8\xe9\x76\x87\x9c\x7d\x9b\x7f\xd5\x42\x27\xa3\x30\xa1\xb6\x81\x73\x91\x56\x97\x6b\x0d\x43\x38\xbc\x8c\x94\x46\x8a\x1b\xdd\xe7\xe0\x9b\xba\x52\x0c\x09\x16\xaa\x52\x69\x24\xe2\x03\x17\x9e\xd8\xe3\x09\xe1\x58\x8c\xac\xae\xe2\x9c\xd6\xbb\x22\xbb\x0e\x34\x62\xfa\x11\x95\x3b\x23\x06\xec\x3e\x3c\xa7\x79\xfd\x77\x3a\x6f\x64\x92\x84\x31\xb7\x31\xe0\xc3\x35\x57\x19\x4c\xb5\x31\xc8\x44\x85\x98\xf7\xb7\x3c\x02\xc5\xf9\xc2\xcb\xc6\x14\x0c\x47\x71\x4a\xa8\xf5\xd2\x90\x4b\x5a\xd9\xfc\x55\xf5\x04\xf9\xd1\xd1\x0d\x6b\xc9\xa5\xd1\xb7\x7b\x58\xbf\xbc\xee\x0e\xc1\x61\x31\xfb\xb3\x9d\xf0\x1c\x38\xb1\x45\x8c\x43\x2a\x8b\x3c\xfd\xd7\xe1\x62\x0a\xfc\x87\xe2\x02\x79\x6f\xbf\x97\x82\x78\x08\xa5\x4b\xab\xea\xca\xad\x86\xfe\xec\x1d\x4a\x7e\x1c\x87\x88\xee\x04\x8b\x3e\xb0\x5c\xf1\xbb\x0f\x80\x0e\xaf\x25\x45\x10\x20\x40\xa0\xb1\x80\xaf\x97\x75\xbb\x90\x84\x08\x83\xc8\x40\xd1\x51\xab\xb0\x1c\xa8\x35\x69\x29\x43\x43\x85\x7b\xbc\xfe\x1f\x2f\x9d\xd8\xb0\x96\x4a\x0a\xdf\xfa\x08\xe8\xb1\x62\xc5\x7f\xf4\x0d\xfe\x87\x5a\x03\x2c\x81\x2a\xd4\xb1\x30\x50\x67\x97\xf6\xeb\x2f\xc2\x91\xc0\xba\x37\x0a\x24\x24\x70\x40\x8f\x57\x16\x79\x13\x84\xed\x8b\xe7\x34\x4f\xbf\x75\x53\xd9\x0d\x13\x1a\x49\x76\xe7\x38\xac\xf1\xe6\x76\x28\xd5\xbf\x3b\xf1\x0b\xec\x4e\xa9\xbe\xd3\x81\xff\x64\xe2\x20\x17\x51\x2f\xc1\xdf\xd3\x09\x19\xbd\x76\x2d\x00\x37\xe7\xc7\xd9\xe3\x6c\x78\x48\x11\x16\x6a\xdb\x70\x6a\xf7\xa7\xc9\x1f\x53\x24\x61\x46\x42\x19\x93\x56\xa6\x6d\xbe\x2e\xc6\x77\x6a\x07\x7b\x42\x39\xea\x77\x4b\x97\x3c\x7c\x07\x8a\x42\x84\x50\xdb\xfd\xe3\xa3\x43\xc4\x2a\x9f\x11\xcc\x43\xfc\x04\xb1\xe1\x69\xc5\xdb\xbf\x27\x91\x45\xfc\x57\x2d\x4b\x52\x7b\x8c\x53\x04\x27\xf4\x58\x24\x2a\x53\x34\xef\x12\xc5\xa3\x07\x09\xa8\xf0\xb1\xce\xc5\x35\x74\x9c\x73\xa3\xb7\x12\x04\xa6\x10\xc5\xd5\x7b\x5a\xb5\x29\x7a\x77\x30\xf2\x91\xc5\xd8\x9e\xb2\xd6\xf8\xbb\xaf\x15\xa8\x59\x65\x6e\xd0\x25\x55\x55\x48\x7c\x4c\x11\x5f\x2b\x28\x6d\x53\xa1\x15\x3b\x1b\xfe\x5e\x48\x18\xb2\x87\xec\xaf\x02\xda\x73\x59\x42\xda\x84\x62\x31\x12\x38\xd2\x2a\x4c\x04\xa2\xde\x11\x6b\x8a\x3b\x40\xe3\x2c\xa3\x6f\x52\xa5\xc7\xf6\x22\x5c\x84\xb1\xe3\xfe\xff\x55\x3f\x34\x13\x36\x89\xba\xa3\xc6\x05\xcb\x3a\xf6\x56\xad\x22\x9f\x51\x84\xb5\x03\xf4\xe1\x92\x8a\x49\x82\x33\xc0\xfa\x64\x0a\x00\xb5\xc1\x52\xf9\xdb\x54\xce\xea\x6e\xe7\x52\x4c\xfa\x56\xb5\xac\x76\x9a\xad\x16\xcf\x3b\x7c\x17\x31\x8d\xd1\xe4\x22\x73\x74\x63\x51\x5e\x2d\x59\xae\x71\x27\xdc\xa8\x48\xa1\xf7\x06\xe7\xb4\xb6\x8b\xf5\x35\xd7\x65\xf1\xef\x31\x3a\x4c\x25\x84\x82\x37\x48\xcc\xf6\x51\xaf\x6e\x90\x67\x70\xb1\xb3\xf9\x6c\x52\x19\xd4\x0d\xa3\x14\x91\xc9\x38\x06\xc9\xe5\x3f\x43\x2b\x75\x56\x52\x25\xb1\x80\x8e\xf4\x17\x81\x69\xd3\x9b\xbb\xe2\x61\xe8\x9b\x5c\xb6\x7c\x5b\x7f\xe4\x69\x7e\xb4\x51\xf6\xe8\x91\xb8\xe2\x28\x66\x73\x31\xc4\xe0\xdb\x54\x4e\x36\x1b\x2a\x11\xe8\x80\xb6\x45\x16\x83\x89\x1a\x79\xf7\x4a\x48\x23\x75\x37\xb7\x0b\x7b\x20\x30\xa5\x95\xa4\x04\xbf\x06\xb2\xf8\x38\x10\xff\x1d\x65\xa6\x56\x32\x08\x4d\x72\x83\xe7\x47\x95\x4e\xa0\xca\x95\xe4\xa1\xc3\xf1\xae\x87\xfb\x88\x92\xd2\x4a\x3c\xa7\xcd\x12\x6f\x1c\xcc\x76\xd6\x29\xca\x45\x57\xb3\xfd\x82\xa6\xf7\x93\x59\xa7\x42\x8d\x0b\x60\x77\x2a\x2e\xbf\x9b\xdd\x66\x78\x5b\xe0\x2b\x69\x01\x71\xdb\x6b\xee\x48\x95\x87\x17\x81\x98\x12\xda\x39\xe0\xb6\xc4\x63\x9a\x53\xdd\x90\x84\x38\x98\xd4\x7c\xfe\xdd\xb4\x28\xd0\xe1\xab\xd4\x09\xf7\xb5\xc5\x3c\xee\x8b\x6d\x55\xdf\x13\x5d\xb6\x23\x35\xb5\xb8\x87\x87\x85\xd1\x0a\x1f\xe4\xae\xcc\x30\x20\xc4\x47\x8f\xdf\x71\x67\xac\x16\xee\xb5\x01\xa1\x80\x40\xd3\x3a\x85\xd2\xdf\x76\x0e\x0d\x10\xf0\x93\x70\x20\x49\xf3\x37\x88\x7c\x35\x78\x5e\x64\x4e\xab\x9e\xf9\xff\x15\x65\x5a\x8f\x6a\xeb\xe0\x51\x93\xf6\xc6\x46\xd0\xf2\x8d\x3b\x1b\x03\x9e\x12\xe0\xc4\x0a\x2d\x7d\xf1\x72\xff\x7d\xda\x38\x83\xa7\x23\xfc\xda\x0f\xb3\xc5\x01\xb1\xf8\xee\x2a\xbe\xcf\xd0\x4f\xfb\x73\xdd\x93\x8f\xd1\xe0\x87\xa6\x3b\xca\xb4\x0c\xaf\xaa\xe5\xaf\x74\x04\x27\x02\x9f\x1b\x2c\x2c\xba\x9e\x86\x4d\xa7\xad\x19\x80\x0f\x9a\xc9\x4e\x43\xc5\x20\x8a\x27\xbf\x09\x04\x09\x43\x7a\x97\xc6\x76\x0c\x7d\xed\xde\x5a\x87\x40\x7a\x49\x68\x47\xfd\x1d\x12\x53\x0d\x21\x49\x4c\x70\x59\x64\x19\xc8\xda\xd0\xd2\x8c\x5e\x6e\x28\x42\x3f\xea\xf5\xd9\x20\x41\xba\x2e\x4a\x09\x2d\xdf\xec\x4b\x51\xf7\xe7\x23\x44\x81\x69\x3b\xda\xc2\xe5\xda\x8f\x4a\x20\x8a\x4c\x30\xb9\xcb\x8a\xfa\x99\xcb\x53\x9a\xb7\x73\x23\x4a\x3c\x97\xbe\x69\x6c\x45\x0f\x20\x51\x75\x43\x14\xda\xb2\x2d\xf0\xac\xbe\xcd\x79\x35\x00\xf2\x00\x0b\xad\x80\x46\x75\x15\x6d\x96\x6b\xd0\xb3\x3e\x7c\x30\xa6\x43\x23\xc8\xc6\x33\xf8\xc9\xab\x5d\xdb\x53\x03\xb1\x4f\xfd\xa8\x15\xd5\x98\xf3\x52\xb5\xad\x5d\x73\xd3\x6c\x3f\xd1\x1b\x0e\xb1\xa4\x86\x99\x72\xf9\x67\x7b\x21\x9d\x60\x07\xbe\x2e\x61\x98\x9d\x86\x04\x98\xea\x40\x80\xcd\x13\x7f\x99\x37\x1f\xdd\x7a\xa2\x23\xdf\x72\x2c\xac\xe6\xeb\x12\xe9\x89\x86\x23\x84\x56\xae\x84\xbb\x4b\xbb\x66\xa2\xe1\x20\x08\xc3\xd8\xbe\xf3\xef\x45\xf1\xe6\xc8\x66\xc7\x8a\x14\x6e\x74\x1c\x84\x4e\xb2\x72\xf9\x4b\xf6\x8f\x68\x2a\x74\xcb\x1a\xb5\x7f\xcb\xd7\xba\xeb\xb6\x02\x1d\x18\xbd\xf7\x0a\xdf\x66\xf1\x01\x6a\x8f\xd4\x6e\x3d\x23\xac\x09\x8d\xd0\x8b\xbe\xb8\xef\x76\xa8\xda\x58\x5c\x13\x5f\x63\x94\x67\xdb\x71\x26\xd4\x19\xb5\x26\xb1\x52\x0e\x08\x8a\xa8\x04\x14\x0f\x1a\x3c\xae\xf6\x88\x52\x86\xba\x2c\x2d\x0c\x18\x36\x95\xe3\x66\x37\x37\x54\x26\x68\x51\xe1\x0c\x25\x06\xae\x63\xbd\x03\x37\x0e\x14\xc3\xcd\x30\x95\x6f\xaf\x97\xf1\xef\x69\x8a\x22\x08\xa8\xfd\x0c\xe5\x40\x30\x46\x6b\x1a\x01\x86\xa5\x59\x91\x1f\x1f\xae\xb7\xf6\xcf\xb1\x87\x56\xc1\x72\x36\xd7\x5c\x9e\x90\x2c\xb8\x1a\xe7\x33\x35\x8d\x23\x6c\xb8\xfb\x47\x51\xc1\xe5\xd4\x67\x40\xd1\x54\x7a\xb4\x93\x3f\x4a\x37\x45\x91\x2d\x9b\x4d\x21\x1a\x98\x27\xed\x47\x7e\x80\x4a\xb3\xe8\x17\xcc\x7b\x3d\xc0\x3a\x88\x0c\x3b\xb3\x02\x5e\x23\xc2\xee\xc0\x3d\x67\x10\x75\xc8\x0d\x99\xcb\xa6\x28\x6b\x9e\xf5\x17\xa1\x8e\x64\x20\xe2\x01\xbf\xeb\x23\xc0\x64\x81\x47\x33\x9f\x12\x5b\x9d\x9b\x17\x45\xa6\x8a\x8f\xfc\x1e\x33\xae\x59\x62\x7a\x84\x5d\xd2\xbd\x09\x3e\x8b\xfc\x9e\x0f\x40\xc7\x89\x17\x26\xad\xbf\xd1\x35\x8d\x4c\x36\x20\xe8\x98\x1b\x67\xaa\xc3\xaa\x0d\x1c\xc9\x91\xef\xa5\x63\xf0\x71\xc1\x71\x33\x81\x67\x69\xd9\xc3\x71\xd8\x31\x89\x1f\xb0\x56\x1c\xc4\xe9\x51\x83\x7a\x2c\xca\xc7\x4f\x7a\x72\x75\x12\xc5\x86\xb8\xe4\x2a\x2d\x45\xb5\x3b\xc0\x34\x96\xe9\x79\x96\x8d\x7e\x44\x09\x84\xa0\x9e\xab\x63\x47\x19\x66\x8f\x71\x8f\xe2\x84\x00\xd4\x93\x28\x74\xdd\x01\x4c\x35\xf7\x24\xf2\x99\xa9\xe2\x2a\x32\xf8\x6d\xf0\x8a\xb9\xa7\x02\x8b\xd5\x31\x8e\xd8\x6a\xbe\xfe\x7a\xe3\xd0\xdc\x03\xde\xb6\xa7\x1f\xaf\x19\x37\x9a\x71\xbf\x46\x3b\xb3\x16\x7e\x30\x4c\xfd\xff\x0e\x82\x8b\x66\xba\x4f\x1a\x36\x2d\xb4\x91\x3d\x49\xcf\xcd\x5e\xfd\xbc\xdc\x3b\x36\xb1\x21\xa9\xd8\xff\xfc\xef\x7f\xf5\xd8\xbf\x3e\x15\x60\xee\xbf\x1c\x49\xe2\xa4\xa5\x55\x58\xe9\x9d\x79\xe3\xc3\xa2\x90\x96\x9e\x61\x3c\xd9\xac\x9f\x37\xb3\xe7\x5e\x2b\xb4\x96\xd4\xac\x65\x07\xb2\xb6\x99\x7c\x35\xb9\x5f\x6b\x29\x19\x36\x9b\x0b\xf8\x04\x12\xa4\x21\x32\x41\x17\xbf\xd6\x85\x63\xcb\x73\xbf\x05\x56\x33\xfe\x52\x0e\x2a\x05\x5a\x93\x28\xec\x54\x29\x4d\xc4\xdc\x8a\xaa\xdd\xff\x84\xf6\x42\xdc\x2e\x2f\x50\xca\x4d\x91\xe6\x9f\x88\x4e\x6a\xf3\x7f\xff\xef\xff\xf7\xff\xbe\x2f\x7e\x3f\x0c\x13\xd8\x8c\x10\xcf\x33\x6d\xda\xb2\x04\x05\xbf\x7e\xfd\xa7\x1d\x13\xee\x2a\x9c\x62\x7a\x02\xb2\x36\x0b\xde\xfc\x55\x4b\x34\xec\x28\xbf\xb8\xc2\x4f\x5e\xb9\x63\xd4\x0b\x95\xc5\x4c\x65\x4e\xbb\x72\x76\xad\x8b\xde\x00\x86\xbc\xc1\x1f\x8d\xa1\xfc\x91\x2a\x28\xe6\xfd\xaf\xd0\x8c\xe0\x81\x73\xfa\x37\xbc\x34\xea\xae\xe3\x57\x60\xac\x29\x23\xc4\x0f\x4c\x93\x76\x65\x08\x17\xd2\xfa\x36\xa8\x95\xb8\x51\x8c\xb3\x0e\x51\x80\x9e\xc3\x58\xca\xba\xf5\xc8\x9a\xe1\xdc\xc3\xc0\x64\x59\x54\x06\x81\xe1\xfe\x2e\x01\xa9\xc2\x5f\x7b\xa2\x2d\xf6\x50\x90\x48\xf4\x4a\x2c\xf9\xe5\xf2\x04\xa5\xd3\x6b\x75\x23\x78\x82\xc0\xf7\x16\xaf\xfd\x54\xc8\xb7\xbf\xee\x24\x1a\x7d\x91\x48\x85\x98\x9d\x75\xa4\xfd\x73\x28\x6b\x93\xcf\x2d\x7e\x1b\x8a\x3b\xda\x13\x18\x57\x32\x71\x2b\x60\x1c\xc5\x32\x42\x62\x1e\x70\xdf\x75\xa4\xff\xe4\xef\xd0\x31\xf0\x30\x42\x12\xe2\x21\xee\x78\xb3\x5d\xfd\x98\xed\x97\x83\x8a\x68\x73\x98\x19\x62\x7f\xae\x94\xe9\x13\xa9\x3f\x67\xc8\x65\x84\x70\xa6\x5c\x83\xff\xbc\x4c\xeb\x66\x2f\x37\x7b\xc7\x84\xb5\x62\x84\x08\x46\x3a\xa1\x1d\xb8\x9e\xbf\x17\xf5\xbc\x37\x0d\x65\x12\x20\x8a\x8b\x2b\x35\x11\xa6\x32\x42\x94\x4f\x7d\xc3\x26\xb8\x49\x77\xbd\xb5\xa1\x54\x88\xf2\xd4\xb3\x6b\x7d\xc2\xb8\xe4\xa5\x68\xde\x21\xa8\xfb\x80\xb8\x19\xad\x3d\xdd\x4a\x12\x59\x62\xcd\x5d\xcd\x85\x29\xdc\x3a\x43\x32\x38\x05\x3c\xe6\xfa\xa1\xfa\x32\xd3\x93\x9f\x36\x6e\x6f\x17\xe2\x08\x11\x09\xcf\xbc\x2c\xd3\x26\x66\xbd\x97\xb6\x69\x46\x69\x53\x38\xde\x71\x0d\x0f\xc5\x2f\xf7\x4c\xda\xe7\x9e\x4d\x30\x0d\x74\xc5\xc7\x21\x60\x33\x34\x80\xc0\xe9\x1b\x1d\xd2\x1c\x01\x10\xb8\x09\xb4\xdd\x61\x83\xc6\xfb\xe6\x8c\xd0\xb0\xbc\x34\x17\xbf\x37\x25\xd3\x13\x55\x27\x0a\xef\x33\x2b\x8e\x4b\x24\xad\xb6\x17\xf3\x88\x47\x11\x50\x53\xf7\x85\xef\x7f\xac\x36\xd3\x93\xc0\x23\x1e\xb3\xa0\x4f\x24\x2f\x76\x06\xbc\xb7\xbd\x36\x83\x7c\xb3\xaf\xa1\xc9\xb8\x40\xe9\x68\x2b\x2c\xf0\xb4\x19\xc1\x24\xf6\xce\x1f\xfe\xed\xfa\x08\x06\xaf\xd5\xf3\x12\x45\x4c\x5c\x2c\x1f\x06\xbb\x21\x23\x9e\xef\x03\x42\x52\xfe\x80\xd2\x35\x1a\x30\xe2\x05\x81\x8e\xfb\x04\xf5\x87\xb7\x34\xcb\x0e\xd5\x47\x5a\xcb\x93\x1b\x13\x12\x8a\x52\xf3\x8f\xcf\xd8\xbf\xf7\x99\x15\x76\xa3\x3d\xc3\x32\xc0\x95\x7a\x28\x0a\x2c\x94\xdf\x65\xf5\x9b\x61\x54\x49\xdd\x32\x7c\xbe\x73\x79\x6b\x56\x45\xfb\x2e\xc2\xc4\x43\x94\x22\xe4\x03\xc8\x0b\x23\x5e\x14\x06\xb8\x27\xa0\x22\x60\x9a\x4d\xf3\xc2\x30\xe2\xc5\xbe\x81\x44\x54\x35\xb2\x02\x61\xb3\x3d\x1f\xab\xa1\x36\xe3\x42\xc1\xba\x24\x15\x4e\x48\x9b\xc1\x1f\x5d\x2f\x8a\xc2\x3e\x21\xd9\xf3\xee\x93\x6f\x1d\x2b\x29\x1c\x20\x0a\x21\x8e\x2f\xdd\xeb\x8e\x21\xc1\x1e\x78\xae\x75\x9a\xa5\x4d\xe8\x34\xe2\xcd\x60\xc4\x4b\xa2\x04\x31\x18\x1b\xc8\x6d\x4f\x32\x23\x1e\x57\xe0\xb6\x93\xad\xa1\xf8\x6a\x6d\x7f\xe7\x07\x8c\x51\x68\x8c\x78\x22\x30\x0c\x12\x56\x15\x70\xad\x47\x70\xbc\xd1\xbd\x8b\x20\x42\x1d\x9c\x13\xaf\x36\xfc\xd6\x6c\x0e\xa3\x19\x26\xe2\x18\x59\xb7\xec\x0e\x71\x2f\xe8\x72\x5f\xd7\xef\x16\xad\xa7\x12\x09\xb6\xb0\xe9\xd6\xcc\x7a\xbe\x1c\xf2\x98\x36\xc3\xb4\x40\xd2\xf6\xef\xfb\x27\xf7\xfc\xe0\x29\xcc\xd6\x67\xbc\x6a\x05\x95\xaa\x4d\x59\x68\xab\x3d\xd2\x0c\x09\x19\x35\xf2\xff\xb9\x19\xf1\x55\x85\x17\xc7\x03\x6e\xa7\x07\x17\xf7\xcd\x79\x39\xfa\xe6\x5a\x11\x54\x6f\x2c\xe1\x1d\x78\x36\x9c\x38\x94\x84\x11\x22\x31\xb6\xcb\xdf\xf7\x5d\x00\xd4\x1c\x88\x04\x3a\x07\x5b\xb8\x14\xdf\x79\xae\x46\x32\x81\xcd\x88\x24\x40\xfa\xb0\x17\xf8\xf8\x5e\x5c\x9c\x49\xa7\x1e\xf5\x51\x05\xe4\x9a\xa7\xb8\x47\xd8\x12\xc2\xa8\xaa\x88\x03\x99\xa1\x3c\xe0\x19\x3c\x5a\xa7\xb0\xbd\x88\xe6\x18\x68\xa2\x07\x51\x5c\xeb\xa7\xf4\xbc\xe0\x93\x35\x01\x46\x28\x25\xa6\x6a\x76\xe1\x65\x9d\xca\xf4\xc2\xf3\xba\x7a\x2c\x4a\xbf\x54\xfd\x9e\x7f\x37\x38\x0e\x88\xd9\x89\x16\xa8\xe9\xa9\x96\xf5\xc9\x7d\xc6\xd2\xa6\x96\x9a\x61\x22\x8c\xa1\x2b\x98\xba\x3f\xfb\x54\x1b\xc9\xcb\x8c\xa7\xe7\xe5\x6e\xfe\xc9\x1d\xf9\x09\xa5\x8e\x59\x65\xf7\x7d\x46\xc3\xa8\xbd\x40\xa2\x89\x41\xdd\x97\xef\x50\x2e\x8d\x82\xda\xbc\xc8\x75\x96\xca\x7a\x75\xbe\x64\x7d\x58\xea\x7d\x96\x74\x08\x81\xfb\xf4\xdf\x89\xf4\x37\x23\x34\xf0\x29\x46\x29\x1b\x38\x1e\x33\xe8\xed\xdf\x34\x08\x85\x32\x65\xa4\xe2\x52\xcf\x79\xdd\xfe\x5d\x02\x26\x84\x4c\xa1\x71\x35\x5f\x1f\xb6\xeb\xd7\x97\x85\xe7\x8e\x87\x1e\x11\x60\x68\x26\x8a\x6b\xbd\x83\x4c\xb7\x47\x84\x8f\x88\xd0\xed\xfa\x69\x79\xf8\xfd\xcf\xf9\xe1\xc7\x72\xbb\x7a\x5c\x2d\x17\x87\xd5\xcb\x8f\xe5\x6e\xbf\xde\xba\x91\x11\xf1\x23\x07\x00\xed\x54\x8b\xee\x9a\xe7\x9a\x91\x1e\xc3\x14\x87\x49\x2d\x7e\xc2\x34\xd0\x8c\x63\x31\xe6\x0c\x0f\x8d\xf5\x2e\x53\x75\x34\x41\x40\x8f\x40\x69\xf4\xb9\xa2\x84\xb1\xae\x38\x8b\x7b\xef\x5a\x3f\x17\x39\xd4\x27\x8e\xfe\x8c\xd1\x35\x34\x4c\x72\xa3\xf9\x14\x71\x4e\x9c\xde\xfc\x1d\xd7\xfd\x88\x62\xbf\x0f\x3a\x9a\x22\x54\x63\x84\xb2\x24\x0c\x03\x8c\xaa\x95\xc9\x9d\x0d\xed\x2a\x8d\x2d\xd0\x44\xa0\x62\x12\x42\x72\xbb\x43\x0a\x43\x26\xc4\x49\x8d\xee\x32\x8e\x99\xe5\xeb\x31\x72\x79\x65\xfa\x06\x77\x58\x99\x66\x9c\xf0\xd1\xec\x63\xbb\x50\x5e\x41\x5e\x1b\x05\x54\x87\xeb\x60\x84\x26\x5e\x80\x85\x20\x04\x3d\x4f\x78\x69\x34\xa1\x86\x45\xf5\x5c\xe4\xf5\xa9\x3d\x2b\x62\x06\x1c\x99\xc1\x7b\xeb\xcd\x50\xee\x83\xd6\xae\x50\x57\x34\xef\x39\xd5\xed\x14\xe2\xa1\x0e\x6c\xaf\xe4\xd3\xd3\x0f\x93\x93\xf7\xbd\x81\x7b\x47\x45\x68\x96\x53\x13\x1d\x7f\x77\xda\xd9\x83\xd5\xe3\xfd\xe5\xe2\x99\x5e\x2c\x82\x09\x2b\xfe\x5e\x41\x59\x63\x59\xa1\x6b\x21\x9e\x2c\x92\x31\x42\x25\x35\x01\x63\x0e\xbf\x5c\xfb\xfd\xa6\x50\xbb\x9e\x61\x93\xcc\xb4\x77\x5b\x1c\x40\x56\x5c\x55\xb5\x81\x72\x59\x9f\x46\x5f\x42\xb2\xd8\x42\xf5\x32\x90\xf5\x41\x5c\xf9\xe1\xd2\x27\x17\xe8\x8d\x14\x46\x79\x39\x35\x58\xcb\x56\xd4\x71\x34\x4c\x85\x86\xef\xea\x1f\xe9\x3f\x52\xf8\xce\x8b\x21\x92\xe9\x1e\x5e\xc1\x08\x05\xad\xb4\x49\xae\x54\x97\x8e\x45\x8e\x11\xaa\xa9\xe9\x9d\x73\x6e\xc4\x2c\x57\x8f\x98\x86\xc5\x02\xe6\x6f\xa3\x1c\x43\x9f\x70\xf1\x4b\x39\x92\x51\x44\x49\x75\x42\x70\x46\x23\xba\xeb\xf0\xaf\x6b\x7a\xf8\xd7\xbf\x27\xa7\x9c\x96\x0c\x11\x40\x5b\x78\x4f\xe1\xe3\xb9\x50\xe0\x7c\x5c\xdf\x8b\xb4\x63\x4c\x68\x96\x32\x72\x9f\xae\x3a\x55\xaf\x91\x9c\x17\x23\x3e\x25\x1e\x3a\x07\x39\x7c\xfc\x4c\xeb\x7c\x94\x9a\xc0\x01\x86\x50\xa0\x99\x73\x38\x25\xac\x03\x3c\x78\xdd\x3e\x0d\x04\x33\xaa\x88\xe5\x5b\x5e\x28\xf8\x0c\xaf\xe7\x86\xc7\x8c\x99\xfa\xc4\x71\xd2\x73\xf3\xa9\x62\xa6\x12\x06\xef\x69\x96\xf1\xf7\xea\x81\xdf\xa0\x74\x76\xa1\xf1\x8b\x8d\x5a\xab\x15\x89\x75\x95\x47\x77\x58\x7b\x68\x8e\xf7\x2f\xfb\x9e\xdd\xf7\x03\x99\xf8\x89\x8b\x3f\xe8\x41\x41\x55\x97\xc5\x6d\xe0\xd0\xfb\x8d\x55\x31\xb1\x90\x51\xfb\x72\x99\x56\x46\xfc\x30\x20\x08\x20\x79\x9d\x37\x17\x6d\x0e\xae\xaa\xf5\xb0\x19\xb6\x19\xc5\x0c\xd1\xa2\xbe\xe6\xf2\x40\xe2\x85\xdf\x9e\x9e\x08\x2c\x12\x9c\xf9\x1b\xec\xae\x17\x28\x7f\xa4\x23\x8d\x39\x46\xfc\x48\x27\xa8\x6a\x8a\xf5\x12\x14\xb2\x4a\x79\x76\x28\x07\xfc\xab\x76\x28\x8b\x88\xcb\xd9\xda\x9a\xf2\xa4\xea\xce\xf0\xee\x18\x48\x4c\x24\x5c\xf8\x0d\x55\x6b\x1d\x36\x97\x11\x3f\x0e\xb5\xe9\x5a\x2d\x8e\x86\x54\x6d\x86\x00\xb9\x7b\x67\xfd\xef\xfe\xeb\xae\xcb\x24\xe6\x59\x4f\xbc\x3a\xf5\x31\x60\x43\xd7\xcc\x4f\xfc\xa8\x95\xcb\x5e\xaf\x9d\x36\xc0\xa4\xc3\xe1\x27\x21\x41\x43\xda\x4c\xff\xdf\x79\x79\xe6\x3f\x8a\x51\x45\xa3\x19\xa4\xa4\xb2\x45\xce\x87\xe5\x9f\xa3\x97\xc7\x23\x01\xae\x6f\x3f\x4f\xeb\xc6\x28\x99\x0c\xbf\x7b\x1b\x5c\x72\xe3\x99\x16\xe7\x0b\xd4\x69\x5d\x94\x58\xae\x6b\xe7\x09\x57\x0a\xbd\x6e\x9e\xa7\x67\x5e\x77\xb5\x51\x7b\x58\x78\x81\xe7\x75\xdc\xda\x3b\xc8\x32\x5d\x94\x8f\x7f\x8c\xee\x51\xe8\xc4\x33\x64\x53\xf5\x0e\x85\xa8\x46\xc7\x65\xcc\x51\x1f\x03\xc1\x4c\x2d\x35\x3c\x6e\xac\xd3\x85\xd0\x01\x58\xfe\x3e\xb6\xf0\x95\x50\xb1\xcb\x47\xad\xcc\x26\x13\x0f\xf6\x18\x5f\x69\x96\x74\xca\xeb\xdf\x51\x4f\xe5\x32\xba\x2d\x48\x48\x28\x1c\x17\xbe\x82\x5f\x0f\xb7\x1e\x85\xb0\x1b\x23\x18\xb5\x49\x12\x04\x77\x8d\x3e\x00\x80\x69\x6f\x6e\x96\x12\x2e\xf1\x1e\x6c\x85\x11\x5f\x87\x46\x09\x73\xce\xfb\x5a\x5b\xee\x20\x8f\x31\xe5\xb5\x58\xef\xf6\xfb\x9e\x17\x1f\x10\x21\x31\xe5\x64\xea\xef\x13\x10\xd6\x4f\xdb\x65\x26\xff\x99\x9c\x7c\x01\xd1\x3e\xc6\x7a\x58\x9b\x6a\x3b\xb6\x18\x09\xbc\xc8\x68\x60\x75\xd8\x8d\x65\x7d\xea\x16\x58\xe0\xa9\x04\xb3\x4a\xc5\xb5\xae\x9a\x3d\xd2\xf4\x59\xf6\x7d\xbe\x80\x06\x31\xd6\x9f\x4d\x49\xa0\xcb\x1c\x05\xbe\x34\xdd\xfe\xae\xa1\xe1\x25\x95\x6f\x63\x81\x05\x46\x82\xc6\x83\xb5\xf9\x9f\xfd\xef\xa3\xf4\x66\x10\x26\xc2\x10\x20\xda\x6d\xec\x09\x74\x5d\x74\xee\x49\x10\x8a\x20\x32\x14\x57\x75\xd6\xb8\x4b\x67\x3e\xc4\x72\x30\x12\x44\x89\x87\xf0\x94\xa7\xab\x7c\x1b\xbc\x79\xc6\x00\x79\x18\xb6\xc5\xbf\xbb\x4c\x45\x10\x13\xca\xac\x1c\xcd\x00\x8f\x6e\x0f\x27\x3c\xc0\x17\x62\x3a\xf5\x44\xc1\x4b\xf5\x94\x22\x6b\xcb\xc2\x98\xe6\x76\x0b\x0e\x12\xa9\x10\x22\xf0\xd4\xac\x92\x22\x3f\xce\x79\x3d\x77\xca\xd8\x8c\x04\x3c\x32\x41\x9f\xe6\x69\x66\xd9\xa1\x7a\x84\x34\x76\x90\xf0\xa2\xa0\x8b\x64\x55\x63\xbd\xfb\xd0\x8e\x66\x44\x24\x89\xa5\x15\x98\xba\x5f\x15\x10\xe4\x3d\xbf\xa0\xa5\x40\x1d\x97\x4e\x49\x13\x8f\x73\x61\xc1\x3b\x4f\x45\x55\x37\x6e\x42\xb3\xe3\xda\xfa\x63\x3b\x48\x61\xa7\xfb\xa5\x28\xb2\x7d\x0b\xfa\x6d\x0e\x48\x40\xc6\x81\xa7\xdd\x27\x78\xd2\xbe\xd7\x1f\x28\x45\x7a\x4a\x4d\x8f\x00\xf3\x6b\x9f\xbc\xde\x0d\x03\x5f\xa1\xab\x60\x30\x40\x3c\x33\x52\x63\xaa\xff\xd0\xc0\x02\xc4\x0c\x8b\x66\x0b\xb9\x6d\x5c\x87\x21\x23\x81\xf6\x84\xe5\xf8\x31\x64\x95\xc8\x70\xd2\x5f\xe4\x81\xa6\x3e\x02\x95\x4d\x55\x7a\xdc\x7e\x7c\x9f\xe0\x0e\x09\x95\x21\xb7\x5b\xf0\x02\xb5\x09\x50\x3a\xcd\x1d\x0d\x23\xc3\x68\x6e\xfb\xc8\x7a\x08\x6a\x37\x22\x49\x44\xd2\x71\xb5\x18\x49\xbf\xc9\x75\x1a\x12\xee\x21\xdc\x62\x9f\x9e\xa1\x06\x79\xea\xcf\xd7\xd0\xe3\xb1\x6f\xed\xe0\xaa\x42\x0c\x78\x9a\x43\xf9\x58\x94\x5b\x68\x1c\x8a\x34\x3f\x6e\xba\xf0\xba\xf7\xb6\x42\xcf\x92\x90\x76\x8a\x81\x03\xae\x99\xcf\x04\xad\xec\xd9\xd4\xf3\x90\x5c\xc4\x71\x90\xdf\xf5\xf3\x34\x63\x94\x11\x36\xef\x90\x92\x56\xfb\x6f\xca\xf1\x0a\x7d\x0d\x71\x9f\xcc\xe7\x20\xfb\xc4\x38\x8c\x84\x41\x20\x58\xd0\xaf\x4c\x2f\xfa\xa2\x25\xed\x20\xc0\xd7\x7a\x4a\xff\xcf\x35\x79\xbb\xf3\x43\xe2\xa1\xa4\x08\x54\xb2\x2c\x3e\x46\x10\xaf\xaf\x53\xb1\x61\x48\x22\xec\x31\x11\xd7\x0c\x99\xc9\xe1\x3b\x70\xe5\xd8\x1b\xdd\x98\xc0\xc3\x98\xa6\x84\xba\xe4\x69\x7d\x08\xdb\x1f\x66\xd4\xa0\x82\xa0\x6a\x33\x4f\x88\xce\x70\xc7\x95\x8f\x8c\x01\xef\x13\x42\xeb\xce\xa7\x0e\x23\x61\x34\x78\x44\x56\xc8\xb7\xaa\x4e\xb3\xcc\xbd\x9f\x13\x97\x6f\xad\x42\x47\x33\x52\x99\x4f\x23\xae\x65\xfe\x54\xd4\x2b\x55\x3d\x4c\x81\x6b\x18\x09\x59\x2c\x70\x4d\xed\x36\xcf\xfb\x4f\x05\x23\x9b\x71\x89\x67\x70\x92\xc8\x25\xb8\xdb\xcf\xb6\xfb\xe5\xc2\xfd\x1c\x93\x14\xbd\xad\xf9\xe3\x62\x74\xf9\x38\xa6\xda\x1a\xa1\x8e\x40\x96\xd2\xc1\xc2\x0b\xe3\xc4\xb4\x48\x9d\x6b\xb9\x40\x69\x80\x9e\x1d\x0a\x13\x62\xba\xd9\x10\x12\xd0\xc1\x00\xfe\x6b\x54\xa6\x08\x13\xcf\x08\x46\x19\x91\x90\xe1\x76\xe9\x86\x30\x69\x0a\x27\x4d\x4c\x62\x39\x17\x11\x8b\xe1\x8e\x5b\x16\x9a\xea\x2a\x26\x09\x8a\x87\x57\xe3\x7e\x84\x38\x48\xfc\x1a\xce\x31\x0e\xb9\xcd\xac\x59\x25\xbf\x87\x02\x9b\x82\xe6\x57\xd7\x05\xce\x48\xd8\x98\x6e\x93\xf2\xc6\x3c\x6a\x13\x7d\x2d\x8f\xc7\xf6\xa8\x6f\x28\x7b\x5c\x27\xd7\xa3\xd7\x1e\x09\x25\x65\xbd\x2d\xcf\x92\x82\x3d\x37\xb1\x7a\x76\xb3\x5c\x72\xc3\xd7\x2f\x18\x68\x5b\x4c\x6d\xec\x25\x16\xdc\xac\xe6\x56\x6b\x85\x44\x1c\xa3\x5c\x22\xaf\xde\xfe\x69\xfb\x5c\xa7\x02\xb5\x50\x08\xd3\x6a\x62\x7c\xa9\x4d\x09\xf9\xf5\xf2\xdb\x78\x04\xb6\x6c\x01\xaf\x6a\xae\x2a\x89\x8a\x7b\xdd\xef\x28\x1f\x5d\xfc\xc6\xd6\x2d\xe0\x1d\xb2\xe2\x72\xee\x4a\x5d\x76\x90\xe4\xa1\xb4\xd0\x5b\x8c\x47\x2d\xf6\x74\xa5\xbe\xa5\xef\x90\xb7\xff\x6b\xf4\x61\x55\x48\xd1\x6e\x1c\xb8\x52\xcf\xa8\x75\x37\xfd\xc9\x14\x07\x74\x64\x0d\x54\x67\x5e\x72\x5d\x8f\xba\x26\x46\x26\x0e\x58\xe2\x3c\x95\x27\x5e\x99\x98\x13\x99\xda\xdc\x71\x10\x26\xc0\xb2\xa4\xe9\xf3\x22\x37\xd5\xec\xa2\xc4\x26\xc4\x9e\xad\xd5\x41\xe4\x9b\x16\x53\x3d\x87\xbc\x76\x99\x03\x77\x34\xf1\xb0\xf0\xf4\xc8\xcb\x0e\xbc\x33\x68\xa2\x6e\x06\x09\xed\x2b\xbb\xaa\xad\xce\x4b\xae\x46\x72\x16\xc3\xfb\xd7\xc0\xa4\x83\xaf\x2d\xff\x75\xc5\xca\x2e\x22\x91\xed\xef\x46\x84\x84\xe8\x46\xa8\x5b\xce\xab\xfa\xd6\xfe\x39\x92\x68\x15\x6c\x48\x6a\x12\x04\x96\x8d\xd0\x0d\x11\x1a\x8c\x89\xa9\x6e\x3f\x8b\xf2\x93\x84\x7e\xe4\x25\x01\x1a\x63\xc8\x20\x97\x03\xf9\xd6\xe6\x20\x30\x66\xb4\xea\x79\x5d\x1d\x1a\xab\x9f\xcb\x14\xca\xea\xe0\x11\xcf\x6b\xfe\xdf\x0d\xa4\xc4\x43\xf3\x68\x7c\xe1\x87\xb2\x78\x6b\x7d\x90\x88\x06\x8c\x7b\x86\x1d\xf2\x47\x61\xfd\x2d\x59\xa6\x97\x6e\x1e\xbb\x81\x91\x59\x9a\x39\x7c\x2c\xa6\x14\x03\xfe\x66\x51\xff\x3f\x8b\x18\x23\xdf\xa7\x0a\x83\xa7\xf4\x78\xaa\x83\xe8\xb7\xd1\xd1\x20\xa2\x36\x50\x7c\xd8\xcf\x91\xd9\xd3\xe5\xb6\x46\x29\xaf\xc1\x69\x41\x64\xf0\x1c\x8b\xf5\xcf\x97\x03\x22\x5e\x7e\xb6\x99\x81\x28\x88\x14\xd8\x3a\xc4\x0e\xac\xe3\x38\x50\x85\x6d\xc6\x70\x8e\x17\x98\x6d\x36\xdb\xf5\x8f\x65\xdb\xac\xdb\x5e\x43\x84\x9c\x4f\xf5\x35\xa2\x87\x33\x98\x64\x51\xa0\x42\x24\xb3\x43\x3f\xbf\x93\xad\x6b\x8e\x40\x48\xda\x08\xc0\x30\xe9\xba\x54\x44\x97\xfc\x8c\x02\x4d\x0c\xc7\xd7\xfa\x79\x33\x7b\xf9\xf3\x30\x7b\x7a\x5a\xcf\x51\x96\xcd\x8d\x08\xff\xff\xac\xfd\xd9\x72\xe3\xb8\x96\x3d\x0e\xbf\x4e\x5d\xf4\x05\x01\x0e\x00\x2f\x65\x59\x76\xba\xd3\xb6\xdc\x92\x9c\x59\xd5\x27\x3a\x14\x18\x36\x64\x1e\x53\xa4\x9a\xa4\xec\x74\x3d\xfd\x17\xdc\x00\x38\x89\x76\x56\x7f\xbf\xff\xc5\xa9\x3c\x61\x80\x14\x09\x62\xd8\xc3\xda\x6b\x49\xf0\xf0\xc8\x2d\x34\xed\x37\xc6\xa0\x5e\x7d\xf5\xb1\x5b\xac\x87\x9e\xc3\x68\xc7\x4a\x62\x25\x31\x68\x2e\xb4\xbe\x80\x2c\xb2\x20\x49\x82\x58\x0e\x6d\x93\xbd\xf0\x98\x82\xfd\x05\xd7\x29\x76\xb7\x88\xd5\xba\x11\xaf\x80\xfe\x73\xbb\xb1\xbb\x7c\xfd\x34\x20\x39\x8a\x14\x4f\x52\x8f\x09\x0b\x04\x42\x6a\x57\xcd\xcb\x20\xe2\xfc\xaf\xf0\x7f\x7c\x3b\x70\xf4\x6b\x91\x2b\xe6\x66\xb1\xec\x23\xee\x09\x33\x56\x13\xb3\xdb\x68\x2e\x4b\xe5\x5d\xcf\x94\xd8\xb0\x82\x1c\xc0\x8d\xbe\x34\x70\x92\x14\x18\x16\xfb\xf8\x84\xe5\xa9\x54\x2f\x18\xbe\x1b\xa2\x37\x12\x11\x26\x81\x2b\xde\x7c\x11\x95\x56\x53\x7f\x3a\x11\x69\x8a\x85\x8b\xaa\xd4\xb0\xfa\x85\xa8\xe3\xa2\xa7\x0b\x69\x3b\x48\x11\x61\xc4\xef\xf1\xda\x67\xd2\x7c\x93\x8c\x2d\x1d\xe8\xc6\x19\xe9\x56\x08\x7c\xee\x38\x4a\xb4\xe1\xda\x53\xf8\x95\x05\x9a\xd7\x53\x0e\x4d\xec\x05\x71\xe4\xe9\x28\xeb\xb3\x63\x85\x99\xc4\xf1\x5d\x5f\x20\x04\x61\x8f\x5b\xab\xb3\x2d\xbb\x60\x59\x02\xb1\x4c\xbc\xc3\xba\x5b\xe2\xb1\x3c\xf2\xf0\x13\x90\x16\x3a\x05\xcd\xcb\xf3\xf6\x7a\x5d\x09\xd5\xd9\x62\x09\x68\x86\x36\xe7\x55\x79\xf4\x38\x83\xc4\x24\x11\x2e\xbf\x43\x99\xeb\x0e\x23\x8e\x7f\xb7\x62\x36\xc2\xca\xeb\x8d\xc1\x79\x97\x51\xd6\xc4\x70\x8e\x38\xf4\x7f\x67\xb7\xe5\x19\x9f\x6b\x48\xbc\xd2\x76\x30\x09\x71\xea\x38\x97\x04\x62\xb3\x13\x87\x05\x5c\x84\x8e\x38\x6a\x08\x6f\x64\x01\x23\xd4\x86\x1c\x1d\xbf\xa9\xc5\x7d\xfc\x3d\x0b\x03\x6b\x7b\x87\x14\xb7\x85\xdd\x7f\x0e\xc2\x96\x8c\x24\xdc\x73\xc5\xfc\xb0\x9c\x11\x65\x35\xcc\x51\x30\xc2\xb9\xea\x79\x95\x86\x98\xc8\xc9\x73\xd2\xc0\x1e\x40\xfb\xa3\xf8\xd5\x55\x85\xf8\x02\xf2\xb6\x5d\xa4\x78\xb8\x1c\x90\x21\x6b\xed\x88\x59\xfa\x56\x4b\x09\x51\xc0\xfb\xf6\x2c\xb5\x9d\x67\x9f\xe5\xe4\x66\x0f\x57\x46\x55\x22\x89\x93\xc4\xac\x32\xd5\x74\x33\x9c\x85\x94\x70\x3e\x80\x73\x8b\xfa\x75\xe1\x10\x58\xf3\x63\x1e\xaa\x80\xd1\x0e\x51\x88\x53\x1f\x74\xcf\xa4\xcb\x02\x16\x05\x02\x67\xd8\xe9\x5c\x9d\xca\x1a\x06\x7f\xb6\x41\xa2\x5c\x64\xc7\xa7\x6a\xf0\x82\x11\x8d\x8c\xcb\x82\x5a\x9b\xaf\xac\x6a\xfb\x08\xbe\x43\xc8\x3a\x97\xc3\x16\xd7\xce\xa6\xb5\x58\xe4\xaa\xb5\x5d\x0d\xf6\x52\x9c\xee\xbb\xa2\xa5\xb6\x59\x05\x29\xe9\x4d\x4c\xdc\xff\xc9\x10\xed\xcb\x02\x16\x4b\x82\xf9\x0b\x2b\x1d\xf3\x50\x16\xa2\x52\x2f\x77\x45\x03\x55\xd1\x85\x0c\x58\xc2\x42\x2c\x91\x47\x52\xaf\xd6\xa2\x70\xde\xfd\xfc\xd7\x4f\x98\x65\xaf\x37\x59\x9e\x5f\x65\xfa\x13\xf7\x86\x25\x40\xad\xb4\x62\x56\xbf\x2a\xc4\x77\x8c\x6f\xc3\x62\x81\x1b\xce\x1e\x99\x89\x32\xe5\x74\x55\x67\xad\x41\xc6\xb8\x05\xb4\x63\x1d\x4d\x3d\xff\x83\x4c\x11\x0c\x82\x6e\xcf\x72\x8d\x6a\x86\x23\x7a\xb9\xc9\x0d\x79\x20\x98\xf0\x0a\x1f\x2f\x28\x7d\x48\xfd\x70\x70\x6e\xe1\xc9\x0f\xa2\x52\x90\x97\xdd\x9f\x4d\xe4\x0b\x70\xbf\xb5\x6b\x7a\x76\x70\x52\x62\x05\x71\x17\x5a\xdb\x5a\x6c\x27\xb6\xd6\x0b\xdc\xb1\x80\x89\x08\xd2\xc4\x7b\x43\xbf\x0b\x8b\xfb\x6b\x98\x40\x2a\x12\x5b\x6e\xbe\x1e\x56\x26\x75\xb7\x4d\x2d\x56\xf4\xa6\x2c\x75\xbb\xf0\xff\x11\xe7\x62\x7b\x9d\x91\x96\x9b\x2b\x2f\xeb\x19\x69\xf0\xc9\xc8\xc9\x38\x0a\x7b\x26\x2f\x87\xc5\x1b\x3f\xab\x14\x36\xdd\xfa\x23\xcb\xff\x1e\x6d\x63\x52\x53\x9c\x68\x50\x78\x28\x73\xdf\x62\xbf\xc7\xad\x37\xf7\xcb\x63\x6b\x61\x5f\x66\x9a\x98\xd4\xb6\xb8\xe9\xc1\xed\x3d\xdd\x3a\x55\x91\x09\x62\x57\x74\xb3\xc8\xf3\xbe\x8e\xaf\x6d\x4b\x24\x1a\xdb\xd6\x7f\xbf\x2b\x2c\x09\xf8\x52\x9c\x46\xd1\x7a\xa6\x58\x8c\x7c\x95\x75\xf6\xab\x79\xe9\x6a\xab\x59\xc0\x74\x14\x46\x83\x88\x70\x55\x1e\xcb\x65\xd6\x7c\x4c\xcb\xac\xc7\xc3\xa0\x63\x83\x51\x4e\x9b\xe7\xc7\xe5\xd9\x99\xff\x4c\x6b\x8e\x93\x6c\xb7\xb8\x5d\x2e\xb6\xdf\xfc\x9f\x81\x13\xac\x82\x12\x39\xa6\x6b\xa0\xaa\x44\x5e\xef\x31\x1e\xb6\x97\x1f\x7b\x31\x3b\xf3\x4d\x04\xca\x7e\x92\xf2\xdd\x01\xcb\x76\xf7\x4f\xdd\x7c\x36\x10\xe1\x49\xfc\xb0\xbe\xfe\xb3\xc3\x16\xb3\x80\x07\x29\x43\xdc\xb6\xb6\xe5\xe4\x17\xdf\x7d\x74\x46\x73\x42\x62\xb4\xe1\x33\x55\x16\xc3\x8f\xca\x89\x8e\xb5\x37\x58\xcb\x32\x5f\xbc\x1d\xbe\x89\x46\xbd\x0c\xa3\x3f\x9c\x86\xdc\xca\x1c\x3a\x1b\xf4\x26\xab\xea\x66\x68\xb0\x72\x9a\x04\x58\x05\xd5\x80\xb0\x1c\xa7\x34\x20\xbc\x6b\x94\x11\xb5\x23\x59\xd5\x80\x36\x91\x8b\x00\xf9\x76\x4d\x2d\x56\x0f\x3e\x97\x17\x74\x5d\xc3\xd8\x46\x80\xdb\x05\x32\x00\x0a\xf8\x8b\x2c\xd3\x18\xfe\xb7\xbb\xc0\xf1\x3c\xb8\x58\x9b\xc3\x27\x0e\x71\x91\xae\x67\x14\x19\xbb\xa7\x40\xa1\xaf\xc4\x8c\x6c\xba\xef\xc7\x23\xa4\x83\x93\x79\xf6\x0a\xfa\xb9\x68\xb2\x09\xd4\x8a\xc7\x11\xc3\x14\x72\xbb\x67\xdb\x4a\xd0\x7b\xf1\xfe\xd1\xbf\x6f\xcc\x13\x4c\x0e\xfe\x75\xfd\xcd\x46\x85\x1e\xbe\x82\xad\xf2\x38\xd5\x82\xfb\xe8\xed\x06\x9a\x73\xf5\x29\xfb\xab\xbf\xc2\xa9\xf1\x4b\x5a\x8f\xf3\x6b\x3c\xa1\x31\x2a\xee\xf6\x82\x41\xbf\x2f\xf8\x6f\x2f\x8b\x6d\x06\xff\x1a\x8e\xa5\xaa\x84\xfa\xf8\x51\x76\xb6\x17\x67\x89\xc2\x6f\xe2\xd1\x58\xf3\x07\x0f\x67\x92\xe2\x51\xbd\x2c\x0b\xe8\x27\x0e\x03\x4d\xd5\x80\x84\x6c\x0b\x30\xd9\x32\x38\x67\x36\x2c\x89\x1b\x72\x6b\xab\xd8\x47\xfe\x99\x35\x2f\xa3\x39\xc8\x85\xc4\xcd\xbb\xa3\x17\xed\x51\xe9\xe3\x27\x49\x21\x32\x4e\xcf\xe6\xea\xfc\xe1\x8d\xec\x3e\xe4\xc0\x45\x94\x7a\xc6\x8f\xf5\xc9\x33\x55\xc0\xc0\xdf\xe8\xec\x49\xef\x7a\x70\x49\x83\x14\xab\x84\xbe\x2f\xbf\x20\x82\x68\x3b\x86\xd6\xbc\xb0\xf4\x0c\x4e\xcc\xf6\x8f\x71\x97\x54\x63\x89\x4b\xbb\x52\x76\x2f\x15\xd4\x2f\x5e\x05\xa5\x6d\x34\x0c\xf1\xab\x36\x9a\x64\xcb\x92\x7f\x17\x88\x9d\x9f\x57\x8a\xa6\x68\x03\xff\x55\x9e\x6f\xb3\xb7\xcb\x0d\x64\x3e\x0d\x36\xfe\x36\xca\x48\xea\x53\x4d\x7e\xe9\xd7\x97\x5a\xc4\x2c\xe0\x3a\x50\xb8\x5d\x9d\x5d\x69\xf4\x40\x73\xbc\x6d\x4d\x8d\x95\x93\xa8\xca\xf3\x69\xff\x0a\x1f\x7b\xcf\xda\xd1\xbd\xb8\x16\x29\x26\xa6\x10\x7a\x3e\xb5\x5a\xc6\x63\xac\xb5\x41\x08\x97\x1d\xe3\xde\xbe\xe4\x10\x84\x18\x55\xd7\x03\x0d\x7d\x57\x0c\xdf\x4d\x23\x00\x5b\x81\xec\xa3\x85\x1d\x2c\xb9\x9d\x70\xdf\xca\xf7\x07\x51\x7c\x0c\x3c\x8b\xf9\x05\x63\x68\xea\x89\x96\xd1\xbb\xe8\xd4\x48\x7d\x3b\x4f\x23\x87\xd0\x58\xfd\xb9\x5a\x3e\xb7\x4e\xfb\xfe\x76\xb1\xdd\xaf\x7f\xac\x36\xdf\x56\x0b\x1f\x21\x4e\x83\x58\x2b\x18\x06\xee\x6d\x4a\xca\xb5\x12\x08\xbc\x61\xf5\x08\xef\x23\x5f\x7d\xfc\x40\x29\x4d\x42\xc4\x5a\xac\x6e\x6f\xb7\xfb\xdd\x7a\xff\x6d\xb1\x5b\x7e\xdb\x93\xab\xc5\xe3\xf7\x95\x77\x92\xd3\x30\xe1\x7c\xc0\x75\xf1\x53\x64\xcd\xe0\x18\x4d\xc3\x44\xa0\x37\x67\xf3\x3c\x6b\xd3\xfd\x5d\x48\x62\x2d\x59\x44\x22\x6f\x21\xcf\xe9\x7d\xa9\x46\x82\x9f\x2c\x48\x23\x6e\xe7\x9b\xc5\x15\x3c\x89\xfc\x11\x9a\x5e\x07\x66\xd6\x5c\x49\x23\x4d\x89\xe3\xca\xb5\xa5\x37\xeb\x7e\xd2\xa4\x09\xb1\x10\xb6\x03\x58\x4f\xdb\xc9\x73\xac\xbb\xe1\x49\x64\xa2\x6c\x56\xc1\xf2\xc7\xcc\x95\x28\xb2\x20\x65\x81\x15\x81\x42\x5f\xe0\x1a\xf0\x2d\xc6\xc4\x80\x2c\x48\x79\x08\x69\x17\x03\xbf\x2a\x45\x75\xa1\x89\x31\x79\x74\x1e\x01\xee\x08\x32\x3b\x5c\xe5\x59\xa1\xbb\x1b\xc5\x20\x13\x5f\x85\xe0\x36\xa8\x0b\x2a\xb0\xc9\xad\x84\x1e\xb1\xca\x0e\xfc\xc2\x94\x83\xad\xaa\x3b\x40\x73\x93\x15\x3e\xaf\x31\xd4\x42\x77\x1d\xd3\x48\x86\x9e\x54\xc0\x16\xee\x66\x32\x87\x6b\x68\x44\x96\x4f\xac\xfb\x54\x84\x09\xb8\xe9\xfb\x80\x59\xa7\x07\x98\x9e\x97\xa9\x88\xc3\x38\xed\x16\xb4\xe3\x5b\x99\xea\x77\xb1\x20\x95\xca\xc6\x53\x16\x45\x93\x35\x9d\xc2\xf1\xef\x0d\xdb\x54\x02\x0d\x92\x41\xe2\xd1\x55\x06\xd6\xad\x99\x32\xe3\xdb\x8f\x02\x7d\xa9\x52\x04\xe7\xea\x23\xbc\x2f\xcf\xa7\x4f\x16\x85\x32\x1c\x11\xef\xb5\x70\x82\x24\xf5\x8f\x76\xde\xfb\xa1\xd5\x5c\x61\x66\xe4\x7a\xfb\x74\xbf\xdb\x2f\xfc\x9f\x21\x01\x1d\xf5\xa5\xf5\x77\x1a\xf9\x17\xbb\x56\x21\x10\x39\x71\xcc\x0a\xf7\xc8\xa0\x87\x7e\x7a\x0a\x4a\x86\xae\x22\x46\x23\x05\x73\xfd\x32\xdd\x2c\x53\x30\xd4\x25\x26\xbb\x4a\xbe\x2f\xfd\x8b\xd4\xc4\x4a\x39\x98\xcb\x75\x86\xb8\xc2\xc9\x57\x30\x89\xa1\x83\x9a\x90\x3d\x49\x47\x67\x4e\x6a\x78\x84\xfa\xa1\x68\xf7\x6d\x9b\x4a\x34\x70\xf0\x51\x1a\x11\x04\x04\x07\xe2\x54\x95\xff\x06\xd5\x38\x65\x92\x1b\x91\xe5\x5d\x0f\x22\x43\x57\xff\xd1\x85\xa6\x2e\x13\xbf\x22\xa0\x51\x62\x8b\x2f\x9e\xca\x62\x52\xe7\x20\x82\xc4\x06\xb5\xdb\x3d\x53\x14\xaf\x2e\xc1\x60\x0b\xdc\xff\x18\x06\x61\x45\x6b\x91\x92\x21\x36\x7e\x3c\x7c\x22\x50\x91\xa7\x10\xb9\xca\x0a\x4f\x28\x34\x57\x2b\x23\x02\x43\xf0\x38\x2e\xce\xc7\xe5\x8b\x38\x42\xf3\xb7\x63\xf7\xf5\x6f\x46\x22\xcb\x06\x8b\xc6\xc2\xf1\x74\x11\xea\xf8\x2a\x08\x3e\x64\xc3\x3d\x0f\xac\x52\x41\x25\x8f\xec\x38\x1c\x0e\x39\x38\xf4\x22\x32\x34\xf8\x9f\x8d\x8c\xc2\x3d\xd5\xf6\x68\x3f\xd9\x8f\x0c\xde\x7f\x66\x85\x2e\xdf\x27\xe3\x96\xa8\x48\x0e\x77\xb9\x91\xfc\x02\x0b\x04\x93\x21\x20\xeb\x32\x96\xda\xac\x6a\x4b\x1d\xfd\xf5\x84\x12\x0c\xa8\x57\x3e\xb8\x3a\x17\xc5\xe4\x03\xf0\x24\x48\x3b\xb9\xc3\xba\x3c\xc2\xba\x79\x81\xaa\xa3\x8f\x6c\x7b\xa4\x29\x1f\x94\x66\xf9\xc3\xf6\x6b\xf3\x5e\xa4\x31\x51\x56\x3d\x32\x3b\x2d\x45\xed\xb3\x3c\x42\xa8\x20\xee\xc2\x3c\x98\xca\x02\xed\x30\xf6\xf5\xd5\x04\x9e\x22\x24\xb5\x1b\xd3\xc3\xe2\xcf\x7d\xcf\x9d\xef\x55\xdc\xb0\x03\x47\xa4\xba\x95\x4c\x5f\xfd\x2f\x25\xf6\xab\x52\xf2\x1f\xa3\x7f\xbb\xd7\x95\x5c\x0a\x97\x45\xd1\x99\x33\xe9\xfd\xcd\xda\xc1\x4f\x7d\x9a\x22\xa4\x93\x6f\xa3\x12\xab\x28\x76\x70\x75\x13\x39\xfa\x2b\xf7\xa2\x38\x9c\xc5\x01\x3a\x45\x9d\xb6\x67\xca\x30\x03\x6e\x61\x89\xd1\xde\x3e\xdc\xad\xa8\x9f\x5b\x03\x91\x05\x01\x9e\x39\x75\xd7\x5d\x24\x68\x06\xb6\xe7\xde\xf3\x69\xd5\x1d\x2f\x42\x49\x40\x27\xb8\x5d\xc1\x7b\x1b\x0b\x9c\x3e\x13\x08\x9c\x0f\xe7\xd3\x04\x88\x26\x74\xa0\x30\xeb\xa5\x21\xef\xb4\xd2\x06\xad\x3c\x46\xf7\x3f\x2b\x4c\x27\xf1\x41\x7c\xfe\x56\x00\xb7\x1c\x38\x96\x3c\xf5\x11\x7e\x21\x99\x78\xd7\x9a\x52\x4d\x51\x95\x7f\xc2\xb0\x85\x6d\x29\xe6\x37\x4f\x67\xf9\x1d\x3e\x7a\xed\x8e\x01\x3e\x40\x80\x32\x09\x19\x33\x65\xcf\x91\xc2\xb1\x40\x06\x3a\x42\xd4\xe7\x6d\x07\x88\xbc\xab\x1f\xcb\xe6\x06\x79\x76\x10\xda\xd1\x3a\x50\xc3\x1d\x59\x12\x9d\xea\xa8\x87\xe9\x2d\x45\x51\x16\x99\x12\xf9\x4d\x59\x1d\x45\x33\x7c\x0e\x49\x63\x2b\xb3\x7c\x3a\xd7\x2f\xcb\x3c\x1b\x12\x80\x8f\xa6\x8c\xa4\x22\x44\xc8\x81\x2d\x33\x2b\x2f\xb0\xce\x92\x82\x41\x6b\x68\x55\x34\x55\x79\xfa\xd8\x8d\x38\xcc\xdb\x76\x63\x6b\x51\xa4\xcd\xdb\xf4\x5f\x58\x86\x32\xe8\x69\xef\xab\x0c\x6a\x47\x37\xea\x9b\x15\xc3\xea\x16\xd4\xf2\x83\xbc\xb4\x34\xff\x23\x25\xc8\x2f\xeb\xc0\x64\xa8\x13\xe4\x77\xa8\xb3\x43\xd1\xe1\xcb\xfb\x07\x0f\xb5\x4c\x8c\xff\x14\x59\xb1\xf8\xcc\x51\x96\x51\xac\x30\x6a\x80\xfc\xb3\x37\x55\x89\xd5\x2c\xe3\x2e\x31\x8b\x30\x2b\x63\x75\xa0\x1a\xba\x3f\x95\xdd\x7b\xc4\x9c\x88\x21\xa6\x65\xb4\x6f\xcb\x24\x60\x49\xe0\xf9\xfa\xdb\x43\x78\x48\x17\xc7\x02\xc9\xe2\x34\x19\xab\x6e\xd5\x5d\x93\x49\x4d\xd8\x23\xc0\xb2\xe2\xe0\x08\x26\x66\x4e\x2c\xc9\x03\x8d\x87\xd2\xcf\xe5\xc3\xca\xdf\x80\xd3\x20\x71\x8b\x1a\x43\x5c\x1b\x30\x77\x85\x2a\x8f\x97\x03\x3c\x7e\x5b\xae\x6d\xe9\x61\x2d\xde\xe0\xa1\x3e\x5c\x39\x5b\x7e\xc6\x4b\x94\x82\x10\xb4\xf8\x4e\xa3\x78\xb0\x14\x61\x18\xa6\x3d\x65\xc6\x40\x0e\x66\x3c\xfb\x84\x0c\x51\x2e\xb7\xfe\xa8\x1b\xe4\xbc\xea\x89\x42\x1f\x3a\xd3\x51\x0a\x6d\x45\x6b\x2d\xf7\x81\x15\x00\xec\x0b\x7a\x27\xcb\x54\xca\x88\x61\xc1\xe1\x51\xbc\x02\x22\xe7\x7e\xeb\x75\xce\xee\xf1\x52\xc5\x14\xd3\x5c\xa7\xaa\x6c\xa0\xb7\xc5\x67\xc6\x5e\x6b\x82\x6c\xd0\xc8\x0d\x0f\x7b\x64\xd7\xda\x6b\x50\xd9\x51\xe4\xf5\xde\x08\xd5\x27\xc0\x24\x44\xc6\x78\x48\x19\xd2\x0f\x3d\x17\xa2\xcb\xb3\x6c\xa1\x79\x12\xea\x55\x74\x56\x9a\x84\x38\x41\x6d\x93\x5d\xd5\x9e\xe9\xfe\x8f\x09\xc1\x8c\xf3\xe2\x74\xca\x1d\x3c\xf9\xae\x70\xc6\xce\xba\x1a\x42\x2f\xfc\x05\x3c\xc5\x94\x0b\x22\x1b\xf1\xf1\xa1\xde\x95\x17\xb5\xdd\xbd\x8d\xda\x5d\x27\xf0\x70\x2c\xdf\x0b\xc0\x58\xef\x27\x2b\xc8\x30\x89\x91\xe6\xbd\x63\xda\xd9\x1b\xf8\xcd\x1c\x53\x81\x4c\xba\xd0\xc5\xfb\x34\x94\xa2\x02\x15\x13\xdc\xe0\xb3\x0a\x14\xca\x62\x0c\x21\x43\x2a\x30\x09\x77\x05\x90\x83\x31\xd8\x36\xfd\x71\xa7\x48\x10\x23\xef\x70\x23\x5e\x61\x54\xc5\xa7\x08\x27\xa9\x27\xe5\x77\xb4\xbb\xe3\xd5\xae\x08\x8f\xd1\x8c\xbc\xb9\x5f\x2f\xbf\xfb\xcb\x42\x22\x4c\x9f\xea\x3e\x9e\xaa\x6c\x4c\xf9\xd1\x76\x09\xad\xe7\xe2\xc5\x3c\x6b\x57\x48\xa9\xa7\xfd\xe2\x34\x26\x9e\x39\xa5\x12\xb9\x4b\xa6\xb4\x0e\x7e\x8f\xb0\x54\x51\xc0\xd1\xbf\xdf\xb7\xeb\xbf\xfd\xd1\x2f\xdc\x66\x15\x45\x1c\x01\x32\x68\x3a\x3d\x66\x9d\x5a\x98\x6f\x4e\x23\x7c\xf8\xc5\x6e\xd9\xdd\x5e\x01\x75\xb4\xbe\x0e\xc6\xfa\xc7\x2c\x3a\xdb\x77\x37\x96\xea\xed\xe1\xee\x71\xbf\xfd\xb6\xd8\xac\xf6\xeb\x9b\xfd\xd3\xfa\x67\xe7\x94\xab\x38\x06\xaf\x7f\xec\xb6\xab\x27\x91\x55\xcb\x73\x53\x1a\xf3\x29\x13\xb2\xbf\xd6\x30\x9c\x68\xbb\xd5\xe2\x61\xbf\x5c\x3c\xee\x97\xf7\x8b\xbb\x87\xfd\xe2\x66\x37\xb8\xbf\x51\x96\x87\x36\x07\x51\x59\x2c\xa5\xdf\x2a\x55\x92\x06\x56\x06\xed\x9c\x37\xd9\xfa\x1d\x23\x65\x9f\xcd\x6a\x95\x08\x69\x62\xaf\xce\xba\xc8\xf3\x4e\x2e\xb4\x6d\x93\x14\x01\x0d\x05\xbc\x0f\x0c\xfa\x8b\xcd\x41\x31\xa0\x61\xcf\x27\x8f\x62\xde\xe7\xb1\xc5\xae\x78\x90\xb8\xb2\x7a\xfb\xe1\x1c\x4a\x63\x92\x9a\x1d\x8f\x03\xa7\x31\xe6\x48\x7a\x72\xe3\xed\x67\x88\x51\xc5\xc3\x10\x89\x12\xc4\x80\xad\xe5\xb3\xae\x91\x45\xc0\xdf\x66\xa6\xb9\x75\x0a\x1d\xff\x5c\x1d\x74\xfc\x56\x49\xec\xd3\xbb\x8f\xf0\x3e\xd2\x0d\x6f\x5b\x0d\x17\x7d\xd6\x06\xc3\xef\x36\xb9\xe2\xda\x53\xd0\x12\x85\xa0\x76\xcb\x0d\xe4\xe2\x63\x37\x74\x91\x5d\x1f\x11\x29\x8f\x98\xb9\xcf\x8a\xd7\x8b\xec\xf3\x64\xc8\x44\x12\x45\x96\x77\xb9\x6c\x6d\xfb\x07\x68\x5e\xca\x4f\x8b\x40\xdc\x35\x12\x34\x6e\x0e\x76\xc3\x5e\x8a\x3c\x97\x42\xbd\xde\x8a\x7a\x98\x4d\x50\x2a\x06\xc4\xcd\xbd\x1e\x1a\x1b\x29\x5c\xb6\xce\x66\x5f\xb8\xa3\x94\x4e\x31\x8b\xf2\x22\xea\x17\x18\x9f\xeb\x4a\xf3\x14\x4b\x36\x96\x9b\xfb\x13\x54\x0f\x99\xaa\x4a\xe4\x67\xe8\xda\x53\x89\xc0\xbd\xdb\xa7\xcd\xf5\xf6\xbf\x86\x16\x95\xd2\x22\x0e\xfb\x9a\x06\x2b\x61\x37\xfc\x36\x63\x5f\xad\x7f\x2b\xad\x8d\x27\x7a\x58\x60\x16\x61\x06\x02\x35\x3f\x1e\x10\xb0\x24\x1e\xe7\x9d\xfc\x9e\xf0\xf5\x40\x42\x1a\x68\x87\x56\x31\x59\x75\xf4\x44\xe2\xbe\xd5\x31\x44\x1d\xa0\xf9\x91\xd5\xc2\x0e\xee\xd7\x4f\x62\x58\x8c\x22\x67\x59\x8d\xe0\x01\x97\xbe\xbb\x29\xab\xbb\x42\x67\x6f\x99\x3e\xf7\xfb\xa3\x11\x82\x5b\x5e\xea\x3c\x07\xed\x9c\x9d\xf9\x39\x62\x84\xc4\x32\x56\xf5\x22\x2a\x84\x9f\x2f\x0a\x8d\x81\xbf\xe6\xe5\x4b\x08\xa8\x0e\x08\x4f\x88\x97\x17\xde\x42\x33\xcc\xc6\xf9\x2e\x34\x49\x9d\xc5\x8f\x4c\x56\xd3\x5a\x32\xdf\x8d\x59\x41\x39\x61\x8b\xda\x07\x11\x3b\x1d\xf0\x08\xa3\x3b\xdb\xac\x38\x9c\x73\x51\x5d\xef\x7e\x60\xc0\xcd\x0c\x84\x55\xdb\x6e\x2a\xc6\x1c\xfb\x6a\xfd\xfc\xb8\x5c\xf5\x7f\x55\xbe\x10\x69\x95\xa3\x28\x4e\xeb\x7f\x8f\x0f\x1c\x4d\xa8\x0a\x89\xdf\xf1\x9e\x00\xaa\x91\x25\xae\x49\xc8\x07\xb9\xd6\x95\xc6\x42\xc6\xcb\x48\x9a\x26\x4c\x60\x46\x29\xab\xaf\x2b\xf1\x7e\x11\x0a\x9d\x8c\x1d\x49\x05\x52\x49\x64\x0d\x1c\x97\x68\x07\xda\xca\x89\xfa\xe7\x0b\x14\xe3\xd4\xbf\xbf\x42\x69\x04\x7c\x54\xa2\xd0\xe5\x71\xe8\xfa\x68\x02\x96\xbd\xf0\x98\x15\xad\x55\xf5\x13\xb2\x41\xea\x51\x53\x6a\x88\x9b\xf9\xc3\x12\x5f\xdf\x1a\x8b\xd4\x74\x2e\xa8\x85\xd1\x6e\x9b\x6a\x1a\x8d\xd1\x94\x11\xd1\x09\x83\x77\x7a\xf8\xbe\x31\x0d\x90\xab\xc4\xa2\x91\xa0\x33\xa3\x7c\x7b\xc8\x38\x09\x9c\xd5\x59\xd5\xa3\x67\x6f\x47\xb7\x67\xd2\x7d\x10\xc5\xc7\x53\x55\xfe\xca\x06\x54\xa5\xb3\xb3\x56\x47\x9a\xd8\x9a\xe1\xcc\x34\xad\x5f\x36\x5d\x39\xc3\x7d\x59\x47\x9a\xe1\x00\x9d\xda\xc5\x7b\x0b\x45\xe0\x7f\x3d\x0e\x25\x7a\x61\xa6\x0f\xed\xea\x38\xa2\x28\x3c\xf8\x43\x14\x8d\x38\xc0\x70\xf7\xd1\xb1\x00\xeb\xcf\x9d\xab\x49\x39\x83\x4e\x02\xa1\x4d\x07\x0e\xb8\xca\xf4\xd0\x62\xf0\x31\x23\x9d\x24\x09\x06\x16\x75\x35\x52\xb8\x68\x5b\x52\xab\x8b\x63\x15\x9e\x57\x9a\xc6\x31\x49\x5b\x83\xd7\xab\xce\xb8\x7e\x2c\x80\x54\x7a\xcf\x0d\x49\x78\x7b\x9c\x8c\x66\x54\x27\x61\xc7\x5e\xf8\x94\xfd\x82\xbc\x6f\x4b\x2c\x61\xba\x14\x75\xa6\xae\xc5\xc7\x18\xa5\xa2\x99\x08\xb0\x46\xbd\x33\xb8\xbf\x7f\xa8\x29\x1b\x8e\xe6\x24\x41\xe5\x99\xfb\xf2\xb0\x1d\x1d\xe8\x9a\xa7\x24\x16\x17\x56\xe7\x64\x8c\xd2\x08\x74\xe0\x49\x07\x73\x3d\x06\x6d\x4f\x56\x48\x6a\x98\xad\xec\x6f\xf7\x84\xbb\x06\x8e\x1b\x61\x0c\x16\x33\xfd\xfd\xd9\x86\x24\x93\xd4\x6a\x03\x89\x5f\x7d\xad\xa7\x96\x92\xf1\x76\x4c\x16\x0f\x57\x8b\xed\x76\x71\xbd\xde\xec\x77\x3f\x3d\x4e\x4a\xab\xc8\x8a\x3a\x7a\x18\xe4\xf7\xcd\xdd\x64\xe1\xb5\x76\x47\x97\xb9\xbc\xee\x52\xae\x3a\xeb\x6e\xc1\x13\x4c\xfd\xaf\x16\x9b\xfb\xbf\xf6\x37\xeb\xe7\xc7\xeb\xd5\x66\x3b\x88\x55\x69\x4d\xad\x46\xa3\xe5\xe4\x5b\x38\xb2\x97\x71\x0c\xdd\x77\x05\x19\x58\xbd\xc8\x87\x51\x41\x9c\x06\x02\xa1\x1b\xbb\x76\x34\xf0\x7f\xd3\x3d\x02\xb8\xc2\x78\xb9\x05\xb5\x8c\xe6\xdf\xe0\x70\xf4\x0e\xa6\x06\x61\xb3\x90\x4d\x76\x04\xaf\x83\xc3\x02\x6d\x22\x6b\xcd\x5a\xf3\xed\xea\x5c\x15\x57\x25\x02\x39\x66\x4f\x25\x08\x84\x74\x40\xb0\xe6\x5c\x39\xee\x8f\x23\x52\x35\xab\x73\x55\x0f\x72\x92\xbe\xbf\xd4\x09\xf1\x9e\xfb\xb9\x6e\x40\xb7\x2e\x0c\x60\xd9\xe5\x78\xd3\x01\xc2\x13\x64\x22\xb1\x9e\x32\xba\xe7\xa7\x1c\x9c\x7c\xbe\x9f\x55\x10\x52\x81\x33\xd7\x74\x80\x06\xf4\x87\xc6\xf3\x1b\x42\xa5\x70\x7d\x65\x45\xd6\x3c\x64\xa2\x6c\xff\x37\x0b\x62\x82\x28\x52\x18\xdf\x1e\xb0\x74\xfb\x16\xc9\x11\xd4\xd7\x7a\x1d\x57\xe7\x8f\x0b\x78\x9e\x1f\x59\x88\xa5\x41\xac\x0b\xea\xa0\xfd\x28\xa7\xe9\x14\x48\x24\xc5\x78\x63\xbb\x21\x3e\x89\x8f\xd6\x22\x77\xd6\xe2\x4c\x3d\x2d\x24\x3a\xc4\x1d\x09\xde\xca\xfc\x0d\x30\x24\x54\x2e\xde\x44\x23\x2e\x2b\x22\xbf\xb4\x48\x80\x11\x40\xd8\x1f\x62\xa6\xf1\x1c\xd9\x02\xe8\xf6\x3d\x6f\x45\x7d\xa1\xdb\xd8\x5e\xc0\x42\x2f\xa8\xb8\x3d\x81\xca\x4c\xa6\x50\x0f\xb4\xfa\x07\x22\xb6\xee\x16\x9c\x09\xc4\x37\x1f\x4b\x37\x13\xb8\x6f\x50\x44\x7a\x80\xc5\xde\x7e\xd9\x5f\x8f\xf0\xee\x13\x72\x8b\x42\x5b\x40\xbb\x1f\x7c\xae\x6d\x70\x00\x57\xc5\xb7\x19\x0e\x6c\xd7\x2f\x15\x09\xa1\xc8\x08\x5d\x65\x83\x1c\x1b\xa4\xc6\x24\x41\x37\x99\xae\xce\x1f\x63\xcd\xd1\xf1\x4d\x84\x20\x78\x62\xf4\x24\xc8\xdd\xd7\x10\x90\xa0\x45\xd2\x54\xe2\x0d\x6c\xdd\xdf\x4a\x54\xc5\xe0\x49\x65\x62\x51\x6a\x35\x34\xdb\x63\xdd\x07\x63\xb2\xb2\xe8\x9c\xde\x3e\x42\x02\xd2\x70\x7f\x40\x3f\x17\x8d\x5d\x12\x28\x17\x0a\x39\x1c\x46\xf3\x61\x0a\xcd\x74\x2a\x02\x2c\x00\x1d\x08\x0f\x00\x1a\xd8\x6d\xbe\x91\x24\x48\xc0\x56\x56\x07\x51\x64\x7f\x43\xe5\xe3\xbd\x00\x71\x1c\xab\x6e\xed\x7a\xbf\x71\x3c\x14\x90\xda\x62\x46\x1b\x82\xb4\x99\xc4\x4d\xaf\xb1\xcb\x02\x30\x24\xc2\x60\x65\x6b\x8d\x4e\xae\x36\xad\x43\x4f\x2c\xae\xa4\x0b\xdc\x98\x40\x1b\x64\x9b\xf0\xac\xf1\xd6\xe2\xfa\x6f\x38\x9d\x20\xef\xe3\x28\x83\xac\xe0\xf8\x9e\x84\x53\x24\x3b\xc6\x99\xf0\xb4\xea\xdd\x60\x43\xb8\xc4\xad\xf8\xb9\x40\xd8\xc5\x60\xff\x34\x24\x4d\x31\x78\x9d\x15\x7a\x7c\x2a\x99\x90\x69\xac\x2c\x6a\x4d\xca\xa7\xb2\xf4\xab\xdd\x44\x8a\x60\x08\xd5\x3a\x42\xff\xd5\x2e\x65\x14\xd6\x73\xcd\xb1\x64\xa4\xb7\x5c\x06\x6c\x7e\xb3\x06\x8b\x89\x75\x88\x83\xf4\xd3\x6e\x2a\xbb\xd2\x65\x42\x27\xe3\x95\x44\x96\x3d\xe3\xe7\xb7\xf5\xdd\x76\xbc\x31\x99\x24\xb6\x98\xde\xfd\xd1\xd2\x49\x8f\xbd\xda\x49\x5f\xa1\x48\xdc\x61\xc9\xed\xb6\xe2\xc4\x6e\x3e\x71\x16\x4d\xa2\x52\x3c\xa5\x1c\x47\xc1\xcf\xd5\xdd\xf2\x5c\x37\xe5\x71\x5e\x13\x86\x05\x86\x05\xb1\xc4\xca\x6e\xf4\x1c\xc6\x86\x9d\x61\x11\xa5\x1d\xe0\x69\xb1\xbb\xc0\xd3\x5c\xe6\x8a\x0d\x4b\x25\x6f\xe7\xe9\x76\xe5\x8f\x67\xc3\x03\x4e\x2d\x8f\xae\x27\x84\x1e\x3f\x02\x8f\x99\x2f\xfe\x7c\x7a\x11\x35\xac\x6c\xc1\x99\x25\x06\xfc\x9a\x34\x6f\x70\x13\x6d\x83\x33\x5d\x68\x6a\x40\xb8\xe3\xba\xa4\x2a\xa0\xc4\x93\x39\x3c\x89\x4f\x22\x1f\x46\x24\x89\xb6\x42\x57\x9d\x19\xb5\x14\x75\x56\x5c\xf2\x74\xd9\xd7\x9f\xac\x67\x77\x17\x69\xac\xd8\x5c\x79\x82\xe2\x56\x1c\xb1\x9c\xef\xb1\x9c\xb0\x00\xb3\xc0\xe8\x90\x29\xe3\x2d\x93\xfe\xe0\xed\x26\xb6\x86\x10\x61\x59\xc7\xb3\x85\x37\xa4\xf6\x71\x53\xff\xb4\x40\x52\x3c\x0e\x10\x91\xd9\x9c\x25\x46\x8f\xfb\x7d\xcc\x98\x24\xa4\x43\xdb\x68\x77\x2e\x7a\x36\x10\xdf\x07\x62\x74\x8f\x8e\xa5\x87\x70\x92\x20\x60\xb6\x24\xc6\x55\xf6\x0e\xfc\x39\x12\x04\x22\x02\x97\x52\x5c\x38\xe2\xdb\x0b\xa1\xd0\xb9\xb1\x25\x01\x4d\x04\x66\xc7\x57\x7f\x3e\xad\x96\xbb\xd5\xb5\x2d\xc3\xf4\xf7\xa5\xd2\xaa\x47\xbc\xc1\x54\x91\xba\x6d\x54\x04\x09\x2f\xb7\x8d\x28\xb4\xa8\xf4\xfe\xd2\xf2\x22\x01\x35\x2c\xb2\x72\x63\x4a\xe4\xca\xee\x2d\x7d\xc4\x83\x04\x21\x93\x88\x62\x31\xb9\x38\x3c\x6f\xa7\x09\x72\xdf\x29\xa5\x98\x10\xba\x7a\x5e\x0e\x76\x1f\x12\x44\x82\x44\x2e\xf7\xf9\xe8\xd8\x8c\x2d\x81\x46\x67\xc7\x90\x20\x4e\x04\x06\x5e\xac\x08\x24\x06\x44\x30\xea\xe2\xa8\x22\xc6\x3f\x94\x90\x30\xe5\x3e\x7d\x91\x43\x77\x93\x24\x24\x54\x8d\xa1\x46\xba\xea\x1a\xa5\x8e\x9c\x78\x66\xaf\x55\xfb\x31\x22\x47\xf5\x3d\x95\x46\x7c\x0b\xf2\xfc\x78\x0d\xc2\x0b\x28\xde\xc5\xba\x1a\x3f\x23\xa3\x1c\x85\x07\xec\x0e\xb9\x6f\x5a\x33\x67\xa4\xc5\xd8\xf6\xd1\x4c\xb8\x47\xea\x6c\x76\x12\xa4\x01\x47\x60\x3f\x0a\x84\xec\x5e\x2a\x80\x01\x48\x90\x04\x29\x17\xc8\xe7\x88\x76\xee\xb6\xf1\x10\xe6\xb6\xc1\x0a\x8b\x58\x94\xe1\x60\xd3\x19\xbf\x9d\xd0\x16\xe1\xdb\xfa\x21\xa2\x51\x2f\x59\x71\x58\x1d\x0e\x43\xce\x15\xd7\x51\x52\xed\x59\xd2\xdd\xa1\xb1\x69\x77\xd2\x69\x2f\x13\x52\x4b\xc9\xde\x9a\x2e\xd0\x61\xcd\x26\xdd\x54\x62\x59\x6b\x5d\xe8\x4a\x9c\x6e\x72\x37\xee\xdd\x68\x28\x29\x6c\x76\xb6\x76\xd9\xac\xf5\x1b\x54\x55\xa6\x61\xce\x52\x25\x81\x4e\x04\x9a\xd2\x67\x1b\x32\xe8\x64\x32\xfc\x70\x68\x63\x51\x70\x59\x8d\x76\xac\x3e\x4e\xae\x87\x58\x53\xd3\x69\x8c\x4d\x77\x3d\x12\x80\x96\xd6\x6f\x77\xe7\x74\x31\x0c\x8d\x90\x00\x20\xb1\x80\xd2\xf5\xed\x6a\x34\xdb\x4d\x98\xda\xe2\x7f\xad\xf7\x60\x23\xc5\x83\x8d\x9e\x04\x06\x12\xc3\x7d\x5e\xcf\xee\x2d\x23\x93\x85\x04\xc6\x28\xd6\xf3\x1d\xef\xaa\x4c\xc2\x80\x08\x97\x90\x80\x70\x0c\x2c\x5d\xbf\x88\xea\xd8\x5b\x79\x84\x04\xdc\xd1\x8c\x56\xbf\x07\x54\x8e\x5e\x96\x04\x0a\x2c\x85\xc5\xc7\x06\xcc\xd0\xc0\x21\xed\x9b\x22\xa9\x9f\x9d\xc8\x3e\xae\x7b\x57\xd4\xcd\x28\x3c\x36\x1a\x5c\x42\x84\xc4\xe2\xef\x2d\x20\x17\x39\x12\x54\xcc\xff\x32\x01\x6d\x61\xa7\xe5\xe9\x49\x7c\x0c\xdf\x26\x8c\x0d\x77\x52\xf7\xed\x34\x3f\x41\xf7\x48\xa1\xb6\xc9\xc1\x53\xa6\x5e\x6f\xca\x41\x50\xf7\xb7\xaa\x1a\xed\xc5\x10\x83\xd3\x48\xd5\xdf\x2f\xeb\x85\x3f\xb9\x2a\x0a\x52\x9c\x4d\x0f\x77\x8f\xfb\xd5\xee\xdb\xfe\xe6\xf9\xf1\xda\x3f\x4e\x14\x47\xdc\xc2\xbc\xe4\x39\xcb\xb5\x8b\x75\xf6\xd0\x08\x42\x22\xa6\x91\x46\x7d\xbb\xdb\x2c\x91\x02\xb8\x6b\x10\x29\x3a\xad\x1e\xaa\xb9\x71\x89\x9f\xf1\x5c\x25\x91\x22\xa1\x47\x76\xef\x2e\x64\x00\x18\x21\x71\xa2\x50\x8f\x79\xf7\x82\xfa\x41\xfe\xf6\xb1\xe2\xc8\xa8\xfd\x4b\x8b\xa9\x02\xde\xd0\xfa\x68\x3b\xa6\x58\xb6\x74\x85\xa5\xf6\xe3\x7b\x27\x24\xf5\xb2\x9f\x4f\x67\xb9\x9a\xf0\x91\x10\xc2\x22\x8e\x27\xa9\x53\x29\x40\x55\x90\x45\x33\xb3\xb1\x12\x16\x5b\xbd\xe6\xbb\xc7\xd5\x9f\xc3\x35\x43\xb8\xe1\x58\x21\x90\xa9\xd2\x13\x94\xbb\x96\x34\x0e\xc1\xad\xd2\xd6\x1a\x98\xdd\x0a\x48\x2a\xa2\xd4\x31\x94\x5e\x35\x0a\x0f\xae\xf9\x93\x83\xa4\x8a\xe3\x38\xf9\xf1\xde\x6e\x9f\x9c\xb8\xe2\xfc\x3c\x96\x11\x67\x64\x88\xa3\xf6\xae\xd3\x7c\x40\x80\x10\x69\x52\xe9\xa9\x57\xba\xec\xed\x65\x6a\xb8\xed\x28\x30\x53\x89\x7c\x7b\x84\x2a\xcb\x49\x60\x6d\x77\xff\xf2\x8a\x5a\xe2\x12\xc4\x26\xd7\x4e\x09\xbe\xf7\x87\xfa\x9b\x29\x61\xa2\x60\xf8\x5a\x0d\x9c\xc2\xc9\xab\x2b\x69\xb3\x27\x4f\xa2\x6a\x3e\xc6\xe9\x19\x42\x74\xfb\x40\xe8\x65\xff\xf1\x05\x69\x10\x21\x3a\x8a\x82\x1e\x03\xed\x4b\x4a\xa6\x7b\xcd\xe0\xc9\x74\x12\x75\x11\x3b\xd1\x3c\x8a\x63\x77\x5a\x13\x93\x84\xd2\x5a\x70\x57\xf6\x8d\xfe\x18\x70\xdb\x8f\x7f\x97\x06\x3a\xe4\xee\x3b\xd8\x78\xbe\xb5\xac\x0f\x5f\x27\x93\x09\x0d\x8c\x55\x32\xd2\x59\x8d\x60\x13\x87\x1b\x75\x8f\x40\x49\x2c\x90\x9a\xfa\x7a\xf1\xd7\x76\x4f\x79\xf7\x67\x16\x3a\x00\x8a\x3b\xf3\x31\xf0\x3b\x89\x4a\x13\x4a\x09\xa0\x65\xb5\x11\x15\xf2\x72\xce\xc8\x30\xb6\xbd\x80\xc7\xac\x67\x63\x77\x5c\x2c\xf3\xf4\xe9\x93\xa7\x0f\x13\x2b\x53\x63\x57\xd6\x76\xb5\x59\x3c\x7d\xbb\x7b\x18\x7f\x57\x1a\x26\x96\xb1\xf6\xf3\x24\x30\xa1\x61\x1a\x49\xcb\x8e\xf7\xeb\x7c\x1c\xae\x3c\x1a\xc5\x06\x37\xa0\xab\xdd\x72\x50\x22\x46\x68\x24\xa4\x09\x7b\xfa\x03\xab\x90\x53\x77\xad\x2a\xe1\x0e\x80\x62\x3f\x07\x56\xf4\xbd\xf5\x48\x62\xdf\x4f\x27\x24\xec\x99\xfb\x2d\x84\x7c\x76\x0d\xd3\x38\xd2\xa9\xdb\xed\x6f\x00\xea\xeb\x01\xbe\xdd\x05\xb3\xc4\xe1\x52\xc3\x6b\xf2\x9e\x89\xe0\x71\xec\xf9\x5f\x0f\xe7\xea\x73\x63\xed\x93\xeb\x65\x82\x48\xdf\x3d\xb2\x71\x5e\x72\x27\x11\xca\x02\x19\x25\x2e\x92\xb6\x9c\x4a\xcb\x30\x42\xb9\xd0\xb8\xc1\xb8\x77\x75\x10\x2f\xbf\x21\x53\xae\xc1\xc8\xfe\x8b\x9e\x4f\x50\xbd\x5d\xd0\xe7\x11\x9a\xf2\xc0\x31\x9f\x14\x48\x56\xe4\xfe\x2c\x5a\x73\x0b\xcb\xe5\xef\x1e\xf7\xdb\xe7\xa7\xa7\xfb\xbf\x90\xde\xf5\xe9\xdb\x62\xbb\xda\xd3\xae\x5b\x1c\xe0\xb6\xd1\x81\x4b\x77\x2f\x3d\x3e\xdb\xf7\x11\x04\x6d\x08\x97\x4e\xf3\xce\xee\xee\x97\x7b\xf0\x9b\xb2\xfa\xfe\xf3\x82\x12\xd5\x5f\xac\x12\x44\xe8\x95\x05\xca\x04\x8b\x7c\x64\xe1\x50\x49\x6c\xa4\xbb\xa9\xb2\xc3\x01\xaa\xbb\xe2\x74\xee\x7e\x57\x4a\xe2\x33\x7f\x96\xa3\x34\xcf\xc5\x7e\xb1\xd8\x07\x64\x7c\x0f\x15\x58\x82\x25\xef\x7e\x5d\x23\xde\xe3\x1a\x64\x36\x04\xa5\xf4\x1b\x0d\x55\xa1\x2d\x7e\x72\x8d\xed\x52\x73\x96\x68\xbd\x28\xf4\xca\x59\xf1\xdd\x0c\x56\x22\xf0\x56\x98\x0d\x85\x8d\x7e\x5d\x6b\x9b\x93\xab\x44\x56\x63\x35\x00\xf6\xb1\xb9\xaa\xfc\x73\x89\xfa\x4f\xff\x45\x2a\x8f\xc0\xdd\xdc\x50\x2a\x5c\x30\xfb\x47\x99\x9f\x8f\x03\x86\xd2\x7e\x1e\x99\x48\x23\x28\xde\x56\xa7\x8a\x06\xb6\x2f\x65\x85\x69\x6f\xff\x06\x26\x06\x66\x4d\x2c\x9b\x49\x9f\x6a\xc8\xb4\x5d\x98\xa5\x6f\x3d\x61\xf4\xea\xb6\xb5\xa3\x10\x8d\x60\x9b\xc3\x80\x13\x1d\x74\x8a\x91\xc7\xf2\xc2\xac\x08\x03\xcd\x94\xab\x7e\x47\x38\x67\xb3\x87\x37\x28\x9a\xbd\x76\x98\xfb\xb9\xb2\x61\x12\x52\x1d\x62\x29\xbb\xca\x1a\xa1\x1d\xc8\xcb\x7c\xb6\x37\x85\x14\x6c\xd8\xca\x12\xbf\x4f\x79\xbd\x48\x18\xaa\x40\x05\x8e\xb8\xd3\x25\x4d\x66\x17\x6f\x18\xa5\x91\x66\x9e\xa7\xdc\x9a\x51\x17\x56\x7d\x98\xa4\x9c\xca\x3e\x0b\x03\xc3\x0a\x74\x12\x26\x8e\xcf\xe2\x94\x8b\x8f\xe5\x6a\x75\xbf\x9e\xbe\xe1\xbf\x92\xff\x71\x5d\x59\x10\xb9\x62\xbb\xe6\x1a\x44\x6e\xe7\xc6\x45\xf1\x00\x09\x99\x0c\x30\x1e\x7a\x25\x8a\x3c\x13\x3e\xbe\x40\x42\x06\x5d\xdd\xf7\x22\xcf\x77\x70\x3c\xe5\x36\xc3\x8e\x01\xe0\xc9\xee\x18\x32\xd0\x11\xeb\x3e\xd5\xaf\x8f\x69\xb9\x85\xeb\xc6\x43\x0b\x0a\x13\xba\xfd\x4c\xe7\x6a\xc0\x4a\x46\x42\x2e\x55\x3a\x2c\x0b\xfa\x12\x79\x43\x42\x0e\x81\xb2\x95\x46\x6f\x37\x65\xd5\x2e\x82\x2b\xd1\x99\x26\x21\x07\x83\x78\x66\x04\x0d\xa7\x93\x77\x4e\x43\x85\xd1\xe6\xba\x29\x2b\xb8\x07\x7d\x80\xaa\xbe\x2b\xee\x4e\xa6\x9b\x7a\x69\x44\x0d\xeb\xcb\xe4\x5d\x38\x60\x12\xba\x08\xd3\x38\x46\x9c\x6f\xa6\x4a\x0a\xc3\x52\x9c\xb6\x89\xa3\x5c\x7e\xfb\x82\xb5\x33\x8c\x7c\x13\x4f\x2c\x11\x5c\x6b\xcb\xee\xca\xc5\xe9\x94\x7f\x3c\x64\x39\xd4\x4d\x59\x78\x1d\xc3\x71\x6e\x8f\x84\xa9\x24\x4a\x0c\xb7\xcc\x4d\x79\xb6\x24\x1f\x1a\xc6\x4e\x7b\x98\xca\x38\x1d\x06\x86\xae\x9b\x97\xed\x4b\x79\x1a\x0b\xd5\x8f\xdf\x43\x30\x40\x23\xf6\xcf\xac\x38\xfc\x6f\x76\x96\xfe\x49\x65\x9c\x60\x8c\x40\x8b\x46\x48\x51\x77\x2f\x27\x21\x08\x02\xaf\xd9\x53\x9e\xdb\x83\xa6\xe9\xdb\x2c\xd1\xad\xdd\xcf\x36\x58\xad\xd4\x5c\xae\x5c\x1d\x06\x08\x84\x76\xd2\x02\x08\x80\x9b\xc1\xf3\xcf\x47\xe1\x48\x08\x52\xc4\x9d\x51\xd1\x6e\xa2\x1d\x68\xfd\xd2\xd8\x1b\x5f\xa8\xd2\xc0\x42\xa8\x5a\xab\x7a\x14\x6c\x26\xa1\x89\xc1\x31\x17\x16\x48\xe0\x5e\x4e\x4e\xa5\xd0\x68\x8a\xbe\x33\xa6\x63\xf6\x6e\xb5\xfb\x36\xa3\x42\xe9\x2b\xc5\x2c\x36\xdb\x31\xc2\x7c\x6a\x15\xfc\x7f\xfd\xaf\x7d\x92\x28\x48\x22\xb4\x8d\xae\x2a\x10\xaf\x9e\xea\xeb\x6b\x43\x34\x0a\xa4\xf6\xf6\xd4\x5e\xe4\xf9\x5e\x42\xdd\xec\x4b\x33\x08\x58\x44\x84\xc7\x89\xee\xc2\x64\x4f\x98\x4f\xf0\x4d\xc2\x86\x46\x50\x27\xbc\x39\xe7\x22\xab\x60\xbf\x2c\x8f\xa7\x06\xf6\xa1\xef\x44\x03\x8e\x2c\x35\xa8\xd5\xe5\x37\xdd\xdb\xbc\x94\x3e\x87\x47\x22\xca\x04\xc2\x3d\xd1\xf0\xb8\xcf\x1a\xe8\x55\x89\x48\x44\x25\x61\xda\xcd\xc6\x9b\xb2\xba\xe4\xcd\xc1\x2e\x68\x35\x78\xd2\xab\xd6\x36\x5e\x58\xc2\x92\x4f\xa9\x4a\x48\x14\x06\x71\xea\xf5\x36\x06\x6c\x84\xe3\x5b\x87\x3c\x44\x80\xd8\xb7\xbf\x9e\x46\xf1\x94\x28\x0a\x95\x9d\x34\x65\xae\xaf\x2b\x71\xe8\xf8\xcb\x48\x14\xa5\x01\xe2\x32\x7c\x1c\x65\x57\x5e\x89\xe2\x15\xa5\x23\x7c\x0f\xe0\xc4\x5a\xf2\xd0\xa1\x44\x49\x14\x07\x36\x9d\xdc\x64\xad\x75\x82\xc4\xaf\x3f\x21\x1b\x1f\x2e\xbe\x6b\x62\x79\xd3\x3b\x21\xaf\x2b\xa7\x52\xcf\x48\x94\x10\x09\xe9\x88\x28\xb5\xdb\x66\x9e\xaa\xb2\xf5\x62\x3b\xc3\x2f\x4a\xa4\x46\xf8\xd2\xc3\xe2\xcf\xfd\xd3\xf3\x66\xd9\x5a\x6c\xbe\x8d\x25\xc6\xca\x3c\xe7\x20\x2e\x77\xe5\xd1\xe3\x30\x6e\x90\x35\x7c\x7f\x70\xd0\xcf\x3b\x54\x7a\xb4\xc4\x5e\x3d\x52\x82\x44\x3c\x65\x88\xc8\x68\x7f\xef\xc7\xe2\xfe\xee\x7a\xb1\x5b\x6f\xba\x27\xe7\x29\x0f\xad\xb2\xe8\xa6\x7f\x44\x2e\x45\x68\xb1\xba\x36\xa9\x23\x2a\xfd\xc7\x4c\xd9\x2d\x89\x52\x9a\xf0\xd8\x97\x86\xfa\xab\x05\x35\x68\xea\xfb\x92\x94\x3f\x7a\xd3\x67\x02\x49\x21\x91\x6c\xbf\x2a\xb2\xe2\x8e\xb2\x91\xd3\x82\xa4\xd9\xc0\x6a\x24\xa3\x28\xb1\x6c\xab\xaf\x3d\x05\x45\x85\x8a\x10\x9f\xd9\x18\x91\x8a\x35\x22\x44\xaf\x1e\x76\xf3\xa9\x98\xf3\xdc\x63\x2a\x61\x01\x84\xa8\xaf\x30\x46\x69\xfa\x1e\xca\x95\xe9\x42\x63\xeb\xee\x66\xf7\xff\x48\x47\x29\xda\x0a\x47\xf1\xeb\x09\x2a\x6f\x8b\x5e\x3d\xf9\xb1\xd3\x31\xa7\x18\x61\xd1\x6a\xb2\x2a\x74\x6c\xbf\xb7\xcd\xdb\xa2\xb5\x6d\x63\x81\x6e\x3f\xa6\xdd\x2d\xd2\xd8\xda\x5c\xd8\x11\xe5\xa2\xed\x78\x12\xff\xac\xda\x31\x35\xa2\xa8\xb0\x0d\xb3\x7f\xad\xa7\x43\x22\xa0\x80\x26\xc0\x9b\x28\xb2\x7c\x10\x9a\x8b\x20\xa2\xc2\xb9\xe3\xdb\xb9\x9a\x49\x12\x07\x84\x0b\x1b\x13\x2b\xca\x73\x7b\xa2\x76\x71\x61\xdf\x21\xb1\xf9\xbc\xd5\x9f\xcb\x6f\x8b\xc7\xdb\xd5\x1e\x29\xaf\xae\x57\xcb\xbb\x87\xc5\xfd\xb6\xeb\xc5\x18\x66\x58\x34\xaa\x7e\x0c\x28\x35\x48\x1c\x68\x2e\x9c\x92\x61\xe7\x21\xc5\x24\x84\xd4\xe6\x31\xb6\x9d\x41\x10\x93\xd8\x4e\xec\xed\x9f\xdb\xbf\x06\x6f\x11\x53\xc3\x2d\xc9\xbc\x38\xc2\x06\xea\xae\x6e\x92\xc4\xa1\xe3\x10\x6f\xa0\x18\xf2\x70\x90\x38\x0a\x15\xc2\xa5\xcf\x45\xe7\xc0\xcf\x49\x67\xb5\x1d\x0d\xd6\x39\xac\xa0\x39\x28\xdc\x65\xbf\x08\xbf\xc5\x51\x92\x6a\xc7\x23\x5f\xfe\xd9\xfd\x96\x00\x0c\x70\xa3\x9a\x8a\x4d\x9c\x38\x1d\x83\x7f\xc5\xdd\xcf\x48\x96\x3a\x9e\x33\xc7\xd2\xf6\x15\x79\xfa\x3f\x3b\xdf\xe2\x48\x72\xaf\xbe\x35\xa3\x60\xc9\x48\x1c\x13\xc2\x3c\xa5\xe9\xb5\x25\xef\xd0\x77\x56\x07\x6b\xdb\xce\xcb\x42\xc1\xcf\xaa\x2c\x0e\x1b\x10\x13\x13\x20\x4e\x02\x83\x05\xda\x70\xc4\xdd\xd4\xeb\xd5\xfe\x23\x38\x2a\x89\x79\x4c\xbc\xeb\x84\xa3\x92\x15\x87\x09\x4c\xd3\x77\x4c\x42\x0c\x50\x60\x2e\xc4\x26\xe1\x26\xae\x78\xcc\x99\x0d\x79\xda\xca\xf3\xd9\xa0\x44\xcc\x53\x8d\x35\x38\x05\xbc\x9f\xca\xe2\xef\xac\xbb\x16\x42\xdc\x19\x1e\x05\x56\x10\xfd\x1f\x73\x43\x71\x4a\x19\x82\xb9\xad\x5f\xd6\x5e\x88\xc9\x9c\xe1\x44\x4b\xd3\x94\x5b\xc4\x4e\xbb\x1b\xd7\xe0\xa8\xf8\x7e\x4b\x4e\x4a\xe2\x54\x24\x68\x19\x97\xa8\x6a\xdb\xdf\x50\x4b\x8c\xa0\xe5\xa2\x6e\x76\x59\xbf\x62\x24\x0d\xbc\x69\xb1\xc8\xf3\xc9\xd7\x92\x69\x8a\x5e\xf2\x3e\xab\xb7\xd9\xa1\x00\xfd\x54\x81\xc9\x7e\x7d\x6e\x05\x7e\x65\x54\xc6\x3a\x12\x49\xe4\x6a\x82\xeb\xb3\xac\x55\x95\xc9\xde\xfe\x89\x75\xcc\xb0\xb8\x62\x29\x2a\x59\x16\x30\x0e\x54\xc5\x5a\x5a\xd5\xe9\xdd\x0b\xb4\xe6\xbe\xff\x33\x04\x10\xd9\x10\xd9\x69\x3a\x95\xc6\xc3\x02\x9a\x46\x7e\xab\xbe\x7b\xea\x49\x29\xa6\xbd\x2c\xcf\x74\xfb\x3d\x5a\x8b\x7c\x75\x5a\x1c\xa1\xd0\x7d\xc9\x4c\xdb\x05\x30\xba\x22\xce\x97\x75\x4b\x24\x06\x63\xd9\x89\x0a\x78\xbf\x98\xdb\xe7\x09\xad\x35\xf6\xc6\x78\x53\x05\xad\x49\x6c\x35\xc5\x5c\x00\x66\xf2\x60\x86\xa7\x18\x91\xf8\xcf\xf5\xdd\xe3\x6e\xff\xb4\xda\xec\x57\x3b\x47\xda\x43\x92\x80\x84\xdc\xee\x4a\x79\xa9\x5e\x41\xef\x40\x78\xdd\x9b\x41\x39\x38\x49\x02\xae\x03\x77\x70\xbb\x39\xf4\x50\xea\x1e\x9e\x53\xce\x29\x31\xbb\x4b\x09\x4d\xe8\x30\xc2\x7c\xb3\xdd\xcd\x0f\x74\x42\x12\x0b\x64\xe8\x2c\x26\xfc\x8c\xed\x12\x99\x5b\x21\xfe\x22\x15\x6b\x17\xe6\xbf\xaa\x84\x7a\x45\x65\x36\xf5\x79\xef\x04\x2d\xe5\xcd\xb9\xf0\xc0\xf2\x3e\x60\x90\x50\x12\x68\xb7\x27\x7e\x2b\x87\x0a\x58\x43\x34\x2a\x49\xa8\x21\x9c\x7a\xe8\xf3\xa6\x3b\x98\x92\x30\xb2\xdc\x2a\x27\x94\xe9\x19\x31\x40\x90\x24\x0a\xad\x30\x61\xbb\xf3\x59\x28\x3d\x8c\x59\xb0\x48\x12\xc5\x29\xb3\x75\xcf\x83\x0c\x50\x12\xf3\xd8\xd7\xff\x3e\x67\x9f\xd4\x5c\xb6\xbd\x2c\xb9\x27\x5a\x56\xa7\x4c\x8d\x27\x41\xc2\x22\x40\x6c\xc4\x51\xfc\xca\x8e\xe7\xe3\x9d\x2a\x7b\x06\x41\x92\x70\x88\x91\x81\x04\x0f\xf8\xed\x1c\xf5\x3b\x49\x52\x06\xc6\x41\xa5\xb6\xe7\x63\x0f\xf2\xf3\x8b\x30\x49\x45\x12\xb6\xeb\xe9\x4e\x95\x7d\xb8\xab\x6b\x33\x9e\x12\x64\x9d\x6b\x5b\x8f\x3a\xe1\x4a\xf7\x3d\xb5\xc6\x04\x5d\x56\xa0\xee\x47\x3d\x60\x4c\x24\x89\xd0\x2a\xf4\x80\xd0\x0f\x4b\x98\x48\x27\xd7\x0b\x93\xe0\xe9\x79\xcc\x0a\x78\x2a\xe7\x95\x0d\x49\xa2\x02\x61\xab\xaa\xca\xe3\xc9\x7a\xeb\x88\xc5\x99\x0c\x9a\x0e\x55\x62\x55\xb2\xfe\x7d\xae\x1b\x97\xdb\x1c\x77\x81\xd8\x11\x5b\xb6\xbb\x70\x0f\xb7\xfd\x64\xf6\x19\x17\x85\xcd\xea\xce\x06\xf0\x84\x1d\xa4\x7d\x77\x0c\xb2\xec\x5e\x44\xf1\xfa\x57\x79\x9e\x01\x5b\x30\x9a\x18\xe4\x81\xf9\xb6\xfe\xb9\x5a\x0f\x37\x39\x46\x85\xa5\xda\x6e\xa7\x97\x8d\x9b\x20\x50\xaa\x53\x92\x22\x8c\xea\x14\x67\xe7\xba\x29\x8f\xa2\xc9\xfe\x1e\x5d\x1e\x05\x1a\x8b\xe3\x8a\xf3\xf1\xda\x09\xd8\xd4\x4f\x15\xbc\x65\xe5\xb9\x46\x4e\xcf\xae\x23\xb1\x71\xa2\x3f\x9f\x76\xe3\x1b\x70\xeb\x67\xfe\xdc\x6e\xc6\x5f\x84\x45\x42\x39\x61\xa3\x66\x85\x0c\xea\xa0\x77\xa2\x7e\xed\x10\x31\xb3\x43\xc5\x62\x6a\x45\x21\xbd\xdc\xc3\xd5\x47\x3b\xba\xbb\x8f\x13\x2c\x0a\x7d\x37\xef\x5e\xb0\x58\x33\x0c\xc2\x6d\x9f\x16\x9b\xe5\xf8\x40\x62\x49\x0c\x58\xc9\xf2\x03\x0a\x8d\x4e\xe8\xd6\x03\xe8\x3e\x29\xea\x22\x2c\x49\x04\x84\x3d\x2d\xf7\x83\x28\xce\x22\xcf\x3f\xae\x3a\x26\xe5\xc1\xde\xc1\x98\x93\x5c\x6f\x4f\xc9\x26\x3b\x42\x05\xfa\xdc\x25\xe6\x19\x13\x4c\xdb\xc2\x92\xa2\xe7\xcd\x1f\x00\x7c\x18\x27\x02\x69\xab\x3c\x8d\xf8\xfc\xc4\x65\x3c\x0a\xc9\x98\xc3\xea\x87\xa8\xb2\xa1\xfa\xd3\x7f\x7c\xea\x4d\xb3\x34\x24\x18\x7f\xda\xef\xb3\xfa\x06\x50\x78\xcd\x13\x40\x8d\x7f\x25\xd5\x01\x4b\x1d\xe7\x59\x6b\x39\x8f\x51\x06\x2c\x05\x4d\xbd\x12\xf3\x10\xeb\xc3\x04\x49\x63\x17\xd9\x5c\x9f\x1b\xac\x0a\x1e\xdd\x57\xa4\x11\xb6\x3f\x6f\xaf\xf7\xeb\x63\x91\xe9\x32\xcf\x85\xdf\xfe\x98\x0c\x19\x1d\x8a\x4c\xa1\x7b\x2a\x8a\x79\x92\x68\xc2\x94\xe4\x48\x74\xf1\xdf\xcf\xde\x1d\x66\x0a\x00\xe3\x10\x8e\x6d\x1c\x09\xf2\xae\xcf\x0e\x1c\x3c\xbe\x5a\xc7\x31\x75\x61\xc4\x11\xf9\xb7\x6f\x86\x18\xfd\x2a\xcb\x7a\xb0\x2c\x8f\xc7\x3e\x78\xc0\x80\x44\x68\x27\xfd\x00\x99\x95\xc5\x9f\xdd\x9f\x53\x16\xf5\x84\x44\x3d\xb2\x71\xd6\x40\x64\x86\x46\x18\x66\xfb\x54\x2f\x7f\x74\xe6\x30\x93\x18\xe4\xa4\x7c\xf8\x6b\xb9\x9c\xdb\x19\x0c\x28\x34\x72\xde\x2c\xbf\x3b\xf5\x77\xeb\x16\xa8\x01\x6d\x3a\xae\x9c\xaa\x6e\x10\x4e\x0f\xd7\x67\xc8\x49\xd7\xc5\x58\x9a\x9f\x4e\xe1\x1d\x8b\x8f\xbe\x0e\x4f\xf1\x40\x6b\x2c\xde\xdb\x1f\x3c\x6d\xd0\xfc\x8a\xe6\x24\x61\x2a\xb2\xfc\x92\x96\x88\xf9\x93\x7e\x94\x72\x5b\xcd\x8c\x06\x38\x88\xe3\xb2\x27\x23\xbd\xd3\xbd\x4a\xfc\x1f\xbe\x3f\xb3\x00\x34\x0f\xb7\x1a\x36\xe0\xeb\x14\xf0\xab\x19\xde\xa3\xd0\xf0\x6b\x57\x5e\x01\xb2\xc3\x8f\x56\x21\x0f\xe3\x40\xa4\x16\xcb\x89\x88\x04\x91\x67\xaa\xdd\x02\x3b\xd6\xd9\xc5\x79\x33\x01\x3b\xf1\x30\x21\x78\x4a\x14\x65\x23\xaa\x49\xad\x3e\xe1\x71\x18\xe3\x7e\xe9\xf2\x98\xc8\xdf\xbe\x2b\xaf\xf2\x52\xcd\xf0\x4f\xb6\xdd\x53\xe4\xd1\xb5\x33\x78\x71\x3a\xad\x7e\xc1\xc4\xb3\xe7\x71\x12\x62\xe8\x00\x65\x0f\xae\xb3\xb7\x7a\x2b\xde\xfa\x1a\x7f\xc2\x63\x66\x63\xc0\x35\x34\xf7\xe5\x21\xbb\xb8\x5c\x28\xcc\xa3\xa1\x72\xda\xc7\xb2\x3c\x9e\xca\xe2\xc2\x6a\xe4\xb1\x21\x56\xa5\xb1\x29\x4f\xae\xf4\xd6\xdf\x3f\x09\x83\xd0\x26\x00\x2d\xb6\xf9\x4e\x95\x76\x32\x75\x1d\x78\x10\x3a\xcd\xe2\xb5\x31\xcb\x17\xd1\x69\x35\xc3\x85\xbb\xcb\x59\x68\x8d\x9e\xa7\xcd\x7a\x7d\xb3\xb7\x9c\x80\x3f\x17\xf7\xf7\x2b\x8f\x51\xe4\x9c\x0a\xd4\x8b\xe9\xf7\x3c\x24\xd0\xee\x2c\x24\xce\x15\x17\x96\xc3\xe2\x66\x58\xde\x46\x78\x4a\x21\x74\xe1\xc3\x87\x8f\xef\x45\xf9\x9e\xb7\x27\xa3\x6f\x15\x22\x41\x81\xab\xc7\x95\x5f\xc2\x5c\x06\x02\x9f\xdc\x47\xe8\xaf\xce\x1f\xd7\x70\x14\x53\xe0\x0a\x97\x3a\xd1\xba\x17\xb6\x85\xba\xb1\x5c\x88\x03\x0b\x9d\xab\x80\xe2\x66\x07\xcd\xcb\x53\x05\xa3\x88\x34\x57\x49\x6c\x85\x86\xb2\x23\x58\x42\xcf\x59\x62\xa8\xd1\x4c\x52\x8a\x25\xbe\xf8\xe1\x0a\xa6\xdf\x4b\xb3\x04\x71\x3e\x27\xd4\xb0\x58\x96\xfd\xe8\x68\x61\x2d\x22\xa1\xf5\x23\xbc\x6f\x41\x55\xd0\x60\x45\xdb\xc8\x80\xe4\x5a\x30\x00\xff\x4a\x33\xec\x22\x84\x6b\x93\x6a\xb7\x65\x5a\xa5\x8c\xed\x49\x28\xa8\x5f\xb2\xd3\xb3\x65\x83\xaa\xaf\x3e\xee\xa6\x23\xa5\x8d\x15\x2a\x7e\x11\xa8\x5e\xb9\x5c\x2f\xf3\xb2\x0f\x6e\x72\x48\x42\xd4\x1b\x6a\x1f\x7b\xbc\x70\x20\x51\xc8\x20\x9c\xd5\xd6\x50\x1f\x96\x5f\xfb\x2e\x42\xc4\x7e\xa2\xb7\xcf\xf3\x24\x2a\x98\x1a\x94\x1c\x94\x3d\xcb\x10\xac\x57\xbd\x42\xe3\xed\x22\x1c\xa3\xf1\xc3\x1a\x4e\x94\x33\xb5\x97\xcb\x6f\x56\x77\xc4\xeb\x09\x90\x34\x48\x02\x3e\xe2\xd9\x5e\x5c\xcc\xe9\xf1\x56\x96\x92\x80\x0e\x00\x70\x98\x51\xfb\x2a\x8e\xe2\xbf\x45\x4a\x22\x86\x9b\xc6\xc9\xba\xee\xcf\x37\x7e\x2d\xa4\x34\x8d\x31\x9b\xb7\x56\x20\x8a\xad\x12\x27\x0b\x1f\xd1\x6f\x5f\x4d\x9d\x34\x14\x12\x53\xc2\x2e\x47\xf5\xec\x9c\xbd\x79\x87\x2d\x0d\x25\xb1\x25\x93\x88\x43\x5e\x1a\xfb\x49\xbd\x9e\x37\x49\x43\x43\xf1\x24\x71\x3a\x0f\x30\xd6\xba\x26\x69\x9c\x12\xc5\x06\x94\x32\x68\x63\x8b\x4b\x89\x90\xf9\x48\x4d\x1a\xeb\x14\x3f\xbc\x16\x8d\x58\x9b\xa7\x2f\x78\x86\xfd\x05\x00\x58\xa2\xb0\x6a\x44\x5e\x16\x36\x6d\x31\xb4\x4d\x53\x16\x29\x54\xad\x6d\x4d\xb3\xab\x4c\x0f\x98\xe9\x49\xca\x54\xa2\xa9\xaf\x82\xda\xed\xc4\x2f\xdf\xc0\x59\x84\xfe\xfc\x09\x89\x1e\x5a\x5b\x64\x59\x75\xac\x4c\x24\xe5\x3c\x20\x2e\xe5\xf2\xb3\xac\x5e\x3f\xa5\x1c\x27\x29\x87\x80\xf7\x05\x0f\xf7\xe5\x9b\xa5\x81\xfd\x63\xa0\x11\xeb\x7a\xa6\x24\xc4\x6c\xc7\xee\x05\x16\xf2\xa3\xae\xaf\x17\x77\xcb\xf5\xef\x88\x6b\xfe\x5f\xff\xf5\xbf\x6d\x12\xe4\x01\xaa\x85\x01\x57\xbd\x35\x7e\x0d\x11\x18\xae\x3a\xfc\xc9\xda\x98\x4c\x4d\x77\x88\x54\x52\x08\x98\x67\x62\xc3\xe0\x1e\x46\x06\xbc\x09\xe6\xc9\x8b\x27\x88\x85\x54\x31\x2e\x1c\x81\xdb\xb2\xd4\xa0\x2f\x62\xc2\xa9\xe2\x09\x84\x8e\x62\x77\xdf\x8e\x9e\xe5\x15\xf6\x1f\x43\x41\x18\xdb\xb4\x5a\xfb\xd9\xdf\x7b\x4c\x7d\xaa\x80\x85\x96\xbd\x2d\xfb\x1b\xfa\x2a\x15\x92\x1a\x6a\x90\x35\x60\xaf\xac\x91\xd1\xb1\x23\xfc\x31\x88\xb5\x8c\xaa\xff\xfe\x45\xc8\xff\xf8\x8b\xc3\xc0\x73\x85\xdc\x97\xea\x75\x62\xda\xa5\x86\x6b\xdc\x8b\x31\x09\x7b\x67\x3a\x4e\xd6\x69\x96\x5a\x04\x41\x8a\x99\xab\xab\xcd\x3d\x1e\x7c\x7f\xf8\xbf\x87\x01\x46\x49\x77\x0f\xcb\xdf\x9e\x0b\x22\x88\x02\x74\x7a\x0a\x78\x47\xb5\x02\x6f\x4f\x0b\xc2\x25\x22\x86\x26\xba\x57\xe3\x47\xa0\x10\x61\x40\x64\xfd\xf3\x71\x7f\xc1\xfa\x39\xed\x6b\xd2\xc4\xd1\x7b\x7c\x05\xc8\x12\x91\x56\xb1\x17\xc0\x39\xab\xd7\x0f\x2c\x94\x58\x89\x6a\x12\xf1\x12\x71\x98\x30\x17\xba\x41\xdc\xb6\x27\x0a\x1d\x14\x73\xf7\xab\x43\x24\x09\xd8\x24\xa5\xd6\xeb\xca\x62\xc7\x66\xc8\x56\x89\x48\x98\x10\xee\xe3\xdc\x9c\x0b\x8c\xb4\x79\x3c\x25\xce\xc2\x91\x60\xb3\xff\xd7\x2f\xc6\xd1\xf3\xb1\x28\x41\x27\xc0\x6d\x9b\xfb\xf9\xfd\x52\x30\x15\x85\x23\x62\x55\xa0\xa4\x8f\x71\x4d\x0f\x05\xc1\x03\x29\x1c\x02\xae\xf5\x24\x6f\x00\xa6\xe7\xed\xe4\xfe\x9c\x32\xa4\xaf\x96\xe7\x8f\xb5\xcc\xfe\x56\x9e\x1f\x7d\x3a\xec\x5c\x0a\x1a\x77\xc5\x6c\x50\x5d\x95\xbf\x60\xda\x47\x24\x81\xd1\x17\x21\xb6\xc9\x82\x14\x42\x5b\x02\xbc\x13\x9e\xd8\x02\x4d\x97\xbe\x42\x74\xda\x5b\x06\x10\x2a\x17\x9c\xbd\x16\xd9\x3f\xaa\x1e\x22\x42\xc5\x16\xe9\xf1\x73\x52\x8f\xf5\x0f\x8e\x08\xa1\x43\x40\xa8\x5c\x6b\x1b\xbc\xb6\x46\xb5\x63\xba\xfd\x24\x76\xfe\x75\x6a\x40\x68\x11\x9a\x0e\x68\xda\x53\x7e\x4d\xbe\x02\x70\x83\x96\x8a\x63\x50\x70\x6a\xcf\x3b\x51\xa1\x04\xe8\x4f\xf0\x11\x7e\x01\xa9\xdd\x72\xec\x7e\x7f\x0b\x45\xe0\xd1\x9d\x73\xab\x17\x04\xe0\x69\xf7\x22\xea\x2b\x91\xe7\x65\xb3\x42\xdd\xe5\xa1\x39\x20\x4c\xac\x03\x67\x9a\xd9\x40\xef\x50\x44\x76\x9b\x8b\xfa\x65\x2e\x01\x2d\x8c\x62\x98\x57\x3d\xa2\xd9\xe3\x53\x00\x23\x43\x54\x12\x4d\x31\xf2\xb7\x59\x3c\xde\xae\x56\x8f\xd7\xfb\xa7\xcd\x6a\xbb\xb8\xf7\x1e\xb5\xa4\xd4\x66\x92\x6c\x9c\xc0\xc9\x46\xf9\xb6\xd0\xca\x40\x3d\xdc\x3d\x2e\xfd\xdf\xc2\x24\xc6\x60\x8f\xd3\x7d\xb8\x28\x07\x92\x61\x6a\x8b\xaf\xfa\xcc\xb7\xd5\xc7\xaa\x6f\x90\x3b\xaf\xb3\x0c\x65\x14\x27\x18\xd0\xdc\x36\x6a\x78\x98\xcb\x88\xc5\x98\xf0\xda\xee\xfe\xcb\x1a\x94\xe1\xfc\xb2\x91\x91\x89\x3c\xfe\xfb\x7a\xf5\xe7\x94\xfe\x76\xdc\x37\x0e\x62\xa1\xbd\x25\x59\x1d\x60\x29\x4e\x5d\x84\x6e\x06\x78\x30\x9e\x40\x32\x06\x40\x17\xc6\xc2\x27\x90\xf4\x6e\x1c\xd9\x95\x49\x62\x63\xa3\xad\x99\x4b\x3e\xb9\x4b\x22\x42\xe6\x82\x9b\xbe\xd6\xc9\x9a\xd9\x93\xf5\x26\x13\x1d\xe2\x96\x9d\xd5\x8f\x65\x23\xa6\x65\x35\x32\xd1\x36\xdd\x71\x80\xa6\x3b\xd4\x5a\xf3\xa4\x6e\xc4\xf1\x34\x1f\x3d\x96\x4c\xc7\xca\x32\x3d\x64\x0a\xec\xde\xfa\x53\x64\x38\x67\xfa\x10\xb6\xe4\x41\x04\x6e\x5f\xbf\xb2\xf8\x99\xd1\xa7\xe5\x81\x44\x92\x34\xc7\x0d\xbb\x14\x95\x46\x0e\x97\xc3\xe4\x01\x53\x99\x58\xc9\x20\x91\xc3\x48\xe5\x87\x48\x11\xda\x22\xe4\xa7\x5c\xd4\x47\xd1\xfd\x55\x47\x18\x96\xff\xb7\x50\xaf\xa7\xd2\x0b\xad\x8f\x27\xb2\xa4\x89\xe5\x1b\x71\xdf\xb9\xfd\x6a\x58\x01\x35\x19\x3c\x19\x2a\xc5\x91\xb6\xe8\x0d\x9a\x97\x8e\x91\xe3\x37\xd9\xb7\xc9\xd4\x92\x60\xd0\xc2\x3d\x89\x8f\xa7\x5c\x34\xa6\xac\x8e\xeb\x73\x73\x28\xdb\xf1\xea\x2b\xbc\x97\xe5\xf1\x98\x61\x11\x8b\x7f\x48\x95\x6a\x64\xa0\xef\xa0\x99\x96\x81\x78\xf2\x88\x9a\x18\xb4\xf1\x1f\xb2\x62\x29\x4e\x1b\x10\xea\x65\x1a\xa1\x93\x5a\xa6\x58\xfc\x5c\x97\x06\xc5\x55\x7a\x26\xb3\xb6\x4d\x21\x3f\x81\xe3\x96\xf9\x7f\x4f\xeb\x4a\x0d\x3c\xb6\xb4\x61\x8d\xa8\x10\x43\xb5\x74\xa2\xd0\x83\x6d\xed\x3c\x50\xe2\xbf\xb4\x9f\x9c\x2c\x9d\x63\x54\x98\xa8\xf1\x87\xd4\x87\x03\x24\x04\x56\xaf\xd0\x29\xc3\xc4\xfe\xa5\x80\x70\x2c\x88\xde\xbe\x94\xa7\x6b\x38\xe5\x28\x8d\xfb\xd5\x5b\x75\x73\x1b\x38\x43\xf2\x8d\x59\x2a\xd6\xf9\xa5\x08\xc2\xd2\x57\x7b\xf5\x9a\x32\x2b\x6a\x47\x67\xdc\x23\xca\xfd\x93\x99\x30\x96\xae\x14\xef\x21\x2b\xce\x0d\xd4\x36\xf0\x58\x77\x1d\x22\xab\x29\xb2\x5c\x3c\xfe\x58\x6c\xf7\x3f\xef\xae\xbb\xfc\x9b\x34\xb1\x48\x5d\xcc\x70\xf5\xb8\x9d\x2c\x14\x23\x02\x1f\xbe\xd8\x80\x86\xa3\x2d\x23\x69\x8d\x29\x17\x3b\xea\xfa\x49\x84\x20\x56\x88\x44\x58\x9b\xc9\x5c\x31\x3a\xe2\xd2\x2d\x8d\x5e\x3b\xf1\x3f\x66\x6d\xca\xf1\x40\xa8\x80\x4a\x0c\x35\x5d\x6d\x17\x37\xfe\x4c\x50\x41\xa8\x99\x0b\xcd\xef\x2b\x98\x3a\xd1\x8a\x04\x0c\x8d\xd7\x77\xc8\x76\xe5\x93\xa5\xc6\xae\xea\xd6\x81\xea\x74\x96\x88\x22\x11\x33\xb2\xab\x67\xc5\x85\xfc\x7f\x78\x2c\x12\x33\x4d\x3c\xe3\x72\x7d\xae\x5a\xeb\xcc\x51\xe2\x4e\x4c\x65\x7f\x81\x26\xa9\x4b\x6f\x0c\x22\x81\xf5\xf4\xc9\xb5\x25\x35\x69\x5f\xcc\x71\x7a\x5b\x79\xb7\x7a\x7f\x82\xca\x4a\xe6\xf9\x17\xa0\x3c\x44\x1b\xd7\xe5\xca\xbb\xbf\x87\x69\x82\xe5\xb6\xb6\xd6\x7c\xca\xe5\x42\x54\x44\x99\x0f\x91\xff\x84\xec\xf0\x72\xa1\x02\xe7\xfb\xa5\x3c\x90\x9e\xdf\x5d\x14\xa2\xdb\x66\x55\xcc\x18\xc2\x7f\xe1\xac\xae\xb3\xba\xa1\xd7\xff\xcc\xe0\x52\x31\xb7\x72\x05\x99\x93\x50\xea\xce\xa8\xdf\x5c\x96\x5a\x71\x87\x07\x91\x15\x05\x34\xdb\x73\xf5\x06\x17\xa5\xc7\x9e\x58\xc1\xad\x62\x95\x24\x11\x92\xbf\xdc\x97\x87\x69\x39\xc3\xec\x8a\x53\x89\x8e\x90\xb6\xe6\x04\xa2\xca\x27\xd8\x4e\x95\x68\x85\x71\x9e\xa7\xaa\x2c\xcd\xda\x2c\x2b\x91\x1d\x6e\x2b\x51\xf4\x1d\x20\x88\x5c\x88\x6b\x84\xa9\x99\xfc\x08\xe3\x0a\x19\x4f\x30\xb2\xec\x68\xc0\xfa\xda\x40\xc5\xd2\x98\xdb\xa2\xf9\x1c\x44\x0d\x28\x11\x38\x3a\x26\x15\x83\x94\x62\x42\xe8\xda\x66\x84\x56\x95\xa2\x01\x7a\x4b\xa8\xdf\x31\xe9\xcd\x03\x95\x30\xac\xb9\x58\x3f\xad\x3e\x41\x8f\x8d\x66\x29\xa7\x8a\xb8\xa2\x2d\xaf\x3c\xd6\xf1\xc7\x8d\xdf\x84\x47\x0c\x6b\xc5\x1c\x9a\x7e\x6d\x1c\xc1\xd6\xb4\x5b\xac\xb1\x18\xe4\xbe\x3c\x3c\x4e\x4f\xfe\xe9\x42\x1b\x6b\x58\x59\x00\xd8\x27\x53\x82\x43\x18\x86\x3e\x15\x5c\xe8\xf2\xbd\xb8\xad\x84\x02\x6b\x0b\x0f\xa3\x2b\x2a\x0d\xdd\x41\x69\x41\x8d\xd7\x99\x82\x4d\x99\xe7\x63\x5c\x83\xef\x1b\x07\x58\x89\xb6\xba\xb9\x19\xef\x83\x2a\x8d\x19\x22\xef\x8f\xe2\xd7\x55\xa6\xef\x0a\x2f\x85\x3a\x59\x5a\xa9\x60\x58\x0a\xd8\x94\xa7\x6c\x68\x32\xaa\x14\x08\x02\xc6\xb6\xa7\xb3\xde\x95\xd7\xd9\xdb\x74\xe1\x0b\x4a\x50\xf0\x2e\xab\x17\x67\x9d\x35\x65\xd5\xeb\xa9\x4d\x1e\x45\x84\x21\x66\x98\x70\x6d\xfb\xfb\x0b\x69\x7c\x65\xca\x5f\xe7\x23\x54\xd9\xf9\x38\xef\x44\x28\xa1\x6c\x2e\x54\x68\xed\xd4\xb5\x2c\x31\xd3\xcc\xdc\xb8\x1c\x76\x99\xda\x00\x70\xbb\xeb\x69\x57\x1f\x3c\x0b\x97\x51\x52\x52\xab\x9a\x9b\xfd\x02\xbd\x7f\x1b\x54\x67\x29\x09\x86\x77\xf5\xa0\x36\xc9\x63\x50\x5f\xe0\x13\x1c\x92\xbb\x4c\x45\x16\x68\xba\xc8\x41\x21\x91\x8e\xbf\x9f\xe2\x41\x2c\xba\x60\xe1\xa4\x04\xd0\xf7\x01\xcb\x2a\xf9\xbd\xcc\x45\x37\x35\x20\xa6\xe0\x11\xdd\x50\xdd\xd5\x0b\xfd\x56\xaa\xcf\xe8\xf6\x88\x82\xd4\xea\x3f\x9a\xb2\x7a\x6f\x0d\x4b\x91\xe7\xb7\xa2\xfb\xf4\xa0\x13\x04\xef\x1d\xb3\xa2\x79\x84\xf7\xeb\xc7\xe5\x27\x5b\x80\x89\x39\x12\x38\x2f\x45\x71\xb7\x3d\x5b\x1c\xd1\xae\xca\xa6\xd1\x2e\x65\xe2\xd4\x65\x40\x5b\xdf\x69\xbf\xe8\xd8\xc9\xe6\x87\xc7\xf0\x04\x6b\xe1\xf6\x15\x68\x80\xe3\x9d\xaf\x43\x1f\xdf\x55\x07\x49\xc2\xdc\x01\x83\x65\x6f\x53\xf7\x5c\x07\xca\x04\x8e\x97\xc3\xd7\x55\x6d\xb3\x43\x81\xa9\xda\x0b\x6b\x67\x00\xda\xd5\x01\x68\xcf\x98\x5d\x7f\x87\x8f\xc9\x04\xd7\x24\x22\x06\x43\x14\x65\x27\x69\xd8\x47\x56\x34\x49\x53\x3c\xcb\x6c\x8e\x6a\x75\x44\xeb\x0a\xc8\xe4\xd9\xc2\x40\x10\x7b\x10\x0c\x0a\x7d\x2f\x50\x5c\x9f\x68\x9a\xfa\x7b\x10\x81\x2e\x69\x47\x8d\x81\x33\x30\x9e\x3c\x6d\xa8\x81\x74\xe5\xdb\xa2\xf9\xbc\x76\x6f\x7a\x77\x0d\xb8\x4f\xfc\x67\x56\xa8\xb2\x1a\x6e\x01\x3a\x4a\x53\x2c\xc9\x47\x9d\xc0\x45\x05\x62\xdb\x67\x50\xc6\x8b\x47\x47\x42\x84\x76\xa6\x1d\xcb\xf0\x3a\x82\x37\xd1\xdd\x04\xb4\x70\x1e\x65\x6b\x9b\xde\x97\x4d\xb4\xed\xd0\x77\xe3\x47\x89\x03\xeb\x66\x9c\xc4\xc7\x15\x34\x63\x25\x2a\xa2\x63\x61\xd0\x24\x7d\x3e\x99\xac\xf0\xe2\x8a\xf8\x67\x84\x08\xc1\xaf\x06\x0a\x3d\xaf\xe0\x44\x74\x2c\xe3\x4e\x9d\xa0\x2c\xce\x28\x09\x32\x20\xf9\x25\x3a\xd6\x36\x8b\xe1\x35\xb7\xb3\xa2\xf5\x5e\xf3\x8b\x41\x1c\xcc\x80\xd8\x18\x8c\x90\xe3\xc9\xb8\xda\x7d\xfb\x29\x0e\xb8\xf9\xb9\xe6\x44\x4b\xb0\x19\x3f\xa7\x53\x75\x40\x52\x48\x5f\x7a\xf3\xf5\x57\x49\x80\x62\x9a\x0d\x49\xbd\x36\xa5\x57\x97\x20\x9a\x25\x01\x1a\x65\x77\xcb\xb5\xe3\x78\xee\x7f\x91\xa9\x04\x89\x63\x6c\x10\xe5\xba\x7c\xf7\x32\xde\xf3\xeb\x5a\x33\x88\x30\xe8\xd7\x8c\xc1\x15\xff\x47\x77\x67\x72\x53\xce\x52\x94\x02\xbe\x69\xb7\x51\xab\xdd\x6a\x27\xd5\xe7\x31\x2a\xee\x2f\xd5\x56\xf6\x6d\xef\xaa\x24\xef\x33\x05\x53\x52\xe8\xb6\x17\x13\x3d\x91\xc4\x66\x46\x99\xc2\x75\x4c\x43\x85\x29\x50\xb4\xdd\xce\xf5\x34\xe6\xa9\x53\x63\x14\x78\xff\xdd\x22\xb4\xfd\x48\x8a\x00\x30\x91\xbb\xf7\xe2\xa9\x1b\x64\x30\xbb\x85\xa2\x2b\x69\xd4\x42\x09\x0b\x67\x6e\x8d\xaa\x2b\xa1\x5e\x61\xbc\x7a\x14\x4b\xb0\x16\x02\xd0\x5b\x5f\x6d\x96\x8c\xfa\xac\x98\xd6\x51\x22\x2c\xe7\x88\x69\xc8\xa4\x9c\x4b\x6b\xce\xd1\xe1\xc5\x9c\xbb\x17\x4d\x22\x5a\xa7\x29\x0a\x8f\x5c\x65\x87\x4d\x56\xbf\x76\x7f\xd6\xb6\x90\x03\x79\x33\x8c\x8b\xdd\x0e\xea\x4c\x34\x50\x83\x18\x6a\x14\x2b\x72\xc1\xa8\xf1\xca\x82\x24\xc4\x1f\x54\x3d\x95\x3b\xc2\x4f\xab\xe9\x4e\x6b\xb8\xc6\xa8\xb9\xcc\x0e\x77\xd3\xc8\x99\x36\x8a\x20\x1a\xca\x72\xc6\xe5\x65\xd3\x94\x24\x70\xce\xdd\xef\xf2\x31\xf6\x16\x10\x84\x01\x06\xd6\x9c\xa6\xa1\x9b\x96\xa0\x77\xe5\xa7\x1c\x6c\x04\x02\xc6\x89\x8d\x6b\xd6\x67\xb8\x86\xb7\x7a\x84\x4e\x00\x42\xc2\x38\x1a\xc8\x88\x0d\x98\xef\x66\x42\x8b\x40\x28\xeb\x64\xc2\x5b\xa3\xac\xdd\x4b\xfb\x7b\x19\xeb\x78\x1e\xa0\xf9\xd6\xe4\x6a\x67\xb9\x0c\xad\xf1\x36\x6b\x54\x00\xe5\xae\x7c\x4c\x14\x37\x5e\x96\xc0\x37\x89\x04\x0b\xd5\x85\x76\xa4\x84\x17\x69\x7e\xa0\x3a\x45\xe2\xd1\xbc\x4b\xc1\x40\x18\x30\xfc\xd3\x7f\xaf\x96\xdd\x9f\x92\x18\x51\xda\x8b\xbb\xe5\x7f\x75\x7f\x53\x0c\xcf\x56\xfc\xe8\xd6\xec\x1f\x3f\x58\xa8\x38\xde\xe7\x7a\x3b\x5c\x9d\xbe\xd1\x68\x8c\x6c\x21\x9c\x23\x73\x11\xc9\xaf\x25\xff\x08\x44\xca\x60\xde\x76\xb3\xbe\xf1\x4f\x11\xcb\x14\xc5\x4c\x6a\x25\x2e\xc1\x0c\xbe\x0f\x40\x6c\x1c\x89\xca\xf8\x86\x49\x60\xc0\x4b\xea\xdf\x88\xac\xf3\xbd\x6c\xf8\xeb\xb1\x6c\xfc\x1f\x30\xcb\xed\x2f\xe2\xca\x12\x5f\xb7\x2f\xde\xfa\x35\xc5\x85\x47\x02\x2c\x20\xa1\x9d\x66\x1d\x5a\xdd\x5f\xce\x18\x13\x2e\x5a\xf7\x00\xc7\x2b\xa8\x9b\xb1\x70\x36\x81\x94\x72\x61\xfc\x74\x9b\xbc\x4b\x6a\x02\xbb\x04\xfa\x40\x0f\x02\x39\x3a\xdf\xec\x8b\x94\x14\x08\x9a\x22\x26\x57\xda\x3c\xf3\xc4\x9f\x03\x11\x0a\x7c\x31\x47\xa9\xb0\xda\x2c\x69\xf0\xc9\x8a\x10\x8e\x9d\xe4\xc7\xdd\xd5\x98\xf8\x03\x04\x67\x3e\x18\x69\xe3\x2d\x9b\x0b\xb9\x17\x02\x22\xe5\x81\x4d\x5a\xb6\x46\x63\x7b\x52\x8e\xa8\x78\x40\xa6\x8c\x38\x50\x14\x16\x88\x5f\x67\x87\xf6\x8c\x99\x33\x62\x3c\x12\x0b\x54\xa4\xb0\x12\x4e\x5b\x5a\x38\xcb\x6f\x30\xbf\x6f\x83\x4a\xb9\xd6\x7e\x84\xed\xe7\xb9\xa9\xca\x23\x2a\x06\xd9\xf0\xb7\xba\xa0\x91\x71\x97\xea\xc8\xb2\x0f\x7a\x36\xb0\xc9\xf7\xd1\x06\xd0\x20\x7f\x11\xf5\x0b\x96\xe9\x5f\x97\xea\x3c\x00\x9b\x03\x50\x05\x64\x2c\x49\x30\xb1\x0a\x01\x42\x8a\xf9\xe6\x73\x0d\x4b\x71\x6a\x44\x56\x2c\x9c\x10\xd3\xa4\x1f\x67\xc8\x77\x34\x88\x6d\x6e\xa1\x69\x72\xd0\x57\x1f\x0f\xa0\xb3\x21\x1f\xdf\x3f\x3b\x5a\x01\x80\x20\xb9\x7e\xaf\xaf\x7e\x5f\x0a\xdd\x43\x09\xc6\xf3\xc9\x04\x1a\x05\x65\x4e\x2f\xbf\x06\x55\x38\x60\x98\x3d\x5d\x6a\x2c\x2d\x1f\x56\xdb\x80\x91\x0c\xab\x84\xb7\xd9\xf1\x94\xc3\x56\x98\x19\x68\x1a\x9f\x9d\xbb\x46\x5b\xcd\xab\x73\x0d\x7a\x8e\xd9\x91\x80\x01\x63\xc8\xc0\xd6\x58\x96\xc7\xe3\xb9\xc8\x9a\x0f\x04\x2b\xce\x3a\x7e\x26\xa0\xcc\xf4\xca\x95\x18\x32\x58\x9b\x9f\x20\x4e\xe5\xbc\xfa\x1f\x31\x41\xca\xd1\x82\xbc\x07\x85\xd4\x3a\x93\x94\x82\x09\x84\xc6\xf9\xb1\x83\x19\xb1\xcf\x4f\xe3\xd8\xb3\x5f\xc3\x10\x62\x21\xe6\xd6\x01\xb8\x7e\x7c\x6c\xcf\xa8\xac\x38\x78\xa2\xc9\xf1\xdc\x33\x84\x46\xca\xf3\x56\x57\xe5\xa9\x9e\xb0\x5e\x13\x43\x12\x86\x19\xd1\xfd\x80\xe4\x71\xa8\xf0\x37\x5c\x4f\x86\xa6\x0c\x23\x66\x7f\x8a\x73\xe5\x2b\x37\xc6\xb7\x8b\x54\x8a\x3b\xd9\xad\x38\x82\x83\x0f\x8d\x9f\x3f\x32\x09\x3a\x30\x1f\x20\xaa\xfc\xc3\x2a\x4c\xb7\xf7\x99\x52\xd1\x12\x13\x53\x4b\x4e\xa2\xca\xa2\x00\xd5\x38\x2f\x61\x58\xc9\x6f\xe2\x98\x47\x68\x94\xb5\x6b\xa6\xac\x40\xdf\xa3\x60\xaf\x2c\x45\xa5\x2d\xf1\xc4\x68\x37\x33\x49\x24\x50\x12\x1d\x7e\x81\x42\x4d\xd9\x53\xa6\xba\x36\x23\x31\xa4\xe4\xa7\x4a\xfb\x40\x1b\xa8\xa1\x7a\xcb\x8a\xc3\xe3\x27\x32\x0c\xc4\x30\x21\x30\xa0\xab\xb1\x68\xd5\x01\x16\x5d\xd1\xc0\xf4\xdd\x19\x48\x5c\x49\x7b\x5d\xfe\x23\x65\x1a\x77\x19\x0f\x62\x84\xa2\x17\xe7\xe3\xcd\xe9\x2a\xeb\x0c\x03\xc3\x23\x82\xf3\x6a\x6f\x23\x04\x9f\x3c\x21\x67\x51\x62\x06\xfa\x84\x3d\x09\x9d\x49\x03\x82\x96\xd5\x4b\xa6\xe1\xba\x2c\x84\xe5\x9f\x1c\x7f\xd1\xd4\x9d\x87\x59\x91\x35\x19\x9a\x12\x8b\xab\xbb\x6f\xa2\x7e\xb9\x29\xab\x87\x01\x2b\xd7\xc0\xc5\x35\x69\x42\x51\x15\x0e\xd9\x24\x2e\xa6\x5c\x2a\xad\xee\x70\x6b\x82\xb8\x12\xe3\x81\x2c\x8d\x05\x2a\x5e\x9d\x3f\x1c\xb9\xd6\xc4\x3a\x31\xa9\x31\x08\xe8\xb0\x09\x6f\x25\x7c\x49\x87\x11\x49\x88\x5b\x5f\x01\xef\x3f\xca\x06\xaa\x81\xee\xb2\xef\xc1\x4c\xd8\x63\xbc\x2c\x13\xef\xbf\x41\x7d\xad\x45\x4e\x8c\x52\x09\xa3\x5e\x09\xf3\xe3\xd4\x88\x73\x65\x0b\x0c\xa6\x43\xa5\x75\x82\x86\xe4\x5e\x89\xe2\xaa\x72\xbc\xc3\x3f\x32\x31\xa1\x0c\x9a\x7c\x1f\x10\xc2\x2e\xd1\xf6\xa9\xf0\x3f\xad\x1d\x8d\x27\xed\xf0\x14\x35\x26\x20\xd2\x52\xcc\xff\xb2\x0e\x8e\x4f\x37\xf9\x76\x25\x49\xcf\x19\x70\x03\x30\x57\xb5\x41\x83\x20\x12\x89\xdb\x11\x9e\x2a\x38\x66\xe7\xa3\xe3\x0b\x19\x5a\x2b\x34\x20\x14\x8c\x37\x83\xf6\x65\x01\xae\xf2\x6f\xf5\xbf\x5b\xdc\x81\x5d\x49\x2a\x0d\x48\x62\x7c\x9c\xe4\xb1\xd4\x30\x54\xc1\xa0\x01\x4d\x53\x44\x14\xde\x97\x07\x1b\x96\x99\x2c\x09\xda\x9a\xde\x41\xd8\x13\xba\x40\x4d\x27\x1d\x62\xca\xd0\xaa\xd0\x90\x43\xd3\xfa\x4b\x79\x0e\xad\xf1\x30\x7e\xda\x38\xd2\xb8\xb2\x90\x60\x0b\x05\x43\x29\x0d\xbd\xb7\x4e\x83\x84\xe9\x28\xf5\x7e\xf8\xb9\x68\xb7\xff\x01\x4a\x9e\x06\x2c\xb1\xa2\xbf\xcb\x32\x2f\xab\x2b\xf1\x31\x18\x77\x1a\x30\x0e\x48\x49\xb0\x5c\x6f\x1e\x57\x9b\xed\x6e\xfd\xb8\x5a\x3c\xac\x9f\x1f\x77\x5d\x07\x45\xf0\x6c\x7e\xf8\xb8\x44\x7b\xd3\x80\x69\x86\x6b\xc1\x4e\x99\x6f\x22\xef\xaa\x13\x69\xc0\x4c\xaa\x3a\x62\x38\x7b\x5a\xdf\x00\x3c\x88\xee\xc1\xd3\x20\x44\xa2\x6e\x83\xf2\x5d\xed\x66\xb4\xb4\x14\x62\xbe\x83\x8c\xac\x68\x22\x9a\xf2\x36\xdc\xb7\xb7\xd5\xc1\xcb\xb2\x78\x83\xaa\x9e\x46\x9a\x69\x20\x19\x40\xe4\x31\x14\x55\x5f\xa0\xe1\x9b\x21\xc1\x38\xf0\xb2\x12\x56\x54\x86\x2c\xfc\x8f\x29\x12\x51\x0f\xa5\x7d\xbc\xbd\xd0\x4d\x19\xff\x8c\x8a\x6c\xd1\xea\x7b\x59\xbd\xd6\x2f\x9e\xc0\x92\x06\x2a\x66\x88\xdb\xdd\xc1\xaf\x4e\x56\xda\x35\x69\x88\x63\xd2\x7d\x6b\x5c\xc4\x37\x65\xb5\x14\x85\xce\x2e\x80\x66\x34\x00\x2a\xb0\xec\xe4\x56\xe8\x0c\xf2\xd1\x27\x03\x9d\x78\x2e\x52\xcb\x54\x77\x81\x76\x6d\xfb\x58\xb1\xda\xe6\x05\x44\x51\xbf\xfb\xd3\x9a\x06\x00\x21\x82\x97\x34\xa8\x0a\x15\x35\xbe\xaa\xc4\xa4\x24\x88\xa8\xe3\xc2\x68\xbf\xef\x43\xf6\x09\xf4\x80\x92\x80\x33\xd2\xbb\x84\x43\x58\xef\x34\x12\xe7\x2e\x20\x14\xa4\xc3\xda\xed\x6d\xd4\x68\xd2\xce\x38\x9a\x3f\xb7\x8e\x25\x60\x0e\x2f\x41\x09\x25\x1a\x11\x7b\x37\x65\x39\x1c\x23\x42\x65\xc2\x5c\x7c\x7b\x7f\x2a\xbb\xfd\x89\xf8\xbb\x53\x10\x68\x0f\x3b\x7e\xa7\xfd\x41\x1c\x61\x0f\x13\x78\x35\x25\xa1\xb2\x16\xd6\x8b\xa8\xef\xd1\x83\x78\x3e\x4d\x1e\x20\x84\x10\xcd\xdf\xc3\xb9\x79\x11\x12\x8a\x45\xf1\x37\x64\x87\x89\xe5\x40\x49\x44\x6d\x0a\xe6\x61\xbb\x5a\x7a\x16\xdb\x7f\x26\xc1\x4b\x49\xa4\x13\x65\x9d\xf1\xe7\xbb\xa2\xb1\x27\x88\x7f\xcf\x38\x62\x20\x5d\x81\x4c\x6b\x37\xaf\x7e\xd9\x9c\x9a\xb7\x0d\x7e\x5b\x6c\x4b\x49\x1c\x13\x4c\xee\x0a\xa7\xca\x6f\x33\x48\x5f\x59\xcd\x94\xc4\xa9\x7d\xeb\xb7\xb2\x81\x3b\x3c\x3a\x3f\xd7\x32\xfd\xd2\x00\xa7\x24\x96\x29\x82\x48\xb0\x18\x1a\xa3\xd5\x17\xb5\xd0\x94\x24\x42\x86\x5e\x4b\xf6\xc3\xea\x18\x22\x5f\x04\x89\x1c\x43\x40\x34\x49\x18\xf9\xeb\x64\x8a\xfc\xe8\x08\x80\xf4\xa1\xaf\xdf\xd7\xf9\x52\x92\x40\xe0\x89\xf3\x6d\x79\xdf\xd5\x07\xa6\xe1\x46\x1f\x26\x01\xc0\x68\x95\x2d\x10\xa9\x44\xd6\x11\x9c\x52\xc2\x62\x1a\x3a\x90\xe0\xb5\xf8\x98\x2f\x31\xa1\x84\x27\x1c\x8b\x93\x31\x24\xb9\xcb\x0a\x57\x4b\x38\xa0\xc1\xa0\x24\xe5\xe0\x21\x41\xd7\xdb\x9d\xaf\x18\x9b\x0c\x50\xaa\xad\x9b\xb1\xae\xb2\x83\x38\xda\xac\xd3\x6c\xf1\xee\xef\x3f\x48\xaa\x35\x82\x21\x85\xab\x6f\xc1\x7b\xad\x76\xdf\xec\x96\xfb\xd9\xfa\x4f\x8d\xc0\x83\x60\x75\xf7\x44\x83\x2f\x7c\x72\x4a\x04\x31\x78\x1c\x41\xa1\xcb\xaa\x86\x25\x16\x36\x7d\xf6\x8c\xfe\x9a\x90\x69\xda\x89\x24\x4e\x42\x27\xe3\xae\x32\x61\x48\xa8\xb2\x7c\xfc\xcb\x8e\x42\xee\xd9\xc2\x28\x91\x52\xc4\xa9\xaf\x4d\xc5\x85\x81\x52\x2a\x13\xda\x60\x4a\x54\x1c\xa3\x19\x8f\x9f\xc5\xd6\x0a\xce\x66\x83\x28\xd1\x4c\x73\x18\x02\x34\x86\x26\x39\x25\x5a\xf3\x38\xe8\x8b\x07\xb5\x55\x7d\xe8\x9e\x07\x08\x61\x2e\xb7\xee\x3f\x96\x13\x18\xb0\x3c\xe0\x7d\x20\x97\x12\x48\xad\xf2\xbe\xb5\x6c\xea\x21\x59\x3b\x25\xa0\x6d\x50\x08\xf5\xfb\xea\x0e\xde\x40\xd1\x6e\x74\xf4\x69\xf5\x64\x6f\x33\x60\x2c\xd8\xd9\x42\x69\xde\xaf\x2b\xf1\x3e\xed\x62\x2c\xef\x36\xde\xb6\xdd\xfc\x97\xde\x20\xa5\x34\x88\x28\x1a\xde\x6f\xa8\x77\x33\x08\x73\x3b\x64\x8d\x73\xab\x28\x25\x82\x26\xc2\x33\x69\x59\x82\xc6\xd1\xaf\x50\xa2\x42\x64\x47\xf3\xb9\x98\xff\xb4\xe8\x2a\xbf\x6b\x8d\x3b\xd3\x54\x48\x5f\x65\x8d\x34\x8b\xd3\x76\x03\x18\x21\x7e\x78\xfc\xcb\x3f\x69\xc8\x2c\x3d\x6f\x0d\x8d\xcd\x0c\x5f\x3b\x26\x4d\x7c\x18\x12\x4c\xee\x10\xa6\x21\x09\x47\x88\x10\x1b\x4a\x1c\xcf\x11\x1a\x2a\x4d\x5c\x39\x47\x37\x37\xe6\xe6\x2e\x8d\x68\xe2\xe1\xc2\x8e\xc0\xff\x77\x0b\xd2\x5d\x18\x73\x83\x69\x89\xd6\x28\xac\x0e\xa3\xaa\x14\x4a\xe3\x94\x5b\xc9\x2d\xad\x97\xe5\xb9\xaa\x61\x0a\x5b\x99\xfe\x3b\xb3\x14\x69\x42\x13\x54\x8b\x74\xb9\xcc\x75\x71\x05\x2f\x22\x37\xf3\x09\xbe\x71\x7a\x61\x7e\xdf\xa4\x89\x0e\xe2\x5e\x6c\xed\x33\x74\xf3\xff\x9f\xd9\x90\xc9\xf8\x30\x12\x1a\x36\x12\x20\xf7\x0d\xd2\x18\xda\x69\xcb\xce\x23\xc9\xc7\xeb\x98\x32\x65\x73\x59\xad\x29\x8a\xdc\x0c\x93\x9f\x52\x96\x44\xf0\x45\x58\x55\x65\xff\x4b\x3c\x88\x71\xaf\xcc\xa4\xba\x39\x23\x5e\xd6\x37\xc8\x14\x85\x04\x10\xaa\x33\x58\x35\x5c\x82\x42\x08\x94\x0f\x94\x74\x55\xa1\xae\x43\xca\x25\x77\xcf\xbe\x1a\x10\x22\x76\x03\x2c\x65\x24\xb8\x87\x3c\x9c\xa0\x72\xe4\x01\x53\x54\xa9\xef\xad\x39\x26\xc5\x65\x59\x9c\xeb\x9b\xb2\xba\xbe\x30\x34\xa9\xe2\xb6\x0b\x14\x7a\x0b\xa0\xb7\x3d\xa2\x8c\x52\x4d\x28\x5a\x2d\xa8\x9a\xf0\x73\x94\x2a\xdd\x95\x8b\x79\x93\x8c\x6a\x62\x4d\x4f\xcb\xf3\xa7\xcf\x0a\x31\x7a\x39\xa0\x82\x45\x57\xeb\x4f\xa9\x06\x8d\xac\x82\xf0\x0b\x3c\xe3\xca\xf4\x94\x74\x6e\x31\xa5\x40\x92\x4e\x95\xbe\x3d\x6c\xad\x11\xf4\x1d\x3e\xdc\x36\x38\x7e\x02\x48\x15\x9a\x14\xf7\x67\x0f\x00\xa1\xd4\x04\xbc\xa7\x9c\x7f\xaa\x50\xc0\xc9\xc2\x76\xbb\x1e\xc0\xa9\xd7\xde\x42\x67\xe5\x5b\xd6\x6e\x59\x1f\xc3\x6a\x29\xdb\x35\x0c\x52\xe6\xf1\x31\xed\x5e\x0c\x79\x8e\xec\xe0\x5d\x1e\x93\x86\x81\x54\xe0\x08\x1c\xe6\x80\x60\x34\x0c\x40\xa2\x11\xdf\x55\x91\x76\xa1\xb3\x87\xec\xd7\xa4\x38\xa2\xed\x6d\x8b\x6e\xd1\xd2\xe8\x05\xd0\x68\x48\x18\xe0\x09\x82\x0d\x3f\x21\xdb\x88\xac\x06\x7d\x7d\x6e\x7f\xe9\x6e\xb9\x26\x5d\x3f\x61\xb9\x7c\xfc\x00\xde\x8a\x23\xd4\x9e\x12\xd8\xf5\xa1\xb1\x8a\xa5\x8b\x85\x6c\xb3\x2a\x3b\xd7\x3d\x0f\x37\x0d\x43\x16\xe2\x6e\x74\x2e\x5e\xca\x5c\x0f\x68\x8c\x68\x18\x6a\x8e\x08\xfa\xab\x0c\x9d\xfb\x4d\xe6\xab\xf4\x69\x18\x49\x81\x71\xef\x87\xbb\xc7\x81\x0c\xfc\xee\xce\xeb\x38\xd3\x30\x56\x36\x32\xfd\x04\x50\x6d\xe0\x2d\x83\xf7\x31\x40\xc8\x77\xd3\x14\x55\xaa\xd0\xd0\x85\xc2\x11\x7f\xc0\x70\xcc\x13\x63\x91\x99\xbe\xfe\xd6\x4b\x3b\xcf\xc5\x3d\x68\xc8\x78\x1c\x47\x43\xfc\xc9\x67\xfd\xc0\x16\x99\xf6\x1a\xe2\x7e\x4f\xb1\xa4\xb0\xbf\x09\x74\xba\xbb\x70\x9e\x60\x7c\xff\x24\x3e\x5a\xaf\x72\xe1\xe9\xdd\xda\x16\xc3\x94\x43\x8c\x78\x8d\xa6\xe5\x30\xfc\x32\xc0\xae\x0e\x96\x44\xc8\x95\xd2\xb2\x2f\xfd\xb9\x2b\x4c\x39\x99\x34\x29\xb3\x42\x78\x76\x2f\x5e\x9b\x45\xf3\x82\x51\x86\x01\x29\xda\x68\x4a\x4a\x2a\x63\xde\xe5\x69\xa4\x8d\x50\x0d\xcd\x8c\x50\x85\x01\x02\xab\xc5\x4b\xdd\xff\xc9\x1a\x9e\xe3\xf4\xe2\x20\x7d\x44\x43\x08\x63\x26\x9c\x5c\xbb\x15\x4c\xfd\xdd\x3e\x3f\xf8\xa8\x10\x85\xb1\x3b\xef\xf1\x27\x36\xc8\xd4\x7c\xfb\x0e\xd9\x64\x4d\x82\xa4\x18\xbd\x7d\x39\x57\xc7\x4f\xdd\xd4\xd0\xd0\x94\xe8\x8e\x63\xac\x5d\xb5\x57\x99\x9e\x44\x87\x42\xa3\x0d\xc2\x2f\x9f\x44\x39\x51\x84\xa7\x51\x40\x03\x04\x28\xdc\x6e\x97\xbb\xee\x6f\xb1\xad\x0b\x16\x36\x30\x3a\xbb\xe0\xa3\x20\x65\x58\x9d\xdd\x60\x81\xea\xfc\x31\x14\x05\xa0\xb0\x28\xc1\xdd\xe9\x7e\xa8\x0c\x3b\x7a\x91\x28\x30\x09\x93\x5e\x7f\xde\x56\x3d\xa3\xb8\xd1\xb8\x17\x21\x1c\x43\x43\x36\x13\xbf\x13\xc5\xeb\x16\xf2\xfc\xe1\x92\x7e\x9f\x46\x84\x12\x4b\xd3\x66\xc1\xb9\xab\x5f\x59\x3d\x49\x38\xd0\x88\x84\x02\x83\x45\x3f\xd6\xf7\xcf\x0f\xab\xfd\xd5\xfa\xf1\x79\xeb\x07\x81\x44\x31\x22\x86\xb6\x0f\x77\xf7\xeb\x5e\x45\x6f\x14\x4c\xc2\x4e\x36\xfa\x90\x8f\xea\x8c\x66\x47\x8c\x80\xc4\x42\xbf\xbd\x3c\x35\xe5\x6f\xe7\xcc\xf8\x6d\x28\xb5\x94\xb5\x79\xa9\x5e\x91\x56\x61\x5d\x60\x81\xf9\xb9\xd0\x1d\x1d\xc9\xfc\xc0\x86\x34\xc5\x08\xe2\x42\x23\xab\x75\x3d\x3e\x51\xa3\x50\x19\x29\x3b\x6c\x66\x3b\xcd\x27\x2a\x88\xe3\xe7\x88\x02\x2b\x4e\xea\xf5\xf3\x47\x5c\x3c\x34\x8a\xc3\x88\xd2\x4e\x0a\xbc\xfd\x36\xdb\x01\xcf\x8c\x65\x36\x67\xf6\xd4\x3a\xc0\x54\xb6\x80\x46\x49\xc0\xd1\x27\xc0\x30\x66\xf3\x52\x01\xdc\x88\xbc\x86\x05\xf2\x17\xfa\x7b\x24\x3c\x4c\x1c\x49\x18\x66\xd5\x9d\x0d\x0c\xb9\xf8\x98\xde\x2e\x0d\xd1\xca\xc1\x09\xbf\x9d\xcb\xe2\xcc\x0f\x59\xa2\x01\x4b\x1e\x6a\x51\x64\xcd\x07\x3a\xf2\xfe\xc7\x59\x20\xf0\xa4\xdc\xbe\x94\x27\xcf\x73\x34\x1e\x21\x16\xa6\x88\x2f\x7e\x2b\x1b\xd8\x4b\x28\xc0\x64\x2a\x13\xd5\xd8\xdc\x8d\x58\x4a\x10\x93\x69\xc1\xef\x36\x1d\x36\x47\x4a\x35\xc0\xbe\xb4\x17\xc5\xa9\x18\x48\x91\x4f\x7f\x59\xc4\xc8\x90\xf7\x96\x55\xcd\xd9\x0b\x30\x7d\x32\x2b\x98\x10\x58\xae\xb6\x6c\xbd\xe2\xce\xa1\x8c\xd2\x40\xe1\x07\xb8\xdd\xac\x56\x8f\xab\xce\x96\x88\x52\x16\xa2\xf7\x2f\xcf\x75\x56\x40\x5d\x4f\xc1\xfa\x34\x4a\x8d\x94\x49\x0f\x57\x1c\x6d\x40\x91\x48\x28\x16\xa6\x28\x0b\x72\x12\x75\x59\x8c\x75\x33\x07\x2f\x29\x78\xc4\xbd\x69\xd4\xe3\x5e\xbb\x27\x14\x90\x7a\xc9\xce\x87\x6c\xa0\xee\xe8\xdb\xa5\xb2\x3a\x01\xad\xd5\x63\xcb\xc9\xc7\xf3\xd9\x77\xd3\x12\x33\xf4\xe0\xe2\x4b\xbb\x5f\xce\x3b\x1d\xdb\xff\x91\xe2\x61\xda\xb3\xe5\xb7\x36\xcd\xc4\x94\x89\xb4\x34\x48\x9d\x94\xd5\x8f\xf0\x7e\x25\x9a\x26\x1f\x47\x55\x22\x6d\x08\x56\x19\x8a\xbc\x02\xa1\x3f\x26\xfc\x21\x34\x02\x6d\x2c\xab\x04\x22\xde\xda\xa9\x3a\x24\xda\xf7\xbd\x8c\xd2\x91\xfd\x02\x1f\x8b\xd6\xb2\x6d\xae\xb3\xb7\xc1\x57\x18\x4f\x9d\xe1\xef\xc7\x81\xe3\x76\xea\x8e\x41\x0c\xfc\xcc\x6e\x33\x71\x00\x94\x3a\xe9\xbf\xee\x21\x26\x4c\xf8\x34\x26\xc4\x58\x2d\xc2\xb7\xbe\x50\xd5\x41\xa3\xbe\x42\x7f\xd0\x98\xa4\x31\x6e\x1e\x57\xe2\xf0\x82\x05\xa6\xbd\x16\x14\x8d\x69\x6c\xd5\xed\x6a\x7b\xfe\x43\xa1\x27\xc9\x85\x98\x4a\x2b\x60\x03\x9d\xa0\xe0\x24\x59\x45\xe3\x90\x26\x5a\x0d\x0a\x5f\x41\xdf\x94\xd5\x05\xd9\xf9\xf8\x9a\x88\xa7\x0e\x68\x2b\xb4\x35\x54\x7c\x03\x10\x94\x93\x13\xa6\x81\xca\x29\xb1\x97\xd5\xb7\xb2\xf4\xbb\x41\x1c\x73\xe9\xd2\x1d\x75\x53\x95\x1f\x36\x18\x30\xff\xee\xb1\x66\x08\xd6\x73\xc5\x8b\xa2\xdb\x33\xe3\xd8\x30\xa1\x7b\x59\x87\xbb\xa3\x38\xc0\x9d\x37\x53\xe3\x84\xd0\xd0\x65\x6c\x6c\x64\x49\x66\x13\xa7\x28\x4e\x62\x4b\xc6\x51\x3a\x4a\x90\xcf\xa3\xda\x31\xd3\x96\x6c\xd8\x69\x1d\x94\x47\x78\x5e\xed\x10\x39\xf1\xc9\x05\x5c\xa6\x81\x35\x53\xdb\x23\x76\xe9\x45\x03\x68\x9c\x86\x1c\xbf\xa5\x0d\x72\xf4\xf1\xa4\xae\x59\x46\x56\xab\x50\x43\x55\x2f\x45\x81\xe0\xd6\xae\xd0\xf7\x5f\x24\xea\x59\x94\x08\xb7\xff\x9f\xff\x8b\xff\xcf\x7f\x0c\xf5\x46\x3e\xf9\xaf\xff\x09\x61\xeb\x5c\x37\xad\x4f\x5a\x74\xcf\x25\x15\x16\xb4\xbb\x32\xa7\x69\x9d\x24\x8d\x05\x0b\x89\xf6\x4c\x9a\x58\x71\xfa\xfd\x71\xd9\x5a\x61\x23\x98\xcb\x64\x18\x04\x03\x2c\xfd\x7b\x58\xdd\x2e\xf6\xdf\x56\x9b\xf5\xfe\xe1\xf9\x7e\x77\xf7\x74\x7f\xe7\xb5\x1e\x69\x2c\x74\xc4\x3a\x30\x87\x81\x6a\xb5\x59\x5a\x60\x8d\x0b\x28\x67\x65\x61\x39\x60\xa7\x87\xcf\x44\xdd\x65\xfe\x43\x28\x2e\xd1\xad\xb8\x7f\xb8\x1b\x54\xb4\xd3\x58\x81\xc6\x2c\x66\x57\x77\x3c\x54\x8a\xa2\xb1\xe6\x31\x8d\x86\x62\x39\xe8\x60\x8c\x7e\x63\xc8\x3f\x3e\x83\x23\xa0\xb1\x16\x56\xad\xda\xc7\xb3\x50\x1f\x1f\xc1\xfe\xae\x03\xb0\x40\x38\x4f\xb3\x38\x1f\x3b\x55\x47\xdb\x9a\x04\x04\x18\x1b\x14\x5f\xc0\x20\xc8\x35\x7e\xc9\x24\x20\x46\x08\x84\x87\x3d\x3f\x5e\xef\xaf\x17\xbb\xc5\x7e\x39\x30\xb7\x12\x92\xa6\x88\xe3\xf5\x8c\x40\xdf\x86\x55\xc5\x63\xec\xe8\x4c\xdd\x39\x4d\x08\x44\x78\xbc\xc9\x73\x35\x36\x97\x3c\x07\x07\x4d\x88\x31\x36\x3a\x7d\x82\x42\xb7\xcb\xd4\xe6\x49\x3e\xa7\x0e\xa3\x49\xbb\x48\x2d\xd5\x63\xc7\xa0\x39\x5e\x0d\x09\x05\x89\xb0\xe4\xa7\xcd\xca\x8a\x83\xac\xd7\xf7\xfe\x9d\xc2\x20\x70\xa4\x1e\x58\x1c\xe3\xa2\xb3\xf3\xe3\x13\x06\x02\x03\x01\x5e\xe0\xc5\xab\xec\x0f\x4a\xaf\x96\xe2\xf4\xc9\x63\x46\x8c\x62\x85\xc5\x76\x37\x94\x02\xa4\x49\xac\x6d\x79\x08\x9e\x3f\x8b\x61\x99\x09\x4d\x92\x88\x45\x91\x57\x54\xc8\xe1\x20\x74\x79\x0d\xf6\x64\x68\x4a\xab\x0c\x3e\x5b\x66\x45\x93\x84\x71\xb4\xf4\x50\x31\x8f\x5e\xca\x69\xd0\x24\x31\x11\x92\x0b\xfd\x19\xfa\x5f\x63\x81\xd5\x50\x3f\x89\x0f\xbc\x80\xcc\x06\x64\x12\x16\xc7\x88\x4e\x82\x5f\x4d\x25\xac\x9f\x36\x04\x9f\xd1\x84\x09\x1a\xfb\x24\xd2\x16\x23\x10\x58\xd7\xda\x95\x92\xd3\x84\x19\x8a\x45\x0f\x79\xa5\xc6\x1c\xb4\x34\xe1\x01\x15\xee\x08\x74\x3f\xbf\x2b\x27\xb9\xf9\xcb\x2d\xa9\x9b\x61\x3c\x62\xf8\xd3\x77\xbb\xed\xc3\x68\x94\x53\x11\x52\xe6\x6a\x8b\x8b\x9b\x73\x71\xc8\x64\x0e\x57\xa2\x9e\xf1\x72\x92\x54\x0b\x11\x0f\x78\x5e\xf0\x6c\xdd\x36\xe2\x75\x6a\x6c\x26\x22\x14\xba\xdf\xcf\x6d\xce\x19\xf4\x0c\x89\x01\x4d\x44\x14\x12\x24\x6b\x5d\x6c\x6e\x57\xbb\xfd\xf3\xb6\xdb\xb9\x12\x21\x6d\x41\xb7\x25\x83\x87\x62\xc0\x62\xe4\x7b\x80\x44\xaa\x51\x55\xb6\xee\xe3\x72\x7a\x86\x25\x92\x5a\xdd\x28\x6b\x26\x3d\x64\xc5\xa3\x50\x93\x97\x92\xb1\xc4\x85\x05\x85\xf6\xf4\xf4\xbe\x45\x27\x78\x71\xe9\x2a\x28\x86\xdb\x75\xa2\x08\x55\x16\x2a\x9e\x23\x8f\xf2\x5d\x67\xea\x25\x2a\x09\x31\xb4\x68\x35\x91\xdd\x1f\x75\x20\xbc\x94\xe2\x57\xc0\x76\x9a\xe8\x38\x80\x0e\x99\xef\xcb\x95\xeb\xab\x8f\xc9\xb0\x69\x6e\x95\x61\xb6\xdd\x96\x9b\x68\x93\xa2\x67\x8e\xa0\xee\x2d\x54\x6f\xd9\x27\x9a\x7b\x34\x01\x11\x60\x08\xa7\xdb\x9d\x97\x25\xea\x4a\x5a\xf4\xdc\x64\x84\x00\xa2\x74\x58\xc3\x81\x5f\x7c\x86\x46\x82\x26\x60\x42\xaf\xae\xec\x6a\xfd\x7f\x66\x45\x01\xd5\x43\xf9\x06\xc3\x00\x47\x62\x92\xd0\x24\x83\x68\xc3\xda\x18\x68\xf7\xc5\xf9\x31\x61\x01\x4f\x0d\xf1\x2b\x4b\x35\x5d\xf6\x72\x84\x13\x41\xc5\x20\x8b\xbd\x2a\x4f\x2f\x1f\x63\x63\x84\xd1\xd4\xc6\xaa\x2d\xb7\x85\x0d\xdf\x0d\x58\x1c\x28\xa3\xc2\xa2\x3b\x30\x61\x2f\x6a\xb0\xe8\x2b\x91\x7f\x51\x85\x43\x59\x64\xc2\xd8\x33\x49\x94\x99\x05\x6e\x4d\xb9\xe9\x5d\xd7\xd6\xde\x45\xda\xb3\xc5\xe3\xdd\xf2\x69\xb5\xb9\x5b\x5f\xfb\x9f\x8e\x15\x57\xd2\xcf\x0d\x54\x98\x9b\x01\x45\x52\x96\x10\xc0\xc8\xa0\xc3\x9d\x75\xec\x2d\xf3\x9b\x32\x4b\x9c\xd6\x5e\x7d\x96\xc7\x0c\x39\x8b\x3e\x45\x8a\x8d\x7f\x26\x0e\x52\x65\x95\xa8\x31\x53\x76\x75\xce\xf2\x9e\x63\x8d\x32\x46\xb4\xdd\x97\xa1\xd0\x43\x6c\x95\x6f\xa6\x21\xf2\x60\x67\xaa\x1c\x78\x41\xf3\xdf\x95\xeb\x00\x19\xbe\xaf\x76\xcb\x95\xa8\xfa\x2f\xc9\x75\x82\x21\x62\x37\x89\x56\x58\xfa\x66\x85\x49\x5c\x0f\x11\x04\xb8\x15\xdd\x43\x53\x0f\x63\xa4\x4c\x24\x49\xd2\x91\x09\xde\xb7\x9b\xfc\x40\xab\x8c\x32\xc1\xd3\xd4\x55\xe3\xb6\x9b\x09\x78\xef\x6a\xf6\x90\x1e\x0d\x8b\x24\x4a\x3b\x5d\xb4\x66\x8f\xb4\x8d\x9f\x54\x3e\x7d\x9d\x4d\x61\x32\xb2\x8a\x5b\x43\xfd\xbd\x3f\xba\x36\xea\x19\x21\xae\xb2\xe6\xb6\x1d\xf8\x4b\x78\x24\x65\x8a\x1a\x4b\x3b\xec\xbe\x10\x0a\xd3\xff\x3d\x59\xb6\x4c\x69\xc3\x99\x2f\x2d\x6b\x26\x8d\x3a\x0e\xb0\x2a\x30\xab\xd7\x27\x28\x6e\xca\x6a\x04\x77\x60\x5a\x58\x67\x77\xb7\xbb\x75\x99\x72\xd7\x00\xd4\x06\x52\xb6\xcd\x59\x67\x23\x28\x08\x33\x41\x80\x49\x8c\x76\x80\xbe\x75\xc4\x59\x94\x19\x95\x62\x0d\xc7\x76\xb9\x78\x70\x7f\xe3\x01\x91\xb1\x85\x5a\xdc\x15\xbb\xec\xf8\x95\x8d\xcb\x83\x24\x42\xd1\xa7\x5b\x17\x52\xef\xee\xc1\xe3\x00\xbc\x38\x6d\xa1\x37\x1e\x8b\xeb\xcf\x3c\x4e\xb8\xa5\x2b\xb9\x45\x3d\x41\x38\x94\xd5\x47\x9f\x16\x75\x76\x15\xa7\x2a\xc6\x78\xb7\x77\x7f\x6f\x00\x26\x09\xd1\x79\xc3\x97\x47\x01\x84\x36\x55\x5e\x38\x3c\xba\x7f\xb0\x88\x00\x06\xdf\xb2\xfa\x41\xfc\x1a\x10\x3a\xf8\xe6\xd0\x96\x3c\x6c\xe0\x0d\xaa\xda\xc9\x38\xc1\x6c\x25\x25\xe5\x11\x44\x08\xc7\xd3\xd0\x1a\x70\xa7\x81\xe7\xdd\xbe\xbd\x0d\xf7\xb6\xc7\xd2\x23\x80\xae\xad\xf9\xd5\xb5\x93\xc4\x73\xdb\x39\x84\x22\x12\x86\x97\xe7\xe6\x8f\xa1\x7e\xe0\xe4\xb5\x62\x6a\x63\xb2\xa2\x69\x84\x7a\xdd\x65\xf9\xd8\x71\x24\x73\xc1\x63\x1e\xc7\x76\x1d\x6b\x38\x9e\xab\xf6\x2d\x6e\x00\xae\xa1\x38\x1f\xfd\xb3\xb0\xd4\x86\xe5\x6b\x28\xd4\x37\xac\xe6\xf4\x73\x9e\x73\x1e\xe0\x63\x9e\xc4\xc7\xfa\xdc\x20\x5c\xeb\xea\x63\xd6\xc0\xe2\x5c\x5a\xb2\xce\xc2\xb3\xa5\x64\xc5\xa1\x5e\x34\x0d\x1c\x4f\x7d\x7a\x85\x73\x69\x63\x9f\x50\x1c\x2a\xf1\x86\x55\xdd\xf5\x49\x28\xf8\xe3\x0b\x0b\x9c\xa7\xd4\x44\x0e\xf6\xf9\x94\x5f\xca\x96\xff\x4e\x1a\xf7\x93\xc1\x4c\x0d\xe5\xe0\x59\x66\xea\x66\x14\x94\xef\xba\xa4\x42\x74\x0c\x6a\x68\xce\xa1\x40\xc2\x48\x34\x7b\x38\xd6\xa2\xb5\x33\x6d\xc0\xe5\xaa\x2c\x5f\xef\xcb\xc6\xd7\xe6\x52\x2e\xb4\x96\x1d\x3c\x61\x2f\xe7\x83\x11\x5c\x18\x06\x6a\x54\x94\x3a\x5f\xcd\x40\xb9\x64\x09\x86\xd7\x6c\x7d\xe2\x4e\x4f\xb6\x18\xae\xa4\xa5\x6c\x3c\xd7\x50\x7d\x83\x5c\xef\xb2\x7c\x12\xfc\xe3\x4a\xb3\x08\xc3\xd5\x85\x38\xd5\x2f\x65\xb3\x28\xfa\x08\x0e\x3c\x95\xde\x22\xe0\xca\xc4\x28\x7a\x23\xcb\xf2\x35\x2b\x0e\x0f\xd0\x08\x27\x2e\xf4\x1d\x7c\x98\x96\xeb\xc0\xd6\x7b\x0a\xa5\xaa\x33\x5c\xb7\x5e\x06\x14\x5a\x14\x7a\x59\x9e\x4f\xe5\x65\xf9\x9f\xbf\x2c\xd4\x88\x6a\x29\xe0\x7d\x23\x14\xfa\x09\xcb\x72\xb2\xa9\x72\x1d\x83\x53\x42\xac\x9d\x71\x63\xb9\x5b\x3b\xa8\x11\xd7\x90\xa2\x3f\xe5\x5c\xf8\xaf\x83\x4a\x1c\x94\xb5\x59\xfe\x2a\xcf\x95\x2d\xed\x1d\xee\x96\xdc\x84\x04\xd8\x38\x77\x8e\xb5\x41\x59\x71\xb8\x4c\x1e\x73\x13\x0a\x6a\xeb\x31\x3d\x28\x7c\xcc\x64\x6d\xbb\xa5\x41\x0a\x68\x64\x76\x66\xdd\x9d\x06\xb1\x85\x7c\x82\xf9\x4b\x03\x45\x31\xd6\xe0\x74\x09\x7a\xf6\xf6\xd9\xe8\x5b\x1a\x98\x04\x79\x75\x5f\xca\xaa\x86\xed\x4b\x09\x4f\xd5\xe4\x86\x24\x90\xe0\x88\x39\x77\xd9\x34\xd2\x98\x12\xa1\xb0\x3a\xa8\x1d\xb5\x9f\x59\xa1\xcb\x77\xbb\x53\xcd\x17\x57\xd3\x94\x86\x21\x12\x8a\x6c\x4a\xf5\xfa\x24\x4e\x50\x6d\x55\x56\xd7\x65\xf5\x75\x15\x17\x4d\xa9\x53\x9e\xb7\xc8\xcf\x55\xd1\x54\x1f\x0e\x4e\x36\x5a\xec\x29\x4d\x65\xec\x22\x8f\xdf\xcf\xba\x6c\x3f\xb4\xc7\x70\x8f\x5f\x3c\x62\xdc\x2b\xd2\xfe\x7c\x11\xb9\x4d\xe9\xb9\xb6\x24\xb4\x41\x6f\x53\x1e\xba\x3f\xf1\x00\x01\x84\x70\x9a\x64\x33\xd2\x44\x0b\x84\xbf\xff\xbb\x6e\x47\xbb\x99\x6c\x45\xe3\x1f\x65\x12\x58\xef\xb3\x60\x29\x6a\x4f\x2c\x74\x01\xc4\x49\x39\x8b\x10\xe6\x85\xa5\x57\x98\xf4\xf2\x3f\xca\x25\x45\x2a\xaf\x7d\x3b\x1d\x56\x48\x73\xd0\xae\xa5\x81\xfd\x9a\xa6\x41\x8c\xe1\xb0\x0a\x4b\x44\xbf\x06\x23\xa6\x29\xb7\x18\x2c\x47\x64\x60\x83\x10\x03\xba\xe1\xc9\x7b\xa4\x1c\xc0\x71\xb6\x3c\xd9\x15\xe3\xb1\x57\x5f\xe1\xca\x52\xa1\x2d\x79\x8e\x98\x6a\x85\xf9\x76\x00\x61\xe3\xda\x5b\x68\xce\xa7\xcd\xb9\x28\x7a\xe3\x34\x95\x21\xe7\xa4\xa3\xe4\x9e\xd9\x70\x53\x15\x44\x98\x61\xd8\x7f\x80\xa8\x76\xef\x25\xc2\x30\xbb\xd3\x23\x55\x8a\x87\x30\xe4\xbc\xfd\x0e\x1f\x43\xd7\x25\x85\x10\x10\x4a\xf8\xd7\xfa\xe9\xf7\x14\x1f\x34\x85\xc4\x78\x11\x49\xac\x66\x79\x19\x20\xc6\x53\x00\xeb\x95\x5b\x30\xef\xf3\xf6\xfa\xcf\xdb\xd5\xe4\x71\xc1\xc4\x08\x2c\x13\xda\x12\x7e\x88\x7c\xa0\xf0\x4f\x53\x13\x80\xc5\xc5\x1d\x3b\x30\x5c\x6a\x68\xe4\xf9\x7f\xbf\x8f\xef\x26\x02\x6a\x70\xe1\xfb\x34\xd9\x5d\xe1\x59\xa4\xa8\x08\x12\x19\x59\x3d\xa4\xe6\x5c\x15\x77\x45\xc3\xff\xe8\xed\x24\x11\x28\x62\xd5\xc7\xcf\x79\x76\xfa\xa4\x36\x85\x0a\x22\xac\xd0\xd2\x52\x14\xdb\xec\x50\xdc\xf9\xed\x4e\x10\xc9\x30\x16\x6c\xc3\xcc\xb3\x39\xaf\x2f\x13\x8d\x82\x00\xc5\xa4\xb9\x1b\xaa\x41\x45\xf4\x6f\xc0\x4e\xee\x7a\x1a\x28\xdc\x53\x4e\xe5\x7b\xa7\x23\x43\x05\xa5\x01\xa6\xcd\x90\x0c\xd6\x15\x58\xd4\xdf\xb2\xc3\x0b\x20\x71\x6c\xdf\x4d\xa3\xbb\x6c\x45\x53\xd0\x88\x9c\x9e\xaa\x82\xea\x14\xcd\x8e\xff\x3d\x67\xea\xb5\xa3\x76\x77\x8d\x51\x3b\xf2\xed\xd8\x9e\x8b\xa7\x0a\xcb\x52\xbb\x16\x9d\x46\x7d\x9e\x73\x88\xb3\x10\x71\x10\x4a\xf8\x42\x84\xf3\x82\xf0\x9f\x8a\x98\x5a\x68\x06\xe2\x70\x91\x3d\xe7\x8f\x8e\xa9\x67\x1e\x49\x26\xe2\x44\x53\x65\x8b\xf2\x51\x57\xcb\x43\x59\x44\x92\xc4\xc8\xed\xba\xc7\x0c\x52\xaf\x2d\x4c\x45\x22\x22\x34\xf7\xf6\x6f\xb6\xbc\xbc\x69\x17\xe0\xc0\xa8\x16\x2c\x20\xe8\x42\xd6\x22\x07\x67\xee\x0d\x4f\x52\xc1\x22\x1d\x4b\xaf\xbd\x5c\x1d\xd1\xfb\x9f\xcc\x24\x96\x58\x68\x68\xe3\x89\xec\x86\x83\xc6\x24\xc7\x0c\x08\xd6\x8d\x5f\x7f\xe2\xb0\xcf\x0c\x0f\x53\x96\x99\x00\x95\x48\x23\x32\xfd\x49\xcd\x95\x2d\x6c\x2f\x0e\xcd\xcb\xea\x7f\xcf\x22\x1f\x8c\xde\x9c\xaf\x2c\x98\xb1\x3e\x56\x56\x7f\xff\x6b\xe9\x20\xa5\x7a\x57\x6e\x3b\xae\x15\xff\xc4\xdc\xc9\x86\x1c\xb3\x62\x2f\x06\x3c\x76\x54\xf0\x24\xc1\xe8\x8a\x38\x4a\x51\xd7\x42\x97\x55\x3d\x24\xfb\xa2\x82\xf3\x04\x93\x39\x45\xf3\xb2\x29\xcb\x66\x20\x96\xe7\x87\x3b\xe5\x11\x92\x03\xe1\x11\xf0\x90\x15\xa0\x17\xdd\xed\x53\xa0\xa1\x97\xae\xa9\xde\x86\xb2\x68\x54\x08\xc2\xb1\xea\xd9\xb2\xaf\xef\x57\xcb\xf5\xf6\xaf\xed\x6e\xf5\xd0\xb5\x87\x51\x28\xba\x28\x9e\x9d\x4e\xa3\x50\x63\x37\x89\x44\x1a\x46\x96\x3d\xe5\xd7\x5c\x09\x25\x15\x42\x32\x2f\xb8\x7b\xfb\xb4\x1d\x22\xee\x48\x72\x99\x57\xbe\xcc\x31\x0b\x09\x80\x85\x75\x4f\x28\xb5\xf3\xcf\x12\xe6\x42\x09\x1d\x27\x7e\x39\xec\xab\x61\x06\x42\x68\x4a\x3c\x53\x51\x03\x7d\x65\x55\xf7\x4a\x3a\x54\x58\x8f\xb3\xde\x2d\x31\x7b\xd5\x5d\x17\x4b\x5c\x95\xfb\xac\x5e\x55\x6a\x57\x3e\x8a\x26\x7b\x83\xab\x2a\xd3\x87\x49\x78\x5d\x68\x65\x15\xf0\xdb\xbd\xff\x2c\x2a\x9d\x89\xe2\xc7\x45\xed\x83\xd0\xca\x96\x48\xec\xd6\xbb\xc5\xfd\x7e\xb9\x7e\xdc\x6d\xee\xae\x9e\x77\xeb\xcd\x28\xc7\x20\x80\x45\x9e\x05\x64\x59\x66\xc5\x06\x8e\x22\xeb\xe7\x17\xa4\x80\x28\x2b\x9c\x02\xf5\xb2\x2c\x2b\x9d\x15\x73\x4c\x2a\xae\xbf\x61\x12\x65\x15\xb7\xaf\x1f\x60\x49\x0f\x1c\x56\xef\x2b\x48\xb9\x30\x3c\x88\xc1\x85\x7e\xec\x87\xf8\xea\x28\x97\x81\xdb\x12\x7b\xf2\x97\xf1\x00\x49\xca\xb5\xd7\xe4\x40\xb4\xe7\x3f\xc2\xeb\x4a\xda\x1e\x9b\x88\x9f\xb3\x5e\x52\xbb\x5e\xdc\x38\xc8\x30\xd0\xa1\x43\x0b\xdf\xdf\xff\xb0\x84\xee\x61\x30\x32\x47\x65\xc8\x85\x4c\x3b\x48\xc0\xf3\x94\x5c\x83\xca\x30\xb5\x7c\x9b\xab\x9f\x57\x43\x9b\x5d\x86\x26\x46\x56\x75\x28\x74\x57\xfe\x48\x65\x14\x49\xaa\x06\x02\x87\x78\x7c\x7e\x32\x22\x11\xa4\x08\xec\x5a\x80\xca\xfa\x87\x8e\x0c\x41\x4c\xff\x72\xbd\x7e\x1a\xfd\x60\x1c\x70\x14\x18\x81\x3c\x3b\xe2\xe7\xdc\x5e\x2f\x97\x5f\x1b\xc1\x32\x8e\x6d\xe5\x15\x38\x8b\x71\x63\x0f\x96\x01\x1a\x46\xc6\xa9\x42\xa4\x8a\xab\x60\x2c\x9b\x6e\x25\xe2\xaa\x76\x27\x04\xa1\xc3\x50\xa7\x8c\x21\x40\x88\xfd\xfd\x7a\xf9\x7d\x75\xbd\x5f\xdc\xdf\xaf\x97\x8b\xdd\xdd\xfa\x71\xff\xf4\xe4\x77\x0c\x99\x04\x09\x86\xbe\x91\xff\xb9\xd0\x03\x18\xaa\x4c\x48\x64\xb9\x07\x1a\x38\xa2\xc5\xdd\x83\x34\x24\x0b\xd2\x48\x74\xb0\x7a\xeb\x77\x39\x22\xc1\xae\x4b\x1c\x7b\x21\xd1\x75\x95\x1d\x5a\xfb\x65\x99\x67\x3d\xc0\x42\x32\xc3\x71\x1f\x3d\x42\x23\xee\x8a\x7f\x12\xc3\xfd\x64\x7a\x71\x22\x89\xa5\x10\xa8\xcb\xfc\x0d\x9c\xb5\x7b\xf5\xf1\xcd\xab\x42\x74\x1c\x96\xfe\x02\x11\x23\x98\x0c\xc1\xbf\x4f\x50\xd5\x83\xa7\xe2\x1a\x88\x15\x35\xe8\x8a\x0e\x6d\xb0\x68\xfd\xd6\xed\xf0\x32\x0d\xa8\x70\x9b\xe3\x1b\xaa\xbc\xcb\xf2\x3c\xc8\x4b\x7d\xf2\x9c\x29\xb1\x4c\xbd\x35\x4c\x03\x84\x52\x70\x1a\x7b\xbc\x52\x7b\x6e\xf6\x06\xb2\x14\x82\x20\xc5\xb5\x5f\x93\xff\xb5\x99\x5e\x2b\x98\x97\x4f\xb8\x6b\xca\xd5\x8c\x58\x3c\x95\x2a\x4e\x90\xce\xe5\xae\xc6\x32\x99\x9b\x0a\xe0\xef\x0b\x7f\x78\xa8\xb9\x4f\xa5\xe2\xc6\xaa\xdf\xb4\x76\x00\x6d\x66\xb2\x07\x6d\x17\x0c\xd1\x67\xf5\xfa\xe1\x0e\xd7\xc1\x7d\xa9\x5e\x27\xa5\x1e\x52\xa5\x14\xc3\xcf\x78\xa3\x27\xa8\xb6\x83\x49\x02\x61\x84\xd8\xbf\xff\xde\xa1\xe6\xdd\xde\x55\x1b\xef\x4f\x83\xcc\x8d\x04\xa5\x01\x3a\x4e\xd6\x4c\xd9\x33\x7e\x6c\x6e\x4a\xd0\x0a\x7a\xb6\xc7\xac\x2c\x86\xd1\x67\x69\x02\xe6\x58\xdd\xfe\x7d\xae\x9b\x99\xba\x45\x69\x8c\xe5\x17\x36\x38\x34\xee\x1b\xdc\x94\x13\x2b\x47\x05\xa1\x8d\x7a\xa8\x41\xa2\x14\xcb\xc2\x7c\x3b\x30\xe1\xf2\x9c\xbd\x0c\xe1\x67\x71\xe7\xd1\x1b\x28\x12\xdb\x68\x85\x67\x20\xd9\x4b\x51\x67\x6a\x6f\xb1\x63\xfe\xfe\x84\x45\x08\x6e\x3d\x76\x44\x29\x37\x65\xe5\x11\x79\x5d\x27\x6d\x22\x35\xb0\x43\xaf\x11\x44\x57\x56\x57\xe3\x99\xa3\x28\x93\x8e\x9d\xa1\xb9\x01\xb8\x3a\x4d\xbe\xaf\x0a\x03\x12\x7b\x04\xee\x1f\xb3\x58\x03\xd7\x31\x4a\xac\x0b\xb8\x3d\x1f\x8f\x1b\xf0\x46\xb4\x8a\x04\x60\x66\xe1\x1d\x43\x1f\x37\x65\xcf\xc3\xe0\x7b\xc4\x21\x43\x37\x1b\xf5\x8e\xec\xb1\x36\xa2\x68\x98\x39\xd3\x54\xac\xac\xe9\xf2\x98\x15\xff\x16\xcb\xb2\x82\xee\x66\x4a\x26\x1e\xa7\x8e\x16\xdb\x40\x40\xd8\xf7\x49\x02\x89\xfe\x54\x33\xa8\x9c\xdc\x95\xa8\xa2\x74\x59\xee\xa4\x92\x94\x48\x37\x40\x3f\x45\xd5\x55\x5b\x4e\x7a\xb1\x80\xc5\x1e\x47\x88\x65\xc6\xad\xcd\x36\x0e\xf7\xcc\x6f\xfd\x8a\x29\x5b\x62\x70\xcc\x8a\xb2\x1a\x0c\x0b\x83\x88\xeb\x51\xea\x18\xea\x5d\xd9\xf1\x5d\x0f\x0c\xe6\xd1\xc8\xf0\xf6\x49\xdc\x0c\xc2\xec\xfb\x37\xe4\x45\xb8\x81\xa6\xc3\x9d\xab\x94\x28\xb4\x4a\x5a\xc3\xaf\x7d\x9f\x9b\xb2\x72\xce\x7e\xd7\x43\xc4\x08\x7c\x71\x50\xdb\xcf\xc4\x20\xa9\x4a\x21\xc5\x18\xd2\x29\x17\x0a\x3c\xf3\x9e\x07\x7b\x28\xc1\x2c\xe1\xd5\xae\x3a\xc3\x0f\x38\x88\xa2\xe7\x05\xa1\x4a\x72\x81\xd5\xfc\x23\x0e\x88\x8b\x4d\x7f\x3c\xcc\x8a\x18\x1c\xac\xd7\xa2\x75\x06\xc6\xf1\x1a\xa5\x74\x80\x96\xaf\x86\xfc\x67\x59\x8d\x6b\x9b\x95\x8e\x63\x4f\x87\x7b\x77\x3c\x09\xd5\xdc\x67\xc5\x2b\x4c\x3b\xb1\x20\xe8\x0a\x06\x2c\xd8\x74\xf5\xeb\x24\x8a\xf6\x48\x1e\xb9\x06\x4a\x33\xc9\x6d\x71\xd0\xb9\xd0\xb8\xd7\x58\x7c\x61\xd7\x0e\x61\xe4\x4e\x87\x87\xac\xc8\x9e\xca\x32\x5f\xb5\x66\x4d\x3c\xfe\x41\x00\xee\x59\xc0\x37\x0e\x87\xf9\x84\x4a\x26\xf3\xe1\x19\x05\x26\x8c\xba\xa4\xe3\x5b\xd6\x3e\xd7\xdd\xc9\xd4\xa3\x8a\xe2\xf1\x07\x32\xa1\xc4\x9d\xb7\x02\x65\xc5\x13\xa7\x1b\xd1\xf8\x07\x0c\x88\xc4\x51\x2c\xb4\x07\xf9\x32\x2f\xeb\x11\xbd\x38\xd5\x41\x00\x68\x62\x0b\x84\x55\xfb\x8d\x7e\xb2\x6d\xe8\x80\xb1\x48\xf4\xf7\xb1\xb4\xf1\xa3\xdb\xa4\x0c\x23\x71\x0b\xad\x31\x36\xb2\x43\x35\xcd\x9b\xaa\x3c\x2e\xaa\x4a\x7c\x5c\xfa\x70\x97\x9e\xa1\x26\x49\x88\x8b\x6e\xdd\xee\xf6\x9d\x65\xa6\x69\x90\x9a\xb8\xa7\x33\xf5\x99\xfb\x89\x4f\x1d\x8f\xdf\x5c\xd3\xd4\x38\xf1\xda\xa6\xd3\x11\xc3\x30\xe4\xdc\x6e\xa7\xa9\xe1\xb2\xb7\xc6\x26\x32\xa4\x4e\x97\x7b\x04\x7c\xd2\x21\x8d\x39\x32\xe5\xef\xd6\x9b\xd5\xf5\xdd\xed\x1f\xdd\xdf\x53\xb4\xeb\x3a\x31\xab\x4b\x74\x8b\x0e\x59\x82\x78\xd8\x53\xeb\xcd\x39\x3e\xd0\xb1\xc0\x1a\xd5\x21\xe7\x98\x59\x6b\x3d\x8c\xbe\x70\x47\x87\xa9\x2d\xf9\x5f\x56\xa0\xcb\x7f\xc4\x3a\x42\x75\xc4\x62\x5f\x3d\x81\xc9\xbb\x6f\x20\xaa\xa6\xbe\xfa\xb8\x16\xa7\xd3\xb4\x98\x5e\x47\xd2\x6a\xa1\xfd\xc8\x9a\x07\x51\x0c\x2d\x61\x1d\x27\x21\x06\x45\x17\xbf\x32\x18\x6c\xd2\x3a\x36\x60\x69\x03\xad\xda\x9a\xcd\xa5\x4d\x76\x54\xcd\xa2\x08\x77\x16\x03\x58\xd1\x8c\x0f\x32\x14\x83\x9a\x3c\x33\x57\xd6\x33\xbc\x29\x2b\x54\x33\xea\xf6\x19\xcd\x21\xc2\x62\xa2\x17\x51\x5f\x01\x14\x1b\x78\x03\x91\x7f\x42\x71\x4c\x75\xca\xc2\xd0\xd7\xc6\x2f\x9e\x77\xeb\xfd\xc3\xe2\xf1\xd9\xdf\x2a\x4d\x3b\x66\x50\xc7\x8a\x95\xc9\x29\xf2\x42\xa7\xd2\x92\x97\x9e\x8b\x93\x38\xd7\xd0\xb3\xfe\xf8\x76\x43\x42\xdd\xd1\x09\xae\x44\x55\x64\xc5\xc1\x52\x36\xd6\x4e\xa2\x77\x7c\x43\xa1\x53\xa4\x05\xc5\x92\xb6\xf6\xcd\x7e\x64\xf0\x3e\x1a\x68\x49\x43\x2b\x46\xbe\x59\x26\x8c\x7d\x06\x51\x9d\x03\x43\x68\x4d\x2d\xcd\xc4\x05\xa8\xc3\xb7\xc7\x34\xed\xb6\xc4\xa1\xce\x2b\x36\x81\x65\xe9\x19\x10\x8e\xb9\x36\x80\xd0\x47\x50\x57\x16\xfa\xe6\xa8\x46\x5c\xbb\xe9\xad\x67\xe4\x7b\xf3\x76\xd2\x6f\xec\x67\x6d\x8c\x15\x84\x44\xcf\x14\xaa\x26\x13\xd5\xc7\x95\xc5\xab\x4c\x86\x0d\x82\xd8\xaa\xb7\x21\x45\xce\x50\x13\x83\x42\x90\x6a\xa4\x8c\x3c\x22\xa2\x72\x7c\x08\x40\x00\x29\x77\x2a\x0b\x53\x1b\x1a\x08\x57\x84\xfa\xe3\x6e\x0b\x79\xbe\xae\xf4\xe7\xdc\xdc\xe3\x67\x07\x1a\x70\xa4\x23\x68\xf0\xa4\x18\xc0\x95\x81\x2a\x81\xb8\x24\xac\x19\xd9\xff\xbc\x7b\xbc\x5e\xff\xdc\x47\xfb\xd5\xe3\xf5\xb0\x1a\x0c\xa8\xe1\xb8\xb1\x61\x64\x64\x6c\xbf\xbb\x1e\x21\x0f\x90\x53\xa5\xa9\x00\x8c\x1f\x6c\x08\x55\x8c\xd9\xda\xa6\x3c\x1c\xf2\x8e\x39\x76\x7b\xae\x4f\x80\x47\xdb\x68\x29\x78\x0f\x09\x42\x63\xa1\x7c\x55\xa6\x5e\xc0\xe5\x41\x3b\x28\x31\x44\x41\x88\xf5\x01\x7b\x6b\x2c\x5f\xcc\xb9\xf1\xab\x47\x69\x62\x42\x2f\x5b\xd7\x8e\xb6\x6a\xb0\x9a\xb2\x19\xc6\x4e\x21\x32\x14\x6d\x51\x51\x14\xa5\x95\x22\x1b\x61\x85\x20\x32\x31\x62\xa5\x96\xae\x66\xcb\x40\xb5\xf7\x3c\xe9\x1e\x70\xdf\xdf\x2d\x26\x3c\x51\x3d\x03\xdc\xae\xfc\x1a\x1b\x00\xb1\xb2\x8c\x52\xfb\xae\x00\xfe\x72\x27\x86\x84\x59\xc1\xdb\x1e\xf0\x3b\x5b\xb8\x01\x89\x50\xc2\x62\x25\x5a\xcb\x06\x77\xe4\xf6\xf4\x1b\x28\x40\x50\x48\x80\x22\x88\xce\x97\xe4\x09\x99\xc3\xc8\xca\x00\x9e\x10\x70\x84\xa1\x6f\xa2\x81\x7d\x3b\x7c\x98\xf4\x59\x3c\xdd\x7d\x87\x71\x15\x08\x70\xa6\x2c\xb8\x3b\x7b\x73\x34\xfb\xf3\xc5\x56\xc0\x21\x41\xff\xc4\xa2\x47\x30\xf4\xf8\xc9\x67\x4b\x89\xc1\xdf\x77\x2e\xd9\x93\xa8\x9a\x02\x2a\x0f\x60\x1c\x44\xfa\x20\xe5\x56\x18\xd7\xbb\x1b\x57\xff\xfd\x6b\x5e\x9f\x8a\x82\x20\x20\x83\x9e\xf7\x07\xa9\x2a\x3e\x07\x8d\x83\xa0\x90\xb8\xec\x47\x56\xbf\x58\xf8\x73\xbe\xb2\x43\x96\x15\x07\x87\xe2\x98\x5c\x13\x49\xdc\x62\xfb\x02\xb5\xdf\xe6\x7c\xda\x6b\xb8\x8b\x08\x3d\x9e\x8f\x3e\x99\xdf\x7d\x0a\x91\x10\xac\x59\xd5\x59\xdd\xec\x35\xbc\x41\xde\x7a\x99\x9f\x3d\x33\xa3\x91\xf5\x42\xac\x80\xc8\xbd\xe8\xf7\x1e\xc1\x25\xba\xe1\x0e\x10\x76\x35\xe3\x20\x0c\x91\x1e\xfe\x2a\x49\x30\x50\xb2\x5c\x3f\x3c\xdd\xdf\x2d\x1e\x97\xdd\xa6\x20\x74\x1a\x11\x4f\x8e\x98\xc3\x61\x58\x59\x3e\xfc\x42\x02\xac\x8e\x26\x86\xdf\xdb\x3d\xd7\xfa\x29\x9f\x07\xde\x41\x02\x15\xa2\x23\x31\xf8\xab\x3c\x57\x13\xae\x14\xd7\x4f\x91\x14\x9f\xcd\xf2\xce\xba\x9a\x9d\x59\xfb\x15\x14\x70\xf4\x6f\x1d\xe5\xdc\x3e\xab\x73\xd1\x17\xf8\xfc\x53\xc0\x86\xbb\x99\xa6\xca\x0b\x93\xfd\xd7\x59\xe4\xc8\x72\xfc\x05\x08\x03\xb4\x08\x62\xd3\x05\xac\x3a\x03\x6a\x57\xe2\x11\x3d\x28\xe7\x05\x48\x2d\x37\x33\xa6\x3a\x0e\xdb\xec\x50\xac\xab\x83\x28\xb2\xbf\xfb\x2c\x14\x80\x0a\x05\x1b\x30\x3f\xb6\xb3\x6c\x8c\x00\x9c\xe5\x9c\xa5\x00\x46\x72\x6f\xf3\x8b\x0a\xf5\x26\x6b\x5c\x2b\x93\x49\x6c\x48\x84\x0e\xf5\xbb\x17\xa6\x1b\x52\xc9\x8e\x4b\xe5\xc0\xc4\x51\xcc\xa7\xc4\xca\xeb\xa7\xad\xd7\xbd\x19\x6f\x2b\x26\x11\x18\xc0\xa8\x0e\xd2\x6e\x48\x93\x1f\x4e\x03\xf0\x65\x69\xd3\x7c\xdd\x4c\xda\xae\x3b\x30\x8c\xb0\xc8\xdf\xed\x4b\xf9\xde\xf3\x01\x53\x13\x44\x34\xf2\x88\xe0\x2a\x53\x30\x34\x5d\x0c\xa1\x9c\x38\x22\xbb\xe6\xee\xfa\x7e\x92\x49\x35\x24\x0c\x88\xd5\xa2\x5e\x2e\xc7\xd7\xc5\x29\x2a\x03\x5a\x05\x0f\xb0\x69\xdf\xd6\x7d\xa7\x9f\x6d\xf3\x5f\xcf\x26\x13\xca\x10\x29\x68\x51\x5d\x7f\x21\xdb\x6d\xb6\x58\xbf\x41\x55\x65\x53\x04\x8d\x89\x88\xb1\x1c\x77\x2e\x9f\xba\x41\x99\x81\x49\x9f\xc8\xe6\x01\x2d\xde\xda\xb3\xeb\x5c\xce\x4a\x13\x81\x42\x4a\x96\x4e\x69\xdd\xff\xdd\xc4\x68\xf5\x59\xad\xdd\xcd\xea\x66\xb5\xd9\x2c\x3c\xd0\xdf\xc4\x54\xf8\x8c\xf7\xa2\x69\x5c\x44\xdf\x46\x3c\x9e\xa0\xfa\x09\xd9\xdd\xf0\x5c\xec\x1f\x2b\x66\x86\x98\x81\xb7\xf1\x5c\xd4\x65\x3e\x8b\xf1\x36\xb1\x00\x5f\x5c\xbc\xec\x78\x9a\xb3\xb2\xf0\x07\x9e\xef\x26\x25\xe6\xba\x9f\xbf\x8f\xbe\x4f\x6c\x94\xd2\x7d\x8a\x74\x57\x3e\x1c\x8e\xcd\x0e\xc4\x27\xdb\xbc\x49\x62\x8d\x9e\xf0\x55\xd6\x60\xed\x40\xf6\x3b\x49\x45\x6a\x92\x54\x30\x87\x95\xbb\x3a\x57\x9e\x7a\xbc\x1e\xd9\x0c\x26\x51\x21\x56\x79\xb4\x13\xf2\xa2\xd0\xd0\xb0\x80\x5a\xbb\xa4\x11\xaf\x5e\x7a\xad\x6b\x23\xdc\x61\x8b\xd4\xeb\x6e\xb7\xb4\x4b\xd4\xb7\x45\xc2\x70\xcf\x54\xd1\xae\xff\x71\x28\xc2\x30\x07\x56\x91\x8d\x5a\x35\x2f\x9b\x3e\x0a\x69\x78\x68\x55\x27\x4f\x65\x99\x6f\xcf\x72\xf2\x79\x04\x48\xed\x04\x77\xbc\xb2\x00\xba\xc4\x7d\x02\xc1\x77\x34\xbc\x0f\xbe\x6f\x77\xcb\xeb\x8d\x29\xab\x2b\x84\x00\x38\x49\x73\x1b\x7c\xf2\xc6\x86\x91\x71\x64\xcb\xb6\xbf\x2d\xb6\xab\x3d\xdd\x3f\x6d\xee\xba\x33\xc4\x48\xc7\xe4\xf7\x70\xf7\xb8\xbf\x7b\xfc\xb1\xda\xee\xf6\xdb\xe7\xa7\xa7\xf5\x66\xd7\xf5\x48\x59\xe0\x4a\x17\x1d\x0b\xdf\xf8\x79\x54\x94\xe2\x89\xab\x41\x21\x8c\xd0\x52\xb9\x8c\x5f\x4e\xb1\x58\x5b\x31\x4f\x5b\x70\x5d\x89\x42\xbd\xc0\x9d\x79\x04\xe8\xc9\x41\x8c\x26\x82\xa9\xce\x39\xdc\x4c\x80\x07\xbe\x13\xb7\xea\x3a\x4d\x09\x2e\xfe\x89\x64\xbd\xdd\xf8\x6b\x69\x9c\x8a\x8e\xcd\x29\x78\xd4\x99\xd7\xae\xfc\x64\x12\x82\x32\x3c\xea\xb5\xd1\x9e\x8b\xac\x99\xfa\xbb\xc6\x10\xcb\x4a\x88\x89\x83\xfd\xe9\x62\x4a\x19\xca\x31\xdd\xb6\xef\xf0\x5c\x1e\xbf\x39\x17\x9f\x31\x26\xd4\x16\xf0\x9b\x1d\x0a\xd0\x57\x1f\xdb\x8f\xba\x81\xe3\x98\x1e\x0e\xbb\x86\x41\x48\x23\x5b\xf8\x0a\x45\x5d\x56\x8b\x42\x2f\xcb\xdf\x94\x89\x87\x41\xd8\x2e\x92\xee\xcc\x73\x47\xbe\x6f\x13\xb1\x27\x7c\x42\x8b\xba\xac\x3c\x80\xef\x8f\xf1\x3d\x40\x13\x7b\xb8\x9c\xeb\x06\xf4\x73\x91\x21\x06\xf6\xea\x3c\x4f\x8a\x1c\x06\x11\x03\x34\x08\x10\x06\x90\x9f\xd5\x6b\xf7\x93\x71\x18\x21\xa4\xb4\x80\xf7\x1f\x03\x86\x42\x92\xfc\x2b\xfc\x9f\xb1\x48\x45\x77\x81\x61\x81\x7f\xfe\x09\x43\x90\xef\xa2\x12\xe4\x48\xdf\x63\x79\xe0\x7c\x6e\x73\x36\xda\x15\x06\xb1\xb6\xec\xcb\xd6\x1a\x79\xaa\xca\x63\x39\xf0\xeb\xd1\x74\x7f\xc8\x0a\x0f\x94\xb0\x41\xa8\x19\x7b\xe9\xeb\xff\xe7\x7e\x2b\x49\x0d\x6e\x27\x7b\xac\x5b\x9e\xd9\x71\xc3\x80\xd1\xc0\xd6\x42\x60\x04\x03\x57\x71\x0e\x15\x46\xa3\xbc\x7f\x55\xfb\x91\x64\x61\x82\xb8\x87\x6b\xc8\xb7\xa5\xca\x44\xee\xad\xf2\x29\xb1\xe0\x30\xe7\x1f\x06\x2c\x0a\x70\xe3\xda\x57\x50\x9f\x8f\x80\x05\x06\xe3\x8f\xc7\x24\x47\x52\x43\x9d\xd5\xc7\xac\xb6\xdc\xf6\xeb\x93\x2d\x57\x9d\x3c\x2f\x4f\x00\xad\x8e\xac\xb6\xce\xa8\xa3\xa7\xf7\x8f\x28\x1c\x68\x6b\x51\x15\x65\xae\xfb\x90\x4c\xdb\xa2\x11\x8b\x62\xe9\x52\x26\x77\x15\x44\x20\x7a\x7a\x7f\x04\x2d\xf2\xe7\xc2\x39\xba\xe3\xa7\x14\x21\xc1\x38\xc0\x66\xb5\x5c\x6f\xae\xe7\x04\x98\xff\xc9\xa9\x1f\x06\x22\x35\x68\x90\x3e\x17\x2a\x1f\x1a\x26\x61\x20\x74\x84\xc9\xf9\xb7\xb2\x81\x0b\x03\xb5\x3b\xbf\xc3\x40\x92\x14\x59\x99\x91\x66\x20\x2b\x6a\xa8\x9a\xbd\xe3\x79\x04\xa1\xfd\xdd\xa4\x56\xa9\x0b\x3f\x7f\x83\xaa\xb4\x8a\x82\xf5\xe4\xa5\x94\xab\x58\xbc\x2f\x0f\xcf\x36\x78\xe4\x2f\x57\x49\x88\x71\xef\x3d\xba\xfe\xbb\x32\xcb\xa1\xb9\xc9\xcf\xf5\xcb\x1f\x17\xbe\x42\x18\x68\x4a\x31\xbc\xb6\xfc\xb9\xfd\xe2\xfc\x0c\x03\x2d\x89\xe1\x9d\x94\x65\xd7\x75\x74\x2f\x48\x03\xe9\x34\x03\x76\xd9\xe9\x9f\x80\xec\xc3\x00\x0c\xf5\x64\x6c\x5e\x22\x13\x8d\x5c\xff\x32\x86\x0a\x1c\x8b\xfd\x67\x18\x29\xdb\x8f\x04\x4c\x21\x01\xd7\xdd\xf2\xba\x17\x70\xf1\x6d\x8a\x62\x74\xf0\x5a\x64\x35\x74\x7f\xa5\x91\x02\x3d\x30\x83\xef\xbb\xea\xc3\xb6\x0d\x20\xf5\x02\x83\x42\x35\xd7\xd0\x60\x42\xac\x6b\x17\x02\x51\x70\x75\x56\x1c\xf2\x8e\xcf\xa9\x23\x64\x0d\x09\x55\x01\x72\x5f\x74\x3a\xc0\xee\xef\x21\x93\x48\x22\x20\xcf\x59\xae\xbd\xd9\xb5\x15\xb9\x3d\xfe\x86\x85\xb0\x73\x53\xd3\xc5\x87\x43\x12\x72\x40\x2b\xd9\x49\xbb\xe2\x01\x7c\xff\x57\xf7\x23\xa9\x0a\xf4\x80\x9c\xaf\x3d\xf2\x2c\x1b\xd5\xec\xbc\x26\xa1\x0c\xb1\x42\xe2\xba\x12\xef\x5d\x34\x2f\x24\x21\x40\x6c\x5d\xba\xba\xe9\x9d\x67\xd7\x18\x51\x4a\xa0\x77\xce\xae\x3b\x27\xf7\x0b\xbd\xab\x90\xc4\xc2\x6a\xe8\x1c\xb0\x4a\x7e\xfb\x22\x2a\xb0\xf5\xf8\xf5\xda\x2c\xaa\xe6\xfd\x62\x87\x21\xb1\x30\x18\x20\x6d\xbd\xe2\xa3\xa8\x5e\x07\x3b\x03\x89\x8d\x3d\xe3\xda\x55\xa7\xbf\x67\xea\xb5\x34\xc6\xb7\x25\x51\x1c\x82\x27\x96\xca\x14\x90\xc9\x7d\x99\xe0\x7c\xf8\xf5\xb7\xf8\x25\xbf\x4c\xbf\x85\x84\xa9\x08\x2d\xc0\x0a\x30\xa6\xb7\x28\xb2\x63\x17\x4c\xf2\xf8\x8a\x6e\xb1\x13\x1e\xa7\x88\xd5\x97\xa2\x51\x2f\xed\xec\xb2\xc9\x8a\xcf\x7c\xe8\x90\x70\x19\xc5\x2e\xf0\xf5\xa3\x6c\xa0\x79\x2e\x1a\xa7\x24\xca\x5d\x8f\x54\x46\x9d\xe8\x2c\x54\x35\x16\x67\x8d\x1f\x31\x85\x18\xb7\x85\xce\xa0\xb0\x81\xa9\xf1\x62\x11\x41\x60\x63\x83\xbe\xd3\x0f\xa8\x9b\xae\x7a\x73\x7c\x43\x11\xca\xc0\xb2\x55\xb5\x76\x2f\x7c\x1a\x7c\x09\x89\x50\x0c\x17\x94\x7a\x29\xcb\x1a\x9e\xc0\x7d\x4b\xff\xec\x92\x58\x5b\xe7\xbe\x3c\x6c\x91\xed\x6b\xb8\x11\x0f\xf7\x1a\x22\x43\x8a\x96\x55\x3b\x66\x3d\xfd\x51\x48\x24\x68\x54\xbd\xec\x39\xe0\x3d\xef\xd6\xfc\x03\x29\x6a\x10\x2a\x6c\x00\x36\x20\x3b\xbb\x3a\x24\x8a\x29\x9f\xc7\x76\x55\x94\xce\x5d\xfe\x40\x48\xf9\x2c\x48\x3e\x24\x40\x54\x1a\xf5\xb5\x1e\x23\x50\xc0\xe4\x97\x81\x80\x72\x6a\xdb\x0f\x5e\xaa\x19\x67\x7b\xdd\x97\x46\x74\x4b\xc9\x04\xa1\x51\x7d\xfa\xef\x78\x3e\xb6\xd6\xd2\xf8\x86\x26\xb2\x1e\x6c\x2e\xea\xe6\x4e\xf7\xbc\x65\x21\x31\x69\x88\xb4\xe0\xf6\x18\x19\x39\x5f\x5f\x17\xa8\x9f\x7b\x16\xdf\x90\x18\x19\x22\x68\xe4\x69\xb3\xda\xe3\x8e\x72\xfb\xb0\xd9\x5b\x6f\x72\xb9\x78\x72\xbf\x45\x03\x92\x24\x9d\x81\xf8\x8c\x50\xd9\xcf\x72\xb0\xe3\x01\xa1\x41\x12\x62\x10\xbd\x6a\xb7\xe0\xeb\x32\xcf\x45\xf5\xff\xe3\xec\xcb\xba\x1b\xc5\xb5\xfd\xbf\x4e\x3f\xf4\x03\x68\x00\xf1\x68\x3b\xce\x70\x2b\xd3\xb1\x9d\xaa\xea\xff\x59\xbd\xbc\x84\xb4\x95\x70\x0a\x83\x1b\x70\xaa\x7c\x3e\xfd\x7f\xb1\x25\x31\x99\xa4\xfb\xde\x97\xae\x5e\x41\xc6\x18\x84\xb4\x87\xdf\x50\xdb\xc7\x08\x3f\x27\xf4\xa3\xe0\x77\xfb\x8f\xff\x64\xcc\x51\x29\xc9\xe5\xcf\x2b\xab\xf2\xff\x77\x86\xaf\x94\x84\xb2\x53\x04\xc5\x76\x90\x6b\x1c\x62\x64\x3b\xcb\x3e\xa2\x24\x34\x06\x81\xe7\xbd\xeb\xbb\x05\x53\x7e\xf4\x13\x67\x77\x22\x42\x42\x89\xf4\x9d\x53\x91\x8e\x6e\xd0\x28\xb6\x22\x24\x62\xa9\x57\xd7\x2e\x0f\x87\x0c\x49\x94\x53\xdb\x05\x4a\x88\x88\xc5\x90\x46\x7b\xe1\x53\xf3\xef\xe8\x4f\x3f\x54\xdb\x24\xba\x9d\x22\xd8\xcc\xdf\xcb\x30\xf2\x4f\x8e\x1a\xc0\x0a\x83\x94\xe3\x89\x45\x78\x18\x21\xa1\x44\x97\x8b\x31\x1c\xbf\x3b\x9e\x68\xd7\xc5\xda\x42\x9e\x4b\xdf\xc2\xea\x7e\x08\x27\x14\xf9\x82\xb6\xd6\x8c\x10\x52\xeb\x68\xfe\x11\x8a\xc5\x7f\x2e\x92\xb8\x00\xdb\xd7\x02\x01\x98\x56\x34\xd9\xd7\xd7\x86\x64\xe1\xff\xdd\x13\xe0\x69\x80\xeb\xc7\x8d\x3e\x56\xab\x8e\xa7\x48\x49\x14\x44\x46\xf9\x7b\x5e\xe6\xba\xfc\x69\xf9\xbc\x03\xf4\x3f\x25\x51\x18\xa3\x2c\x55\xfd\x33\x6b\xd4\x9b\xd5\xbd\x1b\x9f\x3e\x72\xca\x24\x96\x76\x77\x84\xaa\x39\x8f\xcf\xe0\x1a\x34\xd0\xbc\xdd\x15\x7b\xff\xd7\x98\x44\x48\x98\xf7\x59\xa6\x55\x77\x98\x48\x5e\x8d\x6f\x51\x2c\xa8\x54\xc3\x7c\xec\xf5\xad\xfb\x12\xa1\x22\x6b\x5e\x84\xdc\xdf\x47\xf8\xd9\x35\xd5\xc6\xf5\xc4\x0e\xf2\x31\x99\x7f\xc2\x58\x45\x1c\x78\x97\xf9\xa9\xcd\x9b\x7f\x64\x53\x13\xcf\xcf\xa3\x61\xe2\x35\xe7\x3b\xa1\xa4\x7b\x30\xcd\x5d\xe1\x18\xbd\xed\x76\xec\xaf\x55\xd2\x18\xd3\x8f\x6d\x51\xfe\xd4\x50\x2c\x8c\xe9\x9a\x7f\x94\xa4\x51\x82\x20\x1c\x38\x64\xcd\xda\x57\x55\x29\x49\x75\x6a\x79\xfd\x39\xc8\xca\xa3\xfc\x16\x85\x9e\xf6\x8e\xfe\x1d\x46\x7f\x7e\x2a\x60\x42\x89\x22\xc4\xd2\x6d\x06\x6e\xd1\x2b\x39\x01\x2f\x51\xa2\x89\xc6\x4e\x47\x1b\x9b\xdf\xca\x7a\x95\x15\x7a\xe4\x99\x46\x89\xe6\x11\x82\xda\x9f\x1e\xd7\xfb\x3f\xd6\x8b\xcd\xfe\xcb\x7a\xfd\x7c\xf7\x78\xe3\x8f\x43\x64\x17\x51\x59\xd7\x70\x48\xf3\xf3\x0e\xea\xee\x67\x42\x1c\x63\xe0\xb7\xbe\xb9\xd9\xee\x77\x4f\xfb\xdb\xc5\x6e\x75\xbb\x0f\xb7\xb7\x9b\xbb\x87\x6e\x7d\x05\x13\x22\xd0\xd4\x00\xec\xab\xa1\x17\x98\x3b\x6e\xb8\x46\xb8\xed\x42\xbf\xa3\x3f\xb2\x3c\x1f\x3b\x4d\x66\x4a\x0c\x10\x63\x2c\x6f\x10\x95\x52\xef\xcb\x9f\x03\x4c\x3e\xa5\x01\x37\x58\x3d\xfd\xd7\x09\x01\xdc\x6f\xdd\xdf\x65\x2a\xc9\x50\xa1\xbb\x5f\x64\xba\x11\x0a\x6f\xcd\x3e\xeb\x74\x09\xbd\x1b\xe6\xec\x1b\x48\x03\x2d\xa5\x25\xc8\x3e\x15\x17\x0c\x72\x4a\xc3\x30\xa2\x8e\x38\xb4\xac\xe4\xa0\x01\x30\x0c\x03\x68\x48\x6c\x4b\xc1\x54\xe5\xe1\x01\x0e\xa5\xdb\x98\x85\x8f\x97\xda\x05\x1b\xeb\x4c\x37\x5e\x5b\xdb\x5f\x2f\x89\xc2\xd4\xe2\x35\x4f\x45\x73\x5e\x0c\xaa\x6d\x94\x92\x94\x93\xc0\xa3\x62\xd0\x9d\x63\xd5\x35\xa8\xba\xc9\x40\xdb\x6f\x6f\xdf\xe1\xf2\xd4\xd0\xab\xb2\xf0\x91\x03\xa5\x3c\xc5\x90\xf3\x26\x2f\x53\x53\x16\xe3\xaf\xa5\x89\xf4\x7a\xad\x8f\x80\xc1\xac\xed\x5a\x4e\x4e\x6d\x34\xaa\x6e\xb5\xef\x0c\xf3\xb5\xa6\xc9\x18\x46\x42\xc4\x79\x2c\xaf\x3f\x72\x27\x14\xbf\x4f\x3e\xc1\x09\x06\x9b\x57\x8e\x46\xec\xaf\x89\x09\x9b\x93\xf5\xc5\xfe\xbb\x76\x43\x9f\xab\x2f\x51\xca\x64\x84\x1c\x9e\x9f\x6f\xb2\xf9\x56\x9e\x72\xed\xf9\x5c\x57\x17\x78\x7c\xff\x89\x94\x68\x4b\x8f\x58\x9e\xaa\x62\x86\xb2\x48\x29\xd3\x1c\x50\x34\x45\x67\x56\x96\x73\xc6\xb7\x72\x18\x8b\x50\x1e\x07\x58\x42\xda\x2c\x76\x6b\xe2\x7f\x47\x4c\x05\xf6\x0c\x37\xa0\xca\x77\xa8\xce\xff\x3a\x95\xd5\xe9\x70\x89\x48\xf5\xc3\x59\x84\xfc\x91\x6d\xd1\xce\xf5\xae\x12\x42\xe3\x44\x61\xa2\xbe\x05\x55\x41\xf3\x58\x36\xe0\x89\x8a\x93\x6d\x7a\x10\xc8\xb7\xab\x17\x96\xa8\xb2\xa9\x3e\xbf\x05\x53\x07\x17\xeb\xcf\x65\x9e\x4d\x05\x15\xc8\xd2\x48\x65\x55\x65\x50\x0d\x94\x46\x28\x15\xcc\x68\xfe\xa1\xd1\xcd\x4b\xa1\xe4\xf1\x08\xfa\x72\xeb\xf7\x3f\x56\x28\x82\xb0\xcb\x37\x59\x2f\x1a\x17\xb9\xcc\x87\x1d\x54\x68\x8d\x5d\x71\xa9\x0e\xdd\xb7\x1b\x99\x76\x82\x09\x03\x26\xcf\xf8\xfa\x93\xc8\x18\xe6\x45\x52\x65\xb1\x2b\x5d\x7d\x6d\xd3\xbb\x26\xb7\xf3\xdf\x9a\x39\xbe\xa4\xd9\x5f\x3b\x99\xfb\x0d\x80\x4a\x1d\x21\xf8\x63\x79\xfb\xb0\xbc\x7f\xf1\x7f\x4d\x23\x8b\xb1\xf5\x49\xec\xfd\xfa\xeb\xfa\x7e\xdf\x3d\xf1\x54\x83\x71\x2f\xaa\x55\xa0\xb9\x10\x66\xa5\x34\x35\xc4\xeb\x53\xf7\xf5\xfa\xa9\x16\x02\xa5\x4a\x75\x3f\x71\x63\x31\xdf\xd5\x1c\x19\x9f\x52\x2d\x02\xee\xbc\xa4\x1a\x99\x15\xf5\xa5\x36\x03\xa5\x5a\xc9\x98\x0f\x7c\x92\x30\x23\xc5\xbb\xcc\x7e\xff\x98\xf5\x49\x29\x84\x16\xfb\x64\x29\x53\xf5\xba\x17\xb9\xa6\x14\x4c\x82\x4a\x79\xba\x92\x59\x31\x60\xf0\xb4\x47\x20\x74\x36\xf7\xdb\x1f\x59\xf1\x64\x5c\xe9\x6e\x12\xbb\x32\x12\x30\x6c\x14\x36\x53\x99\xee\x27\x33\xf5\xea\xf2\x9f\x50\x0c\xa3\x24\x47\xc3\x1c\x24\x26\xc3\x06\x91\xbb\x0e\xc6\x82\x18\x89\x0a\x79\x56\x37\x43\x1d\xe7\x8b\x90\x6c\x4e\x1b\x85\x32\xce\x8c\x6d\x13\x36\x27\xf5\xe3\xa9\xd8\x36\xa7\x63\xa6\x87\x8b\x27\xe3\x92\x4a\xa7\x12\xb0\xfe\xa5\xfa\x05\x9b\x71\x2d\xa9\xb5\x99\x7c\x7d\x6e\xb3\x5e\x5c\x53\x51\x72\x64\xb8\x5b\xb0\x88\x5a\xb5\xd1\xa2\x6c\x32\x73\x7e\xfe\x14\x73\xd3\x7d\x44\x21\x89\xcd\x0b\x31\xad\x77\xb7\xf3\x11\x90\x1f\x0f\xd6\xfe\xa7\x71\xba\xdd\xdf\x26\xd2\xb9\x94\xc5\x9c\xc6\x16\x52\x73\x1e\x92\xb2\x27\xe7\x89\x13\x2b\x21\x6d\xdd\x2e\xc4\xfa\xfb\xb6\xcc\xf5\x7e\xe0\x1b\xe4\x7f\x7a\x2c\x09\xd7\xbd\x1c\xf4\xae\xe7\xfe\x52\x26\xa4\xc2\xe6\x1c\xa8\xd2\x82\x4f\x47\x5d\x25\xca\x12\x6a\x82\xa1\x43\x43\x3d\xc4\xc3\xb9\x31\x92\x28\xec\x8c\x38\x6e\xf4\x44\xa2\x97\x32\xc9\x23\x2b\x43\x62\x01\xbf\xb8\x2e\x3c\x4b\xcf\x9a\xa4\x2c\x65\x22\x72\xfb\xf8\xd3\x11\x0a\x2b\xf6\x3d\x79\xb3\x46\x7b\x3a\x4b\x13\x89\x1d\x8c\x43\xe9\xd1\xbf\xa3\xc2\x16\x4b\x53\xeb\x04\x85\xa5\x4b\x85\x72\xfc\x75\x73\xd2\x50\x4c\x67\xaf\x82\xc8\x3e\x6e\x74\xe7\x3a\x96\xf5\x47\x1c\x90\x69\x55\x9b\x69\x61\xc5\x9c\x4f\x85\xb2\xc4\xe0\x6b\xe8\x22\x1d\x06\x34\x08\xdd\x69\x1f\xe0\x55\xa6\xe5\xaf\x8f\xba\x03\xee\x03\x86\x08\x6a\x55\xa2\x8a\xac\x7e\x1b\x58\x6b\x8e\xb2\x24\x66\x84\x44\xea\xed\x8f\xb3\xc2\x12\xbd\xfb\x3e\x1e\xf0\x08\xa1\x3f\xdb\x63\x59\xe6\xa3\x37\x8e\x93\x40\x92\x0e\xbe\x3b\x90\xd7\xba\xc2\x72\x9c\x45\x3c\x65\x75\x3f\x1c\x58\xea\x0a\xb4\x0b\x63\xb2\x3c\xfb\xc8\x78\x9d\x72\x1a\xc4\x26\xed\x3a\x19\x08\x35\xba\xa0\x61\x50\x4e\xb9\xc4\x6e\xd0\x73\xf6\x0b\x72\x27\x3c\x72\xea\xc9\x31\xc2\x0f\x93\x56\x69\xe0\xaf\x13\x9c\xba\x7c\xc6\x1f\x33\x11\xfe\x84\x36\xa4\xbe\x81\xc6\x87\xf1\x57\xa9\x1f\xc0\xb8\x46\x79\x89\xdc\x55\xf7\xba\x55\xeb\x52\x8c\x9e\x72\x96\x58\x86\xe5\x2b\x34\xe8\x56\x8b\x25\xde\xd1\xb3\xe5\x0c\x52\x1c\x52\x95\x6a\x55\x56\x30\x7e\x25\x38\xa7\x01\x56\xcf\x2c\x5b\xe4\xc9\xcc\xbf\x9e\x3c\xa2\xa1\xd4\xbd\x45\x4a\xef\xb9\xf5\xdb\x64\x9c\x14\xd2\xbf\x61\xd9\xc8\x6a\x86\x72\x11\x58\xb4\x71\xe7\x14\xf6\x11\xb8\x68\xf8\x76\x70\x41\x84\x60\x7d\x1f\xdc\x3a\xe3\xce\x05\x17\x6e\x7c\xc2\x05\x6e\x7f\xdf\x9f\x17\xc8\x48\xf8\xc4\xca\xda\x7f\x22\x52\xb8\x43\xbb\x15\x45\x59\xcb\x18\x7f\x30\xb1\x16\x55\xcf\x55\xa9\xaf\x86\x0b\x01\x4f\x8c\x25\x40\x5d\x4f\xbb\xd7\x94\xcb\x36\xdc\x76\x81\x01\x98\xc6\x93\x43\xfd\x51\x11\x60\x69\x19\x1b\x1e\xef\x65\x03\xdb\xa3\x3c\x1c\xb2\xe2\x75\xf1\xda\xee\xaf\xdd\x57\x4b\x43\x10\xee\xb8\x91\x0d\x84\xbe\xb6\xc5\x53\x42\x89\x33\xfc\xe8\xb8\x0c\x70\x91\x02\x76\x83\x23\xc4\x7e\x65\xaa\xc4\x62\x77\x78\x05\x52\xe7\x59\x17\xbb\xf3\x94\x0a\x2f\x16\xb9\xc2\x40\xa7\x70\x0c\xb4\x61\xf6\xce\x53\x11\x22\xc4\x42\x65\x15\xd6\x46\xb3\xb2\x58\x4c\xd6\x4d\x9e\x4a\x10\xac\xc7\x93\x20\xda\x11\xd9\x20\xd3\x4d\x71\x4e\x86\xe7\x7f\xfb\xaf\xff\xce\x34\x46\x64\x72\xfd\x26\x09\x8f\xae\x4a\x55\x4f\xe6\xbe\x32\x96\x5c\xd5\x26\xf4\xb0\xeb\x49\x09\xfe\x87\x69\x0a\x58\x0d\xb5\x85\x42\x3d\x07\xcf\xa2\x5c\x33\x8e\x4d\xce\xcd\xe2\xea\xee\xe5\xa1\xfb\xa8\x10\x9e\x0f\xe1\x05\xbb\x7e\x1d\x33\x9b\x9b\x0e\x1a\x2d\x5c\x2b\x85\x05\x5a\x0d\xef\x06\xa0\x29\x35\xbc\xfb\x43\x90\x28\x2c\xab\xe8\x0c\xa5\xbe\xad\xdd\xda\x6f\x83\xb9\x6c\xc2\x30\xed\x6d\xcf\x16\x85\xee\x58\x1e\xe3\x5e\xd3\xbf\x49\x5f\x38\x27\x7f\xfe\x3e\x59\xea\xff\xa6\xa1\xf7\x6f\xfa\xa7\xff\xba\x54\x58\xc4\xf8\xa9\xd0\x03\xb4\x06\x8d\x02\x99\xa2\x0c\xc2\x9c\xf4\xfd\xff\xd1\x75\xc5\x9d\x39\x0c\x15\x13\x8e\x5b\x4b\x1f\xb2\xfc\x1b\x64\xbb\xf2\xb9\xec\x1a\x2e\x51\x28\x68\xdc\xde\xfc\x87\x32\x07\x75\xca\x3f\x63\xea\xd2\x88\xd0\x18\xeb\x9b\x1e\x9c\x33\x4c\xf5\x23\x12\x0b\xff\x52\x5e\x90\xfb\x68\x44\x74\xa2\xc4\xe4\xb5\x9a\x29\x74\x45\x54\x0b\xac\x77\xec\x1e\xd6\xdf\xc7\x6f\x7d\xc4\x22\x95\xf4\x93\xe9\x21\xab\xaa\x32\xfb\xa0\x35\x17\x71\x96\xe2\x8b\x79\xaa\xa1\x53\x44\x1e\xb5\x11\x66\xcb\x36\x11\x17\x31\xf2\x6b\x52\x98\xbc\x7e\x11\x4f\x25\x16\x33\x1f\xee\x1e\x5d\x8d\xda\xe2\x50\xfc\xc5\x71\x08\x8d\x1e\xf4\x7e\x56\xa7\xa6\x34\x66\x7a\x12\xb0\x99\x2b\x06\x61\x6e\x21\xb0\x81\x52\x1b\x8d\xf9\x53\x45\x51\x20\x2d\x2e\xb8\x81\xea\x80\xed\x7d\x0b\x20\xef\x06\xc4\x09\x83\x51\xcd\x78\xae\x8b\x12\x45\xc2\x76\x51\xbe\xaf\x56\x3d\xc6\x7f\x7c\x9b\x22\x15\x09\x3d\x56\x6c\xf4\x9a\x30\xa3\x58\x22\x8a\x80\x62\x9d\xa7\x72\x12\x87\x23\x1e\x2d\x8d\xe2\x90\x60\xed\xe0\x1d\xb7\x9c\x49\xa5\xfb\xf7\xd3\x40\x73\x96\x46\x31\x03\x9b\x0e\xb6\x4f\x7f\xaf\x67\x90\x38\x34\x8a\xb5\x41\x1a\xd1\xf6\x5c\x68\x74\xdf\x9f\x1e\x07\x1a\x90\x41\xaf\xd4\xbb\x02\x0c\x37\xce\x59\x36\xee\xec\xcb\x7a\x51\x75\xf4\xdf\x62\x42\xab\xe8\x23\x0f\xb0\x85\xa6\xc9\x8a\xd7\x79\xe6\x3b\x8d\x44\x28\xb0\x7e\xb0\xee\x1c\xe7\x69\x24\x44\x12\x76\x80\xbd\xb0\xfb\xab\x14\x48\x39\x73\x1e\x4b\xa3\xf5\x34\x12\x29\x45\xcd\xc6\xab\x76\x9f\x82\xcc\xd2\xd1\x3e\x7a\xd3\xe7\xde\x50\x19\x84\x78\x63\x10\xfc\xd3\xe6\x16\xfe\xef\x61\xea\xd8\x4c\xff\x39\xd5\x8d\xe5\x38\xbb\xac\xce\x2f\xca\x1f\xe0\x32\xa6\xeb\xcf\xdc\x16\x1f\xa5\x21\x95\xe0\x93\x5d\x93\xe5\xf9\x75\xf9\x79\x57\x36\x52\x84\xa5\xd6\xa8\xa1\xc6\x62\xfc\x58\x72\xf8\xf3\xb7\x54\x51\x40\x3e\x78\x59\x38\xb8\xd4\x27\x6a\x9a\x34\x52\x89\xa0\xd2\x2b\x16\xe2\x46\xe2\x99\x69\x93\x97\x41\x53\xe2\x07\x3e\xcb\x13\x6e\x19\x83\xcd\x22\xd2\xb1\xe2\x96\x48\xbc\xb0\xda\xf6\x1d\x9a\xb9\x1b\x60\x1b\xf8\x36\x86\x5b\x28\x35\x7c\x07\xe6\xba\x7b\x11\x48\xab\x92\x52\xa2\x04\x5f\xbd\x72\x6f\x61\xd7\xf3\x8f\x40\x05\xbc\x6b\xd3\xe1\xbe\x3f\x51\x3b\xa0\x11\x80\xc2\xa8\xaf\x2b\x92\x62\x83\x78\x57\x2e\x8a\xb2\x5d\x9d\x51\x88\x60\xb6\xb7\x18\x19\x69\x74\x67\xf5\x84\xfa\x17\xfe\x00\x70\xcc\x73\xfc\x32\xff\x59\xc3\x20\x0e\x78\x90\x20\x00\x0a\xe4\xe1\xa9\x80\xe7\x0a\x4c\xe6\x21\x09\x71\x20\xa9\xd0\x1d\xd2\xe2\x59\xaa\x1f\xf2\xb5\x4b\x7c\x62\x12\x84\xcc\x6e\x7b\x1a\xe9\x92\xfd\xdf\xb5\xbb\x91\x98\x23\x3f\x94\x45\xf3\x96\x9f\x1f\x3d\xd8\x8f\xc6\x24\x4c\x90\x39\x61\xb1\x82\x6c\x88\x15\xa4\x31\x51\x04\x67\xd6\xf1\x34\x68\x2e\xcc\x5f\x3b\x75\x3e\x23\x59\xed\x2a\x4b\x30\xc1\xfa\xc4\x34\x8e\x0d\x0c\x32\xda\xaf\x96\x49\x2f\x6b\xb0\xac\xc0\x36\x76\xbc\x2e\xab\xe7\x37\x59\xc3\x58\xc1\x9f\xc6\x54\x5a\xb0\x9e\x17\x16\x7c\x94\x95\x2a\xeb\xe5\xd9\x56\x3d\xd4\x90\x9f\x40\x63\x6a\x58\xe8\xee\x14\xee\xaa\x70\x3a\x8c\x8c\x80\x69\xcc\xc2\x30\xee\xb1\x60\x5f\x57\xdf\xbf\xca\x53\x7e\xa1\xaf\xee\x07\x53\x93\x5a\x62\x46\x59\x1f\x11\x46\x52\xef\xdb\x27\xd4\x9d\x2c\x0d\xb0\x6c\x9c\x9e\xce\xbb\xab\xb5\x93\x95\xce\x9a\xb7\xf2\xd4\x4c\x2b\x12\x17\xef\x6e\xcc\xc3\xd8\xf2\x17\xcb\x9f\x50\xbd\xcc\x2b\x70\xd3\x98\x13\xed\xbb\x8d\x5f\xfe\x58\x3d\xcb\x73\x5e\x4a\x3d\x4c\x58\x62\xae\xac\xb2\xd9\x73\x59\x68\xa8\x6e\x3c\xce\xd7\x5f\x23\x87\x00\xef\x7d\x1b\xc7\x5b\x09\xe1\xa7\x14\xe5\xd4\xba\xe3\x1a\x97\x81\xfb\xf2\xf5\xbe\xbc\xb4\xda\x99\x5c\x4e\x14\xc5\x18\x27\x7a\x91\xaa\x11\xa1\x98\xc6\x91\x51\x38\x53\x51\xc4\x27\x8a\x27\x8f\x32\x0e\x14\xb6\xdf\x6c\x4a\xea\x5f\xcf\x38\xa6\x04\xa9\xd7\x57\xeb\xaf\xeb\xfb\xa7\xe7\xf5\x66\x3b\x74\xd5\xa1\x71\x2c\x03\x2c\xb1\xad\xf2\xf2\xa4\x3d\x8b\x66\xa6\xbe\x17\xcb\x38\x4a\x86\xf0\xf8\x45\x8d\x70\xcb\x6a\x3a\x4c\x5a\x91\xcf\x0a\x65\x5a\x3c\x1e\x78\xa4\x07\x4e\x63\x45\xb4\xe8\x5c\x53\x17\xef\x32\xcb\x07\xbc\x9d\xd9\x68\x29\x56\x02\x64\xe8\x98\x45\x7e\x71\xc4\xfe\x9a\xd3\x0c\x9a\xad\xdc\xc7\x9a\xdb\x92\x92\x5d\xe9\x6c\x30\xe7\x0f\x09\x25\x7a\x70\xb9\x25\x50\xe3\x45\x4e\x43\x83\xf1\x75\x00\xb1\x36\x6f\xfb\x43\x56\xdc\x96\xa7\x1a\xd6\xfa\x15\x56\xb9\xac\x6b\x2f\x22\x4b\x63\x88\xb5\x07\xeb\x2f\xcf\x0e\xa3\x39\xc1\xc0\xd2\xd8\x84\x02\xc3\x95\xfd\xcf\x36\xde\xfd\x5a\x9e\xd4\xdb\x94\x7f\x47\x45\x60\x52\x87\xac\x39\x94\xef\x60\xdd\x42\x10\x2e\x33\xbf\x17\x8d\x3f\x1c\x72\x89\x3d\x8e\xc2\xa8\x7d\x8d\x93\xf3\xed\xaf\xdf\xfc\xb1\x44\xe0\xcc\x57\x72\x5a\xfd\x12\x84\x08\x6c\x98\xb7\x73\xfa\xe5\x90\xcb\x0e\x8c\x28\x48\x24\xb1\xe0\x6f\xa3\x5b\x57\x75\xb1\x20\xbc\xe1\x0e\x2f\x48\x12\x84\x76\xab\xad\xde\xa1\xda\x02\xe8\x5e\x16\x97\x0a\xca\x0d\xed\x18\x78\x77\x66\x9d\x67\xaf\xb8\x8f\x8d\xee\xb3\xa0\x3a\x0e\xac\x33\xc0\xc8\x1f\xef\xf7\xe9\x28\x01\x6e\xed\x5b\x4b\xf5\xb6\xcc\xba\x3c\xdc\x43\x39\xdd\x40\xc6\x95\x91\x03\x33\x93\x0f\xb0\x31\x82\x89\x28\xc5\xd2\x22\xb8\x0a\xf6\xf8\x70\x1b\x42\x53\x2f\xa2\xbf\xe7\x23\x45\x2b\x2a\x22\x45\x70\x45\x5b\xff\xca\xf2\x8e\x4b\x4d\x45\x64\x02\xc7\x72\x19\xaa\xc1\x0f\xea\x55\xd3\xa7\x1e\x33\xdb\x01\xa8\x00\x4b\x71\x7b\x59\x35\xfb\x66\xb0\xec\x08\x91\x58\xb7\x42\x0c\xdb\xee\xb3\xf7\x6e\xbf\x12\x22\x31\xcc\x75\x9f\x6f\x2d\x82\x6c\x98\xc5\x0b\x61\x52\xac\x3c\x2d\xf2\x19\x63\x9b\xf1\xad\x4d\x44\x8c\x08\xc3\x5d\x06\xd5\xde\x4d\xf0\xfd\xe6\xb2\xfb\x2a\x24\x89\x62\xab\x1e\x66\x1a\xc1\x27\x3f\x45\x12\x85\xf8\xc8\x02\x7e\x35\x2e\x12\x1a\x64\xc6\x22\x25\xce\x22\x16\x9a\x2d\x82\xb7\x2d\x9f\x6e\x5d\xa8\x09\x35\x8f\x8a\x94\x86\xb8\x67\x1e\x9c\x77\x40\x07\x76\xf2\xe7\x52\x24\xa1\x61\xe7\x24\xbe\xfb\xe9\x63\x05\xa1\x85\x5d\x84\xed\x26\xf7\x2d\xfb\x91\x3d\x0f\xb6\x78\xa1\xb5\x4d\x9b\x10\xfe\x80\xd6\x64\x88\x7e\x00\x6f\xce\xba\xaa\x2e\xf5\x41\x27\xd3\x10\x22\x8d\x1a\x7b\x38\xa5\x37\x23\xf2\x96\x1b\x61\xa4\xd5\x33\x69\x93\x3d\x14\x6c\xf6\x7f\xd7\x3a\xb4\x4a\x63\x3e\xdd\x4d\x02\x69\x65\xcf\x1e\xce\xb8\xcb\xee\x20\xcf\xa1\xb2\x4a\xe0\x57\xcb\x6e\x90\xb2\x00\x98\x57\xcf\x66\xdc\x40\xdd\x6e\xb5\xee\x70\x18\x12\xd4\xa3\xaf\xa5\x81\xed\x29\x6d\xaa\xd5\xf3\x6a\x3d\x9f\x17\x24\x21\xe5\xd8\xc2\x68\xaf\xfa\xab\xc5\x34\xfe\x36\x19\x11\x25\xa1\x83\x27\x66\x85\x29\x7f\x66\x56\x79\x72\xf6\x0d\x4a\x42\x91\x20\x2e\x19\x39\x72\x9d\xc2\x6b\xf3\xf6\x31\xc0\x2f\x21\x3c\xb2\xca\xe0\xf2\xc7\x05\x2e\xb6\x1f\x94\x30\xed\x7a\x5a\x6e\xeb\xd1\x77\x57\x1f\x22\x61\x86\x53\x27\x21\x0a\xf0\x92\xdc\x8a\x85\xd4\x5d\x9f\xca\x26\x34\x50\xe0\xea\x43\xd9\xb8\x4e\x9b\xd0\xd0\x82\x2d\x9c\x84\xe5\x38\x11\x4a\x28\x49\x31\x9d\x6e\x43\xd0\xab\xe1\x4c\x4c\xa8\xb6\x1c\xdc\xd7\xf6\x0d\x2c\x6c\xe9\xef\xa5\x86\xf9\x7e\x7e\x42\x21\xb0\x3b\xb4\x3c\x63\x27\xc3\x6f\xdd\x09\x53\xa9\xf7\x4d\xbf\x2f\x2d\x74\xcd\xa9\xe4\xff\x83\x34\x2b\x89\x48\x4a\xac\x5c\xa8\x13\xc2\x9a\x6c\x40\x49\x44\x53\xe3\xa4\x6b\xef\xf4\x08\x83\x39\x35\xc2\x19\x67\x49\xdd\x13\x89\x58\x2c\x62\x0f\xe4\x5c\x68\xdd\xa9\xe9\x3e\x55\xd7\x59\x3e\x80\x3a\x75\x9f\x68\xf7\xe3\xb0\xf3\x0a\x6b\xae\xcb\x6a\x03\xc7\xb2\x42\x18\xad\xac\x9a\x4c\x65\x47\x59\x38\xd1\x19\xab\x58\x3e\xba\x62\x11\x68\x04\x45\x6b\x04\xca\x59\x2b\x03\x7f\xb3\x04\x89\x14\xef\x28\x2f\x08\xc3\xe8\x0a\xa2\x7e\x08\x15\xf8\xa2\x5f\x65\xaf\x59\x23\xf3\x75\xd1\xbc\x9d\xea\x4c\xd6\x5d\x59\x36\x11\x2c\x44\xad\x3d\x0d\xb9\x2d\x7e\x8d\x5e\xe2\x44\x24\x01\xde\x31\x9d\xd5\x7f\x21\x59\xf2\x3c\x24\x63\xf9\x41\x32\xf5\x2f\xcb\x73\x1b\xaf\xf7\x2b\x65\x92\x44\xcc\x4a\xf4\xbf\xc1\xe6\xd4\xff\x55\x38\xd9\x9b\xc3\x71\x18\x5b\x26\x32\xa5\xd8\x45\x2a\x00\xb4\x53\x1d\xad\x77\xe5\xca\x2a\x47\xfa\x41\x29\x8b\x95\x5d\x3f\xda\x89\xf1\x6d\x5a\xab\x4a\x52\x6e\x75\x3e\xb7\x45\xfb\x90\x3e\x5f\xc6\x92\x34\x22\x38\x58\x97\xcf\x95\x0d\x37\xca\xea\xfc\xad\xca\xa6\xad\xfd\x3e\xf3\xee\x9e\x6c\x1a\x0b\x04\xb9\x22\x8a\x35\xbf\xec\x39\x8d\xa7\x5e\x2a\x7c\xc9\xaf\x9d\x03\xed\x72\x0d\xfa\xe9\xd4\xa8\xb2\xdb\x19\x92\x54\x2b\x0c\x8f\xb0\x27\xf1\x3c\xc0\xf1\x27\x29\x68\xfc\x2a\xf4\x33\xed\xf5\x26\x47\x5f\xa0\x52\x1e\xeb\xce\xe4\xb8\xb9\x10\x96\xa6\x89\xa6\x14\x25\x0a\xb7\xd0\x7c\x7b\x9b\x24\xac\x89\x4e\xac\x0e\x88\x9c\xa9\x12\xf5\xa7\x00\x66\x31\x24\xed\x6c\x3e\x3f\x9f\x0a\xf5\x36\x70\x2b\xa3\x09\xc4\x06\x7f\x64\x3b\x47\x56\x6f\xe5\xd0\x93\x64\x7c\x1e\x43\xac\xc7\xdb\x16\x9c\xcf\xe6\x20\xa5\x4f\x4c\x1c\x79\x92\xe2\x7d\x66\x17\x67\x2b\xbd\xe2\x8f\x0b\xe1\x5d\xda\x1e\xe1\xe7\xba\x6e\xb2\x43\xfb\x63\x47\xb5\x61\x3f\x34\x21\x58\x78\xd1\xf0\xbe\xc7\x8a\x86\xbb\x52\x19\xc4\x41\xaa\xfa\x9f\xbb\xe9\x15\x33\xfb\x11\x4e\x8e\xeb\x94\x86\xd1\x6f\x16\xd2\x3d\xc0\xa6\xc8\x30\xb6\x04\xf3\x1a\x61\x9b\xc7\x06\xf6\x34\x1c\x6d\xdf\x32\x4c\xac\x14\xf9\x45\x16\x3b\x3f\x45\x64\x08\x36\x81\x93\x79\xde\xf5\xa1\x3b\x6c\x96\x0c\x0d\x45\xff\x26\x94\x0e\x72\x70\xb4\x61\xa0\x23\x09\x01\x5c\x82\x0d\x34\xea\xed\x59\x66\x1a\x1b\xde\xf5\x75\x59\x3d\x40\xd5\xae\x11\x8d\x37\xef\x1d\x3d\x79\x49\x22\x89\xe2\x14\x56\x43\xeb\x2a\x93\x87\xb2\x18\xd2\x6e\x24\x49\x52\xee\x9e\xc7\xde\x09\xf3\xec\x65\x95\x66\x4d\xbd\xaf\xfb\x02\xa9\x24\x3a\xc4\xe9\xfb\x00\xbf\x32\x55\xbe\xd7\xdb\x9f\xa0\xbb\x57\x5b\x52\x9d\x80\x8d\xbe\x0b\x9b\xae\x39\x94\xc6\xae\xdc\xc9\x1f\xb0\xa8\xdb\x90\xd9\x8f\x65\x01\x60\x57\x72\xaf\xca\xc3\xf1\xd4\xc0\x46\xa2\xc2\xd5\xff\xa9\xd6\x2e\x99\xb2\xb3\x7e\xf5\xf4\xf0\xf0\xf2\x78\xb7\xfb\x63\x4c\x91\x90\x9c\x53\xe1\x34\xf0\x36\xb2\x82\x4f\xb0\xdc\x92\xc7\x21\xb6\xa4\x97\x32\xab\xca\x62\xd4\x53\x91\xdc\x69\xda\xbf\x42\xb3\x38\xa1\xfe\xb6\x07\x92\xfb\x11\x51\x92\x60\x33\x31\xab\x6f\xa0\x80\xda\xa2\xc1\xfd\xc1\x98\xd8\x25\x14\x97\x87\x13\x42\x4e\xae\x3b\x8d\xa8\x99\x85\x59\xc6\xdc\x36\xfd\xa5\xd6\x5f\xb3\x02\xce\x03\x03\xe2\xd3\xc0\xbb\xc1\x36\xd5\x5d\x92\xd8\xcd\xdd\x38\x15\x56\x9c\xac\x29\x2b\xc0\x16\x59\xfd\xdb\x64\xab\x93\xb1\x36\x18\x4f\xfd\xec\xde\x19\x11\x50\x6a\xe5\x84\xb2\xff\xc2\xb7\x6e\x8d\x97\x22\x48\x63\xe6\xf2\xc3\x66\xfb\xd7\x45\x61\xeb\x83\x07\x93\x84\xdc\xfa\x7a\xbd\x95\x3f\x6d\x19\xcd\x4a\xef\xa5\xb6\x21\x39\x0b\xcc\x96\x09\xd7\xda\x76\x64\x35\x1c\xb0\x3e\x87\x0b\x65\x37\x75\x92\xd8\x6e\xd0\xf5\xab\x1a\xee\x2c\x32\x89\x0d\xf6\xcc\x1e\xa0\x91\x9b\x53\x7e\x69\x16\xdc\xfd\x6e\xa9\x99\xa5\x07\x9f\x64\x25\x8b\x06\x40\x2f\x4f\x67\xa8\x3c\xe8\x76\x7c\x39\x69\xcc\x11\x77\x78\x9d\x67\xaf\x6f\xcd\x73\x2e\xa7\x2f\x57\x0a\xb6\xd9\xf5\x23\xcb\x73\x5f\x6c\x96\x8a\xc5\xde\x38\xfc\xa9\x68\xf7\x8e\x76\x11\xbd\xeb\x96\x51\xa9\x52\x65\x1f\x0f\x02\x8f\x97\x39\x48\xf5\xe6\x51\x96\xfd\x3a\x29\x35\x91\x88\x50\x70\x87\x36\xa0\xb2\x63\x06\x85\xf3\xea\xd2\x97\xac\x71\x2a\x35\x8b\x10\x1b\x74\x90\xbf\xc6\x75\x2c\xa9\x23\x45\x3a\x79\xa1\x76\x66\x22\xaf\x65\xf2\x6b\x80\xc4\x1e\x49\xef\x16\x35\xf7\x94\x9c\x0d\x9b\x1f\x66\x08\x02\x79\xaf\xaf\xb6\xa3\x87\x00\x86\xa4\x96\x40\x72\x5d\x95\xff\x05\x4f\x39\x9e\xdf\x23\xa4\x89\x38\x51\x7e\x81\xed\xd8\x95\xeb\x5f\xc7\xb2\x3e\x55\x93\x2b\x4b\xc3\x50\x30\x57\xea\x3e\x1d\xbf\x96\xd3\xbd\x2f\x0d\x59\x90\x88\x01\x07\xc0\xb1\x94\xda\xe4\xac\x5d\xf4\xd7\xb2\x2a\xba\x49\x94\x86\xa0\xb1\x19\xb0\x1f\xa2\xf6\xdd\x31\xc2\x14\x16\x7b\xb2\x42\xdf\x15\x26\x1f\xa6\x85\x29\x51\x54\xb0\xc1\xba\xb5\x2c\x87\x90\x23\x3f\x08\xec\x46\xfb\x26\x6b\x2f\x47\x3f\xfe\x06\xca\x08\x56\x14\xd7\xbb\x5b\x46\x82\xb2\x60\x89\x3f\x3f\x15\x61\x60\xfd\x2e\x8f\x17\x82\x6c\x7e\x88\x56\xda\xca\x79\xfd\xba\xb2\x86\xa0\xbd\x96\xa4\x1b\xc2\x02\x89\xd5\x6b\x63\xc3\x90\xdd\xc7\xf2\x5e\x83\xaa\x60\xca\x98\x95\xb9\xf1\x58\xb7\xc5\x6f\xb3\x54\x92\xf1\x4f\x61\x71\x82\x8b\xa2\x63\x36\xe2\x76\x35\xa8\xf8\x8c\xe1\x38\x29\xd3\x06\x41\x07\x0e\x8c\x32\x44\x30\xcc\xce\x90\x94\x87\x1a\x11\x37\xc8\xfc\x47\x4e\xea\x70\xff\x4d\x79\x68\xb0\x6d\xb8\x77\x2c\x60\xb4\xc7\xbe\x8c\xf8\x67\x57\xa7\x94\x73\x90\xc3\xdf\x3b\x94\x78\xfc\xa0\xd5\xec\x3f\x29\x53\x04\x2b\xbb\x66\x9c\x77\x7a\x19\xa0\x12\x27\xef\xe7\xa0\xe0\x9c\x46\x11\x8f\xec\xd7\xe6\xf2\x3c\x99\x18\x91\x48\x51\x4b\xe6\x58\x41\xa6\xca\x29\x34\x3b\x8d\xa4\xc5\xfd\xdd\x58\x3d\x4a\xaf\x5f\x37\x02\x20\xcc\xb5\x89\xd2\x38\xa1\xd2\xca\x6d\x67\xff\x1d\x86\x40\xa9\x90\x02\x6d\xcc\x1e\xa0\x5d\xa8\xa0\x93\xe0\x1c\xb8\x12\xd0\x34\x09\xa9\xf1\x79\xb7\x4f\x3f\x1e\x64\x71\xfe\xac\xaf\xeb\x17\xdb\x34\x89\x2d\x56\x39\xed\x29\x39\x77\x75\x7d\xea\x5f\xc5\x44\x4a\xec\x2e\xcb\xb1\xfb\xa1\x3b\x2a\xa5\xb5\x45\xfa\x92\x15\xaf\x5f\xca\xe2\x75\x10\xb5\xa4\xa9\x96\xd6\x1d\xa2\x91\x85\xc6\x79\x8e\x93\xc0\x54\xa5\x0d\x29\x27\xeb\x7e\xaa\xc2\x14\x65\xfb\x95\x13\x50\x78\x2e\x4b\x9f\xdd\xa6\x4a\xd8\x63\x3f\xde\xd5\x40\x7c\x61\x72\x1b\x95\x48\xb1\x42\xb5\x7d\xbe\xbb\x5a\x6f\xf6\xcb\xa7\xa7\xae\x0f\x9d\x6a\x69\x23\x87\xaa\x53\xb1\x1a\x4a\xab\xd0\x14\x02\x99\xb8\x1d\xa1\x7d\x76\xfb\xb8\x3b\x10\xd9\xfd\x4e\xb6\x6b\xbc\xf3\xe5\x74\x87\x4c\xca\x31\x20\xf4\xfd\xa0\xf6\x86\x4f\xac\x4d\xc6\x57\xa8\xc2\x20\x4e\xa9\xaf\xd9\x7c\xcb\x2e\x3d\x74\xa6\xe3\xa5\x89\xa3\xce\x63\xc5\x12\xaa\x2f\x31\xfc\x8a\x30\x85\xc8\x9e\x01\x57\xed\x6f\xe9\xd4\x5e\xeb\x70\xb4\x02\x28\x12\x85\x1e\x5a\xdc\x46\x4f\xa5\x0b\x15\xf5\xa2\xf1\xf0\x73\x3d\x45\xe0\x28\x22\xa2\x84\x38\x38\x49\x7b\x93\x3c\x61\xc8\x1f\x06\x85\x5d\xb3\x1a\x0a\x9d\x5e\x22\x03\xdd\x28\x4a\x64\x1c\x76\x21\xae\x65\xf2\x38\x11\xdd\xac\x30\xe5\xe4\x2b\x59\x4c\x22\xa7\xa4\x8b\xf5\xf0\xed\xb0\x8a\xe3\xc7\x24\x8c\xc8\x5e\x46\x6c\xdb\x94\xc7\x41\x15\x50\x45\x92\x81\x45\x5f\xff\x28\xca\x9f\x39\xe8\x57\x58\x95\xc7\x0c\xd6\x28\xef\x54\x66\xd5\xa4\xf4\xa2\x22\x29\x31\xbd\x73\x12\x56\xb0\x36\xbe\x9d\xa7\x62\x16\x06\xd4\x25\xc4\xef\x5e\xca\x60\xb0\xac\x8f\x2f\x4c\x28\x86\x15\x9e\x7b\x78\x87\x6a\x50\x14\x54\x42\x0b\x49\x3a\x81\x41\x57\xb9\xbc\x2b\x66\x20\xe0\x4a\x68\xab\x40\x9f\xb5\xef\xea\xf2\xec\x24\x39\x3e\xd4\x63\x1a\xec\x23\x2a\x09\xac\x18\xbd\x92\xb9\x5a\x66\xda\xc9\x29\x39\xb7\x9b\xf1\x4f\x96\x61\x8a\xcc\x8b\x6f\xb7\x7f\x3c\xdf\xfa\x78\x5d\xa5\x41\x84\xac\x0d\x93\x9f\x8c\x39\xaf\xe4\x58\xce\x95\xaa\x54\xd8\x16\x80\x95\x95\x72\x37\x63\x5c\x16\x51\xa9\xb6\xdd\xfe\x57\x68\x6c\xf5\x75\x14\xcb\x2b\x45\x01\x45\x21\x33\x85\xcb\xa1\xd7\x8f\xf0\x47\x93\x10\x91\xe1\x0f\x50\xbf\x3d\x97\x59\xd1\x8c\x94\x6d\xa8\x52\x10\x61\xc5\xc7\xa5\x4a\x5e\x30\x6a\xf4\xc2\x2b\x1d\x48\xb4\x99\x95\xde\xde\x72\x39\x14\x92\x1f\xbf\x5f\x3a\x64\xd8\xb6\xf9\x2a\xab\xac\xfd\x4d\xab\xb2\xa8\x9b\xea\x84\x2c\xf4\xe1\x86\xa7\xb4\x92\x8a\x75\x75\x98\x06\xe5\xd1\xf0\xf7\xd5\x6f\x1f\x5b\xa8\x5c\x32\x14\x14\x50\x0b\x06\x7e\x39\x6e\x1b\xd9\x7c\xb8\x4a\x4c\x3f\x95\x24\xf8\x60\x8e\xb2\xaa\xc1\x82\xad\x87\x0f\xde\x04\x21\xb5\x44\xa0\x65\x2e\xd5\x8f\xa1\x18\xf1\xe4\xf7\x1a\x61\x92\xb8\xdb\x7a\xab\xb3\xdb\xc9\xb6\x3f\x4e\xee\xee\xe9\x20\xb0\xe5\x83\xfa\xa7\x3c\x8e\xee\xab\x0e\x42\x90\x8e\x6e\x7b\x94\x15\xb4\xc9\xaf\x4f\x2d\xba\x21\x22\x55\x56\xe7\x15\x31\x11\x1f\x17\x69\x75\xa0\xad\x5d\xc7\x16\xc6\x2b\x6a\xaf\x2f\xcb\xfa\xb1\x06\xb0\xf4\x61\xbd\x28\xb1\xdf\x72\x2b\xdf\xdf\x07\x97\x46\x44\x82\x82\x23\x59\xfd\x90\xe9\x1b\x04\x70\x8f\x6e\xa0\xa6\x21\x71\x9a\xbb\x87\xf2\xdd\x5a\xdb\x4e\x07\xc4\xc8\x2a\x7b\xf8\xfe\xc7\x5e\xf5\x3e\x15\x54\x53\xc1\x10\xc6\xf5\x26\xeb\xce\xf9\x7a\x74\x4f\x35\xe3\xa9\xec\x50\x2f\x7b\xac\xb9\xb4\x39\xf8\xd3\x76\x90\x50\x68\x26\x43\xab\x84\xdc\xc6\x3a\xfe\x6f\x2a\xc0\xac\xfe\xb0\x97\x43\x70\x9c\x66\x9a\x23\x77\xc9\xf7\x46\x9f\xe5\x79\xd8\xd2\x9a\x8f\xd8\x34\x73\x9a\xa4\xb8\x03\x3d\x2c\x56\x53\x78\x4b\xef\x5c\xe3\x3e\xc0\x39\xc5\x4e\xcb\x12\x0a\x30\x99\xca\x64\x97\x4f\xeb\x88\x2b\xbc\x82\x9b\xf5\x63\xb0\x7f\x7c\xea\xfe\x9c\xc4\xd6\x26\x18\x37\xb9\x1e\xd4\x66\xf3\x94\x0f\xdd\xf1\x69\x9b\x00\xe1\x92\x9c\x15\x59\xb3\xcf\xd4\xa4\x40\xa6\x93\x20\x44\x4f\x50\x14\x30\xce\x9a\xf3\x2a\x2f\xfb\xbc\x53\x27\x61\x8c\x42\x0b\x37\x5f\x96\x7f\x0b\xee\xd5\x32\xb1\xf8\xae\xf4\x74\xde\xc2\x08\x4f\x3c\x5b\xcc\xd7\x12\x62\x1d\xf9\xe5\xb6\xd3\x71\x70\x26\x1e\x9d\x74\xdd\xf8\xd7\xa4\x81\xc0\xec\x7a\xbd\xbb\x7d\xd9\x5e\xf9\xcb\x4c\x09\xe5\xd6\x43\xf9\x80\x2c\xe3\xa1\xe8\x15\xd5\x2a\x8e\xb0\x4d\x59\x1e\xa1\x58\xa0\x27\x64\x3d\x83\xbe\xd6\x3a\x09\x62\x8b\x50\x51\x65\xa1\xb7\xbd\x8a\x11\xd5\x40\xad\x6b\x46\xbb\xba\xcb\x53\xde\x00\xc6\x94\x1f\xc0\xb3\x34\x50\xc0\x75\x66\x3f\x10\xc3\xeb\x5e\x17\x48\x62\x4c\x53\xa4\x85\xf5\x3c\x64\x45\x03\xfa\xa9\xcf\x58\x75\x9b\x4d\xc6\xb6\x40\x87\xa1\x49\x56\xbc\x0e\xb9\x54\xda\x44\x29\x2e\xb1\xef\x59\x9d\x35\xee\x87\x0e\x42\x6d\x08\x63\xeb\x78\x83\x02\x1c\x57\xdb\x65\xbb\xdb\x2f\x4e\xcd\xdb\x40\x4e\x9d\x42\x28\x78\x98\xf6\xf8\xde\x87\xf3\xe8\x22\x21\x54\x5c\x25\xbe\x1e\xda\x5e\x05\x46\xa0\xa3\xdb\x05\x84\x58\x17\x06\xbb\x6f\xbb\x5d\x21\xbd\x10\x09\xa5\x40\x74\xcc\x7b\x33\xb8\x55\x5e\x4e\x04\x89\x06\x32\xa5\x14\x88\x91\xd2\xd6\xed\xed\x5e\x90\x95\x9d\x98\xee\x78\x43\x04\x1a\x80\xf3\xeb\xf9\x4f\x59\xa1\xfb\xff\xf5\xa9\x50\xe3\x1c\x6c\xb8\x45\x03\x75\xbd\xa3\x01\x37\x17\xa8\x06\x7c\xb0\x2b\x59\xe9\xed\xcf\x4b\x7f\xf7\xf1\x93\x6d\x1f\xac\x74\x75\xe2\x85\x3e\xe5\xcd\x07\x3c\x7b\x60\x01\x68\x86\x7a\x3c\xdf\x16\x9b\xab\x71\x65\x0e\x98\x16\x28\x3d\x69\xf3\x41\x2f\xfb\xf1\x21\xdd\x68\x7c\x05\x9c\x08\xce\x9d\xd4\x5a\xd1\xa9\x01\xf9\x83\x54\x20\xf6\x5d\x8e\x71\x18\x4f\x9e\xb2\x3c\x9c\xd3\xc0\xb9\x44\xae\xcf\xd5\xe2\xa9\x6e\xdf\x89\xe7\x89\x25\xe4\xfc\x1d\xe0\xc2\x72\xc3\x9c\x31\xe7\xae\x47\xf9\x40\x14\x2a\x84\x67\x7b\x2d\x52\xf4\x82\xec\x96\x12\x88\x62\x89\x59\x6d\xbb\x01\x4c\xd1\x37\x10\x19\x85\xf3\x11\x37\xd9\x97\xac\xa3\x3e\x4d\xbe\x3d\x56\x36\xc0\xa9\xa1\x41\x67\xf2\x4d\xa7\x64\x3e\x19\x28\x42\x2d\x2c\x4e\xed\x54\xbb\xc2\xcf\xed\x29\x1d\x7d\xa5\x88\x35\x96\xf7\x9e\x76\x0f\xdd\x9f\x84\xc0\x3e\x60\xc7\xa3\x9e\x94\x63\x40\xa4\x14\x9f\x2b\xfc\xca\x7a\x09\x75\x77\x2c\x31\x14\x8d\x1b\x2e\xd0\xaf\x1f\x26\x0b\xb3\x61\x02\xc8\x34\xb6\x68\xd4\xf2\x94\x7f\xa4\x5d\xed\x87\x6a\x8d\x5d\xac\xa7\x87\x9b\x71\xd9\x0b\x54\x94\x5a\xc0\xe3\xc3\xd3\xcb\xe3\x6e\xff\xbc\xde\xec\x11\xbe\xd6\x1d\x8f\xed\x27\xff\x83\x62\xd5\xde\x82\x62\x7c\x76\x25\x15\xea\x52\xd4\xd0\xdc\x64\xc6\xa9\x33\x1c\x2e\xa9\xc4\xa0\x20\x51\x4e\x36\xc4\xab\x29\x4f\xe2\x8a\xff\xe5\x3f\x7e\x29\xd3\x92\x22\x78\xb7\x43\x51\xd9\xa0\xb6\x07\x52\x01\x28\xab\x0d\x72\x44\x51\x39\xcf\x35\xfe\xa0\xcd\x03\x60\x62\xee\x25\xba\xb7\x50\xe8\xad\x3c\xc0\x68\xeb\xec\x83\x25\xf7\x09\x13\x51\x6e\x85\xb9\x73\x50\x8d\x15\xa5\xf1\xdf\x6d\x54\x44\x9c\x18\xd4\x62\x00\x02\xfe\x18\xcc\xfa\x8f\xb8\x12\xa3\x49\x65\x82\xc0\xa4\x74\xe0\x84\x94\x5b\xc4\x8b\x3f\x1a\x86\x96\x0c\x04\xef\x90\xbd\x8f\xb1\x5e\xe3\x1f\x62\x02\x92\x28\x57\x07\x7d\xaa\x6c\xfa\xe9\x3a\xd0\x9f\xd8\x86\xff\x3e\x59\xa6\xe7\xd8\x66\x26\xa0\xda\xde\xd4\x76\xde\x6f\xad\xbb\x01\x3e\xad\xee\x32\x43\x88\x74\x3c\xe3\x46\x84\x5c\xfc\xec\xbf\x23\xd2\x55\x77\x5a\x22\x18\xda\x00\x5a\x2a\x62\xaf\x19\x49\x0d\x0d\x03\xb4\x62\x45\x58\x82\x85\x83\x6d\x30\xb4\x9c\xe9\x27\x18\x4a\xc3\xae\xfe\x0b\x45\x53\x56\xf5\x08\xc5\x36\x19\x9c\x6a\xcb\x38\x94\x55\x7e\x9e\x68\x1e\x53\xc3\x08\xc7\x2e\x6e\x7a\x1a\x14\x55\x0d\x63\x16\x37\x78\xac\xe0\x1d\x69\x32\xbb\x9f\x00\xcd\x5d\x77\x9c\x0b\x89\x37\xde\x55\xff\x40\x5a\xb1\x3b\xcf\x49\xfb\x70\x91\x18\x5f\x19\x57\x26\xb5\xe6\xb9\x08\xfe\xb4\x0c\xbb\xf1\x13\xe6\xae\xba\xfb\x72\xb4\xea\xaf\x0e\x46\x32\x5f\x69\x9c\x5f\xdd\x0d\x37\x16\x84\xe5\x34\x81\xfd\x36\xb2\xf0\x58\xe6\x5d\xd6\x4d\x7f\x13\x31\x82\xfd\x35\xab\x82\xef\x68\xdd\xc3\xe3\x89\xcd\x47\x76\x56\x27\xf1\xaa\x54\xa7\x43\xe7\x2a\x45\x8d\x00\xad\x68\x27\x2a\x7c\xf2\x32\x42\x17\xcc\xdb\xb1\x9d\xde\x30\x7e\x34\xc2\x68\x6f\xff\xf1\x52\xbb\x02\xc1\x84\xf4\x33\xb9\x8d\x09\x95\xcc\x77\xb3\x1c\x24\xc8\xe2\x84\x76\xd9\x07\xc0\x52\x93\x30\xe2\xa1\xb2\x2f\x56\x07\x13\x5b\xc3\x77\x83\xf2\xc9\xf4\x13\xda\xe2\x26\xa1\x74\xba\x85\x7d\xbc\x61\x12\x63\x08\x45\x16\x98\x31\x39\x3c\xc8\x1f\xd8\x81\x29\x7f\xcc\x6e\x77\x46\x26\x0a\xfc\xe5\x1e\xe6\x7e\x9e\x1f\xa7\x2c\x8b\xd5\x79\x51\xfa\x2e\xab\xff\xd2\x34\x16\xb1\x15\xeb\xb6\xcb\xe3\x75\x59\x85\xc1\x8f\x2b\x99\x75\xa5\x01\x93\xca\x00\xbf\xc9\x51\xa5\x5d\xdf\xd8\x1f\x55\xc2\xd6\x42\x6d\xb9\x1b\xbd\x93\xd4\x50\x9f\xa8\x8f\xdf\x8c\x12\x8c\x58\x1b\x75\x8b\xcd\x79\x2a\xba\x93\x24\x51\x57\x21\x41\xf6\xc7\xf5\xfd\xea\x83\x7b\xae\x8c\x45\x88\xfa\x12\xe0\xf3\xfd\xc2\x97\x1c\x8d\xd6\x1a\xe9\xe2\x36\xb6\x1e\x09\x3f\x53\x03\xa1\x05\x5c\xa9\x63\xf9\x73\x02\x90\x36\x10\x33\x54\x52\xf5\x7b\xaa\x13\xf9\xfc\x60\xaf\x30\x00\x16\x69\x5e\x43\x63\x26\x86\xc5\xd4\x80\xb1\x02\x84\x35\x32\xf7\xad\x16\xdf\x9d\x63\xe5\x4d\xbf\xd7\x30\xed\xe7\x9c\x7d\x31\xaf\xcb\x0a\x4d\x98\x27\xc3\x44\xa8\x9c\x74\x8f\xe5\x88\x0e\x9b\xe0\xc6\x68\x3e\x12\xb9\x98\xa9\x5e\x19\xa3\x93\x28\xf1\x85\xae\xe3\xe7\x35\x50\x63\x40\xe9\x60\x78\x55\xb7\x59\xbb\xd8\x65\x30\x7f\x3f\x58\x10\x80\xa6\xce\xb7\x1c\x8e\xcd\x44\x7b\x74\x36\x58\x65\x41\x98\x58\x6b\xd1\xe5\x62\xb7\x95\x66\x3c\x6b\x59\x10\x4a\xe9\xd9\x8a\x6e\xc5\x6a\x97\x4f\xd7\x8f\x9c\xbb\x6a\x16\x84\x26\x51\xb6\x48\x26\x5f\x67\x71\xa4\x2c\x20\x24\xd6\x61\x0f\xe7\x9f\xd5\xb7\xf2\x43\xa5\xf5\xad\xcf\x6a\x34\xdb\xc2\xa7\x37\xd9\xbc\x58\x40\x03\x2b\x23\x94\xc2\x88\x8e\xcf\x02\xcc\x45\xed\xe5\x63\x9b\x30\x73\xd8\xd8\xf1\x9e\xf9\x77\x31\xe0\x07\xdb\xff\x68\x8f\x65\x01\x05\x8b\xc4\x6b\x73\xf8\xe7\x9b\x27\xc7\x51\x70\x9d\x18\x8b\xcc\xff\xa8\xdc\xc3\x02\x16\x30\x5b\x55\x6a\x67\xaa\x33\x2d\xb8\x10\x11\x6e\x87\x29\x8f\xca\x5b\x66\xfa\x1a\x3c\x92\xa1\x9e\x8e\x0b\xed\x26\x99\x67\x7f\x9d\x32\xfd\x9c\x83\x7e\xed\xea\xd2\x2c\x60\x54\x62\x42\x75\xbd\x79\xee\xf2\x73\x16\x70\x22\x30\x6f\x42\xbe\xef\x06\x19\x2b\xf3\xb0\x5d\x16\x70\x4a\x48\xc7\x8f\x9f\xae\xe6\xa3\x07\xc0\xa3\x34\xee\x02\x8f\xf6\x46\x3c\x64\xc5\xf0\x3b\x95\x53\xb8\xbc\x59\xfd\x5d\xe9\x82\x05\x11\x55\xaa\x8b\x36\x9e\x0c\x2e\xcc\xcb\x33\xa2\x47\x3f\xb8\xce\x48\x58\x03\x61\xcb\x67\x41\x57\x27\x99\xe5\xfe\xcb\x23\x1d\xe2\x0f\x3e\xb9\x48\xcb\x61\x6d\x51\xa5\xb2\x39\xd5\x7d\x75\xaa\x1d\x9a\xe0\xba\xb8\xbc\xbb\xd9\x79\x03\x53\x77\x28\x0e\x62\x24\x25\x2b\x84\xe3\xb5\xcf\xec\xc9\x38\x1f\xbe\x51\x32\xcc\x02\x11\x5b\x77\x12\xf4\x39\xcb\x9a\xfa\xb1\x6c\xd0\xfc\x77\x7b\x52\x6a\x30\x2c\x09\x62\x90\xae\x42\x33\xe5\xe7\xb1\x20\x09\x23\xc1\x3b\x11\x91\x76\x03\xa8\xaf\xcb\x6a\x3d\x64\x12\xd4\x6e\x52\x4c\xe6\x44\x02\x96\xdc\xdc\x15\x2e\x77\xe5\x6c\x30\xfa\xc1\x3a\x21\x89\x4c\x82\x41\x53\xd2\x65\x11\xd5\x24\x36\xfd\xc8\x34\xb0\x9b\xf0\xb3\x41\xac\xff\x8e\x54\x60\x0f\xe6\x28\x2b\x2b\x5f\x30\x95\xa2\x63\x41\x1a\x51\xe3\x16\xd0\xfd\x1b\xe8\x57\x98\x4b\xee\x59\x90\x26\x21\xb6\xfb\xdf\xca\xaa\xb6\x31\xa7\x9d\x27\xe3\xdf\xa4\x03\x19\x19\xbf\x77\xa7\x19\x14\xcd\xed\xe9\x90\xe9\xac\x41\xf1\x8f\xe3\x30\x5f\xf0\x9f\x68\x23\x50\x27\x2e\x6b\x9d\xed\xee\x47\xce\x76\x6e\x18\x10\x49\xdc\x55\xb6\x8b\xdb\xc6\xae\xc4\x65\x75\x9e\x5c\x26\x68\xeb\x18\x25\xb5\x7e\x84\x9f\xd8\xcb\xb9\xca\xd4\x65\xfd\x95\x85\x61\x6a\x89\x25\xbb\x0a\x0a\xed\x74\x9d\x06\xa9\x32\x0b\x49\x4c\xb1\x50\xd7\xce\xae\xdd\x5b\x55\xfe\xdc\x74\xca\x30\xae\x34\xf3\xda\x55\x6d\x59\x48\x14\x21\x74\xc4\xa5\xee\xc3\x46\x16\x52\x1e\x62\x8f\xc5\x9c\x0a\x15\x76\x7f\xd4\x0a\x83\xc1\x2b\x2c\x6a\xee\xb2\x66\xba\x3a\x85\x2c\x24\xd8\x15\x44\x80\x16\x54\x17\xba\xa0\x2c\x64\x34\xc0\x12\xf9\xd7\xbb\xc7\xd5\xe8\xea\x19\x68\x4c\x4f\xd7\x9b\x15\x09\xfe\x56\x6d\x6a\x7e\x8a\x86\x3c\x94\xc4\xa2\x33\x9b\x2a\x83\x77\x18\x39\x05\xf8\x31\x42\xe9\xde\xdf\x1d\x31\x69\xfe\xb5\xff\x02\x17\x0d\x7a\xff\x21\x63\x35\xee\xf7\x0e\x9a\xdc\x06\x96\xed\x22\x4d\x26\x3f\x2f\xa2\x12\x33\x80\x43\x56\xd4\xd9\x6b\x71\x3a\x76\xfa\x66\x2c\x8c\xe2\x58\x22\xa0\x5e\xa2\x9a\x83\xfe\xb0\x5c\x3d\x7a\x25\xda\xb7\x1d\x45\xf0\x31\x98\xb8\x3e\x35\x27\x8f\x23\x64\x61\xbb\x9c\xc0\x80\x4d\x36\xc0\xf4\x76\x3f\x37\xe6\xb6\x92\xb9\x77\x62\x0e\xce\xbb\xeb\x43\x6a\x27\xa6\xbf\x97\xe0\x00\x16\x0a\x12\x20\x41\xc4\x1a\x19\x7d\x2b\xf3\x8b\xac\xc8\x0d\x4c\x08\x19\x29\xbe\xac\x8b\xb7\x76\x65\xd4\x23\x30\x80\x1f\x0b\x71\x2c\x3f\x04\xfe\x8c\x46\x9a\xd0\x46\x7a\xed\x2b\x32\x91\x56\x66\xa1\xa4\xdc\x37\x9f\x76\x1f\xec\x05\xa1\xd4\xb1\xa4\x23\x77\x51\x5f\x87\x70\x03\xd2\xc0\xa2\xe8\xb2\x7a\x7b\xcc\xb3\xa6\x97\x7c\x65\x61\x4a\x08\x82\xa6\x4e\x85\xb5\x8e\xda\x1f\x51\x85\x78\xdf\x0c\xae\x21\xa5\x0a\xc7\xb8\xa6\xeb\xb2\xf4\x58\x06\x16\xa6\x4a\x61\x2f\xc7\x64\x79\xfe\x54\x7d\xc9\xbc\x1e\x90\x5f\x35\x78\x1f\x0f\x44\x7f\xfe\x3e\x4e\xac\x66\x63\x8d\x30\x75\xdc\xf9\xf5\xee\xd6\x46\x79\xdd\xab\x9b\x82\x95\xab\x6f\x43\xd4\x23\x14\x8e\x60\x79\xa7\x9f\xcc\x53\x01\x8b\x57\x28\xd4\x64\x0d\x0a\x53\x30\xa1\xf4\xd0\xdf\xeb\x0e\x0a\xc9\x42\x45\x78\xa8\xbb\x9a\x70\x3b\xef\x0f\xb2\x5d\x50\x26\x9f\x57\x69\xe2\xeb\x7d\xab\x53\x9b\x90\x74\x8f\xcf\x5d\xba\xfb\x3d\xe3\x88\x27\x54\xda\x60\x65\xe6\x3e\x4b\xab\xae\xb3\xc2\x42\x20\x94\x0d\x75\xad\x1e\x64\x71\xa1\xd9\xff\xfb\x5c\x3c\x36\x10\x40\xeb\x0b\xca\x2c\x04\xda\x99\x68\x22\x74\x64\xc6\x11\x98\x85\xa0\x19\x16\x4c\x17\xc5\x8f\xac\xf9\x9a\x29\xe7\x4e\xe2\xaf\xc9\x04\x8c\x32\x1f\xee\xfc\xe6\xbf\xcd\x15\x44\x6c\x2b\x8e\xfd\xd9\xff\x8f\x6b\xd3\xb1\x3f\x27\xb0\x6d\x16\x9a\x38\xa0\x6c\x58\x7e\xfc\x44\x2a\x65\x5a\x76\x67\x24\x64\x0a\xd1\x06\x5b\x87\x2a\x69\xd7\x4a\x42\x47\x71\x93\x1b\x49\x02\x43\xb5\xab\x82\x5c\x78\x53\xcf\xbe\x1e\x84\x24\x34\xb0\xc5\x0b\x3c\xe1\x20\xba\x26\x44\x5a\xe1\xfa\xac\xde\x23\x6b\x63\x0f\xef\x5d\x8d\x80\x11\x2a\x53\xac\xbe\x39\xf8\xc7\xde\x96\x79\xc6\xd1\xdc\xf8\xab\xa8\x4e\x50\xdb\xa2\xf9\x55\xec\xbc\x56\x39\x23\x14\x08\xe1\x3d\x0c\x05\xbb\xdb\xd7\x65\xb5\x3d\x59\x86\xe7\x07\xa1\xf8\xe8\xc4\x2c\xb5\xcb\xaf\xb2\x3b\x9a\x93\x92\x1d\x92\x4c\xda\x31\xd0\xa3\x7e\x96\xb2\x06\xfc\x22\xbf\x08\x90\x28\x8c\x89\xb3\xb0\xf5\xb0\x8f\xeb\xaa\x3c\xa0\x55\xc7\xb6\x3c\x55\x17\x71\xee\x6c\xea\xc6\x48\xe4\x3c\xa6\x2d\x7c\x05\x7d\xdf\x26\xcf\x48\x84\x06\x5b\xb2\xd7\x8f\x8b\xe1\x64\x23\x22\x16\xd8\x98\xb2\xae\xf3\x5e\xcb\xe8\xc9\x74\xc7\x45\x8c\x4d\x51\x7b\xe6\xd9\xe8\x87\x08\xc5\x31\x8e\xba\x91\x87\x7e\x15\x23\x02\x00\xd9\xdd\x77\x85\xce\xf0\x75\xfe\xc7\xfb\xac\x3b\x41\xd2\x46\xbb\xbd\xda\x3a\x96\x81\x3e\x28\x5d\x4d\xe1\x18\x93\x13\xc5\x42\x3b\xda\x1c\x2a\x06\x4d\xaf\x3f\x51\x81\xb0\xf5\x83\x23\xc8\xee\xd1\x25\xda\xf2\x75\xb7\x2f\xab\xd5\x34\x51\xb8\xa8\x3c\x31\x92\x98\x10\xe3\xdd\x41\x09\x72\xdb\x06\xcd\x0e\xa9\x7a\x41\x66\xea\x3e\xa6\x51\x5d\xba\x4d\xe3\x2c\xa7\x0f\x39\x20\x3e\x79\x22\x32\x94\x28\x01\xb1\x5a\xed\xd6\xdd\xdf\x12\xe3\x58\xb8\xea\x54\xd5\x6d\x46\x9b\x97\xe5\x87\x1e\x8b\xfe\x43\x92\x63\xc5\xc7\x3d\x42\x27\x29\xf9\x81\x98\x29\x23\xa9\x48\x13\x74\x2f\x5c\x21\x46\xbf\x7d\x29\x06\xea\xc6\x16\xd3\xc4\xfd\x58\x29\x10\x89\xa9\x41\xe5\x88\x2b\xc7\x57\xf3\xb1\xc4\x60\xb4\x7f\xb1\x53\x63\x10\xb5\xbf\x2d\x4d\x73\x75\xd2\xdd\x44\x51\x22\x44\xbc\xbc\x13\xbb\xee\x5d\xf1\xfc\x71\x1d\x73\x4f\x09\x79\x5e\x5d\xcd\x6f\xb8\x44\x73\xca\xbd\xbc\xbb\xb5\xe4\x68\xcf\x63\xd5\x4e\x27\xef\x82\x4e\x2c\x5a\xb2\x17\x8d\x7e\x8f\x7f\xeb\x8f\xe1\xbe\x7d\xaa\xdb\x18\xc7\x40\xbb\x22\x1c\xb2\x66\x9d\x5b\xf5\xbd\x7f\x9a\xb3\x8f\xbf\xb0\x4d\x85\x74\x0f\x5f\xde\x4e\xaa\xcc\x8c\x00\x67\x18\x6e\xef\x5d\xb1\x6d\x08\xd2\x61\xc4\xc4\x56\x8e\xfa\x58\x41\x5f\xf4\x66\x34\x30\x12\x5f\x3b\x03\xea\x6d\x5b\xc8\x63\xfd\x56\xda\x9f\xe3\xb3\xd4\xd1\x45\x50\xc2\x19\xae\x35\x7b\x4b\xde\x76\x77\xc6\x1d\xa4\x61\x0a\xce\x6d\x74\x92\x02\x52\x46\x02\x5c\x3f\xdf\xad\xe7\x2f\x60\x29\xf1\x38\xed\xc6\x5d\x86\x76\x7d\xb3\x75\x1c\x4d\x50\x46\x85\x65\x07\xe8\xbd\x29\xab\xbd\x9c\x5b\x53\x28\xd3\xa1\xe8\x11\x22\xdb\x83\xac\xba\xc2\xe9\x7c\x87\x95\x51\x06\x11\x02\x13\x6e\xe5\xa1\xdd\xca\x87\xcb\x1c\xe5\x01\x4d\xf4\xd8\x21\xe0\x54\x34\x67\x27\x86\xeb\x7d\x28\xfc\x60\x12\xaa\xa8\xe3\x9a\xda\x91\xc3\xc0\xe0\xb2\xa0\x42\xe3\x48\x84\x0e\x8c\xbc\xf3\x7b\x0c\x15\xc2\x5a\x5c\xdb\xba\x05\x34\x57\xe5\x7f\xdd\x2e\x25\x2e\x94\x23\xc7\xb7\x48\x24\x09\x62\x41\xd3\x0a\xe4\x0f\x8f\xc7\x62\x54\xa4\xb6\xcd\xf1\xed\xee\x71\xbf\x7a\xd9\x3d\x5d\x5f\xfb\x23\x49\x04\x58\xe2\x6a\xc3\xfd\x01\x79\xf6\x9f\x00\x80\x19\x4d\x84\x66\x2e\xc9\xbf\xc9\xcb\x54\xe6\x36\x5f\x1f\x5a\x84\xf4\x71\x01\x4d\x24\xc5\xc9\x6c\x4d\x0f\xad\xaf\xff\xa9\x97\x33\x64\x34\x01\x4b\x4c\x70\x35\x78\xec\xa6\x4d\x9f\x95\xa4\x04\xb5\x4c\x7a\xef\xf6\x45\x8d\xfd\x82\x51\xc3\x66\xb4\xc2\xb6\x3b\x3f\x76\x8b\xfd\x44\x7c\x94\x07\xd8\x66\xaf\x85\xc4\x2c\x65\x32\x1d\x67\xb6\xcd\x0f\xa2\x5b\x9a\x86\x96\x90\xfd\x9a\xbd\xc3\x0c\xbd\x97\xd1\x54\x00\x86\xac\x9b\xa7\xdb\xdb\xcf\x4a\x46\x34\xd5\x11\x02\x71\x9f\xbe\x3d\xae\x37\xdb\xfd\xe2\x65\xb5\xbb\x7b\xc2\x47\xf5\x5b\x37\x42\xa1\x03\xe0\xc3\xe2\xfb\xfe\xdb\xdd\xee\xf6\x6a\xb3\xf8\xb6\x7f\x5e\xed\xf6\xbb\xef\x7e\x88\x0a\x02\x84\x5c\x66\xdf\x64\xd1\x7c\xff\x02\xe7\x79\x4c\x09\xa3\x2a\x8a\x63\xde\x6d\xdd\x65\xd5\x86\x17\x17\x72\xb1\x8c\xaa\xd8\x44\x69\x57\x95\xda\xca\x1c\x2e\x08\x73\x8c\x42\xa0\xd0\xc4\xd8\x95\x48\x67\xe4\x9c\x18\x85\x84\x78\x3a\xfe\x63\xd9\x2d\xdf\xd4\xc4\x02\xb5\xe3\x6c\xfb\xec\x62\x6d\xa3\x26\x89\x85\xa7\xef\x58\x95\xb6\x55\xf9\x6e\xc0\x4c\x2e\x81\x05\x81\xc0\xda\x9d\xb3\xfd\xfc\x47\xd4\x1a\xc6\x82\xd0\x9a\x12\xde\x14\x1d\xbd\x90\xb1\x50\xd0\xc8\x37\x49\xf4\x3b\x54\x4d\x56\xe3\xf2\xbd\x6d\xca\x4a\xbe\x8e\x15\x12\x19\x0b\x53\x81\xc4\x15\x5c\x3a\x67\x9a\x29\x8c\x11\xc3\x88\xc3\xdf\x74\x5d\xa5\xfb\x52\xc9\x7c\x5a\x8c\x1c\x5f\x1b\x4d\x14\x56\xfc\xd4\x50\x40\x82\x31\x96\x58\x61\xf1\x9e\x92\x3e\xa8\xeb\x33\xc6\xd2\x00\x55\xb3\x7c\xe6\xb8\x2a\x8f\x23\x84\x79\x37\x8c\x10\xcf\x4f\xcc\xb4\xef\x42\xd5\xd7\x65\x85\xe0\xc9\x69\x3d\x8e\xf1\x28\x09\x52\xaf\x65\x8c\xdd\x56\xa4\xfd\x3b\x75\xf1\xf8\xcf\xc9\xb5\xf3\xc4\xea\x44\x60\x6f\x31\x74\x9d\x31\x3b\x2d\x1e\xe4\x2f\xaf\x1f\x3d\xf9\x8c\xb4\xa2\x59\x47\x79\xde\xa7\xe7\x7d\x5a\x16\x7a\xaf\x26\x3a\xbc\xd3\xaf\xd1\x11\x3a\xac\x99\xb2\x82\xec\xb5\x58\x56\x99\x7e\xed\x1e\x63\x14\x4b\x5c\x54\xaf\x9f\x36\xe8\xcf\xd1\xfd\x5d\x41\xe8\x18\x8d\xff\x53\xa6\xb3\xf4\x10\xc6\x62\x91\xa6\xd6\x5f\x18\x97\xa8\x41\x7e\xcd\xe2\x44\xa3\xbf\xae\xc1\x8b\xf3\x7f\x15\x9a\x7a\xd2\x3d\x96\xfd\x3b\x6d\x43\x31\x39\x73\x42\x62\xe3\xda\x7f\x56\x16\xad\x5d\x70\x91\xf6\x3f\xa8\x60\x30\x29\x4c\xec\x16\x7f\x33\x00\x6b\x31\x96\x32\x4b\xfc\xb6\x51\xed\x63\x59\x1d\xda\x79\xe4\x45\x03\x18\x4b\x53\x81\x45\xf7\xae\x86\xed\x04\xaa\xbb\xe3\x06\xa2\x61\x27\xec\x7a\x68\x88\x3e\x8e\xe2\x98\x8a\xad\x01\xec\xd1\x3a\xc8\xbb\x42\xf1\xe4\xb1\x29\xa1\x02\x8b\x54\x94\xd5\x6b\x9b\x92\xfb\x6f\xd2\x81\xc4\x0c\xf0\xe1\xee\xf1\x6e\x7f\xb3\x78\x58\x0f\xc5\x65\x18\xd3\x22\x75\x3c\x19\xcf\x4e\x9e\x7f\x45\x0d\x4b\x12\x37\xdf\x97\x55\xa6\x7e\xdc\xe9\x7a\x79\xbe\x6c\xcc\x33\x66\xb8\x2d\x0d\x1c\x4a\x9d\x99\xf3\x4e\xfe\xda\x5c\x2c\x54\xcc\xc4\x0a\xc1\xe1\x4d\xf9\x62\xff\x8e\x5d\xa4\xf1\x10\x49\xb0\x5a\x61\x5d\x22\x5c\xed\x79\xdd\xbc\xf5\xaa\xc8\x21\x71\xd6\x45\x7e\xcb\xe7\x61\x6a\xe2\xb0\xd3\x84\xfb\xc8\x76\x6b\xfc\xc3\x38\xa5\xc4\x6b\x33\x6d\xa0\x6e\x64\x35\x28\x12\x71\x1a\xb1\xc0\x95\x3c\x17\xef\xb2\xea\xfe\x9c\x18\xcf\xce\x42\x80\x9a\x97\xe6\xae\xbb\x01\x92\x85\xe8\x01\xe9\x03\x23\xb6\xdf\x77\xc7\x94\xc1\x26\xa8\xd7\x24\xee\x16\x0d\x4e\x35\xa0\x9e\x87\x8b\xa1\x67\xf4\x5b\x7f\x9f\x49\x61\xfa\x9f\xc2\x82\x40\x59\xc5\x2b\x04\x20\x4f\x65\x28\xfd\x28\x06\x1e\x39\x71\x53\xc9\x42\x5f\x4b\x75\x59\x65\xe6\x0c\x62\xe6\xd8\x6c\xc8\x0f\x9d\xcf\x30\x38\x27\x11\x02\x34\x73\x30\x4d\xc2\x27\xdf\x14\xa5\x10\x5b\xf2\xe3\x74\x21\xe3\x91\x21\xa9\x27\x90\x0c\x04\x4e\x86\xf7\x3e\xa6\x06\x83\xc7\x36\xc0\x7f\xce\xe5\xb9\x3d\x56\x37\xf2\x70\xec\x06\x30\x0b\x54\xdc\xdd\xde\x6d\xae\xf6\xcf\x8b\xcd\xee\x8f\xfd\xfd\xd3\xea\xcb\xcb\xf3\x7e\x71\x75\xb5\xe9\x86\xc9\x04\x85\x41\x57\xe5\xe9\x38\x51\xc2\x65\x5c\x04\x40\x06\x18\x46\xdb\x3a\x9e\xdc\x0a\x41\x04\x6e\xf7\xe8\x10\xf3\x64\xee\xcb\xe2\xf5\xb6\xd4\xf9\x57\xe2\xbf\x41\x50\x6b\xd3\x89\xf3\x6e\xc0\x77\x9f\x9f\x70\x49\x60\x22\x87\xaa\x5a\x1c\x4b\x0d\x95\xd4\xe5\xb8\x63\xc0\x93\x30\xf4\xd6\x35\xb7\x65\x1b\x27\x9d\x5d\x36\xb0\x9f\x5c\x7e\xc2\x98\x76\x41\xdf\x4a\x1e\x8e\x32\x7b\x2d\x10\x42\xb2\x3c\xdf\x0d\xf2\xbc\x2e\xec\xe3\x89\xb4\x22\xa9\x5f\xaa\xec\xd8\x94\xcf\xb2\xf2\x0b\x16\x4f\x0c\x91\x74\xc8\x97\xb3\xf5\xf8\x7f\x9a\x2b\xb9\xb3\x48\x91\xa2\x52\x87\xc9\xb3\x23\x25\x03\x3c\x3d\xe3\x32\x8d\xb1\xbe\xb4\xac\x64\x56\xdc\xd5\xc3\xc0\x9e\x2b\xa0\xb8\x79\x67\xf2\xce\x55\x30\x96\xd3\xf9\xa8\x40\x23\x2a\x74\xf5\xb4\x59\xef\x77\xeb\xc5\xc3\xfe\xf9\x69\xd3\x06\x66\xdd\x39\x8c\xb5\x03\x5c\x54\xff\x39\x15\xb2\x67\x56\x31\xae\x43\x8d\x37\x1c\x9a\x37\x47\xcc\x2c\xbb\x37\x59\x2b\x8d\xea\xd6\x75\x53\x1e\x47\x6d\x60\x0e\x71\x8c\x4d\x23\x57\xb8\x58\x14\xd9\x01\x94\xfc\x1b\x5c\xd5\xec\x02\xce\x21\xd1\xc8\x54\xb9\x91\x87\x36\xaf\x7e\xc5\xb8\xe5\xf3\x1b\x09\x32\x50\xe1\xe0\x71\xb4\x61\xf2\xf7\x42\x1e\xb0\xb2\x74\x25\x8f\xc7\x8b\x8a\xe9\xcc\xd3\x36\x44\x44\x58\x7b\x49\x4f\xe7\x4f\x0c\x43\xdd\xf2\x19\x05\xa1\xa2\x13\x94\xe9\x43\xbf\x3a\x45\x01\x21\xca\xea\x25\xc2\x0d\x34\x0f\x65\x01\xe7\xa5\xf4\x56\x39\x2c\x0a\x62\x8d\xd9\xce\x51\x36\xd9\xc5\xfb\x1e\x05\x89\xf5\x7f\x71\x9e\x7b\x8b\xe3\x71\xb4\xe3\x8f\x53\x4d\xff\x1e\x44\xa1\x93\xac\x00\x24\x92\x5d\xca\x94\xb1\x28\xd4\xa9\x71\xee\xcd\xb8\x19\x2d\xb2\xea\xaa\x2a\x8f\x9b\x5e\xf2\xdb\x0d\x24\x24\xc2\xc8\xe9\xcb\xfa\xc1\x7f\x96\xa4\x80\x00\xfa\x0a\x0a\xf8\xb9\x3d\xa5\xd6\x7e\x24\x2b\x8b\xe5\xf9\x4a\x5e\x06\xec\xe3\x27\x14\x11\x60\x38\x3f\x70\x19\x2f\x8f\x65\x97\xe9\x47\x94\xab\xce\x15\x0d\xe5\xc0\xa6\xbe\x17\x2c\x62\x91\x2d\x56\x6d\x9b\x0a\xe4\x21\x6b\xce\x3b\x59\x65\x66\xd2\xb7\x8c\x98\xe6\xd8\x77\xb2\x29\xec\x70\x9d\xc4\x6e\x86\xff\x3e\x1e\x72\xab\xcd\xf3\xda\xe9\x8b\x5a\xca\xe6\x94\x52\xf9\x7f\xaa\x7b\x44\x5c\x58\xbf\x2f\x6b\xf2\xd6\x9e\x7e\x0a\xdc\x1e\x5f\x35\xd7\x06\x55\x6d\x90\x59\x62\x6b\x68\x16\x7f\x32\x3e\x6d\xc4\x52\xac\x6b\x67\x45\x03\x15\xd4\xcd\x23\xfc\x6a\xee\xbc\x77\xb5\xff\x69\x51\x4a\xf4\x90\xb5\x71\x57\x3f\x97\x75\x9d\xf5\x61\x60\x14\x41\x14\xfb\xba\xd2\xae\xc4\x9a\x6b\xfb\xee\x23\x07\xfe\x62\xb6\x0f\x5f\xf0\x28\x02\xe8\x30\x63\xc7\xa3\xff\x2d\xa3\x49\x13\x33\xc2\x6d\x7f\xf4\x50\x95\xe7\xe1\x92\x15\xc5\x89\x85\x66\xed\x31\x23\x2b\x4d\xd6\x6c\xdf\x64\x65\x55\x72\xe4\x01\x3a\xda\xf0\x45\x94\x12\xc5\xd2\xa0\xc0\xc3\x3a\x97\x7a\x7c\xca\x54\x79\x66\x60\x7a\xaa\x6c\xb2\x73\x2b\x0b\x9d\x77\x4d\xd6\x76\x88\x4e\xec\xaf\x75\x84\xb7\x6f\x90\xf9\x83\x22\x49\x6c\xbf\x4b\xbd\x81\x3e\xe5\xce\x90\xd9\x83\x31\x57\x72\xe0\xea\x30\x1b\x6d\x47\x32\x91\x58\x80\x3e\x56\x59\x31\x30\x43\x87\xf9\x25\xef\x64\x65\x1b\x46\xf7\x54\xa6\x0a\xe9\x2f\xbd\xa6\xf0\x50\x8e\xec\xd2\xd0\x91\x45\x52\x45\xc8\x34\x7d\x5e\x3d\xf6\x00\x6b\x77\x4c\x25\x56\xab\xf2\xb0\x6f\x23\x9a\xac\xea\xaa\x90\x91\xa6\x56\x72\xf3\x38\xf2\xa3\x61\x91\x36\x11\x75\xf1\xda\x0e\xe4\x61\xd9\xae\x15\xd5\xf4\x2b\xc1\x18\xd4\x63\xd9\x5b\xf8\xc5\xa6\xcc\xe1\x19\x2a\x07\xc4\x9d\x17\x15\x64\x91\x89\x13\xbc\xf3\xbb\xbb\xf5\x86\xec\x9f\xd7\x9b\xd5\xfa\xd1\x17\x04\x50\xf5\x31\xf0\xb2\x8f\x6c\x2c\xfb\xc8\xe2\x80\x86\xd8\x37\x3f\x56\xa5\x02\xd0\x5f\xfe\x18\xbb\x9c\xb3\x38\x88\x21\xd0\x5d\x79\x7e\x8c\x60\xfd\x7d\x32\x54\xd8\xb8\xe9\xba\xde\x7d\xe9\xc8\x1f\x13\x82\xb6\x1f\x2a\xad\x0c\xe2\x53\x3e\x6f\x32\x7f\x59\xfe\x8e\x03\x13\xe3\x86\x31\xc1\xb4\x2e\xcf\x53\x4b\x79\x16\x87\x21\x11\xdc\x31\x84\x65\xd5\xf4\xd8\x6d\x16\x87\x9c\xa1\x61\x50\x05\x45\x79\x2a\x14\x2c\x2c\xdd\x63\x44\x3b\x64\x71\x08\x96\xef\x7c\xf7\x2c\xcf\xdf\xbb\x3f\x9a\xc8\x44\x16\xc7\xb2\x4f\xe1\x03\xfb\x13\x16\x93\x84\x1a\xef\x1f\x8f\x8f\x78\xf2\xd3\x99\x60\xf8\x3b\x1c\x99\xe1\xc9\x2c\x1a\xef\x58\x3b\x1f\x94\xc5\x4c\x1b\x7c\x82\xfb\x36\xbf\x01\xa7\x6f\x35\x8e\xca\x62\xce\x08\x8a\xd4\x1d\x64\x71\x32\x52\x35\xa7\xaa\xff\x35\x5c\x44\xde\xc3\xe2\xae\x68\x46\xa9\x4c\xcc\x13\x83\x40\x20\xdf\x73\xb7\x31\x8e\x35\x68\xf7\x43\x52\x89\xfe\x8d\x6e\xfb\x7a\x96\xe7\x65\xd6\x78\x1f\xf3\xc9\xe6\x11\x47\x22\x42\xde\xcd\xae\x7c\x7d\xcd\xe1\xa1\xcd\x20\xa0\xe8\x49\x02\x2c\x8e\x89\x35\xbb\xb4\x41\xed\x43\x66\x99\x36\x59\x3a\x99\x97\x31\x57\xda\xd1\xba\x16\x63\x4f\x50\x37\x40\x04\x61\x18\x3a\x57\xb8\xaa\x59\xff\x15\x46\xbf\x8d\x78\xd0\x61\x37\x90\x53\x6c\x90\x59\xaf\x04\x0c\x40\x4b\x59\xa1\x17\xe2\x98\xca\xca\xe2\x24\x52\x8a\x0c\xc1\x81\xf5\x5d\x71\x09\x5d\x89\x13\x29\xbd\x63\x86\x97\x5b\x2e\x4f\x48\xde\x1a\x75\xf1\xe3\x24\x4d\xa4\x9a\xa8\x0c\xf9\x63\x52\x87\xca\xbb\x1d\x62\xef\xfd\x4e\x4f\xca\xe9\xed\x72\x8a\x91\xfb\x16\xc3\xca\x97\xc7\xbb\xdd\x62\xf3\xc7\x7e\x7b\xbf\xd8\xde\xfa\xb3\xa8\x50\xfb\x42\x68\x87\x1c\x1f\xb5\x07\x63\x95\x06\xb4\x9d\x3b\x68\x05\x45\xbf\xad\xd7\x5f\x46\x29\x76\xac\x23\xdd\xcd\xad\x55\x25\xd3\x67\x59\xd9\xbe\xf2\x74\x4f\x8c\xb5\xb1\xaa\x2f\x93\x5f\x8d\xf5\x40\x37\x04\x82\x08\xfb\x69\x2f\x35\x7c\xcb\xea\xb7\x51\xcc\x1a\x1b\x4a\x31\x65\x3a\xbe\x95\x05\x38\xd5\x55\x7f\x48\x05\xda\x4e\xde\x5f\x1b\x30\x50\x55\x32\xf7\xb3\x4f\x04\x32\x8a\xa3\x4e\x51\xa9\x6e\x97\xda\x0a\x3c\xe4\x4d\x84\x91\xc6\x02\xce\x4f\x48\x6f\x32\xd3\xbc\x14\x9f\x92\x57\x98\x08\x63\x8d\x55\x48\x0b\x4b\xec\x99\x1d\xa3\x9f\x2a\x42\xc1\xf1\xa6\xad\x2a\x00\x0d\xbf\xba\x2f\x93\x02\xa1\x9b\x5d\x43\x19\x71\x15\xcd\x05\x64\x0c\x4f\xc6\xdc\x96\x2a\x08\x70\x5c\xf6\x31\x19\xbf\x3f\xa9\x1f\x67\xfb\xe3\x37\xf0\x0e\x32\xff\x1b\x21\x2b\x26\xa8\x10\x54\x7b\x1b\xc1\x85\xd6\x0f\x08\x59\x98\x61\x12\x30\xc1\xb8\xdd\x78\xda\x58\x31\x85\x7a\xff\x96\xd5\x65\x75\xde\xe7\x03\x5e\x62\xbb\xf8\xc4\xb8\x48\x2b\x99\xe7\xcb\x46\xb5\x79\xf8\xb6\xb9\x40\x95\xff\x1d\xec\xed\xc3\xa6\xcc\x20\x66\x17\x91\x14\x40\xbd\x10\x40\x47\x9d\x1e\xad\x5b\x42\xd0\x38\x75\xb3\xea\xae\xc6\x89\x67\x0d\x70\xd7\xbf\xe0\x70\x9c\x97\x7e\x66\xc2\xcb\xce\xa3\xb7\x5a\xa3\xde\xae\x4e\x76\x0f\xc7\xfa\xfe\xf2\x7c\x03\x05\x54\x72\xe0\x16\xe4\x57\x27\x21\xa4\xa4\x0e\xef\xdc\x86\x74\xf8\x7d\xb6\x93\xd5\x0d\xd0\x88\xd7\x3e\x64\x85\x43\x1b\xdf\x15\xab\xc1\x62\x28\x92\x10\xc2\xd4\x97\x56\xb3\x62\xf1\x0a\x17\x8b\xf7\xec\x22\x2e\x12\x1a\x60\x91\x3a\x3f\xee\x64\x75\x21\xee\xc7\x44\xc2\x62\xc4\x7a\xd5\x0d\x1c\xf7\x47\x79\xee\xff\x9e\x80\x5b\xbc\x6f\x70\x3b\x39\x5f\x97\xa7\x6a\x66\x45\x14\x09\x28\x42\x3b\xe0\xe6\x80\x34\xde\xdd\xec\x34\xe2\xd8\xa3\x42\x5f\x7b\x97\x6e\x0e\x57\x25\x91\x26\x3c\xb5\x22\x15\x2a\x3b\xf4\xef\xa0\x02\x92\x38\x43\x2a\xdb\xcf\x32\x65\xe5\xbd\x51\xdb\x40\xaa\xfc\x3c\x9a\x15\x3a\x88\x43\x5b\xd5\x69\x63\x6d\x8b\xb8\xd2\x93\x6b\xd3\x61\x10\xf7\x38\xb6\xab\xd3\x0f\xb0\xe0\x70\x2f\xe3\x3a\xd2\x5c\xf9\xfc\x95\xd1\x9a\x60\x8e\x83\x05\xc5\xdd\x1f\xcf\xeb\xfd\x55\x27\x9e\xce\x84\xee\x71\x19\x96\xc8\xb8\x98\x91\x43\x69\x87\x71\x04\x17\xbc\x38\x5c\x1d\x1e\x7b\x96\xe7\xeb\xb2\x72\xe6\xd6\x93\x0f\x00\x33\x2c\x70\xe2\x18\x5e\x36\xe2\x42\xdf\x91\x09\xd0\x89\xf4\xe2\x49\x38\x11\xee\x0a\x55\x56\x15\xa8\xe6\x0a\x6a\xec\x35\x81\xb6\xaa\x96\x16\x41\x56\x5f\x65\xef\xed\x7b\xec\x2f\x1f\x8c\x44\x92\xdd\x5e\x95\xc7\xf3\xae\x5c\xb6\x37\x71\xc2\x3f\x1d\xdf\x0d\x13\x08\x04\x50\x79\x3f\xaf\x9d\xcc\xf3\x0c\x2e\x45\x40\x2f\xde\xec\x2e\x57\x17\x26\x26\xa1\xbb\x65\xf6\xed\x1c\xe0\xc4\x84\x91\x1c\xe5\x56\xea\xf2\x00\x2f\x45\x2d\x0d\x2c\xd4\x85\x1e\x30\x13\xc6\x48\x74\x3d\x51\xbd\xbb\xdb\xf8\x42\x93\x20\x50\x5d\x31\xf8\xe1\xe5\x61\xbf\xde\xdd\xae\x37\xfb\xed\xf3\xfa\xd1\xc3\xab\x93\x90\x30\x14\xc3\x42\xd0\xd3\xda\xdb\x78\xf8\x83\x2c\xf6\x48\xb1\x55\x75\xde\x96\xb9\xd5\x52\x9f\x2f\x05\x27\x21\x98\xc8\xde\x16\x50\x9d\x53\xf4\x42\xeb\x8f\x30\xe2\x09\xa1\x02\xa5\x91\x53\xa9\x7e\xec\xb2\x5f\x03\x02\x3f\x4b\x28\xe5\x71\x3a\x90\x68\x1e\x1f\xe4\x14\xf7\x9c\x2f\x4f\x8b\xfb\xc5\xf3\xe6\xe9\x7f\xd6\xab\x5d\x7f\xcc\x60\x14\xf3\x7c\xef\x77\xe4\x84\x11\x11\x59\x4f\xef\x06\xc4\x1e\x0a\xbd\xef\x10\x23\x09\x23\x2a\x30\x1d\x55\x6a\x5f\x8d\x38\x37\x2c\x61\x52\x63\xd8\xfa\x9f\x93\x7e\xbd\x68\x6f\xb9\x31\x3c\x0c\x90\x4d\xba\x7c\x7a\x79\xdc\xfd\xb1\xbf\x7e\xe9\xef\x2e\xe7\xdc\x2a\x77\x63\xec\x76\x57\xdf\x67\x9e\x8d\xc3\x12\x2e\x2d\x84\x22\x3d\x9d\x07\xc6\x17\xe3\x53\xc7\x32\x88\x42\x2f\xdb\xd7\x86\xff\x57\x95\xfc\x39\x74\x14\x71\xe3\x04\xa3\xe0\x5d\x28\x72\xd9\x64\xc5\xe9\xf0\x99\x68\x3a\x4b\x92\x90\x7b\x92\x89\x53\x18\x9e\x35\x5f\x64\x49\x22\x0c\xb5\x88\x20\x93\x15\xde\xa3\x81\x25\x92\xc5\x48\x64\x69\x33\xd3\x0a\xde\x33\xf8\x89\x8b\xf6\xbb\x97\xdc\x65\x89\x94\x04\x33\x28\x28\x34\x46\x35\xfe\xef\x69\x2c\xac\x00\x82\x6c\xb3\xf6\xbf\x25\xd7\xe2\xfb\x27\xfc\x67\x21\x40\xde\xc8\x8d\x93\x49\x7b\x2e\xbb\xe7\xa8\xc2\xae\x55\x76\x2b\xeb\xb7\x91\x74\x00\x4b\x94\xb4\x2a\xe1\xb5\x05\xe7\x3e\x15\x53\x9b\x9d\x76\x48\xca\xdd\x0e\x68\x5d\xa2\x3f\x78\xa7\x74\x4a\x30\x67\x99\xda\x58\xcf\x3e\x3f\xad\x23\x84\xc1\xec\x1d\xde\x0c\x19\x1f\xa4\xd0\x57\xc3\xfa\xf6\xfc\xf7\x80\x48\x91\xfa\xbc\x7c\xf9\x63\xe0\x54\xc1\x12\x48\xac\x09\x7f\x9b\x91\xc8\x1c\x77\xad\xf1\x7a\x96\x80\xe4\xd8\xae\xc8\x41\xea\x8b\x74\x38\x31\x61\x8a\x18\x6d\xf9\x0a\x85\x96\x53\xf0\x7c\x62\x12\x21\x92\xb1\x6a\xef\x40\xbb\xaf\x9e\x01\xde\x26\x06\xe2\x4e\xd7\x05\x63\xfc\x75\x01\xd5\xeb\x79\x54\x5b\x91\x01\xb3\x06\x1b\xd8\xd8\xc3\x22\x5a\x8d\xe1\xdb\xdf\x4e\x80\xd1\x5d\x91\x81\xb2\x3e\x05\xd6\x8d\x3e\xcd\x0a\xd0\xdf\x64\x55\x65\x1d\xbf\x93\x49\x12\x70\x9c\x78\xff\xef\xee\x61\xf9\xb4\x7a\xba\x7b\xec\x0e\x70\x8d\x89\x19\x46\xaa\x2e\x4b\xfd\x74\xcd\xf6\xe8\x08\x49\x89\x46\xe6\x2b\x4e\xba\x85\xe7\xd6\x61\xb5\xad\xfb\x5a\x1a\x83\x2f\x03\x6e\x65\x2e\xab\x0b\x41\x50\x3f\x4e\x71\x5f\xec\x77\x6f\x9e\x4d\x2f\x96\xe7\xc7\xf2\xe7\xf8\x61\x48\x16\x05\xd8\x6e\x29\x8d\x99\x29\x6f\x8d\xcf\x1b\x47\x11\x56\xcc\x8f\xf2\xbc\x7b\x03\xe7\xfd\x34\x19\xa2\x23\x0c\x54\xb3\x02\x8d\xd8\xed\xc3\xfa\x6d\x06\x12\x2b\x63\x1d\xc7\xf6\xc7\xe4\x16\x58\x52\xb7\x17\x37\x3e\x9b\x08\x99\xef\xa4\xd9\xf0\x30\x1f\x3f\x71\xc1\xb9\x6b\xcf\xe9\x49\x3c\x30\xb3\x21\x4a\x61\xbc\x4a\xd4\x7b\xf9\x63\x12\x08\xc8\x84\x42\xe4\xee\x2d\x5e\x8d\x05\xdd\xcd\x2f\x6d\x32\x61\x0c\xb1\x4f\x7b\x0b\x43\x5a\xe4\xb9\xd5\xf0\xdd\xc9\xfa\x07\xda\x95\xdc\x96\xf9\x07\x9a\x1f\x4c\x26\x0a\x74\x2f\xea\xf0\x5c\xe6\xf9\x28\xe5\x92\x09\x30\xd6\x97\x4c\x3a\x43\xcf\xd9\x8d\x41\xca\x04\x50\x22\xd2\xfb\x06\x6f\xd6\xdb\xf5\xe6\xeb\x7a\xb3\xbe\xda\x5b\x42\xbf\x9f\x3b\x52\x05\xa8\xcc\xf8\x9f\xb2\x0d\x92\x73\x2f\x6f\xc3\x64\x4a\x01\xbb\xf3\x4e\xa0\x50\x56\x6d\x4a\xdc\x64\x75\x93\xa9\xc9\x7b\x2d\x15\x4f\xb1\x6e\x0b\x95\x22\xc1\x97\x9b\xed\xb0\xb1\x2d\x55\x14\x22\xc9\xf7\xf6\xe9\xd9\x2f\x24\x52\xa5\xdc\xc9\xb6\xb8\x19\x3d\x3d\xa1\xb1\x8e\x88\xca\xeb\x0a\x0c\x44\x29\x47\x55\x79\xa9\x63\x06\x49\x27\x22\x6e\xd5\x85\xc6\xf6\x3f\x6e\x20\x90\xc8\xc4\xbd\x2a\x3f\xd2\x0d\x66\x07\x9a\x30\x50\xc6\x6b\x28\x83\xde\x95\x37\x36\xb4\x9c\x4c\x41\x43\x01\x42\x4f\x24\x38\x55\x85\xb4\x80\x91\x1e\x6f\x97\x06\x81\xc4\x99\xa3\xca\xe2\x1d\xaa\xe6\xf1\x74\x98\x4a\xc9\xb2\x34\x60\x46\x3a\x1c\xdd\xa2\x6a\x6f\xae\x9f\xae\xbe\xfa\x31\xba\xb6\x34\x0c\x24\xf0\x5e\xc1\xe7\x22\xd7\x4d\x49\x64\x3b\xbe\xda\x59\x3d\xf9\x04\xdc\xbe\x48\xcb\x53\xcf\x8b\x70\xa0\x34\x21\xba\x6b\x21\x71\x8a\x91\x4d\x86\x86\x07\xbf\x1a\x98\x02\x9b\x52\x2a\x2c\x91\xb1\x6e\xca\xe3\xb2\x7b\x06\x29\x4d\x42\x3e\x04\x5a\x59\x81\x9c\xf9\x57\x24\x6d\x6f\x9b\x8b\x98\xaf\x73\xf9\x3a\x9a\xe2\x29\xa3\x16\x2b\x66\x0d\xeb\xac\xe6\xc9\xfe\xe1\x8b\x9f\xac\x29\x4b\xac\x90\xb2\x83\x3d\x7a\x6e\x50\xbb\x34\xfa\x21\x9c\xc4\x69\xd0\xab\xca\x83\x5e\x59\x27\x68\x7f\x98\x33\x6e\xc5\xe7\xf2\x15\x54\x63\x47\xbf\x71\x4b\x28\xe5\x6d\xd2\x8b\x8c\xa2\xf4\xf4\x3a\x66\x61\xb3\x94\x0b\xe6\xb5\x91\xbf\x41\xd6\x17\xbe\x4e\x17\x1e\xa8\xed\x58\xe9\xc1\x92\xab\xd5\xed\x1e\x74\xd6\xec\xc3\x60\xfc\xcb\xb9\xb1\xde\x77\x7b\x2b\x43\xe1\xbf\x26\x8a\x53\x44\xed\xb4\x91\xc3\xa0\xd1\x98\xc6\xc2\xea\xf9\x1f\xe5\x19\x9a\xb7\x70\x3e\xc8\x4d\xe3\x24\x41\xa5\x4e\xe7\x27\xb9\xd6\xd9\xcc\xd5\x89\x98\x61\x41\xd0\x92\x31\x3b\xbb\xca\x61\xff\x3b\x4d\xb4\x42\x4c\x98\x2f\xcf\x25\x76\x7e\x26\xbf\x0f\xff\xe9\x6e\x5c\x62\x08\x71\x6e\x2d\x8e\xf1\x37\xb4\x2e\x62\x69\x4a\x95\x37\x5a\xc2\xbc\x76\x81\xe1\x04\x3e\x45\x8b\xa7\xbb\x85\xfc\xf8\x51\x45\x36\xd5\x11\xc1\xb8\x74\xa1\xeb\xaf\x50\x0c\x18\x47\xa9\x4e\x63\xe8\x9d\xea\x3c\xb3\xc0\x6e\xf5\x23\xe6\xd0\xfc\xdd\xd2\x40\x31\x7a\xf7\x4d\x8d\x47\xf8\x79\x05\xc8\xa6\xfc\x54\x18\x83\xa5\x40\x2d\x6a\x66\xb7\x79\x7a\xfc\xea\x2f\xc6\xa4\xd6\x6a\xdb\x72\xe7\x9e\xab\xf2\xd7\xa4\xcf\x9c\x1a\x43\x78\xdc\x59\xad\xa2\x6c\xc1\x10\x8e\x37\xfe\x12\x15\x44\x06\xc3\x39\xe7\x8c\x6e\xad\x94\xbb\x64\x41\x85\x94\xa0\xc4\x29\x3e\x89\x5d\xf9\x72\xe7\xd7\x90\xee\xb8\xd5\xac\xd6\x60\xe4\x29\x1f\xd5\x09\x54\xc8\x28\x06\x36\x57\x00\xc7\x9b\x4e\x0e\x97\xa9\x30\x8a\x70\x6d\x3d\x22\xa6\xeb\x41\xfe\xc2\x4f\xb5\x29\x73\xff\x30\x55\x18\xa5\x84\x0e\x24\xe9\x06\xb6\x4a\x4c\x85\x69\xe8\x60\x22\x68\x21\x7a\x1c\x7c\xa7\x8e\x31\x21\xdf\xa7\xf0\x81\xda\x1d\x53\x24\x0c\x78\x67\x01\xee\xdb\xf5\xe3\xd9\xab\x48\x6c\xa5\xae\x96\xf0\x9a\x4d\xc8\x02\x6e\x04\x0b\x0c\xb1\x68\xf3\x5f\x68\x30\xfc\x99\xb9\xe6\xfc\xad\x67\x04\xb8\x83\xb1\x9c\x6a\xa8\xd0\xee\x67\xfc\x2c\x15\xa3\xb6\x13\xe9\x18\x95\xb2\xca\x24\x96\xa3\x86\x5e\xc0\xe3\x4f\xf0\xd8\xae\xd4\xf7\xe5\x6b\xd7\xfd\xa8\x9d\x12\xef\x47\x59\xab\x8a\x38\xc1\x55\x62\x79\x3a\xef\x47\xac\x8d\xf9\xc0\x4c\x45\xa9\x15\x28\x3a\x5a\x52\x70\xfb\xdc\xda\x2d\x72\x24\x79\xc0\x54\x1c\xa7\x08\xae\xdd\x42\x73\x3a\xfe\x1d\xe7\xe7\x13\xf5\xa1\xc9\x97\x8b\x80\xd9\xde\x80\x05\xae\xc1\xcf\x75\x6e\x25\xdd\xfc\x62\xac\x04\xe7\x58\x89\x32\xbd\x94\xe4\x18\x6b\xa9\x92\x40\x07\xda\x05\x83\x8b\x3c\x5f\x95\xe5\x8f\x0c\xfa\xa3\x3c\xc0\xe6\x8c\xdd\x2e\x76\x4f\xbb\xc5\xfd\x50\x27\x8b\xa9\x24\x56\x89\x15\xf8\x2a\xe4\x68\xca\x4b\x6d\xdd\x1a\xae\xcb\xaa\x9d\x14\x5d\x7a\xaf\x52\xce\xf1\x94\xed\x25\xd5\x5d\x1f\xbc\x4b\x70\x94\x4a\x92\xd0\x25\x01\x4b\x70\xb6\x24\xa3\x6a\xe9\xb0\x66\xaa\x94\x8e\x51\x91\xe1\x27\xc6\x2c\xb3\x62\x2d\xb8\x30\xf5\xc1\xa8\x52\x26\x88\x1c\xfc\xf5\x59\x56\x35\x5c\xf8\xe3\x4f\x64\xd9\x99\xd2\x5c\xe2\xae\x7c\xfb\x7d\xd7\x0c\x7f\xa3\xe6\xca\xa7\xa5\x4f\x45\x87\xf2\xde\x80\x9a\xbc\x42\xc0\x09\x32\xe4\xbe\x64\xb9\x2e\x0b\xf0\x56\x55\x4c\x41\x12\x58\xae\x49\x8d\x2e\xab\x0d\x62\x3b\xfb\x83\xd6\x68\xf0\x0c\xb2\xa2\xed\x2f\x9b\x3c\x39\x13\x19\xcc\x09\x3c\xec\xf0\xb1\xbc\xcf\x0e\xd9\x07\xb8\x4e\x65\x24\xc5\x46\x93\x3c\xa4\xb2\xae\xa5\x2e\x2b\x77\xba\x69\x92\xa8\x03\x66\x84\xa3\x38\x37\xe5\x73\x3f\xaf\xff\x19\x76\x5d\x07\x6e\xca\x28\x59\x69\x5b\xb9\xaf\x9f\x26\xe9\xb8\x0e\xb9\x55\x6c\x7a\xcf\xaa\x76\x63\xf2\x40\x5c\x1d\x46\x8a\xc6\x43\x5e\x90\x7d\xfc\xfe\x28\x58\x9c\xe6\xc3\xe2\xf1\x1f\xbc\x43\xee\x43\x24\x94\xc8\xb0\x3e\x15\x79\x36\x11\xca\x65\x9a\x3a\x5d\xc5\x3a\xfb\x2f\x0c\x84\xa5\x99\xa6\x34\x46\x00\xfe\x66\xbd\x78\x5e\x6f\xf6\x77\x8f\xbb\xcd\xfa\xf9\xee\x6a\x7f\xbd\xbb\xdf\x6f\x9f\xd7\xeb\xab\x6e\x20\xb3\xfc\xda\xe7\xf2\x27\x54\xa5\x59\x9e\xd2\x1e\xcf\xa0\x69\x42\xbd\xe5\x0f\xfe\x10\x32\xfd\xfa\x34\xc6\x02\xd2\xfd\x6e\x43\x87\x2f\x8f\x66\x24\x41\xfd\x94\xbb\xbb\xc7\xf5\xf8\x80\xb4\xd1\x8a\xc9\x8e\xb5\xe7\x77\xfb\x63\x3c\x50\xf8\xe2\xec\x9e\x9e\x97\xdd\xdf\xa8\xed\xd0\xd5\x50\x68\x1f\xa9\xce\x4f\x10\xcd\xb9\xb2\xde\xe7\x6f\x70\x90\xbf\x54\x1f\x0a\x69\x0e\xa1\xaf\x3f\x35\x83\x02\xed\xf4\xf3\x86\x60\xb7\x67\x59\xfe\xb2\xf4\x66\xf7\xf7\x28\x14\xca\xa1\xdd\x3b\x43\xd2\x89\xed\x0a\xd3\x51\x92\x60\x21\x1d\xe7\xd9\x67\xf8\x2b\x1d\x49\x19\x1a\x1f\xda\xd8\xd2\xf8\x35\xb4\x19\xb1\x2e\x7f\x5e\x97\xd5\x75\x59\x4d\x16\x5f\x1d\x47\x29\x56\x30\xa6\xe4\x6d\xfa\xc1\x0f\x11\x42\x61\x5e\x6e\xd1\xaa\xeb\xe6\xcd\xe9\x24\x7c\x82\x56\xd5\x22\x51\x48\x2c\x41\x13\xbf\xa3\xe7\x42\x5c\xa5\xfe\x1a\xda\x60\xd2\xc5\xe4\x37\xa7\x62\x79\xbe\x6b\x97\x9e\x26\x9c\xcc\x87\x44\x11\xe8\xca\x95\xbb\x72\x00\x9f\xd0\x92\x47\x23\x09\xfc\x07\x78\x2a\x9c\x0d\x4b\xf5\xcf\x98\xe4\x5a\x2a\x85\x64\xeb\xc3\x5e\xb6\xe9\xc3\x5b\x56\xbc\xee\x61\x28\xff\xc7\xb4\x34\x5c\xa9\x6e\xc2\x66\xda\x16\xa0\x5c\xb7\xe8\xae\x18\x97\xce\xdc\x67\x52\xe0\x28\xa9\x77\x03\xcd\xf6\x78\x9a\x24\x34\x5a\x85\x80\xbd\xdf\xde\x84\xaf\x42\x37\xb0\xf9\x5b\xaf\x8c\xc6\xf7\xff\xb1\x6c\xe4\x0f\x38\x3b\xc9\x96\xf6\xa1\xde\xad\x9e\x9e\xe7\x83\x18\xad\xe3\x14\x92\x91\x19\x0e\x23\xa3\xd0\x5f\x03\x03\x9c\x01\x5d\x3f\x66\xf2\x13\x40\x28\x8c\xe2\x51\x7c\xe0\x02\x6a\x3c\x2a\x56\xfa\x4f\x24\x80\x20\xc7\x36\x01\xb2\xe1\xef\xfc\x6c\x35\x4a\xa6\xaa\x2b\xb8\xd9\xfe\xc9\x10\x0a\x3c\xba\x4c\x63\x12\x2d\x5c\xf2\xb7\x3a\xab\xee\xe1\x43\x10\xc4\xd8\x5f\xbd\xba\xdb\xee\x36\x77\xcb\x17\xcb\x61\xf1\x9e\x32\xdd\x28\x26\x3c\x7e\xb4\xc9\x61\x09\xcd\x4b\xa1\x72\x78\x80\xea\x47\x0e\x08\x77\x1d\xed\x73\x2c\xf0\x1f\x4b\xa2\x20\xea\x3d\x01\x91\xbb\xd3\xbe\x3e\x6d\x8e\x34\xba\x4d\x10\x06\x4c\x5b\x11\x94\xdd\xb7\xa7\xcd\x97\x41\xf5\x0d\x48\x02\xd0\xab\xb5\xfb\x86\xcf\xf8\xe3\x8c\xd9\x1d\xc8\xb1\x90\x86\x20\xad\xa9\xa6\x1e\x03\x66\x28\xb6\xc0\xfe\xdf\xff\xdc\x0f\x17\x40\xe0\x9c\x06\xde\x2d\xf3\x56\xd6\x9b\xb2\xbf\x4b\x3c\xa6\x28\xdd\xbc\xac\x64\xa1\x3d\x1f\x62\xfa\x66\x0c\x9a\x63\xfe\x63\x09\x41\xa0\xf6\xc3\x1f\xeb\xee\x4c\x69\x48\x48\x4f\x7c\xb7\xed\xd1\x29\x94\xb8\x1d\x85\xd9\x2b\x5a\xcf\xcc\x56\xf8\x21\x0a\xac\x94\xd9\xb0\xc5\x38\x9d\x56\x7f\x57\x22\x1d\x1e\xff\x80\x30\x05\x31\x4b\x50\xf7\xc9\x5e\xf0\x25\x48\x1f\x62\x66\xb0\xd5\x5d\x9d\x72\xa8\x2f\x0a\x5b\xff\xc7\x7f\xdd\xb9\x05\xb1\x96\x58\x5b\x99\x21\x7b\xa6\x6e\xf6\x37\x32\xf3\x55\x2e\x48\xb8\x40\x25\xf5\x7d\x8f\x23\xb3\xf5\xcb\x45\xa1\xef\x65\xa1\xdf\xb0\xdc\xf7\x3f\x52\xfd\x38\x96\x1f\x48\x4a\x41\xe2\x34\xaa\x16\x77\xdf\xd6\xcb\xd1\x7c\x48\xc0\xba\x9b\xdf\x40\xb3\x83\xc3\x71\xdb\x9c\x8c\xb9\xb0\x09\x60\x20\x13\x46\x87\xd2\x5c\x77\xab\xa7\x4f\xf2\x4d\x90\x8a\xe0\x74\x5e\x42\x75\xfa\x6b\x18\xf2\x81\xd4\xb6\x35\x72\x2a\x50\x89\xe2\xb9\xca\x0e\x65\xa5\x33\x57\xff\x19\xa5\x3c\xf3\x3f\x25\x8d\x15\x02\xfb\x7c\xd4\xd6\xee\x78\x0e\x4d\xe5\xb8\x4b\x3e\x08\x81\x34\xa1\x58\x13\x80\xe6\xed\x5f\x27\x89\x8e\x94\xfd\xa1\x34\xb2\x5a\x15\xae\x9c\x35\x76\x59\xf5\xa3\x80\x5a\x55\xe9\xfa\x82\x04\x06\x4a\x44\x08\x80\xb2\x81\xf3\x75\x59\x75\xd6\xf0\xed\xb1\x04\xb7\xec\x5b\x32\x12\x69\x01\x65\xac\x43\xbb\xe3\xd9\x64\xc5\xab\xc3\xa5\x8c\x7f\x22\x48\x8d\x32\x30\xdb\x6b\x2b\x6a\xba\xde\xdd\xee\xb7\xeb\xd5\xd3\xe3\xd5\x7e\xbd\xd8\xdc\xff\xb1\x5f\xde\x6d\xae\xf6\x9b\x45\xc7\x9f\x06\xd0\x9a\x45\x2e\x27\x40\x51\xda\xe1\x06\x0e\x26\x0c\xb0\x6c\xb6\x7a\xcb\x0a\x79\x9f\x19\x18\x79\xe0\x7f\x88\x80\x33\x01\x0d\x71\xcf\xb4\xdf\xbd\xc5\x6b\xb9\x5a\xf8\xf5\xd2\x04\xdc\x7a\x62\x61\xff\xdc\x7a\x73\x74\x87\xe2\x08\x6b\x58\xd6\xf3\xee\xaf\x29\x6a\xcb\x04\x71\x82\x08\xb1\xe6\x97\xb3\x95\xf1\x1f\x0c\x49\x82\x0d\x35\x0d\xef\xcf\x32\xd3\xdd\x9f\x75\x84\x09\xc0\x0f\x50\x4a\x5e\xd4\xed\xc6\x33\xc4\x10\x61\xdd\x5f\xf6\x35\x34\xa1\x57\xdf\x31\x2c\x96\xb8\x7b\x17\xf0\xab\xb9\xaa\xe4\xcf\xc1\x0d\x32\x3c\x4c\xb4\x0b\xb1\xee\x65\xdd\xfc\x4d\xf3\xc9\xf0\x28\xc1\x6a\xd9\xba\xca\x06\x15\x2f\x13\x85\x11\x23\x1d\x42\xb9\xde\x80\x06\x38\x74\xb1\x81\x89\xa3\x00\x3b\x9a\x3e\xcd\x71\x33\x60\x12\x0e\x98\x58\xb0\xd0\x62\x93\xaa\x1f\xd0\xec\xaf\x2c\x03\x7d\x39\x51\xc2\xc4\x71\xf8\x46\x5e\x5f\xfd\x83\x27\x19\x27\xd6\x3c\xfa\x6a\x7d\xbd\x79\xda\xee\xf6\x77\x8f\x77\xbb\xbb\xc5\xfd\x04\xba\x69\x84\x13\x96\xf8\xcc\xb3\xda\x09\x77\xf4\x17\x22\x4c\x2c\xad\xf4\x7a\x9b\x46\xd7\x60\x77\x8e\x07\x68\xa4\x96\x8d\xf4\xcf\x77\xfc\x99\x24\x4c\xb9\xdb\x33\xbf\xef\xbe\x3a\x35\xa6\x4f\x91\xd4\x46\x06\xb6\x50\xf3\x90\xe5\x43\x77\x30\x66\x24\x13\x71\xe7\x3b\x52\x9f\xf2\xc6\xa9\x8f\x8d\xbf\x51\x26\xc2\x70\x8f\x49\x7c\xcf\x1a\x58\x95\x1a\xe3\x89\x51\x08\x61\x52\x2a\x90\xb0\x95\x15\x23\x2b\x96\xf1\xa5\xa4\xa9\xb2\xea\x0a\x83\x7d\x62\x36\x64\x34\x8a\xc4\x88\xba\xfb\x65\xac\x2f\x9a\xbf\x66\xa5\x93\x30\xf1\x81\xea\x43\xed\xb5\x11\x8c\x0e\x2c\x47\xf1\xe7\x9b\x6c\xb6\xb2\x29\xeb\xb7\x6c\x2b\xcf\x75\x77\x38\x0a\xe3\xa8\xa3\x90\x8f\x6b\xe5\x6e\x08\x44\x1a\x73\x8d\x42\x1e\x60\x25\x5d\x85\x8d\x8f\xb7\x3b\x03\x09\xc1\x68\x7b\xd1\xc6\x73\xef\xce\xc3\xc3\x01\x2c\x27\x23\x8d\x24\x4e\x9c\x58\xaf\x0b\x7d\x2c\xb3\x62\xc0\x56\x9f\x0b\xd9\x8c\x21\xd4\x6e\x95\xb6\x05\xf8\x60\xfd\x8f\xfd\x4f\x30\x49\x90\x4a\x34\x35\xed\x71\xdd\x9f\xaf\xf8\xc6\x68\xab\xe2\xf8\x6d\x7d\xe7\x97\x43\x7b\x36\x1e\x84\x44\x51\xf7\x54\x97\x9d\x0b\xd1\x5d\x81\x8c\x85\xcf\x4e\xca\x83\x90\xd9\x1d\xaa\xb1\x35\xdd\x5e\x39\x80\x07\xa1\x89\x99\x65\x9e\xff\xea\x29\x1f\x3c\x20\x84\x6b\x27\xbf\x7f\xc4\x20\x6d\xda\xdb\xe0\x01\x61\xc1\xc0\x85\xc5\x11\xe1\xf4\xe2\x15\xed\xd4\xdd\x18\x1a\x24\x89\x27\x65\xda\x30\xaf\xcd\x74\x46\x93\x9d\x07\x54\x1a\x8c\x29\x77\x50\x37\xc9\xff\x74\x1f\x55\xda\x0b\xb3\xdf\x97\xaf\x96\xe2\xa1\x75\x35\x3c\x8c\x93\xea\x2d\x2b\x7e\x0c\x3b\xfc\x3c\xa0\x10\x5a\x65\xcd\xae\x0f\x54\x4f\x2e\x9d\xb1\x08\x29\x4f\x6f\xe5\xcf\x07\x59\xb8\xaa\xf8\xa2\x02\xa7\x91\xa7\xaf\xcb\xf9\x8e\x22\x0f\x98\x20\xf8\x44\xd1\x9d\xa2\x1e\x49\x74\xb7\x07\xad\x4e\x04\x1a\x83\x5b\x39\xb1\xc9\x4f\x65\x52\xe2\x6a\xed\x4c\xda\x11\xa2\x04\x1a\x19\x35\x93\x4b\xe4\x44\x58\xc8\x31\x92\x29\x9f\xab\x52\x9f\x94\x83\xea\xce\x41\xf8\x79\xc0\x23\x11\x0e\xfc\xa7\x9c\x63\x9b\x7b\xd8\xe3\xab\x88\x62\x82\x2f\xe4\xc3\xe2\xfb\xfe\x65\xd5\x46\xe6\x23\x3d\x7b\x1e\xc4\xa1\x62\x03\x6c\x6d\xef\xb4\xc5\x83\x98\x5a\xef\x89\x81\x9b\xe3\xf2\xbc\x81\xd7\x53\x2e\x7b\x97\x97\xdf\xff\xa1\xbf\x23\x0f\xe2\x94\x60\x07\xed\xe9\xeb\xd3\x60\x9d\x6b\xff\x2e\xa9\xad\x54\x1f\xb2\x6e\x52\x0a\x4e\x90\x13\x8c\x51\x63\x56\x60\x7f\x0b\xc5\xeb\xda\x5d\x66\x81\xbd\x90\xba\x1b\x6b\x42\xe6\x9a\x3c\x4f\x47\x07\x58\x6c\xe7\x3e\x3e\xe0\xb9\x45\x97\x07\x49\x00\x69\xcf\x08\xbc\x2a\x0f\xf2\x92\x13\x3b\x5b\x67\xe0\x81\x8c\x04\x36\xc9\x6f\x70\x2f\x01\x99\xe3\x4e\x32\x5a\x5e\x78\x20\x93\x48\xaa\x9e\x57\xd6\x33\x0f\x2e\xb6\xf8\x39\xbb\x36\x1e\x28\x16\x63\x89\xda\x96\x57\xdd\xe2\xb0\xde\xf8\x5f\xac\xe2\x18\xe3\x30\x17\xe3\x61\xb7\xad\xb2\xfa\x4a\xf3\x2a\x31\x3c\x50\x12\xd0\xf3\xd8\x26\xf6\x4b\x4b\x21\xda\x97\x45\x7e\xde\x5f\xc1\x7b\x77\x62\x15\x61\x79\x6b\xdf\x81\xef\x3e\x8d\x49\x78\xa0\x35\xef\xe4\x02\xdd\x36\x87\xb5\x97\xac\x2c\x76\xbf\x9e\xaa\xec\x35\xeb\x9e\x33\x84\xc6\xf6\x14\x3e\xcd\xa3\x43\xb7\xe2\xf3\xa0\xcd\x0b\xdb\x2b\x7e\x2f\x1b\x40\x89\xc2\x89\x68\x20\x0f\x20\xb6\xa0\x8a\x3e\x81\x98\x64\x0b\x7e\x1c\x10\x44\x9c\xd9\xa7\x7d\xa7\xca\x75\xa1\xed\x53\x1b\x8f\x33\x81\xb4\x35\xe3\x21\xa7\xd6\xc1\x41\x78\x60\x88\x05\x85\xad\x86\x29\x7b\x76\x98\xf7\x65\xe5\x81\x89\x35\xbe\xff\x6f\xb2\x7e\x5b\x66\xe5\x01\x9a\x2a\x53\x6d\x2a\x92\xcb\x06\x6a\xff\xf6\x8c\x23\x9c\xc1\x1e\xcb\x03\xa3\x43\x1d\x7a\xe0\x4a\xfb\x45\x4e\xf1\xc2\x1e\x0e\x03\x99\x60\x76\xe5\x5d\x0c\x51\x8a\xe8\xd4\x4b\x8f\xf9\x0b\x09\x03\xe5\x14\xad\x0b\x55\xb6\x41\xf4\x5e\x43\x47\x82\xf3\x27\x0b\x59\xaa\xdc\xab\xfe\xfc\x56\xc9\x7a\x14\x3d\xf0\x30\x14\x04\xc3\xac\x7b\xf9\xeb\xbf\xdd\x47\xc0\x38\x0f\xb3\x8e\x83\x8c\x8b\xf6\x68\xda\x85\x24\x88\x11\xe6\xab\x4b\x67\x9d\x3d\x3d\x1e\x2a\xdc\x87\xaf\xdb\xa5\x29\x64\x4c\x7c\xa2\xf6\x3a\xbe\xc1\x21\x0d\xad\x26\x68\x8a\xfb\xbb\x45\x1c\xfa\x43\x20\x71\x43\xb9\x2d\xf3\x73\x1f\xc9\xf2\x90\x51\x40\xee\x53\x1b\xbe\x8f\xdb\x78\x3c\xe4\xa1\x15\xdf\x90\xda\xf6\xad\xab\x73\x1b\x49\x8d\x67\x48\xc8\xb9\x05\x11\x37\x7d\xa9\xc6\x78\x16\x3e\x0f\x79\xca\x85\xd5\xc5\x70\x4c\xe3\x41\x3a\xd2\x0d\xb1\xe0\x47\xa7\xba\xb8\x29\x9b\xf2\x82\xe4\x39\xfe\x44\x14\x48\xe7\x60\x75\xde\x57\xe5\x59\xe6\x4d\xd7\x86\xe1\x61\x44\x19\x02\x57\x1c\x15\xf0\x34\x03\x71\x99\x8f\x13\xc2\x48\x58\x50\xc6\xbe\x5d\xfa\x9a\xbd\xc7\xbf\xd9\x4e\xc1\x78\x68\x4c\xa4\x18\x80\x32\xbb\x2f\x8f\x53\x8e\xac\x2e\xff\xba\xec\xe4\x2f\xaf\x22\xe9\x47\x80\xb4\xb2\x3a\x5e\x26\x7e\x18\x5b\x7c\x58\xe8\xf8\xa8\x35\x38\x9e\x39\x82\xd0\xde\xb0\x04\x9c\x32\x72\x7b\xc7\x07\x34\xa6\xf1\xef\x10\xc4\x06\xf4\xce\x54\xf9\x33\xa8\x24\x0f\x85\xb4\x32\x03\x5f\x6f\xbe\x8d\xd6\x41\x7f\xb8\x0d\xbc\x3b\x00\xe9\x18\xa2\xd0\x66\x5d\x1a\xdf\x97\xf6\xd5\x9d\x36\x39\x78\x28\x03\x0b\x9c\x96\x5a\x7b\xb1\xaa\x39\x18\x04\x0f\x25\xd1\x36\x5a\x6a\xbf\x64\xcf\xfc\xd9\x65\x12\xa2\x1e\xa5\x23\x3e\xd5\xa5\x99\x5c\x9c\x62\x3a\x0e\x46\x4e\x28\x57\x0e\x94\x32\x5f\x5f\xe5\xa1\x02\x61\xd2\xae\x1d\x80\x5a\x4a\xed\x6c\x58\x5d\x3d\x7e\xf0\x01\x9d\x00\xbe\xfd\xdf\x16\xf7\xf7\xeb\xdd\xfe\xfa\xe9\xe5\xf1\xaa\xdb\x9f\x42\x08\x03\x64\x08\xb6\x21\x65\x7b\xa7\x0b\x3d\x79\xfb\x3f\x98\x94\xa0\x00\x97\xaa\xeb\x97\xdd\xcb\x66\xbd\xbf\x5a\x7f\x5d\xdf\x3f\x3d\x3f\xac\x1f\x77\xfb\xe7\xa7\xa7\xfb\xee\xf4\xce\x09\xc4\xe2\x6b\x27\x77\xd7\x74\xeb\x52\x9e\xbf\x14\xd9\x7c\xe5\x88\x93\x80\x92\x60\x58\x37\x5f\x39\x87\xcd\xf1\xad\x24\x41\x1c\xc5\x66\xd8\x49\x1d\x2d\x8c\x24\x48\x2d\xf8\xf9\x55\xd6\x7b\x94\xc9\xdc\x1f\xbc\x70\x21\x27\xa1\x90\x9c\xf5\x75\xcd\x0d\x48\xe7\x88\xd4\xd1\x8a\x38\x09\x13\x40\x8b\xe0\xbf\xd3\xb1\xe8\x0b\x93\x9c\x90\x04\xb0\x70\xd6\x3e\x21\xab\x3c\x39\xfe\x69\x44\x1a\x63\x59\x7b\x6d\xae\xd7\xcd\xcd\xd1\xdc\x22\x94\x24\x8e\x17\xdd\xc8\xac\x00\x3d\x7e\x73\x09\x95\x16\x4e\x77\xbb\xd8\xdc\xed\xd6\x7d\x45\x97\x13\x16\x2b\x65\x7d\xd0\xbd\x40\xd7\x4c\xe9\x9c\x13\x1e\x00\x52\x07\xf3\x76\x41\xb9\x6a\x77\xa8\xaa\xfc\xa9\xbf\x01\xfc\x08\xfd\x99\x38\xb7\x99\xef\x7e\xfd\x78\xb5\xbf\xea\xaa\x3e\x9c\xf0\x38\x08\xa9\x95\xc8\xc0\x30\x64\x48\x8a\xc6\x1a\xde\x27\xec\x05\xe1\xce\x11\x99\xc4\x43\x46\x1f\xdc\x2a\x1c\x7a\xf0\x17\x27\x31\x0d\xa9\x23\x14\xc3\x5c\x28\x40\x44\x44\x30\xc4\xf6\xe6\x35\x76\x81\xf5\x17\x28\x84\x46\x89\xc6\x76\x2f\x37\x65\x75\x18\x8a\xc0\x71\x22\x64\x84\x32\x4b\x99\x2a\xb1\x6f\xcb\x06\x44\x6e\x4e\x12\x11\x53\x37\x2b\xb6\xbd\xf9\x3f\x27\x49\x1a\xe2\x52\x7e\xb2\x3e\x15\xb7\xb2\x5e\xc2\xeb\xc9\x6f\x5d\x44\x52\x6d\x86\x5a\x43\x77\xe6\x56\x56\x6d\xf6\x32\xad\xee\x71\x92\x06\x61\xa4\xad\x1e\x33\x34\xf0\xec\xa8\xfa\xfe\xa0\x54\xde\x65\x72\xfd\x0b\xd4\x80\x58\xcb\x49\x0a\xd6\xb1\xe2\x21\x1b\xf8\x80\x4d\xde\x9b\xd4\x44\x46\x38\x30\xcc\x1e\xf9\x2f\xfe\xd3\x8a\x47\x44\x38\x42\xd4\x76\x80\x60\x9b\x9c\x40\x89\x38\xee\x70\x77\x50\x48\xb4\xb4\x1d\xff\x00\x4d\x52\xcf\xfc\xf4\x62\xbc\x93\xc7\xa3\x29\x4b\x94\xd5\xd4\x6d\xde\x56\xf8\x0e\xb8\xab\x1d\x0f\x93\x82\xdb\xa0\x57\x8f\x40\x62\xfe\xb0\x0e\xb4\x1a\xa8\xf7\x7a\xbe\x5e\x77\xd8\x3a\xcf\xad\x77\xb7\xcb\x53\xd3\xf4\x9f\x03\x23\x11\xf4\xbb\xbb\x5b\x6f\xf8\xa0\x5e\xc9\x89\xa1\x4a\xd8\xb7\x2a\xcf\x8a\xbf\x4e\x59\xfd\xd6\x69\x24\x8e\x9a\xf4\x9c\x18\x29\xd1\x21\xa7\x06\x57\xa2\xbd\xa9\xca\xd3\xd1\xa9\x18\x0d\x5e\x76\xa3\x62\xeb\xcc\x6d\xf3\x57\x8b\xa1\xde\x95\x76\x3e\x6e\xcf\x87\xb4\xcc\x31\xcf\xb6\xc3\x69\x90\x72\x94\xba\xf0\xe0\xd3\xfb\x76\x09\xdd\xd3\xee\xb0\x4e\x12\xa7\x62\x7a\x5d\x56\xaf\xd9\x3b\xe8\xd5\x9b\x1c\x39\x76\x72\x1a\x18\xf0\xa6\x29\x7e\xf1\x78\x80\xba\x1e\x1a\xf2\xbb\x91\x61\x68\x25\x47\xeb\x06\x64\xbe\x7b\x83\x7b\x80\x1f\xfe\xab\x42\x08\x1c\x41\x18\xab\x05\x5e\x88\x7e\x7c\x1b\x28\x09\x6d\xa1\xa3\xeb\x00\xbf\x42\x31\x54\x26\x1b\xdc\x8a\x76\x2c\x93\xbd\x82\xf1\xe4\x5a\x08\x01\xd6\xf3\x61\xa7\x07\x53\x86\x5b\xff\x71\x46\x00\x9f\x53\x02\xd2\x06\x06\xd9\x6b\x01\xfa\x23\xe6\xe3\xe7\x64\x85\x71\xf8\x40\x09\x18\x2b\x7c\xa5\xd4\x06\x54\xc7\xff\xe0\x94\xf2\xd8\xf6\x25\xb6\x57\xc3\x2c\x98\x52\xc1\xd0\xa5\xc5\x66\x7c\x48\x2d\x1d\xce\x2c\xca\x64\x1c\x76\x52\xc3\xeb\x5f\x47\x18\xf8\x35\x8f\x71\xa5\x56\x4c\x7f\xfc\x0b\x39\x07\xbb\xe8\x64\xfd\x93\xd8\x20\x1d\xeb\xa2\x1f\xc7\x29\x8f\xe2\x44\xa2\xd5\xde\x49\x7d\xc0\x51\xe7\x94\x27\x04\xcb\xce\xd9\xe1\x58\x56\x8e\x4a\x7d\x5d\x5e\x34\xef\x26\x1f\x52\x09\xf6\x2b\x8f\x55\x66\x39\xed\x5e\x2b\x8b\xd3\x28\xb6\x74\x2c\xab\x9f\x8f\x7d\xa0\x79\x6d\x1d\x4e\x05\x25\xb8\xc3\xef\xbc\x2e\x0c\xa7\x22\xb2\x0c\x49\x0c\x5a\xc6\xc1\x18\x15\x49\x02\xd6\xd5\x76\xf0\x18\x92\x50\x24\x6a\xe0\x6d\xdd\xbd\x21\x09\x97\x88\xa8\xf5\x0b\xbf\xdd\x1c\xdc\x41\x69\x08\x3e\xbc\xed\x11\xaa\xc3\xe8\xf1\xa5\x81\xc6\x82\xa8\x8d\x13\xae\x65\xfd\x36\x4c\xf6\xdd\xee\x93\xfc\xe9\x47\x0b\x85\xe7\xc1\xb7\xb9\x90\xa7\xa6\xb6\x1c\xb5\xc9\x83\x50\x51\x88\x17\x09\x87\xac\x83\x48\x60\x53\xf9\x22\x68\xbd\xd0\xb9\xe4\x54\x49\x82\xe9\xf6\x73\xf6\x7d\xeb\xaf\x52\xa5\x0c\xa1\x1c\x06\x1a\xf5\xf6\xb5\x6c\xe0\xf1\x74\x40\x43\x9b\x42\x23\x7c\x78\xbc\x0e\x53\x95\xca\xc4\x0a\xb3\x79\x7a\xd1\xfd\x10\x80\x37\x4a\x57\xa9\x8e\x23\xa6\x1c\x9e\xa6\x6e\xb6\xa7\x14\x97\xa5\xb9\xb6\x24\xa7\x3a\xa1\xc0\xfa\xd8\xdd\xed\xa2\x93\x6f\xd7\xa0\x91\x2c\x67\x64\x96\x4f\xc1\x48\x9c\x82\x10\x58\x4d\x72\xdb\xe5\x5c\x83\xcd\x8f\x94\x61\x8a\xcc\x80\x5e\xa6\x2f\xbb\x54\x80\x98\xaf\x6f\x50\xd0\xa1\xad\xf3\x41\x96\xf7\xe1\x11\x35\x34\xa4\x0e\xa9\xde\x06\xa6\x16\x58\x4c\xa2\xf1\x3a\x6a\x58\x18\x49\x17\x54\x87\xe3\xcb\x67\x41\x08\xb6\x40\x94\xd5\x6d\x4e\x34\x99\xb3\x2c\x48\x83\xc4\x6a\x0d\x9b\x1c\xb3\xfb\x3e\x64\x64\x24\x04\x7c\x2a\xe9\xe9\x7c\xa7\xca\xa1\x89\x01\x67\x84\x11\x8c\x8c\xad\x0f\xcf\xc7\x9d\x4c\xce\x48\x04\xaa\x4b\x60\xae\x4f\xb9\xc9\xf2\xbc\x4d\x45\x26\xde\x40\xff\x26\x7f\x4e\xd7\xbb\x7f\x8b\x3f\xc7\x3d\xe7\x7f\x93\x3f\xfd\x49\x45\xe4\xf9\x8d\x2b\x99\xe7\xa8\xcb\x37\x7a\xf2\x8c\x88\x04\xdb\xf4\xed\x0d\xbb\x6b\x46\xa0\x99\x88\x0d\x0c\x77\x3f\xf4\x02\xe1\x8c\x12\xf0\x86\x85\x4e\x25\xf2\x1a\x3e\xd4\xa0\xf4\x9f\x11\xd6\x6e\xb4\xfd\x95\x37\xb2\xbb\x5d\x54\x1a\x7c\xc1\x24\x2e\x5f\xb4\xfb\x33\x74\xf0\xac\x0b\x6c\xd4\xf8\x31\x32\xa9\x10\x74\xb4\xda\x2e\xfe\xce\xa6\x86\x33\x1e\xa5\xdd\x45\x20\x59\x1a\xf4\x32\xd3\x17\x1a\xb9\x93\x4b\xe7\xb1\x2d\x2a\x6c\xa0\x99\x71\xe3\x9e\x0e\x56\x8c\x25\xbd\x97\x18\x02\x0b\x56\xb6\xae\x8f\x92\x47\x3e\x18\xec\x14\x1e\xba\xdd\x95\x71\x93\xc8\xd0\x0b\x98\xd4\xf5\x2e\x53\x3f\xa0\x59\x9e\xce\xed\xac\xff\x04\x78\xc5\x59\xe4\x54\x50\xbb\xfa\x9f\xcc\xe7\xa1\x64\x9c\x45\xc4\x4a\xa8\x58\xd8\xc3\xae\x3c\xbe\x1c\x67\x0a\x0e\x2c\x4e\x14\xee\x56\x45\xc7\x56\xf2\x07\x94\xb5\x6a\xc0\x16\xfb\x8c\xf2\x29\x67\x22\x08\x99\xee\x6d\xe7\x9f\x8a\xfc\xfc\x54\xac\xde\x64\x56\x58\xf1\x45\x3f\xcc\x44\x48\xa2\x6d\x33\x8f\x21\x29\x87\x33\x49\x19\xee\x6b\x7e\xb1\xf8\x9a\x95\x39\x26\xce\xa3\x47\x29\xe3\x18\x53\x2c\xa3\x54\xf7\x41\x9d\x60\x79\xf0\xa1\x7c\x87\xeb\xac\x7e\x9b\x8f\x9f\x99\x0a\x63\xee\xe2\xef\x9d\x17\xce\xe6\x4c\xd1\xc0\x12\xbb\x4f\x87\x27\xe3\x8d\x83\x27\x4b\x86\xa2\x09\x62\x23\x53\x28\x40\x65\xa6\x77\x9d\xe6\x4c\x45\xb1\xd4\x3d\x53\x4a\x97\x33\x25\x0b\xa6\xe3\x10\xe2\x91\xee\xc4\xf2\x74\xee\xa1\xcc\xdd\x2b\xaa\x53\x81\x5d\xf5\x57\x79\x80\xf5\xaf\xac\x6e\xea\xc9\x3b\xac\x41\x3a\x82\x76\xb3\x94\xea\x07\x14\xfa\x92\x17\xcc\x19\x84\x31\x0a\xb2\x5d\x65\x0a\x36\x65\x9e\xff\xd6\xfd\x1d\xb0\x36\xe2\x8a\xfa\xb2\x81\xb5\xac\xf2\xb3\x17\xd5\x9f\x3c\x4f\x30\xca\xd6\x59\xde\xaa\xf2\xe7\x53\x71\x23\x6b\x5b\x05\xed\xed\x9a\x38\x33\x3c\xc6\xa0\x16\x1b\x35\x5b\x8b\xe5\xc3\xcd\x67\xf4\xc8\x4c\x92\x62\x5f\xd9\x5a\x2a\xa3\x62\x15\xce\xd8\xb2\x3f\x8f\xa6\x5e\xe9\x18\x7f\x50\xbb\xa7\x38\xf1\xf5\x0b\xff\x97\xf1\x3b\xc0\x03\x96\xfa\x06\xf3\xa2\x4d\x86\x57\xe5\xb4\x58\xcd\x09\x33\xc6\x6b\x58\x2d\x3b\x34\x2f\xe7\x24\x02\x8f\xce\x72\x7d\xb3\x29\x6f\xee\x32\x14\xe6\x34\x60\xcc\x35\xf6\x5f\x6a\x40\x22\x3d\x54\x33\x5d\x86\xe1\x1d\xe0\x8c\x06\x71\x47\xfe\x78\x95\x45\x56\xcb\x0b\x52\x0a\xe7\x8c\x27\x6e\x09\x39\x15\xcd\x43\xbb\xf7\xfe\xd6\x1d\x51\x29\xe9\x57\x88\x87\xb3\x63\x32\xda\xb2\xa3\x1f\x94\x30\x84\xb1\x64\x35\x3e\xd6\x65\x36\x6d\x49\x71\x66\xec\x8d\xa8\xad\xbb\x55\xa7\x62\xca\x39\x8f\x00\x53\x06\xec\x5d\x3e\xc8\x5f\xb8\xfa\x74\x07\x53\x83\x6c\x4c\x5f\x5c\x5d\x14\xda\xd7\x9d\x2f\x9d\x2e\x38\x8f\x94\x8d\xfa\xb6\x59\x0e\x45\xf3\x58\x36\xb2\x1a\x6a\x7b\xb5\xdf\x15\xc4\xae\x3e\xdf\x4b\xb5\x73\x1e\x07\xe0\x94\x80\xcb\x1a\x96\x30\xed\x27\xf2\x38\x25\x12\xb0\xc5\x3c\x50\x2b\xf6\x1f\x16\xda\x6a\x8b\x7b\x29\xdd\x4e\x07\xb0\x3b\x9e\x20\xe1\xc7\x62\x6b\xf6\x0f\x59\x91\xed\xc7\x09\x11\x4f\xa8\xed\x86\x99\xec\xd7\x30\x37\xe7\x32\x0c\xb5\xed\x4d\x60\x68\xdc\x71\xa0\x39\x97\x24\x31\x6e\x3f\xdc\x1f\xb2\x62\xf5\x6d\x55\x3f\x5b\x8f\xb8\x87\xb2\x82\xdd\x9b\x9c\xde\x1a\x29\x34\x75\xfc\xb9\xa5\x6c\x9a\x1c\x35\xa0\xb6\xd9\x7f\xbb\xef\x4a\x79\x1a\xbb\x29\xf9\x78\x3a\xbc\x14\x59\xf3\x41\x35\x80\xa7\x89\x46\x1d\x81\x7d\xfb\xce\x5c\xa0\xd8\x7c\xeb\x84\xa7\xda\x1a\xb4\xf9\x16\xf3\xc8\xe6\xc8\x8d\x51\x01\x09\x86\xd5\xe4\x85\xc5\xf7\x4d\x5b\x77\x5c\xd1\x00\x35\x99\xc7\x36\xaf\x03\x90\x36\xe7\x4a\x31\x2b\xf1\x9e\x15\x16\xf3\xe2\x0f\x68\x46\xf5\xc8\xc5\xd2\xe6\x2d\x9d\xe5\xe6\xf8\xc7\xe9\x38\xb2\xfc\x53\x12\xbb\x0d\xd3\x1f\x10\x81\xf4\x20\xcf\x2b\x59\x65\x6e\xb9\x9d\x44\x20\xb3\x37\x4c\x27\xc2\xdb\x26\x22\xeb\xca\xd7\x37\xb0\x0a\xe2\xc7\xa4\x71\xe4\xd6\x21\xcf\x15\xfe\x2c\x42\xe0\x5a\x05\xc8\xeb\xbb\x5e\x3c\x2e\x17\xdb\xf5\x68\x96\x03\xb5\xb5\x42\xe7\x09\x9b\xe7\xa5\xc2\xdd\xcc\x1d\x36\x01\x43\xbd\x85\xa3\x35\x82\xb8\xba\xe8\x0c\x71\x13\x12\x84\x10\xe1\x3b\x69\x9f\xc8\xb6\xcc\xf5\x5d\xb1\x7b\xb3\xa1\x6b\x37\x30\x49\x10\x51\xbe\xb0\x8e\x65\x07\x99\xe7\xb3\xe2\x02\x9c\x1b\x29\x7c\x94\xb8\xf0\x91\x50\x3d\x6f\x15\xc0\xb9\xd1\x84\x3b\x21\x99\xc6\xb1\xe8\xd0\xc2\xf5\xb7\x31\xfc\x71\x50\xfa\x8b\x02\x41\x22\xb7\xce\xed\xdf\xa4\xdb\x89\xc5\x38\x05\x89\x02\x29\xb0\xdc\xb6\xd7\xf0\x3e\x8a\xa1\xa3\x40\xd9\x4c\xd4\x39\xbc\x67\xf8\x04\x3c\xde\x64\xf6\x35\x88\xc2\xc4\x7e\xa4\x1e\x08\xdd\x4e\x60\xa1\x3c\x22\xa9\x65\xb7\xba\xe5\x73\xfe\x61\x46\x34\x0c\x69\xea\x2d\x34\xaa\xf2\x50\x62\x8e\xb8\xac\xca\xdf\x86\xcd\xf4\x88\x2a\x81\x81\xe7\xb7\xb2\xca\xf5\x12\x86\xac\x32\x1e\xb1\x00\xcc\x68\x9a\xe3\x54\x7b\xc8\x0a\x78\x96\xf3\x04\x75\x1e\x31\x0a\xa1\xf1\x31\x6f\x57\xcf\xf5\x40\x76\x1e\xf1\xc4\x9a\x60\xbd\xc9\xfa\x59\x9e\xab\x32\xff\x20\x24\x8e\xb8\x24\xe9\xb0\x50\x39\xd1\x24\xfd\x9b\x62\x8a\x3f\x89\xb6\x96\x84\xaa\xcc\x0a\x23\xd3\x2a\x1b\x73\x5c\x78\xc4\xc1\x44\x91\x7f\x8f\xb4\x3c\x3b\xa1\xf4\xa1\x1c\x16\x8f\xa2\xd0\x60\x4a\xda\xde\x07\x1b\x48\xde\xad\x9e\xb0\x24\xfb\xa1\x56\x3f\x8f\xda\xe7\x04\xb6\xa5\x96\x15\xdb\xec\xb5\xbb\xab\x51\x42\x70\xfb\xfc\xfe\xfd\xfb\xe8\x6e\xc7\x82\x21\x95\x6a\xf1\xb0\x5d\x8e\x0e\x08\xca\xa9\x45\x59\x7e\xc9\xf2\x7c\xa2\x14\xe3\xef\xab\x90\x96\x28\x8a\x40\x92\x36\x6a\x69\xe4\xeb\x38\x6f\x1b\xcf\x5b\xa1\x39\x2e\x0e\x48\x83\xf9\xbb\x66\xa9\x98\x3c\x9b\x44\x70\x84\x30\x59\x28\xdb\xcb\xf6\x6a\xbd\xbb\xc5\x5d\x66\x61\xa6\x58\x36\x1e\x25\x29\x8d\x92\xae\xc1\xfc\x52\x28\x0b\x33\xe9\x2a\xb2\xfd\x30\x1d\x0f\x9b\x4d\xe5\xc8\xfd\x96\x47\x92\x08\x01\x03\xb5\xf6\x7e\x11\xf9\x6d\x78\x23\x24\x0f\x11\x05\xee\x10\x1f\x35\x54\xcd\xde\x64\x85\x7e\x2c\x6f\xb3\xc2\x71\x27\x76\x7d\xd4\x17\xc9\x34\xb5\x91\x61\x76\x80\x6d\x9e\x29\x98\x7c\xab\x61\x78\x3a\xbf\x9d\xcc\xd9\x05\xb4\xa3\x94\x5d\xc9\x65\x95\xf9\x4f\xa6\x61\x88\xe1\xed\x06\xa4\x46\x1c\xa3\xff\x3b\x4d\x30\x33\xb8\x91\x59\x71\x80\xaa\x46\x9d\xfb\xf9\x39\x94\x4a\xe0\x0e\x5d\xd6\x66\x02\xb3\x45\x90\x28\x35\x96\xe3\xf9\x5c\x1e\x55\x59\xc1\xdf\xa2\x1d\x79\xa4\xb9\x95\x90\x5c\xbf\x63\xb1\x78\xa2\x08\x39\xb3\x12\x6a\x45\xb1\x62\xfa\x7c\xbb\xd8\xae\xf7\x8f\x2f\x0f\xcb\xae\x47\x17\x41\x68\xfd\x03\xf1\x7e\xd7\x47\x79\x70\x2d\xba\x45\xa1\x2d\xb6\xa1\x1b\x28\xac\x3b\x14\x06\x1e\x37\xa7\x5e\x3f\x75\x88\xf9\x99\x22\x58\x22\x13\x05\xbd\x94\xf3\xe3\xe2\x61\xbd\x7d\x5e\x78\x39\x13\x1e\x99\xd8\x76\x1a\x8c\x63\x6c\xa2\xc1\x65\x7d\x5d\xa1\xed\x8a\x1f\x93\x0a\x95\xf8\x72\x2f\xae\xfb\x6f\x9d\x4f\x25\x8f\x0c\x00\xc6\x43\x5f\xb2\xe2\xf5\x3b\x1e\x19\xbe\x7b\x71\x10\x58\x14\xe9\x5f\x27\xa8\xce\xe1\xbe\x9d\x05\x37\xb2\x1e\x25\x9b\x9f\x81\x0b\xe2\x20\x88\xad\xde\xcb\xd3\xe3\xf5\xdd\xcd\xfe\xe1\xee\x71\xff\x75\x71\xff\xb2\xee\xce\x2f\x38\x16\x1c\xb1\x92\xb6\xc8\xf3\xaf\x65\x03\x16\xa5\x79\x5d\x56\x2e\xbd\xea\xc6\x4a\xa5\xad\x08\xae\xdf\xcf\xfd\x91\x50\x58\xa9\x88\xbd\xc7\x98\x76\x31\xc1\x07\xab\x53\x1c\x2a\x49\xfd\xba\xd7\x86\xfb\xc5\x60\x37\x8f\x09\xb3\xda\xb0\x52\x6b\x6c\x2d\xbd\x8d\x05\x33\xc6\x67\x22\x20\x31\x17\x7f\x93\xb9\x39\x83\xac\x90\xc1\xe5\x8f\x19\x8a\x48\xc1\xfa\x94\xe2\x06\xfe\x0d\x3e\x40\xb9\xc4\x54\xc4\x78\x96\x02\x85\x7d\xdb\xcd\x72\x57\xba\x4a\x85\x1b\xc1\x12\x83\x59\xd5\xfd\xd3\xea\xcb\xfa\x6a\xbf\x7c\x5a\x6c\xae\x5c\x7d\x1b\x6b\xdd\xbe\x38\x19\xf3\x20\x54\x3d\x9a\x47\x35\x35\x32\x98\xfc\x41\x9e\x60\xc2\x93\x9e\xce\xdb\xb7\xec\x38\xda\x0c\x63\x9e\x50\x04\xb9\xfd\x74\xb0\x9d\xf9\x1f\xcc\x75\x1a\xc8\x51\xe2\xb9\x92\xea\x0d\xc6\xc9\x6d\xcc\x41\xe1\x83\xef\x14\x15\x0a\x7d\x5f\xfe\x84\x71\x8b\x24\x8e\x38\xc1\xd9\x5d\xcb\x77\x70\x5b\xcf\xf0\xa5\xb8\xbc\x4f\x51\x44\xac\x7c\x33\xc8\x83\xd5\xa9\x1c\xca\x4b\xf2\x38\x8e\xb8\x11\x1d\xc2\x72\x79\x3a\xcf\xd4\x45\xe2\x38\x32\x18\xfa\x76\x32\x24\x87\xf2\xb9\x2c\xce\xf3\xc5\xf6\x38\x8e\x29\xe9\x39\xf9\x2e\xd7\xcd\x2f\xfb\x1a\xd3\x66\x41\x2c\x02\x6b\xeb\xd7\xae\x0c\x6b\x6b\xf1\xb2\x05\x67\x4d\xb9\x7d\x2b\x4f\x6d\xf4\x67\xa7\x2b\x0a\x30\x8f\xa2\xa7\x58\x70\xdb\x1b\x73\x1a\xe0\x96\xf3\x7e\x03\x45\xb0\x2a\x53\xb8\xae\xb2\x41\x2f\xef\x53\xbe\x28\x8f\x45\x64\x6d\xda\x10\xff\xb4\x3f\xe6\xf2\xbc\x97\x85\xde\xa3\x59\xed\x4c\x79\x2d\x4e\x82\xce\xcc\xe8\x1a\xbc\x2a\x1f\xe8\xe5\x19\xb7\xca\xf1\xc2\x1f\x27\xc4\xe0\x52\xba\xef\xc3\x94\xbb\xd5\xe2\x19\xfd\x41\xc0\x40\x05\xc5\x25\xfa\x72\x4e\xec\x89\xc7\x09\xb3\x52\x88\xed\x1b\x60\x61\xba\xdd\xfb\x98\x44\x26\x8e\xc6\x10\x29\x99\xcf\x28\x4e\xf2\x38\x31\x04\xd7\xba\x45\xfb\x88\xe4\x68\x25\x4b\x8c\x42\x24\x24\x06\x84\x52\xfd\xc0\x72\xb1\x8f\xcf\x26\x1b\x7c\x2c\x19\x43\x83\x24\x67\x2e\xd1\x7e\xeb\xac\x0d\xf6\xe4\x56\x4b\xce\x3b\x5e\x53\x01\xf9\xb3\x03\x9c\x79\xa6\x97\xcf\xe3\x62\x19\x85\xa9\x93\x97\xc0\x9b\xfa\x2c\x2f\x69\xd5\x6e\x68\xaa\x69\x48\x3a\x11\xb9\xba\x91\xf9\xb7\x4a\x1e\x8f\x1f\x2e\x47\x29\xc4\x18\x25\x38\xbd\x58\x57\xd9\xf5\x37\x41\x29\xeb\x5f\xaf\x64\x61\xa9\x9d\xfe\x80\x4e\xd2\xc4\x3d\x74\x4c\x2a\x37\x83\x2e\xc6\xe4\xde\x68\xe0\x31\x1d\xa8\xc8\xaf\x4e\xd3\xf7\x4b\x1b\xad\x2c\x61\xc9\x38\x81\xe6\x01\x78\x2c\x06\x0e\xf8\xf9\xfd\x6b\xf6\x0e\xb8\xbe\x7e\x10\xc3\xc7\x26\xb6\x4c\xe7\xed\xe2\xe1\xf9\x7e\x94\x8f\xc5\x26\xa6\xd8\xf9\xb1\x41\x15\x8a\xd6\xd8\x6d\x1c\x1b\x9f\x33\x5d\x4f\x11\x44\x10\x39\x17\xd5\xbb\xba\x3e\x41\xe5\xb1\x3c\xe3\x29\x24\xc2\x50\x61\x56\x85\x55\xb0\xd5\xa8\x09\xfa\xfb\x64\x24\x09\x42\xb7\xb1\x2e\x4f\x88\xfa\x98\x43\x70\x88\x50\x0a\x44\x92\x3b\xc4\xe8\x69\x88\x0f\x11\xa1\x94\xdc\xa5\x0b\x48\xda\xcd\x9a\xb3\x55\xe0\x19\x5c\x79\xa8\x23\x62\x79\x7d\x05\xd4\x59\xfd\x5c\x95\x4d\xa9\xba\x34\x57\x90\x50\xa3\x97\xc3\xc0\xa0\x7c\xee\xdd\x10\x24\xd1\x96\xfc\xea\x5b\xc4\x43\xe1\x18\x37\x86\x06\x56\xcf\xd0\xfb\xb7\xdd\x97\x3f\xdf\xb2\xd7\xb7\xf1\x3b\x32\xcb\x91\xe3\x82\xf2\x18\x39\x3b\xa6\x6e\x86\x15\x17\x41\x93\xc0\x5d\x7e\x9b\x88\xb5\x41\x6f\x75\xe1\xd9\xc5\x05\x95\x16\x00\x7b\x40\xf0\x5b\x67\xeb\xbf\xbe\x7a\x19\x81\x42\x04\x8b\x24\xd6\x7d\xff\x5f\x79\x82\xe1\x8c\x10\xed\x9e\x4d\xac\xaf\x52\xfb\x10\x3a\x73\x51\x80\x7a\x57\xfa\x41\x9c\x19\x6c\x43\xa5\xbf\x8d\x45\x0b\xb8\x88\x88\x36\x1d\x8f\xb6\x7d\xdf\xd7\xdb\x66\x22\xea\xc4\x45\xc4\x18\xd2\xc6\x1f\xa0\xca\x9a\x99\x6a\x99\x88\x94\xf5\x95\x43\x3d\xd5\x1f\x70\x28\x0b\x17\xc3\x5c\xea\xa3\x72\x11\x19\x85\x1b\xf5\xe2\xd4\x94\xf8\x82\x7c\x66\x14\x3a\xfe\x68\x4c\xa4\x05\x64\xbc\x97\xf9\x3b\x3c\x94\x45\x3d\xb5\x1f\x09\xbb\xa1\xcc\x50\xa4\xf6\x64\xef\x19\x4a\x23\xfc\x6d\x7c\x2c\x04\xb1\xdc\x07\x9c\x05\x68\xaf\x95\xa3\x67\xfb\x6f\xe3\x51\xdc\x60\x5b\x4e\x76\xf1\xee\x5c\xc7\xe2\xf7\x61\xc5\x47\x88\xc8\x1a\x01\xec\x9e\xb6\xa3\x87\x27\x8c\x20\x69\x6f\x2c\xfb\x75\x60\xcc\xea\x87\x24\x44\x99\xb0\xd7\xa2\xfa\x47\x62\x09\x5c\x24\x0c\x3c\x7c\x69\x6d\x09\x7e\xe3\x27\x9a\xc4\x21\x06\xd0\xf8\xb6\xef\x90\x70\x58\x9a\xac\x19\xbe\x7e\x89\xb2\x65\xfa\xe5\xea\xab\xbf\x96\x94\x86\xda\x96\x20\xe0\x90\x9d\x0e\x0f\xa5\xee\x8e\xf0\x30\x26\x9d\x94\x64\xbb\x02\x3f\x43\x65\x15\x1c\xc7\x17\x96\x82\xc1\xfa\x27\x16\x94\xdc\x64\xef\xdb\xf8\x02\x02\xdb\xe1\x71\xb2\xf5\xff\x95\x17\x0a\xa6\x5c\x80\x16\xa8\xd8\x22\xb5\xbe\x5a\x1c\x8f\xf3\x55\x22\x61\xa8\xa5\xd2\x59\xf3\x42\x67\xcb\x83\x79\xc2\x2c\x60\x36\x62\xe3\x27\x87\x5d\xc4\x0b\x38\xc4\xe4\x2e\x1b\x99\x22\x2d\xe9\x61\xf1\x7d\xbf\x7a\x7a\xec\x39\xd4\xdb\xfb\xa7\x9d\x0f\x4c\x93\x20\x64\xc6\xeb\xa1\xbe\xb5\x2b\x54\x8f\x04\x4b\x42\x6d\x0d\x5e\xf5\x21\x1f\x4e\x8c\x84\x50\x86\xf0\xba\xe7\x27\x6f\x86\xc6\x13\xc2\x08\x16\xbe\xb1\x66\xe3\xe8\x09\xf6\x35\x53\xe7\x7e\x4c\x9a\xf0\x6e\x51\xfc\x86\xe2\x56\x1e\xd8\x2d\xbc\x70\x98\xef\xf1\x27\x84\x73\xd4\x19\xf1\x4b\xe3\x6d\x79\x80\xaf\x99\xdc\x40\x2e\x3f\xd4\xd8\x74\x1f\xa5\x8c\x6a\xd6\xa9\xec\x8e\x6f\xe9\xc5\xd0\x98\x3a\xdc\xec\x3e\xad\xe4\x74\xf1\x4d\xa8\x92\xb1\x83\x32\x79\x6c\x49\x27\x0b\x3a\x3e\x13\x4b\x54\x48\xdd\x97\xde\xca\x7c\xd2\xd3\x4f\xa2\x98\xe2\x8a\xfb\x50\x56\xff\x85\x6b\x7f\x4b\x62\x00\xf4\xac\xcd\x6a\x67\x93\x34\x39\x69\x6c\xb4\x65\xc3\xd6\x4a\x1e\x61\x0c\x81\xff\x7d\xd8\xd9\x4a\x92\x28\x48\xf4\xc0\xd1\xeb\xba\xac\x6e\xcb\x53\x0d\xcf\xb9\x54\xb0\x9c\xc2\x2f\x92\xc4\xd8\x12\xa1\x93\xf0\xd9\x23\x6e\xb8\xd0\xe5\x61\xf1\x7c\xf7\xb2\xb9\x1f\xad\x2a\x89\x24\x16\x93\x8a\x33\xd4\xc7\xc7\xfa\x33\xa4\x62\xff\x45\x29\x91\x8a\x75\xf4\x37\xa4\xae\x7f\xda\xce\x4e\x52\x25\x91\xa8\xb7\x5b\x3f\x0c\x35\xf9\x78\xa2\x02\xdb\x25\xd8\x96\xc5\x15\x1c\x77\x95\xcc\xba\x23\x51\x1c\xe9\xee\x3b\x5c\x35\x6d\x57\x7e\x7b\xcb\x1a\xc8\xa7\xbc\x68\x9e\xa8\xd8\xc2\x60\xda\xfd\xdd\xb5\xf7\x66\x83\x89\x04\x22\x8e\x03\xed\x73\xcf\x8f\xc9\xe4\x44\x26\xb0\x12\xe3\x36\x1f\xb0\x4a\xc2\xe3\x3b\x67\x44\x8c\x91\x62\x51\x16\x18\x4a\xe0\x92\xb1\x7d\x2b\xab\xe6\xd2\x1e\x75\x00\x47\xf8\x18\x86\x20\x03\x19\x3b\xdb\x46\x24\xe8\x3b\x91\x7c\x0b\x2a\xfa\xd7\x09\xba\xbe\xa9\x0c\x8c\x41\x28\xc5\x72\xf7\x65\xf8\xf6\x4a\x92\xb2\x20\x1e\x27\x5a\xd7\xd9\xeb\xdb\x74\xaf\x12\x33\xff\x1d\xfd\x7a\x49\x79\x88\xb5\xc1\x5d\x25\xdf\x21\x87\xaa\xe7\x4a\x72\x49\x63\x06\x43\xe8\xef\x43\x56\x7c\x84\xcf\x96\x14\x24\x4a\xe0\x3a\xf4\x57\x56\x37\x75\xfb\x50\xf4\xa2\xbd\xe7\xa3\x18\x5d\x32\x91\xf8\xd6\xe0\x06\xa5\x60\xef\xf4\x7c\x01\x4a\x32\xa0\xd2\x29\xe0\x74\x0c\x26\x7f\x16\x4e\x38\x42\xcf\x75\x56\xb7\x99\xd7\x38\x49\x96\x9c\x4a\xd1\xd3\xa7\x76\xd5\xa9\x6e\x00\x06\x5a\xcd\x5c\x72\x46\x70\xa3\xbf\xda\x41\xfd\xd6\xfd\x91\x4b\x86\x2e\xf7\x9b\xb8\xfb\x53\x1a\xca\x74\x00\xc3\xf6\x9a\x22\xfd\x71\x89\x66\x07\x5e\x55\xf1\xea\x47\xbe\xcd\xda\xc9\xf3\x91\x92\xeb\xcc\x02\x26\xa3\x28\xc6\xca\x2d\x72\x9f\xaf\x4a\x75\x3a\x40\xef\xfb\x31\x1d\x2b\xa9\xed\x41\x42\xdd\x20\xe1\x6c\x03\xb8\x3b\x3d\x96\x8d\xfb\xbf\xde\x9f\x92\xcb\x48\xa7\x4e\xdb\x2d\xc7\xb0\xf4\xa5\x9e\x28\xef\x72\x19\x53\x5b\x3e\xb3\x73\xc9\x01\x29\x27\xf7\x33\x66\x31\xbe\xb6\x56\x31\x62\x36\x12\xe9\xc7\xf2\x14\xd9\x90\xbb\xcd\xe2\x71\x7b\x8d\xe6\xb5\xf7\xf7\x4f\xdf\xbc\xf2\x10\x97\x22\x88\xac\xfa\x74\xe7\x0a\xfc\x11\x1e\x4f\x0a\x91\xaa\x2e\xc4\x05\xe4\x11\xb6\x79\xdf\x16\x39\xe2\xe3\xa1\xed\x2e\xc8\x1c\x1b\xab\x72\xb0\x80\xe9\x08\x08\x2c\xe0\x53\xea\xac\x2e\xe4\x01\xfc\x43\x9d\xa0\x27\x64\xc2\x12\x6c\x82\xf9\x2b\x5c\xe6\xa5\xda\x95\x2f\x75\xe7\xad\xd8\x0e\x91\x08\xb0\xf8\x1f\xa9\xc7\xcd\x0d\x29\x69\x92\xea\xde\xfd\x67\x3b\xac\x9d\xfa\x21\x22\x0e\x38\x22\x25\x5e\xb3\x62\x72\xab\xd3\x24\x16\xa4\x6b\x88\xed\xca\x11\x52\xf9\x43\xf0\x7d\x6f\x5b\xe6\x4e\xa3\x68\x8a\xed\x90\xa3\x0b\xf7\x3d\xa1\xcc\x1f\x06\x46\xdd\xf2\xb9\xd1\x9d\x1f\xdd\x6c\x87\x4b\x6a\x1a\x22\xdc\xf2\x20\x7f\xc0\x3d\x2a\x41\x5e\x0e\xc0\xf7\xf4\xdd\x16\x0f\x43\xbf\x2c\x76\xb7\x44\x33\x5b\xf9\xd8\xbb\xd6\xd2\xd8\x1a\x79\x32\xc1\x75\x12\xa3\x42\xcd\x3e\x2b\xb2\x66\x7b\x94\x0a\x7a\x07\x77\x2e\xb5\xb4\x1d\xd2\x57\x68\xee\x33\x05\x45\x0d\x1b\xc8\x0e\x3d\xa3\xd9\x0d\x03\x62\x0d\xb9\xd0\x92\xb0\xf7\x0a\xe9\xa3\x4f\x09\x3c\x54\xae\x07\x7b\x5d\x56\x0a\x9e\x8c\xa9\x3b\xcb\x1d\x3f\x46\x69\xa1\x3d\x72\xc8\x61\xb3\x2d\x8f\xeb\xd3\xed\x4f\x1a\x1a\x23\x77\xe3\xa2\xec\x2b\x4d\xc4\x91\x33\xa7\xb3\x5a\x0d\xc4\x47\x79\x1a\xd0\x84\x59\xab\xbd\xa6\xca\xe0\x1d\x6e\x64\x56\xf4\x07\x75\xe2\xf4\xda\x1b\x99\xdb\xb4\x6d\x4a\xda\x49\x43\x10\x58\xc0\xf3\x1a\x29\xf7\xe5\xeb\x64\x04\xa1\x02\x2b\x5f\x8b\xab\x87\xbb\xc7\xfd\xa6\x0f\xfc\x52\x2a\x05\xa6\x32\xdb\xdd\x62\xb3\xdb\xdf\xad\x9e\xf6\xbb\xbb\x87\xf5\x76\xb7\x78\x78\xee\x86\x80\xc4\xf2\x47\xd7\xb2\x5b\xff\x42\x14\xd6\x08\xe3\xf4\x79\xd3\x2c\xa5\x26\xc1\x77\xc6\x25\x23\x1b\xd9\x80\xc5\x6b\xba\xe3\x8c\x49\x70\xf8\xe9\x75\xf3\x36\x00\x3d\xa4\x2c\x8a\x2c\xd5\x10\x0a\xdb\xc6\xef\xa0\xc5\x7e\x80\x8e\x31\x1d\x49\x07\x6d\xf6\x94\x13\x46\x3d\x96\x6f\x29\x6b\x98\xc9\x15\x53\x9e\x24\x6e\xe3\x42\xd2\xa4\xc5\xc5\x2e\x9a\x66\x9a\xf4\xfd\x9b\xfd\x79\xf1\x7f\xfe\x14\xa0\xf0\x55\xbb\x52\xb2\x71\x8a\x0a\xfe\x0a\x22\x2e\xd3\xae\x79\xf6\xdb\xa0\x1d\x31\xfd\xc7\x8d\x8f\x63\x85\x7b\x23\x4a\xab\xef\x1f\x16\xdf\xfd\x89\x84\x48\x71\x55\x58\x02\xa4\xd9\x84\x2a\x93\x0a\x23\x51\x17\xd0\xa3\x3a\x9c\x2b\xe2\x90\x0f\x9e\x26\x21\xc5\x25\xc7\xc9\x4f\x3b\x14\xe5\x07\x05\xa2\x34\x61\x21\xaa\x81\xb8\x22\x73\x59\x8d\x88\xfa\x69\xd2\x5e\x2a\x6a\xbe\xfe\x40\x87\xce\x91\xc8\xd0\x78\x3b\x48\x93\xc4\xa0\x5e\xf3\x6d\x59\xb4\xcb\x43\x5d\xd8\x3b\x74\xb7\x7a\x4a\x47\xaa\x31\x3c\x4d\x52\xab\xad\xe7\x8c\x41\xbc\x67\xf2\x07\x68\xc5\x34\x51\x54\xf4\xbd\xc2\x67\x6f\xa4\xc2\xd3\xc4\x68\x04\xda\x2f\x4f\xe7\x85\x2a\xab\x7e\x92\x48\x15\x79\xb7\xe5\x7b\x59\x37\x57\x00\xba\x53\x1c\xe9\xdb\xfb\xa3\x2f\x91\x10\x73\x2c\x25\xc8\x2a\x43\x89\xd0\xc1\xcb\x9c\xa6\x32\xf4\x42\xbf\x0f\x68\xa1\x7a\xd1\x53\x4f\x53\x15\xa2\x3e\x68\x56\x3f\x02\xe8\xab\x4a\xfe\xbc\xb0\x99\x6a\x07\x91\xc0\xa9\x7c\x39\x7e\xf0\xcd\x49\x56\xb2\x68\x60\x0a\xf9\x48\x15\x8d\x70\x2d\xde\x37\x55\xf6\xfa\x0a\xd5\xaa\x2c\x73\x6c\x2b\x5e\x95\x3f\x8b\xe9\x58\x13\x24\x6e\xf3\xbc\xce\xd2\x72\x72\x54\x53\x82\x0d\xa8\xdc\xe2\x07\xe6\x80\x74\x29\x70\x81\xea\x36\x36\x00\xbb\x2e\x2b\x78\xef\x22\xa8\x14\xb4\xc1\xb0\xf8\x5d\xe6\x27\x78\x32\xf3\xfd\x97\xd4\x30\xcb\xa6\x71\x99\xf8\xe7\x49\x5f\x6a\x52\xdb\xda\x6c\x40\x1e\xee\x8a\xba\x91\x45\xb3\xed\x57\x75\x15\x48\x08\xdd\xe2\x6f\xc5\xec\xf1\x71\x7c\xc0\x93\x1c\x9f\x5a\x85\xcc\xc4\xce\x67\xac\x3c\x35\x8b\x42\x6f\x3d\x78\x76\x10\x34\x63\xf1\x6a\xba\x88\x8d\x9e\xa8\x22\x91\x40\xec\x42\x65\xf5\xfb\xea\x2b\x28\x4a\x6c\x73\x79\x21\xd0\x76\x88\xb2\xb6\xdc\x79\x59\x5b\x5a\xd9\x80\x17\xad\x68\x40\x13\x35\x64\x6e\xc9\xe3\x06\xa4\xea\x99\xbe\x8a\x32\x8d\x4b\xf9\xd2\x6a\x97\xac\x73\x28\xa4\x3f\xd6\x46\xcf\x8e\xb5\x82\x4d\x28\xd0\x5f\xe5\x29\xef\xee\x10\x93\xcc\xa9\xa7\xf7\x56\xe5\x7d\xbf\x55\x31\x69\x1d\xde\xa4\xd6\x2f\x85\x86\xea\x6a\xba\x49\x28\x06\x96\x76\x87\xe1\xc7\xbe\x1a\xbe\xf6\x8a\x8b\x44\xf6\xfa\xd9\xd9\xe1\x74\x58\x21\x88\xa6\xee\xbe\x9e\x83\x41\x21\xb8\xf6\xf9\x21\x9e\x75\x8c\x8a\x50\x51\x64\x8d\x8e\xad\x4f\xe6\xec\xd6\x31\xbe\xdb\x51\x02\x88\x36\xdb\x3e\xdd\xbf\x6c\x57\x9b\x51\x71\x4b\xc5\x9a\x41\xe8\x98\x94\x0f\x4e\x39\xe3\x4a\x6a\xed\x57\x02\x25\x42\xdb\x42\x44\x3b\x10\x2c\x3f\xf9\x03\x32\xc2\x9a\xf5\xc3\xe2\xf1\x76\xb1\xdb\x2d\x1e\x9f\x37\x4f\xdf\xff\x88\x77\xb7\xdb\x5d\x37\xc4\x04\xcc\x71\xbc\x76\x50\xc8\x89\x16\x3c\x57\x49\x7b\xaf\xdb\x2b\xfb\xd7\xcb\xdd\x66\xb3\xbe\xdf\x2f\x17\xdb\xf5\x7e\xb3\xfe\x97\x3f\x41\xf2\xff\x59\x7b\xb3\xe5\xc6\x71\x2d\x6b\xf8\x75\xea\xe2\x5c\x90\x20\x09\x80\x97\xb2\x2c\x3b\xd5\xe5\xa9\x2d\x65\x66\xd5\xe9\xe8\x50\x60\xd8\x90\xd8\xa6\x48\x1d\x92\x4a\xa7\xea\xe9\xff\xe0\x06\xc0\x49\x54\x56\x7d\x11\xff\x8d\x1d\x21\x82\x13\x88\x61\x0f\x6b\xaf\x05\x60\xc5\xf7\xdb\xbe\xc0\xc4\xf1\x68\xcb\x52\xa9\x89\x12\xc7\x76\x82\x07\x5e\x3c\x57\x4b\xa2\x44\x68\x3c\x5c\x16\x25\x6b\x10\x33\xf9\xe6\xc6\xa9\xff\x96\x22\x92\xc4\xc1\x16\x7e\xcf\x9a\xe6\x82\xb1\xdf\xf1\xc7\x94\xa1\x74\xdb\xa6\xa3\xc6\xbf\x59\x55\xe0\x4f\x20\x14\xa3\x6c\x5d\x3d\xf4\xe4\xa5\x25\x10\x4b\x85\x31\x64\x63\x9b\x20\x10\x95\x22\xb6\x24\xe1\xa9\xdc\x5b\xf8\x5b\x8d\x65\x84\xf3\xd3\x52\xc5\x29\x2e\x52\x4f\xa5\x45\x95\x74\x30\xdb\x5f\x2e\x14\x4a\xa5\x01\x26\x9d\xd0\x96\xd9\xec\x96\x03\x84\xb4\xd2\x61\x80\x6b\xe4\xdd\xb9\x2a\x50\xb8\x6d\xf2\x7c\x3a\x09\x51\xcf\xd7\xb1\x93\xcc\xf9\x0a\xa8\x83\x85\x6a\x99\x67\x5b\x21\xa7\x7f\x51\xaa\xa0\x80\x45\x68\x1b\x49\x51\xc3\xae\x19\x8e\x50\x93\x50\xd6\x17\x4d\xbd\x2f\xb6\xab\x5d\x98\x78\xf2\xa7\xa1\x3e\x5f\xa2\x0c\x63\xc6\x25\x90\xdf\xca\xf2\xe0\x87\x89\x0e\x62\x5b\xb5\x68\x77\xc5\x67\xd1\xa8\x43\xaf\x3f\x38\x0a\x65\x77\x27\xa4\x68\x3f\x2f\x5a\x33\xd1\x81\x61\x9a\x1a\x15\xd3\x4e\x79\xa6\x06\x0b\x95\x0e\x94\xad\x2f\xf4\x86\xc3\xa0\x50\x4f\x87\x71\x8c\x32\x5d\xcb\x43\xb6\xeb\xb4\x98\xbb\x83\x54\x20\x80\xf1\xbf\xc4\xcf\xbb\xf2\x67\xf7\x2b\x23\x44\xf7\x92\xa6\x68\xa8\xb5\xbe\xc0\x1b\x42\xe4\xe7\x92\x93\x9a\x18\xcd\x5c\x9a\x06\x39\x2c\xb1\x20\xbb\xc9\x64\x96\x67\xcd\x65\x60\xae\xb7\xbb\x15\xa2\xd7\x1f\xc5\x8f\xeb\xe0\xd3\x2f\xc7\x8a\x8e\xa4\xc6\x45\xcf\x11\xd7\xf8\xa7\x8d\x03\x4a\x9d\x35\xf0\x3b\xb2\x9b\x91\x84\xce\xe5\x6d\x75\x1c\x86\x98\x19\x29\x31\xbf\x8c\xdc\xaa\xcd\x44\x71\x2d\xd1\x31\x61\xa8\x39\xbe\x47\x2f\xba\xfa\x22\x6e\xc1\x6a\x74\x12\x09\x16\xf5\xe1\xfd\xe7\xc9\x1c\xd3\x09\x33\xe8\xc8\xde\xd9\xbc\x96\x7f\xdc\x44\x30\x65\x79\x93\x2a\x75\xf0\x21\xe9\xb1\x91\xa7\x69\x20\xb1\x44\xe2\x4d\x5c\xb6\xe5\xa4\x64\x47\xb3\xc0\x92\xf2\xed\xa1\x79\x3d\xff\xc8\x74\x59\x65\x62\x55\x34\xb0\xcd\x4e\x93\x9c\x91\x66\x51\xcc\xbd\xc7\x87\x7b\xa4\xc8\x2d\x7e\x75\xdc\xb1\x2c\x36\x91\xcb\xd3\xed\xba\xf1\xca\xd2\x08\x79\xb5\x9f\xca\xfd\x4b\xd9\x64\xe6\xf2\x6a\xbc\x8d\x98\x95\x85\x17\x83\x9e\x65\x95\xd1\x0c\x62\x5c\x39\x0e\x17\x5d\x95\xa3\xbd\xbd\x6b\xc0\xd1\x43\x50\xbd\x4f\xb7\x36\x63\x06\xc1\xc9\xc7\x4f\x03\x5b\x61\x2b\xcf\x97\xa5\xa8\x34\xaa\x97\x4f\xcc\x4a\xdf\x32\xd4\xb2\xa7\xbc\x74\xe1\x9b\xbb\x8b\x95\x61\x9c\xbc\x79\x9a\x24\x48\x4e\x51\x81\xc8\x31\x5a\x6e\x73\x12\x9e\x7b\xed\xa1\xac\xec\x0f\x3e\xdf\x3e\x8c\xf2\xea\x94\x32\x84\xc3\xbe\xaf\x9e\x56\x8b\x8d\x77\xc2\x74\x2a\x44\x68\xa9\xfb\xf6\x68\x5b\x54\xe5\xf1\x09\xf6\x42\x5d\xde\xe1\x74\x6e\x2c\x63\xcd\x60\x6d\xd1\xc2\x09\x62\x34\xe5\xc7\x09\x2a\xe8\x38\xa7\xb4\x54\x21\xf2\x19\x5b\x5f\xfd\x4b\xd9\xcf\x69\x45\x63\x16\x76\xf6\x13\xd4\xcb\x76\x92\x8d\xdf\x4c\x31\xab\x64\xd4\xfa\x79\x0f\x13\x65\x93\x44\x2b\xc9\x02\x8f\xcc\x46\xda\xaf\xac\x35\x41\x7b\x8f\x19\x1b\x88\x6e\xb5\x72\x78\x58\x7c\xec\xaf\xef\xeb\xf9\x7e\xd7\x11\xc3\x01\xf3\x02\xcd\x77\xf8\x39\x48\x68\x6b\xcd\x89\x97\xb3\x7d\xab\xe0\x39\x2b\xe6\xc9\x92\xb4\x96\x2a\x06\x5f\xef\xe1\xb4\x76\xdf\x00\x09\x19\x7f\xb1\x6c\x6b\x6d\x44\xe8\xf9\x72\x0a\xc8\x6d\x49\xda\x34\x20\x3e\xbe\x13\x08\x6d\x5c\xbd\xf6\x10\xb7\xad\x4d\x68\xc0\x33\x1e\x38\x01\x99\x7b\xd1\x40\x78\x01\xd1\x2d\xb6\x26\x35\x08\x54\x96\x42\x7d\x7c\x5b\x6f\xb6\x8b\xd6\xb6\x1b\xc6\x24\x21\x08\x19\xc6\x12\x11\x50\xe2\x33\x15\xdd\x41\x16\x23\x99\x49\xe5\x6c\x56\xec\x7f\x4f\x55\x00\xc4\xc4\xe8\xde\x9d\xec\x1a\x17\xee\xf2\xb3\xfa\xb8\xc8\xf3\x65\x5b\x09\xf5\xd1\xdf\x82\x98\x8e\x14\xe7\x19\xc7\x59\xeb\xed\x0e\x33\xfb\xae\x5d\x44\x29\x2e\xf0\xe7\x42\xe6\x42\x7d\x5c\x07\xe0\x21\x62\x04\xe9\x4d\x30\xac\x84\x9d\x5e\xb5\x2e\x9b\xd3\x40\xf2\x8d\x52\x82\x55\xc6\xab\xed\x97\xdd\xb7\xed\xa2\xff\xd9\x4a\x22\xec\xa1\xf9\x02\x55\x79\x6d\xb9\x40\x04\x31\x66\x7f\x7a\x9e\xa7\xbf\xb1\xef\x21\x26\x0c\x97\xcd\x4e\x6d\xf9\x2a\x0b\x37\x7e\xfe\x38\xa1\xaa\x73\x71\x7b\x31\x64\xff\x88\x49\x62\xe9\x19\x16\x4b\xcc\xb7\xfd\xbe\xf2\x84\x64\x40\x0d\x65\x96\xbd\x42\xc3\x11\x71\x7f\x3d\xa1\xcb\xab\x19\x52\x41\xf8\x33\x38\xa3\x5e\x50\x17\x33\x96\xbd\xb4\xf3\xec\x86\x05\x9c\x43\xe4\xe2\x20\x83\xd0\xd4\x5d\x59\x7e\x4c\x46\x3e\x70\x19\x8a\x68\x90\x8d\x73\x71\xb7\x21\xeb\x93\x6f\x69\x08\xfa\xaa\xda\x3a\xfe\xd6\x1c\x1c\xaf\xae\xc0\x0d\x43\x07\x1c\x77\xe2\xb7\x0a\xd6\xcb\xd7\xc9\xfd\x52\x9a\x06\xdc\xc3\xca\x32\x03\x96\x41\xfa\x76\x2d\x24\xa4\x2a\x45\xd4\xb6\xae\xca\xd3\x0b\xa8\x46\x54\x73\xc5\xe0\xbe\x31\x44\xb8\x87\x3e\xe9\xee\x33\x88\xd0\xd2\xc5\xfa\xc2\x0c\xa7\x82\x81\x1b\xe3\xe4\xbb\x4e\xbe\xaf\xe2\x29\x5a\x81\x42\xeb\xbb\x52\x5f\xde\x44\xe5\x8a\x44\xba\xec\x24\xe8\x84\x06\x71\x37\xa5\x44\xfe\x94\x15\x1f\xef\x56\xe3\x7d\x38\x14\x34\x37\xd8\x75\xcd\xeb\x66\xd2\x1d\x90\x58\x96\x87\x1a\x10\xac\x3c\x3d\xca\x22\x04\xbc\xac\x55\xf9\x26\xce\x75\xe7\xdf\x01\xf0\x44\x3a\xbd\x96\x5a\x90\x60\xc7\x6f\x8c\x03\x10\x1a\x87\xe8\x41\xd4\xdf\xa7\x65\x50\x26\x10\x96\x7d\xd3\xd2\x95\x66\xc5\x7e\x94\x68\x33\x21\x91\xc4\xeb\x31\x9d\xba\x5b\x1b\x12\x70\xe9\x41\xcc\x0f\x22\xcb\x2d\x58\xc9\x1a\x69\x95\xad\x43\x5a\x17\x5f\xbb\xe2\xaf\x76\xd0\x48\xd5\x15\x0e\xa0\xbd\x3c\x63\x09\x18\x02\x31\x86\x39\xd4\x41\x54\x59\x73\x69\x0d\xbe\xee\x96\x51\x04\xe8\x92\x62\x9d\x80\xad\x64\xb9\x41\xe5\x9f\x98\x38\xb0\xd2\xaa\x48\xf5\xa7\xcb\xfd\x1b\x2a\x1e\x0d\x38\xff\x4c\x1c\x9a\x58\x38\xb1\x38\xbf\x44\x7e\xad\xa7\x1b\xb4\x89\x13\x8e\xd6\xab\x17\xec\x41\x04\xc5\x20\x4a\x3e\xbd\x2f\x4d\xa8\x83\x5e\x7d\x7b\xda\xa2\xad\xbc\xc9\x26\xf5\x8d\x86\xd2\x18\xc7\xf2\x63\x99\x6b\xac\x2b\xd4\x33\x55\x8c\x86\x29\x4b\x02\x61\x41\x94\x68\xaa\xff\x03\x0d\xd6\xd9\x01\x60\x98\xe6\x94\x7a\x67\xdc\x13\x42\x12\x5f\x01\xed\x1b\x81\x85\x7e\xd4\xa2\x80\x75\xf7\x2b\x27\x29\x66\x61\xda\xb5\x46\x29\x38\x4d\x1f\x82\xff\xda\x68\x36\x3c\xb5\x25\x44\x75\xcf\xb1\x31\x79\xd1\x34\xb4\x05\xda\x7b\x97\xff\x18\x85\xce\x4d\x4a\x01\x5d\xd8\x1e\x8f\xdd\x5f\x3b\x15\xc0\x1d\xec\x70\x09\x55\x93\x99\xd6\x2b\x81\x4d\xb6\x2f\x86\xba\x7f\x9d\xed\x6f\x52\xa0\xda\x7f\xf3\x4c\xe4\x88\x32\x7b\xce\x8a\x76\xd0\xdf\xf7\x41\x62\x23\x42\x69\x75\x83\x1c\x0f\xd8\x64\xdb\x18\x3f\x83\xe2\x60\x05\xa2\xcb\x52\xcb\x4b\x77\x0d\xa5\x28\x82\x61\x5e\xbf\xbf\xec\xe4\xb9\x2a\x7e\x61\x3f\x18\x1d\x5b\x19\x66\x04\xa8\x4b\x51\x67\xea\x6b\x91\x35\x5b\xe8\xc2\x21\x46\x33\x86\x48\x9e\xcd\xb6\x75\xfd\x1e\xd7\xcb\xdd\xdb\xe2\x7d\xfb\xb2\x7a\xdf\x20\x5d\x14\x26\xc6\x96\x8b\x76\x83\xe9\xce\x10\x29\xeb\x74\x6f\xbb\xbd\x04\xd6\xc5\xa4\xaa\xc1\x40\x40\x75\xc7\xef\xf9\xc7\x51\xd4\x8f\x99\x99\x7e\x21\x20\xca\xdb\x4f\xf7\x85\x40\x3f\xd7\xa5\x62\x87\xbd\x0b\x04\x22\x17\x54\x73\x78\xa7\x57\xf9\x7f\xeb\x1b\xf6\xb4\x31\x01\xc5\xda\xa5\x76\x8f\x20\x56\xfb\xe3\x79\x46\xbb\x06\x5b\xd3\x20\x48\x14\xb1\xf4\xd8\x58\xbf\x3f\x8a\xe9\x0e\xbd\x22\x1a\x84\xb1\x20\xda\x45\xf8\x01\x29\xbd\x87\xef\x42\x83\x90\x46\xc2\xf4\xb1\xdb\x47\xd1\x59\x5f\x34\x08\x99\xf4\x19\x37\x1b\xa7\xfe\x0e\xd9\xe4\xf4\x48\xd8\xc0\xba\xcf\xf8\x3d\x64\x39\x2c\xf3\xb2\x9e\x29\x1e\xbf\xde\xc6\x68\x10\xc9\x00\x9f\xee\x50\xa2\x9e\xf6\x71\x24\x48\x4c\x83\x38\x8c\x98\x15\x11\xf8\xb1\x05\x71\x1c\x6d\xab\x34\x88\x1d\xa3\x8a\x9d\x87\xb5\xff\x92\x0f\x42\x65\x22\x9f\x3c\x67\x2c\xa9\xf6\xd0\xe6\x47\xa4\xbc\x93\x9b\xa6\xac\xd0\x1b\x78\x38\xe7\x79\xfb\x83\xc7\xef\xd2\x20\x21\xda\x83\xb2\x5d\xdc\xc4\x6e\x8c\xfe\xe3\xd2\x80\x32\x82\x80\xaa\x4f\xc8\x9c\x18\x48\xbd\x68\x6e\x92\x42\xd2\x80\x1a\xc6\x9d\x81\xff\x8c\x84\x90\xdd\x5b\xb0\x98\xa0\x6c\xf9\x72\xb3\xdc\x4c\x1e\x3a\xe5\x11\x8a\x64\x9a\x73\xf3\xb3\xb5\xd2\x2b\x7f\x4e\xaa\x12\x31\x64\xd4\x6c\xdf\xc2\xe2\x98\x27\x05\xc0\x93\xa7\x10\xc4\x9a\x8d\x4f\xaf\xcb\xdf\x77\xef\xab\xa7\xc5\x66\x85\x19\x29\x7f\x5d\x11\x27\x98\x16\x6e\x4d\xcf\x4d\xeb\x59\xc2\xfe\x32\x79\x26\xc1\x43\xac\x5c\x70\x35\x28\x2f\x90\xed\x0f\xb2\x3c\x57\x33\x48\xd2\xb6\xb1\x22\x62\x00\x16\x85\xee\x46\x8a\x20\x3b\xa4\xdf\x2e\xef\x44\xcf\xbe\xe3\x9a\x48\x6e\xb0\xde\x09\x33\x4f\x0b\x5f\x46\x4e\x03\x29\x83\xc0\x46\x62\x71\x7b\x1a\x8f\x76\x15\x1a\x61\xe9\x60\x84\xfe\x63\x84\x9d\x1a\x6e\x06\xa3\x67\x54\x9a\x63\xb0\xb3\x19\x12\x11\xf9\x9b\x29\x23\xd0\x72\x73\x8a\x0f\xa0\xd1\x84\x1b\x47\x00\x68\xa0\x8d\x95\x46\xdd\x65\xf5\x52\x54\xe5\xb9\x9e\xe0\x9f\x68\x00\x44\x19\x47\xdd\xf1\xd5\xf2\x96\x2c\x07\x94\xbd\xb3\x5b\x05\x0d\x40\x48\x74\x5c\xff\x5d\xea\x4c\xa8\xbe\x28\x82\x06\x00\x9d\x7d\xe4\xe0\x9a\x13\x0c\x2e\x0d\x0c\x8b\x30\xb1\x55\x1f\xb2\xd3\x2f\x16\x6c\x1a\x06\x44\x46\xaa\x4b\x8d\x79\xfa\xa8\xef\xab\xd5\xef\x8e\x16\x83\x86\x41\x62\x90\x40\xa0\x11\x55\x66\x26\x84\x2c\x34\x0c\x4d\x82\x88\xfa\x93\xdf\x98\xbd\x6f\x45\x43\x12\x86\xc9\x80\x9e\xa0\x70\x64\x8d\x93\x0b\x90\x58\x23\x25\xca\x8f\xb2\xb9\x86\xde\x5f\x35\xc5\x04\x99\xcd\x4d\xed\x10\x80\x92\x43\x5d\x0f\x15\x54\xc6\xaf\x17\xa5\x01\x22\xd7\xef\x96\x7f\xf8\xa7\x8a\x99\xc0\x42\xbf\xa2\x74\x5b\xe4\x94\xb1\xa7\x3f\x3b\x06\x86\x15\x11\x52\xd4\xe8\x27\x5f\x6d\xc8\x34\x44\xda\x3d\x8b\xf4\xd1\x70\x97\xf9\xcc\x33\x0d\x69\x1c\x70\xeb\x12\xc2\x84\xa4\xac\xdf\x25\x68\x48\x13\x81\x0b\x89\x3c\x5f\x53\x0d\xfc\xca\x88\xa1\x21\x65\x82\x7b\x19\x56\x0b\x2e\xd9\xe0\x1a\xef\xef\xcf\x0c\x47\x00\x56\x7d\x3e\x5a\x9f\x23\xea\x8f\xd8\x75\xfd\xad\x82\x71\xed\xf6\xdf\xfd\x9f\x7e\x9c\x7f\x62\x6d\xd1\x30\x0d\x0c\x82\x86\xb2\xda\x22\x78\x96\xed\xf2\xe2\x61\x3c\xbe\x0d\x21\x41\xd0\x15\xce\x39\x23\x64\x32\x4e\xd2\x28\x74\x1a\xf1\xde\x41\x1c\x9a\xe6\x34\x4c\xa9\xe2\xdd\xb6\x5c\x57\xd5\x38\x4e\xe8\x1b\x31\xa7\x7f\xe7\xb2\x44\xba\x75\xc6\xfc\x31\x4d\x30\xf2\xff\xb4\x7a\x5c\x3c\xed\x56\x7f\xbc\xad\x5e\x36\xab\xcd\x8e\x8c\xea\x95\x68\x28\xb8\x45\x2b\x62\x58\xa4\x76\x2c\x88\xf3\x75\x5b\x34\x14\x60\xd0\x60\xbe\x3b\x5f\x2c\xb3\x8a\xbf\x8a\x4c\x52\x61\xeb\x65\x84\x6c\xe7\x45\xbb\x87\xb7\xeb\x78\xbb\xd4\x4c\xc6\xb0\x14\x16\x82\x60\xd1\x3a\x08\xe0\x75\x51\xe7\xfe\x6b\x4b\x17\x20\x6a\x2a\x91\x15\xd1\x8d\x87\x51\xa1\x32\xa9\x57\x1d\x7c\xfc\xbe\xfd\xff\x41\x73\x90\x86\x2a\xa2\xd8\xed\x15\xb4\x2e\x13\xf1\x0f\xa4\x62\x5b\x72\xba\xf9\xb2\x78\x5f\xed\xb6\xab\xc5\x73\x77\x84\x29\x03\x3d\x41\x5c\x0f\xad\x1d\x5f\x57\xa7\xe0\x15\xb2\xda\x95\xfe\xad\xcc\x33\x35\xd9\x8d\x42\xad\x3c\xbe\x7d\x2f\x9a\x7e\x34\x41\xa0\xd1\xac\xb8\x5f\x3d\x2c\xbe\x3e\x6d\x77\xcf\xeb\x97\xf5\xcb\xe3\xee\x6e\xbd\xed\x5a\xd0\xd8\x73\x09\xbd\xad\x2d\x8b\x53\x14\x0e\x53\xd4\x34\x34\x40\x0d\x78\x70\x88\x9d\xf3\xf5\x9d\x2b\x65\x1d\xeb\x74\x51\x12\x30\x91\xc8\x81\xbc\x2a\x46\x5e\xe6\x92\x9e\xbe\xbd\xb0\x34\x34\x6f\x67\x99\x67\xf5\xa1\xfb\x8c\x24\x30\x31\x26\x19\x4c\x76\xaa\x2d\x77\x85\x8d\x55\x52\x2e\x63\xdf\x86\x30\x13\xd9\x8c\x46\x55\x20\xf8\x6c\x1c\xf4\x70\xad\xa2\xc4\x92\x0e\xb5\xdd\xf7\x75\x7d\xbf\x19\xef\x94\x24\x66\x8c\xb9\x50\xd1\x7d\x56\x21\x4a\xe9\xe2\x6f\x90\x04\x14\x2b\xb9\xf3\xaa\x9e\x5c\x34\x89\x52\xdc\x92\x7a\xe2\xed\xf9\x91\x46\x92\x38\x05\x97\x21\xdc\x1e\x2a\xa8\x0f\x65\xae\x2d\x9f\x84\x6b\x40\xa9\xc2\x22\xd8\xbc\xdc\xbf\x43\x5d\x9e\xab\x0e\xb0\x40\x09\x0b\xa3\xd8\x09\xf3\x56\x9e\xb4\x8f\xfb\x63\x1c\x70\x11\xe8\xe8\x45\x7d\x02\xdc\x1f\x57\x56\xc3\x65\x5f\x89\xa2\xe3\x4e\x7b\xcf\xf6\x87\xb1\x11\x4f\x09\x03\x0b\x0c\xf2\xf5\x7e\xf8\xdd\x76\x5d\x14\x85\xf5\x61\x14\xf6\xbf\x33\x70\xcf\xa1\xcf\xdb\x7b\xbe\xf3\x72\x4c\x94\xf0\x44\x26\x16\x7b\x55\x47\x34\x68\x0e\xf7\xa2\xeb\x6c\x9e\x1a\x0f\xa2\xb6\x21\x71\x67\xe5\x92\xc9\xf3\x72\x60\x98\xaf\x7a\x7b\x5f\x39\x24\xd1\xd3\x93\xbf\x46\xaa\x14\x26\x90\xbd\x61\x72\x6f\xc5\x87\xbd\x3d\x4b\x44\x6c\xa2\xa4\xa7\x0c\xb7\xf6\xf9\x55\x30\x8b\x12\x41\xa9\x70\x01\x35\xbf\x3e\xcf\xce\x79\x22\x54\x88\x80\x6a\x8c\xa8\xfa\xda\xfa\xd7\xa2\xfb\x0a\x2a\xe2\x88\x08\x11\xf5\xc7\x7f\x9f\xa1\x1e\x01\x36\x67\x90\xd1\x6e\x4b\x99\x60\x32\x29\x51\x4c\x48\x5f\x9c\x60\x63\x81\x0f\x65\xf5\x05\xf2\xd3\x15\xc1\x36\x25\x0a\x34\x62\xe1\x4e\x95\xb2\x10\x28\xff\x2c\x9a\x45\x18\xb0\xfa\x91\xed\xa1\x50\x5e\x86\x8a\x12\x88\x38\xae\x1d\xdb\xd7\xaf\xef\x2f\x0b\xe4\x1a\xb6\xa4\xc6\x5d\x03\x0d\x18\xab\x5d\x6d\xbf\x2c\x5f\x5f\x3a\x56\x9b\x41\xb2\x80\x12\xa3\x55\xe0\xca\x35\xda\x7b\xbe\xe5\xe2\x0a\x99\xea\x5b\x1a\x85\xc1\xca\x6f\xa2\xc8\x9a\x8b\x0f\x3a\xcc\x11\xf6\xd0\x28\x48\xec\xd6\xde\xbe\x26\xe2\x1c\x06\x11\xc3\xf9\x15\x25\x0a\x9c\x4c\x77\xeb\xcb\x63\xf0\xa9\x1c\x87\x6e\xda\x16\x80\xe4\xd0\xcb\xad\x7f\xc3\x28\x10\xda\x53\xd2\xb6\x2b\xd6\xfd\xe4\x8c\x30\x0d\xb1\xac\xd8\x42\x9b\x36\xe7\xd3\xa9\xac\x9a\xb9\xe8\x0c\x8d\x48\x64\xf9\xe7\x2c\xd8\x15\xa3\xb1\x93\xb5\x23\x22\x71\x82\x15\x7b\xba\x2a\x4f\x03\x62\x5c\x1a\x91\x24\x40\x0b\xfc\x31\xfb\xcb\x65\x76\xba\x23\x34\xd1\xd0\x15\xc7\x2e\xc5\x69\x7a\x49\x19\x22\x41\xf9\xf7\xf5\x12\xbb\xe9\x57\x48\x98\x5b\xbb\x99\xbb\x54\xc4\x03\xe2\x0a\xd3\x2d\x59\xb3\xc8\xf3\x31\x6c\x87\x46\x71\x14\xa0\xdf\x7f\x7c\xf8\xfa\x72\xdf\x6e\x28\x68\x2a\x4f\x20\x7d\x34\x8a\xb5\x0d\xda\x35\x59\x6b\x9b\x6e\xa6\x0a\x21\x34\x8a\x41\x29\x8b\x6d\x96\x59\xb3\xfa\xcf\x59\xe4\xf9\xe5\x3a\x7c\xdb\x35\xd6\x91\xaf\x38\x7e\x81\xcf\x45\xa1\x0e\xe5\xc4\xed\x89\x92\xd8\xca\xc9\xde\x9d\x1d\x77\xdb\x2d\x33\x7a\x72\xed\xa4\x35\x1c\xec\xf7\x3f\xd7\x30\xa2\x6f\xa0\x51\x02\x21\x76\xfe\xa0\x4c\xcf\xc9\x92\x4d\x5e\x27\x81\x38\x48\xbb\x6f\xff\xef\xf2\x28\x33\x18\x53\xaf\x78\x4c\xde\x50\x11\xdc\x9d\xcc\xa2\x40\x5a\x81\x20\x57\x8f\xe0\x96\x3f\x98\x61\x37\x1d\xd8\xcd\x11\x4b\x14\x32\x2d\xd4\xa7\x1c\xd3\xc6\xd3\x60\xda\xe4\x4d\x19\x0b\x34\x19\x04\xd5\xea\x67\x51\x9c\x6f\xb0\xfb\xd1\x88\x89\x10\x0d\xc1\xc7\x32\x6f\xf7\xd7\x3e\xa5\x73\xab\xbd\x16\xe8\xa8\x3f\xaf\x5f\x56\xef\x3b\x44\x7b\xb6\xc3\x03\x5d\x2a\xdf\x9d\x3c\x31\xa4\x8f\x5f\xbe\x9a\x29\xd9\xd7\xf8\x79\x79\x4a\x90\x5f\x7c\xd5\x1c\x30\xed\xb2\x01\x51\xa9\xc3\x43\x05\x60\x53\x42\xf5\xe4\x1b\x78\x94\x36\x52\xf7\x56\x15\x16\x40\xb7\x3e\xe1\x74\x12\xa6\xa9\x54\xd4\xa7\x40\xce\x85\x76\xc8\xdb\xaa\xdb\x7c\x23\xd1\x5e\xac\x53\xd9\xdf\x1f\x9a\xa7\xb2\x6e\x5a\x03\xb5\x2f\x4c\xe7\x5d\x53\x8a\x61\x38\x4f\xb5\x61\x13\xa3\x59\x73\x79\x2b\xcb\xfc\x57\x4e\x67\x24\x98\x95\x3f\x17\x39\x92\x18\xf7\x37\x57\x09\xef\x87\xd2\xb8\xe8\xeb\xd6\xbc\x1e\x58\xf7\x91\xd0\x1a\x5d\x8d\xdf\xdf\xa6\xc1\x94\x48\x86\x31\x26\x33\x57\xc7\x53\x56\x41\xbf\x5c\xdc\x5a\x1e\x7e\xe9\xd3\x44\x4a\x6a\xb4\x6f\x76\xa8\x19\x5d\xd7\xed\xca\xf8\x54\xee\x33\x35\x07\xc7\xa0\x91\x32\x29\xa6\x8e\x0d\x80\x0e\x83\x60\xf2\x51\x34\x49\x82\x60\xc0\x0d\xf5\x22\x2d\x79\xf4\xa4\x19\x10\x6b\xda\x2c\x0f\x50\x65\xf5\x61\xb4\x52\x9a\x28\x62\x6e\xa5\x5c\xe4\x79\xf9\xd9\xd1\x57\x0e\xa6\x8c\x89\x03\xcc\xcb\xe2\x88\xf6\xd9\x8d\x1b\x1f\xc8\x68\x22\xac\xcc\xf7\x76\xf1\xd4\x45\x05\x46\x7e\x50\x64\x8c\x02\x17\x85\x38\x9f\xfe\xb1\xfc\x15\x8d\x83\x28\x40\xaa\xc6\x5d\x2e\xea\x66\x53\x88\x53\x7d\x28\x9b\xf5\x64\x91\x8c\x83\xc4\x4a\x6e\xca\xf3\x65\x7d\x3c\x59\xb9\x84\xf1\x1c\x9c\xf3\x46\x6f\x18\x60\x71\xc8\x79\x30\x2c\xe9\xea\xd9\x61\x8a\x0f\x4b\x10\x39\xbe\x7b\x28\x38\xce\x93\x0d\x34\x0f\xad\xa7\x78\x4d\x15\x4f\xe3\x10\xa8\x0b\xea\x54\x53\xeb\xc6\xb5\x20\x21\x47\x9b\xe4\xf5\x7b\xbb\x2e\x60\xd4\xed\xae\xfd\xeb\xbb\x30\x26\xc4\x06\x72\xda\x4f\x22\xb4\xee\x7e\x4e\x39\xce\x66\x9b\x30\xe9\x14\x79\xfc\x51\xad\x10\x05\xaf\x44\xae\x3c\xaf\xc8\xf8\xe9\xa3\x20\xc0\x6c\x14\xc6\xc1\x77\xcf\x8b\xf7\xdf\x57\xed\x82\xe4\x2f\x10\x25\xb6\xc0\x3b\x2f\xf7\x9b\x4f\x80\xd3\x2f\x33\xc0\x34\x8e\x49\x84\x88\x3c\x79\xbe\x74\xd6\x69\x17\xad\xbb\xe5\x23\x8e\x1f\x28\x4e\x53\xe4\x9c\x79\x14\x47\x40\x04\xc7\x7c\x69\x12\x8d\x63\x1d\xd1\xd0\x89\xe7\xf8\x92\x99\xb9\x34\xa8\xdf\x51\x46\xdd\x1d\x83\xc2\xd7\xbe\x13\x79\x5e\x36\xaf\x37\x33\xa2\x34\x4e\xa8\xfd\x30\x68\xbf\x6e\x40\x95\x85\x1e\x28\xad\xd3\x98\x52\x1d\x93\xc1\x74\x02\x7d\xb5\xbf\x8c\x5f\x90\xab\x94\x58\x2d\xab\xe6\x5c\x15\xef\x70\x14\x59\x91\x15\x7b\xcc\xcd\xf9\x8b\x72\x93\x22\xbf\xa6\xc7\xf7\x79\xc8\xd3\x75\x16\xeb\xd6\x1a\xf4\x0f\x8a\x0a\x69\x9c\x86\x5e\x33\xda\x13\xb7\x0d\xb7\xf5\x38\x4d\x94\x0d\xe6\xe1\xfa\xfc\x50\x56\xe1\xaa\x39\xbc\xc5\xdd\x61\x6a\x09\xc3\x91\x65\x6f\x59\x1e\x8f\xe7\xd6\x5c\x1d\x96\xb4\xd3\x58\xc8\x10\xcd\x06\x1b\x7e\xf9\x46\x6e\xf4\x89\x0c\x38\xa6\x59\x37\xdb\xc5\x76\xb3\xdb\xac\xff\xed\xf7\xc2\x58\xc5\xb6\x27\x3c\x3e\x6e\xd7\x4c\x28\x6d\x68\xac\xa8\xc6\xa4\xd3\x8f\xb2\x81\x6d\xe9\x88\x89\xc6\xd7\x57\x9c\xca\xae\x7a\xe3\x3e\xab\x9b\x76\x67\x7c\x3f\x77\xf3\x44\x71\x40\x19\x0e\x97\x9a\xbf\x2b\x9b\xc3\x64\x06\xab\xd4\x62\x2d\x1a\x2c\x64\xb3\x15\x10\x7f\xc7\x02\xdf\x9d\xca\x55\xe8\x4d\xe7\x66\x51\x55\xe2\x72\x7f\x29\xc4\x31\x53\xdd\xed\x53\x8d\x05\x65\x75\x0e\x70\x9a\x84\x8c\x63\xed\x54\xb0\xdb\x7d\xb8\xdb\xd4\xdf\x44\x25\x8e\x75\xd7\x24\x4d\x91\x86\xeb\x8f\xb3\xcc\x46\xf3\x1f\x92\x00\x2c\x77\x5f\xa6\xc0\xcb\x1a\xcf\x0f\x95\xee\x0c\xa5\x5d\x2c\x60\xf3\x91\xb5\x86\xed\xfc\x4b\x41\xca\x30\x13\xdb\x2e\x45\xb3\xe9\xa4\x18\x44\x84\x41\x11\x4b\x64\xb9\x3a\xb4\x96\x57\xb7\x95\xba\x36\x26\x12\x62\x98\xc0\xec\x54\x6c\xc7\x9f\xcf\x00\x43\x10\x6d\xe3\x39\xea\x7c\x11\x18\x4d\x48\xc0\x5c\xb9\x30\x6a\x24\xfc\x36\xd5\x68\xa6\x09\x51\x10\x49\x0f\xfd\x28\xfb\xf4\x5b\x6f\x0b\x24\x11\x8b\x03\xf7\x32\x4b\x39\xc5\xb2\xdb\x22\xff\x71\x7b\xce\xc5\x80\x36\xa7\x12\xf2\x6f\xb3\xcb\x83\x07\x8a\x74\x14\x5a\xe1\xb7\x1c\x44\xf5\xdf\x67\x38\xfb\xfe\x48\x22\xc3\xb0\xb4\x7b\x29\xaa\xad\xf8\x99\xad\x55\x39\x3f\x61\x92\x04\x38\xea\x03\x9d\x8b\x5a\x18\xf8\x5e\x65\x0d\x7c\x6d\xf7\xb4\x19\xfe\x38\x9a\xb0\x90\x6b\x36\xc8\xbc\xfd\x36\x63\x0f\x25\x8c\x01\xbe\x53\x1f\xaf\x71\x72\x2f\x5d\x57\x73\x2a\x95\xd5\xe9\xba\x2e\xba\x1d\x8f\x8e\x84\x33\x8e\xf5\x1f\xf2\x7c\xb9\x87\x53\x39\xb5\x2d\x13\xce\x52\x12\x4e\xb2\x52\xed\x45\x5f\x44\xd5\x5a\xcf\x3f\xfe\x91\x2a\x3d\x4d\xb8\x4a\x98\x0b\xcd\x79\x91\xe3\x07\xa1\xae\xfc\xd9\x84\xeb\xa4\x5f\xe7\xfa\x28\x6e\x92\x52\x8b\xf7\x3b\x88\x7a\x0b\xe2\xf8\x0c\xc8\x0c\x38\xee\xe9\x54\x03\xa6\x98\x6b\x67\x7d\xe0\xf6\xfe\x05\xcd\xdd\xee\x32\x46\x63\x5c\xc6\x15\x0b\x8c\x49\x4c\x28\x96\x23\x7a\xa5\xa7\x06\xf7\xe9\xee\x88\xb1\x50\x90\x3d\x92\xa8\x2e\x2a\x2c\xcb\xa9\xff\xd8\x5e\x4e\xdd\x88\x90\x49\xea\xbd\x91\xb1\xb6\xeb\xfc\xf6\x99\x48\xae\x47\x15\xc3\x9b\x06\x4e\x93\xf8\x50\x22\x8d\x50\x2e\xf9\xbf\xaa\xd5\x19\x72\x31\xe9\x2f\x95\x2a\x84\x04\xcb\xac\x2c\xba\x55\x2a\xd1\x9a\x89\xc0\xc3\xf1\xfb\x14\xeb\xf8\xda\x10\x84\x89\x5b\x3f\x5e\xe0\xe7\x24\x92\x96\x98\x20\x35\x4e\x71\xdb\xb3\x1a\xac\x0b\x53\x56\xc7\x6b\x96\x61\x4a\x83\x98\x21\x06\x6b\xa5\xca\xa2\x3c\x5e\xb6\xe2\x67\x5f\x2c\xff\x8b\x7f\xee\xec\x30\x24\xd8\xeb\x36\x90\xe5\x69\x32\x07\x89\xe3\xf1\xcd\x42\x16\xa2\x2a\x2f\x46\x4a\x31\x48\xea\x76\xf3\xf1\x1b\x50\xc2\x6d\x0a\x2b\x9b\x91\x8d\x9a\xdf\x65\x29\x51\xa9\xb0\x99\xc1\x66\x51\x7f\x6c\xa0\xca\xa6\x0b\x1c\x86\x2f\x94\x93\x6d\x6e\x0d\x9f\x8d\xd5\x5e\xf4\x53\x8f\x46\xd4\xf2\x0a\xbd\xbd\xaf\xd6\xcb\xd7\x21\x6a\x9d\xb6\x2e\x25\x56\x26\x7e\x3f\x94\xeb\x7a\x7b\xe8\x74\x02\x1c\x6a\xd6\xb7\x32\xa1\xc7\x9d\x2e\x45\xa5\x91\xf1\xe9\xd5\x8c\x48\xb9\xff\x35\x79\x26\x43\x2c\x2d\x2c\xd4\xc8\x01\xb4\x3d\x64\xfd\xf3\x18\x8e\x16\x37\x8c\x80\xfb\x93\x0b\xc4\x01\x45\x01\xfb\x93\xb8\x98\xb2\x1a\x2a\x13\x52\x9a\x18\x2a\x9c\xc2\x8f\xdf\x45\x3b\x15\x9c\x81\x23\x42\x29\x00\xf7\x2b\xb3\x53\xdf\xda\x96\xef\xb8\x8e\x55\x93\x08\x3f\x65\x21\x47\x64\x9c\xab\x6d\x5c\x9d\x4a\x75\xf8\xad\x3b\x96\x22\x42\xa7\x3c\x35\xeb\xe2\x0f\x03\x55\xc7\xf0\x4f\x69\x9a\xc4\x32\x76\x86\xe4\x06\x87\xd0\x28\xba\x4f\x53\x15\xd8\x04\xc0\xa1\xfc\x44\xd3\x6f\x68\x24\x51\x11\x19\x0c\x00\x6c\x40\x9d\xab\xac\xb9\xec\x96\x65\x51\x80\x6a\x5a\x77\xc1\x39\xee\xdb\xf2\x05\x3e\x3b\xc9\xda\x01\x39\xe2\xe8\x36\x32\xe0\xb8\xd0\x08\xad\x91\x71\x01\xf1\x4d\x55\x7d\x77\x19\x4a\xd2\x7b\xb3\x94\xca\x90\x23\x82\xf9\xed\xcf\xa1\xcc\x3a\xa5\x52\x5b\xf9\x94\xfb\xb3\x28\x3e\xcf\xfe\x57\x1d\x05\xc2\x65\xd7\x1d\xdd\xda\x3b\xa8\xf2\x78\xbc\x52\x63\xa4\x54\x27\x04\x03\xc0\x59\xfd\x7a\x82\x9e\xce\x89\x52\xcd\x23\x9a\x38\x89\x3f\x0b\xa2\x1c\x17\x41\xf4\x03\x1e\xa2\xc8\xc4\xbd\x80\xe1\x30\x82\x47\x21\x36\xc4\x12\x9e\xd6\x8e\xe4\xa8\xb6\x65\xdd\xf3\x3b\x09\x05\xee\x08\x96\x31\xae\xd7\x71\xbb\x4f\xef\xc8\x25\xe9\x2d\x55\x91\xbb\x2b\xbf\x41\x85\x66\xf5\x4b\xf9\xe9\xee\xcf\x82\x08\x10\x5d\xb4\xf8\xb6\xfe\xea\x7f\x0b\x79\x80\x35\x4a\xd9\xf1\x94\xef\x4e\xd3\xea\x97\x31\x9b\x12\x65\x51\x6a\x65\x67\xe1\x3f\x67\xe7\x34\xdb\x26\xc3\x8f\xc9\x22\x23\x70\xbc\x59\xe3\xc7\x9b\xcc\x2c\x0e\x6c\x2c\x00\xd5\x52\x3a\xd1\x02\xca\xe2\x90\x4b\x5c\x5a\xf3\xa6\x93\xf2\x1f\xbf\x22\x8b\x13\x8d\xe9\x9e\x11\x0d\xa4\x0d\x7b\x4c\x1a\x72\x1b\x3d\xd2\xf6\x43\x5b\xcd\xb9\xee\x46\x0a\x90\x93\xf2\x24\x2e\xad\x97\xfc\xec\x91\xde\x14\xf5\x69\xda\x8f\x96\x83\xde\x43\xd5\x7e\x91\x3b\x87\x3b\xf3\x50\xda\xd1\x38\x61\x2c\x51\xa1\xdb\x0d\xba\x1a\xbe\xd9\x4f\xc8\x58\xca\xad\xc3\x83\xc4\x28\x4b\x7f\x43\x1e\x04\x18\x34\x14\x9d\x8c\x33\x65\xdc\xd5\x56\x6a\x71\x19\x96\xa7\xfb\xa3\x31\xc3\x62\xe2\xbb\xed\xf2\xfe\xf5\x71\x35\x79\x6f\x6e\xb8\x74\x76\xde\x5d\xa6\x7f\x1b\x1d\x4b\x23\x83\xf6\xc8\xc7\xe7\xa1\x47\x32\x52\x96\x0a\x1b\xd7\x3f\x88\x42\xe7\x30\x3c\x22\xc2\x50\x09\xcf\x2c\x94\x81\x5e\x34\xce\x28\x9a\xac\xdc\x4c\xa4\x29\xee\xb7\x39\xec\x45\x3e\x31\xdd\x99\xa4\x36\x2a\xae\xca\xa2\x6e\xaa\xf3\xb5\x65\xc2\x24\x4b\x41\x0f\x4d\xb3\x21\x73\x95\x6f\xa3\x42\xe4\xf3\x54\xa2\xd2\xf5\xae\xc9\x1a\x51\x64\xe7\xe3\x0e\x8d\x99\xee\x4e\xaa\x63\x97\xb6\xfc\x33\xd9\x5f\x53\x4b\x86\x29\x47\xf6\x08\x45\x3b\xc8\x32\xfd\x50\x56\x8e\x76\x20\x93\x33\xd1\xad\xd1\x73\xaa\x54\x87\xdc\xd7\x1d\x62\x71\xc4\xba\x58\x34\x8d\xc3\x33\x7d\x13\x79\x67\xc3\x32\x4d\x13\xd4\xc4\x5e\x6c\x56\x03\x36\x56\xca\x40\xd2\x24\xf4\x10\x31\xe7\xf4\xba\x74\xe4\xec\xfe\xc1\x40\x72\x61\x0b\x77\x91\xa4\xab\xd7\x0a\x0a\xfd\x53\x99\x80\x20\xbc\xf7\x79\xb1\x7e\xb1\x11\x76\x4b\x1a\xea\xaa\xbb\x16\x8f\xab\x1d\xd2\xda\x7a\x38\x03\x33\x34\xb4\x1a\x5f\xe7\x66\x9b\x35\x03\x00\xb3\x77\x1b\xc6\x91\x86\x99\x89\x6d\x98\xc4\xf2\x0b\x5c\xb2\xe6\x02\x78\xcc\x08\xe6\xe5\x8e\x5d\xc2\x11\x53\xbc\xfe\xa8\x0c\x71\x33\x71\xa2\x11\x42\xe6\xbf\xa0\xdd\x9c\x37\x28\x78\x90\x5a\x84\xe2\x1d\x14\x60\x32\x95\x89\xea\x32\xe5\xf9\x1d\x3d\x12\x0f\x52\x85\xb3\x5e\x83\xca\x8e\xdd\xa0\xe1\x61\x4c\x53\xac\x1f\x70\xe2\xf1\xfe\x77\x12\xd1\xa8\x0b\x79\xbc\xc0\xe7\xb6\xa3\x6a\xa5\x9c\x24\x09\x4e\x8c\x6d\xf9\x91\x35\xf3\x1b\x31\x27\x40\x8d\xf1\x84\x8b\xe7\xba\x71\xd6\xcc\xa4\x55\x94\x50\x74\x8b\xb7\x5f\xd7\xbb\xc5\xfd\xfd\xfb\x6a\xe3\x4d\x1a\x1e\x47\x91\xb2\x04\x1c\xa7\x07\x21\xbb\x5f\x53\x0b\xf1\x13\x5a\xbf\x94\xfa\x0a\x7c\xee\x5a\x25\xb1\x8d\x9f\xfe\x7e\x2a\x4f\xeb\x06\x8e\xfe\xec\x24\xb1\x5a\x23\xb6\xa4\x6b\x73\xd6\xe5\xc0\xce\xe0\x09\x37\x08\xcd\xf9\x96\x55\x22\x1f\x75\x46\x02\x96\x0f\xed\xe5\x6d\x3b\x93\xcd\xe2\x34\x8c\xa8\x18\x48\x2c\x9f\xab\x7a\x4c\x30\x39\xfe\x74\x34\x01\xac\x9e\x3a\x17\x5f\x84\x2f\x19\xa6\x9c\x2a\x40\x90\x1e\x34\x9e\x25\x8d\x72\x1e\x87\x98\x26\x5b\x64\x57\x71\x86\x41\x9a\x63\xfc\x30\x9c\x0b\x24\x91\xd8\x1e\xec\x06\xf8\xe0\x2f\x96\x06\x2a\xe1\x03\xaf\xe0\xf5\x7c\x23\x9b\xc0\xd3\x58\xa2\xff\xef\xb9\x4f\x70\xff\x1c\x52\xeb\x4d\x9a\x33\x99\x76\x32\x48\x2e\x4f\x79\x9e\x70\x4c\x53\x2e\xa2\x08\x31\xa8\xc7\xcb\xcf\x1e\x9b\xdb\xfe\x2c\xb0\x1e\xfc\x11\x9a\x11\x1e\x89\x0b\x17\x2e\x96\xe7\xcb\x88\x85\x7d\xc6\xce\xe7\x32\x56\xb8\xa5\xda\x0f\x80\x95\x60\x23\xbe\x97\xc9\x03\x4b\x9d\xa0\xb5\xbc\xfd\xf2\xf5\xe9\xcf\x85\xbf\xa1\x8a\x08\x16\x22\xfa\x0c\x3f\x9a\x79\xf7\x28\xc2\x3d\x7f\x19\x95\x0a\x34\x71\x2c\x21\xf6\x75\x76\x68\xb4\x82\xb8\x73\x80\x11\x54\x69\x46\x3e\x3e\x5b\x31\x37\x2a\x1e\xa4\xdc\xa4\x51\xa0\x3d\x85\x93\x05\x63\x0f\x44\x0f\xfe\x06\x52\x65\xaf\x91\x06\x4c\x2a\xe6\x51\xe3\x59\x31\xe1\x34\x9f\x36\x96\x80\x22\x6b\xad\xab\xf6\x08\xc5\x97\x8b\x67\x79\xa1\x69\x00\x56\x20\x78\x67\x93\x7a\xed\xf3\x22\xd2\x7b\x7c\x81\x30\x66\xa1\x72\x50\x83\x3e\xee\xbf\x5b\x2e\x7c\x8a\x33\x0d\x99\x2d\x1f\x71\xc5\xb3\xcb\xe9\x05\xb8\xf1\xb8\xbf\x85\x46\x76\x10\x07\x58\x9a\xde\x89\x10\x8b\x8e\x12\x67\xd5\x9c\xeb\x37\xab\x13\x3d\x86\xf9\xa6\x44\xa8\xb4\x27\x12\xc3\xa1\x3b\xc7\x1f\x79\xdd\x69\x44\x0a\xb4\x3b\x10\xca\xdd\x3b\x22\xbf\xc4\x3c\xf9\x53\x55\xac\xbd\x9b\xb4\x14\x85\xcd\x01\x64\x7f\xc1\x4b\xd9\xac\x0a\x0d\xba\xd7\xbf\xa0\x69\x14\x73\x2e\x07\x88\x32\x9c\xa4\xa3\x06\x4c\x20\x6d\x81\xc8\xaa\xfb\xaa\x3c\x59\x97\xe7\x76\x70\x3a\x8d\xb5\x41\x03\xa6\x56\x22\x07\x6d\xb7\xd5\x7e\x1e\xa5\x49\x2a\xa9\x8b\x6f\x6c\xee\x97\xbf\x0e\x53\xa6\x89\xb4\x92\x9e\xf7\x22\x87\xd7\xf7\xee\x12\x9a\x61\xfc\xb5\x30\xcd\x55\x80\x38\xa5\x71\x24\xad\x94\x29\x76\x1c\x36\xe8\x7b\xcf\x37\x4a\x38\x65\x5d\x04\xe3\x6a\xd0\xa7\x54\x05\x2e\x80\xae\xca\x42\xb7\x36\xfb\x73\x59\xf8\x52\xca\xf6\xb0\xe5\x06\x47\x70\xef\x43\x56\xd5\xcd\x77\x80\x0f\x9b\x1a\xed\xda\x98\x00\xeb\xfa\x0c\xd6\xf8\x2f\x21\xb7\x84\x1c\xe3\xa5\x3a\x65\x69\x8c\x78\xfd\x6d\x96\x6b\xe8\x8b\x1c\xdb\x03\xd4\xa3\xcc\x2c\xfa\x78\x1a\x1d\x48\x53\xa2\x99\xb2\x39\x1e\xf4\xcb\xfd\x76\x3b\x37\xaa\xe6\x18\xdf\xfa\x55\x20\x4d\x39\x47\xf7\xe1\xb4\xb3\x33\x62\x77\xb4\x69\x46\x5c\xb4\x06\x60\xbd\xc9\x03\xa4\x3c\xa5\x8e\xca\xfe\xd5\x6c\x0f\x76\x70\x6f\x0f\x55\xd9\x21\x69\x52\x61\x42\xac\x5d\x5c\x3d\x3e\x6e\x76\xdb\xd7\xdd\x97\xc5\x76\xf9\x65\x17\xde\x2d\x3c\x88\x23\x95\x86\x61\x57\x9f\x0b\x6f\x6f\xb6\x66\x48\xa5\xc7\x18\x81\x54\xa5\x84\xd0\x3e\xa6\xba\xc8\x87\xb9\xc1\x54\x4b\x1a\x3a\x7d\xd8\x17\xf8\x5c\x5e\x41\xb9\x53\xad\x2c\xdd\xed\x23\x34\x4b\xd1\xc0\xbe\xec\x34\x37\x06\xf4\x71\x34\x05\x6e\x39\xc8\x5a\x93\xf2\xe2\x3c\xe5\xc9\xd0\x00\x6d\x69\x58\xed\x7c\xfe\x22\x06\x8a\x69\xe3\x4f\x6b\xc2\x34\x6e\xe7\x8d\xd3\x18\xf7\xb4\xf1\xbb\x6f\xab\xcd\x76\x75\xbf\xf3\x48\xc3\xd4\x18\xe9\x39\xa9\x2c\x94\xed\x39\x2b\x9a\xeb\xe2\x4b\x2a\x02\xc7\x2d\xb6\x2c\x8f\xa7\xd6\xa3\x6c\x60\x79\xc8\x4e\xe3\x60\x78\x44\xfc\x3c\x14\x61\x14\xa1\x55\xf4\xbb\x90\x59\xd5\x91\xd4\xf8\xdb\x0a\x12\x1b\x8c\xd6\x96\x55\xb6\x6f\xa7\xfe\x80\x43\x98\x0a\xe2\xe0\x09\x37\xb4\xb2\xff\x35\x13\xd1\x15\x51\x18\x08\xa7\x84\x3a\x24\xb9\xbb\xb1\x39\x70\xf7\xb8\xfe\x64\xc2\x90\x84\xea\x90\x35\xcf\xa5\x9c\x5b\x1d\x7d\x43\x93\x22\xe3\x78\xa7\xb7\xda\x0e\x7d\xcc\x5f\xcc\x7f\x06\x11\x47\x42\xda\xc8\xb6\x25\x45\x1c\x12\xcf\xdf\xfa\x3f\xec\x51\x6f\xd8\x8b\x58\xc4\x98\xf7\x5d\xd4\x75\xb6\x2f\x1e\x1f\x57\x6f\x65\x99\x5f\x2b\xc8\x51\x91\xc4\x8a\x06\xae\x66\x65\xd5\x1c\xa6\x47\x65\x1c\x85\x1d\x2a\x69\x9b\x9d\x66\x09\x92\xda\x76\x89\x74\x05\xf3\x7f\xab\xec\x3b\x88\x99\x0b\x1a\xfb\x2c\x62\x9d\x29\x6b\x1d\xfe\x83\x2d\x43\x50\x6a\x6b\x92\x2c\x57\xb7\xbf\x63\x75\xcd\x69\xe6\xdb\x33\xab\x03\x6d\xa5\xb4\x27\xc7\x78\x8c\x5e\xb4\x86\xe2\x82\x11\xcb\x76\xfe\xbc\x55\xe5\xcf\x8b\xd5\xaf\x9b\x36\x97\x76\x35\xcd\x6a\xc7\xda\x3f\x99\xbc\x82\x51\x8a\x65\xf5\xf7\xa2\x3e\xec\xcb\xdc\x2f\xb1\x82\x27\x3a\x89\xc7\x04\xae\x76\x14\x8f\xce\xe6\xd2\x06\x05\xb0\xd5\x29\xab\xae\x18\x66\x5d\x3b\x41\x0c\x8b\x07\xc1\x0c\xc7\xb9\xe4\x6f\x26\x34\x75\x2f\x8c\x51\x8a\x51\x4a\x51\xc8\x04\x04\xed\xc0\x46\xf7\x99\x31\x99\x3a\xe7\xcd\x65\x51\xe8\x11\xbb\xd8\xe4\x96\xd2\x89\x23\x57\x18\x3f\x7a\x16\xd7\x43\xd3\x37\x54\x81\xcf\x17\x21\x83\xfb\xa8\x9c\x78\xdc\x54\x91\x08\x57\xba\xef\x59\x81\x9c\xfb\x37\x07\xfb\xf8\x23\x28\x99\xc0\x18\xe8\x3d\xb9\xac\x4c\xd1\x64\xda\xae\x36\x5b\x5c\xc8\x42\xff\xee\x3a\xb2\x64\x66\xfd\x02\x8e\xb5\x04\xd5\x04\x21\xe4\x5a\x43\x3b\x38\x9c\x6c\x60\xbb\xa9\x17\xfb\x12\x65\xaa\xba\xb5\x5c\x80\x26\x10\x0e\xf2\x6f\x98\x79\x18\x3f\x0c\x98\x04\xed\x6b\x5d\x9e\x5b\xbf\x69\x46\x9b\xc1\x35\x34\x8c\xa3\xd7\x88\x5c\x92\xc3\xcf\xce\x27\x1d\x6c\x52\x9b\x75\x71\x65\xe2\xce\x94\xf3\x31\x32\x19\xb0\x90\xdb\xaa\x9d\x37\x31\x1d\xbf\x32\xe0\x1c\x3d\x25\xb4\x90\x77\xf9\xb0\xec\x6d\xdc\x30\x4c\xc2\xd8\xf9\xa0\xcf\xe2\xe7\x43\x05\xa8\x60\xe7\x2d\x45\x19\x26\x3c\xea\x07\x91\xcd\xac\x5c\x11\x88\x0d\xb6\x6d\x19\x72\x1a\xf6\x1c\xb6\x88\x4f\x7e\x2d\xda\x5d\x78\x29\x8a\xbb\xf3\x98\xc2\x81\xca\xd0\x38\x8a\xc4\x4a\x14\x8d\x9d\x88\xdb\x72\x36\x61\x22\xa3\x30\x0a\xfb\x5c\xe2\x8f\x2c\xcf\xfb\xaa\x18\x19\x45\x11\x65\xdd\xa0\xad\x71\xc1\xd0\xdd\xc1\x58\x93\x9e\x61\xb5\xcf\xad\x0e\x9e\x3a\x4a\x2d\x8a\x5f\x58\xd2\x5c\x58\x17\xed\xe6\xd4\xbe\x68\x77\x11\xc5\x7d\x06\xd6\x89\x94\x5c\x51\x01\x50\x99\xc4\x96\xfe\x7e\xd1\x1c\xc4\x9f\xaf\x8f\x8b\x71\x49\xe6\xf8\x7d\x12\x9d\x12\xea\x86\x28\x3a\x84\x93\x6b\x21\x94\xd0\xe1\x58\x10\x57\x36\x56\x07\xa1\x92\xa6\x1a\xe9\xca\xc4\x29\xf3\xf1\x05\x1f\x57\x1b\x9b\xfb\x92\x05\x4c\x32\x1f\x51\xc2\x50\xb3\x3f\x92\x26\x8c\x3a\xa4\xb4\x83\xbd\x60\x10\xba\x75\x60\xae\xe3\xd5\x52\x90\x98\x74\xcc\x85\xe3\x87\x11\x34\x40\x30\x90\x63\x8a\x99\x70\xa7\xf8\x46\x12\x70\xcd\x7c\x3b\xff\xf5\x57\x3e\x08\xc2\xcc\xe2\x56\xa4\x22\xa1\xb6\xea\x8d\x95\x2d\xde\x7f\x2a\xf7\x64\x51\x94\xc5\xc5\xc7\x2a\xa4\x4a\x08\x71\x50\xe1\x7f\x5b\x6d\x8e\xe1\xee\x28\x35\xb1\x69\xc3\xd7\xf7\x97\xd5\x76\xf9\xba\x7e\xf1\xe7\xe9\xd8\x7a\x98\x1e\xc6\x20\x8a\x8f\xfe\x90\xad\x73\xa8\x11\x49\xf2\x56\x95\x32\x87\xe3\xa4\x1f\x74\x62\xb0\xbe\xcb\x0e\xa8\xd6\x34\x02\xbd\x14\xa7\x13\xe8\xb5\xfe\x39\x19\xb6\x10\x48\x84\xdf\x7d\x59\xbf\xbf\xe2\x1a\xe5\x6f\x04\xa1\x0d\xd8\x37\xe5\xa2\x56\x59\xe6\x12\x2a\xfe\x20\x55\x58\xe9\xd1\x7e\xfc\xa7\x6f\xab\x5f\xa3\xbf\x24\x18\x2a\xbd\x18\x69\x01\x77\x97\xd7\x02\xde\xcb\xb2\x19\xda\x81\xae\xa5\x21\x51\x4a\x46\xba\xb5\xf7\x48\x4a\xac\x06\x2c\x02\x54\x1a\x1e\x20\x56\xea\x84\x31\xee\xc9\x47\x34\xa9\xc1\xfa\xbd\xcf\x2c\xd7\x0a\xe5\x59\xcf\x83\x33\x45\x62\x1c\x7f\xd1\x8f\x4c\xe3\x7a\x75\x63\xf8\x1b\x29\x12\xda\x7f\x82\x87\xb2\xea\xca\x86\x47\x8f\xac\xc2\x84\x2b\xc7\xc3\xd6\x7e\x27\x97\xa9\x70\x37\x54\x44\xd9\x84\x4d\x59\x41\xfd\x04\xa6\xe9\x7f\x27\xe8\x07\x6c\xfe\xdc\x6c\x57\xcf\xbb\xe5\xfb\x0a\x6b\x97\x77\x4f\xeb\xe7\xae\x62\x45\x11\x93\x22\x6e\xe7\x8b\x17\x72\xf8\x95\xf8\xc2\x0d\x34\xd6\xf8\xb5\x54\x14\xb0\xd4\x7f\xb8\x60\x7e\x53\x57\x51\x1a\x18\xab\xc6\x60\xf9\xa0\xfd\xcf\x32\x46\xdd\x88\xb1\xd2\xa0\x2d\xf2\x73\x60\xdc\xd9\xdd\x55\xc5\xb1\xe5\x75\x2e\x4f\x50\xac\x57\xaf\xbe\x8e\xdf\x1f\xa5\x82\x05\xa3\x05\x19\x73\x16\x76\x4f\xb9\x56\x46\xa2\x8a\x2a\x8a\x45\x76\xa2\xae\xa1\x6a\xd6\xcd\x7d\x09\x75\x61\xf9\x9b\x47\xf9\x3e\x45\xb5\x42\x2f\x3d\xab\xdf\xca\xfa\x2e\x6b\xc7\xde\xbc\xa9\xa0\xa8\x51\x36\x6c\xd0\xee\x46\x68\x9e\x6e\x86\x3c\x6b\xae\x15\x0b\xac\x15\xba\x7c\x1f\xa5\xea\x14\x4b\x52\xcb\x9f\xde\xbe\xd8\x6d\x94\xe9\xec\x6e\xab\x98\x88\x30\xcc\xf3\xbc\x7e\xd9\x3d\xac\x56\xdd\x35\x65\x1c\x59\x20\xd3\x0f\xc8\xcb\x13\x54\xf5\xf2\xdc\x0d\x1e\x66\x54\x92\x74\xe6\xf0\x5d\x59\x55\xa8\x5a\x35\xbe\x30\x27\x80\x53\xe9\x98\x15\x9e\xb5\xc0\x46\xe9\xc7\xd5\x33\x8a\xb3\x24\xb6\xf4\x0e\x65\x05\x77\x48\x71\x33\xb1\x3f\x94\x08\x08\xba\x3d\x59\x91\x35\xdb\xcf\xf2\xff\x95\x81\xe1\xd7\x81\x2e\x25\x02\x85\xfb\xc4\x88\x5f\x62\xb4\xf4\x8e\x6d\xf6\xe9\xe9\x29\xe0\xf3\x67\xed\xfa\xfa\x26\x32\x3d\x90\x87\xa5\x4a\x52\x2b\x0d\xfc\x7b\xbb\xba\x4e\xc2\x8f\xe7\xa9\xaa\x48\xdb\xdc\xa4\xb2\xeb\xd9\x57\x63\x30\xf3\x71\x83\x15\xd3\x9f\x23\x62\x62\xa9\x86\xd4\x6b\x85\x6e\xe1\x95\x1d\xa1\x54\x68\x7d\xc3\x5c\xa0\xc9\x2a\xf6\xc3\xf5\x4c\x29\x19\x1a\xaf\x9a\x78\xca\x8a\xd7\x73\x73\xea\xf5\x8a\xe6\xa3\x3c\x4a\x41\xe0\x45\x3c\xee\xc6\x91\xc1\x1b\xed\x4d\x40\x9d\x4e\xe8\x26\x3b\x9e\xf2\x76\x05\xbe\x0a\x06\x8f\x3b\xda\x2f\xa9\x4a\x07\x01\xc6\xf6\x74\x56\x37\x59\x9e\x3f\x96\x7a\xc0\xb5\x44\x95\x8e\x99\x2f\x88\x71\x8b\xb6\x33\x63\xb3\x62\x6f\xe3\x3b\x5d\x99\xbd\xd2\x4c\x59\x12\x94\x6c\xef\xd8\xba\xfd\x81\x34\xc6\x0a\x5d\x97\xf4\xbf\x13\x4d\x97\xf4\x57\x5a\x5a\x4b\x5e\xf6\xfb\xa0\x32\x2a\xa2\x83\xf5\xf9\xd5\x18\x75\x18\xc8\x55\xfc\x0a\x32\xae\x03\x2a\xb4\x1e\xe7\xae\xbf\x67\xcd\xc1\x46\xe9\xec\xf0\xf9\x47\x90\x70\x1d\xa4\x29\xa2\x1a\x5e\x75\x56\x4c\xc0\x39\x3a\x64\x91\x70\x4e\x77\xfb\xeb\xa2\xd0\x73\xb2\x94\x54\x87\x3a\x42\x4a\xbc\x02\x43\x2b\x0e\x05\xee\x8e\x11\x1a\x48\xc7\x1c\xb2\xb6\x84\x1d\xdf\x44\x95\xc9\x1c\x6e\x8c\x45\x4d\x34\x0b\x1d\x44\x05\x4d\xe5\xa1\x0d\xa4\xa3\x28\x45\x6f\x4c\x66\x53\xad\x0a\xdf\x80\x07\x08\x0c\x5b\x57\x99\x35\x9f\xde\x10\x3a\x3d\x08\x6c\xea\x38\xb2\x09\xee\xd6\x4f\x9f\x8f\x6f\xf8\x86\x4c\x9a\xa4\xe3\xbb\xfd\xe5\x0c\xd2\x09\x13\x98\x20\x14\xb8\x3e\xad\x8b\xa7\x9b\x2c\x18\x6d\x53\xcf\x59\xfe\x9c\xfd\xf4\x55\x97\x33\xec\xfe\x54\xd3\x40\x58\x3d\x06\x5b\xfc\x81\x56\xd0\xec\x77\xe5\xfe\x04\x6a\x43\xd8\xbb\x9b\xb1\x83\xd1\xb4\xd0\x34\xb5\x5f\xe7\xae\x7d\x6a\x8b\xee\xf0\x47\xdc\xee\xde\xa7\x0e\xc3\xee\x90\x16\xe8\x09\xd8\xe2\x1a\x5b\xf4\xbc\x2a\x6c\xe9\xde\xb5\xbb\xa2\x59\x64\x75\x49\xee\x17\xff\x1e\xee\x39\xba\xdd\x73\x88\xe7\xf0\x90\x90\x0f\xa0\x66\xba\xb5\x9b\x75\x47\x67\xf4\xee\x1c\xcc\x9e\x5b\x96\x6a\x1e\x59\x9d\xb9\x5e\x59\x32\x1f\x9a\x49\x9a\xd3\x44\xbb\xd0\x20\x56\x9b\xba\x51\xe9\x9f\x6f\x26\x7d\xa3\xb9\x09\x22\x18\xd0\xd9\x8d\xae\x97\x92\x98\xb8\x32\xed\x47\xd1\xc0\x07\xc0\x09\x66\x19\xf2\xa9\x16\x09\xc5\xfe\x11\xed\x7d\x77\x1f\x59\xc7\x02\xa1\x85\x26\x16\xc0\x77\x28\x3f\x87\xda\xbf\x54\x4b\x02\x3c\xf6\x4c\x6c\x48\xa6\x8b\x36\xd8\x5c\x8d\xac\x96\x54\x71\x3b\xf7\xdf\x41\x03\x58\x5a\xdf\xf1\x23\x48\x66\x89\x6b\x10\xd6\xf9\x02\x3f\x9b\xb7\x2a\xfb\xcb\xfa\x1b\x5d\x0b\xa3\x27\x41\x94\x87\x5c\x0c\x3d\x72\x2d\x53\x89\x61\x8a\xe5\x1f\xdb\xe5\x04\x4e\xa0\xa5\x0e\x2d\xc0\xc9\x5b\x52\xa8\x78\x34\x32\x5e\xb4\x8a\x95\x55\xb0\xac\x1f\xce\xed\x54\x43\x7f\x65\x34\x04\x14\xa5\x31\xf2\xdb\x1c\x2a\x80\x2f\x65\xf3\xa5\x3c\x57\xf5\x52\x9c\xd6\xc5\x77\xc8\xba\x46\x2c\x56\xd2\xab\xf0\x94\xb9\x5e\x96\xc7\xac\xce\xca\x7e\x51\x50\x8c\x02\xeb\x4b\xae\x6d\xc7\xd6\xaf\xbf\x60\xeb\xa1\x5a\xa5\xcc\xea\x69\xd7\xe2\x47\xa7\x72\x71\x2b\x1e\x38\x7a\x2b\x1d\x1a\x4e\x07\x00\x60\x57\x61\xe4\x8f\x1a\x85\x75\x6f\xad\x2d\xf4\x65\xf1\x7e\x3f\x48\x3f\x69\x08\x22\xc4\xf6\x20\xfb\x4a\x23\x72\x0b\x1f\xea\xcc\x48\x0d\x21\xe5\x43\x1d\x18\x04\x76\xdf\x5d\x9e\xa1\x6a\xbf\x4f\xe3\xb9\x53\xff\x0e\x90\x3a\x3b\xb6\x8d\x11\x58\x47\xf4\xdc\xba\x51\x85\xff\x00\x10\x04\x80\x70\xdc\x9d\xa9\xca\xe3\x8b\x28\xca\x97\xf5\xd3\x78\xb4\x41\x60\x52\x4c\x76\x15\xe2\x87\x95\xb2\x73\xbf\x93\x00\x12\xbf\x8c\x5d\xee\x60\x8a\xab\x05\xc2\x98\xb2\x7c\x8a\x99\xfa\x80\xe2\x41\x54\xc7\xee\xd4\x34\xc4\x81\x55\x98\xfa\xcd\x33\x96\x77\xc7\xa4\xcd\x19\xba\x78\x1b\x2a\x33\x15\x22\x9f\x2e\x90\x3e\xdc\x0d\x71\x10\xd9\xfc\xac\x83\x6b\xdb\x64\x66\xf8\xe7\x78\x42\x40\x1c\x28\x2c\x59\xc9\x6d\x70\xb6\x9b\x78\x10\xc7\xa0\x3d\x57\x63\xcf\xd7\x02\x31\xa5\xde\x20\xd8\x9c\x8f\x76\x1a\x22\x9d\xdf\xe9\x8c\x35\x6a\x70\xaa\xdf\xaa\xf2\x4d\x34\x59\x6f\x04\x41\xac\x04\xe6\x4c\x7f\x94\x0d\xfc\xf7\xb9\xac\x06\xa9\xea\x7e\x5a\x41\x6c\x2c\xe0\xf8\x24\x2a\xa1\x0e\xe7\xae\xe4\x17\x92\x10\x70\xc9\x75\x34\x4a\xad\x21\xe9\x4b\x17\x7d\x8b\x88\xf8\x53\x9b\x4c\x65\x27\x61\x6b\x3e\x4f\x93\x15\x08\x92\x24\x42\x3d\x8f\x63\xdb\x69\xdd\xe3\x25\x4c\x23\xeb\xd1\x67\x07\x99\x76\xeb\xd7\x43\xf6\xb3\x1b\x85\x90\xa8\x00\xf3\x07\xdf\xb3\x02\xaa\xcb\xeb\x09\x6c\x0d\xa1\x9f\x6d\x40\x03\xae\x1c\x9e\x1a\x39\xa4\x2c\xca\x79\x62\x2d\x02\xd5\x04\xfd\xe5\xf3\x68\x27\xec\x0e\xda\x6f\xdc\x58\x9c\xbd\x43\x29\xb8\x83\x2c\x20\xd0\x29\xb6\x39\x82\xbf\xcb\xfd\xb9\x3f\x1e\x6a\xfc\x60\x5e\x62\x67\xdb\xab\x60\x74\x4d\xe2\x08\x0d\x31\xcc\x6d\xe6\x13\x48\x08\xb0\x04\x02\x2f\x1e\xe8\x00\x76\x2e\xf5\x34\x69\x27\x43\xb4\x35\x1e\x5f\x1f\xae\x0b\xb7\x81\x47\x16\x81\x9e\x67\x18\xc4\x3a\x0f\xbc\xa5\x29\x72\x67\x08\xe8\x71\x19\x27\x48\x49\x92\xa4\xdd\x2a\x82\x60\xef\xae\x87\xd3\x48\x23\x80\xca\x1e\x43\x79\xdd\xee\x90\x8e\x91\x16\xfa\xcb\x45\x56\x99\xfe\x7b\x6f\x00\x44\xa8\xa8\x65\xbf\xbe\xbc\x16\xb6\x64\x48\x54\x17\x5b\x47\x37\xe4\xa1\xa5\x20\xe2\x28\xb0\xec\x64\x8b\xc7\x55\x88\xf5\xc1\xbb\xd5\xcb\xbd\xbf\xb3\x48\xad\x18\x59\x56\x0c\xd3\xc8\x20\xc0\x20\x5d\xeb\x52\xb4\xf6\x2b\x54\xb7\xcb\x82\xdc\x09\x32\xb1\x18\x89\xd5\xcb\xfd\xce\x41\x88\xa7\xa5\xc8\xa0\x62\x86\xa9\x31\xcb\xbd\xfb\x78\xcd\xd1\x3b\x5e\xcc\x41\xcb\x10\x3b\xcc\x45\xde\x6c\x71\xc9\x4d\xc7\x60\xd4\x3f\x5a\x11\x7c\xad\x6d\x3b\x9a\x2a\x71\x7c\x3d\x41\x31\x52\xed\xa0\x00\x44\x53\xbb\x42\x7c\x80\x7e\x9e\x53\x3c\x1a\x3f\x0d\x44\x02\xab\xb4\x8e\x22\x2b\xd6\xcb\xd7\x1e\x99\xea\x8e\x9b\x44\xe3\xea\xa7\xb3\x1f\x7f\x8c\x07\x95\x09\x03\xcb\x50\xdf\xae\x3a\x0e\xe3\x3f\x6d\x11\x2b\x94\x91\x6f\xdd\xe9\xd2\x66\xee\x37\xff\x39\x8b\x6a\x32\xfa\xe6\xf6\x00\x13\x72\x86\xd5\x91\x0e\x4f\xd3\xe7\x7a\xb6\xe5\x97\x3e\xbd\x62\x42\x2d\xd1\x32\x58\x9c\x9b\x03\x14\x0d\xb2\xf1\x8d\xa7\x86\x21\x5c\xc4\xc6\x23\x61\xdb\xa1\x14\x4e\x1b\x88\x24\xb5\x1c\x7d\xa8\xda\x30\xd7\x6b\xae\x65\x14\x28\x61\xeb\x69\x5a\x13\xa3\x5d\xf1\xef\xaf\xfa\x77\x38\x81\xfc\x69\x61\x12\x3a\x18\x59\x05\x35\x5c\x61\x5f\x26\x37\x21\x34\x96\x63\x6d\x54\xb7\x62\xcc\x7e\x42\x13\x51\x0d\x8e\xa8\x76\xf9\xf7\x93\xcc\x44\xa9\x44\xdb\x70\x83\x01\x7e\x07\xd6\xbf\x6b\x1d\x9e\xb1\xaa\x81\x6b\x1e\x6b\x0b\x26\x04\x9f\xbc\xea\xc9\xa1\x87\x5b\xa1\xa1\x24\x44\xde\xed\x53\x55\x1e\xcb\x61\x48\xc0\x50\x1a\x60\x0c\x50\xb6\x2e\xe6\x76\x50\xb8\x32\x35\x0d\xa6\x75\xf9\x86\x6a\xc0\xf2\xac\xf7\xed\x72\xf9\xba\x7e\x41\x62\xb0\x5f\x61\x9a\x0c\x0b\x52\xac\xf2\x2d\x2b\xa1\x72\x18\xd9\xc4\x86\x25\x80\xb5\x19\x48\x85\xfe\xe4\xf9\x04\xfb\x9b\x31\x65\x75\x9a\x0f\xa2\x7e\x2d\xa0\xdd\x34\x7d\xb5\x8e\xbf\x02\xa7\x80\xa9\x0c\xbc\xc2\x6e\xc8\x26\x35\xbe\x12\xe7\x96\x88\xee\x54\x7e\x92\x65\x69\x07\x95\xbf\x46\x1a\x31\xee\x92\xf7\xdf\xcb\x6a\x4a\xe0\x60\xd2\xc4\xa2\xd3\xeb\xa6\x3c\xb5\x16\xee\x6b\xd1\x9d\x28\xb9\xaf\x2f\xb3\xcc\xdc\x85\x29\x37\xd9\xbe\x10\xcd\xb9\xaf\x2c\x37\x29\x04\x16\x6e\x5a\x01\xe8\x75\xfd\x58\x96\xf3\x64\x88\xd4\xa4\x46\x47\xd6\x26\xae\x9b\x6f\x65\x03\xbf\x8d\x8a\x3e\x5d\x23\xc9\x14\x1b\xd7\x68\x62\xce\xbf\x7e\x28\xab\xd7\xd6\x2e\xd9\x20\xa9\xcc\x8c\x1f\x65\x54\x12\x21\xff\x02\xfc\x6c\x7a\x2a\xc8\xbb\xb2\xd0\x03\xb0\xb0\xd1\xcc\x3a\xc8\xcf\x42\x95\x5b\xa8\x07\x8a\xd0\xed\x31\x19\xda\x14\x34\x5a\xe2\xdf\x21\xb3\x49\xca\xd1\xf7\x86\x30\x45\xc8\xb6\x29\x2b\x05\xef\x60\x39\x4c\x7a\x7c\x8b\x81\x08\x90\xf3\x3a\x6b\xe0\xf8\x22\x8e\x30\x2c\x23\xe8\xbb\x02\x62\x06\xb2\x2b\x2c\xbd\x2b\xcb\x1c\x44\xb1\x46\x45\x59\xd0\x03\x1f\xc3\x00\xb7\x95\x1d\x7b\x68\xbe\x94\x55\x0d\x1b\x97\x60\x18\x5c\x4a\x03\x73\xf4\xc7\x58\x70\xb9\x73\xe1\x92\x1d\x14\x7a\xa7\xaf\xd7\x26\x00\xab\x9e\x87\x55\x3f\x9f\x6f\xb6\xc6\x64\x48\x00\x60\x00\x38\x6e\x41\xcf\x59\x01\x58\x42\x85\xba\x24\xfe\x05\x4d\xa8\x31\x2f\xf0\x2c\xb2\xfc\x80\x44\x6d\xd3\x52\x41\x63\x38\x43\xe1\xed\x6f\x7f\xbe\x2f\x9e\x76\xef\xab\xef\x8b\xf7\xfb\x4d\x77\x50\xda\x22\x5d\x23\xb2\xfc\xec\xc9\xef\x58\x10\x10\xe3\xb5\xeb\xee\xc4\x34\xe4\xcf\x82\x20\xb5\xd1\xb5\xd5\x9f\xcb\xea\x72\x6a\xca\x6d\x25\x74\x56\xec\x1f\x5f\x9f\xee\xfd\x15\x42\x95\x60\xda\xc4\x9b\x6f\xcf\xa2\xda\x67\xc5\x5b\x65\xa9\x52\xf5\x17\x51\x1f\x86\x95\xf1\x7f\x13\xfe\x19\x8d\x5d\x16\x84\xc6\x56\x30\x23\x7b\x69\x01\x9f\xbe\xda\x77\x51\x68\x44\x8f\x95\xe7\xfd\xa1\x1d\xd3\xb5\x7f\x1a\x22\x39\xc2\xf5\x50\x1b\xa4\x3a\xb6\xf3\x1b\xbc\xf9\xcc\x82\x28\xb6\x46\x9c\x23\x53\x5f\xe6\x65\x7d\x83\x93\x9f\x05\x71\x12\x21\x94\x5e\xf4\xba\x00\x43\x86\x34\x16\xc4\x69\x8c\xe9\x90\x23\xe8\x4c\x14\xfe\xd7\x24\xb0\x98\xdd\xae\x3b\x4a\x99\xe5\x80\x02\xbd\x13\xc9\x57\x16\x24\x92\x22\x44\x12\xa1\x61\x77\xe5\x20\xe4\xf3\x3f\x3c\xfc\x5f\xd7\x88\x46\x29\xaa\xd3\x1e\x44\xa1\xcb\x1f\x37\x14\x44\x59\xc0\xa2\x18\x73\xcb\x22\xcf\x54\x39\xd2\x73\x63\x01\x62\x7b\xd1\xe3\x5d\x17\xad\x25\xf1\x2c\x3e\xc6\x5c\x75\xbe\x5d\x6a\xb0\xdd\x9f\xe5\xa1\x1c\x5f\x40\xd9\xa2\x83\x1a\x9a\x5d\x3b\xe2\x76\xe5\x5c\x55\x54\xbf\x2a\xb0\x80\x01\x41\xb2\x21\xdf\x0d\xed\x4e\x6e\x35\x80\xc6\xbd\xcc\x93\x00\xf9\x79\x9d\xcc\x89\x2b\xba\x9a\x3c\x17\xa7\xb1\x70\x41\x93\xd9\xc7\x9f\x0d\xcc\xb6\xa7\x59\x85\x22\xa1\xb5\x55\xe8\xeb\x7a\x77\xa8\x69\xdc\x6f\xdf\x2c\xe0\x32\x46\x1a\x2b\x63\xb3\xae\x5d\x11\xa7\xcc\x2d\xde\x95\xf8\x0e\xe1\x10\x11\x97\x3d\x15\xbf\x08\xc0\xb5\x0d\x63\x0f\x95\x78\x39\x1f\xaf\xfc\xd1\xb6\x81\x40\xac\xd8\xfb\xeb\xd3\x6a\xb7\x5c\xbd\xfa\x3b\xa4\x4c\xe2\x82\xd6\x8e\x7c\xa8\xde\x01\x8a\xa6\xea\x76\x97\xf6\xb0\xc1\x7e\x43\xa9\xcb\x19\x13\x92\x05\xa9\x54\x8c\x0f\xca\xc2\x67\x14\x64\x58\x90\xaa\x40\x47\x5d\xed\x50\x27\x63\x3b\x7d\x48\x01\x96\x96\xd1\x86\x81\x86\x96\xc4\x6a\x52\x06\xce\x02\x49\x42\x1b\x6e\xc6\xac\xff\x20\x0a\xc1\x02\x99\xc4\x61\x3c\xce\x41\x8a\x46\x74\x47\x79\x80\x44\x69\x6e\x71\x6e\x1d\xe7\x1a\xb6\xe5\x56\x54\xfb\x7e\xd2\x49\x2e\xd0\x58\x74\xc5\x01\x97\xe7\x52\x83\xd3\xbb\xf5\xbe\x22\x0b\xa4\x4c\xb1\x50\xd7\x81\xac\xee\x2b\xf1\x89\xa5\x82\x53\x0f\x68\x26\x90\xc2\x02\x95\x58\xc5\x6c\x5f\xe5\xf4\x26\xaa\xaa\x9c\x0e\x5b\x45\xa5\x86\x2e\x9b\xb1\x6e\xe0\xf8\x64\xa5\x1c\x86\x95\x68\xff\x9a\x9e\xa3\x30\xa8\xd9\x8e\xaa\xf6\x91\xde\x2a\x78\x28\xab\x8f\xe5\x21\xcb\xf5\xfd\xa2\xfb\xf0\x4a\x03\xf2\x01\x2c\xbb\xef\x26\x8e\xa7\x7c\xb4\x1d\xb2\x40\xd3\x18\xeb\x53\x9f\xca\xfd\xd3\x0c\x94\x7e\x72\x67\x4d\x2d\x4d\xe3\xae\xdd\xdd\xab\x23\x4a\xba\x9f\x81\x4f\xde\x49\x73\x60\x29\xaa\x15\xdd\xbf\xef\xb6\xbf\x3f\x0e\x68\x06\x59\x00\x51\x18\xb8\xb8\xab\x4b\x41\x0c\x6d\x2e\x16\x40\x0a\x98\x3a\x6c\xc4\x07\x20\xb6\xbe\x52\x87\xc9\x58\x03\x01\xd2\x96\x01\x16\x7a\x87\x1f\x7e\x06\xd8\xc6\x02\x90\x89\x8f\xcc\xef\x72\x21\xc1\xc5\x58\xc2\x31\x48\x80\x05\xc6\xc9\xfb\x99\xac\x82\x25\x7a\x64\x7e\x73\xb0\x7c\xff\xf3\x1f\xc1\xa4\x06\x2d\x00\x95\x5f\xd4\x47\x03\x55\xe6\xf5\xac\x58\x60\x20\x4c\x62\x2f\x49\x84\x86\x92\x3d\x10\x06\xa9\x44\xcf\xdc\xed\xf0\x36\x4e\xe3\x2d\x59\x32\x43\x6d\x37\x91\x52\x66\x61\x60\x48\x6a\x3c\xb9\x8b\x35\x5c\x1e\xca\x6a\xbd\x7c\x9d\x35\xf4\x59\x18\x26\xca\x32\xc2\x01\x68\xac\x23\x5c\x59\x29\x0f\xff\x44\x84\x13\x34\xb4\x5d\x4a\x67\x18\x66\x60\x21\x49\x19\x16\x1c\x5c\x93\x78\xfd\x93\xd4\x0b\x0b\x89\x50\xbe\x9e\x7a\x71\x57\x4c\x85\x00\x59\x48\x14\xc7\xb4\x72\x9d\x8b\xe3\x11\xaa\xe1\x73\x45\x0e\x4d\xb8\xb7\x75\x71\x42\x35\xf5\x13\x14\x7b\x0f\x55\x6e\x1b\x88\x60\xc2\x14\x19\x8e\x98\x22\x59\x18\x53\x82\x9b\xd0\xae\x80\x9f\xcd\x50\x9a\xa6\x7f\x82\x24\xe6\x28\xc1\x80\x1a\xdc\x0e\xd7\x35\x87\x24\x61\x21\x0d\x88\x61\x13\x0e\x86\xf1\xb5\x68\x6a\x2c\x2d\xb7\xc8\x8a\xfa\xd5\x8c\xf6\xa8\xf1\x5a\x1e\xb2\xd8\x26\xcb\x2c\x11\xcc\xf2\xfd\xf5\xfb\xfd\x66\xe1\xf5\x49\x59\xc8\x49\xe4\x0b\x71\x1f\x60\xbe\x9c\x80\x85\x5c\x01\x6a\x65\x9f\xd0\xb9\x4a\xfc\xb9\xa9\x49\x98\x9d\x1b\xa0\xe1\x67\x7c\xed\xfc\x5c\xb9\x77\x2c\x14\xc4\x16\x58\xb4\x9d\x9d\x35\x4e\xb8\x48\xb5\xae\x86\xeb\xf3\x71\xeb\xc8\xee\x33\x8d\xf8\xd9\x87\xb5\x58\x28\x94\xc1\x2f\x66\xf2\xb3\x31\x97\xa5\x68\xba\x64\x38\x0b\x85\x0e\x3c\xdb\xea\x23\x14\x50\x67\x37\x36\xb9\x50\x68\x1a\x25\xfd\x67\x87\xa2\x59\x56\xb7\xec\xaa\x50\x05\x31\x2e\xce\x0b\x9f\xeb\xff\xe5\xda\x15\x2a\x62\x0b\x02\xda\xd1\xb0\xab\x9b\xb2\x80\x5d\xe6\x17\xfa\x50\x45\xe0\x2b\x39\xbe\xd9\xf5\x77\xd1\x34\xa8\x52\x68\x29\x9c\x6f\x5c\x92\x09\xe4\xca\x38\x94\xcd\xe7\xb5\xc2\x08\x0b\x95\x04\xb4\xfc\x50\x47\xba\x37\xd3\x27\x2f\xad\x20\x49\xbc\x50\x33\x9a\x43\x56\xb5\x69\xd4\xe9\x9a\xc9\x98\x75\x44\xbc\xa0\x7b\xea\x33\xdf\x20\xd5\xb8\xb4\x80\x2a\xeb\x4b\xdd\xc0\xb1\xdd\x5b\xd5\x60\x2f\x0b\x21\xb6\x85\x41\xb8\x83\xad\xb6\x5f\x3c\x41\xae\x3f\x0c\x80\xe5\x0d\x06\x39\x5d\x6c\x87\xf6\x66\x58\x68\x40\xb2\x9e\xec\x56\x65\xe5\x44\x14\x83\x85\xc6\x04\x98\x37\x10\xee\xc6\x45\x59\x2c\x37\xbf\xa0\x1b\x63\x24\x20\x69\x22\xbc\x0e\xef\xfa\xe5\x71\xb7\x7c\x5a\xac\x9f\x2d\x3f\xdb\xee\xfb\x6a\xfd\x9b\x6f\x07\x2c\xee\xb1\x52\x1b\xab\xef\x3c\xff\x49\x48\x98\x28\xef\x2c\xbf\x4a\xc4\xc4\x0d\x15\x9b\x18\x09\xd3\x54\xb8\x85\xe5\xbf\x4a\x79\xe3\xc1\x08\xb5\x62\xa1\x59\x8d\x98\xf4\x06\x65\x9d\xe6\x38\x0a\x18\x21\x9c\x62\x9c\xf3\x3f\x67\xa8\x2e\x64\x3e\xd2\x30\x9a\x6d\x84\xe8\x00\xd9\x5c\x6c\x3c\x04\x5f\x69\x9e\x16\x80\x91\x28\x04\xda\xa9\x53\xd6\xbb\xba\x0b\x62\x31\x12\x45\xe0\x8b\xc1\xb6\xe5\xe4\x99\x22\x20\xc8\x80\xb5\xa8\x86\xd9\x28\x46\xe2\x50\x24\xc6\xe9\x9c\x55\xf7\x62\x22\x99\xc6\x48\xcc\xed\x70\x45\x2f\xc2\x97\x98\x0d\xf3\xd3\x8c\xc4\x52\x4b\xb7\xff\x58\x20\x67\x97\xbf\x18\xa1\x50\x5d\xeb\x24\xa0\xb8\x03\xff\x9f\x85\x1c\x3f\x54\x62\xc0\x2e\xcd\x48\x12\xa5\x98\x0f\xba\x7f\xb3\x8f\x79\x3b\x4c\xc3\x48\x42\x39\x8a\xfe\x36\x07\xf1\xf9\x98\x97\x52\xe4\x3e\x2c\xd4\x3d\x1b\x75\x31\xb9\xef\xeb\x97\x97\xd5\xbb\x15\x49\x7c\xff\x73\xb7\x7c\xbd\x5f\x75\x4d\x24\x78\x2b\xd5\x26\x74\x07\x43\xbc\xe3\xa8\xed\x20\x79\xb6\xe2\x7b\x2e\x73\xcd\x08\x27\x12\xf7\xae\x53\x99\x5f\x8e\xa2\x39\x74\xe5\x99\xfe\x78\xc2\x6c\x80\xb0\x5e\xab\xd2\xd7\x29\x75\x5f\x8f\xb3\xc4\x82\x07\xcb\x42\xf4\x71\x94\x49\xee\x76\x7c\xbf\x54\x26\xee\x7b\x3f\x83\xce\x5c\xe6\xc5\x77\x34\x57\x0c\x67\xd2\x53\x29\x8a\x77\x38\x89\xec\x5a\x43\x7d\xce\xb4\x27\xdc\xc4\xb8\x26\x6a\xa8\x9b\xaa\xbc\xbc\x97\x72\x6a\xa0\x12\x11\xf1\xc8\xaa\x58\x5b\x4a\x88\x2e\x99\x9a\x89\x6b\xfc\xcb\xe8\xe2\x92\x59\xe5\xbf\x3d\x34\xdb\x9f\xaf\x55\xb6\x7f\x56\x9f\xbd\x34\xf9\x70\x77\x25\x52\x29\xb4\x18\xef\xe1\xe7\x62\x0f\x7d\xdd\x22\x23\x2a\xe4\x88\x89\xf1\xe8\xf5\x4d\x03\x79\x2e\x66\xeb\xf6\x19\x51\x34\xe1\xce\x47\xfa\xb6\x7e\xbb\x2b\xcf\xc5\xb9\x7e\x9f\x46\x50\x18\x51\x92\x50\x0b\x3a\xb3\x88\xc9\xd5\x7f\x66\x84\x10\x19\x01\x6a\x02\xc7\x75\x95\x15\x7b\x6f\x13\xfe\x36\x29\x5f\x1e\x3f\x81\xd1\x0a\xe5\x9f\xdb\x95\xc3\x81\xed\xca\x6a\x5d\x3c\x5d\x7b\x4c\x51\x10\x44\x5e\x93\xde\xaa\x30\x58\x89\xb5\x19\xcf\xd2\x9f\x10\x5b\x09\x77\x44\x9a\xfc\x80\x7a\x2a\xbf\xcc\xa2\x90\x28\xed\x09\x1c\xce\x79\x93\x0d\x74\x45\x66\xae\x17\xf2\x08\x9c\xfa\xc1\xea\x78\x6a\x2e\x4f\xa5\xba\xa6\x86\x61\x51\xa8\x34\x06\xcc\x16\x4a\x4d\x6e\x47\x24\x11\x71\xcf\x3f\xb3\xac\x2e\x35\x66\x7d\x3f\xc5\x24\xd7\xd4\x36\x8d\x30\x52\xfa\x96\x15\xcf\x65\x6b\x4f\xfa\x45\x20\x8a\x92\xc4\xae\x28\xaa\xca\x4e\xcd\x00\x6f\xc4\xa2\x88\x69\x5c\x86\x9b\xba\x67\xb5\x60\x51\x64\x08\xc6\xe6\x2b\xcb\x32\xdd\x6e\x07\x03\x75\x03\x16\xc5\x51\x1c\xb8\x7e\xfd\xfa\xfe\x34\xda\x46\xa3\x58\x0b\x44\xdd\xbe\xc0\xe7\x9b\xa8\x6b\xbf\x00\x96\x7f\xcb\xb5\xef\xcf\x87\x28\x75\xd7\xc6\xf2\xb8\x6b\x71\x28\x16\x25\x51\x68\x3a\x4d\x1b\x44\x65\xdc\x9d\xab\x0e\x8a\xc5\x22\x1a\x13\xf4\xa1\x1a\x51\x7f\x5c\xe1\xbf\x59\xc4\x48\x88\xb8\x8f\x0a\xa5\xa3\x40\x2f\xbf\x2f\xad\x1f\x3b\xbf\x57\x45\x8c\x10\x4f\xca\xd5\x57\xed\x8f\xf9\x4e\x58\xc4\xc3\x00\x65\x27\xbe\x65\x55\x53\x16\xe5\x31\xf3\x0f\x93\x06\x06\x67\xcc\x0e\x0a\x0b\x62\xac\xe7\x60\x47\xac\x5d\xa8\x9d\xfe\x4e\x59\x77\xb2\x4b\x2c\x4a\x85\x2d\x5c\x3d\x8a\xea\x63\x51\x6f\x94\x38\x4e\xbe\xbb\x08\xad\x2b\xe4\x53\xfe\x96\x30\x61\x08\x0d\x61\x91\xe0\x96\x81\xf8\x8b\x70\xec\x99\x8b\x11\x66\x69\x66\x6a\x46\x42\x2b\xe6\xf2\x48\x6e\x5b\xde\x34\x70\x1a\x2a\x40\xb0\x48\x26\x12\x41\x5b\x47\xf1\xd3\x26\xcc\xea\xee\x08\x27\xc2\xb1\xbf\xbc\x61\x9a\xe9\xca\x9f\x1f\x77\xb1\x4c\x6d\xc9\xe3\x2e\xb7\xa8\xfd\xd6\x92\x7b\x29\x37\x53\x9c\x31\x8b\x54\x64\x70\x91\xbe\x7f\x7b\x1b\x6e\xbc\x91\x4a\x02\x24\x7d\x47\x62\xfd\x42\x5d\xba\xdf\x79\x8c\x51\x44\xf8\x09\xea\x06\x9c\x72\x7c\x03\x1d\x45\x88\xd8\xea\x54\x51\x0a\xbd\x14\x79\x2e\xc5\x35\x18\x6b\x18\x8e\x8a\xb4\x48\x30\xe1\x78\xff\xf8\xef\x1e\x4b\x87\x79\x8a\xf9\x41\xa5\x95\x4c\x3b\xb8\xec\x74\xa3\x8d\xb4\x91\x68\xe9\xed\xe0\x67\x03\x85\xf5\x2b\xfd\x31\x08\x62\xe1\x08\xe4\xc9\x12\xb2\x3c\x2b\xf6\xbf\x8d\x2e\x0d\xa1\x05\x02\x19\x64\xf5\x3a\xf7\x95\x74\x61\xd7\x82\x58\xe5\x56\x1b\x73\x79\x2a\xd5\x87\x2c\x7f\x4e\xf7\xc8\xf9\xa4\xe7\xe4\x5f\xbf\xf6\x8d\x46\x0f\x70\x19\x78\x55\xb8\x3e\x5e\x12\x01\x24\x38\x2c\xc0\x56\x6b\xed\x9a\x91\xf4\x4d\x7b\xdc\x60\x1d\x4b\xdd\x94\xa7\x21\xc3\x12\x8b\xc0\x84\x18\xfb\xae\xb1\xf2\xa7\xff\xd5\xea\x24\x5b\x7b\x16\xd5\x90\x37\xab\xe5\xab\x4f\x39\xb3\xc8\xc4\x1c\x37\xc8\x95\x2a\x4f\xa2\x1b\x14\x26\x01\x5c\xc4\xf7\x43\x29\xb1\xf1\x0b\x18\x46\xa9\x93\xbf\x54\x50\xd7\xed\x5e\x87\xf4\x14\x37\x62\x15\x91\x31\x09\x4a\x32\x3d\x95\xfb\xe7\xa1\x49\x73\x43\x52\x70\x5c\x27\x48\xf8\xe8\x3f\xb5\x19\x7e\x16\x07\xc6\xa2\xc0\x8e\xcd\x24\x03\xcc\xe2\x30\x50\x41\xe4\x01\x62\xed\x07\xd4\xfd\x82\x1f\x87\x24\xc0\x78\xe4\x11\xaa\xfd\x64\x67\x8e\xc3\x88\xf8\xfa\xe5\x4e\x91\x76\xd6\x73\x8f\xc3\x34\xc0\x05\xa9\x3e\x94\x9f\x56\x87\xa2\xcc\xaf\x38\xaa\x7d\x5b\xa1\x11\x1b\xd4\xba\xca\xbb\xbd\x8f\x43\x70\x7f\x54\xc6\x98\x0b\x1d\x2e\x4d\x0f\x55\x79\x6c\x3d\xe8\xe9\x4d\x8d\x4a\x6c\x3f\x36\x4d\x39\x74\x2b\x62\x02\x1a\xb3\x05\xeb\xe7\xc5\xfb\xef\xfe\xc7\x28\x05\x6b\x5d\x95\x7f\x96\xe7\x6a\x3b\x97\xbd\x70\x2d\x63\xca\xf0\xbd\x35\x16\xd0\xe0\x2e\xfc\x6a\xe6\x3d\x9c\x38\x89\x34\x46\x22\x56\x3f\xfd\x7d\x12\x1d\xc9\xb0\xc7\x87\xa1\xf7\x38\x7f\x1f\x1a\x52\x4c\x68\xfa\xa1\x8d\xd9\x21\x8c\xe1\x6d\xcb\x3b\xd1\x34\x39\x58\x7a\x19\x3b\x1f\x27\x37\xa6\x91\x35\x41\xf7\xd0\xac\xf6\xfb\x7a\x5b\x7e\x11\x8d\x3a\xdc\x57\x62\xdf\x99\xf4\x31\x65\x61\xda\x93\x43\x7d\x83\xba\x77\x40\x63\xca\x13\xf4\xb1\x97\x6f\xaf\x3b\x94\x1f\xe9\x0e\xa4\x84\x39\xaf\xbf\x93\x00\x1e\xae\x9f\x31\x23\x92\xba\xfa\x0d\x8c\x99\x2d\x3d\x75\x07\x8b\x99\x4a\x31\x0c\xa2\x7a\x47\x6d\xf2\xd1\x38\x91\x9e\x4e\xe7\xde\x23\xf5\x1f\xa0\x1b\xab\x5c\x06\x18\x30\x41\xa6\xf5\x97\xed\xfd\x64\xec\xa4\x9a\xfa\x11\xb9\xf6\x6c\x50\xd3\xaa\x26\x16\xa7\x40\x53\xb7\x09\xfb\x32\xec\x2b\x78\xc6\xc8\xe2\x8d\x05\x8d\xb0\xaa\x78\x79\xbf\x19\xbd\xaa\x48\x99\x4f\xa3\xb9\xc8\xf6\x56\x8c\x37\xb6\x58\xb2\x50\x77\x30\x2a\xcc\x70\x76\xd4\xb5\x70\x93\x27\xcf\x9f\x2b\x8c\x36\x1d\xe4\xf7\xb9\xeb\x05\x2d\x05\xd6\x47\xb4\x53\xa4\x97\x50\x66\x31\x70\x8e\x8b\xd1\x41\xd4\x5f\xf1\x14\xd4\xf6\x10\x75\xdd\x7f\x56\x70\xa6\x1d\x9a\x06\x73\xd6\xf1\x3c\xf9\x33\x8b\x0d\xe3\x98\xf8\xdc\x1c\xb2\x66\x48\x8a\xc3\x92\x80\xc5\x58\xcc\x80\xd4\xc6\x0f\x16\x43\x78\x45\x52\xcf\x92\x40\x12\x1c\xf7\xbb\x1d\x72\xad\x09\x9d\x67\x13\x91\x1e\x96\x84\xb1\xd5\xbd\xad\x26\x4a\xdc\x93\x56\x8c\xd1\x64\x40\xf5\x6d\x0d\xf2\x6b\xc6\x2f\x96\x90\x90\x13\x0c\xdd\x69\xfd\xee\x75\x17\x3d\x9e\xe6\x3a\x7b\x95\x90\x58\x60\x51\xe0\x27\x34\x87\x2b\xc8\xf2\xe4\xca\x2c\x16\x83\xec\xb5\xdb\x61\x46\x5d\x96\x44\xc4\x60\x05\x21\x3e\xa4\x4d\x3a\x3a\x79\x4c\xbf\x39\x27\x11\x28\xb4\x35\xb2\x62\x67\xeb\x56\x6d\x9c\x68\x77\xea\x89\x94\x59\x12\x93\x30\x8d\x07\x0a\x60\xdb\x8e\xc1\x12\x69\x2f\x07\x2f\x10\x47\x41\xe2\x70\x82\x5f\xdf\xd7\xdd\xf9\xa0\x90\x66\xec\x7b\x56\xf4\x09\x78\x96\x24\x22\x30\x16\xa7\x54\x97\x39\x96\x19\xfd\x73\x52\xe5\x19\x33\x2f\xa1\xca\xea\xef\xfa\xe5\xea\x17\xd2\xe7\x2c\x61\x46\x25\x7a\x84\xfe\x7b\x3d\xf5\x43\x8a\x4b\x8b\x6a\x3d\x8a\x9f\x77\x55\xa6\xf7\xf0\x3d\xd3\x5d\x34\x39\xe1\x2a\x46\x65\xc1\xff\x9c\x33\xf5\x31\x2d\x0d\x61\x09\xd7\x71\xc0\x5c\xe8\x70\x59\x1e\x8f\x65\xb1\xdd\x7e\x77\xfb\x92\xcf\xe4\x25\x69\x98\x58\xf7\xac\x81\xd3\xf6\xb3\x1c\x07\xda\x93\x94\x53\x8c\xbe\x6d\xff\x3d\xec\xb0\x34\x0d\x08\x1d\xa2\x8c\xdb\x8d\x02\x97\x60\x32\x79\x04\x41\x12\x88\x06\x23\xd4\x5f\x41\x70\x93\x58\x34\xe1\xdd\x65\x40\xa1\xe3\x8f\xea\x84\x30\x17\x93\xfb\x9c\xdf\x13\x12\x61\x52\x5c\x12\x9e\x91\x25\xec\x3d\xdb\x3f\x88\xea\xd8\x59\x3d\x89\x4c\x95\xf7\x2f\x30\xab\x37\xc3\x90\xc8\x12\x15\x05\x88\x26\xd5\x70\xca\x4b\x6f\xc9\x24\x2a\xb6\xac\x13\x68\x45\xb6\xd3\xb8\xdd\x00\x67\xd7\xa5\x44\xbb\x51\xfb\x01\x4a\x89\x0f\x7f\x01\x88\x38\x6e\x75\x2f\xaf\xbb\xe7\xd7\x97\xcd\x76\xf5\xde\x1d\x91\x16\xb5\x53\x23\x34\x60\x32\x4b\x00\x22\xa4\xa0\xfd\x91\xc1\x67\x42\xfd\x29\x26\x01\xd5\x6b\x99\xbd\x67\xcd\x79\x22\x47\xc9\x12\xc3\x2c\x5b\xb0\xd0\x7a\x53\x1e\xe1\xeb\x6a\x5b\xf7\xc1\xb5\xc9\x13\x1b\x15\x62\xd7\x96\x1e\x40\xea\xee\x43\x83\x54\x60\xea\x57\x79\x01\xad\xa5\x28\xee\xe0\xdd\xaa\x6a\x4d\x1e\x95\x06\x5a\xe0\x86\x3c\x64\x75\x99\x7c\x44\x1a\x06\x52\x38\x44\xcd\x7d\x99\xe7\xa2\x9a\x1e\x67\x96\xda\xe9\xee\x7c\xd9\x96\x97\xe7\xb2\x00\xff\x05\x68\xc8\x63\xd9\xa1\x1e\xca\x02\x90\xdc\x6d\xf5\x9f\x61\xa1\x28\xca\x64\xe1\x64\x36\x65\x35\xf4\xdc\xe7\xd9\x18\xfe\x75\xad\xde\x86\xb2\x55\x48\xb4\xe6\xa7\xde\xaa\x39\xb4\x16\xd4\x88\x61\x84\x51\xc2\x6c\xe2\xe0\xb1\x3c\x37\x3d\x0a\xe6\x76\x5e\x82\x12\x6d\x70\xe7\xfe\xf6\xed\xfe\x6e\xfc\xa5\xda\x43\xb8\x43\x9c\xca\x06\x8a\x26\x13\xf9\xa0\xda\x89\x51\x62\x82\x98\x8e\xd5\x7c\xed\xa4\x9f\xab\x67\x60\x34\x0e\x4c\xa7\xdb\xd8\x7e\x85\xf9\xa2\x62\xdf\x58\x5b\xa9\x65\xac\x43\xac\xed\x7a\xe9\x0f\x19\xe6\x79\x5f\xef\x84\xfa\xb8\x7b\xb9\xf3\x47\x92\x88\x60\x96\xf7\xe5\x7c\x14\xdd\x6f\x2a\xf1\x85\xc7\xce\xd6\x1d\x93\x0e\xbb\x66\x94\x51\xdc\xed\x0b\xf8\x7c\x5f\xce\xcf\x1e\x4a\x53\xe9\xd4\x64\xdb\xe5\xe9\xd4\xc0\x2e\x8a\x46\x81\x0f\xca\x40\x29\x1b\x46\xdb\x68\xf5\x50\x56\x16\xe9\xfe\x37\xe9\x3c\x77\x2e\xd7\x76\xe2\xb8\x82\xa3\x1e\x1d\x8b\x94\x45\x91\x43\x98\xdd\xcb\xc9\x83\xa7\xa9\x08\x68\x3f\xb4\x91\xa3\x02\xf4\xe6\x53\x9c\xe6\x53\x6c\x34\xd5\x11\xb7\xac\x11\x3f\xca\x0f\x58\x14\xda\xc9\xb0\xdd\xaa\xf1\x1e\xaf\x63\x34\x05\x11\x38\x05\xf4\xd6\x19\x98\x3c\x8d\x08\x9c\x33\xe6\x92\xf1\x43\x7b\x83\x0a\x49\x23\x0b\xe6\x46\xda\x8f\x51\x34\xda\x35\x91\x11\xc3\x4c\x21\xe8\x6c\xa8\xe2\x3c\x1b\x2d\xa1\x92\x5a\x8a\x54\x24\x6f\xad\x95\x98\x1f\x76\xd2\x11\x90\x9f\x32\x50\xe0\x77\xe0\x6b\x62\x92\xc9\xb5\x55\x64\x03\xcf\x35\xc2\xbf\xda\x8f\x51\xcf\xe9\xff\x30\xaa\x43\x11\x38\x64\x89\x43\x3e\x4c\x8e\x53\x97\xfa\x2d\xeb\xce\x7a\xa0\x9a\xa7\xd2\x12\x9a\xe6\x56\x79\x61\xdc\x0b\x5a\xda\xca\xa8\x6f\x59\x69\xc3\x7c\x88\xaf\x1c\xf5\xa5\x36\x01\x61\x03\x0d\xd9\xfb\xac\x2e\x3f\x8b\x97\xb2\x19\xcd\x50\x60\x46\x85\x7e\x16\xbd\x83\x96\xe7\x3c\x47\x49\xb2\xc9\x43\x9a\x48\x22\xfc\x5a\x9e\xab\xe2\xee\xe2\xd4\xc6\x7c\x29\xcb\x90\xf8\x8e\x51\x93\x52\x8c\x14\xbf\x01\xd2\xa9\xfa\x3b\x19\xcd\x7c\xd4\x74\x55\xab\xaa\xfc\xbc\x65\x86\xf5\xeb\x5c\x67\xfd\xb0\x20\xd2\xc4\x8d\xef\xbb\xf3\xc5\x42\x85\xf0\x9e\x81\x6f\x20\x35\xb2\x62\xb6\x17\x1e\xe0\xc6\x31\x61\x81\x4b\xe2\x63\x05\xd0\x51\x43\xb7\x3f\x4b\xee\x90\xb4\x0f\x0f\x1d\xf3\xf4\x3f\x9a\x87\x18\x8a\x0f\x1c\xf8\xca\x29\xdf\xde\x92\x82\x63\x8c\x48\x11\x30\xcf\x42\x9c\x8b\xcb\x3c\xb9\x1e\x63\x11\xb7\xba\x13\xad\xb1\x79\x43\xfb\x68\x72\x46\xac\x22\xb4\x1d\xb3\xfa\x05\x54\x55\x1e\x51\x23\xe1\xb7\x49\x1b\x4d\x31\x63\x87\x44\x6d\x18\xc6\xb1\x7d\xe7\x0f\x43\x8a\x9e\xa4\x8d\xf0\x7c\x2d\x26\xf5\xe3\xb8\x85\xab\xd4\xe7\x81\x71\x41\x23\xa9\x3f\x99\xc6\x96\xf4\xe0\x64\x63\xbf\xc3\xc1\xc7\x28\x4d\xe4\xd0\x60\x44\xb6\x84\xa6\xf4\x98\xe8\xdb\x3d\x3d\xdf\x89\x2c\xd2\x98\x64\x13\xae\x3c\x66\xcc\x74\xec\x6f\xca\x18\x47\x4c\x06\x66\x79\x6f\x75\x9e\x37\x95\x18\xd3\x01\xb7\x68\x7b\x8c\x25\x76\x97\x54\x5d\x9d\x0d\x63\x3c\x09\xd0\x6b\x38\x89\xcb\xc2\x34\xb7\x3c\x06\x96\x06\x01\x82\x86\x1d\xdd\x9f\xa8\x32\x4b\x53\xdc\x6e\x22\xc3\xd5\x9f\xa5\x49\x22\xfb\x86\x5e\x84\xe8\xf1\x3c\xe9\xf5\x54\x06\x18\xc4\xd8\xc9\xf3\x65\x6c\x89\xfc\x6b\x94\xb7\x1e\xaf\x48\x4c\x24\x5a\x61\xea\xf9\xe7\x29\x2f\x35\xbc\x1d\x4a\x28\xb2\x9f\x93\x6b\x0b\x69\xd9\x55\x8e\x1f\xbb\x4e\x5e\x64\x0a\x78\x9b\x9c\xa1\xa2\xb8\xab\x20\xf9\x9e\x75\x39\x48\x26\x1c\xea\xda\x81\xb2\xb6\x15\x4c\xc5\x68\x26\x17\x32\x06\xed\x23\xfb\xf6\x5f\xb2\x1a\xcb\x79\xe6\x6f\x2a\xe3\x04\xf3\xec\x43\x65\xbf\xf9\xb7\x56\xa1\x44\x5c\x22\x94\xf5\xd3\x7a\xbb\xba\x31\xbd\x14\x4d\xb8\x19\x98\xed\xf7\x65\x31\xac\x36\x62\x4c\x1b\x13\x8b\xc1\x88\x5d\x6e\x5f\xc7\x4b\x20\x83\x98\xa5\x5e\xee\xbd\x3c\x17\x1a\x63\x36\x2e\x82\x3e\xbe\x19\x50\x19\x3a\x8b\x62\x55\xa0\xcc\x9d\xb6\x22\x4a\xfe\x38\x27\x58\xf9\x74\x57\x96\x1f\xb8\x70\xaf\x9a\xc3\xb7\xf0\x14\x76\xc7\xd3\x18\xad\x78\xf8\xa9\xa0\xf6\xe4\xdf\xf3\xfd\x04\xca\xc2\x01\x9e\xca\xfd\x5b\xbb\x65\xea\xee\x1a\x0a\xec\x0c\xf4\x3a\x36\x96\xb9\xa7\x9f\x2d\x26\x8d\xc9\x4c\x96\x75\xba\xc7\x8f\x6f\x67\xc0\x18\x8f\x0b\xe9\x36\xdf\xac\x2c\xee\xe5\xa2\xe9\x49\x5b\xba\xf6\x3c\x10\x16\x44\xa6\xa1\xce\x8e\xb9\xef\x00\x1e\x06\x76\x05\xdd\xfb\x92\x5b\xbb\x84\x0e\x97\x10\x1e\x72\xcb\x6c\xbf\xca\x41\x35\x03\x54\x17\x0f\x41\x60\xdc\x52\x95\x45\xdd\x2e\x26\x6f\x50\xd5\x30\x35\xd7\x38\xa1\x32\xe8\x39\xd4\xdf\x6d\x12\xc7\x76\xc0\xb8\x61\x14\x32\x2f\x75\xfb\x3d\x2b\x9e\xca\xba\x1e\xd7\xc2\xfe\x6b\xd2\x9c\x2b\xdc\xdd\x7a\xc9\x10\xbd\x2d\xed\x96\x3a\x69\xa8\x02\x6a\x61\x2e\x9f\x8b\xaa\x99\x4b\x6c\xf2\x84\x27\xb8\x60\x89\xbc\x59\x8a\x53\xbb\x68\x64\x7f\x0d\x5d\x18\x9e\xa4\x49\x6c\xa5\x6c\x4a\x7d\x56\x2e\x69\x33\xb9\x0f\x8d\x52\xac\x0f\xc3\x1d\x1c\xfd\x8a\x87\x6c\x7f\x68\x6e\x61\x19\x38\x8d\x24\x02\xb0\x97\x55\x59\xd7\xe8\x49\x1e\x44\xd3\xa5\x21\xce\x73\x38\x29\x4e\x25\xc1\xb1\xb2\x7a\x7a\xff\xfa\xe2\x1f\x8e\x05\xd2\xaa\x2a\x82\x68\x5e\xab\xbd\x8d\x82\x95\x75\x33\x24\x8a\xf1\x4d\xb5\x65\x1a\x46\xf7\x27\x15\x5d\x44\x7f\x73\x28\xcf\xb9\xbe\x83\x07\x91\x77\x31\x11\xce\x69\xe0\x0b\xa0\xed\xe2\x37\x65\x42\x9a\x7f\x2f\xae\x43\x74\xe1\xdf\x57\x0f\xab\xf7\xf7\xc5\x93\xa3\xc5\x7e\x5a\x7d\x5b\x3d\x45\xfe\xda\x69\x02\x88\xb0\xca\xb3\xba\x01\xfd\x5c\x16\x0f\x65\xb5\xcc\x85\x8b\xef\xfb\x90\x3a\x4f\x8d\x15\x18\x93\x42\x7d\xf4\x04\x9f\xdd\x45\x8c\x4a\xfb\x5d\xb3\x35\x71\x6e\xa4\xad\xfe\xd5\x1b\x47\x2e\x88\x3b\xfe\xc7\x67\x4a\xeb\x19\x17\x09\x55\x36\x92\xb0\xdf\xe7\x70\xd7\xf1\x50\xb7\x47\x6c\x85\x2c\x66\x24\x06\x2b\x8f\xcf\xd8\x70\x99\x08\x70\x85\xe5\x16\xd9\x3e\x82\x74\x72\x45\x14\x12\x31\x97\x45\x7e\x79\x2a\xd5\x87\xed\x85\xa5\x28\xee\x4b\xdf\x44\x07\x01\x72\xf8\x9f\xce\xf5\xc1\x32\x1a\x80\xcd\x71\x1f\xe1\x7a\x4a\x4c\xbe\x80\x8e\x53\x64\xf5\xfa\x9c\x84\xeb\x39\x44\x1c\x6d\xfe\x93\xa8\x6a\x58\x17\xcd\x6e\x7c\x3c\x0d\x44\x82\xf8\x44\xec\xea\x9d\x87\xd0\xa5\x61\x64\xa4\x5b\x46\x6d\xe1\xe3\x5a\x8f\xb6\xd3\x34\xd4\x0a\x11\x3c\x8b\x73\x73\x58\x75\x59\xa0\x94\x84\xb6\xde\x5f\xf5\x99\x7f\xec\x86\xee\x0b\xa6\x84\x58\xce\x28\xb7\xfe\x60\x78\x4c\x9f\x55\xf3\xb7\x5c\x16\xbf\xb0\x51\x53\x42\x20\x61\xbe\x56\xca\xe2\x57\xe7\x92\xfe\xe3\xf5\x24\x8d\x38\x45\xa9\xc7\xf7\x72\x54\xb2\xce\xd2\x38\x89\x91\x50\x5c\x96\xa2\xd2\x63\x3c\x5b\x9a\x90\x10\xe7\xb0\xce\x7c\xd8\x71\x59\xe6\xb9\x68\xa0\x1a\x14\x30\xcf\x6e\x18\x69\xc2\x49\x47\x40\x52\x1e\x8f\x99\xfd\xb0\x23\x07\x30\xa5\x46\xa6\x8e\x58\x7f\x93\x15\xe3\xa2\x5a\x96\x72\x48\xd0\xe5\x47\x1b\xf5\xeb\x1d\x34\x4b\xf4\xc0\xfd\xb3\xa5\x8c\x68\xd1\x13\xa9\xba\xa2\x9e\xf1\x43\xa4\x29\x53\x16\xf1\x70\x3c\x4d\xee\x2d\x22\x6a\x55\x18\xc5\x07\x4e\xad\x5f\x86\xd1\x53\x91\xd8\xb0\xcd\x7e\x20\xdb\x50\x56\x3d\x7d\xf4\xf8\xc9\x85\x8e\x88\xd7\xf3\x5d\xbd\xae\xbb\x01\x23\x09\x84\x61\x17\xeb\x7f\x82\x1f\x90\xff\x0e\x97\x97\x6e\xcb\x49\x25\xd7\xe8\x79\xe7\xa5\x18\x07\xc0\xff\x11\x93\x14\x4b\x25\x58\x01\x6a\x5b\x33\xf0\x6a\xd0\x5b\x6c\xd7\xdc\x8d\x38\xb6\xa3\x7a\x10\xd7\x48\x25\x80\x36\x03\x75\x04\x57\xa2\x32\xbe\xa0\x8a\x05\xa1\x7d\xa6\x69\x73\x2a\x8b\xba\x44\x06\xe2\xe9\x3b\xab\x54\x86\xc8\x3f\x00\xc7\xac\xcb\x89\xcc\xe5\x27\xc6\x9f\x41\x41\x88\x73\xe8\xfb\xfa\xc5\x2b\x0b\xb4\xff\x77\xf7\xeb\xcd\x76\xf1\xe2\x65\x5b\x59\xaa\x09\x10\xe7\x05\x3f\x89\x4f\xa7\x81\xfc\x56\x95\x26\x9b\x2e\xd7\xfe\x04\x48\x30\x3a\xec\xca\xee\xeb\xbb\x0b\xa6\x4c\x2d\xf8\xa3\x6b\xa3\x50\x0e\x5c\xfe\xfb\xfd\xa7\xab\x56\x1c\x01\xe4\x52\x08\x99\x15\x24\xaa\x37\xc3\x4c\x6f\x0a\x89\xc0\x92\xed\xfd\x8f\xd7\x53\x67\x50\x90\xc0\x1d\x16\x01\x70\xe6\xac\x11\xb7\xb5\x6c\xba\x52\x06\x11\x82\xc2\xbd\xf6\x50\x6a\x4b\x14\x30\xc8\x95\x0a\xc2\x2d\xab\x93\xaf\x05\x7f\xa8\xca\x63\xa7\x21\x8a\x8b\x37\xef\x5a\xc6\x38\x35\x11\x40\xba\x81\xe6\x7c\xba\x13\xc5\x47\x55\xe6\x39\x22\xf4\x8c\x98\x90\xda\xb4\x67\x18\xcc\x7b\xde\x83\xc8\xed\xb2\xf1\x3e\xe5\x1c\x67\x22\x12\x81\x20\x5d\x79\x82\xad\x85\xc5\x3a\x4c\x77\x3c\x8e\x42\x74\x90\x4f\x67\x99\x67\x6a\x03\x79\xde\x4e\xbe\x71\xec\x5b\x24\xb1\x8c\xba\x90\xd9\x43\x59\xbd\xc0\xa7\x83\x71\xcd\x5b\x97\x22\x89\xad\x11\x29\x73\x61\x77\x8b\x19\xf5\x61\xd7\x94\x0a\x65\x64\x5f\x4d\x7f\x2c\x6f\x40\x30\xc7\xef\x4e\x95\x44\x81\x02\xfc\x1a\x36\x2c\xe0\x1f\x96\x85\x16\x55\xbc\x7a\x5f\x32\x12\x0e\x97\x46\xc1\xa2\x24\x76\xd5\x43\xab\x9f\x27\xa8\x32\x28\xc6\xd5\x85\x4c\xb0\x58\x10\x5b\xc3\x78\x6a\x6f\x97\x15\xfb\x6d\x25\xb2\x69\x19\x8c\x60\xda\xb2\x8e\x5a\xd4\xf0\x54\x89\xef\x5f\xd3\x97\x6c\x2d\x7b\xf0\xfb\x86\xb1\xf1\xff\xf1\x05\xb9\x54\xdc\x32\x41\x3a\xd1\x44\x47\x39\xfb\x7e\xce\x07\x41\x77\xd7\x38\x0d\x22\x14\xeb\xb7\x0e\xd1\x93\xab\xe6\xd4\xaf\x05\x2a\x1d\x62\xb8\x62\x36\xc4\x26\x52\x37\x3b\x2b\xa4\x65\x19\x83\x36\xcf\x7d\xad\x3d\x13\x42\x18\xdc\x59\x33\x3f\xf6\x1e\x90\x2d\xfc\x1f\x89\x38\x32\x21\xb4\xc5\x45\x9c\x30\x79\x04\x4f\x42\x96\xd5\x97\xf2\x5c\x5d\x6b\x42\xb4\x4e\xa2\x16\x89\x2f\xdf\xcd\xfe\x82\x1d\x02\x71\xe7\x07\xc1\xff\x84\x93\x5d\x50\x28\x29\xd1\x95\x3c\xda\x08\x9a\xcf\xe5\x08\x4d\x43\xef\x73\xed\x14\x6e\x57\xbb\xc2\xdb\x2a\x02\xa8\x8a\x59\x9f\xa8\x43\x1a\xac\x75\x51\x8b\x46\xe4\xb8\xb4\x3c\x95\x62\xe2\x39\x7b\xec\x44\xb7\xee\xc5\xf8\x2f\x76\x51\x24\x61\x34\x43\xe5\xd7\xfa\x90\x0d\x34\xf2\x99\x0c\x88\x88\x5c\xd2\xe7\x51\x1c\xe1\x8a\x69\x82\xc9\x80\x6b\x63\x4b\x3d\x1d\x1e\xbc\x8e\xbb\x93\x15\xf3\x1a\x30\x48\x90\x23\x2e\xf7\x1d\xc8\x44\x86\xa1\x06\x97\xd5\xb1\xd5\xd9\x5f\x44\xed\x08\xa9\x7e\x51\x8c\x27\x43\xe6\x2c\xaa\xd6\x6a\xa8\x84\xbe\x81\x8e\x95\x61\xaa\xb4\xf7\xd7\x44\x9e\xdf\x89\x1a\x1e\x45\x6d\xab\x71\x47\x0b\xbe\x0c\x25\xc1\x32\x9a\xe7\xc5\x1f\xbb\xe5\xe2\xe5\xdb\x62\x63\x81\xbb\xdd\x83\x4a\x89\x0c\xc4\x16\x28\xed\x34\x74\xa6\xc0\x47\x19\x6a\x61\x51\x00\x3e\x0c\xe7\x0a\x32\xdd\x61\xa2\x13\xb4\x9c\x77\x35\x34\xde\x26\x97\x11\x07\xc4\x35\x5a\xed\xb6\xa2\xd4\x70\x0f\x7e\xf3\xbb\x95\x64\x94\x71\x1c\x20\x57\xdd\xf7\xc5\xd3\xd3\x6a\xbb\x43\x0e\x74\x64\x85\xf4\x57\x8d\x45\xea\x05\x48\x9f\xc5\x47\x2f\x30\x35\x7e\xde\x84\x05\x38\xc2\x6b\xbb\x81\x0e\x73\x6a\xae\x05\xe5\xda\x4a\x44\xc2\x8f\xfb\xec\xc7\x70\x50\xb0\xd0\x7e\xf2\x1a\xfd\xe6\xd1\xd3\x31\x27\x32\x53\x43\xf3\xfb\x9f\xcb\xb1\xf1\x26\x19\x05\x34\x7e\x70\x15\x9e\x4a\x55\x8c\x6f\xde\x2e\xec\xad\x2d\xf0\x96\x8b\xa6\x1c\x71\x11\x32\xc9\x64\x62\xa2\xae\xb8\x0e\x83\x7b\x13\xa5\x25\x26\x53\xa2\x30\xf8\x68\x59\x0b\x26\x7b\x8a\x14\x3a\xc0\x98\xe9\x23\x34\xcf\x97\xd5\xde\xe7\xa1\xa4\x0c\x52\x1c\x0a\x42\x6b\xd4\x3f\xbe\xe5\x4a\x4a\x99\x58\x31\xdc\xe5\x21\xcb\xf3\x41\x3a\x55\x4a\x95\x26\x6c\x20\xf7\x8b\x89\x87\x1b\x54\xdf\x4c\x4a\x43\x78\xcf\x78\x3f\xa5\x0e\xfd\x75\x68\x50\x2a\x62\x69\x63\x77\x50\x89\x1a\x36\x59\xb1\xcf\x61\xa8\x94\xe3\x9b\x25\x0c\xc3\xab\x8b\x3d\x14\x2a\xeb\x20\x88\x52\x87\x12\xe9\x04\xd7\xdb\xed\x24\xc6\x36\xe3\xb0\x4b\x1d\x25\xc8\x22\x8f\xef\xf3\x56\xc1\x31\x3b\x1f\x6f\x0c\x50\xcd\x58\xa2\xba\x02\x4b\x9f\xed\x58\x1c\x27\x11\x56\xa9\x85\xb5\xcf\x5e\x9b\xb2\x18\xea\xd8\x32\xa9\xa5\x52\x6a\x60\x08\x0e\xb3\x1d\xe3\x0e\xd4\x10\x7a\x39\x66\x9b\x61\xb8\x2b\x31\xc7\x7b\x6d\x47\x48\x6d\x94\x0d\x9e\xa0\xae\xd6\x11\x1a\x91\xef\x70\x20\x4e\x2e\x69\xb8\x44\x70\xec\x12\x72\x90\x9b\x32\x9f\xa7\xe6\x27\xd7\xa2\xcb\xd3\xcb\x80\x05\x0c\x5d\x2c\x49\xa8\xff\x39\xa5\x3a\xee\xfb\xb1\xb5\x16\x57\xff\x39\x67\x3f\x44\xde\x07\x5f\xa5\x49\x19\xf3\x30\x3f\xc7\xb4\xe2\x8f\x38\x0a\xd2\xa1\xaa\xd6\xa6\x11\x13\xd5\x7f\xa6\x02\xa6\xb0\x6f\xeb\xa6\xac\xc4\x7e\xa0\x39\x35\x9e\x91\x2a\xe0\x69\xe8\x8a\x29\xbe\x59\x8c\xb9\x55\x1a\xfe\xa7\x4e\xe0\x2f\x7d\x14\x15\x46\x96\x30\x5d\xe5\x65\x6b\x87\xec\xdc\x76\x55\x8f\x47\xa8\x22\x86\xa1\x52\xd9\x13\x46\x6f\x46\xb1\x30\x45\x8c\x4c\x7b\x43\xe1\xb9\x3d\xf4\x72\x4d\x56\xe3\x1a\x47\x31\x0c\x14\xac\xbb\x0e\x5a\x2b\xbf\x71\xaa\x98\x58\x0e\xe9\x2d\x1c\x31\x69\x7e\xae\xe0\x19\x44\x7d\xae\x90\x69\xb3\x4b\xf1\xfe\x0b\xe7\x41\x1f\x99\x50\xb1\xd1\xb8\x9c\x88\x1f\x22\xcb\x85\xcc\x61\x25\xaa\xfc\x62\xf7\x2d\xfc\xbe\x5d\x8f\x52\x42\x3d\x4a\x02\x31\xe1\x0b\x7f\xc6\x5c\x62\x5d\x51\x2e\x50\x18\x73\xfd\xb8\x7d\xfe\xd3\x43\x0b\x14\x0b\xa3\xd4\xd1\x95\x57\x59\x73\x19\x08\x7f\x75\x2d\x68\x8c\x91\xe9\xc5\xb7\xc5\xfa\x69\x71\xf7\xb4\xda\xad\x5f\x76\xcf\x0b\xcf\x0d\xcd\x14\xe3\xda\xa4\x23\x10\x17\x3a\x77\xfe\x30\x27\x31\x8e\xb0\x1f\x19\xf2\x37\xcc\x80\xd6\x14\x8f\xa9\xe8\xf9\xc6\x3b\x54\xdf\xa8\xc3\xb9\x4e\x44\xe0\xa0\x6f\x67\x4b\xb6\x3d\x20\x51\x61\x2a\x0d\x34\x8e\xf6\x6f\xe2\x54\x56\x83\x65\x52\xa5\x11\xa5\xa4\xdf\x7d\xba\x9f\xb5\xa5\xcf\xca\x86\x51\x27\x25\x62\x8d\x4e\x6a\xeb\x83\x22\x41\xc2\x43\x59\xbd\x79\x7a\xae\xeb\x72\xc9\x61\x48\x49\x09\x41\xc3\x5e\xb0\xcb\x57\x8e\xbc\x0f\xb0\xd8\x4a\x08\x6b\xfa\x40\xa1\xd7\xcb\xd7\x13\xe9\x7e\x37\x2c\x1c\xaa\x16\xf7\xb8\xc4\xbe\x93\x24\x95\xe8\x85\x2f\xa4\x52\xcb\x09\x55\x81\x92\x1c\x10\x20\xba\xab\xb0\xa8\xc5\xfd\xaa\xe2\x08\xc5\x65\xb2\xa2\x6e\xb2\xe6\x7c\xc5\xc5\xa0\xb4\x26\x28\x89\x9f\xa9\xf2\xae\x51\xfe\x57\x88\x8d\x0e\xbb\xcf\x61\x39\x35\xb6\xa5\x4d\x69\x4f\x1e\x0a\x12\x62\x78\xa7\x7f\xdc\xa9\xd1\x31\x05\xa9\xb4\x10\x7a\xab\xd7\xe1\xf8\x8d\x5c\x1c\x65\xa2\x3b\xe5\x4f\x91\x1a\x89\xbf\xb3\xda\xa1\xdc\xb7\xe5\xdd\xf9\x32\x6d\xa4\x2d\xc1\xdb\x31\x2b\x9a\xc7\x0a\x2e\xbf\xfd\x6a\xdf\x52\x26\x88\x68\x97\x55\x79\xab\x60\xbd\x7c\xc5\x69\x95\xc9\x1c\xbe\x67\xcd\x61\x34\x82\x0c\x84\x2a\xec\x55\x01\x6f\x60\xb0\x7d\x63\x63\x83\xb5\xa8\xd6\xfb\x8f\x32\x9a\x3a\x34\x29\x3a\xe5\x8b\x62\xc0\xe3\xc2\x34\x21\x91\x24\x3e\x94\xf3\x09\xb5\x43\x65\xcc\x5f\x83\x18\x82\x58\xe3\x02\x26\x6e\x8e\x8e\x42\xa6\x83\xbe\xb8\x69\x76\xd5\xd2\x11\x01\xcc\x66\x82\xaa\x1c\x11\xc0\x6f\x33\xa8\x0f\x1d\x25\x49\x60\xa5\xf1\xbd\xa6\xf1\x38\x65\xa7\xe3\x98\x21\x4c\xa3\x2f\x29\x71\x59\xf9\xcd\x34\x88\xa2\x63\x65\x8b\xae\x44\x55\x4d\x8f\x40\x62\x99\x77\x91\xc7\xac\x9d\xd0\x4f\x99\xd7\x1c\x62\x3a\x49\x6c\x9d\x7a\x3b\x7f\x36\xd0\xb4\x5b\xf3\x2f\x94\x08\xdb\xf6\x2c\x49\x3c\x0f\x2b\x62\xbb\x6c\x65\xce\x68\xf8\xe8\x84\x0a\x2f\x79\xef\x00\x8d\x9d\x3b\xea\x5b\x70\x43\x6c\xd1\xbf\x30\x9d\xe2\xf1\xcd\x82\x99\x51\x5c\xc7\x5d\x81\x46\x01\x1a\xb3\x4e\x1a\x21\x2b\x8b\x1e\x80\xab\xa9\xe0\x98\x94\x41\xf0\x7c\xf5\xd2\xcd\x55\x4d\x95\xad\xb0\xaf\xa1\x79\x2c\x45\xfe\x0e\x58\x8f\xeb\x8f\xb2\x40\xe2\xe6\xe9\x6a\x0b\xbb\xa7\x65\xa9\x0e\x83\xde\x67\x1a\x42\xbd\x35\x27\x21\x46\x33\x1a\xa8\x9b\xd7\x22\xbf\x60\x91\x54\x9d\xed\x97\xa2\xb8\x47\xe4\xda\xa2\x73\x3c\x34\x8f\x24\x26\x57\x1d\xff\x8b\x73\x8e\x66\x30\x0a\x9a\xa7\x71\x40\x1d\xf5\x31\x42\x8b\xef\x45\x23\xc6\x8c\x7b\x37\xc6\x3f\x37\x46\x05\x03\x82\xa6\x1a\x51\x53\xe7\xcb\xe4\x06\x69\x0a\x26\xe9\x03\xff\x88\xd3\x96\xe5\x94\xd7\xd7\xbf\x64\xaa\x43\x8c\x88\x1c\xc5\xcf\x2f\xab\x3f\x7a\xa8\xb4\x16\x81\xa5\x54\xae\x01\x16\x75\x3d\x51\x42\x61\x5a\xa8\x94\x23\x68\x5f\x8a\x42\x97\x2e\x2a\xb2\x81\xea\x47\x36\xad\xb3\xd3\x02\x24\x77\x7a\xb4\xf7\x30\x23\xc8\xf7\x4f\xa3\xd9\xf3\xca\x3d\x03\x87\x53\xcb\x84\x04\xb4\x53\xe9\xb3\xa9\xed\xd9\xe5\x47\x4b\xa9\x71\x53\x6d\xe6\xd8\xc2\xe6\xbb\x5f\x05\xb1\x85\x36\x1e\x45\x9e\xef\x4e\xe2\x52\x9e\xa7\x9d\xa2\x68\xc2\x94\xbf\xff\x9b\xa8\xeb\xcf\x4e\xc2\xab\x6b\x21\x7a\xae\xc7\x7a\x03\x79\xde\x43\xeb\xb4\x92\x31\x1a\x02\xda\x7b\x51\x8e\x4d\xf8\xc6\x3b\x28\x29\x50\x1a\xf1\xb3\xca\x9a\x76\xa6\xfd\x80\x0a\xe5\xd3\x7f\x5d\xfb\xe2\x4e\xd6\xce\xde\xab\xa1\x69\xea\x24\x98\x77\x7a\xb4\xe6\x80\x36\x0f\x34\x87\x87\xe2\xa3\x5d\x4a\x7c\xfa\x57\x9b\x28\x08\xa3\x11\xe5\xad\xf7\x1e\x0a\x4b\xd8\x0e\xb7\xfa\xde\x80\x8a\xd4\x80\xf0\xed\xdd\x69\x7f\xd4\x8d\x38\xfa\xe1\x07\x61\x64\xf5\x8a\x2c\x61\xc1\xf3\x8d\x38\xfb\x3f\x00\x8e\x43\xc8\x82\x28\xf5\xb8\xd2\x76\x25\xcc\x07\x54\xed\xed\xe1\xd0\xfa\x10\xaf\xeb\x97\xdd\xe6\xeb\xdb\xdb\xd3\x9f\xbb\xe7\xc5\xfb\xef\x2b\xac\x31\xdf\xbe\x6e\x17\x4f\x5d\xd3\x94\x63\x64\xbe\x38\x1f\x11\xa1\x5c\x0f\x78\x77\x19\x10\xca\xa8\xe3\xaf\x58\x55\xf2\xdc\x94\xc5\xfe\x8b\x98\xd4\xeb\x01\x49\x69\xd2\xdb\xc8\xb6\x7e\x6d\x7f\xc3\xb1\x06\x22\x28\x4a\x10\x97\x27\x28\x1e\xb3\x1f\xb0\xf8\xec\x42\x32\x40\xc0\xe2\x87\xd7\xcb\xd7\x5d\x0d\x4d\x17\x8b\xfb\xe7\xc9\xa1\xd9\x8f\x03\x51\x10\x61\x2c\x6e\xe7\x4c\x8d\x5b\xda\x96\xae\x79\x9c\x52\x1a\x78\x5e\x69\xbc\xde\x22\xcf\x44\xfd\xb5\x68\x57\xff\x1b\xaf\x15\x1b\xab\x67\xed\x31\x5f\x3d\xa3\x56\x2f\x56\xcc\x20\x91\xc6\xd1\xff\x36\xdb\x9f\x8f\xa2\x1e\x88\x65\x33\x48\x34\x47\xb3\x49\xe8\x1f\x59\x0d\x55\xfd\x15\xb3\x7f\xdd\x72\x0f\x89\xa1\xda\x05\xfc\x1f\xb3\xbf\xa0\x5a\x37\x70\xac\xa7\x9b\x91\x6b\x4b\x03\x13\xdb\xa8\x5e\xb5\xcf\x8a\x87\x76\x2b\xfe\xbf\xb2\xb5\xe5\xfd\xc5\xa8\x94\x61\x32\xb2\xcf\x71\x7c\x8f\xb7\x74\x60\x21\x80\x6b\xf5\x50\x56\x93\xa0\x36\xb0\x44\xa2\x53\xd2\x9a\x5d\x8b\x42\x7b\xba\x85\x7f\x0f\x80\x23\xe3\x8e\x65\x34\x4e\x2c\x1d\x4f\x86\x18\x4a\x5b\x63\xd0\x5d\xce\x18\x44\x0d\x7f\x64\xea\x63\x7b\x18\x48\x26\x32\xe0\x22\xb1\xaa\xf7\xab\xc5\xfb\xf2\x8b\xff\x35\x0d\x8d\x4f\xc5\x2c\x2e\xa2\x68\xee\xab\x32\x6b\x56\x0a\xab\x3b\xff\x73\x86\x9d\xc3\x4d\x85\x3e\x0b\x01\x82\x5b\x62\xbe\xf7\xc7\xa7\x51\xc9\x09\x08\x27\x8e\xb0\x43\x32\xed\xc5\xb9\x39\x94\x95\x07\x04\xcc\x7f\x6f\x21\x6d\xe5\x70\x87\xe1\xc8\x8e\x9e\x43\x78\x32\x3b\x64\xac\x10\xe9\x75\x10\xb5\x4b\x16\xfd\x36\x0c\x14\x83\x74\x45\x0f\xed\xd2\x7a\x2a\xab\xa6\x4b\x56\xac\x7d\x95\x1c\xa8\xc0\x9a\x01\xda\x05\x68\xde\x1c\x95\xa4\x3f\x0e\x51\x18\xaa\x31\xd3\x6c\x77\xc8\x08\x2c\x8b\x3f\x9d\xf3\xfc\x4e\x5c\xeb\x57\x4d\xbe\x90\x21\x0a\x17\x8e\xcf\x43\xd6\xc0\x9b\x38\x61\x54\xd4\xd7\x08\x00\x12\x2d\x62\x71\xc3\x8c\x10\x33\x33\x41\x12\x62\x78\xcd\x0a\x79\x58\xa8\x6c\x34\xa9\x26\x32\x21\x21\x52\x7b\x45\x08\x5f\x7a\x35\x5b\xcb\x6e\x42\x46\x90\xc4\x6a\xf7\x89\xd8\xce\xc9\x41\x1e\x58\x66\x9e\xac\xc9\xfe\xea\xba\xc2\x84\xdc\xd2\x1b\x64\xf5\xfa\x78\x2c\xab\xbe\x4c\xc0\x90\x24\xa1\x0e\x11\xfd\x3a\xad\x91\x31\x84\x11\x2f\x01\x27\x85\xfa\xb8\x87\xbc\xe3\xd2\x32\x44\x07\x28\x26\x70\x12\x55\x53\x58\x2e\xff\x9d\x29\xab\xdd\xb5\x40\x20\x33\x11\x49\x30\x85\x68\x75\x8f\x16\x45\xfd\x39\xc8\x24\xcc\x06\x8a\x4d\x44\xd2\x48\x58\xf7\xcf\x3a\x23\xfe\xbe\x11\x53\xe8\x71\xe5\x67\xf5\x71\x99\x29\xb3\x36\x11\x0f\x70\xe9\xb6\xcc\xfe\x6f\x7d\x81\xb8\x89\x54\x80\x65\x07\xeb\xe2\x47\xf9\x01\xb7\xe0\x9e\xd3\x8c\xb8\x89\x20\xc2\x3b\xda\x0b\xee\x46\x54\x48\x26\x32\x0c\x0b\xa8\x07\xba\x37\x93\xa8\x8f\x89\xc3\x10\x73\x4a\x75\x23\xf6\xb0\xfd\x2c\x47\x21\x68\x13\xd3\x28\xb6\x71\x6c\x50\x1f\x6b\xb3\xae\x67\xe9\x44\x4c\xcc\x8d\x2d\xcc\x39\x65\xc5\xd8\x50\x37\x49\x60\xb0\xb4\x0e\x83\x57\x03\xa6\x72\x66\x92\x90\xc4\xd4\x9b\x20\x6b\xc7\x10\xde\x1d\x8c\x05\x77\xce\xd4\x7a\xf9\x3a\x13\x61\x72\xdf\x64\x46\xcf\xb2\xb7\xc3\x0c\x35\x0c\x65\xf4\xfe\x2c\xf3\x11\xa1\x9f\x61\xb1\xa4\x8e\x72\xa1\xdf\xf1\xaf\xb0\x26\x33\x7f\xdd\xf9\x3c\xb2\x68\x9e\xb7\xea\x0c\x52\x0c\x96\x3d\xc3\x85\xc1\x09\xf5\x90\xfd\x1c\xea\xfd\xb9\xa3\x29\x49\xd1\xca\xed\x4a\xfa\x86\xa7\xa6\x9c\x86\x74\x80\xba\x73\x30\x8b\xee\xb0\xb4\x25\x2d\x7b\x4b\xf6\x53\x56\x8b\xd3\x29\x77\x88\x32\x6b\x63\x6e\xab\x76\xb5\x98\x43\x13\x9a\x54\x85\x81\x2f\xa9\xb0\x4e\xc3\x0b\x7c\x62\x97\xb4\xee\xf3\xf6\x00\x96\x95\xd4\x41\x87\xea\x61\x2c\xc5\xa4\x8a\xa3\x41\x81\x22\xdc\x79\x8e\x98\xd8\x7b\x68\x44\x96\x4f\x07\x53\xaa\x65\xe4\xe0\x5e\x5d\xf8\x6a\x5a\x87\x6d\x44\xa4\x23\xf2\xff\xa8\x4c\xea\xfb\x5d\xc4\x8a\x84\xde\xed\x6b\xdd\xc2\xb7\xce\xf1\x32\x42\x0a\xbf\x58\xb8\x63\x1d\xee\xfa\xf7\xc9\x67\x10\xc6\x60\x0c\xaa\x80\x9f\x4d\x35\xa8\x03\x37\x92\x12\x8c\x33\x1c\x31\x31\x05\x57\x2c\x6d\x13\xaf\xc5\x48\xb0\xf8\x0b\x53\x56\x5b\x10\xc7\xd5\xd6\x6f\x74\x46\x45\x09\x6e\xc3\x3b\x79\xae\x8a\x51\x04\xcc\x28\x99\x62\x45\xc9\xb4\x72\x65\x30\x70\x95\xb4\x5c\x71\xd8\x83\xc8\x21\xe8\xfd\xc8\x59\xf3\xc7\x28\x15\x63\x26\xc9\x6a\x6b\x3f\xaf\x5f\x1c\x1d\xd1\xf6\xcb\xfb\x6a\xf3\xa5\x67\x2b\x35\x4a\x01\xe5\x1e\xac\xe2\x38\x75\xbf\x59\x49\x73\x1c\x50\x63\xba\xe6\xc1\x13\xe9\x28\xc6\xb2\xc7\xa3\xf8\x80\xb7\x0a\x74\xa6\x2c\x20\xd4\xce\x99\xd1\xfb\x01\xb1\x7c\xfb\xe7\x02\xd5\x96\xdf\xa0\xea\x53\x78\x06\x22\x8e\xec\x1b\x1d\xd6\xb9\x5c\x2f\x17\x6f\xed\x20\x44\x84\x00\xe6\xa6\xa7\xa6\xde\xf8\xea\x3a\x54\x8e\xd2\xec\xf5\x47\xeb\xe7\xc1\xe7\xaf\x48\x17\x8c\x21\xb1\xf1\x56\x9e\xb7\x2a\x8c\xd1\x04\x5c\x37\x58\x53\x4a\x5d\x86\x71\xbe\xd9\x58\xb6\xfd\xe6\x3c\x08\x82\x58\x60\xb8\x03\x09\xab\x1e\x90\x78\x6a\xf6\xb3\xf0\x20\x88\xc2\x68\x52\x16\x8b\xfe\xd6\xdd\xa5\x93\xd1\x74\x0b\x25\x0f\x02\x91\x1a\xaf\xec\x12\xdd\xf7\x21\x38\x1e\x84\x11\xc1\xfc\x58\x89\x28\x8d\x51\x34\x9e\x07\x21\xb7\xfb\xfb\x22\xcf\x2f\x75\xc7\xc3\xca\x83\xd0\xa8\x08\xbc\x7d\xe1\x00\x9d\xa8\x7f\xeb\x8e\x93\x30\x74\x10\x09\x73\x2e\xf4\x3c\x9d\xe8\x14\xdd\x3a\x67\x56\xb5\x57\x02\x74\x36\x11\xc3\x51\x3b\xb8\xf9\x6f\xe3\x8e\x20\x71\x8a\x9b\xdb\xfd\xb2\xbb\x3f\x4f\x70\x3c\x59\xdc\xe1\x76\xbd\x7a\xdf\xf1\xa1\x46\x1d\x0f\x88\x92\xc2\x78\x6d\x61\x8f\x2a\x1c\x2b\x03\xf9\x96\x26\x46\x04\x78\x21\xb4\x98\x1c\x8a\x02\x89\xe1\x81\x76\xd8\x7e\xcf\x72\xbd\x14\x95\x9e\x7b\xc0\x38\x4e\xa9\x03\x71\x2d\x96\x4f\xef\x65\x0e\x3c\x65\x24\xe2\x21\x49\x79\x1a\x06\x41\x10\x92\x28\xf8\x6d\xfc\xe2\x71\x2c\x45\x32\x1a\xca\x77\xe7\xcb\x4c\x85\xc6\xe4\x2c\x91\x68\x2b\xe6\x6c\xd3\x90\x30\xb9\x6a\xc2\x29\x6a\x76\x7e\xb5\x55\x3d\xbe\x37\x12\x61\xc5\xd4\x1c\x7c\xbc\x75\x24\xfe\x36\xe3\x32\xb9\xb0\xd6\x68\x71\xee\x70\x48\xb4\x26\x41\x8d\x7c\xac\xee\x30\x03\x3e\x2e\xea\xfc\x0e\xd9\x0b\x80\xbe\x91\x54\xe6\x01\x0f\x2c\x49\x63\xbb\x50\x62\xda\x22\xf4\x97\xe2\x5a\xe1\x2a\x6a\x1f\x75\x56\xf6\xf6\x57\x08\xb0\xd6\x4a\x0c\x6c\x1f\xd9\x0e\x1a\xdf\x37\x25\xb6\xdc\xb1\x67\xdb\x5e\x64\x95\xae\xca\xd3\x8d\xe7\x4c\xb5\x46\x0b\x67\xe7\xb8\x69\x86\x24\x18\x3c\x10\xb1\x46\x48\xf8\x3b\xa8\xec\x94\x41\xd1\xd8\xe4\xd9\x75\x3d\xe1\xf8\x09\x85\x08\x22\xd6\xf3\xdd\xe0\x90\x7a\xa8\xca\x63\xe7\xdb\x8d\x9f\x41\x40\x6a\x0b\x6e\xca\xe3\x29\x87\x06\x7a\x22\xbc\xf9\x67\x16\x00\xcc\x86\x87\x3f\x1f\xfb\x0c\xca\x28\xa0\xc0\x03\x29\x81\xf6\xc8\xda\xe5\xa1\xb5\x61\xc6\x4f\x29\x21\xc1\x6d\x64\xb1\xdf\x67\xe7\x62\x9f\xbd\xc0\xbe\xfc\x2b\x13\xc5\xd5\xa0\x93\x06\x74\xd0\x71\xcb\xb8\x88\x82\x13\x63\xbf\xcd\x0a\xc7\x03\x15\x5b\xb2\x2c\xa1\xb5\x07\x8d\x0e\x5f\xa8\x7b\x54\x95\x44\x68\xda\x9c\xc4\xe5\x39\x2b\xdc\xb6\x3f\x00\xd8\xb7\x2d\x28\x26\x0d\x30\x88\x54\xcf\x22\x79\x78\xa0\xa4\xc1\x59\x6a\xe1\x32\x1d\x87\xcc\x75\xf0\x96\x07\x9a\x44\x88\x8b\xae\x30\xa2\xf9\x2d\xab\x07\xe1\xfd\xd1\x2b\x40\x2c\xd3\xbe\xea\xb2\x2e\x73\xc7\x24\x89\x34\x83\x18\xc2\xf7\x0e\xf6\xf8\x13\x99\x38\x45\x42\x71\xbb\x0d\x78\xad\xa2\xd1\xa5\x8d\xe1\x68\x9b\xb7\x7b\xd4\x93\x68\x37\xa0\x55\xa5\x48\x80\x16\x91\xe5\x94\xf3\x6a\xb1\xf6\x84\x30\xe0\x11\xee\xce\xa2\x19\x90\x54\xf2\x90\x84\x12\x3f\xf4\xef\x70\x01\xed\xc0\x24\x1d\xee\x9d\x87\xc4\xed\x70\xb5\x37\x0c\x67\x40\x90\x6d\x2b\x83\x3e\x8b\x11\x59\x3e\x7a\xcc\x90\x30\x9b\x02\x7d\x7c\x7d\xba\xbf\x5b\xbc\x0f\x0c\x65\x1e\x46\x84\xe9\x5e\x7b\x78\xd3\xb4\x93\x7d\x7f\xf9\xed\x6f\x78\x6b\x7a\x67\x65\x34\x62\xc3\x84\x48\xe9\xaa\xda\x5c\x64\x11\x49\x58\xc6\x3d\x1b\x26\x89\xc4\xf7\x79\xb3\xa0\xc7\xa5\x9b\x33\xbf\x0e\x4b\xf3\x90\x06\xda\x96\x10\x9c\x8f\xa8\xc4\xbf\x74\x30\x0a\x7f\x98\x06\x29\xeb\xb3\x42\x4b\x47\x0c\x37\xe9\x25\x16\x51\x04\xcb\x21\x48\x63\x2b\xf2\x0f\x7f\x3a\x13\x14\xd9\x77\x04\x3a\xca\xce\x61\x9f\x1b\x50\x21\x13\xd2\xc3\xca\xed\x96\x25\x9a\xac\xd8\x6f\xcf\xa7\xbc\xfb\xa0\x0c\x6c\x96\xaf\x12\x9f\xd8\xe4\xd5\xfc\x36\xee\x28\x4e\x0d\xfa\xb6\xd0\x4e\x11\x04\x20\xad\x0b\x5b\x45\xfd\x7a\xee\x46\x4b\xaa\xa3\xa0\xaf\x10\x7a\x11\x47\x5f\xae\x5d\xcd\xd5\x77\xf2\x50\x10\x85\x85\x34\x6f\xe2\x32\xe9\x71\x11\x0b\x4f\x93\x69\x0d\x94\xb5\x2a\x37\x1d\x6d\x23\x0f\x55\xa0\x65\xdc\x15\xa1\xb7\x26\xcf\x23\x74\x8f\xa1\x62\x8d\x04\x84\x4d\x06\xd5\x4b\xd9\xfd\xaa\xac\xbe\xb5\x15\x8b\x59\xd8\x01\x3b\x7e\x49\xa5\x53\xdc\x40\x90\x48\x73\x2a\x37\xc3\x43\x2d\x2d\x85\xdf\xa0\xae\x6b\x76\xb1\x0c\x21\xb6\x9c\xf7\xcf\x7f\x2e\x45\x35\x88\x41\xf1\x10\x52\x8e\x96\x93\x3a\x1f\xdb\x2d\xad\x5d\xfc\xdb\xd9\xed\xf7\xbc\xd0\x24\x82\x47\x03\xd0\xc8\x5a\x43\xd1\x64\xcd\x65\x36\x80\xc4\x49\x10\x31\x6d\x31\x26\x96\x42\x03\xc4\xb1\xdb\x36\x7e\xf3\x6d\x12\x43\x7d\x21\x29\x2a\xc7\x7a\xff\xc7\x32\x37\xbe\x94\x1d\x31\x15\x12\x39\xfa\xb3\x94\xa5\x6a\x37\x39\xfc\xcc\x64\x0e\x76\xf9\xb1\xe9\xf7\xd1\xcb\x92\x50\x24\xa1\x23\x75\x77\x89\xaf\x7a\xd2\x82\xc8\x34\x20\xbd\xa6\xbb\x0d\x70\x2d\xc5\x69\xda\x0c\x34\xc2\x01\xa4\x28\x3e\xc6\x36\x25\x89\x42\x5b\x39\x81\x86\x02\x32\xd5\x0d\xa2\x0a\x9c\x44\xcc\x2e\x6b\xcf\xeb\xbf\x57\x61\xe1\x24\xe2\xca\xb8\x10\xe8\xf2\xa8\x6d\x19\x5d\x39\x7d\xab\x38\x0e\x2c\xc3\x0f\x96\x6a\x8f\xee\x16\x73\x9b\x68\x43\x49\x19\xe4\x23\x77\x50\xe8\x79\x2c\xd8\x78\x6c\x90\x24\x4a\xa9\xf4\x2b\x4e\xe6\x39\xf0\x43\x5f\xd8\xc8\x49\xc2\x15\x46\x30\xff\xfd\xc7\x70\xdd\x23\x34\xb4\xf5\xf2\xed\x1a\xd5\x2f\x40\xfe\x60\x64\x41\xe7\x2e\x90\xd8\x3a\x51\xed\xa0\x19\xdf\x99\x4a\x89\x81\x00\x53\x37\xae\x34\xa4\xed\xc9\xb7\xb2\xc2\x0a\x30\x28\xca\x63\x56\x88\x0e\xc6\xdd\xb6\xb7\x24\x29\x38\xe5\xe1\x7c\x74\x5a\xeb\xdd\x61\x43\xb0\x24\x6f\xe3\xad\x2c\xc2\x24\x21\x96\xfa\xb6\xfc\x0b\xba\xf2\x44\x7f\x94\xc7\xa1\x1a\x15\xac\x39\x89\xf3\x6e\x57\x21\x29\xe5\x48\x72\x57\x56\xd9\xfe\xf9\xa3\x19\x04\xbd\x39\x11\x41\x88\xe5\xda\xc3\xf5\xe7\xeb\xe6\xbe\x3b\x4c\x18\x5a\x3f\x3f\xac\x72\xfa\xb3\x98\x18\x1e\x44\x68\x2d\xb5\x2b\xfa\xfd\x71\xce\x0b\x3b\xda\xef\x2e\x8b\x0a\x26\x16\x3a\x91\x24\x8a\x83\x0e\xfc\x52\x35\x6b\x55\x4e\x92\x30\x9c\xc8\x88\xe2\x90\x6e\xc4\x47\x67\x31\x10\x99\x6a\xcf\x2d\xea\x02\x8a\xbf\x2a\x79\xe2\x44\x51\x30\xbc\xf3\x78\x36\x50\xe8\xdb\xd5\xd4\xfe\x94\xd4\x1a\x25\x4e\xef\x6c\x5b\xda\x3d\xa5\xaa\x6f\xf2\x53\x72\xa2\x80\x21\x2d\x43\xeb\xf7\xdb\x60\x9a\x63\x25\x1e\xae\x7d\x44\x8b\x10\xc4\x24\xef\x77\x45\x4a\x7b\x3b\x39\xcd\x09\x0c\x49\x76\x87\x1a\x01\x9c\x40\x14\x63\x19\xb2\x05\xd5\x0b\x03\x9d\x8e\x43\xde\x35\x51\x01\x66\xdd\xfc\xed\x31\xa5\xec\x65\xe7\x7e\x29\x58\xd4\xbd\xa7\x09\xb8\x70\x7b\xf9\xd7\x2a\x9b\x83\x29\x70\x62\x64\xa2\xdd\xbe\xf2\xad\x6c\x00\x4d\xc4\x31\x5a\x84\x47\x61\x68\x6d\xfd\x01\x55\xaa\xff\xee\x51\x48\x62\xdc\x02\xec\x0e\xb7\xae\xeb\xf3\x74\xc3\x8e\x48\x08\x18\x51\x3b\x9d\xeb\xc3\xca\x65\xd4\x46\x1f\x31\x22\xa9\xc6\x1a\x03\x47\x3b\xe7\xd3\x83\xff\x08\xec\xc1\x23\x22\xa5\xb1\xeb\xf9\xf1\x54\x56\xa2\xba\xac\x6a\x25\x4e\x80\x24\x62\xbf\x20\x2f\xe4\x51\x14\xd8\x88\xdb\x6a\x93\x97\x4d\xbd\x5e\xbe\x6e\x2d\xd6\xff\x94\x97\x97\x49\x00\x95\x47\x11\x0b\xa4\x73\x3f\x57\x1a\x91\x55\x18\xf4\x99\x56\x32\x4f\x03\x62\x3c\x8a\x45\x82\x39\x2c\x79\xbe\x5c\x09\xac\xf0\x28\x09\x2d\x83\xde\x41\xd4\x6f\xa2\x46\x28\xc0\x5f\x7d\x36\x88\x47\x09\xb3\x62\x91\x23\x3d\x43\x1e\x51\x06\xb1\x45\x37\x35\x50\x6d\x8e\xc2\x0b\xc8\xb4\xd6\x69\x80\x79\xd8\x4c\x95\xe4\xb9\xdb\x67\x23\x96\x98\x30\x76\xd8\xf2\xac\x82\xac\x36\x53\x4a\x2b\x6c\x83\x9f\xe1\x0e\x9a\x2d\xd4\x4d\x18\x86\xdd\xd9\x3c\xe6\x36\x0f\x8b\xc0\xa4\x2e\xe8\xc4\x23\x4c\x9a\x3a\x15\xc8\xe9\x7a\x3f\xbe\x3a\x8f\x43\x4c\x53\x3d\x03\xa6\x0a\x86\x6b\x79\xc4\x59\x60\x55\x8f\xce\xf2\x5c\xdf\xe5\x42\x4d\xf6\xbb\x88\x73\x90\x03\x0e\xf0\xac\x2c\xea\xd7\x1f\x8e\xd9\x7f\x7c\x9b\x34\xb2\x14\xdb\xcf\x8b\xed\xee\x6d\xf1\xbe\x7d\x59\xbd\x6f\x7c\xb2\x76\x18\xbc\x88\xbc\xad\x25\x2c\x96\x78\x30\x03\x67\xc7\xcc\x8d\x4c\x03\x8f\x84\x8a\xd0\x98\x2c\x8d\xd9\x1e\x2a\xa8\x0f\xbd\x55\x16\xc9\x38\x41\x37\xbb\x12\x9f\x5e\x8a\x77\x32\xb7\x24\x93\x21\x38\x8d\xd6\xff\xb2\x88\x93\xc9\x08\x51\xc4\xd7\xf5\x97\x1f\xe7\xd3\x3b\xec\x5f\x06\x34\x7c\xbe\x0d\xd7\x98\x4c\x39\xda\x8c\x99\xa3\x44\x1a\xb2\xbb\xf1\x48\xa9\x14\x67\xf1\xf2\xe5\x65\xd4\xf7\x0a\x62\x64\x68\x83\x9f\xa7\x63\x79\x13\x16\xeb\x1a\xeb\xc4\xea\xbb\xed\xf2\x76\xf0\xb7\xe6\xd5\x55\xa5\xed\xdf\xfc\xf7\x17\xd2\x02\xc3\xf3\x98\xe5\x74\xa9\xd9\x5f\x99\x90\x11\x30\xcf\xfa\x72\x2c\x7f\xc0\x37\xa8\x2c\x74\xb8\x9c\x95\x12\xe6\x91\x21\x1c\xe1\x7f\xc8\x14\xf9\xf5\xa4\x9f\xb3\x62\x93\xed\x8b\xf9\x28\x60\x64\xa8\x40\x20\xcc\x09\xca\xde\x07\x88\x0c\x93\x9e\x94\x17\x1d\xe1\xff\x3e\x97\xcd\x64\x6f\x8c\x83\x84\x20\x64\x3c\x73\xb2\x40\x38\xf3\xff\xa7\x93\xd9\xe8\x26\x4a\x1c\x28\x2b\xc4\xb6\xf3\x65\xc0\xa3\x1a\xeb\xf1\x46\x18\x87\x49\x9a\xe0\xd3\x9b\x06\xaa\x1d\x56\x19\x93\xdd\x11\x9a\x83\x97\x13\xe3\x71\x28\x92\xc8\xed\xad\xbb\x21\x8d\xfb\xf8\xf1\x42\xc9\x1c\xb5\x87\x33\xca\x2c\xaa\x61\xda\x8c\x04\x1a\xc9\x02\x7e\xd8\x38\xb3\x2d\x08\xf1\xc7\x58\xaa\x7d\x3c\xda\x96\xc3\x75\xdc\xed\x57\x41\x68\x1e\x13\x11\x61\xf0\xf8\x24\x2e\x2e\x10\xd8\x1d\xd0\xe0\x2a\x5f\x9c\xdd\x34\x20\x94\xe2\x31\xd1\x0a\x6d\x2b\x91\xe7\x83\xe5\x2f\x8e\x42\x1e\xcb\x01\xf1\x34\x26\xec\xc6\x77\xbf\x59\x8b\xca\xe3\x98\x4a\x84\x19\x36\x99\xad\x71\x19\x0a\xb2\xf1\x38\x56\xc0\x43\x57\x20\xd7\x41\x6b\x78\x9c\x84\x36\x18\xb5\x39\xe5\x59\xe3\x7a\xed\xb6\x31\x11\x27\x44\x63\xc0\x63\xb9\xd8\x5e\x41\xd8\x86\x3b\x6d\x9c\xc4\x4c\x78\xee\x7f\x44\x7e\x5d\x7d\x85\x44\x72\x0a\x8e\x32\xc5\xa1\xdd\xfb\x38\xbe\x15\xd6\x6e\x8d\x9b\xef\x59\xa1\x7d\x59\x19\x8f\x13\x25\x91\x93\xec\xf1\xf5\xe9\x7e\xdb\xfd\xa8\x13\xd1\x7e\xcf\xaf\xa7\x7d\x25\x34\xa0\x50\xde\x14\x2f\xd8\xb6\x62\x68\x79\x37\xe7\xe2\xb6\xe8\xe7\xf8\x11\x69\xc8\x51\x05\x61\xb7\x87\x66\x59\x09\x69\x35\x64\x1b\x31\x29\x44\xe3\x31\x55\x91\x57\x7f\x6a\x57\xa4\xae\x98\x15\x6b\x93\x31\xae\x30\x94\xab\xe2\x31\x0b\x89\x21\x38\x03\xf1\xdd\xdf\x10\x33\x35\x99\xd4\x31\x8b\x62\xee\x80\x13\x1b\xc8\xf3\x7b\x38\x8a\x62\xda\x89\x2c\x4a\x88\x2b\xd7\xbd\xb3\x34\x38\xcb\xb2\xd0\x23\x28\xf4\xe4\x9d\x78\x10\x61\x1c\xbe\x67\x40\x58\x7e\x59\xbd\xdc\xaf\x26\x25\x81\x3c\xe6\x61\x04\x41\xb7\x12\xcf\x80\x8c\x7c\xbb\x88\x46\xa4\x43\x5b\x22\xfc\xb0\x23\x0c\xe4\x31\x4f\x41\x53\x17\x68\x14\x15\xac\x0b\x67\xd7\xfb\xdd\x65\xb8\xe9\x84\xee\x9c\x94\x73\x4f\x35\xea\xd2\x13\xe5\x79\x7f\xf0\x4b\x7b\x2c\x22\x40\x03\x5d\xb6\xeb\x7d\x06\x35\x9a\x61\xdd\x38\x17\x82\x69\x5f\x4d\x91\x35\xe7\x5c\x64\x55\x87\xe2\x48\x26\xbd\x27\x1d\xd1\xe2\x05\x44\xd5\x80\x38\xee\x9a\x76\xfc\xec\xfa\x62\x05\x1e\xeb\x90\x21\xf4\xec\x5e\x54\x1f\x15\x14\xb9\x28\xf4\x70\x3f\x89\x4d\xcc\x8c\xad\xf7\xd5\x67\x05\xcb\x76\x00\x37\xf5\x6f\x33\x88\x3c\x3e\x59\xf4\x0c\xa5\xe8\xed\x38\x30\x27\x3c\x8f\x63\x75\xb1\x51\x12\x3d\xf0\xe7\xc5\xfb\x1f\xe3\x3b\x6a\x8b\x58\x41\x67\x78\xf5\xd3\x9a\xe8\x58\x92\xec\x5a\x24\x81\xa0\x08\xfc\xf5\xc6\xf4\x7d\x69\x1a\xb4\xa8\x86\x93\xdb\xb7\x95\x0c\xa3\xfb\x4f\x9b\xfb\x89\x7e\x21\x4f\x02\x45\x30\xb1\xd4\xee\xf1\x50\xd5\x9d\x14\xca\x68\xa7\x4d\x02\x13\x08\x2f\x21\x54\x95\xc7\xb2\x01\x3d\x92\xe2\xc5\x82\xeb\xe1\xab\x25\x61\x90\x60\x66\xa9\x16\x3f\x40\x8f\xd8\xed\x78\x12\x4a\x65\xa1\x1d\xc2\xc0\x1b\x54\x6a\x7e\xd0\x25\x24\x96\x08\xe6\x39\x88\xfc\x47\xeb\x4c\x3a\x19\x6d\x7f\x34\x09\xb0\x88\xfd\xe3\x22\xa1\x72\xb4\xa2\x6f\x55\xf9\xf3\x32\xae\x44\xe6\x49\x14\x59\x86\xbb\x3d\x34\xcf\xd0\x88\x2b\x1e\xf9\xb6\xc5\x40\x20\xe4\x03\x8a\xe7\x6c\x18\x54\xf6\x8d\x98\x25\x3b\x39\x17\x83\x08\xfa\xff\xfc\xef\xa4\x00\x95\x27\x91\x4a\x63\x24\x64\xcd\x1a\x55\x66\xc5\xef\xdd\x86\x90\xc4\x24\xc4\xc5\x49\x9c\x9b\xd2\x65\x0f\xc6\xbd\x1c\x33\x8d\xa2\x23\xb7\x9c\x86\xf1\x53\xc7\x92\xa5\x16\x06\xa6\xc5\x20\xa5\xfd\x4f\xaa\x5f\x66\xa2\xea\x09\xa5\x1c\x9f\xdb\x6b\xd2\x6c\x33\xf5\x01\xbf\x94\xad\xe0\x09\x23\x3c\xa4\x2e\xab\x6e\x4c\x96\x67\x43\x59\xb4\x91\x55\x98\xb0\x54\x33\xc7\x17\xb9\x2a\x9a\x6b\x52\x21\x3b\x84\xe6\x07\x02\x33\x56\xd4\x1f\x93\xec\x3f\xa0\x72\x22\xe1\xfd\x37\xe8\x09\x36\xda\xc6\x0a\xc7\x85\xa8\x6b\xa8\x9a\xd5\x7f\x22\xb7\x0c\xb9\xe7\x71\xad\x78\x28\xfc\xa0\xc0\xa2\xd4\xe5\x48\xb4\x6e\x6c\xaa\x27\x9c\x50\xc1\x9c\x45\x6b\x4b\xca\x27\x28\x23\x9e\xf0\xc8\xf2\x32\xbb\xf2\x1f\x0b\x5b\x9b\xb6\xa1\x49\x08\x1d\x13\x42\xe1\xe2\xe9\x37\xf2\x9e\xfe\x1c\x90\xcc\x59\x0b\x1b\x55\x56\xe3\xf5\x23\xe1\xc6\x42\x82\xdc\xb9\xad\x91\xdc\x1a\xb0\xfe\xb9\xd3\x10\x6c\xce\x3f\x43\xd0\xdd\x32\xcf\x5a\xd3\xf6\xcd\xee\x47\x5b\x51\x7f\x74\x0d\x4d\x8a\xa6\xa5\x97\xdf\x5b\x8a\x6a\xa1\x7f\xfc\x22\xc3\xcd\x13\x19\x82\x74\xf1\xf2\xd5\xfa\xc1\x5f\x48\xf2\x60\x44\xd1\x84\x46\xe6\xba\xc8\x9a\xec\x17\x89\xa7\x44\x2a\x96\x38\x7b\xec\x0e\x9d\x71\xac\x05\xf3\x99\xa0\x39\x27\x3f\x51\x2a\x4d\xd9\xbc\x14\xe3\xd0\x21\x4e\x14\x30\x74\x89\x5c\xf5\x78\xeb\xd3\x4d\x94\x2e\x79\xa2\x05\x0f\x99\x2d\x08\x87\x0a\x03\x64\xe0\x19\x58\x5d\x0b\x48\x01\x4b\xc6\xa1\x52\x9e\xaa\x80\x27\x46\x50\x64\xef\x3b\x55\xd9\x5f\x30\x9e\xc8\x46\xc6\x1d\x15\xdf\x83\x95\xb5\xac\x67\x58\xc2\xba\x1e\xa0\x01\x53\x88\x61\x69\xef\xeb\xdd\x8f\xa9\x31\x45\x03\xd0\x09\xed\x36\xe1\x75\x03\xc7\xef\x55\xd9\x3d\x24\x25\xa9\xc2\x64\x41\xfb\x8e\x6e\x00\x5f\x57\x81\x73\x4a\x84\x71\xe5\x85\x2e\xe5\xda\x17\x43\x8d\x6f\x17\x39\x25\x86\x67\x51\xfd\x35\x88\x6f\xd3\xd6\xb4\x76\x70\x98\x55\xdd\x5c\xa5\x4a\x69\x1c\xd9\x4a\x98\xe7\xc5\x1f\xbb\xd7\xb7\x4d\x77\x5a\x2c\x70\x68\x9c\x6b\xa8\x50\x1e\xde\xa2\xff\x26\xe1\x93\xf9\x15\x80\x26\x26\x46\x4a\xa7\xe3\xf1\x6c\xa3\xb8\x03\xaa\xfd\xae\x89\x45\xc5\x3c\x95\xfb\xbb\xde\x2e\x9c\x5d\x56\x06\xd6\x3d\xa5\xa0\xa9\x9b\x94\x77\x79\x59\x5e\xf3\x62\x73\xca\x02\x82\x01\xb9\xf6\x85\x56\x2f\xf7\xbb\xbb\xa7\xd7\xe5\xef\xbb\x97\xaf\xcf\x77\x9e\x64\xb7\x6d\x43\x31\x2d\xe2\x5c\xef\xd6\x16\x29\x8b\xf6\xbd\x86\xa3\x96\xf2\xc8\xda\x03\x0a\xf1\xea\xcd\xb3\xc8\x0a\x75\x10\x59\xf1\xf8\xf6\xc7\x0c\xfb\x14\xa7\x5c\xf1\x8e\xcf\x4c\x34\x70\x77\xd9\x74\x84\x8e\xfd\xe3\xa5\x1c\x70\xe1\xde\xd9\xb5\x67\x10\x71\x9e\xf6\x67\x48\xaf\xfd\x0a\xbf\x6f\x51\x21\x63\xe9\xd7\x72\x4b\x6e\x88\x35\x4e\x03\xc0\xa5\x5f\x62\xa9\xe4\x71\x2c\x3d\x8d\x39\xda\x01\xfe\x80\xb1\x85\x05\x9b\xec\x78\xca\x01\xc5\xb9\xab\xb3\x6a\xca\xca\xb1\xe8\xce\xbd\xa3\x4a\x02\xf4\x36\xf0\x62\x5d\x7a\xbd\xcf\x34\x52\x25\x0c\x86\x50\x6d\x85\x72\xf5\x6a\x36\xa5\xca\x44\xde\xa5\x4d\xe6\x47\x8c\x32\x36\x86\x71\x7f\xae\xb2\x72\xbb\xda\x78\x47\x82\xea\x80\x78\x5d\xfd\x2f\x65\xde\xce\xf2\x21\x03\x13\xa7\x9a\x0b\xe4\x11\x41\x17\xd5\x88\xbc\x86\xd5\x7f\x5e\xca\xa7\xb2\x9b\x67\x10\x50\x13\xb9\xdd\x60\xb5\xfd\xd2\x94\x23\x11\x61\xdf\x28\x66\xb8\x02\x58\xdf\x1e\xfd\x9e\x5c\xdc\x30\xd7\x29\x28\x83\xdb\xa8\x2e\xdf\x61\xa0\xdf\xc3\x29\x68\x81\xe6\xb9\x4f\x15\xad\x0a\x7d\x2a\xb3\x6e\x54\xfd\x6b\x7c\x15\xc3\x90\xd4\x15\x44\x55\x20\xea\xe6\x3b\x64\xfe\x42\x46\x46\xe1\x80\x87\xe1\xf5\xdc\x9c\xce\x0e\xdd\x6e\x09\xb5\x38\x0b\x78\x8a\x46\xd9\x9b\x28\x74\x59\x89\xbf\x93\x19\xe3\x2c\x48\x43\xac\xef\x5f\x2d\xee\x6c\xe3\xd9\x46\x86\xdb\xb9\x73\xe9\x19\xb1\xdd\xa1\x30\xb0\x92\x45\x35\xfc\xe8\x0c\x5f\x16\x06\x06\x91\xd7\x56\xc8\x76\x28\xa8\xc6\x59\x18\x12\x9f\xc8\x45\x41\x64\xf4\x01\xc7\xab\x1b\x0b\x53\x40\x8c\xd5\xfd\xe2\x74\x7a\x29\x35\xbc\x09\xf5\x21\xf6\x70\x9f\x55\xc8\x85\x70\x23\xc9\xc6\x42\x91\xa2\x85\x8f\x82\xdb\x03\x81\x52\xce\x48\x10\xe0\xca\xb3\xca\xb3\xfd\xf1\xff\xe3\xec\xdd\x96\x1b\xc7\x91\xad\xe1\xd7\x99\x8b\x7d\x41\xf0\x08\x5c\xca\xb6\x5c\xe5\x5d\x96\xad\xdf\x52\x55\x77\xcf\xc4\x84\x22\x01\x24\x6c\x8e\x29\x52\x43\x52\xae\x72\x3f\xfd\x1f\x4c\x00\x3c\x89\x76\xf7\xfe\x6e\xba\x3a\x0c\x90\x22\x41\x1c\xf2\xb0\x72\x2d\xb0\x59\xa2\x8f\x0a\xbb\xfc\x25\x18\x91\x05\xa2\xf3\x46\x9e\xeb\x86\xf6\xb7\x9b\xf3\x98\xf9\x9a\x67\x51\x60\x7d\xec\x12\x7f\xf9\xe0\xc1\x7e\xbf\x71\x3c\xe9\xa2\xef\x15\xc7\x99\x43\x8c\x5a\x56\x10\xb7\x32\xc7\xc3\x18\xf1\xc8\x42\xde\xf3\xf2\xf9\x5c\x40\x7d\xb3\xff\x71\x0f\xe7\x72\x14\x28\xfe\xbf\x96\x1a\x4d\x26\x67\x16\x89\xd8\xb8\x2a\x79\x17\xcd\x23\x71\x87\xcb\x98\x77\x16\x49\x95\xba\x32\xb0\x6e\xf1\xc0\x45\x87\x38\xce\x12\x2f\x9e\x59\x40\xd3\xf4\x05\xd2\xde\xdc\xc9\x62\x99\x52\x31\xba\x27\xee\x19\x54\x86\xa7\x43\x1c\xeb\x88\x28\x05\xce\xa5\xec\x8e\x3b\x8b\xf9\x1c\x82\x2c\x59\x12\x59\xef\x72\xb3\xba\x7b\x38\xec\x56\xf7\xeb\xc3\x8f\xd5\xfd\xf7\xf5\xe1\x7a\xb5\xed\xbb\x48\x49\x2c\xc5\x9e\xcc\x60\x3b\x56\x82\xfb\x7c\x48\x12\x1d\x93\x5a\x70\xbb\x50\x98\xe3\x8e\xa3\x2c\x65\x96\x47\xa3\xb3\xbd\x6c\xa6\xe4\x1a\x8b\x62\x79\x03\xc8\x32\x93\x85\xda\xef\x49\xe7\x7a\x76\x12\x67\x3c\xb4\x3c\xc1\x14\x1a\x5f\x4c\xb3\x67\x5c\x04\x91\x13\x9f\x70\x42\x5f\x6b\x92\x82\xf0\xcd\x32\x4d\xc1\x05\xcd\xce\x0d\xee\xe0\xad\x1f\x2a\x81\x4c\x90\x3c\xbb\x85\x78\xac\x8a\xe2\x16\x7b\x37\x33\x83\x80\x83\x75\xed\xab\x62\x60\x5b\xe2\x19\x68\xed\x10\xc7\x1a\x8b\xfc\x7c\xfc\xeb\xed\x42\x26\x56\x95\xb0\x57\xe5\xdb\xd6\x95\x04\x99\x17\x7e\x0f\xf7\x23\x27\xd3\x8c\x36\x60\xbb\x75\x7a\x3c\xf2\xf4\x75\xa5\x4e\xc9\x63\x6f\xb0\x9d\x1c\x19\xfe\x50\x4b\xdc\xa9\x96\x29\x96\x69\x61\x8d\x34\xca\x86\x62\x51\x8c\x89\x8a\x78\xa6\x42\x1b\x01\xf9\xe9\x65\xb8\x97\x70\x2c\x99\x52\x96\x91\xb1\xc6\x53\x81\x65\xde\xbc\x5c\xd0\x66\xf3\x4c\x07\x21\xa1\x38\x3a\x93\xf4\xfe\xcf\xa9\xcc\xea\xf4\x6e\x3a\xb5\xd0\xc1\xe3\xe1\x78\x2e\x5a\xaa\x21\xd7\x4f\x36\x8b\xd1\x7f\x31\x2d\xc1\x10\xc8\x17\x51\xef\x7f\xe2\x42\xf9\xd7\x64\x74\xb5\x4a\x29\x53\xeb\x2a\xa6\x3b\x1f\x7d\xd5\xbe\x14\x38\xf2\xc7\xfe\x42\x15\x6a\xf6\x32\x4a\x18\x67\xe4\xdd\xa2\x33\xc5\xf9\xac\x0f\x0a\x46\x1b\xb8\xb2\x33\x67\xaa\x7f\xc9\x33\xd4\xcc\xd8\x6c\xf6\x3b\x05\x86\xbf\x62\x51\x54\x13\x7b\x28\x43\x9d\x10\x79\xca\x09\xde\xfd\x32\x6c\x36\x50\x9e\xa1\xe8\x53\xf1\x19\x6a\x20\x33\xd4\xfb\x73\x61\x60\x9f\x26\x0c\xfe\x67\xf2\x6f\xbf\x87\x18\x91\x51\xf1\x5c\x09\x47\x6c\x4e\xa0\x70\x0f\x17\xa9\xd0\xcc\x08\x4b\xf2\x6e\x7f\x8d\x6c\x26\x5b\x21\xfc\xc1\x0a\x35\x9a\x11\xc2\xa2\xb3\x76\xfe\xb7\xca\xcb\x05\xac\xde\xd2\x80\xce\x86\x8c\x07\x61\x64\x86\x24\x3e\x11\x32\x10\x22\xe3\x22\x18\xeb\xfb\x0b\xab\xa2\x54\xdb\x32\xf8\x75\xfb\x42\x31\x46\x9f\xc5\xe2\x2c\x08\x5d\x64\xca\x2a\x90\x12\x87\xed\x16\xea\xd7\x51\xe1\xa4\xeb\x1a\x86\x21\xa0\xcf\xdd\xae\x8f\x90\xfb\xfc\x1a\x8f\x58\x48\x35\x82\x1a\xbb\xf9\xb2\xaf\x4e\xb9\x72\xf2\xdf\x49\xdf\x43\x46\xa9\x5f\x6e\xee\x3b\x2d\xad\x13\x1e\x09\x9e\x38\x5e\x9a\xda\xd2\x6a\xf5\x58\x03\x1e\x47\x40\x94\x85\x79\xb3\xcf\xb1\x66\xb3\x2b\x63\xcc\xb8\x13\x0f\xba\x29\xbd\xdd\xc2\xd3\x10\x53\xfb\x68\xd0\xbe\xdc\x40\x0b\x07\x23\xfa\xb6\x58\x50\x36\xfb\x5c\x5a\x1d\xde\x19\x25\xb7\xef\x25\x93\x30\x1d\xd8\xd3\x49\xaa\xf9\x1f\x33\xdb\x97\x67\xc2\xe2\x31\x25\xb6\xd6\x91\x23\x2a\xe9\x27\x78\xc5\xaf\xd0\x5c\xa1\xad\x57\xe8\x7c\xb2\x72\x55\xea\xad\x8d\xce\xcc\xdd\x33\xce\x03\x4b\x4f\x7c\xaa\x4e\xe7\x62\x7c\xd8\x73\x8e\x96\x6b\xc7\x91\x9c\xec\xab\xef\x9d\x0d\xb7\xb0\x8c\x39\x70\x45\xf5\xee\xab\xa7\xab\x3b\x7f\x35\xa8\x98\xf2\x08\x5b\x6c\xeb\x4a\x0d\x8e\x18\x07\xa5\x49\x8e\x29\x6f\x9a\x33\xda\x52\x9c\x8b\x03\x6c\x16\xa4\x9c\x78\x45\xd3\x81\x92\xa1\x95\xce\xd8\xb5\xd5\x50\xcf\x31\xbb\x7c\xa1\xca\x83\x73\x29\x39\x01\x53\xd6\xdf\x9f\x0e\x8f\xc7\x32\xd7\x56\x78\xc3\xb7\xaa\x8c\x2b\x8f\x13\x1c\x97\xe8\xf6\xed\x9c\xea\xba\x6d\xc2\x67\x5f\x7d\x6f\x96\x4a\xb5\x39\x57\x61\x4a\xf1\x06\xbb\xc1\x3d\xe0\xcf\x1f\x16\x06\xf2\x97\x15\x9f\xb3\x57\x18\x5c\x3f\xae\x62\x8b\x47\xc8\xdd\x5c\xb6\xc5\x40\x07\x87\x5b\x9f\xcd\x23\x95\x08\x21\xdc\xee\xbe\xa9\xb4\x3f\x3e\xb9\xc2\x94\xa2\xfc\xb9\xaa\xa6\x51\x23\xae\x59\x44\x6b\xe1\x4b\x75\x5b\xd5\xce\x24\xeb\x9b\x0c\xa4\x5e\x9e\xb4\xe5\xff\x98\xb2\xb8\x70\xae\x23\x4e\x48\xbc\xb7\xaa\x1d\x07\xda\xb9\x4e\x38\xe5\x77\x8a\x5c\x61\xd9\xe0\x1e\xeb\x63\xf3\x15\x9a\x4d\x5e\x5e\x57\xcd\xb2\x1c\x3b\xe7\x18\x64\x04\xe4\x6c\x5e\x4e\x93\x72\x03\xdf\x1c\xba\xe0\x9a\xad\x39\xf4\x95\xaf\x7d\xab\x2d\x57\xf6\x8c\xda\x3d\x57\x4d\xdf\x21\x62\xd2\x01\xe6\xaf\xaa\xaa\x70\x3c\xfd\x3d\x76\x78\x89\x88\x73\xf2\xfd\x31\x0b\x09\xcf\xee\x43\x4f\xfe\xbc\x5f\xcc\x4c\x73\xcc\x44\x20\x3c\xd0\x6d\x84\x62\xb9\xa9\xb0\x79\xa8\xac\xc0\xa5\xff\xfb\xa3\xd9\x54\x35\xee\x5f\xa0\x5c\xff\xca\x69\xae\xf8\x3a\x88\x1b\x47\x11\xd9\xbf\x83\x91\xc2\xc5\x00\x0e\x84\xf6\x39\x18\xec\x1b\x0d\x24\x94\x89\xb8\x5e\x3d\x3c\x3e\xdc\x5d\xaf\xee\x6d\x95\xcb\xed\x7a\xed\x91\x49\x82\x85\x9a\x7c\xcd\xdb\xbb\x87\xfd\xd3\xf7\xdf\x0f\x4f\xeb\xdd\xfa\xe9\xc7\xfa\x70\xbb\xff\x7d\xe8\x82\xe0\x93\xe2\x23\x28\xee\x87\xb3\x77\x3e\x6b\x87\x90\x96\x60\x69\x4a\xd2\xd3\x5f\x6f\x26\x39\x03\xc1\x38\xf2\x61\x1b\x27\x6b\x73\x32\x85\x45\xa8\x40\x5a\x69\xb8\x5f\x24\x2d\xdf\x6f\x83\xe1\x10\x0d\x18\xfe\x77\xd9\x30\x10\xa1\x0e\x69\xac\x14\x14\x8a\x68\xed\x3a\xf3\xe0\x83\xae\xc6\x2a\x42\x3c\x3d\x7e\x7f\xb8\x21\xa8\xa5\x7f\xd4\x48\x0b\x3a\x4f\xa0\x69\x3a\x5f\xbe\xbd\x90\x59\xf4\xfd\x4c\xac\xc8\x46\xbf\x9a\xbc\x69\x0c\x8e\x5e\xdc\xb3\x91\x91\x5e\xfc\x32\x43\x82\xbf\x44\x33\x1d\xb8\x92\x8c\xeb\xaa\x54\x78\x5a\xcc\x80\x4e\x07\x7c\xba\x43\x0a\xca\x13\xb8\x94\x15\xc2\xd1\x52\xf4\x4d\x7f\x26\x89\x65\x64\xd9\xc0\xf1\x2d\xaf\xce\xcd\x2c\x17\x21\x12\xad\xa9\x94\x6c\xa4\x60\x64\xf5\x13\xdf\xb0\xf3\x76\x6c\x18\xbf\x59\x11\x37\xc2\x90\x81\x18\x67\x19\x46\xcf\x3a\x7b\x3a\xc3\x13\xbb\x9b\x75\x46\xc0\xb8\xb0\x91\x8b\x34\xd0\x94\x8c\x39\x55\x45\xae\xde\xaf\xa1\xd4\xef\xd3\x94\x8c\x48\x45\x40\xba\x8f\x37\x00\x13\x67\xfe\x3c\x26\x5a\x9b\xbe\x6b\xaa\xb4\x48\x46\x4c\x06\x16\x6b\x4a\x1b\x91\xeb\x91\x65\x01\x61\xaa\xb1\x7d\xd9\x57\x93\x2f\xc8\xc3\x8c\xcc\x55\x24\x65\xcb\x52\xbd\xdb\x8a\xa6\x55\x51\xb8\x53\x7c\x24\xac\xc6\x05\x8f\x33\x2f\x19\x48\x08\xa5\x8f\xcc\x25\xc1\x41\x51\xe6\xf8\xec\x48\xa0\xe6\xa1\x5e\xc1\xa5\x60\xce\xca\xf8\x86\xef\x8b\x59\x6d\x21\x82\x94\xc7\x3e\x20\xb5\x2a\x26\x69\x37\x01\x2c\x34\x7d\x44\xce\x98\x02\x2d\xb5\xd6\xcc\x63\x13\x32\xb4\x40\xb9\xd3\x88\x49\x92\x0b\x19\xa7\xe4\x13\xea\xfc\x2d\x1f\x6d\xc1\x42\xa5\xcc\x31\x2d\xb5\x93\xd8\x77\xbf\x0e\x54\x9a\xd1\x1e\x44\x68\xfe\xe3\xa9\x7d\xbf\x1e\x82\x44\x42\x99\x84\x1c\x59\x97\x04\xda\x9d\x8f\xdb\x02\xfa\x56\x6d\x6c\xa1\xf6\x0e\x0c\x3e\xb8\xfc\xd6\xec\x61\x31\xb6\x80\x2c\x57\xd2\xe1\xa6\xec\x08\xf2\x3f\x19\x1e\x04\x8b\x47\x96\xa8\xaa\x23\x5e\x41\x5b\x54\x3d\x24\x42\x18\xad\x28\x88\x78\x53\x6d\xce\x4d\xae\xb6\x97\x3c\x21\x1c\x58\x67\x27\x12\xc4\x1a\x5a\xf5\x12\x1f\x72\x55\x35\xd6\x5f\x9d\x43\x30\x81\xc9\x8c\xd6\xff\x49\x7d\x90\x98\x86\x90\xd9\x8a\x2e\x8a\xcc\xaf\xaf\xf7\x63\x4f\x12\x42\xa1\xa8\x38\xb3\x3b\x46\x9b\x9e\xdf\x6c\x3a\x25\x20\x44\x0b\x99\xa3\x2a\xc6\xdd\xe1\xf6\xf1\xe9\xb0\x7d\x5a\xef\x56\xf7\x7e\xb7\x82\x28\xcc\x62\x27\xc8\xfd\xfc\x51\x61\x12\x24\x92\x11\x5e\x89\xe2\x11\x5f\x11\x48\x42\x65\xf2\x15\x21\x31\x81\xcd\x45\x38\x63\xf2\xa0\xa1\x3a\x8c\x85\x23\x5c\xbf\x34\x44\x61\x71\xac\xab\xd3\xe9\xba\xb3\x35\xc6\x31\x12\x48\x55\x4a\xc9\x6f\x47\x71\x53\x23\x12\x32\x6a\x94\x02\x8c\x83\xff\x39\x2f\xc8\xd1\x3a\x0e\x55\x0e\x59\xa0\xa9\x4c\xb4\x01\x83\x9b\xce\xb0\xce\xdf\x3e\x18\xde\x8c\x69\x8b\x48\xc6\x52\x6f\x3a\x97\xe1\x62\xe5\x5d\x10\xea\x2f\x1e\xdc\x90\x85\x48\xf1\x71\x2c\x55\xa5\x87\x42\xf3\xae\x93\x98\x41\x85\x20\xcb\xe4\xb0\x00\xed\x2a\xf3\x9f\x22\x93\x3c\x70\x79\xe8\x6f\x79\xdb\xbe\x5f\x57\xf5\xa2\x50\x19\x87\x0c\x19\x29\x99\xb8\x50\x3b\x0b\x36\x7b\x6f\x51\x03\x8f\x42\x42\x33\xbc\xe5\x55\x01\xe3\x7d\x09\xb8\x48\xbc\x84\xa9\x63\xb5\x1e\x22\xc3\xc0\xa5\x65\x0b\xfa\xe7\xfe\x5b\xe7\x06\xfa\xe2\x62\x0e\x22\x80\xc4\x06\x19\x5c\x79\x49\x75\x3a\xb0\xe8\x70\x83\x6a\x44\xb1\xc0\x41\x20\x27\x12\x4d\xe2\xd8\xbf\xb2\xe9\xe1\xeb\xea\x78\x8b\x38\x21\xcd\xef\x3a\x22\x01\x8b\x88\xce\xb9\xc7\x41\x02\x04\xdc\xfe\xd9\xc6\x0b\x7b\x5e\x28\x0e\x10\xc5\xb2\x17\x6f\x48\x0f\xd6\x55\xfe\x02\xcd\xf7\x06\x9e\x31\x0c\x82\x80\x42\xd4\xfd\xf3\x4a\xb0\x5a\x0f\x84\x78\x9b\x64\xae\x40\x1a\x8b\xcf\x3e\xc8\xb3\x26\x6d\x14\xbd\x2a\xf5\xa3\x31\xb9\x82\xc2\x12\x2f\x5e\x02\x14\x41\x1a\x49\x58\x47\x93\x97\x33\x7d\x0c\x0e\x8a\x09\x8a\xd4\x7c\xc1\x5f\x5b\x78\xdf\x63\xd3\x86\x93\x11\xd7\x59\x4a\xa9\xc7\x1b\xbc\xca\xa7\x0d\x26\x49\x6c\xb5\x3b\xda\x62\xfc\xfe\x19\x91\x85\x04\xdf\xda\x3e\xad\x6d\x6c\x8f\x05\x41\x70\xe8\xcb\xa0\x39\x20\xb7\xb5\x02\x25\xfe\x24\xce\xa5\xff\x53\xc0\x13\x4c\x12\x58\x7d\xd7\x6e\x63\x1a\x15\xa4\x80\x49\x23\x82\x4a\xc8\x56\x3d\x41\xde\x13\x16\x70\x30\xda\x0a\x48\x99\xbc\x1e\xd5\xb3\x4f\xbc\x01\x19\xc4\x96\x8a\xb6\x3b\x2f\xfe\x2e\x4b\x8d\xbf\x54\xc9\xd0\xd5\xbb\x7d\x39\x3d\x77\xe7\xd6\x78\xb6\x48\x16\x1b\x2f\xe6\x76\x6d\x79\x18\xa7\x4b\x41\xb2\x24\x90\xda\x8b\x2d\x80\x6a\x2d\x84\x6a\x54\x09\x22\x59\x26\x69\xc0\x9a\xf3\x09\x6b\x45\x45\x4a\x2f\xd0\xbc\x8c\xc8\x9b\xba\x3e\x8a\xd4\x76\xaf\x57\x0f\xd7\xeb\xfb\x7b\x62\xf2\x3d\xdc\xae\xfd\x2e\x29\xc3\xd0\xaa\x78\xb9\x0c\x38\xcd\xfc\x4f\xb1\xf1\x32\xcc\x42\x32\x86\x3a\x97\xea\xf6\x5c\x3e\xe7\x72\x54\xb3\xf9\x21\x3c\x4d\x86\xc2\xc2\x96\x1f\xb7\xeb\x27\xfb\x14\x5f\x1f\xef\x6f\xfa\x54\x9c\x0c\x05\x0b\x12\x5b\xe9\xae\x70\xc4\x10\x36\xfb\xf5\x04\x12\xca\x55\xd9\xe7\xbd\xc1\x5f\x2d\xd6\xf3\x74\x92\x3b\x48\x64\x8a\x56\x91\xe1\x4c\x03\xf8\xba\xaf\x89\x8a\xf3\x7d\xe1\x30\x95\x19\x0b\x32\x61\x03\xb1\x96\xd7\xe7\x4b\x0d\xa5\x5f\x64\x8b\x47\x87\xe4\x51\x44\x0e\x1a\x85\x31\xf2\xf2\xd9\x99\x66\x77\xa5\xa9\x06\x03\x66\x7e\x0d\xa4\x74\x32\x92\xef\xef\xca\xa7\xe6\x48\xfe\xd9\x15\x2a\xe1\x6a\xb4\xb5\x75\xb7\x7f\xa0\xc0\x6d\xd9\x9b\x37\x52\x08\x45\x4c\x21\xa7\x3a\x57\x54\xba\xe1\x4a\xef\x5c\x33\x84\xb1\x09\x7d\xe5\xa5\x13\x8b\x9c\x32\xb2\xcc\x7e\x54\x26\x96\xe8\xa3\x8f\xae\xde\x63\xf9\xdc\xd7\x83\x4b\x29\x90\x76\x9b\x32\x57\xf8\x7c\x7e\x8f\xfb\xbf\x3b\x24\xa8\xaa\x8e\xc7\x73\x99\xb7\xef\x5f\x09\x9d\xe4\x9b\x55\x98\xc4\x7d\x7d\x0d\xde\xa9\x6a\x44\x00\xf5\xf7\x96\x94\x4a\xe3\x34\x18\x48\xb7\x17\x09\xb7\xb9\x54\x10\x91\x6b\xfc\x80\xe7\x1a\x0a\x2f\x5d\xec\x1b\x75\x44\x0c\xb7\xe0\x52\x32\x95\x7a\x25\xc2\x92\xd9\x3d\x74\x26\xa2\x64\x22\x5d\x39\x9b\x30\x18\xc4\x54\x0a\xba\xd9\xdf\x7e\x30\x88\xa8\x81\xb4\x32\x47\xb1\xdd\x4d\x5e\x7e\x26\x24\x32\xbf\x01\xda\xd8\xc9\x50\x33\xbe\x2a\xab\xf6\xc5\xae\xcf\x8f\xb0\xe1\xee\x5a\x13\xca\x24\x1a\x61\xa3\x96\x67\x97\x0a\x98\xa0\x00\xf9\xfa\x98\x5b\x41\xad\xf7\x3b\x3d\x57\x20\xe0\x2a\x8c\x51\x48\x0f\x61\xde\x51\x68\xf9\x26\x87\x62\x41\xa1\x8b\xab\x50\xf1\xd8\x63\x28\xbe\x97\xb9\xaa\xea\x3e\xb4\xac\xa2\x0c\x2c\x56\xe9\x88\xa5\x1e\x9f\xd1\x2a\xe2\x90\xb9\xc4\x00\x85\xd5\xa9\xf6\x67\xf9\x91\x23\x69\x65\xc5\xcd\xb9\x3d\xd7\x48\xd1\x8d\x31\xbf\x29\x57\x91\x36\x99\x23\x7d\xb0\x04\xc8\x5b\xc7\xa1\xbb\x0c\x71\x56\x11\x86\x38\x14\x90\x13\xbe\x66\x16\x7b\x5f\xf2\xa3\x54\x84\x19\xd8\xac\x18\xe9\x14\x62\xe7\xcc\x92\x57\x48\xd0\xd8\xdb\xaa\x7e\x3c\x39\x2c\xc1\xe2\x46\xa6\x22\x13\x12\x0e\xec\xf4\xd6\x4e\x02\xf0\x2a\x89\x12\x4f\x89\xbf\xad\xaa\xb1\xec\x2b\x57\x09\xda\x6c\x8c\xf2\x78\x40\x57\x35\x34\xe4\xd0\x54\x1a\x2a\x7a\x2e\xeb\xdd\xdd\x0c\x72\xfb\x8b\x06\x97\x4a\x79\x92\xb9\x5f\xbb\xcf\x4b\xfc\x7e\xb2\xfe\xe0\xe1\x98\xcf\xd9\x8f\xb8\x4a\x75\x4c\x99\x03\xe3\xb0\x31\x24\x6f\xe7\x7f\x37\x0b\x80\x5c\x51\x12\x62\xee\x81\x2c\xbb\xce\x02\x25\x78\xf5\xf2\x28\x64\x89\xcd\xbe\x38\x1e\x40\xab\x74\xf6\x99\x0a\x2a\x57\x3c\x32\x99\x4d\xea\x48\xbb\x89\x1d\xf2\xb2\x33\x9c\x66\x13\x91\x2b\x0d\x59\x9f\x8f\xfa\xcd\xef\x64\xb3\x57\x12\xac\x97\xbf\xbc\xb6\xb5\x8f\xdd\x38\xf9\x77\x12\x46\xd0\xe1\xe9\xf8\x87\xd7\x50\x97\x84\x33\x5b\x94\x31\xfb\x7c\xef\x52\x20\x42\x8a\xff\x94\x08\x35\x36\xed\xb7\xb2\xfa\x59\x12\xb0\xc9\xff\x18\x40\x16\x3a\x68\xed\xfd\xfd\x8f\x03\xea\xbc\x3d\xb0\xb0\x6f\x55\x8c\x0f\x05\xbc\x84\x86\xfc\xb4\x9a\x51\xc9\xd0\x10\xec\xe8\x66\xfd\xd0\x8e\x0c\x34\xa5\x18\x27\x9e\x57\x79\xea\x3c\x64\x02\xe8\x7e\xb0\xd2\x90\xc5\x54\x79\x4c\xd9\xf5\xaa\x85\xe2\x75\xac\x61\xcf\x15\x46\x31\xb3\xcc\x56\xdd\x8c\xd9\xc2\xfb\xc8\x36\x51\x86\x09\x14\xa3\xfa\xd7\x4f\x2a\x2a\x94\x51\x8a\x4c\x83\xa7\xf5\xcd\xcd\xf5\xf5\xa3\x67\x99\xe6\xca\x18\x15\xb8\x6d\xe1\xe0\xcb\x6d\xa6\x9f\x59\x07\x2c\xa4\x98\x2c\x51\xf3\xdc\xf9\x67\xd3\x01\xc4\x9e\xff\xee\xa6\x7d\xd9\x4f\xe2\x32\xae\x0b\xe3\x4c\xf0\x41\x3d\x62\x57\xc2\xa9\x79\xa9\xda\x25\x39\x83\xae\xb3\x05\xb7\x0f\xd2\xeb\x8d\xc3\xc7\xf5\xf6\xa4\x66\x02\xc9\xe1\xdc\xe4\x65\xdb\x53\x1a\xfd\x75\xd5\xab\x0e\x43\x90\xc1\x88\xd2\x7b\x93\x97\xbf\x61\xbe\x40\x36\xc7\x75\x14\x0b\x3e\x58\x3f\x9d\x2f\x35\x26\x22\xbf\xad\xea\x41\xa0\x95\xeb\x28\x8d\x28\xaa\x95\x17\x45\xfe\xdf\x73\xae\x97\xdf\x2c\xe2\x9a\xbe\xe2\x0e\x4b\x7c\x86\xe2\xad\xb9\xae\x8a\xea\x28\x73\xf0\xb7\x89\x13\x5b\xf1\x44\xa9\x98\x95\x52\x63\xcb\x70\x8c\x0d\xd7\x71\xaa\x22\xe3\xfc\x9f\xdd\xa9\xce\x5b\xf4\x0f\xb4\xb8\x22\x74\x8c\x16\x9a\x6b\xb0\x97\xf5\x2a\xd0\xd2\xcb\x58\x0a\xee\x77\x24\xc1\xa9\xe3\xbc\x56\x4d\x27\x09\x58\xac\xda\xd3\xf5\xf5\x5f\xa6\xb0\x75\x82\x8c\x0c\xf1\x73\x49\x82\x12\x76\x2a\xf6\xf9\xca\xe9\x9d\xd3\xc8\xea\xf1\xeb\x6a\x6c\x82\x5e\x66\x21\x74\x1a\x29\x72\x1e\x57\x9b\xdb\x49\x94\x53\xa7\x49\x98\xf4\x4e\x1d\x95\xb1\x50\xe8\x67\xfd\x5f\xfa\xa7\xef\x65\x74\x98\x78\x72\x2a\x35\x0a\x2d\xfb\x63\x40\x67\xb1\x21\x5b\xe7\xfe\xfd\xfa\x6e\x7e\x20\x9d\x3f\xd0\x51\xe0\x3a\x53\x56\x88\xee\xda\xed\x58\xcf\xcf\xcd\x2e\x2f\x15\x49\xe0\x4c\xea\x10\x5d\x7f\x9e\xb2\xc4\xe5\x01\xd6\x6f\xf8\x01\x28\x73\xb4\x15\x2f\x91\x8b\x68\x8e\x2c\x93\x1e\xf6\x4e\x31\xea\xbc\x99\x9c\x69\x9a\x1b\xf4\xa5\x3b\xdf\x4b\xda\xf4\x46\x43\x29\x62\x8b\x73\x27\x21\x5f\x83\xa5\xbe\xaa\xaa\xc6\x56\xd9\x9c\x8a\x7c\x6e\x61\x68\x21\x03\x62\xb7\x69\x11\x8e\xdd\x01\x79\x57\x5a\xd0\x8a\x6f\x56\x11\x65\x24\x4b\xfc\x79\x6d\x11\x2d\x9f\x51\x86\xcd\xfe\xdc\xbf\x12\x44\xb6\x0a\xa4\x7b\xe0\xce\xcf\x61\xb7\xe1\x6d\xf4\x39\xda\x51\x43\x26\x81\x0d\xf1\x84\x85\xc8\x98\x96\x0a\x69\xb8\xbf\xd0\x52\x7f\xcd\xcb\xe7\x87\xbe\x80\x46\x4b\xa3\xc5\x60\x30\xf6\x6a\xcc\x7f\x2b\xf3\xaf\x55\x2a\x29\xab\xe8\x8d\xc5\x7a\x9c\x64\x5b\xdc\x76\xb5\xca\x02\x1f\x55\xfd\x03\xbb\x53\xfb\x7a\x14\x6d\xe8\x5a\x29\xc3\x67\x10\x6d\xb5\x12\x55\x5c\x8f\x2c\x0d\xad\x81\x89\xc8\x5b\xe3\xf5\xb8\x5e\x5c\x9b\xc0\xa0\xc3\x21\x58\x1b\x6c\x66\x76\x68\xa3\x23\x10\xbd\x6e\xdb\x88\x6d\x7f\x16\x92\xc5\x20\x8a\xc8\x3e\xa9\x4e\x4e\x0d\x1a\x8a\xa9\x8b\x8e\x61\x0c\x74\x7a\xec\x56\xf7\x6b\x76\x78\x5a\xed\xd7\x7d\x8b\x36\x01\x65\x6f\x2a\xd3\x1e\x94\xa7\x89\xe6\x18\x2b\x20\x0b\xd1\xc1\xb9\x63\x6c\x2f\x51\x57\xd3\xa7\x88\x75\x46\xf5\xe3\x5b\x2c\xb7\x50\x8c\xd7\x3b\x26\x9a\x13\x29\xc0\x57\x28\x46\xbb\xfe\xe4\x6d\x31\x65\x82\x72\xad\x37\x8f\x8f\x9b\xd1\xf9\x86\x69\xa2\x09\x04\x26\x49\xba\xbf\xe7\x56\x6b\xee\x8e\x27\x8b\xaf\x1d\xc7\x64\x30\x0b\x12\x92\x26\x22\x02\xd9\xca\x43\x93\x27\x3e\x16\x66\x59\x9c\x59\xab\xa7\x40\x68\x50\xaf\x26\x7d\xfb\x5e\x98\xd0\x2e\x71\xbf\x7a\xb8\x39\xac\x6e\x6e\x9e\xd6\x3b\x0f\xf8\x45\x1e\x48\x82\x15\x7c\x6f\xb0\xfe\x42\x4c\x08\x7f\x62\xdf\x16\x25\xa9\xea\x6d\xaa\x2b\x6c\x97\x08\x04\x39\xf2\xd8\xd6\x66\x3d\xc3\x11\xbf\xe4\xa6\xdd\x61\x39\x8d\x57\x21\xcf\x2c\x81\xa5\xb3\xe0\x9a\x43\x2f\x7c\x41\xd4\x9b\x6a\x56\xee\x82\x9c\xf7\xf9\xcc\x0d\x45\xd0\xa6\xe3\xcb\x45\x40\xe5\x58\x37\x79\xd3\xed\x7a\xb3\x29\xc4\x25\x27\x28\x9c\x86\x16\x76\xd5\xb9\x56\xe8\xd9\x80\xbe\xd4\xd5\xf9\xb4\x54\x37\xed\xaf\x54\x76\x6a\x3d\xab\xd3\x71\x76\x53\x11\x30\x4a\x0a\x1c\xbb\x81\xbd\xb2\xdb\xe1\xbc\x4b\x92\x92\xbb\x53\x56\xc4\xb8\x94\x0f\x94\xf0\x1c\x45\x26\x68\xff\x6f\x66\x8b\x0a\x85\x61\x24\x4f\xef\xca\xd5\xae\x70\x36\x72\xc2\x70\x22\x85\x87\xa6\xc9\x9f\xcb\xa7\xca\x6a\x1a\x90\x4e\xc3\x14\xab\xff\x99\x58\x25\x47\xc8\xb8\x87\x28\xde\xa0\x81\x73\x61\x93\xb0\x30\x93\x7b\xe3\x28\xb9\x08\x7a\x11\xdc\x75\x5d\x57\x7d\xfc\x14\x25\xd8\x71\xcd\x55\x45\x2e\xf4\xb9\x5f\x60\x2a\x00\x4b\x93\xaa\xa0\x2c\x51\xef\xf2\xe2\x0d\xeb\x6b\x38\xf5\x97\x2a\x57\x86\xa0\x2c\x57\xe8\xba\xc8\x9f\xc7\x31\xfe\xa9\xc5\x8f\x2a\xe2\x54\x2f\xb1\x79\xba\xee\x6f\x90\x5a\xd2\x88\x2b\xec\xc3\x12\xa8\x38\x83\xc0\x23\x7c\x9d\xa9\x3e\x9b\x28\x4a\xa4\xd4\xe5\xcb\xd3\x7a\xdd\xaf\x42\x05\x61\x98\x4d\x25\xf0\x97\xec\xeb\xbe\xb7\xc4\xb4\xf7\xaf\xfa\xf4\xc4\xee\x84\xf3\x0a\x40\xd4\x21\xa3\x30\x7c\x91\x97\xaf\xb7\x79\xb7\x35\x4c\xbc\xcb\xc9\x21\x8a\x3a\x8e\xc8\xa6\x21\x27\xbb\x17\x6e\xf6\xf1\x1a\x8b\x23\xf5\x4f\xac\xbb\x0d\x74\x54\xf4\xf3\xbd\x6c\xaa\x62\x8a\xe3\x42\x2d\x18\xd9\xff\x9a\x74\x5d\xce\x83\x08\x2f\x47\x4c\x03\x0a\x6e\x58\xbe\x9d\x6d\x81\xfa\xd9\x53\xa5\xcc\xde\x00\x8d\x20\x52\x86\x6e\xb9\x1f\xac\x68\x36\x2d\x50\x79\x9e\x54\x19\x4d\x2f\x32\xc0\xb4\x9c\xb1\x93\xdf\x5d\x3f\x5a\xe2\x3e\x27\x4e\xc6\x4d\xc0\xac\x72\x4a\x83\xa4\xe9\xf1\xa5\x46\x2c\x87\xdc\x2c\xf7\xbd\x78\x98\xf2\x41\x8e\xd3\x61\xbe\x27\x5f\xc4\x04\xdc\x84\x38\xb8\xb0\xdd\x41\x34\x7d\x0d\xc3\xa2\x94\x38\x07\x56\xfb\xfd\xd3\xe1\x7e\xbd\xda\xad\xae\xfa\x3c\x91\x61\x60\x59\xc9\x41\x53\x15\xce\xaa\xf4\x9b\xe6\xbb\x8d\x86\x5e\xc4\x43\x4c\xc8\x2c\x90\xfe\x50\xd5\xf9\x73\x5e\x42\x71\x75\x7e\xdf\x0e\x54\xdf\xdc\x84\xa1\xf2\xaa\x07\xab\xb3\xce\x7b\x29\xee\x99\x29\x63\xa2\x20\x51\xe9\x88\xcf\xe4\x66\x38\x42\x4d\x92\xa4\xa1\x85\x54\x17\x8e\x0f\xf2\x47\x5e\x9f\x67\x13\xda\x24\x89\x26\x4c\x62\xf3\xeb\xe4\xc2\x31\xbe\x41\x58\x59\xf6\x06\x5b\xca\x6d\x35\x5b\xac\x37\x55\xd9\xbe\xcc\x1e\x21\xc1\x80\xa2\x1f\xd7\x70\x3c\x51\x89\x6a\x0f\x54\x32\x09\x5a\x11\x6d\xe2\x93\xf7\x1f\x92\x00\xb9\xbe\x47\x16\x1b\x89\x03\x2d\x6f\x73\x46\xed\xa5\x8d\xbd\x26\x12\x37\x59\x9a\x65\xc2\xab\xf7\xd2\xea\xb2\xba\x7a\xf4\x99\xff\x15\xfe\x7b\x60\xfe\xfa\x57\xfc\xef\x51\xe0\x98\xff\x7b\x94\x40\x4f\xff\xdd\x8f\x7e\x26\x18\x19\x78\x37\x90\x17\xef\xab\x52\x7b\xc7\x0d\xe4\xbc\x74\xcb\x64\x80\xd8\x3f\x5f\x5f\x23\xd9\x3f\x98\x16\xca\x11\xcd\x5d\xe5\x0e\xe4\x3b\x43\xfe\x19\xd0\x99\xb4\xea\x08\x70\x3c\x8d\xcf\x7d\x03\xc6\x50\x00\x30\x6f\x46\xf5\xcc\xd3\xbd\xc2\x48\x65\xb1\x6e\x3f\x31\xdf\x57\x2e\x33\xeb\xaf\x57\x91\x92\x8e\xf4\x6a\x4e\xe0\xec\x7b\x24\xa1\x8c\x86\xba\xc2\x9b\x5c\xe1\x53\x55\x7c\x10\x28\x36\x0a\x22\x4a\x88\x6e\xb0\x3c\x07\xd1\x6c\x20\xb4\xb0\xa9\x15\x07\xb9\xfb\x24\xac\x6d\xb4\xd6\x84\xdd\xdb\xa0\x5e\xdd\xd1\xb1\xf5\xd7\x2e\xac\xc1\x50\x58\x0e\x32\x0a\x05\x2c\x49\x6a\x70\x63\x92\x18\x07\x19\x81\x27\xec\x6e\xa0\x5a\xd4\x3f\xba\xd3\x67\xf2\xea\x22\x08\xe2\x88\x00\x75\xbe\x82\xe2\x06\xdf\x46\x71\xde\x45\xd1\x04\x11\x04\xdc\x0a\x65\x82\xd6\x56\xcf\x7d\x9f\x17\xbe\x04\x66\x74\xac\x8b\x80\x05\x89\x19\x3b\xf3\xeb\xbb\x6d\x18\x5c\xda\x6d\x22\x60\x3c\x09\x7b\x11\xd5\xc5\xf0\xa1\x08\xa2\xd0\x80\x47\x09\xe2\xd7\xaa\x6e\xf0\xd2\x6f\x9c\x9f\xc9\x73\x4b\x43\x04\x51\x66\xd3\xf3\xdd\x1e\x06\x8d\xdd\x35\xee\xf4\xec\x71\x22\xcd\xa9\x94\x5d\x41\xb9\x43\x4f\x4b\x29\x82\x58\xd8\xf3\xab\x5b\xe6\xe7\xd3\xce\xd6\x7a\xf7\x8d\x3a\xe2\x8e\x2a\xea\x09\xd5\xe4\x93\x88\x20\x36\x29\x35\x0e\x05\xe7\x64\xee\x35\xe3\xba\x21\x11\x24\x51\x66\x81\xa6\x70\xf4\x65\x4c\xfc\x5f\x2c\x4b\xff\xbd\xf0\x1e\x09\xcf\x68\xa2\xb9\x30\xd5\xc9\x34\x5f\xa0\xc5\x9f\x30\x49\x7e\x89\x20\x65\x48\x8b\xa7\xcf\xa9\xe3\xc0\xef\x28\x82\x34\x0a\x9c\xe0\x04\x91\x06\xec\xf3\x1e\x3e\xef\x3b\x70\x4b\x18\x47\x49\x91\x53\xae\xae\xde\x1f\x8d\x99\xeb\xbd\x88\x80\x33\xcb\xab\x6f\x1d\x14\x7d\xdf\x59\xc4\x2e\x93\x31\x7e\x66\x6e\x42\x12\x14\x6c\x5f\xf2\x5a\x8f\x99\x44\x3c\x07\x92\x08\x84\x40\x0a\x27\x6d\x56\xbf\x1f\xbe\xef\x6e\x0e\xb7\xdf\x1f\x6e\xfa\x36\x0d\xe9\x80\xe1\xf6\x58\xbd\x4f\x7d\x45\x11\x08\x63\xf9\x58\x9e\xa1\xb9\xad\xea\xdb\xfb\x6f\xfd\xed\x20\xb0\x5a\xef\x14\x3f\xa8\x1d\x71\x75\x55\x50\x04\xfb\x50\x3a\x4a\x38\x55\xe9\x61\xb8\x24\x4b\xe9\xa4\xdf\xbf\xd4\x88\x54\xba\x49\x22\xa7\xbe\x15\x85\x75\x8f\xd6\xfb\x0b\x0a\xb6\xc9\xa0\xaa\x28\x92\xdc\x87\x24\x4e\x55\xdd\x43\xef\x1e\xeb\x7f\x62\x5d\x5d\xbd\x5b\x58\xc8\x18\xb8\xff\xb5\xcf\x36\xf6\x8b\x50\x81\x55\x9c\x29\x08\x39\x39\x58\xb6\x22\x50\xd2\x12\x69\xdb\x71\xda\x60\xf3\xb2\xad\x96\x01\xb5\x22\xd0\x71\xaf\x1b\x7e\x5f\x75\xe7\xfe\x63\x89\x4b\xd4\x9a\x22\xd0\xda\xf2\x04\x18\xf7\xe7\x69\x33\x0b\x02\x9e\xd8\x5a\xda\x53\x73\xd7\x3c\x0d\xe2\xa7\x0e\x84\xee\xbb\x45\x8a\x4c\x88\x27\xfc\x0f\x41\xe2\x47\x74\xe9\x1f\x60\x73\xfd\x85\x3c\x0a\x9c\x15\x73\xed\x95\x59\x9d\x88\x4f\x1f\xe1\xe8\x7a\xa5\x64\x6d\x13\x34\xa4\xae\xde\x66\x20\x64\xc1\x98\xe6\x74\x1b\xc7\x48\xc1\x86\xfc\xb5\x60\xa1\x0c\x08\xd3\xff\xf5\x71\xbb\x1e\x9d\x40\x82\x45\xa1\xf5\x7a\x56\xdb\xdd\xd6\xff\x2d\x66\x86\x3b\xcb\xe3\x0a\xdb\x8b\xa2\x79\xc1\xe2\x24\xd1\x4e\xe1\x79\x9b\xa3\xc2\x55\xa9\xe9\x2b\x7e\xc6\xd2\xe9\x2f\xcd\x2c\x3b\xdf\xa1\xc6\xa6\xdb\xb2\xfb\x3f\x5b\xed\x42\x6b\x84\xae\x8a\x79\xa0\x76\xd1\x03\x11\x2c\xd6\x2c\x70\x06\xca\x31\x2f\xc7\xb4\x1c\xb3\x27\x4e\x32\x9e\xe0\x90\xb1\x6b\xf6\x95\x3f\xc9\xfd\x13\x24\x9c\x29\x57\x03\x39\x86\x39\xcc\x7e\x30\x51\x81\xa5\x40\xf2\xfc\x47\x9f\xe8\x6b\x76\xbd\x05\x15\x98\xbc\x61\x9d\x9b\xf7\xbf\x92\x75\xfe\x9f\xd1\xc7\x4e\x43\xa0\x5d\x87\x28\x99\xd7\x0e\x29\xd7\x3f\x6b\x1a\x67\x8e\xad\xf7\x17\x69\xae\x50\x0a\x60\x6c\xba\x09\x26\xc2\x28\xb2\x28\xbb\xbc\xfd\xad\xaa\x5f\x17\xc3\x40\xbe\x6f\x26\x42\x92\x0e\xa9\x88\x40\xf2\xb1\xbc\xc9\xdf\xae\xde\xbb\xf5\xea\xef\x06\xc6\xaa\x6c\xe8\xd7\xab\xab\xe9\x5a\x65\x60\x2c\x19\xa6\xa7\xab\x70\xe5\x83\xfe\xec\x60\x92\x31\x8a\x7a\x94\x55\x9b\x9b\xf7\x83\x13\x96\x3f\xd4\xb4\x48\x66\x5f\x49\x26\x8c\x66\xe9\x75\x55\x76\x93\x63\x21\xfa\xe4\x3b\x4a\x24\xe7\x63\xff\x82\x37\x08\x7a\xf7\x92\x8f\x94\xf1\x04\x53\x52\x51\x6d\x49\xd3\x56\x27\xab\x0f\xd5\x4e\x1f\x4a\xeb\x98\xf5\x14\xe2\x8f\x6f\x58\xd7\xb9\xc6\xd9\xc3\x98\x20\xa2\x14\x1a\xfe\xf7\x0c\x85\x2d\x62\x6d\x16\xea\x1c\x45\x18\x44\x99\x15\x89\x7e\x39\xb7\x1f\x79\xce\x7d\x57\xad\xfa\xc1\x1a\xcd\x72\xdf\xac\xb9\x17\x99\xfb\xd6\xe3\xac\x45\x18\x98\xcc\x8a\xe8\xb6\xf0\xbc\xb4\xd3\x85\x2c\xb6\xe4\x91\xdd\xac\xac\x2c\xe4\x79\x1a\x02\x13\x21\x4b\x53\xda\x98\xdd\x01\x63\xb5\xdc\xe7\xc7\xcb\xe2\x60\x87\x2c\x05\xb2\xee\x2d\x69\x9b\x5e\xac\x6e\x72\x86\x75\xd7\xd9\xf8\x58\xf0\xe1\x58\x95\xb4\x46\x46\xd6\x53\xff\x8f\xef\x9e\x09\x92\xdd\x38\x51\x2e\x7f\x93\x97\x77\x24\x68\xe4\xdf\x9c\x09\x08\x63\xbf\x85\xfb\x1a\x8e\x51\xd2\x57\x84\xc4\x3b\x39\x5a\x90\x24\xd9\x66\x31\x78\xff\x58\x3a\xa7\x3e\x26\x97\x16\x61\x94\x59\x4e\xb7\xa7\xed\x9a\x5c\x4d\xd2\x36\xb8\x24\x5b\x13\x61\x12\x68\xe5\x68\xf6\xdd\x5e\xbc\xad\x71\x97\x3f\x97\x68\xf7\xc1\xbf\x59\x75\xe9\xef\x16\xc7\xe0\xee\x76\xb8\xb9\x3a\xe4\x17\xfb\x6d\x98\xc4\x92\x3e\x5e\x9d\x3f\xbf\xb4\xa1\x98\xb5\xa6\x89\x85\x1f\xc2\xe9\x74\x70\x65\x26\xfe\x41\xb3\x38\xe6\xe0\x65\x47\x3a\x6f\x9b\xb6\xb6\xc9\x02\x0e\x33\xa9\x08\xe0\x52\xe4\x8d\xe3\xde\x3a\xc8\x7c\x66\x35\x86\xc0\x92\x50\x7b\x16\xd8\x67\xbf\xbf\xb2\xc5\x8a\x34\x11\x82\x8e\xa8\xc2\xb5\x80\xc6\xf2\x2e\x1c\x0c\x4b\xba\x91\x39\xf8\x03\xd6\x75\x94\x61\xa8\xd2\x41\x25\xbb\x3a\x9f\x46\xfc\x2a\xd1\x94\xcd\x59\x84\x32\xce\xbc\x88\xca\xb6\x6a\x72\x1b\xda\x38\x97\x2d\x5b\xde\x25\x42\x15\x84\xe4\x39\x91\xd4\x4c\x33\x86\x9f\x88\x50\x09\xa6\x42\xcf\x2b\xd2\xcd\xaa\xbb\xa1\xf6\x64\xfa\xab\x4a\x26\x71\xec\xa8\xce\x46\x22\xcf\xf4\xb9\xeb\x4b\xd2\x30\x11\x22\x33\x14\xd2\x02\x27\x11\xe5\xac\xdd\x8b\x34\xc8\xf4\x61\x31\x13\xca\x06\xf3\x10\x8a\xce\xd2\x24\x9d\x94\x9f\x79\x4b\x34\xc1\xd3\x4f\x1e\x05\xb1\xad\x4c\xd6\xb6\x62\xa3\xb1\x73\x6f\xfa\x61\xa3\x00\x62\xda\xc0\xbc\x7d\x6c\x05\x8b\x66\x37\x02\xa5\x5d\xf0\xe0\xfa\xfa\xab\xcd\x17\x87\x99\x1b\xa4\x88\x71\x6d\xc5\x1d\x09\x8d\x49\x34\xa6\x4d\xdf\x06\x19\x7d\x63\xc7\xce\xe4\xf2\x20\x93\x77\x8a\xc2\x34\xa3\xc3\xfe\x0d\xf2\xc2\x67\x0e\x6f\x2b\xab\x4b\x45\xac\x2b\x23\xd3\xa8\xbf\x44\x05\x56\x4b\xb5\xb3\x82\x46\xb8\x05\x11\x85\xc6\x72\xf6\x92\x6d\xd9\xcd\x41\x9a\x5a\x8e\x3e\x7f\x35\x3b\x4b\xa2\x88\x71\xab\x98\xbf\xd9\x6c\x47\x67\x43\x14\x85\x8c\x72\x6e\x57\x97\x0e\xf7\xe7\xeb\x34\x8a\x99\x02\x36\xaa\x87\x59\x1d\xdb\x6d\x35\xff\xd9\x58\x26\x64\x91\x1c\xfa\xda\xe4\x79\x07\x13\x13\x92\xd3\x13\xfd\x4c\x43\x66\xa3\x6a\x0f\x11\x25\x51\x98\xba\x8a\x02\x4f\xe7\xd9\xcc\x02\x10\x22\x4a\x43\xe6\x61\xab\x57\x79\x51\x58\xc1\xcb\xe9\x98\x66\xa1\x21\xb8\x12\x81\x4a\xc6\x3c\x76\x22\xca\x4c\x9c\x7a\xa5\xad\xab\xc7\xd9\x75\x9c\x29\xb2\x03\x4f\x58\x9b\xaa\x3e\x3a\x1d\x83\x4b\xff\xf3\x72\xa8\xb8\x52\x94\xc5\xf6\xb1\xc5\x6d\x5d\x55\x66\x41\x5c\x5a\x44\x02\x58\x20\x07\x12\xb4\x4b\xfd\x62\x11\x41\x68\x35\xae\x5c\x01\xb3\xee\xe5\xaf\x44\x04\x5c\x51\x1d\x02\x9d\xe3\x9e\x04\xe3\x12\x78\x2e\x22\x15\x18\x8a\x41\xf6\x6b\x92\x42\xad\x8b\xeb\x37\x52\x10\x19\x17\x0a\xbc\x25\x54\xe7\xbb\x2a\x70\x84\xb2\x10\x91\xd2\x19\xb3\x85\x30\xcd\x4b\xcf\x8f\x2e\x22\x65\x62\x82\xae\x59\xdd\x94\x28\x28\x7b\x7a\x0c\x11\xe9\x38\x8c\x3d\xd7\xc8\xfd\x24\xf9\x24\x22\x9d\x31\x5a\x4a\x66\xf7\xdf\x7a\xfe\xe0\x1a\x90\x85\x3d\x0d\xfc\x5c\xc5\x51\x44\x28\x24\x8d\xdf\xe3\x96\xe0\x90\xdb\xc7\xc7\xfb\xc3\xea\xfe\xfe\xf1\xba\xef\xa0\x2c\x5a\xb0\xdb\x60\x1f\x8d\xb9\x86\xd2\xae\x98\x2b\x50\xaf\x96\x7b\x6f\xa5\xff\x73\x6e\xda\xee\xa6\x44\x56\xee\x2e\x8c\x03\x61\xa5\xef\xd7\xed\x8b\x2d\xcd\x73\x7f\x67\xa1\x86\x74\x82\x62\x98\xe1\x32\x16\x8d\xcc\x98\x41\xe0\x55\x22\xad\x30\xf4\xac\x9c\x4c\xc4\x4c\x67\x72\x60\x90\x1e\x58\x25\x7d\xfa\x7e\x31\x74\x12\x87\x81\x91\xcc\xb1\xc1\x13\x7f\x9f\xbf\x5d\xc8\x93\x2c\x18\x4a\x76\xe6\x7b\x68\x1c\x19\x0b\xd9\xf2\xef\x61\xa5\xb1\x27\x3c\x96\xae\x67\x1c\x03\x45\x0a\x5e\xa0\xd4\x45\xbf\x81\x5d\xdc\x30\xe6\x19\x99\x0f\xbb\xb6\x3a\x0d\x10\x0a\x11\xc7\x32\x96\xb6\x7c\x90\xf0\xe1\xe5\x14\x2a\x93\xc6\xe3\xd8\x47\x9c\xa4\xb6\x8a\x82\x3c\x77\x36\x61\xc9\x14\x71\x22\x80\x2a\x97\xe5\xf9\x9d\x05\x7f\x51\x21\x64\xab\x98\xfe\x9f\xfe\xeb\x7e\x2d\x4b\x42\x2b\x7c\xd4\xbc\xde\x56\xf5\x73\xfe\x86\x65\x37\x69\xc7\x27\x7d\xcc\x03\x88\x5d\xc8\x89\x3c\x0c\x5a\xbf\x84\x60\x23\x29\xab\xf1\xed\x78\x60\xd0\x3b\x2d\x9b\xbc\x6c\x6f\x11\x57\x72\xb6\x1d\xc4\x3c\xd1\x94\x08\xbd\xc1\x61\xa5\xda\x40\xe0\xb6\xae\xde\xf2\x05\xd1\x20\x7f\x21\xd8\xe3\xd3\xce\xc5\x9e\xc6\x75\x79\x2e\x72\x93\x78\x0d\xd8\xd5\x51\xe6\x73\xa8\xf2\xe4\x18\x8d\x05\x8b\x68\x1e\xd1\x21\x48\xdf\x75\xfa\xcb\x22\x34\xb4\xea\x07\x32\xdf\xdb\x6a\x3e\x83\x04\x4f\xa8\x72\xee\xbb\x53\x3f\xc5\x57\xcb\xb7\x7c\x77\x29\x83\x39\x7b\x54\x90\xc1\xc0\xd2\x3e\x11\x66\xf0\x38\x25\x11\xcb\x40\xd1\xd2\xba\x59\x0d\x5b\x63\x2c\x03\x4c\x5d\x39\xf6\xfa\xd7\x09\xeb\x1c\x17\xc8\x8c\x2d\x7f\x5a\x14\x7a\xf3\x3d\x56\x81\xb2\x72\x5d\x16\x58\xb0\x3e\x55\xbe\x72\x55\xc4\x0a\x21\xb6\x26\x13\xd4\x97\x14\x23\xfd\x2d\x74\xa0\x29\x71\xeb\xbf\xc1\x42\x68\x36\xd6\x26\xa5\xa2\x26\xbb\x63\x7f\x6f\xf4\xba\x7d\x79\x9a\xd3\x49\x89\x18\x45\x4c\x74\xb4\xd0\x1d\x59\xbf\x21\xbe\x16\xef\x9e\xa5\x7e\xf9\xc3\x22\x86\xc1\x20\x01\xbd\x81\xba\xce\x47\x15\x55\x1f\xd6\xab\x8c\xa6\x69\x12\x30\x2b\xd1\x90\x37\x57\x79\x75\xc4\xb6\xce\x95\x2b\xa8\x9b\xbc\x42\x12\x84\x2a\x49\xbc\xf0\xb5\xdf\xc3\x92\x40\x25\x44\x7c\x60\x3d\xfe\xbc\x7c\xee\x39\x00\x45\xc2\xa2\x84\xd0\x15\xbb\x73\x43\x87\x8f\xee\x1b\x9c\xea\xa4\x82\x42\x39\xbd\xc3\xdf\x30\x6f\xf6\x95\x73\x86\x26\xef\x98\x84\x10\x90\x01\xb1\xc1\x16\xb6\x75\xf5\x9f\x3e\x1d\x20\x92\x28\x08\x28\xab\x71\x95\x8f\x74\xfe\x44\x12\x71\x8c\x1d\x98\xf5\xc7\xc9\x7c\x24\x6c\x7b\xf1\xaf\x9f\x22\xfe\x2e\x80\x84\x0a\xd8\x80\x65\xb8\xeb\x1c\xef\xa2\xd7\x5d\x17\x49\x84\x01\x48\x9b\x21\xc7\xb5\xaa\x9e\x2c\x78\x20\xf2\xcd\x23\x02\x18\xcb\x38\xf6\xe9\xbc\x4f\x92\x0c\xc9\x85\x27\xc6\x4e\xed\xfd\x92\x71\xe1\xa2\x48\x12\x48\x9d\xaf\x79\xcc\xcb\xf9\x92\xef\xdc\x07\x3f\xcb\xa3\x9e\xc1\x78\x29\xe6\x9f\x24\x5a\x53\x8e\xdd\x4a\x2e\x1f\xfc\x81\xe0\xc9\xf2\x2e\x70\x55\x22\x49\x59\x48\x66\xb3\x3c\xbf\x93\x30\x96\xff\x73\x1c\x10\x83\x91\x76\x94\x43\xdd\xc4\xf9\x5e\xb6\x9e\x6e\x41\x24\xa9\x89\x89\x8b\xc5\xeb\x23\x6d\xeb\xca\x60\xd3\x54\xf5\x6c\x53\x49\x32\x96\x79\xb3\xc8\x79\x98\x4e\x29\x7d\x3a\x4a\x59\xcc\x28\x98\xdf\x27\x21\xc8\xaf\x1f\x48\x5c\x44\xc2\x23\xa4\x0c\xa0\xfc\x0b\x24\x90\xef\x9e\x44\x94\x25\x3f\xe2\xe0\x2a\xcc\x46\x0b\x58\x8a\x51\xef\x39\x39\x31\x92\xf1\xa1\x90\xc8\x00\x89\xd3\xca\x07\xbc\xbc\x86\xa7\x6f\x4e\xac\x44\xda\xa0\xd6\x65\x45\xd2\x6c\x39\xe5\x40\xd0\xb0\x1c\x8e\x48\xa4\xb0\xa1\xf2\x46\xbd\xa0\x3e\x17\x84\xc3\x98\x6e\xdd\xf1\x42\xed\xb4\x48\xa4\xd1\x0e\x60\xf6\xfc\x5c\x74\x0e\xfb\x1b\x96\xed\x4d\x75\x96\x45\xaf\xe0\xdd\x8f\x9a\x62\x19\x05\xa0\x6f\xad\x51\x30\xc4\x4b\x13\x95\x5a\xf8\x72\xde\xfc\x56\xd5\xaf\xa6\xa8\x7e\x8e\x30\x4b\x22\xd1\x60\x8b\x5b\x55\x95\x97\x8e\xb8\xf6\xda\x23\xb7\x44\xa2\x25\x92\xb8\x51\xae\x7f\xf9\x3f\x61\x20\xd0\x38\x92\x9a\xbc\xc0\x67\xf4\x0c\x6c\x63\x66\x32\x91\x60\x9c\xd0\x12\xb6\xb6\xd1\xf5\xac\x9a\xc7\x12\xe9\x0c\x26\x6c\x82\x52\x7a\xd5\x45\x7b\x20\xde\xa0\xca\x8f\x50\xcc\x8e\xdb\xc4\x28\xcb\x80\xd7\x2d\xd6\xb2\x2d\xb0\x69\xae\xab\xb2\x51\x74\x56\xb0\xc9\x7b\x1b\xc3\x89\x83\xb9\x01\x83\xbd\x8c\xa7\xcb\x6f\x4c\xee\x99\x06\x9a\x09\xcb\x8c\xaf\x09\xd9\x3a\x5e\x3f\x87\xfb\xea\x79\xd6\x3d\x8c\xad\xdc\xfe\x66\xf5\xfb\xe1\x66\x75\x77\xff\xc7\x61\xf7\x78\xff\x78\xd8\x6d\xd7\x7d\x76\x24\x0d\x13\x9b\x5c\xf1\x9e\x97\x0d\x75\x3e\x1a\x92\x93\x9b\xde\x2e\x0a\x24\x81\x04\x6b\x68\xd1\x8b\x3a\x8b\x34\x92\x31\x05\xc8\x7a\x22\x19\xee\x62\xf7\x6e\x4b\x08\xf9\x74\x92\xa7\x71\x6c\x2b\x84\x4a\xfc\xb9\xad\xab\x53\xd5\x8c\x4a\xc9\x3e\x8b\xe5\xa7\x31\x02\xef\xe5\x67\x2f\xb6\xda\xd1\x7c\x4c\x93\x44\xea\x31\x62\xd7\x4f\xbe\x34\x91\x92\xf0\xb9\xbb\xfd\xff\x67\x0b\xe0\xc2\x8f\xce\xda\x34\x0d\xa5\x4e\x46\xeb\xff\x23\x09\xfc\xc9\x23\xa6\x59\x4a\x09\xf7\x73\x3d\x9f\x0f\x69\xca\x53\x42\xd4\xc9\xaa\x7a\x1d\x2d\xc4\x59\x27\x15\x47\xb6\x62\x4c\x4e\xb9\xfd\x16\xb7\x94\x34\x8b\x52\x0a\x02\xd0\x4e\x3e\x17\x05\xfe\xd0\xf5\xfe\xac\x32\x45\xa4\x19\x24\x94\xea\x38\xf5\x7c\x57\x03\xea\x41\xa4\x9c\x09\x42\x98\x01\xa5\xa8\x6d\xbd\xde\x5d\xf9\xbd\xd1\xd7\x58\xb6\xcd\xd0\x4b\x09\xa7\x64\x41\x93\xaa\x33\x58\xa7\x9b\xec\xec\x45\x78\x84\x14\x74\xc9\xcb\xb7\xbc\xc5\xbb\x32\x5f\xce\xd8\x8b\x94\x67\x8c\xce\xf3\xee\xf2\x7d\x45\xb8\xae\xdb\x81\xd9\x7f\x7a\x53\x11\x9b\xc0\x4a\x1f\x9d\xbe\x9f\x7a\x72\x8a\xa5\xd1\x71\xd3\x88\x09\x3f\x08\x90\x22\xc9\xae\x58\x52\xea\xbf\x90\x2b\x13\x29\xf0\x60\x54\xf4\xe6\x0a\x92\x70\x06\x18\x10\xa9\xe4\x42\x8a\x91\x9f\x36\x83\x9f\x8a\x54\x05\x2a\xe3\x23\xdf\x7e\x4e\x9f\x3f\xfd\x55\x95\x20\x39\x45\x0d\xbc\xe1\x90\xe9\xe3\xd3\x19\xa9\xb8\x55\x90\x7a\xc6\xd6\x9a\x3c\x9e\x39\x48\xa4\x3a\xcd\x88\x50\xaf\x74\x4b\xde\xaf\xc6\x69\x81\xb5\x48\x35\x17\x94\x66\xd8\xb5\x75\x75\x7c\xad\xca\xb6\x22\x42\xe8\xfe\x36\x4a\x38\x3d\xc0\x73\x83\x4f\xd8\x9c\x8f\xfd\x26\x4a\xfb\xe6\x6c\x7e\x99\x34\xa4\xc0\x57\xeb\x64\x16\xfb\x8d\x38\x0b\x32\x9b\x0b\xfc\x39\x37\x37\x16\xd8\x19\xfc\x32\xcd\x58\x60\x28\xbb\xa5\x6b\xc8\xcb\xf5\xd3\x75\x38\x55\xf6\x14\x19\x4b\x31\x8e\xbc\x31\x59\x1f\xc7\x2c\x21\x93\x07\xcb\x42\x1d\xf8\x1a\xa7\x8d\x79\xb6\xde\xd6\x72\xda\xed\xe3\x38\x77\x16\xb9\x7c\xe3\x33\xb6\x1b\x38\x2d\x84\x5c\xb2\x48\x5a\x9f\x67\x5b\x57\x67\xfd\x68\xfe\xa8\xce\x63\x83\x32\x8b\x54\x42\x91\x38\x83\xea\xe5\x47\xd5\xe2\xc3\xf9\x78\x5b\xd5\xd7\x50\x6a\xd2\x5b\xb8\x7a\xef\xeb\x20\x28\x6a\xb2\x38\x33\xb2\x18\x3c\xf1\xb0\x2c\xf2\xe6\xe5\xf1\xf4\x19\x8d\xb5\xbf\xc6\x70\x0a\xcd\xb8\x10\xc1\xbc\x1c\xb9\xeb\xa0\x9d\x72\xbc\xaa\x4a\x4d\xfb\xea\x58\x7e\x53\x64\x49\x84\x94\x70\xc8\xcb\xbc\xf5\x32\x9e\xbe\xa9\x73\x78\xbb\x29\xa4\x40\x4a\x78\x1e\x6b\xba\x88\x2c\xe1\x3a\xb6\x91\x6a\xe8\x8c\xc2\x83\x82\x5a\x1f\x1c\x46\x8c\xfb\x3e\x2a\xa1\xd3\xb4\xaa\x41\x15\xf9\x9f\x68\x55\x23\x3f\xcb\x97\x67\x89\x4a\xa9\x38\xc5\x57\x12\xe2\x1b\x16\x4d\xff\x9b\x0a\xa9\x98\x67\xd0\xa3\x5b\x1e\x95\x14\x01\xc2\x91\x69\xbd\x14\x68\xcb\xb2\xc0\x12\x8c\x1f\xf3\xf2\x2a\xd7\x37\xb9\x71\xe2\xc7\x77\xe5\xee\x4f\x90\x3e\xea\x93\x65\x26\x0b\x1c\xb3\xf8\x53\xd5\x19\x57\xa7\x09\x4f\xdf\x14\x85\x12\xbb\x8b\x78\xc6\x08\x89\xf1\x9a\x17\x85\xd5\x50\x18\x29\xaa\x89\x8c\xab\x8c\x3c\x16\xfc\x55\xb5\xd5\xcf\x89\x3d\x95\x71\xc3\x88\xcb\xde\xd1\x1a\x5d\x57\x4d\xfb\x70\x3e\x62\x3d\x28\x95\x89\x4c\x70\xa5\x64\x8f\x73\x25\xc5\xb6\x21\xbc\x92\x09\x61\x11\xe4\x96\x46\x44\x5f\x77\x9b\x8c\x6b\x82\x58\xd8\xaa\x13\x5b\x3d\x59\x15\xc5\x84\xdb\xc4\xf7\x32\x96\xcc\xd9\x2d\xbe\xd9\x8a\x93\x09\x27\xb7\xe7\xe1\xfa\xfb\xa7\x5f\x52\x1a\x20\x6a\xd8\x5c\x55\x0c\xcb\x51\x35\x9d\xc8\x54\x6a\x1c\x55\xf7\x1b\xd6\x6d\xde\xe4\xe5\xf3\xf7\xe6\x83\x0c\x73\xa6\x53\xab\xfb\x48\x78\x13\xb7\xa0\xac\xbd\x33\x30\x7f\x8a\x4c\x73\xc9\x93\x31\x93\xb3\xe7\x66\xeb\x3b\x08\x6b\xa7\x16\x55\xe7\x3f\x4d\xd7\x80\x36\x21\x4d\x3a\xeb\xba\x9e\x6b\xf4\x7c\x5a\xcb\x4f\x84\xa1\xcd\xff\xb9\x22\x73\x50\x7d\xb1\xad\x1f\x41\x93\x4a\x8a\xc1\xd5\xdd\x51\x4b\xc0\xbc\xfa\x7b\x59\x0f\x38\x89\xe9\x66\x67\x32\x4b\x84\x07\x45\xb7\x98\xde\x27\xb2\x99\x22\x33\x3c\x23\xec\xb2\x7a\xc1\xa6\x3f\xac\x79\xc0\x93\x24\xec\xd1\xa6\x87\x62\xac\x55\x27\x78\x00\x8c\x5c\x4f\x2f\xe9\xf5\x7f\x91\xec\x13\x9c\x61\xe6\xf8\x0e\x6d\x11\xa6\xa7\x8a\xba\x1f\x55\xfa\x5d\xd4\xa2\x0b\xce\x8c\x4e\xed\x08\xe7\xaf\xf9\xab\x7f\x7e\x1e\x82\x34\xc1\x8c\xa6\xea\x0b\xf4\x2f\x12\xa1\x24\xe3\x69\x40\x4b\xad\xdf\xb0\x2c\xa6\x62\x7e\x82\xc7\x41\x42\x39\xa4\xaf\x55\xf1\x97\x6c\x83\xfe\x92\x28\xb3\x92\xbf\x1e\x42\xb2\x01\xef\x65\xf0\x98\x6b\x00\xef\xb3\x91\x5f\xee\x15\xb8\x26\x9f\x86\xc7\xc2\x12\xca\x3a\xe4\xff\xc3\x42\x8e\xf8\x3c\x92\x04\xfa\x84\x73\x6d\xbc\x36\x78\x12\x29\x8a\x7c\x9c\xe0\x9d\x8a\x5b\xe1\x78\x82\xfc\xb9\xbc\x28\x61\x9e\x3e\x4c\x22\xc0\x11\x90\xb4\x1b\xf8\xb5\x7a\x76\xd9\xbe\xd9\x48\x25\x92\x53\x89\xd3\x4a\x56\xe7\xb6\x87\x60\x8e\xda\x11\xc9\x23\xb3\xd4\x58\x4e\x66\xd7\x8f\x4b\xaa\x32\xca\x2f\x5f\x3d\x7e\x7f\xd8\xff\x71\x70\x3c\x30\xe3\x5c\x2f\x4f\x95\x34\xce\xf7\x20\xa4\xbf\x7c\xb7\xf5\xa5\xd3\x5f\xc9\xd2\x98\xd6\xc8\xee\xa5\xfa\x39\xf7\x19\x79\xc6\x33\xe2\x00\x3c\x81\xa3\x65\x6f\xf6\xd5\xfe\x05\x07\xba\x7e\xc1\x39\x93\x09\x5c\x0a\xd5\x36\xf3\xb4\x16\xe7\x89\xa4\xfa\x9e\xfb\xbb\x2b\x7f\xad\x60\x51\xe2\x2c\xb6\xc7\x92\x48\x89\x46\x67\x35\x17\xa1\xf0\x8c\xc4\x5e\x0f\xa6\xf3\x4d\xff\x56\x45\x90\xe0\x22\xb3\xe5\x9b\xae\xc4\xa6\x37\xbe\x5c\x33\x08\x1b\xa6\xa0\x92\x2c\x8b\xc1\x70\x24\x6e\x54\x87\x6b\x57\xe3\x5f\x1b\xfb\x83\xe7\xca\x25\xe3\x84\x4a\x57\x16\xae\xfc\x04\x2d\x6e\xfc\xaf\xc9\x08\xd5\x48\x23\xe3\xda\xf3\xd2\x4e\x53\xd1\xbe\x73\xe6\x2a\xe7\xa1\x28\x1e\x87\xa0\x11\xef\x5c\x70\x36\x14\xc0\x4c\x4e\x2a\xae\x98\x21\xb9\x1d\x5d\x1d\xe4\x1c\x09\xc8\x55\x8a\xb4\x33\xab\x02\xa9\x52\x69\x70\xd9\xb8\xc2\x9e\xcc\xb4\x3a\xb7\x54\x89\x34\xf7\x8b\xb9\x0e\x12\x03\xa3\x2a\xe1\xee\xf3\xf7\x37\x40\x95\xd2\x76\x3d\x11\x4f\xb0\x95\xcf\xf3\x74\x04\x37\x11\xd2\xde\xbf\xed\x0c\x27\x45\x13\xca\x2d\x6a\x3d\xef\x29\x32\x11\xf8\x8c\x69\x53\xdd\x60\x0b\xf9\xf0\xf1\x8c\xb6\x95\x05\x96\x61\xda\x4f\x45\x11\x84\xa1\xa3\x2f\x1f\x64\x02\xba\x33\x7d\x14\x55\x12\x41\x92\x25\x56\xc7\x96\xfc\xdc\xdb\x73\xa9\x5d\xa9\x1d\xce\x80\xee\x42\x30\x95\xda\xc2\x0b\x6c\xc1\xf2\xac\x5e\x64\xda\xa7\xd6\xb7\x08\x31\xb2\x98\xf1\x1c\xeb\x71\xe1\x8a\x10\x11\x26\x96\x14\x0e\xdf\x54\x55\x5a\x36\x99\xdb\xaa\xde\xbb\xf3\xcb\xf5\x8a\x4d\x92\xb8\x59\xe9\x59\xd3\x89\x25\xa2\x59\x54\x25\x8a\x42\x1b\x05\xef\x87\x4d\x24\x51\x4a\x89\x73\xca\x2a\x36\x6e\x42\xaf\xf4\x82\x32\xfd\x74\xc7\x12\x49\x22\x29\x1b\x52\xe7\xea\x05\x6a\xbd\xea\x2b\xdb\x85\x48\xa4\xc5\x96\x94\xd5\xcf\xbb\x72\x0a\xaf\x15\x89\x04\xfa\x4c\x7d\x14\x8f\x6a\x24\x3e\x66\x11\x16\x22\x41\x4d\x84\x1e\xee\xec\xfc\x0d\xf3\xe9\x97\x17\x29\x97\x99\x25\x58\x2f\x8a\x7b\x6b\x5a\xf9\x5f\xcb\x62\x45\x34\xe9\x1b\x4a\xbe\xad\xda\x16\x8f\xa7\xd6\xd6\x6d\xfe\xc5\x9e\x30\x5d\x61\x22\xe3\xa9\xd7\x6c\x6b\x0b\xa2\xd0\x2d\xf1\x52\x6e\x70\xfe\xa9\xff\xa2\xdd\xdf\x5b\x5a\x8d\x0f\x5d\x6d\xb0\x58\xae\x11\x11\x82\x33\x5b\xa5\xd9\x60\x3b\x30\xcc\x5f\x64\xc5\x68\x77\xe9\x67\x23\x8f\x39\x0f\xfb\xa2\xc2\x5f\xef\xeb\x5f\xa8\xee\x6e\xa6\xc7\xa0\xe0\x99\x15\xb9\x5c\x5f\x3f\x7c\x66\xf3\x09\x0e\x8c\xe0\x5c\x39\xe9\x11\x98\xbc\xc7\x2a\x74\x36\xa9\x18\x68\xbb\x27\xd3\x9c\x4f\x10\x50\x42\x24\x56\xcf\x6a\xbf\xbf\xee\x2f\x56\x56\xb8\xe4\xf8\xfe\xdd\x91\xd9\xf9\x16\x48\xec\x56\x3f\xb0\x79\x0c\xc7\x8c\x00\x0c\x29\xab\x65\x8a\xfc\x34\x3a\x01\x84\x8c\x78\xea\x45\x51\x2d\x43\xc2\x04\x0a\x23\x64\x66\xd1\x45\xdb\xa7\x35\x95\xd8\xac\x6e\x6e\x9e\x7c\x9b\x0a\xe2\x74\x1c\x60\xde\x40\xfd\x8a\xdd\x5a\x5b\x95\xfa\xda\x33\xb4\x3c\x9e\xdb\x1a\xa1\x4f\x14\x09\x95\x49\x02\x49\x1e\x6a\x6c\xb0\xfd\x32\x7a\x7e\xc5\xd1\xb8\x7a\x94\x62\xe7\xe2\xb7\xfd\x98\x29\x6d\x01\x77\xcd\xc8\x34\x70\x4d\x5a\x30\x8f\xfc\x79\x94\xff\x41\x65\x45\xc6\xae\xde\x07\x42\xa4\xe9\x87\xd1\xca\x90\xc1\xd1\xb4\xd0\xe6\x6a\x55\xd7\x96\x7e\xaa\x5f\x71\x68\xd0\x6b\x44\xdb\xe4\x8e\x65\xff\x58\xae\x69\x18\x1d\x4f\xc2\x04\x2a\xd1\x0e\x26\x8f\x9a\x18\xdc\x6c\x31\x53\x8d\x6f\x08\x05\xea\x43\x73\xca\xfb\x3c\x81\x30\xb1\x75\xd7\xcf\xe5\x4b\x55\xe8\xdd\x59\x36\xaa\xce\xc9\xd1\x25\x19\x94\xd9\xa2\x35\x59\x10\xbb\x5d\xb5\xaa\xf5\x15\xba\xd0\xc4\xa4\x13\x04\x98\xc8\xc1\x05\xde\x60\xd3\x78\x3c\x3d\x9b\xc6\xf9\x80\x71\x19\x59\xe2\x77\x8a\x6f\x11\xb2\x9b\x24\xa1\xad\x6e\xe0\xf4\xb6\x4c\x31\x4b\x13\xe9\x8e\x78\x8f\x3f\x1e\x7f\x06\x60\xa8\x29\x8a\x32\xc4\x7e\xff\xbf\x73\x7e\xe9\xe0\xcf\x9e\x38\x94\xd2\xaa\x6c\x5a\x09\x71\x2a\x9e\x1c\xeb\x1d\x5a\x57\xd2\xaf\x50\x08\xa5\xa1\x0a\x8c\x9e\xe2\x6b\x73\xf7\x70\xb8\xfa\xfe\x87\x1b\x53\x88\xe2\x94\x70\x09\x7d\xd5\xe3\x06\xfa\xb9\x0e\x51\xc2\x88\x6b\xae\x7d\xc9\x9b\x1f\x55\x8b\xb5\x03\x43\xfa\xe6\xcc\xc6\x5c\x5b\x1c\x0b\x33\x0a\x88\x99\x95\x99\x95\x9d\xfb\x8c\xcd\x8c\x3b\xb2\x6b\x67\xe4\xb2\xec\x14\xd4\x48\x01\x9c\xf1\xca\x83\x58\xc6\x2e\xea\x50\x14\xf3\xf2\x33\x01\x31\x22\x39\xa8\x9d\x47\x70\x83\xde\x2d\xba\x26\xaa\xad\x7e\xf6\x43\xca\x33\x8a\xa9\xe4\xc4\x08\x51\xe4\x7f\xe2\x05\x19\xe7\xe5\xd0\x66\xca\xa0\x93\xc5\xf0\xe1\xc5\x4f\x51\x66\x90\x69\x9b\x56\x93\xe7\xbc\xd0\x77\x97\xe7\xd9\x30\xd5\x81\xc7\x2c\x45\x5f\x5e\xe9\x61\x4a\x7d\x9b\x2d\x65\x76\x74\x37\xce\xa6\x5d\x0e\xf4\x00\x4f\x2c\x21\xa6\xdd\x72\xbb\xb3\xf4\x12\x52\x0e\x3c\xb3\x68\x93\x63\xfe\x6c\x8b\x16\x47\xa4\x33\xfd\xaf\xf2\x94\x12\x47\xf4\xe5\x7b\x35\x3b\x62\x45\x8f\x46\xf1\x5f\xe0\x22\xa6\x74\x41\xde\xdc\xe0\x1b\x16\xd5\x69\x18\x65\x2e\xa4\xd3\x5d\x25\x83\x89\x4a\x5e\x51\x3b\x38\xec\xe2\x59\x0b\x5c\x42\x3c\xbc\xeb\x93\x55\x51\xf9\x5b\xc9\x00\xe0\x26\x34\x30\x18\xac\x4f\xd5\xb9\xc0\xb6\xbd\xc8\xc2\x2f\xf2\x26\x0a\x10\x09\x27\x63\x47\x55\x1a\x2d\x70\x60\x9c\x6a\x02\xd1\xf9\x26\x8e\x7d\x19\xf4\x33\x2e\x95\x51\x0b\x10\x68\xab\xc7\xee\x5e\xcf\x35\x4c\x26\xad\x30\x2c\x76\xa6\xfd\x95\x22\xe4\xe5\x3c\x38\xdf\x77\x0c\x23\x33\x3a\x74\x5c\x3a\x6f\xa5\xf5\x45\x47\x60\x56\x89\xfc\x5d\x82\x7a\x9d\x7d\x61\x61\x34\x11\xff\xee\xbe\xaf\xb6\xdb\xc9\x93\x40\x60\xb1\x51\xdd\x2c\x76\xda\x78\x63\xbe\x8e\xf1\xa4\x84\x34\xe5\x0e\xaf\x46\x26\x4b\x33\xd7\x63\x71\xfd\x64\x28\x28\xda\x65\xeb\xf9\x7b\xe9\x0f\x01\x52\x86\xc6\xe7\x7a\x0f\x27\x18\x4d\x0d\x05\x31\x81\xf5\x1d\xd2\xea\xe8\x63\x4d\x84\x08\x6a\x5e\x72\x1f\x27\x04\x0c\x14\x85\x4f\x47\x9a\x4b\x93\x44\x8f\xfb\xc7\x01\x7b\xfa\xcd\x13\x99\xf2\x44\xfa\xbb\xb6\x3a\xdd\xa0\xa9\x7b\xbe\x5c\x01\x98\x65\xe4\xdb\x3c\xae\x37\x87\x31\x15\x95\x00\x14\x8a\x4a\x17\xc8\xed\xb8\xf7\x46\x02\x98\x24\xc1\x78\x14\xf3\xb8\x77\xb1\xfa\xd9\xa8\x9b\x34\xf1\xb9\xff\xae\x07\x89\x9d\x9f\x2f\x6a\x14\x05\x18\x1e\x11\xd6\x0f\xb4\xee\x57\xd6\xf2\xd8\xca\x20\x13\x44\x59\xbb\x3a\xde\xd9\x94\xad\x93\x24\x10\x32\x4c\xed\x94\x72\xce\xdb\x26\x2f\xdb\x87\x6a\xf0\xbd\x64\x94\x81\x65\x9e\x69\xf4\xc0\x81\x2b\x64\x9c\x48\xc6\x7b\x46\x80\xf5\x91\x14\xcb\xb1\xe9\x6b\xd2\x51\xef\xf2\xe7\x12\xda\x73\x8d\xcd\xaa\xd4\x4f\x04\x16\xbe\x05\x8d\x55\x8f\xbd\x93\x71\x9a\x12\x08\xda\xd6\x99\xee\xd7\xab\xcd\xae\x6f\x02\x8b\x63\x5a\xd2\x9e\xff\x38\xbe\x23\x13\xc9\x08\x76\xb8\x7e\x03\x5b\x3b\xab\x16\x6d\x0d\x99\xc9\x88\x7c\x60\xcb\xee\x4d\xd2\x71\x36\xa3\xd0\xcf\x5a\xc9\x83\x98\xb0\x22\x15\x09\xd5\x0c\x72\xc4\x42\x0a\x08\x28\x7a\x61\x4f\xf3\x25\xe8\xa2\x84\x24\x20\x53\xd2\xce\xcb\xf9\x6c\xec\x9a\x29\xf6\x76\xbf\xf2\x1c\xdb\x42\x02\x70\x4a\xe3\x5d\x41\x93\xab\xbb\x52\x55\x47\x3c\x5c\x57\xb7\x43\x08\x50\x02\x72\xc2\xb2\x3a\xa5\xab\xbc\xb3\x5c\x7c\x69\x46\xfb\x52\x57\x3f\xf3\xf2\xf9\x30\xa2\x7c\x12\x52\x85\x81\xdd\x06\xa1\x94\xe7\xf7\xd2\xab\x24\x09\xa9\xe2\x94\x2a\x4c\x77\xeb\xfb\xfb\xc3\xd7\xd5\xd3\xcd\x24\x7e\x22\x15\x48\x22\x82\x5e\x59\x3c\x97\x67\xaf\xe9\x1a\x30\x1c\x98\xbc\x6f\xcf\x58\x2c\xd5\x88\x7e\xe8\x7e\x48\x1d\x58\x42\xc2\x83\xcc\xf5\x3d\xb4\x58\xef\xba\x51\xf9\x28\x8f\x38\x9d\xc2\x3a\x0e\x69\xb5\xad\x1f\x6e\x0e\x37\xdf\x1d\x95\xe4\xd5\x7a\xbf\xbf\x7b\xf8\x62\x35\xde\xfc\x53\x62\x10\x82\x55\x25\x82\xd9\x76\x27\x51\x3b\x0e\x99\x19\xb2\xd2\x5a\x91\xfb\x6a\x0f\xaf\xb8\x6a\x9e\xe0\xb5\x9f\xe8\x86\x6b\x8a\x11\x1f\x37\x95\xb6\x21\xee\x6f\xf8\x3e\x0b\xd4\x4b\x03\xb6\xf4\xe7\x2d\x6f\xc0\x19\xea\x8b\xe7\xaa\x0a\x44\xe0\xa9\xeb\x6d\xa9\x6a\xe7\xc5\x53\xc6\x85\x12\x6d\x8b\xa3\xa6\x02\x29\x8c\xcd\xc7\x75\x96\xbb\x65\x2d\x9c\x8f\x59\x2f\x49\x30\xe8\x12\x08\x15\xe8\x64\xd0\x10\x69\x6c\x9a\xae\x8f\xda\xaa\xc0\x44\x81\xa3\x15\xe9\x8e\x10\x3d\xd3\x8e\x17\x8a\x85\x9a\x2a\x08\x69\xd7\x9e\xe9\x8b\x4e\x9f\x30\x0c\x24\x41\x00\x1d\x37\x42\xdd\x92\x54\xd4\xc2\xca\x53\x51\x80\x44\x13\x58\x9d\xb0\xbc\xd6\x97\xdf\xfe\x83\xb9\xe0\xaf\x66\x01\xe1\x58\xfb\xa0\xb1\x65\xf3\xfe\x5f\xd0\x38\xc4\xb0\x3e\x18\xfa\x88\x09\xa1\xfb\xb2\x95\x59\xd9\xbd\x50\x51\x1a\x53\x80\xfd\x26\x37\x7f\x8f\xbf\x4b\xa8\x48\x6b\xe2\x25\xa6\xfa\x51\x4a\x03\x8d\xc8\x00\xa8\x59\x79\x0c\x34\xa9\x9a\x59\x9c\xea\x67\xd5\x67\x2a\x32\x29\x25\xb8\x0f\x9d\xe1\xf5\x63\x7b\x8b\x78\xf5\x4e\x77\x9e\x4e\x38\x15\x87\x69\xec\xc4\xe3\x8a\xf7\xab\xbc\xd6\x9b\xbc\xdc\x62\xbd\xc5\xba\xe9\x6d\x2f\xea\x24\x89\x44\xbf\x55\x2f\x63\x68\x8a\x4a\x84\x55\x48\xc6\x21\xa2\xa1\x12\x09\x83\xfb\x7b\x95\xeb\xdb\xaa\xfe\x02\xe5\x02\x1c\x5e\x25\x2a\xa5\x14\xcd\xe6\xfd\xb7\xdc\xd3\x1d\x77\x7f\x95\x6c\xa0\x53\x24\x88\xd5\xdf\xd9\x13\x54\x1a\x29\xda\xa4\xf4\x2f\x33\x68\x67\x08\x95\x26\x41\xea\xe4\xbb\x3f\x61\xb2\x14\x2a\x4d\xb9\x08\x89\xc9\xb2\xa6\x43\x90\x92\x26\x7f\x23\xc0\xad\x52\xc1\x08\x87\xde\xa0\x8b\x34\x8d\xb3\x60\xb3\xdf\x00\x26\xf9\xb8\x60\x69\x62\xea\x4c\xef\x2a\xd3\x34\x1b\x75\xdd\x56\xab\x7f\xcc\x28\xb5\xac\xa1\xe1\x4e\x2f\xfa\x9f\x79\xac\x75\x7a\x47\xc5\x88\x2f\xa3\x85\x57\x5b\xe4\x3b\x7b\xb8\x8c\x71\x72\x9f\xd6\xb5\x0a\x83\xdd\xf9\x78\x84\xfa\xfd\xbe\x7a\xce\xd5\x74\xeb\x53\x59\x14\x53\x48\xa1\x3c\x1f\x57\xba\xee\x3f\x7b\x16\x0b\xa5\xc7\x74\x96\x55\xd9\x62\xd9\xde\xdd\x4c\xf0\x61\x2a\x8b\x21\xea\x86\xe0\xb6\x3a\x56\x49\xbf\x43\x64\x8a\x07\xce\x03\xad\x8c\x73\xdb\xa6\x97\x99\x88\x82\x5e\x87\x45\xcd\x9f\xd1\x79\xab\x78\xcc\x82\xc0\x47\x36\xbb\xbe\x5f\xab\x73\xfd\x5c\xc0\xa5\x7b\xe4\x2f\xe0\x26\x0c\x1c\xbb\xcf\x20\xb3\x23\x14\x37\xe8\x43\x5c\x1b\xf8\x95\x1f\xcf\xc7\x9e\x2e\x76\x3a\x70\x02\x23\xd1\xc3\xb6\xab\x12\xef\x4a\xcb\xda\xf6\x5f\x42\x7f\x84\xfe\x7e\x10\x64\x34\xc1\x24\x96\x68\x72\x95\x43\xfd\x4e\xd6\xc8\x2e\x7f\xee\xf1\x8b\xd3\x1b\x83\x00\x1d\x8f\x34\x72\xd6\x33\xf2\x0d\xa1\xc0\xa4\x94\xab\xc7\xf6\x05\xa1\x20\x9b\xad\x2a\x86\xb0\x8a\x92\x09\x78\x66\x34\xfa\xe4\x96\x54\x7d\xfa\x3d\x65\x6a\xab\x56\xba\xc7\x5f\x15\xb9\xc2\xdb\xaa\xfa\x36\x5a\x8f\x32\xb5\x54\xfb\x8d\x15\x23\xdd\xb5\x1f\x84\x11\x94\x4a\x6d\xc4\x99\xd4\x6f\xeb\xea\xf8\xc1\x42\x53\x22\xa0\xc0\x59\x8d\xa7\xaa\x69\x86\x52\x08\xa5\x34\x23\xbb\xe4\x8a\xf0\xce\x57\x50\xbe\xf6\x2d\xc8\x54\x4f\x76\x47\xce\x5b\x77\xca\x5d\xaa\x9d\xba\xee\x3a\x0e\x49\xff\x78\xfd\x74\xbd\xc7\xa6\x1d\xfb\x1b\x0a\x83\x84\x0d\x2a\x73\xd7\xdb\x65\xc7\x4f\x61\x94\x51\xa6\x40\x3b\xa0\xeb\xe1\x58\xe9\xdc\x2c\x8b\x8e\x0a\x85\xc2\x10\x43\xb8\xb7\x32\xe7\xc9\x2d\xdf\xcd\xa4\x04\x05\x39\x78\xd1\x1b\x97\xac\x5f\x06\x6e\xb9\x8b\x4c\x04\x34\xfc\x7f\x62\x5d\x0d\xf5\x26\x3a\x08\x32\x93\x79\xb6\x6b\x4b\x5e\x40\x05\xb8\xb7\x38\x52\xf9\xe9\xba\xd9\x98\xd5\x1a\x9a\xf7\x99\x06\xbc\xd0\x2c\x00\x2b\xdb\x8a\x7a\x5b\x8d\xa9\x39\x85\x66\x2c\x45\x3d\x0b\xaf\xe6\xe5\xf3\x25\x97\xa2\xd0\x4c\xc7\xe4\xe8\x5a\xd8\xf3\x3f\x3e\xa8\x2b\xf0\xcb\x4d\x87\x61\xe0\x14\x71\x06\x37\xbe\xdb\xaf\x3b\xeb\xb8\xbe\x40\xcf\xeb\x10\x63\x47\x5b\x4a\x54\x0e\xb7\x96\x6a\xbe\x7f\x85\x28\x88\xe8\x6e\xda\x1e\xc4\xfd\x9f\xb5\xf5\x7c\x9e\x6b\x98\xed\xfa\xae\x43\x1c\x4a\x02\x93\x5c\xdf\x3f\x38\x4e\xf7\x4f\xf3\xc4\x3a\x36\x18\x04\xbe\x78\xd7\xf1\x6e\x5f\x3f\x7a\x80\xb3\x4e\x03\x45\x7c\x55\xf7\x55\xf9\x6c\x29\x4f\x7c\x43\x64\x1f\x9f\xe2\x9a\xe3\x1d\x4d\xa7\xdc\x50\x78\x90\x48\x8e\xb6\xeb\xa7\xc3\x7a\xff\x75\xfd\x74\xb8\x7a\x5c\x3d\x79\xec\xa3\xe6\x5c\x73\xf7\x91\x65\xae\x3f\x67\x2f\xd1\x5c\x29\x2f\x19\x7e\x5b\xe4\xcf\x2f\xad\x67\xe1\x70\x27\x04\x4b\x97\x14\x6f\xbc\xcb\xa3\x45\xa2\x7c\x16\x72\x03\xbf\xae\xe1\xc4\x82\xdf\xff\xb1\x14\xd9\xd0\x02\x45\x26\x06\x86\xb1\x1b\x84\x62\x92\xa9\xd1\x10\xa4\x84\x49\x21\x7b\x74\xf7\x13\x4e\xbf\xd5\x70\x3a\x61\xfd\xa5\x2a\xf0\xe8\xe8\xb4\x27\xb3\x0d\x44\x46\x9f\xab\xf9\x99\x93\x26\xfb\x6c\x9e\xca\x30\xa4\x4a\x56\xcf\xbe\x30\x8b\xf5\x0f\x9b\xbf\x96\x89\x49\x07\xce\xde\xa7\xaa\x58\xa6\xa6\x15\x5a\xa6\x19\xb3\xd3\x0a\xb4\x17\x3f\xc9\xe5\xb9\xad\x3c\x43\xd4\xac\x7b\x96\x41\xd4\xdf\x77\xd7\x82\x31\x17\x84\xc0\xfd\x48\x4a\x2d\x09\x45\x77\xfd\xed\x8f\xcf\xd5\xd4\x85\x56\x41\x4c\x3c\x4f\x57\xd7\xfb\x1f\x7f\xc5\x43\x2a\xb4\x72\x56\x6b\x77\x82\xf7\xbe\xe0\x2d\x7a\x62\x0b\xbf\x91\x6a\x1d\x84\x84\x99\xd9\x62\x6d\x50\x51\x66\xd6\x1d\x0d\x7d\x0f\x1e\x86\xee\x63\xf7\xee\xf5\x13\x7a\x29\xb1\xd9\x58\xa1\xb6\xe1\x01\x3a\x00\xa4\xcc\xdb\x4d\xd5\x9b\x0f\x7d\xd8\xc3\xf5\x35\xa1\xad\x09\x72\x72\xf9\xda\x43\xfa\x56\x5a\xe7\x4b\xb2\xf7\xfe\xb2\xd8\xd0\x8c\xa1\xe8\xde\x44\x8a\x4c\x68\xc3\x05\x95\x29\xee\x14\x94\x3a\x2f\xe1\x2d\x87\x72\xfd\xad\xae\x4a\x47\x30\x2b\x30\x48\x20\x72\x85\xac\xc4\xb5\x99\x63\xa1\xc3\xbe\x51\xd8\x3a\x54\xd0\xfa\x47\xd5\xe2\x16\xf2\x0f\xca\x88\x30\x40\x43\xf2\xae\x3e\xdf\xe1\x42\x62\x0b\x3c\xba\x02\x03\x93\x08\x37\x80\xeb\xce\x74\xde\x42\xed\xf9\x27\x17\x26\x86\x4b\x43\x7d\xbc\xfa\x90\x85\x49\xa0\x3d\x68\xdb\x6f\x31\xb3\xdf\x64\xa1\x4d\x6c\x10\xd4\x0b\x6a\x7d\xf5\x7e\x49\x9f\x82\x4c\x09\xad\x06\x0f\x8a\x9e\x7d\xeb\x72\xca\xf3\xfb\x19\x20\xc0\x87\xf2\x2c\x09\xeb\xf3\xbc\x4b\x18\xc5\x3c\x1a\x22\x48\x16\x2e\xb8\xb8\xa2\x30\x94\x12\xc1\x93\xa8\x19\xfc\xd1\x17\xe3\x61\x94\x68\x0a\x92\x9c\xaa\xaa\x20\x03\xeb\x93\x39\x8e\x71\xca\x71\x20\xc3\xb9\x87\x99\x4a\x8e\xc0\x24\x46\x0a\x4d\xaf\x0a\xfc\x36\x58\x6b\x98\x70\x91\x45\x0e\x7c\xef\x3e\xdc\xa3\x19\x1a\x15\x01\x0b\xfc\xf9\x7c\xa7\x2a\x0a\xa3\x4c\xef\x9c\x09\xab\x0b\xf8\xed\x0c\xf9\x94\x82\x79\xf9\x8d\xb9\xb4\x55\xc6\x05\x34\xed\xee\x2c\x87\xca\xe6\xaa\x7e\x34\xb3\x81\x04\x30\x29\xeb\xcf\x8f\xbc\x17\x91\x11\x08\x2a\x53\x23\xf8\xe7\xa3\x52\xe7\x13\x94\xca\x87\x4a\x50\xb2\x94\x8c\xc0\x3e\x21\x4f\x44\x3e\xeb\xfd\xd7\x0f\x9e\x4a\x86\xa9\xa2\x15\xb8\x7a\xf8\xb2\x3e\xec\xae\x7b\x41\x23\x81\x12\x02\xf2\xb7\x9a\x97\xea\xa7\xa3\x59\xfb\x01\xc3\x93\xa8\x21\x57\xe8\x64\x3c\xda\x25\xca\x77\x81\x2a\x36\x4c\xf8\x68\x26\xd4\xed\xaa\xd4\x8e\xab\x76\xd9\x3e\x42\xcd\x22\x4a\xb1\xf4\x24\x9d\x16\xf0\xd9\xff\xb2\x8e\x2c\x65\x58\x63\x99\xb4\xaf\xab\xe3\xb1\x2a\x07\x5d\x6c\xcb\x8b\xe9\xd8\x07\x05\x6a\x03\x99\xf6\x8a\xc2\x6d\xb7\x7f\xc3\xf7\xba\x58\x8a\x12\x20\x26\xb1\xc9\xbc\xe1\x68\xd1\x3f\xd3\x57\x41\x8c\xc8\x28\xbf\x59\xff\x58\xdf\x3f\x6e\xd7\x4f\x3e\x72\x88\x26\xe5\x89\x03\x43\x76\x3e\xe8\xbe\xda\x60\x79\x5e\x94\x27\x14\x68\x32\xab\xa2\x46\xcb\xe4\xc2\x63\x42\x23\x13\xb2\xfb\xaa\x82\x80\xe6\xee\x17\x4c\x10\x64\x41\xd4\x1b\xe7\xdd\x38\xd6\xee\x29\xa7\x93\xc7\x04\x2c\x91\x61\x4f\x43\xe5\x02\x14\x73\x11\x6d\x61\x02\x19\x3b\x1a\xaf\xe7\x83\xc6\xe3\xb9\xae\xe1\x19\x0f\x06\x3f\x06\xe1\xf8\x0b\x95\x65\x29\xdb\x42\xdd\xa0\xe5\xcf\x98\x57\x70\x9a\x40\x69\xaa\x33\xac\x71\x60\x54\xb9\x7a\xff\xf6\xc7\xf5\xf2\x66\x6a\x02\x93\x51\x64\x90\xb4\xa6\xce\x45\xe7\xe1\x6c\x6b\x6c\xf0\x92\xf6\xde\x5d\xc0\x98\xf5\x1f\xb7\xbf\xfb\x78\xbd\x61\x71\x44\xa4\xad\xa7\xaa\x69\x0f\x9d\x5b\xf9\xfc\xde\x97\x81\x4d\xaf\x4d\x2d\x71\xf2\xee\x05\xca\x9b\x1c\xca\xfb\x1c\xca\xfe\x26\x82\x67\xda\x07\x57\xd6\xbf\x5a\xaa\xbe\x23\xa8\x2c\x09\xbc\xad\x87\xc8\x85\x61\x90\xd2\xde\x73\x28\xab\x0d\xb4\xea\x25\x2f\x9f\xbb\xe3\xa2\x6f\x8f\x64\x4c\xc8\xf0\xd3\xb9\xdd\xd7\x88\x8f\xe5\x87\xdc\xe4\xc2\x24\x19\x7a\xde\xc9\x55\x33\xcb\xcf\xf9\x2e\xc2\x50\xa4\x88\x86\xdd\x62\x79\x2c\x3e\xdc\xb5\xa7\xb1\x25\xd9\x7d\x5a\x3d\xdc\x3c\x6e\xee\xfe\xb9\x7e\x3a\x3c\xad\xf7\x4f\x7f\x1c\xae\x1f\xbf\x3f\xec\x87\x5e\x59\x18\xf4\xe8\x48\x0a\x91\xe7\x13\x4e\xfe\xe9\x77\x49\xb9\xe1\x4e\x25\xa7\x9b\x69\x24\x1c\x3c\xaa\x1e\x32\x59\x6c\xa8\xaa\x64\xf0\x25\x77\x33\xb5\x5f\x61\x32\xe0\x99\x2d\x93\x5c\xb5\xf7\x08\xcd\xa7\x1a\xd5\xc2\x64\x98\x06\xce\x7e\x70\xf5\x6c\x43\xa1\x35\x1f\x59\x6f\x46\x04\x3a\xed\x99\x79\xa8\xde\x7f\xaa\xa3\x28\x8c\x48\xac\xaa\x2c\x81\xab\xdd\x36\xdf\x6d\xd5\xbd\xc7\x6b\x44\x9a\x7a\xf7\xdf\xb1\x5e\xde\x22\xda\x5a\xf7\xbe\x8b\xb4\xb4\x03\x03\x6d\xcc\xfa\x97\xa3\x2b\x1b\x02\xd5\xd3\x37\x16\x4a\x65\x8e\x31\xe4\x0b\x34\x54\xbe\xfb\x81\xf3\x69\x24\xe3\x13\x5f\x70\x29\x99\x34\xbd\xb9\x8a\x52\xee\xd4\x75\xba\xbf\x2e\x67\xe2\x8c\x8a\x53\x6e\x4d\x5b\x92\xa9\xed\xf5\x98\xfd\x5b\x69\x6e\xf7\x7d\xc8\xeb\x9b\xba\x3a\x1d\x2e\xd6\xfc\x45\xb6\xa3\xbf\xd0\x6a\xff\x50\x68\xc3\x46\xb1\xfb\x7b\x9a\x84\xa2\xdc\x67\x57\xba\x4c\xf2\x41\xd6\xa0\x9b\xc3\x6b\xa7\xf7\xc4\xc8\xa6\x5a\x1b\x6c\x9d\x71\xea\xf3\xc4\xe3\x25\xe3\x3b\xeb\x4c\xf5\x0c\xc1\x9b\x19\x95\x97\xeb\x63\x52\x61\xf5\xdc\x6d\x9e\xc2\x72\x21\x4c\xee\x03\x41\x90\x0a\x42\x7b\x1e\x74\xd5\xd7\x6d\xf9\x26\x11\x52\x04\x7a\x45\xba\x23\xc3\x5f\x55\x18\x8e\xa2\xc0\x43\xc8\x01\x82\x40\x99\xd8\xb2\x73\x92\x42\xca\xa0\x4c\x01\x41\x80\x21\x0e\xce\x80\xb3\x74\xa7\x68\x5a\x08\x58\x64\xd5\xa8\x72\x55\x1d\x9a\xc1\x35\x85\x20\x04\x6b\xa8\x10\x3e\xc6\x71\xb8\xf7\x6d\x5a\x05\xa9\xaf\x85\x31\xd5\x64\xbf\x80\x20\x44\x49\x3e\xcb\x06\xb0\x81\x9f\xe0\x2f\x8a\x84\x55\x61\xfb\xf2\xfb\xef\xfe\x4f\x31\x43\xb2\x14\x09\xa2\x72\x5b\x57\xc7\xad\xad\x95\xea\xdb\xe3\xc8\x2a\x8b\x29\x75\x3e\x92\x51\xa1\xfb\xa6\x84\x33\xd5\xf3\xbf\x51\xdd\x7b\xdf\xc4\x13\xf2\x10\xd7\xa7\xe2\xdc\xcc\x80\xae\x10\xc4\x46\x78\xfb\x8f\xb2\xf2\x94\xbd\x7b\xf7\xad\x69\x60\xe5\x84\xbe\x3c\xde\xdf\x1c\x56\x9b\x6e\x03\x3b\xec\xb7\x7b\xdf\x9c\x39\x86\x8c\x53\x5d\x1d\xab\xee\xbb\x8f\xd8\x28\x20\xe0\x51\x24\xdc\x81\x7f\x0b\xaf\x97\xa5\x1f\x10\x08\x66\x28\x06\x4b\x14\xb1\xdb\x73\xa9\x5e\xee\xca\x59\x7a\x2f\xf5\x28\x13\x08\x44\xc2\x89\x1c\x54\x41\xf3\x52\x9d\xdb\xf5\xe3\xee\xca\x7e\x0a\x17\x90\x39\xac\xee\xef\xfd\x6f\x8b\xd4\x24\x9e\x29\xf2\x03\x0e\x37\xdf\x53\xa3\x41\x6f\xe2\x6d\x1c\xfd\x95\x6b\x83\xd0\x86\x0f\x9c\x56\xe7\xda\x72\xe6\x7d\x04\xbb\x87\x40\x06\x40\x69\xf7\xcd\xea\xf7\xc3\x6e\xbf\xfa\xb2\x3e\xb0\x71\x66\x0d\x02\x19\x8a\xd8\xa5\xdb\x1d\x66\x78\x4c\x72\x06\x81\x8a\xac\xd3\xf4\x9c\xbf\xe1\x06\x1f\xee\xee\x87\x16\x60\x56\x36\xb4\x6d\x61\xa6\xe6\x00\x81\xe6\xcc\xa9\xfc\x36\x79\x59\x4d\x1c\x31\x08\x30\x88\xd0\x4d\x8d\xef\x77\x65\xcb\xad\x37\x30\x9d\xa3\x18\x08\xe8\x81\xae\x65\x33\xa7\x5b\x84\x00\x43\xab\x16\xe2\xab\xff\xe7\x08\xb9\xc5\xe0\x06\x04\xa8\x0c\xe1\x21\xee\xab\x67\x47\xfa\x63\xd5\x53\x8a\xa1\x44\x6d\xfa\x3b\x06\x91\x40\xb5\xa4\x98\x65\x53\x64\x0b\x72\x53\xc0\x02\x63\xa5\x27\xb6\x77\x0f\x56\xe0\xd9\xbd\x2d\x63\xa1\x2d\x5d\x7c\xa9\xce\x0d\x2e\x06\x68\x81\x31\x6e\xc8\xd9\xda\x7d\x7d\xf8\x67\x7f\x9d\x36\xd2\x86\x37\x35\xe2\xd1\xc9\xb3\x2f\x65\x2e\x96\x2b\xd2\x81\x79\xb9\xe6\x31\xaf\xcd\x13\x8e\xe5\x03\xfb\x23\xb3\xeb\xac\x2d\xb5\xdb\xbb\x1c\xaf\x46\x16\x89\xc4\x83\xfe\x27\xe5\xbf\xdc\xb7\x6b\x46\xf3\x47\x5b\xc2\xfb\xd5\xb9\xad\x8e\xdd\xa8\x5a\xe2\x4e\x7f\x97\x38\x12\xda\x82\xd7\xdf\x1f\x8d\xb9\x5e\x2a\x6b\xf5\x3d\x4d\x9c\xba\x02\x84\x06\xf2\x7a\x57\x15\x63\xaa\x36\x60\x49\xa8\x88\x8f\xf3\x5c\x52\x15\xde\xf2\xb4\x67\x49\x64\x41\x70\x3a\x6f\xe4\xb9\x6e\x88\xec\x66\xb9\xb8\x10\x58\x22\x22\x2a\xc3\xb7\x09\x81\x59\x12\xe5\xd3\x54\x11\xb0\x04\x25\xf7\x8a\x9a\x95\x85\xf4\xbb\x96\x54\xa5\xda\x6d\x35\x0d\xb6\xa7\xcb\x30\x77\xd7\x45\xfa\x1a\xf8\xce\x4a\x3e\xc4\xb3\xf6\x8c\x67\x31\x9b\xb8\x51\x5a\xcf\x67\x5d\x66\xd0\xb8\xb8\xbc\xdf\x55\xac\xc2\xf1\xb4\x1b\x4f\x91\xa6\xc2\x6f\x5f\xef\xf6\xeb\xfb\xbb\xdd\x7e\x7d\x73\xd8\x3e\xad\x37\x77\xdf\x37\x23\x5d\x6d\x60\x22\x88\x2c\xb4\xb2\x3b\x41\x2d\xc3\xc2\xf4\x46\xdd\x06\x6c\x13\xf1\xaa\x75\x35\x62\x1f\xda\xae\xc0\x20\x43\x0b\x47\x6b\xf1\x68\x65\x75\x2c\xf4\xf3\xe2\xae\x32\x0e\x2c\x72\xae\x9b\xe4\xd6\xbc\x99\x6c\x43\x0c\x94\x65\xb7\xf0\xa6\xd6\x98\x42\x65\xba\x7d\x32\x40\x19\xa9\x0b\x09\xd6\xd1\x54\x97\x61\x4a\x6c\x28\xa3\x02\xc9\x15\xc1\x22\x70\xfe\x85\x64\x1a\x49\xb7\x39\x5e\x6f\xf6\xab\x67\xc8\xcb\xc6\xe6\x3f\xfc\x73\x49\x09\x04\x8f\xdc\x63\xd3\xde\x56\xd5\xf0\x67\x19\x07\x5e\xd1\xe9\x19\xda\xfc\x0d\x09\x3f\xda\xb7\x2b\x20\x4d\x2a\x4b\x16\xd1\x2d\xac\xa6\xb7\x51\x80\x49\x93\x11\x8c\xd2\x6a\x13\x5a\x61\xb5\x5e\x25\xc8\xf5\x51\x81\x25\x6f\xc3\x63\xde\xae\x7f\xa1\x3a\x0f\x47\x2f\x53\x91\x50\x2e\x80\x7b\x77\x77\x77\x78\x0a\x67\xaf\xa5\xe2\x98\xf8\x45\x6e\xe0\x74\x2a\xd0\xa1\xa5\xfa\xa1\x56\xc6\xa6\xd0\xfa\xc2\x2e\x1a\xc5\xbe\x34\x6c\xbc\x77\x4c\x0b\xf9\xdc\xf5\x3a\xb5\x33\x5f\x63\x8b\xf5\x31\x2f\xd1\xd3\xec\x7d\xf0\xbd\xf4\x40\xb1\xb4\xc3\x52\xf7\xf1\x1e\x60\xc8\x52\x1a\xfe\x26\x7f\x2e\xa7\x64\x93\xb6\x43\x18\x70\x41\x89\xa2\x55\xad\xce\xfe\xf9\xc3\xc0\x18\x2f\xb8\xf5\x1b\xe6\x0e\x67\xd6\xd9\x2e\x4b\x31\x08\x08\xc3\x28\x23\xf7\x5c\x5b\xc1\x3f\xff\x65\xc3\x30\x12\x91\x1c\xb1\x1f\xec\x2e\x95\xbb\x20\x8c\x22\x23\xa3\x7e\x8f\x1e\x25\xdb\x21\x4c\x45\x68\xb9\x47\xf2\x23\xee\xab\xdb\xbc\xcc\x9b\x17\x3b\xa7\x47\x06\x54\x98\x25\xa9\x71\x1e\xf9\x6f\x54\x4a\x35\x7d\xc1\x2c\x95\x32\xf5\xe2\x18\x1e\x85\x38\xed\xc2\x23\x61\x25\x11\x3d\x87\xe4\x94\xe1\xc8\xf7\x42\x5b\x10\xb8\xfe\x7d\xff\xb4\xba\x59\x93\xf4\xcb\xc7\x0c\xbb\x10\x72\xc3\x69\xe8\x5d\x49\xe9\x10\x6d\x80\x50\x04\x86\xc4\x9f\xe5\xb9\x2e\x2d\xfd\xd6\xf8\xc0\x08\x45\x14\x11\xc9\xa3\x3c\xbf\xaf\x8a\xe2\xf1\xdc\xaa\xea\xf8\x41\x82\x0d\x42\x11\x07\x84\x69\xfa\x51\x75\x47\x13\xf9\x23\xfa\xb3\x2c\x16\x84\x9d\x61\x49\x0e\xc1\x4f\x38\xb9\xfa\x96\x8f\x43\x6b\x10\x42\x24\xa8\x52\xee\x19\x8a\x02\xa1\x19\x6d\x93\x93\xc4\xe2\x07\x17\x27\x51\xe0\xc0\x8d\xab\xa2\xb0\xcc\xef\xfd\x34\x93\x41\xc2\x2d\x87\xc7\x93\x15\x96\x9b\x8d\xb8\x0c\x35\x1d\x79\x1b\x6c\xc1\x2b\xdc\x7f\xe4\x4a\x7d\x7e\xca\x84\x32\xe3\x34\xe2\x26\x2f\xf5\xa4\x6e\x6c\xde\x4f\x30\xd6\xeb\xa3\x91\x86\xcf\xfe\x75\xf6\x54\x8a\x49\x2a\x68\x22\xcc\x8e\x15\x44\x9a\xf7\xe0\x89\x77\x1d\x3a\xa3\xca\xc5\x91\x2e\x2d\x86\x50\xa9\x94\x48\x32\x0e\xae\x30\xb6\x5b\xec\x4d\x33\xaa\x36\xff\x9f\x0f\xd0\xd9\x10\x22\x53\xa9\x3b\xd9\xfa\x03\xfe\xd1\x38\x50\xca\x6c\x7e\x63\x6c\x11\x74\x5e\xe4\xce\x6a\x00\x8e\xf5\xb3\x21\x44\x65\xb4\x5b\xab\x9b\xaa\x21\x95\x9f\xe9\x5d\xa2\x40\x04\xe4\x45\x69\x7c\xdb\xad\x1f\x76\x17\xb8\x60\x88\x02\x94\x94\xa8\x7c\xa9\x8a\xf7\x5b\x27\x2b\x79\x7b\x2e\xf5\xd4\x76\x8d\x58\x14\xd0\xa1\x6d\x21\xc6\xf8\x61\x7a\x1a\x22\x16\x2b\xb2\x8f\x6f\xbf\x3f\xdc\x1c\xbe\xac\xf6\x5f\xd7\x4f\x77\x0f\x5f\xc6\xc7\x6d\xc4\x44\x22\x06\xe0\x1e\xd5\x46\x7d\x3a\x13\x22\x86\x48\x8a\xc7\x1b\x9b\x31\xeb\x9e\x2f\x2f\x9f\xbf\x54\x50\xcc\x8a\xa2\x5c\xff\x50\x71\xcf\xac\x76\x53\x95\xd0\x7a\x32\x76\x88\x62\x26\x95\x2b\x7b\x71\x6f\x3b\x9d\x07\x51\xac\x90\xc6\xd4\xa7\x98\x3b\xcb\xf5\x6a\x7f\xfd\x29\x4c\x1f\xa2\x24\x60\x64\xb3\x38\xaf\xde\x3f\xd5\xa7\xeb\x2c\x4a\x03\xa4\xc8\xb5\x0b\x25\xfd\x86\xb9\x7f\xca\x34\xb4\x49\x88\xee\xc3\xda\x57\x76\x8e\xee\x13\xfe\xf7\x9c\xd7\x78\x21\x14\xd3\x5d\x62\x05\xbf\xee\xae\x1f\x3b\x8f\xe7\x69\xcf\xfa\x9b\xa5\x9a\xb4\x57\x9a\xca\xb4\xd7\x30\xb3\xf3\x23\x1e\x30\x4a\x62\x58\x7e\x3e\xca\xc5\x74\x1b\xf5\xd5\xf9\x7d\x22\xbc\x32\x4b\xb8\x40\xc4\x63\x6b\xf7\xeb\xce\xb2\x7e\x3c\x61\xb9\x24\x71\x0e\x11\x4f\x91\xbb\x3a\xd4\xf3\x69\x75\x94\x79\x38\x1b\x6f\x9e\x49\x15\xf6\x2c\xb6\x0f\x55\x7b\x71\x07\x23\xd0\x52\xb7\x13\xa9\xf6\xb4\x51\xa4\xa1\xd5\x49\xce\x4b\x9b\xaa\x09\xfd\x5b\x0b\x29\xa9\xfe\x9f\x58\x28\x2d\xdc\xe2\x1a\x4e\xce\xf7\x59\xde\x48\x22\x08\x90\x04\xf4\xcd\x30\xbf\xfc\xed\x00\xb8\x93\xf5\xfb\xfd\xd7\xa6\xfa\xfd\x57\xff\x77\xa9\xc8\xa2\x19\x88\x10\x8f\x57\xbe\x4d\x06\x92\xb0\x03\xb4\x90\xf2\x37\x3c\x74\x86\x41\x73\xa8\xcc\xc1\xeb\x73\xb8\x8e\x2a\x56\xa4\x03\xe7\xa0\xbf\x97\x18\x19\x88\x94\x94\x84\x58\xee\x96\xd1\xd3\x61\xb7\x5f\x6f\xfd\xc5\x3a\xc4\x44\x8d\x21\x7f\x43\x2c\xdf\xf7\x88\x25\x1b\xc0\xa2\xbb\x9f\xc3\x1c\x98\x9e\x7e\x91\x06\x1b\x73\x75\x5b\xdb\xb7\xfd\xec\x3e\x52\xb1\x3e\xba\x42\xce\xe3\xb6\x67\xe8\x1d\x9e\x14\x83\x80\x79\x7e\xc0\x5a\xe6\x2d\x41\x35\x83\xd9\x57\xc7\x90\x53\x4d\x92\x7b\x63\xa7\xcc\x42\xa5\x36\xfe\xbd\x10\x65\xe2\x56\xaa\x6e\x11\x8e\x44\x85\xd7\xd9\x32\xf3\x19\x64\x92\x8c\xa2\xca\x0d\x5a\x09\x2d\xcf\xb5\x7b\x51\xff\x03\x71\x90\x70\xad\x87\x5c\xd1\x0d\x61\x7e\x8e\xa7\x02\xbb\x1d\xf1\xea\x7d\x0b\x2d\x11\x72\x59\x51\xcd\x51\x41\x07\xc4\x41\x6a\xd5\x5f\x3b\xbb\xd3\x07\x55\x9f\x28\x7e\x75\xb1\xca\xfd\x15\x3c\x4e\x62\x67\x2f\x2c\x3b\x7d\x71\x20\xac\xe0\xc3\x6e\xbd\xff\xbe\x3d\xdc\x3c\x3e\xf8\x1d\x32\x0e\x33\x4d\xd2\xa8\x84\x4e\xb1\x98\xed\xbe\x09\x6c\x9c\x9f\x4e\x3b\x6b\xba\x4d\xfc\xdf\x38\x52\x92\x32\x0d\x27\x67\x7f\xfe\x86\xf9\xf3\x4b\x3b\x64\xd4\x66\x0f\xd1\xdd\x50\xba\x40\x1d\xe4\x47\x0a\xd4\x8d\x3f\x7b\x1c\x3b\x62\xb6\x89\x31\xe6\xdb\x74\x46\x18\xaf\xed\x97\xcd\x61\x28\x9b\x83\x38\xc9\x78\x92\xf4\xa5\xcf\x58\x57\x1b\x2c\x1b\xf8\x4f\x6f\x46\xc4\x29\x67\x1e\x78\x75\xed\x75\x01\x21\x4e\x45\x40\x00\x5b\xc7\x1e\x4e\xf5\x07\x0f\x8f\x4f\x9b\x95\x0f\x27\xc5\x59\x6a\x79\x14\x29\x80\xbd\xb5\xec\x27\xd8\x8b\xaa\xef\xf1\x78\x2a\xe6\x54\x88\x10\x67\x82\xa5\x7d\x29\x2f\x95\xa0\xac\xea\xe7\x99\x33\x16\xf3\x30\xd4\x0e\xec\x3f\xa6\x90\x59\xae\x51\x19\x5b\xfe\x31\x8f\x23\xe5\x2a\x55\xf4\x59\xb5\xd1\xa1\x38\xab\xd7\x77\x79\x7e\xdf\xd7\xa0\x5e\x87\xc1\xe2\x32\x26\x7a\x90\xcd\xf5\xdd\xa6\xff\x9b\x49\xec\x79\xd4\x42\xdd\x1e\x4e\xcf\x87\xff\x9e\xf3\x3f\x17\x52\x71\x10\x03\x88\xd0\x15\x70\x77\x96\xee\x1e\xe1\x68\x95\x07\xc7\x66\x68\x2c\xb3\x20\x4b\x3c\x3d\xcd\xeb\x7c\x20\x64\x96\x92\x58\x41\xf3\x5e\xa2\x7a\xa9\xab\x72\x7a\xad\x41\x29\x69\xcb\xfc\x85\xba\xb3\x34\x6c\xeb\x9c\x87\x6b\x3a\xcd\x55\x88\x5e\xce\x1d\x9b\xe6\xf0\x92\x6b\x8d\xe5\xc1\xb2\xd1\x5d\x66\xeb\x67\x73\x4f\x89\x14\x48\x7c\xba\xdb\xf6\x3f\xd6\xfa\x86\x58\x81\x1a\xa1\xce\x3a\x03\x8d\xb8\xea\x97\x4d\x90\x18\xa3\x90\x58\xd9\x37\x77\x0f\x77\x9b\xd5\xfd\xc1\x17\x67\xde\x3d\xfc\x58\xef\xf6\x9b\xb5\x4f\xfe\x74\x3d\xd3\xc4\x3a\x6d\x4d\x5b\x57\xef\x16\xf0\x68\x73\x3a\xd3\xd7\x34\xa1\x21\xf6\x39\x8d\x36\xd4\x4d\xb9\xaf\xbf\x43\x91\x01\xb1\xc9\xa4\x08\x27\xdb\x66\xfe\x27\xea\x59\x56\x05\x62\x23\x53\xaa\x28\x7f\xf4\x3a\x9b\xff\x98\x04\xb9\xfe\xc5\xdd\xc9\x9b\x04\xb1\x42\x57\x33\x31\x20\x7d\x26\x3f\x99\x04\x80\x14\xae\x1f\xa8\xa3\x3f\xa4\x11\x58\x98\x6a\x09\xe3\x9a\x6a\xc8\xf1\x54\xa9\x97\x83\x2b\xf7\x3a\xa8\x51\x3c\x2a\x61\x90\x7a\x7d\x18\x9b\x8b\xbe\xd3\xb7\x55\x4d\x2c\x31\x8b\xdb\x4c\x12\x82\x26\xac\x9c\x35\x8d\x7a\x1e\x4c\x68\x3f\x72\x92\x92\x28\x30\x41\x34\x95\xef\xbf\xed\x9c\xda\x7a\xf9\xf4\x4a\x22\x16\x48\x31\x6c\xee\x21\x31\xd7\xfb\xe7\x8d\xa4\x22\x26\x0a\x0a\x70\xef\x46\x0e\xfd\xa5\x69\x93\xc4\x41\x88\xc2\x53\xe5\x17\xb9\x7a\x27\x37\x70\xfa\x70\x71\x04\x84\x0f\xcf\x9b\x3b\xe5\xbc\xdc\x3e\x10\x91\xc4\x89\xa4\xf9\xe7\x10\xee\x3d\x92\x1f\x92\x44\x21\x49\xdd\x6d\x8b\x73\xb3\xed\xe3\x22\x49\xa2\x6d\x0d\xe4\x90\x74\xbb\xaa\xe1\x79\x90\xb1\x80\x24\x65\x89\x0a\xa6\xfc\xce\xcd\x16\xeb\xef\xbb\x9b\xd9\x83\xf1\xce\x41\x73\x5c\x4b\x87\x23\xfc\x3a\xe8\xe7\x5f\x23\x71\x4f\x0d\x79\x1f\x4c\x49\xb8\x42\xb2\xc3\xad\x6f\x71\x9f\x97\xaf\x0f\xd8\x7f\x61\x91\x65\x54\x2b\xbb\x59\xfd\xee\xb9\x3d\x56\x37\x3f\xee\x76\x8f\x3e\xc5\x0f\x89\xe0\xb1\xea\x8f\xb8\x51\x2a\x1d\x12\x88\x12\x70\x61\xc0\xef\xbb\x9b\x39\xee\x16\x12\x48\x84\xa5\xc5\x29\x9f\xf1\x42\xcb\x03\x12\x19\x1b\xcf\xca\xe1\x11\x0a\x7d\x13\x6a\x1b\xe2\x24\x4a\x12\xc2\x72\x78\xd6\xc7\x4f\xf1\x7d\x90\x28\x1e\x53\x95\x80\x4b\x81\xfd\xf7\x8c\xe7\x7e\x7a\x28\x11\xf4\xd2\xef\x54\x36\x72\x5d\x40\xd3\xb8\xaa\x86\x0f\xe6\xa7\x42\x4d\xde\x1c\x4d\x29\x65\x2d\x98\x16\x7e\x7d\xec\xcc\xfc\xbf\xfe\xeb\x7e\x4f\x27\x11\x31\xad\x36\xf9\x73\x39\x64\x97\xaf\x27\x1e\xb6\xef\x2a\x23\x63\xe3\x33\x65\x75\x26\x9e\xaa\x31\x31\x5c\xd7\xae\xc8\x9f\xca\x4f\xd5\x4f\xaf\xf4\xd1\xfd\xc3\xfa\xdf\x32\x61\x28\x7b\x7e\xc5\x57\x2a\x58\xbc\x0c\x22\x25\xc8\x63\x82\xc1\x95\xf9\x9f\xaf\x07\x8b\x5f\x25\x04\xfa\xdf\x67\x55\x9b\x6e\x3c\x26\x09\xc2\x5e\x33\x81\x08\x2a\x3f\x62\x1f\x9e\x0e\x8d\xc9\x18\xd9\xc0\x3b\x6c\xaf\xf3\xf6\x9d\xa0\x1d\xd3\x8f\x6f\x44\x46\x61\xad\xbb\x87\xbb\xfd\x1d\x89\x29\x5e\xed\xee\x6e\x5c\x5d\x34\xa4\xa1\xcc\xb2\x9e\x82\xe6\x05\x6a\xc7\x8f\xb6\xb8\xa1\xa7\x11\x0b\x49\x66\x81\x32\x90\xb6\x92\xd2\xdf\x27\x4a\xc3\x21\x03\x4f\x31\x8b\x7d\x45\x98\x84\x0f\x8e\x0a\x7f\x99\x0a\xad\x96\x6d\x5e\x76\x2e\xda\x5d\x39\x89\x02\xa7\x49\x90\x1a\xab\x24\xea\x72\xd6\x5b\x78\x47\x3d\x8e\xbb\xa7\x49\x1c\x61\x38\xe8\x3b\x38\xee\xa8\xbe\x51\xd0\xe9\x79\x95\xb7\xaa\xca\xcb\xfd\xd3\xe3\xc3\xdd\xef\x7d\x63\xa6\x28\x41\x67\xa3\x27\x55\xeb\x64\xec\xb1\xec\x1c\x52\xca\x7d\x8e\xcb\x97\x21\x4d\x59\x42\x78\xaa\x07\xfc\xb9\x5d\xdd\x51\xf4\xea\x34\x0b\xa6\xa4\x29\x26\xca\x51\xba\xec\xaa\x82\x12\xd1\x53\x60\xce\x6c\x44\xb3\x80\x31\xe3\x03\x19\x25\xbe\x13\x35\xf2\x68\x5e\xf6\x1d\x79\xc4\xb1\x1f\xdf\x51\xba\x39\x15\x81\xd5\x3f\x3c\x60\xa9\xaf\xb0\x75\x70\xeb\xe9\xae\x93\x0a\x11\x7b\x8d\xbf\xdd\x09\x14\x5e\x2d\xd0\x11\x41\x0a\x41\x40\x66\x90\x43\xca\xac\xdb\x97\x59\x49\x3b\xa4\xc0\x38\xbd\x5f\x7f\xfe\x12\x27\xfb\xf4\x14\x48\x41\x8b\x70\x84\xaa\x5c\xac\x9e\xe8\x7a\x81\x0f\x75\xae\xf4\x44\x67\x05\x52\xc9\x54\xe6\xc5\x50\x9c\xee\xbf\x6f\x09\x81\xe8\xf6\x8a\xaa\x7a\xed\xfc\xea\x6e\xfb\xeb\xac\x22\x1b\xed\xd0\xfb\xaa\xa7\x89\x5a\x9e\xc2\x32\x4e\xac\x64\x5e\x77\xe1\xee\x25\x3f\x35\x63\x22\x20\x36\x4b\xb0\xf9\x8b\x78\x44\x1b\xde\x9f\x24\x46\xd7\xe2\xf0\x34\x20\xb8\x1b\xd7\xaf\xd0\xbc\x7c\xbb\x14\x60\x74\x1d\x55\x96\x11\x1c\xf2\xa0\xaa\xb2\x39\x7f\xb8\xc0\x94\x64\x3e\x09\xea\xa2\xa3\xb5\x67\x59\x5b\x5e\x3f\x0a\x43\xaf\x76\xbe\x69\x9e\x1d\xf1\x8f\x6b\xd3\xa9\x89\xdc\xd9\xda\x56\xf5\xb1\x37\xb8\x52\xcd\x03\xf2\x5d\xa8\x64\x71\x33\xa4\xac\x53\x64\x11\x85\x01\x4e\x35\x15\x73\xd4\x57\xe7\x77\x12\x66\x6d\xda\xb3\x67\x3d\x80\x14\x43\x19\x3b\x40\x85\xf7\xe6\x3f\x60\xe4\x9a\xbd\x1c\x26\x22\x76\x67\x5b\xcf\x59\xd3\xbe\x60\xdd\x56\xf6\x33\xda\xac\xb0\xef\x2c\xb4\xc7\xdf\x0d\x89\xda\x91\xef\x91\xa2\x40\x0a\x3c\xf9\x5b\xed\xb0\x28\x6e\xf0\x08\x33\x29\x64\x48\x11\x23\xca\x60\xdd\xad\x36\xd6\x41\xc6\xce\x60\xfb\x0d\xf3\xe5\x6f\x90\x05\x29\xf8\x40\xd9\xd5\xf9\xdd\xc2\x09\x66\x3d\x40\xea\x21\x13\xbd\x7a\x83\x76\x90\xd7\x9d\xdd\x8c\x05\x49\xe2\xcc\x81\xd5\xdb\xf3\x26\x2f\x51\x6f\xb1\xbe\x81\xf7\xd9\x2d\x59\x64\x11\xa4\xc6\x55\x29\xec\xb0\xed\xbe\xfa\x0d\x9e\x6a\x9c\x6a\xda\xf9\x0b\x34\x52\xdd\x79\x55\xe2\xb6\x6a\x87\x08\x5a\x16\xc6\xcc\x12\x5d\xa3\x3a\xd7\x79\xfb\x7e\x70\x6f\xd9\xb7\x2b\x1b\xe3\x76\x98\x99\xa2\x3b\x1e\xad\x72\x71\x7f\x58\xfe\xa8\x5a\xd4\x0f\x95\xdd\x12\xd7\xdd\x80\x3d\x54\xa3\xcb\xc9\x19\xdb\x42\x0d\xb2\x2a\xaa\xdc\xaf\xfa\x2c\x0e\x80\x62\x28\xca\x13\xbc\xd8\x30\xf9\xd8\xbc\xc9\x62\x99\x92\x47\x4d\x55\xe9\x9e\x65\x69\xc6\xaf\xe4\xba\xa6\x69\xc8\xba\x17\xfc\xfd\x8f\x7f\xae\xfe\xd1\xff\x2d\x4e\x83\xd1\xe1\x3c\xdd\x9c\xb2\x2c\x0a\x45\xe4\x0b\x11\x1c\xe3\xcc\x53\x6f\x67\x3b\xb5\xd0\xff\x19\x25\xb3\x33\x1e\x69\xcb\x8b\x86\x58\x57\xef\xb3\xdb\x71\xa5\x08\x17\x75\xb3\xda\xdc\x5d\x56\x82\x40\xc6\x11\xed\x56\xd4\xeb\x55\x01\x0b\x2f\xf5\xaa\x20\x13\xcc\xa2\x24\x1d\x48\x75\xc0\xdd\xf7\x9a\xa6\xbe\x63\x68\x75\x2a\x9f\xd1\xeb\x6f\xce\xbe\xba\x10\xb1\x4f\x50\x4c\x0c\xc0\xed\xcf\xe5\x4d\x36\x53\xda\x50\x4d\xb7\xa3\xdc\xf8\x3f\x98\x27\xcb\xf3\x59\xc7\x22\xca\x7a\xa6\xd4\xce\x10\x1f\x49\xdc\x40\x86\xd2\xb2\xa5\x2b\x4b\xeb\x34\xc5\x2d\x12\x95\x30\xd5\xfb\xce\xb9\x50\x80\x33\x23\xb2\x70\x60\xd8\xb8\xc6\x02\x65\x9d\xb7\xb3\x65\xc2\xc3\xd8\x02\x99\x54\x55\x59\x67\xf1\x0d\xa7\x80\xae\x0f\x13\x2d\x1f\xfd\x7d\x2e\x60\x02\x3c\xcc\x52\x92\x8f\x38\x8c\x23\x5e\x53\x1e\xaf\xc9\x3c\xe0\x21\xb7\x01\x57\x9b\xfd\xbc\x08\xc2\xf0\x28\x0b\xfb\xb8\xa0\x23\xc1\x98\x16\x21\xfa\x7e\xc8\x09\x42\xe3\x4e\xf2\xf1\xc0\xf2\x38\x00\x62\xb2\xdc\x7e\xbb\x1a\x45\x9b\x78\xac\x59\x84\x7d\xb4\x89\xa8\x8e\x7b\xfa\x4f\xbf\xe2\x79\x12\x5a\x1e\xc5\x09\xfd\x53\xf3\xe1\x06\xc8\x93\x34\xa5\xca\xa8\x3a\x57\x2f\x93\x8f\x94\xa8\x80\x8c\x5e\x5b\x55\xf8\x68\xd6\xae\x32\x63\x76\x39\x06\x94\x81\xf3\x5b\xd9\x5d\xd9\x62\x5d\xf6\x01\x65\x9e\x6a\x0b\xbf\x00\xad\x3d\x38\xe6\xb3\xb0\xd3\xf8\xd3\x64\xa1\x2d\xce\xd2\x68\xe0\x5c\xb4\x77\xe5\xc9\x97\xb5\x01\xcf\x12\xa0\x38\x85\xc9\x9b\x17\x72\x99\xbf\x62\x71\x1a\x45\xf2\x7d\x37\x93\x50\x48\x18\x9d\x3a\xe6\xfb\x01\xdb\x97\x5e\xbc\xc1\xdf\x8c\x73\x05\x3d\x5b\x90\x83\x9c\x77\x07\xcc\xe0\x97\x72\x0e\x20\xbd\xd6\x82\xfd\x85\x47\x1b\x70\xf8\xde\xa0\x5e\x35\x63\xc1\x2c\xe0\x42\x28\xb2\xbf\x0e\x16\xd6\xe8\xf3\x66\xf3\x49\xb9\xb8\x86\x39\x24\x8a\x7c\x1a\x0b\x0f\xb3\x69\x28\x7d\xd7\x7f\x95\x6e\x58\x02\x7a\xf1\xba\x21\x3e\xc5\x9d\xa7\x38\xf2\x3d\x64\xc0\x98\xdb\x7f\x56\x87\xd5\x6e\x33\xfb\x60\x32\xe0\xc2\x26\x34\x5c\x8c\xf3\x32\x0b\xc6\xa5\x0e\x13\x67\x98\x1c\x24\xb6\x87\x39\x15\x4f\xd7\x43\xd0\x54\x34\x45\x7e\xb2\x2f\x3f\x2e\xed\x02\xae\x0d\xf3\x0c\xe1\x2b\x63\xf2\x22\xa7\x03\xc7\x54\xb3\xef\x83\x91\xd5\x81\x19\x59\x08\xa1\x63\x36\x99\xfe\x1e\x72\x7b\x10\x6d\x3c\x9a\xd7\xff\x90\xc9\x24\x31\x44\x7f\x5d\xfd\xb1\xda\x3f\x1e\x28\x01\x7e\x6d\xa9\x1a\x56\xbb\x75\xdf\x0b\xd2\xd4\xcd\xc2\x6d\xf5\x13\xeb\x73\x33\x4f\x88\x71\x83\x91\x64\x13\x06\x22\x9b\x1b\xea\x66\xed\xf7\xd2\x05\x5b\x50\xbb\xc0\xea\x2c\xaa\x2a\x82\x28\xa5\x68\xb5\x07\xb0\x50\x6c\xf1\x6f\xc4\x15\x45\x90\x4a\x1c\x98\x83\x1c\xe3\xfa\xc4\xbc\x60\x21\xf7\x7d\xc1\x56\x97\x19\xc4\xab\x73\x5d\x62\xed\xea\xe5\xa6\xe8\x67\x10\x8c\x05\x84\xcd\x7e\x2d\xf2\xd7\xfe\x6f\x3a\x31\xa4\xad\x9d\x17\xe7\x16\xb7\x93\xf8\xd2\xf4\x55\x18\x26\x64\x48\xe6\xcd\x43\xd5\xee\xb0\x30\xcb\x1b\xa1\x08\x53\xab\x48\x76\x24\x96\x58\xaa\xf8\x6c\x16\x12\xc9\x22\xcc\xe2\x50\x78\xd5\xa5\x09\x91\xf8\x62\x0c\x54\x44\x49\x4a\x5a\x8a\x77\xd1\xe4\xd0\x10\x91\x14\x94\x3d\xba\xcf\xeb\xf3\xaf\xe5\x28\xea\xc4\xcb\x16\x49\xac\xc9\x1a\xcb\x1d\x0f\xc5\x5d\x69\xa5\x12\xfc\x0d\x13\x8c\x28\x69\x8c\x84\x3d\x21\x3b\xd1\x46\x5b\x27\x0b\x52\x24\x86\x65\xdd\xf3\x5c\x7f\xf1\xe1\x54\x91\x06\x2c\x71\xa5\xed\x8f\xc6\x0b\x83\x38\x8e\xfb\xc7\xf2\xba\xb9\x9a\x19\x17\x82\x47\x82\xb2\x7f\xe6\x3c\xdb\x3f\x85\x90\x01\x1b\x93\xe7\x5d\x17\xf9\xe0\x84\x0a\x21\x21\x36\xfd\x2b\x8c\x8a\x79\xfa\x76\x49\x34\x43\x07\x8f\x86\x5a\x28\x42\x03\x01\x41\xe4\x85\x39\x7b\xc0\xf3\x07\xf8\xb7\x85\x68\x85\x90\x31\x4f\xf5\x20\x24\xb9\x14\xb5\x17\x4a\xa4\x84\x95\xbf\x81\xf7\x1b\x78\x5f\xb0\x9f\x84\x8e\x52\x92\xb5\xd1\x28\xcf\xcf\x87\x6e\x7e\x8c\x40\x5b\x42\x4b\x5b\xba\x49\x5b\x26\xf9\x23\xa0\xda\x59\x91\x2f\x08\x6d\xb8\x0a\x1c\x87\xda\xf5\x4b\xae\x5e\xb1\xdc\x42\xfd\x7a\x3d\x2a\x16\x73\x3d\x91\x09\x3a\x1f\x4a\xfc\xd5\xda\xaa\xe7\x71\x18\x41\x60\x82\xb1\x43\x14\x2c\x43\xf9\x41\x20\x86\x16\xb3\x59\x3d\x63\x9b\x8f\x8e\x61\x08\xd2\x18\xed\x47\x69\xb1\x6e\xce\x72\xbc\x99\x4c\xe7\x32\x04\x28\x89\xe3\xe2\xbe\x22\x6f\x6d\x59\x05\x61\x32\x92\xc0\x58\x68\x89\x0f\x8a\x11\xb1\xf2\xc2\x90\x03\x4b\x39\x77\x05\xd2\xdf\xc7\x4f\x30\x5d\x19\x3d\xcd\xd0\x68\x49\x02\x83\x8c\x6a\x5d\x6a\xf8\xf9\x5b\x7e\xc2\x55\xeb\x58\x7f\x2f\xe2\x50\x3e\x56\x0c\x61\x20\x52\xcf\x3d\x7c\x67\x25\x40\x59\x32\xc9\x9f\x41\x28\xad\x4c\x28\xf1\xe3\x5d\x57\xd6\x2f\x1f\x18\x36\x00\x22\x57\xee\xdb\xad\x9a\x9f\x25\xd6\x13\x85\x43\x80\x28\x14\xc4\x7e\xda\xd6\xe7\xa6\xfd\xc8\xfc\x82\x28\x49\x89\x6b\xe7\x44\x75\xf1\x3f\xab\xa1\x88\xbd\x6b\x13\x04\x7c\xb3\xc1\xe3\x23\x1e\xff\x31\x31\x2b\xfc\x8a\x86\x88\x07\x04\x21\xec\x9c\x8a\x27\x9c\x5b\x66\x10\x89\x8c\x7c\xaa\x9b\x1a\x9e\xab\xd2\xaa\xf1\xf9\x26\x19\xd1\xe1\x79\x20\xcd\xad\xe5\x6f\x1e\x99\xd4\xc3\xf3\xbe\xbd\x4b\xac\x89\x42\x74\x31\xae\x08\x91\xb1\x65\xc8\xab\xa2\xc5\xda\x6a\xe1\x54\xb5\x73\x06\xa7\xd3\xa4\x3f\x04\x20\x66\xa8\x87\x94\x23\x49\xab\xf7\x43\x98\x04\x8a\xd0\x53\x4e\x8c\xd3\x13\xf8\x5f\x68\x90\x5c\x26\x03\x20\x01\x06\x0e\xc0\x40\x36\x12\x34\x87\x06\xb1\x17\x20\x03\x48\x23\xcb\xcb\xf5\xec\x2a\x4f\xd7\x85\x83\xdd\xba\x76\x9e\x62\x68\xf5\x1e\x5a\xf5\xe2\xa0\x47\xae\x49\x70\x0b\xa3\x6b\x3d\xb1\xd5\xa7\x20\x13\x10\x90\x19\x31\x36\x73\x89\x95\xd2\xdf\x0c\xa2\xd8\xe3\x09\xc9\xd6\x1c\x7d\x08\xdf\x03\x6d\xf1\x8f\x13\x7e\x21\x9c\x2b\x9b\x98\x27\xa0\x34\xa3\x05\xb0\x79\x9f\x10\x28\x4e\xe6\xb3\x32\x76\x96\x80\x67\xaa\x1e\xf6\x0f\xd0\x90\x46\x96\xe9\xe6\x97\x85\x92\x8c\x72\x30\x80\x71\x48\x9a\x2b\x58\xea\x3b\x55\x4d\xce\x1c\x40\x19\xd9\x00\x6c\x7e\x3c\x15\xb8\xff\xb2\x9e\x9d\xdd\x60\xa2\x88\xe8\xd1\x2a\x63\x6c\x96\xee\xe0\xa0\xe1\xd3\x77\x34\x09\xa7\x2c\x2e\x99\x0d\xdd\xf2\xf7\xa7\xd0\x07\xcb\xc6\x70\xcb\x20\xfb\x8c\x2d\x14\x45\x8d\xcd\xb9\xf5\x26\xba\x0c\x02\xeb\x89\xfc\x91\xdf\xe7\x50\x51\x4d\xdc\x27\xfb\x8e\x0c\x22\x15\x26\x2e\x2c\x5c\xbf\xf9\x1c\x8d\x15\x99\x5b\x95\xda\x83\xab\xfa\xbb\x4b\x41\x29\xfe\x26\x7f\x2e\x9f\x50\x55\x6f\x58\xbf\x2f\x05\xf3\x25\x8b\xe2\x94\x8d\x52\x8f\x0b\xf0\x10\xc9\x22\x49\x96\x7a\xde\xfd\xe0\xf3\x68\xf7\x90\x2c\x06\x72\x63\xac\x1d\x75\x05\xe4\x26\xce\xe6\xd9\xbf\xfe\xbd\xc8\xa2\x08\x32\x64\x29\x8b\x7c\xa4\xa1\x3a\xb9\x60\x9c\xbf\x75\x08\x26\x94\x0e\x0a\xd8\x59\x77\x36\x6d\x39\xda\xd9\x64\xc4\x2d\xfa\x87\x0a\xea\xfc\x80\x50\xb5\xc5\xf2\x1e\x21\xe3\x50\xda\x44\x58\x0d\x65\xfb\xfb\xf6\x13\x75\x1c\x90\x31\x0a\x8a\xb4\x54\x25\xae\x6f\xbe\xf8\x9f\x4c\x42\xae\x2c\x03\xf7\x5b\xf5\x8a\x17\xa2\x40\x4b\xa8\x4f\x99\x20\x43\x36\x7c\x39\x77\x1c\xdd\x9e\x4b\x9a\xe0\x50\xf4\xc4\x6b\x20\x53\x16\x91\x87\x4e\x5e\xc8\xd3\xb9\xec\xe5\xcf\xfc\x7e\x20\x33\x10\x44\xe7\x01\xe7\x1a\xec\x76\xdf\xe6\xd2\xb9\xe6\x13\xbd\xd2\xae\xab\x24\xec\x95\x85\x61\x37\x5f\xa1\xa8\xa2\x9b\xd9\xd7\xcf\xb4\xe5\xe3\xee\xcb\x97\x97\xf8\xc9\x06\x37\x71\x2e\xc7\x03\x32\xc3\x98\xd2\xcf\x54\xcf\x4c\xc8\xb0\x43\xd8\x3f\xab\x01\x4a\xf4\x7e\xbf\x5a\xfb\x7c\x80\x14\xcc\x32\xdf\xbe\xf8\xdf\x49\xe3\x3e\xf7\x2c\x45\x6a\x28\xe6\xd7\x62\xd3\x7a\xac\x1b\x94\xb2\xaf\xef\xe8\xbf\x3c\x84\x21\x45\x39\xbb\x69\x73\x02\x59\xe0\x66\x70\xe3\x25\xc4\x3a\x74\x39\xbc\xb1\x25\x2b\x21\x35\x2e\xac\xd2\xde\x8f\xbb\xf3\x94\xd6\x28\x1d\xa0\xbd\x30\x03\x48\x30\x56\xd7\xa2\xc4\x5f\xb9\xa7\xd4\x03\x29\x03\x0b\x5e\x2f\xab\x36\x57\xf8\x5b\x5e\xf6\xa5\x92\xbe\x03\x0a\x32\x96\x6e\xd6\xb7\xab\xef\xf7\xfb\xc3\x97\xd5\x66\x7d\xb8\x7e\xdc\x79\x2b\x56\xaa\x20\x85\xc1\xc1\xdf\x62\x4d\xd2\x57\x87\xe7\x16\x93\xe0\xb5\x17\xf3\x05\xa9\x14\x28\x31\x42\xdc\x6f\xb0\x05\x4a\x15\x4f\xbf\xa0\x36\x7d\xc0\xd7\x6a\xce\x2d\xae\x60\x0c\x63\x4a\xab\xdc\xe6\x35\x2a\x62\x40\xf9\x6c\xaf\x41\x99\x42\x30\xd6\xea\x7c\xfd\x48\x91\x3b\xf6\x57\xa8\x88\x8e\x40\xef\xd1\xce\x8f\x9a\xc9\xc3\x98\x2c\xa1\x7a\xff\xeb\xdb\x87\x9b\x19\x9b\x08\xa8\x20\x8c\x28\xb2\x81\xed\x0b\xf1\x2f\x35\xf9\xf3\x98\x74\x13\x54\x90\x69\x65\x29\x64\xaf\xe1\x12\x3c\xae\x98\x92\x9e\x17\x4a\xe6\x45\xbe\xec\x6d\xa9\x30\xb5\x4c\x7e\xdd\xe0\xc2\x5c\x25\xcd\xf5\x89\x32\x4d\xb9\x6e\xca\x06\xed\xc7\xec\xff\xcb\x5b\x86\x8a\x54\x10\x3a\x7d\x18\x27\x41\xef\x1a\xe2\x40\x52\x98\xb5\x7d\xc1\xa1\x7e\x13\x54\x2c\x83\x04\x7b\x70\xe2\xe6\x9d\x92\x53\xd3\x0f\xa7\x62\xd4\xbe\xea\xff\x33\x2d\x5c\x50\x89\xb0\x99\x6b\xa7\xd6\x8d\x75\xcf\x1c\x32\xb1\x17\x55\x22\xa5\x17\xfb\xb4\x3c\x34\xd3\xd4\x8c\xef\xa5\x2d\x4d\xe5\x48\xd3\xcf\x3f\x75\x8a\xb6\xd0\xa3\x22\xb6\xef\xaf\x58\x1c\x87\x6f\x93\xa1\x2d\x5f\xde\x34\x3e\x84\xa3\x38\xd3\xc4\x19\x7d\xee\x8e\x96\xea\xd4\x7b\xf0\x73\xda\x1b\xd6\x1b\x45\x8a\x6b\x45\xa9\xad\xe6\x2c\x6f\xcf\xa5\xde\xd6\xa8\x06\xe7\x4c\x09\xa6\xac\x6a\x36\x36\xed\x2d\xe4\x45\x67\xd4\xea\xce\x9d\xe8\x3b\xc4\x96\xe2\xaf\xc9\x7f\xb5\x2f\x9f\x95\x94\x83\x12\xc6\xa2\x09\x2d\xf0\xe7\x07\x14\xf3\xc1\x9d\x6e\xe5\x0a\x78\x4c\x95\xec\x76\x61\x58\xcc\xa0\xcd\x9c\x4d\xbf\x1a\x88\x8c\x10\x32\xd6\x24\xee\xe5\x58\xa7\x9d\x64\x84\x64\x86\xae\xdb\x17\x2b\xcc\x73\xb3\x7a\xfc\xe8\xf7\x17\x79\x04\x41\xc9\x58\x52\x01\x42\xde\x90\x00\xca\x5d\x69\x11\x25\xcb\x71\x6a\x25\x33\x2b\x76\xd2\xb4\x23\xec\xd6\xfc\x8e\x46\xa6\x8e\x2e\x6f\xa2\xb7\x3d\x9b\xea\x2a\x90\x14\x0f\x73\xa0\xb4\xf9\xfb\xab\xd4\x90\xf3\x0e\x5a\xef\xf2\xf2\xb9\x40\x37\x77\xf7\xd5\x05\xfd\x8a\xbf\x82\x5b\x7c\x52\xcf\x64\xac\x8f\x79\x49\x14\xe6\xc5\xcc\x08\x53\x3a\x88\x99\xdd\x98\x7f\x3a\x15\xde\x4f\x0d\x5b\x85\x51\xcc\xe4\x04\xfe\x72\xa9\x24\x0e\x0a\x63\x46\x35\x23\x9d\xcb\xf9\xd6\xd3\x92\xcd\xfa\x24\x5c\x0f\x9e\xce\x55\x0d\xa5\x9a\x1e\x96\xdc\x77\x44\x6e\x6b\x06\x0a\xc8\x8f\x77\xd6\xa9\x0e\x3f\xf8\x2a\x86\xa5\xca\x65\xa5\xf4\x7d\xf5\xb3\x3b\xfa\xb0\x44\x63\x1d\x71\xdf\x27\xb6\xec\x87\x14\x1c\xb2\x52\xfb\xae\x49\x07\x41\xc2\xe7\x21\x3f\x9b\xa2\xdc\x56\xcd\x75\xa5\x67\xb3\x4e\x07\xa9\x74\xe5\xd1\xea\x5d\x15\xb8\x3a\x9d\x10\x6a\x0a\xed\x39\x87\xe7\x5f\xc9\x0c\x47\xa7\x03\x69\xc8\x07\xf1\x05\x17\x4f\xf8\xdc\xd9\x0a\x55\x3d\xd9\x98\x35\x8b\x43\x8a\x2a\x1e\x0f\x96\x25\x7f\xb2\xef\x68\x96\x64\x14\x9a\x94\xe7\xf7\x8b\x3c\xc2\xe0\x23\xeb\x30\x4c\xc9\xff\xaf\x71\xc2\xf0\x38\x99\x01\x3a\xe4\x36\xbf\x9c\x97\xa6\xba\x94\x0d\xeb\xda\x55\xc2\x26\x5a\x74\x74\xe0\x4f\xdf\x2a\x84\x40\x59\x6e\xb2\x95\xad\xc9\x1f\x61\xb6\x3e\x9d\x50\x3a\x52\x8c\x08\x56\xbc\x13\x41\x11\x56\xdf\xa6\xad\x8c\xc2\xa8\x26\x7f\x3a\x7d\x75\x2c\x03\xf0\x81\x62\x1f\x01\xb8\x58\xf6\x97\x44\x4f\xa0\x93\x08\x2d\x35\x1b\x94\x3e\x11\xa9\x13\x81\xb4\x0e\xb1\xd4\x87\x1b\x54\x87\x90\x1d\xc2\x80\x65\x7d\x33\x04\x04\xea\x39\x3c\xe1\x09\x6a\x38\x62\x8b\x75\xfe\x27\x19\xd2\x7d\x48\x6a\x66\xbb\x2e\xfa\xee\x3a\xcb\x0c\x15\xf8\x53\xfc\xfb\x37\x44\x6f\x3d\x69\xce\x03\xda\x81\x76\x96\xb4\x46\x4d\x4f\x1b\x2d\xd2\x98\x8e\x44\x27\x89\x90\x97\xf9\xf9\x78\x35\x0f\x33\x6b\x91\x09\x88\x3c\x8c\x9f\xb8\x90\x3f\x10\x4b\xfd\x28\xd1\x74\xe9\x68\x4f\x5d\xee\x0f\x8a\x79\x35\x40\x44\xa1\x8b\xba\x3b\x08\x23\x31\x7b\x2c\x50\x01\x05\xb9\x9b\xb6\x3a\xf9\xf3\xdf\x1f\x1d\x5a\x66\xca\x2a\xe7\xbd\xbe\x56\x36\x8b\xb4\x10\x5e\x9d\x30\xc9\x82\x96\xc6\x92\x0b\x74\x9b\x6b\x0d\x6a\xc6\xf5\x08\x5a\x85\xa1\xb6\xaa\x82\xff\x81\xf2\xf5\x75\x08\x7e\x69\x1d\xb0\x20\x75\x12\x04\x57\x75\x55\x7a\x8a\x3d\xd0\x5a\x65\x14\x63\x5f\xdd\xdc\x3c\x1d\x36\xab\x3f\x56\x87\xcd\xea\xe9\xdb\x7a\x7f\xf7\xe0\x9d\x16\x8d\x5c\x53\x14\x69\x5f\xb5\x6d\xfe\x41\x08\x77\xfa\xe6\xa8\x18\xd9\x9e\xce\x9c\xf3\x85\x9c\x8b\x52\x34\xfe\x12\x0c\x7c\xdd\xed\xff\x56\x79\x79\x83\xc5\x1c\xd5\xa8\x0d\x2a\x2a\x93\x82\xa2\xd8\x43\xf3\x3a\x96\x51\x06\x6d\x8c\x65\x45\x83\xb3\x83\xf3\x7d\xf0\xcd\x30\x88\x53\x8a\xc4\xfc\xa7\xca\xcb\x2f\x70\xbc\xcc\x4a\x8e\x87\x1c\x03\x65\xc1\x49\xc4\xf3\x71\x55\x95\x7a\x5c\x28\x88\x8c\xc5\xde\x68\x72\x47\x83\xab\x84\x71\x0c\x9a\xbe\x5b\x9c\xd0\xb3\x59\x32\xff\xbf\xfc\xce\xc8\x12\x60\x43\x42\xf8\x5b\x5e\x3e\xeb\xea\xaf\x68\x72\xa7\xc3\x89\x4c\x19\x05\x9e\x4d\xac\x2a\xa6\xc1\x71\x0c\xd3\x24\x4e\x27\x9c\x2d\x7a\x94\x44\x9d\x5a\x89\xfd\xde\x8a\x61\x9a\x39\x6e\x8b\xce\x79\xa5\x34\xe9\xc7\xa8\x31\x0c\xc1\x1a\xe2\xcf\x55\xa1\xb1\xb4\xbc\xd0\x14\x65\xf8\xc7\xbc\x1f\x50\x2a\x97\xaa\x28\x2c\x8e\x66\x1c\x97\xc1\x50\x5a\x0c\xfa\x31\xbf\x90\x10\x75\x3d\x22\x96\x7a\xb9\x65\x2f\x67\xe5\x2f\x8e\x38\x10\x73\x44\xde\xdc\x60\xd3\xd6\x36\x26\x44\xb9\xb7\xfe\x04\xc4\x98\x73\x3a\x40\x09\x50\xf3\x68\xa6\x5a\xe5\xbe\x8f\x34\xa3\x18\xe5\xae\xbd\xa8\x88\xc3\x24\x48\x89\x18\xc6\xd1\x26\x7a\xc7\x7b\x8c\x97\xc1\x44\xdb\x22\xcd\xfd\xfe\xfa\x6f\xcc\x82\x94\x83\xee\x71\x46\x06\xeb\x1a\x0a\x3a\x8f\x7d\xb3\xcc\xa8\xd6\xd8\x69\x15\x40\xdd\x96\x58\xb3\xc3\xcf\xbc\x98\x16\xd8\x60\x16\x84\x54\x6e\x76\xa8\x11\x0a\x4f\x9e\x56\x2e\x1c\x2d\x98\xc5\x16\x83\xba\x7d\xc9\x27\xae\x2f\x66\x99\x95\x67\xab\xca\xe2\xfd\x8a\x30\x9b\x35\x51\xa1\x8d\x94\x76\x87\x0c\x30\x66\xc2\x42\x41\xff\x89\x75\x35\xa2\xcb\xec\x1a\x90\xa7\x5e\xc7\xb0\x3b\x9f\x3b\x5b\x7a\xe5\x97\x30\x72\xc6\x09\xb9\x78\x6e\xb0\x76\xbe\xa8\x0b\x57\x7e\x5e\x80\x87\x5c\x46\xe1\x18\x66\xf4\xe5\x61\x3f\xfb\x3a\x5c\x71\xef\xb5\x6c\x3a\xa7\x86\x44\xd5\x27\x4b\x42\xa8\x38\x72\x93\x68\x93\x97\x16\x64\xdf\x37\xf1\xc4\xc5\x50\xa1\x69\xf2\x67\x87\x7f\x3c\x61\xbd\x7f\x3f\x4d\xc0\x21\x08\x60\x49\xd6\x9a\xb6\xaa\x71\xfb\x52\xb5\xd5\xf4\x5b\x80\x94\x91\x70\x70\x14\x87\x5c\x1c\xd8\xc5\x01\x65\x60\xbf\xe9\x0b\xc8\x5c\xbd\x94\xbd\x6d\x84\x52\x24\x9e\xf7\x68\x75\x6e\x2b\x6b\xb7\x3a\x21\x9f\xe9\x37\x54\x41\x42\x88\xbd\x3d\x1e\xeb\xea\x7d\xf2\x15\x55\x18\x92\x72\x18\xcd\xc9\xeb\x77\x39\x2d\xce\x40\x85\x3c\xe3\x03\x05\x91\x55\x63\x5a\xb6\xa0\xd0\x30\x9b\x2b\x77\x74\x44\xa3\xca\xcd\xf9\xf3\x18\xa6\x63\xdd\x17\x0b\x5e\x12\x15\x02\x9a\x30\x24\x77\x6d\x73\xf7\x6d\xbd\x5f\x3d\x7c\x79\xbc\x7a\x5a\xfd\x78\x64\xfc\xa2\x7c\xe0\xc3\x63\xfc\xf3\xd9\x61\x44\x62\xb5\x4b\xf2\xa9\x49\x89\x06\x15\xb3\x15\x8e\xdd\x56\x66\x7d\xa8\x6d\x8d\xe4\x7b\xf7\x0c\x2e\x1f\xa5\xff\x3f\x78\x06\x7b\x6b\x13\x24\xc9\x60\xc0\xdb\x4c\xfb\x3e\x2f\x0a\x5b\x42\x76\x1e\xe8\xee\xc0\x04\xa8\x09\xf8\xf1\x80\x3f\x77\x24\x69\xe5\x3e\x87\x61\x51\x44\x30\x1d\xbb\xbe\xaf\xeb\xf7\xa6\x1d\xac\x2d\xd7\x27\x0c\x80\x12\x89\xf7\x77\xfb\xf5\xf5\xe3\x93\x4f\x9c\x9b\x10\x42\x3e\x84\x55\xfd\x22\xf5\x8b\x69\x29\x5a\x61\xa2\x20\x8e\xbd\x5b\xbc\xaf\x9e\x9f\x0b\xbc\xca\xc9\x3f\xa6\x08\xfa\xe3\xa3\xaf\x1b\x34\x51\x98\x51\x70\xc7\xe5\x15\xab\xfe\xef\x69\x46\x65\x05\x0f\xf8\x73\x3c\xad\x4c\x12\x5a\xcc\x87\xc3\xa0\xaf\xcb\xb6\x7e\x1f\x76\x68\x93\xf0\xcc\xe6\xc3\xc0\xe0\xb8\xf2\x61\x3a\xe1\x4c\xa2\x95\x0d\xbe\x75\xdd\xce\x72\x09\x7e\x6b\x78\x12\x53\xd5\xc7\x4d\xde\x80\x2c\x5c\x61\xda\x78\x25\x1b\x2e\x2d\x5b\x1c\x81\xc1\x73\x8b\xd9\x1b\xa5\xa2\x0c\x57\xb1\x63\xda\xe8\xeb\x18\xba\xe3\x7e\x31\x0d\x64\x04\x0b\x22\xaf\x37\x57\x55\xc5\x4d\x55\xe2\xd8\x22\x31\x82\x25\x60\xbc\x32\xab\xd3\xc6\xba\x82\xf2\x75\x1e\x72\x32\x10\x28\x32\xc1\xac\xf2\x98\xe3\x16\xea\x26\xc3\xc4\xc2\x31\xc0\x10\x47\x14\xec\xbd\x77\x67\x80\x47\x7c\xec\xfb\xde\xd6\xd5\xf1\xb7\xbc\x7d\xa1\x53\x03\x29\x08\x5a\x14\xbd\x50\x2d\x18\x89\x31\xa9\xe2\xae\xf4\x07\x88\x67\xa3\x78\x4c\x84\xc7\x0f\xdf\xbe\x3e\xde\x4d\xbe\xa6\x92\x16\x26\x67\x5c\xbe\x60\x8a\xeb\x30\x3a\xce\xa8\xba\xcf\x65\x5f\xc8\xa2\xb7\xd4\x27\xbe\x03\x8a\xd4\x46\xe5\x29\xaf\x3f\x32\xa6\x0c\x42\x4c\x59\xf3\xd7\x77\xe5\x25\x6c\x5d\x8b\x49\x02\xca\x31\x9c\xd0\xa2\x95\x1e\x86\x63\xd0\x18\x13\xbb\xbc\x06\xad\xb5\x95\x97\xae\xb7\xed\x32\x60\x2c\xcc\x1c\xfa\x77\xc2\x68\x34\xb1\x0a\x65\xc0\x42\x43\x20\xf6\x3b\x55\xf5\x15\x7f\x32\x60\x89\x31\x99\x3f\xb0\x2c\xd1\xd7\x61\x88\xc0\xc9\x20\x8c\x62\x9a\x4f\x83\x02\xeb\x13\x2e\x57\x32\xca\x20\x94\x36\xbf\xd4\x60\xa9\x37\xcd\xf3\x3f\x16\xcc\xcd\xae\x53\x4a\x8b\xc5\x49\x85\x59\xb0\x7f\xb7\x5a\xa6\xf7\x8a\x78\x24\xc3\x89\xa2\xd8\x8d\x65\xfa\x99\xf7\x13\x49\x96\x7a\x36\x6e\xd4\xb9\x3f\x32\x7a\xa3\xae\xeb\x22\x47\x42\xda\x3f\xa0\xce\x61\x49\xad\xdd\xf7\xc6\x84\x68\x93\x0e\x1e\x36\xbe\x14\x4c\x94\x41\x9c\x85\x56\x84\x6f\x12\x29\x9a\xde\x2a\x86\x50\x5b\x70\xac\x35\x41\xa1\xe8\xb9\x26\x3e\x86\x97\xc9\x20\x96\x8c\x2c\xb1\x53\x8d\x5b\xc8\x75\xbf\x93\xc8\x20\x89\xac\x52\x43\xb7\x83\xdd\xb5\xe8\x35\x41\x7d\xab\xce\x78\xd2\x93\x82\x4c\xa8\xd9\x5d\x8f\x54\xd8\xda\x7a\x3b\x12\x0f\xf8\xf3\xcb\x48\x9d\xe4\x3c\x16\x56\xba\x48\xc4\xca\x20\x45\x41\x64\x39\x9d\x15\xeb\xa1\x66\x65\xff\x68\x59\x66\x93\xfe\x36\x4e\xb8\xad\x09\x98\x79\x89\xcb\x93\x01\x4f\x7b\xa8\xf8\x3d\x74\x2f\xe2\xd2\xca\x77\xfa\xa2\x63\x44\x13\x45\xe2\x73\x5e\x5e\x17\x55\x33\x73\x3a\x64\xc0\x79\x12\x7b\x22\xa3\xaa\x28\xa0\xbe\xad\xea\xc7\xd2\x6a\x43\x3c\xcd\x01\x90\x32\x10\x51\x4c\x42\xdb\xdf\x9e\xf6\x4f\xfe\x16\x10\x46\x44\x98\x43\x09\xb2\xab\xaa\x7a\x1d\xd9\x3a\x32\x80\x08\x6c\xbc\x06\x7e\x3d\x51\xc0\xa6\xe9\xaf\x8b\x33\xb4\xaf\xdb\x1d\x7c\x4f\xa3\x05\x03\x99\xa4\xaf\xa7\xed\x16\xdd\x9d\x4c\xa0\x48\x4d\x6a\xb2\x27\xca\x40\x26\x92\x60\xc2\x1b\x28\x4b\x20\x18\xc7\xd2\xb9\x20\x03\xd5\x2d\xd1\x6e\x2f\x3b\x75\x87\xf8\xae\x73\x33\x8f\x13\xfb\x5e\x06\x1a\x03\x96\xb8\x4f\x63\xbf\xfb\x04\xc2\x20\x03\x93\x1a\x02\xf3\xa0\x65\xec\x71\x75\xe1\xcf\x97\x62\x6e\x93\xc9\xee\x2f\x16\x31\xea\x41\x74\xf8\x7d\xdd\xbe\x8c\xc3\x5a\x92\x05\x91\x70\xa2\xbb\x94\x85\x7c\xef\xff\x0e\x8c\x42\x22\xf6\xac\xb9\x2b\xdf\x72\xaf\x61\x3d\xfd\x32\x2c\x90\x16\x31\x5d\x5b\x0c\x9b\x65\x9d\x1a\x74\xa2\x24\x0b\x30\x63\x23\xee\x48\x7d\xf8\xe9\x91\xe6\x92\x85\x19\xc7\x81\xcc\xf7\x19\x5d\x09\xc7\xf4\x17\x42\xa1\x62\xcb\xbd\x74\xc6\xfd\xd7\xab\xfe\x5a\x6d\xc8\x58\xed\xec\x71\x0b\x0d\x68\xfa\x26\x0c\xb2\xd8\xa7\x2a\xba\x05\xd2\x9d\x37\xf3\x49\xca\xe2\x18\x78\xec\x43\xed\x04\xea\x9f\x77\x48\x8d\x2b\xf4\xe8\x09\xda\xbb\xa3\x74\x50\xd7\x95\x2c\x09\x18\xe5\xf3\xff\x77\x3b\x4e\xc9\x4b\x96\x30\x8b\xc0\x3b\x52\x76\xe9\xe0\x53\x7c\xbf\x0d\xaf\x9e\x2a\x5b\x35\xf7\xf5\x7c\x84\x32\xff\x6f\x77\xed\x67\xd1\x70\xc9\x52\x63\x2d\x9b\x91\x1a\xde\x47\x90\x65\x77\x45\x16\x64\x4e\xa4\xb1\xd4\x24\xae\x71\x35\x67\xd0\x66\xe9\xd2\x2e\xc6\xb2\x34\x20\xdf\x4e\x55\xc7\x6e\xdb\xbe\xc6\x9a\x6a\x53\x96\xb7\x53\x96\xa1\x5d\xca\x04\x59\x3a\x5f\xf0\xb2\x4b\xc6\xa3\x4c\x7b\x46\xc8\xc5\xf8\x8a\x64\x42\xca\xbe\x0b\x1d\x84\xcd\xec\x5b\x40\x2c\x82\xb1\x00\xed\x47\x1c\xd4\x92\x41\x12\x67\x6a\xc2\xb0\xfa\x51\x10\x70\x21\x9f\x2d\x19\x40\x9c\xf4\x0c\x78\x13\x08\xab\x64\x80\x29\xc9\x61\x3c\xd6\xcf\x50\xe6\xea\x7c\x7c\xac\x07\x54\x82\x64\x32\x50\xdc\xea\x9e\xfe\x86\xf8\xaa\xe1\xfd\xae\x6c\x72\x8d\x7d\xf1\xc9\xe7\x4c\x2d\x92\x49\xa6\x31\xf5\xae\xfe\x76\xe2\xff\x48\x26\x55\x44\x88\x47\xcb\x77\x36\xb1\x45\x67\x77\xd1\x8c\x8c\x9c\x07\x4a\x8f\xed\xd0\x43\x46\x5d\xb3\x4a\x22\xca\xfc\x13\xa4\xe6\x47\xd5\x52\x39\xf1\x5d\x69\xaa\x5b\x5b\xb5\x31\x35\xff\x24\x53\xa9\xe2\x6e\xab\x7b\xfe\x72\xae\x16\xa0\x2d\xd3\xd3\xc7\x5f\xc6\xb9\x1c\x23\xc6\xad\x18\xdc\x07\x8f\xac\xa4\xf4\x50\x09\xa7\xe6\x3c\x32\x86\x7c\x1f\xad\xc9\xfe\xf2\x5e\xb4\xdd\xc6\x22\xff\x5a\xe8\xf8\x41\x1b\x6c\x2d\xb6\x65\xbc\x2b\xf7\x7d\x38\x45\xe8\x0e\xfe\xa1\xae\xf2\xa2\xc6\x0b\xf9\xcd\xd9\xc3\x19\x66\x68\x00\x76\xcf\x7a\x5f\xfd\x86\x39\xe9\xd0\xcc\x82\xbc\x92\x99\x28\x22\x5b\x0b\x89\xfd\x64\x04\xbc\x97\x61\x64\x6c\x13\xcd\xa8\x09\x1b\xa4\xeb\x10\x47\x71\x64\x9d\x8c\xe2\x0d\x9e\xf1\xd1\x52\x54\x11\x8c\xa2\xae\x8e\x73\x31\xc4\xe5\xc7\x0c\xe3\x24\xa6\xc4\xa1\x75\xbe\x3b\x4f\x6a\x55\x42\xf1\xde\xe6\xaa\xe9\x7f\x47\x73\x4a\xc9\x39\x09\x91\x23\xb1\x2d\x7e\x96\x0c\x90\x61\x12\x19\x74\xc1\x85\x5e\x7b\x57\x16\x8e\xda\x7f\xb5\x9b\x0e\x70\x98\x70\xa6\x7a\x80\x47\x0f\x1e\xf2\x8d\x80\x0a\x7c\x23\x59\xdd\xdf\x77\x37\x7d\xa3\xc6\xd8\x46\xc2\xa6\x0e\x9a\x0c\x13\x54\x09\xf7\x55\x5c\x7e\x5c\xc6\x27\x7d\x98\xc6\x96\x80\xd0\x1d\x30\x0f\x3f\xf6\xcb\x36\x5d\x98\xa6\x92\x02\x31\xfa\x6c\xd1\x36\x2f\xfe\x37\x52\x6d\x91\x9b\x25\xfe\x74\xf1\xb5\x0f\xce\x56\xdf\xdf\x18\x72\x69\xfe\xf7\x5c\xbf\xf7\x34\x8b\x17\x2c\x64\xae\x73\x16\x03\x55\xcf\x37\x6d\x75\xba\x53\x95\xff\xcd\x2c\x8b\x44\xf7\xe7\xfb\xdd\xf5\xb7\x41\xf9\x49\x86\x3c\xb2\x6c\x5b\x4f\xab\xfd\xfa\xb0\xbf\x5b\x3f\xb1\xbe\x05\xac\xbc\x45\xd5\x6d\x3a\x96\x1a\xf1\x43\x1b\x60\x79\x00\x44\x68\x37\xd1\xe6\xbf\x67\xa8\x67\x26\x56\x28\xe2\x98\x0c\xd4\x02\x9a\x76\xa5\xda\xfc\x0d\xf7\xfd\xcc\x01\x29\x29\x0a\x4a\xe4\xc6\x6f\xb8\xc1\x63\x55\xbf\x93\x32\xe1\x2c\xa1\x32\xc3\x78\xca\x50\x86\x31\x5a\x70\x95\xcf\x4e\xd6\x5b\x68\x26\xe0\x52\xdf\xd3\x18\xe1\x0a\x93\x9e\x2a\x59\xb5\xcd\x6d\x55\x2f\x74\x53\x09\x23\x6b\x40\x81\x97\x63\xda\x57\x03\x26\xc4\x9f\x39\xa1\xe2\x82\x70\xd8\xb7\x24\x31\xb9\xaf\x2c\x7f\xe8\xf2\xd2\x51\x20\xa8\xf0\x78\x5b\x57\xda\x43\xac\x5c\x93\x66\xd2\xc7\xdd\x2c\x72\x93\x7e\xea\xa1\xff\x8a\x3a\x92\x61\xd6\x97\x93\x3d\x77\x8e\x8e\xea\xc1\xd2\x7e\x82\x62\x10\xc4\x83\x13\x33\xd7\x4b\x9e\xbe\x1e\x26\x01\x05\x21\xfd\x36\xe7\x90\x6f\xa3\x38\x81\x0c\x0d\x02\x61\x6c\x24\x49\xdc\x0c\xfc\xce\x32\x0a\x82\x2c\xd6\x03\xdc\xd5\x4e\x12\x3a\xa4\x3e\xe2\x0f\x9e\x0e\x45\x14\x44\x22\x4d\xfa\xf7\x99\x65\xbe\x65\x14\xc4\x2c\x13\x23\xe8\x4c\x5e\x3e\x60\x5f\xe0\xb4\xbc\xea\xa2\x20\x61\xda\x25\xa8\x0f\x2e\xfc\xdc\x6d\xc0\xde\x47\x96\x51\xa0\x31\x74\x49\xf9\x6b\xe2\x8f\x5c\x40\x4e\xca\x88\xa5\x9a\x9c\xca\x91\xb2\x9f\x63\x3e\xea\x11\x62\x97\xbf\xcd\x32\x21\x1d\x17\xd8\x5a\x55\x65\x75\x7c\xdf\xfa\x44\x61\xe3\x33\xc2\xff\xf3\x7f\xfc\xb7\xbf\x35\x5a\xdd\x72\x92\x4e\xdd\xda\x7d\xdf\xef\x91\xc5\x6c\xdc\x98\x96\x64\x03\xe7\x65\xdb\x63\xb0\x64\x14\x66\x2c\x70\x38\x82\xab\x5c\xef\xab\x5d\x0b\xea\x75\xe4\xfd\x46\xa1\x06\x1b\xd7\xf7\x14\x3d\xf9\x71\x90\x9e\x95\x51\x14\xd8\xea\x12\xf2\xfc\xd5\x14\x6a\x24\xa3\x08\x03\x2a\x53\xf2\x04\xe3\xde\x8f\x5d\xf6\x5f\xa7\x83\x1d\x19\xa0\x4f\xe2\x2a\x54\xc6\x24\x4a\x32\x8a\xc3\xc0\x17\x05\xfb\x8a\x31\xe7\xdf\xeb\x5d\x8b\xa7\x66\x5b\x57\x9e\x0c\xca\x5d\x91\x84\x22\xb5\x09\xfe\x69\x9d\xb7\x8c\x12\xce\x84\x8b\x42\xb9\x95\xb7\x2e\xf5\x8d\xf7\xff\xfc\x6a\x8e\xd2\x90\x91\x89\x99\x97\x40\x3b\x53\x5f\x6d\x35\x50\xa3\x77\x9d\x32\x5b\xa4\x96\x63\x1d\x52\xaa\xa5\x6f\xc9\x22\xba\xfc\x6e\xfb\x96\x8d\x0f\x97\x28\x0b\x20\x60\x3e\x82\xd2\xfd\xfa\x4d\x1f\x2a\xd1\xdf\xcb\xc1\xa3\x88\x32\x99\x52\x0e\xf7\x69\xf5\xfb\xe4\x06\xdc\x44\x54\xfd\x79\x62\x87\x9f\x2f\x79\x8b\x07\x7f\xb6\xf8\x0e\x22\x66\x84\xa9\x7d\x22\xc7\x7e\xfa\x56\x22\x89\x89\x0e\xf2\xad\x6a\xb1\xdb\xec\x8a\x36\x3f\x42\x8b\x8e\xff\x72\x52\xe3\xc3\xfc\x4c\x02\x88\xad\x48\xa9\xf7\x49\x08\x3e\xb8\x14\x02\x94\x11\x20\xa3\x48\x1a\x68\x6d\xb7\xbf\xc9\x37\x96\x46\x45\x6e\xd9\x0d\x81\xdf\xbf\xc3\xac\x31\x9a\xa0\x2a\x8c\xff\x7f\xce\xbe\xac\xb9\x71\x1c\xcb\xfa\xef\xd4\xc3\x3c\x70\x01\x40\xf2\x51\x96\x64\x5b\x9d\x5e\xd4\x92\x9c\x59\xd5\x5f\x4c\x28\xb0\x5c\xc8\x6c\x53\xa4\x86\xa4\x6c\xab\x7f\xfd\x17\xbc\x00\xb8\x89\x76\xd6\xcc\x4b\x65\x94\x01\x52\x24\x88\xe5\x2e\xe7\x9e\x83\x69\xa5\xc6\x51\x80\xbc\xea\xf9\xed\xc3\x6d\x2d\x94\xdc\x97\x7d\x2e\xde\x27\x7e\x84\x3f\xf3\x5e\x04\xa3\x7f\x53\x4d\x7c\x27\x6f\xf4\x79\xca\x8a\x2a\x7d\xff\xa6\xb6\x48\x84\x2a\x34\xd4\xfb\x68\x21\xc8\x37\xa8\x0d\xb5\x53\x2f\x3a\x29\x42\x95\x84\x58\x00\x61\xfd\xb1\xb4\xda\x17\xa7\xee\x2b\x42\x20\xd1\x5b\xbb\x39\x5f\xcc\x1d\x5e\x2a\x03\x7f\x6a\xac\xe7\xd1\x52\x06\x0a\x18\xf8\xe6\x68\x02\x59\xfd\x36\xd7\xa6\x62\xaf\x5f\x77\x93\xf5\xd8\x61\x45\xa8\x3d\x2d\xa2\x36\x64\xbe\x41\x2d\x93\xed\xb9\x3a\x21\x82\xcb\x11\x45\xf4\xc6\x41\x2b\xa9\x3a\x75\xea\x9f\x18\x14\xfe\x82\x00\x5e\x90\xc6\x0d\x47\xb3\x01\x0c\xbd\x5a\x71\xae\xd3\xfc\xf0\xb4\xfd\x92\x04\xa4\x67\x5b\x13\x3f\x60\x9a\x58\xce\x62\xa3\x9c\x79\x55\x60\x36\xb8\x2c\x9e\x74\x9d\x88\x1f\x26\x18\xc4\xaa\xdb\xa2\xac\xd5\x44\x4a\x45\x90\x20\xf0\xd1\xf1\x3e\xa4\xef\x70\x93\x96\xf5\xb4\x64\xb0\x20\x01\x91\xb6\xce\xdc\xe0\x72\xf0\xb4\xf7\x83\xe3\x70\x9a\x93\x40\x33\x1d\xb9\xd2\x99\x77\x9e\xcd\xae\x13\x72\x93\xb7\x0f\x6d\x29\xf8\x8f\xb3\x70\x79\x8d\xe6\x8f\x1a\xf1\x2b\x07\x5e\xf2\xbc\x86\xed\xa5\xaa\xe1\x68\xdd\xc0\x55\xfe\x9c\x43\x27\x66\x2d\x48\xc8\x63\x60\xb6\x5e\x3d\xad\x47\xcb\x8f\x84\x5c\xe9\x56\x5a\xc2\x01\x7e\x07\xc8\x7c\x41\x48\x12\x18\xe2\x64\x7c\xc5\x79\xd6\x47\x2b\xfd\xbd\x35\x48\x08\x08\x84\x03\xbd\xac\x9f\x7f\x9b\xb6\x15\x84\x11\x48\x4c\x3a\x19\x2a\x59\xa6\x56\x0a\x69\xe0\xd0\x13\x26\x62\xac\xbb\x3a\xe7\x23\x7e\xf3\xe1\xf8\x45\xa1\x21\xa4\x58\xca\xc2\xe4\xec\x3a\x2b\x96\x44\x84\x22\x8b\xf7\xa3\x13\xbe\x9d\x06\xa2\x0b\x12\x49\x81\xee\x68\x96\x6a\x5b\x9e\xb5\x4f\xd3\xf6\x2e\x20\x71\x27\x10\xe7\x72\x42\xc3\x57\x90\x58\x70\xc4\x07\x61\x56\xe8\xb5\x2c\x3e\x16\x69\x55\x7c\xe4\x4f\x45\x9f\x96\x59\x90\x58\x01\x13\x2d\x12\xb5\x57\x29\x8c\xc6\xdc\xc8\xc6\x21\x49\x68\x12\xee\x48\xe9\x84\x3e\xb4\xd9\x7c\x5c\x33\x18\xd5\xbc\x05\x64\xa7\xd7\x61\x51\xda\x75\xe0\x95\x08\x0a\xa8\x2d\x61\xbe\xef\x5f\x2f\x8f\x63\x00\xc3\x70\xca\x68\xa9\x30\x93\x7d\x07\x0e\x79\x39\x6a\x57\x09\x6b\xb5\xb0\xf7\xa7\x8e\x3b\x5a\x50\xcf\xa3\xd0\x0c\xe4\xbf\x36\x83\x13\x8a\x7a\x9c\x22\x2c\x42\x5b\x44\xfe\x73\xfe\xdb\xd9\x65\xaf\xf4\x3d\x0d\x4e\x45\xc8\x54\x9b\x5f\x15\xdb\x0a\xea\x4b\x62\x73\xc2\xd5\x02\x44\x99\x56\x83\x9d\xc3\x1a\x4b\x34\x08\xcd\x59\x63\x83\x84\xd3\x69\xcb\x21\x2c\x6c\xf4\x30\x61\xe8\x71\x6b\x68\x2f\xf3\x3a\xad\x6d\xb2\xd0\xb6\x12\x4f\x21\xca\xdd\xd4\x80\x34\xfb\xff\x97\x9c\x6d\xfd\xc7\x22\x3c\x41\x22\xb2\x8a\x6b\x98\x48\x37\x7d\xf1\x28\xd4\x0b\x42\x83\xc0\xe7\xf5\x2b\xb2\xf0\xbf\xfb\xb1\x7b\x12\x2a\x63\xc4\xc6\x56\xf2\x15\xd4\x39\xc3\xe4\xd6\x30\x6e\x46\x7a\xef\xd9\xc5\xec\xc9\x7f\xbb\x1b\x68\x86\x9f\xf8\x88\xe4\xed\x73\x4b\xe6\x34\x01\x63\x16\x94\x85\x60\xaa\x0d\x8a\x73\xb9\x2e\xea\x07\x14\xcf\x72\x0f\xc2\x88\x88\x9c\xb2\xee\x3e\xcd\x2b\x28\x6b\xab\xe7\xb0\xe3\x69\xd6\xf6\x8a\x3d\xe4\xff\x34\x06\xf9\xd5\x3c\x1e\xbd\x79\x44\x05\xbe\xb9\x61\x4e\x18\xc4\x67\x68\xec\x07\x9e\xee\x0a\xa4\xb6\x98\x44\x18\x09\x94\x0b\x1a\x07\xd4\x15\x9a\xed\xcd\x09\xba\xef\x41\x26\x5d\x27\x45\x58\xb7\x68\x7e\xa5\x6f\xe9\x6a\xb1\x7f\xea\x83\xa1\xfa\x5b\x1a\x8d\x95\x09\x73\xfe\xa3\x2d\xa1\x10\x34\x49\x04\x56\x7e\xcc\x9f\x9f\x1f\x6e\x76\xf3\xe5\x9f\xf3\xfb\xd9\xd3\xdd\xb2\x6d\xe6\xda\x1f\x9b\x23\x93\xde\x3b\xe5\x5e\x8c\xea\xbf\x98\x7f\x47\xed\xcf\xe1\xb3\x0a\x19\x80\xe1\xb2\x43\xca\x13\xf7\x03\x42\xb5\x3a\x0c\x2b\x05\xcd\x84\xbd\xd8\xb8\xfb\xf0\xf6\x02\x00\xd9\x28\xf6\x4d\xc7\xba\x2b\x2e\xb4\xcd\x32\x12\x68\x6c\x9c\xca\xf4\x3d\xcd\xe0\x00\xea\xca\x8f\x1b\x5d\x20\x23\x2c\x4f\x6e\x9c\x78\x47\xbf\xdf\xd5\xf1\x0b\xaa\xa8\x51\x40\x79\xe5\xd9\xbb\x81\x32\x95\xf5\x00\xdf\x67\xfb\x01\xf1\x3c\x53\x7a\x2e\xd3\x53\x63\xca\x57\x8f\xfc\x34\x3c\x26\x28\x34\x93\xac\x63\x91\x6f\xec\xd0\x7e\x05\xc7\x94\xa5\x41\x41\x8a\xd0\xe5\xf1\xf7\xf5\x47\xf1\xd3\x88\x55\xbf\xa4\x2d\xfb\xb0\xa0\x9a\x68\x57\x1a\xb2\xe7\x59\xb6\xe7\x75\xdd\x23\x25\x12\x54\x47\x01\x8b\x7a\xa5\x23\x46\x3b\x6a\xbb\xf8\xb5\x5c\xd9\x2e\xcc\x17\x86\x65\xec\xd0\x18\x83\xe7\x0a\xe6\x2e\x6f\x11\xbb\x0e\x32\x34\x27\x07\x26\xd1\x2f\x47\xe1\xe4\x49\x05\x0b\xa2\x38\xb2\xf8\x57\x9b\xa0\x76\x2d\x61\x20\xf1\xa3\xb6\x01\xdd\xad\x5d\xe4\x5f\x18\x65\x8c\xf8\x5a\xc8\xbe\x1a\xc7\xe8\xa4\x65\x24\x62\x58\x85\xf3\x90\xd6\x75\x66\x92\x5f\x70\x3e\x2e\x8a\xb3\x68\x75\xb4\x9b\x4e\x0a\xcb\xa6\x6e\x56\xbb\xd5\xdc\xfd\x91\x2a\x0f\xc9\xbc\x6c\x8e\xf5\xe6\x7c\xe9\xde\xf1\x6b\x96\x38\xc1\x58\xa8\x30\xa0\x31\xb7\x06\x07\x4f\x8f\x13\xe5\xdd\x82\x31\x69\xe0\x03\xf7\xbc\x7a\xbd\x39\x7f\x76\xa9\x0d\xc6\xc0\x8f\x74\x8f\x1f\x7c\x54\x50\x2d\x58\xec\x29\xac\x3e\xd9\x9e\x50\xd3\x0b\x79\x8e\xd7\x45\x71\xed\x78\x4e\x20\x3d\x04\x8b\x69\x88\xea\x43\xc0\xcb\xec\x22\xd2\x52\xed\x4f\x1d\xd3\x8d\xeb\xc3\x63\x6d\xa3\x32\xeb\xf4\x13\xb2\x79\x91\x5d\x3d\x45\x12\x33\x0f\xc3\xe0\xcb\x3f\x1f\x97\xdb\x7b\x77\x69\xa2\x04\x95\xce\x2b\xc6\x23\xe4\x1a\xab\xd1\xf8\x7a\x80\x61\x9d\xe2\x5c\x07\x8b\xb6\x54\x57\x30\xce\x34\x69\x96\x4f\xd9\x38\x4c\x2f\xa7\xd1\x4f\xf2\xc4\x47\x36\x1f\x94\x10\x9f\x17\x55\xdd\x5e\x06\x14\x3d\x94\xd9\xe3\xaa\x67\x24\x31\x11\x1a\x99\xaf\x53\x89\xd8\x61\x47\x0c\x22\x98\xf4\x4c\xd9\x19\x77\x20\xc6\xed\x59\xac\xae\x13\xcf\xc3\x5f\x97\xc4\x84\xa2\x6e\x52\xd5\xf8\x16\x3c\x03\x75\xc5\xaa\x35\x71\x08\x32\x49\x14\x22\x18\x67\x87\x32\x45\x3c\x9c\x65\xaa\x48\x8b\x7c\x64\xad\x32\x19\x71\x64\x01\x69\x53\x50\x58\xe6\xde\x57\x95\x1b\xa6\x86\x98\x94\xa6\x62\xe6\xa1\x38\x18\xe2\xac\xaf\x9e\xc8\xf6\x57\x51\x82\x1e\xab\xd1\x13\xbc\x69\xd3\x94\x4c\x45\x1c\x07\xbe\xd9\x64\x57\xe8\xa1\xa4\x45\xde\x8b\xc2\x8f\xaa\xd1\x05\x83\x88\x21\x01\x6a\x06\xef\x90\xa1\x5d\xdd\xdb\x06\x19\xc4\x11\xe9\x18\x41\xe7\xb3\x5d\x0f\x22\x36\xe9\x4b\x33\x4d\xb9\x63\xc5\xb7\x81\x4c\x74\x9a\x2d\xc3\x7c\xff\xde\x5a\xb3\xd8\xe6\x34\x57\xc7\x23\xd6\x5f\x77\x68\xd4\x49\xd6\x26\x11\x79\x81\x97\x98\x4a\x97\x9b\x4e\xa0\xff\x0f\xd7\x48\x89\x44\x66\xf1\xbd\xdd\x69\xbf\x8f\x4e\x47\x5e\x04\x89\x1c\x31\xfa\x60\xbc\x4e\xf5\x99\x11\x45\xe4\x49\x85\xf4\x22\x8a\x5f\x7a\xd2\xe7\xc3\x2f\x12\x79\xa0\xa8\x23\x08\xcf\x0f\x90\x2d\xae\x72\xf3\x91\xcf\x01\x9f\x0f\xea\xd7\x75\x59\x9c\xf8\xa1\x3b\xef\xa3\x30\xf4\xa4\x6c\x4d\xef\x3d\xb8\x3a\x26\x11\x85\x1c\xb4\xad\x0d\x47\xe2\xfa\x49\xe0\x4b\x14\xca\x00\x69\x11\x2c\x5d\x4f\x5b\x6b\x64\x9b\x09\x23\x18\xef\xfc\xf5\xa3\x6f\xf3\x46\x04\x28\x9a\xf0\xe2\x7c\xb9\x69\xab\xe4\xa7\xdf\x8f\xd2\x10\xcd\x63\xee\xc4\x8a\xfb\x9f\x67\xa2\x3b\x0f\x71\x57\x79\xe4\xf5\x68\x71\x44\x14\x78\x24\x5a\x58\xc1\x9a\x5f\xb8\xc8\x60\xc1\x2f\xed\x78\x33\x8f\x86\x9d\xff\x6f\x00\x14\x1b\x78\x4f\x3b\xfd\x8b\xc0\x1b\xbd\x3e\x8b\x3c\x0c\x32\x1e\x78\x75\x5b\x94\x7f\xf2\x33\x6a\xa3\x1a\x22\xfe\x59\x9f\xde\x49\x44\x8c\x4b\x0c\x00\x28\xde\x4e\x9c\x88\x1a\x8d\x84\x0f\xb4\x3c\xe2\xa4\xfd\x7b\x44\xfd\x68\x02\xd3\x5c\x75\x1d\x40\xba\x73\x8b\x7f\x1a\x59\xae\x6a\x6d\x65\xa2\x9c\x4e\x17\x94\xb6\x74\xd2\x5d\x24\x04\x4e\x03\x75\xc9\xf7\xf2\xca\xea\xb5\x9d\xe2\x44\x60\xec\x90\x1f\x4a\x30\xdb\xef\x95\x58\xbf\xed\xc9\x49\x08\x4e\x9f\x63\xf5\xa4\xd3\x7c\x5c\x3d\x28\x22\x1e\x05\x88\x2f\x94\xaf\x65\x5a\x55\x17\x39\x54\x05\x14\x91\x88\x7d\xb4\xdd\xb2\x22\x7d\x4b\xdf\x94\x73\x2b\x23\x19\x92\x50\x39\xe8\x1b\x6a\x42\xa8\xb9\x09\x74\x5a\x8c\xe8\xf0\x67\xa4\x34\x00\xb8\xc6\x0b\xdd\x8e\xc4\xee\x44\xa4\x08\xa3\xb4\xa3\x1d\xb3\xf2\x51\x65\x0e\x65\xd5\x91\x3c\x88\x48\x31\xc9\xe2\x36\xc8\x6d\xf9\x67\xa7\xcd\x86\xe6\xb8\xc7\xe8\xeb\x57\xeb\xdd\x75\x8b\x63\xcc\x42\x9d\xa0\x3c\xf2\x1c\xf2\x3a\xbb\x3c\x7f\xe4\x8f\x17\xac\x9b\xce\x87\x08\x62\x11\x41\x12\xe1\xd6\x9a\x56\xab\x5c\x66\x67\xf5\x85\x90\x83\x88\xbd\x88\x53\x53\x32\xff\xde\xd6\x16\xb9\xa6\xd8\xd0\x3c\x19\x28\xe0\x00\x5c\x27\x62\x8f\x7b\x98\xdf\x83\x5c\x75\xf4\x05\xce\xa8\x8b\x7d\x2f\x96\xcc\xfe\xfc\x35\x73\x84\xeb\x14\x7a\xb8\x75\x36\x13\x93\xf4\x3f\x65\xec\xb3\xc8\x4f\x5a\xfc\xe7\x2a\xef\x43\xba\x9b\xcf\x1c\x1a\x5a\x7f\x2c\x48\x93\xc5\x40\xc4\x73\x30\xb6\x71\xe0\xc5\x22\xea\x48\xcb\x5f\x2a\xc8\xa0\xaa\x46\x6b\x39\x0e\x7c\xe2\x77\x25\xc2\xeb\xac\xa8\x7f\xa6\x39\x5c\x7a\xaa\x36\xae\xa3\x4a\xc0\x68\x16\xe6\xc6\x6a\x1b\xb5\x87\x9e\x41\x76\x9f\xf3\x66\xcc\xf0\x95\x46\xb5\x36\x22\x0e\x7d\x19\x1a\x1c\x13\x1e\x29\xcb\x6b\x24\x4a\x1c\x12\x81\x0b\xd2\x84\x2f\x7b\xa7\x4d\x4c\x7c\x23\xe6\xd6\x6c\xaf\xcf\x5a\xcf\x79\x6e\x76\x87\x56\xf9\x74\xc7\xdf\x60\x56\x61\x20\xd3\x5d\xa2\x4c\x4c\xa2\x31\xfe\x6f\xd3\xea\xb5\x67\x92\xc4\xd4\xd7\x98\xff\x79\xe5\xd5\x4a\x16\xe6\x51\x6c\x13\xf3\xcd\x6a\x73\xd8\x4a\x27\x61\xe4\x9a\x2d\x0a\x72\x3e\x5b\x5f\x83\xf7\x45\x1c\x85\xbe\x21\x7e\x43\x69\xab\xe7\x53\x63\xb6\xa3\x22\x73\x3b\x0c\x11\xe5\x08\xf1\x6a\xae\xeb\x80\x97\x22\x4e\x7c\x89\xe1\xbd\xbf\x6e\xe6\x0f\xa9\xa5\x86\x68\xdb\x62\x53\x73\xb3\xc7\x18\xdb\x43\xc1\xf3\xd1\xa4\x4c\x38\x8d\xcd\x7e\x9d\xf3\x43\x3f\x64\x10\x27\x00\x4e\x45\xeb\xf1\x32\x7b\x87\x12\xb3\x77\xc6\x63\xea\x61\xc2\x62\xee\xc7\x49\xec\x20\x4a\xc5\xb0\xde\x58\xc4\x5c\x32\x66\x95\x5c\xd2\xf7\xaf\x22\xd4\xb1\x88\x42\x66\x9c\x44\x7b\x18\xd9\x60\xee\x34\x9c\x58\xc4\x22\x0e\xb0\x08\xd9\xa5\xd9\xf2\xcb\xba\x2c\x3e\xd3\x1e\x3b\xf6\xc4\xde\x1a\x0b\x4d\xb4\xdd\xd6\xf6\x1a\xbe\x8c\xf2\xd8\xde\xd2\x03\xf4\xd7\x0b\xad\x9b\x13\x75\x39\x96\x9b\x1a\xf5\xd6\x02\x91\x7f\xaf\xc5\x47\xf3\x38\xe8\xa9\xac\xf2\x5f\x90\xee\x8a\x1f\x69\x96\x8d\xd7\x8f\xa2\xcc\x95\x4b\x0d\xc9\xb9\x86\x77\x55\x51\xe4\x23\x5d\xa1\x70\x81\xf7\xe9\xf4\x41\xac\x92\x04\x97\xc8\xec\x33\x85\x05\x60\xc4\xbc\x55\xa9\x17\xb1\x02\x53\x61\x63\x11\x72\x38\x43\x6e\x79\x96\x09\x3e\x41\x0b\xd3\x1f\x31\x08\x29\xda\xb3\xdc\x70\x2a\xa2\x33\xda\x38\x34\x5f\x84\xe7\x62\x88\x12\xfc\x8e\xff\x58\xdf\x0d\xa6\x21\xc4\x02\xa5\x51\x8e\x85\x4a\xf5\x05\x63\x36\x57\x72\x3e\x22\x06\x10\x09\xb3\xeb\x6e\x70\x74\xc6\xda\x8f\x31\xe0\x61\x2c\x83\x95\xfa\x6c\x1b\x02\xf0\xac\xae\x06\x9a\x70\x67\x9b\xb5\x6f\x49\x86\x7b\x46\x64\xac\xb9\x81\x77\xf4\x48\x22\xd5\x78\xbf\xd2\x5c\x22\x8a\x66\x76\x55\xe2\xd3\x9f\xd6\x89\x17\x79\x26\x30\x56\x64\xa9\x4a\x6b\x3c\x52\xd2\x0c\x7e\x42\xd9\x69\x0e\x8a\x24\x60\x12\xd7\xf4\xea\x76\x3b\xa9\x1b\x2d\x92\x20\x91\x41\xd4\xf1\x02\xf6\xd6\x5f\x12\xf0\x00\x11\x5f\x7d\x8a\xd7\xe1\xc5\x61\x40\x11\x5b\xf7\x6e\x3e\x0b\x0c\x53\xf8\x83\xd3\x2d\x09\x69\xcc\xbd\x5e\xaa\xa0\xa3\x54\x31\x98\x62\xe8\xcb\x31\x75\x6e\x42\x12\xb2\x04\x81\x0d\xbc\xac\xd3\xaa\x46\x35\xad\xb6\x85\x4b\xa7\x7b\x7f\xeb\x9c\xdf\x84\xf8\x91\xb4\xc2\xfc\xbf\x29\xfa\x16\x09\xd1\x1a\x43\x81\xc8\xc7\x32\x24\xdc\x71\xe0\xbb\xc1\xa0\x53\x8f\x60\x6c\x6c\x9f\x56\x26\x7c\xdd\xef\x4c\x3c\xdb\x8b\x51\x83\x14\x5e\xfe\x5c\x3a\x24\x6c\xc2\x12\x63\xc9\x9b\x6d\x10\x5d\xe2\x99\x28\xde\xe1\x01\xf4\xc8\xaf\x4f\x22\xcf\x43\x58\xac\x93\xe8\xea\xe1\x69\x7a\x9d\x12\x81\x81\x8e\x0c\xf8\x5b\x4f\xba\x52\x24\x91\x64\x88\xa0\x71\x67\x58\x39\xe1\x63\x0e\x07\x21\xf1\x4d\x08\x5f\xa7\xb9\x5a\x1e\x4f\xf5\x65\x9b\x15\xf5\x20\x0d\x9a\x24\xc4\x13\xae\xfa\x93\x1f\x05\xaf\x2a\xae\x8a\xb2\xda\xbb\x1f\xe5\xa1\x46\xd7\xcb\x54\xcf\xf5\x80\x10\x09\x4f\x0c\x4b\xf8\x66\xb9\xed\xaf\xc7\x44\x24\x12\xed\x08\x7e\x3e\x1c\x5d\x02\xc2\xb5\xc9\x90\x60\xae\xcf\x86\xa2\x37\x4f\xa3\x77\x97\x24\xc2\x72\xaa\x2d\xcf\xe5\x6b\x3a\xba\x96\x46\x89\x43\x8c\xee\xff\xe2\x97\x55\xf5\xfc\x0e\xe5\x36\xfd\xac\x2f\xf6\xbc\x6d\x7b\x46\x04\x6d\xfd\x87\x97\xf9\x44\xe2\x22\x51\x5c\xe0\x06\xef\x84\xb4\x45\xa2\x84\x11\x91\xbe\x3d\x67\x3a\xcd\x32\xc4\x6f\x8d\x04\x46\xa7\x7d\xe6\x44\x49\x0f\xcd\xd3\x7a\x60\x5c\xdc\x96\xc5\x7f\xba\x07\x07\x2a\x9c\x7a\xf2\xac\x32\xf4\xe3\x93\x3b\x72\x02\x89\x17\x59\xcf\x09\x8d\xfd\xed\xf9\x74\xca\x2e\x8f\xad\x81\x90\xe8\x38\x52\xa1\x51\x0b\x38\x9f\xa6\xb7\xc9\x44\x73\x8a\xef\xb2\x6f\xd6\x8e\xcb\xac\x7f\xc5\x24\x28\xb8\x67\x0b\x24\x53\x59\x38\xf8\xcc\x43\xb3\x5f\x38\xdb\x91\x7b\x24\x46\xd8\x12\xaf\x2a\x28\xeb\x5b\x9e\x55\x60\x04\xaa\xfa\xcb\x87\x7b\x10\x80\xad\xc4\x1c\x58\x87\xdc\x0f\x7c\x34\x91\xb0\xbe\x17\x99\x32\xec\xc7\x1a\xe9\xdf\x0d\x87\x82\xfb\x60\x04\x66\x71\x5c\x6f\x7a\x47\xc9\x75\x9a\x87\x07\x9e\xf1\x34\x4c\x5d\xbf\x21\x85\xb8\xc6\x2e\xf1\x20\x00\xbf\x17\xd8\x2e\xca\x37\xf8\x56\xcb\x5e\xf0\x90\xc5\xb1\x67\x28\x0c\x65\x91\x2b\x1c\x97\x65\xeb\x44\xf3\x30\x4e\xfc\x2e\x7d\x88\xac\x12\xb7\x65\x71\xbc\x29\xae\x2c\x55\x1e\xca\xd8\xa8\xf0\xa6\xcb\x41\x82\x88\x87\xda\xec\x08\xb8\x4d\x75\xcc\xb2\xbb\x51\xa6\x87\x13\xe6\xe1\x0d\x5a\xf6\xa6\x11\x6f\x91\xe0\x24\x11\x98\x4c\xc8\x78\x85\xa0\x79\x50\x1d\xef\xfa\xe8\x5e\x9c\x22\x52\x96\xbb\x3d\xb4\xf7\x3c\x54\xfb\x08\x05\x3c\x16\x2a\xa0\xec\x8b\x8f\xc3\x08\x10\xaf\xcd\x8d\xf7\x83\x26\xd3\xe3\x18\x79\xc2\x59\x7b\xf5\xb5\x75\xca\xa3\x24\x26\xa6\x6c\xa3\x90\x50\x55\xae\xa0\xf5\xfb\x88\x1b\x8f\xb8\xc4\x40\x75\xb3\x71\x75\xb2\xc6\xdf\x25\x9e\x7e\x9b\x5c\xe2\x91\x92\xc0\x9d\x6f\xda\x4c\xa6\x1e\xc2\x85\xc7\xd2\x43\xfb\x03\x53\x0d\xa6\x5c\xfd\xca\x20\xec\x09\xb7\x0d\xd7\x47\x2c\x7d\x47\xd8\xd9\x9e\x58\x2f\x5f\xb1\x4c\x8a\x66\x6b\x45\xd8\xa2\x29\xdb\x48\xa5\x61\x5a\x1d\x29\x09\xfc\x9d\x34\xf5\x70\x73\xe0\x9c\x98\x12\x2d\x68\x0e\x03\xa3\x05\x9b\xe6\x87\x6a\x57\x18\x09\x67\xf7\xaa\x3c\x0a\xd1\x5f\xdc\xbb\x02\x43\x50\x69\x0d\x6a\x5d\xa4\xf9\x38\xd1\xce\x05\x4d\x10\xbe\xa0\x61\x22\x3f\x32\xfd\x76\x42\x1b\xb1\x94\xcd\x03\xca\xda\x4e\xda\x42\x3d\x3b\x81\x0b\xad\x71\x34\x5c\xe4\xd3\x72\xa3\x5d\x19\x2d\x5c\x2a\x1a\xf4\xf1\x7b\x7b\xae\x8e\x23\x22\x51\xc1\xa5\x36\x1a\x47\x1d\xe4\xa9\x59\x28\x53\x72\x9c\x82\x2b\x19\x61\x9d\xde\x81\xbf\x43\xf3\xdd\x47\xbf\x07\x1e\x45\x73\xc0\x86\x0a\x1a\xe3\xfc\x9b\x7d\x0a\x42\x8d\xf6\x98\xad\x20\x74\x15\x79\x00\x03\x83\xc3\x75\xa6\x1e\x38\x61\x95\x3b\xc8\xbd\xed\x09\xf9\xc0\xda\x4f\xa4\xa9\x88\x89\x83\x9f\xbd\xe4\xbd\x60\x14\xd7\x91\x8f\x6c\x8b\xe8\x90\x7f\x99\x00\x30\x9d\x85\x47\x3d\x4c\x7a\x5b\x79\x54\x83\xc0\x5d\xbf\x96\xbc\x82\xaa\xaf\x1e\x35\xbd\x62\x84\xc7\xe2\xb8\x75\xfe\x41\x35\x53\xda\x3d\xa2\xf0\x38\x68\x23\xd0\x59\xb5\x94\xac\xa6\x80\xf6\x11\x35\x88\xb7\xa9\xfa\x7a\xc1\x0e\x2c\x4c\xe1\x09\x33\x21\xd1\xc4\x4a\xf5\x9c\x9f\xee\x79\xb5\x01\x2e\x3b\x34\x9b\xf0\x79\x88\xdc\x3d\x1d\x4d\xfa\x0e\xf8\x17\xa8\x53\xe1\x83\x46\xb6\x25\x93\xe8\xed\xd4\xcd\x76\x25\xf0\xea\x3c\x86\xe7\x8a\xc0\x53\xda\x04\x50\x96\x9f\x46\xa0\xc5\xf2\x11\xf6\x17\xb9\x08\xa8\x42\x4c\x8b\x9b\x7e\xab\x7c\xc8\x69\x28\x44\xc0\x38\xf2\x05\x41\xfd\x8a\xd8\xd2\x61\x89\x83\x08\x3d\x0a\xda\x39\x91\x4d\x7b\x33\xc7\x51\x00\x62\x38\x3b\x10\xd3\xe8\xb8\xf5\x6e\xb0\x86\xf4\x9c\xd5\x63\x38\xb0\xeb\x1b\x1a\xbe\xf6\xa5\x29\x30\xed\xd5\xba\xb8\x0e\x84\x23\xa9\x9d\x78\xbf\x4e\x1f\x4e\x7a\x84\x22\xa4\x04\x1d\xef\xd7\x43\xfb\x66\xa1\x34\x64\xa2\x5c\x29\xb7\x81\xdf\xf3\xea\xb5\xec\x53\x18\x0e\xc7\x94\x84\xc0\x3a\x8a\xb2\x97\xbc\x2a\x32\xb5\xe5\x1a\xfe\x7c\xe0\x65\x9b\x6d\x12\x84\x24\xe8\x87\xdc\xde\xac\xda\x3f\x45\x4c\xdb\x34\xf6\xcc\xc9\x83\xf5\xc9\x40\x85\x20\x92\x60\x09\x4d\x3e\x3b\xab\xb4\x71\x29\x67\x19\x2f\x8f\xae\x95\xd2\x00\x91\x7f\xa6\x60\x7f\xc3\xb5\xce\x1c\xdb\xde\xf0\x35\x29\x18\x25\xe3\x79\xf1\x21\x0a\xe7\xf0\x0a\xc6\x09\xce\xc5\x73\x5e\x8c\x66\x09\xd3\x12\x87\xe5\xa1\x70\x91\x92\xdf\x42\x82\x44\xc4\x15\xda\xdf\xaf\xe7\x03\xf4\x23\x67\x37\x9d\xa2\xa8\x10\x31\x63\xd2\x37\xc8\x94\x9b\xa2\xa8\xea\x21\xbe\x4e\xc4\x92\x80\xc3\xf0\x9e\x1d\x5a\xc1\xb6\x25\x8c\x4b\x0b\x00\xc6\x88\xf5\x3d\x6a\x6a\xba\x2b\x93\xd8\x68\x7e\x08\xe7\x41\xba\xbf\xcb\x08\x8b\x43\x6b\x13\x17\xe8\xf6\xe2\xc6\xe2\x75\x62\x08\x28\x62\x29\x9b\x63\x77\x2a\xbb\x2e\xb8\x67\x28\x38\x79\x5d\x73\xf9\x86\x0f\x5c\x5e\xfa\x89\x17\x21\x42\x8e\xeb\xc5\x02\x4b\xd3\xfa\x32\xc4\xd8\x0a\xc1\x13\x04\x95\x9a\x0c\xca\xb2\xaa\xf9\x78\x0b\x16\x42\x45\x88\x35\x68\xcc\xdd\xa7\xe2\xc3\x6b\x2f\x85\x44\xb7\x1b\xd3\x1d\x3f\xc2\x48\x17\x7b\x7a\x3b\x93\xbe\x87\xeb\xb3\x2d\xda\x75\x94\x20\xee\xb6\x32\x0c\x31\xf9\xf9\xde\x63\x2d\xec\x8d\x8e\xa4\xd2\x40\x5a\x79\x26\x6d\xce\x6d\xf8\xb8\x32\xf6\x71\xd2\xbf\xec\xe6\x93\x33\x64\x2a\x2b\x2b\x54\xa8\xfd\xa4\xb5\xb7\x1e\x78\x55\x6f\x78\x1b\x65\x13\x3a\x08\x91\xff\xc1\xd4\x38\x1b\xac\x90\x39\xce\x5f\xd3\xd3\xdf\xa0\xe4\x11\x42\x13\x8e\x59\x5f\x89\xa4\x87\xa3\x03\x5e\x68\xe1\x21\xb3\x29\x9e\x34\x5d\xce\xbf\xab\xa6\x13\x5a\x70\x70\x82\x7b\xdb\x97\xf5\xfa\xe1\xaf\xfd\xcb\x76\xfd\x64\x9b\xa5\x47\x18\xee\x6a\x73\x43\x78\x30\x29\x3d\x3b\x49\xe3\x2a\xa4\x07\x46\x05\xbc\x82\x7a\x91\x96\x20\xeb\x05\x88\xb4\x3f\x1f\xa5\xa7\x75\xe0\x39\x7e\xa7\xe5\xe7\xa9\x28\xeb\x5b\xf8\x62\xcb\x91\x7e\xe0\x49\x03\x85\xfe\x99\xc2\x87\x7b\x3e\x9f\x70\x0c\xdd\xd8\x53\x60\x6f\xdc\x2e\xd7\x1a\xf8\x02\x17\xb5\x10\x33\x53\xc6\x39\x28\xe1\x94\x01\x35\xb4\xaa\xcd\xc9\x37\xef\x61\x0d\x87\x83\x28\x03\xaa\xd0\xe7\x9c\x65\xfc\xbd\x5d\x66\x32\x64\xa1\x36\xd9\x4a\xd4\x61\x72\x26\x41\xf7\xf5\x86\x37\x09\x19\x78\xc4\xe1\xb5\xd3\x77\x5e\x23\xd8\xe7\x9a\x93\x53\x48\x92\x18\x6e\x9b\x53\xd6\x29\x15\x8d\xc6\x82\x08\xb0\x05\xbc\x77\x59\x21\x78\xd6\x4b\x35\x48\xa2\x18\x67\xae\x5c\xda\x8c\x8a\x5f\x68\x57\xee\x25\x69\x1c\xe3\x57\xb1\xbb\xc6\xad\x49\x0f\xb9\x46\xae\x7d\x47\x47\xd2\xac\xb8\xbe\xc5\x3a\x38\x98\x24\x0b\x14\x66\xc8\x66\x0f\xae\x12\x49\xb2\x44\x38\xcc\x06\xfa\x8a\x37\x97\x01\xc6\x57\x32\xee\x21\xef\x6c\xda\x58\x14\x45\x99\x2a\xae\x96\x19\xc8\xba\x28\x5b\xbc\xb9\x64\x9c\xa3\xeb\x58\x1c\xf3\x74\xd7\x95\x5c\xbb\xe6\x88\x98\xfc\x8e\x63\x04\x32\x42\x44\xae\x91\x59\xba\x04\xa8\xea\x7d\x73\x0a\x17\x3d\x28\xa3\x8c\x22\x8a\xc5\x14\x77\x9f\x48\x0c\x39\xfa\x3a\x71\x48\xf1\xd0\x31\x29\x80\xb9\x93\x97\xf8\xde\x16\x96\x31\x23\x98\x7c\x7e\x82\x8f\xdd\x8f\x87\xa7\x89\xe8\xbd\x8c\x13\x0e\xd1\x18\xbe\xfd\x34\x7b\x5c\x4e\x82\xa6\x64\xe2\x33\xdc\x11\x0b\xad\x91\x8e\xd5\x81\x9b\x47\xbd\x48\x8c\xf3\xd6\xd4\x04\x98\xf2\x7a\xd4\x0a\xeb\x8e\xa0\x76\xc8\x12\x45\x04\x92\x7c\xa5\x90\x55\xb0\x84\x5c\x95\x5c\xbe\xd6\xf3\xe2\x28\x30\x6d\xdf\x0e\x5f\x02\xc2\xf0\x74\x37\x63\xb7\x2d\x74\xbd\x57\x36\x67\xdc\x41\xf3\x87\xaf\xcf\x43\x53\xa9\xf8\x0a\xbc\xac\x05\xf0\x51\x95\x85\xe4\xda\x58\xd8\x68\xf8\x8d\x69\x47\xff\xcb\x44\xb2\xc6\x8e\xc3\x04\xe6\xda\x9e\x38\x52\xfa\x86\xca\xa1\xc5\x76\xb4\xe2\x36\x93\xc1\x14\x29\x13\x69\xc5\xb8\x72\x75\xc3\x6d\x0e\xa9\x1d\x17\x15\x69\xae\x5a\xb5\xb7\xa2\x54\xb3\xfa\x5a\x96\x4f\x48\x25\x0d\xe3\xc1\xde\xca\xe5\xcf\xfe\x0e\x90\x40\x2a\x6d\x4a\x2e\x2b\xa8\x97\xa7\x42\xbe\xb6\xc6\xb8\xa5\x62\xb6\xff\x74\x3f\x03\x21\x63\xc6\x92\xcf\xf1\xa4\x1f\x95\x00\x4a\x88\x13\x4c\x63\x59\xe5\x72\x13\x04\xef\x25\x5b\x94\x1f\x6a\xcf\x92\xfc\x14\xef\x2d\x99\x3f\x86\x34\xcc\x42\x47\x51\xde\xab\xa2\xb3\xf1\xff\xf7\xa2\x3f\xca\xe7\x51\xe8\xb7\x9a\xa7\x0e\x8c\x37\x55\x62\xa4\x02\x9f\x49\x36\x64\x49\xe8\xb1\xc4\x0b\x15\xd0\x04\xf3\xc6\x7f\xea\xc6\xe3\x87\x97\x3a\xed\xd8\xad\x85\x0a\x58\xc2\x12\x8b\xac\xca\x21\x7b\x9a\x28\x2c\x9d\x5c\x7f\x2a\x10\x60\xa1\xad\xce\x3e\x54\x21\x0d\x84\x59\x6f\xcd\xee\xe9\x24\xd5\xbf\x8b\x2c\xf8\x6c\x50\xa7\x74\x45\x2f\xd7\xcb\x17\xb4\x35\x4c\x2a\x8c\x12\xe4\xd0\xb7\xeb\x73\x6d\xa2\x1f\x13\x14\x17\xc3\x07\x0e\xb9\x44\xd3\x1f\xa5\xd7\x66\x65\xc9\x2f\x9d\x40\xba\xed\x42\x43\x86\xa4\x05\x3b\x9e\x5e\xce\x3c\xef\xa5\x18\x15\x0b\x0d\x0f\x8e\x85\x74\x0c\x03\xa7\x8a\x49\x0f\x88\x23\x64\x3a\x98\x05\x7b\x5f\x8c\x63\xeb\x2a\xf2\x42\x87\x4d\xb6\x33\x03\x4b\x0d\xc6\xbd\xa4\x87\xe5\x29\xbc\x3c\x5e\x16\x65\x91\x83\xa5\xac\x19\x3e\x6b\x24\x63\x44\x4e\x08\x90\xc5\x11\x6e\x79\x26\x8b\xfc\xc8\x9b\x6d\xce\x3d\x54\x4c\x25\x8e\xd3\xc3\xbf\x1e\x70\xf9\x0d\x7d\x26\x95\x50\x6e\xc9\x3b\x10\xf9\x31\x11\xa2\x50\x49\x24\xf1\x1b\x83\x4a\xeb\x47\x38\xc2\x58\x6c\x7d\x38\x11\x13\x88\x0d\x85\xf4\xee\x79\xbf\xbd\x9f\x39\xe6\x24\xa1\x12\x4d\xb0\x00\xfd\xa6\x39\x1c\x1a\x67\x0a\x0b\xa1\xf6\xad\x66\x81\xed\x26\x22\x9e\x58\x8b\x64\xae\xae\xd9\x34\x94\xe0\x26\xfe\x80\xa1\xb0\xc7\x34\xc7\x13\xd6\x5d\x2c\x3d\x1f\x83\x94\xeb\x92\x5f\xc8\xba\x6c\x8f\x55\x25\x83\x04\x0b\xeb\x1d\x2a\x00\xd4\xd0\xe8\xfe\x62\x7a\x4b\xe6\xa9\x3e\xd3\xf7\xcd\x65\xcc\xc4\xa0\x80\xb2\xc0\x66\x55\x9e\xce\xff\xe6\xa3\xb1\x83\x48\x9b\xf8\x00\xff\x9c\x9d\x20\xdf\x42\xe6\x0e\x5a\x05\x71\x60\x4b\x7f\xdb\xea\xaa\xab\x6d\x4c\x81\x36\x34\x98\x07\x7e\xb4\x38\x3b\x03\xd2\x68\x89\x74\x94\x4e\x14\xc6\xfc\x1f\x67\x4f\xf7\xb3\xdd\x6e\xf6\xb4\xde\x3c\xff\xf9\x17\xdd\xdd\x3b\x5e\x73\xd1\x18\x81\x68\x53\x64\xbc\xb1\x47\xde\xc7\x02\x11\x02\xfc\x20\xc0\x0a\xb1\xb4\xda\xca\xd7\xa2\xc8\x6c\x0a\x6e\xf8\xa6\xe0\x43\x44\x22\x1b\x32\x1c\x5a\x05\x10\x30\xa6\x78\x4f\x11\x00\x4a\xab\x2e\xf4\x9e\x16\xe7\x0a\x37\xe0\xd1\x4f\x06\x09\xc3\x02\x21\x9d\x66\x47\xde\xf7\x3e\x21\x50\x14\x55\x51\x1a\xa3\xb5\x2c\x4e\xb6\xdc\xbc\x77\x0c\x41\x18\x8a\xd0\x16\x76\x6f\x1b\x3f\x4f\x16\xe9\x98\x79\x04\x42\xe2\x7b\x46\xde\x49\xeb\xc7\x22\xaf\x5f\xbf\xc8\x1a\x00\x91\xa6\x7e\xda\x56\x36\xe5\x87\x49\x0c\x1d\x10\x50\x08\x95\xd1\xe9\xe7\x9a\x5f\x66\xc7\xf6\x71\xa9\xa0\x1c\x5a\xbd\x4c\x63\x66\x3f\x16\xca\x46\xf9\x87\x37\x61\x31\x41\x44\x45\x61\x4a\x57\x6c\xaa\xef\x32\x7a\x74\xa6\x4c\x76\xb1\x8b\xc4\x5c\x95\xd1\x0f\x0e\x8d\x9e\x07\x05\xb1\x67\x58\xf0\x74\x51\xca\x36\xc8\xed\x6e\x1c\x87\x34\x80\x01\xf4\xb4\x37\xec\x31\x0b\x31\xa7\xde\x4c\x92\xfb\xa2\x5e\x17\x35\xaf\x0b\x53\x8d\xd6\x76\xd1\xb1\x01\x0c\x14\xf9\xc8\x40\x87\x84\x09\x4c\x95\xcd\x66\xb3\x69\xe7\x01\x78\xe4\x63\x7c\x69\xf7\x0a\xcf\xf9\x00\x09\x01\xc2\xa6\x16\x8e\x69\xde\x7c\xed\x35\x94\xdb\xb3\xa8\x64\xfb\xbb\x52\xaa\xc8\x6b\xd9\x31\x9d\x99\xef\x98\xac\x86\x0f\x22\x15\x25\xdc\x62\x64\x96\xa5\x0c\x9c\x47\x0b\x10\x1a\x52\x61\x83\x4b\xd8\x56\xa7\x59\xae\xe6\x4e\xa7\xf1\x0b\x74\x6f\x17\x8c\x9c\x08\x4b\x8e\x58\x4d\x7b\x95\x11\x5d\x09\x39\x40\xcc\x30\x7a\x84\x4b\xef\xc8\x0f\xb0\x52\xed\x03\x89\xc4\xd2\x06\x6c\x8a\x31\xf6\x06\x74\x90\x68\x03\x88\xad\x6b\x18\xe8\x10\x0a\xed\xc5\x26\x91\x79\xe2\x97\x2e\xd1\x31\x1c\x6d\xed\xf1\x58\x77\xd5\x0e\xcd\x64\x1b\xd8\x5e\xda\x93\xca\x29\x69\xee\x78\xe9\xa2\x1b\x7f\x8c\x6e\x02\x9e\xa3\x76\x7c\x28\xea\x1a\xca\xcb\x02\x6a\x9e\x66\xd5\xcd\x1f\x83\x7e\x3e\x23\x31\xef\xe1\xc3\xf8\x35\xb9\xe1\x70\x21\x68\x9f\x33\x8c\xe5\x42\x3d\x7c\x35\x5f\x72\xd4\x83\xde\xf5\xb5\x1a\x7f\x57\xda\xa1\x03\x3f\xd0\xf6\x40\x9d\x4f\xb3\x3f\xe9\xc0\xe7\xa6\x34\xce\x30\xbc\x81\x8d\x5e\x23\xc0\xbe\x1d\x94\xc0\xe7\x22\xb6\x6a\x5a\xeb\x9b\xdd\x6e\x76\xe0\x69\x5e\xd5\x13\x65\x80\x3a\x60\x3e\x62\x73\x5a\x75\x8e\x9f\xa8\xa8\x66\x07\x79\x90\xc8\xf8\x5f\xe5\x50\x74\x20\x8c\x20\x01\x2f\x45\x5a\x5f\x45\x13\x74\xa8\x13\xc3\x56\xd9\x9c\x07\x66\x01\xac\xcb\xf4\xd8\x21\x6e\x35\x09\x23\xac\xeb\x73\xbb\x47\x63\xbe\x34\xde\xf5\xae\x18\x24\x4c\xa6\xa7\x0d\x89\xa4\x21\xcf\x41\x0c\x73\x73\x5a\x61\x01\xfe\xdf\xcd\x99\xd8\xbb\xd0\x48\xa2\xb7\xbe\x47\x55\xfc\xc5\x79\x34\xb9\x35\x15\x1e\x11\x5d\xc6\xca\x21\x97\xda\xef\x40\x05\x55\x6c\xc0\xfd\x66\x0e\xeb\xe1\x14\x66\x3a\x60\xe0\xe4\x6e\xd3\xbc\x86\xbc\x79\xe8\x76\xeb\xb5\xbd\xa2\xc4\xb0\x96\x23\xcb\xf0\x6c\x84\xdc\x1c\x61\xf8\x74\x12\xb0\xa4\x43\x62\x34\xd6\x61\x7e\xc0\x14\xc3\xe8\xeb\x27\x49\x80\xb6\xd9\x5d\x51\xa8\x1f\xbc\x3c\xf2\xdf\x47\x2a\x75\xa2\x3c\x2c\x97\x40\x9e\xee\x0d\xcf\xdf\x6e\x8b\xf2\xb6\x33\xd0\x35\x67\x80\x3b\x68\xf3\x65\xb7\xaf\xc5\x39\x53\x1b\xa8\x7a\xb1\x33\xcd\xb9\x4a\x6c\x88\x18\x59\xfa\x06\xaf\x60\xfb\x20\xd9\x98\x81\x9d\x9c\x87\x4a\xf8\x42\x0b\xf0\x92\x56\x21\xa1\x28\x37\xf0\x6f\x90\xb5\x55\x6f\xbc\x3d\xe7\x5d\xf6\x69\xf8\xae\x42\x83\x61\x58\x3e\x97\x7d\x53\x58\x43\x42\xd1\x0e\x6b\xb5\x43\x7f\x93\x3b\x6c\x2f\x8b\x70\x1b\x5e\xdd\x3c\xae\xb6\xcf\xb7\xce\x46\xd1\xba\xad\x66\x6f\xb6\x67\xc3\x34\xf3\xaf\xc6\x43\x1e\x26\x09\xb4\x4e\x22\x14\x90\x93\x3c\xdf\x01\x3f\xfe\x00\x38\xf5\xb8\x0b\x06\xcf\x2e\x3d\xcf\x0f\x50\x5b\xe5\x5f\x69\x7a\xea\xed\x33\xd2\xf3\x62\x1f\x63\xe0\x27\xa8\xe7\xbc\x54\x5b\x28\xd3\xc6\xbe\x36\x94\x0c\x76\xf3\x88\x6d\x5f\x3f\x62\xc8\xd8\xd8\x7c\x8c\xae\x6c\xe2\xdb\x25\x20\xbd\xc0\x8b\xa4\x21\x63\xb4\x74\x24\xcd\xe0\xca\x62\x62\x2d\xb9\x0b\x88\x76\x3a\xfe\x4f\xc5\x47\x97\x7b\x76\xcd\x11\xa8\xc4\x49\xe1\x78\x7e\x2f\xa8\x2a\xbd\xe6\xf4\xec\x25\xa4\x4d\x2a\xae\x87\xaf\x96\x5e\xa8\x18\x06\xca\x1c\x8d\xc2\x6d\x86\x55\xa1\xdf\xed\x05\xd2\xa3\xbe\x22\x06\x92\x05\x6a\xcb\x33\x18\xd2\x1f\x48\x8f\x06\x24\x72\xe0\x42\x04\x59\x87\x8b\xb1\x9d\xe2\x7a\x0a\x8e\x96\x3f\x97\x12\x53\xa1\x4e\x68\x7b\x32\x6a\x20\x3d\x2a\xb9\x11\x7c\x85\xaa\x76\x5c\xc8\x55\xdd\xe9\x88\x48\x8f\x51\xc3\x08\xfd\x50\x1c\x70\x73\x9e\x00\x28\x8d\xfc\x12\xe9\x31\x25\x3c\x43\x03\xf3\x88\x49\xab\x5d\xbf\x6a\xf0\x8b\x21\x60\x20\xd0\x6b\x58\xdd\xed\x36\x8f\x37\xee\xd7\x23\x3f\x70\x16\xdf\x4c\x5d\x61\x88\x5c\xa7\x30\xc0\xc0\x94\x4d\xcf\x54\xd7\x60\x09\xb7\xf9\x04\x9d\x4d\x11\x8f\x38\xf1\xff\x5f\xf0\xdf\xee\x76\x71\x84\x49\x26\x4c\xb9\x3a\xb1\x07\x5e\x03\x71\x0f\x15\x73\x53\x34\x78\xb3\xda\x0d\x66\x7a\x12\x0b\x19\xf6\x42\x82\xce\x65\x1d\xbe\x28\x8f\x4d\x74\x00\x59\x59\xa6\xe4\x99\xa5\xc7\x45\x24\x9c\x9d\x9b\x2a\x8c\x4b\x9e\x11\xdb\x35\x1a\x33\x11\x10\xcc\xac\x42\xce\x45\x66\xc9\xf7\x9e\xf5\xf6\xe5\x8f\xc1\xd7\x10\x34\x46\xf5\x81\x5f\xcf\x9b\x87\x85\xdf\xed\x2b\xd2\x13\xb1\xc2\x85\xf0\xe4\xf6\x06\xe9\x49\xdf\xb8\xfa\xff\x29\x65\x71\xad\x8f\x74\xb5\xd7\x4a\x4f\x4a\xcf\x3d\x2b\x2e\x3f\xde\x9b\x6c\xb6\x8b\xf2\x02\xbf\xcb\x8d\xac\xaa\xea\x1a\xe8\x39\x19\x59\x92\x1e\x04\x1c\xd9\xba\xb6\x46\xac\xea\xaa\xa8\x44\x7a\xa0\x45\x2c\x5a\x7b\xd5\x1d\xd3\xd7\xba\xc7\x83\x67\xd6\x4c\x84\x2e\x2d\x97\x65\xae\xe4\xce\x35\xc6\x31\x9e\x98\xdb\x2c\x55\x20\xd2\xba\xda\xb5\x3a\x28\xd7\xc1\x20\xe9\x69\x21\x31\x6e\x54\x61\xba\xd8\x6d\xec\x18\x5f\xff\xdb\x10\x8f\xeb\xe3\x45\x7a\x5a\x7b\xb8\xe7\xb7\xc2\xd5\x78\x20\xef\x8a\xc6\x9b\x2f\x8b\x6c\xc8\x1c\x23\x7d\xcf\x8b\x5d\xc1\xec\x03\xaf\xea\x5d\x7a\x42\x64\xe9\x54\x38\x5b\xfa\x5e\xac\x71\xde\xbc\xdc\xf4\xe7\xaf\xef\x81\xe7\x41\x4b\x72\x7d\x03\xf5\x6d\x51\xa2\x42\x43\xfa\x9f\xd1\xb0\xfb\x3e\x03\xab\x00\x57\x9d\xec\xd1\x96\x96\x8d\x4d\xb6\x01\x59\x9e\x5d\x90\x40\xfa\x3e\xe8\x38\xb2\xb6\xdb\xcb\x76\xf9\x6d\x8a\x5e\xfa\x41\x6c\x8a\xa2\x1b\x63\x64\x76\x68\xa3\x3d\xd2\x0f\x12\x89\xe4\xd7\xef\x45\x0d\x7f\xae\xd4\xa0\x9a\xcb\x75\x11\x0c\x5d\xfc\xfd\x2b\xcf\x15\x66\x49\x27\x9d\x50\xe9\x07\xda\xe7\x96\x4d\xa7\x39\xff\x25\x6f\x35\x5a\xbe\x48\x3d\xfd\xed\x7f\x27\xb7\x58\x3f\x0c\x34\x56\xfb\xc9\xb2\xa8\xaa\xdb\xa2\x7c\xc3\xe3\xa2\xcf\xec\x26\xfd\x90\x70\xa4\x1d\x31\x36\x3f\x28\x54\xad\x6f\x1b\x85\x91\x20\x78\xbe\x20\xa3\xf2\x6b\x1b\xd7\x90\x7e\x08\xca\x55\x8b\xac\xd6\x77\xfd\xb2\xfb\xd1\x43\xd0\x90\x1a\x79\x02\xc4\x3c\x97\xc5\xd1\xdd\x81\x46\x0a\x5d\xc5\x7d\x75\xc9\xeb\x57\xa8\xd2\xff\xa0\x2b\xfb\xc5\xd8\xd1\x84\xea\xa0\x13\x8f\x3b\x9f\xa6\x4f\x21\x9f\xf9\x46\x7c\xea\x06\x6a\xf8\x1c\x66\x0f\x87\x37\x64\xa1\x46\x37\xe0\x78\x79\x28\xde\xcd\x41\xea\x16\xa2\x1f\x79\x01\x62\x23\x31\x6d\x52\x16\x39\x9c\x8f\x77\x45\xa6\xda\x66\xdf\x8a\xb1\x3a\xc9\xdf\xaf\x38\xcd\xbb\x28\xaf\xf4\xa3\x90\x22\xc7\x1e\x82\xd3\x1c\x4a\xc9\xb5\x29\x89\x35\x5b\x33\xa5\x6e\xd3\xca\x1d\x80\x7e\x1c\x0a\x22\xda\xda\xc4\x2f\xc6\x37\xe6\x46\x22\x5c\x81\x2d\x89\x1c\x78\x53\xa3\x97\x4e\x48\x80\x29\xaf\xc6\xcc\x6b\x36\x6e\x23\x6c\x37\xa1\x4d\xea\xfa\x37\x67\x0b\x52\x33\x64\x99\xc9\xf8\x19\x14\x4d\x6b\x1f\xf8\x09\xf8\xda\x78\xed\xa7\x8c\x4b\x58\x35\x9f\x38\x77\x06\xe7\x17\x77\xe5\x21\x35\x8c\x43\xcb\xf9\x5f\xf3\x87\xe5\x7e\xb7\x7a\x5c\xba\xfb\x71\x02\x18\x36\xdd\xae\x76\xee\x04\xbc\x36\x61\x86\x23\x20\x18\xd7\x36\xe0\x71\x57\xf2\xbc\xee\x05\x3c\xa4\x2f\x62\x1f\x33\x04\xc5\x09\x72\x44\x7a\x36\x46\x70\x33\xf4\x53\xde\x9b\xbd\x46\x7a\x14\xc1\xf2\x07\x7e\x5a\xe5\xd6\xf1\x6a\x51\xa2\xb3\x5c\x19\xe6\x80\xfe\x1f\xdd\xaf\xc9\x28\xc6\x64\xfd\xee\x71\xb9\x68\xfe\x5e\x0d\x76\x39\xa0\x46\xb2\xa6\x0d\xf9\x40\x07\x3b\x1c\x3d\x82\x4e\x14\x6d\x69\x34\x6e\x01\x5a\x7c\xab\x0c\x3c\x62\x10\xeb\x8f\x69\x0e\xe5\x9f\xee\xaf\x3e\x07\x5c\x4d\x86\x7d\x6a\xfb\xca\x4b\x78\xc5\xb0\x4e\x85\xe1\x6f\x4b\x5b\xeb\x3a\xcb\xc8\x99\xa1\x86\xaa\xfe\x5a\x90\x4b\x06\x41\x10\x22\x76\xfe\x84\x68\xa7\x6a\x22\x68\x2c\x83\x90\x49\x14\x84\xb5\x2c\x5c\x48\x0f\x66\x7e\xb6\xc7\x61\x32\xba\x6f\xa8\x7c\x29\xba\x44\x3d\xbc\xc3\xe8\x44\x09\x08\x23\x68\x1a\xa2\x63\xb4\x9a\x3f\x77\xd5\x44\x32\x20\xc2\xcc\xe0\x66\x3f\x56\x7f\x39\xaf\x5e\x06\x44\x69\xe1\x21\x3a\x39\xbf\x46\xd8\x4d\x00\x06\x64\x40\x55\x92\xd8\x22\xfd\x0d\x2f\xd3\xfa\x32\xa8\x03\x71\x9d\x74\x80\x1f\xf4\xae\x78\x87\x32\xef\xaa\x03\x64\xc0\xfc\x04\xd9\x4e\xff\xe7\x0c\xe5\x65\x60\xf6\x04\x2c\x08\x98\x61\x14\xfc\x55\x94\x6f\xb7\x3c\xcd\xb6\x75\x9b\x42\x92\x01\xa3\x01\x7a\xf7\x4f\xfc\x08\x03\x01\x9d\xc9\xd9\x18\xb0\x48\x60\xaa\x76\x5e\x5e\x4e\xc8\x9a\xe7\xee\x13\x7b\x9a\xf4\xa3\x1d\xfb\x12\xfd\xa9\xa9\x80\xbd\x0c\x62\xa5\x10\x1d\xa3\x53\x5e\xaf\xc1\x28\xbe\xbf\xb4\x31\x75\x19\x24\x81\x51\x15\x3c\x40\x7d\xbf\x7b\x98\x7f\x2f\x43\x6a\xb7\xbb\xc1\x63\x26\xd2\x54\xaa\xcc\x0e\x65\x01\x86\xc9\xae\x3f\xf9\x83\x04\xe2\x84\x5b\xac\x9e\xd9\x44\x9a\xcf\x7a\xc3\xeb\x2e\x68\x3c\x88\xbb\x0d\x07\x41\x78\x1e\xa2\x1b\xb7\x77\xf3\x87\x3f\xda\xbf\x45\x58\xc2\x83\xce\x41\xbb\x10\x84\xef\x63\xa5\x01\x6f\xa6\xfd\xf6\xdc\x0e\x87\x75\xff\x65\x20\x98\xc7\x78\xbf\xd4\x69\x2a\xc4\x28\x03\x11\x2b\x2c\x26\xc3\x89\x76\x3b\x60\x19\xb2\x3d\xa4\x36\xac\xc2\x9b\xe7\x87\xf9\xe0\x55\x55\x10\x22\xc2\x72\x5d\x54\xf5\xaa\x7d\x5c\x15\x1b\x12\xa8\x73\x05\xeb\xec\x7c\x48\xf3\xae\x2a\xc3\xf5\xe0\x11\xe7\xfd\x9a\xa4\xc9\x79\xab\x84\x61\xec\x36\xb4\x7e\x7f\x4e\x6f\x20\x01\x78\xb1\x0d\xf6\xdb\x02\xf0\xbb\x82\x67\x03\x30\xa0\x0c\x40\xf8\x32\x1e\x44\x60\x06\x41\xb0\xf1\x1d\xb5\xc4\x04\xf7\xbb\xbb\x5c\x6b\x21\xc2\xd6\xf9\xe9\x92\xa4\x32\xf4\x98\x11\x48\xb0\x60\xf3\x0e\x3c\x20\x43\x3f\x14\x86\x19\xf2\x7c\x41\x4c\xc6\x54\x36\x58\x86\x7e\x12\x21\xc5\xf1\xb6\xc8\xe6\xd9\x59\xb8\x8b\x03\x2f\xa6\x61\x47\x29\xd1\xd5\xe0\xc9\x30\xf4\x05\x06\x5e\x8c\xa6\xe6\x02\x32\xee\x02\xee\x1b\xa8\x8a\xec\xbd\xb5\x78\xc2\x30\x32\xfc\x95\xb8\x9e\x8a\x05\x1c\xda\xf0\x4c\xd3\x66\xd8\x29\xe7\xd9\x59\xbe\xf5\xfc\x95\x30\x8c\x5b\x6f\x70\x25\x0d\xc5\x70\xdf\x41\x1b\x3d\x7e\x08\x42\x0f\x36\xfa\xe2\x5b\xd4\xab\x0c\x09\x33\x65\xab\xb3\x39\xa2\x11\xfa\xb3\x29\x24\x11\x0d\x4c\x64\xa2\xc4\xc4\xd0\xb6\xa5\x9f\x74\x1d\xc0\x8c\x0a\x06\x46\x8f\x22\x6d\x9c\x81\xc6\xc8\xb8\x5f\xb7\x5f\x72\xf0\x74\x34\x8c\xf1\x48\xe4\x4a\xa1\x7b\x6c\xd2\xf2\xbf\x25\xf4\x9a\x3c\x7c\x43\x9a\x18\x7c\x8a\xc1\x88\x0e\xca\x47\xa7\x67\x66\x48\x05\x03\xd5\x02\x74\x24\xdc\x80\x2e\x4a\xe8\x4f\xcf\x71\x7f\x88\xcc\x7a\x45\xed\xe9\x81\x3f\x11\x32\x4f\x99\x7a\x05\x17\xa1\x1d\x14\x9f\xb9\x4e\x01\xc5\x8d\x62\xcb\xeb\xa2\xad\x22\x74\x6d\x4c\xa2\xe1\xff\x30\x5b\x0c\x46\x3d\xb2\x5a\x3f\x9b\xbe\xdc\xb7\x4d\x94\x7c\x6b\x8e\x84\x11\xa5\x49\xe7\x73\xde\x3d\x7c\xb1\x42\xc3\x88\x79\x54\xba\x53\x6e\x0b\x59\x96\xe6\x87\x3b\xc8\xaf\x0b\x5f\xc6\xf7\x8f\x94\xa3\x8e\x6f\x6c\xfa\x0d\x9c\xce\x35\x06\xff\x9b\x21\x74\x8f\x1f\x4b\xc0\xec\xb6\x11\x39\x46\xc7\x57\x3d\xf4\x0d\xb7\x30\x06\xc0\x59\xc3\x95\xb2\x2a\x02\x9b\xbe\x6a\xe4\x08\x2f\x32\x3a\x49\xed\x3f\x43\x17\x7d\x34\x4f\x06\x7f\xb5\x3f\x9a\x30\x81\x84\x6c\x9a\xb9\xc7\x48\x22\x8a\x33\xff\xad\x92\x8d\x51\xfa\xeb\xb5\xb1\x47\x9b\xf1\x7e\xe4\x69\x9e\xc3\x75\x32\x6c\x30\xf5\x93\xc4\x47\xd1\x9d\xd5\x6e\x3b\xf8\x7a\xdc\xf3\x70\x01\xa6\x36\xed\xdc\xdf\x9c\xb8\xaf\x42\xeb\x49\x38\x0f\x77\x6e\x82\xa5\xc3\xfd\x3d\xe4\xa0\x3d\x33\xb7\x4a\xb5\xe8\xb8\xe8\xfa\x61\xc3\x50\xf8\xe0\x59\x81\x10\x69\x8b\xda\x27\x29\xdc\x5d\x77\x6e\x34\xe7\x91\x3a\x66\x8f\xdc\x31\x48\x38\xdb\x7d\x38\x01\x54\x5b\x52\x81\x9f\x50\xe6\xfc\xf8\x5c\xa6\x87\x34\xb7\x4b\x6b\xf4\x84\x42\x13\x53\x30\x71\x3a\x65\x56\x8d\x67\x64\xa1\x85\xd2\xd3\x58\x68\x06\xbc\xaa\xb9\xaa\x4c\x95\x82\xb3\x9a\xc2\xc6\x8c\xb1\x9c\x8c\x3c\x1d\xa3\xb5\x64\x28\x89\x61\x56\x9f\x6d\x6e\x56\xbb\xcd\xec\x6e\xd9\x19\xbc\xd3\x73\x5f\x85\x66\xdc\xf7\x22\x9d\x2e\x5a\x92\x21\x50\x0f\x8f\x2f\x8b\x8b\xb3\x93\x72\xfa\x76\x00\x1a\x2b\xb6\x67\xe2\xe2\x4a\x70\xc6\x71\xb5\xff\x1e\x5d\xa2\x21\xc0\x78\x25\x34\xe7\x4e\xe1\xde\x53\x6b\x85\xe0\x4b\xfe\xc1\x4b\x35\x3f\x9f\xfa\xdf\x90\x78\x34\x44\xb0\x5b\xaf\x02\x7e\x58\x6e\xd8\x74\x89\x78\xa7\x3f\xf2\x88\xd0\x8b\xa7\x42\xc1\x34\x67\xa0\x24\xbe\x02\x74\x7a\xf7\x88\xee\x03\xf5\x98\x56\x15\x28\x74\x32\x31\x3e\xf7\x3b\x44\xff\xb4\x29\x48\x82\x50\xbb\x54\xdd\x2c\x83\xb2\xee\x62\x47\x24\x0c\x63\x6e\x39\x8f\x90\xdb\xc0\xb0\xd9\x4f\xe1\x2c\x25\x09\x89\x46\x74\xcc\x6c\xf7\xfb\x28\x1b\x09\x29\x20\x62\xca\x64\xce\x97\xe7\xb2\x5a\xa3\x0a\xf7\x68\x84\x42\xc6\x59\x4b\x21\xbf\xcc\x8d\x7e\x94\xee\x4a\x21\x25\x09\xa3\xc4\xb7\x10\x0a\x2b\x5c\x74\x73\x9e\x20\x32\xb7\xbd\x89\xc7\x90\xf1\xba\x3a\x1f\x8f\x73\x5e\xbd\x7e\x14\x99\x76\x77\x22\xd4\xb0\xaf\x6d\xd3\x2c\x95\x45\xfe\x93\x67\x19\x0c\x8c\x4d\x42\xb4\x6f\xfc\xb0\x14\xca\xbd\x91\x33\x29\xf7\xfd\x9a\x5b\xd7\x91\x82\x36\x3f\x73\x75\xb8\x0e\x47\x81\x71\x8a\xf0\xc2\x97\xfc\x95\x67\x2d\x8b\x9a\x24\x51\x48\xb4\xfd\x22\x6b\x5e\xd6\xa9\x4c\x4f\x3c\xaf\xab\x81\x16\xc5\x70\xf0\x23\x6a\xe4\xbc\x56\xcf\x3f\xdb\x9b\x24\xa1\xe5\x0e\x46\x55\x3a\x27\x76\xdf\x34\x30\x0a\x96\x92\xc2\x72\xfa\xdc\x19\x63\xbf\xf7\x0a\x11\x97\xc4\x3d\x42\x59\xfc\x1b\x64\xfd\xb3\xa7\xce\x35\xfa\x4c\x91\xd2\x81\x6e\x27\xf2\x32\x4b\x0f\xa9\x68\x3e\x44\x39\x06\xf6\x4b\x12\x0b\xa1\xf8\xe8\x08\x71\xbf\x19\xeb\x18\x87\x03\x05\xa5\xea\xcb\x6d\x69\x3d\x3d\xdb\xcc\x3d\x23\xdd\x6f\xc8\x39\x07\xb1\x15\xc2\xa3\x38\xb4\xf4\xc0\x48\xf2\xb1\x05\x5e\x15\xf9\x1f\x7d\xaa\xc1\xd1\x54\xe0\x9c\x60\x75\x6d\xb3\xef\xe0\xb7\x34\x48\x13\xdb\x2a\x88\x8f\x26\x9b\x95\x53\xeb\x67\x0f\x65\xe3\x29\xa3\x85\x9b\x56\xbb\xd7\xb4\x5a\x9f\xcb\xb4\xe6\x79\x2a\x79\x36\xa8\x13\x97\x44\x72\x23\xaf\x6b\xcf\xe2\x2b\xf7\x7e\xf8\x40\xca\x8f\x85\x93\xe4\xc3\x15\xed\xf4\x41\x49\x2f\x2c\x48\x54\x12\x05\xa2\xc7\x5e\xbc\xbc\x26\x30\x76\x3d\x45\x84\xa1\xa1\xaa\xab\x12\x70\x2d\x60\xd2\x72\x88\xec\x6c\x7c\xc5\xe6\xa8\x4e\xf3\x73\xeb\xf7\x12\x88\xcc\x5a\xfe\xe7\x8f\x87\xf6\x4f\x12\x78\x8b\x45\x77\x6c\xf1\xd3\xbf\x0c\x4a\xe1\x77\x6c\xb9\xdc\xcb\xe2\xf8\x95\x79\xe3\x8c\x55\xa2\xe3\x04\xf5\x0e\xb6\xeb\xe5\x7c\x35\x7b\x58\x6d\x77\xfb\xed\x6e\xf6\x63\xb9\x7f\x7e\x72\x61\x1c\xea\x87\x1c\xd1\x0b\xbc\x2c\x57\xea\x33\xc8\x8a\x11\x2d\xa1\xa4\x7e\xa2\xdd\x41\xd7\x58\xa1\x5d\x34\x8c\x36\x3e\xbe\xb5\xb5\xf7\x15\x64\x59\x97\xe8\x95\x34\x10\x26\xf5\xe9\xa0\x5a\x26\x71\x3d\xbc\x73\x48\x35\xc2\x0b\x30\x8b\x36\xac\xe7\x1d\xae\x45\x4a\x38\xf7\x0d\x8c\xe4\x94\x15\x97\x79\x71\x3c\x9e\xf3\xb4\xbe\xdc\xf0\x2c\x2b\xea\x49\x5e\x62\x87\x4c\x94\x94\x26\x8a\xb6\xbf\xb2\xe6\x75\x0d\xe5\x68\xb1\x51\x16\x09\x6d\x96\x6f\xbf\xec\xd2\x35\x8a\x28\x69\xb7\x43\x5c\xb6\xe3\x0e\x8a\x78\x36\xfa\x87\xda\x3f\x65\x57\x80\x75\x8d\x97\x9e\xf2\x14\x69\xc4\x15\x62\x4f\x72\xf8\x40\x7f\x7f\xda\x34\x19\x6c\x74\x34\x52\x09\x89\xfa\xc0\xbb\xab\xe1\x8d\xfd\x08\x89\x36\x52\xd4\x35\xd4\xeb\xb2\x78\x4f\xd5\x78\xf7\xa0\x71\x10\x62\x22\xce\x12\x46\xb4\x92\x1f\x86\xf5\x7c\x72\xcf\xa7\x31\x37\x52\x50\x92\xe7\xeb\x8c\xd7\xba\x28\x8f\x36\x5a\x37\x9d\xf9\xa5\x89\x14\x8e\x26\x69\xbe\x45\x88\xa1\xe6\xe3\xd3\x8e\x26\x3a\x0e\x62\x27\x10\xf2\x9f\xff\xb4\x92\xa3\x8d\xff\xe5\x32\x6f\x54\x10\x1e\x1a\x1a\x8b\x63\x9a\x7f\xf1\x6b\x82\x0a\xcf\xa1\x7c\x5a\x20\x2a\x92\x70\x3b\xb8\x8f\xa4\x42\x03\x16\x18\xaf\x9e\x56\xbb\xd5\xec\x61\xef\x68\x3d\x67\x37\x0f\xcb\xfd\xee\xf9\xc7\xf2\x69\xbb\xff\xf9\xfc\xf0\xd2\x06\x3c\xa9\x0c\x24\x16\x7e\xe4\xeb\x22\xcb\xaa\xf6\xaf\x9c\x62\x71\xc1\x6a\xfe\x7c\xfb\x97\xfb\xa3\x22\x09\x49\xac\xb3\x63\x46\xb4\x57\x37\xe0\xfa\x44\x09\x96\x63\x73\xa5\x36\xf3\x71\x9b\x0e\x12\xd1\x89\x0b\x2e\xe0\x2d\xe3\xcb\x6b\x95\x9e\xa1\x31\x62\xaf\x05\x9f\xa1\x65\xf7\x38\xfb\x73\x3f\x7b\x78\x78\xfe\xb5\x5c\xec\x6f\xfe\x6a\x16\xfe\xdd\x72\x1f\xb8\x27\x84\x20\xc2\xe8\x9c\x7b\xfd\xf5\x66\x35\x6f\xdf\x14\x98\x79\xfc\x0a\xea\xec\x3d\x33\x15\x00\x03\x4f\x96\x42\x1c\x22\xfa\xfa\xe6\x9c\x65\x60\x29\x46\x24\xf3\x92\xd8\x14\x90\x66\x59\xf1\x61\x4a\xd2\xab\x5d\xc7\xa0\x74\x9d\x6b\x1d\xd9\x84\xcc\xd3\xa6\x84\xea\x98\xe6\x1b\xf8\x1f\x77\x5b\x3f\x30\x99\x82\x66\xf2\x64\x69\x5f\x58\x7b\xda\xd9\xe9\x3f\x29\xf3\x05\x31\xc8\xa0\x22\xcd\x67\x07\xeb\x42\xdf\x16\xe5\x17\xe4\xc9\xc3\x89\xce\x7c\x45\xb1\x98\xc6\xc5\x07\x1a\xcb\xe4\x5a\x32\x70\xf4\x16\x41\xc0\x91\xf8\x68\xb7\xbc\x71\x39\x53\x16\x84\x12\x03\xb9\xa2\x38\x1f\x5e\xd1\x9d\x19\x07\x95\x58\x60\x6d\x08\xf8\x6c\x26\x6c\x2b\x4b\xd0\x36\x43\x60\x21\x53\xf5\xa2\x38\x0c\x67\x3c\x0b\x7d\x82\x3c\x4c\xb8\xd5\xbe\x54\xe0\xd8\x3b\x7b\xd6\x33\x23\x54\x06\x96\xc8\xd4\xd4\xc5\x0e\x42\xcd\x8c\x70\x89\xb6\x8d\x9d\xad\xcb\xce\x20\x64\x34\x00\x0c\x93\xcd\x97\x4f\xbb\xfd\x62\x39\x5f\x3d\xce\x1e\xb6\x6d\x23\x09\x3d\x13\xbf\xb2\xc2\x67\xed\xdf\x29\xe6\xb4\x72\xf8\xe8\x49\x43\x4b\x46\x35\xf5\x5c\x68\x08\xd7\xa4\x6b\x60\x1c\x82\xe0\x8b\x2a\x9f\xd1\x08\x47\x84\xe1\xec\x45\xd4\xbf\x9a\x55\x5b\xc9\xaf\x4f\xc3\xe1\x08\x45\x5a\x20\x00\xe0\x71\xf5\xd4\xac\x85\xcd\x6e\xf5\x74\x37\x98\xf5\x2c\xd2\x0a\x41\x28\x22\xc3\x82\x33\x35\x93\xb2\x6b\xd2\x78\xfa\xa2\xcd\xbc\x85\xba\x4d\xb0\x0e\x1f\x2b\x66\xd2\xa7\x4e\x38\xaa\x39\x6c\x3a\x52\x6d\xc9\x62\xf0\xd0\xdf\xd9\x5b\x26\x26\x23\x7e\xfa\xdb\x60\xce\x37\xf9\x5f\x16\x83\x34\x7a\xd7\xe8\xd1\x96\xb0\xc5\x89\x5f\x4d\xd9\xc5\x2c\xa1\x21\xe6\x73\x85\x25\x46\x8a\x47\xe3\x93\x24\xc4\xd1\xdc\xce\xb2\xcc\x71\x09\xae\x4e\x1a\x4d\x64\x18\xb2\xcd\x4a\x96\x08\x8a\xc5\xa4\x4f\xf0\xe1\x10\xec\xa3\xfb\x81\xb6\x9a\x89\xe5\x1b\xd4\x81\x17\x78\x06\x29\x6d\xd8\x23\xdd\xa0\x70\xae\x95\xef\x6a\x4e\x0e\xe7\x8c\x97\x73\x5e\x56\xb7\x45\x89\xf2\x9c\x63\x5c\x04\xe3\x32\xe0\x7d\xe1\x2e\x9e\xed\x1f\x46\x44\xc7\x92\x89\xc0\x88\xf8\x37\x8e\xf9\x7e\xe3\x8f\x5b\xa9\x05\xf4\xa1\xb9\x71\x9b\x96\xdd\x02\x14\xca\x14\x02\x9c\x4a\xc0\xf4\xd4\xf4\xe1\xc7\x84\x4a\xd0\x81\x82\xcf\x1a\x2c\x2d\xf5\xe8\x37\x94\x48\x04\x6d\x71\x6b\x36\xac\xfb\x0b\xd2\x51\x37\xf0\x13\x8c\xe4\x9b\x0d\xd6\x54\x03\xf0\x34\xbb\xb8\xc8\x97\xb5\x88\xbe\x9f\xd7\x40\x62\xa3\xf9\xcc\x73\x59\x94\x73\x9b\x87\x73\x8d\xd4\xb0\x9d\xcc\x96\xff\xaa\x7b\x5e\x17\x03\xe6\xa1\x1d\xbb\x3d\xa7\x32\x55\x23\x25\x01\xc9\x20\x21\x18\x86\x3b\xba\xaa\x89\x81\xce\xa4\x64\x20\x22\x21\x7a\xf9\x8c\x27\xf8\x30\x08\x31\xd7\x41\x73\x8a\x95\x89\xa6\x58\x16\x8b\xf6\x37\xcd\x8d\x46\xeb\x45\x0b\x2f\xb0\xba\xef\xf3\xf2\xa2\xca\x9f\x29\x4a\x43\x37\x26\xbd\x42\x1a\xed\xb6\x1f\x45\x39\xa7\x3e\x7f\xc3\x17\x5c\x27\xa3\xd1\xd1\x0a\x64\xab\x41\xd4\x3c\xea\xe1\xd2\xd5\x7c\x4e\x9b\xda\x4c\x43\xc4\x6d\x91\x81\x3d\x24\x56\x0a\x53\x73\x5f\xc1\x92\xfb\xeb\x2c\xf2\x12\x8d\x58\x97\xe3\x67\xf9\xef\x7f\xf7\x5d\xdd\xc8\x13\x01\xd6\x19\x7e\xa4\xb9\x2a\x3e\x06\x9b\x6f\xe4\x49\x82\xae\xe1\xe2\xf9\xcf\xe1\x35\x10\x25\x7e\xeb\x05\xae\x72\x44\x52\x8c\xe3\x5f\x4d\x2f\x34\x5f\x6d\x2d\x94\xa9\x0d\xb6\x1a\x17\x1d\x0d\xe9\xc6\x50\xf9\xfd\x05\xdc\xcd\x8f\xc8\x97\x1e\xd8\x72\xea\x55\x65\x8d\x5b\x13\xf6\xb0\x1d\x02\x15\x5b\xf0\x40\xae\x5a\x5c\x28\xe6\x1e\xba\x2e\x10\x18\xd6\x53\x63\xab\xdc\xa6\x46\xb9\x78\xb8\x5f\x44\xa1\x8e\x09\x6b\x45\xe7\x9b\xf5\xb0\x6c\x46\xe1\xb7\x92\xf7\x32\x22\x8a\x20\x68\xf0\x1f\xf3\x5e\x98\x3f\xa2\x89\x01\x4c\x67\x13\x29\xf1\xef\xb1\x80\x11\x95\xbe\x20\x43\x38\x6b\x5a\xbf\xae\x8b\x2c\x95\xd7\x9f\xb8\x77\x80\x46\x11\xf1\x31\x06\xf7\x7c\xeb\x9e\x22\x12\x91\x24\xd3\xf2\x45\x0b\xe0\x59\x33\xa4\x8b\x42\xb6\x02\xd6\x32\x8a\x34\x47\x28\xed\x4c\xa9\x47\x4c\xa8\x7d\x5d\x28\x2d\xa3\x58\x1a\x29\x43\x05\x96\x5f\xfa\x9f\x67\x6e\x2a\xce\x86\xfd\x12\x9a\x20\xb9\x86\xc9\x93\x3c\x9d\x8f\x69\x75\xe4\x6e\x31\x47\x09\xe3\xb1\x2d\x71\xbf\xe3\xd5\x4b\xd5\x23\xa4\x75\x3d\x12\x30\x25\x3e\x75\x19\xe0\x57\x1b\xd8\x7a\x51\x22\x7d\xc3\x05\xd7\x4c\xa2\x7b\x5e\x2a\xc9\x07\x61\xb9\x28\x01\x21\x8d\xe1\x72\x4a\x4b\x18\xa8\xbe\xcb\x88\xd3\x40\x68\x63\x06\xcc\x5f\x1b\x97\x39\x3f\x4c\x0b\xfb\xc8\x48\x78\xda\x85\x68\x36\xa9\x1a\x3f\xa5\xf0\x43\xcc\x1b\x37\xb6\xcb\x9f\xd4\x21\x5f\x22\x19\x19\x53\xa0\xa7\x2c\xb1\x18\x2d\x0f\x19\x49\x24\x5d\xd8\xbe\xac\x97\x9b\xfd\x6c\xf1\xb8\x7a\x6a\xaf\x86\x48\xd9\x2a\xc3\x7a\x57\x20\xb1\xc8\xb9\x57\xfa\xd6\x56\xc4\x39\x67\x32\x52\x3e\x91\xda\x85\x91\x3e\xf2\x51\xf9\x91\x8c\x54\xec\xa1\xe5\x6e\xb9\x58\x5e\xf2\xf4\xb3\x97\x14\x8f\x94\xf4\xd0\x97\x34\x61\xe5\xea\x7c\x32\xec\xb7\xd5\xbe\x5f\xa2\xff\xc7\x95\x79\x3c\xbd\xf7\x47\x4a\x19\xc5\x28\x13\x4a\xf9\xf5\x1b\xe4\xaf\xbd\x08\xb8\x61\x61\xfe\x55\x49\x4c\x61\x7d\x43\xde\x27\x23\x50\x06\x3c\xb4\xde\xdc\x0f\x37\x26\x00\x8e\x8c\x23\xaf\x69\x09\x25\xd6\xf0\x43\x55\x94\x75\x9f\x99\xfb\x37\x55\x86\xed\x13\xc5\x9e\x10\xc4\x8e\x69\xb3\xeb\x77\x34\xcb\x83\xcf\x18\x7b\xda\xd0\x93\xba\x88\xc2\x2a\x57\xa9\x4c\xe1\xca\x84\x77\xe1\x8f\xd8\x0f\x8c\x1c\xf2\x3d\xa8\x03\x2a\xca\xcc\xf9\x29\xad\x5d\x80\xde\x75\xd2\x1a\xeb\xb5\x76\x77\x4b\x5b\xed\xef\x5a\x02\x6a\xea\xa3\x9b\xbd\xef\x2e\xd5\x75\x8f\xf6\xcf\xf5\xe0\x3e\x6e\x4d\xa5\x49\x3d\xfd\xe8\x2e\x05\xa3\xa6\x7e\x80\xfa\x5f\x50\x0e\x89\x35\x64\x1c\xfa\x02\x63\x58\x25\x42\x69\x41\xeb\xe6\x35\x5a\xbc\x42\x1c\x8a\x80\xda\xaa\xf1\x3a\x3d\x42\x96\xe6\xc0\x73\x75\xe8\x72\x46\x71\xa8\x95\x15\x6b\x6f\x8c\xa9\xdb\x94\xb7\x10\x5e\x07\xe7\x19\xfe\x20\x09\x80\x76\x9c\x90\x78\xf6\xdd\x96\xc5\x71\x03\x3c\x7b\xc9\x53\x59\x94\x79\xdf\x52\x8d\x89\x20\x9e\x61\x88\x7d\x03\x5b\x99\xdf\x36\x35\x96\x5f\x4b\x9f\xb6\xfc\x9f\x49\xaa\x6d\x19\xd3\x50\x22\x86\xe1\x57\x2f\x5a\xf5\x23\x95\x6f\xbb\xd7\x9e\xb2\x8f\x8c\x69\x44\x91\x6e\x0e\x09\x74\xcf\xb2\x46\x8c\xc5\xf0\xa3\xd3\x18\x10\x70\x55\x1d\x9b\xbd\xa3\xea\x23\x21\x62\xca\x23\xda\x91\x60\xdf\x15\x85\x95\xfc\x1b\xdd\x81\x0b\x54\x36\x11\x05\x2f\x95\xc1\x71\x5a\xc1\x4b\xd7\x41\xe9\xc0\x96\x89\xfe\xba\xe7\x93\x53\x2f\xf2\x55\xe8\xb7\x49\xe5\x05\xff\x8a\xf4\x4e\xc6\x31\x84\xf8\x6d\x9b\x0d\xe5\x4b\xc8\x84\xed\xcb\x75\xe4\xd9\xe9\x53\x64\xef\xb0\xe9\x38\x52\x64\x2c\x7c\x8d\x55\x77\xdb\xd7\xa7\xed\xeb\x60\xc2\xca\x20\xc0\xc0\xda\xe9\x5c\xbd\x3e\xa6\xcd\x98\x14\x79\x9b\x4c\xbd\x3e\x4e\x58\x3f\xd4\x19\x4b\xc6\x8c\xbe\x72\xfe\x9a\x76\xca\x5c\xb6\x51\x51\x86\x40\xbb\xfc\x7c\x84\x92\xa7\xdf\x67\x87\x63\x25\x22\x3c\xf7\xe7\x5b\xe7\x41\xc5\x4a\xd2\xc8\x14\xaf\x36\x86\xc4\xbc\xc8\xab\xde\xb4\x56\x40\x11\x56\xb2\x98\x3f\xfe\x3e\x99\x11\x83\x47\x3c\xdd\xe1\x95\x66\xf5\xdb\x4d\x51\x55\xff\x3c\x8f\x8b\x25\x65\x0c\x7e\x04\x4e\xf4\x1c\x2b\xd9\x6a\x9e\x19\xff\xd6\x99\x28\x31\x10\xa3\x0a\x29\x4b\x50\x85\x23\x1b\x76\xb0\x6a\xd7\x27\x06\x84\x02\x35\x2e\xe5\x03\x34\xae\xd9\x63\x5a\x36\xa6\xa8\xeb\xa0\x23\xc6\x7d\x27\x11\x3f\xd4\xa1\x9a\xf8\xb6\x3a\x0e\x1c\x1a\x1f\x9f\xc8\x70\xba\x19\x2a\x8e\xe1\x38\x6a\x1d\xf3\xb6\x80\x76\x50\x93\x6e\x3a\x24\x1e\x95\x89\x55\xc3\x59\xcd\x9f\x7b\x42\x4d\x32\xf1\x49\x88\x10\xdb\xfd\x6b\x1f\x05\x34\xf8\xaa\x89\x0f\x04\x6d\xbc\xc5\x6a\xbb\xdb\xac\x6e\x5e\x76\xab\x67\x77\xfc\x25\x01\x0f\x90\xbd\x5d\xee\x1f\xd3\xbc\x47\x87\x29\x93\xd0\xe3\xe8\x26\x2d\x77\xf7\xcb\xcd\x72\x3e\xdb\xde\x63\x4c\xec\xbb\xc3\x22\x09\xa9\x1f\xbb\x42\x81\xbd\xea\xd7\x35\xcb\x24\x8c\x22\xaf\xab\x19\x9c\x65\xd9\xcf\x73\xd6\x38\x0f\x2d\x23\x9d\x4c\x48\x14\x6a\x66\xcb\xbd\x9e\x8a\x05\xc8\xf4\xc8\xaf\x6b\x01\x5d\xe7\x38\xc4\x98\xeb\x1b\x4f\xcb\xa2\xea\x49\x74\xc9\x84\x92\x00\x83\xfe\x0f\xc5\xc1\xc4\xe8\x8d\x7f\x35\x4a\x99\x26\x94\x52\x7c\xda\x93\x95\xdb\x74\xe1\x98\x7e\x46\xc8\x7d\xce\x84\x82\x0e\xb5\x15\xcf\x31\xbc\x62\x12\x2d\xb2\x3e\xb9\x8a\x4c\x58\x64\x30\xf9\x3c\xcb\x0a\xd9\xb8\x74\x4e\x87\xbf\xed\x10\x6b\x6a\xcb\xfc\xf6\x46\x77\x4b\xf1\x9a\xef\xc5\x19\x09\xfe\x47\xdf\x9d\x69\x86\x01\xc2\xc7\xcb\x4c\xbd\x37\x3b\x96\xba\xa6\xff\x94\x49\x44\xa2\x44\xd8\xdc\xf7\xf0\x69\x22\xa6\x84\x72\x13\x0b\xfd\xee\xb4\x68\x8e\xc0\xe7\x77\x28\x79\x8b\x0f\x4e\x22\x6d\x2a\x5d\x16\x70\x1e\x80\x20\x93\x38\x12\x2e\xe0\x64\xb6\xcd\x35\xbf\x5c\x8d\x62\x9c\x08\xd2\x0f\x79\xfc\xed\x78\xc6\xf0\x2d\x12\xa6\x30\xdd\xde\x9c\xe9\x7c\x5b\x17\xf2\xad\xea\x1d\x14\x49\x92\x04\x98\x3e\xb7\x7c\xe1\x66\xf5\x99\x12\x3f\xd7\x45\x78\x31\xea\x9c\x64\xf9\xcb\xe9\x64\x4a\x50\xbe\xc8\xe2\x24\x22\x8c\x51\x5d\xe1\xc8\x3f\x1b\x47\x64\x6e\x89\xe5\x7a\x24\x40\x32\x91\xa1\x8a\xdd\x3e\xde\x3c\x49\x75\x5b\x94\xcf\x99\xea\xc9\xc4\x5e\x57\xa9\x0e\x47\x46\x0a\x85\x78\x6d\xcb\x8f\xe7\xa6\xc2\xe8\x68\x49\xa4\x32\x16\xa8\xe9\xb6\x30\xe4\xc6\x50\xee\x8b\x3c\xbb\xec\x17\xf0\x3e\xea\xae\x28\x43\x5b\x69\x7f\x6a\x3c\xee\xd1\x5c\x50\xb1\x70\xf2\xb8\x37\x50\x57\x37\x97\x79\xe3\xf1\x16\xe5\x90\xbf\x5f\x26\x9a\x24\xc8\xc9\xbb\x3d\x65\x69\x3d\x90\x7f\x1f\xfe\x98\x86\x80\xdb\xe8\x67\x9a\x07\xc3\x1f\xe3\x9e\x47\x45\x38\x28\xe1\x6c\xb6\xae\x11\x0a\xa5\x3f\x44\xb1\xbb\xd0\x0f\x9d\x0e\xf8\x06\xe3\x1e\xeb\xcf\x6c\x94\xfc\x19\xfd\x92\x2f\x5c\x98\x60\x07\x55\x7d\x5b\x9c\xdd\x5a\xe7\x3e\x37\xc9\xe7\x12\xaa\xf3\x11\x1e\x8a\xba\x45\x12\x70\x5f\x0a\xe4\xe1\xb4\x6c\x86\x26\x2b\x2b\x8d\xfb\x3f\x0e\xfe\x76\x27\x24\x0f\x7c\x11\x46\x6d\x81\xc3\x1a\xca\xaa\xc8\x79\x36\xe7\xa7\xd1\xeb\x07\x44\x25\x5d\x8c\xc7\xd2\x2e\x0e\x5c\x1f\x1e\x44\x09\x26\x9e\xec\xf2\xfd\xe7\x19\xda\x28\x28\x0f\xfd\x28\x68\xc1\xf6\xab\xd1\xaa\xe2\x94\x04\xf8\xec\x19\xaf\xea\x2d\xcf\x60\x95\xdf\xdf\xb9\x50\x32\xa7\x14\x70\x2b\x45\x69\x20\x0c\xbb\x60\x1a\xf9\x72\x95\x06\xfb\x16\xa2\xc0\xa9\x8a\x35\xea\x0f\x01\x57\xfb\x73\xec\xee\xce\x3c\x03\xb6\x35\x04\x14\xf3\xe2\x78\xc5\xb6\x23\x39\x0b\x0d\x3f\xff\x43\x2a\x4a\x6e\xc2\x31\x4f\x50\x7f\x14\xe5\xdb\xef\x4f\x76\xce\x08\x8b\xad\xca\xdf\x6d\xfa\x0e\xdb\x1a\x4e\xc3\xc2\x78\xc9\xe3\x20\x54\x2d\x25\x1e\xb2\xe9\xa3\x98\xd0\xaf\xe6\x07\xda\x2e\x31\x12\xfd\xee\x25\xcf\x6f\x4a\x00\xf5\x75\x45\x02\x4f\x48\x90\xd8\xf9\xf3\xac\xb5\x63\x9b\x9b\x9c\xf2\x9c\x43\x88\x9c\x3f\x92\x67\xd9\xb9\x82\x92\x4f\xa7\x09\x6c\x6f\x41\x21\x96\x6d\x78\x66\xac\x8a\x6c\x3b\x49\x22\x31\xd8\xf6\x8f\x67\xe7\x1f\x70\x99\x44\xa1\x15\xfb\x3c\x9d\x6b\xb0\x84\x87\xb6\x51\x25\x09\x8a\x62\x39\x5a\xed\x9b\xcb\xf2\xf1\xf9\x69\xb7\x3a\x9e\xb2\x3e\x66\xce\xbd\x27\x23\xa3\x87\x02\x0b\x94\x53\x50\x43\x79\x4c\x73\x58\x4e\x94\x60\x4b\x0e\x31\x35\x8c\x0c\x48\x66\xb3\x17\xa6\x5a\xe0\x3b\x4d\x49\xc9\x75\xe8\xa3\x47\xf5\x58\xbc\xa7\xf0\xab\x28\xdb\x4a\x0b\xae\x69\x82\x76\x2f\x57\x6a\x7d\xce\x32\xe7\x87\x7c\x9b\x99\x15\x1e\x11\x58\xf9\x53\x9e\xf3\x3c\xcd\x0f\xfb\xd4\xdd\x4e\x78\x91\x87\x42\x52\xcf\x6b\x97\x2c\x17\x3e\x21\x98\x4f\xd0\xfe\xf4\x67\x16\xbe\x10\x9e\xcd\x53\xbb\x8a\xa4\x3b\x5e\x2d\x3f\xeb\x92\xcf\xca\x6e\x76\xba\x5d\x50\x04\x54\xe0\x6f\x28\x1b\xd7\xea\x57\x23\x88\x40\x44\x89\x74\xf6\xdb\x1b\xe4\x93\xd0\x63\x11\x48\x9f\xda\x0d\x77\xf7\x67\x73\x94\x8b\xcb\xbc\xad\x05\x6e\x7f\x28\x24\x2a\x50\x3d\xc6\xab\x2f\x17\x6a\x7f\x9d\x08\xc2\x42\x44\x93\x3f\xc1\xc7\x48\x48\xd7\x75\x80\xc0\x50\xe6\x2f\x57\x6b\x9f\xd1\x3f\xda\x3f\x1b\x30\xdc\x01\xd0\x94\x69\xb6\xd8\x67\x3d\x6d\x45\x09\xea\x47\xcc\x77\x35\xdb\x9f\x96\xba\x67\x04\xa9\x12\x94\xb1\xc4\x10\x29\x55\xf2\x0c\x0f\x45\x55\xdf\xa6\x87\xd7\x7e\xee\x62\x38\x28\x54\x79\x98\x27\x9d\xa5\xe5\x64\x80\xe1\x7a\x4f\x10\x8c\x33\x11\xf4\xce\x92\x6f\x65\xe0\xa5\x60\x22\xa4\x86\x7e\xf8\xdf\xe7\xaa\x46\x72\xf1\x1b\xa8\x3f\x00\x72\x04\xbf\xcc\x72\xf5\x54\x94\x47\x9e\x4d\xd4\x80\x09\x26\x75\x08\xc6\xb0\xdd\x6f\x57\x77\x4f\xfb\xf5\x66\x79\xbb\x72\xa0\x74\x11\x73\xa3\x60\x56\x25\x36\x88\x61\xff\x9e\xf8\xca\x10\xd4\x66\x45\x5d\xed\x33\xd0\xed\x4c\x49\x22\xe1\xd0\x23\x96\x5f\x6d\x38\x1c\x89\x34\x50\x30\xb3\x47\x6c\xa1\x2f\xd6\xe3\xba\x28\x1e\xbb\x12\x2d\x83\xb5\xf9\xc2\xbd\x44\x86\x6d\x82\x84\x3a\x68\xae\xc0\x5b\x8f\x54\x4a\x22\x15\x4f\xc7\x9d\xf2\x71\x4d\x63\x29\x05\x07\x2f\xf2\x07\x22\xe9\x53\x20\x31\x21\x98\x43\x6f\x98\x0f\x62\xc2\xfb\x4f\x2d\xe0\x49\x08\x1e\xba\xf2\xc8\x7d\x51\x2a\x28\xf7\xa2\x28\xde\xf6\x99\x89\x6a\x0f\x3e\xae\xd0\x3e\xc2\x93\x4e\x8d\x81\xb0\xbb\x9c\x60\xff\xc4\xeb\xf4\xbd\x7d\x6a\x19\x18\xd9\xac\x11\xf1\xce\xf0\x81\x24\x01\x24\x16\xbd\xc6\xa7\x08\xc9\x12\x4c\x28\x62\xbd\xd6\x4d\x3a\x5c\xc7\x52\x06\x38\xfa\xfb\x7d\x09\xcd\x17\xda\xbb\x06\x15\x52\xa4\x07\xdb\x9f\xf3\x13\x97\x6f\xcb\xcf\xd3\x44\x55\x89\x50\xd4\xc4\xe5\xd3\x6a\x5d\xa6\xef\xed\xb5\x09\xc4\x26\x03\x94\x56\xf5\x9c\x4f\x7c\x51\xf0\x34\x42\x57\xb9\x52\xcf\x27\xc8\x67\x06\x74\x35\x09\xd8\x9d\xf0\xa4\x04\x24\x80\x06\xda\x62\xf6\xf4\xa3\x99\xa4\x5d\xba\x55\xe8\x40\x20\x81\xc2\x9c\x9f\x6e\x33\xf8\xb4\xe1\xd6\x76\x53\xd0\x22\xe6\x74\xcc\xd8\xf1\x85\x13\x25\xbd\x28\x41\x80\xf2\xfd\xed\xee\x0a\x2f\xea\xba\xc4\x0a\xc1\xc7\x27\x44\x28\x59\x00\x89\x6b\x93\x21\x9a\x87\xb2\x15\xa1\xaa\xda\x26\x60\x48\x11\x63\x70\x65\xd6\xd5\xbe\x2d\xca\x2b\xe6\x9c\x6e\x65\x4a\x3f\xf4\x30\x50\x63\xf4\x63\x71\x97\xf8\x7f\xc1\x7f\xb7\xb5\xd7\xa4\x73\xb2\xa3\x8e\x00\x86\xfd\xb7\xbb\x5a\x32\xe2\x88\x1a\x65\x7d\xe6\x19\x2e\x91\x67\x3d\xe7\xa5\x7a\xce\x6f\xce\x97\xd9\x79\xa2\xc6\x49\xfa\x10\xc4\xaa\xad\xe4\x30\x92\x2d\x1b\xcb\xbd\xe5\xc0\x62\x23\x1e\x4f\x29\x7d\x1d\x3b\xd5\x50\xf7\x42\x58\x57\x69\x9b\x03\x0d\x0e\x3e\xb1\x81\xaa\x38\x97\x12\x2a\x5b\x9c\x36\x79\x8c\xc8\x90\xaa\x24\xc1\x60\x6a\x55\x17\xe5\x65\xe5\x66\xaf\x0c\xb9\xb1\x2f\x20\x57\xb3\xee\x8f\x82\xc4\xd0\x4b\x82\xfe\x28\x8b\x8f\x2f\x3f\x71\x28\x40\x98\x6a\x33\x09\xa7\x7a\x66\x58\x4c\xdc\x9d\x48\x1c\x63\xbc\x66\xdb\x6c\x6a\xed\x1f\x13\x12\x18\x3c\x3d\x56\x7d\x7d\x59\x72\x28\x09\x50\x34\x6f\xb3\xe2\x03\xaa\x7a\x56\xbd\xf5\x83\x88\x92\x80\xf6\x49\xcf\x8a\x79\xe0\xd7\xfe\xd8\xe8\x86\x34\x4e\x90\x16\x01\x61\x88\x98\xdd\x2b\x97\xc7\x53\x56\xe0\xa9\xd4\xce\x9c\x09\x96\x48\x29\x99\x25\xbc\x7a\x2c\xca\xe6\x0b\xa6\xe7\x63\x27\x8d\x35\x3a\xa5\xfa\xec\x41\xf6\xea\x04\x88\x2d\x8d\x34\x07\x74\x0f\x20\x3a\xfa\x52\x9c\x27\x9a\x5b\x60\xcf\x23\x94\x6f\x59\x7b\xd6\x7f\xc1\x86\x23\xa5\xa4\x1c\xe9\x20\x16\xdb\xf5\x9a\x97\xfc\xd8\x58\x65\x95\xe3\x67\x1f\xde\x5d\x46\x80\x9a\x20\x69\xfe\xbe\x97\xc3\x9c\xac\x94\x10\x53\x13\x7e\xba\xc9\xb8\x7c\xcb\x9a\x07\x55\x57\xba\x10\x52\x2a\x2f\xc1\x5c\x29\x06\x61\xc2\x60\x6f\x22\xb5\x2e\xf3\xe3\x7b\x1e\x0a\x3a\xb4\x5f\x5b\x85\x3a\xb2\x73\x75\x36\x1b\xad\x0d\x90\x3e\xc6\x80\x1a\xa7\x0b\x8d\xbd\x6d\xce\x4f\xd5\x6b\x51\x8f\xfb\x69\x89\x20\xd2\xa3\x49\xec\x3d\xf2\x37\x28\xd7\x65\x51\x17\xb2\xc8\x6e\xdb\xd3\x49\x6a\x4f\xe1\x5e\xba\x6f\x7e\xcb\x2c\xc6\x67\xf1\xef\xef\x13\xb8\x52\x2b\x42\x79\x77\x7a\x9e\xc5\xf5\x2b\x2b\x2f\x30\xb4\x22\x07\xc8\x3d\x7b\xa8\xa1\x4d\xf0\x87\x6b\x8f\x80\x44\x6d\x3a\xbb\x4d\xc6\xa9\xc0\x8b\x05\xeb\xc9\xb7\x60\xee\xa2\x83\x37\xaa\xd0\xd3\x98\x06\x37\xdc\x92\x69\x7e\x58\x74\xd2\x43\x03\x8e\x30\xa9\xc2\xc0\xb8\x18\x18\x64\x6e\xff\x98\xb0\xc4\x46\x7b\x0c\x1f\xb8\xe1\x25\x9d\x50\x61\x19\xbe\x0f\x21\x41\x14\xb4\xdb\xcb\xbb\x01\xc0\x6e\xf8\x35\x7e\x6a\x7a\xcc\x14\xa1\x14\x6d\xd7\xbd\xf1\xe1\x2c\x41\xe7\x88\xbb\x48\x2a\x92\x68\xc4\x37\xef\x71\x73\x6e\x77\x05\x45\x3d\x1a\x45\x1d\xde\x13\x23\x53\xdd\x36\xad\x18\x91\x38\x63\x5c\x50\xca\xd4\xa1\x7f\x13\x17\x54\x8c\x47\x4e\x4c\x6c\x0b\x75\x8d\x10\x95\xe1\x13\x47\xa1\x09\x48\xb8\x2d\xed\xa6\x03\xbc\xbb\x1e\x32\x70\x48\xde\x19\x96\x61\x3c\x42\x3d\xa6\xf9\xb1\x5d\xe3\x08\x20\x31\xde\x29\x94\x35\x77\xe8\x34\x95\x08\x0f\x69\xa9\x1a\xb7\xee\x9e\x57\xf7\xf8\xd2\x0f\xa9\x84\x2b\xdc\xbd\xe2\x91\xcf\x59\x27\x40\x6e\x98\x75\xfb\xc1\x35\x25\x38\xb0\xd0\x11\xc4\x1b\xda\xb8\x55\x5e\x17\x3b\x7e\xa8\x4c\x99\xdc\xf0\x86\xd2\xd6\x5c\x96\x70\xca\x2e\x8d\xcd\xc6\xd5\xb7\x43\x26\x95\x46\x7e\x91\x0d\xb4\xf1\xae\x2b\x8c\xf3\xdf\xad\xff\x1a\xcd\x2e\xe5\xd1\xd0\xd2\xd3\x20\xef\xf6\xb9\x03\x8a\xf5\xc3\x34\x4a\xc5\xc4\xb7\x30\x08\x4c\xf8\xe3\xee\xae\x8b\x72\xc1\x4f\x8e\x06\x47\x29\xe9\x2b\x70\xa8\x67\x8c\xff\xe1\xa3\xde\x17\x59\xb3\x8e\x8c\xdc\x87\xd1\xe5\x18\xef\x75\x0a\x02\x1e\x81\x23\x29\xfb\x32\xf6\xa3\x00\x18\x82\x8f\xc5\xf9\xb2\x3d\x71\x09\xc8\x23\x7d\xee\x28\xe1\xa5\x02\x1d\x63\x76\x57\x81\xa8\x97\xf9\xa1\x55\x74\x95\x4a\x33\x85\x0e\x21\x1e\x05\x19\xaf\xa1\xc5\x72\x2a\x1d\x73\x4c\x59\x23\x8a\x74\x5e\x1c\x8f\xee\x74\x8a\xa7\xb3\xa6\xe0\xf9\x0a\x91\x47\x8d\x9d\xb3\xbd\x54\xf5\x17\x0c\x91\x12\x7c\xe1\xe3\x1e\xfe\x58\x28\x28\x4d\x7d\xe0\x3a\x6b\x01\x15\xe0\x2b\x81\xf6\xd4\xf6\xb5\xf8\x78\x82\xcf\x7a\x9e\xa5\xfa\x0b\xef\x0c\x7c\x08\x40\x74\x72\xa0\xca\xd0\xea\x0c\x70\xf3\x10\x90\x10\xbd\x8f\x4c\x94\x83\xe8\x2d\x04\xcc\x4f\x7a\x62\x1e\xd7\xa9\x35\x08\x54\x8c\x53\x78\xdf\x1c\x66\x48\x46\x52\x9c\xeb\x2b\xad\x39\x09\x61\x48\x0d\xf3\x29\xc6\xe8\x3e\x5a\x2c\x3e\x84\xc4\xd4\x42\x56\x50\xdf\x02\x4c\x32\xd9\x00\xf5\x08\xae\x6c\xe3\x92\x34\x77\xff\x12\xf2\xe6\xae\x08\x8c\xa5\xdf\xc1\x33\x10\x3f\xd4\xbe\x31\x65\x06\x6f\x68\xa0\xe0\x96\x9f\xe1\xca\xae\xfc\x1d\x24\xa4\xdb\xd0\x80\x8a\x98\xf6\xf9\x1d\x6f\xce\xd3\xca\x3f\x12\xa8\x4e\xd0\xca\x58\xac\xfe\x1a\x8c\x35\x23\x06\x03\x8c\x55\x34\xb3\x12\x5a\x1d\x87\xb6\x03\x8d\x02\x83\x08\x9d\xb7\x7f\x8a\x94\x55\x0b\x48\xeb\x87\x82\x77\xf7\x02\x22\x6d\xb0\x6a\xc1\x6b\xbe\xf7\x5d\x43\x24\x13\x44\x69\xb8\xc7\x0c\xbe\x78\xc8\x48\x31\xbc\xf1\x7c\x76\xeb\x8f\xbe\x78\x4c\x22\x74\x62\x4d\xde\xb8\xbe\xe6\xab\xf9\xbe\x84\x14\x62\x9a\x50\x7b\x32\x2c\xeb\x57\x1b\x0b\x1f\xa3\x91\x20\x06\x3f\x71\x74\xeb\x7b\xa4\xf1\x77\xaf\x90\x78\x3e\xc2\x28\x1b\x83\x62\x9a\x15\x04\xb8\xf4\x30\x07\x79\xad\x81\x34\x3d\x5b\xb8\x0a\x90\x4d\x41\xa5\x15\x26\x51\x15\xee\xbe\xbb\xc2\x1e\x7a\xa3\x08\x39\xc8\x90\x87\x76\x74\x6f\x5e\xb6\xd3\xe6\x3d\xa8\x50\x91\x56\x2c\x70\x56\x8a\x60\xf4\x8c\x8a\x1a\x74\xdb\xe9\xfd\xb4\xe6\xe7\x96\xcf\x5d\x02\xc4\x80\x5e\x4f\x75\x16\xe6\xc8\x38\x15\x79\x55\x94\xbf\x61\x4d\x97\x00\x89\x9f\x0c\x05\xc1\x31\x09\xd5\xb6\x1a\xa2\x0d\xa4\xed\xb8\x81\x2f\xf1\x52\x43\xcc\xd2\x38\xb8\x64\x6f\xa6\x99\x47\x22\x87\xb5\x78\xbf\x37\x0e\xc7\x68\x90\x34\x4b\x98\x65\xb6\x7b\xe0\x67\xac\xb8\x9c\x76\x5d\x47\xb7\x96\xc6\x0c\x14\xe7\x32\x87\x81\x17\x0e\x5a\x25\x78\xf4\x36\x93\xfd\xcb\xca\xc4\xbf\x9b\x32\xfa\xea\xbc\x33\xbf\xa5\x3d\xad\x31\x08\x82\x94\xab\x8b\xf4\xbd\xf1\x4d\xda\x6c\x97\xf6\x03\x81\xab\xe8\x9c\x5b\xa6\x80\xf6\xef\x5a\xc7\xad\x0b\x50\x5e\x6c\x00\x73\x0b\x65\xca\xb3\x01\x11\x8f\xf6\x89\xaf\x55\x6b\x92\x1a\xb9\x01\x94\x4b\x9b\x0e\x9a\xea\x40\x24\xd0\x15\x58\xfc\x2c\xfa\xfb\xd5\x24\xd2\x45\x07\xda\x78\xcf\xeb\x34\xe7\x6f\x7d\x86\xaa\x2f\x00\x88\xfd\x88\x5a\x6f\x67\xd3\x61\x44\x92\xd0\x08\x26\x22\x26\xef\xe9\xf9\x87\x7b\x09\x22\x0d\x25\x82\xd9\x0a\x26\x38\x40\x46\x2f\x41\x03\x1d\x4a\x57\xbb\x06\xef\x88\x55\xb0\x2a\x33\x83\xc9\xa3\xa9\x32\xbc\xed\x79\x51\xa7\xda\x1e\x56\xad\xdd\x3b\x39\xfd\x35\x55\x5c\x98\xad\xd0\xe2\xdc\x46\xb7\x64\x41\x8c\x99\xb4\xe5\x6a\x1d\x78\x37\x97\x1a\x30\xc6\xea\x1a\x05\x47\x7c\xd9\x0d\xaf\x52\xb9\x3d\x95\x2d\xdb\x7e\xd3\x04\x96\x55\xa9\x79\xc7\x9b\xf4\x4b\x7d\xc9\xdf\xcd\x40\x7b\xbf\x48\x18\x6d\xb0\x36\xb0\xbe\xe8\x90\x31\x3a\x02\x0f\xd3\xa8\x3f\x1f\xfa\x38\x45\x1d\x13\x66\x49\xb0\x8c\x6b\xf9\xc8\xf3\x6b\xfa\xe0\xde\x27\x4b\x3c\x8d\x85\x15\x5c\xa9\x55\x63\x64\x0c\xbf\x42\x92\xc8\x30\x74\x78\x4d\xcb\x69\x9e\x1f\x6e\xcb\xe2\xf8\x00\x07\xee\x54\x6c\xa5\xe6\xbe\x8f\xfd\x6e\xf8\xe7\xa1\xa3\x43\xd2\xc2\x07\x5c\xd8\x3b\xe0\xc7\xae\x78\x51\x0b\x66\xa8\x30\x4d\x4c\xf0\x98\x9e\x8f\x7f\x0c\xde\x5b\xc8\x88\xd3\x36\x4a\x7c\x03\xf5\x84\xf4\xa2\xd4\xe0\xc7\xd2\x73\x95\xdc\x98\x32\xb3\x85\xfe\x06\x2e\xfa\x2b\xad\x5f\x07\x19\xe2\xf6\xb2\x04\x0d\xab\xd9\xbe\x59\x90\x7b\xec\xbc\x9f\xed\x17\xbc\x7d\x19\x88\x38\x1e\x9e\x37\x3c\x7f\x7b\xe5\xaa\x3f\xba\x3a\x0c\x65\xd4\x71\x8e\xa2\x7e\x48\xeb\x63\x7f\x6b\x67\x28\xcf\x8b\xb8\x6c\x23\xa1\xc5\xa9\xa8\x78\xb6\x98\x52\x75\x50\x9e\x17\xfb\x18\x85\xe1\xad\x12\x6e\xf3\x49\xa0\xea\xc2\xea\x6d\x47\x43\xbc\x7b\x80\x7a\x9b\xe6\xcd\x3e\x62\xa7\x87\xf2\xfc\xc4\x90\x9c\xa5\x95\x2d\xa9\x45\x65\x5f\xe5\x9a\x03\x61\xc8\xcb\x0e\x50\x3f\x67\xaa\xa5\x5f\x57\x5e\xa0\x04\xfa\x82\x06\xdb\xb9\x79\xb9\x71\x0d\x21\x13\x08\x80\xd5\x48\x03\x89\xc9\xd7\x35\xea\x23\x0c\x9f\x3d\x8c\x7d\x8c\xd1\x99\xe5\x38\x0d\x6f\xbd\xfa\xef\xa4\xa1\xd4\xdc\xcb\x9c\x7b\x56\xc9\xbc\x2c\x8e\x45\x33\x5a\x3c\xdb\x40\x0e\x1f\xbd\x70\xfb\xe8\x11\x64\x88\x16\xf1\x43\x71\xa8\x82\xff\x13\x3e\x40\x79\x21\x30\x34\xfa\xee\x00\x75\x06\x31\xa9\xd3\x98\x47\xc1\xe8\x0b\x84\x9a\x22\x21\x51\x0e\x1f\x77\x2d\x80\x5c\x79\x24\x61\x18\xe8\xd2\x20\x5f\x67\x59\x36\xe7\xb9\x42\x19\xe0\xea\xc6\x48\xcb\x8f\x06\x8d\xa8\x20\x4c\xfa\xc9\x9f\x34\xaf\xad\x41\xb1\x81\x6a\x82\xa5\x7e\x6a\xe3\x57\x1e\xf5\xa5\x0e\x7b\x80\xc5\x6a\x26\x0d\x05\xde\xe8\xa1\x69\xc0\xb1\x8c\xb2\x55\x8c\x6c\x55\x8c\xa7\xc4\xe7\x47\x23\xc3\x3c\x8a\xc4\x4e\x27\x28\xeb\x73\x29\x06\x39\x22\xe5\x31\x2a\x93\xd0\xc1\x55\x2f\xed\xde\xa8\xbc\x88\x02\xfa\x55\x5f\xd2\xc5\xb6\x7b\x53\x5b\x5a\xa6\xbc\x38\x8a\x7c\x1b\xf4\x6f\x2b\x30\x3a\xb5\xb2\xe1\x4b\xc5\x91\x36\x86\x06\x3f\x8a\x0c\x4a\x78\x87\x2f\x0a\x2a\x94\x97\xf8\xc6\x15\x3c\x5d\x27\x7c\xc6\x3d\x09\xc5\x7d\x8d\xe7\x79\x71\xce\x25\xfc\x4c\x25\xda\x2f\x3d\xdf\x59\x79\x49\xec\x23\x29\xd8\x23\x2a\x68\x3f\xa6\x39\x0c\x36\xda\x29\xac\xb5\xf2\x12\x4d\xd1\x6a\x5e\xfe\xcf\x39\x2d\xbe\x42\x31\x7c\x97\x50\x57\x1e\xa7\x80\x5f\x42\xa7\x87\xd7\xfa\xd7\xaa\x7e\x7d\x2c\xc4\x17\x4b\x42\x10\x19\xf7\x47\xbf\xf9\xd5\x0e\xd6\xdd\x5f\x73\x82\x28\x5b\x11\x67\x4b\x31\x7a\x3a\xfa\xca\x13\x32\x31\x2a\x23\x29\x94\xfb\xde\xf9\x7d\xbd\x8c\x27\xff\xea\xee\xa2\x22\x0c\x5e\x9d\x5a\x05\x34\x33\x5d\x9d\xe4\x4a\xfb\x73\x52\x1b\xee\xc5\x2d\x40\xd6\xae\x2d\x60\x1c\xcb\x25\x6e\xd2\xba\x2c\x8a\xba\xdb\x9e\x9b\x26\x61\xf5\x66\xea\xc6\xd7\x75\x8a\xbc\xbb\xdd\xa3\x01\xf0\x2a\xbf\x0f\x98\x50\x1e\x44\xd4\xb1\xa0\x3f\x5e\x3a\xd8\xb4\xf2\x40\x24\x22\x69\x63\xd2\x4e\xf1\x1e\x63\xee\xc3\xf9\xae\xbd\x00\xeb\x4c\xf7\x26\xab\x6d\xe4\x89\x47\x5d\x22\xea\xaa\x4c\xf1\xe0\x4c\xab\x7a\x3f\x51\x11\xa5\x7c\xdf\x8b\x5b\x61\xbe\xaa\x32\xee\xd8\x1f\xa3\x2e\x81\x42\x11\x55\x7e\xae\x5f\x21\xaf\x53\x69\x0c\x3c\x28\x07\x33\xd2\xf7\xa9\x29\x6e\x2f\xf9\xc7\x16\x72\x65\xb8\x9b\x06\x4f\xe5\xfb\x91\x41\xb7\x2f\xee\x66\x8f\xcb\x9e\x73\xa9\x7c\x5f\x7b\x28\x09\x56\x94\x5c\x66\xd0\x95\xc5\x28\x3f\x20\xdc\x0b\x5c\x9e\x01\x23\x7d\xee\x64\xfa\x96\xf8\x46\xf9\x41\xcc\x10\x69\xd7\x16\xe2\xae\xd4\x7e\xb9\x99\x47\x81\x8f\x7a\x90\x55\xfb\x03\xb1\x0a\xda\xf0\x0e\x92\x6d\x6e\xd3\xc3\xb5\x35\x3a\x7c\x93\x40\x30\x44\x4e\x19\xfd\xf0\xa2\xc8\xaa\x45\x91\xb7\xcf\x1c\x32\x63\x99\x6c\xd3\xe3\x29\x83\xd9\xee\xb1\x6d\xe0\x01\xe2\xb0\x5f\xd3\xc3\xab\xad\x25\xbe\x22\xc2\x52\x3e\xa1\x1e\x72\x7d\x6d\xcf\x6f\xe9\x85\xbf\xa5\xed\xdf\x65\xac\xec\x4c\xdb\xd6\xcd\x04\x1e\x87\x31\x94\x4f\x3d\x8a\x34\x70\x38\x05\x55\xf1\x91\xa3\xf6\x48\x9b\xc8\x55\x3e\x25\x3e\x56\xe3\x67\x69\x55\x63\x90\xeb\xcb\x04\x9d\xf2\x23\xdf\x4a\xcb\xf0\xcc\x51\x77\x8c\xad\x01\x3f\x26\x81\x13\xca\x5e\xf3\x0b\xb4\x14\x1f\xd7\x4a\x4e\xca\x8f\xb9\x9f\x18\xd1\x36\x55\xcc\x2a\x68\x9f\x29\xa1\x86\x33\x81\x2b\x65\xe0\x99\x57\xc7\xf3\x84\x07\xab\xfc\x44\x46\x18\xc2\x5d\x8e\x29\x6e\xff\x57\xa7\xae\x9f\x40\x90\x0c\x35\x48\x0d\xbf\xac\x33\x60\xaf\xc9\x08\x9b\x6b\x68\x62\xd1\x5d\xcb\x4a\x96\xc5\xc7\x55\xbb\x6c\x83\xe2\x15\x94\x0e\x85\x3b\x9c\x43\x9c\x81\x91\xf0\x33\x75\x8d\xbb\x62\xa2\xa4\x51\xf9\x22\x60\x68\xce\xea\x54\xf4\x4a\x0b\x7b\x8e\xa7\xf2\x85\x0a\x9d\x04\xb2\x29\x1d\xb6\x51\xdc\xef\x82\x0a\xca\x97\x3c\x71\x01\xeb\x9e\x1c\xf4\xc8\xd6\xf0\x95\x47\x31\x94\x27\x31\x46\x5f\xef\x8a\xc7\x34\x4f\x5f\x56\xa3\xf7\x55\x91\xb6\x22\x06\x75\x9d\xa1\x77\xd3\xa6\x44\x94\x0f\x49\xc4\x7d\x0b\xde\x1c\x00\xd3\x5c\x3b\x67\x98\xd9\x38\xee\xeb\xfe\x96\xa0\x3d\x86\x3c\xd8\xcb\xfa\xb5\x31\x8a\x37\x8e\xea\xd7\x77\x3f\xaa\x29\xf3\x1d\x26\xe1\x54\xc2\xfe\xed\x22\xf7\xa9\x2c\xf2\xf4\x7f\xf6\xc8\x82\xb0\x57\x90\x17\xc7\x34\xc7\x6c\xc8\xe0\x79\x03\x2f\x60\xc8\xca\xd7\xaf\x8e\x42\x74\x8e\x7b\xa8\xc0\x23\x04\x5d\x94\xd9\x59\xd6\xe7\x6a\x5b\xc3\xe9\x6f\x4a\x39\xdb\xeb\x7d\x5f\x46\x96\xec\xfd\xd5\xdd\xd3\x97\x80\xf3\x7c\xdf\x98\x5a\xd3\x66\x42\x10\xf8\xbe\x62\xed\x1a\xaf\xcf\x83\x32\x25\x15\x04\x90\x18\x20\x65\x06\xbc\x9c\x59\x04\xae\x9a\xe5\x6a\xcb\x33\x5e\x5e\x46\x89\xf0\xc1\xa7\x0c\x02\x4d\x5a\x61\xaf\x83\x29\x93\x93\xbf\xab\x4c\x53\x41\xe8\x29\x9c\x26\x1f\xa0\xba\xb4\x91\x0a\x42\x96\xb8\x03\x06\x59\xc2\x4c\xfa\x68\xf8\x65\x03\xe2\x05\xf8\x32\x69\xee\x78\x3f\xda\x06\xe1\x80\x47\x0f\x8e\xe4\xa8\x4b\xbf\xa8\x80\x04\xa6\x68\x34\x2b\xf2\xc3\xfe\xc4\x4b\x27\x1a\xd6\xb4\x70\xa7\x9b\x7a\xc3\xab\xa1\x90\x62\xdf\x8c\x0b\x08\x8f\xb9\xdf\xd2\x01\x7e\xcd\x42\xab\x02\x22\x15\x32\x01\x15\xf9\xf2\x13\xe4\xb9\x86\x47\xa8\xb0\x80\x6c\xba\x3b\x55\x91\x6c\x11\xc7\xd5\xae\x68\x2b\x08\xfe\xae\xdf\x6d\xf5\x73\x7a\xcf\xca\xc2\x00\xf1\xc5\xf3\xe7\xe7\x87\xc5\xf3\xaf\xa7\x1e\x05\xad\x0a\x18\x11\xdc\xec\x8e\xf0\x79\xa5\x8d\xa8\x02\x16\x1b\x0f\xcf\xa2\xbf\xe6\x45\xeb\x8e\x05\x11\x48\x4c\x35\x9f\x1a\xfb\xc6\x37\xc1\xc6\xd6\x51\x56\x41\x1c\x31\xdc\x8e\x6b\xa8\xea\x5d\x79\xb9\xc3\x04\x5e\xbb\x2b\x07\x49\x0c\x98\x18\x14\x48\x88\x67\x87\xe6\x8b\x31\x49\x84\xa9\x5a\xc2\xe8\xdd\xcf\xe2\xd3\x72\xa8\x5e\x3b\x5d\xb1\xbb\x40\x9b\x92\x4b\x93\x22\x7e\xd9\x2e\xea\xc2\x5f\xee\xee\x47\xcb\x94\x7b\xda\x72\xed\x21\x70\xfd\x01\xd3\xc1\x88\x60\x41\x18\xc3\x17\x0f\xc3\x49\x84\x76\x94\x4e\x73\xd5\x63\x9e\x1d\x6e\x6c\x01\x07\x11\xf3\x2e\xef\x30\x90\x52\x19\xde\x4f\x24\x52\x7a\xce\x02\x31\xbe\x4d\xab\x6a\x38\xee\x2b\x93\x10\xb9\x84\xdf\x0d\xcc\x02\x76\x97\x13\xa0\xb6\x32\xe6\xdf\xae\x4d\xdf\x40\x31\xe6\x9b\x7a\xaf\xdc\xa4\x73\x87\xf7\x53\x56\xf4\xc3\xd9\xd0\xbb\x57\x30\x59\xd6\x7e\x82\x44\x05\x4a\xcb\x10\xe9\x66\x8b\x73\xf9\x7f\x4e\xa1\xd9\x7b\x69\x12\x20\x85\xa2\xd5\xa6\xe2\x83\x4d\xaf\x7b\xf2\xd0\x4b\x0c\x1b\xf7\x4d\x5a\x4b\x38\xbb\x6d\x3b\xf4\x69\x24\x7a\x35\x2d\xbd\xa3\x65\xf8\x6a\x61\xe0\x81\x8e\x1d\x62\x6a\x5b\x17\x25\x3f\xc0\x7e\xb5\xbe\xdd\xba\x3b\x05\x8c\x39\xf4\xd5\x83\x29\x5f\x78\x16\xff\x5e\x7d\xf1\xd5\xc3\x00\x22\xd1\x27\xb9\xfc\x63\xd2\x70\x0b\x89\x0c\x20\x74\xc1\x14\x9b\xf1\x9e\xe5\x6a\xf3\xb4\x19\xce\x8f\x90\x68\x93\x10\x52\x3c\xcd\x2e\x18\xe8\x1e\x7d\xeb\x90\x86\x21\x26\x4a\x1c\x5f\x02\x0a\x98\x19\x81\xe5\x16\xeb\xdb\x1b\x2f\xaa\x19\x65\xce\x34\xdb\xcb\x73\x55\x17\x47\x28\x5d\x09\x89\xfb\x94\x21\x0b\x23\xdc\x8d\x9a\x61\x2d\xd2\xfc\xcf\xf9\x88\x81\x13\x7b\x04\xde\x20\x90\x8e\x21\xa7\x5b\xde\xd5\xe0\xaa\x90\xc5\x1a\xd1\x76\x5c\xd7\x50\xf6\xdd\xa9\x90\x81\x91\xd0\xc0\x8a\x80\x2f\x0a\xcc\x6d\xd7\xc8\x72\xac\xe2\x60\xe5\xfc\x00\x7d\x8c\x8a\xdb\x87\xae\x24\xc7\x54\x18\x7b\x01\x72\x83\x20\x30\x0c\x5d\xfc\xaf\x20\x92\x53\x56\x9e\x7b\x16\xf3\x67\x8b\x5f\x51\x61\xcc\x23\x0c\x12\x99\x79\xd9\xd6\x10\x18\x81\xba\x35\x6a\x8b\x0c\x9f\x3e\x21\x3a\xb1\xdc\x33\x86\x22\x2f\x2f\x14\x8c\xbe\x72\x12\x1b\x09\xf4\x2d\x02\x98\x1c\x60\xe5\xeb\x7a\x65\x15\x8a\x40\x21\xa5\xce\x9a\x5f\xfe\xdc\x15\xcd\x96\x74\x5d\x20\xe5\xba\x6a\xa3\xb1\xec\x16\xef\xf6\x5c\x9e\xca\xb4\x82\x75\x81\x56\xe1\xe4\xfa\x9c\x4e\x69\xa8\x50\x92\x40\x05\x8e\x5d\xf8\xa6\x2c\x2a\x04\xa0\xb8\x6f\x2a\x69\x82\x10\xd7\x63\xaa\x94\xf1\x0b\x7a\x42\x2e\x2a\x94\x4c\x61\x6c\xd3\x18\x8f\x0f\x67\x75\x3e\x7e\x03\x99\x53\xa1\x0a\x02\x74\x51\xe7\x69\x9d\xfe\x07\xf2\xe7\xfc\xaa\x98\x79\x7c\x01\xa3\xc8\x6a\x72\xb8\x72\x66\x42\x25\x8d\x16\x48\x05\xf5\x6e\xf3\xe8\xe3\x54\x35\xf2\x34\xfd\xc5\x01\xd0\xb2\xdf\xac\x79\x8d\x85\xa2\x5f\x24\xeb\x7e\x2f\x8e\xad\x42\xcd\x83\x04\x3a\x71\x9a\x5d\x71\x57\x64\xad\x6e\xff\x70\x02\x68\xc9\x5d\xbd\x2d\xd6\xaa\x6f\xe0\x54\x8c\xa8\x2e\x14\xf1\x7c\x43\x16\x5d\xa7\x47\x98\x21\x1c\xb7\xcb\x76\x2b\xe2\xd1\xd8\xd1\x3e\x6d\x8a\x0c\xe6\xfc\xc4\x85\x11\x3a\x3d\x0f\x72\xed\x63\x4e\x36\x45\xbc\x58\x90\x41\xf1\x11\x7e\x15\x83\x25\x18\x3e\x27\xf1\xc0\x94\xbf\x3b\xa4\x99\x32\xf1\xa8\xb1\x3f\x46\x3c\x10\x26\x09\xbb\xda\xcd\x9e\xe6\xcf\x4e\x09\x53\x11\x3f\xf0\x30\x82\x91\xe6\xd5\xd5\x96\x42\x7c\x29\x4d\x00\x06\xa3\x49\xb3\x73\xfd\x5a\x94\xe9\x7f\x40\x0d\x61\x9f\xc3\x55\x4e\x02\x16\x23\x61\xce\xea\x69\xb7\x59\xae\x57\x8b\xfd\xcf\xe7\x97\xf9\xfd\x72\xd3\x27\x9c\x51\x24\xe0\x1a\xad\x8c\x9e\xfa\xb5\xab\x23\xb1\x3d\x42\xa6\x22\xb3\x31\xe6\xd5\xf9\x08\x63\xe0\xb8\xdb\x00\x08\x09\x81\xda\xac\xde\x2a\x4f\x7b\x60\x44\x45\x08\x65\x08\x80\xcd\x78\x55\x3f\xf0\xf2\x00\x55\x7d\xff\xbc\x78\x58\x6e\xdc\xfe\x66\xfb\x51\x8f\xe0\x28\x22\x8a\x76\xb9\xbb\x2f\x7b\x4a\xd5\x8a\x50\x9f\x63\x18\xf9\x3f\x07\xa8\x7b\xc5\x76\x8a\xd0\x88\xe3\x1c\x9e\x17\xc7\x13\xe4\x95\x61\x0b\x81\xbc\x5e\x7e\x1d\xef\x23\x34\x91\x88\x41\x7e\x3c\x67\x75\x0a\x9f\x55\x63\x88\xb4\x53\x86\x45\x1e\x02\x1a\x52\x59\xd8\x04\x73\xf7\x14\x51\xa0\x31\x4a\xfe\x89\xd1\xec\x96\x47\x75\x78\xf7\x88\x4a\x84\xde\x3e\x14\x87\x99\x94\x50\x55\x86\xd9\x61\x84\xb8\x9b\x3e\xe1\x49\x14\x13\xcf\x46\x2d\x61\x99\xcb\xf2\x72\x6a\x4c\x1f\xf8\xac\xdb\x47\x10\x04\x6c\xc6\x61\xb6\xda\x2c\x36\xcf\xeb\x6b\xc1\x72\x45\x62\x42\xd0\x74\xd9\xa7\xd5\x64\x9e\x5b\x91\x38\xa2\x8e\xdb\xd6\xcc\xef\x2b\x1b\xb9\xb7\x18\x62\x25\xd1\x74\x2a\xf2\x56\x05\xf9\x7f\x93\xb9\x52\x24\x09\x3d\x4f\xd9\xfc\x6b\x1f\x09\xf2\xbb\xcb\x80\xfa\xd6\x57\x6f\xc1\x37\x2f\xa7\x43\xc9\x95\xf1\x2e\x6e\x2e\x8f\x85\x82\x41\x55\x8a\xb5\x62\x09\x8f\x13\xdc\x67\xb6\x5c\xc3\x16\x41\x4c\x6e\x04\xb9\xf6\x69\xd2\x12\x03\xe1\x5e\xdd\x79\xc4\x44\xfa\xc4\xb3\x01\xeb\x2f\x58\xbe\x5c\xc7\x80\xc6\x56\xf6\x67\x18\x3c\x20\x92\x70\x8f\xf4\x59\x28\x0d\x4d\xe4\x82\x5f\x96\x79\x3b\x95\xa4\x48\x30\x72\xf7\x38\xfb\x73\xbf\x7c\xda\x6d\x56\xcb\x6d\xdb\x04\x31\xa2\xa2\x8f\xfc\x73\x95\xbf\x2f\x5b\x27\x95\x48\xcd\x3c\x93\xe0\x4e\x33\xb5\xd8\xda\x05\xb4\x70\x29\x19\xa2\x42\x1f\x1d\x3f\xa4\x73\x1c\x4a\x26\xba\x1e\x24\x40\x3a\x9a\x3d\x57\xea\xae\xe4\x5a\xa7\x75\xfa\x0d\x0e\x4c\x11\xc5\x23\x5c\xbd\xf3\x22\x4d\xf3\x6b\x62\x61\x45\x14\x28\x6e\xb3\x58\xb3\xb4\x44\x3b\xb9\x83\x53\xb5\x43\x02\x7e\x88\xa1\x0a\x28\x65\xe0\xed\x36\xb7\xbb\x3f\xfa\xdf\x0a\x7c\x10\x86\xff\xa3\x38\xed\x0f\x5d\x80\x91\x68\x8f\x20\x8f\xde\x7a\xfd\xd7\xb7\x4f\xa9\xfd\x00\xc3\xd9\x26\x31\xd4\xba\xad\x0e\x5d\xf0\x6d\xb0\x85\x68\x3f\xc6\x7a\x30\x99\x15\x15\xa0\x34\x6c\x76\xb1\xaa\xb8\xa6\x07\xf5\x04\x60\x1e\x85\x0f\x85\xb0\xa6\x0f\x5c\x1a\x04\x44\x85\x7d\x7d\x79\xf8\xb8\xc2\x8c\x2a\x1a\x06\x41\xe8\x48\xa2\x4c\xf4\xc2\xf2\xe5\xa8\xbf\xc1\xba\xa4\x68\x48\xbc\xa4\x35\xff\x3e\x45\xd1\x0b\xcd\xb5\x3d\x38\xf7\x4c\x1c\x85\x8b\xac\xb1\x9f\xca\x56\xe0\x5b\x51\x92\x00\x22\xbe\xeb\xb6\x36\xbc\x42\x0a\x47\xd5\x76\xe0\x21\xda\x97\xf3\xcd\xf3\xaf\xc5\xfe\xd7\xec\xe7\xd2\xdf\xaf\x97\x9b\xd5\xf3\xc2\xf5\xa0\x5e\x42\x8c\xb3\x7d\x38\x64\xd0\x5c\xdd\xc5\x20\x28\x8d\x68\x8c\x5c\xc0\xcd\xca\xfb\x3a\xa6\x42\x69\x62\xe2\xe5\x32\x4b\x9d\x3c\x9d\xa2\x54\x33\x62\x52\x8b\x9f\xa0\x6e\x01\x56\x79\x5b\x18\xab\x28\x23\x1e\x65\x5d\xfc\x6e\x5d\x36\x96\x66\xf7\x62\x8c\x68\xdf\xce\xc7\x0a\x61\x72\xa7\xeb\xed\x91\x46\x84\xb9\xe2\xf8\xd5\xfc\x79\x55\x0d\xa5\xec\x14\x8d\x78\x8c\x0c\x18\xa7\x12\x56\xb2\x30\xad\x6d\x1b\x28\x9c\x0c\xf7\xcf\xeb\xe5\x77\x93\x92\xc6\x5e\x82\x49\xbc\xfd\xfd\xf3\xc3\x02\xca\x6a\xcd\x2f\x18\x28\x73\xcd\x20\xf0\x68\x7d\xe5\x9d\xee\xc0\x04\xb4\x5c\xd1\x84\x27\x88\x3e\x38\x36\x53\x93\x59\xee\x70\xa3\x8b\xe1\xee\xc5\x13\x41\x7c\xbb\xbd\x5e\x99\xae\xbf\x0b\xbd\x4e\x7f\x18\x21\x13\xa4\x74\xb2\xf1\xd1\xbd\x25\xe1\xae\x46\xd3\x58\xfa\x89\x6f\xcd\x24\x53\xeb\xde\xd7\x77\xb2\x7d\x94\xa0\x78\xb2\x2f\xf8\x01\x32\xee\x0e\x5a\xaa\x24\x0d\x63\x97\x9d\xfc\x07\x97\x6f\xa7\x62\x1a\x84\xa9\xa8\x02\x89\x95\x66\xc7\xe6\xc0\x3e\x65\xf0\xb9\x37\xd8\x97\xd1\x0f\x69\x66\xe4\xb5\x90\xfb\xa2\x79\xea\xb4\x3d\xd6\xa9\x16\x92\xdb\x88\xe4\xe3\xa5\xaa\x87\x09\x12\xaa\x41\x52\xbb\x9c\xba\x98\xb2\x0b\x8e\x0c\x7e\x84\x79\xcc\xc7\xea\xd7\x1b\xa8\x9f\xdf\xa1\xcc\x9c\xf2\xb6\x62\x9e\x60\xb2\x45\x94\x1e\x6d\xe4\xfb\xd7\x75\x11\x94\x62\x1e\x04\xc8\x9b\x73\xbb\xba\xdd\xfd\xb5\xdf\xdd\x3f\xbf\x6c\x67\x4f\x8b\xed\xfe\x61\xf5\xb8\xda\xb5\xb7\x03\xc3\xf5\x7c\x80\xfa\x36\xcd\x30\xc2\xb2\x4d\x1d\x60\x48\x31\x3f\x51\x08\x7e\x7c\x2d\x32\x03\x49\x98\x34\x28\x98\x2f\xcc\x77\x44\x54\xc4\x3b\xcf\xac\x6a\xfc\xe0\xc4\x62\xbe\x02\xac\x39\xb6\xe5\xed\x95\xc9\xe6\xf4\x0c\x41\x16\x78\x7e\xe8\x1c\x5b\x2c\xcb\xed\x62\xdc\x2c\xa4\xd4\x1e\x4b\x97\xe5\xe1\xd0\xfe\x95\x99\xe7\x2b\x41\x6b\x28\x47\x45\xa9\x8a\x85\x3c\xc1\xfd\x6f\xb3\xfc\xb1\x9b\x84\xfc\x28\x46\x84\x44\x9e\x2c\x83\x30\x18\x6e\x30\x8c\x06\xa6\xfe\xcb\x32\xd5\x55\xcd\x7a\x37\xda\x39\x9d\xdd\xc2\x28\xe3\xe8\x97\x3e\xc1\xc7\xba\xe8\x55\x83\x0e\x66\x17\xa3\x22\x40\x36\x9b\x57\x5e\x35\x56\x64\x06\xdd\x36\xc8\x28\x84\x1a\xdc\x3e\xe9\xa4\xe9\xe7\x17\x99\xb5\x33\x8b\x31\x1f\x0c\x32\x29\xb5\xe2\x0f\x5f\xd0\xb4\xb9\xee\xd4\xc7\x10\x18\x02\x13\x97\xf5\xeb\x4a\xdf\xa2\x9c\x9a\xbb\x5d\x1c\x8a\xc4\x70\xcc\x57\x45\xa6\x9c\x88\xd6\xac\x1d\xed\x98\x70\xcc\x5f\x6c\x96\x4f\xcb\xe5\x8f\xcd\xf3\xe3\x97\x99\xf3\x6f\x6d\x2b\x16\xd3\xd8\xac\x29\x94\xe3\xe8\x48\xff\x9c\xbd\xb8\x2e\x61\x71\xf7\xaf\xba\x58\xdc\xfd\x6b\x7a\xef\x66\xb1\x00\x34\x45\x1f\x8a\xc3\xba\xc8\xb2\x05\x98\x91\x1b\x4e\xad\x24\xd0\x06\xb7\x0c\x5c\x3d\xf2\x34\xbb\xb9\x18\xa8\xda\x20\xb2\xe0\xf2\x06\x2c\x89\x12\xb0\x6a\xae\x37\xad\xcb\x3f\xfc\xd5\x24\x8e\x11\x54\xcd\x95\x72\x1e\xc4\xf7\x2f\x9a\xe8\xfe\x4c\x99\x17\x59\x51\x6e\xba\xe1\xe6\x34\x01\xe5\x3c\x97\xf7\x22\x95\x30\x98\xdb\x9c\xea\x48\xd8\x12\x8d\xb4\x84\xa7\xa2\xee\x23\x2e\x15\xe3\x8a\x98\x88\x73\x99\x1e\x0e\x50\xce\xce\x75\x61\xa3\x96\xae\x87\x20\x86\x88\xa5\x38\xd7\xb2\x38\x82\x99\xa3\xdf\x5a\x24\x4c\x48\x23\x25\x75\xe4\x9f\xbb\xb4\x2d\x6a\x53\x4c\xfa\x1a\xc5\x72\x30\x6a\xf2\xf6\xbb\xbb\xc8\x38\xc4\x30\xd3\xea\xe9\xe7\x72\x7e\xff\xdd\x51\xc5\x64\xcc\x88\x8b\x86\x2c\x2c\xa8\xa2\xfd\x51\x1d\x28\xeb\x85\xef\x0d\xe4\x79\xaf\x5b\x73\x99\xa9\x20\x06\xdd\xee\x79\x86\xb2\x33\x1f\x04\x40\x99\x92\x51\x68\x7d\xc3\x9b\x4b\xc6\x3f\x1a\x43\xa3\xd9\x5a\x56\xf9\xee\x15\x6e\xcf\xf5\xb9\x84\xdb\xa2\x7c\x04\x8c\xf7\x39\x9a\x10\x77\x31\x78\xcc\xe1\x92\xcc\x31\x6c\xb8\x8f\x5c\x6b\x18\x61\x4d\x52\x63\xce\xfe\x2c\xce\xf2\xb5\x57\x64\x32\x1a\x0d\x10\xa6\xb4\xa9\x82\x7a\x51\x9c\x1b\x83\xa8\x59\x7f\x5b\x38\x20\x8b\x4a\xc6\xab\xd7\x09\x50\x99\x62\xda\x33\xdc\xdd\x66\xf2\x60\x0a\x74\x72\x47\xd7\x7e\x44\xcc\x36\xeb\xc2\xcb\x6d\x1c\xfa\x8f\x6f\x62\x47\x4c\x87\x11\x86\xac\xce\x15\x94\x1d\x3d\x9d\x6b\x14\x5e\x6c\x23\x2f\x37\x77\x7f\x5a\xce\xb1\x29\xea\x6a\x15\xf9\x1e\xc3\x4c\xc4\xde\x84\xe0\x9a\x59\x36\x5d\xc2\xab\x22\x9f\xfb\x0e\x35\xef\x08\xeb\xbe\xd2\x64\x54\x51\xe0\x05\x46\x64\x3a\x2d\x07\x5e\x54\x14\x04\x3c\x74\x2a\x6a\x69\x7e\xd8\xdb\xc2\x9a\xbd\xe4\xd5\xab\xe0\xf2\x6d\x6f\x72\x13\x7b\xf4\x45\xf6\x1f\x3c\xad\xf7\xea\xdc\x97\x23\x50\x51\xc0\xb9\x0b\x45\xf6\x15\xef\x07\x53\x33\x0a\x99\xe1\x59\xfc\x00\x78\x5b\x17\xf5\xf2\xf3\x94\x0e\xef\x42\x68\xc0\x4d\x79\xdb\xcf\x1e\xf4\x23\x8a\x7c\xa2\x85\xa3\x5d\xce\xb2\xe2\x63\x4a\x6b\xd7\xf5\x8d\x19\xb7\xe0\xae\xbb\x33\x54\x75\x0f\xe3\x10\x45\x32\xc6\x44\x0d\x62\xef\x9c\x4f\x65\x8b\xbd\x1b\xfb\xd3\xcd\xc5\x28\xf6\x00\xf7\x53\xcb\x63\xb0\x37\xd5\x0a\x23\x7b\x29\x8a\x85\x31\x9a\x71\xf7\x7f\x4a\x5f\xd3\xcc\xc1\x20\x55\x14\x83\x26\xcd\x1d\x6e\x7e\xfc\xe8\x3b\x6d\x51\xe2\xb1\xd0\x1b\xca\xe9\xdf\x96\xc5\x7f\x06\x69\xb9\x28\x09\x18\x32\x01\x6c\x96\x8b\xe5\xf2\x71\xff\xb8\xdc\xdd\xb7\xa6\x7a\x94\x48\x1f\xf3\xe8\xfc\x83\x5f\x76\xc0\xdb\x5f\xe4\x3e\x47\x86\x9f\x97\xf9\x50\xff\x72\x62\x8f\x88\x78\xe8\x63\x59\xc4\x91\x7f\x5a\xd0\xcc\x7f\xf5\xb1\x33\x11\x0f\x0d\x43\xbe\x48\xeb\xba\xe4\xef\x90\x7d\x0e\x5e\x82\x27\x12\xc9\x7c\x1e\xb9\x7c\x4d\x73\x18\xb4\x09\xcf\x43\x67\x64\xb6\x5e\xb5\x7f\x0a\x3c\xea\xf7\x90\xc3\xcb\xcf\xf4\x6a\x2c\x05\x24\x48\xd1\x85\x2c\x32\x75\xe7\x61\xb9\xa8\x54\x24\x03\xee\x1b\x76\x0c\x31\x88\x35\x45\x32\x0a\x68\xec\xaa\x6f\x9a\x79\xfd\x58\xe4\x70\x19\x29\xe2\x0f\x57\x8d\xe4\x46\xea\xf6\x1f\xdb\xe7\xa7\x13\xaf\x5f\xf7\x8d\x4f\x33\x35\x5c\xa3\xeb\x14\xe1\xac\xf5\xc9\xf7\x15\x94\xef\xe9\xd5\xe2\x05\x0a\x2e\x4a\x79\x9b\xf1\xc3\x9a\xa7\xe5\x20\x1f\xd5\x0b\xc5\x44\x00\x40\x3a\xac\x2c\x02\x4e\xaf\x1d\x9c\x48\x7b\x1e\xf5\x4c\xe5\x91\x02\xa3\xb1\xa2\xfa\xb3\x45\xfb\x0c\x47\x5c\x97\x80\x88\xfe\xe1\xf3\x68\x1e\x38\x98\x5d\xf3\x03\x88\x3b\x72\x4d\xa0\x23\x23\x6f\x63\x10\xd5\x18\xf3\xee\x6b\x41\x98\x7e\x98\x65\x30\x1c\x20\x19\xc6\x04\x40\x99\x6d\x73\x0a\x6f\xae\x62\x4f\x19\x07\xbb\x82\x7a\xf9\xb4\x30\x30\x52\xdb\xe4\x2b\x66\x44\x4b\x8b\xbb\xb2\x38\x9f\x4c\x8d\xa4\x81\x12\x56\xdb\x33\xc6\xd7\xc6\xdf\x3d\x0e\x3c\x82\x4e\xc9\x1d\x58\x4e\x7d\x77\xb3\x40\xe8\xa8\x2f\x7e\xdd\xcb\x29\xda\x58\x44\x1c\xb2\x20\xf6\x5b\x0a\xa3\xc1\x69\xed\x7a\x00\xc5\xfa\xe4\x35\xe4\x15\x42\x24\xdb\x4d\x27\xa6\x3e\x47\xc2\x54\xd4\x59\x2e\x57\x55\xcb\xe9\xd5\x99\x45\xfd\xe4\x72\x4c\x7d\x19\x79\x7d\x80\xe6\x0d\x6f\x9d\xba\x98\x12\x82\x24\x13\x4b\x75\x36\x81\xc6\xfe\x9a\x89\xa9\xe6\xb2\x9f\x53\x2b\x5b\x9b\x24\x66\xb6\xb2\xcd\x32\x3a\x9d\x6b\xf9\xba\x52\x9f\xcd\xc8\x8f\xde\x24\x12\x02\x8d\x9b\xfb\xd9\x6e\x7e\xbf\x7a\xba\xdb\xcf\x9f\xb7\xce\xfd\x88\x23\x48\x22\x65\x49\x18\x4d\x84\xf0\x59\xe3\x27\x98\x5e\x20\x71\x1c\x78\x26\x65\xdd\x58\xca\x8b\x61\xe6\x2c\x8e\x03\xb0\xce\x00\x6a\x69\xe5\x5d\x00\x37\x8e\x59\x12\xb9\x6a\x9d\xc6\xc6\xbf\x3b\x63\x90\xfb\x8f\xc1\xcd\x13\xc6\x80\xb4\xb1\x86\x4e\xcd\x4f\xc5\x49\x14\x2b\x6b\x0e\xce\x79\x95\xe6\xc5\x98\xa2\x66\x62\x2f\x8b\x93\x48\xe2\xe0\xfd\x58\xcf\xb7\x68\x8e\x1a\xb5\x9f\x36\x45\x17\x27\xb6\xba\x72\xbf\xd7\x69\xae\x36\xa0\xff\x18\x5e\xaf\x3d\xac\xf5\x9f\x29\x35\x65\x35\xc4\x02\x18\x4e\x11\x6e\xc4\xc6\xe1\x21\xcd\x01\xd1\xf4\xb6\x5d\x7a\x32\x92\xdd\xfe\x53\x6f\x6c\xa8\x68\x3e\x26\x97\x50\xb1\x94\x8a\x1a\x96\x1c\x71\x3e\xec\x9b\xb6\x71\x07\xad\x70\xdf\xd5\x19\x3f\x18\x1a\x3e\xdb\xa0\x48\x8c\x86\xa7\x95\x63\xda\xdd\x2f\x5f\x36\xa3\x6b\x35\x21\x01\xb8\xa2\x0a\xb7\x8b\x10\xcf\xb5\x26\x04\x23\x48\x55\xc6\xe5\x1b\x9e\x75\xf3\xd6\xd9\x8d\xb5\xd4\xe8\x9c\xb9\xf9\xb7\x3d\x9f\xa0\xc4\xb1\x44\x07\x1a\xcb\x24\x87\xb3\x4d\x83\x87\x39\xbf\xcd\xf2\x76\xb9\xd9\xcc\x1e\xf6\x37\xcf\x4f\x2f\xdb\xfd\xc3\xf2\xe7\xf2\xc1\x92\xc7\xa8\xc4\x0b\x42\x0c\xdf\x1c\xf8\x11\xee\x52\x5d\x37\x23\xd7\xf3\x43\x13\x3f\x32\xc5\x35\x6e\xc4\x60\x5a\x6f\x5f\x25\x7e\xc2\x89\x21\xe5\xc0\x31\xf9\x0a\x00\xf2\x37\xf2\x7b\x89\xaf\x38\x42\xe7\xc5\xf9\xb2\x4e\x3f\xc1\x84\xcb\x6e\x1d\x70\x89\x0c\xcd\x6f\x32\x7a\x8e\xc0\xf3\x11\xac\x54\x56\xa7\xfe\xfa\x4d\x02\x9f\xeb\x5e\x78\xae\x79\xc7\x5e\x44\x27\x09\x28\xc3\xc8\xf7\x13\x7c\x4c\x6a\x5f\x0d\x17\x5f\x73\xf8\x13\xcb\xd3\x80\x95\x31\x33\xcb\x0b\xff\x04\x9f\x75\x8f\xd6\x53\x25\x81\x10\xcc\x7e\x71\x34\x80\x7f\xc0\xa5\x6a\xdb\x34\x43\xf6\xc0\x03\x56\x8a\x9b\x32\x24\xd7\x16\x46\x14\x51\x64\xdc\xe5\x9f\xae\x6a\x48\xfa\x0b\x24\x09\xe3\x10\xb3\x32\x68\x0c\x1b\xc1\x81\xc6\x12\x1e\x0e\x4d\x28\x25\x7a\x16\xf7\x3c\x2b\xc2\x05\x5a\xe5\xd3\x94\x3e\x2a\x21\x5e\xe2\x5b\x3a\x93\x59\x09\xfc\x8f\xe1\x67\xc3\xff\xf6\xf8\x0f\x46\x09\xc8\x56\xbf\xb9\xfd\xa2\x24\x4a\x02\x13\xee\x69\x77\xcd\x84\x28\xc2\x4d\x3c\xbf\x3c\x0c\xcc\x93\x84\xda\xec\x47\xaf\xec\xc0\xf1\x39\x5d\x9f\xfc\x57\x13\x91\xf9\x01\x82\x06\x36\xcb\xbb\xdd\xe3\xba\x2c\xa4\xbb\x2d\xd3\xcc\x41\xe3\xed\x76\x69\xf7\x12\xdb\x1e\x51\xb3\x01\x2f\x96\xb7\xb3\x97\x87\xdd\x7e\xf6\x32\xdf\xad\x9e\x9f\xf6\x0f\xcb\xa7\xbb\xdd\x7d\xdb\x4b\xf8\x08\xa5\xb5\x41\xe4\xad\x7c\x85\x6e\xb5\xc4\x20\x10\x28\x01\x4e\xca\xf2\x37\x75\x03\xff\x35\x81\xd6\x4a\x38\x31\x55\x4c\x15\xd7\xb0\x2b\x1e\x4d\x08\xee\x4a\x20\xc3\x75\x4e\x3c\xc2\x3a\x4a\x59\x4b\x46\x6e\xa6\xf0\x60\x86\xf0\xc4\x43\xc7\x22\x75\xf1\xd5\x5e\x8c\x23\x91\x2c\x76\xf4\xc5\xcd\xbe\x73\xc3\xeb\x3a\x03\x43\x8f\x33\x1c\x5c\x45\x84\x55\x08\x95\x05\x4e\x79\x64\xc2\x73\xb7\x51\x49\x84\xbc\x57\x87\x33\x2f\x55\xca\xf3\xf0\x67\x51\xb7\x63\x03\x34\xc0\x0d\xe2\xa6\xd3\x7e\x72\x3c\x9d\xc3\x57\xd2\x41\x12\x43\x07\x88\x03\x35\x0e\x33\x25\x9a\x29\x84\xa5\x5b\x06\x7a\xf7\x0b\x3a\x96\x46\x88\xbe\x59\x89\x28\xf4\x60\x6a\x3d\x5c\xb3\x88\xd0\x92\xd3\xc5\xb9\xac\x5f\x71\x95\x3a\xd8\x9f\xeb\x21\x43\xec\xb1\x46\xe2\xd5\x05\x6f\x97\x2a\xf7\x82\x18\xd1\x7b\x58\xc8\xd3\xc6\xac\xbe\xdd\x23\xb8\x17\xc6\x89\x29\x1b\x6c\xcc\x05\x9e\xad\xcb\xe2\x50\x76\xb2\x25\x5f\x4a\x2a\x37\x57\x26\x98\x6c\xc0\x92\x21\x47\x63\x33\xd8\x23\xb9\x07\x1e\x92\x32\xec\x6d\x16\xe5\xba\x8a\x89\xfb\x2c\x62\x01\x4e\x46\x84\xab\xad\x79\x09\x79\xbd\xe0\x05\x9a\xef\xee\xc5\x02\x2f\xe6\xbc\x25\x85\x43\xd5\x83\x16\xcc\x32\x15\xbc\xe3\x81\x6f\xdc\x8e\x5f\x3c\xab\x87\x26\x12\x0f\xa8\xc1\x41\xba\x62\x0d\x0c\x68\x6e\x7b\xe0\x0b\x1e\x12\x0f\x63\x49\x2d\xd9\x89\x85\x9f\x0f\xdf\x2d\x4c\x7c\x4c\x6e\x9f\x8a\x5f\xb5\x1e\x4a\x55\x28\x1e\xca\x90\x1b\xcb\xe6\x1d\xca\xee\xaf\x10\x20\x77\x41\x63\xd4\x58\x31\x2e\x7c\xb4\x61\xce\x9b\x87\x9a\xa1\xbd\xd8\xec\xfc\x43\xec\x20\x27\x9e\x40\xe7\x38\xad\x9c\xc0\xd5\x73\x73\xc6\x9e\x8a\xb2\x9e\xe2\xf0\x51\x9c\xa8\x80\x88\xce\xe6\x48\x8b\x1c\x45\x70\x6d\x2b\x05\x6d\x04\x9c\xcb\xe2\x34\xde\x05\xae\xd8\x83\x15\x67\xa1\xa4\x49\x6b\x42\xe2\xca\x5b\xbb\x54\xe2\x70\xfc\x23\x4e\x30\xba\x33\xcf\xd2\x3c\x95\x9d\x2d\xcc\x23\x45\x71\x60\x72\xf8\xc4\x94\xef\x86\xbf\xc1\x70\x7e\xf3\xd8\x0f\x59\xa7\x47\x88\x15\x70\xb3\x6b\x8e\x24\xc5\xb9\xef\x49\x70\x65\x19\x3d\x6c\x01\xe7\x89\x46\x3b\x4e\x9c\x2f\x77\x70\x6c\xc7\x4e\x30\xe3\xaa\x56\x50\x23\x57\x4d\x6f\xad\x72\x11\x13\x15\x5b\xfe\x83\x1d\x54\xf5\xcb\x94\x74\xb6\xe2\x42\x10\x65\x4b\x90\x7f\x5c\x64\x57\xf0\x61\x58\xce\x47\x43\x2f\x3d\x8a\xa5\x46\x3f\x57\x9b\xbb\xe7\xc1\x14\x94\x89\x47\x62\x77\x6e\x1d\xce\x46\xd6\xcc\x96\xf6\xbe\xf4\x6c\xb9\x69\x18\x3d\x07\x06\x18\x0b\xce\x8b\x67\x6d\xe0\xd9\x16\x55\xbc\x86\x72\x35\x7f\xee\x3b\x4a\x1c\x40\x23\xba\xa4\x10\xff\x06\x59\xef\x8a\xf6\x14\xe0\xda\x33\x82\x5c\x0e\xeb\xb4\x1e\x0b\xc6\x28\xe1\x45\x09\x52\x3c\x2f\x73\x75\x2e\x9b\x19\xda\x7f\x0b\xe1\x07\x5c\x48\xc7\xb3\x85\x50\xb6\x21\x61\xa6\x12\xbe\x0c\x5d\xa1\xcd\x2d\x80\x6a\xdc\x98\x5b\x98\x54\x25\x57\x22\x90\xa6\xd2\xb9\xc8\xd4\x9e\x0f\x26\xbd\x08\x43\x9d\xd8\x80\xd7\x03\xf0\x0a\xe6\xbc\x54\xd3\xf5\x44\xf6\x02\xe2\x13\x13\x0c\xb7\xe6\x60\xa7\x2a\x6d\x8b\x91\xc6\x5b\xe2\xe0\xc3\x09\x12\x08\x66\x90\xe4\x75\x71\x73\xae\xd2\x1c\xaa\xea\x36\xcd\x7b\x4b\x54\x10\x9a\x58\x4a\x71\xcb\x9d\xf8\x15\x34\x6e\xa2\x24\x5d\x09\x12\x13\xbf\x99\x46\x7b\x2b\x3b\x72\x85\x16\x11\x8c\x27\x68\xe8\x61\xb5\xca\x02\xe4\xdb\x1f\xce\x9a\x99\x34\x46\x05\x93\x02\xe5\xed\x9b\xa1\x5b\x80\xe6\xe7\xac\x7e\x3e\x41\x79\x25\x4a\xac\x44\x14\x10\x5c\x05\x8f\xb3\xd5\xd3\xfe\x9f\x2f\xcb\x6d\x47\xbc\xad\x44\x24\x4d\x85\x61\x63\xbe\xcb\x57\xa8\x90\x5a\xf9\xb9\x2d\xcf\x13\x71\x64\xb2\x03\xf6\x61\x67\xa3\x99\x3a\xfa\x0c\x89\x4f\x13\xda\xa5\xcf\x54\x4f\xc2\x45\x89\x24\x22\x61\x67\xb2\xb7\x26\xa5\x10\x71\xc0\x6d\x12\x16\x49\x70\x2a\xd8\x41\x79\xac\xda\x6e\xc3\xb7\x11\xd2\xc3\xa5\xbe\xcc\xd2\x1a\xb6\xaf\xe9\xe9\x34\x84\x36\x08\xa1\x03\x64\xf5\xdd\x80\xe4\x99\x4d\x69\xdf\x96\xc5\x71\xb4\x61\x0b\xe9\x2b\x9c\xaa\x06\x4f\x65\xa1\x4f\x23\xac\x60\xb7\x5f\x08\x19\x07\xe8\x23\x5b\x55\xb2\x2b\x8d\x8b\xe9\x79\x29\x13\x8d\xd9\x73\x7e\x84\x5c\xa1\xa1\xfd\x3d\xe8\x5a\x28\xcf\x37\x15\x9f\x85\xae\xe7\xfc\xf4\xec\x1c\x01\xa1\xb8\x40\xf3\xd1\x16\x97\xcc\xf2\x83\xc5\xbb\xb8\xc0\x9b\x50\x32\x70\x1a\x3a\xff\x3c\x43\x79\xe9\xb1\xa0\x29\xa1\xb4\x8f\xe1\x27\x83\x4d\x84\x7a\xf5\x3c\x1d\x03\x15\x20\x25\x02\x3d\x96\x8b\x79\x91\xa5\x15\xb4\x61\x49\x01\xd2\xe4\xb7\xce\x95\x72\x1c\xc6\xb7\x7d\x9e\x2a\x25\x40\x71\x45\x5b\x03\xd9\x24\x0f\xa7\xed\x43\xa1\x7d\x8d\x5f\x69\x57\x7c\xf4\x2a\xa4\x5d\x23\x8b\xb8\xc5\x36\x2d\x40\x8c\xf7\x28\xad\x09\x62\x6b\x55\x91\xe3\xf1\x66\x52\x63\x3b\x37\xcf\xa4\xe7\xf9\x18\x2f\x91\xb8\xc9\x76\x33\x43\x7a\x09\x10\xee\x34\xbe\x70\xeb\x05\xb5\x2e\x0b\x75\x96\x75\x77\xb1\xf2\x55\x57\xe4\xd6\xfd\x95\x60\x14\x72\x7e\xbf\x7a\x5a\x6e\x97\xad\x46\xa3\x93\x31\x54\xd2\xf7\x8c\x66\x9b\xcb\x5f\xff\xad\xdc\x9b\x0c\x02\x86\x05\xdd\xc7\x41\x4e\x53\x06\xb1\xe1\xca\x7b\x78\x9e\xff\x98\x3d\x3e\xbf\x3c\xed\x88\x6b\x0a\x23\xc3\xfb\x76\x80\x7a\x97\xca\x37\x18\x0d\x8e\x24\x14\x02\x3b\x74\xa6\x52\x1b\x11\x93\x03\x46\xc9\x81\x87\x26\x89\x06\x11\xb5\x41\xe5\x0a\x19\xb6\xeb\xdf\xb9\xc9\xf6\x5a\x2a\x25\x6b\xa5\x55\x6b\x9e\x2d\xd2\xf7\x74\xf4\x2d\x25\x95\x46\x3b\x7d\x7f\x32\x82\xa7\xbb\xc2\x92\x58\xf4\x5c\x0b\xc9\xa2\xd0\x1c\x2c\x8d\xd1\x78\x2d\xba\xac\x24\x93\x46\xcd\x42\x81\x0b\xa5\xcc\xd4\x36\x2b\xdc\x62\x96\x51\xc8\x42\xab\x7c\xfa\x04\x1f\x3b\x38\x9e\x32\xe3\xa2\xa1\x31\xf1\xbb\xcc\xa8\xbb\x09\x21\x51\xd8\x09\x20\xe0\xcf\x3c\x3a\xda\x2e\x25\xa3\xc6\xf9\x35\x26\xe9\xb3\x99\x1d\x83\x95\x23\x23\x49\x39\x75\x11\x1a\xbf\xbd\x4a\x1b\x65\xa6\x75\x5a\xcb\xd7\x6e\x35\xc9\x58\x46\xa1\x91\x8a\x37\xc6\xaa\x4b\xf0\x8e\x86\x2f\x06\x0f\xd5\x20\xaa\xd7\xa2\xac\x21\xdf\x43\xae\x0c\x43\xf2\xb8\x9f\xf6\x62\x8b\x86\x79\x36\x09\xc6\x7e\xfa\x52\x72\xdd\xe2\xd1\x37\xc0\x55\x6b\x13\x48\x41\x02\xa7\x9c\x6b\xeb\x7f\x30\x5e\x80\x84\x12\x7d\x57\x59\x0a\x26\x4c\x09\x5e\xb3\x6c\x0e\x97\xf6\x7a\x65\xc4\x04\xeb\xd7\xb4\x54\x6b\xde\xfe\x5d\x86\x1a\xc3\xe4\x0f\xe7\x37\x3e\x08\x78\x48\xa9\x88\xab\x9e\x5a\xe5\x48\x79\x7c\xe6\xd9\x1c\x4a\x0b\xa4\x6c\x8d\x85\x2f\xb8\x89\xed\x5d\x94\x1f\x19\xf9\xe5\xf3\xf1\x9e\x97\x6a\xce\x4f\xab\xf9\x73\x3b\xe8\x2a\x88\x70\xb3\x36\xc5\x9d\x3b\xd4\xe9\xee\x3d\x42\x63\x94\x6a\x0b\x93\x49\xcd\x3c\x41\x3e\xd1\xf9\xb9\x7c\xef\xb0\xad\x76\xb5\xb4\xbe\xd0\xf0\x6b\x2b\x2e\xad\x5a\xc1\x00\xb2\x7c\x8d\x98\xef\x2a\xbd\xed\x95\x40\xdc\x21\x99\xab\xdf\xe3\x04\x24\x30\xc3\xa5\xaf\x4b\x80\x79\xc9\x3f\x16\xc0\x55\xd6\x92\x8b\x29\x09\x31\x41\x5c\xf9\xdd\x76\xe9\xb8\xcf\xdb\x16\xa5\x4c\xf8\x3b\x87\xca\x28\x0a\x57\x83\x59\xa1\x45\x8c\x52\x8b\xef\x50\x5e\x66\xf9\xa1\x3d\x92\xa5\x56\x86\xf7\x1c\x67\x5a\x47\x60\x69\x5a\x95\xe7\x85\x98\x7e\x36\xbc\x4a\xaf\x3c\xcd\x83\x3d\x69\x1b\x03\x19\xf7\x49\xac\x96\xbb\xfb\xc1\xe9\x3b\xb9\xf4\x94\x17\xd9\xa0\xf1\x01\x1c\x33\xdf\xda\x10\xbd\xa2\xcc\xb1\xeb\xa5\x4c\x12\x18\x6d\x24\x13\xe3\x1c\x55\x90\x0c\x67\x89\xf2\x3d\x20\x56\xf3\xab\x9f\xa3\x53\x3e\x55\x8e\xa3\xd5\x70\x5b\x85\x6d\x8b\xf6\x11\x30\x5d\x60\x4d\xc4\x0e\x01\xfc\xc3\x7b\x06\x94\x21\x1a\x7d\x3d\xdb\x4d\xe0\x20\x55\xc0\x0c\xeb\x15\xe2\xc5\x0f\x5c\x14\x9f\x86\x86\xcf\x35\xc7\xc6\xc0\xb6\x31\x79\xc3\xf8\x3d\xcd\x41\xa5\x54\x00\x49\x12\xb6\x04\x3f\x3b\xc8\xc7\x42\x94\x4a\x85\x96\xd4\x79\x6e\x41\x0d\x55\x7d\xd3\x72\xbb\x0e\x7b\x12\x9a\xa0\x4d\xdd\x7c\xd2\x45\x71\xe4\xbd\x00\xed\xd5\x17\xa6\x2c\x94\xe1\x04\x9d\xc9\x6f\x55\x35\xda\xeb\x09\x46\x6f\xb1\xec\xe6\x59\x8f\x46\x30\xf1\x23\xe4\x74\x96\xc5\x11\xd7\x0e\x6c\xe0\x74\xae\x79\x8f\x99\xd8\x75\x54\x01\x12\xd0\xc3\x67\x5a\xc3\x32\xaf\x53\xc5\x47\x94\x15\x2a\xb1\x72\x7e\xe2\x7c\x41\x27\x61\x7a\x7a\x25\x5a\x62\x1c\xa9\x39\x14\xaa\xba\xa7\x5c\xa3\x14\x27\x86\xa7\xf8\xd7\x2b\x47\xce\xb9\x55\xf5\x54\x7c\xb4\x8d\x9c\xb2\x56\xd0\xbe\xcf\x81\xf1\xd8\xfa\xb7\x4a\x84\xd2\x6b\xf1\xea\xfb\x13\xbf\x18\xaa\xb1\x36\xa0\xa8\x04\x05\xf4\xe0\xdf\x0b\x83\xee\xfc\x68\x99\x39\x95\x12\xda\xb3\x71\x2b\x1b\x53\x9a\x52\x85\x68\xfb\x1a\x06\x95\x13\xaf\x50\xe1\xb6\xda\x15\xbb\x57\xe8\xa5\x71\x95\xf4\x0c\xff\x68\x6a\x75\x68\x26\x2d\x3c\x25\x85\x51\xae\xdf\x81\xd9\x15\x8d\xd4\xf8\x37\x69\x12\xa5\x3c\x09\x5d\x2e\x0c\x4f\xf9\x71\xb9\xae\x52\x7e\x88\x49\xd8\xf5\xe6\xa6\x97\x09\x53\x2a\xf0\x44\xcf\xe6\xc2\xc2\xbc\x9a\xd7\x60\x8c\x80\x6a\x7c\x13\x61\x38\x9b\xa4\x01\xdc\x3f\x7f\xe4\x1b\x68\x3f\x06\x78\xbe\xc5\x3f\x36\x06\xbb\xa9\x9f\x9e\xa8\xc7\x53\x5a\x6b\xe1\xa4\xf4\xfe\xb7\xf5\xe6\xc3\x79\x03\x1e\x93\xe8\x64\x19\x20\x75\x1b\xb2\x03\x2f\x21\x11\x73\x78\x74\x90\xcd\xc9\x85\xa1\xcd\x29\x8f\x73\x72\x46\x82\x27\x25\x4e\x8a\x53\x09\x8f\xf2\x36\xbb\xf4\x45\xfc\x15\xf8\xc4\x47\x8a\x00\xcb\x99\x38\x1d\x6e\x00\x9f\x33\xac\xee\xb3\x65\x7c\xcb\xdd\xfd\x70\xa1\x41\x90\x50\x2c\x48\xea\x54\x6a\xab\xf9\x6e\xe3\x7e\x24\x50\x34\xb0\x8b\x5c\x4c\x29\xe6\xb8\x6e\x90\x20\x06\xd6\x6d\x12\xf3\xe2\xca\xe9\x71\x3d\xb5\xa9\x9d\xce\xd2\xfc\x6d\x57\x98\x7a\x2e\x07\x06\x35\x54\x4c\xd3\x33\x12\xc2\x40\xa0\xfa\xd3\xfc\x5c\x36\xbe\x4d\xb7\x1d\x5d\x07\xa8\x46\x29\x5e\x08\x99\x99\x14\xc6\x7e\x59\xcd\x9f\x47\x63\x44\x22\x81\x05\xfc\xba\x63\x72\x78\xd9\x3a\x3c\x04\x90\xd8\xf3\xfa\x32\xbe\x96\x28\x60\x38\x8a\x24\xf6\xa4\x81\xbe\x9c\x4b\x07\x8e\x7b\xee\xbb\x07\x40\xa4\xb1\xd7\x17\x8d\xe5\x67\x6c\xed\xa9\x88\x07\x50\x4f\x62\x2d\xd1\x6e\xf5\xb8\xdc\x37\xc6\xfd\x7e\xf9\xd4\x3e\x0b\x25\xb1\x8a\xbb\x62\xd7\x6d\xcd\xdf\xae\x4b\xba\x86\x2f\x47\x23\x53\x22\xff\x5e\xd4\x30\x4a\x77\xba\x1e\x5c\x39\xe4\xd0\x3f\xec\x31\x53\x5c\xb1\xc4\x2b\x60\x32\x41\x45\xd8\x07\xa8\x57\xa8\xc9\x3d\xb4\x4b\xfe\x8f\xff\xda\x9b\x47\x56\x71\xcb\x8e\xea\xae\x18\x90\xa1\x74\x25\x44\xc3\xb3\x1b\x22\xee\x3b\x42\x74\xac\x10\x1e\x3d\x72\x04\x3c\x6a\xf9\x19\xef\x9f\xe6\xdf\x6d\x60\x10\x81\x82\xee\xd4\x35\x33\x73\x5e\x9c\x46\xb1\x05\x88\x85\x60\xb6\x86\xe8\x58\xb4\xc0\x35\x48\x22\xa6\x3a\xde\xd1\x66\xeb\xbd\x37\xd5\xca\xae\x5d\x1b\xea\x47\x59\x64\x45\xa9\xd3\xac\x1e\x9f\xbd\xc0\x13\xdf\x77\x38\xf3\xe6\xbc\x4f\xeb\x0b\x62\x8b\x86\x6f\x2c\x98\x87\x91\x3b\x71\xbe\x4c\xa7\xbf\x40\x88\x84\x3a\x39\x7f\xa4\x34\xb3\xf4\x02\xbd\xfd\xc6\xf6\x94\x41\x90\x24\x4e\x6f\x98\x1f\xa0\xea\x85\x4b\x41\x86\x0a\x91\x90\xb7\xcf\x2f\x4f\x8b\xe5\x66\xbb\xff\x35\x7b\x78\x58\xee\xda\x66\x22\x91\xe7\x71\x8b\x4c\x11\x37\xc5\x48\xde\x49\x81\x0a\x02\xdf\xeb\x16\x9d\x2c\xc6\xaa\x44\x0a\x20\x90\x88\x43\x33\x0a\x87\x8f\xb6\x90\xe2\xd8\x05\x7d\x41\x07\xba\xa7\x37\x85\xd3\x7d\x40\x2d\x3d\x19\x09\x05\x1d\x85\xd4\xb7\x22\x7b\x36\xb6\xf3\xff\x49\x7b\x93\xe6\xc6\x71\x6c\x5f\xfc\xbb\xbc\x55\x2d\xde\x02\xe0\x08\xfe\x77\x92\x2c\xa7\xd5\xe9\xa9\x25\x39\xb3\xea\x76\xdc\x50\x60\x38\x90\xd8\x96\x48\x35\x49\xd9\xe9\xfe\xf4\xff\xe0\xc1\xc0\x41\xb4\xb3\xef\x7d\x9b\xca\x0a\x13\xa2\x28\x12\x04\xce\xf0\x1b\xb0\xa1\x82\x33\xc4\x8c\xd1\x24\x90\xce\x78\xe4\x3e\x2f\xf6\xc7\xb2\xd8\x2f\xf8\x68\x97\xd0\x24\x0a\xd0\xd7\x10\xb7\x6d\x6b\xf9\x6d\xb7\xc3\x8e\x7f\xaf\x69\x66\x66\xd9\x1c\xad\xea\xe5\x27\xbd\x15\xe6\x46\x6b\x03\xe9\x15\x65\x55\x21\xd9\xd5\xfe\x3d\x08\x05\x86\x11\x96\xd9\x31\xcc\x1e\xdd\x52\xa6\x03\x08\xc1\xf6\x01\xd7\x52\xb9\x95\x66\x74\xd9\x21\x93\x08\xef\x7a\xe7\xfe\x1a\x43\x1e\xe0\x66\xf1\x9c\xd7\x7d\xe5\x5d\xa5\xa3\x30\x90\xd6\x3a\x6c\x03\x47\x3d\xbf\x0c\x4a\x42\x3a\x4a\x43\x9b\xfa\xc1\x7f\x95\x27\x91\x63\xe6\x37\xfa\xba\x28\x35\x34\xb4\x4d\xbe\x37\xb6\x5a\xee\xef\x32\xc0\x19\xf4\x5a\x22\xc8\xd1\xfd\x39\x0e\x04\x96\xf2\x50\xde\xbf\xea\x72\x48\xd7\x11\xed\xea\x69\x3a\x8e\x62\x54\xcc\x7b\x30\xde\x67\x1b\x38\xa2\x50\xad\x79\x04\x93\x88\x5f\x1d\x47\x32\x0d\xbd\x23\x56\xfe\x5c\x96\xc7\xa5\xca\x9b\x5d\x34\x88\x1a\x75\xac\x23\x0e\x06\x02\x79\x76\xd1\x3b\xb5\xc7\x92\x98\x3b\x22\xd9\x43\xde\x46\xbf\x57\x1e\xaf\xc3\x37\x4e\x27\x8c\x33\x0b\x2b\x31\x2a\xd2\xa3\x6b\x4a\x43\x53\x6f\xc9\xeb\x0d\x62\x7d\x86\xaf\xa1\x4e\x41\xe2\x8b\x8f\xa9\x92\xc5\x84\x2e\x4f\xe7\xe6\x63\xf9\xaf\x1f\xce\x46\x55\x69\x16\x48\x7c\x50\x6f\xf0\xef\xc6\xe4\x29\xc3\x2f\x61\xa1\x54\x64\xd0\x21\x76\xe5\xc7\x7e\xbd\x72\xdc\xbc\xd1\x2c\xa2\xd2\xae\xa0\xc6\x87\xf2\x47\x5e\x5d\xea\x1b\x98\x96\x79\x56\x9a\xc5\xb1\xb6\x72\xef\xb3\x8b\xca\xc7\x18\xad\xd1\x9d\x61\x2c\x44\xe0\xbe\x29\xf6\x19\x9a\xe5\x04\xe3\xd7\xad\x6e\x3a\x13\x02\xa3\x95\x03\x54\xa0\xb8\x7f\x37\x38\x31\x1b\xb4\xe4\xed\x24\x3d\x0e\x2e\x6d\x50\x1a\xd5\x3c\x55\xa9\x07\xcc\x4f\x28\x2c\x68\x2e\x63\x6e\x2d\x26\x90\xc3\x54\x3d\xf9\x2c\x59\x0b\x22\x78\xec\xe2\x50\x59\x56\x0a\x0d\xb8\x46\x21\xb6\x16\x49\x82\xd9\x9f\x8b\x07\x4c\xb0\x3e\xea\x03\x6a\x21\x8d\x4a\xee\x1d\x3f\x36\x3d\x4c\x8a\x16\x4a\x27\xca\xcb\x99\x60\x88\x7e\x3b\x0e\xda\xb4\x4c\xbc\xac\x32\xd6\xcc\xe6\x17\xb5\xf7\x81\x9f\x96\x10\xa3\x64\xbc\x0f\x48\x7e\x75\x42\x7c\x1e\xee\xac\x25\x24\x08\x44\x78\x98\xfd\xb9\x5b\x3d\x6e\x97\xeb\xe5\x66\xbb\x33\x85\x42\x37\x44\xf1\x08\x81\x20\xb3\xba\xce\xf7\x3e\xa1\x18\x3e\x6f\xa0\x09\xf2\x0b\x17\xdb\xf9\x57\xbb\xa7\x86\x28\x44\x5e\xc7\xb9\xa3\x07\x0f\x45\x38\x46\xf3\x08\xd2\x14\x59\x48\xab\xe2\x2d\x6f\x60\x86\x86\x1f\xd7\x84\x57\x37\x58\x68\x6d\xf5\xeb\x97\x9f\x18\xa7\x01\x21\xa9\xa4\xd0\x19\x3b\xfc\x5c\x5a\x7c\x28\x10\xa2\x12\xac\x26\x01\x62\x1b\x3d\x2b\xd5\x1f\x4d\x51\x9c\xa4\x4d\x05\x96\xbf\x1a\x28\x14\x0c\xe6\x0c\x10\x2a\x09\x63\x3e\xc5\xee\xe1\xf4\xae\x60\x72\x40\x82\x4c\x28\xf0\xaa\xd3\x2f\xf5\x70\x2d\x00\x12\x08\x81\xd1\xa4\xe1\xa9\x7c\x49\xf0\x05\x12\x72\x03\xd7\x2a\x2e\xa7\xd5\xe9\x5c\x56\x8d\xbf\xa4\x38\x15\x58\x41\x59\xfd\xf5\x30\xfb\x6b\xe6\xfe\x9a\x80\x11\x50\x7c\xb8\x79\xda\x4c\x46\x67\x76\x5c\x4a\x14\xe2\x40\xaa\xb2\x34\x14\xa6\x27\xbd\x1b\x5d\x67\xca\xcc\x5d\x39\xf0\xda\x52\x4e\xa6\xd6\x03\x20\x8c\x64\x98\xc5\x6f\xd7\x2f\xcb\xeb\x52\x07\x10\xc6\x4d\xee\x6d\xb3\x63\xcb\x91\x7e\xd2\x93\xc1\x0b\x90\x4c\x19\x47\xf2\xe6\x00\xb7\xc7\x92\x37\x16\x41\x92\x8f\xa2\x25\x20\x99\x26\xdc\xf8\x34\x81\xca\xa5\xd5\x00\x71\xf7\x81\xd3\x44\x50\xa3\xaa\x8c\x4a\x73\xc7\xe3\x1a\x09\xe2\x3d\xd3\x58\x20\x02\x52\x30\xfa\x28\xc8\x11\x46\x47\xe6\x11\xa2\x0e\x88\xa4\x29\x56\x34\x4d\xa9\x7f\xd8\x82\x04\x22\x83\x08\xf1\xe6\xf7\x39\x2f\xfe\x96\xf7\xfb\xa0\x40\xa4\x96\xa1\xc1\x5c\x5e\x0a\xe9\x76\x39\x07\x3c\x62\x76\x90\xa2\x51\x66\xa3\x90\x6f\xfc\x04\x9d\x24\xde\xf0\x2a\x14\x13\xb8\x81\x1c\x01\x5e\x37\x0d\xf0\xe3\xb6\x54\xfc\x63\xe7\xbe\x0a\x6c\xfe\x7c\x97\xef\x0f\xdf\x78\xdd\x47\x06\x01\x81\x28\xa5\xe6\x1a\x25\x14\x75\x7e\x39\x4d\xc9\x77\x0c\x1c\xce\x80\xe8\xd4\x80\xd8\xd0\x0b\xc4\x78\xc2\xf7\xa0\x10\x40\x49\xc0\x30\x97\xd9\xa9\x12\x41\xc3\xed\x4e\xd3\xbe\x98\x9f\x34\x50\x87\x53\x86\x92\x38\x16\x16\xcd\x33\x50\x10\x00\x4a\xa9\x8e\x33\x6b\xaa\xbb\x6b\xca\xb1\xb1\x9a\x1b\xa5\x23\xe4\x07\x2f\xb7\x77\xbb\xb5\x17\x35\x06\x1a\x50\x46\xec\xab\x87\x48\xe4\x29\x7d\x5c\xa0\x61\x18\x63\x3f\x02\x3b\x43\x70\x53\xf0\x2f\xa2\x35\xa0\xa1\x20\xa2\x83\xc7\xe2\x03\xf6\x5e\xbf\xc3\xf3\xc6\x44\x25\x16\xf2\xbe\xfd\xd5\x71\xef\x80\x26\x41\x86\xd8\x06\x63\xa1\x7b\x25\x6b\x33\x89\xa6\x1a\x3c\x0e\x9a\xa4\x14\x3d\xed\x76\xe7\x0a\xac\xef\x13\x5c\x71\xeb\x2f\x57\xa2\x90\x40\x13\x66\x0a\xfe\xe7\x0a\x9c\xcb\xef\xef\xf2\x35\xf7\x49\x69\xec\x56\xec\xc4\x44\x93\x23\xdb\x93\x19\x7d\x05\x48\x4e\x86\xee\x52\x5e\xb6\x64\xb8\x27\x02\x4d\x03\x8a\x3a\x2a\xf7\x0f\xb3\xa7\x9e\x44\x1c\xd0\x34\x63\x34\x71\xca\x4c\xda\xc4\xe9\xc3\xaf\x61\x4a\x05\x28\x8c\x52\x36\xa5\x2a\x2f\xfb\xbe\xcb\x38\xd0\x2c\x8c\x90\x77\x51\xbf\x9f\x6f\x3d\x7e\x11\x68\x96\x09\xa3\x70\xdf\xf0\xca\x28\xb9\x7f\xc9\xfe\x02\xca\x93\x14\x67\xd6\x8d\xb5\x78\x77\x27\xe2\x82\x61\xf2\x76\x69\xaa\xc1\xf7\x8a\x38\xc0\x75\x54\x95\xda\x03\x6d\xec\x21\x49\x12\x9c\xe4\x05\xbc\x5f\x0b\x0f\xb6\x87\x25\x19\x51\xaa\xfd\x27\xa3\x00\xf3\xec\x7f\x5d\xa0\xfa\x08\xa6\x37\xdd\x29\xfa\x00\x50\xc9\x01\x2b\xd6\x66\xb2\x1a\xf4\xfb\xe0\x7a\xa5\x88\x8d\x9a\x01\x98\xc2\xda\x14\x1a\x16\xa8\x54\xc6\x4d\xd2\x88\xbf\xff\x31\x94\xef\x00\xaa\x44\x94\xc5\x2e\xda\x35\x6e\xd4\x36\x10\x39\x5e\x95\x22\x86\x84\x04\xf4\x13\xa1\x89\x6d\xaa\x84\xa6\x47\xb5\x3b\x40\xbe\x3f\xf8\x5b\xdd\x6e\x62\xed\x5a\x86\xb1\xa2\x2b\xf2\xfc\x44\xda\x33\x74\x83\xa8\xc6\xfb\xfe\x2d\x2f\xab\x7d\xee\xff\x1a\x45\xa9\xa7\x5f\xee\xde\xf3\xa2\xde\xf5\x4c\xd3\x81\xea\x40\x20\x2c\xd5\xaa\xc8\x5f\x4b\x84\x01\xd5\x2c\x43\xe4\xd3\xf3\x7a\xb9\xdb\xcc\xee\x97\xbb\xcd\x76\xb6\xb6\xf1\x12\x04\x04\x52\xe9\x1b\x64\x06\x78\x70\xc3\x1b\x6e\xe2\x48\x37\x28\x08\x22\xd4\xaf\x92\xe5\xe9\xdc\x41\xd1\xec\xc1\x50\x5b\xcd\x39\xe0\xa7\xef\x00\xe7\xbc\xd8\xdf\x97\xf2\x75\x59\xa8\x79\x07\xe8\x85\x20\xa2\xbe\x67\xba\x31\x24\x90\xc7\xf6\x25\xbc\x42\xb7\x4d\xbe\xbb\x41\x44\x95\x30\x74\xfa\xf6\x9c\x98\xc2\xf8\x13\xc7\x1a\x31\x9e\xcf\x77\x7f\x6e\xbf\x3f\xfa\xbf\x4a\xc1\xb4\x05\xdc\x57\x6f\x66\x9b\xec\xb4\x46\x21\x88\xb9\xc9\x27\x55\xfb\x5a\x94\x1f\x2e\xe0\x75\x47\x45\x6a\xc4\x01\x4f\x67\x23\x19\x59\x0f\xd3\xf3\xc8\x8e\x4b\x92\x90\xc5\xbe\x20\xa0\xf3\x5f\x3d\x2a\x05\x1e\xc5\x9e\xc7\xc8\x0f\x0b\x82\x94\x86\x18\xfb\x37\x15\x6f\xe7\xda\x43\x59\xb4\xf7\x7c\x08\xd4\x80\x20\x8d\x0c\xd5\x64\x0d\xa0\xa0\x82\x53\x3f\xdb\x83\x80\x31\x86\xb2\x46\xe7\xe1\x7c\x75\xc9\x15\x04\x19\x0b\x9c\x09\x1e\xa6\xbf\x46\x44\x60\x72\x91\x08\x32\x15\x20\x01\xcc\xf8\x1c\x95\x79\x11\xf9\xb3\x28\x8e\x29\x58\x9b\xc8\xcd\x2f\x1f\x6d\x5c\x0e\xea\x8e\x57\x6a\xf0\x83\x32\x1d\x20\x50\xd3\x75\x77\x8c\xcc\xf0\x7f\xd4\x34\x81\x80\x13\x1a\xd1\xae\xdb\xd3\x0f\xb8\xfe\x41\x93\xff\x9e\xde\x71\x03\x9e\x28\x9c\xf9\x4d\x75\xe9\x5c\xc8\x21\xe0\x32\xc2\xbe\x90\xca\x6b\xbe\xaf\xe0\x4a\xb1\x67\xa4\xdc\x03\x81\x90\x0c\x57\xe1\x0d\x6f\x93\x17\xa7\x05\xf9\x15\x4c\xfe\xfa\x17\x08\xd0\xa1\x2d\x4f\x1d\xd5\x58\xa4\x18\x02\xa1\x43\x2c\xa4\x1a\x2f\x46\x63\xd7\xbc\x91\x65\x75\x4d\x60\x1d\x3c\x61\x49\x22\x5c\xd9\xba\xfd\xf5\x13\x5f\x69\x37\x9e\x85\xa6\x68\x0f\x55\x0e\xbd\x04\xdf\x1d\x86\x90\x11\xe7\x36\x84\x45\x34\x5c\xc4\x17\x97\x51\x2c\x12\x40\x98\xc5\xb6\x68\x37\x61\xd1\x32\xbc\x46\x48\x63\x84\xd3\xa3\x4e\x63\xf9\x82\x79\xaf\xfb\x42\x4d\x28\x36\x21\xd1\xa1\xcb\x08\x3c\xd4\x37\x56\xdf\x53\x8d\xa4\x1e\xae\xc0\xb7\x57\x5c\x84\xd1\x8f\xd5\x89\xd1\xfa\xc6\x75\x0b\x5f\xf1\xbe\x3d\x18\x04\x5a\x06\xb8\x57\xed\xae\xdd\x4e\xc6\xcf\x72\xb8\xd2\x68\x25\x88\xd1\xd6\x6b\xf8\x6d\xd9\xf7\x22\x72\x03\x74\xac\xb3\x01\x01\xcd\x7e\x67\x48\x88\xc6\xe7\x2c\xab\xf2\x1d\x11\x05\x5d\x71\x0e\x42\x2a\x8d\xeb\xd7\x5d\xa9\x8e\xee\x65\xbd\xf2\xfa\x18\xfe\xc8\x30\x88\x62\x4c\xac\x37\xdb\xf5\x62\xb7\x79\x79\x7e\xbe\xff\xcb\x9d\x2e\x48\x0d\xae\xc9\xc5\x40\x76\xe2\x8e\xa4\xd3\x46\x75\x89\xfe\xa3\x0b\x03\x1e\x63\x1a\x50\xc1\x99\xe7\xd5\xf6\x00\x0b\x5e\x37\xdd\x8f\x09\x84\x71\x4d\xdc\xae\x57\xcf\xfd\x0d\x37\x0c\xb4\x8c\xd2\x1e\x20\x10\xa5\x07\xfe\x98\x40\xff\x41\x18\x52\xee\xe0\x8c\x2f\x35\x54\x4e\xbb\x74\x70\x19\x21\x84\xce\x01\x79\x5d\xbe\xff\xfd\x82\xf6\x98\xdd\xf6\x1a\x46\x44\x10\xdb\x83\xbb\xc7\x2e\xe6\x33\xff\x50\xfc\x63\x3a\x0b\x0c\xa3\x20\xf6\xf2\x51\xd6\x88\xa8\x7d\x82\xee\x68\x1a\x5b\xe9\x56\xf9\xfa\xf7\xe6\x63\x5b\xce\x2c\xa9\xb5\x03\x73\xb5\x83\x04\x0b\x90\xaf\x30\xbb\xf7\x93\xe7\xa1\xdb\xc9\xc2\x48\x09\x94\xf3\xb0\xea\x88\xff\x03\xa9\x3c\x08\x93\x50\x6b\xab\xb3\x71\x39\x63\x6e\xe6\x0e\x80\x42\x88\xef\x7a\xb6\x5d\xee\x6e\x66\x7f\xed\x02\xe6\x0e\xa5\xa1\xc0\x2d\x5a\x5c\x90\x40\xd8\xcf\x84\x42\x66\x99\xa3\x5c\xa9\xa7\x6a\x7f\x8d\x26\x71\xc3\x44\x14\x44\x0e\xa4\x5d\xc3\x6d\xce\x1b\x1f\x6c\x0f\xa7\x1c\x53\x04\xfb\x73\xb3\x9b\x1f\xab\xcd\xd3\x7a\xb3\x9b\x3d\xde\xec\x16\x4f\x8f\xdb\xf5\x6a\xfe\xb2\x6d\xff\xb0\x7d\xfa\xbe\x7c\xdc\xb8\x0b\xc8\x08\x43\x7a\x22\x60\x07\x09\xd4\xc3\x5f\xf3\xe1\xfb\x12\x0a\x6d\x4a\x8f\x66\x79\x5f\x83\x2c\x11\x76\x31\xd1\xea\x85\x50\xd1\x18\x4b\x98\x05\xfc\x6a\xee\xae\x95\x51\x21\x54\x51\x8c\x0d\x8d\xf6\xf9\x1a\x75\xc5\x0e\x93\x4d\xdd\x6f\x50\x8c\xd1\xd0\xdd\xe4\x2f\x3b\xa1\xcc\x7d\x82\x13\xc3\x57\x33\x7d\xc7\x59\xa1\x16\xa8\x81\xb9\xe0\xa3\xca\xdc\x48\x23\x37\x72\x9f\x17\x3a\xb3\x68\x69\xbb\x4a\xf7\x18\x24\x10\x2a\x9d\x62\x79\x6d\xf9\x5f\x08\x43\x34\x89\x3d\xea\xd1\xba\xdb\x08\x11\x71\x52\xe5\xb6\x5d\x5c\x7f\xf7\x81\xaa\x1b\x93\x0a\xdb\x38\x00\xf9\x6a\xdb\xe9\x5f\xa1\x30\x21\x04\x1b\x9a\x21\x6e\x7c\x24\xa7\xe9\x87\x64\x61\xec\xd2\x14\xac\xd2\x3f\xf4\xfb\x6f\xbd\x17\x51\x07\x22\xb0\x27\xbb\x29\x25\x42\xb9\x37\xf9\xbe\xa8\x17\x57\xfc\x3f\x08\x75\x6c\xb2\x94\xbf\xdd\xce\x07\x6b\x87\xe6\x80\x82\xc0\xdf\xca\xa3\xda\xfe\xba\x05\x40\x8f\xdf\xf1\x66\xdb\xfb\xd1\x11\x09\xac\x34\x16\x58\x15\xb1\x81\xd1\x93\x1d\x44\x89\x71\xcc\xe5\xde\xb4\x06\x22\x4a\x63\x61\x20\x0c\x6e\xaa\xf5\xdf\x88\x28\x88\x28\xd2\xf7\x10\xa9\xb1\x9d\x68\x39\xba\x71\x99\x26\xce\x53\xeb\xe1\x72\x6c\x6e\xfc\x8f\x89\x02\x01\x58\xc9\xfa\xd7\x85\x57\xbc\x68\xf2\x02\x26\x27\x75\x14\x68\x26\x22\x9f\x09\xb6\xb9\x5c\x77\x57\xa3\x40\x1b\x3e\xfc\xa1\xac\x6a\x78\x1e\xa5\x54\x51\x48\x99\x91\xe5\x39\x94\xef\xde\xed\xad\xee\x4a\x2a\x6e\x58\xcc\x8c\x2c\x6e\x0d\x6a\x97\x17\x9e\xcd\xb1\xd3\xd0\x1b\xc4\x02\x2c\xaf\x89\xce\xc4\xf0\x2a\x68\x8c\xda\x5b\xc9\xac\x14\x0c\x6f\x60\xff\x3b\xf5\x30\x88\xa2\xd8\x98\xca\xd6\xd0\x2c\x0b\xb5\x5a\x3c\x8d\x7e\x42\xdc\x26\xec\x86\x30\x6d\xea\xd7\xed\x45\x1a\x34\x6e\x9f\x0b\x02\x51\x9c\x0a\x13\x4b\xb7\x99\xed\x92\x57\x47\xe3\x0c\x13\xfa\xe3\x2c\xca\x2c\x05\x6e\x55\xd4\xe7\x6b\xe3\x3b\x88\x62\x45\xb1\x65\xbf\xdb\xed\x50\xf6\x60\x10\x00\x45\x49\x22\x8c\x9c\x4e\x59\x6d\x81\x9f\x16\x4f\x2e\x09\x8a\x52\xc2\x58\xe0\x84\xcd\xab\x5b\x3a\x9c\x2a\x2c\x08\x53\x9f\xd7\x2e\x9b\x03\x06\xd2\xb7\x65\x65\xe6\xe3\x4a\x96\xee\x34\x59\x90\x21\xe4\x11\x71\x36\xf3\xf2\x57\xe0\x0f\x84\x04\x97\x35\x83\xe0\x18\x37\x0d\x21\xca\x62\xc5\xbb\x8a\x8c\xc9\xbd\xbe\xb6\x90\x80\x28\x63\x31\x2a\xd9\xdd\x97\xe5\xeb\xcb\xd9\x1b\x1e\xde\xe4\x6f\x28\x32\x39\xba\x33\x19\xe7\x98\x80\x37\x68\xa9\x76\xd4\xca\x56\x03\x56\xf5\x1a\x79\x3b\xa0\xda\xb9\xf0\x90\x17\x6b\xac\xe1\xfb\x0b\x57\x31\x2a\x2f\x68\x90\x87\x1f\x65\x03\x0f\x3c\x2f\x56\x85\x2e\xe7\x1f\xce\x89\x78\x7e\x85\xc9\x84\x88\xd3\x34\xec\xe4\xcd\xfb\x08\x0f\x88\x38\x0b\x5c\x19\x13\xf2\x7d\x31\xbf\x7c\x6c\xa1\x9e\x96\xbd\x82\x48\xc4\x20\x6c\xf3\xe2\xf9\x60\x9b\xf8\x98\x77\x8c\xaa\x30\x91\x0c\x45\x00\x3d\x23\xe1\x1e\x9c\xb2\x67\xca\xf6\xc9\x0c\x56\x81\xb9\x93\xe6\xe5\xe4\xe2\xf8\xb1\xcb\xf5\x6e\xcf\x6b\x7c\x8e\xbb\x53\x59\x41\x4c\xf6\xef\x90\xef\x36\x50\xa8\x5d\x7b\x1f\xea\xdd\x6d\x55\x9e\x76\x7f\x95\x97\x6a\xf7\x95\x4c\x31\x44\x2a\x32\x95\x05\x63\xe2\xba\xe0\xe7\x67\xa8\x46\xf3\x52\x45\x89\xd1\x06\x94\x87\xb2\x7f\x33\xdc\xe1\x18\x50\x60\x10\xd3\xf6\x9b\xd9\x76\xe9\x3e\x07\x59\x8c\xdd\x10\x9e\x57\x37\x55\x79\xb6\xdc\xa2\x9d\x3f\x2c\x42\xcc\x70\x8f\xa0\x9b\x28\x1c\x9d\x54\x53\x8e\xa9\xe9\xec\xfb\xc3\xdf\x16\x77\xb3\x95\xcb\x9b\x23\x9d\x18\xf5\xa5\x87\x0f\x67\x2f\xfc\x3b\x65\x0c\x88\x74\x16\x22\x88\x71\x8f\x42\xd3\x03\xf5\x5c\x88\xb4\x32\x1e\xb0\x1b\x68\xdf\x79\x04\xd9\xfa\x6c\x2d\x8e\xe2\x10\xa7\xa5\xce\xab\xba\x99\xdc\xa0\xe2\x28\x31\xeb\xb8\xdd\x9a\xa7\xe3\xbe\x38\xca\x18\x75\xab\x90\x8d\x44\x2c\x86\x12\x9d\x3f\xae\x3c\xc8\xdd\xc7\x04\x43\x30\xeb\x4c\x29\x6f\x49\x35\x78\xf9\xe3\x98\x0a\x04\x3f\x1f\x78\x7d\xe8\x2a\xfc\xee\x20\x37\x00\x88\xbf\x5d\xea\x66\x7b\x80\x6d\x7e\xfe\xbd\xc0\xf9\xf0\x02\x62\x6e\xe9\xde\xe0\x03\x32\xb3\xac\xb8\xd9\x11\xc7\xc2\xb8\xeb\x56\xc0\x15\x16\x4a\x3d\x44\x99\xb9\x11\x20\x83\xd8\x3b\x94\x3d\x97\xaf\x70\x72\x00\x72\x88\x93\xcc\x3a\xce\xdd\x2c\x3d\x8e\xaf\xac\x7a\x68\x58\x88\x13\x15\xa0\xc4\xcf\x1a\xce\xc7\x8f\x41\xa1\x72\xf0\xf2\x0c\x6e\x4b\xa2\x15\x5a\x1d\xf8\x5c\x72\xb9\xdf\xcf\x2f\x1f\x06\x77\x3c\xba\x4b\x29\x35\x18\xf6\xda\xda\x31\xe4\x6e\x03\x43\x76\xe3\x08\x0e\x00\x71\x1a\x11\xac\x0c\x3b\x74\x57\x73\xe8\xa1\xcb\x2c\x7f\xc1\x5d\x7a\x1a\xc7\x18\xd7\x9e\xcb\xf2\x88\x1e\x61\xfd\xe0\x38\x4e\xd3\x00\xfb\x7c\x65\x61\x39\x9b\xcb\x62\xa8\xce\x05\x31\x23\x0a\x17\xb8\xff\xfa\x8f\x1f\xdc\xf4\x22\x12\x33\xcd\x50\x32\xe4\xcc\x2f\x35\x18\x0a\xba\xbb\x8c\x8c\x64\x4e\x64\xe0\x87\xb1\x12\x9f\x7f\xac\x46\x3d\xb4\x38\xa3\x81\x32\x59\x95\x83\x84\xde\xf1\xfa\xb0\xb9\x08\x2b\xa3\x37\x0a\x2a\xe2\x4c\xc5\xd4\x98\xf0\xf2\xe6\x80\x58\x5e\x4d\xdd\x17\xf2\x48\xb9\x42\xf7\x03\xaf\xaa\x7c\xec\xaf\x06\x31\x4f\x12\x65\xca\x69\xf9\xbf\x2e\xb0\x39\xa3\x20\x85\x81\xc5\x8e\x47\x66\x80\x0f\xcf\x88\x28\xdc\x9d\xc5\x63\xa9\x60\xce\x1b\x79\xe8\xd3\x85\xc6\x50\xa6\xfe\xff\xb9\x13\xe9\x00\xa9\x66\xf3\xcb\xbe\xa7\xc9\x6b\x0f\x0a\x2a\xd1\x31\x6c\xc0\x1e\x84\x58\x86\x11\x12\x57\xac\xe4\xed\x97\xd0\x42\x88\x25\x4b\xb0\x0d\xde\xa6\x19\xb7\x58\x26\x9e\xa8\x52\xc7\x52\xc5\x18\x82\x5a\xdd\x81\x81\xaa\x1e\xc4\x40\x33\x62\xe3\xf0\x39\xaf\xd1\x22\x61\x20\x25\x65\x87\x69\x99\xa0\x11\xa5\x9f\xfe\x2b\x59\xce\xa7\xb0\x84\xc3\x4b\x4c\x08\x91\xd8\x84\x52\x65\xbb\x95\xfc\x56\xb8\xae\x97\x49\xf4\x22\xf1\x84\x04\x86\x7b\xc0\xeb\x1a\xaa\x66\x65\xd0\x15\xd7\x4a\x2d\x90\x10\x1e\x09\xed\x53\xaf\xfb\x52\xbe\x9a\x6e\xe1\xe8\x95\x4b\xa8\x4c\xb1\x98\x90\xd7\xc6\xa3\x67\x7a\x91\x4d\x28\x24\x98\x7c\x7d\xe3\xf5\x4f\x07\x64\x80\x24\xa0\x49\x92\x5a\x58\x7f\xbb\x2b\x3e\xbd\x4f\x9b\x99\x40\x12\x24\x10\x33\xd7\x82\xf3\xde\x66\x43\x26\x12\x24\x01\x70\x2c\xec\x79\x63\xbc\xc1\x39\x42\x96\x99\xde\xbd\xbb\xf3\xb7\x79\xc1\x8f\x37\x79\xdd\x0c\xac\x9d\xbe\x22\x51\x40\x12\x2a\xc5\x12\x2b\x7f\xb0\xe3\x4a\xe5\xc6\x45\xd1\x7a\xfc\x0c\x2f\x3a\x26\xa1\xb0\x85\x26\x23\x0d\xff\x54\x29\x30\x0b\xa8\xbf\xe4\x38\x56\xaa\xb3\x5d\xd9\x94\x47\xb5\x2a\xb6\x87\xbc\xee\x29\x4f\x40\x92\x24\x29\x82\x5d\x56\xc5\x5b\xf9\xda\xeb\x3d\xf7\x23\x13\x37\x94\x31\x9c\xc9\x47\x5e\x37\x96\x58\xd5\x37\x0f\x6c\x07\x48\x04\xb8\xea\xcd\xbf\x46\xf3\x3b\x49\x34\x8d\x8d\xfd\xeb\xfb\xa0\x22\x96\xa4\x6d\x2e\x83\x0d\xa5\xbc\x91\x87\x6d\xd9\xad\x78\xfd\x95\x3d\x61\xa9\x01\xfe\x38\x9c\x86\x15\x05\xb4\x69\xde\x34\xe4\x06\x92\x2c\x49\x31\x17\xea\x4c\x8b\x6e\xfb\xbb\xee\xf0\x12\x33\xc1\xb1\x74\x0d\xcd\xe1\xb6\xac\xa6\x9a\x16\x49\x06\x04\x6b\x99\xcb\xed\x5d\x14\x90\xb2\x88\x02\xe2\x7e\x07\x27\x86\xd2\x63\x26\x75\xc7\x2d\xec\x98\x2b\x13\x31\x4a\x22\x58\x92\x1a\xea\x4b\xfb\xce\xd8\x39\xb7\x2a\x9a\x72\x31\x26\x03\x23\xef\xc4\xc5\x6c\xbd\xad\xa7\x5d\x8f\xaf\x7f\xd2\xb8\x1d\x94\x08\xe0\xe0\x80\x7a\x01\xa1\x6c\xdb\x73\xc6\x72\x3f\x41\x66\x11\xe6\x29\xb7\xf9\x11\xda\xd3\xae\xfc\x9e\x95\x28\xa2\xb1\xf7\x98\xd7\x2e\x39\x9b\x19\xd3\x53\x3f\xc0\x9a\x1b\x6d\x4e\xbc\x6a\x1c\x67\xb7\xbf\x6a\x26\x8a\x19\xa2\xc6\xfc\xe9\xe5\x71\xbb\x5a\x6e\x76\x9b\xbb\x99\xd3\xda\x87\x44\x49\xc0\x4e\x58\x73\xa8\xca\xf7\x95\xff\x10\x24\xb1\x93\x78\x86\x73\x9b\x22\x1c\x11\x28\xd4\xe7\x42\x41\x02\x00\xc6\x09\xef\xf8\x71\x3a\x5f\xea\x6d\xb7\x13\x27\x3a\xc9\xa2\xb4\xe7\xd8\x39\xbf\x54\xc5\x2d\xc0\x4c\x5c\xe7\x31\x83\x9b\x9d\xd2\x28\x4b\x04\xd6\x19\x7f\xab\xc1\x06\x29\x8d\xd3\xc0\xe8\x15\x1c\x40\xbe\xf6\x12\xa9\xf1\x49\xa5\x44\x4c\xf1\xdd\xe6\x50\xc2\xae\xdf\xaa\x48\xa9\x16\x24\xeb\xf1\x74\x3c\x19\x64\x75\x3a\x81\xca\x79\x03\xc7\x51\xc5\x37\x0d\xb4\xb0\xbe\xda\x1f\x13\x70\x90\x34\x24\x29\xe6\x0f\x3e\xbe\x32\xf1\x6f\xbf\xc0\x94\x86\x69\x1c\x53\x2f\x57\xed\xe1\x36\xf7\x50\xec\x3b\xf0\x8f\x1b\xcb\x18\xa6\x48\x8f\xf0\xbe\xce\xeb\xd7\xd9\x18\x8f\x93\x46\x41\x14\xda\x4c\xf8\x11\xde\x6f\x00\xfb\x1c\x53\x05\xd8\x34\x0a\x4d\x68\x87\x39\xdd\xe8\x24\x9c\x22\x03\xc3\x56\x31\x7b\xa0\x83\x34\x8e\x68\x94\x0c\x4c\x5c\x56\xa7\x33\x70\x79\x38\x41\xd1\xbc\x54\xc7\x1b\x68\x78\x7e\x74\xab\x5f\x9a\xd0\x20\x22\x4e\x59\xb8\x0f\xef\x1d\x5d\x4c\x92\x00\x6a\xf2\xaf\xca\x22\xff\xf5\xeb\xf7\x0f\x3b\x11\x2c\x4c\x2c\x88\x09\x2a\x17\xdd\xa4\x29\x0d\x9c\xaa\x48\xa1\x78\xa5\x6c\xd9\x6a\x10\xfa\xa5\x69\xa8\x32\xe5\xfa\x12\x43\xcb\x11\x48\xd3\x98\x20\x42\xc5\x2e\xd0\x79\xb1\x5f\x56\x55\x59\xdd\x1e\xcb\x72\xda\xf8\xa4\x7b\x36\x69\x96\x31\xa3\x4a\xd1\x5b\x19\xac\x0c\x9b\xbe\x1c\x07\xaf\x4b\x9a\xca\x18\xa5\xf4\x0d\xdd\xee\x98\xff\x7b\x9c\x94\x8e\x43\xcb\xe1\x13\x62\xc4\xc8\x6e\x3c\x2f\xd7\x8b\xe5\xe3\x76\x47\x89\x5b\x03\x53\x96\x45\x28\x07\x66\x9b\xd5\xcb\xed\x9d\x7f\x1a\x19\x8f\x51\x65\x64\x5b\xe5\xe7\x67\xfe\xf1\xe5\x1d\xce\x80\x39\x92\xca\xf2\xc4\x73\x57\x05\x4a\x79\xa0\x9d\x4f\x92\x9d\xd1\xbb\xa6\xdc\x1e\xa0\x73\xf4\x85\x94\xeb\x30\xb2\x8a\x07\xcf\x65\xdd\xac\x16\x4f\xd8\x0a\xe9\x56\xc2\x54\x00\xc5\xed\xfe\x6d\x04\xef\x98\x15\xea\xa6\xdb\x26\x3a\x53\xc5\xc8\x35\x81\xa2\x2b\x41\x0e\x48\x25\x4d\x2c\x06\x4d\xd6\xcf\x50\xf5\x5b\xcb\xa9\x8c\x02\x27\x14\xbd\x3d\x5c\xc9\xf9\x41\x2a\x99\x4c\x0c\xe5\xb4\xcf\x8b\x86\x54\xc5\xc6\x28\xd3\x6a\xdb\x6e\xfb\x31\xa6\x1b\x92\x1a\x59\xd1\xcd\xf3\xd3\x7a\xfb\x7b\x94\x51\xaa\x44\x60\x50\x4d\xbc\x76\xe2\xa2\x8f\x8e\xfb\x0a\xa9\x52\x31\x6a\xeb\x95\x47\x75\x33\x1f\x56\x01\x52\x88\x44\x94\x0e\x88\xac\xfe\x48\xcc\xd3\x4e\xbf\xb7\xc3\xd1\x57\xb2\x5c\x03\x16\xc2\xdc\x48\x4d\x85\x56\x1e\x2d\x50\x61\x3d\xc3\xef\x1c\xa9\x66\x80\x60\xc2\x99\x75\x36\x1f\xcc\x6c\x46\xb2\x0c\x41\xc6\x7d\x76\xa1\x3d\x44\x63\x23\x75\xb6\x91\x65\x89\x04\x02\x47\x73\x02\x46\x53\x82\xfb\x7e\x9d\x37\x0e\xb8\x5d\xf9\x63\x22\x41\x38\xdb\xf7\xbc\xd8\xab\xf2\x64\x3c\xa0\x5c\x38\xc2\x82\x50\xa8\xf6\x5e\x3c\x3d\x7c\xeb\x3f\x14\x16\x28\x82\x04\x79\x25\x5e\x87\x22\x1b\xc0\x42\x62\x68\x71\xb5\xc1\x2a\x94\xc5\x6d\x59\x19\x50\xe6\x08\xe7\xf9\x75\xd2\xcd\x42\x92\x70\x6b\xf7\xac\x2d\x5c\xdb\x1d\xa1\x0c\x6b\x26\x26\xdb\x59\x9d\xf8\x1e\xa6\xaa\xc7\x2c\x8c\x81\xd9\xa5\x09\x90\x08\x2a\xcb\x76\x91\xea\x15\xb2\x3e\x9d\x22\x2c\x4c\x25\x0a\xa2\x29\x23\x0d\xb5\xb3\x79\xae\x7f\x4e\x2c\xe2\x4a\xd9\x1e\x51\xfb\xc2\x59\xb5\xa5\x8e\x9c\xcb\xfe\x41\x03\xf6\xdf\xa3\xdf\x14\x47\x29\xde\x9b\xd3\xc7\xaa\xcd\xe5\xdc\x6a\xc9\x12\x20\xb8\x5a\xce\xbf\xdf\x0e\x6e\x73\xa2\x19\xc4\x9d\x5a\xeb\x0d\x70\x75\xdf\x33\x6a\xb6\xa3\xd2\x50\xa2\xf4\x55\x9b\x27\xfe\x31\x7a\x25\x59\x2a\x75\x48\x5c\xd4\xdb\x69\xed\x00\x63\x2c\x4d\xec\x54\x7e\xbc\x9c\x10\xd8\xbd\x2d\x6d\x00\x3b\xd8\x12\x18\xd3\xc6\x55\xdc\x54\x0a\x1d\xa5\xd8\x1e\xcc\x42\xda\xd3\xe0\x59\xd5\xf5\x65\xdc\x0e\x62\x3c\x53\x48\x3c\x98\xf3\xfa\xd5\xdb\x9d\x7e\x19\x6f\x30\x2e\x32\x44\x1b\xec\xce\x47\x3e\x2d\xe2\x05\x4c\x48\x8e\x74\xbc\x2d\x14\x0d\x14\xb9\x9f\xb3\x42\x1b\x60\xb9\x4f\xfb\xec\xf6\x68\x1a\x3a\xa8\x8d\xd7\x63\x1a\x00\x93\x21\xc7\x26\x74\x17\x15\x3f\xf3\xaa\x29\x9c\x8f\xab\x1f\xc6\x63\x84\xfe\x18\x70\xcb\x4c\x21\xcd\x70\x38\x44\x51\x1e\x66\x1e\x62\xdb\xde\x8b\x2e\x69\x65\x2a\x90\x34\xeb\xb0\x2e\xb7\x65\xe5\xd4\x18\xec\x00\xa0\x21\x6e\x17\xf7\x50\xd7\x65\xb1\x4b\xa7\xf3\x33\x06\x61\x1c\x5a\xe7\x4b\x0b\xc9\x2b\xab\xdb\xb2\x7a\xbc\xf9\xcf\x80\x1c\x0c\x12\x15\xd9\x5e\xd2\x46\xa2\x30\xd7\xd0\x8d\x6d\xf8\xec\x40\x6a\xdc\x40\x84\x73\xef\x9d\x64\xfb\x01\xd3\x9a\x60\x18\x50\x5f\x44\x1b\xc6\x8d\xea\x0a\x19\x89\x78\xc4\xfc\x64\x6b\xbf\x12\xe1\x3a\x83\x2b\xcb\x48\x64\x54\xcc\xeb\x86\xbf\xc2\x73\x95\x9f\xca\x4a\x39\x49\xaa\xbe\x78\xeb\xf4\x0f\xcb\x08\xa3\xa8\xff\x75\x29\x4a\x8d\x86\x81\xc7\xd9\xf9\x7c\xb4\xf6\x47\x9b\x7c\x5f\xbc\x9c\x07\xeb\x43\x16\x24\x09\x26\x8d\x5e\xd1\xba\xff\xee\x65\x41\x22\x22\x23\x99\x65\x74\xb9\x3a\xc1\xc8\x6e\xf7\xcc\x02\x9e\x02\x73\x95\x41\x71\xcc\xa5\x11\x81\xb3\xe5\x3d\xf7\x7e\xb7\xef\x88\x51\xf0\x72\xf1\xec\x1d\x1c\xcf\xe3\xa2\x47\x16\x52\x23\x13\xd1\xb4\xdf\x31\x15\x9c\x65\x61\xa0\x9c\x1d\xd2\x58\x5b\x19\xb2\x90\x51\xfc\x92\xf6\x95\x01\x3a\xcf\x95\xff\x76\x88\x90\xa3\xff\xfd\xc0\x45\x2e\xde\xea\x07\xf9\xad\x82\xbd\x93\x11\x85\x2c\x8a\x52\xe7\x55\x62\x98\x18\xb5\xed\x62\x8d\x89\x5b\x90\x45\xb1\x69\x44\x96\x56\x1b\x79\x55\x2c\xa0\x4b\xb1\xb3\x28\x0d\x71\x7b\x34\x8b\xc1\x4f\xc8\x17\x65\xdd\x58\x51\xa8\xd1\x8f\x8d\xa4\x76\x35\x1c\x9c\xc6\x79\xf3\x31\x2f\x0b\x35\x6b\x9a\xd2\x1b\xde\x42\x16\x53\x81\x60\x0d\xb3\xd4\xef\x64\x09\x5a\xfb\x63\xa1\xb1\x3f\xa9\xa1\x19\xe9\x9a\xb8\x01\x52\x05\xc6\x2f\xa2\x12\xb9\x1a\x1f\x54\x0e\x41\x39\x59\xe4\x19\x16\x77\x06\x3d\xcf\x5e\x1e\x99\x25\x8c\x62\x12\x2a\x78\x9b\xad\x77\xa2\x02\xe3\xe2\x4d\x96\x64\x49\x66\xdd\xf7\xda\x20\x7e\x71\xcd\x9e\x82\x2c\x95\x3c\xc8\x7a\x98\x0d\x50\xab\xe2\x86\x8f\xf2\x9c\x8c\x09\x89\x98\xb9\x99\x94\x97\x13\xae\x6f\xd3\x0b\x45\x96\x11\xae\x4c\xbd\x68\x0d\x05\xba\x4f\xba\x03\x99\x54\xe6\x7b\xde\xca\x57\xac\xad\x39\xc0\x8f\x3f\xd3\xe0\x44\x9c\x25\x2c\x76\xee\x29\x63\x49\x37\xc8\xb8\x10\x31\x71\x05\x23\xee\x5a\x5c\x28\x4e\x60\xf8\xe2\xa7\x2b\x2f\x0f\xc8\xb8\x32\x0a\x8c\x86\x05\x35\x78\x2d\x39\x68\xd3\x69\xb1\xa0\xbe\x59\x05\x1b\xdf\x9a\xca\x44\xc6\x78\x5f\xc1\xa1\x5d\x18\xbc\xb7\xeb\xe8\xca\x04\x0f\x1d\x2a\xa5\x8d\xc1\xca\xa2\x86\x61\x3c\x97\x49\x15\x12\x53\xb7\xaf\xe5\x05\xee\xcb\xba\xb9\x83\xaa\x9c\xee\x43\x64\x2a\x30\x46\xb9\xe2\x52\x15\xb3\xe3\x71\xf4\x65\x2a\xd5\x58\x9e\x2b\xf8\x29\xc7\xaa\x4d\x1b\xf4\x20\x4f\xc3\x0d\x00\x82\x32\x32\x6d\x82\x9a\x1f\x61\xa4\x18\x36\x3c\x19\xd0\x38\xa1\x9e\x20\xf9\x6a\x7e\xa6\x7b\x4a\xdf\x61\x3c\x27\x80\x26\xce\xbc\x60\xd3\xa0\xaf\x54\xc3\xc7\xd7\x07\x54\xe2\x36\x67\x7c\x78\xc7\xda\x88\x90\x41\x28\x8c\x00\xd6\x72\xb3\x5c\xff\x58\xde\x58\x08\xc9\x0e\x0b\x14\x0e\xd1\x94\x41\xa8\x30\x45\xc6\x27\xbb\x5c\x2f\x02\x32\x91\x2d\xb1\xe9\x5d\x3d\x83\x48\xc4\xca\x35\x92\xb0\x6f\x3c\xe6\x34\x42\x06\x31\x45\x20\x4a\xde\x46\x12\xb3\x42\xcd\xac\xa2\x0e\x3a\xe5\x5c\xb7\xb9\x3f\xc9\xd1\xfa\x96\xa2\xe3\x8b\xc8\x22\xc2\x9d\x7b\xe9\x4d\x5e\x8b\x4b\x55\xe3\x44\x9b\x7e\x8d\x38\xa1\x12\xa9\x16\xd2\x44\x11\xf7\xe5\x7b\x57\x50\xe1\x24\x8d\x84\xd5\xe4\xb7\x6b\x90\x9b\x5a\x9c\x52\x86\x48\x3e\xe3\x0b\xfc\xcc\x3f\x4e\x5f\x58\x65\x7f\x1d\x0b\x73\x1a\x1b\xfb\x32\xec\x75\x1a\xfd\xcf\x99\xbf\x06\x9a\x1a\xe8\xce\xd3\x7a\xb6\xb8\x5f\xfd\xd7\xf2\xef\x2f\xcb\xf5\x5f\x0f\xb3\x3f\x3b\x0b\x68\xe0\x94\x33\xf4\x12\x74\x22\x93\x5f\x27\xd0\x9c\x8a\x14\x53\x4e\xa3\x93\xd9\x43\xcf\x71\x0a\x01\xae\x1d\xd0\x1c\xb0\x89\xe2\xfe\x1e\x84\x9a\x77\xd1\x11\x3a\xae\x7f\xd1\x70\xe5\x81\x30\x92\xaf\xce\x27\xf1\x1b\x14\x05\xfc\x3b\xaf\x47\xa1\x2d\x0f\x04\x60\x29\xe9\x58\xee\xc3\x60\x90\xb7\xf3\x40\x29\x14\x14\xab\x78\xa1\xca\x93\xa5\x08\x7c\x19\x21\xf0\x00\x42\x54\x68\x59\x1e\xf3\xfd\x89\xdb\xa6\xc2\xa8\xcb\xc1\x03\x2d\x99\x81\x89\x16\x12\x8e\x73\x68\xe6\x1f\x66\x57\x1c\xae\xd6\x3c\x24\x0a\x27\xf3\xfc\xf2\x61\xc0\xa2\xf5\xfc\x63\x39\x2e\x13\xf1\x90\x12\x15\x0d\xaa\x34\x57\x12\xd6\xed\xa0\x30\x0e\x3a\xfd\xa3\x76\xf9\x34\xfd\x0c\x7f\x5c\x81\x79\x27\xe6\x97\x8f\x39\x97\xaf\x9e\x3a\x08\x3c\x4a\x9c\x0a\x0b\x2e\xe6\xd6\x7a\xea\x19\xaa\x71\x4b\x6a\xdc\xeb\xe1\x71\x48\xd1\xc5\x66\xb7\x87\x02\xda\xfc\xea\x11\xde\xef\xca\xaa\x86\xcd\xa1\xbc\x9e\x20\xc3\xe7\x12\xab\x98\x80\xcb\x2a\x7e\xe6\xc5\xba\x0d\xb2\xdc\x25\xc5\x90\x5a\x6b\x39\x8c\x74\x6f\xd0\x8e\x65\xf0\x86\x8d\x61\xe4\x97\xdf\x83\xf2\x78\x42\x00\x3b\x0e\x55\x79\x84\xa5\xca\x9b\x72\xd4\xa1\xe7\x09\x05\x6c\xce\xb9\x96\xc4\x58\xd6\xc1\x0d\x93\x09\xce\xed\x07\x38\x95\xf7\xbc\x50\xbd\x44\x99\x33\x62\xa4\x12\x76\xd6\x38\x60\x7e\xf9\x68\x87\xdc\x96\xd5\x82\x17\xea\x6a\xf5\x71\x9f\x0a\x59\x62\x8c\x51\x65\x05\x68\x29\x8f\xaf\x8c\x2d\xec\x8f\xc6\x46\xa9\x93\xda\x34\xb3\x0a\x1b\x15\xff\x4f\x42\x20\xd0\xee\xcf\x58\xcd\x3e\xf1\x57\xab\xc6\x31\xd4\x41\x8c\xdd\x38\x1d\xc4\xa6\x6c\xbd\xbe\x14\x68\x7a\x8c\xfc\xf8\xd1\x25\x66\x91\xa9\x9e\xb5\xf9\x53\xaf\x9c\xee\x79\xd2\x6e\x58\x9c\x86\xb8\x4d\xdb\x89\x66\x2b\x7c\xdb\x43\x05\xf5\xa1\x5b\xd0\x79\x26\x02\xdc\xf6\xd6\x4b\x54\x77\xdc\xbd\xac\xef\xdd\x21\x4e\x24\x06\x3c\xf7\xe5\xbe\x57\xa8\xb3\xac\xbf\x49\x8a\x08\xe7\x51\xc8\xba\x14\xeb\x5a\xae\xd0\x0e\x13\x11\xe0\x6d\x2e\xcf\x50\x7c\xcb\x75\x1b\x2d\x9f\x36\xbc\x68\xf8\x68\x32\xc8\x34\x64\xf6\xcd\x5b\xcc\x9e\xcc\x84\x72\x57\x07\xd4\xd0\x6d\xb1\xcb\xe8\xeb\x58\x1c\x92\xd4\x00\xbe\x6b\x18\x83\x21\x3e\x79\x3c\x60\x01\xad\x16\x56\x58\xec\xfd\x9b\x02\x3a\xc6\xf0\xa3\x7c\xf3\x05\x19\xae\xa3\x18\x85\x47\x37\xfc\x0d\x6c\x71\x6a\x7e\xf9\x40\x75\x10\xf5\xef\x4f\x66\xa0\x96\x0a\x8b\xd1\x26\x4c\x46\xff\x83\xc7\xbe\x7f\xe9\xe8\xbd\x33\x9f\x12\x34\x54\xe8\x0d\xba\xdb\x40\xe3\xed\x1b\xfe\x7e\xe1\x47\x6f\x1a\x3b\xc6\x52\x08\x1a\x65\x19\x71\x2b\xd1\x27\x2e\x24\x20\xa8\xd0\xc6\x3f\x1f\xc0\x55\x87\x96\xcd\x61\xe6\x5c\x05\x41\x84\xc4\x50\xc6\xb1\x41\xb0\xad\x00\x36\x88\x73\xea\x89\xaf\x0f\x1f\xbb\x08\xa9\x01\x24\x6d\x5e\x16\x8b\xe5\x66\x63\x44\xf9\xdd\xd9\x22\x2a\xb1\x4a\x62\x81\x5b\x23\x67\x3f\x10\x91\x08\x51\x0f\xc7\x36\xa8\xd1\xa3\xb5\x8d\xd1\x2f\xd7\xc4\x35\x11\x07\x14\xb3\xe3\x3e\xe3\xed\xd6\xb8\xbb\xf4\x24\xff\x40\xc4\xca\x90\x09\xe0\x5f\x17\x7e\xec\x8a\x2e\x3d\x7c\x7c\x3f\xa6\x15\x09\x89\xd1\x4a\xef\xf1\xc7\x6a\xb3\x7a\x7a\x5c\xcc\x36\x77\x18\x5e\xb9\xd3\x25\x49\x88\x84\xe8\xf3\xc1\xac\x1f\x35\x3f\x02\xa2\x97\xfc\x80\x4c\x60\x04\x70\xe8\x19\xba\x4c\x69\xba\x06\x76\x4f\x11\x2c\x48\x5c\xec\x7b\x97\xef\x0f\x50\x37\x9f\x52\xe9\x44\x96\x70\x6e\xa1\xb8\x76\x93\xfa\x89\x3e\x46\xe5\x71\x3c\x50\x13\x6c\xf5\x9b\x79\xf6\x3b\xc2\x8a\xe0\xa9\xe0\x4e\x88\xe8\x58\x8e\x1a\x78\x82\x73\x8e\x5a\x64\xc6\xb6\x63\x5e\x5e\xf6\x87\x66\x5a\x71\xee\x3f\x5a\x05\x05\x57\xa6\x9d\x64\x9a\x63\x36\xe0\xaa\x7b\x19\xb2\x50\x24\xc0\x57\xab\xf9\x38\x83\x03\x7e\x08\xc5\x32\xe4\x06\xe2\x57\x6f\xf8\x48\x38\x11\x84\xe2\x22\x8e\x3c\x4e\xf9\x7f\xb8\x40\xff\xee\xdf\x29\x39\xf3\xe9\xff\x73\x57\x23\x23\xe7\x09\xda\x18\x3f\x86\xae\xe1\x2c\x94\x8e\xb8\xf4\xfd\x2b\xdb\x92\x9c\x43\xb3\x2a\xae\x02\x13\xa1\x74\x8c\xba\xfd\xb9\x2c\xdb\xb3\x20\x2e\x02\x95\x9a\xa9\x97\xa6\x07\x01\xa9\x59\x02\x6f\x91\x13\x63\x82\x75\xb7\xce\x77\xec\x59\x01\x4a\xa2\x64\xda\x81\xd7\xcb\x42\x41\x0f\x6d\x29\x74\x12\x6b\xe5\x2b\x02\xdf\x78\x8d\x6d\xbe\x27\xed\x0c\x8f\x07\x31\x9d\x24\x32\xc4\xb6\xe7\xbb\x6b\xbd\x3d\x57\x79\x21\xdb\x80\xe6\xbe\x94\xaf\x16\x3b\xe7\xc5\xe9\x41\x12\x1d\x62\x6c\xde\x2e\xcf\xfd\xf7\x4d\xd2\x30\xcb\xdc\xda\x6d\xde\x92\xbe\xf0\x91\x1b\x24\x29\x96\xbe\xed\x84\x99\xad\xd6\xed\xae\x7f\x6e\xba\x4a\x8f\x1d\x18\x10\x1a\xf4\xac\x15\xca\xf2\xb8\xd2\x8f\x00\x5d\xd5\x5e\x06\x11\x41\x80\xbd\x21\x0f\x0d\x5a\xfa\x32\x48\x09\x2a\x0c\xcd\x72\xa3\xfb\xdc\x2b\x32\xc9\x80\x43\x64\xf9\xa7\x9b\x33\xaf\x5e\xad\xe4\x9e\x1a\x95\xe1\x64\x00\x01\xf2\xf2\x7c\xac\xb6\x28\xd5\x27\xb1\xb5\x0c\xb4\xc2\x52\x9c\xe4\xe7\xde\xb3\xea\xf7\xd6\xda\x21\x58\xb6\xb8\xa9\xf8\xfb\xc2\x2f\x32\x32\x4c\x22\x74\x9f\x2b\xeb\x53\x2f\x2a\x92\x21\x24\xa1\x45\x2a\xd5\x17\x51\xcb\x2a\x17\x50\xd5\x9b\xbc\x90\x70\xcf\xeb\xe6\xae\x8f\x33\xb2\x1f\x89\x78\xcc\x93\x1e\xd4\x13\xae\x7b\x9b\x32\x02\x85\x0c\xe7\x52\xeb\xfa\xda\xc6\xda\x0e\x8a\x89\x41\xeb\xc2\x2f\x13\xcc\xed\xe4\x14\xd8\x7f\x10\xed\xb8\x4f\x46\x02\x75\x91\xa0\xac\x11\x2e\x77\x53\x95\xfe\xf7\x27\x81\x51\xdc\x7b\x68\x77\x64\xb8\x9c\x06\xcf\x24\x89\x09\x96\xcb\x76\xbb\xd3\xe5\x78\xcd\x13\x90\x49\x26\xe3\x8e\xec\xea\xbb\xc4\x79\xb1\x6f\x83\x76\xa7\x28\x0d\x32\x0d\x94\x2b\xd4\x6e\xde\xf9\xb4\x21\x11\x48\x46\x24\xce\x2d\x4c\xed\x36\x0d\x9c\x13\xf7\x79\xa6\x4d\xe9\x55\x56\x65\xcd\xf3\xca\x3a\x07\x6e\xd0\x48\xb5\x6b\xa2\xca\x8c\x30\xc4\xa6\xaf\xd7\xfd\x67\x96\x05\x19\x11\x4e\x38\xf7\x72\x54\xa6\x6d\x36\xfc\xea\x4c\x86\x18\x51\x9f\x7d\xf0\x21\xb9\x30\xcc\x1c\x57\x82\x1a\x33\xed\xa6\x70\x15\xee\xa3\xd2\xe0\x31\x96\xbf\xf8\xe9\x7c\x84\xd4\x9f\x52\x27\x59\xe2\x5f\x1e\x97\xa0\x4c\x6e\x99\xdd\xff\x8d\xca\x67\x52\x24\x11\x76\xd7\xf8\x7e\x9f\x5f\x8a\x7d\x7e\x5b\xf1\x7a\xf4\x36\xcb\x40\x60\x15\xd3\x57\xa0\x86\x6f\xa1\x94\x26\xed\x97\x65\xd1\xf0\xbc\xf8\x04\x6b\x2a\x95\x30\xca\x54\x1b\x44\x02\x7f\x99\xc4\x4a\x25\x34\x16\x69\x36\xcf\xcf\x1b\x64\xf3\xcd\x7e\xdf\x58\x92\x90\xc6\x88\x42\x3a\x9a\x05\x2d\x2f\x8d\x05\x8e\xbb\x4c\x50\x5c\x5a\x23\x3f\xeb\xc8\x60\x56\x23\xa3\x94\xd2\x2d\x38\xa0\x63\xec\xa6\xee\xf6\xd0\x60\x99\x1b\xd4\x73\x79\xcc\xe5\x87\xd1\xf3\xec\x5f\xb0\x8d\x89\xa5\xce\x28\xd2\x3f\x2d\x96\x60\x48\xe1\x0c\xba\xbb\x9f\x8e\xb8\x7d\xff\x08\xdc\x53\xd0\x9c\x61\x20\x9b\xcb\x2b\x23\xc6\xcf\x0a\x18\xd7\x5b\x98\xd4\xdc\x28\x4e\xe6\x08\xb1\x1a\x6b\xd0\x80\xd4\x22\x49\x0d\xc5\x40\x0d\xc9\x07\x8a\x04\xdc\xb8\x1c\xe2\x82\xfd\x08\xfb\xb2\xc9\x8d\xe7\x98\x11\x1f\xf5\xc3\x24\x2e\x2c\x3a\xaf\xe0\xbe\x6c\x1a\xa8\x3e\xfa\x50\x5c\x45\x22\xd3\x6d\x3b\x57\xa5\x1a\x10\x27\x69\xd0\x0d\x91\x4e\x6c\x08\xef\x53\x1b\x4d\x5f\x79\x76\xba\x5f\xa4\x48\x1c\x22\xac\xb4\x80\xf7\x6f\x17\x21\xa0\xea\x94\xc4\x40\x91\x44\x22\x66\xa7\xe0\x4d\xfe\x06\xa8\x53\xb5\x7b\x83\x2a\xd7\x1f\x03\x34\x48\x7f\x89\x51\x44\x86\x98\x87\xbe\x57\xb9\xeb\x2a\xba\x23\x9a\x4a\x83\xda\x57\x00\xa7\x91\x08\x15\x28\xca\xb8\xd5\x0b\xb5\xab\x92\x33\x8b\x99\x98\x10\x8a\x66\xe6\x76\xa2\x5f\xf5\x4c\x1a\x2d\x9f\xf6\x99\x0c\x2b\x83\x8a\x4a\x8e\x02\x61\x73\x68\x4c\xf1\xb0\xfb\xda\xe9\x1a\x9b\x0a\xd2\x10\x85\x82\x76\xa7\xdc\xa9\x9c\x8f\xde\x8c\xc1\x23\x57\x61\x60\x64\x61\xc4\xe5\x63\xdd\x48\x77\xe7\xc2\x54\x38\x8d\xbd\xe7\xb2\xe1\x4d\x39\x78\xe1\x55\x44\x12\x24\xfd\xac\xea\xd5\xe2\xa9\x1e\x40\xd6\x55\x04\x21\xf2\x85\x17\xfc\x75\xd0\xd5\x51\x31\xf5\x0d\xfc\x35\xd4\x97\xe3\x7f\x5c\x91\x73\x9f\x4f\x0d\xf2\xeb\x5c\xc1\xbe\x9d\x73\x58\x30\xa9\xfd\xd9\x79\x82\xd5\x9e\xed\x5f\xcf\xcb\xdd\xf2\xcf\xe7\xfb\xa7\xf5\x72\xbd\xbb\x5d\x2f\x57\xdf\xee\xb6\xcb\xb5\x1f\xa6\x12\x73\x75\x57\xac\xd7\xdf\xbd\x55\xc3\x8b\x49\x62\x03\x54\xc5\x2a\x9d\x93\x89\x76\x5f\x92\x52\x42\x8d\x33\x5e\x5e\xac\x64\x89\xab\x4c\x1f\x90\xa1\xd2\x54\x66\x72\x68\xd8\x39\x9d\x74\xab\x94\x31\x14\x27\x38\x5f\xea\x6b\xa9\x95\xe1\x25\xb1\x50\xe1\xe6\xb8\x7a\x5c\x3c\xb9\x2f\x62\x3c\xa5\x96\xfe\x88\x90\x86\x09\x90\x8b\x62\x22\x08\x3a\x71\xfe\x07\xa8\xf9\x0f\xf3\x8e\x8c\xaa\x56\x2a\x93\x46\x9e\x57\x5c\xaa\x62\x0d\xed\x8f\x1b\xd0\x0b\xbb\x2b\xc9\x54\x88\x49\xcd\x0e\xaa\xaa\x87\x18\x1a\x4e\x6d\x4e\x32\xf0\x0a\x68\x27\x70\x99\xd5\xe0\x1f\x37\x94\x0b\xc5\x2c\x82\x76\x66\x68\x0e\x56\xad\x69\x5b\x8e\x9b\xa2\xe3\xf2\xf4\xe0\xa7\x72\xc9\xb1\x84\x71\x33\x9b\x7c\x33\xae\xf7\x0c\x25\x78\x82\xf7\xbf\x76\x62\xba\xa0\x54\x46\x30\x79\xda\x15\xe5\x29\x2f\xbc\xe3\x1d\x28\x05\x3c\xb0\x44\x94\xef\xcb\xbb\xa7\x7b\x54\x50\x7c\x7e\x7a\x72\x45\x17\x05\x24\x44\xba\xb2\x55\xab\x1a\xec\x92\x0a\x38\xc1\xb4\xd6\x8a\x69\xed\x8c\xb0\xdc\x29\x6f\x1a\x50\xeb\xf2\x38\xca\x07\x15\x08\xae\x4d\x47\xe4\xe3\xcf\x82\x9f\x86\x3b\xb2\x02\x48\x48\xdc\xb9\x70\x7e\x56\x02\xef\x2d\x6f\x40\xa4\x42\xff\x55\x87\x46\x9a\x52\x2a\x05\x20\x2a\xc3\x3a\x6e\x5e\x7f\xff\x90\x4e\xb8\x77\xb8\x8b\x40\x40\x03\x61\xbb\xa1\x05\x6a\xb9\xc3\xaf\x6d\xe9\x9e\xdb\xf0\x67\x40\x90\x18\x62\x52\x1b\x5b\x7e\x2f\xf3\x57\x98\x16\x18\x1d\x7f\xc8\x9a\x2f\xf2\x63\x05\x5c\x7d\xac\x8a\xeb\x0e\x14\x04\xc0\xb1\xf4\x90\xd7\x6d\xc2\x73\xc7\xdf\x86\xf1\x3f\x44\x01\xe0\xc3\xd8\xf5\xa4\x41\x06\xdb\x42\xfc\xc9\xb7\xc7\x91\xe1\x3f\x6f\xff\x7a\xf9\xfd\x04\x82\x38\x02\x24\xae\x96\x85\xb1\x65\x18\xd0\x8a\x47\x75\x58\xea\xf7\x35\x88\x63\x99\x19\xf9\xc0\x95\x7f\x9b\xa1\xfd\x1b\xf7\x68\x90\xb5\xb5\xe9\x1a\xfd\xee\x18\x40\x07\x3d\xf5\x22\xd3\x1c\xef\x35\x12\x20\x09\x22\xc4\x23\x1e\xf2\xfd\xc1\x10\x0d\xdb\x0c\xb4\x0f\x02\x85\x24\x4e\x42\x47\x9e\x9b\x39\x6d\xc1\x7a\x5b\x3e\x1f\x3d\x81\x14\x12\x11\x60\x25\xc9\x2a\xe8\x3e\xe0\xbb\x60\x6a\x12\x76\x44\xaa\x23\xf4\x88\x79\x58\x3d\xee\xd6\xcb\xfb\xe5\x6c\xb3\xdc\xf5\x08\x5a\xc0\x88\xa2\x56\x23\x51\x1e\x40\x5d\xbc\xc9\x3d\x00\xa3\x19\xee\x30\x37\xbc\x29\x6f\x96\x7f\xfe\xef\x56\x69\x60\x29\x09\xb9\xf7\x8f\xda\xb7\x9f\x78\xd2\x8e\x5c\x53\xa8\xd5\x74\xf3\xd9\x2d\x51\x90\x25\x46\xb7\x6f\x8f\xd4\xcd\xd1\xcc\x15\x71\x46\xba\xe0\x1a\xf3\x82\xea\x63\x1a\xbf\x68\x3f\x21\x03\x82\x31\x9c\x69\x6f\x6c\x79\x3d\xe2\x05\x82\x0a\x0c\x49\xcb\x35\x58\x67\x37\xee\x76\x00\x35\x40\x99\x3b\x7e\xe0\xbd\x5c\x03\x20\x60\xb8\x4f\x9b\xde\xcf\x74\xb0\x0c\x10\x27\x18\x6c\x60\x5f\x6f\x25\xcb\xf6\x04\xd3\x2e\xe8\x00\x90\x28\xaa\x3b\x63\xbd\xbf\x5f\x72\xf9\x8a\x86\x86\x86\xbd\x31\x99\x29\xb6\xbf\x4c\x22\xef\x21\xdf\xf3\x9f\xbc\x19\x80\x08\x41\x83\x51\xe8\x01\x95\x37\x98\x3a\x0f\xdf\x19\x33\x4a\x13\x6a\xea\x96\x88\xcc\x33\x8a\xe7\x3d\x8f\x20\xd0\x24\x34\x82\xeb\xc7\xbc\x69\xb8\xce\xdb\xb4\x7a\xc1\xcf\xf5\xe5\xd8\x21\xbf\x26\xc5\x92\xa6\x1e\x84\x26\x61\xa6\xed\x83\x50\x1f\x1b\x18\xd1\xa2\xb4\x13\xf1\xf6\xb2\x22\x17\xe3\x66\x3d\xf8\xd1\x9a\x66\x41\x6c\x79\x00\x98\xe4\xae\xfb\xb0\x82\x7e\xb0\xa7\x29\x0f\x31\x0d\xfb\xeb\xe9\x25\x5b\x3c\xad\x1e\x07\x4b\xcd\x60\xe5\x18\x5e\x26\xe5\x02\xc1\x65\x67\x44\x86\x99\xf3\xdb\x43\x41\x10\x01\x0c\x15\xb8\x9e\xaa\xc7\xb2\x3a\x8d\x97\x03\x1d\x24\x0a\x53\x0f\x6b\x86\xb1\xb4\x69\xb7\x3f\x91\x50\xd8\xff\x92\x97\xaa\x7a\xbc\x9c\x9e\xb4\xad\xd4\xfa\x1b\x1f\x5a\xe9\x63\x33\xcd\xbf\xe7\x4d\x93\xf7\x0e\x82\x11\x74\x74\xcc\x5f\xa8\xd6\xd6\xf6\xd9\x8d\x88\x24\x17\xce\xe4\xcd\xec\x77\x33\xdd\x0c\xe1\xa9\x3a\x26\x41\xc6\x7c\xe6\x5b\x7d\x0c\x63\x60\x1d\x33\x63\x90\xea\x2b\x53\xc8\x70\xf7\xd7\x10\x33\xb0\xe6\x2c\x0d\x3f\x7e\x2b\x4b\x4b\x5d\xe8\x0a\xc6\x3a\xce\x14\xb1\xd8\x72\xcc\xc5\xab\x01\xb5\xc4\x0d\x12\x46\x83\xaa\x02\x9d\x3b\x77\xa8\xe1\xeb\xa9\x63\x30\xfc\xa9\x0a\x6a\xd9\x2e\xa7\xfd\xb4\x45\x27\x14\x90\x76\xa0\xf8\x07\x52\xa0\x71\x39\x75\x5c\x53\x9d\x06\x86\xa8\x3b\x3b\x9e\x0f\xdc\xa0\xe1\xf0\x35\x1e\x3e\xab\x54\x82\x55\x1c\x71\xe8\x90\xd1\x15\x30\xca\x31\x02\xdb\x42\xdd\x20\xd2\xe3\xbd\xc4\x5e\xbe\x41\x16\x8f\x74\x68\xfe\xa7\xff\xfe\x47\x4b\xaa\xce\x08\x45\xac\x30\x56\x13\x1c\xec\x66\xe0\xbc\x39\x72\x87\x04\x9d\x05\x0c\xe1\x8e\xb7\xfc\x22\xc7\xd8\x63\x9d\xc5\x32\x31\x56\x0e\x06\x0a\x67\xda\x2e\xde\x90\xdf\x68\xb2\x5a\x1a\xc0\xf0\x93\x92\x18\x2d\x8c\xed\xcb\x7c\xd9\xbe\x56\xee\x5e\xcb\xc0\xa4\x84\xa7\xbc\xb0\x71\xcf\x6d\x59\xcd\x8a\xda\xeb\x2e\x83\x96\x42\x84\xa1\x27\xb0\x28\xfb\x2d\xa3\x9b\x2d\x21\x42\x9a\xc8\x80\x5d\x69\x11\xc3\xd3\xf7\x46\x82\x69\x35\xe0\xec\x59\xdf\x3c\x8e\x4e\xa8\xc2\x08\xdf\x96\x9b\x8f\x82\x9f\x72\xb9\xf9\xfe\x2b\x18\x8f\xc8\x28\x35\x75\x02\x59\x2a\x0b\xf3\x1a\x5f\x16\x10\xc0\xd5\xe9\xf9\x50\x42\x91\xff\xba\xbd\x14\x6a\x88\x0b\xd5\x10\x64\x91\xf4\x04\xa0\xdb\xaa\x3c\x99\x22\xb2\xba\x8e\x92\x34\x24\x11\xb6\x64\x57\x85\xce\x8b\xbc\xf9\xb8\x2b\x2f\xd5\xfe\xc8\x7d\x6b\x57\x6b\x1a\x25\x16\xb3\x38\x7e\x36\x5f\x47\x69\x5a\x07\x69\xdc\x91\xf6\x9f\xab\xf2\xd7\xc7\x40\x9b\x62\xb4\x9e\x6a\x61\x34\x2a\xb6\xdb\x6d\x7f\xff\xd0\x5a\x33\x66\x6c\xc3\xcf\x2f\xe7\x41\x55\x42\x13\x12\x68\x0d\xbd\x37\xbb\x7d\x27\xba\xae\x83\x26\x24\xe2\xa8\x26\x73\xe6\x55\x93\xcb\xfc\xcc\x0b\x63\x76\xbc\x98\x36\xbb\xed\x5f\xbf\x26\x24\x31\xe6\x16\x6d\x88\x99\x17\xfb\x9d\xe4\x95\xda\x5d\xce\x55\xbe\x3f\x34\x3b\x2b\x1b\xce\xdc\x58\xc6\x4d\x89\x0b\xb7\x76\xd4\x2b\xb6\x47\xa8\x10\x21\x73\xe4\xd6\xda\x18\x7d\xbc\x95\x12\xaf\x74\xea\x46\x68\x12\x87\x46\x10\xa2\xd3\x5a\x71\x8e\xaa\xff\x49\x9e\xac\x49\x1c\x1b\x21\xe1\xd3\xc0\xe5\x4c\x93\x38\x31\x48\xa5\x36\xe1\xb2\xc5\x04\xa4\x31\x55\x3e\x73\xd5\x24\x96\x21\x37\x58\x52\x34\x12\xb5\x4f\x7c\x58\x12\xd7\x24\x49\x35\xd6\x70\xe7\x79\x23\xdb\x58\xe2\x72\xf2\xa1\xa3\x26\x49\x96\xe1\x86\xe3\x76\xcf\x6d\x39\x87\x02\x10\x15\xea\xc0\xed\x9a\xa4\x84\xa3\xe4\xeb\x7b\xde\x1c\x72\xfb\x5a\x59\x19\x6d\x3b\x82\x65\x99\xb6\xcc\x73\xeb\x67\x66\x82\x72\x1b\x21\x6b\xc2\xb8\xe9\xa8\xa3\xe4\x51\xd9\x5b\x2b\xff\x11\xfa\x21\xe0\xa9\x7a\x73\x68\xfa\x4d\xb5\xd1\x2d\x6b\x07\xea\x1e\xa7\xcf\x2c\xff\xcf\x50\x19\x06\xf6\xb0\xe8\xa4\x49\x46\x53\x6a\xb5\xbf\x67\x9f\x4a\xcc\x7c\x91\x88\x6a\x92\xc5\x42\x0b\x57\xff\xd9\x40\xa1\xe6\x9f\x5c\x59\xc6\x95\x51\x2e\xad\x78\x5e\x3c\x0c\xcb\xc8\x9a\x64\x42\x51\xe5\x85\x87\x9f\x2b\x98\x30\x9b\x6f\x47\x81\x99\x10\xa8\x1e\xf7\x93\xbf\x41\x3d\x95\xdc\x69\xc2\xa9\x31\x4b\x16\xb9\x52\x50\xa1\xae\xbd\xc7\xb2\x6a\x22\x12\x6a\x2a\xf7\x46\xf4\x72\x89\xc2\xca\xca\xe8\x7b\x0f\xe7\x87\x50\x0c\x69\x1c\xef\xbc\x68\x67\x91\x3b\x81\xcc\x22\x57\xf5\xf8\xdb\xa5\xca\x6b\x65\x5b\xdd\x7f\x0c\x6e\x8d\x54\x21\xd6\xee\x67\x7e\xfa\x5f\xc9\xa7\x0e\xaf\x5a\x85\x31\x78\xc1\xfe\x2e\xdb\xf1\x79\x88\x26\x8a\x67\x11\xae\x44\x65\x79\x2c\xb5\x5e\x15\xb2\x82\xae\x4e\xa8\x09\x28\x12\x5a\x6e\xde\xf7\x5c\xbe\x3e\x69\x3d\xd1\xa0\xd6\x44\x93\x08\xe3\xf7\x4b\xe1\xbd\x3e\xbf\x42\xd3\x5c\x3f\xcc\xf6\x71\x6a\x87\x46\x50\xd0\x05\xf2\x9a\x92\x40\xa2\x48\xa6\x85\xba\x39\x5e\x83\x0b\x80\x35\x25\x3c\x94\xb6\xfa\x55\xf3\xa3\x69\x1a\x0e\x50\x38\x9a\xd2\xc4\x30\xb7\x51\x41\xb2\x90\xc3\xb5\x92\x46\x56\x58\xa4\x6a\x17\xc0\xb0\x17\x5c\x6b\x1a\xf3\x00\x93\x7a\xd3\xc5\xff\x7a\x59\xa4\x31\x4f\x7c\xc7\x7a\x71\xb7\x6b\xc3\xfa\x5d\x38\x50\x84\xd1\x34\xe1\x06\x97\x5a\x01\x8a\x38\xcd\x8c\x27\x7c\xfd\x89\xd6\xb7\xa6\x69\x68\xfc\x78\x2f\x45\xed\x65\x36\xf9\xb4\xd5\xbb\xa6\xa9\x20\x88\xfe\xc2\xea\xfc\xe8\x16\xa4\x22\xcd\x54\x47\x0d\xb9\x12\x77\xd6\xb4\x8d\xb1\xda\x37\xef\x66\xf5\x6d\xf5\x7c\x3f\x5b\x2c\x6f\xdc\x67\x19\x51\x68\x78\xf8\x7a\x51\x65\x3d\xfa\x14\x4b\x15\x6a\x3b\xd5\xa8\x4a\x38\xcc\x38\xdc\x10\x11\x27\x56\xc5\xe1\x7b\x21\x9f\xa1\xc2\x26\x46\x0d\x1d\x71\x50\x53\xa6\x29\x91\x9d\xd2\xc3\x27\xf8\xff\xd1\xef\xcd\x68\x10\xa3\x72\xc2\xa5\x90\x87\xa7\xcb\x10\x2c\x69\x4d\x3e\xdb\x6c\x24\x41\xdb\x84\x6f\x7c\xcf\xab\xbc\x5f\xea\xd0\x94\x07\x3c\x0d\x1d\x8d\xed\x7c\x2c\x3f\xa0\x9a\xbd\xed\xd7\x1c\x89\xfd\xd3\x5f\xca\x23\x49\xfb\x06\x38\x3d\x6d\x8c\x7a\xa4\xa1\x37\xbc\x53\x9c\xa5\xa8\xaa\x79\xb6\x75\x8e\x07\xfe\x0a\x33\xf5\xf6\x05\xcd\x4e\x53\x41\x21\xa6\x5e\x24\xb1\xbc\x85\xf7\x3e\xb9\x43\x53\xc1\xa4\x0c\xbb\xa4\xb4\x9e\x7f\x8c\xe6\xb6\x10\xc6\xa0\x51\xf1\x0f\xb4\x74\x1d\x3d\x3d\xa1\x35\xbe\x18\xbb\xbe\x82\xe6\x70\x88\x0c\x62\x2c\x66\xdc\x95\x47\xfe\x70\x29\x54\xe9\x4e\x2d\x21\xb2\x35\x8a\xd5\xf6\xc9\x19\xd1\xbb\x83\x20\x64\x64\xa4\xdb\xa0\x7d\x92\x45\xf3\xed\xe2\x3d\xbc\x34\x05\xa9\x81\x0c\x00\x88\xdd\x6a\x4a\x35\x31\xed\xbe\x33\x2e\x58\xbd\x49\x12\x90\x98\x23\x83\x1f\xb5\x68\x9f\xd7\xab\xc5\xb2\x3b\x22\x99\x83\x6e\x56\x5c\x1e\xf3\x7f\xc3\x82\x1f\x8f\x02\x1d\xac\x7b\x39\x53\x3b\xd2\xa8\x72\x99\xd8\x6b\x5e\x96\x47\xe0\x6e\x3a\x04\x54\x45\x19\xf3\x5e\x17\xed\x35\x0d\xee\x45\x10\x6a\xe3\xe8\x68\x66\x69\x05\x03\x6e\x97\x0e\xa2\x90\x49\x61\x05\xbb\x6f\xaf\x0b\xaf\x76\x54\x2c\x29\x52\x6a\x50\xd5\xc6\x28\xb1\xcf\x3f\x0c\x55\x6b\x38\x30\x21\x19\x58\x87\x4e\x8b\xf6\x01\xb4\x26\x9d\x48\xa5\x75\x90\x68\x99\x76\x5a\x79\xc8\x1a\x77\x64\x0a\x1d\xa4\x99\x99\xe6\x0b\x5e\x1f\xfa\x33\x7b\xf8\x7d\x2c\x4e\x71\xad\x79\xcb\xe1\xfd\xf6\x52\x48\xf7\x69\x26\x23\xec\xf9\xe6\xf5\x4a\x96\x3d\xc6\xaa\x3d\x9c\x11\xb3\x02\x2c\x7f\x9d\xf3\xf6\x66\x58\xf1\xf9\xfe\x3b\x18\x64\x21\xe0\x5d\x77\x9e\x7b\x79\xd1\xb5\x19\xdc\x90\x48\x78\x87\x9c\x95\x59\x3c\x83\x64\x78\x7f\x33\xa6\xb3\xd0\xaa\x64\xe2\x67\x87\x4a\xc1\x3a\xe0\x51\xca\xda\x5b\xfb\xfd\xaf\xc5\xee\xc7\x72\xbd\xba\x5d\x2d\x66\xdb\xd5\xd3\xe3\x6e\xf9\x78\xb3\xeb\xa0\xc7\x3a\xe0\x00\xdc\xd9\xb0\x7e\x9c\x61\x34\x47\x04\x49\xcc\x6e\xef\xab\x7f\xa1\xfb\xa0\x60\x0c\x9c\x17\x05\xfa\x77\x1e\xd0\x6b\xfb\xec\x8e\x4b\x9a\x60\xfe\x74\xae\x50\xaf\xe6\x7b\xf9\xf6\x69\xaf\x56\x07\x32\x92\x9c\x39\x81\xca\xba\x19\xfc\x14\x20\x14\xe3\xa0\x36\x33\x71\x98\x2f\xd5\x1d\x04\x69\xd2\xe1\x13\x6f\x83\xc4\x9e\x02\xb1\x0e\x20\x63\x48\x3c\x7d\x2e\xf3\xba\x36\xfa\xc0\xee\x90\x8e\x09\x32\xe6\x17\xf7\xb3\xd5\x83\xf1\xc1\xf8\x31\xbb\xdf\xdd\xcc\xfe\xb2\xb8\x35\x1d\x12\x12\x63\x12\x65\xfc\xdb\x0e\x55\xf9\xee\xe9\x62\x3a\x24\x54\x30\x67\x27\x03\x0d\x57\xbc\xe1\x77\xbc\x3e\x0c\x9e\x52\x48\x45\xc4\xc8\xc8\x39\xea\xcb\x75\x3c\xa4\x52\x60\x32\x82\x84\x15\x2c\x19\xd9\x68\x6d\xa2\x5f\xfb\x75\x20\x11\x06\xda\x90\x7d\xf3\x7a\x63\xec\xa0\x17\xe5\xe9\x7c\x84\xee\xde\x85\x61\x98\xc6\x5e\xfe\xb5\xb9\x54\x05\xa8\xde\x2d\x0a\xc3\xc8\x90\x4b\x3d\xa8\x65\x8d\x50\xee\x95\x1a\xfe\xc8\x50\x52\x4c\x81\x96\xcd\xe1\x52\xc1\xc9\x7d\x3a\x0a\x8d\xce\x89\x11\xd5\xe4\x45\x5e\x0f\x9c\xa6\x26\x4b\x70\xee\xa3\x59\x88\xb8\x53\x1b\xe7\x60\x36\xd6\xef\x83\xe8\x30\x61\x54\x5b\x5c\xce\xf7\xc7\x45\x6f\x61\x0c\xd3\x28\xc6\x47\x0e\x26\x79\xf1\x8c\xae\x1d\x1f\x75\x47\x70\xa8\x12\x3e\xc1\x97\xaf\xf5\xfc\x63\x56\x35\x13\x9e\x38\xa3\x1b\x9b\x0a\xe3\x77\x56\x7b\x4b\x54\x9f\x1b\x85\xa9\x36\x35\xd8\x36\xea\xc7\x7c\x6c\x5b\xae\xcb\xe3\x98\xb2\x3e\xf8\xb5\x8c\x18\x93\x86\x76\x26\xb5\x91\x3e\x72\x87\xa7\xb0\x83\x6e\x7c\x62\xec\xe6\x6d\x83\xa8\xc7\x95\xd4\x21\xe3\x11\xba\x3c\x1a\x00\xe0\xcb\xe6\xc6\xe1\x28\xbb\xab\x67\x22\x63\xa4\xa7\x31\xe1\x59\xe4\x79\x59\xf4\x85\x24\xdd\x70\x88\x11\x62\x66\x15\xb2\x3d\x6c\x6f\x38\x2a\x23\xc6\x08\xe5\xef\x7f\x2d\x16\xee\x5a\x78\x10\xa5\x41\x07\x33\x47\xea\xe9\xf4\xdb\x1f\xf2\x8c\x61\x54\x85\xfa\x90\xa3\x7d\x3b\xe4\x2a\xc1\x8d\xff\x3b\xff\x28\xbf\x6c\xfc\x4c\x35\x58\xba\xea\x9d\x0e\x85\x32\x32\xcb\xca\x92\x4a\x3e\xb9\x18\x19\x18\x8f\x90\x0a\xfe\x09\xb2\xb9\x2b\x2f\xce\xd9\xb4\x3d\x24\x03\xd6\x83\xdf\xf8\xbe\xec\x44\xd7\x5c\x87\x52\x44\xc8\x97\xb4\x0f\xca\xbc\xc8\x5d\xc6\x11\x4a\x65\xb4\x24\x1b\x87\x6c\xac\xe7\x1f\x43\xeb\xcd\xe1\x85\xa9\x58\x62\xc9\x66\xb5\x78\x7a\xe6\x97\xba\x7b\x8f\x15\x28\xdc\x0c\xde\xca\x5f\xb7\x5c\xf8\xbf\xea\x48\xd8\x04\xb4\x53\x55\x42\x55\x29\xb3\x1f\xb9\x4c\x35\x04\xca\xb0\xe4\x04\x85\x32\xb2\x69\x26\xc9\x1e\xa1\xd2\x74\x08\x91\xa2\x16\xb3\x34\x6b\x5e\x1f\xcb\xf7\xdb\xb2\xb2\xd4\x8b\xe1\x0f\xd7\x61\x98\xb1\x7e\x8b\xa2\x50\x6d\x08\xb2\xfc\x75\xe6\x58\x18\x1b\x3f\xb7\x21\x89\x6f\x74\x2e\x46\x31\xa5\xb1\x04\x6f\x6f\xca\xfd\x49\x52\x65\x3e\x15\x91\x48\x20\x91\xdb\x52\xd0\xf1\xd0\xc8\x9a\xd9\x8d\x54\x19\xb6\x8d\x15\x1c\xf9\xc7\x4d\x59\x3c\xf7\xe5\x7c\x47\x67\x0d\x69\xe2\xf4\x65\x6f\x40\x43\x61\x29\x02\x58\x31\x73\x43\x98\x49\xff\xd6\xb9\x3c\x3c\xe6\xfb\x3d\x77\x73\x27\x8a\x88\x8a\x53\xdf\x66\x6a\xa7\xd6\x1a\x30\xf1\x1d\x7e\x47\x14\x4b\x14\x63\xab\x2f\xa2\xcb\x71\xfa\xeb\x45\x14\x69\x89\x5b\xc4\xae\x3d\x53\x99\x8f\x79\xba\x3a\x8a\xc3\xcc\xf8\xcd\xcf\x1f\x6e\xfa\x21\x7e\x14\x0b\x16\x3a\x25\xc8\x2a\x3f\xf1\xea\xc3\xd6\x34\x07\xe7\x8f\x41\x62\x81\x12\x4e\x79\xd3\xbe\xb4\xbc\xc7\x47\xb2\x43\x12\x92\xe0\x84\x43\xdd\xd7\xe7\x4b\xbb\xb9\xe4\x8d\xd3\x3f\xd5\x51\x12\xc7\x68\x65\xd4\x06\x36\x47\xf8\x18\x5c\x43\x9a\x44\xa9\x53\xaa\x5e\x7c\xc5\x6d\xd6\x11\x23\x1a\xf3\xb4\x73\x55\xb6\x71\xd6\x34\xf6\x52\x47\x2c\x91\x3c\xf1\x65\xb5\xc5\x21\x17\xf9\x6d\x59\xdd\x5e\xea\xb1\xc5\x8b\x8e\xb2\x50\x42\xd2\xc9\x96\x19\xbc\xa7\x9d\xa4\x5c\xe4\xc7\xbc\x71\x3b\x4c\x94\xa5\x31\x66\xa7\xb5\x6d\x3a\x6e\x3f\xa9\x2f\x8c\xa6\x48\xc6\xb4\x95\x8f\xbf\xea\x06\xea\x88\x53\x19\xdb\x98\xd9\x58\x00\x8c\x8f\x67\x09\xde\xf9\x3e\x02\x6c\x5b\xfe\xe0\x97\xe3\x6f\xb6\xa4\x88\x0b\x8a\xa8\xb5\x93\x11\x07\xbf\x2d\x2b\x77\xbd\x6b\x68\x1f\x6e\x57\x1a\x64\xee\x13\x90\x30\x13\x24\x9b\xe3\xc6\xb3\xaa\xcb\x92\x23\xae\xcd\x2c\x3a\x77\x84\xfc\xe9\xef\x16\x3a\x55\xc6\xb0\x0b\x2a\xf8\x35\x8c\x1f\x23\x99\x12\x2c\x4d\x2d\x37\x8b\xf5\xd3\x4f\xc7\x59\xb4\x62\x2c\xee\xab\x54\x4c\xf1\x5e\x2f\x0e\x20\x5f\x57\x0d\x9c\x96\xbf\xf2\xfa\x6a\x5a\xab\x84\x63\xa0\x7a\x5f\xee\xd7\x50\x5f\xbc\xd6\x83\x8e\x14\xa7\x48\xbb\xde\x97\x47\x75\x0b\xe0\xff\x2c\x52\x8c\x1b\xb1\xf8\x67\x00\x13\xa3\x53\x42\x94\x60\x3a\x5e\xb5\xa9\x87\xc5\xf3\x4d\xd0\x82\xda\x81\x2c\xca\x86\xad\x34\x93\xa6\xb8\xe3\x32\xe6\x69\x5f\x27\x19\xc3\x45\x7f\x54\x05\x98\x76\x73\xa5\xb6\xa5\x87\x7e\xe1\x66\x3f\x22\x22\xb7\x63\x63\x83\x11\xef\x5b\xd3\x63\xff\x26\xe8\x4e\xa7\x52\xe7\xb4\x77\x3c\xce\xd4\x4a\xd5\xf3\x8f\x36\xe7\x1d\xbd\x18\xa0\x33\xc7\x6d\xdb\xc2\xaf\xf1\x42\xa3\x55\x8a\xbb\xcf\x7c\xbb\xf0\xee\x5b\xf6\x1b\x62\x22\x53\xe4\xd6\xdf\xae\xfe\xf4\xa5\x8f\x98\x0a\x41\xbb\x35\x75\x5b\x01\xaf\x2f\xd5\x90\xe9\xaa\xe3\x40\x4b\xee\xf7\x34\xb3\xe3\x3d\x43\x85\x17\x67\x47\x84\x11\x35\xc2\x1c\x18\x55\xe7\x27\xec\x4b\x85\xfe\x68\x92\x21\x62\xe5\x66\x79\x3b\x7b\xb9\xdf\xee\xd6\xcb\x1f\x4f\x8b\xd9\xfc\x7e\xe9\x07\xa4\xbe\x7e\xd5\x26\x0a\x3f\x7d\x75\x2c\x0e\x05\xc5\x92\xcf\xce\xa9\xe8\x4c\x6e\x0d\x71\x1c\x0b\x54\xcb\x80\x4a\x06\x04\x1b\x0e\xee\x04\xb1\x30\xdc\x49\xd9\xe6\xc1\xc3\x20\x24\x8e\x05\x4b\xf5\x27\x8d\x7c\x3b\x24\x89\xba\x78\xc7\x36\x8b\x71\xdf\x75\x9d\x50\x1d\x27\x31\x55\xb6\x84\xf8\xc8\x4f\x70\xe8\xf2\x85\x01\xec\x49\xc7\x89\x24\x78\xaa\xcd\x6a\xb9\x38\xf0\xee\x27\x26\x92\x38\x11\xec\x2d\xf0\xd3\xed\xa5\x50\x56\x18\xf8\xcb\x72\x5c\x9c\x48\x93\xf4\xfe\x28\x8f\xaf\x75\xfb\x3a\xb8\xb9\x14\xa7\x21\xc7\x84\xf6\xe5\x71\xf3\x74\x7f\xb3\xc3\xff\xac\xdb\x44\xd1\x0d\x60\x81\x01\xe4\x1d\xca\xf7\x87\x8b\x3c\x38\xbe\x50\x37\x57\x98\x30\xfc\x0c\x7e\x3c\xfe\xfd\x02\xd5\xc7\xca\xa7\x5f\x71\x16\x08\x4c\xef\xb7\xeb\xd9\xe3\xe2\x6e\x19\xec\x66\x8b\x45\x67\x33\xd8\x1e\x97\xae\x33\x73\x7f\xff\xc3\x24\xba\x34\x18\xde\x55\x1e\xc4\x28\xb8\x87\x53\xb1\xbd\x34\x3f\x13\x78\x60\x64\xbd\x8b\xb2\x59\x15\xfe\xad\xc2\xc6\x93\x1f\x12\x45\x58\x0b\x71\x6a\x7d\x3f\x0f\xe8\x42\xa0\xfa\xfd\x9f\x98\x43\x18\x1a\xe4\x03\x76\x9e\x4c\xcd\x76\x38\xab\x45\x64\x24\xe0\xe1\x0d\x8a\xc6\xd4\x9c\xaf\xed\xa8\x47\xf7\x5c\xc4\x04\x4b\xd4\x4d\x39\x0f\x03\x0b\x53\x9f\xac\x55\xc6\x82\x87\xd2\x30\xf0\xbe\xbd\xdc\xcf\xd6\xbb\xed\x5f\xcf\x4b\xff\x80\x04\x4f\x33\xdd\x0b\x39\x1f\xe1\xdd\x36\xaf\xa7\xab\x65\x83\xdc\x22\x16\x1a\x50\x5d\xc6\x86\xed\xff\x11\x3c\x54\xc7\x8a\x19\x8a\x9b\xb1\xab\xa9\x8a\x6f\x97\x8f\xf6\xb9\x6f\xab\x8b\x0f\x74\x62\xa5\x15\xd6\xa2\x6d\x03\xca\xbc\x48\x5f\x01\x6f\xa6\x79\xa3\x3a\x46\xe1\x6e\xdc\xf4\x74\xbb\xd1\x59\x65\x6a\x7b\x50\x13\x95\x98\x86\x7b\xbb\xe0\x7b\xde\x8a\x8e\x35\x4d\x05\x75\x0b\xf2\xe9\xdc\xc0\x8e\xf9\x43\x19\x0d\x8c\xa9\x07\xe2\xbe\xd6\xce\xbb\xc8\x08\x96\xdb\x51\x09\xa1\xdc\xa9\x22\xdc\x95\x97\x1a\x16\xbc\x52\xb5\x65\x5f\xb9\x21\x41\x80\x0a\xdc\x7d\xbd\x8f\xc9\x1b\x96\x10\x11\x10\xee\x88\x54\x13\x3b\xe5\xe0\xa1\x24\x44\x88\x54\x9a\x5b\x77\xfc\x30\x35\xfa\xd3\x94\x2e\xe4\xf0\x46\x25\x34\x26\xd2\x65\xeb\xd8\x9f\xbc\x54\xdf\xe1\xe3\x71\x48\x0f\xd5\x49\x90\x68\xca\x9d\x0c\x7b\x39\xf2\x4b\xd3\x49\x48\x82\xd8\x59\x3b\x5f\xce\x6d\x7c\xa0\xa1\xaa\xa0\x5a\x8f\x85\x4f\xdb\xa1\x11\x72\x14\xda\x1b\x2c\xcb\xbc\x58\xb4\xeb\x95\x3f\x26\x30\x17\xa9\x51\xe9\x78\xf0\xf3\x42\xae\x1d\x8e\xfd\x58\x7e\x2c\xca\xa2\x2e\xab\x26\xbf\x9c\x46\x67\x8f\xd2\x20\xf5\xd9\x37\x40\xfd\x54\x74\xf0\x33\x9d\x44\x59\xca\xc2\xab\x2d\x73\xbc\x5b\x26\x91\x0c\xb1\x69\xa3\x80\xab\x63\x5e\x40\x98\xc4\xfe\x0c\x2a\x40\x96\xf3\xe3\x62\x36\x5b\x1c\xf8\xe9\x9c\x97\x45\x47\x1a\xd2\x49\x1c\x09\x6a\x23\xb5\xaf\x2c\x51\x46\x4f\x3a\x4e\x19\x9e\x75\xbd\xbc\x7d\x79\xbc\x69\x03\x99\xd5\xd3\x8d\x3f\x65\x96\x62\x2d\x77\xd6\xbe\x64\x0e\x44\xb3\x38\x96\x17\x65\x5c\x36\x2e\x85\x07\x9c\xe8\x24\xb1\x96\x2c\xb7\xcb\xe5\x6e\xf1\x74\x7f\xbf\x5c\x6c\x9f\xd6\xfe\x20\xd7\xc4\x90\xdc\x2b\xb5\x6b\xf2\x86\x17\xf9\xe5\xb4\x43\x5d\x06\x3f\x44\x1a\x14\xbd\xfb\x9e\x1f\x50\xed\xfd\xed\x4b\x14\xc5\x37\xf8\xf4\x54\xcc\xa6\x25\xbf\x47\xbf\x2b\xa5\x12\x73\x3b\xa3\xec\xd9\x47\xad\xe8\x84\x25\x66\xca\x9c\xf2\x7d\xc5\x1b\xb0\x3b\x23\xd6\xd0\xef\x61\xcf\xe5\xc7\x1a\xce\x57\x4f\x26\x8b\x75\x60\xd4\x4d\x6e\x8f\x1f\x5d\xdd\x2c\xe1\xa9\xe1\xf8\xa3\xcb\x62\x5e\xda\x18\xa1\x87\x08\xd4\x09\x07\x62\x52\x3e\x5e\x18\x78\xfc\x0d\xbc\xc1\xb1\x3c\x43\x65\x6e\xe3\x73\xe7\x8e\xad\x13\xc5\xb2\xd8\xe8\xce\x9b\xf5\xf1\xa9\xb8\x42\x4d\x0e\xe7\x1d\x48\x86\x41\xb6\x6b\x5a\x3c\x96\xc5\xb6\x3c\xbb\xd5\x61\xf2\xee\xa4\x24\x4a\x30\x77\xf3\xda\x1b\xb7\x4f\xeb\xdd\x76\x39\x7b\xb0\x57\x91\x52\x4d\x11\x3d\x27\xbd\x47\xfe\x7f\xb6\x4b\xa4\x41\xcc\x50\x68\x70\xd7\xc6\x04\xf0\xbe\xac\x9b\xfc\xd4\x8b\x53\x2d\xe2\xd3\x0e\x0e\xd3\x04\xd1\xd0\x47\x7e\x29\xe4\xa1\xf7\xba\xa4\x11\x97\x08\x67\xc1\x84\x6c\xa8\x98\xa0\xd3\x38\x8d\x91\xb3\x72\x9b\xff\x02\x5b\x47\xbb\x16\xea\xfe\xfa\x32\x13\x12\x62\xe6\xe8\x80\xa9\x23\x07\xdf\xc1\x1d\x4e\x13\x6a\x02\x21\xc9\x8b\x35\xd2\x20\x5e\xb6\x7f\x3e\xdd\xf5\xab\x5a\x43\xd0\xb8\x4e\x93\x20\xc2\xc6\xca\xc3\x3f\xcb\x63\x91\x8f\xfa\x75\x69\x12\x1a\xf8\xc9\x3b\x0a\x6c\x2f\x86\x4a\x6f\x3a\x4d\x84\x42\xfc\xe6\xd1\xd5\x8d\x77\x6f\x94\xf9\x83\x2a\x75\x68\xea\x36\x94\xf6\x1b\x48\xca\x22\xc5\x53\x2f\xff\x39\xec\x5e\xa4\x2c\x09\x0d\xa3\x62\xb6\x59\x76\x84\x78\x9d\x66\x44\xb8\x35\xcb\x88\xd1\xbe\x14\x39\x7a\x01\x3d\x73\x94\x8e\x40\x0c\x5e\xbf\xa0\xd6\xfe\x6a\x83\x7b\x72\x67\xa0\x29\x12\xb4\x2b\x07\xd6\xa6\xae\x90\xeb\x9f\x72\x46\x59\x68\xb0\x6a\x5d\x05\xc6\x0c\xe8\x01\x00\xfb\x74\x7a\x9d\x66\x41\xe6\x1a\x06\x4e\x40\x70\x84\x72\x49\xb3\xd4\x64\x69\x79\xdd\x46\x8d\x98\xf0\x8c\xa2\x9c\x34\x63\xb1\xd4\x9d\x43\xf1\xe6\x66\x7c\x5c\x0a\x0c\xd7\x1e\x66\x8f\x77\xb3\xed\x76\xf6\xf8\xbc\x7e\xfa\xf3\xaf\xfb\xe5\x9f\xab\xc7\x6f\xdb\xa7\xc7\xd9\x0f\x17\x9a\xa5\x82\x86\x99\xed\xc5\xdd\x97\xf2\xda\x6c\xb5\x1d\x91\x22\x4f\x63\x03\xcd\xe5\xec\x1c\xc0\x7a\x97\x2b\x69\x94\x75\x76\x76\xd3\xc5\xf2\x54\x85\x26\xeb\xad\x2f\xc2\xab\x8f\xf4\xc1\xb9\x3a\x55\x29\xa5\xe0\xc4\x0e\x11\x87\x6e\x2c\x89\xa0\x5a\xa9\xfe\xd7\x29\x69\x9c\x11\x3b\x51\x75\x53\x88\x73\x87\x81\x32\xe3\x5f\x50\xa8\x23\x74\xe0\xc1\x1b\x30\x8a\x12\x9f\x2c\x1b\x5a\x01\x03\xdb\x04\x43\x83\xaf\x7a\xaa\x8c\x6f\x06\x33\xaa\x89\xc8\x3c\x4c\x09\x73\xf7\xfb\xb1\x2b\x88\x66\x21\x8f\x5c\xb1\xc3\xda\xe0\xb8\x03\x6d\x1a\xde\xd9\xdb\x9f\x2e\xa7\x11\x9e\xdf\x8e\x8b\x08\xc5\x44\x66\xb3\xbc\xbf\xdf\x6d\x9e\x6e\xb7\xbb\xfb\xd5\xc3\xca\x85\xe4\x2c\x62\x12\x83\x8c\xdd\x99\xcb\xd7\x07\xfe\x0a\xd8\x10\xf8\xb2\xf8\xc0\x62\x92\x24\xc6\x62\x51\x1f\xe1\x97\x3b\x53\x1c\x02\x42\x7a\x1f\xee\x17\xfd\x02\x10\x8b\x65\xdc\x99\x6d\xa9\xdf\xc3\x23\xec\xc7\xda\x15\x88\xb8\xc6\x88\xe9\x56\x2c\x9b\xc3\x4a\x5b\x35\x8a\xd1\xe0\x50\xa2\xb3\xee\x3c\xbf\x2e\x36\x4e\x3e\x2a\x96\x24\x14\xf9\xfb\xf0\x2b\x1f\xdf\xb1\x24\x53\x58\xcd\xac\x1b\x38\xdf\x96\x97\xea\x8f\xe1\x51\xa9\xd0\x85\xf2\xcc\xab\x1a\xee\x4b\x5e\xa0\xe2\x73\x1b\x4d\xf9\xe5\xf1\x1f\x94\xfc\xb7\x9d\x96\xff\x88\xdc\xe3\x4e\x94\x51\xf1\x50\xd5\xa5\x78\x2d\xba\xd5\x8e\x25\x3a\x45\x55\xfc\x77\x4c\xec\x9e\x8f\xbc\xd1\x65\xe5\xc2\x56\x96\xa6\x29\x35\xa0\x09\x74\x00\x7b\x29\xf8\x3b\xaf\x14\xa8\x87\xd5\xbd\x3f\x43\x9a\x05\x41\xd6\xd9\x1d\xd7\xd7\xa5\x01\xc6\x12\x8a\x80\xca\xb2\x38\x1a\xbc\xdd\xac\x50\x8f\x6d\x1e\xe5\x21\x5a\x2c\x93\x46\xa2\x23\x2f\xf2\x66\x9b\xf7\x3c\x0d\x26\xe6\xae\x60\x1a\xc7\xde\x83\x1a\xeb\x8f\x69\x26\x32\x43\x89\xdf\x43\xb3\x3a\x21\x13\x72\x5d\x96\x4d\x9f\xb8\x3b\x0e\x78\xfd\x79\x65\x90\xe0\xcd\x55\x15\xdf\x97\xc5\x94\xb5\x89\x66\x2a\x0a\xac\x0e\xb1\xeb\x0c\x0f\xed\x29\x34\x53\xb1\x71\x8e\x3c\x5f\xa6\x35\xa4\x34\x53\x5c\x83\x71\x72\xa8\xcb\xa3\x9a\x19\x37\xc0\xbc\x2c\x7a\x44\x5e\xcd\xb4\x92\x58\x4e\xaa\x2f\xf5\x19\x46\x78\x4a\x9d\xd1\x28\x92\xbe\xf0\xb1\x33\x3e\xba\xbb\xb2\x9d\xe0\xbb\x73\x79\xfe\x8a\x42\xa0\x33\xaa\x85\xe1\xfa\xd7\x1b\x24\x91\xce\x47\x55\x95\x2c\x88\x0c\xf0\x60\x27\x8f\xc0\xad\x6a\x9b\x8b\x2f\x06\xbf\x24\x0b\x22\x19\x39\x2b\xc9\xd1\x15\x06\xb1\xf1\x80\x77\x81\xcf\x06\xda\x38\xe5\x7f\xc2\x30\xd5\x59\x18\xc6\x91\x87\xa4\xfd\x28\x1b\x78\x2c\xef\x7b\x9c\x82\xeb\xa9\x91\x85\x51\x88\xfd\xb8\xf3\x91\x7f\x98\xf4\x6a\x73\xe9\x5e\xb1\x6e\x98\x02\x64\x27\xdb\xd2\x27\x25\xc4\xaa\x09\xb8\xab\x8f\xac\x55\x63\xbb\x27\xba\xf5\x71\x20\xea\xae\xb3\x28\x0b\x59\x27\x46\xe8\x7c\x12\xa7\x52\xb0\x2c\xca\x38\x86\x98\xd0\x1c\x78\x7d\x18\x05\x4c\x59\xc4\x99\xb6\xe9\xdc\xcf\x2a\x6f\xe0\xda\xb7\xda\x5f\x77\xac\x12\x6c\x44\x72\xab\x04\x63\x63\xe3\xd1\x53\x89\x55\x86\x0c\x3b\x0c\x0d\x46\xf8\x90\x2c\x49\x39\x16\x29\x56\xb5\xdb\xbb\xd5\xa8\x49\x6a\x07\xa6\x2c\x46\x17\xb7\x1d\x56\x98\x7a\x5d\x87\x2c\x05\x23\xf2\xad\x72\xb5\x28\x11\x67\x39\x39\xcf\x33\x16\x19\xf8\x82\xd1\xe4\xf2\x42\x12\x3a\xcb\x80\x62\xd2\x98\xd7\x26\xc4\xee\x84\x68\x75\x96\xe9\x10\x29\xfe\x0f\xfc\x43\xc0\x33\x54\xed\x72\xd4\x3f\xce\x25\xe9\x4b\x90\xd6\x9b\x86\x37\xb9\xec\x60\x6b\x99\x88\x98\xf0\x44\x46\xcc\xd5\xb3\x41\xb8\x95\x09\x9d\x61\x9d\x08\x4b\x82\xce\x4b\x64\x30\x42\x06\x21\x66\x56\x3b\x05\x0d\x54\xa7\xbc\x80\xbb\x7c\xb2\xf9\x91\x49\x6b\x6d\xb1\x87\x06\xb7\x5c\x5f\xdb\x7c\xaa\xda\xcc\xc5\x5c\xe2\x00\xb1\xe9\x3e\x28\x0c\xfe\x07\x35\x6f\x7c\x9b\xd3\x1e\x54\x34\x44\xed\x52\x9c\x9c\x79\x59\x6c\x64\x3f\x61\x77\x83\x02\x82\x26\x6e\x2f\x45\x3e\x2f\xdf\xfb\x9b\x5e\xa6\x42\x8a\xaf\x25\xbf\x34\xe5\x3c\xaf\x46\x6a\x1f\x3a\x53\x9a\x20\xa6\xbb\x7d\xa5\xd6\xf0\x06\xfc\x38\xd1\x26\x9b\xdc\x18\x33\x1d\x1b\x6f\xac\x63\x9b\x24\x0d\x20\x51\x9c\x48\x8a\x7d\x98\x1b\x38\x42\x03\xed\x36\x60\xfc\x6c\x87\xd7\xcd\x89\xcc\x10\x4b\x5c\xc0\xfb\xe2\xd0\x49\xff\xda\xa3\x41\x40\x30\x4f\x35\x3e\x29\xcb\x7f\x91\xc1\xca\xdd\x6b\x4c\xf3\x20\x62\x28\x96\xb1\x81\x66\x33\xdb\x96\x4b\xff\x5a\x8d\x4e\xc8\x14\xf2\xc7\x5d\x77\x70\x9d\xef\x0f\xcd\x4a\x7b\xee\x9f\xe7\x5d\xf4\x17\x71\x1e\x46\x86\xf6\x70\x46\x49\xac\x4e\xb7\x51\xf3\x30\x33\x4e\xbb\xed\x9e\x3b\x53\x6a\xf4\x6d\xa1\x0e\x71\xe9\xe4\x4a\x5d\x87\x53\x3c\x22\x04\x67\x5e\xcf\x6d\xdd\x9b\xc0\x59\x5d\xec\x3f\xfc\x50\x8e\x65\x8d\xfa\x72\x72\x15\x79\xe6\x8f\x45\x59\x90\xf8\xe0\xeb\x81\xff\x32\x84\x53\x13\xf9\x4f\x3e\x36\x1e\x49\x6e\x01\x52\xcd\x0d\x42\xbe\x4d\x36\x3c\xd5\x08\xe3\x31\xe7\x99\x1a\xaa\x3e\x98\x8d\xe2\x6e\x04\x62\xfa\x5f\xb2\x3b\xec\xd7\x24\x32\x44\x14\x3f\x8a\x1c\x85\x0f\xdc\xb8\x0b\x8c\x6e\x43\x22\x53\x23\xc0\x64\x12\xd6\x8d\xab\xe2\xbb\xe3\x69\x92\xe2\xcb\x6e\x0a\xe5\xf3\xf2\x97\x3f\xc0\x53\x24\xc9\x8a\xcb\xc7\x0a\x3d\x13\x67\xc7\xe3\xb0\xc8\xce\x53\x2e\x75\xe7\xc3\xde\xf9\xb0\x4e\xc0\xda\xed\x27\x58\x9a\x61\x5f\xe6\x52\xa0\x04\xb7\x85\xa2\x0f\xfc\x79\xc6\x9f\x90\x46\x4f\x1f\xd7\x1a\x4f\x9b\xd4\x3c\xe3\x86\x09\x8a\x19\xf4\xce\x6c\x21\x73\x5e\xc3\x2d\x8c\x2a\x68\x5c\xc4\x11\x56\x30\xe0\x17\xc8\x61\x46\xeb\x06\x24\x01\x6e\x92\x0e\xdd\x88\x7e\x5d\xd7\xb4\x5a\x9f\x7d\x70\x21\x14\xa6\x95\x97\x22\x3f\xf2\x06\x2a\x7e\x74\x16\x97\x83\x57\x40\x00\x45\xf1\x00\x7e\x3c\x5a\xcb\x82\x35\x68\xff\xb2\xab\xd8\xb8\x19\x74\x32\xd9\x68\x34\x70\xb9\xc6\x28\x73\x95\x09\x54\x70\xc5\xf4\xb6\x57\xc6\xe0\xca\x86\x38\x16\x78\xd3\xcf\x64\xfb\xec\x37\xcd\xb5\x66\x69\xb7\xd5\x62\x80\x39\xb8\x56\x41\x88\xd9\xae\xd1\x4e\x0d\x5e\xff\xeb\x0f\xf7\x77\x1e\x19\x75\xeb\x8f\xba\x81\x93\x93\x60\xed\xc2\x5f\x41\x34\x20\xbd\xf1\xad\x6c\xc0\xbb\xc9\x6d\xdf\x5d\xde\x2e\x68\xcc\x8c\x4f\xc8\x81\x17\x05\x1c\x37\xa8\xb3\xf4\x19\x45\xd3\x24\xd6\x99\xbb\x28\xca\x8c\x38\x43\xfd\xce\xcf\xbd\x39\x2b\x68\x66\x6e\x2c\xce\x77\x4b\xc0\x18\x2f\x5e\x43\xe9\xd2\xee\x3f\x83\x37\x55\x50\x1e\x23\x5c\x6e\x96\x57\xaa\x2a\xcf\x0b\x5f\x0e\x72\x5f\x15\x86\x14\x3d\x5d\x3d\x34\x62\x40\x76\x19\x3c\x26\x11\x2a\x63\x5d\xfe\x0d\x9a\xc5\x21\x3f\xd7\xab\x62\x24\x9d\xa6\x45\x44\x33\x84\x1b\x99\x2e\xd0\xbc\xec\xee\x63\xac\x18\xf6\x6d\x14\x1c\x5d\xb8\x34\x2d\xc3\xab\x45\xac\x35\xea\x07\x3d\x3c\x6e\x9f\xdd\xc7\x53\x61\x7e\x08\x20\x80\x7f\x0b\xfc\x34\xf4\x11\xd0\x22\x83\x88\x38\x7f\x9f\xbc\xb9\x1c\x79\x5e\xc1\xce\xee\xef\x94\xb8\x51\x22\x8c\x62\xcb\x41\x74\x24\xfc\x31\x34\x78\x78\x31\x92\x48\x4c\x25\x50\x9a\xe2\xaa\x3a\x35\xd1\xe3\x10\x32\x93\xf1\xc0\x45\xcf\x6a\xd8\xe4\x50\x21\x8d\x70\x51\x16\x6f\xc6\x31\xee\x4b\x55\x55\x2d\x24\x68\x5c\xff\xe6\x7d\x7d\xe8\xff\x11\xf3\x4d\x0b\x95\xa6\x8c\xf7\x48\x22\x1b\x99\x43\xd1\x60\x37\xdb\x8e\x00\x92\x20\xfe\xea\x61\xf5\xb8\x7b\x7e\x59\x2f\xee\xda\x97\xf0\x69\x7b\xb7\x5c\x6f\x66\xf7\xcb\x8d\x1f\xc6\x4d\x5d\x73\x0f\xcd\x82\x17\x6f\xbc\xee\x03\x63\x6d\xdd\x47\xe8\x80\x21\xdb\x62\xe7\x62\xfa\x9b\xfc\x2d\x1f\xed\x1e\x32\xc8\xb4\x91\xac\xf1\x00\x7b\xe3\x8d\x6a\xbf\x49\x86\x41\x86\xb5\x43\x6c\x59\x0b\x2e\x5f\xb7\x87\x4b\x55\x2b\x3e\xc0\x6d\xc8\x90\x01\x41\xc0\xf1\x19\x0b\xfa\xf5\x21\x3f\x7b\x1a\xe7\x6f\xd9\xb4\x5a\x86\x42\xe0\x0e\x09\x85\xb2\x46\x27\xfe\xc4\x3a\xca\xc0\x81\x10\x73\x9c\x23\x1e\x9b\x31\xec\x8b\xd8\x0f\x44\x51\xd2\xe3\xae\x9b\x7a\xce\x0d\xe8\xaa\x34\xc4\xa9\xb1\xe0\x36\x73\x1f\x53\x09\xe2\xc3\x73\x23\xa3\x86\x10\x83\xd1\x99\xe3\x50\x8b\xd8\x53\xe7\xcd\x7c\xc5\x30\x70\x5b\x4e\x8a\x95\x6a\x19\x47\x21\x22\x82\x76\xae\x9c\x3d\x0a\x47\x65\x1c\x03\x76\x6c\x3d\x34\x3e\x2f\x8b\xe9\x96\xad\xfb\x40\xc2\x50\x26\x69\xf5\xf4\x67\x7f\xf9\x1d\x7f\x2f\xd7\xce\x5c\xeb\x27\x56\x45\x7b\xd9\x80\x8c\x35\x41\xe1\x75\x73\x83\xda\x90\xb2\xaa\xaf\xaa\x2c\xfd\x57\x48\x26\x94\x6a\xe2\xd2\x3a\xb4\xeb\xb6\x07\xd2\x20\x43\x74\xed\x4e\x5c\xae\xb5\x9d\x7b\x7b\x9e\x4c\x21\x41\xbd\xa3\x0d\x34\x2f\x9f\xab\xf0\x0d\x7f\x04\x63\xda\x70\x72\xf2\x13\xb4\xbb\xf7\x18\x0d\xe4\x86\x89\x04\x63\x63\x9c\xb4\x5c\xa9\x4b\xfd\x19\x42\x4e\x32\xad\x70\x2e\x99\xb6\xc1\xee\xc1\x58\x51\xa9\x1e\x39\x73\xf4\x78\x32\x42\x51\xa6\xe1\x4a\x4b\xb1\x3d\xc4\xf1\x2e\x62\xc1\xc9\xc8\x3b\x0d\x17\xae\x2f\x74\x00\xb5\xcc\x92\x84\xda\x36\x9b\x75\xab\x18\x9d\x9e\x47\x21\x6a\x5a\xdc\xde\xdd\x5a\x73\xb3\x91\xd6\x8c\x1b\x27\x09\x6e\xc9\x2f\x9b\x9b\x79\x8f\x0b\x24\x39\x44\xa6\xb3\x6b\x22\x81\x9e\x95\xc2\x27\x22\x27\xee\x73\x3a\x49\x12\xef\xd2\x3c\x4e\xb4\xa4\x20\x41\x64\xba\x87\xb2\x2c\x30\x62\xee\x6d\x94\x52\x04\x26\xc3\x7e\x28\xab\x6a\x98\xe1\x48\x29\x4c\x91\xde\x6f\x6c\xe7\xb3\x29\xa1\xe2\x2c\x61\xa3\x47\xaf\x42\x89\x8f\xfe\xc4\x7f\xcd\xa1\xe9\x43\x58\xa5\x52\x66\x2e\x1a\xd9\x1b\x9d\x57\x23\xa2\x86\xd4\x21\x47\x2d\x3f\xf4\x5e\xbb\x2d\xcb\x39\xf7\x4b\x99\x8e\x22\xd7\x87\xc5\x2f\x9f\xac\x18\x49\x1d\x87\x48\x99\xef\x19\x77\x4f\x4f\x27\x9d\x44\x28\xf3\x64\xa2\x9c\x25\xaf\x4c\x6d\x66\x72\xe5\x97\x5a\x44\x41\xd0\x53\x19\x76\x05\x9a\xf6\x5b\x26\x8b\xa8\xfd\xd7\x47\xcb\x08\xcb\xe1\xb3\x73\xde\xb7\xa1\xd3\x8a\x90\x08\x4b\x11\xc6\xb7\xa3\x43\x39\x58\xbb\xc5\x71\xdb\x4d\xd1\x30\x46\x28\x94\xe7\xc1\x3f\xf0\xe2\x63\x62\x37\xeb\xff\xeb\x82\x36\x45\x93\x4c\x75\x6a\x15\x28\x53\x3b\xe2\x00\xfe\x6f\xff\x75\x5f\x60\x5d\x16\x6a\xec\x0b\xbc\x8e\xa1\xf0\x5d\x48\xac\x82\xd0\x14\x15\x76\x27\xfe\x2b\x3f\x5d\x4e\xf3\x8b\x83\xe9\xa8\x20\x34\x7e\x5b\x0a\x35\x2a\xf8\x7e\x82\x53\xfe\x3b\x6c\xbc\x0a\x12\xa5\xa8\xab\xd6\x21\x5d\xe8\x8f\xd1\x00\xad\xb1\x3d\xe4\x82\x16\x1f\x3b\x8d\xef\xbc\x1d\x1f\x12\x65\x56\xd0\xbc\x68\xe6\x97\xe3\x17\x15\x31\x15\x66\x81\x33\xf9\x1b\x58\xab\x0e\x5f\x11\x15\x05\x09\x72\x8a\x6a\xae\x61\x14\x7b\xa9\x58\x88\xd0\xe8\xcd\x97\xe7\xb2\xd7\x7e\x18\x2d\xf2\x57\x06\xb2\x5a\xc5\x4a\xe1\x36\x3e\x7b\x7e\x5e\x3f\xfd\x58\xee\x9e\x7e\x3e\x3a\xdd\x2b\xad\x12\x6d\x9c\xdf\x35\xc0\xb0\xfa\xa6\xd2\x98\x22\xac\x15\x99\x46\xbb\xd5\xe2\xc9\xe1\x53\x14\x8b\x12\x92\xf5\x7e\xcd\xf6\x50\xc1\xe8\x85\x53\x2c\x21\x14\x06\x36\xbb\x6f\xb1\xff\xbc\x32\xe8\x1b\xb3\x59\xe5\xb2\x9c\x73\xf9\xda\x73\xfc\xf0\xc3\x62\x43\x62\x6d\xf8\x2b\x7c\xbb\xff\xf3\xb6\xac\xfa\x6c\x33\x7f\x36\x80\xc4\xd8\x1e\x9f\xce\x97\x06\x1e\xf9\x09\xad\x21\x97\xbf\x9a\x9e\x4a\x9b\x56\x9c\x19\x41\x8b\xdc\xee\xea\x86\xa6\x6a\x92\x2e\x7f\x2e\x2e\x13\x4d\x07\xcc\x2c\xab\x23\xdf\x95\xe9\xdc\x48\x6d\x18\xe4\xa6\x8a\x50\x01\xf4\x3b\xd4\x4a\xc4\xc4\xc0\x48\x3c\xd0\xf4\x08\x5f\xb1\xe3\x94\x88\x01\x97\xfc\x6f\x37\x8b\x99\x94\x84\xfa\x13\x25\xc6\xb3\xb3\xb1\xd0\xaf\xe1\x3e\xa9\x84\x32\xb2\x79\xcb\xf5\x22\x0d\xe8\xcd\xa5\xdd\xb6\x2e\x72\x6a\x47\xb0\x1f\x90\xb1\xc0\xd7\xfd\x7e\xf6\x38\x73\x27\x91\x2c\xb0\x02\xd2\x2f\x85\x82\xaa\x47\x65\xa4\x76\x84\x8a\x62\x04\x8e\x9a\x45\xa2\x9d\x99\xa6\xf9\x59\x7f\x66\x1b\xeb\xe7\x9e\x8a\x23\x44\xde\x61\x11\x7b\xba\x7e\xad\x54\x92\x39\x62\x47\x27\x91\x6b\x20\x3c\x79\xb1\xef\x29\xcc\x8e\x3e\x26\x89\x33\x6b\x9e\xe7\xaa\xdd\x10\x31\x59\xb2\x6d\xd3\xe1\x54\x02\x2a\x31\x44\xe7\x4a\x21\x35\x63\xfa\xe6\x40\x10\x75\x98\x4d\x8b\x1e\xbd\xc2\xa1\xb8\xb1\xdc\xa8\xbc\x14\xf0\xfe\xa3\xc4\xe2\x65\x2f\xf0\x54\x3a\xc9\xa8\x2f\x2c\x1a\x53\xeb\x42\xdd\xb4\x6f\xf3\xf0\x2c\x5a\x00\x15\x3d\x4d\xdc\x4f\x96\x5e\x33\x1a\x48\xa0\x51\x0b\x56\xe7\x15\xdc\xe6\xfb\x83\x95\xcb\xab\x91\x6a\x6d\x56\x33\xe6\xbb\x4d\x40\x62\x6a\x7e\x73\xfd\x51\xc8\x81\xa1\xce\xe8\xac\x19\xc1\x47\xf4\x08\xef\x86\x82\x35\x3a\x2c\x43\xe4\xca\xff\xed\x69\xf1\x7d\xf9\xd7\xa0\x73\x08\x44\x6b\x7c\xa7\x36\x4d\x59\xf1\x3d\xd6\x4d\xa6\xbf\x83\x52\xa3\x51\xee\xf3\x91\x76\x8b\x1a\x8b\x08\xb8\x49\x03\x94\x72\x25\x1d\xaa\x72\xe3\x1f\x3d\x73\x87\x99\x51\x8a\xdd\x61\x82\x89\xc7\x8d\xc2\xa6\x3b\xce\x99\x93\x75\x31\x0e\x25\x0b\x7e\x3a\xf3\x7c\x3f\x5a\xbf\x81\x2a\x99\x42\x4f\x50\xb2\xbf\x5c\x00\xd5\x80\x85\xf7\xbc\xc8\x1d\x37\x16\xdc\x5b\x09\x41\xa8\x11\xc1\xf1\x9e\x1b\xfa\x8c\xfb\x73\x1a\x23\xf8\x56\x5e\x8e\xe8\x02\x94\xbf\xc1\x4e\xc1\xe9\x52\xb5\x37\x67\x27\x47\x88\x5b\x08\x03\x82\x1d\xcb\xd3\xdb\xd9\x82\x9f\xdd\x01\xa6\x31\x6d\x41\x8a\xe4\xbb\x87\x36\x42\xa8\xa4\xf3\x43\xff\xc6\x6b\xe4\x30\xdb\x23\x71\x4c\x8d\xa4\x73\xfb\x9a\xa1\x89\x40\x2e\x47\xb4\x3e\x88\x99\x35\xbc\x32\x3a\x95\xf3\x8f\x1b\x83\xbe\x6b\x63\xd5\xbc\x19\xd8\x52\x4c\x93\x35\xfa\xb7\x27\x21\x09\x4a\x85\xd9\xa2\x59\x53\x1b\xa5\x85\x01\x82\xe5\xff\x4e\xe0\x59\x20\x89\x09\x82\xf8\xb4\x6d\xdc\xad\x16\x4f\xfd\xb6\x3b\x5a\xe5\xf6\xc4\xc3\x7a\xe2\x63\x1a\x58\x64\x6c\x22\xf2\x7a\x73\x11\xff\x04\x89\x55\xd4\xea\x32\x11\xe4\x03\x4b\x22\xd4\xd1\x7d\x98\xfd\x69\x00\xe8\xbb\xc5\xec\xd9\x9f\x87\x31\x66\xd4\x4c\xcb\x0a\xfa\x20\x15\x77\x5c\x72\x1b\x2f\x17\x6a\x55\x9c\x2f\xcd\x50\x83\xd0\x8e\xca\x52\x21\x6d\x3e\xb6\xf9\x57\xf5\xd7\xe8\x02\x32\xc6\xa1\xbb\x41\xcb\xe6\xb0\x5a\x3c\x79\x1f\x86\xcf\xfd\x16\x47\x27\x51\x46\x7b\xdb\xec\x3d\x02\xf6\x98\xf7\x9d\xab\xb2\x81\xa9\x1f\xcd\x49\x82\x1d\x9d\xab\x7e\x59\x1b\x10\x2f\xec\xfe\x35\x95\xaa\x03\x27\x0a\xcb\x97\x02\x74\x59\x81\x77\x05\xd0\x20\x22\xe3\x33\xb5\x38\x40\xa1\xc0\xff\x55\xa5\x01\xed\x34\x07\x4c\xca\xee\x95\x1f\xdd\x28\x49\x05\xaa\xd2\xfd\x9c\xfb\x05\x43\xc6\x0a\x71\x2e\xcb\x76\xf5\x7a\xf5\x7f\x65\x2a\x34\xdc\xa1\x7c\xbf\xef\xa6\x82\x54\x71\x68\xe0\x64\x3f\x79\xde\xf4\x4e\xac\x78\x9c\x71\x2f\x87\x34\x6b\x9c\x79\xf0\xa8\x62\xd4\x9f\xaf\x10\x01\x96\xde\xbf\xcd\x90\x89\xb0\xbb\x59\x3e\x6f\xef\xdc\xf9\x40\x66\x08\xab\xab\xf9\xa9\xfe\x8a\x8f\x0e\xa0\x62\x2c\xbd\xa1\x30\xf4\x0e\x7e\x9d\xcb\x02\x8a\xc6\x2f\x0b\x9a\x84\x09\x78\xd5\xab\x36\x52\xf1\x38\x70\x40\x76\xb5\x5d\xe9\xad\x77\xee\xbc\xfc\x35\x7a\x80\x3a\x30\x37\xc2\x76\x33\xdb\x2c\xd4\xef\x69\x23\xb2\x5b\x12\xd9\x7f\xdc\x47\x15\x60\x7d\xf7\x67\x7e\x3c\xae\x9d\x5e\x96\x39\xa6\x49\x40\x31\xde\x32\xa7\x5d\x54\x1f\x63\x27\x2a\xad\x49\x18\x25\xa2\x23\x3b\xf4\xf7\x76\xb7\x2c\xeb\x20\x4d\x84\xea\x89\x7a\xb5\xf1\xc8\x98\x46\xa0\x03\x2e\x85\xa5\x3c\x61\xd4\x17\xf8\x03\x32\xc5\x3c\x2d\x3f\x97\xbb\x73\x2f\xf9\xd3\x81\xd4\x0e\x38\x24\x4d\xf9\x1f\x94\xe2\x0d\x97\xbd\xe2\xb3\x0e\xa9\x0a\x5c\xeb\x04\x4f\xcb\x06\x39\xac\x0e\xc3\xc4\x1a\x4f\xf2\xd3\x30\x46\xd2\x51\x14\x63\x8b\xee\x9b\x8f\xe9\x36\xfc\x08\x03\x76\x8b\x1f\xc9\x33\xea\x49\x16\xdf\xe1\xc3\x3b\xd0\x6a\x1d\x89\x04\x73\x6f\x5b\x52\x18\xdf\x9b\x04\x38\x36\x08\x7e\x96\xc7\x57\xe7\x59\x3e\xb9\x15\xea\x44\x33\x84\xae\xed\xba\xa2\xfd\x96\xff\x9a\x4e\x08\x74\x4a\x0c\xda\x09\xb9\xaa\xd6\xbb\xed\x0f\x7f\xcc\x68\x96\xda\xc4\xd7\x08\x9f\x5e\x97\x7a\x75\x1a\x64\x48\x4f\xd2\xf9\xf1\xf8\x72\xb6\x3c\xb4\xe9\x84\x56\xb3\x84\x18\xd1\xdf\x76\xea\x99\xdf\x81\x1d\xd5\x0d\xff\xad\x3c\xf8\x28\xe5\xd1\x2c\xe1\x08\x1f\xbc\xe3\xe7\xf3\x07\xf6\x3f\xfb\x48\xdb\xe1\xd7\x66\x34\x30\xd6\xec\x6d\xa4\xdf\x4b\xa3\x3e\xdb\x8f\x86\x3f\x30\x0b\x54\x62\x01\x5f\x3b\x7b\x64\xb7\x9b\x55\x79\xc1\xa7\xeb\x6d\x3a\x0b\x29\x4e\xe4\xa3\x21\x93\xb4\x6b\xd6\x00\x05\xae\x33\x66\x1a\x0e\x35\x34\xdf\x1b\x39\xd9\xa0\xd3\x99\x88\x51\xbc\x0f\xd3\xc9\x7e\x35\x43\x73\x0e\x58\x5b\xb7\xcd\xf1\x65\x27\x50\x36\xba\x0e\xc1\xe2\x34\xf5\x0a\x75\xdc\x6b\xd7\x69\x2d\x49\x4a\x2d\xdd\xe7\x3e\xd7\x46\x2a\x64\x78\xcb\x24\x23\x08\xdc\xfb\xd7\x05\xaa\x0f\x43\xd2\xde\x56\x1f\xed\xca\xbf\xf3\x27\x11\x24\xb3\x78\x6a\x2c\x08\x8e\x53\x46\xff\xa8\x24\xc4\xac\x1f\x08\xdd\x96\x95\xc9\x81\x3f\x2b\xba\x69\xa5\xe3\xd0\x08\xe7\xb8\x3a\x7b\x8f\x8f\xad\x81\x09\xb0\x01\xd8\xf7\x8f\x4f\x6e\x9f\xce\x0c\x64\xdd\x50\x23\x91\xdf\xd9\x5e\xe4\xa2\x2f\x53\x34\xfa\x52\x2d\x52\x7c\x6c\x77\x70\x3c\x96\x3f\xcb\xca\xfa\x19\x31\x42\x48\x0a\xcc\xd4\x79\x51\xa1\x38\x87\xee\x08\x4b\x31\x64\x46\x71\x1b\xba\xe5\xd5\xde\xda\x16\xb6\xc7\x32\xf3\x4a\x63\xd5\xa9\x1a\x24\xb0\x8c\x10\x1a\xc7\xf8\x9e\x62\x74\xb2\x86\x53\x1f\xd8\xeb\x86\xa4\xd2\xf4\x3d\x91\x85\x88\x2e\xc0\xd7\xf5\x37\x46\x48\x18\x46\xd8\x6c\x5f\xcc\x1e\x7d\x5b\xb5\xfd\x73\x1c\x44\x56\xe2\x56\xde\x94\x77\xd3\xcc\xa0\x76\x5c\x12\x20\xbf\xea\x58\xbe\x41\x1b\x69\xe7\x96\x81\xee\xce\x13\x47\x12\xd9\x14\xb7\x15\x40\x3b\x0d\xfc\x22\xd1\x1e\x4b\x04\xa6\x29\x26\x82\xc0\xce\x53\x9b\xd8\xe4\x47\xe8\xc9\x9c\xb9\x1a\x4c\x3b\x3e\x15\x19\x77\xfb\xc0\xb1\x1c\x54\x30\xdb\xc3\x59\x8c\x53\xaa\xc0\xd7\xc5\x07\xf0\xfe\x68\xe6\x4c\x29\x9e\xab\x52\xe7\x47\x13\x5c\x4d\x4c\x7e\x46\x48\x12\x24\x88\x6a\x9c\xad\xd6\x3b\xba\xdb\xbc\x3c\x3f\xdf\xff\xe5\x4e\x94\x24\x19\x96\xfb\xea\x36\xb6\x0f\x6f\x2c\xd0\xdf\x1f\x4d\x23\x27\x61\x60\xbd\x91\x47\x67\xe6\x31\xe2\xf5\x95\xf5\x66\xb4\x13\x10\xfc\x75\x26\x9a\xa1\xc4\xca\xe2\x69\x3e\xb3\xf2\x80\x8c\x90\x34\x21\x18\x03\x61\x42\x41\xc7\x5f\x9a\x32\x8e\xb8\x8a\xdb\xb2\xba\x2d\x4b\x3f\xbf\x52\x2e\x85\x15\x08\x43\x57\x44\x40\xfd\x86\x36\xc6\x83\xca\x42\x4e\xec\x48\x96\x9a\x26\x3a\x0a\x83\x5b\x47\xb0\xce\x09\xac\x1d\xa0\x62\x9c\x4d\x79\xd1\x9f\x24\x59\xc4\x22\xfb\x63\x1f\xb0\x70\xda\x53\xf2\x62\x6e\x4c\x1a\xb1\xbe\x3c\xec\x1f\xd7\x88\x33\x1c\xc5\xf1\x2d\xe7\xea\x9f\x17\xb4\x3f\x2c\x9b\x7e\x2f\x9e\x11\xc2\x43\x43\x69\xc1\x19\xf4\x8d\x9f\x3e\x25\xc0\xba\xf1\xc2\xe8\x8d\x18\xe9\xfc\x07\xa8\x5e\x8f\x46\x4c\x7f\xea\x05\x66\x84\x08\xe1\x35\x64\x71\x02\x7f\x5e\x11\x61\x84\xc8\x98\x60\xdd\x79\x9f\xbf\x01\x9a\x5a\xfa\x48\x76\x5b\x7e\xff\xe8\x19\x0b\x9a\x65\xac\xfd\x44\x0a\x4e\x51\xcf\xf9\xfa\xf1\x3d\x0c\x5e\x15\x45\x34\x82\xbc\x1d\x3e\x75\x22\xb0\x62\xc3\x77\x57\x45\x14\x55\xad\x0a\x78\x5f\xfe\xca\x9b\x61\x1f\xc7\x8d\x69\x23\xd2\xff\xf3\xff\xfd\x9f\x8f\xf2\xa3\xdc\xf6\xb5\x61\x27\xe3\x48\x46\x08\xa8\x18\xe7\xc2\xc3\xcf\xcd\xe0\x6d\x05\x25\xb2\xce\x99\x67\xc1\xcf\xa3\xd7\x4f\x33\xc0\x7c\x1b\xc5\xb3\xe6\xd0\xfc\xcc\x9b\xc3\xaa\x78\xcb\x9b\xe9\x8a\x22\x23\x94\xc4\x01\x36\x8d\x4e\xfc\xd7\x4b\x0d\x55\x57\xa4\x62\x84\xd2\x30\x85\xd4\xc1\x51\x10\xe5\x64\x6b\x2d\xf5\xf0\x6b\x29\x0d\x19\x16\x98\x9f\xd6\x37\xcb\xf5\xee\xe1\xe9\x66\x75\xfb\xd7\x97\xbc\xaf\xab\x47\x4f\x69\x14\xe3\xda\x5d\xe7\xfb\x5d\x53\xb6\xdb\xb4\xad\x30\xf9\x01\x09\x15\xc4\x15\x81\x86\x02\xa8\xed\xd1\x94\x18\xd3\xa3\xf5\x6c\xb1\x9b\x3f\x6d\xdd\x4f\x08\x32\x83\xda\xb3\x52\x92\x56\xd5\xf3\xc8\xf7\x23\x48\x2a\x23\x34\x24\x21\xee\x11\xf7\xdf\x16\x6e\x9d\xa1\x61\x98\x60\x56\xb0\xd9\xce\xd6\xdb\xd5\xe3\xb7\xdd\x3a\x97\xaf\xb3\x42\x3d\x94\x55\xf3\xe1\x07\xe9\x00\x55\x4a\xdb\x65\xfa\xa5\x78\xe0\xf5\x2b\xa8\x6f\x97\x25\xaf\xda\xb8\x61\x7c\xab\x42\x1d\x72\xd3\x82\x7f\x0b\xdc\x09\x22\x1d\xe0\xbc\x44\xa1\x63\x6e\xe5\x44\xd9\xa7\x14\x3e\x46\x68\x4c\x03\xd4\x83\xdb\xbc\xe5\x05\x92\x41\xfb\xb3\x84\xc6\x3c\x43\x7e\xc3\x6d\x59\xed\x38\x62\x09\xdc\x01\x48\xb4\x8d\xa4\x6f\x2e\xc5\x1e\xca\xc2\x3c\xef\xe1\x25\x26\xc2\xc8\xfb\xec\xa1\xf9\x0e\x1f\x03\x85\xd6\xe1\x55\xa4\x21\xb7\xfd\xac\x02\xac\xb6\x9f\xfb\xa6\x34\x0d\x51\xf4\xe8\xfe\xc6\x3f\x0a\x4e\x0d\x15\xd7\x2d\x42\xcd\xa2\x3c\xe7\x60\xd8\x87\x65\x5e\x0d\xaa\x11\x38\x3c\xc2\xbb\x5a\xbf\xf3\xf3\xc8\x6f\xa4\x3d\x2a\x38\x76\x44\xb1\x02\xf2\x5c\x95\x12\x40\xb9\xe5\x9b\x8a\x88\x1a\x37\xd0\x23\xcf\x4f\xc6\x47\xd9\x1d\x92\x61\x68\x31\x77\x18\xa6\xaf\x6c\x5f\x66\x9e\xab\xd1\xd7\x2b\x91\x21\xff\xf2\x61\xd5\x55\x06\x18\xa1\x10\x98\xfd\xed\xe4\xeb\x90\xd7\xed\x68\x46\xa8\x8e\x13\x5c\x4a\x37\xe7\x36\x2b\xae\xac\x8c\xdd\xbf\x87\xad\xb8\x6e\x57\x0d\x08\x01\x6a\x70\x64\xa2\xdd\xa4\x71\xd1\xad\x10\x2b\xb0\x2a\xde\xca\x5c\x7e\x02\x66\xf1\xcf\x2c\x20\x01\xc3\x7e\xbe\x29\xc0\xde\x00\xd6\x26\xf3\x37\x43\x9f\xf8\xbf\x03\xbc\xcf\xb0\x68\x43\x3f\x79\x21\x03\x12\x65\xce\x97\xcc\x2a\x3b\x1b\x87\x68\x0c\x90\x06\xbf\x36\x20\x3a\x36\x37\x55\x29\x4c\x06\xb6\xe5\x23\x34\xef\x65\xf5\x7a\x35\x4e\xa4\xa9\x5f\x7f\x9f\xf9\xc7\x16\x09\x29\xfe\xa8\x11\x8e\xcb\xeb\x1b\xe8\xdc\xb4\x47\xa7\xa0\xd4\x48\x69\x58\x41\xb6\x41\xad\xb6\x3f\x37\x03\xca\x00\xc5\xc1\x30\xfa\xae\x51\x67\x46\x6d\xf3\xe3\xf1\xd1\x56\xcb\x18\x09\x82\x2c\x94\x41\xdf\x56\x04\xe1\x62\xe3\x72\x4f\x3b\x50\x9b\x3a\x85\x77\x70\xc7\x9e\x6b\xef\xf1\x85\x69\x92\xd9\x7d\xeb\x79\xd1\xcf\x2e\xdb\x63\x5a\x0b\xfb\x36\x3d\xbd\x41\xc5\x8f\xc7\x4d\xfe\x6f\xff\xa3\xa3\x2c\x4a\x58\x27\x50\x77\xb7\x59\x80\x33\x75\xbc\x81\x86\xe7\xc7\x3e\x09\xa9\x1d\x2f\x23\xf4\x25\x3b\xe6\x27\x5c\x8d\x6f\x86\x90\x55\x46\x82\x18\x42\xac\xd6\xfe\x58\xae\x37\xab\xa7\xc7\xdd\xe3\xcb\xc3\xdc\x76\x73\x18\x09\x12\xc2\xb8\x57\x9b\x38\xe7\x95\xf9\xa6\x11\xcd\xb3\x1d\x17\x45\xa8\xab\x60\xab\x6c\xcb\x42\xbd\x14\xf9\xaf\xa1\xfa\x4b\x3b\x0c\x34\xe7\xee\x2e\x53\xf6\xbd\x6e\xe0\xdc\xbd\x2d\x41\xa2\x01\x75\x4b\x6e\x2f\x85\xfa\x9d\x56\x46\xff\x75\x48\x89\x51\x59\x5e\x6c\x16\x6b\xa8\xcb\x4b\x25\xc7\x62\x49\xc3\xdf\x9c\x2a\x40\x9c\xbd\xa9\x5f\x60\x84\xf5\x59\xaf\x8d\x91\x80\x09\x85\xd8\xe5\xca\xca\x5b\x2d\x7e\x2e\xa6\x43\x8c\x80\x49\xc0\xa2\x87\x5d\x48\xb0\x13\xd4\x5b\x8b\xfc\x19\xb3\x44\x21\xe2\x03\x17\xdb\x1d\xd6\xf4\x47\xf7\x93\x87\x46\xfd\x84\x2b\xe5\xc8\x46\x1b\xa8\xde\x72\x39\xbe\xf1\x82\x1a\xd9\x9e\x52\xa3\xf0\xad\x8f\x4c\x02\x11\x19\xb1\xd2\xd5\xa6\x6b\xf9\xb7\x7f\x66\x51\x6c\x25\xc7\x9e\xa1\x7a\x83\x62\x08\x30\x75\xa3\x04\x17\x56\x5f\x2e\x2f\x36\x0d\xaf\xe6\x7d\x41\x9b\x09\x41\x79\xfb\x39\xc9\xa4\x32\x9e\xd2\x98\xc1\x2c\x6b\x59\x75\x58\xe0\xd1\xcd\x92\x8a\xc6\xda\x6f\xb5\x1e\xa7\x32\x5e\xba\x03\x45\x59\x64\xdd\x10\xb1\x78\x3b\x84\xc8\x7c\xb2\x1a\x29\xce\xb1\xa0\x7e\xe4\x4d\x5e\x94\xcd\x7f\x16\x9b\x05\x0a\x98\x13\x5e\x79\xae\xe0\x94\x5f\x4e\xb7\x5c\x62\x6b\xf0\x13\x50\xac\xff\x9c\xc0\xb6\xbd\xd3\x82\xf9\xca\xed\xb7\x37\x6d\x81\x9b\x5e\x9c\xc3\x79\x75\xfd\x82\xf6\xa0\x60\x58\xaa\xdd\xed\xa1\xf9\x09\xf9\xfe\xd0\x8c\x9e\x91\x0e\xb4\x91\xf0\xe1\xca\x3b\x8f\x7f\x15\x3b\xb9\x67\xa4\x63\x81\xd9\xdf\xec\xe6\x66\xb5\x5d\x3d\x3d\xce\xee\x77\xcf\x4f\xeb\xf6\xff\xec\x1c\x09\x29\x15\x48\x44\x15\x97\x8f\x45\x8f\xfc\xfd\x75\x44\x16\xd2\xc0\xc8\xe9\xe6\x85\x3e\x5a\xe2\xcb\xe9\x3c\x7f\xde\xf8\xb3\x32\x01\x7d\x41\xa7\x76\x75\xab\x72\xf5\x25\xa9\xb8\xfd\x18\x30\x03\x44\x72\xc8\x3c\xfb\x64\x7e\x77\x55\x5f\x84\x43\x61\x10\x48\x61\xb8\x32\x8f\xe5\xbb\xc7\x8c\xbb\x83\xb1\xc0\x50\x04\x0b\x21\x8f\xe3\x59\x33\xe0\x1a\xb9\x4f\xa4\x31\x36\xdd\xae\x20\x5f\x7f\x8c\xc6\xb1\x14\x1b\x8c\x3b\x8d\xbb\x42\x0f\x67\xcf\x48\x18\x92\x8c\x05\xb6\x47\x80\x74\xec\xe9\x34\x37\x0c\x23\x81\x0a\xd2\xdb\xf2\x34\xcf\xaf\xf4\x1b\xae\x27\x75\x18\x4a\x83\xaa\x5a\x3f\x6d\x16\xb3\x37\xda\xa7\x81\xd2\x80\x8d\x4b\x60\x03\x22\x29\x7e\x5a\x22\xd6\x74\xd3\x00\x3f\x36\x87\x7e\xdc\x18\x86\x1a\x10\x38\x5d\x19\x07\x4a\x47\x05\x61\x24\x8c\x68\x8a\x25\x52\x34\xe2\x93\x4d\xdd\x65\xcc\xc3\x3b\x12\x85\xb1\x11\x33\x69\x78\xd5\xdc\x80\xce\x0b\x50\x6d\x9e\xf8\xc0\x8b\x0b\x3f\x1e\x47\x7b\x55\x18\xc7\x69\x66\x0a\xf8\x33\xa3\xcb\xf0\x52\x0f\x69\x7b\xed\x18\x96\xe2\xf4\xce\x0b\xe7\x2f\xd4\x61\xc0\x47\x31\x63\x98\x08\x23\xde\x67\xde\xf7\x3a\x57\x50\xb4\xc1\xd0\x03\xd4\xfc\x53\x93\x83\xd1\x19\x54\xea\x04\xb9\xd6\xbc\xb1\xb6\xfd\xf3\xbe\x45\x8a\x1d\x98\x86\x51\xe8\x20\x53\x08\x8b\xe2\xd5\x87\xfd\xa5\xfc\x2a\xb7\x08\x53\x26\x9c\x03\xec\xe6\x50\x9e\xad\x93\xf7\x44\x24\x18\xa6\xc2\x48\xbf\x5e\x2c\x4d\x1a\xd4\xc3\xf6\xc5\x3d\x86\x2c\x89\x71\xe7\xe2\x18\x73\x22\x75\xdb\x1d\xe2\x49\x80\xc2\x9b\x8e\xf2\xfe\x19\x87\xdb\x0e\x17\x91\xc4\xfe\x33\x16\xaf\xcc\xaf\x1c\x5d\xb2\x4c\x22\xec\x31\x7e\x03\xcc\x49\xc6\x75\x63\x1c\xa1\xb9\xad\x2f\xff\x04\xe3\x93\x5a\x3f\xbd\x8f\x43\xb6\x50\x32\x93\x57\x99\x74\xe2\x0b\xd2\x5b\x3b\x56\x12\x24\x66\xbc\xd6\xf2\xd3\x78\x61\xf0\x32\xa8\x24\x46\xab\x85\x5d\xfb\x9a\x35\xbf\x73\x80\x62\x24\x04\x1e\xa0\x32\xcd\x43\x59\xc0\x87\xfb\x8e\xe9\x5a\x3c\x23\xa1\x16\x80\x95\xa4\xb3\x59\x8f\xd7\xb0\xbf\x1c\x2d\xd7\xee\x6a\xc7\x72\x1f\x91\x0a\x5f\xcf\x41\x14\x70\x55\xa8\x9e\xfc\xba\x88\x04\x31\x0a\x63\xb5\x47\xf1\x86\x8f\x0e\x4b\x8e\x8f\xbf\x81\x1a\x63\x49\x7d\xf4\xc1\x6c\x44\x03\x62\x05\x36\xac\x44\x79\x57\xf2\xaf\xaf\x4d\x30\xda\x0f\x68\x89\x27\x9b\xfd\x78\xe8\x2f\x02\x51\x20\x02\x6a\x48\x77\x56\x5f\xe1\x59\x36\x7f\x52\xf2\xdd\x1f\xd7\x82\x5b\xdf\xc4\x51\x38\xf0\x65\x73\x38\x0c\x7a\xb3\x3c\x0a\x69\x8c\xf2\xc7\xe7\xb2\x27\xac\x39\x21\x05\xd3\x0e\x0d\x52\x54\x2c\x14\x97\x0f\xe3\x7c\x7f\xed\xb0\xd2\x8e\x92\x99\xe1\xee\xb5\x11\x10\xda\xa8\xfb\x03\x3a\x50\x0e\x83\xe5\xfe\x18\xc9\x24\x85\xbe\x25\xf6\xbf\x7b\xc4\x5c\x1b\xd4\x45\x31\x35\xc6\x99\x45\x2e\xdd\xe7\x52\xc1\x53\xd2\xab\x83\x5b\x8d\x16\x44\xc5\x5c\x15\x63\xa2\x54\x8a\xac\x33\xc0\x41\xe2\xc5\x78\x11\x1a\x3e\x92\x54\x6a\xd4\x5c\xcc\x8b\xaf\x37\x82\xd1\xc7\xb2\x44\x23\x64\x67\xc1\xbd\x50\x2b\x23\x11\xb7\xb0\xd7\xb7\x7c\x3f\xcc\x48\x22\xae\xb5\xf6\xa9\x91\x35\x59\xbb\xea\x76\x31\x12\x89\x38\x56\xb1\xef\xc4\xd7\x30\xab\x47\x53\x48\x70\xe3\x2a\xd6\x54\x1f\xdf\xa0\xe9\x47\x3b\x91\x4c\x98\xb1\x69\x36\xb4\x59\xd8\x2e\xee\xd7\x79\xb1\x05\x7e\x1a\xec\x92\x91\xb4\xd6\x8c\x3b\xab\x23\xb2\xfc\x55\x1a\xf3\xb7\xa9\xdf\xdf\x61\x13\xfb\x7f\xb5\xb7\xf3\x93\x9b\xa3\xe2\x24\x1a\x78\x00\x51\xd2\x6d\x5e\x6e\x8f\xa4\xc4\x3d\x74\x95\x1a\x42\x92\x55\x30\xba\x2f\x79\xb1\x6a\x77\x91\x5c\xe7\x43\x3a\x0b\x23\x11\x50\x8a\x28\x14\x14\x1f\x3f\x54\xe5\x7b\x7d\x93\xd7\xe5\x7b\xf1\x58\x36\xdb\x1e\xac\xeb\x0f\x3f\x5c\x62\xa4\xbe\x73\xb3\xae\xd4\xbd\xc7\xdc\x7b\x39\x80\x91\xc4\x86\xf4\x33\xad\xf3\x63\xde\xde\x17\xb5\x1f\x3f\x1e\x80\x00\x81\xe9\x6d\xb8\x38\x12\x7f\x9a\x5a\x2a\x23\xcd\x8c\xf6\x4d\x7d\x28\xdf\x51\x4e\x39\x57\x9d\x0a\x45\x7b\x1c\x52\x4c\xf8\x8d\x51\x6b\x9f\x25\xff\x9f\x32\xc8\xfa\xe3\xae\x94\x9d\xfa\x31\x6b\x4c\xa8\x49\xbd\xed\x46\xcd\x8f\x80\xf8\xfb\x97\x55\x31\x5a\xf3\x62\x12\x05\x28\x0d\xe9\x12\x51\x0b\xb3\xf3\xdd\x24\x46\x62\x9a\x71\x69\xf7\x6c\xb4\xaa\x9c\x08\xe9\x62\xaa\x48\x60\xb3\xf0\xbe\xa5\xbe\xb5\xdf\x1f\x5c\x5b\x40\x09\x36\xa8\x67\xa7\x95\x91\xf2\x74\x75\xba\x38\xa0\x99\x81\x2c\xe6\xe7\xe1\x9b\x10\x07\x51\x8a\xeb\x59\x6f\xe5\x89\x03\xc6\x90\x39\x62\x2d\xa7\x1d\xc1\x7a\xc8\xd7\x68\xc7\x65\x34\xb5\xf7\xe2\xa5\x56\x46\xfe\x7f\xdc\xcf\x63\x24\x8e\x44\x80\x48\xbe\xc7\xef\x2e\xae\x8f\xe3\x38\xc4\x08\xbc\xe2\x85\x7a\x28\x47\x81\x53\x1c\x67\x61\x9c\xf6\x34\x7d\x3d\x87\xb1\x57\xb9\x68\x07\x99\x88\xa9\x29\x2b\xa7\x61\x81\xea\x4f\x50\x8c\x53\xd3\x38\x56\x21\x36\xbc\xc0\x3e\x83\xcd\x1e\x79\x80\xfb\x2b\x14\xb3\x1f\x2f\x70\x82\x7e\xeb\x04\x48\x3a\xbb\x15\xf7\xeb\x63\x9d\x61\xc4\xf8\x50\x2a\x94\x93\x76\x01\x4d\x9c\x10\x63\x8c\x53\x43\xb3\xaa\x6d\x53\xda\x48\xd6\xf6\x2e\x3f\x49\xb2\xc4\x74\xbe\xb8\xea\xf1\xaa\x26\x63\x9e\x38\x25\x0a\x85\x1d\xff\x56\xd6\x87\x0b\xef\x25\xd1\x71\x4a\x01\x57\xea\x97\x8a\x17\x73\x5e\xbc\xfa\xbf\x27\x46\x83\x72\x5e\x5e\xf6\x87\xe6\x47\xce\xff\x56\x1e\xf8\x24\x72\x92\x61\x63\x0c\xab\xae\xe2\x62\x48\x32\x75\x7b\x73\xe0\xa8\xfd\xc9\x80\x60\x01\xfb\x2b\x10\xe6\x74\x2a\x16\x67\x21\x0b\xb8\x33\xa7\xa8\x57\xc5\xd4\x16\x18\x67\x99\xa1\xc0\xd8\xa6\xdb\x08\x64\xe0\x07\x41\x24\x3a\x09\x95\xfe\x02\x11\x67\xc0\x88\x13\xde\xe7\x47\x24\x4c\xd5\xf9\xde\x36\x34\xec\x18\x2e\x00\xfb\x23\x0a\xea\xa6\x74\x15\xf0\x58\xb0\x08\x79\x49\xe2\x72\x3a\x23\x98\x71\x74\x69\x22\x23\x2a\xf1\x66\x83\xfd\xad\x73\x74\x79\x42\x12\xec\x99\xaf\xcb\xe3\x91\x12\xe2\xce\x2f\x03\xa3\x6e\x2d\xaa\x92\x2b\xc9\xeb\xe6\xe9\x9c\x17\x43\xff\x17\x86\x0e\x44\xae\xd2\xf6\x5c\xc1\x5b\x5e\x5e\xea\x3b\x5e\x1f\x5e\x72\x5f\x44\x89\x65\xa8\xb0\x32\xbc\xc9\x4f\xe7\x23\xdc\x6f\xb6\x53\x74\x9a\xdf\x75\x2c\x46\xd3\x4a\xa6\x61\x28\x70\x0e\x36\x4d\x39\x6c\x98\xc5\x2a\x48\x52\xcc\xa8\x0a\xf5\xa9\xd4\x35\x23\x31\x64\x19\x10\x2b\x57\x51\xd5\x46\xc9\xcd\x9d\x42\x47\x12\x6b\x18\xdb\xb2\x6e\xb7\xcf\xfb\x1e\x27\xc6\x0e\x49\x48\x68\xaa\x70\x79\xbd\xe5\xaf\xe0\xbd\x5f\xaf\xb6\x83\xdf\xfc\x3e\x7b\x36\x1a\x9b\x3a\x84\x75\x80\xbd\xd2\xac\xea\x6d\xf3\x09\x65\xa6\xa1\x80\xf2\xab\xef\xbc\x72\x32\x19\x9f\x13\xd5\xdd\x07\x39\x45\x1a\x23\xce\x05\x2b\x45\xbf\x06\x2e\x0f\xe3\xfc\x2f\xa1\xca\x10\x90\x6f\x57\x8f\xb3\xc7\xc5\x72\xb7\x98\x3d\x23\x40\x6b\xfd\xf4\xf2\x78\xe3\xee\x40\xa0\x42\xd4\xf0\x35\x4a\x65\xb3\x42\xa1\x6a\xec\x4d\x39\xdc\xb1\x93\x90\xfb\x34\xcc\x4c\xeb\xfa\xc6\xb6\x80\x87\xf3\x30\x89\x92\xcc\xa1\x9d\x9c\x5f\x86\x89\x90\xfa\x13\x2e\x89\x53\x6a\xd4\x70\x79\x53\x95\xd6\x66\xa0\xe3\x19\xba\x6b\x8b\x81\x63\x1f\xdb\x7a\x4e\xb8\x8d\xc0\x61\xe8\x18\x49\x12\x1a\x1b\xb2\x62\x79\x3a\xb5\x4b\x79\x6e\x45\x42\x47\x17\x95\x44\x02\x63\x25\xec\xa0\xb6\x73\xe1\x47\xe9\x37\xc1\x24\x49\x63\x84\xdc\x3f\xfc\xf5\x6d\xbd\x9c\x6d\x11\xd2\xd8\x1d\xe3\x18\xc9\x2e\xe6\x8f\xe3\x53\xea\x10\xc3\x1d\x04\x98\x6c\xb6\xb3\xde\xa2\x98\xa4\x3a\x15\xdc\xba\x98\xed\x72\x9a\xb8\xbf\x67\x04\x10\x3d\xbb\xaa\x2d\xa1\xd5\x1f\xa0\x0c\x59\xd4\xdf\x4a\x7e\x74\xcf\xf2\x2a\x17\xf0\x6b\x77\x92\x29\x89\x5b\xf2\xf6\x70\x69\xe3\xe7\xb7\xfa\x6f\xfc\xdf\xff\x76\xe7\xe2\x01\xb7\xc5\x27\xcb\x0f\xdd\x15\x00\x0a\xd4\xee\x52\x34\xf9\x71\xf7\x4f\x2e\x5f\xcf\xa5\x7f\x01\xb8\xa2\x89\xcb\x44\x3b\xfe\x8e\x3f\x18\xa7\xb6\x3b\xf1\xb3\xac\x5e\xc7\xb9\x79\x22\x48\xd8\xdb\xa7\x0d\x20\x78\xaa\x8b\x9b\x88\x30\x43\x38\x6e\x9b\xf4\x14\x86\xc8\xd9\xf9\x0f\xb4\xc7\x13\x23\x04\xdf\xe1\xc8\xb6\x1f\x67\x98\xc4\x92\xb5\xa3\x33\x86\x64\x96\xe3\xc0\xd9\xa2\x3d\xc0\x13\x5c\x2c\x75\x89\xf7\x25\xf0\x7f\x57\x01\x62\x0b\xe5\xa1\xbd\x38\xb4\x09\x29\x8f\xaa\xbd\x94\xdc\x07\x1d\x89\x4c\x28\x6a\xee\x9b\x1e\xbe\x13\x7d\x3a\x82\xda\x4f\x38\x7c\xb5\xe3\x95\x24\x0e\x5f\xde\x4e\x39\xb7\x7e\x4d\xbf\xb5\x40\x18\x12\x77\x5d\xc9\x6f\x8e\x76\x2b\x57\x95\x76\x37\x1a\x82\xd4\xf0\x2e\x10\x02\x98\x97\xc5\xad\xa7\x52\x30\x92\xe8\x80\x20\xfc\xdc\x16\x76\xc6\x26\x02\xd7\x85\xfb\x44\x87\x21\xf5\xde\xf7\x67\x4b\x98\xf0\x2b\xf8\x55\xe1\xf1\xfa\x0c\x29\x25\x1a\x81\x8e\xef\xdd\x4b\xb8\x2d\x3b\x78\x71\x3b\x82\x9b\x59\xff\xbc\xd8\x0e\x7c\x05\xfc\x61\x8e\x04\x67\xbc\x84\x1a\x0a\x15\x7e\xcd\xfc\xfb\xe2\x5a\x02\x16\x2a\x8d\x32\xac\xed\xea\xc1\xf7\x30\x32\x0c\x18\x6e\x33\x69\xc8\x8c\x63\xd0\xcb\x66\xfb\x60\xe9\x1f\x8c\xa4\x51\xc4\xb1\xaa\x7c\x5f\x7e\xc0\x91\x6f\xa1\x6e\x7a\xaf\x70\x1a\x41\x88\x04\x99\x1f\xb9\x6c\xca\xea\xe3\xf7\xc5\xc5\x34\xd2\x21\x76\xf2\x55\x55\x16\x60\x73\xc3\x01\x21\xc9\x8f\x03\xec\xd0\x9c\xf2\x02\x2a\xc7\x84\x71\x13\xd3\x7d\x7d\x9c\x69\x07\xe7\x58\x97\x65\x73\xe7\xa4\x42\xdb\x43\x5c\x2a\xa3\xe0\x7f\x39\x97\x05\x4e\x3d\x6b\x0b\xe7\x46\x24\x89\xc0\xce\x98\xb5\x0a\xf4\xbf\x38\xc9\x42\x7c\x0d\xf6\x15\x47\x19\xe9\x53\x5e\xd7\x68\xa9\x31\xb2\x66\xbc\x5e\x71\xd2\x44\xa8\xc8\xc2\xce\x76\x6d\xce\xb1\x43\xa8\x4d\xf7\x8d\x9a\x90\xd8\xa3\xb5\x8e\xa0\x9e\xaa\x49\xf5\x28\x46\xd2\x54\x1a\x86\x01\xb6\x9f\x87\x28\x15\x3b\x82\x11\xc3\x31\xc0\x16\x07\x28\x94\xb4\x1b\xdd\x43\x96\xea\xc0\xe4\x8f\xd5\x29\x2f\x78\x03\x3d\x58\x4f\xca\x98\xc4\x79\xb8\x30\xbe\x90\x17\x51\xcb\x2a\x3f\x4f\x85\x29\xee\x03\x59\x82\xd9\xfa\x5b\x89\xb9\xa5\x31\x44\x18\x7d\xa1\x94\x98\x11\xec\xcc\x52\x77\x9f\x4b\x28\x6a\xd8\x42\x75\x9a\xe0\xe9\xb8\xbe\xb1\xbb\x87\xc3\x97\x3b\xe5\x71\x96\x59\xc3\x91\xc6\x88\x17\xb9\x2b\xe7\x2c\x45\xf8\xc0\x5f\xe5\x65\x56\xc1\x1d\x54\xa3\x95\x2f\x15\x84\x61\xbe\x56\x5d\x8a\x0d\xfe\xa8\x7e\xe5\x20\x55\x81\x32\x2e\x71\x0d\xaf\x9a\x9d\xe3\x84\xb7\x07\x52\x66\x0c\xdf\x2b\xe9\xf7\x50\x29\x7b\xe0\x9d\x54\x65\xc6\xe8\xe4\xc4\x7f\xa1\x47\x81\x38\xc2\xe6\xa3\x68\x0e\xf5\x30\x76\x89\xec\x70\x88\x25\x96\x02\x3d\x83\xe7\xa5\xa8\xc7\x8b\x7e\x0a\xc2\xa8\x3c\xf7\x14\x5e\xfc\x54\x44\xfb\x47\xb7\x7b\x5a\x84\x0c\x98\x62\x7f\xdd\x8d\xe1\x06\x29\x7a\xf4\x84\x8b\xd1\x9d\xd4\xa1\x90\xe0\x9a\x87\xdf\x8c\x82\xb9\x51\x72\xc1\x85\x7d\x78\x39\x5a\xb0\x30\x72\xcc\x97\x35\xff\xf7\xf0\xd6\xb6\x21\x0e\xb6\xc9\x30\xd8\x34\x50\x4d\x6e\x5e\x7d\x3b\x80\x86\x91\x64\x8e\xfa\xd2\x86\x2b\xa8\x49\x36\xbd\xdc\x33\xca\x29\xe2\x7f\x40\x9e\x2e\x57\x06\x98\xa3\xb1\x01\xcf\x50\x5f\xce\x20\xdb\x66\xcd\x1f\xc3\xa3\x00\xc4\x78\x60\xc9\xe1\x5b\xda\x5f\x7c\x58\x18\xaa\xd4\xd8\x24\x7a\x1a\xd0\xf0\xe7\xb3\x30\x31\x1a\x7e\x46\x81\xc2\xd4\xad\xdd\xad\x66\x11\x40\xcc\x3c\x4d\xcc\x10\x43\xbe\x66\xaa\xda\x0f\xc6\x0a\x90\xc1\xf4\xf0\x34\xef\x97\x42\x59\x42\xad\xec\x7e\x1f\x75\x3c\x7c\xed\x58\x22\x0c\xf1\xd4\x6a\x7d\x3d\xe9\xd1\x15\xa7\x44\x48\x4b\xf4\x93\xaf\xf3\x09\xc2\xfc\xf0\x52\xd2\xd8\x14\x61\xf6\xd0\xdc\x56\x00\x73\xee\x26\x37\x4b\x15\xc7\xec\xdb\xc8\xc7\x15\x1d\x1c\x99\x11\xc6\x80\xe0\x9a\xd8\x5c\xaa\xe2\x49\xeb\x85\xd3\xc8\x7d\x84\x5f\xe8\x66\xf8\x5c\x36\x9b\xf3\x31\xf7\xe7\xca\x02\xc1\x78\xbf\x07\x67\x96\x30\xaf\xdd\x30\x7d\x6d\x99\x32\xa2\x4f\x7b\xc0\xa5\xfc\x49\x5f\xb1\xc1\x18\x61\x3c\xc9\xac\xa7\xe6\x2b\x14\xbe\xd2\xb6\xf1\x19\x24\xe3\x82\x62\x78\xb3\x87\x66\x20\xe6\x73\x23\xfa\x40\x3c\xc6\x65\x16\x29\xd7\x5c\xe0\xe7\xb2\x58\xf9\xc8\x81\x71\x30\x2e\xec\x0f\xe5\x1b\xdc\x03\x32\xb0\x3f\xb9\x64\x49\xa3\xcc\x12\x51\x57\xb2\xc4\x1a\x53\xf0\xd9\x50\x6d\x30\xce\xb9\x71\x7c\xd8\x55\x18\xce\xbb\xaf\x04\xc2\xc1\x02\xeb\x50\x7a\xf1\xbe\xdc\xfb\x6d\x96\xe9\x90\x60\x16\x34\xcf\x9b\xe5\x07\x0c\xa6\x90\x0e\x13\xe3\x92\xce\x8f\x72\x64\x05\xd6\x1e\x8d\x54\x60\x0a\xbe\x12\x8a\x26\x7f\xcb\xeb\xbc\xd8\x2f\xb5\x2e\xab\xa6\x1e\x16\x6d\x99\x66\x01\xb2\xa4\x1f\xa0\xb8\x90\xd0\xff\x55\xa6\xb8\x85\xbc\xf3\xba\xdd\x3c\x50\x78\xc9\x6f\x68\x19\xa1\x14\x43\xcc\xb3\x41\xed\xf5\x6a\x66\x19\x89\x29\xd6\x7d\xf2\xb3\xae\x77\x87\x6e\x63\xce\x48\x22\x68\x38\x10\x2d\x5e\x1c\x79\x3e\xa9\x81\xdc\x8e\x66\x02\xdb\x48\x33\xf5\xd6\x3e\xcb\x1a\x06\x5d\xeb\xc9\x37\x26\x23\x82\x22\xf5\x55\x43\x23\x0f\x8f\xfd\x79\x9c\x11\xc5\x30\xea\xb7\xe1\x3d\x6e\x63\x95\x37\x64\x6f\x07\x40\xa4\x4c\xa6\xf4\xfb\x36\xf6\xf8\x52\x75\x86\xdb\x47\x85\x4a\x6a\x6d\xea\x34\x29\x5e\x39\x0e\xd3\x32\x2a\x8c\x52\xca\x66\xbb\x7c\x70\x97\x41\x55\xca\xe3\x3e\x9a\xe3\x36\x87\x63\x37\x07\x27\x1b\x19\x19\xd5\xa1\xd0\x5e\xa8\xb9\x7b\x4a\x54\x1b\x30\xfc\x1e\x0a\x62\x8b\xa1\xfd\x37\x21\xa3\x5a\xa2\xac\x52\x5e\xa3\xcf\xdd\x6a\xf1\xd4\x75\xa4\x3f\x79\x2c\x01\x25\xd8\xa7\x98\xbd\x95\x92\xab\xb2\x3f\x23\xb3\x20\x30\x31\x7c\x0d\xcd\xd3\xcd\xf2\x61\xf8\x74\x07\x57\x3e\xba\xfe\x80\x05\x88\x21\x59\x9a\x98\xa7\xc3\x89\x66\x41\x66\xba\x64\xed\xa6\x72\xa9\x8a\x51\x8d\x31\x8b\xc2\x00\xdf\x81\xe2\x72\x6a\x17\xa3\xba\xdd\xd6\xd4\xd3\xc5\xff\xc0\x28\x55\x48\x6a\x37\xd0\x7c\xab\x57\xe1\x8e\x31\x85\xfc\x96\xe1\x4a\xb5\x2d\x97\xcd\x61\xfa\x3d\xce\x22\x10\xd0\x4e\xe0\x7f\x96\x39\x42\x94\xaf\x16\xdc\xe9\x59\x19\x27\x04\x5f\xc5\x45\x59\x48\x38\x7f\x6d\xad\x37\xb0\xa6\xf2\x9f\x37\x7b\x88\x51\x7b\x6b\x6e\x01\x83\xb0\xe1\xe2\x98\xc5\x99\xa5\xc5\x95\x75\xd3\xdd\xbe\x38\x93\xc2\xad\x88\x6d\x40\x6a\x12\xb5\xdf\x20\x62\xb2\x98\x0b\x63\x44\x58\x16\x7b\x14\xa4\xac\xda\xa0\xc1\x9f\x53\xca\xb0\x53\x6d\xb8\x2d\x2b\x90\xbc\xbe\x6e\x10\x5c\x7a\xda\xd1\x23\xa4\xa0\x2d\xd0\x66\x89\xe0\xd2\x36\xba\x1f\xe1\xfd\x81\xff\x72\x81\xce\xe8\xb7\xa5\x01\x47\xbd\xd2\x72\xb4\x23\x64\x2c\x4c\x71\x07\x5c\x6d\x97\xd3\xa0\xea\xfe\x92\x98\xb1\x88\x72\x3e\xf0\x70\x08\x62\xf7\xa3\x18\x78\xdd\xa8\x35\x3f\xa9\x6e\x96\x30\x9d\xa4\xc6\xf9\x19\x7e\x19\xa8\x9f\x3b\x92\x45\x80\xdd\xcc\xcd\xf6\xe5\xc6\xcc\x1a\x77\x20\x13\x69\xa7\x25\x3d\xe7\xf5\x35\x91\xdb\x2f\x01\x59\x26\xb1\xb9\x68\x9c\x3b\x11\x5b\xbd\x2a\xda\x5d\x80\x8f\x45\x1f\xda\xc1\xda\x94\xdd\x4f\xf9\xf1\x68\x9b\xe2\xcf\x3c\xf7\x17\xc4\x13\x8a\xae\x2b\x0d\xa6\x6a\xa7\x33\xaf\xfc\x9a\xcc\x19\xc5\xc5\x3c\x3f\x9d\x8e\x7c\xf0\xce\xf2\x0c\x9c\xee\xd3\xf2\xd7\x19\xe9\x74\x03\x49\xa3\xe9\x55\x80\x43\xe6\x74\xae\xe7\xbc\x69\xec\xf6\xd0\x7f\x33\x45\x60\x4a\xd6\xb2\x2c\xea\xcb\x09\x9e\xce\x60\x00\x81\xe3\x3e\xa5\x1d\x2e\x63\x61\x5a\x8a\xc8\x67\xbf\x81\x2e\x25\xb1\x03\x54\x9a\x91\xc0\xbb\xe4\x4d\x08\x2d\xbb\x71\x2c\x63\xcc\xd9\x3c\xe4\x62\x58\x56\xcb\x54\xc6\xb3\x3e\x5b\xe1\xa1\x2c\x06\x4c\xa3\xfe\x39\x93\xc8\x7d\x88\x8b\xc4\xce\x1b\xdf\xe8\x18\x16\x63\x33\x08\xa2\x10\x31\xc9\xbc\xf8\xc5\x8b\xfd\xa2\xb7\xeb\x41\xc4\x03\xe5\x80\x7e\x2f\x45\x9b\xcd\x76\x73\x08\xe2\xa0\xaf\xf8\xf2\xeb\x0c\x55\x0e\xe3\x22\x89\x5f\x26\x41\x1b\x6a\x8a\x37\x61\x1d\x6d\xca\x9a\x49\xdc\x4f\x7e\x40\x55\x5f\x4e\xbf\x7f\x21\xb4\x8c\x4c\xb0\xf3\x7d\xfd\xb2\xb9\xf1\x67\xd1\x22\x20\x1d\xa0\xc4\x76\x4f\xc6\x58\x3b\x4e\x68\x8c\x60\xab\xf5\x7c\xb6\x78\x18\x68\xf2\xba\x01\x32\x4a\x68\x47\x28\xb5\xf5\xa2\x52\x21\x46\x75\xf0\xd0\x38\x8d\xb9\xb2\xb1\xd4\xba\x94\xaf\x60\x80\x86\x13\x9b\xe8\x64\x1d\x64\xb4\xad\x72\xca\x99\x81\x56\xa2\x1b\xd4\x10\xee\xe6\x86\x08\xee\x1e\x69\xbb\x65\xdc\x83\x46\x64\xf1\x2f\x27\xdf\x3a\x3d\xb9\x38\x05\x43\x82\x6f\x03\x39\x14\x21\x1c\x1e\x0e\x42\x85\x65\x17\x04\x04\x70\xb5\x87\x3f\x46\xfb\xc2\x68\xb8\x52\x28\x55\x6c\xab\x71\x91\x7d\x00\x3c\x4c\x21\x08\xad\xe6\x76\xa5\xee\xf2\xfd\x61\x33\x08\x4a\x86\x3f\x25\xe4\xc6\xb9\xc4\xf2\xa1\x71\x4a\xdc\x74\xe1\x18\x0f\x35\x13\x96\xfc\xfb\xb3\xac\x5e\xf5\xb1\x7c\x7f\x74\x42\x8d\xdd\xb5\x84\x3a\x13\xa1\xf3\xdd\x5d\xf0\x73\x37\x1f\x78\x14\x18\xc3\xa5\x1f\x79\xc3\x4f\x43\x3a\x00\x8f\x49\x2a\x4d\x00\xb1\xab\xcd\x5c\xdc\x89\x9e\x07\x55\x3b\x82\x4a\x5c\x58\x51\xe7\xf2\x06\xe4\x91\x57\x56\xf8\xc4\x2c\x19\x6e\x58\x64\x12\x80\x33\x6a\x7b\x0c\xbf\x43\x4a\xcc\xda\x6d\xdf\xfc\x47\xce\xbf\x34\xff\xb1\x9f\x4a\x00\x52\x35\x50\x5a\x9d\xdb\x69\xe5\xce\x9b\x86\x4c\xf4\xdd\xc4\xdb\x1b\x8d\xfa\x23\xcf\xff\x3f\x6b\x6f\xd6\xdc\x38\xae\x65\x8d\xfe\x9d\x7a\xb8\x0f\xc4\xc0\xe9\x51\x96\x65\xa7\xba\x6c\xcb\xc7\x52\x56\x9d\xea\x13\x1d\x0a\x0c\x1b\x36\x3f\x53\xa4\x9a\x83\x33\x55\xbf\xfe\x06\x37\x00\x4e\xa2\x9d\x75\x6f\x7c\xd1\x71\x22\xab\x4d\x90\xe2\x00\x6c\xec\x61\xed\xb5\xca\xf9\x74\x49\xa9\xc4\x86\x81\xb3\xb8\xd8\x54\xfc\x15\x04\x6a\xfa\xe3\x69\x6c\x6b\x06\x35\x14\xfa\x00\xe2\x34\xe3\x85\xba\x1a\x9d\xa2\x97\xd6\x2f\xeb\x2b\x7c\xd2\xf2\x79\x22\xec\x01\x65\xe8\x38\xdd\x95\x2e\x5f\xb4\xcb\x67\x95\x0e\x21\x64\x80\xc1\x4a\x01\x3f\x9b\xbe\x97\xc9\xca\x6e\x8e\x8c\xb6\x90\x91\x95\x2f\xb0\x69\xaa\x17\x50\x6d\x55\x0d\x22\xac\xd3\x44\x95\x90\x32\x09\x6d\xbd\x0f\x61\x4e\xb3\x2c\x95\x50\x21\x47\x2c\x6e\x69\x2d\x7f\x31\x83\x8a\x08\x15\x11\xe4\x5a\xbf\x19\xda\x7d\x91\x3d\xfe\xf3\x45\xef\xac\xf2\x6c\xfe\xab\xc4\xd6\x3e\xd1\x4d\x19\x4f\x29\x25\x04\x62\x51\xce\x88\x86\x98\x54\xe3\xdc\x08\x4d\x62\x49\xfb\x8d\x7a\x9f\x35\xb0\x87\xc5\x06\xd0\x6e\x2c\x55\xc6\x21\x27\xd6\xe2\xfc\xc9\x97\xd4\xa0\xb1\xd8\xe6\xf8\x4c\x1f\x4a\x31\xe6\x31\x4d\x02\x01\x1c\xb0\xcf\xee\xe8\x42\xc1\x01\xae\x2f\x40\x07\x88\x71\x7e\x28\xcb\x02\x2e\xb7\x59\xbf\xb9\x08\x13\x05\xb8\xf5\x39\x5d\xd7\xed\x7a\xe7\x55\xaf\xf1\xa0\x8e\x9d\xbc\xc1\xc6\xe5\x2b\x9f\xab\xf2\x23\x5b\xc0\x15\xfb\x33\x74\xc2\x79\xaf\xca\xf9\xd1\xf9\x70\x3d\xb9\x4f\x7f\x55\x0d\xc2\x61\x55\xb6\x7e\x7b\x91\x01\xa5\x88\x09\x70\xd5\x8c\xb6\x2a\xe6\x05\x0f\x49\x03\x8a\xdd\xa6\xcd\x1b\xae\x22\xff\xd7\xd4\xc4\xaa\xe7\x4c\x98\xd7\xc5\xe6\x2c\x52\xee\x24\x16\x28\xc2\xfa\x2e\x8b\x43\xb9\x2f\xfb\x9e\x5b\xc9\x12\x5b\xdf\x79\xb6\x4a\x9d\x87\x9f\x5e\x85\xb1\x3b\xa6\x98\x4e\xc6\xb5\x72\x6c\x54\x53\xcb\xac\x44\x49\x20\x39\xb7\x4a\x44\xf0\xb3\xa9\xc4\xbe\x11\x4d\x7d\x57\x56\xf7\x53\x2d\xfe\x24\x90\x21\x25\x2c\xf2\xe0\x3e\x54\x51\x1f\x92\xe1\x32\xa4\x21\xe6\xd9\x7c\x88\x82\x3f\xfc\x67\x25\xce\xe7\xab\x37\x14\xc6\x09\x75\xb4\xb9\xaa\x2f\x9a\xcc\xdd\x21\x19\x39\x31\x8b\x1f\xe2\x1d\xbe\xcf\x5c\x7d\x19\x39\x72\x1d\xeb\x80\x6f\x4e\xe7\xe6\x82\x3d\xfa\xfe\x6e\xa2\x94\xa4\x23\xac\x2d\x66\xc0\x97\xdb\x1d\xff\x9f\xc9\x27\x20\xee\xfc\x58\x09\x24\xcc\x41\xb9\x8c\x6b\x70\xa6\x4c\xc2\x10\xd3\x2c\xff\x9d\xbd\xbe\x5e\xc6\xa6\x5a\x26\x10\x69\x32\xe0\x52\xbc\xd7\xdb\xbd\xd5\xf6\x9a\xe1\x65\x30\x3c\x52\x70\x19\x87\x43\x2b\x6b\x59\x4c\xba\x8c\xa5\x64\x2c\x0a\x46\xf0\x90\x43\xb9\x55\xe5\xec\xae\x14\x09\x31\x0f\x68\xab\x6c\xb3\x57\xa6\xd2\x54\x49\x47\x65\xf5\xd0\x79\x18\x3e\x42\x92\x3a\x48\xed\x77\x6d\xf3\x26\xc3\xc6\x58\x7f\x80\xc6\xd4\x32\x4c\xaa\xb6\xca\x9a\xcb\x55\x2f\x9c\x04\x66\x61\x8e\xdd\x57\xb7\xef\xf7\x09\x7e\xcc\x7e\xd8\x04\x29\xfa\xb5\x65\x75\x7e\x13\x45\x73\x5d\xf6\x91\x26\xe4\xd8\xf5\x7c\x12\x3f\xb7\xeb\x9d\x05\xfc\x4e\x8a\x7f\xd2\xa4\x89\x15\xd7\x12\xef\xb0\xff\x21\xce\x3d\x37\xa8\x3f\x2e\x2d\x09\x59\x0d\xcd\x55\xa0\xb1\xbc\x75\x48\xe3\x44\x51\x6a\xc8\xf3\x3f\xca\x56\x8d\xd2\xca\xd2\x40\x92\x58\xdd\x86\x39\x0e\x44\x05\xa1\xc4\xed\xde\xf2\xf9\x1f\x95\xc8\x73\xd9\x4d\xbc\xc9\xc6\xa0\x02\x41\x11\xda\x82\x59\x18\xcb\x30\x5f\xb7\x79\x73\x57\x56\x3d\xc1\xf2\xf4\x1d\x28\x92\x68\xee\x92\x1e\x5e\xcf\xb4\xbc\xb3\x5e\x51\x3d\x1f\x9a\x5a\xee\x01\xdb\x59\x85\x4a\x7b\x0e\x89\x6a\xd5\xfa\xb7\xc5\x88\xb4\x6b\x7a\x2a\x75\xb2\x17\xce\x3a\x3b\x45\x51\x6f\x38\x14\x0b\x0c\xd3\xbe\x95\x61\x46\xc6\x3c\x7d\x0d\x8c\x72\x65\xdb\xc9\x6e\x44\x9e\x97\xcd\xb6\x33\xb9\xaf\xb8\xb9\x8d\xfd\x75\xc5\xe2\x04\x3b\x73\xbc\xa6\xef\xfc\x59\x58\x9a\x1a\x9b\x71\xef\xfc\xa1\x9e\xaf\xb8\xbf\x21\x63\x43\x28\xa1\xf5\x9d\xa8\x4e\x73\x53\xa2\x38\x65\x28\xad\xd3\x54\x97\x43\xf9\x67\x6f\x8d\x14\x87\x50\x0d\x55\x67\x2c\x53\x40\x9d\xfd\x0d\x5e\xbe\x62\x58\x77\x2a\x94\x80\x53\xeb\xfb\xfd\x78\x66\xab\xc8\x18\x8c\x24\xdf\x01\xce\x22\xcf\x3e\x60\x5c\x45\x56\x71\x18\xc4\xce\x79\x7e\x44\x68\xe5\x8c\x0d\x28\x09\x54\x12\x44\x98\xbc\xf3\xd5\x94\xa3\x4f\x2b\xaa\x84\x04\x98\x66\x7b\x6c\xd5\xe4\x27\x13\xa2\x88\xcb\x54\x20\x8e\x0d\xb9\x67\xfc\xb1\x48\x21\x59\xc2\xba\x3c\x9d\xca\x62\x53\x55\x65\x35\xae\xeb\xa8\x44\x50\x4b\x72\xdd\x5d\xd0\xcf\x0a\x3e\x96\x23\xe9\x06\x19\x8d\x15\x87\xb3\xab\xaa\x4d\x36\x66\x95\x86\x04\x9d\x41\x37\x37\x30\x75\x85\xa5\xf5\x6d\x71\x97\x15\x05\x5c\xfa\x81\x51\x48\xe3\x5e\xef\xa1\x54\x96\xf0\x75\xb5\xdb\x43\x83\x34\x41\xd3\xa5\x90\xa6\x5a\xbb\x3e\x40\xeb\x6d\x65\x4a\xe4\x37\xad\x1e\x98\x20\x94\x88\x05\x36\x78\x99\xb2\x52\xdd\x4a\x81\x3e\x9e\x53\x42\x28\xe2\x34\x96\x0e\x59\x93\xc3\xf6\x34\x94\x72\xfd\x10\x08\x90\x4e\x00\x35\x64\x77\x0a\xc4\xa7\xa4\xd3\xff\x7f\xff\x75\x3f\xa4\x83\x00\xb3\x1d\x0e\x4c\xdb\x45\x3f\xc5\x12\xec\x78\x31\x48\x51\x9a\x72\x44\x9f\x97\xc6\x5c\x97\x84\xe6\xbf\x14\x0a\xe5\xba\xde\x57\xe7\xf3\xb6\xa8\x1b\xf4\x9d\x17\xbd\x04\xa5\x05\x45\x2f\x73\x73\x7f\xbf\x3f\x1e\x76\xc7\x6f\xab\xc3\xfa\xdb\x91\x1c\x76\x2b\x1f\xbf\x28\xad\x52\x8c\x8a\x5f\x36\xfb\xc3\xcb\x76\x7d\xd8\x78\x19\xc5\xe3\xed\x77\x94\x9e\xf5\x60\x16\x05\x51\xa0\xbd\x56\x38\x9a\xac\x31\x9c\x50\x81\x02\xec\x49\xf0\xb9\x83\x43\xf9\x0b\x33\x61\x68\xe4\xeb\x0c\x88\xbd\xc2\x1a\xc1\xe0\xba\xe9\x20\x56\xe8\x4f\xdd\x67\xa6\xf1\x73\x5d\x93\x20\xc5\x2a\x9c\xa9\x00\xfe\xfd\xf0\x78\xdf\xff\x5d\x6a\x64\xf1\x74\xf9\xeb\x6f\xfd\xc4\xd6\x44\x49\xaf\xb2\x7e\x8b\x12\x98\x9d\xaf\x3e\x5e\xb0\x9a\x72\xc0\xd6\xfe\xfd\x76\xff\xfb\x01\xd4\x5b\x51\xe6\xe5\xeb\x05\xf9\x56\xc7\x6b\x50\x53\x45\x2c\x9c\x48\x74\xcf\xaf\xda\xb9\x38\x86\x63\x8b\xd0\x8c\x6a\xc4\xcd\xaf\xdf\x44\xb9\xf9\x39\xb9\x04\xa3\x06\x39\xbb\xb2\x7a\x86\xbc\x72\xc7\x43\x0a\x36\xd2\x77\x0a\xb9\x5d\xcc\x3d\xc6\xa4\xe9\x30\x62\x08\xda\x7c\x28\x5f\x6d\x7d\xda\xbf\xe4\xbe\xf0\xfc\xe5\xce\xa6\x23\x62\x95\x4d\x50\xb0\x0c\x6b\x4e\x57\x54\xd4\x8b\x4d\x04\x63\xec\x99\x8e\xa5\xad\x90\x67\x85\x2a\x4f\x59\xf1\x6a\x77\x98\x11\xad\xb3\xb7\xd1\x3a\xd6\x89\xa5\x92\xc9\x3e\xe0\x11\x6e\x84\x7a\x7f\xbc\xa0\x8b\xd8\x0f\x30\xb6\xea\x76\x10\x3f\xb3\x89\xc5\xd3\xb1\x49\xa9\x6f\xca\xab\xc6\xb4\xb4\xd3\x07\x4a\x42\x4b\xe7\x38\x8a\x18\xbe\x5c\x3f\x3a\x91\x2c\x71\xf9\x9b\x7f\x35\x97\x7d\x03\xe7\xbb\xb6\x98\x42\x42\xfb\x08\xeb\xf3\xff\xf0\x17\x53\x36\x17\x71\x6e\x65\x9e\xd5\x6f\x13\xa2\xc8\xf1\x1b\x4b\x43\xe9\xd4\x4a\x3a\xcf\x65\x3f\x18\x31\x9d\x3a\x8c\x5a\x05\x66\xec\xd3\x69\x21\x88\x4f\xfe\xde\x3a\x5f\xf8\xae\xac\x2c\x2c\xfa\xeb\x4a\xa6\x96\x71\x8a\x93\x68\x8f\x04\x7c\xab\x42\xdf\x95\xde\x9f\xd3\x52\xc6\x68\x71\x5f\x84\xca\x8a\xd7\x75\xde\x4a\x57\xf8\xe8\x07\x68\x40\x08\xfc\xf3\xf6\xb8\xb9\xdd\x1e\x8e\x3e\xed\xa2\x95\x30\xde\xb2\xbf\x80\x99\x54\x8f\xb4\x92\xc6\x73\xb3\x5a\xf9\xb2\x11\xbb\x8a\x56\x10\xf8\x0c\xcb\xea\x87\xa8\xf4\x08\x34\xa5\x15\x80\x72\x0a\xda\xdf\x5a\x14\x1a\x5a\x00\x6c\x69\xad\x14\xd6\xd6\x2d\x13\xcd\xf1\xdb\xea\xe5\x76\xc4\x0c\xa0\x41\x87\x49\xd4\xc7\xa9\x77\x95\xe3\xd9\xf9\x66\x99\x5e\xa6\x5e\x81\x06\x48\xd1\x88\x9d\x90\x0f\xcf\xb1\x63\xfa\x2b\x19\x6a\x71\x09\x07\xd0\xfa\x32\x48\x7d\x77\x47\x38\xc1\x0f\xfd\xd4\xaa\x1c\xda\xfa\x8f\x0c\x91\x2f\xd9\x09\x9c\x3e\x85\x5d\x02\xc8\xe4\xff\x4b\xa5\xa0\xd9\xe7\x32\x82\x59\x8e\x6f\xf1\x01\x16\xd6\x35\xde\xc2\xb4\x91\x24\xe0\x9e\x0a\x09\x01\x41\x64\xf6\x48\x06\x00\x53\x8d\x4f\xf0\x63\x84\x63\x81\x80\xa5\xd8\x7b\x5a\x61\xca\xf0\x1e\x8d\x36\x36\x74\x4f\xb3\x87\x7e\xb4\x0a\xb0\x47\xe2\x51\xd4\x35\x72\xba\xec\x91\x3f\xc1\x5f\x8c\x30\x49\x9c\x8f\x71\x16\x85\x0d\x6b\x5c\xbe\xff\x1f\x61\x5b\x81\x84\x32\x8c\xfa\xdc\x89\xa5\xee\x9d\x3e\x07\x90\xd0\xc4\x91\x2f\x66\x65\xb9\x5e\x98\x0a\x40\x12\x86\xd9\xae\xf5\xc3\x6a\xbf\x3f\x3e\x3f\xac\x9e\x0e\xfd\x2d\xca\x54\x59\x0a\xd6\xa2\x5b\x8a\x98\x77\xff\xba\x17\x0f\x68\x48\x62\xe5\xb1\xb0\xb5\x6d\x00\x18\x9e\x99\x46\x96\x49\xab\x5b\x82\x65\xfb\xba\x40\x96\xd5\x0d\xd2\x21\x62\x90\xbb\x5d\xdf\x71\x21\x0e\xdd\x9b\xc0\x98\x25\x78\x73\x7c\x63\x3f\x4a\xd3\x1f\x89\x25\xe6\x33\x46\x88\x99\xa7\xce\x98\xce\xaf\xcf\x0c\x11\x36\x51\xf7\xfa\x9a\x8f\x2a\x25\x83\x97\x0a\x3c\x06\x2c\xa8\x38\x6e\x6e\xfc\xbc\x9d\x67\x59\xb6\x0d\x02\x56\x77\x66\x9a\x5b\x82\x90\x1a\xac\x03\xe3\xd3\xae\x45\xfd\x46\xfa\x23\x3a\xc6\x6c\x51\x17\x96\x5c\xa3\x98\xfb\x1d\x61\xa6\xb4\xd2\x9d\x08\x01\xe2\x40\xb7\x87\x9d\x25\xf5\xf4\xcd\xca\x10\x71\x5b\x9e\x93\xed\xe5\xa6\xc4\x6f\xe2\x0f\x48\xdb\x0c\xb5\xf6\x05\xc6\x1b\x51\xbc\xbb\x89\xe1\x86\xc4\x5c\x06\xbc\x2f\xd9\x60\x59\xdc\xc2\x2b\xac\x44\xf4\x0b\x7c\xe0\x3a\xdc\x14\xce\x3b\xb4\xff\x6f\xff\x9c\x89\x24\x76\x0b\x71\xdc\x1c\x96\x78\xe5\xff\xb3\x07\x38\x7d\xd2\x34\x88\x5d\x8b\x32\x96\x2c\xfc\x6f\xa5\x82\x60\xbf\xfe\xfe\xb0\x3a\x7c\xdf\x1f\x1f\x36\xc3\xc4\x4c\x21\x05\xcf\x5c\xdd\x9d\xb2\xd5\xf5\xcd\xe5\x50\x9e\x33\x35\x9b\xdc\xa9\x49\x13\xe5\xab\x6c\xca\x79\x82\xf3\xe4\x07\x88\x84\xc6\x4e\xdb\xc1\x62\x95\xa7\x87\x25\xb1\xcc\x67\x27\x5b\xbb\xd9\xea\x43\xb9\xfd\xe3\x93\x96\x49\x90\x91\x8c\x8d\x47\x91\x5b\xb3\xf9\x2c\xb2\xea\xd3\x38\xd9\x9f\x26\x83\x64\xe8\xe2\x73\xce\xa0\x3f\x06\x1a\xeb\x23\x5e\x71\xaa\xfc\xbc\x15\xd3\xdf\xd3\xe0\x45\x82\x62\xb6\xab\x14\x75\x34\x6f\x2e\x2f\x85\x9e\x2a\xaa\x77\x43\xb8\x48\x2d\xaa\xdb\xe5\x83\x7b\x05\xbf\xe9\x38\x0d\x8c\x3a\x68\xf2\x6d\xa9\xda\xce\xed\xf3\xc4\x1e\xf3\x81\x26\xe9\x73\xf0\xbd\xbb\xe1\x0e\x42\x1a\x23\xfa\xe3\x08\xcd\xdb\x34\x64\x02\xc3\x42\x66\x69\x75\x2e\x58\x3d\x9e\x06\x37\x60\x04\x47\xa6\x20\xf8\xd9\xdc\xf8\x64\xdb\xd7\x3b\xb7\x09\x18\x1f\x64\xf4\xad\x5f\xd7\xb9\x14\xaa\xd4\xd3\xb8\xc6\x04\xcc\x88\x68\xc4\x77\xf0\x0c\x3d\xd5\x9b\x21\x09\x53\xb6\xfd\xb0\xce\x9a\x9e\x89\x38\x09\x0c\x0d\x18\x6e\xed\x7d\x27\xc8\xf4\x3d\x18\x9a\x26\x29\xef\xbb\x8a\xef\xca\x6a\x0d\x73\xd4\xb2\xa1\x46\x04\xae\xa5\x78\x0f\x79\x6e\x4d\xf4\x64\x72\x18\xc6\x15\xf1\x1a\x2b\x65\xd5\x80\x1e\xa5\x02\x0d\x4b\x2d\xec\xdd\x19\xa6\xad\xce\xfa\x3c\xa8\x61\x26\x48\xdd\x4e\x77\x7f\xbf\x5e\x34\xb7\x86\x13\x88\x23\x87\x4a\x70\xd5\xfe\xd9\x1d\x72\xce\xa8\x73\x4e\x61\x5c\x22\x35\x3c\x64\x88\x89\x45\xe8\x69\xb7\x75\x57\x9b\x5c\x9c\x07\x14\xaa\xe1\xc2\x9a\xe4\x1a\xe0\xd1\x89\x63\xf6\x2f\x95\x4b\x25\x13\x1f\x43\x23\x93\x69\xdf\x6e\xe1\x46\x84\x61\x64\xf1\xc9\x58\xaa\xee\xff\x2a\x18\xee\x30\x57\x7a\x22\xff\xac\x25\xc4\x84\x10\xa0\x10\x6e\xfd\x56\xb6\xb9\xbe\x29\xcb\x7a\x56\x67\x30\x91\xb2\x4d\xde\x35\x34\xa8\xfe\xbf\x28\x03\xde\x8d\xd3\xb1\x65\x45\xf8\x21\xce\xd3\xfd\xc0\xc4\xda\xb2\x5d\x63\x2b\xda\x0b\x08\xed\x39\xd3\x87\xfb\x88\xc1\x12\x65\xad\x9e\xb6\x8f\x9b\x71\x8b\x83\x49\xa2\x00\xdb\x1f\xb6\xf3\x94\xbd\x49\x52\x81\xdb\x8c\xc4\x2c\xd0\x93\x38\xc1\x34\x01\x64\x92\xd4\xe2\x2f\x07\xba\xd5\xdb\x97\xc7\xdf\xaf\x01\x20\xb3\x77\x92\xe8\x08\x6b\xd8\x15\xe8\x39\xa7\x6c\x77\x14\x04\x26\x43\x9f\xdb\xe6\x78\xf3\x72\xf8\x76\xbc\xbf\x3b\xcc\x26\x91\xa0\x31\x35\x7e\xdb\xef\x76\xca\x6e\x26\x2d\xd0\xdc\x24\xb3\x1f\x16\x3c\x44\xb8\x8c\x2a\x4f\xe7\x1c\x1a\xd0\x07\x51\xbf\x4f\x52\xb1\x46\xb8\x3a\xfc\x2b\x6a\x05\x5f\xa0\xaa\x7b\x00\x40\x33\x9f\xcb\x22\x4e\x79\x0f\xd8\xab\xef\xca\xca\xe5\x66\xfa\x6b\x25\x51\x60\x9c\xb2\x5d\xdb\xc0\xc6\x41\xf9\x1f\x45\xa1\xaf\x9a\x14\x8d\x22\x91\x87\x97\xf6\xad\xab\xd7\x8b\x03\xb8\x15\x67\x74\xc6\xd9\x36\x6d\x3c\x8b\x8b\x05\x0e\x2d\x09\x06\x90\x68\xde\x84\xea\x2f\x25\x35\xf6\x7c\x79\x79\xd7\xb1\x81\x22\x41\x40\x0c\xe2\xc9\x5c\x07\xc2\x88\x7e\xde\xc5\x4e\x24\x20\x11\x37\xf1\xc8\x86\xdd\x3c\x0f\x8e\xca\xd2\xb6\xd3\x9d\x61\x3b\x6d\x5e\xa1\xb9\x69\xd4\x0b\xfc\x6f\x0b\x75\x33\xb0\x46\x2d\x30\x8a\x90\x80\xb2\x24\xb6\x69\xcb\xaa\x78\x01\xfd\x92\x49\x59\xda\xe2\xc4\x74\x1c\x0b\x00\xd3\x04\xab\x07\x1f\x58\x90\x80\x07\x36\x93\x5f\xb4\xa7\x9d\xf1\x5a\xfb\x75\x7f\x94\x12\x5c\x78\x9b\x9f\xe7\xce\x67\xf1\x41\x40\x7f\x38\x04\xa1\xbd\xd4\x9a\xa7\xc0\x4f\x48\x10\x0a\x61\x11\x25\x95\x28\x9a\x95\xfe\xc8\xea\x72\x09\xc7\x4e\x82\x88\x83\x6f\x9c\xb5\x5e\x51\x59\x79\x7c\x92\x1f\xa1\x43\x9f\x69\x5c\x67\xcd\xc5\x69\x0f\xa1\xef\x3c\xe6\xbf\x9b\xbd\x91\x58\x52\x74\xd5\x9e\xca\x0f\xd1\x2d\x78\x7f\xb5\x84\x10\xa4\x8c\x94\x6d\x55\x8b\xea\x59\x5c\x76\x6d\xf3\x34\xda\x88\xae\xc5\x7b\xba\x93\xc2\x94\x7a\x4e\x99\xdf\x0b\x65\x59\x82\xa7\xbf\x97\x44\x31\x6e\x3b\x88\xde\x79\x82\x1f\x37\x99\xbe\x1a\x91\x92\xc4\xb2\x82\xae\xb0\x05\xda\x25\xad\xe7\xbf\x05\x21\x36\x94\x5b\x0b\x3b\xc8\x42\xfb\x07\x10\x24\x45\x22\x6a\x9f\x81\x5a\x97\xb9\xd3\x6f\x9c\xfd\x9e\xa0\x56\x74\xfd\xfc\x87\xe5\x35\xc9\xca\xc2\x36\x07\xfb\xe3\xcc\xea\x03\xbf\x89\x4a\x1f\xf3\x9e\xe6\xbe\x3b\x92\x24\xd4\x8c\xd4\x90\x5e\x6d\xc4\xbf\x04\x3b\x24\x81\x50\x76\x23\xc6\x38\x09\x75\xc8\x67\x0f\x24\x45\x80\xab\xf1\xb9\x95\x79\xa6\x8e\x5d\xf0\x36\x61\x5b\x25\x81\x94\xa0\x98\x47\xc7\x7c\x83\xfc\xec\xa3\x13\x12\x48\xb0\x5a\x59\xae\xa9\x1d\xad\x10\xb2\x9a\xff\xdf\x48\x68\x92\x40\x05\xc2\x24\x83\x02\xb4\x85\x08\x5c\xa6\xfa\x88\x4b\x19\x19\x12\x28\x29\xb5\x93\x86\x3f\x9e\x30\x9e\xf5\x25\x6b\x96\xfa\xb5\xaf\x8c\x65\x77\x7c\x7c\x11\x7f\x8b\x55\x91\xd5\xd3\xfe\x19\x12\xe8\xd0\x2a\x30\x75\xbe\x8a\x9b\x79\xb6\xcb\xa4\x9f\xfc\xc0\x0d\x4a\xfc\x28\x51\xbf\xed\xda\xaf\x2b\x3a\x24\x80\x38\xc1\x2d\x4e\x5b\x88\xc5\x56\x95\x13\xdd\xe7\x6e\x44\x6a\x29\xa4\xee\xf3\x52\x8a\x7c\x74\x2f\x24\xe0\x56\xa3\x4b\xd8\xc5\x7a\x99\xc8\xff\x24\x84\x10\x08\xc4\xc8\x12\x8a\x9f\x87\x9f\xf7\xa2\xbe\x8e\x5e\xbb\x91\x0a\x85\xcd\x7d\x73\x8b\x15\xd0\xf0\x07\x8d\xe5\x1c\xce\xea\xbb\x0a\xe0\xef\x59\x03\x31\x21\x34\xd0\x98\xfa\x3b\x5d\x1e\x44\x17\xfb\x18\x7f\x22\x4d\x28\x3a\x36\x9b\xe6\xed\x0f\x28\x9a\xb6\x2f\x54\x13\xc2\x80\x62\xbe\xd1\x83\x38\x9c\x87\x6f\xf1\x0a\x6e\x4c\x28\xa8\x07\xbe\xef\x8a\x6e\x27\xb4\x4c\x83\x23\x30\x08\x21\xa1\x09\xd1\x16\x6d\x3e\x84\x6a\xaf\x9a\x9b\x09\x89\x94\x25\x4e\xc0\x79\x8a\x49\x8a\xba\x67\xe1\x74\x43\x62\xce\xb0\xc0\x60\xb2\xd7\xb7\x2e\x2e\xf9\xac\xc3\x89\x90\x84\x45\x8c\x79\x4d\xb4\x6e\xb3\xab\xa6\x4d\x40\x84\x20\x28\xbc\xfb\x9a\x8d\x5b\xc1\x80\x9c\xd3\xfb\x42\x9c\xeb\xb7\xb2\x99\x5d\x2f\x65\x82\x05\x3d\xa9\x94\xdb\x36\x6c\xf6\x74\x3e\x32\x4c\x2d\x2d\xb7\x73\xee\x36\xaa\x44\x02\xbd\xb1\x31\xba\x42\x54\x11\x92\xaa\x00\xfb\x18\x3b\xd7\xca\x3f\x6e\x6a\xb8\xf0\x88\xc9\x52\xcd\x7e\x47\x04\xc2\xaa\x5c\x20\xe2\xd8\x3a\x13\xfe\x44\x01\xca\x0c\x69\x0c\x4c\x8a\xfb\x43\x92\x50\xac\x64\x16\xa5\xeb\x58\xfa\xca\x77\x24\x44\x0a\x89\x1d\x65\x28\x78\x9b\xd5\x6b\x91\xe7\x50\x4d\xbc\x25\x42\x54\x44\xa3\x81\xd6\x76\xab\x4a\xcc\x36\x6f\x8a\x2b\x17\xb0\x1b\x1a\xe1\x3c\x29\xc4\x09\xf6\xad\x52\x50\xd7\x33\xd4\x1b\x21\x1a\x68\x60\x01\x4f\x4e\x2c\x0e\xf4\xcd\xc5\xce\x87\xd9\xd5\x80\xf0\xb1\x34\x94\xef\x27\x9a\x0d\xe2\x06\x33\x1b\xb7\x59\xdd\xed\x4a\x30\x9f\x53\x10\x3a\x11\x0e\xaf\x22\xe3\xff\x2e\x22\x0d\x93\x5a\xc4\x17\xf4\x44\x43\xa1\xbd\x5b\x82\x31\x86\x74\x6f\xa2\x46\xe5\xac\xbf\x40\x54\xf3\xe5\x6e\x80\xa3\x39\x40\xcd\x8f\x81\xd5\x3d\x21\x34\x88\xad\x47\xa0\xb1\xce\x70\xff\xf0\x6f\x7f\x80\xc8\x40\x0f\x6c\xcc\xfb\x6e\xd7\xd5\xc8\x18\x33\x99\xd6\x94\x68\xdb\xb1\xf2\x78\x79\xce\xfe\xfe\x5b\x3c\x67\x16\x29\xf1\x5c\xc1\x98\xe4\xff\x33\x38\xf5\x2f\x9b\xe7\xbf\x34\xf8\x94\x68\x6b\x5e\x5e\x56\x87\xcd\xf1\x76\xf5\xd7\x31\xf6\x77\xcf\x22\xf0\x0a\x69\xdf\x6b\xa8\xfe\x9a\xf1\x30\xf4\xb7\xcf\x03\x66\x15\x0a\xca\xa2\xb5\xaa\x9e\xf8\x0e\xa7\x74\xdd\xdd\x30\x89\x1f\xad\x6e\xa5\x7f\xb5\x23\x66\xc7\xa9\xcb\x47\xb9\x94\xe8\x03\xab\xb2\x68\xb2\xa2\x75\xa4\xb5\xc3\xa6\x4f\x43\x1a\xf2\x64\x1a\x32\xef\x3b\x27\xba\xba\xc9\x85\x7a\xef\x75\xe2\x0e\x97\xf3\xd4\x43\xa5\x21\xb5\xc2\xaf\x9d\x33\x29\x6a\xf8\x57\x9b\xcd\x2a\xf5\x84\x86\x8a\xa0\x33\x6f\x31\x13\xfb\x39\xc6\xab\x1b\x10\xa1\xb6\xcf\xf1\x15\x9a\xdb\xec\x23\xd3\x50\xe8\x7a\xd1\x51\xa2\xa1\x02\x04\x53\xd5\x6f\xe5\x8f\x47\xa8\xeb\xc1\xf0\xd3\xd0\x28\x44\x1c\x35\x6f\x59\xa5\xdd\xc7\xde\x14\x7a\x40\x29\x12\x1a\x31\xe3\x89\x81\xf7\xdd\xa4\xd6\xa3\xa0\x83\xd0\x28\x4d\xb1\xf4\xf6\xaf\x36\xab\x32\x55\xd6\xc3\xdf\x05\xfa\x55\x1f\x65\x03\xcb\x77\x15\xa5\x96\xcc\x17\x29\xb3\x3a\xdb\xbf\x2f\xf3\x76\x22\xf0\xbd\xc4\x25\x33\x4c\x9a\x2e\xf8\x74\x64\x43\xcf\x6d\xf1\x5e\x5b\x61\xce\x7e\x53\xa5\x91\x92\x04\x7a\x58\xb2\x05\x07\xce\x75\x5c\xfc\x50\xe0\xd8\x3d\x70\x7e\xcb\x72\x51\x34\x6f\x55\x79\xce\xea\xd9\x37\x4b\x88\x25\x3e\xb4\x24\xdb\xd7\x20\xe7\x4f\xa6\x76\x1a\x88\xc4\x36\x65\x64\x2a\xcb\x46\x5b\x3b\x4d\x29\xf1\xb2\x4d\xb6\x7a\xde\x45\xb1\x9e\xa6\xa6\x1f\x14\x92\x54\x7b\x99\xc4\xeb\xe0\x98\xd0\x54\x08\x84\xe7\x78\x60\xe2\x1d\x20\x4b\x8e\x2f\xc9\xad\xb4\x86\xaf\x21\x91\x84\xa6\x46\x11\x35\x2d\x63\xb9\x23\x82\x1b\x5c\x7d\x37\x20\xac\x17\xd6\xb7\x53\x4d\xe0\xcd\x84\x0a\x93\x80\xf2\x20\x21\xb4\xa6\x03\x29\x15\xa1\x52\x84\x81\xb2\x38\xd8\x4d\xa1\x47\xf5\x4f\x42\x15\xa3\x48\xa6\xf0\x09\xa9\xd8\xf4\x46\x55\x12\x8d\xc4\x93\xac\x56\xea\xbc\xce\x3b\xf9\x66\x4a\x1a\x96\x38\x2c\xcd\x9d\xca\x66\xaf\x4e\x69\x6d\x5c\xbc\xbc\x17\x1f\xa0\x9d\x08\xaa\x3f\x6a\x62\x94\xb2\xc2\x7a\xd2\x73\xf7\x1b\x3d\xee\x8f\x50\x1d\x06\x5c\x4f\x8c\xbc\x75\x26\xa6\x33\x5c\x47\x0a\x2f\xe1\x58\x70\x9c\x8e\xe2\xf4\x26\x80\x68\x04\x12\xac\x9e\x0f\xb3\xb3\x21\x8a\xb1\x6f\xf9\xb1\x7b\x9d\x22\xbb\x82\xe7\x7f\x99\x2b\x26\x14\x74\xa8\x2c\xb2\xef\x5c\x56\x0b\xda\xe5\x7d\x85\x90\x50\x13\x86\xca\x25\xd6\x48\xb0\xd2\xb3\xed\x92\x1a\x6d\xe9\x1d\xcf\xe2\x72\x28\x7b\x04\xe3\xe2\xaf\xb2\x20\x24\x23\xcd\xff\xfb\xdd\xf3\xec\xc3\x4c\xbf\x28\x0b\x54\x6a\x41\xf6\x45\x53\xa1\xfa\x00\x7e\xd4\xa7\xf6\xe4\x70\xed\xd3\xd1\x34\x4c\x70\xa2\x5a\x22\xc4\x17\x91\xd5\xa0\xb7\x45\xdf\xde\x41\x18\x05\x8a\x95\x32\x2f\xe6\xb8\x17\xa6\x47\xec\xde\x55\xe5\xe9\xf3\x6d\x78\x78\x1b\x8c\x31\x8d\xd8\xdd\x87\xdf\x6f\xbe\x80\xe8\x13\xc6\x83\x88\xfb\xde\x9f\x12\xab\x19\x23\xd0\xa0\x1b\x13\x06\x52\xf3\x01\xef\x87\x0a\x5c\x98\x36\x42\x6f\xbe\x76\x7a\xc0\xde\x68\xb2\x48\x11\x69\xe1\x81\x96\xce\xb1\xdb\xf2\x76\x0e\xd9\x36\xf9\xed\xc8\x58\x62\xab\x1a\xbc\x44\xf2\xce\x60\xe5\x6c\x97\xeb\x45\x87\xa3\x3f\x4f\xd3\xa1\x41\xe8\xbf\x4a\xf9\x59\xab\xec\xf4\xb4\x34\x4c\xa2\xa8\xd7\xf7\xd8\x19\x0c\xc5\xfa\xbb\x4e\xa5\xc2\xc0\x14\x14\xbe\x06\xe8\xad\x17\x13\x61\x8c\xdd\xab\xc8\xcb\xe2\x93\x18\xeb\x31\x03\xd0\x64\x17\x67\x32\xa0\xdc\x4c\xc8\xcd\xb6\xc5\xf7\xfa\xba\x18\x34\xd9\x09\x99\x8c\x42\x21\xfa\x5e\xa5\xb5\xf8\x3f\x6d\x03\x53\x4d\x16\xc2\x34\x61\xca\x33\x5e\xdc\x4c\x77\x52\xa6\xc3\xd4\xf3\x78\x3b\x97\xbe\xec\x5d\xd5\xc9\xfc\xd3\x91\x42\x3c\xa0\x75\x32\x06\x2c\x9b\x3f\x9c\xd8\x5a\x8b\xa8\x9a\xcd\xcf\x73\xde\x57\x70\x09\xd3\x86\x63\xd6\xf0\x5c\xc1\x63\x56\x80\xbe\xeb\x51\x15\x84\x41\x6c\xd5\xf9\x7f\xf4\x14\x26\x4f\x65\x75\xf2\x10\x42\xc2\x20\x15\x4a\x78\x7a\xc0\xd9\xbc\xfd\x5c\xdc\x76\xd4\xcc\x45\x98\xe1\x1a\xab\xe0\x59\xbd\x6f\xc4\xbb\x15\xcf\xcc\xca\xfe\x0e\x4c\x18\x31\xcb\xee\xf4\x51\xdb\xc2\xf5\x70\x24\xc6\xa4\xe3\x43\x56\xbc\xbf\xc0\x07\x14\x7d\x54\xc6\x8c\x06\x35\xf2\x7d\xc0\x43\x49\xef\xca\xea\xd6\x67\x08\xfd\x1b\xe6\x81\xb2\x85\xfd\xf7\x8f\x66\x44\xbb\x41\x78\xa0\x03\xad\xfa\x94\x46\xd3\xd9\xf1\xf1\x34\xe7\xc4\x68\x86\x4a\x48\x99\x7a\xef\x62\xa7\xac\x02\xfd\x50\x7a\x13\xcd\x29\x0f\x99\xa5\x01\x15\x1f\xe0\x62\xab\xc5\x25\xde\xdf\x08\x15\x34\x14\xae\xa8\xb7\xca\x33\x05\x77\x65\x89\x1a\x98\xfe\xb8\x4c\xd0\xd4\x81\xce\x9a\x7b\x51\x69\x28\x7e\x81\x89\x22\x9c\x01\xd3\xce\x0d\x99\xd0\xf7\x5c\x0d\xb3\x7c\xc4\xaf\x02\x3b\xae\x06\x3f\x85\x33\x63\x19\x27\x9d\xdc\x53\x3d\xc2\xcf\x11\xce\xa3\x30\x10\xf3\x68\xe2\x50\x7e\xf2\x23\x3c\x89\x95\x63\x12\xdd\xb7\x67\xa8\x90\xd3\xad\x9a\x81\x36\x12\x3f\x18\x80\xda\xc5\xf6\x61\x23\x77\x87\x93\x9b\xf2\x4c\x11\x1e\x19\x66\x8d\x6a\x7d\xe7\x28\x21\xfb\x5b\x8f\xa5\x25\xc4\xd0\xd0\x45\x91\xcf\xae\x4b\x7a\xba\xbc\x78\xa2\xa9\x71\x7e\xce\x53\xa9\x61\xab\x97\x53\x56\x3c\x8d\xc2\x58\xfa\x1a\xc9\xa6\x79\x9b\x0b\xb1\x77\x43\x62\xa2\x6d\x9a\xa2\x6e\x61\xd6\xee\x31\xfb\x77\xc6\x4b\x43\x78\x0a\x22\x95\x3d\x40\x76\xff\x9e\x79\x26\x26\xc2\x45\x9c\x60\xd8\xfb\xfb\xe3\x57\x06\x9f\x0b\x99\x22\xd2\xa4\x8b\x9c\xeb\x31\x0e\x98\x70\x01\x01\xa2\x92\x5e\x95\xcf\x8c\x70\xc9\x2c\xa5\xaf\xf6\xbe\xf9\xec\x59\x64\xc8\xb0\xdc\xdd\xdd\xc8\xc8\x2d\xe4\xaa\xf3\xc9\x47\x04\x7e\xe3\x9e\xc3\xe5\x17\xa7\xa8\x10\x03\xb4\x1b\xf3\xd9\x3d\xe3\xc2\xf4\x37\x81\xda\x0a\xd8\xc0\xc2\x6d\x85\x92\xc6\xef\x8e\xf4\x83\x99\x44\xe6\x48\x27\xae\xfc\xab\x9e\x35\xc2\x21\x54\xa9\xec\x69\xa5\x7a\x01\x48\xff\x60\x10\x69\x0c\x35\x8e\x6d\x71\x16\xea\x7d\xab\xaf\x29\xeb\x09\x07\x29\x10\x94\x5d\x67\xa7\xe7\xb6\xf3\x47\x3f\x00\x31\xd5\x50\xdb\x46\xf6\xf1\xda\x30\x31\xc3\xf4\xfa\xb9\x0f\xf7\x36\xc3\x4a\x36\x29\x75\x5d\x4b\x97\x6e\x17\xdd\x7a\xb8\xd8\x00\x14\xeb\x9c\x6e\xdb\x95\x31\xdd\x2b\xb8\x91\x1a\xb9\xb9\x6d\x2f\xd4\xcd\x61\xbd\x20\x8e\x99\x90\x10\x99\x22\xdc\x96\x02\x05\x20\x71\x7f\x75\xb9\xb5\x04\xba\xee\x36\x42\x12\x29\x9c\xd4\xce\xb7\x3e\x6c\x9f\xeb\xf1\xc4\x09\xa9\xb2\xb4\x29\x48\x03\xb2\x87\xc6\x4a\xb6\x59\x75\xd1\xf1\xcb\x0d\x19\x51\x08\xd3\xec\x9c\xd4\x77\x6f\x85\x43\x1e\x1b\x8a\x3a\x9c\xbb\xa7\x6d\xff\x37\x19\xc6\xaa\xd7\xed\xaf\x57\xa6\x6f\x3a\x26\x21\xd7\x5c\x83\x27\xcb\xc0\x5a\xe1\xe2\x94\x0a\xc3\x80\x26\x31\x8a\x7c\x6f\xf6\xab\x87\xcd\x71\xfd\xb0\xdb\x6f\x9f\xee\x8f\x87\xed\xe3\xc6\x5f\x2b\x64\x71\x30\xe5\x0d\xef\xdc\x9b\x9d\xd9\x8f\xf1\xdd\xb3\x77\x16\xb1\x14\x7a\x76\xb1\x36\xe2\xfe\x5a\x91\x30\xd8\x9e\xb7\xca\xa1\x79\x83\xec\x4a\xa1\x6f\xea\x8f\x84\xb1\xe6\xc8\x31\x29\xb3\x42\xcf\x23\x00\x37\x24\x09\xe2\xc8\x95\xb3\xbf\x17\xd9\xff\xb6\xf0\x90\x15\xe3\x0e\x7b\x12\x26\x3c\xc6\xdf\x3c\x0a\xad\xd1\x72\xef\xcc\xa2\xbd\x1c\xee\x3e\xe1\x06\x1b\x8d\xd6\x6d\x93\xc1\x4d\x36\xee\x85\x23\x61\x12\x73\xc7\xdf\x8a\xaa\x17\x1a\x50\x7e\x79\xd4\x32\x35\xab\x41\x85\x29\x15\xc2\x4e\x8d\xba\x11\x45\xe3\xe8\xb8\xfd\xc1\x58\x07\x9e\x68\x67\xab\x66\x35\x89\xd9\x6d\x09\x9e\x78\xec\xd2\xc6\x39\x60\x0b\x4c\x66\x24\x94\x2a\xc6\xbc\x76\x17\x92\x3b\xa2\x8b\xe3\xb9\x2c\xf3\xa3\x18\xaf\xd3\x50\x31\x9b\x96\xb3\x1e\x18\x54\x7d\x7f\xb0\x77\xf8\x42\x4d\x0c\x84\xb8\x40\xba\x6b\xac\xdf\x44\x51\xc0\x35\xf8\x73\xfa\xe3\x5a\x69\x6c\xe6\xd0\x22\xcb\xbd\xc4\xf3\x10\x6d\x85\x1a\xac\xee\x9f\x13\xa4\x1b\xea\x2b\x53\x5c\xa4\x1b\x0d\xd2\x36\x97\xd7\xa2\x29\x61\xb6\x5f\x85\xa0\x22\xc4\xb4\xfd\xed\x40\xa6\x23\xfa\x31\x12\x9a\x98\x59\x71\xfe\xe3\x0f\x7c\x45\xd3\x94\x64\x14\xb0\x48\xc0\xd0\x76\x76\x12\x55\xb3\x3c\xbf\xa2\x40\x52\xde\x3d\xcf\xcd\xee\xe9\xfb\xfe\x78\xd8\x6e\x5e\x58\x7f\x11\x13\xc8\x70\x68\x0a\xfb\x57\x5b\x56\xbd\x4b\x1c\x11\x66\x25\x2d\x1e\xca\xd7\x67\xd1\xce\x80\x1b\x24\x22\x11\x93\xbd\x42\xf8\xbd\x38\x79\x80\xcb\x90\x27\x8c\x48\x6c\xd0\x3c\x55\xf0\x50\x0a\xfd\xef\xee\xb6\x96\x83\xb1\x88\xa4\x69\xd8\xd9\x8c\xdb\xd5\xce\x13\x02\x7d\xf9\x91\x22\xa2\x42\xb0\x38\x82\xac\x38\xca\x71\x1f\x35\x89\x88\xb6\xb0\x8f\xcd\x49\x64\xf9\x7e\x49\xa6\x62\x61\x4f\x88\x88\x09\xd0\x27\x86\x9f\xa0\xb6\xb7\xfe\x5a\x34\xb6\xd9\x3a\x9f\x80\xc5\xf9\x77\x0d\x28\x22\x11\xd5\x90\x2a\x5f\x87\xbc\x9c\x9b\x72\xf5\x21\x1a\x51\xcd\x47\x99\x08\x8b\xfd\x0f\xe5\xeb\x1d\x76\xa6\x0c\x78\x80\x6b\x88\xe0\xe7\x52\xea\x09\x89\x58\x94\x10\x18\x58\x37\xf6\xd9\x6b\x21\x3a\xd7\xe8\xaa\x21\xae\x5d\x22\x3b\x76\x17\xe1\x84\x99\xb1\x44\xc6\x73\x05\x96\xd9\xe9\x9b\xa8\xdf\xc6\x02\x00\xff\x34\x79\x3a\xda\xf4\x22\x4e\x8c\xb1\xb2\x63\x75\x56\x94\x48\x5b\x3b\xfd\x86\x3c\xb2\x79\xaa\xda\xf1\x4a\x20\xe4\x75\xf9\x69\x43\x66\x15\x9c\x6a\xc7\x77\x09\xbd\x42\xf0\xf4\x92\x61\x4a\x30\x33\xed\x43\x94\x4d\xf3\x36\x6f\x9b\x1d\xdf\x62\x4c\x2c\x29\x7d\x77\x59\x44\xc1\x3c\x64\xb2\x12\x57\x57\x8d\x23\x40\x8e\xad\xbb\xfb\xb2\x1a\x5b\xd2\x28\xd6\x29\x82\xac\x34\x78\x05\xad\x59\xea\x30\x4a\x24\xc7\xcf\x64\xbd\xe1\x3f\x1f\xbe\x72\x4b\x22\x91\xc4\xcc\xf4\x31\xef\x63\x59\x79\x41\x38\x67\xb8\xea\xbe\x69\x6b\xfa\x76\x64\x14\xc6\xdc\xc1\xdd\x47\x70\x2f\xcf\x0c\x37\x2c\x48\x69\x38\x36\xe5\x4d\x7c\xf4\x2b\x28\xcc\xb5\x6e\x6d\x7f\xba\x41\xe8\xcf\x7a\x7b\x37\xf2\x03\x23\xc5\x85\xb6\x08\x96\xba\x73\x81\xd6\x22\x57\xfd\xa1\x28\x52\x83\x70\xf3\x4b\x37\x07\x3e\x49\x95\x2e\xa7\x4e\x23\x15\x47\x98\xef\xbc\x2f\xcb\xbf\xe1\x9f\x49\x1e\x76\x27\x69\x14\x87\x72\xcd\xde\xab\x3c\x5f\x15\x7a\x2d\xf2\x25\x8e\x58\x12\x29\x11\x5b\xf0\x51\x5f\x08\xdf\xc3\x64\x3d\x4e\xef\x48\x13\x4b\x2c\xb7\xdf\xde\x3f\xae\x8e\x77\x87\x87\xe3\xfe\x79\xb3\xe9\x0d\x86\x66\x1a\xb3\xcc\x67\x97\x43\x58\x0d\xfa\x76\x78\x50\xb9\xad\xfe\x98\x15\xa6\x9c\x4d\x16\x2d\x05\x70\x0b\x4a\x84\xe6\x4d\xfc\x21\x7a\xc0\x20\x89\x80\x10\xe7\x2b\x35\x8f\xe2\xe7\x15\xfd\x01\x89\x80\x72\xaf\x3f\xd8\x9e\x1d\x06\xaf\xdf\x2d\x40\x33\xdc\xd3\xe0\x94\x35\x77\x30\xe9\x50\x9e\xde\x82\x61\x9c\xd9\x36\xc1\x9f\xd8\x3b\x67\x85\x75\x46\xad\xfc\xdd\x10\x83\x19\xc5\x93\xd0\xbf\x0f\xfb\x62\x64\x14\x20\x2d\x39\xf6\x40\x8e\x9c\xd7\xb9\x0d\xb9\xae\x0c\x46\xc6\x48\xf4\x2f\xbe\xdb\xbf\xdb\x15\xfe\xdb\x92\x21\x88\x03\xaa\xd8\xd0\xed\x76\xf4\x18\x79\x12\x07\x31\xc3\x95\xff\x78\xb9\xc9\x9a\xe1\xd6\xfd\x61\x12\xa8\xd8\x25\x01\x1e\x2f\xcf\x65\x9e\xa9\xac\xaf\xff\xc6\x84\x45\x08\x86\xb3\xbc\x21\x37\x97\x7f\x67\x23\xae\xa4\x7e\xf5\xc4\x24\xd4\x08\x3c\x3d\x6f\xf5\xb6\x81\xea\xd8\x9f\x9e\xa4\xda\xc1\x1d\x36\xa2\xca\x2f\xc8\xec\xf6\x35\x3d\x0e\x89\x29\x8f\x94\x3b\x09\xa3\x34\xed\xeb\x3f\xb3\x61\x49\xac\x2d\xf3\xf2\xee\x47\x71\x95\xb7\x8d\x59\x62\x61\x7c\x0f\xe5\xeb\xf7\xa2\x46\x1c\xe1\x6e\xdc\x1d\xe5\x87\xc9\x84\xb8\x5a\xf1\x53\x7b\x5a\x67\xcd\x02\x02\xc2\x0f\x05\x0b\x7f\x44\x54\x87\x12\xe7\xe3\x0f\xc8\xfc\x83\xf2\x98\x22\xcf\x0c\x22\xdb\x8e\xdb\xa7\xed\x61\x19\x0d\xe5\xf7\x97\x98\xcb\x08\x93\x14\x88\x19\x5d\xb7\xcd\x55\x26\x2a\x0e\x09\xf3\x3a\xd1\xab\x3c\x5f\x8b\x4a\xd7\x8f\xa5\x46\x35\x83\xe7\x2a\x3b\x89\xea\xf2\x47\x9f\x60\x8a\xc3\xc4\x60\x76\x48\x96\x6f\x3f\x7c\xca\x3e\x8e\x38\xc1\x9c\xd8\x7e\xbd\x5e\x7f\x65\x5d\xe3\x28\x16\xbe\x3a\x34\x48\x26\xcc\xe0\x44\x71\x4c\x6d\x86\x4e\x67\xb5\x90\xb9\x47\x53\xe0\x9c\x6e\xae\xc0\xa0\x24\x8e\x23\x89\x96\x46\x0a\xf5\xde\x9e\x8f\x76\x56\x7e\xf2\x66\xe3\xd8\x92\x3b\x1f\xc4\xfb\x24\x3a\x8c\x63\x63\xd0\x95\xeb\xc9\xb5\x96\xdc\xb8\x38\x49\x00\x71\x3b\x42\x6b\xaf\xec\xb8\x80\xfd\x24\x71\x22\x52\xee\x44\xb3\x8f\xb5\x42\xf6\x9a\xf9\x00\x89\x6d\xbb\xc7\x66\x94\x6f\xb6\x7d\x0c\xcf\xe2\x52\xdf\x01\x1c\xe5\x65\x99\x1d\x63\xd1\x22\xc6\xa9\xa2\x48\xfb\x31\x6a\x77\xfb\xb4\x84\x13\x0b\x1d\x61\xf5\xf7\xdf\xdf\x76\xfe\x0b\x0a\x63\xd0\x0b\x71\x18\x1d\x5f\xee\xb4\x58\x9d\xcb\xaf\x90\x3a\xee\x22\x92\x04\x5e\x43\xdd\x7e\x34\xfb\x8d\x9b\xcb\x93\xa8\x54\xf9\x02\xf5\x79\x24\x1a\xdf\x9f\xa3\x34\xed\xd3\x00\x8d\x78\xef\xf3\x45\xb1\x4c\x03\x9f\x0a\x5a\x8b\x06\x5e\xcb\xea\xb2\xed\x0f\x2a\x62\x55\x6c\x91\xad\x64\xbb\xde\x7d\x79\x8b\x89\x3f\x29\xe6\x1e\x81\xda\xe4\xf0\x00\xe2\xb5\x4f\x51\xc6\x2a\x49\x23\x07\x54\x7e\xe8\xa2\xf2\xd9\x17\xd3\x11\xc5\x59\x66\xe1\xad\xf7\xd0\x7c\xcb\x5e\xdf\xee\xb2\x8f\xfe\x7c\x48\x2c\x2b\xee\xfe\xb0\xfa\x7d\x73\xb4\x8e\x3e\x76\x25\xf6\x03\x52\xcd\x5c\x53\xa2\xf5\xaf\x67\x6f\x02\x94\x08\xec\x1e\x58\xd4\xd8\x0f\x75\x73\xf9\x8c\xc1\x8c\xc4\xa0\xa5\x76\x5e\xd3\x18\x7b\xef\x1f\xd4\x04\x81\x67\x9e\xc9\xe0\x03\x96\xb8\x73\x48\x6c\xa2\x04\x43\x83\x9b\x87\xd5\x6a\xbb\xde\x79\x11\x6b\x92\x04\xb1\x08\xe2\x71\xe2\x07\x9d\xed\x05\x6e\x68\x92\x04\x69\xac\x5c\x5a\x03\xe9\xf2\x3e\xed\x0d\x27\x08\xc9\x56\x83\x47\x70\x15\x10\x4c\xcc\x56\x42\x58\x3a\xe0\x74\x36\xb7\x9b\x7f\xcf\xae\x46\x64\x80\x98\x79\x65\xd1\x1b\xdb\xd3\x39\x77\xe4\xbe\xd3\xeb\x50\x42\x4c\x32\x95\x88\xaf\x9f\xda\x65\xae\xc2\x6e\x74\x8c\x60\x50\x84\x44\xd5\x36\xc8\xfe\x9a\xa6\x9e\x24\x94\x6b\xaf\xae\x78\x2b\x1a\x71\x24\xb3\x57\x44\x55\x84\x8c\xb3\x03\xdf\xea\x6f\x0b\xa6\x31\x61\x41\xe8\x84\xf6\x4f\x19\x92\x62\xfa\xaf\xc1\x59\xa2\x84\x27\x2e\xff\xfb\xef\x67\x51\x68\xf1\xaf\xb6\x6c\xc4\xce\xcc\x7e\x29\xe4\x01\x75\x0d\x2c\x9d\xbf\x75\xba\x2a\x9d\x7c\x6a\x12\x92\x50\x26\x30\xe8\x74\x3d\x83\x45\xd4\xbb\x83\x11\xb5\x79\xa3\x02\x7e\x1c\xde\x2a\x10\x7a\x5d\x9e\xc6\x3c\x32\xfd\xce\x33\x79\xa0\x84\xc7\xb6\x62\xef\xe4\x1b\xc7\xe9\x94\x24\x31\x31\x16\xe7\x9c\xc8\xb9\xff\x73\x1a\xca\x98\xf5\x25\xad\xea\xf2\x59\xcb\xa7\x1b\x2e\x48\x8a\xb1\xf3\x1d\xa0\x3e\x3b\xf1\x97\x11\x5c\x72\x57\x41\xd9\x8b\x1c\x1e\xb3\x49\x93\x38\x49\x84\x66\xa8\x90\x8a\x04\xf9\xb6\x2d\xee\x17\x1f\x59\x72\xab\xba\x65\xf5\xea\x10\xa3\x31\x2d\x19\x4c\x9f\x5d\x51\x4b\x73\xff\xed\xf9\x97\x74\x76\x24\x51\x51\x10\x19\xdb\x15\xf7\x0f\x25\x3f\xf0\xdf\x88\xcf\xee\x51\x73\x89\xe2\xc9\xe5\x8f\x4f\xf4\xd0\x49\x02\x89\x32\xc2\x03\x04\x5e\xcb\xef\x2f\x0f\x93\xbc\x61\x62\x62\x1d\xf4\x09\x85\xbe\x16\xea\xba\x4e\x1d\xc9\xcc\x7e\xa9\x37\x60\xfa\x33\x26\xa5\xc8\xde\x6c\x83\x28\x5f\xca\x43\x1a\x92\x4f\x1f\x6d\xba\x6c\x8d\x8e\x31\x4b\x2d\xc1\x94\x15\xdc\xb4\x3e\x05\x9a\x06\x3c\xc2\xf4\x55\x2e\xea\x81\x0a\xa8\x57\x58\xf6\x83\x94\x09\x1c\x0e\xe8\x45\x34\x70\xdc\x1c\xbe\x75\xce\xf3\xe4\x26\x53\x12\x0a\xe4\x82\xc2\xcc\xdb\x1e\xae\x52\x37\x4b\x5a\x51\x24\x25\x31\xc7\xf8\xeb\x8a\xd9\x8e\xa4\x44\x48\x24\xbf\xb0\x22\x3d\xeb\xb2\xf8\x80\xaa\xce\xca\xe2\x4a\xa8\x87\xa4\x44\xa6\x28\xb1\x7b\x3c\x5a\x0e\xdc\x42\xdb\x1c\x9c\x0b\x94\xeb\x47\xd1\xa8\xb7\xe3\xf1\xeb\x04\x4c\x4a\x34\x0b\x1c\x8d\x5c\xdd\x59\xde\xf7\x21\x14\x48\x29\xa3\x88\x26\x38\x75\xfe\xec\xf4\x34\xca\x19\x33\x83\x78\x87\x65\xc8\x77\x0d\x43\x5f\x7e\xd7\x94\x31\x1a\x4b\x57\x10\x23\x37\xa5\xf4\x3f\xc6\x12\x8e\xc5\xed\x3c\x2b\xde\xd1\xcc\x55\x4f\x23\x4a\x81\x61\x10\x3e\xf3\x19\xab\x08\x87\xb2\x4f\x9f\xba\xe3\x5c\xd8\x7c\x29\x3e\xfb\xb9\x2c\xbd\xcb\x99\x86\x81\x6d\x87\xb9\xc9\x9a\xba\x87\x89\xa4\x21\xa1\x6a\x22\xa5\xf3\x99\xa5\x73\xe3\x23\x92\x62\x0a\xee\x69\x73\x78\xf1\xd7\x88\x38\x41\x65\x83\xfb\xb6\x6e\xc4\x47\x89\x6c\x40\x7d\xfb\xcb\x3f\x02\x4e\xa4\x91\x4c\xbc\xb0\x14\x56\x28\x76\xd5\x7f\x43\x55\xce\x1e\x3d\x09\x14\x76\x24\xef\x77\x0f\xbb\x5e\x78\x9e\xa4\x09\xb1\x74\x4a\x18\x10\xdd\x55\xa2\x78\xcf\xfb\x38\x35\x4d\x40\x4b\x57\x67\x76\x28\x9d\xd9\x67\x4c\x09\xf5\x32\xcd\x63\x0e\x53\x7f\x94\x5a\x5d\x7e\xef\x60\x7e\xaf\x7d\xaa\x61\x54\x0f\x5c\xfe\xca\x42\x82\xc5\x9b\x65\x1f\x70\x57\x01\x7c\x9f\xd7\x92\x49\x3f\x52\x5b\x19\x8a\x4d\xdd\x64\xa7\x6e\xab\xdc\xae\x77\x63\x5f\xc1\x0d\xeb\xb6\xea\xee\xcb\x5a\x0d\x87\x6e\x9e\x65\x0b\xcd\x8d\xcb\x37\x23\x69\xe8\x14\x46\x6c\xc7\xc9\xec\x68\x1a\xe3\x7e\xe1\x1c\x9c\x41\xbe\x6a\xf9\x62\x2a\xb4\xc3\x7f\x0c\x68\xbe\x47\x51\x5c\xe6\x0d\x1f\xa9\x32\x1a\x6b\x77\x7f\xdd\x1d\x7e\x69\xbe\x53\x60\x69\xe0\xf4\x6d\x30\x93\xff\x99\xf3\x3d\x9b\x38\x00\x01\xd6\xd1\x31\x9f\x64\x84\x82\xad\x3e\x6e\x5e\xd6\x31\xf5\xbb\x58\x6a\x28\xc7\x2e\x33\x6b\x45\x87\x98\x72\x6e\xf8\x53\x43\xc3\xd0\x6a\xfb\x1c\xcf\xa2\xae\x55\xa9\xe1\xa8\xca\xaa\x1a\x79\xdb\x53\xf3\x9a\x9a\xd0\x8a\x6e\xcb\xb6\xea\x8c\xcf\x98\x9c\x9f\xa4\x26\x49\x69\xec\x69\x6a\x73\xa8\x9b\xb2\x80\x7a\x2c\x35\xf9\x05\x69\x23\x11\x41\xc0\xb0\x94\xf2\xd7\xee\xe9\x56\x0d\x19\x2a\x11\x30\x82\x58\x69\xe1\xb3\x74\xde\x29\x9d\x3c\x8b\x08\x12\x8e\x40\xc5\x0a\x4e\x02\x1b\xdf\xef\x45\x6d\x4b\x6b\xcf\x83\x49\x10\x41\x2a\x6d\x62\x1e\xaa\x57\x78\x04\x2d\xae\xa8\xe7\xdd\x40\xc2\x12\xb4\x4c\xc8\x15\xa5\xff\x28\x87\x0e\x78\x7f\x29\x62\x04\x42\x27\xb3\x06\x4e\xb6\x43\xaa\x3f\x44\xa9\x44\x4c\x95\x97\x1d\x71\x2c\x65\xbf\xf2\x08\xbb\xf3\x00\x86\x39\xfb\xdc\x73\xd9\x11\x41\x59\x82\x1e\x0b\x22\x28\xff\x14\x1f\x4e\xf6\xc5\x1f\x0d\xa3\xc4\x01\x75\xfe\xbd\xd0\x57\x22\x68\x62\x11\x2f\x4e\x09\xfe\x06\x86\xeb\x26\x56\x57\x26\xab\x91\xe6\xaa\x0f\xa2\x04\x63\x02\x9d\x0b\xfc\xfe\x87\x12\xd5\xf3\x26\x73\x41\x30\x69\x7b\x4c\x1c\x29\x81\x18\x6e\x87\x47\x11\x56\x1f\xaa\x32\xcf\xcb\x0f\xa8\x3c\x26\xcd\x1f\x16\x06\x4b\x9a\xb6\x38\xb4\x6c\x84\xdd\xd0\xb0\xb3\x14\xdd\xa4\x10\x27\xd1\x0c\x76\x76\x20\x01\x20\x22\x84\x04\xbb\xaf\xb7\xeb\x9d\x07\x9a\xcf\xba\x6f\x44\x14\xa8\x40\x8f\xc5\xf8\x67\x05\x00\x11\x33\xa1\xc3\x91\xf6\xe6\xfe\x72\x92\xe5\x2c\x92\x13\x71\x48\x61\x78\xde\xbd\x16\xb3\x92\x90\x88\x45\x88\x0b\x7a\xa5\x9a\xec\xa3\xc7\x46\x0e\x30\x4b\x11\x0b\x85\x95\x92\xc7\xd5\xbf\x8f\xcf\x9b\x97\xf5\xe6\xe9\x70\xdc\xdd\x1d\xf7\xab\x07\x5f\xee\x14\x09\xc4\x89\x73\xda\xef\x45\x2e\x7e\x0e\x99\x2e\x91\x86\x21\x26\x09\x41\x67\x0d\x92\x23\x2d\x24\xee\x85\x08\x03\x74\x4e\x84\xd6\x76\xea\x7a\xd8\xf9\xd7\x33\x4f\x74\xae\xaf\x75\x7c\x8f\xcf\x2f\xdb\x75\x7f\x3f\x52\x26\xe8\xf1\xe6\x28\xf3\xba\x33\xbf\xc3\xe5\x93\xec\x93\x50\xa9\x95\x24\x75\xbe\xe8\xda\x2b\x9d\x7c\xbd\xbf\x0a\xa5\x74\x20\x7b\x6b\x65\xe7\x18\x59\xce\x49\x09\xad\x43\x54\xf6\x3a\x4f\x11\x6d\x42\x03\x43\xbf\x0d\x65\xb8\x97\xa2\x24\x01\x34\x90\x6e\xd3\xeb\x69\xb6\x90\x8a\xe2\x3a\x1b\x2b\x40\x44\x08\xdc\x17\xcd\x93\xd7\xc0\x25\x02\x80\x1b\xee\xf1\x25\x0d\xdc\x42\x8d\x55\x1b\xd0\x2f\x16\xf9\xe8\x86\x99\x20\x46\xea\xb3\x7d\x76\x1a\xfe\x96\xa4\xdc\xc5\x48\xcf\x33\xa1\x86\xe5\x59\x6f\x52\x07\xce\x68\x44\xd5\x78\xd7\xfe\x17\xa9\x94\xd9\x5b\x35\xca\x92\xe1\x69\xc7\xb5\x88\x54\xf2\x3a\x13\x9f\x40\xf6\x84\x31\x91\x87\xd6\x1e\x1d\x91\xec\x51\x54\x32\x6b\xea\x63\x5d\xe6\xb3\x66\x18\x19\xc4\x1c\x93\xbe\x6d\x0d\xd5\xb1\x2c\x8e\x06\xdb\x79\xdc\xf3\x4a\xa2\x22\x29\x7d\xe0\x59\x3c\xf4\xac\xe3\x37\x97\x1b\x8b\xfd\xd9\xea\x6d\x71\x2f\x4e\x32\x47\x6a\xd1\xaa\xb9\xca\x13\xb9\x0b\x51\x66\x4b\x3c\xdd\x6e\xe3\x89\x9a\xdb\x81\x98\x99\x48\xaa\x03\xf4\x2b\xeb\xb7\xf2\xc7\x84\x90\xb9\x3b\xd4\x33\x0a\xdf\x5c\x60\x3f\x21\x95\x19\xf2\xc2\x92\x11\x1b\x4f\xc2\xcf\x66\x2c\x2d\xd6\x1f\x55\xa0\x3c\xe6\xef\xa7\x03\x50\x1f\x0e\x7f\x5a\xc8\x8c\xa6\xd3\xbb\x61\x20\x08\xeb\xcd\xcc\xb9\x2c\x6a\xb0\x54\x65\xd3\xa7\x0a\x39\x4f\x6d\xe9\x0c\x2c\x05\xee\x40\x17\x43\x64\x94\xda\xbd\xdb\x00\x1c\xb1\x1e\xee\x0f\xc4\x54\x23\xb8\x0f\xe7\x84\x43\xa1\x0d\xfc\x7b\x7e\x10\x8b\x30\x1a\xb7\x6b\x69\xfd\x96\xe5\x57\xa8\x6c\x3f\x52\x45\x60\xc5\xd4\xcb\xf3\xb1\xef\xfe\x93\xb1\x21\x56\xc5\xc7\xa6\xf3\xf6\x67\x28\xf4\xe0\x1c\xb9\x41\x49\x1a\x78\xec\xd0\x98\x48\xd8\x77\xd3\xba\x51\x29\xb3\xe4\xb4\xab\xdb\xcd\x1f\x2b\x7f\xaa\x30\xcc\xf6\x61\x43\x31\x33\xfc\x4b\xc2\x56\xfd\x49\x21\x32\x08\x9f\xed\x36\x7a\xd3\x5e\x3c\x0a\x6f\x26\x6a\xb5\x3c\x8b\x84\x49\xb0\xed\x0d\x11\xe1\x7b\xc7\xc4\x37\x4b\xc6\x4b\x49\x68\x6c\xe5\x8b\x7a\xd0\x52\x99\x15\x4d\xbd\x2a\xb4\xc7\xf4\xfb\x91\xd4\xb2\x63\x9f\xc5\xe5\x0e\xae\xe8\xcf\xfc\xa0\x30\xb5\x4e\x78\x59\xea\xfa\xa9\x6c\x76\xbf\xcf\x26\x81\x8c\x19\x52\x27\x74\x56\x64\x55\xa9\xb7\x31\x4d\xd5\xd8\x70\x49\x99\x72\xa4\xb6\xbb\x7d\x5a\x6f\xfe\xf5\x7d\x7b\xf0\x8d\x93\x52\xb1\xc8\x71\xc1\x23\x1f\xdb\x3e\x2b\x5e\x73\x78\xfe\xbf\xa8\x6f\x4c\xa4\x0a\x03\x70\x6e\xc3\xcd\xf7\xd5\x27\x8f\xaa\x92\x18\x17\xe9\xcd\xaf\x33\x16\x52\x53\xae\x89\xd3\xc9\xa8\x9a\x43\x4f\xb6\x49\xa4\x8e\x22\x63\xf9\x36\x5e\x3b\x5f\xf8\x11\x26\x7d\x98\x7e\x90\x8a\x13\x3d\xcd\xc9\x8d\x92\x8b\x64\x8a\x2c\x93\x86\x28\x24\xda\x38\xbc\x75\xf3\xb7\xd0\x7f\xd4\x8f\x17\x51\x9c\x84\x0f\x1c\x55\xa0\x35\x02\xd2\x3f\xb2\x3c\x17\xaf\x90\x8d\xf6\x54\x37\x82\x30\x1e\x39\xbf\x0a\xf1\x1d\xb6\x4b\xf9\x56\x94\x8b\xe9\x7b\x45\x35\x47\xb1\x85\xce\x1c\x8e\x6b\xcd\x8a\xea\xc4\xb3\x9b\xae\x3b\xb3\x50\xd4\x6d\xfd\x82\x7c\x90\x6e\x00\x4b\x42\x69\xdb\xe5\x4c\x9f\x43\x1f\x31\xf5\x10\xc5\x83\xd0\x12\x6f\x3a\xcc\xb6\x95\x06\x59\x60\x88\x5e\xfc\x48\x8a\x27\x21\xb8\x68\xf3\x36\xab\x55\x76\xce\x27\x0d\x57\x7e\x14\x10\x04\xee\x21\xb3\xf9\x97\x29\x04\x15\x46\x1a\xa9\x6d\x34\x8d\x75\x2c\x85\xb7\x98\x2a\x4c\x55\x32\x6a\xe3\x69\xc0\x11\xc4\xae\xaf\x73\xc0\x2a\x94\xb6\x95\x4e\x68\xfd\x08\x87\xf2\x7e\x4e\x4a\x4e\x54\xc4\x13\x54\xc6\x91\xd0\xfc\x55\xb6\xfd\x7e\xaf\x22\x0e\x18\xc2\xee\xb3\x9f\x96\x83\xe0\xa5\x6c\x73\x68\x7a\x60\x93\x8a\x83\x04\x57\xcd\x3a\xcf\xc0\x83\x9e\xae\x40\x1a\x7e\x6c\x6a\xd0\xf9\xeb\x25\x01\xa0\x52\x6f\xa2\x68\xbe\x24\x19\x9f\x96\x09\x96\xdd\x15\x15\x0b\x40\xe6\x24\xcb\xc4\xb5\xf9\x80\xea\x72\xeb\x59\xc3\x88\x4a\x08\xc7\xa6\x9b\x06\xf1\x6c\x0f\xa2\xb6\x5c\x46\xfd\x61\x19\xda\x44\x76\xd9\xed\xa1\xea\xfd\xc5\xaa\xea\x4e\xef\x3d\xa5\x1c\x89\xc1\x5c\x84\xf1\x52\x96\xa7\xfe\x25\xa5\x71\x82\xc2\xb6\x98\x18\xce\xea\x06\x7b\x1d\xbc\x5e\xbf\x1b\x23\xba\x3d\xcb\x76\x03\x6e\xb2\x6e\xbe\xad\x9a\xb9\xe0\xe1\xf2\xa3\xc9\x38\x55\x8b\x14\xc4\xd3\x0f\x28\x41\x98\x60\x02\x7a\xff\x9c\x4e\xcb\x9d\xa2\x78\xaa\x75\x0f\x2c\x7c\x28\xfb\x66\x2f\xa5\x64\x84\x45\x38\x6c\xbc\xac\xd5\x98\x41\x7a\x7a\x09\x4d\x1d\xef\x52\x9f\x4a\xbb\x03\x27\xe8\x35\x2e\x7a\xf4\x0f\xa3\x59\x80\xd8\xe8\xaa\x6c\x0b\x7d\x54\x47\xec\x7b\x3c\x8e\x80\x72\x4a\xf3\x10\xe7\x13\x32\xfb\x35\xe3\xa5\xad\x43\x40\x17\xc1\xa2\xf5\x3d\xd5\x0b\x51\x3a\x21\x13\xa1\x89\x71\xbc\xa6\x74\x12\x53\x8b\x85\x17\x79\x3d\x0d\xab\x94\x16\x0c\xd1\xf0\x8f\xdb\xa7\xc3\xf6\xe9\x1e\xb9\xe0\x7a\x2a\x38\xa2\x34\x10\xc4\x28\xdc\xef\x76\xb7\x47\x6c\xc6\xf0\x47\x20\xb6\xec\x06\x9d\x59\x3d\xc0\xcf\xfe\x4e\x40\x1a\xa4\x92\xfe\xb0\x09\xeb\x41\x30\x84\x28\xd0\x02\x77\xf2\xa7\x52\x8b\x5c\x8e\x3a\xa6\x94\x89\x8d\x0b\x76\xac\xbd\x41\x90\xda\xf6\x76\x46\x21\xe2\x79\x00\xcb\x32\x1f\x39\x55\x3a\x20\x80\x98\xde\xb3\xd3\x17\x25\x9a\x50\x15\x5a\x42\x13\xdc\xb8\x67\xf1\x97\x26\xcc\x36\xcb\x3b\xcf\xf3\x8a\xf8\x40\x93\xc8\x6a\xbc\x1d\xb3\xfa\x36\x13\xa7\xb2\xd0\x56\xd0\x07\xf4\x24\x0f\xad\xa9\x4a\xb0\x9d\x76\x8f\x4a\x39\x73\x76\x10\xa2\xa9\xd1\xa9\xf2\xb5\xb4\x56\x41\xb3\x54\x9c\xd2\x2c\x32\x88\x58\xfa\x7d\xf3\xc7\xf6\x69\x44\x05\x43\x34\x4b\x04\xc2\xf0\xed\x62\x3c\x9e\xac\xc2\xdd\xa2\x5d\xd1\x2c\x31\x88\xc5\xdf\xbf\x01\x34\x8f\x6d\x9d\xa9\xdf\x66\x03\x14\x67\xe1\xa4\xbd\x66\x46\x10\x4c\x34\x67\x1c\xa6\x94\xa3\xdb\x6e\x2e\x2c\x21\x85\x35\xe7\x96\xdf\xae\xb2\xf4\x36\xc7\x7c\xbc\xd2\x35\x0f\x05\x52\xe8\x65\xf5\x73\x05\xdb\xf5\xce\x32\x32\xac\x47\x22\x95\x44\x87\x10\x87\x16\x79\x8a\x6a\xe9\xdd\x46\xf4\xa7\xef\x47\xfe\x14\x5f\x74\x8d\x39\xd5\x51\xca\x24\xf8\x1a\x5c\x67\xf1\xc6\xfb\xb2\x8e\x94\x6d\xf3\x79\x13\x55\x37\x25\x51\x98\x33\xfb\xf0\xab\x5c\xc7\x71\x82\xc9\x83\x02\x7e\x3c\x96\x75\x17\xad\x65\x23\xc0\x86\x4e\x29\x68\x5b\x4f\x3d\xf7\x7f\x8a\xac\xb6\x66\x9d\xbd\xde\xe2\x1c\xc7\xa9\xd3\x6b\x28\xf4\xa3\x08\x02\x74\x20\xcf\x5e\x33\x79\x9d\xa7\xf5\xc3\xe2\x20\x74\xd5\x56\x6c\x22\xd9\xcd\xd3\xe0\x3a\x55\x21\x5e\xe8\x4d\x14\x3a\x07\x0f\xf9\x5e\x2c\x95\x6a\x61\x20\x80\x71\x45\xf4\xb6\x5d\xa0\x4b\x26\xda\xcb\xfb\x56\xa0\x01\x4e\x8e\x90\xfb\x33\x6a\xbf\x79\xd3\x81\x56\x51\x84\xb1\xa9\xad\xbe\x88\xe2\x7d\x16\x33\xfa\x61\x22\x08\xdd\xe4\xf7\x90\x37\xb1\xa8\x4d\x3e\x5a\xca\x3a\x0e\x50\xcb\xed\x3d\x53\xef\xa5\x31\x16\x65\x3a\xcd\xe7\x68\x20\x01\xd0\x51\x93\x4e\xd1\xac\xe6\x2b\x0a\x74\x88\xe4\x52\xc8\x33\xe3\x1a\xe7\xf1\xb7\x9f\x50\x79\xd9\x5f\xc9\xf0\x08\xf3\x54\x58\xd4\x77\x9d\x77\xaa\xec\x8f\x26\x29\x16\x59\x7d\x16\xf6\xd1\x3d\xa1\x0f\xc0\xa0\xdb\x22\x84\xd3\x54\xb4\xfd\x47\x53\xc4\x0a\x50\x30\xcc\x2e\x5f\x2b\x46\xb8\x39\x7c\xfb\x3a\x31\x02\x21\x4d\x95\x1e\x4d\x87\xbb\x0a\xc0\xcf\xe8\xd1\xa8\x30\x15\x76\xc2\x77\xee\xc6\xe7\x39\x12\x88\x52\x40\x9f\xd4\xb1\xa9\x3e\x42\x23\xae\xbb\xe4\x21\x52\x91\xa3\xfb\x6c\xba\xc8\x57\xfc\xec\x42\xd3\xd9\x4f\x46\x10\x24\x2e\xd8\x7c\xc8\x0c\x34\x43\x0c\x09\x71\xa8\x11\x77\xd4\x40\xdd\xd8\x65\x3e\xd4\xc1\x20\x8e\x6c\x1d\xca\x64\x85\xbe\xcb\x5e\xdb\xea\x33\x34\x11\xc4\x71\xe2\x61\x57\xeb\xb7\xb2\x1c\x78\x81\x20\x16\x29\xee\x28\xef\x59\x9e\x8f\xe3\x72\x32\x41\x4d\x40\x0c\x14\x27\x7f\x5b\xcf\xc3\x2d\x88\x1d\x73\x5d\x77\x8b\xc7\xe8\x28\x90\x6b\xe1\x05\x3a\xbb\x86\x33\xf7\x68\x93\x6c\x56\x41\xf4\x68\xb1\x13\x87\xb7\xaa\x4f\xc7\x40\xc2\xd2\x14\x1d\x97\xf2\xc7\x63\xab\xde\xb6\x85\x6b\xed\xf5\x87\x53\x5b\x70\x1a\xfc\x8e\x99\xa4\x00\x81\x44\x10\x84\xb8\x16\xf0\xc3\xb6\x43\xdc\x5c\xa6\x9d\x1f\x90\x0a\x89\x7b\xa0\x0b\x86\x37\x28\x06\x79\xf3\x49\xb2\x02\x04\xe7\x41\xdf\xaa\xa6\x01\x49\x9b\xa6\x0f\x2d\x22\xab\xaf\xfa\x0a\xcd\xe6\x23\xcb\x1f\xcb\xaa\xb9\x4c\x91\xe1\x20\x14\xc5\x0c\x30\xae\x64\xeb\xbc\x5a\x60\xf9\xec\x4a\x26\xc5\x1e\x18\x8c\x68\xc7\x9d\x1e\x20\x99\x15\x50\xaf\x5d\x59\x69\xdf\xc0\x79\x06\x2c\x00\xa9\x13\xdf\x9e\xe1\xfa\x48\x50\x38\xe5\x4b\x85\x86\xee\x2c\x00\xdf\xd4\x86\x9f\xc2\x4a\xb6\x74\x9b\xc4\x53\x59\x28\x78\x01\x4c\x86\xf6\x8b\x19\x74\x62\xe9\x07\xce\x59\xf1\x7a\xc8\x4e\x9d\xa9\x3f\x9d\xfb\x83\xc2\xc2\x25\x6b\xa8\x3e\x32\x05\x23\xf6\xac\xd9\x6b\xd5\x8a\xe1\x6b\xed\xd5\xf7\x57\x0e\x06\x32\x33\x8e\xd7\x15\x05\x30\x44\x92\x3e\x65\xd2\xbd\xc6\x4a\xa0\x08\xa6\xbf\x07\x93\x32\x5c\xb5\xb9\xa8\x9b\xbb\x16\x72\xdb\x31\x99\x15\xaf\x3d\x84\x1c\x8c\x0a\xc8\x18\x93\xfc\xad\x6c\x6b\x58\xa0\x80\x32\x81\xe2\x58\x36\x7d\xcc\xde\x11\x78\x36\xc2\xd8\x1a\x22\x38\xf2\x69\xae\x5f\x76\x7f\xde\x4e\xe9\x8f\x0c\x11\x42\xc7\x5e\x55\xa6\x50\x90\xbb\xc7\xbb\x72\x5d\x0c\xd1\x31\x5a\x6f\x3b\x19\xbb\x10\x0d\x31\xf2\x73\x3f\xdd\x8f\x76\xdc\xd2\xfe\xc6\xf7\xa5\x69\x7e\x88\x0a\x5c\xc3\xab\xfb\xee\x23\x92\x1c\x43\x8c\xc0\xf4\xed\xcb\xef\xeb\x95\xb2\x4d\x90\x5f\xdb\x46\x43\x05\xc3\x6a\xd7\x3d\x34\xb7\x28\x15\xaf\xde\x17\x28\x81\x0c\xd5\x9c\xab\x9e\xd8\xbf\xda\xea\x55\x33\xa9\xe5\x79\x8d\xc0\xb1\x93\xd0\x9d\x04\x03\xff\xa6\xeb\x60\xa6\xc7\x1f\x59\x9e\x4f\x3c\x3e\xc3\x20\x49\x63\x4f\xd7\x88\xd9\x45\x34\xa8\xd3\x5b\xe0\xc6\xa6\x63\x9a\x4c\xbd\x43\x33\xe9\x3e\x35\x61\x6a\xec\x86\xff\x26\x2a\xd8\xdb\xe9\xb8\xc8\x35\x4f\x4c\x68\xec\x27\x78\x85\xc6\x7d\x26\xdd\x05\x89\x43\x8e\xde\x44\xa1\x95\xce\x58\x97\xa7\x33\x34\x99\xe5\xdd\x1a\x18\xc8\x4c\x24\x4d\xac\xfb\x56\xc6\x41\xa3\x76\xca\x02\x61\x22\x15\x63\x87\xc4\xd1\x75\x3d\xcd\x1e\x27\x4e\xad\x0e\xae\x95\x1b\x3d\x42\xa1\x8f\x23\xfb\x6f\x92\x88\x62\xf9\x69\xf3\xf3\x3e\xab\x72\x53\x65\x50\xe8\xf1\x7c\x4c\xa2\x10\x6b\x0c\xb7\xab\xc3\xe6\xb8\x7b\xde\x3c\x1d\x77\x4f\xc7\xbb\x87\xdd\xee\xa5\x1f\x21\x22\x0b\xff\x47\x87\x02\x2b\x22\xed\xf9\x8c\x10\xd5\xa9\x25\x32\x89\x8c\xa9\x6b\x34\x41\x4f\x68\xa9\xa9\x66\x7a\xf3\x29\x51\x7c\xdc\x6b\x3a\x9f\xc0\xff\x49\xdc\xfa\x35\x42\x86\x91\x93\xdc\xee\x05\xfc\xdd\x21\x49\x2c\x9a\xf4\x2c\xaa\x26\x53\xd9\x59\x2c\x68\x5a\xfa\xa1\x34\x74\x84\xf4\x3b\x83\xdd\x73\xf9\xc4\x1d\x35\x92\x25\x58\xb5\x81\xac\xf8\x5b\xbc\xe5\x7d\x64\x67\xa4\x0a\x30\x9e\x3a\xb5\x39\x8d\x3f\xbb\xb8\x09\x50\xac\xb5\x29\x9b\x89\x1d\x36\xd2\x18\xcf\x88\x8b\xec\xfe\x53\x3b\x6f\x14\xd7\x08\xe6\xcf\x8a\x2e\x80\xae\xa1\x0b\xf0\x5d\x28\xb2\x98\xc0\x31\x2a\x36\x16\x41\x6a\xcb\x39\x77\x55\xf9\x37\x14\x53\xa3\xed\x47\x82\xe5\x25\x94\x56\xdb\x7e\x56\xa4\x32\xca\x48\x24\x6c\xf0\x04\x50\x96\xf9\x65\x52\xda\x34\x3a\x62\xaa\xfb\xa8\xef\xa2\x10\x42\x4a\x65\x9b\x98\x46\x45\x59\xa3\xa5\xf5\x63\x0e\x3d\x11\x5d\x56\xd4\x5f\x71\x1f\xb8\xf3\x20\x8c\xd1\xb3\x39\x89\x9f\x1e\x23\x3e\x3d\xae\x15\x16\xda\xd7\xd8\x77\xf2\xa3\xfc\x75\xc3\x80\x01\xd0\x58\x75\x46\x3e\xdd\x3e\x1f\xed\x7c\x10\x63\x02\xbb\xcb\xbf\x6c\x9e\x77\xcf\xeb\xd1\x4a\x34\xdc\x96\x9d\x0e\x9b\xd5\xe3\x84\xcf\x99\x18\xa3\x8d\x90\xa3\x6a\xa0\xfd\x30\x88\x50\x74\x24\x4c\x63\x5b\x4b\x83\xc0\x05\x5e\x88\x94\xde\x43\xf3\xdf\x79\x39\x48\x2c\x8f\x3f\x0e\x0d\x02\x11\x62\xcd\xd4\x36\xa0\x4d\xd8\x3c\x26\x7b\xee\xa8\xa6\x47\x03\x62\x0c\xe1\x3d\xf3\xc0\x01\xaa\x4a\x64\xd7\xf5\xa0\xe9\x3d\xd1\xc0\xb2\x88\xff\xdd\x38\x5a\x46\x1a\x50\x16\x63\x91\xcc\xa5\xf6\x31\xbd\xf2\xbd\xc8\xac\xfa\xf5\x52\x96\x87\x06\x94\x0b\xfc\xe5\xe7\xaa\x3c\x65\x75\x5d\x56\x97\xcf\x3b\x04\x69\x40\xa3\x18\x27\x85\xce\x4e\x96\xd9\x6b\xde\x5a\x4d\x03\x1a\x4b\x4c\xa8\x66\x75\xaf\x45\xb3\x60\x69\x69\xc0\x20\x46\x4c\xcf\xff\x69\xeb\x66\x0f\x85\xbe\x2d\x8b\x71\x73\x20\x0d\x98\x09\x8d\x17\x62\x9c\x4e\x71\x1a\x70\xc6\x11\x45\xed\x2d\xcc\xf1\xb3\x40\x6a\x76\xff\x9c\xc7\x98\x0d\x39\x54\xd9\xe9\x5c\x7e\x91\xcd\xfe\x8c\x97\xca\x5f\x07\x94\xd6\x3d\x02\xe7\xb7\xf1\xa7\x8c\x62\xab\xf6\x7a\x16\x6d\x0d\x48\x44\x76\xe3\xef\x3a\x92\x22\x49\x5d\x71\x78\x7f\x58\xdd\x6f\x8e\xf4\xf8\xb0\x7d\xdc\x1e\xfc\x80\x38\x4a\x51\xe8\xed\x00\x62\x4c\xff\xff\x65\xa2\x96\x06\x71\x6c\x89\xc2\x6e\xb3\x8f\x1a\xb1\x53\x6d\xa1\xcf\x65\xff\xae\x62\x19\xe0\x86\xd4\xf9\x40\x1e\x6f\x37\x4a\x55\xd1\x20\x49\x29\xf1\x5a\xe9\x68\x06\xee\x66\x94\x68\x34\x48\xb4\x41\xd0\x70\xdd\x88\x41\x05\x74\xd1\x67\xa0\x41\xca\x42\x7c\x37\xdf\x6e\xb7\x0f\xa3\x14\x39\x0d\x52\x6e\x04\x9f\x24\x43\xae\x2b\x00\x34\x48\xa5\x65\x63\xea\xc2\xb0\xce\x1e\xd5\x94\xf7\x17\xd0\x04\xf5\x8f\xc5\xf1\x23\x83\x1f\x7b\xc8\x73\x44\xbe\xd4\xab\xc6\xb7\xa9\x3f\x0a\x55\x95\xa2\xa8\x2f\xd7\x85\x40\x1a\x88\xd0\x58\xcd\xaa\xb6\xd0\x53\x58\x20\x0d\x64\x6a\xb0\x11\xec\xbd\x50\xcf\x50\x6d\x0e\xdf\x06\xb5\x73\x1a\x48\x50\xa9\x1e\x50\x71\x18\x53\xba\x43\x2a\x08\x31\x78\xbe\x7b\xde\x3e\x21\x4e\xfa\xf3\xda\x08\x0d\x14\xb1\x51\xdb\xb9\xcc\xf3\x9b\xb6\x2a\xfe\xd5\x5c\x1e\x45\xbf\x78\x55\x98\x62\x4d\xf5\x1e\x9a\x6d\xfd\x2c\xda\x3e\x68\xa6\x81\x8a\x2d\xcf\x5c\x56\xff\x01\x85\x2e\xab\x9d\x59\x4c\x48\xd1\x40\x25\x04\xeb\x68\x33\xa9\x9c\xdb\xed\xd3\xae\xbf\x96\x11\x98\x92\x7f\x28\x5f\x3b\x0f\xd3\xa6\xb9\xf4\xec\x23\x68\x15\xf2\x19\x73\xe5\xb6\x40\x02\x82\x76\xa4\xce\x32\xfd\xee\x10\x68\x62\x7c\x30\xd9\xcd\xa3\xe2\x15\xaa\x99\x1d\x85\x10\xd0\x24\x7b\x9e\xb1\x17\x50\x17\xb5\x04\x20\xf8\xe4\x5f\x7f\x99\x38\xc5\x5e\x11\x55\x7b\x58\xe4\xc3\x40\x70\x4a\x03\x48\x99\x09\xb1\x9d\xaa\xf3\x9e\xfd\x1f\x95\xc6\x72\x5c\x56\xb6\x47\xdf\xfd\x35\x7f\x6c\x13\x52\x24\x1d\xb2\x68\x34\xe4\x36\xe9\xcd\x91\x49\x65\x32\x28\x6e\xdd\x60\x87\xfd\x8c\x17\x81\x92\x20\x90\x10\xf5\x75\xf1\xc2\x26\x8d\xca\x76\xa2\x4c\xf9\xad\x17\x0e\xee\xc6\x03\xe2\x2d\xf5\x92\xa8\x0f\x25\x01\x8f\x7d\xee\xdf\x64\x0d\x09\x82\xa0\x3f\x62\x08\xd6\x1d\xac\xb2\x26\x86\x15\x33\x65\x4d\x37\x90\xb2\x20\xf6\x65\xa7\xcd\xcf\xfe\x1d\x11\xca\x6c\x73\xc5\xb9\xca\xfe\x06\xc4\x5b\x7a\x79\x45\x4a\x98\xcb\x19\x63\xaf\xda\x2a\xab\x6e\xab\xf2\xfc\x5b\xaf\xef\x7d\xf5\x39\x08\xef\xf6\x1d\x9b\xdb\xdd\xae\x77\xd3\x77\x4a\x78\x2c\xbd\x72\xca\x7d\x2b\x2a\x9d\x89\xa2\xc7\xcb\x50\xc2\x0d\x04\x0e\x21\xff\x08\x8d\xd0\xa2\x11\xbe\x9b\x72\x01\xe4\x41\x49\xc8\xed\xe3\xbc\x40\xd1\x0c\x05\x6b\x4a\x42\xc5\x10\xe0\x2c\xb3\x42\x41\xd1\x64\x1f\xb0\xa9\x2a\xe1\x59\x1c\x28\x89\xb8\x65\xe6\xb0\x69\x88\xa9\x59\xf5\x43\x40\x47\x6a\x2a\x1d\x4e\xfd\xe9\x31\xd3\x28\xd0\xf3\x3b\x14\xcd\xef\xe5\x44\x23\x90\x92\x24\x0d\x31\xbc\x90\xed\x65\x01\xb0\x43\x49\x02\x76\x31\xd9\xf8\x16\x3f\xff\x38\x95\x72\xed\xf1\x50\x92\x92\xd4\xf8\x32\x28\x86\x8d\xcf\x15\xd4\x90\xe7\xa3\xf4\x06\x25\x32\x8e\x71\xc1\x35\x48\x75\x7a\x53\x62\x60\x3b\xb2\x5b\x44\xa6\x89\x61\x3d\x59\xfc\x1b\x94\x15\x34\x99\x12\xb9\x4d\x09\xcf\x01\xe5\x8b\xab\x9a\x48\x00\x74\xd7\x5c\x69\xa1\x9e\x4d\x78\x95\x0a\x2c\x51\x63\x96\xa7\x71\xb9\x5e\x4f\x78\xea\x9d\x29\xbb\x25\xf9\xbb\xd2\x31\x0b\x23\xdf\x2a\x99\x15\x05\x34\x16\xc6\x34\x74\xc2\x52\x02\x94\xa7\x96\x44\xd2\xe1\x49\xfc\xc9\xc0\x79\x1a\x39\x4b\x68\xab\x03\xeb\x52\x5f\x55\xb2\xfc\xe0\x94\x44\x3e\x05\x75\x27\xb2\xdc\xa9\x6f\xe4\x50\xad\xdf\xba\x77\xf6\x58\x56\x70\x78\x13\x85\x8f\xf4\xfc\x8f\x98\xc4\x82\xa7\x85\xd6\xcf\xa3\xfd\xce\x1e\xa5\x01\x15\x88\x6d\x43\xe9\xc3\xb5\xd5\x92\xf3\xa4\xad\xb8\x7a\x47\x4c\xd9\xb4\x33\x46\x88\xfc\x76\x7d\xf3\xb6\x11\x45\x5b\x4a\x87\xe9\x75\x89\x50\x08\xc7\x73\x42\x1f\x76\x8e\x6e\x67\x26\x8a\x76\xe3\xa2\x81\xe9\xa8\x73\x8a\x3e\xe7\xe9\xea\x86\x47\x31\xef\xad\x56\x4f\x9a\x37\xf9\x88\x94\xa6\x91\xb6\xb4\x4e\x08\xe5\xf4\x7f\x15\x56\xf0\x34\x2b\xea\xb6\xea\x2c\xcc\x71\x3c\xeb\x29\x15\xc2\xcb\xc3\x37\x33\x54\xad\x43\xa1\x46\x7c\xbc\x0c\x28\x95\xb1\xef\x23\xb9\x59\xe2\xbd\xa2\x94\x91\x04\x3b\x38\x5f\xca\x1a\x38\xeb\xff\xca\x64\x2c\xfa\x54\xe9\xb7\xb2\x6e\xd6\x6d\x33\x7b\x02\x2e\x63\x94\x03\x47\xb0\xcd\xee\x77\x7f\x2a\x57\x02\x43\x2a\x24\xa3\xbc\xfd\x3e\x8e\xdf\x28\x0d\x89\x6d\xb4\xbb\x7d\xd9\x3d\x6d\x86\x1e\x27\x4a\xe3\xc4\x66\xff\x8f\x9e\x39\x67\x0c\xe8\x9f\x6f\x54\xe3\x65\x4b\x91\x67\xd9\xc6\x7c\xd9\x2c\xa4\xa7\x34\x89\x62\xe4\x4c\x7f\xbc\xd8\xf5\x80\x0d\x8c\x73\x48\xb9\x1f\x9b\x40\xe2\xa0\x4d\x0e\xdd\xb7\xad\x9f\x4a\x17\x13\x2e\xf8\x36\x34\xa5\x51\xe2\x5e\xc0\xab\x63\x2c\xb5\x2d\x92\xfe\xa1\x52\x4e\xb1\x73\x12\x59\x27\x6f\x41\xe4\xbf\x79\x66\xfc\x2f\xd7\x3f\x15\xdc\x12\x59\xa0\x3e\x21\xea\x25\xfa\x46\x8f\xc5\xf0\x87\xca\x20\x41\x1f\x07\x99\xe1\x1f\x45\x21\x5e\x11\x1c\x3a\x23\xc8\x99\xbe\x36\x19\x48\xec\x22\x6f\x3a\xb7\x37\x3b\x61\xa8\x4c\xfc\x8d\x4b\x12\x23\xad\xd9\xf1\x15\x9a\xcd\x39\x53\xcf\x79\x5b\xbf\x88\x2a\x73\x90\x32\xbf\xd8\xa9\xd4\x01\xba\x9d\x37\xbb\xc3\x71\xf3\xb0\x79\xdc\x3c\x1d\x8e\xfd\x1c\x52\x71\x84\x45\xc3\x91\x06\x4f\x0e\xd5\xde\xea\x51\x60\xbf\xb5\x1f\x28\x45\xe4\x5e\xfc\x77\x9c\xc2\xe3\xf2\x03\xa5\x9a\x5b\x22\xfe\x6e\x0e\x77\xdb\x8b\xf7\x0e\xa8\x4e\x25\xd6\x13\xcb\x22\xb7\x54\xc1\xf7\xdd\x2c\xef\xe2\x6e\xc7\xa0\xe2\xc7\x09\x83\xc2\x0e\x4d\x76\x02\xd7\xea\xe7\x8e\x00\x09\xd1\x2f\xb3\xe2\xea\x2f\x5d\x2c\x44\xfb\x63\x61\x8c\x69\x38\xc7\x63\xee\x38\xd4\xa7\x1f\x0a\x80\x46\x96\x46\xb8\x78\x2c\x3f\xa0\x19\xaf\x55\xc3\x08\x66\x93\x56\x39\xfc\x1c\xd2\x44\x94\x9a\x18\xa4\xf3\xc8\xef\x00\x5e\x40\xc1\x0c\x4b\x6a\xc7\x31\x42\x18\x76\x32\x34\x6f\x15\xd4\x6f\x65\xae\xeb\x9b\x8b\x25\x9b\x9f\xdc\x03\x23\x34\x42\x9c\x85\x33\x61\x5f\x44\x92\x8c\x00\x20\x44\xae\x8b\x4a\xba\x6f\x7e\x0f\x85\x77\x6e\x18\x25\x6c\x04\xc3\xdd\xfc\x54\x79\x5b\x67\x1f\xd7\x8d\x0e\x94\xd1\x24\x96\x36\x8b\xd5\xd9\xf3\x7f\xb5\xa2\x6a\xa0\xca\x2f\x03\xc3\xd3\x3c\xec\x64\x14\x02\xe4\x85\xba\xc5\xf4\xdc\x12\x0c\xc6\x0d\x64\x41\x18\x84\xde\xd0\x7a\x82\x27\x8b\x18\xeb\x77\xf9\xc9\x13\xb1\xd8\x72\xbf\x5a\x53\x7b\x0b\x1a\xb3\x7e\x7a\x82\x31\xf1\x43\x8d\x54\x72\xac\x7c\x83\xfe\xdd\x6c\x10\x4f\xa4\xf0\xb4\x90\x59\xb1\xcf\xb3\xf3\x59\xbc\xc2\x42\x7f\x28\x65\x61\x10\x09\xe7\x7a\x63\x9f\x21\x4d\xfd\xab\x0c\x89\xe4\x7d\x0d\xa9\x00\x51\xbd\xb8\x74\xa3\x3f\x1e\x13\x7c\x4a\xe9\xfd\x64\x16\x31\x8e\x62\x08\x6f\xa2\x7e\x3b\x94\xf8\xc0\x53\x27\x9e\x45\xb1\x65\xa0\x73\x89\xdb\x71\x3e\x78\xf6\x91\x63\x21\x11\x2a\xb4\xad\xf7\x00\xfa\x71\x52\x4a\xf7\x43\xa4\x83\xeb\x67\xc5\xd1\x4a\xbf\x1c\x9b\xf2\xd8\xf9\x3a\xfe\x86\x12\xa2\x70\xcb\xff\x53\x0c\xfb\x2d\x76\x7c\x9f\xf3\xcc\xe7\x78\x29\x4b\x42\x1a\x18\x8f\xc0\xed\x86\x74\xeb\x53\xbd\xf5\x87\x65\x8a\x11\xd4\x0d\x88\x66\x57\x59\x9c\x7f\xe7\x7d\x8c\x3b\xd6\xfc\x50\xa5\x12\xdf\x5d\xb3\x7d\xd9\x1f\x8e\xfb\xc3\xe6\xf9\xf8\xf8\xfd\xe1\xb0\x7d\x7e\xd8\x6e\x5e\xfc\x25\x53\xc2\x11\x7e\x7a\xea\xee\xa5\xce\x5e\x87\xa8\x90\xa5\x91\xd5\x50\xce\x0b\x8c\x4b\x40\xff\xd6\xf9\x7b\x34\x99\x4e\x98\x34\xb2\xb6\xc0\x27\xa1\xea\x6d\x61\x85\xb1\xfb\xcb\xc4\x96\xf5\xf2\x09\x9e\x3d\xa6\x88\xb2\x54\x12\xe8\xb3\xe1\xff\xdb\x42\x17\x9a\xe9\xd9\x7c\x48\x25\xc5\x80\xf5\x8c\x21\xcc\xf6\xb0\x3b\xbe\xa1\x3b\x76\xde\x16\x3d\x53\x04\x65\x42\x72\xab\xfa\x86\x1b\x2b\xe8\x43\x39\x7b\x13\x42\x31\xe7\xfb\x55\x99\xb9\x4c\x13\x48\xb3\xd5\x22\x63\x8e\x7e\xf9\x77\x0b\xee\x5b\xbd\xda\xc6\xb9\x4f\xd6\x96\x14\x81\x4c\x1c\xea\xf7\xae\xac\x4e\x6d\x2e\x7e\xeb\x0f\xb1\x84\x60\xef\x4b\xe7\x71\x5a\x49\xaa\x2f\x83\x41\x26\x15\xe0\x14\xff\x5b\xd4\x3f\xbb\xff\xf9\x2b\xa9\x84\x22\x7e\xe9\xee\x65\xb3\xf9\xef\x8d\xd3\x83\xf5\x07\x81\x24\xd8\x92\x6d\xfd\x31\x5b\x86\xf3\x9d\xe4\x9f\x58\x2c\x08\x23\xb4\x1c\xca\xee\x1f\x13\xbb\xce\x20\x02\xcc\xdc\x7c\x38\x08\xd4\x12\x53\x35\x65\xa0\xf5\xc0\xf3\x7d\x3a\x97\x05\x14\xcd\x76\x99\x90\x80\x32\x13\xc6\x6a\x5c\xdf\xb9\xab\xca\xd3\xca\x43\xce\x29\x0f\x88\xc1\xfd\xa2\x19\xb8\x3c\xf6\x28\xb8\x3a\xf2\xa3\x79\x40\x63\x7c\x37\xae\xdb\xb2\x2a\x4f\x25\x36\xdc\xff\xb6\x98\xec\xf2\x27\x09\xc0\x4e\x01\xe5\xa3\xf8\x17\x38\x8b\x4a\x9c\xa0\x81\x1e\x4f\x30\xb1\x08\x9c\x52\x82\x39\x3f\x27\x5c\xbb\x33\x58\x44\xdb\xe8\xde\xb5\xe3\x34\xd4\xb1\xb3\x2a\x4f\xe5\x4d\xd6\x6f\x9c\x9c\x26\x96\x14\xd2\x19\x93\x5e\x40\x39\x9f\x16\xe0\x29\x67\x81\xc2\xdc\xe6\xb1\x86\x42\x5b\x36\xfe\xb7\xec\xfc\x75\xf4\xc2\x19\x4b\x50\xdf\xc7\x58\xa1\xf1\x39\xea\x88\x72\x26\x02\x64\x5e\x71\xb0\xa4\x3b\x38\x09\x27\xed\x5f\x8f\x53\x0a\x9c\x19\x8d\xad\x4b\x42\xeb\xbe\xf1\xe9\x97\x78\xfd\xb1\x93\xc3\x39\x0d\xd0\xb9\xbd\xab\xa0\x56\xe5\xd8\x95\xe6\x5c\x26\x08\xca\x34\x19\xaa\x16\x9c\x3b\x9b\x7b\x73\x99\x32\xc7\x2e\xe7\xfe\x38\x07\x40\xd4\xd5\xaa\x33\xad\x90\xf7\xeb\x88\x87\x91\x65\xc6\x3a\x65\xc5\x98\x8b\x73\x52\xa4\xa0\x3c\x8c\x6d\x83\xba\x35\x14\x07\x21\xe7\x9e\x28\x8f\xb9\x24\x5e\x55\x1f\x53\xef\xee\xef\x09\x09\x53\x18\xa1\xc7\x7c\xcd\xf6\xd7\xbc\x56\x94\x27\x5c\xe0\x4b\xff\x18\xc9\x8e\x4e\x57\x0a\x4f\xb8\xc2\x44\xd1\x0d\x34\x75\x53\x81\x78\xdf\xae\x77\xfd\x4f\xa7\xb6\x6f\xdf\xa5\xfc\x2c\x39\xda\x5a\x9c\x67\x77\x9e\xa4\x0c\x63\xf6\xa3\x6c\x2f\x4f\xf8\xd1\x27\xfc\x4c\xc9\x6c\xaa\x24\x60\xcb\x5c\x5e\x89\xa6\x30\xd9\xeb\xf2\xca\xe4\x29\x89\x10\x04\x7c\xb6\xe2\x58\x13\x41\x23\xca\xd3\x30\xa2\xd1\xc0\x7b\x30\x13\x85\x58\x36\x62\x3c\x4d\x52\x35\x38\x0f\x3d\xdc\x63\x3a\x48\x84\x04\x61\x55\x2e\x43\x82\xc6\xd1\xe1\xe4\x3f\xe1\x43\xa2\x5c\x82\x75\xdd\x0e\x6f\xf0\x92\xa9\x37\xa8\x9b\x3f\x7b\xc6\x65\xca\x35\x91\xbe\x29\x68\xbb\xde\x61\xf4\x34\x30\xf6\x53\xae\xc3\xc8\x0b\xe5\xd9\xa0\xb6\xbd\x02\x61\x53\xae\x13\x8e\x4e\x9f\xb5\x31\xae\x67\xde\xcf\xb7\x3f\xb3\xe6\xed\x2e\x2f\x45\x33\x80\x75\x3e\xcd\xf5\xcd\xfe\xee\x53\x58\x5c\x4b\xcb\x96\xec\xbe\x37\x7a\x11\x93\xb5\xdf\x27\x5d\xca\x32\x9f\x2e\x3a\x08\x41\x9a\x89\x38\xdb\xe6\xf0\x6d\xb7\xbf\xee\x48\xf0\xe3\xb5\xd6\xe9\xd0\x00\xe6\x2b\xa2\x5f\x44\xd8\x1c\x40\xe1\x2e\x8a\xf2\x59\x65\xb1\x33\xae\x73\x64\xf6\xed\x4c\x60\x21\x9a\x4d\xd6\x34\x97\x4f\x56\xa3\xa1\xc6\x66\x50\x9d\x7a\x4f\x51\x37\x95\xe8\x1c\xce\xf5\xb5\x4f\x1e\x06\xb1\xc2\xce\xce\x17\xa1\x33\xbf\xe7\x85\x01\x88\xb8\x6f\x83\x33\x50\x55\x22\x1f\x7a\x23\x69\xd8\xdd\x83\x2d\x94\xda\xed\xf5\x04\x45\x83\xc1\x59\xf3\x2b\x2e\x0b\x1a\x92\x44\x21\xdc\x00\x7e\x42\xd5\x45\xb7\xcf\xed\x2f\xe6\x74\x48\x03\x40\x8b\xed\xd2\xe6\xe3\xda\xa1\x1f\x91\xc4\xa9\x83\xb2\xd8\xed\xf4\x1a\x9e\xf2\x65\xe9\x23\xa4\xc2\x82\x3d\x11\x4d\xe6\x13\x5a\xfe\x98\xa4\x48\xe1\x24\x50\x8d\x0b\xa1\x2c\x6d\x05\xc3\xce\xe1\x87\x01\xc3\x7b\xf0\xa5\xa4\xde\x48\x7c\x06\x0b\x77\x32\x6d\xf3\xb9\x16\xb2\x98\x23\x34\x4d\xb6\x97\xd5\x61\x3d\x36\xf0\x21\x13\xb6\x69\xb8\x57\xac\xfb\x6d\x22\x4b\xb7\xf0\xef\xf2\x1b\xe5\x5c\xe1\x04\xb9\x2f\xed\xeb\x9a\xfc\x48\x14\x25\xb1\x05\x83\x6b\x54\x68\x75\xbf\xe1\x25\xf0\xa8\x1f\x96\x08\xec\xef\x3d\x3b\xcc\xd3\xf1\x8c\x0d\x25\x96\x15\xb1\x0b\x0e\x17\xe3\xfa\x30\x8e\x34\xf6\x73\x3f\x88\xb6\xd0\x55\x79\x12\x57\x5f\xdf\x0f\x34\x11\xb1\x92\x56\x85\xaf\x36\x4d\x97\x42\x98\x28\x29\xf5\x54\xed\x64\xf0\x9d\xc3\x94\x24\x08\x0b\xd1\x90\xbf\x96\x5a\x4c\x6f\x66\xf6\xf9\x53\x6e\x90\x39\x36\x7b\x14\x79\xb6\xb0\x8d\x84\x69\x6a\x9b\x91\x70\x7e\xac\xcb\xf6\x5c\x16\xf5\xe0\x01\x87\xa9\x8a\x71\x4f\x76\x71\xf5\xf3\xd9\xe7\xa5\x43\x41\x69\xea\xd2\x1e\x1b\x54\xad\x9b\x5d\x58\x26\xd2\xf5\xad\x79\xe8\xab\x37\x57\xa1\xd4\x32\x76\x41\xb5\xad\xc0\x8a\xea\xe2\x12\x21\xb3\x8b\x28\x06\xb8\x0f\x62\x7e\xf6\x7e\x44\x8b\x30\xc2\xd8\x75\x8e\x53\x80\x98\xb2\x97\xec\xdc\x94\x37\xed\xcf\xc9\x47\x87\x80\x23\x0e\x5b\x9b\xba\xff\x93\x36\x9a\xf5\x4a\xbd\x75\xfd\x08\xea\xed\x9a\x21\x99\x86\x26\x74\x68\xa0\xce\x37\xba\xdd\x97\xb9\xcf\x7f\x86\x26\x0a\x91\x40\x69\xff\xc7\xc6\x97\x26\xa3\x20\xd5\x98\xe4\x36\x22\xcb\xe1\xaa\x58\x1b\x11\xa2\x0d\x8c\xa9\x1a\x97\x00\xcc\x34\x22\x32\x92\x73\x7e\x89\x87\x72\x10\xbb\xfa\x4f\xfa\x3f\xff\xa0\xed\x82\x46\x44\x71\xe5\x10\xf4\x9b\x97\xfd\xf1\xdb\xee\xe1\xb6\x0f\xcc\x22\xa2\x0c\x38\x5c\xfe\x07\xe4\x87\x72\x79\xa2\x46\x04\xac\x67\x63\xaa\xc9\x3a\x8a\x68\xca\x12\xde\xa3\x85\x50\xe6\xe8\x8b\x06\xe6\x6e\x7c\xc4\xa4\xef\x3b\x35\xe5\xf2\x83\x53\xa3\x62\x4b\xcf\xac\xab\xc5\xd8\x20\x62\x22\x65\x33\x36\xa2\x71\x23\x07\x8d\x18\xa4\xe8\xab\x1d\x11\x73\xbd\x2f\x55\x26\xf2\x27\x68\x7e\x94\xd5\xbb\x27\xd3\xfa\x92\x38\xe1\xb3\x77\xc9\x79\x84\xc4\x2f\x67\x51\xd5\x40\x7f\xc0\x54\xdd\x84\x46\x3c\x8c\x91\xe2\xc7\x36\x9e\x89\xd7\x6a\x16\x26\x46\x3c\xa1\xd4\x62\x95\x9a\x2a\x83\x0f\xf8\x73\x7d\xf0\x99\xab\x88\x1b\x9b\xe6\x91\xed\xe5\xb9\x2d\x66\x89\xe7\x28\xd4\x84\xf5\x20\x24\xc7\x19\xda\x2b\x19\xb6\xf5\x72\x0a\x27\x0a\x75\x88\x8d\x7c\x07\xe8\x5c\xc3\xce\x09\x5b\x15\xf5\x3c\x1f\x16\x85\x4e\x87\x0a\xd3\x69\xab\x42\x5f\xa3\x60\x68\x14\x1a\x89\xed\x9c\x25\x4e\xd9\x6e\xa7\x74\xde\xc5\xa4\x38\x1c\x45\x44\x5b\x81\xff\x73\x9e\x35\xb7\xab\xdd\x62\xc3\x25\x8d\xa2\x38\x15\x0e\x10\x74\xd7\x16\x7a\xff\x3c\xe9\x57\xa5\x51\x4c\x19\x66\x87\xef\xa1\x80\x0a\xc9\x6f\x64\x9e\xa9\xdf\x61\xa9\x9d\xb9\x1b\xcd\x51\x1a\xd1\x39\xc9\x2f\xce\xcf\xee\xab\x14\x51\x1c\xdb\xef\x86\xd3\xa1\x47\x0c\x7c\x36\x4b\x63\x91\x7a\xb3\x0a\x0d\x6c\x0b\x27\x8d\x37\x9d\x0a\x49\x62\x61\x28\xb2\x20\x34\x39\x9e\x6c\x92\xa5\x9f\x55\xff\x61\xff\xe3\xc7\x81\x41\xc8\xf4\x4b\x8b\x35\x4e\xb7\xf1\xd6\x93\xaa\xc6\xd7\x25\xdc\x28\xa5\x11\x06\xcc\xba\xdc\x97\x27\x68\xde\x86\x1a\x4f\x94\xa6\x0c\x41\x61\xeb\x4c\x09\x2d\x26\x6b\x33\x55\x96\xdc\xb2\x86\x72\xf6\xb9\x53\xcd\x10\x76\xd1\x73\xbe\x1c\xf8\x61\x36\x4f\x53\x6d\x52\x97\x75\x7b\x10\xf5\x10\xee\xfb\xc3\x00\x4c\x7b\x32\xae\x5f\x78\x43\x91\xe0\x89\x55\x8c\x80\x53\x86\x25\xbd\x71\xb2\x63\x79\x9d\x09\x9e\xaa\xc1\xb7\xec\xcc\x7d\x67\x2e\x30\xaa\xaf\xaa\x19\xde\x9c\x46\x8a\x04\xe8\x89\xc2\xcf\x37\xd1\xd6\x8d\x15\xe0\x9d\x8f\xa1\x1c\x53\xe3\xcf\xf7\xb7\x93\xb7\xa4\xa2\x14\xd3\x2b\x23\xe8\xdc\xb2\xcd\x51\x91\x89\x1d\x19\xa1\xd5\x1b\x5b\x36\x5e\x4a\x85\xae\x02\x63\x5d\xca\xa9\xbc\x38\x8d\x34\x63\xf8\x2d\x9b\xcc\x37\x41\x4d\xcf\xd7\xd2\xca\xfa\xee\x1f\xee\xfe\x1a\xa5\x9f\x23\x48\x35\xe6\x79\xb3\x22\x6b\x1c\xbb\x22\x3e\x87\x65\x56\xfd\x0c\xf5\x4b\x23\x30\x16\x62\x74\x16\x97\x89\x52\x46\x3f\xc0\x84\x96\x22\x0a\x0a\x3d\xad\x1f\x46\x26\x11\xc1\x20\xec\x6e\x69\xa7\x16\x1b\x9e\x96\xfe\xb1\xd7\x88\x03\x16\xa3\x2b\x74\x2a\xf5\x7a\xb3\x5b\x74\x97\x70\x0c\x72\xb2\xab\x12\xa3\xaa\xdf\xfc\xdf\x15\xf7\x55\x33\x7c\x53\xd7\x12\xe6\x34\x26\x54\x80\x1c\x71\xd4\xfe\x59\xe6\xef\x9e\x46\x67\xd9\xf4\xc4\x84\xc7\x0a\xfa\x54\x9e\xd3\x9f\x9a\xdc\x34\x91\xa0\xd5\x84\x1f\xc4\xf7\x09\x4e\x7f\x9c\x6a\xdb\x74\x90\xd5\x57\x78\xd0\x51\xbd\x29\x66\x84\xe2\xd4\xcb\xea\x9b\xd9\x93\x33\xc1\x31\xec\x16\x79\xee\x29\xab\x06\xb8\x8a\x1b\xc3\x39\xc3\x6c\xac\x23\x36\xc7\x36\xd8\x89\xc9\x8d\xc3\xd8\x60\x71\xae\xd7\xfc\x04\x71\xea\x5b\xef\x68\x1c\x05\x0a\x5b\xe5\xef\x4b\xab\x74\x5a\xf7\x07\x22\xbb\xa9\xd7\x7d\xdf\xd7\xa7\xd3\x28\x8e\x92\x18\x71\xe7\x3f\x20\x73\x49\x04\x6c\xc2\xf0\x47\xa5\x46\xfd\xdc\xe7\x97\xdd\xf3\x6e\xbf\xb9\x3d\xee\x0f\xab\xc3\xf7\x7d\x7f\x58\x29\xe3\xd8\x26\xbe\x41\x55\x4e\xba\xe4\x27\x2f\x3e\x26\x2a\xb1\x4c\xe0\x7b\xe1\xf5\x03\xbb\xbf\x1a\xc4\x23\x40\xa1\x9f\x73\xa1\xdc\x4c\x9c\x7e\x8a\x38\x0a\x11\xee\x54\x37\xd5\xba\x2c\x94\x68\x16\x21\x11\x71\xc2\x18\xae\xce\x1f\x55\xd6\x40\xdf\xdc\x79\x57\xce\xb0\x37\x71\x62\x14\xa2\xfb\x57\x59\xa5\xab\xf2\xec\x54\x4f\xdc\xc1\x34\x50\xf8\xb4\xfb\x4c\xc3\x4d\x95\xe9\xd7\x2f\xd0\xf7\xfe\x94\x58\xe2\xf5\x9e\x2b\x80\x1e\xd1\x12\xa7\xca\x4e\xfc\xba\x8b\x40\xd1\xc9\xab\x96\x57\x48\x0a\x22\x1c\x2a\xd3\x47\x89\xdb\xf3\xf1\xb4\xe4\x28\xc7\x02\x24\xc1\xda\x98\x53\x26\xe9\x62\xe8\x2f\xea\x0e\xb1\x54\xbd\xa2\xd6\x03\x98\xa6\xfc\xf0\x04\x57\x37\xed\x15\xfd\x2e\x8d\xa5\x91\x9e\x20\xf8\xc1\xa7\x07\x27\x6f\x58\x05\x1c\x83\x01\xf0\x55\x4c\xff\x77\x02\xdc\x6d\xf8\x78\x4b\x37\x97\x3f\xcf\xdb\x4f\x12\x31\xb1\x52\x1c\x9d\xea\x6e\x46\xdf\xda\xd6\x26\x98\x19\xfd\x58\x07\x09\x17\x5e\xfd\xae\xc9\x3e\xe0\xa6\xad\xb3\x02\xbb\x06\x9f\xa1\x5a\x8f\x3c\x3c\x7f\x42\x2c\xb1\x55\xf4\xae\xac\xdf\xc4\xec\xa5\x01\x57\x18\x74\x9e\x44\xd1\x8a\x3c\xbf\xec\x91\x5d\xd8\x51\x1d\xf4\x8c\x0f\x77\x65\x85\x24\x12\x9f\x88\x96\xcf\x1e\x02\x0c\x43\x5f\xf0\x88\xce\xe2\x63\xfd\x3a\xb4\x36\xf5\x23\xac\x67\x7e\x3a\x9a\xb6\xd0\xf5\x34\xc3\x11\x1b\xc2\x59\x6f\xfe\xa0\x86\xa2\x59\x7a\x0d\x86\x59\x22\xe3\x57\xe7\x28\x7d\xe5\xd8\xc4\x46\x59\x95\x92\xf5\x5b\xa6\xde\xa1\xb8\x13\xd5\xa9\xaf\x0a\xc5\xc6\xcd\xf9\xb7\xb2\x12\xfe\x26\x92\x80\x10\xee\xa8\x7a\xab\x41\xf0\x6c\xbc\x83\x26\x01\xb3\x5a\x4c\x9d\x2b\x97\x8b\xd7\xaf\x50\x7d\x49\xc0\x14\xa5\x4e\x1b\xd0\x72\xf6\xcd\x40\x32\x49\x20\x3d\x1d\xc8\x52\x05\x7f\xfa\x3c\x49\x67\xfd\xb1\x8e\xdd\xda\x29\x3e\x22\x03\xf7\x23\xb4\x60\x49\x4f\xb2\x7d\x73\xed\x78\xf8\x71\x06\xb0\xe4\xff\xaf\xb6\x73\x21\xcb\x62\xbb\x68\x3f\xba\xff\x43\x5c\x86\xaf\x3b\xc3\xfc\xf6\x29\xd8\xb6\xca\xfd\xe6\x79\xe5\x5f\x10\x8b\x98\x1c\xf7\x3e\xa3\x10\xdd\xb0\x6e\xaf\xad\x6d\xc2\xe2\x10\x46\x5a\xb9\xf6\x9b\xfe\x99\x35\x6f\xd7\x72\x0d\x34\x61\x89\xb2\x4a\x24\xad\xc4\x02\xa9\x43\x6e\x4c\x07\x71\x43\x91\x3d\xf5\x8c\xe1\x12\x5c\x31\xdd\xd1\x24\x8c\x05\xe6\x2f\x3d\xd3\xbc\xa5\x99\xef\x7e\xd4\x12\x2a\x5f\x67\x10\xbb\x17\x38\x81\xad\x24\xa1\xa6\x31\x0a\x10\xef\x56\x0f\xc7\x97\xcd\x6a\xfd\x6d\x73\x7b\x5c\xbf\x6c\x0f\x9b\x97\xed\xce\x63\x46\x92\x88\x52\x4f\xff\x70\xbb\x44\x15\x4e\x93\xd8\x41\x9a\xb0\x0d\xe8\xfc\x4b\x85\x73\x7f\x96\x52\xf8\x9e\xcb\x9e\x86\x71\x76\x5c\x47\xb8\xf1\xbb\x8a\xfb\x9c\xab\x71\x9c\x19\x75\x67\x24\x41\x64\xdb\x1d\x5b\x79\xca\x9a\x11\x13\x3c\xbe\x16\xaf\x53\x71\x4d\x99\x88\x21\xe4\x7f\xfe\xa7\xef\xe1\x18\xfd\x97\xbf\x32\x49\xd1\x2d\x3b\x7c\x5b\x3d\xfd\xbe\x3f\x6c\xf6\x07\x0f\xe2\x48\x12\xb0\xc8\xd7\x62\x68\xda\xad\x3a\xeb\xe3\x3d\x84\xe5\xfc\x4e\x92\x06\xa9\xcf\x14\xf5\x11\x8b\x3f\x44\x6d\xa6\x16\x5b\xda\x97\x2a\xcb\x89\x60\x0c\x35\x10\xb1\x9f\x33\x53\x30\xf2\x3c\x13\x01\xf6\x56\x95\x56\xfe\x4f\xca\xbd\x17\xf8\x79\x1e\x15\x6d\xe7\x55\xfe\x44\x89\x80\x39\x3f\xea\x20\xea\xf7\x87\xac\x6e\xf6\xbd\xd0\x29\x4d\x74\x64\xc9\x86\xf4\xa5\x38\xd6\xd9\x6b\xff\x67\x23\xb1\x96\x87\x6c\x4a\x42\xfd\xef\xcc\x83\x4e\x40\xc8\xc0\x46\x67\xa6\xf3\x7d\x5f\xa0\x2e\xf3\x8f\xde\x8c\x25\x86\xf4\xd9\xa6\x9d\xfc\x3f\x30\x23\x1f\xa7\x89\xe1\x01\xa2\xf0\xac\xac\x62\x69\xba\xa5\xf0\x9c\xf7\x35\xe3\xc4\x84\x06\x53\x93\x22\xab\xe8\xd7\x49\xdb\xc4\xc4\x56\xc8\xc0\x78\xde\x8d\xed\xed\xf2\x26\x9b\x98\x24\xc4\x4a\x2d\x9a\xbc\x39\x21\xec\x40\xe1\xfe\x28\xce\x53\x47\x24\x0d\x34\x41\x41\x33\x0f\x13\xf4\x2c\xa3\x79\x79\xc1\x02\xd4\xd4\xf5\xfe\x24\xa5\xe1\xaf\x65\x00\x37\x24\xe3\xf4\x34\x36\x3f\x3d\xb7\xbf\xaf\x4f\xa4\x84\x5a\x92\x0c\xe5\x72\x8d\x9e\x28\x9c\xa6\x84\x43\xe8\xa6\x97\x7d\xad\xe3\x46\x5d\x67\xc2\x12\x3f\xbd\x53\x12\xd9\xca\x34\xa0\x7a\xf3\xa7\xba\xe5\x63\xe3\x91\x92\x98\xd1\x79\x13\x10\xe8\xb9\xe6\xc9\xe2\xc6\x96\xb2\x38\x4e\x6d\x3b\xff\xee\xfc\xc9\x02\x49\x59\x2a\x69\xec\x93\x46\x88\xca\x1a\xe4\x72\x69\xca\x04\xc1\x70\xbe\x2d\xa4\x58\x4e\xeb\xa6\x5c\xc4\x16\x5c\x01\xb9\x11\x15\x7c\x13\x85\x2e\xdb\x5f\xc6\xf0\xb3\x3b\x0d\x19\xb7\xa2\xfe\xc7\x33\xd8\xee\xca\x11\x02\x32\x0d\x45\x2a\x85\x4f\xf2\xdc\xb6\x53\x09\x6b\x9a\x46\x9c\x0b\xcf\xa8\x83\xaf\xe5\x05\x32\x2c\x4e\xcc\xee\x34\xe2\x11\xde\xe9\x7f\xef\x6d\x0c\xf9\xc5\x96\x9c\xc6\x32\x45\xbe\x74\xaf\x3a\xf6\xb0\x79\xba\xef\x33\xcc\x69\xac\x2d\xe5\xcf\xcd\xe1\xe1\xb8\x3a\x7c\xdb\x3c\x6d\x57\xde\x8e\xa7\x89\x62\xc8\xd2\x93\x35\x70\xfa\xa3\x6c\xe0\xf6\x13\xfc\x52\x9a\xa8\x10\xe3\xa9\x5c\xd4\xcd\xf1\x47\x56\xf4\x62\x94\x34\x4d\x29\x93\xc6\xb3\xb2\x1c\xb1\xdb\x61\xd4\xe6\x30\xb2\xc5\x69\x1a\x59\x69\x5d\x38\x97\xea\x6d\x8c\xed\x4d\xd3\x48\xa7\x36\x51\x3a\xfa\x5b\x42\x90\xf3\x04\xb5\x63\x7e\xc5\xc4\x44\x53\xc1\xb8\x8a\x86\x88\x0f\x73\x93\x38\x37\x69\xe0\x47\xa4\xd4\x70\x27\x26\xa1\xc4\xd9\x61\x53\xe7\x10\xf2\x54\x6a\x2b\xa9\xe2\x74\x9c\x76\xe6\xe6\xf2\x00\xaf\x42\xcd\x50\x4d\xa9\x62\x9c\xf6\xcd\xb8\x53\x6e\x86\xee\x60\x82\xdd\x72\x2e\x79\x99\x0f\xed\xbd\x0b\xda\xa3\xa3\x57\xa4\x98\xb6\xed\xd2\x6e\x7f\x93\x3d\x1a\xe9\x3f\x89\xdb\x82\x66\x5f\x06\x52\x50\xd6\x96\x8a\xe6\x0d\xe1\x50\x1f\x24\xf2\xb7\x01\x52\x2b\x3d\x90\x50\x8d\x35\xdb\x67\x57\xd1\x0c\xdb\xfe\xb0\xe3\xeb\x30\x36\x71\xbf\x58\xb6\x60\x34\x42\x0d\x0f\x65\xf1\x26\xca\xd1\xa6\x93\x9a\x20\xc2\xbc\x96\x85\xd3\x1c\xeb\xf7\xe3\x7b\x51\xfe\xc8\x61\x14\x6c\xfd\x87\x0e\x8e\x13\x75\xef\x5f\x04\x89\xa5\xbf\xec\xe5\x10\xff\xf4\x9a\x1f\x54\x04\xa9\x42\x92\x7d\xcb\xc0\x84\xef\xe8\x5a\xa5\x7b\x3c\x2d\x04\xa1\x0c\x5d\x62\x54\x95\xcf\xb3\xba\xa7\x4e\x9a\xcd\xa5\xc9\x53\x09\xc2\x63\xe5\xf2\xd7\x7f\x95\xed\xba\xcc\x73\x50\xd7\xb4\xd8\xc3\x77\x13\x24\x61\x28\x69\xf0\xb8\xdb\x61\x63\xcc\x7a\xf7\x74\x78\x59\xad\x7d\x3d\x41\x10\x05\x3e\x50\xdf\x97\x6d\xa5\x60\xa1\x7c\x23\x58\x48\xd1\xf3\x34\x59\x85\xb2\xb0\xaf\x16\x6d\xe6\x6b\xac\xc5\xe8\x45\xb0\x30\xb6\x70\x18\x6c\x65\x2d\x73\x6d\x39\x50\xfa\xc3\x10\x62\x8c\xd7\x05\xf1\x9b\xe3\xfa\x61\xb5\x7d\x3c\x6e\x9e\x56\x37\x0f\x5e\x1a\x88\x0a\x66\x52\x04\xab\xfd\xb1\x43\x52\x1e\x8b\x17\x3a\xde\x7e\x47\xa5\x06\x6f\x20\x44\xd8\x79\x84\x8e\x98\x39\x2b\x6e\xfa\x34\x83\x3b\x1c\x05\x02\xe9\x2b\xdd\x1b\xca\x64\x0e\x68\x0c\x69\x3f\x80\xda\x94\x77\xe7\x73\x7d\x88\x66\x19\x70\x29\xa2\x48\x63\x6d\x06\x44\x95\x5f\xf6\xe7\xb2\xa8\x7b\xa0\xa8\x88\x95\x6d\x55\xc2\x99\xe9\x88\xfe\xfd\x66\x27\x92\x48\xf9\xc0\xe5\x45\x54\xf0\xfc\xb0\x3a\x6c\xe7\xa4\x67\x54\xa4\x41\x88\xa0\x74\xd3\x16\x6b\xeb\x8e\x63\x11\xe8\x70\x05\x39\x10\x32\x49\x51\x36\xb6\x1d\xa8\x95\xc6\x07\x45\xd2\x0b\x6d\x0c\x98\xe2\x59\x67\x2b\x15\x8a\xe8\x34\x1d\x84\x5b\x17\x32\xcf\x42\x09\xc1\x52\xdf\x3c\x94\xe5\xba\x82\x62\xf5\x2a\xb2\xa2\x6e\x56\x45\x76\x12\xf9\xbc\x9e\x2e\x74\x08\x58\xdd\xbd\x80\x2f\xcf\xfb\x03\x91\x61\x61\x1f\x1d\x7d\xbd\x58\x85\x06\x8e\xf0\x47\x53\x56\x0a\x2c\x05\x86\x65\x8a\xf8\x73\x6c\xd1\xbb\x61\x51\xdf\xd6\x63\x13\x52\x8b\x17\x1e\x72\xbe\xf3\x6c\x89\x00\x4a\xe9\xc0\x7b\xff\xdd\xd7\x2b\xdc\xbb\xf2\x00\x63\x61\x58\x48\x1d\x61\xda\x7d\x66\x16\xb9\xb5\xa9\x30\x9a\x62\xc5\x29\xab\x6d\x96\x60\xfa\x6a\x64\x10\x70\x8c\x7a\xd0\x27\xba\x6b\x0b\x7d\x45\x7b\x49\x65\x40\x29\x38\x39\xaa\x63\x7d\x06\x95\xcd\xa3\x3e\x19\x70\x8e\x88\xe6\x75\xd6\x5c\x1e\xc5\xa5\x9f\x7f\x32\x88\x28\x7a\x88\x36\x17\xe3\xf8\x14\xae\xa7\x8e\x0c\x92\xc8\xc9\x02\xeb\x9b\xf3\x32\x66\x56\x12\xa1\xb1\x25\xaf\xb1\x28\xd8\xc1\x91\x96\x44\x72\xec\x5d\xf1\xef\xfb\x50\xda\x5d\x74\xfa\x1b\x44\x46\xc8\xa4\xf5\x87\xef\x07\xac\xae\xfa\x7a\x24\x31\x32\x70\xfc\x2e\x36\x59\xf8\xe8\x00\x9b\x0b\xda\x96\x54\x52\x61\xf9\x67\xc7\xcd\x3c\x73\x7b\x3a\x3b\x03\x68\x18\x8f\x60\x9c\xd3\xaa\x8f\xa4\x26\xb5\xaa\x00\x9b\x3f\x36\x0f\xbb\xe7\xcd\x8b\x0f\x8a\x24\x4f\x29\xa2\x01\xb1\x25\x63\xd7\xe7\x06\x65\x18\x4b\xf4\x74\x1e\x77\x4f\xdf\x11\xc6\xfe\xfd\xe9\x78\xb7\xd9\xf4\x87\x93\x10\x57\xd3\x9f\x90\x5d\x31\x90\x50\x19\x25\xc6\x2a\x9f\xa3\x1b\xde\xb9\x30\x7a\xd4\x12\x24\x63\x2e\xb1\xb1\xa0\xfb\x49\xbf\xa1\xd5\xfd\x41\x19\x62\x72\xdc\x64\xc5\x84\x74\x8b\x4a\x11\x11\xee\x52\x64\x68\x29\x96\x43\x02\x29\x19\x8d\xec\xc4\xbc\x2f\x73\xfd\x68\x69\x2b\x67\x1d\x2c\x52\x2a\x85\x00\x63\x5b\x07\xd9\x6a\xac\x7e\x6c\x1b\xb8\x12\x5e\xf9\xcf\xff\x2c\xee\x45\x52\x6a\xe2\x6b\xcd\x9d\xf7\x75\x1e\x4f\x1b\xa9\x25\x72\xb5\x15\xe2\x04\x03\xab\xe9\xe4\x59\x24\xa4\x4a\x79\xfe\xe5\xd3\x15\x0d\x07\x95\x2a\x88\xc1\xeb\x48\xd8\xa7\xf5\x07\xb4\x55\x66\xbd\x5d\xfd\xfe\x7d\x6c\x73\xa4\x02\x83\x05\x10\xef\xe6\x63\xe7\x73\x37\x09\xbe\x24\x18\x74\x27\x43\xa0\x70\x6b\x1d\x30\x4a\x9e\x8c\xdf\xf7\x25\x75\xd6\xa2\xff\x48\xc0\x09\x6e\x40\x98\x36\xe9\x8c\x6e\x6f\xa6\xa4\x89\x78\xe4\x64\x3a\x2d\xf1\xb6\xdf\x5c\xfc\xf1\x54\xc4\x0e\xd2\xfe\x3c\xc0\xa7\xfc\x41\x91\x1a\x3a\x78\x46\xfb\xa6\xac\x46\xf2\xbb\x7e\x90\x8a\x59\x3a\x93\x0c\xfd\xb2\x50\x26\x0d\x18\xac\xfd\x8c\x38\xd6\xa8\x0a\x02\x11\x06\x1e\x01\xd2\x56\x35\x4c\x2a\xdd\x2a\xa0\x49\x3c\xd4\x2a\xb1\x3a\x70\x53\xfe\x9c\xde\x8a\x0a\xc2\xc4\xb2\xff\xbe\x95\x3f\x0e\x95\x4f\x62\x3c\x94\xaf\xd3\xaf\xa9\x82\x28\x44\xdc\x92\x12\xb9\xba\x82\x8d\x2b\x12\x73\xed\x5a\x17\xad\xb4\xe6\x72\xcd\x59\x91\x34\xc1\x52\x95\xf9\x79\xbe\xcd\x3e\xa6\x99\x81\x89\x49\x53\x34\x30\x08\x1f\x70\x02\x33\xf8\x99\xd8\x84\x4e\x8b\x2a\x1a\xa9\x48\x60\x4e\x69\x82\x13\x52\x2c\xa0\x18\x2e\x6e\x44\xd5\xbc\xa9\xea\x72\xee\xcf\xe0\x24\xc6\xaf\x7e\xb6\xfd\x37\xa3\x25\xad\x78\x62\x30\x3b\x7d\x94\xa2\x51\x6f\x9f\x79\xa9\xd7\x19\x39\x15\x12\x86\x49\xb6\x87\xcd\xd3\xcb\x52\x48\xd5\x5e\xf5\x25\x22\xf7\x27\x19\xd6\x0e\x5a\xae\xd9\xc6\xa1\x22\x49\x11\x1d\x89\x5c\x1c\x22\xff\x36\x00\x4b\x54\xcc\x38\xa6\x39\xee\xa1\xe9\x49\x3d\x8b\x99\x7d\x50\xb1\x14\xca\x49\x4c\xe5\xbb\x62\x2e\x40\xee\x53\x74\xfe\xb1\xc2\xe1\xb9\x92\xff\xf9\x07\xaa\xaa\xdd\xf5\x0d\xee\x4b\xff\x9d\xbd\xbe\x0e\x13\x21\x36\x5c\xfb\xae\x44\xa8\x6b\xf1\x0a\xa6\x2a\x4f\xba\xfc\xc8\xa6\xe6\x43\x25\xc2\x0a\x76\xdc\x8a\x06\xbb\xb7\x5c\xdc\x3d\x7b\x88\x44\xc5\x96\x5b\xbf\x7b\x43\x4d\x2b\xe7\xc5\xa1\xa5\x97\x9b\x06\x01\x66\xff\xbd\x98\x6d\xd5\x64\x75\x73\x0f\x05\xd4\x59\xbd\x47\x70\xf2\x32\x17\x31\x55\x69\x6c\xfb\x2c\x94\xf5\x3a\x5d\x69\x67\x7a\x47\x82\x58\x8c\xb6\xeb\x5f\x16\xc5\xfb\x62\x46\x40\x09\x15\xa1\xa7\x8c\xd6\x6f\x34\xcd\x64\x90\x60\x36\xf9\xb1\xfc\x80\x43\x79\x73\x05\xeb\x52\x32\xd5\x26\x75\x69\xf5\x2e\x44\x1d\xf6\x40\x25\xa5\xf5\xe3\x6f\xc5\x6b\x17\xe3\x0f\x7f\xd7\x2a\x18\x14\x55\x97\x0b\xb1\xd3\xbb\xeb\x2c\x6d\xf7\x99\xba\xd9\xb7\x29\xf4\xe7\x54\xa3\x33\x18\x51\x3b\x00\xaa\x54\xf7\xa3\xbe\x44\xd5\x16\x9d\xe7\x82\xd2\xe6\xfb\xd2\x34\x6b\x71\xf6\x8e\xd2\xf4\xe1\xb4\x4a\x99\x13\x9c\x73\x69\xb1\xa2\xf6\x2d\xde\x5f\x67\xd4\x14\x44\x21\x22\xdc\xb7\x7f\x8a\xfa\x0e\x03\x99\x37\x51\xc1\x64\xdd\x03\xa4\x98\x35\xf4\x7d\x91\x59\xa9\xef\xe6\x4d\x3e\xca\x10\xc2\x95\xaf\x9d\x94\x26\x6b\x96\xbf\x9f\xa1\x84\x44\xe3\xcc\x7c\xa1\xe7\xfc\xf2\x5f\xbd\x2a\xef\x89\x2a\xe3\xb2\x74\x4d\x5b\x15\x47\x93\x8b\xd7\xe3\xee\xee\xce\xdf\xb0\x01\x40\x1c\xc6\x8d\x65\xa0\xd9\x8b\xf3\xf9\x2d\xf3\xcc\x2b\x54\x13\x1e\x58\x17\x51\xe4\xea\x80\x84\x4c\x1b\x4f\x32\xb9\xf8\x8e\x34\x49\xa2\xd0\x75\x01\x0d\xad\x2e\x9a\x48\x85\xce\xca\xad\xa8\xde\x3f\xc9\x80\x69\x4a\x19\x82\x81\xb2\xc2\x54\x02\x43\xad\x61\xdf\x9c\xbe\x40\x4d\x93\x44\xd1\xbe\xa1\x0a\x51\xca\x2d\x32\xe6\xfe\x36\xbb\x64\x4a\x52\x6c\xd9\xb5\xae\x2d\xc6\x9d\x43\xcb\xba\xa6\x5a\xe1\xf4\xf9\x3e\x80\x16\x35\x63\x0c\x31\x7f\x36\x4c\x7a\x10\xf5\x38\xb1\x7e\xed\x1b\x6b\x1e\x04\xbe\x72\xb8\x92\x59\x8e\x8a\x9f\x77\x65\x35\x8e\x1a\xe7\x77\xcf\x49\x6a\x6c\xcc\x96\xe7\xdf\x8b\xce\xac\xac\x8a\x57\xc8\x6b\xb7\xc7\x5f\x81\x20\x34\x8f\x92\x9e\x0b\xb2\xef\x7b\xf8\x65\xdd\x61\x79\x12\xeb\x30\x4c\xb5\x65\xb9\x6c\xd4\x9b\x27\x04\x5c\x9a\x47\x53\x72\x73\xaa\x43\x90\x58\xfb\xb2\x58\xf9\xad\x3e\x94\x9b\x9f\x0d\x20\x01\x87\x2f\x55\x7f\x36\x29\xe2\x20\x41\xd8\x95\x1e\xc8\x22\xa0\x68\x6e\xda\x0b\x54\xd7\xcd\xc3\x3a\xe6\x96\x22\xf4\xaf\xef\xcf\xdd\x0b\x1f\xb7\x39\x7f\x86\x30\x77\x67\x26\x34\x45\xc8\xc3\x4b\x5b\x89\x1c\x85\xb0\xdb\x79\xe9\xdb\x8f\xd4\xc6\xb8\x38\xf0\x51\xfc\x1c\x93\xa8\xe8\x34\xd4\xc6\xf9\x56\x03\x8c\x7e\xfa\x3b\xa9\x50\xe8\x3c\x9d\xed\xbd\xdf\x95\x95\xc5\xa4\xf5\x97\x90\x96\x00\xa4\x5b\x71\x3b\x63\xd6\xa2\xb0\xa9\x99\x27\xf8\x89\xbb\xed\x63\x56\xac\x0a\xfd\x28\x7e\xe2\xb6\xfb\xbd\x68\xb2\xdc\x99\x41\x7f\x05\x99\x4a\xcd\x7d\x8d\x29\xab\x6b\x9f\x09\xd6\x8a\x58\x0e\x98\xfd\x66\xbd\x7b\xba\x45\x95\x79\xd4\x24\x39\xee\x0f\xab\x97\xc3\xf1\xb0\x7d\xdc\x0c\x43\x01\xdf\x3a\x36\xbf\x5f\xf1\x3a\x52\xad\x42\x4b\x86\x82\xbc\x42\xeb\x37\xd1\xe7\xb7\xb4\x8a\x13\x84\xb3\x96\x67\x28\xee\x87\x9d\x43\xab\x24\x46\x87\xc0\x69\xf5\xa0\x79\x1b\x83\x62\xb4\x02\x1d\x31\xd7\x9d\xfb\xad\x87\x02\xad\xc5\xd9\xfd\x97\x1f\xa7\xa3\x00\xd5\x68\x8f\xc2\xc6\x0e\x37\x97\xa1\x2b\x61\x78\xcd\x3a\x89\xb5\xea\xbd\xc7\xef\x23\x64\xe0\xec\xbb\x43\xa4\x4d\x3c\x72\x66\xe0\x75\x78\x16\x90\xb6\x1a\x74\x3a\x22\x8f\xa7\xca\x2f\x23\x45\xb9\x09\x88\x50\x83\x92\xa8\xfd\x71\x3c\x89\xac\x68\x8e\xdd\xbb\x47\xe6\xf6\x3d\x5c\x59\x20\xa3\x42\xfc\xc5\x3f\x37\x87\x6f\xc7\xd5\xed\xad\x87\xac\x6a\x03\x36\xb5\xeb\xf0\x0d\x15\xc0\xc2\xea\x58\x48\xf2\x02\x35\x31\xe6\x14\x7d\xfd\x43\x77\x93\xc5\x35\xe1\xb9\x8b\x03\x0b\x18\x16\x40\x26\xf5\x96\x85\x2a\x4b\xb2\x5c\x63\x01\x16\x4b\xaa\xc6\x7b\xdf\xd3\x9c\xc6\x9d\x02\x4b\xac\x8e\x80\xb0\x5b\xcd\xb6\x30\xa5\xa3\x7f\x9d\x0d\xe4\x84\x62\xc3\x52\x5b\xf8\xce\xa1\xe7\x0a\x4c\xf6\x73\xe2\x64\x01\x67\x02\x33\x1c\x87\x37\x70\x3c\x68\x65\x9e\xe9\xfd\x5b\xd6\x8c\x12\xaa\xc0\x23\x19\xf7\x2d\xba\x73\x22\x21\x08\x75\x10\xf7\x5a\x1d\xbd\x0c\xd1\x38\xcb\x0e\x11\xb1\x2a\x2c\x32\xd3\xbd\x62\x7d\x7f\x48\x63\x48\xe7\xf9\x5b\xac\x09\xfa\xc4\x54\x41\x24\xad\xe6\x6a\x59\xe4\x97\x6e\x51\x2b\xa8\x36\xb6\x4c\x74\xeb\xd4\x59\xd4\x58\xdf\x7c\xa1\x54\x04\x91\x66\xe8\x80\x9a\x5e\x1c\x7b\x42\x57\x00\x71\x4c\xa2\xd0\xb1\x12\xac\xf2\xfc\x53\x06\x5a\x0a\x29\x63\x16\x15\x7f\x3a\x97\x95\x77\x20\x9f\x45\x56\x2d\x50\x3c\x7b\xd3\x06\x29\x17\x98\x48\x06\x2c\x2f\xfa\x3f\x46\x29\x89\x86\x17\xec\xa3\x98\xd9\xcf\xc5\xb1\xa3\x37\xc9\x9a\x95\x31\x59\x9e\x0d\x6b\x1f\x04\x4b\x2d\x6b\x4e\x0e\xa2\xea\xe6\xe6\xaa\x82\x42\x0c\x72\x28\x14\x44\x1a\xa3\x3c\xb1\x45\x4e\xdc\x95\x55\x4f\x07\x4c\x41\x0a\x70\x3b\x40\x1f\x1a\x6f\xf6\x87\xf9\x4e\x07\x12\x6c\x85\xe9\xfc\x56\x36\xe5\xa8\x00\x06\x2a\xd4\x68\x0a\x6e\xb2\x72\xb1\x85\xe7\xeb\xee\x12\x50\x11\xc5\x5a\xef\xb1\x28\x91\x0e\x75\x7b\x3a\xe7\x60\x49\x0a\x27\x88\x0b\xe7\x32\x81\x16\xc6\x12\xc2\xdb\x89\xb6\xd4\xe3\x03\x40\x63\xa5\x86\x57\x3a\x2f\x05\xb6\x23\x4a\x03\x00\x9a\x20\x7d\x05\x2a\x82\xa1\x6f\x88\x1c\x3f\x9b\x81\x77\x00\x40\x47\x58\xe9\x42\xb6\xb1\x81\x4d\x62\xfa\x1c\x86\x85\x44\x8c\xda\xcd\xfd\xfe\xed\x0f\x47\x56\xfa\xf8\x45\x48\xd9\x2d\xb0\x0a\x96\x70\x22\x60\x12\x83\x14\xfa\x58\xd6\xb2\x1d\x26\xf6\x88\x09\x48\x88\xee\xeb\x23\x34\x62\xc4\x6e\x64\x82\x88\x52\xe1\x7a\x07\x27\x70\x33\x13\x48\x46\xd4\x40\x6d\x3c\x4d\x06\x9b\xc0\x69\x69\x9c\xc4\x3b\x8c\xaf\x47\x68\x82\xe6\xf3\xf1\xbf\x76\x7f\x8d\xfd\x67\x43\xa2\x04\x31\x1a\x95\x30\x26\x87\xa3\x9c\x64\xe0\x0c\x49\x81\x59\x2a\xfe\xbc\x11\x87\xbb\xb6\x50\xff\xd4\x09\xf2\x17\x00\xe5\x99\xad\x30\xe1\x9a\x35\x17\xcf\xca\x51\x98\x19\x1a\xde\xd0\x80\x7b\x06\xd1\x4d\xd1\xa0\x67\x37\xb6\x39\x86\x0a\x12\xb9\xfd\x75\xbd\x39\x44\xe3\x2c\xf0\x54\xb4\x80\x9a\xce\xe1\xc0\xba\x6a\xf9\x01\x8f\xa2\x7a\xb7\xdd\xfd\xb3\xba\x59\xc4\xe7\xff\x41\x68\x72\xbd\xc0\x0d\x4b\x01\xc3\xde\xd3\xbb\x4d\x53\xae\x85\x6f\x81\x32\x9c\x31\x4c\x18\xa3\x38\xc2\xc0\x48\x66\xb8\x64\xf8\xc5\xa5\xd0\xaf\xb0\x35\x77\x56\x02\x6a\xfa\xb8\x1c\x8c\xb7\xb2\xd6\x51\x1e\x7a\x44\x4d\x18\x85\xc8\xf4\xd3\x6a\xdb\x14\xde\x34\xe2\xda\x29\xf3\x63\x05\xc3\xfa\x60\x0f\xf8\xec\x26\xaa\x5b\x1d\xd8\x6d\x82\x55\xaf\xe9\x6f\x87\xc0\xb0\x86\xa4\x50\x04\xa2\xb9\xab\xca\x53\x37\x68\x31\x46\x36\x51\x64\x90\x68\xc0\xcf\xf2\xaf\x4b\xc8\x26\x4a\x2c\xe6\xbf\x12\xc5\xfb\x4c\x4d\x99\x9a\x98\x51\xa4\x59\x5b\xbf\xfc\xf5\x7c\xd8\xfd\xb1\xe9\xd9\xd5\x4c\x1c\x25\xba\x37\x01\x12\x0a\x40\x3e\xd2\x7e\x5b\x31\x71\x42\xb1\xe7\x5f\xa8\xf6\xdc\x16\xaa\x69\x2b\x24\xb9\xfb\xf2\x56\x12\x12\xe2\xfe\xeb\x88\x41\x7d\x29\xc9\x24\x61\x02\xc9\x80\x63\x83\x9a\xcf\x6e\x33\x89\x62\x24\xdc\xbb\x39\xd7\x93\xe5\x92\xc4\x91\xf5\x06\xdb\x33\x54\xcf\xab\xf5\xf0\x77\xa3\xa5\xaf\xd4\x0f\xd1\x4f\x03\x77\xd8\xf4\xd3\x0f\x93\x56\x82\x0a\xa7\x0b\xb6\xcb\x7d\xf4\xb0\x59\x23\x18\x47\xd0\xea\xb9\xad\xdf\xa6\x39\x9b\x7e\x5a\x8b\xd8\x60\x3d\xf3\x07\xaa\x49\xff\xf9\x56\xe6\x93\x68\xd8\x88\xd4\x6a\xf9\x65\x9d\x97\x5f\x97\x85\xc8\xd1\xf6\x79\x0a\x5e\x6a\x84\x62\x21\xf5\xa8\x87\x0c\x01\xc6\x0f\x02\x49\xab\xbb\x69\xf6\x02\xaa\xac\xf4\x2c\x2b\x65\x24\x93\x18\x92\x7e\x94\x0d\x3c\x95\x0f\xa5\x7a\xbf\xb9\xd8\x8a\x82\x1f\x10\x31\xaf\xd6\xba\x3d\x89\x57\x70\x4c\x13\x9d\x5f\x50\x5e\xb5\x73\x1a\x29\x01\xf1\xcf\x18\xdd\x5e\xa5\xc3\x67\x53\x4f\x6a\x95\xaa\x51\xaf\xf4\x18\x30\x69\x14\xb7\x60\x7d\xdc\x10\xea\xec\xb5\xf8\x04\x30\x6b\x74\x28\x85\xea\x21\x66\x33\xda\x4d\x03\x04\x50\xc3\xf6\xbf\x44\x31\x7d\x9b\x60\xb8\xef\x3c\x3a\x94\x0f\x59\x3d\xde\xbc\x26\xa2\x1e\xd4\x74\x51\x7d\x38\xc0\xe5\x2c\x35\x20\x36\x4c\xba\x2e\xe3\x7e\xea\x19\xa3\xc1\x25\x70\x8f\xd8\x64\x50\xe6\x0e\x5c\xe0\xba\x0d\x2d\xc4\x80\x05\x01\x09\x0c\xf3\x70\x60\x2b\xea\xeb\xc5\xb6\xa6\xe9\x48\x16\x04\x2c\xc5\xc0\x42\xfc\xef\x8f\xba\xfb\xdf\x6f\xee\xef\x44\x19\x2b\xbf\x22\xd4\xfb\x1f\x50\xb4\x75\xb7\x76\x2d\xaf\xaa\x1f\x61\x24\xb5\xc1\x69\xfd\xb6\x6b\x9b\x83\x0f\xe1\xdc\x8c\xc3\x01\xd8\xbd\xdf\x85\x33\xdf\x44\x8d\x4a\x27\xfb\x33\xcc\x4a\x13\x2c\xa0\x3c\x44\x0a\x97\xba\x3d\xd9\x76\xe8\x57\x88\xfd\x8f\x30\x4a\x50\xf1\xe2\xf9\xfe\xfb\xba\xff\x5b\x2c\x93\x5e\x13\x1b\x57\xc2\x1c\xb7\xc2\x02\x1e\x50\x45\x7c\x91\xb4\x8b\x33\xee\x45\xff\x68\x21\x97\x36\x0f\xec\x45\xa3\x9a\xdb\xac\x02\xac\xe9\x8d\xf6\x0c\x16\x84\x9a\x60\x77\xf8\xfd\xfd\xfd\xe8\xdb\xb2\x20\x62\xa9\xb0\x10\xa1\xbe\x9a\xff\x49\x23\x38\x0b\xe2\x48\xc4\x03\xd1\xc2\x7a\xb6\x6f\xb1\x20\xe1\x92\xb9\x12\xcf\x53\xd9\x6c\x8b\xfe\x8a\x58\xcc\xf8\x6d\x7a\xb1\x44\x39\x92\xdf\xac\xc0\x60\xf4\xde\x6f\x26\x2c\x48\xb4\xa5\xf9\xaa\xe1\x6b\x45\x4a\x16\xa4\xa1\x6d\xce\x44\x48\xc8\xb8\x8c\xce\x02\xa1\x4d\x18\x0d\x5a\x85\x1f\x59\xd9\xd6\x47\x04\xcf\x55\xa0\x44\xdd\x1c\x4d\x55\x9e\x8e\x59\x03\xa7\x45\x5a\x5b\x16\x48\xd6\xb3\x93\x6d\xeb\xbb\xec\xa7\xb7\x5e\x2c\x90\x51\x12\x25\x23\xe3\xb1\xae\x00\xb1\x6a\x22\xdf\x36\x70\xda\xea\xdf\x66\x17\x8a\x64\x82\x3e\xc7\x65\x37\x86\x8e\x7f\x9a\xc6\x65\x81\x92\xb6\xbd\xd5\x0a\x7d\x7c\xce\x81\xc4\x02\x05\x1a\xed\x18\x86\xe3\xe4\xd8\x4b\x00\xb1\x40\x07\x91\xc5\x75\x75\x33\x41\x9f\x0f\xe5\xb4\x90\x34\xbd\x45\x1d\xc7\xb8\xe7\x6c\x0e\xdf\x36\x2f\xbb\xa7\xcd\xf7\x47\x7f\x19\x48\x00\x7d\x8d\x2e\xf8\x58\x9d\xa0\xd0\x57\xaa\xba\x2c\x00\x63\xa9\xeb\x7d\xbe\xd0\x0a\x0e\x7d\x52\xf2\x9c\x3d\x80\xa1\x29\xd6\xda\x33\x55\x22\xe3\x8b\xff\x5d\xc3\xb4\xa5\x1f\xcf\xce\x79\x79\x72\xee\x38\x23\x41\x10\xa2\x5c\x00\xbe\xf7\x3f\x01\xde\x0f\x3f\xca\xfe\x98\x8e\x7a\x8f\x50\xd4\x56\xb6\xda\x1d\x22\x84\x21\xff\xbb\xcc\x85\x7a\xc7\x19\x39\x2a\x3b\x79\xf3\x41\x08\x25\xbe\xc1\xc5\xa2\xec\x70\xe7\x9a\x78\xdf\x8c\x50\x66\x58\xe0\xeb\x98\xf9\xa7\x0a\x58\xd3\xc7\xec\xce\x42\x88\x1a\xd2\xd1\xda\xf6\xb0\x3e\x48\x61\x84\x8a\x24\xe9\x91\x27\x88\x6d\x18\xaf\x5d\xc2\x25\x47\x1e\x70\x84\x72\x60\x50\x90\xc9\xb1\x62\xb2\x1f\xa6\x2d\xd0\xb7\x2d\xbc\x70\x0b\xcc\xe1\x35\x6e\x64\x18\xd8\xbe\xdd\xf2\xbc\x54\x70\x66\x24\x0a\x2c\x00\xc9\xb7\x18\x0d\x61\x62\x6f\xea\x19\x89\x58\x8a\xd5\x7d\x81\x8b\x7b\x2a\x4b\x78\x2d\x0d\xc1\x48\x12\x49\x8b\x17\xe8\xac\xd8\x76\xbd\x3b\xfe\x20\xfe\xf7\x92\x58\x59\x69\x9a\xea\x72\x6e\x44\x5b\x75\xfb\xef\x07\x78\x97\x87\x91\x04\x78\x30\x9e\x60\x37\xca\xf6\x61\x2f\x2f\x0a\x92\xc6\x80\x7e\x9a\x86\xba\xa9\xca\xfe\x2a\xa9\x16\x5e\xb7\x1f\x6d\xbf\xe7\x00\x24\xfe\x3c\x41\x62\xec\x27\xb1\x44\xdf\xa8\xa9\x35\x5a\x51\x44\x10\x81\xb1\xdc\x66\xed\x38\xbc\xfc\xdf\x85\xf4\x6a\x1a\x88\x15\x23\xe1\x38\x13\xc1\x88\x90\x82\xb3\x51\xef\xdb\xbc\x99\x89\x11\x49\x52\x4c\x2b\xff\xbe\x1b\xdb\x66\x22\x99\xc1\xcc\x8c\x73\x4e\x6f\xdb\xba\x39\x94\x56\xf0\x6f\xfa\xc0\x52\x72\xdf\x49\xb4\x42\xaa\x02\xd0\x16\x5e\xb7\x6a\x5f\x4f\x59\x31\xa3\x77\xbc\xfe\x94\x8a\xca\x84\xf6\xbc\xbb\x45\x01\xf9\xd4\x84\x11\xcd\x00\xf3\x01\xa5\xb1\x2e\x7c\xdf\x0e\xc7\x88\x56\x14\x5d\xcb\xf5\xea\xf0\x8f\xd5\xed\x17\x83\x65\x46\x20\xe0\x18\xe9\x37\x3f\xb2\xa6\x81\x6a\xab\x77\x06\x83\xc4\x65\x77\x86\x11\x20\x1a\x86\x94\xd7\xbc\xcc\xe7\x07\x45\x14\x99\x65\x5d\x01\xcc\x27\xb9\xfc\xed\x43\x12\xe0\xab\x5b\xac\x1f\xb5\x57\x24\x2f\x8c\x80\x66\x08\xb9\xc0\x74\xc4\x7f\x95\x59\x01\xba\x7f\xee\x7e\x4a\x98\x50\x68\xda\xeb\x8c\xbb\xd5\xd5\xff\xa6\x89\xc3\xa0\x57\xbe\x9a\xf1\x19\x4e\x36\x02\x1a\x10\x5b\x31\xbb\xc9\x9a\x3d\xe4\xa0\x9a\xe7\xaa\x6c\xe0\x35\xd3\xde\x74\xd0\x80\xdb\x68\x61\xe8\x83\xff\x87\x09\x8a\xe9\xbb\xa7\x41\x04\xa8\xe3\x73\x12\x55\x95\x81\x5e\x79\xe3\x43\x09\x85\x51\x5d\xc2\x95\x2a\x91\x37\xe6\xaa\x28\xc1\x28\x49\x05\x5a\x6d\xd0\x59\x4f\xc6\xbb\xd4\xd3\xc6\x68\xe7\x00\x52\xbb\xe3\xf8\x5f\x62\x5c\xa0\x8d\xbc\xcb\x72\xec\x6b\xf5\x8c\x07\xfe\x70\x18\x5a\x2e\xfe\x9e\x7d\x81\x51\x26\x01\xf3\xdd\x07\x0f\xd9\xfb\x47\xad\xc3\x8c\x72\x91\xe0\xb6\xe9\x24\xa2\xbf\x84\x57\x30\x1a\x52\x9a\x8a\xbe\x00\x31\x87\x6f\xf9\x41\x4c\xd9\x5e\x6a\x64\x52\x7e\x14\xd5\x6b\x56\xac\xb1\xfe\x7c\x03\x6f\x22\x37\x23\xc2\xed\xc9\xda\xa2\x61\xa8\x23\x57\x17\xdc\xfd\x28\x9c\xf4\x8a\x9f\x49\x34\x16\x8c\xf8\xc4\xf6\x31\x2b\xb2\xce\xcb\xe8\xc1\x2a\x8c\x26\x49\xe0\xa9\xdc\x30\x4d\xed\xff\x9c\x3a\x51\x0c\x00\x27\x76\x32\x9c\x21\x2d\xb9\x86\xad\x32\xbc\x63\x5f\x38\x0a\xb9\x5c\x6f\xec\x34\xd1\xd2\xa6\xb0\x11\x86\x93\x95\xc5\x78\x8b\xa6\x09\x04\x8c\xf6\x57\xc2\xbc\xf0\xb3\x58\x52\x77\x61\x34\x15\x0a\xdf\x77\x17\x3a\xa1\x44\x42\xa1\x91\xe3\x6c\x21\x4b\xc4\x68\xaa\x0d\x02\x06\x71\x63\xf1\x1c\x34\xfd\x0b\x11\x51\x84\xaa\x9e\xbe\xb5\x75\x2d\x2a\xdd\x2d\x6a\x7f\x5c\x06\x56\xaf\xb5\x57\x20\xda\xf5\xb0\xdb\x43\xf9\xd4\xe6\xf9\x74\x3f\xa7\x92\x2a\x0c\xa7\x11\xc2\x26\x72\x37\xe9\xdc\xa0\x27\xec\x86\x78\x14\xe7\xd9\xc7\x96\x29\xa0\x50\xf8\xe3\xea\xe9\xdb\xea\x70\x58\x3d\x3d\xbf\xec\xfe\xfd\x57\x74\xf8\xb6\xfa\x63\xd3\x5f\x58\xd1\x5e\x87\xb6\x2c\xf3\x6f\x59\x8d\xec\xbd\xa3\x8d\x9d\x4a\x63\x95\xc6\x6a\x24\xcc\x7f\xdf\x2c\xe0\x27\x19\xd5\x26\x4d\x3c\x91\xfa\x66\xd2\x3e\xc8\x28\x04\xd4\x6b\xef\xba\x8c\xbd\x45\x46\xfe\xb3\x55\x60\x22\x4e\xbc\xd9\x87\xa2\x69\xab\x79\xae\xbd\x1b\x92\x52\xcb\x64\xd1\xe6\x99\xe8\xad\x3e\x23\xa1\xc4\x49\xeb\x31\xb9\xc7\xbb\xcd\xea\xf0\xfd\x65\xb3\xef\x07\x24\x21\x9a\x8d\x93\xf8\xe9\x6c\xc6\x7e\x28\xb5\x31\x46\x39\x20\x6d\x4a\xd1\x9e\xee\xab\xb2\x3d\xd7\xfd\x81\x38\xd0\x89\xa3\x93\x52\x65\x5f\x98\x62\x8c\x75\xb6\xda\xe3\xfc\xfe\x4b\x68\x2f\x52\x34\xbc\x0d\xc6\xa9\x55\xfe\xad\xa0\x86\xea\x63\x06\x47\x64\x8c\x33\x9d\x04\x03\x7f\xc1\xc8\xf3\xf7\x03\x62\x8a\x49\xe0\xc3\x7a\x37\x90\xf9\x76\x7f\x8e\xa8\xd3\x1a\x3c\x80\x38\x2d\xcd\x59\xc6\x53\x42\xed\x36\xe2\xb6\x82\x6d\xbd\x3b\xc3\x70\x67\xda\xd6\x83\x3f\x32\xf8\x71\xdd\xaf\xcd\x18\x07\x82\x9b\xd4\x1e\x72\x84\x9b\x7d\x9d\x6a\x5e\xfc\x9a\x2c\x8a\x04\x2a\xff\x0b\xad\x6f\xba\xc7\x9a\x86\x35\x6e\x50\x1c\xc4\xf1\x40\xd8\x38\x29\xe3\x2c\xda\x3e\x16\x07\x0a\xbb\x63\xee\xee\xee\xc6\xbe\x09\x8b\x79\x6c\x12\xef\x2b\x7f\x40\x55\xcf\xde\x65\x1c\x25\x81\x4b\x18\x3f\x5e\x90\xfd\x14\xa9\xa2\xc6\xd3\x9f\x25\x49\x82\x7e\xda\xc3\xea\xce\xff\x29\x65\x09\x7a\x22\xbe\xd3\x06\x7a\xa1\xe3\xd9\x1b\x4b\x81\x20\x95\xc9\x7e\x73\x40\x6f\xcc\x21\xec\xfd\x75\x84\xb4\x2b\xab\xe7\x96\xab\x2d\xe6\xe1\xa7\xe3\xa0\xe4\xcb\xdb\x20\x93\x3c\x44\xe0\x64\x67\x3d\x1c\x06\x60\x0f\x4d\xdd\xa3\xf1\xfc\xf5\x25\x84\x3a\x1c\xe5\xc3\x1f\x4a\x51\xf4\x73\x58\xd1\x00\x93\x09\xdf\x9f\xb6\x07\x6f\x7b\x30\x16\x1e\xb8\xb1\x19\x53\x1a\x2c\x43\x8e\x98\xe4\xae\x18\x53\x26\x72\x02\x23\xa2\xa8\xd7\xe5\xe9\xdc\xcd\x56\x3d\x2f\xce\x33\xa6\xc3\x08\xb3\x4d\xba\xdc\xff\x10\xd5\x15\xf4\xd1\x8d\x02\xc1\x10\xd4\x5e\x97\xb9\xbe\x2b\xab\xc3\x5b\x56\xf5\x4b\x0a\x84\xc0\x2c\x9a\xe3\x9a\xfe\xe4\x02\xca\xb6\x07\x20\x34\xec\x38\xd7\x63\xba\xc2\x84\x31\x66\xb8\xd5\x05\xaa\xc0\x64\x43\xc1\xca\x1f\x34\x32\x62\x3d\x72\x73\xf7\x01\x55\x95\xf9\x32\x23\xe3\x41\xa8\x31\x7b\xd8\x16\x75\x23\xde\xa1\x9b\x36\x6d\x91\x4d\x29\x57\x18\x0f\x12\x8d\x69\x08\xd9\x56\xc5\x0b\x3a\x58\x9e\x01\x70\x18\x62\x42\x2c\xa8\xea\x59\x33\xe3\xe2\x23\x72\x62\x2c\xef\x71\xe6\x48\x15\x47\xb4\x8d\x8c\xd3\x94\x0a\x2b\x36\x54\xfc\x25\xae\x6a\x84\x8c\x53\x91\xea\xd4\xaf\xfc\x81\xa4\x9e\x71\x96\x58\xb4\x94\xf5\xc8\xd7\xa2\x6e\x72\xd8\x5d\xf5\x8e\x33\xce\x80\x63\x85\x4c\xd4\x99\x76\xb8\xcd\x6f\xe2\x03\x6e\x00\x8a\xc7\x6e\x62\xf7\x17\xe4\x54\x5a\xd4\xfe\x79\x16\xcf\x71\x1e\x53\xec\x34\x91\x6d\x96\x6b\x9f\x76\xea\xe1\xc0\x8c\x73\x4d\x6d\x5b\x65\x75\xf9\x8e\x32\xd1\xd8\xe6\x51\x56\xd3\xb0\x8f\x47\x84\x23\xff\xb5\xa9\x00\xf6\xad\x9c\x4c\x88\x64\xea\xb5\xf0\x88\xc5\xc9\x24\x24\x83\x62\x4c\xa8\xe7\x47\x09\x81\x39\xce\xfa\x0c\x45\xf3\x2c\xaa\x1a\x94\x55\x47\xef\xbf\x54\xa4\x19\xb6\x18\x21\xae\xd2\x31\xff\xcd\x2e\x12\x8b\x00\xf5\xe0\xb3\x2e\x6c\xb6\x5a\x4b\x85\xee\x41\x8a\x4b\x05\x67\xc6\x13\x69\xa4\x4b\x21\x6d\xd7\x8b\x04\x1b\x8c\x27\xae\x0b\x42\xf8\x68\x79\x4a\xf7\x30\x2e\xa4\x30\x9e\x68\xab\x94\xf0\x19\x93\xc2\x64\x3b\xe0\x89\x81\x68\x60\x6b\x1b\x36\x57\x77\x38\xa5\xc6\x91\x71\x77\x6b\xdb\x3a\x4c\x5f\x5c\x2d\x4d\x0d\xe2\xe9\x1c\x54\xea\x65\x98\x12\x92\x08\x64\x29\x39\x1d\xb1\x95\xc3\xcb\x3c\x33\x2e\x21\xf5\xb2\x9c\x36\x59\x0a\x7a\xdf\x9e\x6e\x2e\x13\xe8\xb5\x1b\xab\x18\x0b\x3d\x22\xb3\xcc\x75\x17\xc3\xfe\x09\xd9\xeb\x5b\xbf\x04\x54\xa4\x12\x8f\x09\x59\x7f\x3b\x76\xdf\xef\x48\xd2\x49\x90\xcb\x95\xb2\x56\xcb\x49\x7d\x5b\x9d\xcd\x45\x1b\xcb\x35\xa7\x2a\x72\xaa\x8e\x50\xdd\x95\x95\x02\x0f\x42\x99\x62\x08\xda\x29\x46\x76\x71\xdb\xe3\x10\x84\x58\xd4\xbe\xcf\x3e\xe0\xe5\xe9\x7e\xf6\x6c\xc0\x2d\x88\xb2\x80\x1f\x0e\xc2\xe6\x65\x1b\x19\x87\x88\xe2\x47\xb2\x3d\x4f\x23\xd9\x91\xf9\x2f\x00\xc7\x0e\x01\x4c\x5c\x8c\x34\xf4\xba\x23\xd2\x36\xa4\x7b\xe1\xde\xe7\x0a\x4e\x59\x7b\xfa\x34\xfe\xfd\xe2\x23\x1b\x62\x73\xd7\xc7\xfe\x62\xce\x2f\xd7\x9d\x4b\xba\xa0\x40\xcd\xb8\x09\x2d\xf2\x78\x2d\xaa\x67\x51\x39\xc9\x17\x16\x06\xda\x20\x95\x37\xaa\x4b\xe8\xec\xa3\x6e\xca\x5e\xcb\x89\x85\x01\xc8\xd0\x85\x1b\xdf\x44\xfd\xb6\x2d\xba\xef\xed\x5a\x82\xa7\xed\xd8\x2c\x24\x11\x17\xdd\x0f\x6c\x9f\x6e\xd6\xbf\xea\x16\x64\x21\x11\x81\x76\x32\x2d\xeb\xf6\xd4\x3d\x42\xf6\x01\x8e\x97\xdc\x0d\xa1\x21\xc3\xf2\xf6\xd3\xee\xc9\xfb\xc9\x21\x8b\x25\x76\x37\x58\xfd\x8f\xb7\x0a\x00\xc5\x58\x37\xff\xbb\xed\x3d\x85\x90\x49\x89\x53\xf4\x65\x67\x01\x47\x87\xcd\xf1\xf9\x65\xf7\xc7\xb6\xa7\x6c\x63\x21\x53\xa9\x65\x08\x82\xc6\xa7\x28\x7e\x4d\x26\x95\xf8\x93\x8d\xc1\xe6\xea\xb9\xb3\x31\x9d\xb9\x21\x0f\x52\x74\x58\xb6\x85\xc9\x4e\x65\xf1\x3e\x20\x49\x58\xc8\x59\x84\xd9\x37\xf8\xc8\x54\xf3\x67\x59\xbd\xcf\x60\x4f\x2c\x0c\x53\x6a\x2c\xa7\x52\x3d\xd7\x0d\x62\x61\xa8\x28\x6e\x8c\x06\xb1\x2a\x8f\x59\xdf\xac\xef\x8f\x03\x09\xd5\xa4\xb8\xd9\x6d\x14\x74\x3a\x23\xc2\x28\xa0\x08\x7b\x6f\x0b\x7b\x9d\xc9\xae\x18\x46\x4c\xe3\xc2\x3b\xbe\x42\xf3\x17\x88\x6a\x7e\x72\x18\x0e\x42\x3a\x13\xc9\xf2\x19\xa0\x7d\x94\x3a\x0a\xa3\x50\xa1\x17\x22\xb4\x25\x2f\x15\xb9\x23\x20\x9f\xe5\x41\xfb\x39\x15\x89\x10\xdb\x63\x7f\x00\xbc\xef\x0a\x18\xa1\xb8\x58\x18\x73\x82\x85\x26\xff\x19\x6e\xe1\xc3\x0a\xdb\xfa\xe3\x8a\x9a\x60\x4c\xcd\x73\x28\x1d\x43\xcc\xec\x51\x92\x30\x40\x20\xf1\x11\xef\xe2\xd0\x0b\x2b\x8e\x5c\xe1\x30\x89\x62\x8c\xac\x1d\x56\xfa\x05\xea\x36\x6f\x7e\xbb\x2e\xa2\xb3\x30\x65\x29\x3a\x7b\x5d\xf4\x3a\xad\x7c\x4d\xe6\x7f\x6a\x02\xac\x7d\x55\x98\x85\x9a\xda\xae\xc9\xdd\x89\x98\x5b\x6e\x75\x51\x75\xe1\xfc\x0b\x66\xf9\x3f\x41\x0c\xb2\x50\x28\x2b\xa2\x52\x97\xa6\x51\xe2\x3c\x64\x3f\xc2\xff\x97\xb5\x3f\x6b\x6e\x1c\x47\xf6\xc6\xe1\xaf\xd3\x17\xcf\x05\x41\x2c\x24\x2f\x65\x79\x29\x3d\xed\xed\x58\xaa\xaa\xe9\x73\xe2\x84\x02\x4b\xc2\xe6\x98\x22\x35\x24\x55\x2e\xf5\xa7\x7f\x83\x09\x80\x9b\xe8\xaa\x7e\xe3\xff\xdc\x74\xcd\x98\x10\x57\x2c\x89\xcc\xdf\xa2\x68\x12\xfb\xd7\x71\x07\x25\xfc\x99\x87\x19\x34\x1c\x67\x31\xce\xc9\xfd\x56\xf8\xab\xc7\x96\x76\x7f\x78\x81\x1f\x79\xb7\x95\x7c\xac\x1c\x7d\x73\x70\xfa\xa0\x5c\x79\xde\xd5\x53\x89\x33\xf3\x25\xaf\x92\x72\xa5\x0c\xe7\xc3\x5e\x6b\xaa\xaf\xe2\xdb\x68\x42\x38\x1b\x6a\x5b\x41\x2e\xf6\xb2\x59\x66\xe9\xa0\xe8\x18\x3c\xd2\xc3\x51\x41\x53\x67\xd7\xd3\x3b\xcf\x55\x4d\x93\x8f\xee\x56\xa7\x1c\x91\x5e\x65\xd5\xca\xfa\x7c\x0b\xc3\x01\xe5\x0e\x3c\xac\xfe\xb5\x79\xf8\xfa\xb0\x7f\x7c\x7a\xdc\x7f\xff\xb2\xd9\xdd\xdc\x6f\xb6\xbb\xfd\xea\xe1\xe9\xeb\xe3\x2e\xb4\x35\xb1\xc1\x98\xdd\x53\xf3\xa7\xdc\x63\xca\x81\x10\xac\xbf\xca\x40\x08\xda\x9e\xcb\xf6\x6d\xb6\xc3\xe4\x40\x29\x66\x63\xae\x73\x59\xfe\xdf\x5e\x96\x3a\x1c\xcc\x1c\x14\x03\x45\x52\x10\xc0\xdd\x1f\x51\x19\x4e\x0c\xdb\xb7\x1c\x0a\xe3\x05\x19\xfb\x83\x5a\xe0\x16\xdf\xad\x52\xd7\xd7\xb7\xbb\xe5\x65\x8a\x5b\x91\x04\x28\x9b\x2f\x76\xdf\x56\x75\x10\x96\x76\xfd\xd9\x47\xeb\xa3\x19\xde\x4a\x2a\x7d\xe8\xbb\x3d\xa1\xb1\x95\x3d\x85\x54\x0a\xb7\x5a\x4c\xe4\xe3\x67\x15\xe3\xae\x81\x44\xe0\xd5\xe3\xea\xe1\x66\xff\x65\xf5\xfd\xcf\xcd\xe3\x9d\xff\xb1\x88\xe2\x14\xf3\x34\x26\x6f\xba\xe1\x35\xda\x0d\x8b\x28\x51\x51\x3c\xf1\xbb\x87\x1f\xeb\x53\xbb\x9f\x9e\x5d\x10\xe2\xdc\x1b\x4f\x08\x55\x9e\x4b\x68\x86\x46\x49\x32\x10\x48\xef\xbb\x99\xc0\x1f\x88\x99\x26\x49\xef\xe6\xd0\x9e\x57\xe3\xc1\x2f\xe2\x44\xa5\x7e\x15\xbc\x39\x1c\x8b\xea\x0c\xb0\xb9\x20\x02\x84\xb6\x56\x60\x9a\xd9\x63\x82\xa6\xba\x2f\xbe\x0d\x65\xce\xa1\xd9\x96\x3f\x66\x4f\x41\x45\x8c\xa9\xf3\x50\xd3\xf8\x13\xb4\x96\xef\x31\x17\x17\x0b\xd3\x6f\x92\x36\xbf\x60\xa4\x50\x41\xd3\x84\x44\x7d\x12\xb1\x27\xf5\x8e\x6e\x23\xd5\x98\xeb\xb9\x1b\x65\x36\x04\x8b\xd2\xc0\xc5\xc1\x97\x8b\xdc\xc7\x66\xcc\xa4\xa2\x82\x93\x24\xf6\x99\x9a\x7d\x01\x3f\xa0\xcf\xc4\x09\xc1\x28\xce\xd6\x41\x57\x12\x13\x90\xb3\xdb\x0b\x3e\xbd\x5d\x6b\x63\x5c\x61\x5c\x35\x6d\xde\x9e\x5a\xf0\xa9\xb6\xe5\x1a\x95\x10\x00\xb1\x0a\xdf\xef\x0c\xc8\xef\xea\x43\x52\x91\xc4\x36\xa8\x40\xfd\x43\xd9\xe7\xf0\x43\x20\x38\x67\xca\x63\xfe\xb5\x0e\x3d\x5d\xa4\xb1\xc0\xd4\xf3\x5b\xfe\xfa\x06\x4d\x7b\x05\xfd\x85\x52\xce\x50\x26\x6e\x77\xb3\xfe\x32\x1e\xce\x22\x4d\x23\xf7\x3c\x6e\x5a\x5e\xe9\xb7\x1c\x7a\x03\x30\x2a\x32\x6b\x51\x19\xae\xa8\x5e\xe3\xdb\xaa\xde\x1e\x64\x51\xb8\x6c\xe2\x22\x7a\x89\x0a\x49\x22\xe6\xf9\x0b\xed\x67\x34\x8b\xa1\x69\x32\x98\xdb\xdc\xd6\xd5\xe1\xcf\xbf\xd6\x98\x5b\x98\x3e\xab\x24\x10\xd3\x81\xd3\x73\xf3\x53\x0f\x79\x4f\x21\x8d\xc5\x7d\x6b\x91\x2b\x95\xe3\xe6\x5e\x49\xfd\xde\xad\x0c\x7f\x9c\x06\x03\xae\x7e\xce\x98\x62\xc4\x66\xff\xfa\x53\x2a\x91\x8e\xb8\x38\x43\x7e\xee\x6b\x99\xb7\xa1\xd6\x27\xb4\x48\x70\xa4\x5c\x05\xd0\x10\x15\x5a\x4b\x32\x62\xa6\x6d\x74\xd5\x23\xc8\xa8\x30\xc2\x08\x27\x2f\x02\xef\xc5\xf9\xbe\x6a\x5b\xa8\xcf\x57\xcb\x73\xa0\x30\xa9\x42\xb8\xe0\xb6\x2a\x4e\xcd\x73\x21\x5b\x5b\xd5\x87\xfe\x4c\x99\x10\xbc\x7f\x6d\xc8\x88\x1c\x10\x0a\xf3\xf4\x8a\x30\x20\xb1\xdc\x70\x38\xbb\x8a\x9b\xff\x33\x30\x82\xe0\xe3\xf2\x74\x70\xa3\x65\x5e\xcc\x13\x20\x18\xa2\x20\xa0\x34\xce\x03\xfe\x97\xc9\x07\x01\x29\xc1\xac\x24\x42\xa1\xfa\xb7\x04\x19\x43\xed\x83\xc1\xc7\x7d\x64\xac\x46\x13\x42\x34\xe6\x0b\x7d\x31\x18\x4d\x21\xbd\xe2\xcf\x40\x3f\xc4\x08\xe5\x1f\xe5\x0e\x13\xc2\x52\x14\x88\xb6\x68\x0d\x94\xcf\x27\xfa\x84\x30\x27\x12\xb3\x6f\xa4\x85\x87\x53\xb1\xdc\x87\x13\xc2\x23\x64\xd4\x23\x94\x74\xe4\xc6\x47\x13\x92\x25\xca\xd5\x0a\xca\xc5\x79\x3c\x21\x40\x1c\x22\x0c\x1a\x2d\x8b\x10\x3e\xf9\x83\x31\x97\x28\x7c\x15\x42\x83\xdf\x11\xb6\xa6\x89\x8b\xe9\x3d\x52\x2e\x14\xee\xbd\xab\xc7\xaa\x5d\x15\x1f\xf2\xdc\xf8\x8d\x96\xc3\x4e\xa1\x76\x55\x78\xcf\x34\x25\x76\x6e\xa0\x72\x21\x59\x31\x3b\x7f\xea\x16\x4d\x1d\x6a\x1c\xff\x7a\x5e\x61\xf6\xb1\xe9\x4f\x9a\x81\x91\x83\xb9\x76\x5e\x95\xcd\xc6\x17\x76\x9a\x7e\x02\x49\xa8\x04\xac\xc1\xbb\x7a\x12\xc2\xd2\x5c\xf6\xc8\x1f\xe7\xc2\x25\x6b\xd6\x8f\x55\x0b\xf3\x64\xc4\xe2\x3e\xda\xff\x30\x21\x80\xc0\x98\xab\xed\xf2\x9e\xee\x12\x8f\x92\x24\xd4\xe0\x3e\x77\x48\xff\xf9\x30\x79\xfa\x0d\x53\x42\x71\x0a\x0b\x49\x57\xbc\x69\xdc\x00\x16\x30\x86\x76\x0d\xbb\x82\x7f\xfc\xef\xa5\x4a\x0b\x4d\x52\x61\x53\x0f\xd7\xb8\x0a\xba\x32\x0b\xa1\x6a\x92\xa6\x16\x03\xe8\x12\x7e\x8e\xbd\x51\x69\x92\x6a\x60\x2e\x53\x29\xbb\xa1\x7a\x38\xc2\x0c\xba\x93\x64\x71\xa6\x3c\x88\x08\x37\x93\x43\x70\x94\x64\x8c\x47\xae\x84\x78\xbe\xad\xea\x9d\x6c\x96\x61\xa9\x34\xc9\x4c\xc2\xd1\x87\xe4\x3a\x4c\x78\x89\x4c\x94\x33\x84\x0f\x81\x79\x08\x37\xbd\xe3\x5e\xdf\x09\x64\x0a\x18\x60\xad\x57\xbb\xb0\x27\x9a\x95\x0e\x12\x69\x24\xf2\xc0\xf4\xb0\xd1\x4b\x94\x70\x6e\x30\xb5\xc3\xdc\xe1\x4b\x59\x2e\x8f\x27\xda\x2a\x1c\xf9\xf7\xab\xeb\xdf\x89\x22\xd1\xc4\xf0\x18\x8b\x33\x2f\xab\x60\x38\x4d\x13\x60\xda\x04\x65\x0e\x79\x80\x55\x69\x56\x7d\x99\x27\x01\x11\x21\x0f\xde\x4d\xb9\xcf\xab\x09\xa6\x2e\x01\x21\x33\x9f\x57\xea\x33\xc1\xd3\x4f\x07\x89\xc6\x1d\x6b\x5d\x15\xc5\x75\x4f\x95\xa2\x89\x25\x0a\x61\xdc\x7b\x79\x3c\x76\x33\x8a\x7c\x7d\x05\xb3\x54\x98\x49\xa3\x48\xa0\x10\xe4\xd3\x47\xd9\xbd\xd9\xa7\xff\xfe\x23\x1c\x60\x1a\x6d\xfa\x9c\x94\xce\x88\x6b\x37\xdf\xb9\x7e\x3a\x85\x7e\xf6\xf7\x39\x12\x68\xd4\xf3\xc3\xb5\xc1\x28\x27\x7d\xfb\xd5\xc7\xb6\xe1\xae\x88\x34\x98\x6d\xbe\x7b\xba\xbf\xbe\xf9\xaf\xfe\xaf\x96\x63\x59\xdd\x89\xb3\x85\xbf\xc6\x99\xb2\xde\xe7\x0a\xc5\x90\xc2\x9f\xa5\xab\xbc\x79\xbb\xd0\xcf\x36\xf1\xa1\xb5\x62\xc1\x41\x6c\x5b\xc8\xe6\xcd\x65\x0b\xbb\x88\x79\x3a\x14\xba\xed\x14\xa2\x5c\xa4\xd6\xa7\x5a\xea\x80\xaa\xe9\x42\x2a\x04\x7f\xf5\x38\x93\x86\xfc\x5a\xd7\x6c\x38\xa3\x72\xbc\x7e\x97\x2c\xbc\xed\xd6\xbf\x1e\xf2\x93\x32\x02\xd1\x20\x11\xb2\xf8\x69\x19\x73\x72\x90\x4e\xfb\xd7\x7c\x1a\x01\xfa\xe6\x3c\xd6\xd6\x33\x51\x6e\xb0\x2f\xf4\xde\x12\xc3\x3a\x95\x72\x2b\x31\x84\xb9\xd9\xae\x5f\x9e\xbe\xef\xbf\xaf\xee\xef\x83\x81\x01\x4d\x85\x20\xa0\x7c\x76\x05\xe0\x6f\xd8\x1f\xc7\xfe\xce\x34\x15\x59\x8c\x32\xba\xbb\x6a\xa2\xb7\x43\xd3\x44\x28\xd4\xed\x2e\xe1\x23\x08\xf3\x3b\xe5\xa1\xf9\x8b\xf2\x8f\x39\xee\x2b\x49\xa6\xd1\x2b\x56\x57\x95\x43\xd3\x2e\x19\x41\xd0\x34\x63\x3c\xf8\x82\x8d\x11\x5d\xf3\xe8\x24\xcd\x52\x8e\xe1\xd7\xeb\xf9\x30\xec\x94\xd3\xcc\x52\xee\x53\x3f\x8f\xa7\xc3\x1a\x29\x07\xd3\x89\x22\x95\x91\xb3\x34\x3d\xca\xba\x8d\xa3\xd9\xfe\x38\x95\x2c\x45\xea\x91\x71\x13\xd8\x55\x21\x35\x0a\x1b\xde\x56\x35\xfc\x18\x9a\x29\xa3\xd1\x45\xb2\x05\x79\xa0\xe3\x70\x3a\xd5\x7e\xa6\x1d\x70\xb0\x3d\x22\x9c\xa6\x5a\x50\x1c\x2f\xf2\xc7\xc8\x9c\x98\xa6\x5a\x52\x04\x2c\x6b\x87\xb3\x1e\xa7\x8a\x52\x23\x20\xe2\x13\x48\xd3\x58\xc4\xe8\x93\x2e\x02\x8a\x38\x87\x1d\xf9\x0e\xc1\x8f\x77\x79\x56\x4f\x6d\x24\x70\xfa\xdf\x3e\xdd\xdf\xfc\x02\xa0\x99\x5a\x4e\xc4\xa0\x25\x34\x12\x0b\x0b\x81\x66\x6a\x13\x47\xf9\x09\xa5\x44\xb7\x65\x9f\x6f\xe0\xb2\x28\x12\x36\xf6\x01\xd2\x69\x36\x4f\x66\x91\x8a\x30\xee\xad\x6d\x5e\x9a\xe7\xf6\x62\x8f\xb1\x1c\x0a\x64\x84\xf5\x92\xa3\xa8\xe8\x5d\x95\xa7\xc6\x77\x9c\xab\xf3\xee\x7c\x9c\xa1\x1b\x49\xf8\x59\x12\xc7\xd9\xa0\x18\x8a\x3a\xf4\x2d\x1c\x3e\x29\x24\xcf\xaf\x29\x89\xf6\x8f\xbb\xc7\xa4\xd3\xbe\xc9\xff\x9e\xad\x4a\x19\x01\xc7\x80\x09\xbc\xdd\xe6\xe9\xe3\xa2\x2e\xd4\x35\xc2\x72\xff\xf7\x7f\xa4\x3c\x41\xb3\x98\x19\x94\x2d\x7b\x38\xef\xc2\xa2\x78\xf1\x9e\x16\xe6\x99\x8c\x31\x89\x62\xbf\x2e\x03\xf3\x7d\x77\xb3\xfc\xa9\x33\x96\x32\x14\x93\xdd\x54\xa7\xb1\xcf\x31\xcd\x98\x15\xd4\x29\x63\x1f\x8e\xc5\x80\x53\x5b\x3e\x0b\xe7\x0a\x23\xe5\xad\xc3\xa3\x3c\xcf\x7d\xe6\x3f\x79\xad\x5c\xba\xb5\x14\xe5\xba\x1e\xbf\x3e\xf8\xf4\xd6\x7e\xfb\xe7\x7d\xb8\x0d\x11\x01\xe2\x17\x1d\xa9\x6f\x59\x11\x79\x3a\x20\x32\x41\xb3\xd8\x23\xff\x7f\x2f\xad\x40\x33\xc1\xb9\x76\x16\x99\xed\x53\xf9\x45\xd6\x5d\x7f\x0f\xd1\x56\x96\x50\x07\xcc\x09\xb1\xf4\xd5\x6a\xd7\x1f\xe2\x80\x99\x84\x67\x79\x94\x57\x20\x27\xa5\xfc\x2c\xc9\xd2\x90\x96\x7e\x84\x8f\x6e\xfc\xdf\xc3\x0f\xf8\x64\x0b\x92\x25\x32\x0e\xeb\xd9\x38\x11\x3d\x6f\xa5\xf5\x40\xb3\xbb\x95\x45\xa1\x46\x26\xdd\xcb\xcb\x55\x96\x58\xaa\x1c\x52\xde\x69\x2c\x48\x27\x35\x3a\x83\xef\xfd\xb3\x81\x97\xb2\x0c\xa3\x92\xa0\xa4\xd1\xc0\x48\x57\x66\xd6\x94\x47\xa9\xcf\xa3\xc9\x7e\x2f\x9b\x65\x34\x52\xb2\xd7\x90\xcb\x0f\xa7\xc3\x90\xb3\xc8\xb2\x24\xb6\xbd\x42\xd3\xd2\xdc\x34\xbb\x9b\x2c\x8b\x63\x97\x80\x45\x63\xd7\xbd\x0c\xce\xa9\x34\xcb\x6c\x46\xed\x90\xe6\x35\xb7\x43\x81\x3b\x93\x91\xa3\x33\xf8\x6d\xbb\x83\x4c\x4f\x40\xf8\x99\xd4\xde\x0d\xe4\x74\x7e\xa8\xca\xd3\x18\x62\x36\xbb\x07\x69\x2d\xf6\x0e\xcc\x44\xf8\xda\x87\xd3\x4c\xac\x96\x28\xa7\x43\x59\x61\x76\x1e\x15\xbb\x74\xf1\x4b\xb7\xec\x34\x10\x1c\x61\xc2\x0a\x94\xa9\xd8\xe9\xc7\x34\xd0\x7e\x71\x86\xa6\x88\xde\xdc\xce\x0d\xb4\x69\xa6\x32\x12\xf4\x3a\x76\x68\x8f\xff\x02\xdd\xb8\x69\x9e\xa1\xf6\xea\xbe\xee\x0f\x50\x3b\x62\x5d\xb8\x82\x91\x96\x0c\xa0\x39\x88\x27\x2f\x9f\x45\xe1\x9f\xc5\x15\x28\x33\x4a\xe1\xee\x34\xd7\x55\x99\xeb\x31\xed\x8f\x66\xc6\x3a\x1f\x78\xdd\xa3\x69\x66\xa0\x9b\x0c\x24\x75\x2e\x33\xad\xac\xdb\x6f\x15\x3a\x23\x82\x3c\xcc\x1e\xcc\xda\x04\x85\xfa\x6f\x1f\xc2\xd4\x20\xa3\x44\xe0\xa7\x7c\xcd\xed\x45\xf2\xa9\x6f\x92\xe0\x42\x86\xc5\x27\x14\xe4\x18\xdf\x9c\x24\xa9\x48\x7a\x78\xd6\xbe\x96\xba\xd7\x9b\xa2\x92\x48\x2a\x3d\xcc\x6d\xcd\x6e\xc3\xfe\x39\xd8\x0e\xd6\x5d\xc7\xb9\xd4\x7f\xec\x7e\xe6\x50\xcd\x7f\x41\xf3\x38\xb7\x1b\xfd\xd5\x3f\xf3\x6a\xd5\xaf\xf0\x4d\x92\x58\xa7\xed\x74\x07\xed\x83\x2c\x73\x0b\x4d\x5b\x5d\x9d\x7b\x63\x97\xe5\x51\xed\x7f\x1b\xa7\x09\x6e\xc1\x67\xe6\x5b\x9f\x2d\x80\x41\xef\x7a\x1c\xde\x49\x9a\xc4\xc2\xe5\xaf\xab\xe3\x7f\x9d\xe0\x04\x23\x35\x18\xdf\x84\x11\x8b\x68\x7d\x03\x8d\x86\xb2\xfd\x57\x78\xad\xcc\xc6\xa8\x17\xf1\x11\x92\x58\x4f\x47\x40\x31\x92\x59\x6e\x45\x72\x12\x3b\x0c\xa9\x7c\x07\x23\xf3\xe2\x7c\x71\x5c\x62\x1d\xb9\xaa\xa5\x2e\xf2\xbf\x01\x05\x08\x9c\x7b\xe5\xa4\x7f\x49\xc1\x9d\x10\x9d\x93\x3f\x09\x0e\x5e\xb3\xdb\x15\x69\x86\xb7\xfb\x2a\x0f\xf0\x14\x38\x3d\x52\x48\x83\xba\x6e\x68\xea\xbe\xc2\x4a\x83\xd3\x6b\x5e\x4e\xba\x4b\xa1\x5c\x59\xff\x28\xcf\x83\x77\xf6\xf2\xdc\x21\x13\x95\x44\xce\xa6\xa0\xeb\x4e\x65\x65\x20\xa4\xa4\xc3\xd5\xb3\x28\x43\xf1\xb9\xe7\x97\xcd\xfa\x66\xff\xb2\xda\xdd\xec\x77\x5f\x36\x2f\xa1\x92\x26\x25\xcb\x78\x3a\xf2\x93\x43\xa2\xf8\x64\x2a\x93\x32\x73\x34\x74\xa7\xe6\xda\xb3\x4e\xa4\x22\x31\xd6\x7c\x82\x83\x51\xff\x77\x93\x40\x3c\xd2\xa8\x0b\x62\xd6\xcb\x28\x60\xa9\x19\xc3\x9d\xf2\x01\xe7\x92\xbc\x7c\x9d\x08\xaf\x75\xc7\x25\x92\x5b\xd1\xbb\xd6\xab\x06\xf5\xd7\xd2\x59\x8a\x95\x92\x90\x9e\xd9\x5f\xe7\xd6\x42\x17\x13\xef\xa5\x2b\x00\xed\x2b\xbb\x97\x98\x85\xda\xb7\xd5\xfe\x20\xcb\xf3\xe7\x08\x2e\x09\x51\x8a\xf1\xca\xcd\xee\x71\xbc\x12\x4b\xe0\xb1\xf0\xca\x92\x6b\xa8\xbb\xc7\xd1\x63\x97\xf4\xff\x57\xff\x4e\x87\xf1\x85\x4a\x3c\x95\x20\x62\x9c\xe6\xf6\x58\xe4\x9e\x7e\x26\xf0\x5e\x0e\x3e\xa4\x6d\x6e\xab\xba\xd7\x51\xe9\x5f\xb6\xa5\x9a\x45\x01\x1d\x33\x06\x90\x4d\xce\xa5\x22\x22\xd3\x81\xef\xb6\x5b\x3d\x75\x7d\x03\xca\xd6\xf9\xd6\x5f\x14\xc5\x7f\x2b\x1c\x46\x15\x61\x1a\x51\x91\x2d\x56\xa4\xa7\x03\x47\xc5\x54\xe1\x5d\x69\xdc\xd0\xc2\xe9\x50\xb8\x64\xf7\x63\xbf\xb6\xa8\x58\x33\xd4\xae\xf2\x22\x41\xb9\xaa\x65\x3d\x1b\xcd\x2a\x36\x09\x56\x07\x9a\xfc\xb5\xbc\x95\xba\x37\x8a\xf4\x87\xbb\xe5\x5e\x06\x32\xa7\xaf\x8b\x7f\xa2\x9e\x4f\x15\xd5\x29\x0e\xf8\x23\xe8\x3e\xf3\xa5\x58\x04\xca\xeb\x90\x9a\xbc\xbd\xf9\x0f\x5a\x83\x5c\x76\xa7\xd0\x3a\x91\xa8\xf3\xd4\xcf\x52\x7b\x69\xcc\x79\xac\x23\x31\x4c\xf9\x8a\x65\x24\x75\xf0\x54\x2f\xe0\x3d\x3b\x57\xe6\x08\x22\x57\xa7\xda\xed\xe0\x7d\x3e\x78\x92\xe9\xfe\x07\x21\xbd\xe2\xde\x32\xba\x81\x5e\x65\xfa\x16\x60\xa4\x08\x34\xbd\x2e\xb7\x8e\x6e\x5c\x05\xda\x90\xff\xbb\x88\x24\xa5\xa3\x71\x37\xec\x29\xd2\xe5\xe5\x46\x09\xc1\x11\x97\x76\x1c\xfb\x5a\x12\x3e\xa3\x8b\xa9\x94\x6a\xa2\x83\x17\xe2\x9d\x5c\x96\xe9\xa0\x2a\x55\x0e\x8f\x82\x18\x2a\xe4\x64\xf4\xc9\xe9\xd0\x42\xa7\x98\xf4\xc0\xa2\x33\xc6\xcd\x24\x0a\x20\x31\x95\x41\x86\x59\x34\xb4\x88\xa5\xb3\x67\x96\x54\x66\x49\xc8\xd8\x83\x3c\x38\x29\x91\x85\xfc\xaa\x92\x52\x58\x36\x18\x60\x57\x47\x28\x83\x9c\xab\x6f\x61\xb8\x65\xf1\x44\x84\xc3\x55\x7c\x67\x97\x34\x1e\x7f\xdd\xad\x85\x23\xf6\x9e\x82\xcc\x20\x8e\xe0\x58\x48\x3d\x58\x9f\xce\x53\x59\x0a\x94\x46\xe0\xa9\x0b\xaa\xb7\x50\x14\x88\xac\xbb\xad\xea\x55\xfb\x56\x40\xbb\x6c\xf5\x83\xbf\x43\xbb\x94\x7d\x3d\xe4\x16\x94\x25\x5a\x79\x09\x20\x79\xbe\x0e\x9e\x0a\x18\x1f\xf7\x4d\x98\x88\xb2\xbe\xdc\xb5\x83\xc3\xb1\x18\x28\x0d\xae\x8d\x8e\xd2\x04\xa1\x73\x9b\x52\x3b\x86\x05\xd4\xf4\x8f\x70\xcc\x18\x84\x56\xdf\x57\xaf\x8f\xf0\x31\x32\x16\x5f\xec\x3a\x9a\x44\x29\x63\x83\xf6\xd3\x3d\x58\x94\x2b\xc0\x9c\xc1\x8b\x1c\x95\x0e\x34\x49\x34\xf7\x48\x00\x9f\x04\x5c\x04\x40\x6a\x62\x63\x5c\x73\x4e\x65\xa1\xc2\x6f\x63\xe2\x14\xce\x42\x2c\xb0\x31\xf1\x31\xa4\xac\x66\xd9\x71\x1d\xa7\x26\xf0\x25\x9d\x30\x93\x9b\x3e\x6f\xab\xfa\xf6\x74\x59\x23\xd7\x71\x0a\x41\x35\x15\xbb\x51\xc8\x68\x0f\xf2\x8e\x54\x53\x65\xbc\xfc\x2b\xce\x2b\xbe\x14\xfd\xe9\x52\xa5\x99\x76\xce\x33\x07\xf9\x0e\x1e\xc0\x50\xcd\xaf\xcb\xb4\xc6\x34\x11\x42\x8d\x2e\x04\x4e\x96\x07\xaa\xe6\xc4\x39\xe4\xb4\x6f\xd0\xe0\xb6\xfd\x75\xe8\x90\x9a\x0b\x97\xb9\xc4\x60\x0a\x3f\x40\xd3\x1f\xca\x9c\x65\x30\x02\x98\x17\xd5\x0b\xa8\xe6\x40\x47\x36\x7e\x57\x2f\xab\xd9\x0d\x8b\xd4\x62\x2e\x6f\xb5\x19\x89\x63\x51\x1d\xc0\xb4\xb2\x46\x84\xd1\xd7\xb2\xa9\x8a\x5f\xf9\x8a\x52\x9d\x70\x30\xbe\x23\xdc\xc9\x16\x3e\xe4\xf9\x6a\x76\xa9\xc4\x24\x8e\x5a\x7e\x3a\xf8\x1d\xa8\x3c\xf7\x61\x93\x4e\xac\xd3\x0b\xf4\x28\x2a\xa4\x15\xb0\x31\x8e\x42\xa7\xc4\x89\xe5\xae\x6a\x95\xb7\x17\x5f\xbc\xdb\x89\xc6\x7e\x23\x6a\xab\x7a\x96\x34\xd4\x32\x15\x48\x20\xda\x77\x61\x57\x2d\xd5\xb3\x13\x3d\x93\xd3\x69\x41\xab\xd8\xa2\x7e\xff\xe6\x71\xb3\xdb\xac\xee\xf7\xdb\x9b\x9b\xeb\xfd\xed\xea\xe5\x61\xf3\x78\x37\x45\xf1\x68\xad\x63\x04\x97\xed\xa3\x9f\x1e\x2c\xbb\xee\xc5\x5f\xba\xa3\xa9\xf2\x51\x1e\x2e\xb1\x43\xa8\xd7\xf7\x3f\x6d\xb4\x76\xb1\x76\x2b\xf3\xa2\x79\xb2\xdf\xf3\xd2\x54\x1f\xe1\xb0\xe1\x40\xdc\x61\x75\x7a\x0d\xee\x96\xf0\x26\x47\x42\x15\xd3\x7b\x37\x8a\x93\x64\x1c\x99\xb5\xd5\x3e\x9a\x3d\x1f\x08\x67\x18\x61\xaa\x97\xea\x54\x40\x3b\xb2\x77\xfe\x75\x4d\xa1\xef\x50\x90\x4a\x07\x37\x76\xf6\xe6\xcf\x4f\xb3\xef\x60\xa5\x33\x7f\x39\x95\x0b\x02\x2c\x54\x5b\x65\x3c\x9e\xe0\x47\xf5\x3e\xb2\xb7\x9e\xb5\xd2\xdc\x0e\xd3\xeb\xa3\x3c\xc0\x0b\x74\x73\x9d\x6e\x61\x22\xf5\x4c\x0d\xe1\x8e\xd7\xb1\x7d\x93\xa6\xfa\x18\x87\x90\x26\x66\x71\xd0\xec\x77\x18\xc9\xe7\xaa\x9e\x2d\x03\x86\xd9\x8c\x89\x50\x11\x8f\x02\x29\xca\x1f\x0c\xe3\x52\x23\x08\xfb\xd2\xa6\x90\x1a\x1e\x5b\xd4\x90\x7b\x3a\x42\xe9\x47\xd0\xe4\x16\x38\x4d\x91\x8b\x83\xa4\x11\x2b\x35\x2c\xb8\x14\x0e\x92\x4c\xd4\x88\xd8\x69\x9f\xc9\xc3\xa6\x1f\x8b\x46\x08\x97\x30\xf7\x78\x84\x6e\xb5\x6a\xfa\x63\x89\xc5\x31\xd5\x05\x3a\x7e\xe2\xdd\x55\x77\xc3\xbe\x67\x79\xb0\x9a\x84\xc7\xd9\x90\x6a\xc1\x95\xa0\x9b\xdf\xaf\xa4\x7e\x87\x91\x5c\xf6\x3c\xec\x5c\xec\x77\x26\xe5\xb1\x97\x36\x3e\xb5\xa6\xfa\x28\x47\xf5\xad\xfe\x3e\xd3\x34\x32\x1e\x3e\xf8\x1c\x6c\x3e\xbb\x06\xeb\x81\xee\x36\x8f\xe6\x4c\x2a\x33\xac\x8f\xb4\x6f\x70\x5d\x95\xef\x70\xfe\x73\xa0\x02\x9b\x54\x49\xd4\xbe\xe8\xa2\x3c\x4c\x08\x7f\x96\x0c\x9b\x74\x2c\x93\x02\x4b\xc7\x65\xe3\x31\xc9\x62\x29\x7a\x33\x92\x19\xcc\xf1\xac\x8e\x55\x51\xa0\x3f\xc6\x72\x32\x77\x31\xa6\x35\x2a\x12\x78\xb9\xdd\xd3\x6e\x75\xbf\xfd\xb2\x1a\x48\x6b\x46\x11\x57\x44\x91\xc6\x3c\x57\xcd\x27\xa9\x2a\xa3\x52\x40\x6c\xc6\x97\x87\xf5\xa4\x63\x29\x15\x27\x8e\x4e\xf3\x43\x16\xb9\xb9\x14\x92\xa7\x46\x69\x8e\xb5\x60\x57\x74\xfc\xd7\xd3\xcb\xc5\xe6\xe9\x34\xe0\x37\x8d\xb2\x96\x79\x08\xd4\x1e\xfd\x2b\x50\xae\x62\x9f\x97\xfb\x66\xbc\x03\xf1\xad\x75\x94\x38\x95\x16\xc7\x37\x19\x21\x43\xc2\x0d\x6a\xd0\x08\x59\x5a\x57\x87\xa3\x2c\x3d\xab\xe6\x1f\x78\xd5\x52\x63\x12\x29\x7d\xa5\xf6\x4a\x96\xef\x8f\x23\xa3\x71\xdf\x02\x04\x18\x31\x04\x5f\x5d\x10\x3d\x6c\x92\x0d\xc8\x58\xba\x82\x74\x89\xd2\x76\x37\x3f\x75\x71\x32\xfd\xb4\x6b\x6c\xe2\x00\xa7\x57\xd7\xf2\x3c\x79\xa7\x36\x31\xb1\xc7\xc1\xb8\xa9\xcb\x95\xee\xc6\xd8\x12\x63\x8d\x43\x4e\xe5\x8d\x17\x7b\xbc\x3d\xf5\x09\x4c\x63\x81\x5b\x84\x49\xf8\x3f\x40\x44\x35\x7a\xf4\x7e\x39\x1d\x64\x79\xf3\xb2\x8e\x63\xfa\x0f\x61\x10\x10\x09\x90\xde\x06\x60\xd8\x2a\xfc\x63\x39\xd4\x70\x92\x84\xa6\x41\x42\xb6\xfa\xd1\xed\x39\x7c\x72\xa3\xdb\x55\x8e\x1e\x0b\x88\xd7\xf6\x97\xa8\x2c\x3c\x82\x49\x03\xc9\x24\xce\x60\x0f\xab\xc7\xd5\xdd\x0d\xea\xfb\xdf\x3f\xad\xff\xbc\xb9\xf6\x8e\x23\x7d\x3b\xa5\x30\xeb\x61\xe0\x3f\x27\x38\xc1\xa6\x7c\xed\x69\x00\x10\x93\x0c\xd4\x04\x43\xf6\x99\x4b\x1e\x85\x98\x0b\x17\xe7\xc9\x03\x6c\xcc\xdd\x5c\xba\x91\x42\x2c\x23\xdc\x90\xff\xbb\xca\xcb\xb1\x87\xde\xf2\x80\x07\x2a\x9c\xb6\xaf\xad\x4e\xb5\x37\xef\x9b\xa9\xd2\x51\x60\xa9\x41\xd1\x84\x7d\x73\x6c\x7f\x2f\xb6\x36\x3d\x3f\xcb\x34\x0f\x04\xb1\x2e\xc8\xc4\x98\x62\x31\xb9\x1f\x7e\x00\x60\x1c\x28\xb0\x7b\xf8\x85\x29\x07\xb8\x56\x68\xaa\x81\x3b\xc0\x95\x31\x6b\x98\x89\xdf\x40\x92\x2a\x9c\x15\x94\x37\x5b\x4c\x07\x67\xc6\x34\x34\xb1\x14\x03\xb8\xcd\xfa\x09\x35\x62\xfd\x9f\x53\x42\x64\x2f\xdb\xe8\xd2\xa1\xa7\x63\x7f\x90\x2a\xb7\xf7\x91\xe7\xb1\xd4\x2b\x85\xd4\x28\x35\xe1\x9e\x74\xaf\x70\x4a\x13\x99\xf5\xbc\x2c\x73\xaa\x1f\xbd\x09\xd3\xd7\x12\x15\x08\xc0\xec\x76\xb3\x87\x91\x91\x40\x94\xe4\x51\xea\x77\xf9\x0a\x37\x3f\x51\xf4\x69\xf2\x46\x24\x27\x68\xd2\xfb\x70\xb3\xfd\x32\xeb\x0e\x2a\x71\x76\x16\xda\xcd\x33\x63\x11\x4a\x3c\x18\x34\xa8\xb6\x5d\x54\x64\xae\xa1\xd1\x75\x7e\xbc\xcc\x24\x82\x8e\xc4\xe0\x6e\xb1\x6d\xa5\x1e\x13\x2e\x40\x47\x4e\x30\xb3\x79\xab\x3e\x9e\xa1\x3a\x16\xb0\x29\x31\x83\xda\x37\x90\xce\x5d\xee\x42\x38\x6a\x76\x19\x63\xa3\x98\x86\xd4\xf5\x77\xc8\x5f\x40\x8f\xa1\x9c\x00\x86\x62\x14\xfd\x9f\x13\xd4\xe7\xc7\xf9\x3c\x31\xee\x47\x00\x1a\xcb\x3a\xd0\xbe\x8d\x9c\x85\xa8\x8d\x14\x49\xd9\xf8\x5b\x3d\xc8\x9f\x0b\x13\xb4\x8d\x94\xc2\x0c\xff\xde\x83\x96\xb7\xef\x79\x51\xb8\x6a\xd7\x34\x1c\x9c\x3c\x80\x25\xc4\x20\xe1\x67\x0b\x6d\xcf\xac\x7f\xae\xf3\xb2\x5b\xd0\x8b\x29\xa7\x2a\xfc\x22\x26\x13\xc5\x9e\xe6\x7e\x8c\x42\xb1\x24\xb6\x88\xb7\xc3\x64\xed\xad\xeb\x96\x4b\xa8\xbd\xae\xa1\x17\xd6\x5a\xf0\x0d\x98\x07\x0f\x96\x74\x43\xa0\xaf\xe4\x05\x41\xd4\x65\xfc\xaf\x8d\x65\x8a\x38\xba\xbe\x04\xbc\x0e\x2f\xaf\xbf\xcd\x6e\x26\xb7\x03\x2c\xf0\xae\x1a\xcf\x9f\x96\x53\x27\x93\x79\xef\x0c\xe5\xae\x2e\xaa\x61\xa1\x5d\x62\x4d\xe2\xc3\xb5\x6b\x38\x54\x7a\x39\xbd\x60\xb9\x62\xc2\xc5\x67\x76\x7b\x6e\xba\xf0\x26\x1c\xe8\x26\xb4\xee\x04\xa7\xb2\x1b\x2f\xeb\x42\x36\x8d\xa3\xe1\x4f\x1f\x5f\x88\x38\xd0\xed\x77\xd5\x91\x90\x7d\x1c\x79\x9f\x80\x30\xeb\x59\xa1\x1d\x28\xa9\x57\x5e\x2f\x8a\xea\x03\xcc\x1c\xc5\x61\x85\xc9\x70\x3d\xc6\x40\x43\xb6\x18\x8d\x23\x68\xa2\x94\xc5\x64\x98\xda\x44\x46\x59\x2f\x70\x0b\xd6\xe6\x3a\xc7\x8c\x19\xba\xb8\x2d\x99\xa3\x50\x9b\x28\xe7\xb3\xf6\x8a\x60\x10\x05\xf5\x93\x7d\x7e\xab\xda\xaa\xbf\xcb\x04\x62\x7c\x63\x35\x98\xd3\x5c\xea\xc1\x66\xcc\x61\x9b\xbc\x09\x48\x2f\x78\x3a\x49\x6d\x84\xb6\xdc\x12\xaf\x43\xe4\xe5\x40\x27\xf7\x9e\xc9\x24\xed\xc7\xff\xee\xa4\xe0\xb9\x86\xa3\xcc\x67\xd4\x29\x2b\xa3\x04\x97\x78\x0b\xfa\x6d\x55\x14\xfd\x10\x98\x21\x58\xac\x8c\x23\x4c\x6b\x7b\xc7\x93\xc5\xe8\xd0\xca\x04\x10\xd7\x91\x37\xdb\xbc\xbb\x95\x35\xca\xa4\xbb\xdc\x7e\x30\x34\x09\x4d\xd3\x04\x37\x44\xbd\x0f\x97\xd9\x16\xfd\x02\x6b\x25\xb0\x98\x0f\x3e\xc5\xdd\xe4\xfc\x9b\x0c\x8f\x55\xcc\xe5\xbf\xbc\x1b\xed\xd5\xa9\x2e\x2f\xaa\x41\x56\x29\x8d\x20\xa3\xa7\xb2\xc8\x4b\xd8\x56\x3a\x97\xc5\x68\x93\xf3\xdb\x28\xc6\x2a\x1d\x23\x51\xed\x03\xf2\x97\x51\xd6\xc8\x6a\x9e\xf6\x7e\xbc\x16\xea\x4f\xb6\x81\x56\x4b\x8b\x92\x2b\x77\xa8\x0d\xf5\x37\x8c\x2a\xc2\x56\xab\x94\x3b\x0f\x79\x14\xd3\xf4\x46\x9e\xfd\x51\x4b\xa3\x5e\x36\xad\x3a\x42\xdd\x9e\x5f\xe4\xe0\xac\xdf\x35\xc8\x9c\xbe\x1c\x82\xe2\xbe\x41\x33\x13\xca\xee\x5a\x48\x2c\x74\xdc\x57\xd5\x7f\x86\x4c\x8e\x3f\x68\x04\x37\x5e\x06\xf1\x66\xf7\xe5\xe6\xe7\x11\xba\xad\xe9\x2d\x7c\x2a\x87\x11\x7e\x97\x4a\x94\x38\x5b\x5f\xad\xff\xfc\x15\xfc\xd1\x42\xc4\x11\x70\xf7\x7c\x42\x8a\xe1\x18\x17\x6e\x81\x44\x08\x8f\xca\x9b\x07\x68\xa1\x1e\x5e\x2b\x80\xa3\x81\x07\x79\xed\xaf\x13\x1b\xb4\x59\xef\xb3\x11\x49\xbd\x75\xd4\xbe\xcd\xf5\x3b\x9c\xf7\xb6\xee\x61\x5a\xd6\x12\x85\x20\x29\xaf\xae\x38\xae\x4e\xa6\xa1\x09\x57\xd8\x29\xaf\xf2\xb6\xad\x54\xcf\x1f\xb4\x36\x73\x89\x9a\x63\xb7\x46\xd4\x48\xf2\x9d\xe6\x8a\x59\x14\x69\x1a\x39\x54\x62\xb7\x02\x1e\xbb\x79\xc2\xcf\x3f\x93\x2e\xc0\x22\x92\xc6\x18\x57\xe2\xfa\xae\xdb\xdb\x5a\x4e\xcd\x21\x96\x5e\x33\x8b\x48\xa6\x65\xf7\xed\xbe\x3f\x7d\x1f\x85\xf8\x2c\x22\x20\x10\x23\x50\x60\xae\xef\xc9\x0e\x11\x71\xd3\x37\xb1\x29\x32\xc0\xa5\x31\x3e\x4b\x05\xbb\xaa\xc7\xee\xcf\x10\x55\x2c\x8a\x49\x8a\x5c\xed\xe3\x69\x26\x98\x4d\xe2\x34\x34\x91\x1a\x1d\xb0\x70\x5b\xf5\x17\xc8\xba\x57\x1a\x61\x11\xe5\x80\xef\x41\x1e\xa0\x34\x37\xb2\x2e\xce\xcf\xe3\x6c\xfd\x2f\xa8\x3a\xe1\x04\x0a\x32\x47\x58\x5f\x1d\x8f\xa1\x14\x79\xf1\x16\x59\xca\x30\xc1\xde\x3d\x42\x78\xaa\x6e\xd7\xdc\xfc\x71\x81\x6d\x18\x90\x0f\xb3\x5a\x18\x8b\x38\x33\xb8\x9d\xd1\xb2\x79\xab\x4e\xfd\xb7\x14\xd2\x29\x7a\x39\x86\xf9\x85\xaf\x35\x8b\x84\x8e\x12\x97\x83\x1c\x65\xfc\x58\x94\x50\x27\x2d\x1c\x16\xa0\x6e\x63\xf0\x9c\x4f\xe7\x78\x16\xa5\xd4\xb9\x6a\x48\x63\x06\x0f\xc8\xb9\xce\x3f\x8b\x52\x41\x5d\x1c\x18\xa4\x11\x66\xea\x5b\x5d\x0b\x46\x3d\x8c\xc5\x4d\xf2\xf9\x01\x9a\x56\x1e\x8e\x34\xee\x9b\x78\x81\xae\x1d\xc8\x43\x17\xa5\xe4\xe5\xab\xd3\xff\x27\xe9\x43\x85\x1c\xbc\xd0\x50\xab\xcc\xf4\x13\xee\x66\xfd\x74\x29\x44\xc4\x22\x29\x15\x76\xb6\xfd\x9b\x6c\x1e\x2f\xdf\x8a\x4a\x9c\xef\x9d\xe7\x84\x3a\xe5\xf6\xc5\x70\x9a\x45\x4a\x3b\x4a\xe0\xe3\xd3\xe3\xfe\x79\xf5\xd7\xea\xea\xfe\x66\x92\x8d\x64\x91\x8e\xb4\xf4\x22\x04\x0f\xf2\x67\x7e\x38\x1d\x70\x91\xf3\xda\x85\xf9\xec\xd6\x74\xd7\xcf\x71\xf6\x3f\x95\x7d\x6a\x6d\xdb\x56\x97\xc0\xa4\xf0\x03\x6b\x71\xdd\xeb\xb6\x39\xe8\x62\x00\xe6\x6a\x9e\xe9\x9f\xfd\xc4\x24\xd6\xa1\x2c\xb1\x64\xe1\x93\x57\xcb\xb9\x16\x4f\xff\x19\xff\x13\x06\x8f\x01\x89\x08\xe3\xf5\xd3\xc3\xd5\xe6\xf1\xe6\x7a\xff\xfd\x66\xb3\xbf\x7b\x5a\xdd\x87\x07\x87\x58\xe0\x44\x3e\xb1\x71\x1d\xb2\x78\x2c\x82\x24\xb5\x8e\xf1\x53\xfd\x1b\xf4\x8c\x11\xca\x22\x50\xce\xe3\xdf\x6d\x4e\xef\x73\x0d\x65\x03\x3b\xa8\x0f\xcd\xa2\x56\x27\x23\x51\x64\xbc\x51\x09\x9a\x17\xa1\xff\xe2\xae\x96\x61\xfa\x63\x24\x22\x22\xe4\xba\x56\x3d\x53\xd9\x2d\x71\xf3\xe9\x83\x44\x19\x47\x49\xd5\xbc\x27\x65\xfc\x4e\x4f\x69\x79\x1e\x20\x51\x06\xdc\x5f\x74\x97\xe7\x87\x3f\xcf\x0a\xea\xbb\x6a\xa9\x16\xc3\x48\x1c\x09\xc6\x43\x5f\xe9\xe6\x0b\xaf\x71\xbb\x24\x98\xcf\x48\x4c\x13\x0c\xb2\x1c\xf7\x2d\x0b\x4f\x19\x33\x86\x69\x96\x5b\x00\x33\x77\x72\x1d\xad\x64\x8c\xc4\x1c\x90\xdc\xd4\x63\xf1\xbc\x89\xfa\xae\x7a\xbc\x5d\xf7\x67\x13\x10\x0d\x0c\x94\x50\x6b\x9d\x9c\x87\x46\xb1\x1e\x89\x09\x10\xb7\xd9\x08\x8e\x5a\xe9\xec\x2b\xd1\x58\x23\x60\x65\xae\xca\xf2\x79\xc5\x9c\x11\x1c\x17\x6e\x22\xeb\xe6\xa2\x2e\x28\x98\xcb\x71\x31\xc2\x48\xe4\x74\xca\xe4\xcf\x9b\xdd\x97\xcb\x9d\x15\x23\x22\x02\x1d\x60\x81\xa1\xe6\xdd\xdb\xde\x84\x36\xa9\x43\xb8\xb7\x5d\xdc\xea\x91\xf9\xb3\x0b\x25\x56\x62\x9e\xea\xb5\x7a\x46\x4f\x8f\xf0\xd3\x54\x3b\x7b\x52\xdd\x57\x14\x96\x07\x20\x49\x8d\xa6\x4e\x5f\xe8\xb6\xaa\x4c\x33\xd1\x22\x63\x24\x23\x56\x0c\x29\x76\x7c\x8e\xaa\xe8\xdd\xf9\x18\xc9\x44\x84\x92\x9b\x5b\xbf\xa5\x71\x09\x81\x4f\xf8\x0a\xe1\x37\x3a\x4b\xfb\xec\xc2\x68\x0c\x12\x49\x62\xe5\xe7\xcb\x3f\xf3\xd6\x8b\xec\xcc\xa7\x8f\xe9\xb9\x14\xd3\x26\x1d\x65\x6a\x6f\xab\xfa\x05\xf5\xf2\x69\x38\xa9\x92\x16\xd9\xa2\x87\xbd\x33\x63\x70\xfa\x8d\xb3\xa5\x8f\x98\x48\x62\x95\xa5\x1b\x61\x7b\x23\xcf\x05\x0a\xee\x4c\xdf\x14\x08\x8d\x95\x3d\x05\x6d\x0f\x54\x67\x04\x54\xe2\x35\x14\xb0\x37\x8e\x5c\x39\x9a\xf9\xef\xad\xd4\x83\x6e\xe1\x6d\x0e\x85\x69\xa6\xb9\xba\x74\xf6\x6d\x2c\x4d\x10\xd6\xfc\x56\x7d\x3c\xf4\xe9\xd1\x55\xdd\xcd\xc5\x0e\xfb\x58\xd5\x0f\xe1\x46\x62\x92\xc5\x11\x73\xb4\x07\x74\xc8\x74\xad\xbb\xd1\xda\xb7\x00\x9d\x3a\xb8\xf1\x50\x83\x62\x71\xcc\x32\xed\x95\xcb\x5d\xe5\xd6\x91\xde\x4d\x7f\x3c\x8b\x13\x73\x31\xe8\x26\x37\x1a\xc7\xca\xb9\x83\xbf\xc8\xbc\xf8\x7b\x1c\x4b\xc5\x94\xf0\x44\x05\x97\xd9\xf2\x17\xd9\x20\x16\xb3\x54\xf2\xa1\x66\x74\x5d\xcb\x8f\xb9\x8d\x25\x8b\x59\xe6\xf2\x62\x07\x59\x9e\x64\x71\x75\x3a\x2f\x2c\xa9\x31\x53\x2c\x98\xa3\xfa\x05\x05\xfd\x1f\x26\x5f\x3c\x66\x36\x43\xb5\xab\xcd\xc3\xcd\xe6\x21\xdc\xad\x48\x23\xbc\x85\x23\x2e\xb3\xbb\x0a\xe7\xe3\x4d\xe3\xd1\x95\x7d\xab\x0c\x4c\x36\x0b\x49\x16\x8b\xb7\x61\xce\x88\x85\x64\x41\xdc\x7d\x0b\x45\x91\x97\xaf\xe3\x6a\x84\x6f\x94\x44\x46\xb9\xc9\xb9\xb0\x28\x14\x7b\xd2\xed\x78\xb3\xc1\xe2\x94\x18\xed\x01\xbf\x9e\xf9\x7d\x0a\xfb\x67\x34\xda\x72\xd1\x33\xce\xb3\xf3\xad\x2d\x8b\x53\x6d\x53\x2f\x6a\x50\xfd\x18\x04\x4c\x7f\x0f\x12\x62\x71\x96\x44\xb1\x67\x54\x6d\xcc\xcf\x2b\xd9\xea\xb7\xab\x73\x17\x5e\x95\x7d\xda\x3d\x8e\xc2\x6a\x15\x67\x69\x1a\xf2\xc9\xf7\xd5\x6b\xb5\x38\xdf\xc7\x52\x30\x24\x91\x5c\xef\x5e\xc2\xf4\x1e\x4b\x6d\x33\xe3\x89\x3b\xd7\xdb\xab\xcd\xe7\x2c\x06\x16\xab\x10\xc9\xbd\x81\x7e\x07\xb3\xcf\xfb\x1e\xa7\x52\x40\x86\xa4\xd3\xf7\x7f\x90\x75\x17\xa0\x2d\x56\x35\x66\x32\x18\x2c\x56\x9a\x26\x7e\x27\x89\xf4\xe8\x75\x85\x2f\xd4\x19\x32\x4d\xdf\xa6\xb2\x4e\x4f\xd5\x8b\x90\x86\x6a\x55\xd9\xae\xe5\x71\x97\x43\x1d\xcf\x3e\xae\x26\x09\xe2\x59\x07\xd7\xef\xb1\x94\x16\x8b\x35\xe3\x28\x6a\xf6\xf2\x74\xb5\x09\xe5\x1f\x16\x43\xe4\xaa\x10\x47\xe7\xc0\xe4\xc4\xfb\xbb\x69\xf3\xff\x4a\xfd\x7e\xac\xda\xd9\x5a\x3c\x7b\x47\x96\x38\x99\x2a\x53\x57\xc7\x10\xcf\xcf\x63\x8b\xd8\x5a\x37\xe9\x96\xa7\xc3\x73\x55\x04\xd8\x00\xa3\x51\x94\x72\x1f\x2a\xe2\x77\xf0\xab\x4f\x38\xca\x00\x10\xf9\xfb\x56\x57\xe5\xa9\xff\x11\x21\xae\x08\xd9\x8e\x69\x23\x61\xaf\xd2\x6c\xca\x75\x79\xee\x9b\xd2\x28\x75\xfc\x9c\x1f\xeb\x93\x8f\x30\xfa\x63\x49\x14\xf9\x7d\xf3\x71\x3c\xbe\xa7\xcf\x47\x49\x42\x30\x23\x1f\xca\xf0\x37\xab\x97\xfb\xbf\xae\x36\x2f\xd7\x7b\xa7\x97\x1c\x4e\x17\x13\x85\x84\xc4\x22\x47\x1d\xcd\x43\x5e\x4e\x57\x39\x1a\x67\x02\x4b\x45\xd7\x20\x8b\x35\x4e\x73\xd2\xf1\x97\x65\xf3\x89\xc3\xe0\x34\x0c\x9d\xf7\x6e\x4a\xa5\xc6\x37\xef\x79\xee\x93\x51\x4c\xa9\x71\xbc\x19\x94\x7b\xef\x79\xb6\x78\xc5\x7d\x5b\xed\xf5\x59\x17\x70\x0d\xdf\xf2\x30\xb3\x53\xc6\xdc\x58\xd1\x6f\xb2\x7e\x85\x87\xaa\x84\xfe\x2d\x32\xae\x50\xac\xdc\x85\xcf\x2e\xcc\xfc\xef\xea\xa0\x72\xd8\xff\xf7\xd3\xd5\xfe\xb5\x2a\xcc\x51\x0e\x9f\x8d\xe9\x34\x32\x5e\x2a\xb8\x44\x8f\xe2\x3f\xa6\xf8\x15\x46\x39\xe3\x0a\x7a\x29\xf9\x52\x63\xa7\x99\xbe\x77\x9e\x32\xcc\x3a\x14\xd5\x6b\x2f\x5d\x0f\x97\x88\xbd\xd9\xd7\xe2\x0a\x42\xed\xf0\x5e\x36\xed\xad\xac\x0f\xa3\x4c\x70\x1a\x5a\x19\x07\x1c\x78\xed\x22\x54\x7f\x65\xe2\x3e\x3c\x11\xd3\x96\x96\x60\xed\xc2\x8f\x68\xb4\xc0\x59\x9c\xbe\xa8\x50\x06\x83\x94\x6e\xc4\x9d\x1f\xf4\xba\xfb\x50\x13\x89\x43\x46\x93\x28\x25\x41\x0b\x42\xd7\xb9\xfa\xac\xcb\x25\xca\xe9\xda\xb5\xf9\x27\xb2\x09\x8c\xa6\x5c\x63\x56\x56\x36\x4d\xfe\x5a\x06\x04\xf4\x74\xfa\xa0\xa9\x88\x22\xe6\xd7\xba\x12\x8a\x66\xdb\x23\x8e\x18\xcd\x18\x08\xef\x31\xfe\xcd\x65\x53\x87\xb0\x91\x66\xd6\x7d\x41\xa9\xb5\x53\xb4\x02\x33\x10\xeb\xa6\x37\x22\x13\x9b\x04\xf5\xab\x3f\x1f\x71\xa1\x7c\x0c\xc0\x11\x46\xa5\x8c\x8c\xab\x0d\x37\x50\x5f\xcc\x20\xcb\xfb\x07\x2a\x4d\xe2\x80\x21\x32\x2f\xce\xdd\xeb\x1c\x34\x7a\x18\x55\x44\x22\xfa\xac\x39\x42\x69\x1e\xab\x5e\xc6\x8f\x51\xc5\x1c\x05\x42\x1a\xb3\xae\x0e\x17\x41\x3b\x55\x46\xe0\x00\xcd\x5b\x38\xf8\xca\xce\xf4\xba\x5a\x49\xcc\x65\x39\xdb\x64\xd9\xb6\x05\x0c\x85\x17\x46\xb5\x55\xe8\x16\xfc\xc3\xa9\xf5\x61\x18\xf3\x3c\x66\x42\x32\x0a\x9e\x65\xd1\x85\xdb\x27\x93\xb7\x61\xb1\xfc\x5a\xcf\x76\xbd\x14\x52\x13\x3b\x15\xcb\x0f\x0c\xa4\x3c\x5a\xd5\x77\x2a\x12\x3a\x95\xd5\x16\x25\xf0\x6f\x9e\xb6\x77\xa3\x8f\x67\xad\x08\x6e\x8a\xbb\xbc\x3d\x15\x32\xaf\x61\xbf\xae\x0e\xc7\x16\xf6\xde\x76\x83\xb1\x48\x51\x5c\xe9\xaf\xbe\xfe\xb5\xdf\x3c\xae\x5f\x6e\x56\xdb\x9b\xfe\x98\x21\xc2\xab\xc4\xf4\x98\xff\x49\xdf\x61\x84\x2a\x04\xa2\xcb\xbc\xee\x66\xf6\xe9\x5c\xc6\x88\x4d\xb3\xc1\x67\xfa\x7b\xde\x96\x17\x5b\x3b\x16\x93\x04\x09\x21\x0e\x83\xd9\x05\x37\x21\xb9\xc1\xe2\xcc\x41\x1f\xdc\x94\x75\x55\x9d\x5e\xdf\x7e\x6d\x79\xd1\xfd\x84\x27\x3e\x3a\x78\x39\x95\x3d\x72\x79\x66\xce\xe6\x1b\xd3\x98\xe2\xea\xfc\x73\x50\xad\x63\x8c\x5a\x57\x7e\xfd\xfa\x6d\x73\xbd\xb9\xfd\x6b\x64\xab\xcd\x18\x53\x34\x23\x13\x41\x61\x07\x76\xf6\x87\x05\xb7\x92\x0f\xc6\xfd\xe0\xc0\x42\xb3\xe7\x15\x22\x43\xd2\xba\x37\x1b\x0a\x01\x07\x4b\x22\x27\xb2\xf2\xb5\x31\x6b\x79\x74\x79\xd0\x65\x1b\x78\xc6\x92\x24\xf2\xfb\xa4\xc3\xd1\xbf\x9c\x7e\xdc\x85\x26\x3a\xc2\xd5\xba\x95\xef\xb0\xba\x3b\x41\x33\xeb\xc6\x2c\xd1\x0c\x1f\x1e\x61\xd2\xe3\xf9\x87\xa5\x29\x89\x9d\xa6\x14\x22\x67\xbd\xcf\xde\xec\x31\xd2\x8c\xa0\xf8\xdd\xea\x6a\xb7\x46\x5f\x8c\xf0\xeb\x8c\xc4\xf8\xcd\x03\x4c\xfb\xb1\xfa\x21\x87\x63\x94\x2a\xbf\xb3\xf9\xaf\x53\xd5\xc2\x44\x62\xb3\x3b\xce\x85\x08\xf3\x3d\xfc\xc0\xe8\xe2\x7b\x5e\x96\x50\x8f\xd8\x34\x8c\x65\x2a\x92\x03\x5f\xe1\xe1\xeb\xfd\x6e\xf3\x7c\xbf\xb9\x79\xd9\x6f\xd6\x4f\xbc\x6f\x64\x12\xb4\x2c\x0b\x9b\xf8\x87\xfe\x88\x32\x80\xe5\xa1\xfb\xb7\xe6\x9f\x55\x05\x18\xd3\x14\x8c\x47\x1c\xef\xde\x6a\x68\xde\xaa\xc2\x6c\x51\xac\x63\x2b\x2d\xb8\x3c\xc3\xec\xfd\x6a\x16\x3b\x6b\x90\x6e\x09\x9d\xc0\xb4\x18\xd3\x89\xc1\xb2\x93\x0b\xd8\x42\x7a\xe1\x82\x8b\xfe\x0b\x6a\x0e\x63\x86\xa6\x88\xfb\xfb\x91\xc3\xc7\xfe\x15\xda\xfd\x9d\xcc\xfb\x75\x9d\x19\xe1\x42\xb8\x8f\xc1\xb6\xe6\x41\xce\xe2\x46\x66\x94\x73\x50\x78\x01\x7d\xaa\xbb\x4b\xcd\x15\x44\x7e\x05\x24\x60\x0c\x92\x04\xb1\xeb\xff\xae\xf2\xd2\x19\xc3\x85\xab\x43\x9a\x61\x6a\xef\x6b\xef\x41\x39\x12\x5e\x99\x3e\x06\x48\x81\x6c\xbc\x9b\xb8\xff\x3e\x60\x23\x67\x47\x52\xe7\xe6\x15\xfc\xb2\x53\xd5\xcd\xc8\x92\x88\xf1\x88\x13\x13\x84\xcc\xc3\xfc\xd9\x3c\x56\xed\x63\x8f\x6e\x61\x3c\x52\x24\xf6\xf3\xac\xab\xb2\xdf\xf7\x3b\x69\x0f\xf8\x67\x9c\x24\xd4\xab\x62\x97\xed\x97\x6a\xfa\x0d\xbb\x4b\x90\x50\x44\x5f\x15\xc5\x88\x42\xcd\x78\x4c\x1d\xab\xa4\xa8\xaa\xf7\xd3\xf1\x92\x85\x37\x91\x03\x1c\x50\xfc\x8c\x53\x9a\x04\x5d\x87\x9b\xf6\xed\x25\x94\x3b\xfa\x3b\xa2\x29\xc1\x64\x8c\xdb\x33\x7c\x1b\xab\xea\x8d\xfb\x24\xa7\x59\x82\x69\xe6\x53\x03\x8f\x50\x95\x0f\xb2\x56\x05\xcc\x66\x57\x4e\xa5\xd3\xba\x40\xa4\xf3\x21\xdc\x3b\xe3\x60\xd3\x50\xfb\x7f\xcd\xab\xb2\xe7\xd1\x3e\xe7\x3f\xa1\x78\xfe\x3c\xce\xe5\x4c\x08\xf4\xc9\xc7\xe4\x65\xb7\x77\x2c\x9b\x53\x8d\x94\xe8\xc9\x50\xe6\x9c\x02\xea\xf6\x3a\x50\xdf\x62\x56\x8f\x0b\xad\x30\xac\x47\x41\x9c\xf0\xc3\x24\x32\x2e\xa8\x68\xba\x58\xe0\xe6\x3f\xdc\x75\x1c\xee\x46\x05\x0f\xad\x48\x8c\xb1\xe6\xc1\xd1\x3b\xf7\x2a\xb0\x40\x18\x4f\x79\x84\xd9\xa6\x41\xd7\x7e\x79\xdb\xc6\x53\xc1\x10\xbf\x7b\x2c\xe4\xf9\x82\xaf\x32\xbd\xd3\x34\x8b\x1c\xff\xf2\x74\x5e\xed\x5e\xfa\x2b\x29\x93\xf8\xb4\xd9\x97\xe3\xac\xeb\x64\x29\xc7\x6a\x7e\x37\x9e\xaa\xba\xef\x35\x92\x13\x70\x4e\x65\x28\x24\x51\x55\x53\xc1\x7d\xc6\x65\xc2\x82\x7b\x12\xea\x23\xd5\xcd\x2a\x20\xc7\x87\x36\xca\x15\x4f\x5d\xa9\xf0\xdf\xa0\xdb\xcf\x50\x22\x8c\x2b\x21\x11\x28\xa0\x4e\xe7\x2b\xd9\xe4\x7a\x2d\x6b\xd3\xec\x1f\x1c\xfb\xf2\xd7\x8b\x29\xd7\x69\x1a\xf5\xee\x5b\x5f\x64\x33\xd4\x9e\x6e\xab\xfa\x79\xcc\x09\x5e\x7e\xc1\x86\xa7\xc2\x55\x9a\x54\x91\xeb\xf0\x3d\x9a\x00\x52\x0b\xad\xb4\x46\x29\xb3\x7d\x8e\x91\xe7\x53\x5f\xa6\xe1\x90\x08\xd5\x5b\x1f\x9e\x0c\x94\xad\xdb\x26\x4c\x22\x6a\x0e\x12\x30\x78\x44\xd3\xb1\x6f\xd5\x47\x33\x67\xda\x7f\xc2\x74\x5c\xce\xeb\x7f\xce\x99\x1c\x61\x59\x18\x07\x9d\xa2\x5d\xf7\xed\xd3\xd7\xc7\xeb\x9b\x97\xfd\xcd\xbf\xd6\x5f\x56\x8f\x77\x37\x7b\x84\x4c\x86\x07\xb0\x9c\x67\x21\x93\xb7\x1d\xe0\x70\x13\xa9\xc1\x50\x7a\xfb\xe4\x7f\x75\x13\x47\x08\x58\x44\x44\x23\x5c\x74\xdf\xa4\x4b\x1d\xa2\xd4\xe2\x9b\xac\x03\x44\x82\x89\x88\xbb\xd1\xe3\x88\xa6\x79\x75\xda\x7f\xf4\xca\x38\xa1\x89\x97\xe4\x6e\x4e\xb9\xce\x0d\x0a\xf6\x4d\xc7\xa5\x20\x91\x20\xe3\x44\xa6\xe7\xa2\xfe\xb1\x90\xa6\x10\x84\x3b\x78\x76\x2f\x25\x3f\xe7\x4c\xf5\x37\x1f\x7b\x13\x53\x97\xfa\x7c\xb2\x0b\xc1\x91\x88\x63\xd7\xb3\xab\xb2\x38\x3f\xd7\xf9\x41\xd6\xe7\x87\x61\xa7\x2f\x62\x63\x71\x50\x99\xdc\xda\xcb\x3a\xa0\x6f\x44\x95\xcb\xa3\xbb\xf0\xaa\xc8\x61\x18\x39\x82\x31\xd0\xbe\x34\xf7\x5c\x57\x87\xbc\x99\x6d\x27\x05\x4b\x9d\x49\x02\x1c\xa0\x7e\x85\x52\x9f\xf7\xa7\x1e\x04\xc0\x04\xa7\x02\x65\x33\xae\x65\x0b\x63\x59\x85\x70\x38\x85\x58\x7a\x52\x50\xbb\xc8\x2c\xff\x7f\xfc\xff\xfd\x75\x05\xcd\x30\x3a\xf1\x4a\x1f\x2b\x67\xff\x17\x0e\x6a\x8a\x34\x16\x19\xa2\x30\x91\xa4\x02\xb7\xcc\xd5\x11\xca\xde\x66\x8b\x89\xc4\x64\xda\xf6\x5a\x1c\xb3\xdc\xea\x3f\x48\x34\x88\xc4\x26\x5a\x79\x88\x76\xbf\x26\xcf\x5e\x11\x3a\x3b\xa2\xaa\xf8\xcf\xef\x55\xdd\xb4\x63\xaf\x28\x26\x32\xe2\x32\xe8\xaf\xb5\x3c\x42\x83\xa6\x6c\xe6\xa4\xe1\xaa\xea\x36\x59\x7d\x23\x91\xa2\x98\xe3\x87\xa3\x79\x62\x64\x18\x94\x71\x98\x90\x51\x86\xf0\x9c\x95\x31\xde\xe7\xab\x5d\xe4\xf7\x30\x21\xe3\x14\x77\xe2\x7b\x69\x8c\xa3\x6c\xff\xb1\x90\x55\x49\x43\x6b\x6e\x0c\x04\xc6\xd3\xd2\xcb\x19\x9e\x51\x45\x9c\xcb\xb0\x44\xae\x7b\xe1\xfb\xcf\x1a\x3b\x37\xae\x63\x5d\xfd\xcc\xc1\x4c\xaa\x33\xd3\xfb\x55\x31\x0d\x02\xd2\x5e\x94\xb3\xde\x94\x3f\xaa\x5c\x43\x73\x75\xee\xf6\x21\xa7\xe5\xac\x47\x78\x02\x25\x52\xc4\x9f\x3f\xdc\xbc\xac\xbf\xf6\xba\x3d\x4c\x00\x4f\x31\xcf\x7c\x5f\xbd\xfa\x59\xf6\x6b\xa9\x1d\x81\x75\x01\xf9\x3c\xbd\x27\x48\x69\x6c\xfa\xd5\xaa\x85\xd5\xfc\x7b\x43\x96\x86\xf4\xf7\x6d\x0d\x70\x5f\x29\xcc\xad\x8d\x03\x1e\x61\x09\x49\xb9\x1f\x36\x37\xed\x1b\x6a\x00\xd5\x13\x20\xd0\xe7\xf0\x3e\x26\xac\xe0\x41\x09\x73\x7b\x94\x1f\xa5\xdf\x34\x85\xe5\x21\x89\xac\xc5\x7c\x5a\xaf\xce\xf6\x6b\xbf\x03\x96\x10\x91\x22\xa6\xd4\x71\x2c\x37\xe5\x1a\x33\x5d\x53\x3a\x2a\x4b\x28\x73\x5c\x53\x5d\x1d\xcf\x23\x43\x91\x8b\x90\xf9\x52\x5f\x83\x25\x14\x38\xf2\x46\x65\x20\x84\x6d\x7b\x9c\x0e\x4b\xb8\xb2\xc8\xb7\x33\xf9\x0f\x92\x2e\x77\x9a\x84\x5b\x17\x34\x77\x01\x00\xae\xad\x7f\xc2\xf9\x2e\x9c\x40\x58\x82\x93\xd4\x03\x94\xa7\x28\x9d\xdd\x76\x22\x22\x08\xa9\x87\xba\xbd\x34\x5b\x61\x49\x92\xa4\x08\xe3\x06\x73\xe9\x0c\xe1\x9b\xa4\x51\x14\xf9\xcb\xdf\xe6\x65\xde\xbc\xf9\xde\x17\x0e\xa7\xd6\x11\xce\x7f\x94\x47\xa8\xc1\x63\x98\xc3\xd1\x2c\x4e\xf0\xf9\x72\xed\xcc\xda\x1e\xe4\xcf\xde\x29\x99\x25\x92\x68\xdc\x05\xd7\x32\x6f\x90\xa4\x88\x3c\x81\x50\xad\xfd\x3c\xeb\x99\x46\xe3\x2c\x3a\x11\x51\x38\x1f\x87\x2c\x1b\x5b\xeb\x77\xb7\xda\xdf\x8b\xb4\x59\xac\x7b\xc6\x7e\xfb\x50\x99\xd9\x7a\x90\x28\xef\x9a\x78\xac\xab\x2e\x8e\x9d\x43\x5d\xc2\xe2\x96\xe8\x28\x13\x66\x90\x72\x73\x90\xb6\x7e\x30\xcf\x53\x6e\x89\xc9\x12\x74\xe6\x1c\x29\xc7\xcc\xc2\x91\xe9\x6d\x18\x1d\xa1\x78\xce\xb1\x07\xd6\xdf\xec\xbe\xf8\xca\xdb\x1f\x7d\x1b\x9e\xb9\xcc\xa2\xbe\xe0\x7c\x5c\xe2\xb5\x58\x62\x8c\xc0\x44\x87\x3a\x9d\x6f\xda\xb7\xd9\x73\x43\x94\x39\x5c\xc9\xd3\x9f\x37\x8f\xe8\xf5\xd7\x5b\xfd\xb1\x04\x88\x63\x98\xdf\xe6\x3f\xcf\x13\x3d\x66\x96\x40\x9c\x60\x70\xf1\x21\xc7\xb4\xa2\xee\xef\x0a\xad\x18\x1c\x89\xca\x6d\x0a\xba\x57\x3e\x7b\x2f\xa0\x63\x9c\x65\x31\x7c\xb9\x3a\x95\x7d\x8a\x3e\x01\x70\xd8\x8c\xcd\xfa\xe9\x8b\xac\x8d\x1e\xba\x8c\x8d\x49\xd2\xbd\x9b\x9b\x02\x74\x5b\xf7\xd9\xc9\xc4\x32\x89\xf8\xc8\xa6\xad\x8e\x68\x23\x73\x3e\xba\xef\x96\x86\x06\xa9\xc4\x85\xc4\xb1\x33\x27\xb3\x46\x1a\x45\x31\xd1\x63\x70\xce\x35\x48\x53\xe4\xc1\x34\x84\xa5\x11\x67\xcc\x0f\xa4\xf5\xea\x69\xcc\x8c\x67\x29\x89\x39\x4a\x29\xa1\x25\x07\x22\x77\xc6\xe6\xec\x2c\x25\x3c\x41\x00\x47\xb0\xf1\x59\x56\x23\x63\x69\x4c\x04\x0a\x6e\x1d\xe4\x3b\xac\xe5\x0c\xad\x35\x45\xe9\xb3\x94\x26\x19\xe2\xb9\xaf\x76\xeb\x30\xb5\xa7\xd4\x58\x5f\xa3\x7b\xfa\x01\xb5\x1d\xd9\xcc\x4e\xfb\x57\xca\x08\x47\x90\xf7\xd5\xa9\x45\x5e\x60\x38\x01\x33\x1a\x0d\xae\x5c\xb7\x0e\xfe\x5a\xcf\x75\xf5\x23\x1f\xd1\x77\xe6\x27\xb3\x76\x52\xad\x59\xbb\xc2\x03\xa6\x67\x87\x7d\x70\xca\x55\x16\xe9\x1e\xcf\x29\x0b\xb7\x5c\x87\x2b\x0b\x02\x18\x3a\xcb\x00\x2e\x1d\xc1\x02\x43\x93\x4c\x60\xae\x2f\x6f\xae\x03\x73\x3a\xaf\xca\xeb\x99\xfc\x17\x4b\x85\x61\x48\x0d\xde\xa3\xea\x81\x59\x30\x8b\xe8\xa2\x3e\x86\x35\xa4\xb0\x48\x3c\xd7\xb0\xcd\x5f\xcb\x90\xb6\xf8\x47\xea\xd3\xa3\xb3\xa9\x04\x81\x5b\x0f\x79\x01\x4d\x5b\x95\xb0\xbf\x92\xe5\xbb\x47\xea\x78\xaf\xef\xf1\x58\x4c\xbb\xaf\xe7\x7d\x5e\xf7\x35\xfc\x1b\xa1\x99\xe1\x4d\xa4\xdc\x71\x87\x5e\x83\x81\x66\xd6\x1f\x01\x27\x7c\x88\xdb\xf8\xd6\xb3\xfe\x2f\x41\xdc\x2c\x95\x11\x75\x69\x64\x8f\x16\xbf\xad\xea\xbf\xd0\x2e\x35\x9c\x49\xc6\x84\x46\x83\xc6\xd1\xba\xdb\xf0\x35\xde\xa9\xc3\x0f\x97\x54\xd1\x14\xc9\x46\xd6\xf9\x96\xaf\xe5\xf1\x05\xa4\x7e\x1b\x6e\x54\xa5\x02\x06\x41\x08\x9f\x14\x9b\xde\x88\x8e\x24\xcd\x82\x15\xcf\x3d\xd8\x65\x99\x58\x96\x1a\x43\x70\x74\xad\xab\xa6\xdb\xfa\x59\xbb\x34\xf5\x0f\xcd\x81\x32\x64\x70\xca\x53\x5b\x1d\x64\x9b\xeb\x3e\x49\x17\xee\x0d\xac\xa2\x21\xcd\xf3\x74\x9a\x7f\x7d\x1b\xb9\x64\x29\x8a\xc3\x57\xc5\x2d\xb9\x8d\xff\x98\xa5\x6d\x52\x4b\x18\x6e\xf6\xbd\x86\x9f\x9b\x34\x5c\x62\x3f\x5c\xc4\x0a\x83\x9b\x87\xa7\x12\xae\xea\xea\xae\xa8\x54\x10\xe9\x63\xa9\x95\xe0\x85\x9d\x37\xc1\x87\x86\x65\x51\xa4\xb0\xf2\xd2\x67\xe9\x66\xa0\xd3\x2c\x32\x3c\x4b\xb1\x41\xf0\x70\x6f\x02\xde\x22\x34\x21\x8a\x39\xef\x73\x39\xf0\x02\x2f\xa8\xe0\x2c\x8b\x63\x9a\xb0\x7e\xb0\x78\xfd\x9a\x70\x8c\x29\x84\xe8\xdb\xbc\x34\x2b\x0c\xfd\x77\x6f\xe0\xf2\xae\x7d\x93\x2c\x46\xc2\x3f\x1c\x72\x17\xe9\xf5\x05\x7e\xcc\x75\xcf\x76\x90\x59\x2c\x65\xa6\x27\x80\xa2\xc7\x5c\xbf\x97\x17\x90\xc2\x8c\xb2\x08\xab\xdc\xeb\xaa\x3e\x56\xb5\x6c\xe1\x11\x3e\x9a\xdf\x27\x64\x33\xca\x00\x81\x4f\xd7\xf2\x78\xf4\xa9\xf8\x0b\x81\xfa\xff\x33\xbb\x94\x8c\x04\xf4\xe6\x6e\xf7\xd5\x54\xd4\x24\xbc\x39\xfa\xbf\x8b\x1e\xc5\x2c\x63\x24\x43\x96\xca\xde\xcd\x85\xf8\x5b\xc4\x7f\xca\xba\xcd\x2f\xa3\xd5\x8b\xdf\x27\x32\xc5\xbd\xcd\xcd\x76\xcc\x8b\x64\x59\x9a\x58\xe9\x41\x9e\x8f\x95\x81\x97\xfc\xf5\xad\x5d\xbf\xe5\xc5\x54\x4e\x80\x65\xa9\x4d\xd0\xaa\xac\x8b\x90\x65\x21\xfb\x4c\x5b\x96\x71\x8a\x1d\x73\xf7\x06\xb7\x55\x55\xbc\xc8\x7a\x52\x4e\xcc\x32\xa5\xd1\x3b\xe5\x0e\x4a\xb7\x18\x21\x1e\xfe\x6b\x03\xf5\xe6\x7a\xb6\x27\xca\x32\x00\x9c\xb8\xca\x60\xc4\xf7\xf9\x17\x90\x09\xa5\xc9\x80\xb6\x76\x68\xab\x39\xc9\x65\xf6\x09\x64\xa2\xd5\xc8\xb2\xd7\x31\xe6\x77\xd5\x28\xab\xc3\x42\x4b\x69\xd1\x81\xc0\xe7\xf7\x1c\x61\x24\x1c\x53\x19\x76\xe5\x2f\xb2\x59\xc8\x21\x64\x12\xc2\xea\x8b\x4f\x7b\x94\x4d\xe3\xdc\x35\xe6\x51\x58\xa6\x54\x6c\xc6\x38\xbf\x2d\xd4\x3f\x72\x0d\x03\xa0\x2a\xd3\x96\xa7\x9e\xf2\x8a\x96\x16\xb3\x13\x98\xc8\xe0\xf2\xb8\xfb\xd6\xc3\xed\xe7\x23\xd8\x10\x81\xd8\x8c\x2b\x6b\xaf\xab\xea\x30\xf9\x32\x26\x8b\x51\xce\xe1\x28\xeb\xc6\x7d\x9a\x2f\x20\x4d\xb0\x09\xf0\x8d\x80\x1a\x44\xef\x6d\x65\xf9\x7a\x6a\x26\xbf\x07\xa1\x90\x3e\xff\x20\xdf\xe1\xea\x74\x76\x94\xda\xdf\x30\xa0\x67\x5f\x04\x32\x41\xa4\x0b\xab\xf6\xcf\x2f\x37\xfb\xed\xea\x3e\x64\xaf\x32\x9b\x31\xe5\xed\x33\x1f\x64\xab\xdf\x1c\xf4\x64\xb4\x24\xc8\x88\x30\xec\xd3\x55\x89\x76\xb7\x63\x8b\xd9\xd0\xc2\x8a\x68\x8c\x98\x0e\xd0\x8f\x5e\x82\x09\xbf\xec\x18\xd4\x3d\x4b\x1b\x49\x42\x8c\x75\xab\xfc\x61\x8c\xcb\x90\xc4\x72\x57\x6c\x2b\x64\xee\x5e\x6b\x73\xa9\x1f\xca\x64\x6c\x23\xc4\x72\x56\x93\x97\xb3\xb8\x6c\xcb\xd8\x72\x2c\x0c\x3d\x54\x5d\x18\x11\xf4\xe4\x99\xa4\x4c\x3b\x9f\x61\xd9\xc0\xc3\xf3\xd8\xe8\x80\x49\x9a\xc4\x08\xe6\x95\xc6\x8c\x55\x92\x17\x97\x35\xc9\xe2\x0c\xf3\x77\x0e\x21\x71\xfd\x5e\x38\x16\x8d\x27\xd0\x2c\xc7\x66\x92\x51\x97\x6a\x5c\x57\xa7\xba\x59\xf2\x60\x1e\x35\xcd\x12\xcc\x68\x77\x91\xf5\xc8\x05\xee\xe6\x5f\x5f\x96\x43\xc7\x30\xb9\x48\xc1\x44\x26\x7b\xee\x59\xf7\xf3\x90\xf3\x5b\x7e\x10\xc1\x9c\x5f\x86\xc3\xe1\x91\x3f\x66\x47\x53\x91\x45\xa3\x71\x15\xce\xf5\x8f\x82\x27\x29\xa4\x48\xe5\x10\x8b\xec\x40\x1e\x42\xda\xb4\x4f\x9a\xfa\xa6\x89\x72\xd2\x8c\x6b\x59\xce\x95\x9e\x98\x4c\x23\x2d\x7c\x62\xe0\x2a\xac\xb8\x32\xa5\x62\x84\x21\x7d\x96\x4d\xf3\x51\xd5\x4b\xda\xd8\x4c\x76\x5b\xb4\xa4\x8f\x7d\xfd\x32\xd6\xcd\xf8\x41\x7b\x6c\x71\x8e\x93\x99\xca\xdc\xce\x41\x1e\xbf\xdf\x6c\xc2\x75\x33\x93\x20\x1f\xd4\x55\x35\x50\xd5\x7c\xc2\x18\x65\x52\xc5\x1a\x27\xa3\xee\xc3\xec\xdb\x6a\xaf\xf2\x20\x60\x48\x66\x2f\x48\x53\x0a\x4e\x7c\x27\x24\x5d\x67\x4f\xae\x8d\x0c\xb6\xc7\x3d\x37\x4b\xd6\xed\x55\x1e\x82\x06\x69\x84\x45\x53\x21\xa7\x03\x99\xab\x02\xae\xe1\x50\xf5\x47\x53\x48\x5d\x9a\xb5\xc1\x27\x75\xf5\x20\x7f\x10\x14\xb3\xd1\x48\xa7\xe6\xf3\x8c\x95\xb4\x52\x26\xbd\x02\x8e\x86\xfc\xd8\x2e\xc5\xde\xd2\x2a\x1e\x0f\xe2\x6e\xfd\x16\x40\x5a\x43\x30\xe0\xf4\xfa\x2a\x5f\xbb\x1f\x8d\xa7\x46\x15\x09\x82\xe5\xf8\xb5\x3c\x1c\x65\xfe\x5a\xce\x3f\xcc\xe4\x32\x2a\x4a\x0d\x23\x83\xab\x75\xbc\x6f\x5c\x80\x1f\x0e\x43\x14\x7c\xea\x51\xcc\xde\x3b\x5e\x5d\xc2\xfd\xfd\xe4\xa7\x88\xd5\xb8\x23\x75\xde\x30\x1f\xe5\x58\xfe\x93\xa9\x18\x38\xe2\x07\x8b\xea\x03\xea\xc9\x97\x56\x94\xbb\x1c\xa8\x27\xb2\x21\x83\x14\x71\x35\xf3\xd5\x33\xb4\x17\x8e\x60\x6e\xa0\x9f\x92\x14\x55\x31\x8d\x07\xb0\x78\x65\xed\xc4\xe2\x95\x29\x46\x19\xce\x7b\x56\xe6\xc5\xf7\xbc\x7d\xf3\xf8\xb1\xc9\x8d\x30\x91\x22\x94\x72\x2b\x4b\x36\x5b\xb7\x14\x33\x14\xb1\x23\x06\x5a\xa8\x0f\x79\x09\x77\x95\x2c\xb6\xba\x42\xd6\x9f\xac\xcd\xc6\x2c\x33\x71\xa6\xef\x5c\x44\x19\xf5\x3d\xf1\xa5\x2a\x8a\xaf\xa8\x7b\xb4\x38\xec\x55\x42\x39\x4a\x2b\xf9\x67\x27\x21\x5d\xad\x12\x91\xc6\xac\x9f\x6b\x7a\x0f\xba\x70\x34\x13\xc8\xb6\xca\x1b\x97\xea\x9f\xbd\xbb\x24\x73\x71\x3f\x54\xcd\xd5\x6a\x7b\xf3\xc9\xb5\x53\x2a\xd1\xd7\xd6\x62\x36\x6b\xfd\x26\x0f\xc7\xbc\x2a\x07\x91\x2d\xa6\x52\x23\x70\xb5\x59\x39\x9c\xcb\xec\x2a\x59\x9a\xa5\x49\x8f\x53\xd3\x17\xb2\xb7\x0b\xd3\x8b\xca\x24\xc3\x33\x76\x2b\xee\x7e\xbb\xbb\x09\xd9\x15\x25\x63\x81\x9b\x99\x43\xbe\x50\x89\x5f\xaa\x04\x2b\x99\x30\xde\x67\x4d\x90\x60\x1b\xce\xa5\x53\xe7\xdb\x55\x83\x34\xfb\xa0\xaa\xb6\x97\xed\x3e\xef\xd7\xf2\xe1\x2d\x68\x93\x05\xd7\xa0\x2d\x48\xf4\xf1\x0a\x4c\xc4\x0b\x7d\x95\xc9\xf2\xa1\x34\x58\x4c\x4d\x7b\x88\xe1\x30\xa8\x0c\x95\x31\xfa\x03\xe5\x50\xbf\xc8\xbc\x3c\xc8\x77\xa8\x03\xb5\x79\x31\x2d\xaf\x8c\xb4\x98\x0d\xd6\x50\xb6\xcd\xa6\x7c\xee\xee\xb8\x37\x6b\x65\x0a\x98\x63\x66\xdd\x43\x69\xea\x3f\x3e\x97\x5b\xee\x5a\x12\x84\x27\xfc\x59\x9f\x8f\x6d\x75\x3c\xf7\x21\xda\xc3\x05\x73\x41\x75\x83\x95\x78\x85\xd7\xe7\xaa\x2a\xfa\xab\x49\x47\x48\xf8\xf3\x65\xbd\xb0\xaf\x56\x56\x58\x64\xeb\x1f\x30\x93\x89\x48\x05\xff\x4b\x1d\x91\x0c\x37\xc3\x65\x85\xd9\x4f\xfc\x75\x4f\x1c\x0c\xdf\x47\x13\xa6\x3c\x0d\xb6\x28\xae\xa1\x6c\xa5\xae\xf2\xb2\x59\xbd\xca\xbc\x6c\x9c\x0a\xd3\xf4\x1b\xe9\x98\x25\xa8\x38\x7c\x90\x79\xe9\x1c\xc0\x47\x9e\x1d\x4c\x53\xc6\x10\x94\xb0\xef\x57\x06\xef\xe7\x3c\xee\x2f\x9a\x82\x09\xe9\xe3\x2f\x55\xe1\x13\x22\x33\xbe\x87\x66\x00\x59\x20\xaf\xe4\x3f\xe0\x39\x70\x77\x99\xe6\x9a\xe2\x8b\x1d\x43\xce\x77\xd5\x66\xbd\x7a\x76\x13\x0d\x06\x76\x97\x83\x60\xa9\x66\xa4\x05\xe1\xa8\x03\xfa\x9a\xff\x80\x3f\xf3\xf2\xd5\x8c\xd0\xeb\xbf\x88\x74\xb4\x60\x92\xf8\x1c\xd3\xea\x78\x5c\x5e\x8a\xb5\x48\x5c\x38\x84\xb6\x3c\xb2\x7d\xfb\xcc\x9a\x87\x69\x21\x33\xeb\xbb\xfe\xed\xea\x6a\xa5\xc7\x12\x30\x8b\x1c\x23\x2d\xac\x40\xf6\xd2\xf3\xea\xaf\xa7\xaf\xbb\xfd\x6e\xf3\x10\xe2\x66\x9d\x28\xcb\x7c\x56\x19\x3f\xce\x48\x9b\xfd\xd2\x23\x92\xe9\x94\x3a\xab\xac\x57\x68\xbd\xb2\xf3\xd5\x79\x82\xf2\x9e\xdd\x6b\x6a\xb8\x43\xad\x41\x59\xbd\xd6\xd2\x7e\x1a\x57\xf5\xed\x2d\xee\x61\x5a\x68\xda\x07\x38\x54\xf5\x79\x53\xb6\xf0\x5a\xe7\xed\x19\xf3\x3c\x94\xb8\xfa\x85\x6f\x9e\x65\x4a\x98\x50\xa6\x75\xf2\x37\xab\xbc\xbe\xee\x26\x3d\xdf\x42\x0a\x0e\xde\x4a\xdd\x21\x4a\xbb\xa5\xeb\x7c\x5c\xb2\xa1\x60\x5a\x31\xa7\x81\xb0\x0f\x24\xc6\xee\x7d\x5e\xd8\x6b\x32\xad\xa4\x30\x63\x4b\x72\x94\x27\xfd\x3c\x9f\xa1\x95\xce\x30\x65\xa3\x4e\xe7\xe7\xaa\x95\xed\x0c\xba\xa3\x35\x25\x5c\x05\xbb\x55\x2c\x8b\x4e\x66\x66\xdf\xca\x28\xc5\x94\xe7\x79\x36\xa8\xd1\x1d\x1e\x12\x52\x67\x7f\x1c\x7c\x07\x6e\x03\x89\x47\x5b\x19\xa1\xb1\x0e\x96\xf7\xfe\xcc\x91\x41\xd1\x1f\xd3\x1c\x77\x0a\xdf\x57\x57\xa5\x4f\x8c\xff\x22\x05\xaf\xad\x96\x51\xd4\x53\x20\x5d\x81\xa2\x19\xef\xb0\x4c\x24\x1c\x1d\xdd\xe5\xd4\x6e\xda\xb7\x5d\x35\x78\xd1\x8d\xa3\x62\x12\xa7\xe1\xdf\xf0\x53\x29\x8d\xf3\x58\x93\xe6\xc9\x19\x17\xfb\xdb\x34\x31\x8b\x31\xe2\xd2\x01\x44\xb0\x20\x5f\xc1\x4c\x2c\xd2\xe0\x20\x74\x2d\xeb\xf7\xb2\x32\xd0\x57\x9b\xe6\x4d\x13\x8a\x41\x6f\x29\x0f\x30\xf7\xfc\x62\x86\x51\x2b\xbc\xb7\xc8\xca\xda\xbc\xc8\x65\x0b\x5b\x68\x2f\x02\x57\xc3\x44\x1a\xe4\xe9\x1f\xce\x08\x98\xb8\x82\xdf\x74\x6f\xc3\x12\x83\x15\xad\x6b\x79\xbe\x96\xc3\x24\x7f\x81\x94\x9f\x5d\x49\x13\x14\xe4\xde\x03\xda\xab\x6c\x4a\xeb\x60\xf6\xae\x54\xf5\x99\x0f\xd3\xe7\xa3\xd8\x70\x93\xb1\xf1\x46\x77\x55\x9a\xfb\x05\x72\xea\xec\xe6\x45\x14\x21\x6b\x60\x9d\xa3\x50\xd7\xcd\xcb\x3a\x8e\x48\x1a\x89\x38\xfb\x45\xfd\x66\x7e\x0e\x22\x69\x00\xa9\xdd\x3e\xa3\xce\xc5\x10\x28\x1a\x11\x5b\x87\x4c\xcf\x4b\x83\x08\x19\xa7\xb5\xdc\x9e\xaf\xce\x2f\xf0\x7a\x2a\x10\x0f\xfe\x79\x98\x62\x84\x72\x4a\x43\xb5\xb7\x5b\xbe\xc1\xb5\xbb\xdf\x0e\x98\x44\x3b\x63\x66\x07\xf1\xfd\xba\x29\xdb\xd4\x25\x6b\x26\x11\x82\x49\x40\x92\xa0\xeb\x14\x92\xe2\x4d\x88\x39\x17\x03\x01\x93\x46\x11\xb2\x6a\xde\x64\x13\x8a\x2f\xcf\xce\x1b\x78\x7a\xea\x94\x5a\x24\xa4\xdf\x41\x7b\x5f\xc9\x72\x63\x30\x2b\x57\xd5\xad\xad\x8a\xbc\x5a\x9e\xf0\x4d\xda\xcb\xc9\xd9\x53\x69\x7a\x71\x90\x4f\x50\x60\xb3\x1f\x67\x34\x43\x9d\xe2\xdd\xcd\xea\x61\xff\x7c\xf3\xb2\xbe\x79\xdc\xad\xee\xc2\xfc\x6f\x32\x05\xb8\xa6\xa9\xdc\xac\xd7\x8b\x22\x97\xcc\xc8\x04\x68\x1a\x84\x47\x8a\xaa\xee\x5d\xcb\x99\x91\x59\x2c\x93\x7e\xc8\x23\x0d\x7b\xf2\x45\xa4\x66\x98\xc7\xbc\x3d\xe9\xf7\x6e\x0b\x13\x7e\xa7\x12\x22\x69\xaf\x37\x0a\x35\x80\x27\xc9\xf6\x0d\x52\x83\x53\xda\xbe\x84\x9f\xed\x73\xd5\xee\xe4\x2c\x02\x34\x9a\x44\xb1\x07\x9f\xe1\x40\x68\x3f\xaa\x79\x8b\x58\x61\xcd\x6c\xdf\xc8\x1f\x30\x51\x8e\xfa\x95\xe0\xf3\xe8\xf7\x06\xb2\x61\x53\xed\x72\x6a\xe3\xc4\x9f\x31\x8c\x62\x6f\x2e\x64\xd3\xae\x65\x51\x3c\x7f\xdd\x86\x72\x96\x31\x19\xcf\xc8\x68\x4e\x1e\x82\x97\x59\xd7\xb1\x69\x82\x70\xbd\xed\xf3\x66\x77\x33\xfc\xde\xaa\x9e\xd3\x79\xb3\xfb\xb2\xdc\xeb\xac\xb2\x10\x08\x63\xc7\x0b\xce\x1f\x44\x4a\x20\xe8\x72\x7f\x06\x59\xef\xde\x6a\x80\xb1\x7e\x13\x03\x12\xc9\x2c\x1a\xdd\x62\xd3\x1f\x20\x31\x27\x7d\xa9\x79\xb0\xfb\xbd\xbf\x24\x77\x02\xf1\x3d\x00\x8b\xf4\xa8\x1c\x3a\x52\x6d\x09\x6d\x94\x23\x54\x80\xaf\xc9\x3d\x85\x7e\x00\x31\x65\x08\xa8\xcf\x7d\xa7\xde\x76\x71\x45\xd3\xe6\x4e\x8e\x1e\x13\x70\x4d\xfe\xba\x54\x9e\x81\xd8\x70\x9c\x15\xfb\x65\x7d\x0a\x4e\x04\x4a\x9d\x8d\xfd\xea\xf1\xeb\xe3\x5f\xab\xfe\xaf\x89\xc4\x9a\xef\xb1\x06\x9b\xff\x04\xf3\x65\x24\xf8\x19\x9a\x48\xe7\x28\x52\x95\x6e\xa9\x19\xe9\x3f\x31\x60\xdc\xbd\x53\xe9\xf0\x3a\x7f\x5f\xf0\xc2\x80\xe9\x1e\xe3\xb1\xcb\x0f\xb8\x4e\x6f\x41\x57\xa5\x69\x7a\x81\xf2\xd9\x05\x99\xa1\xc8\xf5\x76\x56\x54\xf3\xc4\x40\xaf\x3d\x76\x31\x31\x00\x33\x0e\xb7\xb9\xea\xbe\xea\x6d\x55\x0f\x52\xee\x79\xbf\x7d\xfe\xd5\x74\x0c\x3c\x4e\x10\x3f\xb1\x79\xb8\xbe\x19\xfb\x66\x4c\x56\xe9\xf9\x72\xd6\xfd\x7d\x3c\xc8\x41\x44\x80\x9a\xda\xb9\xae\xf6\xc7\xba\x3a\x54\x7b\x87\x18\x5d\x8e\x09\xa1\x0b\x87\xbd\xae\xee\xab\x33\x0d\xef\x65\xdd\xd3\xd0\x24\x71\x25\x5e\x04\x43\x1f\x02\x1f\xee\xe9\x08\xe5\xb6\x85\x63\xff\x89\x05\x38\x66\x14\x86\x24\x79\x59\x42\xd8\x18\x4c\x26\x21\x48\xa2\x08\xcb\xb3\xba\xa8\x4a\x98\x68\x39\xfe\x3a\xbb\xd7\xfd\x10\xfa\xbd\xaa\xd7\xfc\x01\xd3\xe3\x2a\x42\x2b\x91\x0a\x15\x04\x09\x0e\x93\xc2\xd6\xb0\xe6\x42\x92\x38\xf5\xa6\x3b\x68\xfb\x65\x69\x32\xcd\x42\x92\x18\x39\x30\x23\xdd\x4e\xb0\xae\x16\xb6\x72\x90\x64\x29\xf3\xe9\x87\xd5\xeb\x45\x1e\x01\x12\xa0\x18\xa4\x3f\x6c\x1e\x77\xfb\xcd\xe3\xee\xe6\xe5\x5b\x2f\xe8\x00\x29\x75\x13\xfe\xf6\x28\xeb\x77\xb4\x76\x1c\x65\x62\x20\xe5\xae\x5c\xf1\xd7\xdd\x53\xff\x27\x99\xa0\x34\xd7\xbe\x71\x80\xd7\x26\x37\xfd\xa3\xa7\x8a\xe2\xf4\x7e\x07\xed\xaa\x79\x0f\x04\x96\x6b\xd0\xf9\xa1\xaf\x26\x42\xaa\xac\xcd\xbc\xb8\x05\x2a\x20\x36\x73\x87\x16\x06\x19\x68\xda\x3b\x6a\xbb\xfd\x67\x70\x07\xba\xad\x4e\x21\xcb\x06\x32\x76\x7a\x9d\x77\xd0\x5e\x3f\xed\x1e\x4f\x87\x17\xf8\x51\xbd\x77\x41\x61\x37\x8e\xa1\x99\xbd\x51\x45\x08\x6a\x1a\x5c\x57\xaf\xaf\xe7\xc9\x73\x2a\x19\x45\x3d\xbe\xf3\xad\x2a\x4c\x9f\xab\x07\x65\x22\x64\x09\x3d\x9e\x4a\x68\x76\x88\xd8\xcf\x87\xdf\x19\x40\x3e\x32\x26\x87\xf6\xed\x1b\xec\xbf\x54\x7d\x4d\x15\x34\x4b\xf1\xac\x2e\x39\x88\x17\x8c\xa3\xbe\x82\x0a\xda\x48\xeb\xd8\x5c\x3f\x90\x83\x3c\xa2\xe3\x80\x06\x8d\x18\x96\x53\x13\x10\x44\xdd\x78\xdc\xd8\x95\xab\x58\x5d\x20\xf2\x3e\xe9\xb1\x86\x65\xd2\x09\xff\x3c\x57\x1f\x50\x9f\x2e\x94\x5c\xc0\x46\x89\x77\x77\x19\x24\x43\x71\xf6\x0f\x77\x62\x81\x61\x09\x5f\x49\xfd\xbe\x7d\xcf\xcb\xee\xf1\xc7\x6c\x06\xb0\x96\x20\x95\xfc\x43\x16\xa7\x31\xb7\xd5\x46\x82\x27\x43\xc5\x60\x55\x14\x13\xfa\xa6\x8d\x52\x67\x2f\x39\x64\x62\xe7\x52\x71\xcc\x92\x48\xd3\xde\x4e\xd3\x47\xa7\xf8\x3a\xfa\x4c\xab\x25\x99\xa5\x49\x7f\x15\x67\x8d\x33\xfd\xee\x96\xa8\x08\x05\x15\xf7\x7b\x5b\x54\x55\x0d\xe6\xbe\x7a\x25\xd1\x7e\xea\x4a\xde\x35\x73\xf4\x46\x7b\x94\x35\x02\x86\xfb\xfd\x88\x25\xda\xdb\x3a\xa2\x17\x9d\x5e\x42\x13\x5b\x1a\xd3\xa0\xc7\x86\xae\xb0\xbb\xea\xe6\xe7\x31\xaf\x67\x5d\xdb\x52\x9e\x61\xd5\xb8\xf7\x9b\x77\xd5\xf8\xfe\xb5\x70\x96\x26\xbd\xd3\xcf\x77\x80\x77\x5c\xa9\xc3\xd1\x94\x67\xb8\x14\x7b\x45\xc9\x59\x46\xd1\xa6\xa9\xc6\xb2\xd7\xae\x9a\x40\x98\x6c\xc6\xe2\x98\x84\x5c\x66\xd5\xce\xde\x4f\xa6\xb3\x10\x3a\xed\x7b\xa3\xdc\xbd\x1a\xab\x64\xcc\x43\x23\xff\x4b\x19\x6b\x0c\x89\x5c\xf6\x0e\xca\xb6\x59\xcf\xd2\x68\x56\x42\x82\xfb\xa2\x37\x28\x8a\x6a\xf6\x79\x55\xec\xf2\x88\x7b\x24\x34\x62\x89\x68\xa1\x7c\x3e\xd0\x56\x17\x82\x7c\xab\x58\x8c\x89\xfa\x1e\x23\xf9\xc5\x0d\xdf\xa5\xf5\xd2\xff\x44\xa7\x11\xe6\x3f\xca\xd3\xeb\xeb\x9c\xfb\x64\x0d\x49\x70\xfa\xc6\xa9\x07\x33\x78\xbb\x8f\x6a\x86\xa0\xb2\x86\xb3\xc4\x8d\xab\x55\x58\xf8\xcd\x6c\xa1\x0e\x2d\x13\x87\x91\x75\x60\x34\x84\xdc\xaf\x76\x9b\xa7\xc7\xfd\x80\x49\xb3\x46\x2a\x04\x9a\x1e\x73\xfd\xbe\xae\xca\xa6\x72\xfb\x39\x14\x61\x9b\xa3\xf5\xac\x01\x82\xc6\xa9\x83\x3a\xa8\xae\x6a\x67\x87\xb2\x03\x79\x18\xe5\xb6\x67\x4f\x6d\x40\xa3\x6e\x81\xb3\xba\x90\xe5\xbc\xef\x00\x77\xe2\x04\x1f\x90\x0f\xa0\x46\x0b\x52\xe1\x62\x79\x73\xc8\xdb\xfd\x93\xb5\xfa\x4d\xe6\xa5\xc7\x10\xdf\x16\x72\x39\x3b\x34\x5a\xe8\x2c\x80\xf3\x42\xf8\x56\xfd\x84\xe2\x5f\xe1\xb4\x36\x06\xef\x78\x55\x63\x95\x0c\x7b\xeb\x24\x1c\xb5\x96\x51\x44\x9a\x7e\xed\x8d\xb2\x1f\x73\xfd\x3e\x96\x76\x9a\x75\x46\xab\x19\x6a\xd2\x63\x39\x3f\x07\xb7\x6e\x34\xb3\xee\xb0\xb8\xa5\xb6\x56\x2b\x6e\xc2\x96\xc6\x13\xb2\x1e\xf2\x32\xbf\x90\xd7\xe2\x51\x14\x49\xe4\xe0\xee\xf2\xb6\x80\x4f\xa8\x8e\xcb\x4c\x8c\xf1\xe7\xe0\x51\x14\x53\x84\xea\xfe\x77\x5e\x14\xd5\x07\xa6\x97\xf0\xdd\x2e\x7e\x3d\x1e\x45\xd4\x50\xe7\x0b\x5e\x74\x1f\xbd\x96\x45\x3f\x1f\x62\x6d\x01\xa6\xda\xa7\x3c\x8a\x12\x70\xe7\x97\xef\xd2\xef\xa8\x79\x14\x99\x8c\x64\x61\x93\x54\xd7\x58\xdf\x99\xfe\x8c\x10\xc0\x9c\xd7\x43\xf5\x23\xff\x55\xc1\x96\x47\x71\x9c\x21\x21\xb2\x84\x8f\x75\x33\x7b\x49\x31\xa7\x99\x08\x8a\x5d\x0e\x70\xe7\xd9\x0c\xeb\x4f\x85\x4b\xba\xee\x47\x11\x7c\x7e\x90\x3f\xfb\xa4\xc6\xe0\x0a\xca\x23\x9a\xc6\x48\x08\xeb\x96\x40\x49\x67\x23\x83\x47\x54\x0a\x9c\xfc\x6e\x5e\xd6\x49\x4c\xf0\xeb\x0f\x04\x0c\x1e\x51\xe5\xca\x20\x8e\x3f\x81\xb0\xbd\xdf\x94\x28\x66\xb7\xc7\x33\xae\xc9\x58\x0a\xa8\xaa\x37\xd7\x8b\x72\x7f\x3c\xe2\x32\x72\x42\x5a\x85\x6c\x9a\xf3\x10\x32\xf0\x28\x21\x06\xe1\x45\xdb\xf5\xea\x65\x75\x85\x77\x49\xfa\x63\x0a\xd0\xf7\xf6\xdf\x55\x5e\x82\xe9\xf3\x41\xcd\x3d\x94\xbd\x6f\x3e\x8f\xd2\x8c\x63\x4d\x0d\x33\xa0\x98\xb8\x1f\x02\xe6\xff\x33\xfc\x97\x84\xfb\x4e\xa5\x70\x2e\x63\x55\x37\xd2\x1e\xf2\x72\x50\x66\xe4\x51\x6a\xd2\xd4\x7a\x00\xfb\x66\xfd\xb4\xe0\x05\x33\x7b\x0b\x19\x15\x48\xf2\xfa\xb7\x53\xce\x18\xe4\x8e\x79\x94\x49\x57\x86\x74\xe1\xfe\x35\x94\xd5\xa1\xdb\xb9\x85\xb5\x9a\x47\x92\x70\xdc\x20\xff\xa8\xda\xde\x85\x35\x70\xef\x96\xaf\x26\x63\x48\x7a\xb6\x5f\x73\x2a\xda\x4b\x5f\xcb\xd0\x0d\xe2\xd0\x0f\x24\x13\xb8\xd8\xc1\x21\x47\xa7\xc8\x1f\x10\x80\x5e\xfd\xb4\xc4\x23\x99\x00\x72\xcb\xc0\xb1\x5b\x9d\x4a\xae\x17\x06\x32\x3f\xf2\x66\xb8\x69\x4d\x45\x1c\x44\xc3\xd6\xb2\x36\xfd\xd7\x32\xa9\x44\xc5\xb9\x35\x86\xe6\x45\xd5\xb6\xd5\x68\xd1\xe5\x91\xc9\xa4\xed\x06\xc8\xcd\xe3\xf5\x90\x62\xe7\x91\x51\x94\x3b\x90\xbc\x79\x96\xe7\x3e\xe7\xf5\x59\xfa\xe6\x02\xfc\x30\x5f\xcf\x78\x04\x84\x21\x10\xc6\xed\x14\xfe\x02\x59\x37\xdb\xbc\xd4\x30\x71\xb5\xe1\x11\xc4\x4a\x7b\xf2\xe6\xfd\xfd\xb7\x3d\x98\xbc\xdd\xc7\xf1\x78\x6f\xc4\x23\xa0\x49\x6f\x1a\xfd\xd6\x2d\x78\x93\x9e\x04\x2c\xc1\x3a\xff\x9f\x27\x53\x8d\xfb\xb4\x8d\x01\xb1\xe8\x36\xef\xde\x66\x01\x83\x58\xdd\x74\xfd\x5e\x9a\x7c\x79\x64\x95\x88\xcd\x04\xbf\x5a\xe9\x05\xa5\xaa\xe9\x43\x93\x28\xa1\x48\x00\x46\x3b\x96\xc9\x5e\x9f\x93\x48\x31\xea\x0a\xab\x5d\xd4\xec\xc9\xf4\xe1\x20\xa1\x04\x5d\xf2\xa1\x7d\x83\x1a\xb3\x96\xfd\x11\x95\x32\x8f\x87\xd9\x1e\xa5\x86\xe6\x2d\x3f\x3a\x95\x90\x5f\x45\xd9\x9c\xd0\x94\xa2\xe8\xc5\xf3\xa9\x86\x55\x5e\xff\x33\x62\x36\x27\x54\x0b\xe2\x09\x5d\x33\xe7\xe7\xe9\x0b\x22\xd4\xa8\x54\xf8\x28\x78\xdf\x76\xe1\x20\x8e\xfa\x55\x69\x36\xce\x90\xe0\xe6\x3f\xb3\x17\xc0\x19\x37\x83\x6d\x5c\x55\x1f\xdc\xbe\x30\x1c\x05\x86\xf7\x7b\x94\x28\x3e\xf4\x74\x6a\x5f\xab\x6e\xb3\x36\x60\x80\x46\xc6\x7c\xfe\x37\x82\x71\xf0\x48\x5e\xa7\x8e\xf2\x35\x9f\xd5\x95\x38\x49\x98\xa4\x64\x62\x9a\xb5\x85\xc2\x4e\xb3\x88\xa1\x69\x62\x63\xef\xf0\xdd\xeb\x64\x2d\x7f\x67\x49\x29\x84\x25\xeb\x5c\xc8\x8f\xa6\xcf\xc1\x3e\xe4\xe5\x73\xd5\xb4\xc7\x6a\xfc\x75\xa5\x20\x88\x55\xbd\xce\x2f\x01\x40\xb3\xd7\x2a\x0d\x0b\xe0\xe4\xc7\xd3\xe1\xba\x96\xaf\xbd\x30\x29\x27\x12\x64\xe2\x51\x45\xa8\x7f\xf9\x2b\x3f\x4a\xff\x13\x25\xc0\x7a\x71\xaa\x55\x51\x7c\xab\xfa\x8c\x17\x27\x4a\x51\xc7\xc1\xed\x82\xca\x9b\xd2\x34\x84\x87\x43\x3a\x72\xe6\xe5\xaa\x98\x88\xf7\x70\xa2\xe3\x04\xbf\x21\x82\x9d\xb1\xa0\xb0\x85\x76\x34\x75\x13\xcd\x18\x09\xa4\xaa\x1f\x52\x55\xed\x3c\x27\x1d\xda\x71\xe5\xf7\x99\xe6\x5b\xb0\x47\xfe\x8d\x62\x31\x27\x3a\x33\x08\xfa\xb9\xbe\xbb\xea\xcf\x23\x0d\xe6\x07\x77\x5f\x9e\xbe\x6e\x57\x8f\xd7\xfd\xdf\x75\x62\x9d\x44\x5e\x5e\x5e\x58\x0d\x71\x62\xba\x27\x19\x07\xe8\x8b\x32\x5f\xcb\x77\x61\x98\xb0\x74\x94\x0f\xc4\x25\x2f\x9c\x18\x84\xa2\x9e\x1e\x4c\xa2\x68\x04\xf4\xe1\x04\x80\x62\x56\xc3\x6f\x97\x27\xa3\xdc\x66\x10\x47\xbd\x0a\xd0\x93\x9d\x56\x7c\x78\x1c\x51\x89\x79\x17\xa7\x5a\xfb\x58\x39\x1f\xbc\x4b\xc0\xc8\x64\x30\xc7\x51\x06\x58\x58\x0c\xbc\x88\xd1\x6e\x9e\xc7\x44\x30\x96\x05\x32\xf2\xfa\xd4\xb4\x95\xc9\x65\xd9\x1f\x55\x1c\x23\x02\x69\xb0\xd0\x85\xb4\xc2\x3f\x66\x13\xce\xa4\xa7\xc5\xb1\x70\xb6\xab\xf7\xd5\x6b\x8f\x16\x5f\x7f\x6e\x3d\xcd\xe3\x58\x6a\x2c\x87\x8d\xf7\xd1\x83\x0c\xb4\x6f\x44\x69\x8a\x12\xe5\x41\x1a\xfc\x21\x2f\x7b\xab\x57\x1e\xd3\x8c\x62\xe1\xa0\xdf\x77\x3c\x56\x4f\xd6\x2d\x98\xdd\x38\x0f\xe8\x21\x1e\xf3\x18\x82\x6c\xd9\xc8\x81\xef\x93\x1b\xe3\x5c\xa2\x82\xcb\x23\xd4\x55\x38\x81\x60\xae\x3c\x1a\x50\x5a\xcd\x02\xf2\x8a\xc7\x82\x03\x4e\x48\xc7\xee\xac\x7b\x39\xe9\xf2\xb1\x30\x51\xe6\xb4\xbe\x71\xa6\x1c\x91\x99\x96\x32\xe7\x3c\x4e\x88\x45\x8a\xcf\x3e\xc8\xae\x7f\xdd\x5e\x2f\x5e\x35\x11\x09\xc6\x16\xd7\xf0\xe3\xe5\xf3\xa4\x26\x8f\x93\x94\x12\x9f\xf5\x75\xf5\xf0\xe9\x07\x4c\xb4\x13\xae\xf1\x50\xbe\xae\xeb\xba\x59\xf5\x36\x7f\x7d\x6b\xe3\x6b\x90\x33\x56\x13\x8f\x53\x95\xe0\x4f\xbe\x6f\xee\xaf\xc7\x61\x46\x9c\xa5\x8e\x58\xdd\xef\xa1\x9b\x7f\xee\xa8\xdb\x9f\x22\xb1\x7d\xf9\x05\x55\xed\x90\x40\xe2\xf6\x06\x2c\x9a\x2c\x7b\xcb\xda\x76\x3c\xce\x0c\x47\x52\x61\x8b\x60\xb7\x11\xd6\x8d\xc7\x52\xa8\xc0\xfe\xec\xe9\x42\xae\x60\x3c\xfb\x0c\x32\x31\xc2\xa3\x0f\x6e\x7e\xb6\xb5\x1c\x73\x63\x3e\x79\xd1\xd2\x38\x0b\xf7\xb2\x2a\x6f\x4f\xe5\x6b\xae\x0a\xf0\xf4\xec\x80\x44\x98\xc7\xf6\xe3\x4a\x33\x8f\x95\x70\x40\xbd\xa6\xfb\x50\x28\x21\x36\x95\x2b\x9e\x7d\x05\x1d\x39\xcc\xb1\xfc\x99\x43\xb3\xa8\x35\x31\xbb\x3f\xcd\x1d\x68\x53\x9a\x7f\x9f\x9a\x6e\xc7\x3c\xb3\x58\xe1\xb1\xd6\x16\x0b\x04\x7f\x6d\xfe\xda\xfe\x22\xf0\x8e\x8d\x24\xa4\x07\x37\x04\x6d\xc2\xb5\x3c\x3a\x49\xe4\xd0\x1b\x8c\xb2\x98\x1e\x38\xe6\xfa\xfd\xeb\xcb\x7d\xff\x67\xcd\x53\x8f\x39\xf9\xaf\x53\xde\xde\xcf\x61\x44\x3c\x86\xcc\xa2\x37\xd7\xa8\x08\x3c\xb5\x14\xfb\xe4\x01\xc1\x40\x3a\xb0\x07\x27\xc8\xfb\x49\x3b\x4b\x5d\xde\xa2\x05\x79\x58\x58\xcd\x62\x2b\xdc\x8b\xca\x9b\xe7\xba\x7a\xad\xe5\xc1\x1b\x1c\x4e\xc1\x7d\x3c\xb6\xa9\x0a\x6a\x5c\x57\x55\xf5\xee\x3b\xea\xd8\x09\x95\xd3\x6e\x23\x85\x69\xb0\x3a\xe4\xc1\x26\xcf\x4a\x49\x1a\x13\x27\x1e\xe3\x00\x1b\xdd\x4c\xf7\x2b\x43\x68\x4e\x89\x52\x18\x34\x76\xf1\xe4\x17\xd9\x2d\xe1\x21\xc3\xc5\x69\x4c\x68\xe2\xec\x28\x7e\xfe\x5d\x05\xa1\x12\x4e\x63\xce\x91\xc0\xd6\x9c\x86\x3f\x89\x18\x97\x96\xf6\xb5\xf6\x4f\xdf\x3c\xcb\xba\x1d\x4d\x4f\xe8\x26\x29\x1b\x78\x46\xb6\x67\x70\x24\xe0\x94\x65\x4e\xb1\x17\x13\x6d\xd7\xf0\x03\x8a\xea\x88\x86\xa5\xfb\xbe\x85\x72\x55\xa3\x89\xe7\x17\xcc\xab\x80\x9c\xf2\x88\xe1\x58\x7f\x3a\xc2\x38\x47\xc8\x29\x67\xce\x00\xac\x06\x03\x70\xb8\x04\x70\x71\xca\xb9\x73\x87\xd8\x37\x45\xd5\x05\x19\x8f\xf0\x31\x7b\xb1\xdc\xc4\xa0\xfd\x6e\x12\xe5\x2d\x3f\x45\xc1\x70\x2a\x24\x47\x25\xb1\x7d\x03\xed\xd5\xa9\x2e\x6f\x01\x21\x7b\xb3\x6b\x0a\x65\x71\x7f\x7a\x75\x3a\x6f\x9e\xef\xc2\xbd\x26\x51\xe6\x2c\xcb\x7b\xdb\xd1\x6f\xf2\x54\xfc\x16\xa5\x3d\xfb\xa8\x09\x49\x10\xcc\xda\x2d\x69\xdd\x1d\x2c\xcd\xf8\x34\x49\x29\xf3\x51\x62\xb7\xc4\x6a\xc0\x4c\xfa\xf7\x3c\x50\x83\xa7\x2f\x20\x8d\x53\x04\xd6\x06\xf8\xf8\x2a\x28\xfa\x70\x2a\x19\x20\x48\x14\xad\x57\x3c\x13\x6a\xa9\x73\xca\xcc\xe0\x26\xf9\xe6\xee\x6e\xbb\xdf\x3d\xed\xbf\xac\x76\xeb\x2f\x7b\xf2\x65\xf3\xbc\xdd\x05\xa9\x2a\x4e\x15\xcf\xf0\x5b\x1c\x11\x15\x49\x9c\x28\xef\xfe\x38\x0a\x82\xa8\x49\x1d\x11\xed\xe1\x7c\x2b\xf3\x7a\xf2\xad\x8d\x8d\x13\x7c\x7f\x27\x28\x66\x97\x87\xd4\x69\x03\xbd\xc9\xe6\xed\xdb\x43\xf8\x81\x15\xd4\x17\xb5\x4a\xd3\x67\xf2\x77\x95\x77\x90\x99\xbd\x32\x9b\x00\x32\xbf\xae\xae\xef\xc7\x57\x65\x31\xcd\x02\x90\xe2\x3a\x6f\x74\x90\xc5\x5f\xce\x06\xb1\x98\x33\x4c\x86\x38\xbe\x5d\x25\x1d\x6e\x68\x8b\x72\xae\xf3\xdd\xf2\xff\x88\xa1\x7f\x65\xbe\x83\x31\x4a\x40\x87\xdc\x81\x6c\x81\x52\x1a\x6e\x84\x66\xd6\x85\x28\xd5\x01\x82\x97\x05\x0b\x07\x59\x14\x3b\x1e\x51\xf5\x7e\x72\x11\xf9\xe4\x21\x18\x95\x38\x5d\x07\xe0\xf6\x6c\x7e\x62\x8c\x19\xa0\xa1\xbf\xe4\x18\x97\xcd\xc4\x36\x38\x63\xdc\x81\x97\xcb\xd3\x01\xd9\x29\xfd\x46\x81\xb1\x54\xf3\x3e\x41\x77\x2a\x07\xfd\x07\x7f\x5c\x10\x8b\x31\x5a\xd7\x65\xa7\x96\x47\xd3\xcd\x0d\x13\x2c\x46\x2d\x89\x43\x5e\xa2\x25\x4f\x2d\x3f\xd0\x57\x7c\x7a\x23\xc2\x50\x4c\x0d\xad\x4a\xd9\x56\x87\x5c\x7e\xf2\x29\x12\xaa\xdc\xc9\xbc\xd6\x7d\x95\x23\xb4\x70\x76\x6f\x89\x30\xa1\xfa\xe7\x61\x6b\xbb\xf3\xd1\xd5\xad\xe6\x22\xbd\x9c\x25\x49\x0c\x72\x70\xf3\xf6\x8a\xc9\x93\x88\xaa\xcf\x24\x0f\xe9\x64\xce\x12\x69\x31\x0f\x5a\xc8\xa6\xbd\xca\x4d\x5f\xa8\xe3\x2c\x51\x6e\x3b\xe0\x14\x7b\xb6\x08\x96\x0d\xa5\x49\xce\xd2\xd8\x86\x05\xf0\xa9\x74\x63\x78\xf5\xba\x2c\x14\xc5\x59\xaa\x35\x06\x05\xd2\xd7\x78\x31\x9e\x18\x57\xaf\x38\xcb\x14\xf5\x42\x73\xdd\x4c\x8e\xfc\xe0\xa5\x7d\x01\xcb\x8c\xb3\x50\x7e\x90\x67\x59\x3e\xd7\x55\x5b\xe9\xaa\x98\x0b\x8c\xcc\x2e\x2f\xa9\x41\xf9\x35\x54\xb5\x90\x75\x7b\x51\x8a\x1f\x35\xcd\x34\xe6\x74\x36\x87\x23\x48\xfd\x76\x40\xac\x20\x42\xf3\xcd\x67\x18\xd6\x69\x3f\x51\x44\x63\x39\x57\x9f\xea\x67\x79\xde\x75\x0f\xb2\x09\x2b\x1b\x53\x8a\x22\x30\xec\xb1\x52\x05\x34\x0d\x3c\xa9\x22\xef\xd7\x24\xa6\x40\x23\x72\xfc\x28\xcf\xaa\xd7\x46\xe5\x4c\xc7\x80\x50\x9d\x2f\x79\x3b\x89\x06\x26\x89\x90\x79\x50\xb6\x98\xf8\x60\x9a\x49\x2c\x8c\x5c\x57\x1f\xa5\xf7\x00\xfe\x63\x01\x2f\xcd\x99\xe6\x29\xc2\x7a\x57\xa6\xf9\x01\x65\x7b\x9a\xd0\x08\x39\xd3\x4a\x60\xcc\xb0\x7b\x83\x4d\x51\x9c\x30\x2b\x99\xf7\x07\x4d\x86\x29\xc6\x35\x6a\x4c\x4e\x7f\x67\x6d\xe0\xd6\x5e\x78\x92\xf8\x26\x40\x63\xad\xbd\x31\x4e\x79\x72\x8a\x46\x4b\x61\x6b\x68\x9e\x72\x8c\x82\x8a\xdc\x02\x52\x35\xe6\x23\x12\xb4\x41\xa8\xc3\x37\x79\x2e\xf3\x90\xf2\x65\x96\x08\xe1\x5d\xcd\x1f\xab\xf2\x58\x57\x36\xef\xa6\x50\xd5\x85\xfb\xdd\x37\x5f\xdc\xd5\x30\x4b\x24\x22\x1b\xbf\x6d\xbe\xad\x5c\x95\xd1\xad\x92\xb3\x56\x34\x43\x8c\x2d\x74\x5b\x8f\xb7\x5e\x73\x69\xd8\xf2\x86\x76\x2c\xc5\xa0\x49\x9d\xce\x7f\xe6\x4d\x73\xb5\x5b\x77\x8b\xe0\x5a\x16\x85\x92\x9f\x38\x59\x70\x1e\xc5\x4e\x49\xd0\xc0\xb1\xc5\xdd\x6f\x0d\xcd\xb1\x9a\xa9\x36\x71\x1e\x09\x86\x4c\xb4\xbb\xb2\x6a\xf2\x66\x1a\x05\x7f\x1a\x41\xf0\x28\xe5\x58\xd7\xc5\xec\x80\xcb\xc2\xfe\x11\x0e\x49\x89\x65\xb7\xab\xa7\xc7\xaf\xdb\xfd\x6e\x73\xf3\xb2\xcf\xf6\xf7\x9b\x87\xcd\xae\x6f\xa1\x5d\xbc\xab\x4e\xe8\xf1\x7a\x21\x89\xc4\x39\x21\x4c\x7b\xcb\x9e\x47\xd9\x93\xdc\xd2\xfe\xa8\xe1\xbe\x6f\xdc\x04\xc1\xa5\xf5\x48\x84\x63\xf6\x22\x48\x0c\x88\xe9\xbd\x69\xdf\x70\x07\xd4\x4d\x7a\xf1\xec\x2d\x90\x34\x65\x72\x0c\x26\xba\xcf\x51\x87\xd5\x73\x3b\xe7\xad\x55\x9a\xf9\x0d\xb0\x97\xe4\x1f\xc4\x6f\x39\x27\x40\x1d\x2a\x5c\xfe\x00\x74\x3c\x5d\xc2\xb4\x71\x1e\xc7\x29\xa6\xec\xca\xd3\x01\x33\xd1\x3f\x64\x31\xeb\x91\x3c\x4e\x29\xe2\x9f\xbc\x42\xd3\xd4\xe8\x24\xb4\xc9\x04\xf5\x41\xd2\x36\x6f\x3d\x4e\x6a\x59\x36\x88\x73\x1a\x99\x44\x07\xb3\x4d\xd4\x30\xbe\xaa\x01\x4c\x70\x96\xef\x1a\x0b\x16\xda\x72\xad\x7d\x51\x1d\xfb\xee\x62\x47\xef\xc2\x13\xcc\xb4\xbf\xc9\xda\xac\xe5\x31\x90\x34\xc2\x64\xcd\x99\x88\x10\x4e\x0c\x3f\x5d\x1a\xe9\xea\x74\xfe\xf5\xae\x86\x33\x23\x30\xdb\x21\x8d\xd9\x41\x39\x92\x25\xbf\x4c\x4b\xff\x7f\xfc\xb7\xbf\xa0\x93\x73\x71\xfe\xb1\xff\xff\x05\xb2\x5d\x67\x16\x2a\xf8\x5b\xfc\x09\xe7\x45\xfd\x66\xce\xb9\x36\x98\x4a\x1d\xb4\xf0\x16\x88\xe7\xc3\x5a\xcb\xb9\x01\xc4\xdf\x5e\x15\x52\xbf\x3f\x9f\x6b\x79\xc8\xfb\xfe\x25\x08\xc1\x2c\xda\xee\x79\x77\xa9\xc4\xc3\xb9\x60\x2a\x73\xf4\xde\x2e\x80\x9a\x96\x9a\x39\x17\x9c\x3b\x9e\x4c\xa8\x70\x8d\x00\x25\x9c\xa7\x02\x90\x44\x19\x56\xdf\x75\x75\x38\x9c\xca\xbc\xbd\xf8\x66\xa1\x7d\x42\x13\x27\xe3\x86\x98\x89\x55\x33\x20\x4b\xbb\x83\xc2\x8c\x15\xd5\xae\x6b\xe4\x64\x4e\x5f\x7e\xaa\x9d\x28\xab\xc3\x90\x5c\xc9\xd7\xd9\xd3\x64\xd6\xa4\xa9\x07\x12\x43\xe3\x13\xe0\x93\xd9\x40\x25\x36\x40\xf6\x57\x0e\xce\xd3\x33\x58\x3f\xf9\x18\x2a\x65\x58\xf5\xc8\x1b\xa4\xb3\x97\xf8\x92\xef\x2f\x16\x18\xae\x09\xc3\x33\x37\x47\xd0\xb9\x2c\x7c\xa5\x00\xcb\xa8\x9b\x3e\xa5\xcf\x35\xe3\x48\x9b\xbc\xd9\x3c\xc7\x91\xdf\x39\xf7\xc7\x32\x67\x6e\xe6\x9e\xee\x66\xf7\x65\xce\xd9\x9d\x64\x46\xe6\x7d\x4b\x83\x53\x25\x6e\xa0\xdd\x7d\x54\x21\x70\xfa\xad\x37\x6e\xff\x6b\x85\xa6\x17\xab\xe9\x06\x84\x9b\x28\x41\xf6\x80\x53\xcd\xee\x1e\x3b\xfe\x6d\x9f\xff\x9c\x8b\xc3\xb9\x49\x74\x70\x13\x96\x7e\xfe\xb9\x92\x0d\xbc\xcc\x95\x57\x38\x87\x48\xc4\xfe\x79\x36\xda\xd7\x97\x67\x2d\xa4\x0d\x10\xd6\x3d\x92\xbe\xf6\x36\x00\x70\x38\xb7\xb1\x8b\x32\xdd\xcb\xbc\x83\x32\x9a\xbd\xcd\xbe\x0e\xc9\x2d\x30\x14\x43\xcd\xad\x8f\x5d\xec\xa9\xd8\x42\x89\x54\xcb\x66\xd7\x2f\x55\x16\x04\x78\x1d\x32\x27\x6d\x71\x53\xb6\xc8\x73\x99\xe6\x0c\x45\x14\x4b\xc3\x07\x81\xe1\xbc\x3a\x35\x83\xbe\xec\x1f\xa1\x51\xa6\x1c\x83\xb7\x3a\x74\x41\xe0\xa4\xb8\x27\x88\x21\x38\x4b\xfb\x99\xdc\xd7\xc5\xa6\x51\xbc\x20\x46\x23\xf9\x12\x97\x94\x6e\xe5\xd8\xe8\xea\x6b\x63\xd6\x30\xe1\xd2\x72\x11\x83\xb3\xe2\x58\x5d\x7f\xdb\x6c\x9f\x5e\xb6\x63\xf5\xc8\x6e\xf8\xc7\xc8\xfc\xff\xd4\x30\x7c\x71\x28\x0b\xa6\xe3\x94\x05\x1c\x06\x6a\x7d\x53\x36\x7d\x06\x1e\x1b\x62\x43\x62\x15\x15\xe4\xc6\xa5\xc6\xe1\x4c\x9c\xe9\x2c\xc8\x63\xc1\x41\xb9\x4c\xf7\x4b\x75\xc1\x38\xe6\x42\x50\x82\x65\x38\x6f\x0a\xe5\x50\x37\xe1\x98\x70\x2c\xe0\xdd\xcd\xea\x21\xd4\x7d\x45\x42\xe3\xcc\xb9\x1c\x38\xc6\xd3\x58\x3c\xb6\x3b\x6a\x31\x28\xb1\x55\x51\x54\x1f\xbf\x2e\x41\x89\x2e\x7a\x87\x81\x2f\xbe\x0f\x9b\x50\x21\xd3\x0c\x6d\xb4\x90\x82\xee\xf4\x89\xa7\xcf\xa7\x28\x41\x6b\x07\x87\x40\x71\xa9\xcb\x41\xd9\x64\x71\x99\x14\x2a\x31\xb8\xc6\x6c\xf3\xd7\x32\xac\x91\xf3\xd3\xaa\x4c\xeb\x90\x4c\x2e\x9b\x39\x98\x94\x0b\x1d\x91\x94\x84\xf9\xb4\xce\xa1\x19\xeb\xa7\x71\xa1\x99\x03\xbf\x7e\xaf\x2a\x33\x86\x58\x72\xa1\x85\x32\xbd\x20\xeb\x4b\xd7\x37\xa7\xdd\x5b\x27\xc4\xb8\xf9\x70\x15\x90\x71\xfd\x4f\xd3\x2c\xf6\x85\xb5\x2e\x54\x7b\x39\x15\x30\xff\xdc\xda\x38\xcf\x97\xeb\xd3\xe1\x70\x7e\xfa\xf6\x34\xb9\xb4\xd1\x49\xea\xf9\x50\xdf\x65\x5d\xe7\x55\xdd\xcc\xc1\x23\xc2\x80\x1b\x1b\xb7\xab\xe7\x5b\x94\xcc\xc2\x6f\x4b\xfb\x53\x80\x44\x81\x49\xac\x70\xcb\xd7\x69\x9f\x84\x94\xb9\x08\xba\xd6\x71\x34\x85\x33\x86\x16\x2a\xc6\x87\x6f\x4e\xea\x90\xb7\xa3\x42\x6b\xb7\x32\x6e\x03\xe4\x6e\x39\xf0\x9d\x66\xdf\xff\xe7\x7f\x07\xa3\xc0\x99\x65\x20\x17\x60\x12\x67\x72\xe7\x43\xb5\x00\xe3\xe2\xc2\xd2\x08\xe5\xe8\xbf\xbf\xc9\xf6\xbb\x6c\x1e\xce\x08\x74\x9f\x7c\x81\x24\x22\x1c\x39\xb4\xb8\x81\x6e\xde\xfe\x58\xd2\x91\x9d\xa2\xdb\x79\x42\x04\xe0\x0e\xc9\x15\x32\x10\xef\x3c\x1f\x60\x09\x51\xd2\xa2\x89\x71\x7e\x38\x16\x30\xb0\x9c\xfe\x51\x60\x94\xc4\x40\x71\x07\xd1\xe8\x85\x5d\xf0\xaf\x57\x9f\x84\x1a\x86\x75\xb2\xbe\xd4\x15\xd6\xe4\x67\x67\xb3\xb5\x5c\x6f\x4f\x98\x71\x1c\xd3\xa6\x94\x79\x71\xf0\x9e\x6d\xff\xf1\xaf\x32\xe1\x11\xf7\x4a\xa9\xde\xae\x63\xf9\xda\x9c\x38\xf6\x9b\x77\x17\xc0\x05\x7b\x6c\x11\xc0\x13\x11\x51\x04\x11\xa2\x6e\x75\x1f\x2d\x9c\x2e\x8c\x3a\x3e\x63\x82\xf1\x44\xd0\x04\x77\x28\xdb\xb7\xea\x78\x0d\x3f\x1d\xc2\xb8\x3f\xbd\xd0\xda\x09\x4c\xb8\x82\xdd\xa7\x1c\x80\xa5\x1d\x75\x92\x80\xc5\xc0\xfb\x7a\x73\xb7\x09\x67\x4c\xac\x45\x00\xd4\xa9\xac\xd0\x2e\x49\x16\x5d\xe8\xd2\x75\xdf\xaf\xc7\x5e\x78\x86\x27\x29\xe5\xbd\xc2\x63\xd5\xb4\xa8\x3b\xb1\x31\x63\x42\xa4\xbb\xe2\xe5\x8e\x2e\x49\x13\x8d\xd4\x01\x28\xf5\x68\x2b\xb5\xd0\x30\x13\x32\xee\x9d\x17\xd6\x45\xd5\xf8\xdd\x43\xa8\xf2\x26\x99\x26\x98\x5d\x3e\xca\x73\x9f\x2e\x6f\x50\xe4\x60\xfa\x9c\x99\x56\x06\xc6\xf4\xf7\x5f\x65\x4b\x12\xa9\x89\xce\x06\x57\x87\x53\xbd\x14\x41\x4f\xfb\x81\xa2\x71\xec\x97\xb4\xa7\xd5\xcb\xec\xea\x8a\x27\xc8\x7e\xff\xcf\x7f\x4e\xf9\xdf\x1f\xa8\x5a\x35\x9e\xb9\x12\x95\x18\xeb\x75\x0e\xef\xf3\xb6\x2d\xc0\xa1\x14\xee\xf2\xba\x08\x16\x8f\xa1\xa5\x4c\x70\x0b\xf4\xb0\xfa\xd7\x7e\xfd\xf4\xb8\x7b\xd9\x5c\xed\xd7\x5f\x6e\xd6\x7f\xee\x6f\x1e\xaf\x47\x14\x5f\x9e\x28\xad\x62\x37\xc5\x3b\x03\x9f\x5d\x7d\x6a\x5a\x30\x2e\x65\xa7\xcf\x8b\x48\x6c\x9e\x68\x4d\x30\xd1\x74\xf3\xd3\x0d\xf5\xbb\xdc\x4e\x68\x15\x3c\xd1\x86\x63\x6a\x72\x34\x7d\x7e\x32\xbe\xb4\x37\xb8\x1f\x4b\x80\xce\x2f\x67\x1d\x49\xe0\xad\x3a\xc0\xb5\xcc\x83\xfc\xbd\x3f\x6a\xa8\x4b\x7e\xaf\xd7\x5f\xf6\xf7\xf7\xdf\xf6\xb7\x9b\xdb\xd5\x9e\xf4\x47\x99\x46\x52\x5d\xfb\x56\x57\x1f\x5b\x5d\xcb\xe3\x6c\xb5\x48\x40\x48\x54\xd6\x34\xe0\xaa\x2d\x53\x0a\xe9\x27\x1f\xd2\xb2\x54\xf8\xc2\xd3\x23\xfc\x6c\x03\x7e\x6d\xf0\x46\xe0\x89\xe5\x0c\x9c\x08\x4f\x09\xed\x9b\xbc\x93\x2d\x7c\xc8\xf3\xf2\x5b\x48\x23\x2e\xa8\x1e\xd9\x07\xff\x31\x52\xea\x1e\xed\xc2\xd2\x48\x25\xa1\x94\x8c\x1c\xc1\x6b\x75\xf6\x72\x11\x93\xfb\x4b\x23\x50\x21\x59\x75\x0b\xbd\xa4\xfd\xb4\x0d\x21\x11\x62\x20\xbd\x7c\xc7\xf6\xed\xd4\x9a\xea\xa3\x9c\xb7\x32\x1a\xa3\x9e\x6d\xa5\xf3\xab\xfe\xad\xa7\x71\x94\x05\xe9\x76\x1f\x9c\x91\xa4\x3f\x26\x75\x00\x98\x6f\x74\xb5\x29\x6d\xd5\x1f\x51\x09\xae\xeb\x4f\xf5\xcf\x31\x0c\x23\x8d\x81\xf3\x31\xe9\xf4\xea\x93\xed\x5d\x4a\x89\xdb\xbc\xbf\x06\xf7\xd7\x71\xc0\x97\x86\x46\x59\x42\xc9\xc8\xf2\xf0\x93\x40\x68\xf6\x09\xa8\x22\x8e\x18\xe0\x51\x3e\x78\xdf\xbf\x4c\x0c\xa4\x82\x28\xe2\x13\x12\x5f\x4b\x85\xe5\x0f\xe3\xfa\xe6\xe5\x06\x3a\x15\xdd\xa0\xc0\x42\xc8\xf6\xa1\x1d\x8d\xeb\x54\xa8\x38\x08\xd1\x0c\x9b\xf1\x59\xc2\x36\x34\x85\x04\xf7\x7f\x1e\xc3\xf8\x02\x4d\x75\xaa\x67\x64\x21\x9e\x26\x0a\x30\xf7\xae\x21\x5f\xd6\x09\xe0\x69\x02\x06\xab\x5d\x45\xa5\xdf\xa7\xda\x0b\x3c\x4d\x55\xac\x1d\x36\xb6\x3a\xce\xfb\x55\x96\x69\x64\x3d\xb9\x04\x1b\xb2\x11\xbc\xda\x41\x88\xfa\xd2\x4c\x27\x31\x1f\xbc\x72\x46\xd4\x71\xdf\x40\x6a\x27\xb6\x35\xc1\x9e\x4c\x87\x7c\xaa\x13\xce\x1d\x48\x46\xe6\xe5\xe6\x7a\x0b\x7d\x85\x35\xd5\x60\x28\x1f\x81\xb1\xa6\x3f\x04\x46\x94\xb3\x99\x3e\x54\xf3\xc8\x2b\x05\x9e\x22\xc8\xeb\x05\x0e\xf2\xb8\x39\x1c\xab\xba\x05\xf3\x58\x75\xe7\xe9\x4f\x6f\x53\x86\x9b\xe7\xef\xbb\xdb\xf1\xec\x9b\x5a\x19\xdb\xc0\xe8\xa8\x6b\xe9\xf0\x04\x13\x86\xf0\xf2\x32\x91\x45\xd4\x99\x93\x60\x27\x59\x5e\x2b\x27\xef\x27\x8b\x52\x6b\x3d\x94\xc9\x0b\x37\x54\x4d\xfb\xa5\xaa\x7e\xcd\xc1\xe6\x59\xac\x1c\x7b\x67\x5f\xcb\x1e\x80\x93\x31\xe5\xbc\x1d\x9d\xe8\xcc\x58\x10\xcb\x37\xe0\x31\xc3\xa1\x57\xc2\xc7\xc2\x87\xc8\xb8\xce\xec\xa5\x52\x7d\x38\x68\x53\x45\x42\x2c\xee\x10\x10\xcf\xba\x7d\xb2\x57\xd0\x8e\x84\xee\x78\x26\xb2\x34\xa8\x6b\x3f\x56\x2d\x34\x23\x13\x1c\x9e\x09\x93\xc1\x18\xf1\xd9\x73\x98\x7f\xb9\x5b\xca\x92\x24\xc2\x94\xeb\xb5\x6c\xe5\xcd\x7f\x4e\x33\x03\x7b\x9e\x25\xa0\x70\x10\x40\x9d\xeb\xd3\x7b\xfe\x7b\x2d\x46\x9e\xa5\x34\x46\x14\x51\x40\xc3\x35\xf7\x88\xfa\x0a\x37\x9a\x32\xc0\x35\xed\xbb\xfc\xd1\x3d\x82\xcf\x43\x8d\x3b\x49\x96\x25\x04\xd1\xd8\x7e\xfb\x78\xeb\x14\x46\xfb\xa3\xc6\x4d\x5e\x58\xc4\x74\xf4\x75\x9b\x7f\x4e\x47\xb8\xb0\x55\xfc\xa7\xff\x4e\x1e\x4a\x26\x0e\x29\x92\x6b\x27\xe0\x12\xdf\x94\x0e\x22\xee\x8f\xab\x2c\xc1\xdc\xb0\xeb\x20\x21\x7f\xb1\x38\xfb\x66\x4a\x59\x1c\xfd\xb6\xa8\x64\x37\x9b\xf6\xe7\xd0\x3a\x09\x25\xb2\x8f\x50\x8a\xf0\xbc\x90\xef\x6f\x50\x3e\xcb\xc1\x7c\x80\x67\x5a\xeb\xc4\x57\x7e\x1d\xf0\xe7\x5b\x5e\x9f\x1a\x07\x34\xfb\xe4\xc2\x86\x28\x3d\x50\xc9\xef\xc1\xb6\xd3\x88\x27\x33\x92\x61\xa1\xb5\x87\x0d\xcb\x3a\x6f\xcf\x03\xaa\x6d\xda\x37\x20\xe6\x58\xe7\x7a\xcd\x7f\x80\x37\x1e\x79\xa8\x6a\x70\x28\xcd\xe5\x3b\x80\xc4\x15\xe2\x5f\xa1\xbd\x39\x56\xfa\x0d\x29\xe3\xd3\x26\x96\x27\x58\x13\x09\x52\x65\x7d\x9e\xe7\x37\xe3\xd6\x0a\xea\x5c\x0f\x70\x33\xec\xa9\xee\xb3\xa1\x26\x23\x42\x21\x38\x5b\x97\xcd\x05\x55\x43\x46\xa9\x45\x51\x30\x0c\x0e\x0f\xb9\xf7\x09\x1a\x88\x02\x32\xca\x2c\x7a\x98\x84\x92\x0e\x89\xc3\x7e\x56\x92\x48\x61\x19\x55\x9d\x6a\x97\x03\x1a\xa5\x80\x24\x61\x14\x6b\x96\x18\x78\xbd\x54\x79\xff\x77\x2e\x30\x4d\xda\x6d\x5d\x7f\xe4\xed\x79\xe4\x29\xc4\x25\x49\x24\x91\x03\xe4\x2e\x88\x5f\xa4\xff\xc3\xc2\xf3\x10\x1d\x23\x4d\xf5\x79\xfb\xb0\x47\xfb\xab\xf0\xd3\x38\x4e\x30\xd9\xb1\x7a\x5e\xf7\x7f\x62\x0e\x6a\xd2\x06\x6e\x50\xf0\x74\xee\x1b\x08\xb7\x2c\xe6\x0d\x26\xcd\xea\x03\x98\x3e\xcb\x3c\x7d\x4d\xb1\x30\x89\xe9\x61\xb9\xcf\x50\x1d\xfb\xcc\x82\x8c\x8d\xc1\xd5\xfc\x4d\x36\x4e\xd7\xbb\x3f\x60\xdd\xa3\x9a\xaa\x0c\xf9\xc4\x69\x87\x92\x34\xd2\x94\x4e\x1d\x9d\x3f\x4b\xbc\x48\xca\x9c\x52\x90\xc9\x1b\x8c\xb6\x2f\x0e\x5b\x26\x87\xfc\xc6\xf6\x74\x98\x05\xac\x92\xa6\x02\x17\xc0\x1f\x48\x6f\xbc\xe9\xe7\x7a\xc9\x32\x1b\x43\x5f\x36\x78\x96\x17\x97\xe6\x31\xc7\x8c\x5a\xc0\x1b\x05\x2a\x84\x3f\x9c\x50\x8e\xd1\xd9\x51\xd6\xed\x80\x09\x9e\x4c\x82\x32\xb5\x0c\xaf\x81\xeb\x41\xbf\x23\x9b\xdc\x9f\x14\x24\x1a\x29\x5e\xf7\xaf\x51\x0a\x70\x6a\xfb\xb5\x2c\xdb\x99\xd2\x2e\x97\x41\x2d\xa2\x69\xab\x5a\xbe\xce\x40\xfc\x52\x5a\x67\x99\x8d\xe3\xbb\xdb\x0e\x5e\xa8\xaf\x4d\x07\x95\x54\x91\xc6\x44\x9e\xcb\x5c\xd6\xd5\x0f\x28\x2f\x43\x60\xa9\xa4\x83\xbe\x38\x5b\xc9\xd9\x1d\xe9\xd8\x06\x97\xe5\x7b\x34\x1e\x1b\x45\xf7\xd2\x98\x0c\xbb\xdc\xf6\x98\xbf\xf7\x7f\x84\x48\xe0\x2f\xec\xa9\xd4\xfb\x88\x45\x57\xfd\x81\xd8\x12\x07\xff\x2a\x9d\xd1\xc0\xf0\xd2\x41\x18\x5c\x1b\x9f\xac\x85\x6e\xda\x7e\x3a\x8e\x4c\xae\x67\x0f\x65\x19\xc1\x41\xe3\x3e\xf0\x0e\xe4\x0c\x48\xa1\x22\x92\x82\xd3\x18\xdd\x9e\xd4\xbf\xd1\x23\x3f\x6f\x60\x27\x8f\xf3\x76\x99\x44\x04\xd9\xf5\xe6\x5b\x18\x65\x8a\xc4\x2e\xd0\x2f\xe4\xa9\xd4\x33\xc0\xa9\x22\x2c\xa6\x83\xe6\xf0\x00\x64\xea\x0e\x84\x84\xb5\x1f\x94\x0e\xec\x3c\x89\x48\x55\x6c\x1d\x70\xeb\x15\xda\xef\x58\x5a\x06\xe3\xea\x26\x2e\x1d\x3b\xbb\x18\x25\x06\x5f\xe3\xe1\x3c\xda\x3b\x28\x9a\xb9\x84\x03\x6e\x68\x57\xeb\xdd\xe6\xeb\x43\x7f\x48\xb3\x78\x20\x17\xbb\x2b\xcc\xcf\x09\x8e\xcf\x7b\x57\xc9\x22\xc8\x7d\x2f\xbe\x64\xc5\x18\x45\xd4\x16\xe8\xaa\xf4\xc8\x2c\xaf\x31\x11\x1a\x28\xc5\x83\x00\x81\x1f\x48\xe1\x10\x27\x89\xd3\x12\x36\x66\x2b\xed\x27\xe5\x5f\x25\xd2\x98\xd9\xc1\xad\x01\xea\x05\x0d\x8b\xae\x95\x93\x4b\x7d\x7e\xd9\x7c\x5b\xed\x6e\xf6\xdb\xdd\xea\x0e\xff\xfb\x12\xca\xd6\x2a\xa1\x86\x06\x24\xb7\x23\x86\x3f\xc2\xc7\x0b\xfc\xc8\x47\x64\x0d\x95\x70\x45\x9c\x50\x41\xf5\x5a\xc0\x24\x43\xab\x52\x41\x30\x59\xe9\xb8\x31\xeb\x6e\x17\x10\x22\x80\xd0\x42\x0b\x9c\x8e\x30\xb7\x82\xce\x27\x4f\xfd\xe5\x53\xe3\x6c\xb1\x30\x8b\xd7\x9d\xa0\xef\xdb\xe3\x08\x44\x65\x31\xd5\x32\x98\x6f\xf6\xf2\x1f\xd3\x0e\x92\x31\x4e\x9d\x4a\xa3\x3a\xbd\xee\xff\x7d\x32\xaf\x7d\x17\xfa\x1f\x42\xff\x77\x0e\x7d\x5f\x4a\x7c\xce\xc3\xa5\xff\x61\x43\x23\x12\xfd\xef\xe8\xcf\xe1\x9a\xda\x19\xc1\x3f\xf5\xec\xd7\x91\xc3\xda\xaf\xf2\xae\xa1\x20\xad\x32\x2b\xa2\x64\x1c\xa9\x77\x27\xba\x3b\x49\x9c\xe0\xc2\xac\xa0\x64\x14\x61\x71\xc4\xbd\x14\xa7\xff\xf9\x58\xd5\x07\xb7\xd1\x9f\xbc\x2a\x99\xb9\x5c\x84\xeb\x19\xf9\xe1\x74\xf8\x72\x36\x75\x85\x06\x6a\x9f\x4c\x0a\x4a\xea\x38\xf4\xb9\x4f\x6c\x0f\x7d\x43\x95\x18\x8c\x5f\xa5\x8b\x1f\xc2\x5f\xd3\x18\x33\x0a\xdf\x77\x4f\xc3\x9f\x20\xce\x3c\x7d\x21\x2f\x4f\xd5\xa9\x19\x7c\x5d\xb8\xea\x7a\x3f\x56\x64\x4b\x8d\x5a\xd4\x57\x27\x6b\x9f\x7b\x3b\x8f\xd0\xca\x68\x26\x83\xfc\x0d\xee\x2e\xf7\x3f\x88\xe8\x0f\x1a\x57\x10\x96\xc6\x3c\x95\x4f\x25\x38\x74\xeb\x2f\xa3\x24\x65\x80\x22\xa1\x66\x2b\x8d\x29\xe0\x79\x3e\x67\x40\x6c\x23\x77\x78\x92\x57\xfe\x2d\xe8\x28\xfc\x3c\xb5\xe0\x5c\x70\x30\x7e\x08\x34\xa4\xd5\x7c\x1a\xb1\x99\x40\x7c\xfd\xff\x7d\x7a\x9e\x1f\x01\xce\xcd\x80\x61\xbb\x3a\xdf\x1c\x64\x5e\x4c\xbb\xb9\x8e\x12\x8e\x38\x93\x5d\xa0\x62\x8d\x88\x73\x3a\xca\x6c\xec\x40\xf3\x47\x44\xc0\x8d\x19\xd0\x5c\x93\xc8\x79\xfe\x1f\xe5\x79\x55\x9a\x2f\xb2\x34\x0b\xda\x60\x93\x5b\xd2\x84\x1b\x14\x43\x06\x9f\xa6\x7b\x91\xed\xcc\x57\x91\x6b\x2a\x98\xd7\x8f\x72\xe8\x67\x24\x69\x4d\x6f\x9a\x26\x8e\xaf\xe4\xeb\x52\x4b\xd4\x76\xae\xa9\x52\x22\x68\x6c\x37\xaf\x21\xef\xac\x19\x50\x57\xeb\x80\xd2\x6c\x9d\x0d\xf4\x71\x90\x27\x9b\x9e\x82\x53\x6d\x89\x8f\xca\x7d\x00\x36\xdb\x09\x85\x86\x90\xa1\xeb\xe3\x21\x3f\x78\x9c\x8e\x60\x93\x81\xa9\x05\x8b\x42\x5d\xd7\xc1\x60\x9b\x0b\x46\x6c\x1a\x9a\x72\xaa\x24\x72\xc4\x7e\x74\x5f\x44\xf6\x4b\x9b\x4e\x52\x27\x8a\x59\x43\x5b\x9f\x9f\x6a\xa9\xbb\xf1\x3a\x93\x80\x0e\x4d\x65\x86\x4b\x42\x98\x48\x6e\x4f\x45\xe1\x93\x6e\xb7\x75\x75\xb8\x92\xe5\xfb\x34\x64\xd5\xa9\xa1\x18\xd0\xac\x77\x0f\xfd\x9f\x2c\x63\x5e\x3f\xa1\x47\x89\xeb\x8c\x3b\xaa\xb7\xe3\xbc\x62\xb6\xa7\x79\x72\x76\x43\x53\x96\xe0\xf8\x99\x32\x63\x70\x87\x75\xb7\x7e\xfa\xd7\x3f\x1c\x01\x5a\x12\x81\x7c\x6b\xbc\xcb\xbd\xa9\xca\xa1\x90\xac\x55\x0c\xde\x71\xc0\xd6\xd0\xbc\x05\xfb\x14\x4f\x29\x1d\x85\x45\x5a\x79\xfd\x6d\x97\xfa\x1b\x74\x84\xbb\x23\x20\xe3\x90\xe7\x2d\xf5\x1b\xfa\x37\xce\xf7\xfa\xa1\xad\x14\x21\xaf\x70\x1b\x20\x65\xfd\xa1\x24\x76\x80\xe8\xfb\x11\xc2\x49\x2b\x9d\xa6\x3d\x24\xfe\xeb\xf6\x1a\xe3\x9e\xfe\xa8\xa6\x04\xc9\x71\xa6\x9a\xe5\xa2\xc3\x71\x4e\x74\xec\x85\x89\x3d\x9a\xb9\x8b\xad\xc2\x51\x61\x95\x5b\x02\xab\xc3\x24\x23\xaf\x75\xe6\xe0\xbf\xe8\x8f\x33\x86\xda\x4c\x4f\x6f\xa4\x95\x81\xed\xf0\x54\xc2\xb7\xaa\x38\x0d\x6f\xcc\x0a\x82\xf4\x84\xa3\x3c\xbf\xc8\xf7\x59\x80\xaa\xad\x01\x1d\x70\x76\xdf\xbf\x4c\xf4\x54\x5d\x0b\x13\xc5\x1a\x01\x32\x6e\x88\x3f\x38\x50\xee\x20\xcb\xd5\x74\x81\xfc\xc7\x5c\x10\xc0\x90\x24\xc5\x5d\x5d\xd8\x0d\x4e\x22\x1c\x43\x32\xd9\xfb\x72\x76\xaf\x2b\xaf\x46\x00\xae\xd0\x46\x81\xe3\x8d\xd6\x88\xea\x75\x32\x56\x63\x50\x80\xa1\x8a\xa3\x4a\xd9\xb1\x2a\x72\x7d\x1e\xd8\xf1\xfe\x30\xe3\x86\x3a\xad\x5d\x34\x2f\x6f\xc2\x9c\x61\x38\x31\x24\x9b\x52\xeb\x6f\x76\x5f\x66\xd4\xf0\xd0\x96\x31\x05\x97\x6a\x85\x5f\xcb\x36\xff\xcd\xb6\xdb\x70\x9e\x61\x32\x63\xa7\xaa\xea\xfd\x77\x2e\x53\xdc\x70\x9d\x25\xde\x9f\xff\x33\x73\x88\xe9\x34\x65\x38\x08\x4c\x43\x7b\xa3\x15\xbc\x44\xef\x1d\x3a\xa2\x9f\x1b\x41\xbc\xdd\x22\x4e\xf8\x8f\xfd\xe0\x37\x82\x6a\xd4\x28\x7a\xb9\x79\x58\x6d\x1e\x37\x8f\x77\xfb\xed\xd7\xe7\xe7\xfb\xbf\xc2\xf1\x84\x18\x9c\x31\x9d\xc3\xdb\xcf\xe7\x42\xb6\xdd\xa2\xd2\x1f\x4e\x00\x53\x64\x38\x03\xa2\xfe\xcc\xc8\xf5\x9e\x9b\x34\x62\x1c\xa7\xd1\xbd\x01\x67\xc3\x17\x8e\x48\x42\xb2\xb8\x97\xf3\xbc\x95\x27\x3d\x53\x46\xe1\x46\x4a\xbf\x60\xca\x63\xde\xca\xc2\x8d\xb7\x9d\xac\x5f\x87\x5e\x24\xb5\xc1\x2d\xd2\x02\xc1\x7f\x75\x6a\x97\xcd\x6c\xb9\x51\xb1\x41\xfd\xd4\x67\x79\xae\x4e\xed\x7f\x9d\xe0\x04\xdb\x01\x84\x61\x54\xec\x8c\x3d\x9e\xab\x40\x39\x35\x9a\x3a\xdb\xff\x06\xda\x6e\xc2\x59\xdc\x75\x1b\xed\xb9\x7a\x70\x38\xb6\xe7\xed\x5b\x7e\x5c\xcb\xfa\xd5\x89\x02\xf6\x1f\x4c\x2b\xc5\x65\xbf\xc9\xf1\x5b\x93\xd9\x69\xc0\xb9\x39\x99\xc1\xa7\x16\x8b\xe7\xe1\xb0\x75\xe4\xb6\x6f\xdd\xac\x76\x40\x98\x70\xb7\x75\x0c\xb3\x8e\x6f\x65\x88\xc5\x81\xa1\xa0\xdd\x57\xe5\xbe\x9b\x16\xfa\x82\x95\x31\x31\x61\xc1\x37\x57\x16\x70\xdd\x6f\xa6\x02\xa1\xc9\x18\x95\xb8\x75\x62\x44\xa1\x7d\xae\x9a\xb6\x7d\x75\xfe\x5f\xcb\xef\xd5\xd8\x04\xa3\x0b\x93\x37\xdd\xf4\xed\x94\xf1\xaa\xf9\xf3\x01\x4b\x31\x8d\x84\xbf\x6d\xda\x7a\x02\xc0\x34\xc0\x2c\xae\x2b\xc5\x49\xbf\x9f\xbb\xa0\xb7\x96\xfa\x1d\xea\x40\x3b\x32\x00\x14\x05\x83\xff\x73\x82\xfa\x1c\x23\x7a\xf8\x4e\x36\x13\x65\xc0\x7f\xa0\x86\x62\xc0\x4a\x9c\x9c\xba\x8e\x73\x33\x64\x95\x8c\xe5\x11\xee\x22\xdb\xfc\xb8\xaf\x87\x14\xa6\xb1\x9c\x60\xca\x08\x45\x8a\x2e\x44\xfb\x38\x44\x91\x93\x82\x53\xf0\xf7\xb1\x2a\xc6\x33\x38\x44\x2c\xc2\x95\xc6\x4d\x98\x70\x41\xa0\xf8\x3f\xb3\x33\xf1\x08\x7c\xd9\x6f\x7f\xf4\x92\xe2\xfb\x6e\x9e\x9a\x1b\x84\x76\x4d\x19\x8a\xda\x3c\xa0\xbd\x74\x7e\x3a\x4c\xaf\x9b\xd2\x58\x87\xf5\xaa\xdb\x04\x4e\x82\x3d\x20\x22\x65\x01\xb9\x75\x6a\x61\xbb\x1c\xfa\x03\x65\xcc\x26\xc1\x31\x78\x98\xf3\xbb\x51\xb0\x90\xa5\x02\x2a\x34\x2e\x73\xb6\x17\xea\x1f\xdb\xbd\x71\xa0\x36\xe2\xbe\xeb\x05\x71\xd5\xd9\x43\x31\x02\x68\xe4\xe6\x4d\x83\xe6\xa5\x0b\x60\xd4\xa9\xae\x20\x8b\xeb\x7c\x09\xa7\x03\x2e\x12\x1c\x20\x3e\x45\x55\x57\x95\x1d\x61\xe5\xfe\xcf\xe2\xff\xfc\xf4\xc0\x3f\xff\x9f\xe4\x7f\xc3\xf5\x13\x8b\x3b\x66\x9f\x48\xae\x5e\xab\xaf\x75\xb1\x0c\xca\x04\x9e\x45\x88\x14\xba\xab\xab\xd3\x71\x1f\xb2\xa5\xc0\x3d\xb5\x64\x0b\xfa\x54\xe7\xed\x79\xbf\xea\x36\x5e\xce\x7f\x63\xfb\x26\x69\xd7\x01\x77\xd5\x38\xe4\x9b\x9d\xd6\x24\xe0\x1d\x81\xda\x55\x51\xcc\x33\xbd\xc0\x6d\x94\x0e\x02\x1e\xdf\xba\x17\x95\x83\xd9\x8e\xf2\x53\x4b\xca\x34\xd3\x52\x06\x08\x12\x87\x8e\x7a\x95\xd7\xed\x1b\x0a\x55\xf7\xc7\x14\x6e\xe9\xbd\x15\xa4\x2f\x52\x0c\xe9\xea\x59\x86\x0a\x04\x81\x50\xc0\xda\xcb\x5a\xe5\x6d\xb3\xff\x98\x13\x20\x16\x10\xc3\x20\x52\x4e\xe7\x56\x89\xb3\x1e\x99\x18\x86\x4e\xbb\xeb\x75\x48\x43\x41\x9a\x44\xca\xcd\xb0\x56\x9e\x8a\x76\x3c\xd0\x21\x23\x94\x25\x43\x79\x25\xff\x1b\x43\x0f\x17\xbb\x4c\x13\x86\x90\x65\x0a\x06\xbd\xe9\x2f\xf9\xeb\x1b\x34\x0e\xd4\xd1\xec\x97\x59\x52\x90\x29\x13\x8f\xb5\x1a\x7f\x59\x2e\x06\xa9\x5d\xfd\xc9\xc5\x5d\x58\x69\x58\x5c\x79\x40\x09\x12\x4c\x46\x7d\x03\x44\xcd\xff\xca\xe3\x96\x83\x66\x24\xf8\xd8\xb8\xb8\xe1\xc3\xcc\x82\x56\x30\x5c\x23\x2a\x02\x5d\x8a\x57\x45\x2e\xfb\x67\x37\x06\xa0\xb7\xd3\x1b\xb3\xa8\x2e\xb1\x33\x60\xac\x48\x8d\x7f\xa5\xdf\xc0\x31\x0c\x9c\xc1\xb7\x6f\x00\xb1\xc3\xa2\x7b\xe8\xd2\xae\x9b\x26\xeb\xdb\x7c\x14\xb4\xcf\xcc\x32\x38\x58\xe6\x6c\x5b\xec\x3e\x48\x35\x84\x93\x59\x2e\xb1\x6f\xdf\x41\x7d\x90\xa8\x1e\xf8\xc9\xdb\xb5\xd2\x89\x1a\x34\x4e\xd9\x7f\xf6\xe8\x56\xb9\xc5\xdc\xe6\x45\xb1\x7b\x83\x91\xec\x10\x58\x1b\x61\x38\xfd\x26\x6b\xa3\xab\x1a\xae\x64\xdb\x16\xd0\xed\xcb\x96\xe7\x50\x1b\x91\x34\x98\x3c\x7e\xaf\x82\xb5\x25\xb7\x51\xe2\x99\x7d\xab\xfb\xfb\x4f\x6c\xd1\xbb\x46\x4a\xb0\x21\x6b\x00\x66\x32\x9f\x76\x87\x31\x38\x7d\xd8\x3c\xee\x9f\xef\x57\x7f\xdd\xbc\x6c\xfb\x43\x90\xe0\x5b\xed\xee\x65\x57\x6d\xdb\x65\x33\x11\x6e\x23\x1b\x21\x7b\x12\x2b\x6b\xdf\x7b\x36\x4e\xf8\x3a\x96\x08\x8e\xa4\xac\x1b\xf3\x2a\xeb\x97\x5c\x77\x8f\xfd\xfd\x54\x36\xfa\x0d\xfa\x26\x99\x53\xfa\xe9\xb6\xd5\x3d\xd0\xd3\x1f\x8b\x39\x1f\x13\xef\x66\x2c\xeb\xe9\x90\xb2\xb1\x74\x92\x26\xed\xb0\x37\xb2\xb1\x71\x1e\xc3\x2e\xf3\xfa\x20\xcb\xf3\x75\x9d\x97\xef\xc3\x6f\x80\xe1\xfa\xba\x6f\xda\x7a\x5d\x95\x5a\xb6\xbf\x82\x9d\xf9\x1f\x51\xcd\x51\x55\xea\xbe\x7a\x5d\x32\xe5\x59\x8e\xe7\x2d\xe3\x31\xf7\xd2\x07\xae\x16\xb5\xdc\x8c\x13\xb7\x02\x49\x37\x39\xd3\xd9\x43\xf2\xd8\xd1\x52\x77\x77\x2f\x5f\x9f\xc7\x4b\x76\x77\x04\x8b\x27\x28\x19\x86\xbb\x9d\xfc\x92\xd3\x65\x79\x66\x70\xfa\x42\x71\x92\xc7\xf8\xe6\xa7\x06\x8c\x12\x27\x20\x81\xb0\x16\x58\x41\xa5\x9f\x8a\x61\xb3\x7e\xba\x82\x12\x10\x1e\x50\xcf\x98\x9e\x56\x24\xc4\xb9\x09\xbb\xec\xc3\xd0\x11\x26\xa7\x15\x6c\x94\x15\x3d\x5d\xc0\xe5\xe2\xd9\x38\xb5\x22\x91\xe0\x9f\xe8\xe6\x98\x37\x95\x99\xed\xae\x6c\xaa\x09\x5a\x28\xa0\xbc\xfe\x97\xea\x54\x37\x7f\x4c\x4e\x20\x29\x05\xe5\xa0\x53\x05\x52\xdd\x96\x60\xc4\x56\x2a\xca\xa6\x4a\x40\x58\xc2\xb3\x2d\xd4\x37\x4e\x70\xeb\xb3\x2f\x3b\xbb\x5f\x09\x22\x8a\x03\xdc\xbb\x39\xd5\x97\x05\x1d\xab\x0c\x41\xd5\xe3\xe7\xaa\xfc\x7b\x10\x42\xb0\xca\x18\x5c\x38\xf6\x55\xfd\x59\xe9\x28\xed\x9b\x82\x75\x3a\xad\xdd\x44\x37\x38\xda\x2e\x6e\xed\xad\x56\xcc\xc9\x33\xe7\xdd\xe6\x17\x7e\x20\x2d\xd9\xef\x95\xe7\x4e\x06\xdc\x6a\x43\x91\xb9\xd7\x05\xb6\xcd\xaa\x9e\x05\xdf\x56\x03\xc8\x34\x60\xaa\x4e\x5d\x4c\x88\x09\x33\x35\x08\xaf\x58\x03\x0a\xab\x64\x3f\xa0\x34\x55\x3d\x12\xee\xf1\xc7\x21\x62\x2c\x78\x64\xa0\x39\xd7\x8b\xe3\xc1\x3c\x56\x2d\x82\xc3\x47\x48\x6a\x0b\x9c\x63\x91\x16\x35\x20\xef\xea\xde\x89\x91\x5b\x10\x71\xe4\x5c\x54\x75\x55\x1b\xd4\x37\xb8\xbb\xd0\xaa\xb0\x60\x52\x1c\x2a\x88\xe4\xba\xaf\xaa\xf7\x53\x40\x18\x5b\xcb\x5d\x72\x20\x68\xc4\xf6\x7f\x4f\x22\xac\x69\xec\x8f\xf2\x7c\x0b\xfd\x22\x63\x6d\x26\x02\xcb\xc2\xa5\x3e\x01\xdd\x28\x1e\xaa\xb2\xfb\x08\xbe\x99\x88\x22\xc2\x7d\x51\xaf\x95\xc5\x33\x12\x1f\xfb\x43\x5c\x61\x8a\x27\xf0\x84\xba\xb5\x0c\x1f\xf6\x9f\x74\x2d\xd1\xed\x10\x22\xa7\x1c\xd2\xe6\xf6\xdc\x17\x8f\x97\x76\x01\x22\x8a\xac\x13\x36\x70\x42\xa7\x6f\x79\x61\x66\x98\xc1\x69\x73\x42\x29\xa6\xac\x7a\x77\x46\x59\x04\x44\x5e\xff\x64\x31\x73\x19\xa8\xdd\xea\x5f\xa3\x49\x47\x44\xb1\x76\x12\x02\x0e\x61\x7f\xae\xec\xe3\xa4\xcf\x60\x03\xd4\x73\x86\xf6\x6d\x0b\xa5\x99\xda\x11\x7e\xba\xee\x8b\x88\x1a\xea\xb4\x4b\x5c\xb9\xe7\x1a\x5a\x99\xcf\xd8\x7e\x22\x62\x71\x62\x3d\x6f\xe2\xee\x79\xfb\xd2\xf5\xb4\x79\x8b\x24\xc3\x84\xf6\xde\x07\x93\x5f\xf2\xa6\x5b\x41\x90\xe5\xf1\x49\x5d\xe6\x73\x31\xbb\xd0\x3e\x84\x90\x22\x62\xa9\xc6\x30\xc8\xbd\x69\xd9\xbc\x55\xa7\xfe\x8b\x73\x9d\x25\x10\x92\x14\xf5\x6b\x5e\xf6\xea\x47\xcb\x53\xbf\x88\x44\x94\xba\xf2\xb7\xb4\x70\x77\xea\xe2\x22\xbc\x64\x3c\xd5\xb4\x21\x7d\x73\x91\xe0\x82\xf2\x05\x8a\xa2\xfa\x5e\xd5\xc5\xa4\xae\x25\x22\x91\x3a\xd1\xb9\xeb\xbf\x36\xbb\xdf\xb9\x5c\xa4\xe1\x37\x36\x43\x4f\x7b\x35\x77\xca\x1e\x09\xa2\x89\x28\x89\xb4\x05\x3f\xfe\x7e\x40\x7d\x76\x6c\xc7\xe3\x31\x90\xb1\x45\x94\x50\x86\x73\x6a\x93\xbf\x96\xbb\xca\x2b\x5b\xad\x8c\xeb\x88\x83\x43\x8a\x88\x92\x24\x96\xdd\x90\x71\xc3\x21\x6f\xde\x82\xd4\xa7\x33\x5a\xbe\xcd\x65\xfb\x0c\xf5\x4d\xfb\x76\xb1\x59\xeb\x7e\x9b\x41\xd2\x57\xa3\xae\x4e\xe7\xd9\xf1\x94\xa6\x08\x20\xb5\x75\xf5\x37\x94\xbd\xef\xd2\xb4\x83\x66\xc2\x49\xf1\xa3\x9c\x50\xd7\xc9\x46\xf3\xef\xb4\xa5\x04\x8b\xb4\x8a\x22\x3f\xe4\x6d\x3f\x32\x94\xa2\xb8\x44\x6e\x37\x77\x0f\xab\xf0\x47\xed\xad\xa4\xbb\x69\xee\x5b\x15\x36\x08\x22\xd2\xa9\x9b\xd2\xba\x09\x76\x94\x8b\x14\x91\x96\x4e\x2a\xa1\xdb\x9c\xad\x8c\xf9\x94\x10\xef\x9b\x1b\x6f\x86\xe9\x16\x81\x3f\xe1\xec\xa4\x23\x67\x8f\x06\x82\x38\xe6\x62\x75\x38\xe4\xed\xae\x9a\x6c\xf4\x44\x04\x59\x86\xf2\x89\x57\x1e\x4d\x3e\x42\x2d\x77\x07\x15\x0a\xac\xb8\xfd\x89\xd3\x9e\xa9\xcf\x13\x11\x21\xdf\xd2\xf2\x08\xa7\x74\x25\x9b\x89\x47\x83\x20\x51\xc4\x64\xd7\x4d\xbe\xe5\xcd\xac\x98\x22\x48\x94\x46\x72\x9c\x18\x1d\x78\x4f\xf3\x86\x36\xc2\x3c\x45\x98\x9d\x10\x87\x30\xbd\x05\x42\xb8\x46\x0c\xd9\xc3\x39\xe8\xdb\x2f\x02\xc3\x05\x21\x82\xe1\xde\xb8\x9f\x40\x2f\xc3\xbb\xae\x91\xf3\xdc\x7c\x86\xfa\xbd\xb9\xb0\xf8\x0f\x8d\x12\x4a\x3c\xdf\x1a\xa5\xd4\x1d\xa9\x79\xa4\x24\x25\x08\x01\x8a\xa5\x91\xdb\xbc\x79\x53\xb2\x7c\xbf\xaa\xaa\xf1\x6a\x41\xe2\x04\xb0\x3f\x55\xbe\x74\x33\x9d\x90\x26\xff\x9d\xd0\x5a\xdc\x7f\x27\xb3\x52\x38\xa3\x89\x98\x83\x57\x38\x89\xd0\xc5\xcd\x4b\xb7\xf5\x76\xab\x1f\x6a\x39\xb6\x7a\x4e\x9e\x09\x17\x0b\xda\x9d\xe9\x42\x3d\x46\x10\xc6\xd3\x84\x8f\xb3\xe0\xf0\x29\x30\x72\xfa\x43\xc1\x5d\x52\xc8\xf5\x2c\x6f\x72\x8e\xd2\x11\x3d\xa3\x7a\xd4\x38\x15\x58\xb5\x44\xa3\x95\x1a\x4c\x30\x18\x76\x63\x64\x81\x0c\x22\x88\x50\x8e\x96\x31\xdc\xd8\x58\x23\x5e\x90\x84\x71\x27\x96\xd8\x5d\x72\x1f\xfe\x9a\xa6\x4e\x1c\xdc\x42\xab\xdf\x30\x4a\x6a\x6e\xab\xfa\x01\xba\xee\x14\x76\x4c\x82\x64\xb1\xb3\xa9\x3b\xd6\xf9\x0f\xd9\x42\xc0\xc4\xcc\xcb\xcb\x82\x68\x4a\x71\xe8\x61\xca\xaf\xf9\xcf\x49\xd6\xa3\x43\x12\xf7\xdb\x98\x84\xbc\x42\x51\xcb\x49\xb7\xd1\x99\x46\x0e\xeb\x10\x8e\xae\x91\x1f\x99\x7f\x0a\x7c\x14\x44\x4b\xc5\xbd\x4d\x6c\xb7\xca\x76\xc1\x10\x72\x1e\xfc\x61\xc3\x00\x85\xd8\x1f\x9f\x6e\x76\xe3\xe5\x9b\x98\xc4\x38\xe4\x18\x62\xa1\x37\x07\xf9\x3a\xff\x00\xc6\x38\x10\x7e\x30\xac\x97\xed\xc4\x23\xf6\x13\x58\xa7\x20\x10\x03\xca\x93\x62\x40\xbb\xae\xea\x5f\x4b\x8f\x09\x02\xdc\x08\xd9\x03\xb7\xff\xac\xda\xfc\x3d\xdc\x24\x68\x86\xfe\x44\xdb\xcd\xfd\xb7\x9b\x97\xfd\xea\xe1\xe9\xeb\xe3\x6e\xbf\x7b\xde\xf5\x0d\x0c\x05\x19\xbe\x78\x55\x14\x50\x37\x57\xe7\xc1\x2e\x7c\x32\xeb\x11\x9b\x4a\x1e\x8f\x23\xd0\x7d\xbc\xcf\x9d\x32\x29\x26\x49\xf6\x12\x13\x41\x5d\x5c\x5a\xe7\x18\x7b\x60\xab\x70\x2d\xab\x01\xa9\x2b\x4e\x0b\x79\xfc\x32\xe3\x28\x72\xce\x16\x88\xbb\x29\x8a\x11\x13\x64\x32\x56\xe3\xd0\x9c\x11\x0c\xe9\xd4\xe9\x3c\x5e\x0a\x62\x12\x67\x38\x3a\xb1\x7f\x4c\xd0\x2e\x22\x26\x42\x62\xc1\xe5\xb1\x72\xf7\x1e\x5c\x2b\xa6\x1f\x2d\x8e\x23\x4a\x02\x80\xa7\x32\xa7\xa2\x47\xab\x4d\x07\xcc\x28\x92\x89\x63\xca\x11\x3e\x8e\xb5\xbb\xb6\x6a\x61\x92\x62\x0a\x8d\xa4\x33\x90\x01\xf4\x0a\x68\x56\xa1\x83\xc5\x94\xc4\x4c\xf4\x95\x89\xe6\xa9\x44\x3b\xa5\xff\x1f\x6d\x7f\xd2\xdd\x38\x8e\xe5\x0f\xc3\xdf\xe5\xbf\xca\x45\x2d\x48\x90\x18\xf8\xee\x24\x5b\x76\xb8\xc2\x53\xdb\x8a\x88\xca\xac\x53\x47\x07\xc3\x85\xcc\x36\x45\xaa\x48\xca\x11\xce\x4f\xff\x1e\x5e\x00\x9c\x44\x3b\xb3\x17\xcf\xa2\x3b\x2a\x4d\x88\xa2\x48\x02\xb8\xc3\x6f\x58\x46\x30\x75\xa3\x15\x3a\x1e\x76\xcf\x0b\xca\xf6\x4b\xd5\xb4\x8f\x32\x37\xeb\xf7\xd5\xc3\xf4\x61\x91\x84\x03\x0f\x25\xaf\x72\x0f\x85\xef\x92\x2f\x2d\x30\x21\x2c\x22\x69\x1a\x05\x63\xa1\x6f\x4f\x37\x4b\x42\x37\x8c\x30\x1f\xc0\x0c\x72\xed\x0e\x0d\x31\x1d\x94\x49\x04\x1f\x21\xee\x75\x8d\xba\xab\x01\x0b\xe6\xc3\x25\xc2\x63\x83\x6b\xcd\x21\x2f\xc3\xce\x73\x53\x6e\x02\x1a\x91\x11\x6e\x7a\xdd\x8e\x6d\xae\x5f\xa1\xfd\x20\xf4\x23\x42\x10\xa0\x61\x51\x0a\x0f\x7d\x69\xeb\x27\x42\x64\x08\x70\xbc\xe9\x6b\x8c\x1f\xb5\xf9\x3e\x0c\x60\x3f\xfa\xfb\xec\x8b\xa4\x96\x81\x7b\xfe\x51\xc8\x4a\x64\xaa\x5c\xcd\xa5\x7b\x0b\xbd\x7a\xfd\x74\x84\x8a\xb2\xde\x52\xa8\x1b\x74\xdf\x9b\xbd\x32\xa2\x28\xa1\x68\x7c\x27\x0f\x70\x87\xee\x42\x4e\x5a\xbf\xdf\x0c\xc2\x38\xc6\x44\x12\x84\x35\xc6\x36\xe6\x9f\x67\x4d\x44\x53\x88\xbb\xdb\x1f\x84\x32\x7b\xf7\x9b\xf9\x1d\xe8\x6b\x11\xd3\x2c\x84\x68\xe5\x54\xc9\x2e\xef\x6e\xc2\xb5\x68\x03\x76\x84\x1e\xdd\xca\xf2\xf5\x6f\x5e\x8d\x89\x0c\xb6\x79\x76\x3f\x21\xdf\x56\x57\x79\x39\x12\x6b\xf6\x43\x40\x65\xda\xa3\x29\xae\xab\xc2\x4c\x45\xb3\xc2\x18\x43\x51\xe2\xe4\x5f\x87\xaa\x84\x56\x4e\x96\x20\x6b\x12\xe1\xfa\x32\x58\xca\x3a\x7d\x28\x81\xc9\x92\x98\x28\xc4\x55\x6d\xeb\xfc\xd8\x0c\x39\x30\x4b\xe2\x54\x62\xdd\x76\x0d\xed\x03\x36\x0f\xbf\x8b\xb4\x3f\x26\x32\x24\x2a\x3e\xde\xae\xee\x37\xdb\x31\x30\xba\x3b\xe6\xea\x78\xd0\xbe\xac\xf3\xea\x57\x17\xaf\x93\x70\x8c\xc4\xd6\xd9\x8d\xfc\xcc\x5b\xfd\x82\xf5\x65\xec\x85\x3f\xa1\x0e\xe3\x43\x61\x7a\xe3\x59\x96\x90\x04\x70\xeb\xcc\x1b\x9f\x65\xdf\xf7\xab\x6f\x92\xa4\x19\x96\x4f\x64\xb7\x18\x78\xdd\xae\x71\x4d\x93\x25\x29\x75\xcc\x6c\x87\x85\x1e\x21\x11\x58\x92\x32\xed\x9c\x87\x06\x04\xbb\x08\x87\x84\x44\x4a\x8b\xb7\x88\x43\x50\xe5\x72\xa3\x92\x25\x94\xb8\x92\xa1\xb7\xb7\x6e\xbe\x42\x08\x78\x13\xca\xa4\xca\x46\x2c\xb9\xa7\x10\xde\xf4\x03\x14\x25\x3c\xd4\xc4\x1f\xa5\x57\xb7\x9f\x9d\xdf\xa6\x01\xa8\xd5\x0b\x7b\x3f\xd6\x95\x39\xe9\x76\xd5\xfa\x88\xa6\x59\xbf\xdf\x55\xc6\xaf\x87\x61\xe5\x4b\x98\x20\xd6\x37\x55\xd0\x67\x63\xdc\x3d\x66\x09\xe7\x8a\x25\x23\x24\xd5\x6d\x25\xcb\x27\x38\x16\x52\xc3\xe5\xe9\x58\xe4\xe8\x0f\xf5\x79\xec\x96\x88\x34\x51\x3a\xa0\x2d\x27\xc1\x7e\x22\xa4\x44\x95\xc3\xcb\xcd\xfa\xdb\xf5\xee\xee\xe1\xb2\x7f\x31\x32\xe9\x78\x29\x0e\xd3\x7e\x51\xbf\x3f\x57\xc5\x03\xa2\x7f\x9b\x7e\x88\x8a\x0c\x9f\x88\xae\x5e\xe6\x8d\xae\xe1\x28\x4b\xdd\x7f\x83\x8c\x12\xec\xee\xbe\xc0\x2f\x62\x40\xcf\x6e\x9b\x8c\x3c\x01\x41\x16\x6f\x23\xb4\x5e\x38\xaa\x09\x51\x61\x7b\x1b\xfc\xa6\x59\xa2\x12\x85\x96\x99\xc1\xb3\x79\xfb\x02\x07\x30\xcf\x47\xa4\xb7\x2e\xae\xc0\x89\xa6\x71\x58\x18\x51\x1e\xf9\xe0\xa8\x52\xc8\x8a\x3f\xbb\x7f\xd3\x49\xa7\x59\x84\x18\xe6\x27\x40\x46\xfd\xc4\xf8\x86\x25\x86\x11\x04\x74\x75\x53\x7f\x62\x4a\xfd\x37\xff\x0d\xa7\x91\x11\x56\xc7\x8c\x27\xba\x0c\xae\x2f\x1e\x7f\x39\x67\x6f\xb0\x04\x88\x53\x17\x77\x31\xb9\x33\x52\x76\xfb\xd5\x28\xb4\x1d\x4f\x18\xe0\x0c\xc5\xf5\x1f\xee\x37\xbb\xcb\xd5\xef\xbf\xf5\x7f\x76\x9d\xec\x91\x19\xec\x4b\x8d\x9b\x62\xc0\x49\xb3\x04\x44\x42\x22\xdf\xd1\xb9\x7e\x7c\x0e\x7f\xb6\x44\x7a\x81\xf9\xff\x3d\x35\x93\x54\xe0\xef\xf2\x8a\xc2\x89\xd2\x08\xef\x62\xf3\x7e\x8c\x67\x6f\x81\xa5\x8e\xe6\x8e\x42\x29\x6b\x68\xc7\x44\x2f\x96\x46\x34\xc3\x0f\xea\x02\x24\x46\xf5\x5d\x54\x86\xb1\x77\x09\xc3\x28\x12\xf1\xb8\x07\xbc\x21\x0a\x73\xc9\x3e\x37\x0c\x26\x0c\x23\x1d\x8c\xf1\x70\x0a\xff\x36\x1b\x20\x32\x7c\x56\xcf\xc8\xad\xcc\x2b\x73\xb3\x7d\xd8\x35\xcb\xc9\x50\x9a\x10\xc7\x69\xed\x25\xd5\xfa\xd6\xc3\x94\x48\xc8\xd2\xc4\x44\x4e\x7e\xb7\x0b\x12\x9b\xa1\x09\x79\x53\xea\xaa\xae\x41\x23\x74\x63\x1a\xdc\xa5\xa9\x31\x68\x71\xf5\xe3\x61\xfd\x09\xd0\x88\xa5\x94\x90\xac\x07\x5f\xe5\x65\xfb\x60\x67\x97\x49\x39\xc7\x32\xf8\x60\x33\xb8\x94\xa7\xa5\x54\x26\x08\xa4\x59\x6d\xb7\x4f\xbb\xc7\xa7\x87\xcb\x6f\x17\x37\xeb\xdb\xb0\x6a\xa4\x4c\x51\x6c\xbd\x06\x3f\xb2\x56\x16\x1b\x59\x0f\xea\xf9\x2c\x65\x56\x61\x8a\xb1\x29\x40\xb7\x75\xe5\xd4\x1c\xfc\x31\x4e\xb9\x74\x10\xcc\xd2\x6d\xb4\xdb\xea\x2b\xc0\xb1\x3f\x2c\x9d\x2b\xc9\xc8\xe7\x70\xb1\xc9\xce\x52\x11\x9b\xd4\x93\x5f\xd1\xd1\x6d\xf6\x5b\x05\x49\x11\x6f\x8b\xca\xa6\xd9\x38\x8e\x4f\x05\x75\x62\x85\x4d\x3f\x17\x36\x23\x9c\xeb\xfc\x3c\x99\x92\xd9\xa4\x73\xfc\xa9\xb2\xc6\x87\x6f\x7f\x2a\x74\x84\x19\x42\x09\xa7\xee\xce\xf5\xaa\x1a\x2c\x15\x96\x38\xcc\x06\x5e\xc3\x77\x59\xe7\x52\xcd\xb5\x49\x58\x9a\x31\xc0\xf0\x72\xab\xff\x9e\x33\x04\x4b\x33\x1d\x49\x4f\xda\x09\xed\x92\xe5\x4b\x93\xb1\xf3\x99\xc5\xf0\x2e\x84\x14\xa9\xcc\x5c\x3a\xbc\xdb\x1d\x2a\x33\xa6\x95\x87\xe3\x60\xb1\xfe\xa3\x4e\xef\x17\x0b\x12\xe6\x1f\xdc\x06\x69\x1d\x2b\xec\x0e\xca\x53\x44\x3e\x9c\x9f\x21\x00\xed\x56\xdc\xcb\xaa\x28\x64\xff\x02\xe9\x58\x64\xdd\xeb\x77\xbb\xbe\x18\xaf\xd1\xa9\x26\x90\x39\x30\x17\xca\xdc\xed\xbc\xb7\x59\x7f\x58\x26\x38\x9f\xf7\x55\x61\xd6\xf3\x1a\x6a\x18\x03\xfd\xcb\xf7\x03\xe0\xd5\x41\x8d\xa7\xd7\x65\x62\x07\x90\xf5\x7d\x4f\x5c\xa6\xd6\xef\x4f\x55\x31\xc1\xe3\xb3\xd4\x70\x70\x5d\x05\x5f\x60\x6d\x1a\x98\xaf\x30\x46\x3a\x73\xe9\x1d\x2e\x6b\xde\x19\x1c\xd7\x22\xa8\xcf\xbe\xd6\xc4\xc8\x3e\xbb\xe8\x13\xe9\xe5\x0a\x52\x0a\x42\xeb\xb8\x07\xe0\x5d\xbc\xc8\x6e\xf1\x39\x3f\x9f\x4d\x9d\xad\xd3\x23\x04\x0e\x49\x33\xb9\x99\xd6\x48\x8c\x0c\x0e\x79\xd9\xa3\x0a\x59\x6a\xad\x45\x39\xbb\x4b\x90\x45\xb7\xfc\x16\xf0\x11\xf0\xa9\x6f\x57\x9e\x1b\xcd\x30\x1a\x89\x04\x55\x64\x76\xdd\x4d\x2c\x75\x0d\x26\x6f\xc1\xe0\x92\x35\x2b\x46\xd2\x48\x31\x6c\xca\x7b\x7f\x9d\xc7\xbe\x58\x43\xe3\x2e\x83\xf3\x01\x75\x71\x32\xdd\xa1\xa6\xe7\x1a\x30\x1a\x1b\x1d\xc3\xd0\x60\x5f\x7e\xf1\x29\x49\x88\xf5\x59\xac\xac\xf7\xbb\x64\x97\x97\xc7\xd3\xec\x39\xd1\x34\x05\xf4\xb0\x40\x02\x0d\x42\x29\xef\x57\x37\xb7\xbb\x8b\x87\x60\xab\xcb\x68\xaa\x38\x62\x21\x56\x6d\x5b\xd5\xd0\x5c\xe6\xfb\x1c\x9d\xec\x82\x71\x2a\xcc\x7f\x17\x8d\x04\xfe\xae\x43\x5e\x0e\xa6\x07\x8c\x52\x16\x21\x54\x74\x5f\x4b\x0d\x6e\xdb\xc1\x39\xd9\x1f\xb7\x91\x71\xf5\x94\xe3\xfb\xaa\x28\xbe\x1c\xd5\x7d\x65\xba\x98\x13\x91\x17\xdd\x93\x9a\x5e\x3a\x33\x5a\xb1\x89\xc0\xf5\x00\x4f\x66\x94\x27\x6e\x9d\xbf\x83\x5a\x9f\xea\x91\x71\x78\x38\x4e\x21\x1d\xec\x05\x46\x36\xcc\x93\x65\x86\x72\xe1\x84\xf3\x7e\xf6\x10\xf6\xa1\x91\x3b\x2a\x64\x50\x91\xc5\x28\xae\xf4\x58\xc8\x49\x74\x45\x85\x12\xaa\xf7\xb5\x58\x10\x32\x58\x02\xc9\x32\x9a\x45\x19\xa5\xfd\xd5\x7d\x39\xa7\x6e\x31\x9a\xc5\xaa\x2f\xf6\x5f\xc9\x1c\xe1\x72\x3f\x5e\xba\x34\xb6\x3a\x1e\xc1\xfc\x36\x1d\x2c\x28\x96\x68\x7b\xe9\x52\xd7\x9a\xbb\x9a\x21\x1d\x19\xcd\x0c\xe5\xc9\xa8\xd9\x1a\x80\xce\x1f\xbc\x63\x32\x25\xd4\xc1\x9d\xf5\x73\x3f\x95\xa8\x34\x4c\x3b\x7b\x90\x37\x28\xbe\x1d\x2f\xe4\xc4\xca\x7e\xda\xed\x67\x54\x45\x0e\xcb\xff\x9c\x97\xfb\x53\x81\x0c\xe5\x2d\x34\x6d\xb0\x7f\x61\x54\xf3\x4c\xf9\xd2\x0a\xd6\x0a\x2f\x65\x2b\x3d\xfd\x72\x5a\x8a\x99\x54\x64\xa8\xd6\x2c\x18\x66\x5f\x6e\x6a\x4d\x22\x2c\xb4\x61\x16\xb8\x29\xbb\x4d\x68\xea\x34\xce\xa8\xd1\x11\x86\x22\x9b\xd2\x04\x0a\xe8\x7c\xb9\x9f\xde\x2c\x50\xce\x35\x76\x8f\x20\x99\x57\xb4\x65\x1a\x9a\xaf\xd4\x1a\x92\x8c\x4b\xaa\x5e\x80\xbc\x5a\xa4\x5f\x33\x6a\x21\x4a\xbc\xf9\x5a\xf7\xd7\x1b\x1d\x62\x57\x16\x11\xe5\xb4\x2b\xd1\x5a\x15\x17\xc9\x27\xc0\xc8\xeb\xb6\x9b\x7e\x6d\xe0\xb6\xdd\x57\xed\x48\x25\x92\x61\x1b\x34\x1d\x3a\x51\xe7\x56\xda\x8c\x45\x99\x42\x9a\xd4\xce\x41\x55\xce\xf6\xba\xd9\x4d\x65\x91\x22\xc4\x91\xa2\xdf\xa1\xc6\x88\x62\x76\x3e\x95\x84\xba\xcb\xf3\xe9\x70\x53\xae\xdf\xfb\x16\x79\xb8\xcf\x2c\x52\x0a\xcb\x57\x2e\xec\x5f\x15\x05\xaa\x3b\xcd\x7a\xad\x67\x3d\x00\xb1\x58\xf1\x65\x91\x56\xd6\xb5\x0e\x51\xfb\x07\x74\x3e\xec\x8b\x2c\x8e\x22\xdc\x4e\xdd\xe4\x9b\xa5\x21\x61\x4c\x46\x02\x03\xe3\x56\x36\xed\xea\x64\xf2\xf6\xb2\xd2\xa7\x6e\xac\x3c\x83\xb2\x30\x46\xb8\xc0\x18\x0f\x5f\xee\x1d\xdf\xc9\x71\x21\x80\x11\x01\x48\xfc\xfc\x09\x79\xe3\xf1\xcd\x33\x4e\x2f\x63\x49\xa4\x02\x83\xd6\x63\x99\xe5\xec\x9a\x92\x84\x72\x67\xa1\xd2\xa0\x96\x7b\xae\x0a\xac\x54\xdd\xc1\xe7\xf2\x67\x0b\xe1\x92\xdb\xa3\x66\x17\xa0\x52\xed\x42\xa2\x93\x19\x19\xef\x31\x96\x46\x02\xfc\x95\x39\x0d\x82\xaf\xf0\x3e\xc9\x56\x58\xca\x05\x62\xcc\xee\xe1\x54\x57\x97\xab\x87\xe5\x6a\x05\x4b\xb9\x92\x7a\xa2\xd1\xee\x8c\xce\x67\xbf\x93\xc5\x2e\x31\x85\xf6\x65\x57\x07\x8f\xab\x70\x8c\xa7\x09\xed\xf5\x5f\xba\x6c\x90\xce\xee\x23\xb3\x1a\x9b\x04\x2f\x55\x61\xf2\x72\xdf\x3c\xd8\xdd\x7a\x33\xd3\x8f\x62\x8c\x27\x29\xa2\xd1\x64\xd3\x40\xdd\x6e\xfe\x1b\x53\x0f\x1c\xa7\xff\x98\xfc\xdb\xbf\x9e\x42\xa6\x58\xbe\x73\xec\x67\xef\xd6\x04\x8f\xb2\xd6\x50\x34\x73\x72\xf7\xbf\xff\x33\xbb\xb7\x99\xd6\xa1\x1a\x72\x55\x03\x60\x2c\x56\x7f\x80\x81\x60\x19\x44\x18\x25\x1d\xf2\xbd\x23\x21\x04\x90\xe9\xa8\x0c\xc9\x14\x75\xca\xdc\xd8\xed\x77\x77\x33\x1f\xfc\xd5\x19\x53\x59\x82\x72\xd8\x5d\xee\x7e\x55\xd5\x4f\x70\xac\xea\xb6\x4b\x24\x07\x45\xde\xdf\x96\x16\x6f\xa6\x23\x87\x53\xda\x9d\xca\xee\xb3\xc1\xdb\x2f\x9c\xd7\x88\x34\x92\x13\xa1\xc9\x74\x22\x34\xc9\x98\xb1\x24\x09\x6e\x79\x79\xf9\x3a\xee\x27\x31\xa0\x31\x32\xb9\xaa\xa6\xc8\x5f\xc7\x3b\x22\xb3\x29\xc5\xbd\x6d\x2d\x9b\x5c\x93\x64\x30\xa1\x5c\xbe\x47\x96\xf1\xc4\x99\xae\x38\x0d\xae\x97\xbc\x30\x53\xb1\x5c\xc6\x23\xe2\xb4\x03\x43\x75\xba\x99\x2d\x4b\x3c\x4a\x9c\xd4\xe5\xfe\x73\xb3\xcd\x30\x9a\x47\x48\x0a\x38\xe4\x06\x2b\x37\x18\x2b\x8f\xfb\xd4\x3c\xd2\x8e\x15\xbe\x2e\x4e\x5e\x6f\xac\x3f\x02\x31\x16\x8d\xdd\x7a\x7a\x0b\x7b\x28\x8d\x1c\x3a\x2a\x4b\x6b\x18\x8f\x23\x57\xdf\x6c\xba\x05\xe1\x0d\x42\x08\xbf\xd0\x63\xe1\x31\x75\x22\x8b\xeb\xca\xbc\x3f\x94\x0b\xaa\x0b\x8c\xc7\x4a\x38\x31\x6a\x94\x2e\x79\x18\x43\xbb\xfe\x9d\x2c\xf3\x82\x45\xf8\x28\x58\xd4\x88\xdf\xd7\xfb\xd9\x49\x49\x42\x62\x3a\x42\x34\x76\xd9\xf1\x6f\xd3\x96\xf0\xe2\x1e\xc9\x09\x08\x8c\x10\x6e\xab\x7d\x40\x03\x2f\xe8\xc1\xcd\x3e\x63\x63\xac\xf7\xa1\xcf\x0d\xba\x90\x7a\xa0\x81\x3f\x9e\x44\x19\x32\xc5\x65\x51\x5c\x9f\xae\xf3\x37\x28\x77\xfd\x21\xe1\x70\x8c\xeb\x53\x5d\xf6\xf4\xa2\x3e\x11\xa3\x91\x2f\x3d\xf1\x34\x33\xd8\x78\xfd\xe3\x61\xac\x83\xc9\x38\xd5\x16\x4b\x27\x77\xf2\xd7\x5f\x91\x9f\x18\x67\x59\x96\xd8\xb1\x8d\x57\xef\x22\x38\xfd\x3d\x3c\xd1\x12\x7a\xab\xd7\x43\x35\x4b\x58\xc3\x28\x50\xe0\x59\xe7\xf9\x7e\x2c\x9a\x37\x79\x52\xcb\x75\x75\x2e\xd2\x14\xb9\x88\x9e\x77\x76\x97\x8f\xfa\x41\x5c\x68\x82\x31\xe8\x97\xca\x14\x9b\x99\x6b\x16\xe3\x59\x94\x62\x79\x0a\xe9\x7a\xcb\x93\x90\x67\xd4\x39\x18\x35\xa8\xf7\x7b\xa6\x10\xcb\xb8\x64\x0c\x17\x7c\xe7\x9c\x8c\x59\xcf\x07\xa7\x52\x09\xb3\xfe\x66\x5c\xe5\x8d\x96\xc5\x77\x27\xe7\x3d\xfd\x3d\x2a\x71\x5d\x0b\x17\x23\xe0\x2c\x1c\x97\x39\xb8\xe2\x19\xba\x91\x0d\x52\xfc\x4f\xe8\xed\xf6\xf9\xcb\xa8\xc0\x71\x16\x9f\xbf\x7d\xdf\x6d\x7f\x7f\x0c\x55\x1f\xae\x23\x8a\x40\xc8\x12\x7e\x3e\x56\xe5\x9f\xf9\x55\x9d\xcf\x01\x9b\x8c\x6b\x22\xe8\x98\x60\x84\x4f\x7a\x96\xfb\x70\xcd\x00\x17\x63\xd7\x50\x7e\xca\x4d\x0f\x66\xe3\x9a\x83\x91\xfd\x1a\x84\xaf\xf5\x7a\xce\xff\x63\x1c\x48\x8a\x5b\x82\x85\x2e\x47\xd2\x72\xdc\xdf\xe7\x90\x51\xa4\xfa\xdc\xaf\x36\x17\xfd\xdf\xa4\x23\xf5\xfe\xd8\x3c\x3f\x4f\x5e\x65\x00\x67\x4f\x78\xac\xf3\xb7\xbc\x80\xfd\x20\xb7\x7d\xdb\xcb\x9a\x31\x6e\xb3\x2c\x92\x53\x9b\xb5\x6f\xcf\xf3\x8b\xb2\x0a\x10\xf1\xba\x2a\xab\xee\x49\xb8\x89\x8c\xdb\xe3\x3c\xb8\x11\x51\x2a\xa5\x09\x7d\x64\x0c\x6d\x66\xc7\x81\xa2\xb0\x07\x1c\xf2\xf6\x9f\x95\x42\x2c\xc3\x4a\x6b\x38\x2e\x64\xdb\xfe\x23\x71\xa2\xa9\xeb\xc3\x15\x05\xd4\x37\x66\x5e\xda\x10\x71\x2a\xb0\x88\xbb\x3b\xd6\x7d\xb3\x6d\xc1\xa8\xa8\x1b\x98\xe1\x23\xd8\x3e\x3d\xdc\x5f\xdc\xae\x9e\x9f\x6f\xc2\x6d\x14\xb1\x8c\xb0\xc7\x83\x2f\xf0\x73\x70\xf0\x5c\x1d\xf3\xaf\xf0\x3e\xd9\xf5\x04\x89\x5c\xdf\xff\x0f\xa8\x2b\x74\xae\x19\xdf\x75\x41\x22\x89\xc5\x0c\xb7\x50\xde\x74\x29\xf7\x38\xc0\x9b\x4e\x06\x91\xa4\x2c\x8e\x46\xdd\x91\x4d\xa3\xe5\x71\xc2\xa6\x4e\xc8\x3f\x46\xd9\xe6\x24\x73\x12\x09\x8b\x31\xd8\x86\x5f\x79\xd3\x36\xcb\xa5\x44\x91\x80\x9b\xde\x3f\xbe\x7c\x9b\x5c\x68\x4a\x94\x1e\x54\x53\xee\x2b\xc4\x5d\x0e\x2b\x3a\x4b\x7d\xd9\xaa\xfb\x1f\xe1\x23\xd4\x3a\xdc\xe1\x0b\x5c\xbc\x2b\xa8\xaf\x65\x0b\xaf\x00\x47\xa8\xb7\x3f\xab\xfe\xbc\x8c\x83\xd3\xac\x28\xf2\xb7\xde\x12\x66\xfa\xb3\xd3\x4c\xa2\x89\x1d\xda\x9a\x77\x51\xff\xc5\x4b\x35\x77\x6f\x60\x68\xc9\xe6\x27\x0c\x16\x5b\xf3\xaa\x1c\x55\xf4\x05\x25\x16\xbb\x37\x0a\x43\xa2\x49\x5b\x48\xb0\x04\xd0\x43\x24\x2f\xcf\x15\x36\x67\x8f\x80\x71\x8e\x85\x80\xb6\x3e\xc1\xec\x24\x19\x38\xb0\x18\xc2\x2c\x8b\xaa\x01\xd3\x3b\x9f\x87\x31\x42\x51\xeb\xb5\x51\xef\x7a\x86\x40\xb3\x7e\xdf\xbe\x1f\x67\xeb\xbb\xc8\xb8\x46\x25\x45\x5f\x00\xef\x17\x06\x91\x49\x8a\xd5\xbb\xe3\xa9\x9d\x3c\x21\x29\x04\x42\x32\x7a\x3b\xc9\xeb\x5a\x1e\x61\x7d\x7a\x77\x2a\xc1\xb3\xd3\x1b\xa2\x30\xe0\xfa\x03\x4e\xe3\xc6\xaa\x30\x34\x11\xc9\x8c\x17\xd9\xc5\x4f\xe3\xb9\xb9\xdc\x9b\x1f\x17\x44\x85\x01\x6b\xa2\x00\x58\x3c\x54\x6f\xce\x05\x07\x35\xff\xfc\x0f\xba\x69\xe1\x70\x6e\x3d\xfd\x21\xa1\x81\x09\x63\xb9\x33\x5d\x2d\x5a\xa8\xaf\x00\x3b\x59\x66\x9a\xd8\xfb\x91\x90\x68\x44\xcf\x6c\xaa\xe6\x31\xff\xf3\x4f\xf9\x5c\xe4\x1a\x50\x4a\x66\xfa\xc6\x80\x72\x44\x3b\x67\xb4\xe7\xf0\x54\x1f\xcc\x3c\x4b\x28\xa6\x05\x37\xba\x2a\x3f\x60\x33\x31\x61\x33\x8d\x4b\x3e\xa2\x52\xf2\xa6\x75\xdc\xd0\xa5\xbe\x42\x16\x09\x95\xd8\x91\x7c\x63\x80\xa5\xdd\x82\xd9\x43\xbd\xda\x7e\x7e\xab\xc3\x6c\xcd\x22\x61\x91\x49\x7b\x75\x75\xfd\x59\xe8\x91\x45\xc6\x79\x36\x5c\x40\xf7\xca\x15\xc5\xfb\x4d\xb7\x7b\x9b\xf1\xfb\x93\xc5\xb1\x73\xe5\xde\x16\x7a\xf4\x42\x64\x71\xe2\xf1\xbe\x2f\x75\x55\x1d\xa0\x7e\xbf\x92\xf5\xa1\xcf\x99\x33\x22\xb5\x18\x9b\x1c\xf6\x6a\x71\xf7\xd5\xd4\xca\x8e\x65\x09\x03\xe3\x7a\xe6\xd8\x93\x3a\x3a\xe3\x13\xc4\x97\xe3\xaf\xf2\xc1\x8a\x18\xf9\xd3\x8c\x5e\xac\x0f\xf8\x18\xff\x19\xbf\x76\x19\x4d\x01\xc5\xd6\x7b\xf6\xdd\xe4\x29\x66\x2c\x8d\x82\xfe\x1c\x32\x5c\xff\x4f\x5d\x8b\x8c\x89\x08\xd7\x6a\x69\xcc\x6a\xed\x3f\xfa\x01\x9b\x30\x7c\x02\x20\xf8\x83\x77\xb7\xda\x38\x37\xf3\x2b\xc0\xc6\xf1\xf9\x86\x93\xf1\xc4\xe1\x59\x9f\xbc\xdd\xfb\xa1\xdb\x31\xca\x72\x70\x94\x5b\x8e\x80\x33\x41\x15\xf8\x65\xa5\x5b\x23\x9f\x65\x21\x83\xaa\x1f\xcb\xb2\x54\x61\x75\xe0\x29\xf8\x0b\xb3\x2c\x13\x29\xfa\xb8\x75\x67\x19\x97\x80\xb2\x4c\x32\x6a\x7b\xbf\xf9\x49\x2e\x9f\x49\x2d\x42\x47\x00\x81\x8e\x50\x6a\x08\x12\xc7\xcb\xc1\x5b\x26\x6d\x6c\xbd\xc6\x7b\xde\xbc\x84\x77\xfd\x1a\xfa\x73\x2a\x42\xac\x73\xe0\xec\x21\x5d\x5e\x5b\x1a\x55\x0f\x47\x7a\x0a\x2c\x53\x89\x45\xf0\x5d\x8f\x89\x6b\x7c\x55\x6b\x56\xc7\xca\x34\x4b\xb0\xee\xaf\x64\x40\x49\x6e\x6b\xe9\xb5\xaf\xc5\xbf\xc9\x7f\x46\xba\x47\xe9\x7f\x46\xaf\x12\xff\xcf\x90\x9e\xff\x9b\xfd\x27\xec\x63\x99\x16\x8e\x8f\xae\x4e\xef\xe1\x71\x4c\x9e\xb2\x49\x13\x0c\x77\x7c\x7f\x23\x70\xe7\x6f\xbf\x6d\x67\x8f\xd7\x70\x41\x87\xf5\xe6\xae\x32\x0b\xec\xf1\x6e\x94\xc1\x39\x8d\x2f\xc8\x2d\x48\x93\x97\xfb\x2e\x78\xf8\x60\x69\xca\x20\x02\x44\x48\x07\xe9\x65\xbf\x2b\x2d\x06\x47\x99\x8d\xb5\xdb\x3c\x5c\x8b\x60\xf0\xb5\xcc\xab\xd2\x8b\x25\xf9\xdb\x28\xa3\xd4\xad\x19\x85\x6c\xba\x07\x5e\xd7\xb2\x68\x10\x43\x1f\xb2\x27\x19\x73\x8b\xb1\xe4\xa1\x32\xb9\x7d\xc7\xce\xe3\xc5\xa0\x92\x36\xbd\x4c\x19\x7b\xfb\xef\x2f\x50\xe4\xd5\xa4\xc3\x22\x09\x58\x2c\x0c\xdc\x94\x06\x0e\x65\xde\xe0\xd5\x04\xe7\x06\x26\x89\xcd\x84\xec\x4b\x3b\x4d\x55\xca\x02\xb5\x9c\xae\x7a\xef\x61\xf8\x60\x45\x96\x49\xcc\xe3\xe1\x8e\xaf\x8a\x62\xd5\xb6\xde\xd4\x0d\x45\xd4\x2f\xaa\x02\x43\x05\x35\xdf\x1f\x65\x92\x48\x04\x3e\x3e\x55\xa7\xd2\xac\x07\x95\x14\x26\x13\x9e\x60\xee\x94\x97\x23\xa9\xeb\x99\xb0\xc6\xec\xb7\x27\x3a\xc3\x66\xf3\x8d\x3d\xcb\xd2\x26\xeb\xb9\x4c\x20\x42\x0a\x4f\x20\xe0\x98\x78\xe0\x1c\x33\x99\x46\x80\xe0\x98\x9d\xfb\x39\x9b\x5f\xd8\xed\x99\x85\xd4\x32\xb5\x0c\x17\x83\xbb\x87\xbb\xf0\x41\x1a\xd1\x20\x76\xd8\xdd\xb5\xd9\x4f\xa5\xdc\x89\x5a\x76\x97\x82\x3b\xb4\x0f\xec\xe2\xf1\xd2\x2a\x29\x38\xc7\xc2\xbe\xd8\x17\x2a\xb0\xcb\x77\x9e\x5a\x8b\x19\xb3\x4b\x14\xbc\x60\xda\x78\xda\x48\x16\x6b\x54\x9b\x39\x80\xc9\x75\x15\xc2\x1b\xc9\x98\xd1\xbe\x4a\xfe\xbd\x6a\xe1\x09\x9a\x53\xd1\x07\x50\x92\xab\x0c\xfb\xfa\x07\xf9\x6b\xcc\x6a\xbc\x19\x55\xb8\xa4\x30\x32\xe1\xbd\x0b\xfd\x0f\x04\xc9\xcc\x42\x4a\x99\xc5\x12\xc3\xdc\x67\xf4\x40\x58\xda\x5b\x65\x96\xa6\xa8\xd6\xf7\x03\x8a\xe2\xfd\x51\xf6\xa7\x97\x09\x45\x2e\xc5\xe3\xb7\xf5\xed\xcd\xc5\xee\x79\x75\xbb\x79\xde\x91\xdd\xe3\xe6\xe9\xe6\xe1\x72\xb7\xe9\x57\x59\x29\xa9\xb3\x35\x40\x41\x38\xd5\x54\xc5\xa9\x85\x40\x2d\xea\x53\x53\x29\x99\xc6\xd6\xf2\x63\x72\x39\xf5\xdc\x66\x52\x25\x4e\x3b\xf1\x69\xf3\xbc\x79\xfa\xbe\xb9\xdc\x6d\x1f\xbe\x6e\xee\x9f\x77\x57\x0f\x4f\xbb\x9b\x8b\x87\x1d\x5a\xb1\x6d\x9e\xfb\xe1\x56\xa3\x6e\x61\x77\xdb\xa6\x5d\xa7\xd9\xb3\xd1\xca\x31\x12\x43\x1a\xe1\xaa\xf9\x23\x60\x50\x18\x07\x99\x0a\x4e\xce\x17\x0f\x3f\x00\x5e\xe3\x85\x3e\xb0\x04\x6a\x21\x54\xcb\x86\x22\xe2\x42\xa5\x4c\x82\x56\x59\xf7\xc5\xbb\xc2\x09\xcf\x4e\x6b\x26\xcb\x2f\x92\x65\x4a\xfa\x3e\xc7\x25\x7c\x84\x77\x93\x56\xc6\x98\x19\xa1\xd3\x74\x2d\x47\x70\x36\x15\x09\x42\x44\xef\x6f\x13\x80\xf9\xb3\x49\xa0\x22\xe5\x18\x8b\xba\x2a\xf7\xa3\x67\xa0\x22\xab\xf1\x92\x11\xee\x82\xd2\x74\xd8\xd1\x9c\xbc\xca\x2a\x4e\x29\x06\xcd\x9b\x3f\x9d\xd5\xbc\xff\x33\xe1\x49\x16\x87\xcf\x0e\x2d\xc5\xcf\xa2\x0d\x11\x3e\xaa\x00\x1b\x6b\xdd\x63\x7e\x5a\x6d\x37\x01\xa4\xa8\x12\x6a\xb9\x23\xac\x4b\xb3\x3b\x05\x35\x38\xa6\x52\xc6\xc6\x9e\x72\x3f\x64\x5f\xff\x52\x29\xe3\x03\xfc\x15\x25\x0a\x97\xa8\xc9\x4c\x51\x70\x75\x1f\x23\x5b\xf9\x8c\x22\x59\xc1\x8a\x10\x17\xc1\x07\xfb\x9c\xff\x6a\x01\xa6\xcd\xbd\x70\xc1\xcc\xb3\xc9\x57\xa5\xec\x3b\x51\x8a\x81\x76\xee\xe3\x2f\xd5\xcf\x5b\xd9\xb4\x53\x47\xfd\x30\xc8\xa6\x98\x89\xb8\xda\xcd\xdd\x74\x62\xcf\x9e\x12\x8f\x53\x07\x9b\xfe\xad\xff\x83\x93\x47\x6a\xa0\x5d\x9d\xda\xea\x1e\x7e\xaa\xaa\x34\x83\x2e\x10\x53\x9c\x39\x07\xf4\xbb\x53\x17\x83\x04\x74\xcb\xec\x1a\xb8\x12\x98\x5b\x34\x3d\xb4\xcf\xc3\x84\xa7\xc3\x84\x70\x1e\x88\x0d\xb4\xb7\xb7\xdf\x77\x60\xf2\x76\x17\x47\xd3\x77\x41\xd8\x48\x06\x82\xf7\x40\x2d\xed\x2f\x38\x4b\xa9\x0a\x89\x51\x77\x57\xc7\x52\x92\x4c\x49\x9e\x25\x43\xe9\xcf\x15\x9e\x1d\x69\x71\x79\x57\x55\x2a\x56\xe8\x85\x71\x84\x3d\x46\x50\x7f\x0f\x79\xbc\x1c\xe0\x2a\x15\x03\x6a\xce\xb6\x95\xdf\x17\x67\x77\x5f\x51\xe9\x48\x54\xa7\x77\x07\xe2\x98\xde\x1d\xc5\xe3\xe0\x58\xe0\x11\x1c\x50\xe3\x6f\x0c\xbf\x4e\x09\x8b\x0b\x33\x32\xa1\x67\x5e\xbb\xd3\x6f\xd2\x24\x49\x44\xd0\x22\x6e\x4e\x87\x81\x71\xcb\x94\x49\x01\xa9\x39\xdd\x57\x04\xad\xc6\x8f\x40\xe3\xd3\x0b\x34\x20\x31\xe9\x3a\x56\x4d\xeb\x42\xc2\xcf\x44\xe7\x99\x82\x24\x13\x4e\x7b\xca\xbb\x1f\x5e\x55\xf5\x99\x5a\x3e\x53\x40\x5d\x5f\x37\x6f\x3c\xf0\xe2\x21\x44\x36\x0a\x24\x20\xd0\xc9\x54\x3d\xaa\xfb\xa3\x47\xf1\x69\xd9\x41\x59\x65\x52\x9f\x49\x20\x65\xe3\x71\xd0\xe3\x3b\xbb\x7b\x3a\x22\x20\xc4\x28\x8a\x18\xa4\x6c\xfc\x00\x92\x18\x84\xbc\x6c\x8a\xbc\x85\xe7\x97\xfc\x78\x0c\x2e\x29\x9f\x24\x91\x9a\x28\x9a\x18\x34\x2c\xc9\x0f\x7a\x5e\xc9\xd2\x04\x04\x8a\x87\x4b\xac\xce\xcd\x17\xf5\xa5\xdc\xcd\x7f\x30\xd1\x10\xca\xdd\xdf\x57\x6d\x75\x70\xb1\xfc\xd2\x05\xa4\x94\x62\x64\xd3\x4d\x2d\x72\xeb\x4c\x17\x46\xad\x2f\x4d\xb9\xc5\xec\x4f\x25\x64\x5b\xad\xdf\x7b\x81\xd4\x70\x38\x4b\x63\x34\xf8\x7a\xbe\x9c\x5c\x39\x55\x3a\xee\x99\xc8\x61\x81\x30\xbf\x9d\x66\x2a\x87\x4c\x33\xcb\x98\x27\xc3\x3c\xe7\xc5\xdb\x47\x1c\xf8\xe5\xd8\x4e\x0b\x9d\x66\xf1\xb8\xfc\x0f\x35\x16\x0a\x7e\x3b\x27\xba\xe8\x2c\xe3\xb8\xca\x23\x33\xab\x3d\x29\x64\x7f\x84\xeb\x95\x09\x51\x34\x4c\xa3\xcd\xaf\xbc\x99\xee\x46\x5a\x45\x09\xf6\x3b\xbe\xde\xac\x6f\x9e\x77\x93\x9f\xaa\x68\x12\x7b\x2a\x08\xee\xd5\xa5\x73\x92\xbc\x5d\xe8\xa7\xcd\x9e\x92\xa2\x1a\xb1\xb4\x16\xba\x08\xf2\x2a\xaf\x9b\x76\x55\x23\x8e\xc1\x2d\xea\x13\x43\x04\xa6\x95\x24\xa1\xb1\xbf\x2a\x8a\xf5\xe9\x7d\xa0\x14\x6a\x4d\xa5\xc3\x7d\x42\xd3\xde\x34\x0f\xa8\xec\xf0\x28\xf3\xfa\xc9\x87\x23\x0b\x00\xef\xcf\xaf\xcd\xf0\x58\x41\x1f\xf0\x29\xa8\x1f\xac\x93\x04\xee\xbf\xd2\x28\x89\xa1\x91\x3c\x1e\xa1\x9c\x32\x90\x35\x44\x04\xa1\xfc\x61\xb6\x7c\x46\x43\xd7\x20\x12\x32\xf0\x02\x9f\x5b\x59\x3b\x10\xfb\x07\xa3\x33\x81\x71\x77\xcf\x1f\xad\xca\x99\x2f\x0f\xd3\x60\x53\xac\x49\x04\x8b\x21\x17\x47\x26\xbb\xe7\xed\xea\x6b\xe8\x38\x68\x1b\x03\x62\x43\xae\xa1\x5b\xe4\x47\xe5\x19\x13\xc5\x9c\xf0\x60\xfd\x8a\x30\xfe\xad\xfc\xf5\x28\x6b\x79\x80\xf6\xc3\x4e\xb2\x89\x84\x53\xc9\xc4\x82\x01\xa6\xd3\x41\x69\x97\x99\x48\xa5\x18\x1d\x7a\xd0\x60\xe3\xed\x33\x5c\x53\x7d\x34\x08\xfb\x0e\x75\x37\x28\x19\xa5\x47\x26\x26\x89\xc7\xff\x62\x6b\xe9\x13\x00\xb0\x89\x25\xf3\xb2\xa9\x48\xdb\x0b\x7f\x26\x49\x9c\x26\x23\x88\x85\x2f\xf7\x87\x2e\xc8\xb4\xf5\x63\x08\x73\xb6\xbc\xae\xc9\xd8\x6d\x5c\xb2\x85\x5a\x16\x8f\x55\x35\x55\xc4\x64\x86\x80\x23\x6d\x7c\x79\xb8\xbd\x44\xf0\xda\x20\x03\xcd\x0c\xb1\x80\xc5\x3b\xcf\x9a\x44\x39\xc6\x2e\x6e\x1b\x6c\x1e\x98\x49\x28\x18\x4f\x12\x70\x1d\x9b\x59\x7c\x62\x12\x49\x94\x08\x4d\xf0\x5e\x78\xf1\x62\x26\x1d\xce\x4c\xa2\x6d\xe4\xca\xfe\xf2\xcf\x77\x90\xf5\x79\x86\x62\x12\x9b\x2a\xee\xc0\x0e\x4f\xb2\x85\x6f\x4f\xb7\xe1\x2a\x52\x9d\x62\xd3\xe8\xdb\x7a\x7b\xd1\xff\x0d\x94\xe5\x7e\x4e\xed\xb0\x55\x3e\x26\x04\x9a\xd4\x02\x36\xb4\xdf\x72\xf0\x58\xae\x27\x38\xc8\x7c\x04\x54\x36\xa9\xb5\x38\x2b\x91\x9d\x59\xcc\x6f\x1d\x8d\x05\x96\x4a\x51\x76\xde\xa9\x50\xdd\xe5\xf3\xce\xa5\xa1\x49\xca\x32\x2f\x54\xfb\xe8\x9e\xff\x66\xfb\x25\x7c\x03\x4d\x2d\x66\x90\x18\xa8\x74\x7b\xd2\x9d\x93\x18\x0e\xf4\x93\xcf\x44\xed\xfe\x6a\xbb\x0c\x5f\x91\x65\x19\xeb\xa9\xa2\xde\xcc\x33\xaf\xc6\x64\x7e\x43\xf5\x60\xa6\x26\x9b\xe6\x58\xd5\xed\x6d\xb5\xcf\x75\xa0\x8f\x87\x71\x4c\x0b\xe9\x23\xb5\xad\x2c\x5f\xc7\xd0\xf8\xfe\xe5\x63\x3a\x73\x16\x8c\xd2\xf3\xca\x7a\x55\x4b\x3f\x80\xa7\x11\x86\x3c\x23\xd4\xe1\x79\x0f\xde\x08\xe9\xb2\x51\xef\x2f\xe3\x31\x24\xbe\x20\x1d\x76\xd0\x64\x5c\xab\xea\xff\xe3\x33\xfb\x42\x66\x32\xe2\x84\x0b\x8a\x2e\xf8\x96\x45\x31\xd6\x89\x09\x43\x54\xa4\xa9\xa7\x1b\x9c\x13\x43\xfa\x2d\xc9\x74\x73\x35\x72\x34\xb8\x21\x18\x33\xca\x4a\x94\x56\xba\xbc\xb9\x9f\x90\x76\x8d\x16\x02\x4b\x7f\x48\xdf\x36\xb0\xfd\xd7\xff\xad\xd8\x6a\xb4\x70\x24\xd2\xa3\x5b\xd4\xbc\xaa\x16\x4e\xea\x30\xc2\x67\x6c\xf8\xca\x87\x54\xb6\xdb\xcd\xaa\x53\x3b\xc0\x4d\x07\x5e\xaa\x31\x51\x12\x72\x85\x27\x30\x00\x87\x05\xac\xbc\x31\xd4\xc5\xc0\x5d\x26\x50\x35\x0d\xc6\xaf\x23\x4e\xe5\x30\x10\xb2\x0c\x39\x5c\xcf\xd0\xfa\x18\x7e\xf9\x87\x80\x4d\x94\x7f\xdd\x2e\x4f\xaf\x4e\x8a\x72\xbc\xff\x18\x9b\x98\x60\x74\xec\xe4\xe7\xf1\xb9\xdf\xe5\xe5\xb5\x6c\xee\x01\x4c\x8f\x71\x82\x18\x28\x32\x5b\xef\xe5\x21\xc7\x14\xd6\xff\x9d\x30\xe7\xa1\xe7\x37\x25\x94\x55\xf2\x0d\xcd\x0f\xe4\x43\xc2\x07\x75\x1a\xe9\xa1\x3c\x66\x6d\x5e\xe4\x67\xb0\x7f\x48\x22\x86\x8b\x55\x09\xbf\xda\xab\x02\x7e\xe5\xaa\x00\x1f\xbd\x87\x11\x44\x2b\x6f\xeb\xf4\xec\x4c\x95\xaf\x5c\x3f\xfa\x23\x1d\xf5\xee\x23\xce\x52\x09\x65\xd7\x50\x5c\x77\x59\x0d\x01\x12\xa6\x5d\xca\x77\x04\xd0\x2f\x0f\xf6\xdc\x5f\x89\x41\xc2\x9d\x56\x5a\x1b\x60\xaa\x57\x88\x80\x0d\x47\xb3\x4c\xc7\x41\xc1\xf5\x32\x7f\xcb\x9b\x79\x09\x0c\x52\xce\xf0\x61\xea\x60\x48\x34\x4d\x8d\x21\xcd\xd2\x88\xf7\x4e\x70\xdf\xca\xbc\x9d\x9f\x20\xcb\x12\xdd\xa3\x22\x3e\x58\xac\xce\x15\x64\x20\x95\x49\x02\xa1\xd8\xbb\x6e\x75\xa8\x1d\xbb\xb2\xef\x43\x39\x69\xb2\x8e\xbe\x0e\x62\xd4\x03\x41\x81\xac\x40\xda\xfd\x34\x48\x02\x2a\x14\x78\x16\xfd\xee\xd4\x7c\x60\xa2\xdd\x0d\xd3\x91\x0e\xce\x29\x45\xb7\x2f\x37\xb3\x80\x68\xf9\x55\xa2\x1a\x70\x09\x3b\x7a\x23\x65\x9c\x38\xff\x94\xfa\xf5\x58\xf5\x0f\x82\x25\x2c\x0e\xc0\x25\x28\x0a\xec\xce\x9e\x26\x58\xcd\xe9\x39\x19\x00\x6e\x18\x37\xf7\x9b\x7f\x4d\xe2\x58\x10\xda\xcb\x23\xe0\xbb\x8e\x41\xc8\x71\x84\xf7\x80\x8c\x64\xb8\x99\x77\xeb\xde\x25\xe8\xfc\x20\x67\xf3\x1c\x32\x9e\x22\xcf\xf2\x50\xd5\x72\x4c\x1a\x83\x2c\x53\x18\xe8\xfe\x6b\x3b\x81\xfa\x80\x4a\x04\xba\x0a\x60\xda\x89\x70\xf4\xab\xaa\x9e\x04\xb6\xa0\x59\x8c\xf6\xa3\x50\x9a\xcd\xdb\x10\x2c\x81\x16\xce\x77\x25\x30\x7c\xb7\xde\x4e\xe5\xd8\xad\x52\x73\x72\x0b\x68\x0d\x59\x14\xd6\x35\xba\x73\x40\xc4\x6b\xd9\x7c\x6b\xe4\x1e\xe2\x34\x8a\xd6\x15\x52\x43\xfd\x70\xc3\x22\xc8\x7a\x26\xe6\xcf\xd2\x67\x2e\x3d\x10\xc0\x0f\x03\x61\xd1\xac\xc4\xc1\x71\xfc\x6b\x16\x87\x93\x58\x95\x21\x85\xd8\x3f\x63\x2f\x40\x34\x27\x4d\xd9\x38\x02\x84\xe2\x9a\xfc\xed\xaa\xaa\xfb\x96\xcd\x6d\xfe\xdf\x93\x73\xcd\x9e\x74\x6c\x6c\xec\x75\x31\x76\x4a\xb7\xd5\x5f\xd6\x24\x26\x53\xda\xc6\x99\x41\x91\x2b\xe4\x2c\xb1\x31\x98\xc7\xc6\x96\x60\x3f\xa6\x4b\x62\x3c\xbd\x60\x55\x4f\x73\x20\x4b\x68\xaa\x3c\xa9\xe0\xa2\x2a\xdf\xa0\x46\xa9\xf5\x21\x94\xb3\x44\x58\xe7\x75\x85\x20\xeb\x03\x0a\xbb\x78\x61\xb3\x4f\x33\x71\x4b\xb2\x08\x5f\x3d\x53\x41\x83\x4f\xd9\x65\x60\x93\x59\x64\x09\x50\xc4\xdd\xed\x1a\x68\xbf\xc8\xbc\x46\xca\x2e\xd6\x66\xf8\xec\x96\x26\x84\x62\xff\x14\x31\xc7\x37\xd6\xeb\x88\x06\x46\xc9\x43\x8d\x8a\xd3\xfd\x16\x60\x13\x22\x9c\x12\x91\x93\x9a\x6b\xe6\x67\xa3\x0a\x81\x86\x57\x00\x63\x93\xda\x70\x54\x3b\xa0\xa2\x13\x14\x58\x48\x46\x6c\x62\x22\x6f\x32\x7e\xc8\x5b\x30\x13\xc9\x65\x66\x69\xec\x88\xe6\x6f\x55\x0b\x23\x86\xbc\xa5\xca\x3a\x03\x94\x2e\xe7\x82\xc6\x19\x30\x86\x7d\xda\x32\x48\xe3\x28\xb8\xa3\xde\x34\x2e\xe7\xf5\xc7\x78\x12\x27\xde\x57\x6d\x07\xa5\x31\xa3\x07\xc4\x33\x57\x0a\x73\xf5\x84\x8b\xaa\x1a\x7c\xc8\xfa\x11\x60\xfc\xc6\x79\x07\x4d\x73\x26\x0b\x62\x05\x21\x48\x98\xbe\x3c\x95\xaf\x8f\x72\x6c\x32\xc7\xac\xe0\x0c\xb7\x95\x97\xf7\x23\xd4\x0e\xe0\xbf\x90\x88\x5b\x91\xd1\x28\x68\x3b\x96\x98\x70\xf7\x78\xcb\xd9\xad\x13\xca\x55\xdf\xdb\xfc\xd7\xd8\xaf\x35\x1c\x85\x34\x90\x5c\xda\xab\x60\x4f\xba\xfc\x82\xc9\x88\xf1\xb8\x2f\xd7\xbe\xc8\x1a\x9e\x5f\xe6\xbd\x74\x2b\x63\x81\xbc\x3d\xc7\x9d\xfc\xf1\x32\x88\xa2\xe7\xe5\x1e\x95\x1b\x2f\x4f\xdd\xff\x1c\x3c\x47\x98\x55\x82\x23\x28\x13\xc1\xd5\xb5\x6c\xc1\xac\x4f\xef\x73\x5f\xd9\xc9\x2c\x52\x2a\xc5\xa2\x72\x37\xcb\x7e\xa9\xca\xbb\xe9\x9f\xea\xc9\x5b\xa5\x40\x09\xdd\xeb\xa7\x07\x27\xf0\x40\x01\xb0\x16\xa2\xc8\x8e\xa0\x86\x1e\x29\xe9\xd7\x2f\x1e\x45\x91\xc1\x85\xd8\x31\xbf\xa0\xbd\x0b\x64\x40\x1e\x45\x94\x04\x5f\xe8\x5b\xd9\x65\x14\x18\x81\xe7\x55\x40\x59\xe7\x50\x5f\x5c\x7c\x1b\xef\x65\xe3\x9b\xc4\xa3\x48\x83\x67\x82\x14\x48\x40\x92\x79\xf9\xf0\xa1\x74\x61\x78\x00\x3c\x8a\xe3\x08\x85\xdb\x6b\x24\xc6\x8f\xf2\xb8\x70\x5d\xb1\x74\x5e\xa3\xae\xad\xbd\x0e\x0b\x1e\x8f\x08\x4f\xa8\x97\x7a\xbb\x90\xc7\xbc\xad\x96\x9d\x43\x79\x94\x28\x6e\x7c\x9e\xf8\xf8\xf0\x70\xeb\x2a\xc9\x13\xb8\x34\x8f\x12\xa0\x11\x73\xdd\x83\x3d\xa4\xae\xf1\xe2\x0f\xa5\x91\xc4\x45\x63\x65\x4c\x97\xcb\xce\xe2\x21\x1e\xa5\x34\x61\x81\xfc\x2d\xcb\x2e\xf0\x5f\x26\x10\xa5\xc3\xab\xce\xa3\x54\x08\x1b\x92\x37\xef\xdf\x50\xdd\xf4\xcf\x74\xe9\x5d\xe5\x51\xaa\x1d\x8e\xf3\x6e\xf5\xaf\x9b\xbb\x6f\x77\xc1\x27\xf9\xdb\xf6\xe6\xe1\x7e\x77\x7b\x73\x77\xb3\xdd\x5c\x86\xce\xd8\xb7\xe7\xcb\x70\xfd\x94\x46\x68\xb5\x0f\xa7\xba\x1a\xd0\x85\x3c\xa2\xd2\x35\x38\x7b\x80\x3b\x02\xe6\x7e\x9b\x7e\x27\xb5\x04\xcb\x78\x5e\x96\x61\x41\x33\x78\xf6\x1a\x50\xab\x4d\xda\x07\x6f\x4b\xfa\xc2\x3c\x62\x9c\x66\x4e\x68\x7c\x9f\x2f\x93\x4a\x27\xcf\x86\x49\x45\x7d\x3c\xb8\x49\x9f\xaa\x9f\xbe\x96\x36\x3f\xa9\x72\x9e\x45\x8f\xd7\xfd\x2f\xe7\x00\xb8\xaa\xd9\xaa\x3e\x48\x57\x5b\x98\xfe\x3a\xa1\xa8\x7b\x67\xb1\x01\x33\xda\xf7\x78\x94\xc5\x0e\x4d\x51\x95\xa1\x48\xe9\x54\x8d\x1d\x76\xe2\xd3\xf0\x8f\x47\x19\xc9\x1c\x81\x2d\xa0\xc3\x6e\xfc\x62\xfd\xc1\x4d\xcb\x94\xab\x5c\xcb\x37\x99\x17\xdd\xea\xf8\xe8\xea\x22\xbd\x1e\x28\x8f\x54\x92\x21\xbe\xef\xf6\xe1\xe2\xeb\xb7\xc7\x1d\xbb\xc3\xa6\xe4\xf6\xe6\x6e\xf3\xbc\x5d\xdd\x3d\xf6\xc3\x84\xc2\x45\xe4\x45\x36\x57\xf9\x1b\xfc\x0e\xb2\x9e\x02\xf2\x79\xa4\xa4\x15\x69\xff\xea\x5d\xe7\x6f\x10\xd0\xc8\x3c\x52\x4a\x20\xf0\xf0\xe2\xe9\xe1\xc7\xe5\xee\xc7\x66\xf3\x35\xf6\x6f\x54\x3f\xc2\x6a\x24\xdd\x75\x91\x19\xae\x0c\xfd\x3c\xd1\x29\x61\xc1\x4e\xa8\x44\x12\x7c\x7f\x33\x8d\x92\xa8\xc4\xb0\x7d\xd8\xae\x6e\x77\xe8\xf1\xbd\xea\x2f\x19\x68\x8a\x02\x83\x79\xd9\xc5\x5e\x67\x49\xd4\xe4\xc6\xda\x08\xb0\x00\x67\x06\xdc\xca\x59\x69\x9a\x47\x56\x64\xc1\xbc\xf5\x7a\xfb\x30\xc9\x2e\x78\x1c\x91\x0c\x1b\xf0\xad\xe7\x8f\x17\xbd\x42\xdc\xd8\x81\x85\xc7\x71\x44\xb5\x0e\x0a\x33\xa7\xa2\xfd\xcc\x22\x91\xc7\x71\xec\x1c\x87\x82\x72\xdb\x0e\x31\xb6\xd3\x2a\xcb\xbf\xe3\x69\x35\x9e\xc7\x71\xa2\x70\x2f\x3f\x38\x67\x9c\xdb\xbc\xc1\x15\x79\x36\x28\x75\x4b\xbe\x8f\xab\xfa\x40\x7e\x34\x02\x52\x19\xa2\xe5\xee\x3e\xf4\x92\x93\x3c\x26\xd4\xb9\xe0\x75\xb1\x79\xd8\xb4\x9c\x75\xf2\xf4\xfa\x09\xb7\x58\xad\xfb\x03\x26\x0a\x14\x3c\x26\x3a\xd6\x4e\x31\x11\x60\x24\x9a\xc6\xe3\x84\xb9\x77\x1c\x77\xce\x27\x7c\xc7\xbf\x35\xe6\x02\x71\xd7\x61\x88\x10\xce\xdf\x1f\xda\x6b\x28\x61\xda\x25\x3f\x0d\x36\x0d\x3c\x4e\x4c\x86\xc2\xeb\xd8\x64\xdf\xc5\x51\xb4\x23\x34\x0a\xa7\x49\x55\x84\x3d\xe5\xca\xda\x05\xcc\xe0\xec\x96\x52\xe3\xc2\xe0\x6d\x0e\xf5\x8f\xbc\x30\x5a\xb6\x41\xe4\x77\xf9\xc9\xb1\x18\x9c\x6f\x73\x75\x38\xc8\xd2\x5c\x43\x3b\x5e\xfd\x63\x46\x9c\xf7\x65\x0d\x6d\x2d\xf3\xf6\xb9\x95\xa5\x91\xb5\xd9\x91\x30\x80\xa7\x54\xca\x01\xe4\x83\x8e\xf4\x70\xc6\xd5\xef\x07\x6b\x6f\x4a\xd8\xed\x76\xc1\x10\x29\x1c\x14\x0c\x45\xa4\x9f\x56\x5b\x94\xd0\xd8\xc5\x69\x7f\x08\x6c\x28\x3c\x7f\xaf\x3c\x81\x48\x1e\xfe\xcf\xad\xc7\xd9\xbd\x12\xc4\x04\xfb\x26\x59\xb8\x4a\xc6\xcd\xc5\xc3\x18\x68\xcb\xe3\x2c\x06\x94\xed\xcc\x9b\x1f\x2f\x88\x61\x7a\xef\xcb\x98\x3c\xce\xa8\x21\x49\x2f\x6f\xdc\xca\xa2\x70\x2c\xbe\x71\x7c\xce\xe3\x8c\x09\x87\xa4\x29\xaa\x9f\x21\x7c\x88\xc3\x31\x1e\xd3\xee\x86\xfc\x74\x8a\xf8\x6f\xb2\x95\xfd\xfd\xc8\x40\x48\x3f\x03\x67\x45\x9f\x61\x23\x8d\x55\x0a\x89\x0e\x56\x7d\x75\x17\x64\xcd\xe8\x3c\x7e\x9c\xe6\x52\xaa\xf0\x5b\x77\xdd\xdb\xfc\x27\xec\x5a\x08\xd6\x33\x3c\xd6\xd2\x15\xd7\x8c\x6c\xe5\x2c\x17\xe3\xb1\xd6\x19\xee\x6a\x08\xfb\xea\x7e\xa3\xaf\x52\x85\xc3\x60\x52\x07\xb7\x92\x75\xbb\xae\x26\x58\x61\x1e\x6b\xcb\x30\xc4\x39\x9e\x8a\xc2\x95\x63\x11\x0c\xe5\x97\x13\xdb\x42\xed\x8c\xe1\xfd\xa2\x1f\x3e\x66\x12\xc0\x2b\x96\xc6\x6c\x7e\xb5\xb5\xbc\x94\xef\xcd\xec\xb2\x8c\x4c\x71\x31\xbe\x76\x39\xfe\x78\x03\x8b\x21\x8a\x91\xca\x75\x3c\x35\x2f\xf7\x95\x01\xf4\x84\x98\x91\x72\xc3\x50\xea\x6c\xc3\x46\xf6\x45\x4d\x10\x6b\xc1\xe4\x3b\x9c\xd3\x02\xc3\x1a\xc1\x2e\x24\xd7\x5f\x64\x6d\xe6\x05\x77\x4e\x22\x9a\x00\x1b\x5a\x0d\xdb\x97\xbc\xc1\x39\x15\x60\xd5\x9c\x44\x4a\x61\x1c\x5a\xe4\xb2\x1c\x39\xcb\x73\x12\x47\x96\xf5\x99\xe2\x9d\xcc\xcb\x21\xa6\xe6\x24\x4e\x39\x2e\x04\xda\xdf\xbb\x9b\xe6\x02\x6b\xb8\x53\xfb\x46\x4e\x62\xa3\x44\xe6\xb5\xc7\xf3\x1a\xbe\xbe\xeb\x41\xee\xc1\x0f\x21\x82\x21\xad\x2b\x6f\xb6\x2f\x50\xc3\xaa\x7c\x28\xaf\x2b\x54\x78\xf1\x7d\x8f\x30\xce\xa4\xd8\x84\x80\xd2\x56\xb5\x0e\xf1\x8c\xd3\xc8\xf4\x43\x12\x12\xa1\x3e\xc6\x3d\xfc\x44\x57\x93\x2e\x8b\xc0\xac\xd2\x57\xd8\x3e\xa8\xad\x7f\x08\xbe\xe6\x24\x8d\x08\x4e\x8a\xd5\xe6\xfe\xe6\xfa\x6e\xf5\x47\xf8\xa6\x14\x38\x8a\x36\x3e\xca\x32\xb8\x24\x73\x42\x23\x19\xb8\x98\xcf\xaf\xa7\xa2\x98\x3d\x0b\x1a\x67\x98\x64\x3a\x26\xcf\xcc\x09\x6f\x34\x91\x08\x4d\x9c\x74\x6e\xe9\x9b\x7a\xb7\x20\x6d\xff\xbc\xa8\x10\x2a\xa0\xab\xce\x76\xe8\xc9\x6c\x27\xd4\x30\xec\x0f\x3a\x92\xc5\x34\xba\xfb\xa8\xaf\x30\x94\x84\x38\x61\x44\x40\x88\xd6\xbb\xf7\xf9\xb9\x85\x23\x99\xfd\x28\xa6\xa4\x13\x0c\x2d\x83\xcc\x45\xdd\xe6\x33\x5f\x62\x4e\x38\x95\xca\xaf\xcc\x77\x53\x5d\xad\xcf\xd7\x45\xc2\x95\x13\x91\xee\xc3\x37\x57\xdf\x3d\x87\x63\x71\x22\xa2\x84\xb8\x66\x42\x51\xdc\x4d\x3d\x64\x39\x11\xb1\xc5\x19\xec\xeb\xe9\xde\x7c\xce\xcc\x4f\x91\x58\xcc\xd9\x90\x47\x87\x81\x78\x68\xef\xce\x8a\x80\x61\x3c\x77\xdc\x0a\xa7\x71\x1c\xcc\xf8\xc3\xed\x13\x82\x6b\xd2\xe3\x37\x83\x8e\x43\x17\x15\x34\xad\x3c\xcc\x67\x6a\xc6\xa3\x2c\x19\x15\x12\x47\x32\xfd\x61\x84\xb5\x36\xe0\x71\xab\x43\x50\x48\xf0\x07\x25\x17\x9e\x22\xf3\x56\xe9\x01\x36\xc2\x89\x4a\x62\xd4\x7f\xf0\xe0\x49\x44\x90\xbe\x9c\x83\x7c\x38\x51\xd2\xa1\xf8\x5d\x95\x64\x73\x40\x57\xaf\x69\xb2\x3e\x95\x26\x08\x8b\x16\x51\x5a\xa0\x70\xef\xf5\xc5\x45\x88\xd0\x51\x54\xd4\x1f\x36\x2c\x41\xce\xd0\x65\xfe\xf6\xf6\xfe\xed\xb8\x58\x9b\x9f\x93\xd7\x3f\x2b\x92\x71\x62\x94\xf1\xeb\xf1\x1b\xd4\xed\xee\x20\xf5\x4b\x5e\x0e\xdf\x67\xd2\x2c\xd4\x47\x30\xa1\x82\x87\x53\xbb\x6a\xdb\x6a\x92\x80\x13\x63\x04\x72\xe7\xb0\x80\xba\x06\x5b\xd5\x30\xf6\xf7\xf5\xa3\x2c\xa1\x58\x3b\xea\x02\xd8\xee\x4d\x98\x36\xa7\x66\xd7\x65\x69\x4a\x9d\xc4\xfc\xb7\x9b\xfb\x6d\x4c\xa2\xd9\x33\x46\x6d\xfc\x11\x1d\x6f\xfd\xfe\x04\xcd\x7f\x4f\xe1\xca\x93\x38\x03\xa7\x58\x32\x71\x02\x0f\xf8\x80\x05\x80\xc8\xec\x9f\xc9\xd5\x24\xb1\x14\xb8\x60\x1a\x5f\xea\x08\x35\xf8\xff\xef\xac\x92\x26\x6b\x67\x12\x6b\x8d\xb2\x99\x8f\x05\x98\x7d\x70\xf4\xef\xb7\x89\xc9\x9d\x49\x48\x0a\x58\x5a\xe8\x36\x75\x94\x2d\x27\xbf\xfd\x35\x9f\x93\x27\xc4\x44\xa8\x6b\x97\xef\xcb\xaa\x86\xaf\xbf\x5f\x74\x29\x48\x70\x12\xe0\x49\x12\x29\x11\x16\x64\xbc\xb2\xb8\x3f\xc2\x52\xc4\x19\x9e\x4a\xe5\xa1\x93\xa3\xf6\x25\x4f\x12\x01\x18\x81\xfc\xaf\xd4\xaf\x8f\x55\xbb\x86\xa6\x1d\x9c\xda\x78\x92\x98\x18\xb5\x38\x90\x05\x77\x27\xcb\x93\xb3\xe1\x1a\x7d\xde\xa4\x8e\xa4\xea\x9d\xb0\xce\x9b\x37\x3c\x49\x6c\xc2\xa2\xff\x9b\xaa\xd4\x07\x6c\x88\x0f\xff\x9d\xde\xe3\xd4\x5a\xcc\x01\x7a\xe9\x2f\xb3\xd9\x7e\x99\x5d\x14\xa5\x11\x66\xa4\x01\xb9\x31\xa0\x37\x97\xcf\xc9\x12\x11\xcb\x51\x1c\x30\x62\x4e\xf0\x84\x65\x1a\x67\xd8\xfa\xe1\xdb\xfd\xf6\xf7\x45\x1b\x9c\x6e\x10\xa0\x01\x9f\x8b\xc3\xf1\x41\x48\x6f\xfd\x3e\xfb\x2a\x6b\x62\xd6\xf3\x30\xa6\x61\xa8\x1f\x92\x25\x0a\xf9\x6c\x8e\xac\x87\x60\x9d\x2f\xb2\x18\x4c\xc2\xd2\x33\x23\x67\x9e\x64\xda\x51\xc5\xf7\xd0\xfe\xb3\x52\x4f\x12\x37\xa7\xe5\x1f\x9b\xd9\x0c\x1f\x3b\x26\x94\xd7\xf2\x00\xbe\x5f\x30\x36\xb9\xe7\x89\x24\x02\x7b\x54\xae\x80\xfb\xa3\xaa\x5f\x67\x57\x29\x29\xc3\x46\xc7\xf7\xfc\xf5\x75\x5c\x9c\xe5\x89\x54\x44\xc3\xe0\xdc\x76\x05\x70\xa6\x1d\xc2\x13\x95\x44\xc1\x12\xea\x2b\xbc\xf7\xa2\x26\x43\xaf\x76\x96\xa9\x27\xca\x80\x13\x5f\x7c\x6f\x5a\x38\x2c\xda\x53\x84\xec\x2f\xd1\x94\xe1\x8e\x56\x59\xf4\x92\x29\x46\x74\x7e\x9e\x68\x15\xe1\xb2\x5b\x63\x17\x19\xcc\x57\x59\x1f\xba\x00\x7d\x32\xeb\xb5\x51\xd8\x48\xbe\xcd\xdb\x60\x2a\xc5\x13\xa3\xc4\xe0\xed\x77\xbf\xb3\xa5\xee\x8f\xe8\x04\x2d\x6f\x1c\x3d\xf1\xa1\x2c\xf2\x12\xae\x7f\x0c\x47\x79\xec\xcb\x07\x17\xef\xba\x18\x49\x15\xf2\x04\x14\x30\xf7\xea\x39\xcc\xe6\x47\xcd\x46\x9e\x58\x16\x63\x6f\x2f\x2c\xa8\x55\x3d\x7f\x71\x6c\x26\x99\x1c\x21\xc3\x2f\x6f\xa6\x56\x19\x3c\x8d\x78\x86\xdb\x73\x5e\xfe\xcf\x29\x6f\x6f\xcf\xd2\xf6\x34\x52\xdc\xa1\x04\xbb\xb4\x02\x4e\x87\xeb\xaa\x30\x8f\x75\xb8\xda\x34\x26\x12\xe7\xc2\x16\xe4\x61\x55\x1a\x5f\x38\xf3\x6e\x36\x81\xf5\xb0\xbc\xad\xa4\xb1\x54\xa9\x2f\x6b\x9e\x8e\xa1\x45\x72\x55\xc8\x7d\x7f\x72\xeb\x52\xb7\x36\xef\xcd\x41\xc2\x21\x42\x09\x16\xe0\xf7\xf9\x1b\x3c\xd6\xd5\x1e\x74\xfb\x09\xd0\x8b\xa7\x84\x67\xc4\x4e\x04\x9f\xd6\xef\x9b\x37\xa8\xdf\xab\x72\xd2\xbf\xe7\x29\xb1\x3a\x51\x73\xc2\x42\xf8\xda\x14\x32\x54\xe3\xb8\x90\x45\xe1\x90\x6e\x7f\x17\x07\x31\xbb\x1e\x1a\x1b\xac\x25\x4a\x63\xfe\xe7\x94\xeb\x57\x54\x06\x18\x97\x05\x52\x6a\x9c\x69\xd2\xff\xca\xbc\x70\xd1\xe1\x8c\xf9\xcc\x53\xc6\x28\x16\x9a\xe0\x57\x0b\xa5\xb9\x0c\x85\xfc\xe9\x37\x71\xaf\x3f\xf9\x7c\xcc\x35\x78\xc7\x83\xf0\x1d\x5c\x3a\x71\x91\x3d\xb4\x3f\x6a\x79\x3c\xf6\xde\x3e\xfd\x00\xeb\x28\x03\x35\xde\x85\x27\xf8\x5f\xd0\xfd\xbd\x10\xa0\x91\x4e\x7d\xf9\x5e\xca\x43\xae\xe3\x1d\xfd\x35\xfb\xea\x2c\xd6\xb8\x15\xe8\xa2\x6a\xfa\x00\xd9\x1f\x93\x3c\x72\xaa\xf6\x85\xd4\x70\x5f\xb5\x30\x12\x08\xfd\x00\x5b\xca\x53\x95\xda\x50\x31\x7b\xce\xf7\x65\x97\x4d\x9d\x54\x91\xeb\x19\x4b\x9b\xa7\x2a\x73\x7e\xec\x3d\xaf\xfd\x20\xeb\x77\xef\x08\x62\x7c\x57\x73\x7a\x2f\x0d\x33\x22\x1e\x04\xf2\xc2\x65\x1a\x9e\x48\xef\xca\x7e\xeb\x48\x0e\xe3\x6c\x6b\xae\x69\xb5\xf8\x8f\x3f\x93\x4d\x12\xd4\x2c\x30\xd5\x73\x7b\xb2\x36\x7c\x81\x15\x3c\xf5\x98\x8d\xbc\x34\x50\x5f\xc8\x42\x2f\x77\x19\x52\x2b\xc0\xb2\x60\x9a\xf7\xf6\xd1\x20\x48\x78\x34\x92\x03\xde\x3e\xf7\xdf\x64\x39\x8a\x13\xfd\xfe\xf0\xfb\xc3\x8f\xe9\xaf\xa7\x51\xc2\xd0\x37\xe6\xea\x54\x1a\x9f\x1b\xb8\x3b\xfb\x0c\x7f\xa1\x83\xc5\x69\xa4\x89\xe1\x21\xe0\xbc\x29\x27\xd1\x28\x8d\x39\x47\x34\x8c\x83\x42\x39\x98\xc9\x79\x0e\x40\x49\x1c\x51\x36\x08\x8c\xe4\x25\x5c\x55\xf5\xe7\x99\xdd\xe4\x67\x53\x92\x52\x7c\x7c\x72\x66\xb8\x32\x1f\xc6\x54\xd4\x7b\xe7\x78\x80\x65\xaf\x0c\x15\xc6\x08\x43\x3d\xac\xe1\xa6\xcc\x51\xff\xf8\x7c\x11\x9e\x9f\x37\x73\x19\x96\x67\x6c\xce\xee\x2e\xd1\x16\x19\x1b\x79\x83\xaa\xef\xbf\xf2\x66\x2e\x0b\xc5\x69\xa2\x62\x6f\x27\x8e\x77\xff\x61\x51\x26\x8c\xd3\x34\xd6\x19\xcc\x28\x0b\xc9\xe4\xdd\xa7\x69\xe2\x5e\x93\xd3\x71\x5f\x4b\x03\x23\x5d\xc5\x30\x40\xd8\x10\x1a\xa0\x59\x6d\xff\xcb\x53\x15\x3b\xf8\x1b\x3e\x85\x5e\x2a\xfa\xb3\x15\xee\x83\x04\xa7\x3f\x21\x41\x9c\x22\xa6\x76\xf5\x87\x81\xa0\x1f\x4d\x63\x13\xb8\x14\x08\x84\x69\x4e\x87\xc5\xb4\x20\x0c\x57\x3e\x48\x76\x81\xe6\xe0\x22\xfd\xe1\x8e\x49\x59\xc4\x70\x0e\xba\xe2\xdc\x2c\x3a\xa6\xcc\x26\x58\x9f\xb8\xad\xf6\x9b\xba\xae\xea\xbb\x66\xbf\xa4\xd8\xc3\x29\x97\x44\x07\xc4\xf3\xce\xc0\xf1\x03\x1f\x45\x4e\xb9\x71\x89\x91\xed\x42\xb6\xf5\x69\xba\x48\x51\x41\x79\xe4\x7d\xcc\xbf\x57\x27\xfd\x32\x2c\xcc\x54\x30\x15\x98\xcd\x8f\x37\xee\x29\x93\xfe\x98\x92\x28\x03\xe2\x0b\x13\x57\x55\x7d\x0d\x25\xdc\x4a\x35\x5d\x7d\x69\x96\xc5\xde\x88\x4e\x16\xb7\xd5\x7e\x9c\x27\x7d\xac\x02\xd4\x7d\x2c\x83\x68\x80\xeb\x7e\x85\xf7\x51\xe3\x83\x66\xd2\x05\xdb\xbb\xee\xae\x8f\x4d\x31\x39\xcd\x34\xb1\x71\x60\x63\x1f\x8f\x79\x09\x4d\x73\x91\xb7\xf9\x9f\x73\x05\x08\x4e\x33\x13\xeb\xc4\x37\x88\xbc\xa0\xf1\xdc\x2e\x6c\xf9\x15\x91\xc2\x60\xdd\xe4\x58\x35\x8b\x3d\x6e\x4e\xa5\x16\x78\x15\x8f\xab\xdf\x1f\xbe\x6d\x77\x97\xab\x6d\x08\xc9\xa9\x34\x99\xf3\xa6\xaa\x8e\xf0\x24\xf3\xe0\x11\xe2\x8f\xea\x24\xc1\x68\xea\xb6\xda\x3f\x9e\x66\x64\xf2\x98\x88\xe9\xb7\x68\xee\x30\xcd\x08\x7d\xd2\x55\x69\x7e\x07\x89\xce\x73\x3f\xbb\x75\x6e\x51\xbf\x9a\x53\xad\x12\xa0\x61\x3b\xf4\xd6\xb2\xe1\xdb\x8d\x8e\x60\x48\x91\xfd\x92\x74\x89\x55\x9d\x73\x19\x3a\x4e\x0d\xa4\xd8\xcd\x40\x38\xcd\x43\xe9\xd4\xb3\x27\x98\x6e\x4e\x81\x2b\xdc\xf8\x9d\x81\x65\x5e\xee\x5d\xf7\x75\x7a\x22\x90\x14\xf8\x88\x13\x33\x7b\x50\xd6\x83\x17\x74\xc8\x97\xc6\xfc\x26\x4e\x2d\x8f\x51\x64\x71\xb3\xfd\xd2\x03\xc3\xfb\xbe\x3a\xb5\x06\x92\x41\x0c\x05\x45\x18\xdd\x92\xfe\x29\x24\xd8\x7d\x98\x45\x31\xb1\xc1\xed\xb9\x6a\xe0\x9f\x79\xb9\xef\x85\x68\xfd\xc6\xfa\x6f\x1a\x30\xb3\xc4\x2b\x3b\x71\x16\x65\x06\x13\xb7\xdd\x6e\x04\x20\xe3\x2c\x52\x31\x0f\x5c\xa6\xc7\x17\xd9\xbc\x5c\xd5\xd5\x61\xed\xbc\x2c\x6f\x96\x49\x88\x9c\xc5\x24\x46\x9a\x6f\x51\x49\xe3\x54\xf5\xc3\xe9\x62\xaa\xb1\xab\x0b\x08\x34\x79\x82\xfd\xa9\x18\x33\xbf\x27\xef\x0a\x8b\xad\x03\xf1\x40\xd3\xdd\xc5\x11\x5e\x86\x33\xc2\x45\xdf\xd8\xaf\x8e\xd2\x61\xde\x17\x9b\x48\x8c\x18\x8a\x04\xe6\xdd\xaf\x50\x97\x65\x49\x24\x89\x83\xd4\x60\x59\xef\xcc\x7f\x6a\xba\x4f\xb3\x24\xc9\x10\xcc\xbe\x6b\xa0\x28\x1e\x4f\xed\xb6\x7a\x38\xfe\xf5\xfe\x3a\x3b\x49\x1a\x53\xdc\x7f\x6c\x5e\xf6\x08\x4f\xf4\x05\xf8\x40\x43\x95\xb3\x14\x0c\x22\x43\x9d\x69\xb3\x83\xf0\xfa\x22\xf1\x43\xf9\xcf\xd3\xa0\x7f\xcc\x19\x15\xc2\x69\xa4\x1c\x8f\xc5\xfb\xee\xb9\xad\x6a\xd8\xdd\x98\xdd\x15\xf4\xcf\x91\x66\x91\x5f\x38\x70\x9f\x9d\x58\x83\x7d\x1c\x37\x32\xce\x39\x5e\xc3\x76\x3b\x70\x2d\x38\xe3\x19\xc3\xa2\x80\xd3\x87\x44\xdb\xed\x05\x9b\xab\x11\x6b\x9a\x33\x91\x3a\x67\x41\xec\x4e\xb8\xc9\x1d\xf9\x43\x59\x1c\xa3\x5e\xcd\xaa\xae\xfd\xcf\xbb\x69\xae\x50\x7a\x73\x3a\xa7\x58\x26\x62\x44\x9c\x8d\x3b\xe0\xd8\x95\x0c\xd7\x95\x65\x12\x8d\x4d\x91\x1e\xdc\xd3\xbe\x39\xcb\x94\xc6\x20\xcd\x73\x42\x9f\x8f\xdd\x12\x36\x92\x4a\xe8\x46\x38\x93\xe3\xea\x08\xe5\xe6\xf9\xe1\x31\xe4\xcd\xe3\x9f\x90\x69\xe2\x22\xa5\x6e\xb5\x72\xaf\x75\x33\x10\x2c\xdd\x71\x67\xb7\xb0\xaf\x5a\xa9\x47\xf7\x4b\x45\xce\xd7\xf0\xfe\xa4\x0b\x38\x35\xdf\x31\x41\x1f\x27\xfa\x5d\x70\x15\x64\xda\x2f\x73\x0d\x3f\xf2\x72\x2a\xc4\x34\x01\xa2\x8f\x5a\x03\x4c\xc5\x94\xb1\x91\x61\x8b\x43\xdf\x37\xfd\x79\x65\xe2\x36\xdc\x9e\x78\xe3\xb5\x16\xce\x23\x24\xa6\xbd\xd9\xb1\x23\x75\x34\xad\x2c\xe6\x53\xc9\xc8\x28\x0a\xf7\xf7\xe2\xe1\xe6\x3e\x7c\x0b\xf0\x0c\x03\xa7\x56\xd6\xf8\x03\x9c\xa6\x87\x87\xf9\x85\x31\x40\xb0\x27\xbd\x69\x5f\x7e\x9c\x7e\xe5\x32\xfc\xdd\xc6\xda\x9b\x6c\x60\x42\xb3\x2a\x7b\x8c\x6a\x28\x27\x33\x4b\x9c\xad\x7e\xb7\x0a\x94\xcf\xef\x07\x15\xb0\xef\x9c\x59\xca\xf1\xce\x3e\xbf\xe4\x6d\x77\xc7\x2f\x86\xa2\x1c\xb3\x19\x77\x14\xf9\xbc\x04\xaf\x04\x32\x79\x9f\x78\x94\x32\x64\xa8\x5e\x5c\x5f\x8c\xde\x6e\x1e\x89\x04\x05\xc0\x1e\xd6\x9b\xab\xd5\xc5\xf4\x16\xf0\x98\x6b\x67\x41\xfc\x22\xf5\x6b\x35\xa1\xfe\x71\x4e\x24\x49\x64\x10\x98\xde\x9f\x7a\xb8\x62\x77\xc4\xb5\x42\x5d\x63\x20\x3f\x9c\x0e\xeb\x99\xf6\x37\xe7\x49\x04\x86\xcf\xd8\x8a\xcd\xfa\x54\xbc\x7e\x1c\x97\xf1\x24\x35\xd4\x77\x79\xd7\x70\x06\x31\xff\xc7\xec\x0b\x74\x64\xbc\x08\xed\x73\x75\x2a\x66\xbf\x2c\x05\x1a\x80\xe8\x8f\x2e\x21\xf9\x01\xf9\xec\x12\x29\x77\x3c\xae\xcb\x93\x7e\xed\x27\x0f\xa7\x92\x62\xa3\xe0\x52\x1a\x39\x16\x92\xf0\x87\x19\x4d\xb0\x94\xbb\x6b\x5a\xb4\xd0\xc6\x3c\xf9\x09\xcd\x60\x67\x97\x20\x48\xe4\x00\x02\xfe\x6d\xbd\xcc\x1b\x39\x57\xa4\xe0\x5c\xe8\x08\xcb\x65\xb2\xae\xe5\xfb\x83\xbd\xaf\xca\x6d\x9d\xbf\xe5\xb2\xe8\x3d\x23\xfd\xc0\x2c\x31\xda\x19\xbc\xbf\x55\xaf\xf0\x50\x6a\x98\x0b\x37\x73\x2e\xa5\x4d\x1d\xe4\xa4\x99\x3c\x4a\x69\x29\xc6\x00\xcd\x49\x75\xcf\x21\x34\xe7\xfc\x51\x95\x49\x0c\x88\xf2\x06\xf5\x83\xe6\x27\xd5\x24\x16\x69\xe8\xbd\x7b\xf3\xd4\xf1\xd2\xce\x75\xc2\xa8\x0f\x15\x8f\x0e\xcc\x77\x74\x3c\xd6\x70\x3c\xb5\x98\xd3\x34\x27\x75\xc8\x43\xa3\x77\xb2\xb8\xce\x2b\xdf\x5c\x83\x51\xce\xe6\x5a\xbf\x9e\x8e\x31\x99\xa5\x52\xdc\xa4\x02\xc9\x9d\xc8\xc1\xc7\xf8\x33\x09\xdf\x66\x8c\x41\xb8\xb6\xee\x9b\x48\x3b\x2c\x88\x84\xe3\x96\xb2\xd8\x91\x90\x31\x50\x43\xb5\x22\xd7\x1f\xf1\x08\xce\x11\x0c\x92\x8b\x28\x72\x3c\x85\xbb\x4b\xda\xc5\x0a\x6e\x6b\xce\xcb\xfd\x57\x78\xff\x59\xd5\x66\x22\x7e\xc1\x45\x14\xeb\xb0\x2f\xdd\xc3\x2f\x47\x05\xbf\xac\xca\x85\x7a\x8c\x88\x52\x8e\x60\xb9\xbe\xc3\x1d\xbe\x31\x26\x69\x16\x16\x2e\x54\xde\x47\x31\xec\x71\x04\x29\xe2\x44\xe0\x8e\xff\x63\xfd\xad\xff\x14\x8f\x30\x67\x43\x0f\x41\xf7\x8c\xfc\x91\x24\x4e\x31\x54\xef\x63\xb7\x1d\xb4\x2f\xbb\x51\x18\x23\x12\xce\x31\xf8\x7b\x5a\xdd\x8d\xf1\xf8\x5c\x24\xca\x62\x14\xb5\xb9\xbe\x7e\xde\x6d\x1f\x76\x5f\x56\xdb\x8b\x2f\xbb\xf8\xf2\x69\x75\xfd\x70\xdf\x0f\x32\x8e\x44\x61\x01\x9e\xe0\x58\xbc\x6f\x5f\x6a\x90\xfd\xb9\x53\xe1\x88\x8c\x3f\xeb\xbc\x05\xa3\x3e\x49\xe4\xd0\x39\x01\x89\xbc\xf7\x57\x4f\x9b\xcd\x1f\x9b\xdd\x76\xb3\xba\xdb\xb9\xea\x7a\x38\x1d\x4f\x14\x42\xbf\x10\xe5\xbc\x45\xa4\xd0\xe8\x7a\x79\x0a\xc1\x04\xbb\xbb\xfd\xab\x00\x72\x73\x8c\xa0\x30\x88\x43\x6a\x02\xab\xa5\x2a\x9b\x5e\xcb\x2b\x1c\xd7\x99\x1d\xe5\x55\x23\x89\xfb\xe5\x80\x4a\x70\xcb\x71\x9e\x7f\xad\x4c\xa5\xfa\x72\xb2\x10\x91\x90\xb6\x67\xaf\x3c\x57\x85\xb9\xae\xfa\x4a\x87\x10\x31\x18\x08\xbd\x1b\xa9\x5f\x5d\xcf\xf2\xc2\x69\xf9\xcb\x85\x06\x81\xc8\x8c\x45\xec\x7b\x5e\x3a\xfd\xef\xbe\xac\x3a\xa9\xb4\x08\x19\x3b\xdd\x7d\xff\xb5\x98\x3e\xbc\x85\x83\x3a\x4e\x5d\xa8\x23\x4f\x3d\x66\x4e\x98\x94\x60\x8b\x02\x89\xbb\x2e\x89\x9e\x09\xe5\x73\x61\xa8\xc5\x3e\xb8\x37\x9e\xc2\x42\xf5\xf2\xdd\x30\xe0\xcc\x55\x4f\x0d\x5a\x98\x5f\xcb\x43\x17\x90\xda\x22\xef\x49\x76\x1f\xf4\x42\x97\xd7\x83\xb3\xe6\xd0\x44\x3b\xcc\x7f\x27\xc4\x11\x9a\xb5\x3f\x6f\xbe\x3c\xed\x7e\xac\x6e\x6f\x37\xdb\xdd\xea\xf2\xf2\x69\xf3\x1c\x82\x29\x01\x42\x10\x4f\x8d\x5d\x69\x47\x4d\xf6\x64\xda\xf5\xfb\x4d\x69\xe0\xd7\x07\xb4\x7b\x2e\x40\x25\x08\x96\x72\xa5\x2b\x8f\xf9\xf9\xf1\x02\xe5\x63\x77\x13\x67\x99\x92\x00\x95\x6a\x39\x78\x74\x4c\xf0\xe2\x5c\x80\xe5\xc8\x6a\x7d\x02\x59\xdc\x49\x53\xe7\x61\x9e\x64\x11\xc9\x50\x58\xc7\xb5\x55\x56\x88\x21\x43\xcd\xfd\x2e\x6e\x99\xdd\x8b\xb0\x5f\x66\x51\x12\xe1\x87\x5a\x07\xc5\x73\x02\x3e\x67\xc2\x2b\x93\x3a\x8d\xff\x64\x4c\xa8\x4c\x7b\x13\x8d\x6e\x07\x3f\x33\x86\xe1\x59\x9c\x6a\xe6\x30\xde\x55\x51\x95\xfb\x71\x6a\xe1\x47\x90\xc8\xc5\x1c\x85\x6c\xda\xc7\xee\xcb\x1f\xde\xa0\xb6\x45\x60\xa8\xf2\x8c\xa4\x02\xc1\xe9\xd5\x08\xcf\xfb\x9c\xff\x09\xfd\x71\x1a\x63\x81\xe3\x51\x96\xdd\x6e\x5b\x0f\x07\x44\x8c\x1a\x6b\x45\xb5\xcf\xa7\x36\x9a\x3c\x4b\x08\x44\x5e\x71\x37\x24\x49\x73\xa5\x88\xc9\x3b\x99\x25\x29\xa0\x30\x5a\xf3\x9a\x97\x8e\x8c\x67\xc6\x9d\x9f\x2c\x91\x40\xc9\xc4\x3a\xea\x52\x56\x08\x25\x98\x40\xd4\xb2\x34\x11\x34\xeb\x7b\x74\xe3\x32\x7d\x96\x66\x19\xa2\x17\x4a\xf8\xf9\xad\xce\xd7\xb2\x99\xee\x91\x19\x8d\x6c\x68\x72\x8c\x52\xe4\xc5\x1c\x2f\x63\x71\xac\x54\xcf\xdf\xbb\x2e\x2a\x25\x8b\x8b\xaa\x6c\xda\x5a\xe6\x68\xc6\xd0\x4b\x79\x87\x9f\xbb\x94\xa3\x65\x4c\x72\x35\x14\x39\x27\xfc\xe7\x7d\x7f\x9f\x99\x49\x31\x39\xc7\xe4\x71\xb2\x9a\x66\x0c\x9c\x06\x60\x17\x04\x7b\x29\x7c\xec\x12\x4f\x5f\x12\x9e\x30\x87\x6c\xfe\x29\x8f\x9e\x99\x5b\xd5\x5f\x07\x0a\xca\xec\xa2\x04\xc9\x10\x59\x55\xc8\x53\xa9\x5f\x06\x73\x96\x51\x54\xf8\x61\x7c\x98\x89\x34\x55\x93\xad\x2c\xbc\x51\x3d\x56\x3f\x13\xcc\x86\x47\x89\x58\x86\xee\x01\x56\xb5\xef\xcb\x87\x41\x92\x59\x2e\x07\x0f\xf1\x1f\xb2\xae\xf3\x51\xd7\x6c\x7c\x0d\xe1\x13\x22\xb1\xbe\x2a\xd4\x77\x18\xa7\xf7\x41\x2a\x8d\x71\xb6\xec\x5e\x98\xa7\x53\xd9\xcd\x49\x87\x35\xf9\xab\xbe\xb7\x3f\x81\x8a\x9d\x9d\x3d\xf2\x5e\x0e\x0a\xea\x0b\x59\xa2\x7f\xf7\xf4\x06\x2a\x2b\x71\x21\x1b\x30\xfc\xfe\x80\xb6\x16\xb9\x23\x4e\xb8\xec\x74\x26\xde\xb7\x88\x62\xc8\x4c\xca\x50\xaa\xef\x72\xf5\xb0\xad\x4f\xe7\xb8\xf1\x7f\x2c\xcb\x7b\xfb\x6a\x98\x3f\x09\xa4\x0a\xe3\x04\x38\x1c\xdb\xf7\xd9\x64\x05\x91\x4a\xaf\x4d\x71\xf1\x02\xff\x3d\xc1\x38\x38\xc9\x6c\x12\xa1\x50\xb0\x3a\xd5\x65\xb7\x57\xcd\x6e\xaa\x4d\x0d\xae\x97\x3b\x04\x5d\x1e\x8e\x32\xdf\xcf\x17\x03\x9b\xe9\x6c\x6c\xa2\x17\x56\x54\x19\xc5\x31\x4b\xbd\xac\xc8\xb6\x97\x3d\x05\xe8\x17\x1f\x19\xa5\x0a\xe3\xde\xaf\xdf\x7e\x9f\x08\x80\x73\x19\x71\x07\xa4\x6c\xa0\xfd\x71\xe6\xc6\x27\xfa\x41\x32\x10\x95\x90\xcf\xe3\xc3\x6a\xbf\x9f\x4c\x7f\x89\x8c\x32\xc1\x9d\x88\x28\x12\x55\xaf\x1f\xff\x75\x9e\x07\xf9\xa1\x31\xb3\xb1\xef\x09\x3e\xeb\x3a\x3f\xb6\x9b\x5f\xa0\x4f\x73\x45\x41\x2e\x89\xcc\xd0\xfb\x65\x17\x68\x1a\xdb\xd5\xd3\xf5\x66\xfb\x5b\x7f\xd8\xaa\x64\xc0\x46\xae\xa1\x4f\x25\x64\xc2\x05\x9a\x02\x75\x41\xc7\xf3\x49\x35\xf8\x2d\x67\x21\xaa\x4c\xb2\x28\xf1\x0e\x72\x3e\x85\xfd\xc7\xd2\x3f\x61\xb4\x02\x4e\xe7\x6a\xbb\x1f\xce\x28\x99\x40\x8a\xde\x5a\xb9\x76\xfd\xce\x80\x40\x96\x69\xc4\xa5\x17\x54\x59\x9f\xea\x72\x81\xb9\x37\x14\x0c\x24\xe3\x14\xb7\xdb\x4b\xd9\xca\x6e\x73\x42\x55\xde\x0f\xf0\x22\xfe\x23\x9c\x71\x48\xfa\xd5\xf5\x62\xb5\xbc\x50\xc9\x6e\xfd\xc4\xd4\x18\x23\x6a\xb7\x7e\x14\x60\x7a\x7b\x6e\xdc\xee\x66\x4f\x44\xa4\x4c\xd2\x60\x78\x51\x9e\x73\xc7\x67\x0f\x5a\x08\x8d\xd5\xe3\x7c\xac\xa6\x11\x6e\x43\x16\x3b\x9e\x50\xb7\xa9\x63\xc5\x16\x5b\xc3\xfd\x51\xce\x29\x19\x9a\x53\xb9\x2c\x36\x25\x1c\xde\x2f\xaa\x83\xca\x47\xe9\x06\x6a\x61\x86\x8f\xc8\x10\x18\xb6\xb2\x70\xfb\xda\xca\x35\x58\x8e\x83\xba\x19\x97\x99\x02\xa4\x85\xaf\xf3\xf6\x19\xba\xe4\x77\x55\xd7\xd5\xff\x4a\x33\x7c\xb5\x66\xda\x9b\xa2\xad\x4a\xb3\xad\x8e\xa7\x59\xe9\x45\xca\x38\x35\xa4\x6f\xaf\x20\x9b\xf2\xe1\xd4\xea\xea\x03\x77\x36\x2e\x25\x51\xc8\x51\xaa\x0f\x27\x5f\x2c\x21\x62\xba\xc4\x48\x95\x12\x7c\x9b\xef\xde\x9b\x16\xea\xfc\x74\xc0\xf9\xba\x74\xe3\x8c\x27\xf1\x7c\xbf\x79\xde\xae\x46\x75\x2b\x09\x51\x84\x55\xea\x3f\x40\xe5\x77\xb2\x8b\x04\xfe\x4a\xba\xed\xff\x0a\x54\xfa\xab\x1a\xea\xe2\x8f\x87\xc8\x20\x8c\xf5\x1d\x64\xed\x9a\x08\xfd\x3c\xb5\xdc\xad\x9d\x3d\x3c\x34\xe8\xe0\xdc\x43\xbe\x7f\x51\xd5\x69\x44\x52\x58\x7e\x8b\x2d\xc4\x3c\x0b\x05\xb5\x56\x16\x8e\x54\xfe\x0c\x6d\xf7\x0a\x3b\x15\xaf\xc5\xa2\xb7\x8a\x62\xa3\xb3\xe0\x46\x51\x2c\x30\x2a\x46\x43\x15\xa0\x7e\x58\x00\x61\x4f\x1a\x38\x61\x8c\x61\xd8\x55\x69\x4e\x87\x9b\x8b\x87\x80\x53\x53\x31\xd5\x58\xcd\x3e\xf6\xfe\x93\x3f\x83\xe0\x23\x57\xa4\x0b\xdb\xfa\xbe\x81\x73\xe1\x97\xc5\x75\xfe\x06\xab\x9f\x23\x84\xfa\x72\x85\x5a\x11\x16\x4b\xc7\xfd\x87\xbe\xcb\xae\x88\x05\xc4\x6a\x16\x27\xfd\xfa\x5e\x06\x51\x54\xae\x92\x48\xe0\x62\x04\x1e\xdf\x79\x79\x73\x19\x98\xd0\xd3\x35\x51\x75\xab\x5c\x77\xda\xa7\x01\xc3\xa0\x52\x0e\xae\xea\xd2\xed\x32\x93\x88\x51\xa5\xc0\xb0\xd1\x5c\x06\x81\x96\x70\x80\xa6\x1c\x9c\x63\x91\x37\xea\xbb\xcc\x6b\xd0\x6d\x35\x53\x4f\x0c\xa3\x69\x8c\x4a\x0c\x98\xd4\x3d\xca\xf7\x81\x77\xa3\x28\xe5\x91\xaf\x0b\xb6\x79\xb9\xef\xb2\xef\xe6\xa5\x17\xee\xe1\x8a\x72\x8b\xc8\x85\x6b\xac\xd5\x41\xfd\x94\xef\xbd\x00\xf0\xf2\x83\xa7\x5d\xd8\x3f\xba\x15\x5d\x5e\xb0\xd9\x7e\xd9\x56\x03\xd1\x4f\x51\x4d\x50\x7f\xf5\xe1\x62\xfb\x43\x36\x2d\x6c\xab\x4d\x09\xf5\xfe\xfd\x9f\xdf\xfb\x11\x36\x46\x73\xc0\x5f\x47\xfc\x39\x53\x66\x94\xe2\x89\xab\x65\x3a\x20\xdb\xd7\xdf\x2f\x96\xd7\x60\xc5\x69\x8c\xb9\xa4\x23\xc4\xd5\xd2\x7c\xcc\x87\xfb\xa8\xa4\xac\xb8\x8c\x30\x7d\x73\x2a\x1a\xcd\xaa\x06\x2f\x4c\x11\x2e\x46\x64\x0c\x8b\x99\x4a\x9a\x3d\x78\x55\x81\xfe\x4a\x33\x49\x51\xa0\x2d\xec\x2f\x53\x67\xc2\x30\x08\x12\x04\x27\x97\xd5\x21\x2f\x07\x2d\x13\xae\x24\xe3\x0a\xbc\xc4\x06\xd6\x20\xa6\xad\xb9\xee\x38\xea\x53\xac\x6a\xd9\xe8\x71\x8d\x5d\x29\x42\xf1\x81\x7f\x2b\x0d\xd4\x87\xbc\x1c\x79\xc1\x7e\xb0\x38\x85\x0f\x76\x3b\x22\xee\xc2\x06\x7e\x61\x5b\xbf\xaf\x6c\x2a\xc5\x5c\x43\x61\x57\xc3\x1b\xc8\x62\x9d\x9b\xbf\x52\xd8\x3b\xb3\x75\x5f\x5c\xbf\x95\xe2\x32\xf4\x8a\xdd\x02\x33\xe6\x87\x28\x1d\x59\x84\x2d\xba\x37\x21\xaf\x4d\x5d\x1d\x3f\x78\xf9\x34\xcb\x70\xd3\x5b\xe7\xed\xf5\x29\x2f\x8c\x93\xf3\xf3\x07\x4d\x9a\x21\xf0\xb9\x4b\x36\x9d\x2a\x31\xbe\xa0\x8e\x64\xe6\xc7\x00\x27\x7c\x70\x1e\x9b\x14\xde\x15\xc8\x84\xda\xb1\x22\xcb\xd0\x36\x8a\xe7\xbf\xc8\xf2\x14\x17\xa6\xdf\x7f\xff\x7b\x56\xa4\x1c\x55\x5a\x21\xc8\xb7\x81\xf9\x1d\xba\x7d\xca\xc8\xb0\x12\xe8\x28\x62\x88\xb4\xee\xd6\xf2\xc0\xc3\xc5\x05\x66\x56\xe7\xd1\x11\xa5\xc1\xe4\xf7\x1e\x7e\xa2\xca\xec\x8c\x4b\xb1\xf8\x10\x74\x9c\x29\x34\xad\x7d\xab\x5a\x28\xaa\xfd\x6f\x63\x85\xd8\xf9\x50\x05\x58\x90\xdd\x63\x6a\x89\x75\x8c\x51\xeb\x47\xc7\x60\x30\x00\x0d\x6d\x96\xad\x23\xe9\xcf\xae\x33\xe8\x79\x39\x7a\x63\xfb\xb2\x96\xe5\x6b\x37\x3d\x7c\xcd\xbc\x9f\x60\x9a\x00\x30\xd2\xab\x7a\x60\xf6\xb9\x29\x4d\xb3\x0a\xd3\x40\x27\xc2\x2d\x16\x9b\x43\xf5\xbf\xf9\x68\x16\xe8\x54\x4a\xe8\x33\x58\xbc\x69\xdf\xa1\x19\x9d\x99\x46\x06\x6d\xdf\xa0\x5b\x3a\xd7\x5d\x16\xe7\xaf\x32\x9e\xa0\x52\xc2\x68\xea\x74\x76\x1c\x24\xfa\xa4\xe0\xaf\x9f\xaa\xa6\xc6\x69\xd0\xdd\x6e\x2e\xb1\x1a\xe9\xa4\x7a\xc3\xf7\xf3\xc8\xa0\x34\x26\xfc\x3a\x76\x77\xf9\x09\x8a\x4a\x9a\xfb\xd3\xc7\x74\xb9\x10\xfd\x6a\x9e\x99\x1e\xf9\x59\x15\x43\x16\xa7\x45\x9a\x25\xde\x29\x69\xa2\xe2\xbd\x3c\x61\xb4\x60\x84\xf7\x3a\x71\xed\xb8\xf9\x7a\x1a\xe1\x5e\xb5\x90\x8a\x0f\x38\xb8\x1e\xa0\xf0\x39\xca\x42\x67\x34\xa2\x22\xd4\x59\xc6\xde\x07\xe7\x81\xb8\x56\x31\xc5\x02\x61\x17\x53\xcf\x5e\x14\x1d\x43\xec\xbb\x45\x9b\x5f\x5d\x32\x0e\x75\xf7\xae\x84\x5f\xac\x55\x9a\xf6\x9e\x12\x7b\x32\xfc\x99\xf2\x60\x77\xe8\x12\x20\x78\x86\xc2\x39\x59\x3d\xbf\x54\xa7\xc2\xdc\x57\x5e\x79\x16\xe5\x5a\xa6\x88\x45\xad\xb5\xc6\x78\xd1\xc1\xd7\xee\x06\xfe\x84\xd6\x46\xe0\x91\x5d\xde\x04\xb0\xe9\xec\x82\xc1\xc6\xb8\xe8\xbb\x2d\xe3\xfb\xcd\xe3\x2c\x9a\xd1\x60\x6d\xc0\x28\xaf\x03\x15\x36\x9c\xde\x26\x69\x40\x55\x39\xfb\xdc\x41\xf5\xf6\x09\x70\x71\xf0\xd8\x89\xe9\x29\x2d\xe7\xb8\x4d\x39\x7a\xe2\x75\x7f\x36\x1d\xa3\xa2\x80\x71\xbd\xa3\xd5\x7e\x2c\xcb\xef\xc6\x98\x38\x95\x08\xa1\xbc\x93\xbf\x5c\x05\x30\xbc\x4c\x86\x50\x82\xe2\x36\x2d\x34\x4d\xfd\xaf\xe1\xaf\x29\x16\xc0\x2f\xee\x1e\x06\xef\x78\x7f\x2c\xa1\x04\xd7\x48\x97\xef\x38\x8b\x11\x74\xe7\xd9\xe5\xde\xca\x62\x81\x1a\x69\x12\x16\x73\x86\x10\x93\xa2\x19\x4e\xc5\x19\x42\x82\x9f\x1e\x6e\x37\xbb\xdb\xcd\xf7\xcd\xed\xee\xf1\xe9\xe1\xfb\xcd\xe5\xe6\xa9\x1f\x22\x5d\x67\xe9\x20\x5f\xe1\x0f\xa8\x67\x6c\x63\x93\x6a\x89\xa0\x64\x87\x98\xb8\xaa\xab\xc3\xe7\x2f\xac\xa1\x31\xc7\xa0\x15\x53\x36\x9f\x17\x05\x3d\xf3\xf1\xb4\x36\x34\x8d\x1d\x76\xca\x19\x47\xcf\xbe\x97\xf2\x48\x77\x6f\xe4\xc3\x97\xeb\xa7\xfc\x0d\xea\x27\x68\xaa\xe0\x50\xcb\x0d\xd5\x4c\xb9\x70\xb7\xec\x16\xbe\x42\x1e\x9b\xb1\x55\x1f\x37\x8c\x13\xec\xec\xb8\xc9\x76\xa3\x2b\x24\x46\xb9\x6d\x6a\xfa\x45\x3c\x75\x0a\x5f\xa8\x59\x97\x9b\xcd\xf6\xcb\x5a\xf6\x7b\x99\xe1\xcc\xbd\x65\x7d\xf4\xbf\x69\xda\xfc\x30\xa7\xba\x85\xc1\x99\x45\x35\x7d\x75\x7a\xbf\xd1\x70\x59\xcb\xb2\xb7\xa3\xe3\x86\x1b\x82\x4f\x1c\xab\xb0\xc1\x2f\xd8\x1f\x13\x51\x22\x93\x20\x9f\x86\x18\xe7\xd1\xca\xf9\x8f\x61\xf9\x34\x22\xe6\xb8\x7c\x1e\x97\x1c\x34\xb9\x11\xdc\xf5\x31\x5d\x4f\xf8\x09\xec\xa6\x7d\x99\xab\xe3\xfa\xa1\x99\x21\x48\x65\x3b\x4f\xe1\x3e\x4f\x9c\xfc\xc7\x65\x2c\x82\x2d\xc6\x13\x2a\xf8\xe5\x1a\xe6\x86\x66\xdc\xc8\xc4\x3d\x85\x41\x3a\xf2\xaf\x40\x47\xe1\x87\xca\x4c\x63\xe6\xe0\x70\xc2\xe1\x73\x9f\xbf\x79\x2a\x4a\x94\xc7\x07\xff\x36\x3d\x20\x59\x14\x79\xc9\x20\x16\xee\xb9\x8e\x34\xf5\x75\x02\xdf\x4f\xd8\xf4\xdd\x38\xa3\x0d\xc1\x3a\x60\x73\x3a\x4e\x61\x1d\x46\x5b\x83\x6a\x03\xa5\xcf\x7e\x9b\x5b\xb0\xfd\x6b\x69\x34\x25\x71\xef\xf1\xb1\xe0\xa2\x8d\x21\x1c\x0d\xa3\x21\x95\x7e\xff\xd9\x69\x59\x1a\xd7\x81\x1c\xdf\x05\x63\x99\x36\x93\x22\x3b\x9a\x08\xb8\xda\xd6\x67\x02\xcb\xdc\x80\x8d\x02\x86\xfa\x0a\xe0\x09\x74\x7e\xcc\xa1\xf7\x9f\xf4\x83\x6c\x2a\x50\x0b\xda\xaf\x34\x30\xe7\x93\x1a\xab\x33\x7c\xfd\x91\x54\x11\xc4\x0a\xc4\xe0\xb8\x39\xdd\x51\x21\x62\x14\xb1\x13\x8f\xb7\xab\xed\xcd\xfd\xb7\xbb\xdd\xea\xee\xe1\xdb\xfd\x76\xf7\xaf\xc7\x7e\xbd\x81\xc8\x72\xd4\xac\xd8\xfe\xcc\x1b\xcf\x97\x0b\x87\xe2\x88\x64\x3e\x51\xeb\xa6\xeb\x64\x12\x4c\xae\x0b\x62\x42\x10\x35\xb0\x0b\xb2\x7a\xe1\xef\x99\xc6\xba\xc8\x66\xbd\xd9\xce\xfb\x67\x40\x28\x20\x0b\xd8\x29\x58\x0e\x3d\xc5\x79\x51\x0f\xd2\x98\x58\xe7\x68\xaf\x4f\x75\xde\xce\x85\x7c\xc2\x28\xc2\x48\x17\x52\x7d\x7d\xb8\x7f\xde\xae\xee\xb7\x0f\xfd\x4f\x4c\xd3\x0c\xaf\xee\xe6\x72\x52\xd1\x84\x94\x29\x69\x47\x31\xdd\xf7\xea\xd7\xc8\x7f\x66\xfe\x6b\x45\xf8\x14\xb0\xd4\xbf\x26\x7e\x7f\xbd\x0b\x01\x2d\x30\xe1\xc2\x69\xd7\x68\xbc\xac\x4f\xaf\xaf\xe7\xe9\x99\x1f\xcb\x23\x17\xd5\x7c\xaf\x5a\xb8\x3b\x35\xb9\x9e\x67\x31\x61\x9c\xd1\x78\xce\x9b\x8b\x07\x5c\x34\x17\x40\xe7\x9f\x96\xd4\x40\xd0\x14\x81\x59\xd2\x98\x31\xb7\x68\xf2\xa3\x44\xe6\x92\x7d\xfc\x51\xea\xfd\xae\x3a\x1c\xe4\x6c\x35\x03\x21\x33\xe1\xbc\xf4\xbd\x0b\xf4\x75\x35\x83\x77\x40\xc6\x41\x74\xcf\xc0\xcf\xe0\x70\xbd\x4b\x3a\x7a\x1c\xa4\x70\xb8\x74\x04\xac\x79\x72\x6c\x1a\xf5\x07\x05\xee\x73\x8f\xd7\xd7\xf2\x30\xe9\xc1\x80\xcc\x1c\x3f\xe4\xe6\xfe\x6b\xf8\x93\x92\x89\xf6\x09\xfd\xfa\xf4\xde\xa5\xfc\xe7\x19\x36\x28\xc3\x99\xf6\xc5\xd8\x39\x3f\xfc\x33\xbc\x25\x68\xe9\x25\x6c\x5f\x40\xbf\x92\xe5\x7a\x1d\x98\x58\x39\x1b\xb0\x41\x36\x76\xf1\x4e\x1b\x1a\xc7\xbe\x4a\xb9\x3a\x22\x56\xcb\x54\x0b\x46\x8f\x1c\x4c\x16\x29\x2f\xfc\x87\x6f\xfd\x58\x70\x8e\x83\x51\x04\xc3\x7c\x03\xba\x0a\xea\xee\x7f\x59\x6b\x9b\x5d\x31\xa4\xc8\x70\xb9\xcb\x75\x5e\x3e\xc9\x46\xfe\x53\x1e\x4e\x61\x61\x05\x30\xc6\x8a\xc1\x4a\x7f\x55\x1a\x1f\x71\x9e\x31\x14\xc0\x02\xb8\xd5\xd9\xfb\x94\x5f\x6e\xbf\x8f\x1f\x98\x8d\x18\x68\x1f\xcd\x5e\x55\xf5\x6b\x20\xe3\x4c\x0b\x7b\x36\x52\x42\x0f\xcc\xcd\xaa\x9c\x1a\xad\x76\xc7\x2d\xe2\x7a\xbb\xd7\x18\x9c\x66\xd0\x18\xcf\xee\x54\x9e\xc2\xd2\x67\x23\xeb\x64\xb0\x1b\x68\xbf\xe6\xe5\xde\x54\x07\x87\xf5\x0d\x53\xd5\xc6\x8c\x68\x31\x40\xe4\xbb\x15\x6a\x52\xa6\xb2\x31\x70\x8b\xe6\x44\xbb\xa6\xb2\xed\x85\x3c\x7e\x6b\xc2\x7e\x64\x49\xea\x30\x03\x2f\xb2\x79\x79\x94\xfd\x2b\x66\x49\x66\x8d\xe9\xeb\xe8\x01\x26\xf7\x78\xbe\xdf\xdb\x04\x28\x36\x2a\xc6\xaa\x0f\x0f\xf6\x42\x9e\x0a\x53\xfb\x4d\xdf\xbf\x31\x36\x8d\x52\xdd\xe7\x45\x9e\x1f\xfc\x02\x87\x69\x70\x6f\xd3\x48\xb9\xee\x35\xfe\x88\x27\x68\xa0\x7e\x83\xef\xfd\x43\xb2\x34\x4a\x5c\x53\x6b\xf3\x1d\x41\x24\xfd\xdf\x63\x89\x94\x75\xd9\xbe\x4c\x1e\x1a\xd5\x02\xf7\x0e\xe8\xb2\x58\x5f\x8f\xbb\xaf\xae\x60\xd6\x7b\xb3\x4c\x41\xec\xbc\xa6\x4f\x0d\x38\x7f\xd3\x59\x1c\x6f\x79\x0a\x88\xf2\x3d\x1d\xcd\x45\x75\x3a\x56\x25\x36\x02\x9c\xdd\x41\xaf\x1e\x31\x8a\x9d\x2d\xd7\x52\x65\xfd\x6d\x74\x4e\x48\xd3\xd9\x61\x39\x10\x19\x0f\xac\x92\x8b\xaa\x99\xf5\xc9\x6c\x46\x93\xd4\x97\x3d\x6e\xf3\xf2\x15\xcc\x4d\xff\xdb\x74\x14\x59\x9f\x21\x6e\x1f\xb7\x9f\x6a\x0b\x59\x6d\x1c\x26\x09\xd7\xb2\x9b\x8b\x87\xd9\xb7\x68\xa3\x50\x71\xd5\xe5\x45\x33\x01\xc6\xe9\x50\x13\xa5\x18\x8d\x6c\x5f\x20\x30\x06\x03\x6f\x2a\x8c\xd0\xa9\x57\xae\x5c\x12\x28\x1e\x80\xaa\x16\x3c\xcf\x61\x2a\xfd\xb2\xcc\x72\xb3\x60\x63\xe4\x19\x85\x6e\xe0\xe7\x12\x12\xd6\x02\xc5\xe2\xe8\xe0\x8d\x72\x8d\x2a\xc2\x17\x83\x14\xa7\x88\xa2\x88\x92\x91\xab\xee\x10\x7a\x5d\x55\xf5\x20\x1a\x22\xa2\x98\x19\x39\x56\x9c\xff\xcb\x84\x45\x44\x31\x87\x88\xce\x84\xc5\xe7\x3f\x4a\x44\xb1\x4a\x1d\xdb\x01\x01\x27\xbb\xfe\xfb\xb4\x6b\xa5\xbb\xfa\xf8\x3f\x2b\xb5\xb8\xf7\x88\x88\x30\xee\x70\xae\x70\x38\x16\x7d\xc0\x22\xa2\x24\x55\xb8\x08\xb9\x62\xd8\xf6\xe6\x4c\xcb\x39\x8c\xe3\x2e\x7f\x7f\xcb\xe1\xe7\xae\x0b\x18\xf7\xf2\x00\x83\xf4\xb6\x88\x52\x26\x62\xd1\xc7\x7b\x5e\x95\xc4\x2d\xe1\xfd\x4d\x4c\x05\x73\x26\x1d\xf2\xbd\x5b\x54\xff\xda\x22\x48\x44\xa9\x89\xe3\xa0\x5c\x87\x68\x3a\x8c\x6c\xb7\xd5\x6f\xd3\x61\x34\x01\x70\xee\x7a\x5d\xee\x53\xda\xaa\x3e\x38\x99\xd6\xe5\x5f\x43\xd3\x08\x35\xf7\xef\xab\xda\x34\x6d\x5d\x1d\x1c\x29\xf7\x09\xd3\x44\xaf\x3b\x3a\xe0\x67\x45\xc4\xe2\x24\x64\x1b\x4e\xf1\x7a\xc4\x01\x17\x11\x4b\x59\xc2\x47\xcc\x5a\x34\x50\x71\x29\xe7\x6f\xd3\xe2\xd2\xdf\xf8\x67\x72\x9d\x2c\x55\x41\x9b\xb8\xfb\xf1\x7e\xf6\x6c\xb7\x77\x9e\xac\x10\x3b\xf5\x05\x5f\xe2\x11\x11\xa3\x04\xab\x00\xbd\x5d\xdd\x14\x71\x3d\xbd\x67\x9c\x70\xcc\x4a\xf2\x16\x0e\x18\xd1\x6f\xab\xc0\x8a\x9c\xbd\x7b\x9c\x66\xa4\x7b\xf8\xbb\x3e\x0b\x1d\x89\x73\xcc\x86\x7a\xb3\xa6\xbc\xe9\xc3\x5f\xe7\x97\xfa\x5b\x3f\x20\x65\x22\x60\x33\xf6\xa1\x4f\x3e\x0d\x47\xc2\x50\xeb\xdc\xd8\x0a\xd9\x63\xd2\xf2\x3f\xc1\x8c\x7c\x67\x44\x24\x84\xa4\x69\xcf\x5f\x73\xc6\xdb\xcf\xed\xe8\x05\x17\x36\x31\x4e\x1c\xaf\x74\x22\x0d\x8b\xe1\x8c\x88\x32\x9a\x62\xcc\xe3\xca\xa1\x4f\xd0\x4b\x16\x8c\x90\xa0\x22\xca\x78\xcc\x7c\x19\xeb\xf2\x54\xee\xa1\x2a\x2f\x73\x6b\x73\x7d\x2a\xda\xf7\xd9\x9d\x90\x11\x63\xe9\xc8\x0d\xc8\xf9\x56\xfa\x8e\x6c\x18\x63\xa2\x49\x40\x3e\xd3\x41\xed\x06\x00\x2e\x65\x68\xd8\x70\x0f\x3f\xaf\xe5\x41\x15\xde\xd1\xff\xcc\x37\xe8\x6f\x85\x41\x22\x52\x09\x03\x3e\x90\xba\x2e\xe4\xc0\x07\x14\x91\x12\x69\x6a\x47\x57\xfd\x03\x50\x6e\x7b\xf9\x4c\x3a\x72\x9e\x5f\xc5\x71\xd5\xbc\x8e\xca\xfd\x22\xd2\xd4\x0e\x4c\xf1\xde\xcb\x40\x44\x9a\x0b\xbc\x29\xdd\x76\x2d\x6b\xfd\x82\x32\x51\x83\xde\xb9\x88\xb4\x54\xe8\x3b\x78\xe5\x1c\x2a\x48\xff\x77\xa3\x93\x61\xdb\x39\xd7\x9a\x10\x91\xd1\x29\xca\x40\xe5\x3d\xa5\xd4\x49\xbf\xf6\xaf\x0a\x70\x57\xe4\x78\xd8\xae\xfa\x3f\x09\x47\x83\x6d\xa0\xfd\x56\x7a\x61\xdc\x3b\x0c\x2f\xe7\xce\x6a\x22\x02\x69\xb8\x23\x65\xb6\xa7\xba\x7c\x40\xb3\x0e\x34\x8a\x98\x5d\x87\xd5\xae\x77\x96\x8f\x34\x89\x45\x1c\x11\x67\x23\xd6\x48\x0b\x17\xb2\x69\xbd\xb1\xfb\xe4\x7e\xc6\x11\x65\x18\x01\x5f\xdf\x3d\xb9\x22\x33\x3a\xd0\x0d\xea\x85\x22\x8e\xa4\x73\xdd\x5a\x9f\xde\x2f\x64\x7d\x25\xf3\x62\xc1\x51\x65\x76\x52\x9d\xb9\x9a\xcc\x8b\x9c\x90\x43\x45\x1c\x33\xe3\x5c\x85\xbb\x30\x1f\x5b\xab\xb2\xe8\x22\x87\xd9\x55\xc5\xd2\x81\x39\xfd\xd7\x4c\xfa\x86\x61\x08\xc4\xc1\xff\xe6\x12\xd4\x69\xdf\xdf\x43\x7f\x9c\x80\xc8\xf8\x04\x5b\xe7\xa0\x11\xd3\xb3\x10\xd0\x9e\x07\xff\x96\x37\x30\x11\x9c\x16\x71\x92\x44\xa9\x9b\x09\x75\xb7\x03\x3c\x94\x6b\x78\x91\x85\xed\x9e\xf5\x13\xbc\x41\x7d\xde\x19\x39\x4f\x11\x96\x25\x56\x44\x9c\x30\x47\x8b\x77\xc5\xba\x6f\x8d\xc7\xb6\x4e\x07\xa5\xcc\x75\x01\xd4\xa9\x2e\x97\x22\x27\x11\xa7\x99\xc5\x28\x4e\xc1\x3e\x2f\x87\x62\xa0\x88\x53\xeb\xcc\xa9\x6e\xab\x7d\x34\x7d\x04\x94\x67\xa8\x4c\x96\xfb\x02\xe1\x63\x12\x3e\x43\x01\xc4\x18\xd2\x84\x72\x8d\xb3\x27\xd3\x4d\x32\x94\x05\x38\x99\x3d\x38\xb3\xac\xe1\x9e\x73\x19\xa3\xbe\x0b\xc2\xf0\xb7\xd5\xba\xdb\x17\xaf\xf2\xb2\x84\xf7\xf0\x15\x1c\xb4\x09\xc0\xaa\x5e\xf6\x7c\xf6\x15\x22\xb2\x8e\x40\xdc\xcd\x46\xc4\x6f\x2f\x6f\xa9\xb1\xa0\xce\xed\x5d\xe6\xf5\x65\x5d\x1d\xa7\x00\x80\x19\xbc\x49\xc4\x99\x31\x02\x26\x2f\x84\xbb\x80\xaf\xc3\xd5\x49\xe5\xe4\x54\xa5\xe9\xed\x61\x10\x09\xb7\xb8\x99\xc5\xd2\x00\xea\x22\x4a\x95\x8f\x6b\x3a\x22\x56\x84\x21\x9b\xc8\x49\x13\xfb\xde\xeb\xae\x3f\x0a\xc2\x4b\x7b\x05\x6c\x8b\x88\x35\xa1\xc8\xf9\xee\x7d\x80\xf6\xb0\x7e\xef\x62\x3c\xd3\x8f\xb0\x2e\xff\x93\xc6\x04\x73\xe7\xc5\xe6\xb5\x88\x4d\xe2\x92\xe4\xdb\xaa\xdc\xaf\xab\x53\xb7\x94\x86\x5b\x42\xc6\x8e\x1f\xd3\xd7\x33\xfc\x61\xb8\x5f\x46\x6a\xbc\x5f\x9b\x8b\x2f\x0f\xe1\x2a\xc0\x30\x84\x9e\x15\x95\x7e\xc5\x97\xa7\x3f\x00\x12\x63\x50\xcf\xb5\x6c\xba\xed\xb0\x9b\x27\x77\xd0\xca\x2e\xc8\xfd\xed\xac\x7c\xb6\x64\x71\x2c\x62\xb0\x36\x68\xfa\xdf\xc9\x5f\x73\x76\x8f\x88\xad\x04\x5c\x8c\xa0\x34\xcf\xdb\xfe\xb2\xac\x96\x2a\x09\x88\xb8\xfc\xe8\x95\x9d\xc3\x53\x46\x21\xaa\xf7\x6e\x7d\x98\x30\xa2\xba\x8f\x39\xcb\x0f\x77\xd7\xc3\xd2\x3d\xb9\x1e\x6b\x9c\xa8\x4c\xde\x3c\x0f\x5d\x44\xf7\xa2\xa1\x34\x51\xff\x7c\x2c\x44\xa8\x31\xf3\x07\xc8\x42\x4f\x68\x69\xdd\x31\x82\xfd\xac\x1d\x1c\xf2\xd6\x53\x76\x3e\x68\x6c\x4f\x9f\x01\x89\x92\x34\x46\xf4\x5e\xfb\x52\x40\x0b\x68\xae\x34\x3a\x33\x89\xd2\xc8\xd1\x4d\x1d\x40\x63\xa9\xec\x2d\x48\x04\x04\xd3\xe0\x12\x7e\x8e\x71\x9d\x7f\x65\x89\x33\x3b\x89\x65\xe8\x76\xd2\xdd\x85\xea\x10\x66\x0c\x89\x95\x4a\x93\x7e\x19\xdb\x55\x68\x18\x30\x79\x1f\x09\x89\x52\xe1\x85\x08\x83\x4f\x99\x07\x42\x4c\xc7\x25\x32\xc3\x0a\x86\x3b\xd5\x15\xc0\xb6\xcb\xd0\xa6\x57\x91\x18\x67\xdd\xef\x1d\x46\x26\x15\x20\x3f\x84\xa6\x80\x2a\xed\x2f\xb9\x81\xe7\x93\xea\x12\xa2\x7d\x35\x23\xad\x09\x42\x79\x14\x54\x8f\xee\x31\xf9\x2e\xaa\x76\x39\x8d\x21\x2c\x75\x26\xfb\x47\x94\xb0\x54\xdd\x26\xe2\x04\xc3\x73\xa8\x9b\x9b\x30\xbd\x67\xe7\x67\x1a\xb0\x78\x81\x73\x6c\x5b\x39\x99\xac\xf9\x18\xeb\xf8\xb3\x4e\xfd\xf3\xb5\x57\x82\x3f\xc3\x56\xf9\xf1\x9c\x2a\x0c\x63\x0f\xb9\xd3\x04\x3e\x1d\x97\x25\x67\x66\xd7\xcf\xb3\x84\x38\x8f\xe6\xfc\xcf\x31\x08\x56\x10\x2e\x33\xd4\xf1\x32\x3e\xa7\xc5\x1a\x8a\x0b\x8e\xfd\x88\x4c\xba\x3c\x35\x04\x8b\xab\xd2\xfc\xe8\x16\xe4\x6f\x75\x71\xf6\xad\xe3\x79\x43\x64\x6c\x30\x7b\xf9\x5a\xe7\xcd\xb6\x37\x72\xeb\xfe\x6e\x83\x0b\xd2\x65\xfe\x76\x31\xb2\x6c\xf4\x03\x54\x0a\xf8\x23\xbb\x1d\x31\x68\x0e\x08\xa2\x74\x82\xb2\x9c\x4f\xc1\x78\xf9\xa2\x2a\x9b\x2e\x1b\x47\xf0\x52\xfe\x16\x38\x5f\x82\x18\x41\xbd\xfb\xde\x2b\x94\x77\xf9\x68\xc7\x5f\x4e\x85\x89\x31\x69\x3c\x2c\xbd\x13\xf7\xe5\xe9\x40\x20\x0c\xd3\xd9\x5c\x57\x9b\xd2\xdc\xf6\x9d\x5d\x41\x20\xe3\x51\xe6\x61\xdd\xb5\x59\x96\x92\xc3\xe8\xee\x43\x12\x92\x20\x00\x34\x28\x2e\xac\xdf\x0b\xf9\xb3\xb9\xcb\x0b\x68\xda\xaa\x84\x3b\xf9\xeb\xb1\x6a\xda\x63\x35\xd8\x6b\x09\x62\x13\x87\x37\x41\x5d\x98\x99\x68\x52\x77\x14\xf0\xed\x46\x45\xcf\xb9\x32\x55\x18\xc3\x41\x0c\x33\xf7\x29\xdf\x57\x88\x4f\x58\x0c\x33\x92\x28\xb6\x4e\xa0\xfc\xa4\x2e\xe1\xed\xa1\xff\xe9\x49\x24\x34\x96\x88\x5e\x9c\x4c\xea\x4d\x39\x92\x47\x16\x49\x24\x39\x26\xe8\xeb\xed\x97\xa7\x6d\xb0\x8b\x5d\x7e\xbb\x93\x08\x22\x6c\x84\xac\xb6\xdb\x49\x49\xc2\x1f\x8e\x85\x40\x53\x6f\xa9\x64\x69\x46\x7f\x86\x4c\x7b\x4a\xc6\x63\x21\xdb\x2e\x15\x5b\x90\xd7\x11\x09\x21\x69\xe2\x94\x32\x2b\x9b\x07\x01\xd3\x70\x12\xa2\x34\x26\x00\x9b\xed\x97\xdd\xe3\xd3\xcd\xc5\xa6\x3f\x00\x0a\xf5\xe6\x8a\xaa\xc8\xfb\xb2\x43\x92\xc4\x0a\xe9\x29\x12\x33\xdd\x47\x94\xfc\x0d\x87\x28\x43\x6d\xc0\xbc\x59\x9f\xea\x72\xd0\x8b\x14\x49\x22\xc1\x7d\xe8\xbf\x27\x79\x90\xfd\xf5\xa7\x84\x63\x84\xdf\xed\x0c\x28\xfa\x71\x51\x99\xd9\x8b\x97\xa4\x94\xa0\x8a\xd6\xdd\xea\xe9\xeb\x66\x3b\x0a\xcd\x93\x94\x11\x2d\xfb\xe5\xf0\xaa\xae\x0e\x23\x25\x58\x3f\x86\x46\x19\x02\x07\x65\xd3\x60\xfc\xef\xf2\xf3\x6d\xe5\x89\x19\x9b\xff\x9e\xf2\xf6\xfd\x6a\x48\x6f\x13\x4a\x24\xde\x0d\x3f\xdc\xcb\x8f\x96\xa6\x4b\xda\x90\x87\xf1\x57\x28\xd4\xc5\x3a\x79\x38\xb9\x92\xd8\x82\xbd\x85\x7d\x55\xc8\xfe\x45\x61\xc4\x60\xa4\x1d\xfc\x48\x1d\x4b\x66\xf9\x14\x2c\x33\x4c\x8d\xb8\xda\x73\xaf\xf4\x19\x74\x2c\x7c\xca\x26\x81\x96\x1d\xc0\xac\xeb\xee\x46\xe4\xfd\xd2\x91\x08\xe9\x5a\xd9\x35\x12\x1f\x07\x53\x88\xfe\xb8\x62\xb8\x91\xa1\x69\xe2\xd0\x02\x15\x49\x96\x5a\xd3\x93\x42\x31\x85\x5d\xf5\x87\x68\x8c\xb0\xb8\x87\x1f\xf7\xbb\x8b\x41\x64\x7f\xa1\x25\x22\xc2\x27\x84\x55\xdd\x27\xbc\xe1\x5d\xd0\x1f\xf6\x47\x65\x02\xd2\xf1\x53\xdb\xb6\x72\x3f\x64\xb4\xbc\x26\x92\x3a\x41\xb8\xa7\x5c\xbf\x04\xac\xf2\x1c\x6d\x34\x5e\x76\x12\xc9\x52\x44\x50\xdc\x34\x2b\x17\x44\x4f\x13\xd8\x44\x66\x04\x7c\x96\xe5\x38\x0c\x41\x88\x7e\xf9\xd9\x28\x49\xc2\xb3\xb9\x69\x9e\xa1\x6d\x47\xa7\x52\x32\x65\xac\x5f\x70\xbe\xe4\xc6\x40\xb9\x2c\x33\x24\x12\x6d\x62\xe9\xa5\x4a\x4e\xa6\x79\x84\x7a\x13\x84\x00\xbb\x63\x80\x29\x4f\x09\x3f\x11\x67\xd8\xff\xdd\xb2\xc4\x49\xb5\x22\x82\x5f\xbf\xf6\x89\x5c\x62\xba\x1c\x36\xe0\xb9\xca\x71\x0b\x42\x24\xc6\x3a\x0d\xdd\x3d\x52\x2e\xc2\x16\x3c\xd3\x3a\x13\x89\x35\x06\xe7\xef\xcd\x8f\xd5\xfa\x21\x04\x9e\x69\x14\x59\x4c\xd0\xd0\xa9\xa0\x2f\xf8\x8b\x34\xca\x68\x90\xca\xfa\x91\x97\xae\x8f\x7c\xcc\xcb\xfd\xcd\xe5\x82\x46\x85\x48\x63\x4a\x10\xf5\xf7\x7c\x44\xd2\x07\xa6\xbb\xcd\xfa\x7d\x71\x2d\x4e\x63\xc6\x91\x23\x72\x6a\xa0\x6e\x1e\x07\x42\xa5\x48\x63\x2e\x70\xa7\xbf\x5d\x3f\xdf\x0f\x7f\xcb\x10\xc8\x93\x1f\x6d\xb3\x6a\xbd\x69\xe0\x6d\x55\xbd\xce\xd0\xf3\x22\x8d\xb3\xc4\x9b\x60\xb5\xdb\xbc\x80\x2f\xc7\x73\x44\x5b\x98\x4d\x69\x2c\x1d\xe9\x48\x9d\xde\x6f\x5a\x38\xfc\x2d\x91\x2c\x91\xc6\xc6\x20\xe2\xb5\x7d\xc9\x6b\xe3\xaa\xaa\x2e\x05\x9b\xc0\x53\x45\x4a\x98\x0c\x0e\xf0\x18\x6f\x5f\x82\x34\x45\x5e\x8e\x71\x02\x22\x25\xca\x45\x12\xc8\x51\x48\xc3\x47\x13\xe6\x76\x73\x1f\x20\xe2\x5a\x77\x35\xf0\xdd\x16\xb7\x9e\x34\xd1\xb1\xd3\x7e\xce\x07\x7b\xd0\x31\x6a\xba\x1b\x41\xb0\xef\x7d\x77\x73\xbf\x5b\x5d\x5c\x6c\x1e\xb7\x9b\xcb\xd0\xe8\xbf\xba\xb9\xbf\xdf\xfc\xde\x8f\xb4\xd6\x75\x14\xf3\x7d\x79\x9a\x8a\x11\x8b\x34\xa5\xe0\x96\xd6\x17\x99\xcc\x0e\xd1\x34\xc1\xe8\xd7\x2d\x69\x93\xb4\xed\x2f\xee\x2a\xa3\x19\xae\x9d\x58\x52\x19\x61\x9a\xfd\x61\x1e\x39\xab\x08\x2f\xc7\x75\x27\x5b\xa8\xf3\x99\x7f\x99\x48\x79\x16\x61\x5e\x2e\xf7\x50\xb6\x37\xe5\x5b\x35\x3f\x8b\xb1\x58\x4d\x71\x6b\xd8\xc6\x17\x62\xcf\x1a\x30\x22\x15\x84\x38\x1c\x61\xfe\xa7\x3c\xa8\x90\xe0\xa6\x82\x47\x3a\xe0\x05\x07\x37\xd9\xe5\x1f\x24\xb8\xe3\x17\x39\x8e\xfd\x90\x76\xf5\xe7\x12\x1a\xbf\xa2\x97\x98\x93\xcd\xeb\xfc\x2a\xac\xc2\xca\xaa\x34\xc6\x2b\x2e\xd7\xff\xac\xd4\xe7\x91\x60\x2a\x49\x12\xf5\x6e\xab\x87\x63\x0b\x3b\x3a\x49\x06\x53\x49\x18\x2a\x0e\x1e\x64\x83\xfb\xbb\x7b\x1f\x3f\x61\x0e\x8a\x54\xa6\x5c\xa5\x3d\xa8\xb6\x99\x9d\xcf\x38\x73\xc8\xab\x2e\x4c\x7b\x86\x33\x84\xb7\x48\x25\xc4\xb8\x30\x34\xb2\x00\x17\xd7\x4c\xfa\xed\x22\x55\xd4\x60\x67\xd1\xe6\x03\x8e\xa5\xff\x72\x25\x9c\x66\x4f\x77\xad\x2b\xbf\xfd\x5f\x01\x2c\xcb\x2c\x8b\x54\x59\xc6\xfd\xb4\x7b\xec\x72\x85\x01\x51\x2e\x52\x1d\xa7\x88\x4b\xb8\x95\x1a\x9a\xbf\xdc\x56\x52\xcd\x1c\xb6\x72\x3d\x5d\x1f\xc2\x51\xc9\x55\x50\x43\x3a\xb5\x6d\x55\x8e\xeb\xb8\x29\x18\x89\x31\xd4\xa2\xa2\xea\x70\x12\x9b\x38\xb5\x36\x7c\xed\x77\xed\x0b\xec\xea\x53\x01\xb3\xfb\x67\xa5\x75\xc2\x2d\xdd\xc2\xef\xed\x03\x37\x6f\x7d\xfe\x4c\x23\x21\x43\x07\xe9\x09\xba\x25\x68\x02\x64\x14\x34\x26\x29\xce\xca\x8b\x2a\x2f\x69\x96\xc6\xfd\xdf\x99\x44\x4c\x1a\x02\xdb\xae\x6a\xa7\xac\xdb\x1f\xcc\x00\xbb\xc4\x23\xaf\x9b\xc1\xe7\x46\x50\x12\x11\x2c\x77\x1f\xe4\xaf\xdd\x76\xe0\x44\xed\x8a\x81\x19\x2c\x28\x49\x39\xde\x6f\x24\x9b\x7a\xa8\xd6\xd3\x05\x89\xc2\xf1\x24\xcd\x90\x00\x7d\x94\xef\xdb\x0a\x51\xad\x93\xbb\x43\x13\xea\x5c\xff\xdc\x66\xeb\xc5\x52\xc6\x71\xf5\x55\x55\x3b\x88\xea\x79\xe3\x5c\xd0\x84\x25\xcc\x11\x81\xdf\x40\x16\x23\x78\xde\x88\x28\x3f\x0c\x05\x07\x8e\x2f\xcd\x7c\xd3\xa4\x09\x37\xd2\x86\x67\x74\x87\xfe\xc0\xab\xb6\x85\xc3\xb9\xa1\x7b\xf8\x80\xd0\x89\x03\xab\x7b\x68\x98\xeb\xab\x9d\x77\x5c\x05\x4d\x99\xeb\xb5\x23\x36\x18\xf6\xb9\xf6\xba\x04\xa3\x07\x91\x2a\x89\xc1\xd2\xca\x98\x27\xac\xa0\x37\x7e\x1b\x9e\x9d\x8a\x46\x8a\xc9\x71\x44\x79\x7a\x1f\xbf\x91\x94\x66\x52\x7a\x3e\xba\x86\xa6\x19\x7d\xd1\xe2\xab\x49\x99\x36\x0e\x5e\x0a\x26\xd7\xf2\xd7\x30\x5d\x29\x33\x34\xf6\x18\x9a\xc0\x2b\x1a\xb4\x77\x05\xe5\x09\xc1\xb5\xfa\xf2\xe1\xf6\x76\xf5\xb4\xbb\xdc\x5c\xdc\xdc\xad\x6e\x9f\x77\x77\xdf\x6e\xb7\x37\x8f\xb7\x37\x01\x51\x26\xa8\x88\xb3\x20\x82\xff\x5d\xb6\x37\x66\x08\x16\xc6\xf3\x90\x0a\x22\x30\x4d\x7c\x83\xd2\x54\xf5\xb8\x83\x48\x85\x34\x58\x4a\xd9\xfc\x3a\x16\x55\x0d\xc3\x5d\x13\xd2\x60\xb0\xd4\x78\x88\xf8\x84\xa8\x90\x86\x41\x56\x26\x6a\x04\xc2\x0f\x2a\x7a\x4e\xee\xc6\x0f\xca\x34\xc3\x85\xbc\x3a\x3a\xb5\xa4\xc0\xa4\xbd\xb9\xfc\xe0\xc6\xc9\x44\x21\x95\xd3\x2b\x4c\x8d\x66\x47\xa8\x04\x50\x49\x41\x07\xe6\x3f\x42\x5b\x77\x36\xee\x67\x85\x62\x89\xf1\x21\xcc\x18\x1d\xb5\xce\x67\x55\x06\xaa\x98\xb6\x3e\x7d\xfe\x03\xda\x97\x45\x3e\xbc\xa0\x9a\x65\xde\x19\x1f\x64\xdd\x57\x32\xa7\x63\x80\x70\xa7\x41\x53\x57\xa7\x63\x33\xb9\xc3\x90\x46\x18\x8b\x14\xb9\x05\x07\x8c\xd9\xf5\xb7\x06\x74\x8c\xb9\x44\x01\xb6\x65\xb3\x8b\xb3\x34\x8a\x63\x8f\xbf\x7d\xea\xde\xb3\x7b\xf8\x15\x4e\xca\x22\x11\x51\xe9\x34\x77\xbb\x65\xe7\x2e\xd8\x64\x08\x16\x29\x8b\x20\xc3\xe6\xa5\xfa\xf9\xb3\xaa\x7b\xfe\x8d\x60\x91\x71\xca\x2e\xbb\x50\xc6\xe9\x2b\xc8\x53\x81\xfb\x7f\x2c\xff\xe7\xe2\x2e\xcd\xe2\x88\x60\x40\xac\xab\xc3\xb1\xc8\xbb\xa0\x79\xd2\x3c\x61\x24\xce\x30\x9b\xba\x43\x87\xd0\x45\x37\x5e\xc1\x88\x71\xa9\x2d\x1a\x1f\xe5\xe5\x7e\xfb\x7e\x0c\xb3\x8e\x25\x31\xc4\x62\xe2\x75\xfd\x61\x40\x34\xec\xbf\xb3\x11\x61\x2b\x64\x09\x55\xd1\x20\xf0\x1a\xae\xc6\xa3\x5e\x66\xbf\x73\x7a\x89\x89\x16\x86\x3a\x10\x91\x2e\x4e\x06\x66\x10\x4b\xc1\x12\xe3\x24\xff\x26\x0d\xd5\xe7\xb3\x9c\x86\x25\x36\x41\xea\xc5\x02\x44\x76\x71\x3f\x66\xa9\xa4\xb8\xc2\xf9\x65\x27\xf8\xf1\x7b\x7b\xde\x30\xc8\x44\x08\x30\x7b\x5a\x5d\x0e\x5a\x62\x82\xd1\x28\x46\x6d\x98\x91\xec\x66\x14\xee\x05\x15\x22\x98\xe1\xd8\xbc\x3e\x7c\x87\x5a\x55\x23\xc4\xca\xc7\x98\x18\xc1\xa8\x56\x86\x0d\x9a\x24\x9e\x16\xd1\xac\xdf\xb7\xb5\x74\x5a\xb6\xf9\xe7\x86\xa7\x82\x31\xe1\xb8\x2b\xb8\xe5\x1e\x8b\xf7\x27\xf9\x73\xb9\xf0\xca\x78\x2c\x51\x6d\x19\x95\xa3\xe6\x8b\x3b\xe3\xc4\x0a\x8f\xf1\xc3\x8e\xef\x79\x2c\xca\x44\xea\x9a\x12\x25\xfc\x6a\xbf\x95\xb7\x13\xc2\x84\x60\x82\x6a\x93\x0d\xf4\x51\xaf\x79\x39\x3b\x85\x8a\x53\x61\x82\x9c\x17\x3a\xec\xbe\xfb\xc2\xc9\x5d\x65\x60\x23\xeb\xf2\x5b\xd9\xe6\xc5\xad\x6c\x5a\x27\xba\xb0\x06\x5d\x1d\xc0\x6d\xad\x61\xe5\x1c\x73\x57\x3f\x98\x4d\x2a\xcd\xa8\x8b\x13\xf5\x16\xe7\x7b\xf0\xd3\x1b\x93\x2e\x05\x53\x2a\x71\x56\x5e\x2f\xd5\xcf\x72\xf6\x7e\x29\x05\x9e\xea\x8a\x6a\x57\x83\x9e\xe0\xb9\xa8\x4d\x80\xf2\xcd\x2e\x42\x47\x80\xed\xec\x4b\xe7\x3d\x17\xbe\xd4\x24\x06\x13\xee\x6e\xf0\xb6\x5a\xbb\x53\xcd\xee\x93\xc9\x58\x16\x18\xc3\x3b\x2f\xd6\xb3\x58\x19\x67\x46\x09\x0c\x7a\x77\x5d\x96\x9e\xef\xbd\xcc\xc1\xa7\x25\x6c\x06\xd4\x59\x8f\x3c\xe6\x25\xc8\xe3\xb1\x80\x55\xad\xa5\x81\x6d\x5d\x1d\x5f\x66\x95\x7d\x06\x86\xa0\x20\x55\xd0\xc6\x94\xc5\x8f\xaa\x2e\x8c\x0b\xec\xc6\x2e\x39\x31\x41\xb3\xfb\xaa\x2a\xfa\x55\x02\x2c\x4b\x03\x7e\x62\x8e\xe2\xed\xbf\x81\x47\x31\xa5\xba\x2f\x25\x6d\x5f\x4b\x24\xaa\xf4\x5c\x2a\xc1\x23\xa2\xb5\xf3\xd2\x52\xa7\xfd\xee\x45\x36\x2f\x84\xb2\xcb\xea\xa4\x0a\x3f\xcb\xc2\x38\x6a\xb1\x34\x77\x0f\xd5\x87\x9c\xf0\x30\x34\x13\xc1\xd5\xfd\xaa\x06\x58\xf2\x8c\x15\x3c\xa6\x2e\x28\x6c\xbb\x45\xee\x09\x0e\x32\x1f\x5b\x4f\xa1\xed\x92\x83\xcf\x42\xd9\x6d\xc8\x70\x95\x17\x30\xaf\x48\x2c\x85\xf3\x9c\xb0\x04\xab\xac\x9b\x32\xdf\x1f\xe4\x76\x72\x4e\xae\xd0\x99\x6f\xe7\xed\x50\x3c\xb5\x70\x7a\x61\x44\x29\x74\x5e\xdd\xf9\xf6\x60\xe1\x3b\xc7\x4b\xd3\x9e\x13\x1d\x65\x69\x70\x59\x6c\xaa\xc2\x4c\xbf\x4f\x33\xdc\x56\x1a\x79\x38\x16\xf0\xdc\x56\xf5\x90\x19\xf2\x84\x47\x58\xfe\x42\xf8\xaa\x73\x18\x5a\xb0\x70\x11\x3c\x31\x04\x6d\xe1\xb6\x5f\x56\xf7\x5f\x9f\xb7\x9b\xe7\x6d\x38\x43\x6a\x25\x62\xdb\x7c\xef\x30\xd8\x40\x84\xc3\x34\x49\xb0\xdd\x75\x90\xbf\x9e\xa0\xa9\x8a\x37\x30\xab\x7d\x55\xde\x98\x7e\x80\xc7\x5b\x9f\xca\x80\xcc\x3a\x73\xfc\x99\x5e\x0a\x95\x8e\xf0\x09\xae\xae\xb6\xbd\x7d\x0c\xa1\x0e\x67\x91\x4b\x4e\x8a\x4a\xa2\xc7\x91\x92\x0d\x4c\xec\x1c\xe7\xb7\x99\xd1\x58\x6b\xaf\x30\x57\x83\x34\xef\x37\xfd\x85\xb3\x2c\x43\xa0\xad\x23\xbc\x8f\x13\x81\x99\x13\x9c\xe0\x3c\xd2\x98\x58\x39\x55\xff\x59\xbd\x2f\x8c\x61\x12\xcb\xd6\x2d\x34\xed\xf6\xa5\xae\x7e\x6e\x6b\x59\x5a\xe7\xfb\xb6\x39\x1c\xdb\xf7\x09\x70\x56\x70\x11\x29\x0c\x77\x1a\x69\x61\x7e\x88\x24\x08\x3a\xf8\x56\xe6\xba\xaa\xcb\xbb\xbc\x78\xed\x0f\x25\x94\x05\x9d\xeb\x35\xb4\x1e\x59\x16\x0e\x32\xc2\x49\xa8\x12\xe0\xbe\x18\x0c\xa0\xc2\x80\x2c\x8b\xc6\xae\x3f\x81\x8e\xf3\x0c\xf9\x9f\xf3\x44\x9b\x0b\x69\xa4\xee\xed\x52\x76\xc8\x97\x9b\xc6\xd2\x5c\x18\x8e\x44\x5a\x75\x7a\x7f\x3e\x82\xce\x65\xb1\x3e\xe5\x85\xf9\xc4\x74\xab\xff\xa0\xe2\xbe\x47\x71\xf1\xf4\xfb\xe3\xf6\xe1\x7e\x77\xf1\x6d\x3b\x69\x45\x73\x29\x00\x6b\x1a\x8e\x68\xd7\x6d\x55\x21\xd7\xe4\x2a\x8a\xb0\xe7\xde\xbd\xa6\xdd\xff\x75\xa9\xe4\x47\x25\xf8\xe9\x8f\x52\xb1\x8a\x5c\x1a\xd7\x83\xe8\x02\x03\x78\x7d\x7a\x47\x5f\xbe\xe7\x85\x25\x27\x2c\x87\x5c\x49\xc0\xd8\x02\xa7\x93\x85\x1a\x4a\x0d\x8f\xb2\x9b\x17\xae\xa8\xf9\x80\x71\x7d\x7e\x1e\x41\xcd\xe2\xc8\xc9\xdd\x50\x0a\x2c\xed\xf9\x5a\x4e\x4d\x68\xbc\xf1\xce\x6e\x9e\x32\x1a\x7b\xf4\x5e\x58\xff\x83\x62\xbf\x1f\xac\x13\xa0\xa6\xef\xe5\xfd\x1d\x8d\x2e\xc1\x75\xca\xd2\x11\x7e\xd1\x69\xb2\x99\xb3\xe2\xeb\x72\x34\x83\x12\x93\x38\x47\x4f\x26\x90\xa3\x5c\xb5\xba\x8f\xbe\xb9\xe6\xd6\xfb\x3f\x77\x0b\x32\xba\xa4\x21\x6e\x7c\x52\x86\xe6\x5a\x6b\x41\xfa\x9a\xe7\xeb\xb9\x36\xc8\x62\x5b\x83\x6b\xeb\xec\x36\xd1\x6a\x7e\x5b\xf5\x92\xf2\x7f\xd5\xa3\x99\xbc\xd9\x86\x24\xd2\xc1\xd8\x9c\x1e\xe5\xc4\x6c\x16\x19\x78\x89\x19\xa4\xe5\x10\x3f\x77\x3d\xef\xb0\x71\x88\x34\xe2\x46\xeb\x53\xf9\x58\x9c\xf6\xf9\x34\x39\x4e\xa3\xd9\x8d\x03\x42\xb0\x06\xd4\xe6\x50\xd3\xf1\xb7\x59\x16\x73\x11\x36\xa9\x5c\x9f\xfd\xa2\x85\xb0\x94\x5b\xab\x33\x3f\x7b\xbb\x19\xfe\x28\xdf\xd7\xef\xf7\xa7\xc3\xe4\x33\xe1\x96\x89\x88\xa9\x64\xdc\xd3\xfe\xa3\x2a\x3f\xe8\x49\x8a\x48\x3a\xfa\xd0\x40\x48\x77\xb3\xe7\xbe\x2a\x37\xed\x0b\xd2\x7f\xb7\xd5\x9d\x2c\xdf\x3f\xd4\x96\x45\x3c\x8e\x93\xc7\xad\x0e\x47\x28\x1b\x9c\x2f\x57\x32\x2f\x3e\xc1\x0a\x0b\x92\xb8\x78\xe7\xed\x78\x1c\x6f\x7e\x82\xa4\x0a\x63\x9b\xc7\xaa\xfc\x33\xef\xd1\x83\xfd\x51\xae\x63\x0f\x11\x42\xad\xb6\xc9\x9b\x22\x88\x71\xc2\x2a\x07\xf9\xeb\xe2\x45\x76\xd9\xcf\x50\xe7\x12\x49\xca\x85\xc7\x38\xe4\xba\x42\x15\x40\x94\x8b\x1a\x06\x68\x4a\xe4\xb4\x7d\x86\x90\xe3\xc7\xc1\xbf\x41\x88\xd4\xab\xb5\x77\x6b\xf8\x40\xa7\xc7\xd6\x42\x80\x3c\x5e\xca\x56\xee\xc4\x64\x61\x15\x69\x06\xf8\xb1\xb5\x6c\x5e\x7d\x05\x66\xe9\x7e\xce\xee\x51\xaa\x44\xc4\x07\x9f\x9c\x8f\xaa\xc9\x22\xd5\x06\xab\x9a\x3a\x50\xb6\xd1\xe1\x67\x00\xad\x89\xd4\x2a\x27\xf7\xf2\x02\xfa\x15\x4b\x0e\xcd\xaa\x34\x77\x18\xec\x2e\xc2\x2b\x46\x9f\xa5\x96\x04\x12\xeb\x9f\xeb\xaa\x2a\xc6\xe7\x65\x34\xc1\x20\x63\x5f\xcb\x23\xe0\x92\x9b\x17\xc6\x2d\x9c\xbf\xf5\x43\x00\x25\xa1\x74\x01\xb2\x3c\x1d\x47\x95\x49\xc1\x24\x63\x63\x80\xf7\xbd\x3c\xc0\xbf\x6e\x2e\xbb\x0d\xf6\x52\x1e\x8f\xbf\xcd\x96\x83\xf1\x45\x31\x2d\x13\x8f\x86\xfa\x02\x75\xb5\x7e\x9c\x6e\xde\x82\x27\x4e\xa5\x1b\xfb\xfd\xed\x49\xc1\x45\x91\x1f\x3f\x32\xf1\x9c\x4e\x08\xce\x52\x24\xf4\x48\x63\xd6\xd5\xa9\xd4\xf3\x7d\x54\x88\xc8\xd9\x68\xae\xf3\xb6\x85\xe2\x14\x8a\x13\x42\x08\xcb\xe2\x31\x3f\x62\xb1\x9a\x28\xb2\x88\x60\x75\x23\x2f\xbb\x48\xb1\x01\x5f\xb2\xed\xd6\x07\xdc\xae\x7a\x73\x7c\x21\x32\x26\xb1\xc4\x6f\xa0\xc8\xdf\xa0\xc6\x8a\xf5\xf4\xae\x84\x81\x5c\x7b\xa8\x3c\x46\x84\x3b\xb4\x3f\x08\x67\x91\x89\x45\x9d\xa2\x5d\x80\xaf\x5f\x55\xf5\x72\x5c\x2a\xa4\x54\xc4\xcb\xa3\x8d\xe8\x59\x7f\xab\x47\x23\xa4\x01\x94\xe3\x39\xf6\x76\x41\xd3\xdb\xa6\x98\xd3\x7e\x3e\xe4\x65\x97\xed\xe6\xe5\xfe\xba\x92\xc5\x50\x4a\x13\x86\x66\x58\x38\xc4\x29\x7f\x29\x5b\x57\x86\xf8\x21\xdf\x20\x84\x8b\x02\x64\x4c\x42\xc9\xb8\xef\x98\xf9\x63\x96\x28\x84\xdd\x22\xb6\xf7\xa9\xf7\xa4\x10\x59\x24\x1c\x7b\xd5\xc7\x3d\xd0\xbe\xec\xde\x46\x10\xa1\x2c\x12\xae\x54\x7f\x80\x62\x90\x33\x9f\x2d\x71\x59\x04\x6e\x83\xc8\x9b\x55\x0d\xa5\x9c\x8a\x75\x8a\x8c\x10\x70\xaa\x87\x32\x6f\x60\x75\x3c\x42\x20\x4c\x89\x8c\x24\x31\x32\x7b\x8e\x75\x75\xa8\x46\xd2\x98\x22\x23\x54\xe0\x4b\xda\x78\x4a\x10\x76\x80\xe2\xfe\x68\xe6\xdc\xb4\xbf\x95\xdd\x3b\xdc\xdd\x8f\x0d\x46\xab\x73\x78\x73\x46\x94\x42\x43\x42\x5f\xf7\x79\xc9\x0b\xd3\x5b\xb7\x2f\x24\xc5\xfd\x24\xca\x88\xa1\xb8\x28\x05\x4f\xc9\xdd\x2d\xe4\xb3\x3e\x46\x96\x10\x87\xdf\x47\x11\x8c\xaa\x5c\xee\xd7\x66\x49\x02\x61\xa1\x7a\xbe\x7b\x9c\xb0\x78\x86\xae\x40\x96\x80\x7b\x42\x5e\x27\xf6\x4d\x0e\x0b\x7b\x96\xd2\x58\xf0\x3e\xac\xf1\xd1\x7f\x5e\xee\x1d\xe9\x60\x71\x0b\xc9\x52\x63\x48\xf0\x56\x1e\x45\x23\x19\x8d\x13\x04\x3c\x0f\x55\xb5\x39\x6c\x36\x0c\x64\x59\x60\xc4\x7d\xad\xf2\x57\x98\x3f\x55\xe6\x7d\xf8\xeb\x1e\x1b\x3f\xbd\x00\x26\x94\x0e\x6b\x5b\x7d\x6e\x50\x2c\x32\xae\x62\xc4\x96\x3d\x3e\x6d\xf0\xb5\xfc\xb2\x7a\xba\x1c\xb0\x2d\x19\xd7\xb1\x75\xe7\x2f\x4d\x75\x18\xf9\xf0\xfd\x1d\xf6\xc1\x64\x55\xc9\xb8\xb1\x59\xe8\x06\x1e\xf3\xa6\x32\xfd\xeb\x9d\x51\x26\x06\xa9\xaf\x4b\xb0\xf2\x54\xb4\x7f\x54\x26\x97\x67\x26\x58\x67\x81\xd8\xe2\x4c\xcf\x32\xeb\x96\xa5\xaa\xfc\x36\x51\xd1\xfc\xc7\x6c\x94\xc5\xd2\xde\xe1\xdd\xc1\xa3\xc7\xb0\xbc\x4c\xd1\xcc\x78\x75\x86\x4b\x87\x4c\x6c\xee\xa7\x9b\x79\xa6\xe3\xc8\xf8\x44\xf7\x12\x0a\xd8\x2f\xa9\x7d\x7e\x50\xcf\x0b\x67\x30\x0e\x6f\x76\x3a\x36\x50\xb7\x0f\xe5\x02\x17\x2e\x08\x5a\xcd\x3e\x69\x08\xc1\xaa\x45\x09\x3f\x7d\xcd\x6c\x1e\x2a\x3b\x9a\x68\x18\x9e\xd1\x20\xd2\xee\xb8\x0b\x17\x1e\xb7\x38\xa7\x04\xfa\xf1\x10\x73\x84\x42\xef\x76\x4d\x21\x9b\x97\xdd\x6e\x36\x9d\x80\x46\x3c\xe9\x03\xe5\xf6\x1c\xdf\x17\xc6\x49\xf7\x20\x4a\xf8\xd5\x9e\xd7\x06\x33\x1b\x69\x94\x28\x09\xf3\xfb\xaa\xaa\xe7\xdf\x64\x65\x6c\x7c\x9d\xe7\x2a\xdf\xbf\xb4\x67\xaf\xb8\x55\x14\x83\x6f\xdc\xad\xd0\x85\xb5\xca\xcf\x0d\xf9\x86\x45\x45\x46\xe0\x78\x11\xeb\x3a\x37\x7b\xd8\xbe\x80\xb3\xc4\xf1\x47\x63\xe2\xd4\x61\x77\x7b\x68\xbf\xe5\xa1\x3e\x92\x86\xa3\xd4\xc6\x71\xaf\x66\x74\x27\x7f\x4d\xd2\x61\x19\x73\xe5\x1a\xf8\xf3\x42\xa9\x8c\x41\xa0\xe8\x59\x97\x45\x93\x2b\xd4\x24\xf1\x47\x08\xa3\x88\xc7\x38\x95\x3f\x5f\xf2\x16\x10\xfe\xe0\x2e\x1e\xce\xd6\x03\x49\xb2\x0c\x73\xab\xbb\xf7\x65\x5f\xb4\x45\x92\xb7\xff\x6c\x9a\x05\x49\xd4\xc6\xa1\xdc\xbe\x95\x83\x5b\xea\xd4\x06\x4b\xc8\x14\x04\xd3\x63\x85\xba\x27\xf9\x33\x1c\xa3\x84\x62\x65\x2d\x3c\xb5\x8f\xe1\x9a\x92\x52\x2d\x54\x90\xf3\x6c\xda\xa7\x2e\xfa\x9b\x0d\x61\x9a\xa7\x59\x78\xc0\x75\xe3\xd8\x5c\xba\x32\x50\xdf\x8c\xe4\xd4\xba\x71\x1a\xed\x21\xba\xbd\x26\xd4\x5e\x3c\x40\x04\x55\xfc\x67\xa7\xe5\x29\x25\x14\x65\x28\x7d\x5f\xd8\xdf\xa1\xc9\x3f\x61\x6c\x16\x45\x5e\x37\xe0\x47\x78\x06\x1f\xe1\xfb\xc7\x6f\x12\xd7\x12\x6b\x90\x55\x19\x6e\x5f\xe8\xc0\x7d\x94\xb0\x8e\x63\x22\x29\x32\x67\x8a\x23\x8d\xd9\xb5\xd5\x4e\x9d\xde\x77\xce\x29\x34\xfc\x64\xa1\x92\xd4\xe3\xbe\xba\x55\xec\x66\x2e\xc2\xe3\x8a\x17\xd1\x4c\xf5\x4e\x48\xa1\x33\x3a\x44\xdb\x97\xf0\x36\x9d\x53\x52\x18\x86\x4a\xf9\x07\x59\x4a\xcf\x1f\xf1\x47\x32\x9a\xe2\x6b\x3a\x60\x19\xef\x06\xdb\xfd\xfe\x2d\x94\x71\x84\xec\x5d\x0c\xd6\xff\x59\xe5\x41\xd7\xed\x7f\xc6\x76\xe2\x61\xac\x50\x81\x41\xe9\x14\x5f\xbc\x22\xcf\x6c\x94\x24\x88\xc9\x71\xc0\x9f\xe6\xe6\xf2\xeb\x6c\x80\xd2\x29\x26\x70\x5d\x46\x83\x3e\x15\xc6\x77\x00\xc2\x95\x6b\xce\x10\x85\xa9\x3d\xe1\xf8\x2f\xe5\xbd\x84\x34\x94\xa0\x99\xc7\x65\x75\xfa\x7d\xe2\x7e\x22\xa4\x51\xd6\x49\x04\xb9\x8b\x78\xb0\x78\xf4\x5b\x03\x66\xd5\x38\xcc\x54\x18\x09\x0a\xa2\x68\xac\xd3\xd3\x25\x17\xeb\xd3\x19\x47\x2f\x0c\xd7\x10\xca\x50\xeb\xd3\xbb\x6b\xdc\x2c\xb7\xe5\x24\x18\x82\x1a\x29\xf9\xaf\x3c\x44\xf0\xd2\x26\xce\xfa\x68\x77\x90\xf9\x54\xf5\x41\x48\xdb\xe5\x3a\xff\xef\xff\xf7\xff\xbe\x3f\x5d\xed\x36\xd7\xd7\xbb\x8b\x87\xbe\xa2\x2a\xad\x10\x89\x0b\x44\x0e\xbb\xb6\x96\x8b\xd5\x89\xe9\x85\x5a\x01\x26\xed\xdf\x84\xa0\x37\x3d\xdd\x01\xa5\x35\x30\x88\x8c\x7b\x6d\xf5\x6b\xd9\x97\x11\xa4\x85\x94\x8c\xfc\xd9\x5d\x95\x76\x3d\x75\x8c\xc6\xef\x0d\x44\x56\x15\xc7\x80\x8e\x1b\x97\x7f\x54\x25\xe0\x4a\xfe\x97\xcf\x51\x11\x70\xbd\xbf\x2e\xe5\x2e\xaa\x76\x55\x1a\xe4\x27\xbb\x56\xf9\xbf\xff\xf3\xd9\xa2\xa8\x12\x42\x82\x67\x47\x9f\x6d\x4f\x1e\x83\x4a\x24\x4d\x1c\x9d\xaa\xfa\x5f\xd0\xed\x1d\xce\x99\x99\x6e\x9f\x50\x69\xaa\x11\xc5\x2f\x9b\x6e\x27\xdf\xfc\xf7\x83\x95\x39\x8c\xa6\x11\x06\xfc\x79\x89\xba\xb8\xe1\xaf\x4a\x30\x1f\x87\x1f\xab\x06\xe6\x5c\x67\x45\x63\xe9\xd5\x25\x6a\xd7\x3a\xf8\x5e\xb5\x0b\x85\xcf\x30\x9a\xb2\xd4\xa3\x03\x1d\x69\x58\x57\xcb\x51\xaa\xa2\x19\xc7\x17\xe7\x0d\x4a\x73\x9a\xb2\x76\x15\xa7\x69\x96\x0c\x9c\xd1\xd5\xc9\xe4\xee\xff\xcd\xb4\x6b\x84\xe2\x32\xc6\x14\xdf\x9e\x4a\x5c\x70\x51\x8e\x6e\xf2\xba\x28\xde\x2d\x79\x7e\x07\x8a\x7c\x1b\xa2\xff\x22\x60\x96\xf6\x2c\xcb\x1b\xec\x0c\xfd\x36\x12\x01\x16\x8a\x5b\x8a\xa2\xa9\x9e\x25\xd8\x4c\x3a\xdd\x4a\xe8\x14\xc3\xf3\x23\xb6\x98\x7a\xd8\x92\x3f\x9a\x45\x84\xb8\x69\x77\x90\x65\x9b\xeb\xef\x4e\xbb\xa0\x3f\x4c\x09\xb2\xf1\x1e\xeb\x5c\xe7\xe5\xde\xe9\x99\xce\x9e\x70\x26\x53\xb4\x69\xcb\xcb\xbc\xfd\x2e\x47\x58\x9c\x70\x1c\xe2\xc8\x11\x49\xf2\x3f\xe1\x13\x1b\x62\xa1\xa4\x26\xa8\x21\x76\x07\x26\xef\x66\xcc\xae\xdf\x7c\xe7\xd1\xed\xf2\xe7\x55\xa4\x31\xf8\x6a\x41\x1e\xa6\xab\x91\x52\xb1\xc0\x42\xed\x21\x2f\xdb\xcb\xe7\xf5\xc5\x54\xbd\x6a\x76\x1a\xe6\x48\x1e\xab\x57\xa8\x9b\x97\x0a\x5e\xc7\x2b\xa0\x52\x99\xc5\x9c\x13\x11\xd8\xdd\xe4\x7f\x9e\x17\x1b\x95\x66\x14\x92\xa1\x1d\x86\xfb\x7f\xbd\x7a\xdb\xcf\x7c\xc6\xa7\x1f\x02\x9d\x21\x3a\xc4\x69\x21\x39\xad\xfb\xd9\x9d\xb4\x2c\x52\xe3\xda\xa0\x07\x4e\xf5\x0e\x70\x42\x59\x1b\xc7\x1e\xc8\x78\x59\x57\xc7\xdf\x96\x7a\xbb\x6e\xa8\x8e\xa8\xc0\xf6\x33\x92\x26\x2c\x8c\x42\x94\xf9\x40\x25\xa4\x3f\xe7\x45\x20\x3f\x4d\x48\xdb\x3a\x52\x8e\x8b\x17\x66\x54\xe3\x38\xa8\x16\xea\x1a\x96\xc1\x2b\x3a\x26\x0a\x97\x33\x03\xb2\x7d\xc1\xb2\x9b\x0d\x38\x19\x1d\x67\x11\x22\xd4\xee\xf3\xbb\xa0\xe3\xf3\xd7\x8b\x9d\x26\x32\x52\xc1\xf3\x7a\x9d\xd7\x33\xe5\x33\xa1\x93\x88\xf8\xca\xad\x53\xfc\x7d\xb0\xb6\x81\xb9\x6b\xb4\xd0\x89\x92\xb8\x5e\x3d\xca\xba\x9b\x46\x45\xe0\x97\x87\x8b\x4b\xac\x0d\x36\xac\x88\xa5\x47\x80\xd4\xf4\x9b\x52\x96\x38\x5c\xd9\xa2\xb0\x8b\x23\xeb\x9f\xce\x50\xcb\x3a\x05\x21\xfc\x05\x3a\xc2\xdc\xae\x19\xd1\xf6\x35\xa5\x3a\xe5\x83\x5a\x4d\xfe\x27\x7c\x47\x03\xcc\x65\xdf\x7a\xa1\x59\xe4\xda\xa9\x3e\xad\xa9\xca\x7d\x3d\x17\x24\x3a\x7f\xd6\x8c\x11\x29\x47\x42\x33\xe7\xba\xbe\x42\x33\xa9\x9c\x2c\x90\x6b\x42\xde\xb4\xa1\xcd\xe2\x8f\xf3\x6e\xfe\xe0\x17\x57\x3f\xcd\xb3\x2c\xe0\x4e\xea\xba\x92\x65\xf3\xbe\xea\x87\x40\x92\x79\x6f\xd7\x11\x0b\x45\x8b\xd4\xa9\xf4\x2a\xd9\xea\x17\x07\xe8\x9f\x89\xbc\x4e\xaa\x20\x5a\x18\x89\x59\x92\x81\x60\xf2\xb8\x93\xe6\x90\x97\x3b\x5d\x05\x2d\x06\x3f\x32\x8b\xdd\xca\xd2\x40\x69\xb6\x95\x7f\x25\xbb\xb7\x74\xc2\xba\xfe\xe0\xa6\x64\xb1\x41\x56\x88\x37\xe8\xbf\xa8\xaa\xc2\x54\x3f\xcb\xbe\xf1\x18\x64\xd9\xc7\x9f\x70\x6b\x44\x98\xa8\xbe\xfc\x33\x9b\xcf\x3a\x93\xdc\xf8\x66\xd3\x63\xfe\x0b\x7c\xed\xaa\xb7\xc6\xfe\x77\x30\xf0\xfc\x4f\x18\xaf\x95\x43\xa8\xe7\x87\x3e\x21\xd1\x19\x28\x15\x2a\x21\xf0\x3e\xf1\x7c\xf4\x23\xa4\x8e\xb9\x59\xd0\xcc\xf8\xe1\x35\x33\x92\x89\x64\x86\x56\x24\x4e\x91\x48\x62\xf2\xb6\x8f\xfa\x7f\x3b\x8f\xf2\x75\xb7\x2e\x24\xa3\xcb\x47\xc0\xdb\xe4\x02\x3e\xb8\xa1\x4a\x8b\x34\xa8\x32\xf6\x1d\xb6\x47\xa9\x5f\xe5\x3c\x09\xd2\xca\xd8\xd8\xc9\xe9\x7e\xc3\x7b\x82\xed\xdc\xf0\xd3\x35\x15\xe0\x7b\xf1\x13\x69\x27\xa1\xb5\x88\x31\xdf\xf4\x25\x80\xcd\xaf\x23\xe8\x16\xdf\xd2\xde\xb2\xc0\x6d\xc1\xa2\xff\x80\xeb\x20\x94\x55\x8b\x92\x9b\xd3\x57\x5e\x4b\x92\xd1\x21\xea\xdd\x56\x7d\x9e\x85\xbf\xf9\x83\xfd\x4c\x6b\x4b\x10\x9a\xf2\xec\x43\xfc\xf1\x5a\xf1\x79\xa1\x46\x1b\x62\x70\xb6\xa3\x58\xea\xd3\xb7\xcb\xf0\xc3\x20\x89\x52\xe1\x01\x86\x3f\x01\x5e\x77\x3f\x11\xa1\x92\xf4\xc7\x41\x70\xc7\x11\x3f\xe4\xa5\xe3\x23\x3e\x55\xc5\x9c\x55\xeb\x07\x5b\xa2\x74\xe8\x19\xb7\xb2\x1e\xe9\xbb\x68\xcb\x98\xfb\x9e\xfc\xbf\xa7\xdc\x38\xfe\x65\xf7\x64\x7f\x04\x0f\x33\x61\xa2\xd4\x79\xe4\xb8\xd4\x6c\x27\x27\x41\xb7\x89\x04\xf1\xbb\x7e\x61\xbd\xbf\xc8\x79\xb5\xc6\x44\x2a\x25\x66\x8c\x70\xc6\xea\x62\xde\x67\x7a\x26\x8e\x29\xae\xa5\x8f\x55\xf9\x3e\x18\x21\x75\x7f\x77\x72\xa3\x3e\x58\xf2\x1e\x4f\xcb\x50\xb9\xd9\x77\xc6\x44\xa6\x3d\xea\xfa\x07\xe4\x7d\x6a\x1a\x8e\x0b\x07\x90\xb6\x80\x1a\xb0\xcf\x47\xe4\xf8\x4f\xcf\x41\x62\xeb\x00\x0b\x55\x51\xa0\x63\x79\x33\x1f\x60\x25\x7a\x37\x60\x49\xbd\x79\x71\xdb\xf9\x27\x4d\x35\x93\x52\x67\xd6\xd5\xc5\xdb\x75\xdb\x9d\x31\xe8\x4b\x96\xc6\xb3\x9e\x36\xce\xfa\xea\x73\x7d\x20\x43\x09\x38\x4f\xb2\xaa\x2a\x66\x55\x51\xc3\x22\x20\xbd\x2e\x32\xc2\x9f\x9c\x4a\xde\x50\x95\xf9\x74\xe2\x1a\x96\x51\x74\x35\xc2\x05\x7a\xde\xfb\x3c\xef\x2e\x1a\x4e\x12\xc4\x2d\x6c\x91\x94\xf6\x09\x30\x7f\xf6\x3d\x9c\xc5\xd6\xf1\x06\xca\xee\xe6\xe5\xfb\xc9\x0e\x63\xb8\x36\xb8\x7d\xc0\x2f\x97\xf7\x4f\x71\x36\x86\x43\x84\x11\x6f\x28\xc3\x5c\xbc\x84\x46\x85\x11\x9a\x63\x82\xff\x7c\x3a\x1c\x64\x3d\x35\x03\x42\xc4\x55\x18\x67\x24\x2a\x2e\xc2\x7f\x4f\xb2\x57\xc9\x9d\x4c\x1e\x93\x25\x5c\x0e\xb5\xfb\x91\xbb\x48\xcc\x86\xd4\x6a\xfa\xb3\x32\xae\x13\x1f\x3b\x60\x9b\xfa\x51\xee\xc1\x61\x72\xa7\x67\xb6\x3a\x1d\x70\x02\xbd\x8e\x5b\x17\x59\x4f\x1f\xb5\xcc\x94\x35\x83\xa8\xb2\xab\x42\x37\x0f\xe5\xb9\x43\x83\x30\x4a\xa4\x4a\x87\x99\xf6\xdf\x53\x5e\x83\xc1\x02\xbd\x0b\xe9\xfa\x69\xab\x80\xcb\xb1\xe3\xf5\xdf\xd8\x1f\x8d\x8e\x0c\x16\xaa\xb6\x4f\xa3\xb6\x6a\xb7\x6e\x23\xd3\xfd\xd0\xc5\xc9\x77\xf9\x39\x84\xa2\xbf\xd9\x36\x89\xb1\xdc\x70\xc8\xcb\xa0\x97\x37\x6e\x0a\x18\x0b\xc0\xbc\x86\x2e\x8a\xcc\x78\x25\x9c\xe5\x89\x04\x51\x2c\x51\xe5\x03\x1b\x69\x43\xb0\x35\x1a\xc0\x09\xbe\xc4\xae\xa3\xfa\x41\x03\xdf\x8f\x8d\xe3\x14\x31\x4b\x45\xb5\x0f\x3d\xb8\xcf\xcb\x03\x10\xb3\x18\x8b\xa8\x37\x2d\x1c\xc6\x7a\xfa\xfe\x30\x91\x36\x82\x21\x8a\x5b\xcb\xb6\xfd\x08\x55\x07\x44\xcb\x80\x45\xbd\x28\x4e\x90\xf6\xe7\xf0\x61\x4f\x2d\x4b\x73\x09\x45\x10\xd3\x17\x40\x2c\xc1\xc6\xbc\x7b\x71\xcc\xe4\x8b\x13\xed\xd4\x06\xa5\x31\xce\x6b\x1a\x4c\xf7\xce\x4c\xdf\x28\x48\xb4\x0d\x10\x75\xcf\xab\x18\xbf\x99\x90\x58\x0b\xff\x7f\xce\xde\xa4\xbb\x71\x1c\xdb\x1a\xfd\x2f\xdf\x28\x07\x35\x20\x48\xb0\xc1\x9b\xc9\xb2\x1c\x56\xa5\xbb\xcf\x52\x44\x56\xde\xbb\xee\xd2\x3a\x00\x0e\x64\x5e\x53\xa4\x92\xa4\xc2\xe1\xfc\xf5\x6f\xf1\x00\x60\x27\x29\x22\xdf\x1b\x54\x39\x52\x04\x3b\x10\xcd\x69\xf6\xd9\x7b\xb8\x81\x73\x3f\x68\x09\xb5\x23\x6a\xd6\xd3\x3c\x35\x14\xbc\xda\x2d\xdf\x3a\x5b\xba\xdc\x5b\x5d\x77\x3c\x4b\x84\x21\x17\x01\xfa\xca\xcc\xd2\x54\x4b\x2c\x8a\x29\x10\x0b\xb9\x4c\xac\x70\x89\x0f\x27\xbd\x54\xed\xf2\x34\xf3\x35\x31\x8e\x33\x02\xb5\xb7\x1f\x79\x67\xe4\x74\x3e\xd0\x86\xb4\xd1\x5d\x38\xfa\x6c\xa9\x72\xe7\x25\x61\xea\x68\x82\xbf\x57\xef\x38\x4f\x5f\xfb\x46\xa9\x16\x16\x88\x32\x23\xf7\x9c\xf4\x51\x22\x38\xd8\x7a\xe8\xa7\xa7\x11\xe6\x19\xd3\x24\x36\xae\xb0\xe6\xe6\xf4\x39\x09\x8f\x63\xc6\x2c\x53\x13\xc5\x02\x8f\xd3\x2a\x1f\xcc\x62\x46\x8b\x76\x2f\xeb\xbc\xd0\xfa\x42\x20\x75\x30\xcc\x30\x8b\x39\x09\x4f\x6c\x6e\x5f\x7f\x56\x07\x85\x19\x5a\x7c\xfb\xc6\x42\x67\xc6\x6e\x2e\x8a\x20\xa4\xa8\xf2\x13\x7e\xbc\x42\x8b\x9b\x39\xd7\x09\x8a\x98\xe9\x7e\x1b\x5d\x8e\x5c\x9d\x79\x3b\xcd\x29\x32\x6f\x6b\xa9\x96\x45\xae\xde\x9d\xfa\xe5\x78\x6b\x42\x61\x24\xd5\x1d\xbd\xe3\xa7\xc7\x24\x36\xbd\x96\xe7\xa8\x00\x1c\x81\x33\x29\x7a\x84\xd6\x19\x07\x0b\x42\x1a\x50\x5c\xd5\x9a\x25\xd6\x1f\x9d\x06\x04\x11\x32\xb4\x2a\x33\x44\x42\xf9\xba\x19\x7e\x37\x54\x8d\x7a\x80\xf2\x04\x85\x45\x4c\x4f\x26\x91\x4c\x6c\xbd\xf4\x43\xb5\x27\xcb\xf8\x21\x27\xdd\x85\xcb\x2b\x81\x4c\x81\x36\xe2\x5d\xde\xdc\x9f\x86\xa2\x7a\x94\x82\x73\xe9\xb3\x63\x3a\x9f\x6d\xbc\x93\x0f\x24\x8d\x48\xe3\x9e\x45\xea\x4a\x59\x12\xaa\xc4\x50\x90\x66\x89\xc6\xdf\x43\x65\x51\x66\x7a\x91\x6a\xaa\x69\xec\xdf\x5e\x29\x49\x7c\x10\xa0\xb5\x55\x80\xbd\xbc\xfa\xe8\x4c\x52\xb1\x53\x59\xb5\xaf\x94\xe4\xec\xdc\xa5\x0d\x9e\x73\x0f\xfb\xf6\x18\x52\xad\xf6\x1b\x34\x37\x48\xf9\xb3\xa6\xad\x4f\x83\xe2\x45\x86\xc8\x25\x19\x7b\xbb\x6e\x96\xeb\xb5\x21\x5d\xc4\xcb\x70\x06\x44\xe0\x64\x60\x51\x37\xdf\x58\xdd\x6f\x7f\x1d\x13\x0b\x23\x07\x68\xfc\x73\xa1\x7b\x7a\xd2\xd9\x72\x66\x94\xb0\x3c\x14\xce\x3d\x5c\x35\x0a\x8e\x78\xdf\x59\x2f\xfd\xc5\x50\x53\x22\x77\xb1\x7e\xbd\x7d\x7d\x7e\xd9\xec\x5e\x56\xaf\xeb\x67\x6f\x6f\x9b\x20\x0c\x48\x74\xb2\xb3\x23\x1c\x18\xfc\x34\x94\xf9\x1a\xd6\xd9\xf8\x7d\xc5\xc1\x08\x2e\x38\xcb\x4f\x99\x50\x32\x62\x53\xd9\x60\x7d\xc4\xb2\xbd\xef\xb5\x80\x33\x13\x71\xa9\x6c\x28\x84\x20\xca\x8b\x52\x4f\x58\x9d\x2e\xf6\xb6\x89\x23\xed\x8b\x14\x6f\xa1\x05\x8f\x27\x9e\x35\x42\xfb\x09\xc7\xa2\x45\x77\xd5\x88\x7d\xce\x24\xda\x0a\x9e\x2a\xff\xb5\x3a\x1f\x40\x42\x83\xdb\x1f\x97\x3f\xb3\x49\x5d\xd5\x14\xc9\x56\xd8\xcb\xba\x44\xe7\x2c\xd9\x62\x84\x31\xb4\x11\xef\x6c\x8e\x3c\x8c\x13\x7f\x57\x90\x32\xb2\xeb\x4e\xfb\x88\x4d\xd3\x99\x6e\xe3\x61\x6f\x40\x73\x72\xc6\x3c\x47\xea\x6b\xde\xf4\x0b\x93\x91\x1c\xc8\x5a\xd8\xbc\x55\x55\xfb\x5a\xc9\xbc\xbc\xaf\x46\xc2\xd9\x93\x0b\xa9\x20\xa3\x5c\xd7\x80\x77\x7e\x3a\x23\xb0\x30\x8a\x59\x52\xe8\xdb\x93\xfa\x87\xb1\x26\xa3\x92\x98\x46\xe0\x40\x1a\x44\x61\x8c\x8b\xeb\x80\x51\x12\x28\xae\x63\x2c\x74\xa6\x07\xbf\x4c\x36\x17\xa3\x03\x99\xe0\x58\xe7\xb2\x21\xaa\x28\xef\x4c\xfb\x01\xa7\xa3\x18\xfb\x2a\x60\x2b\x40\x7f\xd9\x70\x9f\x3c\x82\x36\x91\xe6\x63\xe1\x46\xc2\x23\x35\x93\x28\x9e\x41\xad\x49\xf0\x98\x68\x7c\x5f\x88\x89\xc4\xf7\xb9\x09\xb5\x1a\x80\x08\x2f\x36\xe0\x3f\x2f\xcf\x9a\x4c\x3d\x63\x04\x67\xc9\x24\x5c\xf5\x2b\x58\xf0\x2f\xff\x5e\x99\x11\x73\x7b\xd2\x18\x15\x59\x81\xc6\xa2\xb5\xe5\x5d\x0b\xa5\xfa\x37\xc1\x2c\xb1\xd1\x70\x62\xbe\xa4\x5f\x45\x10\x08\xa0\xa0\x9e\xc7\x7f\x2d\xce\x09\xd6\xcf\xf7\x4f\x11\x30\x29\x88\x07\xd0\x3b\x1a\x6e\x19\xba\xab\xab\x03\x29\xc3\x4c\x06\x9a\x08\xc2\xc0\x50\x58\xf8\x05\x54\x6e\xf2\xa6\xbd\x83\xba\x8f\xe3\x88\x20\x14\x3a\x73\x06\xfa\x0e\x8a\xcb\xab\xb2\x08\x22\x1e\x10\x10\x37\x6f\x9a\x13\x4e\x82\xd8\xae\x41\x6c\x34\xed\xa3\xb5\x55\x55\xb1\x65\xb9\xd3\x26\x09\x37\x24\x44\xe8\x0c\x5a\xbb\xae\x4f\x2c\xea\x4b\x03\x59\x04\x49\x8c\xc2\x05\x07\xad\x89\xb2\x39\x82\xc2\x6e\x9c\x52\xde\xea\xe6\x73\xad\x67\x6f\x9c\xa6\x40\x77\xda\xbc\x81\x45\x00\xf7\x06\x86\x08\x52\x4c\xb3\xd4\x5b\x53\xdd\x5e\xdd\xc7\x9a\x66\xdc\x5b\x22\xc8\x02\x46\x5e\x9b\x15\x46\xbb\xdd\xf4\x7a\xbb\xd9\x58\xf7\x7a\x68\x4c\x89\xc4\xc1\x50\x7c\xab\xb0\xcc\x7f\xbc\x74\xfe\xf0\xcc\x60\x14\x41\xc6\x38\x05\x33\xad\xb5\x60\x81\x2e\x97\x7b\xbe\xb3\xec\x5c\xb4\xcb\x02\x44\x4e\xf5\x99\x50\x81\x08\x20\x60\x54\x91\xd5\xbb\xa6\x50\xb8\x79\x96\xf9\xb2\x26\x0a\xec\xfd\x04\x41\xea\xc6\xb1\x08\x20\x75\x9e\xbc\x8d\x21\x38\x86\xf7\xc9\x08\x04\x61\x81\x77\xc7\x41\xc7\xf8\x31\xb7\xd8\x95\xb1\x85\x29\x02\x50\x11\xd1\x9b\x1c\xf2\xb2\x75\x1e\xa5\x3f\x24\x43\x20\x20\x09\xd5\xbb\x5d\xab\xc9\x72\x6d\x55\x92\x51\x58\xe8\x0f\x28\x46\x74\xc0\x22\xd0\x89\xb0\xe4\x04\x55\x31\x5c\x18\x43\x48\x9c\xb7\xe0\xd3\xa4\x8e\x36\xc6\xd3\xb8\x9c\xd9\xae\x22\xc0\x2c\xa2\x6a\xd0\xbc\x79\x2e\x07\x1a\x69\x11\xa0\xd0\xa1\x63\xc8\xe9\x85\x9a\x36\x47\x1a\xb6\x23\x78\x92\x08\x10\x04\xe5\x3c\x95\xe5\x21\x1f\xea\x47\xfe\x35\xfd\x50\x28\x81\x92\x3c\xa6\x80\x7d\x7f\xae\x66\xa4\x15\xa6\x11\x8a\x7b\x22\x33\x1f\x08\xaf\xbb\xa3\xc8\x7b\x7d\x16\x2a\xb9\xf7\x47\x4c\xc8\xac\x16\x7a\x5d\x7d\xe8\x1d\x96\x7a\xa7\xfb\xc0\xbd\x60\x81\x0c\xd2\x6e\x71\x79\xfa\xba\xec\x7f\x52\xda\x4a\x48\x9d\x64\x43\x56\xf0\x43\xa5\xde\xe7\xe4\xc4\xae\x2d\x8b\x32\x6a\xbb\xbe\x5f\xfe\x8a\xd9\x40\x30\xa6\xb4\xb0\xfc\x1e\xc5\xf7\xbe\xc4\xad\x0f\x8d\x74\xc7\xad\x8e\xc1\xa9\x6c\xc0\xe0\x2b\x36\xf9\xbe\x9c\x51\xec\x0a\xc6\xd0\xd2\xe4\xe4\xcd\xd7\xb2\xc6\xee\xfa\x83\x15\x27\x58\x98\xc9\xd4\x05\x31\x76\x54\xcc\x47\x81\xf6\xdd\x5f\x27\x3c\xe1\xae\x73\xf2\x3c\x17\x8e\x60\x21\x48\x32\x97\x75\x5d\x1d\x3b\x9b\x66\x0e\xdb\x11\x2c\x8a\x7b\x8e\xfe\xa9\x96\xd6\x19\x70\x58\xb0\x28\xb1\x75\x00\x05\x34\xed\xf2\x8f\xe5\x6a\x7b\xef\xef\x13\xc9\x2c\xf0\x19\x48\xef\x3c\x4d\x22\xe9\xae\x1d\x0f\x52\x35\x5e\xe6\xb7\x97\x13\xbf\x82\x71\xc3\xd0\x5b\x57\xce\x2a\xf3\x5c\x2d\xd3\xf9\xce\xe2\x6e\xa7\xeb\xf9\xab\x6e\xf3\xe6\x78\x6a\xf1\xe7\x85\xcb\xee\xcc\x24\xd6\x4a\xf6\x58\x14\x32\x75\x6e\xb1\x68\xe1\x92\xb4\x89\x60\x89\xb2\xa1\x5a\x8a\xea\x6a\xc4\xc3\x4f\x63\x32\x82\x65\xdc\x56\xe4\xd9\xfa\xd3\xc2\xce\x96\xaa\x6c\xaa\xcb\xb5\xce\x82\x65\x20\x99\xb4\x91\xb1\x61\xe8\x8a\xce\x2a\x20\xd3\xa5\x30\xf9\x10\x34\x1f\x60\x7b\xbe\x1d\x46\x44\xff\xf9\x2d\x2f\xff\xfe\x47\xd8\x04\xc1\x20\xb4\x5a\x0e\x9e\xa3\xe7\x42\xc0\x4c\x30\x88\x30\x74\x89\x54\x5f\xca\xef\x1f\x0d\x32\x49\x79\x3a\x6c\xdf\xc8\x4a\x5a\x97\xbd\x12\xa7\x60\x00\x96\x32\x01\xb4\xde\xb4\x60\xcc\x59\x1a\xa3\x1f\x80\xa0\x8c\x49\xe7\x21\x93\xc9\x83\xaa\x34\xa2\x92\x3e\x67\xeb\x11\xa5\x51\x3f\x19\x34\x37\xe8\x28\x65\x4b\xca\x98\xf5\x90\x21\xc1\x34\xda\xba\x02\x53\x57\x87\xed\xc3\x62\x7a\x55\x6d\x6c\x31\x82\xb7\x4b\x51\x2f\xe6\x13\x1f\x13\x63\x95\x04\xdf\xf2\x66\xea\x2d\x0b\x86\x69\x2c\xcd\x40\xbe\xef\x10\x26\x3f\xf5\x19\x04\x33\xb1\x42\x9b\xf1\xa5\xf0\x85\x39\x15\x0e\xcd\xed\xaf\x6a\x20\xa1\x44\xd1\x4b\x63\xf9\xc5\x36\xf9\xfe\x4a\xc4\x44\x30\x83\x8c\xa0\x61\xed\xe7\x11\x6f\x4e\xc6\x9c\xad\x35\x61\x90\x70\xcb\xc2\xd4\xb9\x5b\x8b\xb6\x05\xf5\x46\x45\x19\x73\x84\xb6\x08\x03\xa9\x68\x12\x1d\x50\xe7\xe3\xfa\x4d\x11\xb2\x28\x14\x66\xd4\x4d\x37\x45\xb5\x9f\x74\x64\x18\x86\x09\x79\x19\x1b\x6c\x89\xfb\xf1\x82\x0c\x9f\x08\x43\x1e\x52\x08\xe5\x0d\x0a\x47\xca\x38\x92\xd0\x14\x61\x18\x07\x14\xf4\x54\xd5\xe1\x50\x95\x37\x27\xdd\x6d\x32\xa3\x88\x41\xd7\x42\x11\xf2\xdf\x9a\x09\x0e\xea\x32\x89\x2a\x88\x30\x62\x52\xa9\xc1\x25\x7b\xf2\x3a\xba\x22\x8c\x22\xe3\x53\x74\x76\x79\xfa\x72\xc2\xa6\x71\xe1\x5a\xdf\x88\x33\x0b\xba\xea\x79\x59\xba\x3d\xb3\x6c\xab\xfa\x73\x56\x03\x29\x42\xce\x91\xfc\x23\xcb\x0b\xeb\x07\x63\x18\xeb\x54\xca\x91\xaa\xf1\x4d\x0d\xfb\xfe\xf2\xb1\x11\xe8\xd0\x84\x7f\x54\x75\x83\x84\xb0\x5a\xeb\x89\x17\x22\xc2\x24\x31\x0a\x7a\xf5\xa2\x4d\x55\xe8\xe7\xd2\x56\x8b\x8f\x38\xe6\x45\x98\x98\x94\xe6\xe5\x97\x47\x8f\xa4\x70\x07\xd2\xc8\xb0\xd8\x4f\x3c\x1b\x94\x9f\x7c\xad\x8c\x89\xc4\x19\x51\x2e\xe8\xd4\xd8\xb4\xdc\x95\x7a\x36\x7f\x5a\x02\x52\xf7\xd2\xd9\xce\x5e\xf4\xae\xd7\x14\x5a\x20\xc2\x2c\x4b\x68\xf1\x7e\xa9\xb1\xf1\xc2\x14\x3d\xf7\xec\x2f\x7c\x0a\x77\x09\xc1\x24\x09\x50\x38\xc2\xe3\xb1\x16\xfc\x78\x74\xcd\xce\x82\x00\x79\x38\x56\x7c\x76\xa4\x49\xfe\xb0\x8e\xc5\xc0\x30\x47\x05\xa1\xbf\x42\x8c\xbb\x33\x55\x10\x92\x12\xa8\xaf\x6d\xf2\x8c\xe1\x45\x45\xbc\x35\xa3\x41\xa4\x74\x44\xdc\x2e\x56\x85\xe5\xfe\x53\xd7\xd3\xf9\xa4\x23\xe6\xdd\xc7\x55\xa9\x09\xd1\x34\xae\xb1\xf4\xad\x64\x10\x5b\xd3\x9c\x4e\xa6\xa8\xc9\xd8\xc1\xf5\xcd\x8c\x26\x1a\x39\x9f\xe5\xbe\xb5\x6a\x8c\xfd\x28\xc1\x20\xa1\xc7\x1e\xc0\xfc\xb7\xf9\xf7\x66\x76\x2f\x74\xd4\x97\xda\x09\x3d\x3f\xf5\x28\x39\x11\x62\x64\x23\x08\x33\x1d\x10\xcb\xe2\x32\xbb\x4c\xa6\x3d\x2a\xfd\x5b\x8e\x1f\xdd\x04\xf4\x4a\x0a\xb3\x86\xc8\x20\xec\xe1\x7b\x5f\x1b\x5b\x15\x7c\x53\x80\x7a\x1f\x6f\x10\xbe\xb5\x49\x52\x57\xf7\xb8\x58\x3e\xbc\x56\x05\x66\x22\x0d\xa3\x8c\x85\xa2\x33\xe3\x82\x80\x85\x51\xe0\x1f\xd7\x64\x4c\x9b\x89\xcb\xbb\xad\x11\x9a\x53\x3d\xeb\xdf\x28\x60\x60\xac\xc5\xbd\xef\x0d\x1e\x7f\xc8\x25\xa8\xec\xc8\x3b\x4f\xbf\x8f\xc7\x6d\xe6\xce\x61\xcc\x92\x77\xda\x62\x14\x55\xf9\x6b\x31\x25\x6c\x26\x64\x52\x5e\xeb\xa6\xc5\x65\x2f\x27\x0a\x83\x90\x74\x40\xfe\xb8\x7f\xf9\xad\xff\x29\xa5\xad\xea\xee\x76\x79\x29\xe2\x2d\xa2\xd0\x05\xa8\x5b\x6c\xda\x5d\x6d\x53\x01\xfd\xc9\x29\x10\xc4\xc1\x8f\x91\x5d\x43\xe1\x78\x07\x70\x91\x9e\x52\x78\xd2\xeb\x51\xa8\x21\x75\x11\x4a\xca\x78\x42\xb1\x23\xce\xf6\xdd\xa1\xea\xc9\xda\xbb\x56\x8a\xf2\xcf\xce\x3d\x9a\xe4\x2b\xa6\x0f\x18\xa5\x96\x88\xd4\x46\xe9\x1c\x53\xc9\x74\xe5\x8b\xa2\xd4\x52\x22\xdb\x10\x87\x83\xa9\xf5\xfe\x9a\x6b\xc4\x99\xa1\x20\xcd\x76\xb9\xd8\x78\xeb\x33\xe2\x22\xb4\xac\x49\x70\x20\xcc\x6a\xef\x15\x45\x5c\x33\x36\x08\x7a\x7f\xad\x8b\x8b\x4f\x17\xc7\xb6\x8e\xbc\x21\xd2\x61\xca\xba\xcd\x26\x49\x14\x67\x09\x99\xed\x3d\xd1\xf1\x1e\x67\x8a\x03\x22\x8a\x65\xc2\xa2\x61\xb2\x60\xd9\x36\x6e\x9f\x9a\x37\x54\x48\x9f\xe4\x83\x84\x2c\xae\x39\x48\x51\x22\x33\xcd\x27\x84\xf4\xaf\xc4\x78\x35\xa2\xd0\x15\x51\x0a\x01\xad\x27\xdd\x86\xd6\xca\xaa\x7a\xef\x0f\xe8\x88\xb2\x03\xcb\x37\x38\x1c\xfb\xd4\xad\x88\x52\x0c\x69\xe7\xe8\xd6\x84\xaa\xfe\x5c\x94\x7a\x83\xe5\xcc\xdf\x8f\xb2\x24\xf6\x3c\x9d\x5f\x2c\x19\x44\x55\x37\xeb\xde\x13\x8b\xb2\x2c\x90\x63\x25\x80\xcd\x1b\xd4\x78\xd9\xae\x8d\x84\xb1\x5c\x97\x35\xaa\xea\x3b\xd6\x4b\x98\x99\x59\x11\x60\x4a\x86\x0c\x25\x03\xd6\x96\x65\x9a\xfb\x3b\xc9\x94\x93\x21\xa9\x2a\xcb\x12\x85\x16\x55\x38\x2e\x8e\x16\x91\xcc\x64\xe0\x41\x53\x96\xcf\x3b\x57\x50\x3c\x42\xfd\x6e\x29\x38\x72\xf5\x3e\xff\xa0\x8a\x69\x6b\xfd\x92\x3d\xe1\x1c\x72\x3b\xe8\x7a\xe5\xcf\x7e\x21\x8d\x14\x4a\x39\xa4\x9a\x29\xa4\x40\xa4\x1e\xd7\x49\x71\x7a\xd3\x27\x52\x86\xa7\x4e\x76\xb5\xde\xa3\x4d\xfd\xd9\x94\xc3\xdd\x15\xd6\x07\x11\xe9\xd0\x7e\xd5\x3d\xb6\x23\xa5\x4d\x11\x69\x2e\xc8\xfb\xff\xf7\x76\x35\xde\x55\x22\x23\x99\xc7\xff\x55\xa7\x11\x15\xdb\x35\xf0\xa1\xe0\x41\x60\xc8\x56\xda\xbc\xe7\x93\x40\x02\x0f\x42\xa0\x05\x77\xb7\xd3\xb6\xdc\x69\xb7\xeb\x0f\x01\x12\x9b\xe9\x50\xa5\x38\xbb\x26\x18\xf4\xcb\xd0\x1d\xe4\xc5\xcd\xa9\x2e\xbf\x9c\x3e\x9f\xaa\xc5\xa9\x77\x1b\x38\xd3\x32\x71\x06\xca\x50\xd6\x2d\x78\x14\x24\x34\x27\x96\x50\xda\x84\xb8\x3f\xc0\x23\x20\x04\x83\x6c\xdb\x66\x82\x8d\x15\x3c\x0e\x39\xc5\x75\x9f\x56\x37\xcb\x9f\x39\xe5\x3c\x86\x8c\x30\x2c\x56\xc0\xe4\x75\xb5\x59\xbd\x7e\x5b\xb1\x81\x29\x59\xf0\x58\x32\xda\x10\x5a\x78\xc7\xc1\x1d\x9f\x5e\x44\x27\x96\xdb\xc3\x6b\xd1\xf5\xe7\x62\x10\xe8\x41\x5a\x8f\xc4\x6b\xfc\xc8\xe1\x49\xa8\xa2\xf1\x0e\x0a\xaa\x0d\xa7\x13\x84\x27\xb1\xa6\xcc\x84\x86\x16\xee\xaa\xfa\x22\x1f\xb7\xe0\x89\x8e\x48\xb0\x63\x73\x2c\x28\xb3\xba\x6a\xdf\xb6\xd5\xaa\x55\xfe\x46\x69\x04\x94\xd7\x7e\x79\x5d\x6e\x59\x10\xec\x6e\x47\x84\xb3\x82\xa7\x49\x90\x88\x79\x61\xcc\xec\x0e\x69\x92\x68\xed\xe3\x6b\x4e\x6d\x6a\x12\xa1\x16\x3c\x8b\x84\x15\x8b\x7f\x43\xf5\xfe\x05\xf2\xb2\xd9\x56\x0e\xbd\xe3\xef\x94\xa5\x31\x71\xc1\xec\x34\xaa\xfc\x00\x45\xc3\xb2\xfe\x90\x41\x0a\xfd\x7e\x14\xbd\x4a\x9a\x3b\x22\x62\x96\xda\x1a\x8a\xf2\x7b\xae\xda\xbb\x7c\x5e\x4b\x32\x0c\x32\x81\xcc\xaa\x0f\x9f\xea\x31\xc0\x58\x70\x48\x42\xe9\x4a\x65\xc6\xb6\x0a\x69\x94\xd0\x34\x65\xc1\x74\x54\x80\x88\x08\x01\xdb\xee\x71\x83\x6d\x9b\x97\xfb\xe6\xa5\xdb\xbf\x5d\xa4\x6c\xed\x6a\x8c\x5f\xb0\x1e\xd1\x8b\x0a\x2e\x33\xfb\xb9\xba\x07\xad\xea\x1c\x4f\x24\xee\x94\x2b\x36\x9e\x91\x5c\x42\x16\x45\x83\x40\xf6\xcc\x7d\xe4\x0a\x18\x21\x2a\x96\x50\x4e\x4e\x53\x5a\xd8\x85\xb5\x00\x45\xb5\x1a\x3f\x35\x93\xb9\xd2\x8a\xea\x63\x17\xb7\xff\xf9\xa9\x1a\xf0\x2f\x8b\x14\x7f\xf1\xdf\xee\x76\x3a\x88\x89\xf0\x4e\x9e\x3e\x77\xba\x1e\xc9\xf2\xcc\xdb\x25\x48\xee\xe4\xb6\xce\x8f\xdd\x28\xda\x22\x1c\xa6\xbe\x1a\xd7\xa9\xb4\x62\xd4\x05\xe4\x07\x47\x6a\x3b\x97\xdf\x11\x1c\x83\x28\x71\x98\x83\x62\x51\x3a\x4e\xe0\x5d\x78\x59\x31\xd4\x9f\x13\x23\xeb\x06\xe0\x97\xd5\xea\xb7\xfe\x27\x13\xda\x02\xe4\xce\xdc\x5c\xf4\xa5\x65\xf3\xbb\xa1\x65\x67\xdf\x75\xfe\x5b\x7e\x70\x62\x08\x17\x57\x68\x6e\x92\x98\xf6\x0f\x0b\x6e\xa0\x17\xa0\x10\xe2\x6c\xaf\xe7\x06\x2d\x60\x83\x5a\xdc\x63\xe1\x87\x6b\x1c\x24\x40\xc1\xcc\xc7\xc5\x7f\x76\xdb\xd7\xc5\xd3\xf2\x7e\xb5\xf1\xc7\x18\xb7\x56\x4e\xe7\xa4\x39\x9c\xd4\x78\xe4\xc6\x4c\xa8\x38\xe8\xab\xb2\x67\x88\xfe\x8b\x9f\x2e\x0e\x43\xae\xbd\x6c\xbd\x03\x16\xdf\x14\x95\xec\x7c\x44\x7c\xaa\xda\xd7\x3e\x0a\xe2\x9f\x21\x8c\x74\x9a\x0e\xfa\x8f\x8e\xdc\x6c\x6a\xb3\xc5\x61\xca\xbd\xc3\x3b\x4b\x48\x58\x5c\x0d\xa5\xb7\xcf\xd3\x12\x71\x98\xa5\x94\x16\xee\xe6\x19\x4e\xa8\xc8\x7c\x03\x23\x68\x97\x18\xf2\x7b\x4b\xcb\x46\x87\xf3\x4b\x71\x13\x4b\x5b\x88\x5d\x2e\xdf\xaa\x1e\x2a\x20\xe2\xb8\xfb\x48\xce\xd3\x22\x56\x24\xa8\xdb\x5c\xe5\x47\x28\xaf\x80\x6a\x2f\xcf\xb1\x38\x16\x31\xed\x4c\x26\xaf\x1b\x87\x38\x5f\x3e\x7b\x98\x54\x7f\x33\xb4\x4a\x5c\x34\x9c\x7d\x32\x7c\x16\xd6\x8d\x93\x34\x23\xcf\x07\x7f\x1c\xf3\x1a\x47\xc0\x21\x11\x27\x19\x90\xed\xb8\x25\xb6\x29\xd6\xff\x2c\x22\x10\x3e\xa0\x30\xc1\xe3\x88\x38\x31\x0a\x1d\x8a\x61\x51\x5c\x25\x83\x76\x8d\x53\xce\x68\xb4\x7d\xf9\xcf\x6a\xf3\x01\xc7\x63\x6f\x52\xc4\x69\xc6\x48\x75\x98\x96\xf4\xb5\xf9\x13\xa1\xbe\x87\xe6\x05\x9a\x21\xc8\x16\xa7\x3a\xa1\x24\x7b\x79\x3a\x3c\x9b\x07\xdc\x63\xa9\xa1\xee\x9f\x3d\x35\x99\x34\x43\x21\xce\x63\xf5\x1d\x07\x64\xb6\x7f\x00\x91\xf0\x40\x78\xf0\xff\xbe\xb6\x2a\x46\x7d\x9c\x33\x16\x69\x4c\xf8\xde\xfb\xe5\xc3\xaf\x83\xec\xb1\x50\xd2\x4a\xae\x9c\xca\x77\x6b\x88\x11\x31\xc3\x28\x5b\x11\x43\x66\x19\x3c\x6d\x39\xec\x1f\x88\xef\x8f\x90\x97\xeb\xe5\x33\x2d\x33\x5e\xb1\xbe\x6f\x2d\x5d\x9d\x37\x94\xdd\xf6\xed\x0a\xbd\xa7\x53\x39\x06\x09\xc4\x90\x52\x40\x69\xc3\x94\x4b\x28\x75\xdf\x0b\x92\x6b\x0a\x61\xbd\x9e\xc6\x59\x93\x58\x1a\x4b\x90\xdf\x5a\x5a\x46\x16\x1c\xeb\xd1\x18\x55\xcc\x46\x24\xf6\xe8\x10\xd2\xa8\x69\xeb\x1d\xb3\x8b\x77\xad\xa4\x96\xbd\x10\xcc\x85\x92\xe6\xb1\x33\x1a\x2b\xae\xc8\x81\x3c\x59\xee\x03\xfc\x3e\xb1\x95\x63\x95\x24\x09\x8c\x98\x2e\x0f\x87\xaa\x74\xe0\x5d\xdf\xc2\x44\xc4\x35\xf8\x1d\x8a\x5c\x8f\x25\xc1\x67\xab\x73\xac\x39\x32\xd9\x17\x74\x50\x66\x9d\x04\x26\xa7\x43\x0f\x33\x49\x0e\x87\xf5\x38\x2f\x60\x75\x45\x8c\x2a\xe6\x9e\x59\x1a\xd4\xfb\xfc\x28\x46\x64\x5f\x5d\x0b\x21\xb9\x66\x86\x27\x54\xd0\x7b\x80\xfa\x7d\x51\x14\xaf\x3d\xc0\x43\x24\x01\x47\x6d\xd7\x4b\xe7\xef\xee\x6c\x8d\xcf\x6f\xe7\xe6\x7a\xc2\x98\x26\x5f\xc2\xcd\x07\x2b\x8a\x77\xf3\x79\x39\xee\x9e\xb0\xd0\x08\x5f\x40\x30\x64\x00\xb7\x7d\xf0\x6e\xfa\x2a\x09\x8b\x18\xf9\xc1\x4f\xf8\xb1\x2a\xdb\x7a\x4a\xf3\x21\x12\xc6\x53\x1a\x2c\x35\xe5\xf8\xfd\x28\x49\x42\x40\xf0\x3c\x12\xcf\xcf\x0f\x3b\xd4\x79\xbb\x0b\x27\xca\x79\x22\x89\x58\x2a\x9d\xcb\x40\x41\xde\x81\x2a\x55\x24\x51\x6a\xc3\x57\x47\x1b\x79\x78\xc9\x1d\xcb\xc4\x40\xa8\x41\x6d\x24\xf7\x8a\x31\x7b\x8a\x6c\x5d\x0d\x8e\x4d\x6f\x9c\x69\x74\x6e\xef\xba\xc5\xc3\x53\xd5\xeb\xcf\x4e\xdf\x3d\x52\x56\x2d\xaf\xf5\x42\x2f\x93\xe2\x6c\xdf\x48\x83\x74\x3e\xef\x53\xa5\xd1\x87\x47\xc7\xf9\xe5\x24\xce\x98\x0f\x61\xbe\xc0\x50\x65\x34\x2d\x64\x9e\x9c\x91\x44\x21\x81\x12\x15\x94\x57\x19\xb0\x2e\x0c\x85\x24\x31\x0e\xb1\x79\xc8\xcb\x4d\x8f\xd8\x5e\x97\xdf\xf3\x73\x78\x90\x3f\x27\x4d\x06\xdc\x57\x7d\x78\xae\x41\x5d\xc1\xa5\x88\x24\xc9\x20\x72\x51\x96\xe7\x23\x96\xaf\x55\x75\x38\x57\x32\x14\x49\x1a\x2b\x70\x02\x9f\x97\x87\x7e\x92\x26\xd2\xa2\xca\xed\x76\x9a\xff\x8d\x8f\xa3\x38\x4d\x92\xb9\x1a\xc2\xbc\x21\xc0\x97\xd5\x54\x98\x7d\x9d\x4c\xd9\x1a\x49\xfa\xf0\xea\x0d\xf2\x72\x79\x6a\x73\x6c\x06\xc8\xbf\x48\x32\x2d\xc9\xdf\xfa\x02\x7f\xe3\xc8\x65\x4c\x44\x66\x82\xb0\xd7\x37\x9a\x99\xba\x89\x30\x92\x90\xdc\x5f\x37\xb7\xab\xed\xfd\x40\x2e\x23\x12\x60\x29\xf0\x21\x5c\xfb\x8a\x8d\xe7\x6f\xbb\x18\x95\x48\x14\x44\x84\x14\x3b\x9e\xda\x9d\x8f\x3c\xec\x4c\xf5\xcb\xe2\xc4\xab\xd6\xef\x78\x8c\x28\x0c\x98\x67\xd5\x80\xbc\xf8\xa4\x81\x62\x0b\xf4\xbf\x55\xc5\xe9\x80\x1b\x1c\xa7\x6a\x12\x1d\x5b\xa2\x65\x02\xea\x1e\xab\x7a\x46\x80\xee\x5b\x65\x81\x17\xcd\xe8\xd5\x35\xfa\xa5\xe4\x92\xf9\x9a\x60\x10\x59\x2c\xf7\xc0\x1f\x70\x05\xe0\x28\x12\xd4\x69\x0c\xce\x0e\x6c\xf0\x52\x9d\x9f\x48\x0c\x0f\xc8\xab\x23\x2a\xfa\xe7\xb2\xdf\x08\xd2\x20\x0a\x69\xde\x2e\x8b\x7c\xcc\x22\x26\xd2\x80\x47\xe4\x49\xae\x55\xd5\x3b\x52\xbf\x90\xf4\x14\x69\x00\x81\xf1\x95\x40\x9d\xf7\x66\x79\x69\xfb\x50\x4a\x5e\x95\x84\x19\xf1\xad\xb5\xd5\xa1\xb1\x7b\x82\xdf\xe8\x52\x16\x82\xb1\x44\x0a\xe5\x7e\x8b\xf5\xe1\xbe\x2a\x46\x5d\x9e\xb2\x34\x12\x6e\xbf\xf9\xb6\x7e\x19\x71\x69\x8b\x34\x34\xb6\xdc\xbb\x1e\x07\x72\x08\xe2\x7f\xb5\x38\x42\xa4\x11\x0b\xa9\x9a\xab\x5b\x13\x89\x08\xfc\x76\x30\x09\xd2\x48\x07\xe4\xc7\x76\x03\xfd\x03\x6a\x9c\x74\x51\x84\x11\xb3\x31\x2d\xc2\x5b\x6c\xb0\x28\x96\x79\xfb\x79\x57\xd5\x03\xf2\xdf\x9b\x3e\x29\x8f\x52\xf2\x3e\x8e\x30\xd2\x51\x12\x29\x4f\x22\xe8\x19\x8c\xce\x25\xad\x44\xca\x05\x68\x2b\xcf\xe0\x40\xb4\xd3\x29\x9b\xc6\xc8\x69\x62\xb9\x32\x40\x9f\x9b\xf8\x5a\xe6\x7d\x78\x30\x4d\x02\x4b\x2c\x45\x85\x8c\x4e\x51\xf9\x9c\x8d\x47\xa4\x49\x1c\x11\xaf\x29\x25\x79\x07\x14\xe5\x0c\xcf\x29\xd2\x24\x4d\x42\xb7\x15\x2d\x76\xdd\xde\x48\x15\x3a\xb3\x8b\xa5\x46\x90\xad\xf7\x75\xbb\x1c\x89\x40\x8a\x34\x63\x82\x39\x4a\x66\x27\xf1\x77\x46\x27\x32\x5a\x7e\xd3\xcc\x28\x0a\x42\x53\xfa\x72\x08\xca\x91\x42\xc5\x65\xe4\x99\x48\x45\xc0\x88\x4c\xf1\x8f\xbc\x7d\x1b\x87\xd7\xa6\x0f\x08\xa9\x06\x39\x0f\x35\x0f\x30\xa0\x51\xa9\x63\x0f\x17\xba\x00\x12\xfa\xd7\x2c\x38\x9d\xca\xc0\x8a\x6e\x5b\x60\xf4\x25\x2c\x49\xaa\xb8\xc5\x6c\x37\x6f\xd5\x87\x0f\x34\x50\x61\xc9\xdd\xa9\x28\x66\x7d\xad\x32\x1b\x4f\x3e\xc2\xe7\x08\xdd\x7d\xf3\xb9\xb8\x30\xcd\x53\x25\x03\x42\x9a\xba\xd8\xd4\xc4\x80\x4c\x95\x42\x42\x64\x77\x6b\x7b\xbf\x3c\x8f\x7a\x5a\x87\x92\x39\x44\x09\xd5\x11\x2e\xea\xba\x77\x4d\x52\x1d\xc7\x44\xf4\x74\xf0\x45\x40\x5f\xb0\xbd\xa9\xa0\x9e\x65\x2e\x53\xe4\xa9\x27\xee\xec\xe6\x51\x67\x6e\xaf\x66\xa5\x1f\x22\x0b\x02\x45\x50\xdb\x43\x5b\x5f\xe4\xf7\x11\x59\xc0\xb5\x67\xd5\xd9\xc0\x1e\x3c\xc4\xb5\xee\x8f\xc7\x86\x4a\x78\x9a\x28\x74\x61\x9d\xe1\x00\x01\x34\x5e\x5e\x96\xb3\x2d\x28\x0b\x0c\x63\x66\x08\x41\x4f\x20\x79\xd3\xa1\x91\xb1\x48\x50\x16\x22\x6f\xfe\x98\x71\xde\x3c\x5c\x00\xc6\x65\x0c\x52\x32\xe8\xec\x46\xb1\x98\xbd\x2d\xd3\x01\xf9\xd0\x5d\xbf\xdf\x55\xf5\x1f\x55\xfd\xfe\x73\x37\x3d\x63\x3a\xa6\x6f\x4e\xab\xb5\x7b\x3f\xd7\xc1\x59\x98\xd8\xd4\xad\xed\x10\xcb\x79\x56\xb7\x67\xec\xbb\x22\x0b\x25\xcb\x5c\x98\x66\xb3\xfa\xfd\xeb\x65\x4b\x25\x0b\x75\x6a\x09\x72\x89\x0f\xdc\x89\x99\x13\x39\xaf\xf5\xcc\xc6\xf8\xb3\x84\xf7\xc3\x3e\xfc\x9f\xb9\x62\xf1\xd8\xfb\xc8\xa2\x24\xd1\xa9\xd5\xca\xcb\xb2\xac\xa7\xad\xde\x84\x97\x4d\x97\x2c\xd2\xa1\xcd\x8a\x57\x85\xde\x7c\x1e\xa4\x67\xd5\x11\x19\x0f\x22\xc2\x51\x22\xb1\x95\xe7\x0a\x6d\x39\xc0\x65\xf4\x3b\x35\x57\xd1\x54\xcf\xb9\x98\x30\xba\x8b\x8c\x63\x4c\x93\x6f\xd7\x9c\xe4\x9c\x28\xf6\x62\x0a\x26\x8b\x03\x43\xf8\xd2\x12\x7f\xb4\x9b\x16\x8f\xb3\x8e\x8e\x43\x4d\x85\x4c\x2f\x8b\xd7\xcd\x6a\xb9\x5b\xbe\xae\x6e\xd7\xdb\xcd\xee\x71\xfd\xb4\x7e\x5c\x3c\x38\x01\x28\x7f\xf7\x38\x4a\x84\x05\x9c\x80\xfe\x6a\x2f\x33\x9d\x41\x59\x2c\x24\x85\x75\x6c\xea\xf1\x01\x88\x3d\xb9\x46\x9c\x37\x83\x28\x10\x97\x96\xd1\x2b\x5d\x1c\x83\x24\x52\x46\x1b\xb6\xef\x2c\xef\x09\x32\x31\x4b\x38\xf7\xb0\x89\xbb\x1a\x91\xf2\xd9\xb3\x61\x9e\x70\x41\x79\xb4\xed\xe7\xdf\xd5\x44\x1f\x4d\x64\x89\xb0\xd6\x38\x45\x3e\xac\xfa\xb7\x15\xdf\x6c\xe6\xd1\xbc\x2c\x31\x26\x0a\xfb\xdc\x77\xf7\x65\xd6\xa4\x31\xbd\xc7\x68\xd6\xb1\x59\x1c\x13\x72\xc7\x0e\xf5\x33\xbe\x0e\x41\x42\x1f\xc2\x3b\x13\xb4\xa1\xcd\x31\x1a\x59\x26\x43\x37\x93\x1f\xab\xf9\xb4\xcd\x14\x33\x66\x54\x46\xd2\x4d\x73\x3f\xbc\x66\x2d\x75\x2c\x28\xe1\xf8\x2b\xbf\x61\x62\x53\x8e\x6d\xc0\xce\x51\xa6\x42\x1e\xe2\xe0\xa5\x41\xe9\xd8\xea\xa6\xaf\x24\x52\x46\xe8\xef\x9d\x3c\x7d\xbe\x42\xf9\x7e\x65\x81\x12\x4e\xc0\xb4\xf2\xe4\xca\x67\x22\xdc\x22\x03\x96\xd1\x2a\x82\x43\xd5\x75\x33\x08\x12\x8a\x0c\x20\x8c\x64\xef\xb5\xaa\x3e\xa7\x38\xbb\x8a\x8e\xd1\xf9\x1d\x3b\xa8\x65\xde\x36\x3b\xe7\x40\xee\xaa\x23\x96\xa3\x0d\x24\x53\x82\x13\x2f\xc6\x06\xdb\xdb\x5c\xbf\xc0\xe7\xf3\xa9\xbd\x80\x20\xcc\x14\x32\xd2\x20\xb0\x29\x9e\xce\x5d\xa4\x6f\xb7\xbe\xbd\x32\xa9\xb5\xb2\xe1\x70\xcf\x0c\x1b\xb1\x89\xd3\x9b\x61\x24\xe2\xc0\x73\x6e\xfe\x52\x28\x40\x64\x26\x4d\x28\xee\x78\xac\x51\xe5\x15\x0e\x35\x8e\x22\x33\x32\xa0\x80\xbd\x9d\x7c\xb7\x38\x00\x4e\xc6\xdf\xd2\x68\x2b\xa2\x42\xa3\x7d\x10\xd3\x17\x82\x69\xa4\x7a\xf7\x3b\x92\x77\xf6\xbf\x86\x01\x12\x20\xc1\x4b\xf2\x2e\xa1\x79\xab\x4e\xed\x6f\x3f\x8b\xb2\x8b\x30\x62\x24\x45\xf9\xf2\xba\xda\xad\x97\xcf\x76\x39\xf9\xfa\xb8\x5b\x3e\x3f\x6d\x5f\xd7\x37\x5f\xb7\xeb\xe7\xa7\xfe\x06\x80\x64\xab\x7f\xbd\x59\x6d\x97\xcf\xeb\xa7\xdd\xc3\xea\xf6\xcb\xea\x75\xb7\x7d\xf6\xff\x5a\x3d\x6d\x5f\xff\xdc\xdd\x3e\x2f\xbf\x3e\xae\x9e\xb6\xbb\x97\x45\x8f\xda\x14\x51\x10\x52\xfc\xa6\xce\x9b\xf7\x66\x3a\x1a\x45\xc4\x13\x12\x64\xeb\x56\xbe\x97\xaa\x21\x14\x80\xa7\xb1\x17\x22\x8a\x6d\x8c\x69\x8f\xed\xe2\x20\x73\x2c\xdb\x2d\x1e\x8e\x2e\xae\x4c\x61\x85\xf9\xf5\xb8\x01\x9a\x04\xdb\xea\xf8\xf5\xe8\xb8\x55\xdc\xa1\x38\x0c\x44\x7a\xd1\x0d\xec\x5b\x44\x01\x71\xfe\x2d\x9a\xb6\xf3\x5d\x4b\x52\x6c\x18\x1b\xe4\x22\x8d\xa3\x4c\xf4\x1a\xd6\x9d\xcf\x30\x1e\x27\x22\x4d\x2c\x89\x57\x63\x59\xe2\x67\xf3\x45\xa4\x26\x53\x66\xc4\x04\xe6\x96\x02\xf2\x30\xe6\xa6\xb2\xc8\x78\xea\xa1\x00\x9a\x88\xcf\xce\xcd\x64\x91\xa1\x61\x67\xe9\xb6\x47\x78\xbf\x30\x40\xa7\x27\x0a\x6e\x69\x32\x6e\xf1\xbb\xaa\xca\x70\xf2\x8e\x22\x49\xa5\xed\x27\x8d\x78\x58\xfd\x20\xb9\x19\x7d\xdd\xbf\x11\x42\x6b\x5a\x9a\x57\x9b\xea\x54\x4c\x2e\x05\x01\x52\xb8\xfa\xf9\x88\xe5\x62\x4d\x6b\x12\x51\x0d\x4e\x1b\x31\x8c\x92\x81\xcc\xb7\x3d\x4b\x46\xf9\x76\x90\x10\xc8\xf8\xdf\x27\xbd\x1f\x6d\xcf\x14\x52\x9f\xac\x8a\xfd\x60\x00\x0c\x46\x6a\x3b\x37\x20\x73\x1c\xdb\xdf\x3f\xfd\x97\xbb\x84\x8c\x38\x85\xb4\xec\x74\x5d\x56\xa7\x63\x81\xeb\x03\xec\x71\xfd\x72\xb7\x79\xeb\x5c\xcd\xc9\x00\x90\x71\x44\xb1\xdb\xd7\xf5\xf2\x7e\xf2\x92\x32\xe1\xba\xdf\x48\x7a\x6e\xf6\x9d\xc6\xb2\x3a\xe4\xe5\x08\x18\x24\x64\x92\xd2\xa2\xfa\x6d\xfd\xba\x9d\x5e\xc2\x64\xc2\xd5\x51\xd8\xed\x78\x5b\x59\x84\xf0\x93\x27\xca\x10\x42\x05\x51\x12\xf4\xae\xeb\x78\x79\xf7\x0d\x38\x8f\x3c\x05\x22\x45\x69\x3a\xc7\x84\x20\x92\x57\x8a\x71\xdc\x79\x9a\xc5\x71\x32\xcf\x4e\x9c\x87\xf7\x84\xce\x78\x60\x2c\x1f\xc7\x4b\xf5\x3e\x30\x35\x4c\x7a\x09\x03\xa3\xc4\x98\x5a\xf1\xa5\xea\x2f\x80\x51\x4a\x55\x9f\xdd\x52\xb6\x28\x27\xaa\xd2\x97\x17\x5b\x81\x59\x4a\xde\xbc\xb5\x36\x46\x24\x4d\xf3\x76\xca\x10\x15\xed\xf1\x0d\x1a\x8c\x56\xa5\xa5\xf4\xf0\xf7\x35\x2c\x20\x48\x6c\x5d\x55\x87\xa7\x7c\xff\xd6\x36\xcf\x66\xe2\xc1\x5e\x88\xdc\x09\x23\x34\xcd\xf7\x3f\x97\x37\xe3\x4f\x05\x81\x4c\x52\x31\xc3\xb3\x55\xe7\x7b\x7a\x9f\x0d\x62\x9e\xc9\x70\xda\xeb\x10\x26\x09\xd5\x42\x3c\x61\x55\x5e\x82\x5b\x8f\x7b\x15\xc2\xd4\xba\x14\xc7\x37\x9c\x04\x5a\x20\x0a\x42\xc2\x75\x7d\xdd\xdc\x2e\xfb\xdf\x20\xf0\xca\x94\x8f\x79\x79\x6a\xcf\x7d\x5d\xdf\x10\x2d\xbf\xf9\xb2\xaa\x25\xcc\x52\xf9\xc0\x99\xf0\xb2\xbc\xbb\xa6\x33\xb0\x76\xb7\xf0\x39\xdb\xdf\x81\xc7\xcc\xc8\x5e\xcf\x51\x11\x11\x41\x89\xc5\x64\xe2\x00\x8f\x2d\x5c\xc8\x63\x3a\x2c\xd0\xb9\x73\xaf\xad\xd2\x43\x63\xff\x3c\x55\xed\xba\xfc\xda\x78\x06\x66\x01\x5c\x58\x35\xab\x03\xfc\x18\xc7\x36\xec\x58\x98\xf9\x67\xc0\xa5\xa6\x8d\xc8\x74\xe3\x17\x7c\xb0\xa8\xcf\x3f\x01\x57\x8c\xb4\x5c\x6f\xf1\xfb\xd4\x5b\x84\xd8\x84\xda\x4c\xcb\x6f\x6c\x1e\xd9\x1d\x4f\x84\x0a\xfa\x4c\xaa\xf4\x70\xbf\x33\xdc\x8e\x6b\x9d\x82\xad\xb2\xbb\xc5\x62\x53\xa9\x1c\x0a\x4f\x7e\x34\xf3\x78\x5c\xf3\x8c\x59\x89\x74\x4a\x94\xbc\xcc\x99\xcb\x2f\x7f\xb6\x2c\x4a\x89\xa0\xb2\xa0\xc2\xdf\x9f\x3a\x83\x20\x78\x1c\x0d\xf2\xdd\x6e\x71\xf1\x7d\x77\x56\xca\x01\x42\x47\x04\x02\xba\xca\x93\x30\x7d\x7a\xa1\x13\x0a\xb5\xdb\x95\xef\xd5\xab\x4f\x38\x7b\xdc\x35\x02\xb0\x13\xc9\xc6\x98\xd4\xa7\xdd\x19\x2d\xfa\xcd\x35\x91\x28\x69\xaf\x7b\xb1\x32\x64\x5f\xe0\x80\xab\x1f\xb3\x1d\x16\x74\x00\x91\xab\x7f\xb4\x95\x36\x17\x02\x3e\xa0\x03\x34\x13\x86\x01\x3b\x5a\x7c\x48\xeb\x72\x87\xea\x38\xb0\x61\xcc\xbc\xd4\x36\x4d\xb5\x05\x2f\x11\x23\x40\x43\x4a\x7e\x42\x8f\xe9\xb6\x3b\xd9\x38\x76\x08\xc8\x14\x11\x46\x94\xd0\xe6\xdf\xf1\x15\x8f\xa7\x76\x0c\x4e\x01\x54\x90\x26\x3d\x04\xbe\x86\x79\x1e\x0c\x4c\xc0\x89\x3c\xd0\x7e\xa7\x27\x50\x77\x75\x75\x78\x7a\xb8\x9b\xf5\x81\x61\x96\x5c\xeb\x35\x6f\xb0\xfe\x0e\xab\xed\xfd\xbc\x41\xa8\x95\xab\x40\x1d\x15\x32\xce\x6f\x06\x96\xac\x7a\xa1\xf5\xc8\xaf\x39\x27\x21\x10\x60\x94\xa4\x9c\xaf\x3c\xd5\xb3\xf5\x41\xb2\x28\xa3\xdd\xf3\xf7\xbc\x28\x06\xfe\x2f\x21\x59\xca\xac\xce\x7a\x7e\x38\x16\xd8\x5e\xd3\xd6\x98\x3c\xb6\x64\x59\x10\x12\xbd\x22\x62\xf3\x6a\xd5\xf3\xf6\xb5\x27\x34\x11\x92\x19\xa0\x10\xe4\xeb\xf3\xc3\x8a\x90\x0e\x9b\x3b\xaf\x53\x29\x64\x18\x58\x09\x5a\xd0\x7a\xf5\xa3\xad\xe1\x8a\x5b\xee\x5b\xcb\x80\x9c\xb1\xc5\xcd\xed\xea\x61\xb7\xb8\xbd\x7d\x5d\x6d\x36\xfd\xa5\xb4\xad\x67\xe9\x8c\x38\x2f\xbe\xeb\x63\xb0\x32\x8a\x2c\xab\xca\x17\x6c\x97\x79\xfb\x49\x2c\x9c\xfe\x50\xd6\xd7\xb5\xad\xcb\xef\x15\xd1\x2c\xba\x55\xc6\x03\x98\x2f\x05\xea\x65\x64\x32\xb2\x90\xef\x0a\x38\x0c\x6f\xcb\x85\x4e\x7a\x02\xda\x25\x1c\x09\x5b\x01\xea\x6d\x8e\x5b\x90\x1c\x22\xc2\x0c\xdf\xe2\xb1\xdf\x64\x25\x57\x96\x0c\x9b\xce\x76\x49\x90\x97\xba\x3a\x54\x76\x51\x9b\x5e\x21\x66\x4e\xd0\x91\xf4\x88\x0f\xa7\x32\x6f\xaf\xa9\xd2\xf8\x33\x42\x6b\x85\xd4\x4e\x5b\x74\x3c\x0d\x64\x1c\x4a\x21\x1d\x43\xdb\x98\xa8\xfa\x52\xc8\xd3\x9f\xc2\x03\x0a\x61\xdf\x9d\xd4\xfb\x9f\xd5\xa9\xbf\x92\x8c\x69\x74\x1d\xe0\x07\xe5\x02\xc6\xf0\x29\x19\xa3\x55\xf8\xaf\x4e\xed\xf1\xd4\xda\x3c\xd5\xe5\xaf\x9d\x30\x4b\x04\x68\x4d\xbc\x6f\x98\x9b\x4f\x4f\x7c\x38\x6a\x94\x19\x1e\x0c\xce\x83\x63\xa6\x99\x84\x3f\x65\x8a\x29\x77\x59\xf6\xc7\xcf\xce\xe4\x75\xa6\xfd\x6c\x52\x64\x22\x23\xdb\x9b\xe2\xcd\xcb\xaa\xfc\x8e\x75\xbb\x2e\xdb\xea\xbe\x2d\xd4\x6f\xff\xb0\x70\xf4\x7a\x74\x58\x66\x92\x3b\x9d\x1f\xd0\x63\xbe\x37\x21\x33\x2d\xe3\xd8\x9a\x56\x37\x23\x96\x65\x21\x45\x14\xa9\x91\xb2\xce\x1d\x14\x85\x84\x0b\x76\xd7\xb9\x58\x9f\x90\x22\x4e\x69\x58\xbf\xde\x4c\xac\x55\x29\x52\x4d\x76\x03\x45\xfa\x37\x79\xef\xc1\x4a\x88\x6c\x9e\xde\x65\x2e\x5d\x15\xdc\x39\x71\xb2\x90\x90\x61\xc2\x7a\xd4\x42\x91\xab\xbc\xdd\x58\x95\xdd\xcf\x31\xa8\x43\xca\x38\xa6\x19\x02\xc7\x71\x5d\xeb\xa5\x24\xb2\x54\x01\x12\xe2\xa9\x5b\xe9\x71\xe2\xda\x49\x15\x5a\x67\xe1\x06\xf6\x2f\xa0\xde\xa7\xc7\x78\x4c\xd4\x26\xdb\xfb\xe7\xfe\x27\x08\xb5\xc3\x97\x3a\x8d\xd7\x8b\x0a\xf4\x97\x87\x9c\x92\x8e\xe3\x17\x0f\xd5\xf4\x46\x46\x50\x81\x69\x9b\x77\xbb\xdb\x31\x1f\xad\x6f\x5a\x5a\xf4\x39\x75\xe8\x16\xe1\x70\x77\xb2\xf2\x30\xbd\xfd\x22\x31\x4b\x81\xd9\x98\x4d\xe9\xad\x2c\x77\xc8\xa8\x84\x30\xb5\x2f\xeb\x6f\xcf\xdb\xe5\xfd\xc2\xd3\xd5\x08\x15\xc8\x30\x76\x81\x9e\xbe\xac\xf1\x12\xfa\x5f\x31\x16\x64\x16\xdd\x66\x41\x6b\xa7\xc2\xcf\x69\xc5\xb2\xc4\x77\xc6\x13\x7e\xdc\x9c\x9a\xbc\xc4\xc6\xd3\xd3\x4e\x3e\xaa\x62\x99\x24\x68\x31\xf9\x3f\xa7\xe6\x02\x40\x54\x31\xa1\x29\x21\xa5\xaa\x52\xc1\x45\xa0\xbf\x0a\x39\xa7\xca\x7f\xfc\x81\xea\xd4\xe2\x06\x0b\xa3\xd1\x12\x5b\xf8\x67\x0a\xbb\x99\x3d\x29\x0f\x87\x4f\x5a\xef\xa6\x33\x5b\x71\xae\xd1\xb8\xf5\xe8\x31\x27\x2d\xbf\x0b\x2a\x04\xd3\x73\xe2\x20\xa5\xd2\x73\xef\x77\xdf\xe2\xf7\xab\x59\x20\x15\xc7\x19\x77\x09\x8b\x61\x79\xcd\xfe\x3b\xfe\x1f\x7f\x1c\x91\xa2\x64\xee\x5d\x48\x60\xe6\xce\x69\xca\x8f\x83\x42\x2a\x49\x45\x9a\x78\x6d\x0e\x85\xc7\x96\xb6\xb0\x8b\x26\xa6\x4a\x84\x05\xf5\x13\x29\x28\xd6\xb9\x53\x05\xf3\x9d\x93\x46\x31\xe1\xde\x64\x5e\xb7\x6f\x36\x80\xfd\x56\x63\xf3\x56\xf5\xc0\x41\x95\x26\x89\x95\x7d\x85\x93\x4d\x7f\x13\xe3\x76\x8b\xe5\x28\x62\xa2\xd2\x54\x13\x42\xaa\xf3\xd6\xc6\xd5\xd9\x2a\x05\xcb\x58\xe6\x6c\x4a\x57\xf2\x7b\x5e\x47\xaf\x52\x4c\x29\x54\x77\x93\xb7\x45\xfe\xd7\xa9\xaa\x37\x2d\x94\x1a\x6a\xfd\xcf\x28\x3a\x84\x12\x99\x0a\xfc\xaa\x0b\x3f\xbe\x40\x33\x22\xf2\x11\xaa\xfb\xbe\xc4\x30\x72\xa8\xca\xf6\xae\xc6\xf2\xef\x19\x18\x46\x09\x15\x93\xf0\x5f\x53\x54\x47\x9c\x01\x86\x95\xc0\xcc\xba\xb3\xd5\x04\x20\xaf\x64\x28\xb4\x57\x75\x58\x35\xaa\xae\x3e\xfa\xa0\x95\x92\xca\x12\x62\x78\x83\xb7\x73\xd1\xfb\x39\xaa\x54\xac\xc2\x21\x27\x68\x7d\xd0\xe7\xf2\x95\x14\xce\x9b\x89\x08\xfa\xec\x8b\xaa\x18\x49\x45\x5c\xe6\x7a\x5e\x76\x3c\x1d\x6f\x2a\xb3\x62\x36\x3d\x2b\xed\x2c\xa8\xad\x94\x8e\x04\xf8\x80\xab\xbd\xc4\x6e\x71\x79\x2b\x57\xca\x84\x99\x1a\xd9\x19\x84\x8e\x55\x55\x7d\x05\x2a\xa0\x34\x97\x14\x42\xd3\xa8\x72\x9d\x97\xfb\xb1\x8f\xad\x34\x24\xf4\x0a\x34\xa4\x5e\xbe\x79\x54\xbc\x42\x96\x90\x3f\x74\x80\x1f\xaf\x23\x4c\xbe\xc2\x28\x92\x4e\x5b\x89\xb4\x45\x56\xaf\xcb\x2c\x0c\x1e\x07\xce\xfe\xe9\xb3\x62\x6c\x05\x51\x35\xcd\x46\xe2\x82\xea\xaf\xa4\x99\x70\x01\xde\xa7\xca\x86\xe0\xa1\x97\x41\xed\x3b\xc6\xc4\x49\x30\x05\x8a\x0c\x49\x7e\x7f\x25\x23\xac\x35\xb4\x73\x10\x80\x57\x34\x3f\xa1\xba\x16\xca\x40\x16\x3a\xb8\xb8\xab\x47\xba\xa0\xda\x74\xe5\x54\x9d\x32\x39\x01\x7d\x4d\x97\x2e\x1d\x1a\x45\xcc\x84\xb7\x95\x6a\xab\xfa\x2c\xb2\xa6\x23\x60\xb1\x1c\x96\x65\xfa\x14\x83\x81\x71\xd1\xd9\xd4\x11\xea\xcc\xf6\xb9\xc9\x4b\xf4\xf8\xd3\x1b\x4a\x2a\x3c\x74\xcb\xba\xbf\x38\x67\x81\xaf\xe8\x5f\xab\x6a\x4a\x68\x3f\xf9\x2e\x9a\x43\x42\xbc\x3b\xb9\x53\x6f\x98\x15\xbe\x4f\xdf\x5a\xc7\xc2\x72\x76\x39\x0a\x1a\x92\xc6\xee\xcf\x99\xba\xe5\x3a\xd6\x56\xfe\x7d\x51\x1c\xdf\xc0\xd6\xe1\x8c\x64\x29\xbd\x49\xa4\x13\x26\x08\x98\xd4\xcd\x56\x2f\xc8\x6e\x93\x4b\xd3\x5b\x27\xcc\x62\x91\x1b\x6c\x9f\xeb\x3d\x94\x67\x02\x9d\x42\x27\x69\x4a\x44\x5d\x1f\x79\xa9\xab\x0f\x8b\xc5\xa7\x58\x05\x31\xce\x7a\x08\xae\x4e\x74\x42\xde\x13\x29\x81\x3a\x3c\xc4\xc2\x49\x7b\xcd\x6e\x9a\x06\x01\xd1\x73\x6f\xdf\xf0\x0b\x5d\x6e\x3b\xe2\x77\xba\xbe\xee\xe9\x34\x0e\x47\x4c\x76\x9b\x7c\x5f\x6e\x2b\xcb\x79\xbb\xd8\xd7\x88\x67\x22\xd2\x42\xa7\xa9\x95\xaa\x26\xc1\xb5\x66\x5b\xfd\x01\x79\xfb\x50\xf5\xb8\x17\x9d\x25\x2a\xee\x39\x5a\x5b\xc8\x8b\x79\x4c\x5a\x67\x92\xdb\xa2\x1d\xac\xeb\xaa\x9e\x44\x70\x74\xa6\x80\xaa\x2e\xba\xa1\xfd\x52\x5d\x89\x65\xe8\xcc\x88\xc4\x79\x41\xb6\x3e\x9b\x60\xb5\xcd\xd2\xf3\x38\x93\xd0\xbc\x7f\x20\x21\x83\xd8\x4a\x63\x9b\xbc\x28\xba\x43\x26\x47\xb2\x79\x06\x59\x14\xa1\x05\x6a\x2a\x7d\x71\x13\xb2\x33\x8b\xae\x38\x26\x1a\xb2\x58\x47\x33\xf9\xc0\xba\xcd\x55\x31\x0c\x6b\x89\x92\x34\x62\xcc\xa9\xd4\x77\x55\xed\x74\x3d\xfc\x51\x95\xa5\x1e\xbd\xf5\xb5\xc1\xfa\x11\x7e\xcc\xd1\xa2\xbe\xa1\x94\x46\x0c\xc9\xce\x87\x4a\x36\x6d\xbf\x7d\x68\xa5\x13\xca\x39\x37\x90\x6f\x4f\xd2\xff\xaa\x05\x86\xe1\x20\x11\x58\xe7\x23\x68\xe4\x45\x71\xe4\x99\xe9\xaf\x35\x5a\xb2\xda\x12\x4f\x75\xa5\xa1\xef\x47\x0c\xad\x1a\xf0\x06\x5b\x57\xac\x3d\xaf\xa1\x9b\xf5\x93\x61\x32\x70\x71\x3d\xe2\x07\x70\xac\x63\x0f\xd0\xb4\xee\x9f\xeb\x2b\xf9\x71\x64\x22\x93\x03\xaa\xd7\xdf\xe6\x34\x26\xe9\x98\xde\x0c\xc3\x24\x88\xb5\x47\xb8\xd1\xc2\x6b\xe3\x31\xdb\x8a\x26\x56\x35\x1b\x84\x18\x66\xc0\x9d\x90\xd9\x17\x38\xa0\x2d\x07\xf5\xdf\x0f\x43\x15\x90\x53\xe8\x04\x88\x88\x3b\x1d\xe7\xb5\x0b\xd7\x00\x7b\xb3\x1b\xe9\x8c\xaa\x0e\xde\xa0\xd4\x45\x67\x3e\x76\x5b\x06\x95\x20\x36\x44\xe0\x71\xa5\x07\x78\x00\xc6\x29\x02\xef\x71\x73\x3a\xcc\x1e\x9f\x87\x11\x79\x89\x5e\x18\xdc\x0c\x58\x2d\xe4\x69\x66\x1c\xf9\xc7\x17\x68\xee\xaa\xfa\xb6\x86\x8f\x01\x99\x86\x1c\x43\x1b\xc2\x26\x10\xf4\xe8\x11\xdc\xf1\x38\xb4\x15\xbc\x7b\x6c\x47\xb5\x30\xfd\xe0\xc6\x38\x0b\x49\xb7\xe8\xee\xd4\x9e\xea\xff\xe0\x95\xd1\x35\xc2\x59\x60\x12\xc5\xc2\xf1\x4f\xac\x55\x75\x41\x55\xbb\x6b\x02\xe4\xed\x2b\x72\x65\x1b\x1f\x55\x9d\x65\xe6\x30\x89\x53\x21\x47\x0c\x0f\x1e\x71\x73\x39\x2a\x6e\x35\xa7\xfc\xc8\xc6\x44\x5a\x1e\x36\x1f\x2a\x1a\x6a\x1e\x2e\x06\x1d\x31\x95\xb6\x23\x4d\x5d\xfd\x8d\xa4\x65\xd8\xcc\x93\x67\x98\x9a\x98\x78\x59\x9e\x97\xff\xb5\x78\x59\xfb\x2e\xca\x62\xe7\x66\x21\x1c\xa6\xe9\x41\xcc\x52\x4b\x04\xec\x49\x06\x87\xf2\x0e\xdf\x40\xa2\xb4\x9a\xf2\x04\x3b\xba\xe2\xbc\xa0\xe0\x16\x7c\x03\xfa\xfb\x60\xc1\xb3\xf8\x5f\xa3\x49\xe2\x80\x30\x09\xff\xd7\xf8\x3f\xfc\xf9\x49\x4a\x74\xec\x37\xab\x3f\xfd\x9d\x21\x54\x94\xb3\xab\x4a\x3b\xa0\x5e\xaa\xa2\xb8\x23\x4e\xe5\x51\xfa\x1c\x21\xe1\x3e\x04\xb5\xa1\x07\xea\x4f\x4f\x53\x5b\xd8\x5a\x83\x97\x1b\x9d\x6b\xc1\xcc\x06\x39\x40\x42\x50\xae\x53\x43\xac\x6b\x67\x40\x31\x94\x11\x8b\x2c\x9b\xca\x2b\x82\xfe\xdc\x56\x8f\x67\xf6\x0b\x4a\x6e\x08\x2f\xf6\xf8\xe7\xbf\x7b\xd2\x40\x81\x12\x33\x9a\x20\x45\xf5\x09\x45\xfb\x39\x16\x39\x11\xa8\xb4\xad\x58\x75\xf5\x6e\x14\xac\xbe\x39\xf9\x48\x06\xea\x40\x46\x9e\x41\xb8\x06\xd5\xb9\x50\x5f\x60\x5a\x5c\x88\x3a\x44\xaa\x23\xd9\xf5\x74\x06\xf5\xd8\xe3\xbb\xfc\xbe\x1a\x53\x4a\xae\x34\x4e\x00\x7d\x10\xca\xf7\x0d\x0c\x63\x7c\x14\xf3\xa2\x11\xea\x90\xdc\xbe\x0d\x66\x29\x31\x3c\xdd\xc2\xdf\xfd\x4f\x60\xf9\x70\x5b\x02\x09\x5c\x08\x17\x21\x6a\x13\xb8\x57\x7a\xd1\x86\xd0\xad\x67\xd8\x0f\x34\x3c\xa0\x92\xd8\xd2\xed\x6a\xf7\x08\x45\xfb\xf6\xe9\x8a\xaa\xf3\xaa\xb7\x5f\xd1\xa4\xb6\x8e\xc9\x03\x9b\x29\xc5\x52\x57\x87\xaa\xbd\x66\xbf\xa1\xc9\x42\x8a\x28\xc9\x53\x71\x46\xa3\x3c\x09\x45\xcd\x4e\x03\x26\xe3\xf1\x84\xef\xde\x70\x16\x78\xb5\x4d\x4d\xc0\x2c\xd8\x04\xb4\x3e\x83\x2f\xfb\x26\x11\x12\xad\xf5\xda\x8b\xdc\x61\xed\x24\x47\x85\x09\x94\x22\x54\xee\xb1\xc6\x5d\x33\x42\x82\x1a\x16\xea\xc0\x11\x4e\x8f\x01\x31\xfd\x51\xa4\x9c\x6c\x59\x7d\x87\xa9\x61\x69\x58\x66\xe5\x31\xac\x11\xfa\x98\x17\xd8\xb4\x55\x89\x83\xdb\xfd\x42\x0a\x45\x5e\x41\x54\x18\xa6\xc2\xc4\x3b\xc2\x58\xfb\x5e\x1a\xc7\xd5\x7f\x2a\x69\x23\x0c\xd3\x11\xd9\xdd\x9b\x0f\x98\xc1\xbf\x4c\xc8\x02\x4a\x1c\x58\x46\x05\x72\xb3\x17\x39\x51\x1e\x5f\x23\xed\x31\x61\xc8\xc1\x45\x59\xa8\xbf\xff\x5d\xc9\x59\x97\x87\xa9\x8e\xc7\x7c\x0d\x93\xe8\xd5\xe5\x47\x8c\x52\xc5\xbd\x82\xdf\x2e\x2f\x69\x87\x1f\xc9\x34\x08\x13\x89\x98\xc0\x29\x6d\xd5\x77\x24\x4f\xad\x39\xa5\xab\x7e\xc6\x74\xf6\xdb\x35\x35\x13\x61\x38\xea\x14\x86\x2a\xaf\x2d\xec\x67\xbd\xc1\x8d\x8e\xd3\xc1\x04\x7b\xa9\xab\x1f\x7e\xfa\x9b\x24\x32\x14\xd7\xee\x16\x6f\xd9\xff\x18\x07\xc6\xfb\xea\xa3\xd5\xd0\x24\x69\x20\x94\x43\x81\xff\xcc\xa7\x35\x09\x66\x54\x8d\xac\x6b\x20\xa9\x05\x9b\xc0\x1a\x7b\x5a\x26\x65\x16\x7b\x55\x40\x43\xca\x06\x7d\x04\xc1\x64\x31\x50\xaa\xc3\x0d\xfc\x59\x56\xea\xa7\x06\x88\xc9\x92\x80\xea\x49\x56\xe5\xbe\x86\xb1\xa6\xde\x74\x6a\x64\x99\xed\xb2\xe5\x1b\xc9\xcc\x0f\x6f\x98\x81\xd5\x46\xed\x9e\xea\x15\x5a\x87\x6c\x24\x42\x9a\xbb\xaa\xb6\xf0\x45\x95\xfb\x9d\xba\xdf\x6d\x8d\x60\x31\x4d\x78\xe8\x1c\x89\xbe\x4e\x7c\xfa\x6c\x82\x59\xba\x85\xde\x94\xee\x3f\xb9\x90\xf6\xa9\xc9\x71\xcc\xcb\xfd\x23\xf6\xd0\x48\x03\xdc\x4a\xf4\x12\xa8\xe5\xb5\x92\x7d\x4a\xc2\x80\x92\x24\x1b\xbc\x7e\xda\xae\x5e\xbf\x2d\x1e\xfc\xef\x32\x8d\x2d\xef\x9a\xcb\xd1\xd9\x20\xff\xe5\x0f\xa5\x02\x46\xcf\xf4\x05\xdb\x9b\x5c\x6f\xb0\xce\xe7\x8c\x23\x46\xe9\x40\x78\x44\x11\xf9\x63\xe7\x5e\xb8\x6b\xa9\x19\x07\xe6\xe5\x82\xb7\x75\xfe\x3d\x87\x62\x08\x92\x4d\x6f\xac\x75\x46\x59\x68\x0f\xa5\x7a\x58\x3f\xae\x3d\x20\xd3\x20\xe3\x44\x54\x78\x80\x1f\xd6\xeb\x7c\xa9\x9a\x26\x1f\xb2\x61\x06\x43\x9b\x7f\x75\x39\x43\x38\x1c\x21\x2f\xf7\x93\x7d\xcf\x74\xa6\x5d\x34\x82\x0e\x35\xdb\x8a\x2a\x57\xa6\xcf\x81\x59\x1c\x38\x07\xd6\x7f\x94\x59\x03\x8c\x69\x7f\x5c\xde\x6c\xec\xf8\xbd\x60\xf9\x5d\xb5\x8e\xa7\xbc\xbf\xc2\x98\xd4\x60\x70\x0e\x85\xed\xf9\xb0\x20\x08\x52\x4d\xb1\x35\xc7\x5e\xf6\x98\x97\x4e\xa7\xa5\x97\x94\xee\xda\x58\xa0\x35\x96\x56\x38\xef\x42\xdc\x1e\x82\x00\xb2\x70\x1c\x70\xb5\x15\xda\x73\x96\x3e\x08\x58\xa0\xc6\x2e\x14\x94\xef\x33\x5d\x21\xdf\x4e\x58\xbd\x0a\xe7\x43\xd8\x50\xfb\xb4\x37\x21\x08\x39\x44\x66\x08\x07\xad\x9f\x16\xa3\x39\x0f\x41\x04\xf6\xe5\xdc\x42\x34\xe4\xf2\xe6\xd7\xe1\x22\xa0\x78\xf6\x4b\x0d\xef\xd0\xbc\x4d\x2e\x12\x87\x81\x23\x18\x76\xc3\xf1\x1a\xbd\x30\x04\x31\x07\x4b\x1f\xdd\x9f\x2b\xac\x32\x9d\xc1\x56\xbd\x39\x8d\x2a\x8d\x3f\x6e\x3e\x37\x25\x1c\x9b\xb7\xaa\x9d\x54\xd7\xf9\x93\x40\xd3\x3c\xb3\xa3\xc8\x0a\x49\xfe\xd4\xf6\x81\x20\x46\xcb\x2c\x92\x97\x4d\x0b\x65\x9b\xff\x44\xe5\xd7\x9d\x91\x44\xda\x61\x90\xbb\xcf\xd4\xcd\x1a\xf4\x0f\x9d\x24\x01\xb7\x4c\xcd\x48\x71\xd3\xc9\x16\x39\xbd\x6f\xa2\xa4\xf7\x66\x76\x96\xdf\xbc\xbf\x88\x42\x1f\x19\xa3\x3a\x56\x17\xcd\x99\x7e\xe3\x2c\xb0\x38\xb6\xbc\xeb\x94\x67\x73\xc1\x14\x87\x40\x04\x5c\xdb\xb9\x99\x53\xad\xe0\x6e\x45\xd2\x89\xfd\xd3\x8a\x4c\x69\xab\x5f\xa5\xde\xd1\x2b\x1f\xfa\x83\x10\x47\x94\xf5\xb8\xc9\xd5\xa7\x2a\x70\x8c\x57\x86\x40\xf1\x54\x0d\xd0\x62\x37\x99\xed\xfc\x9a\x3e\xa6\x92\x76\xcf\xfa\xb6\x1c\x67\x43\xfd\x41\x15\x51\xb1\xc1\xe6\x71\xfd\xf0\xbc\x5b\x3e\x3f\x3e\x7e\x7d\x5a\x6f\xff\x9c\x40\xbe\x21\xc0\x18\x52\xcf\x75\x52\xbd\xf4\xf0\xeb\x6b\x64\x88\x10\x60\x16\x3b\xee\xd5\xdb\x1c\x0e\x55\xe9\x53\x58\xfe\x82\x86\x21\xa9\x73\xdb\x82\xdd\x11\xf5\xfe\xf4\x0b\xb1\x20\x05\x97\x0b\xb7\x72\x8c\x57\x98\xa2\xe7\x1c\xb3\xb3\xab\xb0\x50\x18\x46\x43\xc2\xd2\xbe\x59\x1b\x6e\x44\xad\x0a\x2c\x0c\x34\x21\xc6\x3a\xd3\xe3\x26\x6f\x57\x7f\x9d\xa0\xb8\x83\xbc\xa0\x01\xff\xfc\x7c\xd3\xb7\xe3\x29\x61\x11\x36\xf9\x69\x3c\xcd\x58\x98\x5a\xa1\xf6\x23\xb1\x5d\xc7\xb8\xf7\x7c\x79\xc0\xa2\x54\x90\xe5\xb6\x5c\xbd\xde\xec\x86\x72\x43\x60\x11\xd8\x9d\xbb\x85\x77\xec\xf9\x28\xed\xcf\x5d\xdf\xcd\xc1\xa1\xc0\x22\x44\x4a\xfe\x63\xad\xc2\x60\x72\x84\x67\x82\xc0\x23\xdf\x73\xec\xcb\x71\x3c\x05\xd4\xbd\x25\x48\x9a\x4e\x53\xc6\x0d\x23\xb0\x83\xd5\x2e\xea\x46\x9d\x4f\x21\x00\x8b\x63\x46\xf3\xa2\x07\x9b\x8c\xd8\x5c\xae\x6c\x67\xc0\xe2\x54\x9b\x81\x5a\xc8\x7f\xef\x5f\x04\x42\x66\x1f\x2a\x4e\x6d\x99\xc2\x9e\xb8\x46\x6f\xa0\xe9\xbf\x4f\x92\x66\x54\x62\xf9\xf0\xf5\x71\xe1\x7f\x4b\x03\xbb\xef\xed\x8c\x4d\x96\xef\x3a\x2f\xcb\x1f\x63\x09\x15\xe6\xcd\xe4\xdf\xbb\x51\xfb\x6f\x50\xef\xc7\xea\xda\x88\x4b\x43\x13\xa2\x2f\xe1\xfe\x28\x57\xe5\x3e\x2f\x71\xd6\x77\x69\x6c\x17\x4a\x1b\x61\x99\x94\xbc\xf5\xbb\x17\xb0\x2c\x49\xa9\xca\xb4\xa8\xaa\xf7\xd3\xf1\x9c\x41\x0e\x58\x06\x19\xa5\x03\xbe\x96\x4d\xe5\x3e\x75\x73\x73\xaa\x67\x71\x55\x60\x99\x8a\xa9\x40\x6e\xf3\xe8\x67\x24\x13\xa1\x4a\x9d\xd3\xf6\xc7\xc3\xe3\xd6\x90\xba\xfa\xec\x34\xc1\x2d\xe4\xcd\xea\xf6\x15\x55\xdb\x56\xc9\x7d\x75\xaa\xcf\xcb\xee\x2f\x7f\x51\x91\x70\x2a\x03\xfb\xf6\xfa\xef\xc9\x60\x13\xa0\x88\xcc\xc4\xa0\x7a\x5b\x14\xc5\xb7\xaa\x75\x31\xb2\x97\xda\xca\xe4\xdc\x7c\x5e\xd8\x18\x98\x90\xdc\x92\x85\x6b\x6d\x39\xcd\xaf\xdc\x55\x65\xe4\x87\xb9\x6a\xc0\x11\x5b\x24\x30\x81\x51\xdc\xaf\x43\x97\xe4\xb0\x81\x81\x94\x96\xb6\x87\xb4\x6e\x72\x2c\xdb\xe9\xda\x7d\x65\xe4\x81\xe1\x8a\xf7\x25\xcc\x13\x3e\xee\xd9\xf3\x49\x21\xc8\x14\xdb\xdc\x2c\x57\x57\xc6\x90\x94\x2c\x71\x36\xe0\xbf\x9b\xaa\xdc\x56\x2e\x3a\x78\x01\x7e\xd3\x35\x06\xca\x1c\xf9\x69\xbb\xe9\xad\x1b\x26\x35\x10\xee\xf9\xa1\xda\xbf\xe2\x6c\x24\x4f\xe3\x26\xd9\xfc\xa2\xc8\x53\xca\xce\x2e\x9f\x86\x40\xc2\xf4\x3d\x34\x0f\x0d\x1f\x95\x24\xf0\x71\xb4\x1d\x98\xce\x80\x84\x64\x7e\x44\x61\x14\x46\x3e\xbe\x7a\x21\x5b\x30\xeb\x1e\xad\x59\x12\x8e\x4a\xf0\xae\x74\x11\x32\x4e\x43\xbf\x79\xab\x3e\xee\x5e\x1e\xaa\x0f\xac\x8b\xbc\x7f\x71\x93\x42\x4f\xc8\x80\xcd\xe5\x38\x28\x30\xa3\x91\xbb\x4d\xfa\x11\x7e\x7c\xe4\x13\xa8\x14\x84\x81\x0e\x28\xf1\xdb\x6b\x89\x76\x96\xc0\x24\x60\xdc\x5f\x2a\x0c\x4c\x6a\x85\x19\x47\x83\xce\xd9\x3a\xa3\xdd\xba\x6b\x46\x85\xb6\x79\xb3\x26\x95\x8b\xb3\x1c\x21\x84\x2c\x82\x9e\x9f\xa6\xdb\x40\x3a\x67\x74\xc6\x1d\x06\x61\x94\x1a\xaa\x73\xbf\x0b\x6f\xfd\x4f\x9c\x65\x54\xca\x49\x15\x5a\x88\xfa\x1e\x9a\xb7\x45\x7f\xd0\x68\x4b\xbd\x66\xc1\x3c\x5f\xb0\x44\x5b\xda\x38\x7d\x8b\x38\x64\xe4\x8e\xc9\xce\xe8\x2c\xff\x37\x2f\xbe\x60\x09\xc7\xd1\x9a\x14\xc6\x61\x46\xdb\x14\x34\x9f\xa5\x3a\xab\x4c\x87\x30\x06\x24\xa9\xad\xed\x6a\xb3\xdd\xdd\x3f\x7f\xdd\xac\xfc\x23\x24\x22\xa2\xac\xd9\xfb\xa7\x1a\x53\xbf\xfd\xdc\xb2\x0b\x13\x6d\xa7\xd5\x97\x09\x78\x07\xc2\x6e\x5b\x1f\x4d\xf2\xce\x8e\xee\xcd\x9e\x30\x05\x1b\xac\xf1\x91\x83\x2f\xf9\x77\x84\x0f\x98\x99\x5f\x61\x0a\x59\x26\x87\x62\x48\x67\x1e\x13\x07\xa7\x5d\x19\x88\x8f\xc7\xba\xa4\x5e\x1c\x64\x02\x34\x1a\xd9\x0b\x93\x5c\xd2\x28\xf0\x05\xa1\xe0\x8a\x82\xcf\xd2\xf3\x7a\x8e\x22\x0b\xbe\x89\x4c\x2d\xb2\xdb\x12\x88\xf5\x6e\xdf\xf8\x32\x10\x64\x04\xd8\xde\x2e\xbe\xfe\xbe\x5a\xfc\xe9\x09\xcd\x20\x84\x24\x20\x74\x88\xa9\x6a\xcc\xf7\x25\x95\xec\x8f\x00\xef\x10\x82\x46\x42\x9c\xde\x56\x56\x19\x6e\x56\x49\xff\xdf\xe1\x10\x20\x4b\x9d\xcc\x67\x9f\xb7\x19\x8e\xcd\xbe\x0b\x60\x48\xa3\xed\x3d\x2f\x8a\x6d\x5e\x78\x8e\x9b\x51\x64\x1e\x42\x69\xb4\x71\xeb\x75\xf8\xff\x6b\x3b\x0f\x95\x0c\xb9\xc5\xc1\x36\x6d\xd1\xf9\x40\x0b\xfd\xbf\x27\x27\x6b\xe3\x9a\x20\x13\x94\xba\x7d\xda\xbe\xfe\xb9\x18\x99\x1b\x03\xf5\x0c\x84\x18\x5a\x99\x58\x57\x4e\x78\xea\xb6\xef\xaa\x98\x8d\x7d\xe4\x89\xd5\xc6\xee\xeb\x07\x86\x8a\x49\x08\x4d\x62\x93\xea\xa4\xb5\x5b\xe0\x94\x7d\xc6\xb6\x89\x02\xce\x2d\x1f\x1a\x85\x9d\xfe\x31\xbd\x06\x44\x41\xa2\x28\x51\xea\x6d\xfc\x89\x9d\x1e\x31\x63\x85\xd0\x6a\xb4\x5c\x68\x15\xd4\xda\xe9\xb2\xcc\xcd\xe6\x28\x8c\x24\x65\x1a\xe7\xab\xd4\xd5\x2c\x2d\x44\xa1\xc8\x7c\x11\xe5\x1d\xe2\xbc\x16\x79\xfa\x86\x11\xb3\x81\x6f\x2f\xc9\xe7\x91\xef\x33\xc2\x6d\x88\xa2\xc8\x16\x70\x1e\xe0\xc7\xae\x99\xbc\x4d\x64\x62\xc2\x32\xee\xb1\x25\xde\xe7\xc9\x2e\xe4\xdd\xb3\x88\x07\x48\xc3\xeb\xe6\xf7\xf1\xac\x8f\x38\x53\x99\xc7\xe0\xaf\xea\xba\xaa\x5f\xab\xaa\x75\x2c\x66\xed\xa7\xad\xa5\xfb\x5a\x56\x1f\x25\x6a\xaf\xe1\xea\xcf\x8c\x04\x91\xfd\x1c\x5d\xb6\x7e\x09\x47\xd2\xf7\x1c\x1a\x70\x9e\x5a\x85\x8b\xf6\x16\xf1\x4c\x0b\xea\x62\xa9\xef\x3c\x08\x10\x71\xa1\x68\xb5\x6a\x2c\x4d\xb3\xb4\x55\x89\x6d\x0b\x26\xff\x49\x61\x04\x44\x5c\x4a\xbb\x7b\xd0\x1b\xf8\x6f\x30\xc7\x78\x42\x14\xc7\x10\x4f\xa8\xc8\xba\xcf\x30\x8b\x30\x44\xb1\xd0\x5e\xbe\x67\xa5\x4f\x76\x95\x5d\xe6\x6d\xfe\xf7\x9c\x38\x01\xa2\x58\x5a\xe4\x6e\x4e\xa6\xc3\x15\x76\x0d\x88\x62\x63\x0d\xd1\xce\x24\x72\xd5\x85\xee\x48\xa2\x22\x6d\x55\x35\xe1\x70\x29\x5c\x33\x7d\xb2\x04\xad\xbc\x54\xb7\x67\x6f\x0e\x50\x14\x63\x69\x1f\x88\x12\x13\x83\xc5\x1c\xca\xd3\x7e\xf6\xa4\x19\xc8\x50\x8d\xc8\x9a\x4e\x75\x33\xe1\xf3\x86\x48\x04\xb6\x2c\x47\x9e\x3e\x5f\xb0\xde\xa0\xd3\xad\x61\xc9\xd4\xf3\x8f\x04\x57\x64\xd8\x63\x0d\x0d\x5a\xc3\xd9\x49\x81\x8c\x61\x34\x10\x09\x94\xb6\xfc\xbe\xa8\x24\x14\x8e\xaa\x78\xbc\xb0\x46\x90\xd9\x10\x36\x39\xf8\x3b\xcb\xf3\xd1\x9f\x0e\x60\xb7\x52\x2c\x75\xaf\x3e\x3d\x5a\x50\x22\x19\x30\x0a\xf3\xf5\xf9\xc2\xf2\x06\xdf\xa0\x30\x3f\xdf\x0f\x23\x09\x4a\x5b\x26\x7b\xf5\x7e\x3a\xee\x3a\x87\x4a\x57\x1f\xfd\x04\x91\x2a\x24\xdb\x37\xb7\xd1\x7f\x97\xa2\xb8\xb4\xe6\xa8\x28\xa1\xdc\xe2\x6d\x55\x14\xf7\x90\xf7\x5f\x54\x71\x4e\x60\x8f\x5e\x34\xad\xea\x0f\xe9\x24\x14\xc1\xb8\x0c\xce\xaf\x71\x75\x9f\xbe\x9e\x3e\xac\x4e\x95\xb6\x22\xd1\xc5\x95\xea\x1d\x88\xb4\x0c\xc8\x35\xd9\x1d\xc8\xc8\x1a\x38\xb7\x21\xc2\x28\xa5\x42\xf6\x8d\xcb\x68\x59\xf8\x4c\x5e\xee\x6d\x00\x72\x3f\x0b\x45\x44\xc8\x39\x21\x0a\xa1\xe9\x0c\xba\xea\x3b\xae\x4b\x53\xd5\x87\x8b\x66\x86\x3f\x45\x08\x2a\x7f\xbe\xcf\xf7\x6f\x4b\xda\x64\x26\xeb\x8d\x49\x2c\xbb\x7d\x3b\xca\x96\x2c\x4a\xed\xa0\x3e\xd4\xf4\xee\x54\xaa\xc9\x0d\x4e\x17\xb0\x71\x10\x99\xce\x68\xfb\x3f\xff\xcf\xff\xf9\xeb\x84\xf5\xe7\xf2\x2d\x97\x53\xd6\x70\xe0\x41\x92\xe9\x31\xaf\xf2\x6f\xfe\x77\x69\x13\x44\xe0\x2b\xea\xbe\x1e\xf7\x83\x60\x00\xf0\x40\x59\x03\xe9\xcf\xea\xa4\xb1\xb7\xfc\x79\x98\x58\x0d\x0d\x8b\x0c\x58\x39\x09\xa0\x9b\xd3\xe7\x64\xd7\xf8\x07\x05\x86\xc0\x43\x47\x09\xe7\x8a\x69\x68\xd5\x1e\x92\x7c\x7e\x5e\xf1\x10\xa5\x47\x5b\x5d\xf4\x53\x78\x14\x85\xe4\x52\x38\x14\xa9\xab\x4e\x9d\xac\xaf\xbe\xa5\x51\x54\x94\x59\x63\x7b\xaa\xcb\x5d\x8d\xff\x4b\x84\x70\xbb\xa3\x0d\xcd\xce\x7a\x8e\x0b\x45\x4b\xc3\xb7\x6e\x53\xaa\x5e\xa1\xdb\x99\xc6\x5f\x91\x73\x40\xe1\xb0\x22\x8b\xaf\x8f\xb3\xb3\xe3\xd0\xca\x3e\x97\xf8\xf1\x65\x54\x5d\xff\x73\xc3\x84\xc7\x71\x4c\x4f\x68\xba\x8f\x52\x8f\x23\x7c\xbe\x41\x9a\x22\xf4\xaf\x30\xb8\x0f\x63\x02\xd0\xe9\x25\x93\xd0\x58\xb7\xd5\xa3\x81\x9f\xf0\xe3\x5c\x42\x1d\x78\xc2\x13\x67\x2c\x16\x15\x68\x62\xa5\xfa\xa9\x67\xca\x93\x24\x20\x04\xac\xaf\x9e\x5e\x3f\x7d\x5b\x6d\xb6\x8f\xab\x3e\x3a\xc7\x93\x0c\x2d\xa9\xc1\x4d\x35\x40\x48\x81\x27\x42\x31\x57\xf6\x6a\xd3\xb4\x45\x9f\x66\xbc\x10\x95\x77\xc9\x7f\xe0\x89\x34\xe4\xdd\x5b\x07\xc6\x01\xf5\xdd\xb1\x54\x59\xe7\x66\x73\x2a\x5f\x6c\xcf\x8d\xb9\x5a\xa7\xcf\x9d\x09\xce\x7a\x20\xd6\xc0\x9e\x74\x47\x25\x5f\xbe\x0d\xa8\x20\xea\x01\xc7\xdd\xa2\xd4\x1f\x12\x10\x11\x64\xd3\x1a\x7d\xdb\xfa\xd4\xb4\x1b\xf5\xeb\xde\x82\x2c\x65\x44\xed\x55\xe5\xa5\x74\x73\xdc\x5f\x12\x04\x90\x55\xf2\xe3\xad\x69\x27\xbf\x1b\xcb\x29\x3c\x30\x16\x4e\x07\x83\x0c\x32\xaf\x08\x40\x5f\x74\x28\x97\x07\x2e\xd1\xd2\x2a\xe4\x65\x67\x42\xe5\xdf\xf1\x8c\x74\x1b\xb8\xca\x18\xed\x9b\x9b\xd5\xe2\x76\x0a\x3a\xbe\xfc\x0e\xca\xd5\xc2\x83\xd6\xdf\x8e\xe6\x57\x43\xfa\xec\xef\x6c\xfe\xeb\xd8\xc2\xe6\xd4\x58\x53\x06\xb8\x96\x9c\x3c\xbd\x7e\x61\xba\x39\x7d\xde\x8c\x3e\x35\x46\x41\x18\x8f\x84\x6f\x2e\x2f\x0a\xc8\x13\xaa\x9f\x3f\xd6\xb8\x2f\xa1\x6c\x5f\xaa\x32\xc7\x26\xc7\xfe\x33\x62\x0a\x64\x96\xfb\x7d\x94\x68\xfb\x28\x80\xdc\xb7\x00\xee\x29\xfa\xbf\x96\x1a\xeb\x6e\x79\x3c\x79\x28\xc7\x34\xe4\xc0\x92\xf3\x3c\xd2\xb5\xff\x77\xce\xcc\x14\xda\x02\xdc\x48\x96\xb8\xec\xef\x28\xa2\x39\x7d\x29\x23\x7b\x9a\xc2\x5e\xd4\xfc\xe3\x6a\x35\x17\x70\x83\x19\xe5\x7a\x0e\xd6\xaa\x1f\x63\x00\x20\x0e\x62\xc9\x1d\xf9\xc4\xe2\xd4\x76\xbd\x3c\xb2\x0b\xa7\x17\x8a\x19\xe7\xa4\x2a\x85\x4d\xeb\x8d\xc3\x6b\xa8\x7f\x88\x99\x30\x64\x30\x0d\x45\xef\xab\xb2\xc5\xfa\x58\xe7\x7d\xd4\x34\x66\x3a\x30\x7d\x90\x97\xc8\x63\xd7\xe5\x84\x46\x13\x62\x86\x19\x31\x94\xec\xda\xfc\x30\xb1\x8f\xe2\x50\x30\x02\x47\xfe\x9e\x97\xfb\x53\x5e\xfe\x5e\x57\x1f\xbd\x79\x15\x47\x51\x42\xb8\xf5\x2f\x35\x94\x73\xc6\x91\xcb\xc3\x3a\x8e\x32\x4b\xb9\x65\xc9\x7e\x5f\x88\x2c\xac\xe8\x56\xca\xda\xa3\x1c\x20\x8e\x54\x44\xe0\x91\xde\x20\x6d\xee\xab\x42\x63\xfd\x38\xae\xd2\xbe\x68\x0b\xc4\x91\x09\x29\xcd\x57\x56\xe4\x5a\xf8\x2b\xf2\x18\xd0\x25\xe2\x6c\x2c\xd7\x49\x56\x0e\x00\x4f\x88\x79\x2a\x1c\x9f\x4b\xa9\x5d\xe1\xd5\xa2\xd4\xc3\x33\xf4\xed\x74\xe2\x78\xfe\x54\x55\x6b\xab\x43\x36\xdb\x6e\xe3\x58\x06\x84\x6c\xdc\x14\x98\x1f\xcb\xbc\xfe\x18\x65\x59\x21\x8e\x75\x44\xc6\x7d\xde\x8c\x08\xc5\x20\x4e\x62\x46\xe1\xfb\xd5\xe3\x7a\xb3\x59\x3f\x3f\xed\xee\x9e\x5f\x77\x2f\xaf\xab\xcd\xe2\x61\xd5\xb7\x91\xa1\x47\x1e\x59\x92\xd2\x3f\xa0\x5e\x77\x5f\xdc\xc0\x0c\xee\x02\x71\xa2\x80\x72\x60\x05\x34\xe3\xb2\x02\x88\x13\xa7\x23\x51\xc0\xfe\x16\x4d\x5d\x35\xc3\x23\x60\x46\xb8\xfa\x9d\x35\xd1\xad\x50\xef\x6d\x09\x13\x2b\x3d\x4e\x4c\x64\x25\x91\x4f\x75\x49\x89\xb5\x8b\xe6\x52\x9c\x18\x24\x47\x93\x40\xdd\x3e\xf7\x79\xf9\xb3\xa5\x81\x7d\xad\xf5\xed\xef\xfe\x51\xb2\xd8\xb2\x7c\xde\x54\xfb\x63\x5e\x8c\x09\x1f\x20\x16\xcc\x82\x99\x6d\x7e\xb6\xb3\xc8\x1d\x0b\xa4\x3f\x1e\x29\x4b\xed\x5f\xe3\x2e\x57\x97\x55\xd9\x20\x16\x28\x89\x6c\xc0\xa9\xf2\x38\xd5\xd9\xb1\x3d\x14\x43\x92\x51\x78\xb4\xce\xd5\x1b\xed\x16\x57\x49\xe7\x20\x96\x68\x95\xa3\x7a\xba\x81\x5b\x24\x38\xfd\xe0\x9f\xc6\x8a\x09\xe5\x52\xd9\x7f\x20\xbe\x3f\x55\xfd\x01\x11\x58\x6d\xdb\x43\x5e\xb6\x33\x6f\x7a\xfa\xc7\x9f\xa0\x80\x7a\x67\xae\x5d\x74\x47\x48\xc4\xf3\x72\x64\x88\x95\x89\xe9\xa3\xfd\x75\x82\xba\xc5\x3a\xf2\xb7\xd6\x19\xa3\x4f\x6e\x08\xc7\x37\xad\x65\x87\x58\x6b\x4d\x70\x4a\x3c\x60\xbd\xc7\x52\x7d\x2e\x4a\x7d\x9f\x6b\x8d\x25\xd1\xb2\xed\xf7\x7d\x80\x26\xd6\xda\x96\xf2\xf6\x4d\x9d\xb0\xdc\x6c\x70\xf4\x73\xc4\xc8\xc8\xaa\xa8\xd8\xe8\xdf\x1d\xe2\x59\x08\x22\x09\x78\x60\xf5\x28\x6d\x4d\xc3\x88\xf4\x7a\x66\x79\x25\x41\x16\xe9\x21\x25\x4f\xbb\x4c\xb7\xc0\x8c\x2a\xf8\x20\x09\x04\xb3\x60\xa4\x6e\x21\xfc\x5a\xe6\x7f\x9d\x70\xa2\x8d\x0e\x09\x8b\x33\x93\x7a\x16\xc3\x0d\xb6\x6d\x41\x20\x30\x57\x0c\xde\xb7\x82\x90\x94\x03\x9f\xf0\xe3\xf7\xea\x02\x65\xeb\x3f\xc4\xff\x4e\x87\x63\xc2\x64\x98\xe8\x5e\x76\x67\xf9\x4c\x55\x3a\xdb\x8f\xaa\xbf\xab\x94\x64\x01\x5b\x39\xa0\x76\x1c\x43\x22\x81\xe7\x29\x5a\x7b\xde\xdd\x09\xd3\x16\xbb\x69\x97\x8d\xb1\xd8\x00\x24\x61\x22\x6d\x45\x9f\x31\xb4\x30\x7a\x32\xe8\xe9\x03\x86\x19\xf3\x58\x1c\xcb\x73\x54\x9a\xaa\xef\x93\x10\x45\x5f\xa7\xb1\x2f\xab\x1a\x7b\x04\x77\x33\x2e\x06\xa9\xaa\xa2\x7f\xa2\xd0\x68\x22\x50\x7c\xfa\xb6\xbd\x5a\x0b\x3a\x7d\x82\x38\xc8\x14\xf6\xa1\x93\x65\x55\x15\xe4\x37\xcf\x1a\x45\x4a\x58\xba\xa8\xf6\x8b\xad\xcf\x9f\x37\xe0\x40\x60\xb1\xc2\x8a\x64\xba\x19\xe4\x31\x37\x43\x0e\x36\x89\x75\x46\xce\xce\xa9\x21\xd1\x84\x76\x16\x49\x4b\x92\x50\xd2\xde\xb8\x79\x7e\x58\xfb\x10\x7e\x92\xc4\x31\xd1\xec\x7e\xff\x95\xe8\x36\x24\x69\x60\x51\xa6\xb7\xf8\xe3\x57\xf0\xbd\x6b\x57\xe0\xb1\xd3\x93\xb1\xd3\x76\xac\x26\x08\x49\xaa\x62\xee\x92\x3b\x1b\xf5\x86\x07\x20\x2a\x96\xbc\xfd\x3c\x27\xb3\x82\x24\x35\x96\xd0\xb8\x73\xd0\xaa\x93\xdb\x5d\xae\x71\xd1\xf6\xe7\x70\xcf\x95\x6e\x07\x54\x73\x09\x78\x09\x49\xc6\x0d\x71\xca\xac\xda\xb7\xc7\xa6\xc7\x57\x24\x99\xb0\x68\x57\x5b\x29\x32\x62\x90\x87\x24\x03\x8c\xc6\xd1\xff\x17\x28\x40\xe7\xe5\x19\x20\xdb\x35\x17\x21\xf3\x62\xc7\xb6\x7a\xc0\xef\x0b\xb3\x4f\x2f\x44\x40\x1e\x3c\x91\xb3\x64\xa3\x12\x3e\x48\x84\xb1\xf6\x1e\xa9\x25\xb4\xa7\x02\xf2\x1a\x77\xcb\xea\x70\x6c\x71\xc7\x7c\x23\x88\x62\xab\xea\x54\x20\xd4\x17\x31\x3f\x09\x64\x32\x71\x8f\xf2\x58\x95\xed\xdb\xaf\xb8\x77\x21\x91\xcc\xd2\x14\xec\xb1\xbd\xb9\x42\x2b\x03\x89\x4c\x32\x0a\x6d\x7a\x68\x12\xf1\xda\xcd\x8d\xd6\x44\x0a\x89\xbe\x2c\xe1\x63\x5b\x79\xe3\xb6\xdb\xa4\x27\x2a\xbd\x90\x48\x95\xc5\xe0\x79\x02\x5a\xac\x29\xeb\x38\x7b\x15\x15\x84\x94\x88\x6f\xc0\xe0\x60\x27\x47\x67\xad\x64\x98\x8c\x00\xb8\xae\x9c\xa2\xe9\x6c\xab\x0b\x61\x0a\x77\x96\x0e\x35\x71\x97\x3d\x2e\xb6\xcf\x5f\xfd\x43\xe9\x48\x90\x35\xfb\x80\xf0\xde\xff\x26\x05\x05\x90\x2c\xe4\xf5\xcc\x0a\x77\xad\x30\x00\xcb\x16\x92\x3b\x9d\x93\x6b\xb0\xbb\xd9\x63\x20\x06\xa4\x63\xbc\x73\xe8\xab\xee\x35\x27\x6b\x63\x1a\x88\x94\xd6\x1c\x2a\x4d\x1c\x7a\xa1\xd9\xd7\xd5\x3c\xb4\x9e\xb2\x2c\xa0\x0e\x6b\x11\x0e\x4e\x92\xec\xd8\xef\x69\xbb\x03\xfc\xf0\x17\x0d\x11\x68\xde\xd2\x82\x3b\xdb\xca\xd2\x28\x4b\x28\x40\xde\x7c\x20\x5e\xae\x3c\x80\x34\x12\x19\xa6\xbd\x7c\x31\x65\x3a\x5e\xd1\xac\x4b\x55\x1d\x2e\x33\xca\x43\xca\x25\xa7\xba\x45\xd4\x79\xbb\x38\xe6\x57\x77\xad\xb1\xa9\x97\x72\x44\x92\x09\xb2\x03\xea\x02\xde\xd8\xb7\x33\xb6\x12\xcd\xcf\xd7\x39\x49\x21\xa4\x71\x96\x84\xb1\xa7\xfd\xaf\xef\xd8\xba\x6c\xef\xc2\xee\x5f\xe1\xd7\xbc\xfb\xa7\xdf\xbf\xce\x73\x1d\x43\xcf\xc4\xc6\x2e\x77\x9d\x1b\x55\xcb\xbc\xc5\xfa\x1a\xfd\x0a\xa4\x89\xd0\x91\xa3\x21\xc8\xcb\xfd\x16\xea\x7d\x6f\x80\xa7\x09\x24\x54\xd7\xfd\x31\x48\x84\xfb\xc4\xbb\x67\x49\xf3\x2d\xb5\x20\xfb\x47\x9e\x3e\xb7\xa4\x79\xf0\xdb\x25\xa3\xec\x27\x96\x5a\x9a\xc6\x40\xa4\x7f\xaf\x79\xf3\x4e\x0b\x8e\xfd\xdc\x2c\xcc\xfc\x46\x98\xa6\x12\xac\xc6\x74\x75\x38\x42\xf9\x39\xaa\x79\x87\x34\x93\xa9\x91\x33\x34\xb4\x47\x85\xaf\x28\x08\x37\x00\xaa\xd2\xcc\xc4\x38\x18\x41\x8e\x97\x6e\x5a\xf0\x32\x97\x99\x84\x14\x52\xa4\xf0\xcb\x6a\x7b\xbf\x7b\x59\xbd\xee\x1e\x16\xaf\xde\xdd\x48\x21\x33\x64\xc2\xdf\xff\xfb\xce\xff\xa4\xc2\x40\xa7\xbe\x8e\xca\x16\x21\x10\x0f\xf4\xf4\xa2\x2a\x04\x87\x68\xfb\x74\xc2\x9c\x97\x69\x1e\xfa\xe6\x92\x1e\xfc\x08\x9f\xdd\xfe\xfb\x53\x2b\x20\x55\xa1\x26\x43\xe9\x0d\x1a\x62\x7c\x3b\x1e\x0b\x2f\x41\x56\x57\x87\x4d\x75\xaa\xd5\xb5\x39\xa0\x92\x48\xc5\x23\x82\xa5\x9e\x72\xd6\x1f\x57\x56\xd9\xef\x15\x0f\x70\x5c\x1f\x8e\x55\x3d\x44\x70\x52\xcd\x42\x6e\xe5\xbc\x9b\xb6\xae\x3e\x27\x41\x1c\xd7\x04\xa3\x80\x0c\x29\x3b\xf7\x9b\x61\xc4\x61\x6c\x15\x4b\x40\x6b\xc2\xcb\xf5\x34\x97\xd9\xe5\x85\x29\x45\x1d\xd0\x6c\x7d\x5c\xfc\x67\x77\xb3\xbe\xdd\xdd\xbd\x2e\x96\xbb\xed\xf3\x4b\x7f\x41\x13\x11\x55\xd4\x2f\x98\xac\x36\x70\x20\x62\xca\xb5\xf6\x7b\x58\x6a\x18\xa3\x6f\xfa\x8a\x6d\x9d\xa3\xaf\x64\xf4\x07\x33\x0b\x97\x38\xd6\xb8\xc4\xb2\xa9\xea\x11\x6e\x20\x0b\x32\x20\x54\xcd\x9f\x50\xc3\x5f\xbf\xf9\x1f\x45\x40\x3c\x23\xdd\xdb\x76\x33\x79\x1e\xa9\xf2\xcd\xb4\xa0\xaa\xa6\xbc\x71\xa5\x43\x63\x4b\x25\x0b\xb4\x21\x8f\x3f\x6f\xee\xf2\xba\x69\x6f\x40\xef\x71\x35\xd3\x5c\x80\x8c\xf1\x44\x3b\x0c\x2f\xe1\x9f\x5f\x6a\x5c\x2f\x9f\x7f\xeb\x8f\x2a\x1b\x22\xfd\x9c\x55\xcd\x40\x16\xa6\x28\x85\x97\x89\x55\x95\xd5\x7b\x99\x8c\x8c\x2c\x84\x80\x16\xb0\xc7\xf5\x66\xeb\x15\x6b\x20\x8b\x34\x27\xaa\xae\xce\xd3\x7d\xfc\x6c\xdf\x3a\xdf\xef\x6a\x15\x36\x64\x89\x13\xe6\xfd\xdf\x53\xfd\xf9\x5c\x16\x79\x89\x63\x78\x35\x64\x49\x1a\x52\x2e\xe5\x76\xfd\xe4\xc8\xbb\x66\x36\x76\x96\x32\x65\x59\xd0\xeb\xaa\x81\xbc\xfe\x56\x9d\xd4\x1b\xd6\xcd\x98\x80\x03\xb2\x94\x07\xd9\xc0\x16\xd8\x6d\xdf\x63\xef\x7f\x3a\xe4\xb3\x34\x4b\xa3\xa1\xc6\xe4\x4c\xe2\xcf\xdb\xe6\xd1\xe5\x4a\x6d\xc8\x52\xb0\x7d\x47\x0a\x6d\x17\xeb\xaf\x67\x9d\x90\xca\x98\xe6\x98\x86\xbc\xf8\x24\x8c\xd7\xb0\x69\xfb\x26\x3a\xa3\xc0\xfa\x1b\x34\x0f\xb9\xc2\xb2\xc1\x2d\xd6\x87\x99\xf3\x9d\x65\xcc\x46\x40\xf3\xc6\xc9\xac\xcc\x0e\x2b\x2b\x2d\x00\x5a\x7f\xc3\xc6\x95\x00\xc8\xeb\xfc\x4e\xb3\xc7\xcc\x14\x37\x38\x64\xe4\x9d\x47\xa3\xf1\xc7\xaf\x80\xca\x99\x08\x12\x52\x49\x29\xaa\xbd\x2f\xcb\xfd\x96\xc3\x5d\x0e\xe7\xb2\x45\xd3\x27\x16\xa1\x65\xc8\xf3\x1e\x5c\xb7\x79\x8d\x8c\x6c\xdf\x4a\x46\x5e\x63\x6f\xa7\xaa\xc3\x01\x4a\xed\x0b\xbc\xa6\x0d\x21\xb0\x91\xec\x9d\x0c\x7f\xbb\x94\xaa\xcd\x24\xb7\xec\x4d\x8f\xa8\x73\xb8\xa9\x2b\xd0\x0a\xfa\x58\x4f\x26\x63\x26\x33\xaf\x95\xaf\xbf\xc0\xb5\x41\x2d\x53\x4d\xb5\x63\xcb\xc5\xb6\x3f\x35\x45\x92\xc8\xe8\xf7\xcf\x9d\x05\x41\xf6\x23\x54\x0a\x9b\x08\x5b\x6d\xef\x87\x93\xa4\xa6\x15\x6d\xfb\x06\xe5\x5b\xf9\x7d\x1c\xd0\xc9\xa4\xc9\x28\x47\x47\x64\x45\xde\xcc\xb8\xac\x01\x37\xad\x46\x86\x4c\xc5\x56\xf6\xc0\x3e\xc1\xb6\x86\x91\x69\x9d\xa9\x4c\x51\x49\xbe\x2d\xa0\x1f\x50\xb7\x99\xd2\x69\xe6\xa3\xbb\xa7\xba\xac\xbe\x77\xb7\xbb\xd2\x01\x18\x06\x61\x36\x29\x40\xe8\x9e\x50\xbd\xcd\x97\x27\x8c\x04\x65\x83\x77\xa7\xb2\xb3\x98\x57\xa5\xaa\xb4\x4d\x45\xae\xf5\x6f\x93\xb0\xbc\x3f\x21\x0e\x3d\xef\xec\xee\x58\x7d\xcc\x41\x00\x19\xc6\x60\x55\x9f\xde\x60\x59\x1d\x0e\xf9\x7c\x00\xa0\xc6\xcc\x4d\xa3\x5f\x2a\x29\x41\x66\x98\xf1\x06\x98\xf3\x5c\x36\x2e\xac\x62\x03\xbe\xf3\xb1\x3b\xb6\x03\x33\x13\xcb\xd4\x31\xd2\xfe\xe7\x65\xe1\x74\xd7\xed\x31\x11\xc4\x9c\x0a\xfe\xed\x0a\xb3\x3e\x9e\xf5\xe3\xbf\x7e\x02\x9b\x10\x61\xa2\x29\x86\x7c\x00\xbb\xb6\x8e\xd9\xbc\x41\x44\x11\x7a\xb5\x98\xcd\xc1\x2b\x4b\x74\x8e\xee\x79\x52\x4d\x44\xda\x52\xd9\x12\x33\xad\xb5\xd4\xf1\x63\x50\xb0\x18\x37\x94\x7a\xe0\x48\x9b\xc0\xa4\xa7\x5f\x40\xf0\x24\xa2\x2f\x44\x1c\xfb\xd7\x4a\x59\x86\x0b\xc7\x71\x46\xd4\x39\xb9\xaf\x1e\x24\x6b\x92\x04\x56\x2f\x07\xfb\x45\x9c\x8a\x70\x00\xee\xf4\x28\x98\xd9\x63\xc4\xa9\x95\x41\x57\xca\x95\xae\x8f\xf8\x4e\x40\xc4\x60\x09\xc1\x8e\x39\x0e\x3f\x59\xd9\x81\x27\xfc\x78\xa9\x5a\x2c\xdb\xdc\x95\x8a\x5e\xde\x24\x44\x6c\x2c\x52\xbf\xc1\xf6\xfe\xfe\xf5\x22\x6e\x48\x24\x18\x52\xba\x74\xb9\xdd\x8e\x45\xda\x41\xa4\x11\x52\x90\x4e\x56\x75\x5d\x5d\xec\xf0\x54\x3b\xc2\x75\x22\x0e\xc6\x16\x34\xb4\x30\x27\xc0\xbf\xe4\x7f\x88\x2c\xb2\x09\xd5\xdf\x4f\x45\x75\x1a\x4d\x60\x91\x81\x70\x34\xef\x65\xd0\x75\xf0\x72\x3c\x6a\x32\x25\xc9\x50\xe8\x0e\x4c\x0c\x0d\x91\x69\x54\xce\x83\x58\xd9\x52\xd8\xa6\x7d\x36\x2b\x50\x6f\x17\xcc\x39\x21\xc2\x80\x62\x66\x2e\xa4\xd9\x27\x8b\xfc\xd5\x04\x00\xe5\x0c\x77\x8d\xa5\x3c\x98\x79\xa5\x42\xa0\xa0\x9e\xf1\xa5\xdc\x9a\x62\x7a\xcd\xfc\x2e\x46\x65\x69\xef\x61\xbe\x75\x0b\x55\x4f\xe6\xba\x1c\x34\x9e\x9e\x2f\x6b\xa9\x82\x90\xa1\x24\x66\xe3\x9d\xc9\x8b\x62\x09\xb5\xde\x58\x86\xaa\xa9\x79\x79\x89\xda\xc1\x5f\x20\x8a\xa1\xe7\xfc\x72\x20\x99\xa1\x74\x4a\x48\x1e\x24\x16\xb0\xd4\xf7\xbe\xcc\x02\x72\x8b\x96\x6f\x50\xef\xbb\xcf\x32\x8b\x1b\x0b\x09\xb6\x12\x62\x24\x14\xfb\x2b\xbc\xf9\xcf\x71\xe8\x42\xca\x20\x04\x0f\xde\x23\x60\xae\xa9\xae\x4c\x2a\xc5\x45\x2a\xfd\xfb\xdc\x9c\xca\x32\xc7\xc6\xda\xc7\xfd\x38\x50\x49\x94\xf8\x84\xdc\x5f\xa7\xdc\x74\x7b\x7f\xd3\xe6\xed\xa9\x25\x2d\xa8\x85\x9e\xaf\x04\x4a\x46\xb4\x97\xbe\x9d\x4a\x5d\xa3\x9e\x94\x5c\x77\x47\x21\xf2\xe4\xf2\x35\xa1\xe0\x77\x95\xd9\xed\x7d\xa1\x59\xe6\x9b\x99\xd0\x55\xab\x53\x1a\x4e\xe6\x7d\x98\x41\x68\x66\x28\x94\x76\xb2\x61\x69\xe7\x68\xfa\x8c\xa5\xd0\x51\x16\x09\xcf\xee\x75\x2a\xfb\x7a\xf5\xe9\x43\x6a\x6e\x35\x60\x7b\x01\xcb\x33\xf4\x99\xd0\x89\x24\x4b\xfb\xcb\xea\xbf\xd6\xfd\xbd\x53\x91\x79\x55\x7a\xc2\xd3\xdd\x60\xeb\xcc\xf4\xd9\x0d\x30\xb0\x0b\x9c\x27\x9d\xa2\xc5\xa8\x7f\x07\xcc\x92\x94\xf5\xfd\x9e\xf7\xbf\x9b\x0c\xb8\x93\x38\xdb\xc9\xf3\x9a\x00\x61\x24\x23\x57\xfd\xed\x74\x80\x32\xff\x6b\xb2\xb8\x18\xc5\x1d\x13\xce\x11\xe7\xb1\x90\xcb\x30\x1d\x61\x8c\x24\x88\x53\x8f\xc2\x99\xd1\x99\xf4\x0e\x0d\x04\x81\xd5\x49\xde\x7b\xbf\x60\xfa\x60\x10\x64\x09\xcd\xdf\x43\x5e\x7a\x49\x91\x9f\xd9\xff\x10\x18\x0d\xda\xb5\xbf\x54\x08\x06\x2c\xe0\x91\x03\x4e\xfa\x69\x31\x51\x81\x06\x60\x1c\x2c\xa1\x61\x6f\x04\xcd\x49\x30\x4f\x67\x38\x30\x60\x02\x4d\x3a\xe5\x23\xf8\xbf\x27\xac\x3f\x7b\x9a\xb2\xe9\x63\x86\x2a\xcc\x02\xbb\x99\x8f\x21\xbd\x2c\xbc\x5a\x94\xe9\x4e\x8c\x98\xa2\x41\x4a\xce\xd7\xeb\x7a\xb9\xca\xfc\x63\x47\x51\x9a\x3a\xe6\xab\xc7\x66\x7f\xe9\xa6\x51\x1c\x50\x54\xeb\xe5\x75\xb5\x5b\xbe\x3e\xff\x71\xbb\x59\x3c\xac\x76\xb7\x5f\x5f\x17\x83\x02\x00\x00\x8f\xac\xcc\xc5\x1e\xdb\x27\xf9\x52\x57\xff\x8b\xaa\x6d\x26\xd9\x47\xe0\x18\x12\x47\xa6\x8d\x53\x3f\x2f\xe7\x5b\xf7\x74\x34\x00\xc7\x88\x39\xb3\xc7\x73\x81\x5c\x7a\xbc\x98\x73\x4f\xad\xfc\x9f\xe5\x4b\x71\xda\xcf\x8b\xe4\x20\x96\xa1\x1a\x04\x6b\x2e\xab\xd5\x00\x24\x98\x50\x71\xba\x03\x5a\x75\x8e\xdb\xbc\x85\x61\xd2\x2d\x8d\x5f\x0b\x2b\xdc\xf9\x7c\x6a\x29\x70\x37\x71\x17\x20\xd5\x82\x86\xfe\xed\xf3\x72\xe9\xfb\x27\x63\xd6\x1e\xca\x7f\x60\xd9\xb9\xfe\xfe\x77\xc1\xf8\x88\x83\x7e\xad\x11\xe6\xdd\xf1\xdf\xff\x33\x1d\x8a\x82\x9b\x51\xf6\xf3\x6b\xe3\x02\xb7\xb4\xb4\x11\xe2\xee\xac\xaa\x06\x44\x62\x22\x5b\x80\x50\x14\xa8\x48\xae\x45\x8d\x69\x1f\x00\x44\x9a\x59\xfe\xc7\x9a\x88\x67\x67\x3d\x28\xb2\xc4\xf3\xce\xe4\x87\xd3\x61\x5c\x32\x45\x1b\x63\xd8\x5f\x46\xd8\x52\xf8\x75\x43\xa4\xf1\x03\xa7\x2f\x00\xc4\x31\xb1\xca\xbd\xd4\x55\x4b\x80\xb2\xc5\x31\x9f\xdd\xa6\x9b\x0f\xe9\xc4\x5e\xa7\x0d\x63\x35\x01\x83\x83\xcc\x18\x73\x1f\xfc\xe1\x79\xd9\x19\x24\xf3\xb2\xc2\x2b\xd9\xbc\x4b\x96\x1f\x48\x19\x27\xc6\xe7\xe5\x49\x10\x76\x3d\x2e\x03\x03\x89\x69\x30\xd7\x38\xbe\xab\xea\x8b\x96\x16\x48\x63\x3c\xd7\xe0\xcb\xb7\xd5\xe5\x34\x17\xa8\xc0\x10\x0c\xa1\xaf\x8f\x80\xe6\x6c\xb5\x07\xc5\x52\xd2\xa5\x76\x0a\xa1\xcf\x5e\x65\x65\x36\xd2\x54\xc2\x28\x79\x47\xa0\xcb\x91\x5c\x16\x80\x36\x8e\xb2\xc5\x95\x5e\x7e\xf5\xdb\x53\x33\xde\xd8\x00\x59\xa4\xe4\xb8\x6e\xfc\xe6\xf3\xeb\xe6\x76\xf6\x30\xc8\x6c\x09\xaa\x4f\x61\xf4\x4f\xd3\x6b\xa0\x0d\x6e\x1d\x20\x8f\x69\x24\x15\xd0\x58\x3e\x4b\x62\x88\x3a\x16\x79\x1f\x9b\x05\x13\x08\x60\xde\x8c\xa7\xc5\xd9\x5a\xf3\xb6\x53\xfb\x56\x89\xb0\x1c\x69\x44\x04\xec\x88\x85\x2d\xfa\xe5\x27\xc0\x35\x30\x68\x88\xba\x72\xbd\xfd\x99\x18\x3f\xc8\x20\xce\x68\x36\xbb\xc9\x80\x93\x6b\xfa\xb7\x91\x8c\x65\x64\x28\x36\xf9\x7e\xee\x41\x5c\xba\x28\x83\x58\xdb\xc4\x5d\x71\x56\x3a\x35\x5a\xf7\x25\xd3\x49\xc6\xfa\x7c\xe8\x5d\x5d\x1d\xce\x8a\x71\x5d\xcb\x90\x19\x8a\x42\x7b\x8e\x43\xca\x18\xbb\x63\x51\x80\xc2\x87\x12\x77\x14\x60\xde\xbc\x55\xa7\x42\xdf\x60\xd4\xa7\x53\xc8\xe1\x68\x6e\x3e\x59\x10\xf4\xa7\xc5\x99\xad\xac\xca\xf7\xb2\x1a\xf3\x7e\x82\x8c\x30\x72\x25\xed\xdd\x73\xfd\x3e\xe2\x44\x9e\x3e\x15\x0f\x43\xfa\x82\xa0\xf5\xea\x70\x2c\xaa\x4f\xbc\x46\x16\x75\xa9\x97\x78\x9a\x48\x37\xe7\x6e\xf1\x3b\x16\xd5\x71\xce\x1a\x05\x92\x8b\x2c\xb5\x61\xc7\x0d\x09\x83\xb5\x96\x47\xe8\x78\xc1\xf1\xf0\x67\x28\x20\xa7\xba\x7b\x61\x5b\x76\x38\x19\x18\x92\x6b\x2b\x7a\xfb\x02\xc7\xcf\xfa\xd4\x78\xe6\xb6\xe9\x45\xe2\x90\x85\xd2\x25\x82\xc6\xe1\x7c\x19\x1b\xa5\xdc\x6e\xb4\xfd\x3c\x4e\x77\xa2\xe9\x08\x94\x49\x14\x65\xc1\xd4\x84\x3e\x17\x18\xbc\xdc\xaf\xa9\xb1\x6a\x0a\x44\x55\xbc\xc1\xb6\xcd\xcb\xbd\x9b\xb0\xff\x18\x40\xf8\xff\x09\xbc\x20\xb3\xc0\x52\xcd\xa9\xaa\x6c\xf3\xf2\x84\xeb\xad\x8f\xcb\xca\x2c\xb2\x15\x35\x4e\xe8\xad\x6c\x4e\x35\xd6\xc3\x4a\xe4\x5a\x89\xc0\x0e\x79\xfc\x41\xe9\x98\xe7\xf2\xda\x48\x06\x99\xd9\xa0\x08\x14\x8e\x28\x67\x88\xf7\x48\xd0\x32\x91\x93\x18\xc7\xc3\x44\x99\x60\xfa\xd0\x32\xb0\xda\xfa\x8f\xaf\xb7\x9b\x91\xde\xb1\xbf\x98\x92\x9c\xaa\x5c\x7c\x8c\x80\x96\xa1\x2f\x78\x56\xe7\x2e\xb5\x0c\x02\x87\x92\xec\xdc\xaf\x19\x48\xf2\x72\x46\xeb\xb2\xed\x2a\xb5\x89\xad\x8c\xa6\xe3\xc8\xee\x19\x0d\x24\x06\xc2\xaa\x96\x7b\x22\x1c\x90\x18\xc7\x84\x74\x78\x83\xe6\xed\x01\xcb\x7d\x8f\x5c\x20\x3c\x2a\x58\x5a\xf2\xce\xb0\xb8\x04\xec\x97\x98\x66\xe4\xc3\x1d\x4e\xc5\xb6\xb2\xa5\xbb\xbf\x4d\x1a\x98\x88\xbb\xc2\xad\xc2\x92\x9e\xfb\x35\x55\x05\x0c\xe9\x29\x37\xf7\x0b\xb2\xe6\xfe\xdc\x6c\x3d\x95\x0a\xa8\x40\x01\xb9\xa3\xf2\xf4\xf9\x2d\x87\x7f\x57\x6f\x50\xf6\x87\x90\xd1\x0e\x60\xa0\xcd\xf7\xa7\x49\x14\x43\x05\x88\xc4\xc0\x62\x87\x49\x67\x8f\xfc\xee\x35\x7f\x41\x31\xc8\x08\x54\xf1\x81\xf9\x2b\xe4\xcd\x04\xa2\xa8\x98\xb1\x25\x0d\xf6\xcc\xe2\x38\xa8\x21\xba\x06\x61\x9c\xd2\x77\x26\xc9\xb8\xe6\xed\xcc\x8d\x98\x6c\x86\x2a\x4c\x0d\x85\xe0\x73\xf7\xd9\xfb\xb7\x0e\x55\x92\x39\x9a\xa7\x41\x53\xd4\x1f\x8c\x38\x23\x0a\x85\xf2\x74\x78\xac\xf4\xa9\x18\x3a\x2b\x42\x20\x68\xbb\xc5\x0b\xae\xbe\x43\x71\x82\xde\xe6\x9e\x26\x0d\xaf\x82\x59\xdd\xa5\x38\xd7\xe4\xdf\x6d\x6f\xb6\xbb\xc7\xf5\x93\x17\x1e\x00\xc5\x91\x69\xaa\x62\xc1\x03\x4d\xac\x53\x8d\x4e\xab\xd9\x35\x48\xc0\x6e\x40\x79\xf3\x2c\x9b\x8a\xd4\xc2\xdd\x91\x34\x53\xf4\x56\xb7\x95\xa2\xdd\xc9\xfd\x9c\xb1\x90\x0a\x92\xb1\xb5\x91\x91\x11\x63\x26\x28\xc1\x24\x65\x9f\x4f\x25\x45\x57\xa6\xd6\x84\x12\x29\xd2\x0c\xed\xa3\xc3\xb7\x30\x96\xa8\x00\x25\x0c\xf4\x2c\x33\x04\xe9\x1e\x81\xb4\x94\x14\x82\x2c\x5c\x2a\x00\x9b\x0e\x59\x85\x2c\x8d\x42\x97\x8e\x71\xec\x7c\xfe\x34\xe4\x8c\x02\x0e\xb6\xcc\x7d\x8b\x4d\x3b\x8a\x16\x29\x04\x20\x7e\xe6\x2f\x8e\xc9\xe3\x0b\x1c\x64\x81\xf5\xc0\x21\xa3\x8c\xe0\xda\x6d\x26\xdb\x1c\x6b\x92\x54\xf8\xe9\x92\xa7\x19\x67\x38\x60\xd3\xad\xbf\xbd\xb4\xcb\x5f\x73\x37\x72\x9d\xaf\x9e\x8e\x98\x78\x2d\x17\xa2\xb6\x33\x27\x8f\x45\xd5\x2c\xed\xd9\xd8\x1c\x51\xc1\x1d\x5a\xc4\xf9\xec\x22\x99\x2d\x9c\x94\xdd\xd2\xf4\x4c\x02\x6f\xcd\x4b\x5d\x1d\xf2\xa2\xff\xf4\x9a\xe9\xcc\xeb\x05\xdc\xa2\xec\x06\x74\xf7\x67\xb6\x51\xea\x30\x48\xf8\xa8\x44\x65\x93\x97\x0a\x5f\x11\xf4\xc8\xf6\xd6\xa1\x53\x2c\xfe\xfa\xb8\x9c\x44\x00\x75\x88\xe0\xf3\x39\x0e\xf6\x40\xba\x7a\x84\x64\xeb\xc3\x03\x3a\x34\x61\x26\x7c\x9c\xeb\x05\x6b\xc7\xc5\x7a\x39\xc2\xef\x02\x1f\x3a\x0a\x78\xea\x63\x07\xca\xe7\xf5\x96\x45\xd5\xa0\x1e\xd9\xd7\x9a\x27\xd2\x26\xea\xa2\xb0\xad\xee\xf1\x87\x23\x1e\x9c\x0c\x4c\xcd\x53\xab\xe6\x39\x08\xf3\x58\x50\xcc\x78\x23\xd2\x3c\x55\xc4\xfb\x79\x5b\xc3\x7e\xf8\x35\xd6\x29\xc5\xbf\xbd\x3d\xf4\x6c\x4c\xe3\xa3\x8e\x37\x9f\xcf\x3d\xe5\x84\x4e\xb2\x90\x28\xba\xee\x2b\x4a\x49\xdd\x3e\x6d\x66\x9f\x2c\xc9\x42\x30\x5e\x40\xe4\xf9\x8f\x61\x12\x6b\x01\x3d\xf1\xba\xcb\x99\x77\x13\x63\x12\x07\xd2\x42\x65\xe4\x84\x7e\xb1\x6c\x40\xcb\xaa\x24\xfe\xe9\xb1\x5d\xa4\x21\x48\x7c\xed\xe0\x14\xcd\xa0\x81\x09\x2a\x3d\xdc\x3e\xff\xbe\x7a\xda\xfd\xb1\x78\x78\x58\x6d\xfb\x63\x59\x00\xa1\xc7\xc4\x97\x25\xd6\xcd\xc3\xf0\x81\x65\x68\x49\xf9\x7b\x26\xfa\xd3\xbb\xcd\x98\x35\x23\x69\x76\xd0\x12\x62\xa0\x2f\x0c\x47\x3e\x1b\x5f\x3a\x8a\xc9\x0c\xff\xa3\xaa\xdf\xb1\x7e\xa9\xaa\xe2\xde\x53\xd2\x82\xd6\x98\x31\xe6\x2c\xd0\x70\x07\x5a\xe7\xe5\xde\x05\x64\x7c\x0b\x63\xc1\xa2\x47\xeb\x9c\xfa\x7a\xee\x43\x93\xff\xdd\x77\x3d\x86\x3c\xb1\x2c\x3b\xef\x38\x26\x93\x99\x3c\x08\x06\x51\x42\x05\xe3\xea\x0d\x8a\x02\xcb\x3d\x4e\x90\xfa\x18\x24\x8a\x42\x29\x9b\xc5\x1d\xf6\xfb\x29\x06\x90\xda\xb9\x5e\xe6\x7f\xcd\x3c\x15\x64\x99\x36\x3d\xb1\xac\x63\x6d\x7b\xa8\xd4\xfb\xed\xd9\x74\xed\x16\x69\x32\x72\x08\x4c\x78\x5e\x70\x84\x91\x44\xe9\x24\x45\x1d\x8b\xf7\x68\x8c\x23\x0f\x83\x00\x7a\x2a\xe6\xce\x60\xc9\x0b\xdc\x4f\x2b\x28\x91\xa7\x01\xb8\x40\x21\x81\xf9\x67\x4f\xc0\x53\xfb\x85\xca\xaa\xad\xea\xae\xef\x26\x27\xc7\x18\xd0\x6b\xd2\x22\xf0\x08\xe5\xe7\x34\xda\x35\x70\x2f\x8e\x2a\xcd\xc6\x90\x4e\x8c\x31\x4a\x43\x0f\x7e\x3b\xb5\x6f\x96\xac\x7f\xfa\x08\x49\x64\xe1\x1b\x72\xca\xe2\x85\x89\xc8\x1c\xab\x58\xa9\x67\x56\xb5\xbb\x4d\xdf\x50\x01\x8c\xc6\x77\xfd\xd9\xc3\x02\x1f\x7a\x9a\x54\xc0\x34\x91\x84\x98\x1b\xc9\x62\x9f\xe5\x1a\xce\xe1\x30\x98\x76\x53\x8c\xe8\x36\x3a\x97\x42\xbd\x3b\x2a\xb1\x6b\xb1\x47\x77\x56\x16\x49\xe2\xbd\xb9\x5d\x6f\x5e\x1e\x16\x7f\xee\x96\x0f\x8b\xcd\x66\xfd\x7f\xbf\x7a\x24\x0d\x66\xb1\xb4\xd6\x7c\x5b\xd5\xf8\x64\x6d\xf1\xff\x3e\x2b\xcc\x9f\x5f\x35\x63\x90\xb8\x84\xb1\x4f\x9b\xcc\x19\xaf\xff\x35\xd3\xdf\xbf\x56\xe3\x7c\xed\xef\x74\x76\x64\x8a\xd1\x7b\x8c\x8b\x25\x7b\x30\xf5\x65\x33\x1a\x45\x96\x28\x33\x52\x94\x2a\x1d\xe7\xdd\x2c\x1b\x82\xc0\x42\xf2\x41\x95\xaf\x01\x74\xe2\x21\x64\x57\x4f\x03\xea\x08\xa1\x49\xd0\x87\x92\xbb\xdd\x34\x2f\xf7\x93\xcc\x20\xca\xcc\x10\x64\x3e\x6f\x9e\xaa\x96\x84\x9e\x2f\x45\x5c\x51\xa2\xd4\x96\xdc\xdb\x2a\xd3\x7f\x0e\x46\x11\x2a\xcc\x64\x40\xf6\xff\xd3\xb6\x1a\x70\xbf\xa8\x79\x44\xd6\x42\x45\x26\x54\xe7\x12\x9f\xe6\x49\x1b\xc4\x80\xf3\x19\xc7\xb7\x07\x03\x78\xcb\x0f\x31\x82\x98\xf7\xa9\xe9\xc5\xf6\xb1\x27\x23\x76\x0d\x0c\xb3\x80\x16\x38\x1e\xb1\xd4\x76\x2d\xb0\x05\xf0\x53\x09\xf9\x59\x87\x1b\xc1\x48\x9b\x7c\x9b\x1f\xf0\x01\x4d\x7b\x83\xa6\xaa\xe7\x5c\xb1\x60\x98\x04\x25\x9c\x64\x70\x5d\xcd\xc2\x99\x86\xa9\x8c\xd2\xc1\x14\x86\x7d\x5c\x3f\xed\x6e\xbe\xfe\xe9\xcf\x0c\x95\xd5\xcf\x1f\x48\x53\xaa\x9f\xcb\x66\x75\xa7\xa0\x65\xaf\xa4\xca\x37\xd5\x8e\x2d\x74\x13\x6a\x46\x44\x5f\x45\xf7\x63\xe2\x7f\xe5\x02\x28\xbb\x46\x82\x1f\x90\x9f\x15\xc4\xb9\x66\x31\xcb\x48\xca\x76\x77\x26\xe0\x35\x8b\xd7\x5d\x0a\xcc\x99\x38\x8d\x7d\x30\x70\x43\xc4\xa6\x7d\xa8\x60\xd6\x1f\x89\x0a\x9d\x06\x73\x0b\xc5\x54\xa0\x03\x4c\x9a\x71\xca\xa7\x5a\x09\xe2\xd5\x77\x2c\xdb\x66\xf5\x63\x94\xd4\x72\xed\xb2\x10\x3c\x6f\x14\x01\x99\xbe\x96\x0d\x41\xc8\x88\x7e\xde\x5f\x4c\x18\x4b\xa8\x57\x23\xcc\xe2\x06\x06\x82\x4c\xba\xbd\xe4\xb6\xdb\x66\xcf\xb6\x10\x03\x3c\x91\xac\x0f\x24\xfa\xa1\x66\x20\x55\x09\x8c\x34\x48\x9b\x77\x6c\x2f\x97\xf1\x5f\xa2\xd2\x9d\xf5\x99\x54\x5a\x3b\xeb\x73\xe5\x8c\xb4\xb3\x12\x27\x23\x4d\x92\x88\x09\x57\xe2\x98\xb1\xb4\x7f\x30\x15\x25\xe4\x1b\x3f\x7f\x94\x23\x53\xd2\x28\xc3\x68\x6c\xf6\x1f\x75\x93\xef\x2f\x42\xbb\x8d\x76\x94\xb7\xae\x4c\x64\xad\x2a\x8a\x15\x8f\x74\x11\xc1\x98\x54\x70\x9b\x77\x71\xa5\xad\x9b\xcf\xa6\x45\xb7\xb3\xc8\x20\x08\x85\xd3\x02\x6b\x37\x58\x14\xbd\x0a\xc0\x44\x88\xcf\xb7\xcd\x4c\xe0\xfc\x00\x57\x0b\x79\x9e\x2d\x90\x41\xa0\x38\xa5\x44\xf7\x75\xf5\xe1\x1c\xa4\x66\x0c\xf5\x92\x01\x8b\x2c\x6b\x9f\x82\x42\x4d\xe4\xce\xfe\x35\xbd\x12\xcb\xa4\x72\xb4\x9d\x3e\x91\x71\x8b\x47\xbf\x16\xc9\x20\x64\xda\x12\x34\x81\xc1\x17\xf8\xbc\x54\x24\xe1\x5b\xc6\x9c\x96\x57\x99\xbb\x72\x3a\x2b\xd3\x60\x09\x3a\xc6\x86\xb0\x0c\x42\x95\x49\x47\xea\xd2\xad\xad\xdb\xff\x5c\x79\xb8\x88\xb3\x28\x19\x25\xf4\x1a\xff\x54\x51\x62\x95\xa5\x5e\x5e\x57\x3b\x5a\x40\x6e\x9e\x9f\xbe\x6e\x76\x2f\xab\xd7\xe5\xea\x69\xbb\xf8\xb2\xea\x1b\x66\x86\x24\x8c\x50\xd7\x13\x9a\x73\x19\x44\x46\x91\xd9\xd4\xbd\x11\xd6\x83\x80\xcd\xf8\xeb\xcb\x80\x47\x18\x38\xec\xcd\x8b\xf5\xde\x67\x13\x57\x06\x9c\x43\xec\xf9\x41\x2b\x32\xed\x5d\xc5\xef\x84\x6c\x59\x06\x3c\x66\xb4\x13\x2c\x17\x5b\xc2\xb9\xae\xb6\xf7\xbb\xcd\x6a\xf9\xfc\x74\xbb\x5b\x2d\x5e\x1f\xfe\xdc\xdd\xac\x5f\x6f\x77\xaf\x8b\x6d\xff\xf0\x3c\x0b\x84\xe7\xb9\x27\xf0\x6f\xb3\x21\x86\x36\xed\xe3\xe3\x5d\x93\xc4\xab\x2e\x2d\x97\xf7\x3b\xd4\x79\xbb\x0b\x93\xb1\x55\x25\x83\x18\x0c\x95\x26\x35\xf0\x1d\x6f\xba\xef\x30\xfb\x1a\x09\x24\x44\x96\xd5\x50\x84\xd2\x9a\x85\x58\x4c\x3f\xdc\xc5\x55\x57\x06\x69\x68\x02\xcb\x07\x4d\x39\x07\xeb\x84\x5e\x65\xab\xb9\x72\x8d\x48\xca\x49\x5e\x6b\x8f\xe7\xc4\x6d\x32\x48\x53\xcb\xba\xd6\xed\x30\x7d\x79\xf3\x90\xc1\xf0\xad\xa4\x95\x37\xb3\x6e\x20\xd1\xc7\x16\x45\x7f\x10\xb5\xf4\x35\x07\xcc\xff\x98\x85\x22\xb4\x7a\x5f\x54\x9d\xe2\x28\xa7\xef\xaa\x7a\x31\x9c\x98\xa5\x86\xe2\xc9\xcd\x2f\xe5\x47\x64\x20\xc2\x98\x0c\x2d\x2b\x25\x70\x0f\xcd\xaa\xd4\xde\x07\x95\x81\x88\x45\xc0\x27\xa2\x94\x43\xd1\xd9\x68\xcb\x92\x81\xc8\x02\x1a\x2d\x2f\x6f\x15\x96\xf9\x0f\xaf\x18\xea\x0f\xcb\x2c\x0b\xfb\x1c\xb3\xad\xed\xb0\xa8\x0b\x62\x9e\xea\xbe\xd9\x06\xeb\x1c\x8a\xbe\xd8\xc6\x9f\x27\x94\xc7\x33\x3d\x40\xe7\xee\xf4\xb5\xc5\xff\x80\x49\xab\x3b\x1d\x35\x1f\x9c\xb4\xbc\xdc\x8f\xbd\x17\x19\xa8\xd4\xd0\xba\x44\x09\xd6\xdd\x1f\x8b\x6f\xab\xb0\x1b\xeb\xeb\xe7\x5b\xdf\x42\x07\x21\x91\xc3\x5b\xa2\xe3\x59\xdf\x61\x20\x08\xc6\xb0\x7e\x5a\xfd\x87\x1e\xec\x09\x3f\xfc\x89\x28\xec\x37\xb0\x4a\x7b\x2d\xbc\xf7\x33\x19\x31\x26\x68\xef\x97\xc5\xc6\x66\x85\xfd\x01\xa3\x02\x9b\x7a\xa5\x81\xbd\x7c\xab\xaa\xe6\x72\x1d\x73\xd7\x94\x51\x5a\xaf\xe7\x67\x24\x7d\xb2\xcd\xb1\xc8\xcf\x28\x1a\xcf\x0a\x16\xae\x5a\x4a\x92\x05\xa1\xa0\xc2\x73\x4a\x6d\x04\x3b\xa4\xe0\xb3\x13\x76\x2f\xb0\xee\x9c\x51\x3f\x74\x59\xc0\xe3\x88\x8f\xb5\xb3\x6f\xa0\x55\x6f\xfd\x51\x91\x2a\x97\xb5\xfd\x82\x25\x3e\xe6\x3f\x70\x9e\xbd\x9b\x98\xd2\x92\xb1\x00\xc9\x5d\x7b\xc4\xe6\xed\xa5\xca\xcb\x5e\x27\xff\x02\x56\x53\x32\x66\x64\x64\xd3\x91\xea\x54\x5b\x6f\xe5\x65\x46\xed\x26\x59\xc8\x14\x39\xd1\x60\xdd\xa3\x19\xc5\xf9\x64\x67\x9f\x9f\x67\x88\x8d\x77\x18\xad\xab\x46\x41\x31\xc6\x5f\xf9\xa6\xa1\x25\xf8\x68\x1c\xcd\xc1\xda\x05\x3c\xe6\xcd\xb2\x90\xc0\xb7\x8f\x8b\x8d\xa5\x78\x76\xf4\x3b\x3f\xb5\x12\x25\x0b\x25\x12\xe8\x16\x94\xaa\x4f\x76\x0f\x9f\x01\x2a\x2e\x0e\x0f\x16\xaa\x90\x62\xb2\x36\xd6\xe6\xeb\x0e\x1e\xa1\x79\xbf\xb2\xaf\xb2\x50\x2b\xaa\xf4\xba\xc5\x8f\x51\xa8\x4a\xb2\x28\x52\x94\xf6\xfe\x03\x5a\x78\x83\xe9\x21\x99\x58\x26\xd6\xfc\x80\x77\x75\xcf\x61\x23\x59\xa4\x39\x3a\xce\x9c\x2d\xc2\x61\x5e\x57\x71\x41\x19\xaf\x3b\xc7\xd6\x37\x4d\x55\xf4\x2e\xbf\x1d\x0f\x63\xe6\x6c\x8e\x27\xa8\x55\xd5\x2c\xab\x1a\x7f\x3e\xb8\x38\xcf\x62\xe6\x37\x3d\xaa\x1a\x99\x98\x1f\x8c\xc7\x82\xd0\x52\x04\x72\x7b\x1a\x38\x47\xaf\x6a\xb0\x48\xc6\xd3\x90\x0f\x02\xa5\xd3\x3d\x8a\xf1\x0c\x29\x75\x7f\x6a\x2c\x29\xe1\x97\x13\xd4\x7a\xd6\x26\x4e\x34\x91\x1c\xd0\x3d\x4b\x38\xb5\xcd\x84\xe6\x46\xb2\x38\x8d\x59\xdc\xcf\xb0\x75\x69\x2a\x2f\x7e\x3e\x7d\xb9\x18\xac\xcd\x78\x74\x75\x2e\x5e\xc9\xcb\x1d\x4e\x84\x4a\x6d\xb9\x4c\x5e\x8e\x45\x86\xdc\xe1\x14\x24\x91\x78\xf7\x1c\x2c\x2e\x2e\xda\x5b\xb0\xe2\x7f\x66\xf5\x3a\x7d\x6c\x41\x32\x11\x66\x10\xf7\x75\x55\x58\xef\x7b\x16\x0b\xc9\x04\xf0\x34\xf1\x6e\x61\xfe\x37\xee\x88\x07\xe8\x32\x20\x74\xf6\x85\x41\x19\x22\x08\xf9\x2f\x55\x56\x3f\x26\x83\x0e\x74\x42\x79\x03\x07\xc4\xb1\x6a\x2a\x57\x48\xbc\x24\x93\x3c\x20\x83\xac\xc4\x0f\x2b\xa7\xff\x4f\x6e\x2e\x85\x9d\x3c\x6e\x87\x9d\x75\xb6\xca\x02\x32\xe5\x1e\x17\xeb\xa7\xcb\xb6\xdc\xee\xe5\x7e\xb1\x59\x85\xbf\xf5\x27\xa4\x44\xdb\x4f\x46\x42\x9b\xcf\xf5\x84\x67\x37\x57\x8a\x9b\x7e\x55\xbd\xa1\xb8\xfd\x6c\x29\x51\x26\x64\x36\xb6\x66\x0b\x72\xcf\x0e\x5b\xfa\xf7\x12\x3f\x6e\x6a\x7c\xab\xca\xab\x78\xc2\x3e\x41\x3e\x2b\x71\xb8\xb6\x6f\xfc\xc3\xdf\xdd\x73\xe8\x28\xa5\xad\xb7\xdb\x4a\x28\xf4\x0a\x65\xe7\xb3\x7c\x3d\x2e\x4a\xfd\x50\xed\xf3\xfe\x8b\xea\x24\x35\xa2\x47\xf9\x17\x3b\x9d\x37\xf2\x54\x37\x38\x64\x8b\x24\xd3\x52\x90\xae\xcd\x1b\x34\x9b\x53\xae\xf2\xc1\x42\x61\x26\x0a\x03\x47\xd8\xd3\xf5\xc7\xac\xc8\xf4\xf2\xc3\x85\x01\xb7\x41\x4d\x97\x8b\x80\x02\x5b\xe7\x39\x9e\x27\x93\x46\x67\xe9\x80\x70\x7f\xbb\x1e\x2f\xb8\x7d\xc3\x03\xae\x8c\x41\xd5\xfe\x76\x2e\xc3\xdb\x9d\x21\x0c\x78\xc4\x7a\x5d\x49\x90\x79\x31\xae\x27\x3e\x9d\x15\xc0\xc9\x90\x71\x4d\xc2\x5b\xf9\x61\x94\xb0\x91\x21\xd3\x51\x30\x84\xe7\x48\x5f\x63\x6a\x4b\x86\x61\x60\x69\xbf\x41\x6b\x57\x80\xef\xb5\x78\x66\xb6\xd2\xf4\x19\xc3\x48\x58\xb4\x21\x49\xbf\xdf\xe0\x3e\x2f\x07\xdc\x8f\x0c\x43\x95\x92\xb9\xfb\x8e\x78\x3c\xe2\x98\x1b\x48\x86\x21\x32\x4a\x02\x91\x18\xc3\x2d\x7c\x7a\x23\x35\x8c\x22\x41\x4b\x4e\xd7\x53\x77\xd0\xbc\xe5\x55\xf9\x02\x35\x4c\x85\x78\xd9\xec\x8f\x3f\x37\x36\x81\x97\xc7\x20\x2f\xd7\xaa\x71\x12\xfb\x96\x6b\xc2\x53\x11\x59\x52\x94\xef\x08\xc5\x12\xf3\x62\x5c\x7b\x3d\xff\x3b\x28\x57\xf5\x7d\xcc\x55\xe4\x35\x12\x5e\xf1\xaf\x53\x5e\xa3\x7e\x84\xff\xad\xfa\xce\x8e\x53\x1d\x8d\x8c\xec\xee\x31\x28\x49\x38\xf9\x70\xd9\xc5\x84\xa8\x0c\x63\x21\xb5\x73\x9f\x4f\xc7\xb5\xba\x8c\xba\x95\x61\x9a\xa5\x16\x74\xa0\xf5\x1d\xe2\x1d\xa2\xbe\x19\x3b\xab\x63\x97\x28\x4c\x33\x20\xbe\x0f\x3b\x5e\x6f\xa0\xbc\x2c\x79\x21\xc3\x54\x31\xca\xbb\x1c\xe0\xc7\x4b\x5f\x1e\x2e\xc3\x8c\x05\x2c\xf3\x5c\x2d\x14\x07\x99\x9e\x96\x65\x89\x87\x79\x3f\x55\x75\xfb\xf6\x52\x15\xf3\x0d\xd5\xb7\x04\x69\x65\x44\xfc\x6e\x71\x8d\x6b\x47\x86\x99\x36\x84\x06\x7d\x5a\x2e\xbf\x7e\x0e\x83\x46\x04\x42\x99\x7e\x57\xeb\xec\xff\x97\x1a\xbf\xe7\x95\x37\x6d\xfa\x88\x5c\xd7\x14\x28\x3c\x8e\x0e\xec\x42\x2a\x6f\xfd\x41\x2e\x2c\xc7\xac\xf5\x4b\xd6\xa5\xaf\x32\xf1\xc7\x85\xa0\x3a\xcd\xf6\x54\x0f\xf7\x46\xcb\x7e\x9b\x2b\xcb\x2e\xdd\x6b\x43\xca\x10\x12\x43\x86\xbe\x22\x6f\x69\x75\xac\xd4\xdb\xd7\xe3\xb6\x9a\x75\x14\x64\x8c\x88\x7f\x68\x4f\xef\xe5\x70\xfd\x41\x91\xf8\xa5\xe8\x36\xdf\xe7\x2d\x14\x8b\x9a\x22\x28\x79\xb9\x3f\x93\xa1\x66\x61\xe6\x4f\xd3\x91\x0f\x82\x6d\xde\xb1\x55\x6f\xd8\x3c\x97\x14\x01\xfb\x23\x6f\xdf\x2c\x95\xcf\xec\x2b\x00\x06\x3e\xcb\xb7\xac\x4e\xc7\xaa\x7c\x3c\x15\x77\xa0\xe6\xaa\x7c\x32\x94\xdc\x22\xa8\x8f\x03\x5c\x63\x1c\x16\x96\xa1\x44\x8b\xe3\x24\x06\x58\x07\xff\x9b\xb6\x50\x3c\x22\x33\xc5\x66\x8a\xbf\xe4\xd0\xf3\x8d\xc9\x50\x87\xda\x8f\x9b\x85\xcd\x81\xd4\xef\xd8\x52\x81\xd8\x90\x89\x91\xa1\xe6\x48\x04\x8e\x6a\x54\xea\xde\x0d\xaf\xf9\x30\xd4\x98\x52\x12\xfd\xad\x3a\x35\xde\xd1\x7c\x36\xe4\xe1\xfb\x3b\x62\x28\x69\xd6\x2c\x17\xbf\x6f\x46\x23\x05\x23\x46\x01\xc7\xcd\x76\xf1\xba\x5d\x3f\x7d\xd9\x3d\x3c\xdf\x6c\xb6\x3e\x57\x28\x43\xe4\x4c\x4e\x90\xde\x9b\xb7\xfc\x78\x03\x6d\x5b\xe0\x1f\x79\x39\xc8\x83\xb8\xc4\xa1\x0c\x31\xd1\x6a\x8c\x81\x98\x4e\x71\x14\xa1\x23\xd6\xf8\x80\x5a\x2f\xca\x3d\x0e\x0f\x68\x44\x12\x7b\xc7\x24\x6f\x3f\x9d\x31\xd6\xd7\x2f\xba\x66\x86\x25\x14\xe2\x25\x87\x58\x55\xda\x32\x66\x9c\xe6\xd3\xcd\xa4\x40\xf9\x85\xa5\x9f\x6e\x1e\x37\xa7\xbf\xaa\x61\x41\x8c\x02\x2e\x90\x11\x08\xab\x6d\xb1\xfe\xbc\xf9\x5c\x6d\xef\xe3\xe9\xa5\x22\x06\x40\xdf\xea\xbf\xbc\x2e\x83\x8c\x98\xd4\xb1\x8b\xa7\xd7\xa8\x72\x9b\xe2\xed\xb1\x05\x32\x0a\xc3\x54\xb0\x41\x14\xbe\x8f\x98\xaf\x7c\xa2\x51\x46\x61\x2c\xa8\xb4\xad\xed\x69\xe0\x6c\xed\xe5\xf3\xb1\x9f\x17\x51\xe8\xca\x38\x1b\x4a\xc2\xfa\xfa\xe6\x61\x7c\x44\xa1\xe0\xe8\x00\x41\xaf\xa8\xf2\x63\x8e\x9e\x1e\xeb\xa2\x5e\xa9\x8c\x42\x93\x84\x96\x71\x7b\xf1\x38\x51\xdd\x90\x51\x24\x39\x7d\xe9\xea\x38\xd5\x58\x93\x11\x8f\x30\x33\x9e\x1f\xbd\x73\x49\x96\x35\xea\xbc\x9d\x75\x13\xcf\x22\x42\xf7\xa9\x02\x72\xc7\x64\xb5\x1a\x17\xeb\xc9\x88\x03\x97\x56\xcf\xb3\x69\x51\xdb\xbc\xeb\xa2\x28\xb6\xd5\xa2\x98\xf2\x4b\xc8\x28\x86\x90\xca\x98\x8f\x50\xb7\x65\x2f\x8d\x26\xa3\x24\x30\x5c\x3b\xbc\x9b\x4d\x63\x84\x9c\xd8\x2f\xfa\x87\x4d\x50\x53\x20\x6f\x79\x18\x43\x05\x65\x94\x32\x8b\x94\xd3\xd5\x2b\xd2\x23\x5e\x5e\x7c\xa3\x34\x11\xc4\x85\xb9\xfd\xf1\x5c\xe7\xfb\x79\xc1\x89\x8c\x52\x4c\x62\x97\x3c\x5f\x42\x51\x6c\xd4\x1b\xea\x53\x81\xfa\xe6\x73\x3a\xd4\xa3\x8c\x1b\xd1\xf7\x5a\x79\xf2\xe7\x8b\x50\x13\x89\xe8\xe1\xb1\x1b\xbb\x34\xab\x67\x1d\xd9\xed\x82\xd0\xaf\xf3\x44\xd1\xed\x4f\x06\x10\x49\xea\x21\x16\x34\x3d\xac\x6c\xa6\x3f\xac\x92\x28\x70\xc5\xf0\x6f\xf9\xf1\x62\x62\x5a\x46\x8a\x1b\x82\x10\xbf\x3a\x1e\x8d\xdf\x46\x38\x08\x19\x29\x88\x68\x7e\x2d\xef\x1e\x7e\xeb\x7f\x32\xa4\xcc\x60\xb1\x74\x43\x74\x5d\x46\x4a\x3b\x35\x81\xaa\x7d\x59\x4e\x87\x5c\x18\xfc\x33\x7b\x37\xd2\x2c\x20\x74\xe5\xcd\xe3\x72\x3b\xf9\x62\x5a\xa7\x5c\x4c\x60\xb7\xf9\xdf\x34\x30\x47\x70\x2e\x19\x61\x18\x69\xd1\x87\xe1\xc6\x69\x6e\x19\xa1\xab\xbf\x73\x34\x05\x50\x9e\x0c\xa8\xce\x1c\xa9\x2f\x54\xb5\xc8\xc8\x64\x49\x64\x06\x05\xa4\xed\xe7\x71\x9a\x59\x94\x3c\x88\x6d\xfc\x9f\x3e\x8d\x4f\xb2\xbd\x92\x59\x39\x42\xf4\x49\x1e\x08\x85\xca\xcf\x4b\xaa\x5d\xf9\x6d\x9a\x3d\x75\xed\xba\x2d\x2c\xf5\x61\xa3\xf6\xa3\xba\x83\xa2\xc1\x45\xd3\x60\xdd\x3e\x55\x9e\x45\xde\xb5\x8d\xc2\x88\xa2\x06\x48\x65\xba\x79\xa5\xfd\x6a\xc4\xb9\x30\x14\xe1\xfe\xa8\x3e\xa1\xfa\x2b\x87\xb2\xfb\xdf\x74\x42\x71\x0e\x36\x80\xeb\xd3\x20\xab\xed\xfd\x66\x86\x2f\x94\x9c\x2b\x41\xc1\x31\x05\xc7\xb1\xd1\xe6\x8f\x1a\x4b\x52\xbc\xbd\x79\xf6\x8b\x06\x8f\xc1\x72\x51\x6f\x2a\xa5\xac\xb2\xce\xcc\x49\x9b\xf6\x5f\x82\xcc\xb8\x68\xc2\x37\xac\xbb\xd5\xbb\x79\x36\x3d\x41\xef\xf4\x76\x69\xa4\x22\xc7\x93\xf3\x3b\x7e\x36\x37\x9f\xb7\xd8\x2d\x7f\x6e\xbf\x19\xe3\xd5\x24\x4f\x53\x27\x83\x30\xca\x26\xdf\x7c\x3e\xe0\x1e\xd4\x19\x24\xf8\x72\xe4\x87\xa7\x8a\x05\xd2\x56\x60\xa6\x21\x1b\x31\x76\x4a\x2e\x82\x8c\xf2\x68\xcb\x9b\xe7\xfe\xa7\x84\x73\x7d\x85\x2d\xe3\xe6\xb3\xc5\xee\xd5\x7c\x5b\x48\x33\xe6\x8a\x7f\xbe\x55\x2d\xd6\xb3\xb0\x3c\x97\x99\x5d\x71\x6e\x89\x30\xed\xb7\xfe\x57\x08\x87\xb2\x09\x0a\x91\x6d\x73\xe7\xd3\xce\xfc\x2b\x2e\x4d\xea\x8b\xe0\x28\x26\x42\xad\xe7\xb8\x78\xc9\x15\x0f\x28\x0d\xad\xab\x12\x5a\x5c\x6d\xef\x7f\xeb\x0f\x58\x17\x69\xd5\xb4\x0f\xf9\x5f\xa7\x5c\x4f\xf5\xbf\x25\x57\x68\xb9\x69\x7c\x58\x6c\xdf\xf9\x25\xf9\x0f\x2c\xae\xe3\x8a\x25\xd7\x4c\x08\xec\xf1\x88\xa3\x90\xe0\x45\x1f\x73\x90\x88\x1d\x9b\x13\x5c\x47\x86\xe2\xdf\xff\x19\xa5\x6d\xcf\xd3\xef\x92\xeb\xd8\x96\xc3\x38\x3d\xa0\x52\xff\xbb\xca\xcb\xe5\xed\xcb\x2d\xe4\xb3\x5e\xc0\x54\x58\xdd\x31\x87\x50\x27\x43\xda\x33\xfc\x8b\xbe\x55\x66\x89\x73\x1e\x51\xaf\x7c\x4c\x9b\xa3\xb1\xae\xf9\x08\x26\x8d\xfa\x52\x49\xbc\xe4\x06\x54\x86\x6e\x80\x34\xbd\x17\xe4\x0f\x1a\x13\xe1\x88\xc9\x68\x9e\x68\xbe\x1c\x6c\x19\xbf\x6f\x1c\x28\x4d\x41\x64\x68\x5b\x50\xef\x24\xaa\x30\xee\x55\x76\x4d\xe6\x4e\xc6\x2c\x4a\x62\xe7\x65\x65\x61\xb7\x09\xfd\x76\xd6\x42\x60\x20\x46\x0a\x03\x83\xd5\x12\x33\x05\x54\xe7\x5e\x57\x85\xa5\x16\x99\xa3\x40\x26\xbd\x10\x33\xcd\xfc\x8a\xba\xb4\xa6\x90\x1d\x59\xe7\x29\x81\x38\xe4\x49\xe4\xb8\x69\x5c\xd6\x14\x6b\x17\xab\xb2\x79\x98\xc2\x45\x6c\xfc\xbc\x89\xa3\x28\xb6\xda\x2f\xb9\x69\x9b\x8b\x01\xbe\x38\xe2\xda\x0a\xa4\x77\xbe\x40\x69\x73\x6b\x8f\xd5\xf7\x79\xf6\x2f\x8e\xb2\x80\xdc\x9b\xbb\xaa\x26\x42\xaf\x6a\xb5\xbe\xf3\xaf\x1c\x29\x49\x28\x20\xd0\xfa\xa9\x1a\x22\x61\xa3\xe5\x27\xe6\x41\x42\x50\x3b\x82\x05\x3b\xb2\x85\x31\x51\xa4\x8c\x79\xa8\x53\x3e\x5a\xe8\xc9\x3b\x5e\xfd\xb5\xee\xbd\x85\x98\x47\x16\xb7\x73\x80\x1f\x54\xb3\x74\xc1\xc4\x8a\x79\x12\x6a\x17\x15\x79\xf4\x9b\x5c\x1c\x2b\x46\x56\xd5\xf1\xd4\xbc\x4d\xf3\x72\xae\x41\x02\x86\x04\x2d\xfa\x00\xc8\xa1\x7a\xac\x4a\x1a\x77\x17\x57\xe9\x38\x65\x82\x4c\xa5\x3f\xaa\xa2\x27\x09\x97\x71\x8a\x92\x02\x88\x64\x3c\x6d\x70\x7f\xc0\xc1\x9f\xa1\xba\x71\x17\x3c\xeb\xb6\xce\x31\xb3\x95\x8c\xb3\x54\x8e\xea\xf6\x5f\x4e\xc7\xe3\xe7\x26\xef\x3a\xd1\x7d\xdf\xab\x00\xd8\xe9\x82\x12\x67\xca\xaa\x6c\xb9\xfd\x79\x39\x43\x35\xc8\x58\xc4\x9c\x07\x3e\xa7\x5e\x97\x96\x13\xe4\x1a\x3f\xd7\xf4\x54\x60\x29\x99\x0a\xa4\xb0\xad\x47\x28\x62\x19\x43\xc2\xcd\x58\xe9\xfb\x09\x0e\xf8\x9f\x12\x0e\x67\x4c\x88\x7d\x5e\xc8\x8f\x0b\xc9\x94\x70\x5e\x9e\x25\x29\xbb\x1e\xbd\x89\x25\x0f\x09\x0a\x53\xe4\x0d\x01\x83\xfb\xae\x95\x42\xb9\x02\xf4\x76\x42\x22\x29\x63\xa9\x62\xea\xf4\x3f\x5e\x16\x7f\x4e\x7b\x5c\x39\x32\xfc\x07\x26\x76\x63\x9b\x2a\x56\x00\x44\x43\x46\xc9\xf0\x52\xcf\x0b\xbd\x67\x1d\xae\x95\x0d\x52\xaf\x9b\x85\x45\xeb\xce\xfa\x5b\x63\x48\xb6\xd7\xdd\xa9\xbc\x83\x7c\xa4\xa2\x22\x63\x8c\xac\xe4\xce\x3d\xb4\xea\x6d\xb5\xdf\xf7\xbf\x27\x49\xea\x60\x83\x4f\xf8\x71\x21\xc8\xf3\x8b\x31\x60\xb8\x25\x4e\x02\xad\x6f\xa1\x85\x4d\x5b\x23\x1c\xe6\xeb\xe7\x64\x7f\x4d\x82\x28\x0a\x86\x18\xd0\x83\x0f\xea\xb9\xcb\x8f\xaf\x9e\x04\x19\x27\x5a\xbb\xe6\x23\x6f\xd5\xdb\x08\x2e\x2e\x13\x16\x67\xa4\x72\x6e\x4e\xa5\xee\xa6\xf8\x99\x64\xcb\xe4\x39\x93\x50\x28\xe2\x13\x38\xec\x56\xdb\x7b\xbb\x1f\xf7\x24\x3a\xf5\xf7\xde\x2d\x4f\x22\x65\xa9\x19\x47\xd4\xef\xce\xb2\xb7\x77\xf7\x26\xda\xcf\x75\x77\xfa\x8b\x65\xbe\x38\xf0\x74\x7c\x05\x85\xbf\x5d\x88\x93\x26\x3c\x4e\xb9\xd7\x7e\xba\x23\x85\x42\xff\x30\x5c\x58\x55\x8c\x86\x33\xa7\xe2\xde\x1f\xb0\xca\xbb\x75\xd5\xbd\xfd\xa8\x02\x44\x26\x5c\x46\x76\xed\x73\x02\xeb\x3b\x98\x04\x57\x13\xae\x53\x32\x3c\x89\x2c\x7e\xe7\xd1\xa2\x3b\x42\x68\x4d\xb7\x80\x24\x91\x26\xc9\x9c\x42\xe1\xe3\xa7\x05\xfc\x4e\x3f\x65\xa2\x19\x81\x9e\x37\xdb\xcd\x76\xb5\xf1\x56\x68\x92\x60\x24\xb9\x8d\x72\xbb\x29\xb2\x2e\xcf\x4b\xaa\x64\x92\xb2\x58\x79\xea\xc5\xce\xed\x7e\x85\xf2\x7d\x8c\x22\x92\x49\x1a\x61\x0a\x7d\x2d\x54\x2f\xd1\x29\x93\x94\x47\xf4\x1a\xdf\xab\x16\x09\x19\xa0\x73\xfb\x39\xe7\x3a\x7b\x32\x49\x13\xa0\x4f\xda\x38\xd7\xb0\x73\x13\xa7\x49\x3c\x7e\x71\x90\x9f\x95\x4c\xf9\xeb\xe9\x78\x80\x59\xf7\x84\x0d\x53\x18\x50\x92\xa2\x61\xc2\xc1\xe2\xfa\x8a\xda\x6b\x05\x1e\x32\xc9\x94\xa6\x04\x6f\x5d\xea\x47\xf8\xb1\xf3\x57\x11\x61\xcf\x8e\xfe\x52\x57\xfa\xa4\x2e\xeb\x16\xca\x44\x44\x21\x19\xf2\x8d\x13\x2a\x79\xfe\xde\x07\xdc\x13\x91\x5a\x04\xb6\x2d\xca\x73\x54\x23\x7f\xcf\xb7\xa5\x44\x08\x23\x25\x11\x7e\xe3\x61\x5b\xc3\xac\x13\x01\x94\xca\x2c\x8c\xf5\xb8\xe9\x56\x2a\x94\x5f\x72\xd3\xbf\xae\xd4\x09\x2d\x7d\x4b\xa7\x81\x93\x97\x8e\x4e\xa2\x6f\x60\x22\x22\x06\xca\xdd\x7c\x3b\xcd\x80\xb9\x17\x6c\xc8\x44\x31\x65\x7a\x3a\x87\x7b\x2c\xf4\xc4\x9b\x4c\x54\x22\xd0\x66\x0b\x07\x75\x17\x8b\xec\x72\x0d\x74\x82\xdc\xaa\x01\x14\xfa\x85\x62\x58\xe3\xb5\x37\xd1\x89\x61\xda\x97\x25\x34\xcf\xc3\xef\xc6\x96\x17\xde\xae\x1e\x9f\xef\x17\x9b\x7b\x02\xcd\xcf\x1f\xf4\x34\xd7\x62\x92\x09\xb2\x00\x1c\x88\xda\x41\x4c\x2e\x00\xa8\x5d\x5b\x93\x25\x54\x9b\xb1\xbc\xb7\x05\x15\xc4\x33\xf3\x5b\x7f\x50\xf0\x91\x30\xf0\x8a\x84\x6c\x67\x5f\xcb\x48\xab\x30\xfc\x05\xdb\xe7\x7a\x0f\xe5\x04\x0e\x92\x18\xc5\x6d\x50\x6e\x40\xd5\x4d\x07\x4c\x1a\x04\x8c\xa0\x7e\xaf\x56\xb5\x4c\xdf\x2c\xef\x7f\x46\x04\x24\x53\xc6\x12\xb4\xec\xe7\xdf\x73\xfc\xb0\x74\x11\x5e\xc8\xea\xe2\x98\x4c\x43\x08\x71\x42\xe5\x7a\x2a\xaf\x40\xd8\xd2\x50\x6b\xcf\x63\xf0\x98\x97\xf9\xa1\xa7\x5b\x98\x36\x8b\x18\x27\xa2\xf4\x9b\xd5\xf8\x43\xa6\x11\xf0\x44\x4e\x21\xb9\xfe\xc9\x7c\x0b\xc5\x02\x4b\x5c\x6e\xe5\x5b\xba\x7d\xf6\x4e\x99\x9f\xc9\x53\xbb\x33\x79\x6c\xa8\xfa\x8e\x86\xec\x4d\x31\x61\x9d\x74\x4d\x12\x14\x9e\x02\xe1\x15\xcd\x65\x1b\x2e\x4d\x83\x94\xa9\x5e\x21\xb6\xc7\x1c\xcb\x54\x48\x49\x59\xab\xc7\x2d\x16\x43\xe5\x92\x4c\x21\xb0\xa4\xf0\xda\xee\x3e\x97\x09\x70\x65\x0a\x06\x6d\x91\xa5\x73\x81\xa6\x60\xbb\x54\xf2\x98\x2c\x82\x37\x68\xde\x2c\x15\xf0\x05\xb0\xb4\x4c\xa5\x52\x99\x2b\x62\x73\x35\x20\xfd\x05\x4c\x84\x1e\xce\xd0\x99\x6f\x63\x4b\x2c\x55\x11\x77\xe5\xca\xad\x27\xcc\x0d\x27\x10\xb8\x54\x47\x19\x15\xfa\x36\x2f\x54\x5a\xd5\x3f\x97\x4e\x24\x65\xfa\x0f\xf0\x8e\xf5\x57\x97\x00\xfe\xbd\x54\xb3\xb7\xc3\xd4\xc2\x6a\xb7\xb3\x2f\x6e\x02\xad\xf5\x25\x87\xed\xb2\xe3\x36\xf0\x50\x5f\x1c\xda\x86\x5b\x86\xec\x9d\x82\x42\x75\x4f\x19\xcc\xc6\x9d\x41\x5b\x93\xee\x45\xf8\x08\x07\x7c\x79\x28\x67\x41\x80\xb4\xe7\x5b\x64\x9e\x77\xae\xfa\xa9\x99\x05\x31\xba\xb0\x3a\x19\xcd\xb3\x60\x63\x16\x48\x4d\xfb\x86\x23\x13\xb8\x82\x07\xc8\x58\xa0\x08\x0f\x80\xc7\x4a\xbd\xcd\x2e\xc1\x24\x03\x33\x70\x22\x8f\x93\xaf\x59\xc8\x18\x7d\x0f\x55\x54\x0d\x45\xc8\x58\x7f\xc4\x70\x32\x90\x5e\x16\x7f\x2e\x9f\xd7\x4f\x0f\x7f\xfa\x03\x51\x68\x29\x7f\x8e\xf0\x39\xa3\x19\xe8\x8e\xa5\x81\x47\x4d\x38\x01\x7d\x92\x84\x58\x50\x5d\x9b\xaf\x9f\x9d\x3d\x5f\x14\x45\xcc\x41\x3b\x17\x75\xfb\x51\xd5\xef\x5f\xea\xea\x74\xec\xef\x97\xda\x8a\x9f\xc5\xe3\xcd\x62\xb3\x59\xdc\x3e\xbf\xee\x36\xeb\xff\xf8\xa3\x9c\x59\xc5\xa4\xce\xfa\xae\x60\x59\x95\x0d\x96\x8d\x07\x04\xcb\x8c\xc7\x8a\x8d\xeb\x95\x88\x3e\xad\x73\x5e\x7b\x3a\x95\x45\xd1\x8e\x85\xb0\x67\xfd\x1a\x33\x41\xc5\x50\xe4\x76\x50\xfa\xf8\xd9\xcc\x1e\x3f\x16\xdc\x4b\xee\xcd\x63\x89\x97\x62\x8a\x59\x12\x05\x22\x9e\x96\x73\x57\xb5\x8f\x4d\xfd\x36\xc1\x2e\xb8\x33\x3c\x7d\xb7\xa3\x29\x2b\x49\xbf\x79\xfa\x10\x29\x46\x16\xf3\x4b\x9c\x40\x63\x96\x48\x99\x65\x89\x0e\xfc\xac\xec\xac\x7d\x0a\x10\x9f\xe6\x88\x97\x2c\x83\x24\xf3\x6c\x19\xd5\xac\xda\x5a\x66\x99\xb2\xc9\xcd\x06\xdb\xcd\x11\x14\x2e\x6b\x30\x73\x5d\xc1\xe9\x12\x97\x29\xc6\x6c\xdd\x0d\xd9\x00\x34\x5f\x2d\xfc\x7d\xda\xc5\x2a\x46\x5a\x92\xbc\x39\x46\xb2\x2f\x1f\x75\xde\xa2\xa7\xb0\x21\x03\x6d\x06\xea\x70\x27\xeb\x54\xd1\xbb\x51\xfb\x65\x55\xea\x7c\x80\xf8\x4c\xb7\xe3\x0c\x63\x83\xb6\xa6\x4a\x55\xa5\xb6\xfe\x98\x0d\x02\xac\x4a\x3d\x0e\x59\x67\xa8\x0c\x81\x1b\x5a\x84\xc3\xa2\xd7\x00\x99\x1a\x74\x99\xc9\x62\xba\xf3\x53\xa5\xd1\x0b\xb5\x9f\xed\xee\x3e\x72\x2b\x82\x44\x91\xa7\x86\xdd\xd4\xbf\xc9\xf5\x5d\x55\xdb\x94\xe8\xb4\x33\x44\x00\x11\x49\xbb\x6e\xb6\x8b\xed\x6a\x77\xfb\xfc\x44\xa4\x38\xbb\xd7\xe7\xaf\x4f\xb7\x3b\x9f\x65\x11\x8c\x59\x25\xcd\x3d\xb6\x1b\x2b\x4e\x78\xb4\x5a\xa0\x55\x83\x7a\xd1\x4e\x8d\x72\xc1\x74\x4c\x90\x2d\x82\x64\x0e\x94\x3b\xfd\xc5\x50\xf8\x7a\xbf\xf1\xc5\x9e\xaa\x6e\xdb\x98\x5d\xc9\x70\x02\x78\x92\x94\xea\xb3\xb9\xc9\xbb\x11\x5c\x62\x9f\x7c\x11\xa1\x10\x94\x10\x03\x6f\x54\x3e\x42\xd9\x0f\xd5\xff\x8e\x03\xdf\x1d\x51\x1c\x08\x33\x00\xe9\xda\x8a\x34\x0c\xbc\xfb\x3d\x9e\x8a\x59\x7f\x86\x25\x86\x7d\xc7\xcf\x2b\xf6\x85\x88\xf4\xff\x4b\xda\x9b\x75\x37\x8a\xab\xfb\xc3\x5f\xa7\x2e\xce\x05\x12\x08\xd0\xa5\xed\x38\x89\x4f\x65\xda\xb1\xab\xab\x7b\x9f\x75\x96\x97\x86\x47\x09\xbb\x30\xf8\x00\x4e\x95\xfb\xd3\xbf\x8b\x47\x12\x93\x71\xaa\xff\xeb\xbd\xd9\xd5\x3b\xc8\xd8\x80\x90\x9e\xe1\x37\x84\x28\xe2\x54\x23\x26\x75\x0a\x02\xfa\x34\x6d\xe5\x8c\x07\x68\xa3\x71\xf3\xf2\x99\xca\x47\x3b\x2e\xc6\x36\xf9\x3a\x17\xfa\x58\x56\xa2\xbb\x72\x06\x2a\xf0\x00\xd3\x85\xd6\xe3\x6d\x97\xc7\x69\x60\x35\x66\x3a\x63\xef\xe1\xbe\xc9\x63\xae\x90\xd9\x02\x1e\xb1\xde\x2e\x07\x50\x35\x19\xd4\x93\x90\x64\xf4\xa3\x63\x88\x30\x86\xd8\x1f\x2b\x78\x54\xb7\x5d\x24\xcc\x13\x1a\x69\xd2\x49\x1d\xe5\xa7\x3a\xfb\xb0\xa4\xe1\xb9\xc2\xae\x2b\x74\x74\x0f\x39\xa1\x31\x02\x5c\x0f\xa7\xbc\xc9\xec\xc2\xdd\xbe\x80\x37\xf3\x9a\xa6\xe3\x77\x9e\x27\xcc\x4a\x64\xe2\xe2\x36\x96\xab\xb9\x72\xe7\xd3\x80\x60\xd1\x7b\xf7\x0e\xf7\x6d\x50\x72\x84\x6e\xe5\xe2\x69\x94\xe0\x5b\xb3\x38\x88\xbf\xcb\x62\x09\x75\x53\x43\x9e\x43\xf5\x20\x64\xfd\xfb\x00\x9c\xa7\x31\xc3\x62\x0a\xde\xd2\x36\x1f\x1d\xc6\x0c\x9c\xf3\xc4\xe8\x81\x8b\xc5\x3d\x6a\x7f\xc2\xaf\xc9\xca\xc7\xb9\x4c\xb0\xa4\x2a\x2a\x99\x35\xed\x1e\x6c\xcb\x9d\x5d\x57\xc4\x0d\x13\x24\x4e\xac\x83\x56\xa6\x00\x5d\x79\x6b\xcf\x18\xbc\xa2\x52\x36\xe6\x39\xd3\x60\xb8\xe6\x73\xa1\x6d\x41\xb2\x0d\xb1\xc4\xf1\x15\x44\xbb\x3a\x76\xdf\x65\x18\x3e\xa2\x9f\x87\xd3\xbc\xa3\xb6\xe4\x92\x28\xa9\x2f\x58\x39\xba\xdb\xf9\xb9\x8c\xa9\xb4\x1a\x6d\xcb\x90\x7e\xf9\xec\x99\x4a\x0d\x34\xf1\xa8\xd4\x03\x3e\xa5\xe5\xf9\x7b\xbb\xe0\x5e\xc5\xbe\x8e\x57\x69\xae\x12\xab\x04\xe1\x90\x70\x28\x99\x35\xf0\x5c\x90\x5c\x41\x2c\x7a\xd5\xaa\x8b\x19\xf3\x9b\x0e\xd1\x6f\x01\x7d\x93\x02\x3a\xd7\x71\x8a\x02\xad\xce\xf8\xc3\x45\x2a\x93\xe7\x0e\x34\x45\x8d\x81\x43\x56\x34\xaf\x70\x25\x6f\xe2\x10\x25\x58\x13\xd9\xe7\xa8\x2f\xe2\xff\xca\x42\x54\x0c\x79\x84\x06\xaa\xed\x90\x44\x31\xdf\x78\xe3\x60\x00\xc9\x0f\xb9\xa8\x2d\x97\x75\x0c\x81\xe3\x46\x80\x2f\xd4\xaf\x77\xf7\xbd\x09\x9f\xe4\xc6\xc4\xb8\xf3\xe7\x60\x1a\x4e\xc6\xdb\x89\x20\x5c\x63\xe6\xb8\xbe\xbb\xdb\xee\x77\xcf\xfb\xfb\xc5\x6e\x75\xbf\x27\xab\xd7\x85\x6f\x4e\x0a\xa2\x42\x2c\xd9\xec\x6b\x25\xd0\x95\xd9\x87\x06\x83\x35\x41\x10\x90\x83\xfe\xd2\x1d\x14\x56\xcb\x66\x74\x0d\xa2\x8d\x0b\xf1\x29\xd7\x0e\xab\x68\x9d\xc1\xa7\xf9\x91\xa0\x29\x47\x05\xc5\xfa\x28\x7e\x16\x83\x6f\xbb\xb8\x2b\x22\xe4\x20\xbc\xe0\x2e\x26\xe5\x5d\xb5\x5b\x84\x00\x83\x28\xea\x03\xaa\x06\xaa\x57\x71\x98\xa4\x43\x22\x62\xb6\x73\x26\x45\x0d\x2f\xa7\x22\xeb\x90\x25\x22\x4a\xa4\xb5\xe8\xcc\x54\x67\x36\x2e\x45\xa4\x14\x12\x1f\xc4\x98\x77\x3c\x7e\xe8\x82\x85\x81\x4f\x30\x6f\xc0\xb4\xb7\xe2\x15\x54\x79\x40\x2f\x48\x7f\x26\x96\x30\x6c\x59\xdc\x9f\x0e\xa2\xd8\x36\xa2\xd0\x1d\xaa\xea\x93\x95\x6b\xfa\x45\x69\x80\xb4\x85\xaa\x8d\xb8\x06\x3b\x86\x60\xa9\xd5\x49\x3e\x88\xe2\x24\xf2\xe7\x0f\xa8\xaa\x4c\xc3\xda\x86\x3f\xf7\xd9\xdb\x3b\xd4\xcd\x32\xd3\x8b\x42\x2f\x33\xad\x2f\x3b\x09\x93\xef\x89\xa3\xd0\x2b\x1b\x5b\xb9\xf8\x0b\x81\xb0\xcb\x1a\x95\x88\x93\xc4\x08\x87\xbd\x7b\xa9\xe0\x90\x9d\x0e\x2f\x62\x4a\x17\x12\x89\xd4\xca\x0a\xde\xb7\x4b\x59\x87\x3d\xb9\x2d\xab\x36\xdd\x99\x3c\xae\x04\x58\x12\xf4\xae\xa2\xa3\xca\xdc\xc5\x4b\xdd\xaf\x96\x22\x81\xc4\xf4\x1d\x0c\x44\x54\x4e\x57\xa6\xd1\x8a\x24\x30\x9e\xf5\xe5\xa7\x42\xe4\xaf\x58\x0b\x9b\xc4\x71\x7e\xac\x16\x38\x5f\x8f\x8e\x75\x37\xec\x7f\x8a\xd4\x18\xe5\x44\x6e\xee\x2a\x71\xec\x40\xe2\x82\xd3\x24\x6e\xdf\xab\xc5\xb2\xbe\x9e\x5f\x08\x1e\x1a\xd4\x4b\x3b\x88\xb7\x4c\x59\xe5\x58\x7f\x44\x24\x58\x7e\xbb\x5d\xac\x76\xcf\xaf\xfb\xa8\xfb\xbb\xe6\xb8\x5f\xae\x0f\x22\xcb\xb7\xc3\xbc\x73\x26\x5e\x11\xdc\x84\xcc\xf7\xb5\x56\x39\x88\x6a\x99\x79\x95\x11\x7f\x42\x41\xad\xd5\x95\x70\x00\xac\xab\x37\x7c\x76\x86\x8a\x54\x5a\xca\x42\x1b\x74\x55\x53\x55\x79\x37\x48\xc6\xd6\x86\xb3\x53\xd2\x41\xcd\xd6\xc9\x98\xd4\x42\xb2\xda\x5f\xfa\xf2\xe3\xcd\xa1\xa4\xfc\x41\xc1\xa8\xb3\xa7\xc4\xb2\x7b\xf7\xe3\x15\x50\xd4\xd1\xfc\x71\x56\x17\x9a\x58\xdd\x90\x84\x24\xde\xaf\x13\x2b\x83\xd7\x59\x56\xdd\x47\x34\x1a\x43\x65\xf5\xa6\xc0\xd6\xf3\xf8\xb0\x66\x1a\x3a\xfd\x92\xc7\xac\x98\xf3\x3a\x92\x42\xa7\x3a\xb5\x4d\x64\xf4\xdb\x19\xa8\x28\xf8\x46\xc1\xff\x4e\xee\xa5\x96\x12\x97\x8c\xf5\xee\x65\x18\xa9\x08\xa0\xc2\xfb\xa2\xe2\x14\xd1\xb7\x99\xec\x8e\x29\xeb\x36\x5f\xc1\x47\xf6\x31\x49\xc7\x05\x80\xc1\x65\xbb\x6e\xca\xe3\x6e\x40\xc0\x10\x26\x26\x48\x8d\x70\x64\x5c\xda\xfd\x3d\x11\x41\x0f\x89\x7c\xa9\x4e\x20\x3d\x78\x49\x06\x51\x8a\x2a\x94\xee\xdd\x7c\x3d\xe5\x53\xc9\x7a\x29\x03\x23\x00\xfa\xd2\xd7\xcc\x8c\x94\x84\x47\xa1\x25\xa3\x7b\x65\x8b\xd9\x00\x46\x12\xc1\xc0\xf4\x5f\x77\x03\x83\xe4\x78\x74\x42\x1a\xf4\x45\x27\x71\x6c\x44\xe6\xbd\xf9\xfa\x2e\xf6\x44\xa5\x41\x4a\x9a\x5a\xfd\xa4\x43\x56\x0c\xa1\xb7\x32\x0c\x12\x9f\x0b\x3d\xda\xa7\xd5\x55\x6e\xfd\x88\x38\xc5\x1a\xf2\xb1\xcc\xf3\x1b\xd1\x08\x54\x23\x7c\xef\x11\x8b\x92\x31\x85\xd6\x3f\x12\xb9\xf8\xd6\x99\x05\x6e\xcb\xea\xf6\xd4\x9c\x2a\x5b\x31\x9c\x5b\xd6\xfc\xa7\xb5\x35\x39\xaa\x7b\xc9\x96\xf1\x80\x38\x12\x12\xba\x5a\x70\xfb\xf0\x2c\xa9\x78\x34\xf7\x64\xc2\x18\x26\x14\x35\xf2\xe6\xe6\x1e\x43\x92\x12\x8b\x06\x3c\x55\x8f\xe2\xd7\xb2\xcb\x6b\x65\x9a\x18\x84\x1f\x64\xf5\x4e\xf4\xf5\x59\x7f\x30\xd5\xb8\xc5\x23\x8a\x05\x75\xd8\xbb\x8f\x49\xaa\x87\xc2\x8f\x2f\x50\xf5\x45\x4d\xc9\x43\xe2\x85\x9e\x9e\xe0\x17\xca\xa5\x2e\x9a\x1f\x73\xdd\x70\xc9\x0d\x58\x5e\xa2\x1e\xca\x57\x5f\x3c\x75\x41\xa2\x50\x8d\x6b\xbc\xc3\xe6\x8b\xff\x62\xa1\x21\xc2\xc0\xa5\xd6\x83\x9f\x23\x19\x8f\x7a\x92\xbc\xad\x5d\xbb\xbd\xf3\x9f\xe6\x8d\x57\x63\xcd\xb9\x55\x52\x4a\x26\x8c\xc7\x91\x91\x5b\x91\xe5\xdd\x0f\x94\xb1\x25\x6c\x6c\x1a\x38\x38\x44\x75\x77\x88\x1b\x2c\x7c\xc9\xd3\xd9\x37\x4f\xc6\xb7\x4a\x2a\x3b\x5b\x97\x59\x53\x88\xc2\x79\x9d\x0d\x65\x27\xdd\x38\x1d\x06\xb8\xd9\x2d\x1f\x76\xc3\xad\xc8\x1f\x15\x09\x84\x7d\x3d\x0a\x7a\xc5\xe2\xc1\x0e\x2b\xb5\xb2\x84\xd2\x7d\x87\x52\x98\xeb\x3e\x7d\x9e\x65\x4b\x6d\x04\x86\xf9\x4e\x13\xd7\x36\x87\x2e\xf3\xca\x2e\x50\x97\x10\x04\xcc\xc9\x20\xdc\xb5\x81\xa7\x98\x74\x00\x24\x44\x89\x6d\xab\x21\x64\x6a\x57\xf6\x3e\xae\x52\x82\xe2\xd8\xa1\xb0\xf2\x46\xfb\x5d\xba\xfe\x73\xbf\xb8\x79\xdc\x3c\xf9\x01\x26\x08\x13\x87\x02\xf4\xd8\xdd\xb9\x6c\xfb\x37\x17\x65\x18\xc1\x6a\xf1\xcd\xf3\xf7\xfd\xf7\x0e\x8b\x24\x4d\x12\x22\xd6\xf3\x36\x3f\xaf\x44\x35\x74\xa2\x97\x2a\x08\x52\x94\xfc\xfa\x55\x89\xee\x4f\x11\xd8\xb3\xac\x57\x9b\xc7\xc5\xc3\xd6\x6e\xfb\xdd\x51\x16\xfb\x1a\xe3\x53\xd9\x88\xea\x3c\xcb\x61\x50\x01\x4b\x03\xf7\xee\x60\x0b\xfc\x0a\xa5\x78\xf4\xfb\xdb\x0f\x85\xa1\xf7\x37\x9e\x28\x11\x49\x15\xc8\x14\xab\x82\x99\x47\x78\x5a\x42\xee\x6e\x64\x6c\x2f\x15\xa1\xc6\x02\xe1\x07\x52\x03\xbe\xec\x13\x8d\x5a\xe3\x3d\x08\xe3\x33\xae\x89\x22\x5c\x6a\xd1\xb7\xca\x8d\xc9\x47\x12\x45\x12\x1d\x54\xa3\x0e\x76\xa1\x40\x3f\x95\x7d\x5c\xa0\xc2\x20\xe0\xae\x81\x71\x53\x95\xc7\xee\xef\x91\x88\x2d\x7f\xb4\x68\x43\xd5\x1b\x50\x58\x0c\x1e\x4f\x2a\xc5\x52\xeb\x0a\x6d\xcd\x3f\x1b\xf1\xd6\x55\xc5\x15\x13\x02\xa3\x2f\xe4\x9a\xb4\x41\xff\x07\x54\x5d\x5e\xae\x98\xb4\xae\x52\x6f\xbd\xc4\x34\x46\x3a\xfe\xb0\x49\x9d\x46\x40\xa1\x27\xf2\xb0\x93\x67\x12\x8b\x04\x11\x3e\x42\xff\xe7\x54\x37\xab\xd3\x95\x36\xaf\x4a\x82\x04\xb5\x37\x96\xbb\xdf\x66\x16\xfe\x13\x46\x70\xb7\x6e\xae\xda\x04\x67\x7c\xbe\x94\x49\x8c\x34\x50\x46\xae\x87\x95\xa9\x34\xd5\xf8\xa6\x14\xe2\x00\x68\x38\x38\xbb\x28\x2b\x9e\x24\x18\x6d\x1e\xcb\xa3\x6a\x63\xe4\x51\xa8\xac\xb8\x8c\xad\x04\x44\xa1\x9f\x0d\xda\xf3\x8f\x67\xaf\x20\xd6\x30\xd3\xf1\x5e\xea\x95\x28\x50\x34\x60\x32\x4a\x73\x7c\x38\xd8\x7d\xaa\x1b\x44\x68\x5b\x9c\xdf\x78\x9c\x8c\x28\x76\xa0\xf7\x38\xaf\x76\x65\x6f\x49\xe5\x07\xc4\x26\x70\x58\xd7\x87\xb2\xee\x48\xdc\xbd\x72\x94\x54\x52\x04\x08\xb9\xdf\xf7\x22\xec\x17\xa4\xc3\x99\x74\x44\xb5\x79\xa7\xe8\x4a\xcd\x2f\xa2\x6a\x9e\x4d\xef\x1f\x8d\x49\x50\x3f\x69\xa4\x8c\x11\xd8\x2a\xa1\xa9\x17\x15\xbc\x88\xf3\xb5\x2e\x8f\x52\xae\x0a\xd0\x78\x2d\x9e\x89\xd4\x8f\x54\x4a\x12\x44\x5a\xac\xcb\xfa\x25\xfb\xfb\x6f\xb1\xcd\x2f\x34\x4b\x94\x92\x26\x76\xe2\x62\x18\xfc\xcc\x8b\xd8\x4b\xa5\x03\x2b\x73\xd9\x7d\x49\xf6\xf2\xfa\xfc\xb4\x7b\x7e\xc8\x3e\x7a\xbb\x2d\xa9\xb4\xb6\xb4\x3e\xbc\x8f\x6f\xf5\xd3\xe9\x0a\x72\x5f\x69\x50\xda\x05\xe2\x9b\xba\x3e\x4d\x89\x21\xe3\x18\x5c\x41\x60\x19\x86\x15\xd4\x65\x6e\xa5\xc1\x7d\x8f\x64\x56\xce\x66\xf2\x65\x20\x18\x56\x3e\x3e\x32\xf8\xb9\x2a\x0f\xc7\xb2\xb8\xda\xa2\x53\x26\x00\x54\x2d\xbc\x5b\x2d\x5e\xfc\x55\x99\x38\x42\x90\xc4\x1d\x34\xaf\x6d\x1c\x74\x1a\x60\xc1\x94\x31\x11\xc1\x7d\xac\x3e\x17\x6a\x3b\x23\x39\x3f\xfe\x02\x1d\x84\x04\xd9\xee\x56\xff\x00\x2f\xfe\xcb\x64\x84\xb4\xb6\xfc\x42\xeb\xd5\x7b\x96\xcf\x6b\xd8\x4b\x1d\x18\x4b\x92\x70\x32\xde\xcb\x76\xb7\x1b\xad\x9b\x9a\xc8\x18\x09\xa5\x76\xc0\x0e\xcb\xa5\xee\x9a\x34\x65\x29\xaa\xfe\xfd\xa7\xcc\x8a\x47\x2c\x1c\x8c\x6e\x48\xe4\x12\x7b\x1d\x06\xd6\x05\xf8\x2b\xfc\x18\x6e\x5b\x3a\x24\x09\x58\xa0\xdd\x27\x04\x0d\x1d\x26\x5c\xb6\xab\x5c\xd6\xdc\xc0\xc7\xa0\x22\xa2\x59\x10\xa5\xed\xee\xf4\x52\xe6\x99\x3a\x4f\x45\xd6\xc7\x59\x6c\xf7\x11\x65\x05\x5b\x7b\x96\x17\x36\x39\x06\x3c\x4e\xcd\x42\x09\x62\xc0\xc6\x46\x11\x71\x7f\x2c\xb6\xae\x9e\xdf\xff\x5c\x75\x7f\xd2\xa1\xd5\xf5\x51\x65\x05\xd8\x68\xac\xaf\x2a\xa9\x8d\x6f\x6d\x4c\x0c\x1d\x7a\x5e\x8c\x0b\xaa\x3a\x8e\xad\x7c\xca\x63\xa9\x33\x73\x6e\x57\xc9\x2f\xa3\xfa\xe3\x27\x68\x61\x1d\x6b\x41\x7a\xd1\x2c\x79\x6a\xe0\xcf\xc5\xe6\xe9\x72\x7b\x98\xdc\xea\x24\x66\x98\xfd\x3a\x49\xa4\xb1\xad\x81\x1f\xc3\x29\x9a\x21\x2d\xb3\x46\x95\x59\xb1\x12\xf5\xbb\x93\x38\xee\x46\x68\x2b\xb1\x56\xb7\x8b\xc1\x4b\xe9\x57\x3f\x9d\x52\x49\x03\xdf\x76\x5c\x89\xee\x42\xd3\x38\xe6\x43\xaa\xc2\xc2\x99\xb2\xd7\xde\x16\xce\x8f\x4b\xac\x29\x4e\xfb\xb0\x1e\x85\x7a\xcf\x8a\x51\x14\xa4\x05\x61\x91\x3b\xff\x73\xde\x75\x4c\x66\xeb\xa3\x5a\x28\x82\xfb\xf9\xd7\x87\xed\x3f\xdc\xe9\xb4\x94\x0a\x15\x0e\xdb\x9d\xc6\x09\xcc\x5d\x2d\x6d\x7c\xfe\xfa\x4a\x00\xeb\xb9\xd2\x54\xfb\xdc\x82\xeb\x46\xdf\xa4\x18\x4b\x9d\x0f\xe5\xfb\xbe\x2f\xcd\x6a\xc5\x04\x06\x1b\x3f\xa7\x28\xce\x51\x83\xeb\xca\x6c\x83\xc4\x60\x26\xb8\xca\x33\xf5\x63\x79\x6a\x9a\xb2\xbb\x71\xc6\x90\xd8\xed\x5c\x03\xf5\x2b\x09\x24\xb0\x6b\xd6\x9b\xd5\x14\xbf\xad\xca\xc3\x08\xff\x36\xbe\x2c\x20\xa1\x4e\x2c\x09\xee\x84\x05\x3f\x0c\x89\x7a\x42\x0b\xea\x59\x3a\x7e\x8f\xf3\xa5\x78\x36\x28\x66\xe6\xe8\x2d\xe7\x75\xd1\x64\xcd\x44\x9a\x04\x42\x91\xa2\xce\xda\xfe\x23\xf4\x27\x0a\xb5\x41\x01\x94\x8f\xec\x88\xa1\xda\x01\x8a\x36\x8c\xed\xc4\x83\xba\xbd\x10\xa2\x30\x74\xd8\x02\xf5\xa3\x7e\x81\x0a\xb7\xca\xee\x60\x9a\xa2\xc6\xed\xcb\xb7\xe5\xc3\x66\xb5\x7f\x5d\x6f\xd7\xaf\x7f\x74\x01\x37\x30\x9a\xa4\x16\x20\x33\x36\xfe\x7d\xa9\xc0\xb2\xad\xbf\x8c\x9a\x1b\x9f\x47\xf5\x90\x08\x1b\x66\x78\x44\x89\xf5\x97\x9d\x37\x7d\x99\x7e\xd4\x44\xa8\xca\x77\xfb\xfc\xed\xe9\x66\xfd\xba\xbf\xfd\xf6\x74\xe3\x9d\xa3\xdb\xa3\xb6\x70\x6d\x4d\x36\x3c\x9d\xb6\xae\x3d\x03\xfd\x4a\x3e\x79\x55\xfe\x5e\x42\x6a\x78\xe4\x79\xe5\x58\x5f\xd8\x9b\xd8\x7f\x1b\x0f\xac\xdb\xa6\xa7\x0a\x7c\x87\xac\xa7\x8d\x00\x0f\x24\xc2\xc2\xc4\x07\x54\xe2\x0d\x3a\x97\x18\x7f\x38\x12\x18\xaf\xde\x89\x76\x17\x39\xef\x1f\x4f\x7f\x65\xfb\xa7\xb2\xbb\x14\x9e\x50\xdb\xe5\xd8\x3c\xed\x11\x14\x87\x3d\x86\xf5\x9f\xab\xfb\xc5\x53\xa7\xfc\x05\x5c\x09\xac\x50\xdd\x41\x55\x65\x03\x31\x66\x09\x22\x16\xf6\xbd\x12\x06\xb6\x27\xd9\x54\xe1\xcd\xc3\x95\xb9\x2a\x14\xc5\xfe\xc8\x76\xb7\x58\x0f\xb9\x3f\x20\x89\x40\xa0\xa3\xcb\x90\x87\xd5\xba\xdf\xb5\x8b\xfc\x19\xe2\x40\xc6\xde\xfe\xf0\x90\x15\x53\xf3\x0c\x09\x92\x1b\xf4\xa7\x3f\x94\x1f\xb6\x80\xd3\xab\x99\x5e\x13\xea\xee\x3f\xdc\x26\x05\xa4\x2f\x03\x5e\xc1\x6d\x81\x8a\x53\xdf\xe0\xd9\xdc\xec\x95\x55\x26\xf2\x17\x09\x34\x22\x72\x40\x89\x99\x88\xe6\x4b\x80\xc4\x26\x94\x48\x2c\x6c\x43\xba\xf6\xdd\x6f\x23\xd9\x8b\x12\x1d\x18\x46\x29\xf2\x07\x9f\x9f\x6e\x37\x77\xfb\xc7\xc5\x9f\xfb\xdd\x66\xf5\x75\xbd\xdb\xfa\x93\x99\x44\x0a\x36\xe0\xe4\x8f\xa1\x8b\x76\x90\x09\x84\xa5\xc8\x1c\x9d\xd6\xe5\xb8\xb4\x39\xbe\x07\x86\x84\x96\xe5\xff\x6d\xb7\xda\x36\xa5\x9f\x7e\x26\x8c\x68\xe8\x82\x9e\x17\xcb\x23\x9d\x7c\x49\xc8\x42\xdc\x16\xdf\xb2\x0f\xf8\x44\x27\x7a\xfc\x65\x11\x23\xcc\xca\xac\x0b\x3d\x0c\xf8\x0d\x4b\x4c\x04\x5e\xc5\xed\x00\x75\x73\xd1\x2e\x32\x71\xc0\x42\xd7\xea\xf4\x22\x7c\xb3\x3d\x01\x13\x53\x83\x78\x01\x2c\x84\x95\xc7\x32\x3f\x6f\xdf\xab\xec\x70\xbc\x15\xd5\xe1\x72\x70\x1a\x73\xa7\x17\xdf\xcc\xcb\xcf\xce\x15\x9d\x5c\x34\x66\x92\x88\x61\xfb\x75\xfd\xb8\xd9\x6e\x37\xcf\x4f\xfb\xdb\xe7\x57\xd4\x67\xd9\xee\x16\x77\xeb\xc4\xdf\xcc\x94\x01\x4a\x3b\x6d\xb3\xb7\x83\xd8\x3c\x0f\x77\x5a\x93\x26\x84\xce\x2b\x67\x8e\xe2\xbf\xc0\x0f\x17\xd6\x78\xf4\x0d\x9a\x45\xe3\x96\xe8\x59\x7e\xa4\x11\x91\x8c\xc0\x87\x44\x0b\x8b\x30\xf7\x5f\x2a\x54\x28\xe5\xd5\x69\x34\x55\xab\x1d\x3f\x43\x19\x24\x8a\xf7\x88\xd7\xdf\x3c\x71\xa9\x12\x16\x76\xf4\xba\x91\xc8\xa2\x1b\xa1\xa8\x09\xc3\xc1\x0b\x74\xb3\x78\x9e\x03\x94\x1a\x08\x04\xa8\xbe\x4e\xb9\xfe\x35\xa5\xf8\x18\x88\x00\xb3\xb5\x3b\x91\xe5\xf9\x44\x27\xc1\x40\x9a\x62\xfe\xbf\xa8\x1a\x38\x99\x59\xdb\x52\x37\xd2\xa8\xc4\x0a\x55\x0a\x4c\x62\x61\xac\x3f\x62\x8c\x61\xc2\x11\x65\xbc\x98\xac\x90\x39\x20\x1b\x6c\x14\x54\x0e\x7f\xbe\x0a\x82\x90\x20\xe9\xcc\xd6\x4b\xf6\x1b\xb7\x37\xaa\x20\x50\x80\x90\xd4\x53\xf1\x2e\xf2\x66\x1f\x06\x9d\x72\xa1\x0a\x08\xb5\xf4\x99\x2e\x9c\x2b\xb4\x65\x1d\x60\x69\x7b\x56\x53\x6c\xe6\xbf\xdc\xc9\xa8\x23\x94\xb5\xcb\xca\xd3\xb7\xc7\xe5\xfa\x75\xff\x7c\xbb\x7f\x79\x5d\x3f\x6e\xbe\x3d\xda\x59\xeb\xbf\x97\x42\x60\x1d\x2f\xc5\x07\xd0\xf1\xb4\x18\x4e\x32\x15\x44\xc4\x16\x1f\x40\x67\xcd\x4b\x55\x9a\x2c\xef\x99\x3d\x83\xc0\x7a\x78\x3f\x06\x1e\xe7\xd3\x21\xfe\xa4\x34\xc4\xae\x10\xd6\x78\xfe\x75\x12\x1d\x22\x53\x05\x91\xe4\xb8\xad\xb5\x0b\xc8\x16\x5c\x70\x3b\x94\x8e\x50\x41\x1c\xc6\x69\xec\x65\x56\x72\x71\xee\xfd\x3a\xfd\x00\x23\xb0\xe3\x65\x31\x57\x2f\xaf\xeb\x2e\x61\x56\x41\x9a\x6a\x14\x2c\xfe\x99\x15\xce\xcb\xa8\x5d\xdc\xba\xa3\x02\x82\x21\x70\x03\x57\x98\x4e\x53\xd5\x8f\xe2\x24\x44\xca\xbf\x29\x4f\x95\xaf\x6b\xab\x80\xa7\x1c\x8d\x80\xf1\xb4\xae\xa4\x69\xd5\x33\xc6\x78\x41\x15\x70\x69\xac\x72\xc1\xfb\x00\x2b\xe5\x8e\x89\x88\x18\xcb\xdb\x93\x0d\xd4\x05\x74\x57\x2d\x09\x4b\x7b\xa2\xda\xd3\xed\xee\x52\x46\x7b\x2e\x81\x8a\xfc\xc7\xc3\x04\xf7\x70\x88\x55\xcc\x80\x87\xdd\x69\x23\x01\xac\x57\xd4\xab\xad\xd6\xc6\x67\xd8\x42\x15\x48\x01\x4c\xf6\x0b\xc4\x2b\xe8\xbe\xbe\xe2\xcf\xab\x82\xd0\x42\x33\x9c\xca\xc3\x73\x01\xbd\x08\xa5\x0a\x14\x57\x08\x0d\xb0\xeb\x93\x87\xf3\x2c\x64\xf6\x65\x34\xfb\x94\xb1\xf1\xac\xb6\x72\xc1\xfe\xd3\x3a\x50\xd4\x72\x30\xab\x1f\xdd\xdf\x22\xd2\xc1\x4a\xae\x8a\x52\x5d\x54\xb9\x55\xa0\x63\x6b\xdf\xb2\x3a\xd5\x4d\x79\xb8\x01\x91\xb7\xb3\xe5\xff\xb1\xf1\xe0\xcf\x25\x94\xa1\x5d\xfe\xff\x8a\xd4\xde\x51\x89\x40\x05\x1a\x00\x4b\x80\x56\x48\xa2\xec\x6a\xb9\xcb\x73\xbb\x0b\x67\xa3\xae\xff\xb5\xab\xb0\xaf\x69\xbf\xbb\xa2\xa3\x0b\xaa\xb9\x8f\x58\x35\xf3\x6c\x1a\xff\x09\x6a\xd9\xec\x56\xdd\x0d\x9c\x7c\xdd\x6f\xea\xd5\xed\xc7\x84\x0b\xa8\xde\x50\x2c\x6a\x32\xb3\x21\xb2\x68\x47\x64\x72\x96\x47\x28\xbc\x40\xc9\x6b\xef\xc5\xa2\x02\x10\xd6\x11\x7b\x6f\x9f\xfe\xe3\xc3\xd2\x36\xa3\x36\x7a\x36\x84\x51\x01\xa8\xc0\x16\xb8\x2d\xa1\x25\xcf\x06\xe5\x24\x37\xc4\x04\x29\x75\x6a\x20\xb7\x0f\x5f\x6f\x6e\xcb\x6a\xda\xaf\x50\x81\x49\x81\xb8\xd4\xcd\x1a\x20\x6c\xd5\xd4\x2d\x56\x05\xc6\x30\xa7\x87\xfd\xcb\x13\x00\x3d\x21\x4d\x91\x20\xb6\xc4\x01\xa1\xb5\x6d\x29\x5f\xf8\x23\xf9\xc5\x98\x10\x16\x62\xa8\x97\xd5\x2f\xf4\xe5\xeb\xfd\x58\xc8\x6b\x7c\x7d\x84\xa4\x0a\xe3\xe8\x0f\xa8\x32\x73\xbe\x3a\xf9\xe6\x71\xf4\xd4\x7f\x23\x0d\x29\x36\xd6\x1e\x33\xdf\x53\x55\x84\xb2\x18\xed\xc5\xfb\x6a\xf9\xec\x73\x25\x54\x85\x18\xb7\x2d\x77\xdf\x9f\xf7\xab\x87\xc5\xe6\xd1\x4b\xcf\x75\x67\xd2\x29\x86\x38\xa2\xca\x9a\xf7\x03\x34\x99\x9a\x0f\x38\x15\x09\x43\x81\xd0\xe3\x63\x05\x1f\x59\x9e\xbd\x81\x9e\x0d\x63\xdb\x81\x0a\xc5\xcf\xed\x63\x5d\xc2\x8c\x9f\xb4\x22\xa1\xb0\x3d\xd7\xf6\xbd\x76\xfe\x47\xe3\x01\x91\x96\xd8\xde\x44\x1d\xd7\xf7\xaa\xfc\x59\x63\xae\x85\x78\xe1\x4d\xa1\xca\xaa\x02\xd5\x0c\x20\xc6\x8a\x30\x26\x99\xdb\x74\x35\xdc\x96\xd5\xc4\x5f\x81\xfe\xef\x78\x49\x1d\xbe\x69\x84\xc5\x94\x84\x03\x2b\xbe\x11\xdc\x65\xb8\x76\x91\x38\xb0\x50\x73\xbb\x18\x6c\x8a\x31\x32\x58\x91\x98\x91\xc8\xe3\xf2\x06\xe0\xff\xf6\x00\x0f\xa9\xeb\x54\x74\x4a\x25\xbd\xac\xdb\xf8\x1e\xc6\x49\xe0\xf9\x2e\x56\xd3\xc9\xd6\xd0\xc7\x83\x12\x6a\x7c\x67\xdd\xb2\x25\xc6\xbf\x24\x51\x4c\x48\xdf\xe0\xfa\x79\x61\xa7\xa9\x48\x62\x94\x97\x60\xfe\x0e\xe2\x58\x16\xf5\xa2\x3a\x9c\xe9\x64\x14\x4f\x92\xd0\xe1\x8a\x97\xc3\x55\xd8\x1f\x56\x24\x61\x1e\x48\x21\x50\xe3\xb8\x99\x7e\x11\xd7\x54\x75\x0c\xc3\x83\x14\xcd\xf7\xb2\x68\xf7\x96\x59\x8d\x2b\x45\x84\x8c\xb0\x28\xd8\xbf\xa8\xa5\xb9\x14\x22\x53\x44\x25\x02\x59\xc2\x99\x2a\x3b\x89\x33\xea\x6f\xb7\x0e\x08\x92\xe9\xb4\x05\x93\x79\xdc\xa8\x3f\x1a\x09\x2c\x9f\xdc\x55\x00\xc5\x5a\x95\xd8\x80\x19\x84\x8b\x8a\x68\x6e\xad\x64\xfa\xf2\xa1\x4b\x87\x2f\x6c\x3b\x26\xf1\x1a\xd1\xdc\x60\x66\xe6\xf4\xe0\x3a\xde\xe4\xe4\xf1\x40\x10\x89\x78\x88\xff\x73\xf9\xe7\x4d\x36\xe9\x01\xbb\x66\x8f\x22\x40\x89\xee\x44\x72\x46\xea\x2b\x8a\xb4\xb9\x0a\x16\x48\x00\xb6\xd0\x9c\x8e\x9f\x86\xf7\x8a\x06\x31\x47\xd2\xe3\xde\x58\x32\xec\xe4\x68\x4a\xb0\xdc\x6c\xdb\xdf\x75\x5f\x5f\x50\x94\x24\x1a\x65\xcb\xfe\xae\xff\xf3\xf7\x27\xa8\x6e\x45\x89\x89\xa5\xf4\x2d\x0c\xf5\x03\xb4\x25\xa0\xf4\x59\x58\x3b\xc4\xa0\xe8\x4f\x8d\xdd\x51\x3b\x6a\xe9\xbf\x88\x0a\x85\x4d\x7c\x87\x7b\xdc\x5b\xb6\xc8\x78\xf2\xd1\x30\x60\xd6\x1e\xa6\x41\x5b\x9a\x5c\x4c\x2e\x84\x45\xb1\x75\xad\xc9\x8a\xe6\x8a\x88\x6e\x37\x52\x61\x0e\xf2\x13\x17\x98\x1b\xf8\xf0\xbf\x83\xf1\x98\x45\x3e\x2c\xb5\xbb\xde\x8d\x68\xc4\x58\xa2\x4b\x51\x66\x18\x66\x6d\x79\x56\xfc\xf0\xfd\xac\xc9\xc2\x48\x63\x02\xd4\x65\x42\xed\xfa\xf2\x9a\xbd\xbd\x37\x2f\x42\xfb\x53\xc4\x89\xc4\xa8\x48\x1d\xca\x11\x52\x55\xd1\x58\x84\xae\xaa\x6b\x57\x27\xec\x05\x2f\xcf\x58\x5a\x69\x5f\x92\x17\xa4\x0d\xfd\xae\x44\x73\xb5\xdc\xa5\x68\xac\x38\xe6\xe8\xdb\xdd\xbf\x5e\x2a\xd8\xac\x9e\xc3\x1d\xd4\xcd\x3d\xe4\xc7\x2b\xae\xf6\x8a\xc6\x20\x11\x7e\xb1\x7e\xab\xa0\xc9\x86\x62\xbf\x8a\x26\xd4\xaa\x39\xed\xe5\xe9\x7c\x05\xa6\xa7\x68\x12\x0a\x9e\xfa\x1b\x6b\x2e\x11\x37\x8a\x26\x09\xc7\xa2\xdf\x5b\x99\x6b\x6f\x7d\xd5\x94\x55\x57\x4e\x55\xb4\x5d\x29\xc1\x96\xb0\xee\xd6\xfb\x76\x93\x5b\xef\xee\xd1\xc4\xae\xbb\xab\xa9\xd1\x31\xb8\x29\xe0\x2e\xc8\x1d\xe1\x31\x95\xbc\x73\x23\x58\xbc\x5d\x44\x1f\x94\x73\x8d\xd0\xad\x85\x2e\x91\xbf\x81\x54\x9b\x5e\x99\x03\xdf\x67\xe6\xc7\x4a\xe5\x23\xee\xff\x2e\x4f\x13\x5c\x89\xa2\x82\xf1\x30\x1d\x88\xdf\x81\xde\x95\xce\x03\xa1\x17\x37\x53\x54\xa6\x14\x0b\xae\xdf\x21\x7b\x10\xd9\xfa\xd7\xe8\xb6\x6a\xc2\xbc\x38\x14\xa2\x0a\xda\x45\xab\xbb\x4e\x1d\x72\xe4\xc4\xed\xda\x74\xbc\x12\x87\xe7\x23\x14\x4f\x80\xd4\xaf\xb1\x9c\x97\xa2\x10\x4b\x5c\xd1\x2d\x56\xa4\x8d\xdf\x2f\xdc\xcf\x14\x35\x41\xa4\xf9\x68\xfd\xfb\x56\x67\xc5\x1b\x82\x94\x2f\x42\x84\x59\x04\xb6\xa2\x26\x8e\x9c\x4c\xa2\x13\xa4\xf3\xe2\x8d\x33\x11\x41\x18\x04\x09\x1f\xba\xe1\x5e\x24\x1f\x61\x90\x24\xdc\xf3\x24\x3f\x44\x96\xb7\xe9\xfb\x1f\x80\x05\x39\x97\x4a\x8e\xbe\x3e\x0c\xd2\x14\x71\xa4\xf7\x50\x65\x28\xe1\x35\x56\xc0\x9a\x5f\x1a\xc3\x20\x15\x58\xc2\x5f\x14\x70\x28\xb3\xcf\xd6\xb8\x90\x84\x0c\x13\x83\x63\x59\xe6\x43\x64\x9b\xff\xc1\x44\xc7\x89\xab\x8e\x3d\x95\xcf\x66\xeb\x99\x2a\xfe\x38\x8d\x62\xc4\x5b\x60\xc1\xd0\x16\x7b\xad\x5b\xc2\xe6\xe9\x8f\xf5\x76\xf7\xfc\xba\xed\x46\x2a\x86\x79\xd7\xe2\x13\x0c\xb5\x0a\x29\x24\x89\xc5\x58\x3e\x0a\x3b\x75\xea\x11\xcb\x41\x85\x61\x44\x30\xef\xff\x2e\xda\x65\xaa\x5b\xd6\xc3\x90\x49\xd4\x47\x28\x15\x88\x62\xd0\x00\x51\x61\xc8\x05\x3e\xc3\x7f\x6d\xef\xbf\xad\x9e\x3d\xd0\x47\x85\xa1\x60\x88\x41\x7e\x5d\x6f\xd7\x8b\xd7\xd5\xfd\x7e\xf1\x74\xb3\xbf\x59\xff\xb1\x7e\x78\x7e\x79\x5c\x3f\xed\xfc\x05\x8d\xe3\xcd\x30\x0a\x2d\x9a\xb1\x5d\x5f\xb0\x69\xdb\xfd\xb4\x28\xb6\x15\xbd\xa6\x7c\x7b\xcb\xe1\x5e\xe4\xcd\xe0\xc5\x08\x23\x2d\xc1\x1a\xe2\x62\xcb\xcd\x27\xed\x61\x1c\x1a\xdc\x13\x17\xb2\xc6\x39\x3e\xba\xbf\x71\x6c\xa5\x70\x0a\xf8\xe9\x69\x12\x16\x88\x33\xbe\x6d\x31\xb7\xe6\xe3\xc7\xf2\x78\x09\xf5\x52\x61\x2c\xc0\x5a\xeb\xe5\x20\xbc\xca\xcb\x78\x44\x12\xe9\x54\xf7\x99\xf3\x54\x7e\xc5\x8f\x62\x21\xf6\xea\xbf\xaf\x37\xe8\x91\x71\xbb\x79\x7a\x5a\xff\xe5\x7f\x6b\x92\x28\x0c\x07\xbe\x15\x8e\xb5\x3a\x54\x5b\x99\x9c\x88\x13\xac\xbc\x7d\xc7\x0a\xcb\xdc\xc4\x4c\x14\xd8\x89\xe5\x8b\x60\x4b\x51\x77\xb3\x32\x01\x6b\x18\x64\x79\x8d\x7e\x9a\x60\x25\xbd\x1f\x12\x7a\xff\xee\xed\x51\xfc\x2c\xb2\xe2\x6d\xae\x66\xdb\x0e\xb4\x48\xf4\x6f\xdb\xa7\x8b\xd7\xea\x33\xb4\x5f\x17\xec\x85\x29\x05\x4c\xa8\x10\xf8\xbb\xa9\xb1\x6b\x83\xe8\x0e\x6c\x7b\xce\x61\x9f\x55\x98\x46\x31\xaa\x4d\xac\xca\xa2\x3e\x1d\x10\x66\x92\x0d\xb3\x5b\x3f\x0c\x2c\x83\x79\x8f\x4f\xce\xed\xa9\x9d\xe9\xd6\x05\xf8\x4f\x85\x5c\x1a\xec\x88\xde\x54\xa0\xdf\xaa\xed\x4f\x71\xdc\x96\x79\xe9\xd6\xf9\xff\x1a\xfe\x33\xe3\x01\x76\xe5\xef\xfe\xd4\x4a\xf2\xd0\x91\xb1\x6d\x07\x6e\xbe\x58\xfb\xe9\x5d\x4b\x27\x27\x95\xb1\x15\xb8\x43\xe0\xd1\xb9\x6e\x44\xde\x86\x91\x5f\xb3\x42\x7f\x87\x36\xb8\x98\xcc\x73\x15\x04\xa8\xea\xd4\xa6\x8c\xba\x12\xc6\x35\x1d\x47\x65\xb8\x50\x45\x32\x74\xf1\x4e\x1b\x2e\x39\x3c\x89\x3b\xa8\x99\x2d\xdc\x3c\x2e\x9e\xee\x17\xbb\xdd\xe2\xe9\xe5\xf5\xf9\xcf\xbf\xe8\xd3\xcd\xe2\x8f\xb5\x1f\x03\xc4\x60\xd6\x7b\x28\x35\xfc\x3a\x4e\x12\xe4\x41\xce\x15\x02\x07\x22\xba\xf4\xf8\xaf\xf2\x54\xd5\x90\x9b\x2f\x33\xc5\x6b\x15\x9a\xc4\x4a\xb2\xee\x7b\xdf\xf9\x5d\x65\x0d\x34\x47\x6f\xbc\xe1\x04\x93\xe5\xfa\x68\x5b\x15\xfd\x02\x62\x04\xa0\xf5\xdc\x12\xe0\x5b\x31\x68\xb1\xce\x2d\xec\x51\x10\xd9\xcc\xbd\xc6\x6d\xa3\x5e\x65\x48\x1b\x1c\xfd\xa4\x88\x84\x1c\x4b\x3e\x1f\x19\xfc\x0c\x9d\xae\x84\x8a\x88\x26\x88\x80\x7a\x28\xdf\x3a\x13\x95\xce\x14\x7b\x34\xdb\x22\x4a\x52\x62\xa3\x6c\x73\x2a\xf4\xb5\x46\xa8\x1b\x1c\x05\xb1\xb7\xc8\xd8\x14\xc7\x13\xb2\xc6\x3e\x65\x01\xaa\x28\x0a\x03\xe9\x40\xdc\xb7\x59\x21\xf2\x07\xab\xf7\x3a\x07\x73\x54\x51\xa4\x24\xed\x14\xc3\xb3\xb2\xf8\xd7\x49\xd8\x4e\xb4\x3f\xae\x0d\xa6\x04\x32\xd3\xf5\x5e\x95\x87\xe3\xa9\x01\xbd\x57\xa7\xaa\xeb\x4e\xa8\x88\x29\x43\x2d\x2d\x45\xff\x77\x29\x7d\xd4\xe1\x25\x1d\x67\x40\x1a\x2a\x8a\x09\x70\xd7\x1c\xc2\x06\xa0\x73\xa8\x99\xdc\xea\x58\x25\xa8\x61\x23\x3d\x05\x7e\xef\xbf\x32\xd1\x5a\xa9\xce\xb1\x6b\x00\x95\x50\x51\xca\x6d\xe1\x16\x45\x78\x9e\xcd\x4b\x2e\x0a\xb8\x0a\xae\x75\x9f\xf1\xdd\x57\x1b\x19\xb9\x3b\x85\x36\xba\x97\xab\x5b\x37\xb5\x22\x11\x5b\xf0\x97\x86\x1c\x59\xe2\x57\x42\xe6\x48\x98\x84\xf6\x66\x40\x4f\xf0\x13\xf5\x7a\x6e\x20\x9f\x78\x91\xa8\x48\x06\x0a\x37\xdd\x5b\x4c\x7a\xb0\x40\x3f\x30\x49\xec\xbf\x59\x06\x90\xb8\x75\x1a\x15\x4a\xb2\x29\xfd\x47\x45\x32\xb1\x4a\x50\x7f\x64\xf0\xb3\x83\xa4\xab\x48\xa6\x89\xb6\xcb\x6e\x95\xf9\xd7\x3b\xc2\x4c\xa3\x7d\x47\x4e\xc5\xcc\x46\x18\x29\x16\x63\x83\xc5\x96\x3e\x5e\xca\x7c\x0c\x94\x52\x91\x0e\x09\x77\x90\x74\x4c\x51\x6e\x40\xe4\xbb\xec\x30\x11\x80\x52\x91\x66\x1c\x85\x51\x90\x27\x36\xf6\x51\x55\x91\xd6\x56\xb0\xe8\x06\x0e\xa5\xaa\x84\xea\xa6\x20\x84\x06\x0b\x28\xfb\x36\x86\x76\x5b\xac\xb3\x32\xfa\xe4\xe1\x40\x6a\xc9\x1c\x05\xfc\x6a\xda\xa7\xd3\xc3\x9c\x54\x04\x5c\x31\x67\x67\x74\x14\x15\x0c\x91\x91\x93\x89\x01\x26\x24\x4e\x85\xae\xc2\xbe\x81\x7d\x59\x8f\x4e\x31\x75\x90\xd5\x46\x26\xd1\xc2\x2d\xca\x8f\xa2\x51\xef\x03\x8e\x99\x62\x41\x10\x79\x5d\x86\xcd\xea\xb9\x57\xeb\x50\x2c\xd0\x09\xb3\x0e\x63\xda\x93\x89\xae\x54\xa7\xdd\x07\x48\x1a\x60\x95\x64\x7f\xfc\x2c\xb1\x65\x6d\x9a\x93\xf6\x4a\x9c\x56\x42\x7d\x22\x8c\x30\xf9\x84\x56\x11\xe9\x9c\x15\x5f\x87\x5e\x78\x8a\x85\x51\x64\x84\x07\xb8\xec\xde\xb3\xfa\x15\xda\x45\x60\xca\x93\x69\x07\x6a\x9f\x37\x5b\xae\xf0\xaf\xa2\xf3\x23\x55\x2c\x34\x31\xb1\x11\x13\x4a\xe3\xac\x77\xf7\xe3\xb9\xc6\xa2\xd8\xa4\x88\x70\xe8\x42\x47\x16\x71\xc0\x8c\x73\xf5\xfc\xf0\xfc\xba\x5f\xbe\x3e\x7f\xf7\xc1\x28\x63\x81\x65\x6d\x2f\x8a\xa2\x3c\x15\x16\x0d\xf3\x1b\xa4\x97\x62\x8c\x58\x12\xb2\x6d\xbd\xa0\xe6\xfa\xdc\xde\xc3\x18\x4d\x2d\xb3\xc1\xb6\x3c\xbe\x5c\x76\x1b\x18\x73\xbc\x67\xd3\xae\xb3\xd9\xdf\xd0\xd1\x26\x3a\x21\x13\x37\x30\x26\x0c\xfd\x3d\x94\x28\xbc\x36\xda\x47\x99\xa9\x36\x83\x71\xcb\xf2\x5c\xc4\xc7\xe2\x08\xa4\x55\xea\x03\xf8\x1b\x96\xe7\xa3\xa8\xeb\x81\x39\x91\x1b\x95\x26\x44\x9a\xbe\xe4\x52\x5b\xcd\x97\x9b\x19\xfe\x99\xfb\x00\x0f\x38\x36\xec\x94\xff\xb9\xf3\xb2\xa6\xed\x40\xe9\xf1\xa8\x8b\x3c\x7f\x14\x98\x72\xa1\x86\x50\x37\x31\xb8\x49\x94\xb8\x82\x56\x67\x7d\x91\x2c\xfe\x87\x68\xf5\xf6\x84\xd6\x75\xfa\x66\xb1\x7b\xf1\x5f\x22\x02\xdb\xff\xde\x66\x87\xe3\xc8\x29\xad\x1b\x20\x00\x23\xb8\x87\x52\x89\xbc\x76\x0a\x45\xef\xd9\xb1\x3b\x0e\x04\xf3\x6b\xc7\x4d\x2c\x2f\x51\xa6\x83\xa7\x2a\xd3\xd0\x87\x57\x9b\xe2\x23\x6b\xc0\x22\xcf\xc7\xb7\x46\xa9\xd8\xf6\x0e\x2c\xff\x42\x57\xf0\xf6\xe5\x77\xf8\x22\xc5\x14\x58\xae\xe9\xb1\xfc\x09\x55\x9b\x0b\xcd\x6e\x4c\x63\x15\x3b\xc5\x34\x03\x24\x0e\xe0\x96\xb6\x85\xa6\xfd\xfd\x83\xdf\x0b\x81\xb5\xaf\x9c\x22\xf3\xc6\xb3\x04\xa8\xc4\xab\x7a\x74\xf0\x25\x64\x8e\xfb\xfb\x63\x62\x8d\x28\xeb\x2d\xfa\x99\x9f\xde\xd6\xbf\x1a\x27\x53\x36\x42\x50\x28\x66\x38\xc7\x9d\xe7\x09\x7e\xae\x8b\xa6\xef\x85\x7e\x0a\x01\x53\xcc\xc8\x04\x1b\xe3\x07\x0b\xe8\xb4\x66\x4f\xbf\xbd\x5d\x71\x00\x69\x10\x7b\x49\x9d\xe1\xcb\xe5\xa7\x5f\x4c\x22\x16\x38\xd7\x45\xe7\x5b\x3c\x3f\xe7\x63\x92\x5a\xf8\xaa\x3b\xfa\x6c\x9e\xfa\x3c\xcb\x0d\x09\x9d\xc8\xd8\x13\xfc\x6a\x7a\x69\x7a\x15\x87\xa9\x4d\x9c\x70\xff\x41\x25\x73\x5d\x5e\xc3\xb9\xba\x8f\x44\x51\x80\x9d\x67\x5b\xe4\x45\xf3\x7b\xef\x7e\x3a\x7b\x83\xe2\x28\x25\xf8\x4a\x0a\xd5\x9c\x44\x3e\x80\x8e\xb5\x87\x62\x15\xb9\x06\x82\x2b\x3f\x0e\x00\x4b\xaa\x5d\x23\x10\x9e\x6d\x85\x1c\x31\xc7\x19\xa8\x39\xaa\x98\x31\x2b\x9d\xe9\x55\x0b\x3b\x77\x80\x51\x02\x10\xb3\x94\x7b\xf7\x83\x07\x51\x37\xdb\xdd\x6a\xf4\x2b\x98\x21\xb8\x14\x60\x4e\x85\x95\x82\xae\x03\x18\xc7\xd4\x8a\xbc\x3c\x94\x6f\xab\x32\xcf\x61\x06\xd2\x3f\xbe\xda\x38\xa4\xd8\xf1\x45\xfb\x16\xc8\xc7\xd7\x1b\x87\xc6\x28\x0f\xc9\x3c\x15\xf5\xf7\xac\x79\xc7\x88\x69\x33\x16\x79\x56\x71\xac\x38\x8e\x34\x59\xa1\x97\x50\x77\x97\x12\xeb\x20\x72\x02\x3b\xb7\x00\xde\x16\x61\x22\x96\xa4\xe2\xd8\x50\x54\x7a\xec\x4b\x5d\xb7\x00\xae\xf6\x7d\x85\x4e\xa2\xe2\x24\x16\x98\x4c\xad\xbe\xfd\xdb\x7f\x5d\x62\x9c\x9c\x6f\x57\xee\x72\x4d\x87\xf1\x27\x53\x2a\xb5\x0b\xda\xac\x10\xd8\xa2\x17\x25\x5d\xe4\xb9\xed\x74\x8c\x7f\x61\x1a\xa6\xde\xdc\xf1\xa5\xec\xaf\x2f\x95\x0a\x01\x63\xdb\xa1\xec\xd1\x6c\xa2\x1e\x73\xc6\x30\x76\xc3\x10\xd9\x67\x1c\xbf\x2b\x19\xfb\xcf\xf2\x30\xd0\x1e\xc1\xf3\xf3\x56\xe4\xb9\x44\xa2\x0f\x8a\xa6\x59\x43\xa3\xd3\x68\x26\xf2\x76\x47\x74\x94\x57\x39\x78\x1e\x02\x8c\xb2\xda\xf4\xd9\x24\xc4\x8f\x65\x1c\xa4\xcc\xf5\x02\xca\xaa\xfd\x1e\xd4\x0d\x9f\x5f\xc3\x62\x29\x28\x56\x40\xb2\xfa\x41\x34\xb0\x9c\xf4\xab\x63\x95\x86\x18\x68\x77\x16\xcb\xbf\x45\x0e\xcc\x67\xdb\xf3\xef\xb4\xa1\xe0\x53\x31\xaf\xc8\x96\x8c\x17\x10\xa3\xa2\xd0\x01\x61\x50\xa2\x60\xb3\x7a\x9e\x95\xc1\x9b\xfc\x9a\x39\xf7\xe0\x41\xdb\xd2\x37\x98\x92\x80\x48\x91\x0e\x80\x1a\x65\xe9\xf5\x18\x55\x42\x12\x82\x75\xe6\x1e\xb8\x2a\xc8\xbd\xa8\xdf\xf7\xee\xcc\xdd\x38\x09\x18\xff\x5b\x63\x30\xac\xb5\xf6\x81\x71\x42\xc0\x22\x40\x6d\xed\xe8\x1f\x28\x33\xb6\x1f\x51\x64\x20\x37\xf2\x8f\xb6\x83\x84\x52\xae\x2c\x36\xb9\x68\x4e\x9e\xb8\xa7\x12\x9a\x18\xcc\x43\xca\x5c\xaf\xb2\x0a\xdf\xa5\xac\x78\x1b\x92\xe8\x54\x42\x95\x6d\xb8\x1c\x3b\xe7\x5a\x7f\x40\x47\x22\x1a\x34\x24\x87\x50\xa3\xd1\xe3\x75\xe3\xc3\xd0\xa0\x0a\xf2\x4f\xc8\x76\xe5\xb7\x7a\xac\x9f\xaa\x92\x90\xf1\x58\xb9\x7e\xee\x97\x31\xc8\xfc\xb3\xc9\x33\x2d\x00\x25\x51\x1a\x62\x5d\xc5\xc6\x47\xcb\xd3\xd9\x86\x48\xf3\xf7\x25\x52\x4c\x05\x9e\x33\xf6\x6c\x8c\xbf\xb6\x48\xc7\xd4\xfa\xe7\xab\x1f\xa0\x37\xc5\xb0\xf6\x91\xb0\x98\x21\xfe\x68\x71\xb3\x7a\x17\x59\x81\x22\x71\x13\x1e\xc6\x64\x4a\x77\x1f\x94\x44\xf7\x24\xb1\xe5\x79\x31\x29\x55\x24\x31\x4f\xf1\x1e\xe5\x6d\xb8\xb2\x1a\xc8\xb1\xf9\xe3\x32\x92\x0e\x75\x8a\xd9\x32\xe8\x8b\x1e\x58\x37\x7b\x13\x22\x90\xc3\x5f\xc0\xcf\xb1\xea\xe6\xe4\x1e\xa4\x89\x55\x81\x11\x52\x2a\xdb\x95\x53\x7d\xc1\x3a\x49\xb9\x91\xd4\x33\x2c\xd1\xfd\x4e\xbf\xc1\x3c\x19\x49\x25\x3c\x22\x88\x2c\x3d\x56\xd9\xdf\x70\x01\xff\x48\xb8\xb0\xd2\x5f\x15\x98\x61\x59\xc5\x1f\x55\x02\x37\xbc\x85\xd6\x13\x73\xca\xf1\x38\x11\x87\x3e\xef\xc3\x5f\x74\x19\x2b\x26\x22\x25\x91\x95\xe2\xc0\x7b\xf3\x07\x7a\xc2\x38\x07\xc5\x8e\x50\x75\xb5\xb9\xe2\x4e\xa2\x42\x26\xf9\x40\x66\x63\xdf\x40\xdd\xa7\xcf\x89\x8a\x02\x7c\x0f\xef\xc4\x01\x1e\xca\xb7\x4c\x4d\xba\x3f\x89\xe2\x80\x4d\x2d\xe8\x30\x6e\x89\x26\x90\x22\xc4\xe4\xfc\x35\xcb\x73\xa8\xa6\x1f\xd1\x21\x8d\x88\x17\x89\xdd\x67\xe5\x69\x2f\x7c\xff\xa5\x1b\xc2\x52\xdc\x0e\xb3\xba\x5d\x47\xd6\xbf\x8e\x59\xc7\xe1\x54\x89\xd6\x1c\x8b\xf7\x7b\x25\x8a\x57\xb4\x61\x9b\x5f\xd7\x13\x20\xd4\xcb\x22\x9d\x8e\xdb\x46\xa0\xa8\x7c\x1b\x13\xdc\x42\x7f\x36\x60\x01\x32\x72\x0f\xe2\x97\x17\x8b\xdc\x14\xdf\x21\xeb\x8e\x27\x71\x88\x2a\x31\xdb\xd5\xca\xff\xcd\x24\x36\x80\x5c\x18\xc8\xb3\xa1\x74\xee\xf8\xfb\x8d\xd2\x08\xde\x58\x3e\xfc\xf1\x3b\xe9\x5c\x95\x06\x46\xf3\xa0\x13\x54\xdd\x36\x17\xa8\xbf\x94\x50\x85\x46\xa2\xce\xe7\xd8\x73\x89\xda\x1d\xfe\x8b\x1f\x92\xc8\x78\x68\x8b\xd0\x5b\x34\x8e\x6f\x4d\x4a\x13\x1e\xc8\xae\x0f\xed\x81\x7e\x29\xd5\x4a\xf5\x88\x60\x5b\xad\xed\x4d\xb0\xfd\x4b\x97\x86\x14\xd0\x29\xf2\x4e\xe4\xe2\xd7\x19\x3b\x3f\x9f\x5d\x5a\xe4\xfc\x88\xad\xfb\x51\x17\xe0\xa5\x71\xa4\x91\x74\xe7\x20\x5e\x63\x01\x21\x95\xc6\xa0\x90\xdd\xf4\xf4\xf8\x99\xe2\x9b\x4a\x93\xc4\xc2\xaf\x45\x9e\x97\x3f\x3d\x54\xce\xcf\xb6\x34\x91\x14\xa3\xb9\x8d\x06\x5b\x82\x9c\xdd\x86\xd3\x94\x72\xac\x91\x3d\x0c\x65\x4b\x55\x9a\x32\x2b\xc3\xd1\x93\xab\xaf\x54\xfb\xd3\x34\xb1\x02\x28\x03\x8d\x03\x04\xd9\x8c\x9f\x61\x9a\x32\xe5\x1a\xb7\x37\xa0\x6c\xca\x3b\x19\x21\x53\xa4\x24\xed\x7d\xf6\x6f\x65\xb8\xfd\x51\x9d\xe0\xfb\xe8\xa1\xc0\x1b\xe3\x4c\x04\xd1\x4b\xe0\xf1\x7a\x3b\x72\x90\x89\xa6\x5c\x12\xe5\xde\x8b\xcd\xd3\x6a\xfd\xb4\xdb\xfc\xb1\xde\xbf\x3c\x3f\x3f\xec\x17\x37\x37\xaf\x93\xeb\x12\x41\xe8\x6d\xb0\x97\x27\x74\x7f\x98\x8b\x08\x53\x41\x63\x2c\x69\x69\xf8\x78\x44\x1c\xac\x8d\x78\x6d\xe9\x73\x7a\x8d\x22\x0a\xa4\xa7\x63\x3d\x95\x0d\xca\x37\x4e\xce\x27\x43\x82\xf5\x56\xfd\x2e\x8a\x11\x1c\x00\xb5\x92\x1d\x20\x2c\xcf\xa1\x78\x83\x2d\x72\x36\x1b\xd0\x57\x1e\xad\x4c\x03\x6f\x72\x87\x8a\xd3\x43\x5f\x09\x95\x4a\x6e\x2b\x4b\x35\x34\x6b\xef\xf5\xe7\x60\x01\x93\x5f\xd4\xe6\xd9\x5d\x35\x77\xb3\x7a\xb6\xa9\xee\xf8\xca\x74\x60\x19\xd4\xea\xbd\xac\xa1\xe7\xc3\xfa\xa3\x14\x34\x38\xd9\x4a\xd2\xfd\x31\x8c\xd1\x4d\x65\x77\xbf\x78\xfa\x8a\xa2\xec\xdd\xeb\xa8\x79\x2a\x6c\x13\xb3\xa7\x43\x9c\x7a\x41\xc0\xa1\xd8\x93\x4a\xb5\xb1\x65\xed\x3b\x0b\x9c\x9f\x10\x8f\x55\x0a\x34\x42\xe1\x4a\x65\xc5\xb8\x46\xcd\xf0\x14\x98\x41\x1a\x27\x06\x79\xbb\x93\x84\x97\x0a\x8e\x22\xeb\xee\x12\xa4\x06\x3a\x1a\xc1\x58\xa0\x5e\xa5\x00\x11\x2e\x5d\xd8\x74\x73\x0a\xab\x8b\x49\xfb\x3c\x35\xdc\x72\xae\x6e\x6c\xb9\xf7\xb2\x65\x9f\x1a\xce\x30\x9b\x6f\x7f\xc2\x0c\x40\x2b\x35\x5c\x61\xa9\x21\xab\x6b\xa7\x45\xde\x49\xc4\x7e\x9e\x18\xa6\x46\x85\x81\x25\xeb\xeb\x85\x9e\x20\xe5\x3e\x33\x8c\xb1\x1f\xe7\x41\xa2\x30\x63\x79\x10\x85\xf6\xb8\xae\xdf\x86\xb0\x3c\x90\x14\x59\xaf\x47\x71\x0e\xd8\xd8\x11\x4f\x71\xc2\x88\xf0\x62\xf8\xf3\xca\xb2\x7e\xfa\x72\x22\x35\xa6\x65\x42\xeb\xc7\xf2\x03\x2e\x36\xf4\x0e\xdb\xc9\x89\x16\x42\x79\xc4\x3c\x2e\x1b\xdb\x7e\xa3\xe3\x34\x10\x18\xcb\xb7\x1b\xfc\x56\x14\x59\x73\xc6\x05\xb7\x3b\x1c\x81\xd3\xdb\x52\x76\x35\x79\x85\x0e\x4c\xc4\x43\x6a\x05\xf4\xfd\xb2\x33\xd7\xb7\xe6\x61\x64\xd9\x8a\xa6\xac\x94\x2b\xf4\xae\x8c\x93\x0c\xf5\x0d\x5a\x1e\x26\x1a\x83\x71\x27\xf9\xf1\xb0\xdc\xef\xd6\x8b\x47\xff\x3d\x11\x65\x10\xf5\x6c\xe2\x36\x30\x1d\x83\x97\x78\x14\xca\x58\x79\xfe\x4f\x7b\xbf\x55\xb3\x42\x07\x9e\xd1\x3d\x8b\xa2\x30\x74\x60\x1c\xab\x1d\xb3\xfd\x91\x8d\x35\x24\xda\x31\xd2\x36\x01\xbd\x5e\x4a\x76\x28\x2b\x9d\x61\x67\xeb\x9f\x25\x1c\x3c\x62\x3a\xf4\x76\x0b\xcf\xc6\x5c\x18\x6d\xa6\xe3\x5d\x97\x47\x5a\xe2\xf8\xc7\xc7\xdf\xed\x99\x9c\x11\x8a\xe2\xce\xca\x62\xae\x47\x6f\x2b\x67\x84\xe1\xd4\xd2\xe5\x8b\x38\x97\xa7\x3e\xc8\xfb\x9f\x88\xf7\x09\x5e\xc4\x27\x55\x06\xce\xa2\x40\xdb\x44\x17\x55\x96\x9b\x06\x26\x8b\x1c\x67\x42\x81\x0f\x3b\xe7\x6c\x5e\x15\x8f\x05\x55\x0e\x36\xe4\xba\xeb\xea\xc7\xcc\xdb\xcc\x63\xc1\xf0\x5a\x57\xcf\xcf\xfb\xed\xfd\xe2\xd5\x77\x74\x79\x0c\xd6\x85\x4d\x42\xb3\xa9\xb7\xd0\x34\x79\x3f\x47\x53\x62\x01\x25\x6f\xd0\x2c\xb3\xfc\x4a\x4b\x81\xa7\xa9\xb0\xa0\xd8\xfa\x21\x2b\x7e\x80\x9e\xb1\xa2\x53\x9c\xd3\x48\x33\x1b\x68\x57\x96\xaf\xd0\xe3\x3c\xb8\x88\x0c\x02\x74\x71\x99\xf1\x21\xc3\x55\xe0\x33\x17\xc0\x10\x0d\xf5\xaf\x13\x54\x67\x0b\x43\x1f\x21\xcc\x26\xc3\x25\x55\x88\x44\x7f\x2c\xf5\x29\x47\xfc\x70\xf7\x8a\x5f\x29\x91\xb8\x0f\x2a\xca\x11\x14\x5d\xc0\x4f\x97\x1c\x8c\x2b\x07\x93\xd1\x40\x31\xf4\xf6\xcb\xf1\x53\xd9\x3c\x9d\x2e\xdb\x57\x7e\xb4\xa1\x28\xfc\xbd\xcd\xde\x8a\x3f\xa0\x42\x9a\xde\xdc\xc4\xd3\xa9\xed\xf0\x79\x76\xcb\x6d\x59\x21\x32\xf0\xca\xb5\x6a\x67\x23\x81\x24\x98\xbc\x6c\x7c\xdc\xc5\x21\x25\x88\x60\x6b\xaa\xec\xed\x0d\x2a\xbb\x5f\x36\x03\xef\x4d\xc5\x41\xe9\xc0\x6e\x6f\x37\xa0\xfc\xe7\x4c\x12\x24\x91\x6f\x4d\xb7\x21\x6c\xdd\xdc\x82\x77\x64\x9d\xcc\x31\x93\x48\x7c\xcd\xa1\xd0\xdb\x8b\x88\x8c\x9b\x94\x23\xf7\x7e\x65\xed\x96\x66\x9a\xae\x9f\x61\x2c\xb8\x51\x56\x8d\xfa\x28\xce\xb7\x65\xe5\xfd\xf1\x67\xef\x82\x08\xb4\xc6\x50\xb5\x79\x83\x8e\xbc\xab\x04\x09\x0c\x97\x5d\x89\xd5\xf1\x83\xc6\x25\x24\x3f\x32\x49\x18\xb3\x59\x14\x54\x56\x4a\xa7\x3b\xc2\x2d\x40\x3c\xfb\x80\x69\x34\x29\x42\x19\x45\x4e\x4d\x68\x28\xd5\x38\x7e\xf2\x22\x54\xcc\x93\xef\x6e\x44\x33\x67\x27\xa0\x44\x94\xc4\x48\x1c\x42\xaa\x42\x1b\xb7\xda\x7e\x92\x1e\xb5\x89\x27\xe7\x8d\x00\x8c\xa3\x58\x2d\x4f\x59\x3e\x21\xb1\x08\x46\x12\xed\xbb\x3c\xb8\x06\x2f\x4f\xe7\x1b\x68\x50\x5a\x6b\x3a\xd2\xa4\x74\xe0\x25\x71\x3a\xe0\x23\xeb\x39\xbc\xfd\x15\x33\xcd\x28\xeb\x9d\x51\x2c\xf6\xf1\x7e\xb3\x9a\x85\x21\x08\xa6\x05\xce\x80\x43\x56\x34\x33\x72\x1a\xfd\x69\x63\x45\xb1\x15\xb2\x29\xea\xd3\x34\x5f\x15\xb1\x49\x22\xa4\x2a\x94\x8d\x68\x4a\x07\xca\x9b\x88\xd1\x2a\x91\x44\x04\xd5\x24\x97\xff\x5e\x8d\x69\x85\xe3\x6f\x4a\x78\x88\x49\x1c\x34\xef\xb8\x6a\x6e\x7c\x5c\x2b\xd2\x48\x47\x7d\xfb\x18\x13\x51\x1b\xa9\xee\x2a\x3b\x73\x6e\x01\x1c\x1b\x2d\xeb\x12\x74\xc1\x85\xf2\x08\x91\x25\x38\x3a\xfe\xb5\x75\x4c\x70\x48\xb0\x7b\xdd\x35\x16\xb1\xaa\xdf\xc7\x88\x42\x04\x41\x1a\xba\x00\x75\xd8\x69\x16\x82\x59\x70\x7f\x3b\x81\x06\xe8\x2f\x21\x84\x80\xd8\xe7\xf2\xdf\x21\x1b\x96\xdc\x85\x10\x12\x2b\x21\x16\x92\xe3\x24\xc9\x31\xb3\xdd\xb8\x6a\xc3\x85\x96\xdb\x15\x18\xd4\x1c\xa3\x71\x72\x6d\x42\x27\xb2\xe7\x89\x3c\x66\xde\x04\x6a\x5c\xab\x73\x83\xa5\x48\x64\xc7\x2d\x5c\xbd\x8b\xea\xad\xdf\x1c\x84\x22\x1c\x57\x15\x84\x1c\x0e\xc3\x13\xa1\x42\x19\x51\xef\xb2\x6d\xc9\xc7\xdd\x21\x66\xf0\x0d\x36\x80\x64\x91\x77\x70\xf5\x86\x09\x58\x41\x68\x96\x62\x9f\xbd\xdd\x79\x3a\x89\xae\xe9\x5d\x98\x7f\x8f\xb5\xb0\xa5\x23\xab\xce\x3a\xb0\x9d\x52\x42\xeb\xd8\x73\x37\x6c\x19\x68\xaa\xd5\xf1\x69\x1c\x23\x20\x20\x18\x62\x76\x36\x8b\xb7\xa7\x42\x0d\x98\xd9\x4a\x00\x09\x71\x55\x06\x9d\x39\x9a\xcc\xe9\x92\x4f\xff\x5f\xed\xff\xf9\x1f\xf6\xbf\xfe\x33\x8c\xe3\x02\xf0\x0e\xe2\xb8\x2d\x2b\x2f\xf4\xf8\x3f\xdd\xf1\x84\x10\xe3\xde\x4e\x6b\x9a\xf9\xc9\x8b\x23\x03\xae\x71\x32\xdd\x8d\x3c\x6e\x95\x0c\x04\x43\xbe\x96\xeb\x98\x7e\x0e\x73\x90\x24\xb5\x6b\x56\x01\xa0\x6f\xb3\xb7\xf7\xa6\x4d\x21\x4e\xb9\x9f\xe7\x92\xc8\x98\xb8\xdd\xa7\x63\x6d\xcd\x74\x36\x26\x27\x05\x8e\x25\xfc\x93\x73\x45\x59\x74\xa7\xa3\xce\x2f\xb4\x16\xa2\xd3\x1a\x9f\x3f\x47\x18\x0b\xb0\x0e\x42\xff\x77\x82\x1a\x45\x18\x76\xe5\xb7\xed\xcd\x97\x39\xee\xec\xe4\xa3\x09\x4d\x55\xd7\x4e\x7f\x85\x0f\x6b\x9f\xe1\x33\xc6\xc9\x6a\x2b\x43\x6e\x95\xaf\xdf\x70\xb5\x5d\x76\x39\x9e\x0c\x55\xca\x6d\x59\x56\xe8\x75\xf3\x3e\xd6\xd5\x54\x32\x4a\x04\x96\x42\x70\xd1\xb8\x6d\x63\xfc\xad\x38\x1c\xc7\x88\x39\xc9\x22\x9e\xb8\xf0\xfc\xd9\x91\x17\xbf\x0c\xcd\xfd\xfc\xb0\x98\x23\x0f\xf3\x0e\x1a\x5b\xdc\x1b\xf2\x89\x26\x97\xc7\x44\x80\xd5\x6b\xbb\xe4\xaf\xca\x36\x48\x2f\x2e\xfb\x6e\x32\x65\x29\xd6\xae\x5e\x5e\x57\xf3\xe5\xb6\xcb\x1c\x4d\x72\x1e\x63\x25\xfa\xa1\x7c\x7b\xf4\xee\x2f\xde\x72\x7b\x7c\x76\x19\x50\xa1\xb1\xcf\x5d\x65\xff\x39\x89\xc2\x77\x17\xa4\x24\x21\x24\xfe\xad\x7c\xbd\xdf\x75\x7f\x77\x94\xd1\xed\xfd\xd3\xbf\x69\xf7\x47\x11\x63\xcb\x2a\xab\x5f\x2a\xe8\xf6\x5a\x98\x6c\x9d\x52\x02\xc5\x1a\xd0\xd3\xe6\xf1\x76\x81\xe8\xde\xf5\xee\x7e\xff\xf2\xba\xde\xf7\xb6\x10\x4a\xaa\xd4\x92\x4c\xda\x49\xf7\x8e\xb4\xae\xa1\xa5\x94\x92\x4a\x2a\x5c\x14\xf6\x47\x71\x5e\xbd\x67\xea\xfa\xbb\xa5\x0d\xc1\x80\xb5\x7d\x13\x17\xaf\xab\x2b\xa3\x20\x49\xb0\x9b\xbf\xcc\x1a\x67\x71\x24\x3a\xc6\x8a\x84\x94\x23\x68\xb9\x4b\x2c\xb0\xd4\x72\x85\xfd\x27\x41\x5a\x0a\xca\xca\xaa\x68\x4c\x25\xdb\xdc\x28\x13\x11\x54\x37\x71\x50\x99\x97\x0a\x79\x37\xe5\xaf\xf3\xe4\x76\x19\x41\xb0\x20\xfc\x7f\xa7\xb2\x81\x45\xed\x53\x5a\x15\xd0\x08\xb5\xf2\x54\x29\x2b\x51\x6d\x0e\xc7\xf6\xcd\x9a\x54\xd1\x51\xd6\x11\x05\xbb\xc4\xf1\x08\x85\xfe\x86\x0a\x10\x5b\x9c\x24\xb3\x00\x1e\x45\x12\xdb\x53\x77\x69\x2e\x52\x26\x57\x65\x9e\x8b\x06\x2a\x91\x77\x3b\xdb\xe8\x52\x14\x35\x0c\x63\x88\x9b\x4c\x01\xca\x1d\xcd\x57\x11\x55\x18\x28\xcc\x34\xe4\xe9\x8c\xed\x26\x4b\x0e\x42\x8a\xf0\x3f\x5a\xca\x55\x18\x01\xc2\xc2\xff\xce\xf2\x5c\xec\xab\x09\x2b\x5d\x45\x81\xcd\xd1\xb5\xdb\xbe\xf6\x62\xd8\xad\x57\x91\x90\x9e\xfc\xea\x55\x0d\xba\x75\x64\xdd\xe3\xb6\x14\x0b\x00\x6b\x4d\x1d\x8b\xef\xba\x74\x96\x52\x8c\x70\x04\x12\xf9\x54\x36\x3b\xc0\x80\x68\xa9\x18\x01\xc4\xdc\xff\xc8\x9a\x4b\x5c\xac\x62\x8c\x04\xae\xe9\xbe\x03\x71\x98\xd6\x7b\xfa\x35\x45\x31\x16\x25\xb6\x4d\x9b\x5b\x51\xb4\xc7\x6c\x0e\xb6\xe5\xb7\x1f\xc5\x12\x4b\x3e\xf7\x5e\xe5\x97\x78\x59\x3f\xc1\x14\x53\x56\x8c\x38\xab\x1f\x4e\xc5\x79\xc4\xec\x53\x0c\x98\x2b\xb9\x7f\x94\x3f\xb0\x62\xb1\x3c\x5b\x4d\xa7\xd9\xb7\x48\xc5\x81\xd5\x2a\xcf\x6a\x54\x8a\xb6\xa1\xf1\x97\xe9\x18\x40\xf4\xd3\xd6\x33\x36\x54\x1c\x4a\x8b\x74\xf1\x99\xec\xed\x00\x46\xa7\x62\xa1\x06\xe2\xff\xce\x76\x71\xb0\x7d\xab\x24\x15\xf8\xbe\x59\xe2\x11\x0d\xea\xf3\x41\x7a\xf1\x1a\xa5\x12\x10\x58\x58\xfb\x33\x13\xdd\x65\xa5\x1c\xac\x89\xff\x6a\x40\xec\x50\xa9\x14\xde\xa8\x6a\x79\x3a\x3b\x4b\xed\xbe\xa2\xaf\x52\x45\xd1\x46\xe2\x52\xc6\x64\x14\xe2\xb8\xd1\x3c\x0e\x71\xe3\x32\xa7\x42\x2f\x4f\xd5\x95\xd5\x49\xf1\x54\x22\xa1\xc2\xed\xf0\xeb\x3c\x3b\xb4\x1b\xc0\x95\x5c\x4c\x71\x2e\x44\x38\x74\xb8\xba\x2d\x2b\x07\xf2\xc6\x57\x6a\x72\xaf\x05\x13\xe1\x50\x02\x6c\xae\x98\xa0\x44\x6a\x62\xd7\x6e\xc5\x08\xdb\x56\xb7\x26\x83\x64\x98\xe2\x2d\x6b\xa0\x68\xde\x91\x52\xe5\x6f\x8b\x8c\xb4\xbf\x6d\x2f\xed\xba\x99\x95\xc5\xa3\xf8\xd5\x61\x77\x46\xab\x99\x92\x8c\x3b\x3f\xd3\x0f\x10\xb9\xc5\x74\x4c\x7e\xb3\xe4\x86\x3a\xe8\xec\x5e\x0c\x93\x73\x7f\x5c\xc7\xf8\x4a\x59\x80\xdf\x68\xba\xb6\xeb\x9d\xa3\xf4\xb7\xd1\xf8\xaa\x2c\x14\x1c\x9b\x3e\x69\x55\x2a\x4a\x10\x2a\xf9\x28\x9a\xf7\x2f\xa3\x6f\x6d\x17\x17\xd2\xf5\x42\x1a\x58\xf9\x02\xfc\xe4\xdb\x95\xa1\xda\x0b\x3b\x3a\x89\x8b\xa1\xb7\xae\x52\x9a\x52\x5b\xe5\x11\x07\x78\xb5\xf1\xce\x67\x68\x75\xa5\x95\x49\x03\x5f\x7c\x6e\xd3\x95\x17\x71\xaa\x41\x0f\x20\x06\x0a\x48\x80\x7d\x95\x6a\xa0\x88\x3d\x1f\xad\x29\x88\x38\x16\xb0\x0e\xe8\x14\xdb\x26\xc4\x93\xe3\x09\x20\xa8\xb2\x72\x86\x03\xed\x0b\x77\x5b\x95\x87\xef\x02\x5d\x76\xba\x62\x95\x02\x49\xf0\x41\x15\x65\x93\x99\xf3\x70\x02\xfb\x35\x46\x07\x82\x59\xda\xb9\x7b\x1d\xbe\x67\xcd\xbb\xd5\x90\xb0\x14\x99\x01\xea\x72\x7e\x3d\xd7\x81\xb1\x1e\xfe\xbb\xd7\xe7\xa7\x55\x2e\xea\x3a\x53\x9f\xd5\x0d\x35\xa5\xc4\xea\xf2\x20\xb4\xc9\xff\x56\x4d\x19\x0f\xa2\x21\x98\x68\x51\x68\xab\x6f\x36\xa3\xb2\xa3\x74\x98\x30\x62\x0d\x6e\x7f\x5e\x94\xae\xa6\xfb\x4f\xaf\xe1\xf2\x0f\xe1\x30\xfe\x3b\x4c\x80\xef\x94\x40\x3e\xc3\x0c\x42\x5c\x47\xc4\x60\x91\x1c\x1b\x2d\xab\xf2\x70\x84\xa6\x57\x00\xbf\xa6\xeb\x95\x06\xa3\xb5\xbb\x3d\x89\xb6\xaf\x13\x96\xf8\x6c\xe1\xce\x07\x64\x3a\xa2\xdc\x93\xd6\xdb\xe9\xd4\xab\xb8\x8c\x7f\x6b\x94\x44\x48\xae\xf8\xfb\x87\xef\xf7\x3b\x60\xc2\x55\xe7\xa0\xbe\x38\x3f\x8b\xc7\xb9\xf8\x2f\xff\x45\x9a\x62\x1b\xed\xd7\x7c\xdf\x56\x47\x46\x5b\x3a\x8c\xf8\x75\x27\x0e\x7d\xc7\x5c\xb3\x30\x41\x79\xd2\x4e\xc9\xf0\x77\xfa\x20\xb3\x99\xf7\xf0\x7f\xbb\x3b\xc8\xb4\xf2\xf2\xe3\x4f\xf0\xcb\x36\x16\x5c\xd7\x51\x2f\x61\x36\xc1\xd6\xb1\xf2\xce\x23\xa0\xb7\x59\xf1\x96\x5b\x65\xd0\x41\xac\xa1\x93\x00\x12\xea\x2c\x1c\xb2\x06\xeb\x11\xdd\x74\x4d\x59\x1a\x75\x65\x85\x36\x4d\x56\xef\xdd\x26\xa3\x53\xa6\x95\x4b\x76\xbf\x67\xce\x46\x75\x3a\x81\x53\xa9\xb1\xda\xb9\x11\xc5\x60\xff\xd2\xa9\x96\x08\x4d\x40\xf8\xcd\xe7\xd3\x93\x07\x80\x22\x26\xeb\xc5\x3f\x4c\x26\xb4\xa0\x02\x27\xc9\x56\x18\xeb\x11\x3f\x57\x69\xd3\x22\x8a\x90\xcf\x9f\x97\xe5\x8f\xd3\xf1\xb5\x3c\x8b\xbc\x99\x20\xce\xb4\x24\x56\x33\xdd\xab\xb0\x43\xd5\x64\x26\x53\x23\xa4\xa7\x1f\xaa\x53\x67\xad\xde\xf1\x08\xfc\xc5\xaa\xd4\x5a\x36\xd5\x65\xd7\x0d\xd7\x4a\x6a\x4c\x33\x11\xfa\x3a\xd4\xbb\xd0\x4a\x0b\xf0\xee\x1e\x2e\x2c\xb7\x35\xc0\x07\xd1\xfe\xc9\xa7\x95\x4f\xe5\xd0\x9e\x52\x69\x88\x42\xdd\xab\x55\xdb\x98\xf6\x51\xfc\x42\xd6\xf4\x97\x49\xa1\xb5\xfb\x48\x8c\x53\x75\xb9\x78\xfa\xfa\xb4\xf6\x09\x93\x36\x21\xc1\x29\x63\x9d\x2d\xce\xa2\xfb\xbb\x24\x30\x6e\x79\xdf\xdf\x8e\xef\x17\x04\x41\x8a\x41\xa2\x13\x3f\x38\x3d\x8a\xfa\xc7\x95\xd4\x03\x02\x26\xb1\xdf\x2b\xcb\xaa\xb8\x15\x07\xd0\xed\xea\x32\xbf\xf1\x40\x10\x07\x78\x73\x9d\xbf\xe0\x16\xa1\xb0\x6e\xc7\x1a\x39\x8a\xfa\xf1\xd2\xfa\x56\x5b\x52\xf7\x65\x19\xee\xea\xcb\xf8\xe9\x1e\x00\x81\xb4\x38\x12\x57\xd1\x9a\x7c\x29\x21\xf6\x09\x54\xd9\xdb\x7b\x13\x8f\x8d\x50\x15\x90\xd4\x72\x09\x2a\xa4\xb1\x7f\xdb\x4e\xc0\xae\x40\x99\xc0\x34\xb5\x38\x1d\x9c\x36\x82\x7f\xcf\x80\x0a\xeb\x78\x85\xfd\xb1\xb2\xda\x17\xf0\xb3\x3b\x04\x01\x38\x0f\xf9\x07\x51\x37\xbb\x9f\xe5\xe2\x20\x45\x5d\x0b\x5d\x56\x57\x04\xa1\x80\x9a\x10\x15\xb9\x2c\x7f\xad\x7e\x3e\x14\xd9\x4d\x1f\x25\xbb\x41\x21\x00\x92\x9f\xfc\xc3\x5e\x1f\x8e\xd9\x54\x7d\x07\x22\x16\x60\x1b\x5d\xa0\x26\xe7\xbb\xe8\x7e\x56\x64\x88\x87\x71\xdd\x89\xba\x33\x90\xbc\xec\x1c\x00\x0b\xad\x3a\x15\xd2\x6a\x7e\x65\x87\xd3\xc1\x5a\x9f\x1e\xa0\x68\xd0\xf8\xd6\x27\xb6\xc0\xd2\xc4\x1a\x3c\x61\x38\xb0\x6d\x73\xc4\x29\xf8\x01\x62\x2e\x71\x29\xfb\xb6\xbd\xd9\x6f\x9e\xda\x64\xdd\x7f\x3a\x89\xac\xf8\xc8\xb1\x2a\x9b\x52\x75\x21\x37\x24\x9c\x61\x37\x7c\x0b\x95\xcc\xc4\x47\xbd\xac\xc4\xdf\x59\x7f\x54\x82\x17\x3e\xff\x56\x64\xff\x77\x82\xed\x11\xc3\xc0\x61\x75\x15\x04\x4b\x9c\x9d\x5d\x5e\xfe\xbc\x3d\x15\x6a\x24\x0b\x35\xd4\xf5\x02\x21\x68\xe8\x92\xa8\x8e\xea\xee\x03\xd1\xc9\xca\x09\x42\x47\xd2\xf4\x8a\xc5\x8e\x2d\xe6\x0e\x2a\x4e\x50\x48\xc6\x32\x26\xb0\x1a\x5d\x67\x6f\xe3\x90\x79\xba\xa7\x81\xd2\x01\x56\x17\x3d\x0d\xdd\x71\xb9\xbb\x73\x02\x43\xbc\x34\x4e\x3e\x8c\xae\x97\x42\xfd\xe8\x0c\x8d\x15\x28\x13\x63\x86\xb5\xcf\x8a\x0f\xa8\xea\x49\x00\x0f\x5a\x04\xde\x6a\x13\xf7\x97\x76\xf7\x1e\x2d\x38\x00\x69\x92\x78\x55\xb4\x49\x28\x0d\x20\x84\x37\x30\xdb\x95\x5a\x9c\x71\x71\x1b\xf7\x9c\x01\xb4\xc4\xe4\x5d\x0d\x89\x87\xe3\xd3\x18\x62\x2d\x52\x7f\x1d\x41\x35\xe5\x6e\x77\x4b\x86\x4b\x31\x18\x6a\xf9\xba\xab\xf5\xea\x49\x9c\x8f\xe7\x4c\x8b\x2b\x40\x45\x30\x42\xc7\x6e\xb7\x5d\x64\xd5\xba\xd0\xcd\x85\xd4\x0e\x18\x61\x88\x53\xc0\x69\xb7\xd5\x7a\x5d\xe8\x4b\x41\x1e\x13\x28\x82\xb1\x4d\xd5\x41\xaa\x0c\xe1\x1c\xe5\x75\x6c\xcb\xdb\x51\x38\xa7\xc9\xfb\x3f\xfc\xd7\x9f\x52\x59\xe6\xfe\x43\xf9\x76\x0b\xb0\xfe\x10\xea\x34\xb3\x4f\x19\x1a\x04\xd8\x0e\x86\xe2\xcd\x89\x8e\xf7\x37\xd8\x50\x9a\x5a\x92\xde\xd3\xd3\xee\xc6\xd7\xb7\x4c\x18\x5a\xa5\xc2\x2e\x66\xb5\x34\x64\xd0\x83\x2e\xc8\x3f\xfb\x8d\x21\x8b\x51\x94\xfd\x66\xbd\x22\xac\xa7\x98\xf9\xa3\x09\x60\xf6\xbc\x29\x4c\x59\x1d\x5e\x41\x9e\x26\x04\x4a\x13\x72\x6b\xc9\xb0\xcb\xd4\x4e\xa8\x5d\xf9\xb9\xdc\xa5\x32\xa1\x20\x98\x43\x09\xad\x5f\x5f\x17\xe3\xc5\xc2\x84\x10\xa7\xb6\x09\xef\xee\xc2\xfa\x57\xbb\x20\xce\xaf\x9a\x26\xe2\x0a\xeb\x8e\x0e\x56\x33\xe0\xf8\x99\x48\xdb\x9a\x80\xb2\xe4\x88\xb1\x5a\x84\x61\x89\x92\x56\xa0\xb3\x5d\x05\x27\x37\x9c\x69\x89\x5a\x16\x15\xa8\xea\x94\x35\xf7\x50\x95\xfe\x50\x22\x13\x04\x3c\xd7\xb9\xa8\xdf\x3b\xc7\x85\x1f\x30\x15\x11\x18\x5f\x71\xa2\x39\x22\x22\x8f\xb9\x38\x2f\x0a\x7d\x9b\x15\x59\xfd\xfe\xdf\x42\xfd\x38\x96\xbf\xb5\xa0\x71\xa7\x48\x83\x28\x74\xa2\x8b\x6d\x04\xde\x17\xa6\x4d\x4a\x18\x36\x0a\xc4\xf1\xf8\x5d\xd4\x8f\x62\x0a\xf7\x30\x3c\xb0\x3c\xa0\x75\x1b\x98\x9a\x1e\x2e\x67\x38\x15\xb8\x53\xf4\x5c\x8c\xe5\x40\xa6\xe0\x7a\x71\xc8\x70\xc3\xa0\xb7\x24\xdb\xa2\x42\x8b\x73\x1a\x73\x23\x44\x6a\x2d\x09\x50\xee\xca\x62\xbd\x3d\x22\xf3\x75\xf0\x90\x84\x90\x48\x29\x3e\x20\x6a\xee\x60\x99\xe6\xb3\xa5\x11\xff\x01\x48\x10\x02\xe3\x87\x7d\x2b\x7a\x4b\xda\x76\x61\xdc\x95\x16\xde\x35\x5b\x32\x35\x32\x0c\xd2\x81\x4e\x15\x16\xd7\xfd\x56\x66\x64\xa2\x90\xd5\x64\xc3\xa4\x97\xf2\x78\xca\x45\x35\x84\x44\x8e\x7f\x89\x8e\x75\x84\x56\x63\xab\xfb\xfd\xc3\xc3\x1f\xfb\xdb\xcd\xed\xc2\x3b\x1c\x2b\xa3\x53\x8e\x7b\xd4\x3e\x2b\xd4\x30\x90\x34\x5a\x28\xec\x79\x6c\x77\x8b\xd7\xdd\xe6\xe9\x6e\xff\xb2\x58\x6d\x6e\x37\x5b\x1f\xe8\x19\x88\x05\x5a\xe5\x34\x4e\x92\x1e\xa1\x03\x70\x3a\xec\x27\x5a\x61\xa6\x5d\xae\xac\xf4\x95\x95\x07\x5f\xb6\x53\xab\x82\xee\x7a\x8c\xa0\x44\xf5\xfe\xb0\x7a\xd3\xc0\xc1\x4d\x71\x1d\x04\x01\xb7\xc5\xdf\x3e\xcb\xdd\x95\x36\x9b\xa7\x01\x49\xbb\x61\x29\x47\x39\x0e\xbf\x97\x5d\x25\xb1\x0c\xef\xb3\x0e\x02\x21\x3b\x49\xea\x75\x6e\x56\xe5\xe1\x70\x2a\xb2\xe6\x3c\x3d\x8d\x1b\x4e\x28\xc5\x2e\xfe\xd1\xe2\x84\x9d\xcc\xcc\xef\x50\x46\xb3\x2f\x4a\x7b\x32\xdb\xe8\xf0\x31\xd2\x63\x56\x34\x5f\xa1\x67\xa8\x8d\x07\x87\x01\xd6\xd8\x5e\x5e\xd7\xdb\xc5\xc3\x7a\x8f\x4f\x65\xff\x7d\xbd\xfe\x1a\xfa\x5b\x10\x4a\x82\xd3\xa2\x71\xbf\xca\xfd\x39\x8a\x54\x60\x15\x69\x8f\xe2\x84\x02\x9e\x70\x38\xf6\xbc\x1c\x1d\x44\x9c\x58\xd1\x64\x71\xfc\x9e\x69\x8f\xff\xd6\x01\x23\x96\x39\x70\x0f\x45\x75\x7e\xcc\x8a\xec\x9f\x25\x50\x3a\x60\x94\x2a\x27\x7a\xb4\x77\x24\xd2\x3d\x7a\xfa\xd6\xfb\x83\xf8\xf5\x65\x7c\x17\x18\x4d\xb1\xe8\xef\x13\xf2\xbd\x4d\xf0\x7d\xd1\x4d\x07\x4c\x68\xa4\x74\x3c\x3d\x3c\xf8\x3f\xc5\x34\x88\xbc\xf2\xa4\x7d\xa3\x16\x15\x74\xf0\x9f\x36\x2a\x42\xeb\xa4\xbe\x23\x8e\x06\x2b\x51\xe8\xfa\x72\x6d\xc2\xbb\xf5\x2d\xd2\x6e\xa2\x25\xc4\x12\xe9\x5c\xb2\xb6\x55\xe5\xe9\x58\x5e\xa9\x65\xe9\x20\x11\xc0\x7d\x05\x35\xd3\x1e\x0f\x31\x9e\x2d\x69\xac\x71\x09\xf6\xb9\xbc\xf3\x80\xf1\x47\x39\xb7\x09\x64\x76\xc8\x9a\x75\xa1\xfb\x2d\x41\x07\x29\x80\xf1\xd2\x78\xcf\xaf\x73\xa0\x08\x1d\x70\xc9\x71\x45\xda\xc1\x6a\x10\xa3\xe8\x80\xab\x18\x5b\xbc\x88\x82\x9f\xc9\x5d\xe6\x27\xa3\x08\x25\x8a\x8a\x22\xb7\x64\x79\x1e\x92\xff\x74\x20\x98\xf1\xaa\x6d\xc8\x4f\x59\x8d\x0e\x26\x21\x96\x15\x70\x19\xe8\xc8\xb7\x59\x59\x60\xb9\xa7\x2f\xee\xe9\x40\x08\x8d\xe5\xf0\x23\x22\xaf\x50\xe1\xe0\xb9\xb8\x50\x7e\xd6\x81\x80\x08\xc3\xf0\x45\xfd\x0e\xa3\x4b\x93\xa1\xe6\xd2\x21\xa5\x3c\xfc\x73\xfc\x51\x19\x49\xaf\xb7\xf5\xe7\x8b\x5f\x5b\xe7\xef\x9f\x94\xd6\xeb\xf1\x71\xf3\xb4\x79\xfc\xf6\xb8\x5f\x3d\x3f\xed\x5e\x37\xcb\x6f\xbb\xcd\xf3\x93\xff\x42\x25\x00\xc3\x7b\xbc\x2b\x43\x7f\x2a\x1d\x28\x93\x60\x1a\x84\x6c\x7e\x6b\x8b\x34\xbc\xb3\xb6\x88\x45\xfc\xed\xd5\x01\xc1\xd7\xf7\x5d\x7c\x80\x6e\x6f\xd2\x0d\x7c\xf4\x05\x0d\x1d\x68\x9a\x20\x95\xef\xff\x7a\x64\x5a\x27\x21\x10\xd2\xff\x21\xe4\x7f\xfd\xc0\x50\x29\x33\x70\xa4\xd8\x75\x18\x12\x1d\xe8\x34\x41\xd0\xf2\xc3\xbf\xff\xdd\xfd\x49\x87\xca\xb1\x11\x96\xdf\xbe\x5d\x54\xb9\xc6\x73\x00\x18\xb1\xe6\xd1\xb5\x93\x68\x2d\xfe\x75\x82\x13\x4c\xee\x5b\x1b\xa8\x87\xae\xde\x63\x4d\x46\x2d\xef\xc8\x7f\xa5\x89\x82\x50\x78\x1b\xda\x85\xd6\x0b\x75\x51\x1c\xd7\x81\x69\xa3\xdf\x76\x7f\xbb\x26\x5b\xa5\x03\xa3\x02\x6c\x53\x7e\x94\x0d\xd4\x7f\x75\xef\x0d\x09\x28\x61\x08\x6d\xac\x84\x15\x51\xa9\x2f\xb9\x31\xc3\xe5\x88\x04\x4e\x42\xaa\x6e\x63\x00\x74\x7b\x3f\xdf\xe6\xe2\x6d\x84\xc0\x76\x43\x09\x11\x18\x4f\x21\x02\x7a\x57\xfe\xd8\x96\xb9\xbf\x2e\x42\xb8\x8e\xac\x02\xd8\x1b\xe4\xed\xb3\xfb\xc3\xcf\x05\x42\x09\xb5\x89\x85\x33\x85\x41\xc7\xbe\xac\x2c\x90\x30\xaa\xb2\xe3\x85\x84\xad\x26\x54\x48\x81\x48\xa5\xc7\xd5\x50\x41\x5e\x93\x30\xb2\xca\x99\x2b\xaf\x87\x5d\xf7\x47\x42\x08\x3c\x6e\x7a\xb0\x5a\x90\x50\xf3\x84\xfa\x0e\x98\xbe\x05\x98\x0d\x04\x34\x09\x41\x58\xb2\x19\xfe\xcc\x36\x10\x7c\xa9\xca\xff\x80\x6a\xc3\x8b\xf1\xf3\x21\x51\x9c\xa0\x12\x26\x5a\xd3\x5b\xc5\x80\x49\x51\x5c\x93\x88\xcb\xb0\x83\xb6\x56\xb0\x29\x9a\xfa\x4b\x0f\x20\xe9\xbf\x96\x51\x8d\x69\xdb\xf1\x54\xbf\x2f\xdb\x6f\x59\x54\x95\x98\xe7\x6f\x68\xc2\xa2\x00\x31\x18\xed\x0d\x5e\xf6\x01\xfc\xf8\x35\x27\x8c\x27\x88\xf3\x92\xa7\xf3\x4d\x25\xde\x26\x59\x8a\x26\x4c\x50\x14\xd4\x78\x28\xdf\xda\xfd\x0e\xe6\x1d\x94\x34\x61\xd2\x9a\x56\x3b\x9c\x32\xd6\x82\x5c\x27\xcf\x8d\x88\x8d\x4e\x6d\x1a\x97\xe7\x37\x22\xfb\xb4\xd8\xa8\x49\x12\xc7\x3e\x87\xdd\x82\xaa\xa0\x99\xfc\xae\x94\x5a\x27\x34\x57\x84\x68\xf7\xa7\xf1\xe5\x8b\x48\x7a\x5d\x8e\x0b\xdf\x36\x4d\x44\x92\xc4\xac\x73\xe2\x3b\x43\x65\xf5\x41\x2d\xfc\xca\x09\x82\x6a\x22\x15\xc7\x56\x83\x3c\x9d\xbf\x9f\x7e\x65\xe2\x51\xf4\x4c\x30\x4d\x54\x68\xad\x6f\xeb\x7b\x51\xdf\x94\x3f\x8b\xf6\xf5\xba\x6c\x4a\x8f\xbf\x57\xa5\x01\xe2\x13\x31\x52\x39\x96\xd5\xf4\xb2\x94\x88\xc0\x29\x25\xdf\x9d\xda\xf7\x71\x74\x54\x13\x96\x0c\x6b\x41\xb7\x00\xa3\x34\x46\x13\x4d\xa9\xab\xed\xa3\xed\x5d\x59\xd4\xde\x8e\x35\x8e\xc6\xef\xb2\xa6\x56\xb7\x45\x89\x06\xde\xca\x2a\x53\x22\xc7\x87\x56\x4f\xee\xa3\x4e\xe3\xd0\xa1\x9b\x95\x28\x4e\x35\x54\xa7\x62\x72\x33\xb5\x31\x68\x2d\xde\x79\x45\x5c\x4a\xab\x74\x5d\x69\x4d\x20\x96\x2c\xf6\x2f\xdf\xea\x12\xcc\xad\x09\x08\x93\xa4\x1d\x67\xab\x12\x55\x6f\x48\xa8\x89\xd1\x86\xf6\x52\x1d\xe3\x5f\x42\x03\xc2\xfd\xac\x41\x2c\x49\xfb\x66\xa2\x22\xd9\x6c\x91\x42\x53\xc2\x84\xb6\xa2\x55\x4d\x1b\xe8\xcd\x57\x48\x35\x25\x31\xc1\x1d\xaa\x2a\xf3\x79\x4e\x82\xa6\x34\x66\xa8\xe8\xe6\x4c\x04\xf6\xcf\xb7\xfb\xd5\xfd\xf3\x66\xe5\xbd\x03\x34\xa5\x89\x51\xce\x3a\xca\xa2\x18\x07\x57\x45\xa9\x0c\x23\x37\x1f\x17\xc7\xa3\xcb\x67\xb4\xdf\xb5\xdc\xa0\x48\x48\x8b\x80\xcf\xcb\x1a\x16\x3d\x5a\x0e\x87\xf7\x26\x2d\x7e\xb4\x26\xb8\x94\x56\x1f\xbe\x4a\xea\x0f\x18\x86\xa7\xb1\xd9\xc6\xf2\xbc\x6c\xd4\xee\xd7\x90\x60\xad\x29\x8b\x25\x2e\x5a\xa3\xfc\x6d\x7c\x4f\x58\x4a\x02\x87\x0b\xf3\xfc\xa7\xee\x08\x4d\xc4\x8c\x47\xd3\xb3\x79\x2e\x60\xf1\x06\x85\x3a\x4f\x1e\x1b\xe3\x1a\xdf\xc6\x7d\xbb\x36\xac\x44\xbb\x5c\xa3\x2e\xc4\xef\xb2\x80\xc9\x59\x84\xc1\x5f\x54\x01\x82\x18\xf1\xad\x77\x87\x62\x9d\x5a\xeb\x01\xe8\xe8\xa9\x33\xb4\x65\x3f\x18\x24\xd6\x46\x40\xbf\xc1\x4b\xf6\xd6\x66\xa8\x77\xfe\x44\x09\xb5\x37\x66\x27\x60\x10\x74\xd0\x94\x04\xc8\xdb\x43\x2f\x80\xac\xf6\x48\x80\xc9\x65\xa6\x29\x70\x1b\xdf\x0d\x73\x72\x4d\x53\x6d\xdd\x86\xd6\xab\xdd\xef\x73\x02\xca\xd3\x94\xf5\x4d\xe7\xdc\x3a\xf3\xf9\x63\x82\xe2\xcb\xea\xe1\xac\xf7\x65\xae\x51\x4a\x66\x68\x35\x30\xbe\x5a\x11\x70\x12\x0c\x44\x4f\x3d\x8c\xb3\x7e\xe9\xc8\x4e\x9a\x0a\x13\x3b\x51\x0a\xef\x85\xef\x04\x0d\x6f\xb3\x42\x74\x77\x41\xa5\x0a\x8b\xfd\xaf\x95\x1a\x6e\xc4\x54\x71\x8a\xca\xa3\xb2\xca\xf4\x1b\x3c\x95\x7a\x22\x69\xae\x69\x3b\xe3\x70\x6f\x10\x39\xa0\x5d\xd7\x5a\x54\xf9\x79\x99\x55\x7a\x5d\xe8\x41\x2e\xad\xa9\x0e\x4d\xe4\x0a\xc1\x5f\xe1\xdc\xf5\x60\x4e\x1d\x37\xa0\x7b\x5b\xb4\x92\xb4\x03\x87\xce\x79\x2c\xb9\x71\x20\x52\x5c\x03\x7c\x6e\xd1\xd5\x83\x67\xbd\x50\x26\x2b\x83\x09\x23\x4c\x5e\xf0\x55\x6c\x17\xb3\x1c\x1a\xf0\x30\x14\x4d\x4d\x42\x71\xc1\x5e\x89\x2a\x1b\xde\x92\x30\x08\xac\x72\xeb\xc9\x8b\x14\x41\x3d\x93\x61\xf8\xc1\xce\x4a\xe9\x5e\xd4\x77\x65\xe9\x58\x60\xfe\x3a\xc3\x40\x5b\xc9\x2b\x1f\xa3\x5b\xe9\x9d\x31\x14\x43\x87\x01\x0c\x9e\xa0\x7b\x78\x9f\x29\xe2\xe9\x90\x50\x22\xc3\x5e\x05\x41\xbb\x82\x41\x07\xe2\xd0\x21\x49\x2c\x08\xe8\x59\x35\xa7\x7a\x74\x79\x34\xb4\x56\x1d\x0f\xa5\xd7\x5d\xb2\x4b\x9a\x38\x3a\xff\xe4\xb9\xf0\x32\x0c\x09\xe7\xae\x84\xd0\x26\x3b\xdf\xb3\x42\x97\x3f\xc7\xd3\x35\x0c\x23\x46\xb9\x7b\xc9\xab\x4c\xd9\x7a\xfd\xf8\x52\xa3\x54\x62\x7f\xc2\x6e\x47\x63\xdb\x83\xc9\x35\x32\x27\x84\x60\x67\xd3\xe4\xd5\x08\x99\xe4\x58\x06\x5d\xbc\xfe\xe9\xca\x14\xfe\xfa\x62\x02\x2e\x07\xc6\xe8\x23\x7b\x6b\xd7\xde\x69\x58\x17\xc6\xc4\x9a\x14\x62\xce\x63\xef\xf5\x85\x7f\x9c\x0e\x13\xa6\x85\x2f\x36\x3c\x8a\x1f\xb0\x69\x6e\x45\xd6\xdd\xe3\xc4\x30\xea\x02\x82\xc5\x5b\x56\xbc\x5d\x54\xb5\x75\x98\x4a\x6b\x49\xd5\x55\x85\x31\xa9\x7c\x36\xbe\x7f\xd3\x14\xb5\xcf\x3f\x66\xb7\xb7\x30\x75\xce\x3d\x73\x88\xa3\x01\x3c\x49\x87\x3c\xb2\x64\xb4\x7a\x22\x2a\xa7\x43\x1e\x33\xb4\x1b\x90\xa7\x33\x54\x8b\x09\xf0\x78\x74\x8a\x84\x22\x09\xe9\x76\xb1\xdc\x8c\xa6\x0c\xe7\xae\xa7\x8e\xdc\xd5\x2f\x33\x68\x81\xd1\x7f\x5e\x3d\xf0\xcf\xff\xd3\x3f\x26\xc1\x34\x68\xb7\xa0\xbe\xa0\x14\x86\x6f\x0f\xe8\x50\x18\x6b\x1f\xea\x17\x87\x07\x38\x94\x45\x33\x8c\x56\xda\x6c\x3f\x48\x07\x0c\xf3\x6d\x7d\x9c\xd1\xb1\xf0\xf9\x6b\x28\x35\x31\xa9\x23\x14\xd8\x39\xe1\xa4\xe9\xfb\x19\xa1\x1c\xb6\xe2\xbf\x4f\x7f\x67\x56\x66\x78\xbc\xc3\x86\x9a\xd1\xd0\x11\xc6\xe8\xb3\x99\x4c\x07\x1d\x33\xec\x48\x1d\xc4\xaf\xa1\x92\x53\xf7\xd9\x24\x40\x2c\x92\x55\x74\x6f\xae\xa1\xc3\x27\x53\x44\xa7\x0c\xd3\x84\x3b\x51\x88\xa9\xd0\xfb\xec\xb2\x1a\x6a\x30\x58\x59\x2a\xab\xf3\xdf\xc2\x7f\x39\x98\x34\x71\xf1\x59\x1b\x49\xe6\x59\xdd\x38\x73\xca\xf1\x87\x4d\x00\x38\x4b\x84\x93\x50\xfa\x07\x1e\x86\x3a\x34\x3a\x65\xdc\x25\x18\xb7\x27\xf5\xc3\x3f\xa1\x28\xa2\x02\x2c\x5a\xea\x5b\xfb\x3c\xbe\x0c\x81\x1d\xa3\x53\x44\x51\x02\x3e\xd8\xb5\x4d\x7e\x8c\x22\x8f\xe2\x38\x69\x70\xea\x28\x52\x56\x2e\xa0\x7d\x67\x1e\x5d\xfc\xba\x28\xf4\x76\x00\xb1\x7b\x82\x9f\xb8\x75\xa9\x77\xd1\x45\x0a\x51\x64\x08\x3e\x3a\x5c\x87\x51\x2c\xb0\xab\xa0\xeb\x88\x25\x54\x5a\xe4\x64\x37\xbd\x22\x06\x14\x83\x03\xf4\xb9\x11\x39\x0d\xc7\x36\xe6\x3a\x8a\x13\x43\x69\xbf\x86\xb5\xe7\x5c\x37\xef\xf3\xaf\x7a\x94\xd0\x04\x2b\xcd\x03\x45\xba\x4f\x37\xb8\x28\x61\x11\x82\x33\x0f\xfb\x76\xc2\x7a\xf8\x94\x8e\x92\x24\x41\x78\x19\x5e\xc7\x5d\x59\xba\x18\xb3\x8b\x1e\x3e\x7f\x56\x51\xa2\x12\xef\xab\x8c\xf7\xce\x81\xbe\xdd\x51\x9e\x12\xdc\x1d\x6f\x44\x0e\xe5\xc8\x81\x55\x47\x5c\xe9\xc4\x95\x6d\x3a\x8b\x0b\xbf\x17\x46\x5c\x0b\x4c\xf9\xeb\xa6\x3c\x3a\x85\xac\x7e\xea\x47\x82\x6a\x7c\xba\xe8\x9d\xaf\xca\x01\x9f\x7a\xf2\xeb\x74\x1a\x78\xbf\x9a\xbe\xea\x30\xd1\x13\x9e\xd1\x11\x6c\x3f\x08\x08\x53\x39\x15\x7e\x35\x58\xd4\x37\xce\xbf\xcd\xff\x0a\x88\x02\xd7\xed\xba\x75\x51\x5a\x77\xdd\xc0\x12\x04\x76\xbc\x3e\x3f\xac\x6d\x4f\x78\xbf\x7a\x5d\x2f\x3a\x53\x7d\x1d\x81\x20\xd2\xc1\x0c\xb0\x49\x70\x5b\x56\xcf\xce\x43\xd8\x0d\x61\x01\x0b\x88\xbb\xca\xa7\x72\xde\x04\x4f\xb3\xa0\x5d\xb5\x90\x2f\xbb\x85\xf6\x2e\xdd\x64\x35\x2a\xce\x22\x23\xf1\xb5\x1c\xb4\xa8\x66\x0b\x20\x8c\x18\x6b\x3a\x57\xdb\x46\x03\x4a\xec\x5d\xb2\xd3\x34\xa3\x84\xa0\xa4\x3e\x6e\x81\x7b\xa7\x46\xe9\xaf\x97\x51\x41\x8c\x3b\xcb\xb6\xa9\xb2\x1f\x63\x12\xfc\xe4\x2b\x43\x2e\x43\xe6\x4c\x29\x9b\x17\x28\xda\xc0\x76\xb4\xc0\x8d\x1e\x05\x0b\x25\x75\xcb\xf2\x47\xf9\x03\x5c\x75\x6b\x8e\x36\xaa\x19\x23\x69\xdc\xde\x8c\xf7\xb2\xaa\x01\xd5\x17\x6c\xc1\x7b\xfc\xfd\x2c\xb4\xf4\xdd\x6e\xf6\x88\xea\xec\x80\xe8\xd7\x9c\xdd\xae\x2a\xee\x69\xc6\x98\x93\xb6\x47\xf5\x95\xb2\x9a\x7e\x59\x42\xd0\xaf\x78\x3f\xb2\x54\x9b\x5c\x22\x93\x31\xb2\xdb\x9b\xf7\xac\xd2\x7d\x8b\x4d\xb3\x58\xa8\xc4\x6a\xc7\x2f\x1e\xd6\x7f\x76\x7f\x95\x0a\x91\x24\x4b\x51\xfc\xa8\xca\xcc\xff\x39\x89\xc2\xd4\x93\x21\xe1\x70\xaa\x2a\xf1\x06\xb7\x48\xba\x69\x13\xb5\xf1\xcf\x4a\x52\xe9\x44\x0f\x1a\x91\x23\x7e\xcd\xc3\x64\x35\x4b\x03\x0a\x74\x40\x83\xb6\xa0\xa8\xf1\xe7\xb9\xb2\xfd\x36\xff\x76\x74\xab\xc4\xdc\x2d\xe2\x9a\x20\xb2\x4f\x63\xf9\x7d\x36\x64\x64\x82\x52\xe6\x80\x2f\xd9\x9b\x4f\x4a\x9c\x90\xd5\xf8\x66\xa9\x28\xc2\xb2\xc3\xd1\x42\xd1\xfd\x5f\xd3\x08\xfb\xec\x59\x6d\xb5\x2b\x46\x49\x3d\x53\xca\xf5\x81\x2a\xa1\xc1\x59\x64\x74\x9f\x04\x8b\x48\xc7\x02\xe7\xd8\x93\xde\x8d\xd0\x4e\x7b\x19\x1f\x71\x7b\x7a\xdf\x5f\x62\x3a\x4d\x11\x92\xfa\xb0\xfb\xeb\xae\xfb\x1b\x00\xe2\xf3\xd6\x77\x77\x68\x49\x7b\xbf\xd8\xad\xee\xf7\x64\xf7\xed\x75\xe7\x09\x2e\x9a\x41\x64\xb0\xed\xbe\xac\xca\xdb\xac\x1e\x18\xd3\x6a\x66\x42\xab\xad\x5e\xc0\xaf\xc6\x97\x93\x6b\x8b\x55\xd9\x76\xf1\x0c\x33\xa9\xc6\x95\xcd\x94\xd5\x4f\x51\x69\xe4\xdc\x95\xae\x08\xe3\x40\x2b\xe3\x27\x66\x44\xc0\xdc\x2b\xba\xa8\x40\x5c\x49\x16\xe2\x80\x44\x08\x1a\xb9\xcd\x7e\x81\x5e\x41\x96\x0f\x10\xa3\xd3\xa1\x12\xd0\x97\x64\xb3\x7a\x9e\xf5\x30\xd0\x71\x00\x56\x9c\xa2\x1a\x69\x2a\x8c\xe1\xb5\xc3\x59\x10\x07\xa0\x53\xe6\xa7\xf0\xc7\xea\xd4\x38\x88\xd3\x14\xdb\xae\x63\x12\x45\xf8\x66\x2c\xf4\x87\x28\x14\xb4\x8b\xe8\x1f\xa5\xfa\x9d\x16\x91\x8e\x29\x4d\x70\x1d\x13\xa3\x5f\x34\x9e\xbd\x7e\x68\x02\xdc\xd2\x19\x76\xd5\x19\x5c\xe3\x7f\xa2\x3d\xa2\x63\x2a\x53\x2c\xf8\x64\x75\x1b\xf3\x57\x75\xd7\x45\x43\x4f\xa3\x31\x4e\x70\x76\xaf\x89\x43\x95\x24\x12\xdb\x7d\x7f\x8b\x4a\xbf\xc2\x31\x17\xed\x05\x0d\x41\x78\x17\x9f\x30\xc2\xb7\xf0\xb3\x5f\x90\xf7\x6f\xa8\x2b\xde\xfb\x20\x35\x8e\x12\xe2\x6f\xe8\x52\xd4\x90\x67\xc5\x4c\x09\x28\x8e\x12\x1d\x76\x78\x2b\x67\xd0\x8e\x61\x8a\xca\x8e\xe2\x5a\xce\x15\x47\x52\x79\xc0\x6e\x47\x28\xf4\xd4\x9a\x4e\x65\x4a\xc7\x2c\xe0\xf8\x66\xbf\x6c\xf6\xeb\x9b\xcd\x6e\x1f\x76\x07\x62\x89\xeb\xd5\x21\x2b\xbe\x43\xd6\x83\xd4\xfc\xf1\x38\xd2\xb1\xe8\x44\x29\xdb\x9f\x5d\x5f\xc2\xa3\xdd\xd8\x24\x10\x28\x84\x63\x79\x8a\xb6\x12\x7c\xa9\x0f\xa9\xe3\x24\x24\xd8\xc1\x7f\x38\xe9\xd3\x61\x18\x8e\xc4\x69\x6a\xf5\xa5\xd6\xcd\xfb\xcb\xb9\x12\x87\xae\x66\x12\xa7\xca\xb8\x70\xb4\xd0\x03\x6e\x8a\x8e\x39\xa1\xc4\x51\x85\x6e\x4a\x75\x3a\x5c\x0d\x2e\xfc\x78\x25\x70\xce\xfe\xd4\x1e\x17\x30\x0d\xda\x7d\x2a\x13\x73\xb0\x37\xad\xb6\x24\x83\x97\xaa\x6c\xc3\x31\x1f\x2a\xc6\x82\xda\xb0\xfa\x60\x39\xe5\xcb\xd3\xb8\x3b\x19\x8b\x58\x47\xb6\x2b\xe8\xe2\x6e\x04\xed\x7e\x56\x25\x88\x45\x6c\x50\xb8\xe8\x58\x95\xbf\xce\x17\x40\x8e\xd9\x64\x72\x7c\x75\x92\x59\x31\x97\x37\x68\x5c\xa3\xb8\x77\x53\xb4\x3e\xa0\xfe\xd7\x29\x96\xa2\x00\x52\x56\xf7\x85\xcf\xcd\x6a\xf1\xe2\x38\xef\x53\x6c\xed\xe4\x87\x2a\x65\xbd\x1e\x1d\xd4\xe3\x42\x9f\x43\xc7\x4a\xa7\xe8\xd9\x85\x1e\xe8\x8b\xdd\xe6\xf9\x69\xbf\xdd\x2d\xbe\xae\xbf\xf4\xc7\xb5\xcd\x71\x8d\x79\x69\xba\x9f\x05\x2c\x06\x3b\x9f\x8b\x33\x5a\x07\xd4\x4f\xe5\x2b\x34\x6d\x2e\xfd\x8f\xd0\x0b\xb1\xa1\x91\x8e\xbc\x15\xff\xa1\xf6\x70\x83\x24\xa0\x04\x03\x7b\x54\x23\xfe\x9a\x79\x17\x50\x9d\x04\x31\x0b\x5c\x08\xbc\xcd\x1a\xb8\xe2\xff\xa8\x93\x40\x5a\x09\xd5\xa5\x68\x9a\x1c\x9e\xcd\x2e\x6b\x44\x31\x2a\xd4\x24\x81\x0a\xd4\x50\xc6\x66\x57\xfa\x92\xef\xe7\x01\x7c\x42\x82\x14\x58\x6f\xc2\xf6\x50\x0e\xb0\xd8\xfe\x4d\x73\xe4\x67\xfb\x2f\x8d\xfe\xd7\x7f\x94\x24\xce\x7b\xaf\xd0\x16\xda\x3c\x3f\xb7\xda\x81\x78\x63\x50\x03\xe2\xb5\x3d\xbf\xff\xd9\x84\x69\xae\xf1\xca\xd4\x0f\x5d\x76\x53\x24\x21\x86\x20\x44\xdd\xc6\xce\xce\x6d\x9f\xee\x57\x8b\x17\x3f\x82\x72\xea\x65\xde\xdc\xbc\xb1\xaf\x40\xbb\x0b\x4e\x53\x22\xff\x11\x61\x69\x74\x1a\xf4\x49\x35\xa3\xe5\x61\xf2\x83\xa9\x49\x31\xc6\xb0\x02\xfe\x7f\x4c\x44\x58\x75\x12\x46\x32\x0c\xbc\xfc\xde\x63\x56\xa0\xfb\xc5\x6c\x4f\x3d\x09\x55\x80\x12\x6e\x87\xac\x68\xbe\x67\xcd\xfb\xd4\xf3\x66\xbe\x06\x9e\x44\x09\xc7\xae\x57\x56\xdf\x54\xd9\x07\xfc\x7d\x76\xcb\xb2\xad\x76\x23\xce\xb8\x57\x15\xd4\x49\x94\x12\x6c\x47\x1d\xca\x22\x1b\xf0\x87\x07\xed\x9a\x24\x32\x1a\x45\x99\xef\xf2\x52\x8a\x7c\x57\x9e\xaa\xd1\x04\x62\x2c\x0c\x3d\x65\x7d\x1a\xcd\x0d\xea\x3e\x09\x4b\x02\x0c\xf5\x75\xb9\x1c\xbc\x19\xfe\xa0\xb1\xb1\x4f\x7b\x92\xae\x2a\xe9\x8e\xc5\x01\x51\x81\xcf\xc5\xea\x32\xff\x18\x55\xda\xa6\xc5\x9c\x24\x09\x78\x60\x0b\xb2\xd9\xdb\xdb\x21\x1b\x27\x8f\x49\x12\x47\x2c\x71\x25\x82\xe5\xd3\x6e\xf2\x33\x52\x97\xd3\xe3\x1e\x3a\x95\x37\x19\xdf\x67\x4e\x53\xec\x0c\x22\xca\x80\xec\x4d\xa1\xbe\x74\x47\x38\x92\x78\x76\x37\xf3\x01\xc5\x70\xff\x49\x04\x63\x08\x2d\x7e\x39\xc9\xaf\x70\xbe\x17\xf5\xfb\xee\x7c\x84\x1e\x03\xd1\x8d\x33\x76\x0a\x16\x58\xe7\x7e\x36\x9e\x82\xd4\xdd\x25\xc9\x68\xe4\x36\xc5\xf6\x25\x6e\x44\x3e\x24\x98\xe9\x44\x69\x65\x5c\xe5\xee\xe1\xe1\x8f\x3d\xe8\xac\xd9\xa7\xa3\x9e\x4f\xa2\x8c\x41\x05\x88\x8e\x99\x55\x89\xe3\xb1\x17\x1a\x5d\x5c\xb0\xea\x74\xa2\xa9\xc5\x8c\xe3\xb7\xbe\x54\x30\x54\x90\xd5\x89\x16\x86\xdb\x25\xc2\x96\xe0\x45\x56\x7d\xa2\x20\xe0\x3e\x04\x4c\x82\x6b\x47\xac\xf2\x53\x07\x12\x49\x20\xb1\x6a\x84\xa7\x1a\xaa\xbb\xaa\xfc\x59\xbf\x94\x65\x3e\xfe\x3e\x48\x05\x3e\x5c\x0f\x3b\xb2\xc0\xf4\xee\x16\x81\x12\x48\x24\xbe\xfd\xf6\x74\xb3\x79\xba\xdb\xaf\x9f\x6e\xf6\xbb\xcd\xe3\x7a\xbb\x5b\x3c\x76\xcb\x83\xa1\x31\x38\x99\xac\xcd\x8b\x7f\x33\xa7\x52\x1c\xe3\x5f\x6c\x20\xc6\xae\xce\x3d\xe4\x59\xe9\xbf\x2d\x0d\x02\x22\xfa\xed\xa6\x7d\xd7\xb3\xe2\xcd\x99\xfd\x8c\x66\x5d\x1a\x70\xab\x17\x7f\xb4\x08\x82\xbd\xd5\x62\xed\xce\xa3\xc2\xc8\x46\x28\xb2\x0d\x51\x1c\x23\x61\x7a\x0a\xc5\x7d\x09\xc8\xfd\xe6\xe5\x79\xa3\x27\x83\x88\x20\xca\xc9\x62\xaf\x72\x71\xd8\x4d\xf1\x63\x29\x11\xb6\x49\xb6\x7c\xd9\x2f\x76\xf7\xeb\xa7\xcd\xc2\xa3\x77\x52\x02\xd4\xf7\x2e\x77\xa2\xf8\x81\x13\x6c\x2d\xaa\x02\xf4\xa8\xfe\x92\x12\x63\xbb\xa0\xb5\x30\x1d\x8a\x6c\xf5\x9e\xe5\x17\xa2\x9b\xf3\x91\x81\x3b\x0b\xa5\x31\x61\x5d\x04\x77\x5b\x56\x8b\x0a\x9d\x87\x6d\xef\xc0\xb1\x4d\x26\x3f\x3e\x64\x16\xab\x05\xa7\xaa\x74\x06\x85\x93\x01\x89\x09\x1d\x1e\xc0\x4a\x39\xec\x20\xcf\xa7\x29\x75\x1a\x2a\xc5\x59\x6f\xa6\xbf\x2d\xc4\xb1\x7e\x2f\x9b\x4e\xe2\xe6\xf1\x94\x4f\xcb\xfc\x69\x44\x8d\xd0\xae\xe8\x64\xdd\x1d\xfd\x6d\x8b\x84\xa5\x9a\xa8\xaa\x7d\xe1\xe6\x70\xc2\x3a\x65\x91\xd1\x2e\xfe\x71\x45\x98\xae\xc8\x96\x32\x6e\x30\x36\x42\x47\xf6\xee\x8f\x22\xc1\x15\xee\x8f\x72\x46\x06\xba\x5f\xb8\xd3\x38\x48\x91\x23\x8a\x9a\x76\xcf\xa7\x6e\x46\xc5\x51\x1a\xb9\x8c\xce\xa5\x49\xdf\x0a\x6b\xfe\x89\x50\xbf\x45\xbb\x6c\x80\x7e\x81\xca\xa9\x42\x8e\x7f\x6e\x1c\x07\xd2\x7d\xba\xb3\x30\x72\xd7\x35\x1e\x67\x84\x88\x87\x9c\xe3\x5d\x79\x97\x7d\xfc\xde\x44\xf3\xb3\x7f\x2f\x04\xc3\x27\xb7\x32\x71\xb0\x4d\xcb\xe0\x77\xc2\x3a\xbb\x72\x09\x36\x1c\xbb\xd6\x5f\x4b\xd3\x30\xc4\x55\xf8\x88\x17\xdc\x3e\xc2\xdd\xf3\xfe\x67\x97\x8a\xa4\x3c\x4d\x10\x9e\x63\xdf\xe5\x45\xa1\xef\xa0\x99\xb8\xdb\xeb\x54\x24\x06\x01\x30\x7f\x3c\x2c\x6d\x77\x17\x9d\x1c\x27\xd3\x4b\x28\xf0\xcb\xcb\xe9\x78\x0d\x60\xeb\xc6\x4a\x22\x11\xb8\x7c\xc8\x7e\x61\x5b\x79\x3e\xc8\x4b\xa5\x8e\x50\x83\x7f\xe7\xa9\xc0\x36\xe1\x04\x3d\x71\x3a\xf9\x3c\x08\x4d\x55\x68\x17\xbe\xa3\xcb\xc4\xf4\x44\xf4\x5d\x23\x48\x41\x74\x98\x27\x47\x63\x76\xcb\x0d\x9d\x8e\x65\x01\x96\x17\x2d\xd4\xf8\x5b\x91\xa9\xb2\xf2\x9b\x70\xaa\x39\x45\x48\x66\xf3\x0e\x1d\xa4\x5d\xa7\x40\x41\xa0\xc6\x90\x90\x79\xf9\xb3\xfb\x6b\xc4\xb0\xfc\xdc\xbc\xc3\x5d\x95\x4d\x27\x23\x30\x8d\x09\x2d\x1c\xa0\x42\x5c\xc1\x40\x7b\xfa\xd3\xb2\x76\x6a\xa8\xd0\xc3\xbe\xce\x28\xe6\x48\x4d\x92\xe0\xab\x73\xb7\x5e\x93\x20\xe8\xfe\xca\x99\xb5\x53\xb7\x85\xe5\x9b\xea\xf4\x36\x89\xda\x78\xc0\x85\xe6\x1e\xb5\x04\x7a\x51\x38\x87\x88\xb9\x04\x9e\x93\x34\x40\xce\xca\xeb\xaf\xf5\xe2\x61\x87\x1a\x94\x39\x8c\xa5\xb6\x34\x27\x3c\x24\x56\x82\xa6\x78\x7b\xe8\xfb\xe0\x9c\x40\x1a\x38\x09\x7e\xdc\x54\x57\x65\xf5\xcf\xb4\x8d\x74\x1b\x00\xbb\x22\x5c\xbb\xdf\xcc\x79\x28\x68\x4e\x93\x20\xf6\x56\xa8\x95\x98\xa6\x4a\x9c\x26\xd6\xc4\xee\x20\x7e\xb9\x4a\xec\x58\x1b\x47\x73\x9a\x0a\xe3\x6d\x91\x44\x27\x27\xa4\x39\xe5\x04\x25\xfa\xb2\xfa\x01\xde\x44\xbe\x68\x1a\xe1\xa4\x93\x66\x7e\xa8\x22\xd8\x74\x6a\xa0\x6e\x7c\xad\xbc\x3b\x8f\x02\x6c\x2f\xd9\x76\x21\xf6\x59\xee\x41\xe0\x7e\x3f\xd8\x4a\x38\x35\xda\x84\xc3\xe6\x7e\x5d\x4f\x4b\x5c\x3c\x4c\x58\x0a\x63\x40\x78\x97\xf4\xf1\x10\x04\x52\x6b\xdb\xd0\xf4\x16\xe0\xe9\x74\x70\x1a\x3e\xdd\x71\x85\x6f\xe9\xb1\x2c\xf3\xef\xc3\x9d\x9b\x47\x01\xc3\xc8\xd8\x6a\x7d\x2d\x4e\x4d\x59\x65\x5a\xe8\x75\x3b\x77\xca\x4a\x8c\xbd\xbd\x34\x8f\x78\x8c\xe5\x6d\xf0\x8c\x0d\x84\x20\xf4\x98\x5f\x1e\x71\x6b\xd8\x7c\x33\xf9\xf9\x2c\x36\xa4\x13\xa2\x9d\x66\xe0\x7e\x8c\xa1\x11\x73\x71\xef\x0f\x98\x54\x75\x79\x12\xeb\xc4\x5a\xaa\x7f\x20\xd5\xf5\x70\xc8\xea\xba\xef\x9b\xf0\x24\x89\x2d\xec\x6c\x48\x22\xed\x8e\x69\x2c\x54\x63\x19\x14\x75\x5c\xf2\xb2\x9e\xa2\x0f\x78\x0a\xb6\x5f\xbe\x77\x37\x63\x2e\xe5\xe1\xa9\x89\x20\xec\x52\xb3\x95\xa8\x74\x7d\x03\x06\x3a\x06\x8f\xe6\x3c\x0a\x90\xc1\x63\x97\x95\x57\x68\x44\xd6\x11\x6f\x35\xe7\xcc\x20\x6d\xce\x07\xb0\x8b\x42\xdf\x8e\x40\x62\x93\xe9\xc5\x25\xc5\xde\x2e\x14\x1a\xbd\xd6\xdc\x9f\x45\x22\xb1\xd4\x87\x65\xdb\x17\xa8\x9c\xbf\x9e\x0d\x3e\xae\xa4\xda\x5c\xe8\x20\x85\xee\xb7\xf7\x45\xa9\xee\x7d\x10\x46\x75\x39\x7b\x23\xde\xfa\x4d\x9e\xcb\x28\xe2\xd2\x27\x38\x1f\x50\x9c\x00\xab\xc9\x56\xa0\xa3\x87\x4a\x8d\xaa\x26\x5c\xa7\x8c\xa8\xce\xcc\x15\xdf\x30\x5c\x69\x76\xe5\x42\xf5\x98\x4b\x0e\x31\x44\xc9\xc0\xa2\x70\xb3\x7a\x1e\x6a\x3d\x6b\x0e\xa9\xc0\x47\xbf\x7a\xbc\xbb\x23\x74\xeb\xfc\x34\xfe\x21\x3d\x81\x83\xb1\x4a\x21\x0f\xe5\xdb\x4b\xbb\x69\x58\x3a\xf0\x30\x73\xe1\x26\xe4\xb8\x68\x5a\x8f\xd0\xc9\xe4\x31\xdc\x32\xe5\x9c\x58\xfc\xac\xd1\x91\x1d\x2a\x82\x90\x73\x57\xbb\x7c\x12\x4d\xf6\x01\xaf\x70\x3c\x35\xe2\xb2\xf1\x23\x08\x63\x58\x03\xb0\x8c\x4c\x2b\x1b\xd6\xa7\x80\x82\xc4\x10\xd9\x85\xa9\x12\x6d\xc2\x35\x43\x49\xd7\x82\x70\x4b\xbf\xab\xf1\x1c\xed\xa2\x51\x0d\xdc\x72\xb5\x20\x90\x50\xb7\x2a\xb4\x73\xfe\x25\x17\xe3\x4a\x9a\xa0\x82\x0a\xe2\x9a\x55\xd5\x47\xef\xa4\x05\xdd\x00\x0d\x48\xd0\xfa\xbe\xfe\xfd\x7d\x16\xd4\x28\xe4\xcc\xce\x02\x34\x66\x22\x68\x11\xea\x24\x74\x26\x4c\xbb\x72\x28\xba\x3e\xad\x18\x8a\x28\xd6\x68\x62\xd9\xff\xc2\x3f\x15\xe4\x93\x5b\x1a\xe9\x50\x71\xdf\xec\x1d\x52\x16\x44\xa4\x6d\x2d\xa7\x80\x9f\x96\xf1\x33\x29\x9e\x08\x96\x5a\x47\x53\x84\xe4\x35\xfd\x72\x26\x98\x92\xac\xb3\x8f\xec\xfe\x68\x34\xca\xbd\xda\x7a\x6c\xd7\x66\x1b\xed\xce\x22\x8e\x01\xd9\xf2\xbd\x0b\xd2\x1c\x8c\x4f\x24\x71\x8a\x19\x01\xae\xdc\x55\x79\x98\x18\x67\x5c\x99\x67\x89\x0e\x50\x34\x11\x3b\x5c\x98\xba\xf4\x4e\x1b\xe3\x91\x69\x40\x31\x2a\x04\x4b\x35\xc5\x70\xf3\xb2\x6c\xe6\x07\x33\x1a\xb9\x37\xc5\x7a\x4e\xba\x54\x70\x28\x62\xe7\x87\x26\x16\x39\xef\x4e\x74\x7b\x2a\xf4\x4b\x2e\x1a\x53\x56\xbe\x8b\x23\x52\xc1\x50\x06\xa4\xc0\x37\x01\x37\xbf\xf7\x76\x2a\x4f\x4e\x64\x28\xee\x28\x7b\xf4\xec\x42\xfd\x82\x8b\x84\x47\x70\xa2\x11\x34\x79\x2a\xfc\xc6\xd8\xe9\x11\x6a\xc1\x65\xe2\xe1\xf0\xf7\x90\xe7\xbe\xfc\x26\x84\xb0\xc2\x77\xf7\xcf\xdf\xb6\xeb\xfd\xfa\xe6\x6e\xdd\x1d\x31\x81\xa0\x7e\xe2\x7d\xe6\x0c\xe4\xc6\xcb\x30\x45\x5d\x9e\xe5\xf3\xd3\xb7\x2d\xd9\x3f\x6c\x1e\x37\xbe\x0d\x24\x54\x60\x1d\x65\xef\x30\x63\x1b\x71\xbd\xb5\x50\x89\xa5\xf2\x3a\x14\x64\x0f\x81\xf5\x03\x34\xa3\x26\x72\x32\xb1\xd1\xe4\xa2\x21\xd4\xd6\xfa\xa4\xcd\x75\x1e\x4e\xea\xc7\xd8\xb1\x61\xfc\x13\xc1\x61\x84\x47\xfa\x94\xbf\x49\x63\xfc\x47\x79\x88\xb5\xa0\x7d\xdd\x66\x22\x76\x96\x8e\xfb\x3b\xb3\x2f\xf1\x85\xf3\x8d\x3f\x9d\x8e\x2c\xaf\xca\x55\xe7\x71\x9f\xb0\x3a\x77\x73\x2a\x5d\x5a\x98\x20\xd5\xbc\x97\x50\xdc\x36\x70\x38\x8a\x2b\x5d\x70\x61\x22\xed\xf9\x30\xbb\xf2\x84\xcc\xd6\xa2\x19\x74\x95\x85\x61\x01\x9a\x42\xd9\x6a\x8e\xcf\x13\xae\xd6\xfa\x47\xbf\x5d\x06\x54\x63\x71\x7d\x97\xbd\x9d\x44\xc1\x06\x9d\x4b\x19\xa4\x04\x1b\x36\x76\x75\xa1\xdd\x9f\x21\x0d\x5d\xa5\xf6\x92\xeb\xe0\xc6\x10\xca\xb1\xa8\x6f\x45\xf8\xbd\xb7\xee\x5e\x75\x5d\x69\x49\x94\xc2\x1e\xf9\xcb\xb7\xe5\xc3\x66\x85\x6a\x81\xdb\x3d\xd9\xbf\x2e\x76\x7e\xce\x4a\x1a\x5a\xf9\x47\xe9\x93\x7c\x2c\x6f\x7c\x2b\x94\x55\x8e\x5d\x95\xe5\x8f\x0c\xba\xc1\x31\xc1\xfa\xd4\xbb\xa8\x86\xa6\x62\xfe\x70\xc4\x25\xd6\xa0\xd0\x1c\xc8\x0a\xfb\x5f\xc9\x3a\x65\xa4\x85\x75\x88\x75\xeb\x8b\x65\x74\x62\xc4\x37\x5c\xfc\x25\x23\x96\xca\x7b\xf7\xf8\xaf\xdf\xf6\x29\x25\x23\x29\xc6\xbb\x7e\xd1\xca\xc6\xed\x2a\xc9\x22\xc5\x87\x68\xdf\xad\x8d\xde\xc7\x0b\xa8\x7f\xff\x25\x4b\x38\x46\x54\x6d\x38\xfa\x50\x76\x40\x5f\x19\x2b\x82\xe6\x84\x9b\xed\xf0\x39\x26\x24\xc5\x76\x20\x16\xbc\xc6\xfa\xe2\x5a\x26\x69\xa8\x9c\x66\xff\x3d\xd6\x90\x1d\x61\x66\xfe\xa5\x93\x49\x2a\x42\x17\xb8\x58\x7e\xf2\x4c\x36\x2d\x13\x35\xb0\x40\xf5\x33\xb6\x0d\x22\xda\xc7\x78\x0b\xdd\x33\x4b\x03\x16\x7a\x7e\x82\x0b\x35\xe6\xa0\xd0\x32\x35\x29\xd6\x36\xd6\x0f\x8b\xdf\xa8\xd1\x6b\xc9\x63\x16\x9a\xc1\x8d\x1c\x7a\xed\x6b\xc9\x93\x08\x81\x92\x56\x5d\xce\xde\xe9\x61\xad\x52\x72\x45\xc2\x5e\x43\xe3\xa5\xcc\x33\x87\xb5\x70\x71\x93\x94\x3c\x48\x85\xb7\x01\x5c\xe4\xb9\x7b\x85\xfd\xe7\xa5\x04\x8f\xda\xbe\x05\xd8\x4d\xad\x71\xb4\x54\xd4\x68\xe2\x25\x8a\x7e\x7a\xd1\x84\xcf\xdf\x51\x9d\xd8\xfb\xd9\xee\x17\xa2\x7e\xcf\xae\xe8\x67\x6b\xa9\x8d\x40\x2e\x38\x12\x4c\x45\x8e\xf4\x39\xaf\x2a\xe2\x86\x40\x28\x5d\x7f\xc8\xa1\x01\xb6\x4d\x25\x1a\x78\xeb\xee\x00\xc4\x0a\x57\x93\xbd\xb3\xe3\x47\x36\xc4\xb5\x65\x71\xf4\xf5\x2a\x20\x14\x41\x6c\xab\xff\x76\xfe\x43\x5a\x05\x89\x4d\x07\x8f\x99\x2a\x8f\xf5\x3e\xab\xf7\xe0\x44\x4b\xdd\x00\xa2\x22\x64\x86\x60\x2e\x29\xb2\xdc\x4a\x7d\xb5\x6f\xf0\x8b\x40\x21\x3c\x71\x80\xa7\xb2\xcf\x35\x14\x15\xd4\x9a\x87\x3c\xae\x56\xeb\xd7\x15\x0d\x3e\x9b\x0e\x2a\x0a\xac\x7b\xc5\xcf\x7e\x49\xb8\x81\x0f\xc8\xcb\x23\x54\xf5\xaa\x2b\xbe\xa9\x28\xa4\xd8\x21\x5a\xdc\xbe\xe2\x14\xfc\x07\x67\x66\x61\xe2\x02\xdf\x9b\x13\xe4\x64\xfc\x9c\x55\xa4\x62\x61\xb1\x12\x28\xbb\x89\xcd\x9d\xf1\xdd\x8a\x85\xc1\xa7\xfa\xad\xd6\x3d\x53\xfe\xa3\x0d\x68\x67\xd7\x25\x15\x03\xc5\xfe\x7c\x59\x38\xa5\xb7\x09\x4a\xad\xdd\x79\x69\xda\x77\x91\x77\xa2\x42\xcf\x24\xa1\xde\x07\x63\x42\x66\xd9\x45\xed\xf4\x7d\x18\x70\xde\xdc\xf1\x94\x05\xb8\xa9\x3a\x4d\x95\xf6\x75\xab\xed\x23\xd1\x9b\xa2\x81\x1e\xeb\xaa\xd2\x94\x9b\xb8\xdf\xc3\x6e\xb2\x5a\x9e\xaa\x1a\x2e\x6b\x16\x8a\x47\x56\x26\x70\x2b\x8e\x19\x8c\x82\x7e\xc5\x19\x49\x2d\x0f\xb6\xce\xde\x8a\xae\x0b\x31\x67\xdc\xa3\x15\x77\xed\x55\x5c\xff\x75\x25\x0e\xdd\x59\x1c\xf3\x62\x99\xe5\xb9\x2c\xfb\xee\x8a\x12\x01\xc3\xf8\x58\x64\xd5\x6d\x55\x1e\x5f\x4a\x6f\xa0\xae\x95\x60\x56\x8c\xf9\x54\xeb\x17\xa8\xd6\x5d\x6a\xa6\x44\x22\x02\x2b\x91\x8c\xc5\xb1\xc7\x4e\x0d\xc1\x0f\x90\x94\xe1\x4e\xd3\x6d\x4b\x74\xaa\xa4\x3a\x79\x2d\xa4\x73\xe2\x56\xed\xcd\xbc\xcd\xb3\xe3\xb1\x7f\x1e\x9a\x31\xeb\xa1\x24\x4f\x67\x94\x2c\x1b\xa8\x02\xfa\x21\x71\x84\x2c\x68\x9b\x5c\x2f\x0a\xbd\x2e\x74\xf9\xf3\x66\x7e\x81\x56\x9a\x73\x44\x4e\xec\x11\x22\x22\xff\xbe\x10\x81\x9f\x8e\x37\x40\xe8\x48\x77\xa2\x83\xc4\xfc\x13\x70\xaf\x32\x49\xca\xbd\x37\xec\x10\x14\x7c\x53\x16\xdd\x2d\x35\x5a\x08\x3d\xd0\x29\x2c\xce\xd3\x5a\xbd\x32\x26\x32\x5d\x01\xd6\xc3\xd4\xb2\xe2\x0d\xf1\xa7\xc5\x74\x2a\xe8\x80\x59\xae\xda\x1b\x34\x9b\x83\x13\x9f\x7d\xb0\x80\xe5\xe1\xcf\xf4\xb8\x19\x4d\xa2\x34\x70\xbf\x72\x89\x64\x97\xc9\xf9\x08\x24\x68\xb1\xfe\xd7\x5f\xcb\xe1\xfc\xd4\x04\xac\x09\xe2\x1b\x34\x48\x8a\x6d\x63\x4d\x5b\x24\xf1\x23\x28\x91\x81\x55\xc3\x46\x2a\x4f\xfb\x4a\x65\xc5\xdb\x28\x99\xd7\xa1\x22\xdc\x65\x0e\x03\x58\xcc\x28\x62\xd2\x11\x4d\x1d\x2c\xb2\xbd\x47\xf7\xa3\xe0\xd1\x0f\x49\x34\x86\xd6\xdf\x9d\x6e\x9e\xff\xb3\xa1\x9c\x7a\x83\x34\x57\xfc\xde\x42\x9e\x7b\x07\x07\x3f\x8e\x09\x45\x23\x7c\x0d\x3f\x60\x7c\x00\x28\x02\xbf\x94\x28\xd6\xed\x4c\x1e\x72\x72\xdc\x90\x38\x0e\x70\x96\x64\x85\xc2\xdc\xab\x82\x49\xab\x58\xc7\xdc\x16\x5a\x44\xa7\xae\xf5\x58\x6a\x3f\x03\x74\xac\x20\x71\x8f\xf7\xd5\xa3\x3c\x26\xbb\xbc\x4e\x22\x26\xa5\x67\x55\xb7\xf1\xcf\x3f\x99\x7f\x3a\x89\x12\x04\xbc\x76\x6f\xe3\xd7\xf3\x6a\x57\x2e\xc1\x71\x1d\x26\x05\x2f\x9d\xe8\x58\x13\x27\x17\x79\x3a\x1e\xbb\xaa\xa0\x4e\x20\x8a\x86\x85\x67\x91\x7b\xd6\x90\x1f\x91\x3a\x43\xcc\x1a\x0a\xed\xfd\xf7\xfc\x31\x1e\x30\xfc\xf4\xe3\x62\x37\x88\xbc\xb4\x48\x09\x56\x83\xb0\xfe\x66\xcd\xa9\xd1\x92\xe0\x37\xdb\xe9\x7c\xd6\xd2\x26\x65\xb8\x36\xef\x8f\x0e\x8d\x86\xb5\x36\x93\x5d\x31\xef\x6f\x3f\xc0\xb0\x5f\xf7\x08\x3a\x53\xe2\x7c\x2a\x1e\xb2\xe2\xc7\x67\x9b\x9a\x96\x11\xb5\xd1\x8d\x5d\xfe\x1d\x03\x62\x70\xa1\x8a\x0b\xac\xec\xbb\x2e\xbc\xed\x77\x5f\xdc\x65\x65\x52\xe2\xaa\x6e\x7b\x0d\x22\x6f\xf3\xac\x8b\x06\xab\x86\x38\xb0\xfd\x06\xdf\x90\x2c\xaf\x78\xb7\x68\x0d\x3c\xc0\xc0\xf6\xb6\x44\x98\x42\xcf\x02\x73\xc7\x0d\xa3\x88\x76\x02\x51\xe5\x67\x07\x18\xc1\x2c\xac\x1b\x90\x70\x2a\x1d\x2e\xda\xe1\xb2\xef\x44\x8d\xca\xdf\xe3\x5f\x05\x01\xa5\xd8\x6e\xd7\x55\x79\x5c\x14\xea\xbd\x9c\x45\xe2\x41\x10\x19\xac\x81\x8b\x53\xf3\x5e\x56\xed\x36\xec\xbd\x01\x11\xf4\x67\x79\x5c\x64\x2c\x98\xe0\x3f\x0a\xca\xea\xb0\xdf\xaf\xbf\x3f\x3f\xdc\x92\xe0\xcf\x71\xfe\x70\xed\xdf\x6b\xb9\xed\x04\xdd\x31\xbe\x1c\x42\x1d\x9e\xb1\xe8\x1b\x9d\xd7\xe1\xcf\x40\xb4\x42\xad\xa0\x0a\xb7\x9a\x37\xc8\xeb\x4e\x60\x4e\x03\x25\xd6\x41\x07\x95\x19\xca\x1c\x44\x61\xa1\xe5\xa3\x33\x50\x1e\x21\xcb\x4b\xbd\xff\xb0\xaa\x09\x9f\xc1\xd4\x80\x8a\x80\xb9\x70\xf8\x5b\x36\x35\xaa\xfd\xaf\xc1\x8d\x9f\x36\x15\x21\x0c\x09\x52\x56\xfc\x0b\x7b\xf3\xfa\xf2\x6d\xf2\x28\x23\x13\x61\x39\x44\x68\xfd\x04\x3f\x17\x59\x85\x5a\x0c\x33\x65\xbd\x8b\x50\x16\x18\x09\xf0\x85\xc6\xf2\x98\x6d\x1e\x63\x19\xc9\x67\xc1\xc0\x12\x4b\xb9\xfa\x03\xba\x59\x08\x31\xa7\x69\x64\x7b\x1f\xb5\xaa\x32\x79\xa5\xe8\x04\x31\x57\x98\x64\x38\x7d\xc1\x1b\x91\xe5\xe7\x9b\xec\x63\x52\x77\x87\x98\x1b\xeb\xd8\xee\xf6\xd5\x85\xf5\x2f\xff\x8d\x22\x94\x86\x58\x86\x51\xd8\xa1\x9d\x6e\xab\xf2\xb0\xcc\x85\xfa\xd1\x06\x56\x93\x6f\x48\x22\x21\xdc\xdd\x5f\xd7\xc8\x30\xb0\xcc\xee\x49\x8b\x11\x52\xc6\x71\x73\x72\xb9\xe1\x4a\x5c\x5b\x72\x00\x29\x24\x6e\x91\x7c\x96\xed\xe0\x36\x94\x2f\x4f\x4d\x87\x93\x9a\xbf\xdf\xed\xcf\x46\x51\x84\xd5\xb0\x04\x01\x3c\xa4\x58\xcf\xf5\xdd\xcf\x2b\xdf\xca\x1d\x46\xbb\xcd\xb7\x3a\x87\xe1\xa9\xac\xec\x3f\x7c\xad\xdc\x29\x45\x1c\x60\xd4\x65\x81\x70\x47\xd0\x99\x18\xfe\x30\x45\x12\xb4\x51\xca\x8a\x8f\xac\x99\x22\xcc\x41\x85\x5a\x58\x8b\xc9\xba\xa9\xca\x2b\x12\x0f\xa0\x52\x92\x3a\xd7\x78\x2b\x13\x3d\xa8\x64\x83\x86\x10\x75\x59\x8e\xb6\x10\xb0\x71\x2d\x20\x57\xf2\xdc\x14\x1a\x77\xd0\xf1\x09\x35\x28\x61\x7d\x13\xeb\x66\x51\xe8\x65\xe7\x02\x3e\xbe\x5b\xc0\x42\xc9\x7d\x0e\x2f\x2a\x3d\x30\xf0\xfa\x6d\x93\x12\x0c\x89\xb0\x90\x81\xd8\xbf\xfd\x11\xaa\x11\xfa\x1e\x0c\xd1\x98\xd2\xb7\xe1\x64\x56\xa8\x1e\xf1\xde\x0d\x08\xa9\x74\xb1\x10\x3e\xa6\xa5\x68\xd4\x3b\x5e\xb8\x9b\xc9\x84\xa6\x17\xff\x85\xb6\x3a\x03\x24\x45\x37\xd5\x8d\x54\x88\xab\x45\x45\xd1\x70\x92\x83\x99\x20\x76\xc0\x54\x57\x8b\xec\xb0\x94\x37\xf0\x81\x1c\x25\x3f\xce\x68\x61\x91\xe1\x8b\xe3\x31\x77\xea\xb5\xeb\x5f\x59\x53\xcf\x35\x21\x0c\x09\xa2\xd8\x56\xef\xcc\xa9\xd0\xfe\x0a\x27\xdf\x4d\x98\x65\x1c\xe1\xdd\x19\x26\x5a\xff\x35\x19\x27\x52\x6c\x78\xaf\x9f\xfe\xbb\xc7\xd7\x8e\x9f\xab\xa1\x41\x8a\x5b\xd2\xb6\x29\x8f\xff\xf2\x3f\x9a\x26\x14\xcb\x54\xab\xb2\x3e\x94\xa3\xad\x73\xfc\xe1\x30\x20\x42\x78\xae\xc4\xd7\xf3\x8c\x8f\xf3\xfc\x12\x68\x42\x26\x24\x8c\x84\x04\x16\x85\xb6\xae\x4d\x57\xea\x0f\x26\x4c\x53\xd5\xf9\x25\x7f\x73\xe4\xe9\x45\xa1\xbf\x15\x23\xb2\xb2\x9f\x0c\x26\x14\x14\x21\x2f\x4a\x38\x0c\xe4\xf2\x74\x7e\xea\xa9\xc5\x93\xb3\x47\x44\x61\x90\x2e\xba\xfb\xe4\xfa\x95\x3d\xb2\xc7\x44\xb1\xf5\x1b\xfc\x37\x14\xda\x9b\x42\x6a\x13\x39\x7f\xb5\x53\xa1\xca\x12\xcd\x5e\xb2\x0f\xdb\x10\x9d\xd4\x67\xed\xbc\xe3\x43\x9b\x70\x6d\x22\x4d\xd1\xc9\xeb\xee\xe1\xcf\xd5\x80\x32\x68\x18\x8b\x90\x88\x3d\x36\x58\xd2\x86\xa5\xa1\x0d\x46\x1c\x62\x77\xb9\xbc\x19\x29\x1e\x6a\xc3\x8c\x42\x25\x86\xbd\xb3\x9e\x9d\xb7\xc2\x9a\xcc\x94\x98\x50\xdb\x46\x6d\x6f\xee\xc2\x41\x69\xf0\x1d\xea\xee\x67\x2c\x74\x6c\x25\x3c\x16\x55\xe5\x20\x69\x9b\xfa\xa9\x6c\x6c\x6f\xe3\xb6\xac\x1c\x00\x7a\x7c\x63\x63\x61\xbc\x90\xe7\xea\xfe\xee\xdb\xf6\x66\x06\x85\x6d\x12\x1e\xea\xf6\xdc\xf8\x1c\xdb\x20\xe7\xcb\xb0\x21\x36\x17\x4c\x98\x94\x5a\xbb\x9f\x5f\x69\xea\x55\xec\x4c\x9a\x28\xfc\x89\xfb\x8e\x61\x58\xaa\x1f\x9d\x10\x54\xff\x75\xa9\x50\xa9\x2d\x65\x29\xf0\x8c\x78\xa4\x50\x7e\x08\x79\xe9\x7a\xe9\x3f\xa4\xac\x43\xf6\x1b\x34\xb7\x15\xc0\xee\x54\x35\x79\x97\xaa\x99\x54\x29\x9c\x6d\x7b\x9b\x63\x75\xae\x3f\xe3\x9b\x21\x62\xa3\x64\xdf\x3e\x5a\x68\x6d\x0d\x14\xfd\xe1\x24\xc0\xfa\xe2\x32\x6b\x7e\xc0\x08\x72\x6b\x84\x49\x4c\xd0\x33\x20\xeb\x81\x8e\x88\x91\x01\x61\xc6\x7b\x96\x8a\xba\x53\x16\xf8\x0e\xd9\xe4\xc2\x65\x10\x19\x17\x3b\xaf\x7f\x65\x75\xb3\x82\x7c\x92\x8d\x19\xc9\x39\xc6\x61\xcd\x50\x67\xa4\xb6\xb6\x71\xf9\x45\xa3\x76\x72\x8f\xa4\x32\xbe\x05\xb9\x12\xc7\x0b\x02\xad\x51\xa0\xd3\x1e\xac\x85\xd7\xbe\x1e\x95\xec\x8c\x26\x34\xa2\x43\xeb\xed\x6a\xab\xca\x0a\x36\xc5\xf2\x94\xff\xb8\x1e\x97\x18\xed\xba\x63\x6d\xd2\x5e\x68\xf8\xb5\x9c\xe2\x0d\x26\xef\xbb\x86\x10\xc1\xe4\x42\x66\xe3\x64\xd9\x80\x49\xa2\x4e\xb4\xac\x16\x39\xec\x91\x25\x36\x50\x8c\x32\x86\x24\x48\xaa\x7b\x3d\xd6\x03\xc1\x11\x63\x22\x81\xef\xa6\x50\x0d\xe2\xaf\x87\x9d\x7d\xeb\xbb\x6d\x32\xa8\x46\x11\xad\x31\x60\xe3\xa9\x1f\x1f\xea\x26\xfb\x98\xaf\xbb\x18\x03\x0c\x91\x98\xf2\x74\x7e\xc9\x07\xc0\x9c\xf1\x1b\x61\x0c\x47\x76\xa1\x97\xd1\x82\xa3\x45\xf9\xdc\xc2\x78\xfe\x43\x10\xb0\xce\x0a\xd1\x1f\x24\xdd\xb1\x58\xcb\x5e\xee\x4b\x9f\x54\xb3\x6d\xda\x1d\x66\x0e\x7d\x07\x41\x90\x28\x4c\xb3\xde\xb2\x0f\x58\x37\xef\xbf\x46\xca\x44\x10\x04\xa9\x44\x3a\x8c\x33\x97\xc5\x7d\x71\xbc\x28\xba\x07\x08\x01\xd1\xd6\x0f\x75\xa1\xf5\x50\xef\x62\x12\x9f\xff\xd7\xe5\x5f\xdd\x3f\x97\x4c\x1f\x08\x68\x12\x62\xd6\x8f\x73\x7d\xa0\x34\xe9\x0f\x73\xcb\x5f\x73\xef\xec\xd4\xe2\xc1\x8d\x0a\x99\xc0\x7d\x67\x09\xcd\x73\x71\x2f\xea\xf7\x3f\x52\xea\xaf\x2f\x62\x41\x48\x7a\xb4\xb3\xeb\x4c\x5f\xb1\x9b\x87\x20\x4a\x43\xc2\x3a\xcc\x4d\x59\x4d\x94\xcc\x27\xf7\x36\x4a\x53\x91\x0e\xde\xc4\xac\xda\x8a\x5c\xdc\xc0\x8b\xa8\xc4\xa7\x1d\x56\x08\x22\x9e\x60\xfe\xe2\x52\x6d\xa7\x70\x6c\x13\x2a\x37\x84\xc5\x06\x9c\xee\xc6\x32\xab\x9a\xf7\xde\xce\xae\x3f\x0d\x93\x20\x3b\x6d\xc2\x2f\x23\x73\x8b\xdf\xfc\x7b\xf1\x86\x42\xc0\x34\xe3\xda\xb9\xeb\xed\x4a\x57\x42\xe9\x45\x5c\xcb\x1c\x97\xb4\xc9\x0f\xd0\xa9\xc0\x6e\xb6\x2a\x0f\xc7\x53\x03\x4f\xf0\xab\xb9\x83\x22\x18\x74\x85\x21\x88\x53\xeb\xd6\xf4\x91\x55\xcd\x49\xe4\x2e\x3f\x1e\xed\x8a\x10\x24\x3a\xd1\xa2\x37\xd1\xfa\x9a\x35\xcd\x79\xa1\x46\xca\xdf\xdd\x2f\x4e\xfd\x4f\x4e\x29\x63\xbd\x99\xe2\xf3\xcf\x02\xa5\x96\xc6\xcf\x34\x95\x14\x6b\x44\x8f\x59\x01\xf5\x73\xb1\x43\xfe\xc0\xf8\x2a\x52\x65\x51\xc8\x76\x4d\xb3\x2b\xfe\xef\xf2\xf1\xf1\x19\xb8\x4a\xbd\xd1\x54\x9b\x1f\x39\x94\x7b\x57\xd2\x9e\xfc\x24\x0e\x02\x79\xf6\x6e\x56\x5a\xea\xef\x15\x47\x5c\x08\x04\x33\xc2\x9a\x41\x7c\x88\x2a\x13\xc5\xf4\x6c\x42\x4b\xe3\xd0\xd1\x1d\x8b\x80\x10\x7f\x5f\x85\xe1\x3c\xf4\xcb\x05\xae\x7a\xb7\x03\x4b\xa0\x2b\x97\x23\x03\x9b\x5e\xd7\xd0\x6c\x21\xcf\x2f\x58\x86\x10\x48\x29\x30\x0c\xce\xca\x9f\x85\xff\x2a\x45\x53\xdc\x3c\x74\x25\xb2\x62\x2f\xf2\xbc\xb9\x9e\xfc\x43\xa0\x42\xab\x47\x6a\xc1\x67\xe8\x00\x3e\x27\x99\x07\x81\x4a\xad\x09\x5f\x6f\x6a\xf2\xff\xdb\xcd\xc4\x9d\x59\xb3\xc0\xca\x8c\xb7\x21\x58\x27\x92\x70\x5b\x56\x73\xef\x9a\x96\x01\xb6\xed\x7f\xc0\x79\x61\xb7\xb0\xc9\x00\x48\x0d\xaa\xfa\x3b\xa6\x43\x47\xf3\x9b\xbf\x7c\x10\x0c\x1b\xfb\x36\x26\xb3\x9b\xf8\x6d\x79\x95\xa4\xe7\x3f\x05\xc6\x23\xda\x76\x99\xfa\x01\x63\x7a\xff\x74\xb0\xb1\xd0\x00\x0d\xa6\x2a\xeb\x91\x93\x3e\x04\x26\x66\x60\x79\x7b\x4b\xc8\xcb\x9f\x63\x65\xc3\xe1\xbe\x05\x81\xe1\x12\x5b\xf1\xdb\x83\xa8\x1a\x25\x2a\xd9\xeb\x67\xcc\xff\x4a\x03\x40\x86\x5e\x55\xaf\x60\xc6\x6f\x3b\x09\x48\x8a\x68\xa1\x83\xf8\xb5\xeb\x23\xda\xee\x68\xcc\x4d\xd8\xeb\x00\x3a\x3e\xff\xec\xdb\x41\x02\x09\x78\x91\xc7\x2a\x3b\x88\xea\x3c\x40\x9b\x00\x21\xc4\xba\x68\xba\x4f\x3c\x1b\x6c\xec\xed\x4a\xd5\xc5\x6d\x40\x68\x60\x23\x22\x6b\x67\x0b\xbb\xf2\x45\x9c\xad\x99\xd5\x48\xd1\x09\x08\xa5\x09\x3e\xde\xaf\xbb\x55\xe7\x88\xd8\x9d\x24\xa5\x1e\x15\xe1\x68\xdb\x08\x62\x1b\xff\xd2\x30\x0a\x11\x5b\xf5\x28\x9a\xf7\x17\x84\x01\xf4\xf7\x23\x52\xd6\xb7\x76\xe4\x75\xe4\x8e\x31\xc2\x23\xe7\xb6\xbd\xcc\x9a\xba\x9c\xc3\x69\x02\x61\xc0\x23\xd9\xe9\xbb\x19\x0c\x1c\xfd\x21\x63\xa3\x69\x6c\xfb\xb9\x2d\xad\x3b\x7b\xcc\x02\xa4\xf0\xd4\x5d\xcd\x7d\x57\x2e\x4f\xe7\x2e\xaf\x00\x92\x68\x40\x88\x6b\x87\x56\xd2\x93\xaf\x4e\x83\xc4\x36\x8d\x3f\x44\x9e\xe9\x09\xa9\x1a\x48\x9a\xc4\x28\x4f\x70\x84\xea\x20\xda\x2c\xd6\x1f\xe0\x29\xe7\x30\xe3\x05\xe4\x0f\x03\x60\xc4\xee\xbc\x0b\x2f\x0a\x29\x93\x89\x20\x88\x42\x1a\xdf\xf7\x4e\x14\xc8\x34\xbb\xf2\x52\xef\x00\x88\x60\x0c\x59\x6f\x12\xdd\xa0\xfd\x1f\x05\xc5\xe5\x48\x36\xb5\x37\x2a\xf7\x6b\x28\x91\xdc\x60\xcc\xbb\x7a\x7d\xfe\x7e\x83\x68\xe4\xef\x8b\x87\x87\xf5\x6e\xbf\xb8\xb9\x79\xed\x06\xc9\x38\x0c\x7b\x23\xf1\xab\xbf\xfa\xf4\x5b\xce\x04\x10\xcd\x99\x43\x06\x37\x1d\x83\xe0\x5e\xe4\x03\xb4\x23\x10\xa0\x02\x6d\x6b\x31\xb5\x5f\x2c\x37\x38\xe3\xfc\xb1\x10\xb0\x5b\xf1\xf2\xfc\xb8\x58\x3d\x6f\x9e\x06\x7f\x97\xa4\x73\xb0\x5e\x9e\xce\x03\x4d\x1a\x3f\x04\x24\xb6\xf1\x97\xa2\xaa\x20\x5f\xbc\x81\xbe\x7d\x7e\x7c\xf6\x27\x30\x81\xf5\x9d\x5d\xdf\xfd\xf5\xb2\xeb\xfe\xa8\x05\x56\x3e\xbf\x97\xd5\x0f\x55\x66\xc5\xbc\x69\x24\x10\x63\xa4\xad\x8a\x40\xdd\xec\xde\xab\xf2\x67\xfd\x0a\x58\xd1\x1a\x5b\xf7\xac\x0b\x67\x59\x69\xff\xaf\x9f\x87\x34\x48\x8c\x08\x3a\x35\xc6\x76\x89\xc5\xc5\x6f\x18\x34\x51\x0a\x96\x0d\x6c\x0b\x77\x79\xd9\x34\x65\x72\x23\xce\x97\x80\xb7\xd9\x39\x44\xc3\xd8\x16\xc0\x6b\x68\x16\x45\x9b\x50\x5d\xe6\xc2\x40\x23\x6a\x01\x19\x63\xd9\xeb\xdd\x3c\x5f\x16\x28\x0b\x12\x6f\x82\x81\xa6\xa0\xab\x53\x75\x99\x79\x02\x8d\x43\x40\x22\x9c\xc9\xaa\xba\x71\x00\xfc\x2b\x9b\xf4\xe5\x4e\x46\xe3\x94\x87\xce\xdd\x62\x0b\x85\x7e\x79\xde\x5e\xe9\x9f\x0d\x17\x76\x1a\x0b\x4a\xfd\x3a\x5b\x6e\x5f\x61\x4e\x46\xc1\x0f\x55\x01\x06\x87\x3f\x45\xd6\x0c\xfb\x9b\xed\x91\x30\xb0\x65\x9c\xca\xd7\xd8\x2c\xbd\xc2\x1f\x07\x86\x51\xc1\xfe\x90\x15\x68\xec\xbe\x6d\xaa\x69\x9a\x41\xaf\x5b\x6b\xbb\xb3\x24\x21\x20\x70\x50\x9e\xce\x0f\x99\x82\xa2\x86\xdb\xb2\xb2\x38\x8d\xf1\x0f\x4d\xb4\xf5\xa4\x72\xd6\xaf\x73\xf4\x2e\xa0\x69\xa0\x11\xf7\x64\xb2\x42\xb7\x21\xeb\x5f\x03\x14\xf4\xa0\xfa\x03\x34\x0d\x6d\x3f\x08\x1c\xc7\x7f\x57\xce\x14\x55\x81\xf2\x94\x21\x3a\xfd\x80\xe6\xbc\xb8\x35\x4c\xed\x5d\x80\x72\x6d\x55\x77\x30\xda\xd8\xcb\x5e\x3f\x11\xa8\x08\xed\xde\xe2\x74\x7a\x7d\x2f\xbd\xbb\xc7\x22\x8e\x92\x60\x8a\x31\xbc\x12\x58\x51\x91\x86\xd8\xae\x5d\x1f\xfe\x23\x86\x92\x8f\x40\x85\x0c\x6d\xb6\xd7\xd7\x0e\xae\x24\xe1\x33\xf8\x65\xa0\x02\x58\xec\xb1\xbb\x59\xf1\xd6\x37\xf9\x81\xaa\xd8\x44\x7a\xe0\xb9\xf8\x47\x1b\xd4\x65\xe3\x7a\xe6\xd0\xb4\xcd\x7d\x4c\x07\x31\xe7\xfd\xbe\xd9\xc0\x3e\xf4\xa9\x1b\x85\xc0\x82\x98\x75\xb9\xb1\x15\xdc\xa1\xf6\xfa\xb5\xf7\xd9\x7f\x96\x06\x49\x32\x58\x3f\x6b\x27\x1e\xb4\x1a\x02\xea\x7a\x5a\x1e\x84\x41\x18\x20\x20\x7a\x09\x75\x33\xe3\xac\x09\x61\x10\x25\x9e\x43\x84\xf9\xc1\xa4\xfc\x8e\x03\x3a\x8a\x6c\x55\xd6\xf5\xaa\x2c\x0a\xe4\x94\x8c\x8b\x6e\xf3\x71\x5d\x18\xb0\xb4\x8b\x78\xca\x1a\x91\xd1\x1b\x3d\x65\x6e\x4f\x3e\x92\x84\x9e\xcb\x77\xb1\x8a\x87\x24\x4a\x50\x8e\x03\x11\xbf\x8d\xc8\x51\x36\xf4\xd3\x98\x3f\x24\x71\x48\x47\x82\x85\xeb\x37\x44\x12\x4c\xcf\x9c\x24\x28\xac\xe0\x9b\x32\x9b\xa3\xa9\x91\xa2\xb8\xcb\x9a\x89\xdc\x33\x84\x94\x12\x2b\x3a\xeb\xcf\x69\x9f\xc6\xbf\x9a\xf3\xf2\x6c\xb5\x93\xc6\x27\xa7\x89\xd6\x2e\x59\xe9\x2a\xeb\xf3\x37\x8c\x42\x84\xb0\x1a\x40\x5b\xee\x81\xc7\x26\x84\x21\x0f\x64\x34\x52\x53\x7b\x84\xe6\xbd\xd4\x8b\xe5\xa6\x1f\x22\xb1\x0e\xa9\x3a\x00\xb6\x57\x47\xfc\xfc\x31\x45\x21\x23\x71\x8f\x37\xf8\x9e\xa1\x84\xe9\xae\xfc\x9e\x15\xdb\x73\xdd\xc0\xc1\x7f\x01\x23\x76\x3e\x3d\xf6\xdc\xf9\x95\x25\x6e\x4f\xf7\xc6\xff\x57\xce\xa5\xff\x82\xc4\x12\xf0\xdb\x8d\xf3\x09\x7e\x3a\xe1\x47\xdc\x0b\x2d\x61\x74\xe3\x6a\x8d\x8b\x42\x2f\x6e\xc0\xfe\x77\xf7\xeb\x12\x89\x7b\xcd\x22\x6b\x97\x6c\x63\x32\xd5\x23\xd1\x5f\x9f\xb7\xdd\x4f\x9b\xab\x91\x84\xb1\xe0\x88\x44\x7b\x82\x53\xe5\x2b\xa3\x10\x26\x81\x44\xea\xfd\xd0\x06\xe6\x53\x82\x27\x84\x09\xd5\xca\x02\x83\x4c\x56\xc0\xaa\x9c\xa0\x25\x21\x4c\x84\xf6\x72\x66\x6e\x99\x5a\x54\xd5\x04\x3c\x04\x61\xa2\x2c\xf6\xd7\x11\x00\xcb\xea\x3b\x64\x7d\x9d\xc7\x0d\xe2\x44\xe1\x02\x8b\x3b\x70\xbb\x6d\xd0\xb0\x3b\xc4\xec\x9b\xfd\x2a\x0a\x5d\x1e\x86\xd6\xe4\x10\x0a\xc9\x49\x38\xaa\xb5\x0e\xf1\x4b\x73\xb5\x94\x4f\xdb\x2a\x10\x0a\xc3\x43\x33\x90\x02\x7e\xcc\x26\x80\x39\x08\x65\xc4\xa8\x8b\xfd\xbc\xea\xc7\x25\x52\x01\x42\xa9\x63\x2c\xec\x6d\x91\x0b\xa8\x01\x31\x86\x83\x15\x4d\x47\x80\xcd\xb1\xdb\x4c\x96\x85\x50\x2a\x1b\x30\xf0\x20\xd4\x2c\x0c\x42\x4f\x6f\x72\x7a\xde\x73\x9c\x26\x08\x75\x6c\xed\x2f\x50\x29\xbf\x8d\x2d\x86\x32\x86\xd3\x67\xa1\x13\x0b\x41\x6d\xc3\xa2\xdb\xb2\x6a\x4e\xdd\x0e\x11\x6a\x69\x98\x5b\xe1\xd0\x0b\xec\x45\x54\x4d\x01\x95\x4b\xfc\xc6\x77\x49\x2b\x15\x07\x8e\x18\xb7\xaf\x8f\x99\x82\xfd\x01\xf2\xa1\x44\xad\x1b\x08\x44\xa3\x04\xb8\xc9\xea\x77\xa8\xfe\xea\x54\x85\x06\x23\xb4\x95\x34\xac\xed\x2f\x1f\xc8\x54\x8c\x67\x63\x14\xc4\x81\x67\x55\x7c\xcd\x8a\x37\x5d\x0e\x29\x35\x10\x91\xc8\x3a\xe3\xac\xf3\xec\x57\x37\x3f\x22\x12\x4b\x64\x89\x55\x38\x77\x6e\xb3\xb7\xf7\x86\xde\x80\x68\xde\xc7\x84\x51\x88\x48\x62\x35\x46\xee\xc6\xa6\x48\xa7\xab\x68\x1c\x88\x68\x64\x70\xad\x29\x8b\xdc\x66\xb5\xdb\x2e\xb9\x9c\xdb\xa1\xa2\x30\x92\x18\x67\xdd\x2c\x6e\xfa\x5e\x35\x44\x61\x2a\x13\x67\x61\x7f\x14\xe7\x61\x38\x10\x85\x90\xa0\xc6\x81\xc5\xda\x7e\xcd\x74\xfd\x90\x15\x3f\x7e\x07\x67\x87\x28\x82\x04\xd5\x0f\x6e\xd6\xb7\xaf\xcf\xdb\xdd\xfe\xf1\xf9\x69\x77\xff\xf0\xd7\x58\x30\x0c\x22\x46\xad\xb4\x7a\x1b\x64\x75\xf2\xcd\x17\xaa\xff\x10\x31\x16\x5a\x27\x2f\x55\x65\x03\x7f\xb1\xc1\x74\x8d\x18\x13\x28\xce\xe4\xca\xd4\x48\xb2\xff\x74\x7d\x8c\xe2\x54\x58\x83\x29\x87\xd5\x7a\x14\x93\xba\x60\x14\x0b\x23\xdc\x8e\x7e\x63\x5d\xa8\xee\x2a\x81\xdc\xc2\x3e\xb8\x8d\x62\x19\x63\xee\xfb\x03\xce\xf5\x2b\xa8\xf9\x42\x4b\x14\x9b\x04\x1f\x55\x7b\xdf\xff\xfc\xf4\xd6\xc5\x46\x4a\x2f\x2b\xdc\x26\xf3\x7f\x96\xd5\xad\xc8\x72\x2c\x27\x3d\x3f\x2f\xfd\xd7\x26\x51\x8a\xc5\x21\xa7\x50\x31\xc6\x23\x9f\x2e\x21\x2c\xe9\x48\xe0\xb0\x5f\x05\xa2\x44\xa6\x28\x47\x86\xfa\x38\xaf\x5e\xe8\x71\xfe\x0d\x48\xb4\xb6\x4e\x54\x43\x47\xc5\x97\x7e\x0e\xa7\x51\x12\x59\xaa\x79\x59\xd6\xe0\x0c\xbf\xe7\x2e\x92\xc7\x29\xb6\x6a\xdb\x60\x7f\xfa\x22\xf0\xc4\x46\xb2\x3a\xab\x8f\xb9\x38\x3f\x65\x13\x10\x32\x44\x9c\x4b\xbc\xf6\xe2\x74\x18\xd5\x41\x22\x2e\x28\x92\x7e\xdb\x4d\xc5\x05\xda\xfd\xa1\x88\x38\xdc\xbf\xf3\xac\x6a\x23\xa8\x0b\x52\xd9\xe4\x8b\x94\xb1\x22\x7a\x65\xae\xb7\xe5\x29\x5f\x82\x12\xa7\x7a\x3a\x3b\xb9\xd6\xb8\x62\xb7\x8f\xe9\xb2\x6f\xf0\x3b\xf0\xde\xa7\xfc\x1b\x88\xb8\x31\x58\xda\x59\x14\xcd\xdf\xa3\x57\x53\x50\xdb\x6f\xfd\x56\xf4\x10\xb3\xc9\x0f\x13\x3c\xc2\x1d\x77\xa3\xca\x57\xa8\x4f\x87\x6e\xb3\x8b\x84\x4c\xb0\x14\xb4\x5c\x3c\x7d\x7d\x7d\xf6\xb6\x52\x10\x09\x6d\xa2\x8e\x93\xec\x30\x7c\xdd\x52\x26\x8c\xf8\xff\x38\xfb\x93\xee\xc6\x71\xac\x5b\x18\xfe\x2f\xef\x28\x07\x35\x00\x3b\x10\xf8\x66\x92\x2c\x47\xb8\xc2\xb6\x5c\x92\x9c\x91\x59\x77\x3d\x4b\x0b\xcd\x81\xcd\xc7\x14\xa9\x22\x29\x3b\x54\xbf\xfe\x5b\x3c\x00\xd8\x89\x76\xe6\xbd\x93\xca\x28\x03\xa4\x48\x10\xcd\x69\xf6\xd9\x1b\xb1\x58\x56\x1a\x66\x44\xe5\x35\x9f\x5a\x8a\x25\xb1\xba\x5a\x16\x69\xd4\x3a\xff\x50\x2d\x66\x42\x53\xb1\x34\x2c\x74\x19\xab\x26\x47\x7a\x63\xd7\xa0\x68\x6c\x09\x4c\x2a\x51\x34\xf5\xa0\x1a\xce\xb7\xcb\x10\x97\xa8\x33\xb7\xea\x83\x68\x4d\x9b\x83\x3c\x5f\x26\xbf\xa0\x89\xf0\x6c\x99\xf7\xa5\x7a\x3b\x9f\xee\x07\x41\xf7\x79\x5b\x2e\xd6\x09\xf1\x07\x92\x2f\xf6\x19\x07\x29\x63\x20\x06\x17\x44\x03\xe2\xb8\x28\xf4\xfa\xd7\x09\xaa\xa6\x1e\x4f\x4a\xc3\xa9\x55\x1f\x3b\x59\x40\xa6\x2f\x7f\xc5\xa4\xe8\x27\x0b\xcd\x88\x14\xf7\x26\x61\x73\xf4\xdf\x45\xed\x74\xff\x87\xe4\x21\xb6\x6f\x42\x92\x00\xd3\xca\x1f\x90\xf9\x60\xd6\x97\xaf\x95\x10\x61\x29\xe5\x5d\x3c\xb3\xa7\xfe\x75\xed\x41\x4c\x02\x97\x25\xb7\x16\xcf\x30\x55\x93\x04\x49\xa8\xbb\x12\x55\x84\x00\xe2\x5b\x67\x50\x28\xb8\x87\x77\xf0\x52\x2c\x93\x1f\x0d\x34\x45\x74\xb1\x11\x59\x5e\x0b\x03\x07\xa1\x75\x36\x54\xd7\x9c\xf4\x0f\x49\x80\xd1\x84\xf5\x6a\xb1\xfb\xee\x7f\x3b\x54\x32\x09\x3c\x94\x59\x95\x95\xfe\x01\x97\xdf\xae\xe4\xbe\x5d\xe7\x28\xb1\x8a\x89\x79\xa5\x9c\x7b\x38\xfe\x78\x49\xa4\x2d\x44\x4f\x9d\x8f\xad\xe7\x91\xbd\x4f\x6c\x87\x24\x32\x31\x56\x70\x9d\x2a\xc8\x54\xd9\x6b\xa9\x41\x12\x47\x22\x70\xa6\xc0\x7d\x29\x8a\xb1\x89\x32\xde\x44\x92\x84\x48\x84\x14\xe7\x02\xed\x70\x2c\x06\xe8\x2a\x82\x20\x49\x75\x84\x7e\xc0\xb1\xd4\x99\xb9\x7c\x2f\xab\x1a\x2e\xb7\x00\x96\x25\xd7\x72\xb5\x0f\x47\xc8\xe5\x45\x13\xc6\x22\xe2\x79\x5a\xce\x4d\x59\x94\xc7\xf2\x5c\xef\x4a\xd3\x7c\x88\x0a\x36\xd5\x4b\x0f\x2e\x80\x84\x07\xdc\x4b\xfc\xad\x75\x79\x9d\xaa\x49\x78\xa8\x44\xbb\x83\x61\x4a\xed\x07\x14\xba\x44\x5a\x0a\xdf\xca\x35\xc2\x09\xfe\xb7\xcc\x8a\x4e\x9d\xd7\xb7\x89\x00\x23\xd6\xb8\x27\x3c\x64\xc5\xb7\xd2\xcb\x0c\x40\x22\x43\x86\xae\x3b\xb6\xd9\xcf\x14\x5a\x49\xfb\x30\xf6\x69\x5f\xb7\x6f\x78\x44\x97\x7f\x20\x15\x82\x87\xbe\xf9\x2d\xba\xd3\x49\xb1\x05\xfd\x9d\x66\xc3\x64\x35\x68\x9e\x8a\xb0\x57\x3f\x70\x2c\x17\x5d\xfd\xe7\xf8\xbd\x81\x07\x58\x64\x08\xbf\x40\x9d\x11\xaa\xf0\xe6\xea\x32\xf1\x02\xa1\xae\xe4\x5f\x21\x01\xe0\xd0\x57\xc0\xa8\x8b\x8b\xf7\xf8\x1d\xf0\xff\xb0\xff\x19\xcd\x42\x30\x31\xc6\x0b\x31\xac\xf5\x9a\x41\xae\xff\xa2\x44\xad\xbd\x84\x21\xc2\x63\xf5\x9a\xbd\xc3\x90\xf6\x0f\x28\x89\x65\xd0\xd1\x97\x59\x91\xc8\x69\xa2\x0b\xf1\x6f\xf4\x7f\x06\x47\x3c\x0d\x02\x85\xe1\x75\x47\x84\x57\x95\xc7\xe7\xc2\x52\xb6\x8d\xdf\x8d\x86\x52\xa2\xa3\x73\x93\xbd\x64\x8d\xc8\x07\x46\x22\x0d\x15\x67\x61\x8f\x95\x5b\x6c\xff\x18\x16\xc6\x01\x8d\x62\x12\x5a\x82\x72\xa7\x1f\x39\x39\xd6\x69\x94\x0a\x0c\x7e\x77\xa7\x95\x27\x30\xf9\x9a\xee\xc6\x5f\xad\x6d\x4c\x01\x51\x41\xa7\x7e\x9f\x99\xe9\x09\x06\x33\x76\x99\xb2\x72\x9c\xde\xa4\x71\xa9\xcd\xc1\x2a\xa6\x71\xc0\x11\xd7\x84\x71\x47\xe4\xad\x18\xe5\x73\x68\x2c\x2c\x88\xf3\x29\x6f\xb7\xc7\xd1\x87\x48\x8c\xd5\x36\xcd\xcb\x97\x45\x9e\x0f\x66\xcb\xe4\x64\xa3\x54\x89\xc4\x78\x26\x87\xaa\xb6\xa1\x21\xf4\xd6\xe6\xe4\xbc\x81\x52\x6d\x4b\xb4\x15\x0a\xaf\x7b\xa2\x7f\x36\x79\x49\x6a\x00\x67\xf9\x7e\xbf\xfa\x5b\xe5\x68\x40\x99\x21\x84\xa0\xaf\x60\x23\x2c\x77\xc5\x00\x5a\x34\xb9\x3b\x27\x16\xe3\xb0\x68\x6c\x74\x44\xd8\xb5\xe7\xdf\x9d\x47\x14\xc1\xf6\xf6\x70\x68\xed\x0e\x3c\x20\xda\x4d\x6b\x71\xca\xba\x5e\x31\x43\x5e\xa5\xa7\xef\x9b\xf5\xe3\xdd\x1f\x87\xd5\x66\xbb\x5b\xdc\x6d\x0f\x0f\x8b\x3f\x0e\xab\xc5\xf6\xdb\xa6\xeb\x98\xc4\xba\xe3\xa6\xbe\x55\xfd\x0d\x14\xe0\x42\x6b\xed\x40\xd1\xa8\xd7\x2f\x70\xe2\x40\x39\x84\x24\x1e\x8a\x34\xd5\x33\x94\x42\xa3\xc8\x13\x15\x81\xc4\x13\xe9\xe9\xee\x8f\x91\x62\x8c\x6f\x0e\x05\x7a\xcf\xed\xf3\x3e\xad\xb7\x77\x9b\x9b\xc3\x6a\xf3\xdc\xf9\x2e\x54\x26\x31\x0d\x7d\xc5\xc0\x4a\xa8\x57\xb8\x81\x1a\xc9\x80\x41\x6f\xe1\x54\x56\xcd\x63\xb9\x7b\x2d\x3f\x96\x65\x31\x5d\x66\x32\xb1\x24\x20\xf5\xf9\xf8\x5d\x54\x7a\x25\x4e\x4f\x67\x99\x67\x6a\x38\x37\x65\x6a\xf7\xb1\xcc\x1d\x17\xb6\x8a\xda\x37\xb2\x04\xb7\x81\x77\x91\x9f\xe1\x1b\x34\xbf\x8d\x3e\xb5\x04\xc7\x5f\x2d\x2e\xbf\x4d\x42\xe7\xae\x87\x82\x40\xba\xd5\x64\xb5\xde\x76\x90\xe7\x5e\xc1\x73\xdc\x55\x87\x09\x6e\xe2\x07\x44\x44\x41\x01\x75\x1d\xe6\xc3\xe5\xe7\xfb\x25\x51\xe0\xf1\x00\x67\x89\xfc\xb3\xcd\x04\x3b\x06\x54\xa7\x5a\x0e\xd5\x73\xea\x26\x6b\x30\x58\x6b\xe9\x7d\x66\x19\xfa\xff\x31\xb9\x85\x16\xf8\xe8\xd6\xcd\x1b\x0a\xa5\xfd\x0d\x28\xc6\x70\x67\xa6\xda\x44\xb8\xd2\xe0\x17\x54\x2a\xab\x61\x73\x1a\xad\xdf\xcf\xef\xd1\x6f\xac\x26\x8c\xd0\x40\xcc\x8b\xdf\x46\x83\x61\x58\x8c\x1e\x01\xaa\x21\x0d\xb5\xb8\x26\x64\x34\xbe\xbb\xd6\x08\x41\xaa\x90\xff\x6e\xed\xf5\x67\x81\x1a\xc3\xb9\x53\x0d\xf8\x3d\x2b\xe0\x22\x2a\x3d\xda\xef\x5d\xed\x43\x7f\x9c\x0e\x0f\xd1\x94\x18\xed\x29\xdf\x10\xe4\x39\x62\x82\x1c\xbc\x46\x1a\x68\x40\x48\x63\xeb\x86\x3b\xa7\xcd\xb7\x98\x18\x89\xf0\x0e\xaf\xa2\x5e\xe4\xf9\x2e\x7b\x99\x07\xe3\x41\x1a\x32\x63\x8f\xc5\xb2\x30\x19\xaa\xdd\xb4\x46\x97\xbf\x4f\xc8\x29\x7e\xb5\x87\xcd\x62\x35\x3a\x37\xd2\x50\xf0\xd0\xc6\x4b\x8b\xb7\x6d\x99\xe7\x4b\x28\xc0\x64\x2a\x13\x55\xdf\x45\x09\xcc\x7c\x23\x55\xb1\x0f\x5a\xf6\xcb\x7b\xf5\x7a\x2e\x7c\x9a\x24\x8d\x92\x24\x4e\xbd\x10\x24\x54\xcb\xcb\xfa\x28\xb2\x1c\x73\x0d\x63\x0e\x02\x48\x23\x6e\x15\x32\x5e\xa0\xb3\xea\x27\x1d\x74\x8c\x12\x3e\xf9\xb9\xb8\x54\x1d\xe9\x9b\x6b\x8c\x03\x2b\x5d\x9c\xd5\x96\xed\x64\x5b\x76\xc2\x60\x90\xc6\xb1\x2d\xdd\x6d\x2a\x51\x38\x59\x63\xa8\x7a\xa1\xb7\xf9\x11\x8c\x45\x82\xe5\xb9\xe2\x5d\x54\xe2\xc5\xb2\x83\x0c\x82\xd6\x69\x12\xca\x98\xf8\x92\x13\x94\x05\x43\x9c\x92\x6f\x8d\x53\xe5\x0a\x98\xfc\xd0\x8c\x63\x40\x93\x5f\x4b\x92\x00\x63\x88\x0d\xd4\xcd\x5d\xd1\x20\xff\xbb\xdd\x63\x5c\x9c\x32\xfa\x9f\xae\xa7\x05\x2e\xa1\x7a\xdd\xee\x8a\x9b\x1d\xd2\x44\x6b\xab\xfd\x69\x43\x4f\xc3\xa0\x58\x4a\x89\x40\x5b\xe6\x7d\xf0\x05\x7c\x53\xd2\x15\x81\x3d\x88\x22\x33\xed\x83\x7c\x4d\x06\x0d\x29\x4d\xe3\xc0\x65\xa7\x7f\xbe\x8a\x1c\xfc\x6c\x98\x09\x7f\xa6\x94\x85\xcc\x52\xea\xee\xc4\x84\xde\x06\x52\x0a\x11\x92\xe2\x2d\xb3\x3c\x2f\xcd\xbd\xd0\xdd\xd1\x9e\xa6\x11\x41\x50\xc1\x9f\x9b\xe7\xe1\x91\x9f\xa6\xc2\xa0\xa6\xf3\x72\x37\x30\x8e\xd3\xd4\xa9\xf5\x35\xbd\x09\x60\x00\x46\x60\x95\x34\x35\x80\x3b\x8d\xf4\x65\x36\x2e\x56\x3d\xcd\x10\xa5\xa9\x31\x81\xf1\xc9\x77\x0c\x5f\x7c\xae\x90\x0e\x29\x33\xc4\x58\x53\xf7\x38\x8b\x55\x86\x94\x27\x21\x52\xd2\x68\xf1\x3e\x7a\x15\xae\x2d\x96\xa4\x86\xe6\x70\xea\x89\xdf\x9d\x44\xf5\xfc\x11\x9b\x8a\x80\xf2\xd4\x93\xf5\xcf\x88\xe1\xfb\x6e\x9c\x5a\x28\x49\x6b\xf5\x1f\xde\xcb\x66\x54\xff\x05\xa9\x8c\x28\x96\x0d\x9c\xc4\xe5\xf6\xea\x81\x25\x27\x5e\xa8\x6a\xff\x32\xcb\xb0\x0c\xa9\xe2\x80\xee\x48\x5e\xbe\xdc\xe6\x65\x59\xfd\x76\xed\x1d\xa5\x4a\x52\x6f\x2e\xce\xe0\xb0\x52\xa5\x13\xac\x52\xec\x8b\x9a\xd7\xbf\x5c\x89\xf6\xdf\xca\xad\xa4\x9a\x98\x38\xc6\x14\x57\x7b\x6e\xff\x80\xd6\xda\xad\xa1\xa8\xbb\x6c\x47\x0a\x84\x62\xdd\xaf\x3c\x5f\x7a\xcb\xd2\x3f\x1e\x44\x31\x86\x9c\x4d\x55\x1e\xbf\xc3\xaf\xf1\x00\x01\x4b\xb9\xe9\x33\xc5\x8b\x3e\xbf\xe6\x83\xe8\x29\x70\x8e\xe7\xe8\x90\xa0\xe2\xcb\xac\x42\x0a\x5c\x58\xa5\x5a\x9f\x66\x7b\x6a\x4d\xf0\xfe\x69\x45\x22\x9d\x3f\x3b\x3e\x00\x8c\xb6\xc5\xc3\x4d\x75\xd9\xe1\xc9\x5e\x94\x1a\x6c\x90\x61\x8e\x8d\xa6\xbd\x40\x51\xa7\x20\xb7\xec\xd4\x86\xb3\x69\xd0\x3d\x35\xc6\x60\xcd\x7f\x56\xe8\xec\x3d\xd3\x67\x91\xe3\x06\xda\xc9\x92\x00\x23\x42\x23\xb1\xe5\x6b\xa9\xf3\xbf\x51\xe9\x0b\x2c\x60\xb6\x58\x4d\x60\xa5\x08\x1e\x76\x1d\x1a\xd0\x77\x91\x8a\x3b\x7d\xa0\x01\xa3\xf1\x72\x26\xf9\xea\x2f\x50\x09\xd6\x25\x9f\xca\x32\x5f\x37\xaf\xbd\x18\x72\xdb\x64\x85\x6e\x65\x87\xcd\x9b\x5f\x10\x2c\x74\x76\xe6\x09\xaa\x3a\x13\x5d\x5c\x88\xc5\x2c\x8e\xa1\x43\xa6\xfe\x84\xec\xe5\xf5\xd3\x80\xd4\xe4\x96\xb1\x8e\x03\x27\x45\x54\xf5\xc8\xf0\x3e\xb5\xe4\xba\x25\x31\x68\x1f\xc8\x81\xfa\x9c\x37\x73\x91\x04\x96\x24\x14\x93\xa1\xa7\xde\x41\xb2\x8e\x93\x65\xe3\x75\xbd\x28\xb1\xaa\x15\xa6\xfd\x4c\xad\x47\x0d\xe2\x38\x3a\xc9\x19\x0d\x43\x2c\xd1\xc7\xca\x8d\xc5\xe6\x4e\x2f\x2f\x8f\x62\x4c\x8a\x03\x8c\x72\x16\x7b\x31\x61\x93\x97\xe2\xad\x5e\xbc\x88\xac\xa8\x9b\x99\x5c\x2f\xa3\x9a\x44\x2e\x61\xee\xc8\xfc\x1c\x87\xf0\x10\x3a\x37\x79\xe7\x34\x61\xf8\xce\x18\xc1\x44\xa6\x78\x3c\xd9\xbf\x04\x03\xb0\xd4\x24\xae\x2a\xd1\xe6\x4f\x2a\x67\x0a\x84\x5d\xbb\x42\xa2\x59\x9b\xe4\x2b\x2b\x14\x00\xfb\x8b\xe9\xc8\x12\x85\xc0\xf5\xfb\xc5\xf6\xdb\xfa\xf0\xf4\xbc\x5d\x7d\x5f\xec\xd6\x07\x24\xcc\xf2\x43\xc6\x63\x4b\x6d\x8d\x58\xcd\x1c\xee\x6e\x96\x97\x91\xb6\xc7\xf8\x29\xb9\xd0\x84\xf8\x82\xab\x5f\x58\x15\xfa\x04\x55\x6b\xe6\x4c\xc6\x8d\x1b\x8a\x8a\x3e\x7d\x26\x79\x6e\x37\xeb\xb1\xf7\xff\x8f\x79\xe6\xc9\x0b\x8b\x88\x63\x84\xf5\x24\x2e\xbb\xf2\x08\x65\x31\xcf\xc1\x0e\x4c\xc4\x02\xdd\xea\x73\x0d\xd5\x1e\x0a\x81\xf1\xcd\x57\x04\xf8\x4f\xbc\x0f\x26\x8c\x8a\xdc\x79\xb0\xcb\xc5\x3b\xb2\xd7\x8e\xf5\x42\x81\xc9\x28\x96\x3d\xff\xc5\x23\x7c\xec\x40\x9d\xab\xac\xb9\xdc\x8c\xf1\x3d\x73\x10\x09\x26\x15\xc3\xbc\x8c\x45\x59\x23\xac\xfb\xcb\xe0\x29\x53\xc6\x16\x1c\xb4\x9f\xec\x35\xab\xc7\x21\x45\xa6\x8d\x3d\xfc\x4e\x55\xa9\xda\x03\x7e\x54\xcf\x06\x0c\x62\x8a\xb1\x89\x97\xf3\x7c\x85\x1c\xb4\xd6\x94\x71\xa4\x92\xfe\x48\xfa\x84\x02\x0e\x98\x09\x80\xb9\xc1\xe9\xfd\xc7\x27\x51\x89\xe3\x5f\x62\xd3\xfd\x1d\x22\xae\x5d\x80\x1b\xcd\x4d\x9b\xda\x7e\xf0\xa8\x46\x66\xc0\x16\x87\xdf\x79\xfd\xcb\xed\x79\xb7\x7f\xc8\x8a\x97\x5b\x91\xbf\x38\xaa\x14\xe0\x24\x22\xc6\x91\xca\x66\xc7\xf3\xf1\xb1\xec\x89\x5a\x46\x76\x10\x27\xd2\xe2\xdc\x1c\x13\xb1\x63\xd2\x6b\x3f\x78\x30\x76\x50\x39\x51\x0a\x8d\x84\x6f\xe5\x7b\x3b\x06\x83\x15\x7c\x9d\x3f\xf7\x97\x40\x00\x83\x3a\x95\xd5\xb9\xc9\xec\xbc\x8f\x6d\xcc\xd1\xfd\x27\xb8\x2e\xec\xb5\xad\xee\x36\x41\xbb\x6e\xff\xbf\xff\xdf\xff\xf7\xb8\x79\x3c\xec\xb7\x8b\xc7\xdd\xed\x7a\xbb\x58\xde\xaf\x91\x72\xde\xbf\x48\x48\x28\xe2\x0c\xd7\x9b\x87\xee\x4f\x8c\x38\x71\x8c\x76\x71\x7e\x13\x93\x03\x8f\x87\x02\x50\xb1\xf4\x60\xc0\x53\x6d\x0e\x1a\x01\xa8\xe5\xca\xd1\x00\xc7\xdd\x6b\x6b\x30\xdc\x15\x4d\xe9\xa2\x97\xfe\x37\x22\x4e\x6c\xaa\x4e\x1c\xb3\xfc\xb2\x85\xba\x3c\x57\x0a\xdc\xfc\xf8\xbb\x3e\xb0\x37\x22\x78\xa4\x98\xcf\x88\x74\xac\x5f\x76\xba\xce\x25\x8f\x79\x4c\xa4\xf4\xa4\xbe\x87\xf6\x7f\x84\x74\xac\xc7\x0e\x70\xb5\x12\x35\xac\x7f\x9d\x40\x21\x4f\xd3\xb9\x33\x91\x79\x1c\x59\x02\x5c\xb4\x08\x07\x3a\x43\x75\xd7\x41\x24\xc6\x1f\x0a\x50\x39\x8d\xe5\xf1\x08\x25\x09\xef\x14\xf4\xe7\x8b\x7c\x78\x22\x89\xf2\xca\xf3\xa7\xb2\xa8\x4b\x74\xb6\x6a\x27\xaa\xd0\xde\xf3\xb3\xbc\x26\x4f\x64\x88\x4f\xa8\x9d\xe4\xdf\x73\xe5\x83\xd8\x9c\xc6\xd6\x0c\x59\x6d\x9e\x9e\xd6\xdb\xc3\xe2\x61\xf3\xfc\xb8\x3f\xfc\xf1\xb4\xde\x76\x3d\xd2\x18\x15\x15\x7f\xae\x47\x48\x5a\x4e\x41\x22\x09\xbc\x2a\xe1\x09\xaa\x75\xf3\xba\x31\xa6\xee\x32\x5b\x3c\xe5\x52\xb8\x80\xc9\x47\x56\xcc\x06\x03\x39\x8b\x15\xbe\xd2\xff\x96\x96\xaf\x74\x51\x68\xab\x09\x33\x6f\x6a\x70\xa6\xa8\xf4\x32\x98\x48\xaa\x8c\x6c\x47\x56\x1e\xa9\x1b\x6d\x91\x30\x9b\x94\x13\xc5\xb7\xde\x9e\xe1\x22\x0d\x10\xf9\x77\xff\xef\x7b\x17\x2a\xed\x5a\x40\x23\x65\xd0\xf7\xc5\xea\xfb\xdd\x76\xf3\xe3\xd9\x37\xc8\x54\xa0\x19\xea\x80\x1a\x13\x43\x9d\x4b\x43\xb8\xf2\x82\xf1\x4e\x85\x78\x0a\x26\x1c\x3f\xbf\x52\x96\xd4\xd2\x95\x0a\xa1\xe9\x3e\xf5\x09\x5d\x57\x48\x54\x94\x3a\x7a\xa9\xac\xdd\xd8\x17\x2e\xae\x3c\xa0\x23\x01\x0e\x94\xa7\xda\x6b\x0f\xfe\xe5\x0a\x19\x5a\x2a\x1c\x98\x0c\xec\xae\xe6\xd6\x86\x7b\xcb\x91\xd1\xc3\x4d\x98\x62\x5d\x50\x87\x97\x5c\xe4\xf9\xa2\xba\x8e\x92\x4c\x5e\xd4\x70\x0b\x25\xa9\x91\x3b\xd0\x19\x37\xeb\xd5\x76\xbd\xda\xfc\xbe\xde\x5e\x09\x57\x0c\x9d\x61\x67\xb6\x09\x12\x2b\xe9\xf6\x6e\x9b\xa8\x15\x32\xcb\xb3\xe6\x53\x0c\xfc\xe8\xed\x04\xa1\x0a\x99\x34\x97\xf7\x0f\xb3\xe4\x22\xbe\x1b\x0f\xa9\x0b\x40\x2d\x05\x7a\xff\xcd\xf8\x6c\x61\x5d\xa5\x95\x20\x32\x89\xbd\x4e\xbe\xe5\x81\xb8\x2b\x5a\x5b\x49\x5c\x27\x51\x04\xd1\x0c\x29\x85\x6e\x2c\x01\xc2\x15\x6b\x3d\x88\x00\x00\x71\x3b\x37\xe2\xb4\x12\xc3\x3a\x5a\x10\x81\x31\x08\xec\x6b\x4d\x25\xbd\xfe\x25\x8e\xa7\x29\x8e\x5c\x84\x09\x45\xff\xec\x8f\x3f\xff\xf4\x57\x45\x9c\x28\xe7\x12\x6e\x3e\x40\x5f\x09\x9e\xba\x6e\x71\x2c\x85\xec\xb0\xd8\x58\x9e\x63\xe3\x66\xb3\x7e\x95\x48\x02\x8a\xd4\x4d\xff\xdc\xfa\xc0\xb0\x48\xc2\x10\x3d\x3f\x0d\xef\x43\x62\x71\x10\x49\x22\xd1\xeb\x3b\xb4\x9b\x58\xb7\x73\x0e\xd5\x7b\x86\x67\xa0\x48\x28\x20\x25\xe5\xe2\xe6\x77\x7f\x07\x1a\x47\x78\xc8\x94\xa7\x7a\x5c\xa5\x29\x68\x0a\x58\xf2\xb9\xde\xaf\x5e\x45\xe5\xc8\x12\x27\xaf\x46\x39\xe0\x92\xd9\x83\xab\xf4\x99\x7c\x14\xaa\x6d\x65\xef\xb2\x6c\xac\x92\xcd\xf8\x72\x0c\xe2\x75\xc9\x7c\xab\x0e\x32\xe9\x11\x09\x6f\x46\x7b\x02\x24\x87\x18\x1f\xff\x50\x1a\x6b\x44\x4a\xf9\x35\x73\x23\x32\x55\x4e\xef\x95\x46\x68\xec\x6e\xd7\xf7\xeb\xd6\x6e\xde\xed\x17\xfd\x10\xb3\x30\x44\x23\xdf\x95\xa4\xbe\x66\xc5\x4b\x67\x39\x76\xa9\xc4\xff\xf3\x3f\x57\xd9\x45\xf7\x0f\xe6\xd7\x10\x8b\x6c\xed\x67\xfd\x21\x4e\x93\x7c\x95\x60\x11\x65\x81\x57\x23\xaf\x40\xd4\xe7\x8e\xcf\x78\x76\x4d\x0b\xa6\x15\x66\xac\x17\x4f\x4f\x87\x87\xc5\xe3\xe2\xdb\x7a\x7b\xd8\x6e\xbc\x06\x24\x08\x06\x16\xdc\xed\xb4\xc7\xad\x0e\xc3\xbc\x19\x28\x98\x61\xe8\xae\xfb\x32\xe4\x4f\x96\x27\x0f\x24\x1e\x9c\x0e\xf3\x84\x15\xe3\x63\xf5\xfb\xbf\x65\x07\x0a\x9e\x28\x34\xa1\x73\x51\x37\xce\x6a\x2e\xab\x91\xed\x26\x38\x0b\x82\xd4\xbb\x48\x65\xa5\xb3\xe2\x3a\xde\x24\x38\xb3\xa4\xd4\x0f\x47\x5b\xfb\xf5\x45\x42\x4a\x88\x00\xc2\x0e\xd8\x5d\x34\x50\x34\xcb\xcb\x8d\x68\xc4\x27\xf5\x08\x93\x8b\x13\x2b\x87\x69\x8b\xd0\x13\xf2\xf6\x5c\xeb\xbb\x62\xd5\x13\xb7\x83\x10\x54\x78\xe9\x9b\xb1\x53\x21\x04\xd3\xb1\xad\xab\xb3\x46\xc1\x67\x38\xe2\xc9\x20\x09\xee\x0a\xb0\xac\x30\xbd\xff\x2b\x80\x67\xdf\x6d\x3d\xb1\x95\x38\xdd\xd9\x70\xc0\x4f\xc8\x3e\xf9\xb8\x2a\xe6\x18\x60\x6c\x32\x18\x09\x2b\x8d\x7f\x0e\xa4\xa5\x43\xaf\xa1\x71\x4c\x0d\x8b\xc9\x68\x9b\x40\xe3\x56\xf5\xb4\x5d\xed\x03\x42\x0e\x5b\x0f\x8c\x17\x06\x88\x67\x1a\x58\x9d\xeb\xa6\x3c\x5a\x19\xb6\xe2\x65\xe4\x8c\x4b\x12\x1b\xcf\x7a\x67\xc7\xc2\xf1\x78\xcc\xc7\x1b\x25\xa1\x14\x4b\x22\x90\x2a\xca\x9b\xe3\x49\x8f\x6c\xa5\x6e\x75\x4d\x8f\x2d\x7f\x39\xa4\x51\xa7\xaa\xff\xa4\x9a\x5d\x03\xa7\x89\x95\x2c\x83\x94\xa3\x51\x74\x14\xbf\x5c\x66\xac\xb5\x85\x3b\x5a\x60\x90\x21\xb1\xfc\x6c\x76\x13\x7a\x12\x2f\x30\x5f\x12\x2a\x23\x0a\x91\x2f\x37\xc0\x69\xe5\xff\x0e\xc4\xca\xd5\x97\xea\x2f\x93\xa6\x32\x4e\xac\xdf\x6f\x65\x76\x2c\xdc\xad\x27\x11\x00\x19\x03\xc1\xc7\x95\xa2\x51\xaf\x5b\xc8\x3d\xcf\x31\xee\x34\xbd\xc3\xf2\x19\x08\xb8\xdb\x90\x7a\x26\x1b\x36\xda\xb5\xc6\xfb\x17\xf3\xa6\xbb\x4c\x62\x2b\xb0\x57\xff\xe7\x2c\x2a\xd8\x98\xdd\xf9\xda\xe5\xf3\x5d\x45\x2a\x54\xcf\x28\x00\x95\xd7\x88\xb8\xce\x03\xc9\xc4\x58\xfe\xae\xf5\xfe\xee\xf1\xcb\x71\xa1\x71\x80\x35\xa6\xf7\x65\x95\x35\x62\xe9\x53\xb6\x92\xc6\x16\xe2\x8d\x48\xe0\x6b\x8f\xad\xef\x85\x89\x97\x87\xc5\x1f\x87\xd6\xcd\xb2\xe2\x1d\xcf\x4f\x4f\xf7\x7f\x76\x37\x62\xdc\xa4\x8e\x93\xe0\x2a\x4a\x2c\xa9\xa6\xe8\xb9\xa8\x32\xeb\x43\x3c\x03\x06\xcb\x49\x6f\x63\x8b\xa3\x7d\x31\x56\xeb\xe9\x4e\xa6\x5d\x1a\xa4\x58\xee\xe7\xd9\x37\xfa\x30\xa4\x4c\x29\x00\x92\xb5\x1c\x33\x5c\xe0\x76\x1d\x7d\xcb\xde\xe1\x2f\x0a\x36\x64\xea\x42\x9c\x56\xe2\xf8\xae\x40\x26\x23\xf8\x9c\x98\x0b\x24\x8b\x02\x07\xfc\xc0\x5a\xf5\xd9\x98\xbe\x64\x49\xea\x05\x5a\xda\x79\x7d\x08\x13\xff\xa8\x8c\xa9\xc0\xc9\xe0\x55\x2f\x15\x40\xf1\x1d\x44\xde\xbc\x0e\x6d\x27\xc9\xb8\xf0\x49\xaf\xa7\x32\x2b\x9a\x49\x00\x43\xf2\x94\xa2\x3a\xb2\x40\xe9\x84\xf5\x7f\x82\xd4\xcd\xe8\xf4\x1f\xee\xbf\xbe\x23\x0b\x70\xae\x3c\x6e\xf6\x87\xf5\xe3\xcd\xfa\xe6\x70\x7b\xf7\xe8\xcf\x3a\x29\x42\x8e\x0e\xad\x53\x72\x3c\x3c\x6d\xb6\xa8\xcb\xf9\xf0\x7c\xbf\xbf\x7b\xba\xbf\xeb\xbc\x27\x29\x04\x90\xfe\x28\xf7\x65\x51\x9f\x1d\x5b\xe3\xa1\x10\x2a\x08\x5c\x4d\xed\x5c\x44\x70\x7e\x1f\x97\x32\xb4\xf4\x7a\xd6\xc2\x33\x19\x1e\x3f\x28\x48\x32\x9b\x6f\x90\x32\x11\x88\x9e\x19\x57\xa8\x2c\xcf\x57\x21\x77\xd7\x5f\x85\x94\x6a\xbf\xf9\x22\x68\xef\x79\x77\xd3\x1e\x4d\xfb\xf2\x27\x64\xdb\xc1\xf6\x01\x49\x82\xe0\xa9\x49\xcd\xd6\xfc\x6d\x41\x53\x8b\x20\xde\xde\xba\xeb\x55\x14\xd0\xd4\x0c\x9f\xec\x5b\x29\xf2\xfa\xb6\x2a\x8f\x1e\xb9\x01\xe8\xfd\x7e\x1a\x0e\x9a\x2b\x4b\xf0\xf7\x0e\xd3\xd0\xd1\x15\x3c\x65\xaa\x69\xdd\xf9\xa1\x3a\x64\x2f\x79\x3b\x1a\x2c\x15\x33\x89\xe1\x93\x65\xd6\xb4\x86\x68\xeb\x8f\xf8\x16\xce\x51\xc4\xbf\x46\xad\x91\xcd\xed\xad\xa9\xac\x46\x5c\x57\x85\xac\x62\xdd\x89\xb8\x3d\x41\x55\x77\x6e\x9c\x4a\xc2\x40\x30\xcf\xfe\x3a\x40\x69\xcd\x2e\xa6\xc1\xbf\x06\xb4\x61\x7f\x51\xe8\xaf\x12\x11\x11\x5f\x79\x3a\x90\x17\xf1\xad\xc6\xc4\x96\x24\xe4\x39\xd3\xe3\x26\x1a\x69\xd1\xa1\xdc\xee\xea\x4d\x91\x5f\xb0\x84\x64\x6c\x74\x28\x4a\x53\xe7\x89\x5a\x05\xf5\x76\x2f\x29\xfa\xf0\xf8\x64\x18\x59\xcc\x82\x70\x20\x7a\xdb\x4e\x53\x3f\x18\x8c\xc6\xbc\xab\xd5\x2e\x3a\xee\x1a\x50\x8c\x03\xda\x35\x87\xac\xb6\xa8\x8e\xae\xc1\x28\x3c\xa6\x5a\x4f\xe2\x8b\x6d\x5d\x71\x6e\x45\xd9\xff\x57\xa8\xb7\x53\xd9\x0c\x37\x0e\xc5\x45\xe2\xe5\xee\xee\x41\x98\x79\xc0\xaf\x12\x22\x40\x1f\xf0\x60\xb9\xcf\xbe\x67\x2f\xaf\x08\x63\xd7\x7a\x1a\xa4\x56\x52\xc5\x5e\x52\xed\x11\x3e\x96\xdb\x3f\x9e\xc4\xc4\x07\x54\x8a\x50\x4c\x16\x2c\xcf\x97\xc5\x75\x6d\xda\x2c\x59\xe5\xc8\x37\xfd\xc7\xf4\x76\x96\x16\xa9\x72\x7c\x0a\x43\x22\x00\xa5\x02\x92\xba\x7c\xdd\x73\xe1\x40\x6e\x08\x6d\xca\x7e\x41\x3e\x22\x7b\x98\x07\x95\x74\x1f\x5a\x99\xa4\xe3\x5f\x40\x77\x01\xf3\xe1\x36\x02\xd4\xff\x9c\x0e\xed\xe1\xd0\x4e\xb7\x87\x73\x1e\x26\x74\x79\x09\x13\xea\x9b\x21\xb0\xe4\xd9\xf5\x80\x04\xab\x6b\x8b\xb8\xd5\xb8\x69\x44\xd5\x91\x95\x4e\x06\x17\x58\x82\x05\x13\xeb\xfd\x10\x04\x34\xf7\xcd\x41\x1a\x8c\xb0\x3f\x94\xd5\xe9\x15\xce\x23\x94\x9b\x32\x44\x7b\xd1\x5d\x47\xf2\xdd\xb5\xa8\x18\x27\xe8\x47\x59\xbd\xdd\x96\x55\x77\x80\x68\x42\x25\x75\x99\xc4\xdd\x6b\x76\x1a\x55\x47\x8f\x27\x8b\x26\x2c\xb5\xc9\x7c\x91\xc3\x83\xe5\x24\xef\x74\xc4\x41\x13\x2e\x15\x1f\x2c\x98\xdf\x11\x4f\x34\x9b\x74\xd4\x44\xb8\x08\x63\x5e\xd6\xa8\x5f\xa9\x5e\x61\xe1\xf1\xc5\xae\x4f\xc0\xec\x77\x19\xe4\x7c\xef\xf7\xab\xdd\x71\xc0\x55\xe9\x37\x03\x1d\x12\x5b\x47\xde\x38\x43\x7e\x3f\x04\xff\xea\x30\xe2\x08\xe9\xfb\xf7\xea\xf1\xcf\x19\xe4\x98\x8e\x22\x57\x9a\x7f\x96\x87\x93\xf5\xc4\x5d\x66\xfd\x50\x97\xf9\x27\x31\x48\x1d\xc5\x29\x62\x9b\x4f\x50\x99\xb2\x3a\xda\xb3\x1b\x35\x20\x87\xa9\x63\x1d\x71\x8e\x07\x74\x03\xe2\x68\xc3\x0b\x07\x6f\xf6\xeb\xc8\x58\xff\x5b\x95\x1a\x7e\x0d\xc0\x9b\x3a\x21\x96\x75\xd3\x31\xd0\x96\x6f\xf6\x5c\x18\x95\xb9\x8e\xb0\x43\x3a\x31\x21\xfe\x4c\x01\x1f\x7b\x1f\xeb\x15\xc7\x93\xc8\x5e\x8a\xdf\x66\x96\xda\xd5\xd9\xac\x69\x2a\xe2\xb8\x23\x95\x51\x63\x86\x2a\x4d\x79\x80\x31\x92\x3c\x3b\x66\xcd\xb0\x84\x74\x32\x28\xa9\x8a\x5c\xb5\xa7\xa7\x9e\x98\x50\xbf\x5f\xf5\x17\x48\x65\x63\x50\x4b\x71\xfd\xcb\x73\x38\x82\x66\xc4\x82\x16\x6f\xcf\x85\x9e\xb8\xfa\x9a\xb1\x10\x91\x1d\x7a\x02\xe0\x83\xea\xa7\xa8\x57\x65\x55\x41\xdf\x97\x07\x11\x82\xe3\x0b\xf8\xd5\x20\x6a\xcd\x0b\x82\x81\xe6\x12\x90\x27\xa4\x81\xe3\xe9\x6a\xb3\x98\xf5\x52\x34\x37\x1a\x13\x42\x77\xab\xcd\x61\x14\x58\xd4\x32\x0d\xd1\x8a\xb0\xb0\xf0\xb5\x95\xa2\xcf\x0a\x44\x56\x8d\x17\xbb\x96\x26\x8e\xa8\x0f\xbc\x65\x0a\x86\x8a\x0c\xae\x8b\x8a\x0d\x4a\xc4\x3a\xd5\xef\xd6\xbe\x9d\x1f\x70\x95\xda\x14\x83\xd0\x56\x02\x63\x63\x4c\x27\xcd\x97\xf8\x3e\xc6\xea\xe0\xf7\x06\xce\x9f\x20\xaa\x6f\xe2\x88\xab\xb8\x78\xb1\x2c\xe3\x7d\x84\xa9\xfb\xea\x9a\x82\x74\x0f\x7a\xdb\xa3\xa5\xb4\x56\x16\xca\x7e\x38\x78\x46\xc4\x6a\x25\xf2\x5c\x0e\xf9\x0d\xe6\x3f\xb7\x56\x0c\xe3\xc5\x45\xd9\x64\xe6\xb2\x9b\xc9\x74\xfa\x8e\x86\xd2\x04\xd1\xaf\xd6\xd9\xf7\x3f\x0d\x01\x0b\x52\x9f\x21\xc7\x53\xe1\x7a\x78\x21\x12\xb8\x43\xfe\x80\x53\x3e\x62\xf4\x03\x0d\x69\xac\x82\xce\xb9\xda\x5e\x41\xa3\x34\xf0\x58\x7a\xf9\xe6\xac\x80\xe7\x93\xa5\xca\x3b\xa0\xf0\xf2\x27\x73\x18\x64\x80\xe5\x19\x7a\xc4\x21\x0e\x1a\x14\x65\xed\x86\xf8\xd1\x0d\x9c\x11\xe0\x5d\x81\x5d\x6b\x19\x61\xee\x0f\x9a\x3e\xd6\xaf\x8d\x89\xb4\xf4\x94\x83\xd5\x31\x1b\x20\x5c\x6c\x0f\x20\x11\x41\xc2\xbb\x5b\xa1\xda\x2b\xc7\xd1\xa3\xd1\x24\x02\x92\x5a\x7a\xa3\x87\x3f\xd7\x0f\x4f\xeb\xed\xc6\xdb\xf0\x40\x78\xec\xc9\xb3\x77\xb8\x80\xce\x15\x6c\x37\xb7\xdb\x21\xdc\x0b\x88\x73\x87\xda\xa5\xdc\x9a\x70\x58\xdf\x30\x5a\x87\x10\xc4\x04\xd9\x5e\x50\xef\x7e\x38\xd0\x10\xa4\x40\x10\x8c\x2b\xaa\xf7\xac\x18\x6c\x6d\x10\x06\x92\xf5\x54\xe2\x58\xa4\x77\x78\x83\x8b\x1f\x01\x88\x68\x82\x30\x5e\x1b\x75\xeb\x80\x57\x68\x24\xeb\x63\x36\x24\x4a\xee\xae\x30\xc4\x29\xe4\x97\x9f\xa9\x00\x01\x44\x26\x4e\x6d\xb0\xf4\xdc\xd4\x5f\x27\xda\xe7\x82\xf1\xe3\x91\x8d\x4c\x8a\x00\xb1\xa7\xf6\xdd\x3a\x4c\x1f\xc4\xda\x72\xce\x0b\xed\x44\x05\xea\x7d\xe9\xbd\xc2\x89\x97\x02\xb1\xd1\xac\x13\x63\xfa\x99\x35\xaf\xdd\x97\x18\x7d\x85\x24\x89\x94\xea\x38\x08\xae\xd4\xa6\x01\x12\xc1\x30\xad\x30\x22\x70\x1f\xb8\x10\xae\x1b\x4d\x62\x62\x43\xbd\xef\x50\x34\xd0\x7f\x29\x6a\x22\x62\x05\xf4\x84\x46\xb2\x9f\xaa\xcc\xf3\xfa\x8f\xf6\xb8\x1a\x6d\x06\x90\x32\x82\xca\x2f\x88\xcf\x19\x8e\x71\x17\xe6\x00\x16\xd9\x87\x75\xbb\x96\xc5\x0a\x7c\x52\x2f\xe0\x2f\x11\x56\x99\xd0\x3b\x1f\x43\x5b\x07\x78\xa4\x30\x5c\x7a\x2a\xeb\x66\xd2\x92\x1a\x4c\x61\xff\xee\xf9\xe7\x3e\x3a\x35\x45\xd7\x43\x86\x04\xa3\x57\x7e\x8b\x72\x78\x1d\xdf\x1a\x45\x06\x3d\xb1\x76\x22\xb4\xfb\x50\xfb\xbd\xfa\x46\x2b\x14\xfe\xe3\x9f\x2b\x6f\x06\xc2\xf9\xd8\xb5\x26\x04\x25\xe2\x0f\xf2\x5c\xe8\xfc\x53\xee\xff\x6e\x50\x64\xa2\xac\xf9\x8f\x05\x02\x37\xe5\xd8\xcf\x00\x99\x6a\xab\x5b\x82\x4a\x7c\x8b\x29\x15\xee\x64\xd6\x48\x06\x09\xae\xab\xe7\x95\x7f\x1e\x95\xe8\xd4\xa7\x71\xca\x32\x1f\xa2\x39\x41\x51\x83\xa7\x43\x7b\xeb\xf5\xfe\xfb\x64\x4e\x28\xce\x15\xeb\x2c\xfa\x6b\xdd\x79\x00\xa5\xad\x54\x99\x1c\xe1\x0d\xfa\xc8\x8d\xef\x66\x2c\xb4\xca\x65\xf2\xdd\x2e\xd1\x4e\xea\x07\x98\x04\x88\x69\xec\x2a\xbf\x46\x9f\x13\x02\x85\x35\x6a\xf2\x7c\x81\x6a\xfd\x4b\x01\x68\xd0\x5e\xf1\x61\xac\x99\x35\x59\x89\x86\x24\xb8\x05\x1d\xf2\xf2\x03\xaa\x9b\xf2\xe3\x93\xc4\x8f\x21\x86\x20\x34\xdb\x3e\x23\xe2\xdd\x9f\xca\x8f\x4f\xf8\x38\xe6\x23\x11\x26\x10\x14\xcf\xc3\xa3\x78\xf3\x3e\xde\xa4\x03\x30\x36\x0a\xa3\xd8\xf2\xe9\xc3\xfa\x77\x1f\x69\x31\x61\x28\x3c\x1d\xec\x0a\x19\xdc\x56\x38\x2f\xba\xe6\x44\x20\xbd\xc6\xe0\xf0\x5a\xff\x6a\x2a\x31\x3a\x2b\x67\x37\x25\x13\x52\x91\x7a\x59\x9a\x1d\x86\x2f\x86\x1e\x8c\x09\x59\x18\x73\x5f\xb6\xf1\xed\x6c\xe1\xac\x7d\x1b\xc5\x8c\xf1\xe6\xe6\x7e\x0c\x26\xb8\xf6\xbc\x4d\xc8\x43\x0c\xbe\x2d\xf7\x1e\x4c\x61\xa2\x90\x62\xd1\x14\x5a\x18\x12\x86\x73\xd0\xc4\xb1\xdd\x60\xd0\x36\xf7\x14\x5a\x56\x27\x52\xe8\xbf\xe4\xcc\xf0\x37\x49\x43\x4c\xdb\xed\x9a\xb2\x12\x2f\x70\x0d\xb1\xf9\x7a\xc3\x36\x31\x8b\xc0\x9d\xab\x0f\x97\x9f\xe2\xa5\x1f\x96\x98\x13\x7c\x74\x73\xce\xf3\x81\x73\x6e\x62\x65\xcb\x61\x72\xd4\x3c\xf8\x5a\x75\x07\x4c\x12\x81\x6e\x17\xca\x5d\x91\x35\x56\xfb\x68\xf3\xc3\xdf\x29\x11\x10\x06\x3e\x18\x82\xb6\xde\xa7\x14\xcb\x60\x12\x05\xa1\xf7\x33\x03\xac\xb9\x2c\x5e\xb0\x0e\xa9\xbb\x1b\x08\x4c\x15\xa0\xf4\xc1\xe4\x28\x34\x14\x52\x9c\x5c\x96\x06\x6d\x74\x63\x0a\x1a\x4b\x1f\x0e\x5d\x95\xe8\xbc\xe9\x65\xd2\x50\x07\x56\xa5\x4f\xbd\xad\x9b\xd7\x6d\xbb\x1b\xf9\x1f\x4f\x39\x78\x1c\xb2\xa3\xb9\xac\xe1\x79\x7b\x37\xfe\xa5\x54\xd1\x98\x0f\x09\x0d\x7b\x7f\xc2\x39\x45\x86\x05\x36\x70\x61\xaa\xb2\x68\xb6\xe7\xc2\x52\x21\xb4\xb6\x5c\xdd\x88\xa3\x8f\xe5\x1a\x16\x12\x14\x5f\x2b\x2b\xdd\x6e\x0b\xa0\x2c\x51\xd0\x6c\x28\xc3\xb0\x04\x88\x35\xdd\x54\x59\xe8\x9f\x00\x96\xf6\x60\x58\x0b\x6b\x58\x6a\xd1\x8c\x96\xdc\x61\xf7\x96\x15\x8b\xd3\x09\x04\xea\xd8\x8d\x86\x23\x08\xbb\x47\x35\x61\xec\x02\xb0\xeb\xe3\x29\x2f\x2f\x4e\x41\xcd\x35\x73\xc5\xf1\x57\xdb\x0d\xb4\x53\xca\x99\xb7\xc7\x8c\x20\x04\x9c\xab\xfd\xb4\x5d\xef\x6f\xd6\x6e\x79\xf7\xe5\x26\x93\xed\x44\x84\x11\x26\x4f\x7c\x4e\xd5\x52\xd4\xf9\x9f\x16\x51\x37\xaf\xee\x6a\x5b\xb2\x70\xb5\x1a\xfa\x64\x81\x91\x3a\xf1\x25\xb0\x2e\x3f\xe5\x88\x51\xc6\x0f\xa9\xd2\x34\x35\x8e\x44\xb2\x11\x43\x5b\xc4\xe8\x58\xa1\xf3\xf3\xaf\xe7\xc5\x76\xbf\xde\xde\xff\x79\x70\x0f\xe6\x9f\x48\x27\x86\x5b\xed\xa9\x77\xac\x9a\x7d\x17\x39\x32\xb5\xb9\x66\xa0\x1a\xcf\x7a\xfb\xbe\x0f\x65\xd1\xbc\xe6\x9d\x92\xfc\x4c\x45\x80\x69\x6d\x0e\x7c\xc3\xd7\xf2\xc3\x11\x38\xee\xca\xaa\x5b\x0a\xc0\x14\x26\x15\xd7\x4f\xfb\x2f\xcc\x60\x63\x22\xe5\x13\x97\xb6\x08\xb9\x7b\x20\xa3\x05\xc1\x7a\xfb\x42\x97\x55\x0d\xd7\xb2\xf0\x86\x90\x48\x60\x58\x15\x59\xb1\x5b\x1f\x73\x18\x70\x31\x84\x28\x82\x85\xb8\xaf\xa2\x3e\xf8\x92\xf3\x03\x20\x72\xa9\xeb\x21\x8d\xcd\x66\xb4\xcf\x6f\xc1\xed\xbe\xc9\x58\x41\x6a\x4b\x00\x5f\x77\xcc\x56\xbe\x3d\xa0\x09\xb8\x8c\xf6\xe1\x24\x2e\x87\x0f\x1f\x6c\x31\x24\xe0\x51\xd8\xde\xf5\x58\x34\xa7\x7d\xd9\xd5\x1e\x34\xbe\x98\xd7\x90\x00\x02\x3f\xd9\x6c\x25\x18\x16\x81\x35\x53\x77\xc9\x90\x50\x5a\x7d\xe0\x1a\x59\x67\x30\xbf\x3f\x65\xaf\x36\x24\x62\x09\x06\x96\x8a\xf3\x71\x00\x84\xe8\x9e\x34\x62\x22\x11\x7d\xb1\x69\xf6\x5f\x68\x77\x0e\xcf\x4d\xe1\x3b\x71\x81\xab\xd9\x7e\xfe\xfc\xc4\x46\x33\xcf\x90\xc8\x24\x2a\xf2\x74\x79\xcf\x85\xdd\x78\xfd\xc5\x71\x98\x3a\x9a\xc3\x3c\x7f\x2a\xeb\xec\x0a\xa3\x62\x48\xcc\x35\x38\x61\xf7\x65\xfb\xa9\xbb\x6b\x93\xd8\x66\xdd\x51\x45\xb1\x12\xf9\xfd\x94\xbe\xd7\x90\x84\x3a\x09\x8d\xb3\xb4\x7b\x99\xdf\xa3\x47\xbf\x40\x03\x40\x5a\x5e\x3b\x05\x3e\x0f\x64\x0e\xae\x88\x39\x4e\x1f\x25\xf2\x7c\x53\x6c\x5b\x9f\xa6\xff\x44\x2c\xa0\x98\xc5\x7f\x5a\x6f\x7f\x8c\x66\x15\x0b\x59\xaf\x49\xb9\x84\xa6\x1b\x67\x26\x28\x19\x2a\x2c\x85\xd7\xb4\x3d\xc3\x68\xfa\xb4\xd0\x7e\x00\xc8\x32\x84\xe9\xb8\xc3\xc3\x5f\xab\xf5\x1b\xc2\x20\x42\x3a\xe0\x4e\x69\xb1\x97\xd2\x98\x0c\x1e\x8f\xad\xc4\xf6\x0b\x52\x50\x22\x6d\xd1\x30\x36\x62\x88\x88\x6d\xa2\xcb\x8b\xef\x20\x5b\x50\xd7\x48\x6d\x31\x9b\x8d\xf2\x5a\x11\xd2\x2f\x70\x1b\x86\x48\x15\x24\xa1\xf7\x9c\xae\xcc\xef\xe1\x2b\xaa\xd4\xca\x51\xd4\xd0\x58\x37\x2c\x2b\x8b\x7a\x25\xf2\x7c\x0a\xf7\x34\x44\x07\x14\xb9\xaa\xe1\x98\x35\x28\x31\x5a\xd5\xcf\x18\x7c\xd3\xd7\x89\x57\x43\x74\x24\x31\x7e\x89\xbc\x15\xf3\x5f\x5e\xd3\x14\x4c\x8f\x08\xc9\xca\xeb\x50\x85\x21\xa0\x28\x3a\x6f\xff\x16\x03\x1f\xd9\x04\x44\x09\x4d\x70\xd3\xa9\x40\x1c\xc7\x1c\x3f\x26\x20\x46\xc7\x2e\xeb\xb2\x3c\x0f\xab\xb7\x4c\x10\x84\x91\x25\x15\x44\xae\x07\x63\xb2\x3c\x13\xcd\x3c\x67\x85\x09\x02\x48\x4c\x97\x08\xf1\xdb\xf0\x88\x7c\xd8\x75\x0c\xc3\xd8\x51\x2b\xfe\x1a\xc8\xdd\x7d\x05\xbe\x30\x41\x18\x25\x18\x14\xf1\x79\x49\x97\x96\x74\x59\xc9\x74\x14\x56\x33\x41\x14\xa6\x1e\xfb\x61\xeb\xf2\xc6\x37\x8b\x62\x82\xb5\x6f\x15\xba\x79\xbb\x29\xee\xd2\x04\x91\xd1\x21\x1f\x04\x2f\xed\x5b\xcc\xd9\x09\x26\x88\x49\x42\x5d\x99\x99\x85\xf4\x8c\x90\x59\x26\x88\x43\x16\x87\x5e\x0e\x79\x91\x67\xa2\x1e\x9a\x37\x6d\x3b\x27\x4e\x68\x5d\xf6\xd3\x38\x88\x65\x4a\xa5\x0b\x97\x6c\x71\xa3\xf1\x36\xa6\x09\x62\xcd\x84\xdd\x80\x9c\xb0\xbb\x3d\x28\x46\xbb\x7d\x90\x10\xab\x5c\xde\xa0\xcd\x54\xf7\xa5\x2b\x26\x48\x42\x4d\x6c\x51\x1e\x66\x5b\x57\x58\xb2\x79\xae\xa0\xef\xc0\x20\xb5\x78\x64\xa7\x17\xd8\xe3\xcb\xbb\xd4\xb8\x09\x68\x64\x13\x51\x8b\x17\x31\x9c\x6d\x14\xa4\x67\x33\xbd\x3b\x6c\x83\xc9\xd0\x32\x66\xab\x18\x5d\x75\xd3\x5f\x61\x6f\x26\x83\xcd\x8d\xc1\xb9\x7a\x78\x15\xad\xb3\xec\x49\xe4\xdc\xc1\x30\xee\x2b\xe2\x10\xcb\x37\x91\xe9\xa0\x1a\x42\xf1\x4c\x20\x78\x88\x6e\x51\x71\x3e\xb6\x36\x65\xbd\xcb\x0a\x05\x8b\x33\x96\xef\xa1\x54\xc4\xf4\x5e\x86\xf3\x6e\x8f\xd8\x7f\x64\x4d\x03\xd5\xdd\x3c\xd5\xcf\x3c\xfc\xc5\x04\x92\x48\x04\xdb\xc8\x73\x6e\x2d\x49\x24\x76\x9b\xc7\x48\x98\x40\x85\xb6\x08\x11\xd1\xd6\x26\x7b\x87\x05\x4e\xfc\x5b\x91\x7b\x8e\x3e\x13\x28\xc5\xd0\xea\xdd\x2d\xbe\x2d\xba\xc0\xc3\x78\x2f\x0d\x94\xe2\x58\x64\xf4\x5d\xd4\xaf\xfb\xcb\x09\x2c\xb0\xaf\xb7\x9d\x4d\xa0\x13\x93\x76\x89\x3d\xfd\x02\xd5\xa3\x38\x42\xcf\x14\x6c\x02\xcd\x6c\xee\x13\x9a\xd7\xbf\x5e\xae\x9f\x7c\x37\xcd\x89\xec\x9c\xb6\x25\x88\xc1\x64\xd6\x26\x36\xe9\x60\xad\x7d\x5d\xbb\x70\x25\xb1\x3e\xf9\x21\xd0\x56\x7f\xfa\xe3\x78\xb6\x91\xce\x20\x64\x23\x0b\xdc\x04\x26\xa5\x38\x3f\x6d\x90\xa7\x1e\xc5\xdd\x4d\x60\x54\x12\x75\x55\xb6\xbb\x53\x9e\x35\x7d\x0b\xc5\x82\x1e\x4b\x44\xec\xd4\x26\x3c\xa1\xc6\x4a\x54\x7d\x47\x2d\xf1\xf0\x2f\x8d\xc1\x70\xcf\x78\x2e\x85\x41\x08\x08\xa4\x5f\xde\xed\x77\x37\x8e\x8b\xa1\x4b\x37\x8e\x3f\x5f\x18\xa4\x1a\x77\x81\x5c\xd4\x98\x4f\x1f\x6d\x1d\x61\xc8\x6d\x9c\xe4\x11\x5e\x90\xbe\xe6\xe7\xeb\xd9\x98\x0c\xea\x1d\x5c\x93\xd1\xcc\x81\x9c\x4d\x18\xea\xa0\x73\x0f\x75\xf6\x92\x0d\x0f\x86\x30\x36\x21\x6e\x33\xcd\x50\x35\xed\xaf\xbe\xfb\xf8\xf9\x93\x20\xe1\xca\x83\x55\x7c\x41\xce\xb5\x69\x6e\xc2\x84\x5b\x78\x61\x71\x3e\xb6\xb6\x4d\x9d\x79\xc9\x5c\xdf\x0e\xe0\x15\x3c\x7e\x96\x9f\xc2\x1b\x5d\x67\x2a\x12\x8f\xe1\xc5\x58\xdc\x0b\x14\x4d\x38\x19\xd9\x34\x54\xc4\x69\x8b\x97\x15\x16\xc1\x16\x50\x79\x5a\x6f\xff\xab\x69\x92\x22\xce\x74\x99\x35\xf5\x6b\x79\x12\x85\x06\x51\x75\xe3\xc3\x42\xc9\x5c\xf2\x60\xb0\xbb\x86\x2c\xe2\x69\x6f\x97\x5e\x87\xc1\x4c\xc8\x52\xab\xb1\xfd\x94\x35\xeb\x73\x35\x6d\x64\x49\xd8\x55\x24\xd5\xd7\x72\xfd\xe3\x57\x65\xcc\x02\x9d\x5f\xa0\xe9\x93\xed\x93\xb1\xe5\x84\x68\x84\xdb\x66\x47\xb8\x2f\xd5\x5b\x3d\x6d\x0f\x02\xe4\x77\xcf\xb3\xba\x59\x2e\x37\xfe\x3d\x38\x4d\xb1\x20\xe0\x79\x7f\x77\x7f\xb7\xff\x73\x80\x65\x35\x21\x77\xd1\x2f\x2c\x66\x79\x12\x99\xd5\x6a\xab\x6f\xcb\xea\x01\xda\x07\x9e\xf0\x35\xb6\x13\x89\xd8\xc4\x5c\x05\xb0\x04\xa8\x36\xc5\x03\x8c\x27\xb3\xa0\x1a\x03\xac\x7f\x6e\x36\xcb\xc5\xac\xff\xf5\x65\x4c\xc6\x84\x42\x02\x3e\xd3\xef\x65\x07\x21\x62\xb3\xe1\x1f\x13\x4a\x21\x89\xfb\x72\xa8\xd8\xe5\xa4\x81\x7d\x2b\x30\xa4\x0b\x7d\x10\xe7\xec\x67\xf9\x91\xc1\x68\x55\xa8\x50\xc8\xae\xbe\x19\x15\xcf\xca\x1a\x7c\xa9\xd9\x30\xa1\xea\xfb\x47\x02\x93\x34\xed\x12\xc6\xa0\xe7\xe1\x3d\x20\xed\xfe\x7a\x70\x9d\xbb\x1b\xc7\x31\x32\x7e\x3c\x3b\x61\xe9\x2c\x7f\xeb\x76\xc9\x10\x28\x47\x26\xba\xbb\xd5\x06\xc5\x52\xa1\x6b\x60\x3a\xee\xe3\x90\xfb\x4a\x78\xa0\x80\x09\x81\x03\x02\x9d\x9a\x57\xb8\xe9\x51\x00\xbe\x51\x48\x08\xfa\xd8\xba\x68\xca\xaa\x17\x0c\x1f\x0f\x2c\x28\x2b\xee\xab\x5b\xc3\x71\x10\xb7\x9d\xde\x11\x42\x8c\x59\xb5\x26\xc3\x53\xd9\x74\x4f\x61\x28\x8e\xd7\xea\xe1\x9b\x03\x2e\x99\x88\x44\x1a\x4d\xc5\x53\xbb\xe1\xaf\x2d\x3f\x6f\xd7\x16\x47\x89\xee\x09\x9f\xa1\x41\xdf\x0c\x2d\xb0\x7a\x98\x7a\x76\xdb\x79\x14\x06\x84\x42\xa7\x8b\xb0\xb8\xbf\xff\x73\x7e\xa9\x44\xa1\x32\x44\xb9\xcc\xf9\x64\xa1\x47\xa1\x4e\xb8\x65\x73\x18\x80\x42\x4c\x14\x85\x21\x52\x14\x08\xad\xaf\x98\x02\x67\xb7\x9e\x28\x52\x21\x73\xc6\xf4\xe2\x22\x8a\xe6\xa6\x2a\xb3\x66\xad\xca\xa2\x3c\x66\xff\x39\xc3\xc1\x71\x58\xb3\xee\x17\xb4\x49\x53\xaf\xc9\xb0\xc8\xf3\xdf\xcb\x29\x41\xa9\x89\x62\x07\xbc\x47\x8f\xa9\x1f\xa8\x98\x29\x0c\xce\xdd\x15\xad\x65\xe0\x4a\x2e\xbe\xe6\x50\xf9\xc7\x6c\xab\xbf\x9f\x50\x14\x3c\xc2\x7b\xc4\x23\xe7\x3a\x24\xc4\x52\xb8\xa9\x41\xd1\xd7\xe6\xd4\xad\x8c\x28\xa1\x86\xdb\x10\x67\xd3\x94\x6e\x37\x1a\x92\xe5\x9a\x28\x11\x69\xd2\x29\x7c\x8d\x0d\x3f\xd7\x83\x92\x08\x0f\x8c\xd7\x32\x9f\xa4\xe9\x4d\x44\x53\x82\xe1\x9b\x8e\xf6\x71\x81\x32\xbf\x7e\x8b\xec\xba\x31\x4b\x61\xfe\x62\x23\x80\xcf\x45\x93\xe5\x9e\x74\xcd\xf3\x45\x8c\x92\x26\xed\x25\xb1\x34\x03\x64\x50\x23\xf2\xb1\x68\x9f\x89\xa8\xb6\xf9\x9f\x83\x85\x16\xec\x4e\xd3\x5d\x3d\xa2\x86\x99\xa0\x2f\xe2\x6b\x4f\xcd\x2f\xcb\xb9\x3f\x31\x14\xa3\x54\x10\xe3\x9f\xbf\x9c\x4c\x05\x16\x0a\x62\x11\xba\xdf\xd7\x8b\xfb\xc3\xf3\xe3\xdd\xde\x3f\x20\x13\x0c\x43\xda\xcb\xed\xe6\xf1\xdf\xeb\xeb\x42\x35\x13\x31\x07\xf5\xf1\xa0\xb2\x39\x63\xab\x43\x26\x7f\x0a\x95\x33\x11\xd3\x0c\xd3\x72\xbb\xd1\x06\x1e\xb5\x6b\x97\xdb\xa4\xcb\x1f\xfd\x19\x34\x59\x1f\x3c\xa1\x22\xee\x20\xae\x2e\xc9\xf8\x20\xea\x29\x57\x50\xdb\x13\x64\x27\x8a\xee\xca\xb2\xb3\x7a\x10\xae\x1d\x10\xc8\x05\xfe\x1a\x16\x30\x62\x61\x7a\xc5\x5b\x51\x7e\x4c\x3f\x11\x67\xb1\x74\xc4\xc9\xdb\x72\x90\x6b\x1b\x50\xa3\xba\x9e\x92\x4a\xac\xad\x55\x50\x34\xf5\xd3\x28\xed\x6f\x22\xc9\x54\x24\x06\x61\xeb\x6b\x39\x8b\xc9\x5b\x4b\x61\xe5\x71\x2a\x10\xba\xb3\x16\x27\x5d\x40\x23\x08\xe2\x94\xa9\xb7\xe7\xa2\xdd\x2b\x9e\xc4\xe0\xa8\xee\x06\x5f\x43\x88\x45\x3a\x65\xb1\x03\x31\x10\x5a\x99\x3f\xe9\x22\x48\x28\x86\x7e\x4c\x56\xe8\xcd\xb9\xf1\xeb\x60\x79\xb1\x55\x0c\x2b\xd1\xc0\x4b\x59\x7d\xad\x09\x68\x22\x60\xa9\x67\xd5\xf9\x26\xf0\x94\x57\x55\x0f\xaa\x37\x91\x49\x08\xa6\x70\xd0\x68\xbe\x5b\x6d\x26\x91\x77\x13\x93\xc0\xba\x33\xc3\xd2\x81\xeb\x19\xf6\x17\x16\x7f\xff\x79\x62\xe2\xf4\x86\xe6\xb8\xf4\xce\x03\xb6\x5b\xd7\x3d\x80\x18\x7d\x70\x59\x81\x78\xdb\x67\x93\x80\x44\x1c\x12\x86\x68\xe5\x9b\xf5\xed\xe2\xf9\x7e\x7f\xd8\xad\x1f\x6f\x0e\xdf\x16\x3b\xff\xf4\x21\x8d\x23\xf7\xfa\x7b\x51\xbc\xf5\x25\xfa\x7e\xcd\xc6\xa1\x60\xa8\x7b\xb0\xcf\x1a\x31\x9c\x2a\x71\x14\x50\xea\x62\x59\x88\x19\x1f\x86\x57\xe2\x98\x70\xf4\x42\xf1\x8a\xed\xcd\xea\x4b\x96\x02\x13\xc7\x5c\x90\x64\x24\x1f\xed\x1a\x12\x1a\x78\x3e\xf0\xd5\x30\x01\x3d\xcd\xf7\x9a\x98\x06\x11\x9a\x82\x39\x98\x26\x20\x93\x61\xa0\xb1\x3d\xa9\x7d\x34\xf0\xa9\x82\x1d\xd6\x27\x5a\x14\xda\x57\x7b\xd9\xf5\x47\x1b\xc4\xcd\x62\x2a\x13\x4c\x63\xfa\xd0\xdf\x01\x8f\x60\x33\x23\x32\xe6\x2e\x48\x09\x43\x50\x8a\x93\x91\xb0\x41\xbc\x5b\xdc\x78\xfd\x3b\xa7\xa9\x42\x5d\x37\xbb\x99\xa1\x70\x7d\x17\x58\x1b\xfc\x74\xca\x22\xdc\x94\x0f\x2f\x56\xaa\x1e\xb6\x20\xf2\xe3\xa7\x48\x21\x13\xa7\x5a\x07\xdc\xb9\xe9\x77\xc3\x42\x97\xd9\x32\x0e\x77\x11\x8b\x23\x6e\x6b\x45\x8b\xb3\xc8\x0f\x1f\x23\xda\x11\x13\x33\x15\xa0\x8d\x66\x9f\xf5\x21\x2b\x1c\x49\xf7\x4c\x70\x2c\xe6\x22\xa4\x96\x8d\x03\x8b\x0f\x0f\xd0\xd9\xa5\x31\x57\x0a\x41\x0a\x15\x82\xd3\x9e\xeb\x01\xdc\x68\xde\xfd\x8a\xb9\x16\xb1\x1c\x61\x1e\xf5\x68\x76\x8a\xd0\x32\xfa\x3a\xe0\xcc\x4c\xdd\xb7\x89\x65\x2c\xb1\x54\xf3\x68\x8b\x54\x6b\x3b\x25\xc6\x07\x68\xac\x94\xb2\xe0\x1e\xe4\xa6\x6a\x7f\xc2\x1a\x32\x7e\xc8\x82\xc4\x0f\x95\x82\x34\x76\xa9\xf9\x1b\x1b\xd6\xd2\xae\x5a\x71\x1c\xa4\x75\xdd\x35\x4b\x51\x7f\xe6\xb0\x12\x79\x6e\x53\x76\x70\x45\x12\xd5\xf7\x8d\xc5\x20\x2e\xef\x8c\x84\x91\xa5\x17\x6b\x45\x30\x07\x66\xbf\x45\x47\x3a\x7e\x8d\xd7\xeb\x37\x1b\x88\xa3\x30\xe8\xc9\x78\x37\x66\xf2\xc9\x20\xb1\xfe\x93\xaf\x1e\xb1\x62\xba\x2e\xc5\xfb\x49\xd4\x39\x06\x1d\x21\x1d\x66\xdd\xc0\x29\xf4\x0f\x67\x22\x85\xae\xe3\xcd\xb9\x78\x81\xb2\x58\xbd\xb6\x1f\x64\x48\x18\xf7\xb7\xa9\x39\x3a\x44\xe7\xa7\xa1\x92\xd8\x48\x8e\x8f\xdd\x55\x0f\x0c\xe5\x0d\x96\x17\x34\xf4\x5f\x45\x7d\x45\xe5\xef\x2f\xd7\x80\x7b\xaa\xaa\xca\xba\x3d\x12\xde\x46\x5b\x9b\x31\x4a\x06\x4e\x9e\x37\x7b\x87\x4e\xdd\x7d\xfa\xfc\x33\x6b\x36\x21\x46\x7a\x6a\xdb\x7d\x25\x4e\x57\x9a\x92\x6d\x0f\x8d\xf8\x8e\x0f\x9c\xb0\x1d\xa8\x6b\xd7\x05\xf8\x92\x20\x54\xfe\xc4\x1a\x92\x01\xcc\xa6\xf4\x4c\x12\xb0\x18\x33\x91\x8f\xf0\xf1\xa3\x1c\x88\x17\xfc\xcd\x51\x77\x77\x09\x75\x8c\xbc\x26\x56\x59\x6a\xd7\x54\xd9\xe9\xd4\x61\xf1\xda\x66\x41\xad\x1e\x87\x7a\x2d\x32\x25\xf2\x51\x48\x32\x89\x12\x9b\xf9\xed\x15\xc4\xb6\xeb\x9f\x8b\xed\xcd\x28\x4b\x6b\x92\x38\x48\x23\x1b\x92\x47\xb1\xff\x60\xe7\x91\x44\x26\x49\x04\x4b\xbc\xfa\x55\xd5\x64\x75\xd3\xeb\xcf\x99\x84\x3a\x81\x61\xac\xf5\xfb\xcf\x39\xab\xe0\x78\x15\xf7\x4e\x28\x4d\x30\x32\x5f\x34\xaf\x08\x6a\x40\x92\xa8\x47\x7f\x8b\x34\xb0\x84\x79\x77\xab\xcd\xd3\xf6\x6e\xe5\x83\x01\x09\x23\x1c\x2d\x4f\x40\x6c\xa3\x33\xc7\x3b\xda\x0a\x93\xb0\x80\x13\xe7\x58\xf4\xea\x93\x7c\x64\x3c\x26\x2c\x10\x96\x6a\x3b\x7b\x07\x2f\x37\x71\x9d\x1a\x4a\x78\xcc\xd1\x36\xce\x6a\xef\x1c\x0c\x2b\x1d\x4c\x22\x12\x81\x45\x26\x96\x6e\xce\x33\xcc\xe2\xe4\x62\xbe\x8b\x8c\x30\x38\xe4\x4f\x39\x3d\x57\x73\x3a\x9c\x8e\x42\x72\x3f\x95\x1e\xe1\x57\xeb\xd1\x9d\x7a\x5a\x3e\x93\x48\x22\x03\xe5\xa2\x2b\xf6\xa0\xf4\x0d\x02\x90\x36\x41\x14\xea\xb5\xac\xe6\xb3\x07\x89\x54\x09\xc6\x90\x46\x1a\x44\xfe\x0e\x2a\x04\xe3\x6a\x4b\xbd\x93\x33\x5c\x0c\x7f\x6b\x13\xf0\xb7\x4a\x34\x86\xdd\x11\x92\x87\x79\x59\x55\xea\xac\x78\xf1\xa4\x97\xa3\x8f\xa1\x3a\x20\x73\xed\x70\xff\xa3\xa7\x32\xa9\xe4\x7d\xf6\x00\x19\x01\x87\x03\xa2\xc3\x08\x6b\x17\xf6\x9b\x1f\xeb\xc7\xdd\xe1\x76\xf3\xfc\x78\xb3\xd8\xdf\x6d\xba\x79\x04\x44\x22\x3b\x26\x12\x34\x96\x85\x5e\x5e\x1c\x33\xc6\xd0\xa4\x4a\x20\xb1\x87\xa6\xce\x8c\x99\x3f\xab\x13\xa0\x01\x7a\xed\xc8\xc2\x56\xbf\x22\x3c\x69\x59\xfe\xfa\x6d\x52\xa1\x34\xb9\x88\x2b\xe4\x7e\xb3\x34\x61\xfb\x81\x96\xcd\x60\xb8\x4c\x48\x50\x48\xe0\xfe\x61\xe1\x9f\xda\xd0\xc4\x16\xf0\x88\x06\x64\xa9\xba\x3f\x8b\x58\xf4\x20\x04\x97\x8a\x98\xad\x24\x33\x94\xb4\x1b\xe3\x00\x43\xb8\x6d\xad\x81\x47\x57\xf4\x68\x28\x51\x06\x63\xa0\xfe\x1c\xc1\xb4\xa6\xaf\xcf\xfb\xd2\xcc\xa7\x01\xb1\xd9\xc1\x07\xd1\x34\xaf\xf0\xf1\xb3\x2c\xfe\x0e\xad\xb2\xa1\x41\x18\x90\xb0\x47\xda\x89\xaa\xca\x3a\x6f\x9d\x06\xa9\xc1\x42\x93\x4c\x95\xd6\xf6\x9a\x9a\xf5\x34\xd0\x22\x4a\xbc\x40\x86\x6c\x46\x61\x34\x1a\x92\x18\xa7\x36\xea\x2f\xe1\x62\xee\x4b\x67\xdb\x56\x5b\x0f\xe5\x04\x3c\xa1\xda\x0d\xf7\x67\xdf\x29\x70\x89\xae\x32\xcf\x6f\xd0\x5d\xf5\x0d\xb1\x85\x32\x9c\x44\x55\xc3\xb2\x2c\xf3\xb1\x3d\x42\xc3\x54\xe0\x22\xc7\x43\xcc\x63\x47\xae\x50\xba\xbe\x33\x27\x89\xf1\x95\xfe\xd6\x08\xf9\x3b\xc1\x6d\x1a\x4a\x12\xf6\x6c\xb6\xcf\x3b\xf8\xcf\x4b\xd5\xed\xe7\x34\x0a\x23\x04\x62\xea\x72\x98\xe8\x99\xdb\x61\x68\x14\x5a\x84\xf9\x03\x40\x73\x3e\xcd\xaa\xab\x5c\x3b\x35\x34\x8a\x99\xb4\x36\x57\x79\x72\x84\xf1\xdd\x6f\x27\x11\xae\x1d\x8b\x04\xb1\x69\xad\x7a\x78\x3e\xd3\x38\x8a\xfc\xf0\x7f\x17\xf5\x2b\x68\x74\xe7\xae\x36\x90\x2f\x04\xf7\x0c\x4d\x42\x50\xa9\x83\x80\x59\x35\x37\x87\x65\x1a\x0f\x53\x7b\x64\x25\x48\xfc\xad\x91\x56\x60\x64\x8f\x51\x1a\x84\x58\xe6\x33\x30\x51\x7b\x3e\x7b\x8f\x65\xf2\x9d\x53\x2e\x11\xfe\x80\x2b\x5d\x18\x93\xc3\xdd\x6a\xd3\x35\x4a\x8d\xd9\x90\xdd\xf2\xce\xb2\x66\x7e\xa6\xa3\xe5\xfb\x1b\x8e\x74\x1c\x77\xf7\xf7\x77\xff\x7a\xbe\xbb\x39\xd8\x0d\xcb\xdf\x8e\x05\x01\xce\xbd\x7e\x56\xdc\x7e\x22\x35\x66\x28\x93\x91\xe7\x71\x7b\xb8\x74\xee\x59\x77\xf4\x53\xa6\x44\x4a\x3c\x6d\xa9\x13\x86\xbd\x0a\x28\xf6\xdb\x0f\xe5\x34\xc2\x50\x6a\xeb\x2e\x63\x51\xe8\xf6\x9c\x83\x0f\x14\x53\xce\x0d\xf5\x5c\x8e\x77\x05\xee\xe8\x3f\xe0\x32\x5f\x37\x6a\x28\x37\xc2\x3a\x87\xad\x69\x7e\x5f\xaa\xb7\xac\x78\x19\x2a\xd8\x18\x2a\x22\x8d\x60\xc6\x83\x67\x9b\xf8\x77\x59\xc0\xbd\x28\xf4\x6f\x36\xc4\x72\x25\xd0\xee\xaf\x4b\x43\x66\xb3\xc4\xc8\x1d\x70\xce\x9b\xec\x94\x43\xbb\xab\x4f\x41\xf5\x86\x0a\xc5\x70\xb0\x5d\x8c\x19\xeb\x89\xfe\x2e\x68\xde\xdd\x42\xb2\x14\x41\x41\x9b\x9f\x8f\xeb\xed\xe1\x69\xb3\xb9\x3f\xac\x36\x0f\x0f\x77\xbb\x5d\x7f\xb6\x50\x25\x0c\xf5\x05\x43\x58\xe0\xec\x0e\x95\x7f\x9c\xbb\x77\xb9\xbe\xb3\x89\xc2\x34\xe9\x6a\x1b\x6b\x87\x2d\x9c\x8c\xa3\xa1\x41\xe0\x3a\xf9\xa2\xbb\x01\x16\xd0\x50\xc3\x19\x73\xe0\x90\xe7\xbc\xc9\x8e\xa2\x81\xcd\xb9\x51\xe5\x71\x08\xc0\x37\xd4\x88\x18\x4f\x96\xbb\xd5\xe6\xa0\x1d\xe3\xb6\x6f\x92\x02\xef\x70\xbb\x5e\xec\x9f\xb7\xeb\x8e\x7e\x6c\x77\xd8\x3c\x1e\x96\xeb\xef\x8b\x7b\x1f\x40\x4f\x09\xb1\x5a\x9b\x99\x3e\x98\xb2\x4f\x5b\xcd\x4e\xf4\x94\x04\x20\x1c\x89\xcf\xcb\xb9\x5f\x7a\x29\x71\x0c\xe7\x96\x76\xeb\xf1\x7c\xdc\x9c\xa0\xb8\x01\x91\x4f\xb6\xe1\x94\x24\x0c\x37\x48\xf9\xb9\x42\xe0\x78\xb0\x52\x22\x6d\x01\x9d\xe3\xc1\xf3\xe9\x11\xdf\xaa\x94\x4f\xf9\xee\x2b\x81\x1b\x57\x3f\xf9\xd3\x20\xb6\x08\x5a\xe7\x3a\xd8\xd3\xe1\x51\x1c\xad\x9c\xf2\x64\x6b\xf2\xd7\xa4\xc0\x88\xdf\xf0\xd0\x64\x41\x42\x32\x7f\x50\xa5\x81\xb4\x75\x30\x28\xd2\xb9\x2f\x9f\x77\x37\xbd\x36\x90\x49\x03\x13\x29\x17\xa4\x59\x6a\x5b\xb2\xe8\x80\xc1\xbd\x03\x4b\xdd\x4c\x4e\x43\x66\x05\xfe\xda\xb5\xf9\x08\x1f\xdf\x3a\x8c\xaf\x49\x43\xce\x1d\xae\xc4\x3e\xb9\xe3\xf4\xf2\xad\x40\xb0\x06\x69\xd7\x08\x99\x35\xc3\xc8\x95\xef\x60\x54\x9a\xfa\x19\xa6\xbd\xba\xf4\xf5\xe0\x46\x81\x95\xae\x84\x5f\xd6\x02\xf6\x0c\x08\x16\x8d\xe8\x0e\xe1\xf1\x17\x8c\x54\x22\xc6\xc5\x8f\x8e\x98\xc7\xb5\xc7\x71\x02\xae\xde\xd4\xda\x73\xaf\x59\xa5\x97\xf0\xd2\xa1\x3a\xd2\x38\x09\xf0\x0e\xdf\xda\x1e\x65\x05\x3d\x68\xd5\xa4\x09\x09\x53\x47\xd0\xdd\x85\xe1\xd3\x24\xa2\xa1\x25\x4e\x80\xea\x05\x0a\xd5\x21\x33\x6d\x46\xb4\xeb\x95\x3a\x55\x50\x65\x3d\x92\x51\x36\x3e\x4d\x62\x61\x13\x30\xc6\xa0\x58\xdf\xf0\x0c\x4b\x93\x44\xa5\x2e\xb9\x6c\xcd\x58\x2b\x2a\xeb\x3f\x59\xd4\xc7\x69\x06\xff\x0c\x07\xca\x18\x26\xa5\x84\x23\x47\x34\xca\x09\xef\x9a\xf2\xb4\xba\x74\x86\x6e\x4a\x29\x47\xa0\xc0\x51\x54\x83\x81\xa0\x22\xc0\xc9\x8b\x29\xf9\x5c\x64\x47\x70\xdc\xdf\xe3\x11\xa7\xda\x20\xfa\x50\xe4\x36\x0e\xd1\x1f\x54\x69\x4a\x2c\x1c\xab\xc6\x57\x1d\xcc\xd2\x34\x8a\xb8\x19\x56\x3b\x7e\xba\x33\x0e\x0d\x81\x34\x4d\x58\xc4\x3b\xf1\xa4\xee\x9b\xa6\xd4\x60\xe8\x4b\xf8\xf9\x31\xa2\x7a\x30\x69\xca\x2c\x4c\xa1\xee\x91\xc8\x23\x37\x20\x65\xd2\x5a\x11\x58\x48\x62\x63\x1f\x9f\xb3\x57\x98\x94\x93\x84\xa4\x2e\xbf\xb6\x9e\xea\xdb\x99\x54\xc4\x96\x29\x4d\x41\x51\x9f\x2b\x5f\x0f\xfa\x8f\xa1\xcd\x9f\x0a\x66\x0b\x9e\x5a\x0f\xb6\x9d\x25\x83\x18\x73\x2a\x53\x69\xd9\x67\xea\x3d\x88\xe3\x3d\xda\x75\xf6\x1c\xdb\xbc\x43\x75\x67\xda\xbf\xce\x9a\xdd\xa9\x14\x44\x04\x83\x4a\x62\xd9\x25\x27\x53\x1d\x45\x58\x90\x22\xb4\x5e\x89\xfa\x15\x4b\x0e\x27\x00\xcc\x4f\xa3\xd5\xdd\x8b\xeb\x58\x0b\x67\x4b\x21\xb4\xde\x12\x6b\x74\x3f\x91\x72\x2d\x5c\xc1\x28\x4e\x94\x07\xf1\xeb\xa6\x2c\x7a\xb4\x6b\xaa\xa5\x55\x3f\x3f\x0c\x38\xc7\xe6\x49\x9d\xfd\x05\xca\xa0\x69\xf2\x0a\xa2\xfb\xda\x06\x42\xa4\x0b\xc2\x6c\x2e\x6e\x73\x78\x4a\xf9\xaf\xcd\x48\x48\xb9\x4f\xab\x62\xe8\xdf\xfd\xc2\xac\x41\xc3\x48\x6a\x30\x6c\x0d\xc5\x7f\xce\x70\x9e\x80\x8a\x18\x69\xbf\xc5\x60\x40\x1d\x88\xc5\x21\x36\xc6\x49\x15\x7f\x89\x8e\x70\x8e\x56\xc8\xf2\xdc\x2e\x9b\xbb\xd5\x66\x68\xb5\xb8\x7e\x01\x28\xa3\xba\x72\x3d\x4b\x32\x36\x9b\x26\x63\x81\x71\x89\x6f\xb4\x10\xef\x54\x79\x93\xd5\xca\x95\xda\xb7\xdb\xae\x78\x71\xd9\x2d\x76\x6d\xba\xb0\x90\x29\xde\x69\x8e\xd8\x91\x58\x34\xdd\x1b\x8c\x1f\x29\x94\x4c\x39\x88\xc5\xc0\x78\xeb\xf7\x21\x16\x45\x36\x6e\x5e\x43\x73\x0b\x50\x3f\x88\x5f\xcf\xa7\xa6\xbc\xde\xe0\x59\x94\x30\xdc\x27\x51\x52\x53\xe4\x3f\xcb\x2a\xef\xc8\x19\xcf\x1d\x0d\x90\x25\xad\xf0\x97\xa4\x81\x07\xd0\x78\x12\xb2\x4f\x3c\xc2\xee\x02\x2b\x3d\x71\x5b\x65\x4a\xa8\x1e\x96\xc7\x22\x16\xa7\xcc\xe7\x5e\xeb\x46\x14\x4d\x66\x4f\xc9\x2b\x75\x4d\xc3\xe2\xf6\x90\xc3\x8c\x7f\x03\xbe\xe0\xda\x37\xa5\xc4\x43\x03\xcb\x77\x78\xbc\x9d\xa5\x1b\xf3\x7d\x85\xc0\x8c\x60\xf9\x31\x20\x57\x71\x6d\x09\x09\xd0\x50\x33\x79\x76\xaa\x7f\x96\xdd\x63\x26\x49\x8c\x71\xd1\x02\x3e\xf0\x1c\x2f\xbb\x5f\x4e\x0c\x0f\x6d\x35\xe0\x53\x79\xb3\x1e\x60\xe2\x19\x25\x2a\x31\x9d\x17\xfb\x85\xec\x81\x61\xd4\x24\x20\xba\x02\xf1\x41\x58\x83\xa5\xa1\x94\x41\x1f\x58\xab\x17\x85\xee\x2b\x30\x26\x51\x64\x96\xf2\x08\x9f\xc5\x64\xbf\x0e\x62\x54\x4f\xe6\x3b\x28\x16\x0f\xa3\x4c\x9b\x73\xd3\xe9\x7a\x18\x96\x42\x84\xae\xb1\xf5\x1c\x77\xf5\xe9\x13\xe2\xad\xf1\x1a\x62\x41\x80\xe5\x05\x5e\x48\xae\x3d\xed\x7f\x0e\x23\xa0\x73\x5c\x22\x86\xb1\x94\x30\x07\x88\xae\x32\x98\x88\x9c\x19\xc6\x04\x21\x23\x7a\x1b\x6b\x19\xec\x9a\xea\x8c\xb4\x2f\xdd\x3b\x33\x01\x78\x6c\x9d\xca\x13\xf6\x43\x05\xea\x06\x8e\x2e\x5c\x77\x99\xa6\x2a\x19\x93\x29\x1f\x06\x17\x66\xe9\x03\x86\x67\xf3\xd7\x89\xc0\xfe\x91\x79\xcc\xa1\x63\xc7\x68\x0d\x3e\x51\xe9\xd5\xcc\x47\x10\x89\x55\x99\xac\xe0\xbe\x14\xfa\xd3\xa4\x34\x93\xa1\xea\x0b\x27\xd6\xcd\xeb\x3f\x2d\xff\xc9\x16\x54\x3b\x5e\xdd\x34\x93\x52\xa2\x7d\xbe\x91\xff\x8b\xc6\x08\x6a\xf1\x4d\x08\x29\xa6\x77\x56\x02\x9f\xd4\x25\xb2\x3e\x99\x94\x52\xd3\x78\x44\xce\xff\x08\xcd\x47\x59\xbd\xf5\xa4\xd4\xfd\x9e\xf6\x77\x83\x7f\xdd\xad\x01\xd3\xc5\x0f\x99\xaa\xca\x9b\x85\xb7\x41\x98\x4a\x55\x62\x89\x5a\x30\xe8\xff\x00\x9d\x15\xcb\x74\x14\x62\xdc\xf2\x08\xf9\x55\xd8\xc2\x77\x89\xb9\x50\xde\x5c\x2c\x7b\x6a\xa0\x49\x2f\x99\x62\xda\x54\x9e\x2f\x37\x59\x85\x7c\xa0\x96\x68\xf8\x94\x0b\x35\x9d\x86\x90\xc6\x98\x77\xab\x5b\x77\x57\x7b\xf3\xdb\x37\x32\xc3\x75\xe7\x69\xae\xf7\xdf\xf7\xa5\xe7\xb5\xfb\x3a\x30\xc6\x40\x48\x5c\xef\xff\x7e\x5c\x4c\x7f\x50\xc6\x69\xec\xea\x15\xae\x30\x73\xad\xbb\x89\x45\x01\xa6\x02\xf8\xef\xfe\xc3\x9b\xba\x9c\xa4\x01\x52\x14\x55\xa7\xf2\x63\x7e\x36\x71\xc2\x52\xac\xea\x78\x15\xf5\xeb\xb2\x9d\x1d\x43\xff\x8f\x13\xa6\xa4\xa3\xfd\x5d\x89\x53\xe3\x89\x12\xbe\x14\x22\x35\x9c\x98\x50\x4a\x1f\x83\xfe\xd8\x0a\x29\xb3\xc9\x9e\xcd\x83\x88\x63\xd5\xc4\x53\xf9\x06\xaa\xbc\x26\x2c\x9d\xdc\x31\x8c\x13\xea\xa0\xfd\xeb\xa2\xe9\x4b\xa5\xe7\xe7\x11\x0f\xb9\x1a\xc0\xcc\x9c\x35\xe8\xc9\xee\x46\xdb\x14\x0f\x75\x84\x8c\x5e\xef\x19\x7c\xdc\x02\x96\xa0\x3f\x39\x14\xd7\x2d\xf8\x4f\xca\xa3\x34\xc1\xe1\xc7\x64\xfa\x77\xc8\x4f\xdd\x11\xc3\x23\x69\x7c\x49\xab\x53\xd6\xb2\x74\x1c\x59\xf1\x72\x0b\x28\x57\x59\x77\xa7\x02\x8f\x89\x75\xf8\x9b\xcb\x09\x3c\x15\x87\xe1\xb1\xb1\x04\xdd\xa7\x6c\x2e\xb0\xce\x13\x1e\x61\x26\xd5\x16\x51\xd9\x7a\xc8\xf9\xf7\xa6\x22\x00\xe7\x3b\x23\xcd\xe8\xa7\xd4\xbc\x23\xe3\x84\xa7\x89\xa0\xb1\xd7\x94\x46\x9a\xc1\x2f\xa7\x29\x4f\x85\x46\x6e\x07\x8b\x2f\xbf\x8a\x36\x8d\x3f\x5d\xaa\x8c\x67\x77\xb4\x34\x59\xa3\xd0\x1e\x4f\x35\x41\x0b\xe0\x4e\x66\xff\x15\xf8\xe3\xc3\x9c\x2f\x4f\x21\x12\xc4\x11\x27\x43\xdd\x3c\x89\x4b\x79\x9e\x6c\x9c\x9c\xc5\x36\xd6\xb1\x78\x5e\x2f\x47\x17\xb3\xd4\xb2\xa8\x18\x4b\x46\xf2\x60\x19\xdf\xf7\xa2\x42\xab\xe2\xb9\xee\x3e\x00\x53\xc0\xcc\xe0\xfc\xbb\x05\x78\x3c\x1f\x1d\xa1\x9d\xef\x03\x04\x83\xb8\x0f\xe3\xdf\xe0\x3a\xc2\xea\x1e\x09\xcd\x7d\xf9\xd1\xfd\x15\x84\x13\x8e\x68\x3c\x34\xeb\x66\x39\x59\x02\xdc\x58\x42\xcc\x9d\x30\x70\x83\x5a\x87\x9f\x7c\x55\x11\x87\x18\x3a\x3d\xbd\x66\xb9\xd0\x90\x9f\x5e\x33\x31\xa8\x8b\xe2\x22\xb1\xe1\xf4\x63\x56\xec\xb2\x97\xa2\x9f\x57\x82\x6a\x74\x25\x50\x7f\xd1\x19\xd8\xd7\x65\xb7\x86\x0b\x29\xc0\x6b\x91\xd4\xbd\x6c\x6d\x7f\x1f\x09\xb8\xbd\x38\xf4\xe5\x0e\xf2\x7c\x0c\xaf\x1e\xbf\x98\xd0\x56\xa9\xdd\xae\xbe\x69\xfa\x7b\xf2\x72\x32\xb5\xf8\x72\x6f\x26\xa0\x0e\xe6\x90\xcc\xd5\x70\x29\xad\x70\x38\x12\x87\x58\xb1\x04\xfc\x04\x43\xfe\x55\xdf\xd5\x70\x84\x63\x1e\x4e\xe2\xb2\x2a\x8f\x13\xf6\x48\xd7\x49\x07\x0a\xd5\x94\xfe\x3b\xf5\xbd\xb8\x8e\x38\x71\x91\x68\xb8\xcf\xfe\x73\xb6\x48\x53\x5f\x18\xe8\x45\x3c\xfd\x73\x69\x08\xd1\x6a\x3a\x23\x00\x6a\x77\xb2\x35\x9a\xa3\x14\x1f\xd7\x26\x4c\x2d\x01\xcf\xc7\xba\x68\xcd\x8e\xb9\x8c\xf7\x38\x78\xfe\xc9\x19\xed\x0d\x15\x8e\xc4\x23\x03\x66\x5e\x35\x2a\x0b\x1e\xaf\x6c\x93\xc8\xd0\x87\x7a\xe1\x58\x56\x97\x9f\x55\xf6\x09\x3f\xaf\x11\x41\xcc\x50\xa1\xc9\xe9\x65\xa3\xfb\x87\xe5\x25\x96\x50\xcc\xf7\x4a\x13\x0c\x5e\xe1\xe2\x5f\xbf\xbc\x4c\x63\x5c\xe3\x27\x10\x81\x00\x92\x78\xd2\x51\x3f\x92\xbb\xac\x78\xc9\x5d\x9d\xd2\x27\x35\x25\x22\x0a\x83\x20\xf0\x88\xba\x31\xfa\xd2\x0f\x85\x88\x28\xc5\xc8\xb3\xa3\x0b\x7d\x15\x35\xec\xcb\xbb\xd5\xe6\x03\xe0\x2d\xf2\x0f\x1c\x09\x86\xf6\xca\xbb\x45\x0e\xc3\x50\x2c\x75\xf4\xf9\x45\xac\x06\x75\x1f\x4f\xf9\x5f\xa8\x6b\x18\x91\xc4\x92\xb9\x1a\x64\xcc\x0e\x22\xd9\xfd\xe8\xad\xa6\x17\xd0\x20\x36\xbe\xba\x2a\x17\x1f\xb5\x27\x2c\xb1\x28\xf0\x9b\x73\x35\xe0\xd0\x69\xbb\x87\xb8\xb1\x39\x91\x88\xb9\xc2\xcb\xaf\xdd\xff\xab\x9f\xa7\xd0\xa9\xcd\xdc\xe9\x8d\x79\x7e\xbe\xbb\x19\x45\x51\x44\x22\x28\xf2\xdc\x9d\x8e\xbe\x4e\xda\x3f\x0c\x4d\x62\xd6\x81\x66\x2c\x01\xaf\xff\x2e\xf5\x52\xe4\x79\xd9\xf7\xd4\x02\x45\x18\x1f\x4a\x7d\xce\x9b\x2f\x79\x0e\xc6\xe3\xcf\x02\x89\xb4\xe0\x43\xf1\xd3\xf9\x81\x6c\x8d\x75\xd2\xd1\x8a\xb8\x9c\x91\xff\x7d\x4e\x28\xca\x43\x09\xad\x6f\xdb\x39\xfc\x09\x77\x91\x11\x5c\x29\x5c\x49\xdf\xa1\xca\xb0\x9e\xcd\xfa\x27\xb7\x42\x35\xa5\x17\xf4\x33\x82\x43\x62\x65\xd5\x91\x17\x75\x32\x65\x04\x55\xd2\xaa\x57\x5a\x51\x81\xfb\x52\xbd\xad\x3b\x1c\xae\x10\x69\x8a\x8f\xa2\xc1\x86\xac\x26\x01\x04\x21\x64\x84\xe9\x5d\x64\x5b\x5d\x34\x8d\x50\xaf\x58\x8d\xda\x23\x29\x03\xe2\x27\xbb\xd0\xb1\x2d\x20\xef\x39\x3c\xf6\x20\x8e\x5f\x31\xcc\x18\x21\x49\x12\xbb\xb0\x59\xf7\xb5\xae\xcd\x73\xdf\x59\x47\x58\xcc\x71\x7c\x12\xe7\x1a\xf4\x20\x4d\x2e\x54\x64\xeb\x1d\x0c\x40\xfd\x4d\x20\x29\x4c\xf7\x92\x9a\x45\x98\x10\x3c\x34\xd9\x11\xb6\xbe\x08\xaf\x6f\xb5\xc2\xa8\xeb\xa2\x81\x6a\x0b\xc5\x90\xa8\xd1\x08\xad\xad\xbb\x27\x6d\x45\x88\xff\x33\x10\x9a\x74\x26\xbb\xa8\x9a\x3b\x55\x3e\x55\x98\x3e\x1b\x3f\x31\xc4\x0c\x59\xe7\x0d\x26\x6a\x6a\x54\xac\x2c\x3c\x9f\x88\x11\xc0\x2c\xc6\xe4\x6e\xb5\x39\xce\xa4\x35\x7d\x2f\x43\x45\xe2\x21\xd8\x50\xdd\x96\xd5\xbd\xa8\x9b\x07\x2c\xe7\xee\xdf\xc3\x50\x86\x11\xe2\x93\xb8\x40\xa7\xe7\xb8\x12\xa7\xac\x2f\x3b\x17\x86\x25\xc4\xd1\x90\xa2\xd0\xd1\x78\x2b\x34\xd2\x66\xa0\x70\xe7\xdc\x42\x0d\xa2\x52\xaf\x57\xcc\xfe\x9f\xac\x5d\x03\x52\x89\xbf\x2e\xb4\x19\x5f\x25\x89\xb6\x7c\xb5\x3d\xf9\x19\xee\xea\x77\x85\x29\x3d\x8c\x4b\x06\x3c\xd5\x41\xcf\x09\xde\x9e\xaa\x9b\xe2\x8b\x40\x89\x0c\x03\x8b\xd3\x43\xdd\xbf\xc2\x97\x7b\x5a\x39\xa2\x49\xcf\xc4\xb0\xd0\xe5\x6c\x56\x90\x77\xc9\x23\x19\x72\x8d\x49\xc1\x93\xa8\x9b\xc5\x4b\x05\x33\xf0\x1e\x19\x1a\x86\x6c\x64\x59\xbd\x6a\xad\x11\x57\x31\x6a\xeb\x1d\xbb\x2e\xb2\xd7\x59\x46\xc5\x8e\x75\xf3\x6a\x2b\x97\xd1\x40\xf9\x3e\x49\xa9\x5d\x95\xd7\xc9\x98\xb1\xd8\x72\xb2\x6d\x4c\x05\x35\x54\xb6\x5a\x79\x62\x18\xc8\x58\x26\x69\xe4\x37\xbf\xf9\xe3\x53\x26\x84\xe0\x51\xff\xbf\x65\x56\xf8\xc0\xe8\xe4\x36\x49\x60\x15\x52\xfe\x55\xd6\x59\x71\xae\x07\x75\xa8\x32\x09\x89\x67\x25\xbb\xcd\x0a\x51\xa8\x4c\xe4\xb3\x01\x62\x99\x88\x98\x85\x03\x02\xbd\xab\xf4\xa5\xa4\xa9\xb1\xde\xd2\xd3\xb9\x7a\x01\xa7\xd7\xd1\x8d\x3d\xd5\x9c\x0f\xc2\x39\x03\x4e\x99\x29\x89\xba\x91\x69\x6c\x93\x37\xdf\xcb\x73\x85\x2c\x64\x8f\xbd\x23\xd9\x75\x11\x60\x41\x4e\xcb\x76\xed\xd9\x89\x3f\xbe\x0b\x8b\xed\xbe\x6e\xc5\x49\x06\x5c\xc4\xbe\xdd\x04\xb8\x0f\xbb\xab\xf6\xa5\x75\x14\xee\xae\xe0\xe2\xae\x3f\xa7\x34\xb2\x0c\x88\x16\x7a\x32\x8d\x31\xce\x7f\x1f\x11\xa6\xa8\x52\x70\x3c\x64\x5d\x61\x68\xbd\xf4\xb0\x2b\xbf\x73\x8c\x7f\x49\x30\x8d\xfb\x50\x53\x7e\x87\x5f\x3b\xcb\x8d\x30\xbe\xab\x8c\x14\xc2\x60\x7a\x20\xdc\x13\x2a\xa7\x85\x43\x0d\x08\x23\x25\x97\xb8\x0f\x1f\xb2\xda\xd5\x61\x4e\x7e\x49\x45\x80\x53\x63\xf9\x7c\x7b\xdb\x15\x41\x48\xe5\x84\x32\xa4\x67\xe0\xf9\xb2\xd4\xcc\x5d\xa4\x63\x83\xfb\x19\xee\x33\x4e\x39\xf1\x6f\xc5\x5f\x24\x44\x2c\x54\x9d\xb8\x35\x06\xbf\x07\x53\x14\x44\xa2\x3a\x0e\xa5\xde\xba\xde\x7c\x74\x47\x81\x04\x80\xd0\x27\xb4\x6d\x10\x11\xaa\x76\xaf\xfc\x26\xea\xc5\x4c\xe0\x51\x91\x80\x62\x7f\x9f\xcb\x7f\x12\xea\xed\xea\x5c\x52\x81\x3b\x24\x3a\xf7\xac\x2a\x8f\xb6\xc6\xbb\x67\x0c\x9b\xdf\xab\x54\x48\x42\x4c\x04\x3a\x9b\xf6\x07\x5c\x06\xd2\xb7\x46\x85\x34\xc6\xe2\x39\xcf\x69\xfd\x85\x34\xa2\x51\x11\x89\x11\x85\x62\x95\xa1\x06\xd9\x74\x15\xa9\x28\x92\x98\x6e\xb4\xb0\xed\xdb\xb2\x6a\xce\x05\xac\xca\xf2\x2d\x1b\x72\xff\x18\x15\x83\x40\x63\x14\x83\xcc\x4f\xd0\xb8\xad\xed\xf3\x17\x48\x28\xc5\x77\x77\xb9\x69\x27\x29\xe8\x7f\x38\x01\x83\xd4\xfa\xea\x30\x2a\xfd\x18\x70\x26\x19\x95\x18\x8d\xfc\xf3\xb7\x5b\x0b\x31\x70\x7f\xa6\x42\x87\x1e\xd2\xe4\x99\x18\xd1\x76\x5d\x5e\xf6\x59\x93\x4f\x8a\x8e\x14\x95\xc6\x32\xe3\xa8\x32\x82\x62\x68\x1b\xa8\x54\x84\xbe\x06\x6e\xdd\xbc\xce\x7e\x67\x26\x02\x34\x11\x5c\x6a\x7d\x28\x9b\x3c\xff\xda\x3c\x89\x49\xe4\xd8\x76\xad\x64\x31\xaa\x53\x2f\xb3\x4a\xaf\x0b\x3d\x74\x48\x14\x97\x06\x11\x7c\x07\x77\xae\x7e\x88\x4a\x2f\x73\x31\x80\xd8\x0f\x2d\x5c\x25\x22\x92\xa4\xee\xe8\x79\xca\x85\x9d\x0f\xa3\x98\x84\x92\x31\x24\xc3\xf9\xe6\x98\xce\xe7\x9f\x54\x82\x75\x60\x5f\xa0\xb9\xad\x00\x6e\x2a\xf1\xd2\x99\xa2\x4a\x71\x65\xfa\xa3\x72\x52\x77\xe9\xfa\xe8\xc4\x52\xfd\x7e\xb3\x14\xf9\xee\x0b\xbb\xc4\xf8\xb8\x2b\x10\x70\x64\xf0\xed\x88\xdc\x67\x05\xfc\xac\xca\xce\x44\x51\x40\x6d\xa1\xe8\x41\x68\xfd\x03\xe0\x34\xdd\x88\x15\x68\x1a\xda\x74\x48\x5d\xe6\xef\xb0\xec\xf0\x5f\x0a\x80\x45\xc6\x73\x50\x94\x47\xa7\x76\x37\xfe\x75\x13\x05\x10\x0d\xe1\x77\x58\x1d\x34\x55\xcd\x34\x9a\x84\x1c\xe9\x72\xff\xfc\xf7\x6a\x4e\x57\xe5\x7c\x05\x0e\xd3\x01\x4d\xe2\xa0\xc3\xc2\x43\x15\x8e\xc1\x08\x3a\x90\x01\x7a\xa6\x47\xf1\xab\xfd\x59\x57\x88\x75\x8f\xc2\xee\xae\x4b\x18\xa5\xc8\xe4\x7c\xb7\xd9\x0d\x0d\xcc\xf6\xef\xe0\x7c\x34\x17\x28\xff\x39\xaf\x5f\x66\x74\xc8\x24\xa6\x57\x1b\xa8\x51\x14\xce\x69\x74\x35\x97\xf6\x1f\xfe\x7e\x91\x90\x6c\xc0\x08\xe1\xff\x1c\x1b\xc6\x9d\x9d\xfd\x7b\x76\xba\x62\xb3\x32\x3a\x49\x23\x6e\xab\x4a\x0a\xbb\x42\x12\x7f\x69\x22\x22\x3e\x46\x3b\xec\x1e\xee\xee\xd7\x9f\x39\xc6\x3a\xd1\x29\x82\x8f\xd7\x36\xff\x37\x0b\xc0\x1b\x8d\x6e\x02\x16\xa1\x7e\xd0\xa0\x4a\x0d\x3b\x4c\xbc\x0f\xc3\xbc\x9a\x06\x01\x0a\x18\x22\x3d\xe6\x38\x85\xa6\xa9\x13\x60\xeb\x4d\xc8\xae\x0c\xe1\xb6\x5d\x39\xbe\x5f\x1a\xd8\x9d\x16\xc1\xd6\xed\xe1\xf7\x6d\x7d\xd8\x78\x8d\x05\xa3\x53\x4e\xa9\x27\x29\x29\xdf\xe0\x58\x5e\x3d\xf3\x97\xa7\xb7\x4e\x85\xc0\x02\xbb\x73\x81\x41\xee\x2e\xa8\x3b\xbb\x28\x35\x63\x21\x62\x5b\xbe\x41\xb3\x7a\xcd\x4e\xd7\x9c\x47\x9a\xc9\x18\x49\x53\xde\x45\x91\xd5\xaf\xed\x31\x37\x99\xee\x9a\x13\x8e\x56\xd4\x84\x5b\x74\x77\x96\xc7\xac\x19\x28\xe0\x5c\x39\xdf\xb3\xa7\xb2\xe6\x26\x40\x73\xf6\x46\x94\xdb\x73\x4f\x9d\xa2\x45\xc0\xb0\x3c\xef\x55\xd4\x4f\x65\x99\x0f\x2b\xfd\x7c\x8f\x28\x41\x72\x65\x7f\x48\x4e\xb0\x0a\x5a\x24\x8a\x75\xf1\xb6\xd6\xbf\x2b\xcb\xfc\x21\x2b\x9a\x7f\x9d\xcb\x0e\x90\xa0\x65\xc4\x70\x4f\xdb\x57\xea\xcb\xc9\x22\xd3\x00\x63\xbb\xba\x3c\xcb\x2e\x04\xad\x65\x1a\x22\x89\xd4\x0b\x72\x5b\xf9\xbf\x2a\x92\x60\x38\xe3\xe4\xbc\x91\x55\xbb\x22\x86\xda\xd1\x46\xab\x30\xc6\x58\x5b\x0e\xa6\xe1\xf1\x64\x84\x4d\x12\xe8\xc4\x03\x11\x17\x79\xe7\xc7\x8f\x5f\xdf\xa4\x31\x02\x5b\x0e\x18\x42\x8a\x0e\xc3\x65\x67\x84\xa2\x7e\x7f\x5d\xfc\x61\xb2\xa2\x80\x89\x71\x09\x01\xa1\x18\x44\xb1\xd5\x17\xf7\x96\x57\x6b\xf4\x0b\x10\x10\x81\x3a\xde\x38\x9f\x47\x62\x62\xff\x98\xdc\x2b\x92\x3c\xf4\x7a\xa7\x0e\xec\x39\xc7\xf1\x6e\x20\xa4\xd2\x92\x65\x89\x2c\xaf\xaf\xe5\xcb\x0c\x84\x32\x4a\x12\x5f\xa4\x78\x84\xdf\x45\x87\xb0\x80\x10\x24\x77\x15\x08\x3b\xc8\xbb\xda\xde\xc9\xa6\x35\x79\xb4\x28\xa0\x98\x86\xf0\xd5\x5c\x8f\x65\x93\x19\xcf\x58\x35\xe9\x9a\x58\xc9\x6e\xa1\xf5\xea\x55\xb4\x33\xa9\xc3\xd2\xcc\x47\x11\x20\x02\x45\xb5\x17\x53\x37\x50\xe8\x65\x59\xd6\xcd\x80\x97\xdb\xf5\x8b\x63\xa1\x9d\x91\x10\x3f\x74\x86\x23\xc4\x29\xb5\xa0\xce\xd7\xf2\xe3\xe1\xe2\xb8\x13\x47\x26\xbb\xeb\x98\x30\x40\x90\xcf\xbe\xca\xfa\x1d\x08\x12\x63\xc1\xd7\xaf\x42\xbd\xed\xa1\x38\x97\xe7\x89\x4b\x04\x94\x68\x04\x0f\x75\x29\x49\x3c\xce\xa1\x9a\xe7\xda\x01\xaf\x6e\x81\x44\x51\x9d\xa6\x95\x87\x84\x4e\xdd\x29\x60\x82\x08\xac\xed\x95\xea\xbe\x6c\x9a\x72\x6b\x4f\xcf\xee\xf9\x98\x08\x88\x25\x27\xf8\x91\x0d\xc2\xe6\xc0\x94\xb4\x72\xdc\x55\x79\x2c\xdb\xef\x80\xfc\x77\xfb\x12\x01\x25\x62\x7a\xfc\x00\x0f\x38\x62\x15\xfc\x32\xf7\x31\x86\x2e\xbc\x80\xb2\xac\xed\x73\xbf\x97\x0d\xb4\xd3\x61\x05\x53\x2c\x04\x70\x11\x60\xc0\x77\xf9\xe3\x79\x78\x0c\x82\x08\x00\x91\x6b\xde\x65\xba\xd6\x9a\x9e\xec\x62\xfe\x3a\x1a\x63\x02\xb0\x75\x00\x5f\x72\xd1\x61\x0a\x40\x88\x10\x33\x1c\x4a\xe4\xf9\x1e\xea\xcf\x19\x5c\xae\x08\x6f\x0d\x08\xad\x3c\x04\xc5\x61\x7b\xbf\x74\x4b\x40\xca\x00\x92\x21\xfa\xfe\xbb\xa8\x17\x66\x52\xd8\x06\x5a\x71\xac\xa4\x7f\x05\xfd\x32\xa1\xb5\x02\xad\x43\x13\x7a\x66\xf1\xba\xe9\x53\xa4\x00\x91\xcd\xc2\x78\x6f\x58\x7c\x2d\xbc\x39\x02\xe6\x00\xa4\x56\x40\xd9\xbb\x0f\xb3\xb5\x81\x93\x97\x81\x54\x26\xe9\x00\x8e\xf4\xaf\xb3\xa8\x1a\xa8\x76\x20\xea\xb2\xf8\xad\xbf\xb9\x21\x2a\xe2\x76\x5a\x2d\xcf\x97\x65\x3b\xf7\xbb\xa7\x36\x41\x60\xeb\xaa\xb1\xa2\xe0\x07\x8c\xe5\x5b\x8c\x09\x44\x82\x26\xff\xdd\x6a\x73\xf8\xbe\xd8\xde\xac\x16\x4f\xfe\xca\x30\x00\x0c\x51\xdd\x97\xae\x50\xf5\x6a\x02\x0c\x3f\x95\x09\x93\x44\xd3\x11\x63\xcb\x48\x23\xc3\xf5\x8a\x79\x84\x45\x47\xf7\x9b\x6f\x07\x1f\x66\x74\xa1\x31\x1b\x8d\xe9\x7e\x64\x74\x59\xc2\xed\x91\x28\xb4\x7e\xc8\x8a\xf3\x15\x97\x84\x49\x94\x44\x58\xa2\x23\x43\x1e\xe5\x26\xfd\xf2\x34\x89\x21\x61\xd0\x6b\xa8\x57\x20\xf4\xe5\xb9\x9e\x2e\x7a\x43\x69\x82\xb9\x9d\x7b\xa7\x52\xfc\xd9\xe9\xfd\xe5\x54\x34\x34\x05\x0c\x3d\x78\x5e\xec\xa7\xaa\xfb\x26\x54\x31\xad\xed\xa0\xa3\x2a\x7d\xe7\x65\x1a\x0a\x3c\x0d\x1c\xe9\x5a\x6b\xb8\x8b\x6a\x72\x48\x99\x34\x0c\xb9\x93\x47\x6d\xb7\x18\xa8\x2e\x73\x16\xb8\x61\x41\x64\xf4\xc0\x31\x41\x0d\xc5\x89\x91\x6f\x58\x28\x30\xbe\xe3\x93\x2d\xf6\xc8\x9b\x0f\x1c\xcc\xbf\x24\x4b\x93\x58\x79\x55\x14\x51\x59\x65\xdb\x1b\x90\xe7\x97\xdb\xb2\x6a\xd7\xcf\xf6\x69\xe5\xdf\x8d\x47\x96\xfc\xf8\xb1\x14\xaf\x83\x60\x81\xe1\x89\x11\xb6\x5e\xb3\x69\x3d\x84\x91\x28\x83\x31\x5c\x32\x24\xfa\x2a\xe0\x63\x82\x5d\x76\x1d\x04\xa7\xde\xea\x5c\x96\x65\x3e\xa2\xb4\x73\x5d\x64\xac\xb1\xa0\xa3\x80\x5f\x16\x06\x3c\x80\x65\x1b\x99\x00\x75\x5e\xd9\xfa\x1d\x85\x16\x67\xbc\x90\xfe\x8d\xa5\xb2\x99\x1c\x28\xf4\x9d\x42\xf9\x14\x74\x0b\x7d\x0e\xc9\x48\xcd\x3d\x4d\xe8\xad\x32\x5d\x35\xdf\x57\x40\x76\xa3\x1c\xa5\x5d\x5e\xbe\x64\xf3\xec\xac\xc6\x28\x16\x05\xc2\x0b\xeb\x60\x82\xee\xae\x68\xe0\xa5\x75\x3a\xb0\x3a\x2f\x0a\x2d\x26\xc3\x77\xd7\x2a\xb0\x44\x02\xf6\x01\x6e\x6c\x5a\x61\x62\xcf\x18\x1d\x8a\xc0\x31\xf1\x7f\x42\xfa\xf6\x25\xe1\x8a\xbb\x0b\x70\x89\x65\xe2\x7e\xb2\xed\xcb\xbf\x39\x7d\x40\x26\xc8\xac\xfe\x70\x59\x96\x7f\xb3\x3c\xc8\x80\xb2\xa8\xd2\xf7\xac\x50\x99\x07\x19\x73\x42\x88\x8c\xb4\xe3\xd5\xf0\x45\x3b\xc3\x97\x6d\x7b\x18\x85\xf5\x02\x6f\x59\x9e\x77\xa7\xda\xc8\x44\xe6\x84\x04\x24\xd6\x7d\x4d\xbb\xfb\x6e\xc3\xea\x9f\xeb\x63\x6b\x98\xa0\xbd\xfe\x3f\x13\x0e\x8e\xf6\x27\x62\x83\x5e\x16\x46\x76\x76\x9d\xb7\xb9\x31\xdf\xcb\x73\x0d\x6b\x3d\x8e\x6a\xb5\x17\xb0\x28\xb6\x1a\xeb\x65\xf5\xd1\x3a\xd3\xad\xf5\xf9\x13\xb2\x49\xb7\x50\x4b\x2c\xd9\xab\xb2\x97\xd7\x26\x48\x27\xad\x91\xd0\xc6\xca\x76\x63\x1c\x09\xf4\x2d\xb8\xe9\xd2\x36\x1a\x83\xc0\xc8\x3f\xd6\xfb\xd0\xff\x2d\x0e\xa5\x30\x57\x6c\xf5\xbd\x37\xd8\x76\x89\x75\x60\xf1\x06\xa2\x86\xfd\x47\x39\xc4\x74\x75\xb7\x49\x9c\xa2\x92\x33\x52\xf2\x72\x7e\x1d\x70\x42\x92\x90\x7a\xe9\x67\xaf\x7a\xdd\xff\xee\xf8\x6d\x12\x6e\x0d\x9c\x83\x16\x97\x7a\x5f\xde\x4c\xdc\x68\x4e\x08\x0d\x42\xb4\xc0\x97\xe2\xbf\xff\x7d\x6d\x3a\x0b\xa7\x6d\x89\x6c\x28\x0c\x33\xff\x1d\x49\xef\xf2\x72\xcd\xfe\xd4\x76\x4e\x2c\x07\x45\xeb\xd4\x41\xd5\x5c\x76\x63\x22\x81\xb6\x07\x8b\x1c\xec\x5d\xe2\x93\x0e\xcc\xe8\x7f\x8c\xef\x95\x12\x2b\x6d\x3d\x54\x97\xff\x34\xe1\xf9\xc9\x2d\x82\x30\x95\x1e\xed\xda\x5c\x6d\x76\x6d\x8f\x90\x2a\x9f\x49\xe9\x58\x8c\xda\xbf\x2b\x8d\x8e\xd9\x7e\xf3\xc7\x00\x97\xd2\x36\xe8\x04\x03\x3a\xfe\x03\x59\x9b\x24\x9e\x8c\x03\xa3\x11\x06\x94\xb4\x8d\x4c\xed\x41\x1c\x9f\xa0\x9a\x50\xfb\xb7\xfd\x98\x2d\x6d\x3c\x17\x35\x34\xeb\xed\x2a\x4d\xd3\xc9\x78\x31\x4d\x7d\x6a\xfb\x3b\xaa\xdd\xe1\xea\x1a\xbf\x04\xe7\x80\xa0\xf8\x53\x05\x77\xaa\x1c\xbe\x86\x20\x96\x88\xca\x79\x9d\x23\x05\xf1\xc9\x58\x09\x9e\xe2\xd1\x01\xc5\x90\xe3\x9d\x13\x22\xd3\x4e\xcb\xeb\x67\x59\xbd\xf5\x18\xde\xf1\xf5\xca\x10\x8c\xf2\xc0\xa9\x54\xaf\xbf\x75\x7f\x34\x9e\xb5\x7d\x5d\xbf\x94\xfb\x3f\x6e\x27\x3c\xac\x9c\x10\x1d\x45\x28\x28\x33\x5e\x39\xab\x11\xcd\x21\x76\xb3\x62\x78\x1d\xdc\x7c\x00\x37\xf8\xdc\xc9\x6a\x2f\xa4\x06\x41\xe7\x47\xf1\x0b\x8f\xb3\xa0\x0f\x6e\x3f\xb5\xc3\xe9\x30\x10\xbe\x37\xb3\x4a\x31\x9e\x1e\xc9\x43\x67\xf6\x15\x4c\xe7\x8e\xd6\xdc\x89\x40\x7d\x78\x9b\xe0\x01\xa9\x3f\xec\x9c\x18\xfc\xf9\x2b\xbc\x03\xde\x48\x22\x07\xc3\xcf\xd5\xad\x7f\x0c\x08\xc2\xd8\xeb\xe4\xa0\x3c\x56\xdf\x90\xd0\x60\xa8\xe4\x5a\x97\x85\xc8\x1f\xb2\x42\x8d\xbd\xc6\xb6\xab\x4c\xac\xa9\x60\xc3\x4b\x1d\xc3\xdb\xf4\xcb\x19\xc2\x88\x2d\xb5\x7a\x87\x1e\xf7\xde\x0b\x27\x76\xfa\xb3\xb6\x7f\x40\xe2\x94\x68\x97\x76\x5a\xd4\xab\xf2\x98\x15\x2f\x8b\x42\xdf\x62\xfc\xe8\x37\xdf\x29\xb5\x8a\x14\xf5\x80\x99\x61\x7e\x23\x0b\x88\x4a\x89\xec\xf9\x47\x5a\xbb\x0a\x03\xd1\xf5\x6d\x59\x3d\x95\x65\xde\xdd\xd2\xa4\xa1\xb3\x99\x7f\xc0\xa5\x5e\x5e\x9e\xce\xd5\xa9\xac\x27\x5b\x59\x10\x52\x81\x13\xd1\x4a\x57\xd5\xeb\x5f\x50\xa9\xac\xee\xc9\x4a\xe6\xe2\x48\xed\x65\x2a\x16\x7d\x1d\xef\x84\xac\x9c\x93\x20\x4a\x0c\xe6\xdb\x8f\xe2\xd7\x16\x84\x7a\x75\xfe\x68\xdb\x22\xec\xbe\xee\x1d\xcc\x61\xa6\x6e\xf2\x23\x91\x0e\xa0\x53\xed\xeb\x88\x3d\x9c\xb3\x36\x02\xfa\x4c\x2e\x8c\x25\x49\x6d\xee\xa9\x54\x6f\x22\xab\x50\xa8\xc1\xb5\x25\xa1\xc6\xb2\xb6\xfb\xac\x35\xf5\x1b\xf5\x37\xd8\x90\xda\xab\x20\xd0\x6a\xe8\xfc\xb9\xcf\x34\x55\x03\xe2\x24\xa0\x52\xa1\x27\xa0\xb0\x64\x64\x5a\x67\xe8\x3a\xa5\xc4\x32\xf0\x61\x15\xf8\xfb\xe0\xb8\x0c\xd2\xc0\x26\xc2\xcb\x02\xfa\x3f\x59\x55\xfb\xba\x35\x43\x8b\x73\x8d\x56\x61\x30\xf9\x59\xa6\x62\xa7\x7d\x5d\xed\xa0\x7a\x87\xca\xd9\xee\xd7\x96\x26\x27\x81\x0c\x89\x65\x2b\xc0\x5a\x8e\x53\x56\x74\x3f\x2f\x9d\x54\x08\xbc\x0b\x75\x1e\xf8\x4c\xbe\x99\x5b\x05\x13\xac\x49\xf1\x30\xb2\x81\x49\xe2\xba\xa9\xd8\xca\x6a\x5a\xc4\xc9\xef\xed\x44\xf5\x3f\xa0\xd2\x04\xbf\xbf\x2a\x8f\xc7\x69\x84\xba\x6d\xe6\x31\x66\x78\xea\xd7\xf2\xc3\xef\x6e\xc3\x22\xac\xb6\x0b\x88\x74\x28\x01\xbb\x56\x65\x7d\xa9\x1b\x38\x0e\xc8\x9c\x39\x09\x74\x9a\xe2\x24\x78\x2f\xb1\xaa\xd4\x12\xa6\xb5\x5e\xea\xf8\x8d\xb4\x20\x18\x2d\x42\x8b\xc9\xe6\xef\xa7\xfb\xd0\xe8\x09\x43\x12\x26\x18\x8c\xd8\x18\x93\x29\x91\xb7\xe7\x8c\x07\x68\x70\x12\x06\x8a\x44\x4e\x87\x47\x67\x4d\x8f\xab\x18\xdf\x23\xd0\x1a\x19\x49\x1e\xb2\x62\x09\x8d\x0d\xc5\x5b\x7a\xb7\xc9\x6c\x0a\xa3\x90\x5a\xfb\xb7\xb4\x96\xf9\xfc\xf1\x1f\x46\xd4\xb2\x4f\xef\x5e\xbd\x38\x43\xfb\x47\xc5\xd1\x9f\xfb\xf3\x7c\x1a\x12\x72\x72\x12\x26\x42\x62\x28\x0d\x9a\x0e\x0d\xd7\x94\x3f\xfe\x5c\x4d\x7e\x3c\x01\x0b\xb2\x2f\x2c\xb6\xfe\xce\x2f\xe2\xb0\xf5\x62\xbd\xd8\xc0\x4a\x78\x39\x87\xb6\x41\x68\x04\xc2\x2f\x64\x8d\x9f\x6e\xf7\x71\x95\x01\x6a\x7b\x49\x8d\x65\x9d\x5b\xac\x47\xff\x56\x89\xd3\xeb\xb2\x2c\xa7\x65\x64\xbe\xb3\x06\xc4\x8b\x59\xf2\xd0\x29\x35\x2c\x27\x61\x9a\x58\x64\x32\x12\x98\xb8\x60\xe3\xc6\x98\x49\x2f\x16\x25\x18\xe1\x36\x16\x8c\x15\x0e\x63\x33\x6d\xb3\x09\x71\x5b\x95\xa5\xbe\xac\x73\x44\x82\x2c\x2f\xbb\xb3\x44\x8c\x34\x2a\x46\x8c\x9f\x8a\xc7\x71\x2c\x3a\x4c\xa3\xfc\xe4\x9c\x0f\xb9\x88\xc2\x3e\xb0\xb3\x15\xe7\xba\xaf\xb0\x0e\xba\x95\x73\xee\x44\xbe\x38\x09\x05\x8b\x94\xf6\x15\x4f\x16\x88\x7a\x9e\xb5\xfc\xbe\x0a\x12\xb4\xf7\x91\x36\x08\x87\xa1\x26\x9f\xad\xe5\x24\x54\x44\x23\x15\xa1\x27\x5b\xf2\x4c\xca\x75\xb7\x47\x87\x2a\x12\xda\x46\x52\x36\x0f\x77\x8b\xe0\xb0\xb8\xb9\xd9\x76\x6d\x94\x21\x22\xf2\xa9\x2a\x1b\xb4\xf5\xb7\x30\x56\x01\x98\x5f\x35\x8a\x87\x16\xa2\x96\x8b\xcb\x77\xe1\xcc\x9a\x51\x99\x99\xfd\x5f\x2f\x8e\x3f\x14\x77\x3f\xf7\x0a\x67\x9c\x84\x3a\x49\x10\x58\xb0\xdf\xec\x17\xf7\x43\x0d\x74\x4e\x42\xa0\x31\xc6\xe8\x36\xa2\x79\xed\xfe\xa6\x01\xf5\x30\x21\x3b\x05\x34\xd9\x9d\x4f\x28\x53\xa9\x27\xd3\xc3\x04\x31\x1f\x1a\x4c\x9e\x07\x67\xf6\x6d\x22\x42\x20\x72\x3c\x50\x8f\xf0\x31\xc9\xd7\x0f\x0f\x8e\x88\xc4\x51\x6c\x05\x5b\x0d\xec\xcb\xdd\x59\x8e\x37\x4d\xdf\x0b\x62\x4c\x56\x5a\xc8\xc3\xb9\xd0\x5b\x31\xf8\x1e\x51\x90\xda\x42\x62\x9c\xbb\x56\xc8\x00\x55\x56\x7b\x32\xa4\xb6\x93\xd4\xf8\xbd\x0f\xf2\xec\xc4\x1b\x6e\xab\xf2\xb8\xc3\x42\xf5\xf1\xac\x8c\xc2\xc8\x9e\x8f\xfb\xea\x5c\x37\x39\xd4\x75\x07\x89\xc5\x33\xe3\xa1\xd4\xad\x8f\xdb\xbb\xed\xfd\xce\x1e\x85\xd2\x78\xc1\xb2\x1b\x71\xb1\x91\x24\xff\x04\xa1\x09\x44\x6f\x9b\x2e\xa1\xf8\xaf\x15\x1f\xfa\x64\x10\x23\x0d\x68\x9c\x61\xd9\x5d\x17\xb5\xe1\x24\x8a\x53\x6a\xe1\xca\xe7\xa3\xb2\xd5\xc2\x5d\x8b\x8c\x43\x47\x79\x3d\xa8\x07\xe5\x24\x4a\x64\x8c\xb4\x3f\xcb\xac\xc8\xce\x9f\xa7\x96\x38\x89\x68\x1c\xa2\xfd\xb6\x2a\xeb\x63\xe9\x2f\xf7\xaa\x79\xb5\x47\x28\xef\x26\xfa\xc0\x9c\x44\x3c\xb2\x6f\x7e\x14\xbf\x9e\xa0\x42\xd0\xa3\x6f\x01\x82\xe2\x9e\x05\x7c\xdc\x88\x8b\xff\xab\x88\x00\x11\x01\xc6\x51\x04\xdf\xa9\xee\xe7\x04\x0b\x91\x1f\xce\xd1\x5e\x9c\xba\x9a\x42\xf0\x96\x75\x24\x03\x83\xc4\x58\x50\x08\xd5\x74\xec\x78\x22\x3f\xe4\xc3\x58\xcf\xec\xca\x8f\x94\xb2\x81\xd7\xb1\xfa\xfa\x2c\xa0\x84\x93\x48\x13\x81\xc2\x0f\xa7\x09\x96\x65\x74\x9a\x46\x3a\x8a\xe2\x11\x06\xe8\x16\xd5\xde\xc6\xab\x28\xd2\xdc\x22\xbd\x7f\x82\x44\x42\xaf\xee\x6a\x19\x60\x58\xe2\xd7\x6f\x83\xa9\x04\x3c\xc1\xe9\x72\x03\xf5\xdb\x95\x26\x30\x27\x91\x09\x55\x6c\x55\x22\x5a\x8f\x1d\x8a\x06\xf7\xf6\xee\xa8\x8d\x8c\x89\xb1\xee\x15\xb1\xaa\x37\x3f\x22\xf7\xf7\x38\x88\x03\x44\xea\x0f\x18\x3b\xda\xbf\x4a\xcb\xd8\xb1\x7c\xfc\xd9\xfd\xc9\x84\xf8\x45\x7d\x8e\xc3\x27\x57\xaf\xdd\xae\x38\x30\x36\x0d\x7b\xc4\xb4\xf4\x30\xa8\x79\xc5\x45\xc2\x51\x28\x07\x81\x85\x1a\xde\x63\xbb\x48\xc3\xa7\x2e\x0c\x14\x87\x42\x84\x16\xfb\x81\x5b\xcc\x6d\x7b\xb2\xb6\x27\x0c\x4c\x0e\x8f\x38\x94\x56\x34\xe7\x84\xc1\x8a\xd1\x4a\x88\x43\xad\x34\xf7\x6d\x0f\x65\x01\x97\x7f\x9d\x85\x2d\x4a\x72\x3d\x22\xa2\x88\x0b\x5e\xfe\x0e\x55\x9d\x95\xc5\xdd\xf1\x64\x4f\x36\x87\x2e\xfc\xa2\x1e\xa7\xbd\x3e\x90\x74\x98\xcb\x5b\xe4\x39\x4a\xc6\x4d\xd3\x88\x9c\xc4\x71\x02\xdc\x0c\xad\xe3\x47\x39\xe9\x41\x0d\x18\x4b\xbb\xff\xb1\x3a\xdb\x8a\x96\xd1\xc7\x8e\xd3\x98\x28\x07\xdf\xd9\xd4\x4a\xf8\x75\x10\xa7\x42\x63\xcd\x53\x87\xcd\x72\x9c\xcd\xe3\xab\x59\x24\xb0\xc6\xe4\xa9\x9d\x93\x56\x92\x61\xda\x83\x05\xd4\xd2\x15\xd7\xe7\xbc\x41\xf9\x8e\x6a\x30\x9c\xcc\x24\x56\x18\x69\xe4\x56\x7f\x1b\x88\xcd\x8f\xdf\x47\xa4\x3a\xb6\x42\x19\x5a\x8c\xa8\x3a\xda\x36\x61\x85\x83\x4d\x59\xc1\x4b\xd5\x01\xbd\xda\x16\xad\xd0\x38\x5c\x6f\x57\x61\x64\x05\x2d\x86\x33\x68\xfc\x13\x32\xa6\xf8\x4e\x8f\xeb\xcd\xd0\x76\x8b\x25\x4d\x2d\x1b\x8a\x2a\x91\x47\x5d\x5b\x37\x3a\xef\x3e\xbc\xd4\x54\x93\x01\xd5\x6e\xdd\x09\xa9\x8f\x7f\x40\x51\xc2\x3b\x6e\x6a\xa1\x9a\x4e\xc0\xa2\x6d\x93\x1a\xb3\x86\x2e\x24\x33\xa8\x62\x71\x1d\x74\x68\x5d\x6e\x69\xc9\x90\x36\x13\x73\x2b\xd6\x91\xc1\x64\xcc\xdd\xe2\x66\x6c\x69\xc5\x3a\x01\x0c\xa6\xda\x9c\xcc\x61\x25\xea\xd7\xc3\x53\x55\x96\x66\xa6\x2a\xb8\xed\x2e\x22\xb4\x45\x96\x67\x2c\xba\xfa\x8b\x50\xd6\xfc\x8e\x18\x6b\xc5\x10\x1c\xe6\x18\x42\x2b\x8b\xcf\xba\xcf\xe4\xf4\xa9\x5b\x03\xa2\x3d\x18\xb7\x3b\xc7\xaf\xe6\x1a\x20\x50\xb6\xee\x00\x65\x93\x7c\x0d\xdf\xe8\x47\x12\x12\xaa\x70\x10\x05\x1d\xe7\xdf\xbc\xf9\x92\x10\x69\x8b\x08\x4b\x99\x67\x2f\x6e\x21\xba\xa6\x40\x07\x4c\xf8\x1c\x92\x55\x3d\x9e\xec\x43\x49\x98\x28\x62\x41\xa7\xef\xf7\x83\x40\x47\x12\xf2\x04\xa2\x5e\xc2\x74\x0c\x4b\xf1\x7d\xa4\x25\xb2\x45\x95\x34\x31\x92\xf1\x1d\xfb\xcf\x49\x04\x26\xc1\x28\x72\xe1\x72\xd7\xae\x16\xe2\xeb\xf4\xaa\xbf\xd8\x58\x4a\xc7\x51\xcd\xc5\xff\x61\x7d\xc9\x32\xfd\x9f\x49\x32\x73\x76\xff\x49\xe2\xd4\xf2\x4c\x38\x06\x58\xf1\xeb\x9f\xe7\x6b\x8d\x70\xdf\x57\x4a\xc4\xe5\xdc\x3d\xde\xed\xef\x16\xf7\x87\xbd\x4b\x35\x62\x93\x06\x8b\x26\xed\xa9\xd8\xce\x3d\x8f\xc6\x8c\x09\xda\x27\x57\x39\x49\x92\x20\x45\x80\xe2\xf3\xef\x37\xc3\x55\x98\x24\x21\x47\xb0\x92\x8d\x4d\x78\x5a\xa6\xc9\x0e\x9e\x24\x52\x61\x18\xee\x5f\xdb\xf1\xc5\xc6\x48\x37\x44\xea\xcd\x73\x14\xcc\x6c\xac\x49\x2a\xed\x11\xa8\x44\xb1\x6b\xca\xd3\xcf\xb2\x7a\xf3\xf7\x48\x4d\xc8\x7a\x63\xeb\x3e\xab\x47\xc5\xd2\x7f\x6b\x59\x24\x4c\x31\xe1\xa4\xb6\x97\xe7\xcb\x2d\xc0\xf2\x34\x7d\x03\x06\x21\x12\xb6\xc9\xf3\x65\x5a\x43\xe7\x7a\x70\xaa\x75\xe0\xb7\x11\x14\x04\x5d\x9e\xab\x59\x20\x29\x27\x89\x48\xad\x30\xe5\x76\x26\x2e\xf9\xc9\x15\x9c\x60\x68\xac\xc0\x08\xfa\xdd\xf1\x58\x56\x8d\xc8\xbb\x35\x23\x20\x41\x88\x8b\x01\xf5\xea\x90\x61\x18\xb7\xec\x55\xfe\x38\x49\x64\x1a\xe2\x7c\x3e\x58\xf5\x2a\x97\xdc\x74\x72\x86\x9f\x4c\x29\xc9\x08\x1e\x9f\x68\x97\xed\x9a\xb3\x86\xa2\x29\x1c\x2c\xb2\xfb\x75\xa9\x13\xc4\xec\xd4\xe7\x13\x54\x7f\x2f\x7e\x99\x48\x90\x08\x55\x47\xf8\xc6\x53\x55\xca\x1c\x8e\x93\x41\x57\x3c\x46\xec\xcd\xe2\x79\x7b\xf7\x87\xff\x2d\x1d\x85\x68\x54\x1c\x0a\xf8\xe8\x88\x01\x7c\x9b\x12\x58\x1b\xf9\x2a\xde\x61\x9d\xb5\x7b\xfd\xa2\x71\x30\xbe\xab\xca\xc7\xf9\xaf\x08\xd4\x52\xd3\xfe\x73\xb7\x79\x3c\x0c\xdc\x45\x4a\x08\x0f\x9c\x69\x6c\xe3\x14\x33\xf3\x94\x92\x48\x7a\xcd\xf4\x75\xad\xaa\xf2\xa3\x5e\x5e\xae\xe4\x10\xda\x7e\x31\x21\x36\x30\x57\x74\xf7\x07\xab\x5d\xf1\x7b\x59\x95\x05\xfc\xd7\x9f\x40\x34\x70\x35\x60\x1d\xb3\x63\x99\x23\x49\xf7\x98\xe5\xa5\xeb\x0c\x98\xf5\x36\xe7\x42\x6f\x8a\x49\xde\x8d\x06\x5a\x84\x58\xd0\xbf\x78\xfc\xbe\xd8\xef\x17\x8f\x4f\xdb\xcd\x1f\x7f\xae\x17\xbb\xfd\xfa\xf1\x66\xe1\x74\x81\x39\xa1\x61\x10\x23\x5b\x9a\xe5\xef\xfc\xe3\x69\x31\x3f\x25\x69\x98\x46\x98\x87\x10\xf5\xa5\x50\xb6\x1e\x04\xe6\x79\xb9\xdb\xce\x22\x8e\x1d\xd1\x78\x6b\x4e\x7c\x92\xad\x1d\x6f\xc0\x34\x02\x46\xc9\x90\x0a\xa3\xca\x86\xe9\xdb\xf1\x2f\xc4\x09\x43\xd3\xbc\x80\x8f\xef\x03\xee\x61\xdf\x4a\x65\x2c\xfc\xef\x37\xf0\x21\x26\x01\x30\x4a\xa3\x20\xb6\xbc\x2e\x2f\x2f\x39\xdc\x5b\xd5\xa4\x42\xc1\xc0\x54\xa7\x34\x56\xb8\xca\x44\x75\xbc\x2c\xb2\x4a\x55\xc2\x34\x8e\xf9\xb2\xbe\x62\x91\x68\xfb\x33\x2a\xba\xf8\x22\x6a\xf9\xe1\x30\x79\x64\xba\x37\x88\x28\x55\x56\x11\x5e\x68\xbd\x2d\x2f\x22\x6f\x2e\x9e\x0d\xf4\x93\x77\x4d\x29\xb7\x72\xa4\x8d\xc8\xf3\xac\x2c\x5a\xd3\x7d\x7e\x01\xd3\x54\x52\x4f\x0d\xb6\x76\x50\xf1\x71\x07\x46\x42\x8b\xb4\xc5\x83\x7a\xa4\x76\xd9\xb6\x52\xab\xdc\xdf\x21\xb3\xe6\x83\xd4\x54\x04\x81\x87\x29\x2c\xf2\x1c\x2d\xf1\xcd\xb9\x9b\x7a\x22\xa4\x08\xed\xaf\x4b\xd3\xf4\x09\x65\x2a\xa4\x2d\x2b\xb5\x39\x28\x3b\x85\x3a\x41\x46\xac\x1c\x8c\xf0\x74\x41\x7a\x45\x4b\x07\x7b\xf7\xf8\x6d\xbf\x5e\x3c\xf8\x1e\x4a\xa4\xa1\x67\x0c\xd8\x62\xc9\x90\x43\x57\x74\xf7\xd0\x49\xca\xdc\xc4\x6b\x9d\xd5\xb9\xda\x9a\xb6\x17\xe3\x1e\x36\xdf\x21\x6a\x77\x20\xba\x2d\x8e\x42\x00\xca\x15\x39\x62\xd9\x2e\x22\xad\x67\xf7\x10\x0a\x3c\x26\x6e\x22\x7a\xf8\xee\xe8\xc7\x52\x12\x5a\x9a\x8c\x17\xc0\xa8\xe1\x9d\x5e\x5e\xb6\xa2\x78\x1b\x7f\x97\x94\xc8\x80\x69\xc7\x91\xb9\xc8\xf3\x2d\xbc\x67\xad\xe5\x39\x50\xd1\xa9\xc7\xb9\xa5\x94\x00\xc3\x90\x10\x16\xd7\xfa\x17\xbd\x32\xbd\xd2\x20\x4e\x91\x52\xd2\x7b\xe4\x58\xa0\x60\x41\x1b\xae\x47\xa8\x13\x26\x86\x51\xa0\x73\x9e\xfb\x48\xd0\xac\xad\x32\xaf\x0e\x33\xd5\x8e\xf9\xbf\x0a\xdc\xa5\x51\x40\xd1\x2f\x6e\xdf\x7f\x2d\xaa\x22\x2b\x5e\xbe\xac\x01\xc6\x4b\x18\xda\x09\xc7\xcc\x8a\x2d\xdf\x96\xd5\xa3\xe7\xce\x9a\x8c\x6e\x14\x32\x0c\x74\xee\x6e\xf7\x4f\xdb\xf5\x6a\xe3\x77\xbf\x34\x4a\x52\x3c\x5f\x9e\xc7\xd8\xe6\xe5\x05\x97\xce\xf8\x43\xc6\xa1\xab\xc5\x2f\xb2\xa6\x86\x97\xce\xa7\xfc\x3a\x30\x91\x26\x51\x12\x0d\x0b\x6d\x1e\x44\x56\xf4\x61\x91\x34\x89\x79\xca\x3d\x11\x65\xfb\x1a\xee\xb8\xdd\x97\x8e\x36\xc0\xdb\xdd\xee\xbf\xfe\xb2\xd4\x2a\xa7\xef\x00\x76\xe5\xb9\x1a\x5a\x5a\x69\x22\x03\x14\x30\xba\x2f\x5f\x3a\x22\x2a\xe8\x78\x37\x27\x43\x93\x48\xc0\x0d\xe1\xd8\x36\xd7\xd9\xcb\x28\xbe\x96\x26\x26\x08\x9d\xb1\xe4\x86\xc6\x61\x41\x26\xa1\xc4\x94\x86\x02\x8b\x65\x30\xa3\xb0\x44\x71\x9c\xab\x13\x33\xa5\x51\x60\xac\x59\xda\x53\xf1\x4e\x46\x8b\x8a\x88\xb9\x10\xf3\x52\xa8\x37\xeb\x4a\xde\x1d\xb1\x4e\xee\xca\xba\x4f\xa9\x30\x1d\xc7\x9e\xd5\xcc\x12\xb1\x7f\x74\xaa\x02\xea\xc8\x7f\xbe\xae\x55\xe2\x24\x4d\x23\x82\xc4\x3e\xf2\x5c\x15\xbb\xd2\x51\xeb\xd6\xb7\x65\x35\xd1\xc3\x6a\xbb\x32\x21\x6d\xd1\x9d\xdf\xe0\xff\xdf\xdc\xb3\x34\xd5\x0a\xa3\x03\x35\xa2\xda\x57\xc8\xb2\x3d\xeb\x77\xa7\x2c\x89\x6d\xf6\x50\xeb\xa7\x0c\xd4\x84\x49\x62\x6a\xe3\xf8\x8b\x64\x82\x55\x0f\x2e\x0b\x8c\xd0\xc1\xfe\x70\x4b\x79\x4a\xb1\x2c\x28\xd3\x3d\xb4\x24\x15\x51\xaa\x12\xbf\x55\x15\x1a\x6b\xf6\x6f\x90\x7b\x74\x53\xac\xa7\xc5\x52\x9f\xa0\x57\x27\x8f\x21\x0c\xc5\x9d\xf4\x5c\x74\x7e\x5b\x2a\x49\x64\x0d\x22\x34\x39\xc6\xb4\x27\x7f\x99\x95\x4c\x65\x68\x73\xc1\x56\x13\xac\x79\x1d\x89\xee\xb4\xed\x89\x4d\x46\x39\x2f\x7e\x82\xbf\xf3\x9d\xc0\x0a\x71\x94\x9d\x3c\xef\xed\xb9\xd0\x63\xa7\x3d\x55\x09\x41\xa8\xa7\x40\x61\xfd\xf6\x3c\x19\x1d\x36\xa9\x36\x56\xc7\xea\x00\xad\x53\x3a\x9a\xcd\x9f\xd1\xbe\x8c\x0f\x8f\xd4\xd0\x14\xb1\x57\x27\x71\xae\x61\x79\xbe\x48\xaf\xca\xd6\xb6\xa5\xc2\xc1\xf8\x0a\x05\x39\x32\x7f\x18\x03\xd5\x88\x7c\xae\xbd\x61\xf7\x4d\x19\x89\x62\x3c\xd6\xb0\x90\x61\x32\x2b\xfc\x79\xc0\x88\x4a\x99\xa5\xa1\xff\x65\xcf\x15\x33\xa0\xbc\xe1\x84\x05\xc4\x92\x8b\xe2\x7e\xf0\x0e\x35\x16\x8d\x7e\xb9\x11\xb3\x40\x59\xd2\xd4\xa3\xa8\xde\xb0\x5c\x75\x28\xbd\xd4\x77\x0b\x13\x15\xba\x8a\x68\x4b\xef\xd4\xdb\x06\x2c\x64\xca\x91\x75\xfc\x6a\x9e\xaa\xf2\x98\xd5\xd0\x25\xde\xda\x46\xed\x29\x09\x71\xca\xd8\xcb\x9f\x8b\xd6\x66\xaa\x1d\xed\x83\xeb\x1b\x25\xf6\x50\x98\x94\x5d\xf7\x12\xe5\x6d\x1f\xca\xd0\x34\xbe\xf9\x63\xd5\xfd\x89\x01\xe9\x0a\x2c\x2d\xe0\x63\xba\xc5\xb1\x88\x73\xdc\xe2\xf6\xa0\x5e\x8b\x72\xd9\xcd\x67\x16\x13\x86\x71\x88\x4f\xe4\x39\xdb\x1e\x91\x0d\x5c\xa2\x0c\xe2\x22\xb7\xcc\xb3\xe0\xc4\x10\xbb\xdb\x44\x1a\x85\x1d\x8a\xf3\xf1\xce\xb3\x9c\x76\x6d\x26\xb0\x9a\xc9\x79\x59\xc3\x43\x39\x2d\x2d\xe0\x84\x25\x89\xc2\x54\xf8\x62\xb5\xff\x2a\x15\xc0\x12\x69\x75\xf6\x91\xed\xf3\x5a\x22\x65\xec\x29\xc5\xfe\x22\x60\x68\x9d\xbc\x64\xef\x80\xfb\x6c\xd5\xb3\xc2\x72\xc2\x68\xa8\x03\x39\xa8\x10\xba\x56\x68\x69\x3b\xb1\x14\x4f\xf8\x5d\x76\x2c\x73\xe8\x82\x6a\x8c\xf2\x2e\x8e\xfa\x20\xaa\x76\x00\x07\x5a\x70\x6d\xbb\x86\xc8\x4a\xee\x79\xab\xf4\x5a\xcc\xca\x75\x65\xcc\x46\x44\x51\x53\xcd\xb2\xaf\x75\xa3\xcb\x43\x7b\xf6\x28\x28\xbb\x3f\x25\xd0\x79\x79\x2e\xad\xfe\x09\x58\x77\x7e\xde\x73\xb0\xe4\xff\x4e\x88\x71\x90\xcd\x61\xdc\xd0\xa0\x67\x3f\xb4\x44\x9a\x93\xf1\x10\xd2\x72\x1f\x54\x65\x6e\x65\x74\x67\xed\x4b\x26\x99\x25\xba\xf4\x11\xe9\x4e\x50\x5c\xe4\xeb\x5f\x27\x28\xea\xce\x80\x66\x2a\x12\xb4\x0b\xa5\x3d\xd7\x50\x8d\xd3\x2b\x4c\x29\x95\xf4\x51\x85\x8d\xb1\xcc\x80\xeb\xa2\xa9\xb2\xfe\x26\x3a\xa0\xba\xed\x64\x21\xea\x28\x89\xea\x93\xf4\xd7\x41\x7f\xa6\x45\x6c\x79\x4d\xb2\x23\xec\x33\xa8\x82\xee\x36\x3a\x0e\x1c\x3f\x00\xee\xac\x79\xe3\x37\x5a\xdf\x03\x48\xcc\x2d\xa6\xa7\x6e\xca\x6a\x72\xcc\x32\x08\x75\x28\x5c\xdd\x61\x99\x15\x83\xad\x02\x42\x8b\xf6\x3c\x8a\x2c\xaf\x0f\x4d\x79\xd0\x90\x67\xef\xfd\x5b\x1a\xca\x70\x4f\x3d\x17\x15\xd4\xa7\xb2\xd0\xa0\x57\xdd\x42\xe2\x84\x50\xa3\x3c\x3d\x54\x05\xaa\xc1\x4d\x15\x21\x4a\x18\xea\xdd\xb6\x0f\x39\x7e\x16\x4e\x88\x36\x0e\x2c\x7f\x03\xb2\x99\x53\xe8\x68\x7b\x25\x11\x25\x63\xe2\xa9\x7a\xa6\xda\xb1\xed\xa9\x20\x68\x67\xfc\x6a\xf1\xb8\x5a\xdf\xa3\xe4\xc5\xe1\x66\xb1\xf7\x46\x29\x0f\x42\x8d\x9b\x51\x7b\x2a\x64\xc5\xcb\x03\xb4\x67\x78\x56\x1f\xef\x87\xbe\x1a\x0f\xa5\x2d\xe0\x7e\x2a\x9b\x8d\xb1\xa1\x6e\xd7\x12\x25\x16\xce\x82\x32\x5f\x97\x53\x23\xce\x95\xf3\x96\x6e\x27\xfc\xc3\x6d\x67\xe6\xc8\x17\x05\x4a\x31\x2d\x6a\x7f\xb0\x8c\x8f\x75\xdf\x5b\xda\x60\x3e\x0a\x5d\xfa\xc2\x3d\x36\x87\x16\xe4\x91\x49\x30\x44\xb6\x05\xdc\xa5\x97\x67\x5f\xf5\xe0\xda\x63\x6e\xfc\x0c\xb1\x0b\x7e\xd3\x81\x7f\x78\x2c\xc3\xd0\x89\xd0\x5c\xc7\x74\x26\x7e\xc6\x8c\x15\xc9\x63\x95\x22\xd9\xdb\x7b\xe9\xb0\x36\x7e\x39\xf1\xc4\xd1\xdb\x1e\xb3\xa2\x59\xff\x6a\x2a\x31\x3a\xd2\x79\x12\x13\x64\xf8\x5e\x6f\x57\x01\x4d\xfa\xbf\xc6\xac\x2f\xbf\xbd\x17\x85\x6e\x8f\xba\x2f\x31\x85\x3c\x49\x23\x1a\x75\x3b\xc0\x6d\x55\x1e\x6f\xcf\xcd\xb9\x82\xf5\xaf\x93\x28\xea\x76\x25\x3c\x88\xd3\xe4\x5b\x24\x32\xc4\x7c\xd0\xdd\x93\xea\xf7\x12\x9e\x68\x43\xad\xec\xae\xac\x44\x75\x09\xcd\xb9\xe8\x49\x77\x38\xe1\x69\x60\xb0\x0e\x00\x54\x05\xaa\x7c\x87\xea\x67\x25\x4e\x27\xa8\x7e\xcf\xe0\x63\xde\x81\xf3\x17\x86\x80\xd1\xd4\xfb\xf2\xc5\x97\x6b\xd9\x79\xf4\x99\x89\x37\x3c\x48\x78\x1a\xa7\xdc\x19\x8b\x22\xcf\xbb\x87\xe1\x1c\xa1\xd5\x77\xdb\xa5\xff\x13\xa3\xe1\x80\x67\x6c\x27\xf2\x61\xed\xf9\xfc\xe0\x31\x43\x1c\xe7\xe2\xc5\x89\xe5\x2f\x2f\x16\x05\xd3\xf6\xa3\xf1\x3f\xdc\x7f\xc6\xc3\xa7\x22\x8a\xaa\x8d\x1d\xe3\xd7\x97\x46\x58\xe7\x52\x8d\xff\xef\xd5\x28\x29\x6e\x94\xe8\x45\xf4\x9d\x0a\xed\xee\x43\x9c\xae\x92\x89\xee\x0a\x1d\x86\x58\x1e\x71\x14\xc5\xe5\xa0\x30\x27\x2c\x45\xf1\xd6\x4d\x32\x1d\x2a\xd4\xa8\x7e\x15\xf5\x20\xa3\xce\x75\x24\x95\xf5\x2c\xee\xf4\x84\x7e\x89\xc6\xbe\x0f\x65\x68\x9d\x9d\x2a\xe4\x68\x1a\xa6\x43\x38\xc4\xb6\x4e\x17\x2b\x59\x5e\xba\xbf\x32\x83\xeb\xdb\x26\x49\x2c\xef\xb4\x4b\x6c\xf8\x1e\x2a\x41\x1f\xef\xc7\x45\x42\xb5\xc8\xaa\x9b\xaa\x9c\x4e\x4c\x54\x27\xee\xd4\x38\xdd\xf9\x3c\x9a\x0d\x86\x06\x96\xf0\x2f\xcb\x3b\x26\x0f\x0f\x6b\x99\xe4\x3f\x3a\x48\xff\x27\xf3\x52\x10\x06\xe9\x28\xed\xfe\x5c\x38\x48\xc4\xb7\xb2\x1c\x3f\x99\x20\x22\x14\x96\xff\xc1\x96\x47\x6d\xcc\xbe\x2a\xcb\xd3\xa7\xb4\x1b\xee\xb2\x40\x5b\x2a\xb5\xfd\x6e\xbf\xde\x75\x10\x7d\x11\x12\x32\xa2\x1f\xf8\x6d\x02\x6c\x15\x61\x12\xe8\x9e\xde\xf2\x11\x3e\xf6\xa2\x78\xfb\x09\xe2\xd4\x2d\x47\x11\x26\x06\xcd\xdc\x9f\xb0\x74\xfb\x6f\xd9\x35\x41\x80\x74\x81\x1d\xd5\xbd\xdb\x96\x7d\x7b\xa4\x59\xea\x64\x84\xef\x45\xf1\x72\x16\x2f\x30\x1a\x65\x11\xeb\x10\xab\xde\x64\xf9\x8e\xbc\x55\x37\xbd\x18\x8a\xbf\x47\x12\x11\xe6\x11\x80\x36\x4c\xb9\xbc\x74\x36\xc3\x38\x84\x24\x12\x0e\x68\x2f\x2d\x45\x9d\x29\xe7\xdf\x77\xc2\x51\xcc\x77\x52\x29\x96\x2d\xdc\x43\x5d\x97\xc5\x21\x98\x77\xa1\x05\x0d\x29\x6a\x54\x2a\x51\x6c\xa1\x56\xe7\x49\xf4\x44\xd0\x84\xa0\xa5\xe0\x6a\xba\xd1\xb0\x98\x74\x49\x49\x10\xf9\x73\xaf\x83\x1b\xf8\xf7\x4a\x43\x61\xf9\xaa\x2d\xa3\xe4\x4a\x9c\x76\x30\x39\x58\x45\x1a\xc7\xc6\xda\x2e\x75\x3d\xb0\xc6\x44\x2a\x85\xfd\xac\x88\xcc\x19\x50\x38\xb9\x76\x96\x04\xc8\x29\x8b\x68\xbb\x25\x34\x5b\xcc\x97\x8f\x46\x81\xf1\x54\x21\xb0\x05\x35\xfb\x66\xe8\x81\x38\x11\x3c\x0d\x84\x83\x09\x3d\xdd\x59\xf9\xb2\x30\x1d\x7f\x40\xae\x14\xea\x28\x15\xe2\x98\xb9\x92\x45\xff\x10\x22\x0c\x2c\x10\x5f\x64\xf9\xa5\x27\xc5\x68\x5b\x58\x64\x35\xbd\xeb\x9e\x17\x61\xf6\x01\x64\x12\x23\x60\x57\x95\x85\xc9\x5e\xce\x15\x3c\x38\xaa\x04\x5c\x72\x93\xbe\xa9\xc6\x00\x80\x45\xab\x6e\xcf\x05\xea\x92\x8d\x93\x08\x42\x2a\x89\x24\x56\xfb\xaa\x2c\x2e\xd6\x9f\x52\x97\x69\x05\xc9\x64\x22\x28\xa7\x87\xa3\xa1\xf5\x9a\x27\xa9\x35\xa1\x02\xe6\xa3\x32\x0f\x59\xf1\x4d\xd4\x57\x45\x8d\x6d\xa7\xc8\x60\x78\xf9\xe0\xd9\xa5\xc6\xcc\x26\x93\x37\x51\x69\x82\x69\xea\x53\x55\x9a\xac\xa9\xad\x95\x84\x6a\xce\xfe\x35\x94\x4a\xe3\x61\x66\xc1\xc9\x6a\x7e\x5e\x2c\xca\x89\xd0\x11\x41\x34\xaf\x7f\x5b\xcc\xec\xd4\xaf\xd9\xc9\x4f\xcc\x6a\xea\xe5\x09\xad\x15\x17\x43\x08\xd2\xc3\xc5\xe6\xdc\x1f\xc4\xaf\x49\x57\x08\x62\xcc\x3f\xd4\x1f\xe2\x74\x10\xb2\x9f\x05\x40\x23\x84\x55\xd9\x98\xc3\xa2\x3b\x58\x05\x50\x86\xf6\xc4\xcb\xa5\x2b\x01\x10\x26\xb0\xda\x90\x22\xcf\x97\xe5\x2f\x1f\x26\xf6\x8d\xca\xf2\xdd\x08\xad\x91\x9e\xf1\x7a\x4b\xbc\xaa\xad\xb2\x57\x4a\x42\x13\x84\xd0\xe6\xc2\x51\xf0\xff\xe6\x1b\x98\xcd\xb8\x21\x1d\x68\xa1\x07\x5c\xa1\x6d\x23\x58\x12\x2e\xed\xe8\xf5\x3b\x9e\x1a\x4e\x64\x90\x1a\x6e\xc5\x9b\x5a\x93\xdb\x05\x97\xf7\xaf\x15\xd4\xaf\x65\xee\x97\xa1\x0c\x43\x4d\x1c\x75\xeb\xe1\xe4\x89\x71\xfe\x62\x27\x97\x61\x12\x22\xf3\xca\xb7\xb2\x7c\xc9\x01\x69\x4f\x66\x02\x3e\x32\xa4\x04\xed\x92\x47\x71\x04\x9f\x87\x9d\xe1\x70\x9b\x8b\xbf\xc9\x50\x40\xdc\x8b\x05\xda\xca\xbf\x11\x4e\x72\xb4\xab\xca\x50\x01\xa2\x6e\x8e\xef\xc5\x09\x2a\xe8\x40\x99\x32\x22\x61\x62\x8b\x51\x0f\xa6\x93\xd0\xf7\x6d\x01\x47\x6a\xfa\xdd\xf7\xc5\x76\xfd\xb4\xde\xde\x6d\x6e\xba\x26\xce\x10\xe6\xb7\xb3\x34\x37\xdf\x7e\xee\xc7\xcb\x45\x46\x9a\x5b\x6a\x63\x04\x1f\x8c\x2c\x24\xd7\x23\x56\x16\x41\xd1\x5a\xbd\x0b\xcb\x5b\x3f\xb2\x7b\xdb\x0e\x98\x93\x2a\xce\xc7\x41\x76\xba\x6b\x4e\x12\x1a\x58\xf5\x95\x1a\xaa\xc9\xae\x2b\x13\xa0\x0e\x95\x85\xfb\x99\x95\x80\xeb\xdf\x8c\x86\x09\x86\x2e\xea\xa6\x54\x6f\x3d\x81\xed\xd7\x5f\x95\xa6\x81\xcf\xe3\xb4\xd6\x4a\x96\xc3\x0b\x58\xd5\x96\xc1\x3c\xa5\x32\xb4\x42\xe2\x65\x71\xee\xdd\x60\x49\x4d\x8a\x5c\xea\x5b\x51\xbf\x66\x7a\x18\x1b\x94\xa9\xd6\x88\xab\x69\x48\x78\x18\xa3\x9e\x1e\x84\x9a\xb7\xe6\x64\xaa\x8d\x95\x25\xd3\xba\xdd\x7e\x97\x97\xa7\xd7\xb2\x98\x61\xf3\xe5\x44\x72\x26\x82\xc0\xc5\xf2\xf1\xfc\x99\xdd\x5a\x24\x97\x80\xd9\xc9\x2d\x86\x56\xb1\x24\xe8\x3a\x6f\x24\xb9\xb2\x05\xaa\x9e\xe2\x63\x3a\xae\x82\x00\x55\x9d\xff\xb4\x31\x4b\x68\xda\xe5\x72\x5b\x56\x0f\x48\x69\xe9\xd2\x09\xf3\xbb\xb4\x14\x51\xac\x54\xc7\x94\x8e\xab\x7c\x1c\xfd\x94\x42\x08\x3c\x75\x2c\xe7\x56\x59\xe6\xeb\x69\x5a\x45\xca\xc4\x0a\xd4\xac\x9b\xd7\xf0\x79\x77\x33\x6d\xa5\x01\xb2\xe5\x8c\xea\xe0\x66\xd8\x27\xda\xae\x8c\xa4\x2e\x47\xf6\x7b\x99\x9f\x8f\xe0\x35\x3a\xea\xe1\x41\x28\x55\x40\x71\x63\x92\xe7\xca\x7a\x02\x8e\x4d\x90\x13\xa9\x23\x82\x02\x40\x07\x9b\x0e\x7b\x15\xd5\x71\x74\xf2\x4a\x2d\xad\x76\x97\x2a\xeb\x66\x63\xf6\xbf\x1c\xb3\x94\x6f\x85\x24\x48\x7b\x26\xc6\xf9\xf8\x92\x04\x22\x71\xa6\x5b\x01\xd3\x21\x40\xb3\x33\xff\x24\x00\x15\xa2\x13\xa5\x2d\x6a\x53\x56\xb6\xe4\xe3\xcb\x2c\x91\x34\xc4\xfa\xec\x36\x5c\x7f\x9c\x18\xe0\xd2\x44\x31\xb3\xb5\xa3\x4e\xb6\xfb\xc1\x93\x19\xf9\xdf\x35\xb1\xcd\x69\xda\xc4\xae\x03\xd1\xeb\x7d\x89\xe4\x5d\x93\x12\x36\x69\x28\xc7\x98\x5a\x5e\xbe\x94\x9e\x6b\xbd\xfd\x33\x4b\x45\xe4\xb5\x5f\xdb\xd1\xfb\x02\xa3\xa2\x82\x90\xb1\x71\xf9\xd6\x6d\x30\x7e\x6a\x15\x46\x14\x03\x4e\x07\xa1\xf5\x4f\xc8\xae\xf9\xc9\xda\x3e\x34\xc5\xaa\x1c\xfc\xdc\x5b\x50\xe5\xf1\x08\x85\xbe\x46\xa3\xaa\x28\x0c\xd1\xdf\x94\x18\x45\xd8\xf5\xc1\x51\x15\x89\x08\xfd\x05\x57\x32\x60\x8b\x5e\xba\x46\x13\x31\xe3\x09\x54\x3a\xe0\xf1\x68\x6e\xa8\x98\xa4\x58\x48\xa2\xcb\xa2\x6c\xee\xaa\xb2\xb8\x11\xa7\xd3\x70\xe3\x50\x71\xc2\x71\x64\xf2\x02\x5d\x2e\xd0\x73\x88\x76\x15\x53\x8e\xbb\x56\x67\x00\x1c\x74\x66\x4c\xa6\xce\x79\x73\x39\x88\xa6\x81\xe3\xe9\x53\x8e\x0b\x7f\x0b\x65\xcb\x9e\x5e\xda\x4f\xe0\xc8\xec\x7f\x66\x85\x1e\x93\x3f\x72\xa2\x28\x61\x58\x10\xd4\xda\x48\x8f\x9f\x41\x36\x15\x95\x16\x5d\xe7\xa5\xce\x06\x87\xb2\xa2\x3a\xc0\x4c\x96\x3b\x57\xc6\x78\x69\xd7\x27\xe5\xc2\x6d\xde\xa2\x6a\x16\xa8\x84\x9a\x15\x2f\x58\x2f\xdd\x33\xc1\x71\xa2\x98\xb0\x88\x31\x64\x1f\xc4\x32\xec\x11\x71\x5b\xd7\x4b\x62\x55\xc2\xca\xd1\x98\xf5\xb2\x06\xb3\xab\xa3\x57\xe3\xfb\xe2\x3f\xee\xd6\x9c\x25\xe8\xca\xc8\xf3\x65\x05\x95\x23\xe0\x99\xd8\x95\x8a\x33\x5b\x44\xe5\x48\xd8\xb6\xa2\x78\x5b\x96\x7d\x1c\x5b\x71\x4d\x0d\x43\x7f\xa8\x78\x83\x6a\xfd\x2b\x1b\xf9\x00\x4a\x84\x04\x0b\x2d\xb2\x22\x6b\x0e\x1f\x23\xf5\x98\x6b\x49\x92\xee\x9a\xd4\x74\x91\xa8\x61\x52\xcb\xb7\x47\x4c\x73\xbf\x8a\xac\xa0\xcc\xec\x87\x10\x5c\x4b\x17\x25\xff\xd6\x1e\xf3\xcb\xcb\xbf\xce\x22\xcb\x9b\x8b\xc3\xf5\xf9\x6e\x22\x94\x71\x4f\x89\xf7\x5f\x40\x3b\xf8\x66\xa0\x1f\xd8\x76\xd2\x09\xea\x6d\x9c\x1c\x5b\xd5\xb6\x0f\x06\x28\x49\x62\x70\xe3\x38\x27\xf4\xd0\xfd\x90\x8c\x59\xd2\x53\x22\xcf\x5b\xd2\x93\xa1\x90\xca\x46\x22\x50\xfe\x4a\x96\x85\x50\x6a\x52\x71\xaf\xa4\x11\xe8\x88\x09\x59\x56\x13\xef\x50\x29\x2d\x90\xd0\xcf\x63\xa3\x16\x55\x25\x2e\xed\xb1\xe7\x09\x0d\xb3\x4e\x04\xf7\x53\xf5\x31\x4e\x94\x26\x9a\xd0\x01\xda\xc1\x11\x9c\x78\x76\xc7\x91\x0d\xe0\x2f\x49\x2c\x30\xe9\x77\x78\xcd\x54\x0e\xdb\xfd\x66\xf2\x68\x9a\x06\xa9\x17\xd4\x46\x0e\xfa\xdd\xdb\xb4\x60\x4b\x69\x46\x10\x21\x9a\x67\x0a\x8a\x1a\xf6\x50\x1d\x6b\x54\xf8\xaf\x9b\x27\xa8\x76\xf0\x89\xf9\xa1\xb4\x56\x3e\x27\xbb\x3e\x65\x75\xa9\x5d\x46\x76\x32\x72\xc0\x2d\x71\x22\x52\xd3\xc2\x9d\x2a\x3b\xce\xe9\xae\xb6\x76\x78\x94\x2a\x13\x19\x2c\x33\x5d\xfc\x58\xdc\xdd\xed\x37\xdd\x9f\x13\x86\x29\x91\x76\xba\xfe\xd9\x1d\x8f\xca\xa4\x21\x26\x05\xda\xcd\x66\x55\x1e\x8f\x25\x72\xb4\x6f\x45\xeb\x8a\x8e\xe2\xab\xca\xa4\x14\x8b\xa3\xe5\xb9\xd0\x39\x6c\xcc\x0c\x20\x4e\x99\x54\xe0\x24\x85\x5f\x59\xdd\xd4\x78\xde\x8e\x5f\xc6\x28\x48\x1c\x7c\xeb\x05\x9a\x97\xb2\x9c\xd6\x12\xea\x80\xca\x88\xf4\x2b\xf9\x26\xab\x4f\xe7\x06\x96\xe7\xcb\xe0\xec\x1e\x6e\xf1\x3a\xe0\x21\x96\x24\x1d\x6c\x3c\x76\xd6\x7f\xd6\x81\xb2\x8e\xcf\xee\x7c\x3c\xce\x04\x29\x7b\xc8\xf0\xe8\x5f\x67\xaf\xc8\xe5\xee\x12\x86\x00\x8e\xb1\xe4\x4e\x95\xed\x47\xb6\x61\xba\xd9\x55\xa1\xc3\x98\x28\x17\xb5\x3b\xe8\x19\x6d\x5d\xdf\x8d\x11\x2f\x3d\xba\x14\xf5\x1b\x34\xed\xf4\x2f\xae\xac\x46\x1d\x2a\x4b\x9b\xdb\xe7\x3f\x91\x1f\x3f\x7b\x41\xd6\x72\xcb\x14\xed\xbb\x9a\x14\x4b\x32\x5a\x47\x13\xb4\x5b\x07\x8b\x42\xaf\x44\x9e\x5b\x81\xf2\xbf\x48\x83\x8d\x43\xef\x93\xbf\x8e\x1f\x2b\x4a\x89\xec\xa2\x43\x18\x6a\x9e\x3c\x77\xcc\x25\xd7\x9d\x36\xda\x58\x9a\xcb\x77\x91\x0a\xa1\x04\x59\x81\xc5\x10\xdd\x5f\x35\x42\x0d\x3f\xa0\x19\x84\x7c\x74\xc2\xac\x92\x6e\xf3\x52\xb9\x71\x78\x12\x55\x33\xa0\xa7\xf0\x1d\x69\x10\xf2\x0e\xb9\xfd\x09\x9e\x51\xd3\x08\x12\xdd\xfb\x00\x5e\xa5\xdd\xb7\x32\xe9\x03\xaf\xed\xd8\xed\x2f\xa7\x29\x26\x5a\x53\x19\xa3\x7b\xf7\x76\x51\xfe\x87\x53\x16\xa1\x54\xcf\x72\xbd\xbe\xfd\xe7\x7a\xfb\xe3\xcf\xc9\xeb\xb2\xc8\x5a\x84\xbb\xa7\x0e\x00\xa7\x99\x88\x11\x22\x27\x85\x7e\x81\xd1\x33\x88\x54\x45\x56\xf4\xec\x1b\x14\xf0\x90\xfd\xea\x2c\x20\x2d\x84\xf1\x84\x3c\x0f\x59\x91\x1d\x45\x3e\xae\xdd\xd0\x32\x14\x36\x33\x7b\xe5\x9c\xfd\x5f\x21\x5a\xb4\xa4\x61\x64\x86\x3b\x34\x4e\x29\x91\xbb\x39\x75\x75\x3c\x0c\x9f\x5f\xa6\xcc\x26\xb8\x3d\xaa\xbc\xd3\x0d\x6d\x1b\x5d\xd1\x13\x1a\x45\xb8\x4f\x2f\x27\x12\xf7\xae\xa3\x22\x14\x8d\xc9\x6f\x9e\x0a\x63\xb4\xe9\x69\x25\x2d\x26\xd6\x3d\xc8\x13\x94\xa7\x2e\xf2\xa2\x35\x09\xd1\x07\x71\xf4\xa2\xb7\x55\x79\xfc\x4b\x64\x79\xef\x8c\x6a\x1d\x46\x68\x9e\xe6\x59\xdd\x3c\x55\x17\xd5\x94\xb4\xbb\x33\xd7\xe8\x5c\x9c\x00\x91\x16\x3f\xb3\xe6\xf5\xa6\x67\x97\xe3\x44\x43\x1c\xe3\xb5\x3a\x7b\x87\x64\x32\x0d\x80\x85\x91\x4d\x3e\x1e\xb3\xe2\xa1\xd4\xdd\xf3\x02\x07\xb4\x1c\x2c\x5c\x12\xf9\xaf\x57\x5d\x05\x80\x36\x71\xec\x09\xbe\x6e\x4a\x75\xc6\x70\xc5\xac\x7e\xc5\xe7\x6a\x4e\xed\x5d\x24\xc1\x23\xfb\x54\xb9\x3a\xa4\x61\xc4\x12\x02\x62\xa9\x85\x5b\x77\x0c\xb3\x33\xfe\x83\xf7\x1d\xc2\x84\xf8\x44\x24\x0c\x30\xb0\x10\x68\xc0\x9c\x96\x43\x21\xdc\x5a\x1e\x1e\xbf\x35\x41\x18\x50\xe2\x0e\x00\x54\x49\xd4\xa2\x99\x2e\x29\x08\x25\xb7\xca\x79\xa4\x3e\x81\xca\xfa\x5f\x0d\x75\xe7\xda\x56\x50\xbf\xde\x97\xea\xed\xf9\xe4\x88\x01\x5c\x97\x28\x02\xde\xb1\x6d\xdf\xdc\xec\x4d\x69\x71\x35\x3d\x04\x1c\x22\x15\x7a\x19\x44\x67\xcb\x7a\x4b\x22\x08\x99\xdb\xea\x21\x4e\x39\x5a\xeb\x50\xa9\x80\x26\x78\x0b\x23\x14\x5c\xd5\xdb\x8e\xd0\x14\x10\x8b\x20\x22\x9e\x7c\xf3\xa6\x2c\x46\x79\x71\x48\x88\x14\x43\x96\xba\x45\xde\xf8\x80\xf5\xe4\x68\x9b\x8d\x56\xb5\x8e\x2c\x12\xcb\xb4\xbe\xdd\x9f\xdd\x4d\x53\x5b\x31\x20\xac\x8b\xb4\x2e\x74\x3d\x72\x81\x20\x49\x95\xe8\x42\xc7\xd5\xd1\x57\x05\x2e\x0a\xed\xe3\x9d\x96\x72\xf6\xdc\x57\x91\x78\x5b\x10\x68\xac\x83\xc8\xe6\xb3\x5c\x76\xcc\xff\x6c\x1a\x06\x78\xc4\x20\x6c\x65\x24\x5c\xe4\x3b\xd0\x40\x59\xc1\x36\xcc\x5c\x7a\x47\xb2\x2a\x8f\xbb\xec\xa5\x40\x4d\xb0\x61\x40\xeb\x53\x64\x95\xbf\x5d\x4a\x51\xa3\xf0\x28\xde\xe0\x3e\xeb\x12\x2b\x90\x0a\x9b\x4f\x54\xa5\x86\x5f\x88\x0e\x99\x44\xba\x81\x85\xd4\xba\xcf\x19\x54\x9d\x18\xcc\x78\x60\x59\x14\xa0\x8c\x70\xbb\x3b\x58\x9a\x9b\xdd\x5b\x96\xe7\xf5\xdf\xdd\x2d\xa7\x45\xdd\xc0\x40\xeb\x76\x8a\xfd\x33\x2b\x94\x0b\xc8\x3d\xd9\xbc\xde\xa7\x14\x79\x7f\x73\x43\x9e\x4c\x09\x66\xd2\xc4\x66\x90\xdf\x01\x33\xbc\xbb\x76\x7a\x4e\xea\x29\x80\x73\x89\xe1\x34\x2b\x79\xb9\x45\xeb\xb1\x1b\x41\x41\x8c\xb4\x75\xa9\x3b\x34\x17\x96\x97\xf5\xf9\x05\xba\x8c\x3d\x48\x4e\x51\x42\xf1\x69\xbb\x79\x58\xef\xbf\xaf\x9f\x77\x07\x4b\x47\x7c\xf7\xb8\xda\xae\x1f\xd6\x8f\xfb\xae\x27\xe8\x38\x1a\xe5\xfd\xcd\xaa\x3c\x57\x7d\x00\x0f\x14\x09\x99\x23\x4a\x7c\x2a\x3b\xb0\xd4\x38\x77\x05\x2a\x49\x91\x78\xd4\xd9\x2d\xf3\x07\x37\x68\x2a\x11\xba\x81\xfe\xab\x2f\x79\xf5\xbf\x03\x21\x20\x7e\xe7\x76\xb5\x7a\xca\x85\x02\x7b\x64\x7c\x5d\xa5\x00\x10\x47\x91\x83\x2d\xa0\x20\x06\x86\xce\x6e\x7a\x0f\x0a\x40\x13\x65\x91\xb9\xcd\xca\x07\x4b\xa7\x56\x3d\x80\x06\x24\xaa\x59\x6d\x1e\x1e\x86\x4c\x03\x60\x08\x13\xee\xf6\xed\xa3\x36\xd7\xa1\x6c\x43\x98\xc4\xa1\xf6\x25\x8c\x13\x56\x07\x43\x38\x93\xb2\x33\xa5\xf6\xe2\x6d\xe2\x06\x1b\x22\x2c\x99\xc7\x12\x54\x79\x84\xbd\xd0\xa7\x32\x87\xa7\x2a\xeb\xe9\x46\x0c\xd1\x12\xcb\xe6\x56\xdb\xdd\x00\x3c\xeb\x1b\x4d\x8c\x83\x3a\x00\x95\x8c\x62\x51\x86\x18\x40\xe1\xb9\x06\xea\x26\xf4\x2b\x0d\x55\x30\x5d\x87\x40\x73\x9c\x6a\x77\xbf\xfe\xff\xb4\xfd\x49\x73\xe3\x38\xb6\x3f\x0c\x7f\x9d\x5a\xf4\x82\x18\x38\x2d\x65\x59\xce\x54\xa7\x6d\xb9\x2c\x39\xb3\xaa\x3b\x3a\x14\x18\x0e\x6c\x96\x29\x52\x4d\x52\x76\xba\x3f\xfd\x1b\x3c\x00\x38\x89\x72\xd6\xff\xbe\xf1\xdc\x45\x57\x5e\x13\xa2\x28\x12\x04\xce\xf0\x1b\x00\x19\x0d\xfe\xef\x34\x04\x2f\x58\x36\x74\xe7\xf5\x47\x55\x82\x02\x1e\xaa\x2c\xde\xa0\x6a\x76\xe5\x40\xb2\x6d\x14\xed\x1b\xaa\x2d\x73\xf1\x19\x9a\x8d\xfc\x6b\x99\x8b\xba\x76\x92\x35\xbe\x24\x6e\x98\xb4\xb5\xc4\xcc\x82\xf6\x90\xaf\xd1\x26\xc3\xdd\xe2\x65\x98\x06\xe9\x2d\x4e\x40\x1c\x2c\x57\xc2\xfe\x50\xe7\x43\x38\xbe\xad\x5c\x31\x6c\x92\x77\xda\xf5\x22\x9f\x0d\x64\x0d\xd7\xd4\x74\x6e\x06\x77\xe2\xe7\x52\x1c\xc7\x7a\x41\x26\x0c\x94\xaf\x0a\x60\xdc\x3e\xc9\x67\xbb\x25\xc4\x84\x54\x60\x62\x76\xbb\xd9\xed\xba\x0f\xf3\x54\x0a\x8f\x03\x50\xaf\x18\x01\xdd\x94\xd5\x6c\xca\x63\xc2\x90\x20\x53\xb0\x34\x06\xaa\xab\x46\xb5\x4b\xef\xe2\x78\x9c\x7f\x9d\x4c\xa8\xa8\xea\xc2\x78\xf3\x39\x88\xc3\x84\x26\xc5\x90\xfe\xfa\xeb\xd3\xd5\x80\x5c\x65\x22\x49\xfd\x43\xf6\x49\xea\xd5\xc7\xd8\xbb\x6b\x7c\x8d\x09\x89\x03\xab\x3c\x57\x8f\x14\x5d\x4c\xa2\x08\x02\xa3\x5f\x3e\x32\x0f\x0f\x33\x82\xc4\x38\xfb\x55\x59\xd4\x68\x4d\xdb\x85\xfa\x46\x30\x16\x5b\x69\xa5\xb2\xb2\x30\xc6\x76\x45\xb8\x81\x36\xe9\x79\x04\x95\x1d\x11\xa5\x67\xd3\x97\x99\xf2\x9e\x11\x71\x6c\xcb\x99\x5d\x7d\x6f\x5d\x98\x1c\x5f\x8d\x91\x05\xcf\xfc\x2a\x6c\x44\x92\x22\xdd\xfa\x0b\xa6\x70\xf0\x49\x75\xde\x08\xc1\xa0\x7b\xfe\x99\x1a\x55\x8e\xdc\x56\x98\xf8\xa1\x32\xc6\xe5\xe6\xaf\x53\xdd\x84\x01\x72\xb2\xfc\x11\x4d\xa0\xc7\x20\xee\x4d\x55\x1e\xf6\xef\x53\x62\x8f\x1f\x0b\x56\xc1\xed\xba\xcc\x45\xb5\x2b\x75\xa7\xe8\x60\xa4\xb1\x7a\xa1\x4d\x75\xaa\xad\xc8\xa1\x2d\x47\xfe\x3d\xe2\x9f\x51\x54\xe0\x62\xe5\x8a\x7d\x5f\x04\x36\x99\x4d\xe6\xf1\x29\x46\xb5\x53\xd0\xbd\x65\x8f\xeb\x4d\xf7\xb2\x6b\xce\x02\x9b\xe1\x63\x25\x1b\x9b\x3f\xbc\x3b\x18\x32\x9c\xb5\x46\x54\x87\x5d\xe6\xf6\x4b\x0f\x43\x1b\xdc\x1c\x1d\x72\x6c\x58\xca\xf6\x61\xdb\xfe\x91\x3f\x12\xc5\x1d\x0e\xd0\x66\x43\xee\xfd\x40\x7e\x43\xf7\xeb\xb5\x61\xa8\x72\xbe\x7f\x2b\x4f\xea\x05\xaa\x7a\xb4\xe8\xb8\x41\x10\x46\x41\x57\x24\xb5\x7e\x72\xb3\xcf\x95\x04\x41\x14\x63\xb2\x9a\xd5\x23\x4d\x9f\xd1\x7c\x27\x01\xe1\x06\x03\xd8\xbd\x45\x4c\x9d\x93\xb1\xfa\xe7\x4f\x02\x2a\x15\xea\x39\xec\x70\x05\x19\xc7\x57\x24\x60\x81\xc2\xd4\xb4\xfd\xfd\x23\x1d\x49\x12\x30\x46\xb1\xa7\x67\x25\x65\x30\x8b\xd8\xee\x17\xdf\x17\xeb\xdb\xc5\xd5\xed\xaa\x1b\x95\x2a\x84\xbe\xd9\x4b\x71\x9c\xb2\x8e\x7c\x3f\xff\x2b\x99\x32\xf8\xa5\xbb\x17\x28\x8f\x2f\xa2\x80\x7a\xf0\xd6\x92\x80\x01\xc3\xd8\xdf\x9a\xaa\xf6\x04\x65\x77\x98\xcb\xc8\x70\xbf\x07\x20\xd6\xc3\x79\xc3\x01\x74\x36\xff\xed\x30\xc5\x10\x61\x9b\x39\x3c\xfc\x95\xef\x09\x25\xb3\x33\x91\x04\x5c\x4b\x4d\x7b\x4b\x3f\x87\x01\xf8\x0c\xc4\x47\x82\x90\x00\x16\x0b\x8f\x65\x99\x8f\xa3\x07\x12\x84\x3c\xc4\xb6\xac\xcd\xbf\x1e\x1e\x57\x6d\x0a\xd6\x1d\x8c\x8d\x75\x8a\xe8\x6c\x55\x97\x0f\xf7\xfe\x60\x14\x10\xbc\x01\x88\x06\x77\xd6\x46\xe3\x44\x61\x14\x2d\x90\x20\xd2\xb1\x14\x9d\x72\x59\xd7\x31\x27\x41\x92\x58\x83\xfd\x76\x9d\x38\xc9\x3c\xab\x5f\xa0\x5a\x9e\xe6\xb5\x67\x48\x90\x32\xe9\x99\xcf\x4f\x59\xd1\xdc\x90\x1b\x7a\xe1\x09\x2a\xa9\x91\xca\xd8\xab\xea\xcc\x9b\xcc\xa6\x24\xd0\x21\x05\xe1\xcd\x6c\x8e\x68\xe0\xea\xaf\x0e\xa4\xc0\x19\x26\x4f\x1f\x57\xe5\xc0\x67\xcd\x1d\x36\xcc\x5a\x27\xcb\x0c\xdd\x4c\x6c\x60\xaa\xaa\x72\x26\xa4\xf6\x9f\x08\xad\x56\xb0\x65\x10\x62\xf8\xd5\x37\x34\x08\x09\xb8\xf5\x3c\xb3\x1d\xa2\x21\x70\xc4\x0f\x08\x13\xed\x7a\x41\x77\x88\x12\x99\x78\x6a\xa5\x84\xd0\xd0\x20\x58\xb1\x79\xc9\x2a\xfd\x03\xe0\x75\x50\x32\x23\x84\xc6\x0a\x91\xbb\x7b\x95\x83\xa8\xba\x74\x77\xf6\x76\x13\x16\x69\xe6\xfa\xf6\x4d\x0e\x43\x3a\x9d\xaf\x1a\x10\xc2\x03\x8a\x51\xec\x01\x7b\x56\x56\xc3\xce\x7f\x19\x0f\x43\x2c\x48\x58\x32\xc2\x5c\xe3\x94\x10\x1e\x31\x4d\xdd\x04\xd8\x6c\x6e\xe7\x40\x47\x84\xf0\x38\xc4\xf5\x24\x2b\xd4\x7d\xd9\x05\x79\xed\xdf\xb5\xb1\xc8\x46\xdc\x11\xc7\x29\x11\x21\x3c\x05\xec\x66\x55\x50\x83\x85\x49\x67\xc5\xf3\x30\x8f\x26\x24\xa4\x0a\xab\x8d\x4e\x6e\x70\x88\x29\x20\x24\x0c\x03\xff\x22\xdb\xde\x34\x9e\x63\x72\xbf\x43\x21\xfd\x20\xdf\xa5\x98\x7d\xf6\x24\x54\xc2\xa7\x0d\x0f\xe2\x03\x2a\xf7\xde\xf8\xa3\x90\x22\xe8\x1b\x21\xbd\xca\xba\x5f\xdd\x82\x69\x36\x67\x86\xd9\xee\x03\x11\xe7\xc6\xe1\xcb\xd7\xca\x59\x07\x0d\x8b\x45\x84\x44\x00\x88\x46\x69\x83\xd8\xaf\xa2\x5e\x96\x15\x62\x57\x1c\xd3\x70\x3b\x88\x4c\x09\x89\xb9\x35\xc5\x14\x5a\xaf\x10\xfa\xad\x60\x8a\x12\x1f\xbf\xd2\x24\xe6\x76\x61\x46\x7e\x5b\x71\x3a\x74\x67\x72\x52\xa4\x0e\x4c\xf1\x54\xe4\xb6\xdf\x38\x71\x83\x6d\x47\xc6\x1a\x2b\x3c\x23\x7b\x57\xac\x5a\xf5\xf9\xe6\xec\x2b\x4b\x62\x65\xbd\x5b\x3b\x7c\xe5\x23\x08\x8d\x20\xa4\xc9\x38\x60\xc8\x5c\x05\x4c\xea\x27\x6a\x27\x84\x24\x9c\x84\x4e\xb9\x75\x83\x4d\xd5\x21\x8b\x61\x68\xd7\x3f\xf8\x27\xfd\xcf\x70\xf6\x27\x61\xec\xeb\xfc\x1d\x1d\xf8\xd3\x78\x82\x90\x94\x0b\x61\xa1\x7c\x3f\x9d\xc3\xe8\x58\x89\x86\x90\x14\x42\x6b\xfc\x84\xbc\xba\x01\x9a\xa5\x5d\xc0\xbb\xaa\xc2\x79\xb3\xea\xbc\x98\x9d\x9c\x29\x9b\x12\x22\x78\x80\x20\xdd\xc5\xe3\xc3\x70\x53\x23\x22\x8c\x64\x57\x51\xb2\x74\xfd\xf6\xfb\xfe\x05\x55\x39\x4a\xcf\x08\x11\xb1\x35\x1d\xb2\xdb\xdf\x00\xc1\x4b\x88\x48\x9d\x2a\x55\x05\xd6\x94\x00\xb5\x78\xfc\x41\xad\x2c\x1e\x44\x9c\x1b\x07\xf4\x35\x10\x42\x64\x68\x2c\xb4\xec\x24\x67\xb0\x40\x84\x28\x50\xd4\x5b\xbf\x74\xd2\x06\xeb\x19\x17\xcc\xf1\xd3\xd6\x81\x75\xa7\x39\x64\x85\xd3\xd7\xf6\x17\xa6\x63\x0b\x54\xb9\xfe\x71\xb5\x1b\x8b\x8e\x7f\x16\x0f\x13\xa2\x13\xae\x7a\x99\x40\xab\xa1\xd4\x01\x00\xe6\x77\x1b\x02\x92\xa2\x77\x8b\xb0\x59\xbf\xa3\x8a\x4d\x26\x26\x18\x8a\xd1\x73\x9b\x71\x8e\xf5\xdc\x2e\x4c\x2a\x30\x21\xc2\x1c\x8f\x9d\xf9\xea\x30\x22\x21\x66\xe8\xbe\xe7\xa4\x0f\xf2\x7c\xbc\xb5\x18\x43\x51\xf3\xd0\xbb\x13\x3c\x8a\x06\x6c\xdd\xf2\xcc\x62\xa3\xfb\x84\x95\x8f\xc8\x45\xdd\x58\x98\xe0\x64\x83\xa4\x84\x27\xd8\xb3\x3a\xd5\xba\x1a\x48\xe3\x11\x4a\xa9\x75\xef\xc1\xea\xc0\xb2\xf4\xa9\x15\xa1\x54\x28\xac\x28\x7d\x7b\xfa\x73\x39\x9c\x9e\x94\x05\x89\x56\x23\x2c\xce\x18\x12\x42\x28\x0f\x0c\xe7\xbe\xc6\x6e\xa0\x82\xc9\x5d\xa5\xdc\x10\x65\xbc\xdb\xbe\x46\x27\x90\x17\xff\xe1\x90\x86\xb8\x8a\xff\xc8\x34\xac\x0a\xa8\x9e\x3f\xba\x23\x11\x20\x44\xc8\x12\xc3\xee\x4e\x75\xb3\xf4\xc9\xd3\x78\x27\xa0\x21\x28\xdc\x0a\xed\xee\x8d\xf2\xa9\xed\x9b\xe3\x4f\x14\x4b\x85\x84\x20\xd4\x05\x58\x3d\x6e\x7d\xc4\x7a\xbb\x59\x7e\xdb\x0f\x01\x73\x84\xc6\xda\xaa\x27\xad\xfe\x78\x58\x2d\x77\xab\xeb\xfd\xb9\x6a\x62\x3b\x48\xe0\xee\xfa\xf8\xa8\x4a\x0f\x42\x70\x87\x92\x38\xc4\x77\x79\xbd\xdc\xd8\x22\x56\xd4\x1f\x49\x31\x4d\x12\x15\x6a\x83\x7a\x20\xe1\xe4\x4e\x25\x52\x62\x4b\x6f\x27\x0a\xf1\xea\x03\x56\x9a\x72\x40\x3e\xcc\x21\x2b\x86\x7a\xe5\x6d\x3a\xe1\x46\x48\xe7\x5a\x23\xad\x6a\xc6\x68\xde\xb8\x70\x9f\x2a\x66\x10\x07\xb0\xfa\x73\x74\xc9\x2a\x91\x71\x67\x3c\xf9\xa5\x8d\x10\x47\xaf\xfe\x3f\x66\x16\x02\xaa\x23\x40\xa0\xba\x7b\x97\x26\x3d\xfc\xd9\x37\x85\x6a\x48\xb4\x85\xf9\xff\x1c\x09\xd4\x12\x0a\xd2\xa2\x00\xad\x9e\xd5\xc6\x3c\x5d\x6d\xea\x3e\x52\xa5\x00\x14\x89\x43\xa8\x66\xd2\xee\x65\xfd\x6c\x36\x91\x0d\x4b\x9f\xa1\x59\x34\x2f\x50\x64\xa2\xa8\x37\xc5\xee\x05\xac\xab\xb7\xc9\x20\xd7\x93\x3b\x6c\x22\x85\xb6\x1e\x58\xb5\x59\xff\xbe\x1b\xdd\x0b\x93\x86\x48\x1e\x7a\xca\x9b\xee\xd6\x1a\x93\x98\xce\xc8\xde\x0b\x05\x4f\x66\x20\x0b\x48\x82\x01\xe9\xf2\x43\x42\x85\x45\xa3\x4c\x0d\xcf\xcc\x02\x6e\x30\xfc\xcb\xea\x6f\x7f\x2e\x1f\xe1\xbf\xa7\xbe\xd6\x4d\x58\x90\xb2\x4e\x1e\x36\xf3\x7b\xc0\xf8\xba\x19\x09\x13\xe3\x5a\x71\xeb\x3a\x17\x13\x8c\x13\x61\x24\x49\x62\x17\xa1\x3f\x76\x2d\x8f\x31\xd4\x85\x30\xa2\x93\x2e\x30\x41\xec\x4e\x59\x34\x5d\xda\x4f\x18\xe5\x21\xe1\xc8\x46\x35\x59\xdf\x11\x6d\xff\x2e\x31\x50\xb7\x5a\x35\xd3\xb0\x68\xfe\x79\x33\x9a\x72\xac\x92\xa9\x17\xec\xf5\x0f\x03\x24\x46\x65\x42\xac\x88\x4d\x63\x03\xc3\x51\xc7\x63\x76\xd1\x63\x54\x59\x3d\x1f\x25\x72\xb5\x5d\xdd\xde\x96\xe7\x21\x21\xa3\xda\x12\x6e\x96\x8b\xdd\xc2\x7f\x57\x18\xa7\xd6\x83\xae\xcf\x88\x6f\xb3\xba\x19\x8b\xfb\xf5\xd8\x50\xc2\xc2\x94\xa3\x7a\xe8\x3f\x57\xbb\xa7\x6d\x7f\x1a\xa1\x82\xc4\x3b\xdb\xaf\x47\x0f\x6a\x7c\x0d\x11\x31\x91\x5f\x0d\x45\x61\x2d\x47\x97\xa2\xd0\x67\xe3\x12\x86\x65\x84\xf5\xe6\x1a\xd7\x23\xff\x45\x91\x66\xd8\x38\xfb\x56\x36\x2f\x3f\xb2\xf3\x1d\xf1\xff\x52\xc7\x27\x2c\x66\xb1\xc5\x97\x36\xe5\xf1\x26\x17\xcf\x1b\x63\xfc\x17\xc6\x3c\x26\xae\xe8\xdb\xbe\xfe\x57\xe5\xe9\xf9\xa5\x99\x5c\x6c\x1c\x42\xa2\x7b\xe3\xb3\xd5\xc0\x4b\xb4\x3d\x9a\x58\x21\x93\x87\xcd\x76\x1c\xb1\xb4\x47\x50\x49\xca\x8a\x65\xee\xbe\xac\xbc\x0f\x68\xfb\xf1\xed\x60\xa7\x64\xb1\x8c\xc0\x79\x86\x2c\xc6\xf2\xbd\xf3\xdd\xc6\x39\x26\x25\x61\xb1\x22\x22\xf6\x16\xe4\x67\x16\x35\xed\x00\x4d\x9c\x1c\x3d\x76\xf8\x2c\x91\xb3\xdd\x93\x3b\x3b\xd5\xe9\x2f\x37\x29\x96\x72\xdf\x32\x78\xb7\xf2\xad\xb7\x65\xb3\x31\xcb\x5c\xf4\xc0\x61\xc2\x12\xc3\x90\xe0\x8d\x8b\xa8\x5d\x0e\xc7\xe2\x04\x7f\xa7\x0b\x33\x4f\x6a\x22\x2c\x25\x89\xe8\xf5\x18\xb6\xbe\xc3\xfd\xd9\x83\x4f\x26\xf7\x25\x8d\x62\xed\xfa\x86\xf7\xf0\xb3\xb9\x01\x18\xf8\xc9\xfb\x31\x89\xf1\xd1\x5d\x47\x54\xc8\x8a\xe7\x9b\x89\xf6\x24\x61\x92\x80\x57\x7f\xfd\x52\x95\xa7\xa3\x15\x06\x9b\x5e\x8f\x8f\x7b\x99\xa4\x69\xe8\x36\x0b\x10\xf9\xe3\x29\xbf\x58\xe4\x62\x4a\x59\x86\x79\x8d\xa6\xb4\x58\xd8\x9d\x41\x7e\x12\xa6\x4c\x88\xef\x39\x94\xdd\x13\xd0\x94\x01\x1d\x19\x72\xde\x15\x1f\x0b\xd3\xa6\xc6\xef\x62\xbe\x28\x4d\x98\x66\x01\x0a\xcb\xdd\xae\xaf\x47\xab\xb5\x8e\x52\x2c\xde\xd8\xf5\xc9\x1e\x9a\x9f\x86\xb3\x1d\xf1\x4b\x0f\x7d\x7c\x1b\xb5\x4e\x38\xea\xae\x3e\xae\xb6\x9b\xdb\x6b\xec\xe5\xac\xb6\x5b\x7f\x0d\x10\x24\x48\xd8\x72\xac\x25\xb4\x9f\xdc\x9e\x8b\x03\x5f\x78\xdf\x21\x8e\x85\xee\xc5\x15\xbb\x60\x8d\x19\x4e\x2d\x41\x06\xd4\xdd\x29\xff\x7b\xf1\x36\x33\x3c\x46\xea\xcd\x23\xa0\xa4\xf2\x85\xbb\x69\x64\x14\xd8\xfa\x79\x5e\x56\xb7\x20\x34\x54\xb2\xc7\x48\xb6\xc7\xad\x4a\x81\xc8\xf4\x43\x59\xe6\x43\xb9\x18\xc2\x8c\xb2\x24\x30\x99\xe9\xb2\x7c\xb1\x98\x80\xd1\x5a\xc2\x03\x2e\x4c\xef\xa1\x80\x0f\x65\x44\xb9\x1e\x5f\x0d\x0f\xda\xcc\xba\x47\x98\xef\x8f\xe5\x3b\x54\x24\xf9\x6d\x32\xca\xd9\x00\x62\x43\xc5\x06\x65\x95\x57\x53\x6d\x8f\x72\x24\x9f\xb8\x3c\x03\x17\x31\x8b\x6f\xf2\x03\x8c\x75\x40\x72\xa5\xe6\x47\xb4\x5a\xc3\x57\x74\x54\xd0\xe0\x81\x49\x23\xe7\xe6\xb1\xee\x7c\xcc\xfd\x41\x12\x28\x14\x03\xa9\x1b\xf1\x0a\x4e\x73\xaf\x37\xcc\xc4\x01\xc0\x89\xef\xfa\x5b\xea\xfd\xb9\xa4\x0d\xe1\x24\x54\x98\xbc\xec\x1e\x17\xf7\xdb\x9b\xd5\xe3\xdd\xe2\x7e\xf1\x65\xf5\xb8\xff\xb6\xfa\xb3\x3b\x93\x34\xb8\xb7\x21\x6f\x77\x68\xc8\x31\xbf\x89\x73\xa2\x23\xc4\xd6\xa0\x85\xcc\xa8\x8d\x4a\x38\x25\x0a\x03\xa3\xd5\xf2\x71\x39\xdc\xc1\x38\x65\xe0\x7d\xfb\xac\x7c\xc1\xad\xa8\x1b\xbb\x57\xae\xaf\x27\xd7\xcc\x28\x09\x1d\x5b\xc3\x02\x73\x1c\x94\x62\x7c\x19\x2c\x02\xbc\xcd\xa8\x9c\x73\x0b\xa6\x19\xbe\xad\x9c\x93\x10\xf3\xcb\xea\x54\x0c\xa4\x54\x92\x7f\x73\xdf\xf2\xa2\xff\xf9\x37\xff\x8f\x1f\x9c\x6a\x24\x52\xee\xcb\xf7\x19\xd8\x69\x1f\x06\x70\x6e\x28\x62\x9f\x16\xb7\x57\xcd\xf0\xdb\xc2\xc4\xea\xeb\x63\x3f\x62\xdc\x5f\x9e\xd9\xaa\x1c\xe0\xc1\x47\xce\x3c\x14\x31\x36\xf0\x3a\x09\xcc\x55\xa1\x27\xaa\xa5\x84\xc7\xda\x8a\x62\xa0\x4e\xcd\x08\x39\x43\x78\x12\x10\xaf\x72\xb4\x7c\x11\xcd\x1d\xd4\xb5\x78\x86\x45\x73\x2e\xba\x4f\x78\x42\x02\x84\x9e\x3b\x8f\x6d\xac\x75\x94\xd5\x47\x77\x2a\x42\x50\x06\x40\xb5\x51\x60\xdd\x6c\xde\x6c\x49\xbd\x3f\xcc\x71\x4f\x73\xa8\xa6\xfd\xb3\x38\xc0\x5e\x8e\x42\x77\x9e\x48\x8a\x78\xe0\x76\xe6\x2e\xf2\x7c\x53\x21\x65\xbf\x19\x94\x72\xfe\x3d\x2c\xe6\x0c\x41\xb5\xe7\x75\x92\xe9\xbf\xfc\x3d\x4b\x69\x1a\x46\x1e\xa0\x9a\xa9\x09\x9c\x87\xf0\x94\x77\xbc\x09\x44\x18\x54\xbd\x27\x8c\x1f\x91\x04\x9a\x0f\x1c\x41\x3e\x7b\xee\x69\x0a\x88\x47\xd7\x59\x6d\xc5\xdd\x90\x44\x3e\xf9\x4a\x41\xac\x7f\xc4\x33\x34\x3f\xb2\xe2\x71\x6a\xfc\x41\xb8\x08\x25\x32\xa3\x8f\xe5\xd1\x96\x27\xfc\xa5\x08\x60\x9e\x08\xe7\xd0\x85\x1e\xca\xf0\x54\x83\x76\xdf\x66\xe5\xea\xbb\xf4\x8e\xcb\xd8\x68\x3a\x64\x07\xb4\x11\x4b\x1b\xac\x0d\x9c\x64\x26\x6f\xae\xd4\x80\xab\xe5\xde\xf7\x94\x11\x3b\x26\x1a\xf1\x37\xa1\x99\xee\x7f\xfb\xfb\xa2\x43\x1b\xb3\x9b\x4c\x34\x56\x6e\x7f\x69\x9b\xe9\xa0\x6d\x67\xcb\x8f\xd3\x56\x1a\x25\xab\x2d\x12\x68\xc2\x75\x24\x5c\x43\x84\x82\xc6\x56\x8a\x27\x2b\x9e\x7f\xa1\xb1\x45\x38\x10\x00\xe2\xcb\xc9\x5b\x10\x95\x7a\xc1\x9c\x61\x20\x5a\x4a\xb8\x89\x09\xb6\xf8\x5d\x72\x39\x46\x64\xf8\x31\x86\xa1\x90\x3c\x16\x3e\x6f\xc6\x7c\xf3\x7f\x0f\x19\xe7\xa3\x89\xda\xb3\xce\xe7\x67\xab\x3d\x79\x18\x04\xa9\x88\x87\xed\x8c\xaa\x3c\xdc\xc1\x05\x58\x2e\x09\x03\x12\x2a\xb7\xf2\x2d\xdb\x0d\xf3\x2a\xef\x14\x9c\x48\x18\x24\xd4\x27\x11\xf7\xa8\x6b\x74\xa9\xe1\x4b\x42\xa2\x62\xd4\x54\xfd\x52\x89\x42\xdf\xb4\x6f\x6a\x55\xa0\x13\xe1\x8c\x8b\xfb\xb0\xb6\x1f\x52\x9e\xd8\x84\xca\x4e\xc3\x36\xa7\x79\x10\xde\x0d\x85\x84\xd4\x04\xd2\x4d\xd4\x5b\xac\x33\x21\x7a\x72\x62\xdf\xd3\x0e\x8b\xf1\x4a\x7f\x94\x55\xae\x97\xa7\xe3\x85\x38\x69\x72\x21\xe3\x73\x30\x1d\x20\xfb\xd5\x1e\xbc\xc9\x4b\xd1\xec\xca\xa7\xc2\xa2\x8b\x47\x0d\x89\x90\x27\xa9\x75\x09\x40\x45\x8c\xd1\x26\x1b\xf2\x44\x59\x81\x4a\xe4\x6a\x7b\x27\xa1\xf6\xbf\xd3\x39\x18\xb6\xff\x97\x76\x48\xa2\x1f\x90\xb9\x25\xe3\x4e\x38\xc2\xd3\x74\xbc\x0c\x88\xe8\xdc\x9d\x8d\xa5\xb6\xce\x46\xeb\x61\xa8\x14\x6d\x6f\xeb\xd7\xac\xb9\x14\x38\x26\x33\xb1\x7a\x32\x1f\x25\x86\x91\x08\x6c\xca\xde\x55\x10\x6b\x2c\x5d\xf8\xa8\x2a\x8c\xda\xb0\xab\x47\xa6\xf6\x6d\x43\x3f\x20\x86\x10\x97\xcf\xac\xfe\xfd\x24\xf2\xac\x41\x0d\xbe\x39\x48\x07\x09\x05\x0f\xc2\x5e\x43\xba\xf3\x1d\xcb\x8a\xec\x70\x3a\xdc\x00\xcc\xb5\x91\x43\x19\x4a\x4c\x64\xef\xa1\xb4\x93\xa0\xaf\xee\x85\xca\x80\x50\xe3\x9c\x02\xe9\xfb\xae\x17\x34\x6a\x5d\x4e\x74\xe8\x48\xa8\x39\x37\x8e\xf0\xfd\x78\x73\xb3\x05\x54\xd9\xa9\x17\x7a\xfa\x30\xb5\xa4\x2c\x70\x22\x62\xa8\xcc\x6c\xc5\xb1\xee\xcb\xdd\x4b\xd5\x77\xe9\xec\x97\x74\x6f\x2b\x90\x80\x5b\x78\x57\x75\x73\x2a\xd4\x78\x96\x41\xfb\xdd\x36\x65\xc9\x3f\xf6\xaa\x3c\x1c\xa1\xa8\x07\x40\x26\x12\x82\xd3\x5b\xb8\xcd\xde\xb0\x28\x55\x7b\x0c\x5e\x3d\xc4\xe0\xfd\xff\x83\xbd\x23\xa1\x61\x96\xa4\x6a\xf3\xbe\x3b\xf1\xb3\x7d\x0a\x98\x14\x5d\x9f\xda\x8b\xfd\x72\x12\x95\x28\x1a\x40\x5b\xe9\x81\x21\xb3\xfd\x78\x14\x30\x8e\x3d\x98\x61\x6b\xa4\x3b\x14\xa1\x4b\xf1\xd7\x6b\x5b\xff\xea\x31\x36\x24\x0a\xe2\x10\xef\xa6\x5d\xe3\xaf\x3e\xda\x35\xa1\x38\x17\x98\x9d\xbf\xe6\x28\x10\x42\xaa\x51\x0b\xfe\xaa\x5d\xdf\xfa\xda\x4f\x44\x18\x20\xf8\xf6\x66\xb7\xec\xfe\x64\xe2\xc4\xbd\x8d\x28\xb9\x66\xf1\xa2\xee\x20\x15\x29\x12\x90\xbf\x5c\x2f\xed\x4e\x19\xf6\x47\x24\xf6\xf5\xda\xf9\x59\x3c\x6f\x9b\x32\x87\xe2\x41\xfc\x1d\xd9\x7b\x77\x02\x66\x12\x0c\xbc\x11\xe3\xe1\x2b\xb5\x11\x8f\x53\x66\xb5\xeb\xdf\x00\xf9\xb0\xff\x2c\x6d\x2e\x32\xdf\x5e\x8c\xc2\xc8\x62\xe0\xed\x63\xca\x8f\x84\x4c\xee\x76\x18\x47\x88\xb3\x30\xed\x4f\x1b\x4a\xe6\x91\x28\x4c\x22\xec\xd9\x2d\x5f\xc4\xe1\x98\x95\xc5\x36\x3b\x1c\xcf\x31\x9c\x6e\x70\xc4\x42\x65\x11\x19\xcf\xfb\x43\x76\xc1\x6c\x87\x44\x51\x2c\xc0\x55\xdb\x9d\x9f\xc1\x58\xb4\x82\x44\x91\xe0\x7c\xd2\x95\x10\x39\x74\x42\x59\x24\x8a\xa4\xad\x92\xac\x55\xb9\x90\xa2\xd0\xe5\x74\x1d\x8e\x22\xe5\x00\x01\xc2\x6f\xfc\x51\xac\x42\xa1\x27\xc2\x65\xe7\x52\x9e\x24\x4a\xb8\xc1\x5a\xd2\xdd\xdd\xe3\xe4\x46\x25\x29\xc1\x40\xce\x3b\x95\x39\x94\xe0\xa2\xbd\x6d\xd8\xb0\x1b\xad\xf7\x91\xa0\x92\xa6\x3d\x31\xe7\x6b\x59\xd5\x88\xbd\xdf\x36\xa7\xe9\xbb\x20\x78\x8c\x9a\xa7\xed\x33\x65\xe3\x65\x67\xb4\x29\x46\x82\x5b\xa3\x6f\xa1\xf5\x03\x7c\xee\x2a\x7e\xf9\x25\x90\xa1\xc2\x0e\xf1\x6e\x7d\xb7\x42\x64\xcf\x7a\xb9\xf1\x17\x2d\xc1\x0a\x8d\x7c\x5d\xdd\x3e\xf0\xaf\x4f\x77\x8b\xfb\xf5\xce\xa7\x67\x91\x4a\x53\xe3\xe5\x0a\x1d\xc4\x76\x55\x68\xb4\xc0\x42\xe7\xbc\xd1\x4e\x13\x69\xa9\x3c\xf3\xd8\xc6\x98\x88\x7e\x5e\xb6\xab\x55\x93\x0d\xad\x2b\x07\xab\x75\xfb\x21\xec\x21\x2e\xcb\xac\x88\x93\x08\x53\x1b\x92\xf8\x0b\xd0\x26\xc5\x56\xc9\x63\x6f\xc3\xd1\xfe\x11\x04\xed\xa0\x95\x68\x09\x39\x8a\xa2\xdd\x30\x08\xad\xd6\x74\xd3\xa9\x5d\xde\xf6\x3d\xe7\x08\x52\x86\xf1\x68\x27\x35\xd5\x5e\xeb\xf7\xc7\xed\xc4\x36\x74\x76\x4f\x8d\x40\x46\xc8\x8b\xda\xba\x05\x62\xa8\xb2\xf2\x8f\x0b\xff\xeb\x3e\x6a\x42\x8d\xb1\x23\x2a\x6d\xfe\xb3\x94\x88\x24\xb0\x74\x54\x38\x33\x5a\xf6\x9f\x89\x15\x65\xdd\x6e\x9f\xcf\x39\x3b\x91\x38\xa0\x1a\xfb\x62\x2f\xd9\xf3\x4b\x7b\xcf\x07\x5e\x91\xf3\xd3\x22\x0e\xda\x40\xd6\xa1\x1a\xb2\xc9\xc3\x8c\x49\x10\x62\x8a\xb2\x47\x01\x42\xaf\x18\xb2\x31\x33\x6f\x50\x4c\x48\x84\x09\xf6\x3d\xbc\x63\xe9\xf2\x4c\x07\x85\xc4\x24\x09\x54\xdc\x45\x97\xda\xd6\x5a\xc8\xf6\x98\x67\x03\x78\xec\xe4\x33\x2c\xb4\x94\x0d\x27\x5a\x6a\xf9\xdf\x57\xd9\xa0\xbb\xd8\x87\xc5\xfe\x23\x22\x1a\xf8\xc0\xcc\xf8\xbf\x4c\xa3\xe4\x98\x93\x44\x91\x4e\xc5\x05\x9f\xe6\x99\x79\x14\x89\xc3\x28\x45\x3d\x9c\x77\xf0\x5a\x37\x77\xc2\x47\xfa\x71\x14\x30\x08\xc7\x30\xf0\xbb\x8f\xf6\xbb\xeb\xf6\x39\xe4\x30\xd5\xdf\x24\x71\xc4\x03\xe9\x3e\xb1\x5d\xdd\x0a\x09\x9e\xd1\x4a\xe2\x38\x91\xa9\x9a\x88\xdd\xce\x54\x50\xe3\x24\x66\xd8\x1a\x7a\x17\x55\x95\x95\xd5\x2f\xda\x4c\xb1\xd0\x02\x5b\x29\x6d\x62\xbd\xb4\x4e\x0f\xb6\x58\x80\x8e\x83\x6b\xed\x2c\xef\x57\xc8\x63\xf4\xd7\x22\xb9\xb1\x32\xa1\xbf\xff\x31\x8c\xe0\x62\x1d\x04\x29\x78\x33\x66\x2c\x8e\xcf\x3d\x72\x4d\x25\x56\x40\xdf\xcb\xfc\xf5\x0b\x14\x50\x67\xe7\xb0\xd2\xf1\x45\x82\x4a\x80\x76\x2b\xf6\xe2\x78\xf4\x4d\xa3\xe1\x92\x18\x9b\xc8\x6a\x08\xbd\x77\xf8\x9e\xd8\x28\xe5\x49\x6d\xff\x2c\xa5\x67\x7c\x4c\xb3\x8d\xf1\xe5\x19\x9d\xe0\x56\x27\x4f\x1f\x5f\x56\xf7\xc1\xf2\x25\x93\xd9\x67\xb1\xb1\xfd\x58\x42\x78\x18\x5b\x4e\x4b\x21\x0e\xb0\x6d\xca\x36\xea\x1f\xbf\x3b\x09\x89\xd2\x84\xf8\x02\x41\x69\xba\x29\x8e\x2a\xcc\x7d\x02\xe6\x46\xd3\x44\x38\x6c\x4a\x53\x89\x3d\x2a\x80\xec\xb5\xe7\x6d\xb8\x31\x2c\x88\xfd\x42\xfc\x08\x07\x91\x15\x1b\x63\x85\xcf\x67\xb7\xdc\x84\x85\x29\xee\xcc\x05\x80\xae\xaf\xb2\xca\x0b\xb7\x90\x84\xc5\x21\x73\x33\xef\xd9\xd9\x09\xf8\x23\xda\x8a\x3e\xda\x69\xb1\xbe\xbf\x5e\x5f\x3a\xb9\xd1\x81\xa7\x0d\xb4\xb1\x1e\x3e\x7a\x77\x2c\xe4\x51\x62\xcb\x0c\x79\x7e\xd5\x6e\x9b\xf3\x5c\x51\x92\x84\x49\x8c\x84\xab\x8e\xc0\xe2\x9d\x6f\x49\x12\x85\x31\x82\x29\x70\x2b\xd8\x67\x85\x29\xab\xc3\xe8\x66\xc4\x54\xa4\x56\x7c\x66\x75\x38\x36\x1f\x33\xfa\x25\x24\x89\x59\x10\xc0\x30\xe8\xf0\x81\x4e\xbf\x62\x26\x71\x64\x05\x0a\x3a\x87\x2c\x3b\x97\x3b\xe6\xb5\x1f\x96\xa4\x48\x69\xbb\xfb\x73\xb9\x59\xfb\xa2\x62\x92\xf0\x90\x0c\xf5\xd5\x9e\x6a\xa8\xbe\x54\xe5\x7b\xf3\xf2\x50\x96\xf9\x27\x7a\x4c\x24\x49\x42\x70\x7e\x73\x3f\x1b\x2b\xb8\xb6\xbe\xee\x4e\x9b\x5a\x29\x7c\x2b\xce\x85\x45\xf6\x4b\x67\xd1\x8c\xd0\x5e\x8c\x7f\x32\xa9\x52\x11\xa6\x56\x95\xc9\x1a\x78\xfa\x3f\x83\xc6\xc2\xcd\xbf\xb2\xa2\xd4\x83\x3f\x1b\xc0\x45\xf0\xf9\x34\xb5\xc0\x24\x89\x68\xb3\x26\x7c\x1c\x2b\x0b\x3a\x02\xed\x8a\x7c\x08\x9b\x18\xcf\x7c\x41\x01\xf5\xda\xdb\x0d\xad\xae\xcb\xea\x63\x69\xeb\xfd\x53\x0a\x12\x49\x64\xc2\x90\x36\x82\xf1\xc8\xd6\x0b\xcb\x91\x44\x05\x96\x44\x7c\x5b\x3e\xa3\x6b\xd5\x99\x54\xd6\x78\x2b\x4e\x54\x9c\x20\x55\xe1\x45\x9c\xc5\x95\x89\x12\xd6\xd8\xef\xea\x54\x15\xbd\x65\xd8\xa7\x15\xe6\x44\xf3\x00\x91\xf5\x02\xb7\xe4\x11\xce\x6f\xbc\x5a\x25\x40\xad\x80\xe8\x17\x2b\xb4\x82\x78\xbd\xf6\xf5\x66\xe3\xa5\x37\x31\x44\x4a\x67\x13\xff\x17\xa8\xe6\xdb\x49\x77\x5d\xa2\xc4\xf0\x14\xd1\xdf\xf7\xd7\xc3\xb9\x65\x42\xe3\x7b\xe7\x77\x99\x05\xe4\xef\xaa\xec\xf9\x79\xda\x0c\x4c\x4c\x64\xb5\xb7\xda\x57\x11\xf5\x40\x46\xb8\xbf\xc4\x24\x11\x9e\xe7\x7a\x75\xbf\xb9\x5b\xdf\x2f\x76\x1b\x47\xce\x21\x29\xe1\x96\x75\xee\xf1\x6a\x4f\x55\x3e\xc7\x36\x27\x6d\x6a\x69\x9c\x12\xdc\x52\x1c\x85\xf2\x34\xf9\xee\x22\xda\x20\x15\xb9\x04\xbb\x41\x9d\xfc\x1f\x93\x21\x32\x44\xc5\x80\x87\x5c\x34\x59\x71\x1a\x9b\xd0\x5d\x14\x48\x27\x29\x0d\x98\xc0\x4c\xba\x03\x75\xd8\x78\xba\x54\xaf\xbb\x72\xc8\x2e\xf3\xe3\x99\x8e\xad\x6f\x71\xbe\x3d\x1d\x07\x7e\xe7\xa3\x27\x92\x52\xc3\xbd\xde\x8b\x13\xa2\x1d\x1f\x67\x92\x82\x15\x3c\xb5\x4a\x0a\x97\x52\xcd\xe9\xa7\x84\x6d\x37\xe1\x02\xea\x78\xa0\xd3\x92\x5f\x1a\xa6\x06\x58\xc7\xb0\xbe\x11\xd8\x0b\x3b\x0d\x40\x11\x69\x44\x63\xe6\x18\x13\x1d\x3a\xe0\x5c\x7b\x80\xa4\x91\xd4\x08\x9d\x7a\x7e\x56\xd3\x23\xc0\xfd\xfe\xb3\xc8\xf3\x6d\x03\x47\x3f\xe1\xd2\x38\x50\x88\xbf\xae\x85\xe9\x28\x2b\x53\x5a\x14\x49\x63\x1e\x1b\xd9\x0b\xcf\xdb\xfc\x77\xfc\x1d\x71\x08\xd6\x94\xc7\x2a\x3e\x5d\xdb\xea\xb4\x5e\xbd\x4d\xc5\x10\x49\x1a\xc7\x2a\x74\x75\x93\xeb\xdd\x24\xc7\x4a\x13\xca\xb4\xb7\xfc\x17\xf5\x8b\x0b\x40\x46\xb3\x20\xe1\x81\xe8\x48\x46\xfe\x12\x93\x24\x46\x34\xff\xfa\xee\x7a\xf5\x87\xbb\xce\x59\xfd\x15\x3f\x1e\x02\x14\x8b\xbf\xcd\x0a\x93\x15\x9d\xcf\x22\x49\x53\x07\x3c\xb7\x7d\xae\x76\xf1\xde\x77\x87\x84\xa5\x9f\xe9\xa2\x70\x36\xd1\x77\xce\x5a\xc2\x8f\x10\x9c\xa0\x9e\x3b\x14\xfa\x26\x1b\xc0\x14\x26\x5f\x2e\x84\x85\xe8\xfe\x6b\xfd\x65\x3d\x78\xd1\x53\xa1\x8c\x8f\xc0\x8f\x58\x32\xc9\x45\xdd\x34\x03\xbf\x8e\xc9\x14\x93\x2c\xc0\xb5\xf8\x66\x37\x0a\xc8\x52\x29\x2c\x77\xca\x47\x3e\xf5\x6a\x60\x25\x49\x52\x09\x49\xd2\x47\xc5\x16\x35\xd3\x99\x71\x7c\x8a\x9a\x49\x25\x58\xe6\x58\x57\xe9\xef\x15\x56\x48\x2a\x4d\x84\xed\xc8\xd5\xf3\xf3\x60\xf1\x9d\x7b\x5b\xba\xc9\xad\x52\xed\x7d\x97\xb1\x19\xbe\x56\xe5\x5c\xb1\x28\x55\x22\xc1\xae\x07\x82\x10\x8f\x55\x56\x43\x7d\x7b\xeb\x0b\x34\xa9\x66\x1c\x43\x90\xbb\xc5\x1f\xeb\xbb\xa7\xbb\xfd\x7a\xb9\x71\x20\xba\x6e\x44\x22\xb1\x5a\xec\x1d\xc1\x3f\x61\x43\xfe\x32\x99\xc6\x7a\x7b\x1f\x37\xa4\x40\x38\xb6\xac\x8f\x15\xe8\x4c\x35\x43\x22\x71\xd2\x0d\x49\xb1\x59\xf7\x24\xb3\xff\xfa\x4b\x82\xd8\xa0\x45\x57\x6d\x29\xd5\xf7\xf0\x7e\x57\x96\xc5\xe4\x75\x00\xad\x62\xd5\xb5\xd3\xb2\xe2\x63\x0b\x85\x1e\x2b\xd4\x92\xd4\x30\x82\x6c\xcf\x45\xf1\xea\xb7\xf0\xd4\x38\x71\xf5\x83\x78\x85\xca\xe1\x88\x07\x52\xda\x24\x35\x69\xa0\x44\xa7\xe8\xe6\xfd\x20\x77\xa5\x5d\x5a\x46\x77\x5f\x04\x84\x13\xde\x49\xb0\xbc\x65\xe5\xc9\x69\x24\xcd\x4e\x6f\x11\x08\x85\x6a\xed\xf0\xdf\x53\x3f\xeb\x44\x20\x05\xa2\x70\x32\x55\x3a\xc7\x7b\x77\x80\x24\x69\x04\x9d\x36\x17\xf2\x2e\xcb\xca\x43\xa0\x9d\x25\xf1\xe8\xae\x08\x62\x48\xe4\xdd\xba\xc5\xcf\x1f\x1d\x12\x4c\xd0\x28\x12\x1d\x56\x79\xd5\xbc\x2c\x2d\xb8\xeb\x11\x54\x06\x6f\x5d\x20\x20\x18\x0f\x82\xc8\xf3\xf4\xbc\xb3\xc1\xe6\xd4\xa8\xf2\x30\xf4\x5c\x20\x82\x29\xeb\x96\x54\x59\x65\x0f\xbc\x81\x37\x65\x75\xb0\x37\xc9\x0d\xe2\xa9\xe5\x73\x79\x39\x3b\x6b\xf5\xe8\x8f\x86\xa1\x5d\xd0\x34\xbc\x41\x5e\x1e\xa1\xda\x0b\xad\xf7\xaa\xac\x9b\x7d\x69\xba\xee\xd7\x78\x89\x13\x61\x1c\xda\x02\xaf\x31\x59\x9e\x89\xe6\x1c\x0e\x23\x42\x69\x33\x68\x09\x75\xb3\x3d\x59\x68\xbc\x67\x4f\x12\x11\xc5\x36\x97\xc7\xa0\xf9\x06\x83\x47\xd4\x4b\x1a\xe2\xec\x45\xcc\x12\x2f\x5b\x84\x25\x69\x44\x0e\x8e\x09\xa0\x93\x27\x1b\x33\xe1\x58\xef\x20\x10\x2a\x8c\x02\x02\x9b\x53\x73\xf4\x1e\x59\x44\xc4\x42\x60\xcf\x15\xe7\x2b\xf5\x7f\x4d\x42\x6a\x7a\x90\x90\x35\x92\x1e\x74\x07\xfd\xa8\x34\xc6\x20\x36\xcf\x8a\xd7\xc9\x33\x4f\x83\x00\xe7\xe0\x7e\x8c\xaf\x98\x76\x5b\x85\x48\xb9\x21\x9e\x60\x08\x35\xba\xc0\xc0\x35\xdc\x41\x2d\x1c\x01\x6e\x4a\x5f\x98\x94\x02\xfc\x79\x24\x60\x98\x66\x7d\xea\x2b\x10\x6e\x57\x9e\xb8\x6b\x12\x21\x14\x8f\x5d\x49\xee\x5e\xa8\x5d\x79\x0f\x8d\x99\x5e\x93\x36\xf8\xe3\x37\x0f\x5e\xcf\x62\xbb\x5b\x7c\xf3\x94\x2a\x21\x1c\xaa\xdb\x31\x23\x86\xf4\x9e\xf1\x57\xc9\x40\x61\xfc\x23\xac\x58\xae\xed\x71\x0e\x99\x2d\x42\x51\x85\xcc\x1c\xcc\xeb\xed\xf2\xee\xe3\x6d\x3f\x82\x47\xa8\x97\xd0\x4e\xa7\xa1\x2d\x39\x11\x2a\x86\xc8\x8a\x80\x69\xf8\xb9\x99\xfe\x06\x95\x5a\x1b\xab\xa3\x63\xae\x8d\xdd\x16\xfd\x20\x9d\x60\xa0\x70\xbd\xfa\xe7\x70\x43\x12\x9a\x08\x14\x97\xfe\x0e\x55\x21\x0e\x0f\x9d\xe6\xc6\xa0\xd6\x2c\x34\x8d\xbd\xc0\x17\xc2\x2c\x3a\xb5\x0d\x22\x34\xb7\xd4\xf1\x36\x9c\xde\x95\x5b\x68\x3a\x22\x62\x32\xe8\x7e\xba\xc1\x26\xd1\x38\x51\x2a\x18\x18\x66\x1f\xb7\xaa\xac\x66\x84\x62\xc7\x97\x6f\x14\x67\x8e\x73\x64\x11\xee\xb3\xd4\x62\x22\x89\x08\xb0\x0c\xb9\x7d\xcf\xea\xda\x0a\x61\xaf\x7e\xda\x99\xfd\xff\xba\xab\xb8\x33\x52\x0a\x72\x58\x14\xb7\x8f\xff\x01\xaa\xaf\x50\x65\xcd\x25\x8a\x9a\xa4\x8c\x93\x74\xb8\xb8\xdc\xf4\x75\x51\x49\x39\xc1\xb9\xf0\xf5\x98\x9f\x46\x3c\x45\x49\x43\xc9\x2c\xff\xe9\xad\x7c\x85\x45\xa1\xb7\x80\xfb\x0f\xa0\xfa\xf9\xb8\xd2\x39\xf9\x42\xc9\x02\x07\xd0\x59\x8f\x9f\xbd\xe4\xcc\x6a\x65\x18\x0b\x08\xf3\x48\x4a\xff\x9d\x5c\x04\x28\xde\x71\xdd\xe9\x06\x76\x47\xb4\x95\x7b\x69\x83\x9d\x07\x14\xc8\xee\x51\x1e\x32\x74\x8e\x36\xcf\xe2\x80\xab\xc6\xe4\x4b\xc3\x84\xa3\x08\xdd\xde\xea\xb7\x7e\x17\x79\xa6\x87\x76\xd4\x93\xdb\x1c\x89\x20\x89\x06\x16\xe1\x03\xb2\xc0\xfc\x07\x62\x61\x35\xd5\xa6\xde\xeb\xe3\xbb\x12\x6b\x06\x76\x9b\xd0\x00\x87\xed\xa9\x6a\xef\xf8\x08\x60\xe9\x07\x9a\x10\xf4\x90\xfd\x3c\xfe\xb6\x44\x70\x6c\x34\xb7\x77\x02\x0d\xf1\xfd\x5d\x48\xe3\x14\x3b\x41\x18\x57\x56\x75\xf3\x03\xe0\xb5\x2f\xda\xcb\x54\x46\xdc\xc1\x27\xaf\x17\xc7\xe3\x68\x2f\x91\x22\xd4\xb8\x59\x1e\x2b\x58\x2f\x37\x77\xa2\xf8\xb8\xa8\x21\x47\xa4\x10\x12\xf3\x81\xe5\xf2\x76\x34\x63\x24\x0d\xad\xa9\xd6\xe1\x98\xef\x8f\x83\x12\x8f\x94\x3c\x41\xb6\xea\x61\xdf\xbe\x9d\x52\xd4\xfd\x11\x49\x89\x55\x0d\xc8\x44\x7e\x0d\x42\xe7\x59\x31\x38\x68\x45\x1e\xbf\x40\xa7\x01\xd3\xeb\x22\xb5\x87\x81\xa3\x69\xe0\x11\x1b\x66\x3b\x31\xb5\x53\x27\x52\xea\x08\x17\xd5\xef\x90\x89\xe7\x73\x61\xe4\x76\x80\xc2\x1d\xd2\x89\x2a\xf8\x53\xab\x24\x74\x9a\x50\xcd\x0e\x99\xdf\x93\xee\xa3\x54\x89\xe0\xa1\x17\xdf\x5d\xe8\xee\x7d\xd2\x8a\x23\x50\x14\xdb\x71\xf7\xf0\xbe\x3d\xe2\x1a\xd8\x49\xd8\x8c\x2f\x4f\x9b\x14\x97\xbc\xac\xde\xb9\xdc\xd6\x2d\x50\x12\x02\xc9\xc8\x60\x12\x58\xeb\x81\x49\xcc\x25\x81\xda\x36\x94\x5d\x56\x96\xcb\x65\x99\xcd\x8a\xb3\x13\x09\x69\x80\xfd\xbb\xbd\x3e\x4d\x81\x01\xd2\xa4\x2a\xf4\x7a\x15\x7b\xdf\xb3\xc1\x32\xd2\x8d\xf0\x2a\xe2\x44\x1a\x90\x88\x3b\x59\x56\x1f\x75\x93\xf9\x7c\xdc\x1e\x54\x01\x63\x58\x5e\xdb\x39\x47\x91\xee\xef\xa1\xc4\xfc\xb6\x47\xb4\x8e\x7f\x81\x22\x44\x21\x98\x4f\x5b\x09\xbb\xa1\x37\xf0\xec\x22\xa8\x08\x50\x45\x9c\xea\x52\x47\x0b\x9d\x92\xf3\x14\x0d\x58\xec\x80\x29\x8b\xaa\x59\xd5\x6a\xae\xe0\xa7\x28\x4b\xa9\xd5\xec\x7e\xdb\x0a\x73\xa1\x65\xa9\x68\x98\xc2\x50\xd8\x42\x9e\x11\xd0\xfc\xc0\x58\x52\xcf\xe7\x6b\xc7\x22\x93\x6a\x94\xa7\x2b\xc6\x42\xac\xdb\xe2\xad\xce\x0a\x54\xeb\xc5\x82\xe4\xea\xbf\xdf\x45\xee\xa3\x5d\xc5\x20\xb4\x90\x4c\x39\xf9\x5d\x0c\x62\x5b\x59\x79\x29\xdf\xf3\xb7\xff\xbd\x94\xa7\xc9\x00\x1e\xd2\xd4\x72\x34\x10\x8b\x93\x67\x75\xb3\x3d\xda\x74\x60\x32\x30\x0d\xa8\x95\x47\x70\x70\xb8\x55\xa1\x72\xf1\x76\xa9\x74\xa8\xb8\x8a\xad\xc3\xfd\x14\x3b\x4b\xa2\xc0\x0d\x89\xa8\x40\x3e\xe3\x6d\xe9\xbd\x6e\x46\xe3\xe8\xb8\x50\xa3\x62\x02\x54\xf6\x20\x35\x6c\xb4\xf5\x19\x93\x8a\xa9\x46\x11\x93\x97\x32\xd7\xdb\x93\xec\xb4\x6b\x67\x68\xb4\x2a\x4e\x05\xae\x89\xcb\xcd\x7d\x40\x49\xec\x6f\x63\x42\x63\x0c\x85\x16\xda\xaa\xb2\x5e\x30\xe2\xf5\xa3\x63\xa6\x9c\x86\x24\x42\x77\xcf\x38\x22\xe3\xef\x4c\x80\xa1\xd8\x1a\xb8\x4d\xdd\x11\x29\xdc\x51\xa1\x05\x2e\x3c\xf0\x66\x2d\x9f\xfb\xc5\x50\x49\x6e\xa9\xfb\x50\xe8\x8d\xa1\xfc\x6b\xf7\xf7\x34\x11\x66\x04\x3b\x98\xc3\x8d\x2b\x25\xac\xdd\x9c\x86\x37\xff\x49\x4d\xb9\x93\x9f\x6d\x10\xac\xf5\x99\xeb\x1e\x51\x9a\x87\xb6\xde\x9a\x67\x50\xdc\x88\xea\xd0\x9d\x26\x86\xd4\xdb\x9c\x14\x90\x5f\xc3\xa8\x0d\x35\x8f\xed\x51\x1a\x14\x32\x52\x2d\xc9\xec\x7a\x7d\xbf\x71\x8a\x6c\x43\xba\x99\x82\x44\xe1\x7a\xba\xfe\x7d\xd7\xa1\x46\xfb\x63\x10\xb8\xca\xe5\xee\xbd\x9c\xfc\x5a\x00\x82\x4d\x0c\xe9\x44\x30\xe6\xad\xbb\x89\x02\x13\x09\xcb\x61\xfc\x58\xf8\x7c\xc8\x7f\x81\xa1\x04\xe1\x5d\x4d\x2f\xe5\xf5\xa9\x97\xa3\xff\x58\x2c\x30\xf9\x3d\x59\xcb\x8e\x91\x22\xde\xf8\x1e\x18\x19\x23\x3d\x47\x41\x96\xa3\x73\xeb\xe8\x44\x3a\x90\x0c\x7f\xc3\xfe\xd0\xee\x6d\xb3\x5f\xa6\x03\x6d\x45\xf2\x84\x52\xd5\x09\x96\xe5\xe9\x58\x16\xf5\x03\x54\xb6\x66\xb3\xda\xf9\x59\xa2\x49\x18\x63\x58\x96\x83\x69\x08\x99\x7c\x13\x09\x6d\x97\xe3\x1d\x32\x1b\xb6\x77\x4e\xab\xa4\x8d\xae\x71\xde\x1c\xf3\x53\x53\xaa\x4a\xa8\x8f\xfc\x2d\x5f\xa8\x17\x9b\xf4\xce\x2c\x8f\x9a\x32\x41\xc4\x84\xa2\xe9\x0f\xa5\x0c\xc5\x6d\x2e\x66\x81\x9a\xb3\x10\xf7\xee\xc3\xc7\x50\x42\x40\x73\x26\xb1\x2d\x5d\x65\xcf\x2f\x4d\x1c\x4d\xae\x9f\x47\x14\xa3\xbc\x17\x51\xbf\x3c\xb5\x8b\x56\xfe\x91\x15\xcf\x03\xc0\x6c\x67\xcc\xe5\x83\x11\x1d\x86\x89\x8c\xcf\x4c\xf9\xff\x9c\x04\x55\x3a\x0c\x15\xc2\xcf\x1f\x4f\xd9\x1f\xa7\xa1\x8c\x0e\xd1\xa1\x8e\x11\xcb\x59\x9e\x1a\x72\x5d\x76\xd1\x87\x8e\x28\xc1\xe5\xdc\x9d\x28\x14\xfd\x81\x10\xdc\xe6\x72\x3a\x2e\xcb\x6a\xea\x48\x3a\xff\x84\x23\x16\x79\xf5\x65\x57\xbe\x40\xf7\xa3\x4f\xd1\x3d\x3a\x66\x76\xef\xb1\xf9\xac\xc7\xf6\x37\x48\xc0\x1f\x81\xcf\xba\x75\x53\xc7\x91\x94\xd2\x67\x09\x8d\xc8\x9d\x09\x8a\x8f\x50\x74\x9c\x10\x8c\xde\x5e\x5f\x77\x50\x37\xeb\xe5\xc6\xef\x3a\x3a\x09\x52\x34\x8f\xdc\xdb\x74\xd6\xca\x56\xfe\x4a\xe8\x66\x48\xbe\xd6\x89\xb4\xbe\xe2\x57\xa7\x0f\x9b\xbd\x77\xcf\x3d\x25\x1a\x63\xf0\x1b\xa8\xaf\xa0\xea\x5a\x37\x3a\x8d\x42\x4e\x3a\x21\x7e\xd0\x5b\x31\x89\x4e\xb4\x70\x46\xa0\xfe\xed\xbd\x24\xa7\x39\x89\x52\xb5\x48\x09\x2a\x18\xfe\x58\xdc\xde\xae\x76\xfb\xdb\xab\xfd\xe2\xfa\xae\x2b\xa3\x6a\xa9\xb9\x62\x76\xc1\xd8\x95\xa7\x36\xe3\x84\xa2\x19\xb3\x80\xdc\x48\x15\xc4\x71\xcf\xa8\x5f\x1c\x8f\xb9\xd7\xbc\xff\x4c\x51\xf2\x93\xff\xf8\xf3\x12\x62\x5c\x49\x0b\xb1\x98\x0f\x17\x3d\x3f\xba\x0f\x48\xe2\xcd\xdb\x96\x4f\xdb\xeb\x0b\x4b\x89\x8a\x34\x6e\x4c\x48\xe7\xbe\x29\x2b\x6f\xc7\xe7\x7f\xb9\x4a\xc3\xc8\x35\xbe\x6f\xcb\xe7\x51\x1e\xa0\xb5\xb0\x5e\x7f\x6a\x90\x95\x69\xe0\x06\x77\x62\x84\xe0\xb7\xf3\xbd\x9d\xb8\xf5\x5c\x92\xa3\x21\xe4\xb1\x2f\x02\xba\x90\xb7\x1a\xb6\x97\x34\xe8\xc4\x88\x41\x0e\x7b\x35\xeb\xe5\x43\xb4\x09\x3a\xaa\xe2\xc8\x25\x8a\x68\x93\x86\x48\x42\xbe\xda\x8e\x24\x08\xb4\x11\x69\x64\xf3\xab\x63\x59\x8d\x0a\xac\xc4\xdf\x19\x03\x9c\xba\x93\xde\xc0\x79\xa2\x6f\x47\x41\x10\xa6\x74\x28\x30\xd7\xe7\x50\x10\xc4\x4e\x5b\x0e\xf5\xe0\x4f\xb3\x71\xea\xf4\x6c\x22\xc4\x18\x04\xdf\x29\x0b\xe8\xde\x36\x30\x36\x38\x20\x10\x48\xeb\x13\xfc\x50\x95\xa5\xb1\x1c\x9d\x5e\x30\x8e\x40\x00\x2c\x55\x1e\x3c\x6e\xd5\x3a\x26\x82\x28\x93\x6f\x25\x2c\xc5\x8e\x64\xa5\x8a\x41\xb6\x0f\x24\xb5\x5e\x74\x56\xe9\xed\x53\xfb\x66\xff\x09\xa5\x30\xa6\x1b\xf9\x83\xff\x0a\x47\x79\xe1\x56\x50\xaa\xd2\xc0\x6b\x16\x19\xa1\xa0\xbe\xa4\x14\xea\x5f\x62\xa0\x4c\x60\x8a\x67\xd7\x3f\x2c\xf9\xd8\x52\x4a\x51\x6a\x18\xf7\x91\x81\x1a\x8a\x60\xf4\xaf\xe5\xef\xa7\x19\xc4\x11\xb0\x00\x94\xb5\xcf\xf8\x68\xb3\x50\xcb\x41\xfa\xbf\xa1\xe3\x80\x31\x9b\x99\x16\xa7\xc3\x55\x05\xef\x7e\x99\x83\x30\x60\x58\x57\xca\x6a\x54\x42\x47\xce\x70\xd5\x3d\xc6\x90\xca\x94\x78\x5f\x3f\x2c\x59\xfb\x03\x51\xaa\x98\xd3\x01\xad\xf4\x55\x59\x4e\x0a\x9b\x10\xa6\x52\x99\x9e\xf4\x7c\xdf\x0b\x63\x40\xa4\x03\xef\x2b\x7c\xb3\x7e\xdc\xee\xf6\xdb\xdd\xea\x61\x7f\xbb\xbe\x5b\xef\xfc\x90\x98\x58\xe5\x37\xcc\xc9\x69\x81\xc2\x3e\x93\x9b\x13\x33\x2a\x5d\xbf\xcd\x56\x3b\x86\x0e\x18\xc3\x7b\x30\xd4\xef\x81\x38\xb5\xbe\x39\x2f\xa5\xce\xa1\xc2\xed\x66\x58\x1a\x87\xd8\xd8\x3e\x19\xae\x1c\x96\x88\xf8\x88\x2d\x2f\x77\x3c\x89\x02\x6f\x7e\xfb\x20\x10\xc0\xaf\x67\xed\x45\xdb\x91\xcc\x75\x22\x1a\xaf\xe6\xdd\x15\x00\x4f\x03\x2b\x14\x02\x49\x42\xb0\x1a\x23\x64\x76\x0b\xc5\x73\xd3\x6b\xb2\xf8\x49\x95\x68\x86\xa8\xb7\xf6\x66\x5e\x65\xcd\xa6\x6a\xd3\x5c\xe4\x61\x6c\x36\x57\xdd\xa5\x19\xc5\x7a\x85\xff\x87\xec\x78\x8e\x8c\x1b\x4f\xbf\xd4\xd8\xef\x7d\xc9\xd0\xd0\x75\x6e\x2b\x01\x41\x53\xee\x2a\x63\x5b\xe8\x04\x39\xa7\xb9\x19\x08\xae\xd1\xd4\xa9\x2e\x44\xa3\x5e\x40\x6f\xfc\x22\x07\x22\x4c\x41\x3a\x00\x52\x87\x9c\x9e\x7e\x3a\x11\x81\x73\xec\x39\xcb\x04\xc6\x97\x23\xd3\x18\xa3\x8b\xe3\x8b\xa8\x0e\xa2\xa9\xb2\x09\xf9\x0a\xa4\x4a\xa2\x76\xc2\x16\xe5\x0d\xc0\x59\x24\x30\x1e\xab\x88\x35\x64\xdd\xd7\x2f\xa7\xe6\xba\x7c\xef\xae\x59\x25\x3c\xb4\xc4\xb7\x45\x73\x57\xd6\xcd\xd8\x3b\x64\xb4\x27\x82\x4a\x09\x96\x0e\x37\xef\xd8\x1f\x59\x1f\x8e\x79\x77\x1a\x2d\x50\xe2\xfb\x0e\x8a\x13\x99\x84\x77\xa0\xa3\x04\x65\xf4\xdc\xd3\x6a\xa7\x87\x57\x38\x1b\x23\x14\x26\x17\xad\xc1\x0a\x93\x5f\x7b\xb7\xf4\xbf\x07\x11\x07\x88\x25\x96\x62\x5d\xd9\x62\x90\xb7\x82\x21\x56\x7a\xba\x86\x66\x2a\xce\x3a\x7b\xe3\x4c\x40\x19\x92\x3c\x5f\x4e\x85\xae\x40\x7f\x9b\x48\x93\x98\x80\x1a\x5c\xfc\xaf\x21\x17\x1f\xde\x8c\x78\x7c\x0a\x42\x04\x0e\x69\x23\xf5\x1f\x59\x31\x74\x90\x26\x86\x28\xe3\xfc\xe6\x85\x69\x7a\xd1\x28\x43\x0c\x43\xdc\x23\xf6\xc1\xac\x0f\xf0\xe4\xb4\x34\x0e\x10\x42\xad\xa7\x96\x98\xc4\x50\x90\x28\x88\xfb\x02\x59\xf7\x45\x8c\x6b\x14\x56\xed\xec\x23\x27\x98\x87\x33\xe6\x9c\x53\x47\x1a\x91\xb5\xfa\x68\xd2\xb0\xf6\x95\x72\x7d\xcd\xb2\x68\x84\xf2\x22\x85\x57\x1f\x33\x4c\x41\xc3\x14\x47\x88\xef\x97\xed\x9f\x9f\x71\x86\x0c\x97\x31\x2a\xd7\xd5\xe5\x29\x6f\x97\xda\x87\x33\x14\xa9\x09\x23\x16\x8b\x0e\x51\xe5\xb6\xda\x61\x1c\x63\x42\xc5\x30\x2a\xd5\x65\x21\x1a\xb4\x0d\xb0\xe8\x51\xb4\x62\x1e\x3e\x67\xcf\x9a\x34\xa1\x61\x28\xa3\x73\xb7\xf8\xc3\xf6\x9d\xf7\x5f\x1e\x17\xf7\xbb\xd5\xca\xf7\x9f\x4d\xa4\xac\x73\x57\x4f\xab\x5b\x2f\x37\x68\x5e\xe7\x47\xc4\xed\x6d\xc7\x57\x89\xd0\xe4\x2a\x9b\x94\x06\x4c\xac\x0c\x5a\xda\x88\x37\x91\xe5\xe8\xd1\x34\x14\xe9\x31\x49\xc8\xb1\xa5\x6f\x37\x53\x2c\x83\x6f\xaa\xe7\xb3\xd9\xd9\xcf\x65\x93\x06\x04\xd1\x6e\x2f\xd9\xf3\x0b\x2e\x96\xba\x07\x80\x99\x54\x4a\x6f\x52\xe6\xbc\x5b\x50\xb5\x66\x32\x51\x52\xc3\x3d\xf0\xfa\x11\xb7\x70\x95\x9f\x90\x52\x31\xc8\x0a\x8d\x08\xc2\x30\x1c\xee\x03\x63\xda\xb4\x11\x24\x8d\xb4\x97\x49\xab\x51\xc4\x0a\xb4\x35\x08\xf2\xd6\xbd\x83\x7e\x80\x11\xb4\x73\xac\x7e\x10\xd9\x85\x2d\xc5\x48\x1e\x26\x76\xd3\x45\xf1\xd9\x3b\xf1\x17\x7a\x4b\xfa\xc4\x6c\x32\x38\xe5\xd8\xb0\xcc\xea\x6d\x53\x0e\xa4\xd7\x8c\xe2\x0c\x49\x34\x6d\x02\xb1\x13\x3d\x57\xca\x1f\x8e\x15\x1a\x31\xec\x2a\x80\x81\x1c\x89\xd1\x44\xc5\xba\xf7\x12\x84\xea\xea\x03\xa1\x71\xa3\x0f\x6b\x29\xc3\xb0\x67\x66\x3f\x55\xf9\xb0\x46\x6c\xb4\x89\x10\x67\x01\x39\x28\xe7\xbc\x82\x6b\xb4\x2a\x87\x26\x06\xf3\x3f\x1e\x42\x11\x59\xa8\x76\xfb\xf6\x5f\x61\x31\x75\xc4\x4c\x30\x10\x4b\x21\x5d\xb6\x61\x8f\xb4\xfb\xd5\x25\xd1\xbf\x71\x45\xc4\x80\x60\x61\x17\xf5\x5a\x2b\x1e\x1b\x18\x4c\xae\x42\x13\x65\x79\x3a\xc6\xe4\x30\x40\xc4\xcf\x89\x85\x7c\x9a\x80\xfa\x6d\xd8\x00\x88\x74\x68\xbb\x76\x55\xf6\x11\xc0\xfc\x62\x6e\x4c\x24\xb1\xf0\xe6\xa0\x5b\xf5\x0d\x66\xa2\xf6\x3e\xd0\x20\x48\xa4\x11\x1d\xf2\xa0\x3c\x55\x6d\xdc\x8a\xd1\x9b\xa8\x3e\xe6\xbc\xeb\x68\x40\x84\x4a\x5d\x16\xb4\xdc\xdc\xfb\x13\xb5\xd9\x11\xb6\x0c\xec\xf5\xee\x4a\xa7\xe1\x37\xbc\x7e\x1a\x30\x12\x05\xc1\x80\xe6\x3b\x50\xde\x9f\x5b\x3e\xff\xe3\x3f\x96\x4a\x6b\x8d\x6b\xd7\xaa\xef\x28\x9a\x38\xb9\x2c\xa6\x24\xe2\x3b\x8d\x85\x99\xfd\x38\x57\x60\x1d\x2e\xc2\x23\x6d\x79\x1a\xf0\x38\xe2\x4e\xd6\xe2\x6b\x59\xbe\x5a\x4f\xdd\x72\xfa\xcb\xb9\xa4\xb8\x05\x1c\xc4\xcf\xef\x50\x65\xc3\xf5\x87\x06\x5c\x05\xd8\xfc\xfb\xfd\xdb\xb2\x7f\x15\x68\x10\x0a\xc9\x94\x03\x99\x3c\x62\x19\xa0\x3b\xa2\x15\xb6\x03\x9f\x6a\xad\xd0\x6e\xdd\xff\x1d\x14\xd7\x5d\xd1\x60\x7b\x2c\x8b\xba\x44\xaa\xc1\xa7\x0f\x9a\x06\xa1\x91\x88\x81\x69\x03\xbf\xde\x4b\xf6\xe4\x91\xce\x34\x88\x22\xc6\x23\x0f\x5c\xac\x9b\x1c\x6e\xcb\xb2\xe9\x5c\x86\xb3\xb2\xe8\x4d\x3b\xc7\x67\x8e\x52\xc0\xdf\xbd\x47\xb4\x49\xf5\xda\xb1\xbc\xdd\xf1\x38\xb6\xcc\x88\xfa\x24\xbf\x67\xd5\x39\x79\xdb\x0d\x4b\x99\xd6\xd1\x90\xaf\x8a\x2f\x44\x77\x10\x62\x97\xb7\x3f\xd5\x50\x3d\x82\x99\x13\xc5\xa4\x41\x9a\x1a\x2d\xbb\xbb\xd3\x6e\x03\xab\xe6\x65\xbe\x51\x42\x83\x54\x32\xe5\xf7\xd8\xaa\xd3\xa0\x1c\x3e\xf8\x14\x40\x5a\x41\xf7\x76\x1d\xf0\x45\xf1\xf2\xdc\xc2\x72\xfe\x27\xc9\x80\xe2\xa6\x53\x94\x3d\x6c\xcb\x1f\x62\xc2\xdb\x1e\xde\x58\x20\xcf\x72\x38\x5d\xa4\x8c\xf0\x93\x39\xe8\x67\xa8\x86\x4a\x1b\x34\x50\x29\x47\xc0\x4c\x57\x68\xba\x29\xab\xcd\xc8\xbc\xfd\x34\xcb\xa5\xa1\x81\x56\x40\x1c\x4f\x6f\x51\x3c\x43\xbe\x14\x95\xde\x42\x95\xb9\xf7\xac\x1b\xa6\x39\x26\x78\x26\xab\x6a\xb4\x63\x6d\x0a\x8b\xca\xe9\xb7\x25\x1a\x68\x03\xc8\x83\x5f\xdd\x2c\x1e\xef\x86\x53\x1a\x98\x4a\xdd\x3c\x6a\x1f\xd5\xa4\x58\x37\xfc\x1e\xe0\xda\x12\xef\x9c\x0a\xc3\xaf\x2b\x89\x34\x30\x46\x60\xeb\xa6\x7c\x2f\xa0\xda\x98\xe1\x9e\x41\x09\xe1\xd6\x2a\xd1\x5b\xac\x8e\x69\xbe\xe3\xa1\x29\xc3\xa4\xd2\x93\xfe\xc6\x20\x64\x4a\x68\x10\xf8\x46\xb4\xc5\x13\x7b\x38\xcd\x2d\xbc\x41\x7e\x53\x9e\xc6\xe9\x4d\xfb\x81\x10\x69\xf3\xc5\xe9\xf0\xcf\x52\xfa\xdb\x44\x28\x63\x36\x2c\xd1\xfa\xea\xf4\x31\xb5\x1a\x9b\x7c\x27\xe3\xb8\x5f\xda\x5d\xa7\x3f\x43\x2c\x06\xc9\x98\x15\x23\x98\xab\xc5\x53\x42\x63\x42\x6d\x33\xbe\xf0\x09\x8b\xe5\x7f\x66\x43\x07\xf0\x4f\xaa\x98\x94\x50\x1d\x60\x8b\x11\x6d\x3b\xae\xa0\xa9\xd7\x06\x21\xaa\xf7\x65\xb3\x3d\x21\x48\xfd\xb7\xb1\x85\xfe\x7c\x96\x40\x09\x6f\xdf\x7b\xdb\x55\x37\xd9\x4f\xd0\x1d\xda\xf9\x8c\x23\x36\xdb\x5c\x69\x4f\x20\x65\x3a\xa0\x1e\xdb\xce\xe8\xd5\xc7\xe0\xff\x59\x14\xda\x02\x37\xd7\xf3\x92\x36\x94\xf0\x30\xc2\x55\xf4\x50\xea\xcc\x64\x50\xad\x7e\xfa\xdb\xca\x1d\x5c\x07\xcd\x75\x7e\x0c\x7d\x4a\xeb\xc9\x93\xe5\x32\x42\xac\xd9\x41\x54\x55\xd6\xed\x8d\x84\x43\x88\x50\xaf\xbe\xa7\x73\x3a\xf3\x28\x9c\x06\x07\x94\x84\x32\x44\x28\xf5\x97\x32\xd7\x77\x59\x01\xb3\x34\xff\xd3\x14\xd9\x4d\x49\x14\x53\x94\x0d\x51\x65\x39\x5a\x0d\x48\x24\xad\x50\xd0\xbb\x53\x32\xb4\xcd\x8a\xee\xa8\x32\xb8\xed\x38\xeb\xb9\xad\xc8\xa1\xf6\xcb\xd8\x28\xce\xa4\x24\x26\x01\xa4\x03\xd7\x1b\x7b\xa2\x91\x72\x38\x25\x71\x18\x04\x4e\x3a\x0a\xf1\xbb\xae\x0e\xf8\x59\x73\x91\x92\x58\x71\xe6\x2d\x19\x2a\xa1\xf2\xce\x82\x6d\x7c\x9f\x13\x9a\x38\x1f\x9a\xc3\x21\x6b\x3a\x52\xd2\xe8\x36\xc8\x20\xe0\x97\x80\xd6\x93\x47\x2f\x49\x68\xa5\x72\x84\x2c\xab\xaf\xe5\xa9\x1a\x97\xfc\xce\xef\xf8\xe0\xa3\x54\x63\x80\xd8\x87\x7f\xbf\x7d\xb6\xce\x13\xc9\x43\xd4\xf6\xeb\x7a\x07\xed\xcb\xe3\xb5\x69\x27\x43\x75\x64\x82\xbe\xb1\x36\x11\x1c\xa5\x44\xc7\x14\x74\xc7\x2a\xd2\x1d\x2f\xe4\xb7\x41\x3e\x45\x89\x06\x45\xc9\xc0\x28\xe8\x5e\x1c\xe0\x8f\xf5\xf5\x19\x77\xcf\x67\x33\x94\x00\xb1\xc6\x8f\x68\x31\xdf\xeb\x77\x52\xd2\x86\xba\xd1\x20\x66\x5c\x62\xb0\x31\x5e\x83\xdd\x50\x13\x6a\x70\x58\x5b\x44\x2e\x7d\x2f\x9b\x0b\x64\x0f\x4a\x8c\x73\x22\x71\x2e\x7d\x37\x22\xcb\xfb\xa2\x2e\xa5\x01\xb5\x2b\xd5\x6a\xf7\xd4\xfd\x29\x96\x3a\xf1\x22\x49\x4b\x51\xd5\x6b\xfd\x73\x79\xd6\x03\xa6\x34\xd0\x1c\x3f\xba\x2f\xca\xf7\x6b\xd1\x0c\xc0\x50\xed\xb1\x10\xe3\xd5\xeb\xec\x80\x4e\x36\xb3\x55\x5e\x37\x96\x32\xc0\x3c\xf7\x2a\x3f\xc1\xa3\x4b\x00\x2c\x24\xe9\x72\x02\x4d\x29\xd3\x60\x0b\x0a\x03\x1d\x4f\x1b\xe9\x8d\xab\xf8\x94\x72\x1a\x23\xc6\x5c\x89\x62\x5b\x7a\x74\x0d\xa5\x3c\xb5\xee\x03\x15\x3c\x9f\xd0\x70\xe1\x15\x8a\x3b\xf1\x13\xdf\x4c\x3f\x26\x0c\x2c\x3e\x38\x2f\x55\x9b\x9f\x7c\x5c\xd2\x23\xf0\xc3\x13\x9b\xd4\x0b\xdd\x2e\x29\xcd\x99\x9c\x33\xa5\x51\xe0\x9c\x1c\x32\xa8\xf6\x4a\x1c\xf7\xc4\x7f\x55\x1c\x87\x48\xaf\xb0\xbb\xcb\x3d\xbc\x23\xf6\xfb\xf3\x58\x92\xc6\x71\x6a\xcd\xe7\xa5\xea\xce\x23\x41\x5b\xd9\xf8\x36\x22\x19\xc5\xbe\x34\x09\x23\xed\x75\xe2\x33\xf5\x5a\xdf\x94\xd5\xd0\x69\xd9\x8f\x82\x34\xd0\x23\x1c\xf0\xd5\xf6\xd1\x9f\x22\x55\x21\xf6\xc9\x0b\x78\xdf\x1f\x44\x56\x8c\xb7\x41\x3f\x08\x18\x3a\x4a\xd9\x66\x15\xb6\x13\xa6\x45\xc0\x09\x01\x96\xd2\xd4\x30\xdc\xef\xbe\x7d\x1f\xe2\xb9\x28\x15\x09\x47\x31\xbd\xa3\xf8\x38\x74\xce\x6b\x94\xca\x80\x60\x29\xf6\x5d\xe4\xaf\x38\xfe\xb6\x6c\x2e\x0a\xa7\x9e\x03\xe2\x07\x6f\x24\x95\x01\x27\x3e\x6c\xc6\xee\xfe\xf6\x74\x68\x97\xa9\xc9\xb2\x48\xa5\x20\x58\xe3\xee\x10\x76\xcb\x53\x55\x5d\x7f\x14\xe2\x90\xa9\x01\xb6\x82\x52\x09\x1a\x57\xa1\x76\xd5\xba\xbf\xd9\xd5\xf7\x65\xe3\x49\x7c\x7d\xee\x34\xa6\xf3\x52\xaa\x22\x0e\xc6\x2b\xea\x74\xd1\xfe\x04\xc5\x77\x9e\x73\x51\x2d\x42\x5c\x81\x1e\xcb\xf6\x79\x3f\x94\x65\xee\xb5\x33\xc6\xcf\x44\xeb\x10\x71\x15\x99\x12\xc7\xae\x88\x3a\xb2\x89\x1c\xab\x6f\x77\x1f\x8b\xb5\xdd\x8c\x8a\x36\xd7\x82\x6f\xf0\xe1\x7f\xa6\x21\xd6\xf5\x04\x10\x3a\xd4\x23\xf6\x29\x35\x31\x41\xcd\x26\x87\x49\x69\xda\x0f\x3e\xcf\xf6\xd8\x28\x35\x2a\xb1\x16\x72\xa2\x7e\x7d\xa8\xca\x76\x95\x05\x7d\x5f\x2e\xcb\x7a\xe8\xe1\x61\x07\xb3\x80\x06\x78\x35\x9d\x85\xca\x9d\xc8\x50\x72\x61\xba\xef\xf5\x8f\x97\x11\x08\x4c\xfa\xff\x04\xb3\x1e\xe5\xc2\x8c\x12\x82\x30\xe4\xfa\xa5\x7c\xbf\xcd\xde\xc0\x77\x32\xfd\x22\xc1\x28\xb7\xf5\xf4\xab\xc5\xfd\x72\xf3\xb8\xbf\x5f\xed\x7e\x6c\x1e\xbf\x75\x47\x8d\x96\x61\x9f\x30\xad\x7e\xce\x4b\x28\x52\xc6\x54\x80\xc4\x36\xa7\x5b\xf7\xdb\xf4\x28\xb1\xaf\x35\x12\xa5\xcf\xb3\x71\x3f\x4c\x87\x91\x43\xec\x3d\x15\x47\x91\xe9\x01\x1c\x7f\xa4\x0f\xe0\xc6\xf3\x08\xac\x19\x3f\xd4\x0d\x19\x66\x5c\x8c\x27\x81\xd3\x93\xcb\xf3\x6d\x79\xca\xe7\xbc\xad\x29\xe3\xca\x22\x63\xee\x16\x7f\xec\x1f\x57\xdf\x57\x8b\xdb\xfd\xf5\xd3\xe3\x62\xb7\xde\xdc\xef\xd7\xf7\xfb\xed\x6a\xb9\xb9\xbf\xde\xfa\x7b\x11\x31\x81\x44\x92\xae\x40\xae\x4f\xea\x6f\x4b\x43\xf8\x73\x24\x29\x74\x6e\x62\x8f\x56\x01\xe1\xa3\xfb\x82\xd4\x5a\x66\x75\xaf\xe8\xa2\xd0\xd7\x60\x9d\x30\xb1\x86\x39\x23\x34\xdb\x86\xf5\x84\xda\x9f\x0a\x7a\x24\x64\x4f\x59\x0c\xd6\xb4\xee\xe0\x4a\x2c\xd3\xf5\xff\xe2\x3e\xcf\x62\x88\x90\x66\xdb\xab\x14\x62\xd8\x0e\x53\x91\x3a\xca\xd2\x90\x06\x4e\x36\xf6\xf7\x53\x59\x9d\x0e\x3e\xd4\x1b\x3e\x28\x41\x04\x6e\xe3\xdb\xab\xe5\x6a\xf2\x79\x41\x01\x9f\xf9\x3f\xb3\xe2\x8b\x28\x9e\x07\x29\x20\x13\x2c\x42\x5a\xe1\xc3\xd5\x27\x1b\x70\xfb\x50\x6c\x00\x9d\x29\xa8\xca\xe1\xea\xcb\x44\x94\x0a\xe8\xb9\xba\x8f\xf0\x06\x85\x2b\xa0\xf9\x2b\x93\x0c\x6c\x7e\x61\xcd\x4f\x7c\x50\xbb\x83\xc3\x71\xa8\x30\x3e\xcd\x26\x2f\xc8\x5a\xfd\xea\xbf\xe3\x2b\x97\xa9\x2d\x26\x3f\x43\x73\x2d\x1a\x31\x4a\xdd\x99\x4c\x25\x5e\x3b\xa6\x4d\x36\x8c\x7b\x38\x97\xfd\x74\x83\x15\x44\xd8\x83\xd1\x95\x30\xcd\x3d\xbc\x2f\xfb\xd8\xbd\x7d\xa7\x22\xe7\xa1\xd2\x2e\x7f\xf3\xf3\x52\x4b\x9e\x5a\x6b\x6c\x53\x56\x87\x8d\x31\x98\x50\xb4\x31\x43\xbf\x76\x4f\xd6\x7c\xa6\xc1\xca\x06\x60\xb8\xba\x1b\x43\x4b\xae\x21\x87\x67\x31\x07\x7d\x1b\x2d\x53\xf3\xdc\x10\x77\x7e\x20\x32\xe1\xae\xa8\xb5\x2b\x71\x89\x2e\xf3\x33\xa9\x52\x3f\x98\x46\x08\x26\xf6\x66\x98\x5f\xda\x04\x59\x96\xe5\xab\xbf\x0d\x26\x48\x31\x63\x5a\xde\xde\x3f\x3a\xa0\xcc\xa7\x4d\x25\xca\x0c\x89\x2d\x66\xc3\xe2\x9a\x97\x2f\x53\x41\x4a\xca\x4c\xc2\x71\x99\xb9\x5a\x2c\x57\xfb\x0e\x61\x46\x99\x71\x0f\xaf\x5d\x98\x6e\xb1\xf6\xf2\x20\x3e\x64\x27\xec\x46\x99\x11\x01\x02\x57\x96\x2f\x59\xde\x93\x4b\x4e\x23\x01\xb0\xd1\x42\xce\x03\x66\xb9\x04\x6d\xec\x45\x87\x33\x85\x07\xa1\xa5\xc4\x3b\x04\xb3\x6d\x7b\xe0\xed\xb2\xdd\x82\x25\x14\xcd\x24\x1a\xe0\x81\xa3\x10\xe6\xa2\xd0\x07\x51\xbd\xa2\xf6\x86\x3b\x46\x38\xc1\x0a\x9e\xf5\xc8\xf9\x21\x6a\x97\xb1\x9b\x53\xde\x0f\xb1\x46\xec\x9b\x23\x14\xd7\x53\x19\x74\xca\x49\x62\x25\x41\x7d\x32\xf0\xad\x50\x53\x0e\x12\xe5\x8c\x5a\x31\x8e\xac\xf6\x6d\x03\xcc\x17\x5f\xce\x05\xfb\x28\x47\x15\x5c\x27\x08\xdc\xce\x50\x05\x8f\xf0\x96\xa1\x0e\x98\x5d\xf6\x69\xe0\x46\x72\x45\x91\x90\x75\xac\x20\x53\xe5\xd3\xf6\xda\x5f\x32\x37\x3c\xf5\xc2\xd2\xf6\xdc\xbb\xb2\xe3\xf9\x4e\xbe\x2e\x0c\x84\x72\x9b\x6e\xfb\x62\x2e\xcb\x3c\x17\xfb\xc5\x62\x1f\x90\x19\x90\x1f\xe5\x21\xb5\x21\xa7\x7d\x00\x37\x00\xcb\x4e\x6d\x77\x7c\xde\x88\x58\x18\xd4\x90\x9c\x75\x4e\x31\xa6\x3c\x12\xd2\x53\x9d\xce\xac\xbb\x26\xbc\x28\xca\x23\x08\x3b\x3b\xc9\xce\xf1\xd4\x5d\xe6\xe8\x86\xc7\x34\xc0\x02\xeb\x31\xfb\xdf\xff\xc4\x30\xe4\xe3\xb1\x31\x5e\x06\xcf\xc1\x53\xce\xf4\x32\x28\x4f\x02\x82\xa5\xef\x36\x3d\x28\x8b\x36\x5d\x5c\xeb\x3b\x71\x3c\x0e\xbd\xa7\x86\xd9\x25\x4f\x82\x48\x58\x34\x51\x73\xaa\x8a\x73\xe6\x00\xe5\x89\xe6\x3e\x13\x5c\x35\x2f\xf7\x33\xdb\x0b\x4f\x89\xc1\x00\xb1\x3e\xc9\x5d\x79\xaa\xb0\x0f\x92\x15\xcf\x83\x6c\x8d\xa7\x69\x8a\x52\x04\x2e\x82\xf9\xb2\xf0\xc6\xa1\x03\x00\x07\xe5\xa9\x54\x1e\xce\xbe\x6f\x03\xcc\x7d\x79\xec\x36\x0a\x9e\xea\x24\x0a\x3b\xe6\xf6\xad\x78\xff\x80\xca\x47\x48\x5c\x12\xca\x42\x0f\xfd\x20\x96\x14\x32\xb9\x4a\xc9\xec\x46\x63\xeb\xc5\xbb\x72\xc6\xb4\x91\x72\x19\xc6\xcc\x63\x41\x7f\xb4\xfb\x71\xfb\x23\xca\x53\x33\x4d\xde\xb9\x94\x44\xf7\x4d\xc6\xd5\xee\xeb\x39\x87\x85\x72\x45\xad\x80\x8e\x5f\x3c\x3a\xeb\xe0\x4f\xc1\xc6\x94\x2b\x11\x86\x56\xb1\xae\xd0\x62\x2a\x54\xf7\x37\xf7\xaf\xb3\x53\x46\xc4\x16\x95\x4e\xc7\x5f\x40\x82\x29\xd7\x3a\xb4\xc6\xcc\x28\x40\x01\x79\xde\x53\xcc\xe6\xbe\xd5\x83\x52\x28\xd7\xa0\x95\x4b\xff\x56\xc7\xac\x2e\x35\xd8\x77\xf3\x70\x18\xb8\x20\xcc\x87\x5d\x1c\x22\xe6\x25\x04\x9d\xd1\xff\xa3\x2d\x28\x4c\xdf\x3c\x13\x49\x64\x18\x2d\x37\xf7\xbb\xd5\x76\xb7\x5f\xdf\xef\x56\x8f\xdf\x17\xb7\xfe\xd1\x18\x87\x49\x6f\x57\xb5\x87\xb2\xaa\xd5\x8b\x9f\x86\x61\x40\x2c\xf3\x52\x3c\xbb\xf9\x39\x59\x73\xc3\x20\xe2\xb8\x4c\xac\xef\xd7\xbb\x11\x6d\x9a\x86\x41\xcc\xfd\x6f\x5b\xe4\xf9\x43\x5e\x7a\xd4\x27\x0d\x83\x54\x11\xef\xbf\xb7\x97\x1f\x7b\x1f\xcb\xf9\xc3\x32\xc0\x18\xe2\x98\xa9\xf2\x58\xef\x4f\x75\x7f\x88\xc4\x56\x60\xb5\x8d\x81\x1f\x87\xb1\xcc\xec\x3d\x0a\xdb\x05\x22\xec\xaa\x55\x9f\xf2\x97\x68\x48\x21\xc1\x16\xc0\xfa\xcb\x20\x60\x0b\x59\x98\x20\xae\x50\x9d\xea\xa6\xd4\xd6\xeb\xa1\xbf\x1e\x16\x05\x58\x97\x7e\x2c\xcb\xc3\xdd\xf8\x57\xb0\x84\xaa\xc0\x2b\x6f\x0c\xb1\xb6\x34\xe4\x24\xb5\xe1\xed\xeb\x47\x21\xd4\xe0\xcb\x78\xca\x22\x67\x4e\x29\x50\xf9\x6f\x29\x8e\xeb\x62\xd5\x75\xa2\x42\xae\x28\xe2\x0b\xdc\x6a\x5b\x36\x22\x7f\xf4\x63\x27\x8f\x26\x0c\x24\xea\x09\xa0\xd0\xa3\xbb\x82\xc9\x90\x28\x0e\x11\x1f\xe2\xee\x09\x5a\xd6\x5a\xcf\x32\xff\x7d\x91\x8a\x89\x1e\xe8\x13\xdf\xa0\x0a\xd0\xc7\xcc\x02\xdf\x2e\x04\x81\xea\xb4\x76\x94\xc8\xf3\x67\x7f\x96\x38\x64\x9a\x79\x06\xfd\x17\x9b\xb7\x66\x65\xe1\x85\x1e\xba\x61\xa9\x41\x6c\xd5\x02\x2b\xa1\xfe\xaf\x09\xd7\x38\x1b\x7c\xe7\x62\xdc\x18\x0d\x93\x24\x40\xd3\x93\x5a\xbc\xc1\xb8\x6c\x1b\x26\x2a\x41\x56\xcc\x00\x9b\x3b\xbc\xd9\x89\x0e\x51\x42\x3a\xab\xd7\xaa\x7c\x3c\x15\x45\xd7\xbe\xa7\xa1\x10\x14\x4b\xc7\x9e\x97\xfd\x23\x6b\x5e\x06\x8f\x41\x28\x6a\x6d\x16\xeb\xf5\x72\xb3\xe9\x17\xdd\x50\x68\x02\x71\xaf\x4d\xbf\xc8\xf3\x9b\x76\x67\xbf\xb4\xd1\x85\x32\x61\x5e\x58\x77\x59\x4a\xb8\xa9\x32\x98\xd8\x9f\xd0\x50\x49\xad\x7b\x10\x13\x1a\x1b\x4d\x06\xe8\x24\xd0\x03\x64\xea\x1e\xd7\x21\x7f\x49\x9a\x01\x52\xbc\xf4\x75\xf9\x5e\xd8\xca\x6a\x79\x25\xea\x4c\x4d\x6e\xa4\x69\x1f\xe1\xd4\x39\xcd\x9a\x48\x94\xd5\xc7\x58\x66\xe5\xf2\x4b\x64\x62\x8a\x8a\x23\x6f\xf0\xbf\xc6\xb6\x23\x6d\x19\x76\xda\x75\x8e\x82\xd0\xaa\x8c\x3a\x85\xc3\x9d\x23\x9b\x9f\x21\xdf\xfd\xf0\x94\x11\x97\xb4\xbb\xc2\xfa\x6c\x8f\x3d\x0a\x20\xc6\x12\xe8\x73\xf6\xe6\xca\xf4\xbf\x4d\x4e\x64\xac\xd4\x3e\xea\xad\xdf\x94\xd5\xea\x54\x95\x93\x21\x54\x4a\xec\x7f\x34\x59\x63\x9b\x5b\xb6\x29\xfc\x9b\x3f\xac\xe3\x2e\xb2\x18\x57\xeb\x27\xd7\xcc\xa4\x55\xe2\x85\xe6\xc5\xc3\x51\xee\x44\x37\xff\x22\x06\x2c\x76\xd6\x47\xcd\x05\x99\xf5\x8b\x30\x71\x1a\x71\x41\xa2\xd4\xa1\xaa\xbc\xc5\xdd\xa7\xbb\x54\xc4\xc1\x6a\x54\xbd\x89\xfc\x04\x0f\x50\xdd\x65\xaa\x2a\xfb\xea\x51\x14\x46\xd2\x1a\x49\xfb\x54\x7d\xe4\x5c\x77\xf6\xa8\xa3\x30\x4d\x23\x1f\xe9\xb4\x09\xdd\x00\xa7\xe1\x27\x55\x14\x71\x92\x5a\x00\x73\xa6\x9c\xf3\xd7\x85\x9b\x15\x07\x1a\xa7\xa9\x93\x6c\x1e\x59\x07\xfb\x21\x82\xe1\x05\x1a\xab\xef\xf0\x1d\xb0\x20\x35\xa6\xb1\xd3\x28\x96\x34\x25\xbd\x9f\xcb\xc8\x56\x89\x46\xb1\x16\x48\x73\xe8\x64\x5e\xbe\x38\xe9\xb2\xf1\x57\x25\x81\x45\x7a\xdd\x94\x55\x63\xe3\xea\x3e\x05\x8f\x12\x2a\x31\x33\x45\xc2\xf1\xa6\x98\x7e\x14\xa8\xf6\x60\x81\xdb\xcd\xd3\xf5\x4d\x59\x7d\x11\xd3\x9f\x92\x26\x89\x23\x9a\x23\x88\x7d\xac\x98\x48\xa3\x34\xe5\x08\xf9\x6a\x73\xad\x1b\x91\xe5\xdb\xd2\x34\x03\x4f\x3c\x1a\xa5\x2a\xf0\x66\x30\x8b\x4e\x64\xec\xf2\xa3\x4a\x81\x63\xd7\x66\xe8\x01\x3a\x51\xea\xa1\x91\xa0\xd6\xd0\x46\xb5\x67\xb3\xc0\x57\xd0\x3d\xcb\x9e\xa2\xd2\x68\x38\xd0\xb2\xdd\x0e\x96\x99\x48\xa4\x02\xbb\x37\x3d\xa5\x73\xa0\xc4\xb1\x28\x34\x82\xa7\xfc\x58\x11\x88\xc4\x65\xc1\xab\xe6\x65\x57\x4e\x5e\x62\xc9\x18\x0a\x77\x1d\x73\xf1\xb1\x3d\x82\xca\x4c\xa6\xae\xcb\x93\xcc\x2f\x80\xf3\x69\x24\x85\x40\x8d\x96\x63\x55\x96\xa6\x87\x87\xd2\x48\x6a\x82\xbb\x47\x56\xb7\x93\x01\xcb\x8b\xd9\x34\x20\x8f\x14\x49\xa3\xc1\xa4\x68\xaf\xf6\x02\xa8\x75\x98\xcc\x47\x9a\x12\x64\x6d\x3a\x85\x48\xbb\xaf\x95\x93\xee\x77\xa4\x8d\xc6\xe0\x54\xa2\xaf\xfc\x9f\xe5\x69\x77\x92\x60\x9d\x4d\xfd\x45\x9a\x40\x61\x0e\xe5\xf0\x04\x75\x8f\xcd\xa7\x91\x49\x79\x0a\xc3\xb7\xf2\x47\x99\xbf\xee\xca\xce\xd8\xb7\xfb\xa2\x38\x08\x78\xe0\x0a\x26\xef\x5f\xa1\x2a\x6f\xcb\xa6\x81\xea\x63\xa6\x02\x1b\x07\x89\x42\xe5\x50\x91\x43\x53\x4e\xc0\x69\x34\x26\x81\x8a\x86\x3b\xae\x25\x1e\x74\x7c\x07\x1a\x93\x28\x08\x79\x87\xfe\xaf\xba\x3f\x4b\x6b\x24\x8b\xd8\xb1\x07\x91\xe9\x5d\x69\x01\x1c\xf3\x4d\xfd\x98\x48\xcb\x4c\xaf\xa1\xf9\x9a\x3d\xbf\xa0\xcc\xc2\xe4\x37\x51\x22\x91\x74\xaf\x5d\x89\x77\x68\x47\xf0\x8f\xc9\x50\x60\x58\x15\x3e\x88\xe2\x63\x6f\x57\x11\x95\x75\x8d\xa3\x98\x11\xeb\xff\x7e\xbd\x1c\x7a\x00\xb6\x7f\x17\x28\xcc\x6b\x23\xaa\xda\x89\x78\xf9\x83\x8c\x62\x7b\xe6\x4e\xfc\xc4\xaa\x06\x22\x1c\xc6\x93\x35\x66\x91\x6d\x76\xdb\x9b\xd1\x59\xd4\x31\x3a\xbc\xe1\x3c\x4d\x91\x75\x74\xc8\x8a\xab\x8e\xfe\x44\x63\xae\x48\xd4\xe9\x13\xd6\x7d\x8f\x41\x3b\x44\x4d\xfb\xff\x94\x5d\xd6\x16\x87\x5a\x63\x6d\x18\xfd\xcd\x00\x7e\x7f\xf8\x73\x72\xbb\xa2\x40\x30\xc0\xc0\xfa\x0d\x7a\x32\x00\x8d\x23\x16\x22\x26\xf3\x54\x64\xff\x6d\xd7\xfe\x91\xb8\x1b\x8d\xa3\x38\x44\xd4\x6e\xe7\x32\x32\x67\x59\xf1\x7f\xfc\xd7\xdf\xaa\x21\xc7\x31\x81\xc0\x21\xfe\x97\x50\x35\xed\x0b\x2f\x1a\xb8\x83\x06\x65\xf0\x2e\x31\x57\xa7\x27\xa1\x11\xe2\xd6\x31\x0d\x7e\xa8\xbc\xf4\xea\x39\xee\x60\xf2\x31\x46\x94\xe3\x88\xba\x5a\xf3\xd5\xc7\x52\x14\x3a\xd3\x1d\x59\x94\xc6\x89\xe2\x68\xaa\xdf\x88\xea\x19\x1a\x9b\x0b\x77\xab\x89\x1b\x93\x06\xc4\xe2\x5c\xe0\x67\x83\x0e\xb6\xb9\x25\x1a\xb8\xc3\x82\x10\xe9\x50\x5c\x57\x95\x28\xd4\xcb\xe4\xe1\x09\x2e\xe2\xa1\x0c\x64\x1b\x73\xb6\xd3\x11\xc5\xad\x3e\x6f\x3b\xc6\x22\x0d\xac\x62\x80\x2a\x07\xe1\x68\x2c\x84\x88\xbd\x9d\x15\x14\x30\x1b\x32\xc5\x42\x71\x33\x70\x0f\xf5\xfb\xa9\x0b\x59\xda\x09\x6d\x5f\x8a\x99\x6a\x47\x2c\x95\x40\x86\x0a\x1c\xa0\x7a\x86\x42\x7d\xa0\x0c\xef\xae\x7c\x7e\xee\xb6\x8d\x58\x71\x82\x20\xfc\x6e\x39\x99\xeb\x86\xc5\x2a\x0a\xb0\x27\x7c\xb5\xfe\xf6\xfb\x69\xb0\x6c\xb9\xc3\x5a\x10\xcb\x5e\xc8\xf3\xf2\x7d\xc4\x70\x9a\xcd\xdf\x63\x2d\x13\x7c\x5e\x59\x91\x35\x93\x2f\xfc\x9b\x53\xb2\x3d\x83\x71\x7d\x55\xb0\x1a\x68\xe3\x4a\xb9\x1b\x07\x9c\x61\xbb\xac\xc2\x76\xdf\x42\x3b\x89\xf7\xcf\x4f\x0e\x51\x8a\x75\xe6\x7d\x3b\x19\xb0\x81\x34\x0a\x78\xfe\xe6\x25\x82\x26\x58\x7d\x29\xe0\xdd\x6a\x92\xcf\x23\x0e\x62\x43\xac\x74\x09\xf6\x84\x16\xf7\xd7\x9b\xbb\xfd\xf5\xea\x76\xf1\xa7\x7f\x42\x86\xdb\x0a\x01\xfc\x7c\x11\xa7\xda\xaa\xa9\x5d\x8d\xda\x5a\xe3\x2f\x4e\x02\x99\x20\x97\xb0\x3e\x56\x20\x34\x3a\x6b\xce\x2e\xca\x49\xa0\x6d\x15\x6e\xfb\x2e\x8e\x6d\xee\xf5\x3f\xf7\x95\x09\x89\x6c\xb7\xd8\x2b\x66\xb7\xf7\x0c\x5b\x43\x75\x53\x95\x1f\xdd\xa8\x98\x24\xbc\x13\x47\xf1\xd4\xc1\xfa\xa6\xac\xbe\x43\xa1\xa7\xb5\xc8\x84\x24\x31\xc6\x15\xed\xbd\x3c\x3c\xa0\x66\xc9\x85\xeb\x22\x42\xf8\x0e\x4f\x57\x8d\x1c\xd2\xcd\xba\x95\x3b\x21\x4a\x47\x61\xb7\x3f\x5c\xc4\x39\x4f\x4e\x0f\xd4\xc2\xd5\xda\x5c\xca\x5a\x36\x5c\x14\xf7\xf9\x9b\xb3\x72\xbe\xad\xf0\x8f\x71\xbf\xf8\xff\x8b\x73\x4f\x09\x18\x34\xa1\x5c\x0d\x9a\xc9\x88\x24\x9c\xed\x24\x27\x34\x25\xd8\xab\x3b\x56\xd0\x41\xc1\x1c\x66\x7c\x08\xd4\x4a\x58\xc0\xd0\x57\x04\x0d\xd7\x7f\x00\xbc\x3e\x15\x48\x0d\xeb\x96\xd6\x84\x69\x81\x21\x49\x1b\x45\x36\x16\xcb\x85\xd8\x77\xd2\x0d\x80\x08\x55\x1a\x84\xfa\xef\x29\xab\x11\xd4\x57\x0f\x5d\xd9\x69\xc2\x69\x12\xd0\x41\xa1\x1a\x2a\x94\x73\x98\x5c\x32\x67\xd4\xa9\xb6\xe1\xf9\xf5\x40\xf1\x92\x26\x9c\x6b\x2c\xa9\xec\x1d\x80\xf3\xb1\x9c\xac\x2a\xc9\x70\xe6\xf0\x48\x48\x6b\x10\xd9\x74\x5a\x6d\x17\x67\xc1\x79\xbf\x32\xe1\x89\x95\xb3\xb7\xe1\xe5\xaf\x96\x06\xff\x21\x25\x03\x35\xa0\x79\x3f\x54\xe0\x74\xde\xdd\x80\x28\x0d\xb8\xdb\x12\xf6\xba\x9c\x45\xec\x0e\x97\xb7\x24\x4a\x6d\x2c\xfe\x78\xaa\x87\x1a\x2e\x34\x89\x63\x82\xfd\xcf\xbf\x44\xf1\x50\x36\xfb\xee\xcf\x89\xb4\xd6\xc6\x16\x4d\xfe\x09\x0c\x2d\x89\x55\x12\xbb\xe2\xc7\xbd\x78\xbb\x1d\x6e\x96\x49\x12\x02\x2e\x59\x18\xa7\x54\x1f\xbd\x24\xe4\xb4\x6c\x3b\x3e\x65\xa2\xa0\x37\x1c\x7f\x2c\xf3\xbc\xbe\xfa\x38\x07\xd4\x24\x69\x20\xd1\x7e\x64\x7b\xc8\x9a\x97\xd1\xaf\x4a\x99\xe5\xca\xbc\x88\xda\xcd\x69\xeb\x97\xed\x0f\x27\x29\xc2\xf0\x71\x1b\xf2\x82\x90\xa3\x27\xeb\x07\xa6\x4c\x7b\x90\xec\xe9\x63\x59\x3a\x8d\xc4\xa7\x22\x9b\xf6\xad\x12\x11\x04\x28\xa4\xac\x51\x58\x03\x6b\x8f\xe3\x01\x32\x88\xb0\xab\xb4\x5a\xd4\x75\xff\xd2\x48\xae\x34\xed\xb4\x99\xf0\x5a\xbe\x8a\x4a\x77\x56\x17\x34\x91\x51\x82\xea\xe6\x7b\x79\xfa\x78\x38\x35\xbb\x12\xc1\x77\xbf\xdc\x63\xc6\x3f\x44\xc6\x29\x85\x11\x71\xc2\xb2\x0f\xa6\x10\x8d\xe9\x44\x1e\x9f\x45\x85\x46\x3a\xa9\xda\x45\x55\xad\x8b\xe6\x26\x83\x5c\x33\x7f\xa5\x2a\xa1\xa2\x87\x21\xd8\x9f\x39\x5b\x02\x99\x3f\xbb\x0e\x52\x6d\x0b\x60\x96\x84\xde\x3b\x64\xd3\x44\xd3\x00\x41\x65\xfb\x53\x71\x14\xea\xf5\x01\x9a\x73\xc6\x09\x4d\x34\x27\x08\x64\x7d\xb3\xf8\x93\xf9\x37\xc2\xbf\xe2\x33\xf2\x29\x34\xd1\x09\xc1\xde\x85\xbf\x4f\x03\xb3\xa2\xf9\xa9\x0a\x51\x98\x52\x57\xca\xf6\x6a\x16\xeb\xe2\x5a\x7c\x4c\xc1\xf8\x09\x44\x92\xb8\xc0\xf1\xa9\xab\x15\xb9\x8e\x54\x62\x02\xab\x54\xb5\x74\xc8\x1e\x51\x35\x57\x1d\xff\x64\xfc\x8d\x86\x44\x4e\x2f\x18\x4d\x1d\x4e\x45\x6f\xea\xde\x6e\xa9\x84\xde\x95\x45\xf3\x32\x9d\x9e\x46\x09\xa2\xdd\x0f\xbb\xae\xc4\x7b\x3e\xcc\x90\x12\xa3\xc3\xd0\x1a\xd5\xb8\x12\xf7\xa7\x35\xa8\x34\x88\xac\x82\x60\x56\x23\xf6\x5a\x65\x47\x31\x51\x2a\xa4\x29\x91\x04\x35\x21\x9a\x4a\x68\xb8\x06\x91\xf7\x7a\xdb\x6e\x04\x0d\x15\x93\x4e\xfe\x34\xff\x18\xf2\x93\x68\xca\x94\x42\x76\xe0\x6e\xf3\xf4\x6b\xec\x70\xca\x40\xd2\x2e\x65\xdd\x2a\x71\x38\x20\x81\x4c\x64\x93\x72\x65\xca\x0c\x27\xe0\x4a\x16\xeb\xe2\x2d\x6b\x06\xa8\xa3\x5f\xbc\x50\xbe\x0a\x93\xf2\x40\x9a\x74\x10\xe0\xcf\x4c\x91\xf9\xbb\xc6\x23\x8a\x61\xd0\xfe\x98\x0b\x85\xeb\x39\x7e\x6a\x33\xd4\x84\x9e\xe4\x38\xfe\x93\x10\x10\xea\x2e\xdb\x02\x8c\x31\x9f\x72\x47\xc3\x28\x44\x6e\x72\x3b\x6b\x7e\x0e\x9a\x1e\x69\xa8\x03\x84\x25\xe7\xe5\x87\xc8\x9b\x8f\xde\x3b\x8d\xa6\x51\x42\xbc\x95\x6e\xbb\xb0\x7a\x6a\xc8\xfc\x85\xc7\x69\x60\x3d\x14\x41\x1c\x76\xef\xe5\x75\xf6\x56\x4f\xb7\xf6\x34\x16\x06\xdf\xfd\x55\x9e\x1d\xb2\xe2\x62\x7e\x9f\xc6\xca\xba\xbb\x2a\xd7\x1d\xf3\x7f\xd6\x31\x2a\xab\x5d\x67\x0a\xc6\x1d\x98\x34\x25\x04\x29\x2a\x8d\x78\x85\x6d\x21\x8e\xf5\x4b\x39\x9d\x6b\x29\x84\x21\xed\x6a\x5e\xb7\x99\x85\xb8\x8d\xde\xec\x34\x35\x14\x69\x5b\xed\x32\xea\x4f\x2d\x98\xc2\xf4\x62\x75\xf7\xc5\xbf\xf0\xe3\xd7\x26\x15\xb1\x35\x57\x6e\x37\xe2\xac\x99\xc8\x8b\xd3\x54\x08\xcb\x4c\x3e\x58\xeb\xab\xce\x58\xe0\x26\x33\xdd\x26\x98\x0a\x15\x92\xde\x7e\xc9\x3a\xa7\xcc\xb5\x61\x53\x29\x12\xe4\x1d\x77\x52\x46\x55\x79\x78\x7c\xef\xf0\x32\xa9\xe2\x11\xba\x22\x61\x63\xe0\x09\xf1\xd5\x7d\xb3\x23\x55\x21\x15\xf1\x20\x9e\x2b\x6b\xdf\x8d\x1e\x5f\xb3\xa6\x01\x62\x5b\xdb\xfb\xf9\x74\xfc\x51\x56\x1e\xfa\x91\x6a\x88\x87\xe0\x82\x3d\x25\xa3\x8a\x52\x0a\x11\x8d\x60\x00\xa0\x1f\x72\xa7\x26\x77\x1b\xd2\x00\x45\xab\xd4\xa9\x6a\x77\xde\xee\xbd\x06\x65\x51\xda\xcf\x5e\x68\x7d\x46\xe5\x94\xa6\x86\x10\x2c\x01\xf8\x87\x62\xf5\xbd\x86\x90\xdb\xd4\x24\x5a\xf7\xa4\x91\x2b\xb8\xec\xa8\x35\x01\x07\x89\x80\x47\xd4\x3d\x33\x1f\x8f\xdc\x9f\x7c\x51\x53\x04\x89\x6d\xd3\x20\x4d\xb7\x6e\xca\x03\x6e\x71\x53\xbe\xa5\x1f\x6c\x2c\x8c\xde\xd5\x7f\xad\x29\xe6\x30\x26\x16\x84\x24\x56\x2e\x57\x14\x8f\x28\xb5\xe9\xca\xdd\xf3\x88\x31\x41\x03\x6d\xd5\xbb\xee\x37\xf7\xeb\xbb\x3f\xfc\x59\xa8\xe4\x98\x9c\xa2\xa3\xfc\xee\x75\x5e\x3d\x8f\x0a\x96\x40\xdc\xb7\x98\x36\x47\x28\xbe\x8b\xbc\x4d\x7a\x0b\xf0\xbc\x9c\xcb\xad\x08\xc1\xd2\x08\xfb\x76\xdf\xcb\x1c\xa1\x1f\x93\xb5\x53\x70\x1a\x07\xfd\xe6\xda\x19\x00\xf9\x6b\xe4\x89\xb5\xe0\xaf\xc1\x7a\x24\x4c\x05\xd6\xfc\x30\xa5\xa8\x65\xbd\x0a\x8d\xdd\x0e\xff\x53\x46\xbf\x24\x34\x0c\xe5\x2c\xaf\x44\x3d\x94\x57\xa3\x22\x4a\x59\x1a\x7a\x97\x82\x46\xe4\x8b\xac\xba\xae\xca\xe3\x78\x8a\x8b\x38\x88\x43\xab\x48\xd9\xbc\x88\xf7\x9d\x6f\x66\x8b\x38\x50\xdc\xc6\x68\xc7\xbc\xfc\x80\x6a\x40\x13\x10\x31\x33\x58\x3d\x6b\x2c\x3a\x2b\xef\x59\xff\x54\xc4\x09\xd1\x7d\xbf\xb6\xbd\xa8\x99\xe8\x43\xc4\x09\x67\xaa\x53\xd4\xb2\x40\xae\x81\x01\x28\x15\x71\x4a\x78\xe2\xe9\x78\x1f\xc7\xa6\xfc\x0e\x55\x7d\xaa\x47\x84\x16\x11\xa7\x4c\x0f\x52\x97\xbd\x8f\xae\x44\x42\x08\x4e\x25\xec\xfa\xdd\x65\x39\xd4\x4d\x59\xc0\x79\x46\x3a\xb8\xee\x84\x53\xee\xc5\x46\x3b\xbc\xea\xf2\xc7\xe4\xba\x53\xa6\x99\x13\x4b\x5a\xe4\x0d\x6e\x20\x17\x88\x4b\x9f\x81\xe2\x84\x10\x81\x6d\xbc\x17\x6f\x50\x74\x0a\x07\x54\x48\x99\x60\xf1\xa0\x7c\x83\xaa\xca\x34\x0c\x34\x61\xa9\x50\x92\x63\x9b\x45\xf5\x75\xd2\x73\xd4\x93\xd0\x31\x4d\x9c\x32\x8f\x31\x7b\xea\x3f\x0c\x81\x35\x02\x54\xa2\xb0\x4d\xa9\x9b\xaa\x44\x99\x27\x5d\xbe\x2f\xf4\x5f\x27\x0b\x0f\xb5\x16\xdc\xfe\x23\x22\x40\xc5\x1b\xf8\x79\xc4\x4e\x0c\xe8\xdf\x9c\x7a\xe1\xe8\x96\x98\x20\xc2\x3a\x15\xb6\x2e\x3e\xea\x06\x0e\x03\x20\xc8\xc4\x0e\xd3\x7f\x24\x56\x58\x7d\x69\x5e\xaa\xf2\xbd\xfe\xf1\x02\xc5\x17\xab\x52\xdc\xd3\xab\x57\x56\x03\xab\xab\xa9\x09\x23\x54\xa4\xfb\xf5\xe3\x4f\xd2\x1d\x50\x0c\x4b\x42\x8f\x9b\xdb\xd5\xfe\x0e\xa1\x1e\xee\x90\x0c\x18\xa1\x1e\x07\xf2\xb8\xbe\x7a\x42\x48\xf0\x76\xb7\x78\xdc\x75\x23\x54\x68\xbb\x28\xe5\xfb\x6f\x33\x2f\x97\x0c\x74\x6c\x17\xc0\x32\x9f\x67\xcf\x53\x19\x18\xc0\x09\xef\xc4\x02\xad\x29\x85\xdf\x36\x25\x89\x2c\x61\x7f\x79\xff\xe7\xdf\xf3\xed\xa0\x92\xa4\x49\xdc\xa7\xed\x87\xac\x50\x62\xf2\xd2\x4a\x22\x03\x84\xbd\x3f\x0a\xf5\x02\xf9\x30\x9d\x93\x44\xba\xb2\x2d\xb6\x97\x45\x9e\x4b\xa1\x50\xe0\xec\xb3\xc6\x8e\xa4\xa1\xc0\xe5\xd0\xad\xc8\xa3\xa5\x5b\x32\x4a\x13\x97\x61\xaf\x2b\xf0\x9b\xa8\x64\xa9\xb4\xe2\x02\xe8\x30\xf6\x20\x9a\x51\x3d\xee\xd3\xa4\x5d\xf2\x88\xa5\x41\xf7\x1b\xaf\xe1\x6d\xb6\x9c\x22\xb9\x8c\xbc\x3f\xf6\x5e\x42\xd3\x94\xd5\xbe\x93\xbd\x6d\x8f\x4a\xe4\xd6\x57\x5d\xbd\x42\x72\xad\x51\x16\xe6\xf8\x82\xeb\xc1\x7e\x80\x30\x93\x51\xc4\x89\x35\xbb\xc1\x9c\xf1\x6b\xf6\xfc\xd2\x1d\x02\xe9\xc5\xb8\x1e\x10\x2f\x39\xd3\x8c\x95\xb1\xd4\x34\xee\x0c\xb6\x70\x51\xdf\x4f\xae\x37\x96\x06\x2b\x04\x3e\x45\xee\xfd\x1e\xa8\x8c\x75\xe8\x29\x8c\x0e\xdd\xf9\x45\xd4\xf9\xa0\xc5\x29\x93\x88\x61\x1a\xb0\x90\x42\x3e\xf4\x39\x6e\x77\x38\x8e\x31\x80\xf2\xb6\xdd\x1b\xd3\x45\x96\x77\x59\xfe\x3a\xb9\x94\x94\x05\xfe\xa1\x3d\x42\x7d\x04\x54\x45\xb0\x4b\xf1\x64\x60\xd4\xc9\x78\x5f\x1d\xcf\x63\x20\x99\x1a\xc0\x05\xe5\x0f\x28\xba\xce\xa9\x14\xdc\x12\xc5\xbe\x54\x99\x76\x42\xd8\x33\x30\xf4\xf9\x4a\xb5\x14\x71\xec\x25\x8c\xbe\x43\xd3\x5b\xfe\xf7\xab\xb1\x94\x0c\x22\xe1\x1d\xef\xde\xa0\x5a\x1f\x06\xda\x24\xa3\x99\x2b\x4d\x84\x0e\xee\x2b\x7f\x69\x8a\xd1\xb0\x8b\x4a\xba\xc6\x93\x54\x4a\x5a\x88\x95\x38\xd5\xf0\x08\x1a\x0e\xc7\x41\x2b\x58\x2a\x13\x20\x6a\x7f\xbd\xdc\xec\x1f\xbe\x2e\xb6\x2b\x3a\x02\x1e\x4a\xcd\x12\x2c\xb3\xb4\x5b\x95\x57\x06\x9e\xdc\x28\xcd\x8c\xd5\x76\x16\x59\x61\xeb\x7e\x8d\xc8\xad\x02\x8d\xb5\xe5\x6c\xd7\x10\x3f\xd6\xd8\xde\x9c\x4d\x2d\x11\x9a\xda\x40\x25\x26\x9d\x36\x09\xa1\x55\x09\x6f\xa3\x4c\xc4\x62\xeb\xf2\x1a\x56\xb5\x3a\x41\x3e\x25\x8e\xcc\x2f\x4e\x10\xc5\xd8\xb8\xff\x93\xec\xf3\xbe\xa5\x31\x0a\x0f\x25\xa8\x10\x01\x24\xe8\x81\x6f\x17\xb1\x36\xff\xcc\xb3\x73\xc5\xd7\x4b\x10\xc2\xe9\xb7\xaa\x10\x7b\x24\xe7\x62\xc7\xf3\xe5\x0c\x69\xa8\x44\x1b\x02\x67\x8e\x6b\x2d\x8a\x97\x03\x56\xdd\xf8\x56\xab\x20\x08\xd3\xa0\x03\xa4\x38\x5d\xbc\x0e\x37\xeb\x9f\xb9\x0a\x02\xc1\x86\x49\x02\x5a\x36\xf4\x07\x0d\x86\x20\x99\x53\x19\xaa\x47\x59\xb5\x22\x29\xc3\x1c\xe8\x28\xd4\x2b\x1a\xd5\x8d\x1f\x8d\xa2\x52\xc9\xbe\x24\xfc\x08\x2a\x3b\x66\x53\xf7\x1e\xaa\x18\xb1\xbc\x88\x7f\x6d\xd6\xf7\xc3\x97\x59\xf1\x80\x71\xee\x5f\x4f\x03\x55\xd5\x26\xfd\x7a\xfa\x25\x5c\x58\x05\xf4\x3b\x6c\xa2\x8e\xd1\x24\x6e\x48\xc8\x62\xb0\xe5\xbb\xc6\x19\xa9\x0f\xd6\x3c\x15\x3a\x88\xb7\xe7\x9e\x26\xfe\xef\x71\x84\xb2\xa5\xa7\xa2\x9d\x16\x6e\xf1\xb5\x9e\x32\xbb\xcd\x7c\xc0\xad\x22\x19\xa5\xb1\xd7\x30\xfb\x22\x0a\x31\xbe\x61\x91\x34\x5e\x7e\xcd\xee\x22\xf5\x20\xf1\x56\x71\x20\x8c\x33\x9d\xd9\x3f\xdd\xef\x6f\x37\xcb\x6f\xfb\xdd\xfa\xce\x6b\xfe\x50\x15\x27\xb1\x03\xdf\x5a\xf8\xd4\xbe\x02\x75\xaa\x54\xf6\x06\x53\xae\x8c\x4a\x38\xc1\x12\x86\x3c\x7d\xbc\xc2\xd9\xc1\xd8\xca\x2c\xfc\x55\x66\xc5\x43\x55\xbe\x65\x7a\x5a\x15\x52\x49\x22\x30\x62\xf6\xf6\x6a\x32\x87\xd1\xb3\x49\x40\x22\xc8\xfc\x7a\x7b\x23\xf2\x1a\x46\x9b\xa8\x1b\x92\x0a\x42\xc4\x00\x25\x58\xd3\xcf\xdb\x5f\x2a\x15\xa9\x77\x6c\x6b\x6c\xcd\xea\x7a\x30\x17\x53\x61\x9b\x63\xa2\x5d\xa5\x45\x03\xd8\x14\x3a\x0d\x9c\x28\xa8\x12\x4c\xe0\xef\xda\x66\xc5\x73\xde\xc9\x83\x5f\x52\x9f\x19\x2e\x91\x4a\x86\x06\xa3\x4d\xe7\x0e\x3d\xcf\x89\x19\x06\x22\x93\x07\x2f\x53\xcb\x0a\x7b\x46\x13\x12\x1b\x33\x22\xd4\xa5\x7a\x5d\x15\x7a\x38\xdd\xa4\x16\x58\x65\xae\x4f\x52\x36\x1f\xea\x50\x16\x30\xaf\x11\x4e\x95\x04\x89\xa1\xae\xad\xd1\x5c\x65\xcd\x10\x3c\xad\x14\xb5\xc2\x31\xba\x12\x59\xd1\xe1\x3d\xc7\x13\x4e\x13\x83\xc6\xa9\xab\xdd\xd7\xfd\xf5\x6a\xb9\xbe\x5b\xdc\x76\xb3\x49\x53\x89\xcc\x08\x51\xab\x2c\xdb\x95\x7d\x11\x91\xf8\x01\xed\x7e\x8c\xe9\x8d\x68\x5e\x30\x83\x17\x24\xf4\x9f\x36\x44\x73\x97\xdc\x6f\x9b\x0e\x1a\xaa\x8c\xe6\xf8\x32\xef\x6d\xd2\x78\x07\x7a\xd2\x16\xf3\x6f\x97\x01\x89\x91\xfa\xad\x28\xc4\xf2\x45\x54\x39\x40\x31\x1b\xfd\x0d\xe3\x3e\x1d\xa4\x0a\x63\x17\xd5\xed\x06\xa3\x75\x5a\x07\xa9\x41\x39\x4e\xe7\x29\x62\x49\x5d\x3e\x75\x9c\x04\x2b\x3a\xd0\x04\xab\x94\xdd\xa7\x49\x64\x01\x51\xcf\xe2\x00\xeb\x7a\xf3\x36\x7d\x2b\x34\x11\x12\x25\x31\x97\x9b\xfb\xef\xab\xc7\xdd\xea\x71\x6f\xff\xb5\x6d\x83\xe6\x1f\x5f\xd7\xbb\xd5\xed\x7a\xeb\xf7\x43\x4d\x43\x8a\x8f\x2f\x1b\xa6\x28\x9a\x46\xb1\xf7\x83\x5d\x35\x2f\x4f\xb5\xee\xb9\x2b\x93\x6f\xa3\x89\x55\xaf\xdf\x76\x7a\xac\x54\x53\x43\x30\x74\x95\x1e\xe9\xe3\xee\xa7\x66\x8c\x62\x0f\xa2\x5d\x3c\x96\x8f\x8b\xdd\x6a\xbb\xdf\x6d\xf6\xdb\xd5\xad\x47\x74\x6b\x26\x01\xa5\xe3\x00\xed\xb9\x46\x75\x05\xcd\x29\x47\xce\x80\x94\x6e\xa3\x98\x1c\xe6\x91\x15\xfd\xc7\x9d\xd1\x22\x02\xea\xee\xa0\x4e\x51\x86\xe0\x6d\xbc\xd9\x4e\x3a\x60\x73\xe5\x71\x1d\x92\x14\xdb\xfb\x8b\xdd\xf6\x8f\x4f\x98\x6f\x3a\x4c\x12\x24\x58\xac\xef\xd7\xbb\xf5\xe2\x76\xbf\xdc\xac\xef\xb7\xfb\x9b\xcd\xe3\xfe\xfb\xfa\xe1\xe1\x76\xb1\x5c\xdd\xad\xee\xbb\xfb\x1e\xa6\x02\xe9\xdd\x3b\xf1\x0a\xce\xee\xc1\x1f\x8a\x02\x8e\xb9\xe9\x32\xab\x10\x37\x95\x15\xcf\x43\x29\x76\xaa\xa3\x88\x11\xd7\x92\xf8\x13\xc4\xf4\xf9\x47\x49\x84\xab\x04\xba\xb4\xf5\xd2\xbe\xe3\x31\xa9\x60\x4e\xc0\xe4\xbe\xd4\x50\xef\x4a\xcc\x40\xe7\x56\x0d\x1d\xcb\x08\x93\xaf\xbf\x4e\xba\x27\x7e\xfe\x9b\xb0\xff\x9c\x57\x9b\xce\xff\x35\x0d\x67\xfe\xcd\xfb\x41\x24\xf8\xcf\xe0\xcf\xfe\xdb\x4c\x9c\xc4\x23\xf2\x4b\xcf\xb9\x99\x5d\x91\x75\xa2\x12\x65\xbc\x78\xf5\xfa\x70\x2c\x2b\xb4\x58\x9a\x5d\xad\x74\x9a\x40\xea\x99\xfe\xed\x64\x9e\x6f\xce\x7c\x9e\xf4\xe8\x34\x8d\xb4\xb7\xf8\x2e\x8f\xa7\x1c\xdd\xb6\xae\x3e\x36\xc6\xd4\x30\x7d\x3f\xd2\x34\x46\x9a\xcf\xef\x27\x61\x45\x4d\xac\xf3\x96\x7f\x94\x29\x30\x99\x38\x79\x55\x05\xc7\xf6\x59\x3f\x88\x8f\x03\x72\xc4\xdc\x10\x41\x53\xec\x96\xa1\xb5\xc2\xd4\x76\x63\x2e\x09\xd4\x22\xb1\x7a\xc8\x0e\x90\xba\x6d\xe0\x88\x35\x99\x45\xde\x7d\xaf\x50\x34\x4c\x46\xe6\xc5\xeb\x06\x0e\x03\x65\x2e\x3f\x0e\x54\xe8\x16\x82\x5b\x51\x37\x57\xa7\x33\x82\xbe\x96\xc6\x22\xb4\xc4\xb1\x5d\xd0\xd0\x9e\xba\xbb\xca\x4f\xb1\x06\x5a\x19\x16\x3a\x54\x6c\xd5\xbc\x78\x2f\xa1\x47\x6b\xfc\xd5\xcb\x2a\x69\x4d\x28\x52\xe0\x2c\x03\xa7\x9d\xa9\x8f\xf0\xdf\x0b\xb3\x41\xb3\x04\x4b\x72\xa2\xaa\xc4\x87\xb0\xda\x36\xe3\x11\x26\x22\x98\x68\xbc\x8f\xe4\x61\x6e\xa6\x90\x0c\x6d\x22\x40\x34\xae\x29\xab\xe6\x54\xc0\x1e\x53\x3c\x59\x81\xe8\x56\x49\x93\x5a\xc2\x94\xbd\xae\xeb\x6a\xa8\x7e\x3e\xb7\x31\x18\xc3\x31\x0b\x6e\x83\x90\x9e\xd1\x04\x81\x14\x28\xcb\xfe\x5c\xe6\xfa\xaa\x3c\x75\x6a\xb2\x14\x08\x01\xca\x5d\x13\xc2\xee\x21\xb7\x60\xfa\xa3\x51\x8c\xe1\x4f\xad\x5e\x40\x9f\x72\xc0\x1d\xb8\x67\x0e\x02\x49\x74\xea\x5e\x8c\x3f\xd5\x61\x2a\x10\x33\xfa\xb1\x40\x84\x44\xb5\xfe\x0c\xd5\x0c\xc1\x77\x90\xa1\xde\x4e\x2b\xf6\xc0\x98\x75\x9a\x02\x14\x34\xf5\x22\x3b\x83\xd2\x21\xf0\x20\xb4\x7e\x74\x2e\x5c\x7f\xb0\xe0\xd0\xc9\x79\x38\x51\x08\x03\x47\x12\x7d\x86\xac\xff\x31\x0b\x02\x38\xa5\x91\x70\xa8\x34\x9f\x89\xdf\x00\x2c\xe4\xe4\x91\x02\xa7\xcc\xf2\xe2\x9f\xcf\x22\x77\xe0\x32\xc6\xd5\xb4\x03\x32\xcc\xc8\x7c\xb7\xa3\x12\xab\xc7\xe4\xd8\x0f\x56\x4b\xed\x7f\xa0\xdd\xdb\x38\xfd\x42\xa5\x71\x2b\xca\x94\xa5\x38\xd7\x4f\x45\xdd\x67\x85\x10\xa6\x89\xed\x03\x42\xdd\xec\xdb\xd9\xbd\x76\xc6\x28\xff\x5d\x77\x61\x00\x24\x9c\x61\x62\x8f\x70\x7e\x7b\x16\x5c\xb2\x2f\x83\xa1\x21\xd1\x09\x92\x6c\xae\x45\x96\x7f\x58\x9f\xe5\xb9\x5c\x02\x52\x07\xdc\xed\x4d\xe6\xe7\xf7\x2c\x10\x22\xc2\xe2\xb0\xbf\x37\xb7\xe5\x1b\xba\x79\x7f\x8c\xf5\xa0\x2e\xa5\xa5\x20\xb4\xc0\x3d\x37\x6f\xd7\x06\xe4\x44\x09\x12\x7d\x15\xf5\xcb\xde\x8d\xf3\x3f\x56\xb2\x50\x3a\xb7\xc8\xad\x70\x90\xb1\x29\x25\x0b\xa4\x49\x22\x2b\xa7\xfd\x66\x1d\xad\x60\x27\xea\x57\xd7\xda\x5a\x34\xe7\x12\xa9\x14\x54\x04\x88\x9b\xb2\xaf\xa0\x6d\xbf\xcf\x04\xc4\x83\x0f\x98\xd0\x23\x37\x5c\xf5\x66\x07\xde\x30\xa4\x3d\x1a\xd9\x7c\xb4\x12\x45\x83\x9e\x6b\x4f\x45\x1b\xc5\xe0\x4c\x1f\xdf\xc8\xc1\x7c\xd7\x49\x82\x95\x95\xa5\xca\xcc\x30\x01\x01\x08\x98\x95\x5c\xb6\xdf\xf4\xd4\xd3\xc1\x00\x00\xa2\x5e\xa2\x65\x51\xe8\xab\xd3\xc7\x22\xcf\xc7\xad\xa1\x8b\xb5\xe8\xd9\xcd\x0d\xc0\x40\x2a\x7d\xb1\x05\xdd\xc4\xf3\xb3\xb7\xce\x68\x1a\x5b\x9a\xcf\xa9\x68\x36\xe6\xfa\x22\x2b\xca\x04\x01\xc5\x17\xe7\x80\xea\xe6\x13\xae\x82\x09\x02\x8d\x4d\xad\x1d\x6a\xa6\xac\x7e\x1e\xa1\x6a\x86\xbf\xdd\x10\x63\xf5\x40\xdd\xc4\xd9\x37\xe5\x1e\xff\xf9\xdb\x19\x2a\xcb\xb0\x90\x60\x77\xb9\x3c\x42\xd1\x66\x21\xfe\x26\x19\x1e\x11\x70\x1c\x2e\x54\xe8\xdf\x98\xb9\x0b\xe5\x49\x32\xd8\x1e\x6c\x89\x06\xba\x5b\x39\xba\x45\x86\x6b\x6a\xf9\x6b\x47\x51\xbc\x8e\xae\x37\xa4\x1a\x21\xe0\xd7\xeb\xe5\xaa\xfb\x1b\x8b\x91\x77\xf2\xe5\x76\x71\xd7\xfd\x4d\x01\xb6\x1c\x2f\x88\x5e\x8e\x83\x47\x13\xb5\x2f\x49\xa7\x42\x9e\x35\x18\x8b\xa1\x50\xed\x8c\xe1\x2b\x35\x91\x88\x79\xd7\xd4\xc7\xcb\x5b\x8a\xe3\xae\xb4\x82\x03\xfe\x0a\x62\x29\x70\xad\xbe\x5b\xdd\x6e\xee\x1f\x36\x8f\xbb\xfd\x72\x73\xf7\xb0\xb8\xff\x73\xe8\xaf\x48\x4d\xa2\x01\x39\xf8\x77\x7f\x8c\x7e\x67\x4a\x23\x08\x9d\x45\xea\x5d\xf9\x06\x57\x55\xd9\x1d\x8a\x08\x71\x8d\x26\xc4\x38\x88\xce\x2b\x63\x4e\x0c\xc5\x08\xc2\x31\x35\xb9\x12\xc5\xab\xd7\xd1\x77\x87\x24\x17\x28\xda\xd3\x40\x65\x3b\xe3\x0f\x42\xbd\x0e\x9c\xfa\xfd\xb0\xd8\xda\x6a\xb7\xaf\xd8\xc3\x40\x4d\xc0\x1d\xd6\x44\x51\x6b\x95\xd3\xec\x11\x8f\x38\x0d\x4f\x8c\x26\xc6\xbb\xf0\x3f\x88\x0f\xe8\x68\x74\x33\xf2\x24\x06\x02\xdb\x50\x79\x28\x5f\xa1\x72\x62\xe6\xfe\x10\x0f\xd0\x09\x4c\xb6\xcf\xf3\xaa\x9f\xa5\xdd\x63\x04\x08\x89\x7f\x8c\xcb\x8d\xed\xae\x8c\xaf\xd5\x04\x1a\x79\xdf\x7e\x25\xed\xcd\x50\xa9\x31\x2c\xf6\x95\xcc\xbb\xf6\x67\x7c\x2d\x0f\x4e\xf2\xaf\x9e\x9e\x85\x4b\x14\x24\x41\xc0\xb1\x67\x41\xf8\x63\xb1\xed\x29\x15\xf0\x7e\x73\x6a\x4e\x15\xf8\xe3\x73\x81\x10\x0b\x02\xe6\x5a\xde\xf8\x3e\x88\x1c\xea\xc5\xe4\x06\xb3\x20\xe0\x80\x0c\x51\x84\x1a\x3b\xcb\x39\x79\x01\x3a\xcb\x02\x42\x35\xd6\x20\x6f\x4b\x31\x4c\xeb\x58\x40\x40\x32\x2f\xb5\xdf\xc0\x61\x73\x1c\x69\xec\x0f\x42\x20\x16\xb0\x88\xb1\x4e\xb3\xaa\x12\x0d\xf8\xce\x16\x0b\x38\x4d\xfd\xab\x72\xb3\x79\xba\xbf\x5e\x3d\x6e\xf7\x0f\x9b\xcd\xed\x7e\x71\x7d\x3d\xf6\xcb\x66\x01\x8f\x04\x19\x6a\xe2\xa2\xbe\x82\xdf\xaa\xfd\x18\x6d\x69\x59\x28\x5f\x93\x59\xd1\x8e\xac\x2c\xa6\xd2\x07\x2c\x08\x09\xc7\x28\xeb\xdb\xfa\x69\x3b\x78\x55\x58\x10\xca\x00\xa7\xe7\x8f\xb2\xca\xf5\x56\x18\x68\x3e\xb6\xa0\x4e\x6d\xb4\x3f\x1a\x17\x05\x29\x06\x5a\x5f\x7e\x8e\x01\xb3\xfe\x30\xb5\xea\x6f\xb6\xbf\xe2\xdb\xff\xbb\xd2\xca\xaa\xae\x7e\x1e\x3b\x4c\x08\x0b\xa2\x88\x61\xaf\xee\x61\xb5\x7b\xdc\xfc\xb2\xc7\xc4\x82\x98\x46\x0e\x66\xfc\x56\xbe\x82\xd7\xf9\xd8\xe2\xf7\x4c\xf1\x9d\x17\x98\x08\xe3\x8b\x8d\x95\x40\x3a\xc3\x4b\x79\xaa\xe1\x1b\xc0\xf1\xb7\xd9\xb9\x90\x04\x4a\xdb\xef\x45\x60\x4f\x5f\x6e\xbe\x18\x63\xb2\x20\x21\x4e\x19\xa3\x2a\xdf\xb1\x25\x38\x2c\x03\xb1\x20\x61\x21\x16\x79\x8f\xe2\x23\xeb\x6e\x6d\x22\xac\x14\x00\x2e\x88\xfb\x6a\xe0\xdc\xca\x82\x94\x44\x92\x0e\xd6\x56\xc0\xc2\xeb\xe8\xf6\x88\x40\x3b\x8a\x0c\xa8\x57\x57\x8e\xfe\xfd\x54\x36\x62\x36\x3d\x64\x81\x48\x02\xc9\xc7\x7a\xba\xff\x03\xbd\x6d\x57\x17\xbb\x7e\xf9\x71\xa9\x4e\xa9\x07\x7a\x8d\xc0\x4c\xff\xee\xf3\xe2\x7f\x87\xff\xf9\xc7\xa8\x17\xf9\x49\x99\x81\x05\x02\x12\xe9\x48\xd7\xed\xbd\xb9\xc9\xc5\x73\x1f\x53\xb3\x40\xc6\x02\xcd\x08\x1c\xd5\x61\x73\xc9\x29\x85\x05\x52\x4a\xe8\xf5\x2f\xae\x00\x34\x52\x0d\x27\xdc\x5b\x16\xa8\xc0\x9a\x5e\x3e\xf7\xbe\x0d\x22\x5f\x15\x4d\xf5\x71\x53\x56\x8e\xfd\x34\x7e\x80\x8a\x10\x5c\x26\x55\x27\x8e\x39\x7f\x05\x8a\x06\x41\x7b\xad\x6f\x99\x6a\xb2\x83\xbf\x67\x2a\x8c\x31\x28\xb6\x9c\xac\xed\xf0\xe3\x7f\x27\xed\x66\x81\x92\x09\x1b\x56\x96\xdb\x70\x6a\x96\x3a\xf8\xf9\xbf\xba\xb3\x99\x24\x1d\xb8\xc5\x2f\xb4\x3e\xc7\xe8\xfa\xb1\x3a\xa2\x0e\x04\xb4\x56\x9d\x79\x6a\x9f\x24\x0d\x28\x49\x2c\xd0\xa1\xb5\x4b\xa8\xe0\x0d\x44\xbe\x05\x35\xa8\x6d\x4f\x9e\xb9\x96\x44\x48\x4f\x23\xfb\x4b\xa8\xd7\x73\x69\x09\x16\x68\x2d\x13\xff\xe5\x1a\xc4\xe4\x99\x00\x21\x71\xb7\xcc\xd7\x8f\x20\x74\xfb\xf8\x1c\xc6\x7c\x72\x26\xa0\x56\xb6\x76\xbf\xdd\x2d\x8b\x71\x40\xc7\x02\xd0\x5d\xbb\x6d\x2b\xde\x40\x7f\x17\x95\x3f\x64\x42\x23\xa1\x33\x80\xf0\x15\xa5\x65\xfb\x4e\xd5\xa7\xc3\x6f\xe3\xdf\x64\x40\x53\xb4\xc3\x2f\x5e\xab\xb2\x28\x87\xfc\x53\x46\x02\x12\x80\x63\x8d\x21\xcb\x69\xbc\xff\x31\x12\xc4\x96\x12\xff\x70\xbd\x18\x7f\x4e\x0a\xac\xe4\xef\xd6\x7f\x5c\x82\x51\x9f\x3f\x62\x42\x52\x86\x10\x42\x2b\x79\x72\x87\x45\x6c\x77\x88\x72\xc6\x2d\x42\xfd\xe3\xd8\x94\xaa\x3c\x1c\x45\x05\x4f\xb5\x43\x1a\x3e\x55\xf9\xf8\x57\x11\x1a\x73\xcb\xf1\x75\x4c\x76\x7b\xef\xb6\x0a\x0a\x98\xd4\x90\xba\x6f\xa7\xb1\x55\x7a\xba\xb2\x9b\x0a\x36\x51\x46\xcf\x8e\xb0\x20\x64\x3d\x4c\xde\x16\x60\x26\x23\x12\x23\xac\x9d\xaa\x6f\x81\xa0\xa7\x56\x6f\xdf\x3e\xf1\x19\xea\xae\x97\xa5\x04\x15\xfa\x0e\xb6\x08\x08\xdb\x97\xb2\x71\x4a\xb2\xc7\x4e\x3a\x78\xf6\x35\x23\x4c\x2b\xce\x7c\x7b\xc8\x15\x47\xaa\xf2\xb0\xaa\x54\x14\xc7\xb3\x79\x24\x23\x5c\x02\xb6\xa1\xb0\x86\x3c\xbb\xbe\x91\x88\x71\x54\x77\x7b\xf8\xb2\xbb\x1a\x3d\xdb\x28\xa6\x81\x2f\x72\xd8\xaf\x1b\xc9\xd3\x32\x12\x25\x09\x12\x24\x6c\x7c\x7f\x25\x6a\x78\x7a\x5c\x8f\xd6\x79\x12\x29\x86\xe2\x05\x3e\xfa\xba\x3a\xf5\x7d\xf4\x99\x89\x11\x73\x8a\xaa\x0e\x28\x4a\x8b\xe8\xf6\x51\xe5\x81\x91\x58\x49\xeb\xe6\xfe\xb4\xdb\xdc\xdc\xec\x1f\x1e\x57\xe8\x5f\xbe\xb9\x5f\x75\x23\x74\xa4\x59\x07\xd7\x77\x1c\xf9\xc9\xa4\x49\x98\x46\x6c\xe1\xd1\x06\x26\x13\x0e\xdb\xe4\xb6\xa7\x54\xe1\x4e\x37\x5e\x8f\x2e\xad\x8c\x6e\xce\x8d\xbf\x2f\x4d\x18\x4a\x3f\x2c\xcb\xa2\x80\x59\x43\x48\x3f\xd0\x70\x2b\x37\x8f\x4a\xab\x50\xdd\x97\xd5\xc1\xd7\x24\x19\x11\x5c\x85\xd2\x82\x05\x87\xad\x5b\xd4\xbc\xa3\xdd\xa0\x90\x86\x4e\xc0\xc9\xee\x7f\x7f\xb3\xb3\x3c\xb9\x12\xc9\x18\x16\x0f\xfb\xc9\x36\x47\x55\x63\x44\x05\x01\xb7\xb0\xa7\xaa\x2a\x9b\xda\xd7\xb6\x7d\x08\xcf\x88\x8a\x6c\x8d\xd0\x61\x0d\x67\xb0\xa6\x8c\xa8\x44\x8a\x2e\xf7\xdd\x1f\xad\x64\x60\xf7\xcc\x95\x0e\x94\xa3\x97\x5c\xfd\x7e\x3b\x59\x98\xb4\xb0\x10\x15\xd1\x71\xcf\x67\xd2\x4b\x46\xb4\xb1\x6d\x7a\x5f\xbf\xb0\x0f\x13\xf4\xee\xa5\x2a\x0b\xcb\x6b\xed\x13\x5f\x46\x80\x73\x6c\x17\x5e\x9d\x3e\x6e\x45\xd1\x26\xe2\xab\xe6\x65\x72\x4a\x88\x6d\x08\x73\x65\x91\x55\xdf\x3a\xf4\x2b\x23\x46\x6a\x44\x2c\xed\x2a\x28\x9e\x9f\x45\x0e\xae\x32\xc9\x28\x51\x12\x93\xef\xed\x97\x5d\xf7\x27\xad\xf0\xd2\xda\x58\xdf\x23\x23\x27\xef\x05\x25\x10\xe1\xc6\xed\xda\xf7\x8d\xc2\x42\x93\xa5\xef\x8f\xae\x8a\xb2\x90\x63\xdb\xc7\x95\x64\xcb\x91\x7f\xa0\x1f\x13\x27\xb6\x8f\xb1\xb9\xdf\x3d\x2e\x96\xbb\xfd\xd7\xcd\xed\xf5\xea\x71\x7f\xb5\xb9\x7f\xda\xfa\xcb\x62\x20\x70\xce\x8a\x77\x51\xe9\x36\x4e\xb7\xce\x19\x96\x03\x3b\xfb\xa6\x50\xae\x8d\x57\xc6\x1d\x30\xe0\x2c\x20\x42\xeb\x49\xd0\x42\x43\x26\x70\x69\xb2\x61\xc7\x2b\xe2\x34\xfb\x7b\x48\xc3\xd8\x02\x01\x71\x37\x6b\x03\x9f\xbc\x14\xcd\x54\x44\xab\xff\xee\x98\x4a\x31\x74\xac\xdf\x7d\x1c\x61\xf2\x85\x71\x98\x60\x60\x61\x69\x0d\x3b\x61\x4b\x56\xa4\x3b\x43\x92\x12\xe8\x8d\xcf\x90\x88\xe5\x0e\x25\xcc\x1a\xfe\xd7\xd0\x2c\xe1\xdc\x10\xd2\x8f\x92\x46\xb9\x8d\xfa\xfe\x74\xb8\x83\xba\x16\xcf\xe7\x90\x48\x3f\xd8\x08\x4b\x1d\x13\xc7\xac\x11\xb9\x93\x4e\x68\xef\xd6\xe4\xaa\xd3\x20\xf2\x92\x18\xff\x14\xea\xf5\x58\xfa\xe5\x97\xa6\x0e\x7e\x6a\x53\x8c\x95\xce\x9a\xc5\x33\x14\x5d\x78\x2c\x86\xeb\x8c\xff\x88\xa1\xa8\xa7\x77\x2c\xeb\x26\x53\xa5\x55\x75\xe9\x39\xc9\x8c\x8a\x00\x20\xf6\xa8\xea\xf2\x7d\x07\x3f\x1b\x4c\xbb\xd3\xa8\x1b\x11\x4b\xea\xf4\xcd\x16\xc7\xe3\x85\x5f\x27\xb4\x46\x00\x7e\x01\xef\xf7\x03\xfb\xbc\x8b\xa9\xce\x68\xb9\xa4\x02\x58\xe4\xec\xf3\xa0\xba\x3f\x1d\xae\x41\xe4\x93\x0d\x98\x4a\x10\xd8\xea\xb1\xf3\xfc\x21\x17\x05\x34\x4f\x8f\xb7\x17\xd1\x71\xa3\x17\x40\x91\x20\xe9\x64\xf7\xf5\x57\x6f\x2f\x90\xf8\xc3\x2c\x42\xf1\x9b\xed\x51\x28\xef\x84\xea\x03\x14\xaa\xd2\x00\xa3\x65\xeb\x3a\x8c\x6d\xc4\xdd\xca\x57\xa1\x18\x55\x3a\xb6\x79\xb4\x0b\xfb\x2c\xe5\x6f\x57\xf6\x5a\x15\x8c\x6a\x19\x63\x9b\xfb\x58\x95\x26\x6b\x70\x13\xbf\xca\x1a\x2b\xc8\x78\x0d\x32\x6b\x7a\x5d\x4a\x46\x35\x18\xeb\xe3\xfd\x5c\x2d\x7d\xdb\xa8\x4f\x78\x28\x10\x15\x47\x23\x24\xd0\xaa\xbd\x99\x37\x65\xb5\xda\x7d\xed\x77\x5a\x3f\x9a\xda\x2e\xdb\x7e\x94\x9f\xc3\xe9\x30\x59\x45\x0c\x0f\x51\x48\xf0\x53\xb7\x9c\x4b\x1b\xca\x05\xcc\xbb\x3f\x75\x6a\xc3\xfb\xf6\x35\x6b\x57\xdf\x77\x57\x82\xef\xa0\x24\x7e\x9c\xd0\xa4\xab\xb8\xa1\x0e\x1c\xe8\x9b\xb2\xda\x9c\x1a\x55\x1e\x60\xf4\xbc\x8c\xb6\x69\x7e\x53\x7e\xb5\xee\x51\xd7\x50\x94\x58\xde\x9a\x02\x9b\x18\x35\xa0\x78\x30\x90\xa0\xfb\x15\x53\x86\xb1\xc0\xa4\xb1\xe9\x50\x89\xd7\xb8\x8d\x09\x6b\x8e\x70\x5e\xf8\x66\x8c\x90\x88\xd1\xc1\x42\x64\x5d\x31\x26\x63\x22\xa5\x8d\xe3\x69\x35\x67\xfe\x91\x8c\x11\x61\x7d\x41\x9f\xa1\xd9\x5b\xe9\xed\xf1\x71\x1a\xd8\x39\x01\x3f\x8f\xed\x8e\x91\x55\xed\x0c\x7b\x04\xa1\x5e\xac\x9a\xc4\x64\x74\x98\x60\xb4\x2d\xb4\xbe\xa9\x00\x10\xda\x68\x1d\x14\xd7\xc5\x5b\x99\xa9\x5f\x30\xac\x18\x63\x24\xc1\xa4\x1a\x65\x9c\xce\xa3\x37\x3f\x4a\x10\xbc\xe8\xf5\x6e\xb5\x74\x0a\x9f\x8c\x31\x65\xb0\xe1\xd1\x06\x74\xa7\x22\x6b\x3e\x6c\x75\x75\x88\xbb\x60\x8c\x69\x6b\x49\x7a\xb7\xf6\x78\x03\xc6\x38\xb5\xac\xae\x2f\x65\x99\x8b\xf9\xc7\x34\x5a\x10\x18\x4f\x0c\x56\x55\xcb\x37\xd0\x18\xb4\x58\x63\x78\x61\xc5\xc7\x5c\x5c\x02\x17\xaf\x9e\x0b\x89\xef\xe4\xba\x30\x65\xdd\x5d\x84\xd0\x81\x2b\x73\x7f\x87\xca\xea\x68\x4e\xc2\xfa\x59\x19\x52\xc6\xc2\x84\x61\x6f\x7e\x44\x1a\x39\xb7\x0a\x65\x2c\xd4\x0a\x41\x21\xe8\xb0\x32\xc4\x4d\x30\x16\x91\x20\x76\xc2\xaa\x26\xab\x0e\x88\x69\x42\x86\xcc\xf8\x0c\x89\xb2\xa2\x6c\x87\xb2\xd8\x95\xbb\x4a\x64\xde\x0c\xd2\x29\x4c\x32\x96\x86\x1a\xb1\x3a\x3b\x91\xbf\xd6\xd6\x02\xc3\x1f\x49\x53\xc4\xe1\x7c\xd9\x5d\x2f\xb7\x8d\x28\xb4\xa8\xf4\xdf\x43\x51\x33\x96\xaa\x00\x4b\xaf\xf8\xf6\xae\x97\x9b\xae\xb7\xec\x8f\x43\xca\x3b\xdd\xdb\xbd\xc1\xb2\xc9\xe8\x1e\x09\x11\x45\xd6\xe8\xec\x01\x2a\x17\xee\x0f\x89\x88\x8c\x49\xc1\x49\x17\xcb\xaf\x9a\x97\x75\xf1\x03\x32\x7f\x7e\x69\xe2\xc8\x2a\x0c\x34\x50\xe8\x7d\x9e\x19\xd8\x97\x66\xaf\x86\x2a\xb1\xfd\x5d\x52\x71\x9a\x78\x21\x8d\x11\xac\x83\x31\xad\x6c\xf9\xab\xb6\x5c\x48\x1a\x46\xbf\x7d\x56\xee\xe0\x01\x05\x12\x7b\x9b\xae\x36\x3a\xba\x6b\xe3\x89\x79\x97\x18\xc6\x83\x38\x42\x5c\xde\x15\x34\x9b\xe2\x6e\xf8\x06\xb9\x01\x84\x32\xa2\x3a\x3e\x1d\x2e\x89\xf3\x01\x06\x27\x34\x89\x07\xe6\xfb\x5a\x34\xe2\xa9\xca\x1f\xd0\xf2\x65\x14\xe1\x71\x22\x04\x66\xd1\x59\x97\x8f\x8e\xe8\x51\x93\x0b\x90\x0a\xc1\x3f\xba\x42\x0a\xc7\xf8\x3b\x69\x90\x22\x10\xbe\x12\x85\x0f\x62\x39\x25\x11\x2a\x1d\x40\x9e\x3d\x67\x32\x87\xa5\x33\xe2\x58\x17\xaa\x82\xc3\x0c\x46\xdd\x7f\x8e\x41\xaa\x46\x10\x92\x39\x5b\x29\xc6\x59\xc8\x31\x08\x31\xe8\x2a\xb1\x3d\x76\xf3\x95\xb3\x58\x22\xb7\xee\x26\x93\xed\x72\xdc\xd7\x0d\x38\x4b\x53\x0b\x32\x82\xba\xd9\xab\x76\x8e\xd3\x3d\xdd\x67\x85\x95\x05\xc7\x16\x68\x7d\xf5\x11\xfa\xe1\x5c\x04\x72\x2a\x73\xdb\xed\xf4\xe3\xab\xe1\x32\xd0\x5e\x39\x0a\xaa\x65\x79\x38\xe6\xd0\xa0\x86\xc9\x3c\x45\x91\x71\xae\x42\xaf\x3c\xd3\x66\x16\x3d\xf9\x76\x32\x35\xa2\x50\x23\xc6\x7b\x55\x55\x8e\x32\xef\x65\x3c\x19\x8f\x92\x54\xa4\xc3\x6d\xa4\x82\x33\x21\x28\xc6\xa3\x34\x09\x9c\x87\xd1\x43\xf9\x0e\xd5\xde\xff\xbe\x38\x30\xd8\x7e\x45\xf9\x7c\xb7\xf6\x4d\x80\x24\x9f\xf6\x2c\x19\x8f\x13\x8a\xc4\x0c\x34\x90\x2d\x34\x54\xf4\xc2\xaf\x48\xa2\x50\x07\x1e\x92\xef\x6c\x83\x1c\xa1\x77\xfe\xcc\x89\x4c\x90\x4e\xab\x3a\x83\xaf\xdd\x80\x63\xb8\xbf\xfa\x1b\xfa\xa8\x8c\x27\x4a\x18\xaf\x69\x7f\x75\xfa\xd8\x39\xfc\x9f\x5f\xba\x79\xa2\xc0\xc4\x5d\xb1\xef\xc2\x84\x4c\x8c\xe9\x84\xf4\xb7\xd7\x8f\xb6\x88\x3d\x1e\x92\x4a\x81\x30\xe2\x45\x56\x3d\x96\xc7\x61\x7d\x84\x8b\x80\xa6\x7e\x77\x28\x1b\x58\x34\xbb\x9f\xde\x6b\x63\xb6\x84\xdf\xce\x39\xec\x5a\x2e\xfe\xf8\x63\x7c\x22\x11\x50\x97\xdd\x55\x59\xd3\x4d\x69\x29\x2d\xd3\xf5\x4e\x64\xc5\xd5\xe0\xf5\x93\xca\x7e\x2f\xfc\x14\xed\x5c\xbc\x39\x15\xea\x3c\xd0\xe1\x2a\x8c\xb0\x6a\xdf\xae\x12\x1b\x73\xe1\x06\xe8\x44\x60\x20\xb1\x2b\x5f\x47\x57\xa4\x25\x47\x14\xd2\x55\xe6\xf3\x31\x0e\x01\x43\x20\x46\x53\x5e\x21\x21\x6d\xb8\x94\x73\x48\x6c\xc4\x2c\xb4\xde\x14\x5f\xa7\xa6\x75\x8c\x83\x08\x91\x71\xf3\xbe\xb7\x08\x41\x7f\x52\x93\x52\xcc\xda\xfe\x05\x32\x5b\x96\x19\x62\x67\xef\x9e\x2f\x4a\x5a\xd8\x4f\x85\x01\x63\xce\x21\xb3\x4d\x9b\xde\x61\x9e\x38\xc4\x42\xc2\x28\x46\x6e\x4f\xdb\xeb\xfd\xc3\xea\x71\xbf\xda\x7d\xf5\xd4\x25\x16\x12\x1e\xe1\xb4\x75\x50\x53\x5c\x98\xe7\x85\x01\x26\x27\x4d\xb5\xd3\x53\xc5\x54\x7d\x99\x83\x38\xf3\x56\x64\x21\x11\x09\xa6\x27\x56\x86\xd6\x1a\xfe\xcf\x70\x7a\x59\xd8\xc6\xb9\xd4\xe9\x64\x0d\x97\xf0\x90\x87\x02\x01\x97\x59\x6d\x83\xa5\x81\x8b\x29\x0b\xc3\x54\xa2\x82\x46\xbb\xe9\xf5\x24\x6b\x16\x86\x3a\x42\x43\xbe\x3b\xd1\x6e\xe3\xdd\x5f\x41\x52\xa7\xcc\xfc\x96\xe5\xd0\x25\x0f\x61\x14\x58\x96\x53\x7d\x92\x6e\xf1\xc3\xc0\xd6\x75\xc0\xc7\xbf\x28\x92\x04\x53\xc7\xab\x1f\xcb\xaf\xbf\x82\xda\xb2\x30\x82\x24\x36\xbd\xbd\xa0\xc5\xcf\xb8\x63\x09\xe1\x22\xea\xe3\x1a\xbb\x87\xd6\x7d\xab\xa3\x1b\x97\x08\xc2\x3d\xbd\xf2\x78\xa9\xbc\xdc\x37\xbe\x59\x98\xa4\xb6\x93\xac\xe6\x01\x9a\x2c\x14\x02\xb8\x8d\x34\xef\xd7\x77\x4f\x77\xfb\xab\x95\x2f\xc3\x84\x92\x44\xd4\xf1\x05\xf6\xd6\x8a\xef\x39\x2f\xa5\xc8\xf7\xe2\xa4\x33\xd4\x35\x39\x0d\x9a\x98\xa1\xa4\x92\x38\x88\xfc\x55\xf9\x93\x76\x7f\x8e\xad\x31\xb1\x3c\x7d\x0c\x80\x6b\x17\xa6\x92\x94\x71\x14\x7b\xd3\x12\xf4\x70\x9c\xa6\x56\x83\xdf\xa6\x88\x41\xf2\xb7\x3b\xa5\x4d\x3d\xc6\xef\x85\x12\x0a\xc1\xa3\x88\x0b\x29\x7a\x90\xc0\x2f\x85\x3c\x59\xa8\x69\x8a\x9b\xdc\xd5\xc3\x70\x1d\x08\x75\xc4\xfd\x63\xb4\x65\x9a\x9b\xb2\xda\x82\xaa\xd0\x05\x71\x32\x41\xb4\x91\xb1\xbd\xc0\xbf\x4e\x75\xa7\x6f\xc2\x42\x20\xa1\x65\x74\x5a\xdf\x97\x1b\xdc\xd4\x27\x42\x82\x7e\x68\x1a\x2b\xd7\x38\x6c\x7a\x08\x3e\xa6\x5a\x77\xa0\x33\x31\xa7\x2c\x33\xfe\x1d\x20\x59\xe8\x4a\x50\xbb\xf2\x2a\x17\xea\x75\x2c\x0a\xdf\x0d\x93\x18\x5a\x23\x59\x62\x7b\xbd\xbf\x79\xba\xbf\x5e\xdf\x7f\xe9\x2e\x19\x34\xda\xb6\x2f\x45\x65\x61\x5c\x93\xf5\x2c\x34\x9c\x61\x87\x33\x3b\x8a\xaa\xf9\x6d\xb8\x71\x87\x86\x5b\x1a\x7f\x1b\xce\xf9\xc6\xf7\xfc\x3d\x37\x32\x45\x57\x84\xbb\x8f\x99\x1c\x30\xf2\x5e\xdd\x1d\x3c\x6e\x29\x2e\x54\xa8\xa3\x20\x22\x08\xea\xc0\xb4\xc7\x01\x28\x46\x37\x36\x0a\x12\x6d\x30\x62\x13\x55\xfe\xe1\x7c\x0a\x26\x7a\xea\x2c\x0a\x24\x61\x49\x67\x24\xd1\x6e\xa6\x7d\x31\x6a\x9a\x2f\x45\x94\x72\x69\xd5\x07\x35\xd6\x10\x70\x79\x1a\x38\xf2\xb3\x88\x3a\x0e\xb3\x53\xb9\x42\x14\xed\x75\xa6\x06\x0e\xe6\x2c\xa2\x9c\x60\xf6\xf3\x82\x0a\xd8\xb7\x99\x82\x42\xc1\x4a\x54\xbd\x6e\x32\x8b\x68\x6c\x30\x8f\xb0\xaf\xe3\x9d\xf8\xd9\x1d\x48\x09\x2a\xd1\xdd\x9c\xd4\xeb\xb7\x93\x28\x6e\xb3\xee\x08\x84\xe8\xed\xde\x91\x1f\xad\xc5\xd5\x76\x75\xbf\x1d\xe4\xef\xb3\xcd\xf0\x88\x91\x50\x47\x1d\x49\x1e\x26\x8c\x31\x16\x31\x6a\x05\x9b\xac\x9b\xf1\xfd\x55\x57\x89\xef\x66\x7c\xd4\x86\x5f\x38\x3b\x6a\x04\x14\xf5\x76\x03\xb3\x39\xa3\xff\x50\x9b\xa4\xb4\xa9\x58\xf6\x3f\xa8\x6c\xa8\xe6\x8f\x08\xc2\x89\xb7\xa4\x46\x31\xc1\x61\x5b\x33\x62\xca\xa6\xf7\x26\x2f\xcb\x6a\xc0\x4f\x67\x11\x73\x6f\x24\x5e\x6a\x9b\xfa\xef\xa6\x9a\x90\x7e\x24\x0f\x02\xfc\xf2\xaf\xd7\xcb\xee\x4f\x4c\x60\xb3\xc1\x88\xff\xfd\xef\xa3\xd7\xb8\x66\x51\x98\xc6\xa8\x0b\x78\xb8\x2d\x85\x5e\x14\xfa\x11\x9b\x78\xc3\xa7\x1a\x25\x01\x37\x9d\x25\x73\x59\xfd\x73\xa0\x3f\x34\xbf\xfe\x44\x91\xd1\x61\x27\xfc\x2b\xf2\x93\x2b\xb0\x3c\x82\x2a\x2b\x0d\xd5\xfa\x7a\x28\xbb\xe8\x13\xdb\x28\x26\x81\x74\xcb\x53\xe7\x3a\xeb\x01\x4f\xe3\xa7\x16\x8b\x04\x4b\x8a\xcd\x7e\x51\xe8\xaa\x4b\x1b\xa2\xd8\x24\xc8\x21\xd8\x3e\x0c\x25\x3c\x59\x94\x30\xc3\xf4\x80\x7c\x86\xb4\x06\x5b\x51\x98\x67\xa2\xb1\x28\x31\x3c\x41\xfd\x3d\x09\xed\xda\xb6\x7b\x11\x17\xba\x3c\x51\x62\x62\xd4\x26\x93\xa7\x0a\xf5\xa9\x2f\x4b\xfa\xb0\x28\xe5\x06\xf7\x88\xf2\x78\x2c\x8b\x7e\xff\x89\xa4\xab\x51\xee\x84\x7a\xf9\x38\x03\xf5\xcc\xe4\xeb\x91\x8c\x02\xa6\xc7\xec\xf6\x51\xc8\x1c\x49\x69\xb0\x35\x69\xb5\x56\xcb\xba\x59\xab\xa1\x64\xe8\x5a\xf7\x23\x8d\xe5\x77\x35\x2f\x40\x68\x20\x46\x2d\xba\x48\x1a\x85\xb7\x7a\x53\x29\x6b\xf0\xe7\xfe\xae\x52\x89\x4d\xb7\xf5\x72\xa3\x41\xe8\x3c\x2b\xba\x89\xaa\x8c\xc4\xf7\xd5\x2f\x75\x6b\xb7\x81\x7d\x2e\xa3\xe1\x3e\xac\xa9\x0c\xdc\x92\xef\xcc\xa6\x16\xcd\x5a\xcf\xde\x10\xf7\x09\x48\x53\x6c\x6c\x2e\x9e\x06\xb1\x53\x04\x2a\xc5\x3e\xbb\x30\x0d\x54\x2b\xa1\x5e\xfc\x01\x13\xc5\x88\x7f\xb2\x32\x09\xdb\xa6\xac\xfa\xfa\x6b\x64\x1c\xd5\x0d\x25\xf9\x8b\xa1\x7b\xe0\xec\x06\x15\x19\xad\xb1\x67\xfa\xfd\xe9\x76\xb9\xb8\xdf\x3f\x3c\x6e\xee\xda\xb0\xf4\x69\xbb\x5f\xfd\x81\xcd\x98\xf5\xe6\x7e\x7f\xb5\xd8\xfa\x7e\x66\x1c\xa4\xd6\x5e\xc7\x89\x9f\xdd\x89\x62\xe8\xc9\x3a\xed\x14\xc5\x81\x08\x70\x51\xdc\x6d\xbf\xfb\x57\x39\x26\x8a\x21\xa0\x5b\xf4\x18\x81\x47\xf8\x0b\xd4\x8c\xb6\x92\xff\x84\x06\x14\x57\x39\x21\x7a\xfa\xfb\xd3\xc3\x60\xd9\xf4\x67\xa5\x81\xd5\x39\x7a\xce\xde\x60\xf1\x2e\x3e\xce\xb2\xe1\xf1\x2f\x8f\x59\xc4\x91\xfe\x62\x77\x54\x67\x93\x96\x55\x30\x51\x1b\xf2\xa3\x85\x8e\x1c\x79\x34\x6b\xc0\x06\x0d\xdd\x7a\x15\x33\x99\xc8\x6e\xc7\xeb\xd0\x1e\x97\x36\xab\x98\x01\xc5\xfe\xcd\x32\xab\x54\x0e\x63\x0b\xd9\xb3\xd6\x67\xcc\x4c\xc7\xd7\xf6\x41\xe9\x5c\xd7\x32\xe6\xc4\x2a\xe3\x66\x0d\x9a\xe6\x8d\xc2\xf7\x98\x53\x8d\x96\xff\x07\xf1\x8a\x82\x30\xa7\x33\xc5\x86\xf3\xff\x9d\x9c\x5e\x71\x24\xdc\x94\x6f\x50\xd5\x2f\x65\xd7\xf7\x89\x39\x28\x44\xfb\xbc\x7b\x5b\x9e\xbb\x6e\x3a\xc6\x21\x0d\x3c\xad\xdb\xe7\x46\xe3\x9b\x32\x90\x13\x64\x71\x44\x15\x36\xec\xf6\x15\xd8\xf9\xdb\x9d\x27\x8a\x44\x18\x7b\x1c\xd5\x45\x0e\xe4\xa5\x26\xf8\xf0\x2b\x92\x84\x5a\xb1\xec\xa5\x2f\x01\x9f\x8b\xbe\xb2\x38\x0e\x99\x2d\x99\x54\xa2\x0d\x3e\x1a\x91\x2f\x87\x92\x4e\x2c\x8e\x13\xa0\xda\x43\xa8\x0f\xc7\x06\xf6\xd1\xf8\x86\x27\x8e\xe1\xd9\xe6\xf2\xeb\x69\xff\x37\x4e\x4c\x80\x5e\xd5\x5b\x25\x0e\xdb\x36\xe8\x19\xae\xf6\x71\x1a\xc4\x18\xe6\xca\xb2\x7c\xbd\x16\x1f\xdf\xb3\xa9\x93\x6c\x3b\xc4\x78\x3a\xf1\x37\x98\xc4\xad\x71\x4a\x68\x64\x89\x83\x95\x29\x2b\x44\x81\x74\xa7\x8e\x18\x16\x0b\xdd\x92\xd6\xbe\x40\x22\xdf\x95\xa7\x2a\xab\x0f\x36\xa4\xfe\x7b\x9e\xc4\x2c\x4e\x13\x83\x15\xf1\xab\xd3\xa9\x3a\x88\xa2\x1e\xff\x02\x9d\xb2\x68\x28\xe9\xdd\xeb\x2b\x9c\x19\xc6\xb8\x8f\x88\x58\x28\xc4\x1b\x23\xb5\x40\x3c\x77\x8c\x91\xee\xa4\x22\xb5\x2a\xbb\x3f\xae\xd6\xbf\xcc\xf8\x62\xa1\x25\x38\xff\x8a\x02\x91\xfb\xe3\x5b\x24\x49\x8a\xce\x97\xd6\x70\xab\xfc\x10\xf9\xe8\xfa\x65\xac\x2c\x3f\xdd\xd5\x84\x3c\x25\xf8\xef\xec\x00\xb1\x0a\x6c\x3b\xc5\xe5\xb7\xfa\x19\xf4\x18\x36\x12\xab\x40\xa3\x9b\x8e\x10\xa2\xfb\x53\x0a\xcc\xc6\xf8\x85\xc6\x26\xff\x76\x2a\x20\xcc\x62\xa5\x01\x27\xef\x8b\xa8\x1f\xc4\x34\x52\x8c\xb5\x8a\x71\x01\x5c\x1c\x8f\xd6\xc6\xd7\xfd\x1d\x02\x2b\xd3\x75\x98\x61\xd9\xfb\x21\x69\x90\xca\x5e\x6b\xa5\x7e\x70\xcd\x81\xeb\x19\x19\x11\xff\x11\x29\x35\x9d\x44\xe7\x36\x20\xb1\xd0\x7b\x3f\xcc\x24\x4e\x90\xcf\x79\x65\x58\xea\x7b\xfd\x80\xbd\xc6\xc9\x2f\x30\x14\x58\x87\x28\xba\x1b\xa9\xde\xb1\xd8\x44\x10\xc7\x1e\xc5\x69\xca\xf1\xdb\x66\x34\xc3\xdc\xa5\x2f\x30\xa3\x12\xd0\xcd\xa9\xd0\x88\x05\xbd\x98\xa7\x8d\x17\xb9\x24\x88\x88\x7f\xad\x1e\xda\xc5\xa1\xac\x3e\xf0\x4d\x99\x7a\xc8\xb1\x24\x48\x98\x27\xbc\x39\x5d\xc3\x49\x8c\x30\x19\x2e\x13\x88\x07\x76\x07\x0b\xad\xb3\xe2\xd9\x2a\x69\xf8\x9f\x98\x10\x16\x63\xc8\xb6\x13\x75\xf9\x22\xba\xbf\xa6\xa9\x08\x3b\xbf\x41\xd8\x98\x5b\x51\x37\x63\x0c\x73\x42\xb4\xf0\xea\x63\x2b\x64\x9c\x9f\x39\x81\xb1\x84\x80\xc5\xcd\xda\xdb\xea\xb8\xf0\x97\xaa\xa2\x09\x71\x0a\x29\xab\xa7\xc5\x57\x74\x3d\xf2\x5f\x45\xc1\x44\xb6\x7a\xf3\xa6\x47\x0d\xa2\x84\x05\x0a\xb5\x70\xeb\x32\x7f\x3a\x5e\x97\xef\x05\x7a\x3e\xa3\x2e\x88\x8b\x96\xc7\x37\x9b\x69\x6b\x01\xb1\xcd\x8a\x67\x47\x8e\xdc\x41\xdd\x10\xee\x4f\xc8\x63\x8d\x22\xfc\xbb\xc7\xdb\x76\x46\x9f\xbf\x11\x09\x37\x0c\x41\x12\xd3\x53\xa4\xfe\x14\x21\xe7\xc8\x2b\x37\x42\x35\xbd\xa2\x15\x4b\xc2\x94\x60\x18\x23\xb0\x98\xb5\x97\x83\x6a\x56\x12\xc5\x06\x59\x62\x55\x99\x83\x15\xd0\x75\x07\x12\x19\x5a\x89\x5e\x74\x81\xda\x2f\x6e\x6f\x37\xcb\xc5\x6e\x75\x6d\xc9\xc9\x8f\xdf\x3b\xb4\x4a\x22\x78\x84\x7d\xc6\x76\xe4\xee\xeb\x0c\x2e\x2c\x11\xc0\x11\x45\xd4\xf5\x9d\xaf\xb3\xba\x7c\x2f\xee\xcb\x8e\xc1\xd6\x33\x03\x58\x22\x43\x83\x31\x40\x59\x65\xcf\xfd\xf5\xc8\x88\xa3\x48\x64\x9b\x3a\xef\xca\x3b\xe8\x1f\x85\x54\x3a\xf2\xec\x25\x0b\xb9\x5e\x23\x7b\xce\x64\x97\x1a\x43\x89\xe2\x2c\x88\x07\x2c\xc1\xa5\xc8\x5d\x59\x95\x0f\x5c\x1f\x49\xf4\x8f\xd9\x45\xfc\x73\x48\x6e\xa2\x03\x8e\xef\xd5\xf6\x90\x8d\xb4\x17\x58\xa2\xa9\x41\x3c\x96\x25\x72\x5f\x43\x0e\x73\x78\xb4\xe9\xe9\x52\xdb\xd4\x46\xf9\x04\x78\xed\xf2\xa7\x44\x0b\xea\xb6\x65\x55\xb6\xa9\x20\xc2\x1d\x7a\xc1\x02\x96\x68\x69\xb5\x5e\xd7\xcb\xcd\x7e\xd7\xc3\xc2\x12\x88\x0c\x3e\x8e\x3b\xd4\x1d\xb0\xb6\x1f\x9f\xff\x24\xc3\x94\xea\x45\xf6\x2e\x32\xb1\x7e\xf5\xdf\x99\xbd\x2b\x31\x3c\x88\x45\xd7\xe2\x6f\x53\xb2\x0e\xbf\xf4\x8b\x65\xc6\x44\x16\xbc\xd5\x66\xa0\xbd\x11\x4a\x37\xb3\x4d\x1c\x44\xfd\x35\xef\xca\x63\xa6\xe6\x8b\xcc\x76\x7c\x1a\x70\x21\x6c\xbb\x3c\x2b\x9c\x21\x87\x3f\x92\x5a\xca\x83\xf3\x13\xe1\xf3\x93\x2a\xa5\x01\x24\xa6\xd3\x5c\xb9\x14\x10\xa3\x35\x25\xb6\x16\xdc\xcf\xbd\x3a\xc3\x24\xa7\x34\x51\xc8\xb2\x6d\x5e\xb2\x4a\x0f\x8b\xcf\x29\x85\x10\x5f\x57\xa8\x66\xf8\xce\x6e\x0c\x0b\x02\x1a\xf4\xf5\xdf\x65\xd9\x26\x12\xb6\xb8\x5c\x75\x4c\x58\x96\x32\x15\x78\xb7\xb0\x1b\xf1\xff\xe3\xec\xcd\xb6\x1b\xc7\xad\xfd\xe1\xd7\xe9\x8b\x5c\x90\x98\x48\x5e\xca\xb2\x5c\xa5\xd3\x9e\x22\xc9\x5d\x7d\x92\x95\xa5\x85\x61\xc3\xe6\x31\x45\x2a\x24\x65\x97\xfb\xe9\xbf\xc5\x0d\x80\x93\x64\x57\xff\xbf\x9b\x54\xda\x84\x24\x0e\x20\xb0\x87\xdf\xa0\xea\x5c\x7f\x72\x59\x2c\x02\xdc\xbf\xd7\xf7\xbb\xb1\x71\x38\xcd\x38\x49\xd5\x98\xdd\x13\x40\x9a\xcb\xaa\x2a\x4c\xd5\x87\x32\x99\x20\x4c\xaa\xfe\x09\x6f\x5b\xf9\x3a\xbf\x5e\x21\x13\xeb\xcf\xf8\x9f\xa7\x5c\xbf\x5e\x9d\x3e\x1e\x65\xfb\x32\x96\x90\xa6\x59\x42\x32\x84\x78\xe5\x65\xd3\x76\x4b\x71\x3d\x72\x5e\x0e\x43\xa4\xc5\x04\xef\xb1\x90\x1f\x79\xf9\xec\x92\xc6\xfe\xa0\x75\xa2\xc4\xef\x00\xaf\x0f\x25\x0c\xea\x55\x34\x4b\x23\x12\x00\x6c\xdd\x5e\x72\xe3\xb3\xf3\xf5\xac\xf4\x98\xa5\x22\xce\xa8\xd3\x2c\x44\x9c\x31\x8e\xba\xd8\x47\xcd\x52\x88\xb0\x2e\x68\xba\xbd\x69\xfa\x25\xa0\x95\x27\x06\xdd\xc9\x9f\x8f\xb2\xd6\x50\xcc\x3a\xbf\x59\x46\xb9\x56\x41\xe0\xb3\x7b\xa5\xd7\xe5\x5d\x5e\x9e\x7a\xfd\x4c\x9a\x65\x49\x84\x64\xdb\x85\x31\x5d\x70\x9f\xb7\x2d\x40\xb7\x05\xa1\x75\xd3\x27\x4f\x32\x4b\x45\x68\x9a\x05\xb0\xf6\xb8\x9a\x95\x65\x46\x5b\x47\x06\xcb\x4b\x34\x5b\xf2\x76\xe1\x97\xdf\xbf\x2c\x33\x26\x71\x08\xf8\xfa\x0d\xea\x55\x69\x50\x63\x29\x88\x2b\x8d\x6a\x46\xe7\x0b\xe8\x14\x9d\x34\xe7\xd1\xce\xfc\xd2\xe7\xa8\x8f\x49\xe9\x3b\x93\x2c\xc1\xfa\x85\xe7\x9b\x77\x4b\x6b\x8e\x5c\x2b\xdc\x01\xc7\x4b\x4d\x26\x13\xa7\x77\x61\xe0\x50\xcd\x8e\xa4\xc6\x39\x55\xe2\x8c\x79\x84\x23\x38\x1e\xd2\x64\xbe\xab\x84\xca\xe0\x80\xd8\xbe\x14\xd0\xce\xa7\xb1\x4a\x52\xac\x96\x7a\x3a\x8a\xd3\x50\x3e\xeb\x0e\x66\xca\x6a\xac\x2e\xef\x76\x8b\x50\x26\xc8\x74\x24\xb1\xb3\x15\x64\x2c\xc3\x9f\x09\x0d\x73\xe5\xb1\xae\x5a\x87\x5f\xbe\xa9\xea\xbb\x8f\xa7\xf2\xe8\xfe\x00\xc6\x9d\xf4\x27\xc8\xf5\x4c\x1b\x27\x13\x75\xfd\xfc\xf3\x1a\x0e\xa7\xba\x96\xcf\xb0\x81\x63\x55\xb7\x5f\xc8\xd7\x4f\xe7\x8d\xa1\x52\x07\x97\xe3\x3e\x93\x0c\xa7\x68\xd2\x04\xa9\x0d\xfb\x63\xd5\xb4\x7f\x04\x88\xef\xdf\xd1\x3a\xa0\x99\x81\x34\xca\x42\xb1\x72\xd0\x43\xa4\x19\x44\x31\x62\x28\x2a\x7c\x92\x9f\xba\x37\x4d\xbf\x0d\x18\xc5\xb2\xc5\x3b\xe4\x8f\x9e\x9b\xeb\xaa\x67\xb3\x57\x13\x24\x73\x04\xcb\xea\xe0\x49\xf3\xbe\x38\x95\x59\x45\xb1\xa6\xf9\xf0\x2e\xcb\x21\x20\x41\x41\x77\xd7\xcf\x7e\x45\x55\xcc\xa5\x6c\x5e\xb6\xd2\x0e\xc7\x33\xca\x7d\xfa\xeb\xaa\xf0\xe3\xb9\x25\xbb\x40\x91\x0c\x54\x15\x24\x91\xce\xa1\x1e\x32\x32\x3a\x4a\x1d\x94\xb0\x0b\x85\x16\xd6\xe6\x45\x3e\xac\x50\x92\xd8\x34\xf5\xaf\x6e\x5b\x1d\x67\x72\xd6\xdd\x61\x89\x97\xbe\x0a\x50\x9e\xc9\x6b\xe7\x07\xd1\x98\xe3\xdd\xbe\x5d\x4d\x5a\xe0\x92\x12\x8b\x19\xb4\xa3\xe2\x5d\xa8\x10\x48\x9a\xa4\x58\x76\x96\xc6\x7c\xaf\x4c\x81\x5a\x63\xaf\x9f\x20\x91\x25\x8b\x5c\xfb\x15\xbd\x68\x7b\x77\x63\xf4\x40\x57\x9e\xb1\xd0\x65\x47\xd8\x20\xba\xbd\xe8\x1a\x1c\x0a\x6a\x92\x71\x81\xe5\xf5\x2d\x04\xd3\x97\xef\xb2\x34\x73\xfe\x36\x95\x9c\x64\xc1\xa5\x7c\xe7\xe1\x4a\x50\x3f\x56\x55\x31\x7e\xba\x92\x67\xdc\x3a\xcc\xee\x51\x7e\x20\x5f\xf3\xf2\x05\x70\x99\x19\x17\x91\xe0\xfd\xa8\x4f\x4d\x0b\xfd\x83\x10\x99\x74\xde\x2a\x37\x55\x0d\x5a\x36\xdd\x3a\x39\x95\xd8\xa2\x32\xa5\x8e\xcf\x39\x5e\x5c\x65\x16\x8b\xd4\x19\x8f\x4e\x1a\x05\x32\x8b\xad\xf7\xc6\x6f\x3d\x83\x65\x64\xe5\x36\xdc\x9a\x33\x07\xa6\xfe\x26\x65\xdc\xc1\x4d\x9a\xd3\xb1\xbb\xe8\x77\xa8\x6f\x4e\xc5\x75\x2d\x9f\xab\x72\x9c\x9d\xca\x4c\x10\xeb\xf7\xfb\xa7\xd2\x40\xfd\x5c\x4b\x73\x0a\x32\x09\x9f\x59\x15\xfe\xba\x74\xe6\x83\x64\xc1\x26\xed\x01\x99\x65\x31\x6e\xa9\x01\x84\x77\x2d\xf3\xd9\x94\x97\x34\xc2\x16\xf3\x95\xac\xeb\x8f\xa7\x36\x2f\xf2\xf6\x63\x54\x13\x96\x92\x6b\xe7\xfe\xb2\xde\xdd\x3f\xec\xa6\x0d\x4f\x29\x95\x54\x9e\x97\x50\x54\xfa\x75\xb6\x07\xcf\x1e\xa8\xd4\x06\xb1\x5b\x88\xf3\xbb\x95\x0a\x42\x9b\x5b\x2a\xcd\x83\xf8\xd7\xf6\xa4\xfa\xad\xc3\xdd\xb7\xe9\x2f\x6a\x2a\x7c\x87\x2e\x88\xc3\x5c\xec\x61\x49\x4d\x33\x54\x8c\x2d\x70\x6e\x38\x33\xc2\x70\x88\x47\xcc\x21\x3b\x30\x80\xf9\x39\x99\x34\x3a\xd1\x58\xb4\x5c\xfd\xb1\x5b\x7e\xd1\x94\x90\xc6\x7a\xc6\xf6\xe9\x70\x5c\x94\xe6\xfa\xd4\x37\x11\x25\xd8\xd4\xc9\x3e\xe3\x72\x5a\x15\x6f\x7d\x09\x4f\xda\x88\x20\x8c\x54\x7b\x08\xd5\xec\xa4\x2d\xa5\x88\xe2\xd5\xb2\x36\xd7\xb5\x7c\x9f\xcc\x50\x9b\x02\xd2\x5a\x0f\xf2\x43\x81\x03\xf0\x4f\x8f\x2b\xe3\xc5\xed\xf0\x95\xf7\x77\xe7\x02\xda\xe9\xd2\xff\x0b\xdf\x61\x21\x10\xed\xae\xaa\x3e\xe6\x53\x31\x73\x3c\x8f\x3a\x7f\x7e\xe9\x72\xe5\xc9\x87\x54\xcc\xb9\x9f\x63\x53\xd5\x71\xaa\x62\xe1\xea\x75\xeb\xd7\x53\x2d\x31\x94\xbf\x78\x33\x55\x6c\x18\xba\x2d\x04\x02\xc4\x65\x18\x9a\x22\x31\x71\xb3\xed\xa4\x7a\x28\xc9\x7c\x84\x4e\x5d\x68\x81\x86\x47\xbb\x97\x1a\x9a\x97\x5e\xfc\x84\x2a\xc2\x44\x02\xbd\x31\xc1\x19\x48\x47\xd1\x08\xf0\xe5\x34\x15\xda\xbb\xd4\x9e\x8c\xb2\x44\x1d\xfb\x5e\x77\xe4\xab\xda\x6f\x3c\x35\xa3\xa6\x8a\x4a\x2a\x82\xc8\x74\x55\xd7\xd0\x1c\x2b\x2f\xad\xd6\xc2\x33\xd4\x6e\xa7\x9a\x68\x02\xcc\x6e\x0e\x55\xce\xce\xff\x8f\xbc\x39\xc9\xe2\xa6\x32\xa6\xdb\x55\xfb\x17\x54\x31\x99\x60\x15\xef\xf7\xf5\x6e\x5c\x34\x51\x4c\x0b\x2c\xb0\xed\xdd\x86\x32\x71\xd5\xb9\xa4\x31\x36\xfc\x22\xe7\x09\x42\x68\xcc\x16\xda\x45\xad\xf2\xb6\x96\xf5\xc7\xb9\x63\xdc\xb8\x00\xa9\x44\x66\x53\xef\xa6\xf1\xe8\x51\x82\xf9\x2f\x52\x6a\x95\xc4\x16\xe5\x1e\xae\x65\x15\x67\x51\xec\x84\xe9\xa7\x0f\x34\x81\xc4\x19\x10\x19\xe3\x1e\x42\x71\x81\xd3\xa1\x52\x9a\x22\x9d\x51\xa2\x59\xda\xcc\xe9\x83\xaa\x14\x9c\xeb\x7e\xde\xdc\xa1\x41\xe4\xc5\xfe\xa8\x92\xd4\xc6\xae\xc8\x84\xbc\xa8\xb3\x28\x67\x7c\xb5\x52\x0a\x2c\xe5\xf6\x56\xea\xeb\xee\x7d\x3e\x40\xf7\x9f\xdb\xb1\x10\xcb\x25\x10\x9c\x52\x54\x82\xf3\xae\x0c\x6c\xf4\x45\x5d\xcf\xcc\x52\xa9\x52\xd2\xa2\xf2\x3d\x02\x16\xae\xf2\xda\x38\x6e\xaf\xd3\xdf\x9a\x7e\xa1\x4e\x12\x67\xab\x0e\xd5\x35\xbc\xd9\xde\xe7\x92\x2a\x9d\x09\x2b\x27\x82\x52\xb3\x5f\xd1\x5e\x91\xef\x78\x2a\x8a\x4d\x35\x83\x66\x29\x13\xc5\xcc\xcb\x1f\xae\x36\xd7\xab\xdb\xdd\xc2\x29\x1e\x84\xc3\x31\x43\x86\xff\x21\x2f\x5b\xaf\x6a\x87\x60\xb0\xcb\x89\x8f\x32\x24\xc1\x4e\xf3\xfa\xe1\x1d\xfe\xb7\x3a\xf5\xdf\xc2\x2c\xc6\xb5\xc1\x27\xf4\xf9\x2b\x89\xe7\x19\x30\x6d\x1c\xe2\x29\x93\x45\xf8\x45\x75\xae\x5f\x10\x4f\x82\x08\xa1\x5d\xe5\x4f\x6d\xfe\xb2\x43\x64\x71\xa9\xbf\xdb\x3e\x06\x08\x94\x02\x65\xc0\xd9\x61\xd4\xc7\xca\xa5\x0d\x33\x32\xb2\x8e\x92\x24\xd6\x83\x13\x6e\x73\x49\x2d\x83\xea\x58\x08\xff\x45\x87\xe3\xa9\x85\x55\x69\xaa\xf7\x4b\xb8\xe0\xcb\x41\xb4\x8e\x33\x40\x08\x4d\x2d\x5b\x08\xed\x63\x4d\x74\x9f\x9f\x7b\x3b\x89\x2d\xa2\x84\xa6\xab\xae\x26\xbe\x0b\x7f\x90\x3f\xd1\x50\x36\x7c\x9c\x12\x40\x5f\x12\xd7\xd0\xf7\x26\xb2\xd3\x99\xa4\x69\x9a\x89\xa1\xf0\x2b\xf7\x41\xaf\x92\x6a\x46\x19\xf8\x23\x4e\x44\x03\x2b\xe2\x97\xcf\x9e\x49\x83\xd1\xd9\x5b\x0e\xef\x77\xf2\x27\x9a\x53\x84\x94\x59\xf3\x38\x75\x6d\xcd\xe6\x1e\x26\x3b\x9c\xe6\x09\xd5\x91\x27\x77\xbe\x74\x2b\xef\x18\x4c\xa3\xb9\x74\x82\xee\xef\x58\x00\xf6\x3a\xa3\x3d\xa3\x48\x0b\x96\x70\x3d\x60\xac\xa6\x0d\xc7\x5f\x27\xbd\xe1\x5b\xb2\x0c\x73\x8c\x26\xff\x0b\x1e\x2c\xc2\x3c\xfd\x91\x44\xcb\x94\x05\x82\xe6\x55\x5f\xf6\xd4\x09\x44\x18\xce\x2f\x8c\x71\x31\xaa\xf9\x44\x69\x62\xfa\x32\xe8\x54\x45\xb8\x9d\x4b\x63\xba\x18\x36\x7f\x2e\xd1\x0b\xf5\x32\x43\x59\x67\x44\x21\x95\x1e\x46\x42\x74\x6e\xd1\x08\x03\x98\xc4\x85\xb2\xef\x7e\x79\x4c\x61\xbf\xfd\xd3\xff\xfc\x9b\xfe\x27\x0c\xe6\x4e\x03\xec\x4e\x96\x27\x8b\xf0\x63\x5f\x55\x1f\xbf\x4e\x3a\x4b\x35\x6e\xb7\x23\x5e\xfd\x3f\x4f\x72\x16\x1f\xea\x4c\x09\x8c\xb2\xb7\xdf\x76\x67\x26\x5b\x54\x4b\x6e\xb0\x07\xb1\x5c\xff\xb5\x83\xbf\x66\x3f\xa0\x62\x07\xd1\x77\x15\x66\x59\x8c\x8a\xe5\x5a\x0b\x83\xe4\x5b\x57\xd5\xaa\xea\x43\x37\x1d\xe7\xaf\xa2\xce\x62\x4c\x99\x5a\xd9\xbc\xf6\xed\xfc\xcb\x53\x52\xcb\x0c\x5f\x28\x94\x04\x09\x9f\x37\x84\x20\x3e\x0b\x21\xf0\x87\xbc\x74\xf0\xcf\x6a\xae\x92\xa2\x8d\x51\x28\xe3\xf8\x5c\x15\x66\x57\xad\x4e\x21\x98\xd7\x90\x25\x58\x21\xec\x8d\x3a\x6f\x82\x9d\xbe\x1f\x60\x4d\x92\xf9\x92\x16\xb6\x54\xab\x7a\x9c\x8d\x98\x28\x31\x58\x00\x7f\xa9\x4e\x75\x33\x3d\x92\x26\x92\x8c\xbc\x5f\x28\x9d\xdc\x3b\x13\x19\xc0\x0e\xb8\xaf\x54\xcc\xee\x8c\x89\x49\x8c\x81\xce\x20\x7e\xf6\x46\xcf\xb5\xcf\xa8\x89\x53\xc8\xc8\xf0\xd6\x38\xba\xf4\x64\xea\x19\x42\x20\xa4\xd5\xab\x9b\xb9\x8b\xc8\xe5\x9d\xdd\xd0\x38\xa1\xd2\x9b\xaf\x3d\x63\x3d\xc8\x91\x10\x3e\x35\x7a\x9c\xdc\x6f\xc3\x44\x82\xc5\x92\xab\xdd\x72\xf7\x7b\x08\x68\x0c\x4b\x55\xdc\xdd\xec\xbf\xaa\x83\xca\x27\xa9\x9e\xe1\xb1\xc1\x10\xd4\xb5\x56\x2a\x7b\xa4\xa6\x3f\x44\x12\x34\x03\x76\xe5\xe0\x79\x2d\x3b\x0c\x4a\x09\x9f\xd8\x41\xf7\x4a\x5d\xd3\xf9\x6c\x78\x16\xa5\x5e\xdf\x5f\x1e\x3f\x4b\x5d\x0d\xd7\x1c\x4b\xbf\x41\xf3\x66\x29\xbd\xb7\xd4\xec\xdb\x44\x94\x65\x91\x97\x17\xb8\x0c\x8e\x36\x22\xd5\xb8\x81\x1f\x6b\x6c\x63\x3a\xbf\x8a\x99\x04\x37\x35\x09\xcf\xdc\x44\x76\x80\x87\x89\xe2\x15\x35\x89\xb0\x58\x9b\xbb\x5e\xfd\xb1\xba\x7d\x78\xdc\x2f\x17\x8f\x08\x06\xdf\x3c\x3c\xdd\x5f\xf7\x83\x32\x67\x05\xfb\x22\x9b\x97\x20\xd1\x71\x71\x2d\x32\x89\x16\xca\xfa\xce\xad\xac\xf5\xcb\x75\xfe\x36\x55\x45\x30\x69\x6c\x10\x3b\xef\xfc\x9f\xc6\x29\xdd\xec\xbe\xa7\x4c\xe1\x8e\x56\x79\x79\xc8\x7d\x09\xef\x1b\x59\x9a\xea\x70\xbd\x75\x7e\xb5\x67\xb8\x8a\xbe\x2d\x34\xdc\xa3\x54\x70\x18\x74\x46\x6e\xea\xea\x10\xbc\x69\xc3\x80\x94\x79\xc9\xe8\xe6\x08\xe5\xc8\xf2\x83\x9a\x2c\x72\x6b\xd0\xf7\x0a\xb9\xf9\x6b\xdd\x53\xdf\x4c\x16\x83\xf4\x0d\xce\x9b\xda\x61\x8d\xe4\x4c\xb9\x6d\x76\x22\x99\x88\x90\x4b\xa6\x4e\x75\xb9\x2f\xaa\xa6\xbf\x21\x99\x71\xb2\xfd\x08\xdd\x40\xa0\xe7\x6f\xd3\x0f\x5a\x93\xb0\xde\xd6\xea\x54\xc8\xbc\x86\xbd\x07\x79\x84\xd6\xa4\x91\xb1\xc1\x42\xbf\xeb\x63\x43\x5d\x5d\x50\xa9\x99\xde\x5e\xc9\xb4\xf5\xe5\xaa\x2e\x78\xac\x5b\x30\xbe\x71\x6c\x67\x1c\x6b\x23\xad\x92\xa4\x4f\xc1\x8f\xd5\xac\xf7\x6c\x54\x92\x04\xb7\xbc\x7d\x77\x6b\xf7\xb2\x4b\x0c\x9a\xfd\x20\x2d\x49\x8d\x8e\x09\x36\x57\x91\x53\xfc\x58\x57\xdd\x82\x3c\xfb\x1a\xc3\x62\x6c\xb7\x3b\xb5\xa9\xab\x8f\xa5\x63\x6b\x4e\x26\x5a\x18\x9a\x50\xd4\x96\x29\xab\x36\xb7\x1f\xb7\xf0\x2c\xf5\x47\x40\xc4\x4c\xcf\xdd\x64\x0c\x55\x41\xe6\x45\x51\x63\x32\xa7\x49\xd9\x9c\x0e\x87\x95\xd6\x45\x1f\x84\x18\x20\xce\x5e\x7c\xe3\xf5\x7a\xb6\xad\xb4\xf6\xb7\x8b\x0d\xb2\x49\x8c\x69\x40\x38\xd1\xd9\xe5\xf7\x6f\x4f\xdb\xeb\xc7\x4d\xaf\xc8\x47\x8d\x55\x4a\xab\x00\xd6\x7f\x85\x72\x2c\x1a\xfb\x75\x63\xcf\x58\x90\xd8\xb3\xaa\x7a\xcc\x2f\x44\xc4\xd9\x32\xdc\x74\x3b\x73\x79\x0b\xd2\x0c\x5d\x7b\x88\x23\x82\x01\xff\xd8\xee\x2f\x1c\xe2\x19\x0a\xd7\x2e\x76\x3b\x54\xd7\xde\x3e\xdd\x2d\xae\x6e\xc3\x49\x02\x61\x0a\xfb\x7c\xdd\x92\xf3\x87\x3c\x15\xed\xe0\xea\x48\x81\x5a\xed\x48\xfe\x6d\x75\xec\x62\xdb\x87\xf2\x1e\x7e\xb6\xe3\x20\x12\x18\x11\x18\xc3\xdf\xad\xef\xf7\x3f\xd6\xbb\xef\xd7\x9b\xc5\x8f\xfd\x8f\xd5\xba\x3f\x4e\x89\x17\xdf\xb2\x79\x51\x7c\xcb\x6d\x3b\x1c\x51\x0a\x82\x32\x71\x33\xf5\x7f\xa1\xc0\x94\x65\x3d\x84\x11\x50\xfc\xa4\xbd\x04\x1c\x9f\xde\x38\xe0\x54\x60\xf3\xf1\x20\x7f\x0e\x18\xb8\x70\x2c\x73\xdd\x84\xf7\x5e\xa4\xd9\x1f\x10\x89\x42\xcc\xd7\xfa\xf1\x66\x3b\x8a\x39\x20\x89\x39\xe2\x7d\x9b\x77\x79\x5c\xe8\x36\x7f\xcb\xdb\x8f\x50\xe9\x0c\x43\x8c\x40\xd6\x89\x97\xc5\x41\x64\xde\x20\x9d\xd1\x5f\x4d\xca\xb4\xc9\x3c\x61\x2e\x7c\x34\x13\x71\x78\xc7\xbb\xbb\x7a\x9d\x97\xb9\x2f\x2f\xac\xfb\xbb\x9b\xc9\x08\x83\xcc\x6e\xdb\x1e\xad\xef\x20\x23\x88\x7a\xfa\xf1\x45\x83\xd4\xf3\x8a\x64\x37\x63\xa2\x41\x74\x1c\x8b\x00\x61\x4a\xfe\xe2\xae\xaa\x88\x61\x87\xca\x84\x9a\x16\x28\x4a\xd1\x69\xd4\xbd\x8c\xd7\x20\xdb\x17\xef\x1f\x39\x06\x44\x82\xa2\x5a\x90\xa0\xb8\xfe\x65\x88\x00\x26\x8a\x11\x8b\x0b\xba\x6a\xd0\xd1\x69\x3c\x11\x0d\x63\xe8\x64\x00\x3f\xdb\x5a\x8e\x3b\xaf\x60\x64\x12\x2a\xf0\xb8\x18\x74\xc1\x11\xfd\x6d\xf6\xd5\xd2\xd9\x63\xdb\x1a\xe0\xaf\xb3\xd4\x0c\x8c\x02\x04\x8a\x2d\xbf\xaf\x6e\x97\x0f\xeb\x10\x5f\x00\x28\x8a\x7d\x37\xac\xdb\x6d\x2e\x34\xd8\xc3\x38\x1d\x5b\xff\x9e\xe3\xa3\x1f\x97\x62\xc7\x6b\x05\x58\x65\xb0\xd4\x7e\xfd\xb8\xd6\xd5\x8f\xd9\x2c\xb4\x91\x52\xb8\x92\x54\x67\x7e\x93\x7f\x43\xed\x3b\x00\x19\x2f\x6d\xd0\x36\x56\x02\x63\xe7\xdb\x93\x7e\xfd\x98\xaa\xc3\x59\x92\x28\x67\x91\xee\xaa\x42\x0f\x6f\x50\x17\xb6\x7a\x3f\xc7\xee\x58\x22\x0d\xc6\xb6\xab\x9f\x6d\x0d\x87\x49\xbc\x65\x89\x92\x24\x68\xd1\x99\xfc\x8d\x70\xb1\x8f\x49\x7a\xf5\x31\x44\x96\x96\x58\x89\x08\xe3\xdd\x4b\x30\x55\x08\x47\x28\x11\x3c\x0b\xbb\x12\x96\xda\xfb\xd8\x27\x8c\xa0\x0a\x91\x32\x6e\xb6\x6d\xe5\xb9\xec\xe3\x74\x32\x59\x46\x1d\xb6\xfd\x19\xda\xd5\xc1\x79\xc9\xfd\x4f\xa5\x3e\x49\xbd\x2c\x37\x06\x4d\x1d\xd6\xcb\x07\x8c\xa4\x3e\x4b\x1a\xac\xa0\x90\x78\x64\xf3\x15\x94\x70\x86\x1e\xb3\xc2\xba\x2c\xc5\x4b\x6f\xcd\x3c\x7b\xbe\xd6\xf8\xb0\x89\xd6\x59\x36\x2e\x99\x5d\xac\x4b\xd9\x94\x08\xa7\xd4\x54\xd5\xad\xad\x8a\xbc\xda\x9e\x0e\x07\x39\x14\x47\x67\x17\x97\x32\x8d\x24\xb5\x43\x5e\xa2\x30\xed\xe5\x10\xd5\xa6\x3c\x42\x6e\x6b\x79\x3a\x4c\xf7\x16\x9b\x42\x86\xb4\xd1\x03\x98\xfc\x74\xb8\x0b\x52\xe7\xd4\x4a\x96\x20\x40\xb1\x4b\x27\xbe\x75\x99\x50\x2f\xc0\x3a\x80\x5d\xad\xb4\x49\xea\x06\x3d\x3f\x83\x59\xa0\x5b\x38\x9c\xa9\x54\x53\xab\x88\x83\x2f\x3f\x3b\x05\xcc\x45\xdb\x4a\xfd\x3a\x92\x4e\xfa\x72\xf1\xb0\x9a\x68\xac\xbe\xbf\x23\xd3\x67\xdd\x5c\x8f\x26\x8f\xe6\x80\x6f\xdd\xde\x03\x72\xba\xdd\xcb\x31\x82\x9a\x9b\xbc\x17\x30\xa7\x16\x22\x42\x07\xf9\x94\x33\x25\xff\x7f\xff\x67\x84\xe1\xb5\xc0\x08\x4b\x7b\x37\xe9\xa7\x75\xd9\x4e\x0a\xb7\x61\x94\x74\xc6\xfa\x63\x2f\xb8\xed\xfe\x6e\xf1\x67\xff\x9b\x92\x5a\xed\x2d\x76\xab\x3a\xf4\x69\xe7\xad\x51\x0b\x2a\x46\x90\xd5\x4d\x55\x6b\xe8\xd6\xd2\xef\x50\x1c\xe7\xb5\x1a\x6b\x29\x30\xe9\x90\x18\x50\xb7\xf7\xf0\xfe\x14\x40\x87\xe7\x0a\x9a\x5f\xae\x23\xdd\xf0\xe1\x52\xad\x75\xcc\xaf\x63\x0d\x6f\x79\x75\x6a\xe6\xe5\x0c\x1c\xc6\xa2\x88\x38\x26\xaf\xcb\x89\xfb\xd7\x9b\x45\x91\x60\x18\x8d\x1f\x91\x42\xf9\x58\xc3\x7a\xf7\xb0\xf7\x7e\x68\xeb\xb2\xef\x44\xb2\x28\xca\x94\xd3\xdd\xae\xde\xa1\x7e\x3a\xd3\xd1\x99\x3c\x72\x16\xc5\x2c\xf1\xc2\xed\xb9\x82\xc7\xa0\x8f\x35\xbe\x23\xdd\x18\x83\x05\xa4\x77\xc8\x1d\x93\xd9\x39\x9c\x85\x1f\x8c\x53\x87\x65\x75\x08\x98\x4d\x55\x0c\x5a\xba\x43\xd7\xf3\x1f\xb3\xaf\xd4\x29\x41\xfd\xec\xc5\x6a\x39\xb9\xcc\xd8\x70\xc4\x0f\x75\x6f\xc3\xea\xe7\x94\x6d\xd8\x8f\x01\xc7\xe2\xf7\x4a\x75\xc5\x09\x01\xfc\x97\xaf\x8f\x70\x82\xd9\x6d\x50\x65\x79\xc0\xe6\xe9\x17\xc8\x0f\x16\x51\x48\x9d\x41\xb7\x6c\xf2\xb2\x0a\x3f\xca\x98\x46\x48\xca\x3e\x2f\xdf\xaa\x57\xf0\xca\x7a\x33\xc2\xce\xdf\x9a\x17\xc3\x2f\x71\xe1\x8c\x3a\x71\x51\xd9\x7c\xd1\x18\x63\x11\x57\x0c\xab\x8c\x01\x86\x34\x71\x0f\x66\x11\xd7\x49\xea\x85\xff\x83\xed\xc4\xc5\xc5\x97\x45\xdc\x80\x03\x8e\xa1\xb4\x42\x97\xd8\x62\x6f\xb1\x3f\x6a\xf1\xda\x0b\xa7\xc0\x1e\x42\x28\x16\x09\xe2\x34\xb5\x0e\x48\x45\xc9\xcb\xe7\xb1\xd0\x0a\x8b\x84\x70\x1c\x52\x97\x9a\x62\xc3\x69\x51\xcc\x85\x2d\x59\x24\x24\xc8\xde\xda\x17\x61\x89\xbf\xde\x78\x59\x24\xb4\x0b\x3c\x1a\x84\x40\x76\x71\xfb\x33\xdc\x00\x8c\x96\xb5\xd9\xaf\x00\xc1\xaa\xde\xfd\xd5\xea\x76\x32\xb9\x12\xa6\x22\x1a\x62\xc5\xf6\xbd\xaa\x5f\x31\xd2\x08\x47\x13\x8d\x42\x0f\x5e\xf8\x09\xbb\x7d\x67\xee\x02\x2c\x4a\xa4\x48\x47\x45\x81\x1b\xc7\x9e\x99\xca\x47\xb3\x28\x01\x99\xa5\x01\x07\x55\xbf\x42\x8b\x15\xb2\xb9\x12\x31\x8b\xd2\x98\x22\x17\x43\x0e\x85\xb2\xb3\x21\x94\x61\x84\x7f\x97\x9b\xb2\x5b\x69\x87\x32\x21\x8b\xb2\x28\x52\xa9\xe7\x17\x74\x41\x07\x0e\x38\x67\x19\xb0\x28\x4b\x62\x11\x74\xb7\x1d\xb0\x2b\x38\xf5\x8c\xc6\x64\x82\x8c\xbb\xda\x5d\x88\x22\x2f\x78\x27\xb0\x2e\xb9\x47\x49\x9c\x41\x1b\xca\xbb\xbb\x4e\xbf\x50\x76\x4f\x2e\x78\xbd\x8d\x0a\x81\xcb\xf1\xd4\x91\x29\x91\x53\xc7\xb9\xe5\x6e\x7b\x1e\x7f\xcf\xa6\xb1\x94\xae\x96\xe5\xd8\x25\xf9\xe1\x74\xf8\xa3\x42\x15\x40\xb4\xb8\x9a\x9d\x87\x22\x19\x92\x6a\x01\x29\x02\x4e\xb9\x71\x16\xbf\xb2\x48\x29\x67\xeb\xd6\xdd\x21\xe7\xed\x30\x46\x5c\xb2\x48\x81\x0c\x17\x33\xa2\x49\xad\xcd\x68\x9f\x66\x91\x8e\x39\x5a\x18\x63\xdb\x1e\xe6\x0f\x41\xc7\x09\x2e\xa4\xcb\xcd\xc3\x8f\xeb\xfd\x8f\xd5\xea\x77\xb6\x7f\x5c\x6d\xd6\x0f\xfd\xe2\x6d\xa2\x04\xb1\x1e\x0b\x73\x70\xbd\xe8\xfd\x66\xb5\xb8\xbe\x5b\x8d\xab\x94\x2c\x32\xdc\xe1\xbf\x6f\xaa\xaa\x0f\x17\x2e\x42\xe3\x7e\x15\xf7\xf6\xdf\x07\x88\xcf\x59\x14\xc7\xaa\x9f\x5a\x26\x21\xe0\xb8\x84\x18\xec\x8e\xc0\x26\x2c\x32\x52\x31\xbf\x99\xd9\xfc\x27\x98\x21\xdd\x63\x91\x51\xd6\x91\x97\x70\x9d\x7c\x18\x2d\x2e\x06\x32\xac\x9e\x1e\x6b\x74\x4a\xbb\x50\x72\x63\x91\xb1\x0c\x71\x13\x63\xfe\xd5\x27\x4b\x22\x28\x27\xc4\xe1\x02\x92\xa6\xb7\x1a\x0b\x5f\x65\x23\x02\x51\x70\x60\xf4\x44\x5d\xef\x14\x78\x81\x75\xd5\x8d\x17\xc2\x15\x82\xf0\xf4\x6e\xc1\x8c\x16\x58\x9b\x72\x6c\x4f\x5d\x75\xaf\x7d\x3b\xb9\x19\x56\x42\x06\x83\xea\xc0\x55\x55\x35\x2d\xd4\xff\x3c\xc1\xcc\xe0\x97\xc5\x11\x4f\x70\x11\xdd\xf7\x05\x51\x5c\x65\x9c\xf2\x4b\x1f\xcd\xa5\x61\xb4\x70\xd6\x59\x81\x68\xe0\x2c\x01\xb6\xf2\x00\xf7\xd5\x70\x57\xe3\x28\x11\xde\x8f\x15\xf4\x6b\x80\xa6\x39\x7a\xeb\xec\xe7\x63\xed\x4c\x2b\x9c\xec\xcb\x25\x35\x23\x16\x33\xe3\x88\xaf\x03\xfd\xe2\xa9\x31\xbd\xd8\xa9\x1f\xc4\x33\x1a\x9b\x01\x83\x7b\x9d\xbf\xe5\x06\x4a\xd3\x4c\xf6\x84\x58\x88\x28\xb4\xb6\x30\x5a\xbc\x93\x3f\x1f\x9d\x84\xf3\xec\x37\x45\x9a\x51\xdf\x8d\xbe\x86\x43\x35\x78\x0f\xb2\x58\x64\xd6\x0b\x4c\xc0\x5a\x57\x8e\xbe\xd5\xd3\x1d\xc2\x18\xc5\x88\xab\x53\xde\x76\x21\xcf\xe4\x55\x89\xd3\xd8\xa1\xdb\x9c\x5b\xf5\x51\xd6\xa3\xc4\x9a\xc5\x29\x49\x70\x95\x36\xa5\x64\xb3\x93\x4a\x55\x2a\xfb\xaa\xdb\x13\x9a\xcc\xbb\x3e\xd4\x2f\x37\xfd\xf0\x05\x86\x70\x57\x62\xae\xde\xe0\xea\xe4\xfd\x55\xfe\x31\x19\x93\x79\xf1\xff\xea\x08\xa5\xb7\xb1\xbf\x0a\xe7\x96\x25\x22\x35\xe1\xb9\x7a\x29\xd0\x8b\xbc\x42\x16\x67\x5d\x7e\x31\x78\xe2\x57\xd6\x35\x21\xaf\x66\xcf\x3f\x93\xc4\xc8\x60\xf6\x80\xa4\x93\x6b\x68\x65\x3e\xe0\x73\xff\x31\xb9\x75\x99\x75\x2c\x78\x03\xba\xf6\xd8\xfb\x5d\xb5\x38\x57\x84\xe9\x46\x3a\x01\x68\xd4\x15\x37\x33\x3d\x53\x16\x4b\xa6\x74\x30\xcf\x72\xbe\x40\xcb\x6e\xbd\x38\x9d\x51\x13\x59\x2c\x79\x94\xb0\xc0\xd6\xaa\x8a\x42\xd6\x7b\x39\xae\xba\xb3\x58\xa6\x0c\x11\x11\x08\x77\x72\x6b\xa4\x03\x95\xd8\xf9\xde\x1a\xab\x28\x16\x5e\xd8\xc2\xed\xc1\x7f\xab\x4b\xcc\x62\x23\x93\xde\x23\xdd\x31\x49\x4d\x80\x60\xf9\x11\x90\xa5\x88\xde\x5a\xdd\xad\xb7\x68\xb2\x77\xf3\xb0\xd9\x6f\x17\xb7\xab\xed\x6e\xf1\x6d\x15\x87\x61\x36\xe3\xa9\x8b\x8c\xbb\xcd\xf1\xf7\x4f\x0c\x15\x19\x89\xe2\x14\x5b\xcb\xb2\x6e\xf3\xa6\x5d\x1d\x64\xee\xfb\xa3\x8c\x90\x2e\xb6\xf2\xb1\x4f\xde\x7e\x60\x7a\x74\x49\x6a\xe9\xec\x2f\xbe\x5e\xc5\x08\x49\x28\xa6\x84\xdb\xc5\xdd\xd3\x66\xb1\x0e\x5f\x4c\x09\xd3\x3e\x16\xda\x1e\xab\xb2\xa9\x6a\xd4\x8c\x0f\x55\xf8\x10\xc8\x10\xca\x2d\x92\xb5\xe4\xf1\xb6\xd2\xaf\x43\x3e\x11\x0e\x27\x71\xa6\x42\x35\x0c\x4b\x4a\x37\x55\x7d\x93\xd7\xa1\x20\xc3\x08\x4d\x39\x0a\x80\x3b\xc3\x8e\xee\xa1\xf6\x47\xac\x2b\x30\x37\x27\x75\xc8\xb1\xeb\xef\xf4\x20\x67\x3b\x33\xe9\x92\x4f\x36\x82\xe2\x07\x65\x9c\x5e\x9f\x68\x7a\x4a\x2c\x05\xaf\xa0\x8d\x59\xb2\xaf\x98\xaf\xcb\xc7\xba\x7a\x1e\xa5\x5a\x84\x27\xdc\x19\xd9\xe7\x1a\xca\x26\x24\x3f\x33\x58\x3c\x23\x02\x08\x16\xcd\xde\x42\x56\xb9\x85\xfe\xda\x12\x42\x51\x12\x79\xdf\x04\x2f\xd8\x4f\x48\x39\x8c\x24\xd2\xe9\x99\x23\x06\x6c\xe4\x50\x3d\x9b\x0a\x89\xb1\x48\x09\xc7\xe9\xdd\xad\xe2\x6f\x17\xed\xab\x18\x49\x23\x82\x49\x50\xa0\x7b\x3f\x5c\xef\x6f\x76\xb7\xfb\xed\xe3\x6a\x15\xa2\x09\x92\x12\x8a\xc9\xe4\xea\x66\xb1\x1d\x4a\x72\x8c\xa4\x9c\x10\x8f\xf5\xbe\x9f\x19\x28\x30\x92\x19\xc6\x5c\xc6\xe4\xc4\x0e\x3f\x9c\x48\xd7\x99\xcc\xc2\x0c\x8c\xe3\x3f\x2d\x53\x69\xfc\xb4\x5a\xfc\xf3\x76\x76\xce\x52\xc5\x38\x97\xee\xba\x7c\xa7\x7a\x7e\x2e\x46\x92\x1d\xdd\x51\x82\x6f\xb6\x3a\x7d\xec\x72\x3d\x7a\x5d\x47\x59\xe4\xe5\x9b\x26\x35\x75\x71\x7d\x25\x8b\x75\x89\xf8\xd8\xfe\x29\xab\x44\x70\x7f\xad\xb7\xf9\x30\x2b\x55\x16\x85\xf3\x74\xa1\xeb\x6e\x20\x69\x31\xa2\x74\x8a\xe5\xf6\x53\x89\x9e\xd3\x8b\xf2\x79\x62\xd5\xce\x88\x61\x02\xb7\xd2\x30\x25\x1d\x68\xe0\xb3\xa2\x31\x23\x26\xa1\xca\xdd\x54\x69\x86\x8a\x2c\x43\x57\xbe\x9e\xbc\xb6\x81\x2e\x6f\x92\xc5\x8f\x7e\x83\x22\x20\x99\x10\xbd\xf2\xaf\x9a\x15\x2b\x18\x8d\x04\x60\x73\x64\x71\x6a\xab\xda\xb5\x17\xaf\xa1\x90\x1f\xfd\xee\x48\x63\xea\xa4\xbd\x5d\x7f\x20\x77\x00\xd0\xe0\x48\x32\x4d\x5a\x68\x4c\xad\x03\x4a\x16\x20\xbb\x00\xa1\x41\x50\xd4\x59\x2e\x1f\xae\x8a\xc6\x9c\x62\x03\x7f\xdb\x56\x25\x3c\xca\x63\x1f\x2e\xd1\x18\x58\x4c\x02\x3c\xcf\xb7\x8f\x36\xb2\x9d\x21\xc3\x19\x8d\x2d\xb7\x63\x35\xcb\x1b\x08\xc5\x03\x3f\x80\xc4\x5c\x42\xdf\x67\xee\xf6\xac\x9b\x53\x39\x61\x2b\x32\x4a\xb8\x03\x28\x6d\xff\x7b\xca\xeb\x71\x7a\x44\x89\xce\x88\x0e\x6e\xb0\x81\x6c\xa2\x2b\x24\x25\xc7\xb3\x53\x21\x36\xd2\x0e\x07\x8f\xc1\xce\x12\xbb\x6d\xfe\x8e\x39\xa7\x9c\xb9\x18\xd8\x2f\xf5\x69\xfb\x82\x65\x3f\xc9\x29\x95\x2c\x4b\x7b\xe5\x94\xee\x19\xc8\xbc\x1c\x4b\x49\x75\x43\x52\x64\x42\x76\xe1\x6a\xf5\x25\xd8\x8a\x51\xa6\x33\xa7\x37\x8c\xb1\xe1\x3d\xbc\xdf\x39\x17\xa7\x2f\x0b\xbb\x8c\x32\x93\x20\x1e\x49\x06\x71\xe8\x98\xdc\x55\x65\xfb\x12\xde\x1a\xca\xa9\xc6\x12\xed\xb1\x6a\xda\x3b\x24\x65\x2c\x0b\xe9\x7d\x15\x3d\x18\xba\x9f\x35\x5c\xa7\x98\xc2\xba\xdc\xff\x2a\xef\xa7\x5e\xc2\x85\x5b\x60\xab\x67\x8c\x73\xaf\xc0\x56\x75\x78\xc7\x68\x1a\xb3\x00\xbb\xc2\x2a\xe1\xb1\x9b\x3f\x8b\xcb\x24\x65\x46\x53\xed\xf0\xd2\xee\x47\x56\x48\x31\xbc\xbc\x84\xd2\x2c\x12\x41\x24\xb1\xdb\x53\xfc\x7b\x33\x1b\x13\xc7\xca\xa3\xcd\x7e\x54\x75\x03\x58\xb1\x98\x8d\x91\xd4\xe1\x62\x37\xdd\x0b\x35\x7b\xef\x24\x07\x7c\x6f\x37\xab\xfb\xd5\x9f\xfb\xc5\xee\xe1\x6e\xbd\xdc\x6f\x57\xbb\xdd\x2d\x5a\xbe\xee\xd7\x61\x0d\xa6\x2a\x4a\x98\x6b\x89\x76\xab\x8c\xfb\x9d\x8b\x4b\xe8\xc5\xa0\x24\x26\xe9\xec\xea\x54\x4a\x6c\x1c\xd6\xb3\xa0\xd2\x1e\xf7\x47\x0d\xe1\x5e\x2e\xef\x1e\xde\xaf\xa0\xbd\xa0\x59\xcf\xa8\xb1\x80\xdf\xa1\x90\x58\x18\xce\x14\xe2\x04\xf1\x9c\x25\x80\x01\x33\xb7\x64\x67\x14\x52\x82\xbd\xea\xb7\x6a\xd6\x78\x4d\xc3\x00\xc5\xb1\x37\xd1\xe0\x74\xbe\x75\x4a\x8d\xfe\x98\x95\x14\xcb\x4e\x77\x8f\x2f\x55\xe9\x23\xb6\xfe\x98\xd6\x99\x97\x36\xdb\x54\x0d\xac\x76\xdf\x27\x3b\x12\xb5\xc6\xe5\x5e\xb8\x1f\x91\x47\x6f\x2a\xde\x63\xf2\x2f\x20\xf4\x59\x97\xcd\x05\x15\x35\x47\xa1\xbf\x38\xad\x58\x4c\xdc\x3a\xee\x6a\x3e\xdf\x50\x08\xca\xc9\xca\x87\xde\x0e\x8e\xb1\x08\x29\x43\xa1\xa9\xad\xab\x31\x0f\x07\x33\x8c\x61\xdc\xad\x9c\x61\x64\x19\x8b\x41\x30\x31\x12\xae\x1f\x53\x42\xa6\x01\x02\x23\x19\x15\x28\xab\xf8\x75\x5e\xc1\x48\x66\x31\x31\xe9\x96\xcc\xeb\x5a\xbe\x2f\xca\x0f\x54\xc3\xf9\xa2\x7a\xc8\x88\x95\xd8\x38\x35\x70\x2c\xaa\xc0\x24\x3d\xdb\x5d\xc3\xba\xde\x2d\xcb\x81\x71\xb2\x78\x93\x79\xd1\x6d\x8d\xb8\xab\x2e\x7b\xf7\x8c\x30\x2b\x18\x25\x06\x9c\x9a\x53\x5e\x23\x82\xe1\xd8\x53\xb9\xfa\x21\x3c\x85\x68\xc4\xcc\x73\x0a\x51\x6e\x66\x3a\xe1\xdd\xe9\x9d\xa0\x2a\x53\xd0\x9b\x9e\xe7\x07\xe8\xa6\xd2\x6c\x0c\xcb\xb2\x78\x90\xc8\xcc\xcb\xe7\xee\xce\x8e\xeb\x4a\x8c\x83\x42\xb0\xd4\x2e\x18\xd2\x85\x03\x82\x2b\x2b\x7a\x39\xb9\xeb\xd3\x05\x1a\x1b\x63\x49\x12\xe3\x5c\xee\x76\x1d\x30\x67\xcf\x35\xb1\x4e\xf6\xe1\x54\xb6\x7d\xac\xce\xd2\xd4\x91\x7d\x5d\x41\xe2\x31\xf4\xa8\x19\x4b\x95\x06\x39\x6e\x49\x61\x3e\x7c\x7f\x1a\x44\x53\x67\x73\x01\x81\xa1\xfe\x25\xaf\xf4\xeb\xe4\xba\x32\xce\x44\x3a\x31\x0c\xdc\xf4\x60\x4f\xc6\x32\x49\x83\xf0\x28\xd2\x98\xbc\x8a\xb7\x83\x37\x5f\x5c\x2f\x99\x8c\x25\x56\xb6\x97\xab\xdb\xf5\x43\x88\x11\x99\x54\x1a\x45\xb7\xf7\xee\xd5\xf0\x0a\xf1\x63\x97\x5e\xc6\xa4\x8e\xb0\x6d\x7f\xb7\x58\xdf\x63\xfa\xb3\xdf\xee\x16\x9b\xdd\x7e\xb7\xbe\x5b\xf5\x63\x2c\xc1\x0d\x7c\x07\xcf\xd3\x79\x77\x01\x07\xc2\x98\x4a\x34\xb5\xc1\x37\xef\xa7\x5b\xba\x1f\xec\xa4\x10\xc7\x74\x6c\xb2\xc4\x03\xa5\x66\x27\xa4\xd3\x8c\x64\x43\xce\x8c\x3a\x8d\x13\x83\xa5\xd1\x56\xcc\x8c\x14\x98\x56\x80\xc9\xdb\xbb\xca\x9c\x2e\xb4\x43\x27\x0b\x74\x58\x5a\x8c\x26\xc4\x53\x8d\x36\x70\xa8\xde\xba\xb7\x63\x6d\x30\x02\x5c\xb7\x70\xd6\x19\xfc\xf7\x7f\x3e\x27\x1f\x0d\x0f\x01\x64\x44\xfa\x6c\x7f\xcc\xbc\xc5\x1c\x66\x36\xfb\x40\x32\x8c\xa3\x1f\x1e\x57\x9b\x05\xea\x3a\x2d\xee\x1e\x9e\x82\xd3\x38\x63\x36\x62\xd8\x02\x9d\xfa\xdf\xa2\x20\x18\xc8\x50\x55\x23\x9f\xac\x15\x36\x72\x0d\x02\x0f\xf5\xb6\x15\xfa\x0f\x41\x0b\xb5\xf3\x9a\xf2\x3f\xc2\x23\x15\x6b\x8f\xf2\x5c\x3a\x79\xd9\x2e\x32\x1b\x9b\x82\x5c\x7a\xc2\x3c\x56\x5a\xfa\xa7\x77\x2a\xda\xfd\x5b\xd5\xd3\x7e\x19\x8f\xad\xb3\x7e\xdb\x39\x77\x7c\x1b\xfe\x4e\x38\x60\x34\x59\x54\xef\x03\xb1\x99\x71\x4a\x34\xda\x9e\xa9\xa2\xd2\xaf\x1e\xb3\x3d\xdd\x12\x46\x91\x24\xa7\x2a\x0b\x5b\xe3\x83\x17\x5f\xf4\x9d\xe1\x5f\x38\x8a\x85\xcf\x5b\x9a\x06\x12\x0f\x76\xad\x75\x2e\xeb\x0f\xac\x64\x4c\x9e\x0e\xa7\xd6\x89\x6f\xba\x98\xcc\x61\x3f\x2f\xd8\xac\x33\xce\xa8\x46\x6a\x44\xde\x5c\xc3\xb1\x06\x0c\xc4\x66\xdf\xc5\x98\x7f\x18\x83\x17\xf2\x04\x14\xc8\x38\xe7\x26\xf6\xec\x45\x8f\x08\x3c\xcb\x12\x38\xcf\x08\xb3\x23\x06\xe1\x1f\x55\x71\x0a\xd0\x83\xe9\x48\x21\x0c\xd6\xdb\xfe\xaf\x52\x8f\x3d\xd0\x8e\x71\xe1\x89\xf9\x4d\xeb\xee\x74\xff\x77\x9b\x80\x2f\xfc\x7c\x97\xcd\xcb\xd5\xc7\x25\x66\x79\x37\x4c\xa1\x24\x43\xdf\x58\x40\xf5\xb6\x8b\xdb\x20\x4f\x32\x91\x46\x7d\x2d\xeb\xa9\x81\xda\xb9\x1e\x5f\xe2\xa3\x31\x9e\xe8\x18\xbb\xaa\xce\x99\x7a\xe0\x24\xcf\x47\x09\x84\x97\xda\xaa\xd6\xb0\x2a\x0d\x76\x9e\xfc\xb1\x94\x51\xe6\xa0\x4e\x79\xb7\x15\x6d\x46\x7e\x83\x8c\x67\x4c\x90\x69\x9f\x63\xe1\x54\xff\x3f\xd1\x3f\x60\x3c\xd3\x84\xb3\xbe\xdf\x38\x87\xbe\x7d\x19\x95\x73\x49\x38\x4a\xdf\xfc\xf7\x04\xf5\xc7\xa0\x5c\x3f\xbf\x66\x29\x15\x46\x94\xbd\xcd\xe7\x52\x1e\xc3\x09\x4b\xe3\x80\xc7\xbe\x7c\x7b\x3d\x7a\x5b\xb4\xd0\xbd\xf3\xea\x5e\x16\xc5\xfe\x34\x32\xb0\x66\x5c\x27\xcc\x31\x00\xf3\xe7\x21\x8a\x98\x9c\x9e\x4e\x34\xb6\xe1\x86\x9b\xb1\x0b\x67\xf0\xf7\x0a\x6b\xdc\x24\x2a\x09\x6a\x7c\xfa\x05\x9a\xed\x68\x1e\x1b\xe3\x04\xd8\xbb\xe7\xe0\x9c\x22\x5b\x59\x4c\x12\x23\x0e\xdc\x22\x3c\xa6\xae\x4e\xcf\x2f\x93\x43\x22\x22\x29\x0a\xd1\xf9\xe4\xad\x1e\x69\xfe\x4e\x4e\x41\xc4\x8c\x09\xd3\x73\xce\x35\x34\x4d\x5e\x3e\x9f\xb5\xe5\x44\xcc\x9d\xe3\x4e\x03\xed\x4d\x0d\xf0\x97\x53\x12\x69\x4f\x63\x46\x35\x13\x44\x24\xd8\x22\x39\xe4\x65\x1b\xe4\xdb\xfb\x5b\x31\xf9\x3e\x02\x12\x6b\xe1\x4b\x5f\xa1\x0d\xfa\xe4\xd3\x47\x2b\x88\x65\x98\x72\xa8\x8f\x56\xd6\xf5\x90\x79\xfb\xc3\x54\x68\x18\xdc\xe3\x1e\xeb\xea\x50\xdd\x55\x65\xd3\xce\xf0\x09\xd3\x37\x4a\x20\x0e\xdb\x63\x13\x1f\x4a\xf8\xd1\xa7\xc7\x82\x11\x8b\x35\xa9\xdc\xdb\x1b\x9e\x85\xa8\x61\x1c\x4b\x70\x15\x2a\xaa\xea\xf5\xe9\xe8\xd0\xa2\x75\x78\x21\x2f\x46\x30\x82\x47\x4e\xa3\xf5\x5b\x15\x64\x97\x99\xe0\xdc\x62\xd3\xff\x58\xe7\x65\x3b\xf2\xe6\x63\x82\xa7\xae\x87\x71\x94\x75\x83\xef\xfc\xba\xcc\xdf\xce\xe1\x9d\x61\xb4\x8e\xb1\x47\xf4\x26\xcb\xbc\x79\x39\x47\x80\x33\x21\x18\x43\x7d\x0a\x7b\xea\xaf\x35\xc9\x34\xd6\xcb\xdc\xba\xe2\x38\xd4\x67\xd6\x8b\x4c\x64\x2c\xc6\x47\x3a\x04\xaa\xee\x29\x10\xbf\xfb\x0b\x99\x66\x08\xb0\x6b\x5e\xaa\xe3\x75\x75\x52\x43\x1d\x42\x48\x93\x31\x13\x5e\xcc\xf0\x8c\x57\xb8\x32\x5d\x00\xf5\x30\x21\x21\x45\x75\xb1\x9b\xbb\x6f\xdf\x57\x8b\xdb\xdd\xf7\xe5\x62\x13\xe2\x26\xa1\x24\xc3\x67\xb3\x7d\xc9\x9b\x97\xd3\xaf\x54\xd2\x98\x50\x5a\x07\xb2\x6f\xe0\x20\x85\x23\x96\x21\x65\xfd\x3d\x2f\x4b\x8c\x87\x1c\x82\xd8\x1f\xd5\x11\x0d\x3a\x59\x7d\x73\x7d\x56\xa5\x11\x5a\x12\x34\xf7\x39\x35\x50\x7f\x26\x57\xe0\x87\x9a\x98\xe1\xf2\x0d\xed\xcb\xae\x7a\x6a\x66\x3b\x81\x30\x69\x1a\xf9\x7a\xd6\xdd\xc7\xa3\xd4\xb9\x1d\x6a\x72\xc2\x64\xce\x16\x70\xe8\x3d\xcd\xf7\x88\xfe\x4d\xb0\x69\x9a\x8c\x0c\xc0\x73\x84\x1a\xb7\x9f\x55\x55\x93\x88\xa5\x48\x53\xb1\x79\x51\x4c\xbc\x5b\xff\x76\x09\xe7\x57\xff\x8e\xa8\x9b\x17\xa8\x8d\x2c\x89\x78\x8c\x41\x81\xdb\xa8\x90\xfe\x39\xdf\xa6\x93\x28\x91\xce\x43\xa9\x81\x76\x73\x86\x03\x48\x22\x15\x61\x21\xbf\xaf\x95\x8d\xc5\xb7\xa7\x43\x49\xa2\xb0\x86\xeb\x70\x55\xbe\xb2\x3d\x2d\xf6\x25\x44\x51\x57\x1b\xc3\xa4\x6d\x1c\x46\x27\x04\x54\x22\xfa\x46\x51\x77\x6f\x51\x88\x7e\x3c\xdf\x12\x9a\x64\xa9\x8b\xe3\x9c\x0e\x1c\x56\xd7\xe5\x61\x10\x09\x1b\xce\x86\xc5\x11\x2a\x15\x5a\x6c\x62\x06\x89\x4c\x7f\x90\x0b\xc0\x3c\xe3\x8f\xfc\xb5\x72\x82\x85\xd3\xe0\x71\x7a\x8b\x78\xa6\xe9\x00\x14\xfe\xe7\x69\x5e\x8a\x20\x33\x57\x28\x96\x88\xc4\xc9\xd9\x3a\x51\x93\xfc\x12\x7f\xd6\x8f\x4c\x48\x8c\xd8\x17\xb7\x75\xaf\x4a\x33\xda\x3d\x93\x94\x09\x34\x29\xd8\xe0\xc1\xee\x19\x9e\x89\x7d\x86\x91\x32\xd1\x59\xa8\x2c\xbb\x7b\x33\x4f\x1f\x93\x54\x2a\x24\x54\x43\xfb\xf2\xd4\x98\x11\x5b\x8f\x25\xa9\x92\x2c\xf1\x9c\x99\xa7\x52\x3b\x64\x3e\x96\x45\x67\x3f\x63\x13\xed\x15\x36\x71\xcb\x5b\x05\x5e\x39\x4b\x32\x4b\xb0\x92\x89\xde\xf0\xfb\xeb\xd5\xe2\xfa\x76\x1d\xe4\xca\x58\x22\x69\xec\xf3\xc7\x57\x28\xf7\xe5\x00\x80\x49\x24\x15\x56\x05\x95\xf7\xb7\x7e\xdd\x4e\xa4\x96\x18\x97\x60\x1f\xed\x33\xa6\x2f\x4b\xa4\x65\xc2\x33\x9a\xae\x4e\x75\xe9\x51\xd8\x7e\x9b\xb8\x93\xc7\xf9\xf2\x35\xfd\xb4\xd2\x09\x26\x40\x77\x8b\x3f\xf7\xbb\xcd\xe2\x7e\x7b\xb3\xda\x74\x89\xe4\xf6\x71\x11\x72\xd2\x44\x19\xd7\xae\xad\xe5\xfb\x9d\x2c\x4f\xb2\x28\x3e\x5c\x2b\x61\xdc\x1f\x99\x4d\x3e\xad\x34\x56\x53\x8d\xac\x73\xd9\x42\xbf\xda\x24\x90\x4a\xec\xeb\x20\xbb\x7b\x7f\xb7\xbe\xdf\xf5\x3a\xed\x2c\xb1\x89\x89\x5d\x2d\xcc\x13\x67\xfa\x03\x29\x38\xb2\xad\xae\x96\xf2\xe8\xb6\xf3\x4f\xb0\x67\x89\xcd\x12\xad\x03\x18\x73\x04\x28\x99\x8f\xca\x84\xf1\xdd\xc6\x6f\xdd\xb4\x7e\xf1\x12\xcf\xe1\xb8\xa1\x41\xa4\x7b\x59\x81\xed\xf2\x0e\x28\xdb\x11\xf8\xe9\xf3\x64\x2b\x8d\xb4\x4b\x0e\x9e\xa1\x7d\xcc\x8b\x42\xba\xc2\x43\xf3\x7b\xde\xf6\x2a\x2d\xb3\xfa\x62\x4a\x52\x80\xd4\x91\xac\xf2\xe7\x97\xb1\x46\x10\x4b\xa9\x30\xde\xbc\xb8\x34\x7e\x93\x69\xfa\x63\x90\xc5\x63\x4a\xf4\x65\xa2\xf7\xec\xc7\xa8\x25\xc8\x2e\x0d\x90\xab\xca\xe6\x05\x5c\xbc\xa0\xe9\x75\x09\x42\x8d\xaf\x18\x4e\x49\xe1\xd3\x97\x3f\x15\xa9\x45\x6d\x0c\xe9\xe8\x7c\x8f\xf2\x03\x37\x63\x19\x30\x22\x69\xc2\x33\xc3\x47\xf9\x15\x9a\xe7\x7e\xde\xc7\x49\x13\x91\x65\x2e\x65\x73\x0c\x86\xbe\x3c\x36\x5d\x5c\xd3\xcc\x7a\x5a\xab\x2c\x34\xf2\x74\xc7\xef\x78\x2a\x93\x08\x77\xe4\xb9\xd6\xa1\x08\x03\x14\xe7\x89\x7f\x6e\xd7\x79\x73\x3c\xf5\xeb\x50\xaa\x44\x92\x45\x23\xf7\x9e\xe6\xb3\xf2\x46\xaa\xb4\x93\x9b\xff\xd3\x76\xfb\x69\xd0\x20\x09\xdf\xa3\x4d\x16\x74\x7b\xae\xeb\xaa\x84\xc7\xa0\x02\xcc\x52\x6d\x4d\x34\x3c\x94\xab\xaa\x6a\x3f\xae\x46\x6a\x47\x7e\x94\xc9\x5c\xc1\xa2\x3f\x91\xab\x8f\xd5\xee\xfb\x74\x6e\xa7\x10\x4b\xac\xdc\x2e\xfe\x58\xac\x6f\x17\x57\xb7\xab\xbd\x13\x5c\x0c\x3f\x65\x63\xa7\x80\xd1\x05\xd0\xb7\x95\x7e\xf5\xd5\x9c\x2f\xbb\x7d\xa9\xe5\x51\xd8\x9d\x96\x52\xbf\xcc\x4e\x2c\x8b\x12\x81\xaa\x52\x50\x36\xa7\xda\x89\x79\x0e\x6b\x59\x16\x47\x46\x44\x67\xae\xce\x9f\xe2\xa6\xc6\xb3\x2e\x8b\x65\x0a\x43\xb1\xf8\xf0\xea\xc1\xca\x93\xb3\xcb\x48\x14\xe3\xb3\xbd\x7d\xf8\xb6\xbf\x91\x79\x01\x66\xc2\xda\x98\x0d\xa6\xd6\x0d\xae\x9e\x37\xe8\xb5\x79\x5f\xb5\x68\x64\xf0\x85\x90\x04\xcb\x88\x55\x08\x7c\xba\xfa\x16\x6e\x64\x46\x23\xe7\xb0\x80\x05\x43\x59\x3e\x95\x32\x4c\xcc\x4b\x8d\xbe\x8c\xc6\x4e\x48\xf6\x0d\xea\xdc\x7e\x6c\xa1\x7e\xcb\xf5\xfc\x3e\x52\xc2\x30\x3e\x70\x56\xda\xb7\x93\x26\x70\x18\x22\x75\xe4\x85\x5c\xaf\x64\xdb\x16\xe7\xf8\xc6\x8c\xaa\x4c\x8d\xcc\x70\xf2\x5e\xb2\x87\x65\xd4\x46\x71\xcf\xbe\xd9\x4a\x0b\x13\x57\x91\xf3\xde\xef\xf4\xf4\x18\x8d\xb0\x7d\x74\xb5\x5b\xee\xb7\x4f\xeb\xed\x76\xb5\xdf\xad\x57\x9b\x7d\x00\x5f\x64\x9c\x12\xd4\x0b\x35\xd5\x7b\xb9\x7b\x81\xeb\xba\x77\xa7\x63\x19\x67\x59\xf0\x47\xb9\x93\x3f\x7b\x90\xba\x93\xe4\xeb\xc9\xac\xd3\x2b\xe1\x5e\x37\xbc\x1b\xb8\xfa\x99\x37\xed\x0c\xf2\x99\x71\x9b\x6a\x17\x93\x3e\xd7\x12\x43\x04\x57\xbb\xf3\x87\x85\xb1\x58\xda\x74\xf4\x99\x7f\x9e\xaa\xfa\x74\x98\xd6\x72\xb2\x84\x49\x70\x55\x65\x67\x73\xb5\x70\x24\x63\xdf\xc1\x0a\x83\x54\x82\x6c\xb2\x0f\x54\xb0\xc0\x82\xde\x18\x76\x95\x75\xdb\x1a\xef\x67\xe9\x12\xea\x2f\xb4\x42\x59\x96\x2a\xb0\xde\xdc\xb0\x2e\x2a\x69\xc0\xdc\x41\xfb\x72\xfe\x0e\x86\xe1\x56\xe1\xa6\xb9\xba\x5d\xff\x19\x7e\x30\x23\x2e\x5a\x5c\x2f\x1f\xb0\xfc\xdb\xff\x9d\x3a\x86\xf3\x5e\xd5\x00\xa6\xcb\xc8\x3f\xab\xaf\x86\x0f\x08\x57\xfa\x19\x77\x6b\x51\x52\x7b\xf6\x24\x32\x88\xe2\x34\xc8\xd1\x9c\x74\x3b\x65\x69\xb3\x4c\x8a\x14\x23\x1c\x17\xab\x79\x2c\xc1\xe5\xeb\x91\x99\xe1\xa3\xba\x41\x77\x92\x83\x22\x8b\x1f\xa3\xb8\x53\x25\xe9\x09\x6f\x8f\x75\x5e\xea\xfc\x58\xc0\x68\xc9\x0a\x63\x33\x88\x87\xe9\xfe\xfd\x74\x90\xe5\xd4\xfd\xf0\x52\xa5\xf1\x33\x65\x6e\x96\x29\x99\x20\x48\xe7\xdb\xfd\x72\x08\x37\x3f\x49\x59\xfc\x47\x34\x8f\x32\xef\xee\xf4\x2e\x73\x2c\x80\x6f\x56\xbb\xeb\xd5\x25\x10\x49\xa6\xd3\x4c\x46\x4e\xb3\xe9\x4a\x5e\x8d\xc9\x48\x2c\xd3\x3a\x03\xd9\x97\x99\xb0\xda\x72\x25\xbb\x59\x79\xf5\xf1\x6d\xa8\x1b\x65\xda\x6a\xe1\x0a\x5e\x9e\x5b\x37\xfd\x05\x43\x5c\x43\xb2\xe9\xd9\xfb\x2c\x33\x4a\xf0\xa0\xc2\x31\x35\x67\x65\x99\xd1\x2e\xc4\xc0\x52\xdd\x0f\xdf\xe2\xda\x55\x8e\x12\xf8\x49\xd2\x99\x19\x2b\x91\xa7\x34\xc0\x2a\x7b\x18\x64\x3b\x82\x39\xcf\x58\x5e\xd3\xef\x80\x54\x62\xc9\xe0\x30\x11\x5a\x65\x19\x48\xc7\x6a\xec\xa6\x52\xe3\xaa\x83\x23\xb3\x48\x96\x81\x8a\xf1\xad\x57\xb2\x7c\x85\xba\x71\x3d\x59\x7f\xcc\xa6\x11\x2e\x7e\x2e\x84\x5c\x39\x57\xb5\xd1\x41\x1d\xe0\x91\x17\x6d\x70\xdd\x38\x19\xa5\x1a\x4b\x5b\xbb\x87\xdd\xe2\xd6\x79\x03\xff\x16\x0e\xa9\x14\xcd\x86\x6c\x5d\x1d\x76\x79\x01\xbe\xf0\x1a\xf7\x1f\xd5\x31\x06\xa0\xae\x69\xfe\x47\x85\xee\xbd\x4b\x59\x1a\x94\x31\xbc\xfa\xd8\x96\xf2\xd8\xbc\x54\x6e\x95\xf9\x7a\xd7\x95\x71\x12\x47\x21\x4c\xbd\xf7\x22\x62\x4b\x59\xb6\x57\x35\xf4\x8e\x16\x4c\xc6\x0a\x82\xec\xaa\xd3\x1d\x9a\x7d\x89\x71\x6a\x22\x21\x48\xbc\xca\xcd\x4d\x55\x6f\x5f\xa1\xd5\x33\xd0\xa0\x24\x84\xe9\x68\x02\x46\x3f\x42\xd9\xd3\x50\x99\x24\x34\x8a\x07\x3b\x64\x44\xfd\x84\x43\x9c\x72\xa4\x03\x05\x7f\xf0\xcb\x25\x2a\xc9\xa9\x61\xbd\x9a\x7a\x1f\x21\x48\x2e\xa2\x10\x33\xdf\xc9\x9f\x4b\x39\x43\xbc\x49\xae\x09\x38\xc1\xb0\x9f\x23\x21\x95\xee\xef\x1a\xa1\x38\x5e\x6f\x27\xa4\xd4\xd3\xab\x12\xc2\xd9\x57\xa3\xfe\xe8\x20\xe8\x34\x1c\x45\x01\x91\x4a\xfd\x1f\xe8\xf6\x5b\x51\xbd\x0d\xd7\x9b\x30\x82\x24\xf8\xa3\x2c\xf3\x51\x63\x5d\x26\x89\x8b\x37\x70\x1a\x1d\x2b\xb7\x6a\x8e\xdc\x97\x98\x4c\xc0\x29\x30\x8d\xcd\xd3\x2f\x56\xd3\x65\x1a\x19\x13\xa8\x73\x55\x55\x5c\x08\x6f\x64\x4a\x04\xaa\xb0\x9d\xca\xc0\xf1\x9e\xd7\xb8\x67\x5f\x99\x11\x64\xa6\xe7\xcd\x63\x71\x7a\xce\xcb\x5e\xda\x29\x9c\x9d\x14\x09\x76\x1f\x4b\x78\xf7\x1e\x44\x5f\xf7\xbf\xa5\x4c\x1d\xe1\x77\x61\xcc\x98\xa7\x3d\xff\xd0\x85\x45\x35\xfc\x33\xd9\xb6\xa5\xca\x04\x82\xdf\xff\xdc\x6c\xda\xd1\xfa\x27\x95\x02\x14\xbf\x78\x9c\x88\x62\x30\x69\x98\xb3\x99\xce\x75\x75\x2d\x3f\xfa\xe7\x03\xc4\xa5\x69\x41\x4a\xe6\x3b\x14\x50\xe6\x33\xff\x6b\x26\x81\xa5\xb8\x3c\x57\x65\x97\xb9\x2e\x65\x51\x80\xf9\x6d\x3a\x22\x91\xb8\xe6\xcb\xc0\xcd\xe9\x66\xf0\xe5\x5b\x01\x36\x0a\x6e\xce\x7f\x74\xe9\xad\x2a\x86\xf9\x62\x33\xe3\x00\x33\x01\x19\xb4\xac\x0e\x2a\x18\xad\x4c\x9e\x91\x8a\x92\x34\xb2\xbe\x33\xd0\x5e\x48\x51\x15\xb1\x16\xdf\x45\x47\xeb\xac\x97\x17\x5c\x97\xfc\x48\x1a\x5b\x35\xce\x0a\x06\x82\xd1\x97\xbb\x96\xa2\x22\x41\x12\xc8\xbe\x95\xaf\x80\x6b\x4b\xf3\x92\x9f\x39\xf3\xf9\xc1\x8c\x39\x86\x81\xff\xeb\xae\x9a\xac\x5f\x63\x86\x21\x53\x4c\xbb\x72\xed\x5d\x75\x80\xb2\x95\x05\x7a\x1a\x84\x97\x47\x71\xe2\xa8\xe9\x43\x4b\xe3\xb1\x86\xab\xd3\x07\xf6\x3a\x1d\xad\xe7\xd3\x5c\x50\x71\x9d\x59\xda\x57\x4e\x0f\xc7\x4b\x14\x18\xc5\xc1\x08\xcf\x9b\xaa\x6a\xbc\xb0\xb1\x6c\x13\x53\x42\x50\x04\x3d\x4a\x64\x6a\xae\x9b\x42\x96\x97\x69\xb3\x4c\x89\x44\x05\x85\xac\x1f\x20\x5f\xa1\x04\x73\x0d\x16\xa1\xab\x88\x7b\x9f\x8e\x4e\xd3\x0c\xc3\xd5\x97\xaa\x30\x7d\xc7\x37\x1c\x03\x9e\x42\xe8\xa0\x63\x60\x76\xf9\xa9\xa4\x90\x20\x4e\xd4\x6b\x76\x9e\x3f\xc4\xb3\xd2\xdb\x70\xe3\xb3\xd8\xf9\x5f\x35\xef\x72\x16\xbf\xa9\x2c\x76\x90\x11\x5d\x95\x2e\x80\xfb\xad\x3f\x60\x1d\xc9\x6d\xb1\xd9\xdd\xaf\x36\xdb\xfe\xef\x2c\x36\x6a\xd4\xa7\x18\x6b\x64\x85\x21\xca\x71\x97\x10\x65\xec\xca\xca\x07\xac\x55\x6d\xe0\xbf\xfd\xd7\x28\x83\x38\xc1\xab\xe2\x04\xd7\xb9\x3c\x54\x65\x3f\x11\x32\x1b\x63\xac\xea\x76\xca\x65\x55\xbe\x39\x57\xee\xd9\xaf\x48\x15\x89\x78\x62\xdb\x7d\x5f\x8d\x63\x45\x25\xb5\xc5\x58\x71\x98\x50\x7f\xdc\x5e\xff\x8a\xcc\xa4\x54\xec\xa0\x3f\x87\xbc\xbc\xc9\xcb\x32\x38\xaf\x87\x93\x53\x89\xc1\x10\x2b\x6f\xe1\xf0\x3d\xef\x6e\xc0\xc7\x83\x7d\x9c\xd8\xb7\xcf\x1e\x9c\xb2\x8a\x0f\x9a\x64\xbd\xde\xee\x48\x53\x7c\x7a\x02\x3a\x31\xd6\xdd\x99\x4a\xbf\x36\xbb\xea\x5b\xa0\x3d\x2a\x6d\x1c\xd3\xc7\x07\x2f\xfd\x14\x32\xdc\xe9\x7c\x97\xf0\xfe\x88\x05\x8c\x91\x1a\x2b\x53\x46\x39\x46\xc7\x1d\x34\x8d\x7c\xee\x56\x30\xf8\xac\x17\xea\x3f\x01\xc4\x91\x38\x1a\x68\x17\x6d\x75\xf8\x06\xe5\x25\x88\x99\x02\xe5\x98\x5c\xcb\x30\x75\xae\xf2\x56\x57\x79\xb9\x1c\xcb\x3d\x7e\xc5\x0f\x67\xca\xa6\x11\xf3\x6f\x64\xfb\xc9\xed\xb3\x69\x8a\x95\xcc\xf2\x74\xb8\xaa\x70\x15\x70\x07\x74\x24\x24\xf7\x99\x87\x06\xd4\x9b\xec\x8f\x48\x07\x97\x09\x52\x10\xff\xfa\xb1\xdc\x55\x97\xdd\xe5\x27\x17\xae\x23\x4b\x51\x39\x20\x18\x4b\x3c\xae\x36\xcb\xd5\xfd\x6e\xf1\x6d\xb5\xe7\xe1\xcb\xe3\x44\x60\xc8\x31\x6a\x43\xcf\x24\x94\x98\x8e\x33\xd7\x70\xbb\xad\x9e\xb1\x27\x5c\x54\xcd\x27\x04\x7c\xa6\x63\xe3\x7c\x92\x8f\xb2\x6e\x9d\xae\x8f\x0f\xc2\x2f\xde\x0e\x4d\x62\x8b\x0b\xdd\x76\xb7\xd8\x39\x78\xe3\xf7\xc5\xf6\x7b\x38\x39\x92\x70\x69\xbc\xbc\x5c\xff\xde\xdc\x04\x4d\x61\xa6\x29\x8d\x83\x88\xc0\xae\x87\x2c\x35\xdb\x21\x85\xd0\x94\x1a\xac\x69\xb9\xcb\xd3\xed\xae\xba\x3a\xe5\x45\x77\x77\x3f\xe9\xe7\x68\x6a\x9d\xbb\xb0\x27\x20\xe1\xb4\xfd\x2e\x9b\x97\xa7\xa1\x77\xaf\x59\xac\x4c\x00\x3e\x63\x93\x02\xcc\x3f\xdb\x8f\xf1\xef\x32\x91\xa0\x51\xaf\x92\xe5\xe2\x64\xf2\xb3\x76\xac\x66\x09\x07\x1d\x3c\xaf\x82\x45\xe2\x6c\x73\xd4\x0c\x28\x26\x00\x7b\x84\xa2\x15\xa7\x03\x7c\x81\xef\xd7\x22\x8e\x85\x1d\xe4\x4a\x5c\xf6\x38\x0f\xd9\xb4\x20\xce\xb7\x64\xfb\xb8\xd8\x2c\x27\xaa\x4b\x4c\x0b\xe6\xae\xdd\x97\xe7\x5a\xbd\x19\x2c\xc2\x26\xd9\xa3\x16\x59\x82\x81\x1f\x5a\xa2\xac\xcb\xc7\x2e\x23\xa2\xe1\x6b\x92\x48\xab\x38\x1c\x5c\x95\x26\xd8\xe9\x31\x9d\x24\x99\xc8\x46\x82\x3b\x67\x45\x32\x7c\x21\x27\xaa\xcd\xb3\x46\xb5\x4e\x13\x57\xfe\xec\x82\xf7\x5a\xbe\x2f\x8a\x62\xd5\xbe\x3c\xcc\x34\x1f\x59\x97\x7d\x62\xf1\xe1\x06\xe6\x79\xa0\x4e\xb5\xc1\x57\x70\x51\x03\x28\x39\x0a\x92\x75\x16\x69\x64\xac\xaf\x8a\xbc\x85\xc9\x01\x25\x58\x12\x7c\x8c\x46\x46\x76\xf3\xcd\x6a\xf2\x3c\x64\x66\x71\xee\xbd\xe4\xcf\x2f\xd0\xb4\x53\x9e\x8f\x96\x1a\xb0\x23\x19\xe0\x25\x3f\xc3\x01\x15\x65\xf8\x5b\x7d\x99\xed\x52\x7a\xad\x75\x94\x62\xbf\x62\xbf\xdf\x8f\x3a\x0f\x5a\x2b\x8d\xd8\xd4\xde\x5a\x42\xb6\x2d\xd4\xe5\x59\xd5\x6f\x12\xc2\x5e\x5c\xcc\xb4\x51\x80\xc5\xa0\x2d\xb4\xd7\xf2\x78\xcc\x07\x3b\xa5\xbf\x61\x4f\xc2\xb4\x31\xd2\xc6\x7d\xc1\x09\x6b\x49\xa5\xf1\x9e\x94\x93\x34\x58\x83\x4e\x13\xd7\xbb\x47\xde\x26\x9d\xfa\xe6\x31\x6d\x33\x15\xa3\xb6\xc2\xb7\x09\x9f\x5f\x5b\x45\x8d\x2f\x4c\xae\x5b\x38\xec\xe0\x70\xfc\x5e\x15\xe6\x8c\x7e\x6b\xa2\xc8\x69\xc5\xf5\x4c\x87\x07\xfb\x70\x84\x72\xdb\xc2\x31\x9c\x84\x89\xa2\x14\x6c\x58\xba\x2f\xf6\x17\xc2\x40\x62\x31\x69\x5f\x9c\xda\x97\xaa\xdb\x49\x3f\xd3\xfd\x1e\xfd\x3e\x75\xf2\x6b\x48\xf3\xf1\x02\x2a\x57\xa7\x8f\xea\xd4\x4e\x2b\xec\xd3\x4f\xc5\x91\xc6\xa8\x1f\x05\xd0\x50\xf8\xdd\x4f\xa0\xd3\x99\xa9\x28\x33\x31\x49\x3c\x86\xdd\x97\x29\xb6\x00\xe6\x82\xb1\x63\x18\x4e\x29\x66\xdc\xcd\x11\x65\x36\x96\x0e\xaa\x36\x1b\xa3\x12\xec\xd6\xb4\x75\xfe\xfc\x0c\xf5\x8d\xcc\x8b\x9b\x42\x3e\xf7\x77\x8c\x08\xad\x78\x00\xad\x75\xb3\x0c\xbb\xdf\xeb\xa9\x05\x37\x33\x44\x11\x7c\x7a\xa7\x52\xe2\x1d\xcb\xff\x9a\x19\x9d\x75\x43\x8c\xf5\x41\xf7\xf6\x35\x2f\x8a\xf9\x37\x68\x19\x08\x1f\x57\x1f\x8b\x22\x97\xcd\x7c\x80\x49\x64\xf0\x31\xea\x52\x92\xaa\x9e\xfd\x00\x35\x34\x75\xed\x57\x97\x57\x7e\x87\xa2\xa8\x86\x76\x72\xfa\x0f\x07\xe9\x73\xff\x7b\x61\x32\x1b\x6a\x00\x85\x67\xbb\x69\xfc\x07\xba\x4a\x3e\x4f\xdf\x47\xc3\x98\xc5\x93\x74\x39\x91\x2b\x59\xcf\x6e\x28\xe3\xd4\xf9\x9c\xaf\xef\xf7\xeb\xfb\x3f\x56\xdb\x1d\x6e\x78\x8f\xdf\x17\xdb\x9e\xd7\x67\x18\x4f\x31\xbc\x42\x4e\xff\x15\xb4\x9f\x45\x1e\x7e\x38\x67\x1c\x91\x83\xab\xf5\xf2\x9f\x23\xe3\x52\x66\x38\xa7\x08\x7c\x0f\x0b\x81\x87\xcc\xff\x02\x83\x10\x56\x59\x23\xa8\x44\x1d\xba\x02\x6c\x4b\x67\xd7\x21\x18\xc7\xb9\x56\x43\x53\x15\x6f\x80\x98\x9d\xd9\xdd\x48\x22\xe2\x7c\xf7\x9f\x01\xb7\x22\x59\xb7\x6b\x1f\x60\x87\x13\x4c\x04\xc1\x5c\x14\x25\xcd\xe6\x1f\x4f\xe8\xb0\xaf\xbf\x42\x39\xda\x59\x4d\xc6\x2d\xca\x51\xdc\x2d\xfe\xdc\x8f\x55\x5b\xfa\xe3\xc2\xe2\xb2\x75\xb5\x5b\x26\x24\x8a\xaa\x92\x0d\x37\x25\xd3\x99\xf6\xb5\xf9\x07\xe5\xdc\x57\x66\xbf\x9c\x69\xf7\xed\xcb\x00\x83\xfa\xf9\xd1\x25\x31\x4b\xcf\x19\x85\x1a\x17\x31\xa4\xce\x9d\xc9\xf9\x7c\x16\x83\x1b\x19\x25\x88\xd4\x0f\x71\x98\x6b\x0b\x7b\x63\xb0\xd1\xa9\x4b\xab\x82\x62\xdf\x48\x06\xc8\x1f\x54\xcc\xa0\xda\xa3\x8b\x01\xb7\xad\x7c\x45\x52\xe5\x74\xff\x0c\x63\x65\x9a\xa0\x11\xd8\x5e\x9e\xda\xea\x30\x57\x8a\x62\x46\x69\xe7\xfd\x82\xe8\xd6\x73\x14\xb0\x51\x90\x30\xe8\x75\x57\x3c\x25\xe6\xcb\x60\xd3\xe8\x44\x07\xc0\xda\x15\xfa\xc8\xa3\x67\xd2\x3e\x5c\x9b\x4e\x99\xc6\x7c\xef\x69\xf7\x7d\xbf\xbe\x5f\xef\x96\x0f\xf7\xdf\x36\xab\x6d\x48\xc4\x8c\xd1\x29\x16\x02\x1c\x63\xd3\x73\xe1\x87\xa4\xcf\x00\x4d\x11\x2f\xb9\x1f\x90\xc7\x8b\xb2\x6a\x5f\x1c\x5a\xec\xf2\x92\xdd\xbf\x26\x56\xa4\xd8\x51\x2c\xaa\xe7\xbc\xfc\x03\x3b\x53\xb3\x35\xc4\x1a\x9a\x4a\x5f\x83\xdc\xe7\x25\x2e\xd5\x58\xa4\x8a\x57\xff\xc5\x7f\x43\x7a\x02\x51\x6a\xd1\xef\x7d\xb0\xee\xbd\x20\x06\x9f\x86\xc1\x19\x8f\xe3\xb1\x01\xe2\xae\x7a\x2c\x64\x6b\xab\x7a\x56\xbd\x81\xc8\xd0\xc4\x29\xf9\xc9\xe7\x3e\x94\x82\x08\x28\x71\x88\x8a\x5a\xbf\x6c\x4e\xe5\x90\x08\x41\x64\x53\xc6\x7a\x65\x7c\xf0\xe8\xa3\x66\x0e\x08\x81\x38\x4a\x30\x60\xea\x82\xc8\x11\xc4\x19\x62\x5f\x1e\xe8\xe6\xda\x41\xb6\xd0\xbc\x57\x75\x31\x03\x09\x03\xe1\xda\x49\x2e\xe1\x2e\xbe\x3c\x35\x6d\x75\x98\xbf\x34\x40\x84\x4b\x90\x91\xa9\x8a\xf9\x65\x5f\x0c\xcc\xcb\x67\x47\xcd\x0a\x05\xb8\xe1\x89\x02\x4b\x40\x0c\x04\xb3\x3d\x42\xad\xc3\xc9\x31\x99\x62\xce\xd3\x1c\x8b\x7c\xee\x84\xcf\x80\xe9\x14\xeb\x6a\xeb\xc7\x9b\xed\xb6\x1d\x88\x5f\xc0\x23\x08\xcd\xed\x6d\xfe\x5c\xce\xaa\xfa\x2c\x1a\xff\x33\xe2\x3f\x7d\x15\x07\x01\x57\x09\x0c\x3a\xf9\xfd\xfe\x1b\x8e\x42\xea\xe0\x85\xa0\x4f\xc5\x43\x61\x16\xe3\x8d\x07\xd2\x28\xc1\x16\x85\x17\x89\x18\xcc\x18\x19\xa4\x89\x40\xfc\xc0\x09\x51\x26\x57\x1f\x67\x15\x6d\xc8\xa8\xc3\x36\xed\x1d\xb5\x26\xbc\x12\x9f\x64\xa2\xe3\x3a\xc9\xa8\x58\x02\x8a\x09\xcc\x97\x9f\xca\x66\xd6\xaa\x1a\x82\x6a\x50\x32\x72\x49\x41\x2b\xc7\x55\x63\x50\x86\x62\x41\xf4\xe8\x9b\x1e\x0b\x34\xe1\xaf\x2e\xa8\xbc\x5e\xca\xbc\x41\x13\x4a\xbd\x45\x6d\xb1\x94\x05\xaa\xc6\x39\x3a\x6b\x7f\x96\xff\x66\xe1\x1c\x34\x4d\x70\xe7\xab\xa1\xc9\x7b\xdc\xe9\x65\x1f\xd8\x6e\xb0\xc4\x00\xe6\xe8\xa4\xdc\x67\x65\x0d\x30\x99\xf2\xcc\xf2\xe3\x05\x5d\x43\x3f\x08\x8c\xc4\x4d\xea\x25\xaf\xa1\xf6\x02\xba\x37\xa7\x32\xe8\xed\xfc\xc2\x36\x62\x38\x17\x9b\xa5\x09\x0c\xd6\xa9\x13\xd3\x4d\x06\x56\x1a\xec\x75\xfd\x55\x8d\x71\x1a\x60\xa5\x45\x78\xfb\xf1\xa4\x8a\xbc\x79\xe9\x82\xd7\x62\xf4\x72\x5a\x2b\x11\x87\x1a\xc0\xc6\x67\xf8\x07\x1b\x45\x69\xa4\x27\x36\xf2\x8f\x35\x1c\xf2\xd3\xa1\x79\x94\x33\x9b\x23\x66\x23\xc5\x90\x2e\xb9\xab\xf3\xe3\xa9\x41\xf7\xd8\x71\x28\x6d\x63\x6a\x99\x1c\x78\x8d\xc8\x35\x99\xfe\x5c\x9c\x52\xed\x53\xde\x09\xb1\xc2\xc6\x69\xaa\x06\xe0\xf0\xba\x69\x4e\xf0\x45\x3f\xf2\x8b\x69\x33\xed\x4f\x5a\x92\x69\xd4\xaf\x3c\x80\x91\xc5\xda\x22\x54\x7a\xb6\x4d\x59\x02\x22\x54\x76\x6e\x6f\xff\xd8\x83\xc9\xdb\x7d\x1c\xff\x36\xfd\x1e\x30\x1c\xcb\xbf\x6e\x09\xbb\xcf\xcb\xff\x93\x93\xd9\x1b\x5a\x5a\x96\x12\x27\x4a\x71\xb7\xbe\x5f\xdf\x3d\xdd\x0d\x21\x5a\xb7\x69\x87\xcb\xa5\x69\x82\x45\xf6\x6f\x1e\x51\x18\xfe\x6c\xd3\xd8\xf4\x1b\xe6\xc2\x47\xba\x17\x2a\xe2\x96\x25\x31\x06\x03\xc7\x40\xfa\xf5\x7f\xe7\xd2\xf9\xfe\xdc\x2e\x76\x0f\x13\x11\x34\xcb\xad\x45\x20\x91\x82\xf6\x6e\x64\x01\x38\xde\x67\xac\x88\x64\x88\x98\x7e\x3f\x99\xaa\xb9\x05\x3b\x0b\x0a\xac\x88\x63\x8a\x09\xe7\x4f\xd0\xa7\x40\x1e\x99\x3e\x64\xc1\x32\xe3\x4b\xec\x7d\x45\x62\xf6\x25\x4a\x86\x42\xb1\x87\x87\x23\x79\x17\x7d\x74\x27\x0b\xa3\x15\x90\x22\x83\x26\x2f\xc3\x6e\x8e\xd1\xd4\x6f\x17\x97\xda\x3e\xcb\x0f\xab\x81\x4d\xb8\x42\x8c\xf2\x23\xd4\xaf\x93\xa9\x9a\x08\x47\x38\xb9\x5f\x3c\x86\x3f\xa5\x90\x71\xd6\x57\x58\x07\xd3\x8d\x70\x3c\x23\x34\xf4\x32\xb0\x4c\xf4\x58\x83\xc9\x27\x62\x23\xd3\x37\xda\x66\x89\xc0\xd8\xd4\xcb\xee\x84\x6d\x7e\x3a\x48\xd2\x98\xc6\x81\x3a\x3a\xd4\x65\xfa\xe9\x24\xb9\xd2\x9e\x0e\x70\x0f\xef\x9e\x64\xdd\xbf\x36\x52\x59\xe5\x1f\xd8\x75\xa5\xcf\xc4\x3c\x99\x55\x9c\xe1\x53\x87\x53\x5d\x0d\xae\x38\xb3\x31\xa9\xd0\xd1\x08\x28\xbb\x2f\xc6\xc2\x42\xd6\xc4\x1a\x1f\xd6\x76\xb1\xbe\x5c\x2e\x9c\x3e\x5b\xa3\x1c\x66\xfc\x7b\x55\x7c\x5c\xe5\xca\xe7\x2f\xf1\xd4\x25\x67\xf6\xce\x18\xa5\xd4\x90\xf6\x6c\xc0\x00\x1c\x7c\x65\xf6\x7b\x10\x62\xe9\xc3\x31\x76\x79\x87\xb5\x40\x19\x96\x4d\xb7\xf9\xe1\x18\x1c\xc1\xbe\x58\x20\xe6\x5b\x9c\x05\x01\xe8\xbb\xf2\xba\xcb\x5f\x77\xf2\x75\xb4\x81\x59\x1b\x3b\x59\xda\x7d\xe3\xa5\xb5\x0e\xa7\x76\xe0\x17\x4c\xaf\xdf\x32\x45\xfc\x12\xb7\xc5\xdc\xe0\x0c\x72\x64\xad\x4a\xe3\xcc\xdb\x0f\xb8\x07\x3a\xef\x51\x86\x81\xe0\x70\xb2\x8f\x55\x91\xeb\x8f\x8b\xee\x48\x3c\x8a\xb8\x44\x15\xa6\xdb\xf5\xe2\xfe\xdb\x68\x92\x77\x47\x14\x72\x87\xbf\x05\x56\xe7\xfa\x7a\x12\xaf\xf2\x28\x92\x2e\x29\xbe\x43\x0e\x67\xc8\x4e\x7e\x85\x3d\xf7\x1f\x8e\xbd\xd3\x5c\xd8\x5d\xbc\x9d\xc5\xec\xf4\x48\x66\x71\xc1\x78\x74\xe5\xe8\x51\x15\x9e\x47\x44\xa9\xd4\x59\xbd\x95\xd5\xa9\xd4\xe0\xc0\xbb\xfd\x51\x93\x78\xb9\x2b\xa7\x28\xb8\xc5\x98\xfe\x33\x1b\x69\x1e\xd1\x38\xf6\xe0\xcf\xd6\x93\x41\x17\xe7\xaf\x67\x1a\x06\x13\x85\xe5\xbb\xfa\xb3\x76\x16\x8f\xa8\x66\xca\x19\x09\xcb\xba\xdd\x54\xa7\x02\xda\x16\x26\x37\x98\x45\x19\xf6\x8e\x0f\xf5\xeb\x5e\x4f\x4a\x87\x3c\x62\xc2\x49\x7e\x8e\x8c\x39\xec\xa9\x34\x60\x56\xed\x0b\xc2\x46\xf2\x46\x9f\x31\xdf\x79\xc4\x2c\xc1\x5b\xb2\xfb\x7e\xb5\x9c\xfc\x16\x8f\x5c\xc9\xbf\x3a\xb6\xf9\x41\x16\xab\x9f\xc7\xd9\x27\x79\xc6\x10\x56\xd5\xc2\xcf\xf6\xa6\xaa\x67\x4f\x9a\x2b\x22\x07\xce\xdf\xa3\x2c\x4d\xbf\x54\xfc\x9b\x5c\x4e\x39\x79\x24\x44\x8a\x75\x40\x8f\x27\xcc\xcb\x89\xa1\xfb\x7c\xac\x33\x54\xc7\xe5\xf1\x98\xeb\x70\xde\x22\x4d\xd3\xa1\xd3\x73\x96\x61\x5d\x7e\x94\x22\x8b\xa9\x8b\xe2\x10\xa2\x7d\x9b\xff\xf7\x94\x9b\x73\x16\x34\x8f\x84\x74\x38\xd4\x3b\x59\xd7\xb9\x7c\x86\xd9\xe4\x13\xd2\xc1\x39\x50\x98\x31\x1f\xf2\x92\xf3\x9d\x23\xac\x03\x3c\x4a\x14\x47\x5a\xf6\xd6\x99\x53\xf7\xb5\xd3\x2f\xe1\x27\x3c\x4a\x0c\xcd\x7c\xf0\x33\x3b\xc7\x54\xc4\xcc\xab\x87\x6d\x07\xbb\x5c\x1e\x65\x1e\x07\x17\x34\x2e\x7a\x95\xb2\x7e\x80\x92\x21\x38\xfb\x1f\xa9\x5f\x8f\xd5\xb4\xfa\xcb\x23\xc5\x9d\x8e\xa4\xf6\xd3\x7d\xf3\xe7\x08\x0b\x35\x0c\xe2\x91\xe3\x16\x9e\xea\xf6\x65\xff\x7e\x99\x78\xc6\x23\x9d\x32\xec\xe1\x1c\x5d\x35\xff\x51\xd6\xfd\x5c\xd6\x2a\x45\x01\x39\x8c\x8d\x30\x00\x7d\xb0\x5f\x0a\x78\xf0\xc8\xc8\x48\x8f\x4b\x89\x3d\xdb\x1e\x0f\x61\x2a\xf4\x22\x9b\xbb\xbc\xdc\xc8\x71\x1d\x6c\x32\x1f\xd2\xfe\x03\x26\xce\xc6\xd2\x90\xb3\xa7\x6c\xac\x45\x7d\xd7\xd0\x1b\x35\xe0\xd8\xb3\xe1\x07\xc1\xa6\xa1\x60\xe3\x63\xaa\xf6\xe3\x13\xb3\x1e\xff\x09\xcb\x62\x54\x17\x79\x3e\x29\x05\x75\x17\x05\x3c\xbc\x41\xdd\xbe\xd4\xbd\xaf\x32\x8f\x6c\x96\xc6\xce\x8d\xf8\xff\x40\x07\xdd\xb0\x73\xf3\x48\x37\x3a\x8e\xe2\x38\x8d\x87\xd0\xce\x1c\xf2\x8b\x06\x86\x3c\x8e\x69\x94\xc9\x89\x6e\xe4\xb2\x2a\xba\xf5\xa3\xf6\xd2\x41\x17\x04\x33\x78\x1c\x0b\xb7\x87\x63\x1a\xef\xb7\xce\x30\x8f\x62\x42\x18\xed\xe5\x0a\xce\xbc\x61\xff\x1f\x09\x45\xe1\x3b\x13\x81\xcb\xba\xc3\x92\xc2\x43\x2d\xf5\xcc\x31\x9f\xc7\x34\xa2\xd8\x3d\xe9\xa7\xdc\x80\xf6\x0d\x23\x44\x22\x4d\x20\x74\x94\xdd\xaa\xe6\x97\x89\xe9\x8f\xd1\x94\x28\x3b\xa2\x5e\x7e\x97\xcd\xaa\x5b\x4a\xfb\xaf\xc9\x92\x34\x1a\x71\xd3\x31\x3e\x0b\x07\x59\x1a\x2b\x6f\xb8\xe4\x35\xc2\xcf\x19\x39\xa3\x5d\x97\xc7\x3c\x12\xa8\xbc\x34\x92\xfc\xd9\xc8\x16\x56\x2c\x7c\x23\x97\x1c\x69\x9e\x57\x4f\xdb\xf5\xfd\x6a\xbb\xdd\x7b\x83\x15\x2c\xc4\x3a\x00\xdc\xfe\x76\x7d\xb7\xde\x0d\x1f\xb0\xc8\x4f\x59\xa0\xbe\xe7\xb2\xcb\x20\xbc\x4d\xe3\xe5\xad\x2c\x16\xd4\x52\x74\xf5\xb5\xde\x57\x68\xbc\x70\xc4\x42\x3a\xe9\x87\x67\x68\x17\x45\x31\xf3\x3f\xe0\x71\x12\x27\xd8\xb0\x0d\xe7\xef\xe5\x22\xbb\x80\xe6\xea\xe3\xee\x13\xf3\x1a\x1e\xa7\x3c\xc5\x89\xa7\xab\xa6\x8d\x47\x40\x23\x1e\x67\x99\x22\xbd\xe4\xe5\x8f\xc1\xed\xf1\x8b\x82\x07\x8f\x33\xa0\xd8\x5a\x92\xa1\x66\x33\xfd\x35\x15\xc5\xda\xfb\xae\xf6\x08\xe0\x6b\x35\x9b\x40\x8a\x10\xab\x66\x10\x8d\xbf\x45\x84\xfb\xec\xa4\x14\x11\x88\xe2\x71\xb3\x6c\x10\xd4\xe2\xb1\xf2\xfa\x57\x6e\xab\x5b\x95\xd8\xf2\x0c\x1c\x9e\xd9\xb9\x6b\xeb\x18\x50\x5d\x88\xa7\xab\x63\xff\x1d\x26\xa2\x14\xf1\xc4\x68\xc4\xb9\x6f\xab\xd7\x72\xbf\x5e\x3e\xc4\xfd\x71\xa1\x33\x1d\x12\xa3\x37\x87\xc6\x99\x00\xac\x79\x6c\x52\xc7\xe2\x6a\xc0\xf5\x8c\x1f\xa1\xfe\x5e\x9d\xea\xd9\x09\x40\xec\x10\xd6\xed\x40\x41\xbe\xa9\xea\x6e\xff\x68\x86\x75\x36\x06\xc9\x6d\x3c\x56\xf8\x0d\x82\xfc\x4d\xf8\xd1\xe9\xb7\x5a\x26\x05\xb8\xda\x28\xf6\x6a\xee\x6f\x76\x5f\x6a\xb6\xba\x8f\x91\x48\x50\xcc\xb1\x4a\x6c\x8a\xdd\x56\xc1\x3e\x9b\x93\x48\x46\xd8\x4a\xbe\x5e\xdd\x2c\x9e\x6e\x77\xfb\xe5\x66\xe5\xc4\x20\xc6\x2f\x07\x89\xb4\xc6\x32\x33\x32\x5e\x77\xdd\x62\xf2\xb3\x3f\x64\x1d\x7c\xf4\x5e\xfe\xac\xba\x20\x6c\x1c\x10\x91\x38\x8a\x22\xbf\xb7\x3f\x94\xc5\xc7\xf6\xa5\x7a\x0f\x6b\x9b\x19\x0a\x84\xdd\x38\x08\xe2\xcc\xae\xa1\x82\x9a\x18\xf0\x77\xdc\xda\x38\x89\x13\x40\xae\x5c\x09\xef\x4e\xaa\xfe\xb7\x49\xcd\x8b\x13\xa2\x25\x82\xed\xfc\x9a\xbb\xdf\x55\xfb\xd0\xa3\x08\x2f\x24\x61\xca\x20\xb1\x7d\x1f\x34\xbe\x5f\xa1\xec\x8b\xa0\x17\x97\x57\xc2\x75\x34\x03\xc6\x4e\xe3\x39\xc2\x2d\x45\xce\x74\xbf\x40\x38\xfd\x4d\xec\x38\x9c\x85\x49\x44\x44\x12\x65\x47\x1e\x57\x8f\xe1\xa4\x04\x8d\xd3\x80\x67\x59\x1e\x64\xed\x17\x5d\xbf\xe7\x92\x24\xd2\xc6\x4f\x9e\x07\x6f\xd2\x34\x4f\x64\x38\x49\x38\x70\x5f\xb3\x72\xbd\xa1\x41\x28\x97\x93\x54\x44\x58\x3d\x7b\xba\x5a\xed\x96\x0f\xeb\xfb\xfd\xed\xea\xfa\xdb\x6a\xb3\xdf\x3d\x84\xff\xb7\xba\xdf\x6d\xfe\x77\x7f\xfd\xb0\x7c\x72\x2b\xe7\xf7\x05\x8f\xc9\xf0\xf1\x14\x8b\x89\x55\x79\x27\xbb\xed\xa1\x1c\x05\x3e\x24\x4d\x5c\xfa\xfe\x56\xb5\x60\x7c\x51\x27\x1c\x4a\x89\xf5\x2a\x1a\x6d\xb5\x92\x75\xf1\x31\x3c\x8f\xbf\x53\x89\xe3\x24\x95\x24\x49\xfb\xe5\x35\x7c\x3a\x28\xad\xf5\x4f\x35\x35\x31\x9a\x4b\xb9\x86\x24\x16\x8a\xa7\x05\x33\x4e\x52\xeb\x9a\x9b\xe5\xe9\xd0\x4b\x5f\x84\x4d\x8b\xc8\x94\x61\x69\x63\x53\xe9\x57\x68\x11\x4d\x18\x8e\x64\x14\xe3\x99\xef\xf0\x53\x96\x13\x2c\xe3\x67\x85\x2e\x4e\xa4\x71\x86\xa9\xd6\xa9\x7d\x6f\xab\x83\xaf\x42\x4e\xaf\x4d\x11\x81\x68\x29\x3c\xe6\xab\x95\x66\x36\x46\x47\x4e\x64\x2f\x2f\xf3\x76\x00\xd2\x73\x62\x84\x43\x10\xf5\xb2\x0e\xab\xb2\x3f\x66\x89\x15\xbe\x78\xef\xb9\x97\xeb\xe6\xa6\xae\xfe\x82\xf2\xea\xe3\x7a\x0c\xcc\x9b\xfc\x14\x8d\x44\x82\x78\xba\xa2\x7a\xc6\x37\x1f\xdf\xff\x6e\x99\xfa\xe9\xcb\x6f\xe1\x3d\xa3\x51\x92\xea\x31\xb7\xf8\x3a\x7f\x6b\xfa\x9e\xda\xbc\x77\xc5\x69\x1c\x3b\x03\x53\x83\xf9\xe6\xaa\xd6\x24\x72\x1d\xc6\xc9\x5b\x44\x63\xcd\x31\xcf\x08\xfa\xc1\xdf\xae\x1e\x3f\x39\xd3\xd8\x44\xb8\x4a\x79\xee\xed\xac\x90\xca\x29\x89\x28\x3e\x6a\x53\x5d\xd6\xf8\xe0\x94\x68\x36\x70\x96\x6b\x0d\xc5\x9c\x7c\xce\x29\x8d\x12\xe3\x7a\xa2\x6f\x20\x8b\xad\xce\x9b\xa6\x9b\xb6\xe3\x07\x4d\x29\x33\xca\x3d\x05\x14\xde\x9b\xfd\x08\x63\x91\xc5\xf5\x6a\x09\x79\x81\xf8\xa4\x70\x00\x04\xb6\x60\x9c\x47\x57\x35\x43\x67\x71\xca\x35\xf4\xed\xf1\xaa\x2a\xa6\xbf\x29\x22\x19\x39\xf0\x61\xe1\x33\xeb\x65\xfd\xd1\xb4\xb2\x98\x05\xaf\x54\x30\x07\xab\xc9\x9b\x09\x26\x88\x53\x21\x9c\x62\x16\xce\x9d\x80\xaf\x08\xc7\x74\x84\x5e\x4e\xa6\x5a\xa2\x73\x36\x94\xe6\x0a\x59\xa0\xfd\x00\x88\xd0\xd9\xc3\x11\xbd\xae\xf3\x1a\xe3\xed\x8f\x89\x23\xee\xac\x9c\xc3\x69\x92\x64\xc2\x4e\x64\x67\xd0\x88\xce\x95\xd8\xa6\x67\x9d\x24\x4e\x7c\xac\x45\xa3\x40\xf8\xaf\x33\xbb\x7c\xca\xcb\xf6\xb7\xc9\x3d\x4a\x20\x75\x6b\x62\xfe\x7c\x59\x9d\x9a\xd3\x34\xa5\x58\x22\x77\x01\x06\x4e\xbe\x05\xaa\xb2\x85\x6b\xc9\x34\x43\xd4\x69\x37\x8f\x5f\xa0\x08\x32\x97\x17\x77\x1f\x9a\x81\xc1\x9e\x80\x77\x6e\x2d\xf2\xe3\xdc\x0d\x84\x53\x19\x51\xed\x19\x8a\x77\x79\x51\xf4\xe1\x7d\x38\x9c\x58\x2c\x8a\x74\xd7\x76\x57\xbd\xc1\x34\x83\xa4\x52\x32\x34\x99\xfe\x06\x23\x14\x89\xdf\x03\xa8\x62\x04\xab\x8b\xea\xf4\xb1\x2c\x4e\x4d\xeb\x75\x9a\xc2\x67\x55\x02\xb8\xad\xf5\x1e\xc3\x20\x0f\x63\x4c\x0e\xa7\x2a\x75\x90\xbf\xb6\xdb\x5e\xda\x49\xe8\x4f\x95\x34\x18\x2c\x21\xc3\xcf\xdb\x8c\x8e\xa8\xd8\xd3\x8b\x04\xca\xd0\xf9\xe0\x5a\x56\x9b\x53\x01\x4d\x28\x09\x39\xdc\xe6\xdf\xcc\x5c\xce\x41\xc0\x9c\x02\x4b\x98\xcf\xb6\x7e\xaf\x06\xf1\xb8\x4b\xfc\x71\xce\x22\x2e\xbc\x9e\x7b\xbb\x01\x03\x07\x9c\x50\x17\x94\xda\x39\xeb\x32\xe6\xee\x7c\x57\xa5\x09\xd1\x1f\x8b\x33\xc6\xe5\x08\x3e\x82\xc2\xb6\xa1\x47\x34\x2a\x87\x72\x16\x2b\x1d\x08\xd5\x4f\xdb\xeb\x4b\xf9\x1e\x23\x59\x84\x78\xd8\xe7\x13\x34\xcd\xa3\x6c\x9a\xf7\x91\x9a\xfa\x85\x0b\x65\x34\x89\xb0\x2f\x86\x9d\xf3\xc5\xf5\xf5\xc3\x8f\xfb\xd5\x26\x9c\x1a\x4d\x39\xba\xdc\x5c\x3f\xdc\xbb\x00\x6d\xb3\xd8\xad\xc2\x41\x16\xbb\xed\xe0\x5f\xab\xd5\x8f\xc5\xfd\x6e\x9c\x19\x30\x96\x49\x33\xc0\x09\x50\xbc\x14\xb7\xcb\xd9\xd9\x72\xed\x98\x9a\x87\xbc\xbc\xa9\x6a\xe4\x26\x62\x2c\x3a\x94\x89\x58\x12\x31\xd4\x4c\x7b\xd8\x7d\x5f\x6d\x96\x9b\xa7\xf5\xb6\x0b\x10\xfe\xdc\x6d\x16\x4b\x3c\xa3\xab\xc5\xb6\x3f\xa3\x84\x3b\x78\xda\x41\xbe\x82\x2b\xeb\x84\x03\xca\x95\x80\x1f\x6b\x38\xf6\xa1\xe0\x97\x9b\x3d\x4b\xa3\x34\xc9\x82\x06\xbf\x95\xa7\xa2\xbd\x83\x56\x1a\xd9\xca\xa7\xcd\x7a\xb2\x0a\xb2\x8c\x72\x0e\xde\xb4\x12\x63\xae\x0d\xe0\x66\x35\xbb\xd8\x4c\x64\xa8\xde\xf7\x5c\x99\x2d\xb4\x3d\x9d\xe4\xf2\x46\xc5\x32\x4d\x51\x15\xc5\x91\x2e\x3f\x55\xcc\xe0\x2c\xb3\xce\x99\xe4\x6e\x75\xbf\x5d\xcc\xbe\x44\x72\x1d\x0a\xca\x3d\x4d\x9a\x33\x99\x5a\xa7\xa6\xef\xa1\x0e\xdd\x76\xb9\x01\xfb\xf7\xa2\x20\x26\x15\xc3\x7d\xa6\x09\x2a\x81\x9c\x29\xa2\xb0\xdb\xb8\x85\xc2\x16\x05\xd4\x1f\xff\x5b\x9d\xc6\x2b\x02\xd3\x0a\x68\x80\xbf\x6d\x8f\xa0\x73\x59\x7c\x05\x6c\x9b\xfd\xa2\x21\xce\xb5\xd2\xa5\x60\x4f\x75\x31\xaf\xd6\xfd\x9b\xff\x27\x0c\x55\x0c\x3b\xca\x25\xbc\x07\xb5\x98\xcf\xb5\xeb\x38\x83\x54\x13\xcf\xc6\xf7\xe4\x86\x4f\xca\x8f\xb3\xcf\x59\xaa\x48\x34\x72\xd4\xb0\x50\x7f\x1f\xc9\xa9\xfd\xaa\x74\x12\xbe\xc5\x12\x2c\x72\x78\xd1\x7b\xbc\x63\x63\x7d\x60\xce\x23\x1d\x61\x07\x72\xa8\x1e\x39\xb2\xf5\xd7\x4a\x9b\x9c\xc7\xc6\xf9\xad\x16\xdd\x82\x32\xd4\xd5\x39\x89\x19\x6e\x54\xc8\xda\xd6\x55\x6d\x7e\xe4\x9f\x64\xfd\x9c\x10\xc0\xae\xd7\x0f\x90\xc7\xca\x55\xd7\x7a\x22\x24\xe7\x84\x3a\x79\x82\x12\xde\xef\x00\x39\xbe\x97\xee\x2f\xa7\xd4\x22\xc6\x20\x77\xee\x15\xeb\xf2\x4c\xa2\x89\x77\x11\x48\x14\x24\x3b\xdd\xea\xea\xb0\xfc\xf3\x61\x9c\x23\xb6\xf7\x36\x97\xe5\x95\xac\x86\x2e\x0c\xe7\x54\x70\xec\xac\x74\x31\x29\x94\xba\xa8\x4e\x66\xbc\x18\x71\x2a\x9d\xd2\xfb\x55\x0d\xe5\x73\xd3\xef\x46\xe1\x30\xa3\x22\xeb\x6e\xf2\xc3\xfd\x6a\x7f\xbd\x5a\xae\xef\x16\xb7\xfb\x7f\x3e\x2d\xee\x77\x4f\x77\xfb\xc5\xfd\xbf\x3c\x9e\x6a\xe4\xec\xc9\x39\x93\xc4\xc5\x3d\x0e\x2d\xf5\x2e\xbb\xfd\x77\xc4\x76\x0a\xc3\x74\x1a\x7c\x24\x96\xf5\x87\xa9\xb7\x6d\x55\x3b\x52\xc1\x80\xe2\xe0\x9c\xd9\x0c\x27\x93\xcd\x8b\x62\xf9\x22\xcb\x12\x66\x31\x18\x67\xd6\x75\x63\x0e\x41\x3a\xe3\x32\x46\x9b\x73\x2e\x9d\x36\xc2\x45\xa1\x9d\xcb\xcf\x99\xeb\x0c\x63\x1c\x2d\x8f\x0b\x94\x15\xed\x13\x11\x2e\x58\x4a\xdd\xb6\x36\x4f\x05\xb8\x90\xce\x47\xe3\xdb\x1f\xce\xfb\x7d\x5a\x08\xff\xe2\x95\xe3\x42\x45\x88\x59\x71\x85\xc1\xc7\xaa\xa8\xca\xbc\x4f\xec\x79\x92\x02\xb2\xb0\x4e\x0d\x5c\xaf\x6e\x57\xdf\x16\xbb\xd5\x72\x71\x7b\xdb\x1f\xce\x22\xec\x43\xef\x55\x6e\x0c\xbe\x73\x8b\x12\x8d\x39\xe1\x2a\x3f\x5f\xd0\xa7\x0f\x23\x95\xca\xd1\x7a\x3e\xf4\x4c\xca\x87\xf3\x14\xb2\x58\xcc\x7c\x97\x65\x31\xf8\x65\xf8\x61\x19\x71\xa2\x1f\x06\xd4\xe9\x79\xff\x22\x9b\x17\x7a\xf5\x11\x32\x70\x3f\x46\xc5\x9c\xf2\x50\x72\xbc\xa9\xea\x7b\x78\x77\x7e\x7a\xb3\x3b\xa8\x38\x60\xde\xb0\xdc\x4d\xda\x39\xdc\xc4\x4e\x00\xcc\x13\x04\x46\x89\x33\x37\x71\x82\x16\x7d\x3d\x74\xdb\xc7\x6c\xeb\xb2\x4b\xb1\xf3\xf2\xd9\x61\xf2\x6f\xaa\xba\x47\x43\x4e\x6f\x81\x61\x4e\xdb\x5c\x1a\x73\x1b\xaa\xd1\xd3\xb3\x32\xcc\xe0\x8d\xf8\x91\xff\x2c\x64\xbf\x6c\x18\x1e\xa9\xc4\xab\x5b\xba\x56\xdc\xaf\x54\xbd\x38\x07\xcb\x9c\xa0\x29\xd2\x39\x86\xf2\x38\xb7\x11\x43\x1d\x8b\xe6\xf9\xa8\x67\xbf\x6e\xad\x40\x35\xfc\x3f\xf2\xb7\xbc\x0a\x73\x42\x44\x89\x13\xcb\xac\xa1\xad\x73\x78\x43\x06\x49\x38\x94\x46\x58\xab\xd8\x4b\x55\xd5\xa1\xb9\x37\xb2\xa7\xe5\x22\x26\x80\xf5\x6f\xe4\x24\xce\x7b\xf7\x5c\xc4\x89\xd1\xae\x56\x7f\xac\x6a\x04\xa7\xfc\xf6\x4b\xec\x3a\x17\xb1\x8c\x50\xb3\xa2\x84\x9f\x83\x2e\x70\x77\xd7\x87\x12\x95\x88\x6d\x64\xbc\x8d\x96\xcf\x5d\x6f\xf3\xb7\xf0\x28\x05\x89\x35\x3e\xe5\xf6\x05\xae\x3e\x77\xf7\x08\x83\xa9\x70\x74\x5f\x2c\xd6\x4d\x57\x0f\x41\x58\x2a\x9d\xb3\x7a\x8b\x72\xc1\xe0\x15\xdf\x4f\x23\x13\xd2\x51\xec\x2e\x28\x57\x34\xf1\x92\x48\xf9\x1c\xc2\x76\xfe\xdb\xd4\x3b\xdd\xf7\x82\xb5\xb3\xc2\x81\x60\x1c\xe8\x48\xfa\xec\x3a\x10\x7d\x86\x7a\x63\xb7\x8c\xa0\x24\xe1\xe0\x3d\x6f\x63\x76\x6e\x3e\xdf\x0d\xb4\xb1\x6f\x91\x07\x87\x8c\xfe\x3a\x39\x01\xe6\x4c\xc6\xbb\x0d\xb0\x6f\xd7\x5c\xde\xbd\x04\x4e\xb3\xe0\xeb\x52\x98\xd9\x66\x22\xb8\x25\x08\x09\x5f\x14\xc5\xb2\x37\x80\xea\xfe\x0c\x48\xef\xcb\x1b\xcc\x06\xc7\x02\x09\x5c\x88\x34\x8d\xb0\xe6\x1c\x0b\x1f\x9d\x87\x03\x59\x86\x0c\x3c\x03\x6a\xf4\xca\xcd\x4e\x28\x89\x33\xee\x6b\x47\x37\x79\x81\x52\x85\xbb\xde\x2c\xa5\x3b\x0c\xc6\x99\x07\x3e\xbb\xd2\xea\x08\x8b\x10\x86\x48\xe7\x09\x53\xa2\x3a\x7a\xf8\x60\x46\x25\xc6\x10\xcb\xea\x80\xd5\xf4\x6e\x5f\xbc\xac\xef\xc5\x85\x24\x06\x5f\x2f\xe5\x53\xbd\x30\xb9\x2f\xd0\x9f\xbb\xc1\x20\x83\x42\x4a\x6e\x2e\x43\x0c\x84\xe4\x0e\xd6\x8a\x42\xe5\xce\xc6\x6a\x61\x5b\xa8\x7b\x78\x11\x17\x32\x75\x2a\x66\x48\x4a\x47\x85\xff\x33\x0e\x24\x17\x52\xf1\x9e\xbe\x2d\x6b\x68\xab\x90\x8d\x5e\x4c\x7f\x85\x4a\xfa\x7c\xeb\x8f\x5c\xc3\xb1\x86\x26\x37\x50\xb6\x70\x0d\x77\xd0\xc8\x33\xb7\x83\x09\x4c\xa4\x7f\x8b\xb5\x4e\xb1\xfe\xbb\xbe\x5f\x87\xee\x4c\x38\x69\x43\xe2\x84\x04\x4e\x5f\x2b\xf5\xeb\x59\x89\x53\x00\xb7\x0e\x5d\x51\x3d\x63\x81\x5a\x5a\x5b\xc0\x72\xda\xcb\xbe\x3c\x15\x20\xe3\x78\xd3\xcc\xa9\x7c\x86\xaa\x9c\xbf\x50\x96\xd1\xc0\xd4\x0c\xfe\xb1\xcd\xd5\x07\x72\x28\xea\x8f\x49\xe2\x21\xac\xc9\x10\x52\xe3\x1f\x68\xa0\x56\xce\x67\xbb\xb5\xd6\xf8\x8a\xae\x23\xbf\x74\x8f\x67\xf2\xa3\x49\x14\x2b\xf4\xe8\xac\xab\xa2\xa8\xde\x82\x5a\x6f\x5e\x99\xb5\x5d\x15\xf2\xd8\x93\xd3\x78\x12\xd1\xc4\x51\xae\xab\xd2\xcc\xd1\xc0\x3c\x89\x32\x16\x94\x09\xda\x0d\x1c\x4f\xad\xdb\x64\x66\xcf\xe1\xe2\x53\x4d\x08\x09\x10\xe5\xaa\x86\x3f\xdd\x02\x76\x01\xd3\x17\xfe\x9d\x9c\x3f\x21\x80\x6e\x23\x47\xf9\xf1\x58\x55\xe1\xb5\x4a\x08\x37\x78\xab\xe1\x90\xb7\x9b\xaa\x98\xd1\x39\x47\xcb\x62\x42\xd2\x44\x43\xbf\xc6\x86\x62\x73\xc2\x2c\x83\x01\x44\x7c\x27\x5b\xfd\x72\x39\xa1\x98\x6c\x7e\x09\x17\x34\xd0\xef\x02\x3d\x0c\x95\xe0\x87\xd7\x39\x11\xb1\xc6\x2a\xf8\xf6\x6a\xb9\x0d\xbf\x26\x54\x8c\xd5\x81\x50\x60\x1d\xe3\xb6\xbe\xe4\x86\x76\x1f\x75\xf4\xf5\xc6\x7b\x52\xdc\x4e\x14\x0e\xc2\x20\xe0\x8a\x8e\x2a\x0d\x67\xfc\xb8\x73\xd4\x43\x92\x64\x0c\x23\xbd\xdb\xea\xf9\xf7\x11\x79\xe6\xcc\x4f\xf6\xd2\x9c\x0f\x18\xe8\xf0\xaf\xe7\x13\xf1\x24\x55\x1a\xfc\xfb\xb5\xac\xc1\xe4\xad\xcb\x0f\xce\x65\x4d\xbb\x88\xcf\xd5\xd6\x0c\xfc\xf7\x04\x41\xb3\x82\x27\x19\x61\x4e\x34\xb4\x96\x9f\x7b\xc2\xff\x8d\x42\x4f\x22\x49\x82\xaf\xfa\x68\x73\xca\xc2\x8f\x48\xe1\x24\x91\x91\x69\xb8\xd5\x2f\xd0\xc7\x62\x89\x94\x14\x4f\xeb\xb9\x2a\x4c\x70\x56\x9e\xee\xcc\x89\x94\x3c\x75\xb2\x4b\x6f\xc3\xc7\x74\x86\xcb\xf5\x77\x79\x3c\x7e\x5c\xc1\x04\x35\x94\x28\x92\x46\xc9\x58\x6c\xbf\xfb\xdf\xf1\x6a\x79\x79\x8f\x4e\x14\x01\x0f\x6d\x76\x34\xf3\x39\x5e\x24\x51\xdc\xb5\x4b\x6d\x6e\xe4\x23\xd4\xb8\x5e\xf5\xc7\x92\x34\x0e\x4a\xc0\x17\x6a\xa0\x89\x4a\x0d\xb6\x6b\x11\x49\xac\x1b\x59\x4c\xe8\x75\x3c\x51\x2a\x46\x8b\x04\x95\x4f\xa9\x59\x3c\xd1\x91\xb5\xa4\xd7\x5d\x71\x9f\x7a\x28\x61\x90\xb0\xe6\x89\x49\x09\x8f\x46\x48\x97\x71\x14\x3f\xfd\x32\xa3\x55\x0c\xfd\xc2\xd2\x40\xfd\x26\xfb\xbc\xe3\xb2\x80\x22\x4f\x20\x72\x3a\x72\x48\x82\x2d\xaa\xf7\xdd\x40\x56\x92\xc5\xf8\x5d\xb4\x11\xc7\xad\xfd\x00\x75\x97\xd1\x85\x3c\x34\x9c\xa5\x8d\x49\xe4\x9c\x7c\x1e\xf1\x26\x3c\x3a\x26\xe1\x24\x3c\x48\x2c\x4d\x1c\x35\xb2\x6a\x65\xe1\x4a\x73\x0f\x16\xdb\x4c\xa1\xf2\x8a\x6d\x89\xea\xd4\x8e\xec\xeb\x79\x62\x33\x19\x39\x3b\xa6\x0f\xb4\x03\xf6\x7f\x4f\x23\xea\x34\xbb\x50\x97\x6a\x7d\xff\x6d\x7f\xf5\x74\x7b\xbb\xed\x8f\x72\x83\xd3\x08\xdd\x68\xa7\x2f\x4c\x1a\xa5\x71\xac\x43\x5b\xb3\x70\x32\x1c\x87\xcf\xd2\xfc\x34\xd2\x4e\xb7\xf9\x80\xcd\x09\xdf\x1a\xf2\xc7\x62\x21\x31\x19\xd0\x23\x70\x57\xaf\xd8\xcd\xd3\x38\x61\xd8\x33\xef\x76\x6c\x2f\x65\xf9\xeb\x7e\x54\x1a\xa7\x2e\xc6\x47\xe5\x9f\x77\xc8\x77\xd5\xcd\x0c\xb0\x96\x12\x42\xbc\x0d\x9a\xe3\xb4\xf8\xc7\x36\xea\xca\xa7\x24\x4b\x30\x02\xcf\xcb\xa6\xcd\xdb\x93\x8b\x14\x27\x33\x26\xa5\x71\x84\x12\x10\x4e\x29\x6e\xdf\x7c\xa6\x65\xc7\x53\xca\xa8\xcd\x42\x4b\xd3\x40\x7d\x0d\xb2\xd8\x1e\xcf\x92\xde\x94\x6a\x57\xcd\x40\xb8\xc3\x44\x78\x96\xa7\x2c\xcd\x98\x6f\xe1\xaf\x9c\x23\xe6\x79\x98\x93\x32\xab\x9c\xbc\x0f\x56\x14\xb6\xdf\x17\x9b\xd5\xfe\xe1\x66\xbf\x5b\x2d\xee\xc2\xf7\x70\x99\x26\xae\x62\xd2\x25\x23\x98\xdb\xca\x21\x25\x4f\x45\x9a\x61\x9c\xd8\x6d\x68\x77\x79\xd9\x4e\xfb\xf0\xd3\x5f\x4b\x52\x83\x76\x2b\x3e\x2d\x5a\x2f\x1f\xdc\x3b\x3c\x41\x81\xa5\x49\x96\x69\xd7\x43\xd1\x55\x6d\xce\x40\x40\xd3\xaf\x4c\x23\x2a\xbc\xce\x59\x40\xe4\x6c\x90\xc8\x06\x6b\x3d\xbf\xd8\x94\x26\x5e\xaa\x23\x84\x01\x43\xb4\x30\x7d\xb9\xd3\x94\xa6\xb8\xf3\x63\xab\xef\x36\x6f\x2e\x02\xbf\x3e\x5b\xe3\x87\xf7\x38\xcd\x32\x2a\xc7\xc0\x39\x0f\x70\xf1\x2d\xa7\xc9\xba\x95\x4a\x2a\x82\xcd\xf1\x7a\xb7\x43\x51\xd2\x6d\x3e\xa5\x5d\xf2\x54\x32\x27\xac\xeb\xc1\x4c\xbb\x6a\xe1\x25\xf8\x67\x4c\xe5\x51\x01\x20\x95\x59\x46\x93\xb1\xd4\xf9\x19\x87\x2b\x26\x3e\xea\x48\x55\x4c\x54\xe6\x04\xe8\x46\x2f\x96\xa2\xd6\x17\x84\x4a\x59\xec\xed\xa9\x34\xb5\xcc\xfb\xce\x4d\xaa\x84\x03\x0d\x0d\x86\x1b\x33\xce\xe8\xec\xa1\x69\xa6\x50\x3f\x1c\xab\xe2\xce\x82\x34\x57\x05\x8c\x94\x16\x77\xd5\x76\x2c\xcf\x76\x39\xd2\x9a\x7f\x2b\x10\xac\xf0\x6f\x8f\xd5\xeb\xd0\xae\x98\xbc\xea\x26\x4e\x48\x28\x7f\x61\x35\x7e\x16\x97\xfb\x61\x10\x45\x48\x42\xdb\x56\x63\x76\x10\x4f\x2d\x15\x84\x4d\xec\x62\x7e\xe4\xe5\x48\xb8\x8a\xa7\xd6\x00\x62\x1d\x4a\x78\x7f\xcc\xcb\x12\xcc\xe2\x78\x5c\x97\x4d\x3b\xc9\x6e\x26\x4f\x34\x8b\x12\x92\x75\x53\x6d\x29\x8f\xed\xa9\x86\xdd\x0b\xdc\x14\x72\x22\x10\xcd\xb3\xc8\x30\x15\xda\x7e\x23\x03\x1b\x9e\x45\x60\x11\xd9\xe7\x6a\x5e\x5f\x56\xb0\xa7\xbf\x1a\x47\x86\xf5\xd6\x9f\x8f\x75\x7e\x90\x75\x78\x01\x33\xc2\xd3\xd8\x39\xf6\x99\x6a\x6f\x40\x9a\x22\x2f\xa1\x3f\x98\x99\xb1\x97\xcd\x3d\xfc\x9c\x76\xcb\x32\x62\xd8\x70\x93\xee\x2b\xd3\xa3\xbd\x32\x1a\xf5\xa2\x3b\x8b\x06\x7b\xcb\xfa\xb5\x79\x6a\xa0\x76\xe4\xd3\xcb\xb4\x25\x9e\x51\xe2\x94\xbc\xa4\x31\x08\x45\x31\xb3\x9c\xaf\x4b\x38\x11\x0e\xf6\x3f\xb8\x8a\x85\x5f\x63\x59\x1a\xb8\x32\x5d\x1e\x58\xbf\x92\xe9\x3d\x65\x59\xa6\xc4\x04\x7b\x56\xd9\xbc\xbf\x0a\xce\xdd\x65\x02\x52\x41\xcf\x84\xda\xbf\x2c\x51\x74\xef\x3d\x06\xf9\x5e\x36\x72\xae\x64\xc4\x33\x21\x34\x0d\xe4\x22\x68\x5f\xf6\x6a\x9a\x5c\x86\x51\x99\x92\x83\x62\x82\x19\xd0\x73\xd3\x61\x49\x92\xa0\x9a\xd9\xfa\xad\xaa\x51\xfb\x36\x5c\x43\x92\x3a\xed\xc6\xa6\xed\xe2\x6a\x2d\xe7\x9d\x87\x4f\x45\x81\x79\x96\x46\x29\x16\x07\x3c\x5c\x77\x07\x3f\xfb\x6f\xed\x36\xc3\xee\x10\x2e\x50\xd5\xfb\x08\x4a\x32\x33\xf0\xe8\x86\x5a\x64\x6c\x7e\x83\xf6\xb6\x6a\x5b\xf0\x34\xba\x34\x1c\x4e\x32\xc7\x69\xeb\x82\x6c\xc7\x7b\x86\xa2\xe8\xf5\x00\x79\x96\x7a\x59\xe9\xa3\xef\xa1\x36\x1b\x59\xbe\x86\x83\x59\xa2\x79\x3c\x16\x49\x0e\x71\xfd\xc5\x35\x27\xcb\xa4\x72\xba\x86\xa1\x14\x31\x51\x16\xf1\x83\x64\x6c\x91\x67\xf9\x7d\x08\x90\x33\xa9\x59\xea\x28\x81\xcd\xcb\x6c\xb8\xa2\x56\x0e\x0a\x95\xdb\x57\x0f\x7f\x99\x1b\xcd\xf1\x4c\x09\x57\xcd\xed\xb2\x0b\xb7\xde\xf5\x7e\x5c\xf3\xaf\x4c\x9d\x69\x53\xaf\x1d\xf0\x70\x04\xf4\x79\x9f\x3d\x74\x4d\x04\xaa\x6d\x75\x4b\x68\xcf\x98\x98\x0d\x91\x71\x46\x46\xf2\xbc\xa7\xe3\x59\x6a\x9f\x69\xc5\x83\x1c\x79\xf7\xc9\x7d\x3d\x13\xa2\xf3\xc3\x0c\x8f\xb1\x51\xf8\x83\x6e\xf5\x4b\x55\x15\x5f\x14\x5b\x67\x57\x0e\x2c\x61\xbd\xc3\xd6\xba\x69\x4e\xdd\x3c\xbf\x95\x4d\x7b\x57\x99\xdc\xe6\x7d\x1c\x91\x41\x16\xd9\x3e\x5a\x1d\x49\x8e\x2c\xcf\xbb\xdb\x99\x15\x4e\xaf\x30\xf8\xf6\xdd\xc9\x9f\xf3\x02\xba\x8c\x62\x1e\xf1\x01\x23\xee\x1b\x1d\x8e\x7c\x1f\x86\xd0\x4c\xc9\x91\x97\xda\x08\x62\xf7\xcb\x37\x44\x46\x49\x8a\x6a\x11\x2f\xb2\x71\x24\xd1\xe9\x39\xca\x28\x25\x24\xee\x35\x15\xcf\x1c\x58\xb8\x8c\xac\xf3\xf2\x75\x38\x68\x17\xec\x9a\xe1\x60\xe6\x0d\x34\x0f\xd5\xdb\x05\x47\x45\x2e\x63\x92\x25\x32\x7c\xdc\x0b\xac\x39\x3a\xd2\xf0\x2d\x31\x75\x62\x43\xc7\xaa\xf8\x40\x4f\x95\xdc\x6b\xe0\x8d\x92\x42\x19\xeb\x98\x79\x14\xda\xee\xa5\x06\xf8\x21\x3f\x6e\xbb\xf5\xfe\x42\xe0\x3c\xfc\x3a\x21\x3c\x76\xb5\xcf\xee\x17\x67\x97\x4e\xa8\xf3\x19\x6d\xa0\xdd\x07\x05\x47\x79\x09\x41\x2e\x09\xd5\xd4\x19\x2e\x1d\xf2\x01\xeb\x19\x0e\x1a\x47\x46\x58\xeb\x0a\x15\x98\x46\x8d\x07\x49\x95\x15\xd0\x1b\x21\x57\xa7\xd6\x2b\xe4\x83\x19\xe9\x04\x73\x49\x81\x20\xc7\x30\x6f\xfc\x45\x3b\xa0\xd7\xec\x2c\x58\x22\xb8\x07\x14\x75\x11\xec\xe0\x4f\x13\x8e\xdb\x44\x78\x55\xa6\x2e\x2a\xb9\x3f\x1d\xc2\x11\x1e\x49\x14\x9d\x38\x54\xa5\xac\x83\x72\x27\x97\x3c\x76\x42\x8d\x23\xd0\xab\x07\x39\x0d\x23\x84\x70\x3c\x01\x94\x5b\x58\xed\xbe\x5f\x0e\x95\x24\x67\x31\x2a\x79\xec\x8f\x4e\xd8\x66\x57\x79\x05\xe3\x91\x8d\x1a\x97\xb8\x4a\x61\xe2\xa3\x11\xa1\x32\x4e\xe2\x25\x37\x4e\x71\xf0\x03\xce\xfc\xe2\xa6\xbf\x25\x6c\x26\xfb\x35\xc5\x2f\xb9\xbf\x7d\xed\xb6\x74\x39\xba\x90\x49\x94\x0a\xbf\xf7\x3a\x16\x95\x03\x8d\xcc\x46\xa5\x9a\xe3\xb5\xbd\xc8\x66\x53\xcd\xa2\x3d\xbf\x47\x48\x29\x5d\x1d\xf6\x4a\xb6\xf2\x75\x72\x59\x8a\x12\xe9\x7e\x43\x9f\xea\xbc\xfd\x98\xcd\x1e\x43\x5d\x95\x60\x59\x95\x25\xe8\x91\x93\x2d\x97\xc6\x28\xa4\xb0\xe3\x8c\x39\xcf\xd3\xa4\xb1\xae\x11\x36\x54\x3d\xce\xab\x40\x12\x22\x85\x29\x1a\xfc\x74\x1a\x2c\x70\x4e\xb4\xfd\xf5\x7d\x02\x21\x30\x3d\xb8\xcb\x0b\x68\xd0\xf8\xb7\xce\xf5\x85\xb8\x39\xfc\x1b\x30\x86\xd2\x26\x51\x24\x42\x01\xb5\x6e\xda\xd0\x1d\x38\xc7\x4a\x4b\xab\xa3\x89\x4e\xac\x23\x77\x85\xc9\xad\xe2\x98\x27\xbe\x4c\x77\x5b\xe9\xd7\x19\x9c\x68\x3a\x43\x54\x9c\x2a\xc4\xc6\xcd\x03\xb6\x8b\x61\x90\x8a\x81\x59\xdf\xdc\x73\x88\xc6\xcf\xa0\x0c\xf3\x0a\xde\x78\xa1\x55\xb1\x75\xfa\x77\x83\x0e\x08\xd4\x6e\x53\x1c\x1a\x3a\x8a\xc4\x31\x32\x87\xd0\xee\x6b\x91\xd7\xcb\x5a\x36\x2f\x93\x78\x4f\x11\xee\x98\xbc\x57\x79\xf5\x5c\x4b\x6b\xf3\xfe\xb3\x26\xc6\x80\x06\x67\xd7\xcd\xc8\x69\xcc\x1f\xa7\xcc\x62\x2e\xb8\xef\xe5\xf9\xa7\x77\x58\x51\xce\x11\x76\xe4\xd8\x01\x1f\xd7\x50\xc0\xf3\x5c\x62\x84\x2b\xaa\x33\x14\x8d\xd8\xe5\xd5\x78\x1e\x2b\x6a\x5c\xd9\xb5\x19\x90\x1b\x98\x01\x9d\xc5\x06\x8a\xa9\x14\xdf\x97\x5e\xcd\x74\x7b\x52\x9f\x3c\x28\x1e\xf1\x60\x08\xec\xb7\x96\x87\x93\xd7\xb4\x85\x7a\x9c\xb1\x28\x4e\x13\xe3\xd8\x0d\x85\x7d\xe8\x4f\x8a\x1b\x8e\xc2\x60\xce\xd8\x44\x36\x67\x8a\xc6\x7e\x9c\x48\x2d\x24\x23\xe1\x9a\x5d\xb5\x6a\x5f\xd6\xe5\x71\xa6\xf4\x14\x46\xcb\x08\x2f\x40\xcb\xf2\x3a\x6f\xd4\xa9\x6e\xc0\x7b\x6f\xe0\xe5\xf6\x73\x32\x89\xe3\x34\x09\x02\x48\x37\x75\x75\x58\x9e\xe3\xca\x54\xa2\x29\x46\x16\x2e\x53\x3d\x82\xf9\xc2\x4e\xe6\xb3\xd7\x70\xfa\x3a\xaa\x04\x5c\xbc\xf9\x0d\xe5\x8a\xf3\xc3\xe9\x70\xe5\x02\xf4\xbe\x38\xa9\x12\x1b\x61\x25\x68\x1f\x88\xef\x5f\x70\x63\x54\x9a\x45\x46\x8c\xd4\x24\xdc\xec\xf1\x45\xb7\x91\x44\x06\x4e\xba\x8b\x2b\x84\x4a\xb5\x4b\xad\x9b\xfc\xb9\x94\xc5\x95\xd4\xaf\xa7\xe3\x8f\x99\x2d\x48\x18\x6a\x0d\xd8\x10\x64\x1e\x8e\x2d\xec\xc9\x34\xe5\x51\x99\x00\x14\x67\x71\x75\xc2\x55\x69\xc6\x84\xe7\x70\x7b\x42\x49\x5c\x65\x4a\x89\x74\xf8\x3e\x0f\x2a\xbf\x48\x05\x53\x52\x30\x24\x1f\xdc\x56\xcf\x37\x55\x3d\xaa\xbc\x5e\x6e\x0e\x28\x69\x9c\xda\x2e\x2e\x36\x3b\x90\x61\x47\x55\x2a\xa1\xf8\xb6\xf7\xe0\xdd\x5f\x3d\xc9\x4f\x9e\xe8\xec\x36\xaa\xd4\x78\x11\x02\xac\x37\xc9\xc1\x45\xec\x92\x6a\x43\xf8\x50\x66\xb5\xd7\x17\xfc\x5e\x15\xe7\xf8\x39\xa5\x14\xb0\xb1\xe3\xc9\x60\xa7\x7e\x09\x6a\xa9\x34\x11\x09\xed\x83\xba\xe9\xa6\xa3\x34\x55\x28\xa0\x88\x8c\xab\xc3\x79\xd0\xab\x74\x02\xd8\xc1\x39\xca\x8f\xd0\x8a\x0e\x37\x4d\xa7\x3c\xf6\x0c\x25\x07\x58\xfe\x64\x3e\xea\x8c\x63\x8d\xb2\x5f\x4a\xa7\x26\x7c\x5c\x19\x19\x67\x63\xdd\xb0\xaf\x01\x2c\xca\xc8\x04\xc1\x3d\x7b\xaf\x68\x73\x6a\x3e\xf1\x46\xe0\xca\x68\x99\x39\xb8\xf5\xee\xe3\xf8\x19\x2f\x5a\x01\xe7\xd2\x99\xe8\x75\xdf\xd8\x38\xa7\x97\x3d\x89\xf6\x37\xa0\xea\xd3\x50\xa2\x50\x90\x70\x46\x7c\x9b\xf7\xf6\x16\xe4\xf3\xb0\xa0\x41\x26\xb1\x6f\x76\x0f\xef\xd7\x20\x8b\xff\xe7\x4e\xcc\xa5\x6a\xde\x64\x47\xd2\x11\x49\xb0\xd1\xba\x58\x86\x62\x83\x8e\x52\xeb\xbd\x22\x03\x9e\x63\xde\x88\xd4\x51\xc6\xb1\x1e\x8b\x15\x97\x07\xfb\xf4\xb4\xbe\xfe\x6d\xfa\xb5\x9a\x5a\x31\x88\x30\x7c\x93\x07\x70\xd4\xc1\xc9\x44\xd1\x91\x66\x81\xd2\x85\xc9\x4f\x77\x3f\xcf\x7f\xcc\x08\xdc\xf4\xc1\xe4\x2d\x26\xcd\x5f\xf6\x6b\x74\x04\x4e\xff\x21\x4c\xe4\x5e\x35\x7a\xd1\x56\x87\x5c\xcf\xbe\x9c\xc4\x80\x1c\x47\x55\x9c\xe0\x21\x2c\xda\x9a\x08\x83\xa0\xb5\xf6\x25\xaf\xcd\x2e\x87\x3a\xd0\xc6\x9f\x8e\x47\xa8\xf1\x54\xc7\x6d\x1e\x4d\x4c\x8a\x2f\x8f\xa9\xf3\x37\x58\xca\x7a\x7a\x33\x68\x44\xb1\x0b\x70\xfc\xa8\xe5\xe1\x02\x92\x6a\x7a\x4f\x68\x94\xa1\x08\xeb\xa9\x9c\xca\xa6\x4c\x27\xa1\xa6\x0a\xb0\xb5\x71\x1c\xb4\xce\x1d\x42\x66\x7a\x37\xa8\xd5\x88\xce\xdb\x37\xd0\xa2\x1c\xf4\x55\xe8\x66\x5f\x9e\xb6\x9a\x51\x83\x25\x02\x54\xb6\x23\xd3\xce\xbd\x66\x09\xc3\xdc\xff\x8f\xaa\x85\x87\xf2\xee\x63\x07\x4d\x21\x97\x55\x51\xf5\x77\x82\x01\xc7\xdf\x5b\xfc\xb9\x5e\x2c\x1f\xd6\xf7\x9f\x9c\x3d\xe7\xce\xb1\xeb\xc7\xbf\xba\x59\x3f\x8e\x21\x34\x97\x04\x39\x58\x2f\xb2\xb0\x17\xa3\x40\xcd\xc1\x64\x83\xc7\x77\x6f\xf1\x77\xb1\x24\xa9\x85\x95\xd8\xf0\x7f\x85\x8f\x07\x3b\x5f\xc9\xfd\x98\x44\x12\xea\x65\x21\xab\xab\x53\x78\x31\x75\xa2\xa2\x60\x63\xe3\x1e\xc5\x2e\xe0\x8f\x74\x6a\x18\x3a\x6e\x62\x83\xf4\x9c\x7d\x7c\xa1\x7c\xae\x33\xe2\x82\xf8\xb7\x1c\xde\x31\x85\xee\xe5\x97\xcf\xdc\xd3\xb9\xce\xa8\x03\x11\x77\x81\x54\x0e\xf5\x46\xb6\xe7\xa8\xc4\x4f\xe6\x7f\x26\xf8\x48\x50\x05\x39\x6c\xe1\x48\xc2\x10\xfb\x5f\xf6\x92\x0e\xdf\x65\xf3\x02\xc3\x8f\x5a\x8e\xb7\xa1\xd1\xb2\x00\x13\xfa\x9c\x8f\x53\xfe\x81\xd6\x04\xf0\xd4\xae\x17\xbb\xd5\x7e\xbd\x7c\xd8\x8f\xcc\x5d\xb8\xd6\x09\x43\xec\x8f\x3a\x61\xb0\xe3\xf9\xd9\xb3\x97\x4e\x83\x74\xa6\x87\x07\xa8\x9f\xa1\xd4\x1f\xf3\x28\x60\x76\x49\xda\xa6\xf8\x92\x7a\x96\xd5\x27\x73\xca\x24\x14\x3d\x14\x1e\x8e\xa3\x04\x49\x9b\x44\xd8\xc1\xb6\xc1\x2d\x06\xe1\x18\x28\xa6\xe8\xc4\x01\xb3\xc5\xe6\xa5\x3b\x6c\x62\x12\xe1\xda\xe8\xea\xca\x93\x94\xcc\x10\x22\x10\x1b\x77\xf7\xf1\xd4\x40\x7d\x3f\x40\xdb\xc2\x71\xe5\x54\x2c\xfc\x76\x32\xb6\x63\xbd\x98\x35\x04\x1a\xcd\x68\xc6\x18\x9a\x02\x6a\x35\x1e\xf2\xb2\x1d\xf4\x10\xc2\xc1\x8c\x63\xf3\xe4\xcf\xeb\xc9\x9f\x59\x62\x31\x32\x1f\x35\xdc\xd3\x0b\x60\x30\xc3\x6c\x62\x7c\xbd\xf2\x20\xeb\x8f\x6f\x72\xec\x50\xc2\x0d\x4f\x04\x36\x48\x3d\x78\xba\x99\x2a\xf4\x76\x11\x75\x8c\xc9\xd3\xb6\x0b\xe5\xda\x53\x0d\x1b\x78\xee\x8f\x59\x81\x80\xf2\x0a\x3d\xe9\x64\xb1\xcd\xfb\x29\x68\x04\xa3\x78\x49\x20\xeb\x72\xc4\x93\x32\x22\x89\xb1\xca\x8c\xef\xd3\x7c\x07\x30\x22\x4b\x5c\x49\xa0\xae\x2a\xfb\x60\x37\x20\xcd\xb4\x6a\xf7\xcb\xc6\xa8\x49\x32\x8a\xb9\xb7\x09\x52\x76\x33\x10\xd3\x27\xc1\xc1\x74\x8d\x1e\x77\xa2\x4c\xca\x14\x62\x24\xf6\x35\xa0\xde\xe7\x65\xa6\x81\x49\x99\xc9\xb2\xbe\x5c\x5a\xd5\x8f\xa7\xba\x37\x7b\xe1\x26\xcd\x9c\x21\x67\xf3\x71\x50\x3d\xb0\xc6\xa4\xd6\xa1\xba\x9a\xd3\xe1\xbb\xac\xcd\x52\x1e\xd7\xcb\x07\xe4\xa2\xf7\xcf\x2f\x93\x11\xfe\x3a\xfc\x74\x14\xfe\x41\x46\xa6\xf7\x71\xe9\x87\x6a\x1d\xa7\xc1\x3e\xc9\x31\xf3\x2e\xbf\x41\x46\x45\x14\x5f\xde\xd7\xfa\xe3\xd8\x42\x5f\x1a\x32\x4a\x8a\x60\x5d\xf9\x1d\x64\xd1\xbe\xdc\x54\xf5\xb2\xf2\x7c\x93\xb0\x8a\x1a\x05\xe0\x9c\xdf\x72\xfb\x0b\xf2\xb2\xd1\x52\x63\xef\x6a\xfd\x6d\xb7\xfd\x76\x1d\x7e\xc6\xb0\x14\xf7\x0e\xff\x3a\x36\x8f\x50\x8f\xd1\xa6\xc6\x28\x2a\x7d\xa1\xe0\x7f\xe0\x1d\x8a\x4f\xee\x38\x44\x91\x24\xbd\x81\x0e\xd4\x6f\x60\xae\xb1\x85\x87\x4b\x34\x36\x8e\xe7\x88\x9c\xd9\x17\xc8\x08\xeb\xd1\xba\x00\x59\x2e\xf4\xa4\xac\x12\x02\x6a\x88\x78\x1c\x47\x17\x9f\x91\xd7\x7f\xe4\x10\x0b\x40\x72\x0d\xea\x51\xa2\x94\x84\xb5\xfd\xa3\x87\x38\xb3\x41\x37\xe7\x74\xfc\x7f\x26\x53\xfd\xff\xfc\xf7\x0b\x27\x7b\x0e\xb1\xc9\x6c\x32\x08\xc9\x35\x37\x55\x3d\x01\x37\xf8\x61\x44\x66\x28\xca\x86\xb9\xe4\xa6\xbb\xa9\x63\x4c\x74\x18\xa4\x13\xcc\x0f\x8e\x7d\x93\x78\xbd\x7c\xf0\x2f\x5f\x35\xc7\xd0\x01\xcd\x04\x16\xa0\xfa\x86\x86\xcf\x2e\xc7\x74\x0d\xa0\xda\xe1\x48\xda\x3e\x39\xdf\xbe\xcb\x23\x26\xe8\x5f\x87\x84\x40\xb5\xc1\x08\xf2\x58\xc3\x68\xaf\xbe\x3c\x96\xe9\x18\xf7\x9a\x17\xd9\x2d\x7a\x5d\xf0\x0a\xc6\xb1\x39\xa6\xb1\x2b\x30\xc3\x10\x17\x74\xfd\x74\xff\x6d\xf5\x70\x7f\x99\x66\x0f\x3c\x4e\x70\xa1\x74\x65\xef\x19\x84\x7f\x7a\x13\xb8\x0f\x10\x4c\xa5\x4f\x48\xb2\x1c\x77\x47\x41\x08\xa7\xe8\x9d\xa3\x3c\x9c\x23\x7c\xa0\x5e\x5f\x18\x90\x24\x32\xe2\x81\x4e\xd9\xc2\x61\x8b\x9a\xf9\x63\xf4\x3c\x24\x8a\xa2\xfa\x43\x97\x31\x15\x83\x9c\x28\x87\x34\xa1\x29\x1f\x63\xdf\x37\x60\xfb\x63\x52\x38\x73\xf6\xea\x8a\x92\xdf\xce\xd6\x41\x48\x8d\x60\x6c\x10\x0d\x72\x34\xff\xe9\x2a\x33\x5e\x89\x21\xb5\x34\x94\x59\x10\xe4\x1f\x7e\x27\x8b\x63\xdc\x1a\x2c\xc0\xd5\xc0\xa4\x04\x95\x3a\x97\xa2\x45\xdb\xc2\xe1\xf8\x49\x31\x0f\x34\x18\x24\xb3\xfe\xeb\x97\xd0\x79\xd0\x60\x5d\x45\x74\x0b\xed\xe6\x84\x2b\xcd\x08\xad\x04\x26\xe5\x49\x40\x6c\x3d\xd6\x60\xc0\xe6\x25\x98\x09\xba\x01\x20\x76\xfd\x90\xbc\x59\x62\x90\x55\x0c\x4f\x01\x98\x63\x53\x35\x80\x4e\x4f\x5d\xc8\x70\x03\xae\x22\xc4\xa7\x61\x2c\x40\xaa\xa4\xaf\xfb\xaf\xcb\x33\x94\x60\x18\xa4\x08\xf3\x1e\x08\xa8\xe3\x82\xc2\x65\x7d\x88\x02\x36\x8b\x93\x74\xa4\xc9\x8f\x16\x0f\x5f\x69\xec\xd8\x48\xa4\x4c\xf5\x86\x28\xaf\xf2\x19\xba\xe0\x65\xac\xf7\x16\x06\xda\x18\xa3\xdf\x2e\x73\xb8\xaa\x73\xf3\x0c\x53\x4a\xe4\x74\xf6\xda\x98\x08\x7c\x3b\x7d\xfb\x77\x57\xf5\x31\x5d\x18\x90\x28\xcc\x65\x83\x5c\x50\xdf\xdb\xb5\x24\x82\x14\x7d\xf9\x16\xf7\xd7\xcb\xcd\xff\x3e\xee\xbe\x7a\x7e\x96\x10\x16\x79\xdc\xc3\xfa\x20\x9f\xe1\x1c\x09\x64\x49\x4a\x1c\xc0\x58\x16\xe0\x50\x4e\xbe\x94\xe0\x8f\xd3\x94\x28\x3d\x04\x03\xae\x91\x76\x71\x39\xb0\x2c\x01\x06\xa1\xf3\xfe\x7c\x2a\x50\xa0\x1c\x7b\x64\xb7\xf0\x06\xc5\xa5\x3a\xbf\xe5\x49\x8a\x60\xfa\x9b\xf5\xd5\x62\xfb\x7b\xf8\x51\x9e\x59\x04\xbb\xbe\x55\x73\x5b\x86\xe9\xf5\x09\x62\x55\x36\xaa\x5b\x5c\xc3\x5b\xae\x61\xb4\x01\x7d\xea\xaf\xc0\x6d\xca\x12\x3b\x16\x0e\xdf\x55\x17\x4d\x1a\xce\x2f\x33\x63\x14\xf7\xee\xdd\x8b\x2c\x5f\x67\xfc\x42\x2b\x13\x16\x2c\xe4\xf7\xb9\xae\xca\xfc\xbf\xfb\x76\x8a\x0c\x9c\x4e\x05\x65\xb4\xf1\xe2\x1c\x2f\x93\x2f\x52\x56\xf6\x5e\x71\x57\x27\x8c\x00\x9f\xca\xc1\xbc\x24\xbc\x44\x56\x0b\x8a\x29\xcc\xe3\xed\xe2\x7f\x57\x1b\x97\x60\xec\x1f\x57\x9b\xf5\xc3\xf5\xb6\x1f\x93\x64\x58\xa8\x0e\x68\xa4\x0d\x38\x93\x10\xe8\xa5\x9a\x7d\xea\xf1\x89\xd6\x6e\xf8\x1a\x15\x45\xbe\x63\xf8\x25\xce\xc7\x1a\x23\x90\xdd\xf3\x22\x9b\xbe\x3f\x37\x4f\x39\xfb\xe7\x00\x11\xa0\xc6\x98\x0b\xfe\xaf\x67\xd3\x13\x48\x82\x88\x71\x54\xb8\x5b\xd6\xf9\xb1\xad\xc2\x55\x01\x73\xa6\x63\x8e\x87\xb1\x84\x7a\xa6\x19\x3c\xc1\x10\xcf\xce\x10\x38\xa1\x5e\xc4\x66\x7b\x52\x65\x65\xfc\x2a\x8c\x1f\x21\xb3\x20\xc7\x82\x48\x45\x8f\x73\x5a\xdb\xa5\x2c\x9f\x1a\xf8\x0a\xf0\x69\x41\x58\xc4\x2a\xf7\x0d\xc8\x10\x5d\xcd\x56\x18\x4b\x18\xa2\xdd\xb7\x50\x14\x97\xbf\xf0\x93\x49\x68\xa9\xd6\x1e\x9b\x7f\xf7\xb1\x38\x1e\x7b\xd7\x32\x6e\xad\xb5\x51\x16\x0e\x5d\xc9\x52\x96\xd2\x1f\x13\x51\x44\x98\x75\xfd\x5b\x75\xfa\x70\x56\x64\x66\x38\x26\xb1\x8e\x5c\x75\xdb\xaf\x47\x8b\x0d\x36\x62\x97\xc2\x3f\x11\x45\xe0\x74\x09\x36\xab\xed\xea\xf6\x76\x7d\xff\x6d\xff\x74\x7f\xfb\xb0\xfc\x7d\xbf\x7c\x78\xba\xdf\xf5\xdf\x0c\x1a\xab\x64\xed\x79\xed\x75\x76\xb5\x7e\x56\x88\x28\xb2\xce\x79\x76\xa4\x47\x13\xf4\x86\xe7\x69\xc7\xac\x53\x39\x3d\xc1\x38\x12\xdc\x55\x36\xa5\x7e\x01\x73\x27\xff\xcf\x91\x75\xc6\x77\x53\x44\x31\x75\xb2\x47\xdd\xcb\x76\x8b\x0e\xe7\x8f\xaf\xcf\xdf\xd0\xec\x21\x5c\x43\x9c\x38\xf5\x0c\x59\xe4\xda\x59\x01\x34\xd7\x9f\xe4\x47\x9f\x95\xa6\xdd\xe4\x8a\xc2\x17\x1a\x08\x66\x43\xbb\x79\xf9\xed\x52\x34\x20\x22\x42\x23\xac\x49\x78\x78\xd1\x68\xeb\xfa\x12\xe0\x33\xbd\x21\x84\x3a\xbf\x84\x45\x61\xe5\xae\x7a\x9f\x7a\xa9\x75\x87\xb5\xb2\xfd\x8a\x5a\xfb\x8e\xf2\x78\x9f\x15\x11\x11\x06\xcb\x44\x57\x27\xfd\x0a\xed\xa2\x44\xfd\x78\xa7\x8e\x50\x1a\x2c\xd0\xa0\x04\xe6\x57\x13\x58\x44\x44\x39\xe2\xf2\xe2\xee\x6a\xd7\x93\x74\x44\x44\xc0\x99\x89\xf7\x22\x2a\xf0\x16\x0e\xd1\x94\xc9\x28\x38\xf5\x15\xa7\x49\x11\xa1\x3b\xea\x0c\x0d\xd6\xcb\x87\xfd\xb7\x5a\x1e\x5f\x20\x60\xd7\x44\xc4\x12\x07\xc0\x3d\xc8\x56\xbf\x04\x6e\xff\x55\x6e\x9a\xd9\x85\xb1\xcc\xf9\x40\x36\xce\x58\x68\xe3\x24\xb6\x7c\xe6\xf6\x8f\xc9\x3f\xe1\x13\x92\xf4\x11\x02\x6a\x7f\x1f\xb7\xf9\x5f\x30\x9b\x5d\xdc\xbf\xe4\x18\xbc\xb8\xd0\x7f\x14\xae\x8a\x48\xd0\x08\x81\x5c\x5d\x4e\x7a\x3d\x55\xb8\x10\x91\x10\x1a\xc3\x7d\xb4\x3a\x0c\x41\xf6\x67\xb5\x91\xf0\x99\x0c\x70\xfb\x5c\xae\x1f\x2f\xea\x42\xfa\x61\x09\x03\x94\x10\x94\xc6\x5c\x41\x09\x58\x81\xa8\x2f\xf3\xd8\x44\x94\x08\xd7\x69\x7d\x1f\xa4\x54\x2f\x2e\x55\x97\x99\x8a\x22\x4a\xd2\x44\x92\xde\xf7\xbe\x1a\xb9\x02\xf2\x28\x1a\xf2\xab\xee\x3f\xc2\x27\xa4\x73\xac\x43\x90\x33\xce\xd2\xdf\xce\x4a\x85\xc8\xbb\x4c\x83\xbf\xd4\x34\x88\xfb\xb2\x35\x24\xa2\x94\x32\xd4\xa7\x30\x0b\x63\x66\x92\xf3\x97\x5a\x01\xe1\x53\x09\x43\x04\xbe\xc3\x72\x5f\xe5\x66\xce\x8a\x09\xe3\xc0\x11\xa2\xae\x65\x2b\x7f\x74\xdb\x60\x97\x15\x5d\xe8\x9c\xcf\x7f\x72\x32\xa7\x33\xce\x10\xc6\xa2\x5f\x64\xfd\x0c\x0b\xf3\x06\x75\x9b\x37\x23\x5a\xd5\x24\x45\xfd\xac\xa1\x25\xa2\x2c\xa5\xd6\xeb\x0b\x2e\xea\x36\xb7\xf2\x4c\x8c\x60\x7a\xf2\x19\xb0\xd4\x75\xc6\xab\xf6\xa3\xc6\x5e\xdc\xb6\x87\x58\x89\x48\xb2\x54\xc2\x08\x57\x3c\x86\x5c\xff\xed\x24\x7b\xfa\x30\x24\x4f\x10\x8f\xbe\xfd\xbe\x20\x5c\x74\x11\x76\x6f\x8d\x3a\x3d\x35\x25\xa3\x74\xb0\xe4\xbc\xc9\x4b\x59\x62\xdd\xac\xad\x65\x0b\xcf\x1f\xe1\x14\x55\x28\xe5\x57\xef\xb3\x2d\xd5\xb7\x39\xbb\x21\xce\x97\xaa\x4b\x07\x2e\xca\x4e\x8b\xc8\x50\x8b\x69\x6b\x7e\x38\x16\xfb\x43\x5e\x5e\x42\x68\x0c\xe9\x9d\x88\x4c\xaa\x31\x58\xe9\x36\x90\x1b\x99\x17\x4e\xe3\xd3\x6d\x28\x1b\x70\xd2\x77\xf7\x55\x3b\x12\x18\x16\x91\xc9\x98\x0a\x90\x50\x8f\x59\xdb\x3f\x57\x21\x6b\x11\x11\x70\x67\x42\xe3\xf9\xf8\x88\x88\x1a\x82\xaa\x4b\xa5\xa3\x80\xed\xce\xc2\x3d\x83\xd4\x91\xa6\x71\xfb\xed\xbf\x57\xdb\xc8\xbb\x0c\xdf\xc3\xfb\x76\x6c\x68\xf8\xab\x67\xe7\xbf\xc1\x4a\xc7\xbf\x6b\x3e\xca\xf6\xe5\x1b\x94\x9f\x68\x01\x88\x38\x22\x06\xa1\x26\x58\x1b\xde\x5e\x6c\x92\x8a\x38\x82\x08\xbb\xce\xdf\xa0\x5d\x34\xaf\x18\xed\x7a\x21\xd7\xdf\xc2\x08\xeb\x44\x59\x8f\x6f\x30\x38\xe5\xfb\x63\x71\xe6\x5c\x89\xb6\xaf\x75\xae\xa6\xe5\x5f\x11\xc7\xca\x62\x2a\xbf\x7f\x86\xb6\x57\x76\xc9\x0b\x58\xa0\x78\x12\x25\xff\x18\xad\xe8\x31\x8d\xdd\x62\x3c\x12\xa1\x9d\x9e\x28\x25\x9c\x38\x99\x54\x2f\x4d\x16\xfe\xae\x34\xa2\x8b\xf2\x66\xf5\x56\x15\x6f\xc8\xbc\x40\xb2\xcf\x27\x16\x82\x22\x66\x89\xd3\x66\x0e\x3b\xf9\xca\xe1\x7d\xc3\x17\x32\x9d\x88\x5e\xf7\xa5\xd1\x93\xed\x2e\xe6\xa0\x51\xfb\xe4\x5d\x36\xdb\x93\xc3\x21\xfa\x23\x42\xb1\xd8\x51\xf7\xb4\xeb\xc4\x9c\xb7\xba\x44\x9c\x88\x04\xcb\x6d\x21\xf8\xc0\x16\xff\x45\x54\xbc\x88\x93\x54\x93\x68\x8a\x6a\x23\xe1\xc7\x12\xe3\xa0\xbc\x5a\xd6\xad\xfc\x99\x4f\x6e\x7b\x2a\x14\x62\xf5\xee\x16\x7f\x06\x47\xc6\xfd\xc3\xcd\xde\x9b\x03\xf5\xa3\xb2\x78\xa4\xcf\xb3\x6a\xb4\x3c\xc2\xb9\xce\xb7\x1f\x9c\x51\xe7\x25\x72\xc8\xcb\x9e\x79\x2c\x62\x19\x0b\xeb\xb6\x16\x5d\x95\x66\x4c\x07\xe9\x47\x64\x24\x94\x75\x07\xff\x84\x64\x7a\x47\x65\x46\x9c\xf4\xa5\x6c\x70\xda\x8d\x6a\xfc\x22\x56\xb1\xc0\x8a\x92\x34\x66\x5d\xee\x40\x1e\x7c\x6b\x70\xae\x03\x25\x62\x45\x9c\x9e\xbf\x6c\x9a\xfc\xb9\xbc\xea\xf6\xf9\x8f\x33\x04\x77\x58\x99\x63\x05\x14\x49\x00\xba\x2f\xee\x88\x58\x13\x96\x44\x7d\xe8\xbb\xa9\xaa\xb6\x7f\xb6\x3a\x93\x28\x80\xec\x56\xbf\x4f\x40\x28\x5f\xbf\xb6\xb1\xd6\x4e\xbe\x44\xe6\xb5\xa9\xab\xa3\xd7\x95\x9b\xb8\xae\x8b\x58\x9b\x14\x0b\x10\x2d\x1a\xff\x37\x37\x15\x4a\xf3\xac\x7e\xe2\x44\x9b\x7e\x9f\x89\x89\x17\x54\x73\x40\x9c\xbc\x7c\x9e\x4d\x64\x43\x9d\x52\x24\xb6\x95\x82\xae\x54\x73\x8d\x7d\xba\xe9\xcd\x33\x54\x07\x7e\xf0\xea\xa7\x2e\x4e\x66\xe8\xe8\x0e\x7b\x70\x0c\x99\x13\x0a\x41\xce\xd9\xd5\x09\x2d\xf5\x77\xef\x55\xf8\x39\x1b\x1b\x7c\x02\x9b\xc5\xfd\xb7\x95\xcb\x87\x69\x7f\xcc\x6a\xb7\xca\xc8\x16\xde\xe5\x47\x2f\x7d\x34\xc1\xc6\x0a\x12\xa9\x2c\x1b\x00\x1e\x2d\xd4\x68\xf3\x84\x2a\x3e\x77\xb2\x94\xcf\xf8\x72\x5f\x0e\x94\x48\xcc\x12\xca\xc3\x6b\x8b\x62\xbe\xb3\x59\x4c\xe2\x84\x21\x03\xc1\x63\xe3\x97\x85\x7c\x03\x67\xb2\x31\x1b\xa7\x34\xd6\x98\x83\x75\x8a\x6c\x5e\x03\x25\x69\xc6\xfa\xf9\x5b\x4f\x9e\xc4\xd6\x09\x58\x6d\xb1\xbd\xb7\xc8\xeb\xeb\xba\x3a\xfe\xe9\xec\x88\xa6\x23\x49\x6c\xb0\x89\x71\x38\x15\x7f\xce\x0e\xd1\x38\x75\x82\x69\x20\x0f\xbf\x03\x1c\x9d\xd8\x47\xb0\xc4\xf5\x83\x18\xb1\x41\x1e\xec\xa6\xae\xca\x76\xe5\x53\xb8\x31\x12\x5a\x10\x26\x5c\x06\xf4\xaf\x83\xd2\xfd\xdf\x80\xd3\xb1\xba\xec\x75\xe5\xad\x0c\x67\xa7\xc1\xa5\xd0\x4e\xa1\xbb\x36\x38\x73\x87\x1c\x82\x24\xca\xa2\x26\xce\x11\x23\x93\x55\x69\x9a\x45\xeb\xf8\xf0\xb3\x0d\x9e\xa4\x94\xc6\x51\x00\xd0\x9c\x9a\x30\x0d\x26\xc1\x66\x18\xca\xac\xf2\xee\x48\xf7\xf9\x5f\xaf\xdb\x91\xe9\xb2\x20\xa9\xd0\x78\xbf\x3c\x4f\x70\x52\xd1\x0d\x43\x32\x46\x92\x51\x0e\xbc\x81\xc6\xa3\x0a\x77\xd5\x38\x20\x20\x99\x91\xc8\xed\x9b\xf0\x1b\x04\x9b\x47\xb1\x93\xda\xd6\xa7\xa1\x1f\x91\xc2\x89\xb8\x68\xb4\x95\x6d\x27\x4b\x1e\x91\x52\xa1\xe2\x37\x4e\x81\x91\x5c\xb5\x20\x4a\x3a\x37\xe5\xff\x9e\x64\x2d\xcb\x36\x2f\xcf\xa0\x15\x17\x7e\x4b\x49\x67\x7a\xda\x2d\x13\x60\xd6\x0f\xbf\xaa\x2f\x0b\xa2\x33\x67\xee\xb9\x7d\xb8\x7d\xda\x8e\x37\x0f\xa2\x33\x8d\x90\xc1\x6e\xf3\xf8\xe3\x61\xb7\xba\x0e\xe2\x47\xab\xcd\xb2\x1f\x23\x39\x8a\x86\x2f\xab\x46\xf5\x93\xca\x44\x4e\xab\xb7\x7a\x83\x7a\x23\xf3\x06\xcc\x53\x89\x8c\xcb\x70\x5c\x02\x0f\xd4\xe6\x6e\x99\x9f\x76\x6b\x05\xb1\x16\x24\x84\xdd\xce\xa3\xd1\x6e\x5c\x63\xd7\x0f\xa1\x51\xb7\x52\x0d\x5e\x20\x55\x71\x46\xf1\x0a\xb7\x84\xc6\x3a\x46\x32\xfc\x8d\xeb\x0d\xdf\x00\xac\xcb\x49\x77\x5c\x50\x4a\x23\xea\xe1\x7b\xdb\x7a\x0a\xb9\x11\x94\x05\x33\x3c\x67\xf7\xe8\x03\xbf\xee\x7c\x7a\x1c\x5b\x18\x99\x08\x54\x78\x2a\xf2\xa6\xed\x16\xc4\xd1\xf9\x32\x70\x61\x2c\xae\x97\xfb\xca\xee\x9d\xc6\xcc\x84\x37\x2a\x28\x8f\x08\xe2\x94\x76\x8b\xfb\xeb\xa0\xbb\x27\x28\x67\x16\x31\xf0\x57\x0f\xf7\x4f\xdb\x00\x61\xf8\xb6\x8a\xbb\x6d\x7c\xdf\xed\xe3\xb4\x1f\x09\x12\x57\x2b\x44\x19\xef\xaa\x79\x32\x36\x79\x9b\x28\xb7\x1a\xe5\xf6\x3e\xe4\x4b\x55\x39\x01\xa6\xa7\x7a\xea\x87\x29\xa8\xa0\x11\x22\xbd\x57\xbb\x6f\x0f\xb7\xe3\xd6\x7d\x77\x88\xe0\x46\xf1\x58\x57\x4d\x77\x19\xed\x47\x7f\x84\x1b\x6c\xb1\x1c\xab\xaa\x98\x28\x49\x0a\x9a\x44\xd6\xa5\xa0\xf2\x0d\x1e\xf3\x69\x40\x45\x13\xe6\x68\x61\xbd\x19\xc6\x0f\x74\x0c\x45\x73\xbf\xcb\xf1\x1b\x4d\x63\xe7\xec\xe8\x1d\xa1\x5a\x38\xac\xfb\xbb\x99\x12\x8b\x25\xfe\x67\x79\x08\x80\xbb\x61\x07\xa3\x29\xd5\x21\xf7\x38\x77\x46\x4d\xc3\x20\x21\x9d\x31\xd4\xc7\x1d\xb4\x2f\x95\x21\xd3\x13\x4e\x33\x85\xc5\x0a\x34\xe3\xff\xdc\x19\x25\x8c\x96\x29\x46\x37\x5d\x3e\xea\x92\x51\x0c\x0b\xdd\x32\x36\xdb\xd2\xa9\xcc\x24\xb2\x0b\x71\xc2\xac\xcb\xb7\x1e\x94\x20\xa8\x8e\x12\x64\xf9\xdd\x9e\xf4\x6b\x7f\xcf\x75\x1c\x93\x38\x34\x72\x6a\xd8\xbf\x7e\xe8\x50\xfc\x46\xc1\x82\x7d\x79\x3a\x78\x36\xd3\xf4\x87\x74\x1c\x9b\x9e\xfc\xb3\xd5\xf2\x70\x98\x55\x48\x05\xd5\x94\x66\xc9\xd0\xe8\xde\x7f\x80\xec\xe7\xbc\x16\xce\x38\xee\x58\x35\xa8\x52\xf1\x38\x99\xd0\x46\x38\xad\x01\xac\xbf\xdf\x56\x4d\x83\xfd\xd7\xfe\xa8\x71\x84\xda\xeb\x5c\xb6\xd5\xa1\xff\x2b\x30\x43\x5c\x16\x72\x49\x0d\x69\xf4\x08\x81\x88\x34\xea\x4d\x10\xb6\x79\x0b\xbb\xfc\xf8\x89\x39\xbc\xa0\x20\x28\xf2\x7a\x0e\x13\xde\xa8\x60\x51\xec\x62\xbd\xdd\xa9\xad\xea\x5c\x5e\x26\x58\x9d\x41\x34\x04\x8b\x84\x8b\x1b\x43\x2f\xeb\x5c\xec\x48\xb0\xc8\x48\x07\x7b\x68\x5f\xa6\x04\x21\xc1\xe2\xcc\x45\x02\x8f\x8b\x3f\x7d\x81\xaf\xbf\x30\x46\x64\x8c\x33\xa5\x3a\xb6\xeb\xf2\x5b\x5f\x3a\x66\x44\x6b\x7c\x56\xd6\x83\x50\x11\xc7\xe3\x4b\x9a\xd3\xc9\xc6\x88\x31\x58\xb7\x40\x45\xd7\xbc\x5f\xea\x18\x95\x80\x75\x08\x47\x67\xc5\x19\xeb\x18\x05\x5d\x70\xe9\xc8\xfb\x5b\x79\x80\xfb\x6a\x78\x69\x19\xb3\x1a\x57\x50\x17\xd4\x3b\x89\xbf\x49\x89\x74\x8e\xd3\x14\x8c\x47\x12\xd7\xac\x77\x07\xc9\x9d\xf4\xd6\x04\xe3\x94\x26\x72\xa0\x58\x9d\xb9\x83\x09\xc6\x95\xc4\xa5\xb4\x84\xf7\x10\x62\x5f\x5c\x00\x98\x20\x11\xce\x96\xdd\x0b\xdc\x55\x4d\x3b\x72\x31\x58\xbd\xf5\x2b\x33\xba\xec\x88\x7e\x99\x40\x66\xf9\x67\xdf\x97\x12\xe6\x2b\xf7\xb8\x61\x9c\x6b\x34\x0b\x26\xb2\x98\x7a\xc1\x92\xc7\xaa\xfc\x2b\xc7\xf5\x63\x5d\xfe\x80\x7c\x76\x15\x42\xa5\xdc\x0c\xec\x26\xec\x88\x4e\xa2\x5c\x26\x8c\x65\x66\xa0\xca\xad\x7a\x76\x88\x60\x09\xe1\x38\x09\x8c\x07\xb6\x5d\x9a\x5f\x89\xb1\x38\x89\x76\xab\x6d\xf8\x53\xaa\x33\xeb\xd6\x35\x84\xe8\xf5\xcb\x21\xcb\x04\xc7\x6a\x83\xbb\xe9\x57\xb2\x7c\x9d\x5d\x56\x96\x10\x3e\x56\xea\x7d\x78\x83\xda\xd4\xd2\xb6\x5f\xb4\x59\x04\xcb\xb2\x04\x99\xb2\x77\x95\x9c\x88\x09\x08\x96\x69\x2d\x07\x2a\xee\x58\x5e\x79\x42\xaa\x9b\x7f\x9f\xc9\x52\x27\x41\xe0\x1a\x64\xe1\xdb\x24\x93\xf8\xfa\x3e\xdd\xee\x36\x8b\xfd\xf7\xd5\xe6\x61\x7f\xf7\x74\xbb\x5b\x3f\xde\xae\xfb\xad\x92\x49\xc3\x30\x74\xdd\xad\x57\x9b\x78\xbf\x0c\xb6\x6d\x82\x49\x0b\xd8\xa8\x92\x06\x45\xcf\xdb\x97\x39\xa2\x5c\x30\x95\x25\x28\x09\xa8\xaa\x9f\x64\xdb\xca\x9a\x87\xcf\xea\x48\x61\x4f\x7b\xf5\xb3\x85\xb2\x41\xd9\x0b\x6c\xa1\x87\xd8\x2f\xfd\x4f\x18\x98\x38\x2c\xaa\xbf\x51\xbb\x0a\xc3\xe7\x0b\xe9\x13\xd3\x29\x15\xee\x59\x60\xe6\xb7\x42\x9b\x3c\x57\x99\xea\x65\x8e\xc3\xcf\x83\xd6\xd8\x4b\xb2\x55\xad\xa1\xcf\xef\xc2\x51\x2b\x62\x9b\x05\x22\x65\xe3\x7c\x48\xa7\xd7\x65\x85\xc1\xf0\x73\x55\xc0\xf1\x45\x0e\x2b\x81\x4d\xad\xea\x59\x8c\xd7\x79\x59\x0d\xce\xc7\x82\x59\x69\xb0\xf7\xe3\x7f\xed\x5b\x25\x8b\xc1\xcc\x27\x8c\x51\x99\x30\x83\x8d\x6d\x9f\xb9\x72\x42\x89\x8e\x46\x1e\x78\xa1\x04\x33\x99\x6e\x9c\x50\xb7\x1d\xe2\x06\x8c\x1a\x2a\x81\x03\x23\x38\x49\x62\x0c\x2b\xeb\x53\xe9\x25\xf3\x4f\x83\x99\xea\x59\xe9\x92\x53\x62\x7a\xd9\x9a\xbc\x7c\x0e\xbf\x17\x8e\x1a\xc0\xb5\xc4\x29\xd2\xbf\x07\x69\x05\xc1\xa9\x4d\xb1\xa2\x80\xc8\x20\x1f\xa8\xcc\xd2\x61\xce\x58\xe2\x54\xbf\x2b\x84\x23\x3f\xfc\x7f\x9c\x7d\x5b\x73\xe2\x3a\xb6\xff\xd7\xd9\x0f\xff\x07\x5f\x25\xf9\x11\x08\xe9\xe6\x74\x12\x18\x20\xdd\x7b\xcf\xa9\x53\x94\x2e\x4b\x89\x4f\x8c\xcd\xd8\x26\x09\xf3\xe9\xff\xe5\x25\xc9\x37\x4c\x7a\xcf\xa9\x9a\x9a\xde\x15\x0b\x63\x64\x5b\x5a\x97\xdf\x45\xef\x3f\x8a\xfd\x6b\x5a\x8e\xa4\xef\x48\x1c\xb3\x40\xf5\xcc\xa8\x9e\xe0\xa3\x05\x99\x4f\xc5\xdd\x71\x9c\x18\xbb\x1d\x44\x5b\x3d\x2e\xfa\x44\x7e\x12\xc7\x10\x09\xb3\xb3\x65\xd9\x4a\x41\xbb\x03\xc4\x24\x09\x11\xc8\xbb\x37\x45\x81\xcd\x2d\xfd\xe2\x2b\xe0\x14\x73\xf1\x70\x4c\xa3\xc4\x4f\xda\x75\xc0\x90\xba\xee\xcb\xe2\x68\xcc\x52\x87\xbf\x9e\x52\xf3\x0a\xbf\x40\xfd\x50\x7c\xfc\x4a\xf3\x29\x84\x33\x89\xa9\x66\xa8\x40\xb3\x2f\x4e\x83\xfa\x53\xcc\x7c\x05\x7e\x0f\x1c\x30\xd6\x63\xff\x02\xdf\x45\x62\x16\x07\x18\xa0\xda\x1a\x37\xd2\x01\xd7\x79\x7f\x3b\x18\x48\x1a\xfe\xe6\xff\x4d\x3f\x7a\x82\x7c\x49\xe2\x24\x02\x8c\x52\x7e\x15\x65\xa6\xe6\xe9\x08\xdb\x12\xb8\x7f\xc6\x91\xc8\xef\x88\xca\x24\x4e\x18\x71\x6e\xad\x7d\xed\x08\x12\xf3\x30\x40\x98\xc6\xfa\x73\xf7\x0a\x59\x0d\xe5\xf2\x02\xdd\x31\x61\x00\x4c\x28\x87\x7e\x07\xc7\xe2\xa5\xe4\xa7\xd7\x54\xb6\x0f\x01\x97\x92\xda\x12\x8d\x13\x85\x9b\x9f\x15\x32\xb6\x56\xd3\xba\x1a\x24\x16\x9e\x44\x4c\x2a\x2e\x11\xce\x50\xd0\x0a\x98\xa0\xa0\xfe\x4d\x7d\x05\x33\x71\x57\x61\x18\xfe\x75\xf8\xb4\x88\x40\x38\xf2\xb1\xed\x0a\x34\x77\xdc\xe2\xfd\x2d\x81\x69\xf4\x80\x89\x98\x63\x69\xfd\xc4\x2f\xbb\x22\x3b\x1b\x51\xe3\x0f\x5e\xaa\x6f\x45\xa1\xb6\x70\x9a\xde\x74\x62\x41\x7d\x44\xc4\x48\x3d\xc2\xed\x90\x58\x28\x1d\x9a\x76\x7e\x3d\x3b\xab\xb4\x06\x85\x82\x17\xd7\x3d\xc1\x58\x40\x14\xd3\xde\xc3\x39\x3b\x5d\xb5\xd8\xad\x97\x64\x3f\xbd\x6f\x3f\xcc\x91\x83\x2e\xce\xd9\x9b\xd5\x4f\xc8\x6f\xa9\x31\x90\x58\x92\x28\x6c\x5d\xab\x35\x94\x70\xad\xb8\xe8\x46\x26\x9e\x6b\x54\x3e\x15\x0a\xe6\x97\x89\xd2\x71\x0c\x0a\x4c\x35\xdd\x96\xa5\x76\x20\xcb\xb6\x16\x4b\xbc\xd0\xe0\x93\x5e\x8b\x7a\x53\xd4\xbc\x2e\xfa\x68\x22\x42\x3c\x2e\x42\xee\x10\xbe\x26\xf1\x7e\xee\x93\x87\xba\x6d\x8a\x78\xdc\x49\x60\xa2\xd8\x5d\xb3\xed\xd8\xdb\x3f\xf8\xc7\x8e\xf6\xa9\xd1\xcc\x58\x64\x69\xf3\x8e\x9b\xbd\x0c\xd4\x1f\x13\x6f\x06\x09\x3c\x83\xaa\x1b\x2b\xe2\x5c\x25\xf1\xc3\x6f\x9a\xee\x23\x92\xc0\x6a\xae\xbf\x40\xde\xe4\x38\x30\xab\xb1\xfd\x53\x94\x96\x0f\x9a\x16\x39\x0a\xb6\xf1\x2f\x75\xb9\x6f\x20\x6f\xba\x2a\x8f\xfd\xb6\x90\x0a\xdf\x6e\x6f\xcb\x4a\x9e\x21\x1b\xda\xa9\x12\x12\x32\x6a\x19\xfa\xf2\x5c\x56\xe9\x3b\x18\x58\xf0\x97\x95\x41\x12\xf2\xc8\x14\xad\x9b\xa7\x7f\x5e\x16\xf9\x35\x95\x66\xf4\xab\x43\xcd\x98\xe5\xc8\x61\xa0\xf1\xbd\x2b\x60\x37\xa9\x02\x36\xf3\x0e\x69\x65\x17\x4c\xec\xba\x8c\x2e\x34\xb2\xcc\xb0\x26\x3e\x3b\x98\xfb\xe3\xee\x16\xae\x99\xee\xff\xfc\xf6\x03\x2a\x50\x66\xef\xa8\x8a\x73\x29\x61\x60\x2e\xf2\xff\x7a\xbc\x78\x42\x62\xc2\x98\x5d\x0c\x50\x49\xf7\x3f\x6c\x4e\xba\xb3\x30\xa6\x8c\xa9\x58\x91\x63\x8a\xb2\xff\x28\x36\xc5\xe9\x46\x9b\x8b\xc4\x82\xc4\x1d\xcb\xce\x84\x55\x23\xfd\x0e\x42\x62\x30\xe0\x1c\x91\xd6\x47\x5e\xbd\x1d\xaa\xd7\xe2\x63\x3c\x44\x1b\x67\xbf\x53\x09\x2f\x39\xcf\x0d\x7b\xea\xae\x70\x04\x00\x42\x88\x2f\xbc\xc8\x09\x1a\x9b\x84\xbe\x3a\x15\x79\x35\x55\x2c\x27\x84\xc5\xc4\x08\xb4\x15\xa7\x87\xeb\xbb\x40\xa4\x70\x94\x0f\x5b\xad\x56\xf8\xba\x41\xf7\x6d\x60\x82\xbc\xb4\x72\x31\xde\x0e\xc6\x67\xa1\x5e\x24\x03\xa3\x5e\x52\xf4\xb4\xed\xde\x6e\xb5\xbe\x08\x0b\x28\xfe\x84\x7d\x0b\xbe\xdb\x5a\x6b\xdf\xe9\x45\x97\x30\x12\xa3\xde\xd7\x0e\x11\xe0\x53\x6f\x35\xa3\x26\xb4\x38\x9c\x4c\x40\x37\xc8\x07\x08\x13\x01\x96\x3a\x67\x3f\x46\x05\x3f\x92\x84\x21\xb6\x3a\xee\x9e\xb7\x06\x93\xbc\x59\x6e\x0f\x3f\x97\xbb\xfd\xea\xe9\x5b\x3b\x86\x28\x6e\x35\x73\xbf\xa7\xef\xdd\xdc\x70\x3f\x71\x0a\xa9\x87\xba\x95\xa9\x20\x84\x87\x04\xd3\x9d\x1c\x3e\x5a\xbf\xc0\x5b\xac\x89\xe9\xdf\xcb\x43\x11\xd8\xe6\xdf\x7f\x3d\x2e\xf7\xdf\x07\x5d\xad\xd1\x50\xaa\xd0\x5e\xe5\xc4\x2f\x26\x9b\x1d\x4c\x0b\xe7\x41\x6c\xc9\xf8\x9b\xb2\x38\x41\x59\x5f\x6e\x5a\xeb\xdf\xb4\xda\xff\x02\x16\x48\x08\x97\x22\x64\x36\x14\xdf\xbf\xf6\x54\x93\x9e\x8a\xfa\x5a\x31\x8f\x10\x0e\x20\x3b\xcb\x18\xd4\x08\xcd\xae\xc5\x67\x08\x11\x61\x8c\x72\x54\xce\xb6\xb6\xd5\x12\x71\xc7\xa9\xc2\x1a\x08\xe2\xee\x6d\x7d\xff\xde\xa4\x0c\xc3\x0e\xf3\x68\xe9\x52\x1c\x10\xc2\xa1\xb9\xac\x8b\xf2\x32\x4c\x8a\x9b\x7c\x25\x20\xce\xef\x71\x0c\x58\xbb\x71\xb3\x80\x00\x86\xa0\xd6\x9e\xc3\x9a\x56\xd9\x4c\xcd\x8d\x51\x1c\x37\x9d\x8e\x6c\xc4\x5d\xe9\x94\x68\x92\x20\x8e\xfa\xf0\x82\x70\xc4\x36\x55\x9d\x06\xdd\x11\xad\x49\xdc\x36\x64\xe7\xe7\xb2\x0d\xed\xa8\xe7\x51\x04\xc3\x88\x73\x99\xdf\x3d\x2d\xa6\xdf\x25\xea\xc5\x89\x11\xb7\x4e\xdf\x61\xf6\xc1\x2f\xd6\xec\xa8\x57\x54\x71\x03\xa5\x27\xa4\xab\x95\x83\xec\x59\xf7\x11\xea\x83\xc6\xd9\xff\xb5\x5c\x1d\xf6\xeb\xc3\xea\x69\xb7\xfa\xf6\x7d\xef\x2a\x01\x34\x54\xc6\xc6\x10\xde\x31\xe4\xee\x3f\x92\x34\x8a\x38\x86\xbc\xb3\xbb\xbb\x2d\x4a\x0e\x9a\xda\xfe\xee\x30\x5b\xf4\x61\x83\x34\xf6\x08\xf2\x01\x14\x64\x60\x6d\x8d\xa7\x70\xda\x84\xc6\x42\x18\xf8\x5e\x51\x67\x30\x10\x35\x23\x94\x5a\x16\x95\x71\xc5\x0f\xbc\xbb\xa2\xc5\x85\x51\xca\x22\x64\x87\x77\x80\xd6\x41\x30\x32\x9c\x35\x16\x10\x65\x2c\x5d\x3e\x6d\x8e\x67\xbc\x17\x27\x4a\x23\x94\x45\x1a\x39\xae\xad\x1c\x72\x30\xfd\x2c\x52\xc6\x7d\x8c\xe4\xd0\x32\xfe\x2b\x39\x34\x42\x99\xd2\x68\x28\xf2\x08\x65\x96\xe6\x8b\xbe\xe9\xf8\xc4\x72\x48\x19\x08\xec\x1c\xec\xb8\x86\xbb\xf4\x7d\x7a\x1d\xa6\x4c\x0b\x83\xf4\x99\x2d\xf6\xab\xc5\xec\xc1\xd9\xda\x3c\xce\xfe\x3c\x2c\x66\xdb\x6f\xae\xa7\x46\x93\xd0\x28\xe8\xb9\x78\xf5\xab\x37\x8c\x26\xca\x00\x3e\x4c\xe5\x15\x74\xfb\x7c\x72\x8f\x61\x8f\x00\x55\x04\xdd\xda\xf0\x7b\x07\x47\x42\x45\x40\x10\x41\x6a\x30\xfb\x5d\x32\x43\x45\x28\xb1\xf4\x7c\xce\xd3\x7a\x79\x4a\xe5\xb7\xb2\xf8\xa8\x5d\x24\x42\x65\x18\x62\x09\xbd\x6d\xc4\xda\xbf\x2b\xe5\x71\xe3\x93\xa3\xb0\xb7\x3b\x7a\x9e\x80\x18\x48\xf2\x0b\xd4\xb3\xb6\xa9\x49\x81\x11\x54\x51\x30\x0c\xb6\xb3\x00\xd7\x99\xbb\xfe\xe7\x7a\xa2\xb5\x2f\x65\xa7\xbb\xc7\xcf\x55\x7b\x5a\xad\x03\xcc\xc5\x85\xf1\x1a\x31\x7f\x65\x9e\xa7\x7a\x4e\x33\x0b\x7e\x9a\xb2\x35\x21\xcc\xa7\xc6\xd9\x12\xcb\xec\x81\xd7\xf5\xb9\x58\xe0\x6b\x04\x08\x37\x77\xf2\x71\xf5\xb0\xdc\xed\xd7\x4f\x0e\x74\xc1\xc2\x08\x42\xd2\x43\xe4\xec\x6a\x9e\x2b\x5e\xaa\xb1\xb8\x38\x61\xa1\xf2\xb1\xd7\xb5\xfe\xfe\x6b\xfd\xeb\x57\xfb\x79\x0d\x61\x87\x00\xbb\xa2\x88\x4d\x16\x4a\x58\xa4\xb8\xcf\xdb\x0f\x21\x60\x28\xad\x9e\x73\x04\x1f\xb8\xd9\x60\x91\x06\x4b\xa8\xaf\xa1\x84\xaa\x5e\x5c\x64\x06\x0f\x90\xbf\xb4\x37\x95\xc5\x40\x43\x62\x23\x9a\xd9\x3b\xaf\x79\xd9\x5a\x4a\xda\x11\x24\x30\xec\xba\x0d\xaf\xeb\xcb\x94\x3b\x61\xff\x4d\x41\x35\x3a\x83\xb7\x90\x19\x3f\xf2\x0d\x7f\xe1\x47\xc8\x1d\xce\xbc\x39\x1e\x22\x87\xcb\xbc\x9e\x2b\x59\x4c\x2f\x10\x8c\x79\x21\x66\x4f\x8b\xbf\x5c\x87\x92\x31\x5f\x21\x74\xa6\xb9\x86\x0d\x2f\xfb\x42\x46\x84\xb1\x98\x49\xe6\xde\x92\x12\x13\xcf\xf6\x10\x0d\x8d\x2f\x12\xfa\x70\x0e\x03\x16\x96\x78\x8c\x87\x3d\x25\xf0\xf2\x0d\xea\x47\xfe\x36\x2a\x6a\xfa\xa3\x27\x90\x25\x09\xc5\x55\xf7\xbe\x28\x6a\xc1\xb3\xbf\xdb\x6a\x60\x09\x97\x88\x85\xd8\xff\xb5\x59\x1e\x9e\xd6\xfb\xc3\xec\xe7\x6c\xf5\x30\x9b\xb7\x10\x1e\x96\x80\x31\x1a\x59\xcc\x17\xed\x2f\x17\xbe\x51\xce\xfd\xfb\x92\x2c\xc3\xab\x15\xc2\x0f\x6c\x81\xee\x01\x5e\x78\x66\xac\x0a\xf2\xb7\xc1\x4e\xc2\x84\x32\xe4\xcf\x87\xe2\xa5\x49\x81\x4d\xf6\x7e\xb5\x94\x0c\x3f\x02\x11\x96\xc5\x1f\xff\xda\x6c\x06\xb7\x43\xf9\x12\xa1\xf1\x8e\x89\x54\x94\x8b\xe2\x78\x6c\xd6\x95\x4b\x3b\x84\x86\xc6\x49\x03\x1b\xa9\x15\x94\xef\xa9\x84\x60\x12\x8c\xeb\x12\x36\xa6\x12\xcf\x39\x49\xd8\x6e\x32\x66\x24\xf6\x28\x28\xe2\xb5\x5b\x79\x4f\xf2\x98\x30\xed\x71\x62\x03\xf3\x79\xaa\xe6\x97\x5d\x5a\xf7\x90\x5c\x6c\x34\x5d\x3a\x31\xee\x21\x98\x2b\xb4\x5c\x83\xd1\x18\x69\x50\xd0\x77\xc5\xcb\x96\xb7\x0d\x96\xc4\x13\x80\x2a\xb1\x66\x97\xfd\xd6\x76\x75\xdc\x2f\x48\x3c\xc9\x91\x4a\xfa\x7c\x6c\x4e\xe7\xbb\xcf\xf9\xdc\x10\xcd\x4d\x18\xb7\xca\xb1\x55\x70\xe6\xd9\x82\x9f\x26\xda\x11\x49\x10\xc6\xdc\xfa\x60\x60\x74\x5e\xb7\xe6\xed\x24\x09\x58\x88\x22\xec\x2d\xa5\xee\x67\x91\x9d\x8f\xb0\xcc\x65\xc6\xdf\xe1\x9a\x12\xf1\x3b\xd8\xcb\x80\x68\x34\x8d\x47\x4e\x82\xc4\x88\xd5\xd9\xb0\x7a\x94\x7d\xd8\x41\x61\x64\xaa\x19\x69\xb5\xed\xbf\x9f\x49\x48\x09\x36\x1e\xb7\xa7\xf6\xb5\x4c\x42\xa6\x90\x09\xfb\x81\xe9\x93\x1a\x86\x95\x49\x44\x22\x14\xf9\x48\xab\x05\x3f\x67\xaa\x6c\x72\xe2\x53\x5a\xda\x9b\xc4\xdc\x28\xed\x85\x49\x47\x25\x1f\xa4\x30\x49\x4c\x19\xc2\x2b\x0c\xf4\xb8\x65\x93\xff\x0d\xab\x6b\x82\xbc\x4e\x6c\x23\xac\xcd\x7a\xd1\x7f\xf2\x13\x02\x71\x62\x8b\xf1\xe7\xe3\x06\x05\xc2\xbb\x43\x1a\xdd\x0c\x76\x0f\xeb\x36\xb6\x4b\x88\x16\x68\x9a\x7e\xc7\x2b\x89\xb0\xa5\x2f\x56\xd7\x84\x46\x10\xd1\xb6\x4f\x6a\x23\xa7\x39\xd4\xab\x7c\x42\x53\x8b\x24\x2c\x22\xa1\x3f\x04\x6f\xf9\x9e\xfb\x62\xa6\xcc\x0e\x5c\x99\x67\xc8\x40\xb1\x26\x99\xcd\x24\x49\xa4\x91\x0c\x6f\x62\x57\x14\xff\xf9\x01\x97\xbf\x35\x55\x5c\x46\xa8\xcb\xb5\xd9\xae\xfe\xb9\x3c\x6c\xd6\x7b\x07\x5e\x9c\x7d\x5b\x36\x71\x91\xbb\x18\x01\xcc\x94\x4a\xa1\xaa\xbf\x01\xd6\xdc\xfb\x08\x80\x44\x80\x84\x56\x87\xf6\x25\x2d\xf2\x35\x32\x0e\xad\xf4\x92\x1b\xa4\x43\x67\xc6\x62\x57\x87\x96\x9a\xd8\x9d\x49\x72\x0f\x2b\x61\x95\xe4\xef\x60\x40\x92\x65\xe1\x70\x41\x6e\x8c\x88\x14\xef\x24\x7e\xce\xc2\xaa\x64\x5c\xcb\x71\x35\x63\xa9\x0c\x7b\x53\x53\xbd\x8e\xfb\x36\x89\x8a\x05\x16\x67\x6c\xd7\xd5\x6a\x52\x4f\x01\x77\x13\xc5\xc3\x20\x6a\x23\x15\x85\x2b\x90\xf9\xd6\xc1\x73\xa0\x94\xa2\x7e\xab\x2d\xb1\xe0\x37\xaa\xab\x09\x84\x14\xc1\x2a\x30\xce\x9b\x6f\x0c\xe7\x21\x06\x03\x47\xa3\xdb\x65\x56\x1e\x77\x4c\x18\x2e\x9e\xb9\xb2\x9f\xe8\xe2\x09\x65\xb5\x31\x9c\x97\xd1\xf2\x98\x80\x8e\xbc\x2e\xe2\x32\xf6\x24\xa8\xc8\x6c\x8f\x6b\x9f\x3b\x10\x3d\xda\x15\xfd\xe3\x0c\xd5\x78\x2e\x34\xe3\x2c\x6c\x95\x45\x75\x5a\x1e\xf9\xb5\xd0\x20\x49\x34\x4f\xb0\x6f\xbc\x1c\x6b\x7a\xf0\x0c\xc1\xbc\x30\xc1\x14\x70\x1f\x15\x06\xe8\x8c\x49\xf1\x59\xb6\x2c\x72\xc2\xbd\x28\xb1\x11\x7a\x5d\x42\xfa\x3e\xe2\xa7\xd9\x41\x7e\x13\xc9\x77\xe6\xaf\xd6\x36\xdb\x8a\xff\xa5\xf9\x8b\xf5\xe8\x1e\xbd\x95\x4d\x92\x12\x4b\x57\xe7\x68\xb6\xaa\xc3\xbf\xce\x3c\xaf\xbb\xad\x91\x87\x91\xc6\x0e\xa9\xbb\x6d\xc3\xe8\x62\x32\x4d\xe0\x51\xa4\x30\x6e\x50\xf0\x7e\x86\xec\xdd\x10\x76\x33\x18\xcd\x16\x8f\x12\x45\x6c\xc9\x73\x91\x96\xb2\x2d\x24\xf0\xd8\xd7\xd8\x34\x5d\xa7\xd9\x4f\xcc\x4d\x0d\x6e\xcf\x1d\x25\x26\x7b\xb4\xdc\xc6\xea\xa9\xa8\xaf\x0a\x57\x9c\x04\x31\x0a\x31\x9e\x32\x9e\xd7\xb2\xbf\x2a\x72\xc2\x44\xe2\x5b\x55\xcc\xe7\x5c\x41\x55\x97\xc5\xa5\x57\xc7\xe0\x24\x51\x5e\x2b\x78\xbd\xfb\xd7\x99\x97\xa6\xa1\x75\xa3\x3e\xc8\x09\x37\x92\xb8\x9b\xf5\xf7\x5d\x5d\x9c\x3a\x59\x53\xc2\xa9\xe7\xe3\xd2\x5e\x97\x5c\xc1\xd8\xb9\x99\x70\x4a\xfd\xd6\x97\xd9\x2a\xc8\xb7\x70\x57\x4e\xa5\xc6\x40\x41\xf2\x2c\xbb\x6b\xae\xb2\xc3\x25\x72\xe6\x11\x14\xd4\x38\x15\x95\x53\xde\x71\xa8\xe1\xe6\xeb\x1f\xd3\xbe\x3d\xf1\xf4\x55\x27\x51\xe0\x90\x2b\x86\x85\x67\xbb\x7e\x83\x9e\x21\x4f\xe2\x80\x5b\xd0\x2b\xca\x9e\x67\x19\xb6\xda\x1e\x0a\x9e\xb7\xd6\x31\x3d\x79\x64\xf3\xaf\xc9\x95\x6c\x63\xb5\xbd\xdd\x89\xd2\xb8\xe7\x1e\x1c\x14\x60\x66\x80\xca\x43\xa2\x8d\x1d\xcc\x49\x68\x88\xfc\x46\x74\x1c\x05\xeb\x9a\x30\xc6\xad\x9d\x9c\x0b\xb3\xef\x56\x50\x8f\xb1\xd8\x76\x84\x48\x28\x5e\xfa\x2b\xaf\x7e\x0e\x48\x15\xf6\xb8\x8c\x13\x14\x1d\x6e\xe6\x70\xb5\x58\xff\x8e\x5d\xf4\x75\x5d\x8f\xab\xc8\x0f\x7d\x27\xb8\xf1\xaf\x73\x13\x01\x18\xdd\x08\x77\x9c\x48\x63\xc9\x34\xd2\xcf\x75\x87\xa9\x17\x71\x2b\xda\xdb\x67\x76\xfd\xb7\x4f\xae\xb8\x94\xee\x23\x5c\x05\x60\xdb\xb9\xbb\xba\xe8\xb8\x7e\x5c\x69\x40\x31\xb5\x26\xae\x6b\x56\x20\xbc\x53\x5f\xf0\x5b\x38\x44\x66\x32\xb9\x52\xc6\x32\x1a\xd4\xac\x14\xe9\x55\xe9\x8e\x6b\x11\x92\xd8\xa5\x54\x23\x4b\x73\xc2\xb5\x34\x56\xc9\x60\xf7\xa8\x1e\x52\x9f\x6b\x29\xad\xcc\x90\xe5\xff\x15\xf9\xb5\x3b\x20\x11\xbe\x6f\xe0\xbf\x15\x42\xeb\xee\x0a\x2e\xb9\x7b\x21\x84\x1f\x46\x38\x85\xf8\xd5\xad\xb8\xe7\x68\x25\x14\x3e\x44\xca\xc0\xd6\xad\x74\xd8\x64\x34\x20\x02\x99\x04\xdd\x82\xb9\xc9\x78\xad\x8b\xb2\x75\x66\x9c\x32\x61\x26\x22\xa2\xda\x48\xd2\x14\x99\x5a\xe7\xbb\x1e\x30\x5a\xc4\xb1\x71\x2b\xad\x53\x18\x70\x00\x45\xcc\x78\x97\x0c\xa2\x6c\xc5\x7d\x51\xf6\x48\x57\x22\xe6\xd4\x78\x2d\xa0\x24\xc0\x08\x97\xe4\xc6\xc8\x18\xb7\xa8\x7b\x80\x51\x7d\x66\xf2\xdd\x16\xb1\xa6\x88\x79\xdc\xf0\xb2\x19\x9e\x61\x0f\xda\x7d\x21\xe1\x1a\xcd\xa0\x2b\x14\xc0\x32\x0a\xfc\x29\xcf\xef\x8a\xb3\xc8\xa0\x89\x3e\x6f\x71\xd9\x06\x7d\xf5\x21\xeb\x9e\x08\x4a\x64\x60\xa1\x85\xf9\x68\x07\x16\x2c\x60\xa8\x03\xf5\xd0\x03\xa4\xff\xbf\x7e\xb8\x24\x18\x89\x70\xb7\x77\x52\x4b\x6e\x4d\x53\x83\xd5\x48\x30\x02\x58\xb4\xd8\x3c\x2c\xb6\x3f\x8b\x3e\x51\xdd\x0e\x48\x3c\x53\x1c\x9b\x9d\x9c\x4d\x22\x11\x09\x4f\xb0\x0c\x70\x04\xc5\xb3\x79\xd1\xac\x98\xb9\x9a\x9f\xcb\xbc\x2f\x96\xe9\xe2\x2d\x21\x7c\x8d\x64\x69\x43\x4e\xac\xf9\x5b\x9a\xbf\x58\x35\xee\xd1\x77\x09\x9e\x60\x01\xb2\xca\x78\xf5\xba\x3b\xf2\x2c\x7b\xae\xa0\xcc\x47\x06\x8f\xdd\x2c\x48\x4f\x63\xe8\x55\xe4\xd9\x05\x97\x86\xea\xbe\x4c\x3b\x0f\x25\x22\xa4\xcf\x59\xe2\x70\x11\xf2\xcd\xfd\xf8\x43\x6a\xb9\xa5\xe3\x0b\x90\x41\xc0\x4c\x40\xbb\x3c\xdc\x3f\x3f\xdd\xad\x9e\xbe\x1d\xbe\xad\x67\x0f\xed\xf9\x42\x1d\x72\x87\x3a\x2b\x41\xf2\xaa\xde\xc9\x62\x0c\x80\x17\x32\xe2\x88\x44\x12\x03\xa9\x19\x22\x64\xcc\x05\x75\x9e\x35\x08\xe4\xdd\x3e\x0c\x42\x3f\x21\x75\x80\x77\x8d\x1f\x0f\xe9\xa1\xc8\x0f\xf5\x2b\x1c\x3e\x5c\xd9\xdf\x9d\x46\x79\x89\xc1\xc3\xa8\xb4\x3e\x54\x5c\xc3\x58\x00\x66\x70\x4a\xc5\x94\x41\x69\xdb\x1a\xe2\xcc\x49\xe3\x4e\x87\x4d\x02\x18\xa3\x8e\xb5\x10\x0c\x61\xc1\x42\xfb\x31\x26\xb2\x2f\xfc\x08\x7d\xc2\x99\xd0\x11\x20\x35\x69\xbf\xde\xcf\x1e\x5c\x8d\xfa\x7e\xbd\x3d\x2c\xb6\xeb\x5f\x77\x3d\x12\x93\xd0\xb1\x91\x35\x7d\xdc\xae\xee\x9e\xdb\x89\xd5\x32\x08\x4c\xe7\x6c\x95\xb7\x56\x68\xc3\x9b\x23\x3d\x2d\x9c\x78\x5d\x3b\x64\x95\xcf\xd1\xde\x6d\xd4\xf6\x97\xbe\xc7\x90\x65\x60\xa8\x45\xfb\xe2\xb7\xa4\x5d\xe9\x07\x1c\x2d\x75\xee\xcf\xd2\xfa\x27\x10\xe9\x47\xca\xd8\x03\x64\x45\xd5\x25\x4f\xb7\x5a\x3f\xfd\x7f\xbb\x1a\xe7\x57\x0d\x23\xf7\x8a\x48\x9f\x18\x22\xcc\x73\x05\x19\x54\x95\xdd\xc6\x4f\x56\x74\xc2\x5d\x4e\x10\x52\x11\xb9\x06\x24\xa8\xbe\xe4\x94\x1b\x41\x88\x34\x5b\x22\x0a\xe7\x42\x59\x35\xa9\x9c\x3b\xc8\x18\xf6\xf5\x5a\x6f\x9a\xc3\x91\x7f\xb6\x07\x55\x84\xf4\x82\x3f\xf7\x0f\xbd\x3f\xc9\xa4\xb5\x1b\x48\x4f\xd8\xa7\xb7\xe7\x75\x63\x42\x62\x1a\xb0\xa9\x2c\x96\xb7\xd1\x59\x32\x64\x46\xa2\xe0\x05\xea\xe5\xfe\xfb\xf3\xee\xce\x7d\x3e\x0e\x34\xe6\x57\x87\xc3\xe1\x30\x96\xe1\x9b\x84\xb2\xb8\xcf\x45\x1e\x69\xcb\xe6\xcd\xae\xd4\x9e\x90\x46\xf8\x86\x36\xa9\xa6\x17\xce\xb2\x54\xc2\xfc\x7c\x19\x4c\x63\x0c\x1c\x03\xfb\x54\x16\x73\x78\x49\x9b\xa8\xab\xfd\x38\x09\x04\x52\x4f\xec\xef\x98\x17\x45\xfb\x30\xd0\xc0\x37\x4e\x1d\x65\x7a\xdc\x02\x37\xde\xd1\xbd\x80\x43\xd2\x88\xa2\xa4\xd0\xd3\xfc\x57\xfb\x27\x6e\x04\xd8\xb1\x8b\xb5\xfd\x1c\x44\xfa\x76\x08\xf3\x05\xa2\xde\xce\x79\x2a\x8b\x32\x1f\xbb\x33\x12\xc9\x82\x88\x77\x34\x5e\xbb\x8d\x36\xdb\xf4\xa8\xd8\x29\x59\x60\xe8\x1a\x78\xbf\x7e\x41\xfa\xf2\xda\x1d\x8a\x05\xba\x66\xee\xa1\xaa\xe7\x3c\x97\x45\x79\x5f\x94\xc7\x73\xc6\xdb\x01\x8a\x63\x17\xa6\xc8\xc1\x9a\x7e\x2f\xcf\xed\x4d\xe6\x94\x60\x55\xf7\xa1\xa8\xeb\xf4\xb3\xb3\x4f\x21\x52\x44\x02\x01\x2e\xdb\xe5\x6e\xb9\xfd\xb9\xbc\x3b\x2c\x17\xeb\xdd\x5f\xbb\xfd\xf2\xf1\xf0\x6d\xbb\x7e\x76\xb0\x4e\x29\xa9\x71\x33\xb2\x25\x7a\xc8\x40\x8c\x23\xff\xff\x26\xff\xd3\xfb\x4f\xf7\x39\x2e\x11\x5f\xf7\x5a\x9c\xcb\xc3\xa0\xea\x2f\x95\xf0\xf0\x4e\xd9\x18\x1a\x4a\x9b\xea\xdb\xc3\xe0\xd1\xc4\x24\x4c\x79\x71\x4c\x73\xde\x65\x7f\x12\x78\x88\x9d\x15\x2b\x22\xeb\x02\x94\x9e\xa1\xc6\xe8\x16\x81\xf2\x28\xeb\x8b\xdd\x1b\x9a\x55\xb5\xca\x07\x88\x89\xe1\x6d\xd3\x71\x80\xd7\x67\xa2\xa1\x66\xf7\xb9\x92\x2b\x27\x52\x2b\x3f\xe8\xd0\x5e\xff\x67\x57\xfa\xe6\x44\xdc\x23\x2e\x9b\x3e\x97\xd5\xa0\xf3\x23\xb5\x0e\x95\x6e\xf1\xcd\x4d\xf2\x8f\x70\xb2\xa2\x9a\x96\x27\x22\xca\xf3\x02\x6e\x54\xe8\x44\xf3\xa4\x0d\x77\x01\xe5\x05\x1e\xa6\x4a\x65\x75\xca\x5a\x34\xa9\xf2\x83\x00\xec\xde\x88\xb1\xf3\xd0\x27\xc4\x0d\x4a\x62\xa1\x9c\xc5\x6f\x9d\xf7\xb3\x0b\xe5\x4b\x63\xc9\xab\xd3\xac\x86\x72\x7e\x46\x53\xd4\x0e\x9e\xa1\x02\x66\x3c\xe7\xab\x53\x9a\x3b\x3d\x11\x77\x08\x14\x58\x27\x93\x2b\x21\x5a\x3b\x24\xf4\x13\x62\x8b\xcb\xbb\xf3\xd1\xf8\x8f\xf7\x97\x05\x15\xd2\x10\x4c\xd4\xd8\x3e\xdf\x2a\xa4\x89\x09\xa2\xb0\xc4\x81\xc3\xad\xfd\x85\x1b\x11\x85\xa6\x59\xd5\x4d\xed\x7d\x07\xc5\x6d\x07\x91\x18\xaf\x7c\xb5\x58\x1f\x16\xb3\x4d\xd0\xfe\x5d\x0a\xa4\xde\xdf\xa7\xa7\xca\x9a\xf5\xf2\xae\x99\x3d\xe6\x0a\xa8\x48\x79\x89\x61\xd6\xbe\xa7\x55\x31\x5a\x7e\x54\x04\x42\xfb\xe6\x5a\x73\xb8\x0c\xe5\x55\x89\x8a\x34\x89\x3a\x1f\x1e\x03\x7e\xf8\x9b\xb5\x62\x7b\x06\x12\x79\x18\x29\xee\xb7\xb3\xa7\xdd\xfd\x72\x7b\xd8\x6c\xd7\x7f\xfe\xe5\xce\x4f\x88\xd4\xa8\xc0\xf9\x79\x82\xb2\xae\x06\x66\x8c\x44\x11\xe9\x87\x06\x9f\x50\xc2\xcf\xe7\x4d\x4f\x37\xd1\x8d\xa0\x3c\x41\xbf\xf0\xc3\x11\xf2\xf3\x30\x09\x52\x54\x87\x58\x44\xcd\xac\xb5\xfa\x63\x9a\xff\xe3\x5c\x94\xe7\xe3\x63\x1b\x5a\x29\xe6\xfb\xc6\xed\x7c\xc2\x5a\xcd\x0d\x11\x1e\xe6\x52\x5d\xb2\xd3\xf2\x09\x47\x03\x75\x84\x9e\x30\x47\x73\x43\xdb\xbc\xaa\x3d\x0c\xa8\xbf\x6e\xed\xbd\xbe\xa7\x4d\x24\x79\x99\xee\xef\xaa\x24\x89\x91\x45\xfb\xf8\xf8\x68\x3b\x54\x6d\x02\xab\x12\x6e\x36\xe4\xa3\x69\x8e\x63\x53\x61\xa9\x90\x5f\x8e\x8a\x2b\x93\x0b\x8b\xe2\xbe\xc1\x83\x57\x90\xab\xe5\xfe\xbb\xd5\xe2\xb2\x5d\x75\x1b\x6f\x0e\xef\x1c\x0f\x18\x56\x53\x5e\x78\x75\x5f\x94\x8b\x87\x95\xbb\x00\x61\x49\x8d\x55\x7d\x16\xdd\xdf\x94\xef\x72\xe0\x45\x5a\x5f\xee\x0b\x6b\x3d\x3a\xd5\x29\x53\x42\x44\x8c\x8c\x2a\x81\xd7\xeb\x9c\x12\x42\xa2\x8e\x1e\x4e\xc1\xe1\x0e\x3a\xd8\x86\x1b\x00\x31\x12\xe0\x57\xc7\xd3\xa2\x89\xa7\x87\x3f\x59\x46\xc4\xd7\xfd\xca\x84\xb9\x7b\xd7\x96\x07\x44\x81\x67\x18\xf8\x87\x23\x7f\x83\x5f\x9d\x00\x8b\xe5\x3b\x4d\xc2\x72\x14\xc4\x44\x0d\xdc\x4c\xee\xb3\xf4\x74\x83\x48\xa1\x80\x18\xac\xf5\xbf\xea\xcb\x4f\xa3\xc0\x59\xb4\xfc\x41\x05\x89\x44\x54\x89\xcc\x2f\xf3\x5a\xf6\xb2\x75\xd5\x04\x1d\x7d\xa3\xae\xbe\x4d\xb0\x1d\xa2\xc3\x18\xdf\xd1\xfd\xc3\xdd\xe1\x69\x7d\xe7\x42\x66\xa5\x39\xc5\xc0\x17\x4d\xc0\x0e\x27\x28\x0f\xd0\xb6\x78\x95\x96\x02\xb8\x13\xdc\xea\x39\xfb\x34\x47\x4c\xbf\xff\x03\x66\x25\xa0\x18\x86\x4b\x58\xc1\x8b\x35\xea\xc5\x58\x9c\xb7\xab\x50\x0c\xbb\xd3\xa3\xc6\x19\x78\x60\x10\xbb\x03\x53\xce\xd1\xbf\xd7\xf0\x70\xf0\x39\x31\x61\x49\x7a\x84\x39\xd4\x1f\x00\xb9\x7d\xc8\xdd\xac\x41\x40\x8c\xd4\x96\xeb\xb1\x6f\xf8\x65\x7d\x46\x47\xdc\x6a\xcc\x83\x83\x30\x0c\xcc\xcb\xc9\xd3\xdc\x74\x36\x3e\xfb\x2a\x8a\x04\xa2\xd0\xb0\x05\x6c\x41\xc5\xed\x14\xc3\xb3\x44\x00\x61\x9f\xeb\x3b\xb9\xe4\x41\xa4\x8d\x86\x82\x8b\x6e\xad\x00\x80\x7a\xb4\xdf\x7d\xc7\x5d\x70\x0d\xb1\xc7\x8d\xb6\x0e\x7f\xb7\xa4\xac\xe1\xa9\x62\x16\x72\x97\x89\x1a\xb1\xac\xe1\x71\x02\x04\xdf\x90\xe5\x7e\xf1\xf4\x55\x93\x08\x28\xd1\x68\xf1\xfe\x9c\x3b\x7c\x49\x07\xdd\x1d\x9e\x92\x85\x26\x0b\x35\xe2\x08\x5f\x17\x98\x81\x49\x63\x09\xa0\xca\xf4\xf4\xe8\x1e\x21\x60\xca\x8f\x2c\x38\xcf\x8a\x95\xde\x46\xd1\x43\xa2\x34\xf2\x90\x15\x22\x48\x9e\xe0\x63\x14\xa0\x42\xa2\x8d\xf8\x44\x87\xeb\x7a\xf7\xdd\x5e\x08\x9c\x46\x98\x7a\xaf\x4f\x5c\x76\xc5\x72\xe0\x94\xe0\xba\xbe\xce\xdb\x38\xad\xf8\x32\x36\x72\x39\x15\x70\x66\x90\x4e\xa5\xed\x57\x5e\x51\xef\x81\x27\x1a\x39\x64\x03\x8e\xf0\xef\x1a\xa6\xc3\x39\x16\x5c\xe0\x62\xdc\xa9\x0d\x5a\x89\x11\x7d\xce\x1c\xe6\xdf\x94\xd4\x46\x9f\xd3\xc2\x16\x26\x72\x28\x79\x66\xda\x73\x2e\x42\x05\xe9\x4b\x64\xdf\xd6\xe9\x09\x51\x56\x57\x39\x64\x1b\x14\x81\x24\x1a\x2d\x2f\x66\x9b\x4d\xfb\x69\xea\x23\x18\x70\xb1\x7e\x7c\x7c\x7e\x5a\xed\xff\x42\xf2\x71\x5f\x4f\x9d\x80\xd4\xa1\xa1\x19\x9c\x05\xde\x22\x63\xfa\x35\xce\xde\x46\x3f\x56\xf9\x1e\x37\x75\xc0\xea\x0c\x9b\xf5\xaa\x7d\xe5\x94\x30\xdc\x74\xe9\xb0\x12\xf7\x3c\xcb\x04\xbf\x4d\x56\xb0\x9f\x03\x2f\x44\x2e\xce\xe1\x20\xfb\xe6\x8b\x6d\xfc\x0f\x20\x35\x46\xf1\x68\x4f\xd7\x4e\x6c\x76\x31\x1b\x4d\xb7\x9e\x69\xca\x8d\xcb\x20\xaf\x5e\x0f\xae\xd0\xd1\xbe\x17\x6e\x90\x30\xd1\xd6\x0b\xd4\x26\xfc\x5b\xd5\x70\x9c\x8d\x56\x06\xed\x25\x89\xb0\xa2\xbe\x3b\xa7\x18\x6c\xc8\xf1\x7f\xb8\x11\x9c\x23\x9e\x5b\xa7\xb9\x7a\x82\xcf\x7a\x87\x5a\x2a\x53\x35\x77\xed\x87\xd4\x33\x84\x9b\x3a\x7d\xec\xce\xe0\x53\x6e\x5a\x29\x45\xbd\x47\xf6\x88\x3b\x10\x50\xdf\x33\x36\x6a\xf8\x3c\xac\x47\x8c\x46\x1d\x50\x03\x75\xed\xd9\xf1\x4d\x6f\x69\x3a\x24\x09\x32\x0e\x17\x0f\xab\xf9\xf3\x9f\xbd\xa8\x43\x87\x49\x80\x95\x4f\xc8\xd2\xcf\xd4\x3d\x72\x3a\x0a\x18\xf6\x4d\x44\x13\x76\xdb\xc8\xf2\xa6\xa5\xe7\xf0\xa2\xa2\xc0\x78\x04\x56\xcd\xe6\xb3\xaa\xdc\xbd\xd9\xc2\x29\xe3\x23\xf5\x40\x1d\x51\xe6\x79\xad\x09\x08\x6a\x8a\xe4\x23\x20\xb3\x33\xda\x25\x3a\x4a\x22\xb4\x6b\x3f\x95\x86\x97\x53\x56\xe0\x8d\xce\x47\xa8\x87\xe2\x0b\xa6\xd4\x8b\x7c\xc5\x79\x21\xc6\x83\x18\x45\xc7\xd9\xb2\x49\x89\x49\x30\x3a\x4a\x89\xc6\x4e\xb9\xc3\xce\x8e\x9e\x2d\x4d\x99\x47\x1d\xec\xfb\x0c\xd9\xf8\xe3\x49\x68\x00\x70\x06\xa3\x30\x1d\x05\xea\x44\x6a\x84\x8e\x57\xaf\xbc\x84\x9e\x95\x38\xd1\x22\x00\x12\xd8\xd6\xdb\x65\xac\x55\xd2\x7f\x7c\xb5\xe0\xc2\xb5\x43\xfe\x59\x1c\x45\x0a\xd5\xfd\x39\xcb\x56\xb9\x2e\xe6\x97\x89\x28\x56\x4b\xcf\x93\xc1\xa0\x13\x76\x4b\x0a\xcf\x6d\xd5\x5a\x0a\x8d\xbf\x25\x3f\x1f\xd7\x7a\xc7\x8f\xa7\x0c\xf6\x97\x53\x9b\xa1\x69\xa9\x02\x5c\x59\xaa\x8c\xbf\xc3\x0e\xca\x8e\xb9\xab\x95\xaf\xb4\xb1\xc0\x46\x71\x8c\x7d\xc9\xc7\x4a\x29\x5a\xc5\x31\xca\xe2\x09\x43\x34\x5e\x94\xa0\x52\xcb\xa7\x77\x8b\xb6\x06\x3f\x0c\x0d\x6c\x08\xbd\x28\x7b\x8d\x3f\x0d\x71\x84\xc2\x44\xcd\x7d\x82\x0a\x75\x52\xfa\x47\x09\x20\xe4\xd3\x09\xd7\x1f\x0a\xdb\xb0\x3d\x94\x3c\x57\xc5\xf1\x6e\x77\x30\x26\x4d\xc7\x14\xbd\x67\xa6\x7b\x18\x1a\x94\x51\x66\x80\xcf\xba\xe4\x4d\xaa\xd7\x3d\x07\xa0\x43\xcc\xaf\x4c\x91\xbf\x57\x2d\x18\xea\x06\x4e\x96\x62\x1d\xb5\xef\xa6\xc6\x2e\xd1\xda\x0b\x3d\xc3\x4b\xac\xd3\x12\x7e\xa5\x99\xfa\xee\x1a\xef\x93\xb8\xc9\xf1\x3f\xee\x34\x51\xc4\xc2\x1e\xdb\x7d\x56\xa5\x0a\xae\x44\x95\x6e\xbc\xc9\x9a\x1a\x44\x09\x32\x07\xfe\x5a\x3f\x4f\x98\x25\x7f\x85\x21\x9a\x5c\xe4\xb5\xa6\x46\xae\xde\x12\x2e\x57\x0a\xfa\xdd\x70\xad\x39\x41\x2d\x30\xcc\x17\xd1\xe4\x7f\xeb\xe8\x38\xa3\xe7\x47\x73\xe9\xb5\xca\xf6\x08\xcb\xba\x71\x21\x38\x9e\x7a\x5e\x14\xc4\x23\x19\x52\xa7\x8b\xfa\x1f\xc9\x90\xba\xd3\x29\x0f\xfd\xe2\xaa\x26\x84\x38\x04\x07\x13\x75\x76\x64\x5c\xea\xf9\x41\x22\xac\xf2\xf6\x82\x97\xea\x4a\x41\x9a\x7a\x01\x4d\x10\x51\xb7\x5d\xde\x2f\xb7\xdb\xd9\x83\xb5\x93\xdf\xce\xf6\x4b\x77\x92\x80\x31\xd3\x87\x6e\x16\x4f\xe3\xd0\x6d\x2e\xc3\xb7\x03\xc2\x08\x94\x93\x4d\xb6\x70\x74\xeb\xcb\x3c\x35\xff\xd4\x0b\x19\x13\xf1\x90\x47\x66\xb6\xbf\xae\xb6\x42\xbd\x10\x74\xd8\xb5\xcc\x7a\x5a\x8d\xee\xb8\xe6\xd8\x19\xb5\x4a\x58\xff\x70\xf7\x8f\x7a\x91\x6f\xd8\x9f\x2f\x50\xdf\xc3\x48\xcb\xdb\x0d\x21\x5c\x3b\xa8\xfd\xa6\x2c\xde\x53\x35\x5a\xac\xa8\x17\xd3\x08\xcd\xf4\xb2\x1c\xad\x90\x9a\x2c\x4f\x85\xc1\x64\x58\x4e\xbd\x98\xc7\x89\x4d\xd7\x9e\xf3\x53\x59\x34\x61\x01\xa8\x7f\x9c\xa1\xbc\xf4\xca\x5e\xd4\x23\x01\x60\x77\x33\x95\x45\xd8\x5b\x74\xa9\x47\x35\xf5\x8c\x68\x63\xcd\xb3\xaa\x87\x1c\xa3\x1e\xa3\xb1\x61\x5c\x18\x88\xd1\x2e\xe7\xa7\xea\xb5\xa8\x57\xed\x4d\x66\x10\x60\x15\xe1\xc8\x3f\x77\x4d\x8a\xec\x68\xca\xd4\x6b\xfe\xc7\x91\x61\xdf\x3c\x63\xe7\x63\xaf\xfe\x42\xbd\x44\x2a\xc7\x0f\x70\xfc\x94\x6f\x65\x71\x3e\x55\x3f\xe0\x32\x1b\x4f\x58\xa2\x3c\x8c\xdc\x9f\xe0\x63\xc3\x2f\x65\x91\x65\xa3\xe9\xe2\xb1\x36\x7e\x27\x3d\xaa\xcb\x4a\x7d\x8e\x4e\xc3\xb5\xc2\x80\xe7\x71\xf6\xe7\xea\xf1\xf9\xf1\x40\xa2\xc3\x7c\xb5\x3f\xec\x56\xdf\x9e\x96\x77\x87\xd5\xd3\x7e\xf9\x6d\xb9\x3d\xfc\x9c\x3d\x3c\xb7\x4f\x9f\x12\xa6\x52\xb8\xdb\x2c\x17\xab\xd9\xc3\x6a\xb7\x6f\xe2\xc6\x1f\xcb\xc3\xfe\xd7\xda\x8d\x81\x38\x31\x8a\x2c\x5c\xc3\xb7\x26\x59\x2b\xeb\x94\x67\xe6\xce\x2f\x20\xcd\xbe\x24\xd0\x51\xdf\xf3\x04\x58\xba\xce\x43\xfa\xde\x9a\x1f\x51\xdf\xa3\x8a\x28\xb7\x61\x15\x9f\x43\x8e\x33\xf5\x3d\xed\x59\x8e\x8b\xc1\x2d\x58\xa9\x98\xde\x1e\x49\x7d\x3f\xf4\xf0\x59\x7f\x3c\x67\xbc\x8b\x79\xa8\xef\x53\xdf\x34\x68\xed\xed\x6c\xff\x0e\x09\xd6\xf4\xff\x71\x86\xf3\x70\xb9\xa1\xbe\xaf\x03\xcf\xe8\x52\xef\x78\x2e\xeb\xce\x5a\x8d\xfa\x81\x4f\x85\x75\xe0\x38\xbb\xdd\x91\xfa\x01\x8f\x11\xe5\xe6\xac\x0c\x0d\xa9\x73\x74\xd6\x80\x53\x82\x48\x18\xfe\x06\xa6\x96\xd1\x7e\x5c\x71\xe6\xd0\xaf\xd6\x9b\xd0\x73\xc7\x42\x12\x60\x2b\xe6\x64\x00\x3a\x43\x2e\x2d\xf5\xa3\xd0\x70\x59\x9a\xcd\x6f\xd4\x2a\xa6\x7e\x14\x07\x8e\x85\xfc\x3d\x55\x6a\x64\xed\x4b\xfd\x88\x07\xce\x99\x20\xcd\x5f\xd6\x39\x74\xed\x14\xea\x47\xda\x38\xa3\x1e\x6c\x2d\xac\x5f\x6b\x72\x63\x62\xce\xb0\x3a\xb3\x3b\x97\xef\xe9\x3b\xcf\xb6\x3c\x97\xaf\x7b\xd4\x2d\xe9\xee\x40\xac\x98\xd7\xae\x8d\x06\x7d\x64\x56\x2d\x5b\x29\x6c\x67\x31\xd6\x1e\x2e\x91\xeb\x39\xb6\x14\xb6\x5f\x24\xc3\xd4\x27\x49\x84\x0c\x24\x14\xf6\xf1\xdd\x29\xa8\x6f\x64\x4b\xf6\x0f\x4f\x56\x0a\xeb\x69\xf6\xb8\x6c\x8f\x06\x84\xd8\x5e\xd4\x4a\xa2\xf6\xd2\x75\x1d\x89\xfa\x34\xe4\x56\xfa\x44\x37\x09\xda\x86\x5f\xae\x5d\xb6\xa9\x4f\x63\x1f\xd5\x5b\xd0\x91\x30\x57\x77\x90\xa5\xef\xb6\xf0\x7a\x0d\x16\xea\xaf\xe2\x3e\xe5\x80\xda\xd2\x77\xfb\xc5\xe2\xb0\x7a\x58\xff\x3a\xc4\xed\x05\x8a\x00\x1b\xb6\xce\x29\xab\x8d\xc3\x6f\x20\xdd\xa8\x4f\x15\x25\xba\x9d\x5c\x63\xd3\xb3\xb1\x66\x94\x37\x3f\xa2\x91\x02\xa8\xd3\x2c\xbb\x2f\x8b\xa3\x79\x03\xec\x41\x46\x0d\xc2\x42\x16\xa6\xce\x31\x50\x3f\xa7\x3e\x13\x31\x76\x2d\x72\xf8\xd8\x97\xc0\xab\x73\x39\x7e\x57\x13\x1d\x24\xce\xa9\x71\x0f\xfc\x38\x01\xb0\xa3\x3e\x0f\x63\xec\xc3\xd9\xa6\x50\x56\x54\x50\x8f\x4b\x87\xd4\xe7\x89\x29\x7a\xcb\xf2\x52\xd5\xae\xa4\xde\xfc\x99\x63\x26\xb4\x10\x9f\xfd\x32\x3e\xf5\x45\x20\x02\x70\x7a\x7a\x00\x98\xd0\x96\xf7\x00\xaa\xc9\x47\xd7\xb7\xa6\x43\x28\x1f\x5b\xab\x50\xd5\xe9\x91\xd7\x70\xcd\x54\xa2\xbe\x64\x46\x7d\xac\x2b\xf5\xef\x6a\x2e\xdf\x0c\x2b\xdf\x8d\x91\xd2\xb7\xb0\x9f\xe5\x76\x11\x78\x83\xd8\xd0\x8e\x51\x81\x50\xae\x9d\x64\x8b\x81\xf3\x0b\xf6\x7c\xfa\xb1\x28\xf5\x95\x00\xf7\xca\x3c\x89\x72\xad\x31\x45\x18\x33\x70\xa8\x0f\x84\x60\x3a\x6a\xa6\xb1\xb3\x98\xed\xe4\x7a\x9c\xca\xad\x05\x95\xb9\x04\x8b\xfa\xc0\x3c\xe9\x3a\xea\x3d\xa0\x02\xf5\x41\x1a\xa2\xe7\x4b\x56\x08\x90\xbd\xd7\x58\x87\x11\xf7\xad\x08\xbf\xd1\x84\x9b\x10\x0b\xa4\xbe\x86\x18\x9b\x2d\xa7\xa2\x18\x74\x22\xa9\xaf\xb5\x76\xb6\xd7\x33\x55\x59\xcb\xf9\x29\xaa\x1a\x0d\xbc\xd0\x43\xb9\xdf\x63\xfa\x89\x0c\x98\x2d\x17\x22\xad\x6f\xfa\xd5\xb5\x9f\x8a\x23\x8b\x2b\xfd\x76\xc6\x45\xa8\x8b\x08\x02\x2f\xf2\x21\xea\x7b\xf1\x5e\x3d\x6f\x81\x17\x29\xe6\x98\x74\x2f\xa8\xd9\x5c\x7c\x5e\x56\xcd\x96\xd3\xec\xea\xbd\x46\x00\x0d\x3c\x1a\x60\x99\xa6\x84\xaa\xc8\x50\x97\x32\xcb\x20\x7f\x19\xa0\x79\x69\xe0\x29\x85\x7b\xcf\xdb\x3c\x6d\xaf\xc3\x27\xbe\xb3\x44\x6a\x92\xb8\x5e\xd9\x96\x06\x3e\xf5\xd0\x34\xe7\xc8\x3f\xe7\x50\x1b\x0c\xd1\x5d\x0b\xb5\xa0\x81\xaf\x14\xd6\xe4\xbe\x35\xb1\x5f\x6e\xc4\x30\xed\xa1\xc0\x8b\x11\xa8\xf5\x9c\xd7\xa8\x95\xd2\x5b\x30\x6e\x47\xf2\x43\xb9\xf6\xdb\x13\x1b\xd0\x30\x30\x36\xbb\x47\x14\x7d\x3b\xa4\xb2\x68\xbf\x58\x2a\xec\x82\x2d\xad\xff\x5a\x07\xd2\xbd\x95\x73\xda\x0f\x86\x31\xc7\x6e\x83\x15\xd8\xb9\x2d\xc1\x4e\x83\x88\xf8\x88\x76\xfe\x5e\xfc\xe3\x3c\x3f\x97\xe3\x84\x97\x06\x91\x36\xec\x1b\x27\x67\xe3\x5e\xae\x6a\xf0\x08\xc4\x22\xc2\xda\xcb\x7c\xfd\xe7\xaa\xf7\x64\x07\xb1\x50\xcc\xeb\x2b\x61\xf6\x08\xd9\x83\xfb\x49\x9a\xa5\xdb\x31\x5b\xee\x6e\x8a\x3e\xd1\x80\xfa\x3e\x6a\xb9\xfe\x28\x4a\xe0\xbb\x57\x0b\x43\xff\x22\xdd\x68\x3f\x47\x10\x47\xd0\x92\x79\x73\xf8\xe8\xc9\x5e\xd2\x80\x42\x48\x13\x0b\xaf\x86\xba\x7b\xc9\x27\x76\xc8\x20\x89\x20\x66\x53\x76\xb5\x13\x8e\x07\x34\x48\x48\x84\x2d\x83\xff\x2d\xd2\x7c\xff\x0a\xdf\x9b\x79\x9b\x3c\x2b\x35\xb2\x10\x15\xd4\x6b\x63\x81\x31\x86\xce\x37\x63\x22\x42\x5d\x63\x62\x96\x2b\x04\x95\x5f\x7a\xc6\x51\x34\x48\x92\x10\x65\xaa\x45\x20\xfa\x80\xe2\xe6\x80\xc2\xc8\x3d\x03\xec\xa5\xde\xf1\x4b\xd5\x1e\xb2\xb1\xf1\x01\x41\x62\x28\xf6\x73\x0b\x5d\xe7\x3e\x01\x32\x20\x3d\xd5\x89\x5f\xbc\x2c\xd3\xe2\x4a\xd7\xea\xc6\x63\x9f\xe8\x44\x24\x3d\xf5\x86\x45\x61\xa1\x98\xa3\x9f\xcb\x45\x12\x9b\xea\x46\x9e\x5f\x32\x3e\x88\xfe\x03\xae\x25\xf3\x7a\x0d\x8e\x16\xcd\x3e\xd6\x3b\xa4\x81\xf4\x49\x02\x46\xeb\x41\x14\x69\x9f\xd6\x42\x03\xc9\x43\xe3\x0e\xb9\x7e\xda\xcf\x9e\x66\x18\xdb\xb8\x63\xca\xe7\x48\x0c\x3a\xbc\x18\x47\x06\x03\xe3\x70\x7b\x76\x00\xc4\x8f\x7d\x94\xaa\xb3\xb6\xf0\x4d\x9e\x8d\xdc\xa7\x41\x1b\x99\x06\x9a\x1b\xb7\x4e\x2b\xc1\x06\xfc\x38\x58\xce\x42\x2f\x92\x60\x75\xa5\xa7\xac\xde\x69\xe8\x91\x04\x3b\xc1\x9d\x7a\xeb\x91\x0f\xf5\xe0\x27\xdf\xef\xd0\x23\x32\xb0\x6b\xe2\x1d\xaf\x79\xf8\xf7\xee\x4f\xe8\x09\x03\x6b\x6e\x92\xcb\xe1\xf5\x0c\x9f\xed\xd0\xe7\x0c\xeb\x10\x9a\x1f\x41\x35\x11\xcd\x23\xaf\xaa\x7d\xb1\x52\xe3\x1f\x10\x5a\x50\xec\xa6\x2c\xfa\xf8\x2b\x1a\x86\x4a\xe2\x7b\x67\xab\xf5\xc3\xf6\x06\x0d\x23\x12\x21\x5e\xf3\x3b\x1a\xd4\xba\x3f\xb2\x18\xc3\xd9\x96\xbb\xef\x6a\x31\xa8\xfb\x3c\x5c\xc1\xc2\xd8\xaa\x73\xbf\x40\xfd\xdd\xef\xe3\x34\x69\x18\x47\x09\xb6\xf9\x0e\x3d\xf3\x86\x29\xca\x3b\x0d\x49\xc0\x8c\x47\xb2\xc9\x60\x97\x25\x77\xe7\x20\x31\x37\x05\x14\xae\xe1\xab\xb0\x3a\x24\xb1\x32\x2a\xe1\xfc\x08\x6b\xa5\xda\xcf\xf3\x18\xa3\xba\xbb\xce\x5a\xe9\x0b\xc9\xb9\x66\x3c\x60\x50\xd5\x7a\xb5\x5c\x07\xb2\x76\x24\x8d\x14\xb6\x43\xcc\xe2\x7b\x6d\xa6\xe7\x86\x25\x12\x05\xfd\x16\xf3\xd5\x9f\x5f\xd4\xa6\x98\x1b\x2e\x24\x4a\x2b\xef\x5e\xd3\x1c\x3a\x43\xe0\x5b\xdd\xa3\x09\x5e\x67\xd7\x69\xa1\x21\x8b\x7c\x66\x33\xf8\x9f\x50\x56\x57\x5c\x15\x1a\x32\xe6\x01\x6b\x03\x44\xa8\xfa\x05\x20\x5b\xe7\x6b\x06\x05\x60\xa4\x59\xea\x73\x99\x6f\x0a\xdc\xfd\xdf\xae\x88\xc1\xed\x68\xa3\x3e\xd9\xbc\xd4\x08\x3a\x5a\x6b\x2b\x6c\xeb\x5e\xd8\x90\xb1\x18\xf9\x6a\x28\xef\x56\x21\x65\x68\x97\xfe\x1b\x0e\x0a\x8c\x41\x38\x2a\x2a\xb9\xb1\x09\x31\xed\x69\x9e\x3f\x9f\x5e\x50\x5e\xd1\x1d\x11\xc4\xb3\x8f\xde\xd2\x84\x3a\xcd\xd5\xff\x4c\xe1\x63\x74\x0f\x98\x4e\xb0\xde\x53\xb7\xda\x25\x2f\xa9\x9c\x9d\xeb\x57\x63\x16\x34\xbc\xaf\x89\x6f\xd9\xc5\x36\x25\x7e\xe4\x0a\xbe\x6a\x32\xd3\x30\x09\x3c\x04\x57\xbc\xa7\xf0\x11\x07\xee\xea\x92\x24\xf6\xa5\x83\xfb\x2d\xdd\x02\x3c\xfd\xd4\x25\x4a\x24\x9d\xe4\x70\xfb\xec\x0d\x9c\x12\xed\x50\xae\x02\x2b\x1f\x7f\x2c\xde\x01\xf1\xf9\x46\x7a\x75\x38\x4c\xc4\x04\xef\xeb\xe3\xea\xe9\x70\xbf\x5d\x2e\xff\xb9\x3c\x38\x05\x14\x77\x81\x42\x32\xe7\x83\xbf\xe9\x9c\xb3\x2b\xeb\x44\x31\xd9\x15\xa0\xa1\x14\x92\xc6\x3d\x0f\x8c\xd9\xe9\x04\xa6\x13\x29\x5f\xdd\x89\x15\x89\x30\x40\xda\x9d\xb2\xb4\x76\xe5\xcb\xe9\xd3\x29\xa1\x05\x1d\xd8\x31\xf4\xf4\x53\x69\x08\xa1\x1f\x0b\xc7\x2e\x7c\x69\x36\xc2\x26\xef\x7b\x80\x17\x2e\x2f\x5b\x38\x9d\x4d\x6c\x3b\xd2\x38\xa5\x21\x24\xc2\x95\x25\x3a\xe4\x70\x7b\x4c\x62\x75\x60\xcb\x55\x3a\xf8\x3b\x37\xce\x44\x08\x21\x1e\xee\x2f\xa1\x26\x7e\x60\x82\x97\x63\x9a\x1b\x2d\xbb\xe1\xfd\xd3\xd2\x78\x6b\xed\x56\x8f\xfd\x85\x54\x03\x05\xdd\x3a\x17\xfc\x02\x78\xeb\x97\xf4\x22\x2f\xf1\x13\xab\xdd\x62\x5f\x90\xaf\x56\xb8\xc8\x83\x08\x43\xf7\x0c\x74\xcd\xe8\xf0\x0a\x22\x1f\xb4\xb1\x0e\x30\x2b\xe8\x9c\xe7\x6f\x58\x83\xb3\x87\x03\xcf\xb0\xc3\xb3\xe2\x45\x17\x59\x5a\x0c\x57\x81\x28\x08\x19\xca\x11\x98\xfe\xc6\xe3\xa2\xfd\x58\xcc\xd1\x7d\x6e\xf6\xf4\x78\x7f\xae\xcf\x25\x38\x94\x92\x3b\x2e\x79\x44\x5a\xf6\xe7\xf8\x59\x8d\x02\x45\x22\x03\xed\x45\x76\xd5\x04\xa0\xd9\x0e\x0c\x7d\xaa\x50\x9c\xfa\xb5\x04\xb8\x7b\x70\xa7\x0f\xb9\xb1\x01\x45\x74\xa8\xa3\x3d\xcf\x72\x85\xb3\x68\x5a\x05\xdd\xb2\xeb\x3e\x23\x8d\xe7\x7d\x13\x0e\x3e\x76\x79\x46\x14\x2a\x23\x98\xf0\xbf\x80\x7a\x6c\xe7\xba\x38\xf2\x3a\x95\x8b\x22\xcb\x40\xd6\xad\xd7\x08\x8d\x42\xd0\x88\xa9\x7b\xeb\x3e\x1b\x11\xd3\xf3\x2d\x8b\x7c\x00\x51\xa3\x51\xc4\x7d\xe1\x77\x7c\x1e\x54\x91\xea\x2c\xb5\xfe\x56\x43\x9e\x46\x31\x97\x91\x6a\x5d\x7a\x51\xea\xe9\x39\xcd\xeb\x3f\x46\x1f\x1a\xde\xb2\x98\x2b\x23\x71\x59\xf3\x17\x70\x26\xab\x34\x22\x01\xb1\x24\x8b\xba\xe2\xf7\x67\xf9\x56\x0d\xae\x97\x84\x82\xda\x7c\x63\xb3\x5e\x3f\x18\xab\x8c\x80\xb6\x87\xe3\x48\x76\xd8\x41\xd7\x82\xeb\x0e\x6a\xe7\x6e\x9a\x96\xa0\x5a\xf1\x60\x1a\x11\x1d\x05\xf6\x85\xb3\xfd\x78\x0c\xc2\x86\x37\x99\xfa\x51\xdc\x19\x3e\x99\x2c\xda\x18\x2f\x7c\x5e\x21\xd1\x86\xcb\x44\xc4\x7c\xbf\xd3\x7a\xae\xf6\x06\xd9\x02\xe7\xe3\xc1\x9f\x2e\xb7\x47\x2c\x0c\xd1\xb8\x6b\x53\xbd\x61\x4d\xc3\x5d\x28\xa3\x1c\x03\x3d\x83\xf9\x37\x8e\xfe\x87\xd9\xc2\x49\xdc\xd2\x88\x09\x8d\x17\x29\xd0\xfc\xcc\x2c\x46\xc3\x89\x67\x4a\x60\x3b\xf8\xae\xe4\x2f\x45\xfe\x63\x2a\x48\xbc\xf1\x23\x94\xc4\x87\xfc\x74\x6e\x26\xf7\xeb\xc8\x32\x42\x6b\x78\x94\x52\xa9\xe1\x50\x17\xfd\x96\x3b\x8d\x38\x33\x16\x95\x25\xfc\x2f\xc8\x7a\x01\xa5\x55\x76\x9d\x16\x1e\xa6\x91\x08\x62\xcb\x1d\x45\x79\x5e\x63\x37\xf9\xc8\x6f\xec\x46\x91\x50\xc4\x4c\x5e\x89\x79\x43\x51\x5e\x06\x36\x71\x37\xae\x58\x32\x82\x75\xec\xf9\xd9\xc5\xfe\x91\xd4\x1e\x7e\xaf\x71\x7a\x30\x88\x44\x67\x48\xe2\xc6\x00\x35\x5e\x14\x4d\x0e\xd0\xac\x90\x98\x06\x9b\xf0\x62\x78\x7e\x80\x50\xf4\x20\x8c\x0f\x85\x7c\x7b\x3e\x99\x80\xb3\x03\xce\x8e\xa6\x1c\x74\x82\x55\xbf\x13\x2f\x2b\x98\x17\x45\x36\xc8\x0b\x22\xcd\x8d\xb0\xf9\xb7\xf4\x1d\x66\xf9\x2c\x7f\x81\x6c\xb1\x9b\x0e\xc5\x23\xad\x0c\x86\xab\x82\xfa\x81\x57\xb5\xb1\x28\xda\x42\xe5\xfc\x52\x6d\x53\xd3\x72\x99\x68\xec\xc5\xd4\xa4\x9b\x75\xe1\x48\xab\x34\xf6\x98\x36\x80\xba\x22\xcb\x7a\x32\xd8\x34\xf6\x23\x95\x38\x51\xd6\x6b\xcd\x6a\x1a\xfb\xcc\xa8\x03\x1d\xd6\xc7\x1c\xaa\x2e\x2e\xb4\x87\x03\x96\x68\xd5\x73\x3d\x30\x02\x0b\xa3\x73\x04\xc2\xb8\xaf\xbc\x18\xd3\x07\x00\x65\xf0\xca\xc6\x19\x66\xf0\x6b\xe3\x40\xfb\x58\xf2\x32\xb8\xa8\xd9\x4b\x6b\x68\x40\xe3\x30\xa2\x82\x75\x01\x88\xf9\x18\x8a\xbc\x22\xd6\xc5\x0a\x7f\x0f\x1e\x2d\xe6\x3e\x4a\x05\x76\x6a\xe6\x45\xbf\xce\x1e\x87\x9c\xa1\x62\xe9\x66\xf1\x7d\x96\xb9\xcd\x33\x8e\x78\x84\x7a\x80\xe8\x83\x6f\xa8\x9b\x5f\x58\x68\x5e\x75\x98\x51\x37\xbc\x8b\x09\xe2\x88\x53\x65\xd4\x40\xcf\x15\xec\xa0\xdd\x1a\xe3\x98\x1a\x82\xed\x3f\xf6\xf3\x3f\x6e\x3b\x2b\xd2\x38\xe6\x14\xa5\x19\x5f\x79\x65\xbc\x03\xdc\x09\x08\xe1\xce\xb8\xf0\x31\xcd\xeb\xbb\xf4\xa5\xbf\x93\x4f\xf5\xec\x69\x4c\x68\x4c\x93\x5e\x51\xaf\x2b\x3e\x5d\x53\x9d\x86\x97\x41\xc3\x84\xdb\x52\xdb\x8f\xb3\x2a\xaa\x7d\x61\x44\xd3\xdd\xd5\x50\xb0\xf2\x31\xe7\xaa\x2e\x8e\x03\x1a\x22\x8d\x59\x24\x50\xd8\xe7\xf0\xca\xab\x99\x51\xe3\x48\xb3\xb6\xb1\x4d\x63\xc6\x35\x46\x6e\xaa\x80\x6a\x99\xd7\xe5\xc5\x28\x3b\x0e\xaf\x3d\x89\x7d\x5c\xec\x1f\x8a\x97\xed\x00\xa6\xe7\x8e\x4b\x1f\x09\xdd\xf3\xf3\xa5\x8f\x8b\x9d\xde\xfc\x62\xe1\x1b\x7d\xa4\x17\xa8\x0f\x3a\x2d\xab\x1a\xbf\xec\x8f\x6b\x0d\x58\x1a\x0b\xae\x70\xf3\x3a\x98\x30\x19\x7f\x59\x79\x59\x8d\xbf\x5f\x40\x80\x88\x00\x38\x5a\x87\xb1\xca\x18\xb5\x4d\x8b\x15\xd2\x58\x06\xa1\xe7\xd4\xff\x20\x1d\xbf\x79\x32\x96\xdc\x61\xf0\x31\x87\x46\x99\x9a\xd1\x98\x24\x46\x75\x86\xd5\x62\xdd\x57\x93\x70\xdd\x91\x58\x69\x8d\x1a\x8b\xc7\x22\x6f\x82\x8f\x95\xda\x17\xa8\x13\x8f\xe9\xf4\xf0\x54\xe0\x79\x3e\x77\x3b\x1d\xc6\x39\xf7\x48\x7c\x71\xe0\x59\x1a\x43\x44\x42\xee\xbc\xaa\xde\x8b\xf4\x9a\x14\x77\x63\xa6\x81\x12\xe4\xde\xb6\xa4\x3a\x03\xc9\xaf\xbe\x28\x60\x12\x2f\x34\xba\x8c\x25\x54\xf2\x0c\x53\xb5\x13\xe2\x09\x43\xf7\x3d\xa0\xca\x94\xbd\x4a\xe2\x47\xa1\x31\xe9\xc9\xf8\xa0\xc1\x4d\x7c\xe2\x21\xac\x68\x87\xb6\x67\xa8\x72\x02\x6a\x5b\x9c\x6b\x28\x77\xdb\x9f\x57\x28\x87\xb1\xc9\x3a\x25\xbe\x54\xb8\x34\x95\xa0\xce\x12\xbe\xf3\x5a\xbe\x2e\x8a\x22\x53\xc5\xc7\xad\x1f\x11\x84\x22\xee\x56\xac\xb6\x04\xd2\xdf\x0a\x48\x60\x85\x49\x78\x55\x41\x59\x2f\xff\x75\xe5\xee\x4e\x49\x40\xfb\xce\x02\x07\x61\x72\x9e\x2f\xe7\x9c\x04\x60\x4a\x20\xa9\x2c\x6c\x43\xaa\x03\x00\x51\x12\x68\xe6\x05\xd6\xe5\x68\xc1\x4f\x5b\x63\x62\xeb\x8e\x86\xd4\x37\x3b\xe3\x94\xed\xd0\xe8\x7b\x22\x2f\x36\xf8\x7e\x83\xb7\xae\x8b\xb7\xfc\xb0\x5a\xac\x5d\x32\x4a\x62\x11\xa1\x9b\x08\x3f\xd7\xc5\x0e\xba\xdb\x84\xf6\x6f\x4e\x99\xe0\x0e\x9a\x28\xdb\x79\x0f\xba\x11\x8c\x06\xd6\x08\xe3\x20\xa1\x99\xba\x6c\x8a\x16\x4d\x09\x0d\x68\x90\x74\xc6\x79\x86\xbb\xda\x7b\x62\x98\x1b\x97\x10\xcc\x19\x5a\x8a\xe8\x23\x6e\x66\xe3\xb3\x29\xa3\x81\x7c\xae\x5c\xeb\x18\x3e\x7e\x41\x3a\xbd\x28\x12\xaa\xb5\xb6\xb5\x5d\x34\x42\x1f\x4c\x15\x92\xe7\x27\x37\x75\xc2\x12\x86\xea\x07\x22\x9d\x46\x09\x0f\x12\x30\x92\x84\x06\xf0\xa1\x16\xdf\xef\xdd\xf4\x24\xc0\xa5\x83\xf9\x9f\x2f\xeb\xd3\x20\x11\x25\x89\xf6\x5a\xad\xf5\xfe\x86\x4d\xb8\x27\x10\xde\xf7\x6e\x04\x39\xfa\x0f\x05\xa7\x86\xb5\xad\x4b\x68\xc2\xe3\x05\x2f\xcb\xa2\x1e\xbf\x74\x9c\x45\xa1\x65\xe0\xb5\x55\x15\x22\x3c\x5f\xda\x5b\xf5\x54\xd4\x5b\xc0\xc7\x1c\xd7\x98\xbe\x35\x31\x25\x22\x4e\x30\x52\x5b\x66\x97\xcf\x72\xf7\x5a\xa6\xc7\xd3\x3d\x2f\x8f\xe3\xf4\x8d\x08\x15\x21\x94\xfc\x61\xbd\x7e\x5c\xcd\xda\x67\x49\x28\xa3\xc5\x7c\xe4\x6f\x23\x52\xce\xa8\x1e\x74\xe3\x9d\x90\xa1\x11\xd6\x68\xad\x78\x8c\xf0\xc4\x95\x51\x4e\xf7\x09\xe5\x79\x46\x9b\xe5\xac\xd2\xda\x0a\x52\x0f\xf6\x24\xa2\x7c\xa2\xfa\x7d\x14\x13\x8b\x14\x65\xda\x42\x1d\x88\x0a\x89\x1a\xf9\x1c\xba\xee\x3b\x01\x4f\x39\xa4\xfb\x13\x7c\xd6\x13\xad\x01\x02\x7e\x84\x39\x60\x93\x11\xe1\xf1\x56\x89\x86\x12\x1d\x1a\xaf\xf9\xac\xf8\x58\x14\xc7\x53\x51\xdd\xfa\x21\x9a\x18\xa7\xec\x9e\x4a\xa8\x9f\x7c\xe7\xd5\xeb\xc1\x8e\x6b\xcf\x28\x15\x22\xe6\x5d\x5c\x90\xb5\x15\xe9\xcd\xcc\xe5\x7a\x08\xd0\x69\xb6\xce\xd9\xf6\x07\x9a\x68\x6d\x0f\xfe\xc1\xf3\xfe\x4f\x6a\xc8\x78\x32\xd7\x1e\xd9\x72\xad\xb3\xe9\x06\x27\xf5\xa9\xa1\x3d\xe4\x45\x79\xe4\xd9\xb6\x28\x8e\x8f\x8e\x90\x4b\xb1\x95\xdc\x2d\xb4\x26\xf1\xfa\xb2\x97\x46\x83\x80\xcb\x16\x05\x70\x5a\xeb\xfe\x4b\x42\x03\x99\xe0\x4b\x52\x35\xab\xe2\x39\x43\xc5\xd5\x61\x25\x2e\x9a\x56\x90\xb7\x9f\x0f\x83\x18\x15\xd1\xd2\x6a\x65\xb6\xd2\x2b\x82\x36\xa5\x61\xc4\x10\x00\x85\x0e\x18\x6b\xad\xd1\x9a\x10\xe4\xb9\x86\x47\xfe\xd9\x55\x05\x68\x18\x09\xec\x70\xce\x9f\xe6\xbf\x15\xd5\xa3\x34\x14\x01\x36\xf4\x0f\xdf\xb9\x7c\x4d\xcb\xe2\xed\x3c\xf8\x61\x91\xf4\x31\xda\xdf\xbd\xa6\x90\xa9\xc5\xb9\x1c\xc0\x01\x68\x4c\x22\x6c\x57\xfc\xf3\x92\x65\x69\xf7\x47\xe3\x85\x92\xf6\xcc\x78\xa7\xe7\x94\xf8\x31\x6f\xed\x9d\xee\x78\x0d\x9d\x74\x31\xa5\x24\xf2\x63\xdd\x22\xeb\xfa\xc6\xa4\x53\x84\x0c\x4a\x09\x37\x37\xa8\x55\x24\x99\x2c\xe0\xd3\x26\xb3\x46\x1c\xd4\xa9\xc8\xab\xa2\xec\x17\xf1\x28\x65\xb1\x74\x25\xc3\x55\x9e\xd6\xdc\x19\x77\x3d\x57\x69\xfe\xe2\x64\xa9\x47\x9d\x09\x4a\x13\xf0\x8d\x3e\xfc\xae\x2e\x4e\xed\x5f\x79\x88\xf8\x82\xe5\x5f\xdf\x07\x53\x46\x39\x47\x5a\x04\x36\xab\x0e\x90\xab\x6f\x66\x61\x75\xc7\x19\xf3\xb1\x99\xf5\x0d\xea\x45\x5a\x5f\x76\x43\x4c\x15\x65\xdc\x47\x51\x30\x23\xf9\xea\x2a\xbf\x5f\xa7\xe8\x34\xf1\x13\x61\xa6\xe6\x7f\xcf\xd5\x2d\x20\x21\x4d\x02\x1d\x34\xa3\x36\x70\x14\x69\x93\xf5\xb4\x4e\x86\x94\x26\x89\x42\xf1\xb4\xfd\x51\x46\x7f\xe3\xa9\x4a\x94\x34\xc6\x98\x90\x2b\xe3\x34\x8e\x2a\x3c\x03\x83\x41\x9c\x37\x23\xd7\x88\x41\xb2\x2d\x99\x2f\x78\xcf\x55\xe4\x3f\x5c\x19\x78\x6c\x1c\x01\xd0\x41\x79\x7a\x2a\x38\xd3\xbe\x2d\x2f\x1a\x8c\xc2\xdf\x11\x56\xa6\x94\x8b\x50\x3a\x85\x9a\x7e\x81\x83\x72\xcd\xb0\x76\xee\x5c\xa1\xaa\x8a\xbf\x8c\x4d\x0d\xec\x0c\x4d\xe6\x57\x54\x78\x31\x96\x71\x8e\xfc\xb3\xbd\x9b\xf6\x90\x54\x12\x21\x6f\x0e\x93\x67\x55\x9d\xd7\x27\x63\x61\xe6\xf6\x0b\xaa\x02\x19\xb5\xda\x43\x06\x6a\xd2\x1d\x23\x01\xb5\x0c\x5a\xdc\x01\xad\x4b\x93\xfe\x9a\xe6\xd3\xfd\x70\x95\x18\x7b\x1b\x93\xc8\x18\x85\xdc\xe1\x08\xf0\x12\xb0\xa0\x9c\x6f\xfc\x08\x96\xc9\x34\x3e\xeb\x8d\xfb\xf7\xf5\x97\x83\x32\x6d\x55\x0d\x4d\xe8\x8c\xe0\xd9\x0c\x14\xfe\x8e\x26\xd9\xd8\xf0\x4b\xf7\x30\x81\xe2\x98\xa7\xd6\x9f\x0f\xc5\xcb\xe8\x12\xb5\x1f\xa0\x8d\xdc\x55\x95\x91\xea\xd0\xe8\xaf\xb4\x3b\xbc\x51\xc8\xdb\x35\x5b\x67\xfa\x09\xd9\xc4\xfe\x4a\x35\x35\xb7\x45\x40\x8d\x22\x22\xc0\x8f\x87\xa0\x3d\x61\x02\x58\xc7\x29\xb4\xce\xd2\x1c\xb0\x96\x74\x63\x8f\xa5\x5a\x27\x88\x2d\x72\x68\x58\x3e\x32\xc6\xa2\xcc\xf7\x58\x6c\xe3\xa4\x4d\xc6\x2f\x3b\x18\xf7\xf6\x98\xcf\x43\x0a\x6e\x95\xfc\x2a\xb7\x60\xbe\x0c\x51\xbd\x42\x58\xc1\x86\xca\x7a\x0a\x4d\xa0\xb1\x59\x20\x13\x6c\x07\x9c\x73\x8d\x9a\x44\x4d\x0e\xd8\xad\x51\x2c\x00\x1f\x69\x51\x58\x10\x7d\x2c\x5a\x80\x16\x0b\x63\x63\xf5\x55\xa1\x92\x6f\x0d\x41\x13\x15\xe0\xaa\x38\x39\x03\x2c\x14\xc6\x87\x6d\x99\xbe\xbc\xd6\xaf\xcd\xc2\x9a\xe6\xcd\x4c\x14\x32\xe5\x99\x11\x88\x44\x91\xe3\xbf\x27\x11\x4b\x59\xe4\x47\x48\x80\x77\x89\xe3\x3f\xf7\x7f\xb6\x2d\xaa\xe9\x80\x9c\x45\x24\x41\x13\x2a\x94\x42\x5e\xeb\xa1\xbd\x13\x65\x11\x8b\xb1\x9c\xf5\x04\xef\x5c\xf1\x79\xc6\xe5\x1b\xca\x56\x8c\x4e\xc2\x35\xf2\x4c\x6c\x5b\x7f\x20\x96\x3b\x41\x55\x18\xcd\x42\xa4\x63\x66\xbc\x35\xad\x44\xed\x77\x5e\xaa\x01\x03\x83\x32\xea\x03\xe2\x73\x8c\xaa\xe1\xd9\x79\x5c\x50\x46\xb9\xc9\x95\x2b\xa8\x9f\x9b\x73\xff\x31\xf6\xfc\xb1\xe3\x58\xa8\x7c\xed\xd2\x75\x7c\xac\x51\x4c\xf1\x94\xa5\x30\x0a\xd9\x19\xe3\x0c\x03\xac\xef\xeb\xe7\xbf\x31\xe7\x4c\x86\x28\xde\xf5\x7d\x2a\x35\x64\x4c\xc5\x18\x85\xd9\x5a\xa8\xa9\x72\x74\x82\x32\x23\x92\x0c\x65\x89\x6f\x60\x80\xda\x72\xdc\x1c\xcc\x68\x34\xe1\x89\x4e\x8c\xca\xa4\x9b\xb2\x1e\x39\xda\x0e\xe1\xc2\x24\x9a\xae\x61\x77\x7f\x6e\xf6\xa2\xea\x5c\xf6\x7a\x69\x8c\x6b\x25\x6d\x45\xc5\xaa\xb2\x1d\xfb\x09\xe3\xe8\x59\x11\x42\x21\x5a\x45\x43\xcf\xd4\x9b\x32\x21\x03\xdc\x1c\x0f\x86\x25\x0c\xf5\xee\x2d\xcd\xa6\xb1\x59\xec\xeb\x1d\x8c\xc9\x58\x20\x3a\xe9\x61\xbd\xf8\xb1\xbc\x3b\x04\x7f\x1d\xee\x3a\xf6\x02\x93\x3c\xc4\xd4\xbf\xd9\x85\x76\x67\x71\xe3\x45\x97\x22\xc6\xbe\x2b\xd6\xa8\x9a\x19\x71\x6b\x24\x53\xb1\xc4\x98\x64\xb6\x5b\xf4\xaa\x9a\x4c\x11\xa3\xc7\xeb\x66\x6a\xb9\xff\x7e\x63\x02\x14\x31\xd2\xc4\xab\xc5\xda\x60\x7f\x5b\x73\x39\xca\x14\x17\xc2\xc9\x90\x1e\x74\x71\x2e\x91\xbf\xbd\xfc\xd7\xdc\x6c\x77\x6e\x98\x26\x86\x30\x61\xb8\x10\xce\x46\x1a\x17\x9f\xd8\x0d\x61\x49\xd8\x99\x8b\x6f\xca\xe2\x58\xfc\xb8\xa8\xcb\x74\xb9\x3b\xf1\x02\xe2\x84\x8b\x8c\xee\x15\xa6\x2b\xfb\xd7\x12\x2a\x8c\x03\x06\x93\x93\x78\x31\x67\x26\xf0\x97\xc5\x3b\x94\x97\x56\xc1\x87\x26\x1e\x65\x08\x91\x41\x1a\x59\xf5\x1d\x5a\xea\x49\xe2\xfb\x1a\x6b\x12\x8f\x97\x66\x87\xeb\x6f\x20\x89\x1f\x48\x0c\x9a\x30\x84\xdd\x94\xb0\x5a\xac\x7b\x0f\x61\x12\x10\x4f\x98\xfe\x07\xb6\x04\x47\xed\xda\x24\x24\xc6\x6c\xf0\x1b\xd4\x73\x5e\xc1\xd3\xdf\x43\xe5\x24\x21\xf5\x23\x8c\xe7\x8c\x81\x95\xd5\xca\xbc\x83\x53\x09\x43\x64\x47\xaf\xac\x9c\x84\x20\x74\xe4\x1e\xf5\x22\x03\x9e\x3f\xf2\x93\x09\x7f\x47\xc4\xb8\xe1\xfc\xc6\x1e\x35\x44\xe7\xa2\x38\xde\x17\xe5\x3c\xed\x2a\x7c\x49\xcc\x09\x22\xfc\xe7\xab\xfd\xaf\x57\x9e\xc1\x40\xca\xa4\x39\xcc\x85\x0d\xe1\x9f\xe0\xe3\x86\x23\x35\x4d\xa8\x2f\x51\x74\x72\xff\x01\x79\x7d\x59\xe7\xf0\x98\x66\xd9\x15\xf5\x6b\x38\x05\x4d\x22\x1d\x3b\x01\x7f\x85\xf1\xf9\xe8\x4e\x53\x1d\xe3\x82\xb7\x7c\xd8\x0f\x4f\xf4\x1f\xd1\xae\xec\xc9\x58\x1c\xe2\x6d\x36\x55\xab\x7d\xb1\xe7\x23\x3a\x48\xc2\xb8\xef\x19\x5d\xe5\xa7\x73\x96\x4d\xa6\xa4\x09\x53\x1a\xa3\xc8\x2d\x18\x86\xe6\x00\x84\x94\x30\x20\xa8\xb9\xdc\xb1\x9d\x1f\x16\xbf\x36\xd7\x6b\xa5\x1d\x9e\x78\x04\xa3\xe7\xdd\xd1\x78\xe3\xda\x20\x1b\xe9\xd6\x53\x48\x1c\xf7\xb1\x80\x63\x4d\xe3\x3d\xcd\x32\x9e\xe6\xa8\xe4\xed\xe2\xf2\xd1\x17\x44\x02\x25\xfd\xad\x44\xeb\x09\xf2\x09\x03\x74\x9a\x24\x14\xb0\xdb\x55\xd5\x3d\x4d\x88\xbb\xb4\xe2\x59\x56\x7c\xf4\x8d\x70\x69\xc2\x63\xf0\x79\x67\xcf\xdb\xac\xdb\x07\x5e\x8a\xb4\xae\x0e\xd5\xcd\x90\x3d\xe1\xda\x8f\x54\x0b\x75\xb4\x15\xbd\xfe\x16\x94\x88\x28\x51\xe0\x46\xf4\x5a\xee\xc7\xeb\xe2\x5f\x22\x88\x46\x34\x3f\xba\x51\x61\x20\xec\x0e\x48\x12\xf6\x8d\x3f\xe7\xa9\x6a\x62\xcc\xf3\xb8\x86\x9e\x08\x2d\xb0\xe2\xb1\x79\x7e\xdc\x7c\x5f\xb7\x18\x80\x44\x06\x11\x02\xa2\x9a\x24\xb6\xa2\xed\x5f\x29\xc7\xd3\xe2\x6e\xdb\xe2\xd4\x46\x17\x25\xb9\xa9\x48\xae\x64\x31\x56\x91\xfe\x5b\x12\x45\x34\x91\x9a\x05\x51\x6b\xef\x88\x26\xaa\x4d\xaa\xdc\x4e\xbd\x22\x0a\xeb\x87\xdf\x9f\xf7\x61\x74\xf8\x35\x7b\x78\x58\xba\xea\x4c\x02\x9e\x46\xd1\x38\xab\xe5\xb8\x85\xea\x7c\xec\x3e\x09\x7e\x92\x74\xc4\x21\x09\xa0\xaa\xc9\xb2\x6a\x02\x8c\xa1\xc2\x10\x7c\xa6\x55\x5d\x4d\x99\x82\xd1\x44\xfb\x09\xa6\x23\x75\x79\x59\xe5\x15\x94\xf5\x0e\xfe\x75\x86\x5c\xc2\xb8\x37\xc2\xbd\xc4\x70\x55\x9b\x00\xf4\xb1\xc8\xdb\x65\x9a\x7b\x3c\xc4\xe0\x73\x77\x02\x50\x0b\x6e\x85\x83\x46\x49\x39\xf7\x65\x20\x55\x47\x34\xbf\x6f\xf6\xc2\x56\x50\x82\x72\x5f\x19\x95\xaa\x03\x1c\xd3\xda\xf0\xfc\xd6\x1d\x76\xd3\xc1\xee\xaf\x14\x01\x28\x0f\x18\xb3\xbe\x91\x15\xb4\xf8\x64\xb7\x9e\xf3\xd0\x37\xd1\xce\xe2\xfb\xfd\x61\x7d\xcc\x53\x55\x64\x99\x73\x89\xa6\x3c\x0c\x23\xdc\xbe\xeb\xf6\x26\xdf\xa5\x57\x72\x9f\xc3\xfb\xca\xa3\xc0\x08\xfa\x55\x92\xe7\xeb\x73\x7d\x3a\xd7\xd5\x34\x62\xc3\x8d\x0f\x03\xad\x3b\xf7\x55\xa8\xf6\x85\x53\x79\x1c\xad\x46\x3c\x0e\x03\xdf\x52\xc5\x76\x1f\xfc\x34\xb9\xda\xde\xfc\xb7\x37\x25\x71\x4c\x03\x0b\x6e\x3b\x7c\xa4\xf9\x41\x16\xa0\xdb\x19\x21\x01\x65\xd0\xf5\x60\x5f\x60\xfc\xd8\x70\x12\x24\xbc\x65\x6f\xbf\x1a\xca\xe5\x70\x1f\xe1\x04\x34\xa2\x73\x66\xe7\x66\xea\x86\x1d\xe5\xe6\xcd\x09\x6d\x47\x79\xb1\xf8\x6e\x70\x22\x71\x7b\x30\xd6\x58\x9c\xaf\xa0\x4c\xa1\x9a\x0d\x00\xbf\x9c\x32\x0f\xbb\xb9\x46\x9e\x61\x78\x52\xa9\x85\x23\x92\xed\x5f\x61\x5f\x94\xf2\xf5\xf0\xa5\xc8\x07\xe5\x4c\x12\x7c\x30\x9b\x47\xca\x24\xca\xd3\xfb\xea\xd5\x5c\x4e\x54\xf0\x79\x12\x7b\xcc\xe6\xed\xf3\xd9\xf3\x74\x2d\x8b\x27\xd4\x33\xa2\xc3\x9d\xf8\xe4\xac\x7c\xa9\xfe\x82\xea\x66\x6f\x76\x7a\x7f\xe3\x09\x4b\x70\x67\x3a\x1c\x5e\xa0\x16\xc3\xd9\x4f\x92\x90\x73\x27\x5e\x30\x7e\x88\xb8\x95\x4a\x45\x0f\x46\xf9\x9c\x0f\xbc\x7e\x87\x8f\x26\xe7\x34\x94\x4e\xaa\x86\x57\x60\xc0\x51\xa3\xd7\x9e\x8b\x90\x04\xad\x58\xfd\xf8\xcb\xc0\x68\x6f\x54\xe8\x11\x87\xc1\x8e\x33\x3f\xba\xba\x37\xbd\x07\x54\x44\x94\x91\x2e\x08\xeb\x3b\x1d\x50\x2e\x62\xc1\xfb\xc1\xef\x21\xd5\x07\xcd\xd3\x6e\xe9\xe4\x22\x01\xec\xa6\x59\x6a\x3c\x76\xc7\x7a\x31\x1e\x17\x9c\xea\xa4\x0b\x29\x77\xc6\x7e\x78\xf0\x5a\xdb\x91\x32\x34\xe6\xca\x87\xd3\xb8\x6e\x77\x36\xf2\x4f\xc3\x9f\x2b\x43\x81\xe5\x8f\xc5\xf7\x3f\x07\x0f\xa7\x0c\x4d\x75\x2d\x2f\x1e\x8b\x12\x9e\xe0\xb3\xc6\xcd\xcc\x86\x81\xbd\xae\x0e\x97\x11\x47\x58\x4b\x5a\xe1\x08\xcb\x4c\x1e\xce\xb8\x14\x06\xad\x82\x5a\xca\x03\x4e\x5b\xbf\x70\xdd\x72\xe9\x9b\x0f\x24\xb8\x1f\x77\x48\xc8\xfb\xb2\x38\x7e\x5d\x40\xe3\xca\x97\xa6\x04\x99\xd5\x50\xba\x75\xb3\xad\x58\x0c\xc7\x42\x14\x59\x4f\x79\xf4\x35\xb9\x07\x18\x51\x32\x39\x88\x08\x1f\xfc\xd5\x7d\x0b\x61\xe4\x20\x28\xb7\xfb\xd4\x1e\xf8\x71\xde\xfa\xa9\x99\xbc\x6b\x38\xb5\x00\x12\x5b\x2c\xb3\xba\xe4\x83\xb9\xd5\x61\x84\xda\x4d\x08\x26\xc7\xe9\x9a\x77\xd5\x34\xae\xa9\x41\x94\xbc\x40\xfd\x33\xad\xb8\x09\x30\x36\x3c\xbd\x29\xab\xe9\x3e\x97\x18\x9b\xa7\xc3\xb9\x82\xd2\x42\x11\xa6\x17\x11\x2d\x22\xeb\x4f\x8e\xdd\xcd\x43\x37\xc9\xd3\x6f\x95\xf0\x22\x03\x49\x31\x54\xcc\xd5\x62\x1d\x1c\x1e\x56\x8f\x2d\xcc\x4e\x78\xcc\xb7\xc8\x4e\x53\x00\xbc\x03\x9e\x35\x4f\x2f\xaa\x83\xbc\x77\x2f\x8e\x1b\x9e\x18\x8f\x95\x36\x8e\x98\xbd\x94\x80\x88\xe5\xf6\x84\xdc\x78\x6a\xdd\xa7\xff\xfe\xb7\x5b\x4a\x85\xef\x99\x7d\xdd\x2e\xf3\x38\x2f\xf7\x9d\x88\xde\x97\x0b\xa7\xf0\x63\x4f\xb6\x48\x82\x31\x4e\xca\x8d\x11\x81\x68\x39\x5d\xb9\xda\xd5\xbc\xae\x1e\x5b\x76\xb8\xf0\xb5\xf6\xd5\x10\xc9\x3d\x07\xde\xde\x38\x11\x50\x89\xad\x5c\xe5\xcc\xe3\x46\x15\xda\x9b\x05\x09\x11\xe8\x18\x0b\x2f\xf9\xf9\x68\xd4\xcb\xda\x73\x86\xbe\x4f\xa0\x95\x00\x69\x9e\x82\xb1\x6b\x15\x15\x61\x04\xd6\x04\x95\xab\x26\xeb\x6a\x41\xed\xed\xf9\x43\x2e\x30\x5b\x9f\x43\xab\x19\x8f\x6f\xf0\xef\x12\x93\x89\x9d\x58\x84\xc2\x44\xa0\xa9\x83\xcc\x58\xd0\x46\x64\xfb\xa9\x22\x52\x0a\xfb\xc2\xb6\xe2\x68\xad\xaf\x46\x4a\xf4\x54\xc4\x7e\x14\x05\x2d\x58\x36\x3d\x9e\x8f\xbf\xf8\x48\xe4\x8b\x0a\xe2\x4b\xd4\xde\x7b\x49\xdf\x3b\x1c\xf8\x74\x8e\x2e\x08\x13\xc4\x6b\xd1\x9a\xf7\x25\xc0\xb7\x81\xf5\x0b\x15\x44\x6a\xfc\xca\x54\x16\x1b\x5e\xf2\x23\xd4\x50\x56\xbb\xb6\xce\x2e\x68\x68\xc0\xd0\xcd\x25\x15\xf2\xed\xd9\x36\x21\xfb\xd8\x8b\x68\xf4\x66\xd0\xc8\x03\x0b\x5a\xee\xab\x94\x5b\x99\x7f\xfb\x4f\x4b\xd7\x14\xcc\xa7\x08\x62\x10\xf0\x92\x1a\xe9\xd1\xfe\x4c\x5b\x09\x10\x2a\x12\x65\x90\x82\x27\x5e\x99\x24\x06\xf2\xfa\xa0\x11\x72\xec\xae\x95\x47\x81\xb0\x24\xc9\xaa\x38\x42\x7d\x3b\x8d\x15\x9c\x25\xd2\xc6\x60\x73\xa8\x9f\xf3\xab\x59\x16\x9e\x02\xcf\x96\x7c\xae\x80\x0a\xbd\x61\x01\x47\xa8\x49\x0e\x1f\xef\x3d\x2a\xdc\xf0\x2e\x28\x16\x78\x46\x4e\xeb\x7d\xd2\x8b\xd7\x0d\x93\x54\xb2\x6b\x5b\xcc\xde\xbe\x22\x94\x4c\xa4\xbd\x1b\x58\xde\x19\xe5\xd6\x76\x14\x48\x0f\x03\x22\xe3\x78\xb8\xf8\xe7\xf6\xc6\x24\x68\xc5\x90\x28\x8b\x1a\x32\x19\xaf\xaa\x47\x90\xaf\x58\x99\xf0\x93\xd1\xef\xd4\x3a\xa1\xcd\xfb\x24\xca\x82\x2b\xc9\xab\xfa\xef\xf5\x6f\xa4\x17\x90\xc0\xec\xe1\x47\xcb\x6f\x18\x50\x72\xa5\x47\x14\x3a\xdb\x28\x10\x1d\xc2\xf0\x7a\x35\x90\x1e\x53\xb8\x3c\x1a\xe5\xeb\x29\xa2\xa4\xf4\xfd\x00\x1b\xfc\x68\xc2\x73\x25\x52\x22\x83\xd8\x88\x6e\xc9\xe2\x7c\xba\xc5\xb2\x90\x01\x4f\x06\x64\x83\xfb\xe2\xf3\x86\x00\x89\x0c\xa5\x44\xb4\xa0\xe0\x23\x26\xb4\x8c\xfc\x48\xe9\xbe\xb3\xf7\x54\xd6\x26\x63\xb0\x8a\x94\xaf\xc5\xc7\x63\x13\xeb\x9a\x64\x6b\xfa\xcb\x88\xe7\xe1\x92\xb7\x33\xf4\xef\x7f\xdc\xcd\x46\xbf\x8e\x40\x80\xb1\xc1\x6c\xfb\xb8\xde\xba\xc9\x65\x3a\x44\x0d\xa8\xae\xb0\x31\x84\x47\xda\x79\xf6\xbb\x69\x4e\x3c\x86\xbd\x5f\x5d\x16\x47\x7c\xc0\x12\x72\xd3\x2b\xb6\x17\xcc\xc9\xc4\xf7\xcd\xdc\xe7\x69\xfd\xc8\xaf\xac\x5c\xa9\x4c\xc2\x30\x71\x16\xb1\x87\x14\x33\xd0\x03\xaf\x5b\x36\xbf\x1d\x25\x02\xe9\xdb\xcd\x66\x77\xe2\x12\x9a\x95\xcd\x7a\x74\x63\x01\x7b\x7e\x79\x2c\x14\x98\xad\xd3\xc1\x68\xa5\x50\x5a\x26\xfd\x60\x5c\x18\xe4\x41\xc7\x54\xbf\x16\x08\x1a\x4e\x9e\x0c\x3d\xea\xf5\xb6\xea\xfb\x34\xcb\x26\x05\xc8\xa8\x94\xca\xa3\xc2\x78\x04\xa4\xe7\xa3\xbb\x6e\xe5\x33\x2c\x23\xc8\xe2\x74\x59\xe6\x75\x5a\xc2\xb7\xac\xd0\xe9\x98\x09\x27\x15\x0f\x23\x27\x97\xc8\xcb\x97\xbe\x66\x16\x95\x4a\x0a\x6d\x7b\x28\x69\xbe\xfc\xd7\x39\x3d\x1d\x7b\x4d\xbf\xe9\x00\x47\x42\xc8\x23\xe1\x44\x63\xd2\xba\x5a\xe5\x76\xbe\x26\x98\x44\xe3\x8f\x32\x19\xd9\x06\xc6\x3d\xaf\x5e\xd3\x22\xdf\x9d\xd3\xba\x53\x8d\xf0\xaf\x3e\x20\x42\xdf\x4e\x93\xed\x39\xac\xf2\x4e\x44\xb5\x1d\xa7\xbc\xc0\x28\x1a\xdf\xf1\xa2\x23\x8f\x0f\x26\x42\x79\xc2\x73\xe6\x7e\x4d\x96\xec\x84\x02\x87\x83\x7c\x3f\x66\x9d\x44\xb8\x73\xa8\xbc\x83\x32\x7d\xe7\x18\x4f\xbb\x71\x71\x02\x9d\xc1\x58\xbb\x30\x0d\x2f\x2a\x0c\x38\xda\x26\x71\x5d\x43\xd9\x7a\x12\x0e\xcb\xc2\x2a\x0c\x25\x6a\x81\x8a\x73\x99\x3f\x15\x35\x32\x02\xa7\x96\x7d\x15\xc6\x3e\xee\x34\x07\x65\x60\x9a\x46\x4e\xf6\x6a\xc2\x87\xbf\x27\x24\x01\x52\xdc\xfb\x96\xc8\x8f\x00\xf5\xd9\x96\x00\x26\xd2\x51\x15\x4a\x82\xdc\x58\x2c\x7f\xee\x6a\x38\x31\x77\xad\x51\x10\xe3\xe2\x2d\x79\x3e\x87\xdf\x69\x69\xa8\x88\x72\x8b\xd2\x1c\xac\x49\xdc\xa9\x46\x8d\x2e\x35\x92\x1a\x1b\x2e\x69\x9e\xd6\x29\x37\xc0\x34\x9b\xc3\xdf\x38\xbf\x36\xcd\xa8\x13\x86\x6a\xeb\x1c\x8c\x26\xd9\x10\x83\xa5\xe2\xd8\x47\x9d\x85\xfd\x72\xe1\xdc\x14\x9e\x9e\x1f\x1d\xb3\x42\xc5\x92\x70\xeb\xee\xe6\xba\x70\xfd\x47\xd7\x85\x02\x2a\xd6\x2c\x70\x92\xad\x9b\xf5\xae\x2f\x94\x4a\x15\xf1\x4d\xc4\x89\x54\x19\x05\x70\x34\xa5\xf6\xe1\xe5\x92\x50\x1b\xb1\xfc\x3c\xad\x07\xb5\x09\x45\x98\xa4\xb4\x53\x3f\x18\xfe\x68\x37\x46\x02\x06\xdd\xb2\x38\x9e\x78\x6e\xbb\xba\x2b\x33\x55\xed\x79\x14\x47\xf9\x40\xf8\x3c\x95\xc5\xa9\x4c\xc7\xae\xdd\x54\xd1\x88\x63\x8b\x42\xf1\x9a\xef\xd0\xcf\x7e\x61\x7b\x6f\x4d\x1a\xb5\x1a\x46\x09\xcc\x7d\x48\x07\x00\x4e\xdc\xb3\x17\xc7\x29\xe6\x47\xb2\x6f\x9b\xb3\x80\x62\x74\xd5\x8c\x49\x94\x03\xae\xce\xe2\xb7\x55\x0a\xf7\x11\x4e\x21\x19\xab\x8e\x7c\x2f\xce\x65\x76\xd9\xf6\x6d\x5f\x87\x5f\xc4\xb9\x17\x85\x7d\x72\xfe\xe0\x09\xbb\x8e\xa3\xbb\x44\x5d\x09\x8f\xe3\xf2\x5a\x15\x52\x42\xf9\xcd\xd5\x88\x95\xa0\xa0\x84\x75\x7c\x6d\x59\xe6\xed\xc1\x84\x9b\x9d\x1d\xe3\xa6\x2b\xd2\xe6\xe8\xea\x84\x96\xb1\x45\x62\x0f\x4b\xb5\x4a\x46\x1c\xd1\x0a\x7c\x68\x37\xd5\x1e\x95\x58\xbf\x06\x5e\x66\x97\x79\x5a\xaa\x47\xfe\xb9\x81\x72\x03\x65\xd5\x6e\x60\x4a\x36\xfb\x91\x01\xd1\x36\x17\xf1\x6f\x50\xe8\x01\xee\x2a\x91\x4a\x25\xcc\x69\x7c\x59\xb7\x3f\x0c\x08\x9b\x1b\xbe\x28\xda\x47\x58\x81\xc0\x67\x10\x69\x17\xae\xaf\x3b\x7d\x87\x40\x09\xcf\xd8\x20\x95\xfb\xc2\x75\xfc\x06\x2b\x88\x0e\x7c\x47\xbc\x32\xd7\xca\x67\xb5\x8d\x06\x46\x35\x25\xa5\x63\x2f\x30\x95\xf8\x66\x17\x11\x0e\xf9\x3f\x1e\x44\x11\x8d\x5f\x75\x22\x27\xee\xba\x35\xe3\x46\x8a\xdc\x5a\x10\x9e\x7a\x6c\xf2\xc1\x49\xc0\xf7\x2c\x68\xc4\x39\x40\x23\x10\xf0\xcb\xe5\x13\xfc\x40\xa0\x72\x55\xc6\x2b\x33\x6b\x76\x8d\xa8\x6a\x7e\x74\xf9\x28\xf8\x34\x8e\xac\xce\xe9\x7b\x5a\x9c\x91\xa2\x70\xd5\x68\x07\x9f\x71\x1d\xf6\xbb\xd8\x0f\x1d\x96\x02\x7c\x45\x50\xf0\x77\xb3\x5d\xa2\xc2\xec\x7c\xb6\x5b\x1e\x36\xdb\xd5\x62\x79\x58\x3d\x1d\x7e\x2d\x57\xed\x40\x30\x20\xd9\xd5\xc3\xbd\xe3\xce\x3b\x99\xa2\x1f\x60\xa4\x6f\xdc\x48\x1d\x61\xab\xd4\x54\x21\x4c\x0f\xca\x1d\x0b\x3d\x2d\x6d\x6d\x6d\x63\x74\x21\x06\x0b\xd6\x68\x12\xa2\xc0\x0b\x5a\x4f\x49\x71\xbe\xdc\x68\xb7\x42\xc4\x22\x63\x30\x68\x58\xcf\x60\x75\xdb\x0c\x93\x6e\x74\xea\xff\xfe\x9f\xee\xbf\xdc\xc7\x65\x80\x17\xec\xee\xcf\xa6\x04\x9d\x7e\xfe\x31\xc5\x7a\x81\x48\x2b\x04\xb0\x23\x6d\xa6\x05\xe4\x40\xa4\x81\xd3\xb6\x2b\x61\xd6\x00\xbb\x8a\x41\xac\x7c\xd4\x22\xa8\x5f\xd3\x52\x3d\x14\xed\x93\x0f\x24\x8a\xf1\xc6\xa4\x95\x5b\x0b\xd1\xad\x7d\xf8\x85\x44\x52\x27\x33\xf3\x0b\xe0\x2d\xbb\x8c\xdb\x01\x40\x14\x47\x94\xc2\xc1\xd5\xb8\xdc\x17\xb3\xd8\xd7\x9d\xb0\xfb\xfa\x64\xdb\x0e\x6d\x72\xf2\xb5\xf6\x22\x30\x11\x21\x2a\x13\x54\x97\x2f\xde\x22\xdc\x4f\xfe\xf3\x7f\xf8\x8c\xfb\x6a\x88\x03\xcf\x75\xfb\xf6\xc5\x23\xcf\x2f\x1d\x09\x7f\x9c\x2e\x41\x12\x50\x74\xa6\x51\xe9\x4b\x5a\xf3\xac\xb3\x8a\x75\xc7\x63\xcf\xa1\xe1\x1f\xf9\xe7\x2a\x7f\xb7\x14\xd9\xf1\x8b\x92\x70\xcf\x58\xfc\xda\xd7\xb8\xe7\x8e\x44\x21\x11\x80\x15\x2e\xb7\xe5\xa0\xa8\xf3\xf4\xc4\xf1\xc8\x6b\x7b\x05\x69\x7d\xd9\x42\x85\x1b\xde\xf8\xeb\x38\x01\x6c\x2e\xe3\xc3\x62\xd7\x33\x6a\xe5\x22\xff\x9b\xba\x1f\x27\x3c\xe0\xae\x70\x6a\x97\xea\xdb\xb5\x19\x10\xbe\x81\xa8\x97\x99\x3c\x88\xbe\x34\x1d\x08\xbf\xaf\xda\x5b\x94\xd5\xae\x2e\xe4\xdb\x95\xff\x10\x05\x01\x1e\x02\xbb\x6d\xdb\xdf\xf6\xbd\x90\x15\xdc\x0f\xb3\x27\x57\x68\x90\x41\x28\x9d\x00\x9e\x75\x29\xbf\xd6\x67\x02\x49\x22\x0c\x88\x1f\x67\x7f\x1e\x7e\xad\xf6\xdf\xef\xb6\xb3\x5f\xce\xa0\x8b\x82\xa4\x01\x96\x3f\x77\xfb\x87\xef\x13\xb1\xe2\x14\xb8\x09\xa4\x32\x72\x3a\xf9\x26\xe3\xcd\x66\x83\xa0\xf7\x65\x0b\x21\x00\xa9\x39\x37\x99\x77\x76\xa3\x3b\x0a\xe0\x45\x06\x60\x9b\xcb\x12\x97\x91\x39\xaf\xde\xa0\xae\x30\xfd\xbe\x92\x5e\x6f\x3f\xc4\xb1\x44\xbc\x6b\x82\xb3\x12\x1c\x27\x3b\x74\xdf\x0b\xdc\xc3\xa5\x05\xd9\xe0\x6d\xbc\x04\xa0\x00\x73\xd5\xfb\xd9\x62\xbf\xde\xb6\x96\xbf\x14\x74\x42\xf1\x77\xb8\x10\x77\xce\xab\x2f\x65\x3e\x40\x6b\x8d\xed\x7c\x8e\x05\xcd\x7d\xe1\x6a\xd8\x6b\x63\x89\x34\x98\x25\xed\x27\x11\xf6\x46\xb6\xeb\x6f\xf6\x0b\x75\x10\x00\x4f\x1c\x9e\xd9\x12\x9c\x6f\xcc\x90\x0e\x58\xe4\xdb\x00\x09\x9d\xda\x6c\x3e\x61\x6c\xba\x47\x43\x45\x84\x44\x8f\xb4\x9a\x43\x2b\x55\xda\x8f\x8e\x75\xa0\x63\x69\x3c\x00\xac\xf6\xff\xc0\x00\x90\xea\xd0\xf3\x51\x7e\xcc\x14\xf3\x7a\x5b\x96\x0e\x85\xb0\xc5\xeb\x63\xf1\x8e\x9b\xd9\xb0\x1f\xa1\x43\x19\x60\xb1\x21\xad\x2c\xda\x77\x28\x07\x4d\x75\xa8\x8c\x07\xf8\xce\xc8\xd4\x18\x15\xe4\x49\x30\x85\x8e\x48\xec\x14\x6d\x9e\xe0\xb3\xb6\x7c\xff\x7f\x38\x3b\xd8\xe1\xe0\x98\x41\x62\x2a\xa3\x0f\xe9\xbf\xce\xcd\xde\xd8\xc1\x19\x75\x9c\x18\xed\x9a\x43\x0e\x9f\x75\x1f\xa1\xac\x89\x47\xb0\x2c\xb4\x7b\x2d\x3e\x9e\x73\xcb\x17\x9a\x0e\x81\x34\x0d\x63\x65\x7a\x2d\x73\x9e\xe7\x63\xa0\xa6\xa6\x22\x72\xbb\xc5\xfc\x77\xfd\x02\xcd\x34\x00\x76\x7e\xd6\xdb\xcd\x30\x37\xd4\x49\xe2\xa1\x7a\xcc\x8f\xa7\xf5\xaf\x87\xe5\xdd\xb7\xe5\x61\xbf\x3e\x7c\x5b\xee\x0f\xfe\xfd\x76\xf6\xf4\xe3\xa1\x6d\x88\x68\x1e\x46\x56\xf1\x33\xcb\xf6\xdc\xc2\x18\x7e\x27\x44\xa6\x85\x47\x51\xc6\xc6\x44\xcd\xe5\xc5\xd2\xac\xee\x0a\x79\x1e\x4b\xb4\x69\x11\x70\xec\xc7\xfd\xd7\xfe\xb9\xfb\x93\x74\x3e\x45\x0b\xcb\xeb\x9c\xd5\x9d\x5d\x7c\xef\x7b\x84\x46\xf9\xf1\x45\x91\xe6\x55\xb3\xe0\x55\x93\x20\xcf\xfe\x2b\xa5\x65\x12\x72\x61\x85\xe8\xe7\x3d\x01\x7c\x77\x58\xc4\x51\xdf\x8b\x0f\x8d\x3c\xa6\x6f\x96\x04\x5f\x58\xd0\xd8\x37\x7e\x04\x94\x59\x99\x8e\x11\xb5\x04\x65\x1d\x61\x0c\x61\xc7\x40\x6d\x40\x7d\x81\x4e\xd2\x4a\xc7\x78\x93\xee\xd7\xcf\x4f\x77\xcb\xed\xce\x65\x99\x3f\x97\xbb\xfd\xf2\xee\xe0\xd8\x3c\x1a\x62\x40\x02\x44\xb3\x85\xa8\x77\xe3\x20\xb9\x9f\xad\x1f\x8a\x97\xe2\x86\xec\x8f\x06\x1a\x60\xcc\x72\xae\xe0\xa9\xb3\x6e\x74\x07\x13\x23\xff\x51\xf5\x7a\xe1\x01\x1d\x8d\x11\x49\x40\x3a\x21\x88\xc9\x90\xd7\x0d\x55\xe6\x67\xe0\x4f\xfd\x13\x15\x75\xdd\x95\xeb\x30\x44\xd8\xfa\x4c\x29\xf4\xa2\x38\x97\x15\xfc\x9e\x98\xa6\x75\x2c\x9c\x44\x60\xf3\x7e\x1f\x9c\x43\x05\xd5\x9a\x28\xdf\x6b\x71\x81\x63\x7f\x53\xb7\x40\x33\xcf\x8b\x38\x56\x72\xad\x32\x71\x5f\x32\x75\x7a\xca\x98\xe7\xc5\x11\x22\x13\x53\x59\x74\x02\xfa\xed\xf9\xb4\xd1\x94\xb4\x9d\x2b\x63\x0b\x3f\xf9\x28\x30\xcf\x4f\x78\xe4\xb7\x3c\x0a\xfb\x62\xfe\x02\x9e\xd5\xaf\x3d\x4f\xf5\x89\x46\xd7\xe8\x82\x7c\xc9\x9d\x91\xb4\x89\x1c\xdb\x75\xd6\x4a\x4e\xf7\x81\x61\xcd\x70\x81\x18\x8a\x4d\x59\x14\x7a\xad\x91\xe9\x0c\x6d\x83\x9e\x79\x41\xd4\x6a\xdb\x0e\xe4\x82\xbf\xac\xd9\x35\x1f\xd3\xbe\xab\x85\xee\x5f\xcb\xe2\xa3\x95\x42\xbd\x4b\xab\x26\x23\x7d\x2a\xea\x41\x6a\xca\xbc\x40\x29\x04\x70\xdd\x9d\xa4\xfb\x53\x48\x4c\x77\x7c\x76\xf7\x73\xb5\x5b\x6f\x77\x3d\x5a\xb1\x1b\x12\xf9\xed\x53\x6e\x19\xe0\xd3\xd3\x12\x31\x1f\xcc\xd6\x34\x43\xdf\x49\xe4\x28\xda\x63\x31\x8d\xf1\xf1\xe0\x4a\x75\x6d\x90\xf9\x90\xbb\x3f\x3a\x5d\x9c\xf8\x3a\x72\x09\x81\xe9\xa9\x8d\x00\x19\xa3\xf1\x8a\x2a\x43\x79\xcb\xd5\xd8\x28\x90\x79\x24\x54\x60\xe4\x4a\x5e\x36\x45\x96\xfd\x2c\xea\x1e\x40\x68\xfa\x84\x84\x04\x28\xda\x70\x9f\x15\x1f\xf2\x95\x0f\x70\x2b\xcc\x4b\xc2\x08\xbb\x23\xa6\xac\x38\x46\x27\x4e\x95\x7d\x99\x97\xf0\xd0\x60\x5d\xb1\x1c\xb4\x69\xf2\xda\xcc\x59\xef\x31\x4f\x78\x31\xce\x5f\xcb\x3a\x37\xa1\x61\x4b\xab\xbc\xc1\x73\x64\x9e\x88\xc3\xd0\x72\x12\xdb\xc6\xa1\x79\x84\x7e\x5d\xb7\x9f\xfb\xc1\x02\xf3\x64\xa0\x03\xbf\xe3\xd2\xde\x17\x25\xa0\x25\xe8\xad\xb5\x91\x79\x52\x7b\x71\xe8\xe4\x60\xa2\xbe\x4a\x33\xf3\x14\x8d\x71\x81\xdf\x02\x57\x9d\x7c\x24\xf3\x94\x8c\x98\x6d\xe5\x4d\x9b\xab\x4d\xff\x2e\x20\x80\x7c\xf9\x3a\x3d\xc2\x03\xe8\x7a\x5f\x2c\x5a\xcb\x49\xe6\x01\x93\xe8\xcf\x65\xf4\x82\x8c\xfc\x60\x9f\xb7\x37\xa8\x7b\x0d\x19\xa3\xbf\xfb\x5e\x08\x12\x8d\x24\xad\x37\xb8\xe3\x57\x54\xe0\x1b\x9f\xd2\x24\x40\x85\x9e\xb7\x54\xbe\x15\x5a\xbb\xcb\xd4\x0c\x62\xe8\xd0\xd0\xfc\x04\xe5\x1f\xd3\x0f\x49\x97\x7e\x5d\x1b\x47\xb9\x93\x09\x0f\xd1\x2e\x5c\x14\x65\x3d\xbf\xcc\xcb\xe2\x0d\xda\xe7\x47\x6b\xe3\x65\x0d\x86\x56\xd8\x42\xef\x07\x77\xdc\xf7\xfc\x00\x37\x05\xbb\xfc\xa1\x40\x6f\x7b\x0e\xdf\x03\x8f\x75\x02\x6c\x87\xa2\x8b\xa6\x98\xef\x7b\x06\x22\x6b\xfe\xfa\x3b\xff\x93\xe1\xec\x34\x1f\x46\x9b\xba\x9f\xcb\x6d\xff\x35\xf2\x7d\xdf\xe0\x1b\x34\x97\x75\x51\xb6\x95\x4f\xe6\xfb\x92\xa2\x8c\x92\xe5\x6b\x0d\xcf\x16\x84\x31\x96\x98\xf2\xf3\x71\xff\x9a\xe6\x2f\x95\xfb\x54\x90\x78\x58\x7c\xcb\x40\xd7\x11\x1d\x7d\x2a\x62\x89\x60\x56\xd1\x37\x55\xf5\xab\x31\x3f\xfb\x63\x1a\x49\xec\x3e\xa3\x3c\x30\x21\xaf\x9b\x4f\xa3\x7e\x3a\x9c\xd4\x98\x10\x14\xd1\x79\x28\xea\x1a\x85\xf6\x47\x2e\x6d\xcc\x27\x9e\x87\x3c\x95\x3b\xf8\x05\xe9\x0e\xe4\xb9\x4c\xeb\xcb\xce\x20\x64\x06\x13\x42\xc2\xd8\x89\xda\x61\xbc\x62\x14\x56\x7a\x6d\x01\x37\x8e\xeb\xd8\x62\x59\x9a\x8c\x79\x83\xe8\x84\xe1\x10\x9a\x18\x89\x3f\x71\x2e\x9d\x7b\xd1\x68\x04\x0b\x12\x2c\xb5\xed\x67\xdb\x26\x06\xb5\x61\xce\xec\xee\x6e\xbb\xdc\xed\xdc\x15\x25\x3e\x0f\x4c\x82\xbb\x31\x68\xcc\xb0\x0f\x0b\x66\x3e\xf7\xc3\x80\x3a\xfc\xc7\xbe\x70\x0a\xfe\xee\x01\x31\xb0\xc7\xdf\x52\x02\xa7\xca\xac\xcc\xe7\xc4\xc3\xc7\x06\x2d\x47\x64\xdd\x84\x4c\xf7\x65\x71\x44\x7f\xb8\xae\xe2\xcb\x7c\x0e\x91\xd7\xfc\xd4\xd9\x62\xbf\x5a\x3f\x1d\xf6\xb3\x3f\xdd\xd5\x89\x20\x1a\xb3\xb1\x67\xe3\xc7\x49\x44\x5e\x6c\xb8\x26\x99\x05\x8f\xa2\xfd\xa7\x3b\x4a\x4c\x37\xb7\x2a\x32\x75\x5f\x94\xf7\xa9\x76\xe9\x2f\xf3\x25\x49\xb0\x4d\x60\x80\x8f\x33\xa5\x6e\x24\xb4\xcc\x97\xcc\xc3\x5e\xcf\x23\x4f\xf9\xe8\x2e\xc8\x04\x3c\x44\x24\xcf\x77\xcf\xed\x89\x25\x45\xc8\xd1\x37\xa8\xb7\xa9\x7c\xfd\xc7\x39\x75\x79\x1a\xf3\x95\xa2\xf8\x88\xd8\x18\xea\x20\xfb\xba\xf3\x83\x53\x07\x5e\x08\x44\x8c\x21\x77\x7f\xb8\x83\x94\x59\x81\x1d\xcc\x11\x6c\x14\x53\x16\xc7\xb6\xb1\xe5\x46\x06\xbe\x4f\x3a\x2c\xf9\xfe\x72\x82\x2b\x49\x6e\x16\x04\xd4\x73\x0d\xb4\x4e\xf2\x8b\xf4\xa3\x57\x16\x04\x49\x84\x26\x3a\x87\xb4\x9a\xb5\xc5\xed\x75\x79\x4d\x2b\x68\x86\x12\x63\xe3\x30\xc2\x63\xba\xc3\x10\xe3\x1d\x77\x2e\x0f\x03\x08\xfc\xf0\x25\x0e\xc2\x88\xe3\xcb\x77\xe4\x9f\x07\x2c\xd6\x1e\xde\xd3\xda\x89\x8a\xb1\x20\xa4\x46\xdf\xdc\xfa\x24\xfd\x27\xf6\x9f\x76\x77\x99\xe2\x86\xb2\x20\x8a\x02\xec\x11\xd4\xad\x7e\xc1\x6f\x5e\x02\xf7\x39\x1a\x9b\xd2\x81\x29\x14\xfd\xb8\xc8\x3f\x46\x1b\x41\x10\x25\x31\xe2\xc1\x79\x5d\xf7\x0c\x07\xbb\xc3\x12\x10\x03\xb2\x28\x2f\xa7\xba\xd8\xa7\xf2\x0d\xea\x6a\xb5\x58\xdf\x5c\xac\xff\x8f\xff\xba\xaf\x03\x53\x4a\x45\x0d\x0d\x04\x66\xb8\x97\xdf\x34\x76\xbf\xdc\x1a\x82\xd8\x0f\x31\xa2\x40\xfd\x25\x50\x8e\x01\x3b\xfd\x55\x31\x55\x2c\x6a\x9f\x44\x4b\xa9\xdd\x37\x01\x42\x31\xf2\x54\x62\x01\x89\xa9\x6e\xf9\xe9\x03\x37\xe2\xaf\xe7\x9f\x7a\x0a\xc1\xf8\xbc\xfe\xec\x2f\xcd\x01\xf5\x43\x93\xd6\x23\xd0\xeb\xd3\x2d\x74\xb7\xc3\x99\x2b\x20\xca\xe8\xc7\x50\x26\xf0\x36\xd9\x9f\xb1\xfb\x00\x38\x5d\xbd\x07\x94\x27\xc8\xe3\xa8\xa1\x44\xaf\xe6\x66\x63\xff\x5f\x90\xf5\xe8\xed\x4b\x3c\xe9\xe2\xb2\x37\x98\x43\xc6\x51\x14\x73\x7a\x31\x0a\xd0\x24\xbc\x2f\x42\x33\x3d\x11\x3c\x08\xa9\x55\x5d\xac\xd3\xfc\xc5\x68\x34\x8d\x86\xb0\x10\x4b\x2c\x36\x66\x6d\x17\x8e\xf1\x7b\xf3\xb7\x58\x3b\xee\x9c\x09\x01\xec\x9f\x17\xf9\xb9\xea\x14\x92\xed\x51\x11\x2b\x8c\xf3\xed\xea\x67\x0b\x47\xdb\x73\x76\xed\xe0\xe4\x3e\x41\x08\xeb\xb7\x89\x2c\x73\xf2\xea\x22\xdb\xd7\x47\x88\x58\xb1\x76\xd5\x6c\xd2\x6c\xc7\xb6\xbd\xa2\x14\xb0\x40\x7a\x51\x1c\x3b\xb4\x09\xc8\x54\xa7\x4d\x02\x7a\x1c\x68\x91\x0e\x7f\x1f\xc4\x34\xb0\x66\x65\x5b\x5e\xc3\x93\x33\xe6\x66\x81\x8e\x38\x1e\x59\x3d\xdd\xaf\x17\xeb\xed\xe6\x70\xb7\x7e\xea\x49\xa9\xb2\xd0\x0b\x03\x04\x7a\xe7\xf0\x81\x36\x21\xed\xdf\x19\x41\xb0\xd0\xf7\xc7\x7d\x77\x0f\x7e\x13\x65\x4f\xbf\xcc\xa1\xc7\x99\x93\x78\x73\x25\xa0\xfd\xa7\x35\x60\x1e\xd6\xe5\x9a\xb1\x1c\x77\xae\x67\x13\x7e\xa3\xdc\xfe\x70\x84\x1f\x0a\x83\xf6\x68\x9e\x46\xb3\xc3\xcc\x34\x62\x88\x7b\x9a\xf0\x83\xe9\x09\xfd\x38\x70\xf0\x96\x26\xb2\xa9\x1e\x53\x59\x16\x8f\x85\x6a\xee\xf0\xca\x75\x67\x58\xe8\x4b\x8e\x58\x25\xd4\xdf\x4c\xf3\x14\x5f\x70\x7b\x2c\x08\x23\x61\x1f\x5c\x93\x08\x5d\x49\x12\xb8\x81\x60\x0c\xea\x4a\xd4\xd7\xab\x8c\x1d\x03\xa8\xf9\xa5\x8f\x06\x60\x61\x48\xb9\x51\x35\x6d\x82\xd1\x9e\xca\x14\x0b\x23\x16\x83\x89\xb1\x2e\x4e\x2b\xb2\xbf\x66\x84\x31\xd3\x98\xfa\x48\x7e\x3a\xa4\xf9\xe1\xc3\x69\xb9\xb0\x30\x06\xcd\x75\xff\x1a\xf7\x45\xa7\x1d\x3d\x9a\x12\x42\x14\xca\x14\xa4\xd5\x63\x4f\xaf\x73\x38\xd3\x89\x47\x43\xcf\xee\x36\xb3\x2c\x1b\xac\xbc\x6e\x88\x2f\xb1\x9f\x73\x3c\xd7\xf0\xd8\xb3\xb8\x62\x61\x02\xdc\xdd\x74\xb3\x5b\x58\x17\xf7\xd1\x75\x70\xaa\x23\xbb\xc5\xdf\x3d\xcd\x6e\xcc\x29\x67\x92\x39\x35\xee\x6d\x91\x8d\x1c\x33\x99\x7b\xcb\x42\x9e\xc4\x22\x30\xaf\xa5\x7c\x5b\x64\xe9\x84\x23\xe6\xf4\x13\x2a\x02\x15\x5b\xc9\x02\x74\xa1\x1b\xff\x4c\x91\x44\xda\x56\xb8\x79\x96\xfe\x1b\x1c\x7c\x74\xb0\x60\x86\x42\x46\x46\x0a\xd9\x09\xd9\x66\x37\xc5\xf0\x58\x28\x3d\x8e\xd1\x86\xcc\x8a\x0a\xc6\xe1\x51\x28\x23\x62\xe4\x35\xce\x26\x75\xee\x29\x81\xb2\x50\x52\x12\x3a\x11\x80\x66\x09\xc7\x0e\xe1\x0d\x78\x7b\x6f\x5d\x09\x25\x8b\xf0\x35\xf8\xf9\x6f\x9e\xff\xae\xb6\xca\x42\x09\x11\x3a\xa3\x35\x93\x1e\xb8\xaf\x56\x9a\x4a\xe3\xd2\xe4\x44\x27\xba\xa0\x6b\x3e\x8d\x6c\x60\x21\xf8\x21\xd6\x95\xbe\xf3\x36\xe2\x0c\x41\xd3\xc0\xae\x71\x77\xa9\xd6\xa9\x3c\x67\xf5\x65\xf4\x6c\x68\x1a\x38\x0c\xd9\xa2\xd9\x57\xea\x1a\x03\xc5\x83\x3d\x47\xe4\xf1\x18\x99\x8b\x4f\xf7\x8b\xfe\x1b\x12\x79\x9c\x48\xe5\xbc\xe7\x45\x6b\x7e\x7d\xad\x88\xda\x0c\x65\x28\xaa\x7a\x4c\x73\x5b\xe9\x9b\x43\xbd\xca\x07\xef\x6a\xe4\x87\x5a\xfb\xce\xef\xc9\xcc\xf5\x75\x01\x9b\x45\x3e\x09\xb1\xbf\xf3\x63\xfb\xd7\x66\xbf\x7e\x5a\x3d\x3f\xb6\x27\x48\x8c\x0c\x49\xf5\x5a\x9c\x33\x85\xa5\xb5\x75\x3e\xab\x6b\x38\x9e\x6a\xd4\xd3\xc3\x4d\xe4\xd7\x2b\xe4\x4f\x45\xbf\xdf\xc0\x22\x9f\x07\x66\xdf\x68\x02\x8e\x26\x53\xf2\x37\x9d\x20\x08\x8b\x02\x92\x20\x86\xe2\xd0\xba\x69\xda\xee\x74\xf3\xbc\x04\xe1\xd7\x61\x52\x14\xd0\x08\xd7\x8b\x53\x09\xfb\x17\x68\xad\xd5\x58\x14\xf0\x10\x3d\xaa\x0e\x07\xe9\x9c\x65\x07\xa0\x98\x76\xfa\x02\x90\xf8\x24\xaa\x92\x7f\xac\x6a\x38\xda\x6c\x75\x7a\x97\x8a\x42\x20\x91\xdd\x04\x9b\xc1\xd5\x72\x31\xfd\xc0\x44\x21\x70\xe8\x01\x5e\x6c\x53\xca\x1e\x8c\xfc\x10\x73\x8c\x03\x94\xbc\x82\xa7\x42\x8d\xef\x69\x14\x46\xb4\x17\x40\xf4\x24\x66\x7b\xc2\x78\x13\x28\x1f\x16\x45\x31\xb4\xc6\x4e\xf8\x0e\xcb\xcb\x58\x03\x7c\xf8\x8b\x22\xe2\x23\xe6\xe4\x67\x0a\x1f\x1d\x81\x9e\x45\x11\x35\xeb\x45\x2b\x69\xd7\x3d\x9c\x91\x8a\xb9\xd1\xeb\x29\x6b\xac\x68\x7d\xf1\x0e\x46\x31\x0d\x94\x71\x49\x49\xdf\x31\x4e\x83\xd5\x62\x8d\xe0\x4c\x6b\xaf\xec\xce\x1a\x8b\x08\xa7\x76\xf3\x7d\xb6\x5b\xc6\xc6\x7c\xf8\xb0\x5f\x39\x1b\x2e\x16\xd1\x18\xf0\x4e\xcd\xf7\x8b\xe5\xfe\xfb\xe8\xc9\xa5\x2a\x40\xef\x90\x6f\x45\xa1\x1e\xce\xf2\xad\xff\x53\x98\x97\x38\xca\xf6\x06\x29\x5d\xa8\xec\x9e\xe6\x2f\x46\x7b\x75\x72\xc1\x8e\x18\xa5\xd8\x53\xfc\x56\xf0\xec\x7b\xda\x16\x0d\xb3\xf6\xa4\x1a\x8c\x69\x05\xbe\x67\x5b\x53\x2a\x54\xfb\x62\x29\x8b\xea\x52\xd5\x70\x74\x03\x79\x40\xb1\x52\x7f\x3c\xec\x1e\xb7\x76\x69\x76\x87\x22\xea\x59\xf9\xab\x0f\x5e\x2a\x50\xeb\x73\x2d\x8b\x76\xc7\x8e\x38\x35\xfd\xb5\x3d\xff\x77\x5a\x0f\xd6\x07\x2e\x43\xca\x50\xf2\x07\x9f\xd6\x7d\x5a\xb7\x0b\x6f\x24\x24\xc3\x57\xd5\xa8\x8c\xe0\xc6\xe5\x0e\x35\x61\x99\xd7\x83\x15\x0c\x58\x19\x6e\x8c\x6f\x74\xf6\xd0\x34\xd3\x14\x5a\x5a\x55\x8d\x6e\xef\xeb\x03\x23\x46\x10\x09\x16\x49\xf0\x74\x5f\xb2\xa4\x2e\xb8\x94\x53\x0a\x57\x2c\x52\xbe\x8f\x4e\x8f\xef\x3c\x4b\x55\x1f\x2e\xc8\x22\x15\xf1\xa4\x35\x7e\x3a\xa6\x79\x35\xd5\x33\x65\x91\x52\x86\x0e\x79\x07\xef\x66\xcd\x33\xfd\x86\xc7\xe2\xf6\xd6\x69\x3f\x09\xbe\xc6\x62\xfa\xb1\x90\x6f\xcd\x16\xb1\xc3\xb5\x0d\x5d\xa3\xa1\xb5\xf7\xee\x59\xad\xb0\x08\x02\x03\x46\xb6\xca\x1f\xc6\x85\xc9\x9d\x7c\x68\x98\x35\xfa\x9d\x60\x9d\x34\xee\xcf\xf9\x8f\xde\xa3\x09\xd2\x33\x92\xb0\x28\x54\x8c\xc2\xcb\xd7\xcc\xa2\xdf\x55\x89\x86\xdf\xa4\x85\x11\xe3\x32\xcd\x9f\x95\x05\x60\xdc\x97\xc5\x11\x3b\xed\x57\x2a\x6c\x2c\xf6\x54\x18\x08\x6b\x90\x5f\xf3\xb4\x5b\xbb\x63\x3f\x50\x14\xfd\xaa\x8a\x73\xae\xfc\xbd\x7d\xd4\x8f\xbc\x97\x7a\xc4\x7e\x6c\x34\x49\xda\x48\xaf\xe4\xef\x90\x4d\x33\x6f\x27\x16\x88\xd8\x27\x04\xd5\x51\x0e\xb2\x38\x9e\xce\x35\x58\xf0\xde\xa4\x22\xe1\xe0\x5f\xb7\x5a\xc6\x7e\x12\x46\x2e\x98\x68\x79\x36\xfd\xce\xf0\xd7\xff\xb8\xb3\x88\x00\x31\xa3\x33\xd7\x6d\x66\xb1\xaf\x15\xca\xd3\xc1\x3b\xe4\xb5\x35\xde\xb1\x87\x02\x2f\x41\x01\x78\xdb\x71\x74\xb6\x39\x2c\x0e\xe2\x24\x96\x5d\xf3\x40\x8d\xe6\x3a\x14\x41\x5f\x07\xe4\xb5\x80\x3c\xfd\xfc\xba\xa9\x15\x47\x11\x75\xe0\x70\x07\x7e\x1b\x6c\x17\x71\x44\x39\x8a\x65\xa9\x22\xe7\x32\x2d\xf2\x45\x79\xfe\xf7\xb6\xf8\x5f\xee\xae\x29\x8e\x3c\xd1\x3d\x12\x46\x4d\xa7\x45\x6e\xb1\x98\xc6\x3e\xeb\x84\x03\x11\x6a\x34\xbc\x68\x4a\x62\xc4\x40\xa0\x76\xfc\xea\x1e\xab\xd2\x93\x20\x7e\x16\x33\x69\x5c\x02\xef\xb7\xcb\xa5\x55\x78\x77\x57\x91\x84\xac\xb7\xa9\x4d\x31\x37\x9a\x31\x82\x1a\x7d\xda\xbc\x6a\x72\xfa\xba\x90\x45\xd6\x9e\x80\xc4\xae\xc5\x78\xe0\xcd\x86\x9a\xd6\x97\x83\xb8\x1c\xd2\x69\xd6\x4f\xf3\x01\x8a\x6d\xe1\xbc\x70\xc9\x43\x10\xb9\x43\x94\xe0\x9b\x7c\xe4\x9f\x87\xf7\x4e\x2f\x8f\xc5\x09\x4b\x10\x63\x53\x9d\xc5\xcf\xb4\x3c\x57\x77\xa0\xa7\x77\xce\x66\x24\xe6\xdc\xdb\xf5\xc3\xf2\x80\x3d\xf1\xc3\xe3\xea\x69\xbf\xdc\xb6\xa7\xe2\x0a\xfd\x7f\x0f\x27\x7e\x99\x37\x99\xd0\x70\xcf\x8a\x39\x63\x06\x98\xb4\x7a\x5a\xba\xd2\x6c\x2c\xa8\x8f\x91\x9a\xe4\x99\x9c\xa7\xb9\x02\x35\xcf\xd2\x5c\x35\x77\x3d\x88\xc9\x14\x4c\x90\xc5\x42\xa9\xc8\x40\xfb\x5c\xf9\x65\x96\x75\xe1\x46\x2c\x69\xec\xfc\x2b\x8d\xcf\xd3\x19\xb9\xf3\x39\xb6\xab\xdd\x20\x15\x19\xb3\x6a\xa3\xcd\x3f\xdb\x2c\x46\x77\x4f\xc5\x14\xd5\x72\x97\x9f\xbb\x57\xc8\x32\xc4\x73\xb5\xc7\x80\x07\x96\x1c\xd6\xdb\x99\x47\x17\xa9\x74\xc8\x6d\x9a\xf4\x1d\xca\x62\x56\xf5\x7c\x89\x86\x23\x21\x90\xaa\xf3\x27\x74\x3f\xe9\x6a\x31\x37\x1a\xe3\xc8\x92\x73\x3b\x0f\xca\x33\x47\xad\xfc\xde\xc3\x66\x7f\xe3\xde\x41\x64\xb8\xb2\xd5\xf9\x68\x73\x9c\x71\x73\x34\xd6\x01\x41\x3c\xe3\x4c\x29\x43\x05\x1c\x17\x14\x63\x2d\x29\xb4\x06\x1b\x26\x9d\x1a\x00\x5b\x18\xf1\x42\x29\x0d\x3b\x0d\x9b\xcf\x56\xfb\xbf\x3d\xca\x7c\xdf\x96\x3c\xac\x21\xc3\x13\x3f\x42\x07\x6e\x65\xc4\x53\x1e\xb7\x4e\xcc\x6e\x3f\x72\x7c\xcc\xd1\xf2\x45\x42\xa2\xd1\xe9\x08\x9f\x01\x38\x5d\x97\xbd\x49\x44\x14\xb1\xb1\xeb\xd3\xf9\xd8\x93\x7f\x86\x53\x51\xd6\x4f\xc5\xee\xb5\xf8\x18\xe5\xb6\x24\xf6\x02\x6a\x4a\x01\x79\x71\xce\x25\x0c\xe2\x17\x42\x98\xe8\x04\x3a\x2a\x6c\x1f\xdf\x17\xae\xd3\xee\x06\xd1\x20\xf0\x9d\x38\x2c\xf0\x72\xd6\x44\x3a\x5f\x42\x85\x18\x61\xa1\x8f\xef\xe0\x62\xf1\xfd\xb0\xbc\x5b\xed\x1d\xb8\x84\x11\x46\x42\xcc\x97\x96\x3d\x36\x3f\x23\x8c\x12\x94\xeb\xb3\xe6\x39\xe6\xe6\x5f\xb1\x91\xcd\xce\x9c\xb8\x09\x63\xcc\x40\xdb\x67\xae\xf8\x40\x12\x2e\xb9\x5d\x67\x77\x56\xf4\x74\x7a\x61\x21\x89\xa0\xe8\x24\xb0\x7e\x5a\x1e\x1e\x57\x0f\x0f\x5d\x31\x8a\x24\xda\xc7\xc6\xc8\xd1\x38\xe6\x4c\x93\xa4\xec\x58\x11\xf2\x84\xb7\x2e\xac\xef\x9d\xef\x12\x23\x22\x26\x58\x65\xcc\x9a\x3d\xfc\xae\xfd\xab\x48\x12\x3e\xee\x26\x84\xde\xa0\x09\x40\x84\x8e\x31\x20\x42\x8e\xa8\x4a\xaf\xbd\xcb\x07\x2c\xb3\xe9\x32\x3d\x91\x7e\x12\xb2\x56\xb3\x20\xad\xea\x92\x63\x9e\x3c\x7a\xa6\x24\x95\x58\x72\x9f\xa7\xf5\xac\x14\xfd\x10\x95\x48\x69\x18\x72\xe3\xce\xeb\x97\x7b\x1d\x91\x52\x52\xed\x56\x89\xec\xaa\xf0\x4b\x94\xc7\xb0\x01\xb2\xde\x2d\x3b\xaf\x1f\x46\x94\x54\x91\x25\xca\x2f\x2e\x32\x83\x41\x64\x6f\xc7\x00\x4d\x7c\xee\x5e\xb7\xb2\x55\xe8\x6a\x7f\x32\x50\x40\x87\x86\x19\xf2\x20\xbf\x7d\x5b\x4c\x34\x60\x08\xc8\x88\x74\x8f\xfc\x03\xe8\xfa\xae\xe4\x69\x3e\xfe\x2a\x08\x11\x80\xd3\xbc\x12\x06\x1e\xd2\xc2\xd7\x47\x23\x75\x28\x13\x0b\xb8\x1d\xd7\x47\x47\xe0\x84\x1b\x37\x4a\xd3\x10\x77\xd5\x22\x1f\x17\xa6\xa8\x17\x44\x9e\x71\x1b\xd5\x36\xd7\xe2\x23\xb6\x18\xa3\x9e\xa2\x1a\x2c\x0a\xc1\x96\x43\x46\x23\x7c\x29\x50\xd1\xf1\xb1\xc8\xa1\x2e\xc6\x07\x21\xc2\xc6\xf9\x91\xbf\x41\xbf\x50\xb1\x9a\x26\x55\xa0\xe4\x9f\xf3\x71\x78\x5d\x1a\xf8\x7a\xff\xe1\xa5\x3e\x00\x5e\xf3\x66\x61\xd9\xfe\x8c\x06\x89\x0c\xad\x14\x5d\xb3\x0f\x3c\x9f\xae\x05\x2c\x19\x0d\xb8\xe1\x01\x3b\x62\xcc\xf3\xea\x56\xc6\x8b\x86\x64\xb4\xb5\x8e\xc3\x54\x14\xc6\x53\x17\xf1\x10\xf7\x87\x5f\xb3\xd5\xfe\x30\x7f\x58\x2f\x7e\xb8\xce\x2f\x8d\xa4\x32\x10\x1c\x28\x75\x51\x1e\xad\xf2\xc1\xe4\xcd\xa1\x91\x8e\x8d\xf0\xbb\x52\xf6\x91\x1b\xfc\xd8\x38\x89\x51\xff\x7d\xd3\x64\x6a\xdb\xa2\xc9\xd4\x1c\x2e\xb5\xb7\xc4\x33\xcf\x0e\x27\x91\xd1\x34\xaa\xa0\x17\x1d\xdb\x41\x96\xc0\xc5\x28\x49\x0c\x2b\xb8\x82\x1a\x2b\x2e\xee\xb2\x09\x00\xf1\xad\x43\x73\x8f\x1d\x3f\xfc\xd9\x34\x00\x14\xea\x55\x69\x55\x9e\x4f\xed\x67\x69\x4c\x95\x7d\xbb\xea\x6c\x54\xab\xa0\x34\x09\x30\xfa\x76\xc9\x9e\xd1\x69\xb9\x6b\xb5\x04\x9b\x44\x5a\xa1\x7e\xcf\x2c\x6b\x11\xee\x8c\x32\x29\x51\x08\xe4\x71\xf9\xb0\x7e\x3a\xcc\x76\xbb\x65\x7b\xc3\x13\xdf\xc3\x67\x44\x41\x06\x35\x7c\x3f\x09\xac\x90\x0c\x1f\x3c\x41\x13\xcc\xf7\xf1\xde\x3c\xce\x1e\x1e\xfa\x6b\x0f\x15\x89\x87\x65\xb7\xf9\xfa\xf9\x69\xff\x57\x5f\x3c\x82\x51\x21\x19\xea\xbb\x7d\x2f\xb2\xf4\xad\x38\xd5\xd6\x53\x6a\xf0\x79\x49\x8c\x23\x5c\xf5\xc1\x4f\x63\x14\xd3\x17\xdd\x9a\xab\xc5\x74\xf4\xe4\xc9\x04\x30\x2f\xde\xf0\xcb\xaa\x44\x5d\xbf\xf6\x0b\x45\x82\xd5\x06\xab\x28\x89\x55\x8a\x3e\xf8\xce\x0d\x03\x69\x6f\x62\xfe\x0e\x65\x3d\x72\x51\x66\x54\x25\x14\xb7\xf8\xd5\xc3\xfd\x68\xbe\x20\x26\xa8\x62\x2a\xce\x97\x1f\xe9\x71\xf4\x31\xe0\x2c\xb1\xb0\x6c\x0c\xcb\xa6\x38\xa3\xcd\x28\x60\xda\x81\x06\x36\xad\x82\x08\xa3\x3a\x14\xca\xd8\x1f\x64\xfc\xf2\x65\x4b\x71\xf8\xe4\x68\xea\xe3\x3b\xbb\x5f\x3d\x22\xe2\x77\xb1\x5e\xff\x68\xcf\xc9\x0d\x90\xef\x54\xc2\xfb\x7f\x71\xf9\x76\x2a\xea\xea\x01\xf2\x97\x16\x65\xc0\xbc\x88\xa2\x7c\xdd\xf1\x9c\xd5\xe9\x2e\x7d\x31\x90\x8a\x61\x00\xc6\xbc\xc8\x6c\x63\x36\x4d\x43\xf4\xec\xf9\x1a\x57\xc7\x3c\x22\x30\x54\xb7\x13\x3b\xe1\x3e\xce\x58\x40\x55\x0f\xb4\x84\x18\x5f\xf7\x35\x01\xf8\x78\xc8\xd5\x55\xd6\xef\x50\xaa\xf3\x8d\xba\x39\x0b\x63\x83\x18\xb7\x72\x71\x1b\xd3\xb3\x6b\x21\x08\x2c\x8c\x8d\x9d\xa8\xc6\xd7\xfb\x8f\x5e\x94\xc7\x42\x91\x18\x2d\x7e\xa5\x66\x47\xc8\xd5\x71\x0c\x01\x60\x51\x20\x31\x1d\x4f\x4f\xba\xfa\x36\xc6\x08\xb1\x88\x85\xe8\xf7\x6c\x7f\xe7\x63\x65\x18\x51\x96\x0f\xd2\xd6\xe7\x19\x89\x38\xd7\x9d\xe3\x38\x94\xf5\xe5\x3e\xe3\x2f\x7d\x76\x38\x63\x84\x48\xdc\x50\x4f\xc8\x7d\x33\x36\x2f\x77\xeb\xbb\xf6\xee\x0f\xbe\x99\x10\x40\x29\x9b\xc3\x0b\xe4\xd5\x37\x6b\xac\xdb\x7e\x9d\x32\x92\x22\x78\x2f\xc7\x2c\xe3\x71\x27\x92\x51\x42\xbc\xa4\x43\x19\x8e\x01\x8b\x43\x35\x12\xc6\x98\x67\x38\x93\x56\xcc\xf9\x0b\x1b\xd0\xee\x6a\x99\x95\x6c\x6d\x85\x85\x51\x5a\x26\x1f\x69\xb6\x32\xc6\x7d\x6b\x9d\xda\x64\xc6\x57\x0a\x00\xa3\xb1\x89\x16\x71\xcf\x75\x68\xa5\xd6\xda\x3e\xae\xb3\x5c\x0d\x78\x0d\xa3\xab\x11\x71\xe2\xf5\xd9\x40\xf3\xdd\xec\x7e\x79\x6b\x2c\x67\x18\xfd\xb5\x26\x72\xcd\x32\x62\xa4\x31\xdc\x08\x2d\xd1\x03\xe6\xe0\x7e\xdc\xad\x33\x69\xa3\x8f\x8e\xc4\x36\xc7\xaf\x99\xe5\xca\x2a\xf4\x8f\x66\x42\x71\xe6\xe9\xae\x41\xf9\xc4\x47\x3c\x1c\x96\x78\x41\x80\x25\x30\x55\xb6\xc6\x80\x2c\xf1\x14\x11\xd2\x40\x7a\xee\xd2\xea\x74\xae\xa1\x9a\xd5\xa8\xd8\xd0\xe9\xf3\xb0\xc4\x03\x8e\x35\xd4\x4e\x6d\xa1\xe5\xa5\xad\x5b\x56\xfa\x6f\x15\x9b\x58\xe2\x69\xf3\x66\x3d\x14\x12\x6d\xce\xca\x6d\x51\x75\xf9\x4c\xe2\x2b\xe2\x5b\xc3\x56\x0b\x12\xde\xdb\x30\xaf\xb7\xf0\x24\x81\xe7\xa1\x05\xd0\x1e\x3e\xb9\x29\x36\x1e\xff\xb8\x22\x0b\x31\x37\x38\xa1\x18\x9e\x1d\xb8\x63\x86\xee\x26\xba\xd0\x76\x70\x18\x49\xcf\xd0\xfd\x2e\x83\x4e\x65\x0f\xfc\x38\x2a\xb5\x26\xa1\x0e\x50\x2b\x9b\x3b\xda\xf1\x06\x55\xfc\xc6\x40\x44\x3b\x3a\x0a\x02\xdf\x96\x57\x50\x66\xf0\xbe\x28\xbf\xf3\x52\x7d\xf0\x12\xb6\x08\x6e\x74\xbf\x31\x0a\x25\x63\xad\x87\xe7\x2f\xe0\xa7\x22\xc7\x6a\xc1\xf0\x82\x23\xc1\x69\xdf\xda\x75\x7d\x1e\x15\x74\x92\xd8\x17\x71\x8f\xdf\x35\xce\x02\xba\x51\x58\x05\xd6\xcd\x73\xda\x62\xc5\x9b\xe8\xda\x5d\x50\xac\x14\xed\xf2\x91\x73\xc6\x0d\xd6\xb2\xa5\x7b\x75\xef\x7b\x42\x98\xc6\x84\x73\x52\x90\xec\xea\x55\x4f\x48\x92\x20\x82\x73\xc3\xab\xaa\x49\x84\xfb\x81\x40\x42\x04\x41\x86\x19\xe2\xc9\x8b\x67\x5c\xfd\xdc\x31\x1a\xea\xa0\x15\xe9\x6d\x1e\x00\x59\x83\x9a\xac\x68\x24\x14\x98\xc9\xe3\x25\xcf\x78\x89\xc0\xad\xa1\x15\x30\x4b\x98\x4f\x63\x62\x1d\x50\x6d\x60\x3c\xbc\x4e\x16\x4a\x69\xb8\x38\x6d\xab\x15\xf5\xbd\xdd\x7b\x9d\x30\x30\x76\xc3\x46\xe6\x0a\x9a\x89\x74\x87\x92\x80\x12\xdb\x86\x6c\x92\x9a\xe1\x63\x3d\xbc\xd4\x84\x06\xe8\x6e\x98\xc3\xc7\xb6\xc9\x5f\x5b\x51\x38\x96\x24\x3c\xc0\x2b\xe0\x4d\x1c\xb7\x68\x56\xbc\xca\x22\x41\x6e\xa6\x98\x93\xb9\x8c\xb5\xc2\x61\x09\x8f\x63\xb3\x12\x21\x0b\x8e\x57\x30\xc3\xa7\x04\x6d\xd8\x66\xe5\xcb\xb5\xd7\xdc\xf0\x52\x45\x9c\x18\x37\x8d\xd7\xb3\xd6\x19\xa0\x92\xfc\x70\xce\x24\x70\x84\x1f\x8f\xbd\xb4\x0d\x26\x71\x72\x77\x4e\x24\xa8\xa0\xe3\xb1\x0e\x85\x38\x87\x23\x95\x88\x31\xc3\x5d\xe5\xa7\x73\xfb\xa0\x2a\xa5\x11\xf5\x8a\x2d\x8b\x3b\x8c\x60\x47\x35\xe0\x04\x22\x8e\x37\xea\x60\xd1\x3a\x57\x8e\x17\x93\x3f\x97\x7b\xb1\xb0\x6e\xa7\xcd\x49\xbb\xb6\xf9\x1f\xe3\x61\x12\x1b\x77\x28\x42\x5b\x16\x33\x9c\xd1\x0d\x7f\xc1\x8a\x5f\xd1\xeb\x66\x70\x8f\x51\xdf\xc6\x84\x7f\x36\xe7\x98\x5e\x95\xb8\x27\x34\x0a\xe4\xdc\x17\x25\xbc\x43\x69\x00\x2d\xee\x18\xf8\x46\x57\xc9\xd4\xee\x7f\xe4\x85\x7c\x2b\xce\xf5\xa6\x48\x1d\xbc\x64\xa0\xdb\x3e\xf1\xff\xbd\xeb\xf1\xbd\x04\x1b\x3e\x0e\xa2\xf0\xeb\x15\xf2\xfb\xa2\x7c\x6b\x1f\x71\xee\x33\x0f\x29\x85\xab\xc5\xfa\xa9\x68\xb5\xc5\xba\xc3\x22\xc4\xcc\x0e\x2b\xb2\xeb\xcd\x72\x3b\xdb\x3b\xc5\x1e\xc6\x7d\xf0\x91\xf3\xe4\x1c\xf5\xb1\x44\x70\x03\x02\xc3\x03\x62\x5c\xb4\x4f\xfc\xb2\x80\xc2\x9d\x22\x48\x78\xec\xd8\x25\xd6\x69\xf1\x2e\xad\x8a\x8f\xfc\xa9\xa8\xfb\xca\x23\xed\x78\x1d\x23\x66\x7e\x5f\x3c\xb4\xae\x5f\x8c\x87\x9e\x36\x7a\xb1\x4d\x1c\x6d\xde\x44\xd3\x15\x6d\x07\x04\x01\xc2\x5c\xf1\x4a\x17\x85\xbb\xcd\xee\x68\x28\x5c\xc6\xfe\x2d\x2b\x04\xcf\x16\x45\x5e\xa1\xb0\xcd\x18\x03\xf3\xff\xa6\x5f\x46\x77\x9e\x48\x0f\x28\xc6\x7d\x7f\x60\x37\x84\x80\x6b\x9c\xa2\x14\x0b\x2e\x5c\x8e\x3e\xd3\xbb\x71\x51\x00\xc8\xb3\x7f\x87\xd2\xf4\xa9\xbb\x4a\xa8\x81\xcc\x3c\x76\x69\x94\xfd\x48\x9c\xc4\x3c\xee\xec\x6c\x9d\xc4\x47\xfa\xef\x1e\x19\x8f\x71\xc2\x89\x34\xec\x99\x7d\xab\xdd\xd7\xef\xa4\x73\x1a\x72\x6d\x6b\x3a\x58\x58\x1c\x2d\x9a\x9c\x4a\x03\xe1\xa9\x2c\x37\x6b\x48\x1c\x63\xbc\x49\x42\xd0\x7a\x79\x33\xc0\x5f\x70\x96\x04\xd2\xc2\xad\xe6\x97\x8c\x7f\x54\x0b\x4b\xcf\xfb\x59\xd4\xb0\x45\xe3\x57\x50\x77\xe7\x72\x70\xb5\x09\x87\xc8\x58\xf4\x1e\x79\x8a\xfb\x58\x2b\xf6\xc6\x78\xd2\x84\x53\xf8\x53\x0e\x47\xfe\x79\x78\x29\x78\x76\x28\xfb\xbe\x02\x8c\x0b\x5f\x52\x9b\xdf\x37\x5f\xf5\x82\x5d\x37\x74\x54\xfb\x63\xa2\xd5\xcf\x25\x4f\x9c\x46\xed\xd0\xd6\x95\x71\xa9\x28\x77\x4a\xab\xbc\x1a\x60\xe9\xb9\xf2\xbc\xc8\x46\x5c\x1d\xd1\xba\x13\x8d\x66\x5c\x05\xda\xb7\xe7\x4d\x47\x4b\x17\xd7\x24\x48\x0c\x28\x3c\xcf\xa1\xbc\x03\x99\xaa\x9e\x15\x31\x13\x9e\x07\x60\x5b\x34\xf7\xcd\x5b\x6c\x94\xd4\xdc\x41\x5f\x23\x26\x02\x1f\xfc\x4e\xd2\xba\x5a\x55\xd5\xb9\x9d\x05\xe1\x45\x86\xbc\xb6\x6b\x36\xe3\xb4\x1a\xec\xc7\xc2\xa3\x0c\xc3\x1d\xa3\x85\xb3\xff\x28\x26\xb4\x70\x98\xf0\xc1\x23\xbc\xcb\xfa\xfa\xa0\x78\x11\x84\x1c\x1b\x3f\xcd\xc6\x86\x68\xc1\x65\x55\x77\x99\x88\x08\x63\xa0\xd8\x74\xe6\xef\xb0\x05\xe3\x10\x32\xd1\xb5\x14\xa1\xd2\xc8\x5b\x7f\xe2\x47\x84\x1a\x0c\xa6\x49\x44\x3e\x45\xe9\x3a\xa3\x20\xfb\x0d\xea\x99\x6a\xd2\xad\xb4\x82\xe3\xd8\x6c\x86\x89\x38\xa2\xd0\x2f\xa0\x18\x2a\x09\x2a\x0f\x4e\xbe\xb9\x82\x2a\x63\x23\xbd\xe1\x97\xfb\xa2\x6c\xf3\xb2\xee\x8c\x89\xa7\xa1\x05\x66\xad\x07\xbd\x80\xff\x0e\xbb\x76\x7d\xef\x3f\x83\xff\xe9\x2d\xc4\x22\xe1\x81\xea\x0c\x80\xac\xaa\xdc\xf0\x1a\x12\x6b\x63\xd3\xba\x4f\x98\xae\xfb\xf4\x9e\x2a\x78\x10\x21\x0e\x57\xf2\x7c\x77\xc9\xeb\x57\xa8\x9a\xe5\x3d\xad\xaf\x0c\x1c\xdd\x78\x42\x89\x72\x81\x78\x5d\x5e\x6e\x0c\x13\x32\xa2\x76\x29\xb4\x5a\x31\x93\x8d\xe6\xe1\x9d\x93\x3c\xf2\x3b\x23\xc9\x1d\x40\x3e\x19\xb3\x09\xa9\x85\xb0\xb8\xaa\xf4\x68\x01\x8c\xd5\x1c\x74\x61\x52\x2a\xf7\xc0\xa8\x30\xee\x37\x82\x07\x7b\xa8\x1f\xb0\x7e\x9a\xd9\x3e\x9f\x2a\x26\xf8\x78\xc8\x22\xd7\x69\x79\xec\xc5\x58\x42\x69\xa2\x63\x17\xc4\xad\x14\xc2\x2a\xdb\xf7\x5a\x40\x10\x20\x20\x44\x17\xa5\x86\x74\x00\xdf\x76\x23\xa8\x24\xce\xd4\x09\x9b\x45\x43\x94\x8d\x00\xaa\x34\xed\xda\xd3\x98\x66\xb4\x2f\xa8\xf6\x22\x94\x92\x90\x19\xf0\xf2\x39\x6f\x82\x4b\x17\xe0\x4d\xdf\x00\xad\x05\x16\x1b\x8f\xa8\x57\xbc\xb5\xfe\x13\xc3\x89\x94\x1e\x35\x35\x98\xf7\xa2\x86\xb2\xea\x03\x45\xa5\xc7\x08\x62\xc3\x0e\x46\x50\x60\x0b\xff\x6a\x8f\x08\x91\x44\x2d\xe7\x8a\xe7\xe3\x7c\x53\xfa\x84\x31\xa3\xdb\x50\xc0\x9b\x5b\x1f\x64\xe0\x49\xcf\x73\x02\x03\x3d\x7b\xfa\xc1\x65\xcb\x20\x64\xd8\xbe\xa9\xe4\x2b\x64\x59\x9a\xbf\xdc\xcd\xdd\x09\x42\x5f\x60\x4c\xc4\x95\x1a\x18\x43\x8d\xea\x7c\x13\x0f\x96\x0c\x13\x89\x30\xe4\x59\x7e\x16\x69\xdf\x92\x89\xc9\xd8\x27\xc8\xb5\x48\xf3\x4e\x9e\x63\x10\x12\x47\x6e\xa0\xb5\x77\x36\x06\x71\x75\xb3\xdd\x7e\xd6\x25\xef\xa8\x3d\xad\xbc\xab\xfb\x00\x31\xba\x9c\x7d\xba\x4b\x35\xbf\x0c\xc2\x7f\x49\x88\xc0\xa6\xca\x01\x2b\xc2\x43\x8f\xb0\xe1\xcc\x90\xc4\xe0\xdb\xee\x96\xf7\xb3\xe7\x87\xfd\xe1\x69\xd6\xe2\xaf\x24\xe1\x11\x71\x30\x2a\x7e\x29\xce\x75\x1f\xae\xdc\x02\x20\x24\x01\x4a\xbc\x7e\x03\xcc\x1d\xa0\x51\xcc\xac\xd7\xb0\xc9\x80\xe6\x97\x95\xea\x01\x8a\xec\x30\x16\x72\x5c\xff\x37\xdb\xd5\xcf\xd9\x7e\x79\xd8\xcd\x1e\xda\x4b\x60\x42\x61\xa3\xef\xdb\x6a\xb1\x1f\xe8\xa9\x33\x99\xd8\xb2\xfc\x4b\xab\xef\xba\xe0\x59\xd6\x6d\x4d\x32\xd1\xdc\xe8\xc4\x22\xa1\xc5\x84\x11\x43\x0d\x55\x3b\x90\x13\x82\xb3\xd5\x12\xdd\x07\x8d\x70\x29\x7c\xb3\x38\xa6\xd5\x96\xe7\xaa\xb0\x0a\xba\xed\xd1\xc0\x88\xb5\x19\xd1\xde\xe6\x77\x22\xe5\xa0\xbd\x0a\xc1\x63\xcc\x2e\xf6\xc0\x8f\xb3\x5c\x39\x17\xe0\xde\xa3\x3a\x7c\xcc\x85\x08\x50\xaf\x0a\xd3\x89\x76\x93\x94\x02\xb4\xa1\x7f\xe7\xe9\xb4\x1b\xd3\xf0\x2c\x32\x08\xb0\x9c\x35\x4f\x45\x31\x78\x30\x65\x60\x08\x12\x3f\x31\x72\x03\xf5\xe3\xaf\xc5\xe8\x02\x24\xa1\xc8\x8a\x50\xe7\xe3\x69\x92\x2f\x27\x95\x36\x52\xc7\x26\x61\x5a\x34\x6b\xda\xb0\x50\x28\x21\xa2\xb8\x1f\x2f\x37\x06\x88\x3f\xa5\x15\x3d\x5c\x59\x24\x68\xe3\x7a\xd5\x4a\x82\xb5\x33\xa8\x89\x52\x61\x9b\x06\x39\x7c\xd3\xb4\x39\x79\xfb\x11\xd3\x38\xf9\xd7\x19\xca\xcb\xd3\x80\x69\xea\x46\xf0\x28\xb2\xba\xc7\xf7\xbb\xfd\x6d\x37\x54\xa6\x3c\xab\xd1\x75\x78\x71\x52\x23\xd6\x20\xaf\x7d\x03\x94\x47\xc3\xd8\x46\x5f\x76\xf9\xec\x39\x32\x32\xe5\x71\x22\x2d\x10\x62\x6e\x14\x53\xbb\xbb\x6f\xb1\x35\xa3\xaf\x14\x46\x39\x34\xad\x9e\x8a\xfc\x9f\x50\x16\x93\xd8\x19\xe5\x29\xf0\x6c\x9d\xd3\x3c\x93\xfb\xc2\x68\x8d\xdc\xf8\x25\x7e\xec\x1b\x28\x12\x4a\xed\xa5\x50\xb9\xb2\xbf\x3d\x1e\x44\x0c\x0b\x23\xdf\x8c\x51\x1b\x94\xf3\xb1\xdb\x37\x53\x01\x84\xc2\xa1\x55\x6c\x1b\xe5\x17\xa4\xa3\x41\xa1\x27\x2d\xea\xb0\x09\x1a\x91\x5c\xeb\xbe\x23\xf4\x8d\x2e\xdc\x6c\xb5\x75\xf2\x56\x4c\x85\xb1\x46\x6e\x25\xcf\xe5\x6b\x6b\x09\xc8\x54\xe4\x47\xc8\x72\xe2\xa7\x53\x76\xb1\xc2\xf0\xd5\xb0\x9a\xff\x9f\x41\xe5\x54\xc4\x62\x6c\x22\xa9\xb4\xb2\xf5\xa9\xe7\x0a\xca\xab\x77\x40\x45\x92\x1b\x31\x5f\x5e\x55\x70\x14\xd9\x65\x92\x53\xdd\x7b\x9e\x54\x04\x2e\x2a\x30\x85\x8d\xb5\xd6\x15\xcf\x0c\x4b\x62\x7e\x59\xe7\xed\xc3\x10\x7b\x3e\xbe\x3c\xeb\x4b\x55\x43\xb9\x69\x1e\xf7\xf6\x10\xf7\x85\x63\xaa\xde\x97\xc5\x71\x25\x8b\xf6\x90\x56\x92\xbb\xf2\x7c\xd7\x54\x53\x44\x02\xee\x06\x73\xa8\x77\x50\xcf\xf2\xea\xe3\x77\x44\x33\x45\x14\x03\x65\xb9\xbc\xd8\x8e\xb0\x4e\xd9\xee\x94\xd4\x33\x1a\x41\xcd\x06\xb3\x05\x0d\x65\xec\x7d\xc6\x5e\x7b\xd4\x82\x45\xc1\x82\xff\x9a\xeb\x9c\x65\x35\x6f\x1f\x22\x1a\xc6\x81\x4b\x21\x9b\xe7\xe3\x79\xbb\x1a\x35\xd4\xdc\xc0\x28\xc6\xdd\x65\xf7\x5a\x7c\x5c\x49\x0c\x33\x45\x89\xd1\xbb\x78\xbc\xf0\xaa\x7e\x85\x3c\xe5\x2f\x25\x7f\x4f\xdb\x87\x83\x32\x8d\xc2\xd8\x55\x91\x35\x79\x59\x9a\x1b\x2b\xcc\x1e\x21\x41\x31\xae\x30\x99\x74\xa5\xe3\x29\xb6\xcd\x68\x72\x98\xa2\x48\x82\xfc\x99\xa5\x3d\xea\xbe\xe2\x81\x8f\x5a\xa6\xbb\xe5\xa2\x85\xad\xb7\xc7\x98\x8f\x6c\x25\xf4\x17\x6e\x42\x1e\x1b\xdb\xf4\xf2\x65\xc5\x39\xc3\x48\xc1\xc4\xd7\xff\x55\x5c\xaa\x62\x2a\xc8\x56\x5c\x8a\xc8\x32\x76\x1e\x0a\xf9\xb6\x29\xaa\xaf\xb4\x67\x6f\x3c\xe4\xc2\xa7\xb8\xf6\x37\xaf\x28\x3f\x67\xe8\x57\xf7\xef\x36\x29\x53\x92\x70\x9c\x38\x95\xbe\xff\x79\x63\x16\x24\x13\x51\xe4\x80\x13\xcd\x4a\x87\xad\x0a\x7b\x50\x79\x01\x16\x6d\xcc\x6f\x31\x9e\xf9\xa5\x31\xc0\xb9\xfc\xd1\x8f\x7a\x95\xf2\x8c\x2b\x85\xd9\x1a\xd7\xfa\xa1\xa8\xeb\xf6\x89\x56\x91\xa0\xb6\xf4\x8e\x2f\x89\x81\xc2\xf6\xf7\x2a\x05\x91\x0e\xfb\x75\x5d\x73\x83\x75\x51\xb2\xe0\x16\x64\xd6\x7d\x32\x09\xac\x62\xbd\xd1\x70\xe2\xf8\x3e\x6d\x8a\xb2\xd6\x45\x96\x16\x37\x7e\x36\x48\x82\xf4\x96\xed\xf2\xdb\xf3\xc3\x6c\x7b\xd8\xb6\xae\x75\x4c\x81\xd2\xa1\xe7\xea\x03\x3b\xf9\x5a\x14\x57\xc0\x16\x3b\x52\x87\xca\xb3\x23\x9f\x8a\x7a\xd4\x3c\x57\x9a\x50\x69\x94\x5a\xde\x81\x67\xd6\x5c\x7b\x70\x02\xf0\x3c\x88\x23\x07\x12\xca\xb2\x5f\x69\xae\x8a\x8f\x1e\x54\x08\xbc\x40\x20\xc5\x98\x8b\x26\x1e\xc9\x77\x4d\xe2\xe8\x0e\x25\x21\x3e\xa8\x88\x70\xfc\xd6\x3d\x5f\x83\x57\x0f\x3c\x2d\x50\x52\xa2\x75\xc0\xb3\x11\xcf\xa0\x6f\x0e\x7e\xa0\xb0\x2c\x60\xb6\xf9\x59\x9e\x1e\x7b\x60\x9e\x89\x78\x18\xfc\xd8\x43\x1a\x59\x9a\xeb\xa2\x07\x5d\x1c\xfe\x3a\x9f\x87\xb8\x35\x3f\xa4\xef\x70\x02\xdb\x8b\xbf\xe7\x67\x09\x57\xf0\x8d\xf1\x27\x45\xe4\xdb\x89\xed\x79\x29\x35\x7f\x37\xd4\x99\xaa\x2e\x4e\xe8\xb3\xd7\x2b\xd1\x40\x10\x2a\x34\x54\x1e\x74\xc7\xe2\xf6\x68\x4c\x71\xba\x64\x4f\x3f\xf4\xc9\x49\x51\x33\x08\xfd\x88\x07\xc3\x2e\x54\x91\x1b\xd5\xb9\x3e\xd9\x06\x42\xe2\xcc\xca\x79\x35\x3b\xa5\x9b\xb2\xd0\xe9\xa8\x31\x0d\xa1\xf2\x95\x85\x4c\xfe\x4a\x73\xe8\x94\xa5\x3b\x13\x46\x06\x91\x17\x9b\x57\x17\xdf\x2d\x8c\xd1\x46\xc9\x15\x44\x14\x10\xed\xfd\x50\x14\x03\x8e\x1d\x44\x3a\x66\x0e\x5c\xf8\x36\x06\x28\x41\x1c\x50\xf7\xf5\xae\x25\x33\xc8\xcc\x20\x0e\x74\xc2\x7b\x1b\x98\x85\xe6\x8f\xce\x12\xc9\xd8\xc2\x13\x67\xd5\xbe\x15\xde\x64\x40\x7c\x13\xf0\x1d\x50\x21\xe2\xf3\x32\x7c\xea\x81\x86\x0a\xdd\x65\x5e\x79\xb5\x3e\xd7\x55\xcd\x51\x9b\xb3\x15\xb4\x6e\x27\x89\x12\xc0\x08\x44\x9c\x2f\xfd\x08\x0a\x28\x70\xab\x82\x8b\x18\x0a\xd7\xff\x19\x37\x8a\xa1\xc9\xa7\xb4\xad\xd7\x22\x04\x6b\x0b\xd0\xac\xd6\xdd\xcf\x64\x3a\x24\xb6\x27\xfb\x57\x71\x2e\x8d\xd9\xa2\xc1\xb6\x0e\xe7\x99\xfb\x06\xae\xd2\x4c\x87\xcd\x72\xff\x06\x8c\x0e\x78\xac\x65\xaf\x12\x65\xba\x7a\xee\x18\x89\x31\x0b\x3d\xa0\x3b\xc3\x5a\x77\x15\x60\xe0\x92\x63\xf6\x9b\xe6\x3f\xd2\xaa\x9a\xef\x17\xa3\x89\xe7\xda\x77\x8d\xca\x79\xb3\xf4\x4c\x7f\xb9\xf0\x3d\x24\x49\x2f\x9c\x11\xb0\x01\x46\x8e\x1d\x3d\x18\xc8\x30\x72\x49\x2f\x2a\x87\x8c\x9d\x44\x86\xd2\x2c\xee\x43\x89\x97\xb4\x0e\xcd\x07\xd5\xdf\x4c\xdd\x08\xe5\x23\xbe\x19\x85\xe9\x8f\xe9\xe7\xd0\x3c\xd3\xf9\x4a\xdb\xc1\x4a\x26\x72\xd8\xe2\x75\x4c\x2c\x3b\x40\x47\x02\xdb\xc7\xe6\xfb\xd2\xe2\xdc\x3a\x0e\xa9\x76\x48\x2c\xf0\xb9\x9a\x9f\x2f\xab\x1a\x8e\xa3\xd5\xc9\x0c\xd2\x5e\xc8\x10\x8d\x64\xf3\xd3\x96\xc4\x3b\x98\x12\xed\x45\x7e\x60\x1b\xa0\xb8\x0c\x58\x0c\xca\x68\x94\x1f\xfa\xe8\x34\xff\xb8\x7a\xda\x1f\x5a\xdf\x50\xa6\x7d\x70\xaa\x0f\x56\x4a\xba\x32\xcb\x76\x4f\x30\x95\xe9\xc0\x0b\x31\xfa\x5c\x9c\x4b\x5e\xf7\xda\x06\x3a\x08\x8c\xb7\xd3\x7d\x3a\xb0\xa6\x67\x3a\x08\x79\xcf\xb8\xfa\x96\x5a\xe5\x2d\x49\x24\x1d\xc4\xd2\xd5\xa7\x8b\x77\xc0\xaf\x1d\xa3\xfd\x74\xc0\x62\x8a\x74\xfe\x2c\x85\xdc\x48\xf6\x9b\x3a\x48\x7f\x31\xbe\x41\x72\xd1\x01\xd7\x21\x6f\xaf\xaf\xad\x4e\xb5\x10\xb5\x29\xde\x85\x0e\x7d\xc9\x02\x47\x34\x0b\xd6\x7a\x34\xc5\x61\xa0\x9c\x0b\xce\x82\xd7\xff\x9f\xb2\x2f\x69\x6e\x1c\xc7\xf2\xff\x2e\x73\xaa\x43\x1d\x08\xee\xf8\xdf\x24\x59\x76\x6a\xd2\x5b\x4b\xca\xcc\xaa\xe9\xe8\x50\x3c\x00\x0f\x36\xc7\x14\xa9\x26\x29\x3b\xd5\x9f\xfe\x1f\x7c\x00\xb8\x89\xce\xaa\xc9\x4b\x46\x98\x10\x45\x91\x20\xf0\x96\xdf\x62\x95\xfb\xac\xe5\xae\x1b\x22\xd2\x0e\xd8\x49\x3e\xa7\x53\x5d\xa7\x7f\xfe\xeb\xf7\x71\x91\x41\x07\x32\xa4\x15\x64\xb5\x7d\xfa\x71\x43\x52\xc4\x3f\xd6\x9b\xe1\x13\x0c\xfd\x80\x78\xb8\x22\x6b\xea\x63\x96\x8f\x9f\x43\xd8\xa6\x3d\xa6\x3b\x54\x9e\x1b\x97\x82\x76\xd7\x13\x86\xa6\x06\x67\x3a\xf1\x9d\x43\xe8\x76\x88\xf8\xd2\xa1\x60\xf4\x05\xed\x1c\x7c\xaa\x40\xf6\x8f\x3f\xd4\x66\xd5\xfa\xfa\x0a\x59\x75\xce\xb7\x70\x04\xf5\x0a\xdd\x97\x47\xbe\x24\x4b\x42\xb2\xc2\xa5\x66\xdc\x97\xc7\x0f\xd6\x1d\x45\x34\x6e\xd5\x27\xf8\x28\xb2\xe2\x65\x9c\xd3\xe9\x98\x03\x9a\x4c\x46\xa9\xd5\x6b\x96\xab\x7d\xf9\x0c\xed\x5e\x37\xbf\x84\xe8\x58\x26\x68\xda\x34\x1a\x2b\x6c\xb3\xed\xac\x81\x91\x2e\x9d\x1b\xa8\x35\x95\x34\x8d\x2f\xca\x5f\xb8\xc4\xd9\xcf\x24\xbe\xf1\xc7\x59\x3d\x75\xba\x3a\x3a\x11\xc6\xf4\xe5\xdb\x72\xd4\x90\xd1\x29\xe3\x81\x91\x70\xec\xcd\xb3\x6f\xb3\x9f\x03\x84\xc4\xa4\x8e\xa4\xd3\x24\xe4\x36\x78\x6e\xf7\x54\x6a\x47\x50\xf8\xea\x4f\x66\x58\xaa\x91\x94\x87\x41\x1a\xf1\xbd\xba\x79\xf8\x73\x39\x19\xc3\x63\x49\x33\x7b\x21\xca\x73\xf3\x15\xf3\xf7\x2e\x19\xd0\x3c\xf1\xe9\x71\x59\xb5\x9b\xa1\xca\x9d\x86\xd8\xb0\xbe\x05\x34\xf2\xb5\x93\xff\xd8\x7f\xf9\xdc\x2d\x3a\xd5\x00\x1c\xd8\x20\xda\xbe\x76\x94\x4b\x35\x08\x45\x97\x73\xb3\x78\xea\xbe\x4a\x47\xa4\x3d\xb9\x5f\xd6\x98\xbb\x1c\x52\x0b\x0f\x64\x57\x4e\xb6\xa8\xab\xac\x2c\xcc\x2b\xed\xc6\xf8\x48\x7b\x54\x9b\xac\xec\x9a\xf2\x74\xea\x16\x54\x2d\x7d\x24\x40\xca\x9d\x61\xc0\x53\xd4\x39\xbe\x12\x19\x19\x55\x88\x8f\xa9\x8a\xeb\xe4\x59\x4b\xc9\x03\x9c\x9a\x59\x4d\x31\x0e\x5a\x89\x80\xaa\x5d\xdb\xf5\xd3\xca\x5d\x83\xd2\x2a\xc5\x2e\x08\x7a\x80\x3c\x97\xce\x2e\x71\xb6\x70\xaf\xd1\x17\x14\x12\x3d\x96\x4d\xa6\x33\x6a\x58\x93\xf3\xe5\x6c\x6b\x42\x6b\xc6\x68\x4d\xb5\x3b\xf4\x15\xe1\xb8\x1b\x26\x80\x75\xb8\x6f\x87\x5f\xeb\x6e\x94\x4e\x3d\x6a\xc9\x10\x0e\xcc\xea\xbf\x0d\x4f\xc0\x3d\x2f\xf0\xa4\x81\xca\x9c\xeb\x06\x55\x97\x37\xd6\xd3\x71\x92\x13\xd0\x65\x27\xcf\xaa\x5c\x75\x5c\x10\xee\xb1\x20\x8a\x8d\xd1\x2e\x09\x9d\xcc\x44\xf2\xdc\x63\x31\xa3\x37\x8a\x2e\xe3\x53\x1e\x61\x5f\xa8\xe0\x1e\x13\xc6\x93\xe1\xcf\xed\x1f\xee\x8b\xfc\x76\x1f\x6d\x27\x6d\xfb\x26\xf7\x18\x1c\xee\x05\x41\x40\x39\x78\x9b\x54\xd7\x37\x08\x2a\xcf\x5c\x21\x83\x7b\x41\x94\x52\x38\x60\x0b\x29\x03\xb6\x3f\xf7\x82\x24\xa4\x02\xd6\x0e\x9b\x1a\x65\x59\xa8\xfd\x1e\x7e\x8e\xf5\x1c\xdd\xc8\x34\x26\xf4\x9a\x82\x2c\xbf\x58\x52\x6d\x77\x16\x30\x04\xbd\x36\x91\xb5\x87\x46\xf0\x35\x37\x4c\xfa\x54\x7a\xa1\x55\xfd\x61\xf1\x47\xbf\xaa\x73\x2f\x8c\x3d\xd2\x4f\xa3\x0e\xdb\xd7\x2c\xcf\x27\x9f\x0d\xd3\x90\x38\x4a\xef\x06\x14\xf9\x39\x3a\x8e\x7b\x21\x18\x29\x7b\xdb\xc0\x56\x37\x70\xa9\xbb\xaf\x41\x96\x84\x4e\xa5\x76\x90\x1a\xb4\x47\x14\x7d\x6a\x8b\xa7\xf3\x50\x77\x96\x7b\x91\x67\x78\xd2\x77\x50\x2f\xcf\x97\xee\xaf\x22\xa1\x2d\x3b\x2f\x5f\xbe\x65\x57\x77\x2b\x66\x40\x89\xdb\x22\x6f\xba\xba\x6a\x1b\xbe\x8d\x7f\x54\x6c\x4b\x30\x0f\x8b\xc7\xc5\xdd\xba\xbd\x1d\x87\xe7\xf5\xf6\xb0\x7d\xfa\xf6\x78\xe3\xbe\x27\xd6\x21\x93\x4e\xdc\xe5\x1d\xf3\xf2\x34\xf1\xb8\x68\x87\xa4\xa4\x58\xbd\xb6\x11\xf4\xf8\x68\x12\x9b\x45\x64\xf3\xe5\x3c\xa4\x81\x70\x2f\x65\x31\xa9\xd2\x2e\x33\xe2\x8a\xef\xb2\xbc\xeb\x53\x73\x2f\x15\x3e\x4d\x35\xd3\x27\x75\x0b\xe4\xe8\xb6\x5f\xad\x90\xdc\x4b\x55\x40\x49\xdc\xe2\x61\xbd\x1c\x7d\x17\x67\xd2\x5a\x8f\xd4\x58\x35\xf7\xf0\x71\xf9\x44\x97\x93\x7b\x3c\x8d\x95\x72\x72\x33\x1f\xd6\x1d\x60\x76\x4a\x72\xd0\x54\x20\x7b\x85\x59\x4b\x30\xee\x71\xc5\x28\x2d\xb4\x51\x19\xd6\x03\x5e\x1d\xf7\x20\x06\x22\x8c\xec\x56\x87\x9c\x44\x3e\xbb\x03\x98\x90\x42\x1c\x35\xdb\xfe\xa7\xbc\x69\x67\xbc\xa1\xad\xd8\x01\x32\x0a\xd3\xc8\x68\xfa\xfc\xbc\x3c\x60\xf5\x42\xec\x2b\x7f\xaa\x63\x30\xc9\x7a\xb8\x27\x93\x08\xed\x4f\xeb\x70\x4f\xa8\xc6\xc6\xd1\xbf\x8f\x9f\x9e\x4c\x75\xd2\x2b\x1c\x0e\x72\x2d\xee\x49\x08\xb4\xee\x16\xbe\x7d\xb9\x44\x5b\xad\xee\x7f\x89\x94\x91\x71\x99\x3b\x5f\x48\x28\xcd\x64\xcf\xd7\xf6\xdb\xdc\x53\xb1\x56\xfe\x80\x89\x58\x41\x21\x5f\x71\x3a\x08\x8d\x20\x4b\x4d\xa2\x9b\x5b\x34\x3c\x41\x7a\xd0\xc3\x1b\x8b\x2c\x31\x8a\x2a\xa6\x76\xb2\xcc\xa7\x49\x5b\x3b\x44\x5a\xb4\x82\x81\xb8\xec\x1a\x3c\x75\x1f\xf7\x39\xfd\xe4\xfa\x2c\x8e\x59\xd3\xdf\x20\x77\x38\x61\x14\x6f\x74\x00\xe0\xf9\x72\x6f\x38\x8a\x97\xb8\x87\xa9\x07\x1d\x67\x9d\xc6\x3f\xe9\x39\xce\x26\xf7\x50\x59\x9e\x29\xf9\xc8\xd3\x26\xbf\x93\xaf\x78\x9c\xde\x0d\x54\x40\xd8\xfc\xdb\x0a\xf1\x3f\x63\x53\x25\xee\xe9\x40\x9b\xbe\xba\x81\x5f\x6d\xb1\x3e\x95\x45\x8d\x3b\x5a\x64\xbf\x40\xae\x47\x45\x29\xe6\xce\xa9\x43\xe6\x8a\xb2\x84\xf7\x1f\xf7\xee\xdd\x20\x08\x03\xab\xbb\x7c\x7f\xff\xdd\x50\xcd\xd8\x10\x3d\xc3\x19\xf3\x14\xc1\xb1\x9c\x9d\xc7\xfa\xf1\x86\x14\x1b\x76\xfb\xc5\x83\x5b\x73\x19\x8b\x7d\x25\x9c\x3c\xf2\xc4\x78\xbc\x3d\x1a\x50\x75\x0b\xab\xaa\xac\x16\x85\xb2\x74\x9a\xf1\xd7\x70\x9f\x7b\x4e\xe6\xff\x72\x6a\x4a\x95\xc1\xb1\x2c\xd4\xf8\x66\x30\x3f\x4a\xc0\x4e\x2e\xd3\xfe\xbc\x87\x42\x4d\xb6\x57\x16\x04\xa9\xe7\xda\x37\x43\x8a\xd0\xe8\x31\xb2\x40\x49\x5a\xb4\x16\xeb\xdb\xe1\x02\xc3\x42\x2f\x48\xc1\xe1\x6a\x8a\xb7\x6d\x99\xe7\x77\x55\xf9\xd1\xbc\xde\x96\x55\x9b\xee\x4c\xfa\x23\x9c\x85\x0c\x08\x43\x9d\x69\x7d\xee\xcf\xe2\x0b\x83\x5b\x1c\xa8\xd4\x8d\x96\x14\x16\x85\x26\x84\x59\x6c\xbf\xba\x0f\xc5\x7e\x40\x01\x14\x2d\x11\x63\x39\xbe\x39\x6b\x4d\xf7\xa9\xd8\xe0\x9b\x9c\x70\xe6\xc4\x16\x93\xb3\x38\x49\x09\xe2\x75\x5f\xbe\x98\x5b\xbf\xde\x7f\x99\x5f\x32\x59\x2c\x03\x6a\xe3\x14\x14\xbf\xad\x9b\x57\x83\xf8\xef\x4e\x95\x48\x49\xbd\xeb\x2f\x65\xf1\x72\xc4\x79\x79\x9e\x61\xf7\xdc\x7e\x2c\xe5\x7e\xe4\xa8\x7b\x14\xb6\x7c\xc2\x7b\xb3\xc3\xb9\x60\xb2\x2b\x14\x53\x87\xbc\x5e\x5e\xb6\x50\xbc\x5d\xbf\xa1\xf3\xb7\x84\x4b\x2e\x2d\x50\xfd\xae\xcc\xd5\x12\xda\x45\x79\x79\x59\x83\x7c\x1d\x3d\x6b\x08\x04\x71\x3a\x16\xdb\xd5\xcd\xe1\xf6\xdb\xe3\xcd\xe1\x66\xfd\xfc\xb4\x73\x05\x51\xce\x80\x6b\x52\x24\xa4\xde\xc7\x17\xa8\x97\x88\x85\x41\x51\xa3\xda\x97\x93\xac\x90\x33\x11\x47\x9e\xf3\xa4\xda\x28\x2c\x6c\x70\x3a\x58\x74\x98\x90\x60\x9d\xbd\x9b\xf3\xe9\xaf\x74\x9f\xfe\x4a\x1e\xc2\xed\x07\x4c\x72\x40\xbb\xd2\xf4\xa5\x32\x1a\x14\xf6\x63\xa4\x4f\x5e\x68\x7d\xf5\x65\xb3\x7a\x9a\x61\xc1\x70\xa6\x12\xe3\xcc\x63\xe4\x1e\x8e\x65\x41\x2b\xc8\x2f\x95\x36\x38\x53\x2a\x12\xb1\xb5\x8c\x25\xbf\xe0\xae\x76\x73\x80\xe6\x90\x7d\x4a\x7d\xe0\x0c\x3d\x16\x70\xbb\xc2\xe5\xd8\xe0\x7f\x97\xe2\xb7\xf1\x84\xc0\x30\x31\xfe\xf4\x65\x56\x0c\xaa\x2c\xf3\x55\x69\xce\x30\x35\xf1\x88\x3c\x1c\xe1\x67\x0f\xec\xd9\x95\xb9\xdb\xcf\x18\x6a\x53\x1c\xa0\xa8\xa4\x7e\x75\x62\x12\x96\x62\xc7\x99\x8e\x13\x32\x5c\xb4\xfc\xf4\x7f\x7c\xdb\x5c\x33\x12\x39\xd3\x10\x81\xe9\xb9\x17\x50\x5d\xc6\x28\xac\x4f\x6e\x93\x46\xa0\x7b\xfb\xf0\xf0\x77\x5f\x1e\xad\x95\xe9\x5b\x5b\xbe\xf2\xa8\x31\x39\xa7\x15\x34\x86\xb1\x8c\xae\xd8\xf7\x38\x06\x41\xe7\x11\xf7\xa4\xaf\x84\x0b\xdd\x38\x34\x2f\xba\x38\x5f\x9e\xfb\x46\xcc\x78\x9e\xf8\x4c\x9a\xcc\x73\x91\x0b\xac\x9a\x5e\x8e\x87\xfb\xbe\x17\x1a\x10\x47\x99\x93\xbb\xb0\xfb\x33\x02\x55\xbd\xc0\x86\x17\x63\x73\xc0\xf1\x9d\xf2\xc3\xd0\x88\xb6\x37\x58\x37\x03\xf9\x06\xee\x87\xa9\xa2\x65\x72\xf1\x33\xc3\x85\xec\xd4\xf4\x9d\x88\x04\xf7\x43\x1e\xa1\x05\x48\x61\x65\x10\x1c\x26\x21\xed\x06\x80\x08\xa8\x02\xb6\xf9\x3e\xbc\xea\x10\x14\x35\xa8\xca\x77\x68\xb0\x3f\x9b\x00\xd6\x63\x1f\x86\xfe\x36\xbf\x14\xc6\xe6\x7e\x24\xb8\x64\x9d\xb1\x62\x73\x8b\xb8\x10\xf5\xe4\x3e\x47\x2a\x4e\x07\x2a\xd9\xa6\x59\x41\xed\x9d\x5f\x70\x97\xb8\x1f\x7b\xcc\x96\xf9\x3e\xa0\x22\x31\xb8\x11\x91\x79\x32\x3a\x09\x53\xc2\xfb\x53\x94\x39\xe5\x3a\xce\x7f\x24\x4d\x19\x73\xa4\x08\x52\xdb\xee\x6e\x52\x9a\x2a\x63\x41\x01\x39\xf6\x4a\xf7\xdc\x87\x00\x93\x68\xd0\x24\x6c\xf3\xe3\x67\xb8\xd4\x93\x67\x4c\x1b\xd9\xf8\x41\x03\x1a\x13\xee\xac\xde\x81\xc6\xe7\x73\x21\x9b\x33\xf4\xc2\x75\xcc\x0e\x13\xbe\x26\xf6\x11\x28\xb5\xcb\xcb\x17\xb0\xd6\x54\xa3\x97\xc5\x17\xc2\x23\xde\x1d\xbe\xf7\x02\xe0\x6e\x05\xf4\x85\xf4\xa8\xfe\x7c\x82\xcb\xa1\x29\x0f\x4f\xeb\x07\x77\xf1\x92\x45\xda\xca\x74\x1c\xbe\x2f\xee\xbf\xad\xbb\x03\x56\x54\x6d\x5f\xe1\xdb\x00\x15\xcf\x7d\x19\x86\xd4\xa9\xfc\xb6\xde\x3f\x75\x7f\x4b\x13\x6f\xa8\x89\x44\x04\xa9\x6b\x7f\x48\xee\x4b\x61\x40\xe3\x2f\xd8\x3c\x55\xa6\x62\x6f\x99\x51\xe6\x7d\x24\xf8\xd8\x95\xfc\xca\x3f\x07\x00\x4e\xee\xab\x90\x51\xed\xeb\xee\x71\x3b\x79\x2d\xd1\x03\xd2\x38\x70\xeb\xef\x75\x75\x89\xfb\xe8\x1b\x04\x16\x01\x8b\x09\x85\x5b\xbc\x38\xd3\x48\x37\x24\x09\xc1\xca\xa7\x10\x28\x00\xab\x51\x9e\xeb\x63\xea\x53\x98\x25\xba\x74\x62\x7e\x2a\x21\x1a\x4d\xca\x0a\xb2\x1a\xf7\x70\x9a\x5e\x09\xa6\x94\x48\x3b\xf5\xad\x5f\x24\xe4\xbe\x86\x80\xb8\xcb\x4f\xc7\x22\xab\x97\x5d\x1a\x15\x78\xa1\x24\xe0\x35\xed\x53\x9d\xe9\xfe\xec\x39\x02\x8f\x7b\xca\xeb\xcc\x30\x6c\x95\x79\xf6\x2d\x0b\x18\x70\xba\x49\x74\x49\xdb\xaf\x89\xf7\x3f\xee\x0b\xfd\x28\x74\x10\x30\x0b\xb0\x46\xf5\x54\xa1\x05\x4f\x4d\xd6\xc9\xc0\x57\xd2\x33\xde\xc9\x0a\xf7\xa5\x0b\x69\x87\xf3\x36\xf0\x35\x50\x2f\x62\xf1\xbc\xf1\xdd\x97\x04\x9e\x29\x1f\xe7\x99\xa0\xe2\xa2\x00\xf9\xd6\xbe\x8f\xa3\x79\xd1\x55\xdc\xed\x86\x1f\x87\xa6\x12\x1e\x77\x1b\x7f\x10\x80\x1f\x82\xe3\x8f\xdd\x64\x15\xca\xe6\x86\xfc\xa2\xdd\x71\x19\x3b\xd2\xe2\x73\xf9\xd6\xee\xf7\x57\x9a\xc2\x3c\x08\x94\x4f\x4a\x88\xed\xdb\x77\x42\x99\x4d\x8c\xfd\x5d\xde\x11\x84\xa9\x27\x1d\x14\x81\x1a\x52\x5b\x5b\x3c\xb1\xf0\xb3\x2e\x58\x0a\xc2\xd4\xd4\x64\xcd\x1a\x56\xdf\x9e\x07\x91\xfc\xe4\x41\x84\xa9\xa6\x55\x12\x5f\x5e\xc6\x0e\xf1\xdd\xd7\x46\xbe\x0c\xfb\xce\xf5\xb2\xa9\x89\x9e\x62\xc7\xfc\x3e\x93\x20\x05\x51\x9a\xd2\xaa\x73\x84\x9f\xed\xfa\xb9\x2a\xcb\xb7\xcc\xcd\xfd\x20\xe2\x81\x0d\xdf\x9b\xad\x71\x32\xfd\x02\x85\xca\xa7\x66\x9c\x6e\xb4\xe0\x44\xc9\xfe\x5f\xea\x41\xb6\x59\x83\x3b\x4f\x9c\x84\xd4\x24\xb5\x18\x31\x8b\xe1\x9f\x17\x4e\xe0\x41\xcc\x53\x42\x23\x58\xd2\x30\x4d\xbb\x11\x04\x92\x07\x89\x1f\x10\xf4\x64\x38\x0f\xdc\xa1\x34\xa0\x35\x0c\x2b\x68\x53\xf4\x87\x2e\x99\x9e\x0c\xe3\x09\xb1\xae\xef\xb2\xe3\xd1\xd5\x61\xec\xa1\x34\xe4\x4e\xf6\xf8\xd6\xb0\xf4\xe6\xb7\xe6\x20\x8d\x12\x2e\xba\xfa\x75\x73\xae\x47\xfc\x4c\x37\x48\x78\x0a\x07\x92\x7c\x6d\x94\xb5\xb2\x82\xf8\xce\xbe\xbe\x1d\x85\xee\x4d\xea\xe5\x4e\x18\xef\x4e\xa2\x15\x95\xbc\x55\xf9\x51\xec\x87\x4a\xa9\xe3\x3b\xc7\x03\x46\xca\x38\x25\x79\x9b\x93\x69\xa8\x0b\xf5\x02\x1e\x09\xda\x12\x9e\xb4\x7e\xc0\xe2\xfc\x50\x56\x75\xb7\xb9\x07\x20\x0c\x60\x95\xba\x38\x4e\x33\x69\xf2\xfa\x82\x8e\x49\x02\x67\x59\xe1\x6b\x79\x45\x14\xbb\x0a\x02\x3e\x8b\xd9\xff\x8f\x7f\xb7\x5f\x2e\x42\x4d\xcd\xba\xa6\xf3\x6f\x7b\xf9\xe4\x1e\x88\x54\xd2\xfd\x26\xdc\xa0\xe3\x9b\xa9\xe7\xec\x27\xf6\x06\x09\xff\x64\xb1\x5b\x15\x84\x94\xd4\x85\x41\xe2\xfa\x98\xb9\xd6\xb1\x43\x79\x20\x93\xd4\xb1\x6e\xda\xd7\xc3\xb1\xf6\x26\xb7\x46\x42\x42\x74\x8f\xed\x7e\xc9\xdc\x27\x15\x63\xa4\x14\xb5\x2c\xf3\x66\x34\xbd\x14\x0b\x84\x75\x06\x3d\x6c\x56\x4f\x93\xc2\x6d\xa0\x7c\x6e\xf6\xe0\xac\x50\x47\x38\x1d\xc6\xf1\xf1\xf8\x7b\x55\x10\xa6\x7c\xe0\x3d\xb8\x7b\x2d\xab\xe6\xca\x7a\x90\x07\x08\x48\xbf\xc2\x08\xd6\xb5\x3b\xc3\x03\x8e\xae\x09\x15\x90\x16\xc9\x4b\xf6\x8e\x8b\xaa\xf9\x28\xab\x37\x8b\x37\xbc\x26\xe4\xda\x8f\xe8\x80\x11\x6f\x6c\xff\xb4\xdb\x14\x75\x93\x35\x06\x90\xfd\xa5\xcc\x09\xe1\x30\xc2\x8a\xf1\x40\xab\x50\xe1\x00\x1c\x57\x1b\xaf\xe2\xf1\x75\x86\x5e\x18\x06\xc6\xbe\xe3\x1d\xf3\xf3\x95\x21\xa3\x1b\x15\x01\x49\x8d\x3c\xe2\x47\xc7\x95\x9a\xaf\xf6\x85\x9e\x16\x94\x71\x77\x62\x07\x0f\xe8\xd8\xcd\x3c\x64\x81\x08\xcd\x4c\x29\x0a\x94\xcd\x4c\x85\x3d\x64\xb1\x4f\x08\x9b\x25\xd4\x99\x41\x7d\x5a\xf9\xaa\xee\x1c\xa9\x51\xec\xae\xb3\x97\xc2\xc9\x02\x8e\x57\x9a\x90\xa1\x11\x58\xa9\x0d\xaa\x69\xae\x93\xc3\x43\x1f\x8c\x9a\xf5\xc4\x4e\xe8\xff\xfa\xff\x5f\x59\x78\xf1\xd0\x97\x68\xa0\x18\x99\xa3\xa1\x91\x74\xfe\xf9\x44\x1d\x38\xb7\x2b\x85\x3e\x1a\x9f\x62\xed\xb6\xe1\x30\x08\x34\xf9\x0a\xde\x55\x88\xc5\x8f\xb2\xca\xd5\x2d\x54\x43\x20\x0e\x0f\x83\x30\x8e\x39\x99\xb9\x88\x6a\x80\x22\xe4\x61\xc0\x8d\xad\x0c\x49\x5f\x42\x53\x56\x93\xe9\x11\x86\xa1\x11\x3c\xdd\xac\x9e\x4e\x3d\xca\x93\x87\xa1\x48\x88\xc2\x64\xca\x9a\xe5\xc7\x2f\xb0\xcf\x3c\x0c\x55\x44\x50\x84\x36\x12\x6b\x86\xce\x44\x3c\x8c\xe2\xc8\x2d\xaf\xbd\x65\xfe\xae\x29\x4f\x83\x48\x2f\x8c\x30\x50\x06\x6b\xa3\x10\x8f\x03\x2a\x15\x0f\xe3\x50\xd2\x0f\xd0\xa6\x34\xe9\xba\x8e\x3c\x8c\x05\x27\x72\x9f\x95\x3d\x1b\x47\x0b\x61\xea\xa7\xd4\x4a\x5b\x82\xb8\x2c\x11\x46\xdb\x4c\x98\x62\x68\xe0\x84\x90\xcb\x07\xa8\xde\xb0\x4d\x8d\x7e\x1b\xe5\xb0\x76\x24\x4f\x8c\xe1\x7f\x47\xed\xe3\xa3\xa8\x29\xe4\x89\x69\x5d\x3b\x36\xe9\x76\x86\xcd\xe1\x86\x6a\xcf\xb2\x58\xe9\x85\x58\x37\xaf\xfb\xf2\xc7\xe0\x9d\x80\x98\xd3\x46\x23\xb1\x68\x6a\xdb\x16\x9a\x04\xcd\x21\x48\x20\x74\xf2\xbe\xc2\xa2\x1c\xfd\x24\xc1\xc0\xeb\x51\x5c\x37\xd9\xfb\x0a\xaa\x59\x9e\x38\x0f\xa5\x8c\x6c\xe3\xa8\x59\x5c\xa0\x68\x6e\xaa\x32\x6b\xd6\xb2\x2c\xca\x63\xf6\xef\x33\x1e\x56\xe5\xf1\xd4\xe0\x81\x4f\xbe\x5b\x05\x9c\xa6\x58\xd7\x84\xdd\xf5\xca\x3f\xed\x51\x81\x83\x72\xc6\x6d\x9b\x43\x65\x65\xe1\xf0\x37\xb3\xc5\x92\xf1\xeb\x81\x91\x11\xd7\xdd\x91\xa5\xad\x55\x7d\x1e\x60\x59\x78\xa8\x7d\x74\x60\x3c\xab\x03\x82\x55\xf6\x8e\xd7\x3c\x91\x2f\x50\xbf\x0e\xfb\x0b\xa1\x16\x3e\x45\x53\xb7\x59\x4e\xf2\x77\x9b\xae\x1c\x16\x6a\x34\x75\xdf\x21\xad\xf4\x3e\xab\x9b\x87\x69\x9e\x10\x6a\x1d\x33\x3b\x17\xbe\x66\xcd\xb4\xf7\x1a\x79\x20\x89\x0f\x57\x95\x79\xbe\x2d\xcb\xab\xce\xa8\x1d\xc6\xc0\x37\xd3\xc0\x36\x72\xe0\x48\x84\xd3\x01\x47\xa4\xab\x98\xfc\x93\xff\xeb\xd7\x65\xc6\x88\x69\x43\xe6\xa4\xa9\x60\xfd\x18\xec\x0f\x8b\x7c\xdf\x77\x0a\x54\x94\xd3\x19\x79\xe5\xfa\x50\x4b\xe8\x63\x93\xc8\x17\x31\xb1\xb1\x0e\x95\x89\x0c\x1d\xd8\x70\xfe\x45\x8f\x82\x30\x34\xc6\xcc\x26\xcc\xfd\x5e\x9e\xe5\x2b\x56\x0f\xcd\xeb\xba\x79\xed\x41\x85\x3c\x0a\xd2\x94\x5b\x79\x38\x22\xa1\x98\x93\x4d\xf5\x4d\x3e\xf9\x55\xa1\xa7\x89\xab\x58\x94\xd5\x31\x7b\x83\xec\xbd\x74\xa7\x0d\xa5\xe1\x58\xfc\xf7\xb7\x9d\xab\x90\x46\x91\x0f\x94\x20\x93\xac\xcb\xa6\x78\x2f\xdf\x88\xf4\xe7\x8f\xb8\xfd\xe3\x52\xc3\x75\xbb\x2f\x8a\x42\x4c\x44\xdf\x34\xba\xc5\x46\xbe\x0e\x56\xa8\x28\x0a\xb5\x48\x5c\xed\xf2\x2c\x9b\xef\x70\xce\x9b\xee\x60\x1c\x93\x18\x44\x97\x72\x18\x34\xe6\x1d\x1c\x49\x88\xdd\x9f\x5f\x11\xa2\x38\x32\x3c\xd3\xed\xfa\x6e\xb3\xdb\xaf\xb7\xb7\x6b\x97\xf5\x47\x31\xf8\xc4\xde\x3f\xa2\xca\xce\xc7\xbe\x57\x1b\x25\x09\x23\x95\xd5\x15\x54\x05\xbc\x8c\x42\x89\x28\x49\x03\xd5\x1e\x33\x6d\xf1\xc1\x9b\x13\x25\xa0\x28\xff\x73\x3d\x2a\xca\xf8\x9d\xff\x1d\x8f\x12\x1d\x50\xb1\xec\xeb\x3b\x14\x8e\xe6\xe2\x8e\xa5\x41\xc8\x92\x39\x0b\x8f\xc9\x33\x9c\xb9\xa7\x29\x37\xa7\xb5\xb6\x7a\xdb\x32\xbf\xd2\xd1\xe9\xc7\xca\x38\xb6\x80\x94\x7a\x28\x78\xec\x0e\xab\x28\x0a\x3a\x1f\x21\xa3\x12\x73\xa8\xa0\xc1\xc3\x09\xab\x83\xe9\xf7\x77\x57\xac\x3d\x23\x54\x5b\x41\xdd\x64\xf2\x01\xa1\xee\x9c\xb3\x79\x04\x2c\x22\x6d\xbf\x36\xd8\x1e\x13\x7f\x79\x04\x3e\xe7\x36\x54\xb2\xfd\xc5\x1d\x92\xfb\xff\xf8\x62\xc0\x17\x04\x8e\xba\xc1\x73\x3d\xe8\x64\xb8\xa3\x89\xe9\xcb\x1f\x9a\xf2\xbe\xbd\xae\x89\x1a\x1f\x8f\x40\xc4\x84\xe7\xbb\x5b\xec\x0c\xf8\x79\x64\x4b\xdf\x26\x0b\xc6\x04\xaf\x5d\x9f\xb3\xea\xa6\x2a\x4f\x13\xa9\xac\xc9\x8a\x22\x7c\xf4\x6d\xb3\xe2\x5b\x51\x21\xa8\xc9\xa2\xeb\x86\x85\x1e\x79\xf2\x1c\xec\x14\xb7\x4b\xce\x80\xda\xd1\x8e\x01\x2a\x6f\xdc\x97\x86\xd9\xb0\x1b\x82\xf2\x06\x46\x90\x6e\x78\x04\xa4\x21\xa0\x11\x7b\x6e\x37\x8f\xa4\x30\x06\x8d\xaa\xfc\x51\x56\x6f\x8b\x42\x3d\xc3\x65\xbd\xe8\x5e\x58\x29\x53\x92\x34\x39\x95\x1f\x68\x5c\xad\x87\x92\xdc\x3c\x92\x2a\x36\xfd\x46\x9a\x35\x23\x77\xd0\xf9\x25\x55\x71\x10\xce\xb8\x0d\x9c\x23\x1d\x8f\x30\x34\x3e\x03\x54\x61\xaa\xdb\xd7\x75\x7c\x43\x30\xe2\xa4\xbf\xb6\xd8\xae\x9e\x1e\x17\xee\x53\x3a\xf5\x90\x9b\x10\x77\x57\xea\x66\x35\xdd\x06\x22\x0d\x92\x04\x39\x0c\xb4\x73\xa6\xde\x6e\xc6\xc5\x9e\x65\x22\xec\xbe\x6f\x5c\x86\x11\x7b\x56\x56\xc1\x74\x18\x6f\xce\x98\x0f\xaa\xbf\xb1\xa7\x38\xf5\xf1\xc8\x8e\xe9\xeb\x59\x7d\x62\x65\xcb\x63\x16\x00\x41\xb6\x8f\xd8\xc0\xee\x1a\xc3\xee\x46\x85\x09\xf1\x41\x1f\xa0\x91\xaf\x4b\x43\x65\xfa\x44\x97\xea\x57\x10\x3a\x1e\x07\x1e\x23\x07\x4f\xa3\x3f\x95\x1d\xb1\x3c\x37\xd7\x5e\x7c\x3c\x0e\x58\xca\xf0\xaf\x03\x0b\xe6\xfd\x36\x39\x3f\xa4\xb4\xde\x8f\x34\x0e\x7f\x55\x1c\x8e\xc3\x48\x40\xcf\x6d\xd9\x35\x78\x6a\x23\x69\x22\xa9\xf7\x05\xca\x38\x8c\x7d\x7a\x31\x0e\x64\x00\x62\xc0\x17\xc4\xf6\x22\x9e\xe3\xf8\xb5\x8d\x43\x1e\x50\x27\xee\x08\x6f\x36\xa2\xf8\xad\x3b\xa2\x3c\x5b\x94\xb0\x02\x12\x13\xbe\xb2\x1d\x17\xb1\x44\x6a\xcb\x8a\x1e\x62\x2c\xe2\x88\x29\x61\x37\x43\x0b\x1d\x9d\x7c\x50\x04\xaa\xd3\xf7\x22\x28\xfb\x53\x47\xce\x77\x43\x10\x22\xdb\x35\x79\xbe\x9d\x53\xce\xe3\x71\xc2\x14\x49\xb2\xec\x40\xc2\x20\x03\x88\x93\x54\x84\xf6\xa3\x2e\x2a\xdb\xbf\x56\x88\x33\xed\xa4\x38\x15\x46\x3d\x7b\x57\xbe\x60\x93\xed\x49\x81\xa4\x3f\x13\x0f\x3c\x7f\x7c\x23\x46\xda\xf4\x23\xb5\xfe\xeb\xbf\x31\xcf\xfb\xd7\x9c\xa0\xff\xaf\x43\x9c\x98\xb7\x7b\xfe\x7f\xfd\xbf\xff\xfa\xb1\xf9\xba\x21\x31\xd6\xbf\xec\x57\xc5\x5c\xf8\x51\x6c\x5b\xdf\xe6\x4e\x4e\x2d\x66\xc6\x5f\x01\xa1\x89\x5d\xdb\xbf\x5a\x91\xba\xf9\x1d\x3b\x86\xd4\x23\xae\xd4\xc0\xf0\x63\x32\x5f\x07\xd3\x4f\x84\x01\x55\x3d\xf3\xac\x69\x9c\xba\x2e\x8f\x45\x2a\x92\x78\xd0\xcc\x51\xd9\x7b\xa6\xce\x90\x0f\xfd\x37\x26\x2e\xa5\xb3\x3d\xea\x58\x0a\xa0\x9a\x9f\x1c\xf5\xb3\xe7\x7f\xa1\x94\x9a\x60\xed\xab\x52\xbe\x0d\x77\xbc\x58\xf9\x0c\xa0\x37\xce\xb8\x5e\x8d\x63\xe5\xab\xd8\x96\x5d\x17\xcd\xdb\xb2\xac\xeb\x7f\x9c\x71\xa2\xee\xcf\x63\x15\x30\x4f\x59\x37\xa7\x23\xce\xf2\xbe\x79\x8c\x90\x38\xb6\xc8\x53\xf5\x02\xc5\x63\xe7\x1b\xc5\x63\x94\x8c\x76\xa7\x65\xf6\x62\x1c\xad\x06\xf3\x0e\x55\x8c\xa6\x05\x02\x45\x0d\x34\x83\xad\x7f\xc2\x75\x21\xf3\xf7\x39\x1c\x4c\xac\x03\x3f\x4c\x9c\x56\xc5\x0f\xe8\x92\xc8\x58\xc7\x46\x39\x2d\x93\xb6\x97\x7e\x6c\xb3\xaf\x61\xbf\x3c\xd6\x49\x4c\x05\x9a\x3b\x8b\x6e\x78\xc8\x8a\x71\x47\x3d\xf1\x42\x61\x38\x48\xf5\x42\x4a\x3c\x35\xa8\x36\x47\xdb\xd1\xb0\xae\x3f\xd3\x64\x21\xf1\x12\xdf\x99\xda\x5b\xe9\xde\xd1\x09\xd1\x27\x25\xad\x67\xa8\x2e\x23\x00\xfe\xf5\x64\x6f\xc3\xc1\x54\x39\x1e\x70\x9d\xbd\x8c\x49\x38\x3c\x61\xd2\x18\xa4\xbe\x9c\x4f\xc3\x27\x9f\xf8\xcc\xa7\xfc\xde\x10\x07\x6f\xcb\xca\x34\x69\xdc\x51\x61\xf6\x8e\x57\xc8\x1b\x54\xb7\x0e\xb6\x99\x04\x22\xb5\x8e\xa3\x0d\xe4\x96\x3b\x31\xcc\xb4\x92\xd0\x33\x26\xb7\x79\xf6\xef\x73\xa6\xb2\xe6\xb2\x50\x2e\x30\x4b\x22\x2f\xa0\xa0\x56\x9c\xab\xa2\x4f\xe4\x93\xc8\x33\x92\xc9\x64\x37\x7d\xad\x25\xc8\x93\x88\x71\x3a\xe7\x2e\x2b\x48\x94\x2d\x6b\x2e\x8f\xb6\x98\x35\x32\xe0\x18\xff\xf0\x28\x50\xd8\x41\xdf\x0e\x54\xd7\xea\x4e\x18\x09\x72\x4b\xde\xac\x9e\x56\xa4\x92\xe6\xfe\x2e\x3d\xba\xef\x79\xf9\x72\x83\xe2\x3c\x12\xd2\xe5\x49\xcc\x62\xc2\xc6\xfe\x59\x9e\x7f\x64\x9f\x12\x24\xdd\xe0\x20\xa6\x18\xe8\x94\xc3\x65\x8e\x94\xc6\x93\x38\x0e\x55\x77\x2b\x3b\xa5\x41\x77\x29\x71\x12\x4b\xc3\x78\x44\xf9\xd6\x21\xec\x8c\x0f\xe0\x78\x2a\xc5\x09\x50\x97\xec\xf6\x7e\xf5\x2b\x4c\x42\x12\xab\x80\x64\x34\xda\xbd\x61\xe0\x9d\xc4\x93\x58\x47\xd4\x44\xb7\x2e\xe9\x37\x65\x57\x63\x4b\x62\xcd\xd1\x36\x90\x17\x2f\x55\x46\xfd\xc7\x55\x9b\x00\xbc\x5f\xcb\x08\xf0\x24\x61\x9e\xe1\x72\xdf\x3f\x6d\xff\x74\xa7\x48\x12\xc5\x2d\xf5\xd7\xe0\x2f\xa9\x95\xe5\x7c\x2b\xdc\x20\x60\x84\x31\xcd\xea\xae\x99\x35\x0f\x9a\x4a\x12\x11\xf3\xce\xe8\xc9\xd6\x33\xe7\x22\xc4\xf9\xa7\x92\xf2\x38\xa1\x62\x57\x57\x81\x9b\x77\x75\xe0\x49\x2a\x90\x90\xc6\x9d\x31\xaf\x31\x69\x77\x17\x9c\x6a\x8f\x59\x59\x3e\x67\x1d\xb0\xbd\xca\x5a\x92\x36\xc8\x94\x1d\xf1\xd2\x04\xa1\xdf\x0a\x99\xe3\x03\x56\x6f\xa4\xc9\x5a\x8e\xc1\x73\x56\x1e\x82\x27\x5c\x24\xb4\x2e\xaf\xd6\xfb\xc5\x6a\xbd\x98\x9e\x57\x7a\x9e\xc5\x42\x8e\x28\x48\xe3\x9f\xc0\x51\x87\x9d\x45\xcf\x32\x9b\xa0\xc6\x12\xf0\xcc\x02\x70\x28\xf0\x63\x26\x16\x48\x80\xf9\x54\xb9\x86\xa6\x29\x3f\xb0\x79\x1d\xf7\x81\x12\xf0\x25\x81\x79\x0b\x0b\xb4\x7f\xb8\xb4\xe1\x5d\x59\x0c\xdf\x27\x80\x80\x69\x0b\x51\xb6\xb2\xf9\xf3\xef\x82\x90\xb1\x34\xd5\xf4\xc6\xaf\x9b\xea\xb7\xd1\x41\x19\x86\x18\xf6\x04\xe5\xed\x54\xdf\x9c\x27\x32\x4d\x49\x75\xad\xcb\xbf\x6d\xf6\x76\x93\xd5\x4d\x7b\xcd\x9b\x62\x3b\x34\x77\x70\x9f\xc2\x98\x48\xb3\x58\x28\x18\x94\x5f\x06\xa7\xd5\xb1\xe1\xd7\x43\x03\x35\x36\x87\xfa\x15\xfc\x28\xa6\x37\xb2\x76\x84\x4d\x9e\x28\x5f\x91\x47\x93\x71\xf4\xcc\x06\x01\x68\xa2\xd2\x30\x09\x2c\x47\xa7\x7a\x77\xcd\xd9\xa9\x4e\x19\x4f\x94\x62\x44\xd0\x55\x48\x36\x50\xab\x8e\xc1\xc3\x13\xf4\x7c\xca\xe9\x3f\xca\xea\xf8\x5a\xe6\xb8\xa9\x07\x90\x87\x44\x7b\x8c\x3b\xa7\xb0\x23\xbc\xe0\x17\x72\x51\x9c\xc5\x63\x26\x3a\x88\x88\x45\x6f\x18\x42\xe4\x4e\x75\x15\x35\x7c\xe2\x8b\xfe\xfb\xa8\x63\x96\xe8\xc8\x53\xe9\xd0\xfe\xab\xd9\x67\x48\x1a\x9f\xd2\x79\xa3\xb5\x83\x98\x01\xe0\x2c\x1e\x46\xfb\x8e\x56\xc2\xce\x09\x7a\x9a\x54\x63\xf9\xf5\x52\xaa\xb5\x22\xf9\x86\x7f\x9f\xa1\x6a\xb0\xba\x2d\xcf\x55\x57\x35\x4d\x3d\x26\x0c\xa3\x0f\x5e\x5e\x71\x21\xff\x7d\x1e\xab\x87\xf2\xd4\x4b\x41\x6b\xab\x0b\x91\x15\x2f\xd6\xaa\x6a\x74\xff\x53\x4f\x21\xfa\xc3\xf9\x43\xf6\x18\x7f\x13\x02\xe7\xce\x81\x32\xb5\x78\x86\x39\x84\x77\xca\x12\x11\x0e\x34\x91\xbe\x63\xdd\x38\x89\xcc\x76\xf3\x1d\xe8\xe2\x8d\xaf\x8d\x09\x45\x85\x91\xa1\x55\xb4\x5b\x72\x1e\xe0\xa7\xbb\x0f\xbe\x87\x04\xc6\x30\x9c\xe3\xdd\xb9\xe8\x3d\x40\x78\xea\xfb\x11\x45\x39\xaf\x65\x43\xc1\xdb\x8c\x16\xc1\xe4\xd7\xf8\xa9\x8f\xbc\x53\xd3\x98\xf8\x1c\x0d\x1a\xfd\x6e\x38\x26\x84\x06\xb7\xcd\xef\x2c\xcf\xb3\xb2\xa8\x49\xbd\xba\x73\x91\xdd\x97\x37\x55\xe9\xa6\x47\x1a\x86\xc6\x63\x1a\x28\x62\xb2\x8c\xbb\x19\x05\x3a\x9e\x86\x89\x4e\xac\xbc\xfd\xb7\xa2\x2e\x73\x35\x02\x81\xa4\xa1\x0e\x3c\x8b\xec\x7c\x80\x9f\x26\x16\x19\xff\x96\x88\x21\x4d\x7c\x2b\x1d\xd3\x09\xf8\xa5\xd3\x82\x55\x1a\x2b\x1e\xc4\x53\xb1\x55\xa7\x6d\x35\x3e\x69\x12\xa7\x14\x51\xd3\xfe\x3e\xbb\x55\xa5\x49\xaa\x22\x37\xe4\x50\xcb\xac\xae\x7b\xa0\x66\x9a\x70\x41\x75\x3c\xb3\x8f\x65\x47\xdc\x14\x3b\x94\xdd\x51\xe1\x3b\x08\xbb\x63\x4e\xcf\x4a\x37\x4f\xbe\x31\xf5\xa5\x32\x76\x7a\xed\x67\xc6\x32\x00\xa4\x51\x4d\x30\x5d\x6a\x30\x4c\x81\x00\x76\x0c\x87\x08\x6c\x0a\x6f\x30\xc0\xfa\x19\xaa\x26\x93\xd9\x09\x8a\x09\x91\x8a\xa7\xc0\x34\xcd\xb9\x13\x09\x4b\x6e\x21\xeb\x77\xf4\x14\x24\x23\x0f\x95\xc5\x66\x7b\xb3\x7d\x7a\x3e\xec\xb7\x8b\xc7\xdd\x66\x3f\x76\xb8\xe7\xa9\xf0\x7c\xaa\x85\x1d\xda\xa4\xf9\xb9\xca\x8e\x65\xa5\x32\x98\x37\xf6\x72\x1f\x49\x7c\x02\xcd\x7f\x40\x83\xd5\xbe\xc2\xe9\xe3\x16\x29\xa7\xb4\x2b\xab\xef\xf1\x05\xf2\x41\x11\x37\x15\x60\x54\xff\xc4\x39\x7f\x9b\x8a\x17\x7f\x2a\x7f\xcc\x53\x81\x9e\x1a\x11\x6d\xf7\x65\x1b\x8a\xe6\x53\x7b\xa9\xc9\x85\xca\x50\x47\xd6\x24\x61\xdd\xbc\xba\x77\x76\x46\x83\x83\xa7\x12\x44\x62\x89\x6b\xe6\xba\xca\xea\xb8\x87\xea\x05\x9b\xc3\xa9\x2c\x27\x3d\xef\x14\x45\xe8\xc0\xc5\x5b\x28\xde\xbc\xc0\xfd\x3e\xcd\x7d\x12\xe7\xd9\x3c\x0e\x38\x5d\xdc\x13\x01\x74\x34\x7c\x8a\xae\xed\x35\xb8\xe3\x4a\x70\xbf\x2b\x4a\xed\xce\x23\x3e\x30\xe7\xcc\xf7\x49\xf3\x6a\xf9\xc5\xc1\xc4\x79\x90\x24\x14\xd7\x98\x97\x77\x99\x97\x6f\x3d\x01\x75\x50\xb5\xe0\x81\x36\x0c\x73\xe1\xdc\x8f\x86\x8a\x61\x9c\x87\xc8\x48\xec\x61\xa1\xd4\xaa\x2c\x9a\x21\xa4\xe1\x93\xd4\x77\x3e\x15\xe6\x91\x10\x94\x4d\x61\xf3\xaa\xcb\xea\x14\x28\xd1\x15\xcc\x79\x9c\xa4\xd4\xb5\xc9\xa1\x6e\x4c\xee\xe8\x8e\x70\x6e\x54\xb4\xee\xb0\xa1\xdc\x67\x53\xbc\x77\x87\xc0\xa0\x99\xd7\x7f\xee\x47\xf7\x82\x0b\x45\xd3\x75\xbb\xd8\xaf\x0f\x96\x90\xe0\x8e\x01\xe7\x71\xe4\x16\xa2\xa2\x57\x13\x9c\xac\xb3\x23\xf8\xce\x70\xa1\xe3\xc2\x4b\x08\x09\x92\xd5\xb6\xf0\xf8\xa5\x2b\x21\x71\x11\x99\x46\xcf\xed\x62\xb7\xde\xff\x75\x09\x84\x4b\x01\xa4\xf0\x77\x33\x23\x18\xf8\x09\x32\x97\x4b\xd4\xf4\xca\x5a\xac\x0c\x35\x9a\x57\xe7\x93\x09\x5b\xeb\x29\x77\x77\xfc\x3f\x73\x8f\x42\x05\x06\x80\xde\xcb\x6f\xde\x65\xef\xfd\x0d\x54\x81\x2d\x71\x62\x73\x87\x85\xad\xb3\xb8\xa8\x97\xab\x30\x16\x43\xbb\x70\xea\x17\xbd\x67\xf8\x31\x2d\x76\x71\xa5\x8c\xa5\x61\xfb\x76\xd8\xe6\xd2\x0a\x4e\x6d\x18\xe2\xba\xe6\x1c\x45\x6c\x94\x8d\xdc\xe4\xdb\xbf\x3a\x25\x1f\xce\x35\x4b\x49\xbb\xf4\x5c\xd4\xc6\x5e\xdc\xfd\x3d\x14\xd6\x91\x28\xef\x72\xb2\x91\xb8\x21\xe7\x3a\x8a\x09\xf9\x4a\x2c\xd6\x9e\x51\xcf\xc1\x0b\x7c\x69\x9e\x9f\x8d\x8a\xec\xf2\xb0\x45\xf8\x4c\xb4\xb2\xfd\x90\x4c\x0c\x06\x0d\xf2\x79\x93\x30\x0e\x2c\x09\x42\x1b\x00\x7f\xc9\x94\xc2\xe2\xbe\x7c\xc9\xe4\x74\x10\x84\x4e\x50\xf5\xa1\x54\xc6\x64\x67\x58\x54\x00\x1f\x99\x49\x46\xda\xd4\xfa\x1e\x9a\xfb\xe2\xe5\xf6\x9c\xe7\x76\x2b\x1c\xce\x04\x08\xd0\x18\x13\x34\x58\x37\x8f\xf8\x02\x4d\xf6\x8e\xed\xb3\x78\xc1\xea\x2b\x8e\xf2\x7d\x08\xb4\x47\x6c\x82\xaa\x0d\x3c\x93\x49\x65\x17\xc2\x10\xa9\x46\xb5\x5c\xff\xe1\x6a\xe0\x10\xa6\x31\xdd\xe2\x13\xc8\xb7\x91\xc0\xd6\xe0\x63\x29\x52\xcf\xe9\xd6\x74\xd5\x3b\x78\xd0\xac\x08\xdd\x67\x28\xa6\x4f\x7b\x7d\x10\xa9\xc4\x54\x83\x5c\xb8\x37\x15\xab\xe0\x10\x73\xc3\x04\xff\xba\x5a\x51\x06\xe8\x2e\x3e\xd6\x89\xea\x69\x78\x5b\x13\xd7\x8f\x02\x12\x48\x22\xdf\xee\x16\x06\xdb\x39\xb5\x91\xe5\x90\xf0\x84\x5a\xce\xdd\xde\xdf\xae\xc9\x7e\xf7\x79\x91\x46\x89\x31\xf1\x54\xb5\x83\x92\x5e\xf7\x4c\xfb\xd1\xa9\x15\xee\x59\x9e\x2f\x58\xb5\x8f\xf4\x1a\x86\x04\x09\x72\xc7\x8f\x3a\x58\x70\xdf\x21\x93\x65\x91\xfd\xfb\x40\x12\xde\x35\xf5\xd1\xb0\x57\x0e\xe1\x90\x46\x31\x06\x4e\x02\x80\xde\xe4\x41\x83\x17\xd2\xd4\xa8\x31\x9f\x4f\x2f\x15\xa8\x4f\x40\x40\x90\x6a\x9f\xfa\x1d\xeb\x42\xb6\x9b\x8b\x0d\x78\xdd\x39\x38\x18\x91\xe0\xe5\x66\xbf\x33\x3c\xd5\x21\xa1\x17\xb8\x94\xc2\x68\x36\xe0\x43\x56\xe0\xc8\xb8\x95\x03\x44\x8a\xda\xdb\x04\x2f\xeb\xfe\xc8\x03\x6a\xae\x17\x67\xea\xaa\x77\xcf\x44\x40\x8a\x63\xe6\xc9\xdf\xe3\xf1\x80\x00\x10\xd6\x39\xcb\x00\x45\xf6\xe5\x0f\xa8\x47\xf0\x3e\x10\x2a\x21\x91\xd0\xdb\xcd\x76\xb7\x27\x8a\x1a\x4d\x99\x1e\x58\x06\x32\x8c\x62\x3e\x74\xc4\x35\xe1\xf3\xf5\x14\xb5\xe3\x15\x67\xd2\xe8\x31\xaa\x51\xab\x62\x72\x77\x31\x36\x10\xea\x1f\x14\xa4\x8f\x7e\xd1\xd8\x7e\xb4\x3f\x73\xbb\x14\x11\x79\xb5\x21\x6a\xf9\x7e\x88\x9c\x99\x0e\xd5\x26\x8e\x6a\x17\x94\xcb\xba\x68\xb2\xe6\xb2\xcb\x8e\xa7\x29\xd2\x06\x74\xc8\xd8\xc0\x6c\x14\xa7\xe9\xe7\xe4\xa2\xb5\xe0\xa2\xf7\x55\xf9\x6e\x60\x49\xa8\x5c\x06\xe0\x6e\x49\x78\x1d\x8e\x31\xff\x5f\xbf\xcf\x24\x08\xc2\x53\x92\x00\x5c\x50\xe1\x22\xcf\xbf\x9d\x4e\x58\x49\x70\xd1\xaf\x4b\x7f\x05\x03\x25\x8c\xbe\xe1\xb7\x1a\x2b\x53\x74\x1d\xbf\x24\xc2\xf7\x13\xcf\x6a\xdf\x13\x61\xab\x50\xd3\x01\xdc\x73\x1a\x65\xce\xb0\x66\x0d\x55\xf1\xad\x68\xb2\x7c\x84\x06\x16\x3e\xf8\x04\xa7\x2b\xb5\xce\xb3\x02\xef\xce\xd0\xc6\xb5\x05\x11\x80\x3e\x59\xb0\xec\x27\xc3\x38\x22\x19\x40\xe9\x1a\xd0\x2f\xbd\x47\x09\x17\x61\x02\x3a\xed\x2a\x4a\x07\x12\xbd\x51\xd0\xc0\xe1\xa5\x2a\xcf\xa7\xfa\x40\x74\xfa\x43\xdd\x09\x77\x71\x11\x82\x47\xb5\x85\xe5\x7e\x7b\xef\xfe\x16\x45\x01\xb5\x84\x1a\xac\x8e\xf5\x88\x98\x22\xa2\x54\x53\x0d\x2f\x93\xe5\xf3\xb9\x7e\x6d\xf7\xd6\x79\x20\x8b\x88\x84\xa9\x0f\xbd\x96\x55\x6d\xd4\xda\x66\xaa\x48\x22\x0e\x7c\x2a\xde\xb4\x89\x24\xb1\x5a\xdc\x17\xc5\x3a\x02\x66\x83\x6a\x27\x50\x3a\x5a\x48\x45\xe2\x33\xab\xde\xfe\x01\x95\x5a\x37\xaf\x8b\xfe\x81\xb8\xb5\x5c\x24\x89\x17\xf8\x1d\xc5\x65\x79\xbe\x5c\x9b\xf2\x71\x91\x06\x3a\xe8\x73\xc4\x2d\x2a\x3c\x9e\xae\xeb\x3d\x22\x6d\x77\x33\xd3\x55\xac\xb2\xe6\x32\x2e\x78\x89\x14\x83\xd8\xd0\xcb\xf2\x12\xac\xf8\xe5\xf5\x4a\x2b\xc0\xf2\x94\xcd\x05\xad\xce\x75\x53\x1e\xb1\xb2\xe7\xba\xda\x0b\x04\x28\x03\x73\x6c\x9f\xe4\x42\x29\x2a\xf0\x66\xc5\xcb\xf7\xb2\xe9\x9f\x89\x48\x8d\x86\xa6\x55\x3d\xa0\xe8\xf2\x93\x5c\x45\x88\x34\x21\x67\x60\x7d\x2e\xb0\x82\x7c\x51\xa8\x65\x56\x35\xd6\xcb\xf7\xf7\x99\xb7\x47\x7a\x40\xfe\xa2\xf8\xf3\x94\x55\x97\x41\xb6\x24\x64\xea\xc7\x46\xfe\xb5\x79\xc0\x63\x59\x5d\x16\x55\x05\x97\xee\xa8\x60\x46\xab\xe2\x35\xab\xd4\x0f\xc4\xb7\x07\xc8\x0a\xe7\xba\xbe\xae\x9b\xec\x38\x78\xd8\x4a\x72\xa3\x5a\xdc\xae\x66\x0b\xa5\xb2\xeb\xea\xb1\x40\xf0\x8c\x35\x72\x9e\xdf\x96\x55\xa7\x5e\xc9\xa5\xe7\x19\x03\xbb\x17\x6c\x16\x4d\x03\xf2\xcd\xdc\x7b\xf2\x98\xb6\x43\x7c\x4f\x06\xd6\x2e\xaf\x0d\xd5\xf6\xe5\xad\xf3\x78\xd1\x0d\x56\x9d\xe6\x15\x97\x7e\xa8\x88\xee\xbe\xeb\x4a\x57\xdb\xb2\x3c\x2e\x0a\x65\x1a\x0e\xc3\xbb\xda\x47\x16\x7d\x45\x4f\xfa\x89\x0a\x7b\x0b\x35\x63\x8d\xf0\x30\x11\x3e\xe3\xd2\x07\x1d\x0d\x54\x61\xd6\x50\xe5\x97\x19\x55\x18\x2e\x7d\x61\xc2\x0c\x8a\x04\x7a\xc7\x95\x57\xa8\x91\xf5\xe6\x76\xed\x38\x41\x5f\x4b\xee\x22\x75\x8d\xcd\x4d\x29\xcf\xd4\xaa\x22\xbc\xfb\x27\x86\x70\xc3\x0b\x0f\x7c\x8f\xd8\x13\xfb\x8f\xd2\xd0\xe9\x3a\xe7\xf1\xab\xfc\xd7\xcd\x25\x19\xc6\x21\xed\x00\xa7\x73\x63\xb8\xa4\xcd\xe5\xb9\x2a\xdb\xa0\xb8\x9a\x65\x14\xcb\x90\xa7\x91\xdf\xa9\x1f\x8f\xf8\xc3\x76\x44\xd4\xce\x05\xc2\x24\x28\x5c\x4e\xb6\x8a\xb1\x9e\x30\x97\x31\x37\xf7\xda\xe4\xad\xc7\xec\x7c\xac\x7b\xee\x85\x1b\xa3\x7c\x02\x37\x5b\x61\x95\x79\x43\xf0\xf1\x3d\x8f\x15\xd0\xaf\xfa\xb6\xff\xe1\x9a\xb2\x32\xf1\x43\xb2\xa9\xa8\xdf\xb2\xd3\xa6\xb8\xcf\x8a\x4f\x36\x45\x99\x44\x11\x45\xa6\xe4\x6b\x70\x3c\x61\x93\x75\xc6\x06\xe7\x5e\x6f\x8a\xcb\xd4\x8b\x08\xfd\x6c\x7c\x2c\xdc\xd7\xa4\x7e\x9c\x76\xea\x62\x4b\x68\x9a\xc1\x21\x6b\x15\x4d\x9e\x06\xa2\x2c\xfe\x93\x99\x59\x5e\x77\x03\x54\x64\xac\x7b\xba\x9a\x9f\x4c\xb5\xa4\xb2\x37\xbc\x54\xd8\xde\x4d\x1b\x07\x8c\xee\xa9\x1d\x0a\xd2\x77\xe6\xc9\x4b\xc8\xf3\xb2\x19\x97\x93\x46\xe9\xb4\x04\xed\x7b\x3d\xf5\xd4\x22\x27\xa6\x18\xa4\xf1\x7d\x11\x5e\x4a\xe7\xb7\xb1\xe5\xb0\x97\x28\x85\x34\x90\xb5\x25\x7e\x9e\xdf\x5f\xe7\xa5\x2c\x9e\xf9\x2f\xfd\xfd\x57\x13\x46\x7a\x9e\xb2\xfd\xe5\x99\x6a\xb8\x1b\x24\x50\x76\x60\x8b\xe5\x65\x8f\xe0\x2a\xf9\x52\xea\x40\x8d\x9c\x82\x7e\x51\x86\x92\x52\x2b\x5a\x72\x74\x59\xbd\x7d\xfb\x55\x10\x2c\x95\xcf\x8c\x03\x0e\xe1\xa2\xad\x52\xdb\xb0\x02\x23\x55\xe8\x51\xb7\xe7\x50\x63\x63\xe0\x07\xa3\xfb\xe3\x46\x21\x7a\xd6\xb1\xc5\x7d\x10\x3d\x8f\x7a\x7f\xdf\xb7\xeb\x27\xd2\x30\x3f\x3c\x3d\xaf\x1f\x37\x8f\x77\xa4\x90\xd0\x8d\x62\xbe\xb4\xf7\x85\x16\x0f\x62\xc0\x5b\xab\xd0\xf1\x8f\x42\xce\xa8\xe3\xf1\x52\x96\x6a\xec\x1d\xc5\x25\x0a\xe3\x7f\xbc\xdc\xaf\xba\xe2\xa1\x3b\x84\x8a\x28\x22\x54\x00\xb2\x1e\x06\xc4\x50\xff\xe4\x2d\xd2\x51\x44\x6a\x6c\x44\xdc\x2b\x7b\x76\xbf\xd4\xc8\xa8\xdf\x98\xd5\xf5\x19\x57\xa5\x73\xea\xb2\x0e\x1e\xfa\xb9\xac\xeb\x6c\xf0\x3e\x69\x4c\x28\x8e\xa1\xbe\x3c\xd5\x13\xb2\x7a\x2a\x3e\x20\xb5\x46\x0a\x0f\xdb\xb7\x1a\xaa\x65\xff\xbc\x95\xa7\xbd\x58\x76\x52\x75\x8f\xe5\x00\xf7\x31\x07\x54\xb1\x9f\x62\x81\x31\x4f\x30\x96\x90\x78\x1d\x93\x28\x96\xf2\x20\xe9\x7c\xcd\x6e\x76\x2e\x0f\x50\x4c\x86\xcc\x5a\xa8\xbf\xbc\x18\x15\xee\x4b\x77\x4c\x79\x04\x33\x50\x28\xce\x2f\x26\x8e\xfb\x42\x85\x03\xd3\x2b\x1c\x62\xe2\x15\xc3\x24\xea\xdd\xae\x8f\x66\x32\xb9\x1f\xac\x7c\x1f\x49\x5e\xdf\xde\xbd\xa9\x92\x8a\x0a\x40\x12\xd8\x9e\x48\x13\x37\x98\x37\x70\xf3\x8b\xd5\xd3\x7e\x28\x64\x81\xee\xa3\xfc\xf9\xd2\x88\x0a\x01\x9d\xa1\x8d\xa3\xff\xd8\xb8\xbe\xbb\xb8\xc8\x53\x91\x53\xda\x9b\xf6\x0b\x55\xe4\x0b\x70\x75\x07\x63\x23\x40\xc2\x93\xee\x28\x68\xea\xbf\x9f\x89\x1d\xb8\x84\x46\x9a\xf0\xd4\x1e\x8e\x43\x20\x77\x53\xcb\xb8\xbf\xb5\x32\x45\xee\x68\xe2\x51\x9e\xec\xda\x95\x9d\x72\xc2\xbe\xec\xe8\x9a\x76\x68\x92\xc6\xa4\x32\x94\x43\xdd\x3c\x94\x45\xd7\x6b\x52\x09\xf7\xc1\xef\x5b\x38\xcf\x06\x33\x63\xd2\x52\xd3\xcf\xe9\x46\x2a\xe5\x1b\x44\xc8\x5a\x96\xdd\x03\x70\x9c\x32\x95\x7a\xa8\xac\x15\xea\x0e\xab\xf7\x36\x6a\x9e\xf3\x72\xe5\x2a\x0d\x04\xf5\x3e\x96\xe7\xcb\x76\x35\xa1\xdc\xff\x32\x71\x55\x29\x4f\xb4\x2b\x64\xb5\xe1\x54\xfb\xac\x8d\x9b\xe8\x2f\x91\x42\x8a\x8b\x80\xe2\xff\xc6\xa8\xe6\x3c\x64\xc5\xde\xed\x37\xaa\x9d\x78\xed\x1d\xfe\xfa\xb8\x74\x7f\x12\xb1\x4f\xaf\xd0\xfd\xd3\xdd\x61\x77\xca\x0a\x6b\xdb\xa8\xae\xfc\x32\xe7\xaf\x52\x24\x48\xc8\xcd\x3d\x9c\x9e\xcb\x3c\xbf\x4a\x8d\xfe\x56\x92\xae\x84\xd6\x9e\xd1\x30\xbf\xac\xca\x73\x55\x7f\xb2\x79\x2b\x99\x70\xb7\x3f\x2c\xab\x36\xc1\x6b\x76\xb2\xac\xec\xbd\xb7\x3b\xa5\x52\xcc\x3c\x1b\xac\x9b\x7b\xc2\xb0\x50\x61\x62\xd5\x35\x36\x95\x12\xbe\x33\xd3\x6e\xaf\x6d\x7f\x39\x4d\x1a\xcb\x0a\x43\x4d\x80\x8a\x6f\x8f\xae\x62\xae\x50\xf3\xd8\xc6\x32\xb2\x42\x95\x89\x2c\x6f\xf3\xe9\xfe\xeb\xd9\xa4\x90\xaa\x74\xa0\x12\x18\xc3\xf6\x2c\x98\xe8\x3f\x38\x15\x74\x19\xef\xdf\x4a\x43\x42\x08\xd5\xbb\xbe\x3f\x7b\x39\x19\xc9\xf5\xce\xca\xb0\xbf\x2b\x1a\x95\x08\xfb\xc5\x64\x77\x3e\xee\xde\xb2\x3c\x9f\xd4\xe4\xd0\xf3\x8c\xbc\xf5\x11\xab\x17\x2c\xa4\x51\xa7\x77\xc7\x94\x91\x2d\x18\xe8\xaf\x3f\x57\xa8\xb3\x9f\x23\x00\x0d\xb2\x20\xd0\xdc\xf9\x49\xfc\x1f\xf9\x55\xee\x14\x52\x8e\x4b\x77\x8b\x42\xb5\x6b\xb0\x55\xf4\xf9\x5b\xf3\x05\x99\x62\x04\x62\xd2\x59\xde\x60\xf5\x03\xaa\x2a\x2b\xab\xc5\xb9\x82\x4f\x60\x7f\xe8\x83\xa0\x9d\xd7\xb0\x4e\x1e\xb2\xe2\xaa\x60\x88\x01\x24\x14\x00\x11\x8d\xc4\xe0\x37\x67\xdf\x81\x79\x0d\x5f\x8e\x61\x22\x48\x21\xe1\x26\x2b\xca\x5b\xa8\xdc\x1e\x85\x61\x9a\x18\x74\x8f\xff\xed\xf9\xb5\xec\x92\x22\x4c\x98\x88\x4d\x4d\x58\x96\x85\x9a\xf3\xcc\xe0\x98\x84\x92\x6a\xb3\xd6\xe6\x67\x5f\x7e\xc1\xaa\xdc\x14\x06\x13\x31\xb9\xfe\x44\x7a\x24\xc2\x78\x01\xe8\x72\x3c\x4c\x24\x2a\x22\x15\x95\x62\xea\xdb\xc6\x31\xd5\x81\x67\x43\xca\x87\xc8\xca\x8e\x8e\xbf\x9f\xb3\x88\xee\xb3\x6a\xf7\x80\x33\x2e\xce\x2a\x9b\x76\x7a\xdd\xc8\xc0\xc0\xcd\xc4\xf9\xd2\xae\xc6\x2e\x6b\xb6\x4a\x47\x1d\xf2\x00\xc1\xd3\xca\x72\xbe\x4e\xe7\x06\x17\x79\x6e\xb4\x03\xfa\x38\x19\x45\x1c\x7b\x81\x9d\x64\x84\xf0\x99\x7c\x95\xe0\x26\x41\xa6\x04\xa8\x83\x65\xa2\x64\x21\xf5\x2d\x26\x82\xfe\x1c\x25\xc4\x5c\x4f\x6b\x77\xfe\x95\x61\x30\x47\x29\x0c\x76\xde\xd0\xb9\xcf\x0d\xd6\xae\x75\xfb\x8c\x55\x56\xba\xbd\x01\x55\x22\xd2\xc4\x51\x97\x2b\x72\xc7\x9c\xe9\x5a\x23\x72\x2f\x31\x98\x10\x8d\xc5\x40\xc2\x04\x35\x33\xb2\xcc\x75\x53\x9e\xfa\x60\x67\x7c\xe7\xb5\x66\xd4\x10\x2b\xf0\x67\xb3\xee\xdc\xd7\x3a\x41\x7d\xae\x3d\x1f\x1c\xe3\xde\x64\x0d\x8e\x16\xe8\x28\x63\xa3\x8b\xd1\x9e\x2f\x68\xf9\xda\x7c\xb9\x75\x2c\xa3\xd9\xed\x43\x7b\x89\x20\x20\xc0\x81\x50\x77\xc6\x37\xad\x41\xf5\xdd\xb1\x0f\xa7\x27\x66\xb1\xa4\x1a\x83\xa5\x27\xe2\x6a\xe0\x30\x34\x1d\x9a\x30\x27\x8b\xb5\xcb\x1a\xfc\x1c\xf8\xa4\x83\x20\x71\xe2\x16\xbb\x32\x7f\xc7\xca\xfd\xa8\x19\x73\x23\xae\x83\xd0\x60\x9e\x49\x68\xa4\x2c\xf3\x49\x87\x43\x87\x5c\xd3\xcc\x78\xcf\x9a\x67\xac\x7e\x60\xd6\x1d\x10\x7e\xc4\xac\xc8\x8b\xfb\x5b\x24\x03\x2a\xde\x1f\x4b\x75\xce\x9b\x36\x29\x18\xb3\x56\x75\x24\x39\x35\xd9\x8e\x64\x3d\x4c\x5f\xf4\xa4\x3f\xf9\x1d\xb1\xe7\x53\xe2\xa0\xac\x05\xe0\x0e\xe5\x38\x26\xd7\x71\xc4\x9c\x3b\xdf\x33\x54\x70\x9c\xdc\xb2\x18\x62\x1e\xb8\xba\x57\xdd\x8c\x0d\x93\xc7\x77\x21\x56\xdc\x79\x71\x53\x34\xed\xf4\x53\x8d\x72\x35\x56\xa8\x56\xce\xc1\xc5\xfd\x14\xce\x64\xd4\x83\x3e\xe8\x5d\xfc\x78\x86\x4c\x75\xc7\x05\xd2\x44\xdf\xaf\x1d\x7c\x54\x43\x8c\xd4\x1b\x59\x37\xaf\xcf\x39\xaa\xfe\xb6\x08\x16\xa9\x91\xea\x7d\xbb\xdd\x0d\x4c\x18\xb9\x16\xc8\x09\x90\x37\xee\x9f\x4f\xa3\x73\x2d\x74\x00\xbe\x83\x70\x14\xcd\xe7\x26\x3b\x5c\x4b\x30\x61\xba\x41\xc0\x3e\x69\x63\x53\x46\x4b\xf7\x0a\x8a\x49\x54\xa8\x15\xf3\xc9\x84\x1b\x1b\xd9\xfd\x89\x1b\x0e\x38\x16\xaa\x57\x31\xea\x6b\x2e\x5a\x49\x46\x5d\xfd\x0a\x15\x16\xe5\x31\x2b\xc0\xbc\x0a\xd3\x77\x5d\x23\x4b\x29\x43\xd6\x6d\xbe\xba\x2c\x3b\xb5\x39\x8d\xb1\x71\x48\x5e\x41\xfd\xba\xef\x21\xd1\xe0\x79\x81\x30\x1e\xfd\xaf\x28\xdf\x9c\xc0\x85\xd1\xa0\x9d\xfd\xb5\xe0\x79\xa9\x4a\xba\x52\xd3\x33\x5c\x8e\x74\x77\xc8\x1a\x76\xb4\x78\x80\xc7\x44\xa8\xec\xda\xe0\x40\x7b\xe3\x01\x7e\x9b\x42\x50\x20\x6e\x2b\x92\x83\x2e\xd5\x27\x89\xbd\xfb\x24\x2a\x6d\x48\x16\x3f\xad\x27\x29\x56\x0e\x44\x61\x87\x04\x41\x42\xb9\x21\x18\x50\x40\xbb\x26\x59\x32\xec\xad\x85\xdc\x13\x1a\xf6\x7e\xa8\x02\x3c\xbe\xbc\x20\x31\xea\x33\x34\x05\x34\x56\x95\x6d\x44\xff\x36\xbe\x96\x40\x71\xa7\xa2\xb8\xde\xae\x12\x9f\xcd\xb1\x65\xc1\x0b\x34\x32\xb3\x31\xbf\x7f\x72\x67\xc3\x24\x22\xac\xd4\x62\xf7\xe5\x7e\xfd\xe7\x18\xe1\x02\x5e\x08\x21\xda\xda\xf3\xd3\x09\x0b\x6a\x69\x63\xdd\x6c\x8a\x45\xd3\x94\xeb\xde\x9c\xb0\x1b\x2e\xac\x35\xa4\xc6\x85\x52\x9b\xdf\x46\x28\x02\x37\x48\xa4\x8e\xa7\x76\x97\xe9\xa6\x9c\xbf\xf2\x10\x0d\x70\xfd\x98\x75\x9c\xec\x99\xaa\x1d\x78\xa1\x4e\x68\x49\x7a\x39\x77\xe6\x0a\xed\x1f\x65\xea\xf8\x90\xa5\xc2\xb1\x7e\xb7\x1d\x13\x49\x45\x15\xf1\x43\x8d\xcd\x23\x54\xb2\xac\x57\x65\x85\x93\x8b\x99\x3c\x9c\x38\x02\xda\x49\x54\x56\xd3\x63\x37\x12\xcb\xc7\xe1\x0c\x88\xe3\x84\x68\x44\x16\x3e\xd6\x54\x19\x7e\xa6\x58\x02\x5e\x2c\x18\xeb\xc9\x62\xcf\x5d\xba\x08\x5e\x2c\x7d\xe7\x3e\xb1\x2d\x1e\x8e\xb4\xfe\x75\xde\x7f\xe0\x25\x41\x12\xda\x85\xe2\x16\x71\xd0\x68\x9d\xbf\x99\x49\x9b\xb8\xba\x58\xaa\xcd\x2d\x1d\xb2\xc2\x1e\x4f\xc3\x98\x58\xa8\x0f\x97\xaf\x99\xaa\xd7\xea\x6c\xad\xb6\x3a\x18\x3b\x78\x69\xec\x93\x9e\xb6\x8b\x24\x6e\xab\x91\x9b\x06\x78\xdc\x4b\x8c\x63\x8f\xdb\x04\xdb\xe8\xf6\xfb\xe0\xa1\x70\x48\x51\xbb\xe4\x39\x2b\x96\x97\x55\x07\x34\xb4\xba\x71\xe0\x81\xf6\x51\xba\xf0\x62\xe8\x29\x0f\x9e\xf0\x15\x19\x37\x75\x17\x80\x48\x7d\xbd\x1c\xfb\x16\x13\x78\x12\x2c\x4c\x8c\x56\x93\x7b\x23\x27\xdb\xad\x6a\xe0\xa9\x50\x53\x59\xd6\xe9\x71\x3e\xaf\xb7\x9b\xa7\x1b\xf7\x69\x15\x1b\xa6\xc5\x28\x5c\xba\x0a\x7a\x67\x03\x73\xf0\x30\x44\xea\xb6\x52\x69\xe5\x61\x20\x45\x6c\x83\x2c\xf0\x30\x31\x53\xce\x6d\x53\x83\xea\x51\x7b\x10\xad\x94\x4a\x1b\x13\xef\x20\xc7\x1b\xcc\xb3\xa1\x59\xe4\xf4\xfb\x38\x1a\xb1\x49\xfc\x18\xa5\x9f\xf3\x57\xa7\x59\x14\x1b\x71\x9c\xec\x3f\x38\x7e\xfc\xcc\xd3\x89\xe3\x86\x8f\x35\x54\x87\xe4\xc9\x6e\xac\x41\x24\x89\xf3\xc5\x6a\xf2\x5f\x4b\xfa\x00\x63\xa1\xa6\x72\xc6\xa1\x73\x2c\xb9\xf2\x3f\x9f\xd9\xc8\x81\xb1\x58\x52\x5f\x86\x5a\xb5\xed\x73\xb5\xf9\xab\xcb\xd6\x80\xf9\x3c\x52\xae\x4a\x63\xed\xe8\x0d\xa0\x64\x74\x9e\xd0\xf7\x3b\x23\xc5\xa2\xa9\x2e\x03\x9e\x28\xb0\x28\x4d\x49\xc9\x71\xf9\xb4\x7c\x1a\x4e\x61\x16\xe9\x50\xbb\x3a\x73\x5f\xc2\x9a\x5b\xc4\x58\xec\x01\x5d\xc6\x03\x66\x75\x0d\xa3\xb3\xc4\x81\xf1\x90\xb0\x3d\xd0\xef\x65\xd3\xeb\x26\xbb\x21\x91\xa6\x8c\xc1\x0e\x59\xc1\x69\xd8\x3c\x04\x16\xc7\x3e\xe7\xae\x7b\x3d\xd2\x70\x05\x16\x27\x31\xad\x19\xba\xac\x64\x1b\x71\xd6\xe7\x49\x52\x0c\x2c\xb6\xb2\x32\xe4\xbf\x47\x0b\x15\xf9\xaf\xef\x94\xac\xf3\xe1\x3b\xc5\x52\x88\xa8\x06\xff\xb8\xfe\xe3\x79\xb1\x5d\xfc\x82\x81\x01\x8c\x03\x77\x24\xbe\x4d\xd1\xa4\xbf\x75\xf5\x79\x60\x10\xc7\x46\x35\x8e\x74\xaf\x25\xde\xe2\x70\x2d\x63\x20\x43\x82\x42\xb4\x3b\x88\xfd\x31\x23\xe3\x12\x60\x22\xf4\x09\x8f\x4a\x33\x2a\x33\xf3\xcf\x0a\x47\x55\x6e\x8c\x84\x94\x82\x2c\x23\xa3\xbb\xff\xb2\xde\x1e\x1e\x36\x8f\x87\xd5\xd3\xe3\x7e\xbb\x59\xba\x51\x98\x20\x6d\x9f\x15\xc9\x16\xee\xa0\x29\x77\xaf\x59\xdf\x17\x04\x86\x5c\x11\x35\x65\x79\xbe\xfc\x55\x99\x67\x36\x8b\x07\xa6\x63\x23\x56\x41\x26\x9f\xf2\xad\x8d\x02\x56\x9d\x98\x3c\x73\xcf\x40\xab\x80\x96\x5c\xa8\x8e\x97\xe7\x1c\x0a\xac\x57\x57\xb8\xea\x76\x94\x24\x51\x08\xb3\x01\x7c\x29\xab\x1a\x77\xaf\x25\xf6\x24\xd3\xbf\xe2\x19\xfe\xed\xff\x27\xbf\x41\x87\x54\x10\xdd\x9e\xc9\x29\xce\xf1\x01\xc0\xf7\x7c\x65\x81\xde\xc7\xf2\x1d\x0d\x7e\xc3\x1d\x8a\xd1\x22\xc4\x76\x27\x83\x84\x1c\x9d\xd3\xf7\x52\x9f\x58\x25\xd4\x9b\x38\x58\xc4\xfa\x64\x27\xf2\x99\xcf\x3a\x6f\x48\xd7\x8e\xbb\x96\xc1\x06\xbf\x7d\xc1\x92\xfe\x0d\x59\x3a\x4f\x04\x77\x31\x3e\x33\xf2\x63\xa7\xaa\xfc\x5f\x94\xcd\xc4\x63\x0e\x7c\x5f\x21\x55\xb1\xc4\xf9\xb2\xc8\x73\xf3\xf6\x3d\xc3\xa5\x0d\x59\x3e\x2b\xcf\x8d\x2f\x34\x08\x53\xea\xb5\xd6\x4d\x59\x91\xe7\xe1\x0d\x34\x40\xc8\xfa\x11\x8a\xc3\x85\x13\x7e\xc0\x7d\xe1\xbb\x16\x58\x55\x37\xcb\xf3\xe5\xf1\x7c\xd5\xdc\x74\x83\xc1\x04\xc0\x7f\xd8\x7f\x5e\xfc\xcb\xc2\x26\xf8\x61\x94\xb8\x26\xc8\x03\xe1\xd1\x87\x0a\x23\xd7\x17\x1f\x31\x96\x9a\x0a\x2e\xe5\xae\x43\x76\xe6\xaf\xb0\xa8\xe0\xc7\x89\x4f\x7a\x3a\x24\x53\xed\xa2\x40\x3f\x89\x99\x63\x07\xdc\x13\x5f\x62\xba\xe2\xf8\x89\x48\x5c\x9c\x38\x09\xd6\xc6\xe3\x52\x3f\xd5\x76\x11\xd9\xa3\x7c\x2d\x32\x09\xf9\x0c\xa6\x18\xfc\x34\xd2\xc4\x07\x3e\x5e\x3a\x72\xd9\x9f\xdd\x5e\xe9\xa7\x9c\x51\xbd\xc7\x15\xb1\x21\xc7\x4e\x65\x02\x7c\x2e\x25\xd5\x0f\x0e\x0a\x1b\xac\xda\x04\xf7\x79\xe2\xd2\x0e\x3e\x30\x4d\x72\x9b\x5d\xea\x73\x8f\xef\xd9\xb9\xbe\x59\x3c\xcd\x87\x7e\x3e\xf8\x46\x05\xb0\xc6\x66\x7c\xc1\x7f\xab\xf6\x07\xbe\x08\x05\x55\xa3\x4c\x9a\x33\xa4\xaa\xce\xee\xd7\xbe\xf2\x63\xc2\x35\x7f\x74\xba\x8e\xed\x92\x4a\xaf\xca\xb4\x7e\x07\xbe\x92\x40\x27\xd7\xe7\x42\x95\x33\x2c\x6d\xf0\xd1\x37\x15\x75\xdb\xe2\x5c\x17\xaa\xef\xd0\x83\x8f\xb1\xe9\xd0\xbf\x97\x96\x9d\x94\x7a\x83\x3d\xdf\xd7\x1c\xe9\x5a\xde\x10\x57\xd5\xa5\x19\x6c\x76\xbe\x16\xa9\x11\x69\x75\xf5\x59\xfb\x48\x9e\x09\x55\x6f\x47\x05\x5e\x12\x70\x32\x95\x38\xe1\xb5\xa3\x12\x04\x2c\x14\xb4\x5b\xdf\x55\xe5\xf9\x34\xda\xc8\x03\x96\x48\x67\xe3\xf9\xe5\xc7\xca\xee\x1e\xcb\x8b\x29\x07\x8d\x7e\x62\xc0\x20\xd2\x43\x93\xf8\x07\x72\xdc\x9e\x9f\x88\x01\x03\xe9\x76\xb3\x7b\xa8\x1b\x6b\x71\x65\x78\x81\x76\xf7\x9b\x7b\x2c\x01\x13\xcc\xb9\xe0\x1e\x9a\xeb\x87\x68\x47\xf9\x01\x10\xbe\xf0\x61\xf1\x87\xce\x8a\xce\x79\x0f\x02\x3f\x64\x84\xdc\x5d\x28\x35\xa0\x26\x7c\x72\x8d\x7e\x84\x04\x48\xc0\x01\x47\x8f\x90\x1e\xfb\x8f\xd2\x9d\x30\x88\x8d\xf5\x82\x59\xaf\x69\x5a\xb5\xc1\x35\x29\x50\xba\x21\xa0\x75\x47\xd6\x70\xd0\x0b\x8a\x18\x47\xef\x7e\x10\xc8\x98\x59\x63\xf0\xe7\xc5\x6f\xb3\x8a\x60\x73\x8b\x54\x0f\xd6\xfb\xe4\xe8\xe8\x79\x06\x18\x10\x6d\xcd\xae\xdb\x3d\x89\x1a\x82\x30\x64\x04\x26\xa6\xfe\x99\xf1\xa7\x38\xe8\x73\x17\xf9\x05\x61\xa2\x28\xe4\x72\x36\x0b\xb7\xe7\x1e\x8e\x0f\x41\xa4\xd3\xd4\x90\xdb\x55\xf6\x72\x68\x77\xb5\x83\xd1\xeb\x1d\xdf\xd3\x58\x73\x42\x5c\x69\xa4\x36\x60\x5d\x76\x27\x48\x14\xeb\x35\x72\x28\x7f\x59\xb7\xf7\xe7\xb6\xac\x06\x2a\x29\x9f\x13\xff\xed\x59\xd2\xa0\x23\xf4\x6c\xea\xfa\xfc\x09\x72\x1a\x82\x34\x15\xca\x18\x3b\x6d\xc7\xf1\x5d\x90\x82\xb4\x46\x13\x54\x17\xb1\x6d\x93\xda\x2a\xfa\x76\x2f\x65\x90\x02\x12\x42\xdc\xd4\xec\x77\xd9\x4b\x01\xcd\xb9\xba\x86\x86\x8e\x1f\x72\x2a\x34\x51\x64\xda\x37\x7d\xc8\x13\xb3\x87\x21\x95\xb4\x71\xac\x7f\x66\x79\x76\x1e\x25\x78\x01\xa0\x72\xfc\xa2\x07\xc8\x8a\x6b\x19\x0a\x08\x64\xc8\xa2\xb4\x23\x8d\xcc\x2d\xec\x81\xc4\x28\x64\xce\xcb\xec\xb7\x61\xd7\x08\x02\xc5\xb4\x41\x6e\x7f\x60\xd1\x5c\xf6\xaf\x59\xd5\x5c\x06\x52\x45\x10\x20\x24\xa4\x6c\x4f\x62\x8a\xf5\x64\xfe\x6a\x19\x93\x4d\x51\x56\x9e\x47\xd1\x74\xa0\x15\xd3\xa2\xcb\x7e\x21\x27\x7c\xe4\xfc\x7d\xea\x3e\xa1\x49\x7a\x6f\x08\x7a\x18\x75\x8b\x21\xf4\xe2\x80\x80\xe0\xdf\xd7\xbb\xfd\xe6\xf1\xee\x70\xd3\x59\x9f\x42\xe8\x41\x60\x98\x3a\x56\xb6\xe4\x1a\x1f\xd2\x4d\x98\xd0\x53\x29\x35\xe4\xf1\xdf\x83\xc5\x6a\x24\x41\x31\x7c\x7f\x42\x26\x0d\x31\xf1\x83\xee\xed\xbe\x34\xb7\x67\x76\xfd\x08\x7d\xae\x9c\x87\xc5\x4d\x56\x53\x58\x86\xd5\x68\x79\x0d\x7d\x30\x49\xb5\x59\x60\x0e\x99\x2c\x4d\xe7\xfa\xb7\xc9\x99\x40\x87\xa9\x93\xc1\xb3\xaa\xbf\x63\x73\x47\x37\x50\x72\x92\x75\xd6\x65\x45\x21\x7e\xed\x56\xbe\xd0\xd7\x01\xa1\x44\x0c\xf6\x73\x72\x4b\x46\x0f\x32\x0c\xe2\x40\x5a\x7a\x72\x9b\x85\xb5\xc9\x5f\x3f\xef\xc3\x20\x36\x8e\x25\xe2\x5c\x15\x4b\xa8\x33\x23\x55\xeb\x1e\x76\x18\x24\x01\x58\x9d\x42\x23\xd7\x35\xa5\x4a\xcd\x47\x58\x61\x90\x28\x2a\xbd\xe6\x65\xf9\x76\x3e\x3d\x57\x99\xfd\x05\x13\xdb\x43\x08\x83\x54\x46\xfd\x46\xbe\x29\xea\xb3\xcb\x79\xea\xa7\xd3\xc8\x3c\xcc\x6e\xa4\x9f\xfe\xd7\xfd\xfe\xd9\xbf\x0e\xbe\x11\x23\x32\x1a\xfd\xbe\x58\xb8\x5f\x19\x06\x91\xc1\xc5\x1a\xcb\xa0\xbb\x7e\x19\x0d\xc3\x80\x3b\xc7\xd1\xc7\xf3\x91\x4a\x0c\xae\xc4\x3a\xf9\x25\x61\xcc\xa9\x31\xe8\xe4\xff\x2c\x9f\xc1\xf4\x09\x27\x63\xa3\x50\x50\x46\xaa\xf0\x94\x97\x17\x54\x0b\x93\x21\xbb\x2f\x8d\xb8\x09\xa7\x6a\x6c\x48\x4b\xf4\x06\x6b\x59\x65\xa7\xc1\x76\xea\x06\x82\x1f\x1b\x6b\x7a\x69\xc2\x7a\x52\xe4\xaa\xb3\x97\xee\x4c\x18\x68\x1c\xd5\x6f\x8d\x6c\xc0\x78\x8a\xc4\x91\xa0\x75\x2a\x87\xda\x5c\xc8\x01\x98\xe7\x4e\x11\x27\xc6\x48\x8d\xb8\x22\x63\xcb\x76\x08\x13\x16\x9a\x77\x93\x5e\xed\x91\x6a\xf2\x15\xd9\x02\xc2\x24\xf1\xac\x30\x21\xca\xb7\xf5\xcf\x53\x56\xe1\x64\xd9\x09\x93\xc4\x60\x60\xef\xcb\x97\xb1\x39\xc7\xfc\xc3\x4c\x52\xe3\x5b\xf2\xbf\x65\x0f\xbc\x9c\xcc\xff\x44\x22\x06\xbd\xd6\xe2\x1d\x5a\x40\x5f\xfa\xcf\x30\x75\x17\x96\x7a\xa6\xce\xf5\x0a\xf5\x97\xf2\x5c\xe5\x97\x36\x38\xf8\x91\x35\xaf\xd9\x98\x2d\x7e\x4d\x0b\xbc\xfa\x8d\x69\x00\x46\x1d\xfa\x27\x56\x32\xab\xd1\xfc\x4c\xb5\x3e\xd2\x93\x46\x63\xcb\x30\x57\x0b\x0a\x53\x14\x74\xa3\x69\x61\x75\xef\x19\x49\x00\x8d\x75\x3a\x21\xe4\xce\xb6\x61\xf3\xb8\xde\x1e\x56\xdb\xf5\x62\xbf\x79\x7a\x1c\xba\x27\x43\x08\x9e\xa6\x0c\x4a\x52\x19\x21\xef\x75\xa0\x21\x04\xc9\xa8\x18\xdc\x64\xc5\x65\xf3\x7c\xbb\x7b\x6d\x77\xae\xd1\xbc\x12\x8c\x13\x52\x7b\x97\xc1\x0a\xea\xd7\x41\xb7\x21\x14\x4c\x51\xcf\xd4\x6c\x94\x7f\x73\x39\x10\x69\xa2\xad\x76\x04\x11\x7f\x07\xbf\x5a\xa4\x9a\x70\x42\xed\xb4\xdb\x14\x3b\x3c\x66\xc4\xf4\x21\xcf\xf0\xee\x3b\xa5\x95\x77\x35\xf2\xbf\x03\xd9\xf6\x51\x19\x29\x94\x60\x96\xba\xac\xc1\x63\xfd\xa4\x47\x2e\x04\x6e\x88\x30\x04\x47\x32\x07\x3a\xc2\x75\x8b\x64\x72\xe5\x52\xf9\x54\x64\xa4\x30\x4a\x97\xe7\xca\x79\xca\xf6\x15\x99\x50\x31\xae\xd3\x21\xdd\x7b\x21\x09\xd8\xd1\x4c\x28\xb5\x10\x2a\x0d\xd4\x06\x23\xc6\xfd\x8a\x90\xb1\x78\x45\x02\xb0\x63\x31\x88\x0d\x30\xa8\x68\xb2\x7f\x9f\xaf\x5e\x14\xe4\x82\xb8\xec\xb7\x7f\x3c\x43\xb7\x2d\xa0\x62\x21\x1f\x94\xdc\xea\x7f\x9f\xa1\xc2\xae\x61\x0c\xa1\x66\x46\x1f\x6e\xbd\x5f\x55\x65\x5d\x3f\x97\x0d\x34\xa5\xf5\xe1\x9f\x4f\x9d\x42\x9d\xa4\x14\x25\x74\xc6\xcc\xa3\x84\x68\x72\xd1\x5a\xa5\xa9\x11\xd0\xb5\x89\x60\x2f\xce\xd3\x8d\xd0\x74\x43\x0b\xfc\xd9\x2c\x2b\x17\x79\x47\x5e\xa2\x68\x1f\xd2\x88\x56\xbb\x78\x1c\xc8\x45\x5e\x2a\xd3\xe1\xf2\xea\x70\x96\xf6\x30\xe3\x46\xaf\xf9\xa5\x2c\x95\xb8\x4c\xd6\xdb\x88\xb5\x29\x0a\x75\xf4\x87\x31\x58\xe4\xc7\x82\x77\xf4\x2c\xdc\xc8\x31\x7e\x1f\x22\x5f\x18\xd5\x38\x5a\xaf\x5c\xb7\xc6\x7d\x38\x8c\x38\x09\xc4\x7c\xea\x9c\x72\xad\x71\x3a\x3e\x7b\x98\x1a\x49\x44\x50\x8a\xe4\x10\xa7\x75\xb2\xf1\x4f\x88\x62\x88\xb8\xab\xf7\x97\xb9\x2a\x3f\x8a\x29\xb9\x66\x10\x3a\x44\xb1\xb5\x2f\x1d\xd8\x5f\x92\x42\x2a\xf1\xf7\xba\x9b\x1a\x47\x8c\xc8\x48\x54\x00\xbc\x7b\xba\xbf\xe9\x0e\xc4\x31\xc9\x94\xed\xbe\xdf\x53\x1f\x92\x70\xc2\xcb\xf2\xe7\x44\xed\xff\x9f\xbe\x71\x81\xf8\xa7\x6f\x97\xbf\x28\x61\x8a\x1b\x6a\xcd\x22\x3f\xbd\xc2\x7d\xf9\xe1\xc0\x2f\xcc\x8d\x08\x12\x57\xfe\xf8\x8a\x97\xc9\x86\x12\xa5\xcc\x27\xf8\xa8\x3c\x57\x35\xaa\xc9\xc2\x17\xa5\xb1\x22\xd5\xb1\x87\xc5\x1f\x06\xe2\xfa\xfd\xe9\xfe\x9b\x03\xb7\x42\x94\xca\x80\xb8\x1d\x64\x50\x40\xf0\xd6\xab\xf5\x69\xb2\x5c\x47\xdc\x0f\x49\xae\xf3\xbe\xac\x5d\x27\x74\x3e\xfe\x8b\x78\x20\x28\x6e\xe8\xf1\xf9\xba\x6f\xe8\x44\x9c\x63\xe0\x54\x8f\x75\x55\x1e\xc7\x5c\xad\xf1\x99\xc0\x37\x1e\x3a\xed\x76\x6b\x93\x7c\xd9\x86\x0b\xee\x5c\x10\x87\x54\x51\x3f\x66\x79\x9e\x59\x5d\x9b\x3e\x56\x8e\xa4\x07\x42\x3a\x25\x95\x4e\xc1\xe0\xea\xc5\x8d\x94\x4a\x02\xdb\xbb\xdd\x66\xf2\x75\x30\x75\xd1\xe3\xb4\x86\x1f\x3a\xb3\xb9\x4d\xe1\x44\x2e\x1b\x78\xf9\xb5\x08\x07\x44\x28\xfc\x94\x8c\x86\xbe\xfd\xd9\x6e\x3f\x8b\xe7\xc3\xfd\xd3\x8f\xc3\xb7\x5d\x37\x7b\x34\x4b\x90\x24\xbd\xe5\xc8\xc5\x03\x22\x1d\x85\x22\x70\xf8\xb2\xe6\x95\x58\xbd\xf3\xc2\x86\x10\xfb\x5e\x80\x6e\xc2\xe7\x65\x9d\x15\x2f\x4f\x22\xcf\x5e\x06\x5e\x2c\x6e\x2d\x8c\xfd\x94\xd1\xfe\x60\xca\xd4\x7e\x14\xff\xe6\x0e\x88\x84\x72\x7e\x81\xb2\x3c\xe2\xfe\x5c\x35\x39\x9a\xee\x9f\x1b\x11\xb0\x88\xa0\x75\xf6\x1a\xda\x6d\xf2\x19\xaa\xa6\xe8\x50\x44\x10\x87\xe0\x27\x56\x4e\x43\x2d\x2f\x13\xc7\x35\x88\x23\x4f\x2b\xa3\x57\xb4\xa7\xf2\x18\x5c\x2d\xfb\x71\xc4\x8c\xe4\x1a\xd1\x27\xe9\x0e\x5b\x8c\x9a\x3b\xee\x87\xc6\xd7\xe5\xe9\xeb\xfa\xb1\x57\xa1\x87\x38\x52\xca\x35\xf0\xba\x62\x0d\x25\xf9\xc3\xdd\x3a\x8e\x10\x8c\x16\x5f\x3b\x33\xdb\x0d\xb2\xc3\xba\x52\x2b\xc1\x35\xc9\xee\xda\x68\xba\x39\x2b\xac\x77\xd9\x7f\xa6\xcc\x62\x88\x13\x4f\xd8\x69\x25\xcb\x42\x59\x75\x80\x71\x65\x2b\x4e\x03\x3f\x90\x03\x93\xf2\x1b\x6c\x20\xcb\xbb\x3b\x95\x86\x31\x25\xac\x07\xb7\xff\x8c\x0a\x4b\x93\xe7\xcb\x7d\xa3\x24\xf9\x82\xcd\xd3\xe9\x0e\xba\x93\x40\xe0\x81\x71\x13\xa2\x1c\xcb\x38\xd8\x8f\x2f\x15\xe2\x94\xa6\x86\x01\xf0\x5a\xaa\x83\x3d\x26\x02\x9f\x60\xe3\xa6\x6e\x3e\x30\xec\xbf\x8a\x0c\x63\x11\x7b\x89\x1e\xd5\x28\xf6\xb6\x18\x62\x28\x81\xdd\x25\x09\x15\x50\x11\x81\x54\x4a\xbf\x9d\x26\x13\x40\xa2\x8a\x7b\x4c\xff\xe2\x05\x8b\x89\xc7\x2e\xc4\x2a\x00\x4a\xd7\xc4\x80\xe6\xd2\xc7\x40\xb1\x4a\x8c\xbf\xd5\x41\x42\xf1\x00\x0d\x7e\xcf\xc0\x30\x4c\x49\xae\xc9\xf2\xe2\x7f\x3f\xf7\xf4\x78\x88\x15\x8f\xcd\x3a\x59\x1e\x45\x56\xe0\xc3\xe5\x2e\xab\xf2\x4f\x56\x82\x58\x81\x64\xf6\x56\xdf\x3f\xed\xa7\x02\x88\x93\x4b\xd5\x68\xed\x37\x5d\x4b\xf5\xb6\xac\xda\x57\x62\x92\xb9\xc5\xc8\x39\x9d\x54\x61\x8e\x0d\x12\x1f\xcc\xf2\x08\x66\xf1\x1e\x31\xca\x88\x90\xa8\x07\x71\xce\x72\xb5\xb9\x06\x68\x0e\x6e\x08\x2a\x20\x74\xee\x7f\x9f\x4f\xd9\xe0\x65\xd5\x3c\xa1\xe8\xe2\x66\xd3\xbd\x21\x5a\xc4\x54\xab\x3d\x55\xa5\x32\xc2\x4d\xdf\x0a\x8b\x5e\x77\x9b\xc7\x80\xf9\x0e\xb1\x96\x82\x6c\x58\x4f\xe5\x69\x3d\xea\x75\xc7\x1a\x23\x4f\xba\xac\xbc\x0d\xf7\x6e\xcb\x2b\x24\xdc\xe8\x56\x25\x1e\x33\x1e\xcc\x3f\x36\xfb\x2f\x37\xdb\xc5\x8f\xc5\xfd\x61\xed\x1c\x6e\x21\xf1\x7c\xa0\x96\xd5\xe2\xfb\x62\x73\xbf\x58\xde\xaf\x0f\xff\xfd\xb4\x79\xdc\x1b\x11\xb1\x6e\x50\x1a\x45\x38\x28\x4a\x92\x6c\xa9\x3b\x86\x82\x82\x96\x92\xac\x15\x46\x2d\xcf\x84\x05\x86\x53\x7a\xaa\xf0\x80\xdd\x42\x92\xb0\xd4\x8f\xd0\x6e\x0d\x5f\x8b\xf2\x63\x80\xab\x82\xc4\x67\x01\x85\xfd\xbb\x6f\xcf\xcf\xf7\x7f\x1e\x6e\x9f\xb6\x87\xe5\xd3\xd3\xb7\xc7\xfd\x9f\xdd\x08\x3f\xa1\x70\x00\xce\x4d\x79\x4b\xe2\x41\x83\xc5\x3b\xf1\x93\xc8\xb7\x4b\x89\xd9\xb4\xdb\xbb\xd7\x6b\xfd\x42\xe2\x73\x45\x70\x4b\x4a\x60\x0e\x22\xfb\x04\xa7\x91\xf8\xa0\x85\xd3\x0e\xad\xad\xd5\x94\x05\x78\xf5\x73\x20\x09\xbc\x98\xe8\x55\x23\x84\xf0\x5f\xf4\xe5\xdc\x47\x79\xa8\xa3\x81\x52\x7f\x10\x8e\x16\xcc\x24\x04\x45\xe4\x1e\x6a\xca\xb9\x96\xee\xe4\xe1\x86\x92\xb9\xe9\x70\x83\x1a\xce\x79\x6f\x4d\x75\x07\xf5\xb0\x03\x9e\x44\xcc\x23\x41\x0e\x38\x9d\xf2\xcb\x6a\xa0\xec\xf2\x4b\xf8\x4b\x12\x01\x10\xbc\x1e\x8f\x99\xf1\xa4\x91\x2b\x38\x81\x41\x83\x2f\x94\x9a\xca\xde\x59\x50\x47\x12\xb3\x90\x36\x57\x23\xb8\x62\x96\xc7\x41\xe4\x97\xc4\x2c\x02\x47\xa8\x99\xe9\x05\x26\x89\x6f\x54\xb2\xcc\x3b\x02\xa7\x13\xaa\x2b\xdf\xbd\x4f\xee\x6b\x12\x85\x24\x4e\x4b\x5b\xd8\xf5\xa7\xdc\xa8\xc4\xd0\x3a\x08\x82\x9f\x75\x85\xc3\x24\x8d\x02\x69\x5e\xbd\xba\xd9\xff\x31\x85\xad\xff\xfa\x9b\x53\xd0\xd2\x10\x6e\xd5\x59\xe2\x4d\xf6\x7e\xe8\xce\x2a\x3d\xda\xe0\x6c\x4d\x21\xab\x9b\x7a\x53\x18\x76\xea\xf8\x76\xa7\xd2\xd8\x99\xd7\x48\x4a\xde\xa4\xff\x75\xfc\x24\xe9\x49\x78\xc2\xc8\x01\xcb\xf5\x8b\xba\xfc\x25\xe1\x3a\x24\xb1\x2a\x5a\x21\x20\xcb\x0d\xaa\x61\x53\xd4\x67\xad\x33\x99\x21\x59\xeb\xb9\xc1\x10\xf8\x04\xba\x7c\x2c\x6f\xe1\x0d\x07\x69\x74\x02\x89\x55\x8e\x86\x37\xdc\x0e\xf0\x26\xf6\xb0\x88\x84\x01\xa2\x56\x97\x36\xf8\xe9\x4e\x28\x00\x48\x36\x75\xdd\xc6\x33\xcd\xd0\x3f\x14\x12\x81\x21\x6d\x09\x67\x87\x4c\x9f\x93\x26\x86\x44\x45\x3e\x7d\xf3\xfe\x15\x6f\xb2\x97\xac\x21\xe5\xde\x42\x75\x3a\x73\x90\x28\x11\x59\x4a\xca\x31\x2b\x76\x58\x28\x92\x7f\x19\x51\xa0\x21\x41\xcf\x23\xfc\x91\xd5\xfd\xc1\x31\xf4\x28\x41\x8e\x44\x11\x40\x43\x02\x59\x5e\x16\x03\xbd\x1d\x48\x10\x19\xf1\x78\xdd\xdb\x57\x3f\x96\xcd\x6d\x55\xfe\x07\xa7\xaf\x21\x6a\x41\x7b\xf4\x4b\xa6\xdb\x05\xf9\xd7\x75\x86\xd4\x8b\x99\xf3\x33\xbd\xcf\x24\x16\x12\x77\xaf\xe5\x69\x50\x60\xf5\xa7\x1f\x40\x63\x55\x6e\xee\xd9\xfe\xad\xb8\xe6\xad\x43\xca\x38\xd2\xaa\x4a\x18\x91\x01\x11\xc4\xfe\x98\xd4\xf7\x02\x86\x83\xa8\xa8\x0d\x48\xb2\x17\x93\x76\xd5\x43\x2e\x28\xa4\x7e\xa8\xbd\x61\x57\x6d\x5f\x8a\xb3\x7c\xc3\x66\xff\x51\x4e\xad\x9c\xdc\x27\x52\xa0\xa7\x5a\x56\x20\xad\xad\x08\xa8\x61\x19\x7c\xb8\xb2\xa5\x3e\x78\x1c\x3a\xd6\x6d\x27\x4c\x01\xa9\x2f\xf9\xd4\x39\x79\x62\x9c\x0c\xa9\xaf\x53\xd2\x22\xc9\x6a\x8b\x45\xb2\x7f\x0f\x58\x4a\xf0\x06\x0a\x09\x0e\x1f\x23\x30\x2c\xa4\x41\x10\xa1\xd7\x29\x62\x8d\x16\xda\x34\x64\x86\xe4\x66\x62\x84\x1b\x53\xed\x9c\x2c\x48\x69\x98\x70\xd2\x80\x2f\x3b\x33\xdb\x5f\xe7\x1f\x69\xa8\x3c\xea\x07\x82\x35\xe9\x9e\x2e\x25\x73\xca\x30\xb3\x0d\xfa\x34\xf6\x25\x31\x2d\x6a\x22\x64\xf7\xac\x18\x77\x38\x48\xa9\x58\xf4\x88\x1f\x0e\xbf\x3f\xb9\xf6\x18\xa4\x72\x0d\x55\xcc\xd5\xf4\xa8\x54\x84\xa6\xac\x5f\xb3\xa6\xb9\x6c\xa1\x98\x0e\x48\x50\x88\xde\xa6\x72\x91\xe7\xe5\x87\xb1\xec\x9b\xff\xe1\xa9\x67\x88\xc1\x8a\xae\xb4\x7e\x2c\xbb\x87\x90\x7a\x29\xb5\x14\x80\x48\xf1\xaf\xd9\x74\x41\x49\x53\x06\xc4\xec\x39\xc1\x65\xdf\xee\xed\xd3\x96\x76\x9a\xfa\x82\x12\x21\x83\x9d\x69\x66\x24\x76\x3e\xf5\x6b\x81\x94\x33\x8f\x02\xff\x37\xb4\xbd\xe4\xf1\x6d\xe6\x60\x74\xa3\x3f\xa8\xa2\x1a\xaf\xca\x42\x67\xd5\xb1\x9e\x83\x82\xa5\x80\x46\x4a\xc2\x42\x0e\xa1\x26\x10\x9d\x29\x8f\x8f\xaf\x58\x04\x2a\x75\x08\xc8\x3c\x33\x10\xe6\xff\x45\x39\x0d\xbe\x53\x09\x8c\x6a\x5e\x99\x2c\xd7\x9d\xaa\x2e\xa4\x12\x81\x2a\xfb\xed\x42\xfe\x7c\x76\x12\x69\xf4\xf7\x74\x24\x00\x79\x83\xef\x57\x18\x81\x54\x31\xe3\xbb\x0e\x4a\x91\xad\xdd\x6c\x86\x91\xaa\x20\xa6\x1f\x73\x28\x4f\x48\x6d\x85\xed\xe7\xa8\xec\x54\xa5\xb1\xec\x40\x14\x6d\xc8\x77\xb0\x9a\x47\xdd\x7c\xc4\x44\x50\x04\xe7\x26\x23\x6d\x0d\x6a\xbe\x21\x36\x0a\xab\x3f\x79\x91\xb4\xc7\x49\x66\xa1\xc0\x8f\xaf\x03\x1e\x87\x3b\xca\x02\x6e\xe9\x99\xb6\x5b\xc7\xa6\x23\x42\xa3\xa3\x62\x2a\x99\xed\xae\x6a\x78\xfe\xa3\x25\x4f\x27\x86\x7f\x52\xc3\x3b\x0e\x1d\x00\xa7\xd7\x92\xf8\xca\x74\x32\xcf\x28\x40\x16\xcc\xb7\x52\x76\xc0\x3d\x0f\x69\xb3\xb0\x7e\x46\x66\x57\x9b\x8d\xb0\xdc\x07\x02\x49\x70\xa7\x89\xb3\xef\xdf\x61\x84\x01\xf7\x43\x0e\x36\x19\x1b\x2b\xc8\xce\xf2\x07\x3e\x3b\x89\x48\xd0\x92\x1b\xbe\x63\xd1\x9c\x2b\xac\xe9\x61\xba\x9f\x14\x20\x0f\xbd\x41\x14\x61\x6c\x57\x1f\xf1\x63\x8b\xef\x59\x9d\x95\xc5\x63\x69\x7c\x8d\x7a\xc9\x00\xe0\x21\x08\x62\x64\xb7\x73\x0e\x73\x7c\x19\x5a\x94\xfd\xc2\x22\x01\x78\x14\x84\x44\xe2\x5f\x7d\xb9\x7f\xda\x6e\x1e\xd7\x03\x19\x2b\xe0\x51\x08\xda\xa9\x0d\x54\x38\xd4\xfb\x03\x1e\xc5\x9c\xaa\x63\x9d\x24\x7a\x59\x4d\xef\x75\x24\x21\x1c\x40\x61\x56\x70\xda\x22\xc8\xd7\x6e\xe7\xe1\x91\xf2\x28\xcf\xbf\x59\xaf\x1d\x82\x85\xc7\x5e\x92\x50\x79\x71\xf9\xb5\xfb\x93\xed\x24\xbd\xc0\x11\x1f\xf1\x67\xd3\xfd\x3d\x41\x2a\x64\x16\xf8\xd3\xca\xa3\x77\x47\x78\x42\x82\x62\x7d\xfa\x6e\xac\x76\x26\x2b\x1b\x8f\x75\x6a\x56\x4d\x7c\x77\x2f\x3f\x4f\xbc\x90\xce\x6a\xb5\x22\x36\xea\xe7\xe4\x67\xa5\x00\xb4\xa7\xef\x64\x59\x9d\xb2\xf2\x57\x58\x4e\x9e\x82\x61\x66\xdc\xad\x76\xa3\xbb\x47\xd6\x9d\xae\x39\x6f\xfa\x80\xc3\x6a\x18\xe7\x28\x68\x5f\x55\x15\xd8\xa6\xe3\x14\x4e\xf6\x37\xd3\x9e\xff\xeb\xff\xee\xfb\x75\x82\x66\xbf\x7f\x28\x95\xb5\xfe\xed\x10\x1c\x1c\x22\x23\x20\x6a\x02\xeb\x5e\xf3\x79\x7c\x9f\x04\x4b\x48\x7e\xfa\xf9\xae\xfd\x01\xcf\x39\x34\xba\x74\x8c\x45\xe0\x22\x0a\x88\x09\xb9\xc8\x75\x59\x55\xe5\x20\x00\xe6\x42\x32\x72\xbd\x86\x4c\x55\xe5\x69\xc2\x9b\x07\x2e\x7d\xae\x6d\x8e\xd8\x7c\xd6\x9a\xe0\x32\x0c\xa8\x6d\x47\x6a\x95\xb7\x59\x9e\x8f\x6e\xbf\xe4\x06\x94\xd4\x31\xda\x97\x50\xbc\x8d\x19\x26\x5c\x79\xa6\xc3\x6e\x25\x0a\xcf\x45\x73\x19\x4a\x8b\x01\x57\x71\x44\x6f\xc0\xe2\xf9\x79\xe5\xfe\x86\x81\xa9\xf8\xd5\x67\xf2\xfb\xd6\xe7\xee\xb5\x46\x65\xcc\x39\xcd\x44\xbc\x2f\x61\xc6\x95\xc0\x0e\xd5\x2c\xf0\xec\xc3\xff\x78\xc8\x0a\xcb\x24\x03\xf0\x82\x88\x0a\x14\x0a\xdf\x0f\xc7\x71\x37\x17\xbc\x40\x1a\xbd\x0a\xb7\x32\x39\x21\xd1\xab\xfd\x09\xbc\xc4\xb0\xab\x6e\x32\x6c\x3a\x47\x44\x77\x0c\x22\xe3\x95\xdc\x48\x7b\x6f\x26\xcd\x25\xf0\xb4\x36\xde\x1f\x36\x54\x74\x9f\x64\x9e\x91\x3a\x77\x31\xa0\xa1\x7a\x3e\x0f\x64\x49\xc7\xbf\x12\x98\x87\xb4\x43\xec\x7a\x79\x03\x00\x16\x18\x71\x49\x87\x32\x1d\x98\xc7\x01\x30\x65\x0c\x7c\x0c\x04\xeb\xe9\x1d\xab\x9a\x94\x3b\x46\xd3\x0e\xfc\xd8\x48\x53\x55\x96\x92\xb6\x34\x97\x3f\xce\x98\xdd\xd8\x34\x51\x16\x8f\xbf\x91\x25\x9b\x31\xd3\x03\x08\xc0\x38\xf0\x9b\x6c\x66\xc4\x3c\x1c\x7f\x71\x08\x71\x87\x58\x3b\x41\x93\xcd\x78\xfc\xcd\xad\x11\x10\x25\x9c\xd8\x79\xcb\xd7\xc6\xad\x8c\x10\x21\x26\xc1\xa0\xa5\x65\xe3\x22\xca\x2d\x86\x3c\x51\x80\x48\x87\xe4\x87\x77\x7a\x85\x1a\x0f\x81\xb1\x6f\x3b\x0c\x3c\x1a\x01\x62\x16\x21\xda\x72\xc9\xdf\xcc\xe7\x21\xf1\x03\xdf\x73\xea\x0f\x78\x3e\xae\xa0\xba\xb2\xe7\x3b\x4f\x05\x45\xdb\x8f\x25\xf4\x6e\x1e\x07\x3e\x4a\x57\x67\x16\x94\xb5\xd4\xaf\x50\xb9\xd2\xd5\xdf\xda\x7e\x21\x09\x23\x23\x97\x60\x75\x57\x7e\x64\xcd\x6b\x79\x36\x45\x3c\xac\x4e\x54\x88\x9c\x8d\x20\x20\x0d\x05\x55\xd9\x49\x2f\xe3\xb1\x54\x93\xa5\x0a\xb8\xaf\x3d\x03\x77\xc2\xf7\xac\x3c\xd7\x94\xab\x4d\x27\x02\x0f\x7c\x3f\x74\x7e\x31\xd7\xf8\x2f\x37\x8a\x2b\xd2\x16\x2c\x3f\x0a\xac\x9e\xe1\x5c\xe3\x7f\x83\x7c\x3b\x95\xcd\xa0\x80\x05\x5c\xfb\x89\xe8\xfd\x54\xda\xf0\xc8\x1f\x37\x35\x01\x02\x23\x3d\x6a\x8a\x46\xab\xf2\x98\xd5\xf5\x94\xed\xda\x8e\x42\xec\x45\xab\x1f\x33\xf9\x56\xc0\x71\xba\xf5\xbb\xb1\x61\xcc\xe3\x41\x82\xb9\xfd\xc4\x7a\x1c\xda\x29\x19\x59\x80\xe2\x5d\x99\xab\x81\xa1\xca\x18\xb2\xe9\x86\xc7\x22\x54\x43\xe5\xad\xe9\x4f\x91\x29\x91\xd0\xb3\xda\x1a\x2a\x50\xc8\xde\x6e\x77\x75\x03\xc7\x53\xdf\xde\x02\xe1\x49\xca\x34\x96\x59\xf3\xed\x79\xb8\x62\x83\xe4\x48\xc0\xd6\x75\xd7\x7f\xe8\x8e\x08\x03\x51\xae\xb1\x79\xc4\xce\xb2\x6e\xfe\x87\x49\xc1\x9c\x46\xd8\xae\xcc\xcf\x73\x0a\xe7\x76\x24\x06\xca\xb3\x14\xc4\x1f\x98\xed\x33\xac\x98\xfb\x42\x1d\x86\x94\x34\x98\x9a\x1e\x16\x75\x69\xd4\x8c\xc7\x27\xd0\x11\x92\x97\xde\x38\xd0\x5c\xa2\x2e\x2b\xa4\x1e\xff\x67\xec\x68\x00\xcd\xb5\x67\x41\x03\xdf\xdb\x35\x6e\xda\xd4\x02\x2d\xb4\xb6\xcf\x87\x48\x37\x9b\xc2\x0f\x7f\x20\xbe\x99\x95\xe1\x3a\x9a\x1d\xc6\xf9\xe6\x14\xc2\x8b\x8d\xe9\xf5\x31\xcb\xdb\xd8\xad\x18\x6a\x31\xb5\x47\xb5\x03\x86\x4d\x3a\x9f\x76\x00\xf3\x7c\xe2\x76\x66\xf5\x42\xeb\x2c\xcf\xae\x3b\x5b\xa2\x0d\xda\x7a\xf5\xe7\xc3\xf2\x20\xcb\xf3\xa9\xfc\xc4\x1b\x16\x04\x13\x21\x29\xaf\x4c\x3b\x2e\xee\x92\x98\x0a\xe3\x74\xf0\xca\x40\x8e\x33\xda\xdc\x93\x1e\xae\xf0\xa3\x80\x10\x0a\x7d\x51\x65\xb3\x5a\x3c\xb7\x0b\x07\x71\x3e\xb1\x8d\x5a\x66\xfb\xf2\xee\xf3\xd2\xb0\xba\x29\xd2\x31\x24\xb7\x5f\x99\x44\x81\x08\x58\x4c\x3c\xd0\x45\x91\x1d\x21\x77\xe2\x3d\xb3\x55\x5e\x11\xc4\x0c\x8c\x52\x8d\x7b\x1f\xee\x3b\x8e\x38\x88\x00\x98\x76\x6a\x84\xef\x27\x53\xbe\x1c\xac\x21\x22\x10\x9a\xb6\xf1\x76\x6e\x1e\xc8\xfe\xf8\x30\x02\x57\xdb\x61\xa1\xef\xa7\xbd\xca\x90\xb9\xac\x7a\x79\x99\xcd\x8e\xda\xc1\x3a\x18\xec\x9d\xd3\x7b\xf3\xd9\xff\x93\x10\x4d\x84\x61\x4a\xfb\xaa\x59\x96\x6e\xcb\xea\x8d\xf8\xcc\xdd\xc3\x0c\xd3\x80\xf0\x4c\xef\x99\x75\x88\xee\x0e\x08\x9f\x8a\x6e\x56\x3b\x67\x52\x59\x14\xa1\x0a\x28\x01\xb3\xa8\x0b\x93\x76\x98\xd2\xd0\xf4\xa7\x44\x71\x42\x8c\x2b\x6a\xf8\x77\xb6\xef\x65\x65\x24\xd9\x0d\xbd\xfa\x6a\xde\xd8\xcf\x26\x9c\x77\x3e\x98\x37\x96\x81\x3a\xbf\x4e\x88\x44\x79\xc2\xe2\x44\xf6\xaf\x78\xd5\x80\x15\x89\xf6\x9d\xc3\xe9\xe1\x5c\x0f\xd4\x3e\xdc\xff\xa3\xb3\xa5\x9e\xa6\xc6\xd9\xf2\x3c\x22\xd2\x89\x34\x16\x89\x5b\x11\xca\x06\xbf\x9c\xc5\xb8\xbd\x2a\xb8\x27\xc0\xe9\x43\x67\xcd\xc5\x09\x56\x80\xe0\x91\x4f\x75\x01\x01\xe2\x3f\xf3\xc2\xd1\x20\xb8\x0d\x36\x4e\xd5\x80\x4c\x26\x84\x97\x12\xe0\xdd\x18\x18\x22\x79\xb8\xdd\x56\xe5\xf1\x4b\xd9\xa1\x05\x84\xf0\x8d\x52\x7e\x3b\xb9\x4c\x8b\xcd\x90\xaf\x6e\xcb\xea\x5b\x3d\xed\xcd\x0a\xc1\x91\x7e\x05\xf5\x4a\x6f\x88\x23\xf4\x8c\xd5\x33\x56\x75\x3f\x5d\xa5\x17\x10\x5c\xdb\x5a\xad\xd4\xd3\xc2\x9b\x50\x41\x44\x1d\x15\x6a\xe2\x3a\xca\xca\x78\xed\x15\x2a\x51\xb4\x7f\xed\x30\xd7\x37\x68\x9c\x58\x87\xe7\x40\x3f\x21\x64\x29\xf9\x7c\x4d\xc8\xeb\xd7\xea\x88\x57\x1a\x6b\x20\x30\xe0\x5e\xec\x4e\x30\x62\x60\x08\x94\x8c\x32\xbb\x9b\xcd\x6e\xf5\xf4\xed\x71\x7f\xd8\xed\x17\x77\xeb\xc3\xfe\xcb\xd6\xd9\xb6\x82\x40\xa5\xf4\x00\xe5\xfb\xad\xc8\xca\x62\xa3\xe6\x70\xbe\x42\x0b\xa0\x38\xec\x86\xca\xa4\xcb\x2c\xcf\x3b\xd9\xee\xf1\xdd\x95\x5e\xaa\xb4\x21\x28\x90\xea\xda\xd4\x08\x7f\xfa\xae\xfe\x3e\x44\xde\x48\x96\x78\x24\x48\x61\x6b\xf2\x4e\x4f\xe5\xf7\xf3\x40\x57\x05\x24\x4b\x05\x51\x52\xb7\xeb\x7f\x7c\xdb\x6c\xd7\x37\x87\xdd\xe6\xee\x71\xb1\xff\xb6\x5d\xbb\xae\xa5\x64\x9a\x13\xaf\xb4\x9d\xef\x92\x74\x3d\x8e\x53\x57\x0c\x90\xbe\x8f\x91\xd3\xd2\x38\x94\x05\xee\xab\x33\x2e\x0a\x75\x0b\x79\x8d\x0b\xf2\xc7\x71\xa7\xf3\x83\x80\x16\xa4\x87\xb2\x80\x4a\xbe\x5e\xba\xbf\xdb\xdb\x42\xb8\x86\x43\xcf\x5a\x95\x41\xc0\x8c\x41\x6f\x05\x45\xe3\x4c\x68\x9f\xb1\xb2\xe1\x53\x3d\x7d\xcc\x6e\xc9\x92\x81\x96\x18\x3b\xe9\xc3\xe2\x6d\x8b\x93\x9a\x97\x0c\xe3\xc4\x15\x43\x16\x79\xbe\xcb\x5e\x3a\xc7\x93\xfe\x87\x85\x1a\x08\x64\x97\xd5\x8b\xac\x6a\x93\x57\x52\x7f\xef\x0a\x1e\x32\xf2\x80\x1a\x4d\x0d\x16\x47\x6a\x24\x77\x07\x52\x15\xd9\x19\x71\xc8\xbb\xe5\x50\x26\xa9\xa1\x8d\xb6\x3b\xcf\xcd\x00\x2b\x3c\x5e\x84\x64\x2a\x95\x21\x04\x42\x2e\x6d\xb4\x79\x95\xf6\x49\x9e\xa0\x93\x00\x7f\x3c\x1f\x6f\x36\x37\x5f\xca\x5c\xf5\x48\x06\x49\x66\xfc\xd6\xa0\xa8\x19\x38\x7f\x81\x84\x18\xc9\xce\xa0\xcb\x2d\x0d\x21\xe7\x50\x8f\xe1\x7e\xe3\xaf\x03\x91\x52\xa8\xa5\xcb\xaa\x4d\x04\x6f\x87\x01\xf5\x3c\x73\x4b\x82\x42\x12\xc2\x70\x95\x2f\xb7\x6a\xdf\x18\xeb\xf6\xc7\xb2\x31\x3a\x99\xdd\xed\x04\x34\xc8\x3e\x53\x98\x76\x2f\xf2\x2f\xc9\xe3\x52\xb0\xc8\x1b\xb8\x0d\x3f\xe0\xf1\x2a\x02\x18\x5f\x95\x60\xa0\x42\x27\x5d\x1f\x24\x93\xbb\x2a\x82\xd4\xb7\x77\x95\x48\xa5\xf5\xa6\xd8\x35\xe7\xee\x0a\x05\xf8\xa4\x97\x32\xd0\x66\x29\xfb\x42\xb3\x14\x4a\x92\xc3\x9c\x0d\xdf\xcb\x06\x97\x67\x4a\x31\xb1\xe3\xeb\x3b\x04\xdf\x88\xc0\x21\x95\x97\x98\xee\xc0\x70\x05\x1b\x17\x79\xdd\x04\x0f\xdd\x0c\x57\x91\x11\x86\x7c\xc1\xe6\xee\x8c\x75\x63\x94\x0c\xe7\x1f\x85\x92\x1e\x5a\xd6\xd6\xaa\x3c\x1e\xcf\x45\xe6\xd8\x19\x66\xd6\x4c\xde\x0d\x1d\x7b\x41\x47\xfc\x38\x18\xca\xc4\x01\x46\x59\x80\xd4\xb1\xd6\xe3\x00\xaf\xf3\xfc\xe9\x86\x08\x06\xce\x31\x6a\xf5\xe5\x80\x2a\x6b\x0e\x7e\x64\x8f\x2a\x0f\x8c\x33\x15\x28\xd5\x39\xdd\xa1\x9a\x6c\xe2\xe9\x75\x10\xa8\x3c\x99\x52\x24\xba\x29\xcf\xdb\xb2\x6c\xea\x31\x2c\x73\xbe\x43\x34\x58\x83\x15\xf3\x14\x61\x7c\x9e\xd7\xf7\x4f\xa6\xce\xb8\xb9\x71\xbe\xef\x2e\x26\x57\x4c\x04\x8e\xb9\xf1\xf5\x71\x45\x0c\x32\x2a\xe8\xbb\xc3\x92\x73\x5b\x69\x50\xd4\x34\x98\x0d\xc0\x94\x1f\x19\xb7\xce\xd5\xd3\xee\xc1\x50\xe6\x7b\x97\xee\x4f\xea\x07\xca\x8f\x93\x30\xec\x99\xc4\x9d\xfa\x9b\xfd\x86\x45\x33\xeb\x09\x64\x3f\x1c\xa2\x94\x86\xba\x62\x45\x36\xea\x4e\x15\xd9\x5d\x7a\xa8\x0d\x74\x6b\xb5\xd8\x8f\x7b\x6a\x9f\x34\x5c\xa7\xdf\xa0\x39\xa1\x73\x0d\xea\xf8\x5c\x0d\x3c\xa0\x41\x45\x91\xef\x77\xe2\xbd\x59\x2f\xfc\x0d\x2a\x12\xc6\x69\xbd\x4d\x41\x72\xb8\x5c\xeb\xe1\x80\x4a\x02\x4d\x1f\xae\xce\xc5\x73\x7e\x7e\xc9\x8a\x9d\x31\xe9\x18\x5e\x4f\x07\x8e\xfa\x7d\xb8\xa5\x5d\x11\x62\xc6\xcd\x19\x95\x84\x3a\x75\x86\x86\x79\x5e\x7e\xb8\x95\xc8\x28\x39\x0f\xa2\x70\x95\xa0\x20\x96\x7b\x7d\x42\x99\x41\xde\x06\x50\x03\x03\x04\x50\x29\x37\x04\x45\x53\xac\x34\xdd\x10\xb7\x42\xfd\x33\xfd\xd7\x30\xaa\x50\xa9\x88\x44\xe2\x3c\x54\x1b\x90\xaf\x47\x7a\x28\xd6\xeb\x30\xfb\x4c\x83\x1f\x14\xf7\x3c\x65\xf7\xae\x03\x01\x09\x0f\xb4\x88\x1f\x94\xe5\x20\x8e\xd3\x47\x05\x09\x90\xa1\x82\x69\x43\xef\x61\xf0\x36\xd8\x11\x02\x58\x68\x1d\x2e\x77\xcd\x98\xc9\xa4\x24\x8b\xa8\xbb\xbf\x7b\x85\xa5\x2b\x4d\x2a\x29\x22\x14\x57\x2d\x7f\x7f\x24\x2f\x0c\x4a\xf9\x56\xcb\x61\xf3\x78\x58\xef\xbf\x18\xb7\x27\x77\x0a\x4c\x62\x5a\x1f\xac\x72\x98\x69\x7b\xfc\x45\xbf\x57\xa1\x8a\x94\x41\xa0\x43\xf3\x4a\x80\x1e\x70\x08\x4f\xf4\x3c\x23\x69\xff\x03\x47\x86\x12\x80\x1e\x0b\xbd\x5e\xd0\x75\x5b\x52\x6b\xc2\xa2\x6b\xec\x22\x3a\x07\xaf\x41\x2f\x8e\x93\x8e\x20\x90\xe5\xa4\x82\x7e\x8f\xba\xf9\xad\x3f\x4e\x5a\x1c\xa4\xa8\x4a\xcb\xfd\x58\xfe\x03\xbd\xd4\x27\xfc\xe2\x73\x59\xee\x5e\xb3\x66\x74\x51\xcc\xf7\xa8\xb8\x4b\x2b\xfa\xff\xb4\x41\x91\xf1\x94\x37\xd8\x04\x37\x28\x08\x08\x56\x46\x32\xfe\x6d\x40\x30\x09\x40\x90\x41\x4c\x45\xeb\x7f\x44\x9e\xd7\x9d\x59\x86\x14\x6d\x1e\x33\xfb\x8a\xcf\x32\x24\xd0\x67\x06\x29\x9b\x43\xdd\x94\x83\xed\x1f\xfd\x34\x20\x48\x70\xe7\x90\x33\xe6\x5b\xda\x51\x41\x9a\xd2\x2a\x54\xe0\xc7\x18\x22\x89\x61\x1c\x0b\x93\xd3\xc9\xec\x94\x61\xd1\xac\xf7\x5f\xba\x63\xed\xe7\xfa\x2a\x17\xf5\x6a\x8d\xd6\xcf\xc4\x33\xab\x7f\xe5\x30\x62\xc0\x74\xaf\x44\xd9\x6e\x03\xbb\xf3\xe9\x54\x56\xcd\xa6\xd8\x97\xe7\xaa\x80\xeb\x90\x13\xa3\x38\x25\x12\xa7\x99\x56\xbb\xf5\xfa\x66\x37\xbf\x22\x62\xa4\x24\xb7\xef\xfe\xe3\x78\xc1\xb3\x03\xe2\xc0\x0b\x6c\xb9\xeb\x4b\x9b\x5c\xde\xd8\xbd\x7d\x49\x13\xa2\xfb\xd9\x71\x60\xf1\x16\xa6\x45\xf8\x90\x15\x4d\xe7\x50\xd3\x0f\x8a\x10\x2d\xc6\xb8\x83\x11\xfc\x8a\x10\xec\x3e\x96\x1a\x5c\x84\x2b\x6b\x74\x96\x5a\xb3\xd7\x2b\x8c\xa8\x80\xf8\x9f\x9f\xfb\xd2\xfb\xf9\xdd\x9f\x40\xe7\x31\x96\x40\x3e\x22\x3b\xda\x8f\x47\xb3\x32\x46\xcd\x9c\xc8\xd7\xf9\xd8\x06\x7f\xe4\xf1\x23\xcb\x2e\x99\xc2\x04\x38\xb5\x79\xa8\x23\x41\x68\xd0\xcf\xeb\x32\xf6\x23\x69\x9a\xc6\xa4\x18\xef\xce\x91\x82\x24\x08\xca\x7e\xbb\xb8\xd9\x3c\xde\xb5\x39\xd3\x76\xbf\xbe\xe9\x0e\x8b\x98\x92\x8a\x1f\x0f\xab\xd1\xd5\xf1\xd4\x83\xb4\x23\xff\xfc\x20\xb2\xc0\xf8\x9b\xb8\x0a\x52\x8b\x2a\x2f\xca\xa6\xcf\xa8\x91\x6b\x1d\x0f\x55\x96\x4c\x61\xce\x48\xc8\x4c\xce\x01\x9e\xd1\x4c\x21\xb3\x27\x04\x95\x67\x85\xb3\xe1\x01\x84\x28\x4c\xa3\x8e\x6d\xf9\x50\xbe\xe3\x4c\xcf\x7d\x5c\x24\x47\xc1\x42\x72\xac\xa8\xcf\xc7\x2f\x50\xa9\x15\x9c\x46\x29\x24\x8a\xc8\xb8\x5f\x11\x20\x63\xf5\x0a\xd5\x71\xce\x0e\x15\x50\xc4\x1c\x9c\x72\x41\x05\x1f\x33\x6e\xc3\x6e\xa0\xd2\x14\x58\x9b\x30\xd3\x66\x08\xb4\x72\x8d\xc7\x49\x4c\x03\xd7\xc1\x38\xce\xb8\xc7\xb7\x23\x4c\x02\xe3\xfa\x12\x9b\xe7\xee\xaa\x25\x0a\xaa\x7c\xb9\x39\xb9\x84\x7c\x58\xbb\x41\xa9\x05\x09\x33\xae\x9b\x36\x6d\x00\xf7\x67\x15\xa5\xb4\x4a\x1f\x54\x9b\xa8\x97\x97\x6d\x29\xca\xe9\x75\xa9\x18\x24\x1f\x94\xa5\x2c\x2b\xa9\xeb\xc5\x7c\x56\xef\x45\x05\x82\x44\x0d\xde\x8d\x80\xa2\xe5\x27\xb9\x83\x82\x39\xe6\x99\x79\xee\xce\xf4\xb2\xfe\x6d\x26\xcc\x42\xf4\xc2\xd8\x26\x59\xb9\x05\x41\xcd\xee\x49\x88\x90\x7a\x86\x89\xb2\xfd\xba\xde\x1f\x56\x5f\x16\x8f\x77\xeb\xc9\x7d\xd4\x9e\x8c\xe5\xb8\x9a\x69\x99\x0c\x83\x3a\x05\xea\x80\xf1\xae\x4e\xb1\xcc\x41\xbe\xd1\x62\xf7\x91\x35\xf2\xb5\x1b\x93\x9a\xc0\xd2\x6c\x66\xbd\xe8\xdd\x68\xcb\x47\xad\xb5\xcf\x5d\x33\xd3\xb4\x31\xc7\x65\x74\xed\x79\x01\x01\x3e\x5c\xbf\xa1\x78\x37\xa5\xe7\xed\xa7\x69\xa7\xf6\x42\xe3\x0a\xef\x3c\x68\x20\x47\xc3\x11\xb1\xc7\x99\x0a\xc8\xd9\x50\x63\x77\xd3\x35\x43\x4d\xb2\x00\xa5\xd6\x58\x7d\xc1\xfc\x34\x9f\x80\x68\xdf\xd7\x04\x68\xd8\xbd\x66\xfd\x56\xa4\xfd\x48\x79\x03\x77\x54\x63\xc7\x31\x04\x71\x6b\xdf\x56\xca\x8c\xc1\xa9\x63\x3c\xf4\xbb\x87\xf6\x53\xe3\xc2\xfe\xb8\xfe\x63\x7f\x78\x7e\xda\x1f\x6e\xb7\x8b\xd5\x61\xff\xf4\xdc\x9d\x41\x30\xc2\xe1\x0d\x8b\x06\xee\x90\x04\xd5\x5b\x20\x0e\x5a\xd6\x3a\xf0\xbd\xc0\xda\xdf\x6f\x64\xe9\x54\xcd\x3b\xc3\x87\xeb\x7b\x17\x04\x91\xdf\xab\x62\xde\x9d\x9d\x04\xe1\xaf\xdb\x72\x3a\x10\x46\x2b\xf7\xc5\xa6\xe8\x4f\x9a\x68\x3e\xab\x57\x84\x13\xd6\xcd\x8f\x91\xf7\xc2\xf8\x8e\x86\xa0\x89\x60\xb3\x6c\x5f\x85\xee\x27\x85\x22\x92\x86\xa2\xf2\xf4\x81\xea\xb6\x42\x74\x57\xf2\x3c\xe0\xee\xdb\xc1\x51\x94\x24\x86\x7d\x54\xec\xce\xc7\xcd\xea\x89\x1e\x77\xdc\xd3\x7b\x74\xec\x19\x5b\xa2\x83\xd5\x84\x18\xc5\x51\x93\xdf\x12\x87\x29\x37\x33\x0e\xe5\x1b\x39\x74\x8e\xbf\x2d\x0e\x55\xea\x0d\x9a\x72\x84\xc4\x3b\x91\xdd\x05\xeb\xbe\x2f\x0a\xb9\x61\x4f\x74\xc2\xc3\x63\x45\x4e\xd0\x49\x24\xfc\x5e\xcd\xa2\x9d\x11\xa8\x6e\xcb\xaa\xa3\x90\x77\xb7\x22\x4d\x51\xa8\xbe\x32\xf0\x74\xca\x0a\xca\xd8\xbb\xb9\x95\xca\x50\x18\x66\x7d\x7d\x2a\x8b\x6b\x87\xa6\x41\x2c\xaf\x53\x1d\x29\x74\x2f\xdc\xfa\xe6\xdb\x6e\x10\x28\x6a\xce\x12\x6d\x51\x8a\x5b\x34\x61\xc1\xa7\xaa\x6d\xf3\xf3\x80\x47\x40\x01\x3a\xf9\xe8\x5e\xab\x56\x6a\xae\x3d\xb2\xf9\xfb\x80\x77\xac\x89\x77\xe2\xbe\x1b\x02\x65\x4c\xc3\x8c\x55\x79\xbb\xd5\x7e\x1d\x97\x27\xb5\xf0\x43\xb0\xa9\xd7\xea\x7e\x73\x5b\x56\x77\x30\x3d\xbf\xe0\x86\x4e\x2b\xce\x17\x6b\x95\x3c\xd7\x3e\xd1\x02\xcd\xe3\x69\x7a\xf9\xc6\x27\x6d\xfb\xd7\xb3\xd5\x16\x2d\xb5\x70\x2e\xa4\xcb\x73\x55\x58\x1d\xe8\x5d\x03\xcd\xd5\x6f\x54\x61\x4c\x43\x69\x75\xdc\x9f\xab\x62\x79\xf9\xe2\x70\x94\x6e\xe1\xd3\x2a\x35\xbb\xd2\x7d\xd6\xde\xa8\x9f\xbf\x02\x85\xce\xdf\x69\xc5\x15\x2d\x28\x55\x69\x64\x45\xdd\x4d\xc2\xc0\x94\xcb\x9e\xa0\xce\xea\x61\x54\xa2\x51\x28\x96\x0e\x30\x0c\x07\xb3\x16\x75\x87\xa5\x47\xc2\x20\xeb\xdd\xd3\x33\x59\xcf\xfe\xa8\xe0\x74\xc2\x6a\xf3\x7c\xbb\xfb\x02\xfd\x38\x1d\x78\x14\xe6\xde\x66\x2f\xaf\xcd\xaa\x4d\x9e\x6d\x89\x7d\x7e\xaf\xd3\x1a\x42\x5a\x51\x5c\x77\xdc\x15\x80\xc9\x01\xe1\xd3\x16\x99\xf0\x58\x00\x68\xcb\x42\xcb\x4c\x5d\x83\x9c\x85\xc7\x64\x02\xd2\x29\x6e\xd5\xaf\x1b\x35\xdf\x3e\x12\x9e\x8f\x7e\x94\x76\x68\xbc\xfc\xc4\xfc\xc9\x80\x00\x0c\xc0\xbc\xe9\x28\xec\xb4\x91\xcf\x83\xf0\xec\x67\xc2\x28\x36\xf6\x42\xc6\xad\x98\x9c\x2c\xae\xec\x0e\xdd\xd8\x18\x9d\x98\x67\x1b\x37\x81\x24\xef\x5f\x98\x02\xbf\x84\x17\x45\x41\xd4\xc9\x0d\x9c\xca\xac\x18\xaa\x2c\x08\x2f\xe2\x01\xc5\xb4\x77\x65\xfd\x8a\x45\xbb\xd0\xf7\x4e\xb9\x74\x94\xf2\xe7\xae\x1e\xba\x43\x59\xb5\xc9\xc0\x50\xb3\xac\x2c\xf3\x51\x51\x41\x78\x71\x18\x6b\xa3\x28\xa2\x8e\x59\x71\xa0\xd2\x5a\xd1\x90\xea\xf4\xec\x92\x2d\xbc\x18\xb9\x25\xab\xec\x6d\xd0\xf6\x8c\x55\x3d\x4d\x6e\x84\x97\x5a\x55\x78\x5a\x6c\x5c\xf4\x5d\xb9\x3a\xa9\xf0\x52\x30\x5d\x35\x18\xd6\x32\xfa\x83\x92\x58\x71\xa2\x5d\x46\x4c\x7d\xb2\xef\x25\xbb\x41\xdc\xd7\x9d\xde\xec\xf1\x7c\xb5\x4b\xb9\x51\x49\x4c\x21\x9e\xf5\xd6\x78\x2e\xcb\xdc\x6d\x85\xdd\x89\x94\xa6\x45\x16\x94\x22\x26\x06\xe9\x73\xcf\xbf\x8f\xe3\x7b\x01\x61\x42\x20\x82\xc5\x5b\x56\xc1\xf0\x85\x13\x1e\x44\x21\x01\xf2\xee\xcb\x17\xaa\xd6\xb4\xe9\xfe\xa7\xc2\x9a\xed\x70\x8c\x0d\x1f\xf7\xf2\x49\x7f\xd3\x0d\x04\x49\xc9\x8f\x93\x21\xb6\x71\x13\xf1\x71\xfa\xd0\x49\x78\x20\xb9\x30\xcd\x37\x7d\x1e\x92\x5a\x85\x27\x22\x41\x4a\x0b\x0f\x9b\xc7\xc3\x72\xf1\xf8\x75\xfb\x74\x7f\xdf\x1d\xe3\x92\x62\x19\x5b\x32\x81\xe2\xed\xa6\x02\xb7\x47\x08\x4f\x32\x24\xd9\xf0\xe5\xd3\xe3\xb7\xdd\xe1\x61\xf1\xc7\xe1\xe6\xdb\x96\xc4\x1c\xdc\x08\xc5\x84\xef\xc0\x0c\x27\xf8\x28\xb2\xe2\xe5\x76\xd2\x15\x12\x1e\x4a\xe3\xd4\x5d\xe0\xc7\x0e\xfb\x19\x81\x98\x50\xa9\xc9\x8a\x72\x9b\x66\x85\x63\xe4\x8e\xef\x82\xf6\x23\x52\xab\x22\xc2\xe1\x7d\xd9\xa3\x16\xfe\xd9\x1b\x2d\xfe\x33\xfd\xd7\xb8\x9e\xe6\x58\xdf\xc2\xd3\x20\xc1\x18\xc7\x65\x75\xb3\x51\x36\xcf\x9a\x81\x35\x08\xe6\x05\x9c\xde\xab\x4d\xfd\x44\xbc\xb6\xe1\x4a\x2e\x98\x87\x9c\xc0\xc2\x15\x7c\xd8\xe6\xe7\x93\x9e\x55\xfd\x13\x8c\x79\x9a\x76\xc7\x3b\xb8\x98\xee\x22\xe4\x0b\x55\x7f\xca\xc6\x1f\xa5\x67\x82\xb1\xc8\x98\x06\x3f\x7f\x5b\xde\x6f\x56\x86\x4c\x4e\x09\xa9\xbd\x79\xcc\x67\x48\x3e\x16\x1f\xd8\xbc\xfe\x98\xe8\xfd\xbb\x21\x71\x1c\x9a\x9a\x87\x09\xa6\x1e\xb2\xa2\x7d\x23\xba\x33\x70\x46\xf5\xc5\x7b\x27\x65\x24\x98\x0f\xa1\x35\x3a\x6c\x56\x50\xdc\x64\xb5\x38\x57\x35\xba\x0e\x96\xa9\x2c\xf4\x93\x98\x05\x7e\xc0\x7b\x87\xd9\x76\x8d\x2b\xc6\xed\x7a\xe6\x2e\x25\xe0\x91\x67\x83\x0d\xe3\x15\xf6\xdb\x3c\x20\x78\x3c\xf9\x59\xa0\x7c\xcf\xca\xcf\x3a\x5b\xca\xed\xf9\xda\xf0\xec\x93\x4f\x47\xa8\xa9\x65\xb4\x7e\xbc\x71\x06\xd8\x87\x09\xa9\x44\xb0\xd8\x8f\x08\xb9\x63\xf6\xc7\x5d\xf6\x52\x4c\xee\x62\x1c\x4a\xea\x42\xec\xb1\x6e\xcc\x76\xe6\xde\x2c\x96\x04\x2a\x1a\x0a\x08\x3f\x97\x79\x26\xaf\x24\xfe\x66\x5b\x3a\x82\xb5\xcb\xa5\x74\xab\xff\x0f\x84\xde\xcf\x56\xb0\x94\x21\x09\x3b\x1c\xb2\x7a\x41\x6f\xe6\xa0\x06\x39\x3e\x4b\xaa\x12\x6e\x48\x98\x68\x2c\x71\x0f\xe7\x5a\x0d\x91\x77\x82\x71\x3f\x22\x9e\xe6\x87\xeb\x57\x8c\xdf\x4e\x46\x70\xf0\xff\xfa\x7f\xff\x75\x41\xa8\xd8\x7d\x39\x41\x4e\x09\x46\x1c\xb6\x36\x44\xce\x21\x3b\xde\x3d\xec\xe7\xb7\x48\x06\x5c\xf8\x86\x4b\x53\x37\x59\x41\x51\xad\x3d\x51\xea\x75\xa7\x52\x09\xf7\xed\x98\xaa\xbc\x7c\x6e\xe2\x24\x98\xf0\x80\x32\x05\x71\xbe\x64\xc5\xcb\xba\x96\x55\xf9\x31\xb9\x30\x11\xb3\xc8\x19\x6b\xcf\x6f\x06\x4c\xa4\xc6\x87\xe9\xf0\x02\xa7\x27\xbd\x23\xb9\x91\xdd\x79\xde\x8c\x41\x30\x21\x0c\x1c\x98\x30\x8a\x13\xba\xd3\x6c\xbb\x50\x30\x29\x24\x61\x7b\xcc\xf4\xb9\x19\x58\x02\xb8\xab\x94\xca\xb4\xee\x4e\x65\xed\xd4\x32\xa7\x5d\x80\x5f\x03\x5c\xfe\x69\x65\x80\x04\x53\x49\x4c\x64\x33\x5d\x37\x43\x49\x49\x77\x34\x35\xf6\xa2\x32\xff\x4f\xe0\x8f\x97\x2d\x95\x9a\x60\xe1\x05\x8b\xe7\xb2\x39\x74\x9f\x50\x01\x59\xc7\x9f\xce\x79\xbe\xcd\x4e\xab\xd2\x71\xec\x04\xc3\x20\x25\x98\xa3\x55\xcd\xbf\x6d\xf7\x94\x0e\xbe\x44\xdf\x9b\x4d\xea\x32\x82\xe9\x30\x26\x02\x25\xe4\xf9\x43\x96\xbb\x38\x86\xe9\xc4\x58\xdd\x2d\xd7\xfb\xc3\x76\x7d\xbf\x5e\xec\xd6\x03\xfd\x34\xc1\x34\xc7\x24\x34\xc4\xeb\x6a\xfa\xf2\x69\xf4\x94\x41\xed\xd9\x57\x4f\x39\xc0\xcd\xf8\xbb\x7d\xe6\x99\xe6\x5f\x51\x36\x84\x77\xec\x79\x09\xc2\x67\xcc\x37\xa5\xc5\xd7\xf2\x74\x83\x3f\x87\xdb\xb6\xcf\x12\xcd\x3d\x07\x73\xa3\x9a\x3f\xed\x3e\xb3\x73\xd2\x67\xdc\xa7\x97\x6d\xff\xb4\x5f\xdc\x1f\x2c\x4f\x79\xf9\xb4\xdf\x3f\x3d\x1c\x96\x4f\xdf\x1c\x0e\x59\xf8\x7e\x02\x24\xdc\x42\xfd\x85\xfb\x9b\xc3\xfd\x62\xb9\xbe\xef\x0e\x4a\x2f\x72\x36\xaa\xbf\x8d\xce\x1f\x84\xc0\x3b\x85\xa5\x7a\x79\xf9\xd1\x26\x4e\xfb\x91\x33\x91\xf0\xc3\x34\x21\x30\xcf\x61\xc4\xe9\x1c\x2a\x5b\xcd\x2f\x87\x7e\x28\x02\xe1\x39\x1a\xe0\xa4\xbc\x25\xfc\xc8\xd3\x89\x41\x93\x64\x44\x9b\x76\x0d\x03\xe1\x47\xbe\x30\x1d\xf1\x60\x74\xe7\xa2\x58\x87\x71\x17\x67\x53\x11\x64\x18\xbe\xfa\x11\x1a\x95\x79\x6b\x3c\x6e\xba\x1f\x75\xf7\x86\xe0\x27\x0e\xa6\xf6\xd3\x71\x80\xd2\x06\xdc\xa4\x1a\x3c\x2e\x17\x0b\x3f\x4e\x22\x63\x6e\x5a\x10\x9c\xf6\x57\xc1\xbb\x1f\x0b\x40\x83\xf2\x6f\x93\xf3\xbf\x74\x67\xb7\x9f\x4a\x62\x4e\xb1\x1e\xed\xba\x9b\xc7\xbb\xc3\x72\xe1\x36\x5f\x3f\x11\x3a\x70\xf2\xb0\xae\xd8\x65\xd3\xc3\x7e\x7b\xf4\xd3\x30\x40\xbf\x93\xfd\xb8\x79\x5c\x4c\x6e\x79\x6a\xad\x05\xad\xb6\xdc\x69\x3e\x90\xf0\x53\x25\x22\xfb\xdc\x0c\xa9\x68\xa3\xa6\x00\x12\x37\x52\xc7\xce\x7c\xff\x7c\x72\x4e\x5c\x9d\x4b\xc0\x27\x7d\xf6\xf6\x63\x49\x04\xbd\xa2\x85\x45\x68\x0d\x7b\x04\xc2\xe7\xe0\x93\xa5\xc9\x33\x5c\xe8\xd5\x9a\xbf\xd3\x5c\x0a\x67\xdd\x49\xcd\x29\x87\xdb\x74\x87\x35\x23\x55\x80\x73\xed\xd4\xa5\x0c\xad\xfe\x0e\xa6\x01\x9f\x0f\x5c\x11\xca\xa7\xac\xb2\x97\x1b\x7c\x77\x67\x00\x30\x99\xb4\x26\x2e\xae\xed\xcf\x4c\xb0\x64\xc2\x17\x9e\x17\xf4\x4c\xe3\x4e\x9d\xee\x9d\x6a\x61\x16\xc0\xfe\x6b\x52\xe6\xe8\x8d\x13\x29\xa7\x45\xe8\xdb\x6a\x71\xff\xd7\xa1\x9b\x2f\x94\xa4\x8e\x30\xdd\xcc\x8e\x33\xd9\x75\x47\xdc\x4f\x91\x22\x52\xb6\x23\x36\xd4\x4e\x10\xbe\xf2\x25\x65\x27\x65\x85\x03\xfc\x9d\xf0\x31\x52\x41\x07\x3a\x6b\x53\x96\x79\xd4\x8b\xf0\x11\x42\x61\x41\x9b\x6e\xc7\x9c\xcb\x66\x02\x0f\x58\xea\x9c\x97\xda\xa5\xe6\x37\xf7\x77\x99\x58\x66\x4d\x3b\x2f\x9f\xcb\xaa\x99\x77\x9a\x10\x01\x63\x82\x34\x10\xe0\x1d\x2b\x78\x21\xeb\xfb\xaa\x0d\x9a\x87\xd7\x1d\xf8\x76\xfd\xf8\x72\x86\x42\xe1\xdf\x0c\x80\x03\x3f\x88\x84\x6d\xb0\x2d\x84\x73\xcd\x17\x41\xe0\x71\x12\x0d\x95\x8e\x90\xf6\x4b\xc6\xb5\x08\x02\x1f\xa8\x91\x76\x82\x4b\x2f\x14\x23\x82\x40\x25\xa2\xb7\xe2\x70\x35\x8d\xbf\x08\x2b\x07\xf9\x5b\x10\x68\x8f\xd8\x99\x86\xc8\xbc\x3b\x8b\x4e\x01\x91\x70\xd5\xe3\xd9\x1c\x84\x41\x10\xda\xa6\xed\x96\x16\x83\x99\x0a\x47\x10\x06\x86\x59\xf0\x9a\xbd\xbc\x62\x3d\x26\x79\x74\x43\x90\x2a\xbc\x0e\x6b\x94\xe5\xbd\x04\xd5\xaf\xb2\xc8\x20\x4c\x74\x68\x30\x5f\x70\xb4\xfb\x9c\xff\x27\x82\xeb\x8f\x8a\x20\x04\xf4\x02\xeb\x7d\x9e\x15\x2f\x4f\xe7\xa6\x6f\xaf\x89\x20\xf2\x90\x2a\x79\x59\xbd\xae\x25\x9c\x5c\x7b\xca\x2d\x3c\x41\xc4\xbc\x34\xe9\xee\xc6\xbe\x42\x62\x13\x4c\x7e\x5f\x14\x86\x54\x7a\x68\x03\x21\x03\xb0\x73\xf7\x7c\x8a\x88\xb8\xbe\xfe\x88\x1b\x49\xa7\xed\x1f\x4b\x31\xea\x59\x8b\x20\x12\xa6\xc0\x4f\xdb\x40\xf7\x7b\x62\x2f\x4a\xe4\xa0\x5b\x73\x37\x60\x24\xb8\x21\xb1\x4f\x33\xcc\x76\x0e\x06\x0a\xcd\xfd\x59\x92\x80\x44\x8a\xa5\x61\xbe\x50\xf7\x83\x24\x50\x66\x66\x44\x2c\x03\xab\x4f\xd4\x3c\xb4\xb9\x7a\xfb\xd2\x1c\xaf\x4c\x00\x44\x90\xf8\x91\xd1\x00\x68\xe0\x05\xef\xb0\x28\x8f\xb6\x81\x9e\xda\x01\x5c\x02\x61\x1b\x56\x4f\x9b\xc7\xc3\xf3\x7a\x6b\xec\x0f\xdc\x25\x71\x1d\x24\x0e\x4a\x4d\x38\xea\xe5\x65\xa3\xbe\x67\x75\x36\x80\x0e\xf4\x5f\xc6\x35\xb7\x6d\x6f\x8b\x72\x32\xab\xfa\x6d\x59\x0d\x6a\x07\x01\x04\x1e\x35\x17\x77\x8f\x5f\x7f\x01\xf2\x69\xc7\xc5\x94\x09\x74\x35\x27\x6b\x10\x9c\x35\xaf\xd7\xf5\x5f\x11\xb4\x21\x07\x0c\x44\x73\x17\x0f\x4f\xdf\x1e\xdd\x1e\x1a\x08\x30\xce\x67\x47\xf8\x69\x5d\x47\x07\x13\x5d\xc8\x58\xf7\xe4\xbe\xed\xca\xf7\xe6\xe8\x7d\x22\x90\x42\xd1\x9c\xea\x38\xc9\x93\xe3\x8a\x25\xd4\x71\xa7\x88\x6a\xf7\xfc\xad\x56\xab\x8e\x29\xeb\x86\x68\x69\x59\x86\xcf\xe5\x0d\x21\x7d\xbb\x0a\x45\x80\xbe\xd1\x16\xa4\xdf\x69\x9c\x84\xdb\x64\x44\xbe\x96\x37\x78\x2c\x27\xdf\x85\xdc\x30\x4d\x2d\xe5\x8d\xac\x55\x46\x12\x1e\x83\xc9\x82\xc8\x62\xc7\x86\xca\x0c\x87\xfa\x2f\x80\x4c\x7f\x4b\x78\x5e\x04\x5a\x25\x46\xdc\x04\x5f\x2c\x67\xf3\x93\xcf\x77\xe3\x35\x65\x06\xeb\xef\x0f\xbb\xd5\x76\xf3\xdc\x86\xe8\x77\x9b\xdd\x7e\xfb\xe7\x61\xf1\xec\x92\xe4\xd0\xe3\x91\x33\xae\x50\x59\xb3\x50\xef\xed\xcb\x3b\xc5\x56\x8b\x90\x01\x97\xc6\xb1\x5e\x95\xcf\xe5\x8f\xe1\x6b\x1a\x32\x61\xe7\x58\x59\x39\x8a\x87\x08\xfd\x18\x29\x3d\x83\xba\xce\x5e\x8a\x36\xc3\xbe\x3a\x67\x28\x05\x75\xe5\x49\x8c\xae\x57\x54\x14\x61\x1c\x78\x54\x70\x33\xcd\x98\xfa\x19\x2b\xe3\x8b\xef\x0e\x87\xb1\x13\xbd\x30\xef\xc9\x46\x2d\x5e\x20\x2b\xea\x59\x4e\xb6\x08\x63\x48\x98\x74\x60\x43\x2b\xcc\x04\x63\x3e\x8d\x08\x93\x24\x75\x9a\x60\x07\xa8\x44\xd6\xd4\x87\x1a\x72\x24\xfa\xbc\xfb\xe2\xd4\x0b\x03\x2b\xee\x63\xaa\x74\xcf\x39\x48\xd2\x22\x7a\x3c\x1f\x27\xe7\x4b\x13\x23\x81\x7d\xb0\x00\xd5\x8e\x22\x40\x76\x4b\xd7\x2c\x91\xcf\xe0\xe1\x73\xdb\x7b\xc8\x43\x46\x77\xee\x0e\x9b\x36\x5a\x18\xf6\x01\xed\x08\x88\x85\xea\x20\xd0\xf5\x09\x8e\x16\x7a\xe0\x0e\x27\x1a\x2d\x5c\xb0\x43\x42\xb2\x64\x94\x8d\x84\xc2\x57\xb4\x1c\x9d\x8c\x3d\xdb\x93\xd6\xf2\xd5\xe1\x37\xba\xb2\xeb\xec\xd6\x1c\x0a\x9e\x10\x84\xc5\xd4\x1e\x77\x84\x4d\x3b\xce\xf0\x15\xdd\x70\xc1\x89\x6f\x54\xcb\x57\x54\x67\x1b\x63\x18\xd6\x72\x7d\x9b\xfd\xec\x75\x06\x5c\x53\x21\x94\xcc\xa7\xdc\xee\x60\x7b\x06\xfd\xa6\x3b\x75\x6a\x1f\xdf\x38\xc9\xb8\x67\x77\xeb\xbb\xf2\xbd\x59\xb4\xc9\xae\xb4\xe8\x1a\x03\x63\x9c\x41\x42\x88\x50\x26\x22\xf1\xac\x85\xde\xf1\xe4\x1c\xb5\x68\x23\x70\x77\x54\x45\xa1\x96\x23\x8d\xc6\x76\xfa\x4c\x1a\x14\xa1\xe2\x28\xed\x54\xbc\xab\xca\x8f\x55\x39\xf1\x20\x15\x21\x46\x86\xba\x92\xd5\xf7\x50\x37\x5d\xf9\x6f\x7c\x1a\xcd\xb8\x74\x7a\x58\x65\xd1\xbc\x76\x6f\x9d\x66\x68\x64\x68\xcd\xe2\xb3\xea\xb8\x14\x22\xf2\xc2\xc0\x6c\xe4\xed\x2b\x50\xe6\x39\x75\x2e\xfe\x5a\x41\x57\x44\x0c\xcd\x2e\xfc\x82\xcd\x4e\xbe\xe2\x71\x16\xee\x3e\xba\xbe\xc8\x97\x40\x3f\xb3\x4d\x9e\x06\x58\x3b\x9a\xdb\xd1\x5f\xb1\x7c\xec\x39\x02\x0e\xcc\x32\x5f\xd6\x85\xac\x2e\xa7\xe6\x2b\x5e\x46\x33\x34\x0a\x20\xe0\x8e\x94\xfc\x35\x93\x6f\x93\x5d\x2a\x0a\x54\x9a\x18\x16\x99\x95\xfa\x74\xf8\xee\xf1\x37\x45\x1e\x52\xc0\x47\x3c\xff\xac\xc0\x8d\x5b\x69\xa2\x38\xd0\xc6\x9c\x0f\xde\xaf\xd8\xa9\xa3\x2b\x89\xe3\x88\x32\x4a\x57\x2e\xb4\x15\xef\xb1\x36\x87\x1b\x9b\x18\x67\x01\x59\x1e\x4f\xed\xb2\xd6\xa9\xbb\xfe\xad\xd2\x67\x14\x73\x83\x02\x2c\xca\xc6\x22\x37\x51\x59\xed\x5f\xdd\x60\xe5\x87\x5f\xca\x73\x17\xfc\x45\xb1\x8a\x65\xa7\xdd\x9a\xb7\x1b\x7b\x35\xed\x6a\x45\x09\xe3\x60\x09\xef\xed\x3e\x5b\xcf\xca\x01\x89\x28\x0d\x18\x41\x9a\xd6\xcb\xc5\xe3\xd7\x81\x8e\x83\x88\xd2\x76\xc9\xa6\xd7\xa3\xc9\xaa\x79\x75\x3f\x11\xa5\x68\xf1\x2d\xc6\x22\xcf\x88\xe6\xb9\xd7\xed\x8a\x41\x28\x22\xee\xc5\x68\xa1\x61\xf7\x99\x1e\x28\x58\x89\x88\xa7\x92\x50\xef\x27\x92\xb0\x37\xb0\xb6\x76\x3b\xde\x9e\x73\xec\x7e\x39\xd7\x86\xbf\x66\xd4\xa2\x8d\xc6\x41\xb7\x4b\x47\xe0\x23\xb3\x00\xf4\x25\xa8\x17\xbc\xcb\xde\xa7\xfb\x53\x04\x71\x4c\x94\x0d\x63\x61\xb1\x29\x9e\x3b\x49\x44\x87\x02\x4f\xdd\x48\x85\xce\xee\x93\x00\x00\xae\xda\x1b\x09\x8f\x53\x9d\x7e\xf1\xf8\x30\x74\x28\x13\x91\x08\x3d\x4a\x82\x89\xff\xfc\x23\xcb\xbb\x29\x27\xb8\x31\xfa\x75\x2d\xcc\xdd\x59\xcc\x2f\xb2\x91\xf4\x04\xd5\x48\xc5\xb9\x2a\x9e\xb1\xfa\xc0\xac\x0d\xfb\xbb\xa2\x61\x24\x25\x37\xda\x49\x43\x10\x1f\x9b\xfc\x46\xa9\xa5\xb2\x2b\x75\x3b\x85\xd8\xb8\x0e\x1b\x29\xdf\x50\xaa\xf6\xcf\x9b\xee\x4f\x89\xf2\xac\xf1\xb8\x0d\xdc\xb6\x78\xca\xb1\xc8\xea\xd7\xb9\x25\x7e\xc4\x2f\x98\x10\xa7\xdb\x34\x19\x69\xe6\xb8\x3e\xc4\xcf\xb2\xbb\x75\x18\x29\x22\x78\x14\xf8\x61\x8c\x98\x6f\xcf\xcd\xb9\xc2\x89\x96\xff\xa7\xb1\xd4\xf8\x7b\x74\x0a\x42\xf4\xe4\x9a\x53\x49\xac\x5a\xf7\x55\x5a\x21\x89\x39\x9c\xe0\xf2\x74\x9e\x85\x1a\x88\xd8\x63\xd2\x91\x90\xff\x71\x46\x67\x44\x37\x1e\x62\x99\xfc\x27\xb8\x34\xa5\x85\x90\x88\x98\xf9\x40\xe4\x19\x4d\x51\xe3\xae\x81\xb7\xa9\xde\x8d\x88\x19\x57\x54\xe2\x3c\x58\x45\xcb\x9c\xd0\x31\xa8\x9c\x24\x0b\x55\xdf\x9c\xaa\xd7\xa8\x30\x14\x33\xa9\xa9\x8f\xf2\xf0\xb4\xdc\xdc\x6f\xf6\x7f\xae\xb6\xeb\x1b\x27\xc5\x2e\x62\x3f\xec\x50\xee\x26\x84\x1a\xdd\x96\x38\xf0\x8d\x3e\x89\xe9\x2c\x2e\xf2\xc9\xca\x10\x07\x56\x90\x86\xa6\xee\xcd\x6a\xb5\xfc\xd5\x22\x18\x07\xca\xd3\x46\x5c\xa1\x1a\xbe\x6b\x71\x80\x22\xb4\x37\xdf\x80\x39\xea\x25\xbd\x8f\xd7\xde\x3f\x22\x8e\x63\xe3\x37\x2f\xcb\xfa\xb7\xf1\x81\xb4\x03\x09\x3c\x9e\x8f\xcf\x65\x9d\x91\x56\x81\x5d\x46\x46\xd4\xb6\xf1\x55\x25\x2c\xa6\xfe\x94\xed\xef\x7f\x2f\x9b\x9e\x25\xe9\x86\xa4\x42\xbb\x86\xfb\x16\x3a\x2b\x47\x11\x27\xc2\xac\xff\x3a\x83\xe6\x9a\x21\x20\xe2\xd4\x1b\xac\xae\xc7\x13\x14\x17\x82\x00\xbe\x5a\xe6\xd3\x64\xb0\xe4\xd4\x21\xd9\x9d\xc5\x31\x6b\x4c\x4f\x7f\x89\xcd\xe4\x5a\x78\xec\xa5\x26\xad\x03\x75\x50\x2f\x3f\x0f\x59\xf1\x8e\x45\x53\x56\x97\x83\x05\x48\x1f\xba\x30\x2e\xe6\x0a\x89\x39\xe2\x5e\x71\x6a\xf1\xcc\x4a\x1e\xd8\x0f\x80\x2f\x8c\x93\xc8\xa9\xca\x1a\x7c\xa2\xa6\xee\x97\xac\x1e\x91\x88\x27\x9f\x88\x8d\xca\x8a\x15\xd9\x21\x3b\xcc\x4f\x46\x02\x23\xc5\xa9\x8e\x56\x05\x0d\x7c\x9a\xfa\x0c\x36\xc4\x58\xa4\x41\x6a\x12\xfa\x8c\x3a\x00\xed\x32\x62\xc8\x5f\xee\x77\xca\xc8\x4f\x27\xf6\xaa\xbf\xaa\x89\xc4\x32\x8a\xd1\xc0\xf6\xc5\x64\x17\x8b\x55\x1a\xab\xb8\x57\x18\x1c\x19\x46\x59\x22\x98\x1a\x4e\x5e\xc5\x8d\x34\x96\xf9\xea\xb1\x6e\xd8\xef\xa3\x2f\x55\x42\x12\x3a\x81\xf0\x42\xbb\xd7\xd2\x95\x03\x63\x0c\x8d\xc5\x43\xdd\xa9\x59\x7d\x2b\x6c\x95\xb3\xdd\xb1\x97\xe7\x8b\xa1\xa9\x0e\x50\x4b\xee\x93\x92\x51\x38\xf7\x05\x2b\x51\xaf\x5e\xc7\xe8\x69\x91\xb0\x30\x40\xd1\xe5\x6e\xf5\x2a\x87\x0f\x41\xeb\x46\x37\x00\x12\xc9\x2d\x1a\xc2\xdc\x85\x7d\x49\x82\xef\xe3\x0a\xa9\x1b\xad\x50\xda\x12\xef\xf7\xac\xc0\x0b\x54\x16\xfb\x38\x97\x83\x24\x7e\x82\x04\x9f\x5b\x3d\x66\x0d\x8e\x2e\x2b\x00\x23\xe2\xf8\x0a\xf5\xfe\xa3\x6c\x37\xa5\x31\x66\x4e\x24\x61\x60\xea\xa0\x4e\xbc\x40\xb1\x74\x14\xc7\x26\x91\xe7\xbb\x4b\x69\xc3\x60\xf2\xec\x5f\xff\x6c\x2a\x50\x83\x49\x65\xc7\xc6\xdc\x74\x71\xff\xbb\x1e\xc4\x08\x49\x0c\x7e\x34\x64\xe6\xdf\xe2\x75\x1e\x3e\x3b\x8f\x93\x58\x32\x03\xad\x43\x38\x06\xed\x1b\x35\x52\x12\x17\x49\xac\x05\xcd\xa0\x43\x85\xb2\xac\x94\x13\x1e\x9a\x32\x22\x45\x92\xb0\x80\xda\x28\x9b\xe3\xa9\xac\x9a\x36\x05\x5e\xba\x73\x24\x7e\xe4\x1b\x4d\x3c\x12\xfc\x66\x87\xda\x50\x8b\xdc\xe1\xc8\xd3\x96\xe5\xba\xac\xa0\x90\xaf\x9b\x62\x7d\xca\xea\x52\xcd\x43\x65\x45\x92\x48\x9f\x81\x13\xa4\x83\xec\x68\x3b\x16\xee\xa8\x32\x31\x05\x28\xb5\x87\x97\xe5\xe5\xa1\x6c\xb3\xac\xfd\xe5\x64\xa3\x99\x09\x59\x55\x24\x29\xf3\xb5\xfd\xc0\xe1\xdf\xe7\x72\xc6\x6d\x70\xfe\x32\x52\xdf\xa3\x3c\x69\xbf\xdb\xad\x57\x4f\x5d\xd3\x2c\x69\xdf\x39\x23\xae\x50\xea\xac\x69\xd7\xc8\xa1\x3a\xc5\x68\x12\xa6\xa9\xd1\x4d\x27\xd7\xfa\x4f\xc9\xc5\x7f\x67\xf7\xff\xdc\xee\xb7\x7f\xbd\x93\x54\x1a\x1c\xf0\x11\x15\xe4\xa6\xb0\xf3\xeb\x5e\x5b\x22\xbd\x94\x14\xb3\xd7\xdb\xd5\xa8\xe0\xed\x0e\xfb\x29\xad\xdf\x39\xd4\x8d\x51\x9d\x9c\x4c\x57\x19\x45\xcc\xe4\x61\xc7\x63\xd6\x34\x87\x93\x6d\xa4\xcc\x7f\x9b\x4a\x03\x52\x73\x3b\x95\x95\x2c\x47\x6f\x99\x42\x8d\x36\xe8\x3e\x57\x85\x2d\xfe\x11\x7f\x3e\x57\x0b\x45\x8e\x68\xb5\x8b\xe6\xc6\xe7\xc4\x28\xa2\x1e\x4a\xe9\xfa\x16\x8e\x75\xe0\x4e\x8d\xca\x14\x0f\xc4\xf9\x72\x9f\x1d\x27\x32\xae\x22\x41\x14\xcc\xc9\xd9\xca\x0a\x4e\x0f\x59\x41\xb2\x29\x57\x75\xef\x04\xb5\x59\xd9\x09\x23\xf8\xad\xe9\x04\x05\x44\xa2\x59\x4c\xd9\x68\xf6\xad\xdd\xdd\x60\xf8\xe6\x6a\x00\xaa\x06\xb4\x31\xcf\x53\xe7\x1b\x2b\x52\x4f\x72\xaa\xae\x9e\xe0\xf2\x50\x16\x78\x69\xca\x01\x8b\x58\xa4\x2c\x32\x14\x73\x53\xa3\x7b\x80\x37\xac\x06\x26\x90\x6e\x50\x0a\xa4\x40\xbc\xbb\x1f\xac\xa6\x7f\xd9\xb1\x48\xdb\xf8\x2c\x75\x36\xe4\x1f\x83\xc5\x20\x65\x32\x25\x44\xa0\x55\xbe\xc5\x06\xab\x99\x40\x21\xf5\x59\x42\x60\xcb\xd7\xf2\x5c\xe3\xb0\x6e\x90\xfa\x69\xec\xf1\xbe\x43\x37\x6c\x0d\xb4\xab\x66\x97\x1c\x8e\x7f\x87\x0f\xe6\x09\xdd\x97\x2f\xcb\xf2\x3c\x10\xa9\x9a\x7d\x33\x1c\xc3\x5e\xa4\x01\x53\xb4\xa1\xb4\x51\xce\x8c\x3d\x94\x48\x83\xd0\x57\xb6\x0c\x66\xd0\x3c\x4e\x02\x61\x79\x31\x01\xe4\x2f\x5f\x8e\x34\x88\x15\xad\x43\xed\xac\x2e\xcf\x9f\x44\x0a\x69\x18\x78\xb4\x6f\x0d\xa9\xba\xef\x58\x9c\x67\xb9\x2d\xf6\x33\x91\x17\x90\x8a\x15\x12\x5c\xe4\x06\x65\x56\x7f\xa6\xae\x23\xd2\x28\x02\xcb\x9a\x21\x1c\xff\xfa\x1f\xdf\x36\xb6\xe7\x39\x0e\x14\x67\xbb\xb2\x69\x24\x38\xed\x9a\x66\xcb\xbf\xa9\xce\xf3\xba\xf2\xed\x40\x63\xb2\xb7\x2a\x25\xc8\x32\x1f\xba\x47\x8b\x34\x8e\x0c\x71\xc2\x6a\x12\xd1\x5c\x1d\x67\x57\x69\xcc\x4d\x45\x77\xf1\x88\xc7\x32\xdb\x39\xca\x49\xdf\x0b\x4f\x53\x4f\x13\x78\xd6\xf5\x3a\x6c\x83\x67\x67\x0b\x65\x7f\x25\x6c\x35\xb9\xde\xf6\xf1\x6b\xb3\x31\x2f\xaa\x66\xca\xe2\x10\x29\xf7\x62\x02\xf3\x59\x63\xd1\x6e\x3f\x4a\x79\x98\x50\x0b\xe9\x08\x3f\x6d\x04\xef\x8e\x40\x12\x6a\xaf\x6b\x0f\x99\x06\xd9\x78\xaa\x82\x40\xca\x17\x9b\x76\xee\x43\xa1\x9a\x9e\xc4\x26\x52\x82\xec\x52\xd5\xac\x2a\x8b\x97\x2f\x30\x80\x3a\xb8\x11\x41\x1c\xa9\x31\x03\x33\xea\x3e\x1d\x7b\xe4\x7c\xa2\xb3\x42\x99\x3d\xcd\x02\xff\x3e\x01\x10\xa7\xa2\x4d\x06\x3a\xd7\x9d\xdb\x73\xa1\xb2\xe2\xa5\xb9\x56\x65\x13\xa9\x62\x8a\xde\x83\xd5\x62\x7b\xb3\x78\x7c\x5a\xdd\x2f\x76\xbb\xcd\xca\x7d\xb1\x0a\xbc\xd8\x76\xe3\x6f\xb3\xe2\xba\x79\x91\xaa\x20\x54\x2e\xf0\x7a\xa9\x10\x87\x2c\xd9\xe9\x66\xe5\x76\xdd\x54\x41\x1c\xdb\x14\x67\xdd\xbc\x5e\xb9\xfb\x8b\x14\x85\x9f\xa6\xa3\x40\xf2\x07\x66\xb3\x1a\x25\xed\xd8\x44\x84\x4e\x8a\x4a\x66\x90\xdb\x8e\xfa\x9c\xe5\xaa\x48\xb5\x1f\xf2\x7e\x19\x5b\x92\x23\x5f\x3e\x1d\x13\x01\x51\xb9\x57\x97\xff\xcf\xda\x9f\x74\x37\x8e\x23\xd1\xe2\xf8\x77\x79\xab\x5a\xd4\x82\x20\x38\x80\xff\x9d\x24\xcb\x99\xea\xf4\xa0\x96\x94\x99\x55\xdd\xa7\x8f\x0e\x86\x80\xc4\x32\x45\xaa\x38\xd8\x56\x7d\xfa\xff\x61\x00\xe0\x24\xd9\xd5\xfd\xde\x6f\xd3\xd9\x65\x82\x14\x07\x20\x10\xc3\x8d\x7b\x05\x94\x57\xce\x28\xd3\xa1\x72\xba\xba\xbb\x34\x03\x17\xa1\xfd\x32\xca\xc6\x0e\x57\xb4\x8e\x89\x61\x68\xe6\x35\x6c\x0b\x5d\x2f\xf8\xf9\x27\xaf\x46\x14\x9e\x82\x69\xa5\x2d\xf5\x44\x3b\xbf\x96\xef\x67\xcc\x77\x39\xf0\x01\xbe\x51\x7b\xbd\xc4\x23\x0a\x1b\x6b\x6c\x7f\xc5\x0e\xf8\x69\x3b\x20\xa2\xfb\x77\xf2\xa1\xe4\xe7\xd8\xb3\x4d\xbc\x98\x62\x29\x80\x77\xb5\xab\x9e\xb7\x46\x24\x84\x10\xa3\x30\x53\x9c\x4e\x45\x8e\xc4\x79\x87\xe6\xa3\xac\x57\x42\x82\xc4\x72\xdf\x80\x68\x2e\xeb\x02\x2b\xa3\xc3\x0d\x20\x21\x3a\x11\xa8\x99\xdb\xff\x84\xef\x2b\x27\x0e\x85\x34\xf6\x3c\x03\x3e\x11\x29\x10\x89\x1f\x27\x18\xe3\x60\x5d\x6b\x03\xd8\x14\x3c\x3a\xce\x15\x52\x9b\x98\x9c\x27\x7e\xaa\xab\x76\x25\x91\x50\xce\x5d\xab\xc8\x13\xbc\x3d\x14\x87\x03\x86\x22\x8e\x0d\xee\xf6\x43\x05\xa1\x97\xc4\xc3\x9a\xf7\x4d\x3b\x64\x09\xd9\x45\x12\x25\x3e\x56\xf2\x26\x30\xa1\x8f\x5a\x0d\x44\x12\xd9\x46\x18\xeb\xc6\xac\x3b\x8e\x46\x91\x44\x60\xb4\xcb\x91\x46\xe5\x16\xdd\x90\x48\x62\xca\x8c\x16\x84\xf5\xfc\x89\xf7\xdf\x9a\xc9\xff\xf5\x5f\xf7\x83\x12\x5c\xa6\xf2\x67\x51\xbe\x0c\xfa\xc5\x44\xc2\x42\x41\x7b\x01\xd2\x47\x8b\xf4\xae\xba\xc3\x51\xe8\x00\x40\xb3\x2c\xbb\x2f\xca\x75\x23\xbe\xc1\x65\x6c\x97\x13\xc6\x13\x97\x40\x79\xb8\x42\x44\xd9\x31\x09\x31\x2a\x66\xaf\x58\xe7\x59\xe5\xba\x68\x17\x80\xfb\x9d\x24\x64\x5c\x77\xbf\x63\x7a\xba\x50\x46\x54\x75\x23\x38\x33\x88\x26\x83\xe9\xb2\x32\x26\x83\x27\xe1\x9e\xc9\x12\x7f\xe5\xf2\x65\xb2\x4d\x25\xdc\xa7\x98\xdb\xdd\x36\x67\x28\x87\x56\x21\xe1\x41\x0c\x36\x90\x43\x8f\xd8\x1a\x2b\x2b\xf5\x39\x7e\x04\xe1\x09\xf4\x09\x4f\x3c\xcd\x57\x8b\xe7\xfb\xa2\x29\xeb\xe3\x4f\x80\x49\x00\x96\x08\x6e\x28\x9a\x8a\x92\xcb\x2c\xfd\x0b\xf6\x7f\x36\x50\x5e\xc6\xb8\xaf\x7f\xd3\xff\xb8\xd1\x90\xa0\xcb\xd3\x5e\x15\xa9\xad\xdb\xfb\xab\xb6\x45\x97\x72\x4d\x04\x74\x74\x49\x5d\x7d\xd0\x56\x2c\xec\x08\x29\x7d\x27\x5e\x3d\x50\x2a\xc7\xbe\xa7\x1e\x81\xe5\xc6\x02\xb1\x60\x81\xdc\x02\xe3\xe6\x4d\xf6\x72\xab\x41\x66\xda\x2a\x93\x28\x8f\xe2\xb6\xb2\x6f\xf7\x15\x80\x2d\x12\x4b\x35\xe5\xe7\x5c\x9a\x22\x51\xbe\xc4\x1e\xbb\xcd\x72\xbb\xdc\xfc\x58\xde\xed\x8d\xd0\xcb\xde\xb6\x60\x6d\xdd\x9d\x81\x17\x63\x27\x46\x3b\x31\x6a\x53\xf6\x46\xf7\xc8\xb2\x5d\x0b\x4e\x88\xf4\x4c\xf2\x2d\xcd\x9b\x3c\xed\x76\x79\x4e\x78\xac\x2c\xd3\x32\x8a\x10\x0e\x0b\xfa\x9c\x7a\x92\x9a\x24\x05\xcf\xea\xa3\xec\x3d\x79\x4e\x89\x81\x28\x28\xa8\x79\x7e\xc8\xe0\x9f\x0d\xcf\xeb\x54\x2e\xb2\xa2\x51\xab\xe7\x1d\x26\x88\xdc\x50\x6a\x30\xc1\x26\x13\xf9\x00\xba\x6e\x5d\xff\x9f\x90\xde\xf6\xf0\x38\x95\x3e\x18\x8a\xc2\xd7\xb4\x02\x13\xe9\x74\xd7\x52\x4c\xf6\xca\x0a\xeb\xb2\x38\x15\xf7\x69\x75\x5c\xb4\x01\xd7\x35\xc9\xa5\xe0\x81\x0a\x2c\x7f\xe9\x2b\x54\x35\xa8\x8e\x3f\xa0\x3d\x24\x64\x3b\xd5\xbe\x6f\xef\xe6\xbb\xc5\xf4\x3c\x10\xd8\xe4\xb3\x5d\xaf\x9e\xae\x77\x6b\x1e\x32\x8a\x90\xb8\x59\x75\x4e\x4d\x7e\x69\x10\xe5\xf0\x50\x04\x4e\x63\x0c\x45\x66\xbf\xf2\xea\xd8\x2b\x2d\xba\x29\xc1\xa3\x50\xbb\x48\xfc\x09\xde\xe4\x40\x51\xca\x0e\x88\xa9\x0a\x0c\x36\xdb\xf9\x88\x26\x5b\xfe\x41\x9f\xa6\xe0\x2c\x09\x9c\x0c\xe5\x53\x73\xb2\x5e\x41\xf7\xa5\x59\x12\x49\xd9\xf7\x9a\x18\x05\xb8\x01\xf8\xa2\xbb\x31\x96\x58\x8e\x33\x03\x89\x68\x72\x55\x7d\x03\x38\x4f\xdd\x3f\xce\xc0\x10\x25\xbb\xca\x98\xa9\x7f\x7f\x08\x0e\xe7\x3c\xf4\x90\xe5\xb6\xc9\xdb\xb0\xa7\x4c\xdb\xed\xfe\x56\xd2\x71\x1c\xd8\x70\xe1\x29\xcc\xd4\x2e\x7f\xcc\x16\xb3\x6d\xf7\xfd\x04\x4d\xd0\x63\xba\x2b\xf2\x43\x99\xde\x88\xd7\xb9\x50\x5c\x45\x5d\x7f\xf3\x20\x7d\x3b\x79\x0e\x19\x81\x91\x97\xec\xe9\x16\xba\xd8\x93\x4b\x16\x19\x59\x53\xcb\x2c\x35\xeb\x6a\x23\x33\x61\xa9\x84\x75\xe6\x24\x13\x04\x97\x32\xc1\xba\xa4\x25\x75\xb9\xe9\xab\x72\xa9\x09\xa8\x2e\x0a\xd9\x5e\xf2\xfa\x08\x55\xfa\x57\x9a\x1f\x3e\xc0\xb4\xd9\xf3\x94\x52\x09\xb3\xf6\x67\x48\x2b\xfd\xd9\x4b\x87\x30\x72\x5a\x12\xcb\xaa\x4e\x4f\xad\xed\xbb\x51\x2f\xe0\xc0\xa5\x29\x07\xa1\x5a\x9c\x45\x49\xbb\xfe\x8b\x81\x06\xac\xe0\x3a\xd6\x88\xf2\xc1\xc6\x85\x5d\xb1\x6d\x6f\x86\xe7\x2f\x65\xe1\xa8\xd4\x04\xd7\xca\xc3\x58\x51\x97\xad\xa9\x2b\xca\x81\xfa\x5f\x37\xc2\xc7\xf6\x05\xa7\x75\xbf\x80\xb2\x2e\xd0\xf3\x9c\x6c\x40\xc2\xf3\x0c\x0e\x18\x55\xa7\xca\xe1\xbe\x25\x3c\x62\x56\xe9\x32\x6b\x4d\xd3\x9d\x18\xff\x86\xf0\x02\x86\xe8\xd7\xbc\x38\xa5\x39\xcf\x4c\xf0\xee\x8e\x41\xa0\xec\xae\xf9\xbd\x9d\x82\xc3\xdc\xf5\x58\x0f\x5f\x08\x4f\x87\x89\x4b\x7a\x5e\x91\x64\x08\x41\x58\x84\xad\xdd\x8f\xbc\x96\xc7\x34\x3f\x18\x91\xb5\x5f\x86\x7e\x92\x20\x89\xaf\x55\xcf\xc2\x38\xd2\x6f\x11\x82\x28\x01\xbc\xf3\x3b\x6f\xf7\x05\x09\xa2\x15\x4a\x12\xa1\x5e\xcc\xbe\xaa\xbb\x24\xb4\xf0\x81\x87\xbc\xc3\xb0\x59\x2b\x5e\x4c\x8b\x14\x82\xfa\x02\xac\x8e\x78\x96\x41\xbb\xb2\x91\x89\x61\x8a\x3e\x13\x54\x98\xb6\xab\x0a\xea\x59\x59\xae\xf2\xfa\x3e\x85\x4c\x91\x5f\xc6\x3b\x9a\x08\x7d\x8a\xb0\x7a\xec\xc1\x36\xc2\xba\x37\x67\xa0\x08\x65\x12\x99\x52\xfd\x80\x75\xa1\x32\x24\xdf\xdd\x3e\x2c\x42\x09\xe8\x4d\x9d\x1d\xa0\x0f\xa1\x18\xd0\x7d\xb0\x50\x05\xce\x9d\x7a\x2c\x72\x34\x86\xc3\xa9\x10\xea\xc4\x23\x88\xf6\x1d\xfa\x28\x6d\x14\x29\xfa\xca\xf4\x4d\xfc\xf8\xa0\x4c\xed\x4e\xa2\x09\xef\x21\x61\xd6\x5d\xaa\xea\x55\xbe\xac\x8f\x93\x77\x15\x31\x8a\xc9\x9f\x53\xda\xba\x5e\xdd\x17\x89\x03\x21\x54\xd7\x12\xd0\x3a\x24\xbb\x81\xd4\x81\x1d\xc4\x02\x86\xf9\xbf\xb4\xda\x34\x08\xdf\x5c\xc9\x09\xd4\x47\xb0\x40\x2a\xcb\xd6\xbb\x05\x4b\x44\x5f\xd9\xc6\xe6\x29\x14\xfa\xa6\xc9\x10\x4c\x84\x58\x85\x5d\x3f\x7f\x5b\x2c\xba\x5f\x06\x89\x09\x97\xed\x89\x97\xf5\x4c\xbd\xb6\xd6\x4c\x2d\x86\x62\xd7\x37\x6a\x80\x6d\xc0\x86\xb1\x53\xe5\x78\x35\xb1\x85\xdf\x15\x43\x45\xe2\x19\x36\xf1\xd4\x29\xe5\xcd\x72\x35\x2f\xf9\x30\xa5\x20\x04\xa7\x8e\xa5\xcd\x3c\x8b\xed\xd6\x1b\x2f\x28\x49\x42\x74\x39\x67\x59\xf6\xd0\xb7\x26\x08\x19\xc6\x41\x57\x84\xb9\xe2\x08\x15\x42\x09\xdf\x81\x59\x3a\xb1\xcd\xdb\x33\x12\xb8\x96\x4e\xf9\x19\x17\xeb\x3d\xc0\x38\x7f\x34\x86\x1a\xf5\xff\x0c\x66\x09\x28\xa3\x6c\xa9\x20\x1b\x02\x0c\x6e\x57\x1e\x84\xe6\xa6\x6b\xe0\x81\x9f\x44\x51\x0f\xa6\xa8\xf4\xb4\xf2\x2d\xf2\x0c\x6b\xc1\xb8\xb7\x74\x9d\x13\x37\x38\xf3\x84\x24\x94\x46\x96\xc2\x12\x25\xb6\xca\x1e\x23\x2d\x7d\x21\x8d\x84\x23\xce\x78\x23\x72\x3f\xfc\x8c\x92\x7a\x5c\x19\xe2\x40\x94\x3a\xfe\x8c\x93\x58\x48\x4a\x68\x68\xd3\xc5\x45\xd3\xbb\xf8\x26\x43\xd1\xf1\x75\x08\x49\xa9\x61\x68\x79\x04\x85\x84\xce\x03\xde\xef\x6a\x3f\xf8\x8f\xaf\x80\xb4\xfb\xf6\xac\xd0\xe7\xd4\xa8\x74\x1f\x16\x19\xaf\xaa\x54\xfe\x72\xc5\xa1\x27\x64\x48\x25\x46\xc3\x8f\x05\xbe\x93\x34\xeb\x4e\x8f\x0c\x0b\xc4\xd3\xf7\xc7\xfd\xf3\xfd\x7e\xf1\xf5\x79\xb5\x70\x74\xa2\x42\x46\x44\x19\x2e\x15\x80\xba\x39\x4f\x01\xd7\xff\x85\x3e\x9c\x90\x51\x60\xbc\xef\x8a\xa7\xbb\x6e\x71\xcb\x48\x84\xf8\x86\x4d\x03\xc8\xf2\xbd\x86\x7c\x94\xaf\xec\xe7\x88\x8c\x14\xc3\x36\xe0\x39\x22\xc3\x1b\xc7\x93\xf7\xcb\xe4\x67\xb4\x07\x72\x8c\x0f\xef\x14\x14\xc6\x23\x63\x2f\x32\x79\xf2\x46\x64\x69\x75\x04\x53\xc4\x9b\x86\xc9\x32\xf6\x15\xee\x8b\x6f\x45\x59\xd5\x0b\x5e\xc1\x86\xd7\x60\x08\xa5\x57\xf9\xfc\xec\x96\xa3\x8c\x03\x5f\x5b\xd2\x9e\x6d\x0d\xe7\xe7\x1c\x86\x35\xb1\xf1\x4f\xb3\xd0\xe8\x3c\x8a\xa6\xcc\xdb\xc5\x77\x2b\x52\x95\x2c\x89\xb4\xe9\xff\x50\xae\x57\x64\x7a\x19\x48\x00\x7a\x38\x4d\x9a\x1f\xee\x40\x4e\xc6\x70\x1a\x22\xf6\xeb\xbb\x80\x41\xc8\x21\x39\x33\xe2\x29\x15\xd4\x3b\xcc\x7b\x5c\xce\x46\x74\x76\x72\xba\x60\x0a\xfd\xea\x39\xcf\xb2\xbf\x86\xbb\x81\x94\xbe\x40\x0a\x14\x59\x97\xd9\xbf\xba\xad\x45\xca\x84\xf8\x26\x40\xf9\x03\x64\xfd\x04\x87\xa2\x4e\xf9\x95\x4a\x83\x90\x52\x03\x52\xb4\xf2\x01\x5d\xb1\xbb\x86\x52\xa6\x82\xa1\x8b\x12\x09\xaf\xc4\xc4\xa8\x49\x08\x89\xa5\xc5\xcc\x7b\x8d\xc3\x49\x03\xd4\xed\x35\x08\xda\xc8\x69\x1f\xa0\x7e\x40\x59\x40\x51\xb4\xb1\xc2\x68\x51\xeb\x20\x71\x60\x90\xf6\xe3\xac\xf9\x45\x70\xf9\x32\x94\xd0\x70\x03\x63\x1a\xfa\x0e\x7a\xd7\xbe\x45\xac\x42\xe4\xdc\x58\xda\xc1\xd4\xd5\x4c\x62\xfa\x96\x77\x41\xf0\xe7\x6b\x45\x27\x06\x27\xb5\x5e\xfd\x78\x76\xae\xa2\xd4\x12\xc0\xf1\xc7\x0d\xcb\x82\x9f\xa2\xa1\x95\x47\x63\x6c\x2d\x1c\xe9\xad\xae\x4e\xe7\x6c\x52\x43\xf8\xe0\x6c\x9e\x98\x7d\xa8\x5a\xe6\x0a\x51\xee\x5f\xcf\x62\xf4\xb6\x14\xd1\x9a\x75\x9c\xa3\xf7\xdc\xb2\x73\x7c\x8a\x67\xf8\xf5\x16\x78\x54\xf9\x91\x4f\x3b\xcd\x91\x06\xfb\xe3\xc6\x18\x0d\x37\x8e\x6b\x9b\xb7\xea\xfb\xaa\x94\xaf\x12\xac\xb5\xfd\x2b\x3d\xeb\x8c\x8f\x1a\x1c\x15\xa5\x01\x56\xbc\x90\x96\xe1\x79\x4c\x06\x28\x14\x8d\x42\xcc\x9c\xce\x9a\xfa\x08\x6d\xd8\x3d\x24\x5a\xba\x39\x89\x54\x40\x74\xdc\xdb\x18\xf3\x5b\x63\x67\xf7\xef\x5b\xaa\x54\xa0\x82\xd0\x52\x15\x59\xd1\xa4\x49\x3f\xf8\x67\xae\x88\x0a\x80\x20\xfc\x55\x40\x5d\x17\xa5\x13\x51\x1e\xbf\xa8\x00\x12\xdc\x0c\x17\x9b\xe7\x9f\x77\x46\x27\x66\xf7\x75\xbf\x7a\xda\xff\x5c\xae\xf6\xf7\xdf\x9f\xee\xf6\x8f\x2b\x87\x4d\x54\x61\x14\x27\xe0\x18\xe6\x30\x74\x5b\x2d\x9e\x97\xef\x2e\x24\x1f\xe4\x95\x54\xe4\x51\xe4\x6d\xcc\x05\x3f\xf0\xc1\x9f\x43\x43\x36\xff\x76\x2c\x9e\xdf\xf2\xea\xf7\xa2\xe9\x8e\x24\xa1\xcf\x9c\x1a\xe0\xb7\x8b\x9c\xdc\x67\x94\x84\x88\xd4\x3c\x72\x74\xc7\xd2\x12\xd4\x36\x3d\xe4\x1c\x35\xb9\x76\x85\xf5\xc1\xfb\xdf\xe1\x81\x72\x8d\x03\x06\x5e\x6e\xd4\x58\x5d\x94\xa9\x62\xcf\x37\xbe\x15\x64\xd9\xa2\xe4\xe2\x76\x00\xa8\x62\x15\xb1\x8e\xc4\x7e\x96\x4b\xeb\x50\x9a\x60\x62\xf4\xe5\x2d\xfb\x6f\xf7\x8f\xbd\x00\xf3\x14\xe6\x4f\xba\x5e\x90\x47\x5e\xbd\x4c\xc4\xde\xfa\x9f\x63\xe0\x21\xd7\xc0\xa1\xc9\xab\xeb\x2c\x88\x4a\x3c\xce\x61\x40\x72\x51\xed\x0a\x93\x5c\xeb\x06\x24\x04\x03\x30\xe4\xf7\x9b\xa1\xac\x91\xd9\x34\x4d\x75\xf7\xf6\xfa\x6d\x3d\xbd\xc8\x1a\xca\xab\xcc\xc0\x00\x5b\xa4\x38\x8b\x30\x62\x85\x77\x63\xc1\xdc\xdd\xdd\x5e\x00\x42\x04\xd2\x64\x20\x5b\x87\x6f\xef\x82\xac\x79\x3a\x09\x84\x95\x8c\x42\x9f\xf6\xa6\xb4\xeb\x14\xbd\x6a\x2d\xef\x8d\xa5\x92\xe0\x21\x1c\xe4\x6e\xb5\x58\xee\xbf\xae\xbe\xf4\x9d\x3f\x4a\x79\xb1\x37\x4c\x92\xe0\x9b\xda\x15\x56\xfd\xf7\x6f\xfb\x47\x6e\x96\x31\x94\x8a\x8d\x8a\x16\xc6\x82\x36\xd5\x37\x4e\x2c\x2b\x60\x4c\xdb\x78\x49\xf2\xc9\x4e\xa6\x74\xc8\xd1\x1a\xfc\x0b\xf2\xf4\xdd\xdd\xa9\x8e\x4c\xd7\x7d\x85\xe1\xca\x24\x47\xac\xb4\x66\x58\xd8\xc5\xcc\x2c\x38\xb4\x0b\x78\x71\x82\x82\x23\x19\xe8\x3a\x4e\xc6\xaf\x12\x3c\xc6\x31\xe1\xf3\xb4\x58\x8f\x28\x7a\x05\x78\x9a\xa0\x4c\xc2\xf3\x3b\xc6\xfc\x4f\x50\xbf\x15\xe5\x4b\x7f\x54\xc6\x46\x3f\xeb\x70\xc8\xe0\xae\xec\x42\x5d\x20\xc0\x45\x3c\xee\xf7\xd8\xd6\xfc\x05\x6e\xb2\x0b\xbb\x73\xda\x5d\x08\xfd\x81\xfc\x05\x27\xde\xde\x82\xc1\x16\x45\x9e\x83\xac\x07\x02\x5e\xbb\xe2\x09\xde\x6e\x94\x73\xc1\xa7\x0c\x63\x0b\xab\xec\xf6\x6c\xdf\xd0\x75\xf3\xf6\xf8\xa7\x7d\xcd\x31\xd1\x93\x56\x06\x5e\xbf\xb1\x79\xbc\x8f\x88\x21\xc0\xd7\xda\x55\x1f\xb1\x07\xd5\xd2\x6e\xf4\x53\x0d\xa8\xf0\x91\x92\x13\x72\xd5\x69\xc1\xd8\x43\x81\x32\xcc\x0a\xd5\x39\x4b\xa7\xb8\xc9\xf1\x87\x09\xbd\x98\x39\x99\xb0\x39\xe4\x7f\xb9\x2b\x84\x91\xc4\xbd\xb3\x32\xa4\xa8\xb7\xcd\x02\x84\xb1\x29\xfa\x60\x14\x57\xf3\xac\x5d\x26\xdd\x9b\x0a\xb9\x21\xbd\xc2\x16\x1b\x54\x7e\xe8\x8e\x08\x8a\x5d\x5d\x8f\x50\x73\x55\x64\x19\x2f\x9f\xcf\x83\x64\x33\x44\x24\x66\x30\x22\x02\x36\xc4\xe5\x8e\xc0\x7c\xf0\x6f\xff\x3a\x22\x15\x18\xc1\x33\xab\xd5\xb0\x85\x6c\xe2\x0d\x43\xac\x89\xb2\xca\xd1\x50\xea\xce\xed\x03\xc6\x38\xa6\x0c\xf6\x65\xd1\xde\x26\xb2\xac\x8d\xd6\x10\x30\xee\xe3\x0e\x6d\x59\xad\xd1\x06\xba\xb3\x13\x8b\xf5\xb1\x25\x49\x53\x2c\xb3\x99\x89\x51\x76\x07\x78\xe4\x73\xa3\xae\xd0\x5a\xeb\x89\xb7\x0a\x9c\x87\x8e\x05\x1e\xdb\xaa\xd3\xfa\xf2\xc4\x3f\x50\x90\x16\xc0\x15\x8d\x0c\x84\xb4\x2a\xb2\x57\x58\xe6\xb5\xdd\x48\xa0\xaa\x66\xb9\x1a\xd9\x55\x7b\x8a\x88\x24\x46\xd3\xf8\x41\x9c\xf6\x67\xf7\x18\x8a\x12\xbb\xf1\xb4\x41\x33\x3f\x41\xdd\xab\x0b\x7f\x30\xa9\x95\x30\xc4\x0c\x8f\x17\xc7\xf7\xd7\x7d\x7c\xa0\x14\x19\x12\x2b\x7e\xf9\x1d\xfa\xbf\xc6\x21\x3a\xa7\xa5\x49\x5c\x2c\x51\x28\xa2\xe3\xf0\x99\x3c\x21\x08\xf0\x6d\x1d\x7f\x57\x36\x95\x8b\x25\xf5\x78\x15\x80\x8e\xb1\x05\x0b\xdb\x31\x87\xec\x04\xf6\xb8\xf6\x64\x60\xcb\x98\xe8\x0f\xa7\x58\x6c\x99\x5f\x4c\x2b\xfe\xe4\x0d\x69\xce\xb0\x9e\x7e\x97\x56\x7f\x36\xd5\xbc\xa8\xbb\xab\xa8\x00\x57\xfd\x99\x5f\xee\x61\x62\x60\xb5\xe7\x19\xed\xe3\x87\xd5\x8f\x5f\xdc\x9f\x68\x8c\xd5\xc2\x39\xaf\xa0\x57\x4b\xfb\x1b\x68\xe2\xe7\x31\xa8\xf6\x62\x0f\xe9\xfa\xa1\x3e\x6e\x78\x5a\x81\xea\xa4\xcb\x10\x94\xdc\xfd\x34\x33\xb2\xef\x7f\x14\x69\x3e\x2b\x21\x77\xd5\x17\x4d\x24\x65\x89\x7b\x53\x7b\xb2\xe7\x4a\x75\x87\x34\xc1\xd6\x47\xfb\x5d\x10\x89\xf9\x51\xb3\x9a\x3d\xc5\xf7\x09\x5e\xcd\x39\x38\xe3\x30\x44\xfb\x89\x1f\xa9\x81\x94\xec\x95\x79\x1c\x8f\xe6\x02\x77\xcd\xb3\xa1\x13\x6d\xfd\xf5\x41\xb7\xb7\xa6\x9e\x40\x58\xf8\x91\xe7\x2a\x33\xcc\xc1\x69\x7e\x98\x88\x4a\x4d\xee\x8f\x06\x26\x8b\x08\xb2\x04\x59\xbc\x42\x49\xff\x1b\x58\x90\xa6\x89\x92\xe0\xfc\x78\x5b\xc0\x1e\xb8\x8f\x3a\x90\x21\x22\x85\x2d\x03\x0e\xa8\xa7\x34\xff\x83\xbb\x09\xae\xa3\x38\xc6\x45\x64\x84\xf4\xc8\x7e\x90\x8f\xd1\x11\xf3\xf0\xc3\xd4\xae\x39\xbc\xc8\xb6\x50\x3f\x15\xb5\x9b\xd6\x56\x9f\x62\x08\x78\xd3\x91\x30\xec\xc4\x5d\x65\xa5\x28\xef\xd3\x57\x68\x83\xf4\x6e\x88\x02\x2c\xfb\xda\x2c\x84\x2d\x7f\xb5\x81\xfe\xa2\x00\x47\x30\x32\xec\x50\xd6\x11\x08\xcc\x1a\x75\x64\xde\xd5\xd2\x7a\x4e\x1f\xbc\xcc\x38\xe0\x58\x88\x3b\x23\x7e\xd9\x71\x76\xba\x84\x9f\x8e\x41\x63\x6a\xd1\x74\xe1\x60\x9b\xc7\x36\x3d\x5c\x4d\xa0\xd1\x22\x9f\xfc\x02\x8b\x42\xcc\x6f\xe6\x86\x4e\xbe\x98\x80\x1a\xc7\x86\x47\x33\xa5\x63\x2b\x53\xd3\x7e\xda\x87\xa2\xba\xf2\x9f\xec\xc8\x24\x16\xca\x86\xcc\x7b\x65\xf4\xc1\x95\xeb\xd6\xec\xf7\x2a\x9d\xc4\x86\xc3\x66\xfe\xf4\xd4\xfd\x49\x2a\x3f\xc2\x19\x8c\x73\x72\x50\x4b\xd6\x9c\x68\x2c\xfa\x3d\x6f\xee\x96\x9b\xfd\xfd\xea\xe1\xe1\xc3\xa5\x7d\x4b\x1d\x79\xf2\xe8\x9c\x99\xcc\x9a\xa5\xf1\x7d\xec\xf2\x1c\x9a\x33\xe6\xf7\x94\xcb\x53\x36\xba\xf1\x83\x72\xee\x23\x7c\xc0\xe4\x64\x4b\xae\x0c\x21\x68\x67\x28\x35\xd7\x0a\xab\x9c\xcb\xcd\xc2\xf7\xe9\xdf\xb5\x05\x0e\xfd\x6b\x2d\x92\x98\x58\x4d\x81\xd4\x50\x92\xec\xd3\x5c\xb6\xf1\x66\x47\x3a\xd1\x8e\x71\xe9\x84\x76\xbd\x90\x0f\x66\x92\xe0\x14\x7d\xfa\x54\x16\xbe\xec\x32\x69\x5a\x32\x4f\x9b\x46\xed\xf3\x56\xa6\xf7\xa9\x69\xe0\xb0\x07\x15\x53\x11\xe9\x78\x87\x5b\x27\x6f\x12\x2c\x6a\x25\x01\x03\x4a\x05\x93\x29\xec\x66\xbc\x52\x44\x08\x87\x66\x3d\xc2\x89\x77\x3d\x69\xe3\xc8\xf7\xbf\xb3\xc4\x4a\x47\x4c\xf5\xe6\xf2\xa1\xe0\x7d\x26\xef\xdf\xff\x99\x02\xad\x35\x90\x18\x6b\x60\xdb\xdd\x6c\x28\xe0\x2b\x34\xc4\x42\x85\x5d\x95\x16\xb5\xad\xab\xf9\x65\xb4\xfe\x41\x71\x14\x99\xdd\x1f\xa0\x36\x85\x92\x5d\x4f\x83\xea\x06\x69\xdf\xc3\xf4\x67\x55\xe8\x7a\xdb\x7c\x10\x32\x6a\x1d\x45\x48\xf5\x97\x17\x75\xaa\x2f\x0e\x92\xbc\x37\x4e\x16\xf6\x9c\xd8\xe7\x19\xf9\x25\xd2\xf3\x88\x30\x4d\xf4\xa6\x1e\xf8\x75\xb6\x59\xee\x9f\xef\x91\x30\x69\xf7\xfb\x2f\x6e\x50\x48\x94\x53\xda\x40\xfc\x77\xc7\x36\x95\x9e\x60\x7b\xe6\xf9\xf4\xa2\xb1\x81\x4c\x59\xf7\xe5\x2e\xad\xce\x8d\x43\xa0\x93\xeb\x66\xf9\x5b\xdf\x83\xd9\x4b\x11\x20\xda\xe6\x22\x9e\xee\x3f\x2e\x80\x4a\x8f\x68\x85\xe5\xac\x75\x7a\x3a\xc1\x50\xcb\x57\x7a\x54\x78\xd8\xc2\xd7\xda\xe6\x55\xbd\x6d\xbd\xb3\x6a\x36\x28\x13\x4a\x8f\x6a\x12\x5b\x8d\x13\x39\x3e\x55\x73\x23\x73\x58\x4c\xf4\xf9\xa5\x17\x10\x43\x06\x6c\x6b\x4e\x9f\xe5\xba\xa4\x17\xd0\x18\xdb\x5f\x80\xcb\xe3\xf7\xdc\x34\x92\x8d\xee\x20\x48\x14\x9a\xc8\xe3\x45\x95\x85\x6d\x31\x1b\x51\x02\x4a\x2f\x80\xc0\x00\xc9\x4b\x30\x8d\xed\xe0\xdc\xd4\xf6\x98\x44\x2c\x42\xc6\x2b\x53\x5e\xd8\xeb\xd8\x1d\x0b\xbd\x84\xda\xaf\xb7\x03\x7e\xb2\xb4\x10\xd7\x1e\x92\xf4\x42\xc1\x23\x1b\x4c\x22\xc4\xf0\x69\x20\x2b\x6d\x87\x44\x11\x58\xe6\x5f\x30\x7e\x8a\xfb\x95\x38\xf6\x30\xc9\xfc\xaf\xd5\x43\xf7\x27\xe1\x4b\xeb\x11\xdb\x10\x02\xf7\x7f\x77\x98\x79\x1a\x71\xa1\xd5\xb1\x78\xbb\x45\x20\x21\x3d\x16\x79\x58\x52\xcc\x50\x56\xf1\x8e\x5f\xfa\x73\x55\x18\x24\xce\x20\xae\x16\xcf\x37\x57\x85\xf4\x92\x90\x5a\xed\x9a\xda\xf4\x99\xdd\xb0\x89\x9d\x15\x95\x5e\xc2\x23\x43\xdb\x8a\x0d\x18\x8f\x1b\xf7\x6b\x89\xa0\xb8\xb8\xd6\xa6\x8f\x7e\xa8\x76\x3a\xf9\x3d\x21\x02\x87\x6d\x83\xaa\xc6\x52\x71\x77\x11\x69\x6a\x94\xbc\x46\x8c\x41\x51\xae\x14\xa0\x5f\x3f\x79\xe8\x44\xc6\x32\xb2\xd2\xaa\x0d\x54\x95\x25\x19\x68\x63\x92\xf1\x6f\x49\x86\x54\x06\x80\xf9\xdd\x9f\x53\xfe\x40\x6b\xa0\xa4\x97\x68\x86\x79\xe5\x75\xfa\x6e\x64\xf6\xbb\x50\x52\x7a\x3c\x30\xc5\xad\x59\xf6\xc6\x2f\xd5\x7d\x57\x74\x91\x1e\x76\x49\xe0\x9a\x29\x4f\x69\xce\x6b\x07\xb5\xed\x8e\x73\x8e\x84\xb2\x68\xba\xa6\x20\x74\xe9\x09\x65\x18\x5e\x9c\x67\x73\x57\xf2\x43\x47\xa4\x2d\x3d\xe9\xfb\xd4\x39\x3e\x77\x25\x7f\x5b\xf6\xfc\x8a\xd2\x93\xd2\x24\xf1\xac\x1e\x65\x89\x39\x83\xee\x54\xe5\x11\xd4\xa8\xda\x63\x72\xec\xf9\x0c\x86\x48\xc3\x1d\xd5\x81\xc6\xf2\x45\x06\x55\x95\xe6\x87\xee\x34\xa0\x1a\xbb\x12\xdf\xca\xf4\x03\xb6\x7a\xe9\x41\x6c\x4a\xef\x19\xe8\xba\xf5\x3c\x1c\xf6\x4b\xeb\xfe\xe6\x00\x22\xdc\xcf\xbf\xb6\x06\xe1\xa3\xde\x96\xdb\x36\x40\x93\x08\xfa\x6a\xf1\xb3\x6e\x17\xe3\x2c\xef\x3a\x3d\xdc\x2f\x68\x69\x42\xb5\x99\x03\x2b\x4b\x42\x62\xed\x59\x14\x03\x19\xbf\x68\x42\x58\xff\x26\x31\xcc\x37\x0b\xe9\xbe\x2c\x4e\x5b\x28\x87\x05\xcb\xeb\xbd\x5f\x12\x92\x50\x44\x24\x7c\x29\xa1\x8d\x08\x67\xbf\x0c\x0f\xfa\x84\x63\x81\xe5\x01\xcb\x76\xe9\xe9\x97\x0f\x84\xe5\xbb\xe1\x02\x83\x82\x13\x64\x46\xe8\x6c\x7b\x2c\xae\xd2\xd5\x6e\x2c\xf5\xb0\x32\xcb\x71\xa7\xdb\x63\xd0\xe2\x5e\x00\xf1\x99\x41\x32\x3f\x14\x19\x41\x62\xe5\xae\x38\x24\x89\x2f\xb9\x4f\x3a\xf6\x85\xe6\x6c\x39\x1b\xaf\xa0\x79\x6e\xb8\x32\xd6\x2a\xad\x7e\x40\xae\x8a\xdb\xb9\x48\x49\x68\x68\xe0\x88\x4e\x0d\xa9\x5a\xa9\xee\x6e\x82\xd8\xe4\x62\x45\x93\xbd\x20\x8a\xc9\x04\xcd\xff\xfe\xcf\xaf\x37\xf0\x80\xee\x1c\x19\xc7\xc2\x51\x94\x5f\xae\xaa\x6c\x92\x04\xe0\x87\x06\x16\x93\xff\xb3\x49\xdf\x8b\x1a\xae\x11\x27\x92\x84\x9e\xa7\xbd\x41\xeb\xc0\x63\x1b\x08\x4e\x3f\xe7\x64\xef\x34\x6e\xf8\xc8\x39\x77\x57\x13\x9e\x8b\x95\x87\x0d\x0d\xdd\x83\xb6\xc7\x85\x35\xc7\xae\x02\x5c\xcd\x5e\x79\x9a\xf5\x74\x8d\xed\x28\xd3\x0b\xd0\xae\x91\x28\x9c\x3c\x56\x44\x4c\xef\x08\x0a\x2d\xbf\xd7\xab\x13\x3f\x00\x42\x7f\xdd\xab\x22\xd1\x18\xc1\x7d\xb3\xfe\x3e\x7c\x93\x51\x14\xc5\xce\x16\xe4\xd5\x5b\xb7\x0e\x49\x14\x29\xec\x80\x7a\x68\x5e\x86\x4d\x1b\x92\xc4\xbe\x46\x08\xea\xb2\x3e\xfe\x80\x1c\x13\xf5\x41\x77\x2c\x30\x81\x3b\xb2\xea\xa3\xf8\x7c\x5f\xe1\x1e\x3f\x09\x23\x26\xd4\xdb\x72\xa5\x32\xd8\x9b\x1e\x2a\x7b\x0c\xd5\xb9\xcd\x53\xa2\x57\x67\xa5\x85\x6e\xd4\x41\x25\x49\x34\x31\xed\x74\xed\xee\x67\x37\xcc\xf1\x08\xee\x85\x98\xea\x79\x4d\xab\xb4\x7e\x80\xfc\x50\xbb\x1d\x83\x70\xda\xd5\x6d\x77\xfc\x65\x7a\x8b\x22\x09\x3c\x8b\xe8\x7c\xb4\x52\xff\x43\x33\x4a\x44\x62\xa8\x33\xac\x40\xdf\xb0\x41\xcd\x2c\xe4\x61\x94\xde\x0e\x97\x58\x6c\xb2\x6c\x3f\xb7\xd3\x9e\x9f\x79\xce\x92\x48\x11\xe3\x6e\x6b\x63\x77\xd3\xc1\xe8\x1a\xdf\x27\x73\x5b\x31\x8d\x75\xc4\x2f\xeb\xa7\xdb\x68\x94\xc9\x12\x55\x49\x9c\x78\x0e\x13\xd7\x6e\xab\x8b\xed\x2d\x40\xae\x1d\x0d\x1e\xe5\x86\x12\xc9\x65\x67\xec\x01\xed\xf9\x56\x0a\xfc\xe3\xf2\xec\xf8\xa1\x34\xa5\x56\x6f\xb8\x6e\xca\xfc\xa1\xf5\xaf\x9a\x0b\x94\xa6\x05\xc3\x8d\x89\x0c\x75\x62\xd7\xe3\xb3\x5a\x77\x87\xa4\x0c\x8c\x0b\x73\x48\xe5\x28\xdb\x2c\x7d\xcf\x66\x0c\x37\xab\xed\x37\xf7\x37\xe2\x99\xfc\xbb\x83\xbe\x7f\x29\x32\x65\x7a\x02\xeb\xb1\xcb\x76\x2b\xd7\x22\x7d\x42\x62\x2c\xdd\x6d\xe0\xcf\xa6\xaa\x27\xb4\x86\xd2\xf7\x43\x81\x37\x5a\x8f\xb7\x9e\x9e\xe2\x6b\x5c\xe9\x97\x7e\x40\x7c\xfc\x4c\x27\xab\xae\x6a\x5b\x15\xb0\xa4\xe7\x86\x44\x61\x20\xfb\xf6\xf2\x6a\x2c\xc7\x2b\xfd\x00\x78\x60\x33\x7d\x0f\x69\xfe\x72\xc3\xd0\xf9\x01\x80\xc5\xaa\xbc\x16\x83\xdd\x79\xf8\x1d\xfc\x40\x4b\x7c\x32\xfb\x33\x76\x9f\x9b\xde\x6f\xe8\x29\x84\x39\x1b\xd0\xe2\x34\x0c\x1e\x7d\x59\x3f\xa4\x1e\x4a\x0d\x9c\xcb\x01\x32\x70\x72\xb9\x90\x92\x41\x75\x7c\xb9\xfb\x3a\xaa\x8d\x49\x3f\x54\x09\x96\x30\xce\x1c\xc5\xbf\x79\xe7\x13\xde\x2c\xcc\x49\x3f\xf2\x43\x04\x08\xee\x96\xb3\x47\x0b\xf2\xf6\xdc\xb5\xa2\x44\x62\x95\x79\x37\x7f\x08\x86\x26\xcd\x8f\xb9\xd1\xbd\x1b\x4b\x69\x58\xe9\xdd\xa8\xdf\x89\xdc\x70\xe0\x1e\xeb\xad\xb0\xa5\xdb\xd8\xed\x1e\xf1\xa2\x2b\x15\xfe\x32\xba\xa5\x58\xeb\x44\x0c\x6b\x85\xf7\xcb\xa5\xdf\xe7\x5a\xdd\x4d\xb0\x88\x61\xa7\x96\x82\xd7\x45\xd3\x3d\x7f\x42\x0d\x67\xb4\x6d\xd3\x43\x9d\xdd\xf1\xdd\xf0\x58\x30\xcb\x53\x65\x7e\x3f\xd7\xc5\x57\x28\xd3\xfa\x7a\x37\x9e\x7c\x1f\x41\x78\x62\x03\x68\x43\xfe\xd3\x1a\x95\x0e\x2a\x28\x7d\x49\x84\x6f\x69\x4c\xee\x20\x83\x03\xaf\xe1\x86\xbc\xe3\x75\x0f\xf1\xa7\x6e\x8c\x2f\x95\xc2\x64\xf0\xe3\xf7\x87\xdd\x6a\xbb\xfa\xb2\xdf\x7d\x7b\x72\xbf\x08\xbe\x21\x6d\x6a\xbf\x74\x86\x10\xaf\xca\x70\x5f\x77\x4b\x1a\xb8\x0f\xd6\xe8\x2e\xeb\xe3\xf2\xfd\xda\x35\xf6\xb5\xe7\x61\xf1\x65\xb9\x5e\x7d\x12\xcf\xfa\x3a\xf0\xf0\xcd\xde\x2d\x7f\x38\x63\xe2\xeb\x50\xb3\x5e\x95\xda\xd4\xc2\xaf\xe8\x59\xa5\xaf\x63\x1e\x38\x8d\x8b\xf2\x52\xd5\x93\x3e\x30\xe9\x6b\xc6\x90\xe7\xa1\xf5\xac\xe6\x4d\xae\x32\x18\xcd\x37\xcd\xc3\xd0\x56\x52\xee\xd3\xd2\xf1\x4f\x49\xea\x25\xae\x2a\x71\x2a\x5e\x61\x01\x65\x9d\x6a\xcb\xbd\xe5\xf0\xbd\xc6\xef\xcc\xf4\x38\x6a\xa4\xc4\x37\xfc\x72\x93\x7e\x8f\x89\xe1\xc7\x73\xfe\x4d\x26\x4e\x1c\x25\x61\x84\x55\x2c\x93\x9f\x34\x42\x68\x03\x15\x29\x49\x89\x0c\xdd\x4b\x47\xe6\xd5\x9b\xec\x47\x92\xfa\x34\xa0\x91\x13\x29\x79\x07\x75\x0b\x00\x25\x29\x15\x11\x92\xff\x99\xda\xbb\x73\x7f\x3e\xdb\x22\x68\xc0\x89\x01\xd2\xdf\x8e\x2b\x68\xc0\x21\xb4\xc5\x97\xd5\xe2\x79\x24\xca\xf8\x3f\xf5\x29\x49\x1a\x12\x6d\x3a\xc6\x9e\xee\xfe\x57\x9d\x1a\x49\x23\x20\x01\xc1\x15\x8c\x35\x69\xd4\xa6\xec\x70\x97\x92\xc6\x3e\x45\xa8\xf4\x5b\x9a\xab\xe2\x0d\x29\x23\xb7\x35\x9c\x7d\x77\x9c\x79\xc4\xb4\x27\x61\x1e\x78\x5d\x16\x85\x7e\xd6\x56\xc8\xf1\x98\x9e\x1d\xc0\x68\xe2\x64\xf8\x7d\xca\xec\xd7\xf1\x9c\x60\x5e\x8c\xdc\x4c\x1d\x85\xf3\x76\xb7\x59\xad\xd7\x4b\xd7\xed\x22\x29\x63\x0a\xb3\xfc\x0f\xc5\xc1\x16\x6e\x3f\x61\x46\x91\x34\xf1\x01\xf9\x22\x7e\xa4\xe5\x21\xcd\x1f\x87\x53\x9a\x26\x2c\x8c\x07\x39\x90\x99\x52\x93\xc9\x21\xec\xdc\x7e\x49\xb3\xcc\x25\x23\xc6\x97\x17\x09\xe7\x86\xe8\x28\x57\x45\xbb\xea\xca\xff\xae\xf7\x5c\x52\x21\x55\x14\xf6\x10\x52\x2b\x69\x73\xdf\x40\xf6\x19\x2a\x53\x52\x19\x1b\xf9\x8e\xba\xd7\x6b\xb1\xe7\xba\xc7\x92\x49\xcc\xcd\x16\x56\x1c\x53\x91\xd6\x96\xfe\xc0\x1e\x55\xc2\x68\xd4\xf4\xc0\x99\x47\xa4\x19\xbd\x4b\xb5\x4e\x65\x93\xd5\x17\x37\x12\x3c\x43\x75\x98\xca\x02\x77\xf8\xaa\x3b\xa0\x08\x37\xbd\x1c\x69\x5d\x7d\x37\xcc\xd0\x73\xc7\x29\x60\xc7\x68\x02\xe8\x9a\x15\x26\xe9\x3e\xfe\xca\x3a\xb6\xf8\x32\x4c\x44\x8e\xe8\x77\x7f\x9d\xcc\x14\x77\x06\xc4\x18\xe2\x19\xd2\x7e\x50\x46\x4b\xd4\x35\x3e\x9a\x41\x81\xe7\x27\x96\x4c\x3b\x57\xb3\x1f\x9b\xdb\x2f\x30\xf0\x22\x8a\xf5\x9e\x9f\xb3\x87\x87\xe5\x6e\xbf\x63\xcb\xdf\xf6\xed\xce\xdb\x5d\x25\x01\x64\x84\xfa\x51\xd4\xf0\x9c\x4f\xdd\x05\x37\x08\x78\xe8\x08\xff\x36\x37\xa4\xae\x64\x40\xb8\xd1\xd5\xef\x92\x1d\xc6\x47\x98\x5f\x56\x6a\x3a\x12\x42\x24\x3c\xfe\xed\x8b\x03\x5f\xb8\x5b\xf1\x23\x22\xb0\xe2\xf6\xfc\xf0\xfd\x71\xb9\x5f\xfe\xb6\xdb\xcc\xf6\x46\xd9\x65\xf1\xfc\x74\xb7\xea\x65\x5d\x64\x40\x55\x12\xf6\x71\x61\xc9\x3f\xa3\x47\x76\xa7\x80\x30\x26\x28\xe7\xe7\xea\x58\xe0\xe2\xaf\x6a\x7e\x72\x9e\x61\x10\x68\x0f\x3f\xe2\x2c\xfb\xb3\x49\x33\x5e\xce\x53\x99\xba\x63\x61\x48\x10\xdb\x72\x5f\x14\xf5\x9c\x67\xd9\x20\x20\x0f\x62\x5f\x1a\x5e\x45\x23\x72\x64\xa5\x81\xba\xa3\xd4\xa8\xdb\xb8\xcd\xff\x69\x40\xf4\x3b\xfe\xec\x41\xcc\x3c\xf4\xdc\x6c\x77\x0e\xf6\xae\x18\xbe\x2c\x77\x31\x46\x24\xe2\xc0\x3a\xa7\xde\xd9\xf9\xb1\x5b\x1d\xb0\x04\x5c\xb6\xfa\x09\xde\x96\xef\x06\xdf\x7f\xab\x45\x47\x06\x89\x2f\xf0\x9a\x25\x86\x66\xed\xee\x75\x9f\x72\x37\xb3\x83\x24\x11\xa1\xdd\x48\xef\x01\xfa\x60\xf8\xbe\x98\xf0\xe1\xc8\x80\x0b\xf0\xa2\xae\xf3\x1b\xe7\xf9\x35\x9d\x86\x0c\x38\xf8\x98\xe6\x35\xd5\xaa\x1b\x95\x71\x19\x88\x28\xa4\xca\x4e\x6d\x6c\xca\xda\x15\x8f\xd5\x61\x0b\x28\xb8\x3d\x19\x9a\x18\xbe\xa2\xf6\xfe\x3a\x46\x5b\xf3\x59\xc7\x8f\x29\xb8\x46\x44\xec\xf6\xe5\xf2\xc6\xb3\x97\x0f\x40\x59\x32\x10\x92\xf3\xb0\x83\xed\xce\x9b\xcb\x08\xcf\x23\x03\x19\x9a\xb4\x1e\x3a\xf9\x08\xe9\xef\xb3\xa7\x81\xe4\x0c\x73\xe5\x2b\xc4\xfa\x7c\x4a\x33\x21\x03\x05\xcc\xd0\x69\xf0\xd7\xd7\x7e\x15\x80\xa7\x5d\x9d\xc9\x35\xda\x6e\x21\xbb\x45\xd5\x2c\x03\xa0\x31\x26\x66\x90\x31\x6f\x95\xa7\xf5\xba\x2c\xfe\x00\x59\x0f\x75\x37\x64\x00\x8a\x0f\xa5\x89\x67\xee\xef\xba\x5d\xb6\xb6\xe3\x37\xcd\x61\x80\x81\x6a\x8f\x99\x66\x8a\xbd\x4e\x73\x35\x60\x9e\x1e\xdf\x40\xe8\x05\x21\x66\xe5\x4c\x12\x6b\x0c\x8a\x93\xa1\x07\x31\x36\x9c\xd6\x07\x68\x77\x7c\x34\xab\xee\x18\xa1\x02\xa1\x2a\xf3\xb7\x51\x76\x2b\xf4\x23\xca\xbc\x1e\xce\x80\x49\x83\x05\x32\x43\xdd\xfe\x5e\xa1\xcf\x63\x6d\xb6\xf4\x7c\x92\x46\x0e\x69\x14\x05\x8e\x1d\x7b\x0b\x75\x73\x7e\x4c\xdf\x7b\xda\xb4\xff\xce\xdf\x08\x83\x00\x62\xbf\xf3\xf8\xd6\x60\x52\xc0\x37\x8d\x6d\x18\x88\x84\xd8\xb4\x88\x13\x96\x5b\x5c\x7f\xb6\x30\x50\x06\xfa\x84\x84\x56\xa7\xb4\x77\xaa\x5c\xf0\x1e\x86\xa1\x71\x34\x8a\xb3\xc5\x5f\x3b\xa1\xd1\x31\xc9\x8d\x0c\x23\xc2\x91\x37\xdd\x04\xc6\x41\xf7\xe7\x48\x62\x58\x2d\x79\xa9\xaa\x3d\x4e\xd5\xc9\x3d\x44\x2c\x52\x26\x2d\xb8\xdc\x2c\x98\x4f\xdc\x99\x71\xc2\xb0\x51\xe1\x9f\xdf\x9f\x9d\x02\x8a\x0c\x63\x15\xa2\xfb\x69\xfc\x9e\xfb\x34\x3f\x40\x69\x42\xc6\x71\xce\x6d\xf4\x0b\x4c\xc4\xce\x72\xfc\x2c\xd3\x1a\xca\x95\x1a\x6f\x8c\x21\x13\x80\xd1\x27\xd6\x1a\x1e\x2f\xc3\xcd\x20\x64\x32\x74\xca\x4a\x2b\xcb\x19\xe4\x4f\x1e\x21\x21\x01\x46\xa6\x59\xaa\xc1\x8a\x78\xd8\xfc\x80\x1d\x20\x28\xc5\x9d\xfb\x4d\x74\x7f\x11\xd2\x45\x62\x4e\xaf\xe5\xa6\x51\x0c\x65\x48\xb1\x93\x37\x2b\xe4\x0b\xfa\x81\xc6\xfb\x35\x49\xe0\xf1\x6d\xa8\x10\xb0\x55\xf1\x1f\xb3\xc5\xb7\xf5\xf3\x6e\xff\x73\xf5\xf4\xe4\x40\x91\x32\x54\xb1\x47\xcd\x46\x95\x9e\x50\xac\x6a\xb0\x77\x7e\x2a\x2e\xd5\x9e\xea\xe3\x4e\xb9\x3e\x16\x39\x0c\xd7\x88\x82\x90\x75\xa5\xf0\x8d\x4b\x91\x87\xe0\xc5\xac\x97\x1e\x98\xcf\x9f\xef\x6e\x29\xdb\xcb\x10\x88\x87\x7c\x46\xfb\x91\xcd\x1c\x00\x28\x64\x08\x89\x87\xc8\x50\xc7\x2b\xdf\x0b\x87\xba\x1f\xd3\x5c\xa3\x4a\x7b\xa7\x77\xbe\x28\x4e\x48\x66\x33\xac\x0a\x98\xb1\x91\x47\x03\x1e\x5b\x73\xbe\xd2\x4f\x45\x7d\x5f\x94\x1d\xbf\x9b\x8c\x3c\x46\x71\x03\x3a\xa5\x79\x3d\x78\xd7\xe8\x67\x9c\xc0\x31\x28\x8e\x5f\x4e\xe4\xd3\x88\x59\xec\xea\xcf\x34\xcf\x07\x2e\xd5\xf8\xb7\xfd\xc8\xc7\x22\xcd\xea\x2b\xaf\xc1\x7b\x9f\xef\x16\x43\x1c\x8f\x8c\xa8\x2f\x1d\x5d\xfd\x16\xca\xd7\xd4\xea\x8a\x8c\xf7\xd3\x88\x26\x14\x6b\x2a\x3d\x9f\x7c\xbb\xf1\x4d\x4a\x5f\x11\x4d\x14\xa2\xab\xbe\x67\x75\x3a\xf8\x5e\x11\x55\x1c\xc2\x1e\x52\x59\x94\xc6\x15\x95\x13\x7b\x15\x05\x81\x8f\x6e\xdf\x7a\xb3\x5a\xa0\x9a\xda\x97\xe5\xfe\xf9\x69\x69\x7c\x20\x77\xb1\x28\x08\xfd\x2e\x38\xc3\x0f\xf7\x01\x41\x98\x1b\x1f\x32\xe4\x68\xdd\xf1\xac\x43\xe4\xcb\x28\xd2\xe0\x19\xd9\xd8\xb4\xfd\x78\x0f\x3c\x57\x27\x5e\xbe\x4c\x1e\x28\xa6\x21\xe2\xdf\x4c\xc5\x7b\xd3\x9b\xf6\x28\x0e\x01\x4b\xcd\x85\x43\x90\x76\x07\xb4\x67\x03\x64\x74\xcc\x2e\x23\xc2\xfa\xf6\xb0\xaf\x45\x97\x4a\x5c\xd6\xc7\xe0\xd6\xae\x1e\x31\xa2\x11\xfa\x69\xb4\x1a\x11\x47\x6c\x3d\xd3\xee\x93\xb0\x84\x48\xbb\x4f\xef\x0d\x2f\x85\xcd\x64\x4f\x2f\x25\x54\x64\xba\x2d\x2f\x6b\x6c\xac\x9d\x1c\x4f\x42\x8e\x61\xd1\x3e\xad\x56\xf9\xf6\x3a\x0f\x1e\x25\x71\xe4\x6a\xc7\xab\xc5\xf3\xe3\x0d\xc5\xef\x76\x4c\xec\x5a\x36\x37\x4e\xc9\xc0\x04\x08\xe3\x71\x3c\x34\x52\xdb\x9b\xf4\x5c\xa7\x6a\xb8\xa8\x23\x9e\xc4\x60\x20\x1e\x19\xd4\xf0\x78\x59\x74\x3e\x58\x24\x69\x40\x13\xdb\x90\xb4\x81\x73\x53\xf3\xeb\xba\x6b\x04\x24\x49\xf8\x88\xb1\xe1\x91\xe7\x0d\xcf\xb2\xcb\xe7\x39\xa6\x08\x88\x42\x6c\x1a\x9c\xd2\xfa\x1f\x85\x30\x39\xfc\x69\x8e\x3e\xd2\x2c\x76\x9d\xfe\xeb\x0a\x1a\x55\x18\x18\xe8\xc8\x3d\x8d\x3d\xcf\x30\x8c\xbb\x28\x00\x93\xaf\xd3\x56\x52\x19\x7b\xb1\x81\xe6\xef\x4f\xf5\x71\x57\xfc\x28\x1a\x79\x9c\x12\x8d\xca\xd8\x63\x86\xe6\xe9\x5c\x42\x55\xa7\x5d\xa6\x23\xf6\x12\x8a\x99\x1d\x0b\xfd\x2d\x8a\x6c\xbc\xe2\x63\x4f\x30\xec\x61\xfe\xf6\xfb\x02\x5b\x2a\x1e\x1e\x77\xee\x5c\x12\x86\x46\x9e\xc4\x98\x35\xbb\x99\x1b\x5c\xd9\xf8\x4b\xc5\x44\x99\x56\x24\x74\x63\x07\x75\x0d\xe6\x8e\x83\x46\x11\x8c\x2e\x74\x5f\x94\x3c\x3d\x7c\x29\x79\xb7\xc6\x62\xa2\x15\x9a\x48\x1b\x7a\x3d\xcc\xf7\x8e\xdb\xc2\x8d\xf0\xa3\x40\x19\xea\xa7\x2c\xc3\x3a\xca\x6d\xbf\x22\xa6\x5e\xc0\xc6\x54\x63\x0b\x5e\xd5\x19\x3c\x14\x45\xf7\x6b\xd4\xf7\xb1\xf1\xe6\xae\xb8\x83\xd7\xc9\xbb\xa4\x31\xe0\xce\xa0\x9b\x5c\xad\x07\xa7\xb0\x58\xc6\x5d\x98\x79\xad\xe7\x22\x63\xaa\x0d\x0e\xed\x6e\xf6\xe4\xd2\xf3\x71\xe0\x19\x21\xcf\x3d\xf2\x88\x14\x35\x20\x0a\x00\x21\xb5\x9f\x77\x4e\xc9\x38\xf4\x18\x96\x8d\x76\x25\x54\xca\x45\x48\x71\x18\x6a\x43\xe7\x5a\x37\x5a\x77\x7f\x8c\x7c\x34\x50\x2e\xc0\xc1\xa9\x74\xb3\x5f\xbc\x1d\x0b\x48\x75\xb6\xde\x2c\x57\x8b\xe7\xfd\x7a\xb9\x59\x3d\x77\xef\x38\xe2\x11\x62\x2b\x45\x63\x1a\xc5\x7a\x69\x0d\x19\xc7\x21\x10\x6d\xd7\xdc\x81\xd7\xe0\xe4\x13\x6f\x7f\x05\x16\x73\x8c\xe4\x7e\xff\xfe\xf4\xdb\xea\xe9\xbf\xcc\x7c\xc4\x89\x65\xa1\xac\xa0\xfe\xed\xaf\xec\x45\xfe\xf1\x67\xf1\x76\x2c\xfe\x3c\xbe\x15\xe9\xb1\x4a\x79\xf1\x67\xf3\x06\xe9\x5f\xef\x45\xda\x14\x93\xc7\x4a\xfc\x04\xeb\xda\x60\xc9\x0c\xa6\x87\xb9\x46\xfc\x5e\x5a\x55\x0d\xb8\x10\x6f\xf3\x09\x0e\xe7\x73\x47\x37\xe6\x34\xc1\x64\x94\x2a\x0c\xf7\x86\x65\x7f\xf7\xa7\x97\xbb\xae\x35\xc5\x5c\xc4\x98\xcf\xcd\x9b\x93\x55\x1a\x12\xbd\xa5\x8e\x05\x95\x41\x88\x8c\x2d\xef\x43\x65\x9c\xf6\x80\x42\xe2\xdf\x76\x05\x6d\x77\x8b\x67\xd7\xef\x24\x63\x11\x1b\x68\xc5\x36\xcd\x0f\x19\x6c\x8b\xa6\x94\xd0\x61\x45\xdc\x18\x30\x8d\xb8\xb6\xe3\x0e\x79\x6c\x26\x6e\x5c\x2c\xfd\x00\x7d\xb3\xe7\x1c\x03\x32\x5c\x63\xf3\xa2\x78\xf9\xe1\x11\xea\x9c\xc2\x58\xc6\x86\xa0\xa1\x84\xbc\x8d\xcd\xaf\xdb\xc1\x64\xac\xa4\xc2\x92\xd4\xb1\xa8\x6a\x9b\x87\x73\x67\x43\x04\x7d\xb2\x74\x53\xbc\xdc\x84\xf1\xc4\xc0\x38\xae\x4e\xae\x46\xd1\xd4\xa7\x96\x39\x06\xce\xa5\x91\xd6\x7d\x81\xdd\x88\x49\xf4\x83\xf1\xc2\xd0\x34\xf5\x0d\xf4\x93\x29\x03\x2a\xc2\xf0\x74\x76\x48\x3f\x06\x6d\xff\x4f\xe9\x58\x46\x98\x87\x90\x07\xb7\x34\xb7\x86\x0d\xe4\xca\xe8\x33\xc2\x43\xd7\x4a\x61\xf9\xff\x6c\x5b\xe9\xe8\x45\x31\x9f\x70\x19\x0c\x48\x48\xaa\x95\xde\x98\xb2\x23\x54\xd5\xee\xc8\xf3\x0e\x3e\x2a\x99\xaf\x7d\x6e\x93\xca\xdb\x37\x94\x07\x9f\x5c\x8c\x7a\x02\x1c\x2a\xb2\xe6\x35\xb4\xbe\x69\x9f\x41\x63\x34\x31\x31\x28\xea\x8b\xb9\xc4\x15\xbf\x2c\x8a\xd3\xa9\xc9\xfb\x99\xc6\x28\x37\x0d\xad\x66\x6b\x9e\x34\x5f\xb9\x31\xc2\xc3\x34\xe4\x0f\x9e\x41\xb1\x83\x6a\x34\xd3\x59\x40\x24\x89\xdc\x24\x59\x14\x65\x09\xd2\xb8\x53\x1d\x7c\x96\xb9\x91\x8a\xa0\x80\xef\x13\x74\x15\x15\x16\x00\x20\xb9\x1a\xea\x0c\x8d\xed\xce\xf8\x26\x42\x02\xc2\xb2\xcd\xef\x21\xaf\x3b\x6f\x9d\x85\xdc\xc7\xb5\x92\xe6\xba\x78\x84\xaa\xea\x2b\x07\x2c\x22\x21\x37\x9c\x15\xfb\x5b\x58\x2c\x16\x85\x51\x10\x8e\x6a\x63\xd8\x5d\x7d\x9f\x35\xd5\x71\x90\x45\x1d\x7f\xec\x48\xf8\x01\x19\xca\x24\x9c\x8a\x59\x17\xfb\x33\x26\x62\x64\x54\x32\xb0\xad\x27\x78\xb3\x42\x2c\x4e\xb6\xeb\xff\x96\xc4\x4c\x32\x26\x85\x88\x46\xe9\x5e\xcb\xcb\xe0\x7e\x3a\xa1\x0a\x61\x99\x0f\x69\xfe\xd2\x7a\x5f\xa3\xaf\x94\x70\x0f\x9c\x0a\x5a\xef\x66\x8d\x5f\x47\xc2\x89\xc7\xfb\x1a\xec\x00\xcb\x2a\x59\xa2\x94\xb0\xd8\x8a\x45\xd1\xc6\x7a\xb7\x38\xa7\x25\x4b\x80\x61\xc3\xe5\x3c\x55\xc8\xa2\x3e\x26\xa9\x1b\x3f\x10\x0f\x79\xd8\x3e\x90\x68\x4d\xaa\x5a\xa4\x75\xfa\x57\x7f\xbf\x1c\xc0\xb4\xfb\x94\xc0\x5f\x56\xea\x91\xa7\x79\x0d\x48\xe4\xe8\x7f\x30\x41\x84\x30\x28\x74\x17\xd7\x15\xbc\x54\x5b\xc3\x74\x7f\xab\x40\xc1\x84\x54\x66\x75\x8b\xf1\x7c\x06\xa2\x9c\xbf\xbb\x38\xa6\xe7\x21\x8c\x93\x69\x16\xa2\xe7\xb4\x95\xb2\xfb\x53\x62\x04\xff\xde\x52\x55\x1f\x4b\xfe\x36\x2f\x6c\x5e\x6f\xf2\x72\x75\xa2\x6d\x7b\xfa\xa9\x78\x85\x87\xf4\xcf\x26\x55\x53\xd6\x16\x99\x78\xbe\x41\x82\x73\xd4\x68\x5b\xfe\x49\x2c\xaa\xf6\xd7\xe1\x3f\xee\x11\x12\x8f\x69\x04\x57\x9b\xec\xfb\xff\x0d\xa8\x23\x21\xdc\x34\xea\x1c\xa0\xfe\x02\x39\x0c\xb2\xcd\x81\xe7\x86\x28\x85\xdf\xc9\x82\x8e\xc7\xcc\x3e\x32\xf1\xbd\x50\x74\xe4\x81\x9f\x5b\xf1\xc4\x8f\x3c\xbc\xe1\xaf\xbc\x3a\xda\x7c\xde\xf8\x35\x25\xbe\xd0\x48\x74\xd4\xda\x48\x23\xfa\x05\x86\x8e\xbf\x23\x64\x94\x09\xe5\x21\x3a\x55\x46\x54\xda\x50\xa9\x19\xaa\x23\x37\x22\xf0\x89\x74\xba\xd1\x03\x9a\x0e\x99\x04\x10\x61\x89\x37\x2f\xea\xde\x57\x4a\x22\x4f\x3a\x84\xf9\xec\xc2\xf3\xfa\xae\x2c\xd2\x7a\x29\x8b\xbc\x38\xa5\x7f\x36\xb0\x5f\x14\xa7\x73\x0d\xfb\x68\xf2\xb1\x62\x42\x0c\xa4\x6a\x88\xab\x4b\xe2\x18\x02\xda\x03\xcc\x9f\x6d\x4d\xd4\xed\x9d\x6e\x14\x0b\x30\xb9\xd5\x0b\xfb\xce\xb2\x6c\xcc\xf5\x25\x13\x46\xb4\xb4\x40\xb3\x2d\xae\xb6\x51\x7c\xdf\x2e\x57\x7c\x9b\xa2\x19\xf3\x11\x4a\xa4\xfb\xb3\xb5\xf5\xfb\x26\x3f\xa4\xae\xc4\x39\x0e\xfd\x13\x1e\x88\xb8\x0b\xfd\xed\xce\x75\x3b\x15\x99\x08\x62\x90\x4e\x15\xd4\xa6\x77\x34\x6b\x43\xc0\xc3\xb4\x58\x92\x08\x1f\x7c\x32\xc4\x60\x4d\xbe\xaf\x60\x1a\x01\xe9\xb3\x87\xc5\xfe\xfe\xf9\xfb\xd3\x1d\x2a\xda\xef\x67\x77\x77\x9b\xe5\xd6\x25\x02\x12\x49\x03\xab\x99\x6c\x7b\x13\x8d\xd4\x54\x77\x58\x12\xdf\x91\xa9\xf3\xda\x75\xce\x8e\x6f\x44\x79\x31\x62\x10\xbb\x20\xe6\x6e\xf5\xf4\xec\x2e\xa0\x20\x40\xfd\xef\xd5\xd3\x6e\x72\x7f\xe0\x9b\x56\x88\xed\xfc\xcb\x62\x82\x2e\x4a\x40\x9a\xca\x83\xc5\xd7\xcd\xca\x92\x5f\xba\x63\x3a\x70\xe4\xaa\x77\x69\x85\x9f\x11\x2d\xc7\x73\xde\x8f\x48\x62\xdb\x8b\x7e\xc7\x6b\xbe\x2b\x1e\x06\xfc\xbe\x1f\xa1\x18\xec\xb9\x5a\x44\x18\x24\x7d\x81\xfa\x0b\x3f\x89\x0c\xca\xc5\xb1\x48\xaf\xf0\x31\x89\x06\xe3\x35\xa0\x01\x72\xfc\x91\x9f\x21\x8a\x12\x0d\xcc\xa9\xe9\xce\x67\x53\x08\xa8\x1b\xa3\x13\x44\xae\xb4\x11\xe7\xd7\xe5\xe6\x79\xe0\xcd\x72\x0f\x42\x70\x88\xcd\x22\x53\xd7\x52\x84\x92\x93\x50\x85\x48\x27\x92\xa9\x55\xfe\x9a\x9a\x66\x18\x77\xbe\x2f\x12\x03\x87\xb5\xfc\x45\xce\x03\xb9\xf9\x1e\x38\x8d\xa2\x44\x75\x64\xb3\x3d\x5f\x20\x94\x43\xca\xb5\x7e\xb8\xf4\x13\xe9\x78\x23\xab\x11\x83\x8e\xe4\x81\x4f\x1d\xa1\xa1\x6d\x7f\x1c\x3d\x35\x0f\x82\x10\x59\x5f\x5e\xa0\xfe\xb3\xe1\xee\x7e\xc3\x20\x44\x08\x78\x1f\xae\x4e\x1f\x37\xd4\x26\x23\xb8\xe5\x1a\xd0\xab\xf9\x0a\xd9\xb9\xdb\x48\x79\x14\x73\xf4\xa9\xf3\xa2\xb6\xfa\xde\xaa\x3b\x04\x11\xae\x31\x8e\x15\x8e\xa9\xdd\x1e\xdd\x7c\x1c\x84\x08\x9e\x99\x17\xe2\x91\x97\x19\x5c\x06\xe9\x16\x1e\x87\xd4\x36\x5f\xf2\x52\x1e\x9f\x0a\x35\xf1\xd8\x79\x1c\x6b\x6c\x7a\x7c\x49\xf3\x83\x2a\x4e\xd5\xfc\x62\x73\x1d\xe3\x27\x89\xa5\xa1\xb6\xc0\x44\xd8\x00\xf3\xc5\x39\x27\x0e\xf1\xf0\xd0\xb8\xb8\x73\x7c\x2e\xe7\xb1\x76\x6a\x7d\xf5\x31\xad\x9c\x36\x4a\x77\x09\x11\x22\x0e\x67\x10\x31\x60\x94\xd3\x1f\xd7\xe8\xba\xb5\xeb\x7e\x29\x0b\xbb\xc6\x13\x77\x58\xc5\x81\xf0\x3a\x79\xe7\xc1\xdd\x0f\x19\x8c\x25\x57\x82\x84\x36\x27\x5e\x67\xb0\x38\xf2\x3c\xef\x31\x9c\x1f\x46\x05\x1f\x20\x88\x6e\x17\xb4\x39\x44\xc4\xb3\xec\x5e\xb3\xb7\x09\xa5\x8b\xe4\x90\x18\x6d\x57\x93\x50\x38\x43\x59\x5f\x3a\x31\x40\x77\x97\xc0\x05\xba\xa1\xe3\x0e\xbd\xd0\x3d\xab\xa6\x81\x0c\x46\x8c\xba\xcb\x0e\x44\xca\x75\x12\x25\x06\xa1\x96\xc1\x05\x4a\xbf\x3a\x16\x6f\xc3\x17\x71\xfd\xbf\xe6\x44\xe1\xf9\xc0\x2c\xf1\x15\xbf\xac\x8f\xbc\x82\x65\xae\xe6\x57\xd3\xce\x8d\x0e\x14\x61\xc6\xfb\x1e\x63\x14\x04\x09\x63\x6c\xd2\xfb\xe1\xd4\x45\xdb\x3f\xf1\x04\xad\x50\x09\xf0\x37\x7c\x64\x52\x10\x48\x10\x05\x2b\x1b\x91\xca\x89\x6f\x21\x7c\xa2\xd1\x47\x5b\x9d\xda\x77\xe3\xaa\x65\x55\x77\x98\x1a\xca\xa5\x87\x42\xbe\x34\x93\xa2\xa8\xf0\x13\x0f\xad\xd6\x62\xb1\x1c\x18\x2c\xe1\x8b\x28\x11\x0e\x3d\x65\x38\x64\xc7\x8f\x4a\x89\x17\xdb\x39\xf3\x50\xbc\x5d\xcb\x2b\x48\x41\xa9\x01\x5e\xcc\x79\x95\x9a\x7e\xa2\xc7\x62\xc0\x3c\x33\x19\x1c\x52\xc3\x56\x04\x69\x76\x97\xbe\x7e\xf0\x7e\x03\xdf\xa4\xd7\xd7\x77\x6e\x0f\x14\x01\x23\x60\x37\x39\x03\x83\xbf\x55\x26\x15\x81\xa0\x28\x9d\x89\x5e\x4e\xbb\x46\xb3\x42\xbe\x8c\xb7\x79\x11\x05\x26\xe3\xa0\x40\xd4\x4e\xbe\x4b\x8a\x88\x87\x5e\xe0\x3c\xfa\xac\x28\x6f\x25\x07\x44\x04\x0a\xf5\xa3\xa1\x92\xfc\x3c\x31\x23\x22\xd2\xa6\xbe\x60\x3d\xee\xef\x86\x8a\xcc\x5d\x3f\x0e\x38\xfa\x85\xa7\xc3\xa9\x36\xac\x79\x13\x8f\x6f\xf2\x0a\xe2\x30\x71\xc4\x6f\xf3\x32\x55\x07\xc3\x69\xa4\xb9\x84\xca\x92\xc6\x77\x57\x0e\xad\x46\x12\x12\x68\xe6\x4d\xb5\x3c\x7c\x50\xb5\x14\x31\x33\xcc\xc1\xa7\x34\xdf\x36\x48\x5d\xd2\x5d\x44\x41\x60\x7d\xbe\xaf\xd8\x9a\x5c\x5e\x53\x82\x48\xc1\xb8\x1f\x99\xed\x31\xd3\x77\x96\x9c\xc0\x5d\x21\xa1\x44\xdb\x89\xe2\x5a\xe8\xdb\x68\x30\xcd\xb2\x51\xc1\x49\x24\x09\x43\x67\x23\xcd\xdb\x90\x71\x42\xf1\x21\x45\x22\x09\xb6\xaf\xad\xaa\xaa\xf9\x18\x2d\x24\x38\x0d\xd1\x94\x1d\xb2\x42\x38\x75\xe3\xc9\xd6\x23\x78\xe4\xe1\xd6\x23\xd2\xfa\xc4\xab\x17\xd3\x43\xf3\xd1\xf5\x62\xc3\xe3\xe3\xe8\xa4\xdb\x5b\x6b\xca\xcb\xf4\x8a\x2a\x09\xc9\x50\x36\xd1\x65\x5f\xee\xcb\xe2\x34\x76\x69\x05\xd7\x12\x3f\xf8\xfa\xc8\x4b\x7e\x2a\xca\xee\x80\x20\x51\x68\x14\x33\x9f\xf3\x79\x51\x96\xc5\x24\xc9\x29\x44\x12\x60\x1d\x43\x43\x2d\x8f\xa6\x95\xf2\xbe\x28\x1f\xa1\x8d\x9c\xf3\x7a\x7e\xc1\x4a\xf2\x64\xf2\x49\x5f\x45\x36\xa0\xdd\x9f\x10\xa6\xb6\x4f\x5b\xc3\x3a\x19\xc5\x62\x44\x75\xd9\x57\x8e\x2e\xdb\xae\xb0\xce\xf4\xb8\xd7\x53\x0a\xa9\xa5\x8c\x87\xe9\x80\x2f\xc5\x2d\xaa\x37\x89\xc4\x41\xda\xf6\x52\x7c\xb0\xa0\x55\xac\xb8\x11\xb8\xa8\x9a\x13\xac\x16\xce\xf5\x14\x4a\x6b\x8c\x40\x9a\x5c\x64\x3d\x3c\x4f\x40\x08\x5a\x4d\xf0\x31\x4e\xe6\x52\x0a\x4d\x04\xea\x58\xc0\x20\x15\x3a\xeb\x26\xa2\x8e\x29\x47\x05\x30\xab\xf9\x5a\xf6\x94\xd7\xe3\x9b\xd2\x09\x20\x44\x72\x48\x1f\x65\x0e\x49\x2f\x00\x84\xd4\xe7\xf0\xb6\x41\xd5\xa4\xf1\xa9\xd2\x93\x21\xe6\x89\xe0\x1d\xf7\xb0\x7d\x5a\xb8\x33\x89\x34\xa4\x65\x28\x64\x5b\x1f\x4b\x30\x0c\xd4\xcb\x3f\xc7\x56\x48\xfa\x81\x89\x9d\x97\xef\xdf\xf2\xe2\xfd\x76\x98\x21\x7d\xc6\xf1\x36\xe6\xea\xdc\xa1\xdb\x1d\xf5\xec\x40\x4b\x40\x4a\x5f\x48\x7c\x8d\xb3\x63\x0a\x99\x5a\x34\xe5\xf8\x71\x28\xf5\xfc\xa0\xd3\x91\xa8\x52\x05\x79\x0d\x77\xf0\x08\x15\xff\x5b\x8c\xc4\x68\x79\x4a\x2a\x12\x6c\x45\x9c\x17\xc5\x0b\x96\x11\xed\xdf\x03\x3f\x51\xd2\xed\xca\xad\x77\x31\x64\x92\x93\x32\x88\x63\x4c\xa8\x9b\x57\x7d\xcf\xab\xe3\x34\x11\x42\x3a\xc1\x03\xe2\x5e\x72\xc0\x29\xd6\x33\x17\xbc\x1c\x3d\x4d\xa0\xa8\x32\x82\xa4\xf9\x2b\x94\xf5\x53\x73\xda\xf6\x74\x7b\xd7\x39\x6b\x19\x28\x8e\x65\xbd\x9f\x5f\x67\x4d\x7d\x2c\xca\xf4\x2f\x98\x7c\x8c\x30\x4e\x90\x77\xc0\x10\x67\xfe\xa3\x10\xb7\xba\x2d\x06\xff\xef\xaa\xab\xb2\x0f\x78\x65\xa8\x14\xba\x20\x7b\x93\xda\x30\xdf\x6d\x86\xae\xed\xc4\xa7\x96\x31\xe5\xa6\x82\xca\xd3\x0a\xee\xf8\x85\xba\xfb\x89\x03\x1f\x0b\x5b\x43\x12\x6a\x57\x8e\xbc\x99\xee\x91\xb1\x4a\xb0\xaf\x1d\xf1\x41\xf3\xb4\x54\xd5\xe4\x11\x63\x1d\x23\x4e\xbe\xab\xe2\x4f\x66\x34\xf3\xcd\x7e\xb3\xcc\x8b\xe6\x70\xc4\x60\xa9\x9a\x0e\x09\x8c\x68\x2c\xe4\xaf\x90\x15\x67\x03\x23\x9a\x3e\x53\xe2\x27\x58\xe2\x7f\x49\xb3\x6c\xfb\xe6\xda\xe2\xa5\x4c\x82\x08\x8b\x9e\xcf\x59\xfa\x3a\xfa\x9a\x89\x60\xe8\xd4\x28\xc3\x5f\x64\x4b\xf3\x93\xab\x72\x22\xa3\xc0\x09\x1a\xe5\x2e\x88\xbf\x56\x06\x91\x92\xc7\x1c\x73\x1d\xff\x6c\xa0\x81\x3b\x38\xf1\x5c\x41\xb5\xcc\x17\xbd\xc8\xac\x94\x1c\x64\x62\x19\x5b\x6d\xa0\xd4\x39\xa1\x2e\xcd\xd3\xee\xf5\xd8\x18\xbf\x05\x44\x3b\x59\x4f\xac\xb8\x7a\xff\x63\x43\x27\x85\x90\x91\x2d\x55\xa4\xa7\xe6\xb4\x2e\xde\xa0\xfc\x7e\xde\x62\xc6\x43\xfc\xe5\x6e\xa0\x75\x72\x31\x71\x56\x97\xc0\x4f\x69\x7d\x99\x78\x7a\x52\x0a\x1f\x53\x11\xd8\xfc\xb3\xe6\x0e\x7f\xc3\x06\x73\xd0\xac\xcb\x1b\xd3\x5d\x2a\x13\xf5\x1e\xa0\xde\x36\x27\xb3\x35\x3e\x6b\xbb\xdf\xeb\x26\xdb\xd6\x70\xee\x5e\x85\xf2\x04\xee\x68\x18\x13\x36\x79\x6d\xb3\x99\xee\x68\xac\x58\xd4\x41\x2f\xa0\xbc\x2e\x30\xf7\xce\x81\x54\x2a\x41\x3f\x77\xdd\x9c\x3e\x13\x1f\x96\x52\x13\x6e\xd5\xd5\xe0\xcc\x4b\xf8\xbe\x71\x3d\xd4\x48\xad\xd8\xbe\xf4\xc7\xd9\xd3\xd7\xd9\x6e\x37\x7b\x5a\x6f\x9e\x7f\xfb\x9d\x78\xbb\xaf\xb3\xc7\xed\x6e\xf6\xc3\xc1\x94\x94\x47\x8c\x23\x72\x80\xd3\xd7\x73\x8f\x99\xea\x0f\x47\xde\x70\x83\x18\xaf\x05\xe5\x05\x09\x72\x71\xba\xd4\x04\x58\x9c\xfd\xed\xcd\x4b\x79\x2c\x88\x86\xc2\xb4\x7b\xa8\x8f\x7b\x5d\x16\xa7\xbd\x9c\xd2\xa7\x4d\x4f\x14\x88\x4a\x5a\xc0\x2b\x97\xe3\x6c\xfe\x64\xa0\x0c\x09\xe9\x61\x23\x8f\x69\x5e\xcf\x72\xb5\xe6\xd7\x0d\x90\xe3\xf3\x88\x17\x19\x52\x67\x4c\x00\x6c\xa0\xdd\x2e\xd3\xfc\x30\x4f\x4d\xdf\xf3\x64\x70\xe2\x21\x31\x88\xb1\xc1\x53\xd5\x0e\xa9\x08\x27\x3e\x19\x94\x48\x3f\x6a\x28\x1a\x5b\x1e\xe5\x7b\x3e\xba\xdc\xa7\x34\x6f\x1d\xbf\xee\x25\xfb\xbe\x4f\xc8\x50\x99\xcb\x48\xa8\xf6\xca\xef\xd3\xeb\xd0\xd8\x8b\x1d\x47\x52\xcf\x22\x33\xc0\x5c\x2a\x2a\x45\x38\x84\x1e\xef\xeb\xeb\xf6\x2a\x15\x90\x18\x2b\xed\x86\xf8\xd4\xd6\x06\xa6\x2a\x10\x52\x05\x34\x42\x08\xf0\x97\xe5\xd3\x6e\x36\x50\x87\x96\x2a\xd0\x02\x5b\x47\x77\x29\x94\x7b\x47\xe1\x6b\x8f\x85\xd2\xb0\x68\x57\x50\xcf\xaa\x76\x55\x0c\x51\x68\x2a\xf6\x7c\xa7\xb7\x3f\x73\x30\x49\x84\x91\xdd\x9e\x1e\x71\xc8\x94\x53\x77\x7a\x7e\x7e\x30\xaa\xf6\xfe\x28\x60\x56\x71\x6c\x38\x33\xcd\x47\x5b\xe5\x46\x57\x67\x5d\xa2\xb0\x29\xa8\xa5\x4a\x47\x78\xe8\xbf\xdb\xcc\x3f\x8a\xe1\x3f\x6b\xa5\x50\x2c\x00\x84\x18\xce\xd6\x6b\x9c\xc4\x11\x71\x6d\x12\xed\x8a\xc7\x40\xcd\xd2\xba\x18\x63\x3a\xec\x33\xf9\xe0\x92\x9c\x80\x83\xf4\x74\xcd\x57\xc5\x38\xe4\x98\x9e\x11\x72\xcc\xbe\xb4\xde\xe8\xba\xa8\x60\x3e\x20\x12\xfe\xe8\x47\xa4\xc2\x94\x16\x02\x42\x27\xb3\x84\x83\x46\x30\xfc\xbe\xea\xb1\x94\x8a\xeb\x00\xcb\xf0\xb3\xcd\x62\xf1\x49\xb7\x92\x12\x81\x06\x9b\xbb\x5c\x62\xeb\xb0\x84\x2b\x37\xea\xef\x19\x9a\xa4\x12\xdc\xf4\x77\xd7\x43\xd8\x53\x1b\xbd\x77\xf9\x31\x25\xa4\x51\xa8\xe4\x4a\xfd\x40\xa5\x9c\xc9\xa2\x56\x3e\xc4\xb6\x0c\xf6\x15\xca\x62\xd4\x95\xd7\x8f\x02\xe9\x3b\x39\x69\x9b\xbc\x27\xcc\xfd\x02\x40\x82\xbc\xe9\x9b\xa6\x3a\x0e\xd2\x66\x4a\x13\x16\xdb\x88\xe2\xb9\x6b\x81\x53\x3a\x50\xa8\x1f\xf8\x49\x43\x8e\x1b\xc9\x38\x22\x2e\x7e\xee\xe6\x4f\xc3\x0d\x5f\x69\x4e\x9d\x4a\x41\x6b\x97\xef\x8b\x72\x5d\xa6\xaf\x69\x06\x53\x64\x0e\x78\x01\x0c\x48\x1f\x1c\xd7\xfc\xed\xce\x05\xf0\x89\xc9\xe2\x69\x43\xdd\x60\x56\xe6\xd8\xf0\x83\x2f\x63\x04\xf7\xcd\x10\x2c\xc9\x8d\xbe\x4b\xcd\xdb\x37\x7b\xdb\x2a\x01\x25\x0c\x6b\xd9\x6f\x43\x3c\x0a\x1b\x32\xe3\x4c\xff\x5f\x77\xa2\xc6\x4c\xf0\xb6\x6e\xd4\xb5\x8e\x87\x04\x9a\x44\xf8\x7a\x72\x78\xaf\x6d\x40\x3f\xb9\x59\xaa\x03\xac\x67\x7c\x5f\xef\xdf\xd2\x7c\xde\x31\xce\x4b\x08\x89\x8c\x9d\x64\xcf\x13\xbc\x19\xbc\x5f\x35\x33\xf0\x6d\x1b\x26\x74\x83\x23\xe6\x63\x45\x6e\x0e\xd8\xaf\x36\xa4\xf3\xb8\x39\xbb\x81\x79\x80\x04\x46\x26\x82\x79\x2b\x56\xf9\x6b\x6b\x3d\x67\x58\x83\xbb\xe7\x59\xe7\x1e\x00\x0b\x3c\x14\x9d\x73\x2f\xe7\xa9\xa8\x67\x37\x28\xb4\x25\x30\x2d\x31\x4d\xfc\x50\x1c\xee\x8b\xf2\xc5\x36\x2e\xde\x8c\x30\x20\x89\x8c\x76\xd1\x99\x5f\x46\xd6\x15\x12\x30\x78\xf1\xbd\x68\xca\x1c\xb9\x32\x0e\x1f\xf4\xa8\x01\x27\x3e\x32\xdc\x2c\x1e\x77\x3b\x97\x87\x03\x11\x4a\x74\x34\x53\x59\x60\x9a\x84\x8c\xa8\xd9\x24\x08\x9e\x78\x1d\xd6\xf6\x27\xc0\xcb\x7d\xc7\x09\x25\x41\xfa\x31\xb3\xa0\xb8\x9a\x1f\xa6\xcf\x27\x25\xb3\x8d\xd6\xb5\x85\x27\x4f\x06\x28\x0f\x30\xcd\x96\x9a\x5a\xc9\x20\x7b\x0c\x2a\x94\xa8\x69\x6e\x4b\xe4\x85\xea\x8f\x00\x31\x04\x2d\x86\x18\x57\x7d\x81\xda\x40\x28\xab\x95\xc3\x3c\x01\x90\x18\xab\xdc\x8f\xa0\xf2\xa6\xfb\xe6\xda\xe7\xe8\x1e\x71\xa5\x1e\xf8\x35\xe3\xac\x1b\xc5\x98\x25\x2e\x42\x58\x36\x8e\xb4\x9f\x64\x3c\x2e\x91\xda\x24\x2c\x9e\x9a\xd3\x3c\xe3\xf2\x65\x98\xd0\x01\xcd\x43\x7c\x6f\x6f\x63\x70\xee\xe8\xab\x6a\x12\x1b\xf6\xf6\xad\xe4\xa7\x81\x95\xd1\x3e\xa1\x58\xf8\x9b\xe5\xe9\x09\xc6\x07\x14\xee\xcf\xcb\xdd\xe2\x2b\x55\x3f\xba\x3f\xcb\xd8\x37\x64\x9e\xa7\xaf\xbc\x54\x0b\x7e\x76\x09\x62\xc7\x00\xa4\x29\xf1\x2d\x8a\x33\xcb\x7e\x16\xd9\xcb\x72\x02\xaa\x1a\xaf\x70\x4d\xc3\x08\xa7\xc5\xb9\x2c\x4e\x45\xbb\x2c\x6c\x7f\xf8\x07\x99\x27\x1d\x10\x3f\xe8\x21\x0d\xad\xe3\x9e\xe6\x4d\xd1\x54\x77\xa6\xdf\xcd\x95\xc0\x74\xc0\xba\xa2\xe3\xca\x0a\x35\xdd\xe8\x06\xd7\x01\x63\xdc\x35\xc0\x18\x3f\x69\xee\x5e\xf0\xc0\xa9\xd7\x41\x42\x3c\xdb\x77\x6e\x36\xcc\x5d\x31\x93\x7f\x36\x29\xcf\x91\xef\xaa\x1a\x49\x8e\x49\x1d\x48\x81\xb4\xf2\xfb\x91\x36\xcb\xdf\x71\xf0\x4a\x1d\x06\xa6\x1d\x47\xa4\x93\x4a\xa5\x0e\x43\x89\x70\xde\x8a\x9f\xce\x19\xcc\x8b\x22\xdb\x20\x99\x65\xf7\x93\xa1\x8c\x88\x85\x69\xff\x80\x32\xd5\xe9\xa0\xd6\xd6\xfb\x70\x3a\xf2\x04\x8b\x5c\x45\x54\x7f\xda\x12\xa8\xa3\xc8\xc3\x4b\xbe\x39\xba\x1f\x27\x7e\x9e\xd7\xd5\x7d\xc6\x0f\x93\x5b\x8c\xa2\x04\x65\xfe\x64\x06\xbc\x1c\xcc\xe6\x7f\xff\xe7\xd7\xc9\xdb\x8c\x34\x41\xb4\xd0\x62\xfe\xc3\x65\xa2\x74\xcc\x42\x9c\x59\xdf\x67\xeb\x5b\xdf\x89\x49\x39\xcc\x48\x99\x4f\xe5\x16\x9c\x4e\x68\x60\xa0\xda\x46\xed\xc0\x85\x05\xe8\xc7\x4c\xb5\x58\xa4\x4e\x82\x24\x18\x3d\xd7\xa0\x43\xb3\xbb\xc7\x44\x05\xf2\xca\x3b\x4c\x46\xde\xa1\x4e\x80\x22\xe3\xcb\x6e\xa0\x8e\xf6\xc1\x6a\xd7\xdc\x33\x64\xe9\x03\x62\xeb\x79\xd3\xcd\x56\x1e\x9b\xf6\x9e\xb4\x9a\xb6\x00\x45\xc1\x64\x8e\x70\x45\x7c\x36\x82\x09\x0d\xa4\xca\xf1\x89\x6f\x31\x05\xda\x93\x25\x37\xce\xf5\x53\xf1\x3a\x94\x87\x96\x5a\x85\x0a\xcb\x3a\xb8\xd7\x58\x94\xd0\x47\x4b\x56\xf1\xa8\xd7\x9b\xcc\x8a\xb2\xfa\x2d\xf8\xc5\xe6\x90\x82\x3e\x1e\xf6\xbd\x49\x6f\xb5\x56\xca\x43\xa7\x6f\xbe\x78\xea\x7e\x56\x83\xb1\x3f\xbf\xad\x5c\xa9\xa1\xfd\x8b\xb2\xd6\x13\xad\xdd\x90\x68\xca\x0d\x89\x24\xce\x62\x0c\x1f\xf7\xf5\x40\x23\x51\x6a\x1d\x52\x64\x98\xcc\x3b\xbd\x0b\x3c\xa0\x3c\xcf\x03\x2c\x79\xff\xf8\xbe\xde\xaf\x97\x1b\x84\x2c\xaf\x37\xcb\x3d\x02\x37\x36\x33\xd7\x84\xa3\x3c\x4f\x6b\xcc\x96\xa6\x95\x45\x70\x61\xf8\x32\x80\x55\x28\x8f\x40\x8c\x00\xc0\x25\x2f\xb3\x8b\x5d\xfc\x06\xdd\x3c\x4e\x55\x2a\x8f\x32\x69\x3c\xb6\xe5\x76\x47\xdc\x2f\x04\x96\x37\x06\xcf\x2b\x1a\x17\x26\x0d\x1a\xcd\x95\x17\x5a\x75\x5d\xdc\x7e\x50\xfb\x6e\x78\x03\x61\x60\xf2\xf4\x2e\xd7\x7f\x33\x83\xa9\xbc\x88\xc4\x58\x15\xd8\xdf\x62\x3e\x77\x63\x28\x60\x33\xe4\xfd\xea\x7e\xeb\x56\x78\x79\xb3\x71\x52\x79\x51\x42\x5d\xab\xd1\x2c\x3f\xd8\xea\xa5\x65\x77\x50\x5e\xc4\x89\x0a\x3b\x54\x51\xeb\xee\x74\x4c\xe7\xb7\x00\x5a\xca\x8b\x49\x80\x79\xc9\xfa\x00\x5b\xa8\x1f\xba\x0d\x5f\x79\x71\x22\xb0\xc4\x67\xc0\x44\x1d\xf7\xeb\xf8\x6e\x62\x11\x19\x4a\x43\xb3\xee\xbf\xe7\xe9\x15\xbd\xf4\xa7\x06\x57\x79\xb1\xd6\xe8\xd4\x64\xf9\x5e\xa7\xef\xa0\xe8\x3e\xcb\xcb\xd6\x3b\xbf\xb5\x7c\x94\xc7\xa8\x8f\xce\xba\x00\x59\x9c\xc0\xea\x15\xb8\x63\xcc\xe3\x43\x1d\xd1\xef\x79\x47\x7a\x3e\xf6\x57\x94\x97\x50\xe3\xea\xa4\x15\xce\x2c\x9b\x16\xad\xaf\xd2\x0d\x6e\x78\x1c\xc4\xa4\xef\xd4\x1b\xd3\x50\x75\x63\x12\x04\x9e\xdf\xc1\xc9\x24\x21\x86\x56\x61\x72\x39\xcd\xb0\x49\xc6\x26\xef\x41\x70\xf9\x72\x45\x1d\xa1\x3c\xe1\x4b\x24\x31\x3b\x1b\xec\x3e\xb2\x65\x7e\x70\x45\xe9\x49\x6a\xf6\x5a\xc4\x6c\xc1\xa2\xe4\xe2\x0b\xe4\x16\x74\xd9\x59\x5e\xe5\x49\x02\x98\x71\x7d\x43\xcf\xb2\x13\x4e\x54\x9e\xd4\xd2\x97\x8e\x6c\xc2\x2e\xdc\x6d\x23\x8c\xa8\x9c\x1d\xa3\x3c\xee\x4a\x72\x3b\xd3\xad\x72\x38\x64\xf0\x85\x9f\xe0\x2e\x7d\xad\x2c\xe5\x5e\x3f\x3a\xd1\x98\x17\xe1\x7f\xf1\x3a\x3d\x57\x03\x63\xa7\x3c\xa5\x13\x61\x7d\x83\xde\xb6\x93\x6e\x75\x82\x67\x96\x6c\xf7\x43\xb3\xe7\x61\x3a\x5d\x79\x10\x32\xfc\x20\xad\xa3\x7f\x1e\xa0\x94\xdc\x61\xad\x95\x81\x39\xbf\x16\x2f\xf0\xb1\x3c\xee\x64\x6d\x69\x12\xa3\x32\x50\xd3\x4f\x1c\x6c\x47\xef\x1e\x49\xb3\x18\x5b\x45\xad\x78\x36\x42\xac\x6d\x35\x0a\x1d\x42\x6f\xf8\xaa\xb5\x88\x30\x87\x5d\xbb\xcd\x06\x46\x0a\xae\x8a\x78\x51\x82\xb0\x89\xbd\x9d\x56\x8f\x29\x66\xca\xc7\xc9\x34\x1b\x41\xbb\x7b\x24\x1e\xf3\x30\x71\xf0\x3d\x4f\xb3\x62\x88\x54\x54\xc4\xd3\x8a\xb3\x4e\x71\x7d\xaf\x01\xf6\x0a\x8c\x4c\x5e\x57\xe7\x55\x84\xb0\x38\xf6\x7a\xd6\xe3\xf1\x9c\x23\x24\x31\xe4\xfe\xcb\x13\x94\x07\xc8\xe5\xe5\x7b\xbe\xe6\x8d\x8b\x78\xf0\xb8\xe3\x3a\xb3\x93\x64\xf7\xfe\xc8\xcf\xc3\x5d\x59\x11\xc2\x39\x76\x4c\xb9\x85\x78\x0f\x30\x15\x97\x52\x84\x68\x2f\xb1\x51\xf0\xee\xdd\x64\x8b\xbe\xfd\x3c\x8e\xed\x0b\xf1\x13\xae\x8d\x6f\x0a\xaf\xf3\xbe\x3e\xa6\x88\x0f\x31\x32\xf1\xfc\x05\xd2\xfd\x89\x92\x30\xea\xe8\x1c\x0d\x85\xe2\xf3\xdb\x74\x37\x20\x34\x20\xcc\x26\x5e\xb8\xc9\xd6\x54\x97\xaa\x86\xd3\x6d\x7b\x43\x68\xa2\xb5\x51\xf8\xfa\xa3\x78\x19\x74\xba\x29\x12\x78\x86\xd2\x2a\xcd\x2d\xab\xb0\xbf\x46\xbc\x46\x77\x3c\xd0\xcc\x28\xeb\x97\xf0\x0a\x79\x0d\x6a\x7e\x79\xe2\x86\x72\x37\xad\x2f\x57\x1b\xeb\xe4\x87\x83\x90\x19\x76\xc2\x82\xab\x6b\xdb\x40\x02\x4d\x68\xd0\xe1\x77\x8b\x5f\x6e\x48\x1c\x2a\x12\xd2\x00\x2b\x31\x2e\x3c\xb5\xbc\x92\xe3\x2b\x45\xb1\xef\xe0\x24\x33\xad\xd3\x2c\x45\xde\xfb\xba\xfb\x4e\x11\x97\x3c\xea\x8c\x95\x6b\xbe\xb8\x49\xba\xa2\x48\xec\xc9\x50\xb9\xdb\xd2\xe3\x59\x11\x47\x61\x18\xf5\x29\x2f\x23\xc4\xfd\x21\xab\x97\x22\x2c\x09\x62\x3a\x74\xb3\x66\x39\x0a\x8b\x7e\x42\xce\xa2\x08\x83\x00\x13\xdf\x16\x4b\x35\xcb\xd5\xbc\xb9\x74\xcf\xa5\x3e\xc4\xfa\x5c\x35\x57\x29\xc2\x13\x8d\x3b\x77\x09\x82\xd7\x60\x3e\xee\xde\xbd\x15\x2e\x4d\x4a\xb0\x63\xa9\xe9\x31\x30\x8a\x08\x4f\xab\x11\x24\x5c\x35\xb2\x9e\x0a\xf3\xdc\xca\x88\x29\x22\x82\xc8\xc8\xe1\x59\x2f\xbb\x6f\xe1\x51\x44\xb0\x24\x08\x7b\x24\x29\xa8\x0d\x28\x80\xdb\xc9\x55\x45\x84\x30\x50\x0d\xd3\xd0\x85\x76\x7c\x96\x2b\x33\x05\x66\x59\x36\x99\x05\x02\x12\x74\xa7\x78\x53\x17\x67\x7e\xe9\x04\x15\x14\x91\xd4\xa8\x1c\xa5\xd5\x23\x7f\xc7\x92\x4e\x27\xc4\xff\xa5\xe0\xd9\x48\xfe\x5d\x11\x19\xa8\xc0\x08\x8a\x5d\x66\x39\xcf\x2e\x55\x7a\x1d\x79\x8d\x5f\xb3\x22\x01\x78\x1d\x87\x12\x94\x6e\x86\x3d\xa4\x2f\x3d\x5a\xa8\x7b\x3f\x4a\x49\xf4\x0c\x75\xfa\x0a\xbf\x03\x2f\xbf\x94\xbc\x7f\x41\xe0\xa9\x80\x59\x00\xec\x24\x33\xf7\x37\x4e\x89\xbb\x00\x0d\x2d\x7a\xa6\xe6\x59\xdf\x9f\xdb\x5d\x3f\x0a\x90\x34\x0f\x75\x8c\xf6\x3f\x97\xcb\x6f\x74\xd8\xb0\xaa\x08\x88\x00\x8b\x49\x8f\xb3\xdd\xbe\x17\x3b\xb2\xb2\xab\x03\xb9\xd5\x76\xa4\x46\x15\xdb\x1c\xde\x1d\x60\x75\xc8\x03\xad\x08\x80\x48\x4c\x16\x5f\xc1\x09\x5b\xe3\xe7\x4d\x79\x3b\x63\xa5\x88\xf6\x19\x62\xce\x54\xb1\x6e\xaa\xe3\x47\x83\x14\x73\xe8\x47\xe4\x79\x32\xd0\x8b\xd9\xa1\x04\xa4\xda\xda\x0d\x64\xc5\x26\x9f\x48\x6b\x40\x4c\xd7\x5e\x22\x09\xd4\xb8\x6e\xa2\x7c\x2f\x08\x1c\xe6\x13\xcd\xc2\x4c\xa9\x72\x96\xab\x45\xf9\xd6\x71\x46\x7c\xc4\x95\xfa\xeb\xc4\x3f\xf1\xbd\x20\x42\x9f\xc7\xaa\x74\xa6\xa7\x1b\x8d\x12\x6e\x68\xe2\x05\xcc\x95\x44\x27\x98\x46\xe5\x7b\x82\x92\xc0\x51\x31\xda\x0e\x86\x21\x57\x84\xf2\x89\x47\xa3\xc4\xf1\x15\x3f\xf2\x77\xf3\xbd\x8f\x25\x54\xc7\x8e\x1f\xbe\x1d\x65\x1a\x67\x10\x73\x5d\x94\x29\x54\x43\xd6\x46\xe5\x13\xea\x33\x83\xfd\xe0\x25\xa8\xe5\xfb\x19\xf2\x6e\xb7\xf4\x89\x32\xb2\x29\x07\xc4\xe9\x42\x9f\xa0\x50\xbe\x4f\x43\xa4\x77\xde\x67\xc0\xcf\xed\x4c\xae\xe6\xa0\xa7\x42\x22\xca\xf7\x65\x84\xec\xa8\x02\x0f\xee\x31\x25\x79\x82\xfa\x58\xa8\xbd\xc3\x0f\xb5\x57\x9d\x5f\xa8\xe7\x79\x9e\xbb\x38\x95\x46\x16\xc9\x8a\x86\x9b\xf6\x64\x77\x30\xf0\x24\x6e\x69\x3f\x8b\xf2\xa5\x3a\x3a\x15\x1e\xe5\x07\xa1\xe1\x96\x35\x1c\x19\x06\x43\x59\x8d\x4c\xb8\x1f\xb0\x00\x11\x5e\x73\xe0\xaf\x50\x0e\x76\x43\x3f\x60\x60\xaa\xeb\x4d\x99\xd3\x4f\xcb\x12\xca\x0f\x64\x80\x3b\xff\xfe\xcc\x2f\xed\xf6\xf6\xac\x75\x05\xf5\xe4\xc1\x03\x08\x50\x5a\xb3\x3e\x82\x6d\x7a\xb7\x07\xc2\x30\x42\x1f\x6c\x59\x1f\x1f\x8b\xbc\x58\x17\xd9\xc4\x13\xf7\x23\xdf\x13\x26\x32\xe3\xd9\xb2\xaa\x31\x1f\xd1\x9c\x8b\x61\x03\x8c\xf2\xa3\x88\x29\x87\x08\xb1\xc1\xf6\x95\x7c\xcf\xe4\xbe\x63\x2a\x7c\xaf\x93\xda\x36\x7c\x97\xee\x72\x71\x18\x60\x41\x7b\x00\xa5\xd9\x15\x3b\xfe\xde\x1d\x8f\x0d\xfe\x15\x41\x6c\x27\xa3\xa7\x39\xcc\xee\xb6\x23\x38\x02\x4b\x9a\xdc\xf1\x4a\xae\xad\x1e\x64\x39\x79\x3e\x16\x7b\x58\xe1\x7f\x58\xcf\x56\xa3\x67\x4a\xfc\x30\xb4\x18\xb6\xc5\x76\xb1\xdc\x2c\x62\x9f\x4c\xce\x4d\x24\x77\xbb\xbd\x13\xdc\xcd\x78\x35\x52\x2e\x56\x3e\x27\x86\x47\x17\x5b\x7c\x67\x4a\x7d\x90\x52\x51\x3e\x67\x12\x29\x6b\x9b\x7c\x98\xc9\x29\xa7\x1c\x13\x0a\x35\x41\x30\xf1\xf0\xfd\x5f\xff\x1a\xdd\x32\x87\xc8\xa7\x7d\xe1\xf7\x1f\xa8\x6f\xd8\xbd\x13\xae\x35\x86\xb3\x9d\x23\x59\x16\xa7\x0f\x5b\x3e\xaf\x3c\x09\x7b\x11\x61\x19\xa6\xd2\xbc\x82\xb2\xde\x15\xe7\x54\xda\x2e\x9a\x70\x1a\x07\xd8\xb6\x9a\xd0\x9e\x29\xa5\xa1\x90\xb3\xbd\xcc\xee\xae\xa4\x32\x2c\xb5\xb2\xc8\x32\x90\xf5\xfe\xc4\xd3\x7c\xdf\xef\x98\xa8\x00\x08\x58\x88\xa9\x9b\x12\xee\xe0\xb5\xe7\x5d\x53\x3e\x04\x31\x2e\xa1\x57\xd3\x5e\xf1\x61\x8d\x79\xf4\x41\x40\x12\x66\xab\xae\xad\x2f\x7d\xb3\xff\xd8\x0e\xd5\xc4\xf4\xae\x18\x03\x6a\xa9\xe5\x51\x09\xd7\x46\x28\xe3\x7f\x06\xd7\x18\xff\xd7\x84\x6c\x78\x7c\xe2\xe0\xe7\x24\x95\xa6\x12\xf8\x47\xa3\xc6\x92\x85\xd3\x81\x82\x39\xd6\x3e\xcc\x06\xb7\x7b\xce\xed\xc9\xa2\xb5\x81\xe9\xaf\x16\x77\x23\x8b\x4d\xbd\x90\x05\xd2\x61\x34\x4b\xb5\x5f\xf0\xf3\xd8\x6a\x50\x3f\xf6\xb1\x96\xa0\x41\x1e\x7f\x14\x35\x6c\xa0\x6a\xb2\xfa\xbe\x28\x17\x3c\x57\xa8\x6d\x33\xbf\x98\x1c\xcf\xcd\x09\x4d\x03\x4f\xc4\xb6\x85\xc6\xb8\x99\xba\x28\x99\xef\x7e\x3f\x8c\x42\x24\x18\x73\xd3\xf1\x79\xb2\x32\x69\xa8\x24\xa2\xd4\x9f\xe0\x0d\xa5\x8c\xa7\xde\xe6\x38\xb0\xb3\x27\x45\x32\xc4\xcd\x5b\x97\x00\xb3\x3c\x3d\xf1\xac\x1a\x10\xae\x29\xca\xa4\x42\x73\xf6\xfc\x96\x83\xb2\xa0\x5a\x2e\xd2\x36\x88\x58\x97\xc5\xfb\xc4\xfa\x51\x26\x01\xb3\x20\x55\x5d\x9c\xd7\x25\xac\x64\xe1\x2e\x94\x78\xca\xf1\x88\xac\xaa\x9f\x80\xda\x7d\xe7\xd6\x29\xee\xf7\x5f\x9a\x24\xa1\xb4\x94\x4c\x5f\xa1\x2c\xd6\xc5\x47\x01\x0a\xe5\x32\x72\x82\x17\x48\x91\x3b\xea\xa9\x1f\xdf\x12\x97\xa6\xd7\x2d\xad\x36\x46\x22\x42\xdd\x17\xe5\x1d\x68\xc8\xd5\x94\x67\x49\x51\x0e\x06\x77\x54\xd5\x81\x7c\xb1\xca\xc2\xe3\x11\xd2\x33\x8a\x68\x6b\x07\xe0\x1f\xff\x9a\xa4\xc2\xc5\x20\x88\xef\xfc\xca\xab\xa3\xc1\xb5\xad\xda\x38\xcf\xca\x52\xb8\xc1\x51\x64\xa8\xf0\xaa\x79\x09\xb8\x56\x06\x93\xea\x73\x6f\x91\x4a\x49\x30\x87\x68\x97\x9a\x61\xc6\xbf\x39\xa5\xa9\x22\x0a\x77\xb3\xa6\x82\x72\x7b\x2e\xf2\xaa\x30\x35\xca\x75\x79\x6d\x5b\xa7\x06\x8c\xaa\x38\x20\xae\x1e\x39\x13\xc5\x2b\x8c\x3c\x10\xaa\x12\x81\x49\xdd\xfb\xe5\xa0\xaf\x5c\x51\x05\x1d\x7e\x7a\x5d\x94\xb5\x2e\xb2\xb4\x58\x0d\x10\xb1\x93\x1f\x01\x2f\xc2\x45\x87\x24\x26\x77\x1d\xd5\x99\xa2\x40\xb8\x60\x5d\xc6\xa8\xa3\xfc\xe8\x0e\x4b\xc2\x63\x47\xdb\x5a\x96\x29\x3f\xc0\x1d\xd4\x3c\x75\xf2\x61\x8a\x6a\x1f\x42\xab\xea\xf5\x02\xcb\xfa\x38\x26\xd5\x1b\xbb\x9a\x54\x73\x30\x28\xf4\x76\xdd\xa3\x76\x55\x51\x56\x28\x46\x6f\x7a\xbe\x3e\xdf\xa2\xa9\x86\x00\xa7\xef\xec\xcb\xec\xc7\x72\xf7\x75\xb9\xb9\x81\x62\x57\x81\xe7\xfb\x68\xb4\x0c\x9f\x77\xcd\xeb\xb4\xaa\x53\xb9\x2b\x3b\x13\x1e\x78\x11\x27\x36\x01\xd5\x1a\xef\x0a\x31\x09\xed\xac\xbd\xfd\xf6\x02\x8f\x09\x74\xd3\x0e\xdc\xba\x71\xfb\xee\x4a\x49\x28\x1d\xa5\xf9\x49\xa4\xad\xa3\x0d\xa7\xf3\xf2\xbd\x5d\x7a\x9d\x5a\x9a\xb3\x05\x01\x21\x09\xaa\xe5\x61\x09\x36\x87\xb7\x72\x90\x7e\x0b\x08\x37\x20\xcd\x03\xd4\xcf\x52\x36\xe7\xeb\x9e\x5d\x15\x10\x15\x75\xb5\x6b\xdb\x97\x66\x4b\x4c\x3f\xd3\xfa\xf8\x04\x6f\x9b\x2f\xbf\x0d\x37\xe0\xc0\x27\xc0\x63\x97\x35\xe9\x04\x43\xba\xa3\xcc\x4f\xec\x24\xfa\x82\xfd\x5a\xba\x70\x4c\x4b\xb7\x7e\xdd\x6f\xa3\x66\x5b\xcb\x33\x22\xe5\xb7\x8a\xa1\x2a\xa0\x3e\xc5\x2e\x6f\x55\x72\xd7\x97\x7c\xfb\xbd\x52\x3f\xe6\x46\x13\xbd\x90\x2f\xf3\xe6\xb2\x80\xb2\x76\xe4\x06\xff\xdd\x2a\x0d\x28\x95\x36\x55\xc8\x4b\xa8\x9e\xf5\x76\xed\xc2\xb5\x20\xf0\x09\xaa\x5f\xcf\x9b\xcb\xa6\xfd\xc0\xed\x46\x81\x21\xcb\xd0\x3e\x07\x01\x97\x98\xe8\x3f\x77\x69\xc4\xe5\x7b\x5a\x59\xf0\x0d\x1b\xcf\xdf\x20\x50\x46\x7d\x65\x8a\x21\x6b\xe3\x21\x9e\x65\x1f\xc5\xc2\x63\xd4\xcc\xe8\xaf\xb7\xb1\x33\x2a\x08\xb4\xa1\xda\x94\xc5\xe9\xdc\xd4\xed\xc2\x5a\xb4\x0e\xdd\x95\x41\x0d\xc2\x36\x28\x6f\xdd\xd6\xd6\x94\xc6\xf1\xf4\xa8\x48\xd4\x48\x1f\xb4\x1a\x6d\x1a\x41\xa8\x3c\xf4\x57\x10\xa2\xbb\x05\x4b\xde\x82\x52\x27\x1f\x3b\xcc\xff\xf3\xbf\x58\xbb\xf2\xec\x4f\x46\x34\x44\x3f\x3b\xe3\x15\x22\x01\x07\x61\x53\x10\x51\x81\x49\x55\xae\x14\xea\x60\x7f\xfe\xed\x63\x62\x58\xac\x0d\x3a\x6b\x07\xef\xed\x17\xb6\xe2\xfb\xa3\xb7\xea\xc6\xb3\x28\x74\x2a\xb5\xe7\x0f\xa6\x24\x0b\x4c\x44\x76\xe6\x97\xa2\xa9\x3f\xc8\x43\x05\x09\x35\x9a\xe9\x8f\xab\xa7\xd5\xd3\x97\xfd\xf3\xf7\xdd\xfa\xbb\x0b\xfe\x83\x24\x26\xc2\xda\x4c\x7c\x9b\x23\x7b\x1e\x24\x09\xc5\x00\x47\xf3\x46\x5a\x22\xcd\x11\x30\x46\x05\x5c\xf8\x9c\x0e\x7d\x29\xd3\x2a\x37\x9e\x89\x5c\x70\xa7\xa5\xd0\xf1\x44\x76\x56\x49\x10\x9f\xf6\xb9\xe9\x81\xd4\xe2\xa4\xc9\x55\x05\x92\x44\xd8\x2c\x04\xa8\xef\x08\xd3\x3a\xd0\xaf\xa3\xa7\x96\xa1\xc9\x7f\x9c\x52\x27\x29\xe0\x0e\x58\xbd\xaa\x0a\xb2\x6c\x9f\x76\x16\x4d\xc6\x31\xb5\xe0\x3e\x95\xd6\xa3\x88\x2a\x90\xcc\x40\x61\x4d\xdf\x7d\xa6\xae\x19\x34\x54\x20\xa5\xc1\x0e\xac\x8b\xf3\x39\x1d\xfc\x9a\xf6\x11\x5f\x8b\x84\x7f\x24\x0a\xbb\xce\xa1\x89\xb5\x55\xcc\xe0\xe3\xbe\xf2\xf3\xd9\x39\x99\x01\x30\xe3\xe4\xd9\xa4\x7c\x57\xc3\xbc\x99\x1a\x09\x80\x7b\xda\x56\x04\x1e\x8b\x57\xb0\x55\xd8\xab\xfe\x3a\x15\x68\x6d\x6e\x15\xda\x7b\x19\x45\xd5\x21\x89\x23\xad\x5c\x4f\x20\x9c\xd2\xe6\x64\x78\x27\xc6\xe4\xba\x2a\x24\x2a\x71\x32\xb9\x8f\xfc\xfd\x16\x6d\xb1\x0a\x7d\x1d\x07\x62\xc8\x11\xfa\x85\x9f\x27\x97\xa1\xbe\x37\x20\xac\xf8\x7f\x26\x47\xf9\x75\xc2\xeb\xa1\x42\x1a\x7a\x86\x20\xa0\x69\x9f\xf5\x27\x4f\x7b\x2a\x5f\x15\xd2\x28\xc6\xfa\xc5\xb7\xd5\xdd\x70\xa7\x09\x29\x33\x88\xa5\xc7\xd9\x6f\xfb\xdd\x66\xf6\xb4\xbd\x77\xc4\x82\x2a\xa4\x9a\x38\x49\x70\x87\x81\x6b\x77\xa2\xf2\xd1\x66\x07\x9d\x37\x17\x06\x32\xc6\x7e\xe0\xbc\xa8\x3b\xfe\x3e\x15\x06\x3a\x20\xb6\x31\xcb\x38\x11\x13\xb7\x3d\x0c\xb5\xe0\xbd\x99\xe8\xdb\x88\x27\xef\x36\x0a\x14\x6e\x86\x4d\x9e\x15\xf2\xe5\xb3\x34\x74\x18\x25\x09\x3a\xb1\xa7\xcb\xfe\x34\xe4\x20\x51\x61\xec\x31\xe4\x48\x3a\x5d\x76\x4d\x96\x9e\xab\xb9\xb5\xa4\xc3\xb7\xda\x3d\x4f\x1c\x86\xe8\x36\xda\xe8\xf8\xe6\x4e\x39\x9e\x90\x61\x1c\x27\x38\x7d\xb7\x69\x0d\xe3\x69\xc6\x68\x02\x74\x90\xff\x7b\x4c\xb3\xf6\x55\xe6\xdd\xad\xb1\x50\xe3\x27\xc8\x0a\x3e\x12\xa5\x53\x21\xe3\x86\xd3\xa1\xc9\xd3\x7a\xb0\xf9\x5d\x19\xdc\x90\x71\x6e\xe6\x96\xad\x6c\xb6\x37\x20\x6b\x50\x6e\x6d\x7f\x88\x9e\x57\x21\x13\x04\xdd\xf6\x5e\x86\xfe\xe6\x8a\x0b\x13\x8f\x10\x18\x62\x8c\xcd\x14\xf0\xdd\xec\x4b\x12\x29\x0c\xd5\x6c\x65\xba\x38\x0c\x88\x7a\xb4\x04\x12\x01\x28\x5a\x9c\xa5\x96\xbc\xa6\xd3\x19\x50\xa1\xb4\x9c\x14\xad\x43\x5b\x1d\xbe\x38\x3d\xd0\xf6\x40\xa7\x61\x6b\x79\x72\x5b\x5f\xc1\x61\xe8\xc6\xef\x41\xc6\x02\x01\xb2\x36\x45\x90\x16\x46\x76\xbb\x7a\xd6\x93\xa9\xa7\xc0\xe4\x0a\xb6\xbb\x7f\xda\x32\xd2\x07\x8f\x0d\x56\x56\xd5\xb2\xde\x5b\x91\xe5\xcf\xd0\xf1\x2a\x04\xe1\xc5\x36\x1f\xde\x3a\x9d\xd9\xf5\x7d\x82\x16\x28\x23\x5c\x1b\x65\x70\xab\xbd\x3d\x0c\xba\x43\xed\x07\x7e\xdf\xb9\xd4\xd3\xe0\x20\x91\xc5\xf4\x7a\x3a\x34\x85\xdb\xd3\x4b\x3d\x20\x4a\x51\x11\x21\x09\x35\x98\xc6\xaa\x2a\x5e\xd1\xe9\x1e\xca\x86\xa8\x88\xc4\x1a\xb1\x16\xb6\xd6\x7d\x9f\x66\x93\x06\x7c\x15\x91\x44\xf1\x01\x00\x69\x57\x34\x65\xce\x5b\x4f\x74\xce\xf3\x97\xee\x3a\x10\x61\xa3\xd7\x91\x97\x4a\xf2\xf3\x2a\xef\x7a\xa3\x55\xe4\x87\x86\xa9\xe7\x5c\xbc\x41\x79\xe2\x97\xa2\x5c\x34\xf5\x55\x61\x32\xf2\xb5\x87\x25\x4e\xac\x37\x7e\x69\x3d\xd4\x41\xa2\x33\xa2\x11\xc5\xbe\x4b\x0b\x64\x34\x81\xe5\x40\xe8\x4e\x45\x94\x05\x58\xf8\x1b\x82\x62\x54\x14\xf0\x10\x6b\xfe\x39\xbc\xa1\xf0\x34\xba\xcf\x5d\x56\xa2\x1b\xa5\x02\xd3\xa2\x80\x45\x9b\xe5\xfb\x39\x2b\x0c\x05\xcb\xfc\x72\xdd\xeb\xa3\xa2\xd0\x27\x84\xf5\x0c\x3d\x32\x2b\xaa\x34\x3f\x0c\xdf\x6b\xc4\x13\xa9\x5c\xbd\xb6\x0d\xcb\x26\x57\x88\x20\x21\xb6\xc8\x96\x6d\x6b\xd9\x06\x09\xf3\xba\xb8\x72\xab\xfe\x4b\x1e\xe1\x2b\xda\x8a\xc1\xb6\x10\xc5\x22\xe8\x1a\x8c\x8f\x4d\xfe\x12\xed\x8a\x1e\x9c\x62\xc7\xb0\xd0\x47\x9e\x66\x53\xb8\x7f\x3e\x43\xc9\x2d\xe0\x59\x1e\xe1\x26\x1d\x85\x8a\x70\x69\xfe\x9f\xff\xdf\xff\x59\x2c\x37\xbb\x51\x3e\x34\x4a\xb4\x42\x5b\xbb\x94\xc5\x09\xfa\x79\xc0\x03\x85\x2e\x2d\xcf\xba\x0a\xfa\xf8\xa5\x70\x21\xf0\xa5\x19\x43\x0f\xca\xa8\x7e\x8c\x6d\x48\xc4\x05\x04\x36\x1a\x7b\x48\xf3\x97\xc9\x64\xe5\x2a\x46\x3f\xd5\x7a\xe7\xf8\x2b\xf8\x72\x87\x84\x18\xbf\x4e\xcf\x31\xe2\xbf\x5f\x9d\xa5\xbf\x96\x79\x18\x4b\xbe\xab\x48\xc4\x01\xf6\x33\xdf\xad\xb6\xeb\x87\xd9\xef\xfb\xc5\xc3\x6c\xbb\x5d\xfd\xf3\xfb\x72\xbf\xdc\xed\x7f\xac\xee\x96\xcf\xee\xa1\x85\xf6\xa8\xb3\x1f\x26\xbf\x64\x13\x3f\xa3\xd0\x38\x52\xbe\x8f\xc0\x8c\x75\x59\x1c\x4a\x7e\x3a\x41\xa9\xb8\x52\x97\x51\x1d\x2c\x52\x3e\x35\x8d\x32\x4e\x37\xec\xbe\x99\x08\xc1\xa8\x48\xc5\x0c\x89\x3c\x64\xfb\xa9\xe9\xaa\x32\x69\x64\x77\x90\x85\xd8\x7f\x36\xdc\xd7\xaa\x5f\x46\xa8\xb9\xc9\xd5\xa4\x46\x9c\xd1\xf6\x94\x66\x20\xd2\x5a\x34\x57\x72\x22\xcd\x94\x8f\x50\x45\xe0\x49\xdf\x26\xb3\xe6\x65\x71\x83\x07\x7d\xf2\x36\x21\x30\x4c\xaf\xa6\x20\xd7\x09\x81\xfc\x32\xa9\x21\x8e\xff\xd3\x9d\xcb\xb9\x45\x5e\xd5\x4d\x99\x3b\x80\xa1\xe1\xcc\x1a\xdd\x94\x8e\x19\x12\xd1\x3c\xa4\x39\x58\xae\x67\x77\x84\x47\x64\xa0\xdc\xed\x42\xc7\x5e\xd6\x69\xfc\x4e\x34\x97\x08\xe5\x91\x45\x91\xa9\xe2\x6d\xd2\x95\xac\x22\x2d\x3c\xdc\xaf\xd2\xca\x14\x7d\x7b\x27\x2c\xf6\x3c\x86\x19\x34\xc9\xcf\x74\x7c\xd5\xd8\x8b\x95\x47\x5d\x55\xcc\xf6\xb3\x18\x36\xf3\x9b\xfb\x52\x4c\x42\xcf\x62\xa3\xbb\x2a\xbb\x01\xeb\x8d\x87\xf9\x94\x62\xb9\xe5\x71\xf5\xb4\x5f\x3c\x3f\xed\x36\xab\xf9\x77\x64\xfa\xf9\xb9\x74\xb8\x43\x15\xfb\x8a\xe1\xee\x91\x35\xf2\xe5\x32\xb7\x9f\xd8\x9a\x8f\x98\x52\x8d\x00\xe0\xaa\xe3\x11\x1b\x16\xc7\x63\x1a\xfa\x08\x48\xb4\x7a\xd0\x86\x72\xab\x3b\x66\x90\xa4\xf3\xe6\xe2\x7a\xfb\x47\xaf\x2a\xa6\xa1\x96\x46\x47\x0b\x65\xe2\x8a\xb4\x73\x7d\x62\x2a\x01\xf3\x37\xaf\x56\x1b\x7d\x0d\x53\xf7\x31\x0e\x68\x8c\x19\x32\x4b\x7e\x3a\xbb\xfb\xb1\xda\x3e\x3b\xe7\x35\x0e\x04\x8d\x95\xe3\x6d\x18\x94\x58\x47\xd6\x24\x0e\x44\x82\xdb\x0a\x16\xf8\x04\xaf\x52\x34\xc5\xa6\xe5\xc0\x64\x94\x76\xc7\xd6\x06\xb9\xe1\x5a\x60\x70\x37\x4c\xba\x3e\xf6\x55\x86\x38\x94\x04\xcd\xfa\xfe\x8f\x22\xcd\x17\x77\xeb\x69\x77\x8e\x1d\x16\x91\x88\x5b\x95\x2d\xac\xbd\x2f\x5c\xbb\xaa\x8a\x23\xe0\x21\x73\xbb\xd8\x38\xfe\x8c\x63\x0f\xb0\x54\xc5\x45\x85\x0e\x83\xcd\xea\x96\xdd\x71\xca\x89\xd1\x98\xaa\xab\x61\x4a\xa5\xff\xe1\x58\x28\x8c\xd0\xb2\xa6\xe3\xfe\x55\x71\x0c\xc6\x98\x61\xc4\xc7\xd3\xbc\xab\x5a\x0c\xce\xd3\x0c\x93\x9a\xa2\xb9\x2c\xac\x6b\x25\xb2\xeb\x5e\xab\xd1\x39\x49\x10\xe1\x7e\x6c\x71\x41\x46\x77\xf9\x33\x16\x24\x15\xf3\x88\x22\x03\xb0\x71\x63\xef\xca\xf4\x3c\x21\x58\x98\xbc\x47\x2e\xb5\x91\x1c\xcf\x1a\x90\xc7\xf4\x3c\xb4\x96\xb1\x08\x23\xb4\x96\x46\x0e\xfd\x59\x5b\x5d\xae\xee\x70\x1c\xa1\x61\x7e\x82\xcb\x89\x77\xaf\x50\x30\xc6\x62\xc7\x9b\x8f\x77\xfa\xc8\x11\xe9\x36\x15\xe1\x77\xe3\x75\x8c\xcd\x3f\xeb\x87\x0e\x8d\x10\xab\x28\x42\xaa\xd2\x53\x93\xd5\xe9\x39\x4b\x3b\xb8\xb6\x8a\x15\x0f\x90\xd4\xa4\x57\x8d\x27\xbf\x7c\x90\x91\xba\x99\xc1\x8b\xc1\x37\xf0\x5b\x64\x64\x6d\xfd\xa3\x0f\x36\xb5\x18\x22\xe9\x1a\x06\x37\x50\x9d\x8b\xbc\xba\x9d\x22\x8f\x41\x50\x44\x74\x99\x20\xcc\x84\xde\x26\x8f\x3c\xfc\x34\xcc\xe3\x26\x9b\xe5\x48\x2c\x41\x2d\xeb\xe3\xae\xb0\xb5\xd4\xd1\x67\x61\x9e\x64\x84\xf5\x7a\x6e\x43\x04\x21\x23\xa1\x39\x86\xeb\xda\x21\xc7\x6f\x38\x03\x8c\x44\xcc\xca\x72\x9e\x8a\x57\x78\xe4\xf9\xe5\x23\xf1\x5d\xc5\x7c\x22\x9d\x22\xa6\x61\xa4\x6e\xa7\x3e\x02\xf5\xfb\x40\x87\xf9\x31\xa0\xf6\x0b\xd2\xcd\xa4\x45\x3b\xcd\x2d\x70\x79\x94\x32\xb5\xa3\x69\x6c\x1a\x0c\x7b\x44\xef\x35\x72\x6c\xf4\x22\x19\x8d\x25\x7a\x2f\xcb\xdd\xd7\xfd\x62\xb6\x76\x0f\x4c\x01\x88\xe8\x74\x76\x17\xbc\x44\xda\x31\x37\x23\x58\x90\x50\x7c\xaf\xed\x8c\x40\x7b\xff\x3b\x74\xb3\x91\x05\x1c\x2c\x54\x82\x77\x22\x02\xa3\xf9\xc0\xc2\x48\x20\xfd\xc1\x9f\x0d\x74\x33\x9f\x85\x8c\x23\xb6\x77\x7d\x84\x22\x4f\xdf\x6f\x2f\x1e\x16\x6a\x89\xd9\x2c\x9d\xe6\x0a\x9d\xdc\xf6\x21\x37\x53\x22\xa7\xee\x97\xa2\xc8\xb4\x29\x6c\xeb\x12\xb9\xac\xdd\x9f\xb9\x42\xa2\xb6\x45\x56\x54\xb0\xd2\xf3\xe6\xd0\x1d\xd1\xca\x93\x23\x42\x8a\x5d\xd9\x80\x31\xad\x6e\x4c\xcc\x69\x4c\x27\x85\xe6\xa1\xfe\xea\x80\xf2\xa0\xaf\xd2\x8c\x5f\x7b\x0c\xb1\xb6\xcc\x89\x3f\x21\x1d\x48\x89\x19\x4e\xd7\xf1\x6c\x67\xcc\x37\x45\xaa\x6d\x51\xf7\xc1\x05\x63\x21\x0b\xa0\xff\xd8\xfc\x94\x4e\xc1\x0d\x8c\x31\x30\xc0\x7b\xdb\xd7\x3b\xec\xfb\x56\x8c\x69\xca\x89\x23\x2b\x42\x21\xc0\xc9\x62\x9b\xdc\x74\xc2\xd5\x00\xa9\xf6\x08\xf2\xb8\xdc\x7d\xbd\xbd\x92\x59\x02\xb1\x32\x1e\x5d\xbb\xd6\xf2\xc3\x18\xb0\xc4\xb8\xe7\x9b\xfe\xd4\xa2\xaa\x9f\xf5\x73\x3e\x24\xe0\x50\x8c\x13\x86\xec\x45\x3f\x76\x9f\x74\xc6\x2b\xc6\x99\xc4\xc6\x90\x9e\x0c\xdf\xb4\xf9\xba\xd8\xd8\x0d\x13\x1a\xb3\x6e\x27\x2c\x45\xcd\xea\x1a\x4e\xe7\xfa\x03\x0b\xc4\x84\xc7\x68\xaf\xe8\xf1\x50\xf0\x1c\x89\xce\xd3\xfc\x80\xfd\xe2\xd5\x55\xc4\xed\x78\x38\xda\xaf\x1c\xff\xc7\x16\x6b\xff\x1d\x4c\x94\xcd\xdc\xd5\x49\x68\xe9\x4e\xf8\x69\xd1\xb8\xed\x93\x49\x6a\xb8\x00\x0e\xe9\x2b\x20\x49\xce\xe2\xc8\xcb\x8e\x67\x57\x31\x19\xf8\x58\xe8\xe1\x4a\x21\x34\xef\xb1\x50\x9f\xb7\x0c\x2b\x26\x63\x1f\xdf\x8d\xa1\xa9\xfa\xb6\x79\xbc\x9d\x7b\x62\x32\x49\x1c\x44\x77\x95\xeb\x62\x7e\xf9\x9e\xa7\x45\x3e\x51\x24\x51\x4c\xf2\x90\x12\x07\xf8\xb6\x93\x65\x62\x7b\xa4\x08\x50\x4d\x47\x77\x01\xab\x49\x0d\x4c\x8b\x80\x4c\xf9\xbe\x61\x77\x2b\x79\xee\x1a\x00\x6f\xe1\xee\x99\x4a\x4c\xf2\x66\xef\x92\x8f\x97\x73\x5d\x5d\xec\x02\xff\xf5\xff\x9b\x7f\x26\xbf\x28\x94\xdf\x9b\xef\xfd\xcb\x45\x4e\xfd\x37\xa6\x74\xa4\x7a\x16\xc1\x99\x32\x4a\x34\x1b\xe3\x85\x9b\xb7\x66\x11\x21\x0c\x7c\x82\xa1\xe3\xf7\xa7\x0e\xca\xc7\x00\x4c\x33\x93\xa9\xaf\x90\xc9\x3b\xd4\xbe\x40\x5e\x92\x87\x81\x29\xd6\x81\xf4\x63\xa7\x48\x61\x52\x92\x63\x0f\x2b\xf1\x7c\x2d\x8d\x66\x05\x48\x94\x1a\x31\x19\x61\x77\x98\x50\xe9\x54\x75\xf0\x35\x23\xc0\xe4\xe6\xac\x49\x7c\x4a\x30\xd5\xb5\x6f\x72\x54\x2d\x85\x57\xc8\x4c\x6a\x66\x32\x2e\xd4\x58\x13\xdd\x2c\xef\xbf\x3f\xdd\x0d\xbb\x71\x12\xea\x69\x2c\x93\xe5\xf0\xb6\x03\x7e\x7a\xce\x97\x16\x44\x7c\x53\xf5\x54\x25\xd4\xe7\x58\x21\x71\x2e\xf3\x36\x3d\xe4\xbc\x6e\x1c\xf3\xee\xd8\x93\x48\x82\x38\xc0\xd4\xd0\xe2\xe9\x6e\xfc\x5d\x92\x80\x1b\xdd\x4a\x34\xda\x08\xca\xdb\xbd\xb9\xba\x54\x12\x48\xa3\x8d\xb0\x7e\xde\xfe\xe8\xfe\xa6\x38\x3e\x83\x6e\xbf\x04\x3a\xb4\x16\xe3\xe4\x06\x84\x9a\xa0\x33\xcf\x95\xba\x86\x0c\x26\x11\xf5\xb1\xc5\xf5\x09\xde\x1e\x80\x4f\x25\x0a\x98\xdb\xe5\x93\x48\x00\xba\xc6\x27\xfe\xde\x5a\xa7\x21\x2e\x3d\x89\xb4\xe1\xf2\x37\xdf\xeb\x32\xf2\x5d\x92\x58\x48\xe5\x12\x0f\x12\x91\xc1\xb0\x5a\x3c\x8f\x2a\x25\x09\x63\x26\xfe\xfa\x6d\x72\x73\x2c\x31\xe0\x33\x79\xe4\xe5\x01\xee\x78\x9a\x5d\x0c\xab\xf6\xad\x9c\x48\xc2\xa4\x01\x1e\xb6\x1e\xd2\xc0\xa2\xdb\xa3\x3c\x04\xd2\xe9\x7a\xd9\x5c\x66\x47\x49\xa5\x12\x1e\x6b\x70\xb9\x8b\x0c\x3a\x45\x13\x95\x70\xe1\x2b\x36\x80\xea\x7e\xaf\x7a\x68\x3a\xe9\x2e\x0e\x01\x6a\xf5\x6d\x6b\x5e\x57\xd6\x16\xf4\x57\x00\x11\x6b\x57\xb9\xaa\xa1\x84\xaa\xee\xd5\x88\xaf\xe5\xb9\x27\x73\x99\x6b\x69\x6e\x0c\x6b\xd5\x06\xdb\x68\x9a\x8d\xed\x00\xe1\x03\xe6\xcb\x37\xf0\x0a\x79\x03\xdb\xd6\xe6\xe6\x87\x31\xb7\x0c\xc2\x25\xf0\x55\xde\x6d\x77\xfb\xcd\xfe\x69\x3f\xdf\xaf\x37\xcf\x5f\x36\x4e\x28\x50\x25\x22\x34\x3d\xb9\xa0\x52\x34\xa1\xe3\xaf\x28\xda\xc0\x1a\x91\x89\x65\xf1\x56\xfd\x3c\x42\xfe\x54\xe4\x4e\x93\xfb\x0e\x95\xde\xaa\x99\x63\x3f\x54\x89\x4c\x82\xbe\xd4\x66\x4b\xf2\x28\x0c\xde\x1d\xe7\x28\xb7\xd7\xba\x27\x78\xa7\x45\x66\x2c\x7c\xeb\xe1\xae\x39\xa2\xc0\xf1\x7f\xb7\xfc\x04\xab\x1a\x4e\xab\xfe\x54\xee\x63\x95\x21\xad\x2c\x44\x72\x3c\x09\xa4\x64\xf8\xba\x76\xed\x95\x5d\x99\x67\xff\x54\x20\xf5\xbf\x1d\xa3\x02\xa3\x77\x6d\xbc\xee\x2f\x90\xff\xe0\x4d\xf6\x01\xe4\x27\x51\x82\xa2\x48\xed\x89\xbf\x80\x55\xfd\xfe\x34\x8e\x4a\x94\xd4\xcc\xe6\xd2\x7f\x5b\x3f\xb8\xdf\xd4\x52\x22\xb1\x02\xf6\xd5\x39\x3f\x7e\x4a\xb8\xaa\xb8\x17\x85\xc8\x76\xbc\x01\xa5\x86\x82\x59\x8a\x7b\x32\x46\x9b\x96\x17\x6f\x0b\x9e\xaf\xcb\xe2\x35\x55\xf0\x95\x57\xc7\x6e\x80\x32\xae\x8a\x6a\x6a\x79\x74\x54\xb0\xdd\x31\xe9\x58\xcd\x57\x8b\xe7\x9f\x90\x5a\x9d\x76\x7b\x98\x30\xd3\x73\x7e\x5f\xc2\x09\x39\x29\xd4\xc8\x91\xe1\x24\xe1\x52\xda\xac\x8a\x43\x66\x6f\x80\xab\x4b\x37\x40\x78\x48\x46\x6c\x76\xb8\xeb\xd8\x97\x13\x21\x63\xd1\xbd\xf2\x39\xf0\xf2\x46\x69\x93\xfb\x11\xf5\xa7\xaa\x8f\xd5\xde\x52\x2b\xf6\xb7\xeb\x8b\x18\x85\xb3\x8c\x8e\xfb\xdd\xd3\x6a\xf2\x63\xd4\x0b\x30\x06\x3c\xf3\xcb\x7d\x51\x62\xb5\x79\x95\x8f\x49\xec\xae\x22\xbe\x9b\x1f\x9f\x53\x5f\x22\xa0\xfa\x0e\x34\x3f\x73\xd9\x7b\xad\x3c\xa0\xe0\xb8\x5d\x97\xef\x75\xc9\x31\x7f\x32\x86\x94\xf2\x20\x02\x57\x7c\xea\xea\xf6\xdd\xc1\x30\x49\x5c\x33\xcb\x2a\x17\x03\x32\xb8\xf1\x1d\x84\xe0\x81\xe3\x10\xb8\xe3\x97\xec\x8a\x8a\x53\xf1\x28\x06\x04\x7b\x3c\x9f\x21\x7f\x2c\x72\xb8\x8c\x3b\x33\x78\xc4\x4c\xb9\x96\xab\x3f\x9a\xbe\x9b\xda\x46\x61\xd3\x6b\x25\x84\x19\x02\xf9\xd3\x29\xc5\x26\xf2\xdb\x68\x16\x1e\xb3\x28\xb0\xd4\x08\x4f\x8e\x2e\x6f\x95\x7f\x4d\xab\x76\x07\xb8\xc1\x9e\xa7\x38\x13\x60\x21\xa9\xe9\x44\xe7\xdd\x0d\x80\x18\xfc\x61\x07\xc9\xfb\x78\x2b\xe1\x49\x14\x7a\xd8\xdd\x51\xb4\x86\x18\x9a\xd3\x67\x6e\x35\x4f\x94\x46\x72\x47\xd7\x08\x34\xb1\x88\x9c\xc7\xa6\xb8\xb4\xdd\xed\x16\xa3\xd9\xce\x13\x90\xb6\xcd\xa5\x35\xcd\xbd\xad\xbe\x07\xb8\xbb\xea\x2d\xe3\x9c\x43\x62\x41\xd5\x8b\x2c\x1d\xc8\xb1\x8d\xb7\x27\x2e\x7c\x0f\x3b\xdf\xd0\x01\x9a\x4d\x3f\xa2\xa0\x12\x57\x6f\x53\x41\xb9\x41\xfc\xdf\x28\x67\x46\x26\xd3\x42\x04\x11\xf2\x26\xcd\x16\x8b\xe5\x7a\xb7\xbf\x5b\x2d\x9c\xe7\xd2\x86\x09\x7e\x68\xf1\x1c\x37\xe8\xc7\x5b\x77\x81\x62\x96\xba\xdd\x91\xdf\x7e\x16\xe5\xcb\xd4\x88\x72\x09\x86\xf7\x62\xf9\xbc\xfd\x52\x64\xea\xf6\xce\xc4\x55\x42\x71\xe3\x41\x67\xda\x90\x9a\xb9\x7b\x00\x1f\x98\xd7\xe1\x45\xee\x8a\xdc\x2a\xef\xdb\xc3\x3a\x8c\xa5\x2d\x23\xcc\xd5\xb9\x0d\xc9\x1d\xbf\xa1\x8b\x46\x48\xf4\x1f\x37\x36\x8e\x31\x5d\xf7\x05\x3a\xd6\x7d\xd4\xfa\xd8\x41\x89\x1f\x02\xd4\x63\x5a\x95\x70\xee\xae\x9d\x98\xea\x9e\x41\x3e\xb7\x1e\xcf\x4c\xd7\x37\x80\x53\xe3\x27\xd6\x89\x04\x3a\x2c\x5d\xd4\xa8\x71\x32\x8a\xf6\xb8\x16\x81\x95\xac\x4a\xff\x1a\x2a\x43\xb4\x47\x24\xa6\x1e\xdb\xb9\x6d\x5c\xa3\xd1\xab\x12\x9e\x6f\xe0\xd8\x25\xe8\xa6\x82\xf6\x9d\xff\xd2\x1d\x61\xdc\x06\x2e\x8f\x50\x73\xc5\x6b\x6e\x17\x91\x05\xc8\x0c\xe7\xb4\xf0\xa2\x04\x9d\x11\x23\x88\x36\xbc\x05\xe1\x25\x46\x12\x7f\x4c\x46\xf0\x58\xbc\xa6\xe3\x92\xb8\x20\x82\x61\xc5\xe5\x54\xb9\x2e\x42\x41\x24\x47\xa7\xd3\xd2\xc5\x3d\xa4\xda\x19\x0f\xe1\xb3\x08\xf7\xad\xb4\x72\x01\xe4\x48\xf1\x4d\x09\x1a\x78\x0a\xd9\x71\x4b\x5e\x21\x91\xc9\xd7\x14\x4a\x5e\xca\xe3\x65\x6a\x39\x7a\xd6\x1c\x77\x6a\x12\x46\xb6\xaa\xdd\xce\x01\xc1\x7b\x45\x8d\xf1\xeb\x0b\xbc\x18\xf3\x56\x5b\x24\xf3\x5e\xad\x6f\x22\x1c\x45\x40\x63\xc4\xdb\xe4\xcd\x69\x5f\xa7\xf2\x05\xea\x6a\x6f\x33\x06\xfb\x21\xa6\x50\x04\x61\x8c\x0e\x19\x57\xea\x01\x8b\xe1\x7d\x49\x6e\x92\xdc\x12\xa1\x12\x30\x64\x81\x43\x32\xf3\xcf\x2b\x2a\x22\x8a\x25\x32\x7c\xe9\x26\x97\xf7\x65\x71\x5a\x50\xf7\xc3\xb1\x07\xa4\x77\x8b\xd4\xae\xd8\xf0\x7c\x3a\x55\x62\xad\x8d\x04\x30\xa6\xc7\xbe\xf0\x13\x6c\x9a\x36\xec\x14\x37\xa6\x15\xa3\x81\x86\x01\x25\xc2\x3a\xed\x8a\xc2\x82\x29\x9a\x50\x77\xac\x7d\xc8\x81\xc8\x59\x7f\x85\x84\x18\x76\x82\x76\xb5\xc8\xa6\x84\xc7\x8e\x89\x46\x09\x21\x4d\x8e\xca\x24\xea\x3a\x51\xfa\x89\xd4\xa8\x12\xd2\x33\x50\xdd\x12\xfe\x6c\xd2\x12\xd4\x3c\x55\xd3\x11\x81\x46\x22\x9c\x73\xcf\x32\xe1\xf2\x9c\xe3\x81\x8a\x88\x24\x72\xad\x94\x32\x3d\xf7\xe6\xd4\x0d\xe0\x89\x67\xf9\xa9\xbe\xa6\x87\x23\x54\xf5\x63\x51\xd6\x07\x7e\x18\xb6\x6f\x0a\xa5\x01\xdd\xcb\x87\x42\x36\xd5\x73\x07\xf6\x10\x40\x43\x0f\xcb\x50\x45\x7e\x58\x67\xbc\xa7\x20\xf9\xb7\xdf\x67\x3f\xd8\x04\x8a\x2c\xb4\xe7\x61\x5a\x1a\x37\x09\x33\x01\x3e\xd9\x77\x84\xf6\x42\x0c\xd2\xd0\xce\xb7\xce\x8b\xc1\x27\xba\xa3\x21\x20\xd1\x91\x71\x84\x36\x80\x8c\x22\xd7\x94\x29\x4a\xe8\xd8\x43\xd7\xa3\x67\x07\x84\xd2\xc9\x7f\x28\xa1\x81\x08\x1b\x95\xb4\xde\xd6\xe6\xc3\x1e\x84\xf6\xe3\xb0\xce\xda\x0f\x30\xce\xd2\x63\x1e\x16\x9e\xda\x8f\x9b\x0d\x37\x40\x49\x3c\x45\x6c\x85\xc4\xd1\xe2\x58\x98\xa4\xd5\xc7\x18\x14\xdb\x25\x21\x3e\x9a\xfa\xbc\x39\xb5\x8b\x78\x42\x31\xaa\x24\x51\x09\x42\x4b\x1c\x24\x68\x5a\x2d\xbf\xf1\x0a\xa5\x1f\x6b\xa0\x9d\x24\xa3\x85\xd1\xf4\xef\x46\xfa\x89\xb6\x9a\x6f\x1f\x75\x07\x4a\x5f\x32\x6d\x7a\x26\x4b\xc0\x14\xf3\x43\x71\x08\x66\x79\x91\x5f\xdc\x26\x25\x69\x68\xca\xd5\xee\x53\x70\x35\x65\x5a\x53\x92\xc6\x04\x79\xb4\xbe\x3f\xec\x36\xab\xdf\x06\x50\x73\x19\xf8\x1a\x25\x9f\x86\x8c\xaf\xe3\x6d\x54\x06\x54\xfb\x46\x7f\xea\x6d\x79\x6a\x43\x24\x80\xd6\x0f\xec\x08\xb2\xdd\x30\x91\xa0\xbc\x9d\xb5\x55\x98\xad\xe8\x8e\x49\xa3\xff\x7b\x70\xac\x83\x77\xe9\x01\xaa\x0f\x5c\x0c\x19\x80\xc6\x27\xda\xbb\x6e\xaa\x59\x59\x4f\x69\x4c\x94\x0c\x05\xc5\x42\x68\xc5\x5f\x01\x19\x3e\x6e\x01\x1e\xae\x10\xb8\x53\x45\x00\x7b\xb1\x28\xd0\x0c\x5c\x03\x9d\x51\xff\x69\x43\xda\xfb\x62\x5c\x01\x96\x91\x24\x28\xc2\xb6\xe3\xe9\x1b\x47\x95\x4b\x91\xa5\xf2\xb3\x85\x24\x23\x4d\x8c\x96\x53\x71\x98\xa7\xaa\x6b\xdc\xf8\x14\xfe\x23\x63\x1e\x24\xa6\x9c\x6d\xde\xc0\xf7\x0a\xca\x81\xec\x9b\x1d\xc5\x18\xc5\xad\xe2\x1f\x69\x23\x79\x7a\x4d\xd2\xc9\x6e\xde\x50\xe2\x85\xa2\x77\x2d\x7a\x28\xd9\x08\xa4\x30\xb9\x9f\xc4\x13\xb8\x63\x7f\x29\x01\x5a\x33\x7e\xd7\x06\xef\xa6\xd4\x37\x5a\x73\x89\xcf\xb0\x52\xf1\xf0\xc7\x1b\xfe\xdd\xed\x19\x92\xd3\xc8\xef\x55\x7f\x47\xe2\x74\x4a\xf2\x00\x30\xae\x3b\xf1\x5a\x1e\x4d\x3c\xfc\xfc\x32\xb8\x9f\x6b\xd1\x03\x25\x85\xa7\xc3\xb0\xa7\xcc\x43\x8b\x3e\xeb\xae\x28\x42\x19\x39\xce\xee\xac\xae\x7e\x62\x2f\x0a\xa8\xf9\x05\x93\x1f\xdd\x28\x50\x4c\xb8\x94\xf5\xf7\xbc\xec\x30\x6f\xa3\xbc\x8e\x14\x3a\x06\xf3\x31\x3e\x50\xde\x53\x52\xca\x50\x68\x67\xf1\x07\x5a\xff\x23\x4f\x41\xaa\xc0\x08\xbd\x99\x2c\xe5\xf2\x1d\x4a\x99\x56\xb0\x3d\xf3\xee\xfd\x01\x10\xa4\x4f\x7f\x2d\x6a\x58\xb8\x3f\xea\x30\x12\xc6\xe5\x2e\x0a\xbd\xbb\x9c\x61\xbf\x7b\xd8\x3e\x0d\x71\x92\xca\x0b\xb9\x23\xb0\x37\xac\x3a\x43\xa1\xc5\xd1\xa7\x54\x1e\xa7\x86\x2d\xe9\xad\x0b\xdf\x6f\xdb\x5c\xe5\x69\x8d\xfb\xcc\x89\xbf\xef\x85\x13\xff\xa8\xce\x5d\xf4\xa8\x48\xc4\xe2\x61\x6c\xd2\xab\x28\x4c\x12\x02\xca\x27\x09\xf2\x2e\xbd\x39\x17\x65\x5a\xdb\xe8\xcd\xa2\xf2\x19\xd0\xa0\x0b\x9f\xa1\xfc\x01\xb9\x1a\x70\x17\x9b\xb6\xe3\x3e\x1b\x69\xcf\xa2\x5e\x80\x0d\x94\xbd\x0a\xd3\x87\xad\x09\x8a\xc6\x54\x24\x9d\xe0\xde\xcb\x30\xcf\x34\xbe\xed\xc0\x4b\x94\xb5\xe0\xeb\x8c\x5f\x46\xea\x28\xa3\x09\xa0\x02\x6d\xb8\x25\x0d\xa8\x6c\x08\x6f\x50\xa1\x9f\x60\xca\xb8\x63\xaa\xb1\xa9\xa2\xec\x1a\xd4\xd2\xf7\x0f\xdd\x76\xf0\x55\x28\x12\x74\x66\xf6\xa8\x0d\xd1\xe9\xed\xdb\xa3\x11\x95\x4e\x01\x08\x0d\xf9\xb5\x9a\x8b\x52\x71\x90\x60\xfe\xb9\x03\x00\x6d\x1b\xb7\x95\xa8\x58\x50\x49\x9d\xca\x74\x96\xcd\x5b\x53\xdd\x15\x9e\x55\x0c\xb1\x8b\x95\x9f\xb5\x6e\x43\xf3\x61\x55\x56\x31\x92\xc8\xae\x56\xa7\x8b\xa6\xb4\xdc\xf1\xab\x7e\x48\x22\x8d\x24\x9a\xe4\xf9\x1a\x4a\x5d\x94\xa7\x71\x78\x68\xb3\xd0\x8a\x07\x21\x52\x00\xee\x75\x5a\x56\x66\x27\xe9\xb1\x80\x8a\x43\xac\x8d\x4e\x75\x8d\xc1\x13\x3c\x37\xb5\x2c\x26\xb4\xad\xcc\xbe\x4a\xe6\x4e\xd2\x21\xe7\x6e\x0d\x4d\xfc\x35\x25\x03\x1e\x8c\xe8\x7b\x8b\xf2\xb4\xe3\xe5\x01\xea\xbd\x02\x8d\x59\xb5\xc9\x09\x52\x26\x26\x3d\x97\x8d\x7b\x93\x95\x0a\x3d\x0c\xd7\xdb\xe9\x72\x65\x1e\x15\x44\x80\x60\xdc\x73\xeb\xb5\xcd\x53\xd5\xfa\xd5\x68\x91\xb6\xb2\x9d\x10\xd3\xfb\x02\x08\x71\x55\x6f\xb3\xe2\x0c\x2b\xdb\x33\x3e\xf1\x4a\x95\x8e\x8c\x6c\xd3\xec\xfb\x6e\x3b\x40\x3b\x2a\xcd\x02\x6f\x48\x38\x7c\x97\xbe\xba\x4f\x09\x1e\x21\x48\xe0\x59\x3b\x6c\xdb\x50\xae\xf6\x76\x3c\x00\x1e\x08\xc4\x00\x2a\x7e\x3e\x77\x79\x4c\x20\x3e\xc5\xa4\xb9\xf1\x3e\x56\x8b\xe7\x13\xaf\x3e\xa8\x67\x00\x61\x3a\x31\xcd\xb7\x38\xff\xf9\x14\x4f\x33\x8e\xab\xc0\x17\x0a\xb7\x8c\xcd\xef\xa3\xbe\x63\xf0\x75\xec\xbc\x6b\x24\x9b\xbe\xd6\x52\x51\x40\x49\xa8\x6d\xf6\xd2\x7c\xc8\x76\xcd\x71\x59\xaf\x1b\xf1\x0d\x26\x75\x59\xa0\x89\xc4\x5e\x82\x76\xe6\xe2\x3e\x82\xd2\xe9\xee\xe7\x02\x6d\xe2\x82\x0a\x1e\x9b\xd2\x69\x25\x28\x08\x09\x13\xdc\xac\x23\x28\xeb\x3b\xb7\x9a\x76\xc5\x9c\xe7\x2f\xed\xc7\x74\x03\xa3\x28\xc2\xf7\x06\xa5\xf4\xbd\x9e\x9d\x00\x22\xc1\xb1\xea\x3d\x2b\xeb\x45\xa7\xb0\xa1\x20\x92\xc6\x8e\x71\xa5\xe6\xc5\xfb\x6d\xcf\xe2\x16\x33\x06\x73\xe7\xab\x84\xf3\x41\xe0\x65\x00\x83\xb3\x5c\x8d\x8d\xd7\xf8\x75\xc5\xca\xa3\x83\x9c\x15\x94\x55\xa7\xbf\x75\x13\x32\x07\x8c\x7a\x83\xed\xfc\x0b\xe4\xde\x50\xb5\xab\x03\xc3\xfb\x6c\xf4\xaf\x25\xa8\x57\xc0\x42\xe3\xbb\x95\xad\xb7\x5a\xc9\x36\xe8\x73\xd6\x7e\x3a\xbf\x21\x21\xd2\xc1\x60\x17\x8b\xaf\x96\x6e\xca\x01\xef\x20\xf1\x3d\xd7\x2a\xf9\xd4\xfc\xc1\x87\x42\xdf\xed\x41\x8d\xfb\x13\xe2\xce\xea\x55\x7e\x76\x5c\xc0\x0a\x12\x15\xe2\x21\x04\xd8\xf4\x4d\x34\x33\xf5\x9a\xf6\x2c\x61\x3d\x5e\xa0\xdf\x9e\x20\xd1\x26\x66\x39\xf3\xcb\x3f\xb8\x7c\x39\x17\xb5\x73\x72\x80\xd3\xa0\x83\x39\xcf\xa1\x76\x4c\xa7\x0a\xb8\x08\x30\x1a\xde\x9f\xcb\x42\x42\x55\xf5\x12\xa9\x6b\x2e\x5f\x46\x8c\x81\x6c\xda\x71\x6c\x2f\x21\x3c\x31\x6c\xfd\x28\xf2\x0a\xf2\xfa\x3e\xcd\x26\x95\x30\x90\x3e\xc1\xa4\xd7\x09\x6a\x6e\x85\xa2\x31\xbd\xfe\x37\xad\x21\xee\x6c\x6a\xf4\x5d\xda\x70\xdb\x95\x1d\x30\x8b\x34\xf9\x28\x92\x27\x60\xb5\xd3\xce\x4d\x0d\x58\x07\xff\x00\x61\x05\x92\x83\xab\xdc\x2d\xf3\xba\xbc\xac\xf2\xc7\x22\xaf\x8f\x1f\xca\x5b\xba\xd3\x94\xc9\x32\x94\x60\x52\x8d\x96\xf1\x69\xf0\x51\x3e\xf9\x7f\x93\x97\xa7\x08\x23\xb1\x4d\x26\x62\xe1\xba\xf8\x01\x65\xd5\x54\x36\xb1\xe8\x46\xd1\xd0\x72\x88\x9d\x79\x53\x39\x8d\x31\x67\x34\xb5\x17\x05\xc4\xea\x21\xde\xc1\xb9\xa8\xdb\x2d\xe9\xa6\xa9\xd4\x1e\xe3\x8e\x1f\xcb\x44\x7d\x18\xba\x21\xbc\xc5\x49\x17\x8d\x5a\x99\xb5\xc7\x43\x4c\xc9\xcd\xee\xee\x36\xfb\xc7\xd9\xef\xb3\xfd\x6e\xd9\xd5\xb4\xb4\x27\x49\xdc\x6b\xbd\x2c\x78\x0d\x87\xa2\x4c\x25\xcf\x0c\xe8\xe8\x56\x1a\xc7\x5a\x03\x4d\x58\xc0\x6d\x53\xea\x01\x76\x6f\xc5\xb2\x4b\x1f\x69\x92\x44\x60\x9b\xcc\x3a\x54\x94\x4d\x67\x0c\x9a\x65\xdd\x60\xf0\x51\xa4\xad\x6b\x9f\x6f\x37\xad\xbf\x97\x09\x55\xda\x27\x46\x5f\x6e\xa6\xd4\xae\xb8\x9b\x4f\x2e\xeb\x13\x81\xed\x53\x66\xf7\xd8\x1e\x79\x39\x45\x98\x8d\x3f\xa4\xa6\x89\x08\x78\x07\x09\x58\xa4\xb7\x5a\x59\x75\xc0\x0c\xc9\x83\xbb\xd9\x2d\x98\x96\x2c\x53\xeb\x9c\xa2\x7f\x74\xa0\x1c\x0c\x76\xe1\xe0\x31\xdd\x4b\x0a\x89\x60\x5d\xd9\x72\x5d\x16\xba\xa7\xc4\xd4\x21\x8d\x11\xbc\xee\xc8\x5c\xe6\x90\x83\x4e\x65\xca\xcb\xcb\x67\xd4\xb0\x4a\x87\x3c\x0a\xac\x57\x39\xcb\xb2\xe2\x0d\x5b\x5d\x90\x74\xe0\xf6\x43\x87\x52\x20\xa7\x67\x5a\xe1\xec\xb1\x16\xd2\x7d\x62\xe6\x45\xca\xa2\xc3\xe7\x4d\x99\x77\x92\x41\x93\x97\xc2\x74\x84\x98\x91\xef\xce\x3a\xea\x84\xc6\xf8\x69\x1e\x8a\x83\x7f\x0d\x27\xd7\x49\x10\x62\x28\x92\x01\xbc\x6c\x6b\xe0\xd9\x0e\x35\x8a\xcb\x7d\x77\x7e\x4c\x10\x0d\x5d\x35\xe2\x1a\xee\xa9\x13\x4e\x90\xc7\xcf\x4a\xa3\x7c\xfb\xdd\x85\x33\x9a\x73\x1f\x93\xfe\xcf\x3f\x9f\x96\x9b\xed\x7e\xf6\x74\xb7\x5f\xcf\x36\x3b\xf3\x1f\x43\xf1\x50\xa5\xb9\x0a\x31\xf5\xb0\x7c\x3f\xf3\x7e\xe6\x0a\x2f\xc6\x1d\xf9\xe7\xd7\xd5\x6e\xf9\xb0\xda\xa2\x26\xe8\xe3\xec\xb7\x11\x3a\xb9\x1b\x1c\x05\x38\xc5\x6a\x24\x3c\x34\x70\xea\xee\x13\x8a\x76\x2f\xb2\xa5\x2d\xfe\x96\x3f\x14\x3c\x5f\x4d\xf6\x1f\x2d\x44\xc8\x82\x8e\x3a\xe6\xa9\xc8\xbb\xd5\x02\xca\xee\x94\xe3\x37\x2d\xa5\x17\x9a\x32\xe3\xf2\xfd\x9c\x96\xa0\xee\x80\xab\x2c\xed\xf2\x77\x5a\x6a\x8a\xc9\xe8\x07\xa8\x64\xf1\x0a\xef\xfb\xc5\xef\x8b\x0f\x36\xfa\xf1\x95\x15\x51\xd0\x11\xd8\x7f\x9e\xbf\xd3\x2a\x00\xdf\x35\xe5\xf5\x5c\x91\x5a\x31\xe1\x32\x8f\xf3\x26\xcd\xae\x73\x45\x5a\x81\x8f\x51\xdf\x30\x86\xd1\xe0\x1b\xd2\xc7\xdc\x89\xe3\xb7\x61\x68\x77\x50\x2a\x34\xf0\xc5\x19\x72\x87\x46\xb2\x87\x74\xcc\x30\xad\x8e\x9c\x62\xfd\xd2\xd1\x9a\xd3\x8e\x82\xf6\xfb\x18\x1d\xdf\x3a\xa7\xbe\x60\x3d\x77\xcb\xdd\xde\xfe\x9f\xfd\x97\xcd\xf3\x77\x8b\xc4\x01\x8f\x04\x52\x9b\xfb\x44\x25\x96\x4d\x91\x4d\xec\xe1\xad\x6d\x05\x3c\xa2\x13\x91\xf4\x3d\xa2\xbe\xbb\x9c\x4f\x03\x84\xdf\xad\xbf\xae\x1e\xfa\x04\x19\x78\x34\xe2\x88\x30\x7a\x9a\x2f\x1e\xfe\xb6\x6f\x01\x3c\xca\x8d\x74\xf5\x2c\x57\xef\x45\xf9\x50\x1c\x0e\xce\x1d\x01\x8f\xca\x10\x8d\xc9\x1d\xb4\xb3\xa1\x76\x7c\x83\xed\x81\x04\x4b\x9f\xf3\xe6\xf2\x0d\x2e\xe3\x95\x04\x5e\x28\x4d\xa7\x10\x77\xb8\xc4\x41\xd8\x05\x5e\xa8\x20\xf2\x3b\x7e\x19\x0b\x9b\xb8\x46\x09\x81\x17\x79\xda\x34\x02\x9e\x6d\x12\x0a\xc9\x2f\x3b\xe7\xbf\xf3\x70\xc0\x8b\x95\x6f\x88\xf8\xea\xba\x28\x73\xb8\x6c\xd3\x43\xee\x7e\x2e\x61\x0a\xb7\x36\x97\xe0\x09\x6f\xda\x2c\xf0\xb8\x6f\xf2\xa9\xa8\x4e\x62\x58\x82\x67\x0f\x0f\xcf\x3f\x67\x4f\xae\xc4\x07\x9e\x88\xb9\x61\x19\x35\x6e\xca\x02\x19\xca\x3e\x26\xa2\x01\x4f\x7a\x04\x5d\xe6\xac\x0d\x1e\xdc\xdf\x84\x8f\x25\xf9\x5e\x70\x6e\x7e\xb1\xb5\xf2\x69\xd3\x55\x3b\x58\x44\xae\x3c\x59\x6d\xcf\x65\x5a\xc3\xf3\x5b\x9e\xe6\x07\x5b\xac\x9a\x4c\x44\x09\x1c\x5f\x84\x30\x24\x29\x83\xb7\xae\x18\xf1\x23\x33\xf9\x56\x8b\xe7\x11\x81\x39\x78\x9a\x86\xd8\xde\xef\xf6\x9f\x6a\xdb\x54\x67\xc8\xbb\x26\x1a\xf0\xb4\x12\x78\xba\x81\xad\xf5\x52\x53\x40\x7c\x3f\xc0\x1e\xd0\xcc\xac\x23\x03\x89\xcd\xab\xa6\xec\x1a\x86\xad\xd3\x00\xc4\x8f\x82\x20\x19\xe4\x49\xee\x8b\x72\xc3\xb5\x76\x19\x59\x20\xbe\x4c\x6c\x9a\x23\xcb\x30\x32\xbc\xb5\x1d\x01\xf1\x55\x8c\x95\xd6\x27\x30\x9f\x14\xa9\xa3\x3e\x6d\x29\xbe\x09\x1e\x03\xe2\x6b\x82\xa1\x4b\x93\xa7\x75\x15\x7a\xb6\xf0\x8c\xb8\x02\x77\x4b\x34\x62\x58\xa8\x71\x59\x9a\xa9\xbb\x0f\x84\x0a\x8e\x0a\x50\xf3\xa7\x85\xd1\x46\x6a\x9f\xcc\x22\xb2\xdc\x10\x45\x31\xe2\xfd\x91\x42\x9d\xf3\xd3\x17\x38\x61\x02\x13\xc3\x6d\x37\x26\xf0\x24\xfa\x72\xcb\xa7\xc5\xe6\xf7\x35\xb6\xab\x7c\x5b\xfe\xee\x8e\x86\xd4\xc8\xec\x1d\xa0\xc6\x8e\x3e\x28\x4d\xdf\x6a\x65\x7a\x94\xc7\xd3\x80\x84\x89\x42\xe7\xe7\x81\x9f\x44\xd1\x5d\x42\x48\x7c\x6b\x98\x3b\x1c\x84\x16\x40\x22\xca\xa5\x0d\x49\x1c\xe1\x86\xc5\xaf\x0f\x9d\x3e\x20\x71\x22\x12\xeb\x4f\xde\x97\x00\xae\x34\x32\x7c\xe1\x36\x16\x06\xc2\xa8\xe9\xed\x7a\x48\xb1\x72\xe1\xe4\x4e\xff\x4e\xde\xf6\xb3\x64\x12\x90\x24\x62\x8c\xd8\xf9\x31\x2a\xf7\xde\x36\x9d\x84\x7b\x1e\xe7\xd6\x8b\xbe\x6e\xc3\x70\x83\x02\xd5\x17\x07\x47\xb2\x92\x40\xb8\x32\xc0\x98\xdf\x96\x9b\x99\xfb\x9b\x48\x3c\xa7\xa5\xfd\xc0\x73\x65\xe1\x5f\x7f\x73\x27\x02\x0c\x91\xdc\x16\x40\x99\x8c\xdb\x6d\x8b\x41\x84\x8e\x31\xb0\xe5\x4a\xb9\xe9\xfd\xe1\x9d\xcb\x48\x99\x86\xda\x01\x90\xfc\xbe\xf9\x80\xf9\x1b\x08\x12\xb9\xda\x14\x83\x03\x39\x8e\x08\x06\x81\x00\x91\x38\xcd\x4e\x06\xca\x38\x6a\xa8\x61\x6e\x4c\xe4\x21\xdf\x9f\x2d\x90\x3d\x6b\x2d\x71\x1e\x7f\xba\x8b\x11\x88\x42\xdf\x84\x2a\x8e\xd7\x71\xfc\x69\x75\x18\x62\x82\xca\x52\x3f\x98\x07\x7f\x1f\xf7\x47\x80\xef\x05\x14\x1d\x65\x95\x1e\x3a\xbf\x16\x7c\x2f\x02\x6c\x87\xc3\x52\xed\xf6\x25\x1d\xe4\xa5\x6c\x41\x19\x7c\x8f\x19\xe1\x9d\x4a\x1e\x41\x35\x19\xa8\x5d\x71\xfe\x7e\xee\xae\xc0\x13\xee\x0d\x2c\x53\x5f\x99\x98\xcc\x55\xd6\x9d\xa0\x31\xfe\x79\x03\x78\xc9\x2e\x7b\x95\x56\xa2\x29\x2b\xe4\xb6\xec\xae\x29\x62\x6c\x3b\xea\xd5\xba\x8d\x60\x2c\x52\x6b\xf7\xf7\xae\x23\x2c\x42\x59\x8e\xec\x13\x4f\x33\x77\x88\x10\x40\x5f\x4f\xf1\xcb\x7d\x9a\xa7\x95\xeb\xdc\x77\xeb\xd1\x27\x54\x0b\xab\x19\x9a\x6d\x00\x53\x74\x0b\x9e\x65\x82\xcb\x97\x5b\x04\xec\xe0\xfb\x91\x8f\x89\x48\x84\xff\xd9\xb0\xbc\x42\x0c\x80\xfb\x4d\x3f\x91\x58\xa4\x68\xa3\x40\x74\x4e\x56\xb7\x90\x01\xe0\xfb\x42\xa1\x47\x98\xe1\xf4\x41\xea\x2b\x13\xbb\xf3\xee\xf6\x29\x01\x74\x85\xb9\x28\x4a\x64\xa4\x9c\x7c\x4b\x1a\x79\xd8\x8d\x7e\xe4\xd5\x2c\xcb\x66\x75\x5d\x56\xe3\x8a\x98\xef\x06\x32\x1a\x45\x4e\x35\x99\xeb\xd6\x9c\x4c\x72\x37\x6e\x60\xc2\x71\x2b\x4a\x6b\x38\x99\xba\xe0\xad\x4e\x34\xf0\xa9\xf4\xbd\xa4\x8b\xc9\xee\xc0\x08\x2c\x8e\x23\x48\xf0\x03\xea\x63\x97\x9c\x2e\x8b\xbf\x20\xef\xcb\xdc\xe0\x07\xa0\xd0\x5e\x1a\x57\xe1\xfe\x79\xb3\x5f\x3d\xfd\x58\x6e\x77\x8e\x44\x02\xfc\x90\x98\x76\x49\x87\xc0\xd9\x80\x84\xf4\x5c\xff\xb7\x44\xb1\xc3\xb4\x22\xf8\x61\xe0\x47\xbe\xcb\x42\x72\x59\xdf\x35\xa6\x56\xb3\xca\xef\xf8\xa5\x9b\x48\x61\xa0\x88\x41\x0d\xa4\x2e\x65\x07\x7e\x08\x12\x5d\xe3\x6f\xb3\x87\x70\x90\x92\x04\x3f\xd4\x0a\x61\xc5\xdb\xa2\x7e\x29\xfa\x24\x2c\xf8\x31\xa7\xe8\x41\x54\x5c\x1e\xfb\xbf\x32\xc2\xb1\x87\xd6\xa5\x66\x3f\xae\x55\x80\xcf\x7c\xea\xdb\x10\xc5\x0a\xa6\xd9\x8e\xa7\xa1\x52\x99\x1b\x1b\xd3\xc4\x00\x06\x0e\x36\x08\xc4\x2b\x2f\xf8\x79\xe1\x88\x98\xaf\x50\x50\xb7\xd0\x9f\xe0\x33\x46\xe3\xc0\x89\x6e\xe5\x57\x1a\x67\xe3\x4f\xcb\xb8\x40\x28\x8e\x89\xdf\x51\xe4\xcd\x3d\x69\x12\x86\x89\xb4\x2d\x16\xdf\x00\xce\x69\x7e\xf8\x67\x53\xf4\x0b\x24\x89\x69\x02\x03\xfe\x59\xdb\x0f\x69\x8a\xc7\xb7\x2c\x45\x02\xc2\xd3\xbd\xfb\x5e\xcd\xde\x0c\x47\xc9\x7d\x51\x0e\x8b\x76\xe0\x73\x21\x1d\x4d\xbd\x52\x13\x27\xc3\x57\x5e\xe0\x36\x1d\x53\x47\xdb\x15\x86\x97\xea\x33\xaf\x67\xe0\xf8\xf7\x85\x27\xf0\x41\x45\xac\xf7\xe5\x6e\xf6\x88\x82\xaf\xbd\x00\xeb\x83\xf2\x58\x14\x95\x63\x45\x1d\xdd\x13\xf5\x22\x85\x5b\xd5\x63\x9a\xd7\x7d\xff\xf2\x64\x4c\x9c\xa0\x3d\x81\xfa\xe8\xaa\x3b\xee\x88\x32\x1a\x45\xa2\xb9\x6c\x78\x89\x60\xe3\xc9\xb9\x24\x54\x08\x14\x34\x60\xb6\x1b\x59\x73\xa0\x6d\x6c\x14\x19\x10\x44\x6b\x61\xaa\xc5\xd1\xb8\x19\xf6\xb0\x4f\x74\xe0\x77\xa9\xe5\x2e\x0c\x7e\xce\xb3\xcb\x20\x7c\xa0\x7e\x90\x70\x4b\x65\xfa\x98\xe6\xed\xa4\xb0\xa9\x41\xe6\x06\x84\x02\x63\x83\x6d\x21\x53\x9e\x6d\xe0\x94\x8e\x5b\xf9\x3f\x0e\xaf\xa8\x1f\xb1\xd0\xb0\x26\x20\xf2\x7d\x3f\x53\xaa\xbd\xd3\x39\x2f\x3f\xcd\x94\xdb\xb3\x29\xb1\x5c\x9c\x35\x2f\xeb\x95\x2c\x3e\x64\xbb\xfd\x7f\xfd\xd7\xfd\x9e\x36\x50\x2e\x2b\x52\x35\x82\x9c\x01\x0d\xbc\xd8\xca\xd6\x38\x71\x81\xf1\xd9\x81\xa7\x51\xb5\x08\x72\xf4\x0f\xbf\x38\xbe\x59\xa0\x81\xe0\x18\xdb\x0f\xc5\x58\x56\x8b\xe7\xfd\x6e\xb5\xdc\xd0\x41\xff\x07\xd0\x40\xc5\x0e\xd7\x70\x87\xe0\xd1\xeb\x8f\x1e\x5a\x50\xdf\xba\x84\x79\x73\x99\x1e\x8c\x7d\xb7\x8a\x8c\xcc\x8a\xec\xe5\x5e\x47\x33\x9c\x86\xda\xe0\x54\xdb\x38\x0a\x16\xbc\x2c\x8b\xba\x32\x1a\xff\x37\x3d\x5a\x1a\x69\x05\x86\x24\xfb\xf0\x34\xa8\xaa\x8f\x2c\x0b\x8d\xfd\x98\x8a\xbe\xd4\x63\x51\x23\x37\xed\x3a\x8d\x65\x82\x4c\x95\x55\x23\x2a\x59\xa6\x58\x62\xef\x39\x5b\x26\x17\x66\x5e\x62\xd9\xee\xea\xff\x3f\x6b\x6f\xd6\x9c\x3a\x92\xad\x81\xfe\x97\xf3\xd4\x0f\xfd\xa0\x29\x95\xd2\x7d\x03\x8c\xf7\xe6\x94\x6d\x68\xc0\xb5\xab\xaa\xe3\x04\x91\xc3\x4a\x50\x5b\x48\xb4\x24\xec\x4d\xfd\xfa\x1b\x5a\x39\x68\x40\x76\xd5\x8d\xb8\x0f\x5d\xdb\x4d\xa6\xe6\x1c\xd6\xf0\xad\xef\x7b\xcc\x6a\xc1\x72\x94\x7d\xba\xdd\xc1\x7a\xfe\x82\x3c\xc3\x9e\x8d\x28\xf4\x59\x90\x68\xcd\xc9\x2f\xf4\xe7\x44\xc2\x04\x62\x91\xca\x76\x1f\xdd\x8d\x09\x01\x20\x4c\x04\x8d\xb5\xdb\x27\xde\x3a\x70\x7a\xff\x0c\xa9\xe4\x61\x62\xb0\x99\x8b\x13\xd4\x4d\xbd\x6b\x5c\xda\x08\x42\x16\x86\x28\x06\x73\x40\x3f\x78\xc3\x32\x79\x27\xbe\x3e\xba\x24\x0f\xf5\x92\xd4\x64\x67\x67\x3f\x85\x9c\x52\x5c\xca\x73\xcd\xe5\x62\x75\x9b\x6d\x6b\xaa\x4d\xde\xc5\xfa\xe5\x71\xb5\x7d\xee\xd3\xa2\xb7\x8d\x52\x87\x03\x41\x94\x85\xd4\x59\x37\xdb\x26\x62\x1d\xb1\x13\x59\x93\xfd\x09\x45\xdd\xa9\x9a\x9b\x0e\xd2\xd3\x95\xd4\xc5\xf5\xbc\x56\x46\x8d\xac\xc7\x68\x66\x33\x24\x5d\x7f\x5f\x73\xc9\xcd\xd9\x5b\x73\x97\x46\x1c\x3e\xa7\x0c\xa4\x17\x5b\x47\x0d\x93\xad\x73\xe8\x33\xdc\x40\x28\xa3\x14\x43\x95\xda\x68\xc4\xdc\x4f\xd6\xbb\x14\x4d\x3c\x33\x54\x34\x7b\xaf\xe3\xfd\xed\x7d\x1d\xa9\x22\x5d\x72\xff\x01\x45\x73\xdb\x9f\xb2\xaa\xb9\x75\x88\x6b\x7b\x2a\x08\x42\xcf\xac\x8c\x3b\x47\x85\x80\x2e\xfe\x78\xee\x83\xf1\x93\x59\x9e\x2f\x58\x53\xcf\xb0\x44\xa0\x5b\x3a\x40\xea\x6a\x9a\x1a\x9a\xd5\x99\x1d\x75\x86\x67\x6a\x23\x0f\x95\xaf\x30\xb4\xa4\xb5\xb1\xd6\x6a\x5d\x1d\xfb\x18\x22\x88\xfc\x38\xf1\x03\xc7\xe3\xd6\x2e\xa6\x83\x7a\x36\x88\xfc\x54\xa7\x52\x2b\x6d\x76\x58\xe2\xcd\x37\xf8\x3a\x81\x03\x91\x6f\xf8\x6b\xde\x33\xf8\xe8\xc5\x76\xe6\x37\xa3\xd3\x3c\xb4\xde\xec\x41\x9c\x86\xca\x96\xe2\xb2\xcb\xd8\x28\x8d\x42\x4f\x63\xae\x0f\x29\x39\x00\x87\x66\x77\x66\x95\x43\x54\x67\xf6\x9e\xc3\x38\xc5\x85\xf7\x71\xfd\xfa\xf2\x30\x43\xef\x1f\xb5\x6a\xd0\xc4\xdc\xb9\x5e\xa9\x42\xd2\x82\xe6\x94\x55\xb2\xaf\x00\x02\x11\x21\x69\x98\xf6\xec\x1f\x26\x10\xb1\xe2\x9a\x53\x1f\xcd\xa3\x03\x93\xf2\xa1\x2a\x0b\xc0\x8a\xa8\x62\x54\xda\x0f\x11\x91\x80\xd8\xaf\x4d\x06\x02\x26\x62\x1e\x93\xb9\x3e\x88\x08\x78\x18\x44\x94\xac\x7a\x2b\x4a\x09\x43\x1a\x78\x88\x68\xe0\x47\x3a\x21\xf0\x9d\x55\xef\x50\x37\x4b\xd4\xf3\x73\x77\x4f\xdb\x1d\xc2\x46\x6b\xb5\x48\x96\x6d\x4a\x22\x29\x2d\x89\xb8\x0e\x79\xac\xd5\x3e\xb3\xd1\xad\xe1\xbb\x4e\x64\xa0\xa4\x1d\xf9\x9a\x31\x71\x6a\x8c\x45\xa9\x17\xa0\xd3\xf5\xc7\x1f\xfd\x28\x93\x6d\x0c\x18\x8b\xbb\x92\x99\xa7\xa9\xec\x04\x44\x29\x4d\xb1\xd6\x65\x51\xd6\xe7\x4c\xa0\xf2\x78\xdf\xc0\x8e\x52\x48\x31\x05\x96\x9d\x2f\x65\xd5\xa0\xb2\x4f\x85\x8e\xd6\x1d\x70\xc6\xba\xa8\x11\x23\x0c\x43\xcf\x1a\xa5\x6c\x4b\xe4\x20\x62\xb1\x1f\x9a\x3a\xb6\x7e\xc4\xf1\x2f\x13\xec\xd3\x81\x76\x88\x58\x9a\xda\x3d\xaa\x9d\x3d\x5a\xea\x69\x32\xe0\x12\xb1\x54\xe1\xbe\xbd\x5b\x2c\xca\xf3\x25\xcf\x5a\x8b\xd1\x6a\xc6\x9b\x2e\x9c\xf9\x48\xaf\xda\xfa\x94\xf3\xeb\x6d\xff\x51\x0e\xcc\xda\x88\x43\x68\x07\xa6\x15\x4c\x1d\xbd\x4a\x0e\xc2\x3c\x5f\x21\xa1\x5a\xd5\xa6\xc6\xca\x8d\x5d\xe1\x87\xa8\xca\x7c\xb9\x56\x97\xd6\x16\x85\xac\xe7\x8c\x45\x32\xd2\x15\xf7\x06\xcf\x21\xca\x65\x71\x97\x23\x80\x08\x98\x0e\xe4\x1c\xa1\xd1\x81\xc7\x7d\x6f\x5f\xb6\x7d\x84\x2e\x9e\xe8\x31\xff\xbd\x16\xed\xc6\x64\x4c\xcf\xc1\x5d\x13\x2f\x65\x58\xdd\xf3\x72\x3c\xb2\xfe\x97\x27\xbe\x47\x10\xaa\x62\x48\xbb\x7a\xf7\x4a\x82\x48\xe8\x78\xd4\x95\x3f\x67\xc5\x75\x42\x29\xd2\x76\x4c\x12\xe6\xd9\x7c\xac\xad\xb1\x00\x12\xc6\x3e\x5a\xdc\xdf\xb4\x2f\xb1\x29\xcb\x51\x21\x1b\x90\xc8\x8b\x71\x93\xbc\xe8\x92\xb9\x1f\x59\x73\xb2\x76\xd0\x94\xf7\x19\x47\x83\xb1\x41\x88\x4f\x70\x58\x6f\xca\xe2\xcf\x6c\xf0\x58\xd4\x93\x71\x57\xbc\xf7\x88\xf0\x44\xe4\x33\xae\x47\x08\xce\xe9\xff\x5a\xab\x87\x24\x51\x8c\x1b\x4f\x01\x1f\xbb\x86\x15\x12\x75\x45\xcf\x17\x96\x1d\xef\xb8\x8f\x26\xc7\x24\x49\x52\xcd\xa2\x7d\x40\xe5\xc9\xd1\xe3\x27\x4c\xa6\xd4\xea\x74\x54\x67\x86\xdc\x13\x4f\x63\x2c\x2e\x90\x44\x68\xd5\x1c\x09\xff\x9f\x52\xa1\x40\x12\xd0\x14\xd4\xed\x42\xda\x8e\xe7\xe5\xcf\x0b\x54\x19\xf4\xc8\x31\xff\xd9\x7f\xda\xd4\x8f\xa4\xd3\xaa\x1d\x6a\xf7\xd9\x1e\xc0\xfd\xc8\x51\x65\x68\xd0\xf7\xa8\x0b\x93\x21\xc2\x39\x11\xa8\xa6\x41\xb0\x07\x95\x15\xf2\xa5\xfc\x9e\x15\x86\x66\xf2\x3b\x30\xab\xc0\x69\x8e\xe2\x41\xe4\x33\xcb\x05\x54\x55\xe5\x87\x2e\xd0\x9f\xc8\x32\x10\x4e\x42\x04\xd8\x76\xfc\x9c\x7f\x63\x1d\x21\x42\x32\x24\xa1\xc8\x2c\xf5\xb3\x86\x11\x7d\xab\xca\x8f\x61\x05\x0f\x10\xe9\x05\x44\xb3\x4d\x1d\xaf\x39\xab\xba\xc2\xa4\xe1\x7d\xc8\x48\x44\xbd\x20\x20\x92\x18\x8f\xb7\xec\x9e\x27\x4b\x20\x89\x95\x79\xbb\xcb\x42\x95\x95\x80\x5f\x6e\xa2\x67\xe5\x10\x10\x80\x71\x0b\x3d\x68\x9f\x4a\x94\x56\x1c\x05\x21\x08\x00\xc1\xd0\xa0\xe6\xd0\xdb\x95\xaa\x11\x2e\xbd\x41\x94\x9f\x60\x0a\xec\xa2\xd7\xae\xe0\xc0\x06\xc6\x06\x51\x8c\x21\x07\x36\x6b\x1a\x66\x2b\xb3\x21\xf6\x42\x1f\x33\xed\x7f\x64\xc7\x3f\xd8\xb1\x3f\x8f\x62\x4f\x25\x32\xee\x2b\xf5\xef\x2e\x4c\x40\x7d\xca\x2e\x73\xd6\x34\x79\xeb\x6a\xd7\xf3\xdb\x28\xa9\x0b\x71\x48\x7d\xae\x71\x04\x4d\x56\x0d\x21\x34\x10\x87\xa9\x76\x32\x3f\x32\x5b\xd7\x6c\xaf\x16\x51\xc6\x84\x5b\x7d\xd9\x19\x46\x84\xb0\x10\x47\x89\x87\xef\x70\xf6\x45\x72\x16\x62\x12\x49\xc5\x8c\x42\x10\x9c\x1f\xcb\xea\x6d\x88\x39\x86\x98\xd0\x08\xd9\x16\xc0\x00\x79\xfb\xce\x7e\x4c\x98\x87\x38\x4f\x93\x3e\x82\x3c\x5f\x64\xcd\xed\xb1\xac\x34\xba\xb9\x1f\xd5\x8c\x89\xa0\xd0\x71\xf3\x3c\xb1\x76\xd4\x6f\xe1\x1d\x99\x09\xb4\xbb\x13\x78\xfd\x51\x10\x13\xc5\xb8\x67\x0b\x3f\x56\xf5\x23\xc6\xeb\xec\x95\x63\x21\xd1\x0b\x51\x95\xa9\xb9\xb4\xc9\x9f\x98\x2a\x2d\xdb\x6c\x00\xde\x55\xf3\x51\x56\xe3\xb8\xe9\x70\xf2\xc7\x49\x2c\x3c\xa7\xcf\xc3\x94\x1a\x04\xcf\xe3\x84\xf2\x58\x3b\xcf\x4d\x95\xc1\xfb\x74\xb9\x3c\xc4\x89\x60\x58\xbe\x77\xa9\x34\x79\x19\x6b\x9c\xb7\x30\xbd\xe6\xc4\x69\x98\xa0\x4e\xf0\x5e\x67\x28\x1a\x71\x72\x16\xbd\xed\x41\x35\x15\x26\xc6\x09\xda\x21\xbe\x56\x5b\xdc\xc0\x60\xa0\x4b\x69\x7b\x27\x04\x4c\x06\x96\x5f\x6f\xf7\x98\x5b\x88\xd3\x54\x7b\xd1\x73\x01\xc5\x71\x51\x2a\x05\x30\x18\xc4\x69\xaa\xa1\x9a\xc0\xc4\x69\x96\x55\x0f\x55\x79\x19\x4c\xf8\x38\x65\x31\x32\x7d\xeb\x82\x39\x7d\xf9\x97\xb2\xe9\x91\x3f\xbb\x9e\x42\x27\x3c\xd0\x0a\x99\x1a\x7a\xa9\xd2\x72\xfa\x97\x0a\xce\x0e\x93\x00\x31\x23\x54\x17\x1b\x57\xf0\x9e\x95\x46\x3c\xcb\xd4\xc9\xb8\x3e\x2a\x40\xf8\x81\x1d\x93\xcb\xe6\xb4\x6b\xf8\xf4\x9e\x1b\x33\xa5\x41\x2b\x76\x4b\xd8\x5d\x60\xec\xe5\xc4\x5c\x70\x46\x1c\xbf\x5a\xad\x35\xde\xb3\x09\x3e\xe3\xe9\x0f\xc9\x25\xe0\xb6\x6e\x8b\x24\x1c\x7c\x07\x83\xf1\x65\x67\x19\x0d\xdf\x80\xf0\x12\x24\x02\x39\x1c\x4e\xac\xde\x96\xf7\xcb\xb3\xed\xc7\x23\xac\xf5\x78\x2f\x1b\x18\x66\x78\x63\x19\xe9\xda\xb8\xff\x94\x59\xb1\x65\x02\x66\x85\xd4\x39\x85\x4f\x4e\x25\xe3\xd4\x14\xb3\x36\x97\x51\x11\xe7\x5d\xc5\xc5\xff\x3f\xb1\xa7\x58\xa6\x44\x50\x5b\xa9\xff\xfd\x3e\x61\x10\x83\x64\x08\x2b\x50\x9f\x68\x9d\x42\xac\x02\xc0\x3c\xf6\x2f\x2e\x72\x1d\x2b\xe2\x61\x8a\x77\x9e\x65\xc7\xf2\x8b\xb0\x75\xac\x78\x88\xe5\xc4\xa2\x3c\x5f\x58\xd1\x6e\x4e\x4f\x28\x1c\xd8\x0d\x6a\xea\xf9\x1e\xd2\x8b\x3d\xb0\xfa\x94\x49\x66\x9d\x37\x1a\xa4\x51\x20\x7a\xa3\xc2\x41\xd0\x81\x06\x2c\x35\x2c\x16\x85\xdc\x97\xbd\xcc\x9f\x5d\xee\x28\xf1\x42\x5f\x13\x58\xd7\xa7\xe9\x9c\xe6\x74\xe5\x96\x3d\x9c\x02\xd6\x54\xf2\xb2\x7c\x5b\xff\xba\xda\xed\xa6\x76\xef\xfe\x83\x52\xc2\xb4\xf0\x28\xcf\x9a\x4b\x7e\xad\x87\xce\x33\x25\x22\x42\xdd\x16\x7e\xad\xbf\x8a\xbd\x0f\xde\x1d\x8d\x7d\x8e\x53\x94\x77\x56\x14\xda\x5c\xa3\x5e\x10\x6a\xf2\x09\x24\xd3\x40\xde\x35\xbb\x0a\x50\x1a\x2b\x45\x7a\x22\xac\x7a\x2f\xe4\x25\x86\x62\x4d\x9f\x34\xf1\xec\xea\xab\xb3\x3b\xd7\x69\xfe\x73\xa0\xcc\x0f\x8d\x60\x62\x79\x19\x51\x22\x00\xe5\x89\xd4\x9c\xcb\xd9\x3b\x60\xc5\xf7\xbe\xc4\x7a\xfb\xc1\x2a\x4d\x85\x4a\x62\xde\xd7\x5b\x69\xd7\x95\xcf\x85\xdd\x87\x97\x90\xbe\x67\x69\xa3\x9f\xd9\x4f\xcd\xef\x32\xb2\x75\xa8\x0c\x74\x51\xf3\xb9\xec\xed\x14\xd3\xa7\x03\xe2\x63\x15\xc2\x43\x26\xb0\x30\xd5\xbe\x10\x05\x02\xad\x1b\x8c\xd1\x1d\x9a\xec\x0c\x87\xbc\x13\xf3\x81\xc4\xf3\x43\x94\x41\x7a\x82\x42\x2e\xca\xa2\x80\x51\xb9\x08\x24\x1e\xa7\x88\xb1\xeb\xe8\xca\xb4\x44\x31\xf2\x95\x3d\xb2\xdc\xaa\xcb\x41\xe2\x09\xbd\xc9\xea\x78\x20\x96\x89\x96\xe7\x33\x14\x12\x39\x02\x2b\x97\x8d\xb3\xe3\x3a\xf1\x7d\x0f\x0c\xca\xef\x5f\x57\x18\xb2\xd3\x40\xe2\x87\x29\x6e\xcb\x80\x80\xb3\x5a\x97\x8a\x4f\x4e\xcc\xc4\xa7\x02\x49\x6a\xb6\xeb\xd7\x97\x87\xc3\xd3\xf2\xe5\x9b\x05\x87\x41\xe2\x8b\x88\x87\x66\x7a\x69\x16\xce\xbf\x83\x1a\x86\xc4\x87\xc0\xa9\xe1\x1a\xa5\xc9\x61\x74\x38\x09\x13\x82\x66\x5a\x05\x47\x26\x47\x5e\x46\x12\x32\x8e\xfb\x4a\x01\x1f\xcb\x9f\xd9\x34\x80\x2b\x0c\xac\x63\x9f\x44\x3e\x49\xcc\x70\xd8\x3c\xcd\xf6\x5f\x01\x46\x21\x89\x88\xae\xbe\xeb\xa3\xc7\xc3\xc8\x3e\x70\x24\x23\x64\xce\x73\xbc\x68\xd5\xa2\x2c\xde\xb1\x04\x6c\x38\xbe\x12\x42\xb4\x0b\x59\xeb\xd2\x98\x4f\xeb\xab\x20\x21\x54\xcb\xe9\x1b\x54\x93\x21\x20\x9e\x7e\x71\xb1\xa4\x96\x61\xf1\xd7\xb1\x4b\x9c\xc4\x2a\x31\xcc\xa6\xc8\x66\x65\x41\x30\x9f\xec\x8d\xee\x20\x9e\x68\x50\x6a\xeb\x72\x63\xb1\xfb\xb8\x2e\xc6\xf4\xa4\x8c\x08\x27\x5d\x90\x09\x78\x04\x67\x45\x24\x54\x68\x83\xfb\x08\xcd\x13\xab\x9b\x5d\x56\x1c\x1d\xac\x28\xa1\x4a\x53\x35\xa1\xb8\xb0\x3b\x24\x09\x63\xb4\x82\xf6\xdf\xd7\xdb\xbe\x71\x93\xa4\x9e\xae\xae\x28\x2c\xe9\xfb\xbc\xbc\x1e\x4f\x6e\x56\xa5\xa1\x44\x48\xd6\xfe\x04\xaf\x79\x93\x9d\x59\x03\x3f\xca\x2a\x97\x0f\xd9\x31\x6b\x58\xee\xbc\x6d\xd3\x9d\x79\x8a\x50\xa7\x74\x38\xf1\xfa\x59\xe4\x5b\x46\x93\xf5\xb5\x59\xb0\x6a\xdc\xce\x23\x4f\x2b\x94\xad\x0d\x03\x91\x85\xc0\xb9\x3b\x66\x8a\x82\x66\xd8\x3c\x56\xac\x01\x1b\xbd\x68\xad\x93\xef\xe5\xd8\xf7\x4d\xb8\x8a\x71\x42\x89\x6b\x35\xa1\x06\x0a\x89\x08\x89\x43\xfb\x5e\x65\xd6\x18\x65\xa4\xe9\x10\x51\x22\xc2\x14\x3a\x44\xf4\xf7\xb2\xb5\x68\x6f\xc8\x14\xf1\x8f\xfb\x74\x58\x22\x94\xe6\xb5\xd7\x5e\xec\x3f\xb0\x43\xb7\x70\x27\x10\x84\x88\x68\xc8\x59\xad\xf9\x1c\x0e\xef\xc4\xde\x16\x18\xe6\x97\x42\x35\xed\xa4\xab\xfb\xcb\x7f\xf7\xb6\x20\xd2\xe8\x47\xa3\xe9\x79\xad\x8a\x76\x3c\x8c\x5e\x29\x00\xc1\x62\x55\x03\xb2\x41\xce\x82\x4f\x57\x8e\xce\x9d\x4c\x94\x4f\xb4\xb2\xc8\xa9\xfc\x40\x1a\xb4\xe1\xab\x50\x01\x25\x5e\x2f\x4b\xbe\x2a\xde\xb3\x06\xfa\x90\x7d\x48\x94\xe0\xf8\xa9\xac\xd9\x8a\x85\x08\xb6\x3a\x09\x52\x2f\xf6\x71\xb4\x18\xd1\xdb\xed\xd5\x71\xbd\x43\xea\x09\x88\x85\xf3\x53\xb5\x58\xf8\x63\x59\x21\xa8\x64\xdb\x3e\xad\xab\xb8\x87\xd4\x53\xba\xa8\x86\xe7\x4c\xbc\x7d\x2f\xdd\x5c\x48\x7d\x73\x81\xdd\x7e\xf6\x6d\x79\x08\x0e\xbb\xfd\x6c\xbb\x77\x8d\x89\x26\x4e\x44\xd5\x64\x53\x1f\x34\x7c\xc6\xd4\x4f\x34\xa3\x91\xde\xda\x8c\xd7\x54\x0f\x96\xfe\xd4\x4f\x13\x14\xc6\x42\xf7\x76\xb4\xef\xa5\x81\x47\xb0\xaa\xbf\xdd\x72\x50\x65\x6e\x76\x75\x2e\x54\x1a\x44\x91\x5d\x29\xb7\x70\x71\xbc\x96\xad\xa3\xf8\xb3\xa9\xd8\xbc\x2c\xe4\x28\xb0\x6b\x0f\x24\x14\x73\xc5\x07\xb4\x1e\x8d\x00\xd2\x8e\x29\xb8\xd3\x3c\xfc\x22\x9e\x90\x06\x22\x4d\xfd\x9e\x15\xb2\x2d\xf3\xfc\x99\x49\xf7\xf2\x02\xa9\x64\x62\x55\x2d\x98\x2e\xbd\x63\xba\xca\x43\x1b\x8a\xfd\xb1\x9e\x86\x3e\xc4\xdc\x96\xd8\x6a\x15\xe5\x4e\x66\x65\x38\x6c\xd3\x50\x7a\xa0\x31\xdb\x7a\x1d\xd4\x3c\x9e\xe3\xa7\x8c\x88\x16\x08\x67\xb8\xf1\xf6\x8b\x70\xa6\xa8\x95\x3e\x89\xe1\x0c\x4f\x49\xa2\x04\x89\xaf\x9e\x18\x87\x7c\x57\xe6\xa3\xd8\x53\x4a\x62\xaa\x3d\xbd\x4a\x04\x1e\xc2\x58\xde\x27\x6a\xc1\x27\x77\xee\x94\xa4\x21\xe2\x71\x2c\xd3\x75\x99\x0f\x8d\xcd\x94\x28\x8d\xb9\xad\xb5\x9c\x9d\x11\x83\x1a\x9e\x24\x0e\x78\x68\xd8\x83\xdb\x6d\xba\x0f\xba\xd8\xb4\x8f\xef\xdb\x93\xc5\x91\x87\x2e\x0b\x77\x52\xca\x23\x7d\x5d\x48\x63\xa2\xcb\xab\x2a\x78\x87\xaa\x71\x20\x57\x4b\x2f\x66\x7b\xb1\x00\x83\x15\xc7\x0e\x16\x92\x52\xa2\x85\xc9\x5f\x76\x9b\xfe\x5e\x91\xd2\x58\x87\x17\x9a\x12\x4b\x84\x86\x03\x80\x26\x44\x9b\xa1\x38\x64\x17\xd7\xaa\x2e\xab\x43\x37\xd7\x13\x02\x3d\xb1\xf3\xae\xc6\x76\x5c\xda\x3b\x5c\x70\xd3\x84\x6a\x72\xbe\xa6\x02\x70\xf2\xa5\x90\xa6\xd4\x0f\x7c\x97\x00\x52\xd9\x71\xc0\x9d\x6b\x3a\x31\x9a\xd8\x38\x4c\x3b\x41\x0c\xed\x77\x29\xb2\x41\x55\xca\xe8\x82\x2c\xd1\x01\x19\x76\xac\x60\x64\x26\xa7\x0c\xe4\x00\x9b\xb4\xbf\x07\x51\xa6\x3c\xd6\xf9\x4c\x1d\x68\x59\x77\x89\xe2\xc1\xb0\xe9\x97\xde\xf5\x7f\xb7\xf1\x9a\x54\x80\x66\x1f\x9b\x57\x2c\x2b\x9e\xe0\x98\x35\x3d\xdc\x52\x2a\x0d\x55\x8d\xde\xfb\xfe\x82\xae\x00\x52\x19\x6a\xd0\xae\x16\xa7\xce\xcb\x52\x7e\x59\x1b\x34\x3a\x1a\x08\x47\x5d\xff\xd9\x76\x35\x79\x98\xed\xc6\x74\xf5\xf0\x66\xbb\xd4\x68\x87\x7e\x32\x2f\x05\xae\xb9\x0b\x3f\xb2\x02\xd1\x12\x77\x42\x18\xb6\x9f\x70\x52\x3a\xdf\x59\x7d\x1a\x67\xa2\x99\x17\x0a\x9c\xc1\x86\x57\xe0\x15\x75\x24\x06\xc9\x41\xe6\xc5\x11\x37\x35\x14\x08\x54\x32\x72\xf8\xd7\x3e\x95\xa9\xed\xca\x35\x03\x35\x93\x72\x0f\xec\x3c\x84\x56\x7f\x69\x54\x33\x4f\x78\xe8\x6e\xb0\xa2\x28\xaf\x85\x40\x30\xe4\x4b\xe7\xae\x30\xdf\xe4\xef\x71\x3d\x94\x00\x28\x96\xb3\x85\xcb\x55\xd7\x44\x61\x1e\xaa\x9a\x0e\x9a\x31\x9f\x6b\xb1\x25\x93\xde\x84\xa2\xb1\x7a\x9c\xc3\x7b\x08\x7c\x0f\xed\x63\xac\xc3\x9e\xb2\x6e\x58\x10\x7a\x1a\xcb\x83\x22\x38\xab\xc5\x3a\xdc\x43\xdd\x7c\x87\xfc\x32\x55\xdd\x6e\x0f\xa2\x9e\x6f\x9c\x19\xc3\xa8\x5e\x0f\xe2\xe8\xa3\x37\x11\x24\x1c\x0b\x6a\x4c\x38\x4a\xe7\x2d\x27\xb5\x8d\x3f\x79\x95\xa1\xa7\x15\x6a\x90\xc1\xee\x0d\xce\x65\xd1\x79\xbc\x5d\xaf\xc8\xa3\x98\x7a\x33\x8a\x73\x5a\x50\x0f\xaa\x65\x73\x1a\x77\x4c\x3c\xac\x9c\x43\x2e\x9a\x76\x6a\x3e\xe6\xe5\xc7\x27\xd5\x5b\xc0\x08\xe1\xbc\xab\x90\x7e\x04\x98\x82\x5e\x31\x42\xb5\x88\x3f\x6a\xbd\xad\xfe\x02\xfe\xcb\x48\xe2\xfb\x26\xe4\xf8\x04\xcd\xc9\x08\xde\xcf\x9a\xef\xd9\x78\x2b\x67\x31\x4d\x68\xec\xc4\x2d\x7a\xac\xdc\xbd\x2e\x29\xc1\xd2\x52\xf3\xe0\x59\x0e\x68\x2c\x76\x45\x24\x63\xb3\x90\x51\x5f\x84\xd4\x4a\xd3\xd4\xc8\x11\x0b\x72\x0b\xe8\xb9\x16\x47\x8b\xa8\xdc\x21\x12\xc4\xcd\x2c\x1a\x26\x69\x3b\xcd\x4f\x59\x3b\xda\xda\xe5\x6d\x18\x74\xf0\xdd\xd9\xe3\x08\xe9\xe4\xeb\x2b\x47\x21\xb4\x01\x55\x0f\x30\x4a\x63\xd1\x13\x13\xb2\xb6\x5d\x47\x8d\x05\x2c\x09\xa8\x17\x3b\x48\xea\x16\x58\x8e\x3e\x85\xce\x10\xfc\xe3\xda\x13\x9d\x02\xd6\x7a\x0c\x5d\x52\xe3\x71\xaa\x90\x75\x68\xdd\xd8\xff\x3a\x1e\x8a\x51\xe5\x3a\xb0\x34\xd2\x11\x46\x74\x9f\x5a\x7b\x74\x7e\xfb\x05\x0c\xb8\xc8\x5e\x36\x4d\x24\x42\xf9\xb2\xa2\xb5\x63\x7a\xb1\x84\xae\x3e\xd1\xcd\x17\x16\x69\x8c\x46\x56\x3f\xb1\x9e\xf8\x57\x27\x02\x3c\xb8\x3a\xf7\x00\x85\x94\x1f\xb3\x42\xd3\x95\x7e\x9a\x87\xb2\x07\x10\x9d\x4e\xb0\x94\x10\x3d\xa4\x03\xe3\x24\x20\xe1\x00\x2f\xe0\x5a\x80\xc3\x80\x34\x01\xaa\x7b\x48\x2a\x13\xc2\x47\xb4\x71\xe3\xc4\x34\x6f\x5d\xf1\xf3\xdf\x8b\xf3\x32\xe9\x6b\xb4\xa6\x31\x92\xb5\xce\xf2\xc0\x46\x66\xd2\xe7\x48\x43\x90\x97\xcc\xee\x97\x23\xbd\x2e\x60\x92\x06\x5d\x62\xea\x3e\xa0\xc6\xa4\xa4\x88\x86\xaf\x34\xa9\x77\x01\xb7\x87\xf2\xa3\x78\xc9\x04\xe4\xb7\xe5\x7e\xd4\x19\x82\x88\x18\xaf\x6e\x67\x30\xf0\x26\x9b\xf2\xcf\xbf\xff\xcf\xe8\x94\x31\xd1\xe0\x4e\x56\xe5\x37\x63\x98\x75\x02\x4b\xc0\x40\xb8\xaa\x62\x43\xa0\xdb\xce\xe8\x5e\x42\x9c\x81\xd0\x25\x71\xed\x12\xfc\xf7\x64\x88\x80\x29\x9f\x32\x6b\xe8\xb0\xea\x1d\x5e\x2f\x83\xec\x06\xf7\x88\xc2\xc1\x81\xb4\x32\xb6\x7a\xd9\xb6\x31\x4d\x78\x6c\xa3\x21\x7f\xf5\x3d\xbf\x5e\xa6\xb9\x9f\x78\x98\x0c\x6e\x07\x61\x93\xa9\x0c\xaa\x7d\x39\x91\x4e\xe1\x81\xc7\x98\x19\x79\x1b\x1d\xa0\xd8\x57\x9a\xd4\xdc\x0d\x40\x6b\xe6\xf0\x30\x50\x92\x77\x59\xd5\xec\x4f\x18\x12\x68\x02\x0f\x63\x4f\x74\x88\x87\x2d\xbb\xd6\x5a\x44\xa6\x77\x8b\xfe\x40\x4f\xdd\x0e\x3a\x1e\x45\x34\x89\x7a\x1f\xa4\x7e\x2c\xab\x01\x69\x29\xf0\x88\xe8\x85\xe8\x08\xcd\xc1\xfa\xa8\x07\x56\xd7\xd0\x1c\xa4\xa9\x0d\x3a\xa8\xaa\x3c\xbb\xff\x37\x46\x20\xda\xf3\x48\x5d\x2a\x57\xbe\xb1\x73\x86\xce\x94\xf5\x57\x0e\xf6\x52\xc4\xe7\xf8\xf1\xbf\x95\xa5\xcc\xaf\xe2\xad\xa3\x79\x05\x4e\x52\xe8\xb1\x74\xb4\xa6\xf3\x72\xff\xbd\x29\x5f\x77\x0f\xa3\x57\x1b\x8b\x34\xd4\x2c\xcc\xba\x38\x79\xb0\xd9\x73\x1a\xa4\x68\x0e\xd8\xc9\xec\xc8\xe4\xbf\x10\x54\x04\x4e\xa5\x4f\xfb\x7e\xfc\x46\x63\x0b\x47\xc0\x00\xd3\x39\xf1\x39\x66\x56\xae\x85\xd6\xc0\xb4\x4b\x8b\x1b\x73\x49\x1c\x1b\x12\x5f\xdc\xf3\x7a\x1b\x03\x4f\x04\x57\x66\x4e\x1e\x5a\x3f\xf2\x3d\x6b\x6e\x07\x39\x64\xe8\x1b\xc4\x4f\x78\x2a\xe2\x44\xeb\x5b\xc3\x05\x4f\x77\xbf\x2c\xf0\x54\x4a\x8b\xef\x99\x43\x53\x6f\x34\x83\x83\x0b\x7c\x71\xe6\xf9\x48\x47\xf2\xf0\x7b\xaf\x6c\x94\x33\xc5\x64\x2f\x82\x36\xc3\x7c\xf6\x04\xc8\x8a\x73\x3f\x18\x44\x39\x70\xd5\xb6\x67\xe1\x44\x86\xa2\x93\x04\x5d\x54\x2c\x3b\x6a\x1b\xd2\x76\x50\x41\xe8\x3b\xac\xb5\xc6\xe6\x65\x7f\x82\x63\xcb\x01\x2e\x12\x81\xbb\x6e\x56\xbf\x00\xc8\xa7\x92\xb9\x41\x21\x98\x66\xab\xc0\x65\xb5\xf5\xa6\xb7\x20\xaa\x6b\x36\xa5\xee\x3f\x34\x69\x38\xf8\x21\x26\x86\x96\x2f\x0f\xc3\x8a\x6d\xe0\x10\x49\x0c\xa2\x5f\x1c\x21\xf8\xbf\xae\xac\x6a\xba\x42\x5b\xae\x62\x89\x4c\xd4\x9d\x14\x8b\x6e\x10\x1e\xd1\x54\x1e\xf3\xd5\xcb\xb7\xaf\xb2\xe7\xc2\x0f\x84\xc1\x29\xe4\x79\xbd\x2a\x8e\x55\xeb\x78\x95\xd7\xe6\x01\x2e\x39\x4c\x6a\x2b\x0e\x0e\x0f\x68\xc0\xa3\x81\x66\xeb\x86\x8d\x38\x29\x41\x84\x81\x8c\x48\x3f\x32\xfc\x23\x2b\xda\x91\x6e\xb9\x86\xb4\x0d\xd0\x5f\x0e\x44\x48\x42\xac\x4e\xad\xcc\xba\x5c\xc8\xf2\x6c\x9f\x2d\x64\x29\x46\x1d\xb5\x90\x45\x3b\x68\x31\x37\x35\xae\xdf\xfb\x34\x68\xd6\x5f\x14\xfa\x31\x16\x11\x79\x52\x23\x6b\x4f\xd0\x8e\x2f\x39\x60\x88\x03\x41\x58\x92\xea\x40\xc8\x47\x2f\xf7\xd3\x8e\x7a\x84\x9e\x23\xfb\xc9\x0e\x8a\x3b\x35\xe8\x7b\x3c\x9d\xa0\x51\x82\x09\xfe\x6f\xd9\x3b\x68\xfa\x48\xdb\x10\x7b\x98\x7a\x39\xd4\x60\xf6\xcd\xe9\x85\x40\xd0\x24\xc1\xd9\xe6\x02\x51\xee\x0c\xad\xc3\xdd\xa9\xa7\x19\x72\x13\xd7\x0a\x3a\x18\x5d\xac\xed\x28\x13\x09\xf7\xb0\x7e\xb6\x2e\x3b\x1a\x4f\x77\xa3\x09\x00\xc2\x11\xb5\x6b\x71\xbe\xd8\xd9\x24\xd2\x40\x5a\x16\x42\x6d\x9a\x62\xc4\xc3\x09\x67\x81\x60\x5e\x62\x2a\xf7\x77\xd7\x0b\x54\xef\x59\x6d\xf9\x91\x41\xb0\x58\x63\xf9\xdd\x3c\x1d\x71\x64\x40\xbb\xf8\x44\xba\x9e\xf3\x9c\x15\x5b\xa8\xc5\x15\x7a\x52\x66\xed\xde\x1c\xa7\xbe\xa3\x83\xb4\x42\x0c\xdd\xeb\x01\x5f\x62\xad\xcc\x0f\xc8\xf6\x65\x87\xe4\xe8\x3a\x28\x3f\x40\xd7\xf4\xfb\x72\xb6\xfd\x4a\x8b\x05\x84\x4a\x3d\x6b\x9f\x6b\x8b\x1f\x21\x42\xa5\x5b\x45\xa5\x4f\x42\x14\xa9\x38\xe3\xc4\x1f\x3e\x88\xf4\x21\xc2\x17\x5e\x63\xd8\x1f\x03\xf1\x3d\xa1\x04\x90\x41\xac\xa0\xaf\x25\xb0\x2a\xda\x8d\xa4\x7f\x03\x32\xe4\xb1\x55\x2c\xda\x57\xd7\xba\x19\x6d\xba\x32\x04\xa9\x1c\x9f\x88\x8e\xf9\x39\x1d\x57\x90\x51\x24\xf0\x4d\x19\xe1\x95\xdd\x25\x1f\xb1\x85\x83\x8c\xa8\x4e\x55\x31\x24\x55\x0b\xdc\x91\xa9\x87\xf5\x56\x56\xff\x60\x25\xca\x0d\xab\x1a\xdf\xb5\x33\x19\x59\x73\x96\x69\x7f\xd3\x65\x44\x24\x09\x95\x2b\x0f\x19\x4a\xe5\xda\x0e\x34\x8c\x3d\x0b\xff\xc9\x8a\xd6\xd7\x99\x80\x35\x48\x92\x08\x6a\xb8\xc6\x5a\x83\xba\x8f\x53\xfd\x2a\x5e\x2a\x89\x48\x90\xbf\x1e\x11\xef\xfd\x88\x83\xa4\x11\xc3\xda\x06\xc3\x00\x93\x97\x05\x4c\x56\xcc\x0c\xbe\x01\xa5\x7a\xc4\xae\x4d\x8e\x71\x53\x65\x7f\x22\x73\xe7\xe8\x73\xd3\x24\xc0\xf0\xcb\xb7\xe5\xcb\xd2\x4d\x31\x49\x93\x08\x91\x5a\xe8\x38\x35\xef\x3d\x6b\x42\xd2\x44\x7f\xbc\xcd\x76\x89\x85\xfd\xa6\xc6\x7f\xfd\xb8\xef\x44\xab\x40\xd2\x34\x41\x77\x7a\x51\x39\x6b\xd4\xb4\x24\x3e\xc7\x09\x2a\xc1\x16\x88\x6e\xaa\x52\x5e\xc7\xea\x2e\x20\xd3\x30\xf4\x3b\x32\xe8\x71\x63\x9a\x92\x4e\xaf\x78\x5e\x4c\xf1\xea\x99\xae\x8c\x4a\x7c\x7d\x59\xdd\x2f\x66\x9b\x4c\xc0\x48\x41\x79\x14\x39\x19\xd3\x1d\xc2\xd0\xfe\xae\x84\xea\x70\x18\x08\xd0\x69\x7c\xe3\x56\x33\xbe\x1d\xe9\x79\x83\x94\x3e\x47\x5c\x4f\x6b\xb0\x2f\xdf\xcf\xbb\x1e\xe8\x4d\x4a\x11\xe1\x72\xa2\x75\x4c\x0d\x63\xa6\x8b\xc1\x76\xc9\x7e\x29\x15\xc7\xb9\x26\x21\x67\xb7\xc3\xa5\x2c\xf3\x83\x7e\x27\x87\x7b\xb2\x65\x90\x40\x19\x2e\x0d\xc8\x30\xe9\xec\x91\x7b\x86\x4d\x90\xed\x78\xd7\xc2\xbf\x37\xce\xc4\x1b\x26\x7e\x5c\x93\x42\x07\xf7\x23\x93\xce\xd2\x90\x2a\x20\xb1\x85\x73\x9d\xb2\xcb\x84\xe5\x2e\x55\x14\xa0\xaa\xab\x91\x0a\xd6\x6b\xd3\x28\x27\x82\x94\x2d\xd4\x01\x98\x91\x21\x07\x33\x33\x77\xdd\x34\x05\x15\x43\x2f\xd8\x29\x6d\xae\x95\x45\x2d\x0d\xba\x83\x17\x12\x1c\x74\x79\x59\xbe\x5d\x2f\x0b\x56\x94\x45\x26\x58\xfe\x58\x56\x67\xd6\x27\x67\x06\xf0\xa2\x18\x11\x0d\xae\x3a\x13\xd8\xb9\xbf\x90\x83\x17\x53\x62\xe9\x23\xff\x7b\x65\x15\x74\x8f\x9a\x4c\xa3\x6c\xc1\x4b\x43\x44\xd9\xfe\xa7\xcc\x0a\x43\x2e\x36\xec\xd0\x9a\xbd\x58\x01\x7d\x2a\x57\x75\x8f\x11\x1d\x20\x08\x54\xca\x6c\x89\xe4\xf9\xd2\xc0\x21\x0c\x06\x8b\x2d\x04\x29\x60\x1e\xc3\x0e\xb4\xca\x3a\x24\x83\x7d\x78\x14\x65\x81\x90\xf8\x36\x39\xd4\x3e\xe1\x48\xb8\x7b\xf0\xdd\x20\x4c\x13\x2b\xac\xbf\xcf\x8c\x04\xf4\xac\x90\x46\x40\x7b\xb4\x4c\x42\x94\x68\x0e\x0b\x27\x59\x00\x55\x01\xd7\x09\x5e\x50\x00\x12\x11\x5f\x5a\xb2\x99\x75\x01\x0f\x9a\x2d\xc8\x3e\x3b\x21\x84\x18\xac\xfe\xb7\xf2\x7d\x6f\x57\x6c\xd3\x1a\x7b\x3e\xee\xe7\x96\x55\x4d\x0b\xf4\x4e\x3f\x41\xec\x8b\xd4\x4a\xb5\xe0\xda\x9e\x15\xc7\x5f\xcb\x06\x34\x33\xac\xbd\x5e\x4c\x53\xe8\xc9\xb8\xfe\xb8\x63\x48\xb5\xfd\x18\x45\xa2\xcc\xb2\xc8\xb3\x02\x7a\x3e\x08\xc4\xc2\x03\x07\x01\x09\x0e\x75\x79\x06\xc4\xc6\xdb\x66\xa5\xd0\x17\x42\xaa\x41\xa6\xe0\xf9\x3a\x4d\xbe\x0a\x40\x7d\x1d\xb3\x7c\x2a\x8f\x9b\x32\xcf\xc4\xed\x01\x44\x7b\x31\x39\x5d\xfe\x06\x54\x71\xa9\xc1\xbe\x4d\xc5\x3e\x25\xd2\x06\x48\x42\xcd\x9e\x89\xe5\x50\x07\x38\x5f\xb2\x0a\x0e\xb5\xe8\x4a\xc9\x20\x21\x3a\xce\x90\xd5\x46\xba\x4d\x47\x1b\xb4\xd4\xca\xe8\x64\x4a\xcb\x45\xdd\x80\x55\x03\xf4\x26\xa4\x11\x21\x71\x3f\x14\x51\x3f\x63\x36\x7d\xcc\xd6\x05\x90\x8a\x84\x6b\x4b\x1b\x1a\xf6\x37\x6a\x40\x21\x95\x92\x68\x59\xd7\x6b\xde\x1c\xea\xa6\x0b\x80\x60\x68\x56\xa1\xe9\xd7\xb0\xdc\x64\x09\xeb\x81\x0f\x0b\x2c\x62\x21\xeb\x84\x25\x03\xf7\x7b\x4c\xf1\xd3\x23\x12\x1d\xaa\xb7\xc1\x48\x63\x8c\x62\xb2\x1c\x7e\x66\xae\x5e\xdc\x1e\xc8\x43\x8d\xcc\x69\x8d\xfe\x52\x29\xf7\x73\x94\x5a\xc9\xf9\xa7\x52\xbc\x5d\x2f\x87\x3a\x3b\xdf\x0f\xcf\xd1\xd7\xe1\x44\xa3\x68\x75\xe1\x5d\x7f\x2a\xf0\x58\xf8\xc6\x7a\x44\xcc\xea\x02\x25\xdd\x2b\xf6\x91\x15\xc7\xfa\x4b\x77\x0d\x38\x4d\x31\x5f\xc1\xaf\x59\x2e\x5f\xab\x7b\x10\xf8\xf0\x1e\x44\x10\x98\xca\x4c\xac\x5a\x45\x13\x6f\x48\x61\x05\x20\x22\x8e\x40\x68\x9d\x8b\x43\x79\x80\xa1\x85\x07\x22\x86\xc4\x59\xe1\x4f\xe5\x31\x13\x5f\x23\x57\x40\x26\x21\x0a\x55\x16\xf0\xa3\x7b\xb9\x40\x68\xa2\x15\x23\x75\x6d\xc3\xc1\x77\x2d\x89\x17\xf9\x36\xa6\x9f\x15\x4d\xeb\xf6\xda\x14\xcc\xe0\x71\x20\x21\x48\xef\xc6\xcb\xf2\x6d\xc9\xaa\x02\x81\x67\xd3\x8b\x04\x30\x5d\x77\xb5\x99\xad\x7b\xc9\x30\x00\x45\x7c\x0f\x21\x7e\x72\x71\xad\x9b\xf2\x3c\xc5\x75\x79\xbf\xe6\xab\x58\x21\x07\x35\x93\xd2\x0a\xd2\x8d\xdf\xc0\x70\x0a\x2b\x29\xf1\x61\x01\xab\xb9\x26\x0b\xa5\x40\x49\x40\xce\x16\xa4\x5a\xfe\xe5\x65\xfd\xc3\xdc\xa4\xf2\x62\x12\x0a\xe7\x5d\x44\xe8\xda\xf4\xda\xd0\x12\x51\x0f\xd9\xfb\xf4\xb2\xa0\xfc\xc0\x43\xdb\xb3\x35\x0b\xa6\x93\xea\xca\x0f\x09\x4e\x76\x09\x82\xdd\x40\x7e\x12\x66\x55\xbe\xe2\x02\xe5\xa2\xaf\xb2\x3e\x95\x4d\x5f\x7e\x1c\x54\x40\x53\x2c\x14\xe9\x53\xde\xff\xdb\x8f\xff\x6f\x74\xa9\x80\xea\x70\x2e\x6a\xb2\x48\x4b\xeb\x0d\x2a\x24\x9a\x80\xa1\x86\xc6\x70\x6f\x3e\x02\x58\x8c\xfe\xf0\x14\x61\xcc\xf1\x4a\xff\xbd\xc2\x75\xc0\x98\xa5\x22\x2f\x08\x0d\xec\xa0\xb5\x6a\xeb\xf6\x91\x07\x4a\xb5\xa0\x22\xc2\x74\x58\xa5\x3c\xb7\x3e\x1c\x7e\xed\xc0\x1d\x1f\xa7\x1a\x52\x76\x85\xba\x7e\xcc\xb3\x8b\x6b\x48\x98\x0d\xc6\xcc\x5d\xd6\xbc\x5d\x8a\x31\x4b\xd8\x9a\x6e\x23\x7b\x48\x91\x20\xb4\xb5\x68\xf3\x5b\x03\x38\x86\xa7\x5f\x3e\x09\x23\xcf\xeb\x28\x25\x33\x81\x24\x21\x78\x80\xe9\x11\x87\x90\xd2\xce\x5c\xb3\x02\xe6\xc3\x8f\x13\x73\x85\xe2\xc1\x08\x66\xc7\xba\xf1\xa6\x3c\x88\xe1\xd4\x55\xb1\x60\x9e\x2e\x02\x56\x4d\x18\x8e\x6e\x99\xb2\x28\xee\x83\xc0\xdb\xe7\x7b\x2c\x2b\x47\x31\x07\x8a\x02\x45\x6b\x7b\xac\x58\x34\x41\x68\xa0\x92\x84\x62\x2a\xed\xcc\xde\x60\xd5\x6c\x7b\xc4\x37\xf7\x11\x08\x95\xfa\xb1\x25\x16\x58\x57\xd9\x31\x2b\x58\xae\x45\x2d\xed\x95\x53\x42\x30\x68\xb3\x38\x01\x54\xf5\x0f\x56\x0c\x6a\x45\x54\x1a\x13\x1c\x12\x5b\x60\xf9\x12\xf7\x8d\x61\x33\x8d\x38\xb7\xa1\x94\x6f\x79\xc9\x59\x3e\x4c\xbd\x2b\x64\x45\xb4\x5e\xab\x28\x25\x54\xb8\xd1\xe8\x92\xbf\xe1\x8b\x66\x94\xc6\x0e\x9d\xfb\x68\x69\x64\x3e\x59\x78\xdd\x13\x72\xa6\x67\x77\x6b\x6e\xfe\x15\xd4\xc6\x1e\x22\x34\x2b\xe9\x66\xb5\x58\x6f\x76\xa6\xa2\x11\x2a\x5d\xc6\x74\x17\xd7\x31\x07\x09\xcf\x4f\xdb\xd1\xf4\xfb\x7a\xbb\xda\x2f\x7f\xb3\xcf\x27\x12\x1f\x97\x4a\x04\x87\xb0\xfc\x80\x37\x7f\xa8\xc1\x92\x19\x83\x12\x69\x84\x20\x8b\xb7\x9b\xe8\x09\x3c\x80\x92\xbe\x51\x78\x6f\x2d\xc3\x17\xf8\xd9\x2c\x2b\x76\x18\x3a\x3b\x0a\xe2\x08\x51\xa2\x5b\x28\x2c\xff\x87\x02\x29\x2c\x44\xe8\xf9\x36\x13\xe2\x3a\xd8\xac\x15\x80\xc2\x02\x01\x0e\xcd\xec\xc8\xb2\xa2\xc6\x42\xbd\x4f\x96\x30\xc5\x63\xbc\x37\x4c\x77\x99\xac\xe0\xd7\x65\x9d\xfd\x97\xa2\x3c\x2f\x08\x91\x49\xee\x9c\x15\x7d\x58\xcc\x60\xc4\x2a\xcf\x23\x7a\x5f\xd7\x6e\xc7\x3f\x46\xa7\x10\x5a\x45\x88\x37\x37\x51\x5f\xf9\xf9\xd3\x60\x98\xf2\x02\x4f\xa2\x1d\x02\xff\xbd\xb2\xbc\x7e\x29\x17\x3d\xd9\xa0\xde\x5a\xa4\xbc\x20\x50\x18\xd2\x58\x3d\x3f\x2c\x7f\xab\x41\xd3\xf6\x75\x35\xef\x16\x4e\xa7\xbc\x90\xfa\x58\xa1\xa6\xe7\xdd\x47\x3b\x7b\xcb\x77\xa8\xa0\xcb\x5f\x8f\x1e\x38\x14\x21\xf2\x2c\x9e\x32\xa1\xd7\xaa\x5e\x91\x91\xf2\x42\x99\x60\xb1\xea\xe2\xdb\xbe\x37\x4d\x94\x17\x51\x85\x1b\x8d\xba\x22\x5a\xf9\x3f\x20\x06\x40\x2d\xe5\x45\x09\xc5\xfa\x9a\x5f\x57\x4f\x4f\xb3\x6f\xcb\xc3\xea\x65\xb1\x5d\xce\x76\xcb\x1e\x31\x85\xf2\xa2\x34\xc5\xf9\xc1\xb3\xbb\x62\x68\xd3\x83\x04\xca\xa2\xe7\x9e\xb3\xc2\x62\xbe\x3a\x45\xf5\x7e\x81\x60\xcf\x60\x1c\x9d\x24\xe2\xc8\xbb\xb0\xbb\xd6\xa7\xac\xdb\xd3\x95\x47\x58\x68\x9d\x55\xc7\x89\xdb\xee\x93\x9e\x36\xa2\x1d\xbf\xca\xeb\xee\xc1\x35\x32\x82\x6b\xe7\xaf\x19\x7c\xcc\xef\x11\x8e\xae\x97\x11\xb0\x2a\xf3\x9c\x35\x50\x61\xce\x69\x34\x86\x12\x13\xc8\x73\x02\x27\x2b\xf5\x02\xad\x57\x3d\xee\x17\x71\xad\xaf\x3a\x7b\xde\xd9\xbb\x48\x58\x8c\xb0\x90\x8f\xb2\x7a\x73\xb5\x39\xca\x4b\x94\xc0\x4d\xad\xbe\x72\xb3\x74\xb9\x14\xbe\x5d\xc4\x86\xe7\x4e\x09\x60\xb0\x8b\xd5\x52\xd9\x93\x30\xdf\x07\xc3\xd6\x89\x0f\x7f\xf8\xc8\xdc\x70\xe0\x3e\x45\xdc\x8c\x2a\xab\x8f\xd6\x10\xeb\x45\xee\xbe\x28\x2a\x54\x1e\xa7\x5a\x60\xe6\xb1\x2c\x87\xc3\x84\x83\x1f\x99\x30\xfc\xb7\x0a\xe0\xad\xd6\x45\x0a\x5a\x81\x70\x7e\x1b\xcd\x2c\x49\x54\xd0\xa3\x49\x9b\xe5\xf9\xb8\x03\x44\xa9\xd7\x0f\xd8\xdb\x48\xfd\xe0\xa9\xc1\x4f\x93\xf8\x2f\x79\xcb\x4d\xf6\x50\x79\x10\xfa\x9e\x89\xa3\x62\x41\x00\xa2\x33\x06\xcb\x9a\xf2\x80\xa4\x18\x7e\x99\xcd\x17\x0f\x83\x89\x02\x54\x46\x5d\x09\xcc\xcd\xa0\x8d\x6b\xd7\x0c\xda\xe3\xff\x66\xa9\x55\x5a\xbb\x6d\x71\x13\xb9\x7b\xe5\x8a\x26\xc2\xc4\x11\x55\xd6\x1a\x52\x8d\xcd\x0c\x29\xdf\x63\x29\x3e\xee\xb5\x86\x6a\xd9\x2e\x56\x30\xb4\x14\x95\xef\xd3\xd0\xa7\x1d\x6f\xc3\x33\x2b\x6e\x86\xb6\xc1\xed\x3a\xff\xfc\x0c\x72\xa0\x7c\x3f\x21\x61\xec\xf2\xa6\xae\xc0\x4c\xf9\x3e\x68\x56\x87\xba\x53\x3a\xe9\x6c\xaf\xe1\xec\xf3\x83\x38\x48\xfc\x5e\x91\x73\x85\x35\xed\x23\x22\xb1\x64\x92\xb7\x43\xf9\x81\x92\x80\x21\xea\x52\x66\xea\x36\xff\x84\xe2\x4f\xf9\xa1\x17\xe3\x64\xda\x84\x0f\x06\x50\x69\x6f\x35\x0c\x62\x8c\x52\x8d\xa9\x81\x0f\x3f\x96\xab\x9d\xeb\x24\x22\xa1\xa3\x4d\x0c\x73\x12\x9b\xaa\xbc\xb4\x9b\x28\xd4\x93\x8e\xb6\xf2\x23\x2a\xd0\xf1\x68\xdc\x8a\xb9\x2a\x16\x2e\x5d\xa1\x7c\x02\x34\x30\xd1\xa1\x23\x3b\x83\x60\x95\x2c\x7a\xd5\x57\x83\xc5\xdd\x8f\x7d\x19\x6a\x1e\x93\x1a\xee\x60\x1a\xb6\x0f\x09\x51\x40\x40\x63\x8c\x6d\xd0\x75\xb9\xff\xde\x57\x3f\x55\x7e\x1c\xeb\xe4\x3f\xe6\x74\xee\x8c\xf3\xbb\x0f\x1c\x73\x2a\x3d\xa7\x81\x52\xf5\xa7\xc1\x34\x05\xbd\xf2\x63\x19\x63\x34\x46\x65\xaa\x39\x21\x40\xb3\x5b\x3a\x7d\x1a\x69\x8e\xb6\xd9\x6a\xfb\xb0\x5d\x6f\x0e\xbb\xef\xb3\xad\x5d\xed\xfd\xc4\xd3\xf7\x26\x2c\x0d\x99\x09\x67\xe2\xfa\x34\x1e\xb8\x89\xcf\x89\x23\x6e\xe8\x59\xee\xca\x4f\x22\x29\x35\x74\xf2\x58\xc1\x91\x35\x30\x3c\x7e\x74\xbb\x49\x0c\xd2\xb2\xad\x5c\x58\xdf\x18\xee\xed\x9a\x7e\x1a\xa4\x16\x56\xfc\xad\x2a\xaf\x17\xb4\xae\xeb\xa6\x13\x75\x32\xfd\x18\x8b\xbc\x8e\x06\x7a\x96\xe7\xb6\x2c\xc0\x00\xc5\x1c\x43\xcd\xf0\x26\x18\x68\x92\xec\xc7\xdd\x6c\xb0\x8d\xfa\x0c\x62\xf4\xa0\x71\x70\xce\xb6\xbb\xc3\x7e\x7d\xf8\xb6\x7a\xdc\xdb\x76\x1e\x72\xcc\xce\x8e\xc6\xb4\x90\x5a\x49\xcb\xd6\xba\x22\xab\xa0\x95\x9d\x1c\xa7\x07\x95\x0f\x8c\x45\x26\x81\xdc\x2f\x5d\xfd\x91\x35\xa7\x07\x10\x1d\x90\xe6\x7e\x5a\x29\x8f\x6a\x56\xf4\x1f\xb3\xe7\xc1\x8d\xab\x20\x4c\x2c\x5d\x3a\x88\xb7\xfa\x7a\xc6\x7b\x19\xae\x8a\xbe\x0a\xa4\x2e\xb2\xb4\xb2\x64\x48\x7c\x52\x3d\x7e\x42\x22\xa7\x02\x2f\x0c\x08\xe9\x95\x49\x8c\xe2\xbd\x2a\xf0\x9c\x48\x4b\x21\x57\x45\xeb\xf1\x65\xef\x59\xcd\xa6\x36\x20\x73\x84\x0f\x52\xc5\x16\x25\xf7\x0e\xf9\x66\xb6\xfe\x5b\x15\x67\x2a\x08\x42\x1f\xab\x61\xb1\x3c\xcb\x25\xd3\x55\x10\x30\x65\xa5\xff\x83\xdf\x3f\xb9\x6a\x18\x0a\x04\xdc\xed\x20\xbb\x5d\xaf\xf6\xc8\x90\xf2\x48\x3b\xcf\xac\x39\x3d\xb0\x86\x1d\xde\x53\xdb\x16\x05\x1c\x43\x72\x2f\xaf\xfb\x5d\x97\x67\x51\x41\x44\x52\x2c\x2e\xc0\x50\xdd\x43\x56\xe3\x94\x01\xb9\x6a\xe0\xec\xa8\x44\x4d\x57\x4a\x24\xfa\x51\x1a\xee\x3e\xed\x9a\xab\x80\xc6\xa1\x34\x6a\xf0\x0e\xee\xde\x5f\x8e\x82\x44\x51\xf4\xdd\x9b\x72\xd7\xb1\x5d\xbb\x36\x5d\x86\x30\x62\x7f\x03\x69\x4c\xb2\x05\xbb\x0c\x99\x3d\x46\xef\x25\x8d\x79\x1c\xd8\xe4\x19\x22\xc4\xf5\x86\x36\xbc\xc5\x14\x7c\x84\x23\x35\x27\x93\xac\x99\x44\x41\xab\x80\xf9\x11\xf2\x1a\x41\x25\x92\xc0\x1b\x12\xe4\xa8\x80\xc5\x9a\xbe\xf0\x92\xb3\x46\x95\xd5\x59\x8b\xce\x0d\xe0\xf2\x2a\xe0\x5e\x88\x6c\x77\x4f\xb3\xb9\xfb\x29\x08\x70\x33\x58\xb0\xe2\x77\xd6\x33\x17\x03\xce\x85\x32\xcc\x8a\x47\xa8\x8c\x92\xd3\x9f\x23\x6a\x09\x15\x70\x11\x06\xa6\xb8\x7a\xb5\x5f\xdb\x83\x85\xaf\xeb\x1c\x26\x45\x17\xef\x02\x9c\x2a\x10\x29\x41\x58\xd5\x39\x2b\x9a\x59\x21\xfb\xa5\x31\xa3\x77\x2a\x04\x17\xc2\xd2\xab\xe3\x6c\x7e\xac\xca\xb3\xfe\x73\x28\x63\x3f\xba\x02\xc4\x88\xa8\x1b\x44\x7b\xba\x45\x31\x00\x4f\x2b\xf5\x9c\x31\x0c\xb9\x19\xaa\x3b\x0e\x6f\x01\xa8\x96\x9c\xbd\x54\xf0\xfe\xdb\x76\xd3\xd7\x20\x56\x01\x30\x15\x81\x83\x3d\x2c\x58\x47\x37\xfe\x95\x53\xab\x02\x80\x84\x9b\x10\x0d\xda\xb1\xf5\xfc\x36\x40\xec\x4e\x7b\x70\x81\xf2\x34\x82\x0f\x27\x8c\x53\x72\x1a\x52\x2b\xa8\x40\x91\x04\x74\xa8\x2b\x93\x87\x8a\x75\x63\x4a\xa9\x20\xf0\x0d\x59\x25\xeb\x7e\x64\x98\xb2\x3a\x78\x3f\xbf\xd9\xf5\xd3\xb4\x85\x9e\x60\xa9\xe1\x04\x59\x5f\xa0\x98\x67\xb2\x9e\xdf\xe6\x99\x94\x9f\x00\xaf\x55\xe8\x27\x0c\xa3\xcc\xdf\x7f\xf9\xbe\xf8\xbc\x7c\x5a\x85\xbe\x84\x60\x8c\x45\x7e\x2c\xab\x45\x5e\x5e\xa5\x8d\xbc\xec\x81\x0d\x39\x1e\x55\x18\x50\x3f\xd0\x2e\xb6\xca\xe1\x67\x6f\x00\x87\x41\x6a\x1c\xa1\x0b\xab\xc0\x16\xd5\x0d\x1e\x26\x8c\x62\xc4\x31\x65\xf5\xcb\xf5\xbc\x1d\x88\x4c\xa8\x30\xa4\x02\x53\x3a\x07\x6d\x38\xe3\xa5\xbf\xe0\x76\x50\x61\x28\x53\xb4\xca\xfe\x53\x66\xc5\xac\xd6\x56\x9f\x69\x8a\x18\xc7\x58\xc1\xe6\xb7\x6f\x83\x1b\x88\x04\x20\x75\x0b\x42\xb7\xb4\xc6\x8d\xca\x33\xd1\x6c\xa1\x2e\xf3\x6b\x17\x72\x57\x21\xf1\x15\xa2\x17\x1a\x1d\xe6\x97\x00\x67\x90\x8b\x53\xeb\x21\xba\x2e\xa9\xef\x99\x8d\xaf\xbd\xd9\x6e\xf4\xd8\x1d\x2a\x24\x82\x01\x38\xa6\x18\x24\x0f\x5f\x3d\xd4\x6b\xd5\x17\xe2\xb0\x5d\xa5\x26\xd7\xc3\xe8\xc6\x04\xa6\xf2\x2f\x37\x94\x90\x7a\x29\x2a\xcb\xf3\xeb\x0d\xa9\x39\xa7\x5f\x1a\x0d\x19\xed\x54\x55\x17\xac\x90\xb8\xc7\x8f\x99\x86\x26\x2a\x8f\x54\x48\x39\xc1\x50\x22\x4e\xb5\x4c\xf3\xce\xed\x72\x56\x9f\xb2\xe2\xd8\x07\x13\xa8\x30\x8d\x05\x8e\xe8\x76\xf2\x9b\xa8\x8a\x6d\x12\x51\x84\xce\x1a\x06\xfe\x57\xc5\x09\xaa\xac\xe9\xad\xba\xa1\x00\x42\x2c\x03\xf8\xb3\x51\x42\xfd\xc2\xf9\x0b\x25\xe5\x9e\x11\xb3\xc2\xc2\xe6\x9a\xdd\x25\x1f\x4c\x4f\xf0\x13\xac\x38\x5b\xd6\xa2\xe4\xac\x6a\xb7\xc1\xc1\xe0\x00\xc9\x31\xaf\x06\x86\x35\x4f\xeb\xea\xe8\x28\x57\x47\x51\xa3\x42\x50\x51\x68\x24\xbb\xf1\xf8\xef\x65\x2e\xa1\x6a\xcd\x6b\xb9\xd6\x67\x5c\x7c\xbe\x47\x85\x8a\x86\x98\x7e\x41\x62\xc3\xe5\xc3\x61\xf6\xf0\x6c\x21\x7d\x2a\x54\x8c\x23\x2d\x0c\x1b\x9a\x3a\xa1\x52\xd4\xaa\xee\x2d\x7f\x6a\x1a\x38\x3b\xc1\x0c\x58\x70\x6c\xcb\x44\x5e\x2c\x50\x78\x12\x53\x6c\xab\xc5\xda\x11\x52\xdb\xf6\x24\x40\x6c\xc3\x9e\xed\xd9\xde\xda\x10\x51\xe0\xc7\xb8\x78\xb4\x3e\xdf\x1d\x50\x51\x45\x41\x12\x22\x2c\xee\x3f\x92\xe5\xd0\x0e\x03\x79\x84\xfa\x56\xf7\x2c\x8a\x28\x94\x4c\x59\x1b\x6a\xd9\x9c\xf6\x1f\x00\xc3\xe0\x4d\x14\x4a\x89\x26\x02\x56\x92\xe3\x20\xda\x3b\xbf\xd7\x74\x89\x78\x88\x36\xe5\xf2\xb7\xfd\x61\xb1\x7e\xde\xcc\x5e\x7e\x3f\xec\x7f\xac\x5d\xb3\x62\x48\x00\xff\x08\x20\x39\x13\x6f\x36\x12\xd9\x9f\x18\xc9\xd0\xa7\x8a\x48\xa4\x70\xdf\x7c\x5a\xbe\x4e\x7f\x99\x88\xf0\x88\x98\xf9\xfc\x5c\xca\x6b\x0e\xf3\xdb\x8b\xf5\xaa\xee\xce\x26\xf4\x02\x5f\x94\x12\xd0\x46\xfd\xc7\xa8\x5d\xa5\x48\x19\xb3\x99\xed\xbf\x8f\xde\x61\x92\x42\x64\xf9\x52\x75\xa4\x61\xda\xb5\x8d\xd2\x88\x60\x72\xe7\xa9\x3c\x3e\x67\x9f\x8d\xa7\x28\x15\xa0\xcc\xf8\xdf\x35\xed\x64\x99\x5c\x1d\x22\xc6\x18\xa0\x92\x77\x7d\xc6\x87\x1a\x5e\x8a\x33\x0f\x4c\xa2\x7e\xa5\x51\xcc\xf7\xd0\x0a\x15\x09\xe9\xe1\x39\xac\x54\x78\xd6\xc0\xf9\x90\x61\x55\x8d\xe9\x01\x49\xe4\x75\x4c\x40\xc6\x06\xb3\x0c\x9f\xc3\x4b\xaa\x28\xf1\x92\x9e\x0c\x18\xba\x3c\x13\xf9\x28\x15\xa9\x54\xeb\x1d\xea\xaa\xdf\xfe\x94\x8d\x54\x9a\x24\x56\x05\xbb\x75\xf9\x3e\x71\xe0\x23\xc5\xc0\x51\x76\xa1\x01\xf9\x03\x59\xe0\xf9\xed\xe5\x7a\xee\x17\x55\x25\xff\x8e\x8c\xf3\x4a\xbc\x94\x71\xf4\xaa\x5e\x5f\x1e\x56\x2f\xdf\x9c\x53\xfc\x3c\x33\xb1\x6c\x45\xfc\x84\xa0\x75\xa7\xa5\xb7\x58\x7d\x5a\x5f\x3f\xf9\x4a\xc4\x17\x0a\xad\x7d\xae\x4d\xcc\x83\x13\x5a\x39\xa8\xb2\x3a\x08\x4c\xf9\x1d\xde\xcb\x8e\x0a\x47\x91\xc0\x27\x58\x17\x8d\x5d\xfb\x49\x08\x45\x82\x80\x0a\x53\xc3\xa7\xb2\xea\xdc\xc3\x10\x8c\x96\xf1\xeb\x17\x81\x4b\x12\x70\x1a\x69\x16\x81\xc6\x9d\x58\x85\x5a\xae\x01\xd1\x17\x23\x72\x51\x45\x42\x4f\x20\xc0\xe5\x7f\x67\x8b\x5f\x36\xeb\xfd\x61\xf1\xbd\xd3\x5a\x51\x24\x24\x09\xda\x36\xad\x4d\x79\x67\x45\x0d\x4c\xd1\x29\x00\xba\x22\x61\x0c\x52\xda\x7a\x87\x72\x44\x99\xa5\x48\x08\x1e\xb5\xfc\x1e\x05\xe4\xcf\xec\x67\x97\x9a\x52\x24\x8a\x22\x54\x74\x45\x5e\x89\xb2\x9c\x56\x54\x50\x24\x4a\x62\xe4\x5c\x7f\xbe\xb5\x7b\xf0\x5f\x01\xdc\x14\x89\x52\x0f\x6d\x9a\x67\xf6\xf3\x60\x59\xb3\xdd\x25\x85\xe7\x0b\xb7\xf3\x68\x70\xd9\x18\xc6\xa5\xe5\x38\xdc\x01\x41\xa4\xf4\x84\xfe\xd6\xfa\xdb\x5f\x40\x88\x15\x21\x5e\x90\x86\xfd\xca\xe6\x7e\x24\x86\x90\x84\x50\x8b\x35\x99\xb3\x3f\x9f\xa1\x39\x95\xd2\x8e\xe4\x6e\xaf\x22\x04\x04\xe6\xb3\xcc\x94\xfd\x15\x47\xd8\x83\x83\x33\x28\x12\xa7\x8c\x47\x1d\x1c\x65\xad\x10\x69\x32\xfd\xf2\xe2\x14\xe2\xd8\x51\xe3\xb4\xf6\x62\x27\x74\x71\x97\x4b\x53\x84\x06\x5e\x94\xd8\xb2\x8f\xe2\x9d\x39\x0b\x7b\xf8\x5d\x29\x21\x88\x42\xe9\x17\x21\xda\xbb\xa3\x54\x73\x1a\xd7\x1d\x47\xaa\xe3\x9a\x1c\x9d\x45\xfa\x31\xf4\x59\xa4\x6d\xf6\xd6\x9e\x2a\x49\x03\xac\xe8\x38\xb1\xfa\xf4\x77\x68\x0b\x15\x49\xa4\xd6\x2e\x31\xdc\x76\xeb\x6a\xc2\x8d\x21\xa9\xaf\xd3\x47\x3d\xa7\xdb\x27\xf6\x9a\xa9\x12\x68\xcb\x7c\x03\x0b\x38\x7e\xc8\x2a\x40\xf6\x7a\xeb\x2a\x10\x46\x34\x43\x2c\x22\x70\xe0\x10\xb9\xdf\x13\x4d\x4a\x89\x73\xfc\x78\xad\x3e\xd5\x2b\xf9\xe7\x70\xd7\x1b\x3e\x03\x4b\x39\x15\x7d\x96\x9e\x6b\xd5\xbd\x5d\x26\x12\xdc\xaa\x85\xe6\xb2\x1a\x6e\x61\x84\xfb\x12\xb1\x9d\xdf\x56\xfb\xef\xaf\xf3\xc3\xd3\xea\xe5\x17\x7b\x20\x97\x89\x19\x08\xcd\x4b\x29\x59\x8e\x20\xc0\xd7\xed\xd3\x60\x9f\x27\xc2\xf7\xb5\xa7\xff\x51\x1e\x84\x23\x54\x50\x44\xc4\x14\xb9\x76\x9e\xaf\x79\x93\x5d\x72\x58\x56\x55\x59\xd5\x43\x70\x87\x22\x02\x12\x64\x16\x5c\xbc\xec\x0f\xfd\x35\x9f\x08\x05\xe8\xba\x62\x0d\x55\xdd\x0f\xde\x11\xe5\x11\x4c\x9c\x9d\x6f\xbf\xa2\xa2\xae\xfb\x39\x41\x28\xf7\xc1\x14\x9a\x3b\x56\xd3\xe1\xf0\x56\x54\x50\xa7\x58\xab\x01\xc1\x7f\xa7\x78\x4c\x11\xa5\x88\xc7\x4c\xe8\xd1\xf8\x81\x5f\x9a\xea\xb1\x1f\xf1\xd8\xc8\xf2\xec\xb3\x26\xef\x28\x0f\x3e\x25\x96\x57\xb1\x1f\x87\xb8\x45\xf7\x88\x36\xec\x58\x89\x03\xdf\xc3\x6a\xc6\xd5\x62\x7d\x40\x30\xe3\xa0\x3e\x5e\xc5\x41\x44\x11\xd3\xf0\xf0\xc7\xfa\x05\x34\x6b\x9e\x6d\x89\x23\xab\x3e\x8d\xd9\xfe\x71\x6d\x90\x9d\xcc\x71\x00\x01\x8a\xba\xe1\x5e\xbd\x63\x39\x1c\x34\x61\xb4\x03\x45\x0e\xe7\x63\x1c\xd2\x04\xcd\x4b\x28\xe4\x6a\xb1\xee\xad\x38\x71\xa8\x08\x02\xdb\x0c\x79\x0d\x96\x8b\x4c\xbe\xd7\x38\xe2\xb1\xe2\x66\xbd\x99\x29\x95\xe5\x99\x8d\xc7\x4e\x5b\x4c\x31\x89\xb4\x65\x59\x43\x9e\xeb\x0f\xb1\x12\xa5\xbd\x2e\x49\x83\xb4\x2f\x71\x59\xc9\xc7\xb2\x9a\x89\xff\x5e\xb3\x0a\x4c\xd9\xe6\x44\xde\xc2\x1e\xac\x02\x8c\x89\xae\x9a\x2b\x77\x4f\x12\x13\xc0\x6c\x68\xa9\x14\x54\x9f\xa9\xee\xdb\xbe\x09\xe7\xac\xa3\xf0\x5d\x59\xa8\xa7\x8a\x69\xe4\x63\xd0\x91\x09\x51\x5d\x8d\xe2\xcc\xb4\x19\x13\xd3\x08\x10\x91\x7e\xbe\xcd\xb0\x48\xae\x97\x1f\x57\x31\x4d\x04\xa6\x72\x64\x65\xe1\x22\x2a\x4e\x02\x5d\x87\x82\xfb\xb9\xa1\x09\xb2\x84\x8c\xd3\xf7\x99\x44\x0c\xd9\x23\x8c\xa6\xe2\x6c\xff\xec\x2a\xef\x4c\x8f\x94\x13\xd6\x15\x7a\xf5\xb8\x87\x8c\x56\xd7\xfd\x6d\xb3\x48\x69\x98\xf6\xad\xf5\xb8\xb3\xa2\x57\x9d\x69\x7a\xf0\x48\xfb\xfe\x73\xa4\xd8\x14\xa3\xb7\x98\x8c\xce\xc7\x65\x80\xcc\xfa\x59\x3d\xab\x78\xd6\x54\xec\x2e\x92\x1b\x8b\xc0\xc3\xb8\xec\xf3\xf6\x13\xd9\x43\xdb\x2f\x94\x5c\x9a\x18\xc2\xd7\x01\xa3\x58\x0a\x89\xf0\x4e\x2c\x6b\xfb\x63\xb1\xae\x7a\x63\x1a\xc2\x08\xa1\x88\xbb\xf5\xe6\xfb\xea\xf7\x99\xfb\x39\xe2\x88\x3b\xfc\x80\xcc\x60\x8c\xf7\xa5\x0d\xb6\x4f\x8f\x60\x95\x6a\xc4\xb1\x7e\xb9\xb3\xcd\x6a\x73\xe5\x79\x26\x5c\x69\xaf\xed\xc6\x03\xde\x31\x61\x6e\x33\x71\x72\xcb\xe7\xe0\xf1\x94\x0a\xd0\xa5\x5d\xae\x8a\xf7\x32\x13\x59\x71\x1c\x85\x31\xa9\x27\x42\x89\xfa\x4c\xe5\xdf\x8b\x9b\x51\x4f\x72\x3f\x70\x75\xcf\xcb\xf3\x25\x2f\x6f\x70\x57\x96\x69\x3a\xb7\x76\xea\x18\xe7\x67\xaf\x1c\x72\xb0\xe2\x56\xbb\x2b\xff\x0f\x88\x66\xb0\x98\xd3\x50\x72\xe1\x75\x3b\xfa\x1e\xd8\xb9\x35\xf8\xec\xbc\xa1\x91\x11\x97\xd5\x0a\xee\x9a\x44\x61\x76\x3e\xf7\x4f\x41\x42\x1d\x9d\x7f\x5e\x3e\xad\x5f\x0e\xf3\xd9\x6e\x79\x78\x7d\xb1\x72\x02\x8a\x12\xa1\x05\xdc\xca\x62\x50\x74\xaa\x28\x01\x9d\xf9\xb4\xec\x29\x48\x6b\x6b\xda\xe2\x40\x23\x1a\xda\xc5\xef\x93\xa7\x8e\xd3\xc4\xa3\x3d\xee\x01\xcd\xad\x34\xec\x43\xd3\x00\x83\x47\x5b\xac\x01\x18\x35\x26\x29\xf3\x44\x57\xf9\x9b\xe7\xb6\xf8\xfc\x61\x54\x69\x38\x39\xdf\x68\xea\x45\xa8\xb0\xd0\x39\x19\x1f\x59\x73\xd2\xbb\x9f\x7d\x0c\x16\x00\x26\x04\xf6\xcb\xd9\x33\x1a\xec\xf6\x77\x12\x32\xdf\xac\xb9\x1a\x45\xfe\x15\xbb\xb2\xa2\xdc\x53\xc2\xc9\x9b\x56\x13\xda\x98\xb6\x5f\xa4\x91\x0d\xa6\xce\x62\xfa\xc6\x79\x1a\x23\xdb\xcb\x8e\x9d\x5b\xbb\x60\xbb\x88\x29\xfd\x22\x84\x49\x39\x4b\xac\x70\x91\xd1\x5d\x5b\x36\xa7\x67\xf6\x06\x95\x96\x67\x1c\x71\x21\x29\x2a\x12\xbd\x2b\x95\x28\x88\xdf\xf7\xa9\xa8\x48\x23\xc6\x1c\xdc\x54\xcb\xe7\xb8\xb7\x25\xdb\x1d\x50\x43\x03\x2a\x10\xac\x81\x07\x50\x50\x08\xd8\x5d\x79\x73\xbb\xf4\xd5\xd6\xb0\x2f\x16\x1f\xce\x8e\xc7\xec\x5a\x1c\x33\x14\xdd\x9b\x48\x0b\x52\xf0\x42\x8c\xac\x1b\xbc\x01\xf5\x06\x4c\xc0\x8a\x82\xaf\x40\x27\x04\x6c\x78\xc1\x36\x48\xc2\x9d\xc6\x4c\x6b\xaf\xef\x9f\x36\xbe\x3d\x4a\x79\xba\x62\x98\x5d\x2e\xbf\x42\x55\x67\x25\xd6\xa1\xcf\x9a\x49\xd0\x9f\xa2\x2a\xd0\x18\x46\xfd\x5d\x1e\xca\xe3\xf4\xc2\x44\x15\x8d\x71\x48\xee\xb2\xf6\xd3\x3c\x74\x20\x1e\xaa\x8c\xcf\xb8\x58\x3f\x6f\x9e\x96\x98\xfc\xde\xed\x67\xfb\x57\x9b\xfe\x4e\xbc\x28\x05\x36\x90\x55\x5b\x3e\xed\x17\x4f\xac\xea\x22\x7b\xd6\xcc\x48\x3c\x9a\xc6\x1a\x47\x7c\x7b\x2e\xab\x4e\x23\x43\x25\x9e\xf4\xb9\x21\xe1\xad\x59\x0e\xdf\xca\xce\x55\x4e\x7c\x4f\xa3\x67\xff\x58\xbf\x38\xa8\x59\xfb\x6b\x8c\x3a\x0e\x8e\x17\x20\xcf\x07\xdc\xba\x83\x07\x4c\xfc\x94\xa3\x67\xd8\x71\x34\xf4\xca\x46\xa6\x98\x3c\x55\xe2\x8b\x08\x0b\x70\x79\x86\x28\xcf\xa3\x35\x35\x92\xd0\xf3\x12\x66\xa2\xfc\x96\x01\x0e\xd3\x43\xae\x43\x2a\x83\xc0\x46\xf5\x91\x18\x89\x65\x77\xd9\x8f\x2f\x29\x6d\x54\x42\x42\x8a\xe0\x0b\x79\xbd\xe4\xa8\x2f\x30\xb2\x67\x13\x42\x38\xa6\xb2\x5b\xeb\xec\xc9\x7a\xf2\xd7\x7e\x99\xc6\xf0\x1b\x27\x24\x96\x48\x1b\x24\x4b\x97\xba\x33\x2d\xd4\xd7\xe6\x8f\x28\xcf\x17\xab\xf5\x37\xc1\x31\xa2\x12\x1a\x85\xca\xa0\x59\x7a\x6c\x19\x2a\xa1\x4c\xb3\xd9\xb6\xbe\xd4\x9d\x02\xce\xe8\x14\x2a\xf2\x53\x0b\xcc\xdd\x67\x48\xc3\x92\xf5\xa2\x10\x49\xe2\x03\x46\x7c\x9f\x4b\xbe\xfb\xef\x95\x39\x4b\x2a\x49\x7c\x15\xc5\x16\x5d\xb9\x61\x58\x41\x3d\x7c\xc2\x94\x7a\x18\x62\xe8\x93\x1c\x1b\x9c\x80\x3d\x09\xf3\x43\x49\xb5\x71\xa1\x65\xc6\x86\x67\x60\x1c\x10\x7e\xa7\xb2\x9f\x1b\xa8\x4c\xa4\x78\x72\xcb\x4c\x7a\x73\x3d\x61\x12\x74\xb6\x29\x7b\x07\xc1\x0a\x79\x6b\xdc\x60\x61\x40\xa4\xf3\x67\x1e\xcb\x6b\xd5\xd5\x7a\xb4\x8d\x3a\x6a\xb9\xdc\x2e\x68\xe0\x4f\x10\x2e\x98\x7e\x22\x22\xc2\x10\x37\xfc\xab\xf5\xe3\xb3\xb2\x18\xed\x15\xb6\x23\x15\x91\x70\x74\x7e\xbb\xeb\x79\xdc\x01\x12\x2d\xb5\xb7\xc8\xf2\x3c\x2b\x0b\x96\x55\xee\x66\x94\x27\xd1\x72\xd7\xdc\xa3\x1f\x25\x26\xe5\x97\xff\x9d\x97\x65\xee\xba\x44\x22\xd2\xee\xb0\x91\xe8\xdb\x88\xe6\x37\xdf\xeb\x9a\x95\x36\x88\x8c\xad\x81\xe6\x77\x8d\x5f\xb7\x0f\xe2\x56\x89\x52\xa9\x6f\x0b\xbd\x2e\x65\x51\x97\x95\xab\xdd\x54\xa9\x17\x50\x54\x74\x53\x87\x4b\x95\xbd\xbb\x5f\x43\x65\x53\xf1\xcb\x73\xd6\x8c\x6b\x4e\x55\xea\xc5\x09\xce\x4a\xad\xe7\x92\x99\xef\x3f\xbd\xb5\xa4\x7e\x20\x91\x9b\x0c\xb5\x10\xfb\x44\x20\x2a\xf5\x89\x16\x5f\x6d\xc7\xe6\x41\x0b\x6e\x59\xa3\x26\xf5\xa5\xaf\x9f\xbf\x62\xaa\x79\x81\x8f\xd6\xcd\x68\x0d\x2b\x0b\x4e\x18\xdd\x52\x10\x86\xba\x1c\x14\x6b\x85\x31\x7e\xbb\x37\x9c\xf6\x96\x03\x4d\xa5\x41\x94\x60\xc6\xd8\x44\x8b\x51\x07\xa6\xaf\x51\xf5\xe5\x32\x91\x06\x54\x73\xa8\x1c\x01\x41\xb3\x68\xca\x0c\x7b\x44\xbe\x8a\xd3\x4f\x99\x76\x06\xb4\xd4\x2a\x8d\x42\x0f\xd1\x44\x68\xca\xd5\x27\x56\xb9\x15\x3a\x8d\x64\x8c\x3b\x4f\x56\x55\x20\xaf\x22\xe3\xf9\x1d\x3c\x20\x8d\x14\xc7\xf4\x53\xeb\xd1\x35\x6f\xf3\xd2\xd9\x5c\x29\x91\x10\x47\xbd\xd5\x7a\x5f\x7e\x1b\xc0\xbe\x86\xf7\x1c\xfb\x3a\xb2\xd2\x6e\x05\xf5\x26\xbb\xb8\xfb\x8b\x43\x81\x41\xcd\x0b\xe6\xa3\x86\x3b\x6a\x1a\x4b\xf0\x1c\x9f\x55\x5d\x5e\x2b\xd1\x87\xed\xab\xb4\xb5\x57\xdb\x83\x51\x3f\x70\x32\x6c\x9d\x52\xca\x2d\x69\xdb\xbc\xe4\xa3\x37\x49\x99\x87\xb9\x51\xac\x00\xab\x05\xbb\x80\x6c\x4f\x05\xab\x62\x87\x93\xd5\x5d\x47\xa6\x58\x20\x89\x1b\xf8\x41\xb6\xc6\x71\xbf\xe0\x47\xa5\x54\x49\x6e\x70\x45\x03\x41\xca\xf7\xbb\xfb\x49\x02\xaa\x74\xad\xd1\x7b\x56\x43\xb5\x61\x95\x7b\x9a\x24\x4d\x88\xd4\xef\xba\xcf\xcd\x3d\x7a\x93\x09\x8b\xf0\x4d\xaa\x2c\xcf\xf5\x5e\x34\x90\x29\xfc\x77\xd8\x05\xf6\x7a\x7f\x06\xff\xf7\xcf\xbe\x45\x83\xbf\xa7\xa3\xc4\xcb\xbf\x83\xff\xb3\xd7\x90\x0a\x33\x66\xc7\xde\x7a\xfa\xef\xff\x1b\xdf\x08\x78\x48\xad\xc1\xa4\x1c\xcb\x89\x4d\xb9\x6e\x69\x1a\xc6\x38\xb0\xe7\x57\xe3\xec\xff\xc3\x35\x24\xf8\x4a\x76\xab\xa7\xd9\xd3\xec\xfb\xca\xfe\xce\x52\x8e\x31\xd3\x97\x87\xd7\xdf\xe6\xdd\xe6\x96\x32\x88\xc3\x10\x09\x15\x25\x9c\x33\xeb\xbc\xa5\xdc\xd7\xe1\xcb\x13\xa6\xf7\x4c\xb1\xf6\xf0\xe5\xf3\x50\x33\x51\xd4\x5a\x81\x22\xd8\x02\x13\x5d\x8a\x2d\xe5\x91\x2e\x08\x7c\x2d\x4e\x2c\x1f\xf3\xfd\xaa\x14\x58\x80\xcd\x12\x44\x29\x61\x6c\xe5\xa5\xc0\x84\xd6\x2b\x42\xef\xbb\x27\x60\x67\xda\x95\xaf\xbd\xea\xa3\x46\x49\x96\x85\xad\x5d\x74\x0b\x95\x4a\x42\xdc\xed\x2a\xcb\xa1\xb2\xaa\xeb\x6b\xeb\x0f\xec\x6e\x45\x73\x1a\x19\x37\x91\x3d\x88\xa7\x71\x32\x99\x9e\xb2\x1d\x20\xc6\xb1\xa9\xd1\xe9\xd3\xe1\x58\xe6\x29\x1a\x6b\x52\xf2\xdb\x43\x75\x3d\xda\x59\xce\x3c\xa5\xb7\x9f\xcb\xb1\xec\x87\xe8\x58\x40\x02\x84\xf6\x95\x4a\x75\x35\x60\x8a\x45\x44\xb1\xd8\x04\x74\x9e\x35\xb6\xd4\x35\xc5\x94\x44\x1d\xf6\xf4\xf3\xc2\x4c\xc5\x22\xae\xe1\x9b\xf3\xf6\x91\x6c\xae\x8a\x11\x8f\xa1\x41\xf9\x5e\xb6\xe6\xbc\xd3\xf3\x73\xcd\x52\xe3\x53\xac\xb8\x80\x71\xe0\x3f\xb9\x04\x01\x22\x2d\xb4\x6c\xfb\x4b\x79\x1f\xe6\x66\x31\x8b\x21\xec\x22\xf1\xf6\x32\xb1\xd2\x19\xac\x17\xf8\x68\xe7\x6e\x26\xb2\xcb\xdf\xe5\xef\x53\x8c\xd2\x04\x51\x3f\xaf\xcb\x01\x26\x86\x51\x43\x38\x59\x69\xdb\x73\xbc\x0a\xb3\xc4\x13\x31\x38\xca\x0e\x27\xf1\x90\x95\x45\x87\xb6\x64\x09\xe8\x38\xcf\x0e\x9a\xe5\x3b\xcb\xaf\xd6\x6d\x73\x98\xda\x6b\x0f\xc6\xcc\xd2\x40\xe1\x60\x3e\x95\x6e\xaf\x60\x69\xa4\x79\x90\xe7\x0f\xb3\xdf\x77\xb3\xa7\xa5\xfb\xdd\x28\xb6\x1a\xe2\x9a\xdf\x81\x55\x6b\xb5\x2a\x54\xde\x5f\x03\x59\x4a\x38\xa2\x03\x0f\x70\xce\x9a\xff\x2d\xf9\xa6\x1c\xf0\xdb\xff\xc5\x1b\xfa\xe7\x7d\xac\x9e\xa5\x09\xc5\x8f\x24\xae\xd5\xa6\xac\xb3\xc1\xc5\xb8\xae\x4d\x9b\x3d\xfc\xba\xda\xad\xb7\x87\xf5\x8b\xbb\x5b\x16\xea\xfa\x11\x0e\x56\x53\x56\x31\x1e\x87\xb8\x25\xaf\x16\xeb\xf9\x6a\x00\xc9\x66\x5c\x69\xfd\x20\x33\xe9\x8e\x03\x60\x10\x13\xb1\x26\x6f\xc5\xe2\x34\x77\xab\xdd\x2d\x8a\x58\xca\x3e\x05\xc8\x93\xa9\xb0\xf8\x01\x99\x3b\x45\xca\x90\x94\x31\x13\xe5\x77\x56\x2f\x3b\xcd\x7f\xc5\x04\x00\x72\xd2\x3e\xc3\x19\x06\x37\x25\x03\x29\xcc\x7e\xb2\x67\x3f\x57\xc5\xfc\x32\x32\xfb\x18\x24\x1a\x40\xf6\x8d\xdd\xe6\xac\x60\x05\x1b\x1c\x0f\x2c\x15\xc6\xb6\x7a\x2d\x5c\x58\xe1\x31\x67\x6e\x1c\x83\x08\x31\x35\x88\xcc\x24\x77\xa1\xa4\xf1\x47\xbb\xdb\x3b\xee\xb2\xf6\xd3\xce\x01\x03\x91\x06\xb4\x5f\xf8\x75\xba\x16\x6f\xee\x1e\x14\x98\xb0\x49\x21\x5f\x3a\x42\x74\xd3\xaa\x48\x00\x60\x9c\xb2\xfd\x47\xf9\x6b\x99\x5f\xbb\xa1\xaa\x62\xc5\x3b\x36\xbf\x01\x11\xab\x4d\x88\x30\x45\x3d\x4f\x13\x9a\x14\x57\x96\x0f\x28\x6d\x46\x57\x12\x0a\xa5\xb6\x37\x50\xd5\x65\xc1\x5c\xc8\x6d\x30\x09\xb9\x17\x06\x88\xdd\x37\x9b\xc7\x33\xcb\x8a\x1e\xdc\x92\x7b\xa1\xce\x46\xa0\x73\xf2\x84\xd1\xe9\x6f\xac\x7e\x42\xb5\x80\xc1\xe5\xb8\x1f\xc9\xd4\xb1\x16\x9b\x95\x7e\xde\xde\xf9\xbe\x62\x59\x9e\x15\xc7\x3f\x46\x38\x73\x7b\x1c\x27\x26\xbc\x6e\x73\x65\xdf\xae\xac\xb5\xb9\xc6\x74\x23\x8a\x07\x44\xa2\xc5\xad\x85\x11\x2c\x2c\xc7\x34\x86\xbe\xe6\x52\xd4\xb0\x65\xcc\x90\x0e\x5e\x1c\x0f\x39\xc5\x41\x7d\xa8\xa1\xd1\xc5\xf0\x63\xb5\x77\xc5\x43\xa9\xb9\x40\xb4\xde\x90\x45\xf2\xcc\x6f\x46\x67\x65\x74\x3f\x51\xc0\x31\x39\x56\x5c\xcf\xb6\x04\xdb\xde\x4d\x24\x62\x2c\x0d\x62\xa8\x88\xb0\xfc\x6f\xe0\x9b\x88\xb7\x6f\x28\xf1\x7c\xdb\x51\xfa\x48\x9a\x79\xd0\x3b\xdd\x88\x82\x53\x71\x12\x70\x5c\x24\x2d\x65\x61\xfd\x0d\x29\x59\xc6\xaf\x86\x70\xc9\xd3\x9e\x10\xfd\xac\xde\x41\x9f\x1f\x64\x52\x2c\x78\x60\xc9\xf0\x38\x0c\x10\xc0\x6d\x15\x87\xed\xe0\x9e\xb3\xe2\x6d\x52\x23\xc1\x1e\x47\xf4\x16\xf8\x98\xd5\xa7\x4d\x55\xfe\xbc\x23\xee\x77\xfd\xf4\x96\x6e\x42\x27\x7a\x45\xba\x13\xf6\x51\x3c\x4e\x13\x2b\xfc\xd7\x23\xca\x5e\x15\x0a\x09\x2c\xee\xea\xd4\x78\x2c\x28\x66\x54\x30\x7e\x38\xce\x7c\x0f\x9e\x90\x12\x22\x4d\x44\xf4\x7b\xd9\x98\x58\xc8\xf0\x26\x93\x98\x50\x6e\x75\xe0\xe4\xb0\x5a\x56\xf1\x84\xc6\x36\x18\x3c\xcb\x73\x9d\x74\x42\x49\x63\xcd\xea\xa0\x5a\x3f\x6b\x7c\x42\x29\x9d\x9a\x1a\xab\xd1\xbe\x1a\xba\x03\x3c\x25\x81\x47\x2c\xd1\xbf\x7e\xe5\xbb\xeb\xd9\xb6\xb2\x80\x68\x4a\xc8\xeb\xf9\xcc\xaa\x5b\x9f\x62\xc7\xf4\x10\x31\xc3\x2b\xa0\x2f\xf4\x1d\xf2\xfc\xfb\x4d\x76\xcc\x69\x8a\x4b\x01\xca\xd4\x3f\x30\x5d\xfb\x80\x71\x47\x35\x2e\xd2\x55\x5c\x91\x10\x69\xab\x98\x94\x5a\x94\x1f\xa4\x2e\x55\x1a\x5e\x51\x78\x91\xb0\x3a\x50\xcf\xec\xa7\x75\x2a\x87\x39\x47\xd3\xd5\x4f\xbc\xd0\xef\xbd\x4f\xac\xe8\x9f\xa4\xfe\x6b\xfb\xca\x88\x77\x6a\x04\x86\x21\xc3\x8e\x0b\xe1\x4b\x0f\x2d\x6d\xd4\x6b\xfb\x7b\x45\xa3\x4a\xf8\x4a\xdb\xfc\xab\xa2\x2c\xdf\xfb\xc2\x84\x0a\x73\x33\x4e\xfe\xcb\xa0\xcc\x67\xf2\x1d\xaa\x26\xab\xfb\xe9\x7f\x11\xf8\x00\xa8\x9a\x8b\xb3\x41\x55\xee\xf7\x90\xd1\xc8\x82\x33\x6d\xe6\xa3\x1e\x71\x7e\x29\x11\x92\x84\xb2\xce\x44\x34\xf1\xde\xe1\x6d\x86\x29\x89\x52\xb7\xf0\xdb\x82\x8b\xbe\xfe\xa0\x5d\xa2\x44\xc8\x23\x70\x72\x47\xff\xba\x96\xd5\xf5\x3c\x3e\x19\x10\x4d\xd6\xad\x59\x82\x10\xd2\x26\xb3\xda\x61\x4b\xfb\xdb\x9d\x39\x84\x84\xc6\x35\x82\x66\x25\xe7\x37\x54\xd9\x1d\x7e\x1c\x92\x10\xc4\xe9\xb6\x4b\xfa\xa6\x75\x30\x7a\x98\x5b\x41\x04\x20\xe8\xd3\x70\x4f\x3e\x77\x91\x7c\x11\x0b\xc0\xea\x0f\x13\x3f\xa9\xff\xd5\xdc\x5c\x93\x24\x48\xc7\xd4\x31\xe8\x6d\x41\x64\x97\x0c\x8a\x26\xb0\x7d\xa8\x1f\x22\x64\xea\x97\xb2\x68\xca\x81\x83\x25\xa8\xcf\xb5\x06\x8d\x73\xd5\xc7\x55\xd7\x4a\x50\x12\xe2\xda\x94\xd5\x9a\xf8\xaf\x28\x25\x4c\xa0\x3f\x04\x65\x81\xe7\xb9\xaa\x5e\x4d\x1d\x6c\x9a\x92\xc4\x43\x46\x8c\x0f\xc8\x34\xf8\x05\x35\x67\x6c\x91\x42\xed\xba\xa5\x01\x56\x4c\x5f\x10\x83\xd3\xec\x6f\x17\xe8\x6b\xc1\x2b\x91\x80\xa4\xda\x78\x41\x19\xd4\x59\x73\x2f\xa8\xa8\x44\xea\x47\x18\x70\x72\xe5\x43\xdd\x97\x18\xca\x67\xb9\xef\x92\x06\x5a\xf7\x5c\x73\xf1\x7d\x4d\x3a\x3b\xba\x96\xd0\xc1\xc0\xef\xdb\x1f\xcd\x5f\x89\xd2\x0f\x97\x72\x91\x4a\xbd\x0e\x3e\x56\xac\x28\x32\xf1\x36\xf8\x2e\x8c\x11\xc4\xe7\xc1\xcf\x06\xc1\xb3\xc8\x7c\x74\xca\x2e\xa3\x47\xe5\xbe\x1f\x19\xdc\xd2\xae\x34\x86\xe2\x78\xf5\xe0\x41\x8a\x22\x89\x07\x56\x4f\x25\xba\x46\x0f\xc4\xa9\x8f\x1f\xd1\xa4\xf4\x8d\x98\x83\x3b\xe8\xde\xf6\x10\x5c\xc4\x98\xfc\xe3\x59\xf3\x9e\x9d\x07\x4f\xc1\x05\x0d\x13\x8b\x45\x6c\xa0\x3a\x83\xcc\xee\xf2\x67\x42\x44\x5a\x4c\xae\x86\xe6\x50\x19\x9d\xce\x83\x82\x41\x2a\x46\x48\x10\xb1\x6f\x8b\x4d\x7b\xa4\xa9\x4a\x40\x20\x91\x53\x5c\x66\x72\x51\x9e\x5b\x9b\x6a\x12\x4c\x2f\x80\x08\x5d\x89\xd4\x0e\x99\xce\x8f\x1a\xe3\x03\x04\x24\x29\xb2\xd3\x23\xd5\xb2\xa8\x6e\x97\xa6\x3c\x54\x20\x5a\xd3\xbd\xbf\x22\x29\xdf\xe7\x9a\x47\xab\x7d\xb0\xac\x30\x30\xf9\x46\x23\x37\x6d\xa7\xc8\xf7\x3b\x10\x25\x86\xd1\x6d\x10\x6e\xf8\xda\x55\x92\x8e\x20\x21\xcc\x0f\xdb\x71\x7b\x30\xfd\xcc\x19\xa5\x17\x86\x98\x49\xca\x6a\x8d\x55\x9e\xb6\x13\xa4\x47\xbc\x58\xab\x1f\x5c\x6b\x37\x0d\xa5\xcf\xa5\x06\x22\x19\x5d\xad\x5c\x4d\xc2\x34\xa5\x0f\x54\x69\x59\x34\x9d\x3b\xd0\xe3\x6a\x50\x90\x62\x7a\x86\x4c\x1a\xac\x5e\xf3\x85\x79\x23\x23\xc9\x22\x07\xc1\x37\xb0\xd4\x41\xce\x4e\x46\x8a\x4a\xad\x1b\x7e\xc9\x99\x80\x1f\xd9\x9f\x77\x66\x80\x24\x41\x8a\x51\xc9\xd6\xe3\xc2\x05\x64\x57\xe6\xb2\x4f\x01\xa0\x24\x89\x28\x1a\xc2\x1b\x76\x03\x27\xd5\xb3\x60\x97\xac\xf9\x0c\x4b\x2e\x09\x49\x90\xc4\x76\x5e\xb1\x42\x9c\xa0\x93\xd4\x62\xf9\xd7\x54\xd8\x4a\xc6\x91\x2e\x3a\x57\x59\x21\x27\xcb\xd0\x64\xcc\x24\xc2\x3c\xae\x05\xca\x9c\x8d\x0e\x97\x9a\x4a\x6f\x96\x55\xb2\x2a\x2f\xcf\xc8\xd7\x34\x7d\x93\xb1\x49\xd5\x9f\x35\x8f\xe0\x40\xc1\x5b\x49\x2a\x58\xc2\x06\x88\xb9\xbd\x7e\x98\x95\x1c\x2d\x8e\x32\x21\x7a\xa0\x19\x50\xc8\x46\xeb\x3a\xde\x5b\x00\xc3\xc7\x48\x52\x1f\xa9\x7c\x51\xf0\x7d\x36\xeb\x4f\x72\x99\xf0\xc8\x28\xbe\x4b\x44\xc4\xed\xc7\x29\x27\x99\x70\x85\x2f\x01\x49\xe4\x6c\x99\x82\xd3\xcb\x51\x32\x11\x21\xce\xed\xc5\xf7\xe5\xe2\x97\x23\x6b\xd7\xba\x5e\x2b\x0b\x63\xf4\x49\x9e\x7f\xff\xfd\x9b\xfb\x8d\x30\xd9\x43\xcd\x02\x4e\x29\x0b\x4a\xac\x5d\xaf\x38\xa0\x86\x61\x65\x99\x83\xb3\x80\xbf\x4e\xb9\x4b\x1e\x12\x43\x68\xd4\x54\xd9\xf1\x08\xd5\x43\xc5\x3e\xd6\xc5\xba\x62\x22\xcf\xfe\xd4\x10\x37\x7b\x05\xe1\x69\x15\x91\xd6\xef\xc0\x87\x2f\xab\x5b\x9f\xd9\x4a\x49\x61\x0a\x15\x0f\x97\x76\x95\x68\x1a\x90\x06\xb2\xd6\x7e\x21\x05\x95\xc6\x40\x4d\x7f\x74\x11\x49\x5f\x13\x11\xce\xaf\x37\x5c\x7b\xfa\x86\xb4\x14\x24\xe4\x7e\xcf\x5d\x79\x2a\x59\xb1\xd5\xd3\xe7\x93\x13\xca\x30\xc0\x6a\xec\x03\x52\x92\xb2\x2c\xb7\x58\x44\x17\x08\x1a\x5c\x40\xa6\x89\xe5\x9b\x19\x66\x08\xbf\x8e\x65\x49\x29\x09\xe2\x33\x77\x00\x72\x3f\xa4\x73\x54\x12\x22\x50\x46\x2e\x17\x19\x72\xfb\x91\x3a\x09\x60\x8a\x79\x81\x9d\x0d\x31\x5f\x5f\x50\xbf\xc3\x75\x48\xe5\x11\xaa\x1c\xdf\x83\x25\x95\x1e\xcd\x3e\x95\xc6\x46\x48\x33\xfb\xb3\xb5\x4e\x7f\x94\xd5\xdb\x67\xfb\x5f\x2f\x74\x03\x9e\x47\x40\xc7\x8b\xab\x1a\x76\xa7\x12\x5e\xca\xc6\x96\x50\x0e\x1e\x15\xbc\x50\x20\xb9\xdf\x86\xdd\x90\xce\x3b\x7b\xff\x05\x46\xd1\x01\xf0\x23\x82\x1b\xd4\x7c\xfd\xf2\xba\x3b\xec\x57\xcb\xed\xc1\x3f\x60\xcd\xc8\x3f\x6c\x0f\x2a\x10\x04\x9e\x89\x72\xfa\x71\x21\xf4\x22\x8c\xe0\x89\xd6\xf4\x3f\x34\x27\x38\x34\xa7\x0c\x46\xc1\x40\x08\x23\x69\xb8\xd8\x4c\x88\xf3\xbe\x3a\x09\xc2\x54\xe2\xa2\xb3\xf8\xbe\x7a\x59\xee\x96\x87\xe5\x6f\x8b\xef\xb3\x97\x6f\x4b\xcb\x95\xa5\x20\xa2\x7e\x80\xe0\x6d\xcb\x54\x3f\x08\x2e\xbb\xbc\x41\x32\x8a\xfa\x43\xc4\x63\x1b\x28\x36\x88\xbd\x42\xd7\xb7\x7c\x89\x8e\x46\x21\xe9\x44\x87\x4d\xb5\x37\xf9\x49\x85\x36\xc4\x61\xc4\x53\x1b\x1c\xd1\xe2\x22\xda\x15\x9b\xdc\x52\x21\x4e\x53\x2c\xb7\x6b\x6c\x39\x9c\xbf\x6c\x4e\x1b\x0b\xe8\x05\x1a\x30\x9c\x0b\x4c\x2b\xe8\x6a\x17\xd4\x2d\xa9\x40\x99\xe8\x61\xa3\x30\x2f\x3a\xb0\xe5\x81\x72\x5d\x60\xdc\x63\x2b\x78\x2d\xda\x15\x46\xd6\xd3\xae\x19\x24\x5e\xa0\xfa\xb6\xf6\xf2\xe7\xf4\x34\x85\xc4\x57\xa4\xab\x9d\x6d\x1f\x0d\x63\x45\x23\xd5\x7a\xd3\x39\x0d\x35\xa7\xb7\x26\x09\x06\x69\xf0\x4f\xea\xda\xf9\x47\xa3\xd3\xa7\x5c\x53\x25\x34\x55\x76\xc9\x61\x5b\x96\xe7\x67\xe7\x85\x40\xaa\xe2\x20\x1c\xea\x34\xd8\xcd\xa6\x37\x41\x5a\xa7\x10\xf3\x32\x65\x2e\xa7\x75\x53\x3f\xfb\x77\xf8\x49\x79\xa2\xa9\x56\x51\x53\x0b\xbf\xc0\x27\xfc\xa2\x0a\x44\xc4\x10\x82\xbc\xbb\x5c\x9b\x22\x7b\xb3\x46\xe0\xf0\x7c\x22\x81\xd0\x54\xd0\xec\x4b\x2c\x3a\x6e\xdd\x3f\x8b\x4e\x1e\xbb\x81\x6d\xf7\xd4\x15\xb0\x81\x31\x25\xee\x86\xdf\x27\xf7\x2e\x78\x9c\x6a\x7e\x83\x22\xab\x4f\x9d\x34\xa8\x02\xa1\x02\xf4\xb7\x7e\xc3\x32\xc1\xaf\x40\x8b\x20\x43\xc2\x3a\x24\xeb\xfc\x9a\xbf\xf5\xc9\x84\xea\xcf\x21\xf9\x20\xc3\x14\xf5\x1e\x8b\xeb\xb9\x57\x5d\x6d\xbd\x5e\xb7\x70\x48\xe6\xd3\xc0\x15\x3f\x76\x58\x1f\x90\x9c\x46\x69\x47\xe8\x39\x49\x38\x01\xe0\x47\xac\xab\x7a\x2c\x9b\x11\x15\x47\xff\xfb\x00\x49\x31\xe8\x83\x8c\x92\xa2\xe9\xe3\x03\x41\x79\x0c\xb1\x8b\x73\x64\xca\x79\xec\xc0\x24\xa0\x82\x58\x40\x7f\xcd\xf8\x7a\xad\x50\x69\x88\x9b\x07\xbf\xa2\x44\xca\x60\x5c\x2b\xcf\x63\x18\x9b\xe4\xd0\xac\x8b\xb5\x94\xcb\x77\x28\x7a\x83\x56\x79\xa1\x8f\xd7\xd2\xef\x7a\x5a\x69\xf3\xb3\xf0\xb6\x39\x85\x1f\x70\x23\x04\xdf\xae\x0a\x76\xad\x6e\x37\xa0\x6f\x77\x95\x58\xca\xe7\x04\x13\x61\xed\xfc\x58\x61\x61\x9c\xf5\xc8\x55\x40\x14\xfa\x18\xc6\x14\x7e\x60\x0d\xe8\xdc\xe0\xf4\x94\x55\x61\xc0\x91\xda\xf8\x58\xb1\x02\xbf\x04\x0a\x09\x61\xa0\x50\xc3\x87\x47\x97\x0e\x43\x25\x6d\x6a\xfb\x66\x97\xe1\x91\xac\xbd\x52\x61\x94\x60\x58\x6c\xb5\xd9\xff\x3a\x64\x75\xd3\x6d\xc8\xe7\x54\x16\xf5\xf5\x8c\xe2\x0d\xe5\xfb\xb8\xfe\x5e\x85\x31\x37\xa1\x81\x45\x9e\x41\xd1\xb4\x66\xf7\x27\x0c\x4d\x2a\x4c\x3d\x0c\x8d\x9a\xac\x99\xa9\x61\xb8\xb9\xa5\x47\x85\x69\x84\xf2\xa6\xc7\x72\x77\x2a\x5d\xee\x5b\x45\x7e\x80\x59\xed\xd5\x62\x0d\x03\x00\x83\x8a\x68\x94\x68\xb1\x82\x39\x34\x9b\xb2\xae\xb3\xce\x3f\x53\xc4\x0f\x14\xbb\x8b\x80\x6a\x24\xcd\xe8\x3d\xc4\x7e\x84\x4c\x8a\xe7\xdb\x9c\x89\x37\x1b\x04\xb1\x8d\x24\x70\xf9\x96\xc1\xee\x3c\x7a\x15\xd4\xd7\x4a\x60\x9a\x80\x66\xc1\x1a\x38\x96\xd5\xed\xab\xc9\xaf\x68\x14\xe0\x46\xbb\xbb\x56\x47\x18\x1b\x4a\x8a\xa6\xd4\x37\x17\xfe\x01\xd9\x66\x32\x36\xa3\x12\x11\x87\x7a\xc7\xaf\xaf\xf0\xcc\x7e\x9a\x74\x70\x3f\x0d\xac\x52\xcf\xc3\x64\x79\xeb\x5b\x7e\x00\xbc\x1d\x3e\x10\x11\x69\xf7\x7b\x95\x86\x9e\x41\xae\x34\x4d\x0e\x9f\xe3\x0b\x14\xf3\x28\x92\xc7\xd9\xfa\xb8\x51\x6b\x14\xda\xa9\xfc\xb8\xdb\x8f\xde\x0e\x53\x61\xa0\x23\x2c\x1a\xab\xf1\x00\x39\x34\x30\x99\xb6\x56\x3c\x00\x03\x76\x2b\x3f\xb6\x46\x89\x60\x78\x36\xce\xb5\xf1\xb7\x2b\x8d\xdd\x37\x94\xf7\xea\xcd\x79\x91\x26\xbe\x1a\xa4\xc0\x27\x22\x57\x4a\x88\x48\x84\x8e\x6c\x02\xe5\x02\xcf\xd7\x9c\x35\xd9\x3b\xe0\xe4\x79\x77\x4c\x4a\x4a\xfa\x02\xf1\x89\xfb\xea\x0a\x8f\x79\x76\x59\x2d\xd6\x9f\x96\x96\x7c\x19\x69\x51\x92\xc7\x38\xae\xdf\x0d\x37\xcb\x1d\x2c\x40\x01\x23\x68\x62\x1c\xac\x1f\xbe\x2e\xe0\xb5\xc8\x9a\x55\xb1\x6b\xc6\x54\xdd\x4a\x29\x3f\x05\x23\xac\xd0\x18\xbe\x97\xb2\xfa\x51\x95\x0d\x20\x92\x64\x7a\x52\xaa\x90\xa2\x2d\x60\xcb\x00\x77\xab\x3f\x74\xb6\x94\x79\x1e\x12\x8f\xfd\xcf\xff\xf3\x3f\xbf\xfb\x07\xcd\x2a\x6e\x74\x84\xd0\xf4\x72\xf3\xb0\xed\xc8\x00\x85\x63\x3f\x20\x73\x22\x95\xa6\xc9\x0f\x35\x02\x70\x77\x62\xc5\xcf\x8e\x52\xad\x6d\x01\x81\x88\x06\xe5\x28\x39\x6d\xdc\x04\x1b\x15\xce\xc8\x76\x52\xac\x2d\x7b\xfd\x27\x14\x18\xcc\xf3\x82\x20\xd4\xf8\xf1\x0a\x44\x59\x49\x34\xc6\xd0\x9a\xe8\xaa\x91\x7b\xef\xaa\x3d\x80\xfb\x34\x75\xf5\x6c\xda\x21\x7d\x2c\xab\xd9\xa5\x94\x50\x31\x59\xf6\x6d\x3d\xe6\x79\x61\xa8\xcb\x9c\x74\xf9\x35\x6a\x1b\x3d\xb0\x5b\x6d\xef\x36\x8c\x89\x45\xb8\xe9\xb0\xe7\x5a\x2d\x4e\x65\x26\xa0\x1e\x9d\x27\xf2\x83\xa4\x13\x9d\x1c\x56\x59\x61\x73\xc8\xa5\xc9\xf5\x37\x1a\xb5\x35\x2c\xa7\x6e\xfb\xd0\x10\x03\xe1\x18\x64\xdd\x54\x13\xb2\x9d\x6d\x27\x00\x1c\x5a\x59\x8d\x0c\xb4\x32\x63\xc5\x3d\xb7\x93\xe9\x4b\x22\x82\xd8\x09\x61\x52\x30\x7f\x0e\x9d\x47\xdf\x9e\x93\x90\x10\xab\xe3\x34\x9c\xfa\x2e\xee\xda\xf6\xe0\x09\x5a\x00\x2f\xd7\x3c\x7f\x66\x17\x47\x64\xcd\x3c\x2f\xe6\x1e\x26\x3b\x0e\x15\x1c\x71\x9c\x0f\xdf\x4b\x0c\x1e\xa2\x55\x2f\x18\x6c\xfa\x28\x9f\x9c\x90\x3a\xf3\x3c\xea\x13\x62\x2b\x81\x90\x0d\xe1\x6f\x38\xa1\xed\x61\x5c\xc3\x17\x4d\x3d\x31\x86\xe5\xea\xd1\x1d\x27\x32\xc0\x95\x6f\x03\xcd\xa9\x82\x61\x52\x0c\x9b\x93\x54\xfb\xdf\x98\x9e\x19\xea\x6f\xb6\xed\x8a\x60\x4e\xe3\x90\xd5\x2f\xb8\x58\xec\xcb\x65\x25\xe6\x58\x4a\x3f\xea\x9a\xa6\x1c\xf3\x24\x12\xf2\x86\x2d\x1f\xaf\x85\xf8\xdb\x16\xf3\xf0\x9e\x58\x18\x45\x3a\x73\xad\x73\xcc\xfe\xe0\x5d\x31\xca\x62\xd9\x0f\x4a\xbe\xc0\xc7\x56\x0b\x94\xd5\x8d\x56\x44\x9e\xe4\xc3\x6c\x0f\x05\x89\xda\xc8\xd6\xeb\xeb\xa3\x0b\x47\x43\x86\x29\x86\xce\x28\xf2\x1d\x1c\xbe\x2d\xf7\x87\xc7\xa5\x5b\x35\xb8\x17\x85\x30\x50\x82\xed\xd0\x41\x6d\x73\xec\x59\x8d\xa2\x87\x97\x95\xfd\x55\x78\x0c\xd1\xff\x4f\xe5\x31\xf8\xa4\xa2\xd3\xf6\x0c\x01\xed\xd9\x25\x06\xc6\x9f\x32\xe5\xd6\x0c\x91\x6a\x16\x1f\x86\x91\x41\x96\xc3\xb3\x8e\x95\x8d\x3e\xaa\x80\xd0\xaa\xed\xad\x5c\xa5\xa2\xe6\xa4\x72\x3d\x62\x1c\xe9\xe7\xac\x68\xbd\x7e\x07\x9f\xfc\x02\xd4\x63\x8e\x94\x94\x46\x26\x4b\xb8\x78\xdd\x3d\x4c\x04\x57\xb1\x13\x0f\xb4\xb5\x81\xeb\xd4\x77\xc8\xf3\x12\x65\x33\xec\xf5\xa5\x48\x7b\x2a\xda\xf5\xc5\x1f\x9f\x40\x32\x34\xee\x34\x4d\xce\x84\x30\x16\xf3\x3c\x10\x69\x1a\x76\x7c\x6d\x63\xe5\xf3\xb6\x07\xa4\x88\xb0\x86\x9f\x59\xdd\x58\xe0\xf4\xb0\x8b\xf2\xd3\x84\x75\x51\x36\x0d\x26\xb4\x6d\xb1\x06\xcc\x1f\xea\x32\x97\xeb\x6b\x53\x67\x12\x36\xcf\x7f\xb8\x66\x4a\xc1\x77\x42\x80\xd6\x2b\x19\xdd\xa4\x92\xa1\x48\x7a\x01\xac\x09\x1f\x04\x7b\xd1\xae\x2c\xe5\xd6\xda\x1d\xb6\x01\x12\xe4\x62\xc3\x9c\x23\x2f\xab\x11\x2c\xaf\xed\xa1\x54\xdc\x13\x90\xb0\x30\x50\xdd\xea\x7b\xa9\xd0\xd1\x92\x42\x54\x98\xab\xb4\xb8\x64\xe6\xf9\xbe\xef\xe1\x4a\xad\x0b\x61\xfa\x0d\xa1\x42\x4b\x3c\xab\x5d\x70\xf8\xf1\xda\x4b\x90\x0c\x16\x36\x3f\x48\x35\x33\x75\x85\xac\x33\xbb\x6b\x75\xc9\xaf\xb5\x25\x3f\x66\x9e\x1f\xfa\x54\xc3\xd9\xda\x0d\xf6\x7b\x76\x29\x5d\x43\x20\x51\xa4\xc1\x18\x07\x86\x58\x63\xf8\xfe\xfc\x90\xf0\xa0\x93\x0c\x51\x30\xfa\xc4\x7e\x48\xa4\xa7\x83\xf3\xbb\xec\x38\xb2\x7a\xda\x66\xc6\x29\x35\xe1\xc5\x2c\x6f\xc6\x07\x33\x89\xa6\xbd\x8e\x5a\x3d\xbc\x6e\x67\xfb\xd5\xfa\xc5\xdd\x1f\x44\x58\x04\xf0\xad\xbc\xee\x4e\x3a\x25\x8c\x8b\x9a\x69\x8e\x78\x8a\x3b\x19\x92\x99\xeb\x8c\xce\x67\x1b\x90\x4f\x04\xf7\x3d\xbb\x01\xad\x2d\x85\xda\xf0\x66\xa8\xe7\xa3\x6b\x27\xd8\x65\x83\x55\x04\x2e\x36\xd6\x36\x06\x3a\x61\x23\xca\xf3\xf9\x5a\x64\xcd\x6d\x91\x67\x86\x59\xbf\x6d\x25\x5a\x85\x47\x27\xe3\x7b\xc1\xa8\x2f\xac\x33\x3c\x8c\xa7\xdd\x56\x3d\xcb\xf3\x45\x59\xe3\x4b\xac\xc7\x8b\xe2\xbf\x07\xa8\xda\x81\xe6\xa7\xcd\x92\xb5\xe7\x4b\x53\x74\xb7\x15\x58\x36\x43\xdf\xdd\x21\xc8\x10\x15\x75\xfc\x00\x0d\xa4\x2f\x52\x88\xe6\x88\x84\x2a\xc4\xb1\x3d\xb0\x86\x59\x12\x99\x5f\xdd\x48\x19\x7d\xe6\x44\x05\x5c\x17\x3c\xe5\xc8\x82\xa8\xbd\x46\x84\xd4\x0c\x47\xad\xe9\x9f\x86\x4a\xa5\x56\xaf\x16\xe4\x90\xef\x9b\x79\x3e\x0b\x19\x96\xc4\x3d\x95\x47\x23\xde\x3f\xf6\x99\x87\x6f\x92\x45\x34\x11\x96\x3b\x17\xce\xb7\x45\x79\xe6\x99\x06\x42\xaf\xc7\xf9\xa7\xd1\xd0\x60\x91\xb0\x3e\xdc\xf3\x6d\x55\xd4\xc8\x2e\x54\xaf\xd5\x6c\xc3\xc4\x5b\x8f\x20\xc5\x74\xe7\x9e\x2e\x51\x3c\x5a\xb2\x51\xa8\x40\xba\x6a\xca\xc9\xfd\xc4\xe7\x42\xf3\x6f\x9e\xcb\xa2\xed\x7f\x60\x28\xbd\x37\x3e\xb1\x48\x6c\x3d\x82\x64\xd9\x74\x60\xad\xed\xa6\x18\xbd\x03\xce\xcd\x17\xcb\xb5\x51\xc6\xb0\x6f\x50\xf8\x51\x04\x96\x6d\x22\x13\x5f\xb8\xfe\x6d\xe7\x28\x49\x9d\xee\xde\xcf\x47\x80\x7d\xc5\xe4\xf8\xc9\x45\x1c\x28\x3d\x95\x6d\xd0\xee\x09\x2d\x76\x77\x45\x1e\x21\x92\xca\xde\xd4\xe3\xdd\x5a\x21\x81\x62\xa4\x67\xfe\xd8\x39\xa1\xcc\xf3\xc1\x67\x81\x6f\xc5\x33\xb5\x72\xae\x06\xa2\x0e\x64\xaa\x26\xcd\x04\x1f\x98\x8e\x6a\xcf\xa0\x2a\xeb\x9b\x3b\xa5\x92\x5c\xd3\xd7\xe8\x0c\xf3\xe6\x9a\x5b\xed\x8d\xa1\x55\x18\xf8\x91\x40\x52\x8e\x76\x1f\x5e\xe4\x65\x6d\xdf\x5f\xe0\xd3\x40\x1a\x77\x6d\x56\xd7\x78\x27\x83\x87\x09\xfc\x84\xc7\x26\x2d\x63\x26\xdb\x7d\x85\x53\xdb\x4d\x52\x63\x2d\xa1\xf8\x57\xeb\x42\x57\xa3\x2e\x01\x13\x89\x15\x68\x09\x67\xd5\xd1\x2e\x3a\x41\x20\x7c\x62\x35\x6e\x58\xfd\xa6\xfd\xd4\xd1\x03\x04\x92\xe1\xd8\xc2\x0d\x06\x71\x4b\xac\x58\x17\x73\x38\xb1\x5c\xad\xd5\x16\xc4\xb5\xaa\xef\x55\x50\x3f\x91\x8f\xb2\xe7\x84\x20\x69\x9f\x7d\xb6\x59\x3f\x3d\xad\x17\xeb\xd5\x8b\x63\x55\x9a\x3d\xaf\x5f\x5f\xf6\xf6\x06\xc3\x88\x69\xfd\x38\x4c\xb3\xea\xe1\x30\x73\x8d\x32\xc2\x0c\xcd\x16\x64\x26\xca\xc2\xfd\x0c\x54\x76\x85\x73\x28\xc5\xb6\x65\xc5\x9b\xce\xb5\x36\x65\x75\x5b\xfe\xbc\x64\x95\xa9\x5f\xf6\xed\x63\x46\x41\x12\xe9\x5c\xb3\xb3\x8f\x90\x7d\x0e\x99\x70\xfa\x39\x93\xe1\xf8\x08\x22\x60\x48\x1f\xf6\x3c\xfb\xed\x30\x6f\x6f\xfd\xf7\xc3\xac\x7d\xa6\xd9\x7e\xf9\xd0\x97\x6b\x67\x5e\x40\xb8\x40\x07\xdd\x41\x3a\xda\x01\xac\x25\x95\xc7\xb0\xd3\xee\x55\xc5\x61\x84\x0b\xcf\x25\x6b\x78\xe9\xb6\x8b\x20\x0e\x19\x31\x92\x2e\xc7\x52\xb2\xaf\x16\xa0\x20\x4e\x98\x4e\xf0\x8a\xf2\xdc\x9f\x17\x41\x9c\x46\x38\x74\x32\x30\xa9\xbe\xf6\x37\xa9\xe9\x30\x77\xd7\x42\xa1\xc4\xf7\xf0\x08\xc9\xf0\x6e\x1a\x60\xe7\x2e\xd2\xdd\xdd\x2d\xf5\x24\x17\x26\x42\x92\xbf\xf7\xc0\x0f\x6d\x5b\x44\x98\x49\x76\xb1\xea\x78\x08\x0e\x59\x71\xb9\x8e\x47\x33\x25\x02\x21\x70\xec\xd2\x9a\x3b\x77\x11\x02\xe6\x05\x09\x09\x71\xe6\xcd\x75\x91\xe3\x80\x0d\x00\x9b\x49\x34\x64\x8e\x32\x16\xf4\xa6\x7d\x98\xb5\x1a\x9f\x8d\x31\x2d\x24\xe6\xd0\x87\xbf\xb2\x2a\xc3\x34\xe5\x27\x51\xeb\xf6\x20\xa9\xa3\xce\x82\x75\xdf\x71\x0a\xfe\x6d\x9f\x9c\x85\x61\xd2\x25\x71\x36\x98\x18\xee\xec\xa7\x80\x85\x91\xa6\x97\x7e\xcb\xda\xcd\x44\xcf\xf5\xf9\x6d\x35\x99\x46\x67\xad\xdb\xaf\xf1\x32\x77\x1c\x19\x83\xcc\x00\x76\x8c\xd1\xe3\xbf\x16\x63\xe3\xd4\x75\x60\xc4\x77\xe2\x7e\xe3\x99\xcf\xa9\x2e\xe8\x78\x9e\xbd\xcc\xbe\x2d\x9f\x97\x2f\xfb\xc3\x7e\x39\x7b\x3e\xec\x5e\x37\x9b\xa7\xdf\x7b\xc9\xbf\xb6\x6f\xca\x98\x18\x30\x9d\xb6\x2b\xda\xfc\x36\xe9\x3d\x04\x22\xd2\x8a\x51\xff\xe5\x3f\x77\x18\x49\x1b\x0c\x32\x11\x71\x54\xf5\x38\x95\xb9\x65\xe0\x22\xae\x8d\x04\xb8\x3b\xb5\x4b\xd9\xaa\x68\xe0\x08\xd5\x2f\x70\xd3\xf9\x67\xdb\x45\xe9\x62\x26\x05\xb0\x71\x1b\x7e\x20\x83\x50\x53\xd4\x5e\xf9\x62\x68\x0b\x04\x90\x26\xd2\x84\xd7\x66\x72\xf4\x12\x42\x8f\x84\xa9\x31\xdc\xd7\xcd\x09\xaa\x67\x76\x19\x30\x7e\xd8\x6e\x3c\x01\x8d\xd7\xc6\x98\x46\xed\xe2\x2a\xa1\x9f\xa4\x5c\xb3\xe0\xbe\xeb\xc0\xb2\xf9\x3d\x88\x3d\x74\xb3\x3e\x00\xde\x36\xa5\xbd\x99\x30\xf2\x74\xb6\xf7\x5a\xa8\xaa\xfc\xd3\xbd\x94\x30\x0a\xb5\x90\x07\xb3\x3c\xac\x23\x03\x32\x8c\x88\x12\x06\xc6\xa1\xf9\xf7\x7b\xe6\x50\x68\x2b\x4e\xde\xcb\xfb\x5a\xf7\x89\x24\x05\xf3\x42\x12\xa5\x76\xcf\xdc\xed\x9f\x37\x77\xf4\x6b\x6d\x17\x02\xc2\x90\x00\xf6\x33\x97\xff\x1c\xf7\xd2\x7c\xa8\x52\x6b\x79\x8d\xcf\xc1\xb5\xfc\xc6\xc5\xc9\x30\x30\x2f\x8c\x95\xa7\xcc\x3b\x7f\x45\x80\xc7\x6f\x9b\xd9\x70\x04\x85\x34\x96\xca\xe6\x74\xea\xb7\x39\xb2\x67\xad\x1e\x0c\x0c\xc0\xf6\x49\x28\x42\x19\xd1\x7e\xd7\xc5\x6a\x9f\xe6\xa2\x98\x17\x26\x04\x70\xa7\xae\xaf\x17\x0d\x6c\x68\x2d\x90\xc7\xaa\x3c\x7f\x05\x36\x6b\x8f\x63\x4a\x5b\xbe\xd0\x2c\x2c\x11\xff\x1c\x9a\xfa\x13\x9c\x32\xf3\xc2\x34\x48\x70\x80\x1f\x5c\x2d\xcf\x67\x66\xfd\xe8\x38\xd0\x55\x1e\xa8\xa4\x06\xcd\x4b\xe9\xb2\x9b\x0e\xd3\xc5\xbc\x90\xfb\x80\x6c\x24\x87\x23\x34\x3d\x13\x69\x74\x2e\x1e\xc7\x18\xad\xfa\x23\xcb\x73\xa8\xb2\xeb\xb9\x0f\x48\x63\x5e\x28\x0c\xa0\xa8\x9d\xd0\xae\xae\x78\xc3\x2a\x76\xff\x3a\x26\x2a\x23\xda\x13\x08\x8f\x07\x96\x22\xd2\x24\x81\xc7\xe8\x06\xe6\x85\xd2\x53\xa8\x16\x8e\x6c\x19\xc6\x81\x1f\x87\xc0\xdb\x6e\xca\x23\x1a\x26\x52\x34\x20\x9f\x58\xe1\xe6\x11\xf0\xc4\xd3\x33\x0f\xd1\x6d\x66\x56\xb4\xdf\x6d\x87\xa5\xa3\xd7\xea\x4e\x5f\xe8\x53\xed\xe1\x4f\x51\x15\xbd\xa9\xa4\x02\x12\x99\xd5\xe2\x07\xf0\xba\x35\x49\x9a\xd7\x2a\xb3\xb7\xa3\xe2\x30\x64\x36\xfc\xf9\xa4\x45\xf7\x46\x4b\x8a\x62\x5a\x56\xa2\x83\xab\x8e\xde\x89\xe2\x91\x51\xaa\x7d\xd3\x86\x72\xef\xf3\x46\x3e\x15\x69\x47\x98\xda\xba\x40\xcd\x94\xb3\x75\xf7\xc5\xa3\x20\x90\x9a\x31\x69\xfd\xb4\xde\x1e\x5e\xd6\xfb\xc3\xec\xd7\xd9\xea\x69\x36\x7f\xb2\x61\xaf\xb6\x8b\xc5\x68\xcf\x2e\x19\x6e\x41\xa3\x73\xc4\xca\x92\x1e\xb4\x36\x51\x57\xec\xd3\xb6\x25\x1c\xf7\x7e\x43\x29\x58\x6b\xcd\xa6\x1e\x8f\x8d\xed\xc7\x53\x4c\xa1\x15\xf0\xb1\x28\xcf\x53\x02\xf0\x83\x95\x28\x0a\xe3\x14\x57\x03\x26\xe5\xbc\x2c\xdb\x5d\xec\x5f\x7d\x61\x31\xdb\x8b\x2a\xc4\x6d\xe8\x12\xb2\xa1\xde\xe4\xe8\x45\x84\x9c\xa3\xc9\xa6\xb7\xe3\x79\x79\x3d\x9e\x9a\x55\x81\x05\x7b\x9b\xaa\x3c\xb6\x43\xdc\xf4\x8c\xda\x27\xee\x41\x08\x35\xad\xde\x27\x5e\x58\x14\x71\x0f\x85\x0e\xef\x5c\x0a\xd3\x4e\x02\xae\x78\xaf\x80\xe3\x11\x8c\x92\x7d\xdb\xa6\x24\x12\xd4\x0e\x02\x97\x13\x8e\x6d\x14\xa7\x1c\xbf\x22\x1a\x4f\xfb\x12\x95\x8a\x47\x1f\x29\x16\x44\x99\x12\x3e\xa3\x9b\x25\x47\x51\x93\x88\x06\x32\xc6\x6f\x85\x4c\xd3\xab\x62\xf6\xc0\x6e\xf6\x56\x92\x94\xa1\xc7\x23\x2b\x5d\xba\x63\x7f\x4f\xc3\x04\x51\x92\xd7\xc2\x01\xd6\x6c\x75\x02\xf3\x22\xe6\xa5\x48\x9f\x69\xc8\xe9\xa6\xe1\x36\xb6\x2f\x49\x91\x68\xa4\x62\x85\x7c\x2e\xdd\x00\x62\x31\xc3\x18\x19\x73\x80\x98\x4d\x6f\x57\x88\x58\x42\x84\x67\xe1\xee\x8f\x7a\x73\x1c\x3e\x15\x0f\x05\xa6\x22\xcf\x59\x01\x87\xff\x30\x09\x87\x71\x78\x3f\xe2\xd2\x0b\x94\x0d\x9c\x62\xad\x3c\xce\xad\x61\x27\x21\x42\xd4\xa7\x3f\x30\x29\x1f\x40\xb1\x6b\xde\xac\x2f\x80\xb4\x4e\xf3\x9b\x01\x25\x4e\xe1\x73\x19\x96\x43\x08\xd2\xb3\xcd\x30\xc5\xa0\x0d\x86\x2f\x5d\xa2\x48\x46\xc2\xea\x2c\xb7\x96\xd3\xa2\xcc\x73\x76\xf0\x3c\xbf\xfd\xdf\x20\xc1\x12\x49\x46\xd1\x42\xd8\x2d\x7f\x7b\xe9\xdb\x4d\x11\x84\x11\x4e\xc0\xaf\xd8\x9d\xbe\x8c\xcb\x47\x8a\x6a\xf2\x95\xe7\xe7\xf5\xf0\xd4\x4a\x00\x41\x8a\x8b\xd5\xcb\xc3\x7c\xfd\xf0\x7b\xbf\x91\x78\x29\xc5\x46\x43\xd9\xb8\xd5\xdc\x4a\xce\xca\x1a\xbc\x20\xe2\x49\x9d\xc7\xd5\x69\x26\x8d\x90\xb5\x36\x0c\xf1\x53\x8d\xb0\x9f\xaf\xf7\x87\xe5\x93\x36\x39\x03\xd7\xc8\x63\x44\x0a\x62\x7e\xe5\x40\x0e\x8e\xef\x8a\x79\x24\x10\x24\x35\xba\x83\xe8\xf0\x39\x80\xe2\xe7\x15\xdb\xed\x51\xc0\xb0\x3c\xf1\xa3\xca\x1a\xd8\x35\x57\xe5\xbc\x83\x7f\x4e\xbd\x1e\x12\x28\x5d\x4e\xdf\x0e\x0b\x2d\x2e\x3e\x7a\xb8\x50\x00\x26\x6a\x2d\x00\x7c\xdb\xbb\xc5\x10\x38\x86\x40\xd6\x9b\xa5\x8e\x42\x1e\x76\xfb\xd9\x2f\x76\xe9\x25\x51\x22\x03\x65\x00\xa8\xd6\x15\x79\x2a\x6b\x8c\x55\x5c\xae\x4d\x57\x89\xda\xf6\x15\x1c\x74\x66\x6c\x63\xc8\xfe\x6d\x0b\xa1\x89\x6f\x2c\xa7\x5d\x56\xc1\x78\xfd\x26\x44\x46\x08\xe4\xac\xae\xda\x26\x89\xbc\xe9\xb0\x07\x21\x4a\xb3\x1f\x1c\x2e\x5a\xee\x4a\x83\xd2\x5f\xe0\x63\xf4\xc4\x71\x14\xe3\x6e\x64\x00\x33\x8f\x00\x3d\xe4\x68\xdb\x1e\x87\x68\x83\x3d\xfd\xef\xe2\x7f\xdd\x6f\x69\x28\x34\x60\x09\x58\xb5\x3b\x83\xb5\x7d\x09\x0d\x14\x96\xaa\x36\x59\x93\x23\x23\xdd\xf0\xe6\x29\xa5\x71\x0f\x51\x06\xe2\x64\xe3\x22\x5f\xb9\xbf\x84\xa6\x09\x92\x0d\x66\xa2\xdc\x35\xe5\xe5\x02\xf2\x19\x0b\x26\xf3\x9b\xbb\xae\x64\x5a\xc2\x2c\x67\xe2\xad\xdd\xb3\xfb\x88\xc3\xd1\xd9\x12\x2f\xc5\x85\xda\x39\xf1\x08\x01\xd1\x09\xf7\x1e\x8a\xbb\xed\x29\x00\x4d\x96\x76\x89\x5e\xb0\xfa\x64\x43\xa5\x24\x55\xaa\x07\x97\x7a\x81\x8f\x7d\x79\xad\xd8\xb9\xa7\xe7\x68\x6d\x52\xc2\xfc\x00\xbf\xa7\x01\xf1\xee\x1a\x60\xb9\xbd\xfb\x60\xb0\x2c\x10\x46\x3d\x8c\x86\xfc\x6b\xff\x34\x61\x67\x11\x9e\x00\xd6\xd3\x1e\xec\x02\x3d\xb0\x49\x08\xe7\x2c\x8a\x1d\x46\xca\xa0\x0c\x90\x05\xb3\xf7\x44\x22\xa2\x68\xf0\x67\xa2\x0c\x9e\xd9\x4f\xf7\x33\xe5\xf8\xd9\x9c\x44\xc4\xbe\x1c\xd7\x64\x99\x9e\xd2\x0b\x51\x52\xc2\xa0\x67\x7a\xe1\x44\x22\xbd\x38\xc1\x4c\x7a\x79\x2d\x4c\xae\x00\xb7\xe7\x5f\xa1\x6e\x9c\x8d\x41\xc0\x97\xdc\x04\x47\x91\x5f\x5f\xb9\x9c\x06\x81\x90\x73\xcf\x8a\xc5\xd6\x99\x98\xb3\x3c\x2f\x9b\xd6\xdb\x0e\x3d\xcc\x73\x0f\x07\x13\x24\x01\x16\x2a\x9d\xca\x8f\x67\x56\xf4\x31\xd7\xcc\x23\x4a\x68\x07\x7f\x51\x66\xc5\x53\xd9\x34\x23\x03\x8d\x28\x21\xa0\xcf\xe4\x74\x8f\xcd\x1b\x7b\x17\x71\xfb\x81\xda\x53\xfe\xb1\xdf\xcf\xbf\xa0\xf9\xed\xc7\x0d\x62\x4f\x46\xe8\x7b\xfe\x92\xe5\xf9\xee\x23\x6b\xc4\x69\x59\x1c\xd9\x71\xc8\x22\xd4\xf6\x03\xcd\x56\xa8\x79\x86\x4c\x25\xb9\xff\xb5\x33\x11\xfb\x94\x49\x57\xcd\xf0\xcc\x7e\xf6\x2a\x19\xda\x56\xe0\x4c\x97\xc4\x95\x97\xb2\x06\xc3\xdc\x35\xba\x6e\x10\xa7\xa1\x41\xdf\x3d\x96\x9a\xa0\x4a\x7f\x34\x13\x5e\x1d\xbe\xf2\x38\x48\x08\x56\x7d\x2c\x4e\xac\xca\x9a\xdb\xaa\x40\x6b\x0b\xea\x7a\x78\xe9\x40\x6a\xf1\xda\xfd\x7a\x3f\x7b\x3a\xec\x66\xfb\xf5\xee\xbb\xcd\xb1\xc6\xa1\xd4\x62\x12\x28\x21\xf8\x0f\xfb\x8e\xff\xe9\xfe\xe8\x4f\x89\x38\xf2\x75\x66\x5c\x27\xae\xda\x8d\x7e\x32\xcf\x18\x47\x51\x82\x71\x92\x79\xf9\xf6\x76\xdb\x94\xe5\x9c\x9d\x7e\x5c\xff\xfc\x0e\x95\x1d\x5c\x31\x61\x01\xd6\xb8\x77\x6b\xf3\xe3\x6c\xb5\xff\x7e\xff\xbd\x47\x2f\x39\xf6\x52\x94\xc0\x31\x3c\x55\xbb\x9c\xbd\x4f\x6b\x37\x31\x2f\xa6\x91\x8f\x89\x30\x5d\xe1\x64\x82\x57\x66\x69\x83\xfa\x1f\xa3\xe0\x4e\x9c\x44\x81\xf1\x88\xce\x2c\x2b\xba\xa4\x66\x9c\x40\x22\xf5\x35\x8b\xf7\xec\xde\x58\xfd\xe4\x4e\x13\x90\x9c\xf4\x93\xee\x56\x4b\xce\xb4\xa7\x44\xe9\xbd\x0f\x73\x2e\xe6\x3d\xd6\xbd\x56\xe1\xd4\x22\x56\xa2\xb4\x95\x0f\xcc\x8b\x99\x88\x31\x1c\x93\x9b\x75\x75\x0b\x82\xf5\x98\x4b\xee\x90\xeb\x78\x08\xa0\x97\x31\xdb\x2f\x16\xba\x72\x31\xef\x1e\x8f\x53\xe0\x5e\x8f\x07\xc3\x04\x85\x3f\x95\xe1\x61\x5e\x2c\x08\xc3\x7b\x3f\x97\x45\x73\xca\x6f\x7d\xab\x32\x16\x4c\x0f\xa8\x1e\xbc\x6e\x87\x10\x32\xf9\x55\x85\x05\x1e\xc8\x71\x42\x5b\x45\xb8\x6a\x3a\x7b\x1a\x0b\x90\x58\xf9\xb1\x5d\xee\x96\xdb\x5f\x97\x87\xa7\xf5\xe2\x97\xc3\x7e\xf5\x6c\x77\xfe\x58\x7a\x09\x82\x09\x44\xbb\xf5\x37\xee\x57\x53\xa3\x7e\xac\x98\x80\x9e\x98\x45\xdb\x24\x63\x6c\x82\x33\x54\x47\x28\xc4\xed\x31\xbf\xd6\x27\xd7\x0a\x11\xea\x39\xb6\xc6\x75\x32\x78\x86\x64\xb0\xb8\x80\x97\x22\x90\x7b\xa3\x8b\xbc\x77\x23\x1c\x72\xdb\x83\x24\x18\xd3\xcb\xea\xad\x0e\xe7\xca\xc7\xb2\x5a\x94\xe7\x4b\xce\xb2\x82\x8d\x13\x11\x31\xa8\x48\x19\xfc\xbf\xfe\x1a\xe8\x51\x85\xe6\xbe\xa8\x1f\x88\xd0\x40\xa5\xea\xad\xd5\x53\x71\x6d\x12\xd1\xf3\x7d\xa6\x76\xd3\x14\xb4\xae\x91\x5e\xf1\xbf\x37\xb9\x30\xc1\x45\x0d\xd7\x9e\x40\xa8\xb7\x47\xc4\x9c\xda\xc8\x85\x8e\x69\x98\x6a\xcd\xfe\xee\x4c\x5b\x5b\x0e\xe5\x28\xe4\xfb\x80\x82\x94\x79\x34\x0a\xe2\x58\xab\xc2\x4c\x81\x25\x06\xef\x88\x46\x92\x68\x7e\xd4\xc2\x40\xef\x3b\xc8\x30\xf3\x28\x49\x35\xcd\x3f\x52\x80\x95\x45\x63\x81\x80\x93\x23\x8a\x12\xf0\x63\xd3\xfb\x7a\xf9\x74\xda\x76\xf3\x84\xc6\x52\x6b\xa7\x14\x65\x93\xa9\xdb\x52\x6f\xec\x3b\xc8\x73\x0d\x72\x98\xbe\x4a\x0c\x01\xa2\xd5\x1f\x46\x2c\x4f\xcc\xa3\x34\x0c\x7c\x13\xbd\x6f\xaa\x4c\x34\xaf\x45\x93\xe5\xae\x91\x70\x0c\xdf\xcf\x5e\xed\x06\x66\x1b\x62\x46\xd2\x1e\xe9\xa5\x59\xcd\xfb\x2b\x31\xa5\x54\xcb\x53\x64\xa2\xd4\xa3\x62\x59\xc8\x87\xce\x38\xa6\x94\x07\x69\xd2\xbb\x32\xc2\xc6\x6d\x9b\x88\x51\x12\xec\x98\xbd\xc3\x36\x3b\x9e\x1a\x2c\x42\x1b\x7e\x86\x44\xd1\xd0\x90\xa9\xe3\x1a\x53\xe6\xc3\x88\xbc\x19\xf4\x34\xf5\x04\x37\x55\x9a\x8f\x15\xc0\x9f\x13\x78\x4b\x86\x94\x8f\xa1\x0e\x29\xb5\xa6\xef\xbd\x9a\x81\xe9\xc6\x03\x2f\x56\x76\x07\x75\x38\x7d\x67\xac\x50\x1e\x44\xb1\xa6\x51\x28\xdf\x61\x35\x26\x8f\x32\x9d\x84\xaf\xe5\xb3\x6a\x1c\xad\xef\x77\xc0\xce\xb6\x4b\xa4\x2c\x97\xde\x9e\x5d\x1c\xa5\x86\xbd\x8c\xa0\x5a\xa2\x70\xf9\xf2\x80\xeb\xca\x6e\x3f\x7b\xde\x74\x8d\x02\x6c\xb5\x61\x2f\x8a\x44\x45\x02\xb8\x4a\x88\x8e\xcc\xe9\x2e\xdd\x4f\x45\xea\x23\x8b\xb0\x96\x33\x71\x4f\xb8\x3a\x5f\x72\x84\x9a\x30\x57\x44\x6e\x0e\x90\x2c\x49\x8c\x62\x69\x5e\xde\x85\x5f\xcc\x22\x34\xfa\xd5\x6e\x68\x54\x32\x86\xf2\x22\x05\x7c\xd8\x54\xea\x70\xe4\x02\x93\x34\xb4\xe4\xfb\xb9\xd4\x75\x36\x23\x5c\x11\x55\x1e\xc3\x91\xf4\xb0\x7c\xdc\xae\x77\xfb\xc3\xec\x71\xbf\xdc\x1e\x5a\x7f\xf6\xbb\x4d\xc4\x51\x15\x32\xa2\x27\xf8\xac\x69\xa0\x90\x63\x83\x8a\x2a\x63\x4b\xbe\x5e\x8e\x36\xfc\x66\xd5\xf8\x83\x10\x07\xf9\xf3\x84\x40\xd9\x57\x54\x31\xed\x49\x89\xd2\x85\x9f\x50\x80\xca\x44\xc6\xaa\x9b\x5b\x1c\x55\xa2\xfc\xb4\x03\xe4\xb4\x8b\xf1\x40\x1f\xa7\xed\x22\x3c\xcd\x25\x5f\xbe\xc3\xbe\xdc\xee\x6c\xea\x25\xf1\x82\x08\xe9\x56\x74\x00\xab\x2c\xf3\x81\x39\x95\x78\x61\xc2\xc1\x0d\x30\x24\x68\x90\x56\xab\xa7\x07\xb1\x6e\x7b\x8a\xc4\x52\x82\x3f\xb1\x33\x2f\x9f\x4b\x09\xf9\xf0\x1b\x24\xbe\x12\x78\xa3\x9d\xbc\x80\x8a\xed\x95\x02\x2f\x40\x78\x74\xbb\x02\x7d\x5a\x7e\x32\x3c\x5d\xe0\x73\x0c\x85\x3a\x0a\x9f\x49\x03\x2d\x09\x42\xdf\xf7\x3b\x36\x1c\x4b\xbd\x3e\xbd\xe3\x26\x41\xaa\x77\x36\x99\xbd\x67\xad\xd5\xca\x6f\xde\xe8\x29\x02\x91\x20\x95\xca\xc3\x72\xf6\xf0\xb4\x7a\xb1\x5b\x71\x12\xfa\x0a\xe5\x33\xe7\x2f\xf3\xf9\x5f\x23\x58\x92\x30\x06\x4b\xf7\x6b\xee\xa4\x82\x4f\x36\x8a\x24\x14\x1c\xd9\xdb\x8c\xb0\x5f\x3d\x16\x47\x1d\x9e\x39\x32\x44\xdd\x07\x63\x38\x6e\xd1\x62\xfe\x94\x8a\xbd\x3d\x82\xb2\x74\x54\xa4\x3d\x21\x82\xdc\x76\x64\x0a\x3b\x62\x9c\x64\xc2\x80\x9d\x08\x3a\x26\x11\x00\xed\xd8\x88\xb6\x9a\x60\xe0\xd8\x23\x57\x36\xfd\x88\x9f\x06\x89\x31\x3d\xa1\x6a\x0e\x9a\xa6\x2b\x2b\x8b\x43\x53\x1e\xfa\xf8\xed\xe1\x2d\x91\x80\x23\xd0\x6a\x77\x2b\x2c\x10\xbe\x97\xd9\x4a\x48\x9a\x20\x08\x16\xce\xd9\xfd\x10\xd6\xb0\x13\x39\x01\xc2\x67\x5e\x42\xe3\x08\x8f\x64\x15\x8a\x0c\xf4\x9d\xd9\x84\x52\x2d\x31\x7b\xee\xd1\x1c\xb5\x3f\x27\x21\x5a\xfa\xcf\xe5\x7b\x06\xa2\x83\x7a\x27\x94\x09\x24\x73\xba\x40\xf5\x00\x4c\x3e\x65\x45\x77\x0c\x03\xc3\x15\x64\x62\x02\xda\x5e\xd3\xce\xf3\xac\x90\xad\x8b\xff\x69\x82\x2c\x49\x43\x50\xc1\x1d\x2b\x88\x6d\x24\x80\xc1\xf2\xa7\xf2\xf8\x6a\x32\x82\xa6\xc4\xe8\x73\x29\xba\xf6\x30\x05\x18\x21\x7a\xcb\xf2\xfc\x50\xa3\xeb\x68\xcf\xc8\x98\xde\x6a\x5f\xe0\x43\x5f\x6a\x26\xff\x73\xad\x9b\xf1\xae\x93\x70\x3f\x42\xdc\xbe\x21\xe9\xd1\xd6\x53\x97\xb5\x4e\x78\x18\x22\xe1\xc1\x72\x61\x7f\x11\x26\x04\x7c\x84\xe6\x31\x63\xfd\x82\x95\x7f\xdc\xcb\xb7\x31\x2f\x91\xa1\x42\x14\x08\x9a\x4c\xe5\xe5\xaf\xd2\x18\x63\xcd\xe4\x7f\x0e\xf7\x8f\x44\x2a\x4a\x3d\xb7\xa5\x6d\x75\x3a\xe8\xf6\x58\x95\x67\xfb\xf7\xe8\x09\x21\x54\x9e\x29\xe7\xd0\x96\x4b\xfd\x5c\x76\xa8\xff\x04\x12\x1e\xc6\x76\x7b\x7f\xbc\x16\x03\xab\x24\x01\xe9\x63\x46\x35\x2b\xb2\xe6\xb5\xa8\x1d\x13\x20\xf3\x12\xe5\x73\xcf\x18\x44\xb3\xaa\x7a\xcd\x8a\xe6\x31\x83\x5c\x06\xae\x3d\x89\x70\x96\x60\x98\x02\x2f\xfc\xa3\x62\x97\xcb\xdd\x17\x50\x82\x59\xd2\xcd\x57\xc7\x68\x14\x0d\x5f\x62\xea\x85\x14\xb3\x7d\x43\xea\x19\x73\xa9\xd4\xf7\x34\x82\xb5\x2c\xf2\x9b\x5d\xa7\xd3\x20\x00\xe4\x73\x40\x79\x10\x9b\xe7\x1c\x63\xa9\xd2\x80\x32\xd4\x85\x73\x09\x67\x69\x6c\xef\x7a\xdc\x31\x15\xd2\x50\x9f\xbe\x3b\xbe\xd8\xf6\xb5\x8f\x23\xc0\xd3\x63\x35\x0d\x18\x04\xc4\xe2\xe3\x5c\x59\x98\xbd\xd9\x88\x69\xda\xa0\xd6\x09\x61\xd2\xce\x8b\x94\x44\x2c\xea\xec\x97\x25\xab\x5a\x8b\x68\x7c\x67\x71\x48\x34\xa3\x56\x97\x69\x5b\x2d\x66\x9b\x7f\x8c\x07\xd4\xf4\xb8\xb3\x27\x49\x62\x11\xf5\x18\xa4\x07\x21\xb1\x34\x06\x8d\x1f\xe1\x79\xb3\x85\x86\x65\x05\xc8\x99\xb0\x08\xd2\x94\xa6\xa1\x66\x65\xd0\x58\x15\x70\xe9\x92\x34\x61\x5e\x64\x39\xd2\x58\x21\xad\x80\xe9\xca\x8e\xbe\x34\x8d\x69\x9a\xda\xb7\x32\xbf\xe6\xb9\xfb\xa6\x29\xd5\xb8\xb0\xed\xfa\x69\x79\xd8\xce\x67\x8b\x9e\x64\x5f\xdb\x9c\x46\x38\x6c\x97\xbb\xf5\x66\xb8\x90\xa6\x29\xd3\x55\xd3\x46\x47\x5f\xcb\x00\xd8\x36\xe9\xd9\x62\x12\x2c\x0d\x59\x15\xad\xf7\xff\x09\x80\x23\x4d\x21\xe6\x23\xad\x4e\x9b\xe4\xdd\xb6\x0b\xfe\xe8\x43\x30\x8f\x60\x81\x8e\x51\xf0\x82\x29\xda\xf3\x4f\x46\x07\xf3\x21\xd0\xc0\x4f\x96\xb7\x86\xc5\x1d\x12\xf2\x93\xc5\xa2\xbf\x9d\xa6\x0c\x3c\xe4\xd2\x67\xbc\x7e\xc8\x7a\x51\xfe\xe1\xa5\x78\x98\x22\x7a\x10\x71\xec\x8b\xeb\xe5\x2f\x54\x2f\x07\x57\xe0\x14\xd0\x8c\xc7\x69\x68\xdc\x4e\xc7\xe9\xca\xbc\x54\x08\x86\x50\x76\x64\xe2\xb4\x93\x6e\x52\xab\xa6\xed\x0c\x9a\x69\xf5\x50\xeb\x64\xd0\xd7\x91\x88\x54\x46\x01\x22\x49\x5e\x99\xe8\xb8\x3e\xfe\xaa\x8c\xeb\x2f\xfe\xb5\xab\x6a\x2a\x23\x9d\x23\xd1\xac\x42\x7b\x38\x5f\xee\xd9\xea\xdb\x6e\xa9\xf0\xd2\x61\xc5\xf5\xb6\x6f\xa1\xf5\x8a\x70\x52\x29\x65\x64\x80\x60\x88\x7a\xef\x1b\x12\x3d\x37\x2c\x95\x52\x45\x43\x09\xad\xed\x91\x8f\xaf\x0b\x01\x86\x8d\x3f\x61\xfa\x19\xcc\xf4\x09\xac\xb3\x7d\x4a\x08\xa5\x67\xb9\x47\x4e\x59\x2e\xf5\x1c\x1f\x98\x95\x29\xa4\x02\x0b\xa4\x30\xc6\x35\xcf\xa4\xbc\x2b\xcb\x48\x55\x1c\xa7\x66\xb7\xfe\x06\xcd\x73\x59\x00\x16\x63\x7e\x51\x0e\xdc\x1e\x94\xc4\xe8\x3f\x63\x3e\xdc\xc9\xbf\xda\x81\xa3\x78\xd0\x53\xc5\xed\xe5\x82\xbe\x1c\x95\x13\x64\x4d\xcc\x63\x9e\x0c\x43\xab\x8c\x30\x7b\xf9\xfd\xf0\x63\xf6\xf4\xb4\xb4\x7e\x04\xf3\xbd\x24\xe8\x34\x5c\x34\xf0\xf1\xd7\xd7\xcd\x74\x4c\x8d\x05\x9c\x58\x67\xec\x93\xfa\x34\x16\x08\x1f\x5f\x58\xeb\x33\xfe\xca\xf2\x5d\x76\x67\x8c\xb2\x40\xc5\x81\x19\x36\x16\x62\xbf\x9a\x2c\xbd\x65\x1e\x0b\x43\x0a\x26\xae\xb3\x83\xe6\x7a\x19\x6f\xc9\x2c\x04\x11\x4b\xcb\x63\x82\x29\xf6\x46\xe3\x40\x4e\xac\x1a\x5f\x38\x12\x3c\xd6\xa1\x8e\x77\xa8\xd8\xd0\x65\x62\x91\x4c\x11\x10\xc6\x59\x23\x4e\x6e\xb2\x6e\x77\xf3\x7b\x73\xd9\x1c\x41\x84\x44\x8d\x8d\xf5\x1b\xbb\x64\xfd\xe8\x08\x8b\x53\x1d\xcd\xb6\x08\xbc\x7d\x06\x95\xff\x5a\x0f\xa0\x48\xb6\x2b\xa4\x38\x8f\x2d\x82\x6b\x88\xc8\x61\xd4\x0f\x7d\x31\x66\xbb\xd7\x10\xf8\x47\x96\xd7\x5d\xbf\x20\x45\x7f\x50\x01\x68\x62\x55\xfb\x7b\xac\x03\xa7\xe2\xc4\xda\x05\x14\xaa\x7a\xc8\xc3\xdb\x76\x91\x02\x07\x9b\x25\x7c\x3c\xf8\x18\xee\x83\x2e\xa8\xc1\x28\x68\x6c\xd6\x37\x76\x86\x05\xae\xc7\x7f\x07\xec\xcf\x12\x2f\xb2\x48\xe3\x65\x73\x7a\xad\x07\xa9\x7d\x96\xc4\x12\xdd\x40\x03\x31\xd7\x61\xa4\x32\x97\xa5\xab\x93\x61\x09\x44\x98\x1f\xb7\x40\x7e\x9b\x91\x30\xcd\x29\x21\x9e\x36\xa2\x59\x3b\x2f\x51\xdf\xed\x20\x7a\x3b\x35\x4b\x13\xcd\xf0\x85\x48\x33\xcf\xfe\xca\x58\x62\x18\x58\x1c\xe1\xfd\x73\x56\xf4\x9e\x97\x07\x09\x9a\xc1\x8d\x3a\xba\x9f\x42\x0f\x41\xb0\xf3\xf6\xf5\xbf\xfd\xe6\x7e\xa6\x1e\x4e\xfe\x43\x56\x2f\xca\xf6\xe6\x3f\x0a\x6d\xb2\x4c\xae\xda\x8c\xa7\x31\x09\x7b\x80\x09\x7c\x69\xff\xfe\xbf\x4e\xe8\xac\xf7\xd7\x97\xcb\xd9\xf8\xbc\x52\x67\x6e\x98\xde\x6b\xcb\x11\x4e\x90\x89\x88\x1a\x1a\xe3\xd6\xec\x86\xeb\x79\x5f\xde\x33\xae\xb5\xfd\x08\xa5\x8e\x56\x62\x5e\x96\xcd\x6d\xdc\x81\xeb\x0a\xaf\xd6\xcc\x1d\x44\xfb\x98\xf4\x22\xd1\x59\xe2\x1b\x4d\xbe\xb5\x5a\xac\xed\x2d\x48\xe2\x63\x02\xf4\x97\x97\xf5\x0f\xfb\x1b\x30\x19\x49\x07\x87\x87\xa6\x6f\x65\x31\xe5\xf9\x9a\x65\x17\x2b\xcc\xbe\xdc\x0d\x99\x0a\x03\xac\xb4\x6c\x4e\x59\x65\xbc\xc4\x61\x62\x96\x29\x49\x43\xbf\x87\xc3\x99\x8c\x39\x30\x05\x1a\xce\xd4\x7a\x9d\xbd\x8a\xf9\x9e\xab\x39\xea\xaf\x38\x06\xaa\xaf\x3a\x66\xf4\xfd\xdb\x7e\x78\x42\xee\xc5\x7e\x6a\xe0\x88\xeb\x02\x10\xb0\x58\x34\x1d\xbf\xc7\xb8\x77\xea\x43\x64\x99\xc6\x1f\xdb\x59\x36\xfa\x40\xdc\xe7\xa1\x26\x4d\x44\xa9\xb8\x1d\x34\x2b\xc4\x53\x4f\x8e\x0a\xee\xab\x18\x23\xec\xdf\xac\xbd\x79\x58\x15\x24\x18\x9d\x31\x48\x92\xb8\xd3\xde\x99\x15\x72\x7e\x6d\x0d\x72\x13\xcd\xbf\xde\x96\xcd\xe9\xaf\x0a\x8f\xa6\x07\x25\x0f\xd2\xd4\x0a\x4f\xf6\x62\xea\x83\x30\xed\xf0\xf1\x03\x0e\x82\x77\x94\xdc\x56\xcc\xce\xf2\xf0\xda\xd1\xcc\x43\x5f\x12\x03\x0e\xdb\x30\xf1\x56\xef\xcb\x17\xf8\xd9\x20\x21\xd8\xb5\x83\xed\x5b\xdd\xc0\xf6\x00\xae\x39\x50\x5f\x7e\x9d\xdf\x51\x11\x30\x8f\x47\xa1\xd6\xe4\xb0\x82\xec\x3b\x4b\x57\x68\xcd\x00\x1e\x85\xcc\x5a\x25\xba\x8a\xb8\x03\xef\xf2\x88\xe8\x82\xb7\x66\x6c\xe0\xcd\x8c\x40\xe9\xe8\x23\x47\x69\xa2\x59\xfa\xea\xfa\x0a\x13\x32\x40\xcc\xe3\x84\x78\x1a\xd9\x92\xe7\xed\x92\x3b\x1e\x04\x44\x28\xa2\x7a\x4e\x2f\xe6\x69\x2a\xe7\x45\xd5\x0f\xa6\x5e\x4a\x8e\xe2\x05\x7d\x1b\xc8\xac\xd7\x5f\x46\x2f\x79\x4c\x42\x87\x07\x35\x1f\x61\x25\xe7\xb7\x89\x12\x6a\x4e\x3d\xc0\x28\xb0\x60\x97\x1e\xd9\x78\xdb\x10\x4b\x74\xda\xfe\xb7\xbf\x43\x72\x9a\xc6\x8e\x68\x17\x7e\x36\x3b\xf8\xef\x15\x0a\x01\xce\x15\xe2\x54\x0a\x14\x0d\x74\x6e\xdc\x1d\x25\xd3\xf4\xfa\xd8\x5f\x93\x38\x05\x1d\x63\xca\x6a\x54\x4e\xc8\x8a\xa3\x96\x58\x5c\x15\x86\xd8\x76\xca\x62\xe2\xd4\x20\x91\x8d\x3a\xbd\x65\xb5\xe9\x16\xd5\xe9\xd1\x9b\x50\x69\x14\x45\x6b\xb8\x9e\x6b\xcd\xa0\x63\xda\x52\x48\xa4\x2b\xe9\xee\xf2\x52\xeb\xa2\x9f\x39\xe2\xa9\xd2\x08\x79\x23\x1d\x74\x75\xdb\x3b\xe7\x41\xa8\xd3\x85\xf8\xc5\x1f\x01\x6d\xde\x13\xb0\xe6\x07\xab\x3e\x13\x28\x69\x0f\xa3\x04\x83\x33\x07\x26\xe5\x2e\x3b\x4e\xc3\xd7\xb8\x20\x14\xdd\x18\x8c\x51\x33\x31\x22\xba\x6e\x3b\x28\x61\x19\xcb\x5a\xf7\xe6\xb5\xca\x06\x4b\x3f\x97\xbe\x8e\x57\x9d\x4a\x99\x77\x8e\xce\x27\x8b\x92\x0c\x85\xf7\x35\xe8\x71\x0a\x3e\xc8\x25\xf7\x70\x06\x36\xad\x29\x85\x18\x3e\xfb\x6e\xa4\x90\x08\xbe\x9d\x2f\x10\x55\xd3\x1b\x64\x12\x28\x58\x60\x54\x6b\x0e\xf6\x35\x06\x7e\x64\xcd\xa9\xb3\x61\x07\x46\x3f\x97\x90\x62\x04\x91\x5f\x6f\x8b\xcc\x6c\x81\xd6\x91\xe1\xe0\xc5\xca\x95\xca\x75\xe5\xb5\x1c\x02\xad\xcc\xd8\xfa\xd0\xa3\xe9\x0c\x10\x61\x92\x63\x5e\xdd\xf2\x3c\x6b\xe0\x53\xc9\x9f\xb6\xaf\x62\xa9\x89\x3c\x68\xa5\x89\xe9\x2f\xab\x3c\x82\x28\x8c\x03\x8e\x95\xfd\xa9\x82\xfa\x54\xba\x42\x6c\xae\x28\xd5\x2b\x04\x2b\xec\xe7\x98\x83\x1a\xc9\x59\x33\x4f\x78\x3e\xe0\x4a\x2a\xb3\x77\x4d\x02\xe7\xcc\x33\xe1\x51\x0f\x8d\xab\x59\x25\x30\xf1\xda\x7f\xb3\xc2\x37\x4c\xf5\xdf\xaf\x25\xcf\x36\x65\x9f\x9a\xb7\x6d\x15\x2c\x8c\x3a\x26\xe7\xd5\x27\xcf\x2a\x7c\xf0\x31\xaf\x70\x45\x69\x92\xc7\x6b\x21\x2b\x96\xd5\x5d\x96\x4b\x84\x81\xc4\xe2\xc0\xfd\xf6\x79\xf8\xce\xbe\x74\xd2\xed\xc1\x24\x02\x66\xa5\x1d\xcf\x66\xc2\xa9\xf5\x05\x8a\x07\xe8\x36\x13\x11\x72\x11\x1b\x0e\x99\xf5\x3b\x54\x2a\x2f\x3f\xe6\x18\xf2\x99\x7e\xf3\x22\x0a\xc0\x12\x14\x6d\xd6\xeb\xa7\x03\xc8\xac\x39\xf8\x36\xce\x27\x48\x4c\x59\xd0\x87\x95\x19\x01\x2f\xdb\x4c\x01\x97\x35\xfc\x6c\xce\x71\xef\x07\x65\x44\x1c\x05\xb8\x68\x9d\xaf\x79\x93\xa1\x92\xf8\x54\x39\xc2\xa7\x6e\xad\x88\x63\x5d\x67\xf7\xc7\x72\xbb\xee\xd1\x96\x88\x38\xe6\x08\x4b\x39\xb3\x9f\xfa\x9e\x16\xac\x6e\xf2\xee\xb2\x10\x13\x18\xca\x12\xf5\x73\x09\xfe\xc8\x33\x13\x34\x04\x14\x75\xfe\xfe\x30\xfb\x0b\x05\x73\xe6\x89\x24\xa6\x08\x69\x63\xad\x95\xa7\x37\x48\xdc\x44\x9c\xcb\x2b\x12\x26\x7d\xaf\xcb\xf6\xb8\xf8\xa3\x2d\x12\x9e\x5e\x74\x45\x22\x74\xb6\x12\xce\x97\xe6\xb6\xe8\x56\x05\x91\x80\x87\x90\xbd\xd6\x71\x5a\xb0\x62\x07\x85\x5c\x36\xa7\x8e\x07\xe9\xc7\x09\x0a\xf7\xfe\x3b\x54\x92\x3d\x3c\x25\x80\xe8\x11\x43\x36\x8a\x6c\x4f\xc7\x1e\x73\x8c\x48\x63\x88\x4c\x25\x27\xc2\x24\xb1\x54\x62\xcf\xaa\xa3\x43\x36\x8a\x94\x72\x44\x68\x5d\xd8\xcd\xb0\xf1\xdb\x86\x54\x20\x8a\xe7\xa2\x63\xab\xc8\xec\x39\x95\x27\x16\xad\x93\xa9\x05\xfb\xc5\x5b\x5e\x1e\x07\x28\x4b\x21\x20\x94\x41\xcf\x78\x5e\xc9\x09\x99\x02\xe6\x09\x09\xbe\xf2\x1c\xdb\x1b\x3e\x73\x7f\x58\x40\xa4\xa5\xbf\x2f\x55\x76\x63\xee\xc7\x84\x61\x94\x7c\x97\x15\xc7\x1c\x74\xb9\x96\xf9\x26\xcd\xcd\x75\x12\x1c\x29\xeb\x54\x56\xc8\xf5\xd5\x49\x82\xcd\x6f\x73\x56\x7c\x4a\xab\x67\x8e\x55\x9e\x2f\x51\x24\xa4\x2c\xa0\x2a\xbf\x75\x4b\x97\x50\x3e\xc5\xc8\x32\xc3\x09\x8b\x12\x88\xae\x3c\x6b\x32\xc2\x21\x54\x92\x10\x3a\x0c\x43\xb5\x3b\x24\x1f\x99\x4d\x42\x71\xe1\x73\xc7\xa8\x94\x97\xb7\x26\x3b\x03\xae\x6d\xee\x8f\xa2\xe3\xfe\x6e\x0f\x10\x7e\x1a\xf7\x60\xcb\x05\x54\x37\x8d\x09\xc7\x14\x78\x7f\xcf\x90\x5e\x44\xd0\x73\x98\x5d\x2e\xf9\xa0\xb2\x4d\x7a\xdc\x0f\xa5\x2b\x65\x78\x9b\x94\xd7\x1e\x7c\x76\xe9\x71\x88\x06\x70\xd3\xa1\xdc\x74\x0f\xdb\x20\x3d\xd0\xb4\x81\xfc\x9a\x99\xd8\xea\xa8\xd0\x4d\xfa\x81\xcf\x52\x63\x2c\x97\x79\x26\x3e\x71\x4d\xa5\x2f\xc1\x44\x65\x0a\xb9\x03\x90\xb3\x42\xf6\x79\xe0\x87\xe9\x56\xe9\xab\x54\x73\xae\x68\x3a\xf3\x95\xa9\x13\xfe\x42\xa6\x95\x79\x32\x0c\x88\x66\x65\xbd\xb0\x8f\xc2\x18\xd8\xc3\x6f\x29\x43\x43\x36\x70\xd0\x25\x1d\xaf\x45\x61\x82\x7c\xd5\xc8\x46\x96\x51\x2c\xd0\xe0\xb4\x24\x54\x06\x3e\x80\xd5\x4a\x5d\x98\x25\xbc\xf3\xa3\xff\xed\x07\x9f\x00\xf7\x24\xa1\x89\xd2\x96\xf9\x0e\xaa\x77\x4b\x1f\x39\xb0\x75\x64\xec\x11\xc4\x31\x33\x29\x17\x50\x35\x99\xca\xb4\xa6\xe5\x43\x29\xae\x7a\x32\x8f\xd6\xab\xe1\x7b\x8b\x43\x45\x4d\x62\xbe\x6f\x8d\x3c\x67\x45\x76\x36\x4c\xfe\xd6\xd2\x90\x94\x73\x9f\xdb\x52\x36\x8d\xad\xbc\x0f\x98\xca\xc4\x03\x34\x2e\x32\x73\xe1\x97\xf2\x53\xa6\x1c\x99\xf8\x5a\x37\x6e\x51\x16\x35\x14\xcd\x63\x36\x86\x7f\xc9\x84\x6a\x4c\x1f\xbf\x56\x45\xbb\xef\x0c\xa0\x29\xe3\xb3\x25\x91\xa5\x47\xd0\x74\x0a\x3b\xcd\xec\xd4\x19\x11\x32\x31\xc9\x87\x83\xb6\xa5\xad\x22\xfc\x97\x7e\xa3\x4c\x78\xc4\x3b\x16\x19\x13\x10\xb3\x8c\xfb\x3d\xc6\xad\xfe\x3c\x48\x78\x84\xe3\x11\x43\xed\xcf\x59\xd1\xf4\x50\xf8\x32\x01\x4d\x34\x8a\x9a\x8b\x97\xb2\xcc\x87\x71\x24\x99\xc6\x71\xea\x82\x6c\x59\x81\x23\xca\xd8\xfa\x2f\x65\xf3\x07\x54\x96\xdc\x44\xb2\x50\x83\x84\x66\xc2\x7e\xb5\xe2\x38\x49\x3a\x25\x19\x95\x81\x61\x4a\x68\x1b\x0d\xa9\xc1\xf0\x65\x73\x8f\x61\x9a\xa3\xca\x8e\xa7\x26\x1a\xae\x56\x92\x27\x11\x2e\x02\x8f\xc1\xeb\x66\xf6\xbb\xbd\x01\x2e\x13\x24\xaf\xd1\xf1\xe8\x76\xc9\xd2\xbc\x5d\x87\xae\x03\xa0\x19\x9a\x97\xc7\xd6\x56\x0f\xbe\x5e\x87\xa5\x88\x39\x52\x0f\x39\x58\xe1\xc6\xd5\x04\x49\x01\x3a\x91\x5e\x94\xcd\x29\x2b\x8e\x4f\x19\xb7\x2d\x32\xa6\x49\x3b\x32\x7f\x5d\x0c\x38\x17\xa4\xe4\x11\x6e\xf3\x06\xea\xfd\x0b\xb8\x73\x49\xf0\x30\xce\x3c\x53\x0d\xe3\xbd\xed\x47\xaa\x94\x20\xd1\xfe\x07\x02\x7b\x70\xb8\x0d\x63\x57\x52\x89\x18\xeb\x2b\x1e\x56\x8b\xe5\xe1\x69\xfd\x63\xb9\x35\x2d\xe0\xc5\x02\xfd\x76\x53\x4d\xfb\x3d\x3b\x9e\x6a\x51\x3a\x00\x2f\x78\x22\xf4\xa9\x23\x52\x94\xb0\x56\x0a\xa1\xa8\x5a\x64\x62\xf8\xbe\xc1\xf7\x3c\x74\xdf\x56\x59\x56\x94\x78\x87\x13\x18\x6d\xf7\x16\xa7\x5e\x26\xf8\xb1\xd6\x4a\xc6\x5c\x38\x86\x73\x3b\xfe\x1b\xdb\x45\x45\x81\x91\x3d\xb0\x5c\xe3\xa3\x0c\x30\x04\x21\xe0\xf0\x2f\x2f\x50\xcc\xec\x32\x0e\x01\xe3\x56\xd3\x16\xc9\x97\xb4\x09\xf7\x8d\x9d\x3b\x7c\x17\x44\x92\x4a\xe3\x3b\x3c\xb3\x22\x53\x50\x37\x2b\x59\xcf\x6f\x2f\x3d\x86\xcf\xe1\x7a\x04\x84\xe8\xd0\x87\x31\x45\xf4\xb8\xfe\x7a\x7e\x02\xe1\x3c\x36\xf1\xfb\xcd\xca\xd8\xbf\x74\xb0\x4a\x02\x81\x24\xf0\x4d\x7d\x66\x25\x5b\x7b\x7b\x81\x92\x4a\x5b\x60\xf5\x27\xe7\x37\xc1\x87\x49\xf1\x1e\xe6\x41\x6c\x72\x6d\x47\x6b\x3f\xda\x87\x8e\x59\x64\x93\xaa\x3a\x7d\x01\xd5\xfe\xa7\x59\x68\x9e\x17\x3f\x3e\x79\x6e\x1a\x44\x88\x97\x36\x0b\xeb\x2f\x45\xf9\x61\x94\x51\xbe\xc4\x2e\x01\xe5\x11\xc2\x70\x73\x56\x9b\x00\xe3\x0e\x5c\x90\x11\x12\x1e\x63\xb4\xbd\x39\xc1\xc1\x9c\xe7\xa0\xca\xea\x50\x22\x55\xf8\x61\xe6\xfa\xc9\x00\x87\xf4\x40\xf0\x7f\xd2\xa7\xb1\x07\x80\x42\x1b\x62\x07\xcd\xeb\xee\x61\x03\xd5\x72\xff\xfd\xc0\x6f\xe3\xbc\xa8\xe9\xcd\x3c\x40\x17\x55\x94\x45\xdd\x54\xba\xb0\xae\xef\x32\x03\x33\x9a\x8c\x3b\x74\x8d\xce\x5b\xf8\x18\x9f\x81\x11\x69\x89\x37\x71\x86\xaf\xea\x7e\xd5\xb1\x91\x48\x19\x8e\x5b\x4e\x24\x3a\x46\xb3\xd5\xf6\x61\xbb\xde\x0c\x79\x30\x40\x44\x60\xf1\x11\xaf\xf9\xff\xcb\xdb\x9b\x34\x37\x8e\x63\x6b\xa0\xff\xe5\xae\x72\xd1\x0b\x02\xe0\x78\x77\xb2\x24\x3b\xd5\xe5\xa9\x2d\x39\xb3\xaa\x3b\x3a\x14\x18\x0e\x6c\x5e\x53\xa4\x8a\xa4\x9c\xe9\xfe\xf5\x2f\x78\x30\x70\x10\xe5\xac\x7e\xf1\xe2\x6d\x2a\x2b\x4c\x90\xe2\x00\x1c\x9c\xe1\x3b\xdf\xd7\xe6\x07\xde\x3a\xb0\xb9\xa7\x1a\x74\x11\x0c\xc8\x44\x23\xb4\xc6\xa5\x7e\x1e\x87\x92\x51\xee\x82\x2a\x94\xe8\xe0\x77\x46\xf8\x0e\x3e\x55\x3c\x99\x95\x34\xe9\xb7\x50\x50\x71\x82\xbc\x40\xeb\xb6\x3a\xf2\x8f\x7b\x40\xdc\x90\xff\x1d\x9e\x61\x7a\xcf\x27\xa2\xe6\x88\x1f\x46\x53\x55\x49\x8a\x20\xa3\xb2\x7a\xd0\x98\x07\xef\xef\x59\xc6\x48\xeb\xff\xbc\x5d\xb5\xd5\xd7\xc5\xb7\xc9\x5b\x57\x52\x21\xb4\xb7\xdb\x7c\xfb\x7d\x8e\x04\x81\x43\x10\x00\x90\x08\x29\xea\xf2\x06\x17\xc1\x43\xed\x84\x9a\xe6\xcb\x67\xa0\xd3\x18\x0b\x19\x57\xc5\x69\xe4\x94\x82\xce\x08\x56\xbb\x5c\xd1\x67\xed\xe3\x0a\xd0\x60\x78\xff\x0f\x7b\x69\xa8\x60\x73\x18\xc1\x1f\x74\x60\x65\x59\xdc\xec\xab\x4c\x6e\x4e\x0f\xd9\xfb\x67\xa3\x35\x1d\x84\x92\xd9\x84\xcc\x6f\x79\xdb\x7e\x20\x3d\xc7\xf8\x25\xe8\x00\x32\x4c\x5d\xac\x56\x7f\xbf\xda\x39\x98\x91\x26\x91\x48\x13\x5f\x51\xab\x3f\x10\xd2\xe1\x8e\xc5\x31\xb6\x22\xa2\xe7\xb1\x85\x0b\xc9\x30\x4d\x04\xc7\x4e\xb2\xbc\xc1\x1c\xc0\xc0\xfb\xc2\xca\xa2\xbb\x1a\x0d\x81\xbb\x4d\xa3\x6a\x79\x31\xae\x93\x4c\xae\x19\xf2\x0c\x9d\x6b\xcf\x01\xe0\xae\x12\x2a\xe6\xe8\x25\x4c\xea\x1d\x51\xf4\x9f\xf1\x39\xe9\x88\x2a\xee\x45\x88\xee\x30\x75\x72\xd6\x7d\xa3\xa3\x98\x60\x37\xd6\xda\xb4\xde\xd9\x9e\xad\x73\x86\x35\x1d\x13\x86\xf1\xf4\x35\x7f\x83\x27\x28\x1c\x61\x88\x3d\x9a\xd0\x0c\xfd\xb2\x47\xde\x34\xc3\x79\xa1\x93\x34\x42\x1c\xbd\xd1\xd8\x13\x15\xaf\x95\x3f\x24\x84\x61\x2c\x01\x9b\xd7\x6e\x76\xd5\x42\xbd\xe7\x4d\x35\xf5\xcd\x75\x4a\x53\xdc\x78\xfb\x7e\x31\x9d\x0a\x40\x67\x11\x9f\xce\x32\xb2\x58\xe7\x4d\xf3\x40\x63\x52\x64\xe9\xec\x55\x55\xef\x86\xda\xd2\xe3\xf7\xc4\x33\x16\x78\xc1\xb3\x01\x58\x4f\x73\x1d\x73\x97\x99\x31\x3a\x28\x67\xce\xcf\xf8\x36\x05\x09\xb3\xc4\xb3\x28\x39\x0f\x7e\x32\x1f\x45\xa2\x31\xba\xbc\xb9\xf3\x55\x73\x2d\xc3\x2c\xb3\xa0\xfd\xdf\xbf\x8c\x46\x43\x4c\x31\x6b\xb6\xfd\xba\xa0\x51\x3c\xda\x14\xb5\x26\x49\x60\xba\x6d\xcc\x47\x73\xd4\x73\xc3\xcf\x7c\xe1\x4e\x35\x24\x42\x0c\x0a\xca\x9b\xf2\x1e\x7e\xdc\xf1\xfa\x0d\x5a\xa3\x9a\xe1\xc6\x69\x85\x8b\xa7\xe6\xa5\xfa\x32\xde\x4e\x71\x04\x09\x82\x04\x62\x0f\x49\x35\x3b\xd8\xae\xf2\x4e\x1f\x09\x08\xa3\xdc\x4a\x50\x15\x82\xcb\xb7\x1b\xde\xf4\x87\x0c\x34\xcd\x18\xf6\xfd\x6a\xb3\xdd\x3d\x6d\xae\x9e\x77\xeb\x95\x1f\x91\xc4\x18\xbd\x19\x6f\xdf\x60\xb5\x51\x52\xd8\x1d\x97\x86\xfe\xaa\x8b\xb7\xf7\xbe\xce\x4b\x02\xa2\x13\xd9\x2b\xe2\xfb\xa4\x2a\x09\x28\x35\xb2\x5a\x37\xa7\xce\x21\x1c\xbc\x4d\x12\xd0\x8c\x6b\x4b\x62\xaf\x76\x79\xe1\xb3\x54\xa3\x7f\xdc\x58\x48\x79\xe4\x54\x9d\x5b\xa8\x8f\x55\x5e\xb6\x5f\x26\x4e\xc8\xe8\x35\xb1\xcc\xf4\xe7\x5c\xe5\xed\xf6\xb5\x3a\x1e\x47\x94\x48\x24\x08\x33\x89\xfc\x13\xff\xac\x8a\xea\xa7\xff\xa3\x92\x2a\xec\x39\x72\x4d\x49\xf0\x1c\x31\x4b\x82\x10\x22\xe8\xbd\xa3\x7b\xf8\x61\xa2\xac\xb9\x4f\x4f\x82\x28\x49\xb1\xb4\x89\xc2\x00\x33\x79\xe3\x5f\x49\x3b\x72\x12\xc4\x8c\x06\xb6\x85\xd3\xfa\xa5\xae\xd4\xdd\x1d\x53\xd4\x16\x28\x87\x42\x57\x73\x08\x30\x12\xc4\xa9\xe9\x5b\xb0\x59\x31\xd7\xae\x76\x10\xbc\x69\xb8\xaa\xea\x5e\x41\xaa\x1b\xac\x04\x76\xf6\x4f\xc8\xb5\x48\xd3\x9e\xb5\x1d\x91\x20\xd6\x01\x22\x70\x91\x7b\x75\x71\x68\x27\x19\x6d\x12\x24\x59\x66\xf2\xff\x5d\x8c\x86\x11\x1a\xb2\x01\xfa\x62\x9b\xaf\x3a\xb8\xf1\x12\x30\x43\xcd\x1d\x6e\xfc\xb9\xcd\x0b\x9f\xbc\x22\x41\x9a\x98\x8e\xa9\xed\x9f\xa7\xbc\xae\xa1\xb8\xc9\x0f\x7e\xa2\xa7\x69\x84\xdb\xf4\x72\xfd\xd0\xff\x29\xd3\x96\xf6\xc6\x05\x8f\xe7\x4e\x6b\x9f\xa0\x1a\xbd\xfe\x2c\x0a\x2d\x1a\x04\x7d\x4d\x97\x23\x71\x47\x79\x90\xda\xfc\x8c\x59\x30\xf3\xaf\x3e\x13\xa9\x70\x9d\x54\xcb\x79\x45\x28\x4e\x02\x9e\x24\xa9\x01\xce\x21\x81\x41\x8f\x1c\xb2\x2c\x6f\x76\x98\x20\x81\x8e\x5c\x47\x4c\x0e\xa5\x6a\xae\xf3\xf2\x05\xea\xc6\xdc\x41\xb7\x57\x5d\xc2\x94\xb9\x2b\x30\x8d\x85\x6f\xa4\x3d\xdb\x3f\x2e\x9e\x76\xf7\x2e\x2e\x23\x81\x00\x30\x51\x7f\x3b\x20\xd4\xf9\x9e\xb7\xaf\x86\x8c\xb8\x9c\xf1\x13\x66\x1c\x29\x12\xc8\x40\x63\xd5\x0c\x41\x8f\x77\xcf\xb7\xbb\xcd\xc3\xf7\xc1\xcf\xc8\x30\x34\xd2\xb1\x24\xb5\xbc\x6e\xee\x80\xe2\x99\x69\xac\x18\x36\xe8\xcc\x3f\x88\x0a\x35\x26\x90\x6d\xb1\x8f\x1f\x27\xaa\xb0\xdd\x90\xd8\x10\x66\x55\x1a\x3b\x38\x8a\x1d\x14\xd0\x13\x86\x90\x40\xa5\x01\x76\x92\xff\x79\xca\x5b\x5b\x57\x1c\x7f\x15\xc5\x35\x86\x28\x37\x75\x75\x3a\xda\xb6\xe1\xfc\x42\x92\x86\x04\x10\x44\x98\x58\x3f\x22\x3f\xb6\xcd\x0c\x39\xe9\xe5\xee\x78\xac\x10\x49\xcc\x6b\x91\xb7\xc6\x49\xb8\x46\x26\xf2\xbf\x9f\x9c\xbe\x53\x37\x4a\x1a\xaa\x1f\xab\xc9\x38\x20\xc7\xfe\x57\xf8\x79\x4e\xac\xf7\x13\x48\xe7\x92\x46\x86\xe6\xa8\x84\x9a\x17\x8f\xa7\xfa\x58\x21\x23\x8a\xce\xdb\xed\xb1\xc8\xdb\xb6\x5f\x71\xa0\x09\x66\x33\xbe\x7f\xff\x3e\xb2\x95\x3a\xd0\x8e\xb5\x0e\x21\xd1\x73\xb8\x70\x12\x74\x71\xb1\xc9\xbd\x39\x39\x18\x7f\x7e\xc8\x38\xf3\x9b\xc3\x78\x22\x77\xfe\x50\xd0\xe3\x95\x9b\x0b\x76\x4b\x4b\x46\xb5\xe3\x87\x6b\x5a\x5e\xfa\x44\x71\xdf\xc8\x44\x48\x10\xc4\xac\xc7\xc2\xdd\x3c\x3c\xce\x25\xe5\x09\x09\x98\xc6\xb6\x33\xde\xb6\xf5\xf3\xf3\x66\x35\xbf\x14\x49\xa0\x0c\x9f\x08\x02\xbb\x3c\x5c\x80\x10\x92\x09\x8c\x27\xfc\x5e\x37\xf0\xad\x09\x21\x22\xc0\xec\xb7\x4d\x23\x1a\x31\xb7\x5d\x75\xaa\xf3\xe6\xf0\x97\x50\x57\xdd\x25\xb8\xf0\xe0\xf0\x6e\xf7\x1d\x02\x61\x08\xa1\x94\x99\xfc\xba\x91\x6e\x1b\xe3\x0f\x26\x18\x37\x42\x58\x60\x88\x78\xcd\x3b\xd9\xc1\xe1\x58\x18\x94\xc8\xa2\x79\x43\x46\x9e\x01\x2a\x71\xa6\x39\xe1\x2c\xa8\x77\x97\x25\xa6\x47\xd2\x85\x1f\xdd\x8e\xc0\xdc\x1d\x32\xa1\x31\x47\xf2\xcf\x0d\x7a\x1a\xee\xcf\xa1\x88\x10\xa9\xbb\x37\xf7\xf2\xcf\x4a\xe5\xfc\xd7\x5c\xe4\xf3\x1f\x27\x8a\x0c\x9d\xbd\xf1\xfc\x1e\xea\x97\x91\x6f\x41\xa2\x48\x47\xd2\x14\x80\x31\xc7\xb6\x5c\xf9\xbb\x88\x52\xe9\x9a\xbb\x6d\xd1\x67\xf9\x0a\x3d\x5f\xe1\x19\xc4\x62\xf4\x7f\xee\x1a\x59\xca\x52\x5f\xeb\x32\x3d\x89\xe3\x19\x4b\x22\x30\x5a\xbc\xdf\xf2\xba\x1d\x85\x6e\x84\xc4\x49\x68\x7a\xa1\xf3\xf7\x29\x98\x8f\x90\x38\x53\xe8\xbf\xef\x8f\xfc\x63\xac\xe1\x33\xff\x22\x92\x30\x45\x3b\x6e\x29\x63\x6e\xae\xe6\xa1\x9f\x84\xa4\x4c\xe1\x74\xbe\xce\x7f\x82\x32\xc8\xc9\xd1\x5d\xa5\x29\x44\xf1\x08\xb7\xbb\xca\x3b\x7b\x79\x2a\xfc\x9e\x4b\x52\xc1\x71\x0f\x73\x5f\xdd\xa5\x83\xdd\x61\xc9\xe9\x30\xa3\xbf\x6d\xe1\x38\xf7\x5e\xdd\x70\x4d\x43\xbb\x71\x9e\x2b\xc9\x70\x42\xb2\x80\x63\xae\xd6\xfd\x1a\x32\xf9\xcd\xc0\x6d\x08\xc9\x92\x18\xb9\x93\x2c\xc5\xd1\xa0\x87\xc5\x89\xbd\x1e\x4f\x86\xf0\x71\xfc\x4e\x32\x6e\x74\x30\x5e\xa0\x6d\x2b\xc5\x3f\x7c\xed\x8f\x10\xce\x05\x0a\xd4\x58\x5b\x32\x50\x26\x99\x9b\x17\x93\x77\xcd\x45\x82\x1a\x55\xfa\x54\xaa\x66\x57\x2d\x1d\x3b\xf4\xe4\xe7\x05\x17\xe8\x84\xde\xcc\x8a\x35\xcd\x58\x06\xa5\x33\xa4\x92\x7b\x2c\x78\x09\x98\xd7\x1e\x7d\x42\x20\x71\x18\xf5\x31\xb6\xf1\x1b\x8c\x50\xfa\xf8\x7d\x01\xa5\xca\x58\x98\xd5\x94\x9d\x9d\x10\x48\xb4\xab\x23\xef\x73\x59\x95\xf9\x9f\x7b\xdb\x4d\xb4\xaf\x8e\x83\x1f\x53\xc4\x15\xed\xae\xf2\xba\x7d\x3d\x7f\xbb\x3a\x55\x08\x86\xbb\xae\x0e\xa3\xfb\xa4\x41\xac\x1c\xdb\xe7\x73\x03\xf5\x2c\xe7\x10\xa1\x41\x92\x04\x69\xff\x51\x57\x4e\x40\xdd\x5f\x45\x2b\x9c\x8c\x8a\x7f\x9c\xf7\x9f\x11\x4a\x02\x8e\x49\x4e\x28\xd5\x46\x56\x7d\xdb\x32\xa1\x84\x08\x39\x44\xec\x2e\xf9\xe1\xc8\xf3\x17\x7f\x7b\x44\x19\x66\xc9\xce\x53\xbd\xe6\x79\x81\x55\x59\x54\xf4\x34\x94\xec\x5b\x7e\x80\x4d\x0b\x07\x87\x75\x22\x94\x42\x80\x30\xd7\xda\x68\x79\x60\xce\xc8\x59\x43\xca\x02\x82\xbe\xda\xb1\xae\x0e\xd0\xbe\x0e\x77\x0b\xca\x68\x82\x6d\xdd\x06\x0d\x88\x12\x18\xfe\x01\x58\x68\x30\xe4\x7b\xc4\x55\x7a\x0c\xd3\xfc\xf2\xa6\x2c\x8b\xb9\xf5\x6f\xef\x87\x32\x3a\xc3\xac\x29\xa1\x4c\x32\x4c\x3f\x55\xc3\x78\xc5\x1e\x0b\x09\xc5\x32\xf3\x72\xb1\xdb\x3f\xae\x9f\xf6\xeb\xdd\xd7\xfd\xd5\x62\xbb\xde\x3f\x2d\x76\x6b\x77\x53\x21\x63\x9a\x0f\x10\x7e\xe7\x94\xd5\xdd\x18\x8e\x41\xe2\x21\x2f\x5b\x4b\xe8\xd4\x4c\x87\x64\x29\xa6\x27\xf1\x3e\x4c\x95\x0e\x65\x53\x27\x53\x20\x92\x29\xb5\x61\xba\x65\xf4\xc2\x2f\xfd\xfc\xb4\x19\x99\x7b\x1a\xf7\xe1\xbc\x36\x94\x26\xb3\x6e\x04\x8d\x65\x84\x5f\xf6\x66\xb1\xdd\xef\x1e\xf6\x8b\xe7\xdd\xd7\x87\xa7\xcd\x3f\xd7\xfb\xf5\xef\xeb\xe5\x73\x4f\x32\x4f\x68\xac\x62\xa4\x1f\x92\x45\xe7\x2e\x59\x72\x96\xc9\x43\x24\xd2\x60\x68\x6e\xab\x17\x5b\xbb\x74\x80\xc7\xc9\xcf\xa6\x21\x95\xd2\xa1\x42\x3f\x06\xf9\xa8\xd4\x0e\xc8\x88\x46\x7c\xd6\xa8\xcf\xe4\xd3\x16\x1b\x42\xb3\x94\x19\xd8\x0b\xbe\x88\x35\x32\xab\xcc\x04\x2f\x34\x93\xc2\xbc\x9b\xd3\xe1\x60\x25\x57\x2d\xcf\x9e\x1b\x00\xa6\x13\x6c\x0b\xad\x41\x11\x6d\xa1\x28\xae\xce\x3f\x2b\x8f\x28\x66\xce\xb9\x53\xce\x77\x17\xe0\xb1\xe9\xbb\xfe\xed\x8f\xa5\xfb\x93\xa4\x51\x6c\xd4\xb4\x61\x3d\x10\xce\xea\x8e\x24\x4a\xa5\x7d\x83\xa2\x9f\xd8\xf3\x25\x67\x42\x25\x57\x49\xe0\x29\x6a\x3b\x7f\x6f\x34\xa1\x15\x35\x18\xf4\x6e\x8f\x58\xd5\xfc\xc7\xae\x7a\xac\x2a\x73\x7f\x67\x06\x89\xaa\x04\xd0\x2f\xf9\x7e\x1a\x54\xb0\x08\x55\x3c\x45\x31\x86\x15\xbc\xe7\x8d\x77\x87\x29\x84\x34\x73\x72\x21\x79\x23\xf3\x23\xa6\xcd\xfd\xd1\x28\x32\x84\x1d\x55\x51\x6c\xfc\x7a\x86\x2c\x4e\x02\xcf\x98\xbe\xde\x7d\x1d\x4a\xea\x4d\xee\x06\x20\xc1\xc6\x6d\x93\x6d\xb8\xe3\x79\x89\x9d\x68\xf5\x64\xf2\xe8\x38\x83\xc0\xe3\x9e\xe7\xf3\x98\x84\x91\x48\x24\xbd\xc0\xdc\x63\x9d\x4b\x8f\xc2\x22\x8c\xf2\x24\x8d\xbc\xbb\x32\xae\x08\x1b\x26\xeb\x3e\x62\x60\x94\x1b\x89\x0f\xa7\xf2\xd3\xf0\x69\x38\xc4\x28\x17\xa9\xe7\x8d\xb1\x0a\xc2\x83\x6f\xcc\x28\x30\xd6\x0b\x18\xac\x00\xd4\x88\x88\x76\x72\xeb\x2c\x25\x46\xd6\xc2\x42\x10\xfa\x66\xc2\xe1\x8c\x88\x43\x3b\x3c\x0c\x23\x0c\xb7\xdf\x91\x62\xaa\x67\xe1\x1c\x87\x85\x2c\x4c\x62\x0c\x66\xda\xfd\x5d\x2e\x5f\x79\x5e\x50\x77\x77\x51\x20\x51\x18\xc3\x82\xdb\x1e\xeb\xea\x08\x75\xdb\x27\x22\x6c\x1e\xea\x5f\x24\xb0\x8e\x0a\x8b\x49\xc4\x4d\xde\xaf\xe9\xa2\xa7\x2b\xe0\x93\x8f\xc4\xe2\xc8\x70\xa0\x29\x78\xdf\x37\x6d\x0d\xfc\xd0\x0c\xb1\x3e\x84\xc5\xdc\x08\x04\xbe\xa0\x66\x2c\xd4\x5f\x79\xf3\x7a\xa6\x8c\x42\x58\x2c\xc3\x30\x1d\x77\xe8\x75\xab\x31\x2f\x5f\x3e\x7b\x83\x19\xa1\x98\x06\xed\x2c\xf6\xf2\x76\xbd\x70\x01\x36\xcb\x14\x18\xed\x23\xe3\x26\x7f\xfd\x10\x75\xae\x6c\x51\x73\xf2\xcb\x3c\x91\xd0\x4f\x20\x6c\xa7\xaa\x61\x92\x23\x71\x43\x81\xc0\xa4\x8d\xb0\xf9\x32\x97\x84\x63\x92\x86\xe8\xaf\x5c\xe5\xed\x6b\xb7\xe6\xac\x1b\x34\x74\x06\x98\x8c\x52\xac\x8b\x16\xd5\x4b\xb7\x28\x17\xa6\x09\xb8\x3e\x0b\xf7\x27\xcf\xac\x68\xc2\x7a\xbe\xf8\x47\xde\xe6\x50\xb6\x5f\x81\x17\x86\xe0\x60\xbe\x0b\xd0\x9d\xcb\x0c\x4b\xae\x02\x07\x18\x37\x6f\x7a\xd0\x71\x4d\x98\x4a\xc1\x76\x90\x76\x91\x73\x3b\x61\x76\x20\x0c\x18\x8b\x86\x92\xaa\x4f\xa0\x6d\xc9\xe7\x4c\xa6\xc3\x9e\xa1\x33\x83\xd5\x34\x9c\x42\x86\x4d\xd0\x57\x41\x48\x18\x44\x11\xce\xd8\xbb\xbc\x78\x5b\x56\x63\xca\x3e\x12\x06\x3c\x4e\xcd\x6b\x92\xbc\x40\x78\x8b\x47\x69\x90\x30\x80\x10\xac\xcb\xb6\xaa\xab\xe3\x7d\xd5\xe6\x9e\xe6\xa9\x3b\x9a\x64\xb2\xd7\x2b\x3e\x9c\x0e\x2b\x10\xbe\xdf\x7d\x3c\x0f\x42\x12\x98\xad\x34\x2f\xdb\x6e\xe2\xbd\x40\xd9\x1e\x78\xd3\x74\x4b\xa8\x1c\x7e\xb7\x90\x48\x88\x4d\xe1\x19\xf5\x30\xb0\x34\x3f\x02\xc2\x8d\xaf\x4b\x83\x30\x10\xc8\xab\x57\xb8\x2b\x50\x15\x1b\xf2\xd1\x46\xf2\x23\x7c\xe5\xdd\xcb\x1f\x3f\x74\x18\x53\x7c\xe8\xdb\xdf\xfe\xf8\x15\x44\x91\x84\x61\xaa\x79\xe2\x9b\x82\x4c\x9a\xc1\x3c\xa2\xfd\x2e\xee\x77\x43\xce\xd0\xa2\xfe\x70\xda\xa5\x7f\x99\x36\x9a\x84\x51\x60\x10\x0b\xbf\xaf\x9e\x16\x6e\xb7\x0b\xa3\x30\x65\x76\x8f\x42\x95\x82\x1e\x34\x30\xda\xac\xc2\x28\xcc\x10\x43\xd1\x37\x36\x5b\xf7\x68\x4a\xa1\x3c\xf9\xcd\x98\xa1\xd8\x90\xe5\x43\x38\x07\xef\x93\x30\xca\x0c\x91\xb9\xb1\xb8\x86\x53\x64\x8c\xb3\xe9\xc7\x26\x49\x26\xb3\x3e\x7f\x60\x32\x86\xee\x51\xb2\x20\x42\xd1\x89\x15\x5c\x4a\x51\x86\x59\x60\x02\x49\x07\xca\x40\x90\xd9\x2f\x1a\x4a\xa6\x97\x48\x12\x87\xa6\xef\x4b\xfe\xcb\xe1\x2b\x70\x03\x53\x1d\x79\xf6\xd8\x7d\x0d\x8d\x97\xf3\x22\x21\x8f\x62\xb4\x95\x98\x71\x0e\xe8\xa0\x3e\x4e\x42\x91\x26\x89\x29\xb7\x74\x21\xd8\xfa\x1d\xea\x0f\x51\xb9\x3e\x74\x14\xf7\xf0\xbd\xac\xbb\x87\x59\xc6\x9b\x31\x4e\x8f\x84\x92\x19\xb5\x58\x75\x03\x6d\xe7\x62\x7c\x39\x4d\xb8\xb9\x48\x28\x33\x01\x5e\x43\xcf\xc6\xd0\x9b\x6e\x87\x1a\x3f\xbc\xd4\x2c\x1b\x1a\x16\x9b\x84\x5f\xf2\x5a\x0d\xe1\x63\x24\x54\x24\xc3\xd6\x41\x6c\x24\x78\x3c\x89\x22\x97\x83\x6c\x57\xa8\x42\x9a\x0c\x67\xd3\x95\x57\x3d\xbb\xf0\xe1\x54\x1c\x61\x51\xaf\xfd\x01\xd0\x6e\xda\x91\x0b\x1d\x42\x67\x43\x0c\xc7\x68\x77\x43\xee\x4d\x41\x9a\x62\xea\x5b\xe7\xb5\x05\x12\x2c\xf9\xd1\x1f\xe4\x99\x34\xde\x4e\xa1\x9d\xea\xcd\xca\xf5\xb4\x77\x87\xb9\x25\x06\x3d\x3a\x60\xab\x3d\xa2\x25\x41\x9d\x7b\xde\x59\x2b\x50\xbb\xd7\xbc\xf9\x0e\xf0\xe6\x0f\x6b\x8f\x07\xbd\x32\x0b\xe8\x8c\x6b\x7a\xb4\xb0\xa2\x40\x00\xbe\x0a\x35\xa8\x09\x1b\x75\xc2\x61\xb4\x15\xd1\xd0\x18\x42\xc7\xcf\x72\x0f\x3f\x07\xd8\x5f\xa8\xfb\x3d\x96\xd0\xd4\x9d\x23\x28\x46\x4c\xcf\xbf\x7d\x77\x97\x61\x9d\xa5\xf9\x9f\xff\xfd\x9f\x5d\xde\x16\x30\xa6\x21\x23\x11\x8b\x29\x92\xde\x2c\x5a\x2e\x87\xf6\x32\x62\x82\x61\x4e\xfb\x9f\x00\x8f\xce\x94\x5e\x4a\xa2\xff\xc5\x7f\xed\x95\xc3\x20\x44\x7a\x2c\xb3\x75\x3f\x97\xb9\xac\xea\x72\x80\xe2\x23\x51\x18\x85\xc2\x82\x84\x06\xb9\x91\x33\x07\x39\x0a\xb9\xc9\xb8\xb8\xd2\xf9\x4d\xe5\x71\xf6\x24\x0a\x25\x98\xd2\x84\xa9\x1d\xcd\x47\xed\x51\x24\x40\x58\x99\x64\xa8\xbb\x9d\x58\xf0\xe6\x82\x6f\x1f\xc5\x12\x12\xdf\x7e\xff\x04\xf9\x41\x9c\xea\x06\x54\x9f\x2a\x8f\x92\x38\x8b\x9d\x10\x6d\xaf\x34\xfd\x50\x16\x1f\x83\x95\x10\x25\xa9\xc2\xa6\xcc\xf5\x3b\x60\xc7\xdb\x8e\x97\xe3\xee\xed\x89\x07\x13\x25\x99\x99\x08\x25\xb4\x16\xc3\x62\xbc\x98\x6d\x55\x4c\xf6\xc3\x28\x0d\x34\xa6\x72\x14\x3f\xf4\xa5\xb1\x28\x25\x06\x1e\xe5\xd6\xde\xf7\xd7\xaa\x98\x7a\x42\x93\xeb\x58\xed\xbf\xa6\xe5\xed\xa9\xf1\x6d\x95\xdd\x81\x18\x9d\x91\x82\x37\xed\x2d\x3f\xfa\xa4\x42\x94\x85\x8a\x1a\x26\x5a\x93\xf8\x70\x2a\xf1\x9f\xe6\x03\xa3\x4c\x46\x68\x15\xb9\x6d\x97\x30\x37\xd5\x59\xac\xa5\xbf\xb0\x34\x52\x1b\x2f\xb6\x7d\x1b\x50\xcf\x19\x41\xc0\xfa\x82\x3b\x1d\x71\x4a\xd1\xeb\xbe\xe1\x07\x07\x1e\x72\x47\xd2\x98\x74\x2f\xff\x5b\xd5\x9a\x4c\xf8\x63\xb7\x90\x2a\xd9\xa7\x62\x22\x9e\x71\xa4\x2e\xe9\xa2\x09\x28\x25\xf7\x7f\xd7\x86\x5d\xe9\x09\x8e\x45\x2e\x07\x06\x22\x12\xa1\xa2\xca\x13\xdb\x76\xa6\xf1\x8c\xd3\x62\x72\x83\x22\x62\x58\xf6\x3e\xd6\xb0\x3f\xe4\xe5\x28\xee\x72\x43\xb2\x24\xb6\xf9\x46\x03\xe9\x58\x16\xbc\x69\xbe\x8c\x66\x86\x10\x0c\x09\xe9\xad\x28\x7a\xc5\xeb\x31\x88\x7a\xfc\xa3\x92\x24\x48\x55\x6a\xc8\xcd\xab\xfa\xb6\x1a\xe7\xa1\x23\xa9\x0c\xe8\xaf\x8b\xbb\xd6\x4f\x4b\x1a\xfc\x05\xf6\x0c\x12\xa9\x28\xc3\xbd\x06\xd7\x85\xa1\xd2\x1d\xd7\x1c\x23\x25\x08\x12\x96\xef\x5d\xaa\xd5\x5c\x77\x46\x6a\x8a\x44\xc0\x32\xe2\x04\x67\x5d\x51\xf0\xb9\xcc\xff\x3c\x01\x92\xf1\x36\xb3\x00\x3b\x12\x07\x69\x64\x6e\x62\x1e\x0a\xe7\x20\x03\x71\x90\x85\x18\x2f\x8a\x53\x5d\x1a\x40\xc3\x1d\x7f\x83\xda\x8b\x63\xb8\x61\x42\x61\x16\x0c\xbc\x83\x34\x92\x72\x22\x31\x89\x43\xea\x34\x62\xae\xf2\xf6\xa1\xde\x9e\xe4\x60\x12\xc5\x24\x96\xd8\xac\xff\xca\x9b\xeb\x1a\x00\x5f\x47\x7d\x97\x97\x4f\xbc\xcd\xcb\x97\x66\xe4\x3d\xcc\xbf\xd7\x98\x86\x99\x09\x87\xba\x19\xb2\xdf\xcf\x47\x53\x31\xe5\x09\x62\xfb\xb0\x5e\x8f\x51\x61\x31\x6d\xf4\x25\x31\x95\x41\x68\x0b\x0c\x06\x3a\xdd\x5c\x4f\x78\xc5\x49\xcc\x62\x65\xb8\x8d\x5b\x38\xee\x5e\x6b\x80\x2f\xa3\xdf\x61\x29\x73\xcc\x08\x96\xfd\xdc\xf9\xa1\x8b\xb6\xad\x8c\xcc\xc1\x40\x22\x87\xc4\x2c\x93\x68\x0c\xa5\x75\x99\x2c\x08\xbc\x99\xfe\x2c\x8f\x31\x69\xd6\x8b\xe0\x92\x98\xc9\x20\x0b\x6c\xeb\x90\xf1\x22\xfd\x7b\x0d\xd3\x10\x73\xe0\xbb\x57\xd8\x1c\x0e\x55\xdd\xf2\xa2\x79\x7c\xad\xda\xea\x42\x55\x68\xfc\x63\x51\xc8\x12\x53\xa9\xb5\xe4\xf5\xf3\xcb\x33\x8e\x52\x6d\x51\x29\xe5\x23\xd4\x48\x7e\x3e\x99\x76\xd3\xf2\x40\x1c\x65\x29\xc6\x43\xcf\x25\x8a\x95\xa9\xe1\x6e\x1a\xc7\x24\xe5\x7d\x0c\x6a\x14\xe0\x47\xa0\x70\x12\xc7\x4c\xa2\x75\xb9\xdb\xdc\xef\x1f\x9f\xd6\xfb\xeb\xe7\xfb\xd5\xe6\xfe\x66\x7f\xf3\xb0\xb8\xf5\x63\x42\x0e\xd4\xb1\x8c\xf3\x81\xe6\x31\x02\x21\x88\x1f\x26\x42\x24\xb1\xc7\x7e\xe5\x33\x72\x51\x7f\xc7\x09\x4d\x1c\x5c\xf9\x6e\x6c\x82\x36\x65\xbf\xa9\xc5\x69\xa2\x2c\x39\x92\x69\x66\x25\xcd\xee\x54\xfb\xdb\x4e\x55\x8a\x14\x1d\x2f\xfc\x00\xe3\x94\x76\x9c\xc5\x01\x36\xf7\x2f\x97\x5f\xf7\xeb\xd5\x66\xb7\x67\xfe\x48\xca\x48\xe4\x64\x5b\xda\x9a\x1b\x73\x60\x5d\xfb\xf1\x97\xc8\xa4\xc1\x71\x8a\xaa\x72\xc9\xac\x98\x33\xa3\x49\x8d\x1d\x6b\xd3\xfc\xe3\xb4\xfa\x15\x0b\x30\xfd\x9a\x96\xd1\xbd\x8b\x01\xce\x5c\x89\x58\xc6\xdc\xd3\x3e\x0e\x25\xc7\x26\xd7\x92\x69\x8c\x06\xd2\xd5\x78\x9e\xd0\x61\x9f\xdc\xb2\x54\x02\x5f\xff\x81\xff\xbc\xad\xe4\xdb\xea\x34\x24\x40\x25\xb1\x8a\xb2\xd8\x26\xdd\x26\xfa\x01\x76\x00\x44\x0c\x05\x41\x96\xf5\xc7\xb1\xad\xb6\xfc\x85\x2f\xab\xba\x06\xd9\x82\xfa\x0a\x75\xf7\xe5\xcf\x16\x91\x66\x49\x12\xfa\x66\x3a\xa8\xdf\x7d\xa3\xb7\x1b\xd0\x05\xb0\x03\x2f\x7e\x8f\x0b\xb6\xb3\x90\xf3\x0e\x40\x12\x50\x8a\x6d\x1e\x6f\xf0\xb1\x3e\x1c\x8b\xea\x03\xa0\xb1\xcc\x4a\xfd\xb3\x24\x81\x4d\x15\x77\x53\xa8\x79\x19\x2e\xff\x84\x24\x09\x37\x6f\xa1\x33\xb2\xb9\x95\x9f\x6f\x3c\x0e\xd2\xa7\x26\x12\x22\x62\x8c\x30\xcc\xcb\x44\x71\xc1\x79\x55\x32\x92\xd0\x20\x8c\xba\x75\xf9\xf8\xbc\xfd\xea\xa6\x7b\x42\x95\xa9\x4b\x1d\xd1\x1a\x8c\x27\x61\xc2\x08\x8b\x87\x55\xb9\x7d\x5b\xd9\x5e\x9f\x89\x5c\x27\x49\x98\xe0\x58\xb5\xef\x69\x27\xdf\x5d\x16\x2e\x09\x89\x0a\xb4\xdb\x3a\x6f\xf3\x3f\x4f\x56\x41\xf4\x5c\xa6\x8b\x24\x21\x0b\x11\x24\xb0\xb7\xe1\xdc\x4f\x09\xa0\x40\x9d\x37\x55\x0d\x4e\x09\x53\x42\x7d\x22\x76\x59\x55\xb5\xca\x4b\x97\x6f\x23\x7e\x14\x4f\xc1\x7a\x04\xf7\xf0\x63\x59\x15\x55\x3d\xda\xbf\x93\x50\x86\xd8\x2c\x74\xc8\x1d\x1d\x45\xe4\x1e\x20\x56\x09\x86\xd1\x9e\x76\xe1\xd3\xb6\x69\x92\xc4\x3a\xc6\xfe\x32\x8d\xd5\xe2\xce\xd0\x4c\x6b\xbf\x49\x12\x19\x36\xef\xbc\xb9\x44\xc2\xe6\x06\x66\x9c\xf9\x3e\x05\x28\xd4\x99\x0e\x25\x49\xd2\x90\xb0\x1e\xc9\x87\xf9\xbc\xbb\xbc\xbc\xad\x5e\xaa\x0b\x1e\x6a\x92\xc6\x69\xe0\x1a\x22\xbb\x67\xca\xab\x72\x59\xf9\x2d\x24\x49\x63\x85\xcd\x4c\x36\x5d\x0d\x4d\x33\x48\x2d\x8c\x32\x31\x49\x9a\xa4\x69\x30\xe1\x24\x1a\xe9\xe8\x9f\xb1\xe6\x93\x84\xd3\x38\x35\xf4\x76\xa5\x21\xae\x75\xbf\xcb\x33\xc0\xf9\xb6\x98\x3c\xa0\xa0\x14\xfb\x64\xd0\x49\xda\xa3\xd5\xb0\x47\x24\x4f\x31\x1c\xa8\xab\x53\x79\xc6\x3b\xe2\xc6\xc8\x04\xf5\xd3\x9b\xb6\xaa\x41\x0d\x15\x45\xed\x00\x15\x52\x04\xe9\x98\x06\xca\x89\x37\x93\xa8\x48\x87\xe1\x08\x9c\xe3\xc3\x93\xe9\x75\x12\xc2\xb8\x2f\xd3\xec\xaa\x67\xf4\x36\xc7\xb3\x4c\x29\x1a\x5b\x67\xc2\x83\xac\xea\x09\x71\x31\x49\x14\xa4\xa9\x53\xa6\x68\x79\xb1\xe9\x13\x74\xc3\x9d\x31\x81\x30\x46\xe0\xe3\xbd\x98\xfc\x9d\xd3\x48\x38\x95\xa8\x23\x56\x9c\x97\x95\x82\x91\xfb\x9b\x80\x08\xb0\x14\x82\x9b\xc8\xd7\xaa\x50\xe7\xd5\xd9\x8b\x8d\xcb\x24\x01\xa9\x33\xb0\xfc\x95\xd3\x30\xe5\x9c\xba\x62\x9e\x35\xc7\x5d\x0a\x0c\x1a\xa1\x81\xf6\x86\x37\xc6\x90\x5d\x57\x35\x6e\x25\xb7\x55\x35\xf1\x71\x13\x1d\x18\x9e\x88\xcd\xf2\x61\x6f\x54\xa3\x77\x9b\xbb\xb5\xdf\x1f\x13\xcd\x23\xc4\xec\xe8\xbc\x28\xac\xef\xcf\xeb\xe6\xbc\xa2\xef\x86\x03\x47\x46\x59\x9b\x22\x33\x2b\xff\xb2\x0a\x1d\x49\x83\x10\x90\xfb\xcd\x7e\xc1\x09\x87\xeb\x7c\xdc\x9e\x12\x61\xb4\x04\xb7\x05\x3f\x1c\xa0\x3e\xc3\x80\x93\x94\x32\x6a\x74\x13\x1a\xd3\x70\x81\x1f\xd4\x86\x5f\xe3\x6b\xd1\x98\xa3\xa2\xcb\xf2\xee\xb7\x2f\xee\x4f\x8a\x1b\xee\x25\xe4\x26\x1e\x50\x65\x91\x94\x25\x26\xb4\x5c\xf6\xe9\xc2\xc9\xf5\x18\x64\x58\xf2\x58\xd7\x75\x55\xbb\xc5\x3e\x9c\xb4\x69\x98\x30\x6c\x34\xb4\xa5\x4f\xcf\xec\x6a\xa7\xcb\x5f\xeb\x28\x20\x69\x98\x0a\x64\xaf\x69\xaa\x03\xdc\x41\xfb\x3a\x4d\x48\xa7\x51\xa2\xc3\xee\xc9\x1e\x76\x5f\xd7\x4f\xcb\xa7\xe7\xcd\x76\xfd\xb4\xbf\x5b\xfc\xbe\x5f\x2e\x9e\x6e\x5c\x14\x9d\xc6\x91\x11\x8a\x74\x2d\x87\x83\x62\xc9\xf4\xeb\xa6\x31\x10\x6a\xfd\x05\x7c\xa1\xce\x70\x9b\x26\xfe\x3e\xaf\x90\x26\x24\x71\x9d\xb7\xdd\x1d\xef\xaa\x47\x3e\x88\x3f\x07\x03\x53\xa6\xa8\x9d\xad\x3b\xfe\x73\xb6\xf6\x9c\xa6\x91\x42\x82\x2f\x9f\x75\xfe\x0e\xb9\xa1\x12\x71\xcf\x90\xa6\x92\x85\x6e\xce\x1f\x44\x91\x97\x2f\x97\x94\x00\x49\x9a\x0a\x83\xfb\xe1\x23\x31\x9d\xeb\xaa\xde\x1e\xbb\xb0\x60\xe2\x3a\xa6\xa9\x96\x98\x96\xa9\x6a\x05\xf5\x0a\x8e\xed\xeb\x38\x37\x9d\x66\x3c\x4c\xfb\xfc\xc4\xb0\x3a\x9d\x76\xaf\x4c\x8c\x90\x41\xa6\x84\xe8\x0e\xd3\x20\x1b\x08\xfc\x74\x6f\xd4\x58\x8e\xc9\x0b\xe0\x89\xd0\x72\xc8\x1a\x77\x36\x42\xe8\xd8\x6d\xc7\xd7\xa7\x52\x4d\xb2\xe2\x76\x90\x24\x1c\xa3\xaa\x2e\xde\xdc\x55\xdd\x63\xba\x1b\x91\x49\x44\x2c\xac\xe4\x8c\x16\x9d\xa4\x52\x9a\xcc\x7d\x9f\x7c\xb7\xee\xf1\xf8\xbd\x4a\x15\xa0\x2d\xee\x35\x43\xe6\xf7\xe0\x54\x29\x8e\x61\xb5\x25\x00\x76\x50\xa8\x29\xdd\xed\x2f\x12\xe2\x93\x8b\x42\x60\x88\xdf\xb1\xd5\xbc\xae\xab\x1f\x79\xf9\xb2\x69\xe1\x70\x31\x45\x3d\x2a\xe3\xce\xcf\x14\x20\x06\xf3\x51\x7b\x5d\xf2\x7d\xcd\x65\x5f\xbf\x4f\x81\x02\xe2\x0d\x0b\xd0\x6d\x9c\x4d\xde\x07\x68\x82\x50\xea\xc5\xed\xad\x4b\xec\xa6\x3a\x34\x62\xbe\x5d\x28\x5e\xd5\x1a\x72\x4c\x50\x0c\xca\x37\xc3\x9d\x3d\xd5\x49\x84\xb6\x71\xf7\x0a\xd2\xe7\x8e\x53\x9d\x09\xcc\x93\x76\x2e\xa4\x61\x64\x3a\x2b\x6d\x8f\x9f\x23\x0b\x02\x69\x2a\xba\xfc\xcd\xcc\x32\x83\x62\x9d\xac\xb3\x2c\x60\x46\x54\xc0\xfe\xd5\x66\xc0\x9e\x1b\x50\x8b\xc6\x14\x85\x9c\x0b\x97\x05\x0c\x38\x3a\x01\x27\x71\xc8\xdb\xe9\x75\xa2\x20\xf0\xf2\xbf\x5b\xac\x29\xd9\x6a\xd2\x20\xb3\x9a\x05\x09\xb3\x38\x44\x71\x7a\xb9\xe5\x2d\x34\xad\x6b\x0b\x5d\x76\xb1\xf9\xd0\x83\xcf\x68\x10\xe1\xe0\x4a\xeb\x4b\xe0\xe1\x8c\x06\xda\xaa\x18\x60\x67\x7e\xf9\x82\x20\x3a\x77\x90\x26\x48\xb7\xd6\xbb\x1d\x57\x35\x70\x35\xeb\x85\x65\x94\x87\xc8\xd0\x6b\x45\x7e\x88\xbf\x88\x56\x98\x0c\xc6\xba\xc9\xba\x54\x0d\x09\xdc\x21\x46\x8c\xfe\x7e\x5b\x7f\x2c\xca\xaa\x7d\x45\xcd\x63\x77\x30\x64\x84\x58\x49\x5c\x27\xae\x50\xfa\x63\x51\x18\xd9\xbe\xb0\x8d\x82\xb2\x45\xa1\x20\x5d\xb9\xc3\x71\xa0\x52\xa3\xfe\x62\x68\xc0\x7f\xfb\x90\xfe\x10\x33\x95\x2b\x01\xad\xc9\xe1\xec\xaa\xe7\x06\x21\x95\x57\xbe\x2a\x95\xc5\x51\x86\x3e\x0d\xb6\x8a\x40\xb9\x38\x3c\xb7\x72\x3c\x4f\xb3\x38\x52\xd8\x57\x75\xa8\x9c\x80\xf5\x80\x85\xe8\x8c\x26\xcb\x9d\x94\xa5\xe8\xd3\xba\x58\xc6\xe7\xc7\x56\x35\x7f\xf1\x1c\x95\x24\x8b\x05\x60\x67\x57\xde\xac\xf2\x2e\x6e\x5c\x81\xc8\xdb\xf5\x40\x9a\x81\x64\x09\xd5\x58\x2e\x36\xfe\x76\x0f\x56\x1b\x4f\xaa\x24\x32\xfd\x73\x38\x27\x93\xe4\xe6\x57\xc4\x6c\xee\x34\x19\x84\xd4\x93\xce\xd8\xf4\xcf\xf4\xd2\x20\x31\x92\x83\x9f\x12\x6c\x4f\x58\x73\x75\xaa\x7d\xf5\x23\x4b\x53\xf3\x8d\xba\x19\x73\x53\x54\x02\xd1\xe0\x38\x53\xd5\xae\x52\xbe\x81\x28\x4b\xb9\xe9\x01\xbf\xfd\xed\xf6\x9f\xee\x6f\x19\x0d\x49\x1f\xec\x2c\x79\xa9\x30\xeb\xf8\x50\xae\x0b\x98\xef\x38\x9e\x43\x5e\x67\x22\x0a\x91\x4f\xb7\x31\xa9\x3d\xbf\xf5\x65\x22\x4d\xd0\xc9\xf7\xc6\x79\xbd\xdd\xcd\x87\x29\x99\x00\xe1\x36\xe5\x65\x75\x38\xf2\x72\xda\x63\x47\x32\x49\x74\xe0\x52\x92\x4f\x5e\x68\x69\x7c\x19\x19\x06\x58\xbe\x2e\xe1\xc7\x46\xed\x78\xf9\xf6\x1d\xf8\xd1\xc7\xe1\x99\xcc\xa4\x23\x09\x5a\xb7\xaf\xba\xae\x0e\xcf\xdb\x95\x3f\x28\x8c\x7c\x0c\x57\x26\x39\x6c\xff\xac\x44\x3c\xec\xdd\x70\xe2\x5a\xc6\xe8\x0c\xf0\x31\x19\x10\x85\x08\x14\x5c\x81\x9b\xd2\xf2\x67\x22\x6a\xd0\xaf\x52\xa0\xa6\x31\x11\x89\x1c\x0d\xf3\xf2\xe4\x09\x40\x31\x0c\x80\x1c\x8c\xb1\xdb\x32\x7b\xd0\x4f\x06\x90\x20\xea\xde\xc6\x6b\x79\x89\x69\xd9\x2b\x40\x46\x96\xc9\xa5\x34\x17\x4e\x9b\x7c\x50\x66\x99\xff\x00\x3c\x08\x43\xb4\x62\xa8\xcb\x34\x42\xb9\xf0\x00\x00\xd3\x8c\xb7\xd5\x8b\xa1\x2a\x59\x1c\x8f\x45\x3e\x53\xb3\x98\x63\xab\x23\x18\x41\x30\x2b\x17\xbc\xcd\x5f\x26\x10\x15\x4e\x40\x83\xb5\xec\x46\x26\xee\xac\x2a\x38\x9a\x06\x9c\x06\x81\xf4\x9c\x6d\x25\x72\x39\xb9\x1b\x65\x60\x80\x29\x46\x80\x7a\x56\x8d\xc0\x19\x09\x1e\x66\x3c\x30\x24\x57\xc8\xa2\x95\x1f\xe0\x42\x04\xcd\xa3\x4c\x63\xa7\xd7\xbe\x86\x12\x7e\xb8\xdf\x8a\x94\xc1\x37\x19\x79\x15\xd7\x9c\x3c\xbe\xd5\x38\x36\xe1\x8e\x02\x75\x92\xf8\x85\x26\x0e\x39\x8f\x55\x84\xde\x93\x5b\x21\xfb\xcf\x73\xdd\x3c\xe9\x9e\xdf\x52\xa0\x55\x87\xc3\x4c\x83\xe2\xd9\xf8\x94\x39\x13\xd3\xbd\x96\x92\x1f\xe0\x1b\xd4\xb9\xce\x61\xac\xae\x4e\x78\x12\x06\x91\x41\x3b\x39\x0a\xfe\xed\x8b\x7f\xb5\x49\xc8\x39\x78\xb0\xd9\x1d\x9c\x07\x2b\x3c\xc9\xb4\x91\xa9\xfc\x91\x97\x83\x92\x05\xa1\xe9\xb8\xf9\x6f\xe0\x62\xf3\x04\x62\x64\xac\x38\xe4\x65\xbb\xab\x81\x37\xa7\xfa\x63\x94\x91\xe3\x69\x44\x23\xc3\x08\xd0\x9e\xea\x12\x01\x8c\xee\x48\x9a\xa0\xf3\x9b\xa3\xcc\x10\x32\x09\x5e\x28\x23\x71\x2e\x18\x32\xdc\xfc\x80\xfc\xe5\xd5\x3f\x13\x57\x41\xa6\x6c\x41\xba\x2a\x3f\x43\xb3\x71\x11\xc6\x28\xd0\x67\x1b\x7b\x2d\x2c\x7f\xb2\xe0\xb8\x4c\x28\x02\x3e\x6d\x80\x79\x39\xb6\x76\xe3\x55\x68\xb4\xd5\xbe\xaf\xf6\xdb\xaf\x8b\x27\x87\xc7\xe5\x52\x07\x58\xd3\x5a\xd4\xed\x72\x0a\xd1\xe1\x8a\x8a\x2c\xf3\x9f\xc2\x51\xbd\x5b\xb7\xfa\xd2\x1b\x50\x51\x88\x1b\xf2\x6b\x55\x28\x97\x64\xf4\x17\x4c\xac\x82\x22\xca\xa1\x9c\xea\xd2\x5b\x70\xae\x84\xa0\xb6\x43\xd3\x6f\x0f\xb3\xd4\x43\x84\x2b\x15\x61\x3a\xef\xb5\x0b\xec\x8b\x11\x17\xd3\x85\x95\x0c\x82\x60\xac\x79\xe4\x1f\x82\xcb\x37\x5b\x96\xb9\xb0\x0a\x41\x12\xcc\x3c\x1b\xc5\xec\xed\xe6\xf6\x9b\xef\x38\xe3\x3a\x0b\xb0\x0c\xa1\x4f\xa5\xe4\x9e\x9d\x9f\x70\xcd\x8d\x33\x7f\xac\xe1\x3d\x2f\xf2\x17\x50\xcf\xe5\xed\x8c\x58\x90\x19\x2e\x02\xcd\xd0\x1f\x38\x35\x50\xf7\x9d\xe3\xe3\x31\x24\x0c\x44\xec\xe1\xa3\x7d\xab\xba\x89\xaf\xdc\xa0\x98\x72\xcb\x5d\xb7\x6f\xf3\x03\xe8\x7a\xc8\x16\x3a\xf9\x55\x12\x43\x24\x3d\xa9\x3b\xf6\xa5\x4e\xfc\x0b\x41\xa4\xa1\x88\x7b\xe5\xcd\xb8\xa5\x62\xe8\x91\x0b\x02\x51\x60\x0d\xe9\x5d\x5e\xb6\x5d\x9c\x89\x2c\x00\x1f\x93\xab\x51\x4a\x22\x8b\xe2\x85\xc3\x71\x90\xa6\x16\x94\x3a\x41\xa1\x62\xfd\x53\x16\xa7\xa9\x18\x13\x11\x94\x45\x28\x3c\x76\xac\x8e\xb7\xbc\x7c\x39\xf5\xc5\x73\x41\xa3\x14\xd9\x26\x11\x53\xf2\x1d\xe0\xcd\x24\x20\xdc\xd1\xd4\x10\x14\xef\x4e\x45\x7e\x1c\xce\x3e\x41\xb9\xc4\xf3\x24\x32\x91\x4c\x52\x72\x82\x45\xd2\x49\x21\x6c\xad\x4f\x32\x9a\x76\x82\x65\xc6\xf7\xda\x5b\xcb\x84\x69\xf4\x89\x99\x15\x0c\x4c\xa7\x9f\x2e\xba\xf5\xbf\xaa\xbc\xfb\x2b\xc2\x20\x73\x5a\xab\xdf\xab\x5a\x19\x14\xd6\xd0\xbb\x11\xa1\x32\x45\xeb\xd5\xef\x57\xcb\x73\xde\x58\x22\x42\x6d\xfa\x02\xff\xaf\xca\xc7\xf4\xa5\xf6\x78\x24\x0c\xf6\xea\xe3\xd0\x4e\x65\xb4\x88\x88\x83\x54\x66\x2e\xa1\x9d\x97\x58\xd0\x3f\x4d\xc9\x94\x06\xc3\x43\x89\x9b\x74\x2f\x7b\x35\xc3\xbc\x86\xda\xcc\xa2\xd7\x1f\x7a\xc6\x1d\x6e\x98\x0c\x9d\xe7\x68\xf5\xaf\x34\x56\x21\xda\xfa\xa7\xf5\xe3\xed\x62\xb9\xde\xba\x77\x95\x24\x29\x8b\x3c\xc2\xc0\xc1\x22\xe7\x78\x67\x89\x48\x38\xc4\x36\x53\xaf\xd0\xb9\xae\x6a\x6c\x60\x18\xbd\x9a\x44\x1b\x05\x7b\xc3\x96\xf9\x04\x7f\x9e\xf2\xda\x14\xd4\xcf\xb6\xb5\x61\x24\x6c\xcf\x4e\xe3\x38\xb0\xb7\xf3\xb5\x3a\xd5\x2f\x05\x6f\x9a\x71\x41\x5d\xa4\x32\xc4\x72\x44\xc1\x1b\xc7\xc9\x60\x6e\xd6\x1e\xcf\x42\x89\xf0\xc5\x16\xf3\xf6\xdf\x3d\x78\x5c\x64\x5c\x63\x31\xcf\x78\x07\x57\xd0\xfa\x89\x9c\x49\x91\x3a\x01\xb8\xbc\x3d\x15\x3c\xaf\x61\xdf\xb9\xac\x2d\xec\x63\x3f\x08\x02\xdc\x6f\x9e\x4b\xfe\xd2\xb9\x78\xe3\xcf\xc3\x03\x4b\xfd\x5f\xe5\xe5\xae\xae\xaa\xa3\xbf\x38\x0f\x43\x8c\x04\x8d\x43\x3e\xab\x1c\x38\x79\x09\x3c\x89\x70\x31\xeb\x5c\xb8\x80\x78\x08\x8e\x12\x22\xa6\xd4\x58\xe5\xa2\xed\xdd\x48\x21\x92\x14\xf3\xe0\x07\xfe\x06\xbe\x1d\xf8\x62\x3a\x62\x3c\x3d\x04\x37\x14\x16\x28\xbb\x8d\x14\x6b\x27\x51\x5c\xf2\x2b\x85\x24\x06\xc1\xa1\xab\xfa\x05\xfb\x6b\xce\x13\x02\xe3\xb7\x23\x93\x18\x7d\x74\xf8\xd9\x42\xa9\x1e\x9f\xd6\xbb\xd5\x7a\x32\xb9\x64\xc2\xf1\x1b\x34\xaf\x9c\xed\x23\x47\xf2\x49\x84\x8a\x22\xdc\x50\x3a\x6f\x6e\x05\x92\x7f\xf8\x9d\x6e\xfa\x64\x17\x9b\xb1\x84\xe2\xa6\x5d\xd6\x98\xe3\x4d\xe7\xb0\x7c\x19\x14\x97\x84\x52\x24\xb4\x49\xc1\x75\xa9\xaa\xba\x41\xf5\xbd\xcf\xdd\x30\x01\x49\x86\x3b\x4b\x37\xc3\x8f\xcf\x7d\xf7\x5c\xfc\x6f\x37\x40\x05\xa8\xe1\x32\xa8\x62\x0b\x9d\x72\x74\x4f\xa0\x54\x9b\xe5\xc3\xfe\x07\xf1\x07\x34\x20\x52\x0d\xd9\xd0\xd1\x6a\x16\x7e\xc7\x96\x41\x64\xe2\x87\xcb\x3c\xbe\xe1\x30\x81\x26\x49\xc8\x1c\xee\xd3\x54\x68\x8c\x05\xc5\xb0\xa5\x3b\xb7\xbf\x32\x89\x08\x26\xa3\x25\x2f\xe4\x3d\xfc\xd8\xbe\xe5\xe5\xe2\x78\x04\x5e\xf7\x64\xa4\xce\xd5\x73\x38\x3b\x49\x22\xd3\xc6\xbd\xcc\x8f\xaf\x50\x3f\x16\xfc\x63\xde\x3f\x91\xb4\x8b\xb3\xfe\xe7\x7f\xff\xe7\x6e\xf1\xbb\x2f\xe9\x2f\xee\x1e\x9e\xef\x77\xee\xe7\xa9\x8e\xc3\xb0\xcf\x00\x85\xee\xef\x2c\x48\xd1\x35\x7b\xac\xab\xe6\x88\x86\xa6\xb9\x71\x82\x36\x6e\x4c\x18\xa6\xa8\x37\xf0\x96\x97\x2f\xaa\x3a\xb8\x42\xd8\x35\x40\x5f\xc0\x97\x61\x92\x78\xc6\xaa\xaa\x73\x81\x7f\xcb\xbd\xb3\x29\x43\x25\x90\x40\x04\xda\xd7\xfd\x01\x7c\x6c\x24\x23\x92\x11\x6b\x84\xae\xdc\xdf\xe2\xd4\x14\xca\x30\x84\xdb\x37\xaf\xbc\x86\xfd\x71\x90\x5e\x92\xb1\x0a\x10\x60\xc4\xf3\x7a\xe5\x7a\x7d\x57\xd0\xb4\x75\xe5\xc2\x75\x99\x06\xd2\xb1\xe4\x3e\xd7\xf9\x0c\x88\x56\xa6\x92\x27\xbd\x47\x6e\xaa\xf1\xb3\xa1\x8e\xcc\x02\x8e\x49\x39\x0b\xaa\x47\x74\x42\xd3\x19\x9f\xab\x0f\x97\x2b\x98\x5f\xbc\x32\x23\xa6\x96\x51\x9b\x6a\xc0\x1a\xd3\x1f\xfd\x73\x64\x8c\xa0\x9b\x3a\xc5\xb2\x7d\xba\x18\x64\xc6\x42\xfc\xd4\x3b\x68\x5a\x1b\x37\x8d\x3e\x56\x16\x71\x5c\xc5\x37\xdb\xcd\x2c\x3c\x7c\xb8\x68\x27\xb3\x28\x53\x14\x77\xa8\x83\x01\xc4\xbb\x34\xc6\x3f\x4e\x55\xed\x7b\x7c\x24\x0f\x02\xc4\xb7\xae\x6f\x37\xbf\xdb\x7c\xfa\x16\x06\x1d\xf3\x92\x27\x01\xf2\x4d\x62\x0d\x72\x95\xbf\xfb\xbf\xa7\x1a\xf5\x6d\x6e\x77\x4f\xa3\x1b\x16\x8c\x08\x23\x11\xd4\xf3\x05\x13\x29\x38\x60\xca\x59\x8e\xfa\x23\x1a\x67\xac\xa4\x22\x51\xa0\x70\xf3\x73\x74\xa2\x67\x70\x0b\x09\x91\x70\xa4\x47\x9b\xb2\xdb\x6d\xf3\xf7\x41\xb7\x92\x84\x04\xb0\xb6\x5b\x1d\xa1\xec\x37\x8b\x38\x1c\xf2\x75\xfb\x59\x00\x3c\x46\xed\x63\x59\x7f\x1c\x5b\x7e\xaa\x9d\xfe\xad\x3b\x2c\x4c\x9c\x85\x35\x71\x4b\x1f\x34\xa3\x45\xd1\x0d\x64\x28\x91\x63\x61\x17\x6d\xcd\x5b\x78\xc9\xa1\xe9\x2b\x97\x7e\x82\xa8\x20\x0d\x63\xe9\xf4\x2e\xb1\x79\xe1\xc2\x6e\xf6\xff\xd5\xbf\xee\x77\x79\x98\x5a\xb0\x97\x97\xd7\x1c\x5a\x79\x15\x70\x81\xfd\xf3\x56\x98\x63\xc8\x26\x3f\x24\x5e\x22\x8a\x04\x0a\xd7\xce\xb6\xad\x4a\xb8\xad\x5e\xe6\x9d\x78\x45\x03\x23\x20\x32\xe0\x21\x19\x73\xe3\xba\x71\x11\x45\x9f\xa5\xa8\x7a\x6a\x2f\xa2\x68\x92\x61\x94\x75\x84\xba\xa9\xca\x5e\x3a\xce\x1f\x4f\x03\xc5\xfa\xa2\x04\x66\x9f\xdd\x6e\xa0\x58\x4c\xb0\xfd\x6d\xf5\xdb\xb6\xff\x93\x14\x1e\x5f\x8f\x8b\x72\x5d\xb6\x79\x6b\x84\x62\x2b\x3d\x06\x10\x8d\x97\x90\x0a\x53\x8e\xb1\x8b\xad\x7c\x2c\x5f\x79\x59\xc2\x45\x76\x7f\x77\x92\x4c\xa4\xd1\x31\x39\xe4\xed\xf6\x0d\xcb\xb1\x9d\xbb\x71\x93\xbf\x5f\xc0\x43\xa7\x7f\xf1\x4b\x86\x32\x45\xff\x65\x9b\xbf\x94\x7e\xe2\xab\x88\x11\x2c\x82\x2e\xf9\x31\x6f\x7d\xb0\xa0\x22\xc1\x50\x4a\xd4\xaf\xa8\xdd\xcf\x41\x26\x4f\xc5\x44\x60\x80\x84\xc8\xca\x1c\x6a\xb7\x85\xa8\x24\x30\x49\x35\xac\x61\xe1\x2b\x5e\xf2\xde\xf1\xea\xd3\x15\x2a\x51\x44\xa9\x5f\xaa\x42\xff\x97\xff\x7e\xce\x4d\xe0\x8a\xd1\x2a\x01\x89\x34\x4f\xc6\x8a\x23\x71\xfe\xba\x57\xbd\xb7\x83\x52\x2a\xb1\x7e\xb8\xbe\x5a\xdc\xbb\x92\xb1\xea\x1c\x65\x0c\x91\xa4\xb1\xcf\xdb\x53\x8d\x20\x0a\xa4\xce\x2e\x26\x32\x16\x44\x65\x24\xc2\xbc\x0a\x4e\x9c\x51\x32\x46\x65\x04\xb0\xc7\xa6\x05\xf9\x5a\x56\x45\xf5\xf2\x31\x9d\xaa\x9c\x6a\x61\x92\x13\x6d\x9d\xc3\x3b\xac\x16\x0f\x96\x1a\x64\xf0\x1a\x39\xa3\xe8\xed\x6c\x5f\xab\x63\x2e\x8a\x9e\x89\x4a\x71\x8b\xcb\x6f\xa0\x28\xae\x8b\xca\x43\x87\x15\x17\x26\x54\x78\x58\x6c\x66\x41\xf6\x76\x98\xc8\x0c\xd1\x8e\xe7\xcf\x9b\x0b\x26\xec\x58\x49\x98\x4b\xff\x74\xb3\x6b\xa6\x35\x77\x70\xcb\x4a\x9a\x28\xf0\x79\xbb\x5a\xfe\xee\x6e\x4a\x29\x9d\x04\x83\x1a\xdc\xba\x7d\xfd\xca\x4b\x55\xc0\x3c\xb0\x58\x01\x27\x58\xc4\xc2\x75\x79\x55\x70\xf9\x36\x84\x96\x4c\x06\xeb\x04\x44\x37\x29\xff\xb8\xfa\xed\x12\xca\x86\xce\x2b\xe0\x91\x2e\xfa\xc0\x56\x8b\xda\xf4\x83\x7d\x87\x7c\x53\x6e\xa1\xd0\x9d\xb7\xf1\xc5\x8d\x09\x43\x03\x07\x33\x79\xea\x70\xd2\x09\x07\x81\xa4\x18\x9a\xfe\xc0\x32\x1e\x7a\x20\x7e\x8b\x04\x12\x49\xec\xd3\x93\xbc\x3c\x35\x67\x90\x27\x60\x82\xa0\xfa\x57\xb7\x47\x34\x5e\x69\x91\x00\x93\x41\x60\xc2\x8e\x1c\xa9\xdf\x77\x8e\x49\x90\x40\x28\x05\x76\x5b\xe5\xe5\x3b\x34\xc6\x0c\xb7\x63\x2d\x30\x02\xa1\x32\xe0\x04\x93\x7e\x6c\x5e\xf3\xe3\x53\xd5\x0c\xee\x2a\x04\xae\x7b\x47\xe7\xb9\x81\x7a\x0a\xd9\x98\x2b\xa8\x9e\x55\x5d\xc7\xcf\x12\xea\x04\x51\x59\x9e\xb5\x73\xca\x7a\x3e\x57\x1b\x76\x9e\xb0\x9f\x6d\x10\x11\x8e\x89\x8c\xce\x42\xa2\xaf\x77\x92\xe7\xfd\x9a\x10\xc5\x06\x92\xba\xe4\xcd\xeb\x83\x27\x62\x83\x28\x0b\xb1\x5c\xdb\x59\xb3\xab\x93\x0b\x5f\x21\x8e\x03\xc7\xdb\x68\xb0\xc6\xb0\x1b\x14\xaf\x20\xe6\x86\x31\xb2\x84\x9f\xc8\xc8\xe0\x9b\x10\x20\x01\x23\x2e\x2f\x5d\x65\xec\xea\x54\x97\x23\x3e\x1a\x48\x33\x8e\x2a\xf1\xa6\x9d\x7b\x78\x80\x27\xa9\x0d\x18\x16\x26\x67\x6a\xa9\x93\xfc\xef\x66\x4c\xc4\x6c\xb0\x08\x77\xf9\x71\xfa\x1d\x66\x57\x24\x64\x51\x82\x98\x03\xe0\xad\xed\x77\x69\x16\x45\xfe\x3e\xf1\x8a\x80\x07\x01\x62\xee\x4c\xe2\x77\xc7\xdf\xb0\x2b\xdc\x14\xee\x2e\x84\xa1\x20\x02\x81\x39\x0d\x28\xf2\x43\x5e\xf2\xfa\xff\x4e\x2f\x5c\x4d\x38\xf9\x09\x88\xd4\x70\xb8\x0c\x35\x83\xd4\x99\x32\xe4\x64\x82\x48\x11\x62\x19\x13\x3b\x9d\xbb\x3d\xf3\x36\x3f\xe4\xed\x0e\x3c\x13\x15\x40\x92\xe2\x87\x58\xec\x76\xfe\x4f\xa9\x4c\x52\xa7\x36\x34\xf4\x38\x40\x67\x26\xc1\x50\x83\x73\x4e\xfe\x5a\x39\x51\x13\xce\xb1\xda\x66\x12\x69\xdf\xaa\x16\x3c\xe9\xf9\xac\x39\xd2\x44\x19\x8a\x72\x94\x11\xca\xff\x03\x73\x7d\x06\x9a\x86\x82\x0d\xb5\xc0\x56\xd0\xf2\xbc\x98\xec\x19\x9a\xc5\x1c\x1f\x67\xfd\xf4\xb0\x5d\x3e\xf8\x66\x31\x1d\x32\x6d\xe4\x30\xef\x37\xcb\xe1\x53\xea\x50\x64\x32\x9d\xc4\x24\x37\x97\x7a\xdc\x74\x14\x72\x64\x78\x28\x27\x7a\x52\xee\x70\x2c\x9c\x62\xe4\x53\x55\x14\x0f\xa7\xf6\x78\x1a\xd3\x54\xa6\x13\xa7\x63\xfc\x22\x12\x4d\x31\x8e\xd9\x8b\x1a\x40\x7d\xcf\xdb\xd7\x79\x37\x4f\xa7\x21\x51\x89\x4f\x0b\x5d\xf7\xe8\x44\x9d\x72\xc5\xe5\xc0\x7c\x0d\xca\x52\x3a\x05\x8e\x62\x00\xe5\xe9\xf0\xa0\x57\xd0\xcd\xe8\x1a\x14\x2a\xbb\xba\xf8\xcb\xed\xb0\x3a\x0b\x28\x7a\xfc\x4b\xd3\xcb\xf6\x0d\x9a\x76\x7b\x84\x29\x76\x5a\x67\x24\x40\x03\x6f\x5e\x1f\xe6\xb4\xfb\xcd\x4a\x73\x96\x79\x99\x5c\xc4\x22\xf9\x16\xe6\xf1\x55\x78\x14\x06\x3d\xa3\xfb\xb7\xaa\x73\xd9\x90\x58\xe9\x2f\xfb\xe9\xfe\x42\x71\xec\xd4\x41\x8d\xc3\xe8\x19\x42\x46\x41\x88\xe6\x92\x62\x49\xf2\xba\x2a\x8a\xea\xc7\x79\xff\xdf\xe0\x19\x34\x04\xd2\xd2\x9a\x3e\x41\x93\xab\x13\x2f\x66\x27\xa8\x08\x18\x82\x00\x6f\xaa\xaa\x67\xc7\xfb\xd5\xed\x8f\xdf\x83\x20\x0a\x11\x4a\x0e\x11\xe7\xfe\xcc\x42\xcc\x4c\x37\xae\x9f\x15\xf1\x93\x98\x48\x9d\xaa\x15\xcf\x96\x44\xb4\xa4\x44\x5b\xe8\xd7\xb6\xe5\x5a\xaf\xf2\x06\x7b\xe1\x90\xd2\x7b\x0e\x4e\xa6\xa5\x64\xc2\xd2\xb1\xbe\x80\x0b\x15\xb5\x0a\x33\xe1\x3a\x10\xae\xe7\x14\xf2\x88\x56\x19\xd5\x96\xcc\xa0\xcd\x4d\x5e\x0e\xcd\x72\x93\xbf\x8c\x5a\x81\x35\x08\x8e\xa0\x03\xd3\x89\x62\xf9\xef\xed\x31\x2d\x38\x46\x45\x8f\x8f\x37\xd6\x50\xd1\x20\x48\x0d\x8c\x88\x23\x09\xca\x55\xae\xae\x91\x4f\x72\x1e\xe8\x42\x83\x40\xc9\x84\x0d\x04\xc4\x3a\x37\xf5\xf5\x1c\x37\x46\x03\x42\x29\x35\x6d\xb5\xde\x5b\x9f\x8e\x10\xda\xc1\xef\xda\x02\x7d\xdd\xe1\xdb\xa5\x41\x17\x9c\x75\x4f\xf2\xed\x61\xb7\xb9\xbf\xd9\xaf\xef\x57\x08\x0f\x75\x37\x4e\x40\x61\x69\xd1\xd9\x72\xbf\x4b\x5d\x82\xae\xf6\x0f\x41\x99\xd1\x5e\x69\xac\x76\x82\x25\x3b\xd9\xdd\x3e\x7e\x99\x0c\x84\x10\xf1\x89\x05\x6f\xda\xfd\xab\x0f\x35\x68\xc0\xc2\x14\x57\xe0\xae\xb2\xed\xf8\xee\xef\x91\x86\x5e\x22\xce\x62\xa8\xf3\x83\x59\xc1\x33\xac\x06\x34\x08\xb3\x08\x63\xbf\x3b\x5e\xf2\x17\xf0\x17\x4a\x42\xe2\x04\x1f\x7b\xe9\x93\x53\x0f\xfa\xa5\x41\x22\x12\xcc\x12\x6e\x17\xb7\xa6\x4b\xc6\x9d\x9a\x0a\x86\xb3\x49\xe7\xa5\xba\xce\x5f\x4e\xf5\x24\x02\xa0\x41\xc6\x80\x88\x9e\x4b\x63\xc9\x2d\xb7\xfb\x75\x5d\x1d\x1e\x6b\x78\xcf\xab\x53\xf3\x29\x6b\x32\x0d\x32\xee\x69\x56\xb6\xf8\x58\x06\x32\x35\xfe\x82\x1c\x14\x86\x13\x47\x54\xa5\x7c\xad\x01\x7a\x79\x08\x1a\x88\x94\xa3\x03\xdc\xb6\xc5\x06\xad\xea\xd0\x41\xa1\x81\x10\x22\x15\x0e\x37\xa0\x5c\xa9\x24\x34\xea\xc6\x7f\xeb\x0b\xce\x34\x9c\x66\x7d\x2f\x93\x48\xd0\x40\x48\xa3\xc8\xd9\xed\xbd\x3f\x66\x18\x31\xed\x30\x49\x22\xd9\x7d\xc7\xbd\x6b\x14\xf1\x6c\x53\xe3\xab\xfe\x8b\x7d\x42\x2b\x36\x6b\x4c\x69\x20\xc3\x00\xdb\xd8\xef\x2a\x95\xeb\x8f\x2d\xb4\xed\x50\x4e\xfd\xff\x55\x46\x84\x06\x52\x86\x28\x5d\x88\x1f\xe0\xfa\x54\xca\x33\x2c\x25\x0d\xa4\x0a\x42\xd7\xd6\x68\x20\xb4\xd5\x67\x14\x06\x34\x90\x3a\x80\x64\x00\xb9\xbd\x5f\x7c\xbb\xcb\x65\x5d\x3d\x6f\x57\x93\x19\xa5\x94\x76\x65\x53\x47\x8e\x60\xae\xe8\x76\x3e\x1a\x28\xd0\xb1\x47\x43\x99\x6a\x3e\xba\x5f\xa6\xe2\x59\xd5\x1f\x36\xb9\x65\x87\x03\x8d\x30\x67\x62\xaa\x5b\xdf\x21\x9f\xfc\x22\x68\xc1\x5d\x3e\xeb\xa6\x86\x8f\x0b\x8f\xa0\xc3\x58\x1a\x23\xc3\x6b\xf9\x3a\x67\x94\xbb\x31\x80\xb5\xf3\x63\xfe\x13\x8a\xbe\x79\x02\xb9\xc8\x70\xf9\x8b\xd3\xc7\xd5\xa9\x2c\x3f\x46\x0b\x90\x04\x32\xe6\x1e\x5d\x55\xd5\x8f\x3c\x57\xfe\x44\x9d\x21\x26\xb8\x9b\x39\xe8\x07\x6c\x07\xf6\x9e\x12\x92\x84\x18\xea\xaf\x1c\x5d\xec\x3b\xd4\x8d\x17\x94\x1c\xdf\x1d\x21\x99\x69\x41\xb6\x54\x90\xc3\x50\x71\x3a\x90\x63\xcf\x82\x73\x2b\xaf\xab\xda\xf6\x65\xd9\x01\x34\xa2\xcc\x52\x1a\x23\x3a\x75\x76\x26\x11\x16\x44\xc4\x78\x3a\xc8\x5d\x74\xe2\xc5\x5d\x5e\x3a\x3f\xc6\xa7\xd3\x29\x61\x29\x43\xd5\xd0\x23\xd4\xd8\x8a\x2f\x6c\x2b\xb5\x43\x19\xf2\xe2\xcb\xe4\xc2\x59\x82\x89\xac\x6f\x39\xfc\xb8\x82\x96\xce\x7f\x31\xc2\x24\xc5\xf8\x63\xc5\x3f\xae\x3e\x56\x7c\x48\x3b\x43\x49\x44\x22\xb0\x34\x90\x9d\xfb\xa4\x4c\xf6\xbd\xd9\x37\x9e\xb2\x98\x92\x88\x02\x3e\x66\x0b\x4d\xfb\x50\x73\xe9\xfc\x48\x4a\xa2\x30\x1a\x73\x2f\x9c\xea\x72\xa8\x8b\xea\x86\x59\x81\xe9\xc6\x35\x04\xbe\x9b\x94\xdf\x19\xf3\x0f\x25\x71\xc2\x71\x1f\xd8\x2b\x5b\x2c\x73\xd3\x9d\xc4\x56\x06\xdf\x13\xcd\x54\xa2\xba\xb0\xce\x48\x92\x68\x6d\x43\xae\xdf\xe0\x63\x08\xce\xa2\x24\x4d\x8c\x0d\xe5\xef\x3c\x2f\xba\x08\xc8\xb4\xac\xf9\xdf\x49\x55\x8a\x08\x4a\x59\x00\xaf\x17\xa5\x5a\xa1\x7b\xfa\x81\x0c\x8a\xbb\x1f\xd5\x77\x80\x37\x3f\x36\x0b\x44\x18\x8f\xf2\x67\x36\xb6\xba\x70\x5f\x19\x23\x58\xa4\x58\x5a\x7a\x2a\x23\x45\x3a\xaf\xa4\x75\x9a\x21\x62\x9e\x1c\x1b\xad\x1e\xce\x28\x4e\x9f\x2d\xc8\x53\x9d\xb7\x39\x34\x7b\xe2\xee\x93\xc7\x86\x72\x14\xd3\xe2\xed\xa2\xae\xb9\x7b\x29\xa3\xfd\x85\xa8\x48\x60\xdf\xcb\xc9\x70\x4c\x1b\x67\xa7\xe7\x0c\xa4\x44\x65\x21\xf5\xed\x6a\x4f\x03\x1e\x12\x4a\x94\xce\xf0\x9d\xef\xbe\x6e\x9e\x76\x7f\xec\x57\x8b\x3f\xb6\xee\x10\x10\x47\x1c\x7d\xac\xea\x76\x63\x84\x89\x6c\x79\x79\x22\x9a\x41\x09\xf0\x18\x77\xdb\x65\x3d\x14\xd8\xa1\x04\x80\x23\x6b\x0c\x47\xd1\x70\xd4\x0f\xf7\x98\x93\xe9\x12\x07\xd0\x99\x2b\x32\xf1\xba\xce\xa1\xbe\x1f\x8b\x52\x51\xa2\x03\xc3\x1b\xf7\x35\xc7\xcf\x3b\x99\x86\x3a\x09\x31\xa5\xd7\xad\xf6\x9b\xaa\x7a\x02\x63\xee\xa6\xa3\x52\x93\x3e\x3d\x9e\xc4\x20\xe2\xa7\x44\x0b\xd3\xa3\xdd\x77\x03\x9b\x03\x34\x08\x68\xe2\x1b\xe5\x2d\x04\x66\xf4\x05\x68\x10\x68\xcc\xf4\x2d\x5e\x6a\x40\xb7\xf7\xb9\x2e\xd6\xa5\x3f\x9f\x67\x28\x67\xe7\xd6\xc0\x6d\xf5\x0e\xdb\xee\xf6\x3b\x1b\xd1\xfb\xd9\xe4\xcc\xbf\x9e\xcb\x7a\x51\x1a\xa8\x18\x17\x5b\xeb\x36\xe3\x01\x79\x0c\xa5\x24\x60\x08\xe3\x53\xd5\x13\x88\xd3\xc7\x6e\xac\x06\xda\x1d\x4f\x44\x4f\xa9\x6b\xda\x89\xfe\x59\x1d\x44\x3e\x6a\xf0\xa6\x94\xf2\x88\x6a\x87\x73\x79\xac\x9a\x16\xf9\x48\x7c\xf9\x60\xe3\xdf\x0e\x95\x19\x96\x8b\x14\xc8\x82\xd7\x60\xe0\xf0\x9d\xd1\xe5\xff\x99\x37\xad\x94\x05\x21\xf2\xed\xef\x9b\x23\xc8\x9c\x17\x43\x84\xd1\xfc\x12\xa4\x8c\xc5\x88\x25\x70\x4c\x79\xbf\x12\xe2\xf5\xa7\x49\x04\x1a\x5c\xf1\x52\xa2\x02\xc6\x3b\xd4\x2d\xd4\x0e\x30\xe4\x46\x45\xd4\xf5\xb2\x0f\xc8\x56\xc7\x5f\x38\x0c\x8c\x92\xfd\x56\x56\x47\xb7\xae\x68\x98\x0a\xb0\xbd\x38\xfb\x63\x0d\xfb\xb7\x0f\xb9\x47\x58\xec\xbe\x3c\x1d\x3a\x7f\x69\x92\x79\xa1\x34\xe4\x11\x3a\x7b\xc7\x53\xf3\xba\x7f\x83\x33\x35\xbc\xc9\x63\x87\x32\x09\xa3\x09\xb4\x75\x76\xf3\xa6\xa1\x0e\xb1\x34\x01\xbc\x2e\x3b\x3f\xaa\xf3\x61\xb7\x72\x20\xb9\x3a\xde\x25\x69\x44\x39\xda\xe5\xda\xb6\xeb\xa1\x02\x25\x3f\x0c\x7a\x63\x28\x8d\x6c\xb5\xde\xf9\x3d\xcd\xd5\xc7\x77\xfe\x0e\x23\x1c\xcc\x85\x1b\x8f\x89\x91\xfe\x35\xfd\x07\x5d\x64\xdf\x5f\x36\x4e\xcc\x06\x5d\xc2\x0f\x6f\x4b\x3f\x49\xf3\x52\x9a\x10\x41\x8c\x24\x8c\xe5\x5d\x1c\xe7\x70\x29\x4d\x59\x8a\xc1\xdb\xda\xe8\xda\x63\x53\xf7\x45\x4c\xf7\xfc\x0d\x67\x41\x86\xb9\x15\x43\x4a\xfd\x65\xf4\xfb\x19\x61\xc2\xa2\x03\x77\xc0\x0f\x53\x2a\x8f\x0b\x17\x14\x59\x30\x24\x59\xb1\x52\x39\x13\x9b\x47\x39\x33\x01\xce\x75\x55\xbf\x4c\x80\x96\x94\x0a\x66\x58\x2c\xf6\x4e\x0f\xef\xc2\xea\x10\x11\x27\xd2\x75\xd4\x16\x30\xb5\x4e\x22\x4b\x30\x68\xf6\x54\xc4\xe5\x15\xbc\xf2\x42\x4f\x6e\x45\xf0\x04\x9b\xa8\x9c\xe3\x84\xa1\xa8\xcb\x54\x50\x2a\x04\x4b\x51\x0c\xe3\x6a\x31\x4b\xed\x6c\x87\xc9\x94\x60\x42\xf5\x6e\xb3\xba\x79\x5a\xac\xd6\xfb\xdd\x1f\x8f\x6b\xe7\xf2\x51\x29\x8c\x16\x71\x83\x7d\x9c\x08\x81\xbb\xae\xea\xc5\x10\xbb\xd1\xff\xa2\x54\x71\xe4\xca\xc2\x87\x23\x97\xad\x09\xae\xe6\xbc\x3e\x2a\x21\xf3\xf9\x3b\x23\x2f\x6b\xf8\x25\x1c\x67\xb8\xdb\xfc\xa9\x8a\x0c\x9d\xbe\x21\x15\xc4\xb1\x13\x91\x65\x4a\x95\x36\x14\xe0\x2f\x06\xae\x36\x42\x5b\x51\x0a\x59\x80\x90\x6a\x38\x1e\xfc\x9f\xa4\x09\x90\xb1\xc6\x52\x77\xc6\x7d\xa4\xe0\x4e\x29\x28\x86\x99\xed\x6e\x6f\xe0\x85\xbd\xe0\xc3\xf4\x0b\x68\x2a\xa8\x5d\x70\xfb\xce\xdd\xdf\xcf\xd5\x4d\x26\xdf\x5e\x8b\x2c\xed\xeb\x65\x96\x1c\x75\x12\x9d\xd9\x4d\x9a\x05\x94\x63\x87\xcc\x9f\x27\xe8\x36\x9f\xb2\xb3\x14\x98\xc0\x1d\x5d\x92\x05\x99\xc9\x0b\x20\x30\xe0\x2e\x2f\x7d\x73\x3e\x65\x81\x8c\xa8\xe1\xc9\xb7\xd8\xe8\xd1\x03\x30\xc2\x53\x43\x4d\xd6\x1c\xdd\x19\x94\x44\x91\xfd\x30\x02\x5a\x43\x82\x86\x7b\xca\xe4\xd4\x2e\xce\xc9\x2c\x27\x89\xe1\x7f\xc8\xdb\x57\x03\xd5\x79\xe2\x17\x08\x56\x29\xa3\x29\xc1\x98\xa5\x3c\x1d\x1c\xcf\x6d\x83\x2c\x76\xfd\x2d\xd3\x14\x0c\x13\xf1\xf5\xe6\xdb\xfa\xeb\xf3\xfd\xea\xc9\x29\xc6\x50\x46\x33\x82\xf1\xda\x3f\x9e\x37\x0f\x43\x07\x9b\x51\x88\x11\x24\x63\x76\xc9\x6b\xc4\x55\x0c\x6d\x02\x8b\x38\x44\xd6\x39\xee\x6e\xb4\x3a\xb5\x43\xff\xb1\x9f\xc4\x2c\xa6\x1c\x1d\xd3\xaf\x1f\xa7\xf2\xef\x1c\x46\xbf\x12\xa7\x40\x6c\xe6\x6d\x61\x30\x32\x5f\x86\x67\x72\x86\x59\x58\xa4\x90\x7e\x79\xaa\x4e\xa5\xfa\x0d\x3e\x16\xca\x3f\x59\x0c\x71\x6c\x85\xc2\xef\xb9\xbc\xf0\x86\x62\x10\xd8\x9a\xde\x9c\x84\x21\x61\x1d\x17\x89\x66\x2b\x45\xe7\x04\x85\x94\xc5\x9a\xa5\xb6\x08\x73\xc3\x0f\xdd\x36\x7f\xe1\x07\x93\x30\xd4\xa6\xb8\xf0\xb1\xb4\x74\x9c\xe8\x75\x22\x2d\xe6\x60\x73\x66\x49\x64\x14\xeb\x5f\xa0\x5d\xba\x47\x4a\x74\xa8\x4c\xbb\xc1\x3b\x14\xd5\x11\x6a\x6c\xa5\xb4\x06\xd7\x8e\xc9\x58\x46\x1d\xf5\x8c\x81\x14\xf1\xe2\x89\x7b\xf5\x2b\xca\xb2\x88\x60\xd2\xfd\x7b\xae\x6c\x79\xd4\x6e\x8a\x93\x79\x9e\x25\x51\x6c\x2b\xa3\xc6\x0f\x9a\xf7\x57\x58\xa6\x28\x96\xe1\x7f\xb3\x08\xf5\x2d\x2f\xe0\xee\x12\xbe\x9a\x32\xce\x12\x44\x45\xae\x6c\x73\x60\x5e\xce\xc3\x29\x28\xe3\x61\xe6\x32\xaf\xeb\x46\xd6\xd5\x8f\x8b\xcc\x27\x94\xf1\xc8\x90\xa4\x6c\xdf\x46\xa1\x20\x13\x91\x70\xbd\x3e\xe6\x21\x9e\xcd\x4f\x4c\x9e\x55\x24\x19\x32\x81\x5d\xe5\x6d\x2f\x5a\x45\x99\x10\xa6\x91\x11\xb5\x41\x96\x45\xd5\xc0\xac\x70\x13\x65\x42\xc6\x7a\xe8\x0b\x98\x26\xd9\x59\x5f\x84\x09\x90\xc8\x8c\x66\x4a\x89\xf2\xe4\xa9\xb1\x28\x13\x5a\xe1\x26\xf2\x03\xf2\x47\xa8\x97\x5f\xaf\xdd\x01\xc9\x58\x96\x0c\x3e\x6a\xf3\xc8\x73\xb5\xab\x6e\xf8\xa4\xad\x9c\x32\x99\xc6\x88\x6b\x72\xdb\xd4\xd5\xa9\x78\xbb\x24\x23\xe1\x2d\x9f\xa2\x06\xeb\x84\x55\x78\x50\xab\xfc\x3d\xef\x42\xd9\xbf\x9f\xea\xbc\x51\xb9\x34\x21\xeb\x68\xd7\x64\x8a\x49\x04\x59\x59\x4e\xee\x61\x7a\x99\x32\x15\x87\x56\x2f\xc4\x34\x6c\xd8\x3e\xf2\x09\x90\x9c\x32\xc5\x09\x96\x7b\xb1\x29\xc6\xb3\xed\x9d\xdd\xe7\x6c\x4d\x96\x32\xe8\x42\x1a\x9f\x46\x1d\x36\x06\x4e\xc9\x04\x69\xe0\x4e\x61\x90\xf6\x5d\x13\xf3\xa8\xd0\xf1\x97\xd5\x21\x41\xef\x57\x9e\x5c\x53\x2d\x0d\x83\xc4\x7c\xc1\x77\xa8\x73\xfd\x61\x29\x2d\xdc\xe9\xf6\xd5\xf6\x9a\x2d\xdd\xff\x4e\x0a\x04\x97\x20\xb6\x7d\xbe\xd0\xfd\x92\x4a\x79\x5f\x9b\xe9\xc2\xf4\xe2\xe3\x69\xd8\x7d\x31\xba\xd9\x90\x48\x23\x57\x64\x89\x41\x46\xa8\x0c\x1a\xd2\x40\x63\x56\x1e\xb5\xd9\x0e\xf9\xc9\xc0\x3a\x6e\x3f\xd9\x44\x27\x97\xa7\x61\xa2\x89\x4b\xe7\xf2\x1a\xd5\xc3\xfa\xde\x37\x1a\xd2\x88\x60\x1b\xfc\xce\x03\x43\xd8\xcd\xf8\x8b\x87\x54\x07\xa8\x0b\x61\x74\x64\x86\x27\x33\x11\xbb\xd5\x3e\xdb\x83\x73\x3e\x6d\x43\xa6\x23\x42\xfb\xaf\x59\x73\xf9\x36\x9e\xa5\x61\x08\x01\x33\xd1\x97\xce\xcb\x7c\x8e\xec\x80\x86\xa1\x66\xb8\x4f\x6c\xdd\xde\xea\xee\x28\x12\x86\x27\xc8\x2c\x0a\x9c\xa3\xd7\x55\xdd\xbe\x82\x3e\xb5\xa7\xda\xdf\x78\xcc\xcc\x8d\xdb\x14\x80\x65\x1a\xe8\x2d\x79\x18\xab\x94\x19\xc2\xd2\xc2\x89\xcd\x2f\x79\x59\x56\x16\xb6\xeb\xc3\xdb\xcf\x3e\x82\xeb\x9b\xa2\xae\x86\x39\x57\x6b\xa2\x61\x42\x34\x52\x3b\x74\xfb\xc9\xbb\x91\x03\x9d\x33\x97\x61\x92\x4a\x8c\x4a\x97\xbb\x4f\x68\x77\x69\x98\x08\xc9\x6c\x6f\x4e\x75\x6a\xfd\xfc\x4f\x59\xa4\x88\x2d\x33\xd5\xd5\x85\xa4\x6a\x98\x2a\x8e\x5f\x67\xfd\xd3\xd5\xc0\xbb\xbf\x41\x6a\xc9\xf0\x27\x5f\x2a\x55\x1a\x7d\xa3\xdf\xaf\xdd\x6e\x17\x66\x94\x46\xd6\xa8\x5a\x79\xfb\xff\x80\x7a\x6e\x26\x04\xe7\x6e\x70\xc4\xe5\x30\x8b\xb0\xac\xca\x97\x73\xe3\x1b\x66\x89\xc0\x3e\x9b\xf5\xee\x1f\x27\xde\x4b\x8e\xd1\x90\x53\xa2\x2d\x55\xda\x55\x5e\x14\x48\x90\xe3\x37\x82\x50\x48\x3d\xc9\x89\xf5\x0a\x7d\xe3\xad\x24\x14\xa0\x8d\x55\x2a\x90\x4e\x7c\x7a\x58\x66\xa6\x85\xfd\xea\xf9\x8f\xf5\xd3\x7e\xb9\x78\xdc\x7f\xdd\xdc\x7c\xdd\xfb\x0e\x54\x1a\x2a\xca\xc0\x28\x66\x22\xd1\xe2\x50\x9e\x64\xf2\x86\x55\x16\xdb\xae\xdf\xf7\xea\xcd\xb9\xf4\xe3\xc9\xad\x04\xa0\xeb\x6d\xf2\x32\xe7\xcc\x89\x34\x04\x6a\x04\xb2\x3c\xe7\x93\xe2\xd5\x7e\x48\xd4\x35\xf9\x51\xe0\xf1\x88\x23\xca\xac\x8c\x9a\x37\x79\xf9\xf2\xd8\x67\x5a\x42\xe0\x29\xe6\xa2\x1e\x9f\x1e\x1e\xae\x8d\x40\xd8\x76\x73\xe3\x8f\xaa\xd0\x28\x60\x35\x88\x93\x80\x4f\xe4\xd5\xba\xc1\x29\xb7\x21\xb1\x91\xbe\x74\x57\xd1\xc4\xd0\x96\x1e\x91\x40\xb7\xf8\x18\xf0\x65\x75\xb7\xe2\x26\x6c\x14\x84\x09\xb7\xfc\x82\xeb\xb2\x9d\xf4\x42\xd1\x28\x88\x12\x7c\x05\xfb\x9e\x3f\x02\x25\x4c\x67\x8d\x6c\x14\xe8\x90\x79\xeb\x9f\x83\xb2\x0c\x07\xb7\xbc\x69\x87\x09\xb3\xa8\x73\x0a\xa1\x87\x4d\x9b\xc2\xba\x95\x6c\x19\x5f\x91\x26\x89\x66\x2e\xa2\x30\x9b\x35\x16\xb1\x7b\x74\x03\x8d\x68\x9a\x60\xc3\x2b\x96\xa4\x96\x03\x26\x14\x7b\x9c\xc5\x09\x2a\x2e\x1e\x90\x67\x85\x0e\x3c\xe5\x88\xc9\x20\x36\xda\x4c\x79\x8d\xb3\x37\x2f\x5f\x86\x90\x2a\x1a\x85\x81\x49\xe1\x3e\xf2\xe3\x47\x3d\x21\x1a\x3e\xb7\xbb\x51\x08\x31\x16\x69\x0e\x58\x8d\x3c\x38\x96\xa2\xc6\xa3\x1a\xdc\x75\xa3\x80\x60\x9e\x83\x17\xed\x1e\x9b\x55\x0b\xc4\x62\x8b\xf3\xda\xbc\x3b\x21\x94\x46\x16\xc8\x49\xdd\x39\x91\x02\x77\x3c\x35\xa4\xf7\xa6\x98\x3c\x94\x1b\xa3\x51\xa4\x62\xb4\x69\x2d\x72\x36\x3a\xe2\x17\xb8\xd0\xd1\x4b\xa3\x38\xe4\xd8\x75\xeb\x78\xe2\x1f\x6d\x89\xa2\x2a\x9b\xab\xf3\xfe\x63\x7f\x92\xc6\x3e\xaf\x1a\x9d\x49\x43\xd7\x73\x03\x67\x5a\xa6\x76\x74\x92\x6a\xcc\x3c\xf0\xfa\xf0\x81\x73\xc3\xb4\x86\x35\xdf\x27\x90\x2f\x1a\xa5\xca\xdc\x0c\x3a\x78\x47\xe4\x57\x18\x0f\xc8\x42\x81\x3d\xbc\x2f\x35\x7c\x74\x71\xef\x1d\x2f\x07\x9e\x92\x1b\x14\x47\x26\xd0\x46\xd2\x8b\xbb\x19\x1d\xcd\xc9\x45\x63\x10\xe0\xdb\x5c\xcc\x47\xbc\xae\xab\x43\xe7\xbe\x3e\xd6\xd5\x0b\x48\xbf\x22\x27\x27\x26\x31\x86\xa3\xbe\x01\x7d\x21\x25\xba\x15\x67\x03\x53\x06\x91\xdd\x43\xe7\x39\x74\x27\xb7\xc4\x99\xc1\xbe\xe9\xbc\x54\x2e\x66\xdd\x94\x77\xfc\xe7\xfa\xe7\x11\x73\xfc\xbb\x69\xff\x1c\x8d\x44\x1a\x19\x0c\x67\x55\xa8\x8d\x02\xfe\x1d\xf2\x8d\xac\xdc\xbc\x10\x99\xc9\xcc\x18\xa0\x98\x4d\x5e\xef\xaa\x29\xa5\x9b\x1b\x2d\xd3\xc0\x83\xd5\x71\xee\x99\x0d\xfd\xe4\x7b\x2c\x69\x24\x20\x64\x46\x43\xba\xcd\x35\xb2\x2e\x6b\x27\x41\xfa\xa9\xc7\x1a\x49\xa2\x31\xb7\x67\x13\x75\x1e\xf7\x73\x5b\x71\xd5\xaf\x1a\x95\x66\x49\xcf\x53\xdb\x19\x01\x97\x20\x8a\x20\x4e\xb3\x74\x60\x7c\xaf\xab\x1a\xf2\x97\xf2\x2f\x30\xcf\xd2\x08\x84\x51\x35\x81\x9f\x03\x36\x1f\x77\x61\x4d\x15\xf6\x91\x3c\x81\xc1\x2e\x75\x8b\x7a\x50\xa3\x9b\xbf\xa2\x8e\x22\x27\x69\x8f\x14\x31\xdb\xfc\x3f\x7e\xa5\xea\x08\xf0\x4e\x55\xb5\x50\x2a\x37\x52\x79\xb6\x21\xf5\x6c\x06\x8c\x2f\x2a\x53\x23\x45\xa3\x0e\x79\xb9\x50\x6a\x99\x9f\x65\x6c\xfe\x36\x4c\x47\x45\x5a\x49\x4c\xa9\x81\xca\x5b\x23\x9e\x75\x21\x5f\x3a\xf2\x6d\x22\xad\x43\x84\x9e\x7c\x3d\x1d\x78\xb9\x6d\x79\xa9\x78\x6d\xfa\x85\xe8\x67\xbd\x26\xe6\xec\x38\x88\x14\x3a\x7d\x48\x4b\x7d\x7b\x92\x6f\x1f\xc6\x16\x9c\x45\x3a\xb3\x3e\x7e\xea\xae\x92\x25\xd1\x44\x4b\x1d\x41\xc8\x6a\xb8\xba\x2f\xb2\xac\x9d\x5d\x75\xde\x29\x8c\x03\x19\x60\x9a\xfc\xf1\xe9\xe1\x6e\xbd\xfb\xba\x7e\xde\xee\xb7\x5f\x37\x8f\xfb\xdb\xcd\xdd\xc6\x21\x7c\xe2\x40\xa5\x48\xe8\x7e\xe0\x6f\x60\x27\xfe\x13\x70\x47\xab\x4f\x63\x92\xc4\xb8\x2e\x5b\x68\xda\x4d\x09\x7f\x1a\xef\xa9\x8b\xa6\xdd\x08\x1a\x72\xb3\xdf\xf1\xbc\x81\xbf\x73\xf9\x76\xac\xfa\x63\xd2\xf0\x48\xd9\x1d\x60\xf9\x9a\x1f\xaf\xf8\x8b\x3b\xca\xa8\xa9\xb2\x39\xb6\x0b\x53\x90\x6e\xfc\xe1\x6e\x7f\x1a\x71\x54\x75\x3e\x91\x2f\xb1\xc4\x2c\x0e\x88\x63\x90\x31\x3c\x95\x93\x6a\x89\x1b\x97\xa6\x58\x50\xef\x1e\x01\xab\xe9\xfe\xf6\x98\x1c\xca\xf5\x5c\x9d\x3e\x46\x11\x88\x1b\x04\x09\x12\x9c\xac\x55\xde\xb6\xa0\x46\x8e\xc4\x78\x61\xc4\x61\x68\xca\x21\x7e\x99\x9e\x0a\xb3\xaf\xcf\xc1\xb6\x68\x1c\x6a\x92\x76\x6f\x6e\xf9\xf4\xf0\x7d\x85\x48\x9d\xf5\xee\xeb\x7e\x73\xbf\xff\xbe\xde\xec\x17\xcb\xe5\xfa\x71\xb7\x5e\xed\xef\x1c\xa0\x92\xc6\x11\x51\x18\x37\x1f\xad\x01\x59\xd4\xc0\x7d\xb5\x0c\x6f\x25\x74\x73\x24\x1c\x4d\x9b\x4f\x40\x2f\x71\x94\x18\xaa\xd5\x55\x65\xd5\x03\x99\xfb\xb9\x98\xc5\xe8\x9f\x6c\xdb\xe3\x88\xf8\x9e\xc6\xb1\x08\x34\xb5\x4d\xac\xdb\x96\x4b\x5f\x45\x8e\x63\xdb\xb2\x61\x79\x09\x9e\x36\x73\x71\x48\x1c\xeb\x10\x67\x5d\x61\x49\x42\xa1\x47\x53\xd2\x38\x61\x01\x2a\x31\x1f\xf2\xd2\x36\x64\xf8\x23\x51\x26\x45\x4f\x26\xe6\x7f\xb4\x73\xee\xb5\xeb\x8c\x6e\xbc\x0b\x70\xc1\x95\x8d\x53\xc1\x3c\x06\xe0\x2a\x6f\x7f\xaf\xea\x6b\x9e\x17\x58\xc0\x79\x78\xb8\x72\x17\xcd\x68\xe0\xf4\x49\x47\x72\x18\xd3\x60\x7e\xd6\x5b\x8c\x33\x60\x44\xff\xff\xd1\xfc\x64\x7f\x8f\x13\x61\xa8\x4b\x0b\xe0\x75\x17\xa0\x8f\x02\xa6\xc9\x58\x19\x23\x88\xe2\xaa\xba\xaa\x76\xd5\x6f\xfd\x67\x15\x01\xe0\x06\xa7\xc4\xb7\x4b\xc6\x3f\x16\x54\xd9\xc8\x02\x8e\x83\x50\x29\x16\xa9\xa1\x76\x6e\x3d\xeb\xfe\xfa\xa7\x05\x20\xbb\x11\x4a\x61\x8d\xd5\x54\xe2\x67\x44\x1f\x69\x2c\x93\x94\x04\x8e\x11\xa4\xc2\xb2\x92\x63\xb6\xb0\x23\x54\x98\x85\x36\x71\x6e\x92\x83\x93\x2b\xa8\x58\x81\x15\x70\xbb\x84\x35\x89\x55\x62\xe4\xd3\xf2\xde\xdd\xb6\x49\x3e\x37\xc0\x82\x0f\xd1\x31\x1f\xb0\x43\xfb\xbb\x00\x42\x2c\x45\x98\xa9\xfb\x8f\xf6\x08\x48\x38\xf6\xbd\xed\xf3\x32\x6f\x1f\x8e\x79\x39\xe4\x52\x1a\x8f\xd4\xd2\x40\x0d\x5b\x5e\xa3\x71\xb3\xb8\xac\x0b\x7b\x88\xe3\xd4\xb4\x67\xeb\x38\x44\x38\xad\x9b\xef\xfb\x4a\xef\xad\xe6\x6e\xfb\xb1\x57\x53\xfe\x53\x9a\x04\x59\x80\x4e\xec\x55\x2b\x79\xd9\x1d\xf8\xe2\x0e\x70\x13\x9c\xbe\x43\xe9\x98\xcd\x68\x12\x48\xa5\x99\x2b\xf7\xd4\x6f\xd0\xa2\x77\x3a\xda\x62\x12\x1a\x04\xc8\x83\xa3\x1d\x7b\xfb\x75\x5e\x14\x57\xd5\x94\x24\x8b\x26\x34\xe3\x41\xdf\x9c\xb1\x82\x02\x5e\x78\x5b\xd5\xdd\x27\xf2\x69\xe8\xd9\xf9\x96\xb0\x20\xc9\xac\x52\x71\x4f\xc5\x3f\x7a\x8d\x09\x0b\x24\xb5\x09\xae\x5d\xb5\xb8\xfe\xfe\x65\x72\x85\x84\xa5\x4e\xbb\x79\x9a\x7e\x4a\x42\x42\x30\xb5\xbe\xe6\x75\xfb\x7a\x1c\x6a\x9f\x76\xc7\x04\x52\x86\x22\x33\xe5\x66\xb7\x71\x64\x08\x34\x09\x43\x4e\x2d\x58\xea\xb1\xae\xd4\xe9\x1c\x09\x39\x6b\x6b\x93\x08\x0c\xb6\xf2\x05\xda\x15\x52\x07\x0d\x6f\x25\x4e\x0c\x1d\xc4\xb1\x86\xd5\xcd\x3f\x87\xf6\x36\x49\x82\x08\xad\xc9\xa9\x31\xd9\x65\xff\x77\x61\x8a\x93\xcb\xc5\xd3\xef\x03\x5d\x5e\x9a\x24\x2a\x32\xdb\x76\x1f\x5a\x7a\x66\x30\x3f\x46\xf3\x34\x9d\x94\xd1\x1f\xfc\x4f\xa6\xa9\xc0\x24\xc3\xb2\x2a\x75\x91\xcb\x16\x01\x68\xb8\xbd\x1a\x30\xea\xc4\x81\x4e\x52\x69\x38\x7d\x05\x97\x6f\xdf\xf3\x52\x55\x3f\x16\xea\xff\x4e\xc6\xa3\x7c\xe2\x6d\x5e\xf9\x0b\x6b\x85\x0a\xe1\x22\x57\x0f\xe5\xc2\x34\xc2\xec\xaa\xab\xd3\x04\xb6\x92\x64\x71\xac\x2c\x17\x56\xde\xbc\x36\x50\x68\xe5\x1b\x98\x68\x92\xa5\x1a\x2b\xd3\x37\xd0\xfe\xe3\x04\xa7\x91\x80\x05\x4d\x32\x19\x9a\x1e\x6b\xa5\x1e\xc1\x50\x68\xcd\xcf\x2e\x9e\x01\x92\xf6\x98\x4c\xc2\x08\x63\x9a\x70\x10\x08\xc7\x36\x5c\x04\xf8\xa5\xc6\x27\x8b\x4c\x60\xfa\xfc\xd0\x39\xc1\x72\x46\x08\x7a\x34\x4b\x25\x49\xb0\x1b\x7e\xbd\x7c\xb8\x7f\xb8\xfb\x63\x7f\xf5\xf0\xb0\x75\x6e\x58\x22\x19\x37\x5e\x69\xf9\x32\xa7\x28\x3d\xbe\x50\x9c\x20\x78\x08\x95\x25\xf7\x35\xbc\x03\x2f\xf6\x1c\x7d\xa0\xc3\x21\x6f\xe7\x13\xe2\xee\xdc\x24\xc3\x0a\x5e\x5e\x36\x50\xfb\x76\x8e\xf9\xae\x32\x77\x4a\xc6\x0d\xfe\x8c\x1f\x60\xd4\xa7\x4e\x13\x95\x52\x74\xf6\x0b\xcc\xce\x38\x6a\x5e\x9a\x40\x60\xa8\x73\xff\x71\x7b\xfd\x87\xff\x1b\x64\x48\x5e\x7d\xe4\x1f\x6d\xe5\x46\xa6\x81\x60\xb8\xc4\x6c\x1f\x1a\xb2\xc6\xb0\xc1\xa2\x48\x03\x69\x32\x87\x3d\x77\xa7\xc9\xbb\x78\xf1\x6e\x9a\x76\x3f\xc6\x2d\xd7\xa5\x6f\x13\xa5\x29\xb1\xad\x01\xa2\xfb\x3a\xce\x46\xd2\xcb\xe9\x8d\x94\x05\x86\x65\x79\xf9\xca\xeb\x17\x04\xbb\xb8\x03\x54\x62\x15\x66\xc9\x8f\x47\x53\x25\x51\xdd\x84\x18\x06\x7e\x6e\xa4\xcc\x1c\x3d\xd9\x2d\xef\x9c\x0b\x35\x9a\x52\x29\xd3\x99\x63\xe9\xc1\x96\xed\x59\xc1\x9d\x6e\x98\x21\x93\x7b\x81\xd6\x4e\x5f\xdb\x90\x6b\xaf\x36\x1e\x1d\x8a\xd8\x68\xb3\xf2\x9f\x46\xb7\x62\xfc\x9b\x51\x10\x0a\xb3\xdb\x6d\x7f\xf0\x63\x4f\x7f\x43\xd3\x28\x8a\x94\x85\x1d\xec\x16\x0f\xd7\xfc\x90\x17\x53\x45\x16\x37\x32\x31\x4a\xb4\xb7\xd5\x4b\xe7\x57\x3c\x79\xda\xd1\xe9\x38\x4d\x10\x73\xd7\x60\x34\x73\x51\xf5\xf4\x17\x75\x90\xbf\x8d\x76\x41\x7b\xe9\x38\x08\x90\xaa\xc2\xf1\x26\x9b\x0a\xd3\x85\x5d\x23\x8d\x43\x82\x9c\xfb\x7b\x14\xf3\x28\xce\x0a\xe5\xc3\x8d\x34\x8d\x6d\xff\xd2\xd7\xea\xd4\x80\x97\xf1\xa1\x69\x4a\x28\x76\x1c\xc2\xcf\xbc\xe9\x02\xd8\x8d\xf7\x38\xd3\x94\x32\xdc\x4a\xef\x60\xdb\xcf\xb8\x54\xc4\xc1\x80\x3e\x76\x0a\x64\x48\x53\x2d\x9c\x4f\xb8\xc4\xea\xf5\xf3\x20\x53\xd3\x33\x5b\xf6\x4f\x91\x05\x19\x0a\x87\x37\x1f\x65\xfb\x0a\x4d\x17\x66\x9b\x10\xf8\x5f\x91\x9b\xb4\x59\x18\x64\xd6\x25\xf6\xa0\xea\x5d\xb5\xe8\x82\xe8\x66\x9a\x27\x4a\xb3\x38\xc1\x14\xa6\xce\x8f\x8d\xc9\x25\x1a\x64\x93\x2d\x96\xcd\x67\x2f\xd2\x4c\x11\xdc\x64\xac\xb3\xe3\xe6\xbf\x7b\x6a\x4e\x8c\x2e\xec\xcd\xd5\x70\xcb\x4a\x05\xd1\xd8\x8c\x9c\x37\xb7\xae\x89\x8f\xd1\x51\xc8\x9f\x0a\x99\x65\x46\x74\xeb\xb8\x3d\xf0\xba\x1d\x9d\x2f\x63\xc3\x86\xd3\x40\xbb\x58\xde\x3e\x55\x05\x44\x59\x96\xd1\x2c\x24\x2c\x48\x92\x8c\xb1\x90\xb1\x74\xf2\x82\x65\x12\x4b\x39\xe2\x52\xbd\x38\xf5\xa6\x58\xc2\x59\xdb\x97\xaa\x80\x0c\x54\x56\x97\xd5\xe1\x58\x95\x50\x5e\x68\x7b\x48\x55\x94\xa0\x2f\x21\x5a\xe9\x9e\x02\xe2\x54\xd9\xe6\xf2\x87\x52\xc2\x9d\xd7\x1c\x98\x18\x0e\x90\x3a\x10\xb6\xe1\x09\xb9\x15\x40\x7d\xe5\xe5\x08\x19\x90\x76\x6b\xab\xbb\xfc\x42\xa9\x55\x5d\x95\xf0\x19\x89\xb0\x39\x25\xeb\x2c\x5a\xe7\x06\x0c\x32\x15\x9b\x83\xdb\x43\xb3\x40\x87\x68\x21\x8b\xea\xa5\x1a\x26\x95\x33\x92\x45\x81\xc5\x12\x98\xf0\xed\x36\x17\x35\xf7\xd0\xc0\x8c\x46\x31\x52\xb3\x63\xea\xcf\x77\xf8\xd2\x8c\xea\x04\x9f\xd6\xfa\x51\xd6\x41\xb7\x07\x19\x4b\x84\xf2\x01\x02\x2a\xa8\x1f\x79\xe9\xaf\xc9\xe2\xd4\x76\xec\xe4\x2f\x2f\x50\x5f\xe7\xa5\xcd\xb0\xfb\x01\x52\xa0\x56\xc6\xed\x7a\x87\x5d\x86\xfb\xe1\x74\xc9\x98\x22\x48\xab\xde\x70\x0d\xdb\x93\x98\xff\x42\x59\x18\x46\x88\xca\x5f\x97\xb2\xe0\xef\xd0\xac\xd6\xbf\x3f\xd6\xd5\xcf\xb3\x9c\xcb\x2f\x2d\xd5\x74\x1a\x8d\x76\xd9\x2c\x8c\x42\xea\x83\x3f\xdc\xd8\x76\xb7\x7f\x1c\xa1\x5e\xef\xbe\x7e\x99\xdc\x50\x2a\xb1\xb7\xd1\x94\x16\x57\x06\xdf\x31\xf0\x41\xb3\x10\x14\x6e\x6e\xef\x55\xeb\x81\x05\x0f\xfa\xc2\xe3\x45\x81\xc6\x09\x88\xe2\xed\x9f\x66\xa2\x2e\x4e\xf9\x2c\x4a\x05\xc6\x77\xfb\x61\x1b\x2c\x76\xc0\x3e\xe8\x6d\x5b\xd5\xfc\x65\x92\xc6\xc8\x62\x1a\xa3\x99\xb4\x79\x4b\x14\x57\xd8\x02\xa8\xc5\xa0\xc9\x79\xda\x82\xf9\xdf\xdd\x53\x2c\x18\xb5\xab\xc8\xef\x29\x7d\xa1\x23\x8b\x35\x28\x03\x7f\x6e\x7f\x25\x29\x4a\xb3\x44\x99\x86\xdd\xea\x08\xe5\x10\x62\x3b\xa9\x9a\x67\x69\x42\xc3\x68\x0c\x33\x37\x10\xcf\xd9\x78\x3f\x4b\x05\xc7\x0d\x61\x51\xb6\xf9\x9f\x27\x40\x27\x6e\x76\x6b\xca\x32\x41\x22\xbb\xeb\x5a\x99\x48\x0b\x23\x1d\xe1\xe9\x32\xce\xb9\x42\x4e\x24\xde\xd6\xf0\x3b\xbf\xd8\xdd\xf8\xcb\xf4\xe0\xf9\xeb\x14\x89\x46\x42\xaa\xdd\x5b\x51\x3a\xa9\xe7\xe1\x5a\x92\x2c\xc2\x02\xf8\x43\xfd\x52\x95\xe3\x23\x32\x96\xe9\x00\x65\xf2\xcd\x0a\x36\xff\x3a\xc1\x9f\x49\x95\x86\x3d\x6a\x63\x5d\x2a\xbb\x32\x26\x0b\x42\x85\x29\xa6\x46\x55\x7d\x3c\x8d\x7e\x5a\x45\x49\xda\xe7\xea\x16\x57\xf6\xd7\x66\x71\x8f\x99\x12\xa6\x6e\xeb\x41\xeb\xbb\x6a\x3b\xe8\xa3\x9d\x8c\xd6\x99\xa1\xad\xa8\x4a\x84\x70\xf6\xcd\x49\xe3\x55\xad\x21\xc3\x98\xea\xf9\x6a\x84\x8a\xcb\xb4\xa6\xa9\x6d\x66\x44\x5e\xd0\x6d\xcb\x47\x1e\x18\x0f\x28\x45\x73\xda\x1c\x5e\xc6\x4f\xcb\x03\x15\x68\x1b\x9a\xee\x61\x14\x98\x72\x12\x06\x88\x4a\xbc\xcb\xcb\x8d\x4f\xcd\xfb\x83\x11\x45\xdc\xd2\x36\x7f\x29\x79\xf1\xf8\x51\x4c\x93\x9e\x9c\x24\x31\x75\x3a\x07\x57\x75\xf5\xe6\xed\x28\xa7\x81\x41\x0a\x6d\x0e\x47\xa8\xab\xcd\x6e\x90\xc4\xe1\x94\x19\xa2\x8d\x17\xcf\x64\x33\xd2\xbc\xa6\xbc\xb3\xfc\xc8\x4d\x6a\x80\x79\x47\xff\xf1\xc7\xcf\xc5\x54\x80\x70\xd2\x2b\xf6\xeb\x9c\x3a\x0f\x53\x06\xb6\xde\xbf\xdc\x4e\x1e\x23\x22\x12\x41\xf1\x7d\x85\xb6\x5f\x08\xb3\xcb\x8b\x47\xd4\xac\xef\x9e\x59\x69\x8d\xec\xd9\x23\x45\x8c\xe9\x39\x4c\xe2\xe2\x5d\xff\x84\x5a\xe6\xcd\x64\x4e\xf2\x98\x1b\x0a\xad\xce\x91\x9c\x2a\x36\x5e\xd8\x18\xdc\x99\x92\xd3\xc4\x37\x0b\x3d\x42\xbd\xfb\x39\xb9\x76\x12\xc6\x26\xd9\x89\xb8\x24\x63\x10\xda\xea\xdc\x65\x1e\x9f\x95\x32\x16\x6b\xc7\x24\x8d\xbb\xb0\x25\x31\x99\x0c\x0b\x39\xa2\x4c\xff\x53\x95\xd0\x79\xff\xf5\x61\x0c\x1a\xe4\x29\x50\x47\xb0\x69\xab\x80\x55\x8d\x97\xa3\x17\xde\x54\x16\x25\xc2\x8a\x77\xce\xe8\x58\xcc\x2f\x7d\x9e\xc5\x09\x72\xd6\xb6\x96\xd4\xc3\x17\xa0\x79\xc6\x2d\xf8\x87\x23\x7d\x94\xef\xcd\xe1\x99\x22\xd8\x2a\xdb\x79\x72\xb6\x03\x6e\x7d\x3f\x9d\x1c\x3c\x48\x10\x76\x0b\x65\x0b\xf5\x6d\xd5\xb6\xe0\x2f\xcc\x39\xc1\xe6\x92\x55\xfe\x92\x4f\x6b\xea\x5c\xd0\x18\xb3\x77\x47\x97\xd9\x6b\x61\x5c\x6f\xe6\x32\xe0\xc4\x11\xb0\x35\x50\x23\xf7\xc1\x6c\x0e\x9f\xcb\x88\x19\x45\x16\xcf\xe3\x65\x80\x71\xcb\xd3\xc4\xc5\xe3\x92\x1b\x51\x4d\x71\xfa\xb8\xcd\x25\x94\xcd\xb9\x73\x3a\x5a\x16\x8a\xc4\x28\x3d\xfc\x3d\x2f\xd7\x43\x7b\xc3\x15\x8b\x91\xd7\x72\xfb\xfc\xcd\xfd\x09\x12\x0a\x6e\x53\xb3\x69\x80\x03\x4c\x9d\x4c\x0e\x69\xcc\x6d\x8d\xf3\xb9\x6c\x9b\x3f\x27\x08\x67\xae\x03\x30\x32\x0b\x4d\x17\xbf\x19\x5a\x86\x59\xfb\xca\x75\xa4\xb1\x67\x5e\x56\x65\xdb\x63\x4f\x3e\x2b\x33\x88\x80\xa5\xd8\xe3\xd1\x85\xbe\x5a\xa3\xa1\x35\xf4\x04\xcb\x99\xca\xcd\xfc\x44\x12\x41\x1a\x27\x0a\x3d\xe0\x43\x5e\x4e\x83\x4f\x11\xe8\x4c\xc7\x5e\x1f\xec\x3b\xe4\xd7\x55\x6d\xd8\xae\x8d\x1e\xdb\x6d\xe7\x5d\x7d\xae\x48\x41\x05\xb1\x38\x5d\x04\xf4\x76\xcb\xe1\x4e\x3a\xcb\x29\x88\x32\x20\xf9\xbc\xd4\x05\x9f\xbc\x5c\x41\x89\x4a\xac\xa5\xca\xcb\xad\x69\xe1\xb9\xf4\x5b\x63\x94\xa0\xbd\x40\x18\x28\x92\xcd\xcb\xdd\xb8\x11\xd4\xd5\xc8\xeb\xc6\x55\xa9\xd7\x3e\x10\x13\x61\x12\x61\xc2\xb6\xe8\x9e\xf3\xa1\x9c\xd1\x00\xa2\x22\x8a\x8c\xfe\x74\x55\x73\xd9\xc5\x47\x7b\x04\xbd\xcf\x3b\x4c\xd3\xce\x78\x11\x07\x1a\x99\x88\x9d\xd6\xdd\x9d\xe9\x10\xbf\x28\xeb\x3f\x3d\x5d\x0a\xe8\x7b\x0c\x76\x3f\x57\xbc\xe5\x48\x38\x61\x73\x77\xa3\xdd\x56\xc4\x3a\x00\x69\x95\x5d\x0d\xdb\x7e\x65\x73\x21\x7d\x5e\x7f\x24\xf4\x4a\x45\x92\x25\x88\x5c\x16\xe2\xc3\xad\x64\x91\x70\x82\x61\xc5\xd5\x72\xed\xff\x04\x14\xc1\x81\x7f\x9e\xe0\x04\x77\x95\xf2\x63\xd3\x34\x73\xd0\xeb\xeb\x1a\xe0\x37\x10\xbc\xcf\x29\x8a\x2c\x34\x39\x10\x24\x37\xf8\x81\xd9\x7a\x7b\x84\xab\x80\x39\x35\x56\xc3\x05\x4b\x13\x77\x4c\x44\x2a\xb4\x00\xf1\xfd\xc9\x52\xb0\x4f\xe6\xad\x88\x19\x52\xaf\x0f\x68\xfa\x67\xd1\x17\x42\x80\xe1\x46\x44\x5e\x85\xe6\x73\x4a\x28\x7b\x8a\x0c\x80\xb9\xf2\xad\x41\x9c\x57\x6f\x3d\x39\x0d\x15\x92\xa4\x4c\x7b\x81\xfd\xc7\x82\x4b\xe8\x33\x6b\x42\x12\xe9\x0a\xfd\xf7\xa7\x6e\x9f\x79\xd0\x1a\xea\xca\x23\x62\x85\xa4\x80\x66\xba\x67\xf8\xbc\xcc\xcf\x45\x85\x14\x2c\xb0\x8c\x18\x9a\x97\x62\xda\xb5\x2d\xa4\xe4\x68\x55\x8e\xc5\x47\xfd\x54\xaa\x66\x5e\xcd\x95\x0a\x09\x80\xdf\x54\x9c\xf2\x42\xed\x31\xec\xe8\x71\x99\xa2\x8b\xd9\x91\x55\x9f\xd7\xa6\x75\x0d\x0b\x48\xd8\x24\xe3\xd2\x8e\x02\x48\x12\x5b\xf1\x4f\x37\x60\x06\x27\xed\x06\x53\x86\x3e\xc8\xd5\x62\xbb\x59\xee\x9f\x16\x3b\x3f\x93\x20\xa4\xb8\xe6\x87\x3c\x36\x93\x67\xd2\x44\x21\xd1\xd6\xea\xf9\x69\xb1\xdb\x3c\xdc\xef\xef\x1f\xee\x9f\xb7\xeb\xdd\x7a\x71\xe7\xae\xa2\x63\xd3\xa7\x75\xf0\xc4\x56\xfd\x11\x93\x33\x75\xf0\xf2\x73\x21\xc5\x6e\x8c\x46\x04\x87\x75\x4c\x6c\x23\xe6\xf8\xc5\x6b\x0e\x98\xa2\x39\x1c\x6c\x6a\x79\xca\xd5\x4a\x65\xc0\x02\x44\x90\x1a\xeb\xf3\x54\x55\x0e\x7b\xd9\x4e\x50\x73\x92\x24\x61\x94\x0d\x34\x05\x9d\x3a\xf9\xf5\xa9\x28\xac\xe4\xf4\x92\x97\x1e\x41\x20\x69\x44\x70\x0a\xde\x56\x28\x7b\x34\x86\x4d\xbb\x31\x60\x84\xb4\xde\xf2\xa2\x98\x72\x4b\xd8\x21\x8c\x47\x56\x9c\xb3\xbd\xe6\x45\x21\xb8\x7c\xb3\x5d\xb7\x23\x92\x0d\xc9\x04\x8d\xe2\xde\x1b\xc7\x49\x3f\x79\x02\x26\x14\x62\xaa\xf0\x9d\x0e\x9c\xeb\x4f\x7d\x2e\x19\x5a\x91\xcc\x2e\x20\x94\xd5\x80\xdf\x9c\xca\x30\x8c\x90\x8a\x53\x55\x80\x60\xa3\xaf\xfc\x1d\x66\xdd\x05\x19\xa6\x19\xae\x75\x28\x65\xa5\xc0\x90\x77\x54\x17\xe8\x54\x64\xc8\x03\xf4\xf2\x1a\x27\x63\xeb\x95\x7b\xa8\x0c\x25\x73\xb2\xee\xae\xb0\x63\x32\xa2\xf3\x6e\xb1\x0c\x15\x8d\x53\xa7\x80\xfc\x04\x7a\xf2\x76\x23\x6a\x5a\x42\x97\x55\x0d\x77\xa0\xf2\x5e\xb8\x9b\xca\x58\x1b\x19\x09\xe7\x83\x63\x13\x65\x7b\x52\xf9\x99\xb0\xf8\xe4\x37\x93\x04\x62\x43\x73\x75\x0b\xba\x9d\x0b\x14\x64\x2a\x12\xa7\x43\x86\x73\xe7\xfa\xfc\x65\xcc\x5b\x36\x99\x31\xc3\x60\x27\x8a\xbc\x74\xe9\x36\x99\x65\x2a\x74\xd4\x77\xd8\xe4\xfe\xcd\x68\x69\x0f\x2b\xb0\x7d\xe2\x40\x66\x2a\x66\x46\x42\xb9\x3c\xf1\x62\x98\x02\x93\x92\x18\x42\x0a\x95\x37\xfc\xa5\x86\xe9\x77\x54\xca\x70\xb2\x49\xff\xd3\x4a\xa5\x2e\xe7\x63\x13\x1f\x0f\xe2\xff\x3e\xf7\x67\x24\x04\x1a\x33\xab\x87\xbc\x1c\x03\x58\xdc\xf1\x90\x62\x77\x0b\x96\xf6\xf6\x8f\x4f\xeb\xcd\xf2\x61\xbf\x5c\x3c\xfa\xe3\x51\x6a\x22\xcf\x0a\x25\x54\x87\x0d\x5e\x52\xeb\x2c\xb3\x8e\xcc\x57\xa8\x2b\x8b\xa0\x41\x1f\x68\xfc\x0d\x54\x20\x08\xbe\xb4\x27\x50\xa6\x7e\x30\xdf\xc3\xa8\x02\x9d\x19\xc5\x22\x5e\x3e\x81\x02\x38\x3c\xef\x7e\x7f\x18\x29\xa9\x0f\xb2\x95\x8a\x04\x02\x0d\xca\xdb\x47\xbf\x87\x2a\x22\x8d\x8e\x35\xf6\x8c\xff\x96\x97\x2f\xd6\x5b\x1e\xbf\x5d\x45\xa4\xc6\x80\xeb\x58\x57\xc7\x57\xe8\x22\x32\xdb\xc3\x3a\x19\x47\x43\x19\xb9\x0d\xbb\xf3\x89\x76\x35\x2f\xe5\xab\xfb\x86\x8a\x65\xa6\x7e\xcb\x95\xfa\xed\x12\x07\x88\x62\x60\xe8\x28\x2d\xd4\xa4\x5b\x66\x53\xed\x98\xd9\x8f\xa7\x42\x66\x50\x70\xb9\xac\x90\xad\xd0\x62\x9c\xfc\x17\x50\x61\x9c\x22\xcc\xa4\x39\x02\xd8\x76\x7b\xe2\x4f\x56\x02\x19\x72\x4a\xf8\xf1\x7c\x2c\x2a\xae\xa6\xbc\x82\x27\xab\x96\x32\xf4\x89\x54\x94\x58\x15\x54\x63\xdb\xbc\x5c\xc2\x27\xc5\x0d\x15\x89\x54\xe8\x01\x26\x09\xf5\xef\xef\x00\xd5\x86\xaf\xc1\x63\x00\x54\xcc\x33\x23\xa8\xcc\x11\xd6\x61\xd9\xe3\x0c\x80\xcf\x8f\x51\x0c\x71\xd7\xef\xb9\x82\x6a\x92\x1e\x51\xb1\x4e\x11\x4d\x8d\xd6\xaa\xe7\x35\x09\xdd\xc9\x49\x48\x4d\x2c\x7c\x9c\x2f\x9e\xa9\x24\x14\xd4\xee\x76\x7f\xaf\xc4\xd7\xbc\x7b\x0f\x58\xae\x1a\x0f\x4b\x49\x26\x42\x27\x0a\xd1\x4d\x9e\x6d\xee\x10\x65\x2a\x65\x22\xea\x25\xc4\x2f\x7c\xf1\x34\x03\xcc\xb9\x0a\xec\x0a\xed\x42\x6e\x77\x7a\x96\x68\xe4\x5f\x73\xa4\x4c\x7e\xde\xa2\x77\xdd\xcd\xa4\x53\x83\x3d\x61\x76\xb2\x0c\xd8\x24\x14\x4f\x43\x47\x1b\xb5\x5c\x3c\x8c\x93\xfc\xae\x00\xa3\x44\x1c\x86\x80\x40\x0b\x2c\x28\x5d\x2c\x90\x8d\x6f\x58\x26\x4a\xea\xbf\x56\xd6\xf8\x6f\xff\xfd\x85\xad\xf5\x37\x2e\x33\x95\x49\xaf\x2e\x3a\xee\xa7\x19\x85\xad\x4a\x0a\xb3\x2c\x44\x5e\x62\xd3\x06\x6a\xa7\x76\x73\xee\x82\x55\x51\x14\xb2\x18\xdb\x68\x1c\x9f\xfd\x64\x91\x2b\x46\x53\x9b\xfc\xdd\x2c\x1f\x3e\x55\x51\xa6\x4a\x65\x4a\x59\x6a\xd2\x3b\xde\xc2\x45\x36\x3f\xaa\x80\x66\x2a\x1c\xd1\xfe\x8e\x8b\xab\xd3\xe1\x61\x84\x4c\x1e\xb7\xe8\x9f\xef\xed\xbe\x02\xb3\x3a\x7d\x54\x41\x24\xa2\xa0\xd7\x8e\x7d\xac\xab\xc3\x84\x71\x42\x01\xa7\x66\x73\x87\x52\x0d\x34\xc3\xa7\x83\x94\x50\x8e\xe3\x93\x97\x0d\xc7\x8d\xa5\xb7\xb9\x6e\x18\x44\x2e\xcd\xe4\xab\xe8\xbf\x98\x53\x9a\xc6\xd8\xfd\x7e\xac\xf3\xd2\xe2\x7b\xbe\x8c\x07\xc4\x32\x34\xd6\xab\xc8\x8d\x75\x9d\xfd\xdc\x3a\x31\xad\xeb\x2b\x80\xe3\xac\xef\x7f\xe9\x5f\x77\x3e\xa7\xda\xbe\xa9\x2d\x3f\x1c\x2d\x4d\xd0\xc4\x81\x85\x00\x00\x99\x81\xdb\x57\xb0\xbd\xa3\x5e\x50\xd9\x8e\x20\x3c\x55\xc6\xd7\xc0\x7a\xc5\x6c\x19\x1b\x28\x33\x01\xfc\x6e\xb1\xb9\xdd\xaf\xef\x36\xdb\xed\xe6\xc1\x41\x66\x80\xa6\x21\x76\x44\x5b\x0e\xc3\x2d\xc8\x1a\x30\xf7\xc4\x8b\x5e\x2d\xeb\x6f\x93\x0b\x66\x59\x3a\xa4\x38\x7f\x84\x7a\xa2\xa2\x6d\x07\xb2\x24\x0a\x64\x8f\x73\x58\x6e\xb7\xae\xdd\x09\x58\x2a\xa2\xf0\xec\x1b\xf7\xb5\x66\x08\x03\x30\x95\x6f\xa3\x38\x31\x36\xbb\x10\x45\x80\x50\x97\xcd\x3f\x1c\x72\x11\x22\x4d\xd0\xef\x5a\xf1\x33\x0a\xaf\xf1\xed\xc7\xd4\x20\x84\x4f\x03\x75\x6e\x0a\x71\x14\x26\x7d\xa6\xde\x7a\xd7\x9f\x3a\x63\x90\x50\xc3\xdc\x9c\x37\xf7\xf0\xc3\xc6\x41\xe3\x9f\x4a\x68\x68\x48\x67\xf3\x36\xff\x0f\x94\x4d\x9f\x64\x1f\x5f\x29\x0d\x8c\x9a\x13\xba\x34\xfe\x15\xa4\x21\x11\x2e\x1f\x57\x1e\x4d\x83\x14\xa8\x7f\x9c\xa0\xfe\xb8\x32\x6f\x63\x7a\x99\x28\x42\xef\x03\xc1\x1f\xd7\x79\x51\x3c\xd4\xbf\xe5\x3d\x9f\xc2\xbf\xa2\x7f\x0f\xea\x26\xf1\xbf\xff\x2b\x25\x6b\x0a\x19\x31\x6f\xc8\xa0\x86\xb6\xa6\x59\xa0\xee\xb7\x7e\xe0\x94\xa3\x52\xd2\x72\x40\xcb\xe5\x0e\x25\x09\xd1\x83\x6a\x01\x1e\x9c\x42\x05\x80\x27\xd2\x71\x6a\x6e\xe5\x2b\x1c\xf8\xe4\xab\xf3\xd4\x54\x07\xba\x89\xc7\x3f\xb8\x28\x3c\x03\x6e\xef\xde\x02\xcf\x52\xb4\x9c\xb8\x22\x26\x4e\x8d\x1b\xc2\xd3\x2c\xb6\x3c\xcf\x79\xf9\x72\x95\x2b\x05\x23\xbd\x7c\x0a\x22\x50\x06\x86\x9d\xeb\x76\x6f\x1f\x68\x73\xbf\x38\x54\x6d\x01\x1f\xb7\x79\x09\x93\xe1\x24\xc6\x48\xa2\xa8\xe4\x9b\x89\xf5\x4c\xcf\xdc\x64\x22\x0e\x6e\x53\x70\x4e\x50\x1d\x6a\xbd\xb8\xdb\x3f\xae\x9f\x96\xeb\xfb\xdd\x7e\xfd\xcd\x45\xd9\x20\x04\xc5\xda\x78\x2e\x2b\x2b\x42\x6c\x0f\x48\x62\xba\xb7\xbb\x28\x7e\x5b\x9d\x6a\x09\xb3\x2c\x8a\x20\x69\x94\xf6\x45\x56\x7f\x76\x14\x12\xbb\xee\xb0\x48\xd4\xed\x3d\xe8\x43\xf3\x81\x0b\x0e\x40\x5c\x06\xdf\x46\xb7\xfb\x1f\xb9\xbf\x04\x84\x41\x10\x78\xd2\xdd\x6e\x1e\x34\x98\x21\x99\x7c\x2c\x48\x63\x64\x98\x7d\x3c\x35\xcd\xc7\x2f\x2b\x94\x00\x76\x07\x3d\x7e\xd4\xfc\x90\x4f\xd8\x4f\x74\x90\x29\xcd\x7b\x0c\xb4\xbd\x15\x4d\x62\x83\xed\xc4\xb2\x47\xe7\xbb\x98\xa4\xd9\x40\x4c\xca\x0f\x74\xba\xad\x3f\x5d\x22\xcd\x7b\xae\x03\x7f\x50\x93\x94\xba\xfd\x11\x5b\xf5\xfe\x3b\x56\x58\xaa\x29\x33\xad\x42\xdf\x1e\x97\x3f\xdd\x35\x69\x6c\xca\x4b\xd7\xbb\xdd\xa6\x69\x4e\x7f\x35\x73\xa8\x19\x61\x99\x27\x46\x55\xa6\xe8\x88\x18\x67\x2f\xe3\xee\x06\x5a\x0d\x7f\xae\xd4\x3d\xfc\x98\xdd\x04\x34\x4b\x4c\xc6\x9e\x2b\x85\xba\xda\x15\xa6\x5c\xe6\x37\xff\xe9\x7d\x64\x0a\xf9\x02\x1f\x6e\x57\xdb\xc7\xdd\xc6\xff\xaa\xe0\x91\x2d\x8a\x6c\x11\xa9\xd3\xe6\x3f\x4d\xf7\xd0\xe4\x97\x41\x99\x9e\x72\xc3\x4f\x77\xcf\x0f\x30\xdd\xca\x75\x18\x02\x42\x7e\x8e\x7b\x63\x94\xf7\xfc\x53\x2d\x56\x77\x56\x14\xe3\x33\x9d\x29\xba\x5c\x18\xae\x23\x27\xfb\xb3\xe2\x2d\x7f\xac\xf2\xb2\xbd\xae\xea\xed\x49\xfc\x1f\xcc\x40\x59\x47\xef\x20\x8a\x05\x35\x8a\x75\xba\x0b\x3a\x7b\xda\xb5\x79\x47\x43\x47\x00\x98\x00\x5d\xf2\x5a\x54\xa5\x13\x2c\x44\xf5\xab\x81\x59\xd4\x31\x44\x88\x0a\xfd\x96\xc3\x8f\xbb\x8f\x55\xfe\x3e\xfd\x6c\x49\x22\xa4\xec\x99\x36\x26\xab\x22\x49\x0d\x4c\x02\x83\x8f\xcd\xf2\x61\x7e\xc3\xd3\x49\x46\x11\xf1\x86\x05\x84\xbc\x69\x31\xfb\xb2\x50\xea\x7c\x26\xba\x13\x3a\xe7\xc3\xef\x85\x1b\x59\xa1\x34\x92\x9b\x75\x13\x2f\x59\x27\x82\xe1\xae\x93\x97\x4d\xdb\x99\x84\x66\x7a\x97\x22\x41\x4c\x94\xe4\xb6\x2f\xc4\x65\xb2\x36\xfa\x1e\x60\xe6\x2e\xe6\x22\x3a\x9d\xe8\xc8\x89\x90\x5d\x39\xb0\xdf\x25\x48\x88\xce\x08\xd7\x26\x68\x9f\xfa\x24\x3a\x8b\x04\x2e\x16\x53\x2f\x6a\x01\x1a\x44\x39\x4c\x47\x01\xc7\x39\x6f\xe4\x49\xa6\x4f\xc4\x03\x82\x64\x44\x79\x83\x35\x32\x43\x32\x34\xf9\x72\x82\x90\x24\xf2\x5a\x02\xd3\x2b\x08\x66\xfa\xb1\x0a\xb8\xd4\x7a\xac\x45\x96\x6a\xff\x71\xf3\xf2\x65\x2f\x8b\xaa\xec\x2d\x95\xe0\x14\x2b\xbe\xa6\x39\x14\xe3\xb3\xe9\x1d\x80\x71\xd3\x5e\xf9\x3b\x6c\xbe\x7b\xe3\xae\x65\x20\x70\x3a\x5c\x9d\x3e\xb0\xa1\xeb\x57\x90\x19\x77\x1a\xa5\xe8\xb1\xdd\x2e\xae\x37\xf7\x8b\x5b\xe6\x2f\xa7\x08\xee\xfa\x1c\x3f\x89\xa9\x6e\x6d\xca\xe7\xc6\x1b\x69\x15\x90\xa4\x97\x9d\xc5\xde\xb9\x07\xed\x3d\x21\x4c\x58\x6d\x76\x0f\x53\xd8\x9e\x56\x60\xea\xcf\x2f\x28\x55\x7a\x6a\x96\x15\x68\x9d\xcb\xbc\x07\x04\x68\x48\x03\x8a\x7b\x64\xb3\xfe\xe9\xe2\x59\x16\x04\x01\xa1\xa9\x2b\x4c\xf4\xe9\xa5\x51\x3b\xcb\xf0\xd1\x58\x10\xc4\x1c\xb3\x05\xe2\xf4\x71\x55\xa1\xbc\xc2\xa3\x17\x5d\xed\x8e\xea\x08\xdd\x9a\xf5\xee\x7a\xb0\x7a\x59\x10\x58\xf6\xf9\xa7\xcd\x6f\x23\xe4\xcb\xf0\x33\xb0\x20\x90\x31\x32\x37\x22\x75\x4f\x7d\xe8\xb6\x9d\x27\x90\xef\x5f\x26\xb7\x00\x86\xee\x7d\x6f\x36\xe6\x47\x5e\x23\x79\xf9\x70\x4b\x65\x01\x21\x1c\x21\x15\xdf\xbb\x77\xc8\x6b\xde\x3d\x52\xf7\xcb\xc4\xdd\x11\x11\x46\x96\xfa\x2e\x2f\xa0\x69\xab\x12\xf6\x1b\x59\x5d\xf3\xbc\x73\x91\x06\xbb\x2d\x0b\x28\x8d\x63\xc3\x7b\xab\x72\xfd\xb1\x28\x0a\x4c\x91\x2d\xf9\x71\xba\xbc\x59\x40\xb5\x42\x1e\x8c\xef\x5f\x37\xbb\xf5\xed\x66\xbb\xdb\x5f\x3d\xdc\x3f\x6f\x07\x25\x01\x16\xb0\x40\x90\xc0\x55\xd4\x4f\x58\xee\x71\xed\xbf\x96\x62\x72\x64\x54\x3f\x9d\x69\x2c\x60\x44\x24\x89\x8f\x0d\xd4\x50\x8b\x81\x05\x8c\x6a\x24\xc1\x45\x10\xc0\xae\x86\xe6\xd5\xf3\x9c\xb2\x80\x45\x21\xce\xd1\xef\x90\xe3\xa7\xef\xb6\xf8\x7a\x4e\x12\x94\x05\x2c\x89\x1d\xc1\xb8\x8b\xaa\x96\x67\x10\x45\x16\x84\x91\xd1\x8a\x3f\xf2\x8f\xe7\xa3\xfb\x99\x50\xc7\xb4\x8f\x20\x36\xe5\x2b\xd4\x79\xeb\xe8\xed\xfb\xc6\x19\x5f\xda\xba\x30\xed\x22\x46\x31\x9b\xbd\xe5\x1a\xfa\x84\x7c\xe3\x7e\x25\xe2\x12\x31\x69\xc6\x81\x1b\x3a\x81\x2c\x88\x21\xc1\x07\x45\x4f\x7f\xe3\x05\x15\x9a\xc9\xdd\x27\x69\x8a\xa9\x54\xc5\xeb\xb7\xb2\x52\x30\x52\x9b\x75\x63\x44\x82\xbe\x9e\xd9\xda\xa6\x19\xb9\xf1\xd8\x34\xa1\xca\x88\x47\x0e\x50\xdc\xee\x98\x34\x34\xfe\xc8\x0b\xd2\xbf\x52\x05\xe3\x99\x97\x45\x46\x4e\x55\x98\x4a\xc1\x68\x41\x65\x69\x80\xf1\xe2\xde\xa5\xed\xa6\x1c\xc7\x2c\xc8\x34\x75\xb0\x19\xac\x35\x70\x79\xa6\x3c\xf3\xb7\xe9\x19\x51\x9a\x0d\x85\x3f\x06\x7d\x19\x2c\xe0\xa9\xe7\x32\xba\xe3\x39\xd2\x39\x3d\xf2\x9a\x1f\xa0\x1d\x18\xed\x5f\xcc\x57\x11\x49\x23\x5d\xdc\x5a\xb0\xfe\x5d\xa5\xa0\x70\xbf\x20\x14\x70\x83\x44\x7f\xd0\x5a\xbe\xf2\xbc\x9c\x53\x26\xef\xb7\x3a\x16\xc8\x48\x13\x3b\x35\xf7\x75\x55\xf9\x37\x2c\x65\x84\xa5\xfe\xc3\xa9\x68\xf3\xeb\xfc\x67\x9f\x87\xf9\x17\xfd\xb7\x13\x56\x64\x81\x8a\x62\xfc\xa0\x9b\x16\x0e\xa3\xd7\xab\xa2\x4c\xda\x1a\xd6\xfa\xe5\xa5\x19\x2d\x2b\x10\x01\xd6\x34\x75\x0d\x96\x08\xdb\xa3\xb2\x58\x00\x4a\xa1\x17\x22\xf2\x76\x5b\xcc\xb0\xd5\x4c\xde\x07\xe8\x0c\x39\xb2\xdb\xea\x8a\x37\xc0\xe8\x97\xe1\xc3\xe9\x24\xc5\x0c\x10\x37\x10\x35\x57\xe5\xee\xf9\x7b\x59\xa0\x45\x44\x95\x4d\x12\x75\x5e\xcf\x4d\xae\xdb\xc9\xa4\xd5\x82\x63\x55\x1d\x4a\x75\x75\xfa\xb8\xe2\x28\xf6\xea\xee\x97\x04\x34\xc3\xc0\xfc\x07\xe4\xa8\xd8\xe9\x42\x54\x46\x82\x88\x22\x60\x16\x1b\x06\x07\xc9\xef\xf1\xe5\x49\x10\x8b\x2c\xf2\x08\xa6\x76\x3e\xb3\xc2\x48\xa0\x19\x4a\xef\xb7\xd0\xb4\xf6\x29\xc7\xaf\x82\x10\xa2\x30\x40\x71\x13\xfa\xd6\x60\xea\xcf\x1c\xdb\x91\x9d\xef\xcc\x7c\x0a\x2e\xce\x75\xa2\x12\x33\xe4\x6c\x6e\xb8\x4c\x0c\x14\xb5\x2a\x0a\xde\x42\xcd\x8b\xbc\xc1\x70\xce\xcc\xf4\xf1\x3d\x13\x65\x7c\x17\xae\xd4\x80\xc2\xf5\xd3\x10\xa0\x3b\x29\x43\xd5\x27\x33\x33\x3e\x64\x55\x95\x9b\x9b\x87\x2f\xfe\xa8\x4a\x2c\xf5\x69\xef\x4b\xa5\xff\x22\x81\x9d\x91\x84\x26\x44\x5b\x7b\xe9\x61\x49\x67\x91\x3b\x23\x4c\x3a\x62\x44\x84\x6c\x97\x7a\x7a\xef\x61\x92\xf8\x24\x78\x69\x7a\x73\x3b\xdb\x37\x92\xd9\x19\xdf\x78\xc8\xa5\xe1\xb6\x6f\x5b\x38\x1c\xdb\x5d\x85\x05\xe3\x25\xaf\xcf\x9c\x4e\x47\x43\xc5\x48\xa8\x24\x4e\x3f\x0d\xf0\xc8\x3f\xfa\xb9\x13\x45\x01\x6e\x05\x87\xaa\x6c\x5f\xe3\xc0\xa6\x2f\x07\xc7\xb9\xd4\x56\x89\xb1\x85\x7a\xcf\x87\xa0\x33\x46\x22\xa9\x10\x7e\x8a\xaa\x98\x0f\x1a\xa1\xff\x13\x13\x4a\x62\xce\x33\x9b\xf4\x75\x64\x94\x13\xed\x99\x61\xcc\xcc\x48\x92\x69\x70\xba\x44\xb6\x63\x74\xd8\x11\xc6\x48\xc2\x85\x34\x4d\x0c\xc8\xaa\x7e\xc7\x7f\xba\x23\xa9\x8a\x28\xb1\x95\x3e\x51\xc0\x15\xe8\xaa\x36\x0c\x98\x83\x44\x00\x23\x59\xa8\x22\xfb\x69\x3d\xd1\xea\xc9\x74\x5a\xf5\xdf\x2d\x13\x86\x44\xfd\xdb\x6e\xae\x8b\xeb\x34\xc5\x3e\x32\xc2\xb3\x04\x09\x13\x1f\x91\x69\xe9\xbc\x46\xc9\x88\x48\x23\xac\xf1\xed\xc5\xe9\xc3\x61\x15\x76\xbb\xbb\x33\xc3\x33\xeb\x72\x11\x19\x85\xb8\xb1\x9a\x0a\xa2\xd1\x54\xdd\x3f\x3e\xad\xf7\xbe\xcd\x85\x11\xc9\x01\x41\xbd\x8b\xb7\xbc\xa8\x86\x02\x88\x8c\x48\xc9\xd0\xfe\xc2\x3b\x2f\x4e\x67\xd4\x62\x8c\x48\x95\xa0\xb7\xd3\xf9\x6a\xeb\x9f\x47\xaf\xb2\x31\x9a\x79\x8a\x9a\x34\xcd\xd7\x87\xaf\x0f\x9f\x24\x3e\x18\x51\x16\x83\xe0\x77\x05\x93\x3f\x9a\xe6\xd8\xe7\x77\x37\xa2\xa2\x08\x13\x1b\x96\x4f\x8e\xd7\x97\x3a\xb6\xed\x78\x60\x71\x62\x2b\xe2\xeb\x9f\x12\x8e\x53\x12\xa2\xe9\xf0\x08\x32\x9b\x63\xc7\x3e\x21\x87\xc5\x2f\xa7\x16\x13\xd2\x14\x6d\x50\x79\x3a\x60\x11\xed\x9d\x17\x7e\xea\x6b\x2a\x23\x6a\x91\x87\x25\xd4\x74\xff\x5e\xb5\xa0\x5c\xa8\x7f\xac\xa1\x3c\x1d\xfd\xd8\x98\x68\x9b\x5b\x36\x3c\x84\xfc\x78\x01\xa2\xc2\x88\x4e\x32\x8c\x9e\x9b\xa2\x3a\x82\x35\xe6\xd3\xd4\x0f\x23\x5a\x73\x66\xa7\xf0\xb2\x3d\xcd\xf6\x9e\x31\x1a\x10\x85\x30\xa7\xb3\xc6\x75\x77\x3c\x95\x08\x92\xe2\x0a\xcb\x3b\x9b\xb2\xad\xce\xc4\xec\xec\x50\x12\x40\x9a\xd8\xdd\x0b\xce\x1b\x12\xec\x28\x4a\xa4\x31\xf1\x2d\x1c\xd3\x2f\xee\x8f\xcc\xac\xb6\xf5\xee\xeb\xfa\x69\x7f\xb7\xb9\xdf\x2f\x1f\xee\x77\x4f\x9b\xab\xfd\xf3\x76\xe1\x07\x71\x89\x75\xb1\x76\x18\x4a\xaf\x7f\x1e\x79\xa9\x66\xaa\xb7\xe3\xd6\xea\xf1\x9d\x52\x19\x1a\x2e\xf2\xca\xe8\x95\x7c\x19\xdf\xa1\x0a\xb3\xee\xa8\xab\x31\xab\xbc\x7c\x59\xcb\xaa\xf9\x68\x5a\x38\xf4\xf0\x69\x46\x19\x4f\x30\xd7\xb1\xbd\xda\xf5\x7f\xd2\xd8\x41\xf4\xca\x9b\xdd\x8f\x6a\xdb\xc2\xd1\x65\xdd\xfc\x08\x61\xda\xe2\xa5\xa9\xd0\x3f\xfa\x9c\xb2\x1b\x10\x06\x21\x36\x0c\x54\x5a\x03\xaa\xef\x5c\x57\xf5\x76\xa6\x13\xc0\x0d\x8f\x23\xa4\xda\xc3\x64\xd9\x43\x39\x6a\x6d\x67\x34\xe4\x8a\xda\x8d\xe3\xae\xb3\xde\x93\xaf\x1b\x4a\x89\xb6\xb9\x3a\xb6\xf9\x81\x17\x03\xcd\x53\x37\x00\x14\x76\xf8\x5d\x9d\xea\xf2\xb9\x6c\xbc\xd6\xf2\x64\x94\x36\x45\xe7\x96\x97\x6f\x8d\xb1\xa8\xbb\x57\xb8\x87\x1f\x3b\x5e\xbe\xed\x3e\x8e\xfe\xd9\xa2\x20\xe5\x46\xf2\xae\x3e\xf2\x36\x77\x7f\x8e\x29\xe0\xd6\x2c\x4e\x75\x39\xb4\xa4\xf6\x70\x42\x02\xb0\x09\xb7\xa1\x42\xc3\xe4\xa3\x26\x2c\x42\xaa\xca\x56\xc1\xea\x34\xcc\xea\x32\x9a\xf0\x0c\x9b\x9b\xcb\xd3\x61\x59\x9d\xea\xc6\xdf\x4f\x22\xc3\xc8\x10\x07\xbe\xbb\x50\x92\xa6\x3a\xc3\xfc\xf3\xbe\x84\x9f\xed\xd5\x49\x39\x1a\xc4\x45\xa9\xd6\xa5\x5a\x94\xea\xa1\x8b\xc6\x79\x61\x98\xbe\x06\xde\x22\xcd\x98\xc4\x69\xf5\xca\x4b\xb5\xab\x96\xa8\xb8\x7b\xea\x11\x8b\x8c\xf2\xd8\x34\xde\x23\xc0\xab\xe5\x85\xd3\x11\x98\xce\xdd\xf1\x83\x71\x99\xa1\xcb\x67\x59\x4b\xf7\x9b\xd5\x2f\xa5\x92\xdd\x99\xda\xbc\x12\xdb\xca\xb7\x28\xd5\x75\x0d\x70\x5e\x4f\xf6\xc3\x35\xbe\xe7\xa2\xe2\x67\x21\x5d\x73\x16\xd3\x9d\xb5\xd4\x32\x2a\x74\xe4\xf8\x4b\x2d\x00\x05\x09\x7b\xdd\xfb\x91\x4c\x60\x8f\xcb\x0d\xb4\x96\xa2\x79\xde\x44\x48\x61\x34\x4c\x5f\xc0\xcb\xa1\x4c\xb3\xab\x8c\x4a\x20\xc6\x30\x59\x54\xc4\x05\x43\x4e\x21\x33\x70\x4b\xd7\xc3\x62\x12\x71\x55\xdd\xc3\x22\x19\xd5\x81\x0e\x1d\x6c\xf2\x9a\xe7\x45\x1f\x42\x3f\x97\xe6\xfa\x7d\x77\x2b\x32\x90\x9b\xf3\x58\x90\x12\xa4\x64\x38\x95\x4e\x15\x74\x71\x52\xf9\x0c\x9e\xdf\x8e\x27\xb1\xc4\x70\xe2\x69\xb1\x5b\xef\xb7\x8b\xdb\xf5\x76\xb7\xb8\x59\x27\xee\x72\x24\x35\x6a\xcb\x9d\x01\x45\x91\xbe\xc6\x1f\xc9\x8c\x7c\xa9\xc6\xcf\x87\xe9\x4c\x7f\x48\x2a\x66\x78\xaa\x7f\x83\x8f\x11\x62\x70\x34\x17\x3a\xf3\x49\xe8\x80\x1e\x7d\x18\x04\x31\x9a\x46\xc8\x58\x75\xd6\x97\x76\xc6\x3c\xcc\x18\x0b\x4c\xbb\x10\x82\x7a\x16\xa5\x42\xfe\xb1\xd1\x07\x64\x2c\x8e\x9c\x24\xf3\xae\x06\xde\x9c\xea\x8f\x39\x16\x01\xc6\x98\xce\x10\xc2\x7b\x5b\xbd\x18\x36\xa0\x47\x57\xec\x9b\x9f\x1a\x2c\x8c\x13\x69\x93\xa1\xcb\xe2\xe4\x18\xb3\x18\x0b\x41\x61\x84\x28\xab\xb2\x39\x21\x31\x33\x4c\xee\x29\x4a\x39\x74\xb7\xfd\xb4\x5e\x3c\xae\x9f\xf6\x9b\xfb\xdd\xd3\xfa\x71\xb3\xda\xaf\x7f\xdf\x3d\x2d\x96\x88\xd5\xbc\x5a\x6c\x5d\x62\x87\x45\x22\xc5\x5c\xda\xf5\xf3\xd6\xfd\x29\x49\x43\xc7\x19\x76\x73\xe2\xb5\xca\x79\xf9\x74\x2a\x2f\xd8\x65\x96\x0a\x85\x89\xf3\xe6\xb5\xfa\xb1\xab\x8e\x98\xc9\x1b\xf5\x7c\x31\x96\x82\xc1\x4c\x35\x0e\x21\x73\x09\x94\xca\x58\xc6\x38\xb3\xed\x69\xab\x9a\xff\x58\xb7\xaf\x63\xc8\xc9\xbc\x93\xc4\xb2\x88\x5b\x82\x6e\x5e\xcb\x57\x03\xf7\x6a\x7e\xef\xc6\x4e\x3e\x44\xc6\xb9\xf6\x9d\xea\x5c\x7a\xfa\xfc\xf0\x5f\xff\xfe\xdb\x38\x3f\xd9\x8d\x35\x69\x54\x9f\x57\x78\x38\x42\x39\x36\x85\x2c\x93\x04\x67\xc0\x62\x79\x7f\xbf\x91\xd5\xaf\xfa\x67\x26\xeb\x24\x93\xd4\x55\xfa\x9c\xdb\xb2\x83\xa6\xdd\x55\x13\xb3\x31\x3e\x8b\x47\x94\x5a\xee\x44\xcc\xc2\x58\xb2\x36\x3f\x71\x45\x12\xa1\xf7\x8a\x32\x41\x0b\xa5\xb0\xf3\xc5\xac\x18\x37\x02\x38\x41\x03\xb5\xbe\x5f\x3f\x6c\xcf\xda\xd5\x18\x93\xb6\x43\x1b\x5d\x10\x8c\x83\x26\x8d\xad\x8c\x49\x21\x71\xfb\xde\x2d\x37\x7b\x3e\x5c\xa8\x2a\xcc\xb0\x4c\xbf\xab\x3b\x9f\xb9\xf6\x7f\x8e\x54\x66\x9b\x6b\x57\xf0\xee\xff\x1a\x47\x8e\x04\xff\xda\xa8\x37\x4f\xee\x44\xa9\x34\x20\xae\x47\xd2\x2c\xb1\x89\xee\xaa\x1d\x08\x44\xe1\x33\xa9\x9a\x1f\x7b\xd2\x6b\xc6\x20\x36\x02\xd9\x36\x7e\xba\xae\xab\xff\x0c\xd0\x1c\x7d\x44\xc2\x20\x55\x08\x8d\x7c\xfa\xb9\x5e\xdc\xe2\x1b\x9d\x84\x05\x0c\x94\xb1\x4e\xe5\xe9\xf0\x04\xda\xff\x55\x6b\x34\xbc\x56\x63\x05\x1a\x53\xb2\x9d\x65\x6e\x76\x3b\x24\xd3\xcc\x43\xa0\xef\xa1\xfd\x51\xd5\x2e\x19\x1d\x06\xd4\x40\x69\x3b\x47\xf5\xb5\x82\x32\xff\x69\x3a\x55\xfd\x92\x21\xd9\xbf\xdd\x50\x09\xd8\xf8\x62\x11\xac\x6f\xa2\x2a\xce\x74\x5d\xfd\x50\x9d\x18\x9a\x8a\x5c\x4d\x0f\xa9\x08\xdd\xd9\x4a\xeb\x22\x2f\xe1\xac\xd6\x36\x7a\xcd\x21\x09\x8d\x28\x3c\xb6\x2a\x2f\x1f\xb6\xbb\x2e\xe4\xda\xef\x36\xeb\x27\x27\x65\xc4\x42\x9a\xc5\x98\x90\xdb\xf1\x7c\xe0\x46\x86\x2c\x52\x68\x06\x4c\x76\xf9\x76\xfd\x6d\x7d\xeb\xb8\x35\x58\x18\x91\xc8\x00\x79\x4d\xe3\xe6\xd5\x90\xdd\xe2\x92\xb5\x08\xa3\x30\x41\x5b\x8f\x45\x1a\x53\xc3\x9f\x3e\x5d\x14\x1b\x59\x13\x13\x8b\xe0\x52\xe8\x22\x8e\xc9\x75\x92\xd0\x73\x81\xb8\x2e\x00\x16\xc6\x22\xc6\x34\xc1\x92\x1f\x5b\x9e\x97\xbf\xe5\x6d\x9b\x43\x7f\x14\x22\xc3\xed\x09\xf0\xb6\xff\x31\x68\xe9\x66\x61\x42\x29\xa6\x4b\x0e\x95\x7c\xc3\x74\xbf\xdd\x58\xc6\x3f\x9a\x80\x46\x22\x47\xc9\x0b\x79\x3c\x35\xed\x71\x8e\x26\xda\x8e\x4d\xc1\x08\x2d\x63\x63\x52\x33\xd1\x3c\x65\x61\x16\x46\x98\xb5\x3d\xf0\x9f\xb6\x31\xf4\x0a\xda\x4d\xe9\xd5\xf8\xbb\x11\x5a\x19\xd2\x97\x23\xc8\xd6\x4a\xa4\x8d\x7f\x23\x13\x9a\x5b\xf2\x9f\x51\x16\x79\x3e\x63\x14\x66\x2a\x46\x14\xc6\xf5\xd3\xa3\xfb\x11\xae\x62\x14\x58\x90\x45\x25\xdf\x0e\x9e\x4b\x8f\x85\x42\xe8\xc8\x56\x7a\x6e\x50\x5b\xb0\xc0\xdc\x8f\x3d\x2a\xe3\x04\x57\x6e\xf7\x64\x5f\x79\xf3\x3a\xc7\xa9\xf8\x59\x05\xeb\x02\x4b\xba\x5b\x6b\xa1\x94\x69\x68\x0b\x75\x93\xf7\xa6\xa8\x21\x37\x7e\x37\x2a\xb1\x1f\x87\x8f\x41\xb6\x2a\x54\x21\x15\xa9\xe7\xb5\x40\x4b\x30\x93\x5e\x0f\x55\xc4\x2c\x6d\xb7\x21\x7c\xb7\x9c\x89\xdf\x10\xd7\xf4\xc5\x0f\xd2\x08\x31\xbd\xc9\xdf\x01\x9b\x83\x86\x64\xaf\x2c\x54\x89\xc4\x52\x98\x2e\x72\x84\xa9\x22\x81\x54\x37\x57\x87\x5d\xe6\x6e\x6c\x46\x5d\x32\xce\x37\xd1\x82\x42\x30\xc3\xe4\x8b\xaa\x2c\xc4\xea\xd9\xf5\xf3\xef\xc3\x56\x3b\x16\x2a\xad\x11\x77\xb4\xdd\xdc\x7e\x5b\x3f\xb9\xfc\xc9\xfd\x6a\xe9\x06\x40\x64\x50\xd6\x9d\xd5\xcd\x61\x1e\xc8\xcf\x42\xc8\x0c\x37\x92\x75\x1d\xaf\x64\x75\x3a\x56\x17\xb8\x4b\x3a\xcf\x45\x62\x37\x81\x11\x07\xdb\xd5\x27\x30\x29\xcf\xa1\xf7\x16\xea\x90\x22\x93\x41\xe7\x28\x5d\x56\x69\x60\xa1\x4e\xa9\x51\xa1\x3d\x1d\x0e\x16\x6c\xed\x57\xa6\x96\x11\x9a\xc5\xfd\x65\x96\x56\x33\x32\x0a\x22\x86\x11\xf0\x81\xbf\xc1\x55\xae\x46\x41\x4c\x14\xa4\xc2\x25\xe9\xbb\x8d\x1f\x7b\x50\x5e\xac\x1e\x92\x1d\x42\xba\xa0\xa5\x7b\x8f\x77\x5b\xfb\x3d\x47\x53\x23\x22\x91\x40\x22\xa1\x1e\xe1\xfa\x1d\xe0\xad\xa7\x35\xf4\x37\x42\x35\xe1\xa9\xb5\x05\xdb\xaf\x0b\x36\x4c\xa8\x47\x2c\x16\xe8\x8f\xf9\x5e\x4c\x53\x29\x7a\xcc\x61\xd2\x87\xc1\x22\x26\x63\x44\xee\x3c\x56\xe5\xcb\x3c\x88\x93\x45\x11\x65\x48\x52\x68\x03\xf3\xdb\x8a\x97\x2b\x3e\x60\xec\x62\x51\xac\x3d\x45\xda\x23\x92\x8b\x0d\x72\x2e\x83\x99\x18\x25\x09\x60\x36\xd3\x86\x5d\x86\xbb\xb0\x4f\x92\xa7\xff\xa2\x3d\xc6\x6c\xf4\xbf\xee\xfc\x34\x45\xa9\xe6\x1f\xe3\x0e\xb1\x89\x75\x8b\xd2\x20\xce\x0c\xfc\xc0\xf6\x1f\x62\x0d\x67\xd0\x1d\xd3\xf9\xbc\x1c\x09\xdb\xf6\xc3\x66\x8e\x8d\x95\xad\xfe\x14\x32\xca\x22\xcc\x6f\x9a\xfe\xbd\xee\x2c\xcc\xfa\xdc\x9e\x65\x7d\x22\xce\x01\xc1\x3a\x88\xe0\xdb\xac\xf6\xee\xa7\x39\x30\x8e\x9d\x78\x3e\xcc\x8a\x84\x0c\x33\x53\x70\x3b\xf0\xbc\x3c\x63\xd8\x62\x91\x50\x21\x33\xf5\x13\x4f\x94\xde\xfd\x31\xca\x88\xc1\xce\x9b\x68\x72\x72\x8e\x96\x38\xd7\x90\x1e\xeb\x09\x89\x5b\x46\x49\x82\xd1\x37\x96\x5c\x61\x81\xf5\xc0\x7f\x1a\x8a\x71\xb7\x38\x22\xa9\x0d\xc5\x5b\x37\xe5\xf7\xdd\x45\xbe\x8c\x4d\xe9\xd9\x7f\xed\x79\x2a\x66\xc4\x70\x6a\x9f\x30\x9f\x8c\x92\x28\xfe\x98\xc2\x78\xb7\x5e\xad\x7f\xf7\x7f\x4b\x52\x8e\x7c\x1b\x2e\xae\xbc\x81\x92\x5c\x58\x86\x8a\x87\xc4\x3a\x43\xc5\x48\xf5\x9b\x45\x10\x93\x44\xfb\xe6\xd7\x99\xfa\x6d\x04\x29\x03\xa7\x93\x0e\xc7\x82\x9f\xa9\xac\xd9\x71\x3a\x8b\x88\xdb\x6e\x57\x4d\xfb\x8f\xf6\xa2\x1c\xdb\xf8\xc4\x38\x08\x32\x74\xf1\x37\x07\x23\x1d\x3c\xec\xe7\x1d\x4d\x91\x38\x10\x06\xfb\x7c\xe7\xc6\xb9\xb7\x1e\x13\x41\x70\xaf\xc7\x17\x3e\xbb\x4b\xc5\x34\x14\xe8\x72\x3b\xd6\x58\xe7\xfc\x58\xe7\x61\x90\x5d\x8a\x69\x1a\x21\x67\x84\xe3\xa9\x59\xf2\xe6\xf5\xb1\xae\xfc\xe1\x2c\x95\x89\xeb\x4b\x37\xfb\x82\x3b\x22\x75\x60\xa8\x15\x4f\xf0\xbd\xaa\x8b\xb3\x14\xf4\x70\x12\xc5\xcc\x2a\xc8\xff\xe8\x7c\xb1\xbb\xea\x3d\xf7\x37\x10\x12\x69\x5d\x97\x5a\xed\x0f\xd0\xf2\x62\x6f\x54\x9e\xdc\x71\x11\xf5\xe2\x17\x46\xf4\xed\x9e\x1f\x7a\xe6\x09\x17\x62\xc5\x91\xb0\x69\x37\xde\x8c\x55\x5e\x67\x00\x8f\x2c\x8e\x34\xc3\xb4\xc2\x73\x9b\xbb\xe2\x6b\x1c\xc7\x0a\x39\x54\x3a\x37\x6c\xf7\xc3\xf0\xfd\x3c\xe5\x0d\x5c\xc1\x8b\xf7\x3c\xe3\x44\xa4\xb8\xb4\xb6\xc7\x22\x6f\x11\xea\x34\x52\x21\xfc\xc5\x3c\xf8\xe5\xbf\xe3\x59\x90\x28\x43\xff\x64\x98\xa7\x07\x72\x8d\x2c\x4e\x20\x72\x82\x68\x1b\x1b\xc5\x0c\xe0\x18\xd3\x34\x53\x9c\x92\x20\x31\x72\xa1\xad\x51\x54\xc2\x49\x30\xdc\xa4\xe2\x2c\x8e\x10\x02\xb4\x5b\x3c\xdd\xac\x07\xf0\x52\x16\x67\x22\x40\x7b\x61\x8d\x73\x33\xca\x97\xc6\x99\x10\x18\xf6\x77\xa6\x74\x4c\x65\x7b\xe1\xa9\x78\x10\xa1\x0b\x67\xa2\x9c\xa5\x51\xec\xec\xec\xe5\x37\xee\x05\x46\x59\xcc\xc3\x14\x5d\xfc\xf5\xee\x6b\x14\x04\x55\x99\x90\xcc\x1f\x4a\x22\xa7\x7c\xfe\x30\x89\x4e\x62\x41\x22\x65\xa0\xe0\x58\xaa\x3a\x95\xaa\xc8\xcb\x17\x2c\xbb\xb4\xe7\x69\xd8\x58\xa4\x5c\x0f\x5a\x2f\x51\x53\x3a\xff\x84\xa3\xfa\x53\xf7\x30\x16\x5c\xa1\xf2\xd6\x2b\x6f\xfe\x5e\x89\xee\x45\x1f\x0e\x50\x2a\xbb\x80\x3f\xdd\x3b\x62\x01\x21\xe6\x93\xb6\xa6\xb5\xfa\x8f\x87\xe7\xe9\xad\x42\x86\x89\xe0\x23\xff\x30\xad\x9d\xbc\x7b\x34\xbf\x90\x24\x95\x18\x9d\xe4\xa5\xae\xea\x03\xaf\x1f\x7a\xd7\xd7\x8d\x48\x01\xcb\x2e\xcf\x23\x0d\x9c\x6a\xbe\x5e\x1d\x2b\x41\xd1\xcd\xdc\x42\xa9\x6e\x97\x4f\x7f\x81\x48\x9d\xc5\x4a\x69\x84\x2f\xed\x83\x9f\xd7\x55\xfd\x66\x45\xb2\x7b\x6f\x31\xd6\x84\x26\xe0\xd9\xc2\x1e\x6b\x18\xf2\x15\x8d\x7f\x5f\x53\x43\x5d\x2f\xad\x58\xe9\x04\x00\xce\x62\xad\x8d\x80\x5d\x0b\xfc\x40\x10\xa0\xe9\x6d\xa4\xd6\x0a\x11\xd6\x8b\xd5\xc8\x59\x4d\x48\xc2\x60\xc8\x2a\xbe\x2f\x40\xb7\x28\xe9\xd1\xec\xdb\x6a\x7f\xac\x2b\x44\x77\xda\xd1\x94\xa4\x48\x2f\x71\xb7\xb8\x5b\x77\x31\x6a\xff\x77\x8e\x01\x90\xb4\x6f\x10\xa3\xc5\xbc\x2a\x87\x9d\xfa\x76\x28\x63\x81\xdb\x51\x2c\x31\x24\xa8\xef\xaf\x50\xe2\xae\xfc\xf0\xde\x0f\x0c\x99\x57\x39\x78\x34\x77\xf1\xb5\x3a\x8d\x3b\xa5\x59\x12\x86\x29\x32\x7a\x1e\x0b\x2e\xc1\x64\x61\x46\xaf\xa4\x1b\x80\x4b\xf1\xc6\x56\xa6\xae\x3e\xee\xa7\x97\x48\x8c\xc0\xbe\x4b\xbe\x9e\xc9\x9c\xb3\x24\x52\x10\xba\x4c\xa4\x25\x22\xbb\xe2\xe5\xbc\x68\x19\x4b\xe2\x90\xa0\xba\xc6\xdd\xe2\xf7\xfd\xd3\xe6\xfe\x66\xbf\xdd\xfc\xd3\x19\x8e\x24\x8e\x75\xea\xd5\x3c\x47\x51\x4c\x12\x4b\x92\x59\xf2\x3a\x04\x16\x5a\xe8\xd7\x70\xd7\x48\x12\x12\x84\x8e\xac\xee\x02\x03\xe7\xe4\x6e\x12\xc1\xb0\x7b\xec\x8f\xaa\xa8\x66\xaa\x2e\x49\xa2\x0d\x5a\x06\x4b\x94\x35\xb6\xa7\xf1\xc5\x20\xb5\x37\xb6\x54\x49\x9a\xa4\x56\x46\xa6\x39\x1d\x60\xe6\xfb\xa6\x69\xd6\x6b\x98\x03\x36\x31\xdd\xe4\x75\x31\xf9\xd5\x54\x98\xa4\xe5\x0b\x3f\xc0\xda\xf7\x6c\xb0\x24\xa3\x59\x1a\x0d\x50\x8b\xab\xba\x3a\x36\xd3\x79\x9e\x64\x2c\xc6\x46\x86\xed\x09\xfb\x02\x1d\xb5\xc4\xe8\x7b\x38\x0b\x94\x64\x10\xa3\x69\x44\xd7\xee\x11\xea\xdd\x6b\x75\x6a\x78\xa9\x90\x10\xe1\xba\xaa\xaf\x4e\x1f\x5d\x4c\x6c\x47\x73\x66\xa8\xa4\x8c\x52\xe0\xa3\x51\xcd\xf3\x07\x93\x04\x9d\x95\x2d\xb4\x9b\xc7\xa7\xc9\x6e\x3a\x76\x15\xa7\x0c\x0b\xa3\xaf\x28\x38\x43\x32\x56\xe5\x2a\x4c\x23\x9b\x99\x08\x08\x90\xab\xc5\x8b\x8a\xf3\x2e\xd2\x9a\x6d\x85\xeb\x06\x27\x08\xaf\x84\xf6\xf5\xca\xb3\x9e\xb3\x44\x32\xe2\x98\x10\xf7\xb9\xac\xca\xfc\x4f\xa7\xf2\xfd\xa9\xbd\x4a\xa4\xe4\xc8\x5f\xeb\xe4\x34\xae\xaa\xd3\xcb\xeb\x39\xba\xfb\x17\x99\x03\x7b\x31\x45\x22\xdb\x56\xaf\x67\x48\x48\x59\xa2\x78\x8c\xf8\xba\xe6\xb5\xfa\xe1\x42\xed\xfb\xd3\x61\x3a\x0a\x24\x63\xc3\x08\xed\x7b\x5e\xc2\x16\x8a\x33\xa6\x14\x3b\x1e\x62\xd3\xa5\x06\xed\xab\x25\xff\xb8\xf3\xda\x33\x5f\xfc\x18\x8d\xde\x97\x46\x70\xe7\xd5\xc7\xca\x89\x24\xba\x01\x3a\x08\xb4\x13\x4c\x6d\xe1\x70\x65\x5a\x30\x36\xab\xc9\x3c\xd6\x8a\xb9\x50\xfe\x6b\x75\x80\x85\x7a\x9f\x0d\x0b\xd3\x40\x49\xa4\x6b\xf8\x71\x74\xa5\xfa\x94\x28\x30\x18\xc4\x6e\x9e\x8f\xab\x23\x29\xe5\x46\xba\x46\x57\xa7\xba\x7d\x75\xf8\xf7\xa7\x1e\xa3\x95\x52\x50\x88\x0a\xdf\x02\x14\x70\xd3\x63\x38\x53\x46\x03\xe4\x32\xdf\x6d\x76\x8b\xfb\xa1\xa9\x4f\x19\xe3\x86\x4b\xc8\x49\xa6\x2e\xab\x42\x0d\xb5\xf8\x58\x1a\xa6\xc2\x51\x18\xdd\x55\x65\x67\x0d\x37\xdf\xfc\x4d\x85\x5c\x07\xa6\xf1\xbd\x7e\x83\x76\x7f\x75\xfa\x98\xd4\x94\xdd\x38\x15\xa3\xfd\x2b\xaa\x1f\x50\x5f\x0d\x4a\x77\x69\x94\x19\x74\x42\x0b\x4d\xbb\x3f\x42\x2d\x1f\xb4\x4b\x6b\xa6\x31\x53\x29\x19\x8a\x96\xde\x56\x3f\x4c\xe3\xf9\xec\x44\x4d\x13\x92\x60\x8e\x02\x7e\x5e\x03\x60\x1d\xd4\x5d\x29\x89\x4c\x07\x13\x74\x0e\x3c\x1a\xfd\xe7\xed\xea\xfb\x7a\xe3\x8f\x4b\x8d\x84\xf5\x28\xba\xe5\x55\x28\xdd\xd1\x34\x0a\xf1\x2d\x79\x85\xdf\xb9\x6c\x9d\x1b\xcb\x53\xcc\x52\xae\x56\x8b\x79\x60\x44\x9a\x31\x6e\xe6\xae\x21\xb0\xb3\x1f\xb2\x9e\x8e\x8a\xb4\xd6\x7e\xd4\xf6\xe3\x20\xaa\x62\x64\xf7\xd3\x2c\x49\x6d\xaf\x9c\x15\x3f\x9e\xef\x3d\x60\x69\x06\x7a\xd8\xed\xed\x6a\xc3\xb3\x2b\x25\x15\x71\x8a\xd2\x08\x65\x55\xfe\x07\xea\xca\x83\xca\x0d\x7d\xdb\x75\x55\x2f\x8e\x13\x00\x69\x2a\xd2\x10\x17\x8e\xe9\xcf\xfa\x7f\x88\x7b\x97\xe6\xc6\x71\x2d\x6b\xf4\xbf\x7c\xa3\x1a\x9c\x01\x09\x02\x20\x79\x67\xb2\x2c\x3b\xdd\xe9\x87\xda\x92\x33\xab\xba\xa3\x43\x81\xc7\x86\xcd\x4e\x8a\xd4\x21\x29\xdb\xaa\x5f\x7f\x83\x1b\x00\x5f\xa2\x9c\x15\x5f\xdc\x88\x3b\x39\x59\xc7\x84\xf8\x04\xb0\x5f\x6b\xaf\x75\xbd\xf9\xb1\x7a\xdc\xbe\x3c\x7b\xf3\x96\xc8\x54\x84\xa9\xef\x10\xfd\xcf\x63\xd9\x0c\x2b\xe8\x89\xa2\x89\x4d\x61\x7a\xdb\xa0\x2d\xe9\xc1\x4b\x91\x35\xe4\x0a\x1a\xd1\x0d\x04\x82\xf0\x06\x2b\x56\x36\x59\x1c\x1a\x00\x73\x02\xb7\x95\x4b\x2a\x85\xbf\x09\x32\x13\x90\x9c\x58\x04\xcd\xb1\x86\xab\xa3\xaf\xb2\x24\x26\x4c\x84\x45\xff\xe8\xab\xdc\x61\x80\x7d\xce\x3c\x0d\x62\x1d\x87\x9d\xdb\xdc\xfd\x35\xb1\x64\xec\xca\x0a\xa0\x8f\xdf\x4e\x1a\x12\x8b\x8a\x72\x6f\xdf\x26\x19\xfd\x31\x1e\x22\x9f\x8a\x9f\x58\xe7\x90\xe5\x34\x54\x21\xf6\x04\xe9\xec\x7d\xfe\x8b\xa5\x84\x80\x67\xe3\x5a\x8a\x06\x5e\xcb\x2a\x3b\xd7\xac\x9a\xfe\x86\x1b\x8c\xcd\xd7\xd9\x27\xe4\xf5\x83\xe8\x22\xb7\x94\x18\x46\x71\xb9\x67\xef\xf0\x80\xed\x35\x93\x34\x7a\x1a\x51\x8d\xf5\xce\x97\xc3\xeb\x97\x4a\xe0\xa3\x49\x98\x46\x09\xd3\x43\x7d\xbd\x9f\x59\xf3\x66\x8b\x69\x85\x82\xa5\xc8\xf3\x5b\xd1\x3d\x73\xa4\x15\x36\x94\xec\x30\xa0\xae\x07\x52\x63\x51\x1a\x19\x19\x58\xd7\x4c\x1f\x15\xec\xcb\xe2\x02\x21\x43\x94\xd2\x30\x46\x8f\xe0\xfe\xe9\x76\xf7\x08\x1f\x57\xe7\x11\x97\x1f\x98\x32\x2c\x46\x64\xf5\xba\x02\x31\xc1\x20\xa6\x0c\x08\xc6\xc0\xdb\xf5\xfd\xe2\xaf\x2f\x9a\xee\x86\xc9\x9b\x94\x87\xc4\xf2\x73\xbb\xa6\x9a\x67\xd0\xb0\x3f\xb4\xf3\x7a\x3d\x94\x42\x8c\x52\x4e\xad\x11\x68\xca\x2b\x8f\xea\xfd\xd7\x0c\x80\x39\xe5\x8c\x7a\x4a\xa9\x75\x59\xbc\xbe\x8b\x7c\xfb\xf9\x0c\x4d\x95\xc1\xbb\xc8\x17\x16\x8a\xd9\xdf\x73\xac\x13\x8f\x62\x7c\x29\x8e\x35\xe8\x39\x12\x99\x28\x4d\x02\x1e\xb9\xca\xd7\x6a\x0f\xd5\x2b\x14\xcd\x37\x91\x37\x83\x74\x50\x9a\x04\x36\x56\x43\x2d\x9f\x41\x95\x2f\x4d\x12\x86\x3b\xff\x32\x2f\x8f\xda\x4b\x42\x5d\x24\x17\x9d\x4c\x86\x44\x26\xa9\x1c\xf4\xae\xda\x45\x31\xff\x75\x52\x16\x61\xaf\x1f\x36\xed\xf4\x17\xf0\x47\xc1\xb2\xcc\xfe\x57\xf9\x26\xaa\xad\x4f\xa7\xa7\x82\xd8\x3f\xeb\xaa\x3c\xb4\x3b\xc9\x80\x92\x25\x4a\x85\x6b\xc1\xaf\x00\x43\x84\x99\x12\x43\x2a\xe2\x00\x3d\x56\x27\x94\xfc\x0c\x35\x54\xef\xe0\xe9\x1c\xba\x13\x09\x50\x7c\xc4\xd7\x15\xc5\xdd\x31\x19\x09\xb4\xac\xb9\x98\x9e\x5b\xc7\xd4\x91\xb5\xfc\x28\x3b\xeb\x9d\xca\x30\xd0\x48\xa2\x2c\xea\x06\x7d\xe8\x9d\x08\xbb\xb3\x69\x19\xe0\x6e\xe5\x04\x86\xe6\x28\x28\x27\xaf\x4d\xab\x14\x03\xdd\x6f\x4f\x2f\xcf\xfe\x2c\x10\x86\xd4\xa1\xd5\x37\xab\xe5\xd3\xe3\xf5\x6e\xb3\x5d\xad\xad\xb6\xe2\xfa\xfe\x6e\xd5\x0f\x04\x0d\xae\x10\xd3\xe4\x80\xc5\xbe\x6e\xc6\x9a\x98\x7a\x58\x98\x25\x13\xea\x76\x33\x93\xda\xe2\x60\x8f\x3a\xc0\x4e\xa4\x76\x73\x9d\xff\xb4\x46\x10\xc4\x56\xfc\x58\xaf\x26\xd8\xde\xd4\x08\xe5\x41\x25\x7d\x87\xb7\x3d\x26\x02\xae\x98\xa5\x6b\xd4\x77\xcb\x27\xcc\x2e\x75\x87\x00\x2c\x93\xe3\xfb\x04\x8f\x34\xba\xb0\x08\x13\x4b\x67\x5d\xbe\x43\x65\xf2\x89\xf6\x4b\x7b\x38\xee\x65\x80\x9c\xb7\x7b\xe1\x44\x4a\x73\xdd\x11\x9b\x49\xa8\x9e\xcc\xf7\xa2\xfc\x28\xd6\x55\xeb\x38\x36\xa7\xb3\x7b\x0f\x75\x80\xee\x6d\xeb\x64\x5a\x06\xfc\x61\x61\xd0\x27\xa2\x04\x89\xc3\x80\xd9\x97\xfc\x0b\x6c\x3f\x9a\x63\xee\x9f\xdc\x2a\x0d\x6c\x8b\x88\xe5\xc2\x33\x55\xb9\x97\xf3\x20\x4a\x41\x03\xcb\x7d\xbc\xa8\x9a\xcc\x64\x2a\x13\xf9\x23\x1c\xab\xf6\x7f\x87\xd5\x70\x41\x03\x10\x6c\x84\xb4\x1a\xbd\x60\x9a\x30\xf4\x06\xb5\x95\x6a\x3c\x3d\x03\xe6\x02\x26\x97\x6a\x23\x42\x44\x2f\xb5\x36\x29\x17\xd9\x98\x20\x32\x12\xd4\x91\xe9\xa1\xd3\x87\x6d\x47\x96\x8a\x6e\xd7\x6e\x63\xa7\x1b\x80\x75\x59\xe6\xbb\xcc\x2a\x30\xa9\xb2\xef\xd2\x11\x54\x8a\x68\x90\x15\x7b\xcb\x3a\x2f\x57\xb0\x30\x45\x1f\xcf\x89\x17\xdb\x9b\xdf\x0c\x70\xab\x82\x71\x16\x0c\x0a\x31\x78\xec\x41\x7c\x0e\xb5\x2c\x23\xc1\x05\x8d\x7a\xf8\x17\xb4\x1f\xe9\xfb\x5f\xcb\xc9\x13\x72\x15\xe3\xa0\x5d\x56\xdf\xe9\xd5\xa7\x6d\x3c\x19\x7a\x67\x22\xe6\x14\xdb\x14\x9a\x0c\xaa\x70\x08\x89\x12\xb1\x4c\x02\xda\x6b\x1f\x8a\xcf\x5b\x51\x1f\xce\x58\x1a\x23\x11\x83\x53\xf5\xf4\x79\xe9\x3c\x9f\xdc\x45\x12\x6a\x1a\xf8\xbc\xf3\xd5\xad\x2f\x05\x88\x84\x58\x44\xb2\xb2\xfd\xd8\xcf\x30\x09\x96\x45\x1a\xa6\xdc\x7e\xc5\xcf\x2d\xd4\xcd\x63\x59\xed\x45\xfe\x8f\x48\x64\x22\x91\x46\x31\xc2\xdc\x37\x7f\xdd\xff\xb8\xeb\x5e\x6d\xaa\x39\x66\x4e\x17\xfa\x3d\xab\xa1\x5a\x8a\xfa\xe0\x25\x0d\xdd\x08\x11\xa6\xc3\x50\xc3\xa3\xf0\xc7\x37\x26\x99\x25\x92\x40\xfe\x07\xd4\x5b\x38\xf6\x6c\x47\x91\x90\x82\x05\x36\x31\x66\xa0\xaa\xa0\x5a\x0d\xfd\x30\xa1\x43\x1e\x5b\xb2\xe6\x4e\xa2\x66\x75\xc8\xea\xf2\xdc\x47\xf1\x3f\x90\x16\xbd\xd9\x93\x02\xbf\xbe\xe6\xe0\x25\xf8\xba\x39\x07\xc4\xa0\xe6\xaf\xf8\xb8\xc4\x3e\x13\x09\x48\xac\xdb\x88\x9f\xa2\xaf\x31\xc9\x20\x34\xb8\xea\xb2\xa2\xf1\x9b\x4d\xbb\xd5\x8d\x3f\xb5\x0c\xa4\x31\xd4\xeb\x74\x54\x75\x59\x88\x7c\xd3\xae\xfc\x85\x6a\x8e\x22\xf7\x5d\xc2\xb3\x8e\x95\x0c\x14\xe7\xa1\xef\xaf\x2f\xe0\xe5\x60\x5f\xca\xce\x35\x28\x4c\xae\x14\x6a\x0b\x1c\xcf\xcb\xd7\x55\xad\xc4\x01\xbe\x89\x46\xbd\x79\x4e\x87\xde\xf0\x4b\x12\x71\x24\xb7\x3c\x60\xdb\xe4\x6c\xf2\x53\x12\xaa\x95\xdb\xfd\x36\xc7\x7d\x3d\x6c\x07\xf5\x23\xd2\x28\xe9\x89\x0d\x2d\xa7\xa0\x63\x84\xf2\xb1\x99\x24\xca\xba\x36\x15\x08\xdd\x6e\x4e\x2a\x1f\x53\x93\x44\x32\xa2\x21\x46\xd4\xb6\xdd\x75\x83\x14\x93\xfe\xd7\x91\x31\x5e\x53\xdc\xe1\x66\xcb\xa5\x17\x15\xdd\xbe\x8d\x9b\x19\x25\x25\x0a\xcb\xf0\xe3\xbc\x9e\x83\x33\x24\xe3\x89\x2e\xa9\x90\x08\xc2\xbe\xba\x5a\xcf\x0a\xbd\xfb\x61\x32\x88\x2d\x20\xed\x7e\xb7\x58\x7b\x68\x86\x6c\x3d\x40\xac\x06\xd8\xe7\xee\x4a\x12\x92\x13\xa9\x22\xdf\x3a\x6e\xcb\x8a\x93\x2a\xb6\xe4\x4c\x13\x67\xa7\x45\xf5\xda\x41\x76\x64\x12\xa4\x58\xfe\xfd\x59\x56\xbf\x7e\xb4\x41\xfa\xa9\x3b\xa2\x34\x0a\x72\xec\xe0\xdf\xc7\xec\x70\x5d\x7e\x14\x83\x7e\x82\x7f\x0d\xd7\x90\x4c\x09\x51\xc2\x06\xd5\x6b\x51\x68\xb1\x7a\x5e\x92\xe0\x1f\xf1\x27\x44\x32\x65\xa9\xee\xb9\xd3\x77\x1a\xde\x27\x77\x9e\xca\x04\x95\xbd\x9d\x63\xe7\x6c\xd6\x4d\x59\x3d\x39\x9e\x58\x7f\xc3\x52\x11\x94\x4e\x7b\x6d\x1f\x43\xd4\xf5\x08\x04\xfb\xe5\x06\x24\xa5\x49\x30\xdc\x7a\xd9\x2c\x06\xf9\x66\xa9\x22\xa3\x3a\x0e\xb7\x3c\x47\x59\x9c\x87\xac\xb8\x15\xb5\x6b\x89\xf7\xe3\x78\xc8\xbd\x1c\x99\xa5\xd8\xe9\x23\x0f\xa9\x15\x67\xcc\xd7\x36\xf7\x22\xf3\xe8\xc3\x6d\x96\xe7\x53\x4e\x8f\x48\x42\x60\x35\xe4\x6c\x2f\xcd\x4c\xb7\xa8\x04\x43\xd1\x7d\x2e\x8e\xfb\xd6\xd7\xeb\xae\x63\x98\x4c\x45\x17\xcc\xf6\xca\xc1\x93\xd7\x69\xb4\xa1\x9d\x16\xf8\x06\xec\x90\xf1\x15\x0c\x04\x18\x7c\xef\xea\xe3\xde\x76\xcd\xaf\xa1\xfa\x55\xbb\x86\xb1\xc8\x97\xfe\x55\x10\x2b\x2e\xba\x9a\x02\xae\xfa\x31\xb2\x52\x05\xc2\xd1\xf5\x78\x1f\xfb\xae\x76\x6d\xf8\x6e\x40\x98\x32\x4c\x1b\xb7\x01\x59\x59\xf5\x1b\xa4\x0a\x75\x82\x7b\x85\x29\x2b\x1b\x36\x3e\x15\x57\xf0\x26\x72\x33\xcd\xd2\x2a\x92\x68\xcc\xf6\xc0\x3b\x14\x0d\xda\xcd\xc9\x1b\x53\x44\x51\x4e\xfc\x46\xfa\xec\xe2\x03\x7f\x21\x4a\x43\x70\x89\x69\x34\x34\x65\x75\x9a\x91\x85\x8c\x14\x4d\x6d\x67\xd8\x75\x99\xe7\xa2\x1a\x40\xe2\x14\x0b\x24\x36\x56\x95\xed\xf4\xf0\x36\x68\xb4\xdb\x28\xce\x15\xd2\xc8\x14\x65\xb3\xfa\xf7\x51\xe4\x7f\xcc\xf0\xf7\x8c\x32\x79\x8a\x27\x10\x59\xdc\x5a\xa1\x20\xbf\x15\x7b\xcb\x19\x69\x93\xf5\x35\x36\x62\x60\x9b\x97\x1b\x9e\x70\x89\xd5\x85\x85\x12\x1a\xf6\x63\xa6\x5b\x3f\x24\x91\x91\xe3\x95\xf5\xdb\xe5\x2c\x08\x53\x25\x60\x2c\x5f\x05\x0a\x25\x5d\x9d\x10\x4c\xff\x4d\xf8\xdd\x46\xa5\xda\x20\x2f\xef\x21\x3f\x36\xa5\xaa\x06\x07\x8c\x42\xca\xd9\xae\x31\x78\x7b\x19\x4b\x3b\xbe\xa4\x08\x63\xcf\xed\xff\xb2\xb9\x5e\x6d\xbf\x0d\x83\x2b\x25\x23\xf0\x50\x8c\xc9\x3c\x6b\x23\xfe\xb9\x67\x95\x3c\x4e\x3d\x37\x19\x3a\x32\x7d\xb0\xa1\xa4\xb1\x44\xdd\x6d\xfc\xfe\xb4\xbe\xc4\x46\xd2\xd7\x1d\x87\x1d\x9d\xa3\x4f\xa4\x12\xcb\x93\xd8\x67\x4d\x5b\x23\x3d\x7e\x30\x4d\x34\xba\x4d\x05\x7c\x36\x0e\x5d\x34\x19\x40\x03\xac\x26\xbb\x69\x79\xb5\x5d\xce\xdb\x04\x65\x22\x40\x69\x84\xbc\xfc\x80\xda\x1b\x4f\x1b\x44\xf6\x75\x05\x1d\xc4\x94\x59\x00\xc2\xeb\x9b\xe7\xfa\xf4\xc7\x48\x10\xa3\x87\xdc\xe5\x22\x2d\x22\xaa\x3b\x1c\x01\xfe\x14\xb1\x31\x64\x29\x7c\x06\x59\x47\x82\xf8\x82\xf7\xb2\x02\x9d\x35\x57\x65\x31\x31\x2f\x9a\x02\x95\xcc\x5a\x00\x94\xfe\x99\x22\x50\xce\x3e\xb9\x66\x51\x8a\xe9\xd1\x07\x78\x15\x43\xa7\x4e\x33\xb0\x89\x06\xd7\x79\x36\x9b\xe8\xd6\x0c\x14\x42\x6f\xd7\xf9\x69\x54\xe7\xd4\x9c\xda\x4e\x71\x14\x15\x7e\xee\xfe\xca\x12\xdd\xcb\xe5\xdd\x3b\x65\xd7\xac\x2c\xc6\x0c\x62\x7e\xb4\xb1\xb5\x25\x4b\xa1\xf5\x1d\x4e\x13\x27\x45\xc7\x52\x53\xcb\xa9\xbb\xb9\xc4\x0c\x12\xe9\x84\x44\xc8\x16\x66\xa7\xc7\xd3\xf3\x62\x79\x7f\xf7\x5f\xab\xdd\xed\x62\xe3\x54\x8e\x27\xc3\xe3\x04\xc3\xb3\x2d\x54\x95\x98\xa9\xa0\xe9\x24\xa1\x98\x72\xcd\xea\xc5\xbb\xc8\xf2\xd6\x21\x9b\x10\x57\xf9\x81\x46\x23\xe4\x1d\xb7\xbb\x85\x52\x50\xb7\x9b\xda\x06\xaa\x1e\xf8\xaa\x53\x4a\xad\xec\x87\x30\xf0\x20\x9a\xb7\x85\x3e\xa3\x51\xf3\x23\x55\x84\xe6\xd7\x13\x7a\x9e\x93\xaa\x4e\xf4\x66\x22\x2d\x24\x09\x3b\x94\x00\xa2\xed\x97\x79\x59\x7b\xd3\x30\x7f\x19\xc5\x19\x06\x9d\x1f\xd9\x01\xce\x9a\x23\x27\x43\x13\x81\xfb\x13\x7c\x56\x7d\xa5\x42\x2b\x49\x35\xe9\xdd\x84\x81\x14\x65\xa4\x15\x08\x4c\x40\x3b\xe3\xbc\x99\x91\xc9\x9a\x03\xcf\x68\x4d\x78\x98\x8e\x02\x57\x47\x61\xdd\x1d\x97\x18\xb2\xb9\xf2\xf5\x79\x2f\xb4\xd6\x91\x10\xce\xba\xdc\x5e\x6d\xa7\x07\x15\xc1\xbc\xa8\x97\x4c\xbe\xd0\x61\xe5\x46\x43\x1a\x61\x8a\xc2\x86\xa9\x5e\xe9\xac\xdd\x01\x91\x47\xfa\x50\x66\x33\x4f\xe5\xff\x1d\x9f\xc9\xa4\xa4\x17\x73\x9f\xbe\x6d\x37\xc8\x44\x01\xe6\xc6\x6f\xef\xae\xbb\x77\x6c\x92\x18\x83\xdd\x37\x28\x1a\x91\xd5\x65\x5e\x76\x47\x54\x84\x59\xe7\x4d\xa7\x16\xdb\x1d\x90\x08\x0f\xdc\xa1\xb0\x43\xf6\xef\xa3\x2d\x9f\x07\x93\xc9\x6d\xda\xeb\x39\x87\x7d\x97\x71\xba\x13\xd8\xa2\x6e\x8f\x42\x18\x31\x63\x1d\x0d\xcb\x27\x52\xfe\xca\x66\xc8\x1c\x47\x67\x84\x90\xea\xd8\xc5\x3f\xf7\x5d\x85\x08\x93\x60\x75\xeb\x79\xdd\xda\x8a\x70\x77\x05\xc3\x3d\x81\x36\x82\x0a\xca\xea\x01\x1a\xa1\x45\x23\x9e\xcc\xb7\xac\x6e\xca\x2a\x53\x22\xf7\x7f\x9b\xa3\x72\x8b\x80\x04\x96\x6f\xa4\xf5\x57\x9e\xe1\x70\x6c\xc6\x30\xb3\x33\x9c\x2c\x90\xc0\xa6\xfe\x7d\xac\xf8\x52\xac\x45\x86\xcc\x69\x53\x46\xba\xc9\x85\x52\xcb\x12\x56\x7e\x14\x9e\x16\xf9\x4e\x9f\xa3\x1d\x81\xa4\xd6\x73\xfe\x71\x77\xb5\xda\xae\xa1\x1a\xd6\x09\x80\xc8\x50\xc3\x08\xf7\xb0\xa8\x64\xd6\x4c\x08\xe2\x22\x20\x0a\x7c\x53\xa6\x4b\xc0\x15\x7a\xc4\x6c\x16\x41\x14\x12\xea\xd6\x3b\x8a\xb9\x75\x7f\x17\x76\x27\xf7\xee\xc0\xaa\x79\x5b\x97\xe5\x85\x7a\x2a\xd0\x84\xe3\xdd\x1e\x1a\xb5\x93\x73\xb9\x65\xa0\x2a\x50\x9e\x16\x15\x71\xc5\xd9\xdf\x13\x4e\xfb\x08\x38\x8f\x65\xd4\xeb\x1c\xa2\x68\xfd\xfc\xf5\x78\xcc\xc3\xc0\x43\x24\x6c\xc2\xd6\x1d\x89\x03\x1e\x3a\xef\x61\x2d\xb2\xc2\xca\x2b\x2e\x1a\x8b\x1a\x1e\x9f\x24\xe6\x2a\x18\x30\x26\x76\x67\x48\x62\x34\x87\x37\x77\xdb\xa1\x75\x82\x24\x0a\x71\x51\x3d\xc2\x87\x6d\xed\xab\xca\xfd\x84\xf8\xe6\xc2\x74\x4e\x78\x80\x76\xed\x7a\x75\xb3\x78\xb9\xdf\x0e\x79\x7d\x20\x91\xdc\x6a\x01\x43\x53\x1d\xf7\xaa\xcc\x0a\xa7\xc2\xe0\x8e\x8b\x30\x8a\x79\xe7\x3f\x39\x72\x8b\x2e\x64\x6e\xaf\xc3\xa9\x1f\x4a\x2d\xf4\xc0\x61\xc6\xc3\x91\xc0\xf4\xa4\xb7\x0a\x24\xef\x1b\xf8\xb7\xdf\x76\xeb\xe7\x15\x0a\xc5\x6f\x7f\xfa\xf6\x7d\x90\x32\x90\x51\x47\xf2\x54\x67\x1a\xaa\x11\xe1\xb9\x1f\x06\x02\xb3\xe7\xa8\x04\x51\x16\x4a\x34\x0f\xb0\x2f\xab\x13\x45\x02\x4d\x7f\x32\x15\xda\xc0\x1f\xe5\xe6\x26\x26\x19\x14\xe3\x68\x73\x5a\x47\x6b\x08\xad\xf9\xcd\xff\x8e\xef\x43\x49\x0b\x01\xb8\xde\xac\x5f\xba\x2e\xc9\x69\x28\x0d\x46\x59\xb1\x5c\xbf\x6c\x2d\xbc\x7a\x20\xfa\x1e\x99\x90\x52\x84\x63\x3d\xdd\xdc\x6c\x56\xdb\x30\x8d\x83\x20\x0c\xc2\xee\xa8\xd4\x5d\x7f\x5c\x79\xec\xb3\x4d\x26\x04\x40\x88\xe3\x73\x1b\x72\x57\x88\x24\xb0\x89\x87\xf1\xfb\x32\x84\xc4\x5e\xaf\x76\xc8\xcc\x70\x01\x2a\xe7\x7f\x24\x92\x30\xf2\x5b\x74\xbd\x68\x7c\x82\x66\x72\x6a\x4d\x70\xe6\x6e\xfe\x6b\xf1\xfb\x9a\x94\x89\x42\x89\xbc\x06\x0d\x88\xfd\x6c\x32\xd9\x44\x5c\x63\xcd\x62\x5d\x95\xcf\xa2\x11\x23\xc8\xa6\x1f\xa2\xb5\x25\xa6\x40\x3d\x9c\x7e\x45\x8f\x95\x68\xfe\x7f\xfa\x4f\x37\xd7\x0d\x25\x14\x21\x7c\xef\xed\x4d\x9e\xd6\x55\x59\x9a\xdf\xde\xe7\xff\x07\x97\xef\xd8\x59\x0c\xd5\x56\x4b\xe3\x71\xf1\xe0\x17\xbe\x61\x22\xb4\x34\x11\x36\xaf\xbc\x15\xbf\xa0\x7c\x1f\x74\x7a\x8c\x3f\x05\x53\x01\x86\x94\xb9\x38\x16\xea\x6d\x2a\xdc\xd6\x1e\x0f\xd1\x83\x2a\xe0\xb3\x73\x71\x0c\xe7\x92\xda\x75\xf5\xf1\x9f\x47\xa8\xf1\xbb\x0d\x8d\x58\x1b\x4c\x61\xb9\xe2\x80\xcc\xba\xa3\x4e\x5d\x13\x07\xe0\x34\x37\xab\xe6\xb4\x13\xdd\x9f\x55\x8a\xad\x65\xb6\xe4\xed\x85\x1b\xfb\x44\xa1\x89\x81\xf0\x5e\x5e\xfb\xc1\x6d\xc1\x75\x7d\xec\xf6\x68\x93\x80\x50\xd0\xed\xf3\x98\xb2\x1d\x3f\x6d\x9a\x86\xa2\xf3\x82\xd7\x65\xe3\xb1\xfe\x46\x28\x70\x72\xa6\x0d\xee\x81\x96\xc4\xf2\x5c\xd3\x28\x32\x02\x0c\xda\xd9\x87\x4c\x55\xe5\x55\xd6\x0c\x82\x7e\x23\x59\xea\x1b\x4b\x90\x7a\x01\x73\x43\xdd\xc1\xc4\x84\x3e\xe5\x83\x4c\x7b\xeb\xa7\xfb\xbf\xba\x83\x52\x58\xa6\x39\x97\xab\x9f\x69\x35\x36\x2a\xb4\x94\x45\x36\x04\x77\x58\x8c\x8e\x4b\x3e\x32\x2a\x22\xca\x35\x9d\xff\xbc\x1f\xb4\x61\x19\x95\x84\x4a\x0e\xe1\x2d\x3f\x32\x71\x25\xd4\xaf\x8b\x61\x8a\x51\x82\x63\x8a\xe6\xbe\x7c\x1d\x56\xd5\xbe\x4c\xda\x19\x25\xac\x2a\x61\x5d\xe6\xda\xd6\xf3\xfd\x01\x93\x4a\x27\xf6\xe5\xd0\xf3\xae\xed\xe4\xc9\x0c\xc1\x33\x46\x73\x8d\x59\x77\x64\xef\xc9\x1c\x9f\x19\x9d\x5c\x45\x1b\x00\xdb\x9a\xd2\x75\xac\x1a\x08\x34\xe2\xe2\x8f\x35\x54\xcb\x0a\xd1\xb4\x67\x11\x90\x81\x38\xc0\xb7\xe0\x6b\xc8\xbd\xa3\x67\x4c\x00\xd8\x20\x97\xb5\xb3\x09\xab\x90\x53\xd1\xcc\xb9\xed\xce\x3a\x6f\xe3\x8b\xb4\x9b\x1f\x1b\x38\x46\x33\xea\x36\x91\x31\x94\x20\x81\x48\x7b\x17\xf9\x52\x54\xda\x86\x61\x8e\xd5\xb6\x53\x20\xf5\xa3\x85\x42\x67\xb9\x71\xb7\x4b\x83\x80\xa5\x1d\x63\xf1\x57\x1c\x30\x34\x08\x52\x40\xa7\x7e\xbb\xda\x6c\x77\x0f\x4f\xd7\xab\xee\x14\xd2\x02\xc0\xd0\x2f\x80\x42\x6f\xc4\x7e\x0c\x61\xed\x7b\xa6\x47\xef\x9f\x06\xa1\x26\x78\x71\xab\xb9\x76\x39\x61\x4d\x83\x10\x58\xc2\x06\x9e\xde\xee\x50\x65\xef\xa2\x71\x5c\x75\x7e\x61\xd3\x20\xe2\x32\x54\xbe\x04\x8b\x4b\x0e\xc1\xb6\xfe\x68\x1a\x60\xa7\x15\x5a\xa8\x65\xb9\x3f\x40\x83\xe0\x40\xcb\x7f\x79\xec\xd1\x96\xed\x50\x41\xfa\x7e\xdd\xc7\xb2\x78\x86\x03\x88\xa6\xdd\x07\x7e\x1c\x8c\x77\xa9\xdc\x27\xbc\xa4\xa7\x3c\xda\xe2\x69\x40\x0d\x41\xeb\xbb\x6f\x97\x7b\x0f\x82\xa3\x01\xa3\x14\xd3\xeb\x45\xd9\x64\xe6\x64\x33\x72\x1b\x70\xf9\xe0\x6e\x10\xb3\xa2\x2c\x8e\xf5\x40\x9d\x09\x37\xe1\x14\x1a\xbc\x0b\xce\x13\xc4\x0f\xb6\x4e\xcf\x35\x78\x6f\xc3\xa1\x95\xfc\x59\x63\x2d\xf1\xab\xde\x7e\xfb\xde\xfd\x09\x00\xdb\x48\xdd\x53\x6d\xcb\x45\x7e\x78\x13\x12\x1a\x47\x0f\x33\xb4\xfa\x34\x48\xa2\x04\x4b\xeb\x55\xf6\xfa\xd6\x50\xfa\xc7\xf8\xbb\x25\x3c\xc1\xb9\xe1\x0d\x88\x2f\xd7\xcd\x19\x10\x1a\xa4\x51\x1c\x26\x7e\xed\x8c\x61\x2b\xe3\xd3\xa6\x54\x04\x7a\x24\x3c\x08\x70\x53\x56\x3e\xaa\xf9\x0a\xc8\x41\x83\x14\x24\x96\xfd\xde\x44\xed\xcb\x66\x63\x0f\x8c\x06\x82\x26\x08\x46\xd5\x20\x9a\xb7\x6b\xd1\x88\xdd\x7b\xe4\x5f\x8f\x48\x53\xa1\xbc\x36\x6e\x0d\x55\xe3\x19\x84\x1f\x8f\x7b\x97\x4f\x9f\x80\x8b\xc6\xf7\x2e\x80\xa2\x2f\xba\x6b\xff\xbc\x2d\xad\x07\x3a\x1e\x22\x55\xc4\x88\xcf\x6a\x5b\x2e\xc2\x63\xdd\xcd\x16\x15\x08\x7c\xa7\x2f\x9b\xeb\x5b\xb1\x97\x39\xd6\x8f\xba\x18\x80\x06\x8a\x11\x2c\x76\x1e\x07\x04\xe4\xbf\x27\x78\xa6\x81\x4a\x84\x76\xdc\xd0\xb7\x50\x40\x9d\xd5\x4b\x61\xd9\x97\xba\x33\xeb\x08\xab\xbb\xfb\xac\x18\x52\xaa\xde\x15\x3f\x21\xeb\xc6\x80\xed\x80\x73\xa4\x98\x1a\x8a\x26\x6b\x4e\x77\x7b\xf1\x0a\x2f\xcf\xf7\xb3\xb9\x00\x1a\xe8\x88\x60\xf0\xb1\xcf\x8a\xb1\xd8\xbf\x3b\x0e\x81\x4c\x3d\x25\xc9\x6d\x29\xf2\x67\x10\xaa\x4b\x4e\xd3\x00\xb4\xed\xde\x77\xe4\xf8\x43\xdd\xc3\x09\x91\xa5\xfb\x81\x09\x63\x64\x7e\x3f\x54\x60\xb2\x4f\xd0\x67\x55\x40\x1a\x18\xa9\x89\x74\x2d\x70\x28\x86\x37\xde\x79\x69\x18\x50\x42\x2d\x94\xf1\xa1\x2c\xe0\xb4\xe9\x1c\x1d\x1a\x06\x69\x80\xb6\xfb\x87\x28\xb2\xe6\xe4\x27\xfd\x0c\xc3\xf1\xf0\xa6\xc2\x40\xc4\x86\xf8\xa8\xb0\x8b\x8a\x1c\x4d\xc5\xf4\xe2\xc6\xaa\x21\x5a\xf3\x73\x03\x30\xdb\x7c\x49\x43\xa2\xb8\x6f\x3e\x78\x3e\xe6\x9d\x6e\x9e\x3f\x6a\x12\xac\xf7\x5b\x9f\x73\x46\x0c\x6c\x34\x41\x42\x62\x94\xa7\x91\xcb\x0a\xc0\x36\xa3\x91\x0d\xeb\xff\xd7\xed\x85\xb3\xff\xe7\xbf\xd9\xff\xcc\xfd\x97\xbb\x46\x44\x28\xb3\x55\xfe\x76\x97\xc2\x56\xcb\xf2\x82\x6b\x41\xc3\x88\xc6\x68\xbf\x5b\x5b\x5d\x2f\x45\xd1\x6d\x2f\xfe\x38\x27\xd8\x2d\xf7\xb0\xf8\x73\x67\x49\xe0\x90\x66\xa6\x3f\x9c\x70\xe2\x49\xc6\xac\x28\xd0\xf8\xfd\x50\xca\x11\xcb\xfb\xfc\x9d\x06\xff\xe5\x7f\x45\x65\x80\x7b\xcf\xe6\x65\x08\x4b\x6e\xff\x1e\xc5\x69\x4f\xd3\x31\xc5\xd0\xd2\x90\x42\x80\x5e\xe9\x75\xb6\x17\x3d\x2a\x8d\x86\x2c\x89\xb0\x0e\x5a\x1c\xf7\x1e\x03\x30\x6d\x15\xa0\x21\x4b\x39\x73\xcc\xe3\x59\x9e\x63\xd3\xd3\x26\x7b\x6d\x3d\x57\xcc\x78\xf8\x51\xc2\x32\x5e\x66\x45\xd6\xfc\xcc\x9a\xb7\xcd\x5b\x76\xa8\xbb\x83\x32\x01\x27\x37\xb6\x5c\x7e\xdb\x81\xce\x9a\x5d\x14\xfa\xa3\x5c\x12\xee\x10\xbe\xd5\xe2\xcc\x67\xe9\x06\xd1\xc4\x9b\x57\x65\x85\xc3\xa7\xbd\x96\x34\x8c\x23\x16\x5b\x1e\x20\xc4\xa9\x0e\x69\x47\x68\x98\x86\x1c\x45\x8a\x2c\x75\x86\x38\x1c\x40\x4f\xf0\x71\x34\x4c\x29\x41\xaa\x54\x1f\xff\x2e\x8f\x48\x55\x7e\x46\x58\x41\xc3\xd4\xd8\xda\x5a\x27\xbc\x61\xe9\xcc\x67\xf7\xb7\x50\xa4\xd4\x8b\x9a\x6f\x9a\xf2\x30\xdb\x9c\x44\x43\x19\x25\x8e\xb7\xad\x59\xe3\xee\xb0\xbe\xc8\xb8\x40\x43\x99\x2a\x2c\x79\x1d\x0b\x47\xeb\x3c\x87\x39\xa0\xa1\x0e\x18\x76\x42\x9a\xec\x73\xea\x63\x8d\xcf\xa7\x45\x84\xe5\x7b\x53\xee\xcb\xc8\x6f\x6f\xa1\x06\xcb\xbb\xda\xee\x7e\x0b\xd9\xbd\x4a\xe0\x21\xbe\xa6\xbd\xe5\xab\x1d\xd1\xe9\xd0\x10\x62\xcd\x7a\x2b\xb0\x7a\x5e\x86\x9c\x2d\xdb\x5d\x73\xbc\x05\x53\x37\xdc\x04\xb6\x24\x7b\x0b\x55\xfd\x36\x9a\xd7\x46\x77\x81\xc8\x54\x7e\x04\x53\x82\x7e\x98\x09\x81\xd9\x66\x62\x17\x4f\x5d\x8b\x93\xbf\x57\x12\x84\x21\xa6\x2e\x6b\x51\x6c\x4b\x4c\x97\x8e\x56\x1a\x09\x08\x0b\x3c\x98\xa4\x5d\x00\x9b\x32\x1f\x27\x0e\xda\x21\xb6\xc9\xa2\xdd\x90\x17\xba\x44\x60\x2a\x0a\x4e\x6c\x3d\xe0\xdb\x4e\x5a\x36\x6f\xf6\x49\x40\xc1\x0b\x95\xfe\xe7\xb1\xaf\x6b\x53\x42\x42\x2a\x49\x27\x64\xe1\x6a\x5a\x0e\x5b\xaa\x4e\x93\xbb\x20\xd2\x8a\x67\xda\x26\x94\xb1\x90\x83\x1b\x12\x39\x62\x75\xa1\xb5\xe5\xa6\x1a\x26\x68\xfd\x98\x44\x47\x03\xcc\x81\xfb\x76\x2f\x23\xe5\x2e\x37\x94\x32\xab\x6f\x34\x48\x16\x3e\x55\xd9\x6b\x56\x88\x7c\x72\x6f\xd4\x08\x74\xc5\x1e\xd7\x7f\x6e\x86\x9f\x90\xb0\x28\xc2\x68\xae\x39\x4a\x64\x35\x7e\x19\x48\xde\x50\xc2\xa8\xb1\x1c\x7c\x48\xcc\xe0\xf1\x83\x85\x05\x02\x76\x83\xa4\xe5\xea\xd4\xb6\xd7\x0d\x91\x3e\x97\xca\x28\xe3\x49\x4d\xb8\x63\x8c\x6f\x9d\xb5\x9b\x4c\x4e\x6e\x9a\x27\x1a\xfb\x3c\x50\x94\x17\xee\x9a\xff\xbc\xac\xc9\x7b\xe9\xfc\xca\x6a\x07\x23\xe3\xf4\xfa\x7e\x31\xd2\xd0\x74\x77\xe5\x3d\x0d\x12\x33\x4b\x02\xf7\xe7\xf6\xaf\x1b\xff\x6c\x31\x67\x51\xc7\x64\xe0\x1a\x91\x8f\xfb\xee\xa8\x62\x3a\xf5\xfd\x2d\x53\xc7\xb5\x27\x84\x9a\x24\x74\x28\x89\x01\x30\x79\x79\x53\x1d\xcb\x36\x84\xbd\x5a\x6d\x17\xfe\x9c\x49\x10\x61\x85\x7b\x9f\x15\x80\x5c\xd0\xea\x9f\x30\xa6\x52\x92\xb0\x10\x5d\xd7\xa5\x45\xed\x5f\x20\x06\xa3\x24\x49\x74\x18\x77\xb3\xf4\xa6\xac\x1c\x18\x78\xa0\x9a\x42\x49\x9a\x50\xdc\x8a\x0b\xf8\xe8\xb7\xe0\x4b\xa1\xcc\xfc\xab\x17\x82\x62\x17\x20\xb2\x9f\x21\x3b\xdd\xc4\x18\x10\xa1\x92\x20\x1a\x34\xc2\x2d\x8c\xc9\xf2\x6c\x2a\x82\x4a\x89\xd0\x56\x21\xfb\xb1\xdc\x1f\x2b\x71\x7d\x2a\xc4\x3e\x53\x75\x9f\x10\xa1\x44\x06\x3a\xb1\x94\xa5\x08\xa2\xa8\x07\x76\x8f\x48\x2e\x8d\xc3\x93\xb9\x6c\xcf\x99\x54\xda\x60\xf1\x29\x19\x62\xda\x65\xa8\x5c\x7b\x33\x40\xb4\xfe\x53\x81\x38\x77\x3a\xcd\x23\x44\x4d\x6d\xa0\x39\x7a\x16\xd8\xec\x1f\xd0\x86\xff\xee\xb4\x2a\x08\x6c\x65\xff\xe3\xfb\x51\x7b\x6e\xda\x8b\x62\xe3\xc9\x64\xbb\xd3\x0a\x92\xa0\x13\xab\x77\xf9\x80\x72\x62\xed\x08\x84\x1c\xdb\xaf\xbc\x43\x71\x81\x44\x89\x12\x88\x38\xc2\xc6\xeb\xd6\xef\x3e\xe6\x30\x50\xeb\x1a\x6f\x03\xe3\x9a\xbc\x77\xf1\x06\x27\x12\x14\x5d\xf9\x87\xea\x26\x93\x15\x8c\xf6\x29\x50\xa1\xb4\x4e\x0e\xce\x56\x07\x93\x99\xfc\x5e\x69\xa6\xbc\x74\x5d\x1b\x09\x98\x0b\x6b\x00\x4c\x8c\xf3\xe5\x50\x36\x9b\x8f\x09\x99\x13\x25\x26\x24\xdc\x61\x2b\xaa\xac\x39\x59\xc0\x6f\x77\x0c\x1c\x51\x52\xf5\x0b\x9a\xb0\xfb\x73\x64\x3a\xcc\xc7\xe2\xc9\xd6\x6b\xd5\xa9\xeb\xd0\xbf\x84\xf3\x18\xbd\xf0\x28\xe4\x0a\xd3\x9d\x56\x75\x6e\x12\xba\x45\x84\x51\xdf\x36\xea\xaa\x84\x63\xab\x1e\x11\xa5\x25\x32\x70\x67\x50\xed\x9e\x45\x56\xb4\xd6\xb0\xea\x8e\x02\x47\x8a\x8d\xfa\x23\x6b\xd4\xdb\xb6\x7c\x84\xcf\x91\x40\x30\x8d\xa2\x30\x25\x7d\x57\xeb\x23\x7c\x74\x07\x44\x20\x53\xaf\x38\xae\xca\x4a\x5f\x9d\xd6\x55\xf9\x9e\xe9\xbe\x5e\x37\xdf\x19\xea\x7f\xaf\x19\xce\x0f\x8f\xbf\x7a\xa9\xcf\x41\xb9\x7e\xa8\xb1\xbd\x86\x2e\x27\xb0\x28\x7a\x36\xc9\x23\x52\x85\xda\x27\xf7\x77\x46\x43\x21\x3d\x71\xef\xc5\x9a\x25\x8d\x68\x64\xf5\xb3\xcb\x51\x68\xfa\xbb\x25\xed\x7e\xcc\x78\xea\xcb\x48\x4e\xdc\xb0\xac\xae\xa1\x56\x55\x76\x38\x13\x26\xa4\x11\x67\x4c\xd9\xae\xae\xff\x45\xa4\x32\xe6\x10\x86\x21\x7a\xc4\xb9\x40\xee\x0d\xe7\x2e\x4d\x2a\x17\x17\x37\x80\x7e\x8f\x8a\x5a\xb3\xe8\x28\x08\x6d\xe7\xc4\xd7\x4d\xd2\xd3\xdc\xe2\xfc\xff\x75\xe7\x8e\x43\x4e\x65\x97\x76\x43\x9d\x4a\xbb\xd2\x66\xc4\x1e\x68\x14\xc7\x04\x65\x18\x9b\xb7\xac\xd2\x7f\x3e\xdb\xaa\x0e\xd6\xb9\xfd\xd3\xc6\x29\xf7\x28\x46\x2b\x1c\xb8\xc9\x5e\x8b\x7e\x56\xc6\x42\x3a\xda\xc5\xa6\x6b\x4f\xad\x6f\x60\x14\xa8\x46\x31\x04\x1d\x26\xcc\x8a\x6f\xf7\x5a\xe0\x34\x4a\x42\xad\x5d\xf5\xbf\xc8\xe1\x34\x5a\x33\x89\x26\xb8\x4f\xfe\x78\xda\xde\x3d\xde\xee\xbc\xd6\xb8\x3f\x9c\x86\x54\x7b\xe6\x97\xb2\x6c\x56\xfa\xb5\xfb\x4a\x69\x6a\x43\x1e\x4b\xa6\xd2\x7f\xbd\x54\x47\x88\x06\xb0\x8f\xfa\x64\x6c\xe4\x3c\x9f\xdc\x73\x3f\x91\x04\x30\x77\xb2\x85\xba\xe1\xfe\x3c\x92\x01\xae\x75\x79\x3c\xfd\x04\x71\x98\x54\x25\x69\x24\x63\x65\xa9\x23\x45\xb5\x15\x9f\xd9\xe8\xa9\x64\x4a\x84\x85\x14\x7a\x1d\x95\xbb\xa2\x0d\xf0\xb3\x77\x58\x1e\x9b\x7e\x14\x25\x16\x6e\x9f\xbd\xbe\x62\xa1\xf0\x3f\x84\xfa\x75\x28\x9b\x01\xa1\x0b\x8d\x24\x30\xf4\x1a\x90\x48\x15\x06\x91\x56\xa4\x68\x8a\xe9\x81\xfd\x31\x0f\xf9\x1f\xb6\x05\xb1\xc7\xdd\xd2\x48\x31\x8a\x3e\xf7\xa0\xbf\x27\xfa\x26\xea\xb7\x9d\x7b\x90\xee\x3c\x3c\x08\xc8\xb0\x86\x7f\x75\xea\x74\xaa\xbc\xeb\x15\x29\x09\xa1\xdb\xb9\xb7\xed\x5c\x5a\x8b\xaa\x39\x39\x48\x4a\x59\x5d\x5b\x06\xfa\x61\x36\x37\xd2\xa1\x6d\x14\x19\x67\x44\xa0\xbe\xf2\xd7\xd5\x31\xc7\x45\x9f\xd5\xb8\x6c\xbf\x08\xd5\x22\x9d\x70\xd6\x29\xe7\x8a\xfa\xec\x63\x68\x65\xf9\x30\x4f\x50\x5f\x1d\x4f\x17\xd8\xcc\x68\x04\x01\xd5\x49\x57\xea\xee\xbc\x8c\x51\x3a\x2b\x82\x40\x61\xee\xa8\xf5\x78\x73\xcc\x4f\x8e\xba\x9f\xfc\x28\xc1\xb0\xa1\x6c\x40\x7a\xfd\xb5\xed\x30\xa0\xa4\x7b\x81\xed\xa2\x6d\xa7\x85\xbd\xb0\xff\x5e\x34\xe0\x52\x69\x4f\x23\xd1\x67\x90\x67\x1f\x85\x06\x49\x88\x78\x08\x6c\x8a\xc2\xa8\xcb\x9b\x3a\x1a\x88\xd0\xeb\x67\x7f\x87\xd3\x00\x2b\x49\x69\x20\x2d\x1b\x69\x1b\x1f\x97\x55\x63\xca\x3c\x2b\xe7\x6a\x4c\x94\x06\x5a\xdb\x48\x3a\x7b\x75\xa8\xd9\x39\x2e\x7a\x4a\x43\x6e\xd9\x3e\x6c\x5c\xae\x7e\xe1\x3d\x63\xcd\x69\x4e\xec\x62\xf2\x10\xa1\x8a\x70\xe6\x75\xf5\xa0\x51\x93\x2d\xa5\x84\x86\x48\x79\x51\x1f\xf7\xbe\x33\xbf\x3b\xc4\x2c\x37\x69\x3b\xb9\x3d\x0b\x58\xbd\xae\x4a\x93\x35\x9b\xce\xfd\xa7\x44\x26\xc4\x6e\xf6\xf5\x41\x7c\x14\x3d\xf4\x88\x52\xa2\x13\x12\x74\xe9\xb3\xd5\x67\x53\x09\x64\x6d\xfb\x0a\xbc\x46\x69\x14\x44\x98\x9e\x05\xa1\xde\xd6\x2f\x9b\xed\x61\xf8\x76\xa3\x24\x42\xd0\xa2\xeb\x3d\x80\xa6\x75\x11\xce\xf7\x9e\xd1\x74\xa3\x51\x9a\xd8\xe6\xfd\x0f\x80\xc3\x4b\xd1\x75\x83\x7a\x08\x57\xf7\x32\xa2\x54\x2b\xd6\x89\x9e\x59\xcf\xc0\xc1\xa5\xc7\xf7\x48\x99\x55\xd4\xea\x38\xd7\xbe\xc2\x0b\x51\x4a\x63\xe6\xcb\x91\x0f\xad\x3f\x72\x05\xcd\x95\xa8\x33\x85\x1f\x71\x36\x1a\xa7\x54\x00\x92\x4c\x5b\x1e\xd4\x31\x87\x2a\xa5\xd4\x30\x5c\xd7\xd5\x71\xb2\x4c\x29\x8b\xac\xf4\xbf\x23\x2c\xba\xdd\x2e\xce\x06\x08\x4c\xed\xda\xfe\xa2\x76\x25\xd7\x0f\xe2\x70\xe8\x20\xac\xed\x08\xc0\x4e\x39\x14\xf7\xed\xd8\x2f\x29\x65\x5a\x61\xea\xd1\x06\x4d\xb6\x85\x0e\x05\x9c\x2f\x40\x66\x29\x65\x26\x0a\x74\xe7\x63\x0f\xa1\x07\x8b\x42\xdb\x72\x5d\xdf\xce\xd1\xfb\xc5\xe1\xb9\x5b\x4c\x39\x25\x56\x1c\x01\xfb\xfc\x8b\xac\xb9\xc9\x3e\x27\x4f\x16\x07\x09\xf2\x10\x42\x81\x9b\xfd\xd0\x5c\xd0\x98\x06\x18\xcb\xed\xac\x58\xd6\x3b\x38\x41\xff\xf9\xfb\x8e\x8d\xc1\x45\x71\xfd\xa7\x7f\xf1\xdd\x14\x49\x88\x25\xff\xee\xd0\x74\x05\xd4\x75\x0f\x4c\xea\xe6\x5c\x22\x0c\x9a\x55\xe7\x9f\x5e\x50\x8d\xf7\x83\x8d\xc5\x69\x3d\x1d\x9b\xa9\x60\x14\xa5\xa9\xe0\x9e\xdc\xf7\x7a\xb3\xb5\x9e\xc8\xfd\xc3\xe3\xd3\x64\x37\x11\x41\x80\x35\x32\xe1\x62\x86\x7a\xd3\xf5\xc8\x50\x2a\x43\x8b\x98\x69\x27\xe0\xe9\xba\x3a\xbe\x76\xcf\x23\x69\x8c\xfc\x17\x58\x1c\x1e\x36\xcd\x51\x2a\xb9\x8c\xa9\x77\x2c\xf3\xb2\x9a\x03\x02\x53\xaa\x8c\x41\xe2\x9d\xe5\xe9\xd0\xde\xcd\x53\xf5\x2a\x8a\xec\xef\x41\x6d\x61\xf2\xac\x3a\x00\x74\x25\x1f\x16\xdf\xff\xe3\x7e\xe5\x2d\x15\xd5\xc2\xc2\xb0\x1f\x33\xff\xe9\x3a\x11\x12\x4a\xb5\x0e\x30\x7c\xcd\x54\xd9\xe3\xa2\x29\xd5\x40\xc1\xe6\xdb\x5b\x77\xbd\x86\x4d\x03\x87\x75\xff\xe2\x20\x48\x31\x4c\xf9\x40\x62\xe5\x9d\x3c\x56\xbd\xbb\xdb\x1b\x51\x0a\x42\xc7\x91\xc5\xd7\xe6\x27\x53\x56\x4b\xb0\xcd\x94\x62\x00\xb5\xf8\xd7\xef\xff\xf1\x67\xd3\x22\x52\x3e\xe2\xef\xd4\x1c\xa6\x8e\xed\xf8\xd3\x19\x1a\x60\x9a\xde\xe6\xec\xda\xb8\xfd\x01\xa5\x7d\xea\x17\xec\x8d\xea\xfb\x39\xda\x6d\x47\x79\x36\xd5\xd5\xe7\xa1\xac\xda\x75\x35\x3f\xa9\x58\xc0\x39\x26\x1c\x37\x59\xf1\x7a\xcc\x31\x8a\xdb\x42\x4d\x98\x3f\x55\xc8\x25\x96\x48\x36\x85\x38\xd4\x6f\x65\xb3\x15\xfd\x7a\x61\x21\x37\x16\x3b\x6d\x51\xb7\xed\xae\x3e\xa4\xff\xa1\x8c\x04\x02\xa0\x6f\x47\x9c\x40\xd3\x28\x23\x51\x00\x2e\x13\xbe\xb3\x0d\xf3\xbb\x7a\x40\xe5\xe2\x46\x45\x81\xa4\xbe\x67\xd4\x26\xdd\xd6\x55\xf9\x3a\xb0\x4f\x2c\xa2\x60\x7a\x16\xc8\xac\x78\xb5\x73\x74\xd7\x1d\x97\x1c\xb3\x96\x1f\xc7\xd7\xe3\x20\x1f\xc7\x28\x4f\x2c\xe4\xae\x2c\xa7\xc5\x21\x46\xa5\x65\x84\xc3\x6f\xe4\x8a\xb6\xc3\x8f\xc8\xa8\x62\x5a\xf5\xbd\x69\x0d\xf8\x29\xc7\x18\x8f\x90\x18\xeb\xc5\xd9\x9f\x3c\x5f\xbc\x42\x31\x15\x28\x18\x5f\x8e\x47\x80\x29\x1e\x0b\x84\xb1\x4c\x35\x7e\x66\x74\xf2\x2f\x94\xc5\x8c\xd8\x9a\x1b\x1c\x6e\x44\xb5\xef\xfe\xac\x88\x45\xab\xe4\x19\x14\xcd\x06\x3a\xfb\xdc\x1e\xd1\xc3\xe9\xdf\x09\x15\x5f\x98\x10\x31\x84\xd8\xc0\xe0\xd1\xce\x16\x7c\x31\x19\x63\x08\x36\xbe\x21\x27\x61\x93\x35\xa2\xc8\x8e\xfb\xdd\x3e\x2b\xc4\xb0\xde\xc8\x12\x66\x09\x3e\x6a\x68\xfe\x7e\xb1\x27\x18\xc9\x83\xfe\x37\xf9\x9f\x91\xff\xcf\x12\x88\xa8\xf1\x4c\xdd\x1f\x7e\x8b\x9b\xf5\x8b\x58\x2a\x80\x0c\x3a\x5d\xdb\x97\x3c\x98\xe5\x6e\x90\x88\xad\x08\x16\x7c\x82\x3a\x36\x2e\x33\xdc\xc5\xc9\x80\xdd\x20\x3e\x59\x39\x79\x46\x19\xc6\x29\xeb\xb4\x9d\x51\x78\xc3\x91\xdf\x55\xb6\x0d\x51\x54\xa7\x1f\x1e\x29\x43\x99\x8a\xd3\xc8\x22\x4c\x5b\x07\xc8\x45\x65\xff\x1d\xc6\xfc\x7f\x86\x65\x3d\x3f\x58\x4a\xcb\xa8\x0b\x85\x76\xdd\x4c\xf5\x17\xe4\xb9\x94\x29\x9d\x32\x4b\x7a\x54\x5c\xd4\xe7\x1d\xff\x42\x27\x36\xde\xc4\x48\xb0\x52\x6f\xd9\x80\x0c\x73\x66\x47\x62\x10\x86\x48\xa3\x82\xdd\x51\x0f\xa2\x51\x6f\x57\xc7\xdf\xb2\x76\x4e\xae\x09\xa1\xf0\x8a\xe3\x8e\xd3\xfd\x58\x34\x53\xb9\x56\xca\x20\x56\xd2\x65\xf6\x57\x45\xd3\xe3\x3f\xbe\xfa\x67\xfc\x59\x01\x22\xd4\x41\x68\x7d\xf7\x27\xe3\xab\xe3\xfe\x53\x18\x12\xa0\xf2\x8b\x12\x79\x33\xb0\xee\xcc\x50\x89\x61\xda\xaf\xac\x69\x4e\x68\x8c\xb7\xa5\x05\x14\x8f\xef\xcf\x30\x9e\xb8\x46\x1a\x3c\xbc\x12\x55\x81\xfe\xa3\x3f\x1e\x5b\x46\xb7\xac\x70\x2b\xca\xb5\x5c\xac\x2b\xc0\x90\x5d\x4f\x89\xb5\x7f\x93\xb0\xb0\xa7\xe5\x01\x1d\x92\x03\x5d\x1d\x4f\x7d\x3d\xfa\x8f\xc9\x48\x99\x60\x5e\xda\x41\x13\xb0\xb4\xed\x60\x4d\xc3\x53\x27\xdd\x70\x8d\x49\xba\x83\x8d\x5a\xbb\xee\x46\xf7\x3c\x3c\x4c\x38\xe6\x12\xeb\x7f\x1f\xc5\xaf\xee\x8f\x29\x4f\xc8\xa0\x5f\xb6\xdd\x8a\xae\x17\x77\xf3\x7e\x28\x0f\x95\x15\x5c\xfd\xf9\xed\xe9\x7e\xb5\x43\xc5\xa5\xee\x44\x46\x59\x9a\xc4\xd5\xfd\xcd\xf5\x6a\xb3\x7d\x7e\x59\x6e\x77\xd7\xab\xfb\xc5\x5f\x7e\x04\x09\x34\xca\xa7\xa2\x86\x82\x65\x3c\x88\xba\x63\x91\x52\x4e\x8d\xfb\x1b\x54\xe5\x1f\x5f\xc8\x77\x51\x4e\x4c\x62\xfb\x71\xef\x26\xda\xd0\xed\x21\x8b\x56\x41\x1c\x60\x21\xf2\x45\x51\x7f\x4c\x30\xf4\x94\x47\x51\x8c\xe5\xb3\x47\x04\x10\x3d\xfc\x66\x89\xf1\x88\x5b\x78\x4b\xa7\x5d\xd7\xe7\xff\xff\xe1\x97\x9f\xbc\xc5\x48\x58\x62\x95\xd6\x6b\xb4\x0c\x3b\xdf\x44\x7d\x05\xaf\xc7\xee\x31\xa8\xb6\x3d\x5e\x60\x15\x61\xdc\x5f\x59\x2a\x05\xf1\x94\x11\x4b\x5b\x42\x05\xbd\xeb\x9d\x72\xce\x80\x63\xf7\x73\xa7\xd3\xfc\x3d\x53\xbf\x7e\x8c\x00\xda\x93\x7b\x49\x68\x88\x02\x41\xaa\x38\xad\x9a\xb7\x01\xcc\x8a\x27\xa9\xa6\x0e\xd4\x88\x3d\x68\x50\xe8\xa6\xf7\x3d\x78\x9a\x2a\xf4\x09\x90\xba\xd2\x1b\xb0\xce\x7e\xf1\x54\x26\x41\x3a\x51\x9e\x9e\x7c\x86\x14\x98\x70\xb9\x26\x5c\x7f\x77\x0d\xec\xef\xf4\xc4\x3c\x73\x11\x12\xac\x57\x2d\x94\x82\x43\xf3\x5c\x1e\x9b\x01\xaa\xea\xac\x96\xd6\x13\xea\x50\x2e\x92\x14\xbb\xce\x4d\x55\xee\x91\x24\x6f\x34\xc8\xaf\x1a\x91\x72\x2c\x58\x75\xe0\xa8\x67\x78\xcd\x4a\xab\x69\x9a\x7d\x4e\x22\x83\xff\x0e\xf9\x24\x14\xe1\xc2\x80\xef\x4e\x77\x1a\xf1\x5e\x70\xa3\x7b\x50\x19\x01\xa6\x2e\x1a\x27\xb6\x71\x0d\xfb\x63\x55\x89\x57\x18\xeb\xb0\xf8\xd1\x9c\x39\x3d\xc3\x42\x2f\x45\xa1\x4f\x93\x17\xa2\x22\x1e\xb9\x34\xcf\x4f\x94\x48\x18\x60\x7c\x29\x57\x71\x8a\x5b\xa6\xcd\x56\xa2\x3b\x32\xfd\x7d\x62\xd0\x57\xbb\x6b\x86\xf5\x2d\xae\xc3\x10\xbd\x9c\xd7\x9e\x15\x99\x72\x6d\x24\xb5\xed\x90\x75\x99\xbf\xc3\x12\x01\x12\xf6\xd9\xbc\x6f\xc7\xc1\xe8\x11\xf0\xb2\xbe\x29\xab\x76\x8b\xbc\x24\x3b\x46\xb9\x89\x54\xec\x3e\xfc\x7d\xf6\x0e\x0f\xe2\xf3\x0a\xba\x07\x30\x90\x78\x7c\xc7\x90\x95\x86\xc6\x41\x60\xf9\xdc\x7b\x96\xad\x73\x90\x30\x8d\x03\x61\x30\x09\xb6\x7a\xb7\xed\x14\xa3\x67\x8f\x09\x63\xe8\x24\x61\xb3\x2a\xc0\xaf\x36\xde\xf4\x0f\x1b\x93\x94\x23\x16\xcb\x4f\xe6\x9b\xc1\x21\x95\xa0\x92\xc6\x0e\x8d\xfe\x98\x97\xfe\x5f\x83\x4f\x1d\x33\x6a\x3c\xdc\xcd\xa5\xc6\x27\x90\x7e\x1a\x33\xc9\xb4\x5d\x38\xef\xd0\xf9\x15\x31\x37\x91\xb6\xe0\xda\x76\x6e\x64\xc5\xeb\x0d\x40\x5f\x56\x8d\x63\x9e\x32\x67\xab\x6a\xc8\x8d\xae\xca\x43\x73\xd6\x68\x4b\xe3\x84\x59\x7e\x40\x50\x36\xcb\x32\x2a\x50\x9e\x6b\x3a\x8c\x7f\x9c\x06\xcc\x73\x3d\x5c\x95\x85\xee\x6b\x73\xf3\x9f\x31\x16\x52\x5b\xc2\x4a\xa8\x9b\xbb\x7a\x73\xc4\xd6\x46\x73\xec\x1e\x49\x00\xa3\xa4\x6f\xd7\xc3\x98\xd2\x66\x8e\xfa\x11\x71\x68\x06\x23\x4e\x07\x98\xfb\xa6\x32\x14\x5c\x0d\xb4\xc9\xdb\x08\x7c\x44\x6a\x3f\x79\x10\x45\x35\xb7\xe2\xc1\xdd\x96\xed\x0d\x4d\xac\xb8\xb4\x34\xdb\xa5\xb1\x12\x07\x1b\xac\xfe\xcc\x22\x51\x62\x05\x69\x4f\xd6\xd8\x6e\xf8\x3b\x0f\xc4\xf1\xa7\x83\x38\xc4\x3c\xe8\xa2\x28\xca\x07\xd0\xfd\xf7\x84\x38\xc4\xc8\x6f\xb1\x5c\x0e\x0d\x54\x6c\x98\x65\xc6\x5f\xae\x97\xab\xee\x6f\x4a\xc5\xd6\x70\xb7\x1e\x2a\x38\xf5\x5a\x77\xef\xc3\x92\xe1\xe8\xb5\x24\x41\x10\x22\x5e\x6b\xac\xf6\x79\x75\x5a\x6d\xbf\xcd\x9b\xef\x24\x20\x09\xee\xb8\xef\x22\x3f\xc2\x14\x34\x95\x04\xca\x0b\xa2\xa0\xa7\x7d\x03\x30\x79\x1f\x49\x48\x2c\xe3\x4d\x56\x7f\x87\x13\x66\x29\xe7\xbf\x40\x42\x02\x66\x11\xdf\x7b\x31\x10\x49\xa2\x09\x09\x63\xdc\xcc\x3d\x1e\xbe\xfb\x3b\xb3\x7c\x5d\x05\x7c\x36\xeb\x1f\xeb\x2b\xd1\xe4\xa3\xa2\x49\x42\x12\x89\x94\x16\xdb\x2a\x2b\x60\xf9\xd6\xb1\xd9\xd1\x84\xb8\xfd\xdb\xc7\x31\x4e\xe0\x67\x3c\x85\x12\x6a\xa8\x57\x24\xff\x8f\xb2\xf6\xf6\x32\x61\x21\x33\x56\x06\x02\x3b\x9d\xea\x26\x6b\x30\x21\x85\xac\x5d\xa3\x3a\xf1\x20\x47\x90\x30\x6e\xad\x2c\x96\x5d\x2b\x0c\xc2\x46\x45\x5d\x37\x2c\x96\x0a\x93\xdf\x56\xc8\xc6\xef\x63\x49\x6c\x34\xc2\x2f\xa1\x79\xc3\x26\xa5\x21\x17\x27\x4d\xd2\xc8\x4a\xe0\xec\x70\xce\x6d\xcb\x2b\x68\x1a\x97\x6c\x19\x21\x03\xfb\x47\x4b\x13\xa3\x9d\x50\x5f\x5e\x9e\x66\x19\x29\x69\x92\x0a\x82\x60\xc4\x1a\x31\x96\xd8\x7c\xd9\xdd\x90\xe0\x3c\x1a\x48\x1e\x21\x41\xc7\xb6\xbc\x5b\x2e\xd6\x23\x06\xbf\x8b\xf8\x95\x61\x7c\x91\x48\x2d\x63\x57\x94\x3e\xe6\xdd\xe6\x9d\x48\x08\xb0\xcb\x43\x58\xb1\x5c\xe8\x2c\xc5\x7f\x1c\xab\x09\x68\x28\x51\x69\xa2\x75\xf7\x40\x50\x8d\xc0\xad\x89\x02\x83\x5d\xba\x0e\x01\xd3\x06\x1e\x46\x28\xdb\x77\xa0\xcb\x8f\x6e\x5e\xe8\x14\x62\x97\x94\xbf\x53\xe5\x28\x97\x95\x68\xe0\x98\x43\x1f\xb0\x15\xa3\xd7\x39\xbf\x6a\x20\xb4\x8a\x36\x58\x95\xf0\xc6\xe1\xd2\xa2\x34\xd2\xaa\x7c\xed\x5a\xf3\x3d\x31\x14\xb3\xbf\x48\x03\x4e\xb0\x5a\xf7\xb0\xf8\xd3\x0a\x38\xfd\xe1\x0f\x08\x9e\x76\x9a\x03\x57\x42\xbf\x76\x20\xac\x94\x44\x32\x31\xbe\x72\x71\x39\xc4\x49\x89\x6b\x99\x19\xd4\x83\x66\xcb\x96\x69\xc4\x0c\xee\xc4\x96\x2e\xb8\x6b\xac\x9d\xfb\xc4\x69\x94\x44\x61\xe4\xbb\x06\xde\x45\xa1\x7a\x81\xc3\x79\x20\x64\x1a\xc9\x28\x35\xa3\x3e\x83\xd6\xf8\xfa\x87\xa1\x34\xc4\x4a\xd7\x54\x65\xd1\x45\xcc\xe3\x99\x9c\x52\x26\x70\xf9\x98\xd6\xec\x14\xd0\x64\xaa\xec\x4e\x94\x58\xbc\x4f\x0d\xcd\x9d\xee\xca\x76\x29\x0b\x63\x4c\x0e\x3c\x40\xfd\x86\xe8\xf3\xf9\x57\xc0\x88\x09\x9d\x4c\xce\xba\xcc\x33\x75\x5a\x8b\x4c\x3f\x9d\xf7\xf3\xf5\xc3\x13\x37\xbf\x10\x94\xfe\x28\xf6\x23\xd1\x7e\x9a\x32\xca\x30\xe9\xd5\xa3\x3a\xff\x49\x37\x0f\x4d\x99\x4a\xa9\xab\x00\xef\x9a\xf2\x90\x77\xc4\x79\x5f\xcf\x23\x1e\x29\x5c\x62\x9b\xc5\xfa\xe9\xc7\xe2\xe1\x8f\x59\xfc\xc1\x85\x4b\xf2\x24\xf6\xc5\xad\x57\xa0\x63\x46\x7d\x9a\xc6\x4c\x60\x20\x5c\x89\xac\x06\x4f\x82\x87\x5d\xee\x7b\xe1\x89\x68\xfa\x73\xc5\x89\xc0\xf2\x86\x68\x57\xdc\xfd\xd3\x76\x7a\x58\x27\xca\x82\xc9\xfb\x8d\xa0\x37\xa8\x69\x0c\xdc\xa7\x99\x1d\xb6\xb0\x13\x64\x1d\x9f\x27\x89\x82\x38\x1d\xd1\x65\x63\x6a\x7d\xe0\x7c\xce\xbf\xa6\x24\xb1\xe5\xf7\xc6\x8a\x02\xda\xf9\x3a\xd0\x06\xa2\x69\x2a\x15\xee\x30\xd7\xab\xa5\xd7\x5e\xa1\xa9\x08\x21\x76\xc5\x8b\x49\xdb\xb9\x1f\x40\x09\x06\x52\xcb\xea\xd4\x94\x28\x04\xb2\xec\x5a\x01\x52\x29\x19\xc2\x70\xd4\x40\xd9\x74\xe0\x5f\xb9\x51\x8a\x48\x29\x7d\xcc\x54\x00\x52\xf8\x55\xa7\x25\x32\x3c\x74\xd6\x27\x55\x2a\xb6\x58\x1c\xcb\x8f\xe7\x80\x35\x33\x22\x1f\xc9\xec\x0e\x9d\xea\x20\x92\xaa\xff\x00\x1b\xc8\xf3\x70\x5c\x06\x4c\x35\x8b\x50\x61\x01\xf5\xd6\x9f\xe1\x1d\x23\xf6\xee\x20\x97\xc8\x52\x5d\xbf\xc1\x2f\xf0\xfe\x4e\x0a\x81\xb0\x10\xfb\x72\x7f\xc8\xbd\x9a\x13\x4d\x81\x32\xe4\xaf\xdb\x67\x45\xb3\x14\x87\xbb\xa2\x75\x4e\xfc\x31\x11\x60\x2a\xaa\x12\xc5\xaf\x27\x33\xfc\x04\x22\x70\x0a\x85\xce\x51\x99\x14\x41\x44\x48\x13\xd6\xef\xdf\xab\xe6\xcd\x17\x24\x1d\xba\x64\x3c\x55\x44\x28\x62\xec\x54\x5e\x42\xd5\x20\xc6\xd4\xe2\x9e\x47\xcb\x5f\x84\xc2\xb6\xca\x21\x55\xcb\x16\xc4\xbe\x1e\xb2\x0c\x8f\xf2\x7a\x22\x04\xe2\x09\xa6\x5e\xea\x71\x97\x25\x15\xa4\x7d\x45\xff\xe7\xff\xf9\x3f\xff\x3e\x66\xea\x57\x5d\xf6\x18\x3f\x1f\x31\x09\x22\x52\x24\xc5\x44\x3a\xff\x2f\xf7\x02\x11\x45\x1c\x15\x5a\x1f\x17\x9b\xed\x1f\xdd\xdf\x52\x0c\xe0\x74\x79\x26\x9f\x4a\x51\x40\x4b\xb9\x70\x39\x87\xea\x0c\x3a\xd8\x46\x58\x18\xd2\xdd\x3f\xdd\xee\xfc\x6b\x5b\xb5\xaf\xf7\x62\xaa\xb8\x8d\x59\x30\xb5\xb3\x3e\x55\x98\x8d\xef\x3a\xeb\xa9\xa0\x8a\x10\xbf\x5c\x8b\x57\xc8\xef\x45\xdd\x5c\x89\xa6\xc9\xa1\x23\x17\x71\xcd\xec\x54\xb0\x36\x58\x6c\x43\xb3\x97\x47\x5f\xcb\x11\x0c\x08\xed\x54\x6d\xb2\xbf\x61\x55\xe8\x41\x81\x43\x30\xc3\x58\xa7\xff\xbf\x83\xcf\x43\x59\x40\xd1\x10\x7f\x98\xc7\x56\xd7\xd1\xe1\x35\x47\x46\x5e\xf0\x04\x90\x62\xf8\x58\x43\x95\x97\xaf\x13\xa1\x3a\x2a\x78\x1a\xe2\x46\x70\x10\x55\x0d\x96\xc8\x09\xe5\x38\x9b\x4c\x7a\x64\xa7\x1b\x19\x33\xc5\xa1\x2b\x75\x6e\xca\x5c\x8f\x5c\x12\x11\x33\xd0\x6a\x90\x43\xbb\x86\x3e\xf0\x1c\x1b\x19\x11\x2b\xe3\x1a\x13\x34\xc0\xbe\x8d\xdf\x31\xe3\x38\x4a\x8c\x88\x24\x72\x52\xfa\xfb\xcc\x37\x9c\x4f\x06\x30\x89\x5c\xb1\xd8\xcf\x37\x7f\xa1\xc4\x24\x28\xb8\xd1\xe9\x2b\x7d\x2b\xbb\xb8\x4b\xa4\x44\x23\xfe\x66\x67\x17\xd0\x08\x2b\x39\x3e\x4d\x4a\x19\xef\x54\xa7\x87\xf2\x9d\xf3\x57\x15\x8a\xa3\xc9\xd3\x99\x31\x7f\x4c\x66\xbd\x8c\x80\x3a\x4e\xa2\x5e\x81\x69\xea\x37\xcc\x9f\x56\xf2\x54\xe9\x0e\x73\x7e\x75\x3c\x21\x92\x7d\x94\x64\x11\x2a\xb2\x1b\xb4\x15\x23\xbd\x39\xce\x40\x59\x85\x92\x4a\xbb\x46\xa6\xd7\x42\x14\xcd\xe1\x78\x38\x74\x2c\x3c\x54\xe8\x50\x60\xa2\xef\x1d\xda\x15\x91\x69\xa1\x07\xc7\x24\xa1\xfd\x96\xe3\x94\xc0\x2f\x0b\x2b\x51\xa1\x15\x41\xaf\xd1\x36\x20\xce\x50\xc7\xb5\x43\x28\xc2\xda\x0d\xa8\xb7\x36\xe2\xb0\x93\xf0\xa6\xac\x96\xa2\xd0\xd9\x00\x74\x2e\xb4\xd2\xe0\x36\x9c\x4d\x56\xbc\xe6\x70\x7b\xc4\x42\xb3\x03\x0c\x74\x2f\x01\x22\x82\xf1\x7f\x2d\xda\x5d\xf8\xaa\x2c\xf3\x81\xe5\x10\x26\xd4\xa1\xe8\x4a\x4f\x1d\x8e\x66\x40\xa0\x4a\x85\x11\x80\xf8\xc1\xc5\xb1\x29\xbf\x77\x01\x9a\x0c\x22\x83\x05\xf7\xcc\xd1\x54\xdc\x97\xea\xd7\x1c\xdd\x11\x95\x01\xd7\xd8\x97\xf5\x06\xe2\xb0\xf1\xbb\x5f\xe2\x67\x81\x0c\x44\x84\x7a\x5e\xf0\x39\xe2\xe9\xda\x96\xc3\x78\x50\x86\x2c\xc5\xe2\x94\x44\x33\xd8\x60\xc7\x77\xdd\x1d\xe4\x96\x9e\xb8\xe7\xf4\xc4\x58\xa2\x2a\xf7\xcf\xc8\xf6\x06\x55\xfd\x65\xdf\x88\x0c\x53\x86\xfe\x8c\xa3\xec\x9b\x16\x2e\x64\x28\x03\x44\xaa\xf8\x0b\xb4\x0f\x0b\x8e\xef\xd8\xaa\x72\x20\x5e\x73\xf2\x23\x05\x36\x43\xe3\x20\xbf\x4b\x91\x9f\x6d\x02\xae\x89\xe4\x0c\xfa\x7b\x99\xca\xfe\xeb\x5a\x82\x8c\x42\x40\xab\x2b\xb3\xe6\xa7\x68\x26\xb6\x40\x46\x44\x62\xb6\x6b\x5f\xea\xcc\x9c\x9e\xcf\x0a\x0c\x32\x92\x01\x7a\x9a\xcf\xd7\x7f\x8e\x5e\x3f\x4d\xac\x7c\xce\x2b\x34\x76\xa5\xcd\x2e\x4b\xc9\x08\xd8\x4f\xfd\xea\x77\x16\xc9\x8c\x40\x68\x41\x4f\x51\xec\x0e\xc4\x94\x21\x1d\xe2\x6f\x82\xcc\x11\x4d\x3c\x95\xb1\x61\x8e\x56\xa0\x2e\xf3\xa3\x55\x8f\x1a\x3f\x42\x22\x18\x72\x7f\xd5\x42\x89\xaa\x77\x2e\x64\xa2\x08\xc4\xae\x4e\x27\x2a\x97\x7a\x26\xc1\x18\x0b\x24\xd3\x30\x30\x72\x90\xf2\x3b\x27\xfa\x6a\xc7\x70\xf4\x77\x5a\x17\xe6\x8a\x5c\x5d\x40\xb7\x48\x41\xd2\xd8\xf1\xf9\x59\xb6\x14\x6c\xe2\xdc\xe4\x43\x8c\xdd\xc0\xa8\x48\xc1\x24\xe2\x11\xee\xa1\x2c\x32\xdd\x3f\xb2\xd0\x01\x56\x78\x5b\xcb\xdc\xda\x86\x39\x5e\x77\x2a\x65\x18\xa1\xdd\x6d\x5d\x08\x04\x59\x4d\xdd\x88\xaf\xf4\xb9\xa8\x94\xc4\x4a\x44\xdf\x97\xaf\xed\xaf\xbd\xcc\xef\xf8\x89\x24\x8d\x90\x80\xe2\x0a\xca\x42\x96\xde\xa5\x93\x52\x43\x17\xaf\xde\x2d\x9f\x76\x9b\x97\xf5\xda\xd3\x29\x50\x29\x4d\x88\xf9\xd7\xfb\xc5\xcb\xf2\xdb\xf2\xe9\x11\x05\xd2\xfd\x41\xc5\x42\xfc\xe9\xda\xb9\x9e\xa5\xca\x44\xbe\xce\x45\x63\xca\xae\xc4\x2d\x15\x24\xe8\xc1\x2c\x37\xa3\xcc\x99\xd4\xb1\xc0\x55\xe9\x7c\x68\xcc\x61\x88\xea\xd4\x1f\x96\x49\xc7\xd4\xe9\x4b\x75\xfe\x20\x10\x4b\x33\xf0\x4d\x54\x7a\x99\x83\xa8\xba\x03\x9c\x62\x57\xd8\x87\xa8\xaa\xac\xac\x86\x39\x27\x09\x5a\xa0\x97\xd7\xa1\x2e\xc6\x9f\x00\x4c\x8c\x3c\x29\x48\x7d\x80\x86\xc9\xc2\x07\x7f\x57\x13\x9a\x9e\xc5\xe6\xab\x7d\x91\x71\xca\x03\x42\xa5\x61\x29\x5a\x9e\xe5\xd3\xf3\xea\x71\xb5\x45\x42\xd4\xe3\x39\x60\x79\xdc\xfb\xa2\x82\xc4\x92\xc3\x6b\x90\xc7\xd7\x9d\x17\x40\x44\x19\x38\xb8\x5b\xdf\x6c\xa6\x45\xe2\xd1\xfc\x50\x01\x68\xcc\x42\xb9\x06\xa7\x33\xde\xe8\x99\x09\xad\x02\x63\x5b\xe8\xca\xa2\x8d\x1d\x0b\xf8\xa8\xa5\xc8\x33\xaf\xee\x41\x55\x08\x76\x4f\x77\x58\x34\xb7\x89\x8e\xde\x86\x8a\xb4\xc1\xcf\x21\x8f\xc6\xf8\xdf\x45\x10\x63\x23\xe8\xf3\xcb\xd5\xee\x69\x5f\x64\x1a\x19\x3f\xfd\x51\x4a\x83\x0e\x96\x24\xea\x37\x29\xd4\xaf\x59\x1c\x81\xa2\xda\xa0\x43\xf4\xf3\x76\xd4\x88\xaa\xa8\xb1\x59\x54\x4b\x71\x86\xbd\xa8\x5e\x10\x23\x71\x7d\x1d\xce\xed\x57\x4c\x1a\xde\x13\x37\x6d\x7e\x65\x87\x99\x6c\xb5\xe2\xd4\x72\x4c\x0e\xb2\xd5\x53\x68\xa1\xe2\x8c\x63\x16\x38\xab\x91\xcd\xf3\xde\xb2\x8b\x8f\xbf\x01\x8f\x23\x84\x1f\x62\x5b\xe8\x28\x6f\xae\xb8\x51\x48\x16\x26\xf2\xbc\xfc\x58\xd5\xaa\x2a\x3f\x06\x76\x5e\xc5\x8c\xab\x78\xa2\x34\xdf\x46\x34\xfe\xe7\xb1\xb2\xa4\x5c\x07\x9b\x68\xf6\x38\x56\x95\xa4\x11\xba\x95\xd0\xbc\x39\x7b\x3c\xd9\x6d\x55\x22\x23\xa6\xd1\xa2\x14\x70\xf2\xef\xd9\x1d\x4b\x23\x25\x5c\xf6\x65\x88\xed\xdb\x64\x7f\x4f\xdf\x50\x1a\xa7\xdc\x35\xa0\x97\x66\x57\x9a\x9d\x65\x76\xdc\xfd\xf2\x6c\xc7\x54\xa5\x32\x50\xa2\x23\xbd\xdf\x7e\x4e\xde\x8d\x97\x5a\xfc\x71\xff\x74\xbb\x9c\x69\x06\x1b\x2d\x05\x91\x58\xb9\xf2\x76\x1d\xdf\x64\x5d\x5e\x48\x09\x88\x11\xb6\xb9\xeb\xc2\x48\xa8\xae\xcb\xd7\xdf\x82\x21\xc6\xf3\x4a\x80\x44\x1b\x7a\x40\x7c\x68\xf7\x85\x95\x0e\x31\x47\x2c\x2b\x10\xbf\xe0\x1d\x0a\xab\x6a\xe4\x8e\x02\x4d\x94\x23\x0f\xe8\x60\x29\xb3\xa5\xcc\xee\x89\x21\xb1\xd2\xe0\x8e\x24\xf0\x8b\x8e\xa6\x59\x28\x85\x0e\x0d\xb1\xaa\xa0\x99\xa9\xca\xba\x19\x2e\x01\x4d\x88\xc2\x84\x9e\x25\x00\xba\x2e\x8b\x01\x05\x32\xd5\x24\x91\x9c\x78\x36\x65\x2d\xf2\xfa\xea\x58\x15\xe0\x35\x78\xdc\xa0\x28\xe2\x9e\x73\x6e\x75\x7f\xf7\xe7\x6c\x39\x45\x53\x13\xf8\x94\xec\x6e\x88\xd8\xd0\x8c\xf1\xa4\x43\xa1\xae\x6c\x5e\xfc\x19\x54\x06\x1d\x31\x30\xd5\x2c\xb6\xae\xc0\xce\x94\xd5\x28\xab\x3a\xd8\x83\x34\x13\x11\xb2\x0c\x39\xc5\xfb\xb9\xfa\xaa\x66\x82\x61\x9e\x6f\xfb\xe7\x47\xd6\xbc\x2d\x4b\x7d\xd6\xc6\xe7\x07\x42\x14\xc0\x2c\xcf\x6d\x5f\x19\xd4\x9c\x6b\x81\xb2\x57\x83\x16\x02\xcd\xb9\xc1\xca\xb3\x12\xb9\x7a\xb6\xcc\x77\x33\x9e\x85\xe6\xb1\xf6\x1d\x15\x59\xfd\x66\x55\xdc\x9b\x1e\xb0\xa1\x79\x6a\x1c\x5f\xd3\xa9\x3c\x36\x0f\xd0\xbc\x95\x7a\x71\x75\xd7\x1d\x96\x12\xe7\x6f\x2e\x1a\xec\xa8\x41\xf2\x31\x77\x2c\x0e\xa9\x72\x0d\x31\x18\x67\xd9\x44\x17\x99\x7c\x90\x98\x24\xf8\xde\xd7\xcf\x2b\x34\xe5\xcf\x77\x9b\xef\xbb\xf5\xea\x79\xb9\x7a\xdc\x2e\x6e\x57\xdd\xc9\x98\xf5\x97\x6b\x68\x1c\x95\xcb\xa3\xd8\xcf\x32\xc1\x52\x9d\x10\x83\x70\x2a\x5b\xd5\xf0\x2d\x0f\x3a\xa1\x81\x48\x3c\x0d\x88\x4d\x3a\xb4\xd1\x4b\xf5\x20\x3e\xc7\x13\x29\x91\x34\x10\x1e\x9f\x44\x1c\x71\xde\xf8\xb5\xa5\x01\xc5\xa5\xe5\x0a\x78\xb5\xed\xae\xf5\x07\x5b\xe7\xbd\x5b\x27\xcd\xe5\x2e\xc0\xcb\xa8\x4d\x9d\x12\x8a\x78\x36\xf8\xc4\xdd\xbb\x5d\x14\x37\x8e\x97\xaa\xbb\x0c\x53\xb1\x9b\xef\xcf\xa5\x2c\x91\x8b\x6a\xbe\xf4\xa2\xd3\x98\x61\xaf\xf8\x62\x79\xff\xd7\xf5\x68\x9c\x1f\x90\x32\x42\x3c\xa1\xef\xe9\xd0\x88\x63\xf5\x0c\xaa\x7c\x87\x6a\x52\xfa\xd7\x22\x4e\xd1\x59\x70\xa2\x7e\x4f\xe6\x5c\xd8\x86\x6a\x49\xc0\x69\xe5\x66\xcd\xb5\x28\x7f\xdb\x46\xf5\x7f\x15\x79\x68\x99\x28\xc4\xc9\x5e\x65\x20\xc7\xe8\x6a\x2d\x85\xc1\x34\xa6\x6c\x57\xcc\x33\x34\xc7\xaa\x98\x33\x26\x5a\x4a\xdb\x86\xfa\xbf\x4e\x9c\x7f\x04\x76\xb8\x70\x59\x1d\x47\x98\x09\xc8\xea\x87\xac\xc8\xf6\xc7\xfd\xb0\xbc\xa8\xb5\x89\x50\x52\xa6\x70\x39\xea\xf5\xb1\xf8\x55\x6f\x4b\x97\x1e\xf2\xa3\x20\x52\x5e\x1a\xfb\x06\xa6\xa4\xbd\x83\x74\x81\x06\x4e\x95\xad\x23\xb7\x1b\x12\xe8\xf6\x92\xfe\x24\x26\x88\x99\x25\xdf\xc1\x66\xc8\x0b\xca\x6c\x54\x9b\x88\x20\xe8\x1d\x0a\xbd\xbb\x7f\x5a\x7e\x7f\x59\x77\x67\xe0\x96\xae\x7d\x94\x20\x98\x8d\x2d\xb4\x49\x94\xcd\xc7\x82\xab\x40\x7b\x70\x60\xb5\x1b\xe1\x70\xb5\x31\x01\xfa\xb9\x7f\xff\xfd\xb7\xfb\x13\x04\x21\x41\x2a\xd7\x67\xb1\x87\xe9\xd4\x83\x80\x18\xa5\x46\xdc\x89\xa5\xb9\xc0\x78\x4b\x81\xd0\x30\x1e\x66\x3d\x17\x55\x03\x46\xa8\xa6\xbe\xeb\xcc\x1e\x10\xcd\x23\xfb\xca\x6c\xd0\xec\xff\x1e\x45\xb1\x85\xf6\xba\x0b\x5d\x43\x0e\xaf\xa2\x99\x21\x79\x19\x5f\x33\x8a\x52\x15\xfa\x6e\xf5\x21\x3b\xee\x6c\x9c\x33\xb6\x99\x10\xf1\xc0\xd3\xb2\xf9\x80\x60\x32\x07\x81\x8a\x18\xe7\xaa\x78\x17\x8d\xa8\xe6\x6c\x0a\x70\xad\x23\xe1\x08\xbb\xae\xab\xbe\xf2\x0c\x09\x8b\x98\x3b\xfd\x76\xd5\xbc\x5d\xf2\x1b\xfc\x68\xb0\x2c\xb1\x50\x34\x6d\xf4\x0b\xf0\x2c\x8c\xe9\x21\x32\xd3\x16\x62\x48\xa5\xc5\x76\xbf\x7f\xe2\xee\xee\x22\xa6\x19\xd0\x99\x1b\x2f\x68\x87\xa5\xb8\x2a\x45\xa5\x9f\xcb\x0f\x4f\x7e\x7f\x3c\x07\x0b\x82\x50\x32\xa2\x9d\x71\xb3\xcc\x31\xc7\xa2\x39\x21\xe2\x5a\xec\x1f\xc4\x84\x3c\x04\x04\x28\x4c\x8e\x35\xa2\xea\x9d\x3e\x90\x2c\x46\xfc\x43\x01\xa0\x9d\xa5\xbb\x99\x96\xec\x40\x0a\xea\x55\x49\xd1\x61\x5e\x96\x65\x9e\x15\xaf\xa3\x5e\x5b\x90\x26\xc6\x41\xcb\xb2\xaa\x45\x95\x1d\xf7\x96\x2a\x1b\x67\x6c\xd7\xba\x0e\x2a\xe0\x24\xe8\xd1\xba\x3d\xd7\x1d\x05\x15\x86\xd2\x03\xb1\x1a\x38\xdc\x1c\x0b\x75\x5e\x36\x02\x05\x0c\xf1\x51\x87\xd2\x17\x67\x40\x13\x82\xdb\x3d\xe2\x58\x90\xa3\xea\x5e\x7c\x9c\xfa\x67\xd4\xc6\x4a\x34\x08\xad\x1f\xcb\x66\x5c\xe4\x03\x88\x15\x92\x70\xed\x54\xb9\x3f\x1c\x1b\x58\x96\x7b\x2f\xf4\x30\xbe\x30\x68\xaa\xdd\x4b\x38\x1e\x7e\xfa\x4e\xa1\x99\x6d\x07\x0c\x51\xd2\x39\xd2\x5d\x74\x30\x03\xe4\x02\xa3\x18\x56\x20\x73\x51\xbb\xf7\xfa\x06\x5d\xf4\x6a\x02\x9d\x4a\x97\x59\x5f\x5e\x2a\x62\x9a\x90\x51\xa4\x78\x73\x8c\xd9\xa0\x31\x09\x7f\x53\x56\xb6\xcd\x7f\x7e\x23\x30\x84\x87\xc8\x5c\x29\x33\xfd\xc7\x8c\xfd\x34\x24\x91\xf8\xa8\xe6\x68\x75\x58\xb3\xe2\xae\xe8\x41\x8a\x86\xa4\x42\xe8\x41\x4e\xf9\xac\x72\x6a\x22\x26\x11\xfe\xb8\xcf\xa6\x24\x45\x26\x32\x22\x0c\x3c\xda\x4c\x7b\x4e\x6a\x6a\x28\xe7\xc4\x0c\xc0\x84\x16\x67\x6d\x5b\x71\xe6\x9f\x82\xc9\x04\xb7\x16\x04\x5a\x78\xe9\xea\x01\x00\xd2\xf0\xc8\xca\x3a\xd6\xae\xc2\x8b\x98\x76\x7b\xc6\x2f\x7d\x75\xc3\xb5\x75\x55\xaf\x00\x6e\xb3\xbd\x9f\xa0\x26\x56\x44\x3a\xe0\xde\x3d\x98\x06\x95\xad\xee\xc6\xb3\xc4\x24\xc4\x20\x7d\x89\xe8\xc0\x3f\x53\x98\x8e\x49\x52\x82\x9c\x1c\x9b\xc5\xfd\x2a\xd8\x2d\x17\xde\xa0\x98\x34\x14\x04\x86\xcd\x11\x03\x16\x65\x6a\x52\x12\xdb\xf6\x59\x6c\x68\x39\x5d\x36\x7b\x26\x8d\xac\xbe\xfa\xae\x29\x8f\xc8\x1b\x36\xbb\xe1\x18\x11\x33\x6c\x0c\x43\x7a\xc0\x3b\x55\x0e\xd3\xc8\x46\x24\x9a\xd9\xf4\xdb\x48\x51\x69\xfc\xb0\x42\x31\xac\xab\x54\xa2\x69\xe7\xdc\x53\x01\xeb\xed\xc3\xe4\x85\x08\x63\xdb\xb8\x32\xdf\xcf\x5b\x3f\x1d\x9b\x73\xde\x05\x9f\x5f\x36\x3a\x52\x5e\x68\xfc\x0b\x4a\x3c\xa3\xb9\x61\x56\x48\x6a\x55\x74\xca\x31\xd4\x68\x11\x63\x39\xea\x58\xb7\xdb\x59\x9d\xe9\x4e\x9b\xa9\x1b\x01\x89\xad\x9e\xe2\x02\xd9\x69\x50\xb9\xa8\x60\xd7\x88\x5f\x59\xf1\xba\x6b\xca\x72\x97\x97\x9d\x07\x6f\xc0\x08\x2c\x38\xec\xbc\x1e\xd9\xb0\x42\x65\x4c\x12\x21\xe5\xa0\x4b\x3e\xd5\x57\xa7\xc9\xb2\x1b\xbf\x70\xa3\x63\x6c\xb4\x2e\xca\x27\xe3\x55\xf1\xdc\xe4\x62\x41\x10\x6b\x74\x0d\xcb\x03\x14\xab\xd7\xb3\x20\xd6\x8f\x4a\x3b\xd2\xb4\xd6\x84\xaf\x9a\xb7\x1f\x65\x7e\xdc\xb7\x76\x45\x8f\xb9\xf2\x59\x10\x86\x04\x57\xb9\x2e\x9f\xcb\x3c\xbf\x82\xdf\x12\x1b\x8f\x56\x01\x0b\x42\xc6\x22\xd7\x25\x80\x40\x4e\x2b\x2f\xeb\xef\x37\x14\x32\x4a\x3b\x25\xc1\x07\xe8\xfe\x0e\x89\xad\xd5\x96\x45\xd3\x25\xc1\x58\x40\x42\xe1\x69\x95\x1e\x4b\x0d\x83\x1e\x5b\x16\x10\x46\xd0\x7f\x76\xb7\xef\xba\x67\xc7\x0f\x43\x84\x00\x67\xab\x1f\xe1\xb3\xf1\xb1\x56\x59\xdc\xe9\xee\x34\xd2\x60\x27\x45\x66\x53\x2d\x97\x53\x5d\x2c\x88\x68\x8c\x2e\xc1\xfe\x98\x93\xf6\xd9\x26\x3c\x2e\x2c\x88\x52\xbb\x36\x5c\x93\x4f\xd3\x53\x8d\xfa\xab\x51\xa9\xd1\x2f\x2c\xe0\xb3\xd9\x56\x42\x83\x65\xd5\x74\x47\x39\x8d\xfc\x56\x81\x3b\xf2\xba\x2c\xf3\x4d\xa7\xad\xc4\x02\x0e\xb6\x25\xa9\xab\x50\x88\xe2\x6c\x91\xfd\x6b\xfc\x06\x62\x66\x2b\x79\xcf\x58\xa4\x74\xdd\xbf\x45\x93\xfd\xfb\x38\xae\x2e\xb2\x20\x8e\x39\x6e\xdf\xfb\x4e\x3f\x7b\xe8\xcb\xb1\x20\x11\x80\xb8\xcf\x35\xd9\x0e\x33\xb4\x2c\x48\xb4\x46\xa2\xf6\xa7\x5c\x2f\x45\xf1\x97\xe8\xf9\x68\x58\x90\xca\xc0\x29\x0a\xb4\xeb\x18\xdb\x68\xb3\xe6\x74\xa7\x3f\xfd\x00\x11\x1a\xe0\xc3\xdd\x6b\xb8\xee\x58\x20\x49\xa8\xba\x00\xf2\x70\x6c\xae\x87\xf0\xa4\xf1\xcb\x57\x51\xc2\x85\xd7\x88\xee\x37\x74\x16\x28\x9d\x60\x4d\xe0\xbd\x6c\xa0\x9e\xba\x29\x2c\x50\x26\x41\x8a\xc2\x36\x12\x5e\x7f\x5b\x6c\x56\xa4\x8d\x85\xef\x9e\xae\xfd\xef\x75\x12\x2a\x27\xeb\x89\x82\x57\x67\xc1\x17\x0b\x80\x04\x2a\xf4\xcd\x64\x63\x6f\xda\x8f\x50\x11\x19\xb4\xe4\x76\x37\x07\xda\x02\x43\xb1\xbf\xb2\xcc\x11\xca\x36\xff\x7c\xa0\x15\x4a\x1f\x99\x4c\x74\xaf\xc7\x10\x81\x8c\x61\x0b\x9b\xf8\xb0\x45\xc2\x59\xc3\xc7\xc2\x20\x25\x98\x9d\xb0\xb5\x3f\xef\x07\xb1\x30\x30\xb1\x8f\x69\xb1\x10\xee\x59\x7e\x59\x48\x8c\xc4\xb3\x77\xa2\x7b\x17\xce\x1c\x31\xeb\xfd\x8b\xd6\x5d\x97\x39\x6c\xdc\x04\xf1\xb3\x3e\x64\x34\x11\x0e\x24\x73\x68\x4a\x4f\xd0\xd5\x1d\x15\x02\x29\xf7\x94\xee\x12\x2c\x2c\x8c\x43\x5b\x8b\x7a\xc8\xf2\x3c\x2b\x0b\xab\xf7\x34\x9c\x76\x61\x1c\xd3\xc0\x61\x4c\xda\x88\x70\x48\x68\x82\x7b\x64\xe4\x07\x26\xae\xef\x75\xa1\xc5\x1e\x46\xa7\x48\x69\x98\x42\xff\x51\xca\xea\xe4\x03\x14\x3f\x42\xf0\x00\xa1\xc0\xd8\x0a\x71\x0f\xa2\xa3\x9a\x65\xa1\x48\x6c\x0b\x4d\x2d\x72\xb8\x94\x29\xf7\x43\x75\x80\xdd\x63\x59\x8d\x2c\xd5\x7f\x75\x95\x08\x16\x0a\x10\x44\x0f\x35\x23\xcf\xf1\xd7\x7e\xa4\xa1\x98\x18\xd6\x3e\xcb\x5a\x56\x23\xfc\x0e\x0b\x65\x9c\x42\xdf\x62\xf4\xd7\xd1\x13\xed\x6d\xcb\x59\xd3\xc2\x42\x29\x2c\x54\xdb\xa6\x5b\xbd\x08\xbc\xc5\x15\x76\xd2\xe3\xe3\xbb\x90\x32\xf6\x20\xfe\xbb\xe2\xbd\xcc\x14\x7c\x13\xf5\xdb\x44\x0d\x95\x85\x9a\xa5\x64\xc8\x4e\x88\x42\xd4\x5f\xc5\x7c\xed\x4f\x0c\xa6\x70\xac\x72\x9e\xf5\xe6\x26\x1d\xa5\x2c\xd4\x92\x72\xd9\x3d\xe2\xf5\x9f\xe3\x55\x16\x02\x27\x38\xd1\x9c\xba\x2f\x72\xa4\x1e\x75\xd6\x20\xd6\xb3\x9d\x19\x43\xd4\x2d\x0b\x21\x09\xd1\xe5\xde\x3e\xc3\xe7\x60\xd7\x0a\x4d\x14\x27\xa4\xb3\x09\x65\xb5\xb3\x49\xd0\xec\xb8\x3f\x13\x97\x61\xa1\xa1\xa1\xe8\xa8\x77\x0a\x93\x9d\x67\x92\x2f\xe3\x05\x58\x68\xa4\xc4\xa9\xe1\xb9\x7f\x71\xdd\x20\x2b\x65\xf6\x5a\x88\xe6\x58\x5d\xe4\xbb\xf8\x6d\xe6\x66\x60\xba\x42\x03\x21\xe6\x7a\x6d\x55\xf4\x4b\x93\x41\x82\x38\x45\x5f\xca\xc9\x7f\x58\xb5\x96\xbb\x33\xe4\xeb\xf8\x41\x48\x18\x44\x88\x4f\x43\x2e\x71\x64\xf2\xb1\x72\x95\xde\x7e\x90\x90\x9a\x38\xee\xde\x53\xd3\x29\x44\x4c\x1a\x12\x18\x09\x41\x3a\x9d\x99\x36\x92\xf0\x64\x2c\xb3\x93\x86\x84\x26\xc0\xfc\xf6\x6d\x05\x50\xc8\xf2\xc3\x5f\x8c\x08\x4d\x86\x54\xd8\xf3\x48\x4c\x37\x38\x92\x09\x12\x11\xe5\x99\x4f\x28\x32\x42\x15\x50\xd3\xcb\xe1\xba\xbb\xb0\x65\xb1\x72\x89\x6d\xb8\x17\x6e\x89\x71\xab\xbd\x6d\xdb\xf7\x70\x1e\xaf\xab\xf2\x50\x65\xd0\x88\xea\x74\x7d\x01\x5f\xcb\x08\x33\x94\xcc\xe3\xb1\x2f\x41\xb0\xdd\x0f\xb9\x4a\xd0\xb4\xdc\x2d\x9f\x2c\x29\xcb\x3f\xc1\x9b\x32\xc2\x4d\x8c\x4f\xb8\x7e\xbe\x5b\xae\x76\x8b\x9b\xed\xea\x79\xb7\x79\xba\xd9\x76\xa1\x05\x23\x71\x90\x72\xab\xac\xd4\xa9\xa7\xff\xdf\xe6\x15\xdd\x19\x93\x34\xc4\xe4\x09\x5c\x40\x30\x31\x92\x28\x89\xb7\xe5\x5c\x67\x8f\x3b\x7d\xee\xa5\x54\x18\x49\x0c\x78\x09\x9a\x0d\xa8\x63\x05\xd8\xb4\xd0\xc5\x32\x8c\xa4\x81\xc1\xf2\xe0\xa1\x35\x04\x3b\xb2\xeb\x25\xaa\x18\x49\xdb\x50\xa7\x33\x46\xe8\x84\x0d\x8d\x02\x49\x99\x40\x15\xfc\x85\x10\xb3\xa2\xf0\x67\x55\x57\x46\xd2\xa4\x6b\xd3\x59\xe4\xb9\x15\x5e\xc5\xad\xa0\xef\x9a\x1a\xbd\x8f\xae\x8d\x8a\x11\x11\x98\x04\xfc\x7e\xda\x40\xf5\x2e\xf2\x65\x09\xc6\x64\xaa\x9d\x62\x97\x9b\x71\x26\xef\x55\x86\xd6\xb8\x1b\x71\x54\xd0\x74\x7c\x1a\x1b\x50\xdd\x4b\x93\x44\x22\xd5\xdb\x9b\xa8\x7f\x4e\xd8\xba\x18\x91\x69\x80\x89\xba\x8d\x2a\xab\x31\x30\x6c\xf8\xb8\xe3\xa7\x96\x2a\x8c\xdb\xa7\x5e\xd5\x75\x1b\xa3\xf9\xb2\x3b\x23\x2a\x60\x5e\xe2\xfb\xb1\xdd\x32\x55\x59\x55\xa0\x9a\x6b\xa8\x71\x4f\x6b\x63\xac\x43\x59\x35\x96\xdd\xad\xbb\x3f\x15\x06\x21\xb8\xd0\x60\x6c\x74\x88\x0a\x43\xe1\x5c\x94\xa1\x58\x62\x32\x6f\x49\x88\x8a\x2c\x53\x7c\xfd\x56\x1e\x3a\x76\x18\x7f\x2c\x05\xd3\xeb\xd6\xde\xb9\xf2\xfb\xf4\x7a\x86\x61\x3d\xfa\x9b\x28\xf2\xac\xd8\x82\x2f\x9c\xcd\xbd\x05\xed\x10\x27\xb2\xdd\x26\x1f\xfd\x65\x80\x87\x9e\x58\xf0\x3a\x13\xfb\xb2\xd0\x0e\xd6\x3c\x57\x22\x63\x04\x4c\x2a\xad\xac\x60\xf9\x6b\x67\xca\x6a\x57\x94\x1a\x26\x63\x4c\xc4\x2d\xe9\x73\x56\xd7\x7b\x54\x42\x3e\xbb\x6f\x93\xa4\x36\x54\x3c\xfe\xaf\x70\x70\xcc\x2f\x1d\x93\x28\xa0\x06\xdf\x54\xd9\xee\x52\x1b\x68\xfe\xe3\xf0\x90\x15\x57\x13\x42\x00\x16\x85\x91\xe5\xbd\xdd\x34\x22\xab\x36\x0d\x1c\xae\x41\x89\x93\xe7\xe5\xeb\x52\x6e\x6e\x34\xe1\xd6\x19\xb6\x18\x44\x5b\x60\xad\xbb\x83\xa9\x45\xff\xbe\xa2\x7e\xb8\x87\x02\x96\xd5\x7e\x8a\x6a\x63\x51\x44\xac\x9a\xe1\x7e\x28\xa9\x76\x71\x11\x46\x11\x8f\x31\x38\xb2\xdb\xa0\xbf\x5e\xa4\x85\x89\x3b\x53\xde\x9a\xa5\x75\xeb\xea\x21\xa4\xc8\x0f\x31\x16\x42\xb2\xdb\x23\xd7\x7c\x27\x8e\x15\x92\xb1\x6a\x62\x48\x12\xf7\x0b\x1a\xb2\xc0\xdb\xba\xc3\xde\x9f\x87\x0b\x40\xd0\xee\x41\x9c\xae\x32\xdd\xf7\x71\xb5\x5e\xed\xec\xce\x1d\x71\x65\x8c\x93\x76\x80\xaa\x59\xfd\x9b\xdb\x71\xce\x74\x8f\xf3\x4b\x2c\xe2\x5a\xfa\x60\xd6\x0b\xb8\xcf\x51\x79\x0d\xf2\xbd\x2c\x6a\x7d\x64\x8b\x26\x40\x93\x5c\xaf\x2d\xd7\x9e\x6f\x2e\x66\x51\x2c\x63\x54\x6c\x42\xd8\xfe\x25\xaa\x12\x37\x36\x09\x13\xe5\x58\xad\xda\x68\xfc\xbc\x53\xcd\x8f\x8b\x2c\x95\x49\xa7\x8d\x3b\x39\xac\x49\xe2\xa2\xdc\x87\xac\x78\x10\x3e\x16\x8c\x44\x68\xdb\xcc\x9d\x2f\x34\x8e\x4f\x23\x41\x63\x1a\x77\x7a\x86\xb6\x64\xba\x2c\x6b\xcf\x60\xeb\xd9\xd1\x59\x24\x40\x62\x40\x27\x94\x3a\xee\xb1\xb7\xd7\x5f\x40\x86\xca\x6d\x31\xed\x66\x4b\x18\xff\x63\xf4\x7c\xd2\x28\x4c\xcc\xbc\xbb\x48\x63\xf0\x80\xe3\x17\xa1\xb8\x65\xda\x43\x72\xa4\x65\xe9\x32\xbf\xf5\x74\x54\x6c\xbb\x68\x6b\x40\xac\x96\x6b\xe1\x9f\x0a\xd0\xb1\x48\xc9\xee\xb5\x76\x09\xe2\x89\xbf\x32\xe4\xf8\x72\xbf\xd2\x8c\xe0\x97\xad\x1b\x38\x6c\x3f\xca\x36\x56\x1f\xa1\xa8\x59\xa4\x39\x87\x5e\x8e\x7e\x71\xfc\x74\x1d\x86\x93\xcf\x01\x2a\xc0\xce\x1a\x37\x2c\xab\x90\x16\xef\x9c\xb3\x9c\x45\x26\x80\xd0\x75\xeb\xdf\x56\x62\x86\xaa\xb1\xb7\xc0\x91\x09\xa3\xa4\xf7\x82\x10\x58\xbf\x45\xb1\xcc\xc6\x06\x2f\x33\x5c\x81\xb3\x96\x8d\x06\x21\xf7\xee\xf5\xce\xe2\xc1\xb3\x62\x87\xe2\x20\x3b\x40\x25\xbd\xc9\xf0\x48\x46\x36\x9e\x76\x24\x1e\xf7\xa0\x5f\x7d\xb3\xf4\x0c\x44\x82\xd1\x40\xcb\x78\x40\x0f\x38\x8d\xc2\xdd\xa8\x30\x10\x08\x02\xfa\x75\x52\x4e\x21\x6b\xdc\x49\xc0\x68\x18\x1b\x6c\x3f\xf5\x4c\x2c\x77\xcb\x27\xff\x41\x26\xa7\x12\x96\xb5\xd0\x65\xdf\x47\x4c\x9e\x8c\x12\xa2\x13\xe1\x58\x8f\x37\xa5\x6f\xab\x65\x94\x88\x00\x33\xdd\xad\x89\x38\x1e\x16\x79\xbe\x39\x54\xd9\x54\x15\x83\x51\xa2\x22\x04\x7f\x62\x4b\x8f\x63\x92\xf4\xa7\x88\x42\x86\xdb\xcd\x06\x9a\xab\xe3\xa9\x3c\xce\xef\x1f\x7e\xb0\x88\xc1\xd1\x78\xb4\x73\xeb\xe5\x80\x9e\xeb\xe4\x8b\x9f\x65\x62\x19\x8d\xa4\x80\xb8\xab\xc4\x23\xa9\xac\x07\x61\x8e\xdf\x17\x0d\x0c\x7e\xd8\x5b\x74\x9a\xfc\x3d\x52\x1a\x8b\xa1\x1a\xe7\x72\x2a\xd6\xcb\x28\x65\x29\xb5\x8d\x10\xad\x33\x31\x60\xad\xf0\xc7\x93\x00\xc1\xf6\x4b\x28\x9a\x4a\xe4\x59\x73\xba\xcd\x4c\xb3\x79\xeb\x5f\x04\x35\x81\x55\x89\xc9\x0a\x51\x3c\x8f\x78\x74\xdd\x08\xe6\xd2\xe6\xee\x3d\x17\xaf\xd8\x7c\x3a\xf4\x13\x29\x4b\x02\x4c\xaa\xea\xaa\x6b\x8c\x60\x94\x19\x83\x96\xc1\xc7\x1d\x1d\x1b\xc7\xaa\x79\x43\xe9\xe8\xc1\xa3\xf2\xc0\x0a\x98\xec\x7c\x95\xf3\x8c\xfb\x65\xfe\xcb\xf0\x38\xf6\xa8\xf0\x27\x24\x8b\xda\x66\x4d\x8e\xd5\x9b\x32\x9f\x97\x75\x64\x94\x27\x01\x8a\x34\xac\x4f\x95\xd8\x67\xd3\xa9\xcb\x95\x44\x23\xa9\x3c\xb5\xcd\xe0\x87\xc6\xba\x37\x76\x77\x78\x84\x8f\x6f\xd7\x7f\x92\x60\x16\xf3\xc0\x68\x1c\x11\x9b\x4a\xea\xe0\xaf\x9d\xeb\x3b\xec\xa4\x69\x07\x9a\x38\x19\xbc\x26\x84\x50\x3e\x63\xbc\xb7\x2d\x47\x74\x8c\xfe\x07\x69\x8a\x59\xda\x35\x54\x75\x39\xdb\xb4\xc0\x68\x2c\x34\xd6\x5f\x7a\x1e\x4e\x13\x72\xff\xb2\x63\x50\xd4\xf3\x6a\xce\xe8\xdf\x8e\xee\x2e\xe1\x21\x36\xb3\x6e\x10\x4e\xdf\xd3\x7e\x5c\xda\xb0\xa6\x9f\xeb\x8b\x9e\x2c\x7f\x85\x44\x44\xbe\xde\xf3\x31\x60\x89\xf6\x3e\x09\x4d\x69\x80\x65\xbc\x6b\x78\x17\x9d\x34\x21\xa3\x29\x8f\xf1\x33\x3e\x8a\x7d\xe6\xd9\xa8\xc7\x3a\xe9\x93\x82\x72\xfb\x13\xe0\xb6\x54\xfb\x31\xa5\x42\xfa\x07\x3d\x82\x8c\xa6\x42\x85\xbe\x95\xeb\xf1\x66\x7b\x53\x56\x23\x8a\x87\xb9\xa4\x06\x15\x44\x26\x9e\xd1\x0b\xbf\xc4\x37\x51\xbf\xdd\x40\xa3\x7c\x1d\x80\x4a\x22\x70\xd3\x95\xc7\xaa\xe8\x39\xca\x19\x95\x02\x74\x2f\x66\x8f\x64\x56\x80\xfb\xcf\x64\x3e\x28\x22\x52\x31\x15\xd3\x1c\xf6\x1d\x31\xaa\x34\x35\xb1\x97\xcb\x19\xe8\x67\xba\xc3\x3a\xb2\xb1\xad\x6f\x6d\x58\x0c\x7d\x58\x0a\xa1\x8d\x30\x37\x47\x79\xa8\xc0\x8c\xa0\x2e\x8c\x82\x91\xe8\x47\x5c\x7d\xbf\xf2\x7f\x32\xc6\x0a\x1e\xb5\xa6\xe3\xbd\x6c\x60\xdd\x7a\x26\x23\x07\x86\x05\x81\x8a\x9c\x25\x5b\x5c\x04\xaa\x31\x16\x10\x89\x4d\x70\x48\x9c\xb0\xb3\xa5\x21\x7f\xd7\x2c\x30\x09\x6a\xf2\x15\x62\x3f\x41\x8e\x32\x16\x12\xed\x39\xa0\xb7\x9b\x9e\x8e\xd1\x1f\x8d\x04\x3a\x37\x2e\x45\x0d\xef\x36\x8f\x3d\x39\x05\xb7\xed\x43\x1b\x28\x34\xfa\xed\xdb\xf2\x9c\x20\x8c\xb1\x30\x89\x31\x68\x35\x99\xf7\xdd\x58\xa8\x01\x9d\xba\x87\xb2\x80\xe6\x4d\xb8\x30\x67\x03\x33\xa5\x46\xc6\x48\x14\x1a\x67\x2a\x73\x51\x41\x2f\x23\x31\xf4\x8b\x18\x51\x09\x1a\x88\xfb\xf2\xb5\xbd\x9f\x1b\x91\xe5\x7f\xcc\x55\x5e\x19\x8b\x58\xc0\xc1\x3f\xdb\x90\x5d\xd4\x1f\xe7\x06\x37\xb1\xfd\xb1\x19\xac\xa6\xd6\x3b\xc6\xc7\xc8\xed\xf4\x99\x21\xf9\x6c\xc7\x30\xc4\xca\x29\x14\x13\xa8\xbd\x9c\x06\xe8\x45\xd3\x9d\x46\xb0\xd4\xee\x9e\x6d\xc8\x7f\xac\x2e\x6c\x2e\xe3\xdd\x8a\x45\xca\x2a\x65\x37\x19\x54\xe4\xfe\x69\xdb\x9d\x0d\x42\x4f\xc5\xfc\x52\xfb\x2e\x97\x73\x79\x3d\xc6\x68\xa8\xd0\x8d\x58\xdc\x2d\xbb\x1f\x53\x11\x63\x2d\x78\xfd\x74\xf7\xb8\xdd\xec\xb6\x4f\xbb\xcd\x7a\xf5\xe8\x2b\x19\x8c\x11\x2b\x51\x8b\x15\xde\xee\x8f\x94\xa1\xce\x3a\x56\x05\xd5\x6c\xca\x63\xf4\x59\xb8\xb0\xfc\x5b\xff\xb5\x58\x2f\xfe\xf4\x27\x89\x4d\x82\x25\x80\x7d\x59\x34\x6f\x84\x2a\x5b\x48\xb0\xd4\x85\x7e\x4c\xd2\x3a\x51\x6e\x57\xd8\x35\x1f\x25\x32\xa5\xac\xfe\xfd\xd2\x86\x77\xa3\x77\x9e\x50\x8a\x09\x7b\xa1\xb5\x67\xb8\xf8\xda\x24\xb2\x94\xd8\x1d\x1b\x5b\x95\xf5\x40\x61\x99\xb1\x94\x59\x04\x6d\x7b\x27\x93\xa6\x8a\x4b\x27\x03\x45\xac\xf2\x01\x92\x34\x39\xb2\xbe\x95\xeb\x5c\x9a\x8f\x8d\x98\x0c\xad\x7a\x08\xda\xf2\xa7\xf6\x06\x36\x48\xda\x3a\x9e\xd2\x52\x1a\xe3\x30\x68\xd7\xad\xc1\xb7\xe0\xcd\xf9\x33\x2a\x16\x6a\x9b\xaf\x79\x7f\x87\x62\x07\x16\xef\xed\x0f\xa6\x36\x79\x87\x88\xc0\x3f\xdb\x18\xa0\x4f\xdb\x31\x25\xa4\xe7\xb6\xeb\x10\x9b\x23\xfb\xcb\x94\x0a\x11\x00\x56\x38\x05\xe4\x9f\x90\x0d\x6b\xab\x4c\x69\x16\xf6\xfa\x64\x8e\xa9\x67\x7c\x7b\x9a\xf0\x40\xf7\xb5\x93\xc7\xf2\x19\x8c\xff\xb9\x06\x85\x3c\x20\xb9\x2d\x20\x5e\x2a\xdb\x33\x06\x69\xe4\xa1\xc1\xd7\x9d\x8a\xa4\x3f\xa6\x22\x54\x12\xb8\x3a\xe6\xbf\xa6\x69\x8c\xb9\x53\x41\x82\x2c\xdf\x57\x7f\xf9\x24\x0c\x0f\x88\xa5\xa1\xb6\xe5\x8d\x76\x35\xdd\x94\x15\xb6\x1f\x8c\x55\x25\xe7\xea\xd8\x3c\x88\x4c\xd0\xd3\xd8\xac\x44\x95\x9f\xee\x0a\x55\xee\xe1\xea\x34\x9b\xc3\xe1\x41\x2a\x30\x5d\xe1\xe0\xd4\xbe\xdd\x61\x90\x96\xe4\x81\x48\x71\x62\xeb\x23\xe4\x8b\xa2\x6c\x67\xc9\xb2\x7c\x37\x60\x2e\x38\xe1\x3c\x8c\x62\xd2\x09\xba\x87\xfe\xb9\x42\x19\xa2\x0a\xae\xa3\x3d\xbc\x12\x8d\x7a\xfb\xfd\x1b\xe2\x84\x70\x68\xe7\x4c\x89\xd9\x45\x91\x2f\x0e\x87\xdc\x31\x9c\x6e\xb2\xd7\xe2\xe5\x30\x9a\xab\x9c\x10\x95\xb6\xd7\xfe\x5c\xbd\x3c\x0f\x8a\x23\x9c\xc4\x56\x28\x58\x89\x3c\xf7\x5a\xf9\xe3\xbb\xa6\x89\xc5\xa4\xa9\x66\xe4\x54\x73\x16\xa5\x98\x56\xdb\xb9\x98\x62\xf4\xd0\xe9\xbc\x14\x20\xe3\x0c\x0c\xc2\x90\x71\x1f\xf8\x39\x24\x55\x61\x9c\xeb\x08\x17\x77\x5d\x9a\x66\x29\x0e\xcb\x6f\x37\xfe\x48\x1c\x28\xcf\xd3\xb0\x43\x0a\x1f\x51\xc9\xac\xa9\x77\x07\xa8\x5c\xdc\xe8\x07\xa6\x11\x36\x5e\xa1\x22\x59\x36\x09\xfb\x78\xac\x2d\xc3\xe4\xa1\x82\x83\xa8\x00\x45\x62\x2e\xb6\xdf\x32\x9e\xa4\x96\xa0\x7f\xf3\xb2\xdc\x9e\xf1\x34\x31\x9e\x88\xc0\x4d\xe9\x13\x42\x9c\x91\x75\xaf\x6b\x12\x39\xf6\x64\x2f\x7d\xa2\x78\xb6\x35\x96\x71\x11\x6a\x24\x0b\x7e\x28\xab\xd6\x4b\xf8\x06\x79\x6e\xd9\x07\xfc\x63\xc9\x48\x87\x61\xcf\xb5\xa9\xbd\x94\x40\x97\xc4\xe2\x92\x07\xd8\x4f\xbe\x1b\x60\x01\xbb\xf6\xbd\xf1\xd5\x24\xd8\x5c\x83\xf6\xca\x04\xbb\x02\x3e\x6c\x34\x3e\x9e\x33\x12\x8c\xb6\x8a\x4d\x28\x9d\xad\x77\x16\x92\xbb\x3b\x8c\xbc\x18\xae\x88\x50\x81\xc7\x49\xfc\x84\xcc\xbe\xd3\xae\x54\xc4\x15\x93\x48\xaa\xe0\xf3\x51\x8e\xf4\xee\xc2\x22\xd1\xa1\xed\x92\x75\xac\x01\x3f\xc4\x31\x6f\x66\x39\x5d\x18\xd7\x31\x0f\x1c\x58\xd0\x3a\x56\x13\xe1\xc0\x79\x8b\xc0\x75\xca\xb1\x4e\x78\x2c\x66\x72\x91\x7e\x8c\x01\xa4\x8f\xf0\x99\x47\x0e\x31\xc1\x92\x9b\x53\x78\x73\x66\xa4\x3f\x2a\x85\x27\xd3\x6c\xc3\x37\xbf\xa7\x8c\x2f\x6c\x88\xb6\x1c\x84\xc7\xa6\x7c\x78\xba\xba\xbb\x5f\x0d\x1a\x28\x18\x37\x4c\x22\x6f\xa8\x0f\xa3\x7c\x0f\xc7\x74\x6b\x32\xa9\x44\xb7\xee\xbb\x4b\x6c\xad\x9e\x97\x24\xf0\x24\x2e\x5f\x19\xfb\x38\x60\x56\x23\xe9\x00\x95\x29\x2b\xa7\x89\xb5\x69\x84\xfa\xb5\x6e\xfc\x12\x8a\x89\x14\x08\x9f\x5a\xae\xee\x7f\x9f\xa7\x8d\xa3\x50\x79\xf5\xd9\xed\x9f\x9b\xd9\xe7\x8e\x23\x91\xa2\x83\x78\x95\xe5\xa2\x81\xaa\x2b\x2d\xc4\x94\xa4\x40\x3a\x16\xbc\x65\x59\xe8\xcc\x8a\x6b\xde\x67\xb2\x9a\xb8\x7d\x31\x4d\x63\x0f\x1a\x74\x09\xd3\x91\x50\x0c\x8b\xa9\x02\x41\x7d\x8f\xcb\x98\xfb\xc6\x8d\x60\x24\x88\xfa\x1c\x1a\x12\x78\xfc\xb3\xbc\x55\xcc\xa8\x95\xd4\x40\xc9\xd7\x88\x4f\xcf\x9b\x30\x46\x3a\x42\x80\x71\xb6\xcf\x0d\xe1\x5c\xf8\xa2\xc7\x25\xe9\x4a\x16\xc7\x60\x30\x13\xa9\xf2\xb2\x86\x75\xd9\x8c\x96\x63\x9c\x08\x88\xc8\x00\x09\x2d\xc5\x9c\xdc\x8b\x1f\x0c\x36\x63\xf7\x2c\x74\x76\xdc\x0f\x21\x6b\x2c\x4e\x03\xa9\x2d\x15\x02\x42\x22\xc3\x01\x4f\x02\x8b\xd3\x30\xc1\xc4\xfb\xa1\x51\xc8\x59\xd3\xfd\x28\xa2\x18\xa3\x79\x10\x5c\x7b\xf3\x5d\x3e\xe4\x3f\x1e\xba\x61\x40\xb9\x45\xb9\x5b\x96\x8e\x2f\xb9\x06\x58\x2c\x12\xea\x5e\x4b\xa1\xc7\x6b\x2a\x56\x41\x8a\x08\x7f\xeb\xb5\xfc\x31\xeb\x7d\x7f\xa1\xcf\xc3\x62\xc5\x21\xb1\xe7\xce\xf3\x79\x64\xfe\x59\xcc\x3f\x7c\x11\x0a\x18\xa6\xe8\xdc\x8e\xfa\x1d\xe0\x30\xcd\xb6\xc6\x3a\x64\xdc\x56\x7a\x9a\x06\x26\x1c\x58\x2c\xd6\x49\x88\x65\xb8\x87\xa7\xc7\xc5\xf2\x69\xb5\xd9\x2e\xbc\x6b\x1f\x43\xcc\x13\x27\xa0\x75\x3f\x23\x43\xdd\x7b\x19\xb1\x69\xbd\xf1\x36\x80\xbc\x1a\x06\xad\xb1\x71\xcd\xf5\xa8\x3f\xd0\xa8\xb7\xbb\xc2\x94\x6d\xe0\x1c\x90\x6e\x04\xb7\x04\xa5\x15\x08\xbd\xdc\x5e\x9f\x2f\x87\x24\xa0\x0c\x65\x19\x36\x4d\xeb\xad\x39\x3a\xfb\xb3\x8c\x76\x12\xc4\x56\x31\xe5\xe6\xee\xcf\xd5\xf5\x6e\xfd\xbc\xda\x2c\xee\x57\xbb\x97\xcd\xb5\xe5\x8e\xdd\x61\xc9\xf9\x0f\x3f\x38\x0d\xad\x1c\x47\x8f\x75\xdf\x40\xa1\xd6\x50\x3d\x74\xe8\xe1\x76\x54\x87\xa2\xdd\x20\x99\xd9\xf3\xb0\x18\x3d\x7a\xc7\x49\x20\x98\x0f\x84\x9f\xc1\x55\x3e\xfc\x79\xc2\x24\x40\x1d\xbf\x9d\xb4\x24\xc8\x59\x2f\xa1\xf8\xdf\xff\xf3\xaf\xf3\xff\x38\x0e\x68\x0c\x58\x12\x0a\x82\xf6\x1d\xeb\x65\x3b\x39\xda\x4d\x92\x50\x45\x5e\x21\x6f\xf3\x6d\x41\x18\x1f\xae\x92\x24\x34\x06\xdb\xca\x96\xe5\xe1\x84\x7b\x82\x0f\x28\x7e\x1b\x71\x25\x24\xd0\x98\x13\xed\x15\x9f\x27\xfb\x65\x42\x12\x89\x2c\x18\x07\x71\xb2\x22\x2a\xe3\x17\x12\x31\xdb\xbf\xd9\xfa\x38\xc7\x26\x83\x39\x57\xa3\x3f\x19\x0d\x43\x74\xfc\xea\x53\xa1\x26\x27\xa2\xc4\x4a\xdd\x2c\x8f\x72\x9a\x79\x4e\x68\x64\x50\x62\x08\xe9\x6d\x2e\x9c\x39\x76\x5a\xb2\xd9\xdf\xf0\x64\xce\x49\xd7\x59\x42\x75\x82\x81\x89\x95\x5b\x71\x2a\xdc\xb3\xad\x5b\xa3\x13\x33\x1e\x22\x01\xc9\xf5\xdd\x66\xf9\xf4\xf2\xb8\xdd\x6d\xb6\x8b\xdb\xd5\x6e\xfb\xf3\xc9\x7f\x9c\xd6\xee\x78\x20\xa1\xb6\x90\xee\x06\xf6\xf5\xac\x58\xd6\xf8\xed\x73\x63\xf9\x2e\x77\xf5\x51\xd6\xc3\x5b\x76\xb7\x30\xbe\x93\x98\xdb\x04\x4d\xfb\xaa\x45\xa5\xb7\xe5\xca\x5a\xa8\x3f\x86\x96\x70\x98\x11\xfd\xda\x8c\x24\x71\xa2\x38\xf3\x2d\xa3\xb8\x40\x86\x50\x94\xdf\x38\x2e\x49\xac\x52\xcc\x81\x49\x6c\xf2\xb0\x45\xad\x11\x66\x2c\x89\x95\x6d\xf9\x76\xca\x42\x1b\x54\xc6\xc0\x48\x02\x33\x25\xe7\xdb\x4b\x12\x6b\x41\x5c\x0c\xbb\x16\xea\x97\xf0\x34\x35\x67\x0f\x95\x0c\x37\xc7\x24\x11\x29\x72\xa9\x56\xc7\xfa\x2d\x6b\xa0\x6e\x32\x35\x24\xff\x60\x49\x1a\x4a\x5c\xb5\x96\xb6\xa2\xab\x84\x61\x9a\x73\x10\xd5\xb4\x77\xd2\xad\xc7\x34\x49\xbc\x81\x43\x2e\x89\x0a\x2a\x4b\xbe\xd7\x3d\x9f\x50\x21\x22\xc2\x3c\xf5\x64\x7d\xe7\xf2\x7d\x93\xd9\x2b\x09\x20\xa1\xc4\xbd\x35\x29\xf7\xd9\xbf\x8f\x99\xf7\x47\x13\xc9\x6c\x8a\x64\xd3\x54\x20\xf6\x59\x73\x72\xcd\xd7\xe3\xc5\x21\x63\x00\x2f\x74\x92\x8b\xd7\xaf\x89\xdb\x58\x22\x05\x45\x28\xcc\xbe\x7d\x40\xff\xd2\xb7\xed\xce\x90\x9f\xda\x17\xdb\xe7\xf7\x7a\xfd\x4c\xf7\x53\x15\xc4\xe8\xba\x1b\x68\xd4\x1b\xa6\xcb\xaf\x4e\x77\xba\xf5\x96\xd7\xad\x53\xdb\x46\xa8\xfb\x6c\x3e\x4b\x9e\xa8\x28\x40\x18\x21\xe2\x15\xfc\xd6\x9f\xe8\x48\xa0\xe3\xae\x8f\xfb\x43\xbb\xb8\xff\x38\x6f\xac\x62\x89\x16\xc6\x23\x45\xad\xfa\x58\xf6\x37\xe8\x6d\x79\x3d\xa8\x18\xbb\x91\x46\x5b\xa6\x2e\xdc\x81\x0d\x12\xf8\x23\xdf\xea\x20\x18\x4e\x8c\xa1\x68\x24\x30\x3a\xdf\xbe\x65\xf5\xb8\x4b\x8d\xa5\x01\x23\x88\xce\xb4\xe6\x1c\x9f\xce\x95\xee\xbf\x79\x2f\xdc\xed\x61\xbe\x52\xef\xff\xf5\x77\x9c\x06\x71\x9a\xf6\x50\xb2\xdf\x68\x77\xb3\x34\xe4\x04\x91\xa8\x4f\x3f\x57\xc3\xa9\x99\x86\x71\x80\x8e\x05\x82\x8d\xb2\x4e\x8f\x6b\xc2\x9f\x31\xef\x5a\x4c\x2f\x11\x4b\x61\x7a\x9e\x0f\x1b\xac\x74\xc7\x34\x0c\x04\xf1\xfc\x4c\xf5\xec\x66\x9e\xb2\x61\x46\xef\xc9\x9f\x40\x5b\xdf\xa8\x35\xf1\xf5\x2b\xf6\x48\x62\xd1\xc9\x5f\x80\x30\x69\x09\xd4\x72\x10\x95\xff\x84\x33\x15\xfc\x34\x0a\x62\x84\x1a\xb4\x41\xd2\x18\x7d\x16\x4e\x2e\x19\x25\x94\x59\x9f\xa7\xcc\xf3\x65\x95\x35\x99\x12\xf9\x75\x9f\x4a\x4a\x69\xc0\xb8\xe9\x30\xed\x0a\xee\x8a\xd5\xe7\x1c\xcb\x00\x4b\x29\xb3\xe8\xf6\x57\xbb\xb1\x4c\x33\x4e\x29\x15\xa1\x6d\x06\xc8\xde\xe1\x76\xd2\x55\xdd\x1e\x25\x96\x41\xd5\x4e\x17\x6c\xcf\xac\x67\x4d\x87\xff\x81\x24\x56\x59\xec\x79\x85\x8a\xe7\xad\xcd\x78\xde\xee\xa8\xbf\x71\x26\x52\xec\x4c\x43\x4a\xcf\x5b\xb1\x87\xdb\xcc\x5c\x9a\x38\x4c\x72\x04\x80\xdd\x66\xfb\x3c\xeb\x4e\x60\xec\x6c\xfa\xf7\x51\x38\x5a\xa9\x6b\x68\x03\xb9\xf6\x9d\xab\x12\xea\x47\x68\xbf\xb2\xa8\x32\x51\xaf\x45\x25\x5e\xf6\xe2\xb1\x7c\x17\x4f\xc7\xf7\x4c\x97\x55\x26\xd6\xa5\x86\x6a\x03\x4b\xa1\x45\xdd\x54\x1d\x62\x38\xe5\x71\x10\xa5\x1d\x2b\xd6\x83\x27\xfa\x9a\xf7\x85\x52\x9e\x28\xe4\x5d\x1c\x5a\x8d\x1f\x76\xee\x5d\x78\x96\x98\x9b\x74\xd0\x8b\x04\x43\x55\x5c\xbf\xad\xa6\x71\x9a\x22\x6c\xdf\xbe\xec\x05\xb6\x51\x8e\x84\xac\x66\x27\x7f\x42\x12\x94\x5e\xb0\x78\x97\x1b\x91\xd7\x30\xd8\x11\xd2\x84\x81\x17\x4e\x1f\xd0\x26\xb0\xb4\x35\x63\xe0\x85\x8b\xbe\x67\x79\xd9\x1d\x48\x35\x52\x3c\x14\x59\x31\x75\x47\xd2\x14\x8c\xe5\xd2\x2f\xaa\x8b\x65\xd1\x54\x44\x31\x73\x3e\xf1\x40\x7c\xf0\x82\xb0\x07\x4b\x85\xb2\x2d\x12\xf2\xf8\x75\xc3\x32\x4b\x05\x18\x6a\xef\x4c\xfd\x9a\xb4\x72\xb1\x54\x98\x08\xd9\x11\xb3\xda\x37\xc5\x77\x60\xeb\xf1\x40\x19\xa6\x91\xf0\xdb\xa8\x2a\x2b\xfd\x85\xc6\x07\x4b\x65\xac\xc1\x0a\x97\x15\xf5\x71\x0f\xcb\x32\x2b\x6e\xca\xaa\x9d\x53\x17\xbe\xb4\x12\x4a\xba\x0e\xf4\x87\xac\xf8\x09\x99\xab\xb7\x4d\xde\xa4\xe6\x69\x62\x5b\x34\xb0\x3b\xfd\xbe\xac\x9b\xd1\x5c\xd0\x69\x84\x0c\xa4\x1e\x44\x86\xe9\xf7\x8f\xf2\x63\x36\x4d\x9a\x6a\x69\xac\x23\x9f\x99\x66\xf7\x35\x3c\x2d\xd5\x60\xd0\x5f\x5c\x5c\xfd\xb5\xd9\xf8\xcb\x81\x12\x5e\xa3\xd0\xe6\x70\xee\xf4\x85\x94\x6c\x6a\x22\xc0\x6a\x3c\x36\xdf\x4e\x9e\xca\x24\x02\x69\x14\x6e\x6f\x96\xbe\x88\x97\x9a\x54\x63\x7e\xd6\x46\x36\x96\x13\xd7\xb2\x9d\xcc\x9e\x5f\x04\xa1\xf4\x74\x0b\xcb\x76\xfe\x4f\x7a\xa8\x3b\x59\xed\xe1\x3f\xbe\x3e\x29\x02\x66\x77\xce\x9b\x65\x8f\x2d\xd8\x0e\x58\x2c\xe7\xbe\xb1\x20\x24\x41\xfc\xbb\x5b\x94\x63\x67\x4e\x10\x61\x35\x46\x0e\xc7\xaa\x86\xae\x60\xe1\x0f\x2a\xe9\x49\xb8\x9d\xfc\xc4\xf8\x8d\x08\x62\x2c\x01\xaa\x6a\xb7\x4e\x64\x3f\x00\xa8\x9f\xe6\x95\x83\x99\x88\x88\xc2\xb9\x79\xbb\x7a\x58\x7e\x5b\xdc\xf9\xa4\xbb\x88\x84\xc6\xd9\xd0\x49\xc4\x5e\x95\x97\xd2\xa5\x82\xb2\xd8\x4b\xb1\x3c\x43\xad\x8e\x73\xfe\xa6\x60\x14\x90\xdc\x63\xe3\x33\x06\x6d\x98\x80\x95\xaf\xff\x6c\xcd\x62\x56\x8e\x60\x19\x82\x19\x8a\x7e\xa6\xe7\x62\x75\xb8\xcb\xf3\x2e\xb6\xd6\x8c\xce\xdf\x16\x67\xd2\xca\x69\xbc\x81\xfa\xf5\x0e\x6f\x15\xd4\x87\xf2\x5c\xf9\xda\x8f\x16\x31\xae\x22\xd1\x5a\x5a\x12\x58\xf5\xa0\xee\x93\x70\x6d\x49\x77\x6a\xc8\xf3\x87\xd3\x95\x28\x44\x31\x09\xaa\x45\xac\x03\x5c\x5f\x98\x96\x86\xe3\xfe\x06\x29\xae\x2c\xb0\x43\x0d\x10\xb2\x22\xd6\x16\x1f\x77\xa8\x7a\x50\xc2\x18\xf3\x25\x92\x08\xd0\x68\x61\x84\x99\x86\x93\x2b\x25\x69\x8a\x61\xd2\x9b\xc8\xfb\xb3\x26\x8a\x45\xce\x6d\xdd\x43\x5d\x67\xcb\x72\xbf\x3f\xb6\x11\xf6\xfc\x9c\x4f\x13\xcb\x73\x94\x15\x66\x00\xad\x13\xa9\x14\x89\xf6\xca\xa1\x79\x6e\xf9\x1f\x26\x97\x4f\x95\xb1\x4a\x80\xd9\x67\xf3\xb6\x05\xb1\xef\x05\xb0\xfc\x69\x70\x55\x74\xe8\xa1\x6f\xc7\xbd\x28\x36\x8d\x28\x34\x86\x52\x83\x84\xfa\x14\x6b\x71\x9e\x67\x14\x82\x46\x34\xf1\x88\x8f\xe6\x98\x8b\xac\x82\xdd\xb2\xdc\x1f\x1a\xd8\xa5\x93\x3b\x13\x8c\x8e\x7b\x68\x87\x1b\x9c\x90\x11\x45\xd7\xc2\x96\xeb\x7a\xe0\xda\x68\x0a\xcd\xda\x01\x21\x19\x8d\xad\x1e\x0a\x76\x1e\xc2\xe3\x71\x4f\x7e\x76\xb5\x14\x21\x93\xd4\x53\xac\x20\x51\xe7\xe8\x01\x24\xc4\x96\x2f\xb6\x46\x8e\x7a\xd1\x25\x31\x84\x92\x01\xb6\x3e\xde\x3f\xdd\xee\xae\xa0\xf9\x79\xae\x15\x30\xb9\x0d\xa5\x2c\x07\xeb\xda\x92\x4a\x99\xaa\x75\x29\x8e\x0a\xdb\x4b\x06\x4b\x4d\x69\x12\xf4\x56\x1d\x93\x3c\x37\x55\xb9\x7f\x42\xce\xf5\x9b\x72\xd2\xf9\x22\x74\xc0\x10\x51\x3e\xe8\x58\xf8\x1b\x8a\x2f\x28\x2d\x98\xd0\xa1\xfd\x28\x16\x85\xe0\xdc\xf9\xaf\x03\x25\xa1\x25\x21\x3e\xec\xb8\x6a\x1d\xc3\x42\xcf\x77\x8e\x08\x0d\xd6\x43\x54\xa2\xd0\x43\x41\x56\x26\x80\x33\xe9\xaa\xea\xb7\xfd\x5e\x01\x32\x95\xf1\xa0\x0e\xd1\xf5\x90\x75\xa5\x08\x61\x38\xc7\x70\xe9\x5b\xf9\x71\x5f\x16\xaf\x77\xf5\x75\x56\x1f\x8e\xad\x57\xf4\x0e\x22\xdf\x34\x59\x9e\x3f\x1f\x91\xce\x75\x3c\xa5\x64\xc0\xed\xc2\xbf\x7b\xfc\x3e\x6a\x97\x94\x41\x6a\xf5\x30\x91\x15\x1d\xef\xde\xaa\xa6\xb9\xc3\x61\x9a\x22\x34\x08\x0a\x3d\xf5\xd3\x46\x0f\x2b\x43\x08\xfd\xba\x6d\x7e\xaf\x49\xe4\x7e\x44\x08\x51\x7d\x01\x5a\xec\x48\x30\x9a\x73\x92\x10\x9b\x29\xf2\x9c\xb6\xd3\xd3\xfa\xc8\x5b\x46\x5c\xe0\x9a\xa8\x1b\x91\xc3\x90\xd2\x81\xc9\x28\x26\x68\x01\x46\x85\x5b\x7f\x4c\x87\x18\x49\x37\x50\xec\x45\x95\x95\xc5\xa0\xb2\x28\x69\xc0\xd1\xcf\x6b\xef\x0c\xff\x3e\x7e\x60\x1a\x2a\xcc\xa0\x2d\xbe\xd3\xe4\x37\xec\x5f\x4c\x52\x21\x10\x67\x0e\x3a\x6b\x1e\xb2\xbc\xf5\xb2\x8a\xcb\x08\xae\xe9\xbf\xb3\x67\x34\xb1\x8e\xdc\x34\x7c\x85\xa2\xb1\x30\x50\x5b\x3f\xbd\x3a\x59\xa6\x86\xd9\x69\x29\x59\x94\x60\xd5\xbf\x80\xcf\x06\xd3\x73\x43\xd2\x26\x26\x59\x92\x22\x6e\x6d\xdf\x6e\x01\x7d\x0b\xa4\xe4\x94\xe0\xf3\xee\x6a\x68\x2c\xa7\xab\x2f\x54\x77\x2b\x56\x72\x10\x89\x95\x69\x9d\x96\x2e\x65\x1c\x58\xc2\x2b\xcc\x2f\xd8\x58\xd0\xa2\x8e\x2e\x35\x94\x9d\x97\x8c\x65\xcc\x92\xb0\x53\x42\x19\x75\x55\xca\x38\xb1\x0a\x52\x79\x89\x0b\xb9\x7d\x0b\xe1\x42\xeb\xf9\xc6\x8c\x09\x12\xe6\x1f\xff\xbf\xee\x5a\xb6\x23\xec\x11\xe4\x31\x17\xa3\xd5\x94\xc4\x56\x1a\x72\xd3\xbc\xde\x94\xc7\x0a\x6f\x74\xd5\xef\xdd\x32\x85\x94\x90\x9e\x96\x0f\x0a\x84\xff\x35\x62\x7f\x98\xbc\x2e\x11\x59\x4c\x17\x7a\x7d\x2e\x7a\x9c\x35\xf8\x52\xa6\x21\x27\x7e\xa4\xd0\x17\xba\x62\xa5\x54\x51\xe8\x6a\x8d\x8f\xcb\xcd\x99\xb4\x6a\x3b\xc0\xea\x92\xfb\xea\xdd\xd5\x69\x1e\x08\x25\xa5\xe6\x98\x75\xb6\x70\x8a\xbe\xd7\x72\x72\x5b\x10\x4b\xcb\xd4\xf2\x0b\xc6\x94\x94\xf3\x5b\x81\x8a\x63\x74\x8e\x2d\xa9\xd4\x1a\xaa\xef\x43\xdc\x8c\xd4\x21\xe3\x2e\x97\x70\x9d\xd5\x2a\x3b\xe4\xf0\xe3\xac\x33\x47\x6a\xc7\xc8\x27\x8f\x27\x4b\xa2\xf9\xcf\x14\xf8\xdd\xaf\x21\x50\x28\xc8\x8b\xf5\xc8\x75\x55\x7e\xce\xf3\xd9\x8f\x9f\x13\x42\x81\x2e\xce\xde\xf6\x46\x9d\xb5\xb8\x4c\x11\x90\x12\x24\xb5\x71\x51\xfb\x51\x6d\xa9\xf9\xac\x0b\x5c\x82\x34\x68\x98\x1c\xbb\x18\xce\x31\x0b\x5f\x1a\x8a\x7e\x33\x69\x62\x81\x75\xdb\xe5\x7a\xd3\xf5\x05\xf5\x07\x45\x8a\xbb\x1b\x5e\xc9\x4e\xd3\x51\x06\x4d\x1a\x1d\x72\xd1\xf1\xd8\xdc\x97\xa2\x43\x7c\xaa\x80\x50\xa7\xff\xd5\x58\xa1\x9b\x89\x16\xde\xac\x11\x50\x01\x95\x06\x86\x22\x1a\x20\xf6\xa3\x0a\x80\x8b\x39\xc6\xff\xb8\x1f\x87\x81\x05\xa2\xdb\xf8\xaf\x41\xc9\xcc\x39\x49\x42\xa6\x42\xa2\x71\x07\x7b\x3a\x40\xb1\x78\xfc\x73\x06\xdb\xa0\x42\x46\x9d\xa3\xdb\x9e\x2c\x5b\x97\x65\xbe\xd2\x59\xb3\x23\xa3\xb9\xac\x42\x2d\x31\x63\xbb\xac\xca\xba\x3e\x88\x53\x3d\x5c\xcd\x8a\x24\x76\x11\xb6\x66\xba\x7c\x6f\x06\x08\x95\xb9\xde\x2b\x15\x81\x44\x51\xd5\x17\x29\x7f\x67\x10\x14\xe5\xf6\xfe\xb2\xfa\x09\x55\xde\x16\xc5\x89\xcc\x67\x05\x14\xa3\x96\xac\xba\xf5\xb3\xc5\x71\x00\x0b\x55\x8c\xf2\xc8\x8c\x2a\xca\xf9\xc9\x99\xff\x6d\xa7\xe8\xc0\x14\x8b\x39\xc6\x96\xeb\x1f\xdb\xdd\xdd\xe3\x8f\xdd\xf6\xe9\xfb\xea\x71\xd3\x1f\x95\x58\x8a\xb8\xba\xdb\x5e\xdf\x3d\xae\x9e\x9f\xba\x03\x49\x8a\xd4\xf5\xba\x0d\xa2\x51\x02\x70\x51\xc9\xac\xa9\x7c\xdb\xe8\x0c\xe9\x95\xff\x25\x68\xe8\x53\xa5\xb7\x62\x0f\x17\xb4\x5c\xfa\xf0\xc7\xa7\x96\xdd\x19\xb8\x50\xe8\x95\x1c\xba\x3a\xf3\x1a\xaa\x87\xb2\xe8\x2a\x70\x2a\x16\x96\x2e\x12\xe1\x7b\xf6\x42\xdf\xe1\xb4\xf3\xed\x0e\x8f\x25\x66\x65\xdd\xe0\x24\xe4\x96\xdc\x0e\x15\x33\x5d\x7a\xe3\x77\x3e\xca\xf4\xe6\x26\x73\x3d\xe1\x01\xfa\x70\xd0\xbc\xed\x5c\xd3\x7f\x77\x39\x41\x3c\xae\xe3\x6d\x32\x75\x13\x19\x63\x01\xa0\xe3\x3a\x3b\xca\x3c\xab\xdf\xa6\x85\x59\x95\xc6\x96\x9b\x73\x7b\xb7\xf0\x67\x4d\x95\xc6\x36\x70\xfc\x7c\xbb\x97\xc7\x3b\x5f\x8c\x55\x82\x08\x34\x48\x3f\x56\x9b\xed\xdd\xe3\xed\xee\xee\x71\xbb\x7a\xfe\xb1\xb8\xef\x8e\x47\x0c\xc1\xb6\xdb\x61\x98\x7d\xf6\xd8\xe3\x1b\x10\xc0\x03\xd5\x15\xeb\xcf\xda\xe1\x94\xe4\x1c\x6f\x70\xf9\x56\x95\x45\x59\x2f\xcb\x0b\x40\xd3\xf3\xf9\x2c\x21\x0e\x3b\x21\x35\xdb\xdd\xb2\x2a\xb4\xdd\xaf\xc7\x23\x95\x4e\x7c\x23\x2b\xc6\x1c\xc8\x62\x8b\x7a\x4c\x1d\x68\xbe\xbb\x1f\x65\x64\xe0\x8b\xe5\xcb\x4b\x6c\x3f\x4c\xe9\xd0\xd2\x6b\x98\xea\x52\x1b\x9c\xd2\x91\x41\x5d\x82\xba\x01\xd8\x77\xf3\x4d\xc7\xdc\x33\x9b\xe1\x1e\x71\x2e\x74\xc4\x94\x4e\x02\x4c\x87\x5c\x3d\x3d\xbe\x6c\x76\xeb\x65\xbb\xdc\x76\x3f\x9e\x57\x4f\x36\xa3\x8b\x74\x1e\xbb\xb0\x3b\xa3\x88\x53\x32\x64\x50\x18\xc4\x1e\x7d\x8d\xa5\x77\x82\xa6\xee\x90\x82\x80\xa7\x96\x31\xd5\xbe\x3d\xdc\x69\xbb\xd3\x43\x64\x39\xf4\x2d\xfb\x8b\xc8\x46\x72\x11\x4c\x01\x0d\x23\x0b\x22\x42\x21\xcf\x11\x43\x86\x32\x51\x82\x8c\x5c\x56\xbf\x6f\xf5\xd9\x54\x62\xb4\xe4\xc7\x8f\x6d\xa2\x04\xb1\x25\x4e\x95\xc0\xe7\x02\xda\x2d\xa8\x1e\x14\x8d\x66\x1e\x64\xf0\x5f\xb6\x90\x36\xaa\xa7\x29\xc3\xb8\x71\x54\xc0\xcf\x56\x6f\xb1\xeb\xbf\xef\x46\xa4\xa8\x96\xb8\x7a\xbc\x6e\x27\xfe\xf6\xee\xc1\x17\xf2\x75\x40\x13\x3d\xe0\xaa\xfd\x0d\x72\xc2\xff\x48\x5a\x01\x19\x79\x3c\x21\x4a\x5f\x5c\x48\xd5\xea\x30\x51\x48\xd7\x86\x91\x63\xbb\xc3\xcd\x81\xe7\x75\xa8\x02\x0b\x72\x10\x7b\x18\xe4\x45\x74\x14\x29\xdc\x91\x1f\xa0\xae\xc5\x2b\x6c\x5a\x3f\xb0\x5c\xbe\x89\xa2\x80\x9e\xae\xff\x8b\xba\x8d\x8e\x12\xca\xa4\xf7\x96\x90\xb4\x67\x9c\x7b\xd3\x2c\x26\xd8\x31\x60\xb2\x4f\xd0\xe7\xde\x9e\x66\xb1\xc4\x58\xd3\xed\x85\x8b\x42\x5f\x9f\x93\x74\x8e\xd3\xbb\xfe\x97\x2e\xe1\xb9\x2e\xf3\xd3\xf2\x58\x37\xe5\xbe\x87\xd2\x69\xa6\x65\xa0\x7a\x18\xee\xb2\xcc\x3d\x62\x6a\xd6\x2b\xd5\x3c\x4a\xcc\x70\x3b\xb4\x3c\x1b\x6f\xd9\xc1\x57\x99\xc6\x9f\x87\xc7\xb1\xe8\x84\x75\x73\xb8\x1a\x13\xa1\xf9\x41\x89\xc4\xbe\xb2\xe7\xc5\x76\xb5\x43\x8d\xe0\x76\xf5\xf9\x3b\xe4\xda\x76\x63\xef\xb3\x62\x50\x36\x44\xd0\xea\x65\xb0\xaa\x8e\x45\x88\x00\x67\x5f\x14\x2c\x2b\xdf\xbd\x62\x55\x7c\x2e\xcc\xaa\xf9\x1d\x50\x27\x9c\x20\xb6\x69\xf1\x5a\x65\xe8\x5d\x5d\x43\xad\xaa\xec\x30\xb0\xed\x3a\x89\xad\x32\xba\xfb\xae\x1e\xdd\x32\x3f\x6d\x93\xd8\x26\x54\x94\x28\x1e\xc4\x2f\xe8\x84\x4c\x99\x4e\xa4\xa5\x97\xde\x67\x5a\xd4\x4e\xcb\xcc\xf6\xab\x82\x6d\x78\xcf\x8a\xd7\xc9\xd4\x49\x94\xd5\xce\xb0\xca\x77\xbb\x66\x30\x6f\x45\x20\x8d\x2b\xff\x63\x25\xef\x4e\xcf\x65\x98\x2f\xd5\x3f\xb5\x4c\x22\x6c\x01\xdd\xe3\x95\x9f\x5d\x50\x3f\xe3\xbe\x69\x65\x6c\x35\xfa\x88\x3d\xd0\x57\xd0\xd4\x23\x2d\x77\x37\x4a\xf7\xaa\xb7\x38\xc5\xed\x1a\x7c\x32\x73\xf5\x3c\x0d\x21\xc1\xb9\x73\xb7\xbd\xba\xdb\x6e\x86\x7e\x9e\x86\x88\x63\x6c\x2a\xf4\xbe\xa3\x72\x64\x1a\x92\xd0\xe2\x86\xdb\x25\xfe\x70\xde\x8d\x3c\xbe\x63\x30\x89\x72\x8a\xb1\xf2\xc9\xd8\xdc\xd3\x62\x3f\xd3\x29\xa1\x8d\x4e\x52\x31\xa0\xd5\xba\xb0\xec\xec\x2b\xf4\x77\x6f\x00\x90\x38\x0b\x05\xc3\xde\xaa\xf2\xc3\x92\x05\xc2\x23\x7c\x3c\xc3\x7b\x56\x67\x65\xf1\x58\x36\x08\x88\x1c\xf4\x94\x40\x10\x00\x42\x32\xff\xf3\x71\xfb\x72\x79\x7a\x43\x18\x24\x58\x06\x16\x5a\xaf\xf6\x56\xef\xf0\x12\xee\x6d\x3c\x95\x21\x0c\x63\x84\x5f\xec\xc5\xe7\xba\xfc\xe8\x7c\x4e\x08\x15\x93\xce\x74\xff\x38\xa7\x15\x77\x83\x48\x00\xa2\x7b\x13\xd8\x7d\x8a\xc8\xf2\xeb\x76\xbf\x1e\xad\x69\x20\x24\x40\x8c\xf9\x0c\xdb\x15\x10\x2d\x51\x3e\x63\x57\xab\xa6\xfc\x6d\x4e\x65\xfc\xdb\x28\x0a\x9c\xbc\xb4\x4d\x88\x8e\xcc\x20\x50\x26\xc1\xf6\x71\x14\xaf\x93\xf2\x04\x50\x48\xb1\x1d\x68\x2f\x3e\x97\x3f\x97\x6d\xc0\x6a\x93\xcc\xf7\x50\xd7\xdb\x37\x51\x74\xe7\x30\x56\x96\xe9\xbe\x7c\xdd\x0e\xa8\x54\x46\x0f\xf2\x8f\x34\xdb\x19\x30\xa2\x10\xd2\x74\xb7\xdf\x83\xce\xac\x66\xe4\x25\xa2\x5c\x06\x2c\xb2\xb1\x18\x4e\xdf\x67\x51\xe8\x72\x8f\xea\x34\xa2\xd0\xa2\x9c\x3c\x0c\x63\x89\x68\xa7\xc9\xc3\xdd\xe3\xee\xe6\xe5\xf1\x7a\xb7\x78\x78\x7a\x79\xf4\xfe\x25\xb0\xd8\x20\x91\xdc\xad\x6d\x02\xba\xca\x10\x51\x32\xf9\x0c\x0c\x2c\x36\xb5\xfe\x10\x87\x6d\x39\xc9\x67\x00\x27\xb6\x7f\xc1\x88\x3c\x97\x42\xfd\x7a\xf6\xed\x21\x10\x87\x91\xcd\x74\xf8\xb7\x73\x2c\x74\x8d\x88\x91\xa7\x22\x3f\x2b\x6c\xfa\x1f\xf1\x18\x51\x7a\xc6\xae\xb3\x09\x8d\xe4\xf8\xc6\x62\x11\xa1\xbf\x59\x1f\xf7\x7b\x57\xa8\xea\x25\xa7\x19\x24\x24\xc1\x86\x73\xdb\x96\xa1\xdb\x90\xf5\x4e\x4f\x36\x0f\x48\x14\xd3\x2e\xe9\x8b\x1a\x49\xd9\xeb\xdb\xa5\xf7\x9e\x06\x00\xae\xab\x7f\xa2\x01\x31\xc8\x94\x41\xca\xac\x9c\xfb\xe7\xe7\xe7\xe4\x52\xa9\x31\xe8\xcc\x77\x52\xe0\xce\xb3\xf8\xd2\xa4\x80\x08\xbb\x3e\xad\xb5\xa8\xc4\x1e\x9a\xde\x2a\x83\x0c\x15\xa2\xc0\x9e\xde\xc7\x88\xdb\x99\xc0\x14\x64\x2c\xd0\x41\x2e\xad\x91\xe8\x5e\x93\x94\x29\xb6\x6b\xb4\x1f\x6f\xf5\xfc\x7c\xdf\x46\xb8\x03\x6a\x4f\x06\x52\x85\x98\x67\x45\x24\x4f\x73\x94\xb0\xcc\xb3\xc3\x85\x04\x8c\xff\x49\xeb\x67\xba\x4a\x7a\x59\xc0\x09\x37\xf1\xee\xae\x15\x35\x02\x3a\xb0\xf3\x95\xa8\xc1\xb5\xba\x57\xbe\x7b\xa0\x3f\x93\x12\xca\xe3\xd7\x87\xcc\x6b\xe7\xed\xee\xa0\x20\x45\x74\xf8\x7e\xde\xfa\x81\x02\x81\x36\x45\x42\x13\x06\x41\xb0\x0b\xa1\x8b\x39\x41\x2b\x8d\x19\x61\x68\xde\x9a\x33\x97\x0a\x20\x4e\xd1\xe1\x84\xcf\x06\x55\x57\xd1\x81\x69\xef\x00\x9b\x4b\xc6\xfb\x99\x09\xb4\x9f\x4f\xb7\x50\x04\x6e\x21\x8f\xef\xd4\x70\x4b\x7c\x95\xa9\x72\x55\xf4\x0d\x7e\x60\xd2\x14\x51\x8f\xff\x5b\x36\x58\x21\x1f\x80\x3e\x4d\x40\xa4\x65\xa1\x13\xd5\xaf\x65\xb9\x97\xa2\xb1\xcc\xa2\xa3\x33\x9b\x40\x5b\x21\x9a\xd6\x93\xbe\x71\xa2\x2c\xfe\x43\x9b\x30\xa4\x48\x56\xb4\xad\xca\xa2\x6b\xa8\x34\x21\x49\x70\x93\xad\x9b\xf2\xb0\x81\x3c\x3f\xab\x30\x98\x30\x51\x41\xc7\x7c\x2c\xaa\x66\xa0\x62\xc3\x4c\x08\x04\x63\x57\x9b\x33\x9c\x42\x10\x0c\x61\x31\x76\x44\x76\xc4\xdc\xae\x0b\x65\x5b\x3a\xee\x7d\x3f\x8e\xc7\x3c\xe8\x69\x1c\xb2\x3d\x3c\x64\xc5\x88\x84\xa7\xbf\x1f\x22\x42\xc4\xb4\xf7\x02\x5d\x5f\x9b\x32\x43\xc0\x6a\x79\xca\xb2\xaa\x5a\x53\x66\xf7\xf3\x51\xd4\x64\x22\x16\x23\xf2\xfc\x61\xf1\xe7\xf3\xd3\xcb\xe3\xf5\xa6\x3b\xa0\x08\x86\x53\x42\x6b\xd7\x3d\x38\x02\x62\x1a\xca\xa9\x07\x93\x3c\xc2\x67\xb3\x3d\x56\xc5\xb2\xcc\xcb\x49\x04\x69\x68\xc2\x31\x9b\xb8\xba\xbf\xf2\xbb\xaf\xa1\xc2\xd8\x32\x3a\xc2\x0b\xbc\x1b\xe2\xc0\xe6\x33\xdd\xda\x86\x2a\x8e\x65\x3c\x2b\x68\x82\x1f\xc3\x1f\x8a\x23\x02\x23\xd6\x3e\xb8\xdf\x2e\x7f\x5e\xca\x55\x9a\x98\x09\x66\xb9\x0d\xf2\x5c\x54\xb6\x5d\xe9\x57\x96\x97\xa3\x9e\x25\x13\x27\x04\x39\x56\xcb\x22\x77\x50\x3f\x7f\x40\x85\x74\x58\x91\xeb\x3e\xc0\xe8\x22\x89\x4c\x62\xab\x7e\x54\x63\xd2\x75\xd3\x94\x15\x06\x45\xdd\x5d\x27\x4a\x5b\x2e\xff\xe3\xc9\xd6\xa0\x27\xd3\x27\x95\x0c\xbd\x83\x36\xcc\xb2\x4d\x11\xfe\x80\xd1\x69\xea\x99\x51\x36\xbd\x7e\x28\x33\x82\xd0\x14\x83\xfc\xfd\xe7\xa6\xec\xfa\x94\x0c\x5a\x59\xcb\xd5\xf4\x31\x54\x5b\x1a\x9b\x14\x23\x44\x48\x5c\x4b\xa3\x8d\x21\xba\xdf\x6b\xcb\xe6\x65\x51\xa3\x3b\x17\xad\x46\xbd\x5b\x33\x7e\xbf\x32\x25\xe8\x0a\x1e\x6b\x8f\x14\xf5\xdc\x20\xe3\xeb\x49\x41\xb1\xba\x91\xd5\x43\x51\x9b\xeb\x63\xf7\x38\x52\x27\xe8\x1a\xbc\xe6\xa5\x14\xf9\xd5\xd9\xbc\x95\x5a\x5b\x4a\x61\x5c\x38\xeb\x0a\xf6\xd9\x71\x5f\x4f\xaf\x62\x2c\x13\x4e\x56\xb7\x1b\x5b\x59\x35\x97\x28\x36\x8d\x22\xa9\xc5\x64\x43\xa1\xdb\xcf\x75\xa1\x0d\xd5\xe8\x40\x84\xb6\xbe\x2a\xaa\x57\xf0\x01\xee\x64\x4c\x98\x44\x49\x27\xf8\x7f\xac\xc9\xf4\xb8\x62\xb8\xe4\xd4\x59\x2c\xe9\x06\x80\x51\x18\xef\x35\x6f\x59\xa5\x31\x47\xb8\xea\x67\x80\x21\x0c\xf5\xa0\xee\x9f\x96\x77\xea\x3c\x29\x8b\xa3\x78\x10\x84\x14\x6c\xff\xff\x69\x39\x25\x9d\xe0\x41\x18\xda\xd6\x34\x1f\xf2\x6d\x45\x9e\x67\xa0\x2d\x57\xee\x71\x58\x7d\xef\x0c\x3c\x0f\x48\x28\x54\x57\x4c\x18\xd9\x18\x1e\x10\xca\xb0\x8f\xd2\x2b\x9e\xdc\xdc\x3d\xde\x6d\xbe\x75\x47\x63\x8d\x3e\xfb\x9d\x2a\x8b\x72\x9f\x5d\x44\xe2\x1c\xa7\x10\xee\xfe\x8e\x29\x35\x58\x07\x79\xcf\xaa\xe6\x28\xf2\x55\xd1\x64\x4d\x06\xb5\x47\x88\xfa\x51\x2a\x44\x0a\x74\xdc\xa9\xa1\x42\x64\xe1\xe8\xdd\xf2\x80\x07\x06\xa3\x9a\xab\xac\xd1\xc3\x0c\xdf\xb9\xe7\xc0\x03\xce\x54\x8a\xaa\x7b\x55\xf9\x0b\x2a\x6f\xab\xbb\x38\x62\x90\xeb\xe7\x01\xe7\x8c\x44\x3d\x11\xd4\x4e\x0c\x66\x2b\x0f\x78\x1a\x7a\x1d\x9f\xbb\x06\x5a\x97\xf5\x15\x5e\x9e\xef\xe6\xbf\x5d\x1c\x58\x1d\xa7\x7d\x56\x6c\x8e\xfb\xbb\xe5\x13\x76\xf6\x24\x2f\x9b\x6b\x7f\xba\x98\x32\x1f\x66\x58\x79\x81\xeb\x69\x2b\x09\x0f\x92\x80\xc7\x2e\xb3\x70\x5d\x1d\x5f\xcf\x25\xb5\x78\x90\x08\x8e\x39\x17\xcb\xd4\xb7\xd0\xf5\xb9\x9a\x0e\x0f\x52\xc6\x11\xf3\x5a\xc0\x47\x7b\xeb\xc3\x66\xe7\xdf\x96\x79\xcf\xa6\xd2\xbf\xc6\x1f\x23\x4d\x23\x14\x09\x3b\x88\xd3\x75\x66\xe6\x91\x50\x3c\x48\x81\x04\x29\xe6\xf3\x9f\xb7\xdf\xae\x17\x7f\xf9\xb7\x90\x1a\xeb\x9f\x3b\xa9\x70\x6c\xb0\x44\x08\x2d\xb5\xbe\x49\x48\x27\x27\x92\x3c\x8d\xf4\x20\xba\xee\xf4\xb1\x79\x20\x13\x81\x95\xa5\x7d\x56\x1c\xeb\x6d\x79\x44\x29\x89\xbf\x9d\x2e\xd1\x28\x04\xeb\xbe\xb8\x94\x0a\xbd\xa3\x87\x52\x43\xbe\x2c\xcb\x4a\x67\x45\x4f\x34\xc4\x03\x95\x04\x88\x78\x47\xc7\x6a\xb8\xcb\xd9\x8d\xec\xae\xf8\x09\x59\x37\x36\x55\x48\x1c\xb0\x7d\x83\xab\x32\x6f\xde\xae\x17\x77\xcb\xa7\x4b\x75\xe4\x7f\xfa\xaf\x3b\xb7\x56\xb6\xef\xcc\x32\x2c\x34\xdb\xb2\xbd\xee\xf8\xc5\x40\x40\xd1\xde\x2d\xc5\xe1\x00\xda\x96\xf0\xda\xa0\xfb\x22\x35\x8b\xff\x5d\x22\x07\x41\x44\x56\xbc\xda\x1a\xe3\x79\x55\x91\x07\x20\x49\x9a\x7a\x28\x5a\x6b\x17\x7a\xae\xf0\x25\x6a\x5b\x37\x03\xa4\x0c\x0f\x4c\x64\xa1\x2f\x56\xa3\xa9\xe3\xb3\xe6\x61\x60\x20\x95\xdd\x06\xfc\xad\xcc\xd1\x67\x10\xdd\xf1\x30\x52\x1e\xfd\xb1\x39\x15\xcd\x1b\xd4\x0e\x81\x6d\x55\x60\xc7\xbb\x41\x18\xc6\x06\xb1\xbe\xc8\x2a\xb0\xae\x7a\x86\x20\x7f\x1c\x02\x84\xe1\x9a\xb2\x52\xf0\x0c\x45\xd3\x6e\x3d\x7e\xbb\x09\x89\xb2\x2a\xd2\xe0\xcb\xca\xcf\x4e\x15\xd3\x1d\x8f\x12\xd0\xa9\x97\x59\xae\xba\xbf\x2a\x8a\x8c\xc4\x8f\x3f\xb7\xfe\x4f\x94\x49\x74\x5f\xb3\x1a\xfd\xdf\xa1\xc3\xdf\x0d\xd1\x0c\xa3\x98\x5b\xb4\x87\x03\xa7\x84\x87\x2c\x14\x89\x15\x87\xb9\x86\xba\xa9\xca\x53\xb7\x21\x86\x8c\x44\xb1\xc5\x5d\xc9\x4a\x14\x73\xb2\x12\x3c\x64\xda\x36\x3b\x8c\xa8\x5c\xb7\xa5\x87\xce\x9e\x27\x28\x78\x18\x27\x71\x64\xf9\xfc\xb3\xe2\x15\x61\xf4\x76\x0b\xf1\x97\x8d\x85\xb1\x21\x47\x95\x69\xc4\x50\xfa\x03\x09\xb3\xc4\x8f\x36\x02\x5a\x96\xfb\x7d\xfb\x61\xe4\xd4\x8f\xe0\x61\x92\xa6\x91\xa3\x13\xba\xbd\x5a\x0c\x0b\x23\x3c\x4c\x8c\x65\x07\xec\x5d\xbe\xcd\x66\xf5\xb8\x5d\xfd\x31\xc6\xd0\xf0\x30\xa5\x09\x26\x11\xf7\xa2\x6e\x6f\xb1\x3c\x9c\xfc\x7d\x48\x1d\x63\xfc\x78\x38\x56\xaf\x80\x8a\x59\xfb\x73\x1e\x3a\x1e\x2a\x9a\x18\x07\x5f\x5e\x97\x79\x6e\xa7\x50\xdd\x33\xc6\xf3\x50\x31\x99\x38\x69\xa4\x4d\x73\xd4\x50\x34\x3e\xcf\xeb\x06\xe8\x40\x80\x65\x7d\xff\xbc\xea\xa0\x86\x3c\xd4\x3c\x21\xa9\x3f\xb3\x65\x85\x36\x67\xa9\x1e\x37\x16\x42\x83\x7c\x8f\xbb\xfa\xed\xd8\x69\xdb\x24\xdd\x53\x02\xb7\x8c\x5e\x0d\xd4\xcd\x8d\xc8\xf2\x36\x80\xb8\x3d\x9e\x7e\xbe\x41\xb1\x69\xca\x76\x41\xfb\x8b\x42\x6a\x6c\x65\xbf\x6c\x4d\x14\x1a\xc9\x27\x73\xe9\xa2\x86\xa3\x1c\x06\x7a\xba\x39\x26\x92\xd0\xe7\xc3\x2d\xd1\xdd\x43\xe8\x07\x1b\x48\x91\x66\x02\x71\x61\xa3\x1e\x60\x4e\xc2\x88\x52\x31\x90\x25\x19\xd3\x29\xf9\x41\x9a\x63\xa4\xf2\xe7\xfa\xbf\xfc\xef\x48\x24\x30\x61\xda\x3e\x96\xd5\xac\x99\xfc\x86\x30\x1b\x9e\x6f\xdd\x1d\x66\x65\xb1\x81\xea\x3d\xeb\x2f\x1d\x41\x8a\x88\x0d\xe7\xb4\x5e\xcf\x94\xa5\x66\x23\x27\x4e\x68\x94\xf8\x36\x68\x8b\xbd\xfa\x0e\xe3\x54\x2d\x27\x94\xa5\xb1\xb3\x3e\x0e\xee\xeb\xbd\xa9\x01\xcb\x06\x27\x34\xb1\xb1\x00\x5a\x01\x64\x27\x6f\x0d\xfa\x20\xcc\xe6\x84\x45\x11\x6e\x32\x3a\x33\xe3\x9e\xbd\xd1\x3a\x25\x8c\x73\xea\x48\x79\xbb\x3e\x74\x57\x44\x9a\xac\x4f\xc2\xb4\x55\xe6\x7f\x10\x56\x37\xdd\x92\x48\x7c\xfd\xc8\x5c\x05\x98\xba\xb0\x4b\xb3\xa3\x75\xfd\x2a\x81\xd7\xfe\x28\xb2\xf0\x88\xba\xce\x5e\x8b\xab\xbe\x0b\x6e\x1e\x9f\xc8\x09\x37\x14\xf1\xa7\x76\x1b\xb3\x6c\x63\x22\xbf\x2b\xea\x23\x2a\xe5\x5b\x64\x86\x1b\x1b\x27\x14\xbc\x80\xdb\xf2\xdb\x0e\x74\xd6\xec\xa2\x3f\x46\xef\x24\x4e\xb5\xd4\x5d\x92\xa8\xc9\x7c\xc6\x7c\x09\xd9\x59\x9d\x6b\x72\x27\x49\x98\xe2\xc2\x5c\x68\xbd\xfa\x04\x35\x3e\x6f\x12\x33\xed\xf3\x38\xa7\xb5\xa8\x9b\x9f\x59\x31\x9d\x7f\x22\x88\xb5\x85\xf2\xa1\x3e\xd3\xae\x8d\x43\xce\xc6\x24\x96\x5c\x51\xd4\x75\xa9\x32\xd7\x65\xb5\x15\xf5\xb4\xbd\xd8\x0f\xd7\x06\xd3\xb3\x5d\x33\xdd\xc5\xd2\xf6\x57\xe5\x99\x79\xc6\x15\x4e\x14\x24\xca\xd6\x54\x0e\x59\x23\x72\xdf\x99\xe4\x8e\x6a\xaa\x4d\x84\xe4\x21\xb2\xde\x1c\x65\xe3\x95\xf9\xe6\xdf\x9e\x8e\x93\xc0\x12\x51\xd4\xc7\x3d\xac\x07\x36\x93\xe8\x54\x8a\x68\x64\x4f\xbc\x14\xf1\x8d\x15\x2e\x9a\x2c\x24\xa0\x04\x7d\xe3\xa5\xd8\x1f\x44\x3b\x8b\x50\x9c\x5c\x65\x9d\x08\x31\x27\xc0\x44\xac\x7d\x29\xdc\xd3\x81\x76\x07\x45\x90\x3a\x88\xd4\xfd\xf2\x79\x98\xef\xe6\xc4\x44\x0c\x01\x2c\x36\x4a\xbc\x12\xc5\xaf\x61\x14\xc9\xa3\x40\xa4\x88\x4b\xc6\xd6\x0a\x9f\xcd\xfe\x09\x19\x2e\x54\xb7\x53\x8d\xee\x36\x0a\x69\x34\xa4\xf4\x1f\x6a\xb5\xf2\x88\x44\x14\x02\xdf\x48\x3c\x56\x0f\xe0\x11\x89\x0d\xf6\xe3\x39\x3f\x8c\xb4\x6f\x25\x2b\x8e\xfb\x19\xa7\x3b\x22\xc2\x66\x35\x6a\x68\x2c\xc3\xc7\xf4\xb8\x66\x18\x3e\x3f\x2c\x1e\xbf\x2d\xb6\xdb\xc5\xe3\xfa\xf9\xe9\xcf\xfb\xd5\xe3\xe2\x87\xbf\x5a\xa4\x13\xed\xb6\xa7\xeb\xf2\xf8\xba\x98\xa4\xfb\x79\x14\x99\xae\xfc\xef\x71\xc2\x4f\x1f\xe0\x6a\xea\x0b\x4b\xe2\x37\xd5\x63\x1a\x9a\xe1\x88\xb2\x84\x39\x8f\x6e\x55\x2b\x71\x00\x6f\xf9\x8e\xc3\x9e\x0c\x37\x98\x69\x9b\x13\xff\x51\x36\x33\x4d\x08\x3c\x62\x10\x23\x0c\xf8\xea\x78\x5a\x5d\xad\xb6\xcd\xf0\x2b\x46\xdc\x50\x84\x98\xa0\xaa\xbc\x2d\x4f\x8e\xd6\x4d\x14\x93\x20\x71\xa4\x9c\xd5\x63\x79\x5f\x16\xaf\x48\x45\x34\x24\xd2\xf3\x23\xa9\xfd\x42\x42\xeb\x11\x9b\xe3\xa0\xc3\xd6\x8d\x4c\x22\x82\x4b\xb7\x9d\x38\x37\xc7\x42\xfd\x31\x3a\x4f\x1a\x5a\x36\x24\x81\xcd\xb0\x93\x26\x0e\x7f\x8a\x34\x8a\x13\xcb\xb2\xa1\xd1\x9d\x9e\xe9\x6a\xe5\x91\x48\x8d\xa7\xa1\x78\x84\xcf\x66\x53\x88\x43\xfd\x56\x36\xe7\xe8\x11\x1e\x09\xb0\xfe\x24\xbe\x9d\xf6\xe1\x9e\x71\xf5\x0d\x1a\x14\x78\x24\x53\x4b\xfd\x26\x8e\x4d\x79\x75\xac\xfc\x2a\x89\x14\x0b\x02\x2b\x91\xb1\xcb\x07\xb2\x33\x3c\x52\xb1\xf5\x3d\xad\xa7\xbd\x2d\xcf\x97\x5f\xa4\x03\x69\xbd\xe0\xac\xd0\x8b\x42\x5b\xd0\xcd\x3f\xc1\x43\xf3\x48\x73\x13\xb0\xa1\xdb\x6f\x1b\xcf\x7e\x13\x30\x9e\x15\xf4\x78\xa4\x53\x5b\xaf\x56\x96\xaa\x66\x71\x2e\x42\xc7\x23\xad\xac\x30\xbf\x5d\xed\xcf\x8d\xdc\x20\x74\x1b\x55\x2a\x64\x36\xda\xe1\x23\x08\x03\xe3\x69\xe0\x8a\x0a\x84\x76\xc8\x85\xf3\x64\x15\x8f\x4c\x18\xf9\x2e\xb6\xb5\xa8\xa0\x68\x5e\x8a\xd6\xe8\x76\x5b\x5e\x64\x18\x10\xe1\xfd\x9f\x41\x21\x96\x47\x26\x09\x90\xeb\xac\x56\x1d\xd7\x8e\xc8\xc7\xf9\x1e\x4e\x83\x88\x47\xdc\xcb\xf1\xbf\x7b\x3e\xb1\xaf\x64\xa0\x38\x0d\x12\xa6\x54\xaf\xd8\x87\x82\x09\x13\x73\x42\x43\x4d\x12\xeb\xfd\xbf\x97\xbf\xc0\x4b\xaf\x6c\x10\x32\xf6\xc7\x97\x16\x63\x4e\xec\x98\xd3\x10\x34\xb6\x63\x5d\x3d\x2d\xbf\xca\x9b\x50\x42\xb5\x57\x5e\xfd\x91\xbd\xce\x9a\x3a\x4a\xe2\xff\x97\xb5\x37\xeb\x6e\x1d\x37\xba\x40\xff\x4e\x3f\xe4\x81\xe0\x00\x80\x8f\xb2\x2c\xfb\x28\xf1\x14\x49\xee\xd3\xfd\xf5\xca\xd2\xc2\x50\xb0\x19\x53\xa4\x42\x52\xb6\x95\x5f\x7f\x17\x0b\x00\x27\xd1\x3e\xb9\xeb\xde\x97\x9c\x8e\x09\x52\x1c\x80\x42\x0d\xbb\xf6\xb6\x9b\x51\x5e\xd6\xcd\x5e\x14\x7a\x8f\xc0\xd0\xbd\x75\xd5\x7f\xf3\x83\x54\xe0\xdb\xcf\x87\x6d\xfe\xdd\x17\x8f\x23\x65\xb5\x41\x5c\x9b\xe4\x2c\x72\x97\xc6\x31\x49\x99\x6d\x2f\x87\xcf\x75\x6b\x9a\xfd\xe4\x8f\x93\x34\x40\x6b\x2e\x5c\xf8\xe6\xbc\x29\x7f\x54\x44\xd8\x82\x65\x63\xdb\x1b\x94\x13\x76\x7c\x1c\x7e\x04\xf0\x78\xcc\x80\x73\x2b\x0e\x18\x50\x74\xd7\x30\x26\x31\x9e\x75\xff\xab\x7a\x35\x8d\xa9\x49\x31\x73\x75\xaa\xfb\x84\xb8\xbf\x04\x0b\xd3\xc0\x21\x85\x17\x9f\xd9\xc4\xa2\xc5\x2c\xb6\x7e\x72\xbb\x55\x94\x4d\xcf\x18\x35\xfb\x65\x18\x70\x74\x30\x90\x66\xe9\x7f\xa9\xd1\xd2\x98\x87\x1c\xaf\x2f\xcb\xcf\x41\xc7\x07\x8d\x79\x62\xf3\x4b\xc7\x5c\x28\xf0\xf4\x75\xc3\x76\x4e\x1a\x73\x03\x98\xc5\x76\x5f\x27\xcf\x77\xa7\xaa\x28\xdf\xa7\xbb\x59\x9c\x12\xdb\x94\xb4\x7f\xc9\x9c\x42\xcb\xbc\xf7\x18\xa7\x94\x23\x09\xe8\xbf\xcb\xd1\x2a\x8b\x05\x51\x81\xf4\x4e\xf6\xb6\xcc\x75\x2f\xf3\x52\x9e\x6c\x12\xb6\x1b\xaa\x13\xcf\xdd\xe7\x16\xc4\x04\xaa\x4c\x63\x19\x58\x65\x6e\xa1\xf5\x35\xbc\x5b\xb3\xe5\x4f\x97\x34\x42\xc1\xe5\x27\x51\x29\xc8\xff\xb8\x7d\xfa\xe3\x8b\x52\x43\x3b\x14\xac\xb2\x67\x57\xae\x99\x93\x48\x99\x9e\x24\x03\x7c\x15\x3b\xa8\x1b\xf6\x77\xff\xab\x8a\x59\xfb\xd2\xe7\x63\xbe\x4d\xf9\xc4\x9a\x28\xcc\x98\xbd\x8a\xfa\xb5\x67\xfb\xfd\xbe\x6b\xe0\xf2\xcb\x6b\xd0\x18\xe5\x37\x4d\x73\xc9\x6c\x41\x63\x60\x29\x8a\x16\x38\x96\x96\x7a\x29\x8a\xa2\xc4\xe6\xb4\xc9\xfb\x84\xd4\x6a\xf5\xbe\x57\x6a\x18\x1a\xc5\xa0\x39\xe2\x4d\x9b\x01\x05\xa7\x3b\x64\x02\xe5\x89\xa3\x10\x34\xbf\x2e\x56\xa7\xaa\x5c\x42\xc7\x2f\x4b\x63\x43\x52\x36\x44\x66\x5f\x65\x3a\x96\xbf\x8d\x8d\xa4\xe1\xb6\x1a\xd1\x7e\xc9\x53\xf1\x02\x65\xe1\xd9\x2b\xe6\x9f\xd8\x08\x8e\x8f\xf4\x54\xc1\x7f\xff\x5b\x2e\xef\x77\xf3\xe3\x92\x00\xa4\x9c\x4a\xc9\x78\x36\x81\xad\xd5\x2c\x1c\x91\xd8\x8d\xcf\x26\x89\x40\x87\x15\xc1\x39\x9d\x2d\x4a\xc2\x98\xe1\x82\xda\xee\xb6\xbb\xd5\x76\x17\xf9\xbf\x47\xed\xa4\xb3\xfc\xa1\x50\x5d\xc1\xf7\x75\x73\x9a\xc4\xd4\xaa\x8a\x1f\x45\xf1\x46\x12\x7f\x91\x38\x25\xc8\xb7\x7d\x06\xf8\xef\xb9\xfb\xa3\x32\x08\x20\x3a\x96\xdd\x6b\x4d\x12\x63\xc9\xfd\xf3\x76\x9f\xde\xa7\xe3\x3c\x76\x42\x99\xa5\x05\xee\x4a\xf9\x0f\xf0\x31\x47\xf7\xec\x87\x43\x82\x3e\x66\x2e\xea\x4e\x9f\xbc\xb6\xa5\xe1\x6b\xd1\xdd\x06\x0b\x63\x44\x74\xfd\x10\x95\x56\x5d\x4a\x36\x61\xa1\xf2\x32\x06\x60\x21\x3c\x63\xc5\x0e\x9a\x30\x25\x53\x8b\x83\x90\x87\xac\xd9\x20\xd5\xd7\xd8\xb4\x24\x69\x94\x78\x95\x7d\xfb\x24\x28\x52\xe7\x7f\x42\x84\x14\x69\x18\x2a\x5b\x18\xb5\x17\xbf\xcb\xba\xec\x4d\x22\x18\xc3\xca\xc5\xff\x41\xd1\x78\x34\x34\x4d\x84\x4a\x91\x51\x4b\x0e\x89\x21\xb1\x03\xa8\xfe\xda\xc4\x27\x02\x12\xd2\x69\x81\x5c\x5b\x66\xde\x1b\x91\xe5\x27\x5f\xc3\xa3\x89\x8c\x98\x27\x53\xf9\xa3\x10\x97\x0e\xb8\x1f\x46\x6d\x93\x19\xe6\x15\x7b\xce\x34\x67\x76\x13\x15\x05\x48\x30\xb0\xef\x13\x64\x9b\x3e\x23\x95\x40\x4a\x50\x01\x59\x7a\xf9\xfc\xba\xaf\x17\xd2\x04\x84\xd2\x8e\x35\x64\x02\xf6\xf0\x03\x94\x04\xe9\x69\xae\x3e\xad\x61\x78\x17\x79\xd6\x83\xb4\x68\x62\x02\xc3\x52\x3f\x65\x41\xe4\xfb\xed\x41\x54\xcd\x7e\x7d\x7d\x61\xb7\xc6\x7b\x55\xbf\xb3\x26\x86\x10\xac\x3b\x7e\x40\xb6\x2b\x9f\x6b\x6d\xd7\xfe\xf8\x3d\x98\xc4\x89\x17\x8a\x63\x3b\x09\xf7\xee\xe7\x69\xd0\x7e\xb7\x9e\xaa\xa2\xf5\x57\xb3\xe2\xc5\x4a\x72\x5e\x44\xd4\xb3\x6b\x94\x06\x34\x45\xd7\x69\xf7\x0a\x76\x61\x43\x73\x9d\xbd\xb4\x61\xb3\xdd\xe7\xd5\xb9\xfb\x31\x61\x85\x07\xbd\x19\xfc\xd1\xbe\xcc\xd1\x2b\xa3\x81\xe1\x21\xf3\x5d\x5e\xab\x42\xd7\x7e\x59\xd2\x30\x96\xe8\xad\xaf\xb7\x43\x2e\x31\x4a\xa3\x30\x0d\x62\x47\x5e\xbc\x57\xe2\xe8\x59\x33\x28\x8d\xa4\x2d\x1e\xbe\x67\xf0\x81\x3a\xcd\xff\x10\xd5\x61\x52\xfb\xa1\x71\x18\x22\x43\x3f\xb8\x16\xf5\xce\x75\x71\xc7\x13\x1a\x60\x61\x2b\x2b\x3c\x35\xfe\xad\x98\xe0\x4a\x28\x4d\xb8\x65\x4b\xb9\xca\x5a\xa3\x0e\x0a\x11\xeb\x50\xbd\x0b\xdd\xd5\x38\x28\x25\x29\xa6\x01\x70\xe3\x7d\x28\xab\x83\xc8\xbb\xe4\x75\x59\x75\x02\xe6\x94\xd2\x50\x60\x3e\x37\x2b\xb2\x8e\x0a\xd0\x51\x22\x75\x77\x45\xa9\xc1\x10\x65\xb7\xbb\xed\xbb\x16\x29\xa5\x0c\xb0\xe4\x6a\x75\xeb\x2e\x24\x9e\xfd\x28\x63\xf0\x07\x6c\x70\x33\xb3\x5f\x51\x46\x42\x44\xd4\xb4\x2e\x56\xfd\x68\x3c\xc4\x6a\xd6\x72\x51\x16\x0b\x4c\x62\x6c\xa0\x1e\xb9\xcb\xfe\x30\x97\xd4\x31\xa0\xfd\x5d\x68\x18\x36\x53\x8e\x8a\x5e\x6e\x38\xd7\x0c\x17\xec\x43\xa6\xe0\xf6\x74\x7e\x2a\x8b\xff\xfa\xd2\x0f\x4d\x23\xeb\xf9\xbd\x96\x75\x93\xe5\xb0\x13\x6f\x50\xbe\x7f\xc1\xd8\x40\x69\x2a\x13\x04\xe4\x1f\xc5\x79\xdf\xc9\x34\x53\x9a\xaa\x14\xfb\x87\x7c\x5b\x29\x68\x97\x0a\x9d\xb8\xc2\x34\xd5\x29\x56\xdc\xd4\x5e\xa1\x5c\xcd\x88\x78\x9d\x52\xa1\x98\x95\xe1\xb5\x0d\x94\xb3\xa1\x07\x95\x34\xc4\x70\xf0\x45\x1c\xe0\xf1\x1d\xaa\xab\x33\x72\xfe\xfa\xa3\x8c\xb9\x46\xaf\x3c\x2f\x3f\xc6\x1b\x32\x55\x81\x24\x3e\xad\x5f\xe6\x1a\x05\x81\x40\x1c\x66\x43\x04\xaa\x92\x08\x1b\xff\x27\x35\xec\x0b\xaf\x65\xe8\xe1\x52\x25\x6d\x69\xfb\x16\x46\x7e\x1f\xd5\x89\xed\x63\xb4\xe0\xf9\x07\x71\x80\xfa\x28\xc6\xf4\xaa\x94\x6a\xc9\x02\x4f\x7d\xf1\xf8\x78\x67\x53\x8e\x61\xd4\x5d\x43\x1b\xac\xe8\x1d\x44\x66\xc3\x6f\xd1\xc0\x53\x7f\xd4\xb0\x80\x74\x95\xa9\x9b\xe9\x6e\x45\x81\x82\x5d\x94\xe8\xef\x84\xdb\xf3\x41\x7a\x5e\x7e\x4a\x01\x02\x2b\x9c\xec\xbc\x88\xae\xe9\x6e\xde\x5a\xb9\xb3\x8c\x03\xbf\xa0\x18\x49\x64\xd3\xaf\xfe\x8a\xa6\x8d\x9e\xd0\xe8\x94\x9d\xed\xa7\x86\x59\xe1\xe4\x76\x52\x3b\x5d\xf9\xc9\xaa\x37\x3a\x76\xf0\xea\xa2\xd9\x95\x2f\x2f\xf9\xb0\x2c\xc7\x02\x99\x22\xac\xa9\x80\xba\x69\xe7\x98\x2a\x0b\xbd\x2d\xbf\xda\xff\x59\xa0\x48\xe4\x84\x8a\xda\xcf\xec\x12\xd1\xfe\x9b\x30\x12\x32\x47\x75\xd0\xba\x06\x57\x13\xb9\x0b\xca\xc2\x34\xb5\x62\x1f\x7e\xcd\x5f\x40\x78\x07\xb7\x16\x25\x41\x18\x75\xd0\x5b\x93\xe5\xf0\x94\xa9\x39\x7d\x47\x3f\x5e\x12\x54\x0b\xf0\xf4\x3b\xd3\x05\xe7\xf7\x6d\x16\x13\x8b\xc6\xc8\x8a\x7f\x83\x6a\x1c\x6b\xbf\xc7\x73\xf9\x47\x89\x19\x65\x81\x0b\xf3\xda\xe3\xb6\x10\xea\x0e\x26\x3c\x60\xe0\xad\xe4\x1d\xbc\xd7\xfd\x01\x8e\x07\xf0\xa2\xbe\x21\x04\x31\xad\x30\x24\x86\x9a\x6c\x59\xee\x64\x2a\x09\x56\x16\x46\x88\x51\x87\xbb\x73\x43\x98\x91\x98\x30\x82\x4f\x54\xda\x08\x31\x8f\xe5\x8e\xf1\x80\x23\xcd\xbc\xc9\x2a\x2b\x92\x7c\x57\xbe\x04\x8b\xa2\x2c\xce\x87\x6e\x48\x1c\x63\x11\x56\xe5\x20\x8a\xc7\x53\x77\xd9\x34\xb0\x62\x21\x77\x8f\xcb\x7f\xec\x96\xdd\x5f\x49\x42\xb9\x93\x9c\x58\x4c\xf9\x3d\xdd\x18\x41\x01\x3d\x4e\x09\x23\xb1\x59\xca\x84\x26\x8e\x2a\x27\xcf\xd7\xcb\xbc\x3c\xa1\xb4\xde\xe2\x45\x64\x45\x6d\xdf\xf9\x78\x9e\x32\x01\x40\x3a\x82\xf6\xa5\x4d\xa9\x76\x46\x88\x09\xa3\xf1\xe3\xb6\xf3\x2a\x1c\x24\x5c\x26\xaf\x50\x8a\x04\x35\x02\x9c\x34\x13\xb2\xa3\xe2\xea\xfd\x45\xdd\x83\x49\x99\xf0\xa8\xfb\x75\x71\xbc\x29\x2b\xbb\x18\xee\x5b\xd3\xd0\x2b\xb6\x53\xa6\x42\x16\x05\x03\x30\xd0\x13\x54\x03\xd8\x56\x7b\x5c\x23\x1e\x45\x28\x05\xc7\x66\x5f\xfa\x76\x91\xee\x38\x97\xd8\xf6\x82\xe2\xc8\xa7\xc2\x61\x34\xba\x19\xa4\x84\x82\x14\x45\x0a\x76\xfb\x9e\x7a\xf8\xbb\xec\x0c\xd3\x21\xf5\xc4\xeb\x5b\x61\x86\xe5\x59\xa6\x81\x63\xb6\xee\xda\xa6\xbe\x47\x5f\x08\x52\x82\x91\xaf\xed\xb5\xdc\xdf\x7b\x6d\x02\xca\x40\x72\x4c\xbb\x6d\x77\x9b\xf5\xfd\x38\x7c\xff\x36\x54\x61\x20\x0d\x8a\x94\xd8\xfc\xca\xf7\x31\xaa\x3b\xc5\x90\xd0\x52\xc0\x92\xfd\x7b\xf9\xdf\x4a\x74\xa6\x8d\x99\x34\x45\xaf\xf7\x6e\xfd\xcf\xe7\xf5\xf5\x62\xb7\x7e\x7c\xd8\x6f\x56\xdb\xd5\xe6\xf7\xd5\x7e\xd3\xfe\xdf\x6e\xa0\x8a\x7c\xe6\xcf\x46\x83\xae\x24\x30\xbb\xd9\xf1\x80\x28\x69\xab\x3c\xf5\x8c\x54\xfb\xe8\xe6\x78\xc0\x15\xfa\x20\x7b\xa4\x30\xc8\xf2\xac\x39\x63\x54\x40\xd8\x6f\x93\x81\xa9\x30\xce\x7d\x78\xd4\x13\x68\x36\xe5\x81\x14\xc2\x03\x93\xa1\xd0\x43\x8e\x77\xca\x89\x34\xa1\xe5\x51\x7c\x11\xf9\x55\xd9\xff\xdd\xa4\x49\xd0\xb5\x07\xdf\x8b\xcf\x79\x93\xcc\xc3\x88\x60\x99\xef\x28\xaa\xda\x7e\xfb\xe1\xe4\xe0\xa1\xd6\x98\x66\xdd\xfe\x1c\xc8\xa2\xce\x2e\x1e\x1e\x85\x16\xd5\x25\x2c\xa9\x55\xb7\x63\x8d\x7f\x2f\x4a\x23\x61\xeb\x25\xf2\xf4\xb2\x47\x34\x73\x56\x60\xe8\xf1\xf9\x78\x6a\x8e\xa7\xe6\x6e\x5a\xfc\xe0\x71\x64\x10\xd7\x83\x1c\x3b\x31\x9f\x1e\xa5\x01\xfa\xdb\x38\xd1\xee\xad\xd2\x75\xe7\x49\x5e\xee\x0b\x3c\x96\x2a\xed\x0c\x85\x37\xf6\x7e\xd3\xe6\xb1\x31\x58\x20\x92\xee\xe3\x12\x3a\xf9\xfe\x6d\xc8\x8b\xaa\x87\xd7\xc3\xd5\xc0\x13\x0a\xc8\x34\xff\xf7\xdd\xea\x6a\xbd\x9b\x77\xd6\x78\x22\x62\x2c\x7a\xe0\xbb\xbe\x2b\x85\x95\x36\x19\x30\x8e\xfc\x95\xf6\x61\x22\xfb\x97\xab\x98\xfc\x15\xff\xab\x3b\x1f\x90\x22\xe0\x90\x15\x50\xb5\x11\xce\xa3\xb9\x13\x75\x6b\xe3\x4b\xd3\xdd\x08\x88\xc4\x45\xc9\x9b\xc7\x9b\x8d\x13\xc1\x73\x07\x69\x10\x22\xc6\x19\xb5\x8e\xf3\xb9\x17\x35\xbe\x61\x26\x01\x7d\xb7\x4d\x89\xbc\x48\x8b\x42\x6f\xa0\x46\x99\x8d\xee\x92\x3c\x01\xce\x3b\x50\xf4\x0b\x20\xf2\xcc\x1d\x4b\x13\x99\x08\xaf\x36\x91\xe5\x67\x14\xba\xeb\x0e\x52\xa9\x6d\x01\x02\x7b\x0d\x3a\x6e\x9a\xd3\x6c\x7f\xd5\xa8\x7a\xc4\x45\xc8\xb1\x90\xb2\x2b\x4f\x55\x1b\x17\x17\xcd\xb2\xfc\x46\xb8\x79\x3c\x4f\x05\xa3\x98\x29\xb7\x9e\xdf\x4d\x59\x59\x54\xaa\xbf\x2f\x99\x10\xd0\x9e\x00\xd6\xe9\x37\x7d\x95\x27\x9b\xeb\xf1\xf6\x97\x49\x49\xa7\xbb\xe9\xbc\x94\xe1\xab\x51\x89\xc2\xc8\x7e\x7b\xbd\xfb\x15\x1f\x31\xe5\x2a\x95\xd2\x5d\xeb\x2a\x9b\xe7\xf6\xa2\x5c\x39\xf1\x78\x24\x84\x6a\xb7\x9e\x6f\xcd\x98\x4e\x05\xe6\x41\xf6\x88\x1e\xf8\x28\x26\xdd\x88\xdf\x67\x02\xb9\x36\x12\x21\x4b\xbb\xdd\x68\x11\x40\xc8\x3c\x67\xf4\xdd\x09\x75\xf9\x8f\x93\x0d\x9f\x43\x9c\xa0\x8b\x67\x5d\x9f\xab\x6d\x99\xeb\xfd\xf2\x71\xf3\xb0\xda\x6c\x77\x8f\x0f\xab\xee\x4a\x89\xc0\x0e\x65\xed\x55\x3d\xda\x3d\xee\xa6\xac\x5c\xe8\x3e\x31\x01\x26\x90\x08\x88\xd9\x3d\xee\x16\x77\xfb\xbb\xc5\x66\xb5\xbf\x79\xdc\xec\xfb\xa6\x48\xca\x8d\x31\x91\x6d\xf0\x29\x6c\xa7\xd0\xbc\x39\x4c\x83\x28\xc4\xfb\x93\xf0\x92\x15\x03\x80\x3f\x1e\x01\xab\xcd\x5c\x7e\x9e\x77\x17\x9a\xd1\x3f\xb3\xe6\x15\x29\x71\x61\x28\x78\x33\x2d\x98\xce\x95\x51\x52\xc2\x18\xb6\xe4\x0a\x3d\xec\x63\x9d\x69\xb7\xa5\x69\x48\xac\xa0\x89\xad\xf8\x0d\xd7\x76\x1a\xaa\x10\x43\xbe\x7d\x53\xee\xb2\x1c\xd6\x88\xd2\x8f\xc2\xbf\x0d\xd6\x4d\x1a\xea\x04\x43\x5e\xa7\x14\x8b\xf9\x7b\x27\xb2\x3f\xbb\xd9\xba\xd3\xa2\xd8\xee\x25\x7b\x57\x6c\x7b\x2c\xa0\x53\x7c\xa5\x69\x94\x70\xc4\x1b\xbd\x97\xb8\x9a\x76\xe2\x38\x88\x10\xd2\x88\x06\x81\xcd\x29\x96\xf9\xa8\xd6\x9e\x46\xd4\xf2\xd1\xa2\xf9\x7a\x34\xbb\x57\xd8\x64\x5e\x25\x89\xa6\x71\x10\x5a\xd0\x74\x55\x7e\x34\xfd\x5f\x09\x35\xae\xf4\xf1\x50\x6a\xd8\x9d\x8f\x93\xa8\x2a\x8d\xb9\xd2\xe9\xa8\xb9\xa8\x82\x8e\x8f\xf1\x2f\x42\x27\x59\xf9\x34\xd6\x02\xf7\x73\x24\x23\x5d\x3f\xdc\xee\xb7\x0f\x8b\xf5\x5d\xf7\x7b\xc6\x92\xee\x61\x07\xf9\xe4\x5b\x24\x61\x80\xcf\x2d\x72\xf5\x0a\x87\xf3\xf4\xa8\x12\xca\x95\xd3\xb1\x04\xa4\xeb\xab\xf3\x52\x34\xf0\x52\x56\xe7\x71\x10\x9c\xb2\x20\x15\x36\x1c\xf8\x01\x9f\x16\xf0\x43\xe3\xc9\xe5\x58\x18\xda\x34\x8f\xcb\xcf\x0c\xfb\x69\x87\xb6\x22\x65\x91\x41\xc3\xa2\xca\xc3\xf1\xd4\xc0\x76\x7a\x1d\x25\x88\xed\x9a\x2e\xb2\xfa\x75\x9b\x15\x2f\xb9\xed\xde\x99\x35\x2a\x29\x0f\x04\x61\x9d\x31\x3c\x94\x17\x08\x80\x6f\xbd\xb3\xb4\xdd\xed\x43\xcb\xe3\xfb\x06\x67\x4b\xe1\x35\x91\x51\xa3\x29\xe7\x09\xb2\x1c\x7f\xf4\x3e\xe6\x28\x72\x4d\x53\xa5\x43\xe7\x32\xdf\x56\xe5\x07\xca\xd0\x16\x4d\x55\xe6\x08\x40\x5b\x74\x13\x2a\xd5\x56\xd4\xb9\x16\x65\x2d\x4a\xda\xfd\xd9\x58\xfa\x0f\x9b\xc3\xf8\x59\x56\xcd\xeb\x64\xce\x88\xd0\x92\x31\xa3\x51\x72\x70\xb5\x6e\x5d\x89\xc4\x22\x4f\x5b\x77\xcf\xc2\x88\x27\xb6\x34\x15\x1a\x30\x87\x72\xb7\xba\xde\xdf\x3f\xdf\xed\xd6\xdb\xf5\xad\x3f\x5b\xea\x58\xd8\x8c\xf2\x0b\xde\xed\xa0\x34\x9f\x4a\x10\xd2\x2f\x9c\xc9\x3b\x51\x61\x28\x5d\xb7\xd7\x9f\xe2\x3c\x71\x08\x53\x95\x48\xc4\xb1\xc9\x53\xbb\x2d\x2f\xf3\xb2\x3e\x55\x30\x04\x68\xf8\x71\xd4\x0a\xa5\x75\xcc\x9d\xa8\x4e\xe5\x0f\x4a\x69\x17\xf5\x0b\x34\xa8\xb6\x34\x4c\x8f\xa4\x5a\x5b\xe9\x59\xcb\x1b\x27\xea\x3a\xc3\x16\xfa\x87\xd3\xb4\x9a\x93\x6a\x63\x55\xa3\x4f\xc5\xd0\x5a\x02\xb7\x9a\xa1\x76\x93\xfd\x0e\x02\x96\x82\x00\xd4\x12\x73\x41\x97\x6f\xf8\xda\x95\xf7\xd9\xb4\xf2\x9e\x1a\xa6\x31\xca\xbb\x79\x7c\x7e\x70\x3e\xfd\xd3\x6a\xb3\x5c\xf9\x4e\x4e\x9a\x1a\xce\x91\xf1\xa7\x13\x04\x45\x85\xb2\xf1\x0b\x14\x84\x27\xc8\xe2\xf5\xf1\xda\x31\x2d\x50\x11\x06\x06\x6d\xcb\xf5\x76\x25\xea\x33\xd2\xa0\xd7\xd9\xcb\xff\x44\xf9\x41\x45\x14\x6b\x04\x7f\xef\xad\xbf\xbd\x14\x95\xee\x11\xf6\x5e\x03\x88\x8a\x48\xc4\x51\xda\x29\xb5\x8f\x5a\x9b\x66\x5f\x8e\x88\xa4\x65\x4d\x45\x49\x9b\x7a\x68\xf0\x45\x22\x8d\x97\x25\x45\xcf\x2b\x1c\xf4\x41\x51\x41\x43\x8d\x65\xda\x81\x38\x67\xd8\x1d\x8b\x22\x0c\x28\x36\x8f\x8b\xee\x4f\x22\xd0\x76\xdf\x53\xe5\x01\xa1\xf3\xdd\x11\x43\xb0\xc8\xef\x53\x89\x77\x99\x82\xa2\x86\x39\x48\xa2\xe0\xd4\xe6\x50\x4e\xb5\x9e\x81\x95\x8b\x54\x04\x69\xda\x2b\x4f\xac\x55\xfb\x89\xfd\xef\x08\x66\xac\xd4\x43\x91\x9f\x6f\x2c\x29\x54\xf7\xa8\x92\x84\x84\x0e\x69\x83\xeb\x45\x75\x38\x93\xc9\xe5\x65\x64\xc9\x34\xb2\x22\x6b\x32\x6c\xf9\xfb\x8a\xb5\xc0\x9f\x20\x08\x4e\xdd\xab\xac\x8d\x42\x3e\xbb\x5f\x93\x36\x29\xe6\x55\xc2\x89\x13\x96\xf0\xb1\xc0\x34\x26\x10\x2a\x0d\xbd\xeb\xf5\x77\xa1\xde\x8e\x65\xe3\x90\xc1\x93\x1b\xd4\x09\xeb\x80\x9d\x99\x3a\xe5\xcd\x79\xab\x44\x0e\xf7\x96\x58\x2b\x83\x6a\xe8\x20\x0b\x08\x84\xb0\xf8\x30\x1b\x20\xf9\xbf\x1b\x6d\x55\x85\x5b\x6f\xb0\x47\x10\xcb\x80\x40\x62\xb1\x66\x78\xbd\x19\x98\xb6\x0c\x12\x81\x33\x7c\xfd\xb0\xde\xad\x17\x77\x7b\x64\x71\xb9\x5b\x6f\x77\x23\xc2\x24\x2a\x03\x1e\x63\x41\x32\xab\x1f\x8f\xdd\xf5\x49\xa0\xd1\x48\x62\xe3\x58\xbb\x9e\xf7\x37\x65\xb5\x5f\x66\x15\x6e\xb3\x3d\xfe\x4e\x12\x62\x90\xf8\xc9\x20\x8b\x44\x26\xf2\xfd\x7a\xf9\xd8\x1d\xa4\x09\x74\xa9\xaf\x7d\xe6\x6b\x80\xdd\xe1\xd4\x62\x97\x67\xf9\xd4\xfc\x18\x65\x53\xf1\x2f\xa2\x6e\x5f\x9f\x98\x44\x98\x32\x0c\x28\x5a\x47\x5d\x6e\xcb\x03\x34\xaf\x17\xfe\xa2\x0c\x29\x45\xbb\xb8\x42\x97\xed\xd4\x46\x35\x36\xd5\xf6\xc5\x2f\x86\x2a\x8e\x58\x8f\x35\x1a\xe2\xda\x06\x83\xb4\xc1\x46\x84\xca\x1e\xbd\x2e\xd5\xe9\x00\xf3\xe2\x55\x54\x46\x42\x7a\x7a\xcc\x7b\x0b\x5d\x18\xa3\xa4\x65\x1c\x84\x08\xcc\xb8\xbf\x7d\xee\xfe\x14\xa7\xa1\x45\x8e\x54\xef\xa7\x21\x8d\x17\x95\xb1\x0c\xb0\x6c\xd4\x40\xed\x48\xf2\x5b\x9f\x63\x32\xfd\x64\x42\x22\xab\x62\x90\x15\x22\x1f\x62\x37\x64\x92\x00\xfe\x9a\xb3\xe1\x7e\x96\x0f\x63\x2e\x99\x30\x89\x4c\x95\x35\xf6\xab\xb6\xd3\xeb\xab\xd7\xc5\x8c\xa5\xaa\xf4\x26\x78\x08\x00\x24\x69\x38\x0c\x93\x24\x67\x12\xdb\x11\xa1\xf2\x89\x48\x99\x06\x29\x38\xc6\x14\xdd\x6d\xc3\x52\x84\x16\xe4\x6f\x40\xbd\xfe\x5e\x36\x88\xa9\xb9\x29\x2b\x84\x00\x5e\x9d\xc7\x28\xb9\xf9\xdb\x92\x01\xb1\xa6\x14\x6c\x3f\xf0\xba\x10\x28\x40\xea\x38\xbf\x70\x1a\x7e\x59\xad\x95\x92\x50\xca\x06\x0a\x8d\x8d\x7a\xbd\x68\x7d\x72\x56\x5e\x2a\xc2\xbd\xea\x24\x62\xe3\xa6\xeb\x50\x27\x71\xc8\x86\x82\xd2\x43\xac\x83\xd4\x3c\xc1\x46\xdb\x43\xa3\x9f\x2a\x18\xf9\xcc\x52\x2b\x45\x6c\x03\xe3\xa2\xb9\x03\x51\x7f\x51\xae\x92\x26\xd2\x98\x50\x2a\x2b\xa1\xda\x67\xdd\xff\xe7\x04\xd5\x84\xec\xef\xaf\xf0\x5f\xd3\xb3\x9c\x32\xa9\xdd\x9d\x24\x54\x8f\xe6\x1a\xa0\xf5\x5c\x7d\x41\x66\x38\x89\x55\xe0\x13\xe1\xf5\xba\xe8\xbb\x77\xc6\x93\x4e\x05\x69\xc4\x89\xdb\x18\xad\xca\x46\xeb\xa8\xd4\x48\x08\x39\x5b\xcd\x56\x81\x4e\xd0\x65\xfa\xf3\xf4\x96\x4d\x55\xc0\xa9\x22\x9a\x7a\x96\xc7\x45\xf1\x02\x79\xeb\xbc\xba\x40\xe8\x34\xe8\xc6\x52\xc4\x70\x66\x61\x0f\x08\x03\xdf\x57\x23\x19\x41\x37\x28\x24\x14\x01\x49\x0e\xb0\x6f\xfb\x1d\x67\x3d\x61\x15\x86\xd4\x04\xae\x9e\xf8\x55\x3a\xf3\x72\xda\xa8\x30\xb2\xe9\x5a\xdf\xed\x50\x3f\x41\xf5\x5c\xeb\xcd\x45\x87\x8b\x0a\x63\xe9\xbb\x44\x37\x4e\xcd\x6f\xb8\x46\x55\x98\xa4\x9e\xaa\x6f\xff\xda\xc7\x6c\x17\xdf\x5e\x85\xc6\x96\xc9\x2c\x12\x70\xf1\x52\x01\x22\x1e\x27\xd6\x40\x45\x81\xb4\xb2\x32\xad\xd7\x70\x2b\xea\xa5\x0b\x98\x7a\x4b\xae\x22\xa0\x32\xb5\xd8\xd1\xae\x03\x98\xaa\x58\xd9\x14\x73\x5f\x5b\x5c\x1c\xa7\x71\xbe\x8a\x75\x82\xdd\xe0\xf7\xd0\x54\x65\x51\x1e\x60\xf4\x11\x63\xb0\xcc\xb2\xaf\xa2\xc6\x52\xe1\xf8\xdc\x84\x12\x04\x61\x8b\xca\x39\x8e\x37\x15\x74\xaf\x21\xe1\x16\xfd\xd2\xee\xb5\xa5\x1c\x7c\xf9\xfe\xc9\x68\xa8\x6c\xe7\x73\x71\x11\xb4\x29\x4a\x43\x2c\x62\x2f\x0f\xde\xde\x28\x4a\x13\x96\x0c\x55\x40\xde\xb3\xd6\xa6\x20\xec\x75\x9e\x02\x83\x2a\x2a\x00\x6d\xd4\xe3\xf5\x6a\xf5\x34\x7a\x34\x26\x0d\x17\x9e\x1c\xa3\x7d\x3d\x73\xfd\x2d\x8a\x19\x86\x0c\x07\xf7\x65\x76\xf8\x65\xfe\x47\xf1\x90\x04\xee\xd3\xbb\xb6\x3a\x51\x89\x83\x37\x8d\x2a\x8d\xa2\x38\xed\xd9\xc9\x86\xed\xa8\x43\xdf\xe7\x9b\x7f\xfc\x85\x62\x8d\x2f\x5e\x9f\xec\x52\x76\x79\x78\x7f\x34\xd1\x30\x64\xb2\xfa\x75\x77\x87\x4a\x39\x41\x38\xe5\xb6\x9d\xcf\x15\xe4\x37\xa2\x3a\x74\x99\x36\x25\x02\x8b\x7b\x7a\x5a\x6c\x86\x6c\x2c\x54\x89\x28\x0c\x65\xa7\x22\xe3\xdb\x01\x75\x77\x38\x89\x31\x64\xcf\xc5\xc7\xaa\xc0\x4e\xbc\x76\x7e\x6f\xca\xce\x95\x57\x32\xa6\xc8\xe0\xa5\x5a\x33\xfd\x67\x79\xfa\x1e\x22\xa5\x64\x0a\x14\x17\xa9\x7a\x05\x7d\xca\x61\x08\xc9\xbd\x20\x7f\xa4\x4a\x2a\x8d\xd8\xa9\xe2\x74\xc0\x44\x6a\x73\xaa\xc0\xd1\xc0\x79\xeb\xa3\x82\x38\x1c\xea\xed\xdb\x76\x38\x0f\x15\x79\x80\xe6\xa3\xac\xde\xe6\x2a\x62\x4a\x27\xb6\x5b\xe2\x5e\x7c\xda\xf9\x53\x94\x1a\x6a\x27\x14\x31\xe4\xc8\xe2\xfe\x04\xae\xb0\xcc\x86\x5b\xd2\xfe\x5e\xbc\xf5\x2f\x18\xc2\x04\x2d\xc1\x7a\x6a\x94\xa1\x8d\x79\xfb\xde\x9e\x61\xf7\x91\x02\xae\xd0\x2e\xfc\x10\x85\xae\x1f\x8b\xd9\xd9\x79\x9a\xb2\xbf\x53\x05\x82\xa3\x9d\xff\x87\x38\x67\xa3\x05\x01\x02\xa4\x4f\x10\x77\x48\xcc\xee\xa0\x24\x26\x72\x65\xd2\x09\x5b\xf2\x8c\x31\x35\xc2\xe0\xfc\xbc\xbf\xff\x16\x6f\xac\x8c\x64\xc2\xd9\x88\x2b\x31\x45\xcd\x2b\x23\x25\xee\x0c\x15\xbc\x43\x71\x82\xb1\xe3\xa5\x03\x47\x39\x88\x12\x95\xf5\xeb\x53\x99\x15\xcd\xd5\x19\x9d\xaa\xb2\x1a\x61\xfe\x35\x49\x02\xe8\xc1\xc6\x1d\x10\x65\xe8\x45\x0c\xc8\xfe\xda\xf1\x04\x9b\xe2\x5b\x87\xbe\xbe\x03\xd3\xac\x8b\x9e\xc4\xb4\x3d\x9c\xd2\x9e\xce\x6f\xca\x95\xe7\x9c\x27\x37\x36\x8c\x00\x95\x36\x5d\x77\xb9\x7f\x9f\x3a\x94\xc6\xe7\xc7\x76\x20\x0e\xa3\x97\xad\xa3\xd8\xe0\xc6\xea\x62\x94\x27\x71\x2e\xcd\x45\xbb\xdf\x78\xdb\xd3\x71\xa0\x31\x60\xb5\x9e\xa1\x8b\xcb\xc6\x2f\x54\xc7\xa9\x56\xc8\x13\x7a\xc8\x3a\x31\xb3\xd9\xad\xf4\x6f\x93\xf3\x3c\xa9\x05\xe6\x75\x4e\x47\xd7\x91\x3b\x19\x04\xa9\xee\x41\xa1\x57\xe7\xdd\xe7\x6f\x97\xb3\x4f\x27\x71\x8c\x7b\x52\x7d\x3a\xfc\x10\x95\x5e\x8a\xe3\x53\x05\xeb\xe5\x23\xf1\xcf\x4e\x75\x80\x4d\x45\x77\xd0\xd4\x46\x64\xa3\x62\xb3\x66\x61\x8c\x04\x49\x08\xb6\x30\xa2\x9f\x0c\x4c\x5b\x79\x77\xa1\xf5\xee\x23\x2b\x66\x61\x29\x9a\x33\x83\xcd\x48\x87\xb3\x95\x44\x13\x79\x2f\x31\xec\x86\xa4\x51\x80\x09\xfc\x9b\xd6\x9c\x75\x98\xdd\xee\xa0\xc5\x50\xee\x6b\x70\x0d\x28\x0e\x7e\x4f\xe7\x6a\x1f\x3a\x4d\xb8\x72\x9f\xf8\x0e\x61\x94\xc7\xae\x10\xaf\x53\x6a\x03\xbc\xbd\xdf\x0a\x50\x15\x7e\xbe\x04\xa0\x05\x01\x36\x10\x14\x5f\x14\xfa\x6e\xc6\x79\x9e\x7c\x33\x11\x31\x2b\x1e\xda\x94\x05\xf8\x5e\x25\x7f\x2c\xa6\x4c\x79\x7c\xce\x7f\xcf\x0b\x63\xb2\x3c\x1b\x09\x76\x9d\x06\x50\xa8\xf9\xea\x8c\x16\x49\x2c\x22\x9f\xe8\xec\xba\xe8\xbf\x00\x94\x68\xa1\x34\x96\x9a\xb1\x34\x98\xa4\x93\xb9\xa3\x02\x82\xf5\xe4\xab\xcd\xcd\x45\xe7\xfa\x5f\x51\x6f\x5f\xbe\xfc\xcf\xaf\xaa\x21\xdf\x02\x31\xb4\x22\x09\xee\x4f\xe8\xbe\x4d\x68\x0d\xbb\x21\x42\x77\x5e\xc2\x27\xa6\x6f\xa2\x85\x05\x2e\x67\x65\xf1\x04\x95\x47\xc7\x4e\xcf\xa3\x0c\xe5\xb1\x91\x09\xc4\xbf\x77\xc5\x63\x74\x4d\x1d\xe2\xd0\x73\xf3\x4d\xa6\xa9\x92\x04\x6b\x36\xae\x27\x65\x42\xee\x44\xb5\x52\xdc\xb3\x27\xb4\x3e\x59\x7b\x03\x45\x53\x56\xe7\x79\x7f\x58\xeb\x80\x02\x99\x42\xa3\x22\x0f\x4b\xd4\x5a\x59\xaa\x8c\x9b\x2c\xcf\xaf\x4e\xe7\x71\x3c\xff\x3f\xc2\xce\x27\xdf\x5a\x2b\x20\x8e\xf0\xda\x95\x2d\x67\xca\xbb\x1a\xe2\x10\x31\xa0\x3d\xf3\x65\xdf\x05\xe2\x87\x88\x24\x01\xb7\xe9\xac\x9a\xd7\x5d\x39\xd5\x76\x9d\x37\x57\xa0\x43\xa7\xd6\xaa\x01\x0e\x7b\x83\x8a\x25\x5f\x3d\xca\x78\xa9\x81\xd1\x88\xe2\xff\x3f\xa8\xca\x1f\x65\x39\x56\x58\xf9\xe5\xde\xaa\x4d\x10\x61\xa7\xef\x66\x75\xb3\x5f\x6e\x56\xd7\xeb\xdd\x76\xff\xb4\xda\xec\x17\x7f\xac\x7d\x81\x4b\x9b\xc8\xd6\xd5\x71\xe5\xa3\x42\xb3\xd7\xde\x1b\x7f\x66\xd3\x7a\xfe\xb6\x86\x3c\x62\xf5\xbb\x2f\x2b\xe8\x59\xfd\x28\x04\x21\xc5\x36\xed\xbd\x23\x87\x9c\x68\x63\xb8\x51\x24\xe1\x86\x4f\x65\x95\x47\xaf\x0d\x08\xb5\xfd\x64\x3d\xaf\xe3\x06\xd0\x41\xbd\x13\xed\x9f\x06\xdc\x8e\x03\xb2\x35\x0a\x44\x2a\x34\x26\xeb\x42\x97\xe8\x3d\xf9\x03\x21\x05\x4b\xc2\x22\x9a\xbc\xac\xf4\x18\xd4\x09\x21\x58\x7a\xdb\x0a\xd4\x59\xe5\x56\x8d\xaf\x67\x68\x80\x88\x58\x30\xbc\xc0\x26\xdf\x03\x06\xdf\xb3\x56\x1d\xa2\x90\xa7\xae\x0c\xfc\x00\x9f\xcd\x3d\xb4\xf1\xf0\x93\xd3\xb6\xfd\xd6\x46\x42\x64\x94\x71\x1d\x7c\x57\x63\x4c\xf5\x78\x5c\x1c\x04\xb8\xbb\xf8\xed\x62\x16\x5f\x0d\x71\xca\x24\xed\xd7\xa5\x77\xef\xe7\xef\x3a\x16\x60\x29\xca\xd4\x71\xf2\x63\x49\x98\x62\xe6\xdc\xb5\xaa\x89\xfc\x36\x33\x23\x40\x0f\x24\x51\x80\xb5\xae\xed\xdd\x3f\x26\x7f\x97\x98\xb5\x45\x72\x67\xb2\x5f\x2c\xad\xe2\xeb\x05\xee\x07\x12\x13\x22\x77\xea\xf6\xb5\xfc\xd8\xbb\xfb\xdb\x9b\xb2\xda\x97\xf8\x9e\xf7\x1e\x19\x06\x2c\xa6\xa9\xf2\xa5\x6a\x4c\xf4\xfe\x10\xf5\xa4\x28\x03\x8c\x59\x9a\xba\x1a\x9a\x55\xd1\x54\xe7\x19\xc2\x1a\x60\x26\xc6\xbe\x96\xed\x6e\xb1\x5b\xed\x1f\x7f\x3e\xac\x3c\x25\x0e\x70\x62\xab\x0a\x36\x86\xf8\x09\xd9\x7c\x88\x02\xdc\x41\xfe\x31\x0c\xae\xad\xde\x64\xd6\xd9\x0a\xe0\xc2\x36\xb5\x36\xa2\x7a\x81\xc6\x67\xd0\x21\x85\xd4\x75\x71\x21\x7e\xa5\x67\xa9\xfb\xd6\x84\x80\x60\x42\x5b\xf0\xcb\x27\x8a\x19\x4c\x59\xc3\xbe\x38\x4b\xd8\x0f\x70\x7d\xbb\x5c\x74\x24\x4a\x20\x25\x24\x56\xa3\xe3\xc3\x37\xf4\x7f\xeb\xca\x81\x0a\x88\x45\xbc\xe6\x20\x2a\x47\xae\x36\x10\x84\x9a\x0e\x66\x01\xf7\x0f\x88\x12\x4e\x21\x1f\x65\x7f\x40\x45\x41\x27\xf4\x61\x5b\xdd\xfe\x04\x51\x59\xbd\xf1\xde\xb0\x79\x4a\x08\x50\xc6\x18\x9b\x53\xde\xcb\xc6\xc7\xde\xa0\x13\x1a\x41\x4f\xd9\x53\x47\xe1\xb8\x84\x05\x90\x58\x8d\xd7\x21\x6e\xfd\xa9\x82\xcb\x4e\x5e\x00\x6a\xb4\xe3\x69\xdd\xd7\xea\xb5\x82\x43\x3d\x50\x47\xa7\x00\x82\x61\xa8\x91\xa3\xd2\xac\xdf\x67\x3b\x19\x1d\x0a\xc6\x58\x66\x8e\x6b\x68\x44\x96\x83\xb6\xc8\xb9\x19\x7d\x0c\x3b\xde\x04\x4c\x20\x7e\x57\x66\x2f\xb2\x3c\x60\xd2\x7d\x9b\xbd\x8c\xd0\x59\x26\x50\x12\x9b\x79\xaf\x45\x95\x95\x88\x27\xcc\x6a\x9b\x6b\xec\x46\x40\xc2\x6c\x46\xef\x0e\xc4\xb1\x7d\x85\xa3\xf7\x66\x88\x4a\x7d\xc5\xe8\x29\x9b\xc6\x32\x86\x18\x9d\x10\xdf\x9a\x36\x9a\x04\x6e\x40\x18\x58\x7e\x85\xbb\xf2\x65\x89\xfa\x95\x16\xf1\x34\x56\xb0\x9c\x9c\x92\x30\xc4\xc7\x2c\x5e\xaa\x72\x07\xea\xb5\x0d\xda\x87\x06\xc1\x84\x02\xd0\x50\xc8\x0e\x03\x60\x42\xe0\xd8\xd2\x85\x41\xc2\x70\x63\xf4\xc7\x8d\x4e\x1c\x45\x0b\x6e\xdc\xfd\x86\x6d\x62\x6e\xb3\x35\xa6\x02\x18\xe6\x41\x4d\x2c\x64\xe8\x68\x46\xb7\x03\xd1\xa3\xf1\xcd\x26\x89\xa5\x5d\x6c\xcd\xb4\x50\xbb\xf2\xe1\xee\x66\x3a\x82\x11\x5c\x3d\xbd\x82\x1b\xb2\x57\x4e\x5d\x32\x93\x08\x9b\x74\x28\x8f\x50\x6c\x5f\x4b\x0f\xb8\x34\x54\x70\xfc\x84\x98\xc0\xac\x10\x42\x3f\x3e\x91\x6a\xee\xd1\x39\x8f\x32\xcf\x5e\xec\xbb\x1d\xe6\x36\x7d\x52\xd2\xb0\x20\x41\x56\xb9\xed\xb1\x3c\x35\x97\xcd\x7b\xdf\xae\x5f\xc3\xc2\x84\xb9\x9a\xc1\x36\x7b\x99\xee\xb3\x86\x25\x31\x42\xe9\x0f\xa2\x2a\x47\x12\x7d\xd4\x70\x42\x29\x77\x00\xfd\x21\xaf\x8c\x3f\xcc\x24\x46\x14\x3f\x4f\x87\xac\x78\x99\x05\x6c\xba\x91\x69\x94\xe0\xce\x06\x9f\x48\x9e\x57\x2d\x10\xa4\x0a\x7a\x7d\x25\x8a\xb7\xeb\x4a\x98\xee\xe3\xa5\x9c\xe3\x07\xbf\x5f\xfc\xb1\xbf\x5b\x3d\xdc\xee\x7e\x74\x47\x52\x2b\x10\xb4\x52\x65\x5e\xbe\x64\x4a\xe4\xdb\xd7\x0c\xba\x86\x23\x93\x6a\x01\xa4\x5b\xf1\x33\x65\x2c\x23\x03\x6e\x69\x53\xdd\x56\xf8\x73\x58\x67\xe8\x1f\x4b\xc6\x6c\xd4\x6f\x89\x45\xcd\x39\x4b\x4b\xba\x0c\x83\x91\x26\xd2\xce\xa8\xad\xbf\xc2\x4e\x19\x15\xda\x5e\xff\xf6\xf7\xb3\xe2\x04\x6b\xe5\xbb\x7b\x8d\x4a\x54\x10\x79\xd4\xd7\x44\xf0\x91\x1a\x1d\x04\x56\x7e\xf1\x24\xa7\x30\x37\x3f\x22\x8c\x39\x73\xd2\x9f\x95\x1e\x94\xeb\x8d\x4e\x29\x82\x1b\xac\x9d\x71\xbc\x36\x93\xa7\xe9\x1e\x43\x8b\x10\x3b\x35\xd7\xcb\xc7\xfd\x66\xb1\x5b\x45\xdd\x55\x40\x23\xc7\xad\xc8\xda\x99\x60\x85\x44\x9e\xa0\xda\x55\x1d\xc0\xd8\x00\x61\x9e\xc7\x73\xd3\x65\x78\xbd\xb6\x65\xdd\x8d\x62\x22\xb4\x8e\xdf\xa1\x7c\x87\xe9\xfd\x0c\x03\x56\x03\xed\x5a\x1e\xe4\x8b\x7f\x87\x42\x4f\x7b\x6c\x8d\x09\x03\x0c\xfb\x84\xd6\xbf\xc3\x6b\xa6\x2e\x29\xc6\x2e\x5a\xd2\x67\x9d\x2f\x63\x78\x82\x24\x31\xae\xa4\x87\xcc\x38\xf3\xe4\x8d\xd4\x18\xb0\xfc\xbb\xbe\x55\xeb\x2e\xab\x5d\xe1\xe3\x5e\x1c\x47\x37\xc8\x02\x12\x86\x08\x1b\x75\xf1\xdc\xe5\xbc\x64\x01\xa1\xb6\xe3\xa0\x86\xa6\x63\xf9\x9f\x0c\x09\x89\x44\x5a\x0b\xf8\x04\x75\x6a\xca\x6a\x91\x67\xef\xee\x13\xb3\x20\xe4\x31\x82\x3e\xea\x32\xd7\x57\x00\x15\xe6\x89\xba\x83\xd2\x02\x32\x0c\xf8\x3e\x0b\x51\x9d\x9f\xca\xb1\xbd\x67\x41\x14\xd8\xaf\x57\x97\x55\x33\x51\xe2\x74\xb3\xa3\x1d\x23\x12\x47\xe3\x8b\x9e\xa4\x63\xb8\xbc\xca\x9a\xf6\x17\xfb\x70\x69\xfa\xa2\xa7\x99\x50\x16\x44\x8a\x25\x5d\xe3\x23\x26\xc0\xda\x57\xd8\x75\x76\x4e\x08\xb8\x58\x90\x84\xb1\x8b\xbc\x1a\x87\xbc\xb5\x7a\xdc\xe3\x97\x44\x09\x45\xac\xd3\xd1\xd1\xc4\xf4\x4e\xca\x06\x54\x76\xcc\xc0\xef\x11\x2c\xa0\x5c\x23\x22\x16\xf7\x3f\x4b\x67\x70\x81\xbd\x9b\xfb\xf6\x2c\xa0\x22\xc4\x79\xe2\xca\xb5\xcf\x83\xca\xe7\xe0\x1c\x9b\xd4\xfd\xdb\xe4\xfe\x74\x88\x34\x62\xd7\x95\x78\x29\x8b\x5d\xbb\x88\x4e\x15\xcc\x03\xdd\xc7\x67\xb2\x20\x62\x5e\xd2\xee\x4b\x97\x71\xfe\x7e\x59\x64\xf9\x3a\x84\xd6\xde\xea\x8e\x68\xe1\xbe\x0b\x49\x58\xc0\x62\xc1\xbd\xb3\xe6\xb7\x1d\x57\x3b\x99\xbc\x2e\x7f\x82\x02\x14\xa6\xb1\xcb\xfe\x49\xd4\xf5\x6f\x93\x01\x46\x61\xbe\xf7\x28\xce\xd2\xe7\x58\x69\xfc\xb7\xe9\x17\xe7\xc4\xb6\x0f\xb9\xbf\x6f\x97\x98\xcd\xcf\xda\x07\x1f\x91\x73\xb1\x80\xc7\x09\x62\x3c\x7e\xcf\x54\x53\x56\xe7\x3f\x7e\x19\x17\xb3\x80\xd3\x64\x54\x68\x46\x38\xf5\x4d\x59\x2d\xcb\x3c\x07\xd5\x64\xf2\x0b\xa2\x42\x16\xa4\x54\x28\xdb\x72\xad\xef\xda\x4d\xe8\x77\xa8\xea\x21\xb9\xd1\xf8\xb3\x89\x34\x44\xcf\xb9\x86\xe6\x0e\xbd\xc7\xa0\x77\x60\xda\xa3\x02\x73\x50\x35\x2a\xee\x5f\x43\xd6\x9c\x27\x13\x5a\x06\xc4\x96\xce\x1b\xf1\x02\x1d\x18\x82\x05\x32\x24\xae\xa9\xd0\xf2\x4c\x3c\x89\x73\xb7\xde\x25\x48\xcc\x76\xb8\xaa\xd4\x16\xf2\xbc\xef\xdc\xbf\x7c\x20\x15\x13\xe9\xb2\x37\x43\x6c\x6a\xeb\x2a\x63\xbf\xe2\x30\xc0\xfa\x6a\xa6\x7d\x31\x77\x14\x04\x58\xab\xaa\x85\x81\x5b\xe4\x3f\x1b\x0a\x96\x4d\x06\x6b\x16\x20\x37\xc5\xb6\xc9\x8a\xb7\xf3\x5d\xfb\x3f\xfe\x89\x80\x87\xba\xe7\xfa\xbb\xa9\x00\x9e\x8b\x26\xcb\x2f\x48\x83\x59\x60\x48\x80\xae\xcc\xa9\x86\x4e\xa1\xef\x62\x3b\x65\x81\xe1\x56\xe8\xc4\x6f\x2c\xb8\x5d\x7e\x81\xbc\xf5\xa7\xa8\x48\xba\xbc\xdb\x52\x1c\xe7\xb0\x19\xed\x18\xca\xd1\x21\x3d\x15\xba\x12\x59\xdd\x95\xc0\x18\x21\x94\x43\xd4\x15\xf6\x51\xb8\x76\xab\x32\x28\x14\x4c\x3b\xd1\xdc\x09\x61\x10\x47\x51\xcf\xf3\xfa\xc5\xa8\x28\x4e\x53\x1b\x9a\x18\xb8\x1e\x3f\x24\x89\x62\xdb\x13\x23\x14\xd6\x84\xfd\x9d\x44\x22\xc2\x29\x99\x97\x2f\x2f\x63\xf9\x9b\xf1\xe9\x89\xa3\x5e\xb1\xe2\xf5\x73\x1b\x34\x23\x09\x53\x88\x5f\xec\x09\xba\x76\x20\x0e\xdb\x06\x8e\xe1\xf4\x6a\xd2\x12\x75\xb7\x7e\xc5\xd3\x66\xbd\x5c\xf9\xdb\x49\xb4\xf1\xa4\x23\xcf\x45\xf9\x51\x80\xf5\x5d\xe6\xde\x2f\x49\x8c\x49\xba\x66\x70\xc4\x62\x0f\x9a\xe3\x18\xa1\xc4\xf2\x03\x5a\x58\xdb\x84\x57\x9e\x11\xc6\x40\x3a\x5c\xed\xf6\x08\x79\xbe\x90\xd8\x57\xb3\x2c\x1d\x16\x82\xbb\x71\x3c\x0a\xec\x7e\x3d\xaa\xbc\x8d\x35\xba\x19\xe1\xdc\xb2\x1b\xd4\x96\x50\xe6\xbe\xd4\x60\x95\x3f\xbb\xe5\x4d\xb8\x26\xc4\x59\xb0\x6e\x87\xbb\x4c\x3c\x32\xc2\x21\xe4\xb6\x57\x42\xc2\x77\x9a\xe2\xed\x48\x86\x8d\x7a\x2a\x2f\x6b\xf8\x09\xf0\x96\x9f\xed\x96\xd9\xdd\x95\xf1\xd2\x7e\xa2\x52\xaf\x7f\x2f\xe5\x97\x79\xc6\x0b\xa9\x29\xfe\xd7\xbf\xfe\x8a\x87\x52\xfa\x5f\xe8\x51\xb9\x5f\x4a\x63\x4b\x24\x62\x09\x0f\x6c\xa6\xaa\x7d\xc0\x47\x33\xc9\x9a\x32\x92\xd2\x10\xab\x35\xb7\x8b\xfb\xd5\x1e\xd1\xd2\x3e\xd9\xc2\x48\xca\x03\x24\x92\xdc\x1e\x45\xf1\x36\x2b\x29\x39\x6b\x2d\x88\x88\x34\xee\xf4\xd7\xab\x9b\xc5\xf3\xdd\x6e\x7f\xf7\xb8\xfc\xc7\x7e\xf9\xb8\xdd\x61\x7a\xf3\xc7\xe3\xf3\xc6\xff\x82\x50\x02\x1b\x91\x0b\xf8\xd8\x82\x1a\x45\x58\x5f\xf8\x85\xfe\x44\x50\xcc\xca\x10\xee\x2a\x81\xac\x5b\xc3\xf8\x9a\x11\x19\x2b\x6c\x1f\x12\xd6\x59\xda\x9e\x0e\xb7\x1f\x9e\x87\x97\x11\xa9\x89\xd2\xa3\x24\xc7\x75\xaf\xd1\x33\xf9\x25\x09\xb6\xc1\x16\x55\x21\xdc\xdf\x34\x35\xa9\xcb\x13\xed\x36\x4b\x3f\xfb\x2e\xd0\x1f\x8c\x68\x4e\x70\x3b\x75\x85\x1b\xc8\x41\xfe\x36\x43\x7c\xcd\x08\x10\xdb\xe2\xfb\xf7\x32\x2b\x50\x95\xab\xb6\xd0\xde\xdf\x2e\xdf\xb3\x5f\x0a\x10\x53\x6d\xdb\x94\x3f\x37\x18\x57\xac\xbb\x0f\x07\x10\x28\xda\xd9\x64\x8b\xb8\xb2\x6e\xc1\x60\x66\x83\xe1\xb1\x1e\xc2\x0f\x7e\x66\xc5\x85\xf7\x4b\x4c\x1a\xe3\x96\xea\x8b\xe8\x5b\x68\x9e\xd7\xbf\xc8\x95\x32\x62\x04\x4b\x9d\x03\xd7\x7a\x84\xed\x7c\x9f\x75\xd6\x59\x18\x28\x89\x75\xe4\x89\xda\xd9\xf4\xdf\xf1\xe4\xfb\xf6\xc7\xc3\x00\x02\x2c\x88\x42\x3b\x75\x06\x11\x33\x0b\x03\xe3\xe8\x9f\xc5\xa7\x2d\x24\x0e\x93\xe8\x2c\x24\x2a\xa0\x28\x79\xb3\x7a\xd8\x8d\xce\x23\x3a\xc5\x24\xd4\xea\x90\x55\xa2\x81\xba\xe7\x2d\x60\x21\x01\x89\x99\x46\x4b\xe0\xb7\x3d\x17\x3a\x53\xa2\x01\x9b\x59\xf6\xcb\x2c\x0c\xd3\x14\x59\x24\x91\x14\x01\x45\x09\x06\xed\xa1\x2c\x8c\x42\x2b\x87\x5a\x43\x73\xfb\xb4\xbd\xcf\x8a\xd5\x44\x80\x91\x85\x11\xa3\x44\x74\x5d\xd4\x68\x65\x6f\xca\xea\xba\xfb\xe8\x61\xa4\x34\x3e\xf6\xe2\x9f\xcf\x8b\xc7\xf5\x83\xff\x73\x1c\xd8\x22\x45\x47\x92\xe1\xb1\xc9\xbf\x04\xfd\x4f\xff\xff\xec\xca\x1c\x06\x0e\x61\x4c\x03\x4d\xba\xe6\xec\xf7\x4c\x63\x96\xfe\x58\x66\x53\xd2\x32\x16\xc6\x90\xc4\x6e\xe5\xcf\xf9\x75\xbf\xd0\xbf\x9d\x1c\x1e\xda\xe1\x30\x36\x94\x5b\x16\xa5\xf6\x53\x3d\x1e\xe1\x82\x06\xcd\x0d\x4c\x28\x0d\x5d\x96\x6d\x3d\xf0\x7c\x46\x6f\x3d\x51\x31\x32\x14\x6d\x9b\xf6\x6a\x2f\x99\x7a\x12\x55\xd3\x06\x81\x5f\x4c\xe7\xc4\x08\xcc\xc7\x2f\xad\x86\xc5\x8b\x87\x46\x4c\x9e\x9e\x12\xcb\x9c\x92\xd5\x4f\xe2\x8c\x9c\x81\x05\x36\xec\xdd\xb4\xb1\x63\xee\x3f\x1d\x65\x81\xec\xb0\x63\xc7\xb2\x72\x8b\x54\x97\x1f\x57\xe7\x1e\x6e\x37\xbe\x01\x2a\xc1\x8b\x74\xed\xb1\xb8\xbe\xd7\x53\xd2\x78\x16\xb2\x28\xc5\xbc\xde\x2d\x34\xd7\xe5\x41\x64\x05\xa6\x8f\x46\x6f\x91\xd1\x08\x61\xa9\xad\x1f\xb7\x1f\x13\x8b\xb0\x90\x13\xdb\xa9\xe0\xbe\xdc\x4e\x7c\x4e\xd2\x67\x2c\xe4\x46\x74\x80\x8b\xf3\xb2\x12\xd9\xcb\x6d\xd5\x49\xef\xb3\x30\x0d\x15\x6e\x96\x96\xad\x67\xd5\xbc\x3a\x40\xbf\x3b\x2c\x82\xc4\xf8\x76\x47\xe7\x45\x0f\x99\xa3\x58\x28\x04\xa1\xce\x03\x7b\xaa\xca\x23\x54\xcd\xf9\xde\xbb\x92\xc4\x55\xa2\x87\xde\x50\x28\x49\x1c\xbb\x06\xeb\xec\x70\x3a\x38\xa1\x08\x7f\x39\xad\x92\x10\xbc\xea\xe0\xea\xf3\xf8\x5c\xb4\x6e\xf1\xe4\x91\xb4\xb2\xfd\x52\x58\xd7\x7d\x2c\xdc\x37\xf3\x97\x00\xc5\x90\xa3\x0e\x3f\xb7\x8d\x27\xb2\xe6\xec\x39\x51\xfd\x28\x13\x59\xb6\x15\x9b\x60\x79\xfa\xfd\xc9\xaa\x69\x4f\xd1\x17\x2c\x34\x89\x40\xc8\xf4\xb1\xea\x09\x8d\xe7\x13\x1e\x2c\x34\xc6\x8a\xbb\xc8\xd3\x19\x19\x78\x3a\x7f\xd4\x1e\x8f\x82\xd8\xea\x63\xbc\x94\xfa\xb9\xc0\x96\x03\x7f\x84\xa8\x18\x11\xc2\x42\xeb\xe7\xda\x91\x84\xdc\x95\xaa\x6b\x97\x99\xff\xc1\x88\x98\x88\x74\xc2\x04\x9f\x13\xf6\x11\x16\x85\xc4\xf2\xce\x78\x02\x8d\x41\x0b\x0a\x8b\xc2\x50\x63\x05\xee\xfa\x79\x63\x3b\x3d\xb6\x8b\xbb\xd5\x76\xb7\xb8\x5d\xdd\x2d\xb6\xbb\x6e\x54\x4c\xb0\x6c\xfd\x75\x4f\x2d\x21\xbd\xff\x43\x82\x41\x57\xed\xd0\x22\x45\xa1\xa6\x2a\x1e\xf5\x8d\x79\xf8\xc2\xb7\x4d\xde\x2c\x0a\x4d\x2a\x2c\x93\x8d\x4b\xa7\xe1\x76\x5c\xdf\x96\xe5\x53\x55\x6a\x97\x82\x99\x7f\x3b\x11\x0f\x70\x75\x6d\x5f\xb3\x63\x26\x7e\xeb\xfe\x6a\xa9\xb9\x56\x7f\xae\x8b\xa2\x7c\x77\x94\xf8\xdd\x3e\x12\x45\x10\x12\x54\x03\xf9\x98\xa6\xdc\x06\x57\x36\x2c\xb0\x04\xf2\xbf\x8b\x3c\xd3\xdb\x41\x2f\x84\x1b\x11\x53\x86\x20\x85\x1d\xd4\xcd\x32\x6b\x3a\x04\xb5\xa7\x2d\xfb\xe2\xc2\x49\xca\xad\x14\x49\x75\xf6\xba\x4a\x03\x7a\x03\x16\xd1\x88\x0b\x1b\x2a\xb7\xeb\xfd\xd6\xe5\xeb\xbd\xb7\x15\xd1\x04\x70\x5f\xbd\x05\x91\x43\xd1\x3d\x32\xe5\x02\xfb\x92\x3b\x55\xed\x11\x32\xee\x02\x09\xc6\x22\x16\xcb\x90\xb8\x12\x3e\xd6\x1b\xba\xdb\x9e\xee\x49\xc3\x6f\xcc\x40\xa1\xde\xc3\xed\xe7\xc2\xea\x20\x8e\x67\x23\x03\xa5\xd2\x01\x63\x48\xd3\x23\x03\x66\xf3\x02\x11\x8f\x15\x71\x6a\x59\x21\x54\x2a\x0c\xfc\xf3\xa4\x01\x89\x8c\xab\x90\x7c\x15\x6c\xf7\x0e\x56\x94\x32\x8d\x78\xf0\x4f\x71\x6a\xb7\xea\x5b\x51\x0f\x1a\x41\x58\x24\xa9\x45\xf7\xcb\x53\xd3\x94\xc5\x32\xcf\xd4\x5b\xb7\x48\x64\x2a\x91\x2e\xe2\x66\x77\xe3\xbd\xcb\xa1\x43\x12\xa9\xc0\xb1\xb9\xe6\x13\xbf\x95\x8c\x7c\xc4\xa8\x35\x6b\xac\x47\x15\x21\x4a\x79\xea\xe2\x45\x8a\x11\x64\xb7\xb4\xb6\x18\x83\x4e\xff\x3b\x9a\x46\x91\x1a\x44\x49\x43\x46\xa6\xc9\x5b\xd3\xa9\x65\x3f\xc9\x0a\x59\x7e\xae\xeb\xd5\xe1\x38\x4d\x98\x44\x10\x10\x7c\xaa\x9f\x16\x5b\x5b\x5f\x89\xfa\x0d\x9a\x4b\x80\xc6\xb7\xd9\xb6\x08\x22\x4b\x29\xea\xa5\x0f\xd7\xcb\x47\x35\x85\x01\xf9\xa1\x29\x8f\x2c\x8f\xcd\xc7\xaa\x98\x07\xed\xb2\x08\x20\x8a\x2c\xc9\xf2\xfa\x61\xff\xe3\xf1\xee\x7a\xb5\xd9\x2f\xae\xaf\x7d\x8c\x12\x19\x66\xa1\xbf\xad\x2f\x5b\xe6\x17\xa9\x08\x3f\x4a\xc5\x3e\xa4\xd8\x1f\x2b\xd8\xbf\x9d\xd5\x3e\x53\x65\x91\xfd\x67\x8f\x7c\x60\x7b\x0d\x45\x79\x70\xd2\x21\xa3\x1b\x88\x83\x88\x50\xcf\x62\x92\x15\x2f\xb5\x63\xec\xd1\xb6\xe8\x7a\x31\xb8\xd3\xa7\x5c\xbd\x0b\x59\x36\xdf\x21\x07\x58\x1c\x08\x92\xc6\xbe\x5f\xb5\xde\x95\xd6\x8f\xf8\xad\x3b\x4a\xad\x64\x5f\x0e\xa2\xda\x2c\xee\xbb\xbf\x2b\x83\xc5\xbb\xdd\xed\xfa\x66\x7a\x41\x0d\x48\x8e\x54\x08\xab\x0f\xd7\xed\xd9\x31\x49\x65\xe2\x2a\xfb\x8b\xac\xba\xcb\x4c\x73\x59\xdb\x67\x71\x28\xd2\x38\xbc\xf4\xf7\xa7\x19\xda\xde\x46\xcc\xbe\xee\x38\x0a\x63\x4b\x1e\x01\xed\xbe\x20\x72\xeb\xce\x8f\x24\xfb\xfd\x48\x41\x7b\x35\x54\x27\xde\x50\x2f\x06\x6e\x7f\x1c\x19\x81\xfb\xba\xec\x29\x91\x5b\xe3\x33\x61\x03\x63\x71\x2c\x68\x14\xf9\x76\xb5\x36\xbc\x1f\x38\xd3\x96\x75\xce\xfa\x2a\x7d\x66\x29\x4e\x38\x8d\xa4\x87\x21\x6c\x00\x75\xc0\x7c\xf1\x87\xc5\x49\x9a\x44\x7e\xdf\x6e\x44\xb5\xb6\x0d\x6e\xb3\xe9\x95\x38\x01\xc5\x2c\xcf\x13\x0a\x01\x79\x97\xa0\x1c\xd3\x8f\xb3\x98\xb2\x00\x0b\xcb\xb6\x9f\x67\x57\x7a\xf4\xc9\xf8\x2b\xb0\x20\x40\xb0\x6c\xb7\x1b\x3e\x55\xe5\x4b\x25\x0e\x93\x27\xe6\x91\x41\x2f\x6d\xb9\xd8\xa1\x50\xce\x25\xa6\xc1\x0d\x4c\x83\x44\x5b\x68\x77\x3b\xbd\x1c\x3b\xd1\x9c\x71\x8d\x53\x92\xf8\x06\x6a\xa1\xbb\xb9\x93\x12\x89\x8c\x14\x48\xdb\xd8\xf7\xa5\x4c\x4e\x65\x46\xa0\x56\x45\xb7\x2f\xc5\x29\x67\xb8\xd5\xa2\xac\x1b\x92\xb0\x60\x02\x1e\x0b\xcb\x93\x47\x4e\x21\x65\xb2\xeb\x58\x41\xc0\xcf\x16\x63\xda\x4b\xa9\x6c\x3b\xd7\xc2\xff\xfd\x1f\xf7\x13\x82\x70\xb4\x24\xc7\xb2\x6e\xc6\xf9\xad\x58\x0a\x21\x7a\x7f\xf7\xd1\xfc\x28\xf3\xbe\x13\x92\xc5\xad\x65\x34\x88\xc7\xb5\xef\x79\x91\xe7\x97\x02\x79\x2c\x86\x38\xc5\x0d\xe8\x58\xc1\x0b\x14\xf3\x18\xfd\xf1\xce\x1e\x83\x92\x24\x1c\x36\x2e\xb8\x77\x4b\x26\x2f\xd7\x84\x0c\xcb\xd0\xf7\x22\x6b\x1d\xd2\xd6\xf9\x43\x51\xde\x41\x51\x9f\x25\x41\x28\x22\xe3\xdb\xfc\x76\x20\xba\x1a\xce\x28\x8e\x4e\x02\x66\x85\x98\xf3\xf2\x1d\x9e\x2b\xbf\x99\x24\x61\x62\x9b\x34\x6a\xc8\xf3\x5f\xec\xc1\x49\x1b\x21\xa1\x99\x80\xaa\x91\x9e\xfe\x86\x25\x21\x73\x80\xe0\xf6\x69\xaa\xb7\xd3\x71\x3e\x69\x93\x84\x2a\xc4\x82\x5c\x07\x8b\x6a\x3f\xf5\x01\xee\xbb\x56\x66\x96\x44\x71\x84\x31\x8c\xca\x45\x76\xe8\x0a\x7b\x61\x77\x58\xdb\xae\x53\xdb\x77\xd7\x51\x86\xcc\x91\x2e\xcf\xff\x73\xba\x00\xf9\xb2\x24\x32\xda\xc3\x6f\x7e\x66\x85\xeb\x17\x98\x8a\x82\xb2\x24\x0e\xe3\x98\xfb\xec\x89\x99\x2d\x57\xb3\x24\x8e\x52\x8c\xb5\x0f\x59\x81\x13\xff\xa9\xcb\x26\x24\x89\x88\x2d\x11\x59\x95\xbd\xbc\x40\x1b\x51\xda\x7e\x48\x3f\x8f\x12\x1a\x58\x7d\xe0\xd5\xd5\x1a\xf1\x5e\xdd\xdf\x13\x8e\xc9\xce\xc3\xfe\xa9\x8d\x12\x74\xf7\x77\xce\xb1\xe3\xa0\xcc\xf5\x7d\x96\xe7\x59\x59\xac\x7a\x1d\x45\x96\x30\x4a\x0c\xe9\xd2\x8d\xcf\xe8\x86\x8c\x1c\xc4\x84\xb5\x0f\x65\x9f\x08\x0b\x55\x6d\x54\xf0\x4d\x8b\x09\x4b\x98\x50\xb1\xec\x7b\x8a\xdb\xbd\x7d\x6c\xe8\x12\x66\x54\xec\x68\x03\x77\x1f\xbf\x94\x4f\x76\x27\x71\xa1\xa8\x9d\xe5\xa0\xa0\x10\xf5\x04\xb5\xcd\x92\x94\x87\xae\x9b\xb0\x6a\xc3\xb6\x41\xf7\x54\xf7\xc3\x82\x68\xcc\x12\xe1\xc4\xb1\x2f\x76\x9e\xf3\xd9\x8f\x8f\x01\x33\xdf\x36\x01\xb3\x55\x65\x05\x8b\x42\x4f\xb4\x3f\x2f\x92\x2e\x93\x6b\xa4\x41\xec\xe6\xbd\xdb\x25\xc6\x3a\xcc\xe3\xa7\x14\x60\xd0\xa1\xdb\xfe\xb9\x44\x0a\x80\xb1\xdc\x15\x4b\x14\x35\xb4\x4f\x09\xe9\x61\xb3\xef\x70\xcf\x49\x14\x4f\x10\x5d\xaf\xa1\x81\xea\x90\x15\x6d\x24\x8a\xf4\x73\x98\xe9\xf4\x83\x52\x6e\xe3\x96\xd6\x26\x58\x38\x7f\xc7\x33\xcb\x12\x1d\x58\xe6\x75\x4b\xaf\xe9\x6b\x58\xcb\x76\x2f\xfe\x7f\x5b\xb7\x72\xf9\xa6\xf1\x8b\xd1\x3a\xc0\xea\xd3\x42\xeb\x27\x3b\x55\xfe\x01\xe7\x99\x26\x76\x96\x68\xc3\xb1\xd2\xfe\x56\x94\x1f\xb3\xe0\x50\x96\x40\xc8\xb1\x82\xde\x41\x4b\xca\x6a\xa8\xcf\x36\x7e\xc9\x20\x59\xd8\x77\x8e\xae\x3e\x33\x74\xde\x36\xe2\xbf\xbf\x9a\x8a\x93\xeb\x18\xe0\x40\xba\x8c\xc0\x9c\x87\x4a\x83\x48\x70\xea\xc9\xcc\x8d\x38\xe5\x0d\x86\x7f\x59\x73\xbe\x2a\x3d\x08\x96\xd1\x20\xb6\xa9\x2a\x99\x15\x9d\xa8\x03\xa3\x81\x26\xda\x11\x86\xb5\x5f\x0d\xa9\xf6\xba\x63\x10\xc7\x6e\x6f\xb8\x2b\xeb\x76\x3b\x1a\xdd\x1a\x25\x9c\xcb\x91\x98\x9b\x2b\x12\x8a\x6f\x98\xf3\xe6\x9f\x92\x46\x51\x40\x9d\x1f\x6a\x89\x7a\x90\xe3\x65\x68\x23\x68\xc4\x23\x2f\x9e\x68\x63\xd0\x1a\x06\xce\x12\x8d\xb8\xc2\x74\xb5\xc3\x9a\x39\xfe\xed\x21\xd6\x8f\xd1\x18\x64\xec\x9c\x63\x97\xd7\x5f\xd7\xf5\xa9\x5d\x67\x48\xd2\x34\xfb\x21\x69\x42\x48\x6c\x6b\x6e\x67\x91\x37\xe7\xd1\x56\x46\x93\x34\xf6\x75\x29\x97\x01\x18\xa6\xa1\x28\xe5\x20\x3d\x51\xf6\xce\x52\x14\xd6\xfd\x41\x13\xd9\xd6\xfa\xa6\xac\x60\xdb\x9c\xe4\x85\xb7\x3b\xb2\xe8\x94\xd1\x14\xfd\x1b\x93\xb9\xa2\x70\xbb\xbb\xae\x3c\x4b\x0e\xa3\x8c\xc5\x08\xc4\xfd\xb7\x6d\xf4\x99\x34\xd0\xb5\xc7\x01\xcb\x98\x8b\x3a\x17\x43\xa4\x18\xa3\x4c\x73\x69\x49\x8e\x90\x9d\x41\x7c\x76\x92\x88\x8c\x0a\x62\x61\xf3\x8e\x77\xe0\xa6\x2a\x67\x79\x5a\x19\x95\x32\x88\x61\x34\x1b\xca\x32\x9f\x9d\xaf\x3a\xb2\x19\x58\xec\x49\x40\x75\xfd\xd1\xdd\xe8\x24\x40\x2a\xdc\x83\x25\x48\x80\x29\x5e\xb6\x4f\x0c\x4c\xbe\x94\xd6\x14\x29\x65\x76\xeb\xd5\x26\x1a\x33\x84\x30\xaa\x41\x61\x58\xe8\x9a\x64\x1e\x6e\x3a\x56\xf7\xbf\x92\x8b\x96\x0f\x77\x0e\x40\x88\xf4\x18\xe6\xff\x43\x3b\x43\x77\x29\x21\x7b\x11\x84\xdf\x51\x79\xa9\x19\xc7\xe6\x2e\x28\xa7\x26\x4a\xe2\x68\x2c\x29\x56\x62\x8f\x92\x7f\x14\x13\x47\xc2\x76\x7e\x14\xaa\xac\xae\x45\x86\x59\xbd\x9d\x65\xb6\xcb\x3d\x1d\x30\x63\x01\xe3\x18\xdd\xfb\x0a\xef\x4d\x59\x3d\x4e\xa0\x49\x2c\x24\x80\x00\x13\xf7\xb2\x5d\x63\xe7\xf6\x3b\x99\x0a\xc6\xc2\x58\x22\x68\x43\x66\xc5\x4b\xe9\x7f\x2d\xe4\x09\x4f\x3b\xea\xc1\x66\xf1\xf2\x55\x57\x35\x63\x11\x21\x2e\x53\x5a\x56\x70\x93\xe5\x3d\xc3\xf9\xff\xe8\x38\x8d\x69\xd7\x18\x8b\x98\xc4\x6c\xb2\xef\x5f\x7f\xea\x28\x51\x98\xcd\xd7\xf8\x5e\xec\x46\xe4\x4e\x79\x7b\xf4\x79\x58\xa4\x53\xee\x32\x96\x8b\xba\xdd\x45\xaf\x11\x3a\xe1\x8e\xc6\xc4\x32\x77\x5b\xb5\xa7\x45\x9e\x3f\x57\x59\xdd\x1d\x8c\x62\xea\xac\xa4\x6b\x94\xfb\x4a\xe0\xae\x5d\xa0\x36\x2d\x2d\xf4\xbf\x4f\xb5\x37\xd6\xdb\x63\x95\x39\x56\xae\x79\x77\x95\x25\x09\xb1\xb5\x9d\xba\x75\xbf\xeb\x1e\x15\xeb\x8f\x4b\x82\x59\xcc\x87\xc5\xe3\x66\xbd\xdd\xef\x56\x8b\xfb\x11\xb7\x07\x6b\xed\x3c\x4b\xdd\x0a\x5f\x3e\x42\x31\x10\x0b\x62\x8c\xb2\x18\xb3\x77\xf2\x74\xde\x43\x01\xd5\xcb\x79\x82\x18\x18\xfe\xe3\x50\xad\x8c\x31\x62\xcd\x49\x56\x23\x1b\xc3\xe4\x49\x59\x62\x45\x78\xfe\x1c\x12\x26\x32\xc6\x84\x48\x7a\x60\xb7\x67\x8e\xdf\x42\x9e\x4f\x3e\x08\xd3\x01\x12\xd0\xbf\x42\x9e\x8f\x4b\x0f\x8c\x69\xc0\xc6\x43\xec\x86\xf2\xf4\xc5\xfe\x18\x28\xcc\x34\xde\x67\x85\x57\x9e\x9e\x6b\xc5\x62\x4c\xf0\x10\x1b\x62\x2c\x6d\xe5\x0c\x20\xcb\x8f\x13\x71\x0a\xde\xb3\x6a\xd0\x93\xee\x26\xeb\xf8\x82\x5a\x21\x0c\xf0\xa7\x7b\x26\x7f\x47\x02\x38\x06\xdc\xe2\x78\xac\xca\x77\x98\x28\x4f\xb8\x41\x32\x04\x4c\x44\x0d\x12\xbe\x4c\xc6\x9a\xcb\xbe\x9f\xa4\x23\x9c\xbf\x04\x21\x30\x49\xc1\x78\xb6\x66\x64\x83\x9f\x5e\x1e\x40\x90\x39\xbd\xf2\x2f\xfe\x9d\x02\x06\x98\x22\x32\xe0\x3e\x49\x32\xb5\xc7\x7e\x8c\x0f\xc9\x4a\x99\x15\xaf\x65\x89\x15\x83\xf5\xf5\x64\x9b\x68\xf7\x20\x84\x2a\x1e\xab\xf2\x50\xb6\xbb\xfc\x83\x57\x54\x60\xcc\x30\xc5\x47\x4c\xcf\xf7\xa2\x38\x4f\xe1\x84\x3c\x88\xa8\xec\x3a\x1a\x3a\x32\xe9\x59\x0b\xce\x03\x26\x91\x32\xb2\xeb\x5e\x3f\xb7\x16\xb2\x01\xfd\x2d\x41\xad\x3f\x99\x87\x58\x63\xb1\x73\x54\x98\x31\xe9\x1c\x52\x27\x23\xac\x36\x2f\xd5\xdb\xbd\xab\x65\x0c\xbf\x3d\x0f\x64\x68\x22\x5f\xa5\x40\xa7\x78\x38\x91\x39\x21\x0c\x79\xd2\xd0\x35\xc6\xbe\x03\x9f\xac\x9b\x7c\x40\x4e\x08\x47\xdf\xad\x2c\xf2\xf3\x75\xc7\x1c\xcd\x38\x89\x38\xee\xb9\xbb\x2a\x7b\xcf\x84\x25\x5b\x9e\x01\x62\x7c\x13\x40\x7c\xef\x4d\x7b\xdf\x83\x13\x87\x76\xdb\xab\xd7\xd6\xae\x21\x38\xb0\x6a\xc2\xef\x8b\x24\x3c\x12\xb1\x21\x9e\xbc\xa2\xb5\xa7\x43\x87\x8e\xc7\x9c\x23\x1f\x15\x26\xbf\xec\xee\x25\x3a\x61\xd3\xd9\x02\x73\x37\xe3\xdb\x73\xd1\x2b\xfe\xb9\xdd\x79\x5c\x1d\x8f\xb5\x55\xa2\xa9\x9d\x0d\xaf\x97\x50\x35\x99\xc9\xa6\x6b\x9f\xc7\x60\x10\x1d\xb5\xef\xaa\x3e\x18\x75\xfd\x6f\x31\x22\x4f\x52\x82\x59\x9c\xc3\xde\x31\x4e\x79\x91\xcc\x4e\xd8\x9f\xf1\x44\xa6\x18\x47\xee\xae\x57\xbd\x44\xbe\x3b\x46\x15\x41\xb0\x39\xd2\x30\xed\xaf\x17\x7f\x92\xbd\xaf\x75\xf9\x21\x8c\xdb\x44\x11\xca\xfb\x0f\xbb\xb9\x19\xe7\x24\xc0\x86\x9a\xfa\x24\x6b\x55\x65\x12\xee\x27\x42\x61\x7e\x9c\x10\xd8\xdc\xdc\x40\xdd\xec\x9b\xd7\x0a\x00\x63\x82\xd5\x7f\xda\xf0\xfb\xb7\xd1\x03\xa5\x10\xfa\xbe\xac\x81\x6a\xc3\xd0\x23\x76\x03\x45\x1c\x29\xd2\x51\x8c\x20\x5a\xac\x7d\x6f\xdd\xbd\x09\x9a\x10\xd1\x83\x17\xe7\x80\xaa\x7e\xa4\x36\x48\x57\xdb\x9a\x08\xe7\x4d\x5a\xd4\x79\x17\x98\x70\x2f\x82\xd9\x9a\x3f\xac\x80\x38\xf6\x8b\xb9\x8f\x33\xc9\xa3\x70\x19\x69\x0f\x2f\xd9\x9e\xe4\x38\x14\x1e\xdf\x88\x54\x06\x41\xbd\x76\x3f\xba\x12\xc5\x5b\x55\x4e\xb8\xee\x18\x57\x49\x8c\x7e\xe5\xd6\xc2\x67\xab\xe6\x62\x46\x29\x4e\x30\x75\x85\x97\xb1\x54\x22\x96\xc1\xc7\x56\x74\x26\x83\x65\x42\x99\x7f\xdf\x18\xf8\x56\x17\x39\x1e\xae\xb4\xc1\xb6\xa4\x17\xd1\xd5\xcb\xb8\x8e\x23\x74\xbb\xf6\x05\x4c\xe8\xaf\x18\xd7\x32\xc2\x8f\x28\xad\xf2\x05\x62\x2c\xbb\xf3\x00\x8c\x75\x1f\x6e\xc5\x01\xba\xbe\x48\xc6\x81\x46\xd8\xae\xf1\xc7\xc8\x6a\x01\xe7\x96\x99\xcf\xaf\x0e\x9f\x1f\xb0\x2d\xa3\xb3\x5f\x80\x4c\x57\x89\x09\x62\xe7\x0d\xaa\xb2\xf5\x36\xa0\xf2\xc9\x81\xe7\xe3\xd1\x51\x9e\x0d\x93\x44\xdc\x10\xea\x31\x9a\x5d\x29\x09\xb4\x45\x2b\x5f\x54\x27\x67\xed\x75\x1a\xa4\xb1\xdd\x18\x2c\x7a\xb9\xcc\xcf\xbe\x95\x01\x93\x17\x17\x2f\x39\x0d\x52\xc0\xd0\xee\x7a\x71\x3c\x6e\x40\x68\x3f\xf9\x52\xa2\x28\x66\x40\x7e\x96\xff\x16\x6f\x83\x4d\x39\x25\x5a\x60\x10\x2a\x4f\xe7\x3f\x06\x6e\xf5\x85\x22\xc1\xac\xe9\x48\xa3\xd0\x52\x5a\x1e\x44\xf5\xe6\x98\x81\xc2\x80\xa4\xfe\xe2\x71\x9c\xa0\x93\x56\x77\x45\xc0\x94\x85\x76\xaf\xb3\xcc\xaf\xc7\xac\x98\x3c\x01\x0b\x05\xa2\x56\xef\xcb\xf7\xcc\xe2\xb5\xbf\x81\xe1\xf9\x73\x9c\x02\x69\x56\x77\xc8\x46\xd0\x8b\x42\xf7\xa5\xef\xd1\xf4\x4f\x79\x22\x00\x31\x2e\x0f\x8b\xf5\xdd\xfd\x62\xbb\x5b\x6d\xf6\xeb\x87\xe5\x66\xb5\xd8\x7a\x24\x68\xca\x99\x44\x24\xe8\x1d\x14\xba\x2a\x33\xed\xf0\x13\xc3\x79\x95\xa6\x31\x8d\xed\xef\xde\x9f\xd7\x85\xa9\x26\xa8\x93\x34\xa5\x42\x5b\xde\x74\x61\xc0\xa5\xe0\xad\xc0\xe3\xa2\x59\xab\xf2\xab\x6d\xc1\x9f\xad\xc1\x0a\x81\x15\x25\x6a\x33\x74\x72\x6b\xf3\x9e\x41\x2a\x22\xdb\x11\xdd\x80\x38\x2c\xf2\xbc\x14\xaa\x67\xbd\xc1\xa3\x48\x9a\x96\xb5\x56\xcc\x64\xd5\xa1\x0b\xa3\x53\x11\x13\x14\x0d\xdf\x62\x8f\xa4\x53\xa1\xbd\xc4\xf6\xa5\x42\x45\x18\x54\x3b\x0f\x15\x5f\xc5\x4d\x59\xb9\x0e\x88\x9b\x53\xb7\x0c\x53\x19\x32\x64\x43\xf3\x2c\xaf\x9d\xc7\x13\x5f\x04\xa6\x7f\x91\x9e\xbe\x6b\xa0\x56\xda\xff\xaa\x62\x06\x37\xd5\xde\xee\xaf\xad\xba\xcf\xea\x3f\xd8\x6a\xe9\x7f\x53\x09\x8a\x05\xb2\x7d\x0d\xcd\xf6\x24\x8b\x52\xbb\xa6\xab\x49\xa5\xcd\x0d\xd7\x42\xa3\x77\x7b\x8b\x59\x80\x87\xd3\x61\xe2\xa1\xa4\x1a\x24\x32\xc6\x5b\x01\x03\xe4\x3f\xbb\x86\xae\x50\x9c\x82\x4a\x13\x4b\xf3\x08\x56\xc9\xad\xfe\x51\x7e\xdc\x9f\xd4\xeb\x4d\x87\xe9\x48\x4d\x48\xf1\xfb\x23\xb7\x4f\xf7\xc7\x98\x21\x90\xb3\x8d\x4d\x56\xbb\x1f\xbf\x8d\x9e\x9d\xfb\x41\x2c\x26\x43\x28\x73\xbb\x62\x57\x9f\x13\xbb\x9b\x1a\x2d\x11\x2c\x7f\xb4\x3a\xe0\xa3\x14\xb6\x08\xa8\x5d\x68\x8b\xcf\xa6\x3a\xa1\x3a\xf7\xf8\x6c\x11\xe8\x04\x5d\xf4\xba\x63\x17\x74\x07\x48\x40\x10\xb0\xd2\x64\x9f\x4e\x61\xbc\x3b\x02\x01\xc6\x55\xe2\xa4\xb3\xe6\x61\xf7\xfb\xf3\x0e\x3e\x47\x02\x89\xa3\x0c\xa4\x20\xa0\x99\x95\x60\xed\xb2\xd8\x22\xa4\x01\x16\x7e\x70\xf6\x5c\x03\xea\x9f\x4d\x36\x1f\x11\xb2\x30\x80\x7e\xdb\xf5\xf2\xca\xb3\xd3\x5e\x44\xdc\x20\x31\xf3\x6b\x56\x23\xcd\xc3\xe4\x68\xaa\x85\x07\xee\x54\x99\x7a\x43\xfe\xe2\xab\x53\x96\x4f\xd9\xec\x98\x88\xa4\x48\x5c\x53\x63\x51\x97\xd5\xfd\xa9\xce\xd4\xb7\xad\xc8\x4c\xc4\x31\x78\xfa\x43\x54\x56\x7e\x2e\xb2\xb2\x58\xeb\x49\x8f\x89\x48\xc0\x72\x47\xdb\x54\xc9\xf2\x54\x37\xe5\xe1\xe2\xe7\x69\x10\x63\x3e\xa5\x0d\x79\x9e\x8f\x4d\xd9\x67\xac\x04\x0d\x12\x6b\x13\xa1\x81\x72\x94\x5a\x12\x34\x14\x76\x59\x17\x97\x1c\x5f\xf3\x58\x52\x77\x22\x93\x80\xae\x4d\x01\x1f\x3f\xdb\x68\xbd\x97\xcb\x60\x82\x0b\xad\x5d\x02\xa0\xf5\x10\x30\xf1\x71\xb1\x21\xfc\x02\xb0\xf8\xab\x7f\xc7\x0f\x9f\x26\xcc\x78\x34\xbc\xc8\xe1\x5a\x9c\x1f\xca\x0f\x7f\x3b\x42\x45\xc8\xf8\xe1\x17\xc3\x42\xbf\x67\x75\x59\x8d\xdc\x48\x21\x74\x84\x05\xd9\xf7\x36\x74\x77\xda\x96\xdf\xee\x5d\x42\x52\xab\x76\xf7\xd1\xb5\x65\x5d\x0f\x72\x4d\x42\x4a\x8e\xed\xc3\x57\xf7\x7b\x5b\x47\x5c\xe6\xa2\xae\xf7\x9d\xac\x8e\x1f\xa6\x2c\x19\x12\x72\x30\xfa\xea\xe1\xc0\xb1\x17\x0a\x92\x44\x7b\x5c\x55\xbb\x03\x5c\x67\x78\xfb\xfe\x02\x90\x32\xa4\x42\xc7\xa0\xe1\x01\x3e\x5c\x9e\x17\x3d\x84\xf7\xcb\x52\xad\x3b\xcb\x04\xb6\x97\xfe\x01\x2a\x0d\xa2\xca\xbd\x4b\x25\x03\x96\x46\x2e\xc8\x76\xef\xa9\x5d\x3e\xe3\xdc\xcd\xfc\x86\x23\x03\x26\x6c\xc3\x74\x1b\x6b\x6c\x5b\x4f\xfd\x57\x61\xb5\x3b\x31\x0c\x62\x84\x4e\x1e\x5b\x9f\xea\x09\x71\xa0\xed\x57\x8c\xf6\x3d\xff\x2e\x93\xa1\x34\xc8\xbf\x7b\x38\xe5\xcd\xf9\xeb\x0c\xa8\x0f\x8a\x65\xa8\x23\x6c\x1c\xba\x2b\x5f\x16\x45\xfd\xd1\x7e\xd4\xf7\xd6\xfe\xce\xb6\xb6\xfd\xa2\x9d\xb2\xbd\x5a\xac\x64\x57\x74\x98\xad\xd4\xcb\xd0\xa8\xa0\xe7\xc1\xc2\xe9\xf5\x20\x0e\x60\x05\xad\xc6\xcc\x91\x73\x04\xf8\x4c\x46\x24\x46\x08\x5d\xdd\xc0\x71\x28\x58\xc4\x64\x24\x28\x7a\x28\xf7\x59\x31\xdf\x26\x1d\x07\x6e\x64\x2c\x29\xa6\x2f\xa1\x52\x61\x18\xdd\x88\x3c\xc7\xb6\xb4\x59\x68\xb2\x3b\x85\xa6\x56\x3e\xfb\xa9\xac\x1b\xcf\x6a\xec\x0e\x31\x62\x29\xad\x2c\xcb\xe0\x20\xd9\x43\x7e\x19\x37\xfb\x2b\x80\xcd\xc4\xfc\xfd\x54\x37\x07\xf1\x36\x4a\x07\x48\x66\x88\x17\x63\xb7\x2c\x28\xcf\x45\xd6\xd8\x98\xb7\xd7\x0a\x66\x92\x47\x96\x57\x78\xf1\x52\x59\x26\xcc\x6d\xbf\x91\x4a\x4e\x39\x2e\xa0\xd6\xcd\x3f\x1d\xe7\x8d\xbc\xe4\x3c\xc1\x76\x2c\x25\x8a\xd6\xad\x9d\x87\x24\x49\xae\x38\xed\x38\x30\xba\x4a\xe7\x20\x31\x28\x53\xc2\xb8\xa3\x60\x77\x79\xe1\x7e\x77\x93\x69\x6c\x35\xe4\x0a\xf8\xb8\x9a\x02\x98\xa5\x08\x14\xc2\x90\x3a\x56\xb3\x66\x53\x96\x87\xb1\xa1\x97\x22\xb6\x9d\x5c\x59\xed\x41\x85\xd5\x56\x14\xdd\x0f\x88\xd4\x20\xa9\x0b\x1c\xeb\x2c\x2f\xbb\xb7\x28\x89\x32\xde\x73\xd9\x88\xca\x56\xb9\x4e\x35\x7e\xad\x5e\xf3\xc8\x0f\x4e\x38\x76\x66\x63\x24\xdd\xd1\xf6\xfd\x36\x9c\x0f\x32\x4d\x10\x11\xbd\x38\xf6\x5f\x4a\x85\xe0\xf0\x8e\x76\xe1\x21\x51\x19\xda\x18\x6c\x96\x98\x07\x25\x48\x15\x29\xac\x87\x6d\x85\xf1\xd8\xa7\xf1\xdd\x28\xae\x30\x7a\x78\x2d\x3f\xee\x45\x71\xc6\xbc\xe9\x64\xf7\x93\x3a\x66\x29\xc2\xcd\xc4\x1b\xac\x9b\x9f\xd0\x7e\x7e\xe5\xef\x4b\x0b\x06\x83\x1e\xde\x76\xbd\xb5\x46\xa3\x8d\xd5\x57\xbb\xd1\x53\x69\x43\x28\xf4\x50\xd0\xab\x93\x43\x82\x93\x8e\xec\x0a\xff\xcb\x8d\x86\x90\x22\xa2\xe0\x54\xec\x2a\xa1\xde\x2e\xc5\x97\x7d\xd2\x46\x02\x4f\xb0\x75\x64\xf1\xbc\xfb\xf1\xe8\x31\x70\xd2\x10\x89\x35\xef\xa3\xaf\x24\xff\x22\xeb\xd4\x9d\xa6\xa4\x85\xb5\x18\x84\xb5\x78\x3b\x57\x6f\xb3\x62\x2c\xca\xc7\xa4\xe1\x29\x62\x3f\xed\xc8\x6e\x7f\xed\x90\xdc\xfc\xaf\x7f\xf9\xf9\x3d\xfc\x2f\x7b\xb6\x22\x29\x8f\x89\xf5\xfd\xda\x39\xbc\x2e\x3a\x63\xa3\x88\xb0\x9c\x27\x77\xe5\x4b\x1b\x1e\xcf\x06\xf8\xed\xa0\x44\xda\xce\x90\x45\xeb\xcd\x5d\x3b\xae\xcc\xfe\x22\x12\x33\x5d\x1a\x54\xa9\xc1\x89\xc8\x8f\x1e\x40\x11\xa0\x61\xda\xf5\xe4\xcd\x27\x51\x55\x98\xa8\xc4\x33\x84\x65\x39\x88\x17\x5b\xfb\x99\x41\xca\xa9\x88\x72\x6c\x3c\x3a\x9e\xea\xd7\xab\xd3\xb9\x8d\xa9\x27\x72\x98\x4c\x45\x0a\x10\x3a\x38\x94\x80\xb5\x11\xf1\x20\x18\xbe\x68\xe0\x18\x14\xa3\x54\xa4\x19\xf6\xc1\x65\xaa\x9c\x28\x19\x30\x15\x13\x40\x36\x80\xff\x42\x51\x64\xa3\x58\x4f\xc5\x42\xa2\x7f\xd1\xe5\x10\xac\x14\xe7\x61\x4e\x6b\x73\x6c\xbc\x54\x12\x58\xac\xbd\x6c\xdd\xce\xeb\xad\x2b\x6b\x8d\x92\x43\x2a\x49\x89\xe7\xd7\xbd\x82\x71\x0b\xa0\x4a\x54\x88\xd8\xd7\xab\xac\x6a\x5e\x6f\xa0\xbb\x5b\xaa\x78\xd4\x91\x6f\xd7\x4d\xd5\xfd\xdd\xc4\x3c\x1a\xa8\xa4\x62\x19\xfc\xd4\x95\x55\x15\x8b\xad\xcc\x6e\x1f\xec\xad\x44\x55\x80\x1e\x73\x1d\x8e\x9f\x81\xe9\x10\x2b\x74\xc2\x92\x5b\xda\x9d\xc4\x1f\x03\x77\xac\xae\xb3\x97\xe2\x9b\xe4\x94\x62\x46\xa3\xc6\xee\x58\x3a\x7c\x57\x0e\x18\xb3\x98\xe2\x51\x82\xb8\x85\xac\x30\x16\xa3\xb1\x1c\xb6\x3a\x2a\x0e\xd4\x11\xd3\x8a\xfc\x5e\x14\x27\x91\xdf\xa3\x0a\x0c\x36\xf8\x74\x6e\x97\x4a\xa9\x45\x9f\x23\x16\xb5\xdd\x06\xf6\xbd\x43\xad\x52\x6e\xb5\x3c\xdb\x2d\x2b\xda\xdb\x76\xad\x87\x36\x94\xf1\xc7\x53\x13\xf6\x52\x0e\xcb\xf2\x70\x84\x26\xfb\x8a\x63\x8b\xa9\x54\x5b\x46\xf3\x1f\xe2\x70\xb8\x2a\x8b\x2e\x26\x55\x22\x0a\x88\xdb\x6e\x3c\x70\x6c\x80\x72\xb3\x85\xf5\x89\xbf\xa8\x84\xe2\x68\x52\x3f\x20\x7b\x79\x9d\x76\x11\x29\xa1\x15\x16\x1a\xaf\xc5\x0b\xe4\xa2\x9b\x9d\x92\x02\x46\x9a\x5e\x0c\xac\xa9\xb2\x31\x60\x7f\xf0\x03\x12\x02\x6a\x2c\x33\xeb\xcd\x77\xdc\x6f\x6e\xb8\x8a\x63\x4f\xda\xbb\xcc\x9a\xb3\x17\xce\xda\x64\xea\xb5\x18\xc0\xd9\xfc\xe8\x34\x80\x91\x6c\x0d\x3e\xe4\x00\x69\xf1\x7d\x2e\x5a\xe9\xd0\xe6\x1d\xfd\x0c\x79\xaa\xb2\xf7\x2c\x87\xce\xf4\x4c\x26\x94\xa6\x0c\xcb\x05\x5d\x7d\x65\x0f\xc3\x1e\x15\xa5\x55\x28\x1c\x48\xd9\x7d\x3a\xc4\xad\x4c\x5e\x2a\x48\x8d\x48\x0b\xbb\xb7\x2f\x5a\x4f\xde\x97\xb2\xc9\x28\x1b\xe8\x89\x4e\x68\x3c\xaa\x1c\x2a\x70\x19\xf0\x76\xdb\xda\x36\x65\xd5\x37\x12\x28\xc3\x00\xfb\xe0\x0e\xd9\xe1\x94\xff\x36\x77\xb2\x81\x08\x53\x73\x42\xeb\x21\xd3\x45\x1c\x8c\x5f\x8d\x0e\x24\x55\xd0\xe9\xbf\xd8\xc4\xcb\x94\x67\x94\xe9\x40\xc5\x88\x64\x7e\x83\xb3\x3c\x9d\xa7\x07\x8d\x2d\x50\x28\x91\xe7\xdb\xa6\x6c\xe7\xe4\x55\x73\x09\x25\xfb\xc2\x95\xfe\xaa\xa2\x32\x67\x66\x75\x28\x19\x22\x27\xb7\xaf\xa2\x7a\x1b\x36\x46\xeb\x50\x87\xa8\x28\x86\xb4\xe7\x83\x54\xa4\x8e\x82\x18\xfd\xef\x0f\xec\xf8\x22\x56\xf6\x71\xd8\x6a\xea\xc6\xc5\x49\x8c\x99\xe1\xa6\x33\x94\x17\x77\x32\x6b\x7e\x74\x2c\x25\xea\x56\x1c\x4a\x0d\x9f\x17\x48\xca\xc9\xeb\x8e\xc1\x12\xe7\x1d\xbc\x75\x79\x3c\xc2\x80\xf1\x8a\xe9\x84\x84\xda\x81\x94\x5c\x5d\x46\x09\xcb\xe7\x7f\x75\x7e\x28\xe7\x1a\xf0\x74\x92\x48\xcc\xbb\x37\xd5\xf9\x3a\xab\x5b\xe3\x8b\x4e\xe4\xf8\x87\x13\x1d\x63\x72\xdb\xd5\x57\x17\x5a\x0f\x37\x22\x4d\x39\xc7\x52\x80\x4b\x26\x88\x49\x3f\x9c\x66\x2c\x0a\x92\x4e\xae\xf7\xbe\x2c\x9a\xd7\xfc\x8c\xaf\x6f\x36\x11\xa6\x79\xc8\x91\x3e\xf5\xfe\x7c\x33\x76\x44\xa6\xc3\x64\x10\xf4\x0a\xc7\xed\x13\xff\x0e\x55\x66\x32\x18\x29\x2d\x32\xcd\x53\x42\x5d\x0f\x9f\x75\x19\xdd\x1e\x39\xff\x49\x04\x25\x16\xac\xde\xed\x45\xfb\x43\x17\x33\x6a\xc1\x62\xe3\x70\xa1\xff\x3c\x5d\xd6\xe4\xb5\x30\x14\x17\x17\xe4\xd9\x4b\x26\x73\xb8\x29\x2b\x47\x42\xa8\x26\x39\x5f\x2d\x65\x1c\x0c\x25\x51\x47\xd1\xdc\x64\xa8\x51\xc2\x93\x2b\x94\x75\xf3\x68\x46\xfc\x96\x6e\x90\x0a\x6c\xe2\xe5\xa2\x1c\x65\x85\xaf\xfc\x13\x68\x26\x12\xcb\x3b\xac\xda\xc0\x07\xb4\xd7\xe3\x71\x4c\x1d\xf7\x59\xd1\xcf\x28\xcd\x6c\xd1\x1c\x9d\x9b\x53\x87\xab\xd2\xc0\x23\x2b\x4c\xed\x1a\x40\xbe\x78\x97\x90\x2a\xc4\x62\xfc\xe7\x24\x8a\x26\x6b\xce\x37\x28\x5c\xd2\x5d\x44\x30\x88\xbd\xb7\xf0\x24\xea\xe6\xae\xc4\xb6\xf8\xc9\x35\x80\x22\x49\xc6\xfe\x01\x3e\xee\x2c\xc2\x6f\x50\xbc\x18\x7b\xf6\xda\xa8\x18\xb3\xff\x5e\xfe\x64\xe1\xfa\x69\xec\xa6\x7e\x75\x9a\xb4\xc3\x68\xa3\x38\xa2\xeb\x4f\x85\xa7\xba\xf8\x6d\x04\x71\x9c\x8b\x6e\x21\x88\xac\x90\xec\xa1\xf5\x1a\xa1\x1a\x68\xd9\x31\x20\x82\x83\xc3\x32\x2c\x1a\xe7\x0f\x76\x38\xbb\x69\x47\x01\x10\x69\x99\x59\x4e\x85\x14\xc5\xfe\x74\xd1\x17\x04\x44\xd9\xf8\xfd\xcf\x53\x21\x21\xfb\x15\x9f\x3d\x83\x90\x00\x46\x93\xaf\x53\x69\x7c\x06\x61\x42\xad\x90\x2e\xd4\xcd\xf6\xb5\xac\x1a\x2b\x0a\xea\x6f\x3c\x54\x16\xd5\x61\xa1\x7f\xb6\xd5\xb4\xdf\xa2\x21\x0a\xb9\x76\xde\xe0\xb6\x3c\x00\x7a\x5b\xde\xa9\x80\x28\x12\x81\x72\x3d\x63\x6d\x1c\x3a\xe7\x9b\x43\x94\x04\xd8\x4f\x7a\x14\xe7\xc7\x53\x73\x5b\xbe\x43\x55\x74\xfa\x34\x0c\xe2\x84\x62\xfa\x48\x9e\xce\x3f\xb3\x5c\xab\x8e\xc4\xd5\x1f\x67\x29\x7e\x59\xbb\x23\xae\x1b\xe8\xd3\xe3\x7d\x87\x8a\x8f\x45\x20\xe6\x11\x2a\x0f\xdc\x67\x6f\x42\x97\xa3\x0b\x25\x51\xca\x9d\x44\xcd\x52\x1c\xd7\xc5\xcf\x8e\x93\x00\x12\x11\xa1\x50\xc4\x8f\xf5\xf5\x6a\xb3\x98\x7f\xd1\x63\x9b\x0c\x89\x92\x9e\x66\xf1\xe7\x6b\x79\x05\xbf\x28\x4f\x41\x62\x08\xb2\x2d\xdc\x95\x2f\x0f\x7b\x53\xa8\xaf\x58\x55\xfc\xaf\x8d\xea\x0f\x4e\x24\xe9\xcb\x4b\x47\x08\xb8\xcf\xb3\x37\xb0\x73\x72\x7c\x9c\xc5\x11\xf2\x21\xee\x8f\x95\xb5\x0c\x93\x5e\xf4\x59\x37\x1b\x58\x2c\xa4\x63\xe8\xb9\xff\x9c\x37\xd8\xc0\x74\x88\xe9\x82\xab\xab\x3f\x06\xbb\x27\x70\x62\x19\x52\x06\x42\x59\xc9\x0f\x51\xbf\xee\xdd\x2f\x74\xe3\xa8\xcd\x88\x5b\xea\x2e\xb8\xca\xf4\x4d\x79\x81\xab\xfe\xe2\xa1\xd3\x08\x1c\xad\xdb\x0c\xf3\xad\xbd\xdd\x30\xf0\x63\x63\x87\x80\xb7\xdb\xd8\x2c\x65\x0b\x88\x98\x2b\xe3\x60\x42\x57\xd5\x78\xea\x08\x9d\xa0\x5f\x74\x93\x79\x40\x04\xc8\x88\x5b\xbf\xdd\x79\x87\x36\xcf\xdb\xba\x31\xad\x47\x04\x5f\x74\x91\x82\xa4\x3c\xf1\x26\xe4\x06\x60\x86\xde\x97\x81\xe4\x96\x57\x36\xab\x97\x79\x06\x45\xf3\x24\x32\xfd\x3c\xc1\x16\x82\x54\x96\x11\xfb\xe8\xbd\x52\xed\xe4\xc9\xc7\x1c\x54\x6e\xb4\xa2\x24\x35\x23\xd2\x0d\xab\x2c\xeb\xca\xc6\xfe\xa1\x94\x82\xc4\x74\xa9\xc9\x7f\x9e\xb2\xc6\x5d\x74\x7a\x39\x1d\x78\x5f\x76\x7b\x04\x95\x89\x7c\xca\x6d\x02\x10\x85\xb8\x3e\x7e\x7f\xbe\x5b\x2e\x1e\xf6\x4f\x9b\xc7\xfb\xd5\xee\xc7\xea\x79\xbb\xbf\xd9\xdd\xed\xb7\x4f\xab\x8e\xea\x04\x40\x30\xbb\x9f\x8b\xdc\x29\xae\x75\x39\x6d\x00\x10\xb8\x0f\x3d\xc0\xc7\x00\x3f\x31\x79\x61\x26\x8e\x42\xd7\x65\xfa\x03\xf2\xbc\xfc\x59\x56\x1d\x0a\xde\x04\x2c\x20\x9d\xf6\xd1\xca\x91\xc4\x75\x07\x65\xa4\x7d\x3f\x63\xdd\xc1\x0e\x0d\x61\x12\x23\xb6\xab\x52\xab\x7e\x5e\x1b\xc2\xa5\x4f\x20\xf4\x04\xdd\x24\x1e\x99\x3b\x43\xa4\x6d\xe6\xb1\x0d\x24\x96\xbc\xde\xf1\x88\xce\x4e\x09\x13\x2a\x95\x38\x1a\x3a\xdf\xf2\xd0\x3d\xbf\x09\x4d\x0c\xa1\xd7\x4e\x40\x56\x8b\xd7\xec\x38\xf7\x89\x4d\x44\x20\x10\xde\x07\xcc\xf5\xa4\x00\x6c\xa2\xd0\x3a\xff\x8f\xc6\xe4\x59\x01\x4b\x51\x37\x39\x0c\x19\x94\xe7\x33\xf1\x26\xa2\x89\x67\xc7\x68\x7d\xa8\xf2\xd4\xcc\x90\x86\xb6\xc3\x94\x67\x16\xf5\xec\x13\x6d\xbc\xd4\x97\x14\xbb\x1d\xc5\x44\xa9\xe6\x9d\xfc\xc0\x56\xe4\xf0\x13\xb2\xdb\xb2\xcb\xc2\x9a\x08\x58\x60\xfa\x92\x0f\x92\x2d\xcc\x97\x1e\x4c\x6b\xd8\xd2\x3e\x95\xde\xfd\x55\x28\xaf\x27\x5e\xbd\xc3\xa4\x23\xdf\xc4\x29\x60\xd3\xc4\x41\x7c\x66\x87\xd3\xe1\xea\x74\xbe\x12\xea\xcd\x3a\x0c\xeb\x62\xd9\x6b\x3f\x30\x93\x70\xe5\xe4\x25\x50\xf9\xd3\xb5\x7f\xf4\x09\x23\xee\xc7\x81\x52\x16\x77\x07\xef\x59\x79\xaa\x2d\x98\x63\x98\x99\x30\x2c\x26\x4c\x77\x20\xd1\xd6\xbf\xf5\x5a\xf5\xaa\x27\xdf\x33\x9c\x70\xf4\x9b\x9a\xd7\xac\x6a\xce\xfb\x8f\x01\xf3\x2d\x33\x9c\x5a\xa7\x6a\x6f\x1f\xb7\xf5\xd7\x1f\xda\xc0\xfc\x8b\x79\xc5\x59\x6a\xe3\x57\xc8\x61\x8a\x17\x30\x5c\x24\xd8\x5c\x8c\x62\xf8\x5b\x07\x4e\x2a\xf3\xbc\x83\x0c\x4d\x66\x17\x37\xd2\x32\x8d\x61\x82\x6d\xaf\x26\xef\x34\x4d\x44\x1a\x62\xda\xa1\xd2\xaa\xd4\xa0\x2f\x98\x58\xfd\x40\x1e\x60\xca\x6b\x27\xde\xc0\xb6\x99\x77\x97\xd0\x06\xf7\x60\xeb\xc1\x61\x3c\x68\xd9\x13\xbf\x78\xbc\xd4\x58\x89\x50\x0b\x98\xb2\x2c\x3c\xdd\xc5\x84\xe4\x16\xd4\x7b\x38\xe6\x7b\xcb\xa4\xfe\xc5\x65\x64\x6a\xf9\x57\x5d\xa3\x37\x88\xc3\x97\x34\x5b\x46\x02\x43\xb3\x57\x0b\x03\x77\xa2\x1e\x22\xcf\x8c\x04\x9d\xc2\xc8\xc2\x3e\xbd\x8a\x1a\xd6\x85\x86\x4f\x3f\x46\x31\x8b\x1b\x13\x5a\xf7\xef\x7b\xf2\x82\x94\x48\x13\x2f\x41\x59\xa9\x7f\x36\x5f\x77\xbb\x8f\x9f\x43\x4b\xdb\xa0\x60\x9c\x0f\x37\xa8\x26\x18\x13\x08\x87\x64\x1c\xe6\xba\xba\xa3\xa1\x65\x50\x3c\x58\x1a\xd4\x42\xcf\xb1\xba\x5e\x56\xc5\x8c\x61\x02\x3b\x9d\xee\x17\x0f\x8b\x69\x2f\x97\x31\x32\xd4\x8e\xc1\xf7\xde\xae\xb3\x4d\x79\x2a\xa6\x56\xc3\x40\x42\x03\x4f\x76\xb9\x3d\x8a\x8f\x02\x0b\x7e\xd3\x4f\xf5\x25\xdb\x16\x0f\x02\xaa\x0d\x38\x17\x62\x2f\xf4\xc1\x1b\x6b\x1e\x10\x10\x58\xe9\xc9\x45\x1b\xf0\xdc\x95\x4d\x53\x76\x87\x8c\xf6\x04\x26\x0f\xf0\x31\x58\xa6\x3c\x08\xc3\x84\x39\x8e\xfa\x6a\xbf\x15\x5a\xe7\xe0\x33\xa3\x3c\x08\x69\xea\xfb\x39\xb7\x98\x79\x1a\x7d\x3b\x1e\x84\xc2\x0a\x05\x1f\xb2\xe2\xd1\x2c\xaa\xaa\xe7\x07\x70\x2f\x8d\x07\x51\x68\xb7\xed\xa6\xbc\xf2\xc4\xdc\xee\x48\x9c\x5a\xae\x78\xd4\x61\x5d\x6d\xc2\xdf\xba\xbf\x73\xcc\x7e\x2f\xf4\x7b\xbb\xf6\x3a\x52\xea\x39\x6e\x2e\x1e\xc4\x4a\xe1\xfd\xd7\x96\xda\xfe\x62\xf2\x8c\x5d\xda\x2e\xe1\xd7\xdb\x67\x1e\xc4\x5a\xa0\xb8\xaf\xca\x33\x63\x1c\xc0\xa6\x6f\x3e\xea\x6e\xcb\x28\x04\x7c\x2c\x1f\xef\xef\x9f\x1f\xd6\xbb\x3f\xc7\x3d\x21\x3c\x48\xa4\x01\xe3\x19\x7e\x2e\xd8\x4b\x67\x3f\xed\xd8\x99\xe7\x01\x8b\x25\x32\x66\xca\x53\xa1\x51\x5a\x1f\x8a\xcc\x6f\x8d\x3c\x60\x49\xca\x2d\xde\x40\xe5\xa7\xac\x7a\xae\x4f\xa2\xca\xca\xc9\x27\x61\x2c\xc5\xc6\x78\x9b\xa2\x68\x17\xed\xd5\xe9\xfc\x0f\x38\xd7\x4f\xeb\xeb\xf9\x5d\x85\x07\x0c\x04\x6e\x40\x05\x7c\xdc\x97\xc8\xbd\x9a\x35\x76\x1b\xda\xfb\xdf\xe6\x91\x64\xb1\x8f\xcb\x7b\x24\xa6\x47\xab\x7e\x9b\xcf\xe1\x01\x8f\x53\x34\x75\x9e\x48\xef\x38\x30\xcd\x3c\x48\x93\x44\x92\x51\xcf\x83\x55\xa6\xec\xc5\x4c\x7e\x1b\x5f\x4e\xd0\x00\xeb\xa2\xed\xfa\x43\xec\x87\x83\xca\xac\x0a\x3d\x08\x51\x79\x20\x52\x88\x5d\xde\x04\x13\x8b\xdf\x53\xeb\xf3\x40\x28\x83\x24\x67\x4e\x1a\x64\x0b\x79\xde\xa5\x13\x78\x20\x00\x12\x4b\xa3\x64\x2f\xd6\x91\xc5\xba\xe3\xd2\xd8\x4c\x41\xe3\x78\x6d\x3a\x11\xad\xf6\x90\x91\xdd\xa1\xfa\xd1\x60\x8b\x82\x3b\xa6\x68\x90\x82\x3f\xb6\x3e\x38\x1e\xe1\x2f\x5b\xc8\x78\xa0\x78\x8a\x09\xcf\x4d\x69\xeb\xd3\x8e\xc4\x75\x28\xd7\x36\x97\xa3\xe0\x81\x0e\x8d\xe7\xf7\x7c\x02\xa8\x5c\xec\xba\xfc\x32\x43\xc4\x03\x1d\x5b\x7e\x27\x44\x59\x4d\xa8\x80\xfd\x10\x11\xe0\x6a\xdd\x1e\x4f\x55\xfd\x5e\xff\x14\x55\x95\x95\x55\x1d\x7b\x20\x22\x0f\xb4\x4c\xf1\x6b\x15\xf0\xd9\x6c\x1b\x10\x79\xcf\x26\xe5\x47\x28\x91\x38\xc6\x6a\x4c\x9c\x0d\xfd\x4b\x1e\x68\x48\x70\x5b\xcf\xcb\xa6\x01\x07\x32\xe2\xee\x18\x44\xd4\x4a\x2b\x40\xdd\x5c\x67\x75\xeb\xb3\xe8\x0d\x08\x8d\x51\x9f\xbf\x3c\x50\x15\x38\xa4\x31\xe2\x48\x5c\x6f\xdd\x2f\xe6\xac\x49\x62\x25\x46\xf5\x92\x8e\xf8\x71\xfe\xbb\x98\x14\x10\x2a\xb3\x11\xc5\x5b\x56\xbc\x5c\x89\x3c\xc7\x6c\x1d\x42\x8e\x2e\x79\xb9\x78\x60\xc0\x86\xa9\xb7\xa5\x78\x05\xe1\x6f\x97\x04\x91\x65\x0a\xd3\x5e\x01\xea\x49\x9c\x61\x70\x94\x7b\xfa\xe3\xab\x5c\x8c\xde\x14\x09\x22\x85\x39\x91\xed\xf6\xc7\xff\x26\x0b\xc3\x49\xc0\x18\xa2\xca\x4e\x35\x54\x75\xcf\xd5\xdd\xfd\x9a\xb0\xc4\x69\x9d\x0c\x6b\x6f\x36\x49\x20\x15\x82\x44\x56\xbb\xe5\xab\xa8\xdc\x12\xdc\xbf\x87\xe3\xa7\x24\x51\x68\x41\xae\xaf\x56\x53\x6b\x3d\x6c\x16\xe4\x24\x0e\x54\xda\x5a\xbc\x47\x05\xa2\xd8\x2a\x71\x04\x8c\xab\xbf\xce\xfc\x70\x92\x04\xd6\x0f\xb2\x4e\x21\xb6\xd1\x3d\x9a\x31\x21\xf8\xf8\xcb\x90\x24\x06\xc2\x1c\x3a\xf3\xd9\x55\x87\x7b\x57\x86\x93\x44\xf0\xc4\x45\x77\x96\x61\xf5\xd4\xb9\xc4\x9c\x24\xc6\x10\xd7\xe6\x39\x97\xb2\xe4\x84\xc6\x02\xbb\x42\x76\xaf\x9f\xf7\xf5\xcb\x04\xa3\xe5\xc7\xf0\x14\x17\x79\xa6\xca\x4e\x1b\x7e\x7c\x15\x46\x2c\x79\xc7\x95\x93\xe5\xfd\x52\x50\x9f\x13\xa6\x14\xa6\xca\x30\xf3\x39\x94\x71\xe4\x84\x69\x2b\xf1\xef\x4a\xfa\x61\x30\xca\x1a\x72\xc2\x8c\x65\xf1\x37\x59\xa1\x1d\xe7\xe3\xf8\xda\x9c\x70\xdc\x3e\xb4\x38\x2e\x45\x35\xfa\x54\x3c\x54\x3a\x72\xda\xc1\x50\x59\x25\x08\x6b\x09\x6f\x87\xa4\xb9\xe3\x57\xcf\x45\x88\x99\x11\x6b\xd0\xb5\xbe\x14\xfc\x9d\x9c\x90\x26\x96\xe7\xd8\xee\x5f\x4f\xa2\x75\x2c\xb1\xd3\x6e\xf7\x0a\x65\x05\x0d\x92\xfd\x0f\xba\x66\x39\x49\x39\x41\xd1\xe4\xfa\x03\xe0\x88\xd4\xc9\x7d\x71\xf5\xb7\xc9\xc5\x55\x84\xc8\x82\x65\x2e\x46\x5b\x10\x11\x11\x60\x15\xea\x55\x20\x87\xdf\xe2\x78\xcc\x33\x25\x2e\x7a\x0d\x38\x11\xc6\x9a\xaa\x1a\xf2\xdc\x65\x02\xbe\xa1\x16\xe0\x44\x45\x52\x1b\xcb\x19\xd2\x3a\xff\xde\x97\xf1\x47\xb9\xed\x72\x15\x5a\xef\xca\x2e\xd7\x7b\x75\xca\xdf\x26\x7d\x4a\x9c\x68\xc2\x35\x1b\x88\xc0\xde\x43\x4f\xb4\x37\xef\x5d\xf8\x13\xa3\x38\x74\x56\xdf\x6a\x7a\xcd\x98\x22\xa2\x85\xc1\x84\xc2\x6a\xf7\x03\xaa\x22\x6b\xce\x07\x24\x26\x9e\x8e\x32\x1a\xc5\x0a\x97\x57\xde\xe9\x09\x03\xc2\x3d\xe5\x4f\x1b\x05\xb8\x3d\x02\x03\x46\xf7\xdf\xeb\x31\x1b\x31\x0f\x03\x19\xe3\xbb\xce\x10\x4a\x0f\x03\xc5\x79\x1e\x06\xda\xca\x19\xdd\x23\xa6\x1d\x3d\xa0\x77\xc8\xcb\x23\xa2\xb7\x07\x2a\xc6\x3c\x0c\x43\xa1\x8d\xfb\x10\x50\x3d\x9c\x0e\xed\x77\xbb\x06\x91\xfb\xb5\x10\x46\x2c\xc1\x8e\xe8\x5d\x79\x5b\x2e\xcb\x42\x41\xf5\x1d\xa5\x2e\x0f\xa3\x54\x07\xd2\x53\x77\x65\x6a\xb6\xea\xc9\xc3\x38\x32\xc6\x3d\xb0\x50\x4d\xde\x4d\xa1\x30\x96\x1a\xf7\x4a\x71\x6a\x4a\xdc\xdf\x67\x27\x44\x18\x03\xb5\x7c\xe3\x18\xe9\x0e\x5b\x63\x67\xe1\x99\x3c\x4c\x42\x8b\x4d\x75\x40\xe3\x09\x6e\x82\x87\x94\xc5\x48\xcb\x7e\xa8\x8f\xdd\x9f\x64\x1c\x7a\x02\x0c\x39\x15\x26\x73\x99\xd5\xd1\xff\xf5\xe7\x01\x30\xd7\x0e\x74\xc8\x9a\x71\x89\x73\x3a\xaf\x42\x46\x35\x0a\xa0\x6f\xa1\x51\xa2\x7e\x7d\x3c\xd9\xbb\x1a\x3f\x2d\x03\x83\x39\x9a\xd5\xfb\x5d\xf9\x8e\xb9\x6c\x6b\x03\xbe\xe0\xd5\x9f\xe6\x84\x47\xdf\x87\x87\x09\x32\xa5\xbd\x97\x03\x8a\x94\x2f\x8a\x8e\x17\x65\xd2\x61\x92\xd9\x5f\x8f\x59\x5a\x4c\xa1\xb5\x63\xd9\xbb\xf8\x12\x73\x2d\xc3\xfe\x6c\x00\xcc\x41\x1f\x4f\x15\xdc\x4c\xec\x4c\xc8\x4d\x1c\x93\x4e\xd2\xac\x0d\x2f\x57\xb5\xaa\xca\x8f\xdf\x06\xc5\x67\x1e\xa6\x2c\xd0\xee\x0d\x62\x02\xef\x7a\xc0\x9d\xf9\xab\xfa\xaf\xbf\x84\xb2\x5d\xff\x4e\x81\xc0\xcb\x90\xcf\x10\xae\xfa\x13\x34\xc7\x46\xa8\xdf\x9f\x9f\x6c\x53\xef\x7e\xfb\xfc\xf4\x74\xf7\xe7\x7e\xb7\x5e\x6d\x62\x3f\x81\x84\x08\x59\x8f\xc6\x1c\x6a\x06\x4d\x2e\x27\x23\x1a\x3b\x90\xc5\x75\x25\x3e\x9e\xfc\x05\xa4\x08\x31\x9f\x58\x41\x51\x9e\x0a\x05\xff\x00\x38\x76\xee\x70\xa8\x64\x80\xa8\xb4\xab\xd3\xf9\xba\x3c\xc9\xbc\x3f\xa2\x89\xc6\x34\xc6\xee\x23\x2b\xde\x46\xfd\x8f\x3c\xd4\xb1\xc0\x86\x31\x0c\xbd\xcd\x04\x97\xfe\xff\x13\x32\x7a\xfc\x74\x10\x68\x65\x37\x5a\x58\x9e\x65\xe7\x31\x8f\x9c\xae\x10\x48\xc4\x7a\x4a\x7a\x8b\xc0\x15\x5f\x44\x2e\x21\x44\x04\xe7\xdc\xbf\xb3\xe2\x25\x9f\x24\xea\x78\x68\x54\x1a\xdb\x3c\x78\x7d\x72\x99\x72\xdf\x04\x30\xd9\x0e\xa2\x80\x53\x0f\x5c\x48\x1e\xe0\x63\x57\x89\xac\x99\x02\x64\x67\xff\xe9\x1d\xb8\x88\x10\x21\x5c\xb5\xf8\x49\x54\xbd\x62\x19\x8f\x08\x4b\x88\x4b\x0a\xb4\x47\x2e\x85\x4a\x78\x44\xd2\xd8\x92\x4d\x5b\x45\xa8\x21\x57\xdd\x64\xa0\xb1\xba\xa5\xaa\x3c\x1c\x45\x05\xb6\x44\x3b\x6e\x7d\x1e\xfd\x4b\xdc\x79\x21\x89\xad\x6b\x5f\x1e\x9f\x8f\x8b\x77\x91\xe5\x3d\xb8\x84\x47\x61\x6c\xc9\xa1\x30\x91\xb2\xc1\x60\x1b\x7e\x82\xbc\xcd\x4c\x73\xf1\xae\x42\xcd\xb4\xf1\xbc\xdf\xae\x37\xfc\x0b\x4d\x0f\x1e\x45\x91\x9d\xb9\xf8\xfa\xb3\xdf\x1f\x2f\x34\x24\x86\x1f\x3f\x8a\x22\x4e\xa5\xcd\x6e\x38\xe9\x31\x7f\x40\x31\x04\x5a\x64\x85\x82\xa2\xc9\xde\xb3\x1a\xa7\xc3\x20\xa4\x75\x03\x63\xca\xc4\xd0\xdb\xef\x8b\xf1\xdd\x08\x66\xb0\xfd\xf3\x20\x3e\xbb\xac\x53\x87\xa7\xe2\x51\xac\x62\x24\xa4\x94\xa7\xf3\x42\xa9\x89\xc0\x3e\x8f\x92\xc0\x0a\x0c\x63\xb3\xb5\xcb\x0c\x82\x9e\x8c\x21\x56\x71\x08\xd9\x5a\x27\x99\x2d\x1e\xd1\xd0\x12\xbe\x3a\x63\x30\xe0\x0a\xe0\x11\xa5\x36\xe7\xe1\x4c\xc9\x6e\xf1\x70\xbd\xd8\x5c\xef\xad\xec\x99\x1b\xc3\x82\x38\x0d\xbd\xe0\xc1\xb4\x6d\x8e\x47\x2c\x4c\xb0\x5c\xb1\xdd\xfd\xca\xf3\x8f\x98\x00\xdc\x0a\x91\x79\xd3\xb6\xc2\xb6\x31\xc9\xd0\xb6\x7b\x4f\x37\x62\x2a\xc2\x38\xc9\xe1\x8a\xd0\x77\x40\x43\xfc\xc7\xe3\xe6\xa6\x27\xb2\xfb\x36\x62\x8e\x78\x62\x35\x90\x6a\xf0\xb4\x4b\xdf\x53\x89\xf1\x28\x35\x2a\xa1\x1e\xaa\x21\xf2\x85\x7a\xcd\xe0\x7d\x58\x60\xe6\x91\x24\x10\x5a\x9b\xdd\x3a\xb1\xb3\x37\xaf\x0c\x33\xb6\xdb\xab\xb5\x73\x97\xfa\x36\x3c\x02\xa2\x3d\xba\xed\xb9\x86\x0a\x11\x1a\xeb\x89\x64\x1a\x8f\x4c\x1a\xa3\x5b\x07\x28\x57\x46\x7e\x02\xf8\xdc\x48\x1c\x50\x82\xa4\x7c\x77\xe5\xcb\x3f\xce\xaa\xfd\xa1\xfa\xd2\x37\xf7\x63\x75\x88\x86\xe2\xd6\xb7\x47\xf3\x98\x70\x8d\x31\xf5\xd5\x6a\xf9\xab\x5a\x3d\x8f\x89\x16\xc8\xaf\x95\x97\xea\xcd\x09\x47\xd7\xdd\x85\x0c\x41\x58\xe2\xab\x28\x74\x0e\x63\x50\xdc\xfc\xdd\xb4\x8e\x1d\x74\xaa\x8c\x33\xde\x6c\x1c\x9a\xc0\x58\x7a\x94\x17\xc7\xd7\x3f\xe5\xad\x74\x03\x23\x95\x90\xa1\xbc\x97\x1f\x36\x2f\xbd\xd4\x8e\x4f\xf1\xa5\x89\xa6\x11\x97\x7b\xe2\xd4\x45\x8a\xe3\x24\xb6\xfc\x14\x8e\x3c\xe7\x3e\x2b\xfa\xb6\x40\x1e\x27\xa1\xe5\x50\x42\xa6\x25\xab\x17\xf8\x54\xe6\xb9\xf5\xbb\xbe\xc8\xd5\xc5\xd4\x51\xe4\x1f\xa1\x72\x76\x02\x33\xee\x8f\xc6\xa1\xb1\xc6\x37\x4c\x53\x85\x90\xc0\xfb\xf5\xc3\xfa\xe1\x76\xbf\x59\xfd\x5c\x6c\xae\xfd\xef\x53\x15\x22\x2e\x7d\x28\xbf\x33\xf8\x21\x63\x0b\x91\x1f\x22\x6b\xfe\x79\xea\x93\xc2\x31\x8b\x05\xf6\x3a\xee\x5d\x91\x68\x73\x2a\x26\x0c\x28\x3c\x66\x82\xa0\xfa\x44\xbb\x48\xa5\xa8\xc1\x6d\x63\xe3\x56\x98\x2f\xa8\x77\xda\xb3\x19\xb1\xbd\x9d\x8f\xc5\xae\x12\xb8\xd1\x0f\x3d\xa7\xd8\xe7\x13\x75\xb9\x98\xa9\x70\xf7\x17\xe2\x10\x42\x07\xcd\x74\x5d\xa4\xdb\xd2\x34\x03\x6a\x5c\x1e\xa7\xa1\xc1\x04\xc5\x31\x53\x6f\xbb\x4c\xbd\x41\x33\xd4\xe1\xe7\x71\x9a\x04\xda\x8c\xd0\xc7\xd9\xc1\xd6\xb2\x2e\x1e\x3b\xa5\x71\xe8\x60\x69\x98\x97\x58\xeb\xee\x47\x14\x20\x9a\xea\x90\x15\x1d\xc9\xc4\xf8\x5c\xc1\x02\x21\xdc\x22\x01\x7d\xe9\x4b\xc7\x32\xb5\xd1\x97\x6e\x7d\xbd\x13\x58\xcf\xc9\x5f\x5f\x25\x51\xd4\x83\x46\x1e\xe0\x63\x8a\x0c\x18\xba\xbe\xb1\xa2\x11\xb2\xcc\xac\x97\x8f\xfb\xe5\xe2\xc9\xfb\x7d\xb1\x0e\x58\x24\x86\x22\xe6\xed\x8c\xfd\x2e\xbe\x8d\xb5\x8e\x50\xd9\xb0\x01\x71\xb0\x5f\x77\x1f\xf9\xab\x41\x62\x99\xe1\x96\x9b\x3f\x9f\x76\x8f\x0f\xab\xcd\xea\xf9\xbe\x3b\x26\xd3\xb4\x2f\x64\xf6\xc5\xf4\xc9\xde\x1d\x83\x94\x5e\x14\xe6\xf7\x7b\xef\x30\x74\x14\xdc\xed\x62\x8b\xfd\x50\x13\x59\x31\xd3\xf2\x1d\x2a\x5d\x09\xd3\x3c\x63\x16\xbe\x4b\x66\xc5\x86\xd9\x14\x0b\x3e\x90\x2f\x0d\x55\x70\x59\x10\x1e\xad\xa1\x84\xc4\x04\xf3\x5c\x7b\x38\x64\xcd\x52\x34\xf0\x52\x56\xe7\xd5\xbb\xc8\x4f\x58\xb7\x9e\x33\x56\xf3\x5a\x25\x3c\x21\x34\xe9\x37\xe3\xed\x49\xda\x38\x73\x64\xfb\x13\x02\x21\xd6\xe7\xee\xca\x17\x4b\x07\xf9\xb0\xda\xcd\xbf\xfc\x24\x4c\x53\xb4\x2f\x88\xb3\x26\xb8\x21\xae\xbc\x48\x22\x4f\x42\x9d\x48\x2b\xa9\xef\xe4\x8f\xf6\x5d\x16\x6f\xfc\x80\x91\x0e\x3d\x9b\x70\xbb\x97\x5c\x9d\xdb\xff\x2d\xc4\x01\x46\xa8\x12\x9e\xc4\xa1\x41\xa1\xb4\xc5\xc3\x9f\xfe\x37\x12\x1d\x23\x2e\xb6\xbd\x2f\x0f\xbe\x1d\x3f\x0e\x4d\x12\xec\xf5\x5d\xfc\xe7\x24\x9e\xc4\xf9\xb7\x19\x07\x7d\x9c\x92\x4c\x5a\x87\xc8\x6a\xa2\x6a\x0d\x95\xe5\x05\xbd\xea\xb2\xb9\x09\xe5\x1c\xd3\xdf\xfb\xca\xf1\x82\x6d\xbb\x23\x32\x55\x1e\x85\x63\x79\xdf\xfc\x11\x46\x18\xa6\xae\xca\x23\x0c\x80\xea\x3c\x61\x09\x09\x5c\x49\xf5\xba\x10\x43\xb6\x35\x9e\xa4\x01\x89\x12\xe7\x8c\xb7\x3e\xae\x13\x4d\xe8\x0e\x87\x11\x2e\xd7\xff\xcb\xe4\x93\x6f\x5c\xe4\x49\x2a\x82\xd4\x35\x92\x0e\x63\x97\x24\x05\x89\xde\xb2\xa5\xe9\x68\x63\xad\x7d\xbc\xbf\x5b\xdf\xaf\x77\xdd\x08\x63\x70\xcb\xdf\x7e\xc0\x35\x7c\x4e\xd4\xff\x79\x22\x58\x88\x7d\xe2\x0f\xf0\x81\x65\x2e\xff\x67\x29\x48\xea\x51\x08\xf0\xbc\x59\x8f\x1c\xbb\x44\x68\xc0\xdc\x80\x2b\xb1\x6d\xf7\xbf\xaf\xb6\xbb\x76\x23\x18\x73\x84\xe0\x40\x74\x57\x1d\x97\xd3\x30\x3b\x9f\x48\x12\x61\x23\x12\x52\x50\x5e\x65\xcd\x83\x38\x35\x99\x1a\x96\x54\x79\xa2\x02\xdb\xf0\xbc\x3f\x0a\xf5\xb6\x11\xae\x7e\xf1\x3f\x45\x59\x89\x26\x76\xaf\x78\x87\x2a\x33\x56\xa3\x6b\x36\x76\x4d\xb4\x0b\x9e\x5e\x90\x13\x0c\xf9\x0f\x27\xf4\x02\x3c\x81\x80\xf5\xf0\x91\xfa\xcb\x5b\xf0\xa3\x93\x14\xe2\xa9\xbc\xe7\x18\x16\x39\xbf\xf2\xc0\x58\x72\x05\x71\x3c\x42\xa1\xaf\x45\xf5\x56\xb4\xf7\xfd\x6d\x16\xe2\x8b\x7b\x30\x11\xa3\xce\x1d\xb4\x2c\x05\x93\x8d\x21\x31\x89\x45\x9a\x34\x76\x27\xc4\x37\xeb\x0f\x19\x1b\x2e\xd7\xd0\x2c\x4e\x4d\xd9\x11\x35\x67\x65\xf1\x7b\x26\x56\xbb\x1f\xc3\x5a\x5d\x3d\x69\x77\x68\x4f\x07\x8c\x37\x0f\xd8\xca\xf1\x75\xd2\x8a\x06\xd2\xd8\x2e\x98\xcd\x72\x38\xad\x69\xa0\x09\x4e\xbf\x36\x68\x39\x15\x59\x63\x09\xdf\x2c\xdd\xb0\x1f\x43\xa4\x00\xd1\xe7\xaf\xf6\x62\xe4\x82\x51\x02\x84\x3a\xf0\xcb\xea\x80\x1d\xe9\xb0\x15\xb9\xa8\xce\xdf\xe7\x89\x29\x31\xa9\x97\x1e\x19\x82\xc6\x76\x93\x7a\x28\x0d\x99\xc2\xf4\xfd\xdd\xfa\x61\xbd\xec\x94\x6a\x38\x8d\x4c\x82\x85\x87\xab\x46\xfd\xd7\xd6\xea\x7e\x59\x2c\xa1\x31\xa1\x38\xb9\x96\x9b\xc7\x9f\xd7\xdb\xc5\xdd\x6a\x28\x60\xc6\x69\x1c\x2b\x0c\x1d\x3d\x56\x64\x0f\xcd\xeb\xbe\xdd\x27\xc0\xb2\xb2\x77\xe3\x98\x45\x55\x94\x4e\x65\x62\x6c\x59\x68\xcc\x05\x1e\xb6\x1c\x0f\xa7\x62\xc8\xca\xcc\x69\x92\x86\x84\x8e\xc8\x59\xef\x4a\xf5\x96\x15\xd7\xe2\x3c\x99\x38\x94\x06\x02\xd3\x79\x8e\xea\x7d\x9a\x39\xa4\x94\x52\xdc\x30\x97\x65\x51\x97\xa3\xef\xca\x02\x86\x31\x59\x56\x2f\xf3\xb2\x86\x1e\x5a\xc1\x29\x27\x04\x79\x91\xfc\x5e\xd2\xeb\x99\x8d\x7f\x9c\x47\x8c\xcb\x8e\xa6\xf7\xd1\xac\x0b\x55\x7e\x55\x25\xa0\x3c\xd2\x88\x98\xb5\x99\xed\xf3\x73\x91\xa9\x5f\xc4\x82\x94\x2b\x4d\x5d\xfc\xf2\x54\xe6\x99\x3a\xdb\x7e\xa4\x27\x6c\xd0\xf8\x6d\x92\xfe\xf3\xe7\x80\xe2\xae\x94\x33\xc2\xbc\x8c\x6f\x46\x48\x89\x01\xb5\xc8\xf3\x9b\x2c\x3f\xd4\x17\x6a\xc7\x9c\x4a\x16\x99\xa0\x0b\xfb\x87\x15\x49\x2a\x95\x15\xe1\x5a\xfd\xf1\xb4\x5a\xee\x56\xd7\xfb\xd5\x83\x77\xb8\xa9\x4a\x23\x7c\x27\xae\xc6\xfb\xe8\xd8\x96\x27\x4e\x3b\x85\x28\xc1\x4e\x85\x1a\x9b\x9f\x27\xf3\x19\x74\x62\x4d\xd6\x6b\x56\xe9\x7b\xf1\x39\xca\x8a\x53\x00\x86\xbe\x6c\x65\x33\x22\xcb\x53\x93\xc1\x38\x64\x8d\x83\xc9\xaf\x19\x16\x22\xc6\x63\xef\x85\x33\x6c\x5d\xc8\x87\xbb\xf3\x5f\x8c\x05\x22\x40\xfa\xd0\x76\xf9\xbd\x8a\xa2\x80\xbc\x9d\x29\xed\x2c\x83\xa6\xc9\x7b\xe6\x0f\x3f\x5c\x82\x6b\x1c\x6b\x7e\xb7\xaa\xf1\xdb\x06\x8e\x0e\x5b\xfd\xad\x8d\x66\x81\xd6\xb8\xab\xb7\x7e\xa2\xbd\xa9\xd6\x4a\x5b\x76\xb4\x8e\x4c\xf8\x0b\x86\x0a\xce\x88\x16\x98\x6a\xdc\xfe\x78\xdc\xf8\xbd\x96\x11\x63\xb0\x63\xeb\x16\x9a\x0b\xe5\x1d\xce\xc2\x24\x52\x8e\x51\xa9\xf5\x24\x4e\xfd\x76\xcb\x22\x49\x10\x9f\x71\x6b\x77\xa0\xc3\xe9\x70\xe5\xd1\x6a\x9c\xc5\x81\x60\xbe\xcc\x5c\x81\xce\x9a\x3b\xd0\x53\x32\x7c\xce\x92\xd8\x36\x38\xf8\xe6\xd6\xea\x5e\x1c\x8f\x17\xa5\x16\x96\xd0\x28\x62\x23\x74\x95\x03\x32\x97\x55\x7d\x07\xc5\x4b\xf3\xea\x90\xb7\xf7\xe5\xd2\xdf\x40\x92\x26\xca\x31\xfc\x17\xe5\x87\xf5\x2d\xfd\x21\x19\x82\x43\xc9\xac\xeb\x2b\xd1\xa8\xd7\x81\x1b\xc4\x68\xc0\x84\xed\x17\x2a\x3f\xbc\x7d\xde\x9b\xb2\xda\x97\xc7\xd6\xf6\xec\xaf\xfc\x65\x68\xc8\x11\xb9\x69\xe5\xc7\xd6\x9e\x62\xcd\x1f\xa5\x01\x96\x59\x17\x9b\x21\x05\x14\x67\x54\x70\xec\x51\xdc\x57\x65\xc7\x53\xc3\x19\x93\x09\x56\xd2\xbc\x23\xee\x5e\xe8\x0d\x38\xcc\xea\x8c\x5f\x3e\x58\x67\x8c\x69\x89\x00\xdf\xa2\x2c\xba\x1b\xe0\xc2\x6a\xa0\xd8\x20\xc8\xba\xf9\xa5\x6d\x1d\xea\xf3\x69\x8c\x0b\x80\xa1\xe2\xeb\x22\x9f\x94\xf0\xdc\xb8\x34\x48\x50\x81\x41\x0f\x76\xd5\x41\xe8\xfa\x0b\xd4\xf6\x17\xb3\x39\x15\x06\x49\x83\xbd\x54\xd7\x44\xfa\xc8\x8f\x32\x0a\x73\xa6\x02\xd9\x43\x2f\xec\x0f\x13\x26\x61\x72\x50\x0c\xbc\x29\xab\xad\x98\x91\xbb\xee\x8a\x3c\xfd\xb7\x96\x44\xa1\xfb\xfc\xd1\x77\x96\x5c\x81\x29\x2b\xdb\x7a\x37\x53\xf2\x64\x92\xd9\xf5\x60\x95\xa8\xac\xc2\xd9\xf8\x76\x14\x68\x74\x95\xb1\xf7\xdf\xc1\x30\x2e\x2a\x33\xa3\x33\x74\x18\x61\x0e\xec\xf6\x74\x38\x78\xe7\x99\x69\x2e\x31\x99\xfa\x21\xf2\x37\xbb\xa7\x63\x10\x3d\x0e\x3d\xa7\x7a\xe7\x9c\xe9\x34\x0e\x3b\xc6\xb9\xde\x16\x62\x4f\x0e\x52\x6a\x5c\x5f\xcf\x5b\x7a\x06\x81\xc2\x2f\x5c\xc0\xc7\xe2\xc5\xe5\xea\xc7\x1d\x82\x9c\x41\xa2\x23\xe3\x3d\xec\xcc\xeb\x14\xdc\x60\xc1\xa5\x50\xe7\xc9\x9b\x00\x96\x24\x03\xcd\xa4\xdf\xa6\xaa\x75\x9c\x81\xdb\xdd\xad\x54\x99\xe8\xee\x16\xa4\xf2\x52\x2b\x2e\x45\xe6\x16\xc4\xb8\xcd\xd9\x8d\x36\x91\x6d\x4b\x2e\x3f\x8a\x9b\x2c\x87\xf9\xcc\xbf\x1f\xcb\x63\xe4\xbf\xe8\xf2\xb7\x75\x89\xb2\x5b\xc3\xf2\xc4\xe4\x0c\xa3\x89\x55\x6c\x43\x90\xb8\xf3\x33\x5c\xd5\x7d\x36\x48\xe6\x41\x64\x79\x8b\x84\x9e\x90\x61\xce\x31\x88\x5d\xbc\x15\x1e\x24\x11\x31\x3e\x71\x22\x54\x9e\xfd\x17\xfa\xca\xa5\x1b\x43\x58\x1c\x38\x79\xf7\x1b\x71\x40\x36\xb7\x6a\x2e\x9c\xec\xde\x12\x27\xc6\x62\x65\x90\xdb\x73\xe7\xd1\xd7\xe3\x57\xc9\xc3\x84\x62\x57\x6f\x9d\x0f\x62\xf1\xaf\x52\x53\x3c\xa4\x34\xe8\x41\xb8\x4b\xc8\xf3\x75\x17\xa4\xf1\x50\xc7\xa9\x71\x99\x5d\xa1\xc0\xb7\x9b\x8d\xd7\x13\x8f\x62\x21\xdc\x7c\xf5\x54\xcc\x03\xc3\xc6\x23\xca\xe3\xb8\x73\x9c\x9e\xc4\x19\xba\xba\x0c\x8f\x84\xc0\x50\xe9\x36\x2f\xa5\xc8\xed\xcc\x58\x8a\xe3\x0f\x51\xe9\x6e\x88\x0c\x54\x5f\x8e\xda\xcc\x68\x8f\xf9\x81\x46\xa6\x81\x47\x83\xe1\x96\xec\x05\xac\xdd\x80\x24\x09\xf8\x40\x3d\xae\xcb\x37\x7a\x91\x97\x49\x3f\x8f\x3f\x4b\x0b\x49\x87\x2c\x1f\x4f\x50\x0d\xf4\x4e\xdd\x28\x1a\x1a\x65\x33\x7c\xab\x5a\x89\xa3\x4f\xf0\x8d\x69\x70\x39\xa7\x89\xd4\xb6\xf4\x51\x37\x50\xb5\x21\xd6\xda\x2d\xac\xf1\x2b\xa5\x9a\xa2\x33\xd8\x49\x33\x5d\x3a\xa4\xad\x23\x81\x63\x0e\x36\x09\xdb\x86\x51\x76\x2d\xeb\x45\x33\x44\x0d\xb6\x76\x88\xd0\x29\x3d\xed\x06\x50\x3a\xd9\xc6\x67\xb3\xae\x06\xe7\x10\x2b\x9b\xd2\x42\x04\xe9\x16\x4b\x7c\x0b\x9f\x83\xe0\x69\x24\xa8\xc3\x4b\x3f\x9c\x0e\x8f\xa6\x9d\x8a\x75\xbb\x89\x6f\xc5\x01\xd6\xda\x53\xc3\xb8\xd1\x32\x4c\x30\x43\xb7\xf8\xbf\xbb\xdd\xca\xb3\x9a\x71\x2e\x29\x11\x96\x7c\x71\xed\xa4\xe2\xf4\xaa\x28\x4f\x2f\xaf\x93\x17\x22\x21\x45\x53\xba\x59\x6d\x57\x9b\xdf\x57\xfb\xd5\x1f\xcb\x1f\x8b\x87\xdb\xd5\x7e\xb3\xd8\xf9\x78\x85\xab\x40\xe0\x74\xbd\x5b\xdc\x3f\x75\x7f\x4b\xc0\xd8\xf6\x93\xcf\xc6\xf9\xd2\xfe\x48\x6a\xf5\x4a\xf7\xf2\xd4\x3a\xe8\xd6\x26\x64\xff\x05\xfd\x94\x7d\x42\x3e\x6a\xc3\xfa\xaa\x59\xd9\x5d\x09\x22\xcb\x07\xd4\x86\x7c\x9b\x65\x18\x88\x19\x00\x3e\xe7\xa0\xac\x5c\x54\xfd\x5a\x7e\x3c\x17\x47\x91\x79\xf0\x8c\xef\x20\x98\x0c\x37\x21\xa6\x78\x96\xa2\xca\xcb\x7a\xe8\x7f\x70\x23\x62\xc4\x3d\x3a\x4d\x0c\x1f\x06\xd9\x80\x21\x9f\x4e\x4d\x03\x71\xa8\x07\x06\xff\x17\xfe\x29\x37\x60\x73\xa6\xda\xb5\x16\xa1\x53\x4b\x7c\xf5\x2b\x0d\x82\x18\x71\x02\x87\x52\x67\xe6\xfc\x4f\x6c\x0f\x55\xcb\xbc\x3c\xe9\xf5\xe3\x6e\x2e\x4b\xe2\xcf\x0b\xa9\x88\x5c\x62\xd5\xf2\x19\x8d\xcd\x61\x1a\x48\x86\xcc\x43\xc6\xb1\xdd\x5c\xd2\x0d\xf0\x34\xd0\x21\xfa\x58\xeb\x7a\xf7\x9a\xd5\x4e\xb3\xc2\x5f\x80\x24\x0a\x39\x0e\x8f\x58\xd1\x7b\xaa\x60\xbd\x7b\xdc\x7f\x40\xf6\x34\x62\xd0\xe7\x29\x61\x04\x69\x62\x70\x3d\xfc\x10\x75\x96\x5f\x4d\xa8\xc8\x79\x4a\x52\x8a\x69\x60\xa8\x04\x36\xf9\x8f\x79\x68\x78\x4a\x84\x41\x96\xd2\x03\xbc\x88\xa5\x28\x3c\x37\x26\x4f\x89\xd1\xc8\xda\x03\xa2\xca\xcf\x32\xab\xf4\x0a\xb5\xb0\xdc\xd1\x90\x5b\x89\x05\xef\xaa\xed\xb3\x89\x44\xdf\x5f\x3d\x81\xe1\xf8\x3f\xbf\x3c\xf0\xbf\xff\xa7\x4f\x2c\xa7\x61\x4a\xb0\x9f\x14\x95\xe8\xe1\x73\x96\xec\xd9\x0d\x8d\x39\xe3\x3d\x9b\xc1\x53\x55\x1e\xca\x7b\xb8\x0c\x7b\xe7\x3a\x2c\x79\x4a\x99\xf5\x88\x33\x5f\xf5\xc7\xe0\xbb\x7b\x19\x54\xa7\x38\x31\xb3\x7a\x03\x2f\xa7\x5c\xcc\x36\xae\xf0\x94\xb1\x00\xb1\x27\x4f\x39\x14\xa7\xc3\x6f\xa7\x0b\xce\x4e\x9e\x32\x6e\xf5\xcc\xea\xd2\x34\x1b\xa8\xcb\xfc\x1d\x2c\xcd\xd7\x78\x29\xa4\x9c\x46\xe8\x4f\xfb\x6c\x66\xeb\x66\x7a\x4b\x91\xa6\xae\x5b\xb9\x12\x19\xd2\x51\x67\x65\x7f\xc4\xf2\xf1\x1e\x11\xbc\xd7\x89\x42\x76\x0f\x22\x62\x13\xa4\xfe\x25\x95\x95\x73\x81\x51\xa6\xa5\x0b\xb5\x52\xa1\x94\xf0\x80\x73\x6f\xd5\xaf\x45\xf3\x45\x67\x14\x4f\x05\xc4\x98\xed\x2e\x5b\xf7\x01\x26\x6b\x45\x25\x12\x6c\xe7\xc6\x1f\xfb\xdd\xe3\x6e\x71\xe7\xb0\x2f\x8b\xfb\xc7\xe7\x0e\xc0\x9f\xaa\xd6\xfa\x0d\xbc\xea\x8b\xaa\xc4\xe4\x63\x2b\x2d\x70\x05\x22\xb0\xd9\x3d\xe5\x20\xbf\x92\x6a\x02\x98\x38\x35\x65\x29\xc7\x58\xca\xd4\x10\x16\x39\x3e\xe2\x01\x85\xf2\x24\x2b\x7e\xea\xc9\x2f\xa6\xb9\xd0\xd4\x24\x06\x53\x19\xea\x70\xc9\xa5\xd0\x1b\x00\x11\x10\x85\x4d\x89\xea\x5d\x0d\x78\x5e\xb8\x20\x3a\xc4\x00\xc2\x64\x55\xdd\x60\xa3\xca\xcf\x7b\xaf\xdc\xde\x97\xc6\x44\x1c\x44\xda\xd2\x95\x1c\x3d\xc6\xfe\x9b\xd9\x2f\x62\x69\x08\x19\xd0\xe9\x0d\x11\xe3\x9d\x5f\xfd\xb7\x19\x2f\x5b\x24\x21\x8b\x3b\x09\xde\x5c\x9c\x41\x6f\xad\x4e\xad\x27\x4c\x1b\xbc\x91\x90\x0f\xdd\xc8\x89\xb0\x09\x17\x49\x1c\x20\x03\x93\x6f\x73\x9f\x5d\x25\x22\x51\x21\x06\x0d\x15\x98\xac\x80\x5e\x48\x85\x0b\x4a\x38\x96\x4c\xd1\xde\x54\x58\x46\xd8\xab\xd6\xc1\x1a\x38\x69\x82\x42\x8a\x2f\x46\x43\x9e\xbd\x43\x75\x1e\xd7\xc0\x47\x9f\x4a\x30\x96\xf2\xd8\xeb\x53\x58\xda\xd4\x81\xeb\x2b\x52\x61\x65\xc2\x2d\xea\x77\x08\xc9\x9d\xbc\x5d\x41\xa4\x15\x7c\x13\x59\xf7\x1d\x05\x03\xe2\x7a\xc9\x77\x20\x0e\x3f\xb0\x88\x3e\xaa\x01\x08\x21\x42\x34\xcd\x16\x78\x73\x2f\x8e\x3d\x10\x4b\x48\x20\xc6\x41\x1e\x97\xab\x5d\x8c\x04\xdc\x57\xe7\xb5\x76\xce\x58\x37\x8a\xfa\x54\xeb\xa0\x8b\x7a\xad\x2f\x77\xc6\x49\x82\x59\xa8\x90\x5a\x81\xab\x57\x71\x09\x2c\x11\x10\x31\xb4\xee\xe0\x6a\x69\xe3\xde\xe0\xc9\xd3\x43\x04\xb1\xec\x1c\x6f\x4c\x54\xd9\x48\xc3\x42\x89\xa6\x99\xf7\xc9\xc9\x09\xa0\xb6\xb5\xa3\x4a\xdb\x89\xc2\xab\x9f\x72\x01\x69\x80\x29\xb3\xcd\xcd\x70\x85\x0a\x00\xa5\xd3\x8e\x57\xbb\xb9\x69\xed\x54\xd3\xe4\xb0\x1c\x0a\x2e\xcc\xbb\x04\xc2\x84\x11\x3e\xb6\xdf\xb6\x76\xe5\xf1\xd9\x97\x53\x84\x89\x8d\x49\xfc\x54\x47\x22\x2a\x8c\xc4\x66\x5a\x5c\xb9\x30\x14\x90\x4f\x04\x0e\x59\xf3\x43\xd4\xaf\xdb\x41\xab\xd8\xfc\xec\x37\xcc\x92\xe4\xa3\x46\x50\x25\x5a\x8b\xba\xbc\x8c\x1f\x85\x51\x09\x16\xd0\x8f\x08\xd4\xf5\x99\xe4\x49\x87\xc7\xf8\xa9\x64\x10\x11\x5c\x32\x8e\xd7\xac\xbd\xdb\xd3\x80\x7d\x76\xf0\xbf\xfe\x84\x84\xd0\xd0\xd1\xfc\x17\x2f\xb0\xcb\xf2\x81\x2e\xc9\x64\x4f\x92\x24\x21\xc6\xb6\x1a\x16\x8d\x18\xd0\x66\xfa\xc3\xdc\x96\x3a\x73\x30\xcd\x9d\x6b\x04\x71\x87\xc2\x24\x40\x06\x04\x14\xdf\xe8\x48\xdf\x06\xf9\x2d\x19\x52\xc7\x95\x51\x3f\xaf\x5b\xa3\x83\x21\xc4\xba\xa0\xf1\x08\x55\x20\x23\x62\x82\x76\xa1\xfe\xf8\xf1\x23\x9a\x51\xf5\xe2\x32\x0a\x43\x8c\x6d\xde\x2d\xf9\x8a\xfe\x99\x15\xc5\x58\xa4\x89\xcb\x98\x24\x96\x90\x5f\x14\x79\x26\x8a\x97\x9e\x26\x80\xcb\x38\x34\xc4\x0c\x4d\x53\xbd\x28\x1e\x8f\xc7\xb2\x80\xfe\xfc\x24\x00\xe8\x68\xab\x8a\xa2\xc8\x8a\x17\x97\xf0\xeb\x46\x30\xdb\x90\xf0\xfb\xfa\xa9\xd3\x5a\xfb\xaa\xf0\x34\x7e\xc7\x34\xb0\xc2\x36\x42\xbd\xdd\xd7\x2f\xb3\xb1\xbf\xe4\xa1\xc2\x7e\xfd\x2b\x51\x43\xc7\x19\x39\x01\x2a\x4a\x4e\x15\xb6\x85\xfc\x9f\xed\xd7\xf9\x25\x02\x48\x72\x96\xfa\x76\x7c\xdb\xb8\xba\x9e\xe4\x90\x64\x1b\x5a\x77\xa2\x20\x2b\xef\x0d\x4e\x06\xa5\x2c\x42\xb0\x1c\x96\x53\xee\xad\xc8\x50\xd6\x99\x33\x99\x72\x82\x31\xc0\xcd\xe3\xf3\x66\xf7\x63\x18\xeb\x48\x21\x52\xa6\x87\xd2\x5a\xd7\xd0\x80\x6a\x90\x8a\x71\xbc\xe8\xa4\x64\xd4\x76\xfe\x62\x91\x1e\xd3\xd9\x87\xc1\x07\x92\x90\xa0\x63\x82\xa1\xcb\xef\x65\x73\x91\xbb\x95\x2a\xa2\x58\xb0\xfb\x47\x0e\xe7\x62\xf8\xfd\x55\x24\xa8\x1a\xe7\xde\x9e\x72\x51\x14\xae\x83\xab\xab\xd3\xf9\xe1\xd2\xa0\x93\x70\x14\x67\x1b\x73\xb7\xb7\x71\x55\xea\xf3\x5c\x4a\x48\xea\x54\x39\xfd\x8f\x37\xb0\x98\xa0\x9d\x47\xc7\x4c\x5f\xa3\x16\x11\x38\xdb\xb6\xdb\x0c\xf2\xac\xf3\xb3\x06\x64\xa8\x6c\xa5\x45\xbd\x9d\x8e\xf4\xb0\x0f\x03\xc2\x03\x1e\x90\xc9\x63\x1b\x9d\x30\xd3\x95\x67\xa1\x7a\x34\xa6\xee\x16\xb0\x0a\x0c\x49\xa0\x43\x5b\xa3\x86\xfe\x38\x46\x50\x24\xd0\x58\xae\xba\x42\x0e\xf1\xd9\x06\x0e\x45\x42\x8d\x6a\x02\x4f\xed\x2b\x99\xc8\x15\x73\x45\x18\x60\xa9\xa0\xa3\xfb\x15\xf9\xf4\x7c\x11\x60\x9d\xfa\xea\xe4\xb4\xa9\x56\x9f\x13\x31\x80\x81\x67\xce\x1c\xab\x96\xb3\x6a\xce\xac\xa9\xd0\x11\x73\x8e\x72\x7c\x3d\xc4\xfc\x5b\x34\xbf\x0a\x19\xc7\xc4\x9d\x35\x21\xaa\x93\x12\xf0\x87\x95\x15\x4f\x3a\x88\xac\x58\x2f\x1f\x57\x43\x69\x25\xae\x22\x12\x60\x81\xb1\x27\x60\xb4\x33\xe1\x6b\x95\x73\xae\x22\x1d\xe2\xf6\x76\x27\x0e\x62\xb8\xc1\xa9\x08\x14\xf2\x79\x94\x2e\xdf\xb6\xff\xcf\x09\x7a\x0a\xef\xf1\x2a\xfe\x2b\xf4\x97\x8b\xd3\x14\x73\xf9\x79\xa5\x5c\x38\xde\x05\x28\x2a\x56\x1c\x19\x5f\xaa\xec\xe5\xb5\x71\xc6\xb5\x7f\xf5\x34\x21\xe1\x48\xdf\xf1\x01\x3e\xad\xeb\x39\x32\x6f\x8a\xa6\x21\x75\x8e\xbf\xcb\xa4\x38\x3e\x57\x7c\x57\xd7\x53\x6a\x7c\xae\x28\x50\xf4\xaf\x84\xd6\x56\x0c\xd4\xba\xcd\x3d\xcf\x28\x57\x18\x01\xd8\x95\x24\x64\x3e\x81\x72\xa8\x34\x8c\xb0\xac\x8b\x39\x0c\xa4\x8a\xba\x86\xf7\xc1\xba\x55\xa9\xe1\x48\x09\x71\x2a\xb6\x3e\x6f\xef\x17\xa9\x12\x34\xc5\x9a\x9e\x90\xf5\xf6\x24\xe7\xb7\x4e\x25\xa4\x85\xe9\xdb\x06\x1c\x7f\xaa\x64\x96\xe5\x1e\x29\x09\x5c\x82\xa9\xbb\x29\x29\x24\xce\x54\x94\xe0\x98\xba\x4e\x4a\xca\x44\xbb\xd5\x74\x2f\xde\xa6\x6f\x44\x81\xa1\x2e\xba\x58\xe6\x27\x08\x47\x0e\xa1\xd2\x81\xe8\x78\x78\xa1\xf3\x7b\x95\x56\x80\x8d\xda\x9e\xb9\x72\xad\x6b\x2c\x9e\x14\xed\x0f\x38\x34\xdb\x17\xce\x99\x82\xc0\x32\x83\xfe\xf3\x04\x35\x5e\x74\x34\xd3\x80\x4a\xec\xb7\xef\x00\x74\x9e\x8f\xf1\x7f\x03\x88\xe8\x20\x00\x3c\x5f\x8b\xf3\x68\xaa\xe8\x80\x73\xd9\xf5\xdc\x63\x52\xd2\x7f\x16\x4d\x02\x23\xb9\x4f\x28\xbf\xd8\x1d\x7a\xf8\x16\x34\xe1\x31\x76\x11\x42\xdd\xfc\x2c\xf3\xb7\x5d\x79\x75\xaa\xe6\x99\x17\xda\xb1\x12\xc9\x51\x7f\x64\x15\xdc\x96\xcb\xa9\xfe\xfb\xf8\x65\x68\x62\x94\x31\x1d\x32\xfe\x01\x3e\xae\x5a\xcf\xc4\xbf\x67\x1d\x06\x44\xf4\x6c\xd8\x0f\xa5\x46\xd2\xdd\x0b\xc1\x7b\x37\x3a\x8a\xa1\xab\xb3\x96\x87\x63\x03\xfb\x2e\xb5\xa4\x23\x41\xb1\x50\x7d\x3c\xe5\x39\x76\xe8\xb6\x17\xea\x90\xae\xa6\x01\x14\x14\x75\x83\x63\xce\x30\xe8\x5e\x2d\x36\x77\x7f\x5e\xad\x37\xd7\x16\xbb\xb0\xbf\x7f\xbe\xdb\xad\x9f\xee\xd6\xab\x4d\x37\x32\x05\xbf\x00\xbb\xbb\x42\xc4\xf5\xe4\xd6\x62\x11\x20\x9c\xee\x15\xaa\x72\x8a\x84\xd4\x31\x80\xe7\x34\xc1\xc0\x73\xf5\xd9\xbd\x80\x84\x18\xcc\x3b\xdd\x66\xa6\x99\x41\xef\xea\x24\x0a\x50\xb7\xcb\x8a\x8f\x1f\x5c\xb6\xd9\x1f\xa4\x96\xcf\xb5\xf1\xb9\xe5\x5d\x36\x38\x08\x06\x73\x66\xcb\xc5\xce\x29\x7e\x7c\x0f\x25\xd6\x89\xd1\xd8\x45\x81\xfa\xe5\xfe\x2a\x3c\x96\x6c\x48\x3f\xdc\xce\x56\xcb\x6a\x31\x3f\x3d\x79\x6c\x54\xe4\x59\xe8\x7b\x41\x1c\xae\x39\x27\x98\x3e\x01\x9b\x11\x73\x27\x8f\xcf\x85\x20\x49\xbc\xaf\xe1\x22\x55\x5b\x9e\x9d\x00\x21\x75\x9a\xc4\xa9\xcb\xab\xff\xc8\x5e\x5e\xa1\xb6\xd9\x49\x7c\xb9\x8b\x89\x2f\xa0\xd3\xc4\x20\x50\x1e\x21\x5b\xb3\x1d\xa9\x3a\x4d\x03\x0c\xbe\x50\x2e\x6c\x0b\x79\xde\x06\x36\x56\xf1\xd0\xdf\x7f\x2a\x78\x2a\x9c\xbe\x41\x26\xf2\xf5\xf2\xb1\x6f\x3b\xd0\x29\x70\x11\x39\x68\xfc\x0d\xc0\xda\x4c\x5b\x34\xb4\xa0\x1c\x97\xed\xde\x40\xa3\x5e\x2d\x96\x51\xdb\x8a\xde\x4d\x59\x3d\x5d\x36\x9f\x6a\x21\x19\xb7\x14\xde\x4f\x8b\x2d\x6a\xf8\x8e\x02\x51\x2d\x09\x8f\x3a\x19\x2a\x9b\xcd\x5d\x14\xfa\xd6\xf7\xeb\xf9\x51\x61\xdc\xe9\xb2\x96\x87\xe3\x40\xf4\xcd\x0d\x50\x3c\x44\xef\xf5\x54\xb4\xb6\x75\xd4\x4c\xaa\x75\xc0\x1c\x99\x6b\x23\xf2\xab\x01\x6a\x47\x6b\x30\x62\x18\xd4\x3d\x08\xf5\x00\x8d\xd9\x4c\x8c\xaf\x36\x11\x20\x40\x06\x75\xd9\xbf\xf2\xcb\x47\x9f\xc2\x30\xdb\x43\x69\x89\x60\xae\xb3\x0a\x2e\x5b\xd1\xfc\x50\x6e\x79\xa8\x90\xf5\x49\xfa\x5b\x33\x69\x8a\x29\x04\x44\xa8\x6e\xdf\xb2\x3c\xaf\xb7\x5f\xf3\xb3\x8d\x2f\x09\x41\xa8\x30\x1b\x6f\xa7\xef\x52\x4c\x04\xab\x38\x04\xb1\xc1\x6c\xa1\xd3\xc2\xf5\xd5\xc0\x01\x37\x06\x90\x34\x40\x4f\x75\x03\xef\xe5\x1b\xcc\x55\xd3\x81\xc8\x04\xeb\xa8\x8b\xf5\xf2\x2b\x8a\x1b\x0e\x51\xc4\x10\xcf\x06\xfa\xb4\xf4\x0a\x6f\x5f\x84\x14\x10\x09\x8a\xc1\xd8\x18\x7b\x56\xf7\x53\x14\x62\x2e\xd0\xd0\x3c\x89\x13\xde\x79\x67\xb8\xd7\x87\x63\xfe\x5c\x1c\xad\x64\xcb\x57\x7b\xd0\xf8\xf6\xe3\x94\x4a\xdb\x8d\x74\x51\xcc\x82\xd8\x55\xd2\x8e\xd8\x94\xd8\xad\x1f\x48\x92\x08\x23\x7d\x0d\xaa\x3a\x1f\x1b\x37\x97\xff\x0a\xe9\xbf\x5c\x4e\xaf\x4b\x31\x43\xc2\x62\xc7\x2b\xd8\x3c\xbe\xcc\x18\x45\x48\x20\xc4\x44\xcf\xbf\x4b\x39\x88\xbd\xfb\x7b\x48\x20\x16\x03\xe2\x52\xdb\x80\xf3\xad\xf1\x03\x0a\x0c\x73\x80\xe8\x43\x14\x67\x34\xf1\x17\x00\x6c\xa0\x00\x58\xd1\x7e\x99\x12\x8f\xfa\xe3\x26\xd5\xee\xce\xf7\x47\xe7\xd8\x77\x18\xbf\xc9\xf7\x9b\xaf\x09\x8f\xbe\x2a\x0b\x34\x86\x70\xa7\x02\x1d\x1f\xd7\x71\x57\x0f\x19\x7a\xdc\x48\x4e\x6c\x9d\xf4\x16\x0a\xb8\xda\x79\x10\x0c\x70\x43\x99\xf5\xa0\x3f\xaf\x7b\xa3\x00\x29\x89\x52\x0f\x9b\x5b\x3e\xa2\xbd\x10\xcd\x75\x99\xe7\x13\xed\x33\x0e\xa9\x0c\x51\xfd\xfc\xdd\x56\x43\xb7\x90\x83\x42\x2a\x97\xd9\x84\x0b\x08\x9e\x24\x7d\xbd\x75\x84\xc6\x02\x01\x46\x5b\x58\x5b\x23\xf2\x01\x45\x5e\xf7\x72\x55\x6a\x30\xff\xd6\xcd\x4c\x5c\x55\x13\xd2\xf8\xff\x0d\x59\x02\x4a\x31\xab\x8b\x2f\x85\xf2\x37\xa0\x89\x04\xe4\x93\x69\x6a\xff\x4d\x7c\x87\x1a\x00\x04\x91\xc5\x99\x2b\xab\x1e\x3c\xfa\x0e\x26\x96\x88\xf5\x7e\x5a\x6d\xee\xd7\xdb\xed\xfa\xf1\xe1\x7e\xf1\xb0\xb8\x5d\x6d\xf6\xff\x58\x79\xf4\x37\x18\x6a\x29\xd6\x5a\x7b\xbc\xab\x4e\xf5\xa0\xb9\xc5\x04\x61\x82\x3b\xdb\xf5\x1f\x37\xfb\x91\xc7\x6c\x82\x88\x62\x7d\x15\xdd\x5e\x5b\x95\x6f\xb7\xdf\xa7\x2e\xbd\x60\x02\xca\x11\x00\xb7\x5c\xed\x7e\x99\x5a\x30\xad\xc1\x56\xb6\x48\x91\x1d\x4e\x87\xbd\xb5\xa2\x83\x88\xdd\x04\x3a\x12\x2e\xb9\x8c\x1c\x45\xbe\x55\x6f\xf4\x21\x4d\x00\x16\xdc\x59\x43\x6e\x09\xcf\x5c\x4b\x4d\xf7\x86\x4d\x00\x12\x5b\x95\xda\xf5\xdc\xc6\x25\xcb\x76\x77\xad\x27\x08\x9e\xbf\x4d\xce\x31\x12\xbd\x6a\x54\x9e\x1d\x7a\xc5\x86\xb8\xea\x80\x18\x02\x77\xfd\x7c\x35\xa1\x14\xb8\x47\x49\x68\xf6\x1f\x5d\x24\x62\x42\x6d\x5b\x18\xb2\xda\x36\x9a\x76\xa0\x86\xcd\x09\x53\x45\x7e\x5c\x1c\x51\xdd\xa9\x61\xba\x5e\x85\xc1\xe1\x84\x52\x24\x20\x3c\x94\x1a\xf2\xbd\x50\xea\x54\x09\x75\xde\xab\x2a\x6b\xa0\xca\x44\x37\x4c\x4a\xcc\x81\x5a\x07\xa0\x81\x01\xf2\xdc\x24\x8a\xe2\xee\x5e\x8b\x77\x78\x82\xe3\x64\x17\x34\x34\x89\xb0\x7a\xeb\xab\x93\xc3\xed\xc2\x50\x95\x62\x47\x05\x54\xaa\x57\x29\xed\x0e\x3a\xed\x19\xf7\x3d\x9d\x00\xd5\xf3\xf6\xba\x1f\xc0\x63\xdd\x03\x24\xa6\x44\x4d\x86\x1a\x82\xe0\x4c\x9b\xbb\xbf\x75\xbc\xbd\xf7\xd0\xbc\x76\x7d\x8b\x86\x41\x18\x71\xcf\x4d\xde\xda\xbd\x9b\xb2\xba\x15\xd3\x96\x1b\xc3\x0c\xc7\x92\xdb\x7a\xf9\xb8\xc7\x57\xb9\x37\x27\x94\xfc\x18\x0f\xe3\xdc\xde\x91\x2c\x9b\x6f\x13\x2f\x86\xbb\xe8\xf9\xae\x7c\xb9\x3a\x9d\x6f\xca\xca\x13\x45\x7d\x51\x20\xf4\xa7\x29\xaa\x3d\xd5\x5a\x6b\xb2\x64\x59\x89\xa9\xaa\x04\x37\x1c\x42\xe1\x59\x91\x6f\x44\x96\xaf\xcd\x06\xde\xa1\xea\x5a\xed\x4c\x1a\x32\x9f\xf6\xb9\x13\xc5\xcb\x69\xf0\xce\xd2\x50\xa2\x95\xbf\xcf\x0a\xfd\xab\x36\x4c\x93\x72\xca\xc1\x43\x3c\x5a\x37\xc9\xae\x80\x01\x95\xa9\x1b\x28\x48\x2c\x83\xde\x73\xf0\x5f\xfa\xd9\xb5\xe5\x65\x68\x76\xfc\xd8\xd0\x28\x3a\x02\x3c\x5e\xc3\xbb\xd3\x92\xf2\x43\x12\x8a\xdd\x0c\xba\xa8\x6d\x12\xf1\xa2\x81\xf8\x34\x08\xfa\x8d\xa0\x40\x5c\x1c\x73\x27\x6a\x27\x23\x3f\xec\xab\x9a\x2c\xd5\x76\x17\x75\xc2\x79\x27\x98\x14\xc1\x8d\x50\x01\xef\x3c\x6a\x47\xec\x7d\x0d\xff\x0f\x69\x6f\xd2\xdd\x38\x8e\xe5\x8b\x7f\x97\xb7\xca\x45\x2d\x38\x81\x04\xfe\x3b\x59\x96\x23\xf4\xd2\x53\x59\x8a\x8c\xcc\xee\xd3\x47\xe7\x02\xb8\xb0\x59\xa6\x48\x15\x49\x39\xec\xfa\xf4\xff\xc3\x0b\x80\x93\xe8\x88\xec\xf3\x7a\xd1\x19\x65\x42\x14\x45\x82\xc0\x1d\x7e\xc3\xf1\x5c\x13\xe5\x65\x76\x22\x93\xd2\x04\x24\x23\xf5\x95\x35\x6d\xf0\xe7\x51\x21\x44\x16\x54\x03\xc5\xc5\x0f\x54\xb1\x55\x6f\xe9\x62\xea\x39\x03\xc4\x28\x08\x8c\x8d\x4c\x9f\x5a\x35\xfb\x46\x1d\x06\x8e\x77\x76\x7c\xc4\x7a\xe4\x84\xc9\x8d\x96\x11\x05\x27\xf4\xc7\x5f\xaf\xa6\xda\x08\x02\x59\x1d\x48\x87\xeb\x2e\x2f\xdb\x7b\x7c\xb7\x69\xda\xbc\x64\x6b\x30\x89\x95\x9b\x07\xb6\x0e\x6a\xa5\xe6\xcf\x97\x40\x1e\x83\x2c\xa1\x44\xeb\xf1\x69\x73\x20\xe0\x7c\xc8\x0e\x96\x0b\x73\xd7\x43\xf2\x0d\x6a\x60\xe1\x60\x3d\x67\xc9\xaf\xfd\xef\x37\x10\xdb\xf2\x22\x1c\xd1\xd9\x78\x34\x55\x71\x9e\x34\x2c\x3e\xa9\xbd\xcd\x1e\xb4\x01\xa1\x9d\xf0\xc3\x1a\x4a\x4d\xa8\xda\xf1\xee\x27\x82\x30\x14\x1e\x1b\xf5\x50\xa2\x2b\x74\x3d\xe1\xf4\xb6\x13\x41\x88\x56\xd9\xd3\x73\xe5\x4d\x45\x9d\x45\xd9\xb8\x79\x21\x82\xee\x35\xb0\xbc\x7e\x6b\x8f\x39\x6e\x3b\x88\x20\x74\xa2\xf2\x35\x9a\x1a\x9b\x97\xc1\x3d\x78\xea\xc2\x2b\x82\x10\x80\x56\x8f\x55\xee\xc4\x77\x8f\xf0\x6e\x4d\xe8\x47\x29\x8c\x08\x42\x85\xc4\x41\x32\x63\xff\x78\x97\xb4\x94\xa4\xd1\x98\xf8\xa1\x71\x60\x3b\x34\x96\x4a\x7b\x93\x37\x2f\x8b\xdb\x58\x37\x30\xf3\xe2\xcf\x94\x71\xee\x11\xa6\xf1\x98\x08\xe2\x54\x26\xb1\x5d\x42\x46\x62\xf1\x3f\x0d\x5a\x44\x10\x67\x89\xd5\x7b\xd8\xac\xee\xec\x84\xf0\x97\x96\x28\x45\xb2\x90\x3e\xdd\xa2\xf9\xeb\xf7\xda\xe9\x49\x12\x64\x44\x89\xdd\x3f\xdd\x85\x94\xb2\x39\xb1\x37\x77\x98\x31\xcb\xbd\x3a\xc2\xeb\x50\x66\xfb\xbd\x54\xbb\x16\x5e\x71\xf6\x23\x98\xb0\xc0\xdb\x0b\x6f\xf3\xe9\x37\x32\x93\x50\x41\xe8\xfa\xdb\xc3\xed\xf6\xfe\xcb\xc3\xf2\x2b\x35\xfb\x50\x1a\x26\xa1\x2b\xe5\x74\x31\xc6\xb1\x2a\xf1\x63\xf6\x4b\x52\x63\x13\xdc\x1a\xbd\x4c\xc0\xee\x47\xee\xc1\xda\xff\x98\x5e\x6a\x96\x1a\xef\x25\x7f\x95\x6b\xe2\xc8\xf6\x2d\x2f\x11\x70\x13\x11\x68\xe7\x06\xce\x6a\x59\xb8\x4a\x04\x22\x52\xd4\xae\x2f\xcf\xc7\xf5\x4b\x45\x50\x27\x7f\x44\x5b\xbe\x9c\xad\x51\x59\x33\x88\xa5\x82\xbc\x08\x3c\xdf\xfd\x38\x42\x31\x4c\xbf\x05\x12\x50\x4e\x8c\x66\xd7\xd6\x67\xd5\x86\xd3\x77\x0d\xd2\x24\x72\xc2\x46\x8f\xf0\xa1\xe1\xa3\xc7\xd6\x6e\x07\x52\x0b\xef\x07\x0b\x5a\xa3\xed\xd5\xbc\xe1\x86\x9c\xda\x16\x11\xa7\xe7\x11\x7f\xe7\x1f\xd3\x6f\xe4\x88\xae\x9f\xdd\x7d\xc1\xb6\xfc\xcb\x3b\x20\x87\xfe\x67\x01\x72\x9e\xf9\xe5\xde\xd7\x92\x2e\xba\xdd\x7d\x17\x5f\x04\x92\x61\x1a\x8d\xb0\x23\xcd\x9c\x71\x3e\xbd\x29\x3a\x56\x1a\x7c\x99\x61\xd2\xfc\xb9\xfa\x58\x2c\x2b\x8a\x00\x83\x94\x70\x0d\xb9\xaa\xbc\xc1\x99\x9e\x3d\x0c\x0c\x04\xba\x5b\x3d\x36\x0e\xf0\x47\x53\x06\xee\x05\xad\xea\xc7\x3a\xff\x0f\x3a\x80\xdf\xd2\xab\xea\x6f\x38\xca\x48\x0a\x5f\xe6\xe9\x96\xe3\x7d\xd5\x6d\x08\xeb\x0f\x75\x09\x37\x77\x1f\x31\xdc\x8a\x06\xd6\x68\xe9\xb5\x57\x1f\xb3\x1f\x6f\x94\xb1\x7c\x00\xef\xa9\x40\x64\x9c\xa5\x27\x65\xb4\xc8\x9c\xbe\x68\xf7\xea\x16\xd0\x8c\x1c\xe5\xba\xc3\x26\x0a\x7c\x3d\x48\xce\x90\x15\x22\x0c\xa3\x30\x09\xfa\xd4\xec\xa7\x7c\x32\x11\x46\x81\xc5\x0f\x5a\xe4\x16\x45\xba\x4b\x09\x5f\x37\xd0\xa4\x7a\x80\x79\x1e\xe4\xc7\x61\x52\xa3\x14\x61\xac\x92\xd8\x5c\xba\x70\x1c\xfe\x95\xa3\xce\x61\x56\x19\x11\x61\x8c\x92\x04\xba\x0e\xd4\x8c\x3f\x50\x65\xf3\xb0\x5d\x3f\x44\xfe\x7c\x49\xc4\xe9\xc9\x17\xd5\xf3\x4d\x55\x14\xd5\x0f\x32\x24\xee\xde\xf8\xfd\xfb\x6f\xd3\x8b\x4b\x32\x8c\x22\xcf\xf3\x20\x44\x95\x0d\xbc\x87\x95\x21\x64\x19\x0b\xf9\xa0\x1c\xb3\x6b\x6b\xb4\x74\xa8\xbf\x23\x1f\xe3\xce\x91\x85\x9a\xde\x7a\x5f\x22\x5d\x3b\xab\xc4\x87\x72\x45\x8e\xbd\xab\x2e\x7e\xe9\x53\x9a\xd9\x7c\xbe\x68\x52\x89\x90\x73\x9e\xf1\x1e\x73\x79\xac\x6a\xed\x55\xa7\x97\xe1\x5e\x22\xe4\x2a\x20\x1f\x9a\x86\xb6\xbe\x9b\x33\x4e\x3b\x7d\x22\x84\x30\xf0\x5d\x8e\xf5\xc8\x43\xce\x1f\x8d\x05\x58\xbd\xb7\x37\x27\xdd\x3c\xf4\x7b\x44\x08\x80\x24\x97\x7b\x9f\xbf\xe4\xc5\x52\x38\x7c\x9e\x73\x03\x45\x08\x52\x3b\x93\x4b\x2b\x81\xbe\xf6\xc8\x59\x11\xca\x08\x7d\xf3\xdb\x39\x53\x4e\x2f\x46\xaa\x98\xf8\xd7\x25\xbe\x7b\xd0\x7f\x37\xcb\xab\xd1\x19\x90\x67\x4e\x5a\x96\x5a\xe3\xe3\x46\xc1\x40\x45\x71\x83\x55\x2c\xbc\xbf\xc5\xa6\xc4\xfa\xf9\x83\xd0\x4d\xd3\xaf\x54\x28\xf8\xe0\xa8\x48\x45\xd9\xfe\x7c\xf1\x05\x04\xb2\x1b\xaf\x88\xaf\x91\x97\xf8\xe4\x11\x90\xfe\x90\x41\x6a\x0f\xdf\x54\x55\x23\xc1\xeb\x9a\x8a\x50\xa7\x8a\x42\xbe\x2e\x79\xb4\xaf\xc1\x55\x4f\x7b\x9b\x5e\xb0\x16\x82\xa4\x93\x7f\x0c\xdd\x06\x07\xbc\x5b\x56\x3f\x12\x21\x6a\xae\xfc\xae\xe3\x22\xae\xd9\x39\x11\x03\x5f\x96\xea\xed\xde\xa6\x23\x0c\x63\xc2\x32\xaa\x6f\xcf\x25\x8c\x1f\xbf\x01\x2b\x2d\xf7\x7f\xab\xe6\x65\x9a\x9d\x8a\xd0\x48\xeb\xfd\x7a\x57\x95\xd8\x56\x3b\xf8\x44\xf6\x48\x84\x46\x71\xba\x63\xf3\x6f\x5f\x44\x28\x89\x28\x88\x6d\xaf\xff\x19\xdb\x1b\x7a\xc3\xa7\x0f\x2c\x0a\x83\x40\x59\x09\x15\x9f\x4b\x88\x28\x94\x90\xe9\xbe\x56\x4d\xe8\x24\x59\x41\x2f\x0a\x2e\xa2\x28\xcc\xc8\xb9\xf3\xe0\xc3\x99\x55\xa9\xc7\x05\xde\x9f\x78\xbf\x88\x28\x62\x19\xc5\x73\x07\x52\x24\x6a\x5d\x13\xeb\x33\x7b\xaa\x61\x81\x89\x22\x26\x28\x51\x59\xfd\xb1\xda\xde\xae\xae\x6e\x37\x0e\x72\x69\x85\xc6\xfc\xb5\xc5\x28\xc1\x16\xe1\x65\x5e\x6a\x8a\xee\xf0\x7c\x5c\x14\xab\xf3\xab\x5b\x14\x1b\xe5\xf5\x7c\x89\x14\xb5\xb0\x34\x45\x49\x80\xb1\x5b\x01\xe9\xa4\x84\x4c\xbd\xa9\x6a\x0b\x7f\x9c\xde\xd4\x44\xc7\xde\xa1\xf5\xae\xdb\x22\xea\xfe\xce\x25\xd8\x5b\x1d\x76\x99\xab\xe5\xa5\x8e\xd5\x5b\x44\xc4\x02\xcb\x9b\x3c\x59\xc5\xaf\xc1\x54\x6e\xfa\x60\x59\xc4\x28\xe1\xb3\x56\xe6\x0e\x61\xe5\xa4\xf5\x7e\x92\xf4\x8b\x88\x69\x4b\x5e\xb9\x50\x9d\x9d\x9e\x3f\xe5\xd6\xe8\xc2\x5d\xe9\x54\x61\xc5\x8d\xc9\x4c\x42\x6c\x00\xba\x21\x3f\xbc\xb9\xb3\x88\x78\x96\x7a\xf4\xe0\x9f\xdd\x27\x96\x23\x8f\x48\xc4\x48\xd2\x04\x7d\xff\x76\x87\xd0\x54\xa5\x4d\x54\x46\xf4\x2e\xee\xc7\xb3\xc0\x2b\xcc\xe7\x94\x79\x2c\xaf\xe1\x91\xe0\xd6\x51\x04\x9a\xd7\x9b\xaa\x5e\xdd\x56\x70\xd1\x17\x98\x7d\x02\xc0\x50\x41\xc1\x96\xee\x0f\xa1\xff\x21\x20\x63\x2a\x29\x6e\x7c\x32\x29\x22\x15\x07\xde\x1d\xe2\x2a\x9f\x48\xeb\xf5\x03\x9c\xb6\x53\xb7\x41\x8e\x1b\x5f\x22\x52\x10\xd1\x8b\x85\x9a\x8c\x07\x2f\x08\x78\x22\xd2\x2c\x26\x3c\xbb\x43\xb6\x55\x67\xd2\xcb\x28\xdb\x3d\xbc\xaf\x8e\x63\x07\x49\x11\xe9\x14\xe8\x57\xba\x07\xb4\x3a\xb7\x2f\x58\xb6\xf9\x58\x05\x4c\x44\xa8\xd2\xd4\x12\xae\xa9\x6f\x3b\xa3\x6a\x8b\xc8\x04\x56\xd9\xd7\x22\x1e\x2d\x9f\xfb\xa7\xb0\x1d\xfa\x88\x1c\x13\xb5\x6f\x48\x60\xe8\xa1\xd0\x36\x81\xf3\x2b\xc2\xa8\x60\x2d\x22\xa3\x0c\xed\xaa\x64\xe5\x41\x15\x96\x65\x0d\x39\xb7\x08\x8c\xb2\xd8\x38\x0a\x59\xe6\xd8\x59\x9b\x77\x55\x9c\x47\x4a\xaf\x7e\x44\x12\x52\x5e\x6a\x95\x2f\x1f\xce\xad\x7f\x7c\x71\x84\x3a\xd0\xe3\x0d\xe0\xc9\xda\x5b\x4c\x3f\x9f\x26\x49\xd2\x3d\xd1\xc7\x87\xef\x5f\xe3\xd8\x7f\x36\x55\x51\x60\x53\x95\xdb\x0a\xf4\x9f\x5e\x27\x44\xc4\x99\x8a\x2c\x30\xe3\xdc\xbe\x54\x75\xde\xe0\x48\x95\xdd\x0f\x31\x21\xe1\x34\xf7\xb9\x46\xa7\xe3\x3a\xfb\x4e\x11\x24\x54\xdd\xbf\xc6\x37\x2b\x3b\x49\x89\xf2\xf2\xab\x18\x8b\x38\x61\x9e\x1b\x76\x76\xac\xfd\xf3\x00\xde\xf6\xcb\x58\x2c\x52\x08\x1d\x6c\x81\xa2\xb3\xc1\xae\x59\xc4\x90\x65\x24\x72\x08\xbe\x9b\x7a\x38\xcd\x0a\x9c\x22\x96\x21\xd0\xce\x7a\x70\x11\x76\xbd\x87\xa1\x37\x3d\x2c\xc4\xb1\x64\x31\xcd\x70\xda\x1f\x5c\x1d\x75\x52\x2a\x88\x55\x18\xf1\xee\xbd\xf9\x2b\x5a\xaf\x76\x5f\xfd\x5f\x75\xa6\x08\x1a\xf1\xef\x73\xae\x5e\xd7\x93\xc5\xe7\x13\x5e\x9c\x88\x35\x6a\x42\xc5\x3d\xbe\xe4\x05\x94\xed\x4b\x5d\x9d\x3e\x96\x32\xb2\xbf\xdb\xcf\x10\x31\x06\x31\x5d\x9b\x33\xd9\xa5\xc4\x3e\x99\x4c\xd7\x18\x23\x49\xad\x9a\xbf\xae\xfe\xd9\xff\x29\x09\x92\x64\x44\x06\xb5\xc9\xd8\xd5\xc7\xed\x48\x3c\xbc\x7f\x10\xc8\x33\x2b\x62\xd6\xc5\x88\xa5\xc2\xe2\x13\x05\x34\x11\x1b\xcd\xa8\xb9\x52\xd5\xcf\x50\xe6\xff\xc1\x9a\xb9\x2f\x4c\x02\x96\xd2\x32\xdd\x45\x92\xdb\x2b\xc4\xf2\x1e\xce\xcf\x2f\xed\x2c\xda\x48\x02\x26\xa2\xb8\xd7\x5a\x9c\xd3\x97\xba\xe3\x26\xb1\x36\xa6\xcd\xcb\xbe\xba\xc9\x8b\x71\x52\xe4\xc7\xe8\xc0\x96\xcd\xbb\x65\xfc\x70\x1a\x99\x9c\x8b\x24\x4c\x94\xf2\xe7\xaf\x1a\x5a\xb6\x9a\x95\x17\xad\x5b\xcf\xc0\x82\x22\x09\x25\x52\xb8\xe1\xf9\x34\x23\xbf\xb8\x85\x2d\x3d\x09\x15\xd7\xe9\x14\xc1\x43\xed\x86\x4d\x97\xb8\xf6\x65\x83\x24\x34\x26\xf2\x0c\x78\x38\x9e\x20\x7f\x2e\x37\x65\xb7\xf6\x5a\x50\xf9\x64\x33\x4f\x22\x69\x08\xdb\xac\xaf\xf1\x54\x54\xa4\xd9\x4c\x6d\xdc\x59\xa0\xb1\x58\xe2\x75\xdc\x5f\x91\x44\x1a\xe9\x09\xda\x38\x76\x87\xed\xf9\x92\x0e\x31\x0b\x1e\x93\x38\xb0\x91\xfa\xee\x05\xe4\xd9\x5f\x7a\xcc\x19\xe5\xa4\xba\x2a\x89\xde\x5b\x39\x35\xab\xd9\x7d\x8b\x79\x46\x60\x7a\x22\xbd\x5c\x9d\x3f\x28\x72\x76\xd0\x86\xc9\x0d\xec\xdf\x79\x9b\x2b\xf4\x7e\xa2\x16\x96\x16\xf8\xd3\xa9\xc8\xd3\x5e\x6d\x05\x75\x1a\x18\xb8\x51\x09\x4b\x28\xe6\xfc\xaf\x13\xd6\x77\x90\x97\x93\xa8\xf3\xa7\x2f\x51\x92\x98\x90\x80\x6f\x4e\x05\xf1\x7c\xe9\x7f\x36\x35\x59\xf5\x67\x70\xfc\x8c\xe9\x41\xf7\xc7\xe1\xec\x2c\x0c\x28\x7e\xea\xe9\x59\x12\x74\xbf\x4c\x25\x2c\xd3\xc2\xa2\x5d\xa1\x4b\x46\x6d\x51\xbf\x6f\xcf\x8b\x84\x29\x46\x53\x96\x96\xa7\x6d\xdf\xb5\x6b\x66\xb7\x9c\x19\x41\xc5\xd3\x13\xd4\x6d\x89\x75\x33\x29\xad\x26\x69\x0a\x9c\xf7\xb4\x80\x9d\xaa\xf3\xd3\xc5\x19\x52\x9d\x49\xc7\x37\xbc\x43\x0d\x45\x43\x8d\x3b\x57\x3d\xf1\x25\x9f\x24\x8b\x62\x0f\xb0\xb1\xe4\x73\x57\x9b\x9f\x9e\x8b\xc7\x09\x21\x90\xab\x13\x96\x5f\xe0\x88\x4f\xb4\x3a\x2e\xdf\x7c\xae\x33\xea\x1e\xfd\x17\xb6\x2f\xf5\x15\x94\xaf\x75\xd5\xa7\x47\x89\x48\x2d\xa8\xad\xcd\x8f\x68\x09\xf8\x8e\xf6\xdd\xe5\x33\xfd\xcf\x13\x2a\x8d\x9d\x81\xce\xa2\xb7\xf3\x74\x07\x4a\x84\x89\xc1\x43\x70\x3f\x6e\xa1\xa1\x76\x11\xaa\xf6\x6b\x75\xae\x27\x4b\x5f\x02\x41\x8a\x5e\x08\xde\xd1\xc9\x46\xf1\x46\x02\x32\xb2\xa2\xb6\x55\x8d\x8f\x03\xe0\xe1\x62\xb6\x2d\x15\x3a\x13\x15\x5b\x4d\xb8\xd5\xf9\x3d\x2f\xf2\xf3\xd1\x9f\x54\x25\x29\x91\xe3\xec\xee\xfe\x04\xe5\xb2\xaa\xb0\x48\x54\x66\x53\xc7\x22\x3f\xe6\x2d\xea\xc7\x3a\xff\xc4\x1b\x5b\x24\x98\x21\x81\xb5\xf3\x86\xd4\xd8\x0d\x69\xef\x7e\xf8\xf6\xdb\x82\xbb\x9e\xfb\x9c\x41\xa0\xae\x31\x15\xf8\x5c\x89\xbc\xd4\xd5\x8f\x87\xde\xb7\x5f\xb0\x20\xb2\xcc\x99\x2f\x55\x45\x7d\xa3\x5f\x34\xc6\x04\x0b\x18\xeb\x05\x75\x09\x64\x7e\x45\xe9\xd8\xf6\x7a\xc4\x46\xe8\x46\x21\xd1\x51\x8f\xf0\xbe\x6c\x9a\xd3\xc5\xcf\x92\x7c\x9f\x65\x9a\x58\x0f\xf8\x71\x5d\x8b\x85\x81\xe1\xc2\xbf\x38\x76\x47\x74\x3e\xa9\x7e\x25\x66\xa1\x62\x84\xd9\x39\x74\xe9\xde\x4e\xbd\xa0\x3e\x17\x33\x0b\xd1\x6e\x90\x10\xde\xe9\xb2\x5b\x39\xd7\x4e\xa6\xb2\x3f\x89\x89\xa8\xcf\xa7\xe1\x63\x0c\x1d\xee\x0e\x00\x71\x1c\xac\x9d\xcb\x9f\xcb\x4f\x91\x45\x91\x21\x71\xfb\x6d\xe3\x7b\x59\x0e\x22\xd6\x7f\x41\x14\xa7\xa4\x4a\x72\x8d\xd7\x36\xc5\x5a\xf4\xbf\x15\x2c\x4a\x2c\xa7\xfd\x48\x86\x70\x84\x16\x18\x71\x2e\x04\x8b\xb8\xeb\xf8\x3a\x5e\xc5\x63\xb5\x9a\xe9\xaa\x0e\x15\xa7\xd1\xbf\x16\xdf\x21\x16\x19\x4b\x44\xb8\x5b\xfd\x75\x69\x80\x2c\x58\xcc\x62\xaa\x39\xee\x7f\x54\x7f\xba\x37\xb6\x3f\xc4\x43\xcb\xdf\x74\xd4\x6c\x3b\x0b\xa1\xb8\xfa\xb8\xc5\x67\x50\x9f\x1a\x5b\xf9\x8f\xeb\x80\x6b\x57\xd4\xb8\x22\xec\xe3\xf2\xdc\x65\x49\x16\x53\x05\xd2\x02\x4c\x77\x58\x14\x8f\xd5\xd4\x89\x58\xb0\x44\x18\xee\xb6\xe2\xeb\xd5\xc3\xac\x75\x27\x58\xa2\x22\x42\x83\x3e\x77\xfb\xc2\xec\x18\x0b\x50\x79\x54\x6d\x55\x76\xf7\xf3\x1a\x0d\x96\x0d\xed\x8a\xd7\xe5\x32\x61\x59\x30\x16\x6b\x5a\x32\x88\xeb\xb5\x7f\x59\xf4\x7b\x13\x8c\x09\x4d\x90\x18\x8b\xde\xf3\xfd\x1c\x77\x30\x0d\x84\x02\x97\x77\x8d\x8b\xe2\xbf\xda\xec\x66\x57\x92\x45\xa0\xbc\x91\xe7\xb9\x70\x4e\xbc\xd3\x21\x3c\xb0\xc8\x15\x7d\x59\xa5\xfc\x59\xef\x50\x30\x1e\x59\x2e\xf9\x1b\x6d\xd7\xe3\xd5\x82\xc7\x29\x61\xbc\x3d\xe2\x61\xbb\x7e\x98\x4d\x63\x6e\x0c\x4d\x63\xa7\x5d\x7e\x7d\xb6\xcc\xaf\x6d\xd9\x2d\xcf\xfd\xab\x2b\x62\x29\x78\x9f\x5a\xfe\x51\x7d\x22\xe0\x20\x58\x37\x11\xba\xb7\x70\xf7\xb0\xf6\x9f\x85\xd8\xb6\x2d\xba\x8d\xa6\x3a\xb7\x43\x0f\x79\x7a\x21\x52\x09\x18\xb2\x57\xa7\xdf\xf4\xf7\x22\x0a\x26\x8d\x26\xd8\x10\x59\x8f\xad\xb4\xb6\xe1\xda\xc3\xa9\xef\xc3\xf6\x4c\x08\xf7\x01\x15\xdb\x5d\x90\x50\xa0\xfe\x42\x55\xa2\xd3\x68\x54\x40\x9e\x2c\x2f\x8a\xc5\xb1\xf0\xa0\x58\xda\x64\xf1\x39\xc7\x66\x6e\x41\x2d\x98\x0e\x42\x4f\xea\xf1\x72\xa7\x84\xe1\x77\xd9\xfc\x92\x8a\xa0\x60\x9a\xf1\x60\x6c\x69\xb3\x81\xba\x9c\x58\x58\x8d\x96\x6a\xcd\x99\xe6\x13\x22\xdf\x45\xab\x79\xbc\x30\x6b\xa1\x08\x71\xf0\xad\x54\x45\x05\xaf\xfe\xf7\x18\x93\x69\xab\x24\x79\x8d\xdd\xbb\x70\x35\xa2\x34\xbb\x31\x69\x90\x44\xf4\x9b\x8f\x5e\xd1\x8b\x98\x11\x3b\xec\xdb\x37\xa9\xb7\xf5\xfc\x0a\xa7\xd3\x07\x55\x72\x72\xf5\xb5\x3a\x0e\x67\xe0\x9c\x90\xe2\x6f\xa4\xdd\x39\xbe\xa1\x69\x18\x19\x8b\x75\x3f\xe6\x83\xb4\xf1\x7a\xb1\xaa\x34\xad\xb8\xa5\x21\x33\x24\xc2\x7e\x2a\xc0\xe7\xb4\xfd\x49\x51\x50\x04\x41\xb8\x18\xef\x5b\xe9\x0f\x46\xcc\x80\x5d\x44\xef\xbf\xae\xf6\xfb\xd5\xfd\xe3\xd3\xc3\x9f\x7f\xc5\x4f\xd7\x5e\xca\x42\xa4\x11\x64\xda\x21\xf2\x0e\xf2\x5c\xcf\x55\x85\x44\x1a\xa7\x56\xe1\xc9\xc1\xb5\x48\x17\x66\xaa\x2e\x2a\xd2\x44\x4a\xea\x35\xa9\xaa\x34\xf9\xf3\xb9\x46\x4b\x5f\x9e\xc4\xae\xfd\x50\xa4\x49\x4f\x5d\x11\x0b\x54\x9d\x4e\xa7\x94\x89\x44\xc7\xae\x0e\xef\xf2\xc5\xfd\xfe\xce\x61\x1f\x3c\xec\x5e\xa4\xac\xcb\x74\x9c\x90\x47\x35\x63\xa3\x88\x94\x21\x53\xce\xcc\xcc\xf6\xa2\xe7\x15\xcd\x7e\x76\xa5\x29\x4b\x10\x47\xcd\xe6\x1a\xf5\xa5\xd2\xbe\x48\xb3\x50\xf3\xa1\x7d\xa0\xed\x53\x98\x17\xd1\xbb\x51\x04\x6a\x40\xe2\xb6\x58\x24\xc6\x6c\x84\x89\x31\x73\xb3\xe0\xb1\xae\xfe\x85\xaa\xf5\x99\xcb\x27\x6b\x9f\xfb\x20\x8f\x03\xaa\x94\x9f\x8a\x73\x5b\x51\x51\xcf\xdf\x0a\x2e\x44\x28\xfd\xed\xaf\x8f\xc3\x64\xe5\x42\x07\xbd\xb0\xb6\xe5\x0b\xdf\xe0\x78\x1f\x4d\x39\xe8\x00\x9d\x67\x69\xeb\xd5\x94\x67\xdf\x2b\x05\x01\xf1\x07\x61\x50\x47\xff\x18\xaf\x2f\xa9\x48\x6c\x2f\x40\xbd\xa0\xf9\xa4\xc3\x90\x0a\x96\x59\xc8\x18\x89\x32\xa0\x65\x56\xf9\x2b\x11\xc6\x76\x8a\xfe\xf9\x6d\xfb\xfb\xef\x0f\xc3\x5f\xad\x73\x89\xb2\x11\xf4\x5c\xb7\x5e\xa4\x90\x08\x5a\xa7\xaf\x37\x37\x4f\x0f\xbb\xfd\xe1\x66\xb5\xde\x3f\x3c\xf9\x8f\x03\x03\xcb\x38\xfa\x31\xdc\x2d\x30\x01\x59\xc7\x10\xd0\x73\x5c\x87\x49\x65\xc8\x23\x12\x58\xbf\x7d\xb8\x5a\xdd\x6e\xf6\x5f\x37\xfd\x89\x64\xa4\x55\xdf\xc7\x2a\x8a\x71\xdc\x93\xca\x18\x3c\xc9\xe5\xba\x7d\xd9\xbd\x54\xa7\xd9\xef\x56\x31\x7a\xcd\x19\x1b\x90\x76\xb3\x71\x7a\xfb\x54\x82\xc4\x33\xea\x9d\x71\x3f\x37\x53\xf1\x9f\x48\xa5\x71\xc0\x03\xe7\xce\x33\x16\x03\x1a\xa6\xb7\xc2\x8c\x20\xc9\x16\x66\x3f\xfd\x56\x93\x30\xda\xa2\x37\xfb\xaf\xfb\x39\xd4\x62\xf9\x5b\x0d\xb7\xce\x55\xae\xed\x3a\x09\x77\x53\x23\x05\xed\xca\xad\xa7\x1e\xad\xdc\x91\x2c\x80\x68\x50\xb4\x2e\xa1\xb0\x92\x3f\x4f\xd0\xf7\x8a\x93\x4f\xbd\x36\x45\x16\xa0\x49\x7b\xb2\x89\x8f\x4d\xaf\x49\x31\xc0\xcf\x9e\x2c\xe4\x9a\x85\x23\x72\xbc\xc1\x9a\x18\xe9\xf2\x63\x55\xd7\xb3\x12\x68\x16\xaa\x28\xd6\x23\x6c\x23\x5e\xf8\x4c\x8a\x2c\x62\x40\x3f\x94\xd4\x81\x0f\xbb\xfd\xea\x89\xf5\x87\x52\x45\x0e\x38\x43\xbe\x6d\xc3\x44\x7f\x18\x12\xba\x94\xe6\xdf\x75\x3b\xc9\xf6\xb2\x18\x23\x7a\x93\x08\x1a\x98\xf7\x53\x3f\x4b\x02\x43\x9d\xae\xdd\x0f\x38\xd1\x5a\x30\x0e\xb6\x3e\x8b\x07\xa6\x3f\x29\x89\x55\xca\x87\xf9\xe9\x20\x05\x93\x55\x3a\x4b\x52\xa0\x16\x21\xa9\x4b\x57\xe7\x05\x07\xdf\x9f\x07\x1d\x59\x82\xb6\x4e\xf2\xf5\xf7\xed\xfd\xcf\x32\xb0\x8c\x05\xa1\xc5\x38\x40\xf9\xed\xad\xd9\x77\x8b\x78\xf9\x02\x3e\x03\xcd\x18\xb7\xee\xd7\x7d\x43\xec\xea\x83\x9c\x4f\x26\x86\x39\x9f\xa4\xd8\xd3\x26\xd9\x78\xdf\xcf\x18\xb7\x6a\x56\x6b\x17\xd1\x3d\xe5\xcf\x2f\x6d\x33\x56\x18\x5f\x4c\x35\xb2\x34\x09\xa9\x60\x6c\xab\x33\x5e\xea\x75\xa9\xad\x95\xa5\x99\x05\x33\x0e\x4a\x58\x77\x79\x39\x7d\x0b\xb2\x2c\x49\x84\xa5\x29\x4a\x28\x9f\x5c\x6d\x78\x36\x03\x33\x95\xd1\x14\xb2\xa1\xdf\x3f\xcf\xd5\xbc\x2f\x92\xf1\x48\x50\xc9\xfb\xe5\xdc\xbd\x32\xf3\xa5\x34\x13\x61\x4a\xbb\xb2\xf7\x67\x53\xaf\x23\x00\xe4\xf4\x9a\x45\x08\x56\x7d\xff\x19\x77\xd8\xcd\x3b\xf2\xe9\xf5\x57\x2b\x32\x46\xc5\x42\x59\x86\x11\x3f\xe4\xcd\xa1\x2a\x0f\xea\x5c\xbf\xe1\x58\xdb\x67\x72\x65\x90\xf6\x2e\xb6\x63\x78\xcb\x45\x04\xd3\x2f\x41\x99\xe4\x92\x7a\x2f\xb7\x0f\x5f\x0e\xde\xa4\xd8\xe5\x23\xd3\x1f\xdd\x0d\xa4\x94\xaa\xa8\x1a\x1c\xf3\xf5\x44\xa6\xb8\x4d\xd7\x9f\xf6\x9b\x71\x50\x95\x29\xc9\x5c\xcb\xa6\xef\xa5\x3c\x2f\x30\xce\xfc\x68\x15\x86\xae\x2e\xbd\xcf\x67\x1a\x74\x22\xd3\x09\xb7\xe2\x07\x58\xf6\x66\x9e\x0e\x6d\xf3\x33\xbb\x11\x91\x21\x53\xc2\x32\xa6\x5c\x78\x34\x3d\x6c\x54\xcc\x6d\x07\x60\x37\xa8\xdb\xf9\x63\x98\x11\x7f\x06\xf2\xfa\xba\xae\x4e\x97\x40\xc2\xcc\x18\x6d\xf5\x70\xc0\xe0\xbe\xea\xad\x73\xfa\xcb\xe6\x41\x02\x94\x29\x7e\x45\x28\xda\x97\x8f\x75\x95\x97\x73\x10\xc9\xec\x03\x52\x5a\x1b\xc4\xe6\x3a\x6f\xba\x7b\x7d\xae\x71\x44\xf4\x1a\x06\x86\x89\xa6\xdb\xf5\x70\x6e\xd5\x10\xe3\xf2\x50\x83\xf5\xe4\xc4\xa6\xdd\x96\xed\x23\xd4\x0d\xd6\xf7\xf8\x0c\x23\xbc\x1f\x8f\x02\x24\x6c\xc7\xb4\x90\xfc\xdf\xff\xf3\x8f\xfe\x5f\x7e\x60\x12\x51\xed\x70\xbd\xbf\x5b\xf7\x1f\x66\x96\xfc\x47\x0a\x03\xdf\xca\xa6\xf2\xbe\xfa\x82\xc7\x61\x12\x67\x5e\x91\xc8\xae\x95\x83\x9c\xc5\x70\xe9\x71\x88\xb4\xa6\xda\x6d\x8f\x9e\xe2\xaa\xd4\x8f\xd0\x34\x23\x5c\xae\xe0\x71\xc4\x1c\x7d\x89\xe2\x0b\x9f\xaa\xf5\x87\xd3\x98\xb8\x4b\x57\xab\xf5\xd7\xcd\xed\xc3\xd3\xfa\xeb\xaa\xef\x6d\xf2\xd8\x25\xd1\xf8\xae\x5e\xa6\xe2\x03\x82\xc7\x4a\xc4\x23\x05\xca\xbe\xa2\x32\x59\x91\x79\xac\x13\x8b\x8d\x06\x83\xd0\x34\x58\xb7\xa3\x0a\x15\x8f\xb5\x52\x81\xdf\xe1\x0d\xb9\xcf\xcc\x3e\x8e\x21\x55\x54\x2d\xc4\x7e\x12\x3e\xfa\x78\x9b\x27\x0a\x3d\xee\x8f\xd6\x57\x28\x1c\x9a\x63\xde\x86\xe3\x2c\x40\x42\x2f\x77\x33\x6c\x5f\x7d\xdc\x5d\x02\x23\x39\x4b\x02\x87\xc7\xab\x1a\x5c\xb5\xfd\x27\x53\x4d\x95\x90\xbc\xcc\xdb\x25\x2c\xc6\x62\x67\x9d\x33\x4c\xd5\x44\x00\xd6\xbe\x01\x97\x3d\x2e\x37\x3e\x55\x82\x18\x7d\x4d\x0b\x33\xb7\x3e\x3e\xcc\xaa\xfe\x7f\xf7\x7f\xaf\xaa\x62\xd4\x2e\x5b\x04\x93\xf1\x14\x0d\xf5\x34\x4b\xcf\x85\x5f\x57\x55\x91\x97\xcf\xa3\x5c\x8a\x67\x51\x4c\xef\x78\x0d\x0a\x27\x62\xd4\x0e\x86\x34\x7d\xfe\x19\xd3\x64\xdd\x46\x6d\xed\x64\x64\xae\x28\x78\xa6\x13\xfa\xdd\x87\xe3\x42\x3d\x75\x7a\x8b\x32\x9d\xb2\x64\xd0\x91\xde\xb6\x78\x9c\x3d\x91\xcc\x08\x42\x30\xf6\x61\xc3\x6c\x5b\x9e\x5e\x15\xe7\x21\x2d\xc4\x9e\x9b\xf0\x84\x34\x2b\xef\xab\xd6\xfd\x6b\x20\x8e\x76\x83\x13\x06\xbd\x5b\xb9\xa3\x80\xd9\x9c\x3e\xfa\x6d\x71\x5d\xe1\xda\x90\x38\x90\x7c\x96\x87\x13\xd6\x07\xac\xfa\xc9\xc5\x31\x26\x08\x61\x0b\xef\x8f\x30\x13\x8e\xec\x8e\x02\x85\x87\xf7\x9b\xfd\xd7\xf6\x17\xe0\x78\xc1\x45\x10\x11\x81\xe2\xf6\xdb\xfd\xa5\x27\x93\xe0\x90\x6a\x82\x53\x6c\xd7\x0f\xdf\x31\x7f\x82\xbc\x17\x6f\x13\x1c\xb8\xf5\xa6\x90\xe7\x8f\xf0\x12\xb9\x35\x89\x41\x47\x8b\x34\x07\x1d\x8e\x6c\x52\x48\x83\xb3\x6d\x47\x86\xcf\xb3\x0b\x30\x96\xd5\xd2\xad\x50\xeb\xaf\x07\xd4\x79\x7b\x08\xd3\x49\xe4\xcd\x55\x12\xd3\xfe\x2d\xbd\x02\xc6\xaa\x68\xb1\x56\x55\xfe\x89\xc5\x8b\xe0\x0a\x6c\x95\x05\xdf\xb1\x56\x79\x73\x51\x8e\xfa\xef\x78\x86\x40\xe3\x4a\x5a\x5c\x89\x8f\xb2\x9c\x8e\xec\xec\x6a\x35\x13\xb4\x81\x9e\x72\xf5\x6a\xed\x3a\xc8\x0b\xdf\xb7\x2f\x7f\x0e\x6f\xe0\x98\x60\xe6\x49\x5d\x8a\x84\x17\xc7\xa9\x11\x47\xb4\x42\x1f\x87\x67\xab\x93\xef\x8a\x17\x3b\x54\x55\xcf\x29\x10\xdc\x70\x2b\x3a\x74\xb5\xf9\x73\x75\xd7\xff\x51\x08\xcd\xfb\x7b\xee\x16\x40\xab\x22\x5d\xd5\x57\x1f\xdd\x6e\xaf\x5e\x2e\xf4\x8d\xed\x87\x45\x10\xaa\xd4\x15\x4f\xb7\x4d\xb7\x21\x3e\xe1\xf3\xd8\x4e\x48\x88\x40\x6b\x0a\xfa\xce\x65\xde\x36\x0f\x25\x6e\xda\x97\x35\x94\x57\xe7\x0f\x49\x5d\x20\x77\x15\x22\xe4\xda\xa8\x09\xf1\x3f\x4e\xfb\x63\x10\x25\xda\x2b\x38\x94\x30\x92\x21\x9e\xde\x24\x11\x2a\xe9\x93\xec\x53\x55\xce\x36\x59\x11\x1a\x30\x62\xc4\xe3\xe9\xcb\x85\x93\x2e\xbb\x88\x83\x14\x5d\x0f\xea\xf1\x8f\xc7\x6e\xea\x59\x69\xb6\xc5\xd9\x22\xe2\x2c\x8b\x8c\x17\x31\xdc\x12\x56\x39\x6f\x5e\xfa\x73\x61\xe8\x51\x99\x37\xa8\x5e\x60\x0f\xef\xfe\x50\xc2\x9d\x2c\x00\xb6\xf7\xf2\x63\x61\x67\x15\xa9\x4e\x95\x47\xbc\x9f\xeb\x8b\x42\x89\x48\x75\x46\xda\x00\x36\x14\x22\xe1\xa2\xbf\x67\x83\x2d\xba\x34\xc6\xbf\x39\x57\xc1\xfb\x02\x12\x44\x64\x86\x47\x66\xa6\x47\x68\xb1\xb5\xd3\x8b\xe4\xa1\xc5\x5a\x81\x53\x15\xf7\x3f\x8f\xb3\x28\xed\xb1\xca\x0d\xb6\x77\xf0\xbe\xcb\xff\xd3\x3f\x6e\x2e\xac\x34\x53\x3b\x15\x1e\xf4\x47\x8d\x96\xe8\x45\xa1\xdc\xa6\x75\xfc\xd4\xb7\x5d\x08\xc1\x02\x72\x87\x5b\xc3\xe9\xe4\xf0\xad\xa3\x62\xa3\x80\x98\x11\x8b\x70\xf7\x7d\xf5\xf8\xc9\x19\x20\x36\x04\xab\x79\xbc\x5d\xfd\xb5\x79\x3a\xec\xb7\x77\x9b\x87\x6f\xfb\xe1\x04\x86\x6a\x1f\xfd\xbe\xfb\x8b\x34\x6e\xf9\x1d\x16\xdd\x5e\x2c\x2d\xc9\xf1\xa1\xfc\xed\xb2\x6d\x7e\x11\xef\x0a\x80\x38\x4d\x07\x33\x91\x6b\xa7\xb9\xea\xaf\x4b\x0a\x8c\xdd\x0a\x4c\x99\xf3\xfe\x70\xdd\x6b\x40\x09\x21\x31\xa5\xbb\x62\x27\xa6\x37\xf3\xf4\x07\x4d\x42\x84\xc5\xc7\xaa\xc5\xb2\xcd\xa1\x38\x0c\x71\xca\xf4\x1a\x14\xc6\x54\x4d\xfd\x63\x7b\xbf\x39\xac\x57\x8f\xab\xf5\x76\xff\xd7\xe1\x71\xf3\x74\xb8\x5d\x79\xaf\x87\x6e\x09\xd1\xc9\x50\xc6\xf7\x29\xc2\x68\x9b\x13\x1a\x52\x6a\xd6\x1a\x7a\x43\xae\x71\x26\x56\x24\x84\x56\xd6\xe3\xf2\x25\xef\x3f\x62\x04\xb5\xcc\xab\x12\xd7\x58\xb6\xdb\xf2\x3b\xf6\xc7\x30\x00\x47\x73\x79\xdf\xae\x1f\x6e\xf2\xba\x69\x27\xe1\xbc\xc0\x34\xf1\x96\xa1\xfb\x1c\xeb\xe8\x8e\xba\x69\xb3\x1f\x87\x19\x46\x62\xd4\x4a\x9b\xba\xe1\xb8\x41\x26\xd0\xb4\x87\x1c\xc0\xd7\xff\xff\x06\x2e\x54\x18\x07\x57\xed\x41\x24\x8f\x05\xb4\xa6\xaa\x8f\x9f\xd8\x75\x0b\x61\x14\x03\x1b\xee\x1f\x4f\xeb\x17\xa8\x7b\xba\xa0\x10\xc6\x48\x22\xaf\xb7\xbd\x5b\x91\x55\x8a\x74\x81\x15\x04\x99\x5d\xdb\xf2\x52\xdd\x74\xd9\xf8\xbe\xba\x46\x68\x5f\xbe\xe7\xb3\xef\x80\x80\x27\x5e\x57\xb0\x9b\xc9\x7f\x54\xc5\xb9\x0f\xbd\x20\x90\x89\x60\xbe\xf4\xea\x32\x95\xaf\xd0\xbc\xb8\x15\xfd\x7f\xe1\xf3\x23\x20\xec\xfe\x8f\x34\x72\x40\xd7\xd0\xe6\xca\x69\x87\xf9\xc3\x5c\x0f\x8c\x90\x4d\xfb\xf2\x84\x0a\xf3\xb7\x3e\x80\x80\xd0\x48\xc7\x12\x1b\xd5\xbf\x6e\xaa\x7a\xe6\x1f\x26\x20\x4a\x05\x29\x94\xdb\x89\x77\x75\x96\x9f\xa0\x42\x21\x12\x60\xc0\x77\x4f\xc8\x4a\xf1\xbd\x57\xa2\x12\x10\x27\x31\x49\x8d\x3f\x9e\xff\xf3\x9f\x31\x2e\x6a\xfa\x65\x31\x08\x52\x37\x7e\x7b\x6f\x7b\x29\x21\x01\xb1\x42\x2a\x74\xde\x6e\x77\xbf\xaf\x0b\x68\x9a\x5c\xf5\x87\x34\x24\xfd\x97\x1e\x21\x2f\xbf\xb5\x6a\x80\x5e\x43\x12\x28\xef\xa1\x61\x03\xbe\x07\x33\xf3\xf5\x16\xc0\x42\xdb\xfe\xf6\xd8\xcb\x51\x09\x04\x18\x5a\x00\x84\xdd\xbb\x6d\xaf\x63\x8e\x1e\x87\x34\x64\x28\x2e\xea\x08\x53\x01\xc6\xd9\xc3\x4b\xd1\x16\x18\x87\x7e\xe1\xed\xfa\xfa\xb3\x84\x01\x78\x9a\x89\x11\xf4\xf0\x3f\xe8\x22\x94\xd9\x03\xe0\x46\x91\x70\x55\x17\x5d\x2f\x61\x88\x86\x13\x0a\x6d\x0d\x3a\xac\xd9\xf9\xed\x5c\x26\x48\x80\xc0\xc4\x38\xff\xad\x8f\xa2\x02\x3d\xd6\x5e\x13\x00\x2a\xc6\x64\xf4\x52\x7f\xcf\x4b\x9c\xc2\x49\x16\xa2\x5d\x00\xcd\x48\x87\xe7\x71\xf5\x6d\xb7\xb9\xee\xcf\x85\x41\xe6\x82\xf3\xbb\xbc\xfc\x02\x4d\xb2\x52\x6a\x0e\xb9\x01\x30\x21\x01\x72\xaf\xf2\xa2\x80\x97\xf5\xa8\x67\x00\x52\xc8\x24\x9d\x04\x6e\xdd\xef\xff\xec\xc6\x4b\xcc\xa4\xdb\xf3\xb7\xaa\xb2\xe1\xdb\x77\xc4\xd7\xa7\xb9\x0e\x98\x00\x15\x45\x8c\xae\xd7\x79\x83\xef\xa1\x28\xf2\x85\xe6\xc6\xb0\x24\x81\x4a\x14\x33\xbe\xd3\xe8\x58\xbd\x23\x01\x5c\x01\x4a\x25\x99\x5b\x00\xa8\xb3\x68\xc5\x46\xdd\x41\x0d\xa8\xfc\x82\xb6\x6b\xab\x13\xc5\x2c\xae\xdd\xec\x87\xe8\xcc\xd3\x10\x36\x6f\x55\xf1\x36\x12\xc0\xec\x41\x6c\x80\x3c\x26\x6c\xa0\xdf\xd4\xa0\xc5\x49\xd4\x04\x28\x03\xea\xc2\xd9\x9a\xdb\x1a\xf3\x62\x58\x38\x64\x90\x59\x2e\x7f\x77\x87\xb4\x85\x93\x2c\xa7\x76\xb3\x92\x8c\x7f\x1d\x64\xa0\xac\xa0\xe1\x69\x14\xaf\xf5\xeb\x8e\x0c\x90\x53\xf3\x72\xdd\x28\xdb\xfa\xf9\x49\x82\x24\xc3\xb0\xf7\xbf\xdc\x1e\xe1\x19\x17\x40\xf7\x32\x8c\xac\x76\x24\xe9\x7b\xb4\x43\x9e\x2b\x43\xcd\x82\xcc\xf1\x34\x27\x20\x2f\x19\x1a\xa3\x7b\xc0\xcb\xfa\x05\xff\x7d\xc6\xf1\x83\x90\x91\xb2\x56\x7d\xd6\x3a\xf3\x2f\x84\xbe\xb6\x20\x23\x05\x04\x42\xb3\x8b\xc5\x75\x0d\xcf\x55\xf9\xe5\x52\xaa\x77\xcc\x79\x93\x91\x52\x81\xf7\x99\x83\xf7\x31\x10\x61\x12\x18\xcb\x98\x45\x89\x45\xa3\x53\x11\x74\x41\xf8\xbc\x9b\xea\x01\xf9\x72\x76\x01\x6b\xb7\xf9\x77\xab\xd9\x5c\x9b\x6a\x7a\x7f\x12\x2e\xa9\x4f\xf9\xbd\xaf\xf7\xc8\x44\x66\x3e\x6a\xfe\x8e\xdd\x6e\xe6\x0f\xb0\x24\x92\xba\xf7\x2f\x0c\x67\x77\x9a\xb1\x50\x47\x23\x91\x03\xab\x35\x5b\xd5\xb6\xc0\x32\x59\x40\x24\xeb\x66\x21\x41\x6c\x28\x2a\xba\xa9\xea\x47\x04\x35\x05\xa0\xca\x54\x20\x15\xc7\x34\x21\x36\xa7\xca\xa7\x42\xa6\x4e\xfe\x8f\xbe\xce\x16\x2d\xc7\x9e\x06\x42\x66\x29\x0b\x7a\x6c\x6e\x49\xbd\x1a\x84\xe3\x12\x44\x5a\x66\x2a\x96\xf4\x62\x56\xbe\x00\xea\xc1\xe2\x92\xa7\x91\x88\x7a\xe1\x2a\x52\x0e\xa9\xaa\x62\x38\x2a\x88\x4c\x27\xcf\x1f\x4e\x6f\xf9\xbe\x37\xb2\xec\xcf\xce\x35\x50\xeb\xb9\xc0\x37\x2c\x0e\xb1\x87\x58\xf7\xe7\x30\x19\xb5\xd5\x1e\xeb\xaa\x45\xd5\xee\x5f\x70\x0d\x4d\xdb\x07\x6e\x12\x22\x19\x8c\x8c\x1e\x6e\xf2\xb2\x3f\x24\x83\x98\xde\x25\x8d\xa7\xd6\x27\x5d\xf3\x9a\xd4\xdc\x88\x5d\x48\x19\x5b\xb4\xdd\xb7\xf5\xfa\x61\x7b\x4f\xa1\xe4\xb8\x07\x28\x15\xd3\x72\x40\xb9\x7e\xc5\xe2\x93\x7d\x42\x9a\x50\x51\x60\xb6\xb9\xdf\x1d\x9e\x1e\x1e\x7c\xbc\x2e\x0d\xda\x76\xdb\xc4\x72\xc8\x1e\x53\x01\x8f\xb9\x57\x46\xdd\xda\x9a\x81\x07\xd7\xab\x90\xf7\x32\xe5\xf4\x51\x2b\x2e\x30\x9d\x66\x2a\x34\x11\x61\xa3\x35\x2a\xf8\x18\xb5\x78\x55\x04\x2a\xf6\x14\x8c\x6e\x71\x9a\x6d\x12\x2a\xc2\x38\xf5\x9c\x27\x5a\x35\x3f\x26\xb2\xed\x42\xc5\x91\xa2\xf7\xfa\x1e\x7f\x4c\xa0\x58\xd3\xd3\xc4\x3c\x21\xb5\x98\x2e\xa4\x6c\xda\x8d\xad\x36\x3e\xd9\x67\xe3\x97\x31\x95\x24\x91\xd7\xb0\x1e\xa0\xa6\xae\x7b\xb1\x2d\xbb\x28\xf4\xd2\xae\x5f\xa8\x84\x19\x2a\x70\x5b\x23\x69\xdc\x57\x9e\x40\xf5\x13\x14\x08\x41\x5b\xc8\xc9\x33\x62\xbd\xfe\x9e\x50\x4c\x59\xc5\x70\x78\x83\x8b\x8f\xbb\x21\x29\xa4\xd1\xe0\x53\xe1\x40\x2c\x93\xeb\x49\x55\x46\x65\xdb\x33\x15\xa6\x07\x33\x79\xef\x99\xf3\x05\xc6\xfa\xed\x42\x65\x01\x82\xfb\xd5\x24\x33\x3f\xfd\x75\x59\x8c\xdc\xed\x1c\x7b\x7c\x6f\x97\xfa\x4e\x2a\x4b\x13\x6e\x26\x81\xcf\x24\x39\x9e\x87\x3e\x2a\x4b\xad\xaf\x2f\xbd\x9d\x8e\xed\x38\xfd\x95\x3c\x8b\x69\x4e\xa9\xaa\x26\xa1\x33\xff\x67\x6d\x68\x33\x75\x85\x9a\xcf\x90\x09\x8b\xb1\xb5\x12\x2c\x8e\x6c\xc9\xa6\x84\x23\x8e\xe3\xa3\xe9\xaf\x81\x28\xc8\xa2\x49\xec\x61\xf7\x91\x11\x5e\x64\x2c\x61\x2d\x14\xa4\x01\x41\xfa\x24\x34\x38\x22\x37\x2a\x19\x45\x51\x36\x6e\xac\x53\xf1\xb6\x5b\xce\x5c\x7f\xf3\xe7\xd7\x2b\xb5\x75\xcf\x1b\xb8\x1d\xfb\x8a\xba\x03\x6d\xd5\xa2\x6b\xaa\x77\x13\x74\xb2\x0d\x2a\x15\x64\x14\x7a\x59\xef\x02\x2b\xdf\x78\xbd\xb9\x7f\xb8\xeb\x07\x24\x19\x51\x7b\x0d\xe4\xfd\x95\x2a\x65\x23\xe2\xdc\xb6\x1f\x76\x27\x50\x68\x05\x58\xfa\xf7\x54\x47\x92\x0c\xd1\x1c\x88\xbe\x4b\xe7\x96\x2f\x5b\x0b\x0c\x2c\x64\x47\x9d\xeb\x4b\x15\xcf\xe9\x73\xd6\x26\x25\xfe\x20\x49\x3b\xdc\x6d\xee\xae\x36\x4f\x87\x3f\x56\xb7\xfe\x4b\x4d\x10\xd3\x8f\xd9\x6c\xfe\x52\xd5\x4c\x5b\x52\xe8\x20\x91\x9a\xf7\x14\x99\x57\x42\xc6\xf7\x06\x3c\x54\x1c\x5f\x5c\x00\x75\xc0\x04\xe5\x06\x9b\xfd\xcd\xf7\xdf\xfc\xdf\x32\x16\xf6\x02\xfb\xcd\xbc\x24\x32\xfb\xbc\x0c\xd3\xc4\xeb\xa2\x3f\x98\x4d\xfb\xf2\x50\xf6\xd2\x43\x42\x07\x5a\x2b\x57\x0a\xf3\x25\x58\xab\x0e\xb9\x4c\x46\xd4\x81\xd1\xd4\xb6\x70\x62\x85\x4e\xae\xdb\x7a\x71\x2e\x40\x0e\xc7\x11\xea\xf4\x6e\xea\x28\x12\x84\x1c\x28\xa0\x69\x09\xbe\x3e\xb2\x2c\x12\x3a\x8a\xc1\x2b\xb1\x5c\x9d\x4b\x5d\xe0\xe6\xfd\x94\xd7\xd6\x45\xfc\xc1\x6c\x8e\xdd\x7c\x18\x17\xbf\xfc\xc7\x34\xa7\xfd\xdc\x3a\xe1\x1c\xee\x3e\x85\x59\xeb\x58\x03\xed\x50\xbb\xfc\x78\x2a\x70\x8a\x04\xd3\x49\x20\xa9\x14\x2b\xcf\x1f\x5d\xde\x71\xaa\xc7\x76\x8c\x3f\xe7\xfe\xf8\x33\x44\x09\xba\xea\xf8\xaf\xe0\x07\xfe\x13\x3c\xa0\x36\xd7\x11\xde\x77\x27\x74\x44\x97\xfe\x82\x84\x71\x62\x0c\x50\xab\x97\x6d\xd9\x60\x4d\xdd\xba\x2a\xbf\x54\x71\xf0\x1f\xd1\x29\x05\x2f\xdd\xfd\xa5\x5b\x7b\x30\x3e\xe2\xd0\x0c\x23\xeb\xfa\xb8\x5a\x7f\xee\xf3\x20\x74\x9a\x5a\xb9\x4f\x0b\xcb\x7d\x84\x1f\x97\xba\x34\xc3\x9e\xaf\xd3\x34\x66\xd1\x48\xb6\x4c\x5b\x91\x99\x03\x8c\x43\x4c\x9d\x45\x86\x64\x87\xa0\x68\xb1\xbe\x41\x68\xcf\x35\x3e\xa2\x05\x2c\x5c\x40\x92\x74\x96\x58\x82\x90\xb2\xfc\x86\x7d\xa5\xbd\x33\xb5\xd0\x3c\x32\x21\xf7\xc2\x43\x9b\x3f\x27\xf7\x8b\xb3\x28\x75\x50\x3c\xbb\x1e\x2e\x91\x6e\x86\xaf\x11\x86\xd1\x2a\x4a\xb8\xfc\xa2\x5c\xe2\xbd\x7c\x3a\xab\xc7\x51\x9e\x16\x26\x25\xb2\xd6\x5b\x8e\x3f\x6e\x2b\xf5\xfa\xed\xb4\xe0\x82\x20\x34\x04\x06\x9c\x23\x93\xef\x07\x5f\xac\xd4\x1a\xc2\x84\xcc\x27\xaf\x37\x7f\x7e\xdd\x7e\xf9\xfa\x19\x51\xe2\x17\x13\x11\x64\x98\xda\xce\x6a\x8b\xa5\xee\xae\x69\x19\x45\xaa\x65\x90\xa2\x5b\xc1\x1d\x5e\x73\xdc\xee\xd1\x52\x28\x4c\xa7\x7e\x76\x5f\xa0\x19\xc9\x94\x0a\x2d\xc1\x44\x94\xb4\x58\x4c\xdb\x24\x42\xd5\x12\x33\x6b\x68\x66\x81\x75\x3b\xca\xfb\x3f\x99\x77\x2a\xd4\xd4\xab\xeb\xd6\x95\x73\x01\xf5\xf5\xfe\x0f\x5a\xde\x1c\xcc\xd8\x7f\x9f\x4a\x44\xd8\x83\x65\xc9\xf3\xc7\x67\xa9\x5a\x87\x51\xc4\x96\xdb\xb9\xc3\xd7\xe8\x94\x53\x2d\xcc\x12\x99\x47\x46\x20\xb3\x49\xa8\x21\xd1\xc6\x7b\x52\xd3\x80\x39\x04\x72\xfa\x74\x91\x59\x21\x5a\x47\x90\x56\x63\x2c\x4e\x3f\x84\x87\xb6\x9e\x42\x47\xad\xed\x82\xab\xdf\x52\x39\xce\x8d\x33\x21\x90\xb8\xba\xdf\x99\xa0\xb8\xef\x02\xbb\x65\x57\x6b\x81\x41\x92\x90\x60\xda\x0e\x3d\x1e\x72\x0f\xcf\x93\x8c\x07\xc3\x40\x1a\x2b\x90\xa4\x72\xec\x21\x06\x18\x49\x45\x10\xb8\xaa\xc4\xa7\x81\xd3\x83\x11\x06\x54\xd0\x39\x38\xfb\xa7\xaa\xfa\x6d\x59\x14\xde\x8d\x8f\x03\x43\x35\x3d\x1b\x5b\xff\xfe\xeb\x3e\x05\xc6\xc6\x39\x9c\x52\x17\xa6\xfd\x5a\x39\x19\xe0\xe9\x0d\xc3\x24\x48\x29\x69\x3f\x90\xa0\x46\xf5\x96\x6b\xac\x5d\x31\xf8\xa7\xf3\x1f\x13\xd7\x62\xb1\x30\x39\x2b\xb3\x35\x32\x59\xff\xe4\x77\xb0\x2c\xa4\x1a\x6a\xef\x17\xe1\x6f\x48\x16\x47\x84\x13\x50\xd0\xbc\x8c\x6c\x99\xfd\x51\x11\x5b\x70\x31\x61\xc6\x6e\x2a\x62\x20\x15\x5d\x36\xb5\x7c\x71\x99\x8a\xe8\x9d\x1b\x38\x3b\xf3\x13\x2a\x49\x05\xfe\x3b\xd4\xf9\xa5\x93\xa9\xc0\xcc\x64\x94\x8c\xdf\xd4\xf8\x51\x8f\x14\x1f\x90\x3c\xab\x6c\x95\xa0\xe8\xde\x47\xbc\x41\x9c\xdb\x4b\x08\xe4\x90\xd2\xaf\x39\xd5\x55\x51\x95\xcf\x96\xde\x40\x45\x93\xd9\x75\x70\x13\x19\x97\xaf\x1f\x2c\x63\xf8\xf0\x56\x29\x84\x92\x44\x38\xfd\x12\x3f\xfd\x8c\x88\xad\x2c\xb8\xa5\x5e\x27\xb7\xfc\xe9\x93\x59\x2b\x12\x3b\xc9\x77\xa7\xaa\x6c\xfa\x4a\x13\x8a\xd4\x3a\xf0\x37\x14\x31\xcd\x93\x24\x84\xd0\x8a\x8c\x51\x60\xb3\xf7\x5b\x1b\x42\x02\x94\x20\x6c\xca\xd6\x9b\x18\xf9\x23\xa9\x65\x3e\x4b\x68\x72\xb5\x7f\xa9\xb1\x79\x19\xb0\x30\x08\xc2\x4a\xdc\x8d\x31\xa0\x4d\xef\xf7\x78\x09\xb0\x42\x10\x9a\x96\xe7\xc7\x6f\x4f\xeb\xaf\xab\xdd\x66\x37\x51\xfb\x42\xd0\x22\x74\xc4\xf3\xee\x27\xef\xab\x55\xa3\xf2\xdc\x5a\x16\xcd\x1e\xa2\x44\x49\x8b\x15\x41\x26\x1c\xc8\x6d\xab\x0f\xfe\x4c\x2a\xb3\xd2\x55\x56\x1f\x73\x11\x14\xf2\xbf\xda\x12\x50\x07\x01\x45\x5e\x8d\xed\x87\xf8\xbf\x0a\x25\x3d\xab\xbf\x28\xaa\x1f\xb3\x8b\x44\x40\x44\xdf\x55\x28\xbb\x90\xba\x99\x8f\xd0\x2c\xb6\x9c\x25\x7d\x56\x56\x81\xe5\x9f\xed\x27\x7d\x5c\x13\x04\x11\x61\xe5\x08\x2c\x4d\xb7\xf9\xc1\x2c\x0a\x4b\x99\x20\x4e\xa9\xe0\x08\x4a\x79\xf1\x6b\x7f\x04\x18\x69\xda\xf5\x5a\x20\xe3\x92\x50\xf3\x92\xcf\xb0\xc3\x26\x8c\x34\xd9\x7f\x3e\x41\x91\x9f\xc7\x86\x8a\xc2\x84\x29\xa3\x26\x51\xfb\x92\x37\x7f\x54\x2d\xd6\x8d\xd5\x0f\xf3\xc7\x23\x2d\x09\x29\x65\x21\x50\x53\x39\xe8\xe9\xea\x6f\x98\xc6\x24\x1a\x3b\x77\x92\x40\x9d\x3f\x51\x2a\x90\x94\x61\xa8\x3e\xfb\x54\x5d\x4a\xee\xcf\xee\x53\xaa\x91\xa6\xe5\xd7\xaa\x24\x25\xed\xe1\x92\xb2\x58\x53\x2d\xec\xd0\x6d\x7f\xb6\x93\x34\x59\x65\x47\xa1\x84\xc9\x84\xa1\x46\xd5\xcd\x9f\xfb\xd9\x3d\xc9\x54\x48\x8c\x7a\x1b\xce\x5f\x43\x8b\x0f\xe6\xc2\x83\x67\x7a\x49\x99\xb6\x2a\xf9\xc4\x97\x39\xb4\x1f\xa7\x0b\x74\xba\xc9\x30\xa5\xa4\xc3\x3f\x99\xd9\x0d\x5b\x9e\x12\x99\xc9\x68\x31\xac\x0e\x50\x3c\x57\x75\xde\x1e\x67\xab\x90\xe1\x49\x42\x1c\x0c\x47\x45\x5c\x96\xa9\x9d\x9d\x95\x67\x82\x6a\x17\x6f\x83\x9e\xe3\x4c\x01\xc7\x70\x54\x54\xb5\x59\x15\x50\x1f\xd7\xf4\x80\xf3\x93\x93\x99\x73\x43\x44\x12\x28\xa7\x05\x61\xb7\x83\x85\xdc\xc8\x08\x16\x6a\x57\xfd\xb9\x1f\x6a\x2f\xfe\x19\x08\x9e\x91\x1d\xf2\xb7\x9b\x87\x51\x7f\xc8\x08\x11\x51\x25\xec\x6a\xbf\xe6\x41\x10\x54\x65\x12\x79\x5e\x86\xf1\x9c\x55\x79\xae\xcb\xd5\x59\xe7\xad\xe7\xdf\xf5\x03\x30\x89\xa2\x31\x07\x7f\xfe\xf2\xc8\x30\xa4\x9e\xd7\xa9\x6a\x57\x5a\x9f\x3d\x53\xd9\xc8\x24\x26\xb5\xa4\xbe\x14\x4c\xb9\xaf\x77\xa8\xf3\x61\xed\x0c\x89\x65\x24\x37\x3e\x06\xbc\x41\x6c\xae\x3e\x08\xde\x32\xff\x4a\x95\x52\x45\xa7\xa8\xaa\xd7\xf3\x69\x9f\xab\x57\x6c\xbf\x56\x85\x9e\x97\xcd\x8d\x12\x2c\xb0\x0a\x4c\x1a\xdf\xf7\x2f\xf8\xbd\xaa\x5f\x55\x8d\x5e\xcb\xc5\x28\x93\xa5\xd2\x6b\xe3\x58\x9d\xe3\xdf\x46\x3a\x1d\xa3\x82\xbf\xd1\xa1\xa4\x25\x72\x5f\x83\xc6\x95\x31\xa8\x16\x2a\x2d\x7e\x6c\x6c\xe8\xfd\xec\x57\x0d\xcf\xac\x1d\xa4\x39\x85\xd1\x68\x8d\xdc\xfa\x09\x4c\xd5\x85\x9f\xc6\x0c\x06\x15\xd0\xc3\x20\xcd\xfa\x07\x6f\xda\x38\x17\x0d\x31\x26\x02\x86\x17\xef\x06\xf1\xf3\xbb\x47\x90\x3f\x97\x94\x13\xfd\x6f\xc3\xfd\x69\xc7\x96\xbe\x0b\x82\x10\x94\x9d\x1f\xc7\x49\x1d\x12\x82\x10\xed\x82\x60\x3b\xf5\x4e\xeb\x94\xf6\x97\xc5\x97\x1e\x82\x08\x2c\x67\xfd\x08\xff\xea\x5e\xcd\x8f\x3b\xa8\x9f\xfd\x24\x86\x20\x8e\x42\xea\x80\x28\x28\xd4\x25\x47\x12\x82\x38\x8b\xd0\x15\x97\x08\x78\x37\x8e\xed\x20\x88\xb5\xa1\x2d\xdb\xc6\x98\x9e\xbc\x37\x07\xaf\x4f\xaf\x27\x49\x99\xe4\x23\x4f\xdb\x0b\xdf\xd9\x70\xa9\x13\x02\x41\x22\x52\x11\x0e\xe2\xe6\x0b\x5d\x4c\x08\x12\x64\xa9\x9b\xe6\xdf\x5f\xaa\xc7\x1c\x2e\x2b\xde\x7f\xf7\xbf\xd3\x8b\x66\x91\xd4\xbd\x9b\xe4\xa3\x55\x01\x19\xc9\x48\x43\xc0\x52\x4d\xd2\x4a\xaa\xa8\x4a\x7a\x23\x1f\xab\xd3\xaa\xd4\x57\x55\xdb\x7e\x22\x4e\x08\x01\xe3\x40\xb4\x7b\xeb\x51\xf4\xdb\xec\xa0\xe4\x94\x93\x37\x71\xe2\x5a\x17\xee\x40\xca\x02\x5b\xfe\xe8\xbe\xde\xc9\xef\x8c\x76\x44\x08\xb2\x30\x20\x2c\xdb\x6d\xf5\xec\xee\xd2\x5d\xa5\xc9\x23\xee\x33\x82\xdd\x67\xff\xf5\x27\xcc\x84\x88\x26\xa4\x2f\xc7\x53\x1c\x13\x3b\x20\xe0\xcc\x12\x4a\x6c\xe7\x6b\x7d\x6e\xda\xea\x38\xc3\x74\x40\xc0\x95\xf0\x0b\xd1\xba\x7a\xc3\x9a\x5a\x73\x97\x5a\x55\x10\x70\x6d\xb4\x03\xd8\xdf\x20\x3e\x42\x0d\xc7\x4f\xad\x0e\x17\xdf\x20\x21\x2d\x21\xe9\xdc\xa0\xbe\x00\x94\x43\x20\x8d\x20\x8f\xd6\x1e\x01\xf2\x04\x3f\x1e\xab\xaa\x58\xf0\x33\x83\x40\xe9\x94\xd4\xd6\x0f\x43\xe9\xb9\x1b\x3b\x55\x65\xf8\x64\xea\x28\xa3\xa4\x03\x39\x96\xe7\x63\x33\x3b\xb3\x8e\x03\x43\x7e\x42\x5d\xe8\xd5\x1e\x4c\x6f\xb0\x0e\x81\x16\x86\xb6\x9d\x03\x58\x04\xc1\xd5\xc7\xc4\x5e\xd2\x8d\xc2\x98\x13\x1a\xe0\xae\x92\x79\x91\x97\xaf\xfe\xd3\x26\xd0\x04\x6e\xa0\xb6\xd6\xfc\xf9\x2e\x01\x28\x20\x0c\x94\x15\x6c\xb4\xb2\x49\x13\x4a\xa6\x1f\x81\x5c\x45\x1e\x68\x8b\x2b\x6a\x76\x5d\xee\xa7\x10\x86\x42\xa0\x6b\xcc\xbb\x45\x7a\x80\x74\x43\x18\x85\x92\xfa\xe8\xab\xab\xad\x25\x7e\xea\xc5\xc2\x06\x84\x11\xd3\x24\x36\xd9\xe6\x47\xfc\x0e\x79\xfb\xcd\xb2\xb7\xa6\xd7\x14\x65\x80\xb1\x07\xb3\x89\x03\x85\x67\xd7\xd8\x90\xbc\x6b\x5e\x95\x0f\x6f\x58\x9b\xa2\xfa\x71\xe8\xb2\xbe\x42\xef\x5f\x6a\xaf\x39\x06\x61\xac\x20\x1b\xfb\xc3\x3b\x95\x47\x7f\xd4\xfd\xd8\x1f\x90\xb7\x13\x18\x34\x84\x49\x88\x56\x9f\xff\x04\x75\x0b\x65\xff\x91\x44\xc5\xd4\xd9\x69\x7a\xcf\x38\xa7\xd7\xdc\x0f\x30\x40\x70\xe2\xed\xfa\x41\x0e\x86\x2e\x10\xb2\x34\x4d\x2c\x2d\xb7\xdb\x4b\xe7\x6f\x4d\xc8\xb8\x95\x51\x74\x8e\x1a\xb7\x08\x6f\xbf\xf2\x71\x9e\x3d\xdb\x34\x4c\x68\x06\x63\xfb\xf2\x84\x6d\x3d\x14\x10\x20\xcc\x84\x6d\xac\xd9\x45\xdc\xa1\x5f\xdb\xea\xd8\x1f\xc7\xcc\xb3\xaa\x6c\xa8\xb2\x9d\xce\xe1\x90\xc7\xdc\xc3\x5f\xef\xaa\xf2\x15\xfd\x3b\x16\x72\x2e\x29\x36\xdf\x41\xb7\x12\xbe\x5b\x23\x10\x7f\x4c\x05\x84\x90\xd8\x3f\xad\xee\x77\x37\x9b\xa7\xc5\x98\x1c\x42\x6e\xb2\x14\x06\xab\xd5\x1f\x5e\xc0\x74\x76\x83\x04\x8b\xad\x84\x06\x90\xea\x67\xbf\x5d\x86\x02\x35\x5d\x9b\xa9\x11\xff\xd3\x43\xdf\x9a\x6f\x65\x9b\x17\x4b\x4c\x21\x08\x25\x0b\x03\xcb\x4a\x42\xe8\x9f\x9b\x84\x14\xfa\x56\xd2\xf7\x7e\xfb\x0c\x55\x6c\x39\x5e\x57\xd0\xae\x61\xb8\xa5\x4a\x2b\xe2\x23\x5b\x3c\xda\xf4\x6e\x29\x13\x52\x73\x49\x9f\x8f\xa7\x9b\x1a\x97\x1c\x6a\xba\x41\x11\x69\x5c\x1f\xf2\x66\xab\x2f\x15\x76\xdc\x28\xcd\x03\x92\xe2\xdc\xec\xd6\x57\xd7\xf8\x46\x55\x82\x26\x7f\xf6\x57\xa1\x05\xa7\x76\x4b\x97\x0f\x57\xde\x86\xf1\x12\x06\x01\x21\x26\x19\x15\x9f\xee\x3e\x86\x42\x04\x84\xc8\x13\x6d\xd5\xa4\x3c\xc8\xcc\x1d\x30\x69\x60\x3b\xbb\xfb\xaf\x9b\xa7\xc3\xdd\xf6\xfe\xb0\x7e\xb8\xdf\x3f\x6d\xaf\x0e\x8f\x4f\xdb\x3f\x7a\x90\x23\x44\x41\x34\x50\x64\x1c\x73\xfa\xb6\xdf\xa7\xa2\x00\x43\x1c\x5a\x8c\x77\x44\x26\x9b\x0a\x76\xbb\x81\x61\x6a\xd9\xad\xdb\xfb\xed\x7e\xbb\xba\x3d\xec\x56\x8f\xb7\x5e\xbc\x11\xa2\x28\x8d\xc0\xda\xc7\xe2\xdb\xba\x3a\xd7\x3e\x63\xeb\x8e\x58\xa8\x42\x3b\x0e\x01\xff\x3b\x0c\x07\x80\xbb\xff\x37\xff\xef\x68\xa0\xe4\x4c\xfe\xe9\x4f\xc5\xad\x46\xb2\xcd\x90\xef\xce\xc5\xa1\xff\x12\xc9\x3c\xc8\xfa\x7a\xf5\x70\xa1\x2d\x05\x51\xcc\x12\x12\x06\xdb\x9d\xb0\x54\x13\x25\x7f\x88\xe2\x0c\x23\x47\xd0\x1e\x62\xf7\xfe\xb9\x44\x31\x0f\xc3\x60\xe2\x43\x30\x82\xec\xf4\x83\x94\x9c\x00\xdc\xbb\x78\x94\x9e\xf5\xc2\x7e\x3f\x3b\x3d\xda\x6a\x42\x17\xdb\x69\x2c\xdb\x91\x97\x0e\x44\x89\xb6\xc1\x09\x4d\xaa\xc9\x45\x27\xc8\x29\xe8\x2b\x1d\x28\x8e\x40\xfb\x25\xd1\x9e\xfc\x6b\x17\xb1\x48\x50\x61\xc8\x82\xf9\x2c\x4c\x86\xee\xcd\xf8\x55\x8b\x18\x0f\xd4\x3c\xaa\xa2\xe6\x65\x7f\x1a\x2e\x29\x05\xdc\xe7\x6d\xe1\x3b\x56\x9f\x00\xd3\x20\x62\x2a\xf3\x72\x6b\xd7\x58\x56\xc7\xbc\xa4\x54\x6e\x8c\xba\xe0\x7e\xa8\x61\x19\x7a\x9d\x6f\x92\x72\xda\xec\xbf\xda\xdd\x7c\xb1\x66\x04\x51\x16\x22\x89\xc3\xe7\xcd\xe2\x14\xcd\x22\xed\x91\x9b\xf7\x95\x46\xba\xff\x7e\x26\xf8\x21\x22\x25\x7c\x7f\x5f\x61\xbc\xcb\xcb\x71\x73\x6a\xf6\x7d\x4a\x53\xb1\x57\x63\x81\x2d\x12\xb4\x44\xfb\x98\xf7\x67\x1d\x11\x88\x78\x8c\x59\xda\x83\xe2\xda\x09\x78\xfd\x1f\xd3\x91\x89\xc5\x3f\x3e\xd6\x55\x65\x6c\x0e\x41\x12\x1f\xd3\x9f\xc6\x85\x0c\x59\x7f\x25\x0f\xe7\x76\xd7\xd6\x08\xc7\x59\xe5\x00\x22\x2e\x39\xad\x0a\x27\xe2\xb4\x8f\x83\xe3\x48\x64\x9c\x6e\x37\x6d\x79\x21\xc3\xe1\x01\x43\x10\x10\x69\xca\x6a\x97\x51\xb3\xaa\xf8\x24\xff\x83\x08\x42\xe5\x8d\xd9\xf7\x56\xab\x9c\xe8\x6a\xa8\xc9\x91\xe9\x6c\x55\xc1\x16\xb7\x91\x48\x32\xed\xd5\x39\xec\x6d\xff\x0e\xb5\xf3\xde\xed\xd2\x8f\xd9\x60\xb4\x76\x97\x36\x59\xb6\x5a\x4c\x57\x1f\xfb\x1e\xdd\x3b\xbd\x2a\xcd\x14\x69\xc7\xdd\xe4\x45\x61\xc5\x8b\x7f\x1a\x0f\x46\x1a\x53\x35\xf2\x94\xe9\x4b\x36\xfe\xb0\xe1\x24\x15\x79\x18\x71\x39\xed\xc6\xf7\x8b\xb7\x19\x33\x24\xd5\x38\xd7\x39\xff\x01\x0e\x86\x1c\x05\x3f\xb5\x81\x85\x08\x8d\xa4\x96\x16\xbd\x32\x8d\xc7\xfa\xde\x54\xce\xbb\x63\xfa\x2d\x26\x4b\x48\xa7\xc9\x7e\xcb\x5d\x25\xa9\x10\xb9\xdc\x58\xf5\x1f\xe1\x22\xb2\x22\xe5\xff\x3e\x63\xd3\x3e\xa1\xc6\x19\x83\x0b\x22\xa3\x42\x8a\x7f\xca\xf3\x91\x66\xce\x13\x76\x71\xf9\x7c\x90\xeb\x78\xf7\x86\x08\x3f\x69\x68\x40\x1c\x44\x91\x76\x65\x61\xda\xb5\x7f\x9b\x1d\x4e\x75\x26\x6c\x75\x09\x6f\xaa\xda\x9b\x6f\xe0\x61\x11\x42\x00\x71\x00\xd2\x9a\x99\xfb\xe2\xe0\xd5\xb9\x2e\xa7\xb9\x79\x1c\xc8\x8c\x42\xd1\x17\x68\x36\x65\x75\x7e\x7e\x21\xda\x63\x5f\x18\x70\x18\xb4\x81\x95\x77\xc9\x06\xbd\x24\x61\xb9\x53\x87\x80\xc8\x07\x1d\xf7\x31\xec\xc0\x8f\xc0\x04\x02\xaf\xa0\x55\x98\xaf\x1f\xb2\xce\xb5\x73\xaa\xbd\x64\xb0\x40\x1c\x87\x19\xf1\xd8\x4b\xfc\xf1\x58\x57\xc7\xea\x92\xee\xfd\x37\xb5\x32\xfd\xf9\x22\xdb\x05\xbf\xc7\x1f\x76\x0d\x9f\xaa\x5e\xf9\x51\x20\xbd\xde\x68\xb7\xd6\xe8\xd9\x45\x25\x31\xf3\x6c\x4f\xab\x75\x32\x82\x43\x5d\x5e\x94\x5b\xce\x63\x16\x2a\x63\x6b\x3e\xf9\xf3\x33\xd6\xbb\x97\x73\xab\xab\x1f\xe5\xec\xdc\x2c\x52\x84\x87\xf3\x54\xcb\x07\x63\xfa\xed\x2e\x4e\xe3\x98\xf2\x30\x4f\x21\xb4\x0a\xb5\x9b\xb7\x05\x6c\xe4\x24\x5c\x8c\xd3\xd4\x7a\xda\x98\xaa\x36\x98\x8f\xe5\x76\x21\x4e\x33\x5b\x4c\x75\xdd\xcf\x3b\x78\x27\x3d\x75\xa8\x09\xf9\xd5\xf3\x25\x20\x4e\xb9\xa2\x3d\xdc\xbd\xbb\x24\x66\xfc\xbf\x7a\x06\x3f\xd3\xc9\x9f\x5d\x2f\x00\xf2\xa1\x71\x34\xe3\xe3\x40\x9c\x4a\x6b\x6a\xea\x60\x22\xf7\x88\xfa\x17\xae\xdc\x10\x67\x49\x22\xb5\xeb\x4c\x9e\x72\x2c\xbd\x9a\x2e\xc4\x3c\x08\x3d\x76\x66\x3f\x62\x13\x8d\x37\xc6\x58\x84\x71\x98\xf5\x1e\x5a\x96\xe7\xbc\x03\x83\x77\xa8\x7b\xc1\x3e\x88\x41\x27\x14\x2d\xbe\x75\xaf\xd4\xaf\xda\x80\x10\x03\x1a\x16\x8c\x45\x9d\xa8\x9a\x39\x15\xe3\x71\x45\x48\x88\x65\x97\x04\xd1\xcc\xd0\xed\x4b\x0d\x3e\x3f\x8c\x35\x28\xd2\x05\x6f\x72\x8d\x57\xe8\xe9\xfa\x87\xbb\xd5\x9f\x7e\x04\xca\x2c\xf5\x96\x14\x8f\xf4\x0b\xc7\xee\x80\xcb\x0b\x6e\x8c\x2a\xa0\x64\x42\x79\x81\x60\x88\xd1\x44\xc4\xd0\x39\x55\x0d\xe1\x0f\x3d\x5a\xf5\x1f\x0b\xd0\x31\x88\x0d\xb3\x0c\xe4\xd5\x59\xb5\xd4\xf6\xdb\x59\xfe\xd1\x20\x52\x66\x07\x26\x41\x62\xcd\xeb\x9e\x50\x5f\x15\x67\x9b\x6a\x44\xfe\x60\xa8\x53\xda\xb8\x0e\xd8\xb4\xf9\x11\x5a\x74\x78\xde\x5f\x4d\xb5\xc9\x8d\x4e\xa2\x50\x24\x4e\xb8\xef\x0e\xde\xff\xc0\x3a\x1f\x55\x50\xfc\x6b\x9f\xc4\x41\xef\xe3\x4b\x5b\x37\x75\x56\x66\xb5\x90\x84\xc5\x99\x8c\xc6\x66\x1d\x5d\xb8\x30\x80\x38\x21\x61\x09\x0a\xe5\x49\x77\x1f\xf3\xbd\x29\x61\x32\x0c\xd1\xeb\xec\x5b\xe7\x03\x37\xdf\x28\x7e\x9a\x8d\x4e\x23\x9b\x8a\xff\x78\xb1\xea\x99\xd7\xbd\x78\x2c\x24\x9c\x09\x63\x5d\x10\x7e\x5c\x55\xd5\x6b\x5e\x3e\x1b\xf5\xd9\xb6\xfe\xc9\x7d\xe1\x99\xa1\xb0\xff\xf1\x69\x43\x26\x53\x8f\x9b\xa7\xf5\xe6\x7e\xbf\xfa\xb2\xf1\x52\xe1\x90\x88\x88\x11\x77\xbe\x39\xcb\x46\xd5\xb9\xfc\x54\xf8\xcd\x8f\xcf\x24\x89\x1f\x35\x4e\x44\x71\xa2\x9f\x3f\xc9\xfb\x17\x2f\xce\x2d\x4b\x09\x48\xcc\x4c\xff\xc8\x2e\x50\xac\x90\x80\xe2\x84\x75\xc5\xf7\x53\x55\xb7\x7b\x28\x5f\x49\x08\x74\xa9\xea\x97\xc8\x44\x07\xd2\x97\x5f\xde\x7c\x7a\x9f\xc8\x34\xa2\xf5\x34\x2f\xf3\x76\x1c\x62\xcd\xee\x92\x14\x9c\x92\x6d\x12\xea\x3b\x84\x87\x71\x51\x24\x91\x5a\xc7\xd2\xc1\x84\x28\x16\x59\xc3\x69\x80\x58\x40\xa2\x24\x4b\x06\x6d\xbd\x36\x1f\x12\x55\x1f\x1c\xfb\x81\x2a\x08\x7b\x6a\xc5\xd6\x0c\x71\xe6\x64\x6f\x4a\x94\xe6\x94\x6e\x81\xd6\x77\x48\xd2\x8d\x63\x10\xda\xe4\xba\x15\x46\x44\x5f\x27\xe2\xc0\x75\x65\x61\x5a\x5f\x47\x36\xb1\x6e\x9c\x4e\xa2\xd0\x49\x21\x3f\x58\x90\xec\x8f\x49\xe7\x6b\xfa\x7c\x75\x22\x02\x39\xe2\xc6\x74\x89\x0b\x89\xe1\x93\xda\x21\x9c\x4e\x73\xe6\xd3\x25\x98\x0b\x12\x04\xc8\x5c\x15\x6f\x5f\xb9\xb5\xe1\xc2\xd1\x7b\xf6\xc5\x88\x16\x8c\x40\xde\x74\x79\xf3\x3a\x02\x07\x41\x62\xd2\x20\xf4\xa6\x49\xb6\x84\xba\xfc\x2c\x8d\x0a\x48\x8e\x76\x4f\x4d\x5a\xf7\x69\x16\x06\x8a\xbb\xd6\xda\x6d\x5e\xbe\xee\xab\xc7\xaa\x69\x67\x89\x20\x0b\x63\x4b\xb5\xb2\x7b\xce\xb6\x34\xc5\x99\x92\xe5\x4f\x22\xbc\xe9\xd5\xb3\x30\x13\x56\x40\xba\xb9\xad\x9a\xbc\x7c\xbe\x9a\x49\x25\x03\x8b\x98\x22\xd4\x9c\x2d\xa4\xde\xe5\x05\x36\x6d\xe5\xb0\x1d\xdc\x8f\x81\x88\x14\x8b\x7c\x74\xb9\x2b\xab\x1f\xa6\x80\x57\x2f\x0c\x49\x0b\xfb\xe7\x82\x22\xc0\x22\x23\x49\xfe\xf5\x84\x75\x5e\xe9\xa8\xcf\x41\x3d\x2e\x02\x58\x9c\x84\x69\x38\x80\xf5\x09\xa3\x3b\xe6\x8c\x01\x8b\xb5\xa5\x25\x5c\x8d\xc4\x94\xba\xbf\x66\xda\x65\xb6\x14\xca\xfa\x18\xdd\x6d\x6a\x6e\x54\xe2\x00\xf7\xe7\xd2\xd4\xd5\x7f\xf0\xa0\x26\xcd\x52\x60\x09\x48\xe9\x8a\x0d\xb7\xbb\x4d\xd3\x05\xb2\x3f\x33\x86\xea\x3e\xa0\x63\xe6\x79\xc0\xdd\x34\x22\xc5\x2e\x7f\x10\x83\x91\xa1\xd1\xa1\xbe\x58\x45\x18\xe3\x21\x01\x59\x7e\x60\xee\x22\x9f\x11\x1e\xbc\x3b\x1c\xd3\xe2\xb7\xae\xca\x12\x9d\x42\xbd\x3f\x04\x21\x55\x0f\x9e\xf3\xb7\xee\x3b\x9d\x64\xc7\x72\x2b\xda\x7f\x44\x32\x66\xbc\xf4\x53\xad\xf7\x1f\x27\xbc\xb0\x4a\x00\x96\x2a\x4e\xdd\xac\xbc\xe9\xe3\x9e\x29\xc7\x08\x18\x67\xd6\x4e\xc8\xb7\xa7\x7e\x1e\xfa\x30\xae\x2d\xc2\x6c\xa2\x46\x8e\xe4\xdf\xd9\x5d\x43\xb4\x9c\xca\x32\x11\x58\x3b\x28\x07\xb8\x1b\x4d\x43\x91\x65\xce\xac\xbe\xd4\x14\x8c\x56\xf5\xd5\xc7\x94\x20\x37\x3b\x95\x0c\x08\xa9\xbf\x7e\x7a\xd8\xad\xb6\x4f\x87\xdd\xd7\xed\xe3\x81\x04\xbb\xfc\x4f\x12\x46\x52\xf2\xbb\x7e\xc1\x23\xf9\xbf\xac\x7b\x6e\x3f\x30\x08\x43\x35\xbc\x1a\x7b\x02\xf7\xdd\x55\xda\x2a\x0c\xcc\x26\x04\x44\x01\x3a\x37\x73\x07\xdb\x9e\xca\x0c\x8d\x37\x06\x26\x33\x6d\x38\xf5\x1d\xeb\x57\xec\x9b\x54\x13\xc9\x6c\x60\x52\x30\x6d\xf9\x1a\xd0\xbe\x58\xe2\xc5\xc1\x47\xc5\x4c\x05\x11\x15\x57\x6f\x37\xfb\x3f\xfb\xbf\xc5\x20\x2d\x7d\xf0\x07\xd4\x7a\x42\x1f\x01\xa6\x38\x57\xae\xed\x70\x43\xf5\xde\x71\x2d\xc7\xdf\x60\x9d\x64\xa1\x98\x8a\xa4\x11\x13\xda\x25\xcb\x7e\x54\xaa\x69\x3e\xe9\xba\x3a\x4d\x2f\x59\x2b\xa4\x52\x33\x58\xc6\xc3\xf0\x76\x6b\x1d\xd9\x42\x49\x75\x29\xe2\x32\x7b\x74\x3e\xf2\x64\xda\x58\x97\x34\xf2\x1f\x6e\x56\xf5\x2c\xa4\x61\x18\x31\x22\xd4\xa9\x02\xa1\xf6\x64\x42\x6b\x90\xe5\x47\x48\x9d\x0d\x2c\x53\xf7\x22\x53\x4f\xfa\xe7\x6b\x7e\x1a\x84\x89\x95\x63\xb7\x10\xe1\x02\xf5\xbc\xdd\x93\x06\x21\x64\x6e\xc5\xa0\xad\xcb\x76\x6b\x1c\xc8\xaf\xdf\x71\xd2\x20\x44\x72\x47\xb0\x80\x6c\xda\x8a\x77\xf9\xf3\x94\xe7\x3b\x4f\x68\xd3\x30\xb6\xbd\x01\x18\x3c\x48\x26\x0c\xaf\x6e\x84\xa1\xf2\xf5\xb7\x24\x1a\xd7\x1f\xd3\x30\xd5\xb4\xcf\x74\xfb\xd1\x6b\x5e\xb8\xdb\x31\xdb\x19\x67\x4e\x54\x90\x86\x99\x85\xb8\x12\x23\xec\x5b\x3d\x2b\x07\xa4\xa1\x88\xa8\x16\xb6\x7e\xda\xac\xf6\x9b\xc3\x1f\x9b\xa7\xdd\xf6\xe1\xfe\xf0\xf4\x70\xbb\xe9\xbf\xd7\x28\xe6\xe5\xdd\xad\x91\xea\x05\xf9\x15\xd2\x28\x08\x1d\x23\x4c\xcf\xbc\xd9\x21\x8d\xc2\x0c\x65\xcf\xe5\xeb\x16\xc4\x31\x9f\xef\xb1\x6a\x9a\xbc\xa7\xe4\x43\x1a\x71\x65\x1d\x33\xf2\x23\x8e\xdb\x5e\xb3\xfb\x18\x6b\xb4\x2c\x2f\xaa\xa1\xe7\xe5\x48\x65\x07\xd2\x24\x45\x42\x09\x2e\xab\xec\x9c\x47\xcc\x4f\x48\x93\xcc\x9a\x28\x3f\x63\xfb\x7b\x5e\x3e\x53\xf0\xd3\xf4\x27\x52\x49\x3c\xf6\xa2\xa4\xce\xdf\x4f\x33\xb0\x34\x31\xb1\x4a\x47\x06\x80\xb7\x13\x85\x34\xff\x06\xa4\x2c\xb5\xaa\x37\x76\xeb\xef\xd6\xcd\x89\xe6\xd2\xcf\xa3\xec\x94\x65\x29\xe3\xbe\xd8\xf9\x6c\x15\xef\xbe\xc0\xbc\x86\x99\xb2\x8c\xd3\xab\xd9\xc2\x2b\x56\x94\xf6\x7f\x72\x3a\x48\xbd\xc0\x65\x6f\x55\x3a\xd3\xab\x86\x94\xa9\x90\x2a\x41\xce\x77\xc2\xc1\xc0\xaf\x51\x15\x50\xbb\x54\xd9\xdf\xd3\x34\x13\xa4\x0c\xf0\xb4\xd9\x6d\x9e\xfe\xd8\x4c\x6c\xa7\x20\xcd\xb2\x98\x8d\xa9\xd0\x9f\xbc\xa8\x99\x54\x14\x13\x60\x0d\x0b\x0c\x42\x48\x33\x25\x68\x41\x73\xa8\xfd\xb9\xf5\x31\xa4\x3c\xb2\x5e\xc5\x54\x66\xbf\x3a\x7f\x8c\x3a\x99\x29\xe7\x82\x0a\xd7\xb4\x00\xf5\x7a\x1e\x4b\xe0\x8a\x54\x44\x21\x05\x48\x46\x2e\x78\x96\x43\x0a\x0a\xfc\xa3\xb8\xc6\x02\x9f\x41\x57\xd7\xb8\x69\xd4\x19\x0b\x20\xa3\xfe\x8f\xc5\xc2\xf5\x18\xee\x06\xa9\x64\x56\xcd\x61\x53\x7c\x4c\x8d\x34\x47\xcb\x8d\x4c\xe3\xd0\xb5\x04\x77\xd8\x92\x6e\xc1\x64\xdd\x90\x18\x07\xb6\xa5\x2e\x2f\x14\x33\x20\x95\x26\xb5\xea\x5d\x7e\xc3\xa6\x2c\x73\xb9\x01\x9d\x2a\xb0\x6e\x87\x7e\x3e\xf4\xef\x83\xee\xb6\x81\xee\xc5\xea\x75\xbb\x8a\x62\x04\x43\x82\x54\x67\x9a\xca\x15\xa3\x7c\x25\xc5\x84\xd3\x1d\xfa\xa3\x6a\x71\xa5\xdf\xb0\x6e\xf3\x06\x27\x6e\x9e\xd3\x4b\xc5\x94\x39\xed\xe9\xd7\x6f\x0d\xd6\xd7\xd8\x42\x5e\x2c\x83\x17\x21\x45\xe7\xf9\xe7\xbb\x32\xd7\xab\xd3\xe9\xbe\xd2\x5e\x15\xb1\xbf\x30\xc3\xa4\x4c\x47\xca\x71\x78\x9d\x3f\xe7\x2d\x14\xab\xba\xd7\x95\xed\xd7\x84\x2c\xca\x90\xf8\xf1\x77\xab\x3f\x0f\x8f\xdf\xae\x6e\xb7\xeb\xc3\xcd\xb7\xfb\xeb\xed\xfd\x97\xe9\x54\xce\x22\x13\x51\x0d\xc7\x8a\x80\xde\xbd\x4e\xd8\x62\xdd\xe1\xcc\xf2\x0b\xf2\xa6\x25\xe4\xd9\x75\xa5\xce\xd6\x60\x63\x2e\xd6\x31\x3c\xe8\x2c\x66\x9a\xa8\xb1\xff\x75\xb5\xda\xb5\x50\xea\x2e\xae\xfb\x5b\x1a\x3a\x90\xc5\xa9\x61\xe3\x52\x31\x99\xfe\xcd\xde\x8b\x2c\x89\x15\x41\xe9\x9a\xfc\xfd\x0e\x5a\xf5\x62\xf5\x42\xb7\xe5\x14\x02\x95\x25\xca\x7a\xc8\xf5\x78\xe0\x6f\x4f\xdb\xf9\x99\x0c\x50\x99\x4b\x9e\x3f\xee\xf1\xc7\xb6\x34\xf5\x54\xc9\x12\x32\x16\x66\x18\x0e\x55\xff\xab\xaa\xef\x81\x64\x69\x68\x59\xed\x73\xa9\xfe\x5e\xe5\xe3\x33\x9c\xe4\x34\xb9\x1f\x67\xbc\x59\x1a\x45\x54\x2a\xef\x2d\xef\x49\xac\x60\xdc\x94\xc9\xd2\x48\x10\xc8\xdb\xcf\xe0\xeb\xa7\xc7\xdd\xec\xa2\x53\x21\x48\xdb\xa9\x3c\x1f\x1f\xba\xe9\xfa\x52\x57\x3f\xfc\x44\xca\xb2\xc8\x3a\xa7\x7a\xfb\x9d\x71\xa9\xf4\x32\xe2\xf1\x1f\x62\x11\x99\x6b\x6a\x74\xe1\x13\xce\xb0\xa0\x7e\x9c\x89\x52\x2b\xb7\xdc\x6d\x1a\x3f\xd1\x17\x82\x8c\x03\x27\xb6\xf8\xd5\xf5\xa3\xbf\x34\x11\x67\xa4\x95\xeb\x98\x6e\xd4\xe7\x69\xd6\x55\xf5\x9a\xcf\xbf\x47\x08\x43\xc0\xcf\xff\xc2\xba\x7a\xbf\xce\x4b\xa8\xfb\x73\x48\x15\x38\x52\xd7\xbe\xae\x4e\x2f\x43\x75\x28\x83\xcc\x36\x1a\xf3\xe6\xc9\xad\xdc\xa8\x1f\x21\xff\x64\xfd\xce\x40\x2a\xae\x9d\x60\xc6\xf7\xaa\xd4\x9f\xed\x3e\x99\x4c\x15\xb3\x65\xc8\xba\xb5\xb0\xb8\xc9\x9c\x96\x2a\x54\x43\x83\xc7\x16\x1b\x9d\x4c\x6b\x7f\x69\x12\xad\x9a\xfe\x8f\x6e\x3e\xff\x91\x6b\xac\x56\xb3\x5f\xac\x20\x49\xad\x7a\x88\x7e\xc2\x37\xfc\x84\x90\x02\x99\x56\x9a\x7b\x19\x63\xcb\xc0\x58\x59\x05\x91\xf6\xc3\x3e\x6a\x37\x0e\xa5\x21\x6a\xa5\xe5\xaf\x87\x53\xfe\x3a\x64\x26\xb5\xba\x41\x0b\x11\xd3\x85\xf7\x2a\x8d\xa6\x04\xb9\xc4\x1f\x8b\x50\x66\x3e\xfa\xff\x7e\xe3\xe1\x41\x02\xd4\xe6\xff\x97\xae\xce\xf2\x73\xfd\x27\x3f\x1a\x51\x79\xf5\x3f\x2b\xbf\x5e\xbd\x4e\xb2\x6d\x1e\x86\x29\xc1\x93\xcc\xb9\xd4\xd6\xf0\x45\xe5\x27\x8f\xdc\x05\x1e\x1a\x4e\x84\xbe\xf2\x7c\x74\xe0\x9e\xc6\xbd\xa6\x93\xfd\x90\xc7\x31\xd0\x9a\xb7\x7f\x71\x7e\x22\xfe\x04\x09\x77\xe0\x21\xca\x30\xdf\xa0\xc5\xcb\x38\x92\x27\x3a\xa1\x64\xbd\xb7\xa1\x7b\x30\xa6\x3f\x01\x6a\x42\xb6\xdd\xfd\x75\x7d\x3b\x8e\x8c\x39\x0b\x12\x82\xc9\xdb\xee\x68\xaf\x0c\x36\xc6\xbd\x71\x26\x52\x0f\xcd\xfa\xd2\xad\xd1\xf5\xc7\x4d\x3e\x96\x02\x19\xee\x54\x1a\x67\xcc\x59\xd3\xb7\xd5\x1e\xd5\x8b\xd5\x9d\xfb\x1b\xb2\xcc\xfe\x04\x09\x26\x4e\x30\x10\xa8\xe9\xda\x45\x8d\xd6\x9d\xc1\x4f\x58\x9e\x66\x36\x01\x6c\xf2\xf2\xb9\xc0\xed\xf5\x9f\x77\xff\x1c\x9e\x44\x6a\x24\xe5\xa6\x5f\x37\xfb\xf5\xfa\x7f\xb9\x05\xf0\x2c\x8c\xb5\x7d\xed\xbc\x4e\x8b\x3f\x6d\x96\x25\x24\x4b\x99\x37\xdb\xb2\x39\xd7\x97\xcb\x0f\xcf\x44\x48\x21\x15\xd1\x29\x1c\x82\x0d\x17\x62\x11\x9e\x81\x09\x2d\x46\x3d\xaf\x27\x22\x5e\xc0\xb9\x94\xcc\x16\xf3\x88\xe0\x76\x9d\x37\x27\x6f\xed\x31\xaa\xeb\x4f\x66\xb7\xfb\x64\xb7\x7c\x11\x11\xe6\x1d\xba\x84\x2a\x9a\x2c\x03\x1c\x82\x80\x16\x26\xb2\xfd\x1a\x57\x54\xb8\x8c\xac\xd7\x65\x97\xa0\xbc\x41\xdb\xaf\x65\x5c\x66\xf6\x99\xd7\x48\x74\xa5\x5e\xdf\x75\xfa\xb8\xa4\x10\x44\x4b\x70\x35\x89\xe9\x41\x15\x85\x44\xcf\x1d\x53\x42\x81\x2b\x16\x47\xc9\xd0\x4c\x1a\x4a\xf5\x5c\x87\x21\xb5\x42\xf7\x2f\x79\xad\x1f\xa1\x6e\x3f\x88\x9c\xd1\x1f\xce\x42\x46\x62\xa9\x2d\x1e\x17\x77\x00\xae\x35\xa3\x2c\xef\xcb\xd3\x4d\x55\x7f\x81\x7e\xc2\x68\x8d\x14\x44\x3d\x75\xef\xde\x2f\xb0\x10\x5c\x23\x50\xf1\xd1\xe4\xa7\x66\xa5\xf5\xbe\xba\xed\xb2\xdc\xfa\xa2\x31\x3e\xda\x3a\x39\x72\xeb\xeb\x79\xbb\xff\xfd\xde\x7f\xa9\x09\x22\x6a\xf3\xec\x54\x4e\xea\x94\xbd\x96\x02\x1d\xa2\x10\x3f\x6f\x36\xc7\xea\x5f\x79\xff\xe7\x38\x65\x5e\xe5\xfc\x90\x97\xd4\xb5\xf2\xf9\xfb\x48\x2f\x06\xb8\x49\x12\xb4\xc5\xcb\xbe\xc2\x36\xb9\x11\x22\x54\xca\x16\x0d\xab\x31\xb1\x18\x44\xa8\x99\x7d\x39\xc8\x83\x63\x44\xaf\x04\x11\x45\x09\x41\xcc\x7e\x8c\x59\xf1\x7e\x61\x12\x51\x92\x52\x5d\xee\x70\x82\xba\xc1\x6d\xd9\xee\x54\x6e\xd1\x3f\x6a\x49\xd1\x14\x44\x1c\xc4\x5c\xf6\x35\x97\x83\xed\xa6\xfb\x63\x61\x2a\x32\x1b\xd7\xdc\x83\xea\xff\x1a\xc7\x56\xc2\xba\xd7\xb9\xce\x2b\x4d\x99\xe9\x88\x2a\x0e\x22\x49\x04\x81\x5c\xf6\x38\x5f\xff\x44\xc2\x12\x39\x86\xf1\xaf\x4a\xbd\xe4\x0b\xb8\xb8\xf0\x08\x96\x70\x87\xa6\x5c\xf7\x66\x10\xa3\x47\x2c\xd2\x54\xa8\xd0\x59\xd3\xfc\x36\xe9\x9b\xb8\x01\x59\x82\x86\x30\xf3\xe7\xa2\xcd\x5b\x1b\xf9\x4f\xbf\x82\x33\x20\xfd\xef\x01\x10\xfc\x1d\xf3\xe5\x7d\x5d\x70\x48\x42\xbf\xe4\x5a\xf5\x51\x57\xa6\x99\x28\x24\xcd\x2b\x16\x82\x6b\x96\x49\x97\xa9\x0c\x50\x97\x19\xd1\x1a\x84\x48\x32\x72\x6b\xec\x05\xbe\xf4\xc1\xd6\x64\x7b\x77\x95\x9f\x27\xea\x42\x24\x16\x28\xdd\x2b\xa4\x6e\xef\x7e\xf5\x09\x21\x89\x34\x70\xcc\xdf\x17\x3c\x98\xe6\x83\xd1\x26\x1c\xb4\xd9\xf6\x20\x9a\xe6\xfa\xdc\xcd\xb4\x87\x12\xaf\xe1\x63\xf6\xec\x85\x49\xb4\x95\xa7\x84\xe3\xfe\x47\xb5\xf5\x91\xb2\x80\x40\x50\x27\xe2\x78\x2e\xae\xf3\xb7\x5f\x7c\x2f\x44\x8a\xf8\x57\x2f\x55\xd3\x5e\x18\x97\x82\x80\xcc\xce\xbd\xdd\x59\x5e\x41\xf9\x8a\xf5\xb0\xd1\x0f\x31\xc6\xe8\x6c\xda\xfa\x97\xde\x6f\x1e\xfc\xaa\x20\x24\x93\xbd\xc5\x1a\xe4\xfa\x7a\xfb\xc7\xb5\xb7\x37\xf3\x43\x94\x06\x63\xbd\xeb\xf2\x72\x35\xaf\xaf\x09\x4c\x02\x0c\x06\x66\xf5\x35\xca\x59\xe3\x42\x98\x38\x25\x42\x83\x53\xae\xb3\x0b\xc0\x02\x10\xe2\x1f\xf3\x8f\x65\x66\xdc\xfd\x9e\xf2\xa6\x40\x18\x96\x10\x2a\xf6\xfe\x5c\x37\xf9\xc0\x69\x02\x61\xc0\xf2\x96\x08\x02\xde\xd6\xe0\x3a\x0d\xcb\x6e\xcc\x00\x41\x90\x52\xc7\x96\xca\x05\x36\xce\xfe\xcd\x1f\x4a\xb8\xb5\xa4\xb6\x42\x62\x9b\xf6\xc5\x46\xf1\xcd\x63\x5d\x29\x6c\x7a\x7e\x3a\x40\xc0\x90\x5c\xcc\x54\xde\x7e\xf8\x8a\xec\x13\x36\xd5\xb9\x5e\xb0\xdc\x5f\x7e\xd8\x10\x70\x14\xbe\x0b\x79\x35\xea\x21\x42\x60\x18\x55\x6b\xcf\x0d\xd6\xab\xa2\x46\xd0\x1f\x56\x15\x65\xd3\xbe\x4c\x9f\x06\x44\x89\x8e\xfb\x5a\x74\x17\x7e\x1f\x4c\xe6\x4f\x13\xc9\x8c\xa4\x67\xc0\x42\xb1\x7a\xb9\x91\xfe\x30\xa7\xa0\xb2\xae\xaa\x76\x8a\x09\x82\xc8\xa0\xef\x00\xde\x39\xc5\x32\xee\xe3\x5d\x88\x35\x7a\x8d\xb2\x2e\xc3\x6f\x06\xf7\x5d\x80\x24\x90\x56\x27\xe9\xdb\x58\x20\x01\x20\x49\x90\xa9\x1e\x11\xbd\xed\x4b\x0e\xc0\x42\x54\xa9\x67\xdd\x56\x35\xfe\x8c\xea\x0e\xc0\x20\x70\x84\x15\xc8\x7b\x8b\xff\x49\x04\x0b\x0c\x74\x1a\x8e\xab\x1f\x2b\x6f\x04\xec\xbf\x32\x4d\x79\xaf\xe9\xd3\x60\x4d\x02\xc0\xed\x56\xcf\x6e\x6c\x2a\xad\x55\xba\x2d\x51\x8f\x64\x0e\xbb\xcf\x5c\xee\x78\x90\x05\x29\x59\x21\x9f\x2a\xd7\xb8\xf7\x7f\x0f\x91\x96\xf5\x23\x05\x93\xa3\x8d\x84\x12\x32\xaa\x73\x36\x67\x49\xdc\xf9\xea\x06\xf1\x93\x56\x51\x97\x5c\x52\x33\xf0\xc7\xf9\x3d\x07\x0b\x3b\xf6\xe7\x11\x82\x93\x9a\xd6\x4d\x01\xd4\xfd\xe9\xf2\xda\xf7\xa1\x3c\x33\x04\x7e\x00\x71\x44\x12\x16\x9b\xe3\x29\xaf\xf1\x42\xc2\x65\xde\xa9\xfc\x7b\xa0\x01\x90\x71\x60\xc5\x0f\xf0\x54\x80\xc2\x95\xcc\x8b\x7c\x44\xc4\x1d\xa9\x75\x5d\xa4\x43\xfc\xb3\x53\xb2\x50\x09\xaf\x56\xff\xdb\xe7\x20\x81\x4f\x00\x69\xfe\x2c\xda\x84\x56\xf1\xf3\x74\x6e\xad\x53\xdc\xd3\xfd\x7d\xa5\x71\xf2\x80\x54\x14\x50\xc8\xfb\x5f\x88\xe5\x08\x49\x0e\x8a\x05\x84\x0f\xf2\x3b\xcc\xb5\xb5\x1f\x9f\x4d\x37\xc5\x03\x37\x4d\x1c\x76\x63\xc2\xc4\x19\xdf\x7c\x25\xac\xb6\x90\x13\xbb\xf3\x5f\xa3\x03\xab\x61\x99\x37\x24\x7f\x87\xf3\x79\xa8\x15\x77\x76\x04\x16\x83\x38\x44\x4c\x80\x01\xa3\x85\xcc\x11\x2c\xfa\xd2\x0b\x6d\x5a\xbf\x4a\x77\x3e\xaf\xc3\x00\x66\x99\xb0\xd2\xaf\x0d\xd6\xf4\x8e\x4c\x1f\x41\xff\xe3\x11\xc2\x78\x2c\x4a\x7f\x75\xae\xcb\xef\x2f\x58\xee\xda\xea\x74\x1a\xd6\x4a\xc3\x81\x4d\xae\x33\x3f\x56\xb5\xce\x67\x86\xe1\xb3\x29\x60\x04\x23\xb5\x8c\xc3\x33\x96\x5d\x06\x87\x3f\xeb\xa4\xca\x20\x16\xf4\x10\x6f\x61\xa2\x64\x03\x32\x48\x19\x21\xc7\x6e\x73\xe3\x98\x7e\x9f\x9d\x22\x4c\x34\x55\xac\xab\x5a\x93\x7f\x7c\x3b\x7b\xd4\x32\xca\xc0\xb5\xfd\x28\x81\x86\x35\x9c\x15\xf8\x95\x4f\xc6\x91\xd5\xc2\x18\x62\xbf\x0f\xa2\x8e\x2c\xfe\xc6\xe9\xb2\x26\xe3\x48\x91\x90\x2c\x55\x9c\xf3\x6e\x23\x79\xa6\x96\xe7\x27\x57\x9a\x04\x56\xc6\xa1\xad\x9e\x9f\x0b\x82\x4a\x8c\x1a\x5b\x32\x09\xac\x13\xfe\xc1\xe4\xcd\xcb\xea\xdf\x67\xa8\xf3\xf3\x0c\xb9\x2a\x59\xa4\x62\x0f\x74\xa1\xae\xaf\x97\x11\x74\xd9\x9c\x4c\x03\x24\x35\x1f\x0a\x9b\xa9\x0e\xa9\x1d\xd2\x7c\x0e\xa1\x96\x69\x1c\x53\x35\xea\x64\xcb\x02\x87\x06\xdb\x23\xbc\x3f\x55\x33\xb3\x13\x90\x69\x1a\x50\x81\xcb\xa5\x4e\xdd\x5e\xe6\x8e\x64\x11\x23\xda\x70\xae\x2a\xfb\x94\x77\xbd\x52\x02\xc8\x8c\x45\x2c\xb6\xd4\x41\x63\x1e\x73\xf5\xda\xf4\x47\xb8\x24\x04\xa5\xaa\x8e\x27\x2c\x1b\x68\xf1\x96\x14\xec\xee\xaa\x12\x6a\xf5\xb2\x1c\xd8\x4a\x6e\x52\x8a\x5f\xc0\x16\x77\xae\x3e\x82\xd1\x95\x08\x91\xd2\x5a\xba\x3a\xc1\xea\x5f\x30\x99\x49\xc4\xda\xb7\x69\x63\x17\x0a\x78\x0d\xca\xf1\x97\x5c\x88\x6f\xbb\x8f\x42\x64\x28\x58\xfd\x56\xe6\xaa\xaa\xcb\x27\x28\x55\xff\x8d\x10\x63\xec\xe5\x93\x3f\x8e\xb2\xe7\xa6\xb9\xc3\x32\xb6\xdb\xd9\x1d\xe4\xe5\x55\x9d\xeb\xe7\x0b\x06\xff\xa5\xa3\xfc\xec\xdb\xa5\xb4\x0d\x66\xc2\x6f\xb6\x58\x1b\x50\xb8\xed\x72\xf4\xee\xfa\xc7\xce\x63\x93\xd9\x2e\x75\x40\xcd\x02\xf7\xd2\xde\xe3\x8f\xdd\x4b\x55\x5f\x90\x08\xa4\x8e\x45\x90\x38\x74\x02\x42\xeb\xa1\x56\xc3\xd7\xeb\x24\xc5\x21\x96\x68\x9f\x2c\xa0\xda\x2a\x53\xdc\xc1\x69\x86\xf2\x9f\x94\x43\xa4\x66\x92\x0c\x66\x0e\xcd\x68\x42\x68\x61\x1d\x98\x5c\x90\xd6\xd3\xa3\x1e\xe1\x3c\x04\x68\x52\x43\x42\x36\x9b\x24\x1e\xd2\xff\xd1\xd8\xa6\xd2\xcd\xf6\x7e\xff\xf4\xed\xcf\x83\x6b\x71\xf9\xc3\x18\x58\x9b\x5c\xeb\x97\xd7\xad\xa7\xe7\xd3\xa9\xaa\x67\xf1\xad\xc4\xc8\xd0\x2f\x72\x89\xa2\x05\x4f\xf4\xe7\xc8\xb4\x4a\x7a\xe9\x06\xfb\xd2\x5c\xca\xe1\x83\x44\x25\xb9\xd3\x50\x7e\x82\x16\xc3\x60\xf6\x25\x26\x60\xca\xe1\xdd\x0e\xee\x97\x1e\x72\x55\x95\xf9\xbf\x0f\x50\xcb\xbc\x6d\xac\x4f\x07\xa1\xdd\x97\x97\x09\x13\xf3\x68\xa4\xbd\x78\x8b\x6f\x58\x4c\x5e\x72\x23\x02\x4a\xf1\x7a\x10\x66\xf5\x49\xc8\xac\x02\x6d\xcd\x37\x9c\x22\xc6\x13\x36\x58\x5f\x92\xf9\xfc\x60\x4c\x94\xd7\xfc\x46\x4a\xf1\x7b\x30\xf9\x82\x3a\x15\xa8\x30\x8e\xd9\xe0\x72\xd5\xcd\xa0\xe6\x0e\xde\xa9\xec\xef\x5f\x75\x15\x4a\xeb\x46\xd1\x80\xc1\x39\xcd\x73\x39\xdf\x53\xa1\xe2\x81\x9c\xf8\x3f\x84\x1e\x45\xaa\xa2\x24\xce\x12\xef\x31\xf9\xfe\x37\x20\x33\x2a\x52\x59\xe8\x24\xda\x08\xdc\x66\x55\xeb\xde\xf2\x16\xd7\x95\xfe\xec\x4e\xc4\x18\x87\x89\x2f\x9a\xe2\xdb\x82\xc3\x14\xa8\x04\x63\xca\xc7\x7e\xf8\x76\x73\x5e\x3e\x93\xb2\x88\xbf\x56\x96\xc9\xd8\x3a\xdc\xfc\x58\x3d\xde\x7d\xc6\x8a\xf5\x83\x41\xd2\x72\x31\xc4\x76\xb3\xe3\x0a\x89\xeb\xb9\x6b\xe1\x15\x5f\xac\x4c\x82\x3b\x94\x66\x92\x90\xb5\xf6\xe6\x3a\x3d\xd1\x6f\xa4\x65\x3b\x4f\xdf\x55\x2a\x21\x71\x18\x8b\xbb\x4a\x0f\xd6\xb7\x97\xd5\x71\x95\x25\xa9\x17\x72\xb9\x87\x23\x01\xd2\x16\x81\x5b\x2a\x4b\x54\x4f\xd8\xf6\x32\xaa\x1e\x99\xa9\x32\x96\x7a\xfe\xfd\x7b\x7e\xd6\x50\x5d\x22\x48\xfb\x1d\xb0\x0b\xc9\xbc\x48\xe5\x1d\x94\xf0\x6c\xe3\xf5\x91\x07\x98\x1f\x17\x5a\x8f\x9e\xbc\xb9\xaf\x36\xc7\x53\xeb\x9d\x49\xfa\x59\xc7\x33\xce\xc1\x4b\x42\x28\xab\x9d\xf8\x70\xc2\x92\x96\x51\x6c\x46\x96\x4f\x34\x96\x70\x12\x6e\xbd\x5c\x90\xf7\x1a\xc7\x58\x0a\x20\x0d\xa2\x09\x4b\xce\x46\x8e\x03\x7c\x78\x7a\xad\x32\x64\x44\x41\x3f\xf4\x50\xf2\xbf\x95\x63\x2a\x99\x24\x89\x85\x27\x9f\x20\x2f\xdb\x3f\xaa\x77\x1c\xd7\x0a\xf8\x65\x3b\x5b\x49\x4c\xa4\x23\xb1\x1f\x8e\xf0\xfe\x6d\xb3\x6f\x1e\xbb\x98\xa4\x3d\xd7\xe5\x2d\x36\xcd\xfe\x05\x66\x2c\x05\xa5\x62\x08\x9d\x38\x52\x39\xc7\xe5\xcd\xdd\x6d\x40\x29\x06\xa1\xa3\x2a\x59\xe2\xae\xbf\xdf\x9a\x59\xeb\x93\x51\x28\x71\x97\x97\x5d\x28\xf1\xad\x9c\x0b\x7a\x74\xa3\x81\x3a\xa1\x14\xb0\x59\xc5\x8c\x9f\xdf\x0b\x2d\x32\x6f\xd7\xfe\xad\xcc\xff\x7d\xc6\xdd\x89\x96\xee\x85\x3e\x82\xd2\xd2\x56\x48\xbb\x57\x37\xf7\xf7\x6c\xba\xbf\xfb\xfb\x85\x2a\xa3\x85\xc6\xe9\x49\xd4\x1f\xbb\xaa\x78\xa0\x8c\x6e\x89\x62\x14\x4e\xfe\x33\xbd\xf3\x26\x36\x44\x63\x50\x23\x84\xcd\xb6\x5c\xc3\xb9\xd0\x75\x55\x5a\x82\xca\x79\x2c\x94\x32\xe9\x29\x29\xe3\x44\x5c\x1b\x6c\xa9\x8b\xb6\xbd\x5e\x2c\x8d\x2a\xa3\xad\x72\x22\xe1\x80\xaf\xc8\x34\x67\x53\x52\x35\xe4\xe2\x1e\x1b\xa3\x94\x99\xe8\xbd\x5a\x54\xdf\x24\x56\xd0\x41\x10\x38\x3f\xfd\x57\x2c\xb7\x4d\x73\x9e\xdd\x4d\x1d\x48\x49\x7c\x93\xfd\xe6\x0e\xda\x8b\xc0\x6c\xf4\xee\xea\x30\x0a\x08\x61\x65\xa9\xcf\xee\x3b\xe7\x0e\x04\xa0\xc3\xd8\xf2\xfb\x4c\x3e\xf6\xc2\x1c\xc7\x0e\x3a\x92\x19\x89\xc2\xdb\xf5\x8c\x32\xa3\x59\xec\xa2\x63\x54\xa4\xe9\x45\xe5\x84\xe5\x35\x5c\x27\xa1\x5d\xea\xa8\xaa\xda\x60\xa9\x3f\x5f\xeb\x74\x12\x09\x02\xd9\x1c\xe4\xf9\x63\x5d\x1d\x8f\x55\xb9\xdf\x7f\xff\x55\x76\xed\x3e\xcb\xa2\x98\x90\x4c\x7f\xb8\xf7\x7b\x55\x6a\x2a\x88\xfc\x36\x77\xcb\x04\xcd\x58\x16\xa5\x83\x0c\xf8\xd8\xc7\x6a\x76\xf1\x2c\x8d\x23\x1b\xfa\xd9\x1c\xea\x1e\xdf\x7d\x39\x4d\xa7\x91\x06\xdb\x39\x31\x2d\x17\xb3\x07\x96\x85\x63\xa0\xac\x95\x30\x20\x04\xce\xe2\x9b\xa5\xb3\x90\xb9\x50\xa3\x57\xbd\xeb\x79\x80\x4b\x8b\xbd\xe6\x31\xd0\x1a\xd3\xbd\x81\x7b\xef\x39\xeb\xaf\x8c\x33\x93\x39\xc6\xc4\x4a\xbd\xe4\xf8\x86\xfa\x7a\xbe\xe2\xa5\x89\xfb\x8f\xfb\x8c\x88\x19\x0c\xae\x9a\xd6\xd2\xdf\x41\xd3\x46\xb3\x4b\x08\x34\xe1\x08\x27\xbb\x75\xe8\x85\x9d\x9a\x2b\xd9\x82\x16\x60\x68\xe3\x7a\xa5\x80\x64\xd2\x26\xd3\x10\x2a\xba\xfc\x6e\x81\xef\x56\xaa\xc9\x72\xd2\xf4\xa3\x12\x69\xd5\x7e\xa1\x40\xfb\x56\x2c\x3f\x25\xd0\x99\x95\x54\xa1\x52\xd3\xae\x0b\xad\x66\xef\xa1\x96\x60\x93\x2c\x2b\xa0\xd3\xe5\xd8\xfe\x4b\xa4\x62\x44\x54\x1c\x29\xea\x4e\x7d\x69\x96\x23\x85\xee\x73\x10\xf8\x4d\xb2\xa5\x5d\x6f\x3e\x41\xa7\x97\xa0\x02\xb0\x3c\x8e\x12\xe1\xf5\xdb\xe9\xa1\xbf\x02\x15\x02\x35\x26\xbc\xce\x43\x35\xdf\x1e\xb4\x8a\x25\x6d\xc8\x2f\xd0\x58\xfe\xdc\xf2\x25\x29\x6e\xe8\x8d\x7d\xaa\x9e\xcf\xf8\x58\x57\x6d\xa5\x06\xc0\x9e\x1b\xa3\x43\x69\x71\x52\x55\x09\xed\x28\x87\xd4\x18\x5a\x0f\x88\x83\xcb\xcf\x6c\xfb\xff\x06\x47\x1c\xfa\x74\x06\xe7\xd4\xc8\x62\x52\xa1\x3c\xd8\x3b\xbf\x86\x5a\xef\xb0\x5d\xb5\xc4\x84\xfe\x64\xaa\x23\xb7\x79\xfe\xbe\x3a\x6d\xdf\x3e\xfa\x6f\xe7\x9a\x2a\xb6\xda\xf9\x29\x79\xb1\xf7\x11\xaa\x40\xa3\x90\x84\x02\xce\x55\x65\x37\x53\x5b\xf3\x9d\x9e\xde\x04\x21\xb1\x8e\xfd\xcf\xf8\x24\xd4\x9e\xdd\x39\x13\x62\x66\xb7\xec\x02\x95\x4b\x48\xfa\xe0\xa9\x4b\x7a\x62\xde\xf3\x39\x76\xea\xa5\xaa\x0a\x6b\x35\x6a\x07\x60\x90\x71\x11\xf4\x1b\xe3\x2c\xdd\xc1\x20\x53\x7a\x8c\x2f\xbc\x25\x64\xca\x7c\x90\xb1\x3d\xe5\xbc\x54\xb7\x67\xf5\x6a\x35\x19\x16\x27\x12\x86\x86\xa9\x78\x48\xa4\xaf\xe9\x49\x4e\x1f\x33\x46\x71\x4c\xf7\x4a\x15\x08\xe5\xb7\x53\x17\x3d\xe7\xd5\xb9\x19\xf3\xec\x31\xd6\xb6\xee\xe8\x2b\x2e\x6b\x2a\x16\x0e\x07\xa9\x2e\x6e\xdd\xdc\x7f\xff\xcb\x03\x19\x30\x09\xb4\x57\x4d\x73\x81\x17\xa9\x41\x63\x4d\xf2\x99\xc5\x54\xa7\x00\x93\x2e\x1a\xfa\x3f\xff\xdf\xff\xd9\xb8\xca\x84\x3f\x4b\x1a\x59\xab\x8d\xe7\xee\x8e\x81\xaf\x30\x53\x8f\x74\x3f\xdd\x1c\x31\x63\x76\x65\x3a\x1e\x5c\xbe\xf8\xad\xd1\x2b\x92\x6a\xed\x93\x55\xcc\xd2\xc4\xbe\x42\xe4\x24\x7a\x03\x45\x63\x97\xad\x69\x4e\x8e\x3c\x0e\x23\x1c\x44\xbd\x5d\x00\x3f\x0a\x35\xad\x26\x91\xfd\x64\xbf\xea\x21\x47\xab\xca\xe6\x3b\xab\x37\x05\x5c\x30\xf8\x67\xcf\x48\x08\x45\x2d\x9c\x1e\xc9\x31\x0f\xea\xfe\x67\xfc\x05\x02\x12\xaa\xfa\x3b\x3c\x84\xb3\xfd\x5a\xc3\xc9\xff\x3e\xa1\x33\xec\xd6\x8e\xc3\x41\x41\x51\x48\xf8\x44\x15\x18\x10\xc2\x24\xd1\x5e\xe3\xc0\xd6\x49\x2d\xa9\xf0\xbf\x13\x2f\x6b\x81\x10\x8b\xb4\x77\xb5\xcf\x51\x17\x17\x40\x14\x84\xc4\x66\x00\xb7\xb9\x41\x0f\xd0\xf7\x5d\xee\xee\x20\x65\xe8\x4d\x5b\xaf\xab\x52\x81\xeb\x20\xfc\x63\x4c\xfd\xf5\x43\x99\x23\xd8\x3a\x91\xb0\xe5\x09\x0d\x60\x6d\x18\xf2\xe6\xaa\x5b\x49\x5d\xd1\x60\x78\xba\xa0\x03\x6a\x6c\xe5\x65\xde\xe6\x84\x6c\xdb\x96\x3a\x7f\xcb\xf5\x19\x8a\x35\x9c\x9a\x9b\x73\xa9\x09\x18\xf1\x09\xc6\x0a\x65\x6c\xf5\xb3\xa9\x82\xe3\xc0\x1f\xdb\xeb\xe6\xea\x63\x5d\xe4\x38\x87\xbc\xa2\x0a\x14\x2d\x91\x37\x79\x8d\xa6\xf8\x70\xc5\x44\xf8\xc5\x86\x80\x2a\x32\xe0\xbe\xe4\x4b\x5e\x17\x8d\xd3\x1e\x5e\x08\x8e\x51\x29\xa1\x7a\x6a\xda\x17\x38\xe2\x43\xaf\x85\x0c\xa8\x23\x15\xf7\x32\xc9\x3f\xa0\xd6\x4b\xfa\xb7\x7e\x6c\x1c\xd2\xc4\x71\xa1\xf3\xd8\x43\xb3\x1f\xa1\x88\x06\x42\xa1\x25\xf1\x27\x27\xe6\x8a\x80\x98\xf2\x14\x87\x76\xe4\xe8\x65\xb8\x48\x5b\x11\x81\x51\xc6\x70\x7d\x37\x79\x99\x4d\x9c\x4a\xab\x4e\x58\xbf\xe5\xe5\xb9\x19\x75\x01\x4c\x90\x24\x59\x38\x6d\xe9\xaf\xa1\x28\x2c\x58\x78\xc9\x3c\xfb\xf3\x66\xc5\x27\x9a\x5f\x26\x60\x86\x6e\x98\x89\xfd\x97\x86\x81\xd5\x0c\x24\x17\x20\x57\xa8\x83\x11\x45\xd6\x84\xb1\x26\xd2\x9f\x05\xac\xf6\x9f\x8b\x82\x84\x38\x0d\xa4\x8d\xf1\x60\x6e\xab\xf2\xf9\x6b\xa5\x3d\xec\xc1\xc4\x98\x50\x5f\x97\x22\x3e\x3e\xbd\x37\x26\xc9\x2c\x7d\xd2\xaa\x48\x5f\x91\x12\xbd\x9b\x90\xf3\xb7\xd4\x24\x42\xd0\xd7\x37\x50\xde\xe5\xe5\xad\x85\xde\xf8\x63\x26\x44\xdd\x2b\x79\x5c\x43\x5e\x7c\x3c\x62\x3d\x6e\x22\xb8\x81\x2c\xcc\xa8\x7a\xfb\x05\xad\x71\xef\xb0\xe9\x72\x3f\x42\x44\xd2\xb2\x44\xa8\x9f\xdb\xab\x51\xce\xc2\x6e\xc3\x50\x92\xd6\xd3\xe3\xd3\x66\xbd\xdd\x6d\xfb\x5e\xb7\xc9\x62\x34\xd9\x08\xab\x8e\x7a\xe4\x83\x06\x26\xc3\xcc\x1b\x3f\x11\x55\xf4\xad\xb7\xb2\x18\xae\x92\x07\x82\x08\x41\x87\xbc\xb1\x41\xde\xf0\xed\xb3\x9b\xc2\x39\x33\xdc\x67\xb5\xff\xd9\x96\x4d\x4b\xaf\xe9\xa5\x35\xca\xec\x73\x22\x09\x85\xee\xdd\x57\x48\x88\x40\xbd\xde\x54\xf5\x6e\xe0\xb7\x1b\xa1\x43\x52\x56\x22\xcf\xd9\xd3\x75\xf5\xfc\xc9\xb9\x20\xe1\xa4\x6e\xfd\xfb\xc3\xf6\x61\xb7\xf7\x0c\xb8\xbf\x05\xc5\xbd\x08\x2a\x0c\xc8\xd0\x92\xee\x6d\xa5\x7b\xec\x55\x04\x06\x8c\xa4\x95\x91\xd2\xa2\x1d\x96\x7a\xd4\x9a\xee\x1f\x8c\x0c\x38\x47\x6f\xa5\x7c\xed\xbc\xfd\xfd\x19\x24\x84\x3c\x19\xa2\xde\x17\xa8\xdd\x7e\xe6\x8a\x60\xb3\x07\x21\x65\x18\x05\x83\xcd\x20\x35\x9d\xa7\xd7\x2b\x75\xac\x07\x5d\xc7\x0b\x41\xc7\xbf\x25\x27\x67\x24\x5a\xbc\xea\x3d\xaa\x16\x6a\x8a\xa8\x2b\x92\x8e\x5f\x5c\xc0\x8c\xce\x32\x86\x83\xc2\x05\x7a\x72\xd7\x4d\x65\xa7\xfc\xf2\xa7\x4c\x20\x48\x40\xc6\xab\xe0\xd6\xaf\x65\xa5\x71\xde\xf5\xf1\x83\x23\xe0\xb1\x6f\xc5\x3c\x79\x54\x62\x6f\x5f\xd8\xdd\x8c\x7e\x46\x1b\xd0\xc6\xc9\xb4\x8c\x59\x3a\xfd\x61\x95\x58\xcb\x74\x1b\x88\x38\xbf\xec\xfe\xa9\xca\x20\x48\x40\x64\x5e\x7c\x4a\x1f\x68\xd1\x3d\x34\x88\x7a\xe2\xaa\x20\x83\x28\xe4\x3c\xe9\x5f\x72\x52\x84\x21\xeb\xb6\xf3\x85\x07\xa5\x0c\xa2\x48\x3a\x6b\x99\xa6\xe7\x20\xad\xa6\x67\x33\x11\xe5\x7b\x9b\x73\x5d\x9d\x7a\xf5\x04\x19\xc4\xca\x24\xa9\x63\x15\x5a\x9e\xc2\x3c\x43\x19\x96\x51\x19\xc4\x3a\x40\x3e\x4a\x59\xf3\xb6\xe9\x1e\x81\xb5\x06\x26\xc8\xe1\xdc\x79\x49\x06\x49\x10\x52\x18\xa7\x51\x15\xbd\x09\x95\x0c\x92\x24\x25\x4d\xc1\xe6\xa3\xd4\xc4\xf1\x72\x2c\x40\x17\x3f\x95\xfd\x38\xc6\x69\x73\xe8\x96\xae\x63\x99\x37\x34\xbf\x0f\x91\x3f\xcc\xc2\x8c\xbc\x10\xce\x0d\xd6\x45\xf5\x5c\x9d\xa7\x3b\xb5\x0c\x18\xa4\x54\x8d\xdd\x96\xb2\x6a\x49\x2b\xf8\x62\x3b\x59\x9a\x40\x32\x60\xd2\x18\xe3\x57\x2e\x6b\x67\x39\x4a\xce\xdd\xa0\x34\xb2\xfe\x31\xd6\x0a\xd2\x69\x8b\xf7\x72\x54\x7e\x10\xd3\xde\x42\xca\x49\xf8\xbb\x98\x62\xfc\x5a\xc8\x20\xcd\x80\xfa\xab\x96\x26\x3c\x9a\x73\x32\x48\x25\x82\xcd\x5e\xbb\xa8\x67\x32\xed\x96\xc2\x25\x19\xa4\x1a\x22\xd7\xf9\xf8\xb6\xff\xd4\x96\x4a\x06\x59\x62\x4d\x15\xae\x6e\x1f\x1e\x46\xfb\xb5\x0c\x32\x6e\x5f\xf4\x23\xf4\x53\x28\x33\x01\x73\x64\xe3\x5b\x28\xb5\x0d\x5a\xec\xd6\x35\x54\xc8\x64\xc0\x03\x20\xfa\x80\x65\x16\x5c\xe5\xd0\xbe\x14\x55\x39\x6d\xd1\x4e\x8b\x49\x73\x29\x93\xe9\x73\xe0\x3a\x20\x05\x8c\xdd\xe3\xea\xaf\xc9\x25\x72\x93\x31\xd9\xab\x0b\xe2\xc7\x78\x76\x09\xb4\xae\x51\x33\x4f\xe9\x9f\x16\x72\x65\x00\x82\x53\xfb\xd1\xae\x6e\x5f\xb0\x0c\x46\xdb\x80\x1b\x23\x23\x41\x21\x1c\x9c\x4e\xc5\xc7\x8e\x08\x7b\x37\x88\xfb\xc1\xaa\x48\x06\x52\x29\x5b\xb9\xb7\x5a\xb0\x75\x7f\x07\x95\x04\xa2\x10\x6f\xd7\x0f\xbf\x14\xd3\x98\xde\x04\xa5\x99\x1c\xa4\x18\xef\xf2\xb2\x5b\xfd\x2e\xdd\x05\x64\xa0\x50\x7b\x91\x42\xf5\xba\x34\x51\xfc\x38\xc3\xa9\xd9\xf3\xbd\x2a\x8c\xbf\x3c\x2d\x22\xad\x07\x5b\xac\x9e\xe9\x2f\x03\x0d\x0c\x2c\x60\x9b\x4a\xae\xd3\x53\x69\x19\x45\x03\xfd\xe0\x0a\x96\x84\x6d\x07\xe4\xc8\xec\x96\x63\x9a\xa5\x8e\x39\xbc\x39\x5a\xc3\xbe\x4f\x66\x89\xff\x80\x06\xe1\xb4\x3c\xfc\x42\xb7\x50\xfd\x92\x81\x01\x45\x9b\xcc\x08\x0d\x3d\xfd\x66\xa3\x6d\x31\xf0\xd8\xe5\x13\xfb\xa9\x43\xef\x4c\xe9\x56\x06\x06\x39\x35\xb3\x7a\xdc\x9c\xcf\xbb\x64\x18\x70\x11\x0e\x93\x66\xb2\x23\x79\x34\xf1\xa8\x8a\x26\xc3\x50\xc4\xd6\xc3\xf9\x69\x73\xb7\xbd\xdf\x1c\x56\xb7\xb7\x0f\xeb\xd5\x7e\xfb\x70\x7f\x58\x5d\x5f\x6f\xae\x97\xdf\xe8\x30\x44\xa9\x75\x2f\x86\xb3\xf5\x5d\xfc\x4f\x46\x47\x19\x04\xaa\x37\x17\xba\xc2\xa6\xfd\xa5\x43\x86\x0c\xe3\x2c\xb3\x1a\x4b\xdd\x9c\xdd\x21\x8e\x69\x41\x32\x4c\x20\x09\x6d\xa4\x88\x65\x17\xa9\xab\x8f\xaf\x58\x9c\xe6\xbf\x76\x76\x4a\x16\x44\x54\x46\xa5\xe9\x38\x6a\xb9\xc9\x90\x25\x19\x81\xca\x4b\x7c\xa7\x7e\x8f\xeb\xe2\xe6\x47\x3c\xf4\x43\x74\x46\x3f\xc2\x6e\xe1\x37\xb9\x69\x5f\x36\xef\x9f\xac\x64\x21\x33\xb6\x14\x7d\x82\x73\xd3\xbd\x20\x9e\xa2\x2a\xc3\x94\xa5\x74\x64\x0f\x05\x96\xed\x46\x9f\xad\x1d\xdd\x78\x2d\x09\x53\xc6\xe3\x70\xf2\xda\x7c\x22\x7e\x20\xc3\x54\xd9\xfa\x26\x68\x7d\x95\x3f\x93\x42\xd6\x65\x91\x49\x86\x59\x98\xd1\xa2\xff\xc7\x7a\xbd\x48\x4c\x18\x4f\xea\x30\x8b\xac\x4e\x15\x89\x14\x38\xbd\xb1\xab\x8f\x49\x89\xcc\x8f\x14\x48\x3c\x48\x1f\x5e\xd8\x9d\x69\xe2\xb6\x2a\xc3\x4c\x82\x57\x38\xfb\x02\xcd\xba\x2a\x9b\xf3\x7c\xe7\x0a\x39\x98\x28\xf3\xac\x4c\x02\xdb\x2c\xff\x5c\x6e\x52\x92\x3a\x22\x4c\x78\xff\x9a\xec\xab\xbf\xee\x66\x27\x14\x3a\xb6\x85\xfe\xea\x7c\x72\x77\x77\x0d\xc7\x13\xe4\xcf\xe5\x20\x0f\x21\x43\x61\x8c\xe9\x8d\xce\x6e\x6a\xf0\xc2\xc4\x32\x04\x9e\x68\x18\x34\x18\x48\x1f\xb2\xea\x52\xb3\x3e\xcd\x97\x21\x28\x41\x4c\x86\xab\xed\x7e\x77\x3d\x79\x82\x32\x54\xd2\xdd\xc2\x9d\x55\xcd\x21\x3e\xc9\x2d\x34\x84\xc1\xed\x87\xc5\x9c\x04\x4d\x36\x5b\xb2\xa5\x1e\xd2\x50\x19\xca\x8c\x99\xc8\x49\xf3\x7f\x2b\x4f\x90\xeb\x31\xb5\x53\x86\x12\x4d\xe2\xe2\x50\x4a\xb9\xac\xc8\xc6\xfc\x7e\xe9\x18\xe8\x3d\x85\xa6\xc9\x9f\x4b\x4f\xee\x98\xc9\x95\x4c\x1e\xbe\x76\xc6\x41\x34\xf7\x1e\x9d\x44\x49\xbf\x5c\xa0\x48\xc9\x07\xfa\xe8\x59\xcc\x16\x33\xef\x2f\x0a\xa5\xa4\x62\xce\x43\x89\x77\x79\x51\xcc\xe7\xb5\xc9\x84\x8f\x03\x7a\x1a\xf4\xc8\x08\xce\x8e\x8a\x82\x2c\x8d\x3c\x81\xdd\x98\xbc\xc8\xa1\xc5\x05\xb9\x6b\x19\x05\x02\xe9\x55\xba\x83\x32\x37\xd8\xb4\xd5\x62\x8e\x24\xa3\x50\x58\x9d\x8e\x1d\xb4\x50\x36\xde\x1a\x5e\x46\xa1\x0c\x7c\x91\xc5\xdf\xbd\xc9\x85\x74\xf7\x02\xfa\x8a\xe2\xc4\x4d\x5d\x46\x11\x43\xaa\x2a\xba\xe9\x7a\xd3\x97\x29\x65\x14\x41\x9a\xb8\xc4\x85\xba\x72\x54\x2f\xb9\xd0\xb3\x95\x51\xa4\x98\x07\xae\x3a\x81\xf4\x75\x91\x1b\xb3\x98\x42\xc8\x28\x0e\x19\x99\xa1\x17\xd0\xb4\x3e\x2e\x1d\x28\xd2\x32\x8a\x15\x0b\xb4\xa5\xb0\x5d\x77\xfb\xd0\xcd\xfe\xf7\x78\x87\xa7\xd6\xa9\x1a\xfb\x61\x2c\x56\x90\xda\xc4\xb2\x0b\xe4\x2b\x47\x19\xe0\xee\x70\x9a\xc4\xc4\x67\x51\xd5\xf1\x98\xb7\xeb\xaa\xe8\x92\xd4\x1a\x8a\x7d\x35\xe1\xd2\x4f\x7f\x48\x16\x07\xd4\x0c\xee\xe6\x98\x67\x8f\xcc\x7e\x6b\x26\x2d\x7a\xfa\xd8\x85\x45\x9f\x9c\x45\x67\x8c\x0d\x75\x1d\x2b\x52\x39\xb6\xc3\x95\x11\xcf\x12\x62\x0f\xcb\xf3\xc7\x6e\x2e\x59\x2c\x23\xae\x32\x0b\x4c\xb2\x55\x37\x57\x95\x9b\x64\x1e\x11\x47\xee\x6c\xc1\xeb\xb7\x5c\xb9\x30\xff\xea\x5c\x5f\x44\x83\x6e\x3c\x24\x86\xe6\x40\xdb\x23\xbe\xdf\xb0\x3c\xff\x62\xef\x8a\x80\x65\x59\xd4\x5b\x70\x7f\x85\x5a\xaf\xe1\x34\xbb\x5a\x48\xb5\x72\x38\xee\xa2\xf9\x82\x6d\xfb\x09\xac\x47\x46\x60\x62\x22\xa8\xad\xa1\x28\x96\x45\xa1\x64\xa4\xb8\x0c\xd3\x41\xc3\xef\xb6\xfa\xa1\xe0\xf4\x84\xa0\x7a\xcd\x18\x19\x21\x03\xda\x33\x4f\x05\xfc\xdc\xd4\x4a\x46\x28\x15\x6d\x2b\xe4\x7d\x44\xce\x88\xee\x65\x6d\xb1\xee\xed\x41\x64\x64\x02\x24\xae\x7d\x5f\x0f\x9f\x28\x9d\xc8\x38\xca\x32\x66\x45\x48\x08\xd2\xde\x6d\x65\x90\x0f\x24\x95\x4b\x20\x9b\xfb\x5c\x1c\x42\x9c\xf4\x39\xca\x09\xeb\xde\x7b\xc6\x0f\x50\x92\xea\x91\x79\xf9\x3e\x93\x06\x94\x71\xa2\x15\x85\xe8\xc7\xaa\x44\xf2\xdf\x1e\xaf\x41\x31\x0b\x23\x62\xd5\x15\x55\x77\xc7\x97\x01\x97\x32\x66\x09\x43\xb7\x34\xb8\xde\xda\xec\x78\x9a\x11\x63\xab\xdb\x99\x5f\xc7\x09\x75\x9c\x26\x81\xe2\x97\xa0\xc1\xc5\x62\xa1\x7f\x7a\x71\x8a\x09\xbd\x94\x47\x2f\xf9\xd4\x4c\xce\x99\x31\xab\x7e\x60\x35\x50\xe8\xc5\xb8\xfa\xb8\xc3\x2e\xf8\x2b\xdb\xe9\x8d\xe1\x31\x78\x9d\x67\x7f\xe7\x1c\x7b\xf3\xae\xd2\x78\x85\xaa\x3a\xa2\xf3\xe1\x18\xb5\x3d\x64\xcc\xd3\xc0\x91\x59\x9a\xf6\xd0\xfe\xa8\xa8\x29\xbd\xf9\x37\x59\xe0\xba\x21\x10\x47\xca\x96\x6f\xba\x49\xb6\x2a\x8a\xcd\x3b\x29\x2a\x17\x73\x0e\x6c\x3f\xde\x42\xc8\x1a\x05\xc7\x1d\x3a\xec\xef\x84\x76\x20\x63\xc9\x33\xe3\xe2\xe7\xcf\xc5\x83\x64\x2c\x35\x77\xca\x68\x5d\xbc\xb5\x3f\x97\x68\xf9\x99\x0b\x18\x0d\x8f\x2e\x18\xe0\xe7\x61\xc4\x87\xff\xe1\xba\xc8\xa3\x53\x1b\xa0\x5f\x65\xe1\x07\x9f\x58\xfe\xb8\xb1\x2a\x48\xc8\xec\xe1\x6a\xf5\xfb\x66\x32\xa9\x94\x06\xaa\xf7\x3f\x3e\x6d\x0e\xdb\xf5\x83\x35\xea\x3a\xec\xb7\x77\x9b\xbe\x36\x10\xeb\x08\x33\xeb\x74\x57\x20\xd4\xf3\xd2\xa6\x1f\x94\x20\x71\xd8\xec\xa4\x6b\x5e\xf2\xd3\x67\x5e\x49\xb3\x4b\xd3\x3a\x25\xf1\x71\x87\x71\xbd\xee\xf6\x91\xe1\x2d\x9b\x96\xe9\x64\x8c\x42\xb1\xd4\x75\x39\x9e\x51\x6f\xed\x82\x79\x59\xf8\x97\x31\x6a\x41\xbf\xec\x1a\x55\xde\xcc\xf6\xf3\x18\x8d\x2f\x54\x51\xdd\xd1\x20\xb9\x3f\xfe\xad\xec\x36\x36\x51\x44\x72\x02\x9e\x60\xff\x8b\xdf\x67\x52\x21\x94\x77\x87\xb4\x8a\x10\xf7\xf8\x3e\x08\x1f\x7f\x87\xa6\x5b\x1e\xfb\xc5\x2e\x09\x02\x4d\x95\xf1\x31\xb9\x7e\x54\xb1\x5c\xce\x6c\x93\x20\x4e\x02\x47\x41\xad\x6a\xfd\x99\x5d\xef\xf4\xda\x92\x40\x5a\xdd\xbe\xc1\xc5\x7d\x55\x36\x3f\xb0\xfe\x1d\x95\x82\xd7\x88\xa5\x17\x9f\x9f\x7d\xa9\x4c\x19\x0c\x55\x6f\xf0\x53\xe3\xe7\x97\x1a\xc6\x90\xf9\xd6\xa0\xaa\x6a\x5c\xf9\xca\xde\x74\x58\x14\x5a\x66\x11\xc5\x89\x2d\x3c\x98\x2e\x1a\xf1\x37\x29\x0e\x74\x22\xe6\x56\x41\x87\xb6\xb2\x0d\xbd\x9f\xbe\x0c\x49\x12\x59\x19\x80\x67\x6c\xb7\xeb\x49\xb9\x26\x49\x98\xa0\xfa\x80\x13\x90\xb3\xbc\xf5\x49\xf8\x9a\x24\x59\x10\xb8\x80\x9f\xba\xb1\xd7\x17\x39\x54\xc2\x30\x22\xbc\x82\x5f\x49\x17\x57\x99\x24\x4d\x20\xb1\x2e\xb4\xe7\x52\xbd\x1c\x74\x4f\xee\xed\x0e\x19\x5a\x55\xfd\xaf\x23\xc9\xa7\xeb\x51\x84\x75\x01\xe8\x91\x49\xaa\x54\xe2\xe4\x80\x0e\xd0\xb6\xd6\xaf\xca\xae\xb0\xfd\x98\x2c\x30\x41\x9f\x1f\x51\xa9\xd8\x1f\x88\x0d\xed\x3c\x44\x62\xb9\x71\x5e\xa2\xd3\x1f\x95\x99\x50\xba\xb9\x72\x93\x77\xf3\x75\x29\xb2\x4d\x78\xca\x88\x6d\x2b\x2b\x8f\x25\x6e\xa6\x0b\x67\xc2\xd3\xd4\xb7\xa3\x6f\x11\x34\xd6\x34\x74\xdc\x98\x91\x09\x17\xc6\xfa\x92\x54\xe4\x6a\x30\x2b\xd6\xcb\x84\x9b\xc8\x78\xb7\xb3\x7b\x6f\x37\x22\x13\xc1\x98\xb2\xa2\xf8\x04\x44\xb0\x1d\x27\x0b\xae\xb8\x68\x7e\xb9\x8f\x40\x84\x32\xf6\xcd\xf1\xa2\x52\xaf\x5d\x2c\xb0\xe0\x18\x21\x13\x99\x68\x62\xf5\x7e\xdf\xee\xbf\x5e\x3f\xad\xbe\xaf\x6e\x0f\xbb\xf5\xca\xab\x57\xc9\x44\xaa\x84\x00\xb4\x32\x6f\xe5\xb3\x9a\xcc\x2a\x69\x02\xaa\xbc\x83\x1e\xb4\xaa\x7d\x2a\x33\xc9\x66\xdd\x78\x95\x24\x3c\xf3\x38\xfb\xa6\xc5\xe3\x0e\x0a\x1c\x7b\xa7\xc8\x44\x07\x8a\x2a\x49\xd4\xd3\x58\xe9\xb9\xec\x93\x4c\x30\x0a\x69\x77\x78\x28\xf1\xaa\xa8\xa6\xd7\x83\xdc\xa6\xde\x83\xd0\xd6\x74\x8a\xa3\xb1\xee\xaf\x77\x57\xfe\x2f\x26\x4d\x48\x01\x92\x36\xe0\xe6\x05\x6b\xf2\x0b\x42\xeb\x06\x68\x1d\x66\xa6\x77\xcb\x40\x90\x59\x2e\x4b\xd3\xae\x8a\x62\x97\x97\xf3\x05\x9a\x05\x31\x52\x0a\xb9\xc3\xf6\xe8\x42\x9d\x66\x3e\x44\x2a\xdb\x24\x3c\xcb\x41\x09\x64\xfa\x4d\x2c\xc0\x8c\xd2\xcd\xf6\x25\xaf\xf5\xc1\xbd\xb8\xb3\xf3\x84\x59\x20\x5d\x93\xb2\x69\xfd\xa4\x67\xa1\x08\x6c\xc1\x0d\x0a\x35\x11\xb0\xfd\xc7\xec\xd3\x22\xb6\xf8\xca\x16\xea\xf6\x64\x0d\x9a\xfa\x4e\x45\x77\x58\x06\x96\x54\x82\xa7\xf1\x49\x7e\xda\x6d\xf5\x9f\x95\x41\xea\x34\xfd\xbb\x67\x3c\x62\x56\x4a\x16\x87\x48\x1a\xb9\x07\x2c\x55\xa5\xed\xa4\xdc\x2e\x4b\xf7\x4b\x16\xa7\x29\xa5\xcb\x27\x8b\x62\xa7\x90\xc4\x6f\xe0\x2c\xc9\x32\xa6\x7b\xdf\xb9\x5d\xfe\x4c\x22\x57\x8b\x2f\x04\x63\x22\xa3\x16\x9f\x83\x22\xb6\x30\x97\xf5\x91\x8c\xe9\xb0\x5f\x98\x57\xdb\x69\xe0\xcc\x52\x61\x79\x09\x36\xf5\x1c\xcc\x79\x97\x69\x92\x92\xa5\x2a\xa0\x3a\xe4\x63\x01\x6a\xa6\x83\xcd\x67\x43\xb3\xc0\xc2\xb3\x1b\x6c\xaf\xa0\xc1\xdd\xf9\x78\x5c\xea\xf9\x4b\x96\xf1\x58\x59\x07\xaf\xea\x44\x9b\xc6\x28\x4f\x64\xdc\xbd\xf1\xaf\xb9\x7a\x9d\x44\x6e\xfe\x78\x12\xd2\x7c\xb2\xdb\xef\x12\xa6\x29\x8e\xfe\x71\xe1\x25\x22\x99\x08\xac\x3c\x3b\xc1\x80\x48\x83\xc9\x5a\xfb\xf5\xcf\x13\xb2\xc0\x6a\x45\x83\xce\x5d\x8f\x63\xf6\xd5\x24\xaa\xdf\x3d\xf1\xdd\x7e\xf5\xb4\x3f\x5c\xf7\x4e\x2f\x92\x01\x02\x27\x6e\x0d\x96\xe7\x20\x9b\x7d\xae\xdb\xb7\x52\xdb\xbc\x99\xdd\x09\x2d\x83\x38\xed\x23\xdf\xed\xfa\x61\xf6\x49\x8c\xb8\x1a\xe3\x92\xfa\x8b\x45\x16\x7a\xb1\xb1\x7b\xfc\xe1\xa0\xe9\x9f\x3c\x42\xd4\x21\x73\x55\x83\x87\xbe\x75\xc0\xd0\x68\x6a\xae\x3f\x1c\xf1\x19\x16\xdb\x16\x6e\xa0\x89\x63\xde\x17\x1d\x4a\xfc\x80\x5a\xff\xcc\x78\x40\x32\x93\x4a\xd1\xc3\x5c\x6d\x44\xf5\xf3\xa4\x90\x19\x88\x3c\x73\x77\xbb\x9f\xdd\x83\x34\x48\xac\xf4\x9e\x9d\xf1\x96\x28\x71\x59\x18\x4d\x03\x86\xa4\xf1\x41\x30\x5e\xac\x9d\xdb\x8f\xb7\x48\x9c\x0f\xc6\xc4\x0b\x79\x7e\x47\xf9\x25\x37\xed\x43\xa9\xf0\x0e\xde\x97\x36\xcd\x34\x30\x86\x2a\x76\xf8\xee\xab\xe1\x69\x98\xf1\x0c\x6c\x08\x51\x19\xab\x95\xff\xf3\x38\x33\x0d\x05\x32\x47\x97\x18\xc9\xb8\x2c\x54\x49\xd3\x28\xb6\xfa\x7a\xd6\x3b\x06\xf5\x66\xff\x75\x39\x52\x4a\xa3\x24\x26\x56\x36\xd9\x6d\xb5\xdb\xe3\xa9\x4b\xcb\x8f\x64\x93\xe3\x6a\x25\xd3\x07\xd5\x7f\x4c\xf5\xd0\x55\xa8\xdb\x8f\xd5\xec\x8e\xc7\x81\xa1\xf7\xf3\x35\x3f\x36\x0f\xe5\x6a\xb2\x9c\xa6\x31\x93\x36\x14\x19\x54\x98\x7c\x8d\x69\x06\x20\x76\x1f\x48\x62\xe5\x03\x8a\x55\x51\x50\xc8\xd6\x6b\x49\xc9\x34\x49\x43\xaa\x0a\x5e\xe5\xed\x11\xea\x57\x97\xd5\x7e\x81\x16\x7f\xcc\x74\x11\x64\xca\xc2\xa0\x6f\xa2\xec\xd6\x57\x13\x5c\xe0\x67\xab\xf9\xf4\x86\x31\xc5\x28\xfd\xdf\xfd\xfb\x4c\x76\x58\x2f\xf8\x7f\xcf\x43\xff\x27\x65\x4a\x83\x43\x43\x5f\xe7\x50\x44\xfb\x8f\xd3\x64\x71\x4a\x99\x89\x28\x8a\x3f\xe6\x25\xc9\xec\x36\x97\xa9\x90\x1b\x99\xf2\xa0\xd7\xff\xf6\x77\xf0\x57\xbd\xb0\x8b\x96\xb4\x87\xc5\xc9\x34\x03\x2b\x2e\x38\x36\x39\xfa\x39\x5e\xc8\x7d\x90\xa7\x3a\xe8\x25\x61\x2b\x62\x98\xe9\x99\x43\xb2\x4c\x81\x69\x31\xf0\x75\xae\xba\x80\x6f\xb1\x4a\x9e\x82\x30\xd4\x76\x7b\x2d\x2b\xf5\x5a\x9d\xdb\x9e\xec\x79\x79\xab\x41\x27\xc4\x0c\xb0\xe4\x35\x9c\x4a\xd5\xca\x14\x30\x21\xe5\x1c\x30\x66\x2c\x95\x27\x53\xc9\x98\x45\x7f\x36\xbb\x5c\xa3\xe5\x29\x4e\xe5\x1b\x64\x2a\x33\x6b\xd4\xf7\x5c\x43\xd9\x3a\xf1\xaa\xe5\x37\x44\x1a\xa4\x38\xe7\x6b\x55\x3e\x37\x2f\x50\x52\xd9\xe6\x67\x3d\x8a\x54\x45\xc2\x1b\x74\x7c\xb7\xf0\x08\x3f\x09\x86\xb3\x2a\x66\x18\xef\xf1\x26\x4e\xf7\x61\xb2\x35\xfa\x81\x20\xa9\xab\xff\x58\x7d\xff\x9a\x5c\x8f\x85\xa8\x64\xaa\xa4\xed\xc5\x7c\xbb\xdf\x2e\x74\x38\x53\x65\x12\x22\xb0\xe4\x0e\xb7\x6b\x5d\x39\xce\xde\xe0\x5e\xa6\x9a\x83\xb0\x80\xfc\xe3\x0d\xc8\xfe\xaf\x10\x50\x8d\x7b\xff\xf0\xfb\xe6\xfe\x70\xf3\xf0\x74\x58\x3f\xdc\x75\x5f\xf1\x57\x3f\x42\x86\x44\xc9\xd6\x39\xf4\x6f\xa1\xd6\x86\x98\x63\x16\x35\xb3\x24\x48\x24\x53\x8d\x26\x74\x42\x3d\x5d\x30\x36\x8e\x58\x53\x0c\x2d\xb6\xf5\x19\xdb\x7d\x7f\x52\x4c\x04\x1b\xe9\x72\x36\x0f\x66\x8a\x26\xf7\xc3\x32\x81\x0e\xe4\xd7\x85\x0d\xfb\xea\x9f\xe7\xaa\xdb\xd8\xdb\x73\x3d\xbf\x27\x28\x02\x27\xed\x7e\xcc\xcb\xc3\x8f\xc9\xbc\x41\xc1\xa9\x70\x76\xa2\xa7\xf1\x07\x9c\x8b\xf9\x42\x84\x26\x20\x49\x31\xdf\xdc\xbc\x85\x92\x12\xf1\xf5\xda\x31\x61\x16\x5b\xb7\xa9\xc9\xb8\x71\x71\xf0\x13\x25\xef\xb3\xd3\x1a\x81\xa4\x9c\xfb\x56\xb5\xd8\x3c\x62\xed\xec\xb7\x47\xd3\x20\x0b\x82\x94\x26\x7b\x5b\x7d\xcf\x75\xfb\xe2\xac\xd4\x17\x08\x35\x32\x0b\x42\x45\x10\x88\x83\xa3\x5a\x82\x95\x40\xb0\x91\x90\x1f\x13\xe9\xc4\x2d\x06\x79\xb9\xac\xb0\x2d\xb3\x40\x4a\x52\xc2\x7b\x68\xdf\xc7\x8f\x2a\x0b\x74\xa0\x1c\x19\xbe\xdd\x38\x5d\xb0\x4f\xce\x80\x56\x68\xe3\xb1\x2a\xaa\x12\x7d\x48\xe4\x0e\x86\x92\x53\xbf\xec\x08\xef\x0b\x59\x78\x16\x65\x81\xb0\x25\xbd\x9c\x32\xfe\xeb\xfc\x6d\x58\xf4\xb3\x38\x34\x24\x6c\x49\xa2\xab\x3b\x6c\x1f\xde\xb0\xae\xf3\x05\x9b\xe2\x61\x05\xcc\xe2\x54\x32\xed\xdb\x47\x16\x3f\x67\x61\x52\xf4\xc5\x5e\xa7\x65\xf8\x0a\x8c\xa9\x6c\x5d\xe2\xfb\x6c\x1e\x64\xb1\x09\x08\x4a\x66\xf2\x52\xdb\x6a\xdf\x4c\xb1\x43\x66\x49\x16\x87\xe4\x51\xe8\x94\xc2\x7c\xb1\xd5\x1d\x66\x90\x50\xdf\xa7\x5b\x2d\x8b\xef\x2f\x88\xc5\x4d\x5e\x42\xa9\x86\xde\x64\xc6\x30\xa5\x6a\xed\xf5\xfe\xcf\x19\x29\x45\x66\x59\xc2\x29\x9e\x20\x2d\x28\xac\x0f\x35\x52\xe3\x72\xf4\x63\x33\xc1\xa8\x10\x70\x6f\x49\xac\x0e\x33\x7c\xc1\xd0\xf9\xc5\xe6\xe7\x4f\x26\x43\x5a\x03\xf3\xa6\x39\xe3\xa7\x60\x7a\x99\x71\x11\x9a\xc1\xe8\x6c\x97\x77\xb3\x73\x41\x00\x58\x66\xc2\xe8\xc8\x85\x6b\x57\xf8\x9c\x97\xfb\xfc\x88\xfb\xdd\x6c\x10\x84\x69\x64\x46\x54\xf1\x75\xfd\x71\x6a\xab\x31\xdc\x22\x03\xe7\x68\xdc\x2d\x71\x94\x16\x4e\xd4\xd4\xfd\x20\x48\xad\x52\x9a\xaa\xf6\x2f\x35\x36\xdd\x12\x45\x79\x58\xd4\x9f\xc6\xd8\x6f\x6a\xb0\x5d\xb5\x2d\xa8\xd7\xab\xaa\x6a\xac\x23\xc6\xa9\x98\x17\xd8\x33\x19\x27\x84\x10\xbb\xca\x5b\x55\xe5\xe5\xb5\xf7\x28\x18\x29\x2c\xf8\x91\x49\x46\xe2\x2e\xbd\x6c\x84\xaf\x66\x42\xdb\x62\xdd\x0f\x53\x32\xa2\xf6\x19\x49\xe3\x5c\x9d\x3f\xfa\xbf\x2b\x15\x3a\x2c\x8b\xce\x2f\x5c\x65\xdc\x20\x6d\x38\x09\xed\xed\xf2\x63\x33\xe8\x10\xc9\x0c\x59\x40\xee\xbc\x5f\xbc\xd5\x8e\xcc\x50\x68\xcf\xbd\x7f\xac\xf3\xb7\xbc\xc0\xe7\x61\x57\x9d\xde\x33\x94\x52\xe1\xc8\x57\xf0\x82\xbd\x2b\x33\x54\xa9\xb0\xf2\x44\xf9\xb1\xb2\x13\xab\x6d\x2b\xff\x5d\x86\x1b\x2b\x34\x05\x4d\xae\xba\x75\x6d\x32\x81\x79\x10\xb1\x40\x0c\x16\x7b\x0b\x8f\x8d\x07\x8a\x53\xd4\xf7\x04\xf5\x64\xce\xb9\xc3\x21\x5a\x9e\x52\x81\xa6\x4d\xc3\xe9\x23\xe2\x91\x16\xe0\x18\x63\x45\x81\xe5\xf3\x6c\xfb\xe5\x71\x18\x92\xfe\x28\xf5\xea\xa9\x91\x30\x69\x7a\xf0\x38\x91\x04\xcd\x82\xb6\x3a\xe6\x8a\x28\x49\x87\x81\xba\x93\x8c\xec\x2f\xb9\xb7\xbf\xe4\x0e\xb8\xf3\x8b\xff\x7f\x9e\x7b\x65\x32\x57\xcf\xe1\x49\x60\x95\x92\x6d\xff\x1a\xaf\xba\x1b\x77\xe1\xec\xfd\xff\xf0\x5f\xff\x35\x11\xd3\x2e\xef\xf3\x38\xca\xd9\x00\x6d\x01\xcc\xae\xd0\xb2\xaa\xfd\xae\xc1\x59\x60\x39\xae\x5d\xec\xfa\xa5\x2a\x66\x2f\x35\x67\x71\x40\x35\xbb\xbb\xfc\x52\x69\x76\x76\x11\x69\x14\x68\xdd\x73\x47\x9e\x71\x57\x15\x53\x0c\x01\x4f\xa5\x15\x35\x27\x3b\x9b\xb8\xff\x2b\x06\x14\x5e\x1f\xa8\x42\xf0\x93\x12\x30\xcf\x34\x0f\x53\xcf\xfb\xaf\x9b\xbe\x1f\xe3\x0e\xf3\x58\x53\x90\xd3\x13\x29\x37\x63\xed\x82\xcb\xe2\x2b\xe7\xdc\x2a\x49\x37\x13\xa7\xcf\x25\xd8\xae\xe4\x5c\x68\x42\x6e\x5c\x57\x35\xe8\x6a\x32\xef\x45\x9a\xf8\xd8\x70\x6f\x55\x22\x59\xd0\x1f\xd3\x9c\x72\xd8\xef\x5f\xbe\x4f\x3f\x63\xac\x12\xf1\x40\x12\xa2\x7b\xe6\x45\xdd\xba\x01\x3c\x0b\x46\x2e\x3e\xa7\x62\x3e\xdf\x21\x88\xd3\x80\xec\xae\xfa\x12\x2c\x87\xd0\x6a\xda\x50\x5b\x2d\x62\x07\x4b\xf7\xf9\x02\x0d\xd1\xec\xc3\x24\x08\x28\x8c\xef\x9f\x08\x44\xd6\x56\x91\xb6\x4f\x62\x83\xea\x9b\xbc\x98\x38\x0e\x48\x2e\x31\x8a\x7b\x2e\x3e\xed\xad\x17\x50\x50\xae\xc0\x02\x35\xba\x70\xad\x7b\xba\xfb\xdc\x2d\xb1\x2e\xd8\xe1\x3a\x08\xe5\x3c\x55\xd9\x57\xdf\x06\x3a\xe7\x2f\x66\x97\x0e\xb5\x75\xed\x05\x1b\x53\xfc\xa4\x7d\xc7\x75\x6c\x5b\xdd\x96\x23\x77\x51\x14\xe7\x18\x18\x62\x74\xdc\x1d\xd5\x2f\x23\x7f\x8e\x4c\x06\xa1\xbb\xa5\x5f\xb0\xbd\x85\xa6\x1d\xc1\x20\x38\x1a\x49\x55\xdf\x6f\x5b\x3a\xc5\x6f\x93\x2f\x32\xa1\x20\xbd\x6d\x1b\xed\xa0\xb6\xe8\x95\x59\xbd\x94\x9b\x58\x51\x2f\xcd\x13\xef\xaf\xea\x0a\xb4\x22\x05\xae\x5d\x3e\x0f\x08\xa7\x28\xf3\x69\x7a\xc9\x0d\x4a\x2a\x45\xf5\x1a\x9d\x52\x04\x69\x10\xa9\x11\x43\xc1\x21\x4f\xf6\x15\x61\xf5\x7e\x56\xb1\x11\x01\xd8\x60\xce\xd9\xef\x41\x5f\x62\xf7\xc7\x0d\x27\x00\xc5\x11\xde\x09\x08\xb6\xaf\xaa\xe1\x60\x18\x06\x34\x3b\xed\x0c\x7c\x28\x8b\x8f\xde\x8e\x74\xf8\x86\x30\x64\x04\x2a\xa2\x88\x6f\xa5\xf5\x0e\x4a\xc2\x59\x2c\x5f\x4f\xa8\x32\x92\x20\xfd\xf7\x19\xcf\x38\x69\x3d\x88\x28\xb4\x34\x2a\xd0\x3e\x45\xf5\x56\x67\x63\x42\xd9\xac\xda\x2e\xa2\x34\xa3\xbc\xf5\xa6\x86\x52\xf5\xa7\x12\x86\x54\x42\x6d\xf5\x64\x55\xb7\xb9\x2a\xe6\xb6\x83\x43\x4c\x26\x22\x63\x8d\x0e\x41\xeb\x7b\xfc\xe1\x35\x64\x67\x8f\x58\x24\x3c\xa6\xb7\xf9\x77\x0f\xac\xff\x6d\x74\xc0\xa6\x48\x65\x60\xd5\x4a\xc7\xb1\x90\x60\x92\x71\xb7\xe2\x91\xbc\x34\x41\xd0\xfc\xc1\x34\x0c\x8d\xc3\xc8\x5b\x98\x06\xc8\x02\x57\xb3\xa5\x5f\xa4\x4a\x25\x6a\xe8\xf6\xe9\x91\x1e\xbf\x14\xa9\x4e\x6c\x1b\x57\x6b\xdb\xa5\x77\x5d\xa4\xde\x9a\x62\xde\xa1\x10\xa9\xd6\x24\x32\x86\x50\x17\x1f\xb4\x66\x75\x6f\x44\x7f\xc2\x2e\xec\x52\x03\x26\xe6\x73\x05\xb8\xbf\x59\xed\xf0\xa7\xd5\x4c\xe8\x11\x43\xd4\x97\x36\xfd\x61\x0c\x85\x2d\x98\xbe\x55\xaf\x0e\xbc\x45\x9e\xbd\xa3\x15\x48\xf0\x84\x71\xd7\xc0\xec\xa2\x03\x1e\x0c\xc0\x12\xc1\x85\xbd\xcf\xdf\xef\x7e\x8d\x57\x14\x82\xa7\x34\xb5\xbb\x44\xe3\x0e\xd5\x0b\x94\x79\x73\xfc\x99\x1b\x51\xf7\x11\x41\x3b\xcd\x13\xfe\xfb\x9c\xd7\xa4\x7a\x5c\xcd\x5b\x8b\x42\x68\xa4\x25\x72\xf3\x7e\xaa\x11\xfc\x4e\x20\x04\x26\xdc\x0c\x46\xb1\x77\x58\x3f\xe3\x8c\xa1\x24\x05\x30\x45\x51\xe9\x6a\xb3\x6b\xc7\xf3\x0b\x32\xae\x8d\x07\xd6\x3c\x98\xc9\xc2\x2e\x80\x87\xc4\x93\x2d\xcf\xc7\x07\x43\x69\x47\xb3\x2d\xef\xf2\xf2\xdc\xf7\x34\x05\x88\x30\x1e\xf3\xfb\xf5\xe6\x6d\x38\xd6\xe5\xf7\x03\x64\x71\x67\x01\xdf\x2d\x3a\x77\xb5\x7e\x98\x09\xd3\xb4\x37\x09\x5f\x5f\xcf\x59\x73\x52\x48\x9e\xc6\xa4\x96\x8b\x3a\x97\x79\x7b\x51\xf0\x16\x2a\xcc\xa8\xb2\x62\x01\x29\x77\x50\x3f\xe7\xe5\x1a\x8a\xe2\xa1\xbc\xc2\x17\x28\xcc\x83\x79\x42\x45\x1e\xe7\x17\xa9\xe2\x78\x13\x17\x2a\xb2\xa8\x13\xa7\xff\x4f\xc5\x93\xdd\x99\x9c\xf1\xbf\x56\x95\xc7\x62\x0a\xa5\x63\x6a\x75\x4f\x84\x82\x79\xe0\x8e\x6a\x2e\xed\x9e\x99\xd7\x64\x95\xd1\x73\x65\x7e\xeb\x07\x20\xc1\x67\xf6\x2f\x50\xbe\x9a\x73\x51\x0e\x7d\x54\xa1\xa5\xf6\x65\xcf\xed\x75\xff\x47\x34\x04\x99\x7f\xb1\xc0\x2d\xd7\x80\x1d\xe3\xc8\x84\x41\x8b\x93\xcb\x8f\xa7\xaa\xf6\x61\xd2\x45\x77\xc6\x4f\x07\x08\x02\xee\x8a\x2c\xea\xa7\x21\x15\x04\xa1\xcd\xe6\xf3\xe3\xa9\x70\xa1\xe3\x83\xf9\x5e\xd5\xaf\xa7\x2a\x2f\xdb\x7f\x76\x2b\xed\x6f\x7e\x28\x86\x5c\x8c\x39\x99\x4e\x6b\xc9\x1d\x0e\x83\x90\xfa\x6d\x1a\x9b\x13\xfc\x28\xbf\x14\xa0\xf3\x2e\x83\x5a\x95\x7a\xf5\xa3\xfb\x61\x17\xdc\x4b\x09\x61\x1c\x53\x75\xfe\xcb\x1f\x8f\x9b\xc3\x78\x5d\x84\x30\x06\xca\xde\x0e\x44\xea\xd9\xe7\x03\x1d\x04\xc2\x14\x68\x93\x23\xc7\x9a\x7d\xd5\x8b\xee\x4d\x7f\x58\x14\x45\x68\xed\x9b\x7b\xde\x13\x3d\xee\x0d\x75\xb8\xfc\xcb\x05\x51\x6c\xc1\x9f\x5d\xf8\xeb\x1c\x11\x2c\x50\x29\xe2\xbf\x90\x3d\x93\x10\xeb\x80\x54\x66\x7e\x50\xf1\x74\xbe\xf0\x42\x92\x82\xe8\xde\x2e\x6c\xc1\xa3\xf4\xb1\x19\x29\x93\x4b\x48\x32\xed\x2d\x5b\xbe\xd4\x70\xc2\x66\x5f\x5d\x9d\xf3\x42\x7f\xcf\x4b\xac\x7d\xc6\x08\x69\xc8\xc2\xc4\xbf\xc2\xfb\xa4\xff\x33\xb7\x48\xfa\x4d\x2b\xd5\x28\x47\x84\x2c\x88\x29\x77\xbc\xa9\xf1\xc3\x02\x2c\x9c\xcb\x87\x3f\x0e\x3a\xd0\x03\x20\xed\x06\xf1\x8f\x7e\x1d\x04\xce\x03\x7a\x13\xaf\x57\x4f\xbf\xdf\x3f\x5c\x6f\x0e\x37\x9b\xcd\xee\x70\xff\xed\x6e\xf3\xb4\xda\x3f\x3c\x0d\xc3\xb2\xb4\x97\x35\xe9\xee\xe7\x57\x28\xde\xf2\xf2\x79\xae\xdd\x27\x81\x8b\x50\xf0\x29\x19\x1e\x4e\xa0\x06\x60\x2b\x70\x6d\x48\x05\xd3\x31\x66\x46\xbd\x54\x10\x29\xb3\x74\x0e\xeb\xc8\x62\x0b\x86\xcb\xfd\x04\x00\x66\x88\xc0\x58\x93\xde\xcf\xf5\xee\x40\x3e\x38\x4d\x93\x57\xe5\xe3\x59\xfe\x8e\x1f\x83\xe5\x8c\x04\x10\x82\x12\x89\x1e\x0c\xe4\xfe\x2e\x21\xa1\xea\x58\x2f\x1a\xdd\x1f\x90\x96\x1c\x72\x68\xeb\x0f\x8b\x38\x58\x4c\xb1\x41\xa2\x88\xf5\x44\xff\xfa\xaa\xb2\xd4\xb2\xfe\x4c\x26\xa3\x64\xe1\x0b\xb6\xbb\xf3\xf1\x68\x81\xff\xb3\x99\xa3\x8c\x35\x40\xa5\x60\x1a\x6a\xed\xa2\xe4\x8b\xa8\x1b\x74\x9c\xd8\xe7\x40\x37\xa8\xfd\x44\x06\x79\x34\x1e\x8c\xe8\x13\xb0\xc9\x02\x03\x1a\xad\x94\x48\x8b\x70\x74\x61\xea\x3d\x79\xe6\xf8\x01\xa8\x05\x55\x2b\xf1\x1d\xd5\xb9\x45\x42\x05\xce\xd9\xfa\xe3\x1c\xeb\x1f\x17\x3d\x90\xc5\x7f\xf1\xff\x19\x0d\x4d\xff\xe7\xe2\x0c\x3f\x13\x60\x95\x60\x42\x8d\x2e\x83\xb3\xf1\xcb\xa2\xd2\x9a\x1f\xcc\x38\xb5\x2c\x7f\x1d\x94\x4c\x1f\xaa\x11\x09\x45\xf1\xdd\x5c\x29\x1c\x20\x77\xa2\xbc\x21\xc1\x80\x95\xa7\xc2\x63\xde\x5a\x21\x96\xb9\x81\xcf\xe4\x94\x32\x08\xd2\xc0\xd1\x28\xbe\x95\x44\xda\xd0\x53\x63\x38\x37\x2e\x64\x21\xd5\x0b\xd7\xeb\xed\x08\xac\x2f\x43\x88\x69\x57\xde\x61\xfb\xb5\x6a\xbb\x38\x6d\x0a\x25\x97\x51\x98\x86\x03\x55\xd1\xc1\x45\xfe\xb8\x60\x1f\x4b\x19\xb1\x44\x23\xad\xda\x6f\x58\x54\x27\xac\x7b\xeb\xa6\xc3\x66\xff\xd5\x7f\x5f\xc4\xad\x98\xfa\x35\xfe\x67\xbc\x4a\xcb\x48\x18\x0a\x6b\xf7\x79\xf9\x61\xb5\xe7\xba\xc8\x06\x5a\x2f\x3e\xd9\xbd\x36\x01\xed\x85\xf8\xff\x73\xf6\x25\xdd\x8d\xe3\x58\xd6\xff\xa5\x57\xb9\xa8\x05\xc0\x99\xdf\x4e\x93\x1d\xaa\xf4\x54\x96\x1c\x91\x59\x7d\xfa\xe8\x60\x78\x90\x58\xa6\x08\x15\x49\xd9\xa1\xfa\xf5\xdf\xe1\x03\xc0\x49\x94\x33\xba\x17\x5d\x19\x6d\x80\x14\x09\x62\x78\xc3\x7d\xf7\xca\x0c\xd9\xd9\x86\x8f\x19\x50\x13\x73\x65\x52\xbe\xea\xdc\x12\xc4\x38\x1e\xe8\xa6\x59\x61\xc4\x66\x67\x29\xf6\x8f\xe8\x13\x35\x3b\xba\xbb\x7d\xe0\xfb\x69\xdc\x96\x8e\x7c\xb0\x0a\x13\x86\xa7\x41\x5c\x80\x07\x51\x84\x3b\xe2\x72\x33\x32\xee\x86\x63\x1d\x28\x40\x9e\x9b\x47\xcc\xef\xbc\x66\xfb\x57\x28\x6a\x96\x57\x83\x37\x0e\xbd\x00\x75\xe5\x5e\xd8\xe9\x52\x9e\x51\x9c\x00\x45\x9b\xe9\x74\x9a\x9c\x87\x89\x44\xb4\xca\x15\xe1\xea\xf8\xbf\x83\x71\x09\x13\x85\xc0\x4f\xb3\xae\x1f\xb2\xe2\x7d\x18\xcb\xe2\x51\x92\xa2\x6e\xd2\x89\x5d\x5e\x41\xc2\xf1\x54\x5f\x95\xc5\xf2\x28\x65\xb4\x65\xe5\xfc\xd0\x99\x80\x6a\x7e\x19\xf2\x23\xfe\x6d\x22\x3b\xc5\x63\x42\x1c\x18\x7a\x71\xd0\x15\x14\x66\x1f\x98\xbe\xa8\xfb\xb9\xd8\xa3\x46\xfb\xcb\x26\x76\xdc\x88\xa1\x9e\x94\x2d\xc6\xcc\x8a\xfa\xb7\xc9\x8b\x13\x91\x62\x0e\x77\x77\x05\xcc\xed\x5c\x2d\x9e\x02\x41\x2c\x5b\x73\xda\xe1\x22\x93\x33\xf9\x91\x55\x4e\x6a\xb2\xe9\x00\xe8\x10\xfd\xf9\xf6\xf4\xc7\xfa\xc9\xfb\x35\x49\x14\xce\x59\x12\x63\xb8\x00\x59\x30\xeb\xac\x2d\xfa\xe2\x4c\x1a\x4a\x6c\xad\x79\xf6\x6f\xad\x47\x6b\x93\x07\x51\x6a\xf3\xce\x4f\x7a\x18\x3b\x72\x3d\x54\x10\x5a\xc4\x16\x56\x42\x93\xc7\xac\x18\x16\xa9\x73\x2e\xc2\x80\x77\x3c\x58\xb8\x7d\x99\xed\xfe\x07\xcb\xd0\xb4\xbc\xda\xf5\xb9\x08\x25\x72\x6e\xe5\xf0\xb1\xd5\x6d\xe6\x8f\x8b\x84\xa1\x41\x80\x3b\xb8\xd6\xf9\x9d\x2e\xef\x4a\xfd\x1f\x28\x06\xd6\x29\x17\xdc\xc3\x15\xf9\xb0\xba\x9f\x3d\xec\x56\x7f\xbc\xac\x9e\x36\xab\xcd\x6e\xb6\x5c\xbe\xb6\xe0\x61\x2e\x85\x87\x29\xb5\xbe\xad\xd7\x56\x72\x72\xf0\x89\x11\x83\x6d\xdc\x3f\x6f\x09\x4c\xf6\xaa\x4f\x39\x28\x2f\xb0\x54\x02\x4b\x96\xfd\xc8\xea\xc3\x55\x59\x34\x57\xb1\xe7\x75\xfb\x93\x71\x3d\xa6\x77\x6d\xae\xd2\xc0\xa1\x06\x6b\x5d\x64\xe7\xe1\x7a\x54\xca\x28\x1d\x3e\x7f\xa2\x5d\xe7\x82\x8a\x82\x8a\x14\x81\xde\xd6\x69\xba\xd3\xa5\xc1\x4d\x0c\x9f\x43\x78\x34\x26\x23\x4a\x48\x2f\x74\xf7\xf0\x58\xe0\xd2\xfa\x16\xa0\xba\x5d\x74\x6d\x3c\x0e\x91\x02\xc5\x28\x89\xb9\x52\xa7\xc1\x04\x10\xbe\x1f\xc7\x46\x95\xa5\x3a\xe7\xf5\x15\x61\x40\x1b\xd2\x69\xe7\xb8\xf0\x13\x81\x38\x26\x13\x7d\x78\x82\xcf\x45\x9e\x39\x78\x89\xf0\x79\x4b\x60\x69\xc2\x1b\x37\x92\xb2\x22\x20\xc6\xa1\xe0\xcd\x56\xfc\xa3\xcc\x26\xa0\x36\xfd\x15\x20\x82\xd0\xb8\xc6\xbb\xd2\xf8\xa7\xaf\x50\xc0\x67\x33\x9e\x2f\x06\x37\x37\x1a\xb5\x20\x34\x0c\x47\xf3\xd9\xd3\xef\xcf\x6b\x17\x6a\x12\x41\xc2\xd0\xb2\x3c\x36\xe6\x2b\x8a\x2d\x0d\x52\xdb\x22\x10\x1c\x77\xb5\x36\x04\xa8\x4b\x44\x0a\x4c\x7a\x26\x22\xa2\x1e\x9e\x39\x46\x97\x60\xbc\x8c\xc7\x43\x38\xe1\xa7\x8b\xc8\x97\xc8\xbe\x81\xb8\xac\xf5\xd3\x3d\x02\xe4\xdd\xc3\x44\x11\x20\x51\xaf\x84\x8f\x9d\x1a\x7b\xa4\x22\x62\x4a\x61\x35\x3a\x1a\x15\xf7\x86\xc7\xff\x5b\x56\xd5\xfa\x56\x09\x87\x88\x94\x51\x7c\x97\x59\xc5\xd1\x15\xb5\x7f\x4f\xd2\x58\x05\x3d\x91\xed\xa2\x86\x72\x7e\x31\x67\xf1\xf0\xab\x25\xdc\x44\x6a\x98\x94\x73\x7d\xe4\x36\xfd\x3c\xd8\xa2\xfb\x1b\xb5\x48\x44\x6c\x78\x9f\x50\x4a\x18\xa9\xf1\xdd\x8f\xa6\x3e\x43\xd0\x1d\x26\x52\x82\xd1\xcb\xa5\x90\x60\xa5\xab\x82\x5a\x1c\x8c\x1d\x77\xa7\xcb\x17\x76\x19\x6f\x60\x82\xc5\x26\xb8\xa5\xc0\x59\xdf\xee\x07\x98\x32\x32\xc6\xa7\xc6\x4a\xb6\x75\xfd\xb7\x18\x48\xb8\xe0\xb1\x12\xd0\x0b\xdf\x58\x77\xa8\x31\xc9\xb3\xe2\x8a\x29\xca\x5d\x94\xa6\xbe\xe5\x39\xce\x5c\xa6\x69\xf8\x78\x82\x52\x4c\x7b\xe4\xac\xaa\xed\x12\x73\x2d\x09\x43\x58\xf5\x83\xde\xaf\xce\xa5\xee\x22\xc6\xa6\x0e\xf0\x1a\x96\xe5\xae\xe3\x04\x19\x0d\x8e\x5a\x66\xea\xf2\xc8\x7e\x3a\x6f\xc3\xad\xb3\x51\x77\x21\x11\x3b\xc0\xf6\x60\x58\x49\x5d\xf5\xae\x90\x44\xba\x80\xd5\x13\x7c\xae\x0a\x39\xc5\x6d\x38\xfa\x71\x19\xa7\x18\x57\x82\x7f\x9f\xbb\x42\x8d\xe9\x05\x2b\x9b\xff\xc3\xf2\x8b\xfb\xbb\xbf\xbb\xdf\x04\xe2\x63\x74\xe3\x77\x5d\x02\x7b\x05\x33\x77\x3f\xaa\x7b\x28\x8f\xac\x68\x57\xa1\x22\x3e\x82\x82\x2b\xa6\x7a\x40\xcf\xbb\x52\x1f\xa7\x29\x7d\xb9\x50\xd4\xb0\x7e\x3a\x52\xda\x79\x57\xb6\x2a\x49\xc8\xf0\x41\xac\x8b\xf6\x9e\xa3\x5c\xd3\x34\xb2\xc9\x5d\x12\x09\x9f\xb7\x0b\xc2\x56\xdc\x19\xcb\x9e\xda\x2e\x94\x00\x46\x49\x14\xcb\xf2\x0d\x53\x30\x93\xf2\xc7\x01\x8a\x7b\xfc\x91\x72\x7b\x60\xc5\xba\xa8\x1f\x99\x2b\x32\x94\x94\x9a\xb2\x9e\xfb\x3f\x16\x1b\x28\xea\xad\xee\x6c\x57\x49\x93\x84\x59\xfb\xe3\xf7\x0b\x87\xf2\x09\xea\x4f\x5d\xbe\x4f\xbb\x91\x92\xb2\x24\x6d\x65\xac\x71\xda\x7c\xeb\x71\x18\x73\xe9\x79\x21\x98\xe4\x34\x9e\x88\x63\x08\xa1\xf4\x7c\x83\x99\xb2\x64\xc4\xf3\xcb\x57\x72\x23\x5c\x7a\x4c\xa2\x12\xb1\xd0\xf9\xf9\xd8\x9e\xd1\xd2\x13\x22\x54\x1d\x01\x39\xf2\xce\xc9\xb6\x11\x04\x37\x6a\xed\xcf\x85\x23\xb7\x98\x5f\xc6\xe9\x78\x19\xf8\x31\xc2\x09\xb8\x99\xb9\xcf\x6a\xc1\xf2\x7c\xf4\xb6\x41\x10\x3a\x55\x77\x24\x16\x5b\x42\xcd\xc4\xc1\xaa\x2a\x65\x3c\x87\x6a\x1c\x68\x94\x41\x1a\xe1\xca\x3a\xb2\x77\x28\x97\xb3\x67\xf7\x54\x21\x25\x44\x5e\xc9\x54\x98\x73\x73\xf4\xab\xa1\xf2\x31\xf7\x75\xd2\x7a\x40\xb4\x20\x23\x4e\x88\x71\xd0\x2e\xa7\x5a\x6f\xd8\x9e\x21\x61\xe2\x27\x3b\x3d\x42\x29\xce\x3d\xf7\xe8\x6b\xf6\x12\x19\x09\xee\x1b\x32\xcb\xb2\x32\x89\xb5\x57\x96\xf5\x86\x30\x52\x2a\x01\x47\xbb\x5c\x9b\xbd\x78\x80\xec\xb7\xfd\x62\xc2\x98\x33\x0f\xb4\xce\x87\x60\x35\x19\x07\x10\x7a\x8e\x12\xa4\x32\x7c\x9f\x77\x00\x12\xef\xd7\x7e\xcb\x38\x8d\xd0\x6a\x65\x52\xce\x8c\x4c\xce\xd7\x53\x22\x56\x89\xf1\xc8\xf4\xea\x78\x0b\x20\x20\x93\xd0\x8f\x95\xfd\x0a\x9b\xa3\x7e\x87\xcb\x51\x17\xfd\x4c\x51\xe2\x3a\xa6\xe0\xa8\xec\xd7\x8b\x67\xd4\xbb\x3e\xf7\xb4\x6c\xb9\x4c\xa4\x89\x4c\xf3\xf3\x65\x7b\x28\x9b\xb3\x76\x40\x13\x63\x7b\xa5\x7e\xc4\xb8\x05\x81\xec\xff\x72\xa1\x4f\x91\x21\xc8\x34\x4c\x9c\xcc\xb7\x8d\x04\xa1\xd9\x87\x83\x35\x2b\x24\x12\xaa\xe2\x08\x5e\xb3\x24\x72\xc9\xfc\x50\x1a\xf2\xc7\x47\x96\x61\x51\x67\xff\x43\xb0\x38\x71\x58\xb1\x59\x5e\x1b\x47\xb4\x1d\x7f\x1e\x02\x4b\x2c\x3f\xf5\x65\xae\xcb\xb2\xc3\x39\x8e\x9e\x90\x43\x84\x50\x0a\xdc\x07\x97\x25\xb0\x4e\x0a\x85\x4b\xae\x02\x44\x60\x59\xd1\xcf\xea\x4a\x78\x7c\x74\x33\x11\x4a\x3c\x81\xbf\x9d\x8f\xac\xc8\xfe\x3d\x71\x7c\x49\x49\x04\x02\x16\x8e\x13\xf1\xec\x71\x16\x7a\x74\x77\x49\xa9\xdb\xd4\x9e\x4f\x50\x4c\xfa\x09\x52\xd2\x54\xda\xe0\xc8\x22\xab\x2f\x37\x76\x3c\xe9\x05\xbe\x49\x23\x1b\x82\x47\xdc\x63\x7f\x4d\x5c\xf7\xfa\xad\x25\xf8\xd2\x7a\x3c\xab\xfa\xb0\xb5\x07\x6f\x29\x5b\x9e\x37\xdb\x0f\x7c\xdf\xf0\xa6\x65\xfb\x43\xed\x45\xa3\x07\x07\x19\x29\xcb\xf0\x36\x7b\xda\xde\x5a\xf3\xb6\xb3\x4a\xc3\xc8\xee\x61\xa8\x4e\x45\xa3\x41\x8c\x41\xaa\x94\x9b\x7d\x10\xf1\x68\x2f\xa5\xde\x33\xc7\xff\x04\x24\x49\x98\xd3\x03\x2e\x44\xc6\xf2\x67\xa5\x32\xd1\x51\x0a\xdb\x6e\x54\x86\xb8\x0d\x7c\xcf\xe0\xf3\x95\x7d\x3a\x53\x68\xf0\xd0\xe0\x05\x0c\x43\x7f\xc7\x73\x3e\xbf\xdc\x95\xec\x4b\x70\xaf\xbb\x86\x51\x4c\x44\xdf\x81\xc1\xae\x77\x7f\x36\xd2\xb8\x35\xab\xc1\x54\xea\x20\x98\x66\x14\x3e\x07\xdf\xa3\xa9\x3b\xca\x1f\xbb\xa8\x08\xf8\x92\xa0\x7c\x44\xae\xf7\xbf\x56\xce\x09\xbe\x54\x92\xba\x0d\x11\x33\x77\xd7\x58\x7a\x08\xa8\x1f\x59\xec\xd6\x53\x26\xde\x8b\xae\xb0\x0f\x82\xd4\xf7\xba\x54\xf1\x8b\xae\x6a\xae\x2f\x96\x5b\xfb\x4e\x97\x1b\x7d\x04\x5d\x5c\xdb\x3f\x83\x6a\x7b\x08\x2d\x01\xdb\x75\xd1\xd0\xd7\xb3\x0e\xa2\x10\x50\xcc\x69\x67\xad\x90\x8c\x1d\x75\x71\x55\x8e\x30\x0c\x8c\x4e\xfd\xc7\xdd\x4e\x84\xc8\x2a\x61\x10\x6f\x2d\x25\xc9\x78\xf4\x1b\x07\xc2\x01\xcc\x3a\x66\xfd\xdb\xda\x6c\xf6\xb2\x98\x10\x97\x86\x7c\xb1\xa0\x54\x17\x96\x73\x29\x87\xc4\x75\x0d\x23\x9c\xba\xa6\xa4\x05\x91\x3b\xe9\x6f\x6d\x5b\x62\xd0\x4e\x26\xd9\x76\xd7\x9c\x74\xab\xc2\xd0\x58\xbb\x2e\xdc\x64\xd7\x4b\x60\xf2\x07\xe4\x8a\x95\x30\x12\x4b\x77\x1d\x45\x0b\x7d\xcc\xaa\xc3\x77\x7d\x45\x8e\xd7\x74\x11\x98\xdd\x79\x78\x5e\xfc\xbe\x5b\x3d\x2d\xdb\xdf\x50\x94\xf5\x8c\xb9\xc9\x8d\x15\x62\x15\xa1\x79\x06\x45\x75\x2e\x01\x4f\xc1\x41\x4a\x6a\xfa\xaa\x84\x50\x44\xd0\x22\x21\xd3\x0f\xc8\xcc\x11\x6e\x04\x12\x5f\xf0\x38\x73\x0f\x91\xc6\x14\xcb\x2e\x66\xde\x6c\x5c\x9d\x0f\xa9\x0a\x51\xa3\x54\x37\xa7\x42\xf6\x1f\xd8\xed\x2d\x33\xf7\x24\xd0\x16\x18\x49\x90\xd3\xa1\x68\x33\x36\xee\x46\x2c\x91\x71\x87\x6e\xcb\x8a\xbd\xa9\x83\x1c\x0d\x25\x0f\x15\x32\xd4\x1c\x58\xf5\x8f\x73\x26\xde\xe7\xe7\x0b\xa2\x90\xfa\x41\x0b\xe0\x3c\x46\x1b\x6a\xa7\xb2\xdc\x94\xd7\xdf\x04\xed\xff\xda\x02\xe0\x3c\x56\x86\x99\xa4\xf1\x04\xab\x11\x30\x1e\x04\x61\x68\x57\xcd\x1f\xbe\xff\xee\xfe\x26\x53\xa3\xdd\x62\xd0\xb2\x6f\xa7\x69\x02\x3a\x90\xc0\xb8\xe3\xb8\xd8\x19\x16\xfb\xe1\x4f\x43\x1a\xc5\xbd\x84\xbf\xcd\x67\xd8\x46\x05\xb1\x41\x90\x30\x7b\xae\x5c\x91\x3f\x73\x45\x7c\xc0\xe8\x2c\x14\x72\xd7\xa3\x06\x73\xad\x51\x84\xb5\xce\x3b\x7e\x2e\x8b\x3b\x5d\xba\xbd\x77\x72\xca\x28\x22\x42\xe4\xa1\xfe\x70\xd0\x44\xf7\xf5\x14\x8d\xdb\x3c\xd4\xe6\x90\x9d\x6c\x5c\x63\xc5\xca\xe6\x4b\xce\x2f\x46\x63\xa4\x6f\x72\x28\x9a\x26\x18\xa2\x37\x7b\x8a\x2d\x66\xf9\xe5\x63\x11\x4b\xcd\x06\x53\x43\x79\x51\x8c\x18\x83\xac\x86\xae\x3a\xa2\xe3\x60\x76\xbd\x78\xc8\xd3\x2e\xd5\x5d\x8f\x80\xaa\xca\x03\x62\xf1\xf6\xab\xdc\xf8\xdc\x03\x4a\x1c\xe5\x7b\x11\xc1\x09\x98\xed\x0f\x50\xd5\x2b\x99\x35\x7d\x06\xa9\x1c\x15\x84\x3e\x66\x87\xed\xde\x61\xd9\x8a\x5c\x98\x49\x85\x9e\x0a\x4d\x91\x8a\x84\x13\x14\x12\x8a\xba\xb1\xce\xa0\xfc\xbb\xce\xa6\x74\xf7\x87\xaf\x19\x46\x46\xd2\x1f\xf5\x16\x59\x59\x5f\x39\xbe\x8e\xdc\x47\x45\x81\x8f\xe1\x2c\x97\x71\x58\x17\x0e\x01\x35\xf2\x65\x54\x1c\x98\x54\xea\x29\xab\xef\xc0\x2d\x6d\x15\x07\x02\xb7\xc7\x1d\x42\x98\xbf\x62\x04\x53\x71\x20\xd1\xa1\xe2\xe7\xf2\x32\xbe\x37\x27\x51\xcb\x7e\xb9\x39\x9f\x9a\xd3\xff\x98\x15\xd5\x23\x3b\x9d\x3a\xfb\x4f\xc5\x5c\xc9\x64\x48\x74\x36\x08\xc9\xab\x58\x25\xbe\xab\x73\xb4\x07\x41\x17\xd7\x6b\x6c\x7a\xe4\xc9\xd8\x96\x5a\x30\xf3\x0b\xc3\x9d\x43\x25\x8a\x23\xfa\x63\xbe\x98\x7f\x85\x3e\x51\x3c\x4c\x52\xb3\xe3\x7e\x00\xcb\xe7\x70\xc3\x45\x50\x3c\x09\xb0\xd6\xd8\xc9\x24\x94\x20\x5f\x4a\x50\xd9\xcf\xf1\xb9\x38\x7c\x0c\xe1\x4b\x2c\xba\x7d\x5c\x3f\xed\xde\x5e\xb0\x98\x71\xf8\x9e\x22\x4d\x9d\xe9\xd9\x13\x30\x1e\x0d\xaa\xe0\x91\xe1\xd7\x32\x64\x54\x1c\xa6\x51\x95\x4d\x3f\x95\xb8\x38\x33\x52\x33\x4d\x4f\x2a\x21\x62\x1c\x7d\x28\x64\x27\x52\x32\x91\xb1\x1b\xa4\x18\x7b\xc3\x2f\x84\x42\x87\xf0\x75\xf5\xfb\xf6\x9a\xb5\x76\x7a\xce\xc8\x50\xa4\x4e\xf4\xb5\xa8\xcb\xcb\xba\x58\xb2\xcb\x5f\x64\x41\x94\x14\xc2\x91\x13\xcf\xb5\xce\x3b\x42\xbd\xee\x59\xa4\x24\x51\xd2\xa9\x83\x5a\xbb\x7b\x2d\x47\xa7\xb2\x92\x8a\x43\xe4\x28\x38\x0b\x47\x4a\xf8\x02\xe5\x92\x8d\xe7\x30\x58\x3d\xa2\xe6\x6c\x62\x59\xf1\xa0\x45\xc7\x07\xdc\xca\xc1\xb8\xbe\x7e\xc8\x3a\x98\xee\x7b\x56\xec\xa7\x72\xd0\x0a\x02\xc2\x92\x4e\x29\xe7\x31\x1b\x63\x8a\x15\x30\x1f\x4b\x46\xd6\x25\x7b\x69\x29\xc6\x14\x70\x85\x4e\x87\xca\x54\x7d\xf8\x01\xf0\x6e\x40\x98\x3d\x37\x5f\x29\x42\x91\xdc\x99\x97\xba\xc3\x25\x28\xe5\x2b\xcc\xc2\xc0\x47\xb3\xdf\xb0\x1c\x56\x6d\xd2\x5c\x29\x91\xe2\x39\x22\xe1\x46\x28\x50\x29\x50\xaa\x33\x40\x7f\x2d\x4c\xa0\x94\x62\x18\xd8\x52\xcd\x94\x82\xd2\x64\x16\xaa\xa5\x0d\xe0\xda\x5f\x17\x84\xd0\x18\x69\x42\xef\x75\x2e\x33\xd1\xfe\x55\xf8\xe0\x12\xe6\x36\xbe\x67\x38\x14\x6d\x3b\xf5\x23\x74\xd1\x4d\x30\xe3\x43\xff\x84\xbc\x1a\x91\x0b\xf5\x17\xb6\x20\x34\x62\xbe\x21\xdc\xe2\x60\x27\x0e\xf5\x5c\x1b\x4f\xfc\xd6\xc3\xcd\xfb\x40\x15\xf7\x3d\x04\xf1\x42\xa2\x0c\x8a\xaa\xd9\xeb\x47\x70\x14\x41\xbc\x24\x06\xac\x4e\x29\xcb\x72\x14\xd5\x11\xc4\x13\x26\x1f\xdd\x6c\x16\x0a\xca\x5b\xb5\xa5\x82\xf8\xca\x48\xdb\xbb\x18\xfe\xae\xea\x81\x80\x04\x09\x42\x86\x2e\x74\xa5\x73\xb9\xd1\xe7\xfc\x4e\x0f\x0d\x24\x41\x82\x34\x72\xc7\xc3\xba\x86\x89\x82\x6a\x41\x02\x15\x1a\x14\xc6\xe9\xd4\x53\xc3\xb1\x8d\x21\x98\xb7\xdc\x43\x3d\x3f\x97\x85\x15\xfb\x7b\xcb\x8a\xba\x2f\xf5\x37\x18\xd8\x10\x68\x68\x82\x25\xc5\x99\xe5\xf9\xa5\x99\xcb\xd3\xa7\xc5\xe8\x65\xa3\x88\x18\xd1\x0b\x77\x8e\xb9\xa2\x09\xd7\x0e\xa6\xf2\x7b\x03\xf5\xf9\x74\x13\x55\xd0\x76\xe6\xa6\x16\x7c\xb9\xfe\xde\xb3\x06\x05\x49\x88\x61\xf1\xd8\x43\xbd\x04\x5e\x62\x64\xb1\x19\xd2\xbe\xe7\x9f\xb8\xbe\x01\x91\x66\xf3\xaf\xce\x79\x5d\x39\x62\x07\xd9\x21\x92\x05\x49\x13\x81\x98\x08\x26\xe5\xac\x28\x7e\x1b\x0c\x05\x23\x01\xee\xee\x55\xb6\x2f\xda\x32\xe8\x99\x34\x38\xfd\x7e\x61\x82\xeb\x1f\x7b\x48\x79\x87\x72\x43\x55\xed\x7e\x82\xf1\x20\x8e\x06\x3c\x2e\xb7\x64\x82\xc6\x06\x8e\x20\x9c\x1a\x33\xe8\x11\x32\xce\x8a\xfd\x4c\x88\xf3\x11\x61\x74\xba\x68\x9e\x07\x44\x66\xfe\x6d\xa0\x39\x7d\x1f\xfa\x56\x06\x57\x10\xce\x52\x6e\xd3\xe1\x6f\x9b\xe5\x62\xab\x5f\x4a\xfd\x91\x7d\x61\x57\xdb\xeb\x04\x25\x88\xa3\x60\xbb\x13\xcb\xd9\x47\xc9\xcc\xa0\x87\xae\x39\x34\x7e\x78\xdf\x4e\xea\x84\x43\x05\x11\xcd\xf0\x18\x04\xbe\xb6\x95\x15\xdb\x32\xdb\xef\xd1\x75\xb5\x7d\x24\x8f\x30\x11\xf0\x60\xb9\x74\xdd\x97\x54\xbe\x61\xdb\x7d\xd0\xfb\xb1\xe9\x3d\xfd\xac\x2a\x35\x4e\xbd\x21\xe9\x74\x93\xcd\xc8\xc8\x8e\x7a\x4a\x86\x65\xec\xc3\xba\xc4\xc1\x88\x51\x4a\x24\xba\x7c\x5b\xf6\xee\x26\x0e\xf5\x7c\xc3\x13\x8f\x75\x94\x2f\xec\xa2\xcf\xa3\x3d\x84\x7a\x89\xc2\x9c\x5c\xd9\x6c\x98\x26\xe3\x52\x8d\xbb\x70\x95\xda\xa3\x08\xad\x9c\x69\xc0\x81\xeb\xac\x7c\x9c\xaa\x27\x56\xd6\x05\x94\x74\xf7\xa1\x6b\x90\x3b\x43\xe2\xb0\x3b\x95\x50\x9c\xdd\x7e\x4a\x7d\x4f\x22\x58\xf5\xa5\xd4\x35\x6a\xfe\x1b\x1c\xd6\xd7\x5f\x98\xfa\x7e\x4c\x52\x07\x66\x40\xa0\xe0\x0b\x2b\xeb\x4c\x64\x27\x56\xd4\x7d\x8a\xf7\xc1\xd1\xd0\x5c\x27\x7d\x13\xf0\x3c\xe5\x1a\xab\xfc\x7a\xf3\x9f\xfa\x81\x20\x26\xa6\x88\x8a\xb5\x53\x35\x37\x82\xfa\x32\x65\x51\x57\x4f\x5f\x40\xe9\x16\xc9\xf0\xa4\x17\x34\xf0\x02\x25\x07\x22\x5a\x9f\x06\xa6\x3f\xee\x17\xca\x84\xb4\x51\x3f\x83\x23\x40\x1a\xaa\x7b\xf6\x97\x8a\xf0\x5f\x7a\x90\x82\x06\x22\xc2\x38\xb1\xdd\xe1\xa6\xc8\x17\x6f\x5c\x19\x52\x53\xcf\x6b\x54\x79\x4f\x57\xc4\x1e\x82\x86\x61\x8a\x64\xb7\x68\x61\x5b\xf9\xdd\x16\x3b\xd5\x34\x33\x84\x8c\x3f\xb2\xba\xbc\xf4\xab\x52\x05\x8d\x29\xc5\x63\xe9\x7e\x76\x3f\x7b\x75\x89\x66\x41\x63\xc1\x99\x91\x99\x38\xea\xa2\xea\x31\xd6\x2f\x4b\xdd\xce\x97\x58\x86\x24\xea\x53\xea\xe1\xf6\x36\xfd\xb5\x93\x30\xc2\x60\x0a\xd6\x21\x34\x7b\xe9\x03\xab\xb0\x86\xad\x5d\xc7\x34\x89\x02\x5b\xbf\x02\xac\x3a\x97\x17\x8b\x40\x1f\x4f\xff\x24\x0e\x51\x58\x43\xe9\x52\x34\x16\x4c\xc7\x7e\x25\x68\x22\x21\xe8\x54\xb8\x46\xec\x1c\xb6\x4f\x1a\x70\xcc\x7c\x9d\x4a\x58\x0b\x8d\xa6\xf5\xbc\x93\x74\x17\x34\x15\xb1\x2b\xb2\xfc\x1d\xe0\xb4\xaa\x0f\x9d\x97\x21\x28\xa3\xbe\x1a\x11\xf7\x0d\xe6\xc5\x35\x75\xdd\x60\x53\x60\x34\xc1\x28\xde\x4e\xb0\x5c\x20\x59\x44\xd9\x41\x55\x04\x65\x7e\x12\x59\xd2\x00\x03\x56\x9b\x62\x03\x10\x94\xc5\x14\xa1\x11\xcd\x63\x37\x06\xee\x95\x90\x82\xa0\x8c\x19\x68\x92\x60\x79\x6d\x26\xfa\x70\x14\x99\x8c\x31\x1c\x89\x8d\xe5\x3f\xce\x2d\x1a\x56\x50\x4e\x03\x65\x52\x63\xfa\xe7\x05\x53\x5a\xc3\x4b\xb9\x88\x91\xa4\xdf\x2a\x1f\xd8\x78\xd7\x84\xbd\x45\x05\x0d\xf0\x73\x34\x26\xa5\x8d\x07\x8c\x5f\x45\xf8\x46\xb1\x7b\xa0\x10\xee\x9e\x44\x70\x1f\xd9\x65\x9d\xfb\x3a\x3f\x5f\x4c\xc9\xa3\x6b\x97\xa9\x15\x83\x04\xb9\x13\x3a\x2b\xaa\xdd\x07\x3b\xe7\xb5\xe7\x3a\x48\x62\xa4\xa0\xcd\xa3\x5e\x95\x5c\xfc\xad\xf7\x61\x65\xa4\xc0\xeb\xf0\x7c\xdd\xd9\x38\x78\x77\x09\x80\x15\x92\xaf\x8d\x87\x7a\x1a\x38\xd2\x93\x79\x04\x41\x81\xc6\xd2\x26\xa7\x6c\x9e\x73\x38\x00\x10\xc4\x98\x83\x7f\x7e\x5d\xcc\xdc\x63\x43\x1c\x85\x6d\xcd\x18\xf2\x36\x66\x9d\x45\x3b\x79\xd8\xa8\x58\x20\x78\x1d\x37\x00\xac\x3f\x99\x39\x02\x4f\x7b\x53\x8f\xa4\x04\x85\xa7\x9e\x74\x79\x44\x40\x0d\x92\xda\xb7\xad\x96\x9a\x6d\xfb\xbc\x9d\x3d\xec\x90\xc4\x60\x31\x7b\x71\xad\x94\x08\xcc\x27\x7e\x96\x8d\xc5\x58\xb6\x7f\x8e\x98\xc3\x86\xa2\x5e\xbd\x81\x16\x77\x83\xea\xd1\x44\x44\x56\xd8\xae\x79\xe6\xf5\xe2\x79\x50\x56\x22\x3c\xca\x4d\x72\xbb\x73\x61\x1c\x6d\xd6\x60\x14\x3d\x8f\xa7\x08\x83\xdc\x1d\x41\xb2\xfc\x0e\x99\x1d\xc7\x5d\x04\x20\x0a\xce\x4d\x16\x64\xa6\x6e\x0f\x14\xcf\x27\x6d\x2a\xf1\x1b\x94\xfa\x89\x1d\xc7\x37\xf0\x3d\x3f\xb1\x94\x67\xb3\x0b\x2b\xea\x65\xa9\xb3\x7a\x25\x74\xa1\x8f\xd9\xbf\xcf\xb0\xb3\x0a\xc4\x91\xbb\x63\x10\x09\x0c\x47\x20\x29\xe4\xf6\x79\xb7\xd9\xce\x1e\x56\x8f\x2d\x37\x91\xf0\xc2\x08\xb0\x98\xfd\x35\x83\xf7\x0e\x5b\x2a\xbc\x50\x79\x91\x63\xa4\xab\xf5\xae\xd5\xe7\x1a\xce\x0c\x2f\xa2\x86\x01\x2a\x37\x5a\x32\xc3\x28\xe6\xf0\xd1\xa3\x38\x40\xe1\x9f\x0f\x9d\x9f\x8f\xb0\xbd\x9c\x20\x76\x3f\x16\x13\x81\x78\x73\x61\x4f\xc6\x37\xb7\x7d\x7b\x09\x11\x18\x07\x7b\x9c\xfd\xd1\x3c\xfb\xd3\x72\xf6\xba\xdc\x6d\x66\x0f\xab\xdd\xcb\x6c\xf1\xfb\xa6\xed\x46\x0d\xbd\xb0\x21\x50\x9c\x92\x4c\xbf\x3a\xb1\xbc\xc4\x0b\x30\x55\xed\xac\xd7\x39\x13\xef\x8f\xb3\xa7\xd9\x8d\xc7\x4f\x7c\x85\xf3\x7d\x55\x96\xba\x9c\xda\x49\xbc\x24\xf1\x13\x3e\xa8\x4b\xed\x47\x39\x84\x97\x28\xcb\xd3\x67\x12\xeb\x2d\x59\xdd\x20\x9f\x2c\xbc\x34\x96\x1e\xc5\xe8\x65\x21\x97\x59\x25\xae\x6a\x3e\x85\xc7\x44\x12\x59\xe1\xca\xcd\x11\xe9\x79\x4f\x3f\xdc\x07\xea\x19\x36\xd5\xcd\xa2\x57\xe1\x31\x50\xd2\xb3\x25\x5f\xd9\xfe\xab\xe1\x1a\x8d\x83\x48\x38\x6f\xe9\xab\x87\x09\x5a\xe1\xc9\x20\x8c\x6c\xdc\xc3\xe4\x5f\x17\x56\x86\xed\x9e\x55\xd7\x64\x5f\xc2\x93\xb1\x70\x54\x4b\x4f\xf0\xb3\x7e\x30\xc5\x08\xdb\xed\x0f\x4b\x98\x66\x30\x4b\x36\x54\x28\x3c\x20\x01\xfa\xbf\xed\x6c\xc4\x9a\xd8\xa9\xb7\xbc\x7a\x5f\x20\x51\xc0\x3b\xb1\xe1\xc5\x8f\x45\xf5\x02\x28\x6a\x33\x29\x35\x2c\x3c\xf0\x04\x5a\xe6\x7f\x7f\x7b\x58\xcf\x50\x96\xe0\x75\xb5\x69\x27\x9c\x22\xc4\x68\x21\xe8\x7c\x54\x73\x22\x7c\x12\x9b\xf2\x75\x8c\x93\xf7\xea\xec\x84\x4f\x24\x43\x39\x1b\x43\x8a\xf1\xcd\x08\xe1\xda\x36\xea\x11\x66\xca\xc9\xf6\x5f\x69\x9b\x7c\xfd\x75\x7c\x9a\x18\x5f\x65\x8e\xcc\xce\xbb\x39\x2b\xde\x77\x8d\x4b\xb1\x6b\xa5\xa4\x6d\x47\x9f\x1a\xee\x5f\x0c\x9a\xf6\xb8\x32\xc6\x2f\xe3\x47\x2a\x1e\xe6\xeb\x17\xba\xa8\xa0\xa8\xce\x03\xac\xb9\xf0\xc3\x10\x10\xd6\xb7\x6b\x0c\xc7\xea\xd4\x45\x7a\x84\x1f\x72\x89\xd9\x83\xea\xcc\x77\x95\x29\xc6\x98\x4a\xbb\x08\x3f\x14\x06\xaf\xe6\x96\x64\xf3\xe4\x08\x71\x84\x89\xd2\xa5\xc1\xe2\xf3\x23\x22\x31\xb4\x87\x2f\xf1\x63\x70\x04\xf8\x71\x18\xe3\xc6\x2c\xb3\x8e\x5b\x75\x72\x91\xfb\x71\x1c\x62\xcc\x5b\x65\xb9\xc1\x42\xb5\x4c\xe4\xa3\x61\x49\xc0\x18\x68\x46\x89\x58\xde\xe9\xf2\x1b\x2b\x64\x0e\xc3\x25\xef\xa7\x94\x60\xca\x98\xb3\x3c\xd7\xed\xd8\x0b\x2f\x16\xa6\x94\xaf\xd2\xf9\x87\x03\x8d\x9a\xe0\xfa\xa4\x9f\xe6\x8b\x20\x85\x56\x44\xb5\x7c\x6f\xfe\xf7\xbd\xcd\x4f\x9b\x1a\xea\xab\x00\x8a\x2f\xd2\xd4\xc8\x2f\xa3\xb8\x87\x1d\xd2\xf1\x8b\xbb\x05\xe2\x0b\x1e\x7b\x16\x76\x38\xbb\x41\x05\xeb\x7a\x4a\x65\xe0\xac\xb3\xa7\xfb\xd5\xea\x69\xb9\xa3\xc4\xbd\x99\x24\x61\x2c\x7b\x14\xac\x67\xb9\x87\xe9\x2c\x8d\xf0\x65\x48\x92\x1e\x6f\xba\x05\x29\x77\x11\x0c\x5f\x26\xa1\xa3\xb1\x5b\xfd\xcc\x8c\x12\xe5\xe8\x33\x48\x61\xa0\xd5\x5b\x5d\xea\xa2\xd6\xaf\xe7\xfc\x66\x35\x5c\xd3\x39\xc5\xe2\xc8\xaa\x35\xa7\xc7\xd1\x3a\x1f\x22\x8e\xc9\xdc\x1a\xaa\x7a\x83\x80\xee\x57\xc0\x13\xa9\x67\xa4\xf8\x10\x4b\xcf\x46\x84\x17\x07\x96\x15\x17\x74\x29\x06\xdf\x4b\x89\x00\xf9\x04\xf1\xe6\x16\x4b\xd1\xe3\xd6\x16\x01\xf1\x13\x2c\x1a\x33\xcf\x68\x44\x2e\x6c\x13\x4d\x0c\x2f\x6f\x9b\xa1\x9c\x74\x56\x02\xca\x03\xd4\xe0\x41\x52\xd2\x3c\x2b\xf6\xae\xa4\x6d\x72\xb4\x03\x4f\xf8\x60\x29\x79\xcc\xa1\x03\x16\xf0\xe4\xda\x81\xd9\x2f\xf7\x2f\x10\xfd\x98\xda\x64\x30\x2d\xf0\x94\x4f\xa8\x03\x36\xfe\xac\xef\x74\xd9\xb8\xc0\x68\xe7\xcb\xf6\x96\x2a\xc0\xfc\x26\xd7\x35\x16\x47\xb8\xbf\x07\x44\x52\x14\xbb\x6c\x9c\xe6\x19\x96\x5d\xba\xa6\x90\x50\x83\x55\x39\xe5\x59\x3d\x90\x5a\x77\x1d\x28\x4d\x9c\x78\x24\x3b\x5e\x67\xd9\xdb\x6e\x49\xd8\xc6\x30\x36\xb5\xf1\xcf\x0f\xd9\xa9\x3d\x2a\xbc\xee\x84\x88\x6d\xb6\xbd\xad\x2a\xb2\x02\xa0\x22\x08\x63\xa3\x44\xbc\xfa\x79\xd2\xd5\xb9\x84\xe7\x13\x14\xd7\xa2\xc2\x93\x3b\xf2\x50\x36\x5a\x04\x11\x91\x0e\x9e\x62\xb6\xd9\x5b\x74\x3d\xae\x3f\x33\x13\xfb\xf9\xe4\x28\x78\xa7\xa8\x5a\x45\x10\x29\xe6\x39\xbd\x8e\x55\x25\x4a\xfd\x79\x63\x44\xe2\xc0\x40\xb7\x56\x2f\xcf\x8b\x6f\xbb\x87\xd5\xd3\xbd\xc3\x46\x8a\x20\x0e\x13\xe4\x04\xdd\xb2\x77\xa6\xce\x0e\xa9\xdd\xfc\xdd\x54\x85\xa2\xdd\xdc\xac\x15\x7d\x6e\x27\x70\x1c\x31\x24\x21\xea\x6d\x47\x37\xb3\xd7\xa3\x27\x49\x13\x9b\xba\xac\xce\xb0\x80\xb2\xce\x14\x6a\x9f\xfd\x36\x09\xc9\x18\xdf\x73\x30\x0b\x13\xc2\x54\xda\x13\xc7\x29\x2b\xa7\xe3\x32\x3a\xc6\x82\xc4\xe3\xca\x6e\xb9\xe7\x23\xec\x5e\x5e\xd7\xdf\x67\xdb\xd5\xa6\xa5\x00\x16\x41\xc2\x25\x2e\x3b\xa8\x0f\x6f\x9b\x65\xfb\x57\x25\x90\x53\x1a\x59\x6e\x0e\x60\x39\x38\xb2\x96\x4b\x4a\x04\x29\xe1\x24\xb1\x7c\x33\x07\xd6\xfe\x55\xca\x50\xb4\x4e\x7e\x33\x76\xfd\x28\x95\xed\xc4\x62\x63\xce\x80\xd0\x8d\x99\xd0\x87\xc9\x8b\x80\x71\xe3\xc4\x1f\x58\xf5\xaa\xf3\xe9\xcc\x59\xd3\x8b\x61\x1c\xbd\xb9\xbb\xc5\x86\x74\xd8\x0f\x11\x70\x8f\xa3\x88\x74\x01\x9f\x1d\xe9\xef\xa8\xf6\xe6\x6f\x93\x5f\x89\x33\x53\x93\xdb\xec\xce\xce\x1f\x9a\xfe\x9e\x5c\x86\x18\x3d\xb5\x6a\x3c\x16\x0f\xe1\x1a\x41\x46\x49\x8b\xa4\xfe\xa6\xcb\x0a\x2e\xe3\xe4\xde\xc0\x29\xed\x63\xdb\x45\x20\xbc\x10\x03\xd5\x1f\x3a\x6b\xb7\x15\x91\x18\x45\x48\x56\xee\x17\xe7\xb2\x85\xff\x8a\x40\x40\x4b\x14\xea\x42\x12\x53\x69\x44\x11\x08\x65\xc8\xbb\x05\xcb\x85\x2d\x7f\x1c\x76\x90\x1e\x20\x7c\xd7\x04\x82\x8c\x02\x62\x09\xb0\x64\xed\xd7\x91\x09\xf3\xda\xac\xdc\xc9\x6a\xbc\xcf\xea\x5a\x8f\x8b\x5c\x44\x20\xd3\x08\xa7\x42\xa1\xeb\x7f\x42\xa9\x67\x85\x7c\xd2\xf5\xc6\x50\x7c\x8f\x7e\x56\xca\xd4\x4c\xd2\xba\xcc\xe0\x63\x8a\xca\x5a\x04\x52\x11\x2c\xea\x40\x61\xf2\x4c\x17\x7d\x54\xb0\x08\x20\x8a\xe3\x01\xcf\x47\x39\xa1\x81\x7c\x25\x51\x79\x95\x9e\x14\x01\xc4\xbe\x32\xe0\x00\x7d\xd2\x15\xbc\xc2\x07\x94\xd5\x58\xc3\xc7\xf5\x05\x25\xdc\xa6\xac\x73\xd9\x1c\x87\x83\xa8\x59\xa0\xb8\x67\xc1\x1d\xcd\x11\xd5\x58\x9b\x28\x0d\xdd\xfd\x5c\x48\x62\x43\x30\x80\x39\xb8\xac\xd8\x6f\x81\x1d\x4d\x74\x69\xb4\x92\x43\x92\x12\x47\x58\x6b\x12\x60\x98\x09\xae\x7e\xcf\x6a\x64\x0e\x9d\x9c\xa3\x21\x61\xa6\x42\x96\x43\xad\x74\xd9\xa3\x46\x68\x9a\xd4\x20\x89\xb1\xfa\xd9\x1c\x48\x66\xe8\xb7\xda\x51\x08\xbb\xce\xdc\x73\x02\x1d\xbd\x1f\x77\x95\x71\x93\xb3\x2d\xa4\xc4\xb8\xc8\x56\x1a\xee\x8a\x0f\x4f\x84\xd4\xa3\xe8\x5a\x5a\xb2\xba\x51\x89\xe0\xe0\x45\x28\xf3\x31\xf8\xb6\x3b\x17\x27\x86\x4a\x49\xd7\xe9\x9a\x90\x32\x83\x6b\xee\x9b\xd1\x26\xec\x31\x69\x1b\x84\x54\xfa\x68\x4a\x54\xc7\x2c\x87\x4b\x3f\xba\x15\x7a\x71\x8c\x31\xd6\x1a\xd8\xd1\xec\x4f\xd1\xa3\x2e\xea\x43\xfb\xec\xa1\x67\x2a\x95\x3a\xff\x60\x79\x7e\x07\x54\x9b\xea\x6f\xd5\x61\x18\xfa\x58\xfb\x71\x6a\x2c\x81\x61\xf5\x5b\xd3\x18\x32\x36\x10\xae\x1e\x0a\xcd\x88\x30\xf2\x22\xfc\x80\x46\x2f\xa3\x17\xa8\x08\xa3\x28\x0d\x7d\x57\xdf\xa8\xca\xf1\x58\x44\x22\x44\x80\xd3\x91\xbd\xc3\x12\x58\x7e\xa7\xcb\xed\xa7\x9e\x74\x3f\xc2\x48\xa5\x49\xab\xd3\xcb\xf2\x09\xb1\x4b\x11\x26\x49\x88\xa4\xcc\x12\x72\x76\xb1\xd9\x11\xd7\x94\x86\xca\x86\x9a\x37\x3a\xcb\xbf\x9d\x8f\x18\x13\xb3\xda\xae\x58\xf2\x5f\x8d\x5e\x2b\xa5\x10\x18\xfa\xc8\x1c\x04\x12\x30\xff\x6a\xdc\x7e\x6a\x21\x86\xa9\x97\x62\x00\xbb\xd9\x5d\x5e\x4a\xc7\x7f\x2d\x5d\xa8\x31\x4c\x01\x80\xdb\x30\xc9\xc7\xc0\x7f\x70\x7e\xd1\x23\x54\x15\xdb\x5f\xf3\xa0\x0f\x76\x0e\x77\x37\x45\xa4\xcd\x30\x7e\xa5\x6c\x69\x7b\x33\x66\x94\x3d\x6b\xbd\xd5\x35\x3c\x64\xff\x3e\x67\x92\xd5\xba\xec\x13\xbc\x8a\x90\xfb\xa9\x61\xa2\x41\xe5\xb0\x81\xd4\xed\x8d\xc9\xcb\x7d\x53\x3b\xf1\x98\x89\x03\x83\x9c\x12\x4a\x07\x33\x58\x24\x21\x86\x9d\xaa\x5a\x97\x80\x8b\xa5\xff\x0e\x22\x31\xb8\xb5\x0a\x0a\xd9\x66\xd3\xc6\x3f\x38\xfd\xc3\x22\xa5\x0e\x4c\x54\x38\xa8\x8f\x6b\x02\xe2\x9b\x49\x57\x96\x19\xdb\x03\xea\x64\x2f\xb5\x68\xdb\x55\x2b\x5d\xfe\x58\xed\x6d\x89\xe7\x68\xa2\x49\x4f\x62\xc1\x40\x7d\x39\x0d\x02\xce\xa1\x8c\x62\x0c\x68\x36\x47\xbe\xad\x7c\xad\x86\xfb\x89\x4c\xe2\x20\xb4\xa4\xa3\xcd\x87\xdd\x9c\x40\xa0\x82\xbd\x39\xec\xaa\xab\xf3\x60\x7a\xd3\x84\x38\x8d\xe3\x8e\x32\xa8\xdc\x1e\x4a\x68\x77\x42\x48\x28\xe2\x8a\x0e\xa6\x1a\xce\xae\x84\xe1\x74\x04\x91\x82\x83\xc6\xa2\xda\xb7\x0b\xcc\xf5\x36\x7e\x95\x52\x2b\xb7\x01\x1f\x99\x3e\x57\xa6\x32\xce\xbd\x4a\x44\xa2\x04\xa3\x4d\x59\xf5\xa4\x6b\x54\x84\x6a\x4f\x95\x88\xb0\x08\xe3\xb2\x27\x76\xb1\x95\xcd\xc3\x21\x8c\x08\xe7\x08\x43\x38\x57\xf6\x14\xdf\xd4\xac\x9e\x2e\xb8\x10\x11\x11\x69\x64\x11\x77\x68\x48\x3e\xb6\x1a\x44\x22\x22\x92\x21\xe8\xd3\xf0\xe6\x36\x56\xa3\xef\x9a\x28\xa4\xb8\xbf\xd8\xdd\xfd\x1a\x87\x35\x89\x09\xb4\x17\x7b\x81\x42\x0f\x5d\x38\xe2\x9c\xfe\x87\x8e\x3c\x69\x30\x58\x0e\x0e\xd7\x89\xd7\x55\x2f\x46\x29\x60\x2a\x0c\x19\x79\xe0\xe1\x01\xd9\x99\xd6\x99\x2e\x36\x50\x7f\xc5\xf2\x25\x22\xdf\x23\x18\x38\xda\xbc\xbc\x0e\x1e\xc2\x8f\x05\x82\x6a\x5d\xc9\xc7\x76\x94\xc4\x89\x02\x9a\x62\xd4\xf3\x75\xf3\xf2\xb0\xdd\xdd\xbb\xeb\x82\x30\x92\x06\xb1\x09\xf5\x1d\xcb\xf2\x9e\x6a\xc6\xc4\x40\x04\x51\x8c\x15\x48\xc8\x81\xe0\xb6\xab\x28\x8c\x22\xdf\x31\x6e\x1b\xb3\x1e\x99\x5c\x4f\xbd\x6f\xd8\x1b\xdb\xc4\x5d\xc5\x3d\x0c\x1b\xf4\x73\x98\xb7\xb6\xb3\xe1\x18\x44\x71\x6c\xca\x69\x90\x9b\x9e\xe5\xf9\x36\xdb\x1f\xea\xfc\xf2\xc2\x9a\x6d\xe8\xb7\x21\xeb\x84\x88\xe2\x24\x44\x7e\xa0\x59\x59\xf7\xa4\xfc\x45\x94\xc6\x0a\xe7\xec\xe6\xfd\xb2\xf9\xb4\x3c\x3e\x6d\x9b\x20\x88\xd5\x37\x19\x1c\x83\xb1\x1e\x46\x2d\x86\x8f\xc4\x3c\x43\x6c\xbb\xfb\x1c\x89\x02\xb9\xf6\x40\x46\xc6\x6e\xd2\xeb\x6e\xbe\xb2\x88\x38\x7a\x55\x9b\x10\xf0\x83\xb6\x4d\x79\xed\x21\x87\x70\xf6\xe9\xb1\xe0\xc4\xc8\x6e\xad\xef\x16\x0b\x77\x29\x4f\x00\x01\xc4\xce\xae\x78\xe8\x27\xde\x27\xbe\x2a\x6f\xf6\xde\x56\x4b\xf5\xd4\x8d\x90\x08\x3d\x57\x11\xff\x03\x9a\x31\x1e\xcd\x29\x49\x0c\x3f\xef\x09\x4a\xa5\xcb\xa3\x49\x62\x35\x1f\xe4\xc5\x09\x80\x34\x7d\x94\x61\xf6\x41\x4a\x3d\x5c\xb2\xa3\xb1\x91\x49\x2b\x6d\x30\xce\x08\x0c\x16\x8c\x64\x29\x26\x02\xfe\xfd\x09\xa5\xe8\x7d\x47\xa0\x1e\x66\x25\xda\x73\x61\x55\x48\x90\x96\x28\x0a\xfd\xe4\xe9\xa1\x03\x4f\xa2\xfa\x39\x9a\x99\x18\xfc\x69\xcc\x74\x76\x6a\xf5\x15\x44\x04\xdc\x68\x95\x2f\x32\xdd\xcc\x9c\xd5\xeb\xc2\x8b\xbe\x60\x1c\x1b\xff\x00\x24\xa1\x91\x8d\xfd\xbc\x67\xc5\x35\x3f\x78\xd3\x83\x99\x1a\x6b\x60\x47\xab\xae\x7e\x32\x54\x25\x6c\x0f\x3b\x4c\xc0\xb9\x47\x51\x40\x70\x1c\xb1\xf2\x4f\x96\xfa\x34\xfc\x16\x31\x21\x51\x14\x3a\x09\x2c\x5b\x24\x3c\x3f\x8f\x8b\x84\x9b\x7e\x10\xf5\xb4\x67\xf7\x03\x0b\x2f\x26\x89\x22\x43\xf9\x6f\x90\x18\x82\x43\x3e\x9e\xc1\xc3\xc7\x84\x51\xb0\xb3\x77\x6b\xd2\xec\xed\xc9\x1a\x13\x88\x84\xc9\xf9\x7f\x40\xbe\x4b\xdd\x5b\xb9\x66\x4a\x02\x27\x93\xff\xac\x26\xa2\x9d\xae\x1b\x15\x68\x33\xb8\x45\x85\xd8\xfc\x99\xe3\x50\x10\x31\x65\x5c\x5a\x42\x12\x5b\xbd\x32\x96\x31\x12\xb1\xe7\x99\x4a\xc7\x3d\x0c\x21\x02\xb1\x27\x4c\xfd\x4a\xe3\xb8\x5b\xaf\x69\x60\xf4\xc5\x9e\x90\xb8\x6f\xcc\x11\xf8\xb8\x1e\x7b\x9f\xb1\x0f\x29\xb6\xe7\x06\x7d\xe0\xaa\xba\x6c\x6b\xc0\x85\xa5\x6a\x51\xec\x9c\xd7\xc6\xf7\xf8\xfb\xb9\x74\xfc\x17\x22\x0e\x94\x87\x98\xcd\xb9\x6e\x5e\x0b\xce\xc7\x2f\x80\xc4\x22\x8e\x62\xc3\x7e\x5a\x43\x85\x1b\xf5\xba\x86\x23\x52\x80\x62\xf0\xb3\x2d\xc1\x71\xbd\x59\x80\xfc\xf0\x02\xc5\xdb\xab\xd9\x07\x94\x58\x56\xd9\x47\xc5\xbb\xae\x8a\xa3\x90\xc4\xbd\x91\x22\x75\x77\x88\x89\x51\xe9\x42\x3e\xaf\x23\xc8\x36\x30\x3d\xb9\x98\xe2\x38\xe1\x48\x7b\x67\xce\xd7\xbf\x0a\x17\xb9\x8b\x80\xa3\x03\xf4\xcf\x21\xcf\xa2\x88\x13\xaa\x90\xab\x6e\x5b\x9e\x2d\x80\x14\x99\x9d\xbf\x1c\xa0\x24\x05\xb4\xf3\xe6\x79\x56\xc8\x5b\xa5\x8e\xc3\x57\x4f\xa4\x30\xfb\x17\xbb\x20\xb5\x81\xfd\x73\xea\xb3\x88\x4c\xd9\x0a\xae\x3d\x31\xcc\x08\x82\xe5\x48\x29\x07\xb3\xb2\x6e\xb6\x87\x41\x60\x28\x4e\x13\xe9\xac\x2a\xcc\xb5\xec\x58\xc9\xb3\xba\xda\x55\x63\xda\x5e\x11\xa7\x2c\xe0\x76\x9f\x35\x41\x68\x13\xad\xc3\x7f\xeb\xb2\x1f\xff\x8d\x19\xe5\xa1\x31\x59\x7f\xb6\x39\x12\xd7\x14\x7b\x98\x94\x37\x51\xb6\xd5\xf6\x9b\x0d\x77\x2c\xa0\x15\x98\x16\x31\x4b\x43\x19\xb6\x95\xee\x9b\x43\xa9\x47\x34\x9f\x22\xe6\x69\x82\x85\x63\xb9\xae\xcf\x95\x31\xfb\xe3\xf0\x45\xb4\x8b\x97\x73\x8f\x77\x14\x09\xe8\x95\xb4\x60\x88\xf3\x95\xa4\x90\x88\x85\x64\xa1\xdf\x9e\xa5\x6e\xae\xce\xf5\x78\x3d\x49\x61\x52\xdc\xf3\xca\x9a\x04\xbb\xcd\xd3\xf3\xf7\xaf\xad\xfb\x18\x28\x38\x69\x0c\xdc\x1d\x5e\x4a\x2d\x00\x30\x5e\x7d\x1d\x30\x8a\x15\x31\xe2\x9f\xed\x97\xfb\xd1\x1e\x23\xb1\x4a\x0d\x40\x64\xf6\xb6\xfd\xb6\xdb\xac\xb6\x8f\xeb\xa7\xed\xec\xf1\xf9\xed\x69\xdb\xf6\x10\x1e\x6e\x9d\xc7\x5e\x74\x71\xf8\x34\x4a\x31\x44\xfd\x9d\x4f\xf2\x8a\x03\xe3\x86\x67\x38\xe5\x20\x26\x84\x70\xcc\x4b\xb8\x13\x7c\xc1\x0a\x56\x1a\xca\xca\x7e\x78\xdc\xf6\xf6\x3c\x1f\xe3\x51\x26\x6c\x63\xc4\x75\xdc\xb2\x1b\x6c\x69\x89\x17\x18\xb8\xf7\xe6\xdb\xea\x8f\xbf\x06\x6a\x26\x5e\x44\xb1\x52\x4f\x23\x61\xd1\x4b\xa9\xf7\x65\xbb\x4a\x12\x2f\xf1\xd0\xca\xd8\xc9\x7c\x5f\xbf\x0e\xa5\xa0\x45\xe2\xfb\xe6\x97\x90\xda\x38\x2b\x2a\x28\xeb\x9d\xca\x8c\x56\xc3\xb7\xac\xc0\x6c\x84\xb1\x17\xbe\xb5\xe4\x99\x22\xf1\x93\x38\xb6\x29\x1b\x66\x57\xf0\xaf\x96\xf0\x7c\xb1\x35\x24\x7e\x92\x60\xe0\x44\xb0\x3c\xaf\x0f\x59\xd5\xfe\x1c\x03\x64\x0c\xba\x9f\x3d\xf6\x15\x3b\x45\xe2\x43\x82\xa4\xf6\x73\xfd\xfe\x7e\x79\xd1\x7a\xce\x0e\xd5\xec\x5c\xeb\x42\x1f\xf5\xb9\x32\xdc\x34\xac\x3e\xe8\xa2\xe3\x8a\x13\x49\x00\x12\xe1\x96\xdb\x12\xa3\x7d\xad\x15\x91\x84\x91\x47\x6d\x10\xf2\xe9\x6c\x39\xe4\x9a\xe3\x79\xfb\xb8\xc2\xca\x14\xdb\x2d\x22\x0c\xa1\x79\x3b\x27\x94\x0c\x65\x7d\x99\x5f\x06\xc4\xec\x93\x4c\x99\x22\x89\x02\x0a\xd0\xd3\xd3\x6a\x9e\xef\x0b\xd0\x57\x12\x05\x09\xe6\x3b\x8f\x59\x51\xdf\x81\x0b\x60\x4e\x6d\xec\x49\x94\x0a\x47\x56\x6e\x52\x7f\x13\x80\xa7\x24\x89\x08\xc2\x3f\x9c\x64\xd1\xca\xb0\xce\x49\x64\xc1\x1d\xae\x91\x24\x11\x89\x34\x55\x5f\x65\xa6\x2e\xb3\x42\xba\x18\xc3\xed\x3a\x80\x5f\xca\xa9\x27\x89\x52\xe8\x87\x29\x68\x99\x32\x56\xf5\x61\x42\x0c\x4a\x24\x29\x31\xdc\x2d\xe7\xa2\x42\x88\xbe\xfe\x04\x89\x39\x83\x3e\xff\xc1\x68\x4d\x32\xcf\xa8\xb8\x9a\x31\x46\xf9\x94\x83\x15\x1f\x1b\x75\x0c\x93\x80\xb5\xfb\xa3\x81\x7e\x8e\x81\xf5\x09\x63\x1e\xfa\x4c\x83\xa4\xef\xf7\xf5\xcb\x6d\x28\x48\xc2\x80\x0d\xc0\xfc\x6f\x45\xe5\x38\xdb\xdd\x14\x6a\xfc\x7d\x4b\xe6\xf4\xa0\xbb\x93\xbe\x9f\x46\xf3\xc7\x69\x34\xdf\xdd\x5f\x46\x04\x4b\xcb\xcd\x73\xbb\xb4\xe2\xf0\xb1\x65\x14\xf9\x16\x8e\xf2\x88\xf4\x6e\x4f\x5a\x5e\x3b\x45\xa3\x0f\x23\x45\x84\x39\x8a\x9d\x04\xa1\xe5\x55\x70\x27\x81\x24\x41\x49\x49\x8b\x24\xde\xe8\xfc\x03\x0a\x71\x19\x7d\x33\x15\xfa\x58\x49\x05\x47\x28\xf7\x4d\xfb\xb2\x64\x37\x64\x30\x44\xa2\x98\x81\x88\xb6\x85\x0f\x1b\x76\x84\x9d\x8d\xab\xec\xb4\x42\xaa\xf5\xba\xda\xd5\x7a\x77\x64\xc5\x65\x67\xef\x02\x13\x50\x1c\x77\x47\x2e\x11\xfe\x67\x36\xad\xc6\x5b\xdd\xb2\x72\x3f\xb6\x0d\x52\x42\x04\xd2\xd2\x9d\x0b\x17\xda\x1f\xe2\x05\x6c\x37\x4f\x05\x98\xf0\x69\x76\x24\xc9\x6a\x26\x4e\x5f\x6b\x6e\x37\x57\x48\x87\xe7\xd9\xb0\xdc\x64\x8f\x6c\x41\xf6\xa8\x67\x40\x12\x53\x05\x00\xf5\x73\xf1\xa0\x3f\xbf\x65\xfb\x3e\xec\x34\x0d\xe3\x34\xec\x8f\xcd\xd2\x66\x28\xaa\x71\xc6\xd4\xf5\x67\x9e\x91\xd0\x30\xf6\xd0\x73\x99\xed\xb3\x82\xe5\x2f\x2c\x2b\xfa\xf1\xb0\x1b\xcf\x1d\x72\xc0\xcf\xd6\x1c\x04\x99\xb0\xe2\x14\x22\x8d\x7c\x82\xf4\x67\x27\x53\x13\x71\x5f\x32\x79\x66\x46\xe4\x9e\x55\x43\xc8\x4a\x1a\x05\x0a\x91\x56\xc5\xf9\xd8\x22\x3f\x5d\x53\x48\x64\x2b\x22\xd0\x0c\xa6\x79\x07\xb7\x66\xd2\x28\xf2\x11\x3e\x63\x54\x73\x61\x7e\x59\x4c\xfa\x96\x69\xc4\x08\x0a\x16\xde\xff\x79\xdf\xde\x5a\x44\xa1\x61\xf6\x30\x74\xdd\x43\xef\x20\x8d\x54\x8a\x05\x22\x2d\xf9\xa8\xcd\x90\x8f\x22\x1e\xc3\xa1\x8c\x13\x81\x2b\xa1\xb1\x36\xbf\x3d\x3f\x3e\xbb\xdf\x8a\xd3\x28\xe9\xd3\xed\xcf\x8a\x4b\x27\x65\xb2\xd5\x73\x28\x40\x65\x22\x63\x13\x8c\x84\xc3\xd1\x8e\x99\x4c\xd2\x1e\x75\x13\x06\x8d\x5b\x8e\xf5\xfa\x5c\x16\x37\xe2\x6a\x69\x12\x2a\x62\xea\xb7\x3f\x8b\xaa\x57\x36\x91\x26\xb1\xe1\x7f\x31\x36\xc8\xf7\xb8\xfd\x7b\xc2\x91\x56\x6c\xe7\x14\x24\xfa\xe8\x88\x34\xa5\x1c\xdd\x51\xa9\xcf\x3c\x87\x1d\x6f\x8c\xf2\x5d\x75\x60\x5e\x18\x7d\x55\xd1\x28\xd2\x34\x82\x18\x3a\xd0\xcd\x4b\x0e\x72\xdf\x16\x76\x8a\x34\x65\x0c\xc3\x7f\x36\x34\x8e\x36\x5f\x3b\x1b\x52\x20\x38\x53\xe7\x59\xbd\x3e\xb2\xfd\x20\x4c\x97\xa6\x2a\x46\x22\x9e\x5d\x65\x9f\xb7\x0b\xa9\x0c\x86\x90\x79\x21\xf2\xf5\x69\x67\x6d\xf5\x4a\x32\x47\xab\x98\x45\x21\x75\xfa\x0d\x1d\x69\x55\x73\xcd\x4c\xd5\x50\x3a\xb6\x39\xf7\x04\x3c\x8c\x62\x5b\x4c\xf5\xbd\x39\xfc\xb2\x29\xe2\xc4\xa6\x9b\xf0\xc9\xb5\x37\xa0\x00\x5e\xf0\x85\xd7\xc5\x0f\xc8\xfa\x4e\x41\x2a\x7c\x8e\xc1\x3f\x3b\x5d\xba\xa8\x41\x2a\x12\xc2\x94\x43\x35\x33\x69\xca\x8b\x59\xbe\x03\x47\xc6\x2f\x52\x21\xfd\xd0\xc9\x7e\xd9\x37\x5d\x17\x4a\x5f\xab\x45\x8b\x54\xc6\xc6\xd8\x2e\x59\x56\xc1\x87\x6e\xf3\xd7\x29\xa8\x04\x21\xc3\xc6\xc4\xc7\x93\xb4\xca\xf6\xb7\xa6\x9a\x22\x9e\xe7\xb5\x35\xc7\x35\xf4\x37\x27\xe5\xf1\x98\xdb\x8d\x71\x5c\x3d\x3e\x3d\xe5\x55\x2a\x51\xe6\xe6\x6e\xb6\xf8\x36\x5b\x3f\x0d\xa5\x19\xff\xd2\xc6\x65\x84\xa4\x46\x52\xd4\xb9\x04\xa8\x5f\x36\x00\x51\x30\x1a\x46\x91\x3f\x28\xa0\x72\x4c\x4e\x63\x72\xa0\xc1\xa3\x31\x9a\x7a\x18\x2e\xdd\xe5\x7a\x8f\x19\xc8\xd5\xcf\x1a\x8a\x2a\xd3\xc5\x77\x04\xd7\x0e\xcf\x0e\xe6\x35\x46\x73\x33\xf3\x0a\xd8\xd5\x9f\xba\x5f\x80\xc4\x7c\x0a\x11\x6d\xfd\x9c\x17\x47\x51\x30\xbc\x81\x1f\x08\x4a\x3b\x02\x24\x07\xa7\xb7\xad\x91\xc7\x42\x43\xc8\x59\x7c\x40\xd9\x98\x3d\xcf\xf9\x08\x4c\x38\x7a\xfe\x28\x62\x08\x46\x5a\x36\x86\x89\xfb\x5b\xcc\x12\x27\x09\x55\x3d\xdd\x6d\x51\xad\xe9\x30\x06\x59\xb3\x48\x49\x97\x6f\xfc\xbb\xe6\x3f\x74\xf9\x0e\xe5\x35\x4e\x9a\xc5\x1e\xc1\x99\x6b\x46\x73\xd1\x3c\xb4\xfe\x2c\xae\xf3\x79\x2c\x96\x02\x49\x29\x4c\x90\xac\xfa\x64\xa7\x5d\xd5\x77\xb7\x59\xac\xa4\xec\xc3\xd4\xac\xbe\xf6\x97\x73\x87\x25\x51\x8c\xdb\x7e\x05\xe2\x5c\xde\xc8\x5c\xb1\x44\xca\xc8\x9d\x60\xbb\xfa\x50\x02\xd8\xd2\xf7\xd5\xbf\xad\x08\x9c\xeb\x08\xa9\x74\xd5\xc4\x59\x9e\xa3\xe6\xf6\xe0\x24\x63\x2c\x4e\x84\xc5\xb0\x77\xbb\xca\xc8\x36\x60\x8c\xd3\xc4\xb2\x0d\x6f\xf4\x11\xee\x59\xfb\x05\x39\xf1\xa8\x8d\xce\x6d\x9f\x37\xa3\xcb\xb8\x0f\x18\x82\x6e\xbc\xfe\xac\xd8\x6f\xea\x92\xd5\xb0\x6f\xc7\x87\x73\x2e\xec\xae\xb2\xc9\xf5\xde\xe2\x68\x9d\xbf\xc6\xb8\xa4\xdc\xc2\xef\xef\x00\xfc\xd1\xe8\x0b\xc2\x53\xe5\x2a\x96\x7f\xbe\x60\xf6\x1d\xbf\xd8\xb8\x5f\xca\xb0\xdf\xb9\x90\xa5\x3e\x9d\xda\x78\x14\x93\xa9\xb1\x77\x0e\xe7\x23\x2b\xdc\x12\x9d\x5f\x6a\x58\xb4\x44\x38\x82\x49\x66\x0e\xf3\xcd\xdb\xd3\x3f\xfa\x5b\x37\x53\xc4\x8b\x93\x1e\xee\x1c\xeb\x42\x7b\xac\x4b\x83\x81\xe0\xc4\x0b\x6d\x19\x48\x33\xf5\x96\x50\x89\x32\xbb\x66\xdc\x6d\xfa\x29\xcc\x29\x7e\xd7\x35\xbc\x9c\x8f\xa7\x85\xce\x0a\xe2\x0e\x30\x4e\x52\x89\xf1\x3b\x05\xe2\xd0\xf4\x78\x3a\x1f\xef\x74\xd9\xd2\xcb\xb4\xdd\xb8\xa9\x73\xcb\xaa\x17\x9d\x67\xe2\xb2\xfa\x99\x55\x43\x29\x2b\xc1\x29\xf1\x43\xbb\x76\xcf\xa7\xe5\xb9\x16\x87\x76\xf8\x6e\x79\x3c\xbf\x04\xd1\xe2\x34\xa4\x18\xa9\x61\xc2\xe8\x93\xa1\x19\x37\xd4\x67\x1c\x8d\x4d\xb3\x8b\xa8\xde\x4e\x86\x78\xc9\x61\x17\x8f\xc9\xa8\xdf\xa5\xa5\x70\x10\xdc\x93\x46\x56\xde\x21\x13\xc7\x57\x2a\xc0\x22\x06\x2c\x35\x99\xe7\x4c\xbc\xa3\x32\xf9\x94\x07\xca\xfd\x54\xe2\x21\xd7\x05\xdf\xdb\xc9\xc2\x7d\x61\x0b\x79\xa1\xde\x7c\xb2\x51\xb4\x83\x07\x11\xc5\x8c\x55\xcd\x3e\xa0\x1c\x7f\xd3\x10\x42\x84\x10\x3b\xf6\xf9\x9c\x65\xc7\x5e\x59\xcd\xe4\x02\xe7\x91\x27\x71\x22\x88\x1c\x58\xb9\xd0\x85\xca\xdc\x92\xe6\x11\x8b\x86\xf2\x71\xaf\x48\x58\x6f\x09\x3a\x26\xab\x74\x78\x24\xa2\xd4\x42\xd8\x31\x7e\x09\x72\x81\x51\xd8\xd1\x7b\x44\x82\x61\xc1\xd1\x93\x3e\xb6\xa0\x29\x1e\x41\x84\x78\x25\x34\x5f\x30\x59\xf5\x45\x5c\x83\x47\x60\x0a\x69\x9b\x9d\xc9\xc2\x17\xbe\x0c\x0b\xf3\x48\xc5\x46\x0d\x12\xeb\xd5\xfe\x62\x58\xe2\x20\xc1\x04\xf6\xeb\x39\x87\xfa\x9d\x6d\xa1\xaa\xd7\xce\x7e\xe7\x71\x00\x06\x3c\xcf\x90\x9c\x01\xab\xc6\x6c\x53\x12\x7b\x98\xeb\xea\x58\xf5\xb7\xec\xe7\xaf\x55\x2d\xf0\x24\x49\x93\x0e\x3f\x32\xd8\x90\xdd\x56\xc5\x93\x34\xc0\x92\x08\x65\xae\x1c\x14\x55\xf1\x94\x78\xca\xc4\x5a\x84\x2e\xe4\x37\x43\xab\x32\xef\x06\x38\xf5\x95\x11\xeb\x6e\x9c\x38\x28\xbf\xe9\x73\x89\xf6\x54\xdb\x1e\x85\xae\x64\x63\x80\xb6\x1f\x7e\xbb\x54\x46\x2d\x84\xa4\x31\x25\x59\x21\x7b\x9c\x09\x82\x33\x30\x95\x68\x5b\xad\x6b\x2b\xeb\xd0\x69\xac\x08\xce\x83\x18\x57\x21\x5a\xaf\xc7\xec\x7c\x9c\x29\x95\xe5\xd9\x15\x6b\x95\xe0\x3c\x8c\x31\x26\xb4\x81\x7a\x36\x19\x0f\xb3\xfd\x84\x17\x63\x7a\xbb\x80\xcf\x09\x4d\xea\x71\x67\x5f\x21\xc7\xed\x3b\x5c\xee\x34\x46\xb2\xba\x0c\x10\x17\x91\x87\x3b\xf5\x56\xbf\x67\xf5\x12\xeb\x69\x6f\xee\x26\x82\x99\x33\xe5\xc4\x8a\xba\xbc\xb8\x38\x29\x97\x69\x18\xd9\x32\xf4\x17\x56\xbb\x08\x90\x2b\x3e\xe1\x92\x1b\x40\xb9\x55\xd7\xc1\x6a\xdd\xa9\x42\x2d\x2e\x2d\xd4\x1d\xb5\x21\x9a\xcf\x69\x88\x58\x5c\x2b\x98\x42\x54\xc1\x0a\xe3\x93\xcf\x99\x78\x37\xca\xc8\x33\xf9\xaf\x73\x55\x37\x37\x7e\x6d\xde\xcd\x5d\x01\x5e\x8c\x4c\x61\xf5\x21\xab\x76\x08\x15\xaf\x77\x1d\x2d\x9a\xe0\x2a\x35\xfc\x72\x50\x48\xac\xef\x6e\xff\xce\x19\x73\x49\xb1\xe7\xe7\x07\x43\x3c\xed\x93\xae\x59\x22\x70\xcc\x54\x38\xef\xa6\x26\x8c\x20\x1e\x35\xa4\xf6\x59\x09\xa2\x5e\xc2\x51\x8b\x92\x09\x77\x38\x0b\x12\x0a\x44\xf6\xda\xbd\xd2\x70\x3a\xba\x36\xe6\x21\x3c\xdb\x8e\xcd\xcc\x9e\x2e\xc3\x6f\x2a\x28\x51\x68\xfa\xd9\xa2\xa5\xaf\x23\x32\x82\x7a\x14\xe1\x9e\xba\xd8\xf1\x5e\xbd\xaa\xf0\x42\x82\x20\x81\x13\xc2\x44\x9e\xb4\xcb\x2d\x08\xdf\x93\xc8\xa7\xe8\x30\x0e\xeb\x93\xaa\x96\x5a\x5c\x67\x95\xbb\xb0\x8e\xf0\xb9\x8f\xd3\xa0\x25\xe5\xfd\xf6\x7d\xd1\xde\x4f\x10\x4c\xbe\x19\xa9\x35\x44\xc6\xb8\x98\xdd\xba\x1e\xc9\x7d\x0a\xe1\x83\x97\xf8\xa3\x60\x32\x1c\x4f\x75\x3b\x46\x8d\xe9\x63\x04\x74\x58\x7d\xb8\x63\xa2\xd6\xe5\x2e\x73\x6b\x5a\x84\x89\x29\x04\xd8\x99\xc8\xd6\xa6\x66\xe2\xfd\x30\x51\x3f\x29\x42\x46\xd0\xa5\xbd\x47\x48\x7f\xeb\xb8\x89\x28\xe1\x38\x11\xcf\x15\x94\xd5\x2b\xa8\xd1\x65\x51\xea\x45\xd6\x60\x5b\xe8\xe3\x89\x15\xd3\xa4\xd3\x42\xc4\xa9\xc2\xf0\xb6\x3e\x41\xf1\xc8\xb2\x51\xb1\x8a\x88\x95\xe1\xbe\xed\x61\xf4\x58\x0d\x75\x97\x54\x14\x89\xe7\x2b\xc7\x8b\x75\x2e\x7b\x73\x57\x24\x89\x20\x86\x05\x4f\xb0\x4b\x8b\xc5\xba\x65\x23\x89\x44\x70\x54\x9c\x38\x9d\xab\xc3\x16\xca\xe3\xc0\x4c\x15\x29\x89\x59\xda\xca\x67\xdf\xd2\xc9\x12\x22\xa5\x7e\x02\x1d\xb9\x51\x36\x42\x03\x8a\xd4\x4f\x7c\x77\x12\xec\x2c\x35\xcd\x80\xca\x67\x74\x3b\x5f\xa4\x7d\x4e\xa6\x56\x2a\xb6\xaf\xd0\x3e\x8a\x8a\x8a\x34\xe5\xe8\xd6\xb3\x3c\x7f\x2b\x7e\xbf\x08\x90\xab\x76\xe5\x0a\xe6\x09\xcf\x9a\x82\x77\x59\x79\xc4\x60\x88\x89\xd7\xd4\x97\xd1\x47\x64\xa9\x07\x3d\xb1\x29\x63\xd9\x76\x98\x5b\xdb\x8b\x7b\x11\x62\xad\x6c\x9a\x93\x8d\x20\x5d\x82\x07\x06\x41\xfb\xba\xde\x7c\x9b\xcd\xbf\x4d\xe2\xed\x5c\x57\xa9\x90\xff\x79\x5d\x2d\xcd\x41\xf9\x7a\x2e\x8a\xac\xd8\xdf\xb1\x7c\xbf\x73\xf7\x13\x01\x73\x6e\x9f\x4d\x8a\x59\x02\xd1\x45\xae\xab\x11\x8f\xe8\x68\x34\x65\xea\xe3\x91\x90\x09\x6d\xb0\xc7\x8f\x96\x50\xe5\xb7\xb6\x43\xe4\x71\x67\x82\x21\x71\xb1\xab\x67\xd3\xe3\xc4\x96\x80\x80\x53\xe2\x10\x50\x4d\x5f\x13\xfc\x7c\x05\xe3\xfb\xd9\x5e\x2a\x21\xcc\xec\xec\x39\x3b\x17\x4d\xcb\x15\x49\xf5\xff\x2e\xa6\x2f\x54\x12\x27\xc8\x15\x68\xb8\xd3\x4a\xa8\x60\x44\x8b\x2c\x84\x62\x81\x55\xc5\x34\xf9\x45\x44\xd7\xd3\xe4\x78\xd5\x0d\x50\x8d\x77\xa4\xa4\x40\x4d\x81\xb2\xab\x18\x94\x84\xb0\x50\xd8\xd2\xb2\xbe\xe6\x4e\xd3\x62\x74\x2a\x77\x70\xcc\x6a\x0c\x8f\x94\x97\xc6\x7d\x19\x1d\x5e\xd3\x6f\x22\x89\x67\xa2\x3a\x8e\x70\x7e\x72\x6a\x5c\xcf\x6f\x49\x02\x93\xaa\xd8\x99\xa8\x51\x75\xe5\xc7\x48\x4a\x42\x69\x90\xe6\xfa\x58\xc9\x16\xfb\x2e\x69\x4a\x63\xeb\xf1\xb1\x72\xef\xd4\x22\x84\xa4\xb6\xcc\xcf\x44\xdb\x1f\xb3\x22\x3b\x9e\x8f\x83\x5a\xc6\xe1\xfd\xbd\x30\x92\xbc\x57\x2c\x9a\xfd\x07\x1a\xcf\xad\x1a\x77\xb3\xda\xed\x15\x56\x2c\x65\x72\xfe\x69\xb3\xd8\xec\x3a\xfe\x2d\x3d\x48\x90\x75\xa0\x04\xa5\x1a\x03\x75\x3e\x5a\x8e\xd2\x27\x21\x06\x06\xfe\x95\x55\x87\xac\x3e\x67\x87\x33\xbb\x61\xfb\x48\x5f\x98\xf4\xa7\xc2\xf4\xd4\x28\xf1\xdb\x0b\xac\xc9\x20\xe6\x86\x3f\x46\xca\xd9\x59\x66\xf5\x73\xb9\x42\xfd\x47\x61\x22\x50\xe3\xa2\xfb\x51\xbd\xc3\x08\x84\xdf\xdd\x13\xfd\xbf\xc5\xf3\xa3\x51\xe8\xdf\xcd\x9f\xdf\x9e\xb6\x7f\xee\x36\xdb\xd9\xef\xae\x68\x45\x06\x31\xa4\xad\xe3\x74\x45\xf2\x7a\x6b\x49\xf4\x1f\x3d\x09\x31\xfc\x31\x67\x79\xd6\xc3\x3e\xc9\x80\x9b\x82\xea\x0f\x56\x70\xf8\xb9\x6d\xd1\xdf\x6d\x3b\x18\xf2\xae\xd9\x51\x97\x83\xeb\x20\x40\xbf\x66\x93\xe5\x1f\x50\xde\x65\xaa\x1e\xe0\xc9\x65\x98\x12\x84\x38\x58\x2e\x1d\xef\x0e\xb9\x46\xdb\x95\x2e\x43\x1e\x9b\x70\x41\xad\x4f\xb3\x76\x85\x84\x8a\x7b\xc6\x19\xfe\x27\x94\xfa\xb7\x89\x40\xbb\x8c\xac\x4a\x47\x73\x94\xbf\x15\x75\xe6\x22\x95\x32\x52\x24\x8d\xda\x0a\x9e\x52\x7f\x56\x6b\x85\x9e\x45\xf5\xa4\x4d\x70\xd5\x7a\x38\x79\x9b\x31\x95\x71\xe2\xf1\x76\x77\x44\x9e\x19\xdc\x24\xae\x10\xa6\x32\x4e\xc0\x67\x2d\xc4\x6c\x2d\x67\x85\xfc\x06\x63\x18\x86\x4c\x02\xc0\xd3\xe2\xe5\xc1\x71\x97\xc8\xd4\xb3\x50\x43\x9c\xca\xbb\x25\x88\x9c\x95\x70\xa7\xb1\x22\x79\x7a\xe3\x95\x69\x20\x04\x6f\xe7\xe3\x92\x5d\xaa\x3b\x5d\xb6\xfc\xa7\x42\xa6\xa9\x4f\xec\x7a\xfa\xa6\x3f\xa0\xdc\xc2\xcf\x36\x8b\xd4\x16\xb5\xc9\x54\x49\x0c\xa0\xab\x73\x41\x47\xcf\xc9\x08\x55\x8e\xaa\xc6\x00\x4c\x4d\xae\xb7\xf1\xd4\xa7\x97\x08\xf3\x4c\x7c\x96\x33\xd1\xcb\x58\x4b\xe6\x03\xce\x0e\x63\x3f\x5b\xfc\x44\x26\xa0\x33\xfc\x24\x8b\x62\x04\xd7\x6d\x67\xcb\x97\xe7\x87\xd5\x6e\xfe\xfc\xbc\xd9\xb6\x8d\x8c\xa0\x27\x76\x1a\xb0\x0f\x0d\x58\xfd\xc6\xdb\x19\x67\x31\xe6\xfa\x5c\x28\x67\x57\x9c\x1d\xa2\x40\x72\x96\x52\xd5\x2b\xbe\x5b\xfd\x3c\x21\x00\x6d\xe2\xbd\x86\x67\xa9\xc4\x42\x47\xab\x40\xd0\x1b\x69\x49\x03\x0c\x6d\x1f\xb3\x2b\x4c\xe1\x94\x3f\x2d\x65\x2a\x70\xef\xdf\x40\xdd\x17\x21\x9c\xa4\xe2\x16\x52\xf2\xc8\x17\x3d\xa5\x4f\x5d\xd6\xfb\x1e\x26\xff\xbf\xa3\xff\x99\x82\x7e\xdc\xda\x48\x24\x07\x8c\xed\x55\xfa\x08\x77\xe7\x02\xa7\xb2\x43\x2f\x4b\xf0\x0d\x37\xb8\x08\x84\x6a\xc3\x31\x12\x44\x4a\xac\x35\x38\x87\x7a\x2d\x67\xf5\x24\xdb\xa2\xed\xad\x02\x85\x26\x1f\x3f\x5f\x1a\x4f\xc9\xdd\x44\xd9\x10\x28\xfa\x01\xce\x06\x9f\xc3\xbe\xdb\x2b\x54\xec\x47\x5e\xe7\x12\xff\x5a\xf9\xa0\x54\x8c\xa0\xd3\xc4\x10\x51\xfe\xc4\x8e\x60\xd9\xea\xda\xdb\x72\x3f\x34\xf8\xbb\x32\xfb\x9d\x95\xce\x5a\x07\xaa\x18\x2e\x6a\x07\xfa\x1b\x96\xf6\x80\xe7\xc7\x2a\x44\xcc\xa9\xab\x06\x06\x9f\x24\xe8\x1e\x30\x5e\x3d\x66\x45\x17\xaf\x02\x3f\x92\xcc\x73\x9c\x22\xfd\x64\xf1\xa4\x45\x06\x81\x97\xf8\xbc\xef\x6f\x56\x5b\x8d\x58\xf6\xbe\x83\x0c\x41\x18\x22\xaa\x13\x0a\xb9\x5e\x3c\xa3\xfb\xef\x68\x3c\x20\xa4\x0c\x41\x73\x07\xc8\x4f\x50\x62\x92\x07\x95\x0c\x77\xbb\x51\xae\xe9\x6f\xed\x52\x19\xed\xf9\xd3\xcd\xee\xf6\x9e\x8f\xa8\x4a\x63\x7d\xda\x8a\x7b\x79\x3e\x4e\x7b\xfb\xc3\x0f\x02\x09\x01\xf4\x10\x70\xda\x3d\xc2\x51\x97\x97\x59\x59\xb6\xe6\x02\x30\xe6\x1b\x51\x2f\x13\x4b\xec\x00\xe4\xa3\xfb\xf0\xc4\x30\xc6\x5a\x42\xcc\x79\xa6\x07\xce\x03\x08\x62\x60\x5c\x15\xd4\x42\x17\xea\xff\xca\x74\xf5\x7f\xfd\xaf\x7b\x0a\xdf\x4f\x98\xab\x69\xa8\xb3\x8f\x7e\x92\x09\x44\x60\x58\x77\x6b\xc7\xa3\x37\xd0\xda\x1b\xdf\x29\x48\x12\x47\x6f\x5f\x14\xfa\x5c\x08\x0c\x59\x0c\x5f\x5a\xd2\x08\xed\xf4\x77\x80\x8e\xd0\x00\x64\x98\xfa\xa1\xc3\x77\x63\x58\x71\xaa\xe4\x06\xa4\xf0\x1d\x17\xed\x12\x84\x89\x88\x34\x66\x7e\xcb\x05\xd1\x7b\x74\x08\xcd\xe8\xb3\xac\x5c\x96\xfa\xf4\xc2\x2e\x8c\xe7\x03\xfa\x1d\x00\xc1\x91\xbc\x46\x66\x55\xd3\xb6\x81\x3c\xef\x92\x14\xa0\x68\x8a\x3f\x66\x13\x24\x8d\xc3\x9a\x43\x7d\x6d\xbe\xba\xee\x91\x91\x18\xed\x52\x5f\x5f\xa6\xbc\x40\xf1\x18\xf5\x41\xff\x7e\x96\x7b\xc3\xc3\xd6\x6e\x24\xa0\xa4\xef\x77\xb8\xca\x41\x24\x75\x70\x13\x45\xa4\x0c\x63\xa7\x9c\xb5\xcf\x74\xf1\x56\x8e\x7c\x65\x45\xd3\x18\x77\x89\xb5\xd0\x8d\xdf\x74\xe5\xdd\x28\xca\x89\xa1\xbf\xba\x54\x35\x1c\x27\x6a\xfb\x15\x85\x14\x21\x08\xfc\x7c\x79\xca\x8a\x7f\xb1\xe1\xf6\xae\x3c\x15\xc4\x9d\xe8\xd9\xb6\x64\xb2\x19\xcd\x3b\x91\xad\x0b\xab\x54\xda\xfb\x2e\xca\x0f\x0d\x29\xfb\x2e\xab\x1e\x58\x9d\xd5\x67\x09\x83\xc0\xa4\xf2\xed\x40\xe2\x5c\x40\xdf\xe1\xba\x22\x50\xf9\x11\x84\x56\x18\xfd\x85\x95\x57\x31\x63\xe5\xc7\x1e\x62\x4a\x37\x50\x1b\xf8\xcd\x84\x0c\xa5\x50\x01\x21\xdc\x73\xfb\x98\xa5\x2c\xaf\x30\x1e\x6f\x2d\x72\xfb\xcd\xdd\x40\x04\x5e\x82\xa0\x6f\x7e\xce\x72\xb9\xdc\x38\x5a\x89\xe5\xdc\x75\x08\x89\x51\xd6\xb3\x2c\xa0\x5f\x9a\x3f\x2a\x0c\x43\x6e\xd8\xf6\xf6\x4e\xf6\xec\x0a\x95\xad\x42\x11\x25\xa9\x2b\xe1\xc3\x30\xa0\x81\x99\xe3\x32\x29\x8f\x16\x8f\x32\xba\xb1\x50\x58\x69\xb5\x41\x9e\x51\x13\x12\x9e\xac\x61\x53\x51\x6c\x18\xdb\xdb\xf2\xcf\xbe\x70\x99\xeb\x23\x53\x3c\x0e\x17\xd6\x6b\xac\xcf\xe5\x0d\x07\x43\xc5\x0c\xd8\xf0\xd3\x19\x5d\xe0\x51\x2f\x41\xd1\x18\x32\x6e\xd5\xdf\x99\x78\x3f\xe9\x7a\xc8\x19\xa4\x12\xae\x3c\x97\xee\x2c\x20\x1f\x4c\xc7\x34\x00\x44\xe6\x2a\x4b\xc5\x33\xe6\xa6\x54\x69\x1c\x4a\x4b\xf5\xb4\xb8\x88\x7c\x9c\x7b\x6e\x7b\xb1\xc8\x78\x56\x5d\xfc\xfd\x6a\xf8\x19\xe7\xd0\xb9\x80\x36\xd8\xd4\x67\x26\x17\x8a\xd3\x10\x6b\xdf\xd0\xa4\xe8\x01\xdb\x15\xf7\x4c\x8c\xb0\x9f\x1f\x3a\x77\xcc\xc5\xdd\x37\x69\xfb\x1b\x8d\xa5\xec\x1b\xfb\x80\xd9\x1c\x5f\x6a\x99\x89\xf7\xa9\xa2\x28\xc5\x03\x8e\xf9\x8f\xe5\xfa\xfb\xfa\xed\xf1\xa7\xf3\x59\x95\xa4\x09\xd6\x8c\xdf\x3d\xbf\x3d\x2d\x67\xdb\xf5\xf3\x98\xe9\x47\x49\x3f\x64\x64\x90\x75\xe8\x2a\x40\x16\xec\x78\x62\xd9\xbe\xb8\x2a\xfa\x56\x32\xf1\x4c\x9a\xba\x64\x45\x7d\x03\x5f\xab\xa4\x92\x54\xb4\xec\x92\x37\x0c\xc9\xe1\x25\xe0\xc5\xa8\x09\xbc\xc9\xa7\x45\xd3\x86\xc6\x9f\x82\x98\x22\xc3\xde\x46\x64\x50\x20\x72\xde\xbd\x96\xf2\x8c\x16\x1b\x32\x14\x3e\x6d\xee\x7e\xfc\x76\xed\x1d\x2a\xa5\x7c\x53\x01\xa8\xf3\x7c\x39\xf6\x7e\x24\x21\xd4\xc3\xb8\x1a\xea\x08\x3f\x7f\x40\x49\x09\x69\x25\xb7\x24\x21\x5e\x8a\xae\xf6\x89\x5d\x6e\xf0\xf5\xf7\xc2\xba\x92\x10\x9f\x81\x75\x5f\x9a\xf3\xdf\x88\x69\x0a\xbb\x62\xaf\x60\xaa\x46\x66\x18\xdd\xeb\xf3\x95\x66\x86\x24\x24\x25\x91\x2d\x91\xf9\x9e\xd5\xcc\x72\x5b\xf7\xc7\xb2\xe9\x13\xb1\x41\x42\xd2\xd6\xc1\x2e\xce\x55\xad\x8f\xc6\x3c\xfc\x22\xd5\xff\xb7\xe1\x60\x50\x90\x18\x4f\xa9\xfc\xdf\x7a\x22\x66\x92\x78\xd4\xc3\xb4\xa2\x60\xa7\xac\x66\xf9\x13\x80\x74\x4b\x4f\x12\x2f\x34\x2c\x4c\xf3\xac\xbe\x47\xc9\xef\x96\x66\xcd\x76\xf0\x3d\x43\xc8\x59\x9d\x4f\x27\x5d\xd6\xaf\xc0\xfb\x0b\x5f\x12\x9f\x71\x2c\xbd\x37\x10\xed\x57\x60\xf9\xa2\xc7\x7f\x3c\x7c\xc2\x20\x50\x41\xda\xe7\xdf\xeb\x9e\x23\x08\x53\x84\xf8\x23\x36\x69\x28\xdd\x2a\x49\x20\x4d\x7a\x03\xd9\x7f\x4b\xc4\xc0\xfe\x4a\x85\xac\x24\x61\x4c\x10\xe1\x65\xbf\x68\xc1\x8e\x8d\x87\xeb\xb6\x97\x29\x50\xa0\x24\x31\x21\x08\x03\xc9\x84\x5e\x66\x15\x86\x5c\x5e\xda\xca\xa5\x07\xf8\x80\xdc\x73\xcf\x15\x7b\x1e\x5a\x5b\x38\x85\xb7\x2d\x8b\xdb\xaf\x3c\x59\x1c\x46\x89\xc9\xa3\xd5\x2c\x77\xc5\x61\xae\x2d\x32\x96\xc6\xeb\x6a\xf1\xfc\xba\x7c\x69\x05\x4f\x9b\x16\x43\xe5\x68\x10\xc6\x7f\xf5\x13\x11\x57\x66\x71\xf3\xf3\x7e\x77\x60\xd5\xc1\x0b\xa3\xa5\x41\xad\x09\x5d\x08\xe6\xf2\x2d\xbd\xff\xb5\x97\xa6\xc4\x30\xf0\xf6\xc5\x4a\xac\x5e\xdd\x53\x1b\x9a\x97\x24\xf5\x88\xd9\xf4\xcd\xd9\xb6\x6c\x3e\xbe\x39\x81\x33\x5d\xcc\x2f\x4b\x2d\x6a\x5d\xb6\x58\xce\x76\x59\x4b\x92\xfa\x81\x63\xc3\x35\x04\xb3\x46\x6b\x77\xf8\xfc\x2c\x4c\x44\xcb\xc9\x3f\x2b\xa4\x0d\x51\xd8\xb8\xfd\xb9\x93\x71\x92\x84\x45\x02\x63\x55\xac\xae\x9b\xf3\x25\xcb\x9b\xcf\x8c\x80\x85\xac\xd8\x23\x12\xbd\xb7\x8f\x0f\xb6\x18\x49\xb8\xc7\xc1\x38\xbb\x12\xe0\xd8\xdc\x3d\x2b\xf6\x95\x7b\x45\xee\x27\x4e\x79\x6d\x76\x3a\xad\x07\xa8\x17\x49\x78\x44\x90\x48\x68\xb9\xba\x9b\xbd\x3d\x6c\x57\xcb\xdd\x66\x3b\xdb\xbe\x6d\xda\xab\x45\xdc\x96\x36\x2d\x70\xc8\x8d\x7b\xf2\x4f\x28\xf5\x03\x14\x7b\x17\xcf\x97\x84\x03\xc5\x04\xca\x7f\xbe\xfd\xa3\xaf\x91\x21\x89\xf0\xa5\xb2\xd3\xd1\x2a\xfd\xcd\xda\xe9\x20\xfd\x98\xfa\x6e\x18\xeb\xfa\x32\x35\x8a\x32\x30\x95\xde\xdf\x58\xf6\x83\xf5\x30\xad\xd7\x67\x94\x24\x52\xc6\x06\xe4\x52\x41\x69\x79\xa0\xe1\xd3\xfd\x18\x90\xd0\xf9\x90\x2f\x1a\x6b\xa4\xbb\x9f\x73\x9b\x1e\x50\x9f\x9b\xc0\xfb\xdc\xf7\x06\xb3\x6b\xb8\xc6\x20\xe1\xb8\x2e\xf7\xd9\x07\x9c\x9a\x9b\x4d\x1b\xdd\x92\x40\x4a\x42\x0b\x98\xd8\x61\x5d\x9f\x35\x67\x7a\xdf\x4f\x79\x46\x43\x5f\xe8\xac\x4f\xef\x2f\x29\x49\x4c\x9d\xe9\x7c\xb5\xd8\xfe\xef\xb0\x73\xcd\xb5\x09\x9a\x11\x32\x93\x2f\xa5\xfe\x68\xef\x49\xa9\xc2\x23\x62\x79\xb7\xe9\x45\x15\x25\xa5\x42\xa0\x6b\x88\x8c\x7b\x0b\xda\xfe\x59\x41\x60\x0a\x8a\x3e\xf4\xfb\xb5\xe0\x90\xed\xe5\x51\xf0\x7d\x13\x10\x93\x77\x46\x02\xc0\xdd\xc0\x4b\xcc\x1a\x50\xba\x7c\xdf\xf6\x4e\x89\xbf\x84\xd7\x0c\x86\x91\x7a\x42\x90\x4e\x1d\xe9\x21\xe3\x25\x2b\x33\x36\x9d\xbf\x91\xd4\x07\x4e\xbc\xd6\x9b\xd9\x08\x56\x5c\x4d\x2b\x1a\x12\x03\xa0\x6b\xc1\x85\xdf\xc0\x42\xee\x96\xce\x4c\x69\x23\x0b\x92\x86\x91\x44\xfa\x56\x4b\x18\x6b\x39\x48\x66\x85\x5c\x09\x6d\xdc\x98\x89\xdc\x72\xe3\x79\x32\xcc\xd8\x3f\x5e\xb6\xd7\x3c\x60\x53\x9f\x2d\x21\x46\x21\x74\x87\x7b\xc6\xd7\xfb\x23\x4d\x12\x8e\x79\xb1\x66\xb6\xcf\xa1\x9e\xe2\x3c\x74\x3d\xd3\xc8\xb1\xdd\x43\x3d\x25\x77\x23\x69\xd2\x2c\xd5\xff\xfa\x7f\xff\xf5\xef\xb3\xae\xbf\x8e\xe9\x49\x9a\x7a\x1e\xb7\x05\xd0\x6b\x9b\xc2\xba\xc2\x05\x4a\x9a\x72\xe9\x59\x53\xff\xbb\xae\x61\xa1\x8f\x7d\x19\xc6\xd1\x1d\x21\x45\x5d\x9a\x9d\x60\x79\x6e\x99\x7d\xc6\x24\x61\xb7\x8c\x88\xab\xdd\x9f\x32\x1a\xf3\x60\x50\xb6\xbc\xb8\xaa\x34\x91\x94\xf9\x09\x56\x32\x5a\xf0\xfc\x13\x2b\x85\xfe\xed\xb6\xe5\x28\x29\x8b\xa5\xab\xc0\x9d\x6b\x3d\x54\x92\x97\x94\x31\x2f\xec\x8b\xf0\xbc\x15\x15\x38\x79\x84\x3b\x6d\xf7\x1a\xdb\x97\xfb\x29\x1e\x1f\xcd\x92\x67\xfb\x76\x71\x72\x30\xfa\xe9\x95\x56\xf5\x82\x9d\x70\x60\x5d\x9b\x08\x13\xcf\x24\x6c\x3f\xde\x5a\xa9\xcd\x29\x94\x53\xd3\x55\x22\xfc\xa2\x57\x0e\xb3\x28\x2f\x55\x8b\x3d\x96\x54\x12\x89\xf4\x89\xf0\x53\x4b\xa7\x39\x21\xa9\x04\x85\x94\xdb\x65\x0b\x4e\x9a\xf2\x63\x24\x05\x65\x2c\x2a\xa9\x8b\x77\xb8\x18\x65\xd2\x11\x00\x5b\x7a\xc4\xe7\xd2\x32\x56\x5a\xba\x9b\x49\x93\xca\x23\xb1\xd9\x90\xa0\x3e\x74\x8c\x45\xf6\x89\x3c\x1a\x1b\x02\xfe\x0a\x59\x27\x86\x17\x7a\x44\x60\x71\xac\x25\xcd\x7a\xe9\xe5\xb0\x5d\x0f\x4a\xd1\xbd\xe9\x02\x24\xef\x50\x4c\x6e\x3e\xa3\x3b\x07\x21\x46\x8f\xe7\xaf\xb3\xa7\xe5\xa6\xbd\x5b\x44\x11\x1a\x6d\xa5\x64\xef\x58\x9e\x63\xb0\x76\x74\x6d\x9a\x10\x83\xf7\x3e\x61\x5c\x73\xa1\xb3\xe2\x31\x2b\xea\x61\x96\x46\x7a\x9e\x10\x88\xcf\x11\xb8\x2a\x6a\x80\xbf\xeb\xac\x68\x96\x49\x39\x0d\xcd\x96\x9e\x27\x03\x77\x90\xef\x72\x56\xd5\xbb\xac\x86\xe3\x2e\x2b\x50\x38\x64\x58\x20\x2d\x3d\xdf\x0f\xd0\xe5\xaa\x4e\x68\x6c\x3c\x6a\x79\xce\xdb\x0f\xed\xf9\xb1\x99\x67\x78\x20\xe1\x91\x83\x92\x70\x6d\x33\x93\xa8\x3c\x30\x53\x65\xf6\x0d\x58\x5e\x1f\xba\x50\x91\xf4\x7c\x69\xaa\xd4\x33\x47\xab\xd7\x96\x98\x5e\xcd\x01\x1f\x08\xaa\x88\x7d\x83\x3c\xd7\xbf\x78\x72\x79\xbe\x32\xb0\x4d\xd9\xec\x18\x27\xdd\x32\x66\x75\xcd\x60\x34\x6f\xa0\x8b\x8c\xf5\xab\xa8\xbc\xff\x19\x7d\xce\x20\x96\x18\xa1\x3f\x41\x79\xcc\xaa\x4a\x17\x70\x55\x92\xee\x7a\xca\x10\xf1\xea\xdb\xd5\xe2\xdb\xd3\xf3\x7c\xbd\xed\x1f\x91\x5e\x28\x00\x43\x5f\x3c\x93\xcf\xc5\x84\x68\xab\xed\x16\x45\x46\xd0\x7b\xf6\x3a\xfb\x85\xb7\x8d\x94\x51\x71\xd9\x40\x9f\x76\x18\x6d\xd4\xf1\x24\x1d\x5c\x17\x73\x8a\x1e\x85\x21\xa8\x9f\x43\xfd\x5b\x5f\x02\x52\x7a\x89\x52\x58\xb6\xc2\x73\x26\xde\xfb\xac\xd3\xa3\x59\x95\x86\xdc\x1b\x12\x84\xac\x8b\xaa\x6e\x6e\xda\x8b\x80\x48\x2f\x15\x0c\x59\x89\x41\x57\x2d\x6e\x60\xa0\xed\x29\xbd\x54\x4a\xd6\xd5\xd6\x0d\xd2\x1d\xb6\x07\x23\x0c\x0b\x08\x76\x26\x6e\xb7\xaa\x1b\x87\x26\xdf\xd4\xba\x44\x44\xa5\xc9\xe4\x4c\x6e\x39\x1e\xf3\x53\xd9\x61\x07\x3b\x39\x34\xd7\x9c\x1a\x99\xe7\xc7\xf5\xd3\x6e\x31\x7b\x5d\xee\x5e\x5e\xd7\x8b\x55\xdb\xaa\x42\x23\x7e\x30\xa0\xbb\xbc\xfd\x4d\x9a\xa1\xed\x4a\x26\xa6\xc5\xbc\x9b\x5e\x40\x7c\xab\xeb\x94\xe5\xb0\x07\x39\x3f\x97\xe3\xc9\xc0\xbd\x88\x18\xee\x17\x91\x1d\x59\xfe\xe4\x32\x6a\xd2\xe3\xcc\x47\x2d\x24\xe4\xe9\xdc\xd4\xa5\xb7\x6e\x03\xd7\xa3\xa7\xe1\xb4\xcb\x02\x4d\x8f\x0e\xe7\x0a\x29\x51\x76\xc6\x05\x98\x5f\x1a\x4b\x4b\x1c\xe0\xe6\x11\x7a\xf3\xe8\xf4\x04\x35\x55\x84\xb3\x12\x0a\x76\xca\xd9\x65\xb0\x04\x24\xf3\xfc\xb4\x6f\x34\x35\x3b\xd6\x97\xe8\x8a\xe6\x1a\x86\x85\xdd\xa5\x8b\x56\xb5\x32\x13\xed\x5d\x81\x1a\xfa\x78\xcc\x47\x6d\x7f\x6e\x59\x35\xde\x56\x81\xca\x20\x75\xb4\xee\x59\xc9\xc4\xe1\x32\xda\xf1\x20\x62\xe8\x66\xb4\xf5\xa5\x46\x91\xb0\x9d\x9e\x90\x88\xd4\x5a\xff\x43\xee\x34\xe9\x81\x88\x91\x42\x0c\x27\xcd\x2e\x75\x7f\x56\x4c\xfa\x0e\xeb\x7c\x62\x9f\x85\x81\xfe\x19\xb7\x6d\xaa\x86\x4c\x7a\x0a\x58\xdc\x51\x56\x1a\x1e\xa6\xdf\xa6\x7a\xfa\x34\x16\x98\x8e\x3f\x66\x39\xb0\x3d\xa0\x3f\xd2\xb7\xfd\x7d\x9a\x72\xd6\x12\xda\x61\xc1\xd9\x6c\x5c\x1f\x37\x98\x26\x3e\x85\x04\x19\xab\x76\x35\x1b\xfb\x48\xb6\x87\x97\x44\xca\x22\x19\x87\x08\x97\x9e\x03\xe4\x7b\x2c\xc0\x88\x00\xe6\xa2\x7f\x11\x02\xef\x2e\x55\x29\xce\xe8\x23\x7b\x87\x91\x2c\x81\xf4\x7d\x3f\xe4\x2e\x4e\xfd\xf4\x34\x5f\xe0\x13\x4c\xce\x66\xdf\x0f\xa9\x6f\x38\x1c\x1b\x7f\xa2\x0f\xf4\x91\xbe\x0f\x1e\x95\x2e\xfd\x60\xf4\xd1\x0d\x2d\xdf\x60\xba\xf8\x81\x97\x72\xc3\xf0\xf1\x01\xb9\x3e\x1d\x5b\x43\xcc\xdd\x27\x08\x02\x0c\xc5\x9a\xca\x40\x5d\x5e\x36\x50\x66\x50\x39\xc1\x76\xbb\xa9\x27\x6d\x6f\x8e\xb7\xab\xf6\xb5\x2b\x0f\x70\xa6\x1c\x32\x73\x13\x34\xa5\xea\x92\xf5\x11\x1e\xd2\x0f\xa5\x40\xa4\xc6\xec\x7e\xf6\x7d\x35\xb5\xb6\xfd\x48\x84\xa9\xf5\x7f\xd1\x3e\x7c\x56\x2e\x1e\x3a\x9c\xdd\x7e\x4c\x02\xc7\x0f\x39\x3b\x9d\xf2\x4c\xb0\xa2\xae\x06\x0e\xb8\x1f\x07\x86\x5d\xdf\xc4\xb1\x10\x5e\x6f\xdf\xb9\xf3\x35\xfd\x38\xa2\xd4\x66\x31\x96\xf0\x31\xa1\x57\x27\xfd\x38\x25\x89\x65\xf1\xda\x40\x5d\x8f\x08\xb9\xa5\x1f\x8b\x80\x72\x77\xb2\x34\xc7\xbe\x63\x4d\xb6\xed\x09\x35\xaa\xfa\x1d\x54\x12\xcf\x82\x75\x65\x93\x7d\xae\x5b\x12\xc5\x6d\x45\x82\x0d\x89\xb4\x4d\x49\x6a\x41\x14\xa6\xa1\xf1\xb3\x0a\x5b\xb1\xde\x27\xda\x1c\x0e\x66\x92\x4a\xac\xb2\xc9\x2a\x04\x39\xcd\xe4\x07\x94\x15\xb3\x32\x95\xc9\x60\x96\x27\x5c\x79\x5d\x42\x60\xee\xce\xc8\x11\x16\x4a\xfa\x89\x8c\xd0\xc6\x6c\xd9\xf2\x07\xe6\xa9\x9f\x28\xce\xfa\x06\x26\x2a\x75\x4f\x07\x02\xfc\x34\x34\xf2\xf0\xce\x3d\xe8\x21\xfa\x5e\x74\x7b\xc7\x34\x34\xac\x43\x1d\x81\x87\x3b\x17\xd7\x4b\x93\x12\x1e\x3e\x20\x23\x21\xf2\xb3\xe1\x2b\xf4\xb7\x6a\x9f\x53\x1e\xc4\xbd\xdf\xbb\x83\x1b\x0c\x59\xd2\xe7\x8a\xe2\x5b\x9a\x05\x67\xdc\xc2\xe7\x8f\xee\x7b\x08\xc2\x31\x98\xb6\x78\x7d\xfe\xb1\x44\xe5\x88\xe5\xdb\x2b\x46\xfa\xdb\x1e\x09\xf7\x6c\xed\xf9\xe6\x3d\x3b\x5d\xe3\x7c\xa4\x2f\x52\xe2\x0a\xa4\x2c\x32\x66\x7e\x59\x8f\xe7\x9e\x90\x06\x2e\xe0\x6a\xce\xcc\xab\xa3\x35\x34\xf8\xd4\x12\x68\x20\x1c\x99\xfb\xc9\x3d\x05\x10\x90\x2e\xd4\xe5\x50\xfb\xc6\x97\x7c\xd1\xd5\x04\xd9\x80\xf4\x81\x1b\xb4\xff\x29\x17\xa5\xc1\x26\xb7\x8b\x17\x54\x80\x87\x12\xd2\x58\x36\x16\xf6\xb3\x00\x56\x58\xe6\x25\x3a\xfa\x0c\x2a\x8d\x3d\xe8\x84\xae\x0f\x59\x7e\xb5\x79\xba\x9e\xca\x47\xd3\xfb\xa0\xcf\x15\xcc\xf2\x4f\x76\xa9\x7e\x64\xed\xbe\x14\x10\x9a\x04\x5e\xab\xc1\x0e\x8f\x0c\x75\xbf\x46\xaa\xa0\x32\x20\x5e\x18\x99\x2d\x12\xe3\x35\xcd\xfa\xeb\xfb\x97\x01\x4d\xc0\x70\x65\x9b\x4a\xb3\x4c\x58\xa4\xc6\x60\x7f\x0a\x28\x8f\x30\xd8\xf0\xf8\x6d\xd1\x9f\x3a\x41\x10\x33\x6a\x0f\x5b\x1b\x0b\x76\xf9\x46\x19\x04\xa9\x91\xff\x2d\x31\x8c\x35\xd7\x65\xa9\x3f\xc7\xb1\x95\x20\x48\x7d\xd5\xae\x6d\x3c\xdb\xec\x1a\xec\x19\x08\xb4\xed\x2c\x3c\xa4\xc1\x7e\x3a\xcb\xd6\x13\x0e\x02\x88\x31\x56\x77\x2e\xae\x64\x53\x6c\xa6\x4c\x06\x21\xe1\xa8\xd5\x69\x5e\x0a\xf3\x7e\x37\xf0\x9e\xee\x02\xcf\x43\xcc\xd1\xdc\x20\x83\x0d\x87\x8d\x6b\x4b\x19\x4e\x4f\xbb\x65\xcd\xb2\x72\x50\x26\x27\x83\x28\x09\x92\xb4\xe7\x1c\x5f\xd9\x56\x37\x18\x81\xed\xe5\x31\x49\x92\x96\xd1\x6c\x67\x6b\xde\xbf\xf6\x43\x83\x38\x48\x55\xe0\x8a\xd3\xcc\xb2\xbc\xd3\x25\xf2\xb4\x6d\x6a\xb8\x91\xa3\x08\xe2\x80\xa7\xcd\x96\xb0\x2a\xf6\x25\xfb\x80\xb1\x6c\xdd\xdf\x26\xd8\x67\x64\x10\x87\xe6\x5c\x78\x79\x45\x46\xef\xdd\xfc\xf9\xe9\x6d\xb3\xfb\xfe\xbc\x5d\x3f\xdd\xbb\x11\x88\x13\x29\x59\x5b\x18\xd0\x9c\xa9\x6f\xa7\x13\x94\x73\xdd\xe9\x73\xc8\x20\xf1\x69\x62\x39\x49\x16\x8b\x6f\xa6\x1e\x83\x7a\x83\xd5\x1b\x24\x91\x6f\xe5\xaf\x1a\x63\x1e\xcf\xef\xc6\x9d\xaa\x56\xfd\xfb\xc4\x71\x4a\x5a\xfc\xfa\x74\xa6\x23\x48\x62\x23\x46\xfb\xa0\xf7\x56\x2b\xc8\x35\xc8\x08\x4b\x2e\x0c\x36\x70\x30\xb9\xd3\x20\x02\x68\x77\xd8\x1e\x7f\xeb\x93\x2e\xfe\x03\xa5\xb6\x33\xbe\x32\xbb\xed\x64\xb4\x2a\x48\x13\x81\x4e\xdb\xeb\x6c\xbb\xda\x3d\x3d\xef\x96\xeb\xcd\xa2\x63\x23\x92\x41\xaa\x42\x0c\x3c\x98\xc0\xff\x08\x94\x31\xbc\x15\x8b\xb9\x74\x54\xa4\x6d\xac\x68\x76\x9d\xad\xfb\x3f\xfe\xd7\xfd\x8a\xf0\xb1\x62\xf2\x41\x7f\xf4\x98\x7f\x65\xc0\xbd\x00\x97\x19\x3f\x5f\x9e\x8b\xc6\x60\x3d\xd7\x60\x15\x64\x06\xb3\x2b\xe9\x80\x83\xbd\xcc\x43\xc0\x3d\x81\xa0\x72\x3e\x26\xbe\xbb\x42\x17\xca\x80\x87\x21\x62\x90\x8f\xba\x68\x96\x0f\x32\x12\x6c\xf5\x44\xc0\x3f\x10\x24\x54\xd4\x01\x10\x2a\x7d\x2e\x05\xa2\x3a\x6b\x66\x43\xf5\xff\x1d\xfe\x8f\xdd\x41\xdc\xbf\x7c\xef\xbf\x43\xf7\x3b\x42\x12\xe3\x29\xd6\x32\xcf\xb8\x7b\x51\x29\x81\xf4\x13\x95\x6d\x3e\xf9\x59\xad\x6b\x38\x56\xd6\x09\x1d\x6e\xeb\x01\x78\x2a\xb6\x12\x13\xcb\x92\xed\x6f\x53\x1e\xb9\xfe\x7e\xaa\xac\x39\xf7\x60\xce\xb8\xe6\xe6\x03\x71\xc4\xe1\x05\x8a\x18\xf0\xeb\x12\x3e\xaa\x23\x33\x54\x65\x77\x9d\x91\x14\x12\xe2\xbb\xe2\xde\x2d\x08\xc3\x40\xed\x4d\x5a\xf7\x21\xf1\x3c\xb4\x45\x1a\x8f\xac\x6a\xaf\x8f\x08\xee\xd6\x3f\xf4\xe7\xe3\xb9\xca\xc4\x32\x63\x47\x5d\xc8\x6b\xa9\x13\x19\x92\x54\x58\x6c\xd8\xa8\xfd\x0b\xcc\xa8\x0c\x89\x94\xd4\xf0\x5b\xc9\x5e\x00\x0e\x91\x77\xee\x19\x7c\xdf\xc3\x5a\x06\xc7\xb6\x6e\x0e\x62\x53\xd9\x37\x7c\x04\x3f\x90\xe8\xc6\xe6\x7a\xdf\x0c\xc4\x6c\x0f\x23\xe1\xcd\x2b\xf7\xb5\x9d\x8a\xa1\xcf\x0d\xb4\x0d\x55\x73\x1e\xe0\xd5\xad\xc5\x30\x08\xa4\xe0\x03\x3d\x12\x84\xd4\xf6\x7c\x93\x30\x48\xa1\x97\xa3\x69\x83\x30\x8e\x15\xee\xfd\x22\xae\xc5\xbb\xfa\xbf\x1d\x52\x8a\x43\xbf\x73\xe8\xd8\x4d\x2f\x34\x35\xfc\x4a\x61\xaa\x6c\x1c\xa3\xc6\x02\xc8\xd2\x49\x51\xdb\xf4\xec\x70\x29\x84\x91\x97\x3a\xe6\x48\xcb\xdb\xfa\xaa\xf5\xb0\x86\x59\x86\x91\xef\x19\x79\xeb\x5a\x97\x30\x3b\xd7\x07\x28\x9a\x57\x68\xa5\xe4\x5c\xb7\x24\x71\x6c\x51\x16\x2a\xf3\x92\x89\xfa\x5c\xc2\xf4\x93\xc6\x96\x9e\x02\x2b\x6f\x97\x4f\x9b\x7f\xea\x62\xe4\x09\x84\x31\x33\x79\xf9\x73\x51\x42\x73\xad\xe3\xa1\x93\x61\x2c\x00\x03\xf0\x50\x1f\xee\x74\xf9\x98\xe5\x50\xd5\x2d\xeb\x96\x0c\x13\x16\xcb\x16\x05\x55\xd7\x58\x12\x3f\x56\x5f\x95\x61\xaa\x94\x34\x9b\xf8\x4f\x33\x67\x8c\xa7\x67\x5b\x19\x35\x3a\x39\xa7\x52\x1f\x75\x0f\x64\x27\x43\x96\x28\xcf\x3a\x30\xab\xc6\x03\x9f\x92\xe0\xb4\x5d\x79\x4c\xf1\x50\x3f\xb0\x6a\xae\xf5\xb5\x03\x10\xf2\x24\x8d\xa0\x35\x8d\x1f\x7b\xf5\x63\x13\x8b\x81\x2b\xd1\xf2\x00\x41\xf9\x91\x09\x14\x95\x9d\x5f\x9a\x13\xe0\xb7\x09\x00\x8e\x0c\x05\x8d\x92\x66\x83\xd1\x4a\x89\x03\xcb\x8a\xb7\x53\xae\x99\xfc\xe2\x27\x44\x10\x61\x30\xe5\x47\x07\x12\x09\x45\x44\x31\x41\x7a\x72\xc5\x0b\xbd\x78\x4e\x28\x64\x0a\x71\x4b\x20\xbb\x7d\x76\x17\x49\x2f\x89\xbc\xae\x8e\x0c\x23\x25\xc3\xb1\x91\x91\x8f\xe0\xca\x63\x56\x18\xa4\x43\x8f\xd7\x44\x86\x92\x71\x74\x7b\x59\x55\x41\x59\xff\xa9\xcf\x8d\x4f\xec\x90\x03\x93\xbb\x63\x73\x09\xfa\x2a\xff\x60\x35\x2b\x7b\xa7\x50\x08\x9e\xc0\x72\x2b\x26\xa5\xd3\x85\x9e\xfe\x5c\x10\x44\xc2\x0a\x7a\x18\x0d\x39\xfb\x77\xe5\x07\x26\x52\x73\x3e\x7e\x63\xa5\x5c\xb0\x93\x83\xff\x06\x6d\x17\xee\xea\x11\x40\x1a\x86\x17\xab\xfb\xd8\x9f\xf4\x11\x09\x03\x4c\x33\x3e\x6a\x21\x58\xef\x11\x23\x12\xc6\x5e\xea\x32\x4a\xed\x0e\xd1\x0f\x91\x46\x24\x12\x68\x8e\x4a\xf8\x18\xd2\x3f\xca\x88\x86\x2a\x68\x69\x63\x74\x85\x97\xb5\xc6\x7a\xe4\x51\x4e\xd1\x2c\x65\xfa\x91\xf5\x6d\x95\xc8\xf3\x24\xb1\x24\xaa\x06\x8a\x70\x2d\x4e\x3b\x78\x7c\x8f\x4b\x66\x83\x2c\xe8\x73\xdb\x00\x41\x1f\x69\x10\x79\x8a\xe2\x57\x40\x7e\x39\x5d\x4e\x5b\x38\x91\x4f\x19\x46\x3c\xe6\x0f\xcf\xbb\x97\xd5\xeb\xee\xc7\x6a\xed\x1e\xca\x67\x41\xd4\x62\x60\xde\xaa\xb6\x0c\xdb\x36\x07\x0c\x02\xde\xb3\x93\x31\xf5\x30\x3a\x58\xa3\x40\x99\x4a\xae\xc7\xf5\xd3\x7c\xb5\xdd\x29\x5d\x3e\xbf\xce\x16\x0f\xeb\x7f\xba\x98\x6d\x14\x7a\x02\x09\x3b\x10\x68\x5b\x38\xcd\xae\xb6\x35\xb4\x1c\xf7\x52\xce\x1c\xc9\x93\x5c\x63\xf5\xe9\x80\x93\xcf\x75\x97\xb1\x89\x5e\x37\xfe\xb9\x61\xe2\x69\xe9\x74\x4e\xe7\x6b\xbe\xf1\xe1\xd5\x91\x34\xb5\x27\xd9\xf1\x94\xef\x1a\x3b\x2d\x58\x66\x58\x9c\x34\x2d\x14\x25\xa3\x08\x0c\x4d\x11\xd4\x87\x6e\x4d\xd8\xb6\x38\x96\x38\xc3\xfe\xd5\x4c\xae\xc1\x76\x1a\x25\x11\xa1\xb4\x75\xad\xc6\xa5\x48\xae\x13\x70\xa3\x4d\x8f\xf4\xc0\x37\x16\x4a\x94\x46\x81\x93\xea\x9b\x43\x55\xcf\x8a\x3d\xe4\xc3\x69\x90\x0a\x86\x53\x05\x7e\x9e\x1e\xf5\xd7\x05\x72\x32\x62\x24\x44\xd0\xa6\x30\xac\xa7\x95\x29\xbf\x77\xaf\x84\x0e\xdf\x7f\xfd\xbf\xff\xfa\xa6\x65\x0e\xe5\x63\x3f\xb4\x1b\x31\x50\x88\xa7\x98\x03\xab\xad\xf8\x67\x2b\xc7\xdb\xdd\x81\x7b\x22\xb5\xeb\xe3\x21\xab\xfe\x42\x52\x7e\xf4\x6c\x3c\x34\xf5\xfc\x46\x39\xda\xb1\x4a\xb8\xc6\xd4\x70\xed\x1a\x94\x77\xcd\x44\x6d\x2d\x8a\xc1\xb2\x11\x49\x1c\xd9\x5a\x19\x57\xf1\x5e\x40\x5e\x0d\x56\xb7\x90\x34\x00\xc3\x0b\xf0\xa0\x8b\xfd\xea\x27\x94\x22\xab\x3a\xef\xaa\x9f\x81\x4a\xfe\xe7\xc6\xb3\xca\x94\xe3\x71\xd3\x7c\xf7\x66\x6e\x3c\x7f\x1f\xe6\x50\x22\xa9\x8c\x5c\x54\xb3\xcd\x98\xe0\xdc\xfa\xd6\x24\x03\x1a\x86\xe0\x8e\x73\x13\x27\x69\xc6\x76\xf1\x3c\x9a\x30\xc0\x0d\xef\x4b\x73\x28\x65\xc5\x3e\x87\xcd\x99\xa3\x3e\xd9\xe5\x2b\xb4\xb8\x8c\x40\x99\x10\x99\xad\x25\xd8\x5e\x4e\xd3\x32\x6a\x32\x52\x09\x51\xed\x2f\xec\x0b\x56\x77\x6c\xd3\x32\x26\x09\x25\xac\x95\x0d\xcf\x8a\x65\xc9\x3e\xaf\x0f\x9b\x98\x28\x03\x8c\xff\xc7\x39\x13\xef\xa6\x20\xc4\xb6\xd0\x80\xd0\x01\x09\xd4\x63\xe3\x6c\x3c\x9f\x6b\xa1\x8f\xd0\x38\x4b\x26\xba\x28\x7f\x1b\xdc\x8f\xc6\x51\x04\x2d\x3d\xfa\x06\xc9\x18\xe5\x38\x7a\x16\xd3\x18\xd0\x27\xd9\x39\x98\xd8\x3f\xce\x70\xb6\xa9\x2b\xd7\x85\x51\x24\x7e\x42\xf5\xd4\xb7\x97\x97\x87\x3f\x77\xcf\x77\xa6\x2e\xb5\xed\x22\xcc\x21\xde\xb2\x0a\x22\x1e\x64\x5a\x8b\xab\x3f\xef\x62\xcf\xf3\x04\x6d\xab\x7c\x8d\x8d\x83\xe9\xe9\xe1\xd8\x78\xbe\xc2\xc4\xda\xe3\xe2\x90\xb9\x58\x57\xec\x49\x81\x0c\x20\x08\x0c\x77\xa1\xab\x2e\xd0\xd9\x5d\xed\x53\x09\x5d\x59\xf4\x4b\x63\x2d\xb9\x28\x37\xcf\x6f\xaa\x94\xb8\x8b\x3d\x00\x66\x9d\x02\xb3\x5b\x79\xc4\xd9\x22\x71\x40\x29\x7a\xc1\x06\xc0\xff\x04\x65\x9d\xb1\xe9\xc9\x14\x07\x3e\x41\x12\x85\xd7\xd5\x62\xb5\xfe\xbe\x7a\x75\x6f\x11\x28\xc3\x64\xdd\x7e\xdc\x45\x9b\xcc\x1f\x07\x10\xe3\x30\x0c\xa4\xc5\xa5\x1b\x0c\xa0\x59\x20\x2b\x0b\x81\x3e\x77\x3c\x24\x32\x8e\x7c\x0f\xf3\x81\x0a\xb3\xee\x8e\xfa\xd4\x68\x05\x8c\x6e\x1b\xf9\xa9\x82\xff\x75\xfd\xe7\xe0\x3b\x46\x81\x87\x75\x1b\x4b\xc8\x4f\x87\xac\x7f\x82\xc7\x51\x10\x23\x84\xeb\xf9\x34\x28\x92\x1c\x4e\xc3\xd8\x4f\x90\xed\xbe\x99\x63\x46\x98\x79\xb6\x7c\x7e\xd9\xae\x96\xbb\xd9\x1f\xeb\x95\x03\x20\xc4\x89\x14\x46\x93\xa8\x39\x78\x7f\xb0\xa2\x60\xf3\xf3\x65\x90\x1e\x89\x13\xe5\x23\x58\xd9\x68\x81\x1b\x0a\xac\x1e\xcd\xa0\xa9\x0d\x9e\x8c\xa5\xc4\x69\x64\x64\x12\xac\x40\x87\x99\xea\xb3\x75\xfb\xa9\x52\x91\x7a\x6d\x9d\x6c\x9f\xfb\x67\x3a\xe4\x10\x33\x1a\x40\x3b\xb9\x4d\xca\xef\xe5\xcc\xf3\x4c\xf4\x10\x1a\x31\x0b\x15\x4a\x64\xb1\x73\xad\xfb\xb0\xab\xef\x19\x5b\x6d\xbf\xf5\x01\x4d\xed\x86\xc2\xa2\xd8\xe8\x4b\x36\xa3\x30\x3c\x5c\x63\x4e\x52\xcc\x92\xac\x8b\x0c\x81\x49\xb7\x06\x9c\x47\x09\x62\x57\x41\x66\xf5\xa0\xb2\x7e\xc2\xf0\x1e\x9b\xe0\x31\x8f\x8c\x95\xcf\x11\x02\xb6\x59\xad\x96\x9b\xac\xef\xcc\x8e\xe8\x49\x65\xcc\x99\x12\xb1\x2b\x75\x9c\x5e\x6e\xe3\x2b\x94\x44\xa6\xd2\x05\xab\x0e\xa2\xbf\x19\x8a\x28\x92\x06\x78\x95\xe7\xb3\x3c\x7f\xcc\xf2\x77\xd7\xd4\xf8\x4b\xa2\x8d\xb9\xe6\xac\x1b\x15\xa9\x48\x62\xa0\x26\x45\x75\x76\x10\xa0\x18\x08\x35\x3a\xda\x3a\x7f\xbf\x87\x02\xaa\xec\xda\xb8\x1c\x6f\x0e\xc3\x51\x04\x2f\x42\xea\x8d\xc6\x1a\x3f\x1a\x32\x9a\xc7\xac\x30\x44\xf6\xd5\x80\xa3\xf0\xc6\xee\x02\xcd\xfa\x37\x56\xdc\xdf\x35\xdf\xbc\x67\x79\x3e\x45\xed\xd0\x74\x14\xf8\x6e\xa6\x18\xf6\x91\x65\x45\x0d\x05\x73\xc5\xe1\xae\x53\xe3\x58\x36\x2f\x84\x29\x9a\x87\x96\x3a\x45\xc6\xc0\x43\x24\x8d\xc7\x0c\x7a\xd8\xfe\x55\xfa\x58\xee\x0a\x86\x10\xd9\x85\xbd\x46\xef\x28\x53\xcc\xd3\xae\x72\x38\x65\xfb\xc1\xd2\x06\x00\x83\x35\xc5\x87\x5a\xe3\x8b\x55\x9d\xc2\xc9\xdf\x46\xd3\x46\x11\xcf\x4c\x9b\x31\xfd\xc7\x7f\xd3\xe8\x7f\x46\x23\xab\x02\x42\x79\x67\x6f\x35\xd3\xb9\xb5\x69\x62\x95\xca\x38\x72\x6a\x5d\x86\xa2\x05\xc5\x24\xda\x15\xa2\x58\xe0\xdb\x6a\xff\x3a\x87\x3b\x00\x53\x31\x89\x30\xec\xe9\x0f\xa1\x98\xc4\x75\xc3\xcf\x57\x90\x6c\xd7\x43\x19\x42\xb6\x03\xab\x7e\xe8\xf2\x7d\x28\xc2\x25\x13\x62\x59\xbc\xff\x90\x4c\xf4\x07\x29\x21\xcc\x20\xf1\x8c\xb3\x50\x74\x15\x20\xd2\xd9\xd0\x55\xdb\x15\x54\x1a\xb8\x0d\xc3\xa5\x59\x47\x76\x42\x42\x89\x42\x40\x98\xe1\x88\x31\xb4\xa6\xa3\x1e\x09\x31\x4c\x9e\x07\xfd\x69\xc4\x8a\x5c\x83\x90\x68\x64\x7e\x64\x79\xce\xf6\xd0\x23\x52\x95\x09\x95\x11\x06\xee\xcc\x21\xb9\x34\xba\x10\x0f\x8d\xb9\xa4\x8b\xfd\x82\xdd\x56\x24\xfa\x72\x1d\x27\x54\xf9\xc6\x8b\x62\x65\x01\x97\x2a\xf8\xc6\xc4\x3b\x94\x9b\x13\x13\x30\x18\x25\x8f\x19\x06\x49\x04\x0c\x14\x2c\x37\xe7\xdb\x95\xde\xf0\x0d\x50\xe6\xe8\x47\x3d\x29\x98\xd3\xdb\xc4\xc2\xad\x03\xab\x0e\x0b\x5d\x96\x20\xea\xb6\x00\x57\x26\x7e\x42\x91\x30\xce\x20\x4d\x97\x50\xd5\x99\x89\xcf\xdd\x8e\xb6\x75\x61\x85\xc4\xe7\xa6\xf6\xe5\xde\x21\xdf\xfb\x07\x62\x12\x84\x66\xff\xaa\xb5\x39\x71\xdc\x9f\x81\xf2\x4e\xc6\xaf\x23\x0e\x18\xd7\x6f\x63\xb5\x3f\x8b\x9c\xc3\xcc\xf8\xe8\x13\x07\xc0\x10\x1b\x71\x34\xfc\x18\xee\xd0\x1e\x1c\x85\x49\x94\x02\x1e\x85\x3b\x0c\x4e\xfb\xbb\x4c\x68\x2b\x40\x33\x92\x2c\x96\x49\x24\x28\x96\xdf\xde\xb3\x23\x96\x5d\x66\x53\x1c\x5d\x89\xeb\x0c\x40\x0c\x0f\x53\x55\x3d\x77\xcf\x6f\x5b\x63\x6a\xf8\xb2\x8d\x4d\x34\x39\x6d\xda\x45\x13\xfb\xbe\xf1\xc4\x91\x93\x15\xae\xf1\x16\xd7\x87\x4f\x12\xa7\xcc\x78\x62\x0e\xf6\x35\xbf\xcc\x46\xa3\x93\x44\x3e\x22\xba\x76\x59\xd5\x98\xe3\x20\xcd\x07\x1a\x2e\xd8\x24\x55\x08\x5e\x7a\xdb\xac\x5e\x77\xdb\xf5\xe3\xea\xf9\xcd\x45\x4c\x93\x44\x26\x36\xab\x7d\xd9\x9d\x3a\x9b\xd9\x7c\x7f\xda\xde\x41\x85\xae\x32\xd6\x66\xa4\xd8\xbe\x19\xdd\x6a\x36\x4a\x56\x26\x29\x18\xdd\x78\xcb\x21\xfe\xc0\x0a\xd4\xb7\x74\x47\xe1\x84\x45\x95\xb0\xd4\x98\x3a\x58\x4c\xb3\x71\x73\x6c\x38\x47\x18\xf8\x88\xad\x3e\xe9\xf7\x69\x69\x57\x99\xf0\x20\xc2\x30\xc1\xe2\xf9\x71\xb5\x7d\x9b\xbf\xb9\x37\xe4\x51\x14\xc6\x1d\xf2\x77\x59\xea\xe2\x1a\xf2\x6c\x78\x47\xda\xf3\x25\x11\xbe\x90\x36\x35\xbb\x65\xc5\xfb\xe8\x69\x04\x10\x64\x22\xdd\xb3\xea\x05\xca\xed\x4f\x33\xde\xd6\x1e\x4d\xa4\x6f\x02\x57\x8b\xc5\xb7\xdd\x6a\xb9\xde\x3a\xc6\x17\x99\xc8\x50\x61\x40\xaf\x39\x85\x86\x6f\x31\x5a\xd6\xd0\x38\xed\xdd\xe2\x01\x76\x9c\x52\x60\x94\x09\x48\x1f\x0b\x9b\x77\xbb\x13\xe2\x95\x86\x8f\xa9\x42\x82\xbc\x04\xcd\xa5\xef\xed\x5e\xa0\x52\x62\xf8\x49\xb5\xce\x0d\xbb\x56\x0f\x32\x71\x63\x6f\x53\x42\x18\x5e\x07\x4c\xbc\x21\xaf\x70\xcf\x02\xea\x8e\xc1\x09\x43\x6a\x3c\xab\x53\x12\x45\x8e\xa5\x6b\x57\xeb\x5d\xcb\x45\x2e\x53\xea\x47\xbe\x03\xc8\x58\x72\xf3\x7e\xa2\x3b\xa5\xb1\x61\x9c\xc4\x00\xb9\x85\x95\x99\x0a\xd0\xc9\x73\x2c\xf5\x20\x88\xac\x83\xfd\x74\x3e\xce\x4d\xf0\xd9\x6d\x50\xa9\x1f\x19\xf0\xd3\xf6\x75\xf6\xb4\xb9\x5b\xbd\xee\x5e\x5e\x9f\xff\xf8\x73\xf7\xdd\x7d\xad\x34\x90\x29\x22\x09\xf5\x67\x51\xcd\xf2\xab\xa8\x72\xfb\x42\x51\x18\xab\x8e\x0d\xa0\x25\x8b\xa4\xc3\x69\x9e\x46\x11\xc3\x55\xb8\xb3\xc3\xb5\xd5\x96\xb5\x76\x30\x8d\xd3\xd8\x97\x4e\x7a\xc3\x14\xd6\x8d\xd7\x42\x1a\x47\xa2\x2d\x53\x67\x35\xdb\x79\xc1\x60\x43\x4e\xe3\x34\xa0\xb6\x8c\xac\xf9\xc6\x3d\x40\xc5\xf0\xab\xa6\x09\x70\x8c\xfa\x5b\x9c\x83\x93\x2d\xb6\xad\x69\x10\x21\xdb\x3b\x2b\xaa\x4f\x28\x97\x90\x67\x1f\x50\x5e\x16\x87\xc6\xe2\xea\x51\xa6\xba\x58\x48\x14\x7c\x39\x0f\x26\x31\xbb\x3d\xed\x03\x3b\xfd\x86\x9a\x71\x32\x65\xa9\xc2\x77\xd9\xac\x9f\xee\x1f\x56\xbb\xf9\xc3\xf3\xe2\xf7\xdd\x43\xeb\x8e\xa7\x8c\x2b\xdf\x46\x73\x3a\x1b\xe3\xcb\x18\x52\xca\x04\xe5\xc2\xc9\x70\xda\x12\x8f\x4c\x17\x0f\xfd\x7c\xcf\xf0\x0a\x1e\x18\xbd\xde\x1f\x23\x99\x83\x64\xfc\x1e\x57\xcc\x45\xa3\xfb\x24\x04\x63\x8b\xa7\x81\x4c\xfd\xa8\x8f\x04\x8c\xa1\x65\x95\x21\xd0\xea\xa5\xae\x52\xe1\x25\x44\x39\x02\x90\x0f\x78\x2b\xf3\xe1\x87\x97\x01\x67\x06\x4c\x8d\xd8\xde\x55\x7d\x18\xcd\x1c\xa9\x08\xd6\x8f\xa3\xcc\x3b\x46\xcf\x2c\xf4\x61\xd4\x0f\x7c\x40\xd5\xf8\xc7\x8b\xd7\x37\x5d\x52\x10\x34\xb6\x33\xef\xbe\x1c\x28\xdf\xca\x54\x79\x04\x4f\xf1\xc7\xf5\xd3\x00\x90\x9b\xaa\x94\x21\xc7\xa1\xc3\x26\xed\xce\x85\x30\x81\xbb\x1d\x1f\xa6\x10\xdc\x05\x3c\xc6\x60\x57\x0d\xec\xd8\x89\x73\x4b\x46\xa8\xc1\x01\xe1\x09\x54\x75\x8e\x25\x23\x34\x01\x9b\x43\x9e\x9f\xcb\xe2\x0e\x60\xc6\x47\xb6\x24\x23\x11\x45\x1e\x8a\xc5\x6c\xbb\x79\x99\xb5\x4f\xc7\x48\x24\x8d\x01\xe5\xb8\x41\x17\xba\x6a\xcd\x48\x46\xed\x99\xd2\x78\x2b\x9b\xcf\xac\x16\x87\xb6\x25\x6d\x39\xa6\x6d\x11\x94\x65\xa0\xb3\xe9\xbd\xd1\xcf\x53\xe6\x07\x6d\x4d\xce\x77\x5d\xc3\xef\x59\x21\x0b\xa8\xaa\x55\xb3\xa8\xda\x9b\xb2\x04\xe3\xbd\xdf\xdf\x5e\x30\x10\xbf\xda\x7e\xdb\xad\x17\xcf\xbb\xed\x7a\xf5\xea\xed\x5e\x67\xdb\xf6\xb1\x29\x8f\x31\x42\x89\x2c\x79\xe6\x87\xd7\x55\x75\x86\x1e\x4e\x9a\x51\xe5\x33\x03\x6a\x32\xd8\xc9\x5b\x12\xfa\xc3\x5d\x93\x79\x81\x44\xff\xeb\x77\xe0\x50\x9e\x8b\xfa\x5c\xec\x59\x31\x13\xcc\x79\x58\xcc\x13\x02\x64\xbb\xad\x72\x28\x11\x93\xd3\x69\xbc\x4b\x16\x04\x24\xb5\x08\x31\x4b\xb9\x3b\xd8\xe3\x58\x20\x88\x0b\x37\xb6\xd8\xd1\x36\x31\x35\xfd\x54\x21\x67\xc4\xb2\x9d\x3c\x69\x69\x34\x0e\xd6\x72\x74\xdf\x50\x28\x53\xad\xd0\xe9\x22\xcf\x3b\x5a\x4d\xc9\x22\x3f\x42\x43\x56\xe8\xe3\x89\x95\x60\xd5\x07\x26\xa2\x75\x2c\x0a\x63\x44\x4b\x59\x76\x8e\x9d\xcd\x5c\xee\x94\xfd\xff\xeb\xec\x08\x3b\x68\x23\x87\x2c\x4a\x0d\xc3\xc8\x8b\x2e\x32\x51\xdd\xa2\x7e\x1d\x85\xeb\x58\xc4\xa9\xa1\x13\x32\x31\x3a\x90\x8b\xae\xae\x96\x45\x10\x22\x51\xc5\xec\x2c\xea\x73\x65\x6a\xd0\x26\xaa\xd5\x58\x4c\x22\xf4\x1f\x9b\xf3\xf4\xc0\x4a\xb9\xcb\xaf\x48\x11\x24\x8b\x53\x8a\xde\xf7\x68\xbd\xdf\x72\x71\xec\x55\x49\xea\x63\x71\xf1\x51\x83\x1c\x24\xab\x58\xc2\x62\x24\x49\xb0\xf5\x31\x58\x17\x6c\x26\x83\x09\x19\x75\xee\x16\x4b\x84\x42\xae\x75\x83\xc1\x79\xcb\xc6\xbe\xb3\xeb\x06\x21\x52\x6a\xac\xab\x05\x2b\x9a\x6d\xb9\x9e\x21\x5e\xd5\x36\xa7\xa9\x99\xcc\x7f\xf1\x02\xb6\x37\xa3\x29\x86\x20\xb7\xf7\x8f\x75\xff\xb1\x99\x2f\x90\x2d\xd9\xc0\x66\xe7\xd0\xad\x74\x16\xfb\x98\x7d\x7b\x75\xa5\xfb\xbf\x94\x90\x60\x8c\x99\xb0\x68\x73\x98\x1c\x7a\x87\xf9\x08\x78\x35\x9c\x5c\x8c\x33\x8c\xf1\x22\x0f\xc0\x0a\x0d\xe4\x76\xd1\x72\x11\xab\x01\xdb\x09\x7a\x85\x2d\x02\xcc\x3a\x26\x4c\x70\x23\xdb\x82\x55\x63\x36\x87\xf1\xdb\x97\x3c\x79\xa3\x07\x17\xc2\x98\x19\xcd\x7a\xca\xc4\x7b\xd1\xab\x41\xb1\x3d\x24\x15\x98\x44\xfd\x9e\x55\x27\x28\x6d\x3d\xb5\x7b\x4c\x19\x24\x38\x90\x9d\x8f\x3f\x4a\xe6\x5e\x1b\x7e\x4c\x46\x12\x89\xa6\x7e\x3f\xff\x2b\x2b\x59\xc7\x7f\x26\x9b\xa3\x0d\x77\xb3\xac\x68\x6c\xa8\x0a\x1e\xd9\xcf\x5e\x59\xbe\xeb\xc4\xa9\x63\x25\xfb\x3b\x86\x6f\xc6\xcf\x2b\x0c\x45\xdc\xb9\xd0\x9f\xed\x07\x07\x92\xe0\x36\x6d\x6c\xb3\x75\x0d\xc7\xe9\x7c\x35\x03\x66\x94\xb3\xd4\x14\x14\xbe\x73\x0c\x98\xf2\x12\x69\x41\xc2\xe2\x60\x8b\x2a\x27\x4f\x72\xa6\x62\x81\x71\x47\x93\xa8\x19\x57\xb1\x30\x95\x08\xd4\x48\x16\x07\x56\xee\xe1\x79\x9a\xf3\x44\x72\x9a\xc4\x68\x0f\x20\xe1\xaf\xd3\x82\xea\x0c\x2d\xfc\x57\x38\x5c\xb6\x9c\x32\x89\xb8\x52\xac\xc4\xba\x6f\xb5\xa9\x46\x9d\x84\x8c\xad\xb1\xfd\x56\x9c\x98\x63\xe6\x96\x9c\xaa\xc8\xe5\xaf\x37\x42\xf7\x10\x23\x83\xbd\x96\x7b\xb1\x04\xe9\x0e\x4e\x43\x13\x9b\x1d\xc7\x21\x1c\xee\x81\x51\xd6\x75\xc1\x0e\x47\x85\xbe\x80\xb2\x87\xee\xbe\xf6\x80\xb8\x1f\x7b\xb1\x35\x62\x7f\x00\xaf\xb2\xfa\xca\xdc\xe1\x3e\x33\x9a\x42\x12\x98\xcc\xb3\x02\xb6\xfa\xae\x04\x90\x8d\xb7\x84\x28\x10\xdb\x2d\xf0\xa8\xdf\xa6\xb0\xbb\xfa\x1e\xd7\x1a\x30\xbf\x03\x87\xdb\xdd\x69\xba\xd4\x92\x07\x4c\xf9\x36\xcf\xf4\xc0\x90\x38\xf1\xd4\x49\x10\x48\x1e\xc8\x34\x25\xad\x16\x7b\x1b\xc3\xe3\x21\x89\xf0\x39\xef\x66\x8b\xed\xf3\xeb\x2e\x6c\xff\x1e\xfb\x98\xff\x6b\x41\xdb\x7a\x9a\xdf\xbb\xe9\x19\xc7\xd6\x91\x59\x96\xec\x13\xcf\x34\xb3\xdb\xce\x2f\x43\x62\x60\x77\x01\x0b\x10\x55\xd7\x18\xb5\x16\x0d\xfc\xc2\xb2\xeb\x6a\xc3\x89\x19\xce\x43\x16\x62\xb1\x19\x08\x61\x88\xd3\xbe\xde\x57\xdc\x55\x92\x61\xcd\xf4\x6e\x0f\xb5\x39\xf3\x5f\x58\x26\xdf\x4e\x23\xfd\x6b\xc9\x23\x4a\xd0\x48\xb5\x95\x9c\x4f\xba\x0b\xe9\xf3\x28\x16\x41\xf3\xd8\x7f\x64\xba\xd8\x2f\xb3\x87\xcc\xa9\xf5\x4e\x0f\x4b\x94\x84\x08\x55\x97\x48\xe6\xad\xcb\x76\xb7\x3c\xb0\x12\x1c\x9d\x51\x7b\x6f\x48\x90\xaf\xee\x1e\xea\x65\x56\xe5\xd9\xfb\xa0\xe6\x8d\x47\x2a\xf2\x55\x5b\xa2\x79\x84\xe2\x86\xf0\xb9\xe4\x71\x10\x21\x39\x35\xcf\x31\x52\xd1\xfe\x40\x1c\x87\x18\xaa\xc5\x64\xef\x03\xb0\xf7\x11\x8f\xba\xe4\x89\x17\xa4\xfd\x6d\xce\x11\x3c\xbd\x94\x60\x82\x37\xbf\x0d\xd8\x07\xbe\x3e\x7a\x78\x12\x24\xe8\x0d\x3f\xfd\x73\xb9\x7b\x3e\x16\x99\xd4\x79\xce\x9c\xf7\xc6\x93\x44\xf0\x76\xd6\x1b\xd0\xf4\xba\xf5\xb4\x79\xe3\x84\x03\xc6\x4a\x1e\x96\xeb\x1e\xb6\x9f\xb3\x30\x00\x57\xa9\xca\xb0\x3c\xa0\x93\x0b\x96\x5c\xa4\x1c\xda\x82\x9c\xaa\xc6\x5a\xd0\xe9\xfd\x94\xcb\x34\x0e\x4d\xe1\x68\x75\x76\xaa\xb2\x7d\x67\x9e\x4b\x16\x22\xc9\xf6\x87\xae\x61\xab\x7f\xcf\xc4\xbb\x56\xea\x09\x3e\xef\xb2\x4a\xb0\xfc\x4f\xe8\x5e\x45\x42\x8c\xa4\xad\x66\x89\xa2\x94\xc3\x2b\x2b\xde\x51\xda\x69\x53\xeb\xf2\x82\xdc\x80\x76\x9a\x52\xcf\x85\xae\xdc\xb9\xc3\xc1\x53\x46\x9d\x83\xeb\x12\x8b\x52\x86\x4f\x0a\x4a\x29\xbb\xaa\x5d\xe6\x0c\xea\xea\x4e\x97\xc3\x12\x94\xe1\x24\x50\x5e\xaa\x64\x9f\xd9\xaa\xf1\xc4\xef\x74\x79\xdf\x93\xd6\x19\x5f\x12\x06\x58\x2a\x63\x8d\x53\x9b\xcd\xba\xd3\xa5\x41\xbb\x64\xc5\xbe\x2d\x07\x32\x57\x08\xe2\xb1\xc8\x86\x02\x66\x55\x75\xa5\x48\xef\x7a\x05\x1e\xd2\x71\xf5\x33\x4e\x18\x7f\xf0\x12\xd7\x23\x12\x68\x81\x61\x70\xd4\x84\x9b\x1d\xf0\x79\x8c\xb3\x17\xd4\x4b\xc0\x94\xa2\xb5\x0c\xc6\x52\xd0\x20\x42\xe4\xea\x3f\x1f\x9c\xb8\xb9\x14\x94\xa7\xa8\xa9\x94\xb3\x6a\x04\xc4\x10\x54\x1a\xe4\x03\xc6\xbe\x7f\x5f\x3f\xf6\x2d\x47\x41\x55\x8c\x74\x0d\x0f\xac\x60\x8b\x03\x2b\x73\x80\x22\x71\x8d\x1e\xe1\x08\xcc\xb7\x52\xce\xa3\x48\xb1\xf0\x7c\x13\xc8\x14\xac\x30\x7b\xcc\x16\xca\x63\x56\x5c\x55\x44\x0b\x2f\x25\x9e\xd3\x97\x9d\x15\x72\xd3\xf2\x8f\xe1\x19\xd0\xb8\x33\x02\x4e\x37\xdc\x7d\xe1\x89\x14\x5d\x45\xe8\x4a\x14\x84\x9f\x70\x73\x8e\xd5\xa8\x3e\xb2\x75\xc5\x9f\xae\xb0\x41\x04\xb1\x9f\x5a\x9e\xc3\x1f\x0f\x93\xa5\x6e\x22\x50\x11\x56\x24\x2c\xf0\xc4\x5f\x15\x50\xee\x87\xda\x8a\x52\x84\x81\x55\x63\xe9\x91\x67\x7c\x89\x92\x13\x91\x0c\x70\x0f\xdc\xd9\xcc\x16\xee\x81\x6c\x28\xba\x3c\x7c\x8c\xd8\x97\x43\x52\xb6\xea\x59\x4d\x84\x5c\x45\x2c\x83\xc0\xb0\x53\xe4\xc0\x4a\x94\x97\x7a\x7f\xd0\xa3\x8c\xba\x48\x02\x86\xb6\xc6\xe6\xfb\x6a\xf0\x99\x93\xd8\x4c\x8f\xc6\x89\xff\xee\x64\xd9\xba\x68\x4b\xdb\x8d\x07\x86\x9b\xe0\x78\xd2\x9f\x50\x1a\x61\x89\xe1\x73\x24\x2a\x0d\xac\x89\xbd\xfa\x29\xf2\x73\x95\x69\xac\xeb\xc7\x3b\x1a\xad\x87\xeb\x69\x9c\xc6\xa6\x46\xa7\xaa\xd9\xfb\xad\xa1\x63\xbe\x07\xb1\x0b\x6a\x37\x9b\xce\xcd\xc4\xcf\x70\x72\xb1\x84\x89\xc8\x05\x90\xdc\x99\xd3\x49\x2f\x4f\x9e\x1a\xa2\x31\x30\x71\x7e\x64\x47\xc4\x3e\xc8\x5d\x75\x35\xbd\x39\x31\xbc\x18\x0f\xeb\x07\xe7\xe8\x0b\x21\x38\x6e\x5e\xcf\x3c\x2b\xdb\x7a\x62\x21\x3d\x53\xb8\x8b\xbe\x17\xb0\xe3\x10\x59\x24\x64\xc0\xac\xda\x5c\x21\x9f\x60\xcf\x9a\x5d\xef\xc7\xe1\xac\x54\xd6\x2b\x0b\xeb\xdb\x52\x42\xa6\x24\xb4\x18\x32\x2c\xee\xbf\x9e\x0e\x12\x08\xa2\x2c\x98\x91\x30\xff\x3d\x3b\x6e\x58\x0e\xfd\x32\x56\x01\xd4\x14\x66\x43\x51\xbd\x1a\xd5\xc0\xb2\x6d\x4a\x08\xfa\x8b\xc7\x4d\xdd\x2f\xb4\x11\x2a\x48\x7c\xda\x83\xd3\x18\x3e\x70\x83\xf7\x19\xc7\xf9\x7b\x46\x8a\x50\x61\x8a\x85\x1d\x59\x65\x4a\x29\xcb\xe7\xd3\x78\xb9\xa9\xd8\x90\x33\xc8\xac\x62\x79\xae\x3f\x5b\xc6\x2b\xa8\x3f\x01\x8a\xb7\xaa\x0b\x58\x48\x12\x7a\x8e\x43\x04\xc1\xc9\x4e\xb5\xcc\x35\x27\x0a\x41\x3f\x42\x67\x05\x1f\x27\x9f\x1a\x3f\x09\xc3\x83\x06\x4c\x31\x0a\x27\x2f\x9e\x9f\xb6\xaf\xb3\x85\xcb\xb7\x48\x8f\x29\xab\x9b\x88\xf4\xf8\x7d\x6d\x9b\xf9\xc5\xa4\x38\x27\x67\xab\xf4\x63\x4a\x88\x0b\x8e\x4b\x28\xbf\xb1\xea\x70\x8b\xb9\xe5\xaf\x32\x96\xc3\xb9\x29\x7d\xae\xd0\x42\x3e\x22\x75\xe7\xb6\x4f\xa0\x51\x6d\xf5\xda\x9a\xee\xbf\xe6\x11\x4b\x5f\x31\xbc\x59\x75\x60\xcd\xfc\xda\x59\xb6\xad\xf6\x93\xcb\x80\xb4\xe1\xa3\xdf\xe1\xb2\x5e\x3a\xa8\x51\x3f\xf1\x26\x03\x5f\xa0\xde\x0e\x72\x61\x6f\xf5\x69\xa9\xdb\x8f\x11\x44\x11\xd6\xa1\x88\x83\x42\x45\x75\xa7\xc1\xf7\xe3\x90\xe5\xd0\x47\x8d\xcb\x80\x2b\xde\xf1\x9c\xda\xa2\x8e\x71\xb2\xe3\x57\xfe\x97\x0e\xab\xd8\x64\x20\xe2\x24\x68\xed\xa0\x73\x3e\x8a\x6f\xc9\x30\xf0\x89\xad\x31\x30\xf1\xa7\xaf\x10\x45\x32\xb4\x04\x46\x55\x63\x80\x1c\xb3\xe2\x3b\x2b\x33\xc6\x73\xb8\x0d\xd1\x18\x8e\x78\x94\x48\x5c\xed\x06\x14\xf9\xac\xe6\x99\x94\x63\x49\x74\x29\xe3\x28\x35\xa9\x4c\xf4\x59\xc9\xaa\xf5\xbe\x9b\x16\xb4\xc8\x5f\x9e\x9f\xfb\x5b\xb8\x4c\xbc\xc4\x24\xd7\xeb\x72\xf5\xef\x33\xcb\xa7\x02\x65\x32\x09\xa4\xea\x8a\x38\xef\x35\xcb\x47\xbf\x9b\x06\x0a\x0b\xc5\xd7\xcb\xd9\xcb\xd7\x91\x47\x99\x26\x22\xb6\xd4\x91\xa7\xf3\xf8\x4c\x97\x8c\xca\xc0\xc4\x91\x04\x64\x1f\xb8\xd7\xf6\x03\x2e\x83\x4c\xde\x97\xd1\x21\x0c\x49\x05\x56\x25\xfb\x03\xaa\x9a\xb9\x37\x66\x02\x1c\x4e\xfe\x4f\xa8\xfa\xc5\x35\x92\x49\x82\x80\x85\xef\x0f\xcf\xf7\x0e\xa4\x25\xb9\x17\x60\x1e\xf0\x71\xfd\xb4\xdb\xac\xb7\xab\xdd\x7a\xd9\x36\x85\x54\xa9\xae\x02\x6a\x61\xc0\x1d\xae\x55\x86\x04\xa1\xaa\x08\x45\x1c\x89\x4d\x49\x29\x63\x23\xca\x73\xcc\x3a\x45\x2c\x29\x25\x67\xa2\x95\x09\xd9\x40\x8e\xcc\x85\xb6\x0d\xfc\x08\xa3\x04\x1c\xea\xc6\x6a\x6d\xff\x1c\x51\x8c\xa9\xed\xb2\xca\xb8\xaa\x1d\x7e\xfa\xc6\x2e\x03\x32\xf0\x23\x7b\x72\x34\x87\xec\x5d\x9f\xc7\x7c\xf8\x94\x8a\x24\x58\x45\xe8\xdc\x57\xe4\x2d\x98\x4f\x45\xf4\x81\x84\x1c\xa3\xa3\xe8\x5c\x21\x65\x2f\x22\x4c\x5d\x6b\x1c\xa3\x58\xff\xaa\x13\x46\x90\x40\xc0\xd0\x23\xbb\xbb\x33\xa7\x9f\x29\xc1\x53\xa6\xb8\x3a\xd7\xfa\xfd\x7c\x9a\xe5\xf9\x26\xbb\xfe\xc9\x20\xf2\x91\x4c\xb3\x67\x49\xfd\xa7\x1d\x18\x08\x7d\x13\x70\xba\x87\x62\x71\xc8\x4e\x15\x12\x25\x5e\x33\x7a\x4a\x08\x99\xa1\xe8\xfa\xf3\xcf\x3f\xfa\x6b\x03\x42\x20\x58\x90\x82\x4a\x48\x74\x87\xd1\x19\x3c\x89\x76\x0c\x49\x06\x5e\x6d\x8d\x4c\x67\xea\x40\x44\x00\x2d\xc4\xa3\x96\x99\xba\xf4\x7d\x21\x88\x82\x50\xb5\x01\xc1\x97\x03\xab\xc0\x6b\x9b\xc0\x88\x3e\x03\xfa\x38\x63\x34\x03\xc4\x34\x42\x88\x4c\x63\xf1\x7d\x34\x66\xc5\xac\xe4\x99\xa5\xcb\x9f\x22\x29\x83\x98\x99\x38\x6a\x6d\x98\x1c\x6d\x75\x43\x57\xaa\xd5\xde\x58\x4a\xa4\x6f\xc1\x3a\xa3\x75\x5b\x04\x3a\x3d\x6d\x80\xb1\x24\xa4\x4e\xee\xb8\xb9\x71\xa7\xda\x24\x81\x27\x12\x7a\x52\x6e\x93\xc0\x3b\xd7\x95\xf9\x88\x46\x38\xb1\x4b\x5b\x56\x31\x7c\x7e\xae\x22\x24\x8a\xcd\xaa\xbb\x73\xb1\xef\xa3\x5a\x6d\x07\x41\x62\x47\xa2\x89\xc6\xc9\x9b\x43\x6c\x41\xf9\x31\xde\x9c\x40\xf8\x0c\x13\x15\x66\x34\x74\xf1\x9f\x6c\x5d\xdc\x77\x94\x91\x20\x98\x11\xbc\x3a\xb1\x0b\x40\x8f\xa5\x5d\x02\xf8\x2a\xe0\x0e\x6c\x2e\x01\xe7\xf3\xf0\xde\x4a\xf8\x66\x04\xcf\x7c\x88\x7e\x70\xed\xd2\x10\xd5\xe4\x56\xf2\x7e\xe3\xd4\x0e\xa5\x22\x51\x6a\x90\xb8\x35\x2b\x6b\x23\x81\x36\xb1\xf7\x2a\x12\xc7\xa9\x91\x1d\x2c\x58\xfb\xe5\x14\x11\x46\xe5\x92\x49\xd9\x2f\x70\x73\xcd\xd4\xf7\x50\xd5\xf4\x98\x15\xd0\x8f\x38\x0d\x36\x5b\xe5\x05\xed\x37\x5b\xc2\xf1\x5c\x22\xb6\x14\x5a\x31\xa6\x3e\xb4\x45\x79\xb1\x87\x08\x9d\x81\x66\xff\x95\x09\xdd\xae\x29\xe5\x09\x60\xd2\x39\xac\xa3\x9f\x95\xc4\x1b\x50\xce\xe0\x81\xb8\xfd\x89\xc6\x8e\xeb\x03\x0a\xf7\xce\x57\xc8\xc4\x81\x2d\x9e\xd7\x4f\x6d\x8b\x4a\xe3\x91\x6e\x17\x9e\xf9\xf7\x59\x99\x5b\xc4\xdf\x80\xad\x52\x05\xc4\x2c\x06\xcb\x35\x6b\x23\x65\x03\xda\x07\x15\x44\xc6\x9e\x71\xd9\x7d\x93\x43\x5b\xb2\xe2\x7d\x10\x8d\x54\x01\xa3\x48\x9e\x88\xdf\xec\x15\x2b\xc8\xda\x5b\x28\x46\x2c\xf4\xd1\xc1\x97\x6e\x97\x39\x0e\x26\x91\x0a\x03\x30\x94\xe0\x63\x0d\xf9\xfe\x80\x86\xa9\x19\x91\x7f\x9f\xfb\xa5\xbc\x53\x33\x26\x6c\x8c\xd5\x66\x3b\x3b\x1f\xa1\xcc\xce\xc7\xfe\x9e\xa6\x42\x08\xb1\xfe\xf0\xa3\x17\xf5\x9b\x7c\xbc\xe4\x9a\x4a\x48\x45\x24\x30\x4a\x8b\xdf\x4a\x80\xe5\x7c\x70\xe3\x28\x09\x30\xc7\xfa\xf6\x30\x54\x7f\x18\xbe\x6a\x04\x01\x16\xcd\x9f\x8b\x17\x76\xae\x06\x98\x39\x15\x5b\x65\x09\x61\x19\xd3\x8d\xdb\xd7\x0b\xa7\xab\x38\x50\x22\x1d\x24\x24\x56\x0f\xdb\xc5\x23\xc8\xec\x7c\x1c\x7b\x87\x2a\x61\x06\x72\x09\xc7\xac\x46\x24\xea\xea\x83\xe5\x67\x56\xdf\xf8\x2c\x57\xa8\x98\xd1\x93\x27\x2a\x46\x1f\xfc\xe1\xf9\x7e\xe7\x26\x48\x63\x17\x76\x46\xaf\x4a\xa3\x18\xf9\x02\xeb\x92\xc9\x2e\x47\x42\xfd\x6e\x0b\xa4\xb6\xbc\x39\xf9\x6f\xaf\x43\xd4\x0c\xfe\xe9\x6e\xc5\x62\x0c\x23\x28\x5d\x7e\xb2\x52\x36\x27\x74\xe5\x6a\xab\x5d\x17\x21\x3b\xe6\xe2\x1f\x90\x75\x96\x82\x4a\x95\xc2\xad\xa5\x19\xbf\xf3\xe9\x79\x28\xa1\x27\x15\xa3\x0a\xe7\xdb\x4b\x86\xd4\x0a\x83\xc9\xc3\x12\xcf\xd2\x5b\x35\x9f\x00\x0d\xdb\xcd\x35\x1b\x9d\x62\x49\x10\x3a\x65\x21\xab\xf4\xb7\x2b\x74\xbd\x36\x08\x0b\xd7\x89\x01\x3a\xb0\x36\xd0\x03\xf2\xb9\xfd\xd6\xc2\x8f\x98\x4d\x4c\xcc\xaa\x0a\x8e\x3c\x1f\x45\x49\x94\x00\x43\x7a\x80\x98\xa7\xf9\xf9\x32\x1d\xa3\x53\x32\xf4\x11\x0a\x7d\x2a\x61\xbb\x1f\x78\x06\x4a\xc6\x26\x5d\xdb\x18\xe8\x65\x26\xf7\xf0\xa4\x25\x4c\x54\xfb\x2a\x69\xb1\x08\x58\x9e\x2e\x01\x8e\x36\x05\x83\xb0\xa3\xe9\x43\x45\x49\x41\x31\x56\x64\x99\x26\xe1\xf3\xbe\x87\xc0\xb9\xad\x07\x2a\x15\x50\x9a\xda\xe0\xeb\x49\x17\x18\x82\xee\xbb\x1d\x0a\x22\x8e\x2f\x64\x8e\xe3\x99\x6c\x67\x17\x88\x50\x39\x48\x2f\x8e\x85\x75\xa3\x94\xf2\x82\xd0\x39\x8d\xe7\x0f\x28\xeb\x73\x09\x3b\x50\x0a\xfa\xec\x3c\x4a\x85\x46\x8b\xf5\x85\x15\xec\xc8\x3e\xaa\xed\xb9\xc8\xaa\x8c\xb5\xcd\x10\x38\xdd\x31\xeb\x17\xbf\x9e\x7b\x46\x6b\x47\x2a\xfe\xab\xaa\x20\x52\x29\x15\x60\x01\xf7\x71\x87\xe0\xc0\xaf\xf6\x40\x20\x24\xa0\xcc\x84\x4e\xf6\x05\xeb\x73\xf5\x03\x21\x21\x43\xc7\x7c\xf5\xba\x88\xe3\x78\x09\x47\xfd\x85\xea\xea\x70\x0f\xb3\x77\xa0\x9e\x1f\xf5\x99\x73\xb6\xfa\x74\xa7\x07\x3a\x05\xa3\xa7\xa1\x81\x72\xa4\x54\x48\xbb\xce\x8e\x30\xbf\x4c\xc8\x3f\x00\xa1\x2c\x51\xc6\x60\xc7\x2c\xed\xf7\x56\xa7\xbf\x69\x32\x7c\x3d\xcd\x90\x96\xac\xb1\x7b\x1d\xbd\xa0\xeb\x20\x68\x60\x04\x26\x0a\xd9\xaa\xe6\x02\xa1\x52\x92\xe6\x4b\x15\xba\x86\x25\xe0\x80\xd4\x20\x5f\xe1\xa4\xcb\x76\x4c\x28\x48\x0c\x5f\x1a\x6f\xfe\x47\x6b\x3f\xdf\x59\x3d\x83\x1b\xef\xe5\x05\x02\xd3\x7e\x59\xb5\xd5\xa7\x4c\xd8\x68\x7a\xe8\x5a\x43\x22\x1c\xd0\x1a\x41\x65\xe7\x9b\xe2\xd6\x4d\x67\x53\xc3\x54\xc0\xe7\x7d\xa9\xcf\x27\xf7\x64\x5e\x94\xe2\xdf\xbf\x67\x65\x7d\x86\x17\xfd\x0e\x65\x57\x1f\x02\xc4\x03\x08\x0d\xd8\x56\xbc\x8f\x4e\x9f\xc9\xdd\xd8\x5e\xe6\x87\x09\xc6\x33\x57\x4f\x4b\x04\xb7\xee\x36\x33\x17\x3e\x03\x82\x1c\x4b\x6e\xa0\x33\x28\x64\x75\xd7\xec\x6c\x65\x35\xf9\xc5\x7c\x65\xb6\xd6\x7b\x5d\xec\x5f\x5c\xee\xc9\xb6\x05\x84\xbb\xef\xbe\xd3\xa5\x84\xf2\x46\x45\xdd\x8d\x49\x1c\x50\x8e\x6b\xfb\xc7\xeb\xc3\x28\x07\x09\x24\xf0\x7d\x5c\x7f\x52\xe7\xaf\xac\x9b\x24\x81\x0c\x42\xd9\xd9\xcd\x57\xa4\xbb\x40\xc2\x28\x70\x94\x15\x6d\x75\xc0\x88\xcf\x7d\x78\x41\x14\xa4\x41\x07\xca\xfe\xf6\x54\x5f\xbb\x08\x40\xa2\x30\x76\x52\x33\x12\x5e\x4a\x18\x72\x79\xfe\x05\x3e\xdd\xdd\x43\x50\x1e\xb7\x32\xf6\x37\x28\x0f\x80\xc4\x61\x68\xe4\xed\xf4\xa9\x1f\xb8\x76\xad\x09\xc1\x71\x39\x61\x06\x7d\x57\xf7\x4a\x8f\x81\x24\x3c\x41\xa6\xc4\xf9\xdb\x1f\x8d\x0d\xf8\xf8\xfc\xb4\xfa\x73\x18\x6c\x03\x92\xfa\x60\x9f\x02\x35\xa2\x6c\x98\xcd\xf1\xb8\xba\x04\x09\x90\x34\x35\x64\x79\x7b\xa8\x1f\x2f\xab\xe7\xcd\xef\x8e\x5f\x00\x08\x8b\x38\x3a\x80\x95\x2b\x76\xfc\x6d\x82\x52\x07\x08\xe3\x2c\xe9\x54\xb6\x06\x0c\xf9\x40\x78\x00\xb2\xa3\xef\x6c\xa5\x60\x46\x66\x09\x10\x1e\x73\xdc\x68\xeb\x4f\xfd\x03\xe0\xbd\x7d\x55\xce\x01\x23\x1f\x96\x48\xe8\x15\x44\x76\xea\x0b\x99\x77\x07\x16\x10\x0e\x01\x66\x50\x4c\x98\xe7\xa5\x84\xf5\xf6\x19\x61\x41\x0b\x76\xea\x09\x6c\x03\x91\x9c\xfa\xa2\x2d\xad\xca\x3a\xb5\x56\x20\x10\xfa\xb8\xab\x16\x06\xf3\x61\xcd\xe2\x0e\xb0\x01\x04\x92\x18\x83\x3a\x8b\x03\x88\xf7\x0e\xa2\xd8\x34\x28\x4c\xa3\xb6\x5c\x54\x0f\x68\x67\xb4\xcd\x4c\x62\xae\x2a\xab\x3a\x18\xb9\xf9\x2a\xc8\x9f\xd8\xde\x5f\x45\xd4\x50\x5a\x9d\xb9\x81\xac\xf5\x67\x0d\x25\x54\xf9\xd6\xc3\xd9\xf4\x27\xd5\xd7\x4b\x90\x92\xc0\x43\xfb\xb6\x75\x2e\xae\x0b\x0f\x81\xd2\xb8\xcd\xf1\xdf\x6d\xb6\x83\x92\x33\xa0\x54\xa8\xd8\x24\x35\xbf\x43\xa9\xb2\xf6\x79\x29\x05\x96\xf6\xb5\x58\x6e\x93\x82\x01\xf5\x42\x45\xc8\x58\x0c\xef\x2a\xd4\xdd\xff\x6f\x60\xaf\xf4\x83\x50\xb8\x04\x52\x0d\xe5\xc2\x78\x2d\xee\x19\xfc\x48\x46\x46\x8e\xbd\xac\x0c\x7b\x46\x47\xb1\x04\xd4\x07\x65\x98\x74\x59\x2d\x0e\x77\x03\x55\x77\xab\x0b\x62\x3b\x86\x9e\x09\x8e\xb5\x62\x0a\xc6\xab\xb8\x6d\xb7\x00\x0d\x03\x53\xa2\x81\x55\x12\x4a\xb9\x9f\x0c\x81\x27\x76\x28\x17\x50\x5a\x75\x92\x76\x2c\x23\x1a\x19\x4e\x09\x03\xe8\x9a\xf0\xbd\x80\x46\x29\x43\xf3\x05\xf1\xa2\x13\xfc\x85\x40\x13\xe2\xfb\xfd\xe3\x7b\xce\x2a\xc0\x40\xd4\x70\x4f\xa3\x09\x4d\xb1\x5e\x6c\x57\x41\xfd\xa4\x0b\xe4\xff\x93\x28\xb5\x30\xee\xa7\x30\xb2\xdb\xbc\xca\xf6\x50\xea\xf3\xfe\xb0\x1d\x21\x91\x80\x26\x89\xa9\x28\x6c\xb6\x95\xe7\x02\x6c\x8c\xba\x31\x63\x4b\xf7\xe4\x89\x32\xe7\x4e\x56\x55\xe7\x2b\xb6\x5b\xdb\x27\x25\x49\xcb\xbc\xb6\x19\x18\xd1\x40\x19\xe1\xc4\x24\x42\xcf\x85\x38\xf4\xb9\x1f\x81\x32\x1a\x62\xbc\xcc\x26\x06\x9b\x75\x69\x8b\x7c\xf5\x95\x40\xf4\xe8\x4b\xb1\xd0\x50\x65\x59\xd5\xfd\x55\x7d\xe8\x47\x9b\x80\xb2\x94\xe1\xec\x17\xac\xaa\xb7\xfa\xad\xcb\x28\xbb\x76\xa6\x78\x6a\x15\xe5\x4b\x90\x99\xa8\xef\x74\x79\x85\x2b\xed\xd9\x57\x94\x49\xce\x06\x15\xdd\x9b\x9a\xbd\xc3\x3d\xcb\x46\xb2\x52\x40\x79\xc0\xc1\xd2\x53\x99\x12\x67\x2c\x5f\xee\x9d\x07\x94\x47\x01\x09\x5b\xc5\xbf\xce\xfb\x03\xca\x81\x42\x30\x99\x55\x71\x3d\x44\x60\x04\x6e\xaa\x5a\x9f\x7a\x8c\x45\x40\x45\x1a\xe0\x0c\xda\x99\xa9\x5d\xdd\x0a\x75\x03\x15\x4c\xfa\xa6\xde\xf6\x34\x4a\xa2\x4d\xc5\xf5\x81\x4a\x6a\xea\x9a\x7e\x1c\x2e\x3f\x0e\x97\x6b\x0c\x16\x50\xe9\x93\xc0\xb7\x49\xd2\xe6\x75\x9a\xe7\x6e\xbf\x85\x0c\x38\x46\x98\xee\xd9\x91\xe7\x66\x92\xb5\x4d\x32\xb6\x12\xbf\x85\xc4\x86\xa1\xe8\x1a\x50\xf0\x8c\x88\xeb\xe3\xec\x7e\xbd\x68\x8e\x47\xb3\x26\x6e\x87\x06\x80\x42\x1a\xa1\x69\x50\xc0\x67\xcb\x97\xd5\x1c\xdd\xb6\x9c\x7a\x8a\x37\x08\xa8\xa2\x81\xa9\x6a\x62\x19\x82\xa7\x77\x3f\x20\x43\x76\xf1\x76\x67\x54\xa9\x31\x04\x5a\x91\xe3\x47\xf6\x73\x0e\x43\x8a\xfe\xd1\x24\x55\x3c\xa2\xcc\x15\x1f\xbb\x6c\x54\x4f\x8a\x1f\x3c\x42\x0c\x8c\xf3\x5f\x3a\xc3\x70\x1d\x9a\xeb\x03\x94\x92\xeb\xe8\x79\xc2\xfa\x3f\x16\xda\xf5\xc8\x7e\x0e\xa6\xb4\x47\x7c\xea\xd2\xe1\x96\x28\xbc\xcf\x7e\xe0\x3a\xc5\x81\xb0\x14\x24\x6d\xa2\xf7\x06\xd5\xdb\xf0\x65\x3c\xc2\x15\x0d\xff\x3f\x67\xef\xd6\xdd\x28\x8e\xb5\x8f\x7f\x97\xdf\x55\x5d\xcc\x85\x90\x00\xc1\xff\xce\x71\x9c\x2a\x77\xe7\x34\xb1\xab\xaa\x7b\x66\xcd\xf2\xd2\x61\xcb\x61\x82\xc1\x03\x38\x89\xe7\xd3\xff\x17\x5b\x12\x27\x93\x54\xcf\x7b\xf1\x76\xbd\x13\x09\x0c\x42\x87\x7d\x78\xf6\xf3\xf8\x2d\xac\xdd\x77\x57\x7b\x5f\x82\x02\x94\x86\xb6\xe0\xe5\x35\xd3\x50\xf6\x7f\x55\xb6\x72\x6e\xf3\x5c\xbe\x39\x15\xed\x79\x73\x8e\x52\x60\x78\x10\xee\xfa\x88\xd7\x46\x3d\x5b\x9d\xc1\x01\xb1\x01\xd0\x30\x35\x96\x96\x0b\xea\xa6\x2a\xcf\x3f\x9f\xa1\xc0\xf6\x9e\xf8\x13\x68\x08\x36\xd4\x8d\xe5\xe4\xd5\xdf\xdb\x5d\x1f\x9d\x33\xd7\x1c\x45\x8c\xba\xdd\x1c\xbf\xc5\xba\xbb\x79\xc4\xad\xd4\xca\x5b\x96\x6b\x25\x2a\x5d\xa3\xa4\xef\xf0\x89\x03\xff\xc0\x91\x89\x11\xdf\x70\x5d\xbe\x15\x16\x7c\xe0\xf2\x67\x63\x64\xcb\xe7\x07\x39\x8d\x69\x10\x84\x5e\x04\xbd\x9d\x76\x36\xcc\x37\xc8\x45\x03\x8d\x19\x67\xd6\x9d\x79\x38\x82\x8d\x87\xa3\xa0\x49\x37\x33\x69\x1c\x59\x9d\x6c\x1b\xa2\x40\x58\x11\xe8\xcf\x88\xc9\x81\x72\x1e\x25\x3d\xfd\xc8\xb6\xdc\x40\x3f\xc4\x1c\x18\xa2\x02\x2a\xc8\x4f\x3b\x17\x8e\x6f\xf7\xae\xd1\x93\x27\x32\xb6\x0b\x57\x98\xcb\x8a\xcf\x59\xd4\x81\xbf\x10\x52\x24\xc6\xc0\x9d\x02\xa1\x14\x83\x68\x3d\x50\x41\x14\x1e\x09\xbf\x9d\xea\x26\x2b\xea\xe1\xce\x47\x65\x08\x41\x3c\x22\xf8\x5c\x17\x4f\x70\xc8\xde\x27\x2f\x27\x23\x8d\x9f\x71\x2a\xab\xbe\xd0\xfa\x17\xa2\xea\x40\xa5\xa6\x52\x7b\xfe\x30\xef\xca\xfe\x95\x08\x27\x50\x15\x44\xc4\x3d\x1e\x4e\x49\xeb\x59\x3e\x18\x04\x67\x7f\x70\x49\x4a\xd1\x74\x7d\xc8\xcf\x87\xe3\xa9\xbe\x15\xb2\x5e\x96\xd5\x74\xcd\x2a\xa9\x30\x3a\xee\x15\x23\xfd\x78\x68\x11\x79\x76\xe5\xdb\xdb\x1f\x96\xb4\x92\x92\xae\xd5\x58\x19\xde\x1a\x9a\xf5\xa1\x75\xab\xa1\xba\x12\xc5\x8b\x6f\x06\x12\x61\x0d\x8a\x6a\x3d\x7a\x6b\xc5\xcf\x3a\x40\x14\x52\x86\xa3\x69\x00\x7a\x30\x2a\x50\x13\x58\x2c\x5a\x6f\x83\x22\x78\xcc\x09\x88\x8d\x5e\x93\x11\x6e\xf9\xfc\xd4\xee\x2e\x2b\xfa\x14\xcc\xba\xc0\xb4\xf7\x17\xdf\x4b\x33\xf4\x12\x17\x4f\xbf\xef\xb6\x4f\x0f\x5f\x6f\x1f\xf6\xbb\x60\x47\xfc\x0b\xb1\x80\x46\x96\x49\xe3\xb9\x7c\xdb\x76\x45\x2e\x79\x59\x67\xc5\x7e\x70\x84\xb2\x20\x35\x58\x37\xef\x0a\x37\x5d\xa0\x7a\x96\xad\x0d\x58\xa0\xc1\xd9\x01\x55\x31\x75\x67\x19\x8d\x29\x0d\x66\xa9\xd4\x83\xc9\x28\x31\xca\x19\xb5\xd6\x41\xd1\x6c\x3c\xcb\x77\xb7\x25\x31\x2a\x14\xd6\x1b\x6d\x57\x8b\xbb\x1d\x96\x7e\x79\x2e\xe2\xdd\xe3\xe2\x69\x4b\xbb\x7e\x8a\x61\x00\x3c\x17\xae\x0a\x7a\x67\x02\x94\xfb\x75\x4f\xed\xfb\x45\x2c\xc0\xfd\xf2\x2a\xfb\xcf\x69\x56\xa1\x62\x78\xb8\xb1\x88\xdb\x1c\x5f\x6d\x49\xc2\x27\x6a\x9b\xbe\x93\xa6\x78\x58\x0d\x68\x56\xae\x32\xed\xa3\x2e\xc5\xaf\x6a\xc9\xdd\x5d\xe2\x98\x63\x3c\x72\xf5\xf7\xef\xeb\xc7\xbb\xd5\xfd\x76\xf7\xb4\xfa\xb9\x78\xba\xde\xfd\x5c\xdc\xde\xae\xbc\x3f\xcb\x62\x15\x0f\xa4\x8e\xd0\x3e\x42\x48\xfb\xbc\x35\xe2\x2f\x32\x31\x96\x7e\xd8\xda\xe8\x70\x57\xf5\x46\x38\x4b\xa8\xc4\x88\x4c\x6b\x8f\x2d\x07\x8a\x7f\xc3\x04\x0f\xb0\x94\xf2\xd4\xc3\x89\xba\xa2\x72\x60\x92\x06\x5e\x49\xf5\xa9\x2c\x0f\x1b\x98\x11\xde\x01\x26\x79\xe8\x65\x7b\xef\xda\x1f\x39\x4e\xdb\xd3\x10\x45\x52\x77\xae\xc0\x7b\x48\x30\x06\x4c\x0a\x13\xfa\x5c\x51\xbb\x88\x47\xdb\x1e\x53\x71\xca\x3b\xbf\x7d\x58\x49\xd4\x3d\xa3\xa6\x1c\xc1\x26\x96\x03\xf8\xa6\xac\x76\xcb\xac\xc2\x95\xd7\xdb\x95\x4c\x47\x24\xe4\xbd\x54\xc5\xe6\x7c\x90\xe5\x08\x6b\x0e\x4c\xf3\x20\x26\x7d\xe5\xd0\xd5\xb9\x81\x39\x1b\x91\xe9\x24\x40\xd1\x55\x61\xcf\x9a\xdf\x4e\x55\x56\x6b\x9b\x07\x1e\xd3\x28\x00\x33\xa1\x88\x7d\xe9\xfe\x8e\xed\x0e\xd0\x3c\x7b\x81\x26\x60\x26\x09\x8d\xd5\x9b\x28\x4b\x33\x4e\x0f\x02\x33\x2a\xc1\xe9\x8e\xde\xb7\x27\x4f\x18\x3d\x6f\x48\xc2\x14\x0d\xc0\xcf\xbc\xb8\x7f\xb2\x31\x79\x09\x84\xc4\x38\xba\x95\x61\x78\x19\xc2\x20\x4c\x10\x3a\x92\xe1\x86\x88\x06\xe7\xe4\x64\x0c\x5b\x3b\x2b\xb5\x2a\xbf\xfe\x2a\xaa\x6c\x11\xa1\xdd\x4f\x90\x75\x09\x4b\xb2\x7c\x3b\x8b\x65\xe4\xd1\xf4\xd9\x21\xeb\xe2\x98\xe0\x00\xb1\x43\x4a\x2e\x08\x43\x0d\xe8\x47\xe0\x18\x6e\xcb\xef\xeb\x62\xa4\x07\xe8\x47\x35\x0c\x21\x09\x89\xaf\xb1\x5c\x7a\xec\x51\x6b\xe7\x44\xdd\x9e\x18\x46\x2c\xc1\x3a\x30\xcb\x1e\xb2\x6c\xbf\x69\x71\x1e\xe9\x9b\x43\x18\xf1\x84\xb9\x98\x7a\x47\xd5\x3b\x5a\x1e\x71\x38\x97\x14\x9b\x00\xe3\xdb\xfb\x68\x74\x8e\x7d\xb1\x4f\x4d\xfb\xc7\x48\x22\x1c\xd7\x5a\x3d\x83\x3e\xe5\x7d\x48\xb1\x6b\x17\x48\x15\xe4\x09\xa4\x4f\x97\xac\x92\x10\xc6\xb1\x96\x43\x0f\xf8\x11\x0a\x91\x37\xe7\xd1\x32\x0a\x63\xa0\xce\x63\x6d\x1e\xcb\xaa\x31\x65\x9e\x95\xd3\xba\x0e\xaf\x08\xea\xc3\x51\x21\x4f\x05\x56\xd3\x49\xa1\xbb\x45\xe1\x9b\x04\xb5\x99\x0a\x9c\x7a\xd6\xa4\x1f\xaf\xeb\x30\xe1\x5a\x68\x5f\xf1\xf8\xab\x08\xcd\xbc\x6d\x10\xa6\x41\x1c\x39\x3e\xb1\x45\xa1\x30\xbe\xe9\x9f\x20\x15\x1c\x0b\x83\x57\x3f\x3c\x13\x33\x84\x82\x5b\x45\x9f\x76\xb3\xe8\xc2\x7d\x37\x55\x79\x58\xbd\xcf\x43\xd8\xfc\x75\x89\x42\x1a\x6b\xb4\xd1\x6f\xcb\x72\x5e\xb7\x0c\x42\x21\x34\xa2\x6c\xf0\x28\xf5\x91\x1e\xd4\x13\xef\x06\x5a\x48\x8e\x33\xeb\xf1\xd4\xec\xae\x57\xd7\xeb\xdd\x3e\x33\x93\x28\x73\x28\x54\x8c\x4e\xf6\x66\xbb\xb8\xbf\x6e\x37\xf9\xab\xef\x7f\xfa\x24\x36\x84\x32\x90\x36\x0a\xde\x9e\x9a\x9e\xa9\xd8\xb7\x45\x0a\x77\x17\x57\x2f\x78\xed\x48\x76\xeb\x0f\x9e\x57\xf2\xd8\x0c\x34\xcf\x1e\xb3\x4a\x14\xcf\xe2\x33\x5b\x3b\x99\xf9\x5f\xce\x97\x0a\x15\xb5\x1c\xb1\xbe\x7a\x61\xbd\x7c\x50\xd3\xdd\x3c\x54\x11\x84\x2e\xb1\xb6\x69\x44\x75\xef\x9c\xc9\x0f\x1e\x50\x29\x8e\xd4\x0c\x68\x4d\xad\x44\x95\x9f\x3b\x4e\x2e\xd7\x43\x13\x63\xec\x19\x53\x10\x2c\xa1\xca\x8a\xfd\xd0\xce\x0f\x75\x20\x4c\xec\x69\xd3\x3f\x92\xc0\xf1\x7d\x43\x8a\xc3\x77\x6c\xde\xb7\x22\xeb\x26\xb3\x8e\x88\xf3\x5f\xec\x0a\x7a\x68\x37\xb8\x39\x34\xd3\x07\xb7\x05\x6e\xb4\x0d\x6a\xde\xd9\x08\xb1\xff\xbb\x14\xbe\x60\xed\x21\xd7\xab\x70\x3e\x1e\x18\x9a\xc0\x92\xec\x1f\x91\x30\x0b\x3f\xe8\x0d\xc0\x30\x56\x1b\x9a\x20\xe4\xf6\x25\x45\xa5\x9e\x91\x70\xd8\xb7\x48\x8d\x41\x93\x5b\x51\x37\x28\x84\x21\xfa\x28\x6a\x44\x02\xc5\x23\xcb\x98\xee\xe0\x0f\xce\xdb\x1a\xa0\x38\x26\xdb\x96\xbf\x52\xc7\x31\xf1\xd0\xe8\x76\x8f\xec\x43\xa5\x1d\x16\x72\x2e\x19\x13\x05\x84\x41\x62\x43\xf6\xad\xb1\x74\x53\x9e\xaa\xe6\x79\xf8\xc1\xa2\x20\xb6\x04\x92\xed\x75\x4b\xc8\x3e\x04\x5d\xfb\xee\x2a\xb4\x2e\x57\xcf\xfe\x04\x51\xa0\x25\x72\xb8\xfc\x80\x5a\x60\x30\x87\x3a\x36\x44\xd7\x4e\x09\x8d\xbd\x0a\xa9\x55\xd7\xeb\x5a\x1c\x47\xa4\x67\xfe\x7f\xfa\xc3\xd5\xc6\x0c\x86\x3b\x62\x24\x22\x6e\xb7\x74\x75\xbf\x73\xfc\x09\x10\x31\xcd\xb1\x9e\x67\xbd\x7c\xb0\x25\xef\xdc\xdf\x21\x24\xa9\x91\x8e\x80\xd6\x67\x66\xea\xf1\x01\x13\x45\x2a\x49\x1c\x5a\x05\xfd\xec\xe1\xf9\x1d\x45\x26\xb0\x98\xce\xaa\xf9\x59\x56\x2f\x56\xea\x60\x31\x38\x07\x66\xb1\x35\x10\xc5\x10\xc7\x8e\xf7\xd9\x62\x24\xa6\x51\x8a\x41\xdf\x34\xa4\x58\x16\x62\xf3\xf9\x8f\x56\x30\x6d\xa8\x1e\xed\x4f\x82\x28\x95\x3a\xf2\x34\xb2\x5d\xa8\x69\x76\x2f\x8d\x44\x10\xe2\xcc\xb9\x87\xb7\xeb\x6c\x9f\x35\x22\xb7\xa5\x2b\xb3\x73\x3f\x12\x01\x17\x7d\x74\x68\xf9\x2c\xaa\xac\x99\x52\x55\xfa\xae\xa1\xc0\xf2\xce\x83\x78\xbf\x6a\x0d\xd9\x05\x56\xd9\x0d\xd2\x2c\x91\x48\x25\x82\xb8\x4b\x74\xf8\xfb\x72\xb0\x4b\xb2\x97\x09\x7a\xa5\xbd\x54\x07\x9d\xb2\xbc\x85\x98\xe8\x41\x42\xaa\xee\x7e\x42\x8b\x8e\xdd\x6d\x5d\xb4\x93\xc8\x96\x80\x0e\x4d\x95\x48\xd2\x28\x74\x8b\x67\x71\x3c\x7e\x99\x86\xf4\xc7\xaf\x25\x63\x6d\x05\xf8\x4f\xf2\x90\x35\x9b\x06\xc4\xcb\x2c\x24\x0b\x22\x15\x24\xe8\xc7\x5b\xb6\xa1\xdf\xb3\xa6\x39\x5f\x2a\x3b\x4d\x78\x87\x20\x52\x34\x94\x2e\x6d\x89\x29\x97\x55\x0e\xc3\x31\x53\x8c\x63\x1d\x93\x1a\xb2\xef\x5d\x9d\xd7\x45\x03\x63\x58\x43\xdb\xd5\x04\x0e\xf4\xfc\x23\x3b\x5e\x55\xe5\x0b\x54\x9d\xc4\x19\x44\x8a\x47\x42\xf8\x30\x83\xde\xc3\xd5\xf9\x77\x4c\x90\x4f\x64\x5f\x00\xa7\xbd\xb6\xc8\xd8\xe6\x39\x26\x76\x9a\xfa\xbb\x68\xaa\xac\x4c\xa7\x17\x49\xc2\x57\xfc\x0c\x19\x0f\x91\x16\x1c\xe5\x0f\x77\x7b\x28\xb0\x3a\x07\xf1\x16\x1f\x0c\x7b\x8f\xb7\x21\x7e\x76\x6b\xa9\x43\x1b\x85\x83\xb7\xf6\x77\x77\x76\x97\x1c\x04\xbf\x22\x88\x6d\x52\xc4\x66\xf0\xec\x42\x16\x17\x72\x80\x10\x81\xa2\x60\x91\xf4\x8d\x7a\xee\x0a\x08\x20\x32\x11\xa1\xe0\x45\xfc\x37\xed\xa7\xc6\x95\x36\xbe\x3a\x26\x81\xcd\xf3\xad\x17\xd7\x58\x4a\xe6\xa7\x5d\x4c\x28\x45\x62\xba\xba\x11\xe8\x81\x61\xe9\x5b\x6f\xcf\xc6\x01\x91\xa1\x4f\x52\x8e\x02\x4e\x71\x60\x94\x95\xf1\xa8\xd1\x6c\x2f\xc4\xa9\xa9\xc7\x46\x45\x4c\x83\x48\xbb\x7d\x08\x7d\xe7\x6f\x90\xed\x9f\x9b\x01\xaf\x38\xc4\x94\xaa\x50\xfa\x8a\x97\x75\xf1\xfe\x73\x4a\x90\xef\xfb\x19\xcd\x1d\x6a\x70\xe9\x63\x73\x83\x7d\x3b\x66\x29\xa3\x69\x27\x3b\xf0\x79\xe4\x34\x66\x32\xc2\x35\xb9\xb8\xfe\xb1\xde\x3c\x3c\xfd\xb9\xbb\x7a\x68\x8d\x25\xac\xb2\xd8\xf8\x87\x0f\x89\xa5\xec\x3b\x62\x30\x71\x55\xe8\xae\x00\xaf\x3b\xdf\x4e\x63\x2d\xed\xb1\xd1\x7b\xc1\xd8\x32\x5a\x7b\xfe\x47\x58\x8a\x79\xb7\xf6\x38\x11\x39\x8c\x8f\x94\x38\x22\xd6\xbf\xee\x63\xb0\xdb\xcc\xb3\xd5\xb9\x2e\x71\x64\xc5\xaa\xee\xca\x72\x7f\x1a\x06\xe7\xe2\x58\xa7\x61\xe2\x99\xd9\x7d\xcc\x60\x3c\xa8\x3c\x0a\xa0\xb5\x6a\x57\x87\x2c\xdf\xa2\x32\x77\xd6\x5d\xce\x39\x41\x13\xe3\x1f\x47\xa8\x1e\xed\x91\xfb\xd7\xf0\x08\x31\x97\x21\x0a\x6f\xc2\x6b\x99\xbf\xc2\xe2\x3d\x9b\x2f\xe4\x84\x38\x51\xb6\x8c\x66\xa1\xf5\x53\xa9\x5e\x60\x64\x3d\x38\x1f\xa8\x43\x84\xfe\x8f\xff\x74\x97\xfb\xdf\x32\x32\x71\xcc\x7c\x3a\x6b\xb0\x8c\xf7\xb1\x2a\x5f\xb3\xe1\x5a\x99\x3c\x5e\x2a\x12\x2f\xaa\xf6\x0d\xb2\x6a\xb8\x11\xc7\xa9\x52\x58\xa9\xfb\xf5\x6e\xf3\xd7\xf4\x48\x21\x16\x41\x2a\x4c\xc7\xd2\xbb\x29\x73\x6d\x09\xa6\xba\x66\xc5\xfa\xad\xbd\x3d\x8c\xf5\x1c\x90\x24\x16\x34\x44\xe7\xf1\xdb\xc3\x66\xbb\x5b\x7a\xb6\x35\x88\x05\x27\x58\xb6\x64\xb1\x0c\x77\xd0\x08\xdd\xee\x32\xe3\x57\x92\x84\xa7\x03\x86\x6a\x4f\xcb\x34\x31\xdb\xe7\xb1\x4d\xee\x16\x8a\x48\x5f\x28\xe9\xa7\xd5\x55\x39\x91\xe8\x84\x58\x09\x81\x9b\xbf\x3c\x9d\xaf\xce\x57\xe5\xe7\xd4\xe8\x10\xeb\x44\x20\x86\xb1\xdd\x27\xad\x61\x77\x5b\x36\x0f\x66\x99\x8b\x53\x0d\xdd\x5e\xa5\x95\x40\x66\xfc\x9d\x70\xea\xd9\x9f\xa7\x24\x63\x08\x02\x6d\xc3\x20\xae\x94\x13\x3f\x55\xcf\xe8\x09\x31\x50\x6a\x02\x8f\x54\x18\xe6\xc1\x62\x13\x68\x74\x90\x8f\xe2\x2c\x64\x0e\x37\x59\x51\xc0\xf9\xc9\xd6\x87\xe8\xae\x53\x24\x91\xca\x6d\xa7\x10\xe1\x7b\xca\x1b\xab\xca\xbe\xae\x7f\x66\x1f\xcc\x2a\x4e\xa8\xc4\x1a\xa3\xac\xde\x9c\x64\xad\xaa\xec\x88\x09\x04\x8b\x9a\x9b\x23\x07\x00\x4e\x62\x92\x5a\xd5\x9d\xfd\xc0\xca\xfe\xac\x08\x6b\xb2\x23\x7d\xf0\x24\x09\xf0\x0e\xa6\xb1\x2c\x8b\x3a\xd3\x50\x81\xb6\x22\x0d\xc3\xc1\xe0\x81\x8e\x9c\x62\x53\xd6\x3c\x56\xa5\x02\xd0\xf3\x25\xec\xc0\x69\x60\xbd\x34\x03\x8d\x7a\xc6\x28\x76\x7d\x53\x56\x18\x8a\xbe\x3a\x5f\xd6\x60\x02\x0f\x93\x08\x3d\x89\xe5\xd7\xe5\xdd\x97\xee\x6f\x09\x73\xe0\xa3\x76\x5b\xca\x0e\x65\x71\x9e\x5c\x16\xa9\xd0\x58\xb2\xec\x37\x51\x69\x47\x90\xf4\x43\xb4\x83\xe3\x7b\x98\x14\xe5\x4c\x0e\xa5\x7a\xd9\x61\xa8\xc0\x32\x2b\x4c\xcb\x45\xe7\xdf\x23\x0e\x2c\x42\x6a\xb3\xfa\xa3\xaf\x1d\x01\x1e\xb3\xc8\xd6\x08\xa8\x72\x55\xe8\xef\x85\xa9\xca\xff\xc2\x28\x20\xc2\x63\x57\xb6\xb4\x5e\x3e\x8c\x20\x07\x9c\x47\x12\x99\x8f\x11\x70\x7d\x8d\x35\x23\x03\x27\x98\x73\x11\xa3\x21\xb0\x2f\x73\x3d\x06\x87\x70\xae\x28\x8e\x47\xa7\xcc\x31\xbb\x8a\x38\xd7\x11\x6e\xd9\x87\x9d\x7a\xce\xc0\x56\xde\xe2\x61\x71\xd5\x6d\x33\x3c\x49\x52\x2c\xad\x59\xac\xbf\x0d\x4f\x0b\x9e\x24\x12\x49\x16\xd6\xb7\x37\x6e\x57\x58\x8a\x42\x67\x3d\x09\x05\xf0\x34\x35\xa1\x18\x49\x89\xfe\x92\x87\x08\xb8\x08\x23\x29\xec\xa7\xfc\x07\x34\xcf\x3e\x0e\x05\x1f\xcd\x1f\x91\x30\x14\x21\x79\x3e\xeb\xaa\x1c\xb3\x62\x02\x17\x9a\x19\x17\xf0\xfd\x7e\xdc\x57\x42\x83\x90\x59\x9e\x35\xe7\xcb\x22\x63\xe0\x92\x30\xcc\x80\xba\xea\xe5\x11\x2e\xea\x83\x15\x21\x83\x18\xab\xa3\xaa\x53\xfd\xbc\xcd\x0e\xd0\x31\xd2\x59\x80\x48\x3d\xe2\x2c\x00\x2e\x59\x42\xad\xf6\x81\x0d\x56\xdd\x94\xd5\x6a\xfb\xed\xcb\xe4\x9e\xb1\x15\xe6\xb2\xcc\x1e\x59\x73\xd2\xdd\x80\xca\xd8\x2a\x1d\x17\x2e\x2f\xb5\x84\x3c\xc7\xa2\x53\x7d\x35\xcf\x9f\x0b\x5c\x11\x5b\x16\x26\x5a\xcf\x72\x91\xe7\xbd\x6b\xf5\xc1\x05\x9a\x10\x9c\x8d\xaf\xd6\x83\xcf\xc6\xb9\x4c\xae\x89\x25\x79\x15\x5a\xe3\x99\xf8\x8b\x01\x02\xca\x90\xfc\xa8\x6c\x77\x87\xd6\x5a\xa8\x1f\x47\x62\x31\x17\x5b\x17\x68\xe2\x05\x16\x6f\x45\xdd\x5c\x65\xfa\xa6\x6c\x67\xd6\xab\xa8\x87\x3a\x12\xc0\x4d\xa4\x71\x5b\x6c\xcd\x44\xeb\xf8\xf8\x14\x0c\x37\x22\x4a\x79\x97\x4d\xed\x79\x25\x83\x79\xe6\x5a\xe0\x46\x05\xb8\x5d\xed\x2a\x51\xe8\x19\x55\x0a\xdf\xcd\x08\x3c\x1e\xae\xb2\xe6\xcd\x57\xdf\x40\x12\x30\x5b\x27\x72\x10\x2f\x70\x95\xe9\x2f\x63\x1b\xaf\xeb\x64\xa9\xf4\xac\x12\xbc\x65\xcd\x77\xf4\x51\x03\x1b\x2a\x09\xa2\x04\xcd\xff\x4f\xaa\x27\xa6\x37\xe6\x1a\x39\x80\x34\x26\x80\x9d\x24\xde\xc8\x59\x4b\x82\x84\x79\x12\x9d\xc7\xaa\x34\x59\x3e\xa4\x5a\xf0\xf1\xf7\x7f\xf9\xce\x22\x42\xf3\xda\x08\xd5\x6c\x41\x1c\x1e\xcc\x97\xc9\x0f\x9a\x28\x70\x1c\xb8\x4e\x2f\x83\x7e\x3e\x07\x12\x4a\x2c\x46\x28\x43\x99\x94\xee\xbb\x8f\xfb\x18\xeb\xd4\x34\x20\x0e\x43\x91\x0f\x48\x18\x68\x4c\x9d\x7e\x13\xf5\xf3\x80\x40\x0d\x92\x90\x5a\xba\x2b\xdd\xe9\x3b\x41\x12\x11\x2d\xd2\x11\x1d\x1c\xaa\xb8\x7d\x90\xbc\x4d\x38\xb3\x20\x9e\xc5\x8f\xaf\x96\xce\x71\xb3\xa3\xe1\xb7\x2f\x5d\xab\xc1\x02\x30\x2f\x4d\x78\xb7\xf8\x63\xf7\xb4\x58\x6f\x56\x5d\x07\x63\x5d\x11\x8c\xd5\x6e\x1a\xd1\x78\x50\x7f\xdb\x64\xc1\xd1\x7b\x51\xe3\xf2\x41\xcb\x6d\xe7\x5b\x13\x1a\x06\x74\x50\xa2\x76\x9d\xbd\xd6\x8f\x55\xa9\x4f\xaa\x7f\xef\x84\x2a\xb4\x34\x30\x7b\xb3\x39\x82\xca\xa0\x9e\x04\xbd\x46\x0b\x37\x49\x63\x89\x7e\xdd\xf6\xd1\xc7\x6f\x93\x54\x50\xb4\x03\x0e\xe2\xfd\x1b\xf2\x56\x0f\x4d\xd2\x24\x15\x36\x71\xba\x87\x66\x55\xab\xaa\x7c\xbb\xbe\xb0\xff\x12\x11\x27\xb8\x27\xae\x2d\x51\xc8\x66\xc4\x5b\x0a\x89\xe0\x41\x42\xfa\x10\x6b\x6b\x81\x75\x19\xd8\xc9\x8d\x92\x38\xed\xeb\x9f\xad\xf5\xf2\x58\x59\xa9\x6a\xbd\xd2\xd9\x88\x24\xe2\x03\xea\xca\x0b\xc7\x68\xfa\xf7\xcf\xec\xd0\x44\xa6\xb6\x8a\x50\x9c\x9a\x72\xd3\x3a\x1a\x23\x7e\x94\x0f\xae\x51\x80\x4c\xf3\x47\xfc\x38\x4d\xb0\x3b\x96\xdd\xf0\x29\xad\xb1\x2c\x7c\x7d\xb5\xfd\x4c\x20\x1b\x12\x2d\x9c\x47\xdc\x1e\x42\x1f\xb2\x1e\xfd\xe2\x5f\x77\x2f\xa0\xd4\x72\x90\x1e\x44\xd5\xc0\xfb\x40\x68\xc0\x77\x60\x12\xeb\x96\x6f\xfa\x4d\x05\x0c\x20\xaa\xc8\xa6\xe8\x8a\x26\x6b\xce\x93\x1d\xc2\x04\x9a\xf6\x75\x65\x83\x23\x62\x12\xb0\xf0\x24\x5f\x61\xb7\x5d\x18\x6a\x81\x3a\x56\xef\x42\x4d\xd2\xef\x89\x89\xad\x76\xa9\xfb\xea\x85\xbe\x3a\xb5\x87\x90\xcd\x9c\x3e\x8a\xf3\x80\x16\xf4\xaf\x81\xb9\x53\xc2\x43\x33\x24\xf1\xda\x9c\xb0\xc6\x75\x00\x1e\x4a\x89\xa4\x41\x57\x28\xd9\xfd\x11\x52\xd3\xcb\xc7\x6e\x4b\xcb\x5c\xdf\x8e\x5f\x56\x9c\xba\x5e\x81\x8c\xd3\x5e\x80\xff\x09\xcc\x47\x68\xf1\x94\x4a\x4a\xc2\xde\xd3\xbe\x01\x18\xc0\xe5\x53\x06\x51\xc0\xba\x18\xcd\x83\x31\x50\xb5\xc7\x58\x3b\xf2\xe3\xdb\x84\x52\x1a\x57\xac\xba\x14\xd5\x35\x34\x22\xcb\xc7\x07\x5d\x1a\x82\xe5\x3e\xc9\x0e\x1d\x5c\xec\x6f\xe3\x7b\x80\xc2\x5d\xec\x98\x0b\x05\x57\x2e\x45\xd8\xe3\x41\xba\x1b\x45\xa1\x55\x36\xf5\x85\xd7\x03\x20\x4a\x1a\xc5\x29\xea\x3b\x3c\xde\x2e\xb6\xb8\x61\x3d\x60\x35\x78\xd7\x2c\x38\x1e\xb6\x5b\xa1\xca\x71\xa0\xef\xd3\xea\x16\x7f\xb5\xa2\x96\x52\xaf\xae\x4f\x70\x27\xc6\x0c\xaf\x90\xc6\xd2\x95\xb3\x43\xb5\x87\x6b\xe1\x89\xfd\xda\x06\x83\xab\x6f\x2b\x5e\xa0\x93\xaa\x86\x94\x47\x29\x4e\x01\xab\x9a\x7f\xf7\xfd\x76\xbb\x7e\xbc\x5d\xaf\x9e\x76\xeb\xe5\x03\xed\x3a\x25\x86\x24\x43\x7e\xb4\xed\x1b\x40\x7f\x0b\xad\x31\x35\xd0\x6e\xe9\xcb\x87\xbb\xbb\xf5\x66\xd3\x11\x4f\x41\x9a\xa4\x1a\xb1\xfe\xcf\xa5\x83\xf3\xb9\xbf\xa7\x49\x88\x3b\x88\x16\xe7\x4b\x5e\x4b\x48\xd3\x14\x14\xb8\x2c\x63\xf5\x3a\x4e\x82\xa7\xa9\x10\xcc\xc3\x03\xa0\x3d\x99\x50\x9c\x73\x72\x03\x43\xb0\xcf\xa6\x63\x7f\x1a\x9d\xd4\x9f\xfe\x7f\xee\x16\x82\xf0\x24\xea\x54\x8f\x8a\x02\xf2\xc7\xb2\x6e\x46\x9a\x18\xbe\x67\x4a\x51\x2a\xf6\xcf\xdf\x2f\x76\xaf\xcb\x58\x44\x2a\x40\xa0\x90\xd9\x41\xbc\xb7\x5b\xf6\xdf\x4f\xc2\xee\x23\xae\x59\x92\x28\x18\xd2\xc7\x6d\xca\x69\x7d\x48\xaa\x82\x14\x41\xaf\xbd\x0c\xf9\xe1\x70\x2a\xb2\xe6\x3c\xf8\xb2\x5a\x59\xe3\xaf\x6c\x17\xcc\xe6\xa5\xf5\x08\x1d\xd2\x65\x5b\xfa\x48\xfc\xa7\x71\x81\xd4\xa4\x31\x06\xc5\xdf\x30\x70\x58\x2f\x8e\xc7\xb2\x6a\x3e\x8c\xd8\x08\x12\x28\x4c\x00\xd9\x77\xdd\x3a\xd5\x80\x99\x4d\x5c\x90\x14\x62\xf0\x38\x3f\x73\x2a\xf4\x84\x44\x11\x04\x01\x16\xf5\xa5\x76\x43\xd9\x38\x10\x01\x4b\x6c\x41\xae\x30\xf0\x35\x7b\x85\xab\x73\xe7\xa9\xcc\xbe\x87\x08\x52\x86\x99\x57\xc7\x58\xb2\x2a\xf4\xcf\xb2\x7a\x19\x0f\xa9\x08\x52\x8e\x39\x55\x1b\x85\xc7\x52\x8c\xe6\xcb\x2c\x0a\xf8\xd3\x7f\xc6\x37\x65\x81\xe9\x6b\xd6\xcb\xd2\xcc\x8e\x06\x4b\x13\x34\x98\x5d\x58\xc8\xba\xad\x63\xc4\x80\x60\x42\x5b\x7c\xe1\x09\x3f\x82\x63\x55\xfb\xfb\xa9\xac\x4e\x87\xc9\x8b\x84\x84\x63\x91\x87\x23\xdc\xf7\x36\x90\x08\x99\xa0\xae\x58\xf9\x4e\xd4\xb5\xfb\x81\x6d\x79\x11\xf3\xf5\xf3\x5f\x84\x11\x95\x36\xc6\x7c\x95\x59\xda\x9c\xd3\x00\xf3\x29\x42\x67\x85\x64\x45\xbb\xab\x67\xaf\x59\x9d\x15\xfb\x95\x31\x65\xd5\xd4\x43\x89\x72\x10\x11\x97\x0e\xc5\x5d\x9f\x0e\xb0\x5e\x3d\x74\x0d\x32\xb6\x00\xa4\x32\xc7\x0c\xc5\xe5\x3a\x16\x31\xa1\x54\x75\xa7\xc8\xee\x30\x09\xad\x8d\x87\x32\x0e\x79\xcc\x1c\x18\x7c\x70\x74\x8a\x38\xd1\xe8\xb8\x6d\x9e\xc5\x0b\xe8\xf2\xad\x20\xef\x5d\x13\x04\x56\xfd\xf8\x74\x5e\x14\xe8\x59\x5d\x57\xa2\xd8\x77\x20\x22\xc1\x13\x8e\x00\x95\xfa\xb9\x7c\xcb\xe1\x15\x72\x8d\x07\xcb\x78\x07\x10\x49\x60\x33\x93\xbe\x50\xe4\x6e\x73\x37\x9f\xd5\x10\x89\x0e\xb9\x1a\x6e\xa6\xdd\xec\x1d\xd9\x11\x22\xd1\x4a\x39\xe2\x31\x3c\x25\xda\xb1\xb9\x13\xef\x68\xe3\xae\x0f\x8e\x61\x1b\x4b\x6f\x7d\xe6\xc3\x7f\xb7\x94\x26\x91\xb3\x88\xaf\xe1\x75\x94\x61\xf1\x3d\x62\x7b\xa4\xda\x03\x7c\x03\xaa\xb2\xe4\xd5\x58\x8e\x3f\x7e\xdc\x54\x86\xcc\x67\x11\xda\x63\x7e\x5d\xd4\x4d\xfb\xcb\xb3\xc9\x3c\x21\x18\x49\x03\xff\xd3\x22\x87\xca\xca\x8d\x9e\x9c\xfa\xf4\x20\xe2\x22\x84\x10\x24\xf1\x78\x08\x24\x9a\x9b\xe1\xb5\x00\x21\xa4\x65\xf1\x73\x59\xcf\xdc\x67\xf7\x85\xa4\xa1\xb6\xea\xf9\x56\xca\xbc\xb5\xfb\x7f\x66\xcd\xf3\xac\x18\x09\x08\xc5\x18\x96\x00\xb6\x8f\xf5\x29\x5d\x0d\x08\x15\x51\x2c\x43\xde\x56\x42\xa3\x12\x81\xe9\x26\x92\x8a\x98\x65\x1b\xcf\xb3\x83\x68\x60\x59\xf5\xf3\x44\x09\xea\x61\x4f\xf8\x8d\x7e\xc3\x22\x3b\x34\x75\xb3\x41\x2f\x1d\x47\x3e\xa3\xe3\x5a\x47\x67\x9b\xd0\x29\x84\xdc\xfb\x41\x8b\x42\x8f\x55\x48\x01\x69\x0f\xc3\xc1\xcf\xcc\x0e\x1a\x50\x2b\xd6\x71\x05\x0d\xbc\x42\xd1\x5c\x38\x12\x7f\xd5\x0b\x70\xf7\x33\x91\xb0\x95\x83\xed\x2f\xee\x72\x51\xe8\x5d\xdd\x31\x41\x83\x30\xad\xd3\xdf\x67\x7b\xbb\xd0\xd5\x07\xc5\x4f\xf6\x2a\x49\x88\xb1\x81\x82\x3d\x34\x4f\x42\x41\xb5\x14\x63\x11\x71\x90\x01\x8b\x22\x27\x0c\xf1\x8d\x8e\x20\x82\x92\xc6\x9c\x59\x20\x1d\xbc\x66\x79\xb6\x07\xbd\xf8\x0b\x72\xfc\x20\x29\xb7\x50\x4b\xa1\x35\xce\xf6\xe1\xe0\x4b\x6a\xec\x8b\xec\xa1\xf9\xfb\x30\x6a\xe0\x9a\x19\x27\x18\x2d\xf5\x8a\x04\x8f\x22\xd3\xd3\x2e\x20\xd1\xf6\xbb\x2d\xf7\x43\x4d\xb2\x47\x71\x2e\x4f\xf3\x24\x2b\x20\xc3\x90\x7b\xe9\x45\xe4\xab\xf9\x7e\x5c\x96\x1f\xf0\xcd\x81\x0c\x39\xa0\x2c\x69\x6b\x69\x7d\xbf\x5f\x6f\xff\xdc\x3d\x3e\x3c\xdc\xfa\x51\x09\x0d\xc1\xba\x4b\x4f\xc7\xbb\x7d\xbb\xc8\xc6\xb9\x9e\x51\x62\xd5\xa2\xda\xa3\xe9\xe1\xe1\xd6\x69\xfc\x47\xe3\xf1\x88\xe3\x14\x1c\x19\xca\x37\x97\xf9\x5c\xed\xf7\xbd\x9a\xa5\xeb\xc6\xa3\x10\xc9\x6a\xa6\x00\xf1\xf1\x6b\xf2\xd8\xd2\xfc\xcb\x4c\x7f\x19\x32\xbf\xfd\x6d\x60\x57\x4b\xae\x35\x3a\xc1\x3b\x55\x1e\x8e\xa7\x19\x29\xc1\x80\xba\xcc\x9f\xfb\x37\x24\xee\x1f\x77\x83\x24\xe0\x08\xcb\x83\x46\x8d\x0e\x21\x99\xa4\x36\xcd\xdd\x94\x4d\x77\x30\xc8\xc4\xa4\x58\x8f\xd8\x05\x60\x2e\xc2\x2f\xa3\x57\x48\x43\xe3\xb3\x7a\x37\x15\xc0\xa3\x50\x99\xe9\xc8\x0f\x40\xa6\x2a\x24\xe0\x34\x1e\x84\x3e\x6f\xad\x42\xea\x64\x86\x08\xa5\x91\x40\xf5\xf1\x69\xb5\xbb\x7a\xb8\xff\xee\x53\x9e\x52\x68\x26\xbc\x17\x24\x8e\x8d\xc8\x8a\x1e\x76\xdb\x8d\xcf\x00\x83\x70\x0f\x6f\x08\x20\xad\xb3\xfd\xe4\x7b\x28\xc2\x02\xd2\xad\xc7\x07\x7d\x29\x9d\xe1\x3b\x6a\x8a\xe1\xd1\x85\xd6\x9b\x52\x65\x22\x77\x95\x32\x17\x49\xf6\xf9\x15\xac\x99\x49\xe3\x9e\xb9\x6b\x7e\x00\xc7\x8f\xa6\x43\x4b\x1a\x5f\x3f\x97\xc7\x4d\x53\x56\xe0\x67\xaa\x1f\x05\x20\x14\xf7\xb7\x01\xee\xfa\x97\x12\x5a\xe3\x97\x82\x28\xc2\xd4\x31\x26\xb5\x5f\xa0\xb0\x06\xd5\xba\xf8\x20\xb9\x2d\x4d\x00\x4c\x3b\x08\xf0\xa9\xf1\xf9\x84\xd1\x3d\x15\xa1\x80\xba\x6f\x4e\x11\x7c\x40\x06\x62\xd9\x10\x47\x77\x54\x41\x1a\x60\xbe\xbf\xc6\xc9\xab\x27\xba\x4d\xa0\x02\xad\x93\x7e\xbf\xbc\x2f\x0b\x07\xdb\x77\x89\x07\x6b\x2a\x4e\x5f\xf6\x82\x0f\x6d\x44\xb2\x3d\x48\x6b\xab\x00\x00\x5d\xab\xcd\x76\xb1\xc5\x40\xdb\x8f\xc5\xed\x77\x1f\x68\x53\x94\x44\x22\xf2\xc8\x10\xa1\x9a\x5b\xac\x44\xec\xec\x44\x45\x63\x45\xc0\x57\xa7\x8b\xe2\x51\x54\xe2\x00\xcd\x00\x19\xfc\xcb\x88\xd2\x7c\x24\xc9\xdf\xde\xd8\x29\x87\xd5\xac\x3b\x04\xcf\xee\xf4\xa9\x1a\xe2\xb6\x15\x23\x5a\x05\x1d\x4f\xda\xfe\xb9\x79\x3c\x15\x99\x27\x0a\x02\xc5\x82\x04\xfd\x7c\x4b\xf6\x7f\x27\x70\xa3\x73\x73\xa4\x1e\xc0\x12\x14\x13\x12\x97\xda\xce\x9c\x9a\x53\x05\xa3\xfd\x40\x85\x40\x30\x8a\xec\xe3\xff\x8f\xa7\xe2\xc5\x43\xb9\xba\xc1\x88\x84\xf4\x9e\xef\x22\xcf\xaf\xc5\xf1\xe8\x4d\x72\x15\x47\x81\x91\x03\x69\x5d\x47\xf5\x88\xc2\xb6\xb3\x70\x7b\xc5\xa9\x46\x80\xcc\x66\xbb\xf8\xba\xda\x31\x7f\x23\xce\x65\xcc\x06\xd1\x14\xd4\xfc\x28\x86\x7a\xf7\x17\x84\x5a\xa0\xb8\x89\x10\x5d\xff\x5b\x79\xaa\x9b\x1e\xad\xa3\xb8\x71\x1a\x78\xe5\xe1\x88\x92\xba\x45\x03\x15\x4c\xe7\xbc\x4a\x8c\x80\x64\xe8\x41\x2f\x9a\xdf\x61\x72\xdc\xa9\x54\xa4\x49\x67\x8a\x8c\x13\x14\xe3\xbb\xa5\x2a\x4c\x9c\x27\x90\x9f\x34\xd4\x1b\x98\x18\xb3\x4a\x68\xbb\xe9\xed\x2b\x51\x60\x28\x7c\x98\xfe\x52\xc2\x84\x3e\x4d\x75\x57\x16\x70\xfe\x88\x99\xd2\x75\x97\x42\x88\xc0\x9e\xb1\xf3\xe7\xea\xb4\xbf\x8c\x70\xbe\xbc\x65\xae\xba\x2a\xf0\x3f\x2c\x0d\xc7\x6a\xdc\xdf\xb3\x5a\x88\xee\x71\x14\x00\x1e\xf3\x3b\x4f\x5e\xfa\xf9\x9e\xa6\xb4\xab\xdb\x1d\x60\x3d\x44\x3e\xca\x3e\x2a\x1d\x18\xd0\x1e\xcd\xfa\x31\xf5\x39\x28\x4d\x39\x32\xc6\xe5\x59\xf1\x82\xc9\x8c\x49\x73\x18\x5b\x26\x81\xd6\xe0\xb5\xc5\x45\x4b\x51\x48\xe8\x31\x26\xbe\xa3\x02\x70\xa1\x3d\xef\x89\xcf\x0f\x8e\xd1\x36\x7c\x8e\x84\x1e\x5e\xd1\x0c\x34\x0d\x42\xe3\xb5\xc7\xcb\x32\x07\x51\xdc\x89\xa3\x35\xe6\x27\x78\x85\x4b\x00\xa2\xa6\xa9\x26\x9d\xb9\x68\xb3\x77\xdd\x92\xd2\x14\xb8\x76\xe4\xd7\x5f\x61\x82\x94\xd2\x8c\xa5\x60\x3c\x3b\xdd\x37\x51\xb5\x86\x7d\x57\xe7\x77\x81\x02\xbe\x74\xbd\xfd\xae\x14\xfa\xb0\xfe\x70\xef\xd1\x2c\xb6\x52\xcd\xcf\xa2\xbe\x2b\xb5\x05\x13\xfa\xc7\x62\x69\xac\xe2\x2e\xfa\xee\x69\x85\x66\xc7\x4c\x33\xb0\xfe\xac\xc5\xb0\x2d\x97\x0f\x9f\x85\xac\x75\x98\x58\x06\xe9\x21\xf7\xf3\x7c\xa4\x42\x87\xc2\x16\x06\xb8\x03\x75\x54\xf0\x3e\x79\x86\x48\x59\x9d\x79\xc7\xa8\x77\x07\x95\x3a\xe5\x53\xb0\xbe\x8e\xa3\x80\xda\xba\xef\xdc\x96\x21\x8c\xe7\x93\x8e\x75\x82\x1f\xe3\x6b\xfb\xd6\x27\x63\xee\x4f\x87\xd9\xbd\x4b\xf3\x58\x78\xe3\xc4\xe3\x5e\xdd\xfc\x73\x66\xf9\xf8\xbe\x09\x15\x08\xc7\xad\xb3\x62\x87\xf5\x3d\x3b\x4b\xea\x38\x79\xbc\x84\x59\x8a\x17\x9b\x5c\xb4\xa4\xd8\x48\x77\xb8\x11\x39\x7c\x18\x98\xd0\x49\x6a\x57\xd3\xd1\xea\x9b\x4d\x12\xd5\x3a\x81\x34\x76\xa0\xcf\x55\xa1\x8f\x65\x56\xf4\x4d\x86\xb9\x58\x4b\x85\x04\xb3\x57\x59\x9e\x7f\x18\xd1\xd2\x22\x20\x08\x5a\x84\xe6\xb9\x86\xdc\x0c\xf7\x2c\x2d\x58\x84\x95\xb7\xcf\xa2\xbe\x9f\x6a\xac\x80\x16\x49\x84\x05\x37\xcf\x25\x42\x68\xc6\xb7\x95\x81\x42\xf5\x1d\x97\x1b\x9f\x3e\xbe\x4c\xac\x3e\xdb\x16\xa9\x4f\xba\xbf\xa6\x76\x41\xdf\x5e\xff\xb1\x1c\x81\x9e\x7c\xbb\xb4\x5c\x4f\x16\xf4\x7b\x5f\x36\x23\x31\x6d\xd0\x3a\x48\x2c\x1c\x27\x3b\xc0\x60\xcb\xf4\xad\x4c\x60\x6a\xd9\x89\x37\x6c\xb6\xcb\x61\xa2\x5a\x6b\x21\xd0\x69\xba\x86\xfc\xc7\x47\xec\x40\x5a\x0b\x99\x46\x9e\x89\xe2\x7b\x31\x9a\x16\xfd\xf9\x35\x19\x62\x6d\x62\x64\xba\x69\x9d\xfb\x21\x22\x4b\x43\x18\xe3\x99\x82\x76\xc2\x1c\x89\x84\x86\xc4\xb2\xb3\xbd\x3d\x8b\x66\x5d\xdf\x65\x75\xdd\x03\x33\xb5\x89\x18\xc2\x95\x33\x55\x76\xce\xef\x64\xa0\x81\xc4\x0c\x4d\xcd\xa6\xca\xd4\x4b\x0e\xdf\x8f\x5d\x83\xb0\xd5\x73\xc2\xb3\xaa\xde\x89\x1e\x02\x33\x7d\x05\x08\xc2\xc8\x38\xbc\x4c\x65\x19\x42\x07\x68\x70\x08\x64\x82\x87\xd5\x1f\x57\x9b\x46\x14\x5a\x54\xfa\x2f\x42\xd6\x20\xd0\x21\xfa\x72\x28\x78\x8c\x61\xc9\xac\x2c\x06\x89\x11\xa0\x51\x1c\x30\xcf\x16\x50\xa9\xc1\x56\xf1\xa1\xdd\x00\x34\xb5\x20\x5d\xd7\xe3\xa1\xb3\x67\x80\xb6\x53\xc8\x51\x65\x8b\xdc\x22\x36\xea\xab\xf3\x06\x2e\xa4\xb7\x01\x18\x4b\xc0\xc6\x5e\x0c\x54\x22\x5f\x68\x5d\x5d\x9d\x3f\xda\x3b\x80\xc5\x1c\xab\x33\xf1\x96\x1e\x5e\xf7\x28\xaa\xe6\xa1\x80\x8f\x2a\x3b\x7e\xc5\x70\x3d\xac\x63\x99\xfc\x6d\x60\x0a\x43\x48\x28\x66\xf0\x16\x5a\x7f\x1c\xf0\xf4\x7d\x55\x44\xe8\x98\xdf\xce\x8f\x0d\x27\x91\x67\x9d\xaf\x1a\x64\xd6\x18\x31\x77\x00\xe7\xb1\xb0\xed\x9d\xe6\xf1\xfc\xb6\x0d\x1c\x02\xac\xf8\x40\x7d\xb7\x01\x75\x1d\x40\xc2\x24\xca\x67\x6e\x17\x9b\x87\x6f\x0b\x44\xc3\x7e\x76\xac\x40\x12\x9a\xd8\x9d\xd0\x18\x39\x9f\xff\xbd\x44\x30\xe9\xbe\x37\xfd\xc0\x3d\xff\xd5\xbf\xee\x4e\x29\xd5\x18\x70\x71\x45\x6b\x57\xe7\x5b\xd8\x0b\x75\x01\x95\x99\x5e\x95\x84\x68\x40\xbf\x42\x55\x63\x80\x57\xc3\xfb\xd4\xbb\xf4\x5d\x53\xf0\x61\x4b\x2f\x8d\xe0\x5a\x64\x1a\x23\x78\xf3\x5b\xb6\x7f\xce\x05\x3a\x54\xae\x45\xa5\x12\x21\xe2\x5e\x53\xbc\xc8\x4c\x7b\x36\x8d\x18\x7f\x07\x96\x09\x68\x95\x22\x8e\x1b\xad\x9d\xab\x93\x77\x06\x00\x34\xd1\x8e\xa3\xe4\x8f\xf6\x45\x26\x53\xc3\xc8\xd4\x02\x43\x7a\x12\xca\xeb\xfb\xa7\xe9\xb9\xd4\x76\xc3\x70\xc9\x63\xf6\x0e\xf9\xf0\xb4\x30\x84\x10\x44\x6f\x95\xa7\xe6\x78\x9a\x04\xf7\x0d\x49\x62\xcc\x43\x63\x1e\x6c\x9b\x41\xc5\xba\x96\x94\x61\x16\xec\xba\xdc\x03\x1d\xdf\x10\x0c\x05\x3f\x59\x11\x5e\xb4\x79\x2e\x4f\xb9\xbe\x02\xd6\x19\x71\x26\x90\x29\x7a\xad\xd8\xa9\x79\xae\x00\xd6\x05\xf6\xbd\x11\x79\x0d\xab\xff\xdc\x7a\xf2\x75\x30\x34\x0a\x04\xf7\xf8\xd8\x65\xe3\x07\xd8\xb0\xc8\xf2\x24\x7e\x13\x85\xfe\x99\x15\xf5\x8f\x0c\xc6\xcc\xbd\x6d\x17\x88\x1d\xa9\xed\x1e\xe8\x80\xf8\xcd\x30\x4e\x07\x74\xea\xe8\x58\x59\xf7\xe6\x36\xc3\xaa\xa6\x75\xd1\xa7\x84\xbf\x17\x59\x33\xbd\xb1\x54\xbe\x78\xa3\x4f\xf3\x55\x87\x1e\x9f\x9f\xf8\x8e\xc6\x56\xdc\x2e\x6e\x9e\x3a\xd6\x58\x30\x61\x00\xcc\x15\x2e\xac\x1b\x38\xac\x75\xfd\x28\xf6\x42\x5e\x06\x41\x5d\xff\x48\x49\xc4\xf0\xfe\x58\x2f\x47\x43\x1d\x69\x4b\x99\xfb\x28\x8e\x97\x68\xdd\x0f\xb6\xa7\x7f\x8e\xc5\xe0\xc1\x70\x6a\xeb\x87\x6d\x42\x6b\xf3\xd6\x17\xd8\x5d\xec\x6c\xb3\xa7\xab\xe1\xb1\x46\xcb\xc5\x97\x88\xcf\x6a\x87\x4c\xde\x88\x0b\x9d\x2a\xaf\xf8\x35\xa4\x0f\x19\xe6\xc6\xfb\xee\x49\x22\xd0\x0d\xbb\xbe\xfe\x6d\xb1\x1d\x20\xa9\x4c\x22\x22\xb4\x2d\x36\xcb\xfb\x5f\x56\xd7\x9b\x34\xb2\xec\x06\x35\x34\xdf\xab\x79\x7a\x19\x93\x26\x4c\x3b\x14\x15\x16\x13\xb5\x96\x5f\xeb\xa4\x30\x3a\xc7\xf6\x62\x52\x67\xfb\xf4\x0c\xce\x60\x44\xc4\x99\xad\x7f\x29\x96\xa5\xee\xff\x1c\x27\x06\xcf\x7d\xb3\xf6\xbc\x20\x96\x9b\x7a\xfc\xaa\x82\x47\x48\x40\x55\x81\xd0\xbb\x13\xeb\x56\x8c\xe0\x3a\xf5\x4c\xc3\x13\xc6\x90\xc9\x0d\x84\xad\xbf\xb0\x3a\x9d\xce\xa6\x72\x6d\x32\x88\x11\x78\xe6\x75\xaf\x91\xf6\x56\x0f\x02\x13\x46\x52\x5b\x43\x8b\x94\x2c\xa8\x49\x34\xef\x10\x18\x19\x47\x48\xb5\x75\x74\x5a\x44\xe7\x55\xf3\xbc\x2e\x46\x00\x28\x23\xa5\xc1\x88\xf0\xd5\xe2\xfe\xf7\xa7\x87\xdb\xdb\xd5\x93\x6f\x51\xa1\x42\x56\x60\x51\xd7\xa5\xca\xc4\x80\x06\xa5\xeb\x91\x28\x04\x75\x9f\x8a\x1a\x90\x2d\xee\xe2\x3c\x9e\x84\x9b\xdc\x75\x9a\xd0\xd4\xe3\xf4\x7e\xf6\xe2\xc2\x60\x20\x02\xab\x33\x25\xea\xe7\x87\x93\xd5\xd8\x1e\x8f\x1c\xc4\x29\x9e\x5b\xf6\x98\x5c\x96\x79\x59\x3d\x66\x1d\x11\x87\x81\x54\xe1\x8e\x5e\x87\xc4\x51\x55\xfa\x06\x41\x30\x84\xd0\x1a\xb0\xad\x45\x34\x80\x1b\x1b\x42\x62\x0a\xb6\xb2\x2f\x47\xaa\x80\x11\xa7\xa0\x21\x44\x02\x3a\xb9\x3b\x5b\xa0\x32\x17\xa6\xec\xad\x06\x43\x02\x1e\xa1\xf8\xfa\x9b\xb7\x14\xe6\x8a\xed\x46\x6b\xcd\x90\x20\x09\x03\x97\xfe\x29\x3d\xcd\xd2\x30\x5f\xda\xf6\x88\x31\xed\x6f\xa1\x7b\x1b\x57\x1b\x3e\xf6\x31\xc7\x22\xcb\xee\x42\xca\x98\xab\x58\xaf\x8a\xcd\xb9\x68\x9e\x1d\x28\x31\x9c\x3c\x02\xd5\x16\x52\xe1\x8c\x78\xb4\x2e\x46\xa0\x59\x43\x18\xd1\x54\x79\xda\xdb\x11\x98\x7d\xee\x3b\x1b\xc2\x02\x2b\x1f\xe3\x94\x87\xef\xb2\xa2\xb1\xa4\xfc\xbf\xb0\x21\xfc\xe5\xa9\xb5\x8b\x1e\x6f\xaf\xb7\xdd\x23\x40\x82\x02\x42\x77\xa5\x7a\xe9\x70\xc4\xf9\x90\x16\xda\x90\x90\x07\xc4\xd2\x04\x1e\x6c\x01\x28\xed\x5a\x52\x40\x50\x62\x7b\xa4\xdd\x88\x2c\xdf\x21\x76\xc9\x08\x05\xbb\xd6\xc7\xed\xba\x69\x82\xfc\x50\xa3\x6c\xdf\xfc\x33\x46\x4c\xa2\x1a\xc6\xb2\x74\xe8\x74\x7f\x8f\xc8\x08\x17\x45\xc7\x87\xd4\x3f\xac\x09\xd3\x37\x2b\x0c\xdb\x1d\x4e\xf9\xb1\x7c\xa3\x5f\xc6\x77\x8d\x59\x82\xe5\xcb\xee\x5b\xdc\x89\xf7\x71\x05\xb4\x21\x3c\xed\x98\xd8\xbf\x89\x4a\xbf\x89\x0a\x66\x4a\x4e\x0c\xe1\x8a\x63\xe5\xe7\xa2\x6a\xba\x6b\x13\x42\x30\x97\x51\x08\x84\x49\xf7\x2c\x11\xc3\x6d\xb6\xb5\x2b\x74\xec\x0a\x95\xb7\xd0\x9e\xb8\xd5\xe4\x29\x13\x08\x84\xe7\x3e\x15\x95\xcc\x9a\x7a\xe7\x84\x5f\x77\xe5\x71\xc2\x6a\xd6\x1a\x23\x06\x8f\x93\xfa\x08\x2a\x33\x99\xc2\x72\x4d\x04\xc2\x4d\x6e\x9b\x86\x14\xf9\x0f\x76\x96\xc8\x51\xbd\x3c\x23\x60\x72\x72\x3b\x41\x38\xee\x6d\xcd\x37\x51\x7f\x3f\xbe\x96\x0d\xcc\x2b\x52\x98\xd6\x1d\x0b\x5d\x48\x1a\x25\xe1\xac\x27\xe4\x34\x33\xc7\x3f\x2d\x94\x15\x63\xb3\x65\x97\xf7\xf0\xde\x0c\x48\xe1\x0c\x91\xa1\x52\x8e\xa3\xd1\x89\x86\xf5\xa8\x13\x43\x24\xb7\xe8\xe3\xdf\xff\x5c\x4e\x92\x89\xdd\x5a\x94\xd2\xc8\x64\xa0\x6b\xd4\x05\x18\x2e\x8f\x39\x43\xa4\x96\x98\x3b\x6f\xca\x71\xec\xdc\x35\x2b\x92\x6a\x2f\x35\xf0\x5c\xd6\x50\x0c\x49\xec\x0d\x51\x29\x45\x4c\x24\x3e\xe6\x6e\xd3\xc9\x7d\xfa\x66\x03\x58\x6f\x20\xb4\x5e\x54\x4d\xa6\xca\xbc\x1c\x12\x67\x04\x64\xfc\xaf\xbb\x4a\x83\xcd\x82\xa1\x27\xf3\xb3\x6c\x6d\x69\xef\x16\xcc\x88\xd0\x19\xa2\x8d\x46\x4e\x03\xd9\x43\xc3\xfd\x03\x00\xb7\xaa\xe4\xb7\x20\x8a\x9e\x43\xd4\x10\x00\x4b\x38\x6c\xe5\x32\x7f\x8a\xaa\xca\xca\xaa\xde\x96\x57\xa2\x69\xf2\x0f\xd3\xb3\xe3\x55\x19\x10\x16\x0a\x57\x99\x68\x6d\xfb\xaf\x95\x28\x1a\x98\x77\x73\x4c\x40\x62\x89\x6b\xb5\xac\x84\xc2\xe4\xa9\xff\x3b\xe7\x88\x49\x3a\xec\xa0\x2b\x82\x9e\x5c\x29\x13\x65\x3a\xba\xd4\xb2\xf4\x38\x2c\x13\x10\x95\xe0\x3d\x9b\x53\x55\x74\xec\x97\x26\xa0\xcc\xa0\xba\x58\x7b\xf4\x79\x7e\xa7\xcf\x7c\x20\x13\xd0\x54\x2b\x6a\x33\x0d\x5e\x7b\xa9\xa3\xf7\x34\x01\x8b\x8c\x89\xa6\x56\xee\xd0\xbd\x34\x01\x8b\x35\x38\x28\x08\x2e\x37\xb4\x9b\xb3\x52\x4f\x5e\x85\x25\x04\x57\xf3\x0e\xb1\x01\xa7\xaa\xdd\x1d\x8a\xc6\x0e\xfb\xf4\xb5\x99\xb1\x2b\xdf\x58\x48\xd8\x30\x35\x62\x82\x30\x09\xb5\x67\x09\x40\x9e\xd8\xe3\xa9\xc1\x35\x77\x21\x03\x64\x82\x88\x2b\x4f\x76\x39\x4c\x78\xfb\x5b\xc5\x21\xc1\xe2\xe6\x47\xa8\xea\xd2\x99\x4a\x1f\x7c\xc3\x38\xe5\x78\x36\x1d\xb2\xc2\x63\x8d\x26\x07\x73\xc0\x43\x8e\x81\x19\xd5\x8e\xc2\x35\x78\x3a\x69\x6f\x2e\xfe\xf3\x5f\xe3\xe3\x2b\xe0\x1a\x90\xa9\xb1\x46\x92\x93\x9d\x7f\xa8\x34\x10\x98\x02\xcb\xea\x01\x7f\xa9\x4f\x44\x82\x5e\x14\x1a\x29\x17\xc6\xfb\x55\x90\x1a\xa2\xed\x41\x91\x15\xbe\x26\xf3\x57\x36\xfc\x5f\x71\xad\x4d\x20\x8c\x85\xb2\x18\x80\xab\x53\x55\x40\xf5\xb3\x12\xc7\xa3\xe3\x46\x1c\x9b\x6c\x26\x90\x91\x01\xb7\x32\x7a\x52\xc6\xf1\xfd\x24\xd7\x88\xcc\x42\x8d\xbc\xc9\x4f\xfe\x33\x74\x5b\x59\xa0\x48\x62\xd9\x87\xf5\x21\x2b\x2e\x62\x98\x26\x50\x3c\x0d\x6d\x04\x4e\x74\x31\xdf\x51\x16\xc8\xf7\xd3\xb1\x66\xee\x48\xa6\x13\x6b\xa6\xeb\x92\x1a\xc7\x05\xf7\xf5\xab\xf5\xae\x26\x7c\xd6\xae\xa3\x26\x31\xe6\xa5\x5c\xc1\x0c\xca\xa7\x5a\xee\x8d\xcf\x35\xb0\xc7\x77\x81\x20\xf5\x55\x3f\x4e\x09\xf1\xcb\x78\x5e\x00\x58\xba\xc2\x3d\x34\x57\xfa\xd8\xd1\x62\xfa\x02\x6a\xbf\xe9\x07\xb1\x1f\x2b\x63\x52\xb4\x93\x2b\xd1\xc0\x4d\x59\x59\x54\x82\x72\xd0\x6f\x1b\x62\x35\x94\xa4\x31\xba\x29\x77\x8b\x3f\x76\x8f\xdf\xaf\x6e\xd7\xcb\xdd\xe6\xe1\xd6\x29\x47\x19\x4a\x64\x8a\xaa\x9f\x07\xf1\x9e\x1d\x4e\x07\x47\xb9\xdf\x2e\xa9\x75\xb1\xda\x7e\xf3\xdd\x02\xc2\x90\x0f\x01\x29\xf7\x26\xc0\x48\x43\x69\x28\x31\x8c\x7b\x14\x55\x0d\x8b\x42\x63\x0e\x7d\x50\xd3\x6d\x28\x8d\x8c\x76\x63\xbd\xcb\x45\xdd\xec\x4e\x35\x54\xbb\x0a\x94\xa8\xc7\x59\x39\x43\xa9\xd1\x78\x02\xdf\x37\x43\x66\x41\x43\x19\x04\x26\xe8\x32\x92\x37\x65\x75\x97\x5d\x92\x7a\x8e\xe7\x30\x0d\x95\xe5\x83\xad\x6d\xad\xd1\x42\xcd\x21\x45\x07\x5e\x9d\xa1\xa1\xa6\x28\x93\xdc\x5a\x1a\x5d\x8a\xdf\xb5\x45\x44\x44\x30\xd2\x8b\x29\xf4\x58\xbf\x6e\x7e\x13\xa1\x51\x9a\x58\xb1\x11\x4c\xc9\xde\x9f\x0e\x3f\xb2\x3c\x17\x7b\x98\xcc\x00\x1a\x07\x09\xe6\xf8\x9a\xdd\xfa\x70\xc8\x85\x55\xe1\xc7\x3b\xbb\x3d\xbd\xac\xfc\x76\x48\x63\x06\x28\x41\xf2\xad\x3c\xc0\x47\x32\x04\xc9\xe4\x39\xe2\x94\x87\x51\x6f\x3c\x76\x2f\xc6\xa3\x14\x83\xc5\xad\x17\xf3\xbd\x68\xb2\x1c\x91\x6f\x8b\x76\xbe\x63\x68\x62\x34\x91\x29\x8f\x13\xb4\x11\xad\x78\xf1\x5d\xf9\x7a\x41\x7f\xe0\x3b\x26\xb6\xfe\xf8\x71\xf5\xb4\x7e\xb8\x76\xf5\x37\xdd\x6f\x2a\x4b\x7d\xb8\x01\x75\xaa\xb2\xe6\xbc\xfb\x26\xea\x47\x51\xd7\x6f\x65\xa5\x37\xcf\x82\x61\x35\x10\x40\x81\x84\x90\xed\x39\x5d\xbc\x78\x1c\x88\xbb\x43\x42\xac\x20\xb3\xb5\x35\xd7\x0d\x1c\x2e\x29\xb6\x0d\x4d\x12\x9b\x93\x76\x84\x6f\x2b\x5b\xa6\xe6\x95\xc1\xba\x7b\x89\xa8\xc7\x92\x59\xde\x04\x00\x3d\x04\x77\x19\x9a\xa6\x11\x1e\xbd\xdf\x44\x7d\x55\x96\xf5\x54\x13\xde\xd0\x14\xb8\xad\x15\x84\x83\xc0\xe3\xe2\xab\xa8\x87\x92\x66\xae\x9b\xe0\x06\x9f\xe8\xaa\x82\xb7\x4e\x15\xd2\x50\x19\x04\x18\x8d\xc3\xa0\xb9\x3d\xfa\xfe\x5a\x50\xbe\xbd\x34\xc5\xaa\xc3\x3b\x51\x1d\xca\xe6\x2f\x5f\x45\x01\xa7\xfa\x13\xfc\x28\xbb\x87\xe0\xb1\xb5\x70\xb2\xea\xba\x2a\x8f\xdf\xa0\x2a\x47\xfe\x22\x95\x86\x50\xc7\x49\x72\x27\x5a\x37\xa7\x68\x37\xcc\x3b\x51\xed\xb3\x62\x3c\x5c\x40\x93\xc8\xb9\x12\x57\x99\x1e\x69\xb7\x8c\x56\x1c\xd0\xae\xa2\xcb\x71\x0a\x95\xd5\xe5\xc6\x4f\x0d\x51\x98\x95\xdb\x58\xb0\xf1\xd2\xab\x96\x7c\x54\xf8\xec\x2f\x4b\x03\x2c\x9d\xd8\x1d\xa1\x32\x65\x75\x98\x0a\x7d\xfd\x6d\xf2\x2b\x22\x0d\xfa\x6a\x46\xbb\xa1\x66\x50\xa3\x81\xd3\xaf\x17\xa3\x5c\x0c\x30\x2f\xa5\xc8\xef\xb2\xc2\xbb\x51\x8b\x83\x7f\x7d\x46\x98\xc0\x54\x68\x2d\xf2\xd7\x8e\x77\x7e\x7e\x7f\x60\x24\x94\x42\xfa\x20\x73\xa6\xe0\xea\xbc\xac\x40\x43\xd1\x64\x22\xb7\x51\xc2\x59\x96\x16\xc3\x08\x84\xb8\xad\xde\x96\x7b\xfa\x21\x12\xe6\x33\x48\xb8\x33\xc7\xa7\xcf\x03\x6e\x3f\x70\x9b\x5b\x47\x6f\xf6\xd1\xf3\x03\x20\x0f\xff\xd7\x07\x7f\xae\xb0\x80\x18\xcc\x5b\xdc\x97\x96\x42\x62\x66\x73\xf2\x3d\xc3\x88\xa7\x68\xf7\x5c\x8b\x33\xb2\xc6\x74\xf7\x30\x61\x2a\xbd\x5b\xd0\x7a\x4d\x6e\x03\xc8\x8a\xfd\xc8\xe8\x67\x8c\xa4\x48\x2a\xf2\x0c\xa2\x6a\x24\x88\x66\x50\x05\x67\x18\x4b\x01\xc3\x30\xaa\x2c\x5e\xa1\x6a\x6e\xcb\xe6\xea\xbc\xd6\xe3\xad\x97\x31\x93\xa0\xf5\x85\xe9\x20\x2f\x6f\xfc\xd7\xdc\x02\x16\x31\xbb\x72\xd7\xf7\xeb\xed\x7a\x71\x6b\x49\x43\x76\x37\x4f\x0f\x77\xbb\xe5\xc3\xdd\xe3\xc2\x47\x7f\x0d\x8b\x62\xc0\x1d\xf1\x58\x41\xa6\xca\x59\xa6\x76\xc3\x22\x01\xd4\x33\x5d\xfa\x9d\x64\x58\x4f\x8e\x3d\x98\x73\x3d\x37\x42\xeb\x1c\x36\xcf\xe5\x11\x19\xb0\x60\xb2\xfd\xb1\x48\x32\x0b\x33\x79\x3e\x77\x57\x2b\x5b\x41\x61\x91\x4a\x3d\x46\xc9\x37\x6b\x81\x8e\x81\x1b\xae\x6d\xb9\xec\xb4\x81\x3e\x3c\x68\x59\xcc\x79\x82\xfb\xc6\x7e\x5f\xc1\xbe\x4b\x07\x1a\x16\x83\xe5\x5c\xb2\xa9\xab\xef\xb5\xd3\x2e\x9e\xc9\xa0\x1b\xc6\x83\x00\xd9\xab\x4d\x56\xe8\x21\x87\xff\xc0\x90\x60\x3c\x4a\x98\xe3\xc6\x6e\xad\xd2\xd3\xf1\xeb\xc5\x56\xc1\x78\xa2\xc0\x86\xa6\xa6\x9e\x38\x4b\xb4\xe7\x80\x13\xd9\xa1\x2f\x8f\x32\x2c\x4d\x63\x64\x28\x31\x48\x35\x81\xee\xf9\x50\x24\xc2\x30\x11\x5a\x0b\xf7\xf6\xe1\xe1\x6e\xbd\xd8\xb9\x7f\x9e\x56\x77\x8b\xf5\xfd\xf5\xea\x69\xb7\xb8\xbe\x7e\xf2\x7d\x95\x8a\x31\x45\x7f\x57\xbe\x67\xa2\xe8\x83\xd6\x86\xe9\x04\x42\xd6\x89\x8c\xb8\xa3\x3d\xcf\x5e\xa1\x9a\xa7\xb8\x32\x4c\x2b\x5b\x80\x09\xaa\xac\xcf\x75\x03\x87\xab\x53\x96\xb7\x36\xda\x30\xef\x6c\x18\x24\x22\xb4\xbe\xa6\x86\xca\xc2\xbd\xc6\x13\xdc\x10\xc0\x67\x52\xbb\x7a\x62\xbe\x31\x13\x50\xe9\x6a\x20\x8d\x25\x42\xc9\x8a\xfd\xc4\xc2\x0f\x49\xe2\xa8\xa3\xac\x68\xf1\xa9\x1e\x7e\x96\x90\x28\x70\x47\xdf\x6b\xf9\x02\xdf\x8b\x4c\x95\xd5\x18\x0c\x60\x42\xa2\x35\xc2\x0f\x16\x58\xcf\x37\xb4\xed\xc2\x20\x81\xb0\x8b\x00\xe2\xb7\x99\xf3\x25\x43\x4a\x95\xb2\xd5\xae\xd5\x0b\x34\x9d\xb4\x49\x3d\x76\xcb\xfc\x7c\x0a\xa9\x76\x01\x3b\xd4\xfe\x1d\x82\x88\x4d\xc8\x02\xe3\x45\x73\x87\xc2\x0c\x73\x15\x33\x26\x64\xc6\x96\x9b\x63\x44\x0a\x0f\xb9\xdd\x21\x2b\x4e\xf5\xae\x97\x18\x9d\x3c\x69\x98\x70\x6a\x8d\x55\x73\x2a\xf4\xdd\x07\xde\x65\x18\x42\x88\x60\xb6\xf2\x15\x2a\x5d\x09\xd3\xd8\xd7\xae\x47\x31\x97\x30\x0a\x82\x04\x86\x44\xbc\x96\x23\xff\x02\xe3\x64\xc2\x48\x03\x9e\x76\x3a\xab\xdb\xc9\xed\x29\x1b\xfd\x8d\x62\xa6\x2d\x4c\x1b\x8a\x46\x8c\x3e\x40\x9c\xc4\x09\xed\x34\x20\x17\xdd\x57\x8f\x5d\x3d\x04\x2a\x9b\x3b\xef\x68\x22\xe3\x66\x42\x1e\x59\x3d\x92\x76\x2c\x37\xd7\x8f\x70\x41\x79\x60\x42\xce\x23\xea\x96\xad\xe7\xa1\x79\x90\xff\x86\x71\x9d\x81\x09\xb9\xb2\x44\x74\x48\x8f\xdf\x3e\xb9\xe7\xe2\x1a\xdf\x2d\x09\x24\x3a\x64\x28\x6a\xf2\x99\xec\xd6\xc8\xe0\x09\x93\x44\x09\xe6\x65\xc7\xff\x73\xca\x6c\xf6\x63\x2e\xd8\x1e\x26\xa9\xe5\xa0\xdb\xb5\xbb\xd6\xac\x57\x18\xa6\x82\xe2\x2b\x5d\x43\xfd\x9c\x0d\xd6\x78\x98\x02\xa3\x0e\xaf\x6f\x6b\xb2\x2d\x84\x64\x7c\xb5\xa0\x69\x12\x0e\xbe\x69\xf6\x5f\xcb\xdc\x3d\x09\xb3\x87\x22\xa1\x54\x8f\xf9\x9e\x2a\x51\xa8\x67\x98\x1b\x17\xc9\x12\xec\xfc\x28\xfe\x73\x12\xbd\xe2\xe2\x2f\x4d\xc1\x50\x32\x25\x6c\x44\x3d\xb7\x4e\xc7\xe7\xc1\xa3\x50\x82\xa6\xb1\x8f\x7d\xba\x52\x5a\xd1\xc0\xd5\xf9\xc1\x31\x00\x5f\x18\x23\xa3\x9f\x53\x41\x08\xe0\x35\xa8\xb1\xdf\xc5\xa1\x30\x9c\xd5\x8a\x52\xcf\x5d\x78\x7f\x3a\x2c\x50\xf4\x68\xe6\x83\x28\xa6\x51\x33\xeb\xea\xb1\x34\x77\xe2\x05\xaa\xcf\x88\xdc\x4c\xa8\xe2\xc4\xc5\x41\x7b\xff\x0a\xf4\xf4\x9e\xa9\xec\xd8\x3a\xaf\x11\x42\x09\xc8\x82\x33\xb9\x95\x0e\x23\xee\xd5\xd2\x97\x42\x3d\x03\x5a\xb2\x59\x73\x46\x1e\x24\xd7\x4b\x73\x4b\x24\x7f\x9b\xc9\x4c\x97\x6a\x30\x63\x80\xe9\x91\xae\xcc\x38\x2f\xdd\xf5\x0a\x43\xac\xa2\xdd\x2e\xee\x7f\x5f\x3d\xed\xb6\x7f\x3e\xae\xba\xa6\x34\xd5\x2e\xcf\xd3\x9e\x87\x3d\x99\x9c\x09\x8d\x4e\xc1\x55\xfb\xe1\x43\xdd\x96\xea\x25\x2b\xf6\x0b\x27\x2a\x30\xde\x67\x07\x24\xcd\xff\x64\x6e\x0a\x46\x84\x18\xc9\x5d\x5a\xf2\xca\x7e\x4e\x17\xd3\x1d\x8d\x42\x44\xc0\x96\x79\x5c\xc3\xb5\xc3\x3f\xcf\x56\x3d\x99\x28\xe0\x5c\x06\xce\x8f\xbe\xc6\x42\x51\x9f\x2a\x35\x51\x90\x4a\x0c\x3c\xea\x12\x6a\x84\x9c\xaf\xde\x07\xd5\x64\x63\xf3\x37\xa2\x31\x41\x74\x50\x97\xef\xf4\x77\xa1\x46\x82\xa5\x03\x6e\xaa\x0c\x5e\x91\xa4\x1b\x07\x65\x7c\x3d\xd3\xca\x96\x7c\xba\xe7\x94\x42\xbd\xe4\x5d\xe9\x84\x89\x42\xb0\x58\x2c\xe7\x2f\xef\x6a\xc8\x27\x7b\x5f\x14\x49\x8b\xf5\xb0\xf6\x8d\x0d\xd7\x55\xe7\x9b\xaa\x3c\x6c\xc5\xbe\xbe\x2c\x73\x33\x51\x1c\x10\x6d\xc5\x7a\xb6\xcf\x59\xfd\x58\x81\x29\xab\x97\x71\x1a\x27\x8a\xb9\x95\xea\x38\x60\x50\xaf\x16\x39\x74\x84\xa1\x26\xe2\x21\xc3\xe0\xa6\xcb\x53\x4d\xcf\x03\xdf\x8b\x2b\x3c\x52\x4f\x58\xa2\x36\xc2\x7f\x99\x88\x6b\x6a\x73\xe7\x08\xfa\xa6\xa8\x64\xe7\xdb\x12\x97\x8d\x6b\x9d\x11\xe7\xd6\xa0\xbd\x3c\x5c\xc1\x51\x12\xf1\xd0\xc1\x18\xb6\x19\x54\x8f\xed\xe2\x19\xa0\x78\x7c\xaf\x34\xa4\xc1\x10\xe8\x39\x5d\x5f\x51\x92\x46\x9c\xf6\xf2\x9b\xcd\x5a\x6f\xab\xec\xd8\x07\x98\xc6\x33\x2c\x01\x2d\x1c\x17\x81\xf5\xcf\x2f\x04\xc6\x5d\xc7\x34\x91\xb6\x48\x38\x2b\x0a\xa8\x7a\x86\x93\xc9\x8c\x4d\x53\x81\xb8\xb3\x9d\xcb\x24\xce\x3b\x39\x7f\x9b\xdc\x5b\x71\x6f\x08\xfd\x00\x8c\x96\x39\xbf\x77\xfe\x37\x04\xd3\x32\xf1\x73\x34\x43\x61\xc6\x41\x20\xd9\x77\xe2\x31\x75\xe1\xf6\x1b\xc4\xc7\x9b\xf2\xcb\x78\xe7\x9c\x3c\x84\x24\x1d\x57\xf5\x9d\x0d\x6c\x4c\x32\x79\x91\x24\xb6\x56\xbd\x1d\x59\x7c\xbe\x2e\x10\x7e\x31\x5a\x52\x30\x34\x0b\x76\xe6\x23\xfd\x75\x13\xa9\xc0\xaa\xc4\xaf\x0b\x93\x15\x59\x83\x62\x2d\x56\x5f\xd7\x77\xa0\x69\xd4\x45\xc1\xef\xc4\xbb\xd7\x3f\x99\xdc\x26\x8c\x3c\x53\xcd\x8f\xb2\x19\xd1\x64\x99\x48\xc5\x06\x77\xe4\xfa\x5c\x34\xcf\x50\xf7\xa4\x3e\xff\x8c\xfe\x35\x19\x55\xe5\x4a\x05\xba\x50\xcb\x40\x34\xdc\x75\xd1\x21\x41\x20\x62\x53\x36\x60\x8f\xfb\x8e\xa6\x15\x23\x40\xc8\xbb\xea\x3b\x03\x70\x94\x49\xf3\xfc\xeb\x56\xae\xaa\x33\xc1\x62\x12\x06\x56\x8b\x4d\x95\x17\xf6\x73\x4c\x12\xe3\xe4\xb7\xb6\x0e\x06\x30\x79\xf9\xf1\x58\xc6\x44\x46\xc4\x58\x7e\xb3\x72\xac\x9f\x62\x62\xa2\x95\x95\xe2\x5c\xde\x3d\xfc\x31\x6a\x09\x68\xa2\xbc\xb6\x95\xcd\xd5\x8c\x86\x24\xa6\x82\xfb\xaa\x90\x65\x75\xae\x1b\x91\xff\x9e\x15\xda\x96\xaa\x4c\xbb\x2a\x83\x24\x75\x50\xe8\x2b\x68\xae\xf2\x53\xf7\x2a\x8c\xc4\xb8\x23\x9e\x6a\xa8\xac\xa6\xcf\xf8\xd1\x99\x63\x70\x3d\x8a\x53\x0d\x6a\xec\x22\xc4\x8c\x47\x4a\x77\x65\x60\x1f\x2c\xe2\x98\x69\x11\xb0\x61\x6a\xc9\x6f\x9a\xfe\x36\x21\xd1\x38\x3c\x5e\x88\xd4\xc4\x61\x9a\x62\x59\xa0\x25\x95\xb9\xce\xf6\xfb\xfe\xcb\x44\x2c\x41\x84\xa2\xa5\xbf\x2a\xf0\x7c\x1b\x93\xd8\x98\x38\x0e\x0d\x82\xae\xae\xb2\xe6\x45\x74\x8f\x1b\x27\x56\x49\x7c\x4c\xc5\x34\x7e\xd8\x58\x45\x4e\x89\x01\x9d\xe1\xfe\x0c\xf1\xed\x20\x31\xdf\x79\x5b\xee\x67\x25\xe4\x4d\xcc\x95\x46\x3a\xcf\x6f\x57\xa3\xaf\x99\x44\x21\x1a\xdc\x88\x87\xb0\x11\x4c\xbb\xf4\x86\x34\xe8\x26\x4e\xb4\x66\xc6\xf3\xdc\xd6\x70\x51\x8a\x6e\xe2\x94\x02\xf1\xdc\x4f\xa7\x3c\x77\x09\xe8\xcb\x08\x07\x26\xb2\x48\x97\x84\xf6\x5e\x27\x86\x42\x47\x62\xfb\xff\xa4\xff\x1a\x56\x2d\xc4\x61\x6b\x14\xf4\xac\xfd\x93\xe8\x92\xef\xfd\x11\xcb\xa9\x7f\x11\x41\x15\x46\x03\x7f\xdb\x2e\x97\xcd\x2f\xe0\x5a\x26\x16\xc6\x7a\xf0\x87\xcc\x33\xcc\x7a\x83\x38\x96\xc4\x42\x97\x47\xec\xa3\xd3\x1d\x7b\xc6\xd2\xfd\x3c\xdb\x15\x4b\x16\x07\x91\x2f\x25\x40\x26\x24\xab\x0f\x81\x02\x72\x9b\x4e\x48\xa2\xed\x68\xf9\x7b\x2b\x0c\x12\xbf\x65\xad\xa7\xed\x9b\x64\x82\xe6\xc2\xce\x49\x6f\x0e\x73\x71\xe3\x49\x21\xb5\x95\x84\xf0\x35\x66\xf5\x64\xd2\x28\x62\xe5\x71\x64\x31\x42\x7f\xc4\x8a\x11\x3c\x50\xef\xc4\xbb\xd3\xea\xd2\x57\x42\x75\xad\xdc\x20\x6c\xbd\x53\xaa\x9a\x26\x6a\x62\xa5\x29\xb2\x54\x58\xe1\xd0\x45\x51\xbf\x41\xb5\x28\xf4\x0d\x9e\x4d\xff\x9d\xc7\x20\x9a\x58\x13\x2b\x5a\xb7\x68\xca\x43\xa6\x36\x6f\xe2\xe8\x97\xec\xb2\x2c\xea\xa6\x3a\xa9\x3e\x4e\x12\x6b\x2d\x30\x16\x57\x3f\x67\xa6\xd9\xe5\x60\x3e\x38\x18\x63\x6d\x22\x84\xaa\xb4\x46\xef\xc7\x75\x2d\x26\x86\x38\x06\x1b\xe3\x54\x2f\xa7\x23\x8b\x0f\x93\xb1\x32\xcc\x52\x21\xd8\x25\x92\xa9\xa1\x60\xd5\xf8\x4e\x26\x8d\xbd\xbc\xcb\x13\x88\xbe\xbc\xd0\xc4\x46\x00\x2a\x03\x55\x65\x79\xe8\x94\x5d\x26\x9e\xe5\x04\x62\x6f\x62\xa3\x00\x4b\x68\x9e\xca\xb3\xc8\x9b\xf3\x00\x07\xea\xed\xde\xcd\x25\x15\xf9\xc0\xaf\x89\x0d\x24\xe0\xb1\xdd\x5f\x61\xf4\xa5\x79\xc0\x22\xac\x01\xc6\xba\x85\xfe\x8f\x16\x6e\xb9\xf9\xfe\xf8\x78\xfb\xe7\xee\xe6\xe1\x09\x95\x89\xee\x57\x4f\x9b\x6f\xeb\x47\x9f\x5a\xe1\x94\x02\xc6\xdc\x54\x59\x14\xa8\xd3\x38\xcf\xac\x68\x38\x4d\x63\x50\xc3\x53\xf4\x4a\x14\x2f\x55\xd9\x21\x96\x38\xe3\x5a\x70\x27\x64\xb9\xcc\x33\x28\x30\x8d\xf6\x28\x32\xfd\x34\xe5\x5a\x4d\xfc\x25\x89\x45\xec\xd7\xd0\xf4\x49\xab\x6b\xc8\x6d\x54\x70\xfc\xfb\x11\x25\x32\xf5\x51\x07\xaf\xb5\x30\xe1\xa3\x33\x3c\x12\x1a\xbd\x5a\xeb\x2a\x5f\x67\xf5\xf1\x74\x71\xa7\x38\x8e\x94\x2b\x8a\xc1\x9b\xdc\x74\xaa\x05\x86\xc7\xa9\x8c\xc2\x41\x34\xdb\x39\x90\x17\x89\x2d\x1e\xa7\x60\x69\x87\x10\x53\xeb\xff\xa8\x42\xed\xf2\x47\xa0\x77\x88\x38\xa9\xfb\x36\xa5\x79\xc7\x8d\x05\xba\xd3\x90\x5c\x5f\x4f\xa0\x0d\x9c\x13\x5b\x85\x8d\xb5\xa5\x6b\x27\x6a\x31\xe0\x9e\xf2\xdd\xe2\x30\xb5\xe7\xeb\x19\x09\xc0\xa6\x34\x1c\x7f\x9b\xdc\x55\x85\x68\x96\x1c\xdb\x0f\xd4\x7a\x7e\x53\x54\xa7\xe1\x1c\x2c\x80\xd8\xbf\x7d\xfd\x80\xb8\x91\xe1\x27\xe3\x26\x91\xee\xdc\xfe\xb1\x7e\x1c\xad\x45\xd7\x23\x49\x22\xc4\x6c\xb7\xce\xd1\xe6\x24\xef\x87\x94\xe7\xb3\xab\x96\x27\x46\x20\x82\xe5\x55\xe4\x27\x5b\xb6\x36\x45\x7b\xf0\x34\xa0\xb8\x93\xe3\x90\x6c\xc5\x4b\x37\x08\x69\xa0\x91\x51\xb5\x02\x55\xb6\x67\xd4\x75\xc7\xff\x67\x78\x1a\x0a\xb4\x8f\x9a\x53\x9e\x1d\x2f\xee\x28\xed\x46\x75\x97\x61\x92\xe0\xda\x46\xc1\xba\x89\x90\x1a\xa3\xbd\x71\xe3\x36\x79\xf4\x1d\x5c\xb3\x20\x56\xe8\xc8\x74\x62\xc1\xa3\x10\x2b\x17\x01\x8f\xfd\x46\x03\x8d\xb1\x99\xf2\x71\xec\x9e\x8b\x38\x88\x9d\x98\xc3\x9d\x78\xbf\x83\xba\x16\x7b\xa8\xbf\x62\x9e\xe8\xcb\x00\x7c\xc0\x25\xb5\x62\xd1\x03\x20\xe7\x88\x0a\x6a\x12\x07\xe2\x52\x19\xcc\x3d\xdf\x66\xfb\xf2\x57\x70\x67\xc3\xa5\xd1\xb1\xea\x9c\xfe\x13\x2c\x8a\xf3\x64\xa8\x54\x62\xab\xe4\x6d\xf0\x06\x4f\xe4\xab\x53\x55\xd8\x47\x99\xac\x0b\x4d\xec\xba\xa8\x6d\xcc\x15\x17\xd8\x74\xe8\x75\x90\x20\xba\x03\x71\x1b\x0b\xad\xd7\x83\xfa\xc3\xff\xe3\xbf\xfe\xce\xa1\xc4\x33\xef\xe9\x8f\xc7\x1e\xc6\x6f\xb8\x8e\x5c\x3c\xdb\x52\xf0\x1c\xc3\xe9\x03\xc5\x29\xaa\xb9\xad\x46\x59\x8e\xee\xea\xd8\x85\x02\x8f\x50\xe8\xf9\x00\x11\x87\x24\xc2\xe3\x74\xbb\x5c\x0e\xc2\x7b\x1c\x74\xaa\x2d\xd4\xea\xfd\xab\xe3\x7e\x1c\xe8\x79\x18\x6e\xb4\x76\xf2\x29\xcd\x5d\xa9\xb3\x5e\xb8\xd9\x24\x24\x8a\xa9\x17\xe1\x72\xc4\xd1\x48\xf7\xe1\x9a\x83\x54\x61\x89\xe0\x76\xbb\xfc\x2b\xdc\xea\x1f\xfe\x3b\xbb\xd9\x27\x81\xd4\x18\xf1\xde\xbd\x96\x88\x5c\x98\xc1\x48\x26\x81\x8a\x64\x3a\x60\x29\x98\x1f\x99\x84\x06\xa1\x2d\xfb\x5b\xdf\xad\x3d\x84\x36\xa1\x21\xf1\xfc\x67\xf7\xf0\xde\xdc\x97\x1a\xc6\x16\x68\x42\xa3\x08\x0d\x6e\xa7\xf9\x57\x95\xfb\x6a\x86\xef\xab\xeb\xac\x78\x6b\x47\x7c\xfb\xf7\xbf\x0f\xfe\x27\x18\x4f\x28\x74\xea\x6e\xad\xd7\xfb\x33\xab\x9f\xb7\xd6\xab\x9d\xbc\x0a\xe3\x09\x43\x5a\xe6\x1a\x77\xe5\xf9\x13\x30\x61\x86\x62\x79\xcf\x73\x56\xb7\xe7\xd4\xd3\x14\xb5\x94\x84\x9c\xda\x58\x55\x59\xd4\xa0\x4e\xe8\x7f\x80\x68\x9e\xfd\x8a\x4f\x42\x23\xd1\xfe\xf6\xb1\xbb\x99\x60\x80\x4f\x9e\x27\x11\xa3\xd0\xd9\x8e\xd7\x20\x74\xde\x89\xc7\x99\x24\x0a\xb5\x0c\x7a\x31\x37\x3f\x63\xaf\x4f\xed\xba\x1e\x2c\x27\xdf\x9d\x0b\x0c\x20\xa3\x81\xb0\xad\x84\x1e\x20\x84\xd8\xbf\x06\x3b\x48\x10\xfd\xab\x13\xdb\xa2\xff\xea\x2d\xf8\xcb\xff\xe1\xee\x1c\x53\x89\xa5\x33\xab\xed\xb7\x9d\x7f\xab\xc9\x8f\xf3\x50\xe0\x1c\xcf\xea\x11\x26\x6d\x32\xb8\x5c\x31\xb4\x61\xac\xf0\x99\x93\xde\x98\x76\xb1\xec\xa3\x19\x6e\xc7\x8d\x25\xe0\x1f\xea\x5c\x8e\x67\x50\x4a\x39\xd6\x4a\x7f\x85\xe6\x09\x44\x3e\x62\xa4\x39\x0d\xb6\xd7\x24\xe5\xa9\x57\x1a\x31\x59\x75\xc0\x4f\xe6\x07\x3a\x4d\x63\xe3\x14\x23\x1f\x47\x2a\x48\x93\x97\x4c\x53\x2b\x93\x78\xcc\xc5\xb9\x2f\xf2\x30\x89\x48\x42\x44\x1c\xf7\x84\xe1\x16\x06\x7a\x31\x0c\xbd\x63\xd4\x1d\xc7\x89\x30\xcc\xa9\x1b\x36\xad\x09\x15\x45\x91\xbf\xad\x24\xa0\x7a\xfa\xf2\xa7\x72\x80\xcf\x1d\x3f\x97\xe4\x91\x95\xc3\xb7\x64\x24\x8b\x42\x3f\x81\x3e\xa1\xcd\x33\xd9\x95\x13\x99\x06\xd4\x9f\xec\x18\x77\xba\x13\xea\xb9\x9d\x73\xe3\xaf\xa0\x82\xd4\x55\x3c\xb7\xa7\xda\x22\x1f\xf2\xde\x9b\x44\x47\xc2\xd2\x53\x22\xc1\x79\xeb\x4e\xd4\x8d\x38\x0c\x75\xad\x4d\xa2\xb9\x95\xfa\x46\xc9\xb7\xac\x68\xd6\x88\x5e\x30\x59\x5f\x9b\x34\x7a\x2e\x9d\x26\x08\x5e\xda\x8b\x03\xac\x0a\xfd\x98\x8b\xf3\x7d\xd9\xdd\x2b\x35\x6c\x50\xba\xda\x9a\x40\x22\x2b\xea\xf9\x60\x72\x02\x2a\xec\x19\x05\xbf\x0a\x4b\x55\xf1\x21\xa7\xe0\xfc\x88\x1a\x66\xa5\xee\x77\x46\xe4\xb9\x14\x9e\x81\xd8\x24\xc6\x89\x6d\x39\x52\x2c\x0b\xfa\xbd\xfc\xce\x93\xe4\xe1\xe0\x73\x1b\x43\x2d\x29\xe9\xa9\x70\x5c\xb8\xf3\x1f\x35\x25\xb1\x32\x6c\x40\xac\x36\xef\x38\xa6\x81\x4c\x91\x88\xeb\x7b\x51\x5b\x5a\x54\x73\xca\x17\x4d\x03\x87\xe3\x64\x5c\xd2\x40\x45\x46\xf7\x91\xb6\xaa\x5e\x3e\x97\x5d\xf1\xb4\x49\x03\x70\xa1\x73\x14\xe7\x1f\x72\x81\x9a\x94\x12\xab\xc0\xa8\xcb\xb7\x62\x9b\x4d\xd7\x6c\x4a\x45\x9c\x3a\x2a\x1b\xe7\x07\x8a\x09\x12\x2a\x65\x4c\x46\xc3\x84\x86\x9d\x4f\x93\x3e\x22\xb6\xc8\x55\xd1\xb4\xf6\xa4\x0b\x57\x44\xe3\x15\x9f\x32\x61\x69\xb5\x85\xfe\xf7\xa9\xb6\x55\xae\x57\xad\xdb\xfb\x50\x0c\xfc\xda\x94\x09\x83\x31\xf5\xcd\x73\x76\xc4\x58\xc6\x00\x73\x3e\xfa\xaf\xff\x42\xc3\xf4\xc5\x38\x7e\xf1\x41\xdb\xe8\xc2\x29\xbb\x8d\x49\x19\x30\x0c\xbe\x7d\x2b\xcb\x97\x59\x26\x8d\xc9\xe7\x0e\x83\x80\xfa\x8a\x91\x76\x56\x7c\x3d\x9d\x17\xa7\x6e\x8b\x4a\xc3\xd0\x52\x34\x5a\xca\xaf\x13\x16\xf6\x3e\x37\x5d\x6b\xaa\x4d\xda\xef\xbe\x98\xbf\x76\x4d\x71\x94\x60\x08\x4e\x9d\xea\xa6\xd4\x99\x28\x7e\x40\x95\x99\xf3\x64\xe8\x93\x84\x85\x81\xab\xd1\xbe\xcd\x8a\x97\x2f\x73\x10\x21\xdf\x37\x25\x56\xb4\xd5\x73\x42\x99\x34\x51\x16\xcc\xe9\x49\xee\xaf\xce\x48\xc2\x37\x7f\x90\xa7\x89\x71\x90\x0b\xa7\x66\x64\x0b\x24\xc6\x0f\x94\x0a\x46\x79\x17\x24\xff\x2f\x3c\x8a\xaa\x29\xa0\x1a\xd8\x7b\xa9\x60\x26\x75\xd4\x06\xcf\xe8\x7f\x8c\x9e\x52\x44\x81\x8a\x7b\x49\x2d\x44\x86\x8d\xc8\xb4\x27\x50\xc8\x54\xa4\x81\x76\x51\xfc\xeb\x4a\xbc\x41\x75\xb1\xff\xa7\xc2\x00\x3a\x57\xa7\xa2\x67\x42\xff\x60\xf5\xca\x20\xb5\x8a\x4b\xab\xcd\xea\xe9\xc7\x6a\xb7\xb8\x7b\xf8\xee\x95\x22\xdb\x56\x05\x43\x1a\x46\x8c\xb3\xd7\xbb\xa6\xdc\x39\xae\x88\xae\x63\x6c\xc5\x43\x64\xa6\x57\x77\x0f\xf7\xdb\xbb\xce\xea\x4c\xa5\x54\xb8\x45\x9d\x0a\x29\x0a\x87\x83\x9a\x4a\xa7\x99\x54\x45\xc0\x5d\x5a\x00\x33\xaa\x16\x68\x3c\x36\xc3\x52\x25\x13\x0c\x04\x3a\x3e\xef\x47\xcb\xf0\xf9\xd1\xab\x29\x99\x7a\xc9\xc3\xf6\xdb\x65\x15\xe8\xcd\x10\xc2\xed\xba\x69\xa3\x51\x99\xf8\xa6\x2c\xad\xe9\xb8\x72\xc0\x88\xd5\xeb\x20\xb6\x38\x7b\x32\x4e\x7e\x10\x20\xc1\x34\xee\xee\x54\x20\xea\x60\x32\x55\xc0\x68\xdc\xef\x77\xe2\x98\xed\x1e\x91\x10\xb9\x73\xd1\x52\xc3\x2c\x0c\xe5\x6a\xbb\xfc\xb1\x7a\xfa\xb1\xf6\x55\x87\x26\x6d\x7d\x58\xcb\x34\x5c\xbc\xfc\xfc\x88\xc3\xd6\xa4\x46\x25\x98\x61\xfa\xfe\x6d\xe9\xae\x14\x24\x50\xe8\xd9\x0c\xb8\xbf\x30\xad\x17\x76\x1d\x98\xc0\xc3\x4c\x97\x37\x22\xcb\xb3\x62\x3f\x71\x36\x04\x31\xee\xb4\x83\xe6\x7b\x56\x34\x16\xaa\xdf\x71\x30\x7e\xba\x51\x88\x80\x0a\xe4\x76\x44\x93\x71\x55\x68\x6f\x77\x8a\x80\x73\xb4\x02\x7e\x66\x79\x7e\x1e\xf8\x27\x22\xd0\xb1\xb2\x55\x90\x59\x61\x0f\xc1\x17\x28\x1c\x22\xdf\x75\xa1\x84\x0a\x0f\xb7\x29\x73\xf8\xe0\x68\x15\xd4\x15\xcd\x5a\xc4\x35\xe6\x2a\xc6\xc3\x25\x68\xca\xb4\xab\xa5\xb6\x3c\xfc\xfe\x17\x58\xc0\x1d\x1d\xae\x7b\x80\x7a\xec\x28\x0b\xc6\x6c\xc9\x92\x7a\x7e\xb1\x6a\x00\x57\xf3\xf3\x4f\x30\x11\xe1\x31\xb1\x81\x46\x67\xaf\x37\x03\xa1\xbd\x49\x3f\x0d\xb8\x3f\x38\x04\x52\x0d\xd5\x6d\xa6\xa0\xa8\x61\x02\xed\x71\xdd\x43\x22\x31\xe6\xf1\xfd\x7e\xbd\xb5\x72\x8a\xfe\xc9\xc2\xc0\x32\x78\xec\x06\xac\x32\xf6\x11\xc7\xa4\x32\xe3\x93\x59\x84\x8c\x2b\xe2\x72\x9d\x57\x42\xbd\xdc\x94\x95\xdb\xeb\x9e\x44\xa1\xcb\xc3\x78\x11\x8a\x28\x26\x92\x0c\xf6\x84\x6d\xb9\x5e\x2e\x1e\x97\x22\xcf\x3b\x25\x36\x23\x22\x20\xa2\x2b\x63\x41\x89\xfc\xc9\x4b\x47\x10\xa1\xa9\xae\x41\x79\x1c\xc6\x05\x48\x67\x32\x9e\x91\x09\xa3\x9e\xba\xf6\x1a\x54\x76\x10\xf9\xf4\xbb\xc6\x84\x30\x9f\x85\xc7\xbc\xac\x5d\xd2\xef\x53\x7e\x8a\xb6\xa7\x45\x30\xed\xa1\xb9\x2e\xd5\xa2\x46\x80\x40\x1c\x4e\xef\xa7\xac\x29\x6d\x09\xbd\x9d\xdc\x82\x7f\x4b\x4e\x25\x9a\xc4\xcb\xac\xd0\x0e\x48\xdf\x35\x09\x8a\x54\x9b\xd6\x63\x5c\x54\x4d\x56\x37\xb5\x87\x81\xcf\x5a\x48\x22\x25\x14\x13\xf2\x59\xbd\x38\x35\xe5\x4d\xd9\x1a\xd3\x1d\x05\x8b\x11\x29\x8b\x71\xde\x59\x46\x9a\x21\xca\xd0\x77\x48\x93\x98\x78\x2a\xd3\x17\x70\xda\x28\xf3\xdf\x3c\x15\x09\x66\xcb\x1a\x4f\x8f\x96\x7b\xd1\x10\x23\x52\x13\x20\xac\xb5\x29\x5b\x4f\xe5\x4b\xcf\x7a\x63\x84\x10\x71\xe4\x82\x44\xab\x42\xaf\x55\xe9\xf4\x44\xc7\x63\xd6\xee\x46\x29\xc2\x29\x30\x8a\x6a\x25\x10\xfd\xdd\x25\x95\x36\x47\x56\xb4\xdb\x6b\x59\x65\x50\x3f\x98\xeb\x81\x74\xfe\xd4\x80\xf1\x47\x84\x90\x9c\xe2\xf4\x5e\x15\x4d\x05\xc7\x0a\x0a\x38\x55\x9b\xe7\xf2\xd8\xdd\x19\x12\xd4\xb5\x5c\x2e\x6e\x6f\x7f\x19\x68\x12\x2a\x01\xc4\x7c\x54\xa2\x18\xe9\xa2\x78\x97\x57\x28\xb0\x72\x5a\xfd\x11\x3a\x55\xb6\xbe\xb0\x18\x04\x48\xe3\xe1\xad\xd7\x59\x7d\x6c\x1d\xdc\x5e\xad\x7a\xfc\x05\x8c\x93\xc4\x58\x9c\x74\xd6\x6c\x84\x81\xaf\x27\x51\x39\x53\x92\x12\xdf\x29\xe5\x08\x81\x39\xf6\x34\x4e\xc3\x59\x26\x49\x64\xb3\x31\x0d\x88\xc3\xf6\xad\xfd\x1a\x26\x7b\xef\x1a\xb5\xc4\x29\x58\xe1\x2a\x66\xfe\xcf\x41\x62\x0b\xee\x1c\x3f\xb6\x4d\x3a\x8c\xb6\x38\x49\x09\x43\x32\xa6\xdb\x93\x7a\x19\xa6\xca\x25\x73\x26\x55\xbb\xc1\xd4\x1b\x50\x65\xa1\xd1\xb0\x5d\x15\x1a\xf4\xd5\x79\x60\xd8\x4a\x26\x12\xa4\x06\xb1\x09\x9b\x49\x3d\xaf\x64\xc2\x1e\xf7\x9b\xc7\xd5\x72\xbd\xb8\x5d\x6f\xb6\xbb\x87\x7b\xbf\xae\x64\xc8\xa5\x1c\x70\xa3\x74\xe4\x62\x58\x04\xee\xfb\x68\x0a\x0e\x25\x70\xe7\xff\x16\x25\x3a\x48\x3c\x3f\x78\xa6\xe0\xa1\x80\xf1\x44\x18\x3f\x44\x9c\x24\xc2\x07\xc8\x3b\x0b\x56\xc6\x32\x45\x3c\xf5\x61\xf7\x2c\x2a\xdd\x09\x18\x1a\xc9\x21\x44\x42\x26\xa8\x4e\x28\x73\xb6\x7d\xae\xa0\x7e\xee\x78\x7b\x8d\x4c\x23\x40\xec\x4e\x5e\xee\x6d\xbd\xeb\x0c\x35\xf2\x68\x2f\x95\x29\x57\x78\xea\xe3\x32\xec\xe2\x26\x3e\xe5\xe0\x3a\x09\x08\x63\x3c\x16\x41\x67\xa7\xc3\x20\xa3\x27\x65\xaa\x43\x27\xb8\x18\x0c\xc8\x6f\x8c\x54\x21\x20\x2e\xf6\xe1\xe7\xfd\xea\xa9\x17\xd6\x33\x52\xe9\x00\xcf\x9a\xe5\xd3\xc3\xcf\xeb\xdd\xcf\xc5\x8f\x15\x1b\xb2\xa6\xb6\x1d\x52\xaf\xe9\x8b\x40\x89\x32\xcf\xc5\x8e\x90\xa0\xfd\xbf\xb9\xa2\x68\xa9\x99\xb4\x7a\xb3\x59\x71\xeb\xd9\xf2\x8d\xd4\x09\x41\x6d\xbe\xe5\x62\xfb\x84\xae\x39\xe8\x9b\xb2\xfa\x09\xd9\xfc\xde\x2e\xb5\x10\xc4\x96\x10\xae\x0b\x54\xd2\xb9\xc9\xf2\x8b\x32\x15\xa9\xb5\xb1\xd5\xea\xe5\x7e\x9f\xc3\x0d\x3a\x80\x6e\x69\xe6\x62\xdf\xfd\x36\x44\xaa\x17\xda\xd9\x96\xc7\x4c\x75\x03\x03\x22\x46\xff\x61\xb3\x5a\x8e\x16\x12\xa8\x04\xdd\xe5\xed\x33\x7c\xad\xba\xf4\xbd\x34\x5a\xa3\xc3\x78\x5f\x36\x65\x01\xfb\xb2\xf2\xae\xbe\x22\x81\xf2\x02\x35\x37\x98\x43\x19\xcc\x7d\x45\x64\x84\x7b\xcb\xb2\x3a\x1f\x9b\x92\x04\xa4\x6f\x30\x94\x0f\xca\x9d\x07\xee\xc0\x4c\x9a\xad\xed\x1e\xb2\x0e\x5c\x8c\x19\x85\x11\xc0\x66\x34\x86\x8a\x38\xcc\xd7\x48\x30\x20\xa0\x23\x77\x43\x05\xdc\x24\x36\xda\xad\xad\x69\x30\xe3\x1d\x24\xf3\xbb\x9b\xa2\xa1\xf4\x14\x9d\x4f\x1d\xd5\x42\xd2\x35\x02\xd3\x9d\xba\x83\x55\x1a\xb3\x69\xda\x2f\x93\xbb\x28\x57\x0e\xf3\x75\xd5\x49\x51\x1b\x45\x4d\x84\x31\x5e\x8c\x21\xae\x0e\xc7\xbc\x3c\x03\xdc\x65\xfb\xea\x63\x5d\x3b\xa3\x58\x1c\x48\xe5\x97\xcf\x4d\x85\x2a\x74\xbe\x49\x50\xa1\x7b\xc2\x80\x5d\x93\x41\x85\x24\xdb\x63\x2a\x0b\xc5\xda\x5d\xa0\xdd\x0d\xa1\x52\xf3\xdb\x84\x62\x8a\x05\xc6\x45\xfa\x3c\x49\xdf\xa8\x9e\x4b\x85\x09\x89\xbc\xa0\xbe\x43\xa1\xfa\x16\x91\x22\x58\xe2\x51\x34\xcf\x18\xf3\x1b\x9c\x34\x7e\x17\x50\x31\xb7\x19\x36\xdc\xb3\x1e\xa1\x5a\x0a\xd3\x4d\xa5\xd8\x00\x1e\x13\x77\xe2\x2c\xdb\xb6\x51\x25\x90\xeb\xc3\x23\x89\x7e\xc7\xe6\x2d\xab\xeb\x6d\x75\x1a\x13\x2f\x28\x9e\x72\xac\xda\xcd\x45\x8d\xc2\xc9\xb9\xe5\x9d\xf4\xad\x2a\xc4\x28\xf0\x63\x55\xae\x97\x0f\x03\x9a\x3a\xa3\x92\x20\x8d\x58\x97\xbe\xfc\xfa\x49\xea\x6c\x46\x1c\xdd\xa8\x84\x25\x84\xfa\xc0\x50\x23\xf2\x9f\x90\x6d\xcb\x2b\xb8\xee\x48\x9f\x26\x11\x6b\x95\x24\x01\x2e\xce\x9f\x13\x9e\x10\x87\x09\x1f\x6f\x06\x2a\x31\x12\x1d\xe7\x3b\xa8\x5e\x72\x58\xd8\xb2\xaf\x8f\xeb\x09\xe7\xd7\x8c\x60\x11\xc2\x35\xfe\x7e\x12\x23\x3a\x00\x25\x54\x14\x3a\xb7\xbc\x5d\x47\xb8\xeb\x8e\xf6\x6e\x25\x89\x46\x68\x0e\x4a\xdb\x7c\x19\xac\x04\x45\x22\xe5\x10\x59\x4f\xa0\xb3\x0a\x54\x33\xb0\x1c\x7c\xa7\x80\x62\x61\xa5\x6e\x0d\x29\xff\xa3\x2a\x89\x31\x38\xbd\xb9\x7b\xbc\xdd\x6e\xb6\xa3\x07\x52\xa0\x71\x70\x70\xe7\x46\xcd\xaf\xaf\x8b\x8d\xb5\x4a\xd7\xf7\xbb\x9f\xab\xf5\xee\x6e\xf1\x87\xef\xac\xa3\xd8\x9a\xca\xf8\xe5\xb6\x59\x0e\x97\x11\x85\xe1\x7f\xdd\xb8\xb8\x76\x27\x37\x1b\x87\x7f\x9b\x49\x93\x2b\x1d\x47\xb1\x03\x89\xf7\xb1\xd2\x9b\xaa\x3c\x6c\x40\x35\x1d\x27\xd9\x78\x98\x81\x6a\x4c\x40\x3e\x96\xde\x39\x55\x00\x21\xde\xe6\xfa\x54\xec\xa1\x2c\x9e\x4e\xc5\x22\x3f\x3e\x7b\xf0\xaf\x32\xd4\x60\xd4\x40\x8d\xb5\xce\x7d\xab\xd0\xb1\x3b\xfc\x7f\x2b\x65\x17\x07\x18\x7d\x20\x4d\x38\x24\xa4\x47\x1a\x16\xfb\x9f\xc2\x22\xc3\x1e\x8c\x8b\x2e\x8c\x3e\x89\x26\xa9\x74\xa8\x2a\xa1\xab\xd3\xb1\x13\xae\x32\x9a\x88\x04\x11\x82\xb7\x59\xdd\x64\xc5\x7e\x89\xf1\xa0\x1c\xe6\xb5\xf8\x8c\x26\xc6\xc2\xb9\x51\xb5\xc1\x79\x29\xc3\x4d\x58\x53\x02\x98\x3b\xb8\x7d\x58\xfe\x3e\x0a\xb8\x68\xca\xb8\x97\x21\xdf\xbe\x4f\x4a\x33\x34\x65\x1a\xa1\xab\x16\xfb\x1a\xec\x6e\xd6\xf7\xeb\xcd\xb7\xee\x52\x1d\x61\xb8\xe3\xe1\x98\x15\xad\x75\x32\x98\x3c\x9a\x19\x8e\x80\x8f\x5d\x56\x2f\xcb\xaa\x9d\x91\x7f\x3f\x89\xaa\x81\xea\xea\x74\xce\xa6\x3f\x13\x52\xa3\x5d\x94\x74\x99\x97\xa7\x89\x75\xfc\xb7\xcb\x89\xe4\xae\x8b\x02\x61\x11\x78\xe8\xf2\x0c\xd8\x27\x8d\x8e\x83\x0e\x99\x8b\x76\xca\x6a\xbf\x1f\xd2\x69\x1a\x1d\xcb\x98\xf0\x6e\xc2\x3a\xf7\x73\x51\x3f\xa2\x4c\x56\x9f\x5b\xee\xff\xbf\x0e\xd9\x32\x1f\xc9\x76\xb7\xe5\x92\x06\xe0\xe8\x9b\x45\x71\x5e\x8a\x63\xd6\x53\x45\x68\x2e\x53\xb4\xd7\x5a\x77\x32\x9f\x22\x8e\x34\x97\x06\x4d\x98\x62\xa2\xdc\x69\x34\xd7\x21\xa6\xca\x6f\x44\xe5\x76\x0d\x24\x20\x73\xad\x09\x25\x9e\x2e\x75\xa3\xca\xaa\xbb\x5f\x12\x05\x11\x74\xdb\xe1\xe9\x80\x86\xf3\xc4\x2b\xd0\x89\x4a\x70\xda\x63\x7e\xb6\x7c\x9f\x57\xce\x34\x3a\x31\x7a\xa0\xe7\x33\xb7\xe9\x8d\xfb\xa7\x34\xd2\x2e\x77\xd3\x2b\xa8\x79\xc1\xe4\x4f\x4d\x54\x9d\x26\x36\x1b\x5d\x79\xb5\x59\xbf\x08\xb5\xa0\x1a\x63\x31\xff\x16\xea\xe5\xb1\x6c\x96\xdd\xdf\xa3\x10\xfd\xd0\x3f\xaf\x47\x3b\x98\x16\x2a\x46\xcc\xf2\x7f\x2e\xa4\x20\x8c\x96\x24\xe5\xa4\x53\x3c\xb7\x41\x59\xdf\xa4\x43\x04\x37\x54\xb6\xbc\xea\x63\x12\x5f\xa3\x15\x4b\x90\xaa\xde\xce\xc0\x6d\xae\xb6\xf9\x38\xb6\x3b\x9e\xb0\x4a\xdb\x72\xf0\xa7\xc5\x3f\x56\xbe\xd0\x51\xeb\x50\x5b\xba\x7b\x7b\xa0\xe0\x59\x79\x81\x42\xfa\x90\x11\xd4\x68\x48\x62\xaf\x79\xf1\x4d\xd4\xcf\x17\xc5\xad\xbe\x9b\x34\xbe\xb8\xe1\x03\xda\x09\x6d\x04\x60\x97\xdd\xb1\x02\x57\x5f\x0c\x1d\x56\xfa\x53\xa4\xb7\x36\x32\xf1\x0a\x70\x3f\xa0\xd0\x65\x75\x59\x05\xd9\x9b\x99\x40\x08\x47\x9a\xe4\x5d\x8f\x33\xea\xd8\x06\x26\xd4\x65\x89\xbf\x04\x18\xb3\xf8\x2b\xcf\x65\x62\x79\xa9\x6f\xc1\xf8\x65\x02\x01\x05\x3e\x4c\xa5\xfc\xac\xca\x62\x3f\x4c\xae\x8f\x1f\x1a\x82\xd0\x52\x9f\xa8\x1c\xc4\x07\x16\x1f\x04\xdc\x65\x1f\xac\xee\x78\x93\xe5\xf9\xba\xb0\xf8\xba\xee\x67\x93\x30\x60\xfe\x5c\x9e\x17\xca\x9d\x9d\x3d\x10\xe8\x50\x75\xf4\x4e\xca\x22\xfb\xd8\x1c\xe1\x9e\x01\xaa\x80\x74\x65\xac\x39\x8a\xf7\xcc\x94\xff\x00\x4b\x04\xc2\x76\x8e\x48\xab\xfe\x13\x21\xfd\x17\x19\xbd\xcb\x39\x04\x21\xa7\x44\xf5\x7e\x0e\x20\x65\x87\x9e\x7f\x94\x38\x95\x18\x8e\xb3\x42\x5b\x17\x4a\x13\x1f\x25\xfc\x86\xbb\x2f\x70\x12\x7a\x60\x73\x4f\x30\x70\x53\x56\xdb\xf3\x71\x9c\xad\x80\x84\x48\x5c\xc3\x05\xbc\x2d\x0f\xa2\x9e\x7f\xa4\x44\x58\x20\x9d\x9f\x4e\xae\x10\xc4\x86\x61\xe7\xc7\x3e\x91\x71\x64\x4b\x77\x4f\x45\x53\x65\x50\x0f\xeb\xa0\x21\x0d\x6d\x98\xe3\xe1\xf7\xd5\x70\x47\x81\x34\x91\x10\x0c\x69\x2d\xd6\x17\x47\xf2\xd0\xbc\xe9\x7f\x2e\x55\x1c\x0d\xad\x3f\xd6\x5b\xbf\x6d\x81\x4a\x03\xe5\x9c\x69\x14\x65\xca\x7b\xfc\x15\x68\x1e\x63\x40\xa4\x29\x37\x79\x6b\x20\x8f\x5e\xd7\x10\x6e\x05\xc5\x55\x49\x1d\xd3\xb8\x1e\x52\x12\x81\x21\x40\xad\xa2\xdf\xd3\xef\xab\xed\xfa\xfe\xeb\xae\x1e\xf2\x03\x19\xc2\x12\x88\x1d\xdb\xde\x4d\x59\x3d\x74\x7a\xc4\xf3\x83\x65\x48\x6c\xd0\x48\xb0\x2c\x86\xd6\x1a\xb1\x00\xf3\xa1\x6c\xa8\xeb\x1c\xc4\x96\xfe\xba\x29\x37\xd9\x7e\x88\x00\x37\x01\xe7\xa8\x88\x65\x77\xcb\x99\xe2\xe6\xc1\x54\x36\x01\x10\xdd\x69\xcc\xd9\xd8\x78\xff\x86\x26\x30\x81\x0b\x35\x35\xe0\x03\x4d\x86\x06\x16\x5f\x92\x1d\x1e\x3c\x99\x63\xfb\x47\x15\x47\xa3\xf2\x8f\x55\xa1\xcb\xb7\x03\x4c\x31\xaf\x86\x32\x86\x97\x63\xe5\xf5\x0c\x93\x9b\x61\x82\x24\xbd\xc4\xdc\xcd\xe2\xf1\x83\xe1\x0a\xe3\xae\x52\xc7\x2a\xdf\xe1\xce\x30\x39\xd4\x4d\x28\x93\x30\x1d\x82\xfb\x2f\x99\x1c\x4c\xa8\x24\x12\x47\x6d\xbe\xad\x1f\x77\x9b\xdb\x87\xad\x0f\x9b\x98\x88\x73\x16\x0f\xc5\x7d\x6b\xb4\x88\x71\x9a\xcc\xb8\x23\xfe\x18\x30\x91\x36\x86\xfa\xd2\x07\xd0\x99\x25\xaf\x1c\x4e\x2f\x13\x81\x45\xd7\x68\xa8\x46\xda\x2e\xc6\xc4\x92\x41\xe2\x55\x10\x9e\x84\xfa\x00\x05\x6d\x78\xa8\x62\x3d\xd0\xb8\x72\xa5\xba\xfe\x36\xbc\x3d\x61\xed\x72\x55\x2f\x1b\xc8\x7f\xc1\xf0\x67\xb8\x11\xc8\x4a\xf0\xb5\xd4\xff\x6d\x0d\x9f\xf6\xdf\x51\x9a\x7c\x1e\xc6\x65\x12\x65\xa5\x84\xd6\x2f\xa7\x4a\xb8\x02\xa8\xce\x53\x36\xa9\xb4\x6a\xdc\x56\x6d\xf4\xfe\x72\x22\xa7\x90\x5a\x30\x6c\x79\x7c\x38\x36\x43\xea\xb1\xc9\xf3\xa5\x26\x24\xe8\x0e\x23\xc1\x80\x03\x54\x7c\xd0\x57\xc6\x14\xd3\xef\x7a\xa1\x2f\xb8\x3a\xbb\x2e\x9c\xda\xf4\x8c\xc8\xb3\xc3\xc1\x96\x3f\x4e\xba\xb4\x5b\xde\xff\xfb\xff\xfe\xdf\x62\x79\x3f\x0a\x2b\x19\x69\xa2\x94\x0d\xd1\x04\xef\xea\x22\x12\x6c\x14\x89\xd1\xf6\x29\x8f\x50\xb8\x1a\x2b\xdf\x22\x52\x44\x82\x39\x45\x76\xa7\xe3\x3a\x7e\x03\x25\x05\x66\xd3\xac\x29\x78\x0f\x6f\x77\x59\x81\x10\xe1\x61\x71\xb8\xef\xab\x00\x79\x60\x76\xa7\xe2\x28\xd4\x4b\x3b\x65\x2e\x74\x95\x8d\xd1\x44\x63\x6a\xcc\x31\x2a\xed\x5c\x4d\xca\xce\xe1\x46\x77\x4d\x76\x00\x5b\x4a\xe4\x9f\x13\x58\x8a\x36\x8f\x65\xea\xec\xfe\xaa\x09\x72\x97\x16\x65\xa7\xfe\x6f\x0c\x00\xb5\x15\xd7\x58\xcb\xb1\x6a\x9e\xb7\x65\xaf\x09\xfb\xf3\x9b\x27\x46\x9a\xca\x52\x8d\x35\xb9\x8d\x31\x8c\x99\xd0\x51\xd8\xda\x3c\xed\xdc\xd9\x9e\xf8\xde\x11\xf1\xd8\x56\x07\xe8\xbd\x29\x2b\x9b\x13\xab\xfb\xba\x65\xf7\x43\xfe\x14\x46\x8e\x2a\x17\x2a\xab\x06\x51\x1d\x49\x08\x89\x0c\xa6\x06\x90\x56\xcb\x9d\x6e\x4e\xdd\xae\xeb\xa2\x12\x94\x22\x5f\x17\x59\x73\xd5\xb3\xdf\x7e\x96\x33\x6d\xaf\xd2\x80\x95\x52\x56\x18\x0e\x8d\x9c\x5e\x19\x4e\x12\x12\x04\x0c\x3d\x40\x27\x57\xb8\x2e\xb6\x99\xdb\x0e\xb0\x31\x22\xa9\x3b\x0d\xed\x46\x37\x41\x06\xb4\x7d\x68\x88\x87\x1c\x1c\x4b\xe5\x54\x6e\xda\xbf\x86\x5d\x58\x1f\x51\x9d\xdd\x29\xd1\xb6\x25\xd2\xf4\x59\x37\xfc\x56\x13\x10\x83\x24\x84\xc5\x9a\x75\x01\xb0\xf3\x57\xd1\xc0\x9b\x38\x7f\x39\x0d\x6b\x71\x66\x1c\xb4\xf6\x42\xad\x31\x0c\x02\x85\x6a\x0d\xc3\x91\x21\x24\x09\x09\x09\x47\x91\xf0\xbc\xcc\x87\xce\x7d\xdb\xc2\x2c\x6c\xa5\x86\x46\x74\x64\xf4\xad\x7f\xbe\x6e\xe0\x80\x82\x39\xee\xec\x92\x84\xc4\x24\xf6\x12\x4d\x26\xab\x0e\x9f\x73\x9f\xf9\x6b\x68\x84\xc1\xfe\xdf\x95\xa8\x9f\xfb\x35\xdd\xb6\x48\x9b\x3a\xdb\x09\xad\x71\xdb\x83\xd3\xe1\x03\xb0\x96\xbf\x42\x03\xd1\x1d\x54\x30\x77\x79\xce\x9b\xb2\x5a\x8e\x34\xa9\xdb\x9e\x40\x6d\x6e\xf5\xfd\x79\x2c\xa6\x27\x09\xe1\x44\x20\xc9\x9a\x4b\x96\x42\x01\x26\x53\x99\x18\x14\x80\x8d\x7f\x95\xa7\x01\x4a\xdf\xa0\x20\xe4\x4e\xf9\x1a\xca\x49\xad\xab\x24\x24\x0d\x38\xa2\x45\x90\x80\x63\x85\xfc\x31\x59\x69\xa3\xf0\xe8\x0f\x8f\x07\x26\x55\x11\xbe\xcc\x35\xbc\xbe\x8f\xc6\x45\x10\x8d\x56\x1f\x46\x70\xdb\x17\xfc\x48\x67\xcc\xf7\x4f\xac\xe0\x93\x3c\x5d\x94\xb0\xfd\x05\x65\x58\x77\x13\x19\x50\x96\xf6\x99\xa2\x45\xa1\xa7\x1c\x92\xe3\xf9\x2f\x85\xe5\x36\xba\x16\x99\x2a\x5f\xcb\xb1\x86\xc4\x07\x4c\x3f\x78\x99\x46\x7e\xeb\xac\x0b\x78\xa1\x93\x5a\x9e\x9a\x0b\xe2\x2e\x49\x88\xd2\x1a\xf7\x38\x4b\x95\xb2\x2f\x9d\x9d\x24\x09\xd1\xa1\x42\x9a\xb4\x3a\x2b\xf6\x39\xdc\x66\x05\xa0\x53\xd4\x35\x73\x62\x35\x4a\xcb\x3c\x1f\xd6\x3d\xb7\x4d\x52\xc4\x43\x94\xdd\x70\xdf\x9e\x4c\x5d\x48\x62\x64\xb8\x55\xa2\xd8\x59\x5c\xa4\xbf\x09\xc8\x14\xc5\x3f\x0d\xc0\xd2\x99\xcc\x65\xb7\x7d\x98\x94\x77\xe1\x5a\x10\x87\x47\xa8\x4c\xd6\x2c\x26\xe4\xfd\x92\x04\x44\x27\xe8\xfb\x40\x51\x9f\x2a\x0f\x91\xe8\x2a\x8f\x46\x23\x11\x10\x9d\xe2\x7e\xa5\x44\xb1\x7a\xcf\x9a\xa1\x08\x97\xeb\x11\x50\x30\x74\xa0\x6a\x8e\x2f\xbd\x5c\x6c\xaf\xa1\x6e\x32\xcb\x01\x32\x93\x3f\x6d\x2f\x4c\x05\xb5\x96\x93\xd3\x13\xf7\x7f\x37\x0a\xf7\x66\x5d\x8e\xc2\xe4\x92\x04\x34\x51\x5d\x99\x29\x20\xdc\xc5\xb7\x30\xc9\x30\xc3\xb6\x83\xaa\x2a\x6d\x4c\xcc\xf3\x16\x0d\x67\x5b\xc0\x4c\xcc\x5c\x68\xe7\x3e\x53\x2f\x85\x38\xc0\xd5\x79\xfe\xf1\x98\x11\xa8\xdc\xfa\x9b\xd0\xe8\xf8\xd8\x08\xe4\xfc\xac\x0c\xc2\x28\x44\x2b\xe4\xb5\x52\xfe\x91\x22\x99\x20\x2a\x49\x38\xb6\x83\xad\x78\x81\x45\xfd\x34\x81\x2f\xb5\x1d\x15\x45\xdf\xe8\xe6\xf6\xe1\xe7\x70\x3d\x06\x71\x2c\x31\x06\x80\x02\xe3\x6e\x29\xb6\xef\x72\xf7\xd2\x8d\x55\x6c\x52\x1c\xfc\xed\x73\x56\xf9\x3d\xd4\x53\x86\xb8\x2e\x3c\x30\x22\x1c\xb1\x78\x7c\x85\xc2\x09\x48\xad\x75\xd7\x2b\xb2\xbb\x31\xae\x86\x2e\xe6\xe9\x1b\x15\x41\xdb\xb8\xca\xbb\xb7\xe3\x3a\xc1\xfe\xa2\xae\xa1\x6a\x56\xff\x19\x10\xd5\xcf\x6e\xc7\x41\x42\x88\x49\x86\x56\x0e\x5a\x37\x33\x9a\x7d\xf3\x24\x96\xed\x1d\x02\xc9\x1c\x72\xe8\xee\x6c\x03\xd7\xcd\x79\x5a\xaa\x3e\xfa\xda\x89\xb6\x95\xea\x07\xf1\xbe\x30\x26\xcb\x33\x9f\x93\x95\x24\x48\xa9\x49\xad\xa4\x0d\x86\x4a\x7c\x28\xcd\xb7\x1a\x5b\xa5\xdc\xb4\xe3\x7a\x9d\xd5\xe8\xd5\xfa\x4c\xb2\x24\x81\xe0\x81\xee\xf2\xd4\x16\x36\x1e\x4c\xe6\x8f\x90\x21\xda\xec\xd6\xc4\x98\x44\x7d\x7c\x1f\xa3\x45\x4f\xfd\x7e\x25\x6a\xe8\xe5\x81\xff\xc7\x6a\x15\x49\x02\x49\x18\xce\x97\x21\x2d\xca\xb0\xbc\x77\xe6\x0a\x9a\x7a\x44\x78\x0f\x38\xe9\x48\x1d\x7e\xf1\x6b\x4c\x62\x9d\xcf\xce\x29\x38\x7c\x26\xa6\x3b\x36\x20\xfc\x0d\x92\x84\xbb\x00\x9a\x33\x54\x6f\x4e\xe0\x5d\x76\x49\x02\x15\x13\xc9\x07\xcc\x74\xb3\xde\x82\x24\x81\x66\x1a\x4d\x8c\xd5\xfd\x76\xb4\x7c\x74\x14\x62\x70\xf8\xb1\xcc\xcf\x8b\xec\x57\x4c\x34\x78\x81\xd5\x1d\x3c\xba\x8f\x35\x45\x8b\x04\x93\x03\x3a\xd0\xdc\xf1\xec\x79\x12\xfd\x7a\x5b\xde\x64\x33\x8a\xbb\x9f\xc5\x70\xfa\x17\x81\xc4\xae\xc1\xdf\xca\x6c\x58\x7b\xdb\xb6\x08\x57\xf8\xeb\x14\x11\x1f\x7a\x33\xbd\x6d\x95\x02\x29\xac\xef\xd6\xf7\xbb\xed\xc3\x76\x71\xeb\x30\xa0\xbb\xaf\xab\xed\xce\x13\xa9\x4a\xd2\xba\xf8\x48\xec\x7e\x2a\x32\xd4\xfa\x5a\x39\xc8\x44\xdb\xc4\x02\xcc\xb8\x3f\x8b\x4a\x2b\x71\x5c\x17\x83\x40\xb1\x24\x94\x30\xc3\x3a\x4e\x68\x67\x76\x5f\x39\x5d\x38\x3a\xde\xce\x28\x91\x41\x62\x51\x4e\xaf\x90\x97\xc7\x0e\xa1\xd2\xdd\x4b\x73\x2c\x7f\xda\x79\x9d\xea\xb9\x64\xb8\x24\x34\x50\x02\xb7\xc5\xa7\x93\xec\x31\x86\x92\x50\x9a\x18\x44\x53\x66\xaa\x44\xe3\xcd\x15\x33\xe9\x3b\x87\x39\xf4\xfd\xc2\x90\xa3\xf3\x22\xfb\x2a\xf7\x2e\x39\xd0\x36\x0b\x89\xe9\xe5\xaf\xd6\x7b\xb9\x3e\x35\xea\x79\xaa\x07\xf4\x3f\x7e\xc6\xbf\xb6\x4c\x69\x28\x6d\x25\xce\xd7\x2a\xd3\xe7\xd1\xd0\x44\x01\xc4\xba\x27\x06\xb3\xe9\xfd\x8b\xb0\x64\xdb\x31\xb5\x1c\x2d\x9b\x6f\xeb\xc7\xf1\x1d\x84\xb4\xf5\x25\x0d\x1c\xc9\x53\xbf\xdd\xd1\x48\x29\xa4\x5f\xd5\xae\xf2\xa7\x9e\x7c\xb5\x98\x07\xc8\xaa\x24\xf4\x6b\x56\x97\xd5\xd9\x92\x80\x76\x1c\x80\xfe\x36\x3c\x20\x18\x5b\x7f\x45\x68\xf7\x4d\x96\x8f\xdd\x08\xca\x99\xc6\x78\x9e\xd0\xfa\xc7\xd1\x7c\x98\x6c\xfe\xe0\x5f\xef\x35\xb4\xe7\x3c\x32\xbd\xdb\xad\xc5\x52\xca\xcd\x5b\x96\x43\xcf\x72\x9c\xfa\xf4\xb7\xd2\x9c\x59\xcd\xfe\xce\x56\xf7\x0c\x19\xbe\x07\x80\x55\x0d\xa3\x72\xfc\x32\x29\x4b\xd0\x66\xc4\xac\x05\x66\x34\xda\x7d\xea\xc3\x54\xc2\xe4\x33\xa7\x8a\xaa\xa4\x37\x6c\x77\xa7\xe2\x0d\x2b\x75\x3c\x7c\xe1\x17\x57\xeb\xd4\xcb\x1a\x3f\xe6\xa2\xc9\x8a\xde\x45\x19\xed\x41\x54\x50\xa3\x83\x41\x80\xe2\x16\x0e\xa5\xc3\xcb\xfa\x1e\x9c\x89\x7e\x97\xba\x08\x0d\x0d\x5c\x45\x2a\x0c\x41\x16\x14\x69\x7d\xec\x4d\xef\xb8\x52\x19\xa7\x3a\x76\xe4\x87\x1f\x55\xcc\xb7\xdd\x4c\x88\xa8\x1a\x10\xd5\x6c\x05\x9f\x24\x54\x85\x56\xeb\xc6\x11\xdf\x4c\x67\xa2\x4a\x08\x46\x89\xfc\x0b\x4d\xd0\x89\x92\x50\x2d\x12\x3c\x7c\x75\x26\x0e\x65\xa1\x2f\x8a\x86\xdb\x2e\xd2\x09\x6e\x82\x38\x2c\xbc\x3b\xe3\x5f\x05\x92\x10\xeb\x4f\x8f\x55\xa9\xa0\xae\x37\xd0\x51\x57\xfc\x4a\xcc\x68\xb0\x04\xc1\x30\xc4\x85\x6c\x16\xb7\xab\x60\xb7\xba\xbf\xf6\x77\x37\x01\x20\x21\xb5\x85\xad\x62\xae\x6b\xc6\x36\xa1\x26\x62\xc2\xeb\x55\x2d\xcb\x42\x89\xc6\x91\x6d\xb3\xc0\xaa\x93\xda\x7e\x8c\xb0\x00\x4f\xc1\x9d\xa8\x5f\xfe\xde\x3e\xe3\x50\xf7\x73\x4e\x9b\xc6\x2d\x37\x6f\x78\x31\x12\x26\x38\xbd\xbd\xf0\x46\x96\x43\xdd\xf8\xaa\xe6\xb6\x3d\x62\x98\x3b\xb2\x6b\xcd\x25\xc8\x3f\x3f\xfb\x19\x0d\x34\xee\x26\xff\xf8\xed\xee\x43\xed\xd6\xb6\x5b\x6c\xe5\x22\x6b\x27\xed\x82\x46\xac\x18\x13\x61\x8f\x92\x6b\xfe\x3a\x63\x30\x36\xf4\x06\xd9\x9d\xe5\x06\x1f\xd0\xfb\x4a\xc2\x58\x64\x8c\x1a\x48\x93\xfe\x55\x7b\xc9\x5f\xce\x39\x02\xde\xa0\xd0\xde\x22\x16\xdd\xc1\xc0\x98\x20\x18\x2d\x3c\x8a\xf3\x75\xf6\x5a\x8f\x0d\xb2\xe1\x27\x64\x4c\x58\xde\x4e\xa7\xe4\x39\x3b\xdb\x19\x53\x02\x17\xc4\x6b\xd9\x40\x85\xd5\x0b\xdd\xa7\x0d\x49\x60\x37\x53\x0c\x19\x0e\xf7\x71\x16\x72\x85\x9a\x30\xed\xf7\x3e\x88\x06\x1e\xcb\xa6\xbf\x2c\x0d\x2c\x7d\x5f\x0e\xa2\x3d\xfd\xca\x4a\x77\xc0\x09\xbf\x83\xb2\x30\x4d\x91\x14\x75\xf9\x5c\x96\x35\x5c\xbd\x81\xe8\x2e\xd7\x11\x86\x8a\xac\x8a\xc6\xb5\x5f\x84\xbe\xd5\x30\x4c\xa1\x1d\xce\xb7\xa2\x9d\x9a\x57\x99\xdf\x01\x58\x14\x49\xfc\xe8\xb7\xa7\x6f\xa7\x91\xbb\x3d\xfe\xe8\x71\x68\xeb\xf5\x0f\xe2\x1d\x99\xd6\xbb\x5b\xc7\x42\x62\xe2\xa0\xdd\xa1\x3e\xb3\x16\x5d\x77\x0e\x21\xb2\xb1\xdd\x0d\x0e\x7f\x96\x24\x0c\xf1\x92\x15\x08\xbd\x15\xb5\x55\x81\x04\xfd\x50\x8c\x76\x6e\x96\x12\x86\x05\x68\xed\xef\xb7\x3e\x5e\xf7\x0c\x69\x68\xf1\x66\xba\x2a\x8f\x1d\x05\x6b\xfb\x77\x9e\x44\xd6\x16\x55\x65\xa1\x45\x75\xf6\xeb\xc0\xb5\x4b\x26\x88\x13\x9c\x78\x7c\x78\xb8\xdd\x81\xce\x9a\x5d\xc0\xc6\xbf\xaa\x42\xc9\x3c\xc7\xe3\xa0\xdc\x74\xb0\x6b\x30\x15\x73\xcc\x7e\x66\xc5\x41\xbc\xfb\x9b\x2b\x93\x62\x36\xa8\xc3\x41\xb5\x4f\x37\x97\x75\x96\x84\xe9\x20\x4e\x9d\x26\x04\x2c\x87\x6b\x42\x47\x0a\x53\x09\x8f\x3f\x96\xa3\x25\xe9\x9a\x0d\xb7\x22\xe7\xfb\xec\x15\x4e\xc7\x81\xae\x95\x6d\x0f\x49\x40\x10\x8b\x65\x4e\xb5\x1f\x94\x90\x50\x8d\x6e\xdf\x6d\xf6\x0a\xce\x34\x1a\x57\xd4\xfc\xa5\xe5\x16\x12\xce\x90\xde\xc6\x9b\xd5\x3f\x45\x05\x28\x03\xbb\x39\x8a\x8f\x85\x93\xfc\xc5\x8e\xcc\x54\x9e\xce\x3f\xca\x93\x7a\x1e\xa4\x5f\x7d\x0f\x1d\xe1\xb4\xb4\x08\xdc\xb2\x43\x73\x3c\xa0\xb2\xe0\x2f\xb7\x86\xd1\x30\x85\x41\x28\x7c\xd1\xaa\x4b\x6e\x7d\x15\xb5\x05\xc2\x8c\x7f\x35\xe0\x90\x26\x9e\x72\xec\x47\xd9\x19\x5a\x61\x90\x06\x78\xf2\xec\xf6\xd0\xdc\x37\xcf\xf7\x99\x94\x39\x3c\x98\xb1\xe2\xf4\x60\xb3\x0b\x29\xb3\x98\x39\x9b\x6a\xf2\x8a\x0b\xc3\x89\x15\xd2\x90\x83\x85\xe3\x17\x8d\x50\x65\x36\x42\x7b\xb7\xed\x89\xe5\xb3\xaf\x9f\x45\x05\xf5\x83\xb1\x4a\x60\xf3\x6f\xc8\x98\xc1\x7b\x61\x06\xb3\xac\x9a\x7a\xf5\xb4\x0c\xe2\x68\x3c\x5d\xc2\x30\x12\xe8\x9b\x3d\x3e\xad\xef\x56\xbb\x1f\xab\x0d\x26\x3d\xaf\x17\xdb\x95\xff\xcd\x30\x0e\xd5\x80\x01\xff\xd0\x3f\xf4\xe4\x0b\x86\x49\x92\x84\x83\xca\xfb\x4c\xb9\x80\x64\x40\xfe\x36\x8e\x2f\x0f\x8f\xad\x30\x0a\x88\x6e\x3f\xeb\xfb\x29\x6f\x06\x3b\x63\x18\xa5\x36\xd7\x75\x5b\x8a\xc2\x07\xff\x3e\x2c\xf1\xfa\x6b\x13\x34\xe6\x1a\x06\xc2\xf5\x93\x2f\xcd\x03\xed\x68\x93\xb3\x83\xa8\xce\xbb\xb7\x9e\x98\xa3\x6d\xd5\x1a\x79\x7e\xad\x51\xf7\x0b\x05\xc2\xb6\xbf\xa1\xa1\x67\x33\x19\x26\xb6\x82\xcb\x8e\xd2\x1a\x9f\x65\x39\xf9\xda\x09\x8b\xb8\x76\x68\x50\x8c\xf1\xee\x44\x10\xf5\x8d\x8a\x59\x21\xda\xbc\x14\x1f\xb8\xfd\x61\x12\x85\x28\x83\x75\x9d\xbd\x66\x7a\x36\xb1\x86\x9d\x38\x89\x07\x8a\x80\x3b\x51\x55\xc2\x27\x50\xc2\x34\xe4\xc8\x67\xe4\x90\x9d\x9b\x53\xa6\x32\xdd\x2d\x82\x54\x5b\x51\x57\x47\x46\x05\x79\xbe\x2d\xaf\x72\xa1\x5e\x6c\x56\xe3\x43\x28\x8b\x24\xa1\x08\xac\xcc\xf1\x57\x4c\xb9\xd4\x50\x34\xd7\x08\xc0\x6c\xdd\xea\xf1\x03\x0a\x66\x90\x2f\x7f\x55\xe8\xdb\xb2\x69\xa0\xea\x1e\x4e\x32\x83\xbb\x79\x56\x2f\x7d\x2d\xea\xbc\x85\x12\x2a\xc1\x51\x1d\x11\x4b\x7c\xf4\xa1\x3b\x68\x42\x1d\xc7\x68\x09\x1f\x30\x6f\x77\x2a\xf4\xc8\x02\x09\x81\x87\x18\x77\xfb\x0a\x55\x95\x35\xaa\x3f\xa1\x42\xe0\x2e\x76\x8b\x27\xd3\x52\xd4\x4d\x8e\x62\xf4\x97\x9c\x16\x7d\xd0\x6a\xe4\xb7\x7c\xf6\x8f\xff\x0d\x19\x63\xcc\xbc\x3e\x49\x47\xb7\x37\x6f\x7c\x84\x46\x85\xe8\x8e\xd5\xa7\xe3\x80\x11\xd5\x36\x46\x84\x44\x58\x3c\x81\xd4\x08\x27\x97\xaa\x9b\x42\xd9\x71\xa1\xc6\xa3\xa5\x19\x11\x69\x49\x08\x2c\x5b\xc0\x4d\x79\x2a\x34\x54\xf5\xa2\xd0\xae\x74\xb6\xee\x7e\xc1\x24\xcc\x25\x30\xda\xad\xe6\x23\xfd\x93\xee\x79\xa3\x40\x73\x6a\x1f\x49\x68\x57\xba\x36\xee\x40\x9d\x8c\xb8\xcf\x16\x74\x34\x08\xe3\xfd\x2b\x62\x94\xe1\x2e\xb1\xd3\x50\x37\x55\x79\x9e\xbe\x7b\x48\x22\x2c\x6d\x2c\x36\xd9\xbe\x98\xfc\x46\x18\xda\x30\x4c\x01\x6f\xb7\x2e\x83\x82\xa4\x03\xd3\x6e\x51\xc4\x9c\x88\x55\x6b\x3e\xd6\x9e\xd6\x51\x77\xbf\xc1\x35\x06\x2a\x6c\xb9\xd7\xe6\xb9\x3c\xde\x95\x7a\xe2\xbe\x45\x11\xb7\x0e\xbb\xdb\x1d\x45\x25\x0e\x1f\xf2\xdd\x4f\x06\x2b\x12\x31\xb5\xd4\xff\xcb\xa7\x3f\x1f\xb7\xdf\x56\xd7\x5f\x57\x1f\x17\x4c\xb5\x17\x68\x6b\xfc\xd8\x88\xf4\x63\xff\x51\x7c\xbb\xb1\xdc\x47\x59\xbd\x15\xd5\xbe\xdb\xe3\xa2\x98\xa4\xca\x2a\x07\x64\x0a\xf6\x15\x40\xb1\xaf\xe0\xdc\xb7\x02\x8a\xa4\x62\xf5\x93\x78\xac\xca\x57\x31\x79\xc7\x38\x8a\x31\x12\xde\x1e\x1f\x3b\x16\xec\xae\x57\xcb\x1d\x25\x94\x76\x77\x90\x32\x41\x96\x1d\xd0\x9b\xf2\xfd\x4f\x51\xbc\x00\xd4\xa1\xab\xb9\x90\x24\xe2\x4c\x43\xec\xd1\xb8\xa6\x3d\xdb\xda\x89\x96\x5d\x90\xd7\xb5\x5d\x23\x12\xdb\x6c\xd2\xb4\x21\x09\x9d\x4c\x5d\x53\x41\xd6\x65\x65\x22\x9e\x24\x48\xf5\x82\x48\xa7\x7c\x42\x13\x26\x49\x94\x86\xc4\xc3\x3b\x1e\x8e\x50\x38\x33\xa8\x9b\xe1\xa9\x0a\xf0\x9c\xdc\x91\x5d\x31\x01\x3c\x48\x12\x09\x42\x30\xe0\x76\xbd\xda\xfa\x0b\x44\xc8\xb1\xf6\xfb\x47\xa9\x86\x06\x7f\xa4\x13\x92\xc6\xde\xa5\xa9\x66\x4f\xd2\x08\x58\x4a\x44\xe7\x59\x22\x5e\x63\xee\x33\x83\x24\x96\x59\x36\xab\x6f\x41\x1c\xff\x04\x31\x39\xd2\x22\x23\x12\x66\x0b\xc8\x9a\xaa\x2c\xc4\xbe\x83\xd2\xdc\x94\xd5\x77\x67\x32\x8f\x2c\x90\xc8\x28\xfb\x91\x0f\xce\x5f\xf8\x39\x3c\x04\x23\x03\x26\x6a\x0f\xb5\x75\x5d\x9f\x3e\xca\x16\xc6\x84\x31\x1b\x61\xb2\x43\x38\x24\xf2\xf7\x3b\x4b\x4c\x42\x61\xb9\xbd\x9d\xc3\xf8\xa5\xff\x7b\xea\xc9\x8b\x96\xa2\x68\xae\x1c\x55\x6a\xbd\x2e\x36\x4d\x79\x3c\x82\x1e\x44\xfe\x62\x22\x79\xe2\x10\x4a\x3e\x83\xd4\x9e\x51\x0f\x47\x97\xf5\xb8\x01\xb8\x6e\x9d\x9b\xc5\x64\x57\x8f\x89\xb6\x02\xc9\x1d\x9f\x4e\x9e\x7b\xa0\x4a\x07\xa9\x72\x5d\x83\x14\xf0\x37\x9e\x45\xdd\xe3\x71\xe7\x6d\xf6\x98\x32\xc2\x43\xe4\xbb\x28\xff\x0b\xc5\x50\xf0\xcd\x75\x60\x41\x44\x6d\xf6\x1e\x13\x33\x96\x98\x69\x38\xfe\x71\x28\x25\xfa\x83\xbb\xbc\x29\xc5\x20\x33\x1e\x87\x4a\x60\xc1\x5c\xeb\xe9\xdc\x94\x95\x42\x00\xd9\x6a\xac\xfb\x23\x49\x1c\xf1\x18\x29\x3e\x30\x89\x3c\x0a\x98\x74\x6f\x14\x13\x85\xe5\x3f\x1d\x59\xdb\x38\x4c\x16\xc7\x5c\x61\x02\x07\xc1\xbf\x7d\x95\x49\xdb\xa2\x99\xe4\x03\x1e\x6a\x0f\x28\x9d\x3f\x94\xe2\x58\x2b\xac\x01\xbb\x5b\x3d\xfd\x63\x94\x98\x8f\x63\x30\xcc\xaa\x3b\x95\xb9\x2e\xdf\x3c\x7e\xd5\xb5\x72\xa2\x7c\x55\xd8\xae\xf6\x35\x74\xed\xdf\x03\x86\xdb\x87\xa3\xa4\xb0\x53\xf3\x52\x27\x6d\x26\xd0\x10\x73\xa6\x3d\x79\x3a\xa2\x0e\x7a\xed\xb0\xee\x57\x93\x38\x42\xf3\x35\x2b\xd4\xbd\x5f\xc5\x71\xc2\x39\x4a\xf6\xa2\xee\x89\x23\xe0\x9b\x8c\x78\x22\x23\xe9\x72\x95\x4f\xa2\x78\x21\x81\xbf\x36\x65\xa9\xb0\xa8\xf4\x66\xf5\x9f\x53\x7f\x74\x8f\xc0\xf1\xa3\x8f\x9f\x26\xdc\x66\x8e\x4f\x52\x97\x07\x91\x15\x18\xfe\x9f\x5b\xfb\x71\xaa\x5d\xfc\x17\x0a\x7d\x53\x95\x87\x8f\x50\x2b\x63\x42\x49\x49\x62\xa9\xa4\x27\x47\x76\xe6\x26\xd6\xa9\xcd\x2f\x65\xc5\x63\x4d\x7c\x3a\xe0\x2e\x2b\x40\x0f\xe4\x12\x25\x89\xb5\xb1\xa2\x11\x7e\x2a\xf9\x9a\xd8\xc9\x6d\xb4\xa1\x18\x02\xfb\x0a\xcd\xdd\xd9\xa9\x69\xb8\x26\x08\x80\xf4\x49\xe5\x2d\x88\xc3\x25\x80\xb0\xed\xd6\xce\x7f\x1b\x6b\xb0\xfb\xc1\xcf\x8e\xd0\xd3\xf7\x68\x7d\xdf\x76\x0b\xde\xac\x44\x7d\xbe\x3b\xe5\x4d\x56\x67\xbf\x08\x6f\xc5\x00\x24\x0c\x3b\x09\x4c\x51\x67\x6a\x5d\xa8\xf2\x62\xd9\x02\x68\x2f\x54\xf9\x04\x06\xaa\x4a\xe4\xf8\xdb\x97\x04\xa0\x92\xc4\x26\xd4\x08\x86\x5c\xac\x31\x9e\x31\x69\x4c\x34\xb3\x61\x0d\x0d\x70\x18\x6d\xae\xb1\xd1\x01\xa6\x0b\x96\x4f\x0b\x57\x36\xb4\xd9\x2e\x9e\xb6\xbb\xeb\xc5\x9f\x5d\x17\xb0\xdc\x64\x76\xb4\x6c\x56\xa4\x5d\x81\x37\x65\x65\xa7\xca\xe8\xd7\x38\x09\x13\x9d\x76\xeb\x15\x83\x34\xe3\x37\xe3\x24\x82\xd0\xe5\x8c\xef\xce\x9b\xb7\xb2\xf2\xbb\x00\x27\x52\x22\xb4\x4c\x97\x1e\x7f\x00\x4f\x65\x6f\xa6\x5d\x46\x4c\xe7\x72\x3b\x9c\x48\x8d\xd1\x06\x91\xe7\xbb\x52\xd6\x8d\x50\x79\x17\xa3\xe1\x81\x92\x78\xdc\xbb\x5c\x54\xf7\x67\x23\x70\x93\xdc\xac\xee\x97\xbb\x6f\x8b\xa7\xeb\xdd\x72\xf1\xe8\x1b\x29\x89\x31\xc8\xe9\x10\x6e\x77\x59\xd1\xf3\xe2\xb5\xcd\x52\x5b\xe5\xe2\xba\x9d\xaa\x87\xc3\x18\x9a\xc1\x19\xa5\x3c\xe9\xb8\x34\xd7\xcb\x87\xcf\x70\x90\x6d\x7f\xa0\x92\x7b\x06\x1d\xd1\x65\xd1\x38\x33\x11\xed\x49\xe6\x7c\x1e\x7e\x0c\x56\x1a\x8d\x43\x6b\x1a\x51\x5f\xcb\x69\x5d\x98\x11\xc6\x74\x2e\xa0\xcb\x23\x1e\x0b\x67\x57\xde\x75\x7e\x07\x8f\x52\xc5\xc0\x59\xf3\xeb\x02\x95\x88\xe1\xe2\xd8\xe2\x9c\x69\xd4\xfd\x3e\x8a\x33\x72\x77\xb5\x13\xc0\x13\x4d\xcc\xfa\xa1\x9c\x87\x81\xb1\x72\x06\xa6\x82\xfa\xd9\x92\xd5\xf8\x36\x45\x1c\xef\x85\xd0\x1b\xd1\x9a\xbf\x43\xe0\x19\x4f\x88\xd4\x89\xe7\x67\xb0\x48\x90\xf6\xd4\xef\x3e\x74\x12\x6b\x0c\x45\xdc\xc3\xb1\x39\x15\xa3\x2d\x84\x27\xc6\x60\x38\xeb\xca\x7a\x57\x5e\xd5\xc7\xb5\xa6\x34\x42\xc0\xa5\xec\x31\x54\x96\x18\xc6\xb7\xa7\x0c\x51\x3a\xad\x21\xd3\xd7\x4a\xb6\x0d\xca\x78\x1e\x4d\xeb\x5f\x5c\x57\x62\x5f\x4e\x96\x23\x17\xcc\xc6\x70\xb2\xda\x6b\x8a\x20\x13\x52\xb7\x08\x44\xec\xd8\xd9\x6c\x02\xe1\xd1\xd6\xf6\xbb\x24\xf6\x64\x29\x49\x09\x36\x14\x89\x73\xc2\x31\x62\xea\x59\xfd\xc8\xd1\x33\x48\x08\x4c\x2f\xbc\xb3\x7d\x86\x03\xe8\xcd\x11\x0b\x10\xa6\xb2\x33\xb3\xc7\x2c\x97\x40\x6d\x41\x96\x5f\xa7\x5b\xd4\xd6\x1f\x9e\xdc\x5c\x71\xab\x2e\x7a\x5b\xee\xf7\xa0\x6d\x38\xa0\x98\x96\x29\x8c\x52\xe5\x96\x35\xa7\x37\x40\x38\x84\x80\x5b\x97\x43\xa4\x2e\xcf\x2a\x1f\x83\x18\x7c\x3f\x6d\xeb\x68\x2d\x3b\xa9\x8d\xd2\xd9\x2f\x3e\xe9\x07\xc4\xf2\xc3\x57\x8a\x92\xed\xb0\xaa\x7e\xfe\x30\xe2\x86\x08\x8c\x9f\xc1\x3b\x54\x2a\xab\xa7\xbf\x6b\xda\x7d\xc3\x41\xf7\xfe\xcf\xac\x96\xf8\xd2\x93\x9f\x65\xc4\x32\xe1\x75\xd5\x9c\xab\xed\x37\x5f\xc8\x79\xf3\xfd\xfe\xba\xab\xe6\x94\x24\x09\x64\x2a\x3a\x47\xb8\x86\xdd\x60\xde\x8e\xa7\x4b\x12\x28\x83\x74\xf3\xbb\xc6\x73\x13\x3c\x74\xa9\x9a\x84\x72\x13\x52\x57\xc9\x55\x65\xaa\xf1\xb5\xdf\xd7\x7d\xa2\x37\xa1\x32\x55\x9d\x1e\xcc\x5e\x14\x59\xed\x68\xa1\x7b\x3b\x37\x61\x3c\xc2\x3a\xf3\x43\x56\xac\x95\x8d\x98\xf6\xc5\x7e\x92\x24\x21\x4d\x10\x0d\x8c\x52\xf2\x85\xc8\xdb\xad\x7e\x3c\xac\x49\x98\x10\x3c\x07\xec\x96\xb9\x81\xa6\xc9\xa1\x53\x40\x68\xdb\xd3\x18\x01\x51\xbb\x02\xde\x30\xce\x5b\x3f\x67\x47\xc7\x3c\xe4\x37\x1a\x6b\x15\xcc\xff\x33\xfe\xb5\x28\x20\x5e\x3d\x49\x67\x75\x5d\xe6\xaf\xa0\xd5\x0c\x71\x50\xdb\x35\x95\x18\xdb\x2a\xdd\xca\xb5\xec\xc4\xf5\x0c\xca\x2f\x89\x44\xe4\x15\x9f\xee\xce\x3f\xb3\x7e\x9c\x23\x47\x20\xb1\x7a\xb7\x9b\x9a\xfb\x73\xcc\x52\x60\xfe\xbc\x3f\x76\x88\xb9\x9b\xb2\x5a\xbd\x37\x95\xb8\x2a\x0b\xfd\x88\x75\x42\x75\x77\x05\x17\x58\xc5\xfb\xef\x32\x2b\x5a\xc3\x7c\x10\xd3\x48\x7c\x17\x97\x8e\xd9\x43\xf3\xbd\xca\x36\xd0\x8c\xbe\x14\x97\x89\x74\x98\xfa\x9f\x65\xf5\x62\xf2\xf2\x6d\xd4\x9e\x50\x15\x4a\x1b\xab\x58\x6d\xbf\x7d\xdf\x5c\xdb\xf7\x1c\xda\x84\x49\xc2\x02\x44\x41\x4b\xcf\xce\xd3\x17\xe7\xb5\xad\x91\xc6\xbc\xae\xee\x8a\xba\x31\x5a\xe5\xd6\x5c\x6b\x43\xfe\xd5\xd2\x39\x49\x92\x34\x30\xe1\x10\x4f\xb4\xd8\x0f\xa6\x44\x1a\x0a\xe1\xdd\x78\xd1\xc0\x83\x19\xa8\x29\xf9\x2e\x89\x15\xab\xc5\x8c\xfb\x4e\x83\xdd\x8f\x76\xa6\x9c\x98\x30\x89\x60\x71\x90\x0e\x68\x18\x7c\x55\xff\x28\x52\x9a\x08\xc3\xb4\x57\xf3\x3f\x8a\xaa\xc9\x54\x76\x14\x45\xb3\x2b\x4e\x87\x5d\x69\x76\xa7\x49\xf5\xa6\x24\x89\x64\x61\xe0\xcc\xe0\x4d\x53\x89\x6c\xff\xdc\x58\xb2\xfb\xf6\x43\x8f\x39\x98\xfc\x15\x22\xc6\xec\xfa\x6b\x06\x6f\x5d\x48\x23\x91\xd2\x18\xcb\x04\xd4\xfa\xd3\x53\x49\x8e\xd1\xe7\x51\x34\xc5\xf4\xc8\x6f\x8f\xbb\xb7\xac\x28\xb2\x62\xdf\xf1\xf2\xb6\xad\x9c\x23\x66\xd8\x00\x0c\x92\x94\x89\x4a\xa5\xf6\x1a\x6f\x35\x0c\x9c\xdf\x44\x19\x89\xfe\x8a\xd0\xba\x2b\x08\x02\x3d\xc1\x0e\x8c\xf7\xb2\x44\x53\x8e\x4e\xa4\xe3\xf5\x47\xd2\xe2\x8f\x88\x20\xdb\xee\xd2\x8a\x41\x35\x5d\x64\xda\xc2\xf7\xc6\xbd\x80\x58\xa1\x7c\x61\x81\x24\x23\x7d\x97\xfe\xfc\x48\x80\x98\xd0\x9a\xf0\xc5\x49\xe4\x9d\xbf\x9e\x4f\x3e\xb8\x49\x20\x70\x89\x19\xef\xd3\x7c\x2b\x73\xed\x6d\xac\x49\xe7\x34\xc6\x42\xdd\xcd\x66\xe1\x86\x25\x25\x8a\xc7\xee\xa4\xdb\x40\x0e\xca\xd5\xf2\x5d\x9c\xc1\xbf\x38\x21\xdc\xdd\x02\xce\xb0\x52\xbb\xfd\xe8\x0b\x63\xac\xc7\x31\x7a\xfd\x34\x10\xce\x87\x70\x2b\xc9\x26\x6a\x3f\x47\x7d\xa4\x34\x08\xf1\xc1\xdf\x2e\x24\xc9\xc6\x37\xa7\x5c\x63\x61\x69\x01\x6f\x4f\x70\x2c\x67\x13\xb1\x29\x63\x86\x5a\x49\xcb\xf7\x85\x7e\x1d\x0e\xd3\x28\x9a\x9c\xb2\x50\x73\xdd\xb9\x03\xed\x8a\xc7\x50\xfd\xed\xc7\x3f\x1f\xa6\x96\x39\xf7\x3e\x2b\x60\x0c\xc0\xfe\xc4\x72\x70\xd7\x46\x44\x62\x54\x54\x89\x62\x99\x97\xa8\x49\x04\x56\x08\xe4\x71\x54\x16\x3b\x8b\x22\x4d\x63\x92\x62\x56\xe8\xb6\xdc\x3b\xa2\xf5\xcf\xf3\x2d\x29\x97\x1a\x73\xab\x8e\xf7\xcb\xfa\x4e\xdb\xf5\xdd\x6a\xb3\x5d\xdc\x79\xf7\x21\xe5\xca\x2a\xe2\xd5\xd0\xac\x57\x0f\x9f\xd6\x02\xa4\x89\x4c\xd0\xf7\x2f\xdf\x8a\xfa\xa1\xda\x40\x9e\x4f\x34\x95\xb0\x8f\x96\x6e\x53\x5f\x1c\x8f\x30\x21\x39\x93\x24\x4d\x59\x82\xd1\x81\x1f\x65\x75\x10\xc3\x18\x48\x9a\x86\x96\x22\x40\x78\x7d\x29\x1b\xb6\x2a\x2f\xcb\x53\xdb\xce\x4a\x61\xe6\xea\x20\x5e\x90\x8a\x70\xd0\x24\x54\xec\x82\xb9\xed\x0e\xe4\x4f\xde\xf9\x51\x15\x3a\x41\xde\xb2\xd3\xf1\x08\x58\x28\xe3\x2d\xdd\x54\x18\xf0\xb5\xd0\x17\xa0\x75\xd7\x45\x06\x22\x72\x19\xda\x19\xed\xcd\xb6\x83\x62\xae\x98\xf4\xbc\x6b\xca\x5d\x1f\x58\x4e\x15\x31\x8c\x74\x89\x84\x9f\x00\x2f\xf9\xa8\xe6\xa4\x7b\x40\x45\x59\x64\x39\x54\xaa\xbd\x38\x0c\x00\x01\xa9\x96\x2c\xa5\x3d\x61\xef\xb5\x05\x1d\xf6\x91\x84\x54\x1b\x16\x8b\x4e\xde\xca\x86\x1e\x7d\x6c\xa8\xeb\x64\x02\x8a\x6c\xd1\xbb\xfa\x7c\x90\x65\xde\xff\x39\x4e\x3a\x8e\xb5\x07\x83\xbe\xf4\xd5\xf9\xa9\x75\xb2\x7f\x31\xed\x4c\x28\x30\x34\xe0\xc4\x7c\x11\x0e\xe0\x73\x29\xa3\xe9\x24\x48\x6c\xa3\xf8\x37\xeb\xa7\xcd\x16\xa7\xe8\xd5\x62\xb3\xda\x0d\x79\x41\xbe\xf8\xae\x49\xc2\x59\xc7\x47\x7b\x5b\x8a\xe2\xf3\x7c\x81\xbb\x2c\x90\x96\x73\xc9\x7a\x20\x37\x00\xb3\x9b\xa6\x08\x54\x8c\x63\x50\xc0\x5b\xbb\x1e\x3b\x26\xdb\x91\x80\x62\xdb\x0f\x28\x92\xb4\x69\x2b\x86\xb1\xf6\xc0\x27\x41\x99\xa5\x2c\x39\x5a\x65\x09\x0f\x88\x1d\x1c\x4e\x82\x46\xa1\x70\xf4\xca\x9b\x46\xa8\x97\x67\xd4\xa8\x1c\xef\x9c\x82\xc6\xb6\x1a\x17\x15\xeb\xb3\xe3\x11\x2e\x14\xa8\x27\x2f\x18\x39\x46\xf0\xed\xbd\xff\x9d\x48\x44\x48\x4e\x66\x9d\xa7\xd5\x01\xaa\x3d\x14\xea\xdc\x7a\x68\xee\x8c\xeb\x40\xce\xfe\x0a\x95\x22\x65\x1e\x32\xd3\x2f\x0e\x32\x83\xa2\xf9\x76\x3a\xe8\xe6\xbc\x7a\x6f\xad\x94\x21\xea\x6a\x38\x35\x45\x1c\x8b\x5e\x4c\xb3\xac\x86\x0e\xb0\x88\x85\x25\x9d\x5f\x97\x5b\x4f\xe7\xf1\x49\x7e\x46\xc4\xda\x12\x2c\x9f\x0a\xcb\x8c\x3c\xf5\xde\x05\xe7\x80\xda\xd8\xfe\x94\xdc\x96\x9b\x63\x59\xd4\x97\xa4\x76\xae\x7f\x12\x26\x88\x8c\x96\xcd\x59\xcd\x0a\xa8\x62\x9f\x14\x83\xd3\x47\x71\x06\x7f\x9c\xd6\xf3\x0c\x8e\x6d\x6f\x09\x98\x39\x78\x82\x3d\x92\x21\xb9\x3f\xa7\x41\x8c\x78\xcd\x9b\xec\xfd\x11\x85\x7c\xbb\x86\xd0\x3e\xf1\x75\x86\x48\xdf\xf1\xcd\x52\x49\xcc\x80\x03\x03\xc4\x61\xa6\x80\xe7\x93\xc3\xd9\xdf\x46\x71\x13\x7a\x28\x06\x5a\xd9\x50\x9f\xf2\x89\x9d\x26\x04\xb1\x95\x12\x9e\x9a\x74\xcc\x16\xd2\x76\x90\x34\x8d\xe7\x34\x04\x7c\x3b\x30\x5b\x8d\x25\xea\xda\xd7\xc7\xb9\x26\x29\x15\x97\x3d\xe5\xda\x8e\x8e\x81\x41\x42\x11\x57\x22\x63\xd1\x66\x7d\xa5\x77\xbf\x78\x54\xa8\x12\x67\xe8\xdf\x8a\xba\xe9\x54\x34\xdb\x26\x15\x31\x6b\xeb\x61\xd0\xea\xa7\xe8\x02\x57\x42\x69\x8e\x68\x02\x84\xe5\x58\x2c\xd4\xa6\x11\x4d\xa6\xc6\xb8\x75\x3a\xcb\x07\x86\xd7\x43\x30\xc2\x5a\x3a\x87\xef\x23\xbe\x85\x4b\x93\x5f\x68\x66\xf9\x4e\xe4\x29\xcb\xf5\x32\x6b\xce\x53\xe9\xa2\x5e\xa4\xeb\x9f\xb4\xbf\x48\x60\xb5\x79\x51\x0e\xcf\x2c\x01\x81\x8e\x5d\xd8\xd1\x83\x85\xaa\x45\x73\x41\x47\xd4\xf6\xd4\xb6\x26\x5e\x68\xfd\xdb\x69\x2f\xb4\x98\xb3\x3c\x2e\xdf\xd7\xf0\x38\x91\x03\xff\xe4\xea\x54\x15\xd3\xfd\x47\x12\xaa\x62\x07\xbd\xb5\xa4\xeb\xdd\x09\x3c\x6b\x10\xc8\x20\x89\xd0\xe3\x76\xe2\x09\x37\x65\xd5\x9e\x66\xf5\x28\x79\x21\x83\x24\xb5\x85\x61\x08\xc2\xed\x42\x6e\xb3\x33\x5a\xd2\x10\x90\x6c\x67\xf5\xb4\xfc\xe2\xff\x24\x2d\x87\x4a\x03\x75\xe3\xca\x4a\x8d\xc8\xf3\x5d\xc7\x18\x2f\x89\x64\x41\x04\xa3\x88\xcf\x9d\x78\x5f\x0e\xaa\x06\xbf\xd7\xba\xeb\xaa\x52\xf4\xc5\x56\xdb\x6f\xab\xa7\xc5\xcd\xcd\xad\xc7\xf5\xc8\x88\x30\xa4\xfe\xbc\x2b\x8b\xf3\xc8\x32\x91\x11\x13\xc8\xa2\xf6\x73\xf3\xfb\x9f\xa3\x86\x98\x48\x44\x8a\xfc\xe3\x8f\xaf\xa3\xbf\x73\xce\x70\x6a\xac\x36\x9b\x3d\x14\x50\x67\xfe\xbc\x95\x49\xc4\x2d\xa1\x76\xe9\xc3\xbb\x32\xa5\xb4\x2f\x8f\x6b\x44\xee\x0a\x10\xc6\x03\x93\xc6\x04\x25\x71\x7b\x6a\xdf\xee\xf2\x54\xf1\x5e\xa8\xe9\xb1\x6c\x44\x53\xfe\x6f\xd8\x2f\x29\x62\x8a\x69\xea\x4d\x29\x8e\x57\xa5\x47\xe7\x49\xc9\x38\xee\x6d\x7f\x3c\x2e\x90\x8e\x76\xfa\x4c\x2a\xd4\xb1\x65\xf8\xb4\xeb\xd3\xea\x2e\xff\x02\xdf\x2d\x95\x8a\xd1\xd1\x9c\x83\xc6\x8e\x1f\x4b\xe9\xc4\x38\xd9\xf6\x0e\xc1\x6e\xa3\xfa\xae\x83\x8e\x92\x24\x19\x78\x1a\xd5\x48\xbc\xb7\xed\x20\x94\x8a\xbd\xef\x94\xcd\x57\xe3\x49\x90\x36\x99\x01\x85\x5e\x2f\x1f\x8e\x3e\x5d\x25\x41\x13\x69\x27\x6e\x6e\xc6\x95\x65\x12\x74\x80\xf1\xdb\xcd\xdd\x66\x60\x92\x49\x43\x52\x97\xcd\x6c\x36\xa5\x69\x96\xe2\x88\xb1\xf8\xee\x71\x0c\x04\x98\xa3\xb7\xd9\x0a\x07\x77\x9c\xc1\xd8\x29\x12\x59\xb0\x87\x4b\xba\x3b\xac\xe7\xff\x86\x3e\x54\x01\xb3\x94\x87\x42\xeb\x6b\x8b\x05\x99\x2e\x78\x15\x08\xed\x29\xa9\x47\x61\xa2\x0b\x86\x70\x49\x14\x25\x10\x8a\x5e\x43\xa3\xd3\x0c\x19\xdf\x91\x8a\x20\x1e\x60\xae\xaf\x33\x63\x32\x75\xca\x9b\x73\x9f\x93\x50\x14\x24\x06\x86\xef\x45\xf3\x2c\xf2\x0c\xfe\xa2\x03\xa5\xa8\xb1\x94\x92\xb8\x09\x38\x1a\xc3\x71\xdc\x43\xb1\x48\x21\x17\xa7\x38\x35\xe5\x55\x56\x35\xcf\x7d\xcc\x5e\xb1\x54\x7a\xc1\x2d\x4b\xbf\xb9\x2e\x66\xf8\x42\x24\x51\x21\x8d\xb1\xfe\xd1\x66\xad\x6d\x4e\x8a\xfa\x23\x4f\x85\x92\xa1\x36\x42\xbb\x3f\xae\x54\xe9\xff\x1c\x05\x2c\xc4\xfa\x54\xbb\x09\xf6\x5a\x1e\x6d\x1b\xb7\x02\x2a\xc7\x76\x5f\x67\x7d\xbd\xd9\xba\xe8\x0b\x91\x54\xac\x39\xf2\x5c\x21\xb8\xf9\xae\x2c\xea\xa6\x75\x9d\x9b\x53\x55\x0c\xad\x56\xef\xbb\x2a\xce\xa4\xe7\xde\x5f\x17\xaf\x59\x53\x4e\xbf\x04\x0f\x43\x74\x31\x6a\x71\xae\xcb\x03\x34\xcf\x3d\xa8\x57\x71\xc3\xb1\xdc\x1e\x35\xa9\x4f\x4d\x79\x68\x4f\x4e\x47\xb5\x3e\x18\xb1\x84\xa4\xdc\x45\xae\x27\x96\xf3\x70\xb8\x12\x4d\x11\xf6\x6f\xad\xec\x3b\x18\x14\xf7\x8e\xbf\xa9\xef\x6f\x52\xec\x2f\xb4\x1e\x19\x0b\x2a\xf5\x5c\x90\xd0\x2c\xd4\x90\x6c\x62\x32\x13\x53\x63\x35\x5b\xae\x4e\x4d\x53\x16\xcb\x3c\x1b\x16\x0b\xb9\x3e\x82\x02\xa6\x3b\x7e\xac\xfc\x41\xa2\x04\x04\x88\x7c\xfa\x79\x7d\xef\x83\x23\x4a\x32\x9a\xa6\xde\x82\x5a\x9b\x87\xe2\x7b\xa1\xe6\x09\x37\xda\xce\xad\xa5\x84\xae\xcd\xf1\x8b\x35\x2e\x7c\x83\x4a\xa4\x63\x2f\xc8\x3b\x40\x89\x73\xb9\x2e\x8a\x6c\xa7\x40\xb3\xcf\x2a\x2e\xec\x7f\xc6\xa6\xe1\xac\x23\xab\x24\x50\xf4\x06\x77\xf0\xde\x40\xa1\xaf\x84\xde\xc3\xa7\x02\x2c\x92\x28\x45\x22\x6f\xf7\xb5\x9e\xf2\xc3\xb1\x79\x38\x7d\x10\xf8\x50\x8a\xa5\xe8\xeb\xda\x60\xd5\x0a\x59\xd1\xe7\x94\x47\x3f\x3c\x64\x94\x52\x52\xb1\xe1\xf2\x73\xf2\x27\x83\x99\xa4\x94\x42\x8f\x02\x0b\x47\x9d\x2d\xeb\x9a\x7c\x61\xf8\xfa\xb7\xee\x7b\x02\x44\x28\x11\xb0\x7d\xcb\x14\x2c\x5a\x1f\x7a\x98\x5f\xfe\x64\x1f\x31\x44\xab\x9e\xb4\x1e\x97\x23\x6a\x09\x7d\x7e\x70\x29\xc3\x22\x9f\xf4\xbe\x87\xb7\x1b\x27\x5a\xe3\x6b\xf6\x6d\x27\x4d\x12\xcd\xdc\x26\xb3\x7d\x5f\x8e\x98\xeb\x47\x77\xd3\x01\x0d\xb9\x97\xa2\xbb\x5b\x6c\xfc\xf5\x01\x4b\xc0\xd6\x21\x9d\x8a\xe6\xbc\x73\x1e\x65\xdf\x6a\x09\x53\xbc\xc2\xfa\x6a\x2a\x8b\xdf\xf6\x11\x34\x56\x7d\x3d\x5b\x6b\xe8\xa3\x13\xee\x9a\x69\x1c\x72\x57\xbf\xdb\x55\x12\xff\xff\x94\x7d\x59\x73\xe2\x48\xb6\xff\xd7\xe9\x87\x79\x50\x2e\xda\x1e\x01\xe3\x2a\xa6\x6d\xe3\xbf\xc1\x55\xdd\x33\x71\x83\xc8\xe5\x24\xd6\xb5\x90\x18\x49\x54\x95\xe7\xd3\xff\x43\x27\x17\x2d\xc6\xee\xbe\x0f\xbd\x84\x95\x08\x21\xa5\x32\xcf\xf2\x5b\xe6\xd3\xe4\x5a\xb5\x56\x53\x99\x23\x26\xfe\x50\xb4\xfb\x5f\x28\x4a\xdf\x27\x63\x8b\xe6\xd8\x5e\xa7\x31\x6a\x26\x18\x4e\xaf\xc5\xcd\xcd\x66\xbf\xd9\x3e\x2c\xee\xac\x5c\xf3\xe1\xe1\xf9\xde\x5f\x0d\x03\xc3\xac\x89\xf3\xf6\x8c\x06\x42\xd3\xd7\x58\x73\x63\xfc\x14\xbd\x17\x1a\xf6\x7f\xcc\x7e\x6c\xcc\x65\xd0\x3d\xb3\x22\x26\xef\x74\x43\x74\x9c\x68\x1b\xf1\x95\x70\x7e\x11\x55\xf7\x97\xe9\xa8\x4e\xfa\x3d\x0a\x25\xa1\x7e\x7e\xda\x0e\x98\xbc\x82\x3a\x89\x35\x32\x1c\xb0\xde\xfe\x71\x41\x57\x27\x09\xcd\xad\x38\xfb\xb1\x11\x1d\xc8\x37\x94\x9e\x99\xfd\xf0\x34\xe7\x79\x08\xad\xb7\xcd\x93\xeb\x7b\x05\x55\x61\xbf\xe3\xe9\xd4\x68\x64\x73\x3f\xc0\xcf\x0f\x18\x4c\x6e\x60\x46\x0c\xd6\xae\x51\x1b\xc3\x6b\xc2\xdf\x7e\x50\x18\xd7\x99\xc8\x10\x90\xb4\x6d\x4f\x45\x10\x5b\xd1\x99\x8c\x89\xeb\x1b\xf5\x81\x98\x8d\xb6\x36\x3a\x5c\x4c\x9e\x5b\x8c\x9f\x2c\xba\x2f\x98\x15\x4d\xc1\xa7\x3a\x37\x80\x21\xf6\x45\x9b\x6f\xcf\x8f\x23\x9d\x04\x3f\x40\x2a\x48\x49\x00\x03\x82\x38\x15\x5d\x40\xb0\x5e\x8d\xde\xb4\x22\xb6\x78\x73\x23\x26\xb0\x42\xad\x12\x86\x05\x42\x14\xfb\xf9\x5e\x54\x08\xdd\xc2\x52\xe0\xf2\xed\x09\x8e\x4e\x3f\xe2\x33\xb1\x8e\xc9\xdd\x53\xd2\x7a\x23\x9f\xc5\x5b\xff\x60\x1f\xef\x16\xfb\xd9\x63\xd5\x24\xc6\x69\x76\x16\x45\xd5\x1d\xce\xc5\x2f\x28\x67\x22\x17\xb3\x07\xa2\x69\x16\x67\x1e\xd4\xb8\xbc\xbc\x39\x31\x9e\x0f\xa3\xbc\xc9\x14\xd5\x3c\xcd\x84\x8f\x6c\x2f\x55\x17\x40\x63\x7d\xb6\x19\xff\x8f\x1f\x25\x34\xb6\x81\x90\x1e\xe1\xb7\xf0\xeb\xeb\x11\x44\xca\xc3\xa0\x7c\x2d\x04\xeb\xe0\xa3\x8e\x9d\x06\xa2\x10\xfd\x71\xbe\xc8\xb2\x68\x5f\x5c\x40\x32\xf2\x6e\xf2\xd1\x89\x06\x6d\x81\xb3\x06\xd4\xcb\xa2\x2c\x57\xa2\xd2\xa8\x01\x19\x66\x8a\x89\x0d\x42\xd7\x0e\xaa\x3e\x9d\xb1\xf5\x56\x1d\xff\xa2\x9c\xa7\x4d\x0e\x31\x0b\x32\x5b\x61\xd6\x41\xc4\x38\xaa\xda\x3c\x3f\xdc\x2d\xc3\xdf\x72\x81\x42\xc6\x98\x35\xe2\x7e\xb2\x7b\xa9\x2f\xa5\xde\xbf\x34\xf5\xcf\x30\x08\x0c\x86\x41\x3f\x43\x55\x09\x5f\x8b\x4f\x3a\x7f\xd3\x2b\x02\x42\x53\x12\xbb\x2a\xf4\xc4\x0d\xf0\xef\x75\x53\x80\x24\x4a\x41\x68\x40\xe8\xba\x53\x2f\x5d\x8d\x9e\x6a\xd7\x5f\x62\x20\x42\x88\x38\x68\xb5\x79\xf9\x26\xbc\xec\x65\x7d\x39\xbe\x7c\xb0\x7d\x03\x31\x31\xde\x3a\x6c\xaf\x78\x29\xe0\xe9\xcb\x09\x94\x33\xac\x41\xac\x04\x34\x97\xf6\x43\x27\x4a\x19\x01\x4b\x4d\x6a\xad\xb0\xb0\x68\x38\x5f\xbc\x80\xe7\x14\xeb\xa1\xcb\xd5\xc6\x47\x5a\x10\xf3\x14\x2c\x0c\x19\x13\xb5\xe6\x0e\x7e\x40\x49\x1f\x27\xfb\x1b\xc4\xa9\x65\x0e\xbb\x26\x64\x07\x47\x17\x65\x90\xd8\x8f\x10\x22\xcb\x3d\x4f\xd7\xb2\xf0\xad\x97\xc3\x4d\x28\x4a\x41\x12\xa7\x22\xf5\x96\xb2\xf7\x45\xd5\xa1\x72\x72\x34\x7d\x5f\x21\x49\x52\x61\xd7\x2a\x1d\xda\xf4\xb3\x21\x69\x9c\x22\x24\xe1\x8b\x38\xc1\x1f\x96\xee\xe3\xbf\x23\xe3\x56\x8e\x46\x5c\x54\x77\x69\xbf\xfb\xdb\x3a\x4d\x47\x20\x53\x12\x8d\x8d\xac\x18\x66\x58\xc8\x30\xb8\xbd\xad\x9b\xf5\x0f\x68\xde\x64\xad\xc3\x95\xe7\x82\x80\xdb\xce\xbe\xd6\xba\x84\x66\xee\xe4\x2f\x23\x10\xc4\xaa\xaa\x5b\x2c\xdc\xde\x47\x0e\x20\x32\x9d\x19\xdf\xa3\xd7\x00\xa7\xd0\xcc\x6c\x11\x21\xd4\x5c\xd3\x88\x93\x11\xc8\x98\x60\xa4\xac\xca\xba\x05\x2b\x90\x52\x8e\x2a\xd7\x20\x25\x4d\xc6\x34\xeb\x2f\x85\x09\xcf\x4b\x82\xb1\xa4\xc2\xd0\x42\xf7\x9c\x08\x2b\xa9\x7a\xd5\x5b\x77\x5e\x48\x03\x45\x25\xca\x55\xe0\xbb\x9a\x1d\x04\xde\x1e\xbf\xe3\x15\x75\x75\x78\xc6\x53\xaa\xba\x81\x85\xd6\x56\xe1\xf0\xd0\xbe\x7f\x9d\x95\xb2\x88\xf6\x50\x05\x42\x89\xb6\x85\xe9\xfa\x0f\xbf\xd4\xf5\x6c\x23\x06\xa5\x04\xde\xb1\xbb\xba\x7e\x5d\x60\xf1\xb1\xbf\xdd\x8f\xd0\xfc\xab\xae\xe6\x77\x5d\x73\x96\x7b\xcb\x0e\xf1\xcb\x56\x3a\xfc\xf7\xea\x24\xc6\x88\x0b\x7b\xf7\x9f\x8b\xc1\x80\xce\xd3\x94\x0f\xf0\x4e\xf1\x0a\xf5\xa5\xbb\x86\xf0\x04\x48\x2c\xf2\xe3\x20\xb4\x76\xa6\x4a\x7b\x68\x4e\xed\xfb\x2f\x18\xe5\xea\x57\x12\x77\x00\x30\xa8\xfc\xf8\xe7\xe2\xe1\xf7\xf5\x7a\x37\xff\x1a\x23\xa4\x93\x83\x5d\x34\xb2\xe8\x26\x1d\x37\x3b\xc6\x44\x29\x38\xee\xa9\xc3\x1c\x0c\x35\x5a\x13\xa9\x1c\xbb\x4c\x2f\x50\x96\xf5\xf4\xa6\x19\x42\x28\xf3\x60\x4a\x6b\xca\xbc\xaa\x4f\xa7\x4b\xe5\xcc\x3f\xb1\xdb\x7f\x75\x85\x31\x94\xe5\x90\x7b\x1c\xea\xea\x05\xfe\x13\x80\x6c\x86\x32\x8d\x34\xa9\x5d\xb0\x67\x5a\x79\xf9\x35\x32\xdd\x24\x0d\x95\x29\x75\x9b\xe4\xe1\xc7\x7b\x64\x96\x61\x14\x62\xeb\xe9\xe9\x72\x36\xa1\xba\xda\x89\x92\x8d\xe4\x96\x65\x64\x38\xd5\x56\x60\xb5\x7d\xbc\x34\x1f\xe4\x87\x86\xa7\xc4\x22\x7f\xfa\x08\xb0\xdf\x45\xde\xf9\xaa\x4e\x6f\x6b\x2c\x20\xa5\x23\x47\x3f\x8c\xe6\xb7\xd5\xd4\xd5\xc2\x8d\x4d\xf2\x98\x5a\x1d\x94\x6a\x92\xa5\x5d\xbf\x92\x94\x26\x48\x38\x3e\x5d\xca\xae\xd8\x15\xc7\x1b\xf8\x31\x05\x77\x9b\x54\xa7\x1e\xe7\x6a\x37\x8e\xf7\xe0\x7c\x93\xc5\x02\x2b\x75\xa2\x68\xd6\x95\xee\x86\x8e\x81\xc9\xb9\x24\xc1\x27\xff\xb6\x68\x5f\x16\xff\xb9\x88\xa6\x0f\x14\x87\xb7\x7c\x7a\xae\x5c\x0a\x9c\xf7\x8e\x95\xb4\xb6\xd5\x76\xcf\xf9\xf4\x83\x8c\xe5\xcb\x0a\x5b\xdb\x59\xf5\xef\x13\x68\xbb\x94\xf8\x31\x82\xe7\x48\x94\x90\x97\x37\xf7\x56\xf4\x0b\x69\x90\x7a\x31\x22\x8e\x90\x9c\x74\x73\x33\x0e\x07\x8d\x64\x11\x6a\xe2\xf9\x52\xa1\x47\xfc\x7d\x1a\x14\x19\x45\xb5\x95\x5f\xed\xd3\x43\xaf\x64\xa4\xaf\x3e\x20\x95\x4b\x2c\xdf\x94\x45\x59\x8c\x69\x9b\x46\x47\x2c\xb6\x95\x5b\x03\xdf\xaf\x18\xfb\xf6\x43\x72\x3b\xc4\xbf\x5f\x83\x41\x56\x51\x57\x37\x72\xf6\x4d\x86\x53\x7c\x2c\xcb\xc5\xad\xcb\x85\x49\x14\xf5\xef\x05\x2e\x16\x8e\x43\xed\xff\x2e\x34\x22\xa0\x8a\x4a\x35\x70\xc2\xf7\xc5\xaf\x5b\x24\xa2\xd2\x48\x18\xa2\xf9\x71\x07\x8f\x44\xd4\x21\x7a\xa1\xff\x84\x87\xe8\x8e\x0a\xfb\x24\x62\x52\xc6\x59\xc0\x35\x16\x27\x51\xda\xe2\xfe\x5c\x0f\xb7\x1f\xaa\xec\x9b\x81\x2b\xe4\xaa\x36\xfd\x26\x51\x8c\x25\xd9\xfb\x31\x60\x62\xa7\xa9\x67\xce\x57\xdf\x30\x12\xf1\x34\xf5\x44\x88\x45\xd5\xb5\xbb\xa2\x52\xd0\xaf\xdb\xae\x74\x35\xb9\x51\x24\xe2\xca\x8a\x4a\x82\x68\xca\x37\xdf\x78\x18\x83\x6d\x49\x14\x47\x1a\xe3\xa9\x0a\x7e\x86\xbe\xe8\xfc\xd5\x1a\xd7\x5d\xfc\xc7\x08\x4d\xbc\xad\xca\xf8\xde\x5c\x2b\xca\x4e\x7e\x40\x9c\x42\xae\x9c\x5c\x32\x9d\x5d\x6e\x2c\x01\x4b\x2c\xcb\xba\xae\xc6\xea\x38\x24\x8a\x95\x35\x36\x2a\xd0\x3d\xac\xd0\x9e\x0f\xde\xc7\x36\x1e\x9b\x4b\xa2\x84\x59\x0d\x72\x64\x70\x2f\xeb\x3e\x7e\xb0\x74\xe8\xe9\xd7\x24\x60\xb0\x08\xbd\xbf\x74\x75\x03\x3e\xb7\x23\x51\x2a\x85\x70\x9e\x61\xc5\xe9\x52\x2d\xf7\x2b\xdf\xad\x09\x23\x20\xc3\xd7\x53\x3a\x1e\xab\x47\x76\xff\x9b\xff\x4f\x18\x21\x88\x2b\x18\x3a\xbe\xda\xe2\xff\xdd\xcd\xe6\x42\xc6\x15\x8c\x5a\x82\x0f\x75\xd3\x82\x29\x9c\xd7\x40\x7f\x3c\x8e\x6c\xb3\x65\xf3\xf0\xe0\x9c\x24\x25\x89\xf2\x28\xc3\x8e\xe9\x62\xb5\x3d\x4c\xee\x4d\x4e\x00\xc5\x4a\xd7\xff\x0d\x7f\xc9\x19\x36\x93\xe5\xe5\xad\x9d\x4e\xb1\x5c\x06\x31\xe1\xe7\xb3\x85\xdf\x5c\x7c\xb3\x9f\xb8\x0d\x95\xf8\xe9\x9d\x43\x86\xf9\xb2\xc5\x23\x7c\x5b\x3c\x6d\x16\x4b\xdf\x2c\x22\x91\x4a\x63\xbf\x7e\xae\x4e\x7a\xf8\xab\xdd\x26\x6c\x65\xc9\x46\x2a\x21\xae\xcc\xfc\x20\x43\x11\x83\x7a\x69\xa1\xb1\xf6\xdc\x93\x8a\x84\x1b\xa5\x63\x86\x8d\xa2\x7b\x68\x8e\xe0\x28\x63\xe1\x90\x88\xe9\x20\xf6\xde\x6f\xa7\xa5\x0f\xa4\x67\x27\x49\xa2\xc4\x9a\x8e\xe2\x3a\x7b\xdd\x23\xf7\x5d\x88\xf6\x8f\x8f\xc4\x24\xfb\x13\x4a\x4e\x82\xf1\xe0\x65\x8c\x95\x70\x23\x80\x93\x94\x86\x94\xe6\x2a\xec\x86\x44\x20\x24\x26\x03\x8b\x9b\x9b\xed\xd0\x40\x21\x11\xa8\x0c\x01\x10\x77\xf5\xf1\xb1\x81\xb3\x68\x60\x75\x45\xfb\xf3\xd3\xa4\x8a\xf4\xb1\x1a\x9a\x23\xda\x89\x7c\x9a\xce\x61\x93\xc5\xd9\x60\xb3\xf0\x9e\x8e\x7d\xed\x72\x49\xc4\x28\x32\x58\xce\x75\x5d\xae\xbb\x97\xa0\x86\x47\x08\x89\x14\xcd\xa7\x66\x16\xcf\x4d\x31\x0e\x20\xfe\x31\x0f\x26\x08\x21\x34\x46\x7c\x3a\xe6\x30\xde\x90\xde\xbd\x2f\xfe\xc4\x94\x71\x1f\x6f\x1e\x4e\x6f\x07\x5d\x15\xfe\x08\x8b\x13\x44\x8a\xfe\xa8\x3b\x68\x37\xc3\x72\x4e\x98\xb6\x75\xf5\x77\x84\x7c\x77\x9c\x47\x19\x66\xef\xa6\x01\x20\x5b\x33\x9d\x2a\x84\x73\x95\x0b\xd7\xcc\x73\x4a\x51\x4a\xbc\x27\x9a\x12\xc2\x65\x8e\xd1\x6e\x09\xa6\xcb\xf3\xd9\x59\xe2\x24\x52\xf1\x04\x51\x17\x52\xa3\x19\xa6\x83\x90\x58\x53\x6c\xfc\x87\x2d\x59\xfc\xfa\x24\xeb\x24\x24\xe5\x96\x71\x7a\x57\x1f\x03\xbe\xd3\xf2\x38\x3e\xfa\x80\xb0\x1a\xe3\xaf\x45\x75\x5c\x8a\xea\xd5\xdf\xa8\x2c\x4a\xac\x03\x02\xce\xef\x3b\xa8\x8e\xdd\x84\x74\x48\x48\x96\x00\xb6\xce\x34\xa8\x00\x86\xf8\x5b\x5d\x37\x42\xb2\x94\x21\x3e\x75\xb9\xdd\xfd\x11\xbe\x30\xcb\x10\x69\x8c\x72\x96\x7d\xc6\xb2\x0d\xd0\xfe\xef\x2f\x50\x3d\xd4\x16\xc1\x50\x87\x47\x99\xe5\x1c\xf7\x39\xa1\xf5\xd2\x9b\x3b\x4d\x9f\x42\xce\x13\x9e\x0d\x2e\x0e\xdf\xa1\xc0\x3e\x62\x1f\x60\xd4\x97\xee\xf7\x3f\x57\xb3\x07\x93\x73\xa9\x1c\xce\xef\x4b\x59\x4b\x51\x3a\xa7\xbe\x79\xd7\x95\x90\x3c\x17\x59\xea\x40\x17\xdd\x3d\xcc\x9c\xec\x24\x21\x82\xe4\x60\x93\x5a\xa7\x11\x3f\x7d\x59\x04\x91\x59\x3e\xf4\x5c\x3f\xe2\xe1\xf9\xd1\x54\xe4\x4e\x0a\x71\x7d\xf3\x3c\x6d\x42\x5e\xbf\xc1\x82\x5b\xed\xdd\x85\x69\x6e\x25\x36\x5c\x8a\x6a\xbc\x23\x10\xc9\x23\xe1\xd7\xa8\x4a\xd0\xd9\x8d\x50\xdc\xe8\x6c\xa2\xba\xbb\x12\x65\x89\x8f\x79\xbe\xbc\x8c\x76\x7c\xa2\x54\x94\xdb\x52\x51\xf5\xd8\x04\x0a\x26\x21\x0a\xa8\x76\x4d\xd6\xcf\xea\x94\x84\xe8\x4c\x3a\x1a\xf6\x0f\x10\x25\xea\xa6\x7c\xfe\x3b\xb5\x8e\xf0\xce\xf4\x31\x86\x37\x95\xf3\xdf\x0a\x91\x50\x56\x89\xbc\x0f\x66\x06\x05\x5b\x7f\x98\x65\xb6\x48\x72\x29\x7d\x7f\x62\x5f\xcf\x68\xaf\xfd\x28\x89\xbc\x14\x07\x15\xfb\x31\xc6\xbd\x61\x1a\x39\x09\x60\xdc\x3a\xf6\x41\x09\x7c\x38\xa9\x62\x28\xc8\x72\xbf\x7e\xd8\x2d\xa6\xc2\xa0\x84\x46\xd4\x26\xbf\x85\xaa\xf9\xbd\x57\x01\x22\x34\x52\x24\xf1\x9d\xe5\xcf\x29\xb4\x84\x46\x10\x2a\x24\x96\x49\x23\xca\xc1\x95\xad\x98\xf1\x99\x08\x25\x71\x6c\x8b\x3c\x28\x1e\xd9\xaf\x8b\x74\x3e\x42\x10\x7c\xb0\xc1\x40\xe6\xd3\x2a\x3f\xa1\x54\x44\x78\x01\xff\x8b\x73\x1b\xb3\xd9\xee\x6d\x76\x4e\xc6\x78\x4c\xfc\x06\xdd\x9c\xae\x69\x68\x11\xca\x52\x40\x0e\x68\xa0\x5c\x3b\xb5\xdc\xab\xc9\x22\xa1\xcc\x58\x00\xcf\x5d\x7d\xbc\x3a\xc1\x68\x92\x32\x49\xfd\xf2\x4f\xa2\xfb\xb6\x83\x73\xe0\x09\xf6\x87\xe3\x34\x64\xd4\x83\x3b\x75\x68\xcb\x13\x9a\xe8\x08\x06\x35\xfe\x45\xa5\x77\x50\x96\x8b\xb2\xbc\x6e\xc0\xfc\xae\xc2\x79\xfd\x79\x25\x5a\xa1\x5a\x8a\xb4\xec\x3c\x8f\x67\x9a\xea\x7a\x10\x9a\x52\x8a\xad\xdf\xcd\x6a\x3b\xf2\xf4\xec\x0f\x30\x8a\xb5\xdd\x93\xe8\x13\x23\xbf\x6a\xb6\xeb\xaa\x9f\xef\x7a\x18\x65\x7d\x26\x30\x1f\xdd\xb9\x8e\x38\xfc\x8d\xe2\x13\xa1\x69\xec\xd4\x70\xb5\x7e\xef\xac\xd6\x1f\x4f\x04\x77\x30\x5b\x2b\x99\xa6\xde\xc6\x2a\xb3\x93\x97\xd8\x6d\xf0\x34\x63\xd6\x3d\xe8\x84\x9a\x2f\xed\x6c\x76\x64\x99\x42\xed\x54\x37\xaf\xf6\x7e\x19\xbd\x04\x07\xdf\x7e\x90\xb2\xfc\x19\x8b\x78\xed\x23\x8e\xbf\xb5\xfd\xd0\x9c\xe7\xa9\xe5\xdd\xbc\xf8\x05\x91\x8a\x8c\x0e\xc6\x43\xfd\x0b\xb3\xae\xf4\x80\xff\x23\x54\xa6\x04\xb9\x2b\x07\xa1\xf5\x07\xb3\x4f\x2b\x81\x7a\xc2\x7d\x30\x2a\xab\x62\xfe\x93\x34\xc4\xb1\x15\xf7\xfa\xe1\xcc\x9e\x2c\xa9\x79\x09\xa6\x6e\x3e\xd8\x9e\xa9\x36\x26\xb1\xb1\x42\x29\x7e\x39\x0a\xe1\x95\x1f\xea\x46\x03\xe1\x3c\x1f\xb0\x80\xeb\x56\x85\xca\x1f\xa1\xc0\x00\xe3\xdc\x1f\x75\xd9\x7d\x44\x9a\x9b\x9f\x8f\x07\xbe\xcb\xc4\x46\x78\xfa\xb6\x43\x6c\x3b\x04\xdb\x73\x6b\x75\x92\xc3\x94\x83\x5c\x59\xf1\xaa\x3f\x77\x93\x84\x84\x82\xce\x71\x81\xb8\x5d\x6d\x37\x0f\x84\x50\xfa\x49\xbf\x71\x76\x4d\x26\x07\x44\xcd\x9a\xa2\x12\x65\xf1\x5f\xd8\x79\xc0\x38\xa1\x06\x32\xa7\x52\xaa\xef\xeb\xeb\x4e\x41\xe1\x3c\x8c\xa4\x11\xc6\x1b\xb6\x64\x7d\x70\x5b\xdd\xa3\x78\x7b\x8f\xa4\x27\x8c\x12\xd0\xce\x53\x79\x7b\xe9\x5c\x1e\x11\x8a\x32\x84\xb1\xc8\x8a\x16\x60\x23\xcd\x79\x7c\x5c\x5b\xd0\x18\x33\x36\x63\x39\xb4\x2f\x17\x63\xca\xff\x8b\xa4\x0b\x61\x9c\x30\x74\x0f\x10\x36\xee\x04\x8f\xa1\xde\x83\x38\x2d\x2a\xfd\xd8\xd4\xff\x0b\xaa\xbb\x8e\x08\x21\x8c\x33\x80\x7c\xf0\x85\x6e\x97\x6f\xcf\x2d\x34\x9b\xa9\x32\x01\x61\x9c\x53\xdb\x5d\x2c\x45\x1b\xe0\x39\x84\xf1\x14\xd0\x9c\xfb\x54\x54\x5d\x7b\x91\xfe\xcf\x71\xc2\x33\xd7\x8c\x58\x57\x7a\x60\x1a\x12\x16\x4b\xeb\x5b\x55\xc1\x2f\x14\x50\xf4\x62\xe2\x84\x25\x89\xb6\x45\x8c\x2b\x52\x4f\x57\xf7\x13\x96\xa6\x11\x52\xf1\x74\x1f\x69\x9d\x8a\x6a\xbf\xb9\xb9\xfe\x06\xb0\x34\xb7\xa4\xbd\x2f\x37\x2b\xeb\xd3\xc3\xfc\xb7\x66\x3a\xb6\xf9\x89\x8b\xdd\x47\xd2\x1e\xfd\xc1\x8c\x79\xe9\x78\x17\xa1\xac\x45\x53\x61\xbf\xcd\x0d\xc9\xfb\x55\x70\x14\x89\x77\xf5\xec\xc6\xe5\x71\x12\xc9\x60\xf5\x83\xf8\xca\x7e\x65\x73\xeb\xc8\x88\x67\x4c\x58\x2e\x0c\x49\xfd\x74\x19\x1a\x2b\xfe\xa8\x49\xb1\x78\xfb\xf0\xb4\x3c\xf4\xbb\xa7\xef\xfc\x12\x26\x28\x60\xda\xaf\x5e\x44\x73\x84\xed\xcf\xa9\x1a\x05\x61\x92\x1b\xd4\xa7\xfb\x59\x9c\xc3\x77\xc9\xc4\x12\xe3\x0f\x1a\xfa\x4d\xab\x85\x77\xd6\xd5\x57\x57\x33\x26\xb5\x41\xe1\xcf\xa2\x5d\x74\xf7\x75\xfb\xfe\x51\x4d\xe6\xb5\x4a\x23\xac\x27\x58\xc2\xf4\xef\x45\x75\xdc\xc3\x7b\x82\xd0\x55\xc2\x3c\x61\x2a\x33\xa8\xc5\xbc\xdc\xdc\xdd\x6d\xb6\x0f\x87\xfd\xf6\xf7\xf5\x83\xdf\xdd\x98\x8e\x49\x16\x79\xf8\x91\x0b\x45\xed\x6f\xf8\x34\x1a\x65\x60\x18\x22\xe1\xbe\xc1\x48\xab\x91\x30\xa3\x29\xc6\x98\xbe\xb8\x79\xdd\xda\x80\xf0\x88\xd8\xce\x73\x09\x3f\xa0\xdc\x56\x30\xd2\x8d\x20\x3c\xe2\x24\x77\x7c\x31\x07\xe8\xbd\x82\x3c\x1c\x5d\x0c\x8f\x12\x81\x9c\x28\x79\x79\x7b\x10\x6a\xba\x7d\xf2\x48\x02\x06\x15\x7d\xea\x73\x2b\x8a\x72\x79\x79\xc3\x86\x0c\x32\xa0\xfc\x57\x92\x4c\x19\x87\xc4\xff\x5a\x5f\x86\xbf\xd3\x88\x68\xcb\x92\x41\x8d\xda\xdb\xba\x59\x34\x1d\x66\x7d\xc7\x3e\xe4\x13\x57\x15\x61\x27\xd3\x86\xd3\x3c\x43\x3c\x22\xf6\x96\xea\x0a\x6e\x45\xd9\xc2\x02\xa5\xfb\x1f\x6a\xd7\x94\xf0\x5f\xc7\xa8\x52\xd6\xfa\xba\xfe\x89\xb2\x3a\x07\xb7\x80\x3a\xa1\xed\x2b\x6d\x1a\xc2\x59\x0a\x68\x8b\xed\x44\x18\xbd\xb1\x58\x7f\x44\xa5\xd1\x60\x41\xbc\x14\xcd\xaa\xd6\xd6\xb3\x68\x7e\xc9\x57\x66\x1d\x67\x2a\x27\x0e\xf9\x82\x96\x16\x8e\x5e\x7b\x75\x69\xe0\x4c\x27\xc6\xa1\xbb\x9f\x2e\xd5\x20\x5b\x4d\x38\x17\x5c\xdb\x29\x31\xc4\xc8\x43\x77\xaf\x3f\xae\xad\x93\x89\xad\x83\x1f\x6a\x33\xfb\x7d\x31\x4b\x71\xad\x3b\x8d\x10\xd5\x21\x51\xe5\xb1\xb0\x5a\x2f\x45\xbb\xa9\x3c\x08\x8a\xf0\x58\x45\x56\x78\xb7\x9f\xd6\xf6\xca\xfd\xa1\x44\x8a\x6c\x10\xec\xf8\x7f\x17\x50\x1f\xe0\x72\xfb\xa1\x1a\x5d\xf2\xad\x94\xde\x4d\x71\x2c\x3a\x11\xe0\x75\x93\x7c\x9d\xa7\x09\x95\x0e\xc7\xea\xcc\x94\xc7\xd8\x92\xe9\x69\x53\xe7\xdd\xb2\xdc\xec\xaf\x33\x43\x08\xcf\x18\x61\xe0\x90\x3c\x15\xa0\x54\xa1\xdd\x8f\x42\x0b\xe0\xb7\x30\x12\xf0\x1a\x0f\xfb\xc5\x13\x6a\xce\x3f\x6e\x57\x5f\x0f\x8f\xeb\xa7\xc3\xe3\xfa\x66\xb3\xbd\xf1\xe3\xf2\x88\x23\x75\x68\xb9\x5f\x79\x45\x2c\xc2\xf3\xd8\x16\x6c\x5a\xe8\x6c\x29\x68\xe6\x90\xd5\x0f\xc9\xc0\xa9\xa6\xf6\x33\x76\xfa\xa3\x73\x50\xb8\xb4\xf4\x99\xc8\xa3\xef\x6e\xba\x10\x94\x0b\xce\x11\xd9\x7b\xb8\x54\xbe\xab\x60\xdf\x9d\xd9\x4f\x55\x26\x86\xc1\x99\xe7\x03\x5b\x55\x37\x56\xa7\x56\x51\x66\x59\x74\x6d\xdd\x47\x28\x61\x47\xe4\x1a\x24\xb8\x72\xe8\xba\x7b\x79\x7c\x29\x06\x05\x76\xc2\x21\x95\x08\x7f\x3d\x20\xca\x0b\x1b\x8c\xb7\x75\x13\x94\xcc\xde\xe9\x14\x4d\xbf\x15\x14\x45\x45\x0b\xe7\xb6\xf0\x15\x9a\xff\x1b\xbc\xbd\x3f\x83\x41\x92\x2f\x92\x3b\x77\x3f\x45\x15\x2e\x4c\x0b\x15\xfb\xa6\xd4\x45\x75\xb5\x3f\x60\xa8\x60\x03\x50\x7b\xdf\xef\x2d\x97\x99\x60\x01\xe1\x26\xe1\x38\xc8\x14\x55\xfb\x32\xb3\x43\x22\xdc\x64\x1c\xfb\x50\x2f\xc2\x8a\x33\xed\x2e\xb2\x55\x4d\x71\xbe\xf6\x8b\xed\x47\xe2\x28\xcb\xa5\x75\x29\xe8\x93\x25\x5c\x94\xa7\x5c\x80\xeb\xb1\x53\x4c\x54\x84\xa8\x89\xfb\x5a\x5f\x4a\xf0\x8b\xe3\x2c\x91\x89\x69\x44\x30\x3f\x44\xaf\x84\xcd\xfd\xfa\xb0\xfe\xe3\xf1\x6e\xfb\xe4\x2b\xda\x31\x65\x11\xd6\x7d\xde\x27\xc2\x57\xef\x6a\x4c\x53\x89\x58\xaf\xd5\x9f\xb7\xf7\xe1\x1c\x86\xf8\xaa\xe5\x6d\xd1\xb4\xdd\xce\x62\xfc\xfb\x2d\x08\xf5\x3a\x87\x71\x09\xc2\xf6\x70\x37\x3c\xec\x9e\x1f\x1f\xef\xfe\x1c\x8e\x59\x82\x77\x3f\xbe\xa8\x8e\x28\xe7\xe3\x8f\xb1\x24\x8a\x1d\x6a\xc8\x77\x6c\x2d\x0a\xf3\x43\xdc\xcd\x68\xa3\x8a\x39\xa5\x08\xd1\xf6\x90\xc8\xa0\x89\xf4\x61\x25\x3c\x7c\x50\xe3\x93\x76\x53\x70\xd5\x08\xf9\x97\x53\x70\x88\xb0\x63\x9e\x10\xec\x24\xf4\xdf\xbb\xac\xc7\xce\x53\x24\xe6\x1a\x10\x35\xf6\xf0\x7c\x77\x77\x58\x5b\x3d\xc3\x3e\x4e\x58\xdc\x7d\xd9\x3e\x6d\xf6\x5f\xef\x0f\x37\xeb\xdd\xea\x69\x63\xff\xfa\xfc\xb4\x39\x78\xe6\x14\x89\xb9\xe1\xa9\x95\xc3\xf9\xc1\x1c\x4a\xfd\xd1\xc3\x79\x48\x1c\xa7\x0a\xa9\x34\x25\xf6\xc7\xc6\x50\x1f\x12\xc7\x2a\xb5\xd2\x07\xf0\xc3\xa9\xc9\xa9\x9a\x86\x83\x9a\x63\xd7\xfe\x76\xf3\xb0\xdf\xdc\xde\x3d\xef\xbe\xfe\xbe\xf0\xc7\x92\x98\x60\x1b\x06\x9c\xee\xdb\x48\x53\x85\xc4\x89\xb1\xdc\x96\x5b\x40\x57\xd9\x70\xc2\x94\x4b\x36\xa0\x60\x2c\x07\x6c\xb2\x94\xc5\x69\x4c\x33\x17\x5f\x4e\x3d\x92\x3f\xcd\xe1\xe2\x54\x68\x74\xfb\xc6\xd5\xf3\x10\xbe\x4e\xc5\xca\x41\x70\xff\x79\xd1\xc7\x59\x19\x3c\xce\x92\x0c\x81\x81\x5f\xa0\xfb\x06\x4d\x3b\x60\x29\x49\x9c\xe5\xa9\x72\x0b\xb2\xe3\x21\x8e\x9e\x62\x26\x28\xae\x7e\xd2\xea\x21\x7e\x90\xd0\xcd\xb0\xda\xa3\x8f\xcb\x84\x39\x78\xce\xb2\x28\xcb\x11\x8f\x85\xc4\x79\x96\x5a\x45\x95\x4b\xd9\x5d\x1a\xd8\x37\xe2\x07\x94\x88\xa4\x09\x26\x52\x61\xa8\x54\xf8\x00\x56\xdb\xfb\xc7\xc5\xc3\x9f\x87\xc5\x6a\x15\x3c\xd8\xf1\x30\xe0\xb2\x7f\xbf\x79\xd8\xdc\x3f\xdf\x1f\xfe\xdf\xf3\xf6\xe9\x39\xbc\x9e\xb9\x4e\x88\x2b\x56\xee\xa0\x2c\xa1\xd9\x15\xc7\x2b\x62\x6a\x24\x16\x2c\xc1\x90\xb7\x43\x4c\xdb\x6c\x6a\xff\x9b\xfd\xcf\x3b\xbf\xa2\xd1\xd6\x13\x8b\x94\x62\xc8\xf1\xb3\xdf\x4a\xfa\x8d\x89\xf8\x44\x25\x16\x22\xf6\xc6\x36\xbb\xe2\x58\x0d\x86\x7d\x3e\x5e\x8b\x85\xd6\xe8\x6b\xdd\x87\xd8\xc4\x7f\x4c\x52\xdb\x65\xf9\x32\xa4\x30\xbb\x4e\x74\xb0\x16\x4d\xf9\xb6\xc7\xb4\x49\x74\xa0\x97\x6f\x7b\xa8\x44\xd5\xed\x40\xdd\x80\x4f\x39\x62\x9d\x18\x16\x0f\x41\xa4\x53\x6d\x46\x03\xb0\xf9\x12\xa9\x95\x05\x59\x9c\x8a\xea\xf6\x52\xe9\x4d\x35\x62\x71\xf4\x47\x15\x3e\x25\xeb\x01\x3e\xc9\xe6\xe8\x6c\x62\x1a\x69\xbc\x6e\xe7\x6d\x53\x3b\x0d\xff\x65\x5d\xbf\xce\x62\x9c\x24\xa2\x11\xf2\xcf\x77\xfb\xe5\x66\xbc\x2e\x24\x91\xb0\x5c\xfb\x16\xba\xdf\xdf\xd4\xfb\x1b\x95\x90\x28\xc2\xd4\xc1\x4e\x96\x87\xa0\xc3\xdd\x1f\xd1\xe8\x7a\xfe\x6d\x8b\xd2\xd5\x8f\xeb\xa7\x21\x10\x49\x28\xc9\xad\xda\x39\xc0\xf7\x31\xea\x71\x51\x96\x61\x08\xcd\x70\xbb\x6c\x6b\x13\x54\x24\x9f\x9c\xe0\xed\xec\x8e\x25\x54\x58\x2f\x08\xdb\x4e\x1b\xdb\xce\x4e\xe3\xf0\x84\x29\x85\x6b\x00\x76\x34\x46\x5c\x2a\x92\x70\x06\x08\xf1\x0e\x46\xa1\xeb\x6f\xdb\x29\xb6\x96\x24\x3c\x23\xbe\xe3\xb9\x44\x7d\xf2\x7b\xf1\xeb\x7a\x28\x9c\xf0\xdc\xea\x98\xdb\xa8\x71\xea\xa1\xfd\xd1\x7f\xa7\x97\x1a\x53\x89\xe4\x2b\x6b\x51\xfc\x54\x97\xe5\xcd\xb8\x2b\x31\xbd\x01\x71\x42\xad\x2d\x5d\x71\x6e\x9f\xbc\xc7\xed\xe4\xbc\x7e\xa0\x60\xcc\xe9\x6f\x0d\x35\x16\xdc\xe3\x6f\xeb\x66\xa3\x66\x19\x77\x92\x50\x1d\xc0\x15\xb8\xad\x5f\x29\xdd\x24\x49\x42\xa4\xaf\x45\x2f\x8e\x0d\xc0\xd0\x8f\x75\xe5\xfa\xab\x49\x51\x92\xc8\x38\x76\x6d\xd6\xe0\x73\xf3\x55\x94\x3f\x8a\xea\xd8\x87\x29\x85\x7e\x87\x66\xf0\x1f\x54\x44\x7a\x2e\xa7\xa3\x3b\x5f\x5d\x99\x93\x54\x59\x36\x54\x9f\xbd\xfc\xba\x46\x64\x25\x49\xaa\x63\xc4\x0a\x38\xf2\x28\x62\x39\xfc\x9c\x48\x8d\x6d\xea\xf7\xfb\xc1\xaf\x73\x59\x37\xb0\xe9\xe0\x34\x3b\x41\xa6\x45\x26\xbc\xbd\x9b\x13\xbb\x9e\x1b\x1f\x4b\x92\xe4\xb9\xc5\x4b\xae\x46\x8b\x79\x22\xb8\x6d\xa1\xdb\xdd\xef\xb9\xb2\x54\x2f\xff\xf5\x22\x4b\x70\x63\x6d\x2f\xa7\x93\xf0\xe2\xda\x24\x11\x92\x21\x22\x0f\x3c\xab\xde\xd1\x51\x7d\x05\xff\x7a\xd8\x9c\x08\x23\x50\x32\x65\xbb\x7a\x11\xa1\xd5\x9d\x48\x62\x8d\xb5\x07\xd9\xc9\xdb\x02\x4a\x4d\xc3\xf1\x8c\xa3\xcc\x6a\xdb\xdf\x02\xfb\x6e\x20\x71\x7b\xfc\x2b\xa4\x8e\x11\xc0\xe8\x45\x20\xcb\xba\x6d\xc7\xc5\x98\x44\x45\xb9\x89\x3c\xa7\x6c\xd3\xb6\x97\xfe\xa5\xc0\x14\x74\x7a\x89\x2a\x07\xac\xdf\x9a\x12\x7e\x15\xb2\x8f\x21\x07\xc8\x15\x49\x74\x94\x61\xf8\xf3\x54\xd7\x5d\x3b\x59\xa5\x74\x04\xf8\x56\x6f\x96\x5f\xae\x39\x50\xce\x26\x85\x26\x31\x8e\xae\xea\x7e\x61\xfd\x0e\x05\x76\x20\x86\xaf\xa1\x54\x38\xb0\xc2\xf9\x11\x0b\x79\xed\x70\xc8\x5b\xfd\x54\x15\x34\x56\xce\x2d\x1c\xcb\x12\x6a\xe9\xed\xbf\x36\xab\xed\x04\xde\x93\x68\x4d\x98\x15\x80\x6a\xe1\x77\x68\x2a\x08\x8b\x9c\x06\xcb\xe5\x5a\x41\xbf\x9f\x94\xe5\x1b\x2a\xf8\x4e\x5b\xad\xd7\x6b\xb5\xb3\x1f\x05\x42\x20\x39\xfe\x11\xba\xf6\x4a\xa3\x36\x31\x5c\xa0\xb2\xee\x97\x47\xe1\x0d\x45\x48\x1a\x45\x80\x98\x5a\xb4\xad\x76\x8f\x7f\xa6\xc8\x44\xd2\x28\x4d\xf0\x12\x6d\x8f\xfb\xb1\xa9\x6b\xe3\x94\x38\xb0\xa2\x36\x79\xa5\x53\x92\x71\x84\x32\x3e\x3c\xdf\x1f\x56\xdb\xcd\x03\xe6\xa0\x8b\x3f\x36\x3e\xbc\x4f\x89\x00\xc4\xf7\x43\xf7\x32\x98\x1b\x91\x94\x48\x92\xd9\xd2\x5f\x71\x3c\x42\x33\x42\x70\xf9\x01\x1a\xc0\x0a\x84\x40\xb7\x12\x1d\x1c\xeb\xa6\x80\x77\x75\xd8\xe9\x4d\x49\x29\x49\x90\x2a\x75\x2a\xaa\xce\x17\x91\x9a\xdf\xe6\x20\x8b\xe9\xcf\xa5\x8c\x22\xba\xa8\xdf\xf9\x1f\xa1\x69\x85\x73\x96\xf3\x17\xc2\x78\x82\xac\xd1\xa1\x38\x3e\xd6\x3e\x26\x29\x4f\x19\xb7\x22\x1c\xd8\x49\xc0\x1b\xe5\x23\x88\x34\x16\x56\x5b\xcf\x12\x90\xf6\x9b\xf5\xd3\x81\x1d\xee\x36\xf7\x1b\x1f\x39\xa5\x49\x64\x9d\x26\x54\xdd\x76\xe3\xaf\xed\x17\x59\x0c\x59\x84\x6d\x20\x3e\xd4\x77\x75\x75\x44\xc9\xe1\xb1\x95\x8b\x1f\x2d\x22\xcc\xf3\x9f\x84\x94\x45\xb7\x68\xa0\x9a\xbd\x6a\x69\x46\x35\xee\xae\xdd\xb1\xb1\x55\x5c\xff\x45\x39\xa5\xb8\x4c\xd4\x55\xf9\xf6\x54\x97\xb3\x7b\xec\x1b\x43\x69\x9e\x65\xb8\xbf\x3d\xad\x77\xeb\xa7\x6f\xeb\x9b\x83\xd7\xf7\x19\x7a\x7d\x69\x6e\x6c\xd1\xe7\x4b\xec\xff\x22\xf2\x0c\x2b\x9e\x23\x7d\xe7\x7d\x3d\x30\x94\x26\xb0\xf5\x7e\x34\x60\x87\xca\x99\x0e\xe3\xea\x7a\x9a\x11\xcd\x48\x2a\x04\xc1\x8d\xfb\xe0\xc5\x9b\x1f\xe0\xa7\x93\x79\xf3\x23\x94\xc6\x48\x5c\x05\x66\xe9\xac\x71\x94\xca\x9c\x63\x69\xa0\x83\xb6\xdb\xbd\xb5\xfd\x22\xef\x8e\x28\x66\x2c\x33\xd3\x5e\x83\x78\xdf\xdc\x4d\x55\x22\x64\x36\x78\x2d\x88\xd2\x76\x9d\x66\xa3\x74\x9c\xe3\xaa\x63\x5d\xbb\xc7\x36\xae\xb3\x49\xab\xb3\x84\x23\x4f\xec\x5c\xb4\xb5\xfe\xbc\x16\x92\x6a\xc3\x48\xe2\xc1\x76\xc8\xe3\xfa\x14\x4a\x4a\x52\xc8\x14\x37\x01\x9d\x73\x5b\x37\xe7\xf2\xd2\xd5\x55\xa1\xc2\x5d\x07\xe9\xca\x41\xd6\x9e\xe4\xa5\x28\xcb\xd9\x4f\x31\x91\x22\x6a\xdc\xc8\xfb\x0e\xc5\x00\x46\x4a\x4d\x6c\x43\x8c\x75\xd5\x41\xb3\x1a\x79\x52\xfb\xe3\x8a\x79\x93\x3d\x47\x4f\xf7\xe0\xa3\xe9\xc0\x2c\x22\xd6\x96\xe7\xe0\x44\x7c\xc6\x68\x05\x37\x84\x24\x06\x3b\x6e\xfb\xf5\xbd\x5b\x8e\x3f\x5d\x11\x32\x92\xc7\xd8\x07\x16\x5a\x2f\x3a\xc7\x15\xf8\x6d\x22\xac\xf9\xa1\x9b\x69\xff\xe1\xc4\x3a\xa6\x43\x05\xbf\x8a\xf1\xaa\x90\x11\x91\x19\xe5\xd1\x2a\xb3\x34\x37\x23\x9a\xa1\x66\xd6\x97\xfb\x5b\xff\x27\x9a\x00\xb8\x0c\x04\x19\x28\xcf\xe7\x5b\x80\xe5\x1b\xfe\xff\xec\x27\xd2\x3c\x65\xd9\x54\x78\xad\x6e\x5a\x1b\xf6\x5c\xad\x58\x66\x5c\x02\x92\x9a\x74\x23\x8a\x0f\x00\x0c\x59\x9c\x65\x66\x50\xca\xfd\xd2\x88\x1f\xa2\x13\xcd\xdc\x96\x9c\x64\xb1\xc8\xd0\xbc\xd6\xd9\x98\x4e\x31\xc7\xb3\x73\x26\x00\xd6\x16\x0e\x44\x09\x4d\x60\xc2\x90\x2c\x25\x56\x55\xf0\xd8\xd4\x3f\xbb\x97\x89\xf6\x2f\xc9\x52\x2e\xf1\x0d\xdb\x3c\x7c\x5b\xef\xf6\xf7\xeb\x87\xfd\xe1\x79\xb7\x7e\x22\xe1\x78\x9e\xe1\x8c\x75\x46\x27\xa1\xaf\xea\x0f\xcb\x44\x3a\x98\x0d\xd6\x76\x30\xf0\x98\xc6\xf6\x59\x2a\x35\xb5\x8d\x96\x47\x71\x19\xb6\xfa\x2c\x23\x14\x53\xa9\xdf\xd7\x7f\xee\xfe\x92\xb0\x4b\xb2\x4c\xa5\xe8\xdb\x6d\x00\xee\x6b\x1d\xce\x9e\xc7\x99\x4f\xd7\x3a\xac\xe5\x4c\xf6\xdf\x6b\x5d\x7f\xff\x41\xa1\xb1\x6f\xd4\xaf\x3a\xeb\xa6\xa9\x9b\xe7\x2a\x88\x8e\x69\x6c\x4f\xcc\x7f\x6c\x6e\x34\x6e\x2e\x68\x6d\x3e\x3d\x99\x88\xa8\x77\x19\xb6\x00\x82\x76\x5c\x88\xcd\x44\x4a\x7c\x24\xec\xee\xff\x7c\xa1\x08\x03\x33\x18\x29\x27\x2c\xa1\x9b\xf4\xf1\x32\x61\x38\x30\x07\x54\x98\x69\x9a\x7d\x56\x8a\x70\x9f\x96\x4a\x70\xbb\x14\x5f\xaa\x6e\x21\xdb\x0e\xaa\x11\x8d\x94\x64\x2a\xc9\x78\x1a\xf8\xdd\xcf\x63\x19\xe7\x30\x46\x47\x2a\x73\x2d\x73\x74\x3d\xfa\x5e\xe8\x6e\x7e\x37\x34\x24\xb8\xbd\xad\x2b\x1d\x3c\xfb\xdc\x21\x88\xec\x72\x7d\x5b\xd7\xd3\x4e\xca\xbb\xe7\x03\xdc\xc4\xce\xeb\x04\x2a\xfd\x3b\xbc\xd9\xa0\xf6\xda\xef\x02\x43\x10\x44\x68\x41\x6d\xe3\x08\x3b\x03\x63\x50\x3e\xe4\x8b\x55\x60\x59\x89\xae\x5d\x68\x0d\xce\xff\x2b\xfe\x37\x49\x1c\x06\x24\x33\x24\xc7\x76\x1a\x12\x71\x5b\x07\x08\xb4\xc7\xf2\x28\x4e\x69\x1a\xf2\x36\x57\xf6\x9a\xef\x0d\x93\x58\x2c\x8f\x92\x4c\x8d\x00\xa8\xdf\x07\x7b\x65\x92\x13\x6a\x6b\xbc\x08\x27\xb1\xdb\x6a\x57\x2f\xef\xae\xef\x32\x39\xc9\x18\xca\x27\x7d\xad\x75\xe9\xe4\xbb\xf4\x28\x01\xc8\x69\x64\x15\x52\xd0\x28\x18\x36\xaa\xb6\x36\x9d\xfe\xa8\xb6\xa9\xb0\xbc\x34\x61\x1a\xe5\x8c\x09\xdf\xca\x5d\x94\xe5\xee\x45\x34\xa0\x9d\x96\xc6\x0c\xfc\x90\x33\x4e\xb0\xda\x6a\xb7\x1b\x25\x4a\xb0\x04\x99\x70\xaa\x44\x21\x90\xd9\xb5\x9d\xb7\xd5\xb1\x1e\x3a\x4f\x39\x8f\xac\xfd\xe8\x11\xba\xe7\xd3\xab\xb8\xba\x62\xe6\x89\x10\xd2\xca\xf8\xa1\xd9\xe1\x52\xb4\x53\xc4\xaf\x1f\x66\x18\x32\xbb\x7e\x42\x71\x57\xfc\xe7\x12\x02\xe9\x3c\xa5\x31\x4a\xd0\xf4\x0b\xd0\x07\x71\x74\xde\x07\x65\xd6\xb1\x28\xdc\x84\x34\xcf\x53\x31\x71\x06\xff\x13\x44\x83\x7a\xfe\xb8\x86\x8c\x60\x28\xee\x13\x59\x6a\x55\x76\x1e\xea\x4e\x34\x6f\x8f\xa5\xe8\x4c\xdd\x9c\xc6\x5b\x51\x9e\xe5\x02\x19\x13\x81\x7e\x76\x2b\x34\xd4\x97\x6e\x5f\x87\xee\xcc\xf0\xae\xfe\x3b\xff\x1f\xff\x31\x30\xa8\x64\xe5\xfd\xd4\x8a\xea\x78\x5b\x5b\xe1\xd4\xd9\x2a\x94\xe7\x79\x8e\x1a\x64\xa5\x33\x37\xf1\xf8\x9a\xe9\xa5\x0a\x1e\xf3\x31\x94\x42\xaf\x87\xd9\x2c\x62\xab\x02\x7e\x2e\x85\x82\xed\x19\x2a\xdf\xd1\x9a\x14\x4a\xfc\x60\x19\x61\x92\xec\x83\x46\xac\x86\xdd\xe3\x02\x11\x52\xac\x5c\xc8\x9c\x3b\xd3\xc3\xe5\xa5\xa9\xf6\x5e\xbc\xd9\x1f\x97\x24\x46\x37\xaf\xdb\xa2\xea\x2c\x58\xbd\x7d\xbc\xc8\xb2\x50\x61\x00\xb5\xfc\x43\x6b\xf7\x7f\x2b\x8a\x12\xb4\xd3\xbd\x99\x2c\x80\xb9\x54\x11\x26\xf2\x5f\x9a\x42\x6b\x18\x7e\x93\x8a\x4c\x0c\x23\xf6\xcc\x6d\xdd\xac\xea\xd3\x19\x5c\x77\xe9\xaf\x8a\x3f\xd7\xe2\x96\x0f\x0a\x27\xb9\x26\x8c\x5b\xc1\xd0\x1f\x45\x0b\x0f\x97\xd3\xbb\x0e\xfb\x74\x25\xcb\x35\xcf\x49\x10\x20\x3a\x9d\x3b\x38\xd0\xc9\x36\x9f\xeb\x84\x59\xcf\x4d\x47\xa9\xbe\x26\xa5\x40\x72\xa0\x59\xe6\x0a\xd3\x87\x73\xbf\x93\xae\xbe\x8f\xcb\x19\xb9\x61\x11\x0c\xa6\x11\xbf\xff\xb9\xba\xfe\xb6\x19\xe1\xe2\x84\x7a\x77\x51\x0a\xa0\xcf\x93\x3c\xdc\xc0\x0f\xd1\x10\x8b\xb0\xa2\x4c\x91\xe0\xd3\xb3\x89\x28\xe2\x91\x2b\x72\x0a\xd5\x41\xa5\xcb\xf0\x2e\x88\x28\xb6\x3b\x76\xbf\x35\x2f\x37\x7f\xfc\x3d\xe4\xbe\x88\x5c\x70\x86\x72\x44\x10\xda\xae\xd7\xf0\x76\xfe\x13\x59\x84\x28\xae\xba\x9f\xbe\xc8\xc0\x6e\xa6\x8b\x98\x20\x44\xa1\x30\x4a\xd7\x88\xf6\x65\xaa\x0f\x45\x04\x61\x56\x12\xc6\xf2\x39\x67\xea\xa7\x7e\x8c\x64\x5e\x88\xfa\xa0\x5e\x9a\x11\x54\x42\x50\x69\x5b\x55\xd6\x7a\xdc\x36\xb3\x56\x8b\xc7\xc3\xf6\xf6\xd0\xa7\x64\x7e\x18\xa3\x39\x22\xac\x6a\x6c\xfe\xf5\x8b\xc1\x18\x27\x20\x18\x87\xc8\x85\xc6\xc8\x78\xfb\x1c\x38\xe4\xfe\x3d\x9e\x44\x82\xa9\xc4\x76\x97\xdd\x86\xfd\xae\x8b\x2f\xe2\x24\xc2\xf2\x80\xd0\xfa\xb0\x5d\xfb\x86\x80\x48\x92\x14\xd1\x95\x45\xdb\xbf\xbb\xae\x33\xe3\x8f\x65\x44\x59\xc0\x32\x82\x1f\xf0\xe5\x5f\x20\x0e\x4a\x8c\x89\x62\x22\x11\x06\x9b\x30\x1a\x54\x29\x9a\x91\x9a\x03\x11\xa9\x8a\x22\x67\x15\xf4\xe2\xf0\xe6\xa0\xdf\xe1\xf3\x3e\x9f\x13\x19\x05\x2c\x50\xfc\x53\x08\xdf\x3e\x14\x99\xa4\x38\x49\x9b\xb1\x3c\xd2\xbe\xbe\x17\x85\x97\x85\xf2\x23\xf3\x84\x60\xf1\xff\xe6\x7e\x7f\xc0\x9b\xbe\xbb\x0c\xe5\x21\xd1\xef\x02\x58\x32\xa8\x5f\x67\xd1\x98\xc8\xa5\xf6\x16\xfd\x4e\xdf\x7d\xd3\x4e\xa1\x15\x22\x37\x36\x42\x3f\xcc\x81\xf0\xff\xe6\x73\x2a\x8d\xfb\x84\x48\x34\xd6\x8a\x9c\xdb\x46\x55\x74\x63\x3b\x7b\x22\x84\x4a\xa8\x83\xfd\xef\xea\x4b\xa5\xd7\xc6\x80\x9a\xa2\x93\x32\x0f\x5c\x15\x32\xca\xf3\x7c\x48\x17\x7f\x2f\xd4\x6b\x6d\xcc\xff\xbb\xd4\x4d\xe0\x74\x09\xc5\x53\xbc\x79\x21\x45\x5f\x8a\xfe\xe7\xb8\xf2\xde\x65\x00\x78\x87\xd7\x45\x73\xc5\xb3\x20\x2b\x85\x8c\x39\x8f\x26\x6a\xaf\xa8\x80\x13\xa1\x15\x45\x1c\xa4\x7b\x0a\x37\x4b\xff\xdd\x90\x47\x24\x0d\xeb\x7a\x2b\x42\x83\x41\x40\x9e\x61\xa7\xb9\x14\x6d\xb7\x6f\x60\x80\xcf\x09\x03\xb9\xef\x7a\xdc\x8b\x5f\xfe\x02\xc6\x11\x81\x35\x37\x99\x4c\x11\x49\x05\x18\x8f\xf1\xd9\x20\x50\xc2\x05\xc8\x9b\xaa\xab\x57\xa2\xf1\xb3\x41\xb2\x28\x66\xc1\x0b\x4a\x28\x0b\xfc\x1c\xda\x20\xb7\x0d\xc0\x67\x79\x96\x64\xda\x8a\x5f\x63\xc9\xda\x9f\x34\x8e\x19\x16\x8b\x45\xff\xf6\x88\x0e\xd0\x07\x62\x76\x85\x49\x66\xd0\x72\xdf\xeb\x44\x8c\xc0\xfa\x32\x11\x09\x68\x1f\xd7\xc3\xa9\xa8\xae\xac\xb8\xb3\xeb\x48\x04\x20\xfc\x7f\x77\x77\x3f\x8e\x40\x64\x9a\x5b\xbd\xfb\x16\xba\xdb\xe2\xf8\xe2\xf8\xcc\xe3\x74\x44\xa6\x2a\xf3\x2a\x01\x6e\x89\xc5\x1e\xc4\xfb\xa5\x55\x66\x34\xc7\xba\xea\x01\x87\x5a\x22\x73\x3f\xec\x6b\xd1\x06\x92\xf4\xfc\xb5\xf5\xdf\x92\x27\x06\xc9\xb0\xc7\xe2\xc7\xec\x8e\xce\x63\x7d\x99\x43\x8a\x9e\x6d\x02\x25\xf1\xb7\xe6\xca\xca\xe0\x46\x8a\x44\x58\xa0\xaa\x35\x1d\xe9\xaf\x7d\x5a\xb7\x92\xfd\x6a\x64\x7f\x7f\xf3\xa3\x50\xf0\xa5\xa9\x2f\x67\x27\xdb\x70\x6d\xb7\xf7\x57\x2b\xb9\xf6\xa6\x26\xbf\xde\x26\xfe\x24\x93\xad\x44\xca\x38\x8b\x5d\xa8\x33\x29\x41\x4b\x19\x1b\x8d\x11\x88\x5d\x20\x6e\x40\x0e\x87\x52\x88\xfa\x3b\xf1\x03\x9a\xc0\xe8\x7d\x84\xa6\xa8\x75\x18\xa1\x6c\xad\xb4\xae\xca\xb7\x65\x7d\xa9\x14\x34\x3b\x34\x6e\x70\xca\xf1\xc3\x36\x2f\xa5\xe6\x56\xc5\x03\xcb\xe0\x57\xc9\xc4\x44\x2a\x65\x6d\xd3\x9d\xc9\xbc\x0d\xec\xdc\x31\x9d\x26\xc8\x7e\x3b\x89\x5f\x63\x13\x87\x51\x19\x55\xea\x54\x62\x92\x87\x28\x90\x71\xff\x53\x82\x64\x28\xa9\xf2\x50\xdb\x9d\x02\x7f\xcb\x48\xe5\xc8\x3f\xe1\x91\xec\x69\xfa\x3f\xd3\x70\x6a\x74\xcc\x9d\xd4\x44\xb1\x87\x61\xff\xb3\x96\xed\xb2\x1e\x2d\x4c\x76\x88\x8a\x20\xb2\x92\x82\x58\xe6\x0b\x5f\xc3\x86\xaf\xf1\xfc\x53\x15\x19\xaa\x5d\x43\xa4\xbf\xb0\x40\x13\x73\x3f\x41\x91\xc4\x86\xe8\xde\x44\x69\x0a\xc7\x54\x24\xb7\x64\x85\x3b\xe8\x36\x98\xcc\x3b\xa9\xbe\xfa\xe4\x11\x28\x8a\xb2\x14\xa9\xb8\xa7\xb7\x7b\xe8\x5e\x6a\x3d\xd1\xbb\xed\x0f\x2b\xac\x96\xf7\x81\xd3\x78\xd9\x6a\xc3\xe7\xe3\x18\x2b\x32\x83\x0a\xd3\xf5\xd9\xae\x58\x64\x59\xde\x2d\x74\xdf\x2c\xa6\xbe\xa8\x07\x11\x72\x67\x56\x44\x92\xf7\x24\xc3\xd1\xbf\x49\x38\x19\x95\x23\x7b\xa6\x45\x75\x84\xf2\xce\x7b\x9f\x26\x7c\xd4\x52\x54\x4c\xe5\xd8\x3c\x46\xc2\xb8\x68\x01\x37\xcd\xef\xd6\x9d\xc1\x1a\x0d\x4d\x2f\x93\x4b\x1b\xe8\xb9\x32\xed\x9d\xf8\x69\x2e\x65\x85\x40\xfa\x51\x55\xcf\x0d\x8e\x4d\x9e\xbb\x36\xee\xc2\x98\xa2\x2c\x44\x77\x25\xa8\x53\x09\x85\x6c\xd0\xb0\x76\x6b\x79\x51\x57\xcf\x55\xd1\x71\x7f\x23\x93\x98\xa4\x22\x88\x77\xd8\x52\xfa\xd6\xf8\x0a\x8c\x1b\x94\xb2\x98\x3a\xb9\x9c\xdf\x41\x29\xf1\x4a\xe3\x64\xf6\x65\x99\x50\x98\xe4\x9c\x8a\x0a\xe5\x42\xc2\x53\xf3\x6f\x84\xca\x23\x83\x64\x6f\x0c\xce\x8a\xea\x88\xf0\xa1\xc1\x34\x86\xa8\x5c\xa9\xc4\x45\x88\xbb\x25\xea\xb6\x85\x23\x06\x30\xbe\x42\xe1\x47\xff\x47\xc1\x24\x26\xc6\x87\xc2\x39\xd0\x84\xcb\x95\x91\x46\xf2\x14\xfc\x3a\x17\x41\xa3\x9d\x28\x49\x93\xd4\x77\x43\xc3\xdf\x38\xc5\xdd\x55\x0e\xc5\xc9\xe7\xc7\xe1\xa0\xd3\x9d\xb7\x98\xd4\xd0\x3f\xfc\x29\xce\x9b\xea\xff\x6a\x0d\x4e\x94\x8c\x53\xee\x76\x65\x44\x5c\x3c\x0e\x86\x22\xe1\x0d\xc3\xfa\xdb\xb9\x84\x99\xa2\xe6\x67\xd4\x1b\x25\x73\x4e\xe3\x61\x41\x3f\xbc\x16\x21\x46\x50\x8a\x68\xeb\xb2\xec\xec\x4d\x2a\xbd\xbc\xf4\x19\xc6\xec\xe9\x29\x96\x69\xf7\x96\xec\x5e\xea\xa6\x7b\xec\x07\x17\x75\xb5\xc6\x3b\xa8\xc3\xd9\x38\xc3\xa8\x06\xd3\xde\x71\x3d\x46\xa9\xd4\x4a\x1e\xf7\x89\x0a\x6a\x40\xcf\xc5\xba\x89\xd2\xd4\xaa\xe3\x5a\x8b\xba\x0f\xe4\x01\xfc\xd8\x34\xd7\x4e\x4d\xa5\x7f\xc3\xc5\x34\x0d\x9b\xbd\xe2\x5a\x02\x96\x21\xd7\x77\x7b\x2f\xe4\xa0\x20\x12\xb9\x74\xd4\x02\x8b\x9c\x1d\x03\xe7\x14\xc8\x14\x7b\x14\x76\xb7\xfc\x8c\x1c\xed\x3f\xa0\x35\x52\x01\x1f\xc5\xdb\x23\x34\xaf\xe3\x70\x41\x01\x30\xec\x8e\xa2\xbd\xf5\xd6\x38\x19\xa9\xb9\x5e\xa5\x1b\x6c\x78\xe4\x26\x81\xeb\xcb\xb5\xfb\x7a\x5b\xc1\x5c\xdc\x72\xf2\xed\x3a\x8a\x12\xc4\x99\x59\x51\xca\xcd\x6a\xfb\xdb\xfc\x78\xca\x86\x75\xe9\x5e\xfc\x7a\xb8\x9c\xee\x57\xf3\x41\x31\xc7\x40\x64\x07\x95\x5e\x9f\x44\x51\x5e\x2b\x04\xea\x28\x51\x78\x67\x4e\x88\x96\xf8\x2a\xfa\xc9\xd2\xcc\x39\xc7\x3a\x92\x16\x69\xd5\x42\x59\x4e\x48\xf5\x3a\x32\x12\xb1\xa0\x97\x46\x54\xc5\xe5\x74\x2e\x2f\x93\x56\xb7\x26\xc4\x2a\x6c\xf4\xeb\xb1\x43\xdd\xff\x45\x02\xf3\x09\x24\x50\x93\x54\x21\xc8\x7e\x10\x4e\xba\x22\x2a\x42\x34\x11\x04\xfb\xf2\xea\xd2\x3c\x81\x99\xf4\x0b\x35\x31\x80\xf8\xcb\x93\x43\x31\xde\xfc\xe1\x9b\x1c\x9a\xb2\x14\x97\xfb\x7f\x5e\x4e\xd2\x2e\x31\x9f\xcb\xcb\xfb\x8f\xa5\xc0\x1c\xb7\x72\x77\x12\x65\xf9\xde\x39\x8a\x68\x06\x02\x3b\xd7\xfd\x06\xd7\xce\xfa\x2d\x9a\xc7\x36\xcc\xfd\x5a\x57\xf0\x86\x12\xa4\xb3\x92\x92\x8e\x09\xc1\x3a\xfa\x57\xf1\xf3\x95\x7e\xa2\xc1\xd8\x8f\xd4\xa8\xfd\x7e\x16\x6f\x7e\x9b\x9a\x9e\x2a\x49\xa2\xc8\x7b\x52\x09\x0b\x10\x41\xe3\x4e\x7f\x58\x50\x13\xb9\x0b\x1d\x99\x31\x11\x9d\x02\xa0\x80\xba\x2e\x5a\x4c\x15\xdd\xca\x55\x0c\x77\x36\x27\x39\x46\xe4\x77\xf5\xd1\x29\xb1\x40\x73\x23\x5d\x23\xe6\x7a\xa5\x56\xe7\x09\xc7\x7d\x13\x54\xbd\xbc\x14\x83\x3a\x14\xd1\xfd\x8a\x8f\xbb\x83\x38\xc1\x17\xaf\xbe\x2e\xaa\xd7\xa6\x2e\xcb\xbb\x21\x36\xd1\x32\xb7\xa2\x93\xdf\xeb\x46\x8f\x34\x11\xb4\x94\x19\x6e\x74\x37\xeb\x6f\xeb\xbb\xed\xe3\xfa\xe9\x70\xbb\x5e\x1f\x1e\xd7\x4f\xab\xf5\xc3\x7e\xf1\x65\x1d\xc6\x81\xc4\xe2\xe0\xe3\x53\x58\x4d\xb4\x82\x88\x04\x89\xfa\x3d\x88\xd3\xbd\x38\x9f\xe7\xa6\x2d\x44\x6b\x63\xe5\xa6\x8f\xd0\xb9\xca\xdb\xf2\xed\x0a\x64\x47\x03\x37\x91\x9b\x20\x98\xb8\xde\x8b\x09\xdc\x69\x7a\x47\x20\xe5\xf8\xee\xdf\x6d\xbf\x1c\x76\xe7\xa2\xc2\xd9\x22\x8a\x0a\x1a\x7c\x4c\x73\xd0\xf7\xe4\x9b\x20\xe2\x31\xba\x27\xb4\xd6\xe5\x01\xf4\x3f\x85\x7a\x3d\xd7\xdd\xc0\x1a\x86\x28\xb6\x51\x02\xfc\xc2\x39\xb8\xb4\xe7\x9b\x72\xf5\xdd\x50\x92\x6b\xac\x51\x06\x73\xa1\xe5\xa5\xa9\x26\x32\x7f\xb3\xf1\xca\x82\x22\x84\xd6\xfb\xda\xd6\xfa\x4f\x30\xda\xec\xa6\x93\x1a\x88\x31\xb8\xa1\xe3\x76\x7b\x0f\x9d\xd0\x7d\x98\x36\x9e\xcd\x40\x63\x6e\x5b\x02\xb5\x7a\x3d\x20\x1a\xc7\xff\x0c\x2a\x08\x56\x08\x2d\xda\xac\xdd\xd7\x18\x71\x2d\xa1\x9b\xad\x05\x40\x95\xc4\xf9\x8e\xe6\xec\x23\xd3\x7f\x02\x14\x08\x36\x8e\xfb\x19\x35\xb6\x24\x0d\x87\xad\xce\xc2\x9f\xcf\x8f\x1b\x9c\x38\xe8\xd7\x37\x2a\x50\xf5\xdb\x80\xe3\x5e\x81\x7a\xbd\x2d\x85\x53\x62\x0c\x41\xa6\x1f\x16\x53\x4e\xbd\x9c\xd7\xf6\xd2\x6d\xcd\x57\x08\xba\x2d\xc0\xd2\x9c\x92\x89\xf6\x8b\xf3\x29\xba\xba\x9f\x00\xd3\xd6\x80\x58\xf8\x3c\xc4\x2e\x80\x93\x92\x2f\xc4\x51\x1a\xd1\xd0\x82\x35\xc5\x71\x07\xdd\xe5\x3c\x97\x14\xf0\x83\x9d\x37\x69\x7d\x86\x6a\x59\xcf\xe6\x2e\xa4\x69\x02\x6c\xb4\xd5\x34\xaf\xd0\xbd\x2b\xf3\x43\xc6\xb8\x0c\xfe\xbe\xe3\x1a\xa4\x85\x07\xf9\xeb\xca\x04\x58\x5d\x3f\x2c\x3f\x59\xa7\xfc\xf9\x99\x94\xc2\x21\xfd\xd5\x7c\xaf\x9b\xd3\x4b\x1d\x72\x2c\xc8\x69\x8e\xef\xdb\xa9\xa8\x46\x01\xe9\x6c\x12\xe6\xb9\xad\x0c\xa3\x66\xd2\xa2\xd2\xab\xba\xfa\x01\x4d\x37\xc2\x60\x8e\x14\x5b\xae\x06\x6e\x90\x4b\xcb\xaa\xb6\x3e\xfc\x8f\xf5\x2b\x9c\xe6\x20\x0a\xc8\x01\x12\x3e\xd8\x08\xd9\x55\xee\xc9\x62\x65\xe7\xcf\x4c\x28\x86\x8b\xdc\xff\xda\x97\x71\xfa\xac\x24\x55\x3e\x93\xbb\xad\x1b\x50\xa2\xbd\x6e\xba\x44\x40\x2a\x05\x9e\x1e\xff\x4b\xd5\xef\x11\xc6\xb3\x3b\xa1\xa4\x65\xbb\x35\xa0\xa0\xf2\x4d\xd6\x65\xb0\x7f\x20\xa0\xd3\x3c\x1e\x53\xe9\x0f\xa2\x2c\x0f\x43\x87\x00\x74\xa6\x72\x47\x61\x3d\xc2\x6d\x7d\x69\xd6\x55\x78\x94\x60\x94\x25\xa7\xd8\x18\x79\xc0\x57\x7d\x0a\x3d\x07\x43\xc1\xeb\x56\xfc\xf1\xf8\xb4\xbd\xdf\x1e\xee\x9f\xef\xf6\x9b\xc7\xbb\xcd\xfa\x69\xc2\xe4\x06\x23\x75\x62\x3c\x52\x04\x1b\x82\x98\x55\xc3\xe5\x14\xf4\x95\x66\xa7\x56\x29\x96\x19\x6a\xef\xda\x3e\xbd\xcf\x06\x00\x35\x43\x45\xdb\x16\xc7\x99\x01\x35\x31\x91\x48\xfd\x52\xbe\x43\xc0\x4b\x07\x1a\xb1\xd2\x4f\x75\xfd\x2e\xee\xf7\x9f\x01\x1e\x79\xda\x71\xe5\x82\x9b\xdd\x88\x02\x6c\x68\x6c\xeb\x5e\xdd\x0b\x84\x62\xe0\xd6\xfc\xf6\xce\x1b\xb4\x1f\x69\xac\x77\xab\x28\xd5\xed\xa5\xbb\x34\x80\xc5\x90\xab\xf7\xd0\xd0\xdc\x0a\x78\x5b\x49\x82\x4b\x59\x9c\x47\x0e\x8f\xc4\x50\x88\x99\xbb\xc5\x9b\x76\xe2\x87\x8a\xf8\xfb\x21\x9a\x32\x8c\x52\x8c\x15\xc4\xcf\x70\xc9\xfd\x5a\xe5\x1a\x2f\x0b\xd5\x5d\xac\x59\x77\x73\x75\x29\x32\x2c\x8f\xc1\x4b\x00\x88\x4b\x0b\xcd\x61\x3e\x40\x32\x24\xe3\xa3\xa3\x60\xe5\x3b\xfc\xc3\x0f\x61\xa0\xb0\xa0\xb9\x13\x06\x44\x3b\xd1\xee\x32\x9c\x5a\x19\xfe\x7f\x15\xdd\xef\xdb\xcd\xc3\xc0\x13\xfa\x8b\xdc\x6b\x76\x63\xb9\x31\x78\xaf\x4c\x51\x76\x43\x82\x6b\x62\x1a\x23\x9c\x5b\x39\x65\xb7\xe9\x75\xc5\x09\xc9\x6c\x29\x48\x5e\x8e\xcb\x4b\x98\x24\xb1\x4c\xb4\x18\x89\x68\xb4\xef\x3d\x28\x88\x49\xa4\x8e\x86\xc5\x63\x53\xfd\xa8\x0b\x35\x23\xe5\x9a\x8c\x44\x38\xc6\xb9\xbb\x3e\xc0\xcf\xed\x3b\x2d\x6b\x62\xb2\x84\x5b\x35\x9d\x42\x9c\xea\x4a\x63\x64\xb1\xaf\xdf\xfb\x73\x13\xe3\x89\xc8\xeb\x87\x7f\x1e\x9e\x1f\x02\x38\xcf\xe4\xb9\x42\x20\x0f\xaa\x48\xdc\xd4\x28\x2c\x23\x87\x94\xda\x88\x2c\xc3\x6c\xf1\xb6\xf8\x05\x7a\x0c\x02\x30\x2a\x4a\xb1\xe4\xb0\x59\x6d\x0f\x77\x7d\x04\x75\x88\xc3\xa1\x34\x4e\x82\x60\xaa\x75\x32\x9c\xc8\xd1\x12\xa3\x32\x8e\xda\xd2\xf7\x8b\x3f\x0e\x8b\x6f\x8b\xcd\xdd\x62\x79\xb7\x3e\xfc\x73\xbb\x79\xd8\x4f\x0a\x47\x46\x89\x3c\x4e\xac\x85\x48\xbf\x15\xa0\xde\xac\xc7\xd1\x18\x20\x12\x8d\x33\x7e\x7a\xc0\x6b\x9f\x07\xf9\x63\x0c\x50\x2c\x40\x5e\xde\x82\x26\xf7\x1c\x55\xf0\x79\x67\xf2\xb3\x7e\xa5\x81\xd8\x20\x8a\x7c\xb9\xb9\xb9\x59\xdf\x84\x2f\xcd\x99\x15\x5d\x47\x51\x40\xa8\x50\x2f\xf6\x74\xf6\x54\x93\x7e\x17\x18\xde\x43\x1a\x91\xc4\x1a\x9f\xab\xba\x2c\x45\x07\x8d\x93\x0f\x09\x87\x73\x89\x71\xd8\xfa\xd4\xe1\xe4\x9e\xd8\x5d\x7e\x1c\xe1\xd3\x88\x8a\x1c\x51\x5d\xeb\xa7\x15\xa5\xac\x0f\x16\x06\xfb\xcd\x6b\x60\xe2\xf1\xa4\xa2\x11\x93\x16\xbd\x24\x67\xa8\xbb\xe9\x28\x2e\x65\xdc\xff\xd4\x85\xd6\xe3\x92\x2d\x8d\xe2\x54\x38\x05\xbf\xff\x5c\x8a\xc6\x2f\x6b\x93\x2d\x8d\x46\xb1\x01\x99\x06\xa1\xa8\x7d\xfd\x5c\x54\x9e\x83\x79\x85\xb3\x4b\xa3\x24\x95\xda\x79\x0b\xb5\x7f\x09\x6b\xa2\x51\x02\xd2\xc7\x53\x88\xa7\xb9\x01\xcb\x10\x9c\x79\xbe\xd2\x28\x05\x1b\x0a\x74\x81\xbf\xf2\x14\xa2\x09\x1a\x65\x71\x8e\x81\xa1\xf3\xf5\x1c\xaf\xb5\x73\x1f\xf5\x7f\x4c\xcf\x9b\x89\x24\xb2\x15\xdd\x46\xfb\x86\x3c\x8d\xf2\x98\x39\xff\xc4\xdb\xa2\x55\xa2\x9c\xbc\xf3\x34\x12\x3c\x46\xb5\x84\x7f\xfd\xeb\x5f\x93\x79\x20\xb8\x85\x72\xf4\x59\x13\x22\x5b\x76\x9f\xad\x72\xd3\x0b\x11\x59\x6a\xc5\x69\xdc\x02\xff\xd8\xc0\x66\xb5\x75\xaa\x8e\x3e\xec\xa2\x91\x8c\xc0\x3b\x30\x84\xf2\xf5\x4a\xf4\xe9\xd2\xe8\xa1\xc9\x8c\x47\x43\xa0\x87\x45\xbb\xb9\x27\x00\x8d\xa4\x10\xf8\xcb\x3d\x65\x63\x8e\xfc\xfe\x6c\x31\xa6\x91\x34\x79\xec\x0a\x62\x7f\xa2\xb8\xe4\xf3\xee\x66\x27\xca\x91\xa7\xf5\xd5\xa8\x81\x46\x2a\x02\x8c\x64\x1e\xbf\x2e\x76\x6b\x72\x78\x5a\xec\xd7\xfe\xb2\x55\x6e\x9c\x41\x57\x59\xde\x5b\x34\xcc\x63\xdd\xb6\x45\x70\xdf\xf5\x05\x9a\xf0\x01\x65\x77\x4f\xc7\x9f\xb0\x90\xe1\xa1\xad\x41\x23\x05\x5a\x31\xcf\x30\x38\x8d\x00\x89\xd3\xe7\xa9\x59\x24\x72\x6f\xe1\x56\x94\x6f\xef\xf7\x82\x7e\x8c\x44\xe0\xe9\x0f\x1b\x1c\x04\x28\xd2\xdf\xac\x7c\xf8\xb3\x80\x45\x2b\xed\xd7\xab\xaf\x0f\xdb\xc9\xe4\xd1\x20\x91\x94\x77\x73\x51\xaf\x2a\x24\xbf\x34\x82\x58\xa4\x4e\xf0\x53\x83\x2a\x4e\xa2\x0c\xbf\xdf\x70\x22\x86\xda\x91\x45\x0e\x9d\xce\xa2\xc1\xde\xda\xf8\x7b\x49\x94\x59\x60\x6d\x33\x32\xfd\xef\x97\xbd\x47\xa1\x5e\xfb\x28\xe7\x32\x1d\xad\x85\x1a\x01\x8f\x47\xf6\x54\xbb\x62\xaa\x75\x46\x49\xff\x38\xd1\x0b\xdc\x99\xbd\xec\x5f\x1a\x2f\xd2\x45\x49\x64\x12\xa4\x4d\x78\xb0\xd0\xe2\xd2\xd5\x55\x7d\x7a\x1b\xe8\x7c\x94\x10\x6a\xfb\x05\x12\xa0\x99\x56\x53\x28\xa1\x59\x8a\x02\x51\x7e\xab\xf4\x7f\x16\x14\xc9\xe9\xd0\xbd\xb8\x94\x60\xe0\x5a\x53\xc2\xb2\x34\xe6\xbe\xdf\xf4\x36\xd7\x68\x9c\xc9\x75\x51\xc2\x74\x8a\xb0\x26\xd0\x45\xf7\x8e\x0d\x7f\x7d\x12\x13\x4e\x24\xf6\xbd\x05\xaa\x28\xd8\x9b\x3e\x77\xd6\x9c\x7f\x24\x4e\xbd\x7f\xb8\x6f\xea\x5e\xab\x30\x50\xc2\x93\x9c\x78\x22\x3f\x16\x6d\xde\x51\xb5\x7c\xd4\x47\x09\xcf\xb4\x17\x36\x59\x8a\xb6\x50\xd6\x8a\xbc\x7f\x1d\xba\x5b\x18\x84\xad\x28\xe1\xa0\xf4\xd0\x4f\x40\xfd\xf2\x4f\xf6\x25\xc2\x8d\xd5\xd8\x77\xa5\xe7\xd9\x23\x8f\x33\x82\x75\x50\x38\x75\xe7\xb7\x7d\x7d\x7d\xdf\x21\xb1\xc8\x70\xde\xaa\xa3\xbf\x88\x58\x53\x2f\x5d\xbb\x82\xa6\x13\x45\xe5\x1a\x1b\x1f\x72\x29\xfe\xba\x8e\x48\x49\x6c\x58\xa4\x02\xf0\xe7\x5d\x81\x62\x76\x55\x09\xe3\xc8\xd6\xeb\xa3\x28\xd0\x8b\x30\xd3\x12\x45\x62\xdb\xc4\x39\xbf\x3d\xd6\x67\x97\xfd\xf9\xa3\x69\xc4\x72\x3e\x18\x34\x3e\x8a\xb3\xb5\x43\xf9\x54\xd9\x8f\x92\x94\x09\xe3\xd0\xe6\xff\x0d\xd0\xbc\x45\xd3\x0c\x2a\x44\xde\x15\x91\x92\x2c\x8a\xb0\x8c\x3f\x44\xf9\xce\x10\xce\x1f\x8f\xa5\x74\xc0\xea\x9f\x6e\x9b\xf3\x47\x12\x89\x10\x93\x10\x57\x3b\x64\xfb\x13\x08\xf5\x02\x7a\x36\xbd\xb2\x9c\xa0\x8b\x90\x03\x5f\x8b\x21\x6b\xbf\x26\xc8\xd4\x8f\xd7\x08\x34\xf9\x62\x1d\x92\x1e\xd7\x77\xdb\xf7\x8e\xd7\x94\x64\xca\x90\x78\x84\x40\x73\x88\xbf\xe9\xa0\xdc\x09\x0f\x3e\x17\x95\xa9\xc7\x8b\x1f\xc9\x13\x12\x09\x1f\x88\x1e\x8b\x3a\x80\xf2\xfa\x47\x34\xbd\xa0\x5c\x65\xd8\xad\x42\x6b\x03\xcc\xd1\x3c\xaa\x25\xe4\x80\x94\x88\x4c\x82\xb5\x60\x47\x98\x57\xdb\x9a\x4b\xb9\xf1\x4e\x65\x94\x48\x05\x58\x83\xfd\x51\x77\x5e\xda\x72\x34\xa3\x14\xe5\xa9\xdb\x63\xbf\x43\x71\x5b\x37\xae\x0d\x1d\x0e\x0b\xbc\x83\x76\xc2\x2d\xff\xf5\x64\x99\x67\x57\x4b\x32\x94\x28\xb0\x1d\x1e\xe1\xb4\xed\xa6\x80\xc6\xfe\x38\xa4\x4e\x90\x97\x0c\x36\x28\x81\x52\x4e\x09\x70\x40\x26\x42\xd1\xc1\x29\xd8\x10\xdb\x85\xe3\xfa\xe2\x04\x9a\x23\xdc\xda\x19\x27\x4d\x9a\xdb\x94\x46\xb1\xc0\x25\xe3\x97\x82\xa6\xfb\xfd\xcd\x87\x3c\x94\x44\x0a\x2d\x79\x94\x68\x5f\xae\x8b\x82\x50\x4a\xd2\x58\x3b\xde\xf8\x5d\xf1\x0a\xe3\x98\x83\xd2\x98\x21\x52\xd6\xae\xba\xe3\x5d\x98\x52\x25\x23\xb7\xaf\x9b\x40\x10\x9d\x2c\x29\x94\xa5\x52\xb0\xe0\xac\x57\x4c\xa9\xa0\x94\x32\x4d\x33\xa7\x93\xd6\xef\xba\xdf\x44\x55\x74\x6f\xcf\x4d\x39\xae\x30\x52\xca\xa3\x18\x73\x95\xf5\xf6\x9f\xfe\xaa\x78\x62\xfd\xf2\x9c\x93\xd6\x67\x15\x57\x4a\xb9\xe2\x38\x09\x7f\x78\xae\xc7\x34\x58\xa5\x31\xcd\xbc\xc2\x47\xff\x2a\xa0\x5c\x64\xbb\x7c\xdb\xe8\x77\xeb\x97\xdf\x5c\x68\xac\x2c\x63\xde\x45\x62\x4d\xbf\xc9\xfc\x2d\xd4\x17\xa5\x31\x44\x98\x54\x04\xbf\x92\x41\xaf\x8e\xd2\x04\x1c\x1d\xbc\xfe\xf1\xd7\x51\x36\xcd\x22\xc9\xdd\x8c\x2d\x9a\x93\xa8\x66\xca\xb7\x94\x66\x84\x73\x1a\x40\x47\x0b\xd9\xfe\x5e\x54\x1a\x5b\xd8\xd3\x61\x59\x82\x02\x74\xa5\x2d\xbe\x4e\x98\x0e\x94\x8a\x54\x22\xb4\xcb\x99\x3a\x05\xe8\xfc\x6c\x6d\x0c\xf7\x46\x52\x99\xb8\xfa\xc4\xef\x7f\xae\x6e\x2f\x65\xf9\xdb\x7c\x88\x22\xae\x66\x7c\x29\xbb\xe2\x51\x34\xdd\xdb\x1c\x3a\xf7\xae\xa7\x4a\xa9\xce\x0d\xc2\x6d\xbf\x88\xb2\x84\xa6\xa8\xab\xa1\x95\x40\xa9\xd6\xc4\x22\x83\x5b\xf4\x57\x1a\x9b\x82\x84\x11\x14\xcd\x5a\x3d\x0b\x84\x52\x48\x0c\x78\x21\xe2\x73\x03\x87\xd7\x37\x75\x28\x54\x5d\x15\xff\x39\x58\xd9\x05\x0d\x55\x8d\x04\x7c\x0f\x0c\xa7\x2c\x4a\x38\x1d\x2c\x49\x27\xca\x27\x9f\x3e\x76\x16\xe5\x09\x04\xa5\xc2\x76\x0f\xe2\xb4\xb4\x7b\x55\xff\xf8\xdb\x4e\x9c\xce\xe1\x2b\x40\xa3\xc8\x2b\x96\xf4\xf6\x3f\xeb\xc9\x0a\xc8\x48\x1f\x1d\xdb\xe6\x51\xbf\x99\xb5\x1d\xe8\xdd\xe5\x1d\xb0\xd2\x0f\x06\xab\x17\xb1\xdb\x2f\xbe\xac\x0f\xb7\xdb\xe7\x87\x9b\xc5\x7e\xb3\x7d\xf0\x27\xa3\xd4\x3a\x23\x3d\x09\x89\x02\xbe\xa3\xa5\x9b\xc5\x4c\x27\x83\xc3\xf8\x53\x71\x7c\x09\x7a\xf0\x93\xd5\x83\xc5\xb1\xf4\x93\xec\x6b\x7d\x82\x8f\x22\x6d\x16\x27\x02\x93\xed\x2e\xb8\x99\xcd\x15\xf9\x28\x8b\x53\xeb\xfc\xfe\x00\x3f\xff\x9e\x75\x26\x65\x49\x14\x63\x7c\xfd\xb8\xb8\xc3\x8f\x0c\xc2\xcd\xd3\x5d\x9b\x25\xb9\x21\x2e\x27\xbd\xab\xd5\x6b\x60\x06\xf8\xc3\x82\xa9\xe1\xf7\x9e\x0a\x5f\x9b\x9c\xfe\x88\x44\x46\x49\xe6\x0b\x7b\x88\x66\xeb\x40\x4f\xee\x5b\x9a\x71\x64\x3f\xdf\x41\xd7\x4a\x57\x85\xfa\x08\xa9\xed\x3f\x62\x52\xcd\x27\x52\xae\xb3\x5b\x9c\xa5\xd4\xc3\x14\x1e\x2d\x07\xf4\xdb\xd8\xf3\x63\xf6\xd4\xb3\x5c\x63\x7d\x5e\xfa\xe5\xfe\xb6\xbc\x34\xb2\x9e\x9f\x53\xe8\xc8\xcd\xfe\x1b\xf1\xd6\x6e\xaa\xfb\xba\x72\x9c\x97\x09\xc4\x86\xb2\x9c\x47\x38\x4b\xfa\xb7\x7f\xff\x52\x58\x53\x7f\xff\x73\x73\xa0\xc6\xb2\x3e\xfa\x65\xf3\xd2\x84\xfe\xb4\x3b\x2e\x22\x89\xb9\xdc\x57\xa8\x4c\x73\xf1\xc8\x12\xca\x04\x23\x7e\xd1\x5d\x36\x85\x7a\x0d\x56\x6b\x94\x49\x96\xe4\x0e\x14\xe2\x0a\xfb\xef\x39\x6c\x94\x49\xae\x35\x1f\x97\x7a\xd0\xb6\x6d\xd1\x80\xb8\xbe\x7f\x32\xa9\x92\xd8\xad\x4b\xdb\x1f\xd0\xe8\x46\x98\xeb\x65\x63\xca\x14\x31\xe8\x37\x70\x2a\x9c\xa7\xde\xcc\xf3\x67\x36\x5c\xf7\xd3\x62\x30\x8d\xda\x8d\x67\xb4\xe6\x59\xcc\x47\x05\xc9\xcf\xa4\x94\x29\xd3\x92\x58\xcb\x9a\x8b\xec\x3e\xd4\x0b\xa7\x0c\x58\x8c\x28\x98\x06\x84\xbe\xab\x7f\xc0\x0e\x61\x8b\x56\xe4\xdf\x8f\x31\x2c\xc6\xd8\xd6\xce\x67\x34\x62\x9f\x7c\x17\x8f\x08\x10\x70\x78\x8c\x9b\xa2\x95\x97\xa6\x85\x81\x1e\x4d\x79\x94\xe4\x91\x6d\x2d\xd6\x5f\x45\xbb\x7f\x81\x65\x71\x3c\x42\xdb\xdd\x14\xbe\x3d\x41\x79\x94\xe6\xd9\xb8\x3d\xb1\x0c\x65\x28\x4e\x44\x84\x88\x4d\xd3\x00\x86\xa3\x77\x76\xb5\xfb\xf8\x57\x71\x22\x99\x74\xf1\xd9\x57\xd1\xf4\xb9\xd4\xd6\xf7\x09\x7e\x9b\x3a\x8b\xfa\x0f\x18\x83\xf5\x90\xb3\x68\xdb\x31\xf2\x90\x72\x9a\xda\x46\xc3\xa9\xa8\xac\x79\x99\xff\xbb\xca\x43\xe1\x00\x5f\xef\xa1\x4a\x12\x86\x40\xcc\xf8\xa8\x60\xf3\xbe\x6d\x32\x84\x94\x9c\xa5\x5c\xf4\x6b\x4a\x7d\xf2\xd9\x10\xe7\x5c\xa4\xae\x59\xf4\x28\xd0\x19\x7e\x3a\x71\x39\xcf\x35\x8a\xc3\xfe\xb9\xde\x85\xcf\x48\x8a\xab\xca\x0e\xa0\x84\xa0\xd1\xf7\xf9\xaa\xc1\xb9\x62\x58\x73\xd0\xda\x74\xb7\x97\x4a\x4f\xec\x3a\x29\x8f\x23\x49\x5c\xaf\xa5\xda\xd5\xe5\x84\x1e\x40\x79\xcc\x72\xe1\x72\xb6\x8d\xaa\x47\x21\x08\x8f\x73\x9b\x84\x23\x77\x62\x33\xcb\x11\x79\xac\x6d\x7d\x5d\xd5\x85\x6b\x1c\x0e\xe1\x37\x8f\x8d\x25\x24\x98\xa2\xd2\x0f\xf0\xab\x1b\x56\x94\xa9\x5e\x15\xe5\x09\xb1\x17\x77\x39\x1f\xfb\xc7\x33\xd0\xcf\x40\xef\x56\xd7\xb3\x2e\x9e\x50\xbb\x83\xf6\x09\xf4\xf6\x06\x7e\xa0\x7e\xea\x9c\x18\x35\xff\x4c\x9a\xe2\xde\xb4\x6a\xde\xce\x5d\xfd\xf8\x52\x43\x55\xfc\x82\x76\x55\xfc\x28\xca\xef\xe2\x7a\x7f\x9f\xf2\x94\x00\xce\xea\x5b\x31\x15\xa6\xa3\x3c\xcd\x94\xb1\x84\x1c\x55\xff\xe8\x67\xcd\x24\x60\xf7\x83\x54\x3c\x4a\x0d\x1e\xa0\x9f\xf5\xcb\x91\x53\x29\xe5\x29\xe8\x9c\x8e\x98\x6a\xc5\x79\xd7\x89\xce\xbb\xcb\xfb\x88\x87\x67\x24\xc2\xf8\xae\x82\x9f\x81\x04\x58\x29\x78\x08\x37\x3c\x03\x8e\xc6\xa5\x9b\x76\x59\x17\x25\x34\x16\x1b\xf6\xc1\xeb\x95\x01\xc7\xde\x24\x12\x4a\x1e\x9b\xa2\x6e\x8a\xee\x6d\xf6\x78\x73\xae\x3d\xeb\xce\x6a\xb3\x84\x09\x93\x67\xd6\x28\xbe\x0d\x22\x2f\xe4\x83\xef\xc9\xa5\x89\x88\x83\x53\x75\xf5\x6a\x36\xfb\x45\x6c\xf3\xa6\x43\x9f\x12\xd4\x25\xac\xc4\x59\xc8\xa2\xf4\x4a\xe3\xd9\x94\x12\xc2\xc7\x2f\x9b\x8c\x72\x4c\xbb\x6d\xda\x66\x55\xdd\x3f\x88\xb9\xfd\x27\x4c\x92\xc7\xd3\xe2\x4c\x3b\x4c\x19\x37\x48\x45\xc2\x93\xa1\x5d\x5b\x1c\xe5\x7d\xa1\x1b\x75\xc3\x3e\x8f\xe9\xb9\x62\xb1\xdf\xcc\xb0\x41\xb2\x84\x6e\xdb\x14\xc7\xe2\x2f\x82\x42\xae\x64\x46\x06\x47\x11\x24\xc6\xad\xaa\x01\x7b\x34\x4f\x6b\xa6\xcf\x4a\x41\x8c\x71\x79\xd7\x6f\xc9\xb8\xf1\x9c\xeb\x62\x58\xbe\x75\x64\x1d\x87\x85\xd6\x37\xa2\xbb\x02\x2c\xa3\x5c\x67\x1a\xb9\x55\x06\x99\x69\x7b\x38\xe1\x72\x7b\x69\xa0\x75\xd9\xb9\xdf\x4c\xb8\x56\xa0\x59\x30\xa3\xb5\xb6\xb1\x00\xf7\x45\x35\x7b\xba\xa0\x22\xdc\x09\xef\xea\xe3\xae\xbb\x68\xa8\x3a\x0f\x33\x7a\x2f\xb4\x7a\xf5\x57\xc5\x91\xb2\x18\xa6\xd5\xbd\x83\xfa\xd0\x98\x80\x2d\x84\x58\xd3\x19\x4b\x74\x9d\xbc\x71\x31\x65\x32\x49\x43\xbf\x0b\x1a\xa8\x14\x84\xe7\xbc\x35\xab\xe0\x74\x11\xbe\x86\xa6\x14\x73\xd7\x17\x10\x65\xf7\x82\x77\xcf\x7f\x1d\x35\xc6\xb6\x24\x5e\x1a\x80\xaf\x75\xf7\xb5\xbe\x34\x4e\xad\x30\x28\x12\xd0\x98\x45\x56\xd3\xe2\x7b\x51\x81\x8d\xd0\x6d\x73\x6e\x7a\x61\x8c\xd8\xfb\x71\xa3\xeb\x31\xe6\x8e\xc6\x3c\x21\x28\x06\x66\x91\xdf\xae\x2c\x85\x2d\xda\x30\x22\x4f\x89\xeb\x11\xaf\x44\x39\xe2\x3b\x84\x96\x87\x1b\x18\x47\x22\x76\xc8\x77\x24\x68\x38\x14\xc1\xaa\xae\xda\x42\x8f\x76\xb6\x38\xa6\x06\x8d\x32\x44\x55\x5d\x44\x19\x20\xa1\xee\x68\x42\xb8\xff\x3e\xd7\xcc\xff\x52\xcf\x0c\x7e\x69\x9c\x30\xe1\xd5\x8b\xdc\xa0\x11\x5c\x98\xc6\x89\x8c\x72\x36\x28\x99\xeb\xdb\xba\xf1\xae\x89\x61\x88\xd6\x88\x1b\xfe\xfe\x52\x63\x4c\x51\xb7\xed\x83\x67\x9c\xd0\x38\x8d\x6c\x35\x1e\x0b\x9f\x5d\x67\x7b\x20\x08\xaa\xfa\xf4\x45\x8a\x33\x10\xca\xf8\xb0\xdc\x3e\x8e\x4d\x78\x15\xe2\x9c\x13\x5c\x73\x76\x97\xc6\x3b\x05\xf9\x23\x89\xb0\x24\xdb\x3e\xc0\x6c\x67\x3f\x36\x4f\x84\x57\xdb\xc3\x62\x51\xf5\x21\xba\xd8\x7d\x40\x44\x11\x2e\x50\x95\xe8\x90\x1d\xb2\x6e\xd4\xb2\x29\xf4\x11\xda\x85\xed\x64\xf8\xaf\x15\xa9\xc8\xf5\x98\x4f\x3b\x04\x19\x7e\x44\x16\x61\x07\x71\xd7\xd5\xe7\xb3\x90\x25\x20\x9d\x19\x1b\x00\xd7\xe9\x26\x34\x16\xc6\x3a\x77\x89\xfe\xd7\xdf\xd6\xcd\xb7\xa2\x7d\x67\x57\xef\x86\x4a\x91\x88\x81\xc0\xf4\x97\x58\x5b\x1a\x4b\xc9\xf0\x03\x96\x46\x6e\xad\x34\x47\x55\xcc\x58\xf5\x69\xff\x60\x3d\x72\x5f\xbf\xd3\x34\xa1\xb1\x62\x29\x75\x81\x45\x59\x57\xc7\x39\x38\x9e\xc6\x4a\x2b\x7c\x88\xc6\x0a\xe6\x23\xb6\xc3\x7f\x01\x24\x04\xf5\x27\x9e\x2b\x51\x15\xa7\xfa\x82\xd3\x7b\xb4\x01\xf8\x3d\x33\x86\x2c\x4f\xfb\x29\x78\xb7\x7c\x08\x9f\x95\x12\xb1\x9b\x87\xa2\x0f\x58\x96\x45\x77\x12\xcd\xeb\xbb\x56\xf4\xd5\x1b\x65\x62\x96\xeb\x51\xf9\xf3\xb9\xbd\xa2\xb9\x76\xad\xbe\x1a\x9b\x24\x47\x04\xb4\x77\x0d\x58\x54\xfa\x0b\x04\xa3\xbd\x19\x3f\xe2\xfa\x4d\x37\x99\x35\xb1\x7f\x7c\x5e\xde\x6d\x56\x08\x6b\xdb\x1d\x88\x53\xbd\x3b\xac\x1f\x6e\xfc\x0f\x34\x22\xa7\xd6\x51\xe1\x84\x8a\xc3\xd8\x42\x9d\x5e\x9d\x1d\x99\x44\x9c\x60\x6d\xe1\x66\x7d\x77\xf7\x9b\xff\x9b\xe2\x78\xa5\x9e\xe5\x35\x7d\x2a\x09\x51\xd6\xd7\x6d\xd3\xee\x5f\x8a\x09\xc1\x99\x26\xc4\x64\xd4\x0c\xf5\xbb\xc5\x20\xeb\x32\xfd\x29\x09\x8d\x72\x5c\x2d\x1b\xaf\xc9\x86\x6c\xfe\x7d\xbd\xae\x3c\x21\xda\x9f\x92\xa6\x80\x54\x1c\xe9\xca\xa5\xa1\x94\x9f\x30\x15\x45\xae\x81\xf2\xed\xf0\x44\x67\x97\xc9\x4c\x82\xbb\x38\x2a\x13\x88\xd2\x26\x6c\x30\x55\xe4\xeb\x47\x65\x18\x7b\x5f\x5a\xfd\x08\xcd\xd7\x4b\xa5\x9b\x11\x89\xbc\x3f\x2e\x47\x75\xbd\xa5\x68\xc1\x5e\x44\xa5\xdf\xc1\xea\x66\xbf\x30\x49\x15\xd6\xf9\x9d\xc6\xc5\x5c\x6d\x8a\x26\x89\xcc\xb0\x2e\x70\xb0\x30\xf3\xbf\xd2\x01\x9d\x50\x62\x87\x20\x28\x49\x54\x92\x10\x2f\x42\x7f\x83\xbe\xd3\xd3\x0b\x49\x4d\x9e\x67\x03\xea\xad\xbf\xd1\x23\x11\x74\x9a\x64\x4c\xa0\x2c\x6b\xe5\x78\x25\xc8\x19\x68\xf7\xf5\x6d\x51\x89\xb2\x4f\x04\x82\xa4\x35\x4d\x32\x6e\x19\xf0\x97\x76\x9a\x90\x4c\xbf\x31\x4b\xac\xf7\x4d\xff\xc3\xac\x4a\xc3\xd5\x02\x4c\x92\x27\x99\xc3\xec\xcd\xcc\xd1\x69\x92\xeb\x38\xe3\x41\x0c\xfa\xdb\x3b\x43\x53\x9a\xe4\x20\x50\x1d\xb4\x38\x89\x23\x0c\x0b\x50\xbf\xb5\xdf\xdf\xc4\xfe\x3c\x92\x1b\x1a\x87\x1a\xbe\xad\xb7\x4f\x5e\x00\x95\xdb\x76\xbc\x1d\xf0\x4e\x54\x7f\x74\xa3\x75\x6e\x37\x2a\xdc\x27\x4f\xa0\x0b\xd1\x4d\x4d\x07\x67\x77\x01\xb8\x18\xac\x7e\x5b\xe8\x0e\x47\xe8\x0e\x48\x7b\xbc\x9c\xec\xee\x1d\x1e\x01\x08\x03\xde\xaf\xfe\xb9\xea\x8a\x72\x56\xe6\xf2\xc3\x80\x20\x36\xab\xe8\xaf\xc0\x08\x05\xb7\xa8\xdc\xfa\x09\xb7\xaa\xff\x4c\x6c\xbc\x3a\x61\xbf\x17\xde\x72\xff\xa5\x26\xb5\x62\x2e\x3e\x55\xff\xe7\xf6\xcf\x49\x4a\x98\x98\x14\x50\x6f\x08\x67\xd6\xa4\x81\x34\x7d\x9a\x7e\xa9\x4d\x23\x49\xd1\x41\x04\x0b\x99\xf8\x9a\xf9\xc8\x75\x6c\x22\xdc\x47\x5a\x04\x2b\xaf\x05\xbe\x13\xa0\xc7\xf0\x64\x3f\xc4\x58\x3d\x8f\x3e\xae\x78\xfb\x5a\x9c\xdb\x6e\xf8\x38\xcb\x63\x6b\x85\x50\xb4\x68\x7d\x51\x59\x83\xd5\x51\x3e\x95\x72\x92\x23\x64\x71\xb9\xd8\x3c\x85\xea\x66\xca\x81\x67\x30\x18\x89\x39\x52\x84\x25\x6f\x85\xe7\x9c\xc6\x19\x27\x0e\xb2\xd9\x9f\xfe\xa6\x68\xcf\xa5\x78\x9b\xab\x16\xd1\x34\x16\x39\x36\xb9\x5c\x6b\x7d\xd6\xd2\x4e\x63\x69\xc5\xf0\xfe\xc6\x4e\xe1\x3e\x91\x72\x89\x01\x97\x2d\x25\x6f\x9b\x1d\x84\x28\xfd\xda\x74\x48\xd3\x58\x46\x36\x69\xac\xfa\x85\x69\xc8\x18\xc3\xd3\x4f\xb3\x14\x46\x3d\x53\x1f\xa9\x63\xbb\x79\xb5\x98\xdd\xf2\x2c\xb3\x5a\x1a\x27\xa7\x7a\xb1\xb2\xa0\x80\x9b\xba\xba\xca\xcf\xfd\x0c\xef\x94\x66\x32\xd3\xc3\xb2\xf9\xad\xee\x00\x63\xb6\xe9\x17\xe6\x84\xe1\xc2\x73\x07\xfa\x08\x8d\xd5\xe1\xb9\xce\x39\xa0\x69\x4e\x33\x42\xbc\xca\x2c\x00\x4e\xae\xa6\xfd\x67\x2d\xfd\x6d\xff\x88\x75\x4b\x53\x41\x0c\x72\x2a\x5f\xea\xa6\x85\xdb\xdd\xec\x0e\xc9\xc8\x16\x86\x10\xdb\xb2\x2c\x1a\xdd\x4e\xca\xeb\xa9\x4c\x35\xea\x1e\xd8\x8c\xcc\x56\xf2\x46\x3d\xaf\x54\x66\x1c\x0b\x17\x5a\x14\xe5\xdb\x57\xd1\xbe\xac\xc7\x84\x36\x9a\x4a\x25\x10\x70\x89\x2f\xd1\x12\xba\x65\x90\xac\xa4\xa9\x8a\x14\x72\x9b\xd7\xfb\xc5\x6e\x1c\x85\xa6\x8a\x4b\x2c\x07\xc8\xcb\xdb\xea\x23\x53\xa1\x7e\x94\xd2\x0e\x1d\x81\x18\x5b\xfc\x81\xfe\x14\x9a\x11\x3c\x28\x2f\xe5\xab\x7f\xee\x96\xe2\xfa\x61\x43\x25\xd5\x42\x83\x83\x38\x2a\x68\xdb\xba\x99\x70\x8e\x69\x0a\x29\xe5\x3e\x83\x1c\x96\x6c\x9b\xe6\xe0\xbe\x34\x03\xae\xa5\x20\x22\x24\x3c\xdb\x1e\x47\xd0\x5f\xb5\xfa\x3d\xe1\xac\x92\xa1\x6d\x86\xb0\x6e\x06\x93\x3c\x33\x35\x19\xcd\x21\xdc\xfe\x07\xe8\x7e\xd6\xcd\xab\xcd\xfb\x66\xb3\xc9\x38\xb1\xb1\x7e\xcf\x29\x4c\xf7\x32\xaa\x49\x67\x51\x14\x5b\xd3\xe1\xba\x04\x84\xd5\x4f\x3f\x9b\x45\x22\x45\x31\x0e\xc7\x1d\x84\x6a\x2e\x10\xd3\x0f\xc9\x13\x08\xab\x02\xe2\x5a\x66\x03\x8c\xf5\x37\xb1\x9d\x4d\x8f\x4f\x1a\xf3\x54\xdd\x40\xc2\x6c\x2d\xd9\xaf\xbb\xc8\x5a\x1e\xed\xff\x93\x87\x9c\x91\x34\xb6\x66\x86\x43\xcf\x29\x23\x8a\x5b\xf3\x77\x1b\x5a\xac\xca\xcb\x68\x79\xcc\x28\x27\xc6\xa3\x2f\x8a\xee\xed\xb1\x3e\xf7\x19\xc5\xbb\xf0\x3b\x63\xc6\x15\xea\x95\x7d\xd8\x6f\x37\xa2\x13\xb3\x55\x2c\xe3\x3c\xc3\xb4\xe3\x01\x7e\xfa\x72\xe2\x47\x15\x90\xe9\xed\xe0\xb9\x55\xe1\x40\xb1\xba\xd0\x67\xc6\x8d\xbc\x0d\x27\x37\xca\x39\x3e\xb8\x52\x8c\x73\x9e\x18\x23\x53\x69\x16\x47\x1c\xa3\x84\x9d\xe8\xea\xf6\xa5\x08\x7f\xa6\x12\x13\xe6\x56\xfc\x80\xd5\x47\xee\xea\x34\x8b\x63\xc9\x5d\x99\xca\x69\xb5\xcf\x9e\x5b\x9c\x70\x2c\x6f\x96\x20\x34\x34\xb2\x16\x8d\xbe\x76\x23\x92\x88\xe5\xae\x59\x80\xaf\xf2\xec\x66\x26\x82\x21\x06\x7b\x57\x9c\xce\x25\x2c\x36\x7f\xb3\x59\x95\x25\x52\x20\x61\xe5\x05\xc4\x79\x57\xbb\xd3\x26\xdc\xbf\x92\x59\xea\xe8\x3c\x2d\x74\x37\x4f\xbb\xd5\x07\x06\x22\x34\xcb\x74\xca\xad\x82\x89\xbe\x28\x2c\x2d\x3a\xf6\xee\xec\x3a\x73\x26\x9d\x09\xf4\xaf\xee\x20\x27\xb1\x70\x96\xf3\x58\xb8\xef\xf2\x71\x90\x55\x67\x5a\xbe\x7d\x84\x7f\x19\xed\x9b\x99\x64\x02\xdf\x10\x23\x4e\x88\xc3\x47\xa1\xbf\x7d\xbd\xd1\x53\xad\x2d\x9a\x49\x69\xc5\x6f\xb1\x31\x6b\xcd\x7a\xdf\x5f\xa8\x34\x89\xf3\x8a\xb2\xe4\x6c\x04\x37\xb6\x73\xdd\xc9\xeb\xcf\x5c\xf1\x04\x8b\x06\x56\xa5\xe6\x69\xb1\x5f\x1f\x96\x8b\xdd\x7a\x8c\x41\xcc\x14\xcf\x10\xc2\xf9\x00\x4a\xb4\x2f\xe3\xd5\x37\x53\x29\xf7\x48\x8d\x1d\x54\xa1\xbe\x35\x41\x0a\x67\x10\x5b\x9f\xea\x3f\x4c\x19\x92\xf4\x0c\x40\x63\xb9\xe3\xae\xdf\xf1\xf5\xe1\xa1\xf6\x7c\xf6\x11\x7e\x70\xf2\xf8\x0d\xe1\xa8\xd2\xb1\xfc\xfa\xe0\xd6\xb6\xdf\xc2\x11\x80\x51\xe5\x64\x07\xa3\xcd\x7d\xbe\xc5\x65\x86\x5b\x66\x6f\xd1\xae\x4f\xe7\xee\xcd\x49\xb4\x5c\xd9\x98\x33\x13\x33\x03\x93\xa2\x4e\xc0\x62\xfb\x54\x74\xf6\x20\x4c\x62\x10\xb1\x51\xb4\xdb\xca\xa7\x66\x97\xc1\xcf\x90\x66\x46\xd9\x04\xdb\xfa\xa1\x7c\x00\x29\xc9\x8c\xe6\xa9\xe5\x9e\x8b\xba\xff\xc7\xfd\xce\x3c\x12\x80\xca\x4a\xed\x4b\x33\x7e\x08\x79\x24\x73\x05\x7e\xfd\x58\x94\x23\x0f\xd7\xd9\x74\xca\x23\xe0\xb8\xb8\x63\x52\xe3\xb8\x4b\x57\xe7\x45\x4e\x22\x6b\x2c\x67\xa5\xa5\xac\x7d\xda\x21\x6c\x76\xd3\x0b\xce\x09\x8d\x7c\xe0\xfc\x15\x44\xd3\x8d\xb1\x3a\x39\xc9\x6c\xb5\x10\x77\xd4\x42\xf9\x74\x31\xa7\x84\x4a\x8b\xa7\x2b\x17\x97\x31\x04\x64\x7a\x6e\xca\xac\xb3\xc1\x7e\xf1\xc7\x68\x4e\xe6\x8c\x44\xb8\xc6\xbc\x88\x16\xa7\xfb\x87\x3f\x84\x65\x29\xb8\x9e\xbf\x85\x88\x79\xa5\x32\xea\x4f\x15\x8b\xc8\x37\x73\xc7\x05\xb9\x3c\x61\x1a\xc5\x71\x55\x59\xb7\xb6\x33\x3f\xf6\x8c\xa6\x79\x9a\xc6\x48\x11\x2a\xda\x1b\xc7\x19\x1d\x89\x6c\xd3\x3c\x15\x0c\xd1\x73\x07\x47\x10\xff\xc0\xce\xe6\x5a\xce\xea\xce\x90\x51\x4b\x1e\x3d\x8e\xa0\x89\xfe\x10\xa3\x58\xd2\x29\x45\x73\x84\x95\x38\xe3\x85\xcf\x27\x52\x9e\x71\x6b\xe8\x55\xa8\x9a\xa8\x50\x7e\xcd\xf3\x48\x83\x97\xe8\x7c\xdb\xd7\xab\xf7\xad\xfa\x3c\x4f\x6d\x34\xa2\xdb\xb3\x33\x8e\xf1\x51\x5e\x2e\x22\x16\xa1\x4b\x58\x7d\x5c\x54\x75\xf5\x76\xaa\x2f\xed\x6f\x93\x84\xfb\x1d\xd5\xb2\xff\x50\x86\xc4\x4d\xbf\x38\xde\xbb\xc6\x95\xa8\xa0\x9a\xb6\x89\x72\xc1\x94\x71\x4b\xca\xe3\xe6\x00\xba\xe8\x0e\xde\x29\x82\xe6\x22\x21\xf6\x9e\x7b\xb8\xe8\x0c\x50\xe3\x87\x01\xf5\xae\x1a\x7d\x9a\xbf\x35\xbb\xe2\x58\x61\x75\xde\x9f\x48\xb2\xd8\x07\xc9\xc1\x8d\xee\xd9\x36\xd4\x2c\x74\xae\x2e\xf5\xf2\xed\xbe\xd6\xae\x77\x4e\xc6\x4a\x36\x34\x97\x31\xf3\x38\x9d\x27\xb0\x0c\x85\x81\x79\xd4\x1f\x96\x5e\x4e\xf6\xbe\xa8\x2c\xce\xfa\x5d\xbe\x3c\xbd\x64\x99\x64\xe8\x76\x5b\xb4\xdf\x45\xd3\x88\xaa\x7b\xc3\xf5\x70\x56\x8a\x9a\xac\x50\xb9\xa2\x1c\xd7\xd0\xee\xef\xed\xa0\xb9\x4a\xa8\xb1\x2a\x25\x13\x3d\x2c\x9a\x2b\xa9\x30\x40\xb8\xab\x8f\x96\x48\x80\xec\xe7\x5d\x71\x95\xa4\x49\x73\x9d\xe6\x84\x87\x96\x81\xc5\x91\xcd\xd2\xa9\x1c\xfa\xcc\x15\xa9\xba\x0d\x88\x77\xa9\xca\xfb\x88\x3a\x87\x3c\xc7\x8c\xb8\x5d\x7d\x13\x21\xdd\xcf\x4d\x94\xa1\x08\x8f\xae\x37\xe1\x6a\x0d\x05\x27\xc2\x55\xe9\xfe\x66\x15\x75\xf3\x17\xe5\xc0\xdc\xa4\x0c\x03\xa3\xc3\xa1\x2b\xaa\xb7\x6d\x23\x54\x09\x2b\x6f\x12\x74\xa5\xc9\x9a\x9b\xd4\x8c\x82\xe9\xed\xcd\xfa\xde\x8a\xb0\x5d\x6d\xbc\xe4\x26\xd7\x56\xb0\xa0\xb2\x06\x31\xee\xf6\x7e\x2f\xba\x97\x4f\x9a\xf6\x22\x4a\x29\xd2\xb4\xce\xa2\x6d\x9f\xab\x81\xf4\xaf\x47\x02\x3b\x54\x44\x19\x95\x56\xd1\xab\x50\xc2\x8b\x62\x51\x41\x38\x47\xa4\xc7\x50\x72\x12\x44\x44\xd4\xb5\x46\xbf\x88\xf6\x7d\x05\x47\x10\x65\xf3\x56\xb4\xf0\xee\x13\x83\xcd\x07\xcb\xa6\x20\x1a\xf0\x54\x81\x1b\x0d\x13\x3a\x85\xa0\x79\x42\x2c\xc0\xb6\x38\x77\xf5\x09\x74\xa1\x8a\x4a\x90\x70\x58\x70\xab\x3c\x58\x9f\xce\x65\x31\x2e\x6f\xf8\x11\xcc\x68\x6c\x4c\x7d\x1f\x54\x24\xa7\x33\x48\x70\x95\xe5\x43\x8e\xbf\x1f\xc4\xb1\xfa\x93\x1b\xc4\xaf\xdc\x2f\x76\xfb\xf5\xd3\x9f\x87\xfd\xd7\xa7\xf5\xee\xeb\xf6\xce\x57\x75\x45\x2c\x22\x42\x47\xc8\x91\x27\x94\x84\x7b\x27\x2a\x43\x45\x2c\x15\x22\x0e\xac\x67\xc3\x1d\x98\x70\x81\x89\x63\x79\x6d\xff\xb5\x7e\x98\x84\xa8\xfe\xb8\xa6\xd8\xce\xf1\x96\x3b\x4e\x79\xdd\x7f\x3c\xa5\xb6\xfa\xdd\xbe\x4e\x78\x51\x22\xcd\x22\xac\x5f\x2d\x37\xfb\xd5\xdd\xe2\xdb\xfa\xb0\xb8\x1f\x9c\x7a\xa8\x48\xb5\x95\x69\x5a\xb4\x7d\xf4\xec\x5c\x2e\x66\xfb\xad\xc8\x78\x84\x75\x5e\x40\xbb\xe3\xdf\xae\xd5\xd0\x45\x96\x1a\x44\x6b\x74\xfd\x0e\xd1\xed\xeb\x85\x7a\x29\xe0\x47\xb8\x83\x99\x48\x0c\xf3\x75\xc7\xbb\x77\xb0\x81\xf9\xc9\x8c\x15\x23\xb5\x01\xd0\xe1\x11\x9a\xc3\x4d\x5d\x96\x22\xcc\xd1\x9c\x70\xa4\x6d\x6f\x37\x8b\xf0\x27\x21\x73\x35\xaa\xa6\x2d\x1b\x71\x3c\x82\xfe\x56\x97\x97\x00\x98\x10\x22\xa3\x88\xb0\xbd\x5f\x6c\x1e\xa6\x72\xf5\x54\x88\xdc\xca\x0a\x4c\x34\x87\x5c\xc5\xe1\xfa\x65\x0a\x15\x63\x9f\xbd\xac\xeb\xd7\xcb\x19\xab\x48\x93\xe9\x2f\xc0\x0a\x0f\x1e\x47\x69\xd6\xec\xa9\xca\x98\xa2\x18\xba\x6b\xc6\xf4\xe7\x68\xe7\x7d\x12\x21\x63\x86\x11\x83\x77\xaf\x7c\x02\x9c\xda\x77\x7d\x2e\xdb\x3d\xc1\x8f\xa2\x2d\xea\xea\xa1\xee\xb0\x4e\x33\x9e\xb7\x32\x8d\xa4\x83\x74\xdf\x8b\x5f\x9b\xce\x15\x62\x5b\x6c\x91\x61\x1b\x33\x10\x69\xfd\x47\x14\x91\xd2\x16\x27\xde\x7c\xf5\x6e\x36\x1b\xfa\x77\x3a\x45\x39\xf3\x27\x7c\x3e\x33\x15\x62\x3f\x4a\x2a\xe2\x62\x53\xa4\x8d\x5c\x2b\x42\x08\x4d\x72\xdc\x50\xdc\xdd\x79\xf0\x92\x81\x54\x68\x16\xe3\x94\x0b\x8b\x54\xdd\x1c\xc4\xa4\xe4\x21\x34\xd3\x7c\x00\x4d\xad\xc2\x9b\x8f\x16\x15\x57\x39\xdf\x54\x80\xa4\x4e\x9a\xad\xfb\x5a\xf4\x4f\xea\xa6\xae\xde\x7b\x9c\x4e\x2f\xd2\xe4\x2c\xb1\x44\x34\xeb\xa0\x17\xb6\xf6\x2b\xeb\xb8\x8c\x28\x89\xf2\x6b\x9e\x8d\x33\x77\x7c\x2a\x23\x01\x58\x14\xb1\x60\x6d\x07\x15\xc4\xce\xe1\x95\x64\xe2\x3d\xc7\x7e\x72\xec\xc3\x40\x48\x12\x27\x7d\x73\xf6\x62\x49\x1d\x1c\x8a\xea\x20\x1a\x59\x60\x80\x8d\xda\xaa\x07\x85\x90\x1b\x7f\x65\x24\xce\x20\xf3\x20\x51\x54\x24\xbd\x82\xae\xec\x13\x64\xcf\x89\x1a\x12\x80\xcd\xcd\xf5\x70\x43\x32\x61\xa9\x13\x6e\x7f\x6b\xb4\x25\x6f\xa0\xf2\xc8\xe4\x11\x49\x1e\x6b\x64\xd7\x15\xd5\x28\x46\xbf\x12\x8d\x48\x2e\x00\xfb\x07\x45\xbb\xae\xba\xa2\x2b\x3f\x2a\x50\xca\x58\xe7\x4c\xb9\xfe\xec\xec\xcb\x62\x13\x61\x1b\x73\xb3\x5d\xfa\x25\x51\xc6\x26\xf3\x84\xdc\xbb\x5a\x09\x84\xbb\x84\x43\x12\xaf\xad\xbd\xc8\x9b\xa6\xae\xac\x1d\xd0\xa7\xb0\x16\x99\x80\x15\x2b\x38\x7c\xa2\xb2\x40\x65\xca\x39\xae\x14\x8f\xc5\x7f\xff\x2b\x1e\x45\x53\xce\x73\x1e\x99\xea\x08\x93\xae\xaf\xe2\x15\x4b\x20\x01\x4e\x2d\xb3\x34\xc5\x18\xf5\xbe\xe8\x5e\x9a\xa2\xfc\x26\xca\xd7\xb7\xa6\x08\xf3\x2c\x8f\x05\xd2\xce\xbc\x61\xc9\xd4\x79\xcc\x0f\x4a\x2c\x3f\xd9\x31\xa8\x77\x41\x6e\xf4\x83\xeb\xcd\x33\x40\x23\x93\x09\x0b\x46\xe6\x39\xa8\x7c\xa8\x08\xd6\x1a\x66\x3f\x42\x44\x96\xd3\x64\x00\xda\x47\x68\x48\x14\x45\x91\xff\xb0\xc8\x53\x6d\x17\x39\x71\x3a\x88\x4a\x1f\xfa\xcb\x2c\x0f\x12\x2a\x30\x85\x2a\x82\x01\x12\x95\x42\x46\x34\xd4\x6d\x31\xab\x0c\x47\xc0\x46\xd9\xfd\xdc\xd9\x15\x1d\x78\x28\xe8\xf4\xe2\x05\x68\x8f\x00\xea\xe7\x5f\x51\x1d\xe7\x40\x4f\x37\x50\x72\x92\xf7\x33\xc1\xe9\x0c\x7a\xb7\xf7\xe9\xd9\x64\x4a\xa5\xf1\xb8\x25\x0d\xbf\x06\xf5\x1f\x2a\xa5\x50\xa8\xaa\x82\x3c\x99\xef\x00\xaf\x96\x51\x8a\xe9\xf0\xba\xed\x8a\xd3\xd0\x35\x97\x52\x40\xe2\xcc\xc3\x6f\xeb\x06\xbd\x2e\xe6\x6d\xef\xd9\x17\x43\x8a\x72\x13\xbb\x4b\xd5\xbe\x14\x55\x38\x91\xa2\x06\x01\x8a\xbf\x17\x9d\xaa\x8b\xd0\x33\x92\x2a\x51\x58\xdc\x7c\x7c\xda\xac\xd6\x07\x42\xc2\xdf\x0d\x47\xe0\xd5\xc1\x76\x86\x45\xa0\x7a\xce\x1e\x9e\xce\xad\x11\xd0\x02\x45\xbf\xda\xdb\xe7\x87\x9b\xdd\x7c\x88\x4a\x24\x1b\x35\xb7\xef\xeb\xca\x12\xff\xae\x08\x3e\xf9\x3a\xb2\xd4\x46\xa0\xae\xdc\xa1\x1e\xf1\x0b\x25\x64\xb6\x66\xbb\xaf\x4f\x12\x0b\xed\xe1\xef\x22\xd2\x03\x01\xc4\x4a\xf8\x3b\x35\xa3\x4f\x28\xd8\x12\x44\xae\xc8\xd0\xfe\x0e\xdc\xa6\x8f\xaa\xbb\x12\x54\x6e\xbb\x8f\xa2\x7d\xd9\x5e\xba\x95\xf0\x88\x1e\x77\xdc\x87\xf8\xbb\xc7\xf5\x6a\xff\xb4\x3e\x2c\xfb\xb0\xea\xcf\xc3\xe2\xe6\xdb\x66\xb7\x7d\xfa\xf3\x70\xb3\xfe\x76\xd8\xaf\x17\xf7\x87\xc5\xdd\xdd\xd6\xe3\xa3\xa4\xd1\xb9\xa3\x81\x80\x7a\xb5\x4a\x5a\xae\x1c\xfd\x6f\xe6\xb6\x7b\x45\x62\x43\x07\x74\xfb\x9d\x70\xb4\x93\xab\x3b\x9a\x22\x3a\xc5\xd7\x7b\xf9\x65\x1c\xf6\x29\x4a\x72\x5c\xc4\xee\x7f\x3d\x81\xaa\x1b\xed\x65\xa3\xae\x99\x1e\x51\x45\x13\x33\xc2\x1f\x07\x48\x9d\xad\x2f\x5c\x9d\x7d\x8a\xe6\x56\x8e\x0e\xd9\x11\xf5\x2f\xff\xbd\x8c\x53\x0c\x43\xbf\xd5\x17\xf5\x32\x5a\xa5\x14\x4b\x22\x4c\x1f\x1e\x4b\x31\x61\x26\xa9\x38\xb2\x0d\x95\x06\xba\xc6\x95\x4c\xfc\x94\x55\xb1\xa4\x98\xfb\x1f\xac\xc4\xb2\x8d\xaa\xad\xf4\x73\x48\x7e\x55\x12\x11\x66\xf5\xe1\xab\x63\xeb\x2c\x1d\xc2\xa1\xc4\xc9\x55\xd8\xb5\xcf\xea\xda\x4f\x27\xad\x4a\xa8\xe6\x4e\x35\xc1\xe6\x5c\xfe\xef\x31\x0d\xf8\x4a\x04\x14\x0c\xfb\x32\xa1\x99\x7f\x58\x89\x4c\xb4\x6d\xcc\x20\x1c\x71\x96\x76\xa8\x54\xe5\x38\x5d\xa5\x7d\x19\x0f\xcd\xe0\x23\x4b\x95\x60\x19\xd6\xb1\xbe\x84\x20\x54\x09\x06\xb6\xa7\x00\xea\xd2\x14\xdd\xdb\x97\x4b\x70\x40\xa3\x4a\xe8\x5c\x8e\x5d\x63\x26\x13\x52\xc9\x48\xa0\x9e\xc2\xb7\xf5\x0e\x1d\x17\x71\xf2\xdd\x3c\x3f\x8d\x59\x24\x4a\x12\xcb\x64\xdb\xbf\x9d\x5f\xea\xd0\xd3\x57\x92\x26\xca\xf9\x41\x38\x35\x2d\x87\x5e\x1b\xbd\xb8\x24\x79\xef\xaa\xf6\xb1\xe4\xe7\x3f\x6c\x21\xf2\x1f\xe3\x7a\xa4\x92\x4c\x78\xb6\x80\x33\x3c\xc0\x80\x67\xf6\x40\x24\x03\x8c\x0a\x57\xdb\xdd\xee\x06\x4e\xe1\x76\xc9\xdc\x44\x36\x2b\xe8\x44\x79\x70\x3d\x8f\x00\xd4\x52\x2a\x02\x5c\x7c\xb0\xbe\xd2\x4f\xbd\xff\xab\x8b\x1a\x55\x8a\x25\xde\xc6\xa7\xab\x1b\xb0\xf4\xd2\x52\x4f\x27\x95\xe2\x24\x71\x51\x3d\xc6\x31\xd3\xc5\xf2\x5d\x9d\x6d\xfa\xdb\x94\xb0\x69\x1a\xca\xe7\xeb\x11\x96\x5b\x29\xc5\x85\xbb\x37\xb7\xe2\x04\xd7\xdc\x59\xa8\x52\x5a\x44\xe0\xf1\xaf\xc5\x49\x34\x6f\xde\xca\x7a\x36\x50\x27\x29\x2a\x7a\xfc\x5e\xc2\xf0\x0e\x6a\x11\xa1\xee\xee\xa3\x68\xdb\x55\x7d\x42\x59\x1e\x40\xa9\xae\xe9\x87\xc1\x68\x84\x0a\xdd\x15\xdd\x04\x82\xa7\x4c\x9e\x11\xcf\xb9\xee\x5c\xdc\xbf\xa9\x54\x7d\x9a\x5f\xa7\xd1\xc6\x4a\xbb\x38\xc9\x0a\x4b\xb8\xbd\x12\xc5\x69\x42\x08\xa2\x8d\x4e\xe2\x97\xaf\x21\x8c\xcb\x9a\x9a\xd0\x0c\xa7\x8c\x7b\xdc\x57\x93\x0d\x4d\x58\x86\xe1\x48\xd3\x9e\x77\xaa\x80\xa1\x71\xa2\x09\x8f\x31\x93\x34\xd6\x20\xd5\x2e\x66\xd4\x1f\x8c\x53\x5f\xb6\xeb\xf7\x92\x27\x51\xbd\xce\x4f\x6c\x72\x9f\x0d\xed\x3a\xd1\x7c\x46\xd8\xd6\x94\xc9\xd4\xda\x03\x75\xea\xa5\xdf\xbf\x1d\xe1\xd1\x1f\x4e\x33\x5c\xa6\x9c\x78\x81\xe5\x40\x8c\x26\x80\x66\xc4\xd6\x2c\xbf\xf5\x4b\xaf\xb0\x8c\xb9\xab\x93\x48\xb3\xd4\xce\x40\x0c\x80\x9c\xbc\xd9\x68\x45\xd4\x2c\x85\x3c\x0e\x71\xd8\xa1\x0e\x76\x64\x7e\xad\xd0\x0c\xb2\xd8\x2a\xee\xdb\xeb\x40\x23\xb6\x3e\x4d\x41\x53\xbe\xc9\x4b\xa1\x39\xe7\x08\x18\xd8\x6f\xee\x93\xbf\x2e\xfa\x69\x9e\x51\xe6\xf0\x8a\x06\x1a\x51\xa2\xa8\xf7\x18\xd5\xa4\xb9\x00\xfc\xf2\xc3\x41\xf9\x92\xd8\xc7\xb6\x5b\x54\xc7\x2c\xa1\x7a\x2e\x97\xee\x5f\x8f\xe9\x48\x01\x7c\xa8\x13\x0e\x74\x61\x1d\x43\x86\xd9\xc7\xb7\xc5\xdd\xf3\xfa\xb0\xbd\x3d\x3c\xef\x3d\x9f\x43\x27\x52\xe1\x4b\x81\xe8\x4a\x71\x2e\x82\x25\x02\xd5\x89\xd1\xd8\x4a\x28\xf4\xc1\x8c\xf2\xcf\x4f\xa9\x1e\x3a\x03\x63\xad\xec\x3d\x15\x1c\x65\xa2\xdc\xc1\x3c\x91\x99\xd5\xad\x34\x80\x25\x97\x20\xa5\x3c\xdc\x6f\xc1\x22\xc4\x34\xef\xfb\x68\x3e\x5c\x8b\xd0\x04\x9b\xb6\x5d\x53\x9c\xa6\xbf\x5a\x68\x1a\xbb\x88\xe8\x41\x9c\x60\x6b\xae\x16\x51\xb5\x80\x0c\xf9\xbb\xbb\x33\xa8\x42\x94\xf8\x46\x86\x47\x82\x6a\x9d\x16\x11\x73\x29\x45\x73\x2f\x7e\x3d\x42\xf3\x08\x4d\x1b\xb6\x08\xad\x63\x15\xa5\x23\xd0\xcc\x1c\xd8\xad\xb5\x48\xb0\xc1\x82\xb8\xde\x75\xf7\x12\xe4\x39\xdc\x71\x20\x82\x59\xcf\xe8\x87\xfd\xd3\x62\xb5\x3f\x3c\x3e\x6d\xbf\x6d\x6e\xd6\x4f\x87\xc5\xcd\xcd\xd3\x7a\x17\x9e\x88\xc9\xb8\x25\x7f\x9d\xeb\x6a\xd0\xc5\xf0\x56\x35\xfd\x71\x8b\x11\x9d\xe8\xaf\xf4\x91\xee\x6d\xdd\xf8\x6d\x65\x44\xeb\xd2\x46\x30\xd4\xe8\xf9\xd7\xd3\x1f\xce\x1d\xa3\xff\x42\x77\x14\x22\xa7\x8c\xa5\x8b\x1f\x23\x05\x0b\x88\xa8\xf1\x3b\xa2\x9b\x4b\xe3\x2d\x23\xf3\xa3\xa4\x00\x17\x83\xfb\x9d\x7f\x64\xa2\x3b\x9d\x19\x40\x59\xac\xd0\xfd\x11\x45\x2e\xfc\x93\x05\xaa\xc8\x88\xcc\xb8\xaa\x2b\x5d\x7c\xc6\x51\x9d\x6e\x59\x40\x95\xd5\xaa\xc2\xbb\xfe\x3c\xdc\x6e\x60\x11\xc7\xda\xeb\xcd\x45\x09\xd1\x85\xbf\x32\xe5\x85\xf7\xb1\xbe\x6a\x01\xe8\xcb\xb7\x7d\x23\xd4\xeb\x66\xf6\xea\x03\x8b\x53\x74\xf4\x28\xda\xbb\xa2\x7a\x9d\x35\xbe\xfc\x98\x14\xd0\x6a\x0b\x7e\x75\x37\xd0\x76\x4d\xfd\xf6\x50\x54\xff\x2b\xe6\x67\xd2\x14\x0b\xa4\x98\x22\x8d\xe2\x42\xe0\x8a\xe0\xeb\x77\x1e\x32\xa3\x29\xc8\x00\xb8\xb6\x8d\x2d\x8f\xce\xfd\x4b\xb9\x97\x0f\xfd\xc7\x28\xc4\x3c\x46\x15\x54\x5c\x43\xbe\x34\x00\x15\x8c\x08\xb9\x1f\x2e\x6a\x10\x6b\xe6\x0b\x69\xcb\x4e\x8d\xe7\x49\xa2\x00\x29\xad\x9d\x78\x1d\x21\xc3\xa7\x3f\x3e\x8d\x29\x82\x89\xee\x37\x0f\x73\xb5\x77\x0a\x69\xca\x31\xb1\xd7\x50\x16\x3f\xae\xf8\x91\x4c\xc2\x7d\x48\x15\xcd\x9c\x1d\x4a\x71\x2e\x70\xa6\x37\xc1\x0c\x84\x42\x16\x07\x72\x85\x7d\xb2\x0e\x48\x77\x35\xc5\x81\x9c\x03\x82\x55\x90\xbd\x4c\x0e\x16\x3c\xe1\x8e\x89\x28\xf5\x2a\xbc\x5f\xa0\x02\xb7\xad\xce\x75\x96\xa7\x53\x41\x44\x59\xa6\x83\x21\xca\x73\xd5\x06\x03\xa6\xfe\x98\x60\x03\x98\xf3\xbe\xa8\x3c\x78\xed\x0a\xfd\x18\x84\x4e\x11\x01\x80\x96\x1d\xdb\xcb\x70\x51\xc6\xaa\x75\xe2\x02\x3f\xb5\x73\x75\x23\x24\x10\xa4\x5c\x1f\x74\xbf\x8b\x9e\x8a\x0a\x56\x2f\xa2\x7f\x2d\xa1\xd9\xbf\x9d\x67\xd5\x78\xd0\x34\xb1\x4e\x1a\x9e\x7f\xc2\x66\x03\x20\x8f\x11\xb0\x83\xb4\x6a\xbb\x9e\x25\xfe\x62\x40\xd3\xdc\x15\xc0\x1e\xb7\xdb\x3b\xdb\x3a\xa4\x99\x3f\x6c\xa2\x2c\xb7\x0d\x36\x04\xc7\xdb\xed\x75\x10\x81\x00\xc3\x33\x6c\xb3\x04\xcd\x35\xb4\x0a\x80\x62\xfa\x7a\x99\x28\x26\xcc\xb1\x79\x0e\x9d\x75\x16\x9a\x0f\x48\x11\x79\x7a\x5b\xd7\xf7\x9e\x02\x3b\x91\x0c\x30\x51\xce\xb1\xb2\xb2\xec\xe3\x3d\xf5\xe2\x0c\x95\x66\xa7\x21\x51\x62\x0b\xae\xfe\xbe\x39\x77\x96\xc9\xf4\x33\x44\xca\xd8\x4a\x80\x95\xe5\x3d\x2c\x76\xa0\x1a\x98\xf6\x53\x0d\x31\x90\xe7\x81\xaf\x70\x2f\xaa\xb7\xb1\x92\xca\xac\x0b\x67\x28\x8b\x10\x8a\xb9\x6c\x40\xbc\xca\xa2\x6b\xd7\x4f\x2b\x1a\x8d\x83\x4e\x43\x39\x75\x62\xd9\xdd\xe1\x54\x54\x37\xeb\x7d\xbf\x42\xd8\x5c\xf0\xbe\x6e\x60\xff\x22\x66\xbd\x12\x43\xe3\xcc\xaa\x58\xd5\x4d\x77\x3d\xc9\x36\x54\x46\x58\x78\x3f\xd8\x76\x4f\x9f\xde\x4f\x79\xab\xd3\x77\xc5\x30\x46\x72\x2b\x83\x74\x3c\x96\xb0\x87\xb6\x43\x0f\xc8\x21\xea\x32\xcc\xcd\x87\xb2\x16\x7a\x64\x80\xd7\x1f\x00\xec\x1e\x89\xb2\x74\x89\xe4\xad\xcb\x47\xfd\xdb\x61\x78\x14\xa3\x74\x64\xfb\x72\xe9\x74\xfd\x73\x2c\x3e\x33\xdb\xc7\x0d\x97\x5a\x46\xa1\x4d\x35\x8e\x20\x4d\x2c\x62\xae\x66\x14\x3a\x7f\x2c\x85\x1c\x15\xd8\xdb\xfa\xd2\x28\x98\xa0\x89\x8d\x20\x2a\xb7\xd1\x20\x56\xd1\x21\xac\x6e\x46\xe4\x14\x21\x20\x96\xfa\x34\x20\x03\x8d\xd0\x0a\x97\x8e\xc3\x31\x20\x85\xfc\x21\xc9\x2c\x8b\xdc\x7e\xc6\xba\x39\x39\x74\xca\xf7\x17\xa8\x9c\x05\x67\x7f\x77\x79\xe4\x3e\xa2\x24\xc3\x80\xf5\x4b\x5d\x6a\xa8\x96\x97\xd2\x5a\x28\x4e\xa6\x81\x02\x8e\x68\x4d\xed\x1c\x9c\xb0\x42\x76\x6d\x9f\x35\xa0\x59\xec\x14\x99\xfa\x38\xeb\x14\xbc\x3a\xa9\x31\x69\xee\x31\x5b\x8b\xa7\xa7\xc9\x9d\x65\x51\x44\x6d\x17\x5d\x5e\x9a\xea\x61\xf7\x78\x7d\xd5\x64\x51\x14\x73\xe9\x58\xe2\x3e\x24\x3c\x7c\xd9\x5c\x67\xc2\xb2\x28\x4a\x35\xf6\x5c\x1b\xd1\xc1\xad\x2f\x03\xfe\xe6\x0e\x52\x10\x04\x3c\x30\xb1\xa8\x74\x53\x9f\xaf\x05\x6f\xfd\x40\xc5\xad\xaa\x9d\x7a\xb5\xdd\xd1\x49\xa9\x92\x45\x2c\x8a\xd0\x95\xe6\xe0\xbb\x57\xc8\x62\xfa\xd0\x08\x98\x45\x8c\xb3\x94\x60\x0b\xb9\x70\x72\x8a\x4f\x97\xd2\x6b\x72\x67\x57\x83\x0d\x16\xb1\x2c\x75\x26\xa3\x55\x34\x6a\xcf\xb2\x88\xe5\x91\x1a\x9b\xdf\x8d\x7d\xf2\xe7\x3b\xd9\x55\x91\x48\x16\x31\x65\xc9\x24\x42\x7b\x23\xc8\x27\x78\xb7\xdc\xb1\x88\x69\x85\x05\x0c\x54\x10\x08\x5f\x6f\x72\x93\x0e\xc5\xbd\xaf\xfb\xed\xb4\x6f\xe7\x86\x71\x96\xa2\x43\x86\x84\x63\xa8\x8b\xb2\x88\xa7\x31\xe2\x6e\x30\x82\xfa\x0e\x85\x0f\x73\xfc\x61\x49\x11\xbd\x12\x7c\x0c\xfd\x81\x38\x63\x58\x62\x33\x00\x83\x79\xd3\x2b\x54\x8b\xb2\x9c\x7d\x6f\x92\x68\x9e\x4f\x2d\x7c\x3f\xcf\x22\x58\x94\x46\x0a\xe3\x25\x57\x4e\x3c\x3c\xad\xbf\x2f\x9e\x6e\xfc\x57\xa7\xdc\x8a\x5d\xee\x9e\xa7\xb2\x47\xfe\x70\x6a\xdd\x3d\xcf\xe2\x0d\xd3\x7c\x64\x6b\xfb\x83\x19\xd5\xd4\x76\xd2\xdd\xba\xa7\xff\x92\x39\xfb\x5e\xf2\x8b\x45\x19\x27\x3a\x0f\xd1\x7e\x23\xc2\xed\xcc\x53\x81\x35\xbb\x17\x28\xf5\xc8\x60\x8e\x45\x42\x32\xee\xc1\xaf\x75\xd5\xc1\xac\xc0\xcc\x22\xa9\x84\xc5\x9b\xb9\x90\xcc\x9b\x8c\xb1\x48\x19\x8e\x75\x87\x4b\x85\x75\x93\x41\x34\x9c\x45\x9a\x48\xb4\x73\x45\x54\x54\x9f\x09\x8c\xb0\x0c\x2c\xd2\x79\x8c\x78\x46\xa7\x13\x85\x59\xe8\xdf\xfd\xb1\xd3\xa9\xaf\xa5\xc2\xc8\xea\x06\x1e\x60\x2c\xbe\xc2\x22\xe0\xd6\xce\x6b\xb1\x5c\xae\xc6\x07\x08\x61\x1a\x43\xa8\x17\xd1\xf4\x99\xe5\xa3\xf5\x17\x09\x47\xb5\xa4\xc6\x4b\x03\xe3\x7c\xc7\x00\xe5\xea\xdb\x4a\x08\x58\xb2\x80\x23\x01\xf6\x33\x74\x22\x21\xc0\x08\xd5\x4e\x3b\xca\x26\x40\xd6\xb4\xe3\x63\x4c\x28\x23\x2c\xe7\x18\x94\x1e\xb0\x14\xbd\x7f\x19\x74\x8d\x3f\x6d\xce\xf7\x1f\xb4\x82\x77\x36\x5f\xd9\x95\xa2\x7d\x99\xbf\xa5\x84\x13\x95\xd8\xbd\x50\x89\xb2\x7d\x82\xf3\x27\x90\xa1\x8f\x6b\x2a\x8c\x70\x91\x67\x5e\x6d\xc5\x62\xd4\xfd\xef\x8d\xb9\xdb\x06\x91\x0e\x7c\xf5\x25\x22\x71\x92\x22\x13\xfa\xae\x3e\x3e\x61\x29\xe4\xbb\xd7\x71\x9a\x65\x31\x8c\xc4\x79\x2a\xf4\xe0\xae\x72\x75\x89\x22\x31\x58\xe3\x2b\x94\x42\xf2\xef\xfc\xd4\xc5\xce\x4f\x59\x92\x90\x48\xcb\x51\x5b\x68\xf6\x7d\xa9\x8e\x70\xc3\xdf\xed\x17\xfb\xe7\xdd\xe1\x71\xb1\xf1\x2f\x37\xc9\x55\x82\x55\x5e\x55\xd7\x25\xc6\x02\x61\x87\xef\x43\x90\x1c\x79\xe4\x03\x76\xe7\x8a\xe3\xcd\xfc\x52\x04\x49\xd1\x83\xe2\xb6\x5b\xf9\xf3\x08\x1e\xa1\xcf\xf2\x41\x59\xed\xc6\x65\x79\x81\x73\x53\x4c\xb1\x71\x76\x98\x18\xe3\xe1\xab\x87\x3a\xa4\xdc\x8f\xa5\xa8\x86\xf3\x39\xf3\x48\xb7\x48\xba\x18\xf3\x3a\xfd\xe9\x4a\x69\x98\x11\x21\x09\xe2\x47\xd0\x0f\xa3\xaa\x40\xd9\xe2\xea\x55\x6a\xce\xfc\x4d\xbd\xfe\xf4\xa5\xb0\xca\xa4\x36\x11\xb2\xcb\xdd\x75\xf8\x11\x23\x2a\x56\x28\x3f\xff\xda\xaa\x1b\x87\x6a\x7e\x87\x9f\xbb\xbc\x47\x09\x33\xa2\x52\x2b\x9a\xe7\x45\x3b\xfc\x0d\x51\x12\x72\xe1\x55\x23\xe6\xfe\x25\x8c\x28\xed\xb4\x63\x30\x80\xde\x8b\xfe\x93\xd3\xb9\xa6\x8c\x9d\xf9\xd6\xf6\xee\xd8\x88\x93\x3f\xb5\x4e\x08\xce\xfc\x00\x95\x9a\x85\x0c\xe1\xb9\xeb\x34\xc5\xca\x86\xeb\xf2\xfb\xa0\x73\x64\x43\xc2\x88\xce\xac\x00\x71\x30\x1d\x9c\x50\xf6\x67\x77\x49\x2b\x81\x2f\x49\x57\x9c\x60\x5f\x3f\x57\x28\x83\x7d\xf3\xf5\xeb\xfd\xbd\x3f\x1d\x04\xbf\xa4\x51\x90\x36\x7d\x2c\x90\x51\x2c\x6f\x15\xed\xd4\x5c\x78\x3e\x2a\xcb\xdc\x96\x79\xcd\xe7\x69\x34\xdb\x47\x4b\x9a\xc9\xcc\x80\x4f\x6c\x07\x70\x15\xa3\x11\xa5\x08\x69\x08\x24\xee\xdf\x41\x0a\xb9\xbc\xbc\x59\x52\xc0\xf4\xe9\xd0\x88\xcb\x4c\x86\x2f\xbf\xa2\xff\x19\xc6\x29\xe5\x72\xb3\xbb\xa2\x82\xe7\xf3\x1a\x01\x52\x87\xf3\x48\x76\xf1\x1f\xb3\x53\xc7\xdc\xdb\x13\x78\xe3\xed\x77\xf4\x2b\x46\xa3\xc4\x2e\x34\x63\xf6\xa5\xd7\xd8\x08\x60\x13\x46\xa3\x9c\xa0\xa4\xc8\x77\xf1\x2a\xfa\x7f\x86\xba\x0a\xa3\x91\xe1\xf1\xd0\x8b\x5f\x16\x7a\xf6\x1b\x09\xb7\x48\xff\x61\x7e\xf9\xb2\xcb\x6c\x5c\xcc\xad\x3d\xff\xb4\x38\xc3\x7e\x0e\x61\x2c\x25\xb9\xb6\xec\x38\x7f\x77\x7d\x77\xf5\xea\x86\xeb\x3e\x44\x69\x82\x49\xc7\x17\x71\x82\xdd\x98\xb6\x31\x1b\xc7\x32\x82\x25\x36\xa1\xf5\xa9\xae\xe0\x1d\x16\xeb\xfa\x7e\x4d\xb9\x4a\x10\x24\x60\x84\xd3\x4a\x1b\xeb\x40\xfb\x31\x90\x45\x23\x77\x2f\xd7\xde\xbf\xfe\xe0\xb8\x91\xd6\x13\xb4\xbf\xd4\x7e\x49\xb6\xad\x7c\x7f\x0b\x62\x66\x0d\x16\x4b\xd1\x76\x3b\xf5\x02\xfa\x52\x82\xde\xd7\xe7\xe7\xb3\x1f\x91\x10\xab\x0b\xd6\x3d\xc1\xd1\x51\x1c\x9b\x30\x3f\x13\x45\x70\xba\xbf\x88\x76\x7b\xee\x03\x3a\x1f\xb5\x41\x33\x06\xf6\x13\x9a\xb9\x0f\x64\x51\xc6\x5c\xb4\x7c\x57\xc8\x46\x34\x85\x78\xa7\x5c\xe6\x86\xe6\xd4\x18\x37\x74\x77\x39\x43\x33\x51\x61\xf6\x63\xa4\x89\x07\x89\x8b\xf0\x4e\x4e\x96\x24\x2a\x69\xe6\xe1\x6c\x8b\xe6\xf4\x76\x7b\x29\xcb\x77\xe5\x6b\x46\x65\x92\x20\xab\xe7\xa7\xa8\xba\x4d\x77\x5b\x37\xfd\xd2\x32\x1f\x93\x01\x92\xe0\x95\xf5\xe2\xf9\x88\x3d\xc1\xa8\xe2\x44\xa7\xe3\x62\xfa\x1e\xe1\x85\xcf\xcb\x70\xe3\x55\x12\xa3\x3f\xb0\xef\x0e\x1c\x7e\x40\x33\x0a\x77\xa9\x4a\x04\x86\xbb\xce\x7e\x7f\xbc\x48\x53\x25\xa9\x37\x02\xc4\xa7\x31\x77\x06\x63\x54\x81\xc2\x7c\x71\xf5\xb4\xfd\x7e\x83\x80\xc1\xc5\x6a\x35\xe0\x27\x19\xd5\x52\x69\x97\x6b\x3e\x5c\x4e\xbf\x57\xc5\xf1\xc5\xcb\xd4\x31\xaa\x55\x8c\x98\x64\x6b\xe3\xd2\xbf\x10\xc4\x57\xbd\xc2\x18\x88\xec\xca\x74\x70\x06\x52\x8f\xe5\xa5\x7d\x12\x8d\xd7\xd8\x09\x37\x1f\x38\x8d\x9c\xe4\xc7\x7f\x27\x24\x12\x77\xdc\x90\x1c\x2b\x55\xed\x4b\xfd\xd3\x72\x8f\xf5\xc4\xca\x66\xfa\xbc\x0d\x97\xb8\x3d\x2d\x45\x23\x3d\x54\x88\x51\x23\x24\xaa\x96\xe2\x7b\x26\x83\xb3\x09\xeb\x43\x59\x44\xb5\xed\x8a\x0a\xfb\x03\x45\xf7\xb6\x87\xb6\x8b\xfd\x71\x16\x83\x37\xcc\xdd\xac\xb6\x3b\x4f\x77\x9f\xde\x4c\xc6\x32\x12\x5c\x39\xec\x55\x4d\x58\x8f\xd7\x5f\x64\xc6\x84\x36\x76\xae\x5c\x9a\x16\xda\x3b\xa8\x8e\x5e\x03\x80\x31\x26\x23\x5c\x1c\x0e\x2d\x9a\x42\x5e\xb3\x2a\x98\xd7\x07\x18\x63\xca\x06\x2b\x85\xaa\x6f\xd1\x02\xd9\x9f\x8d\xf3\xd8\xee\x1f\x8d\x40\x92\x96\x17\x6f\x62\x8c\x43\x1e\xd9\x2a\xaf\x3e\xd7\x25\x3c\xc1\x7f\xc2\x11\xa3\xa3\x01\x35\x7c\x5b\x54\x6a\xa6\x08\xe4\xc6\xc5\x91\xd5\x3f\x33\x75\x23\x0b\xad\x01\xcd\x4b\xc3\x34\x65\x31\x4d\x35\x0d\x59\xd9\x72\xb1\xbf\xbe\x0c\xb1\x24\xcf\x10\x25\x5c\xf4\x31\xa5\x43\x93\x12\x9a\xb9\x17\x87\xd0\x6c\xb4\x1f\xb2\x44\xe8\x8c\x79\xe2\xc5\x9c\x25\xcd\x58\x62\x32\xa4\x0f\x7d\x81\x60\x5c\xf9\x54\x1c\xfd\xcc\x64\x29\xa1\xd6\x8a\xce\x26\x5d\xb3\x24\x93\xa5\x82\xe2\x5d\xb4\xf8\xc5\xbb\x5a\xbd\x0e\xc8\xc8\xbf\xe2\x9e\x5c\xad\x08\xb8\xf3\xe6\x34\xc1\xbc\x04\xd1\x40\x87\x9f\xd7\xdc\x65\x19\x13\x24\xd2\x76\x2a\x35\xba\x3d\x74\x45\x87\x6e\x79\xf3\x41\x14\x70\x8b\xeb\xd7\x64\xe4\xbd\x1f\x7e\x90\xec\xab\x68\x5f\x0e\x6e\x9c\xff\x29\x22\x13\x9e\x56\xee\xd0\xdb\x4e\x97\x68\xfa\xd6\x30\xa1\x04\xb6\x36\xef\xd5\xb8\x37\xfb\x51\xd7\xa0\x9f\xb9\x12\x69\x9c\x5a\x34\x28\x2e\x10\xa6\x93\xe2\x12\x81\xc3\x50\xe9\x43\xe5\x15\x75\x18\x53\x32\xc3\x72\x74\x50\x91\x76\xb5\x32\x7f\x18\x24\xae\x9a\x0b\xad\xbf\xd4\x6d\x3b\x52\xb9\x9b\x7c\x2b\x64\x80\x0c\x24\x70\x7e\x9b\xde\x50\x71\x33\x6b\x61\x8d\x1a\x59\x8c\x19\xa5\xd0\xde\x0d\x53\x9b\xb0\xfe\xcf\x32\x09\x1e\x89\x3c\x75\x80\x7f\x31\xa2\x6b\x8e\xcf\xc4\x23\x9d\x29\xfb\xdb\x54\xad\xad\xac\xc3\x2d\xfc\xb5\x48\xbf\xff\xb4\xa1\xb6\xb8\xf6\x52\xff\xb4\x0d\x52\xe8\x44\x51\x4e\x89\x65\x8c\x13\xa6\x11\x99\x77\x30\x75\xd3\xa7\x5f\xa3\x7a\x2b\xe3\x24\x8f\x71\x5e\x6f\x56\x56\xdd\xbf\xdd\x38\x31\x83\xeb\xef\x14\xa7\x0c\xc0\x26\xd7\x08\x89\x0e\x86\xc6\xfe\x30\xe7\x1e\x0e\xbb\x5a\x7e\xd0\x03\xf6\x43\x63\x86\x61\x3d\x5e\xce\x44\x80\xc2\x0f\xd0\xa9\xb2\x51\x57\xb5\xde\xee\xfc\x37\xb0\x84\x4a\x18\x82\xdd\xbf\x5a\x12\x39\x4f\x4c\x36\x16\xfa\xb6\x19\xce\xe4\xe5\xe6\x3c\x15\x5e\xe8\xdd\x79\xd2\x39\x82\xef\xf4\x46\x72\x88\xac\xb5\x99\x28\x61\x5a\x51\xe0\x69\x64\xbd\xa5\x84\xd6\xfd\x4b\x03\x2d\xf1\xcd\x0d\xc6\x53\x0a\x3e\xbb\xbd\x17\xbf\x1e\x9b\xda\xcc\x7a\x38\x8c\xa7\x29\x45\x69\x39\x67\x9f\x2b\x34\x1a\x88\x4e\xae\x31\x8b\x18\x56\x09\xfa\xbd\xef\xbb\x28\xba\xa2\x3a\xe2\x7b\xda\xce\x4e\x95\x11\x40\x1d\x95\xf7\xf2\x98\xff\xb8\x0c\x22\x5b\x7e\x11\x0c\xa2\x7c\x8c\x67\xb1\x46\x35\x0b\x2b\x60\x30\x18\x49\x66\xff\x18\xef\xad\x3c\x4b\x45\xea\x09\x6a\xf6\x4a\xd6\xd5\x98\x13\xc3\x78\xa6\x35\xae\x37\xeb\xfd\xd7\x34\x8e\xea\x2a\xe6\xfe\x48\x1e\x49\xdc\x9e\xc4\xc7\xc9\x0c\xcf\x59\x8a\xcf\xc2\x00\xe8\x7b\x68\xdb\x91\xdb\xc3\xb5\xaa\x07\xcf\xa5\xa5\x6d\x1e\x10\x03\xed\xff\xa8\x25\x02\xfd\x2a\xd3\x3e\xd6\x75\xf9\xae\x58\x33\xbd\x65\xb9\x49\x50\xb5\x59\x74\x1d\x9c\xce\xdd\xee\x0c\xd5\x2c\x03\xe0\x88\xfb\x0b\xbc\x68\xcc\x99\xfc\xae\xc6\x25\x37\xf8\x64\xfe\x28\xaa\xa3\x7a\x81\x71\x25\x9e\x71\x45\x33\x0d\xe3\x70\x7f\x79\x69\xaa\x2f\x75\xa9\x47\x06\x27\x57\x4a\x86\x5c\xb1\x84\x44\xc1\xb1\x81\x84\xd3\x65\xc2\xc8\x60\xa0\x70\x0d\x7b\xca\xb8\xe6\x29\x82\x2d\xe5\xa5\x7c\xb5\x5b\xe4\x9d\x38\xc9\xfa\x33\x6f\x17\xff\x49\x90\xc2\x45\xb6\xcf\x2d\x3c\x81\xed\x7f\xcc\x4e\x0f\x91\xe2\xe9\x00\x04\xda\xa9\xba\x79\x37\x24\x95\xb9\x03\x1d\x1c\xc5\x09\xfa\x8d\xa7\x1c\x87\x22\x1c\xf2\x14\x1c\x4f\x31\x64\x61\xdc\x44\x39\x06\xc3\x9b\x87\xfd\xdf\xa3\x9d\xf7\x1f\xb1\xe8\x98\xd5\xdd\x62\x73\x7f\xd8\x0d\xde\x9a\x8c\x1b\x1e\xa5\x3a\xe8\x3a\x9a\xba\x39\xbd\x9b\x6a\x86\x33\x7c\xee\xbb\x6f\x03\x28\xff\x5b\x44\x22\x72\x20\xf3\x91\x71\xee\x75\x8a\x1f\xfc\x42\x3d\x9b\x21\x26\x95\xa8\xe2\x7d\x38\x5a\x0d\x1f\xb8\x29\x5a\x55\x9c\x4b\xf8\xdb\x9e\x3a\x2c\x8e\x52\x4b\x8d\x3c\x1c\x2f\xa2\x11\x55\x07\xfa\x5d\x2e\x1a\x47\x59\x12\x3b\xf1\x0a\x8c\x32\xea\x72\x64\x9a\x3b\x9a\x41\x71\x94\xa5\x18\xd0\x58\x14\xc7\xfd\xe2\x0f\x77\x67\x62\x92\x26\xc8\xff\xea\xb7\x8d\x83\x55\x4b\x3a\xd4\xe6\xa0\xc5\x5b\x7b\x68\x8b\x4a\xc1\x41\x8a\xea\xf5\x50\x9f\xa1\x0a\xdd\x72\x16\x53\x92\x60\xec\xf6\xc7\x9f\xab\xd5\x7e\xbd\xdb\x87\xbf\xa7\x56\x39\xf4\xb6\xee\x5f\xea\x39\x9a\x63\xf6\x03\x69\x46\xb0\xdb\x74\xb3\xd8\x7d\x5d\x2c\x37\xbf\xcd\x8f\x26\xa9\x13\xc2\xea\xa3\xf2\xf5\xaf\x0e\xaa\x36\xa4\xf3\x7d\xe8\x33\xfc\x3a\x16\x1b\xfc\x11\x07\x44\xf7\xd5\x3f\x0a\x6d\x8b\x03\xb7\x05\x94\xfa\x9d\x93\xd3\x55\xf9\x99\x7f\x5c\xd9\x91\x63\x96\x26\x5e\xab\xf7\xc6\x7a\x9f\x4d\x96\xe1\x98\xe5\xca\xc3\xa6\xee\x8b\xca\xea\xe7\x9d\xeb\x06\x51\x6a\x43\xed\xc5\x66\x5e\x16\x9b\x37\xf9\x89\x3c\xa7\x88\x46\x53\x75\x59\x7b\x07\xa3\x71\x73\x28\x8e\x73\x9e\xb8\x52\xc3\x20\x06\xb5\x2b\xfe\x3b\x9b\x6e\x71\x42\xad\x4d\xf9\x11\xba\x10\x01\xed\x8b\x59\x8b\x9f\xc5\x89\x60\x48\x22\x78\xbc\x5b\xec\x6f\xb7\x4f\xf7\x87\x2f\x4f\xdb\xef\xfb\xaf\x07\x8f\x7b\x1d\x13\xdc\x58\x9c\x46\xd6\xd8\x14\x9d\xb5\xcd\x03\xa8\x7e\xfd\x6d\xde\x66\xe7\x4c\x45\x84\x82\x5f\xbb\xd5\x66\xb7\xdb\x3e\xed\xc2\xa7\x45\x8c\x46\x17\xd6\xfd\xd2\x66\xe2\x83\x4b\xe8\xfc\x24\x32\xf5\x15\xfd\x7b\xf1\xcb\xb6\x7a\xb7\xc6\x40\x83\x12\xfe\x7e\xb7\x89\xb3\x84\xf8\xfe\x21\x36\xbb\x3f\xc0\x54\x7c\xf0\x3e\x65\x69\x1c\x7b\x2e\x18\x34\x2b\x51\x3d\xd4\xdd\x13\x40\x1f\x9b\x0f\x77\x3c\xcb\x99\x63\xdb\x75\xeb\x5f\xfd\xa3\x0c\x3b\x59\x9c\x01\x43\x63\x8d\x7f\xd6\xb2\xbd\x06\xa6\x64\x71\xae\x40\xbb\x95\x0e\x4b\xcf\x93\xb9\x22\xc0\xae\x72\xdf\x8a\x7a\xd2\x05\x89\x21\x0d\x6a\x18\xab\xa6\xe8\x0a\x25\xca\xe5\x05\xad\xce\xa6\xd7\x0f\x20\x11\x6d\xfd\x05\xaa\xaf\x50\x16\x75\x3b\x2a\x5a\x25\x24\x32\x2c\x75\x75\xaf\xa6\x7e\x5b\x79\xc2\x1f\x4b\x08\x49\x91\x7c\x60\xa3\x09\x92\xdd\x16\xe5\xa9\x1d\x77\xb1\x59\x42\x49\x82\xd5\x7e\xe1\xb1\x8c\x37\xce\xaa\xc9\x93\xb6\xbf\xc3\x38\x3b\x4f\x28\x01\xe2\xfc\x16\x3f\xa8\xa0\x26\xb4\xdf\xec\xfa\x88\xbb\xec\x9a\x4b\xd1\x9e\xee\x47\x94\x96\xeb\xcf\x27\xa1\x39\x45\x3c\xd0\x1e\x1c\xb3\x64\xf8\x75\x34\x37\x9e\x31\x75\xb0\x44\x1b\x51\x1e\xe4\xdb\x61\xce\x29\x61\x09\x67\xc0\x06\xab\xa0\x0f\xe5\xdc\x58\x92\xc6\xd4\x17\xc7\xfa\xa3\x5e\xc0\xd3\xa2\xaa\xfd\x98\xc4\x8a\xe5\x1f\xea\x9f\xf5\xd8\x58\x8e\x25\xa9\x91\x98\xf7\x9c\x9d\x35\xd4\xf4\x7e\x66\xa9\x8d\x5a\x6e\x1a\x71\xac\xab\xdf\xc7\x56\xe3\x93\x55\xe6\x0a\xf8\x3b\xdc\xc0\x4c\x49\x32\x54\x19\xdd\x8a\xf6\xa3\xe8\x40\x63\x61\xff\x6a\x7e\x9e\xe4\x39\xc7\x66\x17\x02\xfa\xd7\xfb\xaf\x8e\xc5\x33\x81\x85\xf5\xa3\x2c\x38\xd3\x67\x88\x80\xce\xd2\x2b\xe7\x40\xe9\x07\x09\x93\x12\x2f\xcb\xf6\x43\x94\x33\xfe\x25\x4b\x44\x64\xd7\x46\x07\xdf\xc7\x0e\xfd\x08\xac\xda\x0f\xb0\xea\xd7\x47\xe8\xfa\xfc\xd6\xa7\x23\x93\x4c\xca\x0f\xd5\x22\xa3\x6e\xa9\x29\xaa\xa3\x65\x7d\x87\xf3\x98\xc8\x09\xe3\x56\x97\xc8\x47\x8f\x89\xcc\x0d\x8a\x0f\xc8\xfe\xb2\xdf\xfc\xfb\xe8\x0f\x0a\x1a\x53\x2f\x76\x52\x96\x5b\xa7\x05\xad\x20\x5c\x9c\x22\x14\x9b\x04\xf7\xe2\xd7\x58\x1a\xab\x3f\xc0\xbd\x42\x46\xa8\x99\x8f\x5b\x29\x7e\x58\x66\x09\xdc\xcf\x53\x1e\xf9\x7c\x54\x9e\x5a\x95\x71\xf1\xb6\xbd\x74\x53\x7f\x3f\x37\x44\x67\xd4\x03\xfb\x7f\x16\x55\xbf\xc7\xba\xe3\x91\x0f\xf3\x12\x6d\x12\x84\xbe\xae\x7f\x81\xba\x20\x4b\x75\x19\xac\x33\x59\x02\x42\x60\x1d\xcd\xce\xf8\xfe\x52\xef\xe1\xf4\xfe\x5d\xbb\x42\x3d\x66\x89\xa1\x8a\x59\x75\xb4\x5f\xdf\xa1\x78\xae\xb0\x22\x51\x84\xbc\x39\x31\x19\x58\x1f\xed\x7e\x37\x9f\xdd\x63\x03\x26\x4d\x2c\xf1\xed\x54\xdf\x16\xed\xcb\xbb\x86\x79\x4a\x22\x81\x4c\xa4\xa2\x32\x8d\x58\x77\x2f\x63\x36\x00\x4b\x09\xcb\x21\x09\xea\x3e\xab\x9b\xeb\x55\xec\x94\x12\x8f\x9c\xe8\x9e\x44\xa5\xeb\x93\x73\xd1\x9f\x8d\x92\xd6\x6d\x1e\x5b\xe4\xfe\x3a\xdc\xf2\xf5\x7d\xbd\x19\xa8\x65\x2c\x65\x82\x67\xee\x8e\x6f\x2b\x68\xa1\x34\xc3\x11\x2b\xb1\x73\xee\xa7\x8a\xfd\xb2\xdb\x7e\xe1\xa3\x37\x20\x42\xb8\xda\x8f\x72\x82\xb9\x95\x9e\xb6\xe9\xfc\xcb\x9b\x32\x43\xb0\xe5\xdd\x7d\x90\x6a\x38\xc2\xa9\x7b\x26\x43\x20\x93\xf2\x58\x60\x97\xd2\x09\x37\xda\x9e\xe0\x8c\xa2\xc0\x52\x9e\x64\x7c\x02\x80\x9b\xf2\xdd\xfc\x28\x6d\x2b\x95\x2d\xa8\xba\xd2\x6d\xbf\x23\x59\x77\x02\xe7\xee\xed\x7f\x4f\xcc\x08\xc6\x72\xc7\x9f\x50\x2c\x97\x37\xf8\x9e\x6c\xaa\x60\xbf\xc6\xd2\x38\x89\x90\x05\xda\x08\x63\x4a\xf0\xba\x06\x2c\x8d\x45\x4a\x95\x77\x32\x68\x5f\x1e\x0b\x35\x2e\x61\xf9\x41\x32\x8f\x07\x22\xf5\x93\xa8\x5e\x8b\xea\xb8\x3b\xd7\x61\x37\x49\x93\x48\xe1\x2c\x41\xb0\xfd\xbd\xe8\xd4\xcb\x87\x01\xf2\x07\x7f\x9e\x2e\xaa\x63\x4a\xef\x64\x8e\x24\x24\xf2\xe8\xe7\xdf\xe1\x6d\x2c\x16\x42\xc2\x90\x8c\xe0\xaa\xb2\xf3\x28\xd0\xcd\xcd\xa4\x34\x3a\x0c\x34\x80\xb0\xd6\xc3\xa5\x6a\x85\x81\xcf\x73\xca\x34\x03\x4b\xc5\xb0\x09\xd8\xc7\x42\x13\x2c\xcd\x33\x86\x91\xec\x51\xb4\x4f\x80\xce\xa6\xe1\x76\xe7\x9a\x32\x17\x27\xdc\x96\xf5\xcf\xd0\xdf\xb8\x8a\x7b\x4a\x05\x63\xc9\x98\xd3\x74\xb3\xf9\x36\x92\x8a\x62\xa9\x88\x35\x42\xb6\xba\x97\xa6\xbe\x1c\x5f\xce\x97\x6e\x5f\x6b\xf1\x16\x0e\x27\x82\x7a\x3e\x8f\xd5\x09\xfa\x21\x3a\x78\x2c\x85\x1a\xb9\x67\xb0\x54\x2a\x8d\xf4\x37\xed\x74\x75\xc6\xfe\x14\x2c\x55\x24\x47\xe1\x85\x46\x54\xaf\xb3\xf7\x55\xa5\x1a\xcb\x39\xed\x45\x7e\xc4\xed\x65\xa9\x52\xd4\x44\x73\xcb\x2a\x57\xc6\x9e\xfe\x5a\x9d\x10\x13\xc8\x81\xf7\x53\x6f\x27\x96\xea\x3c\xc5\xad\x0a\x39\x5a\xd5\xdb\xbb\xd7\x55\x2b\x85\x37\xbd\x6b\x9c\x6c\x2f\x78\x70\x40\x11\xd6\xbb\x14\xb4\x35\x7c\xba\xb5\xba\xcd\xc8\x9c\x7e\x1b\x0e\x1a\xab\x40\xd4\x7f\xff\x6a\x30\x22\x5f\x34\xc7\x0f\xba\x78\xa9\x21\x29\x06\x20\xd6\x70\xaa\xa8\x8e\x36\xc2\x58\xd6\xf5\xeb\x07\x45\xb2\x2c\x62\xd6\xa5\xb8\xcf\xd5\xec\xf4\xbc\xbd\x94\x25\xe6\xdc\xb3\xc7\x9f\x45\x32\xd2\xdc\xd3\x9d\x6a\x53\x74\x23\x17\xa2\x6b\xb4\xc4\xfe\x13\x20\x94\x2f\xe5\x76\xa2\xfc\x5e\xfc\xf7\xbf\x8f\xa2\xd2\x62\xd8\xf9\xe7\x9f\xd0\x2c\x71\x6a\x78\x75\xf9\xa3\x4f\x71\xcf\x97\x0e\xfa\x0d\x77\x56\x52\xcb\x88\x32\x58\x58\x2d\xea\xee\xdc\xcf\xdc\x71\xfc\x9b\x51\x6a\x8d\x7c\x06\x74\x53\x3b\x2f\x9f\x66\x34\xb1\xba\x55\xd6\x90\xa8\x3a\x42\xb9\x12\x8d\xde\x41\x53\x84\x2d\x3d\xa3\x32\x42\xc2\xbe\x83\xa5\xfa\xa2\xfb\xfb\xca\xed\x27\x00\x88\x8f\xfe\xeb\xbe\xa2\x7f\xa7\x7c\x9e\x55\x5f\xf5\x4e\x62\x19\xe3\x16\xb3\x1a\xa8\x34\xe1\x0d\xce\x78\x14\x19\x47\x21\x58\xf7\x7f\xff\x22\x4e\xc3\xe5\x73\x12\x7b\xd2\x24\x8a\x94\x1e\xb1\xf8\xf8\xdb\x68\x45\xcf\xb8\x90\x48\x4d\x0b\x16\x6f\xef\x9f\x09\x87\x5c\x3a\xbf\x20\xa8\xba\xe2\x47\xd1\x62\xce\xd8\x4f\xda\x29\xee\x31\x8b\x23\x89\x6d\x5e\xbc\xa5\x87\x06\x23\xc5\x83\x18\x47\xb9\x59\x0c\x29\xce\xea\x33\xce\xb5\xc7\xa6\xf8\x2f\x7c\x00\xed\xcc\x52\xd0\x89\x0e\xfb\xef\x19\x3a\x64\x62\x58\x0c\xfd\xd6\x7c\xad\xcf\x60\x2e\x65\xf8\xee\x14\x0c\xb6\x0f\x1d\xe4\x6a\x64\x8f\xca\xb2\x2c\xe6\x58\xd2\xad\x7f\x56\x83\xe8\x03\xcb\x72\x9a\x61\x4f\xe5\x5b\x51\xc1\x9b\x68\x66\x28\xa4\x4c\x52\x9a\x38\xd2\x89\x53\xa7\x1b\x95\x0a\xfc\x18\x93\xf9\x66\x85\xab\x25\xb6\x3b\x74\xe0\xbf\x52\x52\xc8\x14\x89\x51\x0a\x6f\xbf\xdd\x2f\xee\x0e\x77\x4b\x5b\x38\xd9\x3d\x3f\x3e\xde\xfd\xe9\xaf\x49\xa5\x36\xd9\x40\x24\x6f\x53\x87\xf2\x48\xa6\x80\x81\xcd\xc6\x40\x6f\x66\x2c\x7a\x96\x69\x26\xf0\x19\x89\xae\x13\xea\x15\x00\x6f\xec\xd2\xb9\xce\x7f\xd0\x00\xf2\x1f\x85\x0c\xd1\xa2\x37\x50\x7e\xa9\x6b\xdd\x4e\x3a\x9d\x99\xc9\x53\x04\x1d\xc9\xcb\xdb\x6d\x5d\xeb\xd9\x41\x99\xa1\xac\x48\x68\x08\x6f\x86\x12\x69\x66\x14\xa0\x20\xac\xf0\x10\xa5\xfd\x0b\x9c\x40\xef\xce\x63\x56\x31\xcb\xa3\x4c\x23\xb5\x67\xf3\xf8\xc7\xf8\x15\xce\x23\x15\x21\x03\x53\x5e\x9a\x77\xec\x1b\x37\x84\xe4\x19\x53\x23\xed\xb6\x45\xa5\xaf\x14\xce\x72\x4a\x15\x5a\xd9\xd8\xdb\xbd\x79\xe8\xb7\xaf\xa1\xaa\x90\x53\x2e\xb0\x64\x84\x04\x94\xfb\x62\x54\x92\xca\x69\x6a\xe9\x24\xeb\x5f\x67\x18\xbd\x74\x39\x8b\x95\x10\x96\xfe\xf5\x03\x2a\xf8\xd9\xce\x3c\xe0\x58\xce\x12\x83\x18\x6a\x29\xda\xe2\x83\xd5\x3a\x67\x19\xe8\x41\x73\x78\xbd\xff\xfa\xbc\xbb\x99\x5d\x3a\x13\xb1\x74\xfb\x73\x9f\xf2\xe9\xfa\xf4\xff\x29\x7b\xb7\xee\x46\x71\x74\x7f\xf8\xbb\xec\xab\xbe\x98\x0b\x04\x92\x80\xf7\xce\x71\x9c\x54\xba\x73\x1a\xdb\xa9\x9a\x9e\xff\xda\xcb\x4b\x87\x47\x0e\x1d\x0c\x1e\xc0\x49\x79\x3e\xfd\xbb\x78\x24\x71\x32\x49\xf5\xbe\x99\xea\x09\x32\xc6\x20\xa4\xe7\xf0\x3b\xe0\x76\xdf\xbe\x7d\xe8\x66\xbb\x7e\xbe\xf8\x40\x8c\x40\x93\xec\x68\xea\xcd\x98\x0c\x10\xa5\x91\x11\x98\xed\x1b\x9b\x97\x8e\xa1\xb5\x29\x0d\x2d\x96\x77\xe0\x54\xe2\xcd\x17\xfa\x39\x9c\xd2\x58\x11\x67\x40\xa8\xb3\xf7\xaf\xcb\xbd\x29\x53\x32\xf2\x16\xd1\xbf\x42\x8a\x4c\x3f\x6a\x42\x84\xb4\xbf\x67\xf0\x81\x82\xe0\x68\xf3\xef\xe9\x03\x6e\x10\x67\x8e\x42\x5b\x3a\x65\xdf\xaf\x0a\xf9\x29\x67\x56\xe7\xcc\x2e\xa1\x36\xac\xc0\xee\x78\x7f\x0f\x38\xd7\x2a\x9d\xca\x9d\x7c\x76\xc1\x5f\x02\x33\x53\xae\x2d\x86\x71\x24\x58\x3a\xd8\x7f\xd2\x38\x30\x61\xdc\xf5\x51\xbe\x1d\xe5\x63\xa9\xe1\x0a\x63\xd5\x01\x9e\xca\x7b\x33\x4f\x5c\x9a\xa3\x34\xe6\xcc\xba\x34\x17\xba\x7d\xeb\x32\x91\x67\xff\x1d\x28\xc3\x47\x69\x6c\xac\xb7\xec\x61\x67\x5c\x21\xc2\x91\x4a\x87\x04\x81\x28\x4d\x58\x88\x50\x05\x67\x84\x3c\x54\x2f\xff\x3b\xff\x26\xfe\x34\x69\x88\x58\xb3\x75\x3b\x97\xdb\xb3\x3c\x5b\xb9\xc8\xf9\xb5\x3d\x4d\x20\x48\x93\xae\x3a\xb7\xda\x7e\x5b\x9c\x9a\x72\x68\xa7\x31\x59\xe0\xd2\x34\x8e\x03\x8b\x1e\xed\x85\x9d\xc6\x8f\x37\x15\xa9\x71\xa7\xbc\x39\x15\xfb\xcc\x17\x06\xbf\x62\x49\x45\x69\x2a\x03\xa9\x86\xfe\x0a\xe3\x4d\x20\x15\x9c\x2a\xdd\x41\x4a\x96\x6d\xb6\xd9\xcd\x16\xc1\x53\x6c\x6d\xfa\xa2\xc7\xf3\xfa\xe9\xfb\xe4\xb2\x45\x6c\x7c\x33\xd1\xda\xb2\x5c\x83\xca\x34\x54\xb3\x01\x76\x2a\x34\x47\xb6\x2a\xe2\x52\x4a\x2b\xd8\xde\xc6\x1b\xa3\xdf\xa9\xc2\x14\x0b\xc4\x95\x8b\xe5\x17\xa7\xe6\xb5\xac\xb2\xa6\x0f\x5b\x52\x95\xc4\x48\xef\xda\x34\x55\xf6\x36\xf8\xb3\x08\x59\x32\xd0\x4d\xd7\xc3\xba\xfe\x84\x0e\xf0\xb7\x70\x5d\xa9\xa6\xa9\x53\x49\xcd\xf3\x47\x71\x7c\xcb\x2e\x9e\x9b\xe6\x1c\xdd\x1d\xee\xb3\xec\x38\x28\xbf\xa5\x9a\xcb\xd8\x9a\xbb\xbf\x89\xf1\xd2\xa9\x95\xc4\xee\x52\x1b\x91\xba\x26\xe8\xb0\xfb\x97\x02\x09\xb1\xa5\xad\x3a\x35\xc9\x61\x0d\x21\x05\xa2\xb8\x1a\x3c\x94\xeb\xac\x02\xd5\x5c\x83\xcc\x26\x95\x94\x14\x62\x89\x3b\xcf\x1a\x44\xbe\xaa\x9b\x0b\x88\x4c\x6a\x28\x89\x49\x27\x02\xf3\xd4\x5c\x20\xab\x53\x43\x69\xe2\x4a\xbb\x23\xd6\xd9\xf0\x81\x89\x80\x43\xec\x74\xbb\x75\x55\x1e\x37\x59\xb1\x9f\x8a\xba\x8c\x6f\xab\x08\x24\xc1\xa0\xac\xdd\x3d\xd4\x5d\x61\xca\x5b\x68\xfa\x3a\x9a\x08\x80\x20\xed\x10\x85\x6c\xd6\x56\xf7\xd6\xa7\xe2\x7e\x0c\x89\x2c\xe2\xae\x0f\x4c\x7e\x1b\x2d\x8d\x7e\x18\x4b\xa8\x8d\xd8\x50\xf1\x79\x10\x19\x0a\x92\x70\xa4\xc8\x23\x98\x67\xf1\xe4\x59\x02\x17\x2d\x45\x2b\x25\x36\xdf\x0f\xf9\xb5\xcc\x43\x24\x88\xf3\x77\x75\xc0\xd8\x51\xe9\x4c\x10\x25\xb0\xea\xe6\x4b\xaa\xa7\x42\x5f\x67\xfb\xac\x11\x8e\xbc\xe5\xc7\x85\x3c\xc0\x47\x75\x9f\xfd\xe7\x04\x9d\xdd\xaa\x3f\x18\x27\x34\xf4\x31\x72\xe3\xc1\x5c\xfd\x15\x84\xc2\xb2\xed\x6a\xec\x10\x64\x2a\x13\xf9\x0f\x90\x75\xd6\x8c\xcb\xed\x22\x14\x29\xa2\x2f\x0b\xf8\xd9\xe1\x12\x44\x3e\x72\x8f\x8c\x44\xa4\x28\xc2\x46\x32\xdd\x06\xcb\x26\x6b\x33\x93\x35\x74\x69\xec\xf8\x9b\x23\xcd\x63\x17\x62\x76\x14\xa1\x76\xb8\xca\xe0\x7d\x9c\xd3\xfb\x75\x5f\x50\xa2\x30\x43\xc2\xa4\xe7\x6f\x2d\xd5\x6e\x89\x16\x8c\x07\xa8\x9c\x39\xd2\x3c\x18\x21\xb8\x04\x27\xb6\x6e\xd2\x54\xe7\x47\xf8\x89\x1d\x07\x5c\xd0\xbb\xe3\x3a\xc0\xbe\x6b\xb3\xaf\x36\xd0\xb4\x67\xa9\x9f\x45\xd5\x74\x0b\x77\xd9\xcd\xd1\x58\x49\xbc\x0d\xff\x5a\xaf\x7b\x9e\x65\x24\x12\x12\x20\x37\xa8\x29\x4f\x55\x21\xbc\xf9\x68\x55\x2f\x4f\xdd\xa3\x4c\x28\x15\xe0\x71\xc3\xcb\xbc\xec\xca\x92\x22\x15\xc6\x2b\xae\xfc\xf3\x94\xa9\xb7\xab\xd3\x19\x57\x86\xe1\xf2\x21\x52\xc9\xac\x84\x85\xcd\xb6\xcf\x5f\x87\x28\x42\x88\xd0\xde\x14\xcf\x67\xf6\xf7\x9b\xfe\xef\x74\x0d\xfc\x7f\x84\xfc\xef\xa4\xda\x36\x39\x17\x58\x18\xa8\x86\x63\x5e\x9e\x9f\xab\xf2\x2f\x18\x24\x8b\xa3\xa9\x24\x09\x33\xae\xdf\x3b\xab\x19\x12\x09\x19\x13\xe6\xfd\x48\xb2\x1c\xee\xae\xe5\xf9\xb9\x5d\x0b\x3b\xf4\xe9\xf8\xe1\x2a\x42\xbd\xe0\xe2\xf2\x54\x55\xe3\x6a\x85\x50\xb1\x35\xe4\x42\x18\xd7\x66\x00\x13\x59\xf8\x42\x7e\x9b\x50\x9d\xea\xa1\x65\x43\x24\x34\xe5\x01\x9a\x1c\x83\x5e\x8a\xea\x38\x66\xda\x08\xad\x62\xec\xe5\x65\xf5\x4e\x8a\xa2\x98\x92\x38\x84\x86\x38\xb6\x5d\xe0\xec\xf8\x5c\x95\xfa\xa4\x9a\x7a\x6e\xe3\x16\xda\x08\x6b\x4f\x74\x3a\x1c\xee\xa1\x7e\xcb\x3c\xd8\x47\x00\xd1\x0e\x99\x6a\x89\x90\x43\xee\xaa\x1f\xc2\x19\x62\x52\x33\x1b\x03\x5d\xf5\x51\x62\x37\xc2\x48\x6f\x5e\xbf\x14\xc7\xc9\x45\x1a\x4a\x11\x76\xf1\x97\x50\x6f\x47\xd7\x44\x6b\x43\x0c\xdb\xe5\xe8\xa9\xe5\x91\x30\x49\x62\x82\x4e\x94\x4d\xe4\xcf\x15\xd4\x13\xf9\xe2\x48\x18\xa0\xd8\x32\xdb\x3c\xaf\x96\x77\x8b\xfb\xbb\xcd\x76\xb7\xfd\xe1\xd1\xb1\x32\x50\x09\x76\xdf\xfd\xd6\xb4\x2a\x06\x84\xd1\xf6\xb0\x49\x38\x32\x83\xab\x81\xf9\xe7\x8c\x7f\x6b\x24\x03\x10\xc0\xbc\x55\x6a\xa6\xdd\x66\x32\xbc\x14\x49\x78\xa4\xbc\xae\x1a\x4a\x53\x7e\x77\x50\xdc\xe9\x8e\x3f\xf9\xff\xee\xe3\x61\x4a\xd1\x73\x04\xfd\xbc\x9f\xfc\xed\x46\x18\x6d\x60\xa1\xd1\x1b\x10\x93\x3a\x45\x1b\xd7\x21\x32\xf5\x26\xcb\x33\xd1\xc0\xce\xeb\x5c\x8d\x2f\x9e\xca\x10\x79\x96\xff\xfe\xf7\xbf\xdb\x88\xe0\xda\xb3\x67\xfa\xa7\x2a\x29\x28\x8b\x41\x40\x75\xb3\x65\x99\x9f\x50\xfc\xcf\x49\xbf\x4f\x3c\xdf\x22\x49\x8d\x46\xbc\xb7\x30\xc6\x7e\xf3\x98\xa4\x21\x19\x11\xc2\x0a\x6a\xa8\xb3\xca\x61\xf3\xd6\x03\x06\xff\x1f\x9b\xa0\x9c\x25\xa3\x09\x26\x7d\xf5\x49\x1e\xb2\x66\x94\x50\x4e\x47\x32\x85\x5f\xbb\xba\xdf\xa2\x17\x94\xf5\x67\x99\xfc\x5a\xa6\x2c\x28\xd6\x64\x79\xde\x35\x8e\xbe\x5e\x94\x24\x03\x7b\xbd\x3a\x7b\x87\x70\x7a\x3e\x50\x48\x70\x2b\x8b\xe7\x32\xcf\x1d\x64\xb6\x4f\xd0\x24\x33\x0a\x7b\x28\x7b\x68\xee\x0e\x62\x0f\xed\xfa\x5c\x5f\xaa\x7c\x47\x32\x26\x01\xda\xbd\x5c\x65\xcd\x33\xd4\xbe\x95\x21\xe3\x58\x30\xe2\x2c\x96\xe6\xcb\x7a\x32\x4e\x52\x5c\xbc\x6e\xdb\x9d\x76\xef\xc2\x8b\x41\x3b\x44\xc6\x89\x52\xa1\xaf\x0b\x6c\x44\x0e\xff\xfe\xa9\x46\xfb\xba\x4c\x88\xa5\xad\x75\x02\x04\x23\x2b\xbd\xf1\xd7\x25\x0c\x62\x63\x4b\x10\x8b\x66\xb0\x02\xc9\x24\xb5\x60\x0f\x27\xfd\x6f\x29\x30\xc3\x37\x2a\x51\x1c\x9d\x94\x33\x55\xae\x7b\xa9\xaf\x48\x4a\x96\x22\x35\xdb\xa9\x3c\xcc\x2b\xca\x46\x52\x26\x0a\xcb\x6e\x03\x54\xa8\x94\x89\xd5\x39\xc5\x39\x78\x0d\x26\xeb\x89\xaf\x52\xa6\x12\xaf\xa7\x0d\x42\x32\x7d\x0d\x87\x52\x55\x42\x9d\xa7\xa2\x57\xe3\x2f\x51\xcc\x36\x65\xdb\xd0\xd1\x9d\x6f\x94\x84\xcd\xc7\x4e\x9f\xb4\x2d\xdc\x39\x75\x12\x23\x0f\x6a\xa0\x33\x3a\x7d\x09\x4d\x10\xa3\x9f\x9d\xb3\xb6\x28\xcd\x66\xbb\xbc\x9e\x70\xb0\x55\xc0\x0d\x0b\x06\x3d\xa7\xa1\xff\xd4\xfc\xba\xa1\x02\x19\x63\xc2\xe3\x73\x0c\xec\xba\xce\xb6\xaa\xba\x8f\x90\x80\x22\xbc\xed\x35\x6b\x57\xe1\x65\x5e\x16\x5d\xca\xa2\x48\xc2\x84\x83\x3d\x3e\x7e\xdf\x36\xe5\x5c\x7e\xea\x87\xa6\x56\x53\x50\x3b\x11\xdd\x9b\x72\x24\xb3\x14\x29\x22\x18\x86\xcd\x47\x51\xd5\xf0\x50\xef\xad\x74\x5d\x1f\xf1\x2a\x02\x90\xf4\x5c\xca\x6b\xa8\x55\x95\x1d\x87\x26\xda\x93\xeb\x36\x80\x70\x32\xed\x58\x04\x17\xf5\x7d\x15\x06\x89\x93\xed\xc8\x73\x2b\x7d\x5c\xb7\x61\xd5\x7c\x2a\xaa\x42\x66\xd5\xce\x85\xd6\x23\xa2\xdd\x6c\x10\xed\x3f\x93\x26\xc8\xc3\x47\x79\xce\x89\xcc\x40\xa4\x42\x48\xb0\xf5\x07\xcd\xeb\xc0\x21\xb5\xfd\xbb\x50\xa4\xa3\x5a\x5c\x7a\x7b\x45\x2a\xe2\x29\x42\x7a\xed\x63\xb4\x3d\xbe\x81\xad\x64\xa4\x22\x29\xb1\x5a\x24\x31\x33\xe9\xbe\x91\x8a\xc8\x73\x0f\x4e\xc7\x51\x00\xeb\x07\x48\x86\x09\x47\x77\x8f\xc7\x94\xaa\x89\x18\x62\xa4\x28\x00\xd6\x9b\x4e\x35\x54\x08\xdf\x59\x22\x29\x66\x35\x2f\x88\x3a\xb9\x3b\xd4\x24\xa8\xcc\x7e\x5d\x9a\x51\xec\xa2\x58\x18\xe0\xcf\xcb\xb3\x43\xd6\x0c\xab\x26\x8a\xa5\x29\xaa\xa6\x94\x17\x04\x5c\x37\x80\x47\x1c\xf5\x20\x9f\xb7\x9b\xeb\xbf\x89\x22\x54\x9c\x26\xb1\xf4\x8e\xb4\x5f\x6d\x29\x2a\xa6\x96\x14\xbf\x7d\xda\xdc\x67\x4d\x93\xc3\xb7\x52\x0f\x24\x51\xfd\x55\xc6\x9c\x24\x2e\x38\x44\x6d\xb3\x5e\x2c\xe0\xf3\x9b\x11\xeb\x20\xb5\xdd\x39\xb8\x86\x89\x3f\x6d\xa4\xd2\x34\xf1\x75\xe7\x67\x51\xcd\xdb\x9f\x46\x4a\x04\x31\xd6\x74\xd1\x15\x03\x0d\x9b\x47\x5b\x44\xe2\x87\x49\xc1\x84\x37\x48\x30\x50\x55\x22\x9f\x2d\x78\x28\x99\x58\x19\xac\x36\xa3\x7a\x29\x34\x54\xba\xdc\x3b\xb2\xb4\x1f\x21\x92\x28\xea\xcc\x1c\xc4\x8e\x78\x9e\x80\x52\x84\x23\x48\x5e\x66\xfa\xae\x50\xd5\xb0\x87\xa8\x54\xc4\x30\x58\x6b\x50\x3a\x4b\xf9\x3f\xeb\x94\x21\x28\x29\x2b\xd4\x5a\x14\xfa\xb1\xec\x43\x64\xa5\x85\xc4\x36\xad\x39\x15\x6d\xb2\x3f\x68\x1f\x28\x10\x21\xce\xc1\x8e\x15\xac\x40\xa4\xd0\x03\xa0\xd6\x42\x5f\xaa\xd1\x7d\xfd\x30\x8c\x51\x88\xae\x53\x7e\xdb\x83\xab\xed\xd2\xbf\x45\x9a\xd0\xd8\x87\xac\x7d\x59\xc1\xfb\x60\x44\x9a\xb0\x14\x45\x6e\x37\x20\x2a\xf5\xfa\x70\xbe\xc9\x72\xa8\x47\xd1\x9f\x26\x31\x57\xe9\xb4\x30\x11\x45\x93\x41\x29\xc3\xb9\x6e\xf2\x53\x3d\xd6\xdf\x8f\x34\x91\x49\xe0\xc0\x0f\x78\x2f\x96\x9d\x2d\x43\x7b\x4c\x7b\x8d\x5a\x55\x56\xfa\x06\xe0\xd9\x9a\xc4\x4c\xce\x11\x4a\x4a\xf1\x1c\x95\x70\x52\x38\x93\xe7\xaf\x23\x0a\xd8\xcd\xf5\xd9\xf4\x35\xbc\x8f\x7c\x30\xfd\xb0\x14\x78\xe4\x88\xac\x18\xdc\x61\x04\x3e\x6e\xc5\xe8\x48\x5b\x6d\xe7\x46\xbc\xc1\xa6\x10\xc7\xfa\xb5\xf4\xf3\x41\x53\x08\x11\xec\x65\xcd\xeb\x84\x7a\x83\x0a\xc5\xae\xbb\xc3\x91\x41\xac\x90\x78\x83\xef\x50\xe8\xb2\xb2\xf6\x1b\xdd\x7e\xd5\x2d\x8c\x9a\x02\x45\xb2\xc8\xf3\xcb\x7a\xe1\x3f\xce\x43\xcb\x6a\x3b\x88\x46\xbd\x5e\x77\x0d\x6f\xcd\x81\x10\xc7\xbb\x7f\x03\x3d\xea\x63\xeb\x38\x8a\x69\x84\xf1\xf5\x4f\xb2\x69\x44\x45\xbb\x03\x9c\xb8\x5d\xea\xfc\x35\xf5\x5f\xc7\x42\x71\x31\xd8\x9d\xb1\x49\x56\xd8\xe6\x1c\xe6\xc5\xdd\x03\x4b\x02\x86\x9d\x34\x93\x15\xda\xd1\xd5\xc6\xf7\x2e\xa1\x02\x11\x97\x96\xab\xe6\xb2\xb5\xc9\x43\x48\x09\x50\xeb\x80\xbb\xbc\x7b\x58\xdc\xdf\x2c\x96\xdb\xa7\xb5\xff\x06\x41\x25\x46\xfe\x87\xac\x68\x56\x05\x54\xfb\xf3\xa2\xe9\xe2\xb9\x59\x70\xc2\x68\x85\xd4\x82\x03\x3a\xea\x2d\xf2\xfc\x74\x10\xdd\x59\x05\xc7\xea\xcf\xf2\xfe\xee\xe6\x66\xa2\x9e\xda\x1e\xb5\xba\x1b\x76\x2b\xb1\x9b\x9f\xcf\x7b\xc7\x97\x2e\x14\xc3\x08\xd2\x12\x2a\x5f\x8e\xaa\x3c\x64\xc5\xde\xfa\xe0\x8f\x47\x4a\x4a\x82\x0b\x02\x41\x1b\x52\xd6\x8d\x38\xf8\x7c\x43\x4b\x1a\x22\xdc\xc7\x51\x55\x6f\xca\x5f\xa8\x34\x68\x15\x00\x62\x1a\xfc\xa3\xda\x94\xb9\x46\x91\xbc\xf9\xc8\x53\x2b\xc5\x30\x07\x69\x6f\x27\xca\x6f\x77\xa8\x9f\x19\x78\x4a\xff\x31\x1d\x46\x88\x07\xbd\xda\x2e\x77\x9b\x97\xbb\xcd\x66\xb5\xdb\xde\xad\xd6\xbb\xd0\x5f\xb8\x66\x12\x51\x96\x3f\xc4\x3b\xd4\x57\x56\x05\x77\xb8\x31\x6a\x08\x48\xaa\x26\x36\xb0\xb3\x2b\x98\x06\xa6\x94\x83\xa3\x63\x9d\x68\x40\xf0\xd6\xc0\x2d\x1c\x6a\x82\xef\xd3\xa0\x2d\xb1\xf5\x6a\xb1\x1c\x7f\x2b\x44\x98\xf9\xaa\x32\xcf\x7d\xc9\xa4\x83\xd1\x0c\x77\x16\x6d\xc2\x18\x4d\x6c\x10\x14\xe1\x60\x13\xe8\xb6\xee\x8f\x33\x89\xc0\xd7\xf2\x67\x0e\xe7\x61\xb2\xa0\x4d\x12\x47\xd6\xb0\xdc\x34\x2c\x98\x5c\x98\x51\x1a\xb9\xe3\x9f\x67\x21\x40\x12\x40\x89\x15\xd3\x66\x5c\x18\x86\xfa\x03\x86\x85\xae\x06\xfc\x62\xc9\x79\x5e\xa2\xf6\x12\x33\x0f\x21\xe3\x18\xfe\x88\x03\x14\x7a\xd0\xeb\xbf\xf4\x3f\xc4\xb1\x1e\xca\x9d\x0b\x59\x56\x38\xc9\x1f\xa0\xda\xf7\x01\xf5\x28\x19\x70\x1f\x8b\x22\x81\xa6\xc2\x0e\xf8\x38\xb8\x3b\x10\x71\xee\x55\x6d\xef\x45\xdd\x3c\xb4\xfb\x46\x53\x16\xdd\x4f\x69\x37\x4e\xea\xe2\xd5\x6d\x79\x95\x0b\xf5\xe6\xca\xac\xb3\x73\x00\x22\x9d\x58\xf0\x74\x23\xaa\xe6\xa9\xfa\xd6\xce\x6a\x9f\xf2\xf5\x21\xa5\xfd\x9f\xcb\xb5\x14\x58\xa4\xf1\x05\x3e\x88\x9f\x4e\xa2\x62\x78\xff\x87\x45\x7f\x60\x8c\x78\x48\xe3\xd3\x11\x8a\xab\xac\x37\xcb\x1b\xdd\x33\x1e\x13\x44\x47\xde\x97\x7b\x6c\x6f\x7e\x61\xf9\x1b\x01\x57\x56\x51\xfe\xe9\xf7\xd1\x74\x84\x58\x59\xb2\x54\x1b\x36\x57\xe5\xa1\xfc\x06\xf9\x71\xe0\x04\xd2\x8f\x92\xba\x8f\xc1\xe6\xe3\x57\x48\xa2\x18\x41\x04\x7f\x38\x0d\xd9\xf1\xd1\x34\x31\x08\x52\x7d\xcf\xe0\x03\xaf\x57\xc8\x1c\x7c\x18\xef\xdd\x40\x9e\xcb\xb2\x7b\x82\x69\x2a\xad\xfb\xd1\xb9\x6e\xe0\x80\x1f\x59\xd8\xb6\xc2\xa5\xf4\x88\xff\x88\xb6\xe5\x35\x79\xaa\xb3\x02\xea\x1a\x1b\x81\x8d\xc8\xc7\x25\x42\x10\x51\x1a\x52\xec\xa5\x66\x45\x93\x43\x6d\xa1\xe0\x93\x20\x66\x26\xc4\x9d\xfc\x5e\xc1\x18\x86\xdc\xbf\x97\xe7\x41\xbb\x07\x04\xeb\x04\x34\xee\x2c\x59\xd6\x32\x18\x06\xad\xce\xc9\x79\x84\x88\x47\xb4\xa6\xe5\xb7\x5b\xfb\xbe\x6c\x4b\x3b\x33\xc6\xcf\x52\x40\x8a\x50\xa3\x1f\xa2\x7e\xcd\x8a\x7d\x53\x16\x2b\xc7\xb8\xf4\x97\x20\x23\x91\xb8\xc2\x08\x56\x95\xf5\x72\x96\x1b\x0c\x52\x45\xa8\x96\xfc\x01\xd9\x5a\x64\x28\x4a\xdf\xeb\x26\x41\x1b\x34\xb5\x0f\xe0\x65\x73\xfd\x30\x9a\x34\x3a\x0c\x10\x51\x6b\xb2\x9f\xa0\x57\x3f\x8f\x5b\xa8\x9b\x39\x60\x32\x68\x20\x98\x14\x0a\xad\xb7\x25\xe2\x34\x86\x0f\x18\x28\xe3\xb4\xa3\x65\x6d\x9a\x2c\xcf\x47\xb1\x88\x1f\xc6\xa2\xc0\x5a\xaa\x21\xc2\xba\xf6\xa6\xc0\xf3\xef\x29\xc4\x21\x4d\x7a\x47\xb4\x51\x5a\x0c\x00\xd6\xff\x3d\x53\xa5\x55\xcc\xf0\x8d\xe2\x87\xac\xe8\x5b\xe3\x60\x82\x80\x5a\xc7\x3e\x55\x6a\xd0\x6b\x2f\x79\xd9\x1d\x8f\x63\x2a\xbb\x46\xe9\x93\x71\x44\x57\x5b\x3e\x9c\xb5\x4c\x8c\x4c\x10\x70\x5c\xaa\x0c\xc0\x1a\x14\xa0\xe2\xa6\x3f\xc4\x24\x66\x2b\x66\x2c\xce\x17\x99\x20\x09\x10\x18\x20\xcb\xf2\x6d\x29\x8a\x77\x51\xf7\x89\xfe\x78\x0e\x19\xc2\x2c\x3d\x7b\x59\x95\xc7\x71\x25\xc2\x0f\x68\xdf\x74\x67\x7d\x5f\xec\x9f\xba\x85\xd0\x10\x15\xf8\xf0\x19\x2d\x2d\xaa\x09\xc5\xd1\x0f\x33\x11\x91\x8e\xfe\xb1\x06\x75\xaa\xda\x17\x62\x54\xc0\x30\x61\xa8\x3c\xbf\xe4\xfe\x65\xf9\xc7\xd4\xdb\x62\x7c\x3d\xa1\xb2\x17\xdc\x59\xd4\x3f\x19\x27\x4e\xb1\x47\xe7\x81\xee\xa4\x60\x5d\xf2\xa0\xd0\xde\x7d\x70\x50\xf6\x32\xa1\x11\xd8\xa7\xb2\x18\x2b\xcb\x3f\x70\xb8\xdf\x3e\xd3\x35\x11\xe7\x89\xeb\x18\x1c\xdb\x59\x38\xc2\x69\x99\x48\x48\xa6\x3a\xc5\x92\x61\x83\x67\x7c\xc9\x91\x56\xc6\x22\xae\xad\x2b\xdf\xe6\x24\x75\xf6\x5e\xcf\xc1\xd8\x4c\xbb\x3c\xe3\x4e\xf9\x91\x35\xea\x75\x14\x0f\x9b\x08\xec\xf6\xbc\x41\x5b\xb7\x76\xfb\xbc\x01\xf8\x85\x2e\x9b\xa1\x0e\xbe\xea\xc4\x7a\x8b\xf3\xaa\x79\xbd\xb0\xf9\x8a\x0c\x0b\x82\xb0\xdb\xba\x5f\x6d\x7d\x6d\xc2\x2b\x6e\xf7\x70\x44\x0c\x6a\x78\x3f\x41\xfe\x0e\xdb\x52\x8b\x7a\x71\x3c\x76\x0f\x92\xc5\xb2\x6f\x4b\xdd\x15\x2a\x3f\xe9\x69\x51\xcd\xb0\x84\xe2\x86\x62\x5b\xfd\xf1\x60\x79\x30\x4c\x48\x9c\xb6\x45\x9b\x73\xfe\xf4\x7f\xe5\x29\xc1\x42\xa9\x33\x9c\x72\xbe\x43\xcb\xb2\x6e\x4e\x87\xe9\xaf\x48\x28\x41\x78\xf0\xc1\xda\x91\x7a\x91\x80\x11\x4d\xc4\x24\x9c\x39\xed\x3d\xf9\x37\x1c\x60\x23\x93\x48\x40\x52\x7c\xb3\x07\xdf\xd0\xb3\x8f\x6e\xe9\x42\x31\x37\x2e\x8d\xb8\x71\x2d\xd4\xed\xf9\x08\x8f\xbe\x0c\xd7\xbd\x0a\x69\x62\x8d\x6d\x3a\x1c\x61\xe2\x0f\x48\x0e\x64\x04\x30\x9d\x03\x97\x1a\x11\x52\xf0\xea\xef\x58\xc7\xdd\x68\x9f\xb6\x1b\x21\x08\x6a\x8e\x23\x04\x68\x2e\x8f\x34\x42\x5b\xb2\x97\xee\x6c\x08\xbe\xca\x36\x8c\x0c\xac\x31\xfe\xe3\xf6\xfb\x4b\x5f\xc3\xb9\x44\x72\x7e\xf6\x2f\x06\x34\x73\xdb\x9f\x91\x84\x7a\x3c\x78\x3b\xcb\x86\xa2\xf3\x91\x91\xcc\x56\x28\x77\x58\x07\xaa\xf4\xdd\xa7\x3c\x7c\xf7\x01\x15\x58\x35\xf4\x5a\x18\xdb\xdc\xff\x64\x58\x44\x2d\x30\xd7\x8a\x89\x6f\x44\xf1\xd0\x8b\x87\x4d\xb9\x88\xe3\xeb\x55\x32\x41\x09\xd9\x36\x21\xd9\x0d\xf7\x33\xa3\x55\x6a\x2d\xec\xb2\x7d\x21\xf2\x6d\x25\x34\xdc\xcd\xe8\x04\x1a\xd0\x02\x39\xeb\x8b\xcd\x66\xb5\xdd\x3d\x2c\x1e\x17\xb7\xab\xf5\xee\xc7\xe2\xfe\x7e\xe5\x69\x7f\xa6\x5d\xe8\x51\xb8\xe5\x76\xd9\xfd\x89\x10\x12\x76\x12\x6f\xa3\xa4\xff\xf2\x76\x0f\xf7\x67\x63\xc2\x38\xd6\x9d\x42\x64\xbf\x9e\x99\x44\x62\x57\xe2\xea\xe9\xf1\x65\xb3\x63\xbb\xeb\xc5\x9f\x0e\xe3\x47\x83\x20\xb2\x26\x43\x76\x35\xbb\xa9\xca\x03\x3a\xa5\xd8\x57\xe4\x61\xd2\x15\xa4\x41\x10\x2b\x0c\x01\xe0\xd0\x46\xdb\x85\x3a\xdf\xe4\x62\xdf\x9d\x4b\x13\xcb\x94\x80\xe6\xa9\x18\x10\x47\x12\x77\x9c\x84\x56\xe0\x4d\x42\xdd\x58\x8d\x24\x7f\x80\x05\x18\x5d\xdb\x2c\xd4\xba\xfb\xe1\x8a\x7c\x75\xde\x4c\x65\xaa\x69\x40\x8c\x30\xc4\x93\x1d\x7f\x58\x1a\x4f\xed\x4f\x15\x86\x29\x16\xe6\x5d\xc2\xd4\x2e\x95\x77\xc5\x65\x58\x44\x83\x90\x5a\x69\x06\x04\x28\xba\x1c\xf2\xb1\xf4\x42\xbd\x23\xf1\x7e\xff\x09\x66\x1d\x60\xe6\x9b\xd8\xc3\x47\x41\x83\x90\x83\xc6\x0c\x25\x07\x51\x2d\x4e\x13\x08\x3d\x0d\xc2\x34\xb6\x5e\x5f\x4e\xce\xec\x0b\x78\x1e\x0d\xa2\x38\x46\x82\xcb\x12\xed\xcf\x5e\x8a\x0c\xb5\x83\x9a\xf3\xf6\x94\xf5\xdb\x16\x0d\xa2\x04\xbc\x31\xf3\x77\x8f\xba\xec\x37\x37\xb7\xaf\x5e\xee\x1c\xfe\xd3\x2a\x4c\x83\x39\x6a\x14\x0b\xfc\x17\x50\x08\x30\xfa\x5f\x3e\x3d\x3c\xdc\x6d\x36\x77\x4f\x8f\xbb\xe7\xd5\x7a\xb9\xf2\x2c\x56\x1a\x30\x12\x61\x6c\x82\xdf\xbd\x6a\x94\xfc\x65\x09\x98\x06\x4c\x31\x9c\x35\x1f\x56\x59\xc1\x9f\x8a\x13\x86\x82\xb4\xb5\x97\xac\xab\x07\xd1\x26\x0d\x78\x12\xe3\x94\x69\x77\x2a\x47\xf5\x72\x91\xce\x60\xc2\x71\x65\x10\xed\xe5\xed\x23\x50\x0f\xab\x8d\x1f\xf5\x64\x32\x70\xed\xd3\x6c\x94\x19\xbc\x29\xab\xe7\x2a\x43\xe8\xd8\x7f\x41\x47\x97\x9a\x85\xb3\x64\x98\x0b\x74\xc9\xac\x82\x2c\x0d\xe2\x28\xf0\x3c\xe3\x76\xe9\xba\xcf\xea\xe6\x1e\xe6\x55\xb1\x68\x10\x6b\x82\x82\x3b\x5e\xb1\x30\x76\xf3\x6e\xb0\x22\xd1\x20\x11\x0a\x1f\x0c\xbe\xf8\x4b\x51\xe8\xb3\x97\x04\xa2\x41\x9a\x1a\xdc\xf7\xfe\x73\x82\xea\x8c\x7d\xcf\x19\xfe\x12\x0d\xda\x5c\x88\x59\x59\x80\xeb\xf2\x84\xb9\x96\x86\x9f\xbf\x30\x30\xa6\x81\x60\x1c\xa1\x9a\x32\x1b\xfa\xa0\xd2\x40\xa4\x51\x40\x07\x97\x7d\x0d\xed\x06\xa7\xbf\x48\x3a\x69\x20\xc3\x08\x65\x9d\x10\xc6\x94\xfd\x17\xfa\x2c\x89\x06\xd2\x68\x8c\x67\x16\x39\xfc\x6c\xf3\x87\xe1\x31\x9d\x68\x6c\x2e\xbe\x96\x3a\xb7\x25\xa9\xf4\xc1\x1f\x03\x6a\xb1\x22\x87\x53\x1b\x29\x16\xe1\x8d\x98\x5a\xae\xb6\x63\x24\x78\x2c\xc5\xa9\x81\xa5\x38\xce\xee\x26\x34\x80\x98\x1b\x17\x67\xc0\x73\xf9\xfc\x25\xc3\x96\x06\x00\x11\xfa\xfc\x3c\xc2\xc7\xe6\x20\x2a\xb4\x10\x1a\x36\x2c\x3e\xa9\x86\x7f\x89\x0f\x1b\xbd\x38\x00\x89\x0f\xa0\x97\x15\xe8\x4b\x5c\xae\x1b\x67\x82\x88\x85\x9d\x28\xeb\x74\x9e\xb9\x6c\x98\x06\x86\x1b\x6a\xb3\xe1\xf3\xd3\x71\xa4\xe8\x3d\x3e\x1f\x09\x28\x45\xfc\x84\x6c\x94\xb5\x87\xfd\x6c\x9c\xb0\xab\x7a\x56\xd7\xa7\x76\x1d\x1d\x34\x9a\x29\x21\xce\x9d\x08\x11\xb8\x1d\x6b\xa2\x27\xe5\x0f\x38\x71\x94\x10\x60\xd8\x4f\xb4\x9b\xd4\x73\x99\x67\xea\x3c\xea\xb8\x0e\x76\x19\x42\xc0\x56\x14\x5f\x45\xfd\x3a\xac\xea\x53\x12\x46\x42\x76\x0a\x1e\x03\x34\xf1\x6c\x04\x48\x49\xc8\x02\xec\xd8\x35\xa7\xaa\xb8\x11\x27\x85\x18\x38\x7f\x49\x61\x12\x21\x3a\x16\x5b\xa6\x18\x03\x2c\xcb\xc3\x51\x34\x19\x5a\x5e\xf7\x2f\x16\x09\x45\x88\x30\x9c\x4e\x6d\xec\xab\x84\xb4\x1d\x4e\x11\xc9\x25\xea\x4c\x43\x9f\x6d\x5e\x77\x0d\x46\x4a\x42\x49\xc0\xf1\xb3\x6f\xda\x78\xb1\x19\xbe\x79\x24\x94\x14\xb3\xd1\x4c\x95\x98\x62\x46\xdd\x01\x4d\x91\xb1\xb3\x14\xa6\x7d\x1d\xdb\x4d\xc4\xe7\x8e\xed\x41\xfb\x1e\xe3\x37\xfe\xc8\x2e\x6b\xd2\xe3\xab\x8c\xa8\x95\x40\xc0\x05\x67\x8d\x81\x0a\xe8\x81\x1f\x12\x25\x91\x4a\x7d\xed\xcf\xe1\x30\xf5\x58\x8c\xe0\x53\xcb\x6b\x4a\x28\x95\x9e\x80\x8e\x77\xb6\xbe\x3a\xcf\x65\x85\x94\x50\x4d\x91\x32\x63\xaa\xf2\xbf\x50\xcc\xb1\x82\x29\x61\x81\xb1\xb0\x7c\xf4\x0b\xc3\xad\xd8\x1f\x51\x54\xf5\x9c\x1c\x79\xaa\x0a\xd0\xc8\x73\x47\xe6\xa5\x1f\xc5\xa5\x42\xb1\xb5\x6e\x3b\xfd\x18\xc4\x04\x24\xa6\x0a\x45\x4e\xab\x6c\xff\xda\x30\x32\xde\x56\x48\xcc\x1d\x82\x5c\x1c\xef\x9c\xde\x79\x77\xc7\x53\x6e\x39\x63\x36\xcc\xbb\xcd\x4c\xf3\xdb\x4c\xdc\x4c\x49\x2a\xad\x68\xa5\x83\x59\xf7\x4e\x89\x94\xa4\x5a\x63\xf4\xff\x8a\xb2\x47\x2f\xc3\x93\x1b\x8a\x42\x31\xff\xce\x8e\x93\x42\x76\x7b\x2c\xc6\x3a\x14\xe6\x55\x77\xcd\x14\xf5\xe4\x46\x09\x6e\x59\x7a\xb6\x52\xe4\x33\x20\xfc\x7d\x9d\x24\xee\xe8\xb5\x13\xa9\x41\x8e\x76\x37\x25\x0e\xb8\x88\xdc\xb9\x69\x31\x9c\x4f\x4e\x4c\x97\x12\x19\x06\xd8\xac\xbd\xbe\x7f\xf6\x57\x27\xa3\x14\x63\x9d\xc3\xee\x15\x3d\x5d\xeb\xc9\x2d\x95\x46\x60\x6b\x67\x71\x75\x7f\x29\x95\x48\x89\x4e\x13\x8c\xcd\xb1\xeb\x5f\x5f\x8b\xf3\xd2\xa9\x13\xaf\x8a\xee\xe6\x00\xe7\xd4\xb5\x40\x1f\x44\xf7\x49\x88\x53\x7c\x1e\x08\x1d\xb6\xf0\x2c\x84\xcc\xf9\xe3\x86\x11\x2b\x92\xd8\xce\xc8\x9e\xb2\xf0\xf5\x8e\x3f\xdc\x62\x89\x51\x16\x64\x2e\xbd\xc7\xf2\xb3\xc8\x72\x04\x45\x8c\x9e\x78\xd8\xe6\xe4\xb4\xa3\xdf\xd9\xfc\x57\x0f\x15\x11\x68\x18\xc4\x21\x50\x9f\x72\xfb\x72\x9e\xee\x8e\x1a\x40\x11\x0a\x68\x5e\x1d\x4c\x7c\xc4\x46\xa3\x21\x09\x42\xe6\xb0\x23\x96\x21\x31\xad\x5e\xd0\x90\x50\x95\x38\xeb\xfb\x01\xa0\x77\x76\xa1\x0c\xc3\xd0\x52\x7d\xad\xef\xb6\xbd\x77\xed\xff\x16\x90\xf7\xf8\x2b\x1a\x86\x51\x8c\xdf\x7a\x28\x75\x66\xce\x5d\x89\xfd\x72\x21\x1f\xce\xab\x30\x52\x11\xb1\xe5\xce\x46\xbd\xfe\x59\x9e\x3e\xb9\x86\x48\xa7\x58\x3b\xcc\x54\xf9\x52\x77\x77\x82\xca\x4e\x59\xf0\x5e\xd4\x56\xaa\xf9\x4e\x4f\x7e\x2a\x0b\x93\xd0\x65\xa6\x56\x3a\xb6\x2c\x47\xd7\xcd\x78\x82\x7d\xc7\xf2\x08\x03\x91\x6b\x1a\x32\xa9\x69\x34\x12\xb9\xc6\xa9\xb8\x2d\xbb\x50\x7b\xe1\x3b\x19\x68\x9a\x52\x9e\x9a\x6f\x65\x7d\x81\x71\xb9\x5c\x00\xc3\x98\x26\xd8\x8d\x7f\xde\xfc\xe9\x43\xeb\x30\x4e\xb5\x89\x7a\x38\xa7\xa7\xb4\x7c\x55\x06\xa2\x61\xac\x08\x1d\xe9\x09\x63\x0d\xbb\xb6\x13\x7b\x50\xa5\xa0\x61\x92\x58\xcb\x5b\x6c\xfd\xd9\x2a\xcd\xe4\x9d\x1d\xff\xe3\x3e\x96\xf2\xc8\x58\x57\x25\x50\x27\xbf\xb7\xf9\x74\xea\xc1\xd6\x63\x6e\xa0\x6f\x4c\x8f\x1f\x5a\x9a\x50\x0c\x39\x4e\x35\x54\x57\x97\x48\x59\x1a\xa6\xc2\x60\xf8\xe6\x75\xf1\x67\xab\x83\x38\x0c\xa4\x33\x06\x99\xea\x32\xf9\x21\x86\x33\x31\x70\xfd\x82\x6a\x59\x96\x6f\x19\xb4\x9b\x93\xa8\xd4\x6b\x5f\x69\xa6\xa1\x08\x42\xd9\x17\xcf\xae\xef\xae\x67\xc0\xb9\x34\x14\x84\x98\xde\x40\x66\x91\xe7\xcb\x32\x77\x16\x15\xdd\x89\x42\x6b\x7d\x2b\x45\xf1\x36\x7e\x81\x45\x22\xf1\xc3\xbb\x7e\xf2\xac\xe1\x1d\x8a\xd3\x3c\xc7\x68\xfc\x4a\x48\x62\x03\xb0\xeb\xe5\xe3\x4d\x59\xdd\x8a\xee\xbd\x96\x09\x63\x3d\x63\xe9\xb9\x9a\x15\xc0\x72\x63\x15\x97\xd4\x95\x95\x9e\x4f\x87\x63\x0f\xe8\xa5\xa1\xe6\x12\x73\x8e\xcd\xa9\xf8\x7b\x38\x1e\x1a\x6a\xe3\xed\x6e\xfd\x82\x1a\x02\x4d\xb1\x6e\x55\x21\x18\xf3\x1d\xe6\xde\xf1\xcb\xff\xf5\x1f\x4e\x6c\xf8\x70\x3c\xd5\xaf\x57\x8b\x97\xf0\x82\xa9\x39\xfa\x31\x51\x10\x93\xd4\x5a\x96\x75\x24\x56\x1a\x05\x5a\x60\x8e\x6d\x39\xdf\xf0\x0d\xaa\x79\xc7\x33\x1a\x11\xd7\x08\xfa\x5d\xbc\x0b\xc4\x74\xac\x7e\x0a\xd4\xdb\x76\xc7\x43\xc2\x11\x56\xa2\xde\xeb\xff\x9c\x44\x35\xb3\xfc\xfb\x81\x09\x60\xd1\xe8\x42\xc9\xf9\x6f\x17\xd0\x66\xdf\xe3\x28\x0a\x20\x1c\x76\xc9\x2b\xd0\xbb\x66\x90\x0e\x47\x51\x62\x65\x32\x9a\xbe\xd3\xbf\x30\x0d\x54\x23\xad\x44\x1a\x51\x9a\x70\x8f\x65\x42\xd9\x8d\xac\x86\x45\x81\x38\x95\x19\x55\x6d\x1a\xd1\x54\x0b\xd3\xf1\x72\xbf\x2d\x7e\xfc\x71\xf7\x78\xeb\x4f\xc6\x02\xeb\x04\xbd\x58\x5f\xdd\x6d\xd7\x8b\xdb\xf6\xd0\xf8\xb2\x19\x65\xb2\xd3\x48\xfd\x3e\xe1\x11\xb8\x31\x5c\x4b\x2c\x41\xdb\xaa\x8a\xc3\x31\xcf\x27\xc3\x51\x4c\xb8\x17\x03\x7f\x10\x7f\x95\xa8\xef\xfb\x5a\x41\xfd\xda\x19\x78\xd1\x28\xa6\x81\xb2\xb6\x3e\x35\xb2\x28\x20\xab\xca\x61\x88\x10\xc5\xcc\x32\x19\xd1\xfc\x79\x03\x8d\x6d\xed\x0c\xa8\x9c\x34\x4a\x82\x98\x77\x3b\x30\x7e\xf8\x9b\x0b\x46\xfc\x00\x11\x22\x77\x6b\x9d\xed\xef\x74\x3f\x4f\x12\x1d\xa0\xc7\xdc\xfe\x04\x75\x3d\xa3\x9c\x42\xa3\x94\xd1\x44\x7b\x12\xf3\x49\x77\x5d\xa2\xf6\x48\xea\xa9\x36\x0f\x80\x5c\xce\xd7\xec\xe8\x30\x88\x7e\x08\xd7\xc8\xd6\xd9\x2c\xfe\x58\x2d\x9f\xee\x1e\xbb\xbf\x4b\xc0\x78\x79\xf1\x6d\x39\xfa\xa5\x52\x07\x3c\xed\x42\xc7\x67\x51\xd7\x68\x72\xfa\xa9\xd7\x41\x7f\x99\x8a\xa4\x88\x71\x3f\x94\x85\x8d\x9a\x07\xcc\x02\x1a\xa9\x88\xe1\x5e\x71\xdc\xd9\x15\x72\x37\x36\xcd\xfa\x54\x4e\x77\xb8\x62\x44\x2a\x4a\x11\xbf\xba\xc3\x0c\xa1\x80\x0f\xe4\x9f\x5f\xf4\xc2\x69\xa4\x69\xe8\x64\x4f\xdf\xcb\x37\x9b\x44\x7e\x1f\x97\xd2\xdb\x31\x09\x42\xb3\x3b\x14\xc9\xa5\xad\x0e\x8d\x74\x0a\x1a\x3c\xb3\xf2\xe8\xfc\x83\x27\x43\xa4\x41\x95\xcc\xab\x53\x9e\x43\x93\x15\x57\xe5\x94\xfc\x4e\x23\x93\x08\xd7\xff\xd9\x67\x35\x5a\x59\xfe\xab\xe8\x35\x8b\x47\x3f\x92\x06\x61\x8a\x6e\x27\xed\x06\xd7\x5e\xf4\x10\x0f\xf3\x55\x81\x9b\xd2\x40\x32\x14\x48\x5c\x35\xaf\xcf\xe7\x4a\x1c\x32\x1d\x04\xff\x72\x3a\x82\xed\x51\x5b\xd8\x6a\x7f\x4a\x59\x40\xf3\x2a\x6e\x45\x03\x1f\x62\xf2\x93\x69\x60\x62\xe3\xa4\xde\x90\x32\x89\xdd\xf3\xaf\x9f\x3d\x0d\x89\x65\x3b\x67\xf5\x73\x05\xdd\x42\x66\xfd\xb1\x7e\xeb\xc6\x40\xac\x7a\x23\xa3\x9b\x2e\x89\xff\xfd\x61\x72\x05\x21\xa7\x18\x90\xdf\xe5\xf9\xe9\x90\x15\x03\xed\x7f\x4a\xc3\x38\xe4\x51\xb7\x5d\x0d\xdb\x35\x94\x46\x22\x40\xfc\xa3\x2c\xcb\xb1\x5e\x32\xa5\x91\xb2\x72\x88\x56\xd1\x79\x09\x75\x93\x99\x4c\x0d\x56\x96\xc9\x0f\xa2\x92\x07\xae\xbd\xfd\x58\x5a\xef\x23\x0b\xdf\xf1\xc7\x8d\xa1\x0e\xf3\x8b\xba\x5a\x88\xde\x6c\x47\x0c\x90\xa3\x6e\x28\x8b\x08\x06\x66\xed\x32\xbb\x3b\x3a\x68\x9f\x3f\x46\x43\x34\x43\x68\xfa\x22\xa3\x3b\xc2\x25\x13\x5e\xc1\xcd\x52\x52\xff\x0b\x17\x75\x18\x3f\x16\x62\xb4\xdb\x2b\x4f\x4d\x03\x15\xb6\x7b\xbc\x92\xbf\x3f\x5d\x1c\x5a\x35\xac\xc5\x6a\x39\xaf\xd6\x39\x9a\x82\x71\xa2\xb1\x29\xe0\x44\x69\x4f\x55\x51\xbe\xf7\x92\xf9\x93\x5b\x15\xa7\xb6\xf3\xd9\xae\x9b\x55\x1b\xb3\x7a\x90\xea\xfc\xc6\x49\x63\xa1\xac\xcf\x0b\x96\x0c\x37\xe5\x01\xbe\x7b\x2d\x3c\x4a\x63\x65\x30\xa3\x6a\x53\x8c\x7f\x9e\x84\xe5\x17\x0e\xed\xba\xdd\xb8\x24\x20\x88\x01\x3e\x62\x8d\xf6\x79\xbd\xea\xfc\x0a\x28\x4d\x49\x32\x40\xb2\x2d\xb3\x0a\xc3\xd8\x7e\x2d\xa2\x29\xb3\x6e\xc6\x0f\x77\x8f\xbb\x97\xcd\xf5\xee\xe6\xe5\xf1\xba\x3b\x96\x72\xd5\x41\xa2\x9e\xab\xb2\x34\x63\xc3\x9c\x3e\xee\x1e\x56\x38\xfd\x87\x15\x47\xab\x83\xf6\x51\x6b\xd1\x08\x7f\x52\xc1\x00\xf7\x06\x2b\x8a\xd0\x3f\x64\x19\x24\x91\x9b\x65\xab\x85\x87\xf8\xc1\x48\x33\x82\x52\x29\x62\x6c\xeb\xef\xe0\x67\x56\x37\xcf\x27\x99\x67\xea\x0f\x38\xcf\x22\x64\x28\x95\x9a\x11\x3d\x14\x29\x19\x95\xb3\xa8\xd4\xdc\x7b\x6c\xb6\x8f\xf4\xbe\xbc\x94\x12\x70\x23\x95\x50\x18\x4d\x09\xad\x7f\x2f\xe5\xe6\x58\x16\x75\x69\x69\x42\x5f\x2f\xd5\x73\xc8\x7a\x4a\x75\x1c\x59\xa3\x43\x94\xf3\xd8\x0e\x18\x10\xdf\x44\x7d\x59\x54\xfb\xec\x2b\xe6\x57\x1f\x6d\xe2\x50\x77\xde\x28\x23\x21\x06\x4a\x21\x14\xf6\xe5\x28\xf2\x33\x8a\x89\x54\x0f\x7d\x86\x4e\x41\xa5\x21\xf1\x86\x33\xf7\x59\xdd\x99\x98\x4d\x96\x24\x50\x0a\x03\x00\x3b\xdf\x06\x93\x0d\x74\x82\xb2\x66\x59\x7d\x2d\xb2\xfc\xfc\x72\x44\x10\xfc\x1a\xc4\xaf\x4a\x85\x14\x4c\x4c\xc2\x4e\xfd\xcb\xca\x28\xe0\x32\x62\x59\x48\x13\x98\x24\xa5\x26\x8e\x31\x0e\xdb\x42\xdd\x84\xe1\x70\x4d\x34\x71\x3a\x28\x75\xa2\xdd\x77\x39\x49\xc5\x12\x3f\x34\xb1\xbd\xb8\x4c\xa1\xc0\xf0\x38\xd4\x63\x24\x60\x58\x04\x38\xb6\xd3\x62\xd2\xe9\x1c\x4e\x23\x46\xc2\x14\xa5\x4a\xde\xcb\x06\x3c\xe7\x61\x6e\x71\x60\x84\x59\xd7\xf9\x0e\x83\x11\x76\xdf\x15\xa7\x58\xb9\x2f\x5c\xe7\x1d\xf3\x6c\xbf\x94\xb3\x28\x49\xb0\x29\x74\xb7\x7c\xda\x3d\x7f\x5b\x6c\x56\xd1\x48\xfb\x94\xb2\x28\x4d\xb0\xc4\xe5\xc8\xfd\xdd\x69\x23\x61\x64\xd2\x09\xbe\x5e\x67\xf5\x31\x17\xe7\xe1\xd2\xcd\x22\x23\xb1\xf1\x31\x80\xc9\x4c\xaa\xfb\x8c\x86\x22\xf6\xdd\x96\xfb\xef\x0e\x30\x9e\x76\x47\x15\x45\xd9\xc4\xaa\x6b\x98\x30\x0a\x3c\x74\x5a\x95\xb6\x12\xf0\xf7\x78\xff\xe3\x77\x97\x71\x6d\x71\xf0\x6d\x68\xf4\xde\x2e\x5d\x1d\xfa\xcf\x0f\x00\xa5\xac\xe1\x07\xea\xb9\x0d\x6b\xc6\x2c\x21\x49\x3a\xf6\x5c\xbb\x1a\xcf\x61\x96\x06\x0a\xc9\x44\xd6\xc6\xa2\x8f\x11\x59\x4a\x15\x2e\x43\xfe\x51\xfc\xf3\xd4\xee\x8f\x9d\x91\x07\x65\x29\x07\x0c\xed\x6a\x2f\xba\x66\xb5\x6e\xf3\x76\xc9\x5a\x68\x3d\xac\xf0\x8d\xe4\xc7\x29\x4b\x55\x84\xfd\x45\x5f\x0f\x7a\x29\xd4\xe8\xf5\x64\x22\xb4\x6f\xc1\x21\x2b\x9a\xa5\x38\xde\x15\x2f\x9b\xeb\xee\x98\x31\xc8\x89\x3d\x9e\xf2\x31\xbe\x8e\x32\x19\xa6\x81\x1e\x00\x9a\x9e\x2b\x68\xf6\xfd\x51\xc7\xba\xb3\x91\xc8\xc0\xf6\xfd\xeb\x94\x89\x49\xa7\x02\xd7\x94\xb7\xd9\xfb\x40\xc3\x91\x32\x45\x13\x6d\x7b\xaf\xea\xd4\xa6\x10\xbb\x85\xd6\xed\x86\xfd\x51\x56\x7a\xf3\x2a\xa2\xf6\x71\x6c\xcb\xab\x36\x67\x77\x15\xe5\xe1\xb3\x51\xc6\xa0\x91\xf5\x6b\x79\xaa\xa1\x1d\xb4\x2e\xbd\x47\x36\x65\x5a\xa6\x88\x65\x59\x42\xd1\xd4\xc7\xb2\xcc\xc5\xa8\xf0\xc6\xb4\x4e\x10\xe7\x63\x2b\x65\x57\xa7\xaa\x18\x59\xe2\x53\x66\xb8\x46\x34\x89\x2b\x3d\x08\xab\x53\x84\x80\x9f\xf1\xcb\x68\x64\x18\xb8\x08\xf0\x11\x3e\x1c\xd3\xd0\xa5\x1c\x73\xab\x36\x0f\x68\x42\x7a\xe7\x38\x44\x3e\xf9\xcb\xe2\x01\x0f\x85\x1e\x87\x89\x83\x7a\x00\x0f\x84\xc1\x82\xe4\xd4\xe4\x62\xfe\xce\x73\x12\x6a\x7b\x13\xae\x7f\x5d\x38\xe0\x21\xb1\xbe\x24\x28\x53\x74\x55\x36\x4d\x79\xf0\x5f\x1b\x26\x0a\xf7\xfe\xd5\xe3\x66\x8d\xb1\x76\xd5\xc5\x16\x3c\x0a\x02\x50\x4e\x16\xb2\xfb\x1b\x09\x0c\xf7\x8a\x22\xae\xc4\x3a\xbf\x21\xf2\x48\x58\x33\x62\xa1\xf5\x50\xa6\xdf\x1f\x95\x4a\x7b\xed\xe2\xed\x6b\x55\x7e\xd4\x9b\x36\x74\xec\x60\x02\xed\xb3\x7b\x2c\x87\x42\x5a\x94\x53\x16\x22\x6b\xd0\x75\x90\x87\x9e\x36\xd8\xca\x5a\x34\xeb\x19\x4f\x70\xff\x61\x6e\xd1\x72\x03\xd8\xe7\x74\x84\x66\x49\xe8\x43\x99\x6f\x28\x0f\x7a\xb6\x64\xdf\xdf\xa6\x03\x53\xb4\xab\xea\xfc\x9f\x56\x48\xec\xc8\xaa\xee\x36\xb1\x28\xc0\xd8\x1d\x79\xfd\xcf\xe2\xbc\x38\x34\xdd\x21\xaa\x51\x7b\xa6\xe9\x0b\x78\xa7\x7a\x84\x36\x1b\x5e\x3f\x09\xbd\x8e\xae\xff\x38\x30\x27\x2c\xdd\xef\x82\xcf\x25\xba\x2f\x75\x73\x89\x47\x44\x39\xcd\x47\x6f\x4e\xfc\x4d\xcc\x40\x5c\xfc\x70\x19\x5b\xf3\xd2\x36\xcb\xf7\xe7\x88\x03\x6b\x06\x61\x5f\x92\x55\xd1\xa0\x30\x5d\x5f\x4e\xed\xdf\x27\x1e\xa7\x32\x18\x6a\x1e\xb4\x6b\xd7\x5c\x62\xce\x93\xc0\xe2\xcd\x5c\x71\xde\x16\x32\x1d\x3b\x78\x3c\x3b\xd2\x48\x63\x30\x65\x6b\x92\x4f\x56\xaa\x7d\x99\x97\x98\x5c\x67\x9f\x90\x30\x29\x4f\xa5\xc0\x12\x8e\xbd\xe8\xe7\xf2\x0d\x0e\x9f\x9b\xe7\xfb\xcf\x68\xae\x7a\xe1\x1e\x9d\x15\xfb\xfb\xf2\x43\x89\x23\x86\x24\x53\x10\x03\x17\x89\xc0\xf8\xa7\x3e\x1d\x8f\x65\xd5\x6b\x37\xfb\xdb\x26\x95\xc6\x34\x04\xdc\x0d\xb3\x4e\x6d\xee\x20\xb8\x2c\xbb\x86\x66\x99\x9f\x80\x8e\x42\x4d\x0e\x00\x58\xc8\xb1\x42\x61\x37\x2f\xdb\x97\xf5\x6a\xb7\x5c\xf8\xae\x4d\x1c\x70\x23\x88\x8f\xda\xda\x5d\xae\x5e\xf6\x57\xe9\xc7\x08\x81\x6f\x95\x0d\xbb\xae\x4f\xd5\x30\x8e\x8f\x89\xb1\x47\x3b\x27\x9d\xee\xba\xe3\x48\x47\xd8\xe5\x5b\xfd\x25\xaa\x6c\x7d\x6a\x4f\xee\x0f\x51\x96\x5a\xb7\x76\xfb\xd6\x39\xcd\x8b\xeb\x93\x07\x84\xd2\x98\x26\x44\xa4\x08\x3c\xfc\xeb\x43\x0c\xab\x23\x31\x0b\x54\x57\x4c\xca\x8a\xec\x74\xb8\x2b\x8e\xa7\xa1\xa0\x0e\x8d\x19\x23\x88\xd4\x38\xbc\x61\x33\x79\xfa\xb0\x7c\x64\x30\xbc\x55\x31\x4b\x20\x09\xfd\xad\x58\xd4\x6d\x90\xdc\xe1\xad\x67\xdf\xed\x98\x09\x82\x4f\x79\x71\x7f\xff\xb4\xdc\x6d\x57\x0b\x8f\x5e\x88\x39\xd3\x32\x9e\xb0\x8c\xc7\x94\xa1\xf9\x33\x72\x0d\xa1\x83\x88\xe7\x2f\xeb\xfb\xdf\xbe\x90\x9e\x71\x9f\x88\xe3\x14\xa5\xee\x6e\xb2\x77\x5f\x0a\xa4\xab\xf7\xfe\x4e\xc4\x09\xd5\x3e\x1b\x72\x35\xf6\xeb\xac\x2e\x3f\x8a\xc9\x3a\x18\xc7\x10\x6b\x47\xd0\xbb\x39\xe5\xf9\x36\x53\x6f\xbd\x39\xce\x57\x93\x3d\x4e\x88\xe1\xfd\x7b\xb5\x53\x25\x8c\x49\x32\x34\x4e\x62\x8d\x21\x53\x9e\x15\x6f\x2b\xaf\x15\x3b\x4c\xda\xe2\x24\x49\x90\xce\x75\xac\xca\x03\x34\xaf\xcb\xb2\x9f\x08\x89\xa1\xa4\xdb\x1d\x6a\x58\xa2\x18\xa2\x9a\x14\x4c\x62\x11\x0b\x6c\x3f\xfa\xe6\xe8\xe8\x26\xc9\xd0\xfa\x2d\x54\xd0\x54\x22\x6b\x36\x8d\x28\xb4\xa8\xf4\x8e\xfa\xef\x90\xdc\x8a\xf8\x3b\x68\xb0\x38\xde\x54\x00\xb3\x2d\x8b\x58\x42\x04\xd4\x63\xdd\x2f\xfc\x22\x3f\xb9\x45\x8a\x10\xb0\xf2\x46\x7a\xb0\x55\xb8\x83\x3a\xa6\x18\x11\x68\xeb\x2f\xdc\x01\xcb\xfd\xe1\x24\xc5\x3d\xde\x3f\x0b\xff\x67\x69\xdb\xb6\x87\xac\x83\xa2\x8f\x3a\x15\xb1\x06\xab\x54\xf7\xd1\x83\xac\x2e\x2f\x4c\x9b\x80\xba\x9b\x7b\x5b\x89\xc2\xd5\x54\x07\x81\x4d\x0c\xd4\x8a\x4f\xed\xed\xba\xdf\x21\xca\x69\x6c\x12\x12\x3b\xc2\xa7\xc9\xaa\xc3\x22\xcf\xaf\x4e\xe7\xba\x3f\x1a\x45\x23\x0b\x3e\x0c\x21\xfa\x2c\x28\x36\x22\xb6\xca\x60\x36\xfd\xc1\x38\x62\x3c\x6f\x92\x20\x08\x22\x87\x45\xf8\x6d\xee\x9d\x4d\x02\x12\xa2\x20\xcb\x60\xe1\x48\x02\x10\xbe\x1e\xeb\x08\x19\xe3\x93\x12\x2e\x11\x85\x01\x85\x7e\x32\x4e\xfa\x7d\x69\x7f\xc2\xa8\x98\x9c\x90\x14\xbc\xec\x04\xbe\xbb\x43\xf6\xfc\xec\xeb\x9b\x10\x25\xf1\xab\xfd\x52\xf8\xbb\xf8\xab\xdd\x95\x66\xf0\xbd\x34\x09\x49\x18\xd8\xb6\xe0\x3b\xd4\xcd\x5d\xf1\xcf\x13\x9c\x3e\x59\x68\x92\x48\x05\xcc\x01\x86\x50\xb2\xeb\xa6\x3c\x94\x93\xd3\x51\x6d\xed\xd6\x31\x81\xc5\xda\x0f\x7c\xd2\xf5\x4d\xa8\xb6\xf6\x74\x2e\x81\x01\xfd\x50\xbe\xcf\x56\x41\x13\x0a\x2c\x72\x10\xe9\x87\xf3\x43\xed\x21\x7e\x09\x4b\x18\x6a\xb5\x2c\xb6\x0f\xbf\x8e\x14\x13\x4e\x14\x56\x9d\x1d\xff\x43\x14\x30\xa1\x34\xce\xbf\x34\x09\xe7\x1c\x65\x46\xea\x2c\x7f\x87\xaa\xdd\x9c\xec\x1c\x71\x87\xe3\x48\x28\x67\x58\xb8\x5c\x3d\x7d\x25\x89\x47\x93\x58\xf2\xd4\xb6\x0e\x34\x4a\x24\x7c\xda\xc1\x4d\x12\x21\x51\x62\x70\xf1\xb8\x18\x64\xf7\x49\x62\x82\x00\x57\x90\x53\x81\x1e\x97\xcf\x55\xf6\x9e\xe5\xb0\x87\xfb\x93\x7a\x3b\x5f\x77\xa8\x7b\x9a\xa4\xd4\x6a\xbd\xed\xc5\x71\x12\xe2\x25\xa9\xb4\x4a\xc0\xc2\xd7\x12\x37\xcd\xd4\x07\x88\x26\xa9\x62\x98\x74\x63\x09\xc3\x71\xc8\xfc\xb9\x05\xa4\x36\xa8\x72\x09\xd7\xda\xd7\x58\xdd\x3b\x95\x48\x1a\x06\x74\x60\xdc\x75\x61\x58\x38\x2e\x24\x4c\x6e\xb8\x8c\x23\xe1\x38\xee\xd7\xd9\xfb\xc8\x5b\xd5\x8f\x50\xd6\x0e\xc2\xef\x6b\xee\xdd\xad\xb7\xe5\x23\x7c\x5c\x8b\xe9\xa4\x54\x3c\x09\x5c\x2d\x1c\xaa\xfb\xac\x78\x1b\xee\xe3\x89\x8e\xac\x73\x0f\x6a\x9d\xbe\xc3\xf2\x55\xe4\x39\x14\xfb\x69\xc6\x94\x00\x08\x6a\xe1\x68\xdd\x72\x0b\x23\x87\x19\x9a\x18\x6a\x59\x98\xd6\x33\x15\x93\x38\xff\x2d\x46\x69\xbf\x1c\xd8\x5a\x9c\x8f\x5f\xfe\x8f\x0d\x3e\x7b\xba\x34\x48\x2d\x4b\xc9\x91\xf7\xe7\xe7\x5b\x1a\x40\x9c\xba\x9f\xb6\x7c\x2d\x6b\x28\xda\xfd\x04\xe7\xbc\xdf\x6f\xd3\x90\xd8\x8a\x22\x0a\x20\xb7\x61\x5f\x7d\x75\xb6\xff\x31\x6d\x6e\xa4\x61\xaa\xb1\xdb\x7e\xc4\xb2\xe3\x06\xba\xb4\x35\x0d\xa5\x8e\x9c\xc1\xe8\xc3\x29\x9f\x79\x62\x69\x24\x03\x6c\x78\xdd\xae\x36\xc3\x9b\x9f\xd2\x50\xe8\x61\xe3\xe5\x0a\xb9\x6d\x36\x22\xf8\x32\x46\x49\x29\x8d\xbc\x7c\x81\xad\x43\xac\x44\x75\xa1\x32\x49\x53\x2a\x6d\xff\xe0\x5d\x54\x19\xde\xf0\xe7\xaa\x94\x42\x7a\xbd\x1c\x9a\x52\x43\x8c\xec\x71\x47\x03\xa8\x99\xc3\x3e\x77\x11\x68\xca\x62\x2b\x99\xb2\x7c\x5a\xaf\x1e\x3d\x06\x9f\xa6\x2c\xb5\x75\x8d\xe7\xf5\xea\xe1\xee\xe5\x61\x87\xfe\xa9\xcf\x8b\xe5\x1f\xbb\x81\x85\x2a\x4d\x39\x89\x62\xab\xc6\x87\x05\x9d\x5d\xbb\x8a\x22\x75\xea\x66\xe2\x1b\x4b\x53\xce\xac\x4a\xe1\xcd\xe2\xb9\x8d\xdb\xfd\x19\xe2\x30\xc2\xf4\x6a\xb9\x5d\x5e\x0a\x80\xd0\x34\xd6\x04\x4b\xd9\xdb\x2c\x9f\x82\x04\xdd\x88\x24\xb0\x70\x0e\x5f\xdc\xd9\x34\xa2\xaa\xb7\xa5\xfb\xd5\xfe\x6b\x12\xca\x10\x5b\x80\x50\x8e\x65\x0e\x5d\xd6\x9c\x26\x2e\xe8\x78\x04\x5b\x28\x33\xbd\x6d\x23\x4d\xd3\x14\xb0\xe3\x02\x85\xbe\xd0\x0a\xa3\x69\x2a\x42\xee\xa6\xa2\x4b\x3f\xef\xc1\x34\xdb\xb2\xd3\xa8\x9a\xde\x83\x54\x86\x18\x51\xea\xb2\xcd\x9c\xdb\x2c\xfa\xa9\xc0\x16\xf0\x75\xf6\xee\x4f\xaa\x80\x20\xfb\xdc\xe1\x96\x8f\x75\x1b\xdc\xfb\x83\x3a\x12\xd8\x4f\xa9\x9b\xd2\xea\xa5\x74\xb2\x23\x6e\x00\x44\x92\xbb\x6d\xe5\x19\x8a\x36\x26\xfb\xea\x85\x74\x1f\x32\x54\x18\xdd\xbb\xb8\x0d\xab\x89\xa9\x61\xb1\xa7\xa8\xdc\x8b\xba\xb9\x87\x77\xf0\xaf\x88\x08\x52\x29\x2c\x94\xaf\x58\x28\x05\x75\xbd\xfa\xa9\xf2\x53\x3d\xc0\x35\xf8\x81\x82\x63\xd1\x72\xb3\x87\x5f\x4b\xef\x52\x11\x40\x48\x95\x57\xee\x2b\x1b\xb1\x6c\x13\x7c\xff\xa5\x24\xb6\x56\x41\xb6\x6f\x07\xae\x0a\xe2\xa7\xbe\x08\x43\x46\xc0\x53\x7f\xfd\x1f\xa3\x30\xc0\xaa\xc9\xe6\x65\x71\x3c\xfe\xb2\x3d\x24\x22\x16\x8b\xd0\x9b\xfd\xf4\x2e\x5a\x93\x1f\x15\xa5\xda\xdf\xb5\xe5\x6b\x96\xeb\x3b\x3d\x5f\x23\x16\x94\x58\x23\x84\xab\xbb\x87\xbb\xdd\xf5\xe2\x69\x17\x11\x7f\x61\x8c\x70\x2c\x3c\x0a\xad\xd7\xdb\xa7\xf9\x86\x92\x60\x8e\xa7\x7f\x40\x86\x25\x22\xfe\xf3\xf3\xd5\xf9\xaa\x6a\x23\xde\xc9\x45\x31\x30\x6c\x28\x4a\x84\x3e\x1b\x6d\x06\x5e\x9e\xe6\x34\x25\xa9\xe0\x9c\x63\x61\xea\xf1\x74\x68\x86\xcd\x46\x11\xc7\x12\xb7\xe5\xac\x7e\xa9\xa1\xba\xb2\xaa\x14\x93\x6f\x8b\x85\xed\xba\xed\xe4\xe9\x7c\x57\x5c\x8d\x9c\x33\x3e\x89\xda\xa7\xf0\x10\x91\x68\x8d\xf0\x10\xd7\x8b\xf3\x5d\x81\x61\x3c\x22\x12\x13\xa1\x51\x4b\x93\x1d\xe0\xc9\x0c\xbc\x50\xa8\x48\x23\x6d\x4b\x9a\x7e\xb1\x15\x75\xa6\xbe\x5e\x66\x45\x1a\x1b\x64\x56\x39\x7f\x75\x2c\xb0\xbd\x1c\xf1\x21\x7e\x9d\x6c\x88\x34\x15\x58\xd4\x1f\xa6\x77\x22\xd5\x84\xf1\x2e\x49\xfb\x21\x32\xbc\xe1\x2f\x45\x93\xe5\xbe\x2c\xfc\x54\x4d\x7d\x59\xdd\x67\x45\x48\xd1\x8c\xf3\x54\x60\x15\x0b\xf4\xcb\x71\x8f\x60\xca\xf1\x8d\x96\x61\x8c\x40\xcb\x7d\x66\x9a\x3b\xbd\x2d\x11\x1a\x3b\x3e\x93\xd4\xc2\x19\xdf\x17\xba\x93\xbc\x5b\x14\x7a\x29\xf2\x8b\x68\x75\x98\x1f\x0a\x09\xb6\x08\x73\xf5\xf4\x78\xed\x29\x50\x42\x31\x8a\xf8\x78\xf8\x09\x95\xca\x6a\x58\xbe\x6c\x56\xf3\x31\xaf\x50\x89\xd0\xa9\xdf\x6d\xdb\x3c\x0a\xbc\x9e\xe4\x27\x21\xa3\xd0\x01\xc1\x17\x62\x53\xaa\x4c\xe4\x99\xf1\x8b\x8d\xd0\x5c\x32\x79\x91\xdb\x7f\xda\x90\x1b\xfe\x0a\xe0\x14\xef\x90\xa8\x2a\x71\x1e\x4e\x1e\x19\xf0\x48\x3b\x06\xf5\xa3\xe3\xcd\xff\x2d\x9e\x41\xf7\x71\x2b\x90\xd0\xde\x72\xdf\x7a\xfb\x72\x92\xc8\x20\x8d\x11\x79\x67\xbf\xd0\xea\x60\x8d\xbf\xd0\x87\xc4\x32\x10\xd6\xfb\x70\x71\xfd\x72\xbf\x5d\xbd\xf8\x22\x87\x24\x94\x62\xca\x6d\x55\x05\xfb\x95\xde\x81\x4a\xbe\x9c\xde\x92\xc4\xa9\x76\xcb\xa7\xe7\xc0\xdf\x0e\xb1\x66\xff\xc7\x26\xe4\xa7\xff\x5e\xf0\x60\xfc\xf7\x4b\xde\x4f\x08\x55\x56\x56\x0a\xcc\x9b\xc9\x58\x28\x6c\xdd\xfd\x52\x9d\x2a\x1f\xf4\x5d\x26\x81\x6e\x50\x18\x4a\xc4\x0c\x66\xaa\xdc\x89\x09\x35\x99\xca\x30\x8d\x70\x75\xbf\xc9\x0a\x71\xec\x92\x7b\x19\xea\x08\xd3\x8d\x63\x9b\xbf\x47\xc3\x4d\x4d\x46\xd2\x5a\x06\x2e\x74\x7b\x39\x59\x31\x6c\x66\x48\x6a\x4c\xe0\x43\x75\xd1\x58\xaf\xff\xf9\xb7\x57\x32\x1a\x85\xae\x19\xb7\x50\xcd\x49\xe4\x43\x96\x32\x95\x2c\xb5\x5e\x09\xdb\xd5\xe2\x61\xd8\x84\x97\xac\x0d\x9e\x7d\x3d\xec\xc2\x87\x9f\x4a\x9e\x50\xe4\x9d\xf5\x58\xab\xa5\xf0\x9b\x99\xe4\x89\x46\x59\x0e\x07\x68\x84\xca\x79\x4d\xd5\x57\xe5\x64\x8b\x92\x31\xa1\x48\xfc\x43\xd7\x9c\x75\xbb\x82\x37\x37\x25\xa6\x7b\x56\xcd\x66\xf8\xe4\xbd\x34\x46\xe0\x3f\x1b\x5b\xdb\x56\xec\x7f\xbc\x0b\x8d\x35\x9b\xc9\xf9\x13\x16\xe3\x2d\x1e\x09\x6f\x8f\x87\xa4\x4a\x63\x40\xe2\xd6\xb5\x75\xb6\x1f\xb0\x67\x7d\x95\x5c\xa6\x9a\x18\x2b\x23\x59\xbe\x9d\x3e\xa1\x1a\x49\x11\x0a\xe2\x30\x11\x0a\x8a\x06\x31\xd2\xc3\x91\x49\x37\x0e\x30\xd7\x6a\x17\xf7\x61\xe9\x52\x8a\xc8\x12\xae\xeb\x9e\x52\x27\x45\x0a\xa4\x23\x4e\xce\x48\xf3\xf8\x61\x26\x45\xd0\xd0\xb7\xb3\xac\x32\xed\x31\x47\x52\x12\x89\x73\x25\xab\x57\xb5\xaa\xca\x8f\x11\x22\x48\x4a\x96\x18\xab\xcb\xf3\xf3\x93\x9f\x24\x8d\xc4\xce\x04\xbe\x21\x38\xc9\xb2\x5f\xc7\x6b\x52\x45\x56\xf5\x41\x97\x3b\x44\xd5\x4d\x66\x8f\x52\x61\x24\xbb\x27\x07\x97\xe8\x6a\x37\x4e\x33\x15\x33\xaf\xbe\x67\x21\x26\xe3\x10\x61\xf2\xb5\x3a\x05\xe4\xc3\x64\xf5\x53\x5f\x05\x95\xc0\x89\xe7\x48\xf6\x99\xd8\xb7\xf2\x54\xe5\xe7\xb5\x68\x2e\x6a\x8a\x93\x6b\x00\x6d\x03\xec\x0e\xa4\x06\x85\x86\xea\x59\x9c\xeb\x36\x83\xf8\x62\xc1\x97\x00\x09\xf6\xb0\xed\x7a\xf2\x5c\x96\xf9\xe3\x27\x88\x33\x09\xc6\xe0\x02\x71\x8b\x55\x6d\xa8\xee\x96\x4f\xa3\x04\x73\xf4\x33\x55\x40\x99\x4d\x08\xbe\x0d\x25\x3b\xa8\x22\x3c\xc5\x2f\xbc\xca\xf6\x6b\xd0\x83\x0a\x86\x22\x1c\xb0\x0a\xb3\x5c\xaf\x16\xdb\xd5\xf5\xee\x79\xfd\xf4\xe0\x01\x14\x2a\x14\x02\x3a\x25\x00\x5c\x85\x1e\xfa\x4f\x86\x10\xa2\x64\xf1\x0e\xd1\xa0\x4f\xe6\x5e\x14\xda\x57\x84\x47\x17\x45\x93\x00\x95\x87\x6b\x61\x46\x14\x0c\x45\xc1\x7a\x13\x0e\x29\xbb\xdb\x72\x81\x4a\xb8\x5e\xeb\xdf\x07\xc7\x8a\xb1\x4e\x1f\x73\xd9\xcb\x04\x6d\xcb\xa5\x38\x1c\x45\xb6\x9f\x77\x4e\xa1\x8a\xa9\xd4\xeb\xd6\x3f\x88\xac\xf8\xb3\x3c\x39\xbe\xff\x44\x9f\xe2\x73\x05\x86\x29\xb1\x4e\x71\x2a\x90\x23\x74\x5b\x7a\x8c\x81\xe2\x4c\x43\xd4\x4b\xa1\x9f\x47\x65\x08\xc5\x99\x41\x40\x14\x2a\x0c\x43\x7d\x75\x6e\xd7\xe6\xc9\xcc\x57\xb1\x90\x08\xcd\xfd\x70\x31\xd8\xfc\xa4\x53\x89\x62\xca\x56\x3d\x3a\x26\xc9\x5c\x3d\x5a\xa5\x84\xe3\xda\xf0\x01\x59\x9f\xd2\xf9\xd5\x5d\xa5\x91\xe9\x74\xe0\x0b\xb8\xad\xca\xd3\xf1\xf7\x32\x43\x79\xf2\x0b\x35\x0b\xaa\xd2\x84\xa6\x56\x5d\x04\x74\xd6\x2c\xea\x6c\x88\xfa\x53\xc2\x24\xd2\x56\xd1\x3f\x44\x85\x10\x8b\x11\xf2\x4f\x49\xad\x13\x2f\x09\xd9\x2e\x54\x16\xe8\x33\x7f\xd5\xd2\x98\xd0\x51\x30\xd0\x0d\xcb\x7a\x96\x58\xad\xb6\x91\x78\x0d\x55\x2a\x24\x09\xe9\x3c\xba\x8e\x50\x35\xe7\x2b\x50\xe5\x01\x2c\x0a\x6b\xa8\xac\xd5\xff\x12\x1d\xc5\x88\x2f\x41\xda\x84\x17\xc7\xb8\xdb\xde\x7e\xf2\x3a\xe9\x24\xe1\xae\xf9\xb1\xa8\xaa\xab\xb2\xcc\xd1\x13\xd9\xa7\x40\x4a\xeb\x08\xfb\x39\xf2\x74\x5e\x42\xd5\x88\xac\x98\xd5\x3c\xf6\xa3\xc1\x0a\x63\xdc\x8b\xaa\xbe\x05\x79\xaa\x9a\xba\x11\xfb\x7a\x5f\x9d\x3a\x40\x81\x82\x44\x60\xf5\xdb\xe1\xe3\xbc\xdb\xd0\xca\xe5\xf0\x93\x07\x03\x8a\x45\xdd\x5e\x7b\xd3\x86\xaf\xfa\x29\xb7\x11\x74\x67\x6c\x63\xf9\x2a\xfe\xfc\x86\x71\xac\x38\x3c\xaf\x57\x9b\xc5\xfd\xaa\xfb\xb3\x4e\xb1\x60\xbe\x7e\x7a\x79\xbc\xde\xd1\x9d\x3b\xbc\x43\x85\x81\x6e\x90\x49\x0d\xeb\xa5\x27\xda\xdb\x31\x7e\x7c\x3a\x08\xac\xa1\x5d\xbb\x7a\xab\x72\x40\xbc\xf5\xc7\x09\x24\x28\x71\x5a\xa1\x3d\xe4\x7c\xce\xa9\x83\x58\xc5\xae\x10\xfd\xa3\xac\x72\x3d\x96\x38\x6c\x8f\x43\xd2\x69\xba\xf6\x12\x7f\xfe\xa8\x52\xd2\x95\xe7\xbf\xb7\x09\xa4\x07\x40\x3c\x43\xd5\x09\x16\x52\x1d\x80\x35\x58\xae\x44\x65\x67\xd9\x30\xc6\xd2\x84\x98\x88\xf9\x28\x30\xb7\x34\xbf\xf1\x2f\x25\xa1\x44\xa0\xa4\x2f\xe9\x6f\x9a\x93\xce\xca\xba\x3b\x01\x8d\x43\xd7\xe8\x6d\x37\x92\x31\x5d\x4b\x13\x9e\x98\xd8\xf7\xd4\x0a\x3d\xf2\xae\x9e\xeb\x67\x68\xa2\x28\xee\x34\x27\xd4\x0b\xb1\x12\x12\xfe\x90\x8e\x51\xa1\xf2\x79\xb5\xbe\x7b\xf2\x41\x9a\x8e\x08\x45\xd8\x49\x86\x44\xa5\xac\x70\x7b\xe3\xf8\x37\x44\x8a\x60\x06\xbc\xfc\xd7\x3d\x26\xe6\x43\xdd\x6a\xaa\x23\xb0\xb8\x98\x5e\xb7\x53\xaf\xba\xd4\x55\xd3\x80\xa7\xd4\x13\x0f\xe0\x90\x4d\xad\x59\xa9\xa6\x3c\x44\xba\xb4\xbd\xe6\x76\xc5\x8b\xba\x0f\xa7\xb6\xd0\xb3\xc6\x1c\x56\x0f\x00\xf9\x93\x73\x30\x12\xa0\x25\x34\xa2\x76\xac\x42\xd0\x68\x6d\xd1\x3c\xb0\xf2\x40\x47\x54\x52\x75\x96\x56\x5f\xa2\x59\x34\x67\xb1\x52\x1d\x6b\xcd\x6e\xf1\xcd\x37\xa8\xca\xcf\x25\x00\xa9\xe6\xd2\x4a\x31\x5c\x9d\xce\x37\x65\xf5\xed\x8f\xdb\xb9\x8c\xe6\x6f\x55\x8a\x35\xd7\xd4\x27\x0d\xcf\x42\xbd\x89\x3d\xf4\xea\xcc\x7e\x71\xd3\x09\xe1\xc8\xc7\x2d\xca\xaa\x79\x15\xfa\x3d\xab\xbd\xdf\x04\xd5\x09\xe3\xa8\x6d\xa0\x41\x9f\x50\x10\xc3\x1f\x48\xc3\x18\x6b\xba\x28\xc5\xe1\xd6\x4c\x7f\x48\x29\xd4\xbc\x3d\xa2\x15\xc2\x75\x56\x1f\xa1\xaa\xbb\x38\x48\x0b\x1a\x78\xf7\xbc\x2b\xa1\xaf\xa0\x99\x6c\x4e\x5a\x50\xbb\x39\x3d\xfd\xb0\x9a\xb5\x8b\x4a\x76\x9f\xe5\xdc\x86\x01\x56\xc1\xde\x4b\xb9\x5d\x9c\x41\x5b\x49\xea\xe2\x74\x70\xda\x3f\x6d\x52\x05\x75\xb7\x34\x69\x61\x0c\xf1\x58\xec\xd1\x63\xe8\xee\x8a\x24\xb6\xf6\x61\xc5\x51\x97\xa2\xd0\x48\x40\xa9\x27\x56\x52\x7e\xb4\xe1\xc8\xae\x90\xa7\xf3\xc2\xb6\xad\xdb\xa8\x7b\xea\x6c\xe8\x06\xab\x48\xe3\x53\x39\x15\xf2\x54\xe8\x4f\x7c\xaf\xa9\x06\x4e\x11\x4b\xbf\x11\x95\x67\x8e\x6b\x30\x04\xed\xea\xbc\x75\x43\x87\xa0\xf5\xbf\x0c\x02\x26\x93\xb4\x57\x98\xd5\x9b\xd7\xec\xd8\x1f\x14\x22\xf2\xe0\xa4\xa5\xc8\xf3\x2b\x31\x5d\xe6\x21\x90\x96\xbe\x72\xc8\x8a\xcd\xe9\x60\x21\x82\x7b\x60\x3d\x1a\x0f\x48\x6a\x22\x57\x39\xbc\x82\xba\xb9\x6d\x23\xeb\x0d\xa2\x76\x30\x7d\xda\x42\xd1\x88\x36\xba\x77\xea\x2a\xf6\x21\x0e\xed\x08\x10\xb2\xe8\x4f\x26\xe2\xc4\x36\x70\xab\x0a\x54\xe3\xd1\x0e\xed\x42\x76\xb5\x5d\xfe\x5c\x6d\xbf\x4d\xae\x2f\x4c\xac\xc1\x38\xa2\xe8\xb7\x65\x55\x16\x4d\xb9\x1e\x94\x7e\x21\x0a\x63\x04\xa3\x3c\x88\xbf\xee\xb3\xba\x79\x2c\x9b\xef\x1d\x1c\x04\x22\xa1\x91\x9d\xb6\xf3\xd6\x93\x18\x9e\xf5\x5a\xe4\x7e\x98\xa2\x89\x2b\x37\x8e\xd8\x87\x64\x5a\x02\x71\xe3\x59\xa0\xb0\xb8\x36\x58\xbf\xe8\x78\x79\x01\x46\xac\x33\x53\x2d\xba\xee\x35\x30\x0e\x41\x67\x73\x58\xb5\xbf\xdc\x02\xbd\xfa\xd6\xe0\x20\xf7\x03\x9e\xb0\xc0\x95\x4b\x6c\x6a\x18\xb8\x44\xf4\x1f\x33\xe9\xe9\xf8\x9f\xfe\xf6\x71\xe7\x0b\xb8\x5a\x2f\xe3\x90\x60\x11\x70\x18\xbc\x03\x37\x69\x28\xed\xe2\xb3\xad\xca\xf2\x93\x14\x13\x62\x03\x48\x7a\x3b\xda\xd7\x0b\x7b\x19\x59\xb7\x04\x40\x42\x42\x04\x92\xee\x2c\xcd\xc2\x4a\x42\xb4\xd1\xda\x5d\xd1\x46\x4d\xf3\x13\x1e\x12\x15\xe0\xa7\x10\x6d\xff\x64\x7e\x80\x78\xbb\xe9\x13\x04\x48\x43\x13\x06\x5e\xec\xd0\xf1\x58\xc1\x09\xda\xc0\x50\x3f\x00\x52\xa1\x88\x5b\x62\xdc\x6e\x68\xf1\x64\x23\x36\xb9\x1b\xab\x64\x82\x6c\x77\xe1\xf8\x2a\xf5\x20\x82\xbd\x29\xe7\x43\x47\xd0\x11\xc7\xdd\xac\xa3\xc6\x5e\x83\x12\x67\xd0\xd3\xa6\xf2\xe4\x53\x31\xa8\xa8\x97\xb6\xb4\x77\xe5\x93\x1b\xac\x13\x69\x92\x89\x6a\x45\x47\x0c\x18\xeb\x6a\xb9\x4f\x00\x35\x18\xa9\x6c\xca\xe6\xcd\xe7\x0a\x00\x4a\xda\xae\xfd\xee\xf8\xe1\x03\x72\x30\x86\x63\x26\x6a\xd5\x5e\x73\x31\x8a\x69\x0c\xa1\x12\x67\x80\xb5\xc4\xaf\xaf\x50\xda\xe0\x37\x7f\x90\x45\xc4\xfa\x84\x7b\x67\x9f\x6f\x33\xe0\x26\x3f\x38\x21\xa8\xc2\x03\xcd\xeb\xb6\x7c\xa9\xf5\xf0\xe5\xf6\x27\x0c\x03\x81\xad\x11\xcb\x01\xce\xca\xe2\xe9\xd8\x4d\x46\x13\xc6\x21\x66\x3a\xdb\xa7\xe7\xbf\xc9\x25\x35\xa1\x94\xde\xdd\x14\xe7\x5b\x17\xbc\x98\x50\xdb\x48\xcf\x89\xc2\x7d\xb2\x77\x98\x10\x12\xe9\x61\x73\xf0\xc9\x93\x34\x11\x0f\xb1\xce\x66\x4e\x90\x4f\x30\xe3\x26\x92\x94\x45\xbd\x7d\x46\x9b\x5e\x0d\xf2\x50\x43\x03\x85\xca\xa5\xfd\x1f\x12\x08\x12\xbb\x5d\xfe\x05\xaa\xb9\x71\xae\x82\xbe\x1b\xd9\x0d\x03\x6b\x83\x2f\xb4\x5e\xe8\x43\x56\x5c\xc0\x7e\xfc\x5e\x64\x98\x08\x89\xe8\x3d\x8b\x3a\x93\x2c\x2b\xca\xd3\x0d\xb2\x0d\x95\x01\x74\xe7\xa9\x87\x55\x1b\x26\x53\x24\x4b\x78\xeb\x97\x8e\x29\x19\x75\x23\x74\x98\x84\xde\x10\xe5\xd0\x3b\xb3\xba\xc3\x9c\x73\xe4\x17\x28\x71\x1c\xae\x2f\x86\x0b\xc1\x78\xa7\x3f\xd2\x06\x59\xce\xed\x7f\x58\xe6\x32\x49\x00\xd2\x6d\x62\xcf\xd9\x4f\x98\x50\xbf\x4d\x12\x5a\x89\xee\x0a\x84\x46\xe5\x94\xe2\x3c\x84\x20\x98\x94\x5a\x7a\xf2\xae\xef\x2c\xbb\x0e\xcf\xb3\xa8\xac\xdf\xed\xe7\x19\xf8\x4c\xd5\xd6\x9f\x96\x85\xa9\xea\x42\x49\x4b\xb4\x9c\xcf\x9c\x4d\xca\x35\x82\xff\x76\xdd\x0a\x31\x6a\x8c\x4f\x5e\x94\x54\x5a\xa8\xe6\x5b\x96\xe7\x93\xfb\x28\xb4\x12\x16\x79\x9d\x8b\xf3\x03\x34\x62\xfb\xd3\xbd\xfd\x9f\x59\x0b\x0e\xaf\x58\x05\x11\xa5\x7e\x21\xb4\xe9\xf6\xd5\x79\x39\x31\x18\xa2\x46\x45\x10\xf5\x95\xd2\x8d\x7a\x05\x7d\x9a\xf1\x17\xf9\x32\xd6\x34\xca\xa4\x91\xf5\x98\x7e\x07\x91\x5f\x5d\xaa\x1b\x3b\xd5\xe2\xd1\xcf\x83\x28\x40\xf6\xc6\xcc\x6c\x9e\x9c\xde\x50\x13\x69\x6f\xf6\x60\x95\xf8\xba\x5f\xdc\x9e\x77\x3c\x38\x89\x31\x25\xd9\xb9\x97\x7d\x18\x41\xcf\xbf\xd1\x46\x80\x82\x39\xc9\x99\x36\x86\xb8\x14\x01\xbe\xec\xd2\x75\xaf\x9f\x31\xd6\x5b\xef\x90\x15\xbb\xf7\x7e\x57\x62\x41\x10\x50\xac\x40\xed\x33\xd3\x55\x47\x58\x10\xb4\x19\x57\x6f\xb0\xfc\x5c\x36\x9b\x63\xee\x9b\x32\x2c\x08\x94\xc2\xd5\xa1\x29\xaf\x44\x0d\x2c\x19\x2c\xd5\x2c\x20\xdc\x76\xbb\xfe\xc8\xf2\x3c\x2b\xf6\x58\xa2\x9f\x87\x78\x0e\x7f\x2c\x0b\x88\xb6\x95\x8f\xf6\x2e\xe6\x65\xd9\x7d\x59\x24\x42\x69\xfb\xd4\x0d\xec\xcb\xea\x7c\xd7\x5d\x65\x64\x14\x06\xed\xae\xd0\xde\x73\x51\x58\x40\x03\xdb\x06\x70\x8d\xef\x0d\x60\x91\xfd\xfb\xd0\xf8\x7a\xfc\xed\x94\xda\x52\xe6\xd5\x62\xfb\xd4\x9d\x84\x87\x24\xf5\x90\x96\x2c\x1f\x12\x75\x58\x40\x85\xc6\xb5\xe4\xfe\xe9\x76\x77\x05\xcd\x1c\x57\x6d\x0a\xab\x75\x9f\x64\xc2\x3a\x10\xb4\x9f\x74\x06\x18\x73\xa1\x07\x0b\x98\xe2\x56\x6f\xc0\x66\xe0\x13\x9e\xf3\xfc\x67\x62\x13\x63\x75\x6c\x57\x43\x83\x05\x93\xe1\x56\xe8\xc6\x24\x01\xc7\xc0\x30\x3b\x1c\x73\x5b\x80\x5d\xc3\x7f\xea\xdf\xc6\x57\x99\x08\x2d\xad\xd2\x1c\x96\xb7\x7b\xb7\x67\x16\xa4\x91\x41\xbc\xfd\x37\x51\x3f\x96\x83\x1a\x3d\x0b\x52\x66\xe5\x8b\xac\xec\xe1\x0f\xab\x7f\x77\x53\x56\x4f\xc7\x63\x59\x74\xcc\x52\x16\xa4\xd2\x7a\x9a\xb5\xfb\x6a\x9b\xcc\xdf\x08\xd5\x94\x1e\x06\xc0\x82\x54\x05\xbe\x2a\xdd\x6e\x16\xab\xe6\xf5\xfb\x70\xce\x8a\x20\x49\x2d\x53\x04\xfe\x5d\x1e\x64\x06\xd7\x85\x98\xfc\x44\x91\xa4\x38\x35\x1e\xce\x5f\x00\x06\x06\x7d\x07\x16\x48\x93\x28\xe9\x79\xec\xe2\x0d\xac\x58\x8f\xc3\x3f\x8a\x4b\x9b\x5a\x16\xa8\xd8\xbe\xcf\x59\x91\x35\x56\xc6\x36\x2c\x4d\xe4\x2f\x52\x87\x12\x57\x1e\xf7\x0a\xd9\x87\xb7\xee\x9c\x67\xdd\x28\xa0\x14\x37\xf6\xd5\xbf\x96\xdf\x16\x8f\xb7\xab\xfe\xef\x1c\x43\x9a\x0a\x50\x4e\x6c\x2c\x34\xe5\xc7\x48\x6b\x87\xf7\x07\x9c\x2f\xd5\x19\xc6\xb3\xdb\x84\x89\x87\x43\x0d\x31\x11\xbb\xe2\x74\xd8\x95\x66\x77\xaa\x27\x84\x08\x7f\x53\x8c\x48\x31\xba\x7f\x87\xca\x42\x9a\xfc\xf5\x19\x13\xe2\x75\xbf\x66\x5a\x63\x7f\x6b\x5b\x65\xfb\x7d\xaf\xbf\xc5\x48\xc0\x88\xa6\x3d\xb2\x10\xeb\x8d\x23\x32\xfc\x30\x44\x62\x24\xd0\xca\x7b\x98\xde\xa9\x72\x0a\x5a\x1c\xfd\x70\x12\x00\xc5\x84\x1b\x9a\xd7\x27\xf3\x87\x17\xdd\x64\x24\x30\x40\xad\xc3\xcc\xc7\x1d\xa6\x98\xfe\x00\xe1\x22\x8d\x3c\x5c\xf3\xe9\xe3\x13\xaa\x32\x23\x61\xa0\x22\xab\xb4\x50\x5c\x81\x15\x0e\xf7\xa7\x08\x19\xc5\x53\x94\xd5\x5e\x14\xd9\x7f\xc1\x9b\x78\x30\x12\x26\x06\x85\x9c\xdf\x33\xf8\x88\x92\xee\xaf\x90\x58\x6c\xc8\xbe\x59\x34\x85\xa3\xf2\xf5\x67\x33\x29\xb2\x92\xb7\x9b\x9b\xbb\xc7\xc5\xbd\xff\x73\x14\x11\x4c\x93\x45\x81\x26\xd7\x58\xc6\x0c\xfd\x41\xca\xac\xff\xae\x12\xc5\x58\xd0\x98\x11\x1a\x6b\xee\x77\x54\x4b\xf0\x5a\x96\x65\xa5\xc7\x09\x02\x23\x8c\x87\xc8\x66\xd9\x79\x5d\x20\xff\x79\x1e\x68\xee\xd8\x79\x37\x15\xb4\x41\x44\x77\x84\x52\xea\x05\x02\x77\xf5\x09\x71\x42\xe3\x85\x82\x70\x05\x28\x3e\x75\x40\x6f\xde\xf6\x71\x7c\xb5\x25\xb7\xe3\x0d\x42\xf9\x1f\x84\x73\x82\xeb\xc2\x54\x46\x62\xc6\x10\xac\xab\x9c\xe2\x12\xd8\xba\xd9\x6f\x23\x57\x81\xf1\xe9\x62\x66\xfd\xcf\xee\x96\x4f\xd6\x00\xe3\xe6\x6e\xbd\xd9\xfa\x13\x26\x22\x46\xa8\x72\x73\xe8\x26\x43\x1a\x13\xec\xda\x59\xd4\xad\x45\x27\x75\xe0\x66\x46\xd2\x94\x7b\x4d\x05\xfb\x52\x77\x37\x7b\x7c\x33\x53\x15\x0c\x90\x2f\x0b\xad\x31\x82\x13\xf9\xca\x35\x74\x67\xa3\xaa\xf6\x63\x06\x19\xb9\x95\x68\x2c\x6a\x17\xaa\x9d\xbf\x32\x21\x00\x15\x7d\xda\xbd\xbe\x71\x52\xff\xe3\x77\x9e\x08\x69\x90\x6c\x74\xb5\xbc\x42\xbd\x8c\xcf\xb1\x0f\x8c\x08\x15\xa1\x0c\xa9\xd3\xb4\x58\x54\x4d\x56\x37\xf7\xd8\xa3\xfd\xb4\x81\xc6\x88\xd0\x14\x63\xe1\xbb\xda\xa9\xed\x78\x35\x11\x77\x5c\x6a\xc1\xac\xce\x4f\x67\x88\xb2\x46\x72\xfd\x27\xe7\x93\x40\x10\x23\x93\x15\x66\x68\xd2\xc1\x88\x8a\x74\xe8\x1c\x21\xee\x0e\x87\xb2\x6a\x44\xde\x4d\x48\xd5\x06\xab\x9e\x27\xae\x61\xd3\x66\xf1\xe3\xdb\xaf\x69\x88\x28\x2f\x75\xaa\x9b\xf2\xf0\x0c\x7a\x20\x85\x33\x5c\x65\xfc\xf0\x34\x02\xd9\x43\xf2\x1f\xe1\x63\x84\xe8\xf4\xa3\x8c\x40\x68\xa6\x3c\x9d\x87\xa5\x60\x46\x4c\x62\x5d\x83\xdb\xeb\xa9\x94\x9f\x11\x9e\x4c\x69\x07\x85\x81\xb4\x52\x03\xbe\x22\x7e\x53\x56\x90\xed\x27\x20\xf7\xc1\x45\x85\x81\x8a\xc1\x15\x42\x7f\x00\xbc\xe5\x67\xeb\x1b\xe7\xcf\x47\x62\x85\x54\x20\x2c\x4d\x77\x8d\x90\xb1\x71\xba\x1f\xaa\x48\xd0\x39\x78\xf6\xe4\x34\x16\x12\x1d\x59\x81\x48\x75\x1c\x9b\x9c\xb0\x30\x8c\xa3\x54\x0c\x20\xd1\xbb\xa2\xd4\x23\x13\x64\x16\x46\x41\x84\x8c\xeb\xbe\x35\x79\x41\xfc\xf9\x0a\x4c\xc3\xc2\x28\x94\xce\x8c\xd3\x7e\xc7\x4b\x0d\xd5\xc4\x30\x65\x50\xdf\x64\x61\xa4\x09\x72\x23\xbe\x43\x55\x88\x43\xc7\x30\x1e\x24\x6b\x2c\xa4\x31\x49\x53\x97\x67\x3d\xb7\x29\xe2\x05\x04\x83\x85\x54\x48\xd5\xc1\x30\xdd\xa3\x1c\xad\x5a\x21\x0b\x19\x2e\x79\x57\x79\xf9\xb3\x2a\xbd\xd2\x99\xff\x0e\x26\x24\x8a\xda\xb4\xe1\xb2\xe3\xcf\xed\x4c\x59\xed\xe4\x60\xd5\x0c\x79\x62\x04\x8a\x56\x59\x7a\xca\x18\xcc\xc9\xc2\x58\x06\x9e\x96\x8c\x72\x23\x27\x75\x81\x8d\x61\x61\x42\x24\x2e\x07\x47\x97\xee\x3e\x9c\xdb\xdb\x94\x95\xa7\x7a\x75\x90\x79\xb7\x0e\x87\x69\x18\x89\x0e\xac\x7d\x38\x36\xb0\x23\x64\xfc\xac\xd2\x54\xe1\xd7\xed\xb3\x36\x0b\x14\xdd\xac\x14\x91\xc6\x9f\xd2\x46\x29\x4b\x71\xec\xae\x5e\x50\x1e\x3b\x71\xd4\xdb\x32\xd7\x93\xb6\xcb\x3f\xc6\x2e\x88\xd3\xbf\xf6\x73\x58\x30\xab\x53\x23\x4f\x55\xf1\x52\xd4\x9d\x6c\x11\x0b\x05\x17\xe8\x35\x21\x30\x02\xef\xa8\xd5\x37\x70\xe1\x4f\xc0\x42\x01\x91\x51\x43\x1c\x60\x2e\x7c\x97\x67\x7c\xbf\x64\x1a\x32\xdd\x91\x43\xca\xca\x3a\x1b\xfb\xd3\x48\xc9\x65\x3a\x12\xab\xfa\x45\x3e\xed\x3e\xa7\x02\x15\x39\x2c\xc5\xb3\x38\x3f\x21\xd8\x52\x41\xd1\x88\xfd\x50\x94\x87\x85\x8a\x58\xb4\x63\x97\x3f\x6f\xa0\x47\x34\x4f\x92\x43\x16\x2a\x6e\xfb\x1c\x16\x49\x76\x57\xd4\xa7\x0a\xeb\x70\x53\xea\xc1\xb8\x32\x3a\x9e\xa6\x5a\x46\xf8\x8b\xec\x12\x6e\x01\x59\x17\x3f\x6a\xf0\x38\x20\xd0\xca\x61\x9a\xb0\xed\xd6\x4c\x5e\x0c\xa3\xb5\xf4\x09\xab\x5f\x51\xe6\x77\xaa\x88\xd0\x04\x93\x7c\x17\xc0\xda\x36\xaa\xf7\x20\x40\xd6\x69\x39\x0c\x22\x22\x92\x46\x78\x13\x8f\x55\x79\x28\x97\x6d\xd2\x9e\x95\xc5\x00\xcb\xc7\x22\x22\x12\xec\xb1\x66\xaa\xdc\x34\xa5\xdf\x90\xa3\x30\xb0\xf2\x9d\xd6\x7b\x6e\x6c\x23\x3c\x0e\xd0\xa2\x30\x50\xa8\xf8\x8a\x75\xf6\x30\xdc\xd9\x3d\xfc\x56\xd4\x2f\xb5\xd8\x03\x09\x02\x94\x37\xea\x2e\x29\x04\xaa\x5c\x71\xfa\xa1\xd4\x33\xd6\xdb\x2c\x8a\x12\x8a\xa9\x6c\x1b\x0a\xa3\x4c\xf3\x24\xca\x8e\x22\xc7\x8e\x77\xda\xd6\xa0\x37\x4d\x75\x52\x08\x50\xd8\x96\x28\xd4\xff\xe5\xdc\x8a\xa8\x64\x32\x76\x9a\xc1\x9d\x62\xac\x3b\xc6\x42\x83\x88\x8e\x87\xd3\xc3\xe9\x57\xc0\x66\x16\x31\x4e\x41\x0c\x91\x41\x65\xcf\x95\xee\x3d\x75\xe6\xca\x00\xfe\x04\x92\x61\xa9\xf7\x55\xd4\xaf\xab\x9f\x59\xdd\x4c\x42\xb9\x88\xa9\x18\x75\x83\x0e\xe2\x0d\x9e\x72\x7d\x73\x52\x6f\x23\xb9\x17\x16\x71\xca\xb0\x84\x64\x55\xe0\xb1\x8e\x21\xf2\x9b\x12\x25\x17\xee\x85\x9c\xdc\x3b\xae\x6c\xa3\xce\x2a\xd1\xce\xb0\xbd\x58\xc4\x8d\xe0\x1e\x13\x7f\x5b\x09\x05\x43\x10\x1e\x8b\x62\x9a\xe0\x9e\x7a\x2b\x8a\x21\xd7\x95\x45\x71\x6c\x99\xd9\xcd\xc4\xb9\xf3\x53\x3c\xe4\xd8\xf5\x94\x45\xb1\x61\xd2\xbd\xf3\x4d\x0e\x57\x03\x22\xdd\xf8\x9e\x24\xa9\xf5\x8d\x69\xf0\x81\x5f\xc1\xb0\xf4\xcc\xa2\x44\x31\x70\x42\x48\x3f\xca\xea\x0d\xaa\xe7\x01\x26\x60\x32\x79\x13\x05\x56\x6d\xe4\x24\x31\xe8\xbd\x16\xd5\x5b\xbb\xe7\x4e\xd9\x16\x2c\x4a\xb4\x95\x62\x16\x5a\x2f\x2a\x99\x4d\x89\x2f\x2c\x4a\x95\x66\xcc\xbb\x69\x0d\x56\xc0\x48\x08\x49\xd5\x40\xe4\xb6\x7a\xcf\x14\x4c\x56\xb3\xfe\x7b\x64\x20\x10\x43\x66\x51\x26\x3f\xfd\x49\x24\x31\xa8\x7a\x61\xb2\x42\xaf\x45\xf1\x76\x75\x1e\x61\x62\xbe\x2c\xb9\xb1\x48\x46\x56\x7c\x0a\x09\x60\xdb\x0a\x7e\xa9\x18\xe8\x3e\xa7\x62\x22\x5d\x7b\xeb\x3e\x33\x0e\xe3\xf8\x29\xc1\xb7\x1d\x1f\x52\xf7\x00\x77\xed\x3e\xad\x3e\xf3\x73\x63\x91\x36\xda\x57\x6e\xb7\x20\x0e\x3d\x83\x85\x45\x90\x6a\xc7\x80\x75\x00\xd7\xe1\x59\xfc\x18\x41\x62\xdf\x58\xb9\xca\x0a\x0d\xfa\x2a\xcf\x0a\xfd\x4d\xd4\xaf\xd1\x9c\xc4\x31\x7e\x42\x5a\xda\xec\x31\x17\x0a\x93\xa2\xf9\x39\x01\x32\xf2\x7c\x28\xdb\xad\xac\xb7\xe5\xd2\xb5\x51\xed\x84\x24\x9f\xab\xcf\x8d\x7f\xa4\xa1\x1d\xf4\x64\x60\x03\x1a\x8e\xa2\x84\xc8\x18\x89\x71\x04\x22\xd6\x76\xed\x32\xda\xc9\x08\x33\x1a\x84\xb6\x15\x64\x33\xb9\xaa\x23\xae\x77\xc7\xa3\x40\x33\x27\xcf\x54\xe9\xc7\xaa\xfb\x3b\x0b\x50\x69\xc0\x25\x1a\xb6\x5e\x64\x56\x3f\x8f\x59\x5f\x0f\x40\x0d\x6c\x0b\x79\x50\x90\x1d\xbf\xe6\x05\x33\x4a\x62\x5b\xaf\x44\xf0\xed\xf7\xd5\x66\x7b\xf7\x78\x3b\x32\x1a\x61\x94\x88\x18\xc1\x44\x1b\x14\xb6\x44\xbf\xe0\xdf\x46\xe5\xe6\xc9\x16\x7b\xf9\x25\x51\x68\x94\xf2\xc8\x38\xfc\xc9\x8b\xfd\xd4\xf4\x84\xd1\x28\x0d\xf0\x6d\x40\x1f\xdc\x51\x50\x31\x39\x9b\xa6\x92\x7a\x29\xc7\x36\x8a\x1b\x07\xba\x6e\x14\x8d\x02\xe5\xb2\xf8\x4d\xb6\xf7\x53\x8c\x52\x0a\x58\x4b\x92\x08\xe0\x5a\x96\x65\x4f\x51\x60\x94\x72\x8a\x32\xc3\xb6\xeb\xbf\x2e\xcb\xc3\xd5\xd9\xf6\x4d\xc6\x57\x40\xa5\x41\xa4\x9f\xb7\x46\x1f\x08\x34\x31\xda\x86\xbc\x0a\xf7\x21\x64\x24\x9e\xbb\xbf\x6b\x8d\x98\xa6\x2e\xa6\xe9\xf0\x3e\x7e\x80\x09\x85\xad\xe9\x55\xba\xde\xc9\xfc\x34\x59\x45\x68\x2c\x62\x44\x37\x36\xa7\xaa\x78\x32\x66\xf2\x83\x63\x01\x58\x27\xad\x8f\xe2\xa3\xfb\xb9\xb1\x8c\x9d\xb6\xc8\xe1\x90\x35\x0d\x40\x3d\x35\x66\x61\x34\x21\x16\x55\x8c\x05\x46\x38\x78\x93\xe6\xb2\xba\xb4\x25\xff\x9b\xff\x76\x27\xb6\x76\xac\x30\xe8\xfc\xd9\x07\xef\x07\x44\x26\xec\x0d\xeb\x5d\x2d\xea\xf7\xf2\x6d\xba\x0c\xd3\x44\x71\xd4\x67\x19\x54\xf2\x89\x3f\x49\x1a\xa7\xb6\x35\xe0\x1a\x17\xc8\xe4\xb0\x02\x15\x63\xad\xb6\xd1\xbf\xc9\x64\x52\xa5\xd2\x56\x99\xff\x25\xde\xb3\x36\xff\xea\x77\x40\x9a\x2a\x8e\xf0\xa2\xae\x9f\xe4\x83\x82\x4f\xe6\xa7\x88\x53\x84\x9e\xdd\x97\xfb\x5b\x68\xbc\xb6\xd6\xf4\x35\x1c\xae\x16\x54\x12\x92\x38\x26\xb1\x6e\x40\x1c\x10\x4e\xd6\xde\x0f\x3a\xb9\x11\x92\x9a\xae\x35\x56\x65\x28\x53\x33\xfe\x72\x09\xe0\x59\x0d\xcb\xe5\x37\xa7\x59\x15\xf8\x9f\xa2\x62\x82\xd9\xf9\x07\x64\xfb\xd7\x06\xf4\xf7\xb2\x01\xdc\x72\xea\x8b\x13\x29\x11\x7b\x8b\x08\x2f\x40\xff\xc7\x74\x88\xa6\x98\x92\xd8\xd5\xe8\x26\x6f\xcf\xf9\x85\x0c\x18\xa3\x9a\x87\x51\x32\xa9\xb3\x4f\xce\x09\xb1\xc0\x3a\x58\x2d\x0a\x74\xf2\x18\xad\xaa\x14\x64\x12\x3a\x83\xa3\x01\xa2\xc4\x11\xb7\xfc\x8f\x04\xc3\xb0\xed\x25\x4f\x67\x2c\x30\xb7\x21\x74\xbb\xf1\x22\x92\x74\xb6\x6c\x4b\x4d\x48\x45\xea\x97\x94\xe3\x31\x2b\xf6\xbd\x72\xf3\xec\xdc\x66\x41\x18\xe3\x27\x0e\xe2\xe7\x43\x56\x9c\x1a\xa8\x9d\xcc\xca\x28\xac\x62\x01\xf0\x88\x7a\x06\x7f\x23\x9c\x9b\xfc\x01\x8a\xa6\x46\xea\x75\x37\x90\xa8\x28\x8e\x06\x03\xd7\x70\x3c\x59\x13\xf5\xb9\xac\x9a\x85\x21\x24\xa9\x87\x28\x8f\xa5\xea\xc6\xf7\x9c\x45\x84\xe3\x43\xc2\xd0\x43\x74\x1a\xc7\x8c\x45\x32\xb6\xfa\x65\x08\xa6\x1d\xe0\x1e\x5e\x8a\xcc\x43\xa5\x18\xa3\x2c\x45\x96\xee\x4b\x0d\xd5\x8e\xf5\x7f\xb5\xfa\xc8\x98\x6a\x5a\x74\x45\x77\xc8\x24\x76\x8a\xf9\xda\x4d\x9e\xff\x80\x6c\x3c\x8d\x59\xfb\x9c\x47\x0c\xde\xdf\x85\x7a\x3b\x96\x9f\xfd\x06\x96\x30\xde\x09\xa3\xcc\x97\x09\x19\x27\x09\x42\x89\x2c\x33\xbd\x86\x5e\xf6\x92\x31\x1e\x69\xac\x52\x5c\x65\x79\x6e\xb1\x7d\xdd\x11\x26\x84\x55\xad\xd4\xe8\x4a\x7a\x19\xd3\x30\x9e\x70\xe2\x22\xcf\x5d\xf3\xb9\x09\x0d\x63\x5c\x24\x88\x8f\xcc\x0a\x65\x21\x71\x96\x05\xe1\xe4\xd6\x67\xe0\xce\x8c\x71\x63\x70\x45\x7f\x84\x8f\xab\x4c\x7f\xa9\x54\xcd\x58\x4c\xe3\x44\x74\xaa\xe1\x13\x92\x95\x1f\x23\x88\xd7\x7d\x5c\xc3\x31\x3f\x8f\x90\x9e\x7e\x8c\x4a\xb1\x9c\x52\xe7\xe2\x1d\xec\xde\xd9\x23\x6a\xba\xe7\x98\x10\x8e\xf9\x82\xc8\xaa\xeb\x81\x13\xaa\x53\xf8\x98\xc9\x81\xfc\xe7\x28\xc3\x5a\x9b\x55\x4b\x1f\xd9\x85\x32\x96\xf0\x18\xa3\xf8\xdd\xbe\xcc\xf5\x4b\xe1\x90\x83\xe3\x9f\x99\x08\x16\x58\xfb\x80\x62\x0f\xef\x59\x73\xee\xf3\xe7\xf9\xfb\x92\x68\x02\xbd\xd0\xe7\xfa\x33\x35\x57\xc6\x12\x13\x39\x57\x99\xde\x64\x02\x89\x41\xcd\x9c\xb9\xdd\xf8\xb3\x29\xb5\x4a\x73\x47\x71\xfe\x9e\xd5\xf3\x56\xfe\x8c\xa5\x32\xc0\x20\xb7\xab\x4c\x56\xe5\xa1\x6b\x45\xcd\xf5\x96\x98\x88\x35\x06\xd7\x4e\x65\x2a\x83\xca\xcb\x69\xfb\x01\x3a\x8c\x3d\xde\x2e\xcf\x2c\x9c\x62\x04\xf2\x65\x4c\x06\x56\xaf\x4e\x66\xee\x3b\x9e\xa1\x1a\x76\x0b\x99\xd2\x56\x32\xbe\x86\x66\xf5\xb3\xa9\xc4\xd5\xc4\xc6\x70\x7c\x49\xca\x98\xd0\x0b\x82\xef\x9a\x8f\x12\xa9\xd7\xab\xff\x5c\xb5\x93\xc8\x9f\x51\x8b\x04\xe9\x7e\x16\x33\xb0\xf3\xc4\xf6\xaa\xf4\x1a\x6c\x8c\x41\x44\x4c\x6f\xba\xea\x74\x1d\x27\x71\xa3\x1b\x6a\x54\x84\xd5\x86\x97\xc2\xd7\x2f\xef\xc7\x60\x80\x3e\x9d\xe4\x81\xb4\xd0\x12\xab\x83\x67\x97\x2d\xd5\x04\x3f\x9d\xfc\xf7\x88\xee\xed\x2f\x97\x07\x8a\x6a\xf0\xc2\xdd\xae\x15\xec\x0f\x69\xe6\x11\x93\xed\x1a\x37\x76\x3c\x1f\xbd\x5c\x9c\x68\x86\x81\xc0\x53\xb5\x3f\x55\x62\x32\xb7\x79\x18\x0a\xcc\x25\x57\xa7\xaa\xbc\x2d\x73\x3d\xf4\xaa\x75\x43\x22\x19\x33\xed\x01\x19\x87\xac\xf0\xba\xfd\xee\x30\x65\x9c\xc0\x8c\x76\x86\x7f\xb7\x38\x4d\x29\x56\xc7\x3d\xfa\xca\x6a\x4c\xfb\x37\x30\x21\x7e\x1c\x8b\x62\xec\x67\x67\xf5\x6a\x81\x1c\x08\x3d\x2a\x2e\x70\xae\x03\x1f\x41\x0f\x4c\x48\xbb\x89\xea\x34\x3f\xc6\xaf\xba\xfb\x68\x4c\x15\x4f\x7c\xe5\xef\xf6\xf1\x69\xf2\x0b\x63\x06\xc8\x0a\x92\x65\xf9\xf6\x06\x70\xf4\x20\xe9\x64\x2e\xe8\xe2\x71\x1a\x7b\x6e\x78\xbb\x28\x7f\x2b\x4f\xd5\x63\xe9\xb3\x20\x1e\x0b\x8b\x76\xdd\xbc\x96\x47\xd7\x23\x1c\xfd\x8a\x04\xb8\x7f\x72\xdd\x12\x71\x29\x87\x34\x9a\x69\x3c\x0d\xad\x48\x93\x05\xd6\xad\x7e\xba\x55\x60\x0e\xe7\xc7\x78\x2a\x22\xac\x48\xfd\xb9\xd9\xfc\x79\xf5\xcb\xb2\x11\x17\xa9\xc1\xc0\xff\x15\x44\xd5\x5c\xf5\x95\x61\x2e\xc0\xe0\xf6\x55\x63\x02\xb5\x3d\x1f\xc7\xda\xbe\x8c\xcb\xd0\x5a\x28\xb5\x5b\x8c\x4d\x48\x66\xc3\x14\x2e\x23\x8e\xb6\x52\x07\x91\x67\x0a\x9c\x56\x87\xbe\x29\x2d\xef\x7c\xfe\x75\xe6\x92\xa5\xa8\x2c\x6f\x81\xc9\x6e\xb3\x9e\x9c\x7f\xfa\x11\x6e\x25\xbb\x2c\x37\xa6\xef\xa2\x73\xa5\x34\x36\x67\x45\x75\x59\x07\x1a\x5f\xaa\x8e\x94\x4b\xf9\xd0\xf1\xf4\xc2\xdc\xa6\x7f\xa1\x35\x8d\x11\x04\xd4\xfe\x84\x99\x5e\x11\x07\x22\x95\xf0\x8b\x97\x7d\xe5\x86\xe1\x39\x87\x50\xc7\xbc\xf3\x0b\x6e\x63\x99\xcd\x66\x14\x35\x72\x10\xcc\x5e\x8b\xb5\xf2\x74\x6c\xa6\xdf\x26\xa0\x91\x01\x74\x8a\x71\x90\x06\x11\xdd\xb7\x28\xfc\xed\xbe\x2a\x26\x51\x48\x11\x93\xfd\x2a\x2a\x58\x55\x2a\x0c\x7e\xfb\x5c\xed\x98\xc5\x61\x98\xe0\xf4\xb6\xa5\x56\xdf\xaf\xbc\xad\xca\x8f\xe6\x75\x59\x82\x31\x99\xca\xa6\xc6\x09\x2c\x0e\x19\xf5\xe5\x16\x8b\x11\x15\xf9\x0d\x80\x85\x05\xcd\x3e\xae\x38\x4a\x84\x4b\xd0\x9b\xf2\xa1\xec\xa9\x95\x2c\x8e\x04\x09\x68\x27\xab\x88\x58\x6e\xbc\x77\x3d\x06\x93\xc5\x34\x50\x58\x54\x38\xda\x2e\x24\xa6\x1e\xdd\x31\x4a\x22\x6f\xb4\x2c\x4e\x85\x7a\xbd\x9e\x1a\x01\xb3\x98\x51\xe7\x61\x8d\xa2\x6e\xb3\x65\x9a\xb8\x5d\x72\x1c\xac\xd2\x82\xa2\x66\xde\x9f\x38\xe6\x11\xb6\xe1\x7c\x9a\x75\x7b\xfd\x3c\x63\x30\xcd\xe2\x84\x1a\xee\xed\x37\x7d\x58\xe2\xf8\x0d\x7e\xc1\x8f\x93\x98\x2a\xa7\xc4\xdb\x7e\x72\x5b\x3e\x8b\x7a\x56\xe7\x91\xc5\x09\x58\xc8\xfb\x62\xf9\xf8\xe8\x3f\x9e\x92\x84\x9a\x41\x78\x3d\xe3\xd2\xcc\xe2\x34\xa2\x60\xdd\xe2\xf2\x66\xa2\xd1\xcb\xe2\x94\x86\xa1\x75\xfc\xac\x9b\xaa\x3c\x2f\x0a\xbd\x81\x42\x6f\xcb\x36\xea\x17\x7b\x18\x28\x23\xb0\x38\x4d\x6c\xa9\xe2\x58\xc1\x51\x54\xa3\xc6\xe3\xd7\x2d\xfe\x38\x95\x5c\xb1\x4b\x1f\xa1\x2f\x1a\xb4\x71\xaa\x63\xdc\x0a\xed\xab\xd2\x17\xa5\x62\xa1\x01\x22\xaf\x72\x57\xbc\x5d\xf6\x99\x27\xdf\xad\x58\x42\xdc\x26\xe2\xd4\x97\xeb\xa1\xee\x0b\x8b\x35\xd3\x76\x55\xc3\x00\x60\xa4\xdc\xcb\x62\x2d\xb5\xf2\x4c\xcd\xfd\x49\x54\xdd\x65\x00\x63\x4e\x4d\x12\x16\x79\x6e\xb3\x83\xee\xb1\x02\x87\x5e\x2c\xd2\xaa\x0f\xb7\x77\xe9\x41\xf8\x92\x6a\x6c\x0c\x4d\x2d\x53\x16\x61\x32\xcf\xe2\x54\xbb\x0a\xa7\x1d\x90\x04\xa1\x00\xdf\xf1\xee\x35\xe1\x97\xd3\xaa\x48\x12\xa4\x16\xd4\xbf\x7c\x7a\x7e\x5e\xad\x9d\xec\xf4\x6e\xfb\xbc\xed\x4e\x24\x62\xd1\x39\x67\xba\x5f\x37\x12\x1d\x67\x49\xa0\x43\xc4\xfc\x2d\x7b\xe0\xf3\xdf\x2a\xd1\xb6\xb1\x37\x56\xa9\x72\x51\x37\xeb\x1e\xa2\x97\x10\x19\x87\x43\x1e\xb0\x7d\xda\xb8\x70\x25\xf3\x6b\x79\x12\x82\xc2\x4d\xec\x2f\x7f\x0e\x9a\x58\x53\xff\xac\xf6\x9d\xd2\xe1\x5b\x98\xd0\x44\x63\x6c\xe0\x63\x0c\xcc\x1b\x1f\x60\x2f\x64\xf9\x73\x7e\xfd\x49\x58\x48\xb1\x5b\xb7\x53\x22\xcf\x2d\x35\xf9\xff\x8c\xaf\x65\x09\x27\x31\x6e\x3a\xcb\xe5\xba\x8f\xf8\xfd\xb1\x28\x46\x6d\x17\x0f\xe8\x2c\x51\x82\x6a\x7c\x15\x3c\x02\x1d\x4f\xde\xd9\xff\x2b\x67\x8a\x25\x3c\xe5\x68\x08\x8e\xc1\xef\xe6\xb5\x3c\xe5\x28\xf0\x7c\x75\x6a\xb0\x0b\xa7\x37\xe5\x8d\xc8\x72\x7f\x5d\x31\xb1\xea\xe5\xf8\x1c\x1e\xd0\x2c\xe8\x33\x6d\x3e\x86\x12\x94\xb1\x33\x03\xeb\xa4\xe3\x59\x12\x43\xe4\x59\x5a\x6b\x51\xbc\x05\x1e\xef\x94\x24\x84\xe2\x12\x72\x2a\xda\x97\xe4\xae\x5e\x35\xaf\x43\x9c\x34\x4b\x12\x69\xb0\x71\xf8\x51\x65\x0d\x38\x1d\xe7\xf1\xc3\x4c\x8c\xe5\x7b\x34\xe2\x0d\x1c\xf3\xcf\x16\x0b\x3a\xe9\x13\xff\x65\x42\x70\x09\x9e\x15\xd0\xdb\xb6\x0d\x05\x1d\x59\x22\x53\xcd\x94\x8f\xd7\xde\xe1\x53\xf9\x31\x96\x48\x61\x4d\x9d\xb4\x55\x5e\x77\xe4\x49\x77\x50\x85\x1a\x7b\xf1\x08\x66\xc7\x4f\x3d\x88\xe2\x24\xf2\xc9\x1b\xa8\x03\x5b\xb9\xc0\x4b\x42\xfb\xc4\x8e\x81\x7c\x53\x6e\x3f\x69\x47\xf9\xcf\xd2\x04\x51\xa6\xb6\x25\xbc\xad\x44\xd6\xb5\x38\xfa\xb5\x30\xd1\x40\xb0\xce\xfe\xfb\xe6\xe9\xf1\x28\x9a\xd7\xdd\xa5\xc3\xf7\xf8\x11\x6a\x63\x10\x12\xb1\x2f\xa6\xa4\x6e\xff\xdb\x80\x85\xa8\xe3\x29\xda\xeb\xc5\xb0\x6c\x20\x4c\x36\xb9\x48\xe0\x01\x22\x76\x9a\x57\xf8\x51\x76\x2b\x60\x02\x90\x22\x96\x43\x59\x6c\x7b\x17\x96\x5f\x74\xf3\x13\x43\xad\x26\xcd\xfd\xd3\x76\xbb\x5a\xff\x89\xe2\x19\xbb\xc5\xf5\xf5\x7a\xb5\xd9\x74\x63\x04\xc1\x25\xc3\x56\x80\x77\x50\xe8\x5d\xd3\x97\x46\x12\xa3\x22\x0c\xb2\xfb\x1d\xc4\x92\x74\x86\xf9\x63\x4a\x62\x8a\x01\xc6\xf6\xcf\xe7\xd5\xee\x66\xbd\xba\xbb\xfd\xb6\x5d\xad\xbb\xa3\xa9\xa4\x0e\xa4\x7c\x3a\x23\xa7\xcc\x1f\x30\x0a\x4d\x84\x86\xc6\x69\xc5\x98\x1f\xce\xd2\x30\x14\x48\x38\xb9\x7b\xbc\xdb\xde\x2d\xee\x77\x8b\xbb\xf5\xf5\xfa\xe9\xb9\x3b\xcc\xac\xec\xe1\xfa\x6e\xb9\xba\x5a\xdc\xdf\xff\xbb\x3b\x90\x50\x5c\xc6\x4e\x45\x9e\x15\x6f\xb3\x01\x7c\x1a\x4a\x89\x8f\x6b\xb3\xb9\x1e\x86\x8c\x69\xa8\x21\xb2\x21\x65\x8f\xb8\x1f\x3f\xe9\x34\x0a\x6c\x0b\xdd\x26\xc1\x50\x63\xe9\xac\x76\xb2\xad\xca\x09\x01\x5c\xa3\xf1\xd4\x01\x8a\x66\x51\xe8\x17\xaf\xa9\xc2\xd2\x88\x58\xdc\x6e\xfb\xde\x5e\x67\xef\xf3\xc5\x82\x34\x0a\x01\x55\x6d\x7c\x0e\x5b\x2f\xcb\xaa\x3f\x05\xd7\xc2\x02\x49\xa1\xdd\xa4\xfb\xfb\x45\x4d\x90\xf4\x32\x4a\xd7\x13\x2d\x41\x37\x88\x05\x0c\x9d\xb1\x96\xdb\xcd\x72\xf4\xcb\x19\x49\x88\xb1\x11\xec\x11\xea\xd7\xcc\x34\x57\xdd\xee\x92\xb2\x88\xc5\x72\xe2\x77\x10\xa6\xdd\xd1\x38\x4c\xbc\xa5\x82\x68\xd4\xeb\x95\x35\xf6\xf4\xa2\xb0\x03\xf8\x46\xca\x12\x5b\x34\x44\xda\x42\xf7\x79\x99\x60\x1f\x18\x2d\xde\x97\x65\x5e\x56\x93\x8b\xe6\x21\x41\xc0\x1b\xd2\x2b\xb2\xa2\x03\x02\x0f\x73\x47\x9f\x32\xa5\x3c\x06\x7c\xcf\x9c\x26\xb6\x0d\x13\x6e\xcb\x72\x32\x03\x62\x12\x8a\x09\x3e\xe9\xc9\xb4\x19\xd8\xe4\xbb\xe3\x90\xe2\x06\xf3\x08\x1f\xae\x8e\xfb\xcb\x3e\xf7\x6c\x8a\x96\xc6\x09\x45\xb0\xdd\x36\x3b\x40\x9f\x39\xa4\x31\xc4\x89\x0b\xa4\x7b\x17\x21\x6b\x54\x3c\xbe\x90\x24\x30\xd6\x73\xa7\xb0\xe4\xb9\xf9\x89\x9d\x08\x83\x78\x8b\xd2\x31\xef\x76\x68\xd1\xfd\xdb\x10\x4b\xf4\xff\xd8\xff\xfa\xc1\xda\x0a\xa3\xb5\x0f\xce\x6e\x12\x9f\x54\x30\xd3\xc4\x24\x49\xaf\x8e\xde\x65\x0a\x93\x9a\x55\x9a\xa6\x8a\x84\x1d\xcb\xea\xb5\xde\x64\x85\x82\x7b\x51\x37\xdf\x86\xec\x58\x3f\x58\x08\x8c\xe7\xb6\xaf\x70\x95\x35\xaa\xcc\x8a\x25\xa2\x18\x47\xd3\x32\x15\x46\x25\x5d\x2c\x05\x43\x5b\x62\x96\x0a\xc2\x50\xfb\xb0\x5f\xa2\x6e\xef\x17\x2f\x97\x25\xc8\xc9\x8f\x11\x44\x47\x4e\x31\x81\x4c\x7e\x80\x70\x0b\xef\xc1\x01\x63\x2d\xad\xce\x1d\x94\x81\x41\x60\xbf\x65\x6d\x0f\x3c\x9f\xe6\xbf\x46\x52\x8a\x6d\xbd\x53\xed\x66\xe1\x4d\x26\x87\x3f\x4d\x72\x81\x8f\xea\x16\x9a\xeb\x73\x21\x0e\x99\x5a\x8a\xca\x79\x7b\x0e\xab\x5c\x7e\xb8\x64\xe0\xa9\xc9\x6a\xa0\x49\xe6\x0f\xab\x28\x09\x3d\x51\xa5\x4d\xff\xb3\x62\x7f\x03\x48\x67\xab\x2f\x5e\x28\x25\xac\xab\x81\xaf\x27\x5d\xdf\x3d\xd6\xd6\x99\xa9\x2e\xf3\xf7\x5f\xc8\x6c\xb2\x54\x73\x6b\x25\xb2\xaf\x44\xd1\x6c\x9a\x99\x0a\xc3\xf4\x03\xb1\xc1\xd0\x1a\x97\x7a\x59\x36\x75\x6f\x9d\xc1\x52\xad\x13\x84\xbb\xde\x42\xd3\xde\x80\xbb\xc2\x94\xa3\x35\xc3\x10\x8e\x6b\xc6\x66\x00\x10\x99\xdd\x36\x53\x63\xb4\x8e\x7a\x29\x9d\x45\xd1\xbc\x66\x5e\x90\x94\x89\x80\xa4\xa9\xbb\x43\xd7\xd7\x37\xe3\xdb\x27\x82\x50\xcb\x2e\x66\xff\x56\x9e\x6a\x4f\x53\xae\xbb\x8f\x47\x01\x66\xaa\xed\xa6\xd2\xd7\xdf\xfe\xd1\xff\xd7\x78\xda\x25\xa3\x63\x93\x7a\x9d\x08\x68\x12\xa6\x3e\x7d\xae\xf6\xb0\x14\xc7\xae\x40\xf5\xdc\xb3\x03\xea\x4f\x68\x4f\x4c\x04\x2c\x45\x72\xbe\x06\x95\xb7\x99\xe1\x2b\x88\x66\x50\x46\xed\xbe\x88\x84\x31\xd2\x3c\x0e\x59\xf1\xcf\x53\x59\x9d\x7c\x11\x56\x10\xc1\xa9\x74\xc5\x15\xd0\x4e\x6b\x7a\xe0\x6d\x31\xbe\x3d\x61\x6c\x6d\x00\x72\x10\xef\xb0\x1b\x1b\x56\xfa\x21\xa9\x26\x43\x1c\xe5\x72\xbd\x99\x8c\x88\x48\xa8\x1c\xb7\xb0\xc9\xdf\xf3\xed\xa7\x36\xef\x4c\x50\xae\x91\x48\xf9\xf1\x5a\x0e\x13\x62\x41\x05\xa1\x36\x47\xc3\x0c\x0f\xd6\x85\xeb\x8d\xcc\x4f\x3c\x41\x21\xa0\x96\x6e\x58\xdc\x38\x61\x62\xf4\xae\xf0\xe7\x63\xd4\xd6\xd7\x50\xc0\x25\x3b\x88\xea\x7c\x2b\x0e\xe0\xa0\x08\x93\x29\xc2\x64\x62\x3c\x44\xd1\x56\x44\x66\xbd\xa0\x98\xe0\x41\xe0\xeb\x34\xbf\x97\xf2\x0b\xe2\xcb\xa5\xd9\x73\xd7\x84\xf6\xb3\xc8\x82\xa6\xa6\x4f\x95\xc7\x09\x66\x34\x7f\x96\xa7\xf5\xf9\x34\x6a\x5f\x7e\x4a\xaf\x11\x5c\x31\x8c\xf7\xe0\x27\x5e\xf4\xcd\xd0\xdf\xfc\x1e\x8a\xbd\x17\xd6\x60\x22\x4e\x6d\x68\x55\xb4\x43\xcb\x53\xa1\xeb\x32\xd7\x19\x54\x15\x1c\x73\x28\xb2\xfa\xb5\xea\xab\x44\x22\x49\x03\xaf\x4f\xf3\x52\x43\x35\x0a\xfd\x87\x29\x87\x48\x8c\x48\x82\xff\xf9\xff\xfe\xe7\xfb\x7a\x40\x48\x9b\xb9\xdc\xc9\x23\x4c\x83\x18\x2b\x8b\x2e\x7d\x9c\x6c\xae\xdd\x2d\x49\x13\xab\xd8\xdc\x64\x50\x45\x83\x16\x9f\x48\xb5\xb5\x95\x3f\x64\x05\x2e\x3f\xdd\xeb\xd5\xff\x04\x21\x03\x44\x20\xfe\x28\xe5\x70\xf3\x11\x02\xac\x39\xd5\xae\xee\x28\xb3\x1b\x50\xd5\x44\xb6\xbd\x1d\x97\x62\x23\xf0\x55\x14\x3a\x87\x9d\x76\x14\xe2\x4f\xde\x25\x19\x58\xa7\x4b\xdb\x32\xfc\x26\x2a\xdd\x89\xd3\x31\xd1\xa6\x12\x5e\x7b\xb0\xa8\x3f\x26\x8a\x79\x4c\xa8\x38\x41\x88\xd1\x51\x54\x4d\x01\x55\xbb\x58\x22\x2c\xfa\xd9\xfe\xff\x51\xcc\x7a\xc1\x05\xed\xce\xa1\x70\xd2\x1f\xc5\xf9\xa6\xac\xc6\x6a\x41\xf3\xaf\xa3\xd6\xb6\x12\x8b\x5d\xdd\xbf\x57\xa9\x10\x1a\x12\x54\x9b\xdb\x5d\xdd\x3f\x2d\xff\xd8\xec\x9e\x57\xeb\xdd\x7a\xb5\xb8\xfe\xfd\x65\xb3\x7d\x58\x79\x09\x64\x26\x80\x32\xe2\x34\xef\xcb\xaa\x86\x43\x2f\x90\xcd\x04\x70\x8b\x58\x3a\x66\x13\xc3\x42\x26\x40\x2a\x9c\x4d\xba\x2c\x7a\x7d\x48\x7f\x4c\x01\x7a\xb9\x58\x75\xf6\xab\xf2\xa7\xdd\x54\x1d\xb1\xd8\x9f\xc1\x50\x82\x11\xef\xe3\xbf\x56\xdb\xd1\x63\x37\x92\x84\xbd\xfe\xd1\x06\xd9\xb7\x7f\xef\x37\x1b\xcd\x89\x2d\xc3\xff\xbc\x29\x2b\x05\x4f\xc6\xd4\x5e\x44\xd2\x9d\x5d\x92\x10\x10\xf1\xd7\x8b\x67\xdd\x94\x9f\x94\xf5\x25\x89\xa8\x57\x23\x6e\xdf\x2d\xab\x90\x23\x72\x98\x44\x7d\x92\x18\x15\xb0\x41\xfb\xe8\xa6\x2a\x0f\x0f\xa8\x76\xbb\x14\xc7\x23\xe8\xe7\xaa\xfc\x79\x9e\x7c\x26\xe4\x0c\x3f\x73\xfd\xb2\x5e\x6c\xef\x9e\x1e\x51\xa2\x7a\xb3\x5d\xdc\xae\x7c\x86\x28\xa3\xc8\x01\x87\x86\x00\x9a\xd9\x19\x22\x23\xa3\x50\x7b\xfc\x36\x77\x6e\x98\xfe\x1c\x54\x07\xd8\xc1\x5b\x3e\xdd\xdf\x2f\xb6\xab\xf5\xe2\x7e\xf7\x6d\x75\x7f\xed\x0f\xb3\x30\x40\x9a\x89\xc9\x7e\x22\x30\xfd\xae\x58\xfe\x58\x76\x07\x45\x80\x75\x11\x9b\xd1\x38\xe7\x6f\x2c\x29\x5e\x24\x36\x92\x53\x8d\x19\xef\x2d\x34\x16\x58\xbb\x7c\xcd\x8e\x18\x46\xb9\x01\x71\xa4\x78\xd4\xdf\x4b\xdb\xfd\xba\x2e\xd5\x69\x38\xe3\x64\x1c\x6b\x54\x8f\x76\xde\xe3\x1b\x9b\xca\xd4\xb6\x4e\xf7\xab\x59\xf0\xf7\x2a\x49\x32\x4e\x09\x97\x3e\xec\xf6\xae\xbc\x98\x7a\x8c\x9f\x50\xac\x63\x6c\x49\xbd\x1f\x61\x77\x84\x6a\x07\x65\x77\x99\x09\xb7\x06\x66\xd8\xcd\xb7\x6e\x9a\xb3\x9d\x49\x99\xc4\x29\xd6\xf0\x0f\x8b\x1c\x7c\xfa\x2d\xd3\x40\x84\x0e\xe7\xd9\xdb\xc4\xf5\xd1\x89\x14\x71\x10\xdb\x76\xf8\x15\xe4\xe5\xc7\xc5\xcf\x1e\xbe\x6c\x52\xa4\x0c\xf1\x8c\xab\x1c\x54\x53\x95\x45\xa6\x1e\x4e\x75\xa6\x7e\xeb\x0e\x0b\xdf\xa5\xf6\x57\xea\x4a\xf2\x7f\x64\x7e\xf3\xf6\x43\x25\x4f\xdc\x4a\x8d\xa0\xf5\x67\xa7\x29\x8f\x1d\x8a\xfe\xc5\x95\x32\xb0\xb6\x3e\x62\x5f\x01\xae\x17\x73\x48\xea\x36\x5c\x86\xa1\xc1\x58\xfb\x3e\xcc\xfb\x14\xbb\x0f\xe8\xc8\x8a\x0b\x58\xe1\x70\x94\x99\xeb\xee\xb7\x21\xd6\x55\xc2\x38\x15\xb8\xae\x52\x24\x0d\x55\x78\xaf\xd6\xa8\x26\xf6\xc3\x1a\x9a\xf8\x63\x1c\x10\x83\x9a\x15\xaa\xc2\x0b\x1d\xd2\x97\xa5\xd1\x3a\x76\x06\x9a\xd7\x9b\xf2\x54\x29\x18\xa5\x69\x64\x7c\x79\x2a\x60\x2c\xb6\x3a\x6b\xfb\x7d\x0e\xf7\xa5\x7a\xbb\xf3\x2f\x99\x0a\x62\x40\x49\xd3\x03\x34\xa2\x0d\xad\x5f\xaa\xbc\x3b\xa4\x92\x84\x76\xd8\x90\xfb\xb2\x86\xaa\xbe\xca\x26\xf2\x16\x4c\x91\x50\x05\x69\x47\x1b\x76\xb2\x48\xae\x17\x39\x7a\xde\x8a\x84\x86\x3a\xfe\x42\x17\xb2\x7a\x6d\xda\xc1\x8d\x51\x84\x0a\xed\x24\xf7\xda\x98\x0a\xeb\xed\xe3\x01\x2c\xb0\xf4\xd4\x77\x91\xe5\x42\x76\x6d\xe5\xc9\x85\x71\x1e\xba\x86\xcb\x00\x2d\x34\xbf\x4f\x29\x92\x80\xb0\x30\xb2\xbf\x40\x59\x99\x7a\xec\x5a\x67\x0a\x36\x27\xe9\x69\x81\x17\xe4\x8d\xb9\x3a\x8f\x22\xa9\xc6\xa2\x83\xb4\xfc\xf5\xc1\xde\xa3\x88\x50\xc4\x5a\x79\x5f\x79\xba\xb0\x0a\x65\x82\x3d\xe7\x7f\x6d\xbf\x8f\xf0\xe9\x2a\x54\x3c\x40\xa5\x46\x31\x91\x75\x67\x2a\x12\x84\x90\x5e\xcc\x6e\x09\x9f\x2d\xaf\x8a\x12\x1a\x3b\x90\xf2\xbf\xcb\x02\x36\xaf\xe5\xd1\x4e\x77\xb7\xb7\x93\x6e\x60\x6c\xb0\xb2\x76\x80\xbd\x18\xf4\xf2\x14\xb6\xd4\xff\xe7\xff\xfb\x9f\xc5\xdd\x50\x94\x93\x29\x26\x78\xc4\xc6\x53\xb4\xdc\xb7\x17\xf0\x64\x5c\x81\x61\x51\xe8\xbb\x4b\xc2\xcb\xb0\xe4\xa2\x98\xe1\x58\x12\xfb\x98\x00\xb0\xe6\xd7\x3f\xc5\x09\x20\xb7\x7c\xbe\x36\xee\x07\x51\x26\x75\x87\x74\x1e\xbf\xdb\x8a\xb7\xf9\x06\x2a\x16\xd7\xaf\x37\xa2\x3a\x74\xaf\x9c\xe2\x10\xeb\x8e\xb6\x78\x2a\x9a\xfa\xea\x8c\xb2\xa6\xe3\xcf\xc7\x51\x82\x35\xa2\xc5\x66\xe3\x37\x1b\x15\x0b\xdb\xb4\xf3\xed\x0d\x0f\xc2\x9d\xc1\x22\xaa\x58\x12\x4b\x04\x6e\xe3\x21\x0b\x2c\x99\x61\x56\xa8\x24\x62\x98\x71\x96\xc6\x40\xe5\x16\xa9\xf1\x89\x12\x19\x60\x5e\x85\x1d\xcb\xac\xc0\x5a\xe2\xe8\xf9\x24\x26\xc2\xc8\x6b\x93\x1d\x8e\x39\xac\xd6\xcb\x30\x18\x1d\x4f\x83\x14\x8f\xdf\x42\xb3\xc8\x73\xbf\xc2\xf6\x7a\xa2\x7e\x98\x92\x12\x46\x36\x86\xbf\x78\x93\x52\x23\xbc\x88\xf3\x55\x7b\x1f\xcf\x36\x43\x9c\x73\xf4\x67\x4a\x08\x6b\x30\x89\xe4\xad\x4a\x1c\x7e\x2d\xa2\x32\xf9\xbc\x24\xaa\x93\x78\x7d\x80\x46\x68\xe1\xd6\xb1\xf5\x9d\xff\x05\x42\xab\x74\xe0\x85\x78\x53\x56\x7f\x4f\x7d\x63\xf0\x5f\xe3\x87\x23\x0c\xe5\xbd\x88\xfd\x22\xef\xba\xff\xee\xb8\x0c\xac\x78\xe9\x90\xa7\x65\xb5\xc8\xfd\x00\xc2\xbc\x82\x62\x1b\x50\x0c\x2b\x53\x4a\x72\x61\x03\x66\x71\xbc\x16\x67\xaf\x48\xa0\x54\x0c\x98\xf6\x9f\x0a\xbb\x91\x8c\x2d\x28\x06\x6b\xa3\x4a\x6c\xed\x08\x05\x24\x9b\xf2\x60\x93\xe0\xd1\x3a\xac\x52\x82\xe6\x57\xcb\xbb\xed\x9f\xbb\xe7\xf5\xdd\xb2\x5b\x8a\x34\x49\x6c\xb2\x2e\x6a\x2b\x40\xb1\x13\x41\xbb\xcf\xef\xdc\xad\xf0\xe3\x20\xb2\x2b\x53\xf3\x9a\x55\x16\x02\x30\x36\xd0\x63\xca\x24\xcc\x02\xbe\x6c\xcf\xf4\x9b\x97\x1a\x70\xc7\x75\x40\x88\xe9\x7d\xc0\x97\x0e\xbf\x3e\xed\x87\xeb\x20\xb4\xe2\x3e\x6d\x3e\xd9\xee\x93\xe3\xe9\xa3\x83\x28\xc6\x60\xe6\xcf\xf2\xd4\x9c\x24\x7c\xcf\xe0\xa3\xee\xbe\x41\xc5\xd4\x25\xe8\x8b\x63\xd6\x06\xa0\xf5\xb4\xbf\x32\xf9\x2e\x43\xb8\x8b\x37\x6e\x45\xbd\x51\x22\x17\xf3\x5a\xa8\x4c\x13\xa2\x11\x56\xe0\xdf\xf8\xce\xdd\x6c\x3a\x0c\x52\xaf\x2c\x37\xd0\xe0\xd0\x24\x0c\x03\x9b\xf5\xd5\xcf\x15\xbc\x67\xe5\xa9\xce\xcf\x2b\x54\xfa\xd4\x58\xc8\xd2\x03\x6e\x58\xf7\x19\x66\x48\x17\xfc\x43\xd1\x64\x0a\x96\xaf\x17\x78\x30\x4d\x18\x45\xd2\xd5\x72\xf9\x6d\xb7\x5e\xed\x48\xf7\x9d\xa9\x05\x1b\x16\xa7\x83\x65\x22\x76\x37\x8a\x08\x0b\xef\x5e\x3e\xdd\x3f\xad\x77\x7f\xae\xee\xef\x9f\x7e\xf8\x63\x61\x6a\x70\x42\x78\x73\x27\xeb\x79\x33\x74\x9a\x67\x3a\xa2\x31\x20\x24\xa5\x3a\x1f\x9b\x72\x99\x35\xe7\xe1\x3a\xa3\x23\x9a\xa2\xc4\x82\x55\xd2\x5c\x8a\x63\xd6\x88\x4f\x36\x2b\x1d\x09\x6b\x6a\xb3\x14\x85\xa8\xce\x5b\xa8\x9b\x02\xfa\xef\x11\x29\x16\x81\xf6\x55\x59\x5a\x19\x5e\xbd\xe8\x0e\x52\xca\x6d\x1c\xd3\x7e\xf5\xaa\x9a\x70\x8a\x35\xe3\x44\xda\xea\x6c\xbb\x67\xc0\xb8\x37\x38\x68\xdf\x69\xce\x0c\xbe\xdb\x28\xb4\x21\xf2\x35\xda\xd3\x4e\x61\x3d\x7e\xac\x92\xb8\x96\xdf\x6c\xbe\x79\x94\x87\x8e\x79\x80\x91\xf7\x22\x6f\xa0\xda\x6d\xab\x53\xdd\xe4\x50\xd7\x73\x72\x41\x83\x6f\x8d\xb5\x49\xed\x5a\xdd\xb1\x4a\x74\x0c\xaa\x4f\xf6\x77\x1f\xa2\x76\x0a\x83\x3e\x3c\xd0\x09\x23\x58\x87\x5b\x54\xcd\x6b\x76\x80\xa6\x8b\x9c\x75\xc2\x15\xf6\x73\x9c\xb4\x35\xae\x2f\xd5\xf9\xd2\x3d\x94\xe9\x24\xb5\x55\x2c\x5c\x2d\x70\x2e\x4f\x2b\xbe\x3a\x15\xca\xca\x23\x96\x57\x51\x38\x2e\x99\xf9\x11\x26\x09\x6c\xbc\x56\xbd\x43\xb5\x2a\x74\x1b\xb5\x2d\xcb\xc2\xe4\x99\xea\x22\xc1\xd3\x40\x7a\xbe\x5b\xcc\xe7\xd0\x52\x33\xbe\x5e\xf6\x4b\xa7\x41\xd7\xf8\x61\x88\x80\x10\x9b\x79\x3c\x9e\xba\xca\xad\x16\xa1\x46\xc0\xe8\x41\x54\x6f\x8b\xfa\xee\x60\xd1\x6d\xf3\xe5\x15\x2d\xb4\xc4\xa5\xf7\xc3\x07\xa7\x9d\x46\x99\x3f\x9d\x0c\x39\x2a\x38\x1c\x70\xfe\x3c\xbd\x43\x55\x65\x1a\x56\x56\x3e\xe2\x2a\xfb\x05\x06\x4e\x4b\x11\x21\xa8\xa1\x2c\xf2\x33\x26\xd9\x03\xc3\x78\xa6\x15\x0d\xbc\x98\xdf\x17\xca\x35\x5a\xa5\x11\x2e\x2a\x06\x1a\xf5\xfa\x2c\x32\x6d\x61\xb0\x37\x65\xf5\x2c\xce\x50\x5d\x9d\x31\x8f\x9f\x3c\x67\x25\xa5\x6d\x9b\x8a\x37\xf4\xed\x71\xd3\xd0\x07\x7f\x5a\x87\x01\xda\x07\xda\x29\x76\x57\xe7\xa2\xb8\xf0\xd4\xf9\x7a\x2b\xd6\x90\x68\x6f\x1d\xf4\x50\x0e\xd5\xbe\xfc\x71\x61\x15\x16\x76\xb6\x7f\x6e\x55\xfb\xbf\xdc\xee\x13\xff\x49\x29\x8c\x2d\x3f\x5e\x88\x47\x4e\xaf\x41\x6a\x8b\xd4\x69\x13\x31\x4f\x7a\xc6\xb2\xad\x5f\xa1\xeb\xbb\x62\x59\xf8\x22\xae\x06\x50\xc8\xe1\x6d\x23\x86\xb1\x9d\x11\xd3\x26\x02\xd4\x4b\xfc\x91\xe5\x9d\x99\xcc\xe4\x51\x18\xa1\xad\x89\xa7\x05\x01\x6e\xde\xb2\xc2\x71\xac\xef\xa6\x3b\x95\xd1\x04\x35\xfc\x2e\x4c\xab\xbf\x9c\x31\x10\x84\x80\x39\xd8\xea\x67\x59\xc9\xd3\x4f\xd5\x41\xa1\x81\x90\x84\x0c\xfc\x35\xbb\x82\x72\xbf\xaa\x00\x09\x2d\x1b\xc3\x83\xd8\x8b\xb7\xcb\xe6\x10\x10\x03\x56\xb7\xb6\xdd\xca\xf1\xda\x2f\x45\x15\x19\x84\x21\x41\xd0\x87\xb5\xdd\xbc\x6a\x77\xf3\xaa\x3b\x96\x86\xd8\x3b\x39\x56\xa5\x82\xba\xfe\x26\x0a\x84\x80\x0d\x2e\x24\x62\xb6\x96\xfe\xed\x74\x10\xc5\xbf\xfc\x96\x04\x11\x0b\xb1\xc9\x5f\xb7\x01\x44\xf8\x58\x36\x23\x8b\x5e\x06\x11\xa7\x64\xe8\x37\x3b\xdd\x13\x81\x6a\xee\x11\x79\xb6\x16\xd9\x49\xcd\xb8\x59\xdb\x79\x42\x87\xbe\xd5\xfb\x8f\xd1\xed\xa5\xa0\x80\x38\x35\xaf\x5b\x51\x63\xed\xc0\x93\xd8\x67\x67\x18\x30\x4a\x51\xac\x43\xb8\xc9\x75\xd7\x74\x3a\x0f\xc0\x62\x8a\x2f\xd1\xc6\x06\x10\x17\x70\x22\x60\x69\x84\xb0\xd9\xcd\xfd\xf3\x72\x77\x11\x91\x43\x4c\x78\x12\xf7\x4c\x57\x5a\xf4\xae\x0a\x7e\x44\x14\xa2\x2a\xcc\x21\x2b\x2e\xd9\x5f\x83\x1f\xef\x86\x27\x41\x8c\x98\x81\xdd\xa9\x38\x0a\xf5\xf6\x43\x54\x55\x56\x56\x77\x9f\xfd\xb6\x24\x4c\xbd\x2b\x45\xbb\x3a\x5d\x97\x45\xf7\xfc\x93\x38\x44\x61\x77\x1f\x71\xde\x00\x4e\x8f\x95\xad\x75\xfd\x62\xdd\x83\x44\x99\x20\x74\x54\x72\x9b\x0d\x4c\x6e\x4c\x4a\x92\xb4\x97\x0e\x1a\xf5\x05\xfd\x88\xc4\x9a\xd5\x48\x91\xe7\xa5\x03\xb1\xd6\xc3\xbd\xa5\xfb\xd1\x82\x11\x0c\xae\xfe\x7c\xba\xda\xfa\x14\x0d\x84\x52\xa8\x8b\x9b\x7d\x42\xb3\x9b\x5c\xb0\x4a\x98\x71\x92\x31\x4f\xb9\xbe\xb0\x6f\x77\xa3\x74\x98\x26\x4e\x96\xfa\x58\xd6\x30\x03\x34\x06\xe0\x56\x63\x30\xab\xbf\x97\x4d\x56\xec\x51\xf3\xa4\xf7\xf0\x60\x00\x60\x7b\x0c\x2a\x07\x51\x6c\x00\xf4\xcb\x04\x34\x08\x26\xe0\x3a\xe8\xc1\x19\xf0\x0e\x79\x79\x84\x6a\xb5\xfd\x76\x0d\x75\x93\xd9\x92\xe6\x6c\x44\x0b\x86\x5b\xb7\xc2\x5b\xf4\x49\x3b\xbe\xd4\xa0\x1f\x9d\x01\x9c\xbf\x5d\x26\x48\x05\x86\xb2\x6d\x70\x86\xda\x42\xfe\x99\x9b\xc0\x50\x2c\x49\x0b\x0b\x93\xea\x75\x64\xc6\xdf\x62\x48\x18\xa3\xc8\xee\x12\xd5\x7c\x7e\x25\xd9\xd6\xdd\x64\x43\xb8\x75\xcb\x6e\xd3\xa3\x31\x6b\xa1\x0d\xc4\xa9\xc3\xf6\x22\x2e\xfa\x75\x24\xaf\x3e\x88\x9c\x0c\x49\x62\x2b\x30\x88\x77\xe7\xe6\x54\x68\xcb\x3e\x22\x93\x8b\x0c\x03\x46\x5d\xe5\xd4\xb7\x67\x67\xcb\x9e\x26\x0c\x6d\x83\xec\x3e\xfb\xcf\x29\xd3\x59\x73\x1e\x92\x40\xfc\xf5\x85\x3c\x60\xcc\x39\xe1\x55\x99\x6a\x40\xe3\x9c\x45\x38\x2e\x1a\xa5\x4d\x4e\x1a\xd1\x04\x2b\x5f\x2e\x72\xb6\x84\xc6\x76\xe4\x06\x59\xbe\x93\xc1\x10\x7b\x72\xd8\xc2\x43\x8d\x71\x4f\xcf\x2f\x56\x6f\x43\x19\xa0\xc3\x56\x1b\xdf\x38\xe4\x84\xbf\x46\x16\x00\xaa\xe8\x61\xa5\x61\x77\xac\x3a\x31\x65\x66\x58\x98\x22\x77\xad\x6c\x17\xcd\xc7\xb2\xb1\x9e\x25\xdd\xc2\x6b\x58\xca\x11\x70\xb2\x5c\xdc\xdf\xef\x6e\x17\x9b\xdd\x72\x75\x77\x7f\xf7\x78\x3b\x7e\x6b\x0d\x4b\x05\x16\x29\xee\x5f\xbe\xef\xa6\xf0\x4a\xc3\x34\x43\x54\xc1\xf6\xb9\xac\x9a\xd1\xcd\xe3\x92\x18\x6f\x7d\x5d\x16\xa7\xba\x8f\xb2\xc6\xa7\x8f\x43\x8d\xe0\x20\x09\xfb\xac\x78\xb6\x5a\xb6\xeb\xf2\x54\xe8\x4f\x3c\xc4\xfc\xc7\x92\x71\x37\xd9\x41\x59\xfd\x51\xc3\x71\xb2\xf6\xfe\x4e\x9b\x3e\xbe\x33\x29\x49\xd0\x6b\x08\x5b\x97\x4f\xc5\xc8\x7b\x9a\x99\x34\xb2\x0f\x06\xb1\x91\x95\xeb\x7f\x8e\xb4\xa6\x4c\x2a\xad\x6f\xff\x55\xe9\x75\x80\xbb\x17\x2d\x55\xc2\x6e\xd8\x25\xd4\x6e\x1e\x60\x61\x67\x3e\x18\x35\x22\x0c\x90\x71\xba\x81\xe6\x59\x34\xb6\xbc\x76\x84\xaa\xc9\x60\x5e\xf3\x95\x19\x11\xc7\x56\xdd\xbd\xd3\xa8\x9e\x05\xce\x1b\x49\x52\xcc\xd7\xdc\x5f\x57\x4a\x75\x5a\xe7\xcc\x48\x65\x8d\x9a\xb2\x7a\x51\x81\xf0\xf2\x61\xc3\x4d\xc8\x28\x23\x91\xfa\xb0\x43\xc2\x70\xf9\x9e\x69\xa8\x6c\xcc\x39\xbe\x1e\x1d\x73\xcc\xb9\x16\x5a\xdf\x7b\x90\xe1\xe8\x44\x1a\x64\xe8\x95\xfd\xbc\x0d\x33\x33\x10\xa7\x5a\x7a\x51\x6e\x53\xa2\xed\x65\x77\x79\x20\x18\xe2\x57\x8f\xa7\xe6\xaa\x51\x96\x85\xab\x2e\xa1\xe9\x5f\x2b\x08\x5c\x8c\x1b\xb5\x3e\xfd\x37\x29\x2b\x27\x58\xe3\x8b\x6d\x1f\xf2\xf8\xf7\x19\x11\xe0\x0c\x77\xf0\x7b\xef\x91\x3a\xbc\xd9\x3c\x20\x81\xd5\x7c\x6b\x7f\x4d\x1b\x2a\x0c\x6e\x00\x0f\x48\xa4\x60\xe8\x7c\x3c\xfb\x60\x79\x40\x98\xf7\x3f\x46\x21\x42\xaf\x2a\xc8\x03\x92\x10\xf4\xa6\x29\xbc\x22\xda\xf8\xec\x90\xa0\x05\x59\x5e\x8a\xe2\x41\x34\xa7\xea\xe2\xe2\xc2\xd8\x5a\x1b\x2d\x9e\xfe\xf0\xa7\x0c\x85\xad\x0a\x3a\x52\x8c\xf7\x86\x6a\x44\x53\xf7\x11\x1d\x0f\xa2\x40\x63\xf1\xb7\xf0\x62\xf6\xe3\x2c\x85\x07\x51\xa4\x85\x2b\x3b\xb7\xb1\x44\xbb\xf5\x95\x1f\x36\x3b\xb9\xdc\xa9\x78\x10\xd1\x14\x09\x13\x3b\x28\x10\x69\x0d\x75\x73\x67\x1e\x01\xf4\x25\x89\xd2\x7f\x22\x8e\x59\xea\x6d\x54\x4e\x1a\x8a\xc6\x31\x05\x26\xc3\x94\xc6\x66\xef\x5b\x96\xe7\x0f\xe0\x7f\x25\x15\x09\xee\xba\x15\xd6\x6e\xb0\x57\x64\x6b\x74\xfb\xc1\x10\x6d\x75\x43\x30\x23\xfa\x0a\x6d\xf0\x8f\xf1\x4f\xa1\xa0\xc9\x90\xac\x7c\x75\xbe\xcd\xf4\xe4\xaa\x18\x23\x8e\x32\x86\x4f\x74\xf5\xb3\x81\xaa\x10\xb9\x95\x83\xa9\xfd\x25\xf0\xd0\x7a\x32\xa2\x3a\xe2\xd3\x1f\xab\xc7\x8d\x3f\x12\x07\x36\x97\x42\x4d\x4c\xaf\x3b\xde\xc7\xeb\x3c\x88\x49\x80\xac\xbe\xfb\x72\x6f\x73\x17\xb8\x28\xad\xfb\x91\x9c\x20\x34\x0d\x8d\x66\x0a\x68\x66\x68\x34\x3c\x88\x41\x20\x2e\xc5\x56\xad\xb3\x1c\xda\x74\xf3\x11\x3e\x5e\xea\x01\x70\x60\x00\xbf\x9f\xbc\x53\x64\x5a\x43\xe5\x41\xc2\xad\xed\xd2\x1e\x9a\x9b\xac\x7e\x5d\xa0\xfd\xed\xe4\x2e\x25\x2a\x1d\x52\xfb\x1f\xe1\xa7\x8d\x06\xa6\x73\x2d\xe5\x0a\xe3\xee\x55\x5e\x22\x41\xd2\xff\x59\x07\x08\x1d\xcb\x45\xed\xac\x91\xed\x2b\xea\x8f\x8b\xd8\xaa\x27\xb7\x09\x29\xbe\x3e\xbb\xc9\xa4\x14\x89\x0d\x7a\x85\xd6\x9b\x63\x59\xd4\xa5\x45\xb7\x7f\x15\x3a\xf2\x40\xe8\x14\x25\xdb\x2c\x8f\x72\x52\xb3\xf0\x63\x8c\x40\xb6\x74\x8f\x3e\xbc\x5f\xfe\x78\xfe\x05\xfa\x90\x07\x32\x52\x38\xe5\xcb\x46\xf9\x74\x76\x51\x68\x97\x48\xcf\x4f\x46\x19\x07\x89\xd5\x2d\xc8\xf2\xe6\xa9\xf0\x3f\x5d\xa6\x16\xeb\xf9\x57\x99\x15\xb7\x6d\x96\xf1\xc9\x17\xa6\xc6\x78\xb6\x64\xa7\xf4\xce\x03\xa5\x38\x2e\x3b\x0f\x77\x8f\xbb\x76\x6e\x6e\xee\x9f\x6e\x1f\x77\xcb\xa7\xfb\xfb\xd5\x72\xbb\xba\xee\x86\x01\x58\x42\x7f\xbb\x4d\x2e\xf2\x7c\x73\x10\x15\x3e\xc0\xac\xd8\x8f\xb5\x43\x79\xa0\xa9\x05\x02\xf7\xac\x7f\x1e\x40\x10\xc8\x41\x86\x8b\xbe\x2e\xfe\x50\x68\xdd\xba\xdb\xeb\x6f\x53\xa5\xcf\xf2\x8f\xc9\xef\x01\x2e\x55\xe0\x4b\x6a\x77\x7a\x5b\x7a\x1c\xc5\x1a\x54\x76\xbc\xe0\xcd\xf1\x00\xe2\x10\xb7\xba\xbc\xdc\xff\x36\x13\xc3\xf2\x00\x64\x12\x04\xfd\x5e\xba\x59\xba\xa7\xe1\x0e\x1b\x46\xb1\xfc\xb4\xb1\xa8\xca\x65\x99\x15\x75\x7f\x4c\xa6\xb6\xa0\x6b\xfd\xdd\xbb\xbf\x1b\x91\x2a\xef\x57\xef\xe7\xc7\xa5\xb6\x0d\x27\x01\x09\x85\x75\x00\x6f\x3f\x7e\xec\xc1\x49\x7a\x3a\x50\xc5\xd6\xc3\xd3\x77\xea\x7a\x7d\x99\xd1\xaf\x21\x44\x73\x4c\x2f\x6f\x1b\x40\xa0\x15\xa6\xa8\xee\xba\x48\x48\x89\x0d\x1b\x9c\x8f\xf9\x7c\x47\x7c\x3c\xff\x48\x28\x14\xb6\x2d\xd0\x89\x6b\x47\xd8\xee\x7a\xf1\xa7\x5f\xc5\x48\x14\x51\x49\x3a\xe5\xbe\xf2\xd4\xd4\x33\xaa\x3b\x9c\x44\x5c\x23\x59\x53\x78\x0e\x21\x27\x51\xc2\xd1\xde\xd1\xa3\x50\xbf\x21\x7c\x6a\xb4\xfd\x91\x28\xb5\xa0\x4d\xd4\x6e\xfb\xb2\x67\xc5\x49\xa4\x0d\x16\x72\x76\x26\x2b\xb2\xfa\x15\x05\xc5\x06\xe8\x39\x37\x8a\x86\x24\xd2\x5e\xb8\xcb\x63\xad\x6f\xaa\xf2\xf0\xd2\x99\x11\x71\xc2\x42\x1a\x39\xf1\x72\xe4\xc5\xcf\xb4\xf7\x38\x89\xc3\x38\xb0\xc5\x4a\x57\xe9\x6b\x13\x88\x4e\xb7\x7a\xf2\x54\xe2\xd0\xd6\xd7\x77\xcd\x45\x06\xf6\xc9\xcf\x89\xb9\x88\x1c\x3e\x60\x70\xda\x39\xd3\xa7\x7e\x4b\x27\xb1\xa0\x9d\xa9\x76\xde\xbe\x0b\x4b\xa7\xd9\xee\x7f\x59\xac\x2c\x7f\xd5\xf3\x9c\x27\x62\xa2\xe3\x4b\x48\x42\x42\x7b\x4a\xbd\xd3\x32\x9b\xdc\x85\x24\x4a\xe2\xa1\x88\xe9\xd5\xe9\xdc\xc5\x30\xa3\xfd\x87\x24\x4a\x22\x83\x6a\xf5\x7e\x5f\xee\xb3\xc2\x94\xf3\xa3\xb4\x15\xa1\x40\x72\x8f\x13\x8d\xf9\xfa\x46\xa5\xcc\x72\x51\xbd\x58\xd0\x21\x2b\xb6\x13\xbc\x3f\x27\x69\x1a\x42\x8f\xf4\x44\x45\x36\xec\x8d\x5d\x42\xed\x39\x11\xa9\x15\x22\xb7\x25\xb7\x07\x51\x55\x99\xd8\xc3\x7d\xa6\xa0\x50\x70\x77\x10\x7b\xb8\x7b\xbe\xd9\xbc\x8a\xfa\x75\x3c\x59\x55\xc0\x82\x08\x23\xc1\xca\x52\x0b\xef\xcb\x3d\xf1\x37\x5e\xc9\x80\xb9\x6c\x78\xf1\x2e\x1a\x51\x4d\x45\xe7\xda\x21\x0a\x6b\x70\x05\xfc\x6c\x6e\xa1\x28\x3d\xe2\x80\x13\x1d\xc6\x98\x6d\x39\x58\xd2\x65\xd5\xa8\x83\xd1\x70\xa2\x29\x23\xc4\x4f\x70\xb8\x53\xe5\x50\xf1\x90\x13\x3d\xf4\xd3\xec\x71\xd8\x9c\x40\xca\x05\x73\x3a\x6c\x80\x2a\x03\xee\x40\x9b\xc8\xbb\x08\x7f\x25\x2a\xcc\xba\x51\x63\xcf\x1f\x8e\xb8\x89\x87\xf2\x55\x3f\xf4\xcf\x9b\xcf\x35\xe7\xfc\xa7\x44\xac\x2c\x7e\xcf\xc9\x2c\x87\xd3\xa7\x3c\xc1\x3c\xf3\x30\xe0\xc0\xad\x3f\x56\xd6\x5c\x89\xa6\xc9\xe1\xf9\x7e\xb1\x5d\x96\x93\xee\x19\x0f\x49\x64\xed\x7f\x33\x2b\x5e\x72\x5d\x79\xa5\x4b\x1e\x12\x16\xe0\x7a\xdd\x86\x18\xe1\x20\xa1\xe5\x21\x91\x1a\xeb\xac\x08\x83\xdb\xad\xbc\xd9\x30\xaa\x37\xe0\x4b\x20\x4f\xe7\x36\x0a\xbb\x39\x15\xf6\xed\xb3\x4a\x52\x6e\x50\x14\x58\x97\x6b\x14\xd6\x6c\xe7\xec\x24\x91\x18\xcd\xf1\x30\x32\x16\x4e\x64\xe7\x38\x34\xcb\xb2\xfe\xd4\x90\x92\x87\x94\x24\xc2\xc2\x44\xdc\xca\xff\x74\x84\xc2\x5b\x0a\x4e\x7e\x3a\x35\x0a\x8d\x7d\x2a\x61\x3a\x06\x2f\x0f\x59\xc4\xb0\x48\x53\x00\xe8\xba\x93\x74\x19\xb4\x7a\x79\xc8\x52\x8e\x90\x8a\x76\xef\x76\xb9\x50\xa7\x35\xd5\x8d\xd1\xda\x97\x36\xed\xcf\xdb\x2e\x9e\x30\xce\xb7\xc5\x10\xd8\x64\xfb\x02\x53\x94\xa9\x78\xfc\xac\x17\xc9\x97\x28\x55\x1e\x72\xa2\xb1\x02\x68\x2d\xdd\x46\xe2\x72\x7e\x04\xb7\x95\x67\x0b\x6d\x1a\x8b\x40\xf0\x90\xa7\x04\x01\xc1\xf2\x74\xde\xc9\xde\x69\x87\x87\xb1\x32\x91\x95\xba\xca\x55\xff\x8a\x85\xb1\x31\xb8\x9a\x6f\x5e\x01\x8e\x73\x2b\x53\x98\x84\x1a\x9b\xaf\xed\x2a\x93\x3f\x15\x76\x0a\x4a\x2b\x77\xda\x7e\x35\xf7\x93\x21\xe1\x71\x28\x47\x48\xf1\x6f\xed\xb6\xd7\x2f\xd3\x61\x92\x30\x6c\x24\x68\x50\xd9\xc1\x5f\x41\x4a\x25\xe2\xda\x70\x05\xbb\x85\xde\x56\x8f\x87\xa9\xb6\xb2\xa0\x7e\xf3\x78\x29\xca\x8f\x02\xf4\x73\x2e\x0a\x98\x27\xff\xf3\x50\x05\x12\x3f\xd3\x66\x6e\x57\xe7\xab\xed\xd2\x71\xa6\x3e\x19\x1d\x06\x68\xa9\x6d\xfb\xbf\xff\x3c\x89\xa2\x39\x1d\xb6\x95\xd0\x59\xb1\xef\xd5\x1a\x79\xa8\x22\x81\x04\xf8\x9b\xac\x10\xb5\xdf\x19\xfd\x41\x4d\xa3\xc0\xc3\x59\xb2\x62\xbf\x81\xdc\x5c\x43\x8d\x6a\xad\xfd\x10\x5b\xac\x57\xa2\xb8\x17\xe7\xd5\x7e\xef\x6e\xdd\x3f\x2e\xab\xc0\x3c\x04\xa1\x88\x35\x7d\x75\x75\xa9\x4b\x20\x2b\x0f\x4d\x20\x10\x4e\xf9\x67\x79\xda\x9e\x24\x1c\x50\xf9\x6f\x0d\xff\xf1\xdf\x68\x94\x5d\x69\xe4\xe9\x1c\x0e\xa2\xf3\x39\xd4\xc8\x94\x7b\xcc\xa3\x20\xb0\xa4\x73\x9f\x07\xfe\x7e\xaa\xbc\x0b\x22\x8f\x82\xf6\xb5\x77\x21\xf4\x72\xfd\xf4\x03\xed\x4a\xb7\x77\x0f\xab\x6e\x00\xb5\x96\x0a\x7f\x3c\xdd\x3d\x2e\x9f\x1e\x57\x7f\x6c\xbb\x23\xb1\xb1\x10\x7b\xd4\xe8\xfc\x5e\x36\x1d\x97\x9d\x47\x81\x10\x8e\x36\xd9\xae\xdb\x1b\xac\x1a\x41\x5f\x95\xe3\x51\xa0\x63\x6c\x5f\x34\xaf\x59\x9d\xd5\x26\x2b\x26\x1b\x49\x44\x54\x82\xc4\xae\x9d\xe7\x49\x2c\x45\xdd\xe4\xb0\x99\x91\x1a\x9e\x5f\x9e\xa3\x50\xdb\xac\x69\x93\x15\xfb\x53\x2e\xaa\xac\xc1\x46\x7e\x17\x48\x46\x11\x0f\x03\x97\xbc\x7e\x12\x88\x46\x51\x4a\x89\xed\x0c\x95\x15\xcc\xe5\xf5\x51\x24\x43\xe1\xaa\x44\x6d\x5e\x88\x75\xc1\x89\x6c\x22\x8f\x22\x1d\x62\x0e\x0f\x87\xac\xf9\x51\x56\x6f\x6b\xa8\x4f\x87\x4f\x5a\x3b\x3c\x8a\x80\x62\xa9\x06\x93\xdc\xb9\xe2\x30\x8f\x68\x18\x09\xcf\xa4\x42\xf3\x81\xf2\xd4\x2c\x45\xe5\xa7\x68\x44\x43\x2b\xeb\xf7\xf4\xf3\xbc\xef\xe6\x76\x44\x8d\x8a\xdb\xc5\xef\x46\x34\xaf\xbe\x40\xfe\x19\xbc\x69\xfc\x7d\x8c\x87\x96\xae\x2c\xf2\x7c\xfb\x9a\x75\x00\x96\x91\xf0\x41\x3b\x2c\xfd\xff\x69\xfb\xb3\xe6\xc6\x71\x25\x7d\x1c\xfe\x3a\x7d\x31\x17\x5c\x01\xf0\x52\x96\x65\x5b\xd3\x5e\x34\x96\xaa\xea\xcc\x9c\x38\xa1\xc0\x92\xb0\x79\x4c\x91\x1a\x92\xb2\xcb\xf3\xe9\xdf\x60\x26\xc0\xcd\x92\xbb\x7f\xf1\xc6\xff\xa6\xdc\x2d\x80\x1b\x08\x02\xb9\x3c\xf9\x3c\x9a\xd6\x04\x97\x1c\xd8\xbb\xd3\x20\xc0\x7f\x39\x7b\x88\x54\x12\x34\xc7\xe4\x8d\xae\xca\x12\x34\x11\x29\x11\xc2\xf4\x5b\x7b\x29\x4e\x95\xf4\x7c\xca\x5e\xd7\x65\x1c\x22\x65\x31\x8b\xb5\x53\x6e\x7d\x3a\x4e\x29\x9b\x67\x4f\xc6\x84\x30\x8e\x19\xc2\x01\x0f\xbc\x52\xdb\xf4\x8a\x5c\x45\xcc\x71\xe2\xe5\x87\xd3\x01\x2f\x79\x7d\xea\x96\xd6\xdb\x93\xac\x65\xd9\x02\x98\x31\x3d\x5e\x77\x04\x89\xe8\x5c\xfd\xcf\x5f\xd1\xeb\xb0\x58\x58\x8e\x5f\xd9\x9e\x7c\xa8\x8b\x04\xa1\x2c\xce\xb8\x44\xe3\xb7\xa8\xda\x16\xea\xcf\xdb\xfc\x1d\xee\x46\xcf\x9d\xe9\x0c\xb4\xcb\x70\xb9\x34\xdb\x79\x8f\x3c\x96\x71\xaa\x70\xb5\xdc\xfd\x63\xdf\xe3\xa1\x58\x2c\x59\x88\xe3\x21\x4f\xed\x2b\xd4\xfb\xd3\xe0\x51\xc4\xd2\x28\xa7\x7e\x0a\xb9\xae\xfe\x9e\xab\x1b\x2b\x95\x22\x58\x66\xfb\xf8\xd7\xa3\xa0\x23\xa9\x3d\xf9\x6c\xf5\xe1\x2a\xaa\xe7\xc5\x49\x2c\xd6\x29\xb7\xc4\x16\xff\x79\x53\xd5\xae\xf0\xf2\xc2\x70\x69\x99\x79\x91\xe3\xbb\x3f\x6f\x27\xb5\x8e\xbe\x87\x8d\xd1\xab\x73\xe7\xb9\xce\xe5\xa1\xea\xf7\x8a\xd8\x80\x8a\xdc\x2d\x6d\x89\x47\xcf\xe6\x6d\x73\x26\x77\xc8\x62\x63\x23\x44\x91\x3b\x1e\x07\xbc\xf9\xaa\x28\x86\xc7\x18\x70\xa2\xee\x08\x08\xb4\x71\x79\xe7\xba\x9d\x6c\xfd\x31\x64\x31\x62\xa1\x10\x39\xb3\x2c\xe4\x87\xea\x6b\xcf\x59\x0c\x26\xf1\xb5\x12\xbf\x20\x9f\x7d\x83\x36\x30\x58\xfa\x51\xc2\x07\xda\x66\xe3\xdd\x2d\x89\x34\x47\x86\xab\xfd\x88\x54\x05\xe4\xe1\x2b\x40\x94\x25\x91\x49\x71\x37\x5d\x3f\xae\x77\xfb\xeb\xc5\xce\xef\x08\x49\x9c\xda\x20\x18\x40\x83\xcd\xe2\xa3\x57\x68\x22\x33\x7d\x57\x1d\xc3\x34\x18\xd9\x0a\x49\x2c\x02\x74\x81\x1f\x64\x99\x5b\x68\xda\x6a\x84\x34\x64\x49\x6c\x23\x9d\x39\xf6\xee\x6b\xb0\x75\xd5\x87\xce\x92\x04\x00\x0d\x00\x2f\xa4\xbd\x7a\xbc\x9e\xdc\x0b\xcb\x98\x17\xce\xdc\x40\xdd\xe4\xb2\x6c\x9c\x59\x5d\xe5\x7d\x49\x44\xd7\x8d\xbc\xa1\x7d\x4d\xd5\xa1\x8b\xff\x3d\xc9\x3a\x3f\x1d\x66\x8f\xcc\x74\x98\x79\x21\x42\x7a\x89\x33\x7b\x2d\xe1\x59\x86\xdb\x25\x86\x92\xba\x2d\xaf\xbf\x84\x08\x29\x07\x75\x8b\xe9\xd5\xc9\xa0\x67\x8c\x34\xfd\xdc\xa9\xee\x7f\xec\xb6\x7d\x0e\x8c\x25\x32\xc8\x38\x05\x45\x6c\x35\xc1\xf8\xb2\x44\x5a\x85\x36\xf6\x28\xa4\x72\x7e\x9a\x27\x2a\xc8\x0c\x61\xa0\xdf\xab\x37\xb8\x91\x45\x81\xf3\x65\x7a\xf3\x4a\x19\xd4\xac\x71\x65\x84\x03\x5f\x26\x4b\x74\x98\xa2\x83\xf0\x67\x21\x9b\x26\xd7\xbd\x2c\x7d\xd7\x02\xbc\xc7\x09\xdf\x54\xf5\x9c\xf2\x75\x7a\x09\x9d\x64\x41\xea\xc8\x07\x48\x87\xa4\x71\x55\x67\x97\x0e\xc8\x62\x8c\xfc\x3b\x89\xc8\xea\xe8\x58\x6f\xf6\x0a\x4a\xb0\xb9\xce\x65\xef\xf7\x27\x26\x49\x2c\x39\x3e\xf2\x70\x4f\xe4\x13\xb4\xe2\x86\xd1\x43\x55\xb6\xaf\xfd\xbb\x30\x5a\xa0\x69\x5a\x95\xcb\xea\x70\x84\xb2\x91\x67\x38\x10\x5d\x5f\x88\xa8\x22\x1a\xb3\x3c\xba\x38\x99\x79\x54\x37\x01\x21\xf1\x2b\xed\x66\x45\xcf\x52\xb1\x91\x75\xbb\xfb\xa8\xe6\x5d\x41\xab\xde\xc6\xa5\x08\x87\xab\x43\x18\xe8\x0f\x58\xd2\x2d\x38\xce\xee\xb8\xde\x6e\xa6\x70\x1f\x96\x58\x9b\x60\xa4\x4a\x57\x65\x03\x03\xbf\xa5\xc3\x9a\x74\xed\x82\x09\x5f\x28\xf5\x0e\x75\x9b\x77\x1f\xe1\x59\xa6\x07\x96\x06\x41\x82\x11\xd2\x53\x79\x94\x7d\x11\xb7\x5f\x8f\xce\xe7\xef\x58\x1a\x30\x1b\x39\xf8\xc5\x40\x95\x10\x4c\xe2\x04\x28\xff\xc6\x5d\x4c\xfb\x8b\xea\x39\x4b\x03\x57\x45\x4f\xb4\xcb\xa7\xc3\xbe\xfd\x80\xe2\x1d\xf6\x4a\xbe\xbc\xf4\x1b\x4a\x1a\x28\x85\x69\xa7\x46\x5a\x68\x3f\xd7\xe5\xbb\xac\x73\x59\x3a\x35\xa5\xe9\x3d\x85\x9c\xa3\xcb\xbf\x7a\x5e\x8a\x88\x3b\x25\xac\xfe\x44\xa1\x26\x5d\x6d\x69\xcc\xbe\xe8\x6c\x8f\xa9\xdb\xe6\x7a\x45\x9a\x08\x76\xbd\x07\xb2\xe9\x26\x72\xef\x06\x0f\xbe\x9d\xef\x6e\x34\x96\x6d\x6c\x9f\x6e\x76\xfb\xe5\x62\xe3\x2f\x96\x84\x91\x4a\x7b\x9f\x6d\x82\x41\xed\x1a\xa9\xc2\xb6\x96\x79\x03\x66\xad\xab\x91\xe6\x1c\x4b\x93\xcc\x72\x27\x24\x59\xbd\x0d\xbf\x2a\xa3\xba\x45\xec\x6e\x7d\xb5\xf0\xbf\xa5\x26\xf0\xd3\x12\x31\x61\x43\xba\x20\x4d\x21\xc4\x6c\x44\x53\xe4\xba\x77\x53\xbf\xc2\x21\x59\x9a\x5a\x7a\xde\x2b\x84\xaa\xf4\x87\x5b\x22\xdf\xa0\xc8\x50\xb7\x82\xdf\x9c\x8a\x02\x2b\x0c\xce\x26\x09\x52\x26\xd2\x40\xba\x34\xeb\xb6\x95\xdd\x67\xb7\x3a\x56\xfa\xd5\x9f\x90\x41\x66\x29\x86\xb8\x2e\x3b\x03\xfb\xa1\x32\xfd\xbd\x72\xa6\x8c\xed\x61\x9d\x27\xf8\x63\xfc\x3e\xb8\x04\x2c\x67\x03\x62\x0f\xbb\x58\xd7\xc4\x52\xae\x33\x2c\xb1\xd3\xb4\xa7\x4e\xd7\xb5\x54\x84\x29\xba\x58\xba\xae\x9a\xe6\xa6\xaa\xdf\xc6\x8a\xdc\xfe\x4e\x84\xb0\x18\x55\x34\xe0\xa3\x3e\xa9\x0c\x63\xcc\x4b\xa2\x8a\x96\x6c\x50\x3e\xa9\x6f\x8b\x09\xbd\xbe\x04\x6b\x3f\x8b\xf1\x72\x9e\x4a\xe0\x68\x09\x7a\x2c\xde\x96\x40\x77\x97\x6b\xc1\x59\xaa\x62\x8b\xc9\x3f\x4f\x16\xbe\x28\xcd\xf6\x38\x2e\xaf\x3d\x6b\xa2\xa5\x2a\xd1\x19\xb1\x9e\x63\xd2\x07\x0c\xc2\x14\x7a\x42\x30\x96\xaa\x8c\xd8\x74\x9c\x18\xf5\xf5\x28\x41\x38\xbb\x01\x0d\xb8\x0e\xf8\x4f\xdf\xa9\x0d\x19\x62\x0f\x9b\xf5\x05\x86\x31\x02\x47\xc4\x7f\x5f\xcd\x4a\x3e\x58\xaa\xa3\xbe\xae\xe0\x87\x2f\x03\x38\xef\x40\xa5\x3a\x52\x49\x30\x0e\xf9\x63\x21\x92\x43\x26\xfa\x3e\xb1\xc4\xca\x20\x2d\x0b\x4d\x56\xfc\xe2\xa2\x4c\x84\x3f\x44\x09\xf4\xd2\xb7\xa5\xcc\x8b\xbf\x27\xa0\xcc\x52\x13\x08\x2c\xf0\x5c\xca\xfa\x98\x57\xfe\xea\x46\x0b\x24\x72\xd7\xde\x41\x77\x69\xe2\xc1\x26\x4e\x8d\xb1\x91\x53\x80\xd9\xe5\x47\xdc\x04\x9d\x7f\x33\x7b\x5a\x08\xa5\x57\x58\xbe\xad\x0a\x73\xc8\xcb\xf6\x06\xc0\x2b\x7c\x4d\x6e\xc6\x76\x96\xf1\x10\x0e\xa5\x32\xdb\x4b\xf3\x61\xf6\xf4\x36\x0b\x88\xcd\x0e\x79\x13\x47\x11\x28\x36\x42\x0e\xb0\xd4\xda\x84\x80\x1e\xc8\xf8\xff\x98\xf7\x06\x24\x0b\xb8\x46\x6a\xbd\xc5\xc3\xfd\x7e\x77\xf7\xbc\xda\xde\x3d\xf9\x7a\x56\xc6\x02\x91\x50\x8c\x92\x6a\x87\xcf\x24\x3a\x59\x60\x08\xcf\xd7\x7c\xe4\xad\x7e\x7d\xd8\x3c\x9d\xdf\xdd\x59\x98\x4a\x42\x68\xe4\x8d\xe3\xb8\x3a\xff\x81\xb0\xd0\xa6\x48\x1e\xdb\x78\x9d\xae\xe6\x4e\xbe\xc3\x15\x40\x49\x35\xc0\xfe\xde\xa2\x48\x07\xb6\xbf\xb7\xeb\xaa\x9c\x15\x6a\x30\x16\x65\x06\x09\x55\x50\x32\xe3\x0a\xdd\xc3\xf1\xa2\xc3\xa2\x0c\xd0\x62\xf4\xa8\x9c\xee\x2b\xf6\xe4\x63\xc3\xfd\x44\x92\x63\xca\x90\x26\xf7\x8f\xe3\x4b\x2d\xfb\x45\x8d\x45\x86\xd8\xf3\x9e\x7e\x3d\xae\x9e\xf7\xdb\x1f\x9b\xcd\xfd\x7f\xf7\x6d\x60\x31\x69\xd6\x0b\x35\x91\x8a\xc3\x2c\xcd\xd8\x39\xb0\xe0\xa0\x47\xa7\x63\x2f\xd5\xe1\x1b\x8d\xc6\x05\xf7\xe9\x71\xb5\xff\xaf\x1f\xeb\xc7\xdd\xfa\xfe\x7e\xfd\xf4\xe8\x9b\x93\x24\xc0\xc5\x64\x71\xfd\xb0\x7e\xdc\xdf\xae\x76\xfb\x1f\xdb\xeb\xd9\xfd\xa7\x9c\x6a\xf0\x4b\xf8\xdd\x6e\x01\xb0\x46\xf6\xca\x9f\x80\x05\x12\x17\xec\x46\xbf\x02\xaa\xeb\x7e\x2d\x27\xec\x4d\x77\xc6\x13\x81\xaa\xe3\x57\xd0\x12\x4f\xed\x63\xe5\x70\x6b\x98\xef\x3c\xff\x3a\x79\x42\x82\xc9\x87\xbc\xdc\xf4\x3b\x0f\x13\x09\x71\x11\x60\x2d\xd9\x94\xe6\x6e\x76\xbc\x00\x8b\x99\x8e\xcd\x7a\xbf\xba\x5e\xef\xf6\x1e\x68\xc2\x32\xb7\x90\x1e\xbb\x57\xb7\x8f\xf6\xb5\xe7\x0f\xf3\xec\xe5\xae\x9f\x0c\x80\xe6\x53\xe7\x59\x0d\x85\xb7\x8c\xc9\x88\x85\x2e\xa9\xb9\x3d\xd6\x20\x67\x4e\x1c\x93\x71\x34\x90\xbf\xef\x5e\xeb\xaa\x9c\x66\xf3\x98\xcc\x12\xb4\x59\xa0\xd6\x51\xb0\x5a\xde\xed\x46\x44\x2f\x8c\x49\x09\x2c\xed\x53\x53\x77\x55\x61\x2e\x00\x4d\x98\xb4\x20\x5d\x46\xe2\xa9\x46\xa1\x2b\xb8\x01\xf8\x95\x97\xa6\xfa\xb8\xfa\xbc\xb0\x9c\x32\x0d\x1c\x3f\xa8\xf5\x4b\x99\x0f\x13\xc6\x08\xca\x5f\x75\x0f\xb5\xbb\xfd\xae\xb8\x88\x31\xa3\x8c\x4e\xa7\xa4\x51\x77\x79\xd3\x56\xf5\xe7\x98\x40\x83\x31\x63\x88\xb7\xa0\xa8\xf4\xdb\x4d\x5d\x1d\xb6\x50\xd8\xd9\x1a\xeb\x7b\x82\x12\xc1\x90\x8e\x2b\x3b\x5b\x76\x7a\x4d\x60\xc2\x7a\xbe\xb1\x9b\xbc\x6e\xda\xc9\x17\x09\x3c\x8d\x92\x9e\xd6\x9d\x12\xd4\x33\xae\x04\xc6\x2c\x97\xb8\x81\xe5\xcd\xaa\x8f\x93\xf7\xc3\xc2\x83\x20\x8b\x87\x5b\x18\xb1\xec\xf8\x76\x49\x09\xde\x13\x6a\xcb\x4d\x92\x49\x3c\x90\x19\x8a\xe4\xda\xba\x2a\x5b\x1a\x7f\xdf\x14\x46\x14\x28\x7e\x91\xa4\x5d\xef\x7d\x1f\xd7\x1c\x85\xca\x87\x2b\x1e\x72\x5f\x8c\x74\x53\xd5\x67\x58\x2f\x18\x8f\x52\x12\x13\x54\x79\xdb\x7c\xe4\x76\x38\x89\x4a\xb0\x84\xb8\x1b\x9b\xdd\x84\xf9\xd2\x77\xd0\x16\xad\x14\xd5\x83\x7f\x4f\x04\x24\x77\xed\xb1\x50\x98\x82\x3e\x52\x80\x75\x43\x3c\x13\xfe\xe8\x58\x72\x64\x35\xec\x77\xb7\x51\x32\x84\xc7\xc6\xa0\xaa\xd8\xab\x6c\x16\xc4\x84\x7f\x07\x4e\x01\x33\x9c\xd9\x22\x3c\x01\x4e\x88\xef\x4a\xbf\xa1\x4a\x92\xcc\xbf\xca\x48\xbb\xbe\x69\xc4\x91\xeb\xbb\x17\x53\x82\x6e\xcf\xd4\x55\x7d\x9c\x2a\xcb\xfb\xee\x69\x80\x06\xed\x1e\xe3\x3e\xce\x50\x3c\xbb\x30\xf0\x94\x2b\x1c\x8c\xe7\x4a\x13\xcc\x74\x62\x9a\xf1\x34\x0b\x24\xe6\xb9\x64\xab\x5f\x77\xb8\x66\xfb\x18\x79\x18\xfe\x6b\x14\x27\x1f\xfe\x4f\xfc\x33\xfa\xd7\x88\xdd\xe8\xcb\xff\xb8\x33\xb3\x90\xe8\x43\x8e\xa7\x82\xd8\xfe\xba\x6f\x62\xb6\xaa\x73\x1e\x66\xb8\xc0\x79\xcb\x70\xa2\x3d\x78\xde\xc6\xe3\x59\x18\x47\x03\xbc\x8b\x80\x0e\x7f\x69\xca\xf0\x2c\x94\xc6\x93\x9c\xbf\xca\x19\xe2\x91\x71\xc9\xb9\xe9\x96\xbf\xc5\xf3\x2e\x9c\x0d\xb6\x94\x51\xca\x47\xfb\xdf\x66\xa6\x0e\xcb\xb8\x0a\x25\x62\x84\x7d\xbe\x00\x1f\xf7\xa9\x2c\x3e\x47\x34\x46\x8c\x2b\x16\x20\x0e\xbe\xdb\x61\x36\x75\x7e\x80\xf9\x59\x78\x48\x12\x0b\xae\x24\x75\x72\xfb\x4a\x86\x68\xfc\xbc\xe5\x45\xe1\xa0\x16\xae\x45\x47\x02\xa9\x72\x7e\xe6\xad\x2c\xee\xab\x97\x97\x9e\x5a\x93\x71\x2d\x62\x8c\x48\xa1\xbf\xb9\xdf\xc8\xdc\xec\x9f\x4e\xc3\x91\x2a\x4e\xa9\x1c\x09\x4c\x38\xbb\x19\x93\x50\x95\xba\x03\x3f\xfe\xa8\xf3\x79\x87\x34\xf0\x3e\x1d\xd4\x35\xd4\x03\xd2\x7e\xba\x90\x74\x76\x4f\x4a\xea\x6b\x17\x66\xa8\x11\xc4\x0b\x89\x90\xe6\x3d\x1a\x7e\xc3\xa0\x75\x86\x64\x40\x7a\xa1\xfa\x6d\xbd\x7c\xea\x8c\x98\x81\xb0\x92\x71\x88\x02\x44\x1f\xe6\xe5\xbf\x41\xb7\xfd\x3c\x5b\xeb\xaa\xef\x91\x2a\xcc\xfc\x61\xc1\xa7\x07\x5f\x91\x82\xe2\xf4\x3e\x6c\x02\x96\xd4\x98\x3b\xdf\xea\x7b\xac\x18\xb7\x42\xe1\x26\x4f\xc6\x8a\xbf\x96\x95\xe4\xbc\x79\xee\x94\x73\xb8\x8d\xb9\x99\x3e\x5a\xd8\x45\x10\xa7\x58\xd4\xb4\x7c\x7a\x78\x58\x6f\xb7\xeb\xa7\xc7\xfd\xf5\xfa\xe7\xfa\xda\xb3\x6b\x32\x11\xc6\xca\xef\xc6\xba\xba\xf0\xcd\x8b\x90\xa5\x98\x0a\x3f\xba\x0a\x55\x5c\x8a\xa1\x9e\x3d\xb0\x08\x6d\xe6\x08\xe1\x9a\xd3\x01\xbe\x2a\xb0\x31\x11\xc5\x92\x11\xe4\xfa\x54\x97\xb2\x5b\xac\x1d\x67\x58\xdf\x41\x07\x68\x30\x1f\x73\xd0\xf0\x4b\x8e\x0c\x4f\x11\x19\x19\x03\xcd\xae\x06\xf9\xa1\xfc\xef\x20\x89\x22\xc8\xe6\x2f\xed\xeb\xaa\x84\xc3\x6c\xf3\x13\x71\x92\x62\xee\x67\xf5\xe4\xf1\x46\x22\x09\x03\x14\x32\x81\x43\xde\xf6\x95\x2b\x97\x46\x74\xfa\x94\x89\xd6\xd2\x81\x63\xae\x91\xc0\x1e\x9a\x5d\xb5\xad\x0a\x5f\xf4\xcd\x44\xea\x54\x8f\x47\xe5\xd9\xb3\x91\x62\x42\x52\x0d\xde\x2b\xf4\x48\x00\xdf\xe4\xb8\x14\x36\x55\xd3\xcc\x56\x37\xc1\x74\x86\xc2\x60\xc4\xaf\x71\x5f\x49\x1f\xdb\x5a\xb4\xa8\x23\x76\xf5\x79\x55\xd5\x75\xf5\x65\xeb\x13\xcc\x08\x64\x5d\x7e\xad\x0a\xd3\xd9\x8d\xf2\x37\x66\xfe\xdf\x65\xd1\x9f\x1a\x12\x2c\xd9\xdb\xde\x2d\xa2\x94\x55\x76\x51\x63\xa9\x83\x6f\x16\x69\x84\xfb\xf0\x3e\x6f\x96\x30\x43\xc5\x08\x91\x72\x84\xa0\x22\xef\xcf\x3e\xde\x6f\x77\x8b\xe7\x5d\x7f\x64\x46\xf5\x1b\x2f\x45\xa5\x64\xb1\x7c\xed\x6e\xfd\xb1\xea\x5b\x65\xcc\x3c\x7a\xcf\xff\x96\xc5\xc4\x51\xd9\xbd\xe4\x6e\x04\x30\x4e\x76\xa9\x38\xf0\xec\xf6\x27\x32\x21\x10\xa4\xfa\xbc\xa1\xa0\x35\x42\x66\x9d\x9f\xb0\xbf\x5f\x3f\xac\xfb\xdb\xcb\xb4\x64\xa1\x0b\x97\x36\x38\x28\x07\x30\xb9\x6c\xe1\xb6\xaa\x4c\xb7\x8b\x5c\x43\xe7\x19\x9c\xfb\xe0\xce\xb9\xf9\x22\x33\x29\x46\x16\x5f\x65\x3f\xa7\x33\x43\xe0\xeb\x1b\x40\xe9\x52\x30\x84\x40\x45\xc1\x13\xe1\x7c\xc7\x91\x05\x2b\x64\xe0\x38\xa2\x9d\x2d\x82\xfa\x7d\x7b\x24\x5c\xdb\xbf\xc8\x0b\x01\x1a\xa1\x99\x44\x8f\xf4\xd0\xea\xce\xc1\xef\x95\xe1\x98\xd0\x3a\xc0\x19\x85\xa2\xc7\x24\xe4\x3a\x3b\xd4\x12\xd0\x1f\x4b\x1d\x1c\x7b\x63\xff\xd9\x99\x50\x04\x99\xe7\x61\xef\x4c\xfd\xa1\xc1\x24\xa3\xda\x81\x75\xb9\xa8\x6b\x39\xff\xf4\x20\x4c\xcd\xf0\x29\x18\xe7\x87\x37\xf3\x5e\x51\x88\x83\x76\x83\x90\xbb\x7b\xca\xab\xf9\xeb\x00\xb7\x08\xd0\xc6\x44\xab\x6c\x30\xe6\xdf\xb7\x89\x34\xed\xf9\x2a\x5f\xf2\xaa\x7c\xea\xe5\x2d\xc2\x0b\xae\xbb\x00\xc1\x99\x93\x60\xbe\x2a\xbf\x28\x47\x8c\x37\x49\x01\x86\xc8\xbd\x9c\x76\xc1\x76\x6e\xb9\x66\x01\xa3\xc7\xf3\xd1\x88\xea\x2f\xad\x87\x99\x7e\x29\xcb\xc2\x84\xa3\x65\x7e\xa8\xca\xf6\x95\x6a\x81\x87\x0d\x37\x8b\x98\xc2\x07\x7c\x96\xd6\x16\x70\xdd\x8b\x38\xb2\x2c\xd2\x22\xf3\x52\x4c\x18\xe9\xf4\x0d\x71\xa4\x09\xa3\x56\x15\xb9\xce\x5b\xb9\x91\x2f\xb8\xd2\xfa\x6f\x2e\x4b\x0c\xc5\x3d\x6c\x5d\x1d\x70\x12\xee\xaa\x2b\x7a\xfa\xb1\x53\x90\xa5\xa0\x31\x5c\x77\x57\x95\xd0\xb4\x77\x30\x98\xb4\x19\x93\x4c\x9a\x1e\x4f\x79\xd6\xaa\xca\x78\x44\x24\x8b\x87\x53\xf1\x87\x2b\xbb\x1c\x1b\xcd\x19\x4f\x08\x06\x44\x6b\x59\xf7\x52\x6f\xaa\x7a\xd9\x39\xc9\x43\x9a\x2d\xe3\xa9\xc1\x02\x10\x92\x53\xdc\x96\xf2\xcd\x21\x33\xfa\x0e\x56\xa3\xb1\xb2\x79\xda\xed\xaf\x9f\x17\xeb\xc7\x31\x72\x22\x13\x91\xe6\xd6\xfb\xf8\xfb\x5a\x5e\x60\x59\x65\x99\x48\x02\xac\x4a\x5c\xfd\xd7\x8f\xef\xd2\xa3\x59\x16\x45\x89\xc3\x2e\x8d\xd0\x94\xfd\x74\xc8\xa2\x04\x93\xef\xb7\x84\x44\x70\x40\x2f\x73\x21\xca\x9f\x65\x89\xd1\x64\x4a\x1f\x64\x79\x2f\xcb\xe6\xad\xfa\xb7\x3f\x95\x8c\x49\xcb\x47\xfb\x44\xd2\x39\xc7\x2f\x93\x22\x0c\x1c\x1e\x71\xfb\xa6\x17\xa6\xbb\x99\xd9\xc7\x95\xa9\xb4\x0f\x15\x0e\xb4\xec\xf3\xe8\xd6\xec\x10\x99\xa0\x31\x72\x3c\xa9\x22\x6f\x5e\x1f\xa0\x95\xb8\xe3\x7e\x91\x59\x41\xd6\x20\x77\x90\x0e\x04\xee\x7a\x57\xb2\x81\xad\xb3\x57\xbe\xe7\x80\x65\x99\x8e\x42\x84\xcb\x39\x13\xd5\x33\x46\x9d\xcd\xa4\x64\xc0\x0d\xa7\x60\x71\x69\xaa\xaf\x04\x82\xe7\xaf\x00\x99\xf2\x8a\x65\xdb\x56\xb6\xb9\x5e\x15\x18\x04\x9d\x29\x6a\xb3\x0c\x64\x08\x14\x53\x2e\x61\x7b\xcc\xeb\xbc\x5d\x0e\x7b\x52\x06\x9a\x79\xaa\xd5\xab\xe3\x24\xce\xec\x3b\x40\x8a\xa4\xf3\xb7\x57\x8f\xcb\xf3\x1c\xef\xe3\x35\x3e\x03\x2b\x90\x63\x4a\x4d\x32\xc7\x99\x4d\x25\x72\xe5\x61\x68\xe0\x47\x03\x13\x5d\x74\x96\xd9\x2c\xe4\xc6\x6b\x10\x34\xbb\xea\x1c\x5e\x7f\x3a\x41\xac\x04\xf4\x6d\x5e\x65\xf3\x7a\x89\xd3\xfe\x3f\xce\x64\x2e\x64\x20\xc3\x30\xf3\x69\xd6\x51\x75\xa9\x9f\xeb\x32\x8c\x2c\x8b\x47\x94\xd3\x0f\x58\x76\xf8\x20\xdf\xbe\x51\x67\x98\x0c\x99\x8c\x54\x88\x6e\xff\xf6\x69\xf9\x8f\x2d\x94\xed\xae\x5a\xed\xee\xfc\xe9\xe3\x28\x41\xe8\x90\x3d\x95\xa6\x2f\xd6\x91\x09\x23\xdb\x7b\x52\x89\xe3\xdb\x04\xc1\xa4\xa4\xd2\xdd\x0e\x52\x0d\xd9\xff\xfe\xe8\x2c\x93\x24\x24\x51\x1d\x3a\xbb\x6d\xf3\x73\xe3\x00\x1a\x8b\x53\x7d\x5e\x73\x8d\xc9\x44\x12\x1d\xc2\x6d\xf5\x22\x27\x8b\xbf\x4c\x03\x22\xec\xbc\x3b\xc9\xf2\xee\x94\x8f\xdd\x60\x99\x66\x21\x67\x7d\x86\xde\x2c\xab\x1a\x26\xe9\x39\x99\x3a\x9d\x14\xcf\xa6\x32\x83\x17\x49\x96\x32\x4f\x88\xda\xbd\x65\xfc\xfc\xa6\x37\xc6\xb3\x24\x20\x38\xa6\xae\xab\x63\x55\xe4\x73\x73\x51\x72\x95\x44\x7d\x69\xd0\xae\x3a\xc8\xb6\xea\xb3\xe5\x52\x64\x31\x0e\xe5\xea\x1f\xcb\xbb\xc5\xe3\xed\x6a\x3f\xf8\x08\xbe\x4b\xc6\x00\xad\xa8\xab\xd3\xe7\x52\xd6\x3e\x46\x7a\x21\x80\x2c\x33\x20\xd9\x85\xce\x92\x5a\x0c\x99\x7f\xa9\x4c\x02\xe3\xd2\xfd\x3d\x0a\xf0\xfa\x56\x1d\x25\x66\x08\x27\x6f\x28\x6a\x00\x53\xaa\x2d\x26\x75\x92\x89\xc4\x83\xd9\x7a\xf9\x35\x5f\x92\xe8\x3b\x31\xe2\x46\x6f\xa0\xed\xdd\xff\x39\x3a\x5a\x6a\xa9\x90\xbd\x00\xa3\x31\x9e\x8b\xdd\xb7\x69\xe2\xcb\xe9\x8b\xac\x46\x39\x47\xa9\x4d\x16\x13\x1b\xcc\xe7\xf5\x62\xb3\xf9\x3e\xa6\x20\x4d\xc2\x1d\x61\x5e\x93\xbf\xd0\x1d\xeb\xca\xcc\xe3\x2e\xd2\xa4\x44\x34\x76\x94\x9f\x58\x12\x33\x50\x37\x4c\xf3\xa1\x5f\xf1\x85\xfd\xd0\x18\x13\x50\xee\xaf\xcc\xc7\xcc\x80\x4c\x1a\x08\x11\x24\x52\x56\x6d\x6e\x3f\x8b\xf7\x82\xa0\xfc\xcd\x39\x54\xaa\x84\x2c\xc0\x10\xd6\xcd\xa9\x3d\xd5\xe3\x28\x83\x04\x95\x60\xb2\x12\xa3\xad\x3f\x17\xcf\x8b\x71\xb4\x55\x02\x68\xe4\xf4\x5f\xde\x2d\x76\xbd\x66\x03\x93\x36\x66\x49\x3c\x7d\x15\xb2\xd8\x7d\x09\x51\x48\x6b\x22\x44\xfe\x14\x79\xe3\x59\x2c\xdd\x29\x54\x00\x12\x9b\xb6\x0f\xeb\xfb\xd5\xdd\x6a\xf0\x28\x54\x60\x39\x5e\x33\x47\xbd\x23\x54\xfe\x98\x0c\x89\x0a\x05\x39\xde\x96\xdc\xd4\xfe\x0e\x54\x01\x58\x74\xef\xd1\xf4\x2a\x04\x0a\x58\x50\xee\x6e\x3d\x06\xd7\xaa\x28\x0a\x03\xed\xa2\xaf\x18\x27\x1f\xb5\xc5\x11\xf1\x94\xfa\x80\x9f\x2f\x2f\xfe\x82\x0b\xf5\xfd\x53\x02\x1f\xe6\x4d\x4f\x76\x78\x81\x79\x86\xa9\xd8\xc4\x98\xfa\x7f\xcf\xe1\x23\xf1\x40\x49\x95\x44\x29\xc6\x7a\x4c\xb5\xcd\xcb\x97\x02\x06\x20\xd3\x64\x40\x55\x9a\x12\x70\xc0\x91\x01\xce\x5b\xb9\xce\x60\xc4\xba\x78\x9f\x37\x5f\x84\x46\xa6\x77\x93\x72\xc0\x42\x62\x5f\x96\xfa\xab\xaa\xdf\x88\x5f\x63\x0a\x49\x3f\x67\x2d\x29\x1e\xc4\x11\x09\x0e\x96\xad\x2c\x16\x5a\x9f\x0e\x08\xed\x37\xe3\x79\xaa\x38\x70\x54\x74\x6d\xab\xe7\xfb\x0d\x16\xc6\x8e\xac\x50\xc5\x81\xca\xe5\xb7\xb7\x3b\x5f\x66\x42\x4c\x39\xdf\xee\x2d\x4a\xe8\x98\xd8\x79\xf6\x9a\x4a\x57\x72\x68\x30\xc4\xdf\xe3\x6e\x55\x66\x52\x0e\x8e\xb2\x01\xea\x96\x94\xb8\x77\xd5\xd7\x95\x56\xc9\x50\x62\x42\xeb\x71\xfd\x70\xb3\x40\x0a\xe2\xd5\xee\x0e\x99\x6e\xfd\xb9\x24\x0b\x30\x5f\xd4\x4d\x96\xb9\x6a\x21\x53\xd2\x5a\x5f\xfa\x70\x9d\x5b\x9b\xeb\x53\xd1\xfa\x8d\x40\xa9\x98\xf2\x44\x1e\xb3\x06\x6d\x6e\x73\xfd\x95\xcc\xb0\xeb\x49\x8c\xa5\xa8\xe5\x39\x66\xd1\x1d\xe6\xdb\xb0\x4a\xf8\x63\xa4\x48\x98\x5b\x94\x69\xf7\xba\xa9\xea\xeb\xa1\xe6\xe4\x7b\xe8\xa0\x52\xd2\xe2\xc7\x3f\xe2\xae\xab\xca\x31\xb7\x20\x53\x4a\xdb\x94\x4c\xf4\x52\xbf\x1e\x64\xfd\x46\x1c\xa6\xbe\x59\xdb\x38\xf5\x61\x52\x28\x1b\x84\x6b\x8e\xf9\x86\x98\x32\xae\xf4\x07\xc5\xa8\xd0\x89\xeb\xf3\xd2\xca\x00\xd5\x7b\x3d\xc8\x97\x52\x52\x98\xd5\xb5\x40\x18\x09\x57\x5b\xb5\x79\xad\xda\x19\x0c\x48\x81\x4a\x70\xf1\x7b\x3c\xbd\xbc\x40\xdb\x4c\xee\xd8\x86\x04\xa2\xc4\xdc\x70\x55\xbb\x20\x0e\x3d\x22\x32\xa8\xce\xa2\x27\xca\xc6\x4a\x79\xe9\xb2\x42\x6a\xa4\xce\x21\x47\x6f\xfa\x82\x2c\x27\x4e\x17\x5d\xfc\x1f\x4b\x26\x60\x7e\x1d\xa4\x11\xb2\x44\xa8\x53\x5d\x4e\xc8\x41\xa6\x03\xae\x83\x94\x84\xe5\x6a\x68\x3a\xff\xe2\x8f\x69\x23\x68\x34\x1a\xef\xab\x17\xa7\xb3\x78\xfe\x24\xa1\x56\x58\x41\xe4\x77\xdc\x9b\xba\x3a\x74\x8b\xe0\xb2\x3a\x1c\xce\xe0\xc0\xce\x5a\x8e\x3a\x04\x29\x4d\x8f\xb1\xc1\x8c\x46\xbf\xd5\xea\x28\x26\xb1\x15\x4c\xee\xcd\xd6\x0c\x1d\xf1\x0c\xc0\x4b\x7b\x1f\x4f\xed\xf6\x62\x39\xbb\x8e\x23\xc3\xc3\x3e\x49\xe8\xe4\x6f\x46\xc9\x42\x1d\x73\x48\x47\x76\x72\xf3\x9c\x37\x6f\xba\xca\xe7\x55\x74\x3a\xce\x04\x5a\xc6\x9e\x85\xef\x4e\xd6\x4b\x39\x0b\xab\xeb\x18\x04\xa6\xee\x72\x27\x38\x4e\x08\x43\x59\x50\xbd\xf3\x05\x26\x3a\xa6\x93\x44\xa1\x74\xc4\xff\x74\xde\xa9\xbf\xb1\x84\x1b\xe9\xbc\xaa\xed\xe9\x08\xf5\x41\xce\x3e\x57\x9d\x18\x89\xae\xbb\x34\xe6\x27\x55\x32\x3c\x8f\x98\xb0\xbe\xff\xf0\x74\x2a\xa2\xd8\xd9\x8f\x43\x48\x63\x4a\x59\xc4\x34\x03\x6d\xfa\x75\x45\x16\x71\x2f\x3c\xe3\x76\x67\xcd\x05\xe9\x3f\xdf\x41\x51\xc8\x2b\x59\x7a\xbf\x5a\x0b\x91\x21\x0c\xdd\x2f\xeb\x38\xf9\x47\x05\xb7\x3a\xb3\x9c\x80\x1a\x6e\x77\xc0\xb5\xf3\x0c\xed\xad\xeb\x2e\x05\x45\x00\x3b\xc7\x44\xd6\x17\x95\xa6\xbf\x8f\xac\x6a\x29\x08\x63\xb4\x84\xee\xa2\x45\xf1\xb9\x6e\x9a\x93\xe7\x4e\x3d\xbf\xdf\x7c\x7f\x42\x15\x73\x7c\x4c\xdd\xb9\x01\xba\x5d\x7c\x89\x3c\x69\x95\x04\xa9\x1a\x49\xd5\x4a\x3d\xec\x10\x5a\xa5\x54\xf7\xff\x78\x33\x5e\x3f\xb4\xe2\x16\x11\xb1\xdd\x78\x35\x23\x3d\x4b\xa6\x95\xa4\xad\xac\x06\x5d\xbd\x43\x3d\xd0\x3a\x5d\x08\xda\x69\xad\x29\xd4\xd7\x19\x89\x3f\xc7\xac\x36\x67\x58\x2b\x2e\x94\x38\x69\x0d\x29\xea\x3c\x39\x88\xd2\x6c\xce\x9b\x80\x8a\xc4\x46\x7a\xe9\x74\x47\x4f\xbd\x58\xdb\x97\x23\x94\x70\x08\x9a\x0d\xd4\x4d\x55\xca\x62\xe0\xf7\xf6\x7d\xb4\x40\xbf\xfd\x20\xf3\xdf\xb9\xac\x5e\xa1\xfd\x7b\x00\x20\x0d\x69\x8a\x60\xf0\xf3\xca\x42\xf4\xe7\x9f\xe9\xac\x66\x4f\x83\x4a\x90\x16\xf9\xe9\xd7\xe3\xbe\x5b\x41\x67\x77\x6c\xc3\x04\x49\x4c\x1d\xf9\xd2\x43\x3e\x07\x54\x75\x9b\x10\x12\x17\x6e\x9e\x9f\x7e\xae\x3b\x17\x67\xfd\x78\xbb\x6f\xc6\x0e\x99\x09\x4d\x6c\xdc\x07\xbd\xc8\xeb\xa9\xcc\xa0\xef\x62\x7b\x9d\xeb\x7f\x6c\x56\xcf\xdf\x5a\x4e\x26\x92\x99\x72\x0c\x60\xa7\xe3\x25\x99\x8a\xfe\x0e\x4d\x1c\x9a\xcc\xc9\x0b\xee\xaa\x0d\xe9\x5d\x6f\xcf\x29\x0e\xfb\xad\xdd\xc4\x31\x55\x68\x2e\xfe\xdc\x41\x43\x99\xaa\x6f\x29\xf4\x2e\x7e\x26\x26\x4e\x2c\x41\x45\x3d\xb7\xf5\x5f\x74\xb7\x12\x71\x13\x2a\x47\xe8\xca\xa4\xea\xc3\x24\x11\xe8\xd8\x53\xad\x7e\xb5\xf8\x4d\x0a\x82\x0c\xb3\xbc\x6c\x7f\x94\xf9\xff\x9e\x1c\x7d\xed\x97\xfc\x98\xeb\xcf\x42\x96\xc8\x9e\x8c\xfb\x7c\xc9\xea\xfc\x10\x2e\x91\x83\xf2\x55\x36\x84\xb6\xfd\xe5\x1e\x49\x5c\x62\x7b\xf1\x07\x8a\x80\xe9\x21\x11\x3c\x65\x25\x3c\xeb\xe7\x19\x1e\xc4\xd2\xe5\xd9\x6d\x5e\x1f\x76\x3d\x95\xd0\x8c\x2f\x92\x19\x2e\xd2\x54\x7a\xbe\x6a\xc4\x7a\xfa\x06\xa3\x10\xe6\xb1\x5d\xb4\xd5\xe1\x1f\xfe\x57\x11\x71\x64\xcc\x19\x1c\x86\x7a\x39\x2d\xb2\x1e\xfc\x11\x23\x6c\x8a\xb1\xe0\x5f\x8b\xc7\xfd\xee\x69\xb7\xb8\x9f\x42\xa2\x4c\xc6\xa3\xd0\x07\x02\xa0\x7e\x2b\xe0\xb9\xaa\x50\x53\xae\x24\xe1\x1e\xf7\x0a\x47\x5f\xb8\xc9\xc0\xfa\x28\x39\xa5\x2b\xbe\xb8\xd2\x46\x1a\x4a\x4e\x3a\x32\xd2\x8d\xaf\xa0\x10\xff\x4c\x66\x0e\x90\x91\x06\x7a\x45\x70\x54\x67\x72\xd0\xac\xf9\x19\x41\x32\xb7\x8d\x2c\x5e\xa0\xd4\xb3\x6c\x82\x51\x9c\x54\x02\xf2\x86\x48\x86\xdc\xcf\x3a\x0c\x11\xbe\xe2\x65\xe2\x91\x44\xe0\xd4\x38\xa2\xe5\xd1\x38\xe9\x94\x7b\x1a\xf8\xed\x49\x35\xba\xce\x8f\xd3\x12\xf8\x73\x71\x47\xa3\x05\x38\xc9\x1b\xf2\x3f\xdc\x70\xed\x2a\x87\x81\x9e\x3d\x84\xd1\x26\x74\x45\xbc\x1e\x76\xe8\x5a\xc0\xa4\x9e\x39\xd1\x54\x1f\x04\x9c\x1f\xea\x6b\x8d\x4d\xb2\xc0\x6b\xd6\x3e\x11\x5d\xeb\xf4\xd4\x10\x08\x0a\x17\xdc\x9e\xca\xb1\x31\x0c\x61\x48\x81\xad\x1e\xa0\xb2\x2a\x29\x1f\xe1\xbd\x69\x88\xb3\x40\x52\xe1\x41\xdd\xb4\xfb\xa3\xfc\xdc\x2b\x24\xe4\x3e\x38\x91\xa2\xbe\x1b\x31\x16\x2c\xfe\x4c\x70\x41\xb9\x86\xe2\xab\x06\xe7\xdf\x5b\x55\x20\xd6\x12\x71\x5c\xae\x86\x79\x42\x25\x39\xef\xa9\x89\xe5\x0c\x63\x61\xe3\xc2\x14\x48\x52\x22\x8e\x7a\x81\xf6\xc7\x7a\xf4\x73\x66\x51\xcc\xf5\xbe\xd2\x4e\xfa\x11\x4e\x07\xfa\x60\xfb\x47\x4e\x13\xe5\xf8\xd0\xfe\x5d\xd5\x79\xef\x70\x01\x67\x82\x3b\xab\x69\xa1\xbf\xba\xd0\xc0\x4d\x86\xcb\x87\x81\x02\x5e\x70\x5e\x37\xcd\x79\x7c\x3a\x08\x46\x84\x99\xee\x03\xa8\xab\xdf\x9f\xeb\xc3\xf1\x2c\xf4\x1d\x84\x92\xe8\xc1\xcb\x52\xe6\xc5\xa3\x6c\x5f\x6b\xa9\x5f\x9f\xea\xf6\x55\x5e\xbd\xca\xbc\x59\x37\x57\x20\xdb\x57\x79\x5d\x2d\x5f\x41\x16\xd7\xd0\xf5\x3b\xbc\x7e\x25\x82\xf1\xeb\x3f\x64\x59\x84\x69\xbd\x6e\x57\xa7\xba\xc8\x59\x3e\x1e\x32\x1d\xf9\x2a\x87\x1f\x4d\x8f\xa8\x98\x06\x4b\x40\xb2\x08\xbd\xca\xb7\x4f\xed\xb9\xcb\xa7\x0f\xa9\x42\x0a\x3d\xbc\xbc\x13\xd5\x22\x2e\x60\xa1\x8f\x4c\x80\xe2\x06\x67\x96\xad\x01\xcc\xaf\xaa\x21\x44\xd0\xaf\xaa\xd9\x7e\x36\x3d\x21\x66\x67\xa9\x0a\x5c\x82\x7e\x0e\xd4\x2d\x60\x02\x16\x47\x7d\x0a\x68\x2a\x21\x34\x7d\x12\x13\xc7\x81\x18\xf1\x2e\x3c\x59\xda\xef\xce\x79\x2e\x60\x32\x8b\xc6\xc9\xe6\x66\x52\xef\x7d\x3e\xdc\x3d\xf9\xdb\x67\xa7\xc0\x48\x12\xbc\x90\x66\xb8\x5b\xcd\x10\xfb\xe2\x75\x64\x74\x5d\x6d\xe6\xf9\x4e\x30\x86\x27\xf1\x5c\x41\xb9\x99\xf1\x24\x32\x80\x44\x48\x17\xaa\xf4\x56\xc4\xf6\xcf\x73\x81\x39\x00\x41\x32\x42\x35\xa0\xa1\x6e\x56\xbb\xbb\xf9\xb9\x14\x7d\x22\x9b\xe7\xd5\xe6\xc7\xf3\xf2\x6e\xb1\xed\xe3\x70\x60\x93\x04\xbd\x6f\x3b\x09\x84\xf5\xad\x5c\xe8\x61\xfc\x97\x04\x94\xd9\xb6\x52\xbf\xcd\x33\x3d\x74\x80\x0d\xa2\x00\xb7\x2a\xac\x6a\x23\x29\x82\x75\x0b\x87\x66\x12\x88\xb7\x41\x9c\x85\xae\x70\xfd\x41\x9e\x2d\x82\xb7\x81\xa0\x39\x75\x6a\x00\x71\x20\xee\x03\x8b\x02\xdf\xee\xaa\x78\x3a\x2b\xe2\xe1\xfe\x5c\xd0\x6c\x58\xd5\x6d\x28\x33\x24\xae\x5e\x6e\x16\x13\x24\x93\x8d\xd2\x00\x24\x7e\xc9\x2d\xd4\x87\xbc\x84\x5f\x90\xbf\xbc\xf6\xf3\xcf\x46\x99\xc1\xc4\xbc\x44\x55\x7f\x28\x8a\x21\xfc\x68\xe3\x94\xe1\x9e\xa2\xaa\xd3\xcb\x6b\xeb\xf9\x83\xa7\x43\x6f\x63\x66\x88\x3c\xb1\x5b\xad\xe3\xfe\x50\x1d\xa0\x53\xbb\xfc\x5c\x56\xfd\x6f\x26\x42\xf2\xfa\xa2\xfa\x80\xa6\xbd\xca\xfd\xa2\x6f\x13\xa6\x10\x7f\x40\x95\xc6\x00\xb5\x1e\x11\x03\xd9\x84\x11\x91\xf2\xf3\xcd\x7f\xcd\x99\x0e\x27\xe3\x99\x70\x81\x1f\x71\x91\x5b\x70\xce\xe6\x98\xc1\xcc\x26\xc6\xc6\xc9\x14\x72\xea\x98\xaa\xa7\x4b\x86\x4d\x6c\x86\x3b\xb0\xa5\xc8\xf8\xdc\x8a\xb1\x69\xa0\x7d\x1e\x6c\xbd\x7c\x9a\x0d\x47\x1a\x65\x2e\x9a\x7d\x6a\xc0\xf4\x90\x61\x9b\x02\xb1\x6f\x35\xaf\xd5\x07\x26\xb4\x0a\xf0\xb2\xae\xae\x07\x13\xa4\xdd\x40\x26\xce\x34\x40\x72\xd6\x2e\xb4\x4c\x70\x49\x0c\x34\xdd\xcb\xfb\xb3\xea\x61\xb3\x96\x81\x90\x30\x12\x92\x1d\x91\x24\xd2\x6c\x76\xfd\x78\xac\x88\x53\x0a\xde\x4f\x50\xbc\xc3\x73\x55\xc0\x54\xfe\x87\x59\xce\x82\xc0\xf4\xc2\x18\x4b\xaa\x07\x1b\x81\x8f\x2c\x57\xc4\xe9\xb7\xb8\xfe\xb9\xde\x3e\x3d\x6f\x51\x1e\xd9\x37\x8a\x84\xa4\xff\x11\x56\xeb\x50\xd2\x3f\xbc\x73\x22\xc6\xbb\x83\xcd\xa2\x10\xa3\x2d\xf8\x65\x4d\x3f\xa7\x4c\x40\x1a\x7b\xda\x0d\xc4\xf0\x77\x9f\xeb\xb4\xe8\xc9\x66\xd6\x10\x43\x7c\x7e\x80\xea\xd4\x3a\x10\xc7\xf9\x44\xaa\x95\x9a\x76\x0e\xd4\x53\x27\xea\xc4\xab\xff\x4f\xa8\x13\x99\x95\xc0\x68\xd7\x1b\x55\xe4\x8e\xf2\x1b\xae\x97\x4a\x24\x9a\x4c\xb4\x8f\x3e\xc2\x87\xdb\x3b\xbe\x50\xec\xf9\xd3\x2a\x0e\x18\xd6\x04\x9c\xa5\xd3\xf2\x5b\xab\x32\x8a\x81\xd7\x48\xd8\x3f\xe4\x1f\x96\x50\xbb\xd8\xea\xbc\x44\xe7\x3f\xce\x6c\xd8\x56\x87\x01\x2e\xe5\x07\xf9\x06\x03\x9b\xb4\x38\xff\xf8\xe1\x05\x2b\xc8\xea\x88\x33\x57\xb1\x7d\x94\x14\xb2\x77\x86\xdf\xff\x9e\xf2\x23\x32\x70\xd5\x34\x33\x6e\x00\x9c\x18\x49\xde\x1b\x64\x56\xcb\xc0\x78\x0c\xa1\x03\x08\xcf\x1c\x4d\x6b\x24\x57\x72\x4e\xc6\x75\x53\xd5\x0b\x43\xa2\xad\xae\x1b\x08\xee\x78\xb2\x0e\x55\x0b\x4e\x5d\x79\x39\x4a\xc5\xd9\x6e\xb7\x98\x84\xc7\xea\xce\x9e\x9e\xa4\x6d\x66\x0f\x67\xd3\x00\x31\x1c\x94\x62\xba\xee\x0c\x98\x25\xee\x25\xc5\xa8\xc8\x9a\x07\x41\xc6\x42\x07\x5b\x9b\x88\xbf\x4d\x46\x3d\x19\x3a\x73\x52\x6f\x30\x23\x92\xf7\xaf\x44\x78\xce\x0e\xea\x0e\xd0\x24\x98\xd0\xca\x76\x4c\x9f\xc6\x83\xc0\x32\x0f\xca\x6f\x0b\x17\xed\x9b\x62\x0c\x3c\x57\x87\x7f\xbb\xfe\xd1\x78\x10\x66\x01\xa6\xb7\xbd\x71\x79\xbd\xbe\x9e\x96\x89\x76\x5d\x78\x42\x2a\x8a\x24\x4b\x7e\x6e\xa1\xe2\x41\x68\x48\xe6\x09\x45\x73\xf4\xdb\xaa\x34\xe7\xe2\x05\x3c\x88\x82\x5e\x59\x6e\x7b\x84\xfa\x50\x54\xb5\xe9\xf9\x47\x78\x10\x09\xc2\x69\x12\xb3\xca\x73\x6e\xe0\x9c\x60\xe7\x97\x88\x0b\x0f\x22\x29\x30\xf4\x31\x61\x9a\x9f\x5e\x3a\x96\x92\xf4\xca\xdb\xea\x78\x53\xd5\x7e\xdb\xe0\x41\xac\x79\xea\x83\xec\x94\xea\x72\x04\x1c\xae\x3d\x51\x0c\xcd\xb2\x0f\xc8\x77\x9e\x20\xea\xdc\x4c\xe1\x41\xca\x38\xa6\xb3\x51\x80\x08\xb5\xf2\x56\xcf\xcb\x90\xa5\x18\x7a\xb5\x52\xc3\x63\xb5\x94\xfa\x75\x56\x00\xe9\xe7\x04\x53\xb4\x90\xde\x41\x71\x1c\x50\x19\x3c\x60\x96\xa3\xd6\xdb\xfe\x30\xc8\xb2\x7d\x83\x06\xe1\x01\x8f\x4d\x44\x95\xde\x0d\xd4\xed\xf2\xfe\xb1\xad\xce\xe0\x16\x5c\x67\xd1\x2d\xef\x6e\x58\x2e\xd2\x41\xf0\x20\x0b\x22\xa5\x71\x1f\x51\xa7\x97\xe4\x8f\xfe\x57\x02\x59\x7d\x7c\x7c\xec\xe1\x37\x26\x98\xf6\xbe\xe2\x8d\x07\x59\x92\x61\xbd\x3d\x98\xbc\xed\x71\xb2\x55\x7d\x46\xa9\xf7\x9f\xff\xc2\xd9\x79\x5e\x8c\xc8\x9f\x4d\x48\xb4\xa3\xaf\xa0\x7f\x73\x99\xb1\x1e\x6e\x4d\x60\xfe\xef\xd2\x65\x3c\x90\x3c\xc5\x4c\xff\xed\xfa\x66\xf7\x37\xe6\x94\x84\x04\xab\x22\x5d\xe5\x5c\xe7\x4f\x1e\x46\x55\x8c\x13\xab\x91\x07\x2a\x23\xe0\xfe\x7b\x95\x9f\x29\x2c\xe1\x81\xce\x24\x5a\x51\x4d\x5b\x83\x3c\xfc\x31\x3d\xd8\x04\x84\xf8\x40\x13\x6b\x65\x86\xb9\x69\xe2\x00\xc9\x33\x6a\x68\x4f\xb5\x53\xce\x8a\x2e\xbc\x22\x63\x15\xee\x08\x5b\x28\xa0\xcc\x4f\x87\xe7\x5c\xbf\x4e\x40\xfb\xdf\x3c\xab\x0d\x88\x71\x6d\x3f\x48\x6d\x12\xbf\x81\xbf\x11\x9b\xa8\xb0\xaf\x5e\xec\xec\xa6\x29\x0c\x83\x07\x96\x91\x9e\xdc\x0b\xa0\xe9\x80\xbc\x08\x17\x3e\x13\x2b\xa9\x1c\xe4\xa5\xe7\x6d\xc6\xc2\x1f\x39\x61\x4b\xe6\x81\x55\x94\x7c\xb8\xad\x0a\x33\x5b\x95\xc2\x20\x0d\x31\x1c\x7c\x24\x91\x2d\xf9\x02\x43\x18\x61\x7a\xb5\x30\xe0\x26\x08\x3c\xb3\x46\x71\x06\xad\xe5\xfb\x81\x40\x71\x9b\x3d\x66\xa5\xea\xb6\x19\x79\x76\x3c\x0c\x21\xc4\x4c\xdc\x5e\x76\x66\xe5\x33\x58\xaf\x7a\x78\xf6\x5d\x84\x71\x6c\xa5\x17\x42\xea\x57\x77\x27\x26\xcf\xc3\x38\xb1\x18\x41\xcf\x75\xf5\x20\x7f\xf7\x05\xa0\x3c\x8c\xc1\x26\xd9\x84\xd7\xc6\x6f\x53\xfb\xe3\x17\x4a\x11\x1e\x26\x01\xf1\x5c\x7a\x3f\xec\x1a\xde\xe7\x92\x65\xb3\x03\x20\xc6\xdc\xd0\xa0\xa3\xfe\xdc\xed\x61\xb3\xd3\xa6\x41\x8c\xe5\x25\x88\xea\xbb\xee\x36\xee\x59\x21\x14\x0f\xd3\x2c\x14\x29\x19\xbb\x44\x71\xea\x27\x4a\xc8\x02\x83\x79\xb1\xe5\xcf\xe7\xfe\xa7\x50\x63\x44\xe8\x67\xde\xca\x83\x53\x33\x7e\x84\x8f\x6f\x30\x88\x3c\x64\x69\x2c\x7d\x85\x6b\xe7\xee\xd4\x9f\x9d\x95\x0e\x5f\x89\x55\x78\xc8\x38\xe1\x1b\x86\x2a\x20\x33\x2d\x46\xe1\x21\xcb\x84\x76\x68\xd1\xd3\x57\x89\x19\x1e\x32\x88\xad\xcb\x62\x4d\x69\x6c\x67\xa7\xb1\x09\xf1\x52\x4b\x0d\x4f\xa7\x76\x76\x12\x1e\x0b\x1b\x8e\x92\x10\xd7\xed\xeb\x6e\x32\xe1\x7c\x3f\x4d\x0a\xef\x9d\x95\x30\xd0\xf7\xf2\x90\x1b\x69\x06\xae\x21\xa7\x92\x76\x53\xcd\x0f\x17\x91\xca\x1c\x66\x0a\x47\x72\x84\x63\xe1\x61\x16\x67\x88\x05\x5d\x4f\x38\x56\x79\x98\x99\x00\x17\xcf\x63\x67\x2e\x6a\x68\x7a\x93\xa9\x6b\x0a\x4d\xe0\xed\xf7\x17\x94\x94\x9f\x5e\x50\x76\x4b\x9b\xdb\x1f\x31\xd2\xec\x98\x0d\x67\x8f\xaf\x13\xf2\x55\x1a\xe4\xe1\x30\xc3\x3d\x69\x60\xf8\x7e\x6e\x97\x0b\xff\x93\x09\x65\xe0\xd5\xa2\x37\x64\xde\x7e\x15\xf1\xe1\x21\x04\x14\x16\x28\xf2\x43\xde\x5e\xd5\xb2\xd4\xaf\x98\xfd\xf3\xcd\x69\x38\xc2\xc9\xdd\x0e\xe2\x21\xe3\x85\xce\xd9\xac\x2e\x47\xcd\x43\xc8\x74\x44\xf2\x2f\x43\x18\x8d\x87\x36\xd6\xe8\x5a\x56\xa5\xcb\x39\xcf\x6d\xe6\xe9\xb3\x5a\x6e\xd1\x4e\xc1\xa4\xe8\x4d\x7d\x1a\x30\x28\x67\x27\xb3\x15\x41\x18\x4c\x03\x21\xf1\xf4\x51\xa3\x40\x46\xdc\xf3\x81\x3f\xd9\xe1\xcd\x45\x61\xac\x0c\x61\xac\xa4\xb9\xaf\x66\x83\x1e\x85\x3c\x43\x10\xd0\x7b\x0e\x1f\x18\xf5\xbc\xaf\xda\x27\xdb\x47\x5b\x06\x0d\x3e\x1e\x45\xa1\x40\x7c\x86\x63\x7a\xbc\x23\xe6\x55\xdf\x28\x38\xf1\x5c\xe5\xef\xae\xca\xe7\xec\x83\x47\x91\xcc\xc0\xf6\xb6\x12\x96\xc9\x9c\xd1\xab\x70\x9d\xe3\x30\x91\x6e\xe2\xdc\xd6\xd5\xe9\x78\x0d\x43\x30\x7a\x7a\xda\x38\xd2\x86\x84\xad\x5b\x14\xdb\xb9\xa9\xea\x6e\x03\x9d\xf7\x52\x71\xe2\x44\x6f\xdb\xdd\x17\x5e\x28\xd7\x29\x09\x63\xe8\x41\x74\xd7\x79\x83\xb1\xe9\x4d\xbf\x4d\xcc\x6e\x31\x11\xa1\x15\x3e\x64\xe0\x75\x32\xfc\xa0\xa4\x46\x60\x39\x08\x2a\x06\xee\x7d\x30\x90\x47\x29\xa4\x18\xe6\xf8\xd1\x40\x8d\xc1\xb7\x99\x95\x1b\x31\x96\x60\x07\x9f\xeb\x1f\x25\x56\x79\xc4\x04\x20\x94\xad\x36\xf9\xbb\x2f\xb1\x9c\xc4\xe5\x78\xd4\x19\xab\x7a\x18\xe5\xd9\xd9\x79\x1a\x9b\x41\xe5\x08\xb1\x44\x67\x36\xf8\x68\x2c\xb8\xc6\x23\x9e\x69\xc9\x06\x7a\xda\x0f\x80\xa3\x4b\x63\x0c\x65\x88\xe3\xff\x9a\x5d\x52\x11\x61\x91\x9b\x3b\x98\xb1\x9e\x60\xf8\x79\x24\x04\x49\xde\x50\x0d\x84\xcf\x09\x8c\xee\x20\x0b\x99\x9f\x3a\x0f\xcd\x0b\xda\x6b\x57\x60\x7b\xba\x1a\x1e\x65\x5c\xa3\x7e\xc7\x8b\x3c\xf4\x62\xd2\x7d\x9b\x49\x50\x03\xcc\x9c\x9a\x76\x03\xc7\xf3\x70\x7c\x1e\xc9\xc0\xf1\xfb\x6f\x36\x93\x31\x97\x19\xc7\x25\x97\x86\x6c\x07\xf2\xf0\x73\x36\xa8\x2a\x25\x06\xe1\x47\xf8\xc0\x1d\xe0\x4c\x01\x29\x8f\x14\x18\x5c\x2a\xdf\x7b\x02\xb7\xd9\x0c\xd5\x92\x96\x11\x17\x08\xb8\xfa\x5c\x9c\x0b\xde\xf2\x48\x03\xf1\x37\xc8\xe2\x43\x7e\x36\x4e\x12\x98\x98\x4d\x91\x14\xd4\xdf\xb7\x09\x88\x98\xa9\x86\xf7\x4a\x77\x2f\x6e\x3e\xd3\x80\x13\x56\xda\xd6\xd5\xe1\xac\xc7\x15\xd9\x00\x30\xdf\x82\x94\xbc\x0d\x8c\x1c\x8b\xc8\xa6\x09\xef\x8b\xd7\x3d\xde\xf4\xd6\x47\x16\x79\x64\x05\x60\xcc\xd5\x49\xcd\xd4\xd0\x39\xd4\x93\xaa\x59\xea\x18\x07\x52\x62\xa0\x17\x77\xac\xbc\x7c\xd9\x2f\x65\x6d\x26\x16\xa0\xef\x08\x80\xdb\xd3\xa2\x84\x43\x95\xbb\xeb\xc4\x61\x18\x41\xea\x97\x47\x54\xee\x7b\x96\xe5\xbc\x16\x60\xba\x10\xc5\x61\x98\x60\x5c\xcb\x97\x97\x2e\xa1\x6c\x4f\xf5\x97\x37\x12\x87\x11\x41\x3c\xba\x01\xba\x83\xdf\xcb\xd7\xf9\xaa\x12\x87\x3c\xcd\x84\x8f\x4d\xae\xfb\x7b\xe2\x22\x70\xc4\x09\x2b\xbf\x22\xcf\x8e\x03\x81\x25\x5f\x05\xd8\x36\x8b\x67\x8d\x51\x62\xd1\x67\x73\x0e\xe5\xb2\x3b\xf7\xdc\x88\x8a\x63\x60\xf8\x4d\xde\xcb\x53\xa9\x5f\xe7\x24\x74\xa3\xaf\x37\x4e\x82\x14\xcd\x49\xac\x5d\x7a\xa8\x4a\xf8\xbc\xae\x3e\xca\xc7\x5c\xc3\x4c\xa4\x83\xc7\x89\x63\x8e\x6e\xa0\x5d\xeb\xea\x5a\xb6\x5f\xe5\x53\xbe\x4d\x69\xf1\x98\x69\x89\x32\x1f\xb9\x27\xbf\xbd\xe8\x57\xfd\xe5\xdf\xbf\x77\x41\x9e\x4a\x64\x45\x76\x83\xf5\xa3\xc4\xfd\x1e\x7a\x38\xd6\xac\xb7\x93\x9b\xc0\x92\x20\x04\xe1\x4d\x7c\xa9\x98\x5b\x52\x43\x96\xc6\x3c\x15\x66\x8d\xfa\x57\x13\x40\xd8\xf9\x9b\x10\x21\x43\x42\x0d\x05\xed\x53\xf9\x64\x90\xb1\xe6\x8f\x69\x19\x53\xd7\x49\x22\xd6\xbc\xac\x2e\xd1\xc1\xfb\x8e\x89\x45\xa2\x55\x37\x86\x4f\x0e\x08\x32\x5b\xd6\x62\xc1\x01\x2b\x45\x9f\x8e\x50\x5e\x55\xbf\x67\x4f\x2a\x44\xc8\x9d\x4b\xb5\x6e\xb6\x6d\x55\x23\xe3\xc0\x78\x21\x89\x33\x4e\x5b\xec\xdd\xfa\xf6\xce\x9f\x54\x66\x06\x5d\x75\x64\xb9\xea\x16\xa9\xe5\xa7\xee\x1d\xb9\x58\x5a\x48\xc8\xa3\xa4\x40\x9a\xff\x5d\x31\x81\x1f\x61\x51\x39\x2a\xbf\xaf\x05\xe5\xa3\x81\xd0\x4e\x81\xa2\xaf\xdd\x76\x64\xd7\xfe\x6c\x9a\x87\x98\x43\xe9\xec\xdb\x70\xb4\xe6\xc4\x5a\xa5\xe1\x20\x5f\xb5\xd6\xd5\x1c\xc0\xc6\x63\x03\xc6\xab\xb2\x39\x89\x64\xd7\x60\x83\x08\x5c\x90\x69\xa1\xdb\xfc\x1d\xee\x64\x43\x06\x61\x1f\x9c\x1d\xee\xd0\x86\x80\xc0\x34\x5b\x9d\xea\xf6\xd5\x29\x54\xf7\x67\x82\x28\xd3\x3d\x9d\x5f\x5e\x99\x5c\xcb\x62\xf1\x3c\x34\x67\x18\xa5\x2a\xab\x27\xfb\x4b\xbe\xc3\x70\x07\x60\x61\x10\x4d\xf7\x52\x30\x8b\xe6\x6e\x4e\xac\xcd\x93\x20\x16\xf8\xf2\x1c\xb9\x11\x48\x03\x75\xb3\x3f\x3f\x5d\x92\x50\xab\x98\x79\x6d\x17\xf9\x02\x43\xf4\xe0\x5c\x6c\x9b\x27\x51\x9c\x21\x4b\x45\x3b\xa6\x1e\x98\xc1\x45\xce\xfe\xea\x8e\x8f\x2d\x47\xb5\xfd\xce\xdc\x5b\xb5\xaf\xdd\xaa\x98\xb7\x3d\x81\x88\xeb\x94\x48\xaa\xe8\xec\xdc\xf4\xc6\x17\xc0\x5c\x11\x82\x78\xf6\xb0\x89\x89\x70\x7f\xfd\x35\x2e\xe5\x9f\x6e\x44\x49\x62\xa8\xe2\xfe\x3a\x7f\xc9\x11\x60\x3a\x9a\x16\x09\x8b\x04\x6e\xbf\x57\xc4\x9f\xfb\x57\x45\xca\xe7\x2a\x06\xfc\x99\x52\x52\x9d\xea\x86\xb2\xbb\x0a\x52\x47\x7e\x99\x64\x09\x03\x9d\x59\x9f\x8a\x40\x40\x8b\x53\x64\xf0\x77\xd4\x75\xe1\x94\xac\xa9\x8b\x7c\x8c\x06\xe6\x09\x87\x00\x23\x2d\xc8\x33\x22\xf3\xa2\x33\x85\x1e\xab\xc5\xc9\xa7\x67\x78\x22\xa2\x34\xc8\x46\x08\xf5\x29\xae\xcf\x75\xca\xba\x4d\x06\xa1\x25\x9e\x0e\xfe\x11\x3e\xee\xa0\xae\x36\xe3\xe2\xe6\xbf\xce\x4c\x7c\x89\xeb\x26\x59\x68\x30\x10\x79\x95\xcb\xf6\xb5\xa8\xca\xc7\x6a\x34\x4d\x2e\x62\xd9\x79\x92\xa9\x28\xa2\x22\xda\x53\xd9\x7e\x22\x19\xfc\xe5\x91\x96\x71\x84\x8b\x97\x87\x57\xee\xe0\x70\x2c\x86\x15\x25\x51\x9a\xa3\xd7\x83\xb4\xcd\xd7\xd5\x49\xf5\x45\x4a\x3c\x51\x26\x40\x8c\x7e\x5d\x9a\x5b\x79\xdc\x0f\x3f\x13\x1b\xb8\x96\x83\xd4\xf7\x69\x8c\x09\x9d\xda\x7b\x89\x02\xc0\xbc\xc3\x43\x6e\x7c\xd4\x31\xd1\x61\x6c\x43\x4f\xa5\xbc\x68\x5b\xa9\x5f\x71\xf9\x9f\x3c\xa8\xb6\xb1\x72\x1f\x1c\x12\x4a\x13\x1c\x63\x3a\x88\x26\x8c\x31\xdb\xe4\x05\x47\xbb\x99\xb2\xa8\x41\xfa\x0b\x99\x24\x0c\x5c\x2c\xfb\xa6\xaa\x3f\x64\x6d\x08\x04\x72\x03\xd0\xec\xfa\xdb\x31\x82\xb0\xbd\x2f\xd0\xfe\x99\xb7\xed\xe7\xf6\x2d\x2f\x8a\xad\xee\xec\xde\xd9\xe5\x14\x79\x80\x3f\xa1\xfe\x9c\xcc\x36\x88\x02\x34\xc3\x7e\x63\x54\xfc\x6f\x95\x9d\xf1\x04\x92\x34\xa2\x7a\x03\xe3\x6b\xa4\xbb\x1f\x79\xef\x57\xc8\xba\x6d\x9e\xec\x57\x09\x47\x9e\x80\x88\x30\xaa\x44\x1c\x0a\x8f\xd7\xfb\x9b\x1f\xdd\x3f\xcf\x8b\xe5\xfe\xea\x69\xe7\xcf\x65\x83\x10\x19\xb2\xae\x6b\x90\x87\x73\x51\xfa\xc9\x78\xdb\x38\xc4\x90\xb4\x53\xd9\xea\xbe\xb7\x41\xeb\x65\xb6\xc3\x27\x36\x8e\x28\x1a\x43\x6a\x07\x5f\xa7\xe0\xf9\x2d\x3c\xb1\xa0\x42\x37\xd4\x48\x8f\xfd\x0b\xb5\x5b\x37\xd5\xfc\xc5\x5a\x4b\x22\xb8\xaa\xaa\xde\x96\x52\x4d\x5b\xd3\x20\x4c\x74\xe0\xad\xe2\xb5\xae\x1e\x64\x5e\x0e\x60\x6d\x9e\x06\x59\x22\xa8\x66\xb5\xec\xd6\x16\xb7\xb3\x78\x26\x81\xb3\x6f\x23\x0d\xa4\xc6\x70\xd9\xfd\xd3\xed\xfe\xae\x3a\x35\x9e\x4e\xd1\x4b\xaf\x9e\x3f\x2a\x04\x8d\x71\x38\xaa\x48\x5f\x3f\x9d\x0f\x70\xa6\x11\x53\x3c\x1b\xa4\xbe\xaf\x4f\xe5\x0b\x7c\x85\x37\xba\xce\x71\x22\xd0\xd1\xd7\xc4\x96\x7a\xdb\x4f\xb3\x34\x16\x36\x1e\xb2\xd3\x54\x46\x35\x9d\x19\x69\x2c\x33\x04\x40\x1f\x4f\xcd\xeb\xf9\x9d\x2c\x4d\x02\x83\xeb\xaa\x2b\x85\xf7\x27\x67\x59\x88\xd8\xbd\xfd\x2b\x0a\xd7\xac\x4a\xa8\x5f\x3e\x77\xd5\xf1\xf4\xbd\xba\x14\x4f\x45\xa8\x91\x24\xee\x9d\xf2\xfd\x8e\x93\x63\xe0\x47\xf5\x17\xc8\x52\x13\x3b\xef\xf2\xaa\xaa\x8a\x9b\x1c\x0a\x13\xf6\x8d\x42\x63\x81\x45\xf7\xf5\x4e\x22\x88\x17\x2e\x9a\xd9\x0c\x01\x25\x9e\x53\x66\xda\x2a\x03\xa9\x59\x8f\x0e\xf8\x5a\x26\xcb\x53\x25\x25\x4e\xc4\x8f\xbd\x3d\x75\xee\x9c\x2b\x9c\x1f\x52\xd9\x3c\xd5\x51\x80\xec\xaa\x58\x78\x45\xd4\x77\xbe\x85\x13\x7b\xae\xa3\x9e\x03\x59\x0c\x1a\x31\xe7\xc7\x5c\x73\xa3\xd9\xc0\xf6\x39\x31\x87\x53\xcd\x81\x21\x25\x32\x18\x82\x02\x8f\xd7\x96\xd4\x70\xf0\x7b\x3c\x8a\xf7\x8c\x38\x47\x78\x0a\x1a\x48\x98\xa9\xfb\x12\x5c\x15\xe1\x28\xa5\x91\xda\x84\xb4\xb6\x48\x43\x88\x2c\xed\x21\x22\x90\xda\x4c\x61\xf4\x4e\x57\x07\x07\xb9\xdd\x2c\x77\x7d\xa3\xb1\x31\xd5\xc4\x39\xd5\xd1\x9e\x63\xc9\x0f\x04\x0b\x78\x82\x96\xea\xc3\x67\x9b\x17\xba\xca\x4b\xa7\xb5\xd1\xb7\xeb\x0c\xe7\x3d\x1e\x75\x5b\x13\x8d\xca\xd9\x11\x62\x01\x10\x43\xe9\x21\x2f\xf3\xc3\xe9\xe0\x4b\xd9\x48\xd0\xc6\xf7\xb1\xd2\x8e\xb6\xec\x19\x9a\x89\xb3\x30\x31\xc4\x38\xd0\xca\x37\x30\x57\x9f\xa8\x81\x34\xeb\x22\x24\x56\x4f\xd6\xef\xfe\x3d\xb3\x30\x63\xe8\x31\x34\xf2\x70\x2c\x28\xf5\xed\xbc\x0a\x67\xd8\x0d\x20\x89\xc4\x1f\x22\x43\xf4\x1d\xfe\xf3\xd4\xb4\x07\xf9\xd6\x19\x05\x9e\x51\x02\x03\x2f\x7e\x13\x65\x51\x66\xb4\x1a\x69\xfc\x36\x53\x03\x8e\x45\xc0\xd0\x5a\xc5\x78\x59\x7e\x80\x7b\x84\xc1\x7e\xff\xc1\xb1\xc8\x2a\xdc\x23\x9c\xd3\xdf\x5d\x56\xe6\xe5\x77\x28\x70\xce\xe2\x30\x0d\xcc\x48\xd7\x88\x84\x71\x2f\x65\x5a\x58\x12\x52\xc5\xdc\xf2\xa4\xe4\x7d\xae\xfa\x70\x07\x4b\xe2\x10\xcb\xd8\x9f\xd7\xbb\xf1\x2c\x65\x49\xac\x91\x5c\x6c\x54\xd2\xbc\x81\x76\x5c\xce\xec\x3b\xa6\x60\x06\x79\x23\xca\xad\xcc\x49\x0b\x39\x4b\x18\xc7\x7c\xc4\x9d\x2c\xda\x81\x9c\x9a\xb3\x04\x22\xc4\x4c\x5a\x99\x17\x5b\xf0\x90\xd5\xee\x77\xc7\xb5\x0b\xd2\xec\x11\x03\xed\xe7\x38\x4b\x59\x42\xce\xe6\xf1\x38\xfc\x24\x02\x3f\xea\x17\x27\x64\xca\x1c\x3b\xde\xa8\x78\x69\x53\xa3\x2a\x0c\x91\x28\x9e\x63\x4b\xfc\x3b\x88\x54\xce\x58\xac\x82\x9e\xec\x7d\xbd\x7c\xda\x7f\x44\xfe\xd6\x18\x67\x68\xb1\xdc\x56\x85\xe9\x4c\xb5\xbc\x94\x7d\x93\x70\x52\x52\xa4\x87\x5f\xbe\xe7\x2d\xac\xaf\x67\xef\x99\xa9\x94\x45\x23\x21\x5b\x07\x0d\x3e\x83\x57\xe3\x4c\x04\x31\xa1\xe8\x5e\xaa\xd9\xb4\x14\x91\x14\x8e\x56\xff\x56\x96\x5f\x89\x83\x38\x13\x2c\x42\x10\xa2\x63\x66\x00\xe3\x22\xb3\x68\x36\xcd\xd0\x5a\x9c\x09\xa1\x85\xcb\xa6\xed\x8f\x23\x65\x04\xce\x84\x36\x48\x2f\x71\xa8\x4c\x6e\x3f\x07\xa7\x6a\x76\x35\x0d\x2c\xf0\x09\x95\x56\x3a\x3e\xf1\xc9\x04\xcc\x22\x4a\x9f\xdc\x48\x0d\x9d\xd5\xd0\xff\x0e\x09\xbe\xc6\xfb\xea\x85\x20\x21\xde\x06\xf6\xae\xe1\xb7\xf8\x2e\xce\x54\x4c\xfc\x69\x6d\xe5\xe8\x60\x50\x2c\x6a\xde\x07\xe2\x01\x8c\xa6\xe6\x34\x8f\xf3\x33\x26\x00\x8e\x01\x5f\xbe\x40\xbd\x81\xda\xad\xbd\x6e\x81\x24\x22\xde\x73\xee\x08\x53\x5c\x58\x17\x58\x59\x14\x85\x63\x90\xf0\x4f\xaa\x2c\xc7\x45\x69\xc4\xe7\x3f\xec\x04\x4c\x47\x74\x8f\xf7\xff\xf5\x8f\xfe\xa7\x98\xd0\x0c\x84\xa5\xb8\x95\xa3\xce\x29\xb9\x5e\x88\xf6\x21\xf8\xce\x5c\x9a\xfa\xab\xb7\xc1\xb4\xa0\xd0\xcb\xf6\x28\xeb\x56\xee\xbc\xd1\xe9\x5b\xb3\x04\xfa\x6a\xa5\x19\xa2\x9c\x33\x0d\x11\xe2\xfd\x68\x4b\x6d\xaa\x42\x9d\x3e\xeb\xc1\x53\x61\x26\x00\x7c\x0d\xa8\x41\x76\xa9\x3a\xe9\x7c\x49\x16\xe1\xa2\x66\x2f\xc1\x58\x15\xf5\x59\x05\x02\xc5\xad\xcb\x6e\x7f\x2c\xdb\x5e\x5e\x8e\x33\x08\x63\x92\x7c\xe8\xe6\x25\x95\x9e\x95\x2f\x8b\xa6\xf9\x86\x58\xe3\xeb\xd7\x0e\x89\x40\xd2\xb2\xdd\x48\x86\x8c\x33\x48\x29\xe8\xdb\x59\x43\x8b\xa9\x41\xc0\x83\xc0\xc6\x5e\x84\xd8\x4d\x92\x93\x7a\x03\x7f\x5b\x3c\x88\x03\xe9\x92\x55\x3b\x79\x9a\xae\x00\xdc\xa3\x5e\x1f\xf2\x12\x16\xd6\x82\x6e\x2f\xa8\xcb\x70\x1e\x38\x4b\xb3\x21\xda\xea\x19\x5e\xa0\x6b\x66\xb6\xdf\xbc\xba\xa9\x76\x7b\xca\x0d\x38\xc9\x8b\xc6\x47\x12\xca\xbe\xbf\xe6\x94\x3e\xc8\x6d\xeb\xb4\x9c\x2e\x04\x05\xdc\x01\x61\x06\x96\x8a\xc4\xdf\x07\x74\xdc\x85\x7b\x4d\x22\x81\x09\x9b\x83\xb3\xf5\x8f\x43\xe9\x36\xe7\x89\x89\x51\x20\xfd\x4a\x96\x6f\x24\x9b\x7a\x0b\xed\x75\xe5\x98\x42\x26\xb0\x3c\xce\xd3\x34\x45\xc9\x44\x14\xb3\x24\x99\xda\xe5\x69\x9c\x7f\x9a\x5e\x38\xd5\x94\x4f\x83\xf6\xf7\x74\x95\xec\xcc\x1b\x5c\x03\xdb\xb1\x1f\xfc\xf5\x29\x59\x92\x60\xb0\x6c\xb5\xbb\xfb\xc7\xd5\xae\x3f\xd8\x6a\x62\x9c\x31\xe6\x9b\xfc\x90\xeb\xcc\x55\x18\xba\x4a\xd6\xab\x53\x5d\x12\xad\xe7\xb0\x92\x73\xae\x25\x3e\xbf\xab\xa2\xd8\xd4\xf9\xa1\x17\x4b\xe0\x5c\x44\x09\xd6\xfc\x9e\xca\x5c\x57\x75\x39\x7b\x0a\x11\xa5\x26\xf2\xaa\x07\x06\x7e\x23\xfc\x3d\x9a\x0d\x82\x10\x41\x36\x04\x4b\x5b\x98\x4f\x15\x61\x12\x95\x0c\xb2\xb8\xbb\x91\x4b\xcb\x05\xb0\x0c\xbc\x4b\xdb\xb4\xe4\xf2\xad\xca\xb6\xce\x7b\x8b\x9a\xcb\x48\x20\xe4\xcf\x0f\xe5\xa2\x34\x4b\x59\x14\x5f\x8a\xce\x5c\x77\x65\x19\x02\x46\x46\xe2\x0a\xa3\x6a\x0d\xce\xb5\x09\x35\x69\x19\xdb\x6e\x27\x3a\x27\x9c\xc4\xb9\x09\x08\xfb\xf4\x22\x0f\x70\x9b\xdb\x75\xf3\xd4\xcb\x08\x70\x6e\xc2\x14\xc1\x7c\xff\xb5\x18\x14\x30\x38\x37\x89\x40\x36\x15\x4a\xc7\x90\xa0\xd5\x45\x40\x16\x37\x32\x91\x81\x5f\x63\xae\xe1\x7d\xb4\x1a\x72\x48\x08\x9d\x71\xac\xab\x43\x85\xb3\x74\xf1\x2e\xf3\x62\x64\xeb\x70\x60\x81\xdb\x79\xba\xeb\xc8\x02\xb6\xa0\xab\xd2\x34\xbb\x6a\x44\xeb\xca\x39\x28\xad\x94\xcf\xec\xd4\x9f\x7b\x5d\x19\x18\x17\xb6\x73\x6e\x83\x00\xcb\xc6\x8f\xa8\x9f\x88\xcc\x13\xd8\xd9\x54\xc3\xb7\x6b\xe3\xcc\xc2\x50\x31\x3a\x31\xf3\xb9\xd5\x69\x32\x0e\x25\x2f\xac\xcd\x0b\x9a\x06\xde\x6f\xe8\xbb\x5a\x69\xd3\x21\x78\x8c\x2b\xc7\xe3\x4c\x5d\x85\x8b\x40\xd0\xfb\xc3\xa4\xcb\x20\xd3\x3f\xeb\x24\x09\x94\xa0\x11\x69\xe8\x08\x36\x7c\x1b\x58\x02\x43\xf9\x09\xf3\x5c\xa9\xea\x62\x41\xb9\x3b\x28\x8c\xe3\x34\x1d\x59\x11\x4b\xaa\xc6\x05\x33\xb8\x18\x22\x94\x06\xb3\x98\x8b\xfb\xfb\xa7\x25\x52\x2b\xec\x97\x4f\xcf\x8f\xab\xe7\xed\xee\xe9\x71\x35\xf4\xb2\x18\x9e\x58\xbd\x43\xfd\x7a\x6a\xde\xbe\x3c\xc2\xa5\x68\xa8\x3b\x3e\x4a\x29\x6c\x20\x8d\xd9\xc9\x66\xa8\x72\x18\x6f\xf6\x22\xb2\xc4\x2d\x8e\x72\xd4\x75\xe3\x02\xea\xd7\x27\x28\xbc\xb5\x28\xe2\x58\x6b\xb7\x51\xfc\xca\xdb\xb2\xfb\xaa\xa7\x8f\x1c\xa7\x01\x86\x03\x9c\xa8\xf7\xe2\xf4\x3d\x65\xe7\xec\x60\xce\x30\x83\x20\x8d\xd9\xc8\xcf\xb9\x2b\x25\xe2\x8c\xa1\x91\x70\x0b\xe5\x5b\xbe\x21\xd1\x96\xb1\x49\x26\x62\x43\x98\x6b\xfd\x2a\x8b\x02\xca\x17\x70\x10\x31\x39\x56\xda\x70\x7d\x93\x80\xa3\x5f\xf6\x8c\x58\x69\x9f\x8c\x99\x3d\x4d\x92\x84\xdc\x99\x81\x5b\x28\x8a\x1f\x65\xde\x36\xeb\xd2\x56\xf5\x61\x4c\x09\xd5\xf5\x93\x08\xb9\x78\x84\x53\x5d\x4d\x6e\x29\x49\x09\xa3\x9b\x37\xf8\x19\x9c\xdf\x6b\x44\x9a\x10\xe5\x7b\x23\x27\x94\x76\x5c\xf0\x80\xe8\x1c\xb1\x7c\xd0\x05\x84\xcd\x0d\xf4\xeb\x98\xe0\x2a\x0b\xc7\x6e\x96\xaf\x81\x70\x34\x64\xff\xaf\xfe\xc2\xec\xbe\x44\x67\x8d\xfa\x88\xb8\xb7\xec\xbf\x3a\xb9\x22\x8b\xa3\x90\xb0\xde\xb9\x06\x8c\xb3\x79\x38\xa8\xc8\x78\x22\xfc\x13\x50\x7c\xe9\xaa\xcf\x26\x0b\x29\xb9\x4d\xc6\x2f\x6c\xf9\x2a\xcb\x12\x8a\x29\x46\x79\x48\x52\x08\x09\xa4\x07\xd2\x9d\xad\xfe\x6c\x5a\x59\x34\x57\x9f\x7f\xe6\x17\x08\x21\xb8\x50\x69\x84\xf8\x29\x0f\x11\xbf\xd4\x8d\x11\x9c\xdb\x87\xad\x67\x6a\x59\x5c\x20\x1e\x85\x66\xe6\x0d\x80\x59\x7f\xd5\xae\xfb\x76\x1c\x95\x48\x50\x6d\xee\xed\x53\x41\xfd\x08\x23\x82\x51\x2e\x94\x49\x30\xa4\xac\x6a\x90\x6f\xcb\xaa\x7a\xcb\x27\xf4\x5e\x5c\x28\x10\x01\x09\xf8\x41\x8d\xb5\xa1\x7b\xbf\x2c\x9e\xdf\xff\x85\x02\x2a\x0b\xfa\x9f\xff\xfe\xab\x18\xac\xd0\x61\x1a\xd2\xbe\xd5\x40\xfd\x8e\x8f\x3c\xa8\x55\x76\xcd\xc2\xe9\x6c\x16\xd0\xc2\xd3\x47\xb9\x01\xa8\x9f\xe1\x3d\x87\x0f\xdf\xc5\x44\x1c\x59\x5c\x54\xf5\x15\x21\xe5\xbb\xc4\x11\x96\x8a\x5c\xad\x76\xfd\x51\x32\x16\xcc\x2d\xf0\xd7\x3d\x5b\xb5\x6b\x84\x44\x21\xff\xe2\xbf\x91\xf0\x07\x3f\xb8\xd9\x77\x09\x29\x20\xa6\x63\x5a\x6c\xd6\x39\xcc\x57\x98\xa5\xf8\xd6\x1f\x12\x56\xc4\x82\x34\xd5\x3b\x63\xec\xc7\xf1\x8c\xa2\x1a\x17\x36\xa3\xd0\xce\x28\xcc\x2b\xac\xe1\x6a\x6c\x34\xf4\xb5\x2d\xbe\xd8\xad\xfb\x34\x16\xa6\x42\x38\xd3\x57\xb7\x2d\x0b\xe2\x00\x3f\x93\xcd\xfd\xe3\xfe\xe9\x50\xe6\xa6\x2a\x0a\xe9\x2d\x80\x2c\x48\x88\x5f\x9f\xf4\x95\x6b\x30\x39\xae\x9d\xae\x60\xe1\x76\x24\x92\xe3\x0f\x48\x83\xd4\xd9\x95\x18\x05\x81\xb2\x69\xcf\x20\x50\xb2\x80\x11\x46\xea\x05\x5a\xc7\x22\x3f\x48\xfa\xf0\x2c\xc8\x44\x26\x46\x9f\x88\xd3\xb7\x75\x26\xcc\x18\x98\x3d\x20\x81\x66\x8e\x58\x16\x48\x22\xa6\x1a\x66\xe6\xd9\x91\xcf\x02\x1d\x47\x13\xab\xeb\x64\xf2\xb6\xaa\x9f\x41\x57\x97\x00\x96\x59\x98\x92\x1f\x49\x2e\x68\xf5\x01\xe6\xb1\x6a\xe5\xc8\x96\xcb\x42\x10\xe0\x18\x23\xf5\x0a\x1d\x90\xfc\x1d\xa8\x64\xb3\xb9\xa9\xea\xd5\xe1\x58\x54\x9f\x30\xfd\xf6\xfd\x3e\x90\x85\x36\xc6\x77\xea\x22\xe5\x54\xef\x76\x55\x55\x6f\xb3\x80\x56\x16\x09\x95\x58\x8f\x89\x94\xcd\x97\x51\x8e\x4c\x80\xf1\x44\xe4\x7f\x27\x51\x05\x62\xac\xda\x02\x18\xbf\x0f\x9e\x1c\xbc\x6a\xfc\x77\x06\x6d\xff\xfa\x5f\xfe\x02\xc0\x40\x3b\x93\xf8\xfc\x97\x96\x45\x36\x75\x3c\xd4\xed\xbe\x38\xbd\x15\xfd\x3e\x94\xc5\x41\x8a\x98\x97\x1f\x8f\xf7\x4f\xcb\x3f\x57\xd7\x23\xb6\x50\x9e\xc5\x11\x31\xe2\xe5\xba\x5a\x7d\x51\x10\xe5\x59\x9c\x5a\x5c\x74\xfb\x05\x68\x0b\xed\x35\x61\x33\xcf\x55\x07\xf3\x2c\x09\x02\xa4\xae\xfa\xef\xa7\x1f\xfb\xab\xd5\x6e\xff\xb0\x7e\x5c\xed\xaf\x9f\x96\x3f\x1e\x56\x8f\xbb\xfd\x66\xe1\xc9\x0e\x79\x96\x44\x06\x33\xe2\xcf\xf0\xf2\x8c\xe9\xf0\xd9\xa0\xa7\x69\xa0\x46\x56\xe2\x78\x99\xc8\x52\x63\xd1\x82\xf4\x70\x9f\x3f\xe1\x73\xba\xc7\x67\x4c\xc6\xb1\xb3\x27\x3c\x58\x7c\x5d\xb6\x15\x3a\x6c\x94\xb2\x3e\x3f\xe5\x98\xce\x10\x8a\x35\xf8\x88\xc5\x7c\xc0\xfb\xa9\xcf\x03\x43\x0a\x14\xe5\xcb\xd2\x31\x96\xde\xca\xfe\x1e\x79\x6a\x42\x3b\x10\x11\x4a\xd3\x37\xa8\x94\xa8\x8e\x5f\xc0\x6d\x8b\x1b\x59\xb7\x6b\x17\xb5\xf5\xbd\x84\x0a\xb1\xe8\xd0\xef\x4b\x2b\x59\x17\x9f\x57\x79\x3d\x0c\x42\x16\x69\xac\xd9\xf6\x3d\xe2\xbe\x41\x49\x24\xf9\x5a\xca\xa2\xaa\x73\xc2\x78\x7d\x6b\xad\x66\x32\x25\x95\xeb\x63\x4d\x81\xae\x6e\xe5\x6b\x96\xf2\xf8\x0c\xb2\xb3\x26\xfc\x89\x25\x8b\xd0\x70\xda\xe5\x50\xef\xaf\x64\x93\xeb\xbe\xc5\x66\x43\x88\x63\x7b\x84\x12\x05\x70\xa6\x43\xab\x53\x4b\x60\x64\x94\xbd\xc6\xa2\xea\x9b\x4b\x7c\x4e\x3c\x03\x15\x63\x04\x72\x51\x38\x1d\x1b\xa9\x5b\x17\x99\x98\x87\x64\x2e\xfc\xf5\x27\xd2\x41\xe4\xa0\xe3\xf7\xf0\x0e\xc5\xe9\xd8\x13\x36\x50\x0f\x19\x44\x29\x86\xfa\xd5\xff\xfc\xde\x55\xc1\xef\x99\xbf\x29\xc3\x38\xc3\xa2\x0b\xdb\x19\xc6\x68\xe1\x38\xff\xbd\xef\x20\xad\xed\x5e\xe8\xf5\x62\xf9\xe5\x58\x4d\x94\x46\xf7\xd5\x0b\x25\xd2\xd6\xcd\x46\x7e\x76\x9e\x97\xe7\x71\x1c\x3c\x6b\x19\x9a\x00\xe3\xb1\x5b\x40\x37\x87\xea\xd4\xfe\x66\xda\xdf\x9d\x22\xd2\x4a\x7b\x02\x3f\x30\x3d\x69\xa4\xbf\x9d\xc8\x64\xd9\x58\x63\x61\xd1\xdd\x08\x82\x33\x7c\x07\x08\x31\xd7\xaa\x4e\x9f\x17\xe2\x4e\x7f\x85\xf1\xa2\x9a\x66\x77\xba\x38\x0c\x71\x3b\xdf\xe5\x87\xca\xdb\x3e\xdf\xd8\x24\x32\x4e\x88\xd4\xa6\x2a\xcc\x20\x85\x30\x99\x45\x32\x09\x6c\x14\x8e\x85\x24\x26\xc1\x1f\xd7\x29\x4d\x93\x98\x80\x39\xa8\xc7\xf4\xad\x16\x2f\x97\x2c\xa3\x88\xce\x83\xfc\xbd\x95\x65\x2b\xc9\x28\xd8\x4c\x04\x51\xb8\x64\x8a\xa1\x1f\xb6\x58\x3f\xaf\x36\xfe\x47\xce\xc2\xc8\x29\x09\x5c\xb5\x7a\xd5\xbe\x7e\x61\x7a\xe0\x92\x8b\x2c\xf4\xd2\xde\x98\xf1\xf1\x5b\xa0\x77\xad\xa4\x10\x01\xea\x5a\x55\x47\x28\xa7\x49\x35\x99\x05\x1a\xe7\xe6\x55\xde\x2e\x1a\x98\xc5\xc7\x2f\x57\xf0\xc8\x2c\x89\x13\x35\x72\x0e\xb6\x47\xf9\x51\xf6\x42\xef\xff\x31\xb9\xc1\x8c\xc7\xca\x78\xc0\xe5\xe1\xd8\xc2\x3e\x8c\xff\x98\x9e\x8d\xcb\x88\x64\x70\x50\xac\xd8\x9b\xea\xd3\xe7\x54\x89\x51\x69\x5f\x7e\x95\x1b\x89\xc5\x5d\xbe\x91\x13\x8f\x5f\xd3\x6f\xe5\x73\x80\xa3\x5f\x56\xa5\xb2\x0c\xa3\x95\x14\xa6\x47\xb6\x8b\xbc\xfd\x9c\xde\x90\x4e\x0d\x6e\x5b\x07\x2c\x64\x73\x42\xeb\xd3\x60\x93\xd4\xca\x20\x65\x15\x7a\x30\x54\xeb\xd3\x6b\x26\xcf\x26\x95\x36\x04\x87\x96\xc6\x5c\xc1\x85\x1d\x56\x9a\x28\x41\x47\xc0\x83\xc3\xcd\x50\x30\x20\x8d\x0a\x59\xe6\x11\x64\x98\x19\xed\xec\xc1\x22\x6f\xda\x51\x97\x0c\x01\x1d\x45\xfe\xf2\x8a\x5a\xad\x97\x98\x89\xcf\xf9\x69\xf3\x55\x4d\x02\x4f\xf0\xcb\xba\xa9\x61\xba\xc0\xff\xbf\xad\x17\xa0\x19\x7a\x20\x5e\x6b\x63\x52\xaa\x7a\x99\x33\x42\x7c\x3d\x8d\x0a\xfb\x3a\x4e\x9d\xdb\x5c\x13\x31\xc9\x39\xed\x8e\xb3\xeb\xbd\x0a\x92\x08\xfd\xa4\xb1\x89\xe3\x9a\x42\x1e\x29\x2a\xa5\x6d\x5e\xab\xd3\x79\xd1\x7e\xae\x42\x95\xc5\x63\x66\x9e\xfc\xb7\x9b\xa1\xbe\x3a\x7b\xf2\xef\x78\x36\xa9\xd0\x70\x4b\x9e\x3a\x06\x57\xba\xdd\x8f\x02\x20\x7f\xf8\x0e\xae\x50\x0a\x11\xf8\xc4\x9c\xd9\x53\x66\x5e\xa8\x82\xe6\x2a\x92\x81\x17\x11\x58\xca\xda\xf8\xea\xff\x53\x5f\xd2\xcd\x55\xa4\x14\x82\x4b\x28\x4e\xb9\xfd\xab\x20\xb6\x8a\x34\x71\xe1\xa0\xa1\x79\x93\x17\xc4\x1f\x32\x18\xea\xe9\x58\x6c\x88\xfd\xeb\x4b\x45\x65\x6f\x7c\x9e\xc1\xf8\xfb\x4b\x40\x8a\x12\x87\x07\xf9\x86\x79\xbf\x26\x57\x2e\xd4\xd4\x17\x24\xa8\x38\xa6\xc2\x56\x0f\x54\xcb\xab\xf2\xc9\x4e\x8a\xf3\xb9\x8a\x65\x8a\x0a\x06\x9d\xed\x66\x8b\xea\x63\x5f\x20\x8a\xcd\xb7\x2a\x91\xc9\x7e\x9f\x1a\xf1\xc9\x71\x15\x03\x11\x8f\x82\x2b\x2a\xcc\x95\x6f\x49\xd2\x14\x97\xc9\xfb\xea\xa5\xf7\xd2\xd7\x2e\x48\xfc\xc5\x85\x98\x8d\x5c\xc2\x01\x4d\x17\x1c\x39\x7a\xb9\x25\x34\x8d\x97\xd8\x3b\x63\x82\xfb\x03\x45\x2c\x9c\x0c\xef\xee\x75\x44\xbb\x3b\x13\x4f\x98\x4e\xa8\x44\x03\xce\xd8\xe5\x66\xb9\xea\x55\x74\xb8\x4a\x2c\x51\xe7\x78\x2a\xda\x6e\x7d\xb8\x86\x43\xa5\xcf\x64\x4c\x55\xca\x03\x1c\x22\x82\xce\x74\x0e\xee\xf9\x5e\xda\x03\x5d\x3a\x2b\xb2\x84\xfa\x01\x9a\x66\x54\xd9\x72\xe1\x73\x4b\x41\xf8\x5a\x59\x17\x4e\xa3\x3a\x1f\xd7\xcc\x78\x80\xb6\x65\xe7\xee\x53\x95\x17\xe1\x21\xa7\xeb\xa6\x62\x90\x11\xaa\x15\x39\xb5\x6e\xaa\x7a\x4a\x93\x3b\xbd\x24\x4f\x48\xc4\xa8\xdb\x07\x9d\x33\xfa\xa3\xc9\xcb\x97\x6b\x40\x27\x6d\x5e\x42\xaa\x44\x1a\xc7\x54\x70\x7b\xcc\x6b\x58\xd8\x21\xa1\xa5\x32\xc6\xb1\x6a\xab\xee\xd6\x52\x3e\x5b\x2e\x32\x03\x48\x2b\xf1\xf0\xb9\x30\xef\x9d\x0d\x31\x29\xb8\x51\x32\x50\x94\xd0\x7a\xad\x3e\x10\xc8\x4a\x39\xd0\xb3\xc8\x5a\x25\x59\x80\x80\x18\x87\x8f\xa2\x0a\x3b\x6b\xa1\x7b\xd7\x93\x70\x9d\x92\x90\x61\x15\x2b\x20\x43\xcc\x1f\x5f\xe2\x57\x4a\x05\x21\x02\xc5\x68\xac\xf2\xf2\x05\xd5\x98\xfc\xe1\x2a\x0a\x30\x6b\xfd\x9f\x95\xca\x27\x91\x4d\xa5\x23\x2d\x48\xe7\xf6\xe6\x04\xc5\x70\x41\xcd\x59\xea\x26\xd3\x1e\xc9\x47\xae\x57\xbb\x91\x35\xa9\x34\xd7\xe8\xc9\xd8\xfc\x37\x98\xd5\xef\x19\xe2\x55\x19\x49\xcc\x3e\xad\x9c\xa5\x9a\x94\x71\xa9\xb5\xc6\x8b\x9f\x10\x46\xea\xfc\x00\x81\x91\x36\xf4\x24\x45\xa4\xf2\x36\x9d\x22\x36\x4e\x11\x93\xd9\xca\xc6\xb1\xe7\x4c\x3d\x35\x1d\xc4\x14\x68\x75\xbe\xd0\xb8\x48\x4d\x87\x89\x41\x32\x83\xa3\xfc\x7c\x3a\xb5\xff\x29\xf5\xdb\xd1\xeb\x3a\x72\x1d\xa5\xa1\x0f\x48\x53\x24\x17\x0c\xa1\xb7\xbf\x30\x57\x4d\xef\x59\x47\x5a\x2b\x97\x0e\x7d\xac\x8c\x2c\x14\x82\xdc\x7b\xd7\x77\xfc\x25\xeb\x58\x98\xc0\x6b\x08\x3a\x72\x7d\xe7\xe0\xcb\x03\xac\x8f\xb6\xb9\x93\xcd\xeb\xa2\x34\x8f\xd5\x90\xf5\xd3\x49\xa4\x6d\xd0\xab\x39\x62\x80\x68\x4e\x1c\xc3\x75\xa2\xb8\xc7\xb5\x3f\xc8\xdf\x9d\xe3\x78\x76\x1b\xd1\x89\xb2\x2e\x4e\x27\xcd\xe7\x0f\xef\x99\xeb\x34\x12\x08\xa7\x92\xc6\x6c\x89\x50\xc3\x9c\x57\x52\xe6\x3a\x4d\x34\x73\x6b\xc4\xdd\x9f\xb7\x4f\x68\x07\xfa\xa6\x34\x4a\xa9\xd2\xce\x4c\x74\x15\xbe\x5d\x4c\x75\xaa\x42\x84\x6c\x78\xb6\x30\x73\xd1\x96\x39\x9f\x69\x9c\x7a\x6a\xb3\xe7\xe5\x81\x8e\x09\xd6\x8f\x2b\xfc\x28\x91\xa5\x79\xa2\x31\xc6\x31\x20\xa4\x37\xa3\x22\x7c\xe1\x7b\xb1\xd8\xdb\xa1\x2e\x91\x33\xbb\x40\x26\xfc\x70\x10\x0f\xc2\x7e\x59\x1d\x0e\xa7\x32\x6f\x7f\x94\xa7\x06\x26\x6a\x37\x5c\x73\xd0\xca\x19\xae\xbb\xbc\x3d\x15\x32\xaf\x61\xef\xcc\x64\x36\x3b\xb3\x48\x59\x68\x7b\x3d\xc8\x6b\x68\xda\xba\xfa\x92\xcb\xd0\x82\x91\x13\x46\xf6\xed\x6d\xf5\xde\xfa\xf2\xb8\x59\x3f\x49\xa2\xff\x4e\xe0\xf2\xb7\x2e\x4e\x9d\x5b\xd8\xed\x04\x78\x8b\x44\x64\xd8\xcc\xed\x67\x9d\xc5\x31\xaa\x52\x3e\x03\x31\x3b\x23\x94\x6e\x8c\x07\xd0\x59\x12\xe0\x38\x6e\xab\x42\xd6\xd7\x92\xd2\x16\x43\x5e\xe9\xff\x09\x60\xa4\x33\xee\x45\x30\xc9\xd3\xc0\xe0\xe7\x79\xb0\x42\x7f\x84\xc5\x15\xf8\x6a\xf5\xd8\xdf\x91\xa1\x7a\x3b\x75\xfa\xdc\x9d\x8a\xfc\xd8\x8c\x2d\x37\x9f\x5c\xd4\x32\x0e\x04\xeb\x73\x32\x76\x9c\x86\xd5\x32\x0d\xc1\xe3\x9c\xc6\xeb\xa7\x96\x96\xf2\x06\x6d\xae\xdf\xa0\x6d\x1e\x4f\xbe\x88\x5f\x77\x7b\x3b\xf2\x65\xaf\x9e\x7f\xf8\xdf\x74\x14\x23\x2d\xa8\xaa\x14\x26\x0c\x1b\x3f\xc3\x2e\x11\x03\x9d\xf7\x7f\x03\x7f\x3a\x9d\x20\x28\x7e\x44\xc8\x3e\xbe\x69\xad\x35\x0a\xc8\xab\x3a\x37\x2f\x30\x78\x4d\xc8\xaa\x37\xae\xe4\xd6\x1a\xa2\x94\x88\x79\x7e\xe7\x87\xd3\xc1\xa3\x90\x71\x0f\xf2\x7d\x8c\x21\x00\x20\x2e\x3b\xab\xbe\xfa\x40\x83\x25\x10\xee\x4d\x21\xdb\x95\xac\xfb\x06\x13\x44\x01\x92\xb9\x18\xdc\x81\x2f\xf1\xb5\xce\x8c\x7d\x13\xb0\x48\xa8\x41\xa5\x63\xbc\x60\x9b\x30\x0e\x30\x1b\x96\x37\x0b\xaf\xf1\x61\x9c\xe4\xee\x64\x72\x9b\x28\x83\xac\x5b\x42\x1e\xe5\x01\x3c\xec\xf9\x5c\x66\xd2\xc4\x92\x32\xe7\x63\x9b\x69\xf1\xf2\x05\x8c\x6c\x62\xad\x48\x5a\x09\x85\xbc\x8b\xc2\x43\xae\xfc\x87\x6c\x92\x34\x91\xae\x5c\xe8\xb1\xea\xeb\x1b\x31\x09\x3e\x59\x2e\x4d\x62\x74\x40\x1b\x75\x43\x2a\xf8\x13\x7b\xc6\x57\x8e\x9b\x04\x52\xeb\x44\x76\xfe\x31\x83\x30\x98\x34\xa6\x3a\xac\xee\xc0\x5e\xaf\x61\x7a\xbf\xa9\x21\x5c\xf9\x31\x7f\x79\xf9\x1c\x68\xaa\xbb\x06\x8e\xf0\x04\xc7\x6b\xb9\x68\xc9\x4e\x38\xbb\x95\x99\xd4\x18\xed\x82\x5b\x68\xcb\xe0\x9c\x9d\xae\x7a\xe7\x0c\x54\x93\x82\x20\xea\x02\x5c\x5b\xfe\x38\xcd\xc8\xa6\xba\x0e\x16\xe3\xb8\x57\x0b\xa2\x56\x42\x8e\x68\x0f\xb3\x30\x2c\x35\x21\xf7\x4a\xec\x24\x1a\xb4\xa9\x2b\x43\x91\xee\x11\xa1\xd3\x5f\xad\x24\x83\xb9\x62\x98\x25\xef\x5a\xa1\xee\xca\xd9\x62\xb3\xf3\xdb\xb9\x61\x96\x21\xde\xf9\xd7\xdd\xe2\x7e\x35\x1b\xe5\xce\x4b\x96\x5e\xab\xec\xef\x91\x07\x19\x2e\x35\x90\xdd\x49\x0c\xe9\xb7\xb9\xfd\x1a\xcd\x34\x22\x4b\x50\x96\xd0\x19\x4f\xf7\x79\xe3\x6b\x4a\xc6\x4f\x25\x54\x48\x95\xec\x87\xbc\xfd\x55\xd5\x6f\xb3\x1a\xc6\xd9\x93\x64\x69\x92\xe9\xb1\x6a\xfd\x14\x9d\x3e\xbd\x81\xcc\x70\xd5\x17\x81\xee\x3e\xaa\x31\x25\x31\x37\x32\x64\x08\xd0\x43\x96\xa0\xef\x7d\x01\x23\x53\x85\x13\x7e\xd7\x19\x36\xff\x37\xda\x70\x8d\xd4\xca\x5b\x77\x57\x52\xbf\x0d\xf0\x7c\xd7\xae\xb8\x0d\x7c\x8e\xf5\xe3\x6f\x07\x34\x46\x56\xb1\x51\x82\xe3\xb2\x8d\xb5\x53\x55\x45\x72\x7a\xae\x4d\x47\x12\xd7\xad\x0f\xc8\x1f\x08\xa9\xdd\xb7\xc4\x54\xda\xa1\x4e\x9f\x67\x2b\xaa\x8d\x4e\x35\xba\x37\x98\x95\xee\xa3\x3e\xa6\x3f\xde\x91\x07\x61\x48\x17\x97\x5d\xfc\xc8\x26\x44\x4f\x46\x67\x06\xd3\xd7\x4f\xcf\xd7\xab\xe7\xfd\xf5\xd3\xe3\xea\xe2\x93\x8d\x6b\xae\xce\x6f\x7a\x46\x5b\x26\xb3\x31\x6d\xea\xa1\x72\x98\x90\xde\xc1\x16\xd3\xe5\xf6\xef\xed\xbf\xc6\x84\xf4\x2d\x52\x92\xec\x19\x3a\x97\xbd\x2a\x47\xcf\x33\x33\xb8\xbb\x4d\x02\x73\xc4\x48\x43\x25\xd1\x15\xee\xf7\xfe\xbf\xa2\x9d\x9f\xef\x05\x90\x70\xcf\xc6\x3f\x29\x04\x9c\x77\x93\x31\x82\xff\x5e\x3b\xef\x7b\x0b\x60\x66\x19\x36\x03\x3a\x44\xef\xe9\x76\xf5\xb8\xda\xae\xb7\xfe\x15\x80\xa1\xbc\xa8\x0f\xf6\xf6\x3a\xd1\xc3\xa9\x6d\xc0\x25\x1b\x50\x27\xe4\xac\x8e\x69\x4b\xa6\x13\xc3\x72\x40\x86\x07\x67\x72\x79\x32\xe8\xd9\xed\xd8\x2c\xc2\x34\x71\x0d\xfa\x7d\xfb\x5a\x8f\x8c\xf7\x0b\x2f\xc1\x6a\x21\x07\x12\x06\x1c\xc5\x0d\xd4\x13\xbe\x56\xea\x09\x41\x1c\xa0\x1b\x88\x33\x73\xdb\xc2\xd1\x47\x81\x21\x48\x23\xce\x47\x8c\xce\xd7\x50\x74\xfb\xeb\xd5\xbc\x44\x1d\x82\xd4\x60\x3a\xb2\x84\x0f\xbf\xcb\x15\xd5\xcb\xc4\x6f\x81\x20\xe3\x9c\xd2\xf7\xef\x3b\x90\x87\x67\x20\x60\xa5\xbf\x56\x98\x85\x18\x4a\x41\xbc\xd7\x88\x57\x9a\x43\xe8\xc2\x94\x64\x3d\xcf\xae\x1c\x2a\x92\x59\x74\x78\x90\xfa\x7c\xdd\x92\xef\x0c\x1a\x1c\xf1\xf4\xa2\x6d\xa1\x34\xb2\x6c\x17\xe5\xe0\x2b\x4c\x67\xd7\xb0\x68\x42\x14\xb1\x58\x8d\xb0\x53\x9e\xd1\xd2\x37\x27\x54\xe8\x31\x8d\xc8\xf8\x46\x21\x89\x04\xa6\xe7\x3d\xec\x76\xa4\x31\xe1\x33\x87\xc8\xa6\x01\x79\xd4\x1b\xd2\xb8\xbc\xc1\x0c\xda\xe0\xcc\x43\x9c\x51\xc2\x17\xd7\xbd\x2f\xc9\xf0\x59\x88\x08\x92\x58\xa2\x87\xee\x6c\x33\xaa\xca\x78\x46\x58\x05\x18\x04\x0e\xf9\xf3\x26\x69\x8c\x56\x9c\xad\x6a\x95\x1b\x2c\x21\xfc\xe2\x9f\x40\x22\x53\x4c\x03\x5d\x7b\x06\xd7\xfd\x33\x34\xa7\xe2\x02\x7d\x16\xa4\x5a\x12\x2d\x43\x2f\xe5\xd0\x90\x80\xde\xd4\xad\x07\x16\x91\xbb\x8c\xd6\x61\xe7\xc0\xc8\xf2\x73\xe2\xea\x00\x53\x26\x4e\xfc\xb8\x1f\x73\x4d\x03\x1b\xa6\xbe\xd9\x90\xa2\xcf\x2d\xb4\x8b\xe3\xb1\xc8\x75\xf7\x3e\xa7\xd7\x10\x51\x8a\xe0\x8c\xdb\x5a\x7e\xaa\xd3\xef\xb1\x1d\x0e\x22\x8e\x31\xa1\xb9\xfa\x7d\xac\xea\x76\x2c\xf9\xcc\x21\x0b\x22\xac\x24\xa8\xab\x02\x70\x36\xce\xce\x9b\x45\x80\xd9\x83\xee\x83\x7a\xae\xaa\x2f\xc9\xdb\xbf\xb7\x54\x42\x66\xc3\x2c\x76\xe2\xe1\x23\x10\xb0\x6b\x55\x11\x85\x99\x91\x23\x9b\x0a\x6c\x50\xc5\xc5\x37\xa7\x80\x7e\x04\xc5\x6f\xce\x56\xbe\x80\x8e\xc8\x41\xc1\x8f\x7b\x40\xfa\x81\x4e\x08\xb2\x2a\x9b\xcf\x52\x7f\xd9\x27\xa7\x37\xa9\x95\x94\xd0\x9b\x66\x83\xcd\x7b\xf6\x82\x10\x91\x16\xec\x7a\xf9\x44\x04\xb4\xfe\x8a\x20\x23\x4c\xa2\x54\x47\x28\xef\xc1\xbc\xf4\xdf\xaa\xef\x60\x53\x4b\xc8\x89\x6e\x3a\x78\x41\x6a\xf2\xb6\xe6\x7c\x2f\x60\x75\x88\x28\x9e\x5e\xb7\xef\xc1\x53\x0f\xf6\x67\xb3\x94\x19\x3e\x2f\x71\x81\xf3\xe8\x9f\xf1\xbf\xfa\xce\x36\xc4\x59\xb2\x78\x5c\x6c\x16\x3b\x4f\xb2\x61\x83\x50\x21\x52\xb1\x1d\xac\x61\x1b\x26\xc2\xab\x77\xdd\x57\x0d\xf8\xcc\xeb\x64\xc8\x6c\x08\x4c\x3a\xc9\x5a\xd4\x51\xc7\x08\xbe\x83\x33\xf8\x13\x45\x36\x8e\x27\x00\x9e\xfc\xe5\xb5\x5d\x5b\x4f\x6f\x37\x0d\x9d\xb8\x63\x62\x4e\xd2\xd3\xb8\xbb\x79\x5c\x3a\x21\x56\x3a\x7b\xef\x1e\xca\x97\xde\x99\xb2\xb1\xa5\x01\x75\xa2\x7e\xf8\x09\x42\x37\xa1\xcf\xbf\x67\x9b\xc4\x12\x59\x05\x3a\xdf\x0f\x7e\x56\x1e\x55\x65\xd3\x58\xa3\x67\x44\xa4\x97\xdb\xbc\x18\x90\xc2\x36\x4d\x52\xad\xa7\x0e\xdb\x5c\xd0\x64\xb4\x90\x5a\x16\xc4\xe8\x8d\xdd\xe7\x07\x35\x7e\x5d\x96\xc5\x24\xb4\xd8\xb6\xd3\x9f\x25\x51\x5f\xfe\x63\xb3\x98\x1a\x02\x7f\xeb\xf3\xb2\x0c\x78\x42\x8e\x13\x06\x77\x5d\xac\xe2\x7b\xe3\xd3\xf2\x2c\xc6\xfd\xe6\x3a\x2f\xcc\x04\x3f\x69\x45\x22\xb1\x76\x25\x77\x38\xe2\xee\x6d\x4e\x15\xbc\xb9\xcd\x02\x52\xf1\x30\xe0\x2c\xe6\xb1\x7b\x6d\xb3\x88\x78\x7e\x36\xcf\x4f\x0f\xab\xdd\xdd\xea\xc7\x76\xff\xf3\xe9\xc7\xf2\x6e\xf5\x3c\xd6\xc3\xee\xfa\x29\xa4\x34\x23\x28\x1c\x8c\x60\x70\x36\xd3\x09\x86\x4a\xf2\xce\xcd\x91\xc7\xe6\x34\x87\x0e\x5b\x19\x31\x1c\xb4\x01\x00\x35\x7a\x03\x4a\x26\xde\x3e\x42\x9f\x7e\xfa\xf9\x5a\xcd\x18\xde\xbe\x9f\x94\x0f\xb2\xfc\xbc\xbc\xd1\x58\xad\xe3\x68\x98\x1a\x77\x55\x31\x29\x4b\xb2\xda\x92\xc0\xba\x44\x4f\xc0\x63\x36\x31\x5e\x34\xab\x1a\x70\x07\x98\x84\xa4\x25\x28\x57\x37\xb0\x8c\x59\x23\x05\xda\xc7\x34\x97\x6f\xa1\xc4\x0c\xcd\xa2\x34\x0f\xb2\xb9\xe0\x8a\x5a\x03\x99\xf1\x0a\x63\xcb\xb1\x5a\xd5\xac\x9f\x0d\x43\x0c\xa8\xe5\xcd\x42\x6b\x38\xb6\x60\xae\x75\x55\x1f\xcf\x31\x2c\x59\x1b\x49\x18\xe3\x15\xa6\x4a\xab\xe7\xfc\x22\x11\x04\xa9\xc5\xdc\x3f\xfc\x06\x4d\xec\x7d\xbe\x41\x45\x08\x1a\xba\x5a\xfd\x8f\xd7\xc4\x17\x41\x60\x14\xe2\xb4\xf7\xfb\xbc\x21\xfd\x9b\x75\xf9\x5c\xcd\x5e\xb2\x08\x42\x1e\x45\x2e\x5d\xb2\x3f\xca\xba\xfd\x8c\xf6\x13\x15\x5b\x11\x24\x46\xa7\xcc\xab\x72\x6b\x59\x14\xe7\x96\x2a\x11\xa4\x41\xa6\x3d\x26\x16\xb7\x98\xab\xcf\xb5\x99\xf7\x49\x02\x0c\x0d\x2c\xcc\xbf\x4f\xa6\x33\x61\x06\xe4\xc2\xd7\xa2\xf7\xfe\x18\x86\xb4\xf6\x50\xba\x20\xf8\xc2\xdf\x58\x2a\x53\xac\x76\xbe\x85\x76\xe9\x55\x90\x9d\x2f\x20\x02\xc6\x14\x86\x8c\xa0\xb3\x54\x47\x93\x49\x04\x4c\x48\x34\xd9\x97\x8b\xdd\x16\xea\xf7\xbc\x67\xdf\x76\x5e\xcb\x8c\x88\x50\x04\x3c\x65\x76\x4a\x5f\x41\x05\xa6\xe7\x0a\x22\x44\xc0\x39\x07\xe9\xb8\xbb\x47\x88\xb3\xae\x01\x22\x57\xb5\xbf\xfb\xfd\x54\xe7\x2f\x79\x7f\x4b\x3c\x33\x8e\x0e\x53\xe5\x2d\xb1\xde\xdf\x3f\x3c\x7e\x31\xcd\x7d\x6f\x30\x58\x3f\xb1\x5d\x3c\xfe\xb9\xfa\xef\xed\xd3\xfd\x8f\x5d\x2f\xf3\x2a\x02\x11\xa5\xb8\x34\xee\x5e\xe1\x2a\x6f\xdb\x3a\xef\x6f\x40\xf0\x24\x1d\x6f\x14\x17\xa5\x30\xba\xae\x12\x5f\xd4\x4b\x25\x8b\x07\x0f\x6d\x16\x41\x16\x90\xba\x39\x26\x26\x8e\x27\x02\x66\x4e\x06\x37\x0b\x23\xee\x60\x99\xff\x75\xca\xf5\x1b\xba\x83\xe8\xb2\x4d\x17\x38\x11\x64\x31\x09\x9a\x12\x13\xdf\xa9\x6c\x3f\x2f\xc5\xe8\xdd\x01\x32\x0e\xd0\x93\xda\xf7\x9b\x56\x45\x2f\xd6\xc5\x07\x66\xbd\x35\x47\x90\x34\x89\x81\x6e\xea\xaa\xb2\x7f\x7c\xc9\x0d\xfb\xbe\x60\x6c\xaf\x3b\x4f\xc6\x2d\xd9\x8f\xf7\xa3\xa2\x99\x8b\xb8\x83\x7e\x51\x14\x81\x36\x14\xc6\xa7\x42\xf1\x21\xee\xec\x9b\x81\xb4\x64\xee\x37\xdd\x32\x32\x19\x37\x13\x53\xe2\x41\x96\xe5\x49\x16\x23\x45\x4d\x11\x00\x8b\xf1\x49\x14\x96\x04\xbd\x41\x79\x7e\xde\x01\xc4\x6c\x70\xc3\x97\xb2\x36\x37\x55\xbd\xd0\xc8\xb8\x66\xc8\x79\x3c\x1b\x6f\x11\x81\x8d\x53\x5c\x13\xe1\xb7\x7e\xed\xdc\x89\x01\x48\x2b\xc2\x20\x03\x44\xf7\x3e\x00\x82\x51\x9a\x55\xd9\xf6\xe2\x2b\x22\x0c\x14\xc9\x80\x6c\xf2\xdf\x48\xab\x3d\xfc\x6e\x31\x22\x79\x7b\xbd\xfc\xbb\x94\x5a\xfe\x48\x13\x21\xba\xe7\x74\x34\x0f\x79\xe9\xeb\xd7\xef\xf3\xc3\x0c\x3b\x21\xc2\xc0\x2a\x24\x74\x97\xa3\x30\xd5\xb4\x47\x18\x85\x29\x0c\xdc\x54\x3d\xfd\xac\x08\x43\x26\xd0\x6a\x5d\x3e\x3e\xba\x11\x1d\xe1\xd1\xce\xc4\x06\xdc\x61\x51\x18\x13\x19\x6c\x5b\x1d\x09\x79\xd5\xa3\xe9\xbb\x46\x8b\xa4\x4d\x98\x58\x86\x16\xad\x04\x2c\x73\xae\x67\xb7\x15\x31\x89\xfc\x13\xd2\x98\x6d\x6e\xc0\xad\x41\xe7\xbf\xf5\x30\x92\x0c\xa5\x14\x0a\xd9\x50\xb8\x74\xff\x1e\x86\xfe\x92\xb1\x66\x11\x1f\xea\xc5\xcc\x58\x93\x5a\x84\xb1\xc9\x62\x4f\xcd\xbb\xb7\xd5\xa9\xc6\x70\xd0\xea\x7f\x51\xb3\x60\x72\x91\x24\x91\xdc\x7d\xd6\x57\xb2\x7c\x7b\xc6\x02\xcd\xe9\xf4\x0a\x13\xc6\x02\x40\xd4\xe2\x28\x20\x86\x10\x26\x7f\x3d\x16\xb3\x01\x95\xe4\xc5\x94\xa6\x27\xe1\x09\xc3\x01\xdc\x8f\x6c\x73\x1e\x85\xe7\x02\x1a\x22\xe4\x40\x8c\xfd\xff\x59\x29\xca\x66\xf9\x0b\x09\x9b\xe1\x48\x2b\x92\x97\x1e\x0a\xcb\x47\x7b\xc9\x25\x53\x43\x84\x99\x10\x98\x9d\xdc\x22\x3f\xf5\xd7\xaa\x6c\x11\x4a\x1b\x67\x24\x19\xa4\x8b\xbc\x84\x87\x41\x1d\x7a\xd2\x4d\x05\x0a\xf3\xbf\xf8\x2c\x7f\x9c\x05\x4d\xfc\xc7\x25\x40\xe7\x78\x56\x29\x25\xd2\xa1\x22\xdd\x13\xda\xcf\x3e\x8f\xc9\x23\xf5\x90\x8e\xb3\xe3\xa6\xa3\x14\x1d\x8b\x0d\xfc\x1e\x24\x2e\x45\xa8\x59\x82\x1e\xfa\x7b\xd5\xfa\xa0\xdc\xf4\xe5\x68\x49\xd0\x03\x87\x95\xef\x96\x28\x0f\x08\x18\x2f\x55\xa1\xd6\xc6\xa4\x0e\xb4\x94\x17\xa4\xa2\x3e\x9d\x79\x1a\x04\x02\x0a\x51\x55\xc7\xb1\x89\x37\x93\x0a\x11\x11\x1a\x45\x46\x95\x34\x58\x7b\x83\x6c\x8b\xa8\xa3\x36\x4e\x33\x89\xd0\x58\x9e\x38\x42\x8b\xab\xd3\x27\xad\x03\xae\x09\x62\x85\x04\x58\x4a\x96\x6f\x48\x15\xd8\x37\x24\x44\xeb\xfc\xe2\x10\x10\x83\x3c\x9b\x08\x41\x13\x41\xc6\xe6\x79\x45\x75\x69\xd1\xaf\xd5\xea\xcf\xfd\xd5\xd3\xe3\x0f\x6f\x39\x85\x36\xce\xa4\x07\xc6\x54\x6e\x43\xe8\xdb\x6c\xe2\x15\x26\xdd\x32\x7c\xf5\xe9\x93\x9c\xe3\xb7\x10\x05\xa9\x41\x55\x8e\x75\xa9\x61\xe2\x52\x8a\x28\xd0\x09\xae\x9a\xb9\x86\xc9\xef\xa1\x63\x16\x27\xa5\x8b\xa9\xc5\xec\xbb\x18\x49\x62\x3c\x27\x75\xc8\x51\x78\xe6\xac\xd1\x14\x85\x96\x14\x1d\x8f\xf2\x73\xff\x81\x10\xac\xe9\x1c\x8f\xa2\xd4\x00\xc1\x3b\x0b\x8b\xe9\xdc\x93\x6e\x07\xc4\x91\xef\xa4\x48\x95\x77\x58\x7c\xa4\xb8\x93\xcd\xeb\xde\x9d\xcb\xf7\x8b\x25\x89\x61\x41\x69\xd6\xcb\xa7\x19\xd4\x5e\x44\x31\x64\xe4\xf7\x55\xa7\xba\x81\xe5\x38\x7e\xe5\xbb\x24\x81\x44\xb7\xcd\xa9\x8b\x7d\x65\xbf\x16\x51\xc2\x52\xac\xa3\x73\xd5\xb9\xeb\x52\x57\xb3\xe2\x11\x11\x25\xc2\xb8\x24\x1d\xae\x75\x5f\x49\x9f\x44\x94\x26\xa4\xa0\xf9\xef\x93\x79\x81\x5f\xf9\x79\xfa\xa0\xae\x9b\x40\x04\xfc\xf6\x54\xd7\xa7\x99\x14\xbf\x88\x58\x68\x11\x62\x72\xf8\xa4\xfd\xf0\xeb\xe6\x13\x31\xc3\x10\x7a\x7b\x9d\xbf\xe4\x9b\x53\xd1\x4c\x5f\xb5\x48\x23\x18\xc8\x47\xdc\x1c\x5b\x2f\x1e\xae\xb1\xd2\x0d\x87\xe6\x5c\x58\x44\x44\x82\x25\xe0\x8a\xf7\x90\x5f\x69\x65\x5e\x7a\x2d\x3f\x31\x7b\x06\xa1\xad\xa1\xb9\xfe\x73\xf7\xf7\xd0\xb5\x22\xca\x42\x85\x9f\xe5\xa6\x3a\xfc\xdf\xf0\x7a\xb2\x34\x42\x96\x4f\x47\xde\x70\x5f\xbd\x9c\x5d\xb2\x23\x19\x68\xcc\x79\xa8\xaa\x3c\x35\x43\x8c\x42\x44\x92\xa5\x6a\x30\x1c\xab\xba\xed\x17\x95\xd9\xf2\x1c\x49\x1e\x63\xfc\x56\x3b\xe4\xc2\xe7\x38\xfb\x23\x22\x15\xc9\x80\x3b\x10\x5f\xcf\x3d\x31\x4f\xf2\x89\x08\x58\x82\x81\x18\x53\xed\x48\x42\xe7\xa6\xaa\xaf\xc1\x52\xa8\x76\xf6\xa6\x40\x65\xa8\x3e\xb3\xf7\xa4\x84\x67\xac\x8d\xc8\x2a\x8e\x35\x8b\x0d\xc5\x5f\x7c\xee\xd2\xb7\x6a\xe3\x44\xcf\x3b\xab\xd1\x91\x36\x41\x67\x80\xed\x40\x1e\x16\xa5\xf1\xab\xc8\xf4\x65\x5a\x13\xf1\xb4\x0f\x88\xdd\xd4\xd5\xff\x41\xe9\x43\x1f\x36\x7f\x39\xd5\xae\x20\x73\xbe\x0a\x58\x30\x6a\x0c\x81\xfe\x82\x0a\x3a\x57\x2f\x20\xe2\x20\x25\x8b\xe9\xae\x32\x0e\xea\x73\x91\xfe\x7b\x3a\x93\xe2\x80\xf5\xbe\xdd\xb6\x85\xc3\xd8\x3c\x8d\x03\x15\x07\xae\xed\x88\x02\xb3\xa3\x40\x85\x88\x03\x9d\xc6\x84\xa3\x93\x4d\x93\xbf\x90\x07\x3a\xbf\xcd\xc9\xa8\xc4\x61\xa2\x71\x89\xfe\x78\x95\x05\x3c\xc8\xdf\xfe\x54\xa1\x09\xb1\x6e\x13\x8b\xb8\x91\x49\x6a\xdb\x93\xa3\x88\x38\x72\xe5\x39\x9e\xbf\x71\x5d\xda\x0a\x59\x35\xa1\x85\xba\x79\x06\x69\x3e\xfb\xae\x8c\x67\x0e\xda\xfe\xe7\x61\x83\xe1\xc1\xe9\x1d\x44\xd6\x60\x50\xf6\xf1\xe9\x71\xff\x73\xb5\xdd\xad\xae\xf7\xbb\xd5\xe2\x61\xdf\xcb\x42\x6d\xef\x16\xcf\x2b\x7f\xba\x58\x6a\xb4\xc2\x36\x95\xe7\x9c\x9a\x9e\x2d\x09\x59\xe4\x79\x72\xf2\xf2\x65\x83\xf5\xe3\x37\xe8\x21\xf8\x53\x24\x96\x59\x42\xa1\x3f\xc8\x7c\x2c\x06\x29\xe2\x34\x60\x28\xa7\x61\xc0\xca\x53\xd1\x5e\x9d\x3e\x1f\xab\x8f\xc9\x0b\x48\x23\x2a\x4c\xc7\x54\xe5\x5a\x57\xab\xdf\xf9\x88\xd6\x40\xc4\xa9\xe4\x18\x1d\x78\x3e\xa9\xfc\x6d\xac\x9d\x2e\x62\xc6\x48\x0b\x7b\x59\xd5\xf5\xe9\x48\x04\x00\xc3\xa5\x79\x42\x81\xc5\x6f\x9e\x9d\xcb\x58\x09\x47\x71\x42\x81\x41\xc7\x6b\x71\x95\x1f\x9b\xbe\x93\x4e\x71\xf5\x38\xca\x4f\x4f\x17\xd8\xfd\x98\x61\x22\x62\xb1\x5d\x5d\x4d\xee\x49\xa4\x54\xdf\xe4\x8b\x7f\xb6\x5f\xd8\x24\x44\x2c\x98\xc5\x5c\xc8\xfe\x45\x1e\x54\x31\x86\x04\x9c\xc3\xf2\x89\x58\x08\x89\x91\x02\x9b\x97\xe6\x0a\x1a\x2a\x15\xfc\x2e\x7a\x27\xe2\x0c\x02\x1c\x1a\x27\xa9\x4a\x9f\xf4\x40\x2c\x20\x62\x19\x2a\xac\x11\xed\x36\xc7\x87\xbc\x84\x5a\x16\xb4\x7b\x8d\xd6\xbd\x58\x26\x86\xe4\x31\x10\x59\x0f\xf9\x50\x78\x29\x62\xa9\x81\xb9\x14\x74\xbf\x94\x7f\xcb\xd7\x26\x62\x95\xa4\x98\x69\xc0\x92\x31\x6f\xf9\xd6\x9d\xb7\x8a\xd0\x84\x26\x7f\x39\xef\x46\xc4\x3a\xca\xc4\xc0\xb5\x76\x55\x55\x85\x63\xe8\xfd\xe3\x2c\x0c\xe1\x2b\xb0\x42\xc4\x26\xb6\x58\x10\xe2\x03\xe1\x5b\x84\x60\xf9\x87\x31\xd6\x78\x30\x8b\xf7\xcd\x11\x47\xfe\xfd\xba\x02\x21\x39\xc4\x4b\x52\x60\x7d\x83\x72\x5c\x87\x7d\xc6\xc3\x8e\x21\xe1\x98\x22\x7b\x2a\xdb\xaa\xa8\x5e\x3e\xcf\xee\x6b\x93\xfb\x86\x8c\x61\x06\xa6\x5b\x0c\xfa\x68\xa1\x6b\xb3\x9a\x21\x5e\xb2\xf7\xd4\xb1\x32\x69\x16\xb5\x4a\x02\x46\x55\x67\xbd\x1e\xab\xdb\x06\x1f\x4f\x87\xe9\xa7\x9e\x04\x32\x34\x13\x99\xdf\x39\xef\xe1\xf0\x24\x49\xa0\x12\x0c\xbc\x51\x24\x48\x16\x3f\xf3\xba\x3d\xc9\x62\xee\x57\x26\x61\xaa\x82\x9e\x9c\x6e\xe0\x92\xec\x9b\x19\x69\x20\xc1\x6f\xd0\xe7\xeb\xc7\x7c\x47\x1e\x81\xcb\xa6\xdf\x85\x57\xb9\xe9\x45\x11\x44\x12\x09\xa2\x0d\xba\x3a\xe5\x1e\xad\x2e\x92\x08\xc0\x7a\x7c\x68\x10\x5d\x9d\xc6\x7c\x7a\x22\x89\x53\x07\x1f\xf6\x23\xa7\x69\xe4\x7c\x73\x16\xfa\xa2\x98\x2b\x24\x16\xff\x42\x47\x25\x92\x24\x54\xe0\xf9\x77\xfa\xd2\xd9\xf6\x75\x60\x72\x3a\x37\x6a\x49\xa2\x43\x97\x67\xd4\xf0\xb3\xca\xcd\xb3\xec\x27\x61\x92\xaa\x14\x09\x5e\xd6\xeb\xcd\x19\xbf\x2e\x49\x75\x86\xc2\x1d\xbf\x56\x6b\x7f\x04\x0f\x03\x74\x48\x37\xcf\xeb\x9f\x8b\xdd\x0a\x3d\x82\xed\x6e\xf1\xbc\xdb\x5f\x2f\x76\xab\xbe\x57\x4c\xfa\x9e\x5e\x2b\xb4\xdc\xc8\xcf\xd9\xb9\x85\xca\x08\x70\x56\x51\x3d\x0e\xb1\x64\xfd\xe1\xd5\xe4\xbe\x4b\x37\x84\x53\xb5\x52\x91\x64\x19\x27\x21\x4b\xe2\x8c\xba\x1f\x0c\x8d\x44\x32\x91\x0c\x41\x1e\xdc\x05\xcf\x3d\xa9\x94\xc4\x23\x87\xc9\x03\xd9\x38\xb1\x34\x59\xf4\xcc\x6b\x7f\xab\xa8\x46\x4c\xe6\x8f\x0a\xc8\x84\x7b\x84\xf6\xf3\x54\x7c\xc5\x54\x5e\x3a\xd3\xd9\x38\x4f\xa2\x22\xce\x68\xbb\xd6\x55\x69\xf6\x1f\xfe\x83\x41\x47\x32\x1f\xa6\xa6\x12\x0a\xa9\x37\xd4\xe9\xf3\xb6\xaa\x7c\x89\xa8\x48\x74\x18\xa2\x9d\x4a\x03\x31\xc7\x75\xcc\x21\x8d\xd3\x6b\xeb\x38\x55\x2e\x72\xb4\xac\xcc\x5c\x3d\xd0\x77\xe2\x89\x4f\xd5\x3f\x83\x85\x1a\x4a\xed\x44\x79\xce\x3f\x90\xee\x3c\x14\x47\xc7\xfc\x79\x50\x3d\x52\xd4\x37\xeb\x00\xb1\x2c\x87\x4f\xaa\x46\x98\x5e\xcc\x44\x21\x91\xf0\xbf\x9e\xa6\x62\x8a\x22\x31\x46\x22\x88\xbc\xfd\x00\xf9\x36\x42\x24\x8a\xc4\x58\x65\x28\x6a\xa9\x4f\x75\xde\x4e\xbf\x4f\x08\xe3\xa8\x27\xb9\x58\xf7\x42\x29\xce\xec\xbb\x83\x7a\x66\x8b\x26\x90\x24\x52\x79\xb8\x7b\xf5\x9e\x1b\xa8\xef\xa5\x7b\x1f\x9f\xeb\xeb\xf3\x6e\x52\x02\xca\x60\xe5\x2b\xbd\x86\x07\xd0\xaf\x57\xbb\xe5\xf9\x30\x63\x02\x10\x7a\x98\xa2\xff\xde\x29\x73\x74\xba\x48\x7c\x2c\x12\x1b\xc6\x88\x87\x5a\x18\xf3\x08\x1f\x84\xa4\xd7\xf3\x0a\xce\xc9\x48\x5b\xe0\xf8\xe2\xde\xab\x16\x16\x33\x74\x66\xd7\x6a\xb0\xe8\x25\x6f\x1e\x30\x9b\x33\xad\xd4\xa3\x4e\x69\x10\x40\x3a\x2e\xc2\xa6\xc4\xe8\x00\xb0\x15\x69\xc0\x24\x16\xa7\x90\xc1\xbf\x81\xfa\x17\xe4\xbc\x6f\x94\x80\xa5\xb1\x79\xf3\x0c\x2f\xa7\x62\x86\x72\x11\x69\x08\x26\xe3\xde\x4b\x72\x35\x83\xfe\xd8\x28\xa2\xa0\x97\x13\x79\x46\xc7\xd2\x35\xc5\x09\xa0\x45\xe2\xe1\x10\x93\x34\xb0\x48\x13\xce\xf1\xaa\xdd\x7a\x7d\x25\xcd\xaf\xbc\x7d\xed\xbe\x98\x5e\x92\xef\x52\x72\x69\xfa\x46\xbb\xd3\x68\x62\x13\x93\x45\x37\xdd\x7c\xe5\x8c\x48\xb9\x64\x38\x74\xab\xf6\x75\x3f\x71\xca\x52\xa1\x62\x84\xb3\x6d\x5e\xab\xb6\x5a\x18\x73\x81\xe8\x57\xa4\x59\xc4\x70\xc9\x77\x46\xf5\xe2\xe1\xe9\xc7\xe3\xce\x9f\x25\xe3\x31\xb2\x55\x56\xef\x50\xab\xdc\x3c\x0e\xac\x0f\xc2\xf7\x10\x36\x23\x79\x7e\x64\xc7\x7c\x3a\x62\x36\x76\xa4\x95\x15\xfa\xa7\x90\x4c\x62\x0d\x41\x79\x3a\x2c\xab\x03\xc6\x9f\xfc\x65\x94\x25\x8f\x04\x25\xe8\xb6\x14\xf1\x84\xba\x39\xe3\xf4\xa5\x3a\xb2\x3c\xea\xa3\x2d\xab\xb2\xad\x3f\xff\xaa\x6a\xd9\x1f\x69\xd3\x04\x7a\x3d\xdb\x4d\x55\x15\x23\x66\x34\xd7\xc7\x30\xf2\xfe\x9e\xd1\xfb\x7b\xa8\xcc\xb4\x94\xd7\xf7\xb2\x0a\x03\x11\x4a\xea\xb7\xb9\x00\x8f\x48\x21\x48\xb0\x88\x63\x71\x44\x25\xc5\x66\xbd\xb8\xfa\xa3\x6f\x22\x9b\xb7\x80\x17\xa9\x3f\x9f\xe1\x38\x0b\x62\xa4\x90\x66\x18\x23\xea\xfc\x85\x4d\x91\x97\xa8\x1c\x7b\x5f\xcd\xd8\x8f\x44\x0a\xdc\x8c\x0a\x61\xba\x35\xbf\xbb\xd7\xfe\x2c\x82\xd0\xbe\x18\x4f\x21\xb8\x51\xdb\x53\x16\xfc\x33\x8c\xcf\xab\xee\xf4\xed\xc1\x10\xa0\x75\x55\xeb\x22\x05\x49\xe0\x04\x52\x34\xaa\xea\xd6\x56\x45\x5e\x7d\x79\x74\x15\x65\xa9\x5f\xe1\x30\xd2\xd3\xbc\xe6\xc7\x45\x69\x1c\x05\x58\x5e\x9c\xe1\xd7\x1f\x5d\xc4\x90\xa0\x0c\x06\x52\x0a\x03\xf5\x8c\xf0\x7f\x36\x73\x2d\x8f\x30\xd8\xbb\x94\xcd\xeb\xb0\x3d\xb1\x50\x41\xd4\x4b\x68\x0f\x96\x4b\x73\x7e\xfe\xb3\x28\xe4\x58\x94\x92\x37\xcd\x09\xba\xf5\xec\x62\x36\x59\xb0\xc8\x08\xc4\xae\x1e\xf2\x92\xd4\x68\xfc\x35\xe3\x8c\xa3\x21\x77\xb8\xf9\xf1\x78\xbd\x7e\xbc\xdd\x2f\x7f\x3c\x3f\xaf\x1e\x77\xfb\xeb\x1f\xcf\x8b\x51\x26\x90\xc5\xca\xa0\xc3\x5c\x93\x7a\xc8\xf4\xf4\x49\x24\x32\x86\x7c\x7a\xdb\x33\x4e\x2b\x4b\x2c\x09\xb1\x50\xfa\xec\x62\x15\xa1\x60\x29\xcf\x70\x55\x78\xf8\xef\xed\x8f\xcd\xea\x79\xf7\xf4\xe7\xaa\xbf\x01\x16\x42\x64\x7a\x00\xe7\x0e\xe4\xa1\x59\xf7\x5b\x38\xe3\x82\xfc\xd6\x1a\x1a\xc7\x02\x77\x75\xaa\xfb\x0a\x1e\xc1\x38\x08\xc4\x38\x48\xad\xeb\x13\x78\x92\xc1\x6e\xb1\xfd\x07\x76\x5f\x79\xc6\x0d\xc1\x04\x8f\x30\xa5\x82\x5e\xe8\xe0\x1a\x33\x21\x23\x8c\x07\x92\xdb\xf3\xe5\xdb\x9d\x56\x88\x0a\x96\x71\xa3\xdc\xfd\x76\x46\xd7\x39\x09\x08\xc1\x32\x4b\x8a\x8c\xc4\x6a\xb6\xd8\xec\xd7\x8f\xfb\x1f\xdb\x6b\x7f\x49\x19\x5a\x45\xa4\x4a\x87\x9c\xe8\x72\x7c\x43\x9c\xa2\xda\xcc\x6a\xb7\xbc\x8b\xcd\xcf\x7e\x18\x54\x98\x68\x17\xb8\xe8\xdc\xd2\x70\x76\x39\xa5\x39\xfa\xc9\xcb\xd5\xf3\x6e\x7d\xb3\xf6\x62\xf0\x82\xe9\x24\x83\x70\x5c\xec\x83\xe2\xed\xf3\x94\x3b\xd3\x4c\x71\x35\xaa\x68\x85\x25\x14\xc5\xd5\xe9\xcb\x42\xe6\xbb\x67\xc4\xcd\xf5\x90\xb7\xaf\x75\x5e\x6c\x3f\xaa\x1e\x66\xc0\x8c\x54\x09\xf3\x71\x71\x0f\x2f\x3a\x1b\xa6\x64\xc6\x66\xe8\x08\x51\x30\xe0\x19\xf4\xa7\x2e\xfe\x3a\xda\x34\xbb\x17\x08\x58\xca\xfb\xf0\xd8\x16\xea\xf7\xe1\xc3\x83\x38\xc2\x18\xba\xc7\x4f\x38\xba\xa3\xe9\x5d\x80\x8e\x31\x4c\xfb\xbc\x5a\x3f\x5c\xfd\x78\xde\x2e\xae\xee\x57\xfd\x09\x40\x61\xba\x94\x14\x20\x76\x83\x92\xba\xef\x60\x59\x40\x04\x08\xb8\xf8\x53\xf9\xe7\x50\xd5\xc5\x92\xf1\x9f\xcb\xcf\x60\x99\x94\x9e\x8b\xaa\xed\xa9\xf2\x06\xb2\x33\xc1\x83\x90\x39\x44\x6e\xf7\x94\xb7\x45\xa5\x90\x43\xb4\x69\x6b\x99\x97\xdd\x8a\x3b\xd7\xc0\x3d\xb7\x3e\xf1\x00\x88\xbf\xb0\xdb\xfd\x1f\xab\xfa\x20\x8b\x31\xbe\xae\xbf\x96\x25\xe9\x66\x75\x49\xe0\x58\xf0\x90\x11\x5f\xf9\xbe\x05\x79\xf8\x16\xd0\x27\x78\xc4\xe2\x8c\x26\x4b\x9f\x51\x9c\xf5\x88\x45\x82\x15\x69\x88\x7e\xdf\xc8\xa6\x71\x89\x08\xf1\xcf\xec\x5f\xbe\x0b\x64\x38\x42\x6d\x7d\x6a\x5a\x30\x7d\x78\x78\x23\xeb\x36\xd7\xf9\x51\x96\xed\x5f\x15\xe1\xb9\x33\xa5\x32\x45\xeb\xa2\x96\x2d\xec\x5e\xf3\xda\x20\xa5\x89\x7f\x76\x16\x48\x04\x2c\x1d\xe5\xe7\xb6\x95\x6f\x24\xd1\x7d\xd6\x7b\x11\xc1\xf8\xcf\xd7\xb1\xc6\x53\x75\xab\x0a\xb5\xee\xaa\x66\x06\x27\x16\x5c\x44\x04\xe8\xd8\xdc\x2d\xb6\xab\x68\xff\x3c\x38\x93\x5c\x88\xc4\xd5\x3b\x51\xa1\xd3\x1e\x2b\x27\xae\x07\xc3\x9e\x4b\x30\xda\xd3\x0d\x96\x4e\x8a\xb2\xb9\xa9\xab\xde\xe0\xe2\x2a\x93\x88\x78\xed\xde\xf6\xea\xb7\x4b\x22\xcc\xf9\x39\x04\x57\x92\x80\xa9\xdd\x12\x01\x87\xaa\xfe\xdc\xd5\x52\xc3\x03\xb4\x72\xd6\x51\x07\x21\x01\x60\x7f\x6e\x56\x7b\x39\x86\x53\x76\x6d\x31\xe2\x6f\x0e\xa7\xa2\xcd\x17\x5a\x43\xd3\xd0\x6e\x3b\x3f\x07\x37\x89\xab\xda\x5d\xb5\xaf\xce\x40\x9c\x75\x51\x12\x13\x73\xaa\x0c\x23\xb1\xc7\x3d\x73\x7f\x94\xf9\xb8\xa6\xe7\x9f\x61\xe4\x27\x86\x11\x1c\x21\x64\xcf\xa7\x02\x1a\x1f\xeb\xdf\xe2\xd7\x78\xa6\xd0\xe4\xff\xdf\xbf\xfe\xa2\xca\x22\x0e\x83\xe4\x1b\x7a\x8a\xce\xef\xe3\x72\xdc\x18\x83\xb8\x8f\x96\x2a\x8a\x88\x31\xe9\x6b\x18\x0b\x57\x8f\x73\xde\x26\x87\x84\xe1\x72\xd6\xe8\x5a\x1e\x27\x24\x3c\x82\x03\x4b\x10\x02\x70\x8d\xd3\x01\x6d\x81\x53\x31\x73\x59\x38\x40\x66\x9c\xfb\x79\x7f\xff\x73\x0f\x26\x6f\xf7\xc9\xc4\x05\xe5\x36\x53\x48\x3f\xb0\xa7\x5f\x77\xd5\xd5\x67\x0b\xb3\x2e\x2a\x36\xca\xc7\x9a\xf6\x6a\x94\xe2\xe0\x56\x71\x0c\x57\xdd\x57\x2f\x8f\xf0\xd1\x4b\xe0\xcc\x57\xf4\xe9\xe9\x6c\xd4\xaf\x0f\x7f\xad\xe7\x2d\x44\x10\xf3\xb8\xe7\x5a\xda\x9f\x1a\xa8\xf7\xd0\xbe\xee\x75\x0f\xdc\x10\x01\x4b\xf0\xd3\x3b\x62\x14\x06\x69\xbf\x9b\x3e\x54\x26\x42\x46\x39\x00\xb7\x61\x20\xf6\x69\x7a\x85\x24\x30\xb1\xdb\xe1\xaf\xeb\xd3\xcb\xbc\x95\x71\x1d\x4d\xa8\x03\x08\x3f\xe8\xf7\xb8\x89\x67\x2e\x12\x0e\x58\xed\xfa\x2a\x8b\xf6\x19\xde\x41\x16\x84\x4f\x9b\x75\x4b\x03\x12\xd1\x5c\x74\x9b\xcb\x62\x60\x4c\x73\xe1\x89\xaf\x51\x8a\xe9\x6a\x23\xd2\xd0\x52\xd1\x56\x69\xba\x45\x62\xc4\x5a\x2b\x44\x1a\x71\xf4\x8e\xdb\x01\x8f\xf1\x06\xa6\x5b\x39\xcf\xaf\xd8\x22\xe5\x19\x3a\x89\xa6\xdd\xe2\x67\xfa\x9d\x8a\xb2\x10\xa9\xd4\x46\xf4\xd2\x62\xbf\x00\x48\x30\x6d\x6c\x62\x89\xd4\xa4\x48\x2a\x2f\xf3\xfa\x1a\x8a\xfc\x1d\x6a\x12\x03\x2d\xaa\xf2\x32\xcb\xb9\x10\xcc\x31\x68\x1e\xb1\x1e\xd4\xce\x5e\x04\x0f\x2d\x4d\x55\x8a\x2b\xac\x4c\x3e\x66\x00\xfc\x12\xde\xb9\x14\x72\x9a\xff\x7e\x49\x35\x54\x08\x1e\x59\x45\xdb\xb4\xab\x26\x99\xbe\x03\x1e\x07\x58\xc0\x72\xd7\xb9\xab\x7f\xb5\xa0\xcc\x0e\x4d\x98\x0a\x08\xc1\x8d\x2a\xb2\xd7\xb5\xfc\xc8\xcb\x97\xe5\x38\x5c\x2a\xb8\x08\x7b\xe5\x61\xa8\x9b\x5c\x96\x0d\xa9\x92\xa3\xb6\x64\x73\xf5\x39\xbb\x1f\xc1\xa8\x80\x9a\x28\x2c\x3d\x2f\xc6\x74\x0c\x85\x4c\x32\x04\x19\x37\x8f\xf0\x41\x1c\x17\x9b\x91\x68\x40\xd7\x81\x0a\xe9\xda\xb7\x76\xf2\x46\xb3\x20\x46\xce\x18\x7c\xd7\x63\x69\xac\xd9\xec\xc8\x12\xaa\x9a\xe8\xd5\xfa\x77\xd5\xd5\xe9\xf3\x4c\xf8\x7e\x76\x98\x49\x92\xc0\x11\x1c\x11\x76\xa4\x2a\x66\x46\xab\x90\x31\x55\x8a\xae\x64\x5d\xae\xca\xea\xf4\xf2\x3a\x06\x78\x08\x99\x46\x9e\xd3\xd7\x71\x2b\x7c\xdd\xfc\x84\x14\x41\x64\xa7\x65\x00\xfd\xf1\x8a\xa1\x26\xcd\xee\xea\x1f\xe3\xa0\x99\xd0\x59\x98\x38\x84\xe6\xcd\x8c\x49\x49\x08\x13\x10\x11\xd2\xfa\x71\xbd\x5b\x2f\xee\xf7\xab\x87\xf5\x76\xbb\x7e\x7a\xdc\xdf\x2c\x96\xbb\x27\x6f\x96\x0b\x93\x58\x8a\x7c\x4b\x0b\xe7\xb0\x49\xdf\xd4\x0c\x0a\x61\x7a\x6b\x11\xb5\x99\x27\x68\xa1\x0b\xc3\x09\x22\xc5\x25\xe0\xa6\x38\x51\x88\x12\xeb\x7e\xbe\xdf\xaf\x04\x64\x0c\xc7\xa6\x79\xad\x3e\x7a\x26\xc9\xbf\x38\x04\x6c\x1a\xf7\x39\xe7\xfa\xd3\x27\x90\x5d\xb3\xcd\x32\x2f\xec\xf7\x90\x97\xbb\xc3\xcc\x3a\x10\xd6\x84\x48\x9a\x63\x06\x85\xa0\x2f\xc4\x56\x22\x0b\x42\x89\x10\x32\x79\xd8\xaf\xf7\x67\xea\xd7\x44\x16\xa4\x0c\x0d\xab\xbf\x8e\x3f\x9f\x5d\x4d\xb3\x80\xf1\xd4\x01\x63\x7c\x98\xf3\xcb\xab\xce\x02\x03\xf4\x65\x74\x46\xe4\x7d\x5e\xc2\xaf\xba\xf2\xac\xd9\x22\x0b\x80\xaa\x27\x5d\x19\x83\x7c\x91\x4b\x59\x9b\xed\x87\x3c\xfe\x84\x3a\xfa\x2b\xbc\xa3\x3b\x49\xc8\x88\x44\xa8\x7d\xcd\x9b\x83\x2c\x3f\x71\xaf\x6d\xda\xbc\x28\xda\xd7\xe6\x78\x32\xa4\x33\xfd\x91\x97\xfd\xd8\x84\x82\x54\xe6\x6e\x64\xf9\xb2\x93\xe5\xcb\x65\x1a\x5c\x1f\xbc\xff\xa6\x74\x73\xfa\x72\xb3\xd8\x80\x67\xb9\x5a\x56\x25\x5a\x95\x93\xe0\x62\x96\x06\xb1\x75\x61\xc9\xeb\x5c\xc3\xaf\xbc\x9c\x1a\x78\xb3\xf3\xa5\x59\x82\xec\x26\xff\x29\x4b\xd3\x93\xf4\x89\x2c\xd5\x22\x1c\xe6\xd0\x5a\x57\x67\x9d\xc7\x8c\x85\x54\x2c\x7c\x75\xff\x63\xd5\xe3\xd9\x33\x1e\x11\x09\x5b\x03\xe5\x98\xf6\x46\x64\x3c\x26\x66\xe0\x91\xe8\xf8\x8c\xda\x5f\x64\x9c\x85\x8a\xa8\x97\x74\x65\xc0\xec\x4d\xaf\xfe\x24\x32\xae\x12\x24\x5b\xef\x0c\xdc\xc5\x25\x25\x36\xd7\x37\x0b\xad\x55\xbd\x2e\xe6\xfe\x38\x22\xe9\x18\x6d\x4c\xbe\x33\x50\xe9\xe7\xbe\xc1\xba\xb2\x2f\xfc\x4a\xd3\xa7\x96\x3c\x26\x91\xa3\x8b\x42\xe3\x22\x53\x96\x23\x31\x76\xb7\xb8\x0c\x65\x5e\xc9\xac\x97\x4e\xb3\xb8\x87\x33\x23\x9a\x10\x83\x9b\x3d\x00\x7b\xfa\x48\x9a\x13\x26\x7f\x08\x10\x54\x88\xb5\xbb\xf0\x6a\xb5\x21\xd5\xd9\x5c\x57\x8e\x96\xe9\xfc\xf6\x90\x41\xc0\x48\xb2\x70\xfd\xb8\x5c\x6c\xf6\x18\x18\xda\xee\x37\xcf\xab\x7d\x5f\x8e\x21\x32\x10\xe4\xb6\x62\x96\xc5\xf1\x0e\x6f\xa1\x28\x26\x5c\x81\x22\xb3\x31\xe9\x50\xd2\xe6\xbc\xfa\x7d\xc1\xbc\xc9\xac\xee\x6b\xaa\xfa\x4c\xe9\x25\x28\x55\x66\x0d\xe0\xa6\x4b\x7a\x87\x07\x95\x43\xd9\x76\x76\xed\xea\xb7\x86\xe3\x98\x5c\xdd\xd9\x69\x74\x98\x0c\x53\x85\xef\x40\x55\xea\x41\xbe\x41\xb3\xaa\x75\x14\x5c\xe2\xd2\x98\x24\x64\xa3\x60\xb2\xf8\x3b\xbe\x05\x21\x43\x20\x46\x7d\x53\x5d\xcd\xf8\x1e\x85\x0c\xad\x51\x6c\x2a\xe9\x70\x53\x03\xfc\xdf\x58\x36\xe9\xbb\x6f\xdc\x85\xce\x65\x94\x44\x69\x1f\xa8\x3c\xa2\x55\x31\xbb\x52\x94\x86\x5e\x4f\x74\x1c\xe6\x1d\x3e\x22\x19\x31\xa1\xfd\x2a\xd1\x99\x2f\x37\x85\x1c\x97\xa8\x0a\x19\x47\x1a\x13\xe5\xc4\x0e\x94\xff\xd5\x36\x24\xe3\x54\x20\xa4\x4f\xcb\xb2\x73\x11\x7e\xb4\x67\x63\xb6\xbe\x73\x46\x50\x93\xea\x08\xe5\xb2\x3a\x1c\x1d\xc4\xfa\x0f\xdf\xac\x19\x9a\xc9\x7f\x6e\x96\x5b\x2c\xb4\x24\x8e\xfc\xaa\x9e\x78\x38\x32\x91\x01\x73\x8a\x77\x85\x3c\x35\xb0\x94\x5f\x71\xfa\x32\x51\x02\x75\x11\xd6\x8f\x3f\x57\xdb\xdd\xd3\x73\xd4\x37\x18\x25\x1c\xfb\x05\xe9\xba\x8f\x73\x79\xb3\xfb\x4d\x6c\x26\x1d\xcc\x7b\x5d\xde\xa0\x3c\xde\xea\xf7\x51\x96\x0d\xd5\xed\x4e\x09\x07\x84\x4c\x63\x86\x58\xcb\x17\x22\x1e\xa9\xe7\x13\x21\x4d\x04\xe6\x65\xb6\xcb\x71\x69\xab\x90\xa9\x88\x30\x50\x8b\x15\xd9\x63\x2b\x09\x5b\x2c\x22\x58\x5e\x72\xfd\xb3\x33\x2b\xab\x59\x94\x57\x32\xae\x70\x17\xba\xcd\x27\x0c\xff\x5d\x83\x46\xe8\x0f\x31\x94\x8d\x82\x13\x92\x89\x04\xcb\xcc\x87\xdd\xaf\xdb\xf9\x36\xf7\x8b\xdd\xdf\xdb\xf9\x24\x67\x36\x75\x69\xc0\xf5\xe6\x66\x7b\x27\x9b\xd7\xe9\x2b\xe2\x9a\x0b\x12\x59\xf7\x08\xc0\x89\x91\x20\x45\x20\xbd\xb8\x27\x6a\xbe\x9c\x9f\x2e\x82\x33\x2c\xb0\xfa\xaf\x53\xde\x0e\xe2\x23\x42\xca\x40\xfa\x52\xe0\x2d\xc8\x62\xfc\x68\x32\x31\x1e\xf7\x4b\x35\x5b\xbb\xea\x6a\x3b\x1b\x31\x29\x01\x77\xb6\xcd\x3f\x26\xa6\xa3\x94\x9a\x34\x54\xc9\x61\x59\x94\x66\x9b\xbf\x94\x57\x57\x4f\xd7\x95\x3e\x0d\x2b\xc3\x54\xb1\x78\xbe\xbb\x48\x95\x45\x41\xdc\x27\xc5\x31\x7a\xf5\x20\x3f\x7d\x29\xca\x00\x7d\x96\x2a\x13\x22\x1e\x3e\x34\x44\x38\xae\x4a\x03\x98\xf5\x7b\xa8\xde\xbf\x70\x9a\xcd\x2f\x24\x85\x26\x69\x87\x0f\xbf\x72\x9d\x1f\x45\x65\x42\x91\x8c\xeb\x44\xab\x7a\xc4\x48\x3d\x59\x61\xb4\xcc\x90\x58\xcf\x59\xe4\x83\x10\x96\x90\x26\x92\x0a\x7c\xe0\xd8\x6b\x18\x5e\xb8\xa2\x89\xac\xee\x51\xf5\x0f\x30\x3a\x89\x94\x61\xd8\x6f\xbd\xb3\xaf\xc3\x86\x14\x67\x6c\x4e\xaa\x39\x5c\xf8\x20\x6d\x14\x2a\x4a\xbe\x38\xfc\xce\xc4\x07\x93\x96\x29\xed\xd9\x26\x5e\xa0\x6c\x9b\x49\x8e\x53\x5a\x09\x48\x08\xb8\xde\x3c\x44\xcb\xa7\xf5\x63\xff\xbb\x21\x89\x1b\x02\xf4\xe1\x3b\xbb\x95\x87\x01\x27\xa6\x82\x24\x40\xc6\x9c\xdf\xf2\x58\xf5\xbf\xd9\xd4\x4b\x53\xed\x15\xcd\x4f\x38\x1d\xf6\x3e\xb3\x3b\x0b\xc1\xa9\x30\x26\x7b\xf4\x81\xca\xf0\x49\x22\x72\x08\x03\xa8\x50\x50\x26\xcf\x07\xc3\x69\x59\x9a\x4c\x5c\x15\x66\x19\xe2\x9e\x31\xac\xd2\x4d\xce\x1f\xc7\xb9\xd8\xe6\xb0\xd4\xab\x30\x23\x4c\x23\xc2\xca\x9e\x3e\x90\xd1\xb9\x37\x8a\x42\x36\xf8\xf3\x21\x73\x1e\xbd\x8a\x82\xd4\x13\x06\x5f\x24\xdc\xf2\x5d\xe3\x30\x72\x20\xe6\x6e\x0f\x19\x7b\x9f\x2a\xe2\xc4\xc0\x79\x94\x9f\x44\x6e\xd0\xcd\xce\xab\xca\x7c\x9e\xad\x3a\x54\x91\x32\xd2\x78\xa5\xbe\x81\x9e\x6b\xf4\x28\x91\x49\x50\x38\xcc\x02\x6c\xa0\xde\x82\xf6\x57\x8a\x8d\xf0\x50\xfe\x1b\x14\x5b\x3d\x5b\x57\xa5\x92\x34\x43\x2e\x7d\xcc\x00\x38\x7c\xfa\xec\x26\x12\x1b\x12\xf1\x62\xfe\x52\xce\xb2\xac\x2a\x8d\x18\x6e\xbc\xa4\x2d\x9a\xbf\xbc\xb6\x8b\xf3\x79\xa8\xc4\x1f\xc0\x03\x4c\xb7\x8e\x65\x83\x5d\x13\xcb\x02\xcc\xfc\xed\xf7\xad\xac\x51\xc9\x94\x42\xbf\x9e\xa3\x7d\x76\x5b\x3c\x13\xca\xd5\xe2\xfd\x37\xc8\xba\xf8\xfc\xb1\xbd\xde\xca\x02\x65\x06\x30\xe1\xe1\xcf\xcb\x3b\x63\x75\x60\x1a\xb9\x14\xf5\x9f\x5a\x33\xfe\x58\x30\x98\xef\x7a\x95\xcd\xeb\x78\x45\x54\x22\x10\x9e\x59\xd6\x2d\xe0\x9d\x1b\xec\x88\x68\xa6\x37\x2a\x52\x81\x94\x1e\x1e\x6f\x41\x5c\x39\xb3\x3e\x26\x16\x04\xa0\xf9\x05\x39\x6e\xbe\xfd\x85\xac\x8e\x9d\x7c\xca\x66\x4d\x91\xcf\x28\xf0\x8d\x32\x89\x30\xcd\xfb\xdc\x59\x84\xfd\x62\xa2\x64\x1a\x47\x76\x70\x47\xa1\xa6\xe3\xca\x6e\xd1\x1a\x6f\x46\xaa\xdb\x8d\x06\x80\xcb\x2d\x94\xc1\x58\xf5\x20\x9a\xb0\x06\x4f\xfe\xf5\xc7\x83\xc1\xaf\xa2\xb3\xae\x91\xc9\xf0\x06\x9c\x38\x6a\x1f\x11\x9b\xc7\xc6\x94\x8a\x39\x1e\xb3\xd8\xac\xef\x40\xbe\x0f\x43\xaa\xa5\xc4\xca\x9b\x3d\x65\x74\x37\x5f\x5f\xb9\x06\x66\xba\x99\xd8\xcd\xd2\x95\xae\x9c\x66\x73\x18\xf5\x67\xb0\x0c\x61\x9a\xb9\xae\xa2\x69\xae\x54\x99\x98\x40\xe5\xc8\xda\xf8\x46\x6e\xf1\xf4\xe4\xc6\x08\x43\xc4\x0a\x55\x03\x63\xc3\x4f\x19\xcb\x91\x5a\xb7\x17\x36\x73\x44\x92\xdf\x48\x39\x4d\x4f\x0d\x3c\xc6\xdd\xba\xb2\x56\xbf\xca\xbc\xfc\x71\x2c\x2a\x69\x66\xd4\x0e\x42\x81\xb4\xc4\x12\x7c\xfa\x24\xf1\xca\x0b\x89\x76\x65\x03\x8a\x10\x15\x7f\xa7\x80\x73\x7a\x2b\x36\xb0\xa1\x9d\xb9\x24\x08\xf6\x6f\x7e\x94\x6d\xee\xd4\xf3\x7d\x58\x5c\x07\x69\x88\xf6\x40\x73\x2c\xf2\xce\xed\x7c\xfb\x4b\x75\x22\x77\x60\xc4\x0c\x6d\x97\x6e\xbd\xe8\x76\x6e\xc4\xab\xcf\x16\x6e\x1d\xc9\x3e\xcf\x7b\x95\xbb\xf4\xd8\xcc\x76\xd7\x31\x4f\xd1\x4b\xf8\x25\xdf\x61\x82\xf0\xd6\x89\xb0\x42\x7b\x5c\x2e\xd6\x75\x6d\x64\xb7\x3d\xfb\x40\xfc\xe4\x8f\x3b\x26\x0d\x04\x6e\x15\x0f\x4f\x57\x4f\xf7\xfe\x44\x69\x94\x60\x08\x74\x0f\x6e\xd1\x39\xbf\xcb\xea\x94\x73\xeb\x08\x66\x6e\xeb\xea\xa3\x7d\x9d\x94\x65\xeb\x54\x84\xbd\x66\xc1\xa8\x68\x66\xfe\x0d\x68\x96\x26\x88\xda\x3d\xd6\xb0\x5e\x3e\x75\x33\x69\xbc\xe3\x69\x26\x19\x7a\x1a\x07\xf9\xdb\xb1\x92\x8f\xd2\x85\x4d\xdf\xcb\x44\xe8\x5f\x5c\xd5\xd0\x8e\x80\xed\x9a\xd9\x94\x3b\x57\x67\xa6\xe5\xe5\x3a\x70\xc6\x08\xd6\x3e\x40\x82\x7d\x8b\x88\xb3\x70\x28\xb9\xec\xf6\xc5\xf3\x7c\xfe\x42\x23\x39\x14\xad\xfc\xbd\x1e\xc6\x76\x26\xe2\x26\x34\x87\x18\xcd\xe1\xb6\xfe\xdc\x55\x9d\x5f\x53\x00\x72\x6c\xa0\x91\xe3\xfa\x08\x26\xa5\x63\x87\xc4\xa5\xd1\x61\xb7\x1d\x79\x8e\xef\xc4\x65\xe0\x01\x88\xdd\x15\xe3\xbe\xc1\x2a\x5c\x5d\x9b\xaa\x78\xff\x9b\xdf\xa3\xce\xa2\x14\xa1\x23\x12\x89\x0c\xae\x72\x73\x53\xd5\x73\x52\xaf\x73\x67\x99\x9e\x24\xa6\x68\x05\x49\x16\x52\xd6\x70\x9a\x1c\xd1\x19\x8b\x89\x9e\xbe\x9d\x89\x53\x08\x9d\xe9\xc4\x10\x6d\x5e\x5d\x7a\xc2\x4f\x07\xf2\x9a\xdf\xac\x89\xd1\x64\x78\xed\x0f\x85\x04\xcc\xc0\xf4\xd4\xff\xca\x32\x67\xcb\x3e\x4b\x0d\x0f\xa7\x91\xae\x50\x7f\x43\x2a\x4a\x30\x41\x04\x03\xc9\xfb\x25\x4d\x4a\xa1\x55\x12\xf8\x62\xac\xd1\x6e\x3d\xde\x5a\xb5\x62\x29\x0c\x9c\x37\xce\x75\x9b\xde\xbe\x8e\xb5\x63\xfa\x70\x7a\xdc\xdb\x93\xa2\xcc\xf5\xac\x9f\x32\xe1\x00\x87\x18\xc1\xa4\xc7\xe6\x83\xd6\x9a\x21\xcc\x44\x23\x84\xe0\xa4\xdb\x1f\x75\x71\x96\xe1\x58\x68\x6d\x13\xcd\x7d\xf1\x06\xf2\x9a\xbc\xc3\xaf\xd7\x93\xb5\xf9\x68\x5d\x1d\xef\x86\xda\x04\x0a\x87\xf0\xba\x9a\xc0\x92\xb5\x49\x24\x96\x17\xfc\xbb\xca\xcb\xa5\xac\xdf\xe1\xc7\x71\x37\x07\x25\x6b\x23\x42\x7c\x2b\xb5\xb4\xd6\xf1\x7b\x4c\xc2\xf2\x1a\x18\x47\xc4\x53\xf7\xc6\xbf\xa7\xc2\xd0\x36\x4c\xd0\x12\x22\x60\x0f\xe1\x14\x5d\x8d\xbb\xef\x11\xa5\x68\x13\x3b\x7e\xeb\xce\xc2\xab\x7b\x46\x51\x61\x82\xc0\x24\x44\x41\x8b\x01\x32\x0c\xe2\xfc\x3d\x98\x81\x09\x12\xeb\x95\xa7\x9e\x89\x95\xa7\x3e\x1b\x60\x32\x81\x20\xd3\xc8\xad\x15\xe3\xba\x28\x13\x68\x8b\xd7\xf7\xe5\x4a\xb8\x15\xcf\x15\xbc\x85\x09\x43\x6e\xb5\x87\x8a\xae\x4a\xd3\x24\x7f\xf4\x2d\x59\xd2\xf3\x9c\xdd\x56\xfd\x8c\x33\x21\x33\x68\xaf\xe6\xcd\x3d\xc8\x63\x67\xf8\xcd\xce\x19\xd9\x14\xeb\x7c\xcb\x6a\x2f\xad\xf5\x87\xc5\x2c\xc1\xed\x5f\x16\x45\x37\x97\xf3\x72\xa4\x5f\x91\xfe\xcb\x77\x52\x94\xf2\x79\x00\xd9\xde\xd6\x39\x06\x77\x17\x4d\x53\xe9\x5c\x7e\x27\x84\xf0\x7d\x8a\xcc\xc4\x26\x40\x87\x1f\xe1\x21\xed\xea\x7f\xa3\xcc\x15\x01\x67\x2e\x6e\x96\xb9\x8e\x49\x10\xe0\x92\x60\xeb\xea\x80\xf1\x8e\xd9\xa7\x64\x92\x30\x45\xf3\x46\x95\xed\x27\x16\x1f\x93\x18\xd9\xd8\xce\x31\x09\xd3\xbe\xfa\xeb\xc9\xd9\xf3\x84\xef\x8d\xce\xa2\x8a\xe7\x95\xdc\xa7\x01\x18\x3f\x2f\xb0\x33\x89\x62\x49\x34\x52\x24\x1f\x05\x17\x4c\x02\x16\xc3\xd7\xef\x44\x85\x0b\xfb\xe3\xc8\x9f\x71\xd6\xa2\x49\x53\x49\x95\xb2\x9b\xfb\xf1\x2e\x6e\x52\xc5\x6d\x30\xf0\xb0\x4d\xda\x78\x1c\xa2\xed\x85\xa1\x1a\x7c\x0d\x63\x91\xcf\xae\x9d\x4a\x06\xee\x2b\xaa\xb8\x74\x04\xf5\xe7\xd1\x09\xfe\x98\xc4\x26\xaa\x27\x0c\x43\x2a\x9b\x8b\x4c\x1b\x46\xa4\x26\x8a\x3d\xe2\x6d\x0b\x67\xf9\xbc\x84\x11\x3c\xc0\xf4\xd9\x9e\x96\x2f\x27\x80\x70\x6a\xab\xf9\xf4\xcc\x92\x00\xeb\xbf\x3e\xea\xbc\x85\x8d\xa3\x5b\xfa\xe3\xdc\x06\x63\xb2\x44\x21\xbe\x40\x9d\xf2\xc2\x5c\x6f\x1f\x4f\x45\xf1\xd0\x63\x05\x4c\xa6\x95\x8f\x3a\x4c\x29\x78\xbe\xdf\xfb\x8c\xb4\x21\x26\x43\x34\x96\x70\x60\x31\x5e\x91\x97\x6f\xbe\x30\x7f\xfa\xca\x95\x25\x2d\xdb\xb1\xbe\xfd\xa4\xec\xf8\xc2\x22\x62\x62\x8d\x31\x5f\x54\xd9\xaf\x0f\x6e\x47\x77\x7c\x83\xb3\x11\x31\x5c\xa2\xa3\x5a\xa2\xef\xf4\x64\x7f\xc9\x17\xa8\x9b\x5d\xe5\xa8\x43\x5d\xfc\xc7\x3f\xb6\xd1\x09\xd2\x85\xdc\x6d\x16\x7b\xc2\x49\x3e\x2f\xa3\xe0\xbb\x12\x29\x63\xc0\x22\xc9\xc7\xda\x80\x1c\xd9\x49\x06\x62\x91\xb8\xca\x42\x7a\xf3\x63\x61\x00\x61\x40\xa4\x08\x0f\x38\xee\x1b\x82\x51\x3f\xd9\x55\xfb\x7a\xfe\xf5\xdb\x90\x66\x30\xe1\x49\x1d\x2f\xc6\x34\xbf\x79\x8e\x23\x21\x9a\xcb\xb2\x8c\x3c\x7b\x63\x53\x8d\xab\x51\x45\xd2\x67\x63\x85\x3f\x77\x8b\x10\x84\x81\xaf\x43\xea\x7f\x4a\x18\xc2\xe8\x1f\xf2\x12\x7e\x57\xd7\xf9\x4b\x3e\x6c\xd7\x10\x18\xe2\xb0\x44\x9e\x5a\xd9\xc0\x9d\xac\xcd\x52\xce\x50\x24\x10\x58\xab\x7a\x2d\x66\x62\x37\x18\x33\xa6\x09\x88\xb4\xf5\xf9\xb4\x87\xbc\x7c\x90\xbf\xd7\x23\x8e\x4a\x01\x71\x08\xc0\x07\x90\xe5\xad\x3c\x95\x6d\x31\xdc\x61\x2c\x42\xb4\xbf\x9b\x93\x6a\x74\x9d\x1f\x47\xaa\xac\x02\x62\x23\xb0\xc4\xfa\xbe\x37\xcd\x21\x06\x66\x48\x4b\xc0\x99\xc0\xed\x40\x7b\xba\x28\xfa\x67\x4b\x42\x91\x0d\xe2\xf0\x77\xf9\xcb\x2b\x34\xed\x43\x5e\x40\xb3\x3f\x6f\xdf\x40\x12\x05\xff\x3f\xd6\xde\x6d\xb9\x71\x1d\xc9\x02\xfd\x9d\xfd\x30\x0f\x24\x48\x90\xc4\xa3\x2c\xcb\x55\xee\xed\xdb\x58\x72\x55\xf7\x4c\x4c\x28\x12\x40\xc2\xe6\x98\x22\x35\x24\x65\x97\xfa\xeb\x4f\x30\x01\xf0\x26\xba\xf6\x3e\x27\xce\x43\x77\x75\x9b\x20\xc5\x0b\x90\xc8\xcb\xca\xb5\x62\x1b\xd6\x79\xab\x65\x55\x59\xae\xd0\x54\xf3\x06\x12\x8c\xe3\xcc\x55\x18\xa0\x7e\x75\x9e\xce\x4d\x55\x0f\x49\x1c\x7f\x1f\x49\x10\x27\xdd\xd3\xdf\x3d\xaf\xef\x73\xbd\xc3\xfa\xf0\xbd\x2a\x3a\x17\x7e\xde\x8d\x31\xbb\x9b\x04\xe2\x28\x72\xa1\xb4\x65\x6d\x5e\xd0\xb8\xcc\x50\x30\xfb\xc9\xe5\xe9\xbc\x23\x62\xf4\x1d\x36\x2d\x1b\x87\xab\x28\x62\x6e\xfc\x16\xd0\xcd\x9d\x87\x5c\xcd\xd5\xbb\xfc\x48\xb0\xd4\x4f\xa0\xb5\xc5\xd6\x78\xae\x87\xd3\x98\x40\xe3\x3f\x66\x77\x00\x8a\x0a\x4b\x57\xb7\xeb\xbf\x6c\x4f\x44\xa1\x18\xf3\xde\xc4\x82\x96\xeb\xa4\x8a\xeb\x4e\x01\x63\x7c\x66\xa5\xac\x34\x1e\xbb\xa8\x71\xf6\x31\x64\xe8\xa9\x6f\xec\x3c\xbe\x76\xbd\xe4\xb3\x77\x25\x23\x1e\x5b\x39\xf8\x5f\xc4\x64\xee\xff\x2c\x04\x39\xc1\x4f\x2f\x57\x77\xb7\x4e\xbf\x99\xea\x77\xfb\xf5\xea\xa9\x1f\x84\x56\xe5\x90\x94\x4a\x6e\xaa\x9a\xca\x8b\xd8\x2c\xd0\xf5\x65\xa8\xb8\x65\x6c\x71\xe9\xaa\xaa\xa8\xea\xc7\x9a\x2c\x9d\x1b\xa0\xb5\xa6\x20\xd7\x93\x85\x3c\x7e\xce\x2b\xff\x68\x02\xeb\xf2\xed\xe9\x4d\x95\x7a\x9e\x4b\x9a\xbd\x24\xc3\x2d\xcd\x77\x89\xbf\x2c\x99\x3b\xe2\x54\xdd\x2e\x43\x23\xec\x7b\x54\x50\x7b\x20\x82\xd3\xf1\x98\xfc\xb2\x61\x81\x22\x3e\xf4\xc3\xb9\xa7\x4c\xf5\x47\x62\x81\xbe\x47\x72\xf7\x56\x57\x9f\x24\x64\x6e\x09\xbc\x6e\x4b\x55\xd5\x35\xaa\x96\x44\x97\x26\x79\x0c\xc3\x12\x61\x79\xa9\xb1\xe9\xd5\xf3\x07\x6e\xbe\xcc\xb0\x8c\x13\xe9\x64\x59\xb5\x9b\xff\x3b\x41\x71\xb1\x99\x8c\xa7\x90\x61\x82\xd3\xa3\x82\xd6\xd4\x73\x7b\xd1\x66\xf1\x5b\xd3\xfa\xe5\x46\x68\x98\x94\x54\x68\xb1\x72\x0e\x9d\xc3\x72\x68\x2e\x8a\xd8\x93\x33\x22\x99\x72\xeb\xc1\x9f\x7f\xe6\x5f\x6c\x05\x26\x4e\x63\x2a\xa2\xf9\x6c\x35\xf9\xde\x37\xd5\xdc\x89\x5e\x5e\x5c\x26\xce\x2c\x82\xcf\x8a\x8b\x50\x9c\xb4\x9d\x6b\x5c\x67\x86\x47\x26\x72\x13\xfb\xc9\x92\x0e\xbb\x14\x42\x3f\xe5\x0c\x47\x4e\x4d\xaf\xd7\xb8\x2e\x4e\xf2\x77\x6b\xd4\x24\x8a\x51\x69\xd4\xe7\x27\x3b\xbf\xae\x59\xe8\xbb\x34\x89\x8e\xd0\xcc\xf5\x57\xe8\x9b\x4c\xaf\x87\x36\x47\xe2\xfa\x49\x09\xbd\xef\x7a\xad\x46\xde\xa0\x49\x43\x43\x9c\xb3\x5e\xc2\x6c\x2c\x39\xb6\x68\xb0\x4d\xca\xad\x70\xa6\x05\xb5\x4f\xa8\xed\x33\x93\x26\x3c\x71\xb0\x80\x1e\x3b\x30\x4a\xeb\xfb\x51\x69\xe0\xe9\x1c\xfe\xf3\x84\x27\x9c\x6c\x6c\x26\xcd\x42\x5a\xf4\x36\x1d\xfa\x00\x07\x5c\x75\xb1\xe3\x08\xff\xbd\x08\x6e\x30\x29\x58\x5a\xce\xbc\xb9\xeb\xc5\xc7\x32\x93\x9a\x98\xfa\x75\x75\x7d\xec\x37\x2c\xeb\x8b\x0f\xe4\x7a\x6e\xa8\x60\xc2\xe6\xf9\xbb\xf5\xe5\x91\xed\xfe\x20\xa4\x69\x6a\x71\x8a\xf5\xfe\xa3\x6a\x87\xf5\x29\x65\x4a\x0d\x28\xeb\xc7\xfb\xfb\xc7\x87\xfd\xcf\xdb\xdd\xf7\xeb\xe7\xd5\xcf\xfd\xf6\xe5\xe9\xe9\xee\x5f\xc3\xa8\x8c\x72\xc4\x79\x1f\xcb\xf4\x6d\x0d\x37\xd5\x45\xec\x3f\x7b\x32\x89\x31\xe5\xce\xd7\xe7\xd7\x5e\x65\x2a\x33\x2a\x95\x3a\x18\x8a\xe9\xdd\x02\x6f\xf1\x1a\xef\xb1\x81\x1f\xb6\xa3\xe6\xaf\x96\xe2\xc4\xcd\x34\xca\x88\xc8\x66\xbf\xc7\xbe\xbf\xd1\x21\x12\x26\xc8\xb5\xf5\x3b\xeb\xb4\xdc\xd5\x68\x74\x68\xc5\x3c\xdd\x5f\x77\x15\x85\x50\x97\x96\xd6\x60\x62\x88\x4c\xb8\xad\xf3\xd7\x57\xac\x97\xa6\xdd\x74\xda\x1b\x25\x12\xe6\xe8\x2b\x7e\xd9\x2e\x0a\xbb\x5b\xfa\xfb\x34\x9a\x7b\x2d\x2f\x5a\x83\x94\xcb\x23\x80\xc7\xf4\x31\x8d\x4e\x28\xee\x78\xaa\x3e\x07\x5e\x36\x3a\x26\x82\x80\x61\xc2\xc6\xd2\x3c\x37\x9f\x33\x6e\xdb\xc9\x5d\x89\x20\x80\xcc\xeb\xdc\xaf\x8e\xc7\x1a\xcb\x36\x57\xb8\xee\x9c\x9e\x51\x3c\x28\x82\x40\x43\x28\xc6\xf8\x17\xaa\x9e\x8d\xda\xf5\xa6\x57\x0d\x45\x4c\x5f\x02\xf3\xee\xed\x7d\x87\x0f\x5c\xb5\xbe\x25\x7f\x6e\xb9\xc6\x0f\x27\x02\xc6\x90\x5a\xc4\x3d\x8d\x2e\x4e\xe7\xf2\x50\x14\xee\x37\x4e\x11\x30\xe1\xa8\xad\xc9\x52\xfc\x44\xd9\xe4\x53\xcc\xb6\x08\x98\xca\xc8\x2d\x6a\x3e\xf3\x56\xbd\x19\xaf\xb3\x2b\x82\x28\x48\x68\xc9\x5c\x9d\xea\x72\xf6\x10\x51\x2a\x09\xe8\x6c\x19\x9f\x7b\x5f\x6d\xc9\x5e\x8b\x20\x02\x46\xa5\x6d\x2a\x5b\xcc\x73\x24\xb3\x1a\xb6\x08\xe2\x20\xcb\x70\x44\x19\xde\xb3\x0b\xfb\xdb\x8a\x23\x16\xf1\x01\xdb\xbb\x68\xc9\xba\x51\x09\x49\x09\xdf\x5f\xed\xfa\x13\xb9\x22\xc2\x48\x7b\xc9\x21\x4e\x11\x41\x8c\x36\x99\xa2\xb1\x78\xb9\x2d\x5b\x5b\x1d\x9a\xbe\xfc\x24\xd3\x84\x0c\xd2\x7d\x9e\xce\xca\x2e\x7f\xb1\xb8\x67\x77\x93\xc8\x94\x90\x5c\xf2\x54\x97\xc3\xcc\x08\x83\x83\xbf\x83\x34\x4b\x88\x6f\x08\x7f\xa1\x3a\xb5\x38\xd5\xac\xfa\x1d\x1e\x56\x04\xa9\x10\x84\x93\xba\xa9\xea\xce\x9b\xc5\xfe\xfb\x65\x82\x65\x81\x8f\xab\xf7\x1a\x8b\xd9\x77\xc9\x64\x10\x64\x7d\x48\xb5\xeb\xfb\xd4\xfe\x9b\x0d\x25\xa5\xc9\xff\xfc\xf2\xc0\xdf\xff\x9f\xe1\xff\xb8\x1f\x17\x91\x51\xae\x17\xec\xb6\x33\x6e\x23\xdc\x8e\x1f\x91\x49\x9a\x97\xef\x1e\xff\x27\x02\x88\x6d\x27\xe9\xea\x78\x6a\xde\xfe\x51\x9d\x9a\x76\x42\xf7\x31\x3d\x1f\x90\x43\x38\x00\x4e\x81\xc8\x21\xfc\x95\x64\x10\xd2\xb3\xe7\xaa\x2a\xd5\x24\x71\xdc\x1d\x13\x2a\xe8\xdb\x1e\xf7\xd2\x4b\xd6\x67\xfe\x78\xc8\x62\x4b\xa3\x4b\xa7\xd9\x18\xd9\xd5\x29\x86\xcf\x22\x05\x10\x9e\x68\xf3\xf8\x97\x4e\xbc\x08\x54\xa8\x3d\x8c\x8d\x4a\x5f\x79\x55\x0e\xb9\x1f\x11\xa8\x8c\x27\x56\x95\xea\x70\x2c\xe0\x7d\xf8\xb3\x15\xce\xb8\xab\x5e\x1f\x1d\xa9\xca\x7a\xac\xca\xbd\xa0\x1a\x24\x02\x25\x18\xb9\x9c\x37\xe7\x26\x57\x50\x8c\xb6\x03\x11\x28\x54\x44\xaa\xb0\xd2\xfa\xd1\x98\x5c\xe5\x50\xac\x8e\xc7\xf9\x7a\xd6\x91\x26\x42\x11\x3d\xe2\x67\xf1\x87\xb2\x84\x20\x12\x70\x6a\x2b\xd2\x26\xf8\xa3\x3f\x20\x6c\x85\x9b\x1a\x43\x1a\xa2\xb8\x58\x9c\xdf\xfd\x82\xd3\x10\x8b\xc4\xc7\x35\xe5\xfb\x2e\x6f\x8b\xb9\x29\xd5\x4a\x11\xcc\x6a\xbb\xba\xd9\xfc\xe6\x1d\xff\xc7\xf8\xe3\x61\x22\x29\xe7\x70\x6a\xb0\xb6\x49\xf2\x25\x37\x51\x04\x26\xb4\xea\x7d\x56\xfd\xfd\xa5\xcc\x7f\xf9\x47\x31\x09\x27\x16\x10\x05\xa5\x25\xe9\xb8\xf2\x91\xb7\x08\x83\x28\xcd\x5c\xe1\xe0\xea\x76\x6a\x41\xc2\x20\xca\x28\x5b\x3e\x8a\xb2\xa7\x6f\x2f\x0c\x22\x74\x22\x69\xe6\x54\x6a\xd7\xea\x31\xbb\x48\xa2\xb5\x18\x89\x05\xdb\x7e\xaa\x4b\xa2\x13\x11\x06\x69\x40\x71\xfe\xb1\xae\xba\x21\x1b\x2f\x53\xdf\x99\x2d\x57\xd6\xb5\x90\x13\xbf\xcb\x8a\x30\x14\x56\x28\xca\x26\x91\xb6\x9f\x70\x3c\x2e\xa7\xa6\x45\x18\x1a\x66\x5c\xb1\xb7\x2d\x70\x0d\xa5\x3e\x7f\xc3\x76\xda\xea\x2a\x42\x26\x78\xe0\x42\xe9\xdb\x16\x0f\xcf\x36\x71\x4f\x41\xf5\x6c\x64\x94\xd8\x2e\x87\x93\x55\x1d\x7d\x46\x72\x3d\xfd\x8d\x45\x19\x27\x14\xd1\x35\xa2\x1e\xb0\x58\x22\x8c\x83\x98\x31\x27\x00\x78\x0f\x79\x71\x75\xb6\x82\x1d\x93\x05\x10\xce\xb6\x86\x30\x8e\x15\xcd\x2c\x9a\x32\xf7\x79\xd9\x5e\xd2\x99\xf8\x91\xdc\x92\xb2\xf4\x49\xa7\xdf\x10\xe4\x88\x30\x56\x86\x98\xe7\x0a\xfc\xc0\x70\xf6\xbe\x78\x62\x05\xd5\xde\xa0\x79\xaa\xf3\xaa\xbe\x3e\x91\x4c\x44\xbb\x48\x1e\x22\xc2\x24\xb1\x6e\x72\xee\x30\x53\x36\x22\x9c\x5d\x33\x51\x96\xa8\xd9\xd2\x3d\xae\xab\xd3\xb1\x1a\x6a\x43\x93\x45\x1f\x26\x1a\xb9\xf0\x5d\xa4\x33\x3a\x38\x11\x26\xc8\xb5\x25\x6b\x2e\xb4\x23\x90\xbb\xed\x27\x45\x62\x32\x0a\x5e\x35\x79\x19\xf7\xce\x87\x73\xd8\x53\x11\xa6\x4c\x8f\x88\x08\x07\xae\xad\xcc\x1f\x8f\xad\xe4\xde\xab\xaa\x96\x77\xea\x30\x4b\x74\xda\xcb\xbe\xcc\x3a\x79\x44\x28\x24\x92\xe9\x3b\x35\xe8\xd4\xb3\x90\x40\x7b\x7f\x11\x81\xce\xde\x27\xa0\x26\x72\x92\x69\x9f\xd3\x45\x73\xff\x1c\x4a\x21\x42\x29\x23\x4b\xb5\x59\xe6\xad\x43\x7d\xfd\x16\x93\x2a\x42\x69\x22\x72\xa9\x3d\x69\x30\x65\xb3\x6e\x90\xb4\x06\x67\x1f\x50\xa5\xa9\x5b\xef\xa4\xc5\xee\x74\xc2\xfe\x16\x0c\x52\x84\x3a\xb4\x04\xf0\x4e\x35\x09\x9a\xe6\x58\xd5\xcb\x48\x72\x11\xea\x08\x94\x4b\x65\x5f\xe3\xc7\xec\x36\x74\x1c\x04\xa3\x92\xf4\x80\x9b\xee\x0e\x01\xa9\x58\x99\xba\x2a\x5b\x2b\xec\xbd\xd2\xff\x7b\x72\x72\x0f\xdd\x3e\xd5\x8f\x44\xa4\x68\xf8\xb9\x9b\x61\x2f\x7d\x55\xad\xbf\x12\x46\x76\xa9\x1e\x6b\x3c\xe4\x27\xca\xd8\xf5\x87\xe2\x80\xcc\x0e\xe5\x08\x9d\xb9\xc1\xb9\xc1\x31\x98\xf8\x8a\xc2\x1d\xf4\x2a\xb9\xa3\x4d\x92\x05\xb1\xa6\x4f\xb5\x43\x38\xfc\xc0\x86\xc2\x83\x11\xe8\x51\xb0\x40\x20\x39\x14\x79\x43\x21\x54\x3e\x8b\x5b\x04\x0b\x54\x4a\xa1\xd8\x6d\xd9\x9c\x88\x8d\x7a\xf1\x0b\xb3\x90\x59\x42\xb0\x26\x8c\x1c\x3f\x93\x3f\x80\x21\xe9\x56\xf8\xa4\x99\xeb\x07\x9f\x9e\xcd\x22\xcb\x16\x89\xa5\xfe\x51\x0d\x77\xcf\x62\x4b\x0d\x7d\x57\xb9\xb2\xfc\xcf\x09\xeb\xea\xd7\x3a\x71\x83\x01\x62\x2c\x13\x4e\x9e\xb6\xd4\x05\x9a\xf6\x40\x68\xde\xc5\x55\xc7\x22\xae\x03\xdb\xf6\x93\x1f\x8f\xa8\x17\x85\xd2\x27\xf7\x1d\x49\x16\xf0\x99\xda\xa0\xbf\xf9\x38\x4d\x52\xa7\x51\x79\x47\xb5\xbf\xd7\xc5\x8a\xb1\x60\x3c\x31\x04\xbb\x28\xf1\x93\xb6\x81\xfa\x3f\x4f\x58\x9f\x1d\x0e\x61\xca\xbd\xe4\xcf\x00\x13\xa7\x7e\x9a\x57\xb5\xc5\x9d\x4d\x62\x7b\xc1\x12\x16\x50\x4b\x81\x05\xb5\x39\x5b\xe9\x8f\x49\x4d\xa8\x86\xa7\x1a\x7d\xf6\xe5\xf7\xe4\x55\x21\xcb\x66\x37\x9d\x32\x0b\x1c\xdd\x5b\x43\xbb\xd2\xd5\xb1\x0b\xf0\x7f\x8d\xab\xdc\xa7\x0b\xfa\x54\xc1\x52\x34\x54\xfd\xf8\xf0\xe2\x95\x5b\x2b\x0f\x74\x1e\x51\x7f\x76\x2e\x3a\xa3\xe4\xdb\x98\x09\x88\x22\x48\xc6\x03\x3f\xa6\xdb\x49\xbd\x11\x3c\x3f\x16\xfa\x61\x06\x33\x13\x4c\xb0\x90\x7b\x6d\x00\x4f\x9f\x3b\x5b\x42\x4c\x38\xd9\xec\x57\x6c\x9f\x1e\x1f\xef\x2c\x62\x2d\xec\x7f\xc3\xe1\xb2\x2d\xc0\xb6\x07\xdf\x0a\x06\x91\x20\x9a\x41\x57\x08\x27\xa7\xe9\xea\xa4\x5f\x87\x77\x0c\x3c\x91\x16\x0c\x07\xed\xdb\x35\xb4\xb0\xff\x08\xfb\x7b\x07\xcc\x52\x5b\x4e\xde\xda\x72\x84\xbc\x58\x77\x52\xe8\x44\x8d\xec\xe0\x49\x16\x9d\x5f\x52\x3f\xbb\x56\xb1\xd9\x70\x25\xb9\x74\x30\xeb\xab\xfa\x32\xf3\x3e\xef\xd2\x9c\x4e\xab\x79\xbc\xc9\x94\xb2\x50\xe6\xdc\xe6\x6e\xe7\xa2\x53\x82\x29\x9d\x91\x27\x58\x75\x1e\x31\x14\xae\xd6\xe0\x1f\x4f\x61\x08\xe9\x40\xbe\x4d\x21\x43\x67\xf3\x41\xf5\x22\x4e\x82\xe9\x44\x11\x5a\x70\xf7\x73\x3d\xf6\xb7\x99\xd6\x96\xff\x80\x72\x91\xc4\x4a\xfc\x54\x7d\x62\x6d\x4e\xc5\xd0\x36\xd1\x8d\x42\x1c\x80\x39\x36\xef\x71\x3b\xda\x4e\xa7\xb7\x8b\xc2\x72\x1c\xd5\x04\xf4\xfa\x09\x4d\x17\x12\xf4\x3e\x1e\x43\x6d\xe3\xae\x07\x57\x0b\x74\xf8\x25\x1f\x62\x31\x13\x0a\xd2\x69\xba\xbd\xbf\xde\xfc\xf3\xf7\x75\x9b\xe9\x0f\x47\x81\x8b\x90\x6d\x7a\x82\xa6\xe8\x42\xb6\x59\x44\x61\x66\xf9\x08\xf7\xb2\xaa\x97\x13\x42\x22\x0a\x65\x4c\x0e\x9f\x27\xd7\x20\x00\x3b\x1a\x3f\xe3\xa2\x50\xa2\xe2\xd3\x96\x2d\x8b\xc0\x58\xd2\xe6\x71\xe7\xb0\xd8\x76\xc2\x38\x17\x93\x7a\xee\xde\x72\x9c\xf5\x8e\x8a\x28\x0a\x32\x66\x79\xa2\x7f\xbd\xd8\x03\xfe\x57\x79\x98\x52\x76\x14\xb4\xde\xbe\x55\x47\x5b\xa6\x5d\x08\xe7\x22\xce\x2c\xe4\x97\xd6\xb4\xf5\x77\xc7\x29\xa3\x88\x67\x12\xac\xcc\xda\xaa\x73\xb1\xa7\xf3\x3b\xe2\xc2\x36\x8a\x7e\x83\xb3\x6d\x4f\x87\x62\xe5\x59\x6f\x44\x94\xc4\x59\xe4\x65\x52\xc0\x96\x9f\x66\x0f\x90\xf0\x90\x82\xc9\xfd\xbe\xf3\x41\x6e\x4e\x7d\x0a\x2c\x4a\x32\xdb\x83\xef\x88\x28\x9b\xe7\xbc\x79\x57\x55\xdf\x23\x28\xa2\x2c\x48\x3c\x89\x5b\xb7\xff\xe4\xe5\xab\x17\x4a\x5c\x72\x2b\xa3\x2c\x34\x91\xf2\x4d\x41\x6b\x38\x36\xab\x52\xbf\x2c\x52\xe5\xf8\x13\xa2\x68\x94\x8e\xb2\xe5\xb7\x05\xa6\x07\x11\x65\xb1\x55\x2f\xea\x19\x13\xd7\x70\x9c\xa3\x5b\x44\x94\xc9\x98\xde\xd4\x16\x5b\x7b\x2d\x72\x11\x57\x97\xc3\x8c\x85\x55\x60\xa9\x9d\x52\xc8\x64\x93\x89\x44\x16\x11\x30\x75\xdb\x56\xbf\xb6\x87\x6e\x89\x51\x5f\xf1\x6f\x14\x9f\xdd\x89\x10\xc7\x41\xd6\x77\xad\xb6\x37\x84\x06\x2a\xd5\x6c\xcf\x8f\x80\x07\x14\xdd\xb8\x46\x3e\xa2\x52\xbc\xa9\xea\x11\xbb\xdc\x28\x72\x8b\x40\x86\x09\x9f\x74\x27\x93\x68\xa3\x3b\xaa\xc2\x40\x18\xcf\x71\xe0\x6b\x66\xfd\x07\x54\x91\x46\xc7\x40\xf0\x3d\xef\x22\x87\x33\xd9\xeb\x81\x06\x4e\x44\x2a\xd5\xee\x6d\x14\x85\xaf\x1d\xb9\x9c\x14\xc5\x71\x7e\x9c\x06\x19\x78\xa6\x7a\x1c\xab\x47\x89\x48\xab\x2c\x60\x3d\x55\xc7\x1f\x6e\xdb\xfc\x6f\xc7\xbc\x21\x22\x0c\x90\x20\x18\xcf\x8f\xeb\x3f\xfd\x39\x08\x59\xe8\xb8\xd0\x6c\xb6\x65\xc1\xc9\x88\x50\xa6\xe4\x41\xfd\x5a\x3c\x6a\x84\x0c\x60\x82\x08\x9f\xbd\x67\xa3\x99\x1c\xc0\xd6\xeb\x53\xd3\x56\x87\x55\xeb\xa8\xab\x1c\xd5\xce\x25\xd4\xda\xef\xf8\xfe\x5f\x3f\x2d\xe2\x20\x8b\xc8\xad\x79\xd9\x5e\xef\x9f\x36\xcf\xfb\x9e\x30\x4a\xc4\x81\x96\x21\xb8\x97\xb8\x2a\x8a\xeb\xaa\x58\xb5\x8f\x83\x4b\x12\x87\x91\x22\xb7\x85\xbe\xd2\x33\xb6\x44\x4c\xb5\xae\xbb\x2d\xd7\x0f\x61\x81\x0d\x14\xda\x7e\xae\xf9\x03\x91\x88\x75\xdf\xcc\xdf\x7d\x17\x36\xb5\x10\x31\x4b\xfa\x1d\xd0\x23\xc8\x96\x8d\x5e\xcc\x84\x45\xcd\xe4\xcd\x0d\xd4\x87\xb9\xa9\x89\xa3\x34\x44\x57\x09\xee\x9d\xba\x91\xb8\xb6\x88\xe3\xd4\x3a\x6c\x8a\xde\x25\xb5\xe7\x53\xa9\x76\x4e\x6b\x25\xe2\x18\xad\x2d\x70\x71\xcf\xae\xb6\xc8\x67\x7f\x21\x1e\x32\xca\x7e\x5c\x8d\x75\xeb\x45\xcc\x85\xf4\x39\x76\x37\xd7\xef\x4e\xea\xfd\xbc\x6d\xab\x12\xc7\x26\x33\x4e\x02\x1d\x0c\xc9\x6f\x6b\x53\x2d\x8f\xc9\xa2\xa5\x89\x93\xc4\xb6\xab\xe4\x9e\xbe\x70\xf7\x06\x9f\x0e\x3e\xb9\xb8\x96\xe3\x24\xb3\x8f\x2a\x47\xa2\x08\xc3\xaa\x8c\x13\x15\x12\xfa\xa1\x86\x92\x2a\x72\x53\xb8\xa9\x88\x13\x03\x04\xd9\x38\xc0\x2f\x6b\xd1\x5c\x82\xde\x1f\x4f\x63\x41\x21\xf8\x3e\xb7\x95\x3f\xcb\xd3\x5b\x2d\x77\xbf\x8a\x38\x4d\x42\x52\x98\xd9\x62\x7b\x3a\x52\xaa\xe7\x4b\x9e\x0d\x11\xa7\x69\x42\x90\x85\x43\xee\x75\x5b\x29\x88\xfb\x6d\xde\x38\x4e\x33\xa0\x93\xae\xcf\x05\x94\x5f\x37\x83\xbb\xd1\x59\x14\x67\x63\xbd\xd9\xa5\x2c\x4e\x9c\xc5\x31\xd9\xd1\xd5\x6a\x35\xf6\x73\xe2\x2c\x16\x9c\x4f\xbb\xc0\x46\x72\xc6\x22\xce\x32\x0b\x23\x20\x20\xce\x58\x07\x5e\xc4\x42\x28\x42\xec\xdf\xe7\xfa\x33\x37\xfd\xdb\x94\x01\xf8\x9e\x8d\x9b\x53\x61\xf2\xa2\x98\xf4\x51\x4f\x6f\x4b\x82\x55\x54\x6f\x70\x92\x2f\xf6\x41\x7e\x2c\x95\x25\x38\x3f\xd6\x55\x65\x1e\xcd\x16\x8a\x76\xa1\x43\x4d\xc4\x2a\x8a\x79\x48\xd5\x7a\xf5\x76\x75\xf2\xd0\x47\x11\x2b\xc5\xc9\xbd\x3b\x40\xfd\x3e\xcf\x10\xb9\x21\x18\x71\xca\xef\xef\x56\x7f\x8e\xa7\x3f\x8a\x84\x81\xa3\x5e\x57\xfd\xbc\x9e\x99\xb5\x18\x31\x20\xb8\xc9\xae\xce\x4f\xe5\x47\x5e\x8f\x32\x87\xfd\x33\x18\x0e\xd4\x89\x89\x1f\x58\xb6\x4f\x79\xfd\xef\xe9\xe7\xf7\x8f\x60\x44\xe2\x74\xb4\x7d\x59\xe5\x6a\xb7\xf6\x77\x63\x20\x88\x8c\xc3\xb4\xe6\x35\x6a\x4b\x92\xbf\xab\xae\x90\xd4\xe2\x1c\x08\xce\x0f\x96\x31\xa1\xd3\x7f\xc2\xf9\x3d\x1f\x3f\x93\xd1\x00\x56\x81\xa9\xa8\x40\xef\x5f\xeb\xea\x74\xdc\xbf\x0f\x81\xa8\xa7\x50\x14\x44\x6c\xe3\x31\xac\x6f\x79\xf9\x4a\x9a\x1b\x63\xf4\x41\xbf\xfa\x78\x00\xc8\x64\xef\x0f\xec\xaa\xe3\xa4\x02\x3d\x79\x5d\x3c\x30\x01\xf4\x34\x5e\x39\xd6\x0e\xc8\x2e\x38\xe3\x56\xb1\x90\x24\xe1\x5d\x36\xe7\xf9\x54\x8e\xc1\x76\xa3\x9f\x64\x60\x89\xef\x4e\x25\xb5\x12\x7a\x49\x2f\x32\x7f\x76\x0e\x4f\x8d\x29\x8f\x42\x4d\x1c\x07\x45\xf5\xd9\x2d\x3f\x0a\xe2\xc6\x09\x08\x1e\x81\xf0\x8d\xa7\xbe\xad\xd3\xd3\x52\x8d\xe7\x3c\x8f\x43\xdb\xa6\x43\xd9\x3a\x4b\x1e\x3c\x4b\x15\xf3\xd8\x01\x62\x0e\x95\x3e\x15\xd8\x07\x4a\xfe\x68\x12\x18\xdf\xea\x3c\x3f\x51\x59\x3a\xe0\x06\x5b\x05\xc7\xce\xbf\xbe\x6c\x40\x9e\x2e\x1f\xce\x45\x4c\xa6\xb4\xc8\x4b\x7c\x34\x8e\x4e\xec\x8f\xf9\x18\x2b\xcc\x44\x39\x1f\xcb\x87\xe9\x6f\x86\x4b\xc1\xdd\x53\xff\x99\x97\xfa\xd1\x3c\x81\x7a\x87\xd7\xf9\x13\x71\x4c\x08\xd2\x42\xa2\xed\x04\x79\x98\xfe\x42\x02\x19\x21\xfd\x11\x9a\xf3\x7d\x5e\x8e\xe5\x50\x04\x4f\x03\x45\x29\xac\x51\x97\x3b\x55\x42\x16\x31\xaa\x7e\x51\xf2\x14\x50\x26\x03\x57\x2e\x25\x9d\xe7\x18\x27\xc1\x53\x99\x51\x44\xd4\xb4\xa0\xde\x1f\x8d\x69\xe6\x66\x8f\x67\x2c\xa4\x30\x6e\x7b\xf3\xcf\xc9\x5d\x65\x99\x20\x56\xc9\x7f\xee\x7e\xac\xf2\xfa\xba\xae\x8e\xc7\x3e\x10\xe3\x59\x06\x5a\x8d\x4a\xda\x7d\x15\x78\x8c\xe1\x10\x3c\x03\xee\xbb\x77\x9e\xde\xaa\x12\xaf\xce\x8b\x09\x79\x9e\x81\xd4\x2e\x22\x5a\x4d\x52\x03\xbc\x0b\x09\x9d\xb3\xf6\xed\x7e\x76\x96\x10\x96\xac\xcf\x60\xab\xde\x5e\xca\xa1\xb8\xe9\xc4\x18\xfc\xcd\x42\x2c\xa9\x15\x5c\xc3\xb9\xd9\xe6\xa5\xc2\x3b\x38\x95\x7d\x75\x87\x43\x66\xc9\xa2\x0f\x84\x44\xf9\x56\xc3\xd1\x43\x28\x04\x07\x93\x11\x3d\xa1\xab\x43\xf8\xfa\xef\xae\xba\x5d\xaf\x9e\x5c\xe6\x67\x9e\x55\xbf\xdc\x7e\xb9\x94\x36\x3d\x71\x9c\x73\xf5\x0a\xae\x58\x4a\x84\x40\xf2\x74\xfe\xe3\xb2\xc3\x50\x70\x25\x91\xb6\x10\x97\xc0\xd8\xfc\x3a\xe6\xf5\x79\xaa\x26\x28\xb8\x66\xc0\xad\x2a\x38\xea\x97\x3a\x9f\x7d\x61\xc3\x24\x15\x53\xf6\x2e\x47\xfa\xa3\x3a\xa9\xb7\x11\x9b\xee\x74\xc5\x24\x01\xc4\xa4\x10\x79\x2a\x49\x7a\x78\x57\x9f\xb0\x67\xf8\xec\x8e\x26\xba\x5b\xbb\xb7\xbb\x5d\xaf\xba\xe0\x0e\x85\x71\x6c\x06\x02\xb2\x6e\x52\x96\x43\x26\x26\x09\x79\x96\xba\x24\xcf\x77\x04\x3d\x6b\x86\x11\x49\x98\x86\x49\x8f\xba\x6e\xf3\x0f\xb2\x7e\xfd\xc9\x32\xa4\x5e\x93\x16\xe1\xf0\x00\x87\xbc\x7c\x75\x0a\x48\xee\x38\x13\x29\xe1\xcb\xdf\xf3\xa2\x38\x43\xff\x57\x8d\x94\x33\x7a\xaa\xab\xa6\x73\x58\xfe\x9e\x0c\x90\x48\x22\x66\x49\x29\xcb\xd3\xc1\xf6\xc6\xfa\xf9\x90\x44\xdc\x5a\x8a\x7f\xac\xfe\x31\x5e\x2c\x49\x84\xa1\x76\x9e\xe0\xd3\xa9\x3e\x56\x43\xd8\x9a\xc4\x49\xe0\xab\x6a\xfb\x9a\x7c\xe9\xbd\x3c\xef\x0b\xfc\xc0\x29\x17\x89\x48\x62\x81\xdc\x13\xb0\x91\x9d\x7a\xaa\x7c\x20\xfb\x7b\x23\x97\x70\x66\xcb\x1c\xc7\x93\x9c\x60\xed\x44\xc2\xa3\x88\x1a\x62\x4c\x5e\x37\x8e\x01\x6b\x63\xa9\xd4\xfa\x11\x99\xa5\x02\x7e\xb9\xda\x8e\x36\xc2\x84\x0b\xdb\x22\xd2\xe4\x56\x62\xc4\xfd\x39\xc9\x50\xb2\xbe\x74\xf6\xe2\x77\x97\x27\xa7\x32\x6a\xfb\x03\x97\xfb\x12\x45\x92\x98\x88\xf7\x41\xc3\xbd\x15\x84\xd9\x50\x77\xb5\x37\x2c\x49\x1a\x31\x2a\x11\x0e\x2b\x6d\xbb\xda\x55\x9b\xd9\x9b\x4a\x13\x24\x6a\xea\xed\xd3\x6e\xf2\x19\x52\xe0\x0c\x87\xcc\x0a\x28\x0a\x3e\xeb\x83\x45\x7f\x4e\xbe\x71\x16\xc7\x14\x8e\xdd\x38\xa1\x95\x65\x2d\xb1\x6e\x5c\x96\x60\xdf\x37\x5f\x51\x0e\x6b\xb8\xdd\x4c\xd8\xf6\x76\xb0\xcc\x39\xed\xf8\x66\x32\x61\x81\xcc\x43\xc0\x87\x23\xe1\xf1\xee\xb8\xa2\x1d\xb7\x17\x91\x70\xf4\x3b\xb3\x2f\x98\x01\x8f\x9c\xa9\xbd\x3a\xd5\xe5\x50\x62\x70\xc7\x85\x8e\x84\xf0\x9a\x6c\x54\xcf\xac\xaa\x42\x57\x9f\xd3\x52\x57\x02\x91\x90\xa3\x8a\x8b\xed\x16\x9a\x25\x1b\xa7\x4f\x2e\x33\xd4\x03\x4e\xcf\xdd\xdc\x7f\xb6\xb3\xf4\x40\x22\x0d\xa3\xa5\x87\xbf\x8e\xdd\x8d\x3d\x63\xe7\x38\x3d\x9c\x0e\x5b\x54\x5f\xcd\xda\xcb\x52\x55\xa2\x82\x8c\x2a\x65\xca\xf5\x00\x5a\xc6\xd9\xc9\x17\x53\x61\x40\xa0\x98\xbd\xd5\x52\xfa\xaa\xd2\xe4\x46\xeb\x24\x36\x03\x99\xe3\xff\x9d\xf2\x7f\xef\x5f\x87\xc4\xf3\x74\xbd\x6b\xc5\x98\x25\x19\xec\xe6\xe2\x1d\x1c\x64\x35\x7b\x48\xad\x44\xe2\xea\x88\x83\x82\xdb\x34\x8b\x9d\xa0\xc8\x32\x39\x20\xcc\xae\xf2\x42\x56\x75\x75\x7a\xf5\x1b\x4d\x62\x78\x4c\xd8\x7b\x93\xff\x42\xfd\x8c\x1f\x58\x0f\xba\x9b\xff\x1d\x06\xfe\x55\x98\x0c\x28\xff\xf0\xa3\x6a\x87\x85\x97\x06\x18\x91\x85\xf9\xc7\x6a\xd7\x33\x08\x89\x34\x4c\x92\x54\x8d\xe1\x5b\x1b\xd7\x16\x37\xed\xb5\xfb\x7d\x81\x31\x0d\x53\xc9\x1c\x79\xe9\xa3\xfe\x92\x5b\xd4\x0f\x86\x90\xf6\xb2\x1f\xf9\x07\xbe\xef\x3c\x7b\x75\x7f\x43\xd2\xba\x5b\x0d\xb6\x0f\x55\x4f\x5d\x4b\x7e\xee\x58\xda\x50\xa4\x2c\xd5\x33\xb6\xc9\x75\x91\xcf\x19\x0e\xba\x61\x86\x4c\x46\x03\x1f\xd8\xbd\xb2\xf2\x64\x75\x3f\xc6\x04\x47\xcb\xfb\x58\x1a\x65\xb6\xd5\xa1\xee\xb5\x7a\x9f\xea\x4a\x16\x78\x68\x96\xc3\x9c\x34\x92\xcc\x66\x8f\x0f\x2d\xc2\xbf\xfd\x13\x51\xb4\xe6\x5a\xc3\x7a\xde\x2c\x91\xc6\x5a\x2b\xbf\x5d\x95\xf9\x01\x8a\x0b\xc1\x67\x91\xf2\x00\x94\x19\xcb\x0c\x56\xde\xc9\x4d\x79\xc6\xb5\x53\xe1\x78\x2c\xf4\x43\xae\xde\xcb\xaf\x72\xce\x29\x57\xc8\xbc\xa1\x28\x07\x39\x47\x91\x72\x2d\x94\xe7\xfe\x5a\x7f\xb7\x25\x91\x88\x4d\x66\x65\x9a\xc8\x88\xdb\x80\xa6\x2a\xff\x56\x8b\x9f\x48\x13\x13\x5b\x96\xa0\x53\xfb\x56\xd5\x79\x83\x1e\xf6\x3f\x59\x61\x69\x1a\x1b\xcb\xad\x6d\x9b\x78\x9c\x5a\xdb\xf4\x52\x69\x12\x59\xd7\xb6\x9b\x27\x96\xe2\x78\x42\x0b\xe8\x86\x65\xc2\x56\xd1\x2d\x76\xe3\x1a\x81\x78\xe7\x2e\x26\xe2\xe4\xc1\x20\xb1\x8d\xa3\xb6\xae\x75\x53\xd5\x4b\xdc\xc9\xfe\x07\x20\xd5\xcc\x75\xbf\x0e\xdd\x82\x22\x05\xc3\x54\x36\xea\x43\xbc\x46\xd5\x7d\xca\xf9\x53\xc8\xd8\x2a\xeb\xf8\xd2\xe8\x85\xa0\x0c\x91\x68\xfd\xed\xfe\xbf\xd3\x4c\x5d\x46\xa4\x52\x68\x5a\x53\xab\x97\xd5\x68\x0f\x4e\x15\x48\x4b\x9f\x50\x95\x1f\x58\xb7\xec\x09\xab\x72\x66\x7e\x53\x85\x56\x89\x5e\x8f\x16\x44\xe7\x25\xcd\xe0\x31\xa9\x8e\xac\x5a\xee\xae\x6a\x26\x0b\x56\x9b\x34\x18\xb7\x62\x4e\xa9\xc4\xa7\x46\x35\xc5\x48\x7a\x96\xe3\x6e\xfb\x26\xa6\x98\x4b\xdc\x67\xef\xf7\xa6\x46\xdb\xee\x7d\xe7\x78\x2e\x01\x41\xb2\x90\x69\x5f\xd8\x7b\xc0\x5f\x83\x40\xa2\x2d\xd8\xff\xe1\x47\x25\x9c\x9c\xd2\x6b\x94\xbe\xda\xd4\x1f\xca\x24\xfd\x88\x41\x1c\x67\xff\x32\x86\x5c\xf9\xb9\xb7\xd2\xda\x75\xca\xfb\xa3\x71\xa4\x52\xd7\x05\xf3\x52\x82\x15\x4d\xe8\xf3\x5d\x59\x1c\xeb\x64\xa0\xce\xdf\x76\xeb\xb7\xae\x8e\x1e\xbd\xfb\x35\x23\xf2\xef\x0d\x6d\xc6\xb9\xa2\x7e\xb9\x1a\x69\x5b\x1a\x33\x92\x8a\x8c\x67\xc0\x32\x2f\xcc\xf3\x9b\x5e\x20\x91\x25\x32\x09\xc7\x3d\x04\xce\x27\x70\xc5\x8b\xf9\x58\x49\xfd\x46\xdb\xdd\x6a\xf7\xb2\xdd\x5f\x6f\xb6\xbb\xe7\xc7\x7f\x6d\xbc\x3f\x9f\xa5\x21\x8f\xdd\x12\xd8\x93\xfb\xd2\xd3\xef\x2c\xd9\xa2\x2c\x15\x31\xd9\xe3\xf5\xf3\x66\xb5\x7b\x7c\xde\x8f\x14\x0f\x44\x96\x02\x52\x66\xdd\x9c\x4a\x3d\x10\xf4\x4d\x27\x6c\x96\x4a\x4d\x79\x04\x8a\x61\x2c\x8f\x56\x7f\xbe\xb1\x1a\x2b\xaf\xd8\x52\xea\x79\x4d\xea\x84\xee\x60\x16\xc9\xc8\x38\xe6\xf0\x71\x27\x7c\x36\x49\xb3\x67\x59\x26\x84\xf1\xda\x5b\x65\x4e\x38\xc0\x79\x11\x36\xcb\x14\x27\x38\x40\x89\x9f\xbd\x8c\xe6\x7c\xd5\x8e\x2b\xaf\xff\x31\x76\xa5\x3a\x9f\x2f\x8d\x5d\xb2\x98\xf2\x24\xd8\x4c\x6c\x6e\x26\x44\xc8\xbd\x38\xde\x4b\xd3\x39\xc7\x9b\xf6\xcd\xd9\xb6\xc1\xf3\xce\x84\x4a\x5d\x77\x7c\x17\x15\xdc\x96\x6d\xc4\xfe\x18\x65\xf0\x33\x61\x0c\x78\x4e\xa6\xba\xcd\x67\xdd\x97\x22\x03\x1e\x13\xf9\xa9\xf5\x87\xd0\xd5\xa2\x76\xd5\xaa\x7c\xc5\xe2\x02\x7a\x9c\x01\x28\xea\xe6\xaa\xb1\xad\x31\xff\xc0\xef\x75\x3b\xbd\x6d\xc9\x0d\xa5\xd7\x8a\xbc\x69\x9f\xea\xb3\x6a\x2b\x5f\x5f\xcf\x24\x58\x5e\xd7\x67\x32\xb6\xce\x59\x9e\xf5\x39\x88\x4c\x2a\x13\x26\x3e\x0a\x92\x7f\xe2\xf9\xea\x4c\x04\x67\x76\xe7\x77\x49\x81\x4c\x89\x80\x76\xfe\xcd\xfa\x71\x3b\xfb\x2e\x4a\x72\xca\x62\xd7\x79\xf9\x8e\xd2\x6f\x96\x99\x8e\x05\x78\x01\xce\x63\x55\x36\x15\x89\x9d\xac\x2f\xf7\xa4\x4c\x4b\xc9\x87\x96\x80\xa3\x75\x2c\xfa\xf6\xaf\xc5\xed\x2e\xd3\x98\xfa\x5d\x74\x68\xcf\x10\x19\xb2\x94\x8a\x0f\xcd\x3b\xb6\xea\xed\xa1\xba\xab\xca\x57\xaa\x1f\x8c\x89\x5d\xfc\x58\x13\x50\xfa\x47\xe7\x8d\x2a\xaa\xe6\x54\xe3\x85\x26\xae\xc8\x4c\x20\x28\x95\x61\xcd\xec\x9f\x3c\xf8\x2f\xff\x53\xc6\x51\x56\xba\x54\xce\xe6\xd7\x71\xf6\x58\x06\x38\xd5\x0f\x56\x5a\xef\xaa\x4f\x57\x33\x75\xa9\x86\x70\xa2\xa3\x76\x01\x08\xf1\xff\xf8\x2b\x49\x0b\xe0\x7f\xc5\x16\xdb\xb7\x53\x33\x87\x33\x64\x46\x2b\xea\x1d\xba\x55\x55\x59\x1d\xf2\xbf\x0c\x99\xa7\x2f\x53\x04\x41\x14\xb9\x08\xec\x01\x3f\x9f\xbd\x44\xeb\xb2\x32\x99\x3f\x87\x21\x21\x7f\x9e\xa1\xc5\xec\x0f\xff\x47\xc7\x8d\x49\x48\x7a\x28\x6e\x4b\x9d\x7f\xe4\xfa\x44\xea\x10\x83\xe7\xe7\x06\x87\x81\xa2\xdd\xe1\x1f\xf9\xaf\xea\xaf\x8a\x01\x22\x8c\xb8\xc3\x74\xac\xac\xc4\x9c\xdd\x10\x1b\x2b\x9a\xe0\xc4\xe4\xfb\x2b\x73\xa6\x83\xb1\xfa\xe1\xa5\x5c\x8c\x10\xa1\x54\x24\xe4\xa8\xf3\x1a\x55\x17\xe5\x1b\x42\xd7\x5f\x34\x09\xf8\x68\x47\x84\x26\x21\x1d\xdf\x2b\x28\xdf\x97\xe3\x4e\xc1\x12\x4d\xf4\x21\x45\x7e\xc8\xdb\x11\x21\xa9\x3f\x9c\x85\x14\xe9\xbe\x41\x73\xdb\x34\xa7\xf9\x67\x14\x51\xa8\xa3\x60\x9c\x4b\x18\x3e\xa4\xb7\x1f\x22\x8a\x25\x61\x1e\xa8\x70\xf1\x8c\xcd\xe9\x80\xb3\xba\x90\x88\x52\xcb\xed\xf5\xcd\x76\xf2\xb4\xf9\x2b\x52\x39\x77\x7a\x33\x11\xf0\xc8\x96\x20\xa8\xd1\xcc\x77\xe2\xcc\x38\x61\xba\x71\x82\x20\x83\x87\xfc\xd5\xae\x48\xe7\x58\xd2\x4a\xee\x37\x6e\x11\xa9\x8c\x3a\x48\x1f\xbe\x8d\x3d\x15\xc1\x65\x40\x6f\x79\x8f\xbf\x8e\x45\x55\xe3\x4b\x93\x97\xaf\x9b\x43\x75\x49\xa6\xb7\xbc\xfb\x0a\xde\xf9\x4a\xbd\xbd\xb5\x2d\xfd\x4b\x95\x58\x91\x84\x91\xf7\xed\xbb\x97\x67\x9b\xb2\x1e\xaa\xdd\xa9\x2e\x27\xb2\x9e\xd3\xa7\x4b\x85\xed\x4d\x06\xa5\x6e\x2a\x4a\x1b\xf9\x3b\xcf\x82\x88\x60\x5c\x2e\x8b\xb8\x7a\xfe\x78\xc6\x8f\x9b\xaa\x46\x05\x7d\x65\x5b\x64\x21\xd0\x46\x4d\x99\x9a\x65\x56\x1d\x21\x44\x9a\x51\xbb\x8e\x97\xef\x9a\x4a\xa7\xfa\x55\x2e\x04\x48\x82\x70\x6c\x8f\x55\xef\xd3\x08\xc8\x80\x3a\x48\x3c\x85\xd1\x5e\x55\x48\x38\xf9\x61\x8f\x10\xa0\x32\xa2\xeb\xa7\x3c\x76\x3e\x9f\xe7\x92\x59\x79\x88\xc3\xd9\x16\x6e\x3b\x4f\xd9\x1f\x12\x3c\xd4\x3d\x27\x23\xad\xa7\xcd\x38\x15\x2c\x14\x93\x54\x7e\xda\xbf\x12\x3a\x63\x84\x9b\xb8\xac\x69\xb3\x2f\x75\x65\xbe\xf8\xb2\x1a\xc3\xd0\x29\x20\xd1\x2a\xfe\x89\xe8\x21\x6a\x42\x1b\x0c\x33\xdf\xae\x6e\x73\xf7\xd3\x93\x51\x09\x72\x40\x57\x27\x9d\x53\x5b\xb5\x2d\x47\x3c\x5b\x3c\xd7\x17\xae\xb0\x40\xa5\xc8\xbb\xdc\x1e\x8b\xbc\xfd\x89\xf9\xeb\xdb\x9c\x19\x4f\x08\x13\x6a\xf2\x87\xe8\xa5\xac\x8b\x2e\xfc\xe9\x53\x89\xc2\xb0\x98\x62\x9e\xcd\xf3\xb7\x81\x51\x51\x08\x13\x67\xda\x49\x03\x1c\xf2\x06\xf5\x53\x75\xec\x0f\x25\x01\x55\xf4\xc9\x4d\x7b\xea\xf1\x80\xf6\x28\x04\xa1\xdd\x3b\x1b\x47\x93\x44\x65\xee\x49\x33\xd0\x72\x21\x01\x02\x48\x09\x06\xd2\xf9\xc9\x16\xf0\xeb\xc8\x1f\xbd\xc8\x51\xff\x0b\xca\x41\x73\xc0\x1e\x78\xae\x64\xd5\x2e\x23\x34\x21\x94\x3a\x4b\x46\x22\xdd\xae\x0f\x75\x62\xbc\x17\xb7\x63\x60\x61\x14\x8e\xa9\xc1\x76\x5b\xdf\x03\x05\x4c\x58\xf0\xc7\x2b\xb6\x7f\xe2\x47\x1f\x27\x01\xd3\x18\x39\x91\x88\x19\x3f\x9d\x1b\x10\x05\x40\xc9\xa0\xef\x58\x14\xd5\xb7\xaa\xd0\x8b\xe8\x98\xc5\x0f\x0d\x71\x18\x07\x94\x5f\x53\xc7\x59\x55\x07\x62\x6e\xb9\x58\x3f\x47\x62\x43\xf5\x72\x47\x03\xc4\x60\xa9\xd7\xc1\xb4\x58\xbb\x37\xbb\x5a\xba\xd7\x58\x23\xd5\x73\x5d\xb1\x90\x50\xa1\x8b\x55\x13\xe0\xcc\x11\xa6\xc2\x07\x3e\x3f\xcc\x2e\xc3\x59\x2a\x2d\x08\xad\xfa\xcb\xc8\xd4\x9f\x12\x07\x09\xf3\x9a\x5a\xd4\xbf\xf6\xb3\xce\x5b\x6c\x9e\xb0\xde\xb6\xe8\xa7\x21\x70\x21\x33\x8b\x44\xde\x94\xaf\x79\x89\x58\xcf\x76\x0d\xe0\x60\x93\xb8\x9e\xb2\xc3\x4f\xa4\x6d\x8b\xf0\xde\xf4\xa3\xd0\x4e\x67\xdf\xc1\x84\x93\xf4\x28\x24\x41\x30\xc8\xa1\x8c\xba\x30\xfb\xf3\x93\x2c\x22\x7b\x66\x61\x76\x8f\x65\x91\x97\x38\x81\xcf\x42\x82\x96\x25\x88\xc8\x10\x0a\xfc\xa3\x57\xda\xec\xe7\x7e\x62\x52\xc2\x36\x5d\xed\xbe\x5f\xf9\xb3\xb2\xc0\x66\x0e\x57\x75\x5d\x7d\xee\xa6\xcd\x76\x90\x31\x93\xb9\x72\xcd\x13\x1e\x67\xa6\x04\x44\x10\x1b\xe1\x96\xd2\x4b\xe9\xf2\x27\xff\x46\xbd\x25\x14\x12\x78\xfb\xe3\x46\x43\xc6\xa2\xa4\x7f\xdf\xab\xd7\x6a\x68\x5c\x00\x00\xa4\xd8\xe0\x58\x1d\x29\xaf\xb7\xcb\xdd\x16\xde\x3f\xbe\x0a\x38\xa5\x34\x72\x65\x5b\x59\x9f\x2d\x7d\xe5\x98\x80\x4b\x80\x72\xda\xbd\xdd\x0d\xed\x47\xd1\xce\x8a\xf0\xdb\x43\x38\x0c\x0a\x25\x61\x97\xae\x3c\x6f\xc4\x4b\x83\x13\xa5\x9d\xd9\x5c\xd1\x91\xed\x95\x3a\xd6\xd5\xf1\x0d\x55\xde\xcc\x5a\x0e\x41\xa7\x69\xa8\x46\x06\xe0\xfb\xcf\xf5\xcf\x7c\x1a\x70\x00\xc6\x52\x3b\xea\x23\xd7\x78\xfc\x74\x92\xef\x78\x9e\xed\xc7\x80\x69\x44\x09\x29\xaa\x47\xf9\x15\xee\x8e\x99\x2c\x10\xd8\x93\x8d\x58\x5e\xa4\x8b\xd8\x07\x8c\x4e\x5c\x22\xa2\xdb\xfa\xd7\x6f\x79\x31\xea\x71\x76\x9c\x80\x93\xc5\x25\xc3\x84\xa9\x68\x9c\x59\xdd\x55\x47\xfe\x1d\xeb\x0a\x1b\x82\xb9\xfe\x3e\x87\x26\xc3\x2e\xca\xa1\x12\xf7\x07\xee\xaa\x2d\x18\x6c\xcf\x93\xc9\x29\x59\x64\xe5\x76\xac\x6a\x52\xe7\x2f\xe8\xfe\x50\x62\xb5\x6d\xfd\xbb\xbb\xaa\xab\xf7\xde\x9b\x90\x0c\xa2\xc8\x01\x42\x56\x4a\x0d\xf2\x9f\xc3\x8f\x33\xc8\x44\xd0\xeb\x6f\x5e\x43\x5e\x9c\xc7\x11\x83\xff\x46\x92\x49\xae\xb4\x5f\x62\x37\x88\xbd\x42\x9b\xff\xa9\x48\x23\xdd\x88\x2d\x1a\x78\xbc\xdd\xb2\xc7\x2a\x63\x96\xd0\x6e\x87\xed\xdb\xf3\xd4\x03\xf6\x03\x22\x03\x83\x6a\xf1\x2d\x9d\xdb\x8c\x10\x13\x53\x27\x59\xc6\x89\x85\x73\x1e\xce\x77\xd5\x07\x12\xec\x7c\x0c\x34\x90\x89\x10\x1e\xe2\xd7\x45\x4d\x57\xd8\x36\xb7\xe5\xea\x19\xfe\x7d\x5b\x36\x2d\xe1\x8d\x96\xef\x33\x51\x4c\xbb\x5c\xa0\xdd\xe7\xa8\x09\x7c\xa9\x73\x5f\xc8\x94\x45\x3e\xa7\xef\x71\x13\x14\xf1\xdf\xfa\x46\xd8\x25\x9c\x8a\x4c\x79\x22\xac\x98\xc1\x37\x38\xe0\x5d\xf5\x9a\xab\x99\x89\x94\xa9\x4c\x32\xe5\xdd\x7b\x59\x23\xbc\x5b\xfe\xe3\x5c\xfa\x11\x59\xcc\x7c\x26\x9d\x90\x8d\x77\x50\xce\x9c\x7c\x99\x81\xa1\x37\xf0\x06\xc5\xe8\xa3\x65\xca\x6a\x31\x4f\xb5\x7c\x66\x2f\x21\x43\xc6\xf5\x8c\xe7\xd3\x85\x41\xd5\x40\x86\x22\x08\xc3\x94\x3a\x40\x76\xd3\x60\xd3\x5c\x55\xd5\xfb\x02\xfd\xbe\x1b\x0e\x4c\xb0\x64\xe0\xd2\xd5\xdd\x8c\x82\x16\xeb\xde\x22\x49\x50\x9c\x52\x9d\x56\xdf\x84\x48\x45\x47\x3d\x3b\x52\x99\xcc\xf3\x8f\xee\x0a\x22\x5f\xe8\xc1\xf8\x52\xc7\x86\xb2\x67\x25\x7e\x7e\x49\xae\x3a\x6b\x63\x90\x1a\x18\x35\xc1\x35\xa7\xc3\x50\x36\x91\x5a\x4a\xf2\x64\x6e\x6e\xef\xee\xff\x66\x51\x58\x22\x68\x62\xb4\x27\x37\x09\xca\xd6\x6b\xc2\x37\xb7\x25\x91\x8f\x8f\x40\x90\x12\x51\x52\xcd\xf7\x1a\xda\xdc\x6a\x95\x8c\x23\x19\x69\x82\x24\x73\x36\xeb\xa5\x54\xd5\xe1\x88\x65\xd3\x59\xbf\x11\x2d\xd8\x32\xaf\xbe\x50\x41\x20\x28\x89\x63\x41\xcb\xc3\xf8\x25\xf6\x66\xa1\x02\xcd\x28\xe9\xab\xd1\x74\xb6\x7c\x37\xea\xd2\x70\xf7\xa2\xc2\x80\x2b\xff\xc2\xa1\x79\x77\xa8\xe6\x52\x3b\x46\x8e\x89\x51\x57\x21\x24\x94\x2c\x46\x55\x95\xcf\xd8\x60\xfd\x81\x2b\x0b\xfe\x1a\x2c\xb2\x62\x2a\x71\x2a\x21\xa4\xec\x6b\x71\x57\xd3\xeb\x30\x44\xaa\x4a\x7b\x34\x7b\xf7\x1c\xd5\xb8\xab\xd6\x8d\x8b\x22\xc1\xfd\xcd\x0d\x0c\x6c\x97\x1a\xe2\x42\x45\xdc\xa6\xdc\x3e\x68\x57\xb3\x00\x82\xd9\x8f\x46\x22\x20\xf3\xd3\x19\xe3\x7a\xa3\xba\xa8\xae\x97\xd4\x14\x2a\x82\x8c\xc2\x84\xdd\x66\x75\x3f\x61\xc8\x10\x2a\xd6\x01\xe5\xe1\x3a\x9b\x66\xeb\x92\xd3\xdf\xe6\x91\x45\x77\x6e\x37\xeb\x91\xab\xa0\xb8\x44\xc2\x0a\x78\x78\x9c\xf7\xd8\x7f\x8f\x6c\x54\x1c\xa5\x18\x52\x58\x0e\xab\x71\xdf\xbe\x5d\x88\x3c\x09\x95\x2a\x24\x72\x3b\x8b\xa6\x6e\x9a\x13\x4d\xb6\xd9\x8a\x53\x59\x68\x28\x34\xb3\x5f\xa2\x79\xcb\x8f\xfd\x91\x38\xa1\x80\xd8\xf5\x82\x93\x2e\xe7\xf4\x17\x32\xce\x49\xe5\xed\xb9\xa2\x36\x80\xaa\x2a\xdc\x67\xbf\x39\xcd\xad\x91\xca\x84\x31\xa9\x9f\x49\x35\x19\x96\xa3\x65\x77\x59\xc3\xb1\xdb\x3b\x9a\xbe\x27\x56\x89\x14\x68\x59\x5a\xbc\xe7\x62\x7d\x49\x09\x61\x75\xc8\x5d\xb7\xdc\x4b\x69\xea\xea\xdf\xf8\x45\xd8\xa0\x00\xa5\x89\x6d\x85\x76\x76\x1d\x19\x65\xdc\xb2\x9a\x7d\xe4\x2d\xea\xdb\x32\xff\x22\xaf\xae\x24\x97\x34\xdd\xbe\x43\xab\xde\x36\xaf\xaf\xde\xd7\x52\x52\xca\xc4\x33\x1d\xdd\x96\xf8\x7f\x27\xd2\x79\xee\x3c\x08\x3f\x42\x65\x92\xd2\xe8\x95\x6b\x65\x7f\xec\xa7\x81\x02\xbb\x87\x92\x0c\x65\x03\xfd\x35\x15\x5a\x9e\x6b\xd0\xda\x4a\x89\x54\x55\xd1\x83\xd0\x15\x86\x01\x85\x81\x37\xe7\x62\x56\xb3\x5e\x32\x73\x0a\x53\xbb\x50\xec\xd6\xfa\xa3\x6a\x67\xc5\x73\x85\x8e\xe7\xc3\x21\x90\xbb\xc5\xe4\xf8\x6b\x26\x7a\xfd\x13\x93\xa7\x4c\x10\x12\xba\x61\x0d\xb5\xce\xab\xa2\x7a\xf5\x19\x59\x65\x84\x55\xf8\x74\x45\x1b\xcb\x0e\xbf\xc0\x66\xf0\x1f\x8b\xd1\xa1\x0e\x20\x21\xdf\xfe\xaa\xf6\xb9\x7f\x1d\xea\x98\xf6\xcc\x83\xa5\xf5\x9b\x36\xc9\xe9\x10\x2d\x1a\x05\xdb\x37\x37\x1d\x66\xce\x85\x0e\x8d\x26\x25\x3e\x43\x89\x8b\xd7\x7b\x0f\x64\x9e\x0d\x63\x06\xa8\x01\x45\xe7\x0d\xc8\x82\xa6\x71\x5e\xbe\x5a\xcf\x6c\x7e\xc9\x88\x87\x9e\x59\x6a\xf3\x81\x65\xbb\xab\xc6\x8f\xe8\x07\x25\x29\x95\xc4\x08\xda\x45\xac\x84\xb3\xbc\xaf\x8e\xc3\x58\x3a\xce\xa6\x2d\xaa\x53\x9d\xfb\x9e\xa0\xa5\x72\x98\x8e\x53\x43\x7d\xd1\x87\xf3\xf6\x24\xb5\x97\x7d\xf6\xef\x81\xb3\x80\xcc\xdc\x76\xb5\xfd\xde\xff\x2d\x36\x89\xe9\x8b\x72\xde\xca\x5c\x2a\xba\x0b\xcd\xb5\x85\x0a\x13\x34\xb3\x7b\x96\xa7\x5c\xb5\xa7\x7a\x8a\x63\xd0\x09\xe3\x94\x98\xb8\x26\x79\xbd\xa7\x41\x57\xc0\x1f\x4f\x53\x0a\x72\xf6\x5d\x0c\x54\x57\xc7\xdf\xe3\x05\x74\xd2\x85\xdf\xbd\x72\xd5\x97\x13\x64\x54\x0e\xd5\x29\x8b\xb0\xc7\x6e\x3c\xe0\xe7\xa4\x4e\xa6\x53\xa3\x4d\xec\x59\x61\xbb\xb8\x68\x14\x35\xea\x2c\xb2\x4d\xfb\xaf\xd8\xfe\xc4\xfc\xa6\xae\x0e\x2f\x8d\x5e\xe3\x5c\xf0\x47\x68\xc1\x34\x65\xeb\x7a\xff\x7e\x76\x1c\xe2\x80\xfa\x6d\x89\x6d\xfe\xea\xbc\xc5\x79\x76\x47\x43\x1a\x10\x32\xa8\x73\xcc\xb6\xbf\xd3\x62\x9b\x9d\x96\x45\x89\x6f\xa7\xf1\x80\x9d\xdf\x55\xfb\xb4\x0c\xb9\x8c\x7b\xa4\x04\x35\x59\x4f\xaf\xd8\xc5\xb1\xda\x7f\xd6\x55\x51\xf8\xf2\xb4\x7f\x27\x8a\x71\xea\x37\x73\x69\x1b\x4d\xb3\xd8\x1d\xd3\x90\x52\x33\xc6\x9e\x78\x32\x67\x5e\xaa\xc6\x50\x11\x05\xa2\x3c\x9d\xbf\xa6\x3f\xd0\x28\x53\x66\xdb\x34\x7c\x6d\xdf\x82\xba\xfa\xab\x68\x65\x91\xd2\x6f\x50\x5f\xca\x2b\x2c\x9a\x73\x6d\x98\x66\xac\x77\xa1\x9f\x4f\xe5\xa8\x1d\x43\x9b\x2c\x14\x66\xf0\x32\x6f\xc6\xb1\xc6\x57\xd7\x03\x8b\x15\x6d\x5c\x33\xdb\xfa\x0d\xca\x12\x8b\x7b\xf8\x75\xc1\x9f\x26\x30\x08\x81\xe6\x9f\x3c\x9d\xb7\x47\x50\xd8\xed\x99\x2f\xd6\x55\xf9\x63\xa1\xb8\x92\xf9\xd3\x62\x24\xd2\x14\x5f\x96\xdd\xb6\x27\xf5\x6e\x69\xa6\xcc\xd4\x18\x4d\x6f\x0e\x43\x6e\x53\xbf\xaa\xca\xcb\xd5\x2b\x7e\xcd\x06\xe7\xc7\x27\xd2\xf1\x89\x35\x27\xbc\xc6\x9e\x26\xf3\x0f\x7f\x1c\x20\x88\x06\x4e\xed\x65\xb8\x0b\xb2\x80\xc3\xd0\xf2\xf8\xa5\x90\xb2\x40\x26\x02\xe3\x68\x3b\xa6\xf9\xc4\xe9\x5d\x45\x2c\xa3\x1a\xe1\xb7\xdb\xeb\xdb\xeb\xd5\x3f\xfd\xcd\x44\x60\x75\x13\xf2\x66\x5d\x1d\x8e\x8e\xd1\xf6\xb1\x2c\x88\x23\xef\xaa\xb3\x54\x16\x92\xed\x87\x23\xd3\x72\x80\x0c\x8c\xea\xa5\x18\x21\x06\x4e\x7f\xea\xa1\xd2\xb8\xab\x2e\xe8\xa3\xdc\xc0\x38\xce\x08\xb9\xf6\x78\xb4\x91\xf5\x1f\x4b\x5c\x32\x18\xeb\x40\x64\x7d\xa9\xca\xa3\x22\xa7\x8f\xce\x33\x90\x3d\x93\x59\x75\xc4\xba\x3d\x13\xc6\xa0\x5b\xef\x34\x8f\x5c\x5e\xf3\xbe\xd2\x56\x10\xcc\x4d\x8b\x0b\xeb\xe6\x79\x2c\xfd\x5c\xe1\xc8\x54\xec\x60\xfe\xd6\x21\xbf\x2d\x9f\x88\xed\xdf\x3f\x6d\x12\x72\x6a\x1a\x70\x45\x83\xd9\x23\x26\xa0\xac\x88\x27\x48\xa2\x5b\x72\x45\xac\x2f\x26\x4c\x82\xda\x02\x91\x42\x3e\x69\xfa\xc7\xc4\x84\xda\xed\xe3\x7b\x18\x29\xfe\x08\x4c\x03\xec\x25\x95\x2b\x28\x49\x9c\x01\xdb\x31\x6a\xf8\x6f\xd2\x29\x2e\x9b\x41\x4c\x19\xa3\xdc\x83\x82\x09\xdc\x11\xd3\xd4\x4a\x5c\x3e\xfe\xb8\xdd\x5e\x3d\x3e\xfe\xb9\xb9\x76\xe2\x79\xfd\x00\x30\x04\xeb\xda\xef\xed\x86\x5a\x63\x0b\xf5\xf9\x1b\x96\xe4\xf3\x4e\x9f\x3b\x55\x41\x62\x21\x20\x87\xe3\x37\x6c\xaf\xa1\x85\x5d\x65\xc1\x3a\x5f\xdc\x15\x32\x9a\xea\x57\x88\xf5\x88\xab\x05\x33\x9e\xc6\xbd\x2c\x06\x39\xc0\xfa\x1a\x9b\x36\x2f\x29\xf2\xa1\x92\xd8\xf4\x97\x05\xb7\xb8\xdb\xa6\xad\x6a\x9c\x94\xdd\x50\x08\x46\xf9\x9b\xcd\xe6\xde\x5f\x5e\xe8\x90\x42\x13\x43\x42\x69\x63\x14\x0b\x76\xb3\x39\x1c\x55\x6d\xac\xeb\x30\x00\xe9\x67\x0e\xd6\xec\xc3\xcb\x20\x26\x8c\xe9\x1b\x34\x6f\x13\x36\x69\x9b\x07\x4d\x62\xcf\x32\xe3\xc7\x73\x1e\xba\xdc\x92\x57\x93\xe1\x93\xdd\x1f\x15\x04\x04\x99\x7a\xbd\xbd\xde\xfb\x7b\xd4\x89\x85\x2f\xf5\x9c\x96\x9d\xcd\xeb\xf6\xde\x9e\x9c\x6a\xfa\x96\xb5\x88\xd0\x19\x94\x9f\x90\x53\x4b\xb8\xd5\x18\x99\x8f\x33\x82\xee\xc6\x6d\x5c\x57\xa7\xe2\xfd\xeb\xa2\x2a\x9a\xd4\xf6\x16\xe7\xa5\x41\x35\xc3\x4a\x98\x30\x60\x84\x3e\xa7\x5b\x7b\xaa\x51\xe7\xaa\xf5\xa4\x48\x26\x8c\x39\x27\x3e\xfd\x52\xc2\xac\xe6\x65\x42\xe3\x5c\x7f\xb7\x6f\xb9\x05\xef\x67\xc1\xcb\xcd\x6e\xd9\xa8\x1b\x16\x64\x84\x67\xa7\x27\xfb\x09\xfe\x83\x1a\x16\x5b\x22\x3c\x53\x23\xfe\x1b\x89\xab\x60\x76\x22\x4f\x94\x9e\x82\x53\x6e\x6d\x62\xf3\xb7\x18\x15\x7f\x76\x16\x50\x92\xe4\xcd\x36\xd0\xde\xea\x5f\xb3\x07\x62\x9a\x13\x0c\xe1\x00\xbf\xa8\x33\x0f\xb5\x7d\x96\xbc\x7c\x1d\xd1\xfe\xb9\xc1\x51\x90\x19\x17\xbc\xd8\x8f\x5a\xd5\x0b\x2a\x0e\xc2\x44\xa9\xa2\x72\xcf\xb3\xa7\x2b\xf3\x17\x88\x13\xeb\x4c\xba\x4f\xb8\x6f\x7f\x2d\x75\x39\x98\x38\x53\x4e\xd9\xbc\x36\x55\x7d\x58\x4d\x64\x49\x96\xf8\x0d\x4d\x2c\xb9\x62\x3d\xdd\xd4\x48\x1e\x45\x98\x24\xe4\x9a\xf8\xea\xa0\x7c\x7f\xae\x8a\x62\x4c\x3f\x2d\x4c\x22\x12\x3d\x20\x54\xf1\xb7\x7c\x63\x26\x0d\x05\xe9\xe5\x1d\xeb\xea\x50\x51\xf5\xe1\xd1\xac\x0b\xc8\x0f\x30\x8f\x2c\x4c\xaa\x59\xcc\x1c\xb6\xab\xaa\x71\x55\x14\x24\x66\xdd\xb4\xd8\xcb\xbf\x4f\x9f\x20\x13\x29\x9f\xa0\xb8\x9a\xb5\xa5\x09\xf1\x77\x2a\x12\x46\x6d\xb8\x5b\x2c\x8a\xb9\x6a\xd2\xf4\xb7\x85\xb6\x00\x19\x4a\xf3\xe7\x65\x83\x75\xbb\x37\x79\xa9\x1f\xaa\xef\x79\xd9\xae\xda\x7e\xe9\xbb\xf1\xc0\x02\xcb\xbf\x0e\xc7\xa1\x2d\xd8\x80\xe2\x24\x4c\x76\x75\xfb\xe2\xff\x24\x03\xab\x15\xe3\xbd\xb6\x7d\x65\xf6\xae\xac\x31\xa7\xbc\x33\x32\x32\x64\x05\xae\x1e\x1f\xff\xb5\xfa\xbe\xdb\xf4\x75\x3b\x23\x53\x99\xa9\x21\x92\xdf\xd7\xae\x7a\xdc\x1f\x47\x9b\xd1\xb6\x1e\x3d\xc1\x63\xa0\xc5\x3b\xfc\xc0\xe2\xb1\xec\xe7\x22\x42\xe4\x25\x9a\x3a\xb7\xe1\xd2\xe8\x1a\x44\x49\xb0\xae\x6f\xc4\x2e\x80\xaf\x55\x7d\xb6\x19\xe3\xc9\x37\x35\xdc\xf8\x8c\x17\x49\x3d\x5d\x61\x7b\x8d\x2d\xe4\xc5\x85\x31\xf5\x27\x28\x9e\xda\xc9\xfd\x01\x45\x55\xb5\xdb\x4f\x4f\xb3\x0f\x41\x10\x6a\xb4\xa2\xbe\x1f\xd5\x3b\x5e\x8d\x18\x1f\x16\xcd\x02\x04\x41\x92\x10\x29\xd1\xf1\x24\x8b\x5c\x79\x94\x5c\x7f\x39\x90\x49\xd0\xb3\xef\xaf\x5c\x01\xc9\x41\x6b\x67\x26\xde\x19\x3e\x08\xc2\x54\xc8\x11\x9b\xfe\x1f\xd3\x1f\x64\x01\x0b\x75\x8f\x93\x9d\x3a\xf0\x93\x07\x85\x80\x09\x45\xc9\xde\x4f\xcc\xbd\x86\x18\x04\x4c\x59\x0e\x9b\xfb\xc7\xe7\xdd\x4b\xff\x47\x14\x64\x17\xd6\x55\x5e\xaa\xbc\xa6\x08\x2a\xaf\x4a\x52\xaf\xea\xc7\x98\x80\x50\x0f\x7b\x55\x95\x0a\xda\x85\x0c\x03\x04\x51\xa0\x68\x66\x60\xa9\x6d\xcd\x20\x2f\x5f\x27\xea\xb7\x10\x44\x91\x41\x17\x83\xac\x4a\xfd\x95\x26\xcd\x82\x3a\x1b\x04\x71\x18\x98\xa1\xef\x72\xf3\x6b\xea\xe0\x66\x7e\x54\x6c\x89\x93\x1a\x6c\xaf\xeb\xea\x68\xb1\xea\xbe\x70\x0b\x01\x4f\x33\x4a\x69\xdf\x5f\x8f\xfb\xe3\x20\x48\xb8\xe5\xbb\xb3\x22\xa1\x7a\xf6\xd6\x93\xd4\x70\xe1\x61\xb5\x5b\x2c\xf5\x40\x00\x02\x41\xca\x35\x58\x02\x52\x8d\xf5\x21\x2f\x91\x3c\xe3\xd2\xa3\xdf\x67\x12\x3f\x10\x64\xa1\x4d\x27\x3f\x7d\x7f\xdc\x3c\xdc\xfe\x73\xff\xf4\xe8\xe9\xef\x21\xc8\x12\xab\x80\x6e\x19\xce\xc6\x30\x10\x08\xb2\x54\x52\xf6\xae\x07\x2f\xad\xda\xdd\xf9\xf8\xfb\x04\x24\x04\x59\x16\xd0\x59\xcd\x9b\x6d\x05\x25\xa9\x9b\xe9\x44\xc9\x0c\xa3\x57\xa6\x3b\xf7\xeb\x40\x06\xce\x65\x20\xb1\x1e\xd5\x68\x20\x10\x5c\x84\xe8\x73\x1f\x45\x71\x53\x54\x33\xc5\x0b\x08\x80\xa5\xe4\xe7\xce\xeb\x98\x4f\x35\xde\xe4\x75\xd3\x0e\x79\x75\x08\x20\x56\xc4\x19\xb9\x6f\xc0\xe0\x37\x68\xb6\x2d\xb4\xb9\x9a\x34\x4b\x8e\xbf\x3f\x88\x08\xb2\x81\x85\xf1\xb1\xc4\xb1\x4a\x0e\x04\x52\xa4\x99\x87\x7f\xe7\xed\xa9\x80\xbc\xc6\x7d\xf7\x2d\x5a\xdc\xa7\xb3\xdb\x94\x60\x28\x0a\x77\x7d\x78\x63\x74\x32\x04\x52\x42\xec\xc2\x84\x53\x6f\x1a\xa4\x62\x26\x1e\x71\xa9\x41\x3d\x96\x9c\x83\x40\x9a\x80\x42\x80\x4f\xcc\x7b\x8d\x84\xa1\x66\xd9\x1d\xb7\xb4\x67\x87\x89\x10\xe4\xa4\x3b\x08\x02\x15\xa6\x24\x4c\x86\xaa\xea\xbe\x53\x18\xf5\x07\x84\x24\x65\xad\x83\x1a\xc6\x1a\x9e\xd9\xfe\x93\x52\x5f\xe7\xcd\xf1\x34\x03\x0b\x43\xa0\x99\xb0\xd8\x0b\x68\xde\xee\x7d\x9e\xd0\x9f\xae\xe3\x84\x7c\xc9\xab\x6a\xd6\x49\xe7\x8f\x8b\x98\xde\xf6\x95\xca\x5f\x61\xe4\x3d\x43\xa0\x4d\x6c\x35\xca\x4f\x87\x81\x22\xaf\x37\x5f\x18\x18\x3e\x12\x89\xb2\x5d\x02\x4b\x29\x61\x08\x30\x51\x4a\xf4\x43\xe7\x44\x68\x33\x6b\x86\x22\xa2\x62\x85\xf7\xdc\x3c\x6c\x7c\x3a\xca\x70\xe9\xd5\x38\xaf\xa1\x7e\x2f\x2b\x8d\x57\xd5\x2c\xb7\x0d\x81\x91\x86\x00\x9e\xfb\x06\x0a\x1c\xd7\xe1\xa1\x73\x2c\xa9\x72\x8e\xdd\xe4\xb5\x6b\xdd\xa7\xf9\x28\x77\xe6\x87\x25\x56\x91\xf7\x68\x61\xe8\x63\x79\x55\x08\x03\x2d\xe3\xb1\x8e\xca\xa6\x7d\xfb\x0e\xa5\x2e\x6c\x28\x40\x29\xfb\xa5\x98\x1b\xc2\x90\x69\xee\x26\x5e\x17\xdc\x6c\xfe\xef\x94\x4f\xb1\xa3\x10\x86\x09\xd3\x2e\x2d\x7f\x73\x18\xf3\x99\x43\x18\x0a\xe4\x54\x11\xd9\x5c\x8d\xa9\x9d\x20\x0c\x51\xe9\x11\xa0\xaf\x8b\xa3\xfd\x21\x16\xc7\x14\x84\xdf\x50\x32\xfe\xdb\xa9\x57\xb0\x82\x30\x02\x4e\x5d\x79\x85\xa3\x1a\x74\x7f\x8e\x75\x42\xfb\x40\xfb\x55\x35\x12\x42\x1e\x02\x85\xa1\x9e\xab\x64\x84\x2a\x87\x90\xa7\x3a\x76\x91\xe8\x4f\x94\xdf\x72\x63\x5d\xd1\x05\xe6\x1d\x08\x39\x72\xaf\x27\x41\xfe\xc1\xb8\xe7\x08\x42\x6e\x14\x85\x59\x3b\x32\x5a\xba\x3a\x35\xed\xf8\xa9\x13\x40\xe2\x4b\xff\x79\xb5\xd9\xf5\x7f\xd3\x09\x81\x4c\x0e\xf9\x44\xae\x0b\xc2\x04\x03\xcb\x0e\xea\xb4\xa9\x02\xee\x8f\xa4\x68\x1d\x6c\xe7\xcb\x12\x86\x26\xf4\x07\xb3\x20\x52\xa1\xd7\x89\x3d\x1f\xdb\xea\x1f\x79\xf9\x5a\x7c\xc1\x5a\x0e\x61\x16\x82\x4a\xe6\xbc\x75\x8b\xd3\x3d\x04\xc6\x7c\x6f\x86\x6f\xc5\xec\x6c\x86\xe5\x91\xe9\x6d\x5e\x08\x3a\xa6\xd4\x7b\x89\x9f\x73\x8d\x4b\x08\xc1\x64\xd6\x39\x79\x83\x06\xe3\xb1\xb5\x0a\x65\x1c\x6b\xd7\xa6\x41\x7c\x0a\xcf\x54\xda\xfc\xe2\x7b\xca\x84\xb1\xd0\x25\x57\x5f\xca\x7b\x68\xde\x51\x7f\x3b\x6d\xa0\x2e\xf3\xf2\x75\xb9\xb4\x09\xa1\x0a\x98\x95\x72\xfa\xb0\xae\xc0\xc5\x36\xb5\x94\x54\xf1\xe7\x46\xd2\xb7\x89\x53\x6a\xc6\x26\x8c\xbf\xf8\x1d\x25\xd1\xcd\x91\xed\xe9\x78\xac\xea\x16\xf5\x73\x45\xdf\x60\xb4\x24\x95\x16\x84\x72\x3a\x95\x79\xcf\x6a\xdc\xbd\x30\x77\x58\x67\x3a\x1e\x0a\x2e\xab\x53\x5b\xd5\xb9\x06\xbd\x29\x50\xb5\x55\xe7\xda\x2e\x69\x64\x41\x68\xb2\x94\x32\x97\xc7\x41\x96\xc1\x5f\xd1\x68\x41\xdb\xc5\x67\x4e\x0e\xe1\xfc\xa1\x27\xd7\x61\x81\xb0\x94\xa0\x56\x0e\x7a\x68\x49\x9c\xc3\xc9\x80\x05\x5a\x43\xec\x89\x90\x4a\xf4\xfd\x10\xd3\xcb\x85\xda\x32\x79\xac\xab\xc3\x61\x04\x33\x18\x6f\xa6\x2c\x0a\x33\x92\xa6\xa6\x62\x23\xe9\x49\x10\x41\xe4\xba\xf7\x85\x59\x94\x80\x17\x06\xba\x3f\x0f\x18\xcf\xc9\x34\x65\x9c\x2b\x4a\xdf\x14\xf9\xff\x9d\x72\xed\xaa\xc7\x43\xb6\x18\x18\x07\x4e\x65\x53\x2a\xb9\xb8\xac\xeb\x0e\xca\xf7\x45\xaf\x25\xf3\x27\x69\xcb\x75\x5b\x54\xe5\xeb\x45\x42\x14\x58\x9a\xa1\x67\xba\x1a\xc8\xf7\x17\x67\x07\xcb\xb8\xa1\x6a\x21\xd5\xa1\xa0\x70\xab\xe8\xb6\xec\x4b\xe6\xc0\xb2\x04\xc9\xe7\xef\x0c\x9a\x47\xb8\xcf\x96\x19\x13\x01\x73\x45\xf0\x37\x28\x47\x7b\x21\x83\x34\xf2\xa8\x15\xb7\x95\xdf\x41\xd3\x4e\x5b\x77\xa6\x2b\x9b\x81\xb0\x41\x38\x29\xcf\xfe\x57\x55\xe2\xf6\xad\x72\x1b\x82\xff\x80\x20\x03\x8a\xd3\x9c\xa7\x4b\xe2\xb6\x1f\x33\x11\x5a\x3f\x14\x91\x39\xee\xf2\x6f\x90\x7f\x15\xa7\x30\xcd\x15\xf9\x46\xf7\xb7\x0f\x57\x9b\xdd\xfe\x88\xf5\xee\x9f\xfe\x19\x30\xb3\x30\x37\x1b\xc3\x74\x5b\x62\x33\x9a\x06\x28\xb9\xd5\x4d\x6a\x36\xce\x35\x9e\x3e\x0e\x22\x27\xc7\xf9\x76\xfd\xe8\x52\x7b\xfb\xd5\xfd\xe3\xcb\xc3\xae\xbf\x00\x26\x54\xe4\xb2\x8e\xcf\xf0\x57\x29\xe3\xd1\x1e\xe9\x40\x03\x23\x57\x9d\x19\x10\x7c\x60\x72\x68\x17\x32\x1a\x10\x05\xa1\xa0\xad\xcd\x7c\x6a\xf7\x6d\x57\x8e\xb1\x63\x61\xd2\x47\x01\xe3\x84\x15\xc2\x63\xde\x5d\x07\xeb\xfd\x67\x55\xbf\x37\xd4\x23\xe5\xaf\xc8\xa2\x38\x73\xc4\xd7\xe6\x65\xb6\xfb\x46\x2c\xb1\x10\xc4\xb7\xea\x73\xc0\x06\x40\x14\x81\x15\x4e\xfb\x71\x35\xde\x77\xa3\x98\x71\xf2\xbf\x4e\x8d\x26\x81\x8a\xb1\x05\x8e\xe2\x38\x22\x98\xc1\xdd\x59\xe7\x30\x9c\x12\xdb\xfa\xe3\xbe\x86\xcf\xbf\x55\x5b\x81\x28\x4e\x34\xa5\xd5\x56\x35\x96\x30\xf2\x51\xa2\x58\x59\xb2\xc8\x06\xdb\x7a\x9e\x0b\x87\x88\x47\x82\xf1\x41\xa5\xe8\xda\x56\x50\xfd\xb9\x3c\x8d\xa9\x79\x48\x53\xd5\xf0\xd1\x98\x91\xc2\xd9\xf4\x95\x70\x19\x52\xc7\xe2\xee\xd7\x3d\x36\x0d\xcc\xb4\x74\xb3\xd9\xcd\x72\x15\xc8\x01\x0e\xbb\xc5\xce\xc0\x92\x90\x38\xbb\x46\x68\xdf\x96\xf7\xcd\x88\x9b\x88\x22\x26\xcc\x8f\x83\xb2\x25\x75\x9c\x7e\x05\xfa\x9d\xfe\x6a\x12\x44\x44\xa8\x70\xa2\xee\xad\xfb\x4d\xef\x33\x45\x89\x89\xad\xde\x5f\xeb\xb7\x8a\x28\x0d\x53\x15\x78\xeb\x52\xdf\x84\x37\x6c\x29\xd6\x8d\xd2\x44\xd0\x99\x6b\xfc\x77\x7f\x66\x9a\x46\xe1\xb0\x15\x15\xe7\x19\x8c\x67\xf6\xe6\x52\x05\x64\xcb\x7d\x2e\x78\xdb\xc2\xb6\x95\xcb\x86\x2c\xca\x12\x0b\x0e\x3b\xba\xba\xc5\xad\xde\x55\x4b\xe8\x68\x88\xb2\x34\x8e\xba\x91\xdf\x6a\x90\x2f\xa5\x87\xab\xe8\x91\xcc\x38\x44\x99\xe2\x14\xf1\x41\x59\x56\xa7\x52\x79\xb4\x19\x44\x22\x94\xd2\x79\x3b\x83\x94\x67\x7f\x50\x80\xb6\x55\xbc\xdb\xb2\x0b\x4f\xb6\xe3\x95\x28\x93\xc0\x29\xa2\x7e\xfe\x18\x64\x6b\x20\x52\x41\x90\x78\x1c\x49\x75\x5c\x62\xec\x81\x48\x07\x4a\x5a\x92\xa1\x16\xcb\xee\x91\xee\x87\xb5\xa5\x95\xed\x89\xa7\xea\x71\x67\x03\x48\xa0\xc7\x1d\x44\xc9\xc9\xc3\xf1\xba\x07\xbd\xc5\x8e\x10\x0d\x55\x49\x0f\xf0\x8e\xa3\x60\x6c\xfa\xbb\x26\x0e\xc9\x0b\x92\xf8\x9a\x97\xeb\x4a\xa3\x33\xdc\xfe\x30\x4f\x28\x05\xe6\xe4\xee\x4b\x28\xe8\x89\xd9\x70\x1c\xc2\x1e\xf3\xe9\x18\xc1\xf3\xe1\x16\x4c\x66\x98\x1a\xc1\x9d\xbc\x2c\xea\xcf\xcd\xed\xfc\x3e\x32\x43\x13\xc7\xb6\x2b\xe5\xe5\xeb\xd6\xa9\x24\xdd\xe5\x25\xc2\x00\xc8\xfe\x5d\x0d\x06\x22\xa3\x42\x4a\x03\x52\x37\xc9\x65\xc3\xe6\x6c\xf6\x19\x9d\x11\xbe\xa7\x8b\x80\xd7\x6f\x70\x38\x0e\x1b\x6c\x64\xb4\x24\x1b\xe8\x64\x4d\x56\xf5\x17\x29\xa6\x38\x00\x00\x67\x62\xbe\xe5\x1f\xb8\xfa\x9c\x49\xdd\x43\x1c\xc6\x86\xa8\x92\x0c\xe4\x3d\x2f\x08\xc4\xa1\x56\xdc\x25\xff\x3e\x09\x36\xf1\x58\xce\x82\xd7\x98\xf1\x88\xf6\xc0\x5b\x55\xed\xad\x5f\x84\x7a\x9c\xf9\x83\x98\x09\x43\x35\xfd\x57\xcf\xb8\xd9\xbb\xdd\xd4\xa6\x38\xbb\x9c\xb2\x3a\xe0\x35\x92\x74\xf4\xf6\x74\xc4\x9a\x30\x4c\x3f\xaa\xb9\x69\x8c\x99\xd1\x84\x86\x7e\xa3\xa0\xad\xdb\xd0\xfb\xb6\x52\x37\x22\x4a\x25\xb9\x15\x7f\x3e\xfe\xb9\xf6\x7f\x8b\x43\x4e\xc9\x3e\x22\x00\xd5\x88\x87\x8b\xda\x2b\xc4\x71\xcc\xc8\xd1\x7b\x46\x68\x9a\x1e\xa3\xb9\xbc\xe4\xe3\x98\x8b\xc8\xf5\x34\x2f\xdb\xde\x38\x96\x56\x22\xeb\xa5\xc1\xda\x6a\x33\xf6\xd2\x53\x5f\x5d\xd3\x24\x64\x73\x9e\x37\xbb\xef\x9b\x07\x1f\xc7\xc4\x9c\x09\x8b\xea\x68\xab\xa3\xf3\x35\x9e\x0a\x50\x23\xa9\x43\x88\x79\x6c\x21\x39\x5e\xe8\xeb\xd7\xa6\x6c\xeb\x7c\x86\x31\x83\x98\xa7\x9a\x3c\xc2\x2b\x2a\x88\x8c\x76\xc9\x98\xcb\x80\xc0\x09\xed\x17\xfb\x9a\x1b\x96\x84\x7d\x11\x93\x72\xf3\x63\x3f\x3e\x4e\x22\x50\x63\xa6\xf9\x49\x07\xd0\x45\x8d\x72\xa1\xa7\x11\xe2\x24\x0d\x68\xd1\x57\x65\xe1\xaa\xbf\x9d\xef\xf6\xb1\x00\xdf\x81\x38\x01\x4d\xd0\x01\xfc\x85\xb5\xca\x1b\xbc\xab\x86\x20\x69\x2c\x25\x93\xfe\xcf\x98\x06\x20\x62\x1e\xf9\x05\x71\x1a\xa4\x14\xa0\x79\x96\xd9\x6e\x22\x3b\x81\xd4\x3f\x2e\x23\x9f\x38\x75\x78\xda\xbc\x74\xc1\xfa\x18\x2c\x03\x71\xc6\x22\xca\x9e\x6e\xab\x53\x49\xea\x13\xcd\x65\x03\x23\xc4\x19\xcf\x6c\x4d\xea\x54\xaa\x7d\xb0\x0e\x36\xfd\xe9\xa9\x95\x9d\x2a\xf1\x73\x0d\x87\x23\xe4\xaf\xe5\x18\x49\x2e\x96\x9a\x4c\x21\x16\x81\xc5\x1f\x6c\x8f\x27\xbd\xab\x9e\xab\x16\xda\x4b\x25\x31\x3f\x16\x99\x07\xfc\xae\xda\xb6\xb2\xf3\xdb\x71\x50\x5a\xa0\xea\xf4\x63\x00\x4f\x85\xad\x1b\x97\x57\x9d\x15\xb8\xd4\x0a\x87\x58\x2a\x4d\x89\x08\x97\xab\xb3\xb2\x1a\xee\x98\x62\x16\xb5\xe3\x84\x78\xc7\x91\x93\xa7\xb5\xa3\xce\xf4\x12\x8a\x45\xdc\x04\xc4\x2a\x63\x94\xaf\xda\x7f\x35\x2d\x17\x02\xd4\x58\x07\x8a\xf6\x4f\x4b\xe5\xd0\x5c\x6c\xc2\xb1\xe6\x29\xb5\xb7\x83\xd6\x5b\x2c\x26\x3e\xce\xef\xad\x78\x8c\xa1\xa2\x09\xe3\x38\x88\x28\x15\xfb\x9f\xad\x4f\xbf\xc4\x06\x61\x44\xfc\xb3\x69\xd4\x09\x0b\x58\xfe\x18\x3c\x30\x82\x80\x25\xa0\xb5\xb5\xe4\xa7\x7a\x59\xa2\x0a\x78\xc8\x04\x99\x3c\xb4\xc8\x54\xdb\xdd\xee\x77\x32\x1e\x42\x32\xe2\x0e\x7a\xb6\x94\x8c\x97\xfb\x29\x0f\xa5\x25\x0a\xf5\x49\x8b\x09\x18\xd1\x8d\x61\x51\xe4\x29\xa7\x9e\xa0\x6e\x4b\xac\xff\xf3\x54\x8d\xfc\xf5\xe9\x15\x59\x92\x65\xa3\x82\xe3\xfa\xac\x26\xe9\x7c\x1e\x69\x61\x22\xdf\x4b\x0e\x75\x0b\x65\xf3\x58\xee\xde\xd0\x42\xb1\x0c\x51\x6a\x4f\x9f\x94\xc7\x51\x3a\x22\x6f\xad\xa1\x54\x13\x30\xee\xec\x06\xb8\xb0\xcc\x2e\xa5\x53\xaa\x6e\x9c\xd3\xd5\xef\x65\x3c\x49\x2d\x8f\x74\x67\xaf\xde\xf2\x42\xd7\x58\xba\xbc\xdc\x64\xa2\xf1\x24\x4d\x22\x17\x4f\x5f\xe5\xba\xef\xbb\x75\x3c\x04\xc0\x13\x93\xd8\x44\x46\xbf\xdc\x79\xca\x2c\xac\xff\xae\x7a\xed\x0d\xfb\xa6\xd4\xe3\x17\x90\x72\x4b\x2f\xf4\xe7\xe3\xf3\xe6\xcf\xf5\xf7\x95\x6f\x3d\x04\x2e\x20\xa5\x89\x2d\xcb\x90\x65\xfb\x03\x1c\xf7\x6d\xb5\xff\x16\xce\xee\x4a\x98\x94\xd8\xcd\xd7\x6f\x5d\xec\x5a\xb5\x9e\xbe\x81\xba\xbe\x68\x7b\xc5\x5f\x79\x7b\x21\x18\x02\x1c\x24\x8c\x9d\xa3\xd7\xb7\xf6\xea\x62\x66\x8f\xc4\xfc\x81\xcb\x00\x89\x99\x70\xfd\xb4\xde\xdc\xaa\xca\x4b\x77\xbb\xa3\x2a\x02\xa1\x67\xc4\x27\x17\x5d\xf7\xc0\x95\x90\x7a\xd4\x7b\xfb\x8c\xcb\x6d\x11\xcb\x6b\x8b\x2b\xc9\x28\x65\x6e\x6d\xde\xca\x6d\xab\x17\x83\x04\xad\xed\x67\x84\x82\x56\x9f\x93\xce\x70\x87\x91\x65\x9e\xd8\x6e\xfb\x96\x1f\x1d\x86\x6f\xbc\x49\x71\x54\x96\xcb\x51\x56\x75\x5d\x7d\xe2\x22\x9a\x1f\xb8\x89\x30\x4e\xc6\x3d\xdd\x57\x36\xeb\x3b\x1d\x96\x84\x81\xb5\xa8\x0a\x0a\x65\xa1\xf2\xfe\x00\x8b\x45\x34\xa1\x2b\xf6\xc2\x2b\xd4\xa2\xf2\xc3\xd9\x25\x3f\x3a\x0b\x03\x35\x80\x30\x7f\xb5\x4f\x6f\xbd\x1e\x21\x24\x21\x08\xda\xdb\x2d\x95\x62\x3f\xb7\x13\xc6\xb2\x2c\x76\x62\x88\xe5\xc9\x00\xe1\x4b\xeb\x69\xd1\x22\x61\x4c\x7b\xf6\x48\xfb\x20\x96\x41\xa9\x99\x3d\x08\xe3\x86\xa4\x03\x7e\x52\x85\xac\x37\xe1\x09\x13\x61\x38\x6e\x1c\x0c\x59\xb7\x6f\x75\xdf\xdf\x3b\xda\x49\x94\x84\x94\x7e\xa1\x58\xb5\xff\xa3\xd0\x94\xee\x6e\xe8\xf3\xd0\xc6\x11\xf6\xc7\xc0\x4e\x93\xee\x96\xac\xf7\x8f\x7a\x7b\x3a\x5c\x9d\x27\xfb\xcb\xd4\x06\x26\x91\x46\xfa\x95\x51\xea\xff\x1f\xa0\xde\x8f\x95\xff\xb0\x49\x9c\x89\x9e\x03\xce\x56\x34\xe6\x94\xd7\x6e\x20\x37\xc0\xb8\x47\x89\xd7\x9d\xd9\x6c\x49\x49\x42\x11\x8b\x86\xdd\xc1\xa6\x67\x24\x3a\x05\x5b\x97\xfc\xf3\x76\xfd\xf8\xa5\x47\xb3\xe8\x32\x75\x96\x85\x6a\x4b\x1e\x7b\xe0\x26\x5c\x17\x21\x6f\xdb\xaa\x86\xd7\x19\x13\x00\x24\x59\x22\x68\x7f\x7a\xca\xcb\xff\x7a\xcb\xc7\x9f\x43\x44\x16\xfb\x01\x5a\x37\x07\xa8\x7b\x4d\x83\xd5\x04\xc2\xe8\x07\xbb\x14\xbc\x4d\x13\x58\xad\xfe\x4b\xc5\x42\x48\x20\x45\x2a\x19\xad\x1e\x57\x57\xab\x87\x3f\xfd\x6f\x81\x51\x3c\xf0\xf9\x7d\xd5\x85\x7e\x1f\xd8\x8c\x52\x18\x89\x64\x19\x7d\xe3\x12\x4f\x75\x45\xea\xf5\xcb\x9a\x3c\x90\x48\x6e\xbc\x44\x1b\x59\xe1\xbf\x4a\x37\xfb\xd3\x24\x7a\x36\x68\xfb\x81\xb6\x7d\x45\x68\x35\x65\x11\x82\x44\x25\xb1\x6d\xe5\xb0\xac\xd6\x08\x6e\x47\x18\x95\xb7\x13\x05\x09\xf9\x4a\xab\xbb\xeb\xbf\xd7\x89\x04\x89\x52\x09\xed\x1f\x44\x90\x3b\xf3\xf3\xc7\x0d\x7e\x90\x68\xc5\x6d\xe9\xe5\xad\xae\x3e\xb7\x05\x1c\x0e\x58\x53\x5e\xf5\xe2\xb4\xd9\xc3\xf6\x74\x74\x90\x98\x28\xc0\xd8\x91\xc5\xaf\xb1\x6c\x4f\xf5\x57\x52\xa8\x90\x98\xd8\xc2\x25\xe5\xa9\x2e\xd7\x50\xcb\xce\xa7\x2a\x0a\x58\xa6\x09\x87\xc4\x98\x8c\x50\x3f\xcf\x83\xdc\xe9\xec\xe9\x2f\x34\xf0\x20\x0d\x74\x40\x00\xc1\xeb\xaa\xec\x22\x4d\xad\x2f\x0b\x80\xd3\x9f\x49\x03\xcd\xa9\x79\x60\xb5\xde\xdd\xfe\xd8\xec\x2d\x13\x92\x7b\xff\x69\xa8\x52\xc3\x47\xc0\x60\xb2\x5b\x50\x14\xe7\x89\x13\x92\xb2\xc8\x58\x90\x40\x5b\x1d\xaf\x72\x6f\xee\xba\x3f\x7b\xc5\x82\xce\xc9\xc1\xa6\x1d\x08\x6f\x16\x60\x4b\x90\x32\x65\xe9\x55\x5a\x84\xc3\x5d\x2f\xa4\x03\x69\x14\x20\xf7\x6e\x09\x16\xc5\x65\x57\x27\xa4\x51\x18\x13\x5e\x77\x55\x2a\x82\x18\x7d\xc7\xa2\x78\x18\x25\x4e\xd2\x88\x71\x69\x69\xca\x34\xfe\x7a\x34\x0b\x6d\x23\xa3\x8b\x25\x40\xcf\x43\xdc\xb9\xd4\xbe\x71\x75\xbe\x25\xd2\xa6\xee\x3f\x4f\x63\x76\xc8\xc9\xb2\x49\xa3\x34\x22\x40\xd7\xaa\xd4\x79\xd5\x2c\x91\xad\x5c\xce\xd8\x34\x8e\x38\x45\x68\xef\x65\xb7\xed\x6f\xfe\xef\x94\xf7\xfe\x69\xca\xa5\xd5\x34\x24\x95\xae\xfe\x8f\x3a\xf0\x9c\xf0\xf9\xe1\x74\xf8\x7e\xd6\x75\xb5\x6d\xe1\x1d\xaf\xbd\xfe\xed\x00\x62\x87\x34\x09\x6c\x2d\x6e\xa5\xf5\xfe\x09\xda\x7c\x81\x4c\x7d\x36\xa1\x26\x77\x97\x04\x29\x09\x2f\xdc\x55\xaf\x57\xb9\x5e\x29\x85\xc7\xf6\xb2\x23\x74\xae\xed\xbc\x48\x66\x03\x69\x22\x6c\xc7\xa8\x85\xf7\x79\x9f\x65\x36\x46\x1a\x12\x54\xa5\x26\xbe\x21\xef\x32\xd8\x8f\xe9\x2b\x4f\x30\xa4\xd6\x18\x4a\x57\xe1\xe9\xe0\xe2\xed\x71\xe6\x38\x4d\x83\x90\xc7\x43\x33\xac\x6b\xec\xb8\x3a\xf7\x2c\xbc\x93\x27\x4e\x03\x0e\x0e\x0d\x7f\xfb\x74\xb3\x9d\x51\x7d\x4d\xdf\x4e\x1a\x59\xce\xed\x5c\x55\x34\x2b\xf7\xfd\x4f\x6a\x4d\xc5\x78\x27\x15\x70\x41\xa4\xea\x86\x65\x41\x4a\x48\x18\xba\xfb\x6d\xe7\x6d\x7c\x99\x72\xf8\x2d\x13\x03\xa4\x19\x88\x8c\x2a\x50\xf9\x01\x3b\x83\xba\x29\xf5\xc8\x92\xa6\x99\x4a\x53\x8b\x7a\x57\x45\x5e\x62\xb7\x4a\x47\x33\xd2\x7b\xcd\x29\x64\x21\xd9\x0f\xba\x02\xa1\x41\xa1\x9f\x8b\xd2\x29\x80\xfe\xf9\x76\x3a\xfd\x39\x6c\x71\xa9\x74\x51\x7d\x89\xbf\x5a\xef\x26\x2d\x06\x87\xa9\xd4\x0c\xc6\x3d\x00\xbf\xcb\xd7\xa4\x52\xdb\xbd\xa4\x1d\x9c\x46\xcb\x5a\xdf\xff\xae\xb1\x52\xe9\xa0\x29\x76\x37\x7d\xfd\x31\x55\xb1\x75\xa6\x2d\xee\xec\xfe\x7c\xab\xa7\x1b\x68\xaa\x54\x42\x19\x42\x1b\xf6\xfd\x99\x97\xaf\xba\x3a\x2c\x9b\x84\x4b\xe6\x3e\x48\x15\x66\xf4\x96\xba\x67\x78\xf2\x1a\xb2\xc3\x9d\xeb\x40\x52\xa6\x69\xb3\xf3\xa9\x82\x54\x27\x4e\x62\x62\x60\xd7\x69\x3a\x7f\xe2\x7b\x45\xbd\xf6\x84\x3f\x84\x62\x89\x70\x07\x52\x0d\x29\xb3\xcd\x7b\x1f\x3f\x5e\x9e\x46\xc8\xea\xfe\xe2\xca\x72\x52\xef\x6d\xd8\x6e\xe5\x27\xe6\x02\xa3\x90\x62\x6c\xe5\xc8\xf2\xe6\x96\x94\x4f\x7b\xbf\x34\xc5\x54\x81\x1c\xe4\xb0\xab\x0f\xcf\x5a\x3f\xbd\x11\xd4\xcc\x0c\xbd\x54\x5f\xa5\x81\x53\x34\x4a\xeb\x89\x10\xc1\x88\x2a\x1f\x52\x23\x43\x6d\x26\x35\xbe\xf1\x5a\xcd\x02\x26\x3c\x90\x91\xaa\x91\x97\x45\xba\x2c\x10\x11\x79\x0e\xbd\xd3\x08\x9a\xbc\xe8\xaf\xc0\x2e\x59\xa0\xd3\x2c\xf5\x3e\xb1\x6d\x09\xee\x7f\x0e\x03\x52\x57\x2b\x80\x90\x27\xd7\x79\x43\xd7\xdc\x1f\x8f\xca\x0f\x09\xc3\x8c\xe4\x3f\x5e\x2b\xa2\x60\x24\x97\xd7\x1f\xe2\xcc\xc9\x43\xfc\x22\x24\xf3\x75\x9d\xf7\x40\xb6\x2c\x4c\xac\xcc\x6d\x01\x4d\xcb\x83\x63\x71\x6a\x48\xf3\xbf\xec\x7f\x3b\xcc\x8c\x8d\xc6\x8d\xc9\x8b\x1c\x5a\x1c\x4a\xe8\x19\x4b\x2d\x60\xe1\x5f\x50\xbe\xde\x43\xf5\x5f\x6f\x27\x28\x5f\xff\x75\x82\xbf\xb1\xa1\x64\x4c\x5a\xa5\x20\x99\x97\xfa\xd4\x60\xdd\x56\xc7\x2f\x5e\x0c\x53\x19\x61\x1a\x6d\xf4\x6e\xd3\xbe\xd3\x56\x89\xe9\x9b\x67\x86\x53\x04\x8d\xed\x5b\x53\x29\x85\x75\x9c\xf9\x1b\x8e\x32\x49\x00\x85\x8d\x9e\x75\x74\x43\x16\x29\x41\x46\x92\x4a\xb4\x43\xff\x3c\x64\x91\x4e\x22\xdd\xc7\xf0\x37\x35\x22\x39\xda\x33\x10\x5c\x16\xa7\x9c\x33\xc7\x49\xa6\xeb\x35\x94\x6b\x28\x8a\x2d\xd6\x1f\x5f\x6c\xc3\x59\xac\x2c\x1b\xe2\x7d\x25\xf3\x02\x57\x47\x5f\x7d\xcd\x38\xb7\xbc\x1b\x7d\x6c\x75\x5b\x9a\xea\x82\x77\x7f\xf6\xd0\x49\x12\x12\x20\xb1\x57\xdf\xf3\xe5\x84\x59\x98\x92\xa5\x91\x49\x02\x2f\x42\x61\x49\x3b\x16\x6c\xe1\xd4\x26\x66\x69\x9c\xca\xc8\x0b\xfe\x4c\x74\x3e\x17\xf6\x9b\x2c\x8d\x85\xe7\xb3\xfe\x06\x07\xb4\x1c\x33\xd3\x00\x32\x4b\x51\x92\x98\x3f\xe9\xbc\x35\xe8\x54\x7f\x66\xb7\x6a\xb4\xa7\x79\xe8\x02\x33\xac\xd7\x79\x9b\xcf\xa3\x80\x2c\xe3\xb1\x45\x5e\xf9\xd6\xf8\x79\x3f\x3b\x64\x99\xe6\x44\x99\xb7\xef\xaf\xe4\x7a\xe3\xa7\xef\x10\xc2\x98\xc2\xee\x0d\xf1\x5a\x0e\x9b\x47\x06\x59\x42\x48\x75\x62\x09\xba\xcb\x09\xdd\x66\xef\xc1\x8b\xec\x4c\x6f\x09\x74\x64\x19\x4d\x6a\x20\x36\xc7\xa2\xa8\x3e\x69\xe9\x8d\xf1\x36\x83\xa9\xce\xc0\x24\x9c\xf7\x86\xd7\xa5\x4e\x0b\xd4\xaf\xf8\x45\xdc\x9a\xc9\x34\xa4\xd9\x46\x57\x7d\x34\x77\xb9\x99\x38\x13\x99\x14\x29\x95\xa9\x48\x7b\xdd\x82\x71\x7e\x87\x69\xce\xa4\xb4\xfc\xd9\x77\xb7\xcf\xab\x7f\xce\x5e\x8b\x0a\x94\xd0\x7d\xf7\x22\x55\x22\x07\xc0\x43\x3d\xc1\xab\x66\x2a\x11\x99\xd3\x19\xfe\xd6\x3d\xfc\x54\x1f\xda\x0f\xd2\x48\x78\xb6\xab\x59\x1f\x22\x64\x3a\x88\xb9\x45\xa8\xc8\xd3\x85\x72\xe8\xec\x96\xd1\x58\x5e\x88\x57\x6c\x37\x1f\x50\x9c\x06\xe8\x8c\x77\x14\x32\x23\x39\xd5\x21\x2d\x55\xeb\x1b\x34\xc8\xa6\x3f\x28\x82\x18\x71\x10\x3c\x18\x7a\x1f\x26\x37\x2c\x82\x94\x21\x78\xfa\x66\x1c\xbb\x2c\x22\x48\x65\xea\x39\x25\x6e\x20\x2f\x08\x68\x84\xd6\x03\xaf\xb1\x6c\x9b\x2d\x1c\x48\x31\xd8\x13\x03\x81\x08\x34\xf7\x81\x82\x0f\xb4\x9b\xab\x33\xc1\x7a\x67\x37\x67\x02\xea\xa0\x3c\x54\x3a\x37\x8e\xc3\xee\x8b\xf0\x6a\xc6\xce\x38\x7a\x09\x22\x8c\x02\xf0\xd2\xfe\x16\xe3\xb2\xdc\x95\x31\x7d\xbd\x22\xd4\x59\xea\xba\xb9\xdb\x9b\xaa\xfe\x59\xd5\xef\x97\xed\x2b\x6e\x2c\x63\x48\xb8\x86\x3f\xa1\x3e\xc0\xec\x21\x98\x76\xf2\x05\xa4\xa8\x7d\xee\xb9\x69\xdd\xe1\x28\x4c\xa4\x2b\x15\x6f\x7e\x5d\x34\x22\xfb\x41\x51\x0c\x81\x27\xee\xa8\x0e\xb2\x73\x2d\xaa\x7a\xb8\x86\xc8\x70\x00\xb3\x74\x7b\xb1\x85\x21\x43\xde\x93\xab\x81\x88\xb4\x9d\x99\xcd\x27\x1c\x47\x68\x48\x11\x87\xd6\xed\x2e\xf1\x73\x07\x47\x5f\xf4\xeb\xdc\x9e\x75\x75\x38\xc2\x8c\xad\x19\x44\x1c\x87\x96\x65\xe2\xfe\x9f\xdf\x8a\x4a\x7a\x05\xfb\xdf\x07\x2b\xa3\xe8\x57\xf0\x48\x52\xfb\xd5\x9f\x50\x12\x71\x46\x6f\x66\x04\x97\x8c\xda\x9f\x1a\x38\x3f\x54\xfd\x1f\x75\x42\x6d\xaf\x05\x9a\x96\x5c\x4b\x72\xe1\x9f\xa1\xc5\x47\x73\xeb\xd8\xac\x87\xb1\x46\x64\x43\xe7\x25\x85\x11\x36\xd2\xb8\xea\xfb\x32\x2e\x2c\xc0\xd4\xb2\x88\x24\x05\x4a\xff\x11\x5f\xce\x25\xcf\xc2\x57\xe9\x86\xc9\x0e\x20\xd2\x04\x90\xf7\x30\x1e\xfa\x5d\x16\x84\x7e\x1b\x16\x19\xb3\x4d\xc9\xd6\x64\xbf\x94\x4d\xaf\xc6\x0c\x42\x24\xa0\x60\xbc\xfb\xdd\x5d\xe8\x6c\x80\x10\x3a\xa4\x39\xfd\xbc\xda\x6d\xf6\xd7\xab\x7f\xed\x7d\xaf\x83\x80\x20\x21\x61\xbc\xed\x6e\xf5\xbc\xeb\xff\x18\xeb\xc4\x51\x6d\x3a\xbb\xfd\xa3\x22\x1e\x89\x2b\x28\x0a\x47\x80\x37\x2f\xb4\x0a\xc8\x64\x94\x0e\xd4\xdd\xb9\x74\x49\xa2\x71\xda\x57\x80\x08\xa9\x6d\x67\xbb\xba\x1b\x7e\x4d\xa0\xad\x9d\xd9\x34\xdc\x44\x1e\x03\x04\xa8\x28\x25\x6f\xec\x54\xfc\xb1\x50\x79\x13\x52\x66\x94\x36\x5b\x3f\x3e\xec\x9e\x6f\xaf\x5e\x76\xb7\x8f\x0f\xfb\xfb\x3e\xc5\x2f\xa4\x49\x79\xda\xbf\x9f\xd6\x54\xf5\x94\x69\x01\x84\x8a\x13\x4f\x10\x7b\x7f\x26\xe8\x44\xbf\x52\x74\x60\x59\x1b\x06\x72\x9f\xd1\xb3\xe8\x38\x48\xc1\xf6\xde\xb8\xb7\x74\x75\x26\xae\xfa\x89\x2f\x20\x74\xac\x02\xdb\x39\xf0\x71\xc2\xe2\xa3\xf3\x5c\x08\x4b\x35\x1d\x85\x81\x20\x7e\xd4\x7f\xfe\xe3\xc6\x5f\x1f\x05\x50\x96\xb1\x5b\xbe\xf5\x79\x8b\x50\xab\xb7\x9b\xaa\x5e\xbf\x41\x51\x60\xb9\x50\xd2\x9d\x9a\xa7\x9e\x65\xca\x5f\x0e\x62\xca\x21\x7b\x45\xb8\x75\xd5\xb4\x37\x39\xcc\xb6\x14\x08\xc2\x2c\xb4\x1d\x14\xad\x7a\x5b\x53\x53\x8e\x15\x93\xed\x6b\xba\xfc\x7f\x46\xad\x88\xc9\xff\x5c\xf4\x25\x02\x04\x32\x0b\x12\xe7\x9a\x5f\x84\x12\xc0\x22\x70\x3c\x92\xa8\x72\x28\xae\x6b\xf8\xcc\xcb\xd7\xe7\xfc\xf5\xcd\xbf\x5a\x60\xb1\x51\x96\x15\xf9\xf5\xad\x1d\x43\x65\x80\x65\x29\x6d\xe4\x45\xde\xb4\x17\xb9\x39\x3f\x46\x04\x94\x7b\xb9\x5e\x3d\x6c\x17\x7b\x84\xbf\x6c\xd8\xfd\x2b\xfc\xed\xa2\x39\x07\x86\xdc\x47\x22\x26\xaf\x0f\xcf\xa8\x70\x8c\xc5\x04\x86\x1a\x4c\xbf\x7c\xaf\xa1\x85\xa7\xba\xfa\xc8\x07\x95\x1d\x00\x66\x4c\xe0\x60\x51\x7b\x0a\x28\xde\xa0\x79\x9b\x3d\x56\x14\x58\xf5\x81\xff\xb5\x09\xf7\xf1\x5c\x84\x28\xb5\x6a\x3c\xd7\xf9\x6b\xfe\x74\x2a\x7a\x13\x07\x91\xb1\x8c\xdb\x4e\xb5\x66\x46\xaf\xda\x1d\x57\xf1\x84\x14\x62\x7f\xec\x4c\x7a\x6d\x63\xd7\xbd\xe5\x53\xfb\x7d\x39\x16\xe2\x40\x91\xdf\xe9\xb6\x3e\x67\x42\x69\x6e\x2d\xbf\xb0\x38\x40\x2f\x31\x46\xd0\x92\xb1\x2d\x84\x38\x4c\xa8\x32\xb4\xae\xea\x06\xea\xfc\x74\x58\x8f\x34\x8c\x17\x26\x5b\x9c\x48\x8a\x4c\xf7\x9e\xb2\xad\xbb\xda\xd7\x40\xa0\xf9\xad\xa4\x89\xb0\x6c\x59\xf2\x90\xb7\x56\xe9\x7b\xb2\x32\x81\xa3\xe4\x96\x3c\xf9\xba\x39\x7a\xf0\xeb\x1c\xe2\x09\x49\xa8\x4d\x2f\xf4\xe3\xdd\x94\xf5\x40\x0d\x3b\x1f\x0e\x92\xaa\x6c\xc4\xa1\x72\x75\x9e\x20\x18\x20\x0d\x80\x12\x6a\x77\x57\xdd\x6e\xf7\x8f\xdf\x65\x35\x21\x15\x5a\xbb\x5e\x8c\x47\x9d\x53\x17\x21\xeb\xaf\xa3\x43\x2a\xfc\xde\xbf\xdc\xed\x6e\xb7\xb7\xdf\x06\x41\x54\x80\x2c\xe2\x49\xe6\xb4\x03\xc9\x4b\x28\x4e\x77\x95\x82\xe2\x01\xdb\xcf\xaa\x7e\xef\xbb\x30\xe6\x00\x4b\x7f\x3a\x67\x94\xfa\x78\x1d\x91\x4e\x4d\xf7\x03\x10\x41\x44\xfa\x36\x79\xb3\x7b\xc3\x1a\x49\xe6\x61\xd5\xae\xab\xaa\xd6\x9d\x3f\xe2\x40\x31\x33\x73\x0e\x82\x41\x30\xb8\xf6\x0d\x05\x1f\x72\x62\xaf\x41\x44\x92\x18\x7b\xc9\xbb\xbc\x35\x37\x94\x76\x9c\xdd\x9f\x80\x0c\xfa\x14\x9c\xac\xda\x86\x26\x91\x3f\xa8\x21\x24\xbf\xa1\x2a\xc6\xdc\x91\x00\x02\x79\x14\xf6\x04\x9c\xb6\xed\xbc\x3a\x8d\xec\x12\x61\xe6\x5c\xf3\x49\xde\x58\x6e\x88\xe6\x8f\x45\xd7\x72\x21\xd0\x83\x2e\xce\x20\xf6\x47\xd5\x9e\xa0\xf8\x56\xb5\x8b\x73\x03\x14\xa7\xa2\xe5\x5d\xf5\xfa\xb3\x8b\x18\x76\x35\x5e\x40\x12\x66\xb3\x40\xa6\x56\x5e\x33\x6f\xb6\x27\x8a\x20\xae\xab\xd2\xc9\x36\xf8\x11\x99\xd0\xae\x88\x73\x47\x3c\x74\xdb\xb6\x3e\xa9\x76\x46\xd2\xb1\x7c\x75\xc5\x42\xea\x24\xbf\x7f\xb8\x1b\x8b\x4f\x75\x07\x52\xaf\x7c\xeb\xd1\xe0\x8b\x75\x5c\x50\x71\x14\x26\x3d\x23\x8e\xe5\xdc\xbb\x5f\x56\x47\xed\x1e\xdf\xb2\x9c\xda\xf5\xec\x60\x81\xd5\xaf\xf3\xec\x9a\x3a\xc8\xd8\x80\x1a\x1a\x08\xd5\x6e\xcb\x2b\xdf\x91\xba\x0c\x95\x05\x1d\xf2\xa8\x67\x7d\x6d\xd5\x9b\xcb\x3a\x4c\xef\x42\x27\xca\x0b\x6b\xdd\x96\xa6\x22\x69\xb6\xc9\xc7\xd4\x52\x91\x93\xdd\x39\xc2\xb9\x7a\xc7\xfa\x3f\x4f\x58\x9f\x67\xbc\xef\x6e\x2c\x86\x96\xf9\xca\xea\x43\xd6\xd8\xbc\x75\x1f\x61\xf9\x5d\xe1\x00\x0f\xea\xc2\xc6\x07\x47\x5f\x31\xf6\x89\x01\x51\x49\x57\x14\xbc\x60\xbf\x01\x40\x83\x5c\x7a\xe3\x72\x5b\xfa\x9c\x17\x18\x66\x3b\x38\x3c\x8a\xe7\xb1\x5b\x1c\xc4\x82\xf3\x9b\xf4\x10\x98\xd8\x71\xd5\x6f\xb6\x9b\xe7\x1f\x9b\xed\xfe\xfb\xe3\xdd\xf5\xe6\xd9\x5d\x54\x86\x5a\xd8\xc6\x97\xa2\x6a\xd0\x15\xd9\xc7\xa0\x57\xc9\x38\x27\x12\xf3\x6f\xcf\x2f\xe3\xc9\x23\x99\x53\xd1\xea\x9c\x04\xc8\xcb\xe6\xb1\x2c\xce\xab\xe2\xf8\x06\x0f\xa7\x03\xd6\xb9\x9a\x28\x4c\x74\xc3\x6d\xbe\xc8\x21\x9c\x2c\xca\xc5\x1d\x8b\xc3\x90\x1a\xd1\x5b\x78\xef\x99\x86\x67\xc9\x0a\x19\x87\xcc\x43\x01\xac\x1c\x70\x51\xc0\x3e\x08\xc2\x7d\x10\xb0\xe9\x2f\xc5\xcc\xf6\x11\x52\x6b\xb9\x72\x18\xb0\xe7\x53\xd1\x3b\x21\x32\xc6\x48\xba\xdd\xfa\x91\x02\xdc\xaf\x5f\x9f\xe4\xb1\x49\x9c\x8e\xf0\xe6\x97\x2a\x4e\x7a\x5e\x2e\x90\x3c\x0d\x63\xe5\x17\x07\xc2\xc1\xa6\xc5\x7f\x7b\xcd\x0c\xa9\x0e\x71\xa4\x6d\xe3\x76\xf7\x68\x75\x4c\x3c\x78\xd6\xdf\x26\x97\x49\x4c\x53\xf8\x48\x66\x74\x9a\x51\x92\x1c\x19\xf8\x1a\xd0\xee\x3b\xf1\xb7\x53\x4a\xc0\x82\xfc\x2c\xba\x69\xb6\xcb\xc9\x44\x87\xe4\xa6\x58\x2e\xc6\x7e\x77\xbb\x3a\x5f\x2a\x4c\x83\x4c\x8c\x90\x76\x22\x97\x58\x53\x26\xf2\xa3\x7a\x47\xaa\x69\xdd\x54\xb5\x2b\x6b\xe5\x55\xb9\x55\x6f\x78\x80\xef\x23\x87\x67\xf6\xb8\xa9\x64\xd1\x48\x9c\xbb\x18\x85\x70\x32\x4b\x10\x3c\x95\xf7\x12\x06\x5d\x66\xd2\x52\x15\xaa\x02\xa1\x5e\x15\x85\x2b\x5a\xf6\xaf\x21\x33\x18\x07\xde\x41\x02\x39\xeb\x75\x94\x82\x01\xf3\x74\x31\x04\x1a\xde\x1f\x0b\x28\xe7\x9a\xbf\x20\x45\x6c\x77\xbb\xd5\xf1\x68\x13\x3d\x7a\x5e\x62\xfa\x1a\x2a\x27\x05\xd7\x56\xe7\xed\x15\xdb\x1b\xc4\x55\xa9\x1f\x3c\x53\xeb\xfc\x67\x84\xe5\xb9\x5d\x3f\x55\x45\x51\xf5\x37\xa9\x02\x02\xae\x90\x16\xfe\x36\x7f\x2d\x2d\x8c\xcd\x1f\x35\x2a\x89\x7e\x93\x72\xb1\xff\xfd\x50\xb5\xb7\xe5\xcb\xf0\x62\x21\xce\x42\xcb\x1f\xac\x72\xf4\x8c\x53\xee\x98\x0c\x42\xca\x70\x61\x09\xaa\xdd\xdb\xbe\x26\xfa\x94\xfb\x62\x21\xe3\x3a\xfb\x9a\x32\xc2\x40\x0e\x24\x4c\x8e\xe6\x71\xe9\xd3\x49\x99\x52\x2a\xbd\xf5\x30\x82\x31\x9d\x30\x48\xa5\x82\x58\xf9\x2d\xed\xb5\x79\x38\x1d\x86\x23\x3c\xb2\xf4\x5c\x8e\xef\x63\x36\x8d\x35\xb3\x19\x7e\xf0\xa5\x8a\x3b\xa8\x71\xa0\x97\x9f\x0d\x4e\x03\x9b\x1a\x24\x86\xcd\x09\xd0\x49\x6a\x2d\xe9\x16\xba\xb7\x63\x55\xe3\x2f\x1e\x7e\xf4\x99\x51\x44\xe4\x6b\x6e\x26\x92\xb8\x7f\x91\x30\x70\xe7\x1a\x26\xa9\x53\x73\xd3\x74\x6e\xcf\xfd\x99\x1c\x9b\x4d\xd9\xe6\xed\xf9\xfa\xca\xdf\x8e\xe1\x68\x43\x70\x5a\xbc\x37\xf5\xbc\xdb\x51\x05\x2c\xa1\x58\x54\x9e\xce\x1b\xa8\x8b\xf3\x32\x9d\x14\xa8\x20\x52\xba\x5f\x71\x7e\x17\x9d\x86\xcd\x2a\x90\x01\xad\x8c\xab\xdc\xd4\x38\xc9\xa6\xaa\x40\x32\xea\xf5\xf1\x8d\x15\xbf\x6b\x64\x53\x21\x4b\xa9\x02\xb9\x45\x55\x95\x3e\x4f\x3c\xfb\xad\x90\x5b\xde\xf7\x53\xf9\x04\xa7\x66\x8e\xd4\x51\x61\x66\xc8\xaf\x7a\x83\xce\xbd\xb8\xca\xdb\x03\x1c\xc7\x0c\x44\xa0\x42\x64\xe8\x33\x62\x57\x79\xdb\xac\x4a\xed\x3c\xa5\xfe\x1a\x28\x4c\x0f\x8e\x21\xa6\x34\xa2\x49\x5b\x34\xc0\x8a\x85\xc0\xd8\xb4\x8c\x39\x2e\x87\xa9\x28\x65\x34\x01\x41\x6b\xcb\x07\x4a\xb4\x1b\xbf\xa3\x38\x03\xc5\x83\x84\x6e\xb1\x36\xfe\x2a\x9c\xa3\x76\x34\x8a\xd7\x65\x73\x5d\x1d\xa8\x79\xed\x6b\xff\x52\x25\x81\xa5\x58\xce\xcb\xff\x45\x35\x0d\xbe\x42\xe6\xdf\x77\xc2\x6c\xd6\xfe\xae\xaa\xde\x9f\xf1\xe3\x37\xfb\x8c\x4a\xb9\xe5\x10\x77\x59\xfb\xc5\xcc\x9d\x1f\x2a\x12\x1e\x8e\x60\xad\x5f\x24\xce\x55\x2a\xa5\x30\x7e\x07\x99\xe6\x36\x55\xaa\x98\x4d\xd2\xef\xd6\x61\xf0\x5e\x95\x3c\xf6\x47\x44\x9a\xc4\xa9\xd3\xf6\xc6\x2d\x18\x7c\xa8\xfb\x43\x5a\xda\x76\x81\xc7\xbb\xcd\x7e\xfd\xf8\xe8\xff\x2e\x91\x11\x84\xdd\xf2\x8a\x5c\x76\x30\x28\xc5\x52\x4a\x2b\x7f\x90\xa0\xe3\x17\xb7\xab\x98\x22\xcf\xe2\xe8\x05\xf6\xfe\x3f\x0a\xa1\x81\x52\x3c\x73\x14\x3d\xea\xfd\x1e\xca\x53\x33\xe2\xbc\x02\xa5\x94\x60\xb6\xe9\xe1\xb5\x8b\xc2\xab\xfa\xd6\xa8\xd9\x9a\xd4\x0c\xc8\xf4\x1f\x68\x55\x5d\x9d\xf4\x2b\x7e\x11\x5f\x2b\xcd\x90\x2a\x80\xf8\x0b\xd5\xa9\x9d\xa6\xad\x94\x4e\x03\x0b\xc5\x80\xa2\xd8\x56\x87\xce\xb2\x13\x92\xf0\x47\x0e\xb7\x65\xd9\xcb\xaf\x83\xd2\x99\xb6\x5c\x11\x55\xa1\x3d\xf7\xb7\x3b\x84\xb1\xa2\xc5\x32\xd1\xa4\x3c\x4d\x35\x99\xa6\x77\x8f\xc6\xca\x08\x8f\x9c\xfa\x66\x31\x8f\xa8\x4c\x64\x12\x0b\x4f\xea\xec\x81\x8d\x8c\x1f\x4d\x4f\x13\x07\xca\x70\x43\x19\xd7\x3d\x68\x7d\x05\x0d\xc5\x39\x53\xbc\x41\xf6\xdf\xd9\xff\xf8\xc1\x5a\x4b\x17\xbd\x5b\x60\xca\x92\xb0\x04\xe8\x40\xc4\x94\x25\xec\xec\x43\x34\xca\x74\xf5\xd9\x06\x3e\xeb\x5e\x98\x3a\xf8\x3a\x4c\x82\xc8\x76\x80\x5e\x15\xa0\xde\xff\x17\x7a\x9c\x93\x0e\x05\x12\xe4\x4b\x55\xc7\x33\xd5\xb6\x5e\xca\xbc\xfd\x4b\x9d\xd2\xe9\x17\xd5\xa1\x09\xa8\xdb\x88\x00\x70\xe3\x21\x73\x34\x8e\x66\x3a\x71\x4c\xfa\x07\xe2\x90\x07\xf5\xfe\x75\x0b\xbd\x8e\x75\xe2\x75\x50\x57\x45\xbb\x88\xdd\xd1\x3c\xb1\xa5\xf2\x6e\xde\x7d\x76\xab\xe9\x4a\x55\xa7\xe3\x02\x3d\x8f\x1b\x9f\x08\x1e\x0c\x3a\xa7\x94\xe7\xea\xb6\xf8\xef\x96\x9e\x6b\xd9\x7e\xe8\x44\x46\xa3\x76\xde\xf5\xcb\x76\x03\x8b\x1f\x2a\xe5\x21\x7d\x4f\xd7\xdc\x82\x58\x3f\xe3\x47\x8e\x9f\x17\x8c\xa2\xa3\x9e\x56\x9d\xa6\x2c\x51\xde\xe8\x78\x4e\x7f\xdf\x0b\x3b\x83\x30\xea\x54\xc7\xc4\xdd\x69\xdd\x24\xdb\xd6\x39\xda\xaf\x74\x16\xc7\x14\xcb\x62\x91\xbf\xe6\xb2\x40\x9b\x9e\x9c\xde\x65\x16\x73\xc2\xf1\x5a\xcc\xa7\xc3\x3f\xf7\x4d\x16\xd3\xa9\x93\xc5\xca\xcb\x39\x3c\x9c\x88\xad\xc8\x1b\x44\x2d\x12\xdb\xa6\xe8\x12\x20\xfb\xcf\xbc\x9e\x90\x27\x69\x90\x40\xc9\xef\x23\xa8\xf7\x1d\x3d\xc4\xf4\xad\x02\x0a\xe9\x8a\x13\xab\xfa\xf5\x64\x79\x6b\x9c\x07\xfc\x92\x97\xed\x1f\x4b\x19\xe4\x8b\x29\x25\x99\x25\xcd\x70\xad\xe9\xcf\xf9\xeb\x66\xf7\xdd\xbe\x93\xf9\x48\xe1\xd1\x3b\x87\xbc\xbc\xea\xdc\xa1\xd9\x71\x00\xdf\xae\xb5\x9e\xa8\xcb\x82\x96\xd2\x10\xef\xd8\xf3\xd5\x6a\xdd\xf9\xa6\xe3\x16\x16\xad\x04\xf0\xbe\x3c\x3b\x0b\x4d\x66\xb3\x4f\x41\x48\x2b\xf1\x3d\x2f\x8a\x3d\x94\x7a\xef\x71\x49\xb3\x4f\xa4\x4c\x24\x42\x17\x75\xdd\x43\xee\xbe\x4a\x38\x76\xd8\xb4\x32\x92\x78\xb3\x7a\x7a\xd3\xb2\xfa\x34\x05\xbc\xe3\xbc\x69\x75\xfa\x94\x1a\x91\xe8\x89\xbb\x75\xe7\x5a\x1e\xa9\xa4\xd9\x8c\xd8\xcc\x16\xad\xa4\xc6\x50\x71\x47\xbe\x76\xac\x1a\x7c\xc6\xa3\x27\xa1\x74\x94\x58\x7f\x2c\x25\x01\x35\x86\x68\x39\x1c\xbb\xf9\xf1\xf7\x70\xfe\x1a\x13\xcb\xf6\xeb\x7e\x6a\x09\xe6\xaf\x31\x4d\xa9\xaf\x94\x7c\x98\x4b\xcc\xe9\x5f\x65\xd5\xa7\xf3\x1c\x95\x25\xf5\xfd\xfe\x67\x98\x64\x23\x7e\x00\x6d\x22\x4d\xe5\x48\xed\x44\x0b\x6f\xaa\xfa\x6a\x39\xfc\xd1\xc6\xd5\x98\x76\x9f\xd5\x0d\xd5\x47\x57\xa7\xf6\x6d\x29\x76\xd0\x06\x78\xda\x1b\xb6\xa2\xea\x1b\xc5\x7b\xbc\xc7\xfc\xca\xa8\x1d\xed\x5f\xb9\x69\xdf\x9a\xe7\x4b\x29\x6f\x3b\x10\x83\xd4\x2e\x7f\xea\xc6\xfa\x01\x45\x6e\x83\xbd\xd9\x20\xc5\x23\x07\x10\xdf\x42\x81\x13\xd5\x58\x37\x24\x0c\x33\xe3\xfa\x80\x48\xd2\x6c\x20\x6f\x19\x11\x8c\x2e\x25\x93\x30\xcc\xb2\x2c\xf0\x08\x5c\x85\xf9\xf1\x0b\x37\x00\xc3\x0c\x94\x7b\x07\x6e\xe9\x5e\xf0\x9f\x60\xa8\x42\x12\x74\xd2\x84\xe5\xef\x16\xde\x10\x3f\xfe\xf6\xbb\xce\xfe\xdf\xb0\x6a\x30\x54\x8a\xba\x87\x0e\xdd\xd4\xdf\x9e\xe4\xcf\xd9\x02\xf4\x99\x7b\x64\x69\x48\x9b\x5a\x37\xe0\xa1\xf2\x06\x6a\x5d\x95\x0d\xe5\x26\x7b\x3c\x17\x32\xad\x29\x55\xf4\xcf\xab\xef\x9e\x91\x01\xa3\x34\xf3\x75\x3d\x87\x8a\x7c\x34\x5b\x6c\x9a\x05\xa8\xf6\xb0\xdc\xfa\x73\x2d\x47\xd7\x27\xe6\xcd\x77\xa8\xf5\x40\xe5\x80\x91\x0a\x12\x9f\xa9\xf4\x06\xbb\xf8\x62\xd3\xc2\x48\x31\xaa\x4d\x7e\x62\x3e\x76\xff\x31\x36\x71\xd2\x6b\xca\xfd\x89\x67\x6f\xd0\x91\x63\x42\x49\xa8\xa3\xed\xea\x6a\x2e\xa0\x37\xc8\x8d\x20\x9f\xdf\xa6\xb2\x2e\x31\x64\x98\x84\x69\xe8\xe6\xcd\xed\xfa\xf1\x27\xe2\x7b\x74\xa9\x0e\x01\x98\x28\x46\x5e\xc7\xff\x9d\xf0\x84\x03\x5d\x38\x60\xa2\x13\x66\x55\x26\xcb\x13\x14\x8f\x1f\x58\xd7\xb9\xee\x8f\xa6\x41\xe6\x59\x65\xee\xcf\x56\xd1\x74\xce\xeb\xf2\xd5\xbf\xfe\x0a\x8c\x27\x36\x81\x0f\xfa\xb7\x10\x2c\x4c\x99\xf5\x2b\x48\x8f\xf8\xad\x2a\x2e\xd9\x88\x01\xd3\x4c\xa7\xd2\x7f\xe5\xb6\x9e\x81\x0b\x30\x0b\x62\xd2\xa9\x68\x47\x7c\x07\x16\xb0\xf4\xc5\x6f\x76\x2e\x6d\x36\x90\xd8\xd4\x2d\x9a\x39\x59\x2b\xa0\x88\x63\x4a\xc7\xbc\x12\x5e\xc1\x0a\x36\x8c\x30\x2c\x28\xd2\x10\x1d\x92\xe6\xe7\x98\xff\xd5\x9a\xac\x31\x89\x00\x0a\x81\x46\x39\xe6\x8f\xfb\xd5\x3f\xf7\xeb\xd5\x93\x3f\x04\x41\xec\x99\x10\xee\x9b\xd7\x6e\x2b\x5c\x99\x5e\x12\x12\x10\x22\x60\x8e\xfa\x79\x44\xfb\x3c\x6f\xd4\x74\x83\x65\x90\x86\x99\x77\x70\x7a\xcb\x8a\xd2\x71\x8c\x5a\x37\xe4\x5b\x5d\x9d\xbe\xc0\x0c\xa2\x14\x21\xe0\xa0\xa0\x33\x89\x18\x51\x2a\x30\x41\x8f\x24\xfd\xe2\xcd\xaa\x50\xa1\x1e\x18\xb8\x5d\xc8\x48\x8c\xd7\x34\x3d\x7f\x9b\x14\x42\xc5\x38\x95\x29\xff\xeb\x5f\xdf\xc7\x99\x04\x54\xda\x2e\x98\xa1\x70\x40\x2f\xe9\xea\x74\xfe\x8b\x0b\xea\x4c\xfa\x14\xad\x87\x30\xd8\x62\xcd\x74\xb6\x62\x28\x08\xac\xe8\x8b\x08\xa7\x6e\x92\x4d\x84\x04\x66\xd7\x45\xad\xe9\x83\xbe\xc8\x02\x9a\x81\x9f\x74\x29\x1c\x47\x93\x5a\xd2\x5f\xe2\x4b\x3c\x0f\x3c\x70\xf6\xb0\x09\x02\xe3\xa4\xb1\x3b\x4f\x7d\x55\x14\xdb\x93\x7c\x69\x86\xa2\xb0\x09\x22\x9e\x25\xe3\xda\x6c\x17\xed\x7c\xc3\xcb\xd2\x66\xcf\xb5\x3d\xba\x38\x07\xaa\x49\xbf\x55\xba\xd8\xe7\xdd\xac\x19\x0a\x04\x26\x0c\x2d\x34\x98\x08\xca\x0f\x79\xdb\x7e\x85\x9b\x33\x21\xe3\x89\x99\x80\xbb\x1d\x9f\xe0\x74\x58\x14\x04\xbc\x07\xa8\xec\x73\x2b\xcf\xea\x8f\x65\x11\xf9\x6e\xf2\x74\xde\x9b\xea\xe2\x4c\x88\x75\xec\x7a\x1a\xaf\xf3\x8f\xe7\xa1\x64\x65\x22\xcd\x12\x0b\xd1\x54\xef\xd8\x36\xfb\x6d\x55\xe8\x45\xff\xc7\x44\x68\xc2\x68\x90\xb8\x78\xa8\x7a\x83\x66\xe2\x38\xa6\x28\xff\xe6\x54\xce\x19\xf6\x96\x33\x6d\x26\x16\x49\x30\x6a\x9f\xa7\x6c\xef\x57\xe5\xb7\xbf\x17\xbd\x99\x18\x15\xdd\x84\x95\x64\xa2\xea\x48\xd4\xdf\xa0\x49\x2c\xb9\x37\x96\xa4\x86\x84\x4d\x7b\x6b\x1e\x10\x35\xea\x6d\x0b\x05\x1e\x46\x6f\x84\x47\x02\x07\x66\x98\x6f\xd0\x5c\x4a\x5e\x80\xe1\x46\x92\x0f\xfe\x54\xe3\xad\xaa\x3c\x59\x5b\x3f\xa9\x12\xce\x4c\xcf\xe2\xb6\x7b\xab\xb1\xe9\x4c\xef\xc0\xf5\x64\x12\x23\x08\x50\xd4\x2d\xdf\xbc\x19\xf5\xd1\x9a\xc4\xe8\xc8\x6d\x0e\x34\xa3\xda\xcb\xbe\x7a\x93\x46\x8a\xd8\x46\xba\x8b\xe6\xe5\x6b\xf3\x68\xf6\x57\x2f\x77\x77\xf3\x51\x02\xc9\x17\xb4\x53\xff\x1a\xa1\x98\x06\x47\xbe\x1c\x6c\xb2\x2c\x10\x23\x6e\xfc\x65\x72\x4e\x93\xa9\x84\xd2\x71\xfb\xed\xcb\xb4\xee\xe7\x8e\x0b\x19\x51\x0d\xe6\x58\x79\x45\x71\x7f\x40\x71\x42\x01\x3b\xc2\x4a\x9b\xc9\x7b\xba\x60\x2a\x33\x42\x07\xa9\x13\x45\x9b\x30\xd4\x2e\x5b\xd3\x6e\xb8\xe7\xdb\x25\x64\xf9\x8a\x20\xd8\x34\x8d\x1f\x4e\x33\xb6\x5a\x03\x81\xa0\xf9\x46\x92\x68\xa7\x2f\xcc\xab\x01\x61\x41\xa5\xd4\x45\x8c\xb5\xaf\x31\x4c\x07\xc9\x0c\x89\xc1\xcd\xc2\xc8\x26\xa9\x6a\xa3\xc2\x5e\x06\x7b\xc8\x74\x4f\x4f\x57\xa9\x21\x7b\xf5\x6f\xac\xab\xbd\x41\xb4\xed\xfe\xa0\x96\x9e\xf4\x8b\x99\xae\x10\xc8\x5e\x68\x68\x61\x5b\x9d\x6a\xd5\xd9\xab\x7f\x61\xe7\x81\x8f\xa4\xed\xc1\x68\x16\xc7\xae\x90\xbe\x3a\x48\x68\x1a\xd0\x17\x12\x10\x7e\x28\x58\xb2\xcc\x7d\xaf\xb2\x64\x51\x1a\xd3\x1f\xd6\x28\xfb\x26\x77\x2a\xe7\xfa\x8b\x8d\x2d\xb2\xc1\x24\xa6\x8a\xc2\x15\xd6\x79\xfb\x36\x6e\xe5\xf2\x03\xb4\x6d\xd6\xec\x8c\xbb\x13\x06\x1b\xd3\x56\x1a\x13\xdb\x04\x3a\xb9\x04\x24\x63\x58\xd5\x64\x6e\x7e\x6f\x00\x0c\x88\xc0\xdf\x1d\x61\x6b\x07\xca\x20\x19\x04\x31\x48\xe5\xc4\x4c\xea\x0f\xf4\xa4\x9d\xfe\x28\xd7\xfe\x4d\x59\xd3\xfb\x8c\x0d\x41\xc1\x16\x27\x8a\x0c\x82\xd4\x12\xb3\xbc\x12\x2f\x20\xd4\xe7\x11\x08\x6f\x69\xb6\xca\x20\x50\x99\xe9\x15\x96\xef\xf3\xb2\x1d\x3f\xb2\x0c\x02\x63\x01\x86\x64\x30\x02\x36\xfc\x59\x11\x06\x5b\x56\xd5\x7b\x4f\x73\xe8\x8e\x85\x11\x0b\x5c\xf8\xf3\x80\x9f\x03\xe3\xc4\x25\xf5\xf8\x78\x37\x96\x41\x98\x70\xef\x11\x0e\x2d\xb5\xf6\x33\x2e\x6d\x4f\x32\x08\xc1\x76\xf6\x9f\x4a\xf7\xf2\xc6\x59\x7f\x19\x84\x46\x5a\xde\xb5\x6e\x43\x72\x50\xe7\x45\x8c\x83\x0c\xe2\x48\x93\x89\xbe\xef\x49\xf0\x46\x7e\x9c\x0c\x78\x14\x67\xb1\xef\xc2\x25\x5b\x91\xff\xbb\xf3\xca\x9f\x88\xb9\xf4\xb6\x5c\xb5\x6d\x85\xed\xdb\xf4\x9c\x24\xb5\x18\x1f\xb7\xdc\xbe\xc1\x97\x92\x2d\x8b\xff\x2e\xe7\x1a\x65\xc0\x53\xc5\x71\x88\xdc\xf5\xed\xe1\x58\x10\xd3\xc4\x28\x90\x90\x01\x57\x36\x65\xf2\x8f\x09\x68\x56\x06\x49\x68\xa4\x23\xbc\x20\xaf\xf2\xcb\x44\x64\x6f\xf8\x65\x90\xf2\x94\xe4\x76\x3e\xaa\x16\x77\x95\xb5\x3d\x4f\x35\x96\x9e\xf9\x57\x06\x59\xa4\x28\xaa\x68\x4e\xb2\xf1\xca\x6a\x8b\x1e\x94\x0c\x32\x69\x39\xde\x9b\xb7\xea\xd3\xb3\x73\x8d\x16\xa9\x0c\x32\xdf\xec\xbb\xd7\xd8\x80\xc9\xa1\x6c\x5d\x7a\x22\x8c\xdd\x10\x11\x25\xa6\x57\x0e\xdf\xd3\xcc\x9c\x88\x79\xc8\x40\x80\x96\x0e\x03\xf1\xf1\xad\xf2\xae\x8f\x0c\x20\x66\x44\x91\x7b\x5a\x90\xee\xf2\x43\x92\xd8\x52\x13\x40\xab\xde\xe6\xf8\xa7\x31\x00\x6d\x76\x9e\x54\x76\xe3\x5d\x69\xfd\x54\x55\x85\x93\x01\x9c\x56\x81\xfd\x50\x34\xa4\x4d\xf6\xe1\xf2\x07\x37\xf9\x82\x98\xd2\x10\x58\x8f\xbf\x85\x0a\x32\xe9\xea\x54\xd7\x28\xf3\xf6\xa1\x2a\xd5\x14\x72\x2a\x03\x95\x31\xc2\x35\xbb\x5e\xd2\xe9\x7a\x56\x59\x46\x2e\x35\x15\xbc\x5f\xca\x1a\x3b\xcf\x72\xde\xed\x30\x7d\x32\x85\xa9\xe5\xaf\xab\x5a\x28\xbe\x57\x85\xee\x42\xd7\xc9\x45\x75\x62\xe8\xae\xca\xea\xb2\xc7\x4c\x06\x3a\xb5\xf5\xb9\x2e\x82\xd9\xad\xd7\xfd\x49\x92\x73\x17\xe2\xec\x23\x36\x66\xd9\xe9\x9f\x04\x83\xd0\xd8\xf6\xb6\x4d\x5d\x57\xe3\x44\xac\x0c\x03\x06\x08\xd3\x22\x5c\x1f\xc8\xcb\x30\x90\x8c\x98\xfd\x9e\x9e\x37\xfb\xed\xea\x6e\xb3\xbf\x7a\x7c\x78\xd9\x12\xd7\xee\x7a\xe3\x99\x17\x65\x18\x0a\x93\xb8\xc5\x64\x73\xb4\x33\xa9\x7f\x19\x86\xa8\x53\x27\x21\xa6\x4e\xe8\x05\x30\x7d\x5e\xef\xa9\x2a\x8a\x51\x5e\xcf\x9d\xc3\x32\x9e\x72\x0b\x69\x3e\x0e\xbd\x51\x32\x8c\x98\x6d\xea\xd3\xa8\x88\xfe\x61\x4e\x88\x26\xc3\x28\xb2\xc2\x00\x2d\x91\x42\xcf\x2a\x9d\x32\x8c\xb3\x8c\x5a\x87\xf7\x25\x7e\xce\xa8\xed\x7e\xeb\x83\xca\x90\x67\x91\xb1\x85\x90\xab\x6e\x5e\x7b\xff\xbc\x3b\xa0\x35\xf7\x81\x26\x3d\x9e\x05\x88\xcd\xd2\x35\x32\xe4\xa0\x32\x74\x91\xfd\x55\x55\x4d\xf3\xd8\x32\x4c\xa2\xc0\x0b\x67\x74\xb1\x4c\xde\x6f\x07\x61\x22\x34\x81\xbe\xaf\xf3\x63\x51\x1d\x60\xef\xda\xf2\xf6\xc7\x1e\x25\x24\xc3\x94\xa7\xe4\x32\xd1\xac\x5c\x48\xe2\xcb\x30\x05\xe1\xd4\xb1\x9f\x8b\xe3\xec\x1b\xa5\x2a\x53\xca\x27\x5c\xd8\x40\x78\xea\x0f\x63\x40\x1c\x0a\x0f\xa7\xa2\xc8\xcd\xf9\x6f\x95\xdc\x65\x98\xa5\x56\x79\x6e\x2f\x4f\x79\xa1\xb7\xd8\xb6\x05\xfa\xa6\xd3\xc9\x9d\x09\x1e\x99\x41\x56\x8a\x74\xd3\xdc\x11\x88\x53\x4a\xe0\xff\x78\xbc\x7b\xb9\xdf\xec\x19\xef\x0f\x70\xa0\xc8\xdc\x14\xf9\xb1\x6f\x23\xde\x7e\xe6\x9d\xc5\xa9\x06\x9f\x5b\x86\xa0\x13\x8a\xe3\x5e\xa1\xc5\x3f\xf1\xdc\x9f\xaf\x0d\xf9\xc5\xd7\x2f\xcf\x2b\x42\xbc\x5f\x6d\x6e\x1e\x9f\x37\xfb\xe7\xcd\x76\xd7\xfd\xfb\xf2\xb0\x7d\xbc\xbb\xee\x47\x9b\x8c\xac\xf3\x8e\xaa\x5b\xee\x8f\x92\x85\x14\xb0\x3f\xa3\xa1\x28\x70\x31\x75\xe6\xc7\x0a\x41\x78\xec\xbc\x71\x08\xaf\x2e\x4e\xa5\x0c\x3d\xf5\xff\xf4\xa9\x3a\x19\x2a\x11\xf1\xb0\xd7\x5e\x78\x80\x36\xff\x70\x75\xe3\x25\x94\xa8\x0c\x95\x0a\x28\x5d\xd4\x45\x87\x45\xf5\x41\x5d\xce\x94\xb2\xbf\x7b\xfc\x31\x13\xb1\x5a\xe8\x11\x19\xee\x50\x87\xca\xea\x90\xe7\x58\xef\x6b\x68\x71\xdf\x3f\xa8\x8e\xb9\x71\x45\x07\x42\xbc\xcd\x58\xd1\xff\x63\x6c\x53\x74\x6a\xa8\xcd\xee\x13\x75\x37\x45\x07\xa6\x43\x19\x6a\x83\xd6\x0f\xea\x66\xc3\xad\x8e\x96\xfd\xaf\x10\x79\x4c\xde\x9c\x75\xbb\xfa\xbe\xef\xe9\x53\x23\x4a\xde\xcb\x98\xfe\xc4\xdc\x1a\xd3\x2e\xe2\xf0\xfe\x55\x68\x92\x80\xf0\x87\x37\x90\x17\x79\xf9\x7a\x8d\xc7\xa2\x3a\x0f\x5c\x73\x92\x05\x5c\x79\x97\xe4\xba\xfa\x2c\x7f\x54\xad\xcd\x5f\xb8\xad\xd2\x79\x0d\xa1\x5b\x9e\x2c\x0c\xa2\xb4\xaf\xca\x61\x33\x6f\xc0\x95\x8c\x85\x8a\xfa\x6c\xbe\x83\xc6\x86\xf2\xf3\x93\x7b\x66\x2c\xc4\x98\x14\x84\x4f\x58\x8c\x72\x34\x92\x31\x9d\xd2\x3a\x79\x7a\x7e\xbc\x7f\xa4\xc9\xf8\xf4\xfc\xf8\xed\x79\x75\xef\x07\x44\x18\x11\x18\x17\xea\xfa\xb7\x7e\x72\x37\xd2\xa4\x2e\xb9\x49\xe5\xf1\x6e\xc2\x5a\x9f\x6a\xf4\x91\x58\x1c\x64\x54\x5d\x7b\xda\x3c\x77\xa6\x7c\x7f\xbd\xb9\xbb\xbd\xbf\xdd\x79\x4c\xa2\x64\x31\x67\x99\x73\xb7\x49\xd8\xf4\xda\x55\x16\xc8\xdc\x5e\x39\xe5\xac\x91\xb3\xc4\x62\x13\x10\x3d\x4f\xe5\xbb\xac\x9b\x31\x6d\xbc\x64\x9c\xdb\x98\xd8\xc5\x89\x8e\xbc\xc3\x12\xc8\xe0\xd8\x9a\x32\x9e\x18\xc2\x55\x93\x92\xfc\xda\x71\xba\x3d\x39\x41\x33\x3f\x46\x86\xd4\x06\x7c\x5d\xc3\xe7\x33\x82\x3e\xef\xaa\x27\x38\x57\xa7\x76\xbc\x05\x66\x0b\xff\x3d\x31\xb8\x8c\x4b\x1d\x7a\x4f\x2e\x5f\x86\x70\x48\xc6\x8d\xa6\x14\xf5\xf6\xf1\xfa\xf6\xe5\x7e\xc4\x32\x2f\x59\xc2\x02\xaa\x23\xfc\x03\xea\x6a\x5b\x20\x2e\x87\x9e\x92\xa5\x18\xfa\x02\x65\x31\x5a\xc7\xd3\x9b\xc9\x02\x45\x39\x53\xaa\xc9\xab\xf7\xb1\x6a\xda\xf2\xa7\xce\xd2\x84\x0a\xbe\x07\xc8\xcb\x1b\x90\x75\xae\x26\xf8\x44\xc9\x32\x15\x19\xe6\x55\x8b\x3a\x1f\x67\x69\xdd\x33\x21\x44\x86\x33\xaa\x7d\x77\x08\x78\xa8\xc3\xa9\x0a\xa9\x25\xef\x9f\x0d\x4b\x75\xe0\x54\x69\x7f\x50\x1b\x7e\xcf\x2c\x3a\x7f\x82\x8b\xe6\x03\xc9\x00\x25\x11\x63\xbb\x7c\x72\x43\x8c\x6d\x43\x0b\xc1\xcc\x56\xfd\xf7\xff\x0c\x5d\x39\xb3\xe7\x90\x1a\xa9\x81\xa3\x1b\x9f\xb7\x67\x0b\x51\x9d\xec\xfd\x4c\x71\x20\x04\xc9\x1b\x34\xcf\x50\xea\xea\xd0\x1f\x40\x46\x84\x2e\xd7\x88\x7a\x5d\x54\xcd\x30\x1b\x15\xea\xd0\x7a\xc1\xf8\x91\x57\xa7\x86\x50\x9e\x7d\x86\x91\x8e\x13\x07\x93\x6d\xf8\xac\x46\xa2\x22\x93\x1d\x78\x94\xec\x5f\xfe\x98\x3a\x0d\x23\x74\x8c\x39\xcd\xcc\xae\x68\x95\x25\x63\xee\xb7\xcb\xe8\x5d\x32\x8d\x21\x55\x98\x5d\xaa\xcf\x81\xee\xed\xa4\x9f\xa0\x98\x86\x37\x8f\x89\x20\x5c\xe7\x5b\x75\xc4\x25\x4e\x96\xb1\xbf\xcd\x50\xc6\x04\x8a\x78\x7c\xd8\xec\x9d\xd5\xf8\xa3\x3f\x24\xa8\xdf\x32\x3f\x1c\x7d\xbb\x4b\x63\x6b\x8b\xc3\x08\x43\xd6\x64\x5d\x35\xdd\x13\x4c\x97\x49\xbf\x00\x4c\xc8\x5d\xa6\x0a\xf4\x3e\x8f\xbc\x1d\x67\x26\x62\x04\x53\xdf\x3c\xae\xb7\x8b\x74\x47\xe3\x1b\x8d\x02\x8e\xde\x89\xba\xaa\x4a\x6d\x31\x42\x93\x77\x15\x05\x59\x4c\x72\x91\x36\x93\x58\xcf\xb3\x40\x32\x0a\x74\x2a\x92\x21\x67\x36\xaa\x31\x4d\x26\x7e\x14\x26\xa6\xef\xd2\x22\x10\xcf\x82\x0c\xa7\x1b\xca\x64\x62\x26\x7d\x70\x3f\xd7\xcb\xc6\x22\x8a\x82\x94\x99\x5e\xa4\x6c\x57\x59\x42\x89\xfe\x65\x46\x91\xb6\xca\xa9\xa7\xf2\x08\xa7\x66\x94\x64\x93\x51\x84\x29\x11\xac\xde\x57\x1f\xb8\x1c\x8e\xcc\xea\xa2\xee\xbc\x38\x10\x94\x93\xe9\x16\xce\x13\xaa\x93\xf7\xb6\xa3\x98\x47\xb1\x1a\x60\x9e\x8f\x66\xea\xb1\x46\x31\x72\x2a\x6f\x13\x74\xec\xea\xe5\xd9\x5b\xc6\x88\xa7\x19\xb9\x6d\x87\xea\xe3\x82\x98\x7a\xf6\xbc\x5c\xda\x46\x98\xfb\xbc\x6c\x6f\x1f\xae\xff\x6a\xb4\xeb\xc6\xaa\x49\x5c\x7c\x57\xc3\x07\x16\xa4\x05\x78\x7e\xc6\x86\xd2\x65\xcb\x0e\x58\x94\x84\x21\x52\x0b\x78\x17\xea\xfe\xf4\x6d\xf5\x17\xb4\x32\x7e\x34\x30\xaa\xed\x2b\x6a\xca\xb8\x20\xed\x9c\x0d\x46\x4e\x96\xc7\x76\xdc\x6c\x7e\xd9\x3c\xac\x43\xc7\x34\x93\xf6\xfb\x51\x1c\x1a\x25\x68\x7c\x4a\xf4\x1e\xca\xf3\xae\xfa\xf3\xac\xe6\x21\x43\x94\x06\x92\xdc\xdc\xaa\xd6\x58\xff\x84\x86\xea\xe5\x7f\x2f\x60\x89\xd2\xd0\x78\xf4\xe3\x3d\xfc\x5a\x82\x26\xc9\x28\x85\x30\xb1\xf0\xbc\xf3\x4a\x53\xd7\x29\xd5\x4f\xa6\x9f\x39\x13\x82\xb3\x9e\x93\xcc\x99\x40\xff\xa9\x33\x89\x21\x75\x71\x54\x6d\x6e\xce\xeb\x37\xa8\xfb\x98\x24\x12\x69\x98\x0c\x84\x32\x0f\x55\xf9\x8c\x47\xb4\xd2\x0d\x3f\x8e\xc6\x1a\x89\x79\xc3\x47\xff\x30\xd3\x8d\x22\x12\x8e\x3d\xb0\x25\x49\xdd\xf9\x7c\x5e\xfe\x32\x42\x65\xdc\x78\x72\xec\x16\x8a\xc7\x4f\x17\xa7\x3f\xe3\x11\x72\xbd\xab\xee\x6c\xa9\x73\xfa\xb8\x02\x81\x7e\xe9\xfe\xf6\x61\xbf\x5a\xaf\x37\x4f\xbb\xfd\x66\xf7\xbd\x77\x8e\x22\x88\x02\x9f\x50\x74\x5a\xe0\x94\x51\xa7\xef\x3b\x5d\xf5\x90\xa6\x54\x14\xa4\xf5\xb1\x7a\xbe\x1a\xb9\x58\x91\x64\x56\x55\xdc\x17\x86\xf6\x71\x7f\x24\xd3\xbe\x21\x79\x94\xf9\x1b\x48\xc2\xdc\x30\x85\x56\x99\xdb\x7d\x58\x9b\x55\xf0\xd7\x50\x86\x93\xc6\x93\xd7\x8b\x20\x0a\x89\x2f\xe6\xaf\x0e\x23\xe5\xdc\x20\x07\xc7\xf8\x8a\xab\x48\x46\x9a\x03\x99\xd7\x6f\x97\xbc\xc9\x32\xd2\x22\x22\x99\x88\x7f\xed\x7c\x86\x22\xc2\x38\x10\xe0\xf0\xd2\xaf\xaf\x5f\x64\x21\x23\x8c\x2d\x4c\xeb\xc6\xaa\xad\x0e\xae\x71\x84\x5c\x06\x30\x15\x17\x8d\xe2\x49\xb6\x2b\x32\x81\xe5\xbd\x39\xe4\xe5\x3e\x2f\x3f\xfc\x99\x86\x47\x91\x5d\x95\xdd\xb4\x1e\xa1\xef\xbb\x43\x92\xf8\xc8\x6c\x97\x9a\x5f\xdc\xfe\xa0\x09\x88\xfb\x76\x77\xbb\xdb\xae\x1f\x7d\x1b\xb4\x8c\x43\x13\x53\x39\xf9\x08\x67\xac\x27\x68\x4e\x19\xb3\xd8\x16\xfd\x5d\xba\xa8\xdb\xe7\xfa\x43\x1a\x05\xf3\x74\xfd\xb2\x51\x75\x2e\xad\x0e\x05\x01\x35\x86\x97\x17\x47\x10\x86\xe8\x5d\xee\xe6\x6d\xd6\x67\x2a\xe3\x38\x90\x96\xd6\xe0\x54\xae\xab\xc3\xf1\xd4\x22\x55\x46\xc6\x89\xf0\x38\xe6\x81\x8f\x68\x9e\xaf\x7b\x1d\xf8\xd9\x75\x44\x9a\x31\x9f\x22\x3e\x1c\x4e\x9d\xb3\xb4\xa4\x9c\x25\xe3\x18\x03\xca\xf5\xdb\xa8\x9c\x7a\x98\x1f\x4e\x94\x92\x9b\xcc\x9f\x98\x33\x24\x0c\x41\x25\xff\x17\x55\x7b\x5d\x9d\x64\xdf\x63\x20\xbb\x1d\xc4\x84\x7e\x0b\x51\xf5\xe9\xaf\x1b\xfc\xfb\x13\x2d\xf3\xe6\x7a\xa2\x33\x25\x63\xae\x03\xa1\x07\x46\xd2\x6f\x70\xb0\xc8\x1f\x77\x38\x0d\x75\xda\xf3\xb5\x43\x61\xe3\xc2\x09\xbe\x63\xd9\x5a\xc6\x29\x63\xa1\xf0\x8a\xe8\x24\xb1\xda\x1f\x50\x94\xee\x93\xd8\x32\x8d\x45\x0b\xb3\x3a\xb4\x8c\xd3\xc4\xf6\xbf\x6b\x2c\xf2\x0f\xa7\x69\xd0\x4c\xf8\x37\x67\xbf\x95\x85\x9c\x10\x92\x8e\x7e\x7b\x44\x9e\x24\xe3\x2c\x65\x44\x63\xd7\xb4\xd5\xf1\x38\xc0\x2a\x65\x9c\xe9\xd0\x32\x43\x3a\x7d\x9b\xea\xa9\xc6\x43\x7e\x3a\x4c\xad\x57\x2c\x59\x64\xd1\x97\xcb\xce\xd2\x69\x4e\x8c\x24\x63\x99\x4a\xda\xbf\x8a\xbc\x69\x6f\xaa\x7a\x4c\x2d\x35\x5d\xfd\xb1\x0a\x82\x11\x0c\x14\x0b\x6c\x2f\xa8\xe7\x64\xac\x84\x15\x91\xb0\xe8\x25\x2c\xf5\x97\xad\xc7\x32\x56\x52\x5b\x65\x9b\x1a\x94\x63\x21\xdf\xb6\xd5\xd1\x7a\xb8\x6e\x8c\xd7\x6d\xb8\xd9\xae\xa3\xfe\x6f\xb1\xf4\xfd\x27\x2e\xe4\x98\x97\xa6\x97\x3f\xb2\x4e\xad\x92\x50\x0b\xaf\x7f\x2c\xb9\x42\xb1\x16\x48\x85\xd0\x1e\x76\x61\x6f\xca\x9b\x8e\x18\x23\x43\x0d\x9b\xa0\xf5\x08\xbf\xe9\xe2\x6a\x1e\x30\x49\x58\xb0\x4d\xfb\x26\xb1\x7d\xac\x41\x15\xe3\x16\x88\xc5\xc9\xc0\x03\xa6\xb5\xf0\x2f\xd5\x4b\xaa\xf7\x2a\x53\xd3\xaf\xcb\x83\x38\x0a\x69\xaa\xe5\x4b\x8c\xc4\x7e\x90\x4a\x52\xcf\x1e\x43\xde\xcd\x44\x0b\x5f\xf2\x30\x00\xda\x1c\xec\xb6\xec\x9a\x35\xbe\xb8\x56\x98\x24\xe8\xab\x9e\xd6\xa3\x59\x92\x83\xf4\x83\x45\xe2\x05\xc0\x49\xfc\xfb\xff\x5d\xb9\xe6\xff\x87\x7f\xfd\x7d\x68\xa4\xaa\xd6\xed\xf5\x66\x75\xd7\x3f\xb5\x89\xa8\x01\xa8\x47\x62\x20\xf8\x00\x90\x33\x05\x5e\x45\xe3\xb1\x7e\xa5\x9d\xad\x59\x5f\x9a\x44\x1e\xa5\x16\xa3\x73\xa0\x0c\x70\x73\x8d\x85\x27\x02\x94\x3c\x0e\xd8\xd0\xfb\x7c\x03\x75\xdb\x78\x59\xca\x7e\x04\x43\x13\x8c\x92\x33\x0b\x6a\x00\x92\xf3\xc8\x4a\x3c\x5a\xab\x3b\x61\xd0\xff\x92\x85\xe7\x2b\x8b\x3a\x9e\xda\x3c\x81\xc4\xe6\x74\x4e\x50\x43\xd9\x22\xea\xab\xd3\x19\xeb\x49\x83\xb6\xe4\x29\xcb\x84\x8b\x69\x9a\xca\x2a\xb4\x3a\xdd\x0b\xc7\xc8\xae\x6f\x20\xef\xf3\x3a\x3c\x8d\xac\x84\x8f\x55\xb1\xe8\x4c\x87\x75\x0b\xa0\x28\x24\xa8\x0b\x01\x2e\x7f\x16\x8f\x22\x0b\x4a\xa2\x9c\xe9\x84\x94\x51\xf2\x8c\x69\x2a\x85\x1c\x5e\x0f\x97\xf2\x95\x92\x67\xb1\x6d\xd5\x26\x52\xda\xb5\x13\xbd\x9d\x26\xf2\xa7\x6f\x54\xc8\x98\x9a\x7a\x8e\x70\xee\xcc\xd5\x4f\xcc\xe7\x1f\x46\x68\xdb\xf6\x73\x0d\x75\x0e\xcf\x55\xfb\x5e\x8d\xb7\x1c\x0e\xa1\xa5\x7f\x3c\x9c\x89\x89\x19\xfb\x3b\x85\xd8\x50\x7c\x74\x2c\x40\xe1\xd5\x02\xae\xe8\x6f\x54\x23\x39\xa4\xb6\x0d\x1a\x7f\xb5\x58\x6a\x7a\x2a\x0a\x4b\x2d\xe5\xef\x12\xa0\x5c\x72\xd0\xc6\x63\x18\xa9\xb3\xfb\xbe\xd7\xfb\x5c\xec\xd8\x96\x5c\x46\x48\xf9\x39\x3c\x60\xfd\x8a\xa5\x3a\xf7\x98\xd2\xcb\x6a\x25\x97\xdc\xb2\x8f\x5b\x25\xa3\x3f\x47\x92\x37\x92\xcb\xc4\xea\x09\x1d\xce\xd4\xeb\xe2\xa3\x74\xae\xa2\x8c\xf5\xb3\x7f\x7f\xbb\x7e\xdc\x37\x23\xf4\x84\xe4\x3a\x92\x4a\x0e\xa4\x69\x5e\x1b\xbb\x3f\x1c\x07\x68\x01\x55\x36\xc2\xf1\x7f\x4e\x04\xb8\x15\xb3\x19\x3a\xb7\xa6\x8f\xa6\xb5\x0c\x8c\xc7\xa1\x3b\x75\xa8\x85\xf2\x07\xc7\x20\xa1\x99\x7d\x57\x95\xaf\x3b\xac\x0f\x4e\x8e\xbd\x8b\x3b\xbf\xa6\x03\x9e\xbd\x77\x8c\x34\x39\xaa\xba\xda\xbd\x75\x06\x75\xb2\xc0\x90\x67\x54\xb3\xba\x2d\x1b\x1c\x57\x8c\x39\xa6\x19\xbd\xb3\xef\xd0\x6c\xf3\xd7\xd2\x6a\x8c\xf9\x7a\xc1\xf4\x61\x50\x68\x74\x86\x28\x0a\x56\x35\x51\x49\x34\x63\xc6\xb3\x6e\x08\x12\xf6\xac\x7d\xcb\x6b\xfd\x13\xd1\x6f\x94\xdc\xc4\x09\x65\x06\xaa\x09\xdb\xcc\x6c\xb6\x19\xc1\x29\x6a\xb8\xdb\x6e\x46\xb7\x98\x04\x0c\x29\x95\xf9\xa3\x2a\xde\x1b\x35\x3a\x10\x8a\x4c\x6b\x6f\x19\xd7\xa0\xde\xd0\x42\x48\x2c\x2b\x1f\xd6\xdf\xa0\xe9\xdc\xdd\xe6\x27\x34\xdd\xa2\xef\xd7\x54\x12\x31\xcb\x96\x26\x5b\xaf\x26\x2b\x93\x98\xf9\xce\x24\xd4\xb6\x3b\x64\xdc\x59\x25\x93\x58\x59\xb0\xd2\x9f\xb7\xf7\x9b\x7f\x2e\x97\x52\x93\x58\xa5\x94\x4c\xb5\x74\x3e\x14\xfb\x13\x7f\xa4\xf5\x4c\xc7\x1f\x24\x89\x31\xf6\x3a\xad\xbb\x01\x88\x73\x75\x1e\xfd\x9f\xdb\x59\xee\x27\xe1\x51\x4c\xa9\x76\x2b\x2f\xb7\xf7\xed\xe4\x55\xdd\xdf\x64\x2a\x91\x1e\x62\x75\xf3\xf2\xb0\x6c\xdf\x92\x4c\x66\x89\x23\xc0\xf4\x64\x0d\x7d\xa3\x97\x37\x1e\x89\xe0\x31\x95\x84\xae\xaa\x53\xdd\x8c\xdb\x3f\x65\x22\x44\x42\xf5\xbe\xe6\x13\x8e\x3f\xf3\x72\x94\xc2\xba\x44\x2a\xca\x04\x82\x8c\x90\x17\xdf\x6a\x44\xfd\x94\xf7\x37\x0a\x81\x21\x46\xa4\x16\x9a\xf7\x66\xf2\x9e\x21\xb4\xe2\xba\x2d\x36\xed\xee\xad\xae\x3e\x9f\x91\x12\x98\x9b\xd2\x54\xb5\xc2\x67\xfc\xc8\x1b\x92\x0f\xf7\xe3\x39\xa7\x98\x68\x7f\xc8\x9d\x30\xfd\x17\x0f\x0e\x3a\x41\x33\xa7\xb2\xbd\x78\xc7\x60\x22\x6d\xab\xd9\x87\xbc\x15\xfd\x8f\x18\xee\xc5\x48\x1d\x23\xfe\x13\x9c\x2f\xe4\x8d\x64\x22\xc3\x88\xe4\xa0\xda\x1c\xeb\xd0\x9f\x2c\xa3\xcc\xf3\xa3\x92\xe3\xed\xf6\x8c\x9b\xaa\x5e\x57\x6e\xa5\xcd\x02\xa1\x44\xc6\x49\x68\xdb\x66\x4b\xbd\xd9\xad\x67\x47\x55\x68\x29\x3b\x9e\xbd\x14\xbf\xff\x25\x15\x5b\xba\x2c\x79\xaa\xcb\xdd\x5b\x3e\x4b\xd6\x26\x3a\x08\x09\xe2\xb7\x29\xf5\x7e\x6e\xe5\x12\xcd\x02\xdb\xbd\x73\xc4\x05\xad\xd2\xc5\x4d\xe2\x77\x5b\x47\xa2\x33\x95\xa6\x23\x55\x83\xa7\xea\x13\x6b\xd4\x2f\xbe\x86\x9f\x60\x6a\x3b\x43\x1c\x34\x72\x94\x0c\x4f\x4c\x60\xc8\x6c\x12\x9b\xf7\xaa\x28\xd6\x50\x6a\x82\x52\x34\x57\xe7\x6d\x09\xc7\xe6\xad\x5a\xc0\x89\xc9\xc4\x84\x29\xe5\x54\xb6\xf9\xe1\x58\xe0\xea\xff\x4e\x40\x21\x28\x39\xbb\x5f\x24\xdf\x12\x93\x28\x2a\xb4\x1c\xeb\xaa\x25\x8d\xad\x6b\x2c\xab\x83\xe3\xeb\x7d\x34\x8f\x75\xfe\xda\x5b\x9c\x34\x60\x82\x56\xe0\x2b\x1c\x90\x48\x26\x8e\xbe\xa7\xbe\x3b\x66\x2b\xe8\x3a\x6f\x54\x2f\xac\x2b\xd3\x20\x0d\xa8\x1a\xe8\x04\x5c\xee\xa1\x3c\xcf\x33\x69\x69\x00\x96\xff\x73\xaf\x6c\xf4\xfc\xf4\xe3\x69\x24\x6e\x3a\xef\xeb\x90\x69\x98\x65\x94\xbb\x6a\x5c\x2d\x63\xac\x18\xfe\xdf\xcc\xd5\x21\xe2\x51\x2b\x47\xe6\x12\xec\x7d\x90\x93\xf8\x9f\x0e\x21\x55\xd1\xa5\x4c\xdc\x5f\xf9\xc6\x93\x09\x99\xb2\x24\x0b\x54\x9f\x1f\xb8\xdc\x40\x96\xb2\xe1\x29\x93\x21\xf9\xbc\x55\x61\x33\xe1\x4f\x75\x65\x7a\x03\x91\x46\xa1\x65\xef\xdb\xfc\x52\x50\xe4\xf2\x54\xf7\x07\xd2\x20\xb2\x28\x8b\xe2\xb9\x2a\xf0\xa6\xaa\x5f\x9a\x2f\x90\x38\x69\x1c\x25\x90\x0e\x2c\xe2\xcd\x75\x5d\xe5\xba\xb9\xed\x43\xa6\x34\x06\xde\x73\x29\x0e\xf9\xa5\x47\x63\x13\x05\xc3\x30\x19\x53\x4d\x92\x2a\x6c\xfb\xed\xcb\xd3\xd3\xdd\xbf\xf6\x8f\x3f\x1f\xfa\x8c\x59\x1a\x6b\xa5\x2d\x47\x8f\xe5\x17\xfd\xa2\x83\x4d\xa6\x3c\x60\xb4\x06\xa9\xdf\xd2\xf9\x7a\x53\xd8\xb4\x4c\x39\x30\x9a\x65\x24\x73\x70\xdf\x4f\xb0\x44\x67\x64\x79\x7b\x9c\xac\xfb\x7b\x9a\x06\x54\x84\x78\xfa\x7f\x68\x7b\xb3\xe5\xc6\x91\x24\x0b\xf4\x77\xea\xa1\x1f\xb0\x04\xb6\x47\x8a\xa2\x52\x9c\x92\x44\x36\x49\x65\x56\x75\xdb\x18\x2d\x16\x0f\x11\x2d\x10\xe0\x00\xa0\x94\xac\xaf\xbf\x06\xf7\x08\x6c\x04\x95\xd5\xd7\xee\x9d\x87\xc9\x6a\x21\x00\x62\x89\xf0\xf0\xe5\xf8\x39\x9b\x05\x3a\x37\x84\x85\xd9\x2d\x9f\x17\x6d\x99\x3c\x8a\x22\x96\x0c\x98\xc0\x96\xea\x76\xaf\xb9\x88\x22\xe1\x62\x8b\x13\xd1\x61\x58\x17\xd6\x1e\x54\x11\xc2\x54\xe6\x45\x7e\xce\xff\x66\x20\x1f\xc5\xcc\x45\x26\x8e\x59\xc9\xdf\x0a\x3a\xab\xf1\xc8\x9f\x7b\x8b\xf8\x2a\x61\xfa\x55\x60\x16\xdb\xeb\x06\x09\x46\xe0\xc4\x96\xb2\x3b\x74\x1e\x70\x14\x07\x9a\x68\xf4\xd3\xf2\xbe\x2c\x4e\x6b\x7e\xb9\x4b\xeb\x6a\xe3\x5e\x2d\xbf\x58\xb9\xfd\x25\xda\xa1\x8c\x8b\xec\x1a\x32\x14\x25\xcc\x43\x87\xbc\x31\xff\x46\x2e\x71\xc4\x3f\x3e\xf5\x46\x93\xd0\xc7\x5a\xe2\x81\x57\xb3\x52\xa4\x35\xa0\xee\xde\x34\x32\x5f\x44\x3c\x24\xce\x90\x0f\x4a\x20\x34\xce\x99\xa9\x06\x99\x01\xd2\x0d\xd0\xd1\x32\xb4\x68\xc5\xdb\xb4\x75\x8b\x64\xe8\x49\x61\x53\x4e\xa4\xd4\xd2\x67\xbf\xb4\xa3\x44\x8c\xa9\x0e\x55\x16\xa7\x95\xd6\x55\x9b\x22\x8b\x94\x13\x62\x3e\x99\x9f\xeb\xe2\xd8\xf8\x44\x43\xc6\xe3\xf6\x15\x2a\x46\xde\xd3\x72\xbe\x7a\x78\xd8\x3e\xae\x36\x8b\xf6\x0a\x91\x4b\x4a\x87\xb8\x89\xd7\x87\x5d\x31\x87\xbc\xae\xba\xb7\xd7\x23\xfb\x11\x91\x52\x11\x1a\x05\x9d\xe6\x69\x75\x68\xfc\xdf\x34\x7f\x23\x36\x2b\x3b\x44\x73\xc6\x65\x2b\xe0\x81\xf8\x89\xf6\x90\x70\x62\xd1\x23\x93\x35\xc4\xe1\x93\xfe\x40\xa4\x15\x44\xae\x21\xb6\xbb\xd9\x0d\x37\xf8\x86\x1a\x02\x64\xe6\x79\x22\x41\xf8\x6b\x15\x1b\x11\x69\x9d\x24\x5e\xc7\xbc\xb6\x85\x2c\xd3\x45\x69\x3b\x6a\xdb\x1f\x8f\x9d\x90\xc4\x06\x0c\xe6\xc0\x3c\x40\xec\xfa\x9c\x9c\xcc\xf7\xf7\x76\x89\x4c\x4f\x91\xd8\x65\x11\x32\x3d\xa3\xec\xf0\x8f\x55\x7b\x05\x06\xe8\x82\x1a\x55\xb6\xc5\xcf\xb4\xaa\x47\x35\x93\xd8\x8d\x81\x13\x82\xf7\xa3\x09\x51\xd5\x4b\xef\xfe\xa6\x26\x6f\xec\x26\x1e\x42\x44\xf7\x1c\x71\x78\x57\x80\x22\x33\xcc\xf3\x42\xa4\x77\x6b\x8d\x8c\x95\x87\x81\x2b\x68\x88\x3d\x23\x84\xc0\xe9\xb1\xb1\xcf\xd0\xd0\xd8\x79\x19\x7b\xb1\x76\x2d\x64\xd8\x12\x63\x9a\x88\xdf\x66\xb9\x87\xd7\xf3\xb9\x83\x98\xe0\xe7\xcb\x6e\xf6\xd4\x77\x8d\x62\xe6\x53\x0a\x55\x66\x45\x95\xe6\x6f\xf7\xbc\x06\x53\x20\x69\x47\x28\x1f\xcb\x4d\xd5\x29\x4b\x6b\xda\x8c\xbe\x2f\xd7\xfb\x22\xcf\x2e\xfb\x7b\xb0\xb9\xfb\x38\x70\x00\x59\x92\x5a\xb9\xbc\x96\x4d\x6f\x95\x4f\x75\x2e\x0d\xbf\x5a\x90\xf8\x58\xb3\x87\xed\x6e\xb6\x5b\x6c\x26\x49\x62\xcc\xd0\xd0\x0b\xb0\x9b\xad\x99\xcc\x8b\x5d\xb8\x95\x45\x09\x77\x17\xe3\xb0\xb6\xdf\x32\x54\x31\xc6\x4c\xf3\xf5\xb7\xf5\x62\xb3\xf8\xb6\x59\xbe\x2c\xf6\x0f\xbb\xa7\xfd\x76\xbd\x58\x58\x8c\x58\x1c\xc5\x1a\x19\xad\x2d\xa3\x2f\x51\xef\x7f\x35\xd9\xe3\x48\x90\x10\xe3\x1b\xd4\x6b\x28\xab\x82\xc4\x5f\xeb\xf3\xc8\x55\x8d\x23\xe9\xf6\x90\x81\xc5\x27\x49\x99\x4c\xb7\x05\x8a\x38\x4e\x7c\x24\xbb\xfd\x57\x2a\x4c\x32\xda\xde\x62\x2c\x1d\x97\xba\xea\x89\xc6\xb7\xe5\x3d\xfb\xb2\x8c\x16\x27\xb1\x67\x35\x50\x67\xad\x8d\x88\xb9\x49\xab\xdc\x65\x67\x90\x87\xd4\xfa\x9c\xb1\xf0\x04\xeb\x39\x04\xad\x91\xb8\x0a\x76\x63\x21\x24\x71\x31\x19\xd7\x74\xf1\xb0\x6b\x2f\x22\x25\xb3\x14\x85\xd8\x01\xdc\x01\x53\x63\x01\x4e\x48\xe1\x74\xa9\x3e\x79\x39\x08\x9d\x62\x01\xb4\xe8\xb1\xe8\x59\xd5\x50\xe6\x85\x82\xd6\xb7\xb5\xa3\xa4\x47\x09\x78\x90\x36\x91\xfb\xcb\xa4\x62\x2c\x23\x89\x4d\x8b\xfd\x07\x6a\x13\x49\x83\x22\xef\x2f\xae\x13\x87\xa4\x46\x49\xbd\x4a\xab\x8f\x36\xb9\x12\xcb\x24\x42\xda\x11\xc4\x70\xd2\x22\x1c\x44\xb4\xb1\xf2\x03\x8c\x19\x8f\xa0\x52\x91\x0e\x02\x93\x58\xc9\xc8\x37\x04\x85\x08\xf7\x41\x36\xe9\x12\x56\xed\x7b\x83\x58\xb3\xd0\x88\xac\x83\xc4\xfb\xb7\xec\x4e\x66\x84\x76\x14\xa2\x3c\xd6\x45\xfe\x57\xda\xd8\xd5\xee\xd6\x74\xe4\x7a\x7d\x2e\xb2\x6f\x3d\x9e\xde\x2b\x99\x9b\xff\x5f\xb2\xba\x89\x13\xba\x11\xa5\x90\x5e\x97\x2f\x3b\xd7\x1d\x52\xab\x8b\xc4\x91\x20\x2d\xde\x09\x3e\xfb\x45\x95\xc4\x75\x43\x0c\x85\x4f\x64\xd1\xa6\xc5\x55\x44\xe2\x7a\x2c\x30\x69\xb5\xdf\x5f\xe6\xd4\x9a\x70\x1d\x81\x26\xae\xaf\x71\x81\xed\x2b\xa8\x47\xbd\x03\x83\x09\x9e\xb8\x3a\xc6\xfa\x2f\x36\x86\xd8\x42\xe3\x2c\xcb\xfa\x19\xb5\xc4\x0b\x24\x5a\xcd\x7d\x85\x42\xe5\xc3\x78\xdf\x8c\x61\x7e\xe2\x81\x75\x31\x8e\x3c\xcd\xad\xac\xef\x43\x51\xce\xca\x3a\x6d\x76\xf7\xfe\x44\x49\x58\xe0\x62\x64\x48\xa8\xec\x31\x1a\x64\xfa\xe9\x59\xe0\xa3\xef\xcb\xab\xaa\x25\xde\x1f\xab\x1f\x88\x24\x50\xb4\xfb\xb6\x24\xbb\x23\xa2\x40\x91\x84\xbe\x24\xcd\x1d\xf3\xc0\x4f\xa9\x68\xed\xb7\x01\xff\x0e\x2f\x19\x26\xae\xa5\x93\x7c\xe2\xb9\x5a\x54\x35\x39\xcf\xa3\xcb\x26\x0c\x1b\x94\x5a\x61\x75\x91\x44\xae\x83\x7c\x60\xe4\xc9\xcc\x48\xcc\xb4\x6a\x8f\x26\xd2\xea\x68\x3c\x16\x35\x64\xd5\xdd\x65\x84\x5c\x35\x03\x13\xdf\xc3\x10\xc6\xfc\xd5\x24\x06\xfb\xdd\x5f\x22\x49\x42\x07\xb3\x13\x04\xf2\x58\xd7\x5b\xae\xe1\x8f\xa7\x1e\xd8\x21\x69\xfe\xaf\xc5\xad\x3e\xa5\xf9\x7b\xbb\xae\x92\x44\x01\x12\x36\x3f\x17\x99\x1a\x40\xad\x86\xf7\x21\x1c\x0f\xa9\xf8\xe0\xa3\x09\x3d\x9a\xad\x73\xda\xc2\x27\xc2\xf5\x55\xdc\xc3\x35\x60\xef\x1f\x54\x23\x32\x52\x3b\x98\xc7\xe8\xee\x3d\x64\x45\x99\xfe\xe7\x4b\xf4\x54\x22\x7d\xed\x19\x0e\xfe\x1f\xbd\x1e\xaa\x44\x86\xd2\x37\x1e\x4f\xaa\x2f\xc3\xa9\x06\xae\x49\x2d\xd7\x87\x3b\x5e\x8d\x99\x3d\xec\x20\x3f\xa0\x9e\x15\xc3\x6e\x85\x25\xf2\xe1\x43\x81\x1f\x61\xea\x73\x97\xd6\x99\xd9\x99\xc6\xc8\xac\x04\xb4\x22\xb9\xd1\x73\xf6\x7e\xbb\xac\xd8\x0c\x93\x8d\xa5\xfb\xe7\xeb\xec\x77\xfb\x08\x5a\x26\x58\xba\xb1\xb3\x72\x5b\x1f\x4f\xd5\xae\xc0\x99\x79\xa3\x78\x48\x67\x72\xc7\x13\xb8\x4b\x3f\x5d\xce\x3b\xa4\xba\xea\x8c\x2e\x77\x18\x6d\x37\x58\x35\x5e\xfc\x3c\x65\xa9\x4c\x6b\xe2\x8d\x25\x17\x82\x94\x11\xfe\xd1\x5b\x70\xf4\xbf\x4c\x6c\xc5\x3d\xdf\x45\x8b\xbe\x4f\xab\x35\x1f\xbf\x13\xee\x01\x91\x9a\x9f\x4a\x38\x51\xf5\xad\x25\x32\x10\xdc\xf7\xb9\xb4\x98\x41\x28\xe7\x67\xbb\x33\x73\x16\x90\x1c\x74\x05\xf5\xea\x08\x6f\x7c\xba\x26\xc0\x99\xa1\x5c\x7a\x5a\x3d\xac\xda\x53\x79\x1c\x85\xad\xce\x90\x25\x83\x6e\x36\xbb\xd6\x89\xe3\x4c\xf8\x88\x54\x10\x69\x59\x1f\xfa\xa5\x5a\xce\xa4\x87\xd8\x82\x0d\x4f\xd1\x3c\x54\xf3\x8c\x57\x55\x2a\xdb\xe3\xc0\xa4\xd3\xa1\x52\x1e\x8a\xd2\x70\xfe\xb5\xc7\x13\xa1\xda\x84\x6d\x3a\x00\x48\xf0\xc0\x0b\xdc\x56\x76\x65\x67\xf4\xbc\xda\x83\x91\x63\x63\xb0\x7b\x5e\xbf\x6e\x9e\x06\x73\x94\x07\x5c\x61\x13\x40\x89\xec\xd3\x2f\xfc\x08\x7f\xa4\x93\xad\xd0\x82\x07\xc2\x63\x34\xc5\x2e\x3d\x92\x2d\xfb\xb9\xc2\x00\x14\xd1\x54\x89\x1b\x1d\xee\x82\x47\xdc\xb5\xba\x51\x78\x85\xef\x45\x76\x3e\x82\xe0\x15\x28\x8c\x0b\x9b\x1d\xe5\xa1\x28\x51\x1e\xc4\x1d\x7d\xf0\xd8\x49\x90\x4e\xea\x58\x9d\x85\x25\x11\xf8\xc7\xb9\x47\x26\x20\x78\xcc\x09\xf0\x9f\xe6\x15\x94\xf5\x75\x15\x9a\xc7\xc2\x47\xca\x35\x83\x52\x7f\x4e\x15\xfc\x1c\x4c\xda\xc4\x71\xb0\x2d\x9e\x4a\x8c\xb3\x5c\xed\x7a\xec\x0f\x57\x9b\xc4\x28\xf0\x1e\xde\x6f\xe2\x82\xcd\xfe\x3c\x16\x47\xe0\xea\xe3\x9a\xc8\x14\x15\x0a\x90\xed\xec\x2f\x28\x8b\x07\x80\x6a\xdc\x13\x36\xed\x77\xf2\x44\x6a\x64\xcf\xab\x8a\x4c\xdd\x81\x2e\x4a\x20\xe5\x86\x31\xe9\x87\xe0\x89\x92\x08\xd9\x52\x80\x24\x93\xd8\x5d\x47\xc4\x59\xa3\x39\x9f\x68\xe2\xc5\xef\x95\x00\x1e\x78\x9a\xfd\x42\x0f\x52\x70\x1e\xf9\x2c\x68\x1b\xc7\xef\x53\x9b\xc4\xb3\x79\x43\xb7\x1b\xc8\x2d\xab\xca\x23\x94\xc5\xac\x36\x59\xff\xd1\x26\xc9\x39\x37\xe2\x5b\x96\x35\x75\xe0\x42\xda\x41\xd2\x85\xd8\xf4\xe0\x99\x86\xea\x49\xd9\x50\xa4\x71\x8d\x4c\x8b\xc6\xf6\x2c\x46\xbd\x9f\x70\xa3\x2d\x8d\xcb\x88\x48\xbe\xd1\x8f\x39\x9e\x11\xcd\xd1\x6d\xd5\xc3\xb1\x8a\x25\x98\x2f\x3e\x35\xd3\x76\xef\x53\xcf\xa0\xfd\x79\x15\xba\xd8\x1b\xb1\x9c\xaf\xfe\xd5\xfe\x4d\xc4\xf8\xca\xce\xa6\xdb\x11\xdb\xc3\xa6\xb2\x58\x37\x3d\x3e\x0e\x1a\x90\xeb\xb0\x71\x1a\xfa\x40\x27\xae\x0d\xd9\x19\x5d\x1b\xfb\xb1\xba\x9e\xa5\xc9\x6b\x09\xc7\x95\xb8\x3d\x9b\x77\xb9\x94\xc5\xb3\x45\x6b\xf5\x02\x14\x3b\x58\x3a\xe8\x08\x6a\x03\xf7\xfe\x8e\xe2\xbe\x06\x00\xd1\x0e\x52\x01\x26\xa3\x0d\x6f\xfe\x0b\xa4\x6f\x07\x51\x94\xd5\x6f\xad\xe1\xb7\x11\xa4\x70\x1d\x86\xcd\x59\x0f\x67\xf9\x4e\x79\x21\x5b\xf6\x10\xae\x24\x9b\x68\x4b\x26\x0f\x45\xf9\x90\x7e\xc0\x9f\xc0\xed\xee\x2b\x3c\x57\x22\xe8\x04\x7e\x9e\xb2\xa2\xbc\xf5\x80\x5e\xcc\xc3\x60\x28\xe7\x56\xed\x65\xcf\x82\x0a\x3f\x22\x25\x2e\xdb\x4f\xfb\x84\x12\x71\xc3\x89\xd9\x0c\x32\xa4\x1a\x44\xd4\xbf\x4b\xa1\xf4\x06\xe1\xa6\xdd\x66\x05\x63\x49\x9c\x58\x8f\xc7\xfb\x76\x37\x9c\x31\x22\x70\x04\x96\x50\x3e\x4a\xde\xe7\x9d\x15\x22\x0c\x02\x2c\xf0\xef\x11\x69\x55\x5d\x0b\x97\x0a\x11\x79\x01\x7e\xad\x16\xa0\x3b\x49\x29\xf2\xff\x6d\x80\x21\x22\x1f\xd0\xcb\xf9\x06\xf5\xdd\xf9\xd2\x9f\x70\x22\x52\xbe\xeb\xd8\xac\xd7\xf1\x54\xc3\xde\x6d\xbf\x60\x04\x22\x6c\x05\x6c\x3e\x20\xaf\x8b\x32\x85\xaf\xf9\x09\xad\xb9\x10\x71\x12\x72\xd5\xef\x0b\x9b\x48\x78\x35\x91\x0f\x36\xeb\xee\x8a\xe3\xb6\x25\xa7\x69\x22\x87\x10\xed\xfc\x5d\xd1\xec\x96\x0a\xfa\x8a\x81\xe8\x1e\x10\xc6\x82\x6b\x28\xf7\x4d\xc0\x2f\x8b\x8f\x0e\xeb\xfa\x55\x5d\x49\x48\x47\x63\x6b\xfa\x1e\x09\xd0\xf7\x75\xf1\x9e\x63\xd6\x1b\xbb\x85\xed\x0f\xc8\x30\x52\x8e\x45\x06\x19\x72\xcf\xbc\xbe\x12\x62\x14\x42\x46\x91\x51\x3e\xac\xa1\xac\xce\xa2\xbe\x5d\x40\x14\xca\x4b\x88\xe8\x83\x14\xc4\x3f\x49\x62\xff\xef\x45\xe8\x42\x81\x46\x45\x3d\x14\x34\x28\xf2\x41\x62\x40\x80\x4b\x30\xd1\x37\xa8\x17\xc7\x53\x56\x5c\xa0\xfc\x9f\x42\x34\x3e\x48\xa7\xb0\xb7\xcc\x3f\xd2\xfa\x1a\xaf\x35\xfc\x1a\xc0\x25\xce\x7a\x4a\x2f\x1c\xd3\xbc\xd9\x8f\xd2\xe6\x7c\x14\x77\xae\x0e\x69\xfe\x86\x4c\x41\x83\x9f\xd7\xb1\x16\xf4\x12\x28\xf5\xf2\x03\x52\x23\x17\x35\x7c\x06\x9d\xf8\x08\xe1\xbc\x9b\xed\x76\x4f\x8b\xfd\x7c\xb6\x7d\x9d\x3d\xed\x96\x8b\x6d\x7b\x21\x49\xdd\x0b\xc7\x73\x56\x1d\x6f\x98\x02\xad\x99\xee\x18\xa2\x9f\x53\xa3\xf0\xf6\x03\xd2\xf1\xaf\xe9\x20\x72\xdb\x6d\xed\x77\x18\xba\xf6\xd2\x71\x5c\x2c\x5c\x21\x61\xea\x6f\xf6\x8f\x92\x84\xff\xb8\x52\xab\xf2\xed\x8b\x0a\x87\x74\x40\x20\x7f\x79\xb3\x67\xa3\x59\xeb\x66\x8f\x74\x1d\x85\xb2\x49\xad\x14\x3f\xc0\x5d\x5a\xcb\x22\xcd\xe7\xbc\x3a\x6c\x8f\xfd\x6a\x9b\xb1\x37\xd2\x63\x0e\x46\x32\x38\x39\x6e\x40\xf7\xa5\x97\xc4\xa1\xec\x89\x33\xff\x36\xac\xca\xd9\x51\x5a\x62\xc7\x0f\x55\x9b\xd6\x8b\x4d\x27\xed\x21\xa4\xef\x70\x1b\x5e\x7d\x6b\x0c\x57\x89\xdd\x44\xa3\xdf\xf1\xbd\x18\xc1\x05\xfc\x5c\x17\xad\x1c\xac\x90\x7e\xc2\x45\x68\xba\x58\xe6\x07\x5e\xa6\xf5\x08\xbf\x24\x99\x47\x32\x8c\x08\xd3\xd8\x15\x76\xaf\x2e\x46\x86\x58\x32\x5f\x31\x03\x38\x6e\x3d\xc1\x01\xa6\xc3\xb5\x03\x13\x97\xda\x3e\xd2\x0c\xaa\xba\xc8\x61\xbf\x3a\x41\xbe\x3b\x34\x7b\xdc\xf0\x7b\x06\x3e\x39\x7e\xb2\xfa\x98\x17\xb9\xe4\xf5\x57\xca\x1b\xf6\x1c\xce\x03\x61\xb0\x0c\x36\x83\x71\xcd\x2c\x28\x64\xa0\x7c\x65\x7c\x89\x7f\x9e\x53\xf9\x3e\x27\x15\xab\xb1\x07\x26\x43\x87\x25\xca\x0a\xe0\x6f\x4f\xad\x39\x93\xa1\xe7\xf0\xb8\x4d\xdf\x58\x7c\xd2\xad\x44\xb8\x0c\xfd\x00\xa3\x90\xe7\xe7\xe7\x79\x7b\x09\x16\xc4\x5e\x27\x8b\x33\x84\xf0\xb5\x46\x63\x60\xeb\x64\xa8\xb4\xef\xf4\xa8\x66\x48\xfb\x72\x79\x3f\xfe\x39\x10\x56\x54\xe2\x1e\x34\x3f\x67\x35\x8a\x89\x77\x66\x4e\x46\xca\x11\x49\xcb\x1d\x93\xe6\x6f\x9d\xc6\xbc\x90\x91\x76\xd0\x19\xfa\x57\x13\xfa\x76\xcf\x1c\x33\x5a\x05\x1f\x45\x0d\x3f\x8a\xb2\xcd\x6c\xc8\x38\x8a\x11\x05\x48\xad\xf9\x50\xf2\xd3\x21\x3d\xb6\x53\x28\x4e\x18\x42\x20\xbe\x9d\x8b\xc1\xd5\xc0\xc7\x20\x48\xa5\x15\xef\x53\x36\x5e\xed\xdc\x32\x61\x5a\x71\x2b\x70\xb1\x2e\x8b\xb7\xd2\x10\xff\xd9\xe3\x9a\x60\xfb\x27\x7e\x59\x1b\xa6\x3d\x7b\x88\x3b\x1c\xcd\x9f\xdc\xc3\x00\xb6\x27\xb9\x24\x63\xf1\x91\x9e\xee\xca\xe2\x1d\xca\x2e\x54\x95\x82\x01\x62\xf6\xd0\x24\xa2\x60\x86\x0d\x8f\xa7\xa6\x9c\x90\x80\x8e\xd5\xf3\xf2\x65\xff\x6d\xf5\x74\xbf\xdf\xad\xf6\xaf\xeb\x6f\x9b\xd9\xfd\xa2\xbd\x20\x04\xe8\x70\xde\x28\x01\x4b\x01\x5a\x91\x8c\x7e\x57\x68\x93\x32\x4c\xae\xd1\x29\xd5\xdd\xc5\xb6\x58\xb5\xcf\x28\x63\x89\xc4\x08\x5b\x9e\x6e\x79\xfa\xcb\xa6\x33\xa9\x1c\x8d\x84\xbd\x90\xab\xa2\xac\x08\x02\x39\xbd\xb4\xbe\x42\x68\x4a\x15\x08\x01\x83\x24\xc9\x54\xdc\x2e\x95\x72\x7d\x5b\xd7\x5a\x34\x2e\x61\x5b\xd1\x47\x9d\x4b\xab\xdd\x17\xf9\xa3\x29\x0c\x9e\x44\xec\x70\xc6\xab\xfa\xae\x8b\xba\x25\xf8\x5a\x7a\x9d\x5e\xca\x5d\xf7\xc2\x20\x8c\xa4\x25\xf3\x59\x67\xfc\xd2\xff\xdc\xa0\x1c\x65\xd5\x5b\x8a\x53\x2a\x87\x96\x06\xb4\x8b\x58\x38\xc8\xd5\x9e\x3a\xd9\xf7\xa7\x9e\x44\x93\x50\x8e\x4c\xf0\x21\x2c\x1a\xa3\xef\x03\x0e\x6d\xb5\x72\xc1\x8d\x0d\x19\xce\x73\x81\x6d\xa5\xfd\x9f\x6a\x0e\x63\x77\x3a\x90\x5e\xf4\x0c\x55\x06\x86\x8f\xae\x3c\x70\x28\x65\x01\xf5\xb0\x31\xb9\x39\x82\x75\x69\xec\x5e\xb4\xb9\xa1\xe7\xed\xf2\xeb\x78\x50\xf9\xae\x42\x7d\xda\xe2\x04\xf9\xac\xa5\xa7\x50\xbe\xa7\x80\x6a\x6d\xd5\x55\x90\x3b\xee\x58\x55\x7e\x18\xb3\x1e\x6d\x91\xaa\x81\x1f\xeb\x9e\xcf\xa0\xfc\x88\xd4\x08\x36\x2d\x77\x37\xfe\x4d\xb7\xfd\x0d\x28\x33\x96\xbf\xf5\xdc\xaf\xd1\x73\xfb\x09\xc7\xe0\xa2\xd9\x57\x4d\x62\x6e\xdc\x58\xa2\x7c\xe1\x61\xe8\x98\x15\x1f\x80\xe8\xd3\xdf\xba\x03\x44\x72\x97\x97\x86\x17\xd4\x2e\x10\xc5\x5c\x6a\x20\x27\x7d\xcc\x66\x27\x31\xda\x83\xec\xee\xd2\x6a\xcd\x09\xc5\xbc\x00\x45\xad\x05\x54\x75\x27\xbe\xdf\xfc\x3d\x72\x4d\x07\xd5\x86\x32\x10\x18\xbd\x7d\xdd\xa1\xa1\x58\xe8\x23\x07\x94\x41\xc8\xa3\x44\xce\xb9\xcf\xa1\x7c\xeb\x3c\x88\x31\x47\x97\x9f\x8f\xa6\x57\xaa\xbb\x41\x50\xc8\x97\x64\x94\x9e\x79\xf3\x36\xad\x10\x53\xdb\x97\xd6\xc6\xe3\x8a\xe9\x18\xc3\x42\x71\xb6\xa2\xeb\x43\x6f\x7a\xfa\xf7\x03\xdf\x41\x23\xbf\x57\xf0\x51\x77\xa0\x73\x15\xf8\x82\x38\x78\x78\x5a\x36\x8e\xcc\xde\xc0\xa3\xd2\x22\x5f\x3d\x3c\xb4\xa3\x94\x8b\x1d\xfd\x4f\xc5\xdb\xb7\x4e\x94\xff\x8b\x1d\x5b\x85\x4a\xb1\xb8\x2b\xc0\x11\x06\x2f\xd7\xc5\x28\x05\xa1\x22\x16\xe1\xb8\x45\x7d\x28\xb9\xd6\x19\xec\x3f\x98\xb0\x3f\x1b\x8b\xd0\x72\x90\x13\xb4\x6b\x75\xae\x65\x71\xb4\x8f\xfc\x8f\xd1\x8e\xa2\x92\x40\xfa\x44\x04\x37\x2b\x4b\x7e\xe9\xc0\x0b\xa3\x97\x91\x44\x0c\x89\x46\x8e\xfc\xa7\x29\x3e\xed\xf8\x3b\x94\x77\x50\x57\x6b\x28\x9f\xcd\x7f\xdb\xbb\x48\x78\x80\xa0\x2d\xd4\x35\xbe\x89\x79\x32\x83\xb9\x0b\xb8\x69\xdd\xa5\xf2\x22\xb3\x81\xf7\xaf\xb8\x4f\xde\x89\x51\x88\x7e\xe9\xfa\x7b\x14\x07\x81\xba\xe0\x7d\x0a\xd4\x31\x4b\xe8\x0d\x2b\x20\x7c\x17\x37\x5c\x79\xa5\x28\x79\x9d\xcc\x51\x22\x20\x14\xd8\x80\x15\x69\xb5\xd9\x6e\x6f\x27\xb2\x55\x63\x68\xc8\x6e\xb5\x48\xb5\x59\xae\x88\xa5\xba\x27\xbd\x7b\xe5\xd5\x28\xe9\x78\x18\x25\xbc\xf1\x23\x60\xc3\x46\xfb\x77\x66\x5d\xdb\x7b\xe0\xc4\x1f\x3e\x3a\x33\x8a\xb0\x19\x18\x9d\xec\xfb\xb4\x3a\x75\x90\x55\xa5\xfc\x10\xcb\xa6\xf7\x8b\xf9\xf2\x79\xf6\xb4\xdd\xa3\x30\xde\xfa\x69\xd9\x82\xb4\x94\xe2\x92\xfb\xad\x50\x17\x82\x61\xa6\xb7\x68\x05\x5a\x20\x64\x73\xf6\xe3\xf9\x7b\x71\x96\x5d\x45\x4c\x69\xa1\x11\x99\x63\xfa\xa9\xda\x3a\x0a\x38\x0e\x47\xaf\xbd\x7b\x1d\x76\x25\x83\x1b\x2b\x66\xba\xb4\x06\x1d\xfc\xe0\x89\xa8\xc5\x6b\xfe\x38\x14\x19\x0c\x94\x51\x04\x30\x2f\x8a\x5a\xf9\xad\x7b\x18\x07\x64\xc0\x7c\x07\xfb\xb1\x78\x9b\x72\x9b\x7c\x1c\x60\x7e\x84\x08\x76\xc8\x55\x13\x2a\x7f\x7a\xed\x0f\x68\x15\x38\xb6\x2e\xfb\x69\xff\x1a\x84\x1e\x0a\x90\x1d\x0d\x81\x91\xe4\x53\x54\x44\x76\xb0\x4a\x94\xc9\x30\x6c\x4f\xfc\x7a\xa3\xec\xe3\xdc\x21\x74\x23\xeb\xd0\xee\xd1\xac\xf0\x52\xa4\x75\xb5\xaf\x3b\xa1\x3e\x01\x91\x4b\x68\x24\xc8\x3f\xd2\x62\xaf\xd2\x1c\xca\xa2\x3d\xe6\x79\x38\xe9\x30\x40\x11\x45\xf1\x3e\x82\x8e\x42\x1c\x42\xc8\x47\x62\x74\xab\xfc\x46\x53\x10\xc4\x3c\x11\xfd\x84\xd2\x16\x64\x09\x35\xe6\xec\x7e\x1b\x4a\xac\x0a\x48\x7c\x85\x9c\xf2\xc7\x73\x66\x99\xf5\x07\xd7\x4a\x64\x84\x0d\x46\x35\x7f\x6f\xdc\xd6\x63\x9a\xdd\xc2\x9c\x42\xa2\x93\x84\x32\x2b\x3b\xe0\xc7\x21\x97\x98\x19\xc2\x15\xb1\xfb\xa6\xb9\xa5\x11\xfb\x5e\x60\x2f\x59\x3d\x91\xc4\x06\x11\x50\x6a\xfe\x3f\x45\x9a\x3f\x00\xec\xed\xdb\x10\x51\x28\x4c\xc0\xd9\x72\x5a\x75\x1b\xf2\x95\x40\xd0\xbf\xff\x17\x8d\xc2\xf5\x62\x07\xe9\x47\x61\x47\xad\x8c\xfd\x96\xc3\x12\xc0\xb8\x9f\x64\x78\x7f\x32\x01\x84\xbd\x58\xc9\x84\x54\xc2\xbc\x71\xbd\xf2\x3a\xe5\x99\x11\x04\x1f\x2c\x75\x90\x20\x31\xfd\x8b\xde\x62\x3c\x7a\x5c\x15\x51\x05\xd9\xe0\xbc\x20\xaf\xa7\x99\xdf\x05\x80\xcb\x51\x0f\x45\x17\xe5\x5b\xfa\x01\xcb\x91\xbf\x0a\x3a\xf6\x2d\x99\xa7\x9d\x49\x8d\xfd\x45\x9c\xcd\xf0\x86\x74\x1c\x0a\x44\x59\xf2\xcb\x43\x51\x6e\xa1\xfc\x68\x1e\xe2\xf1\x69\xf8\x83\xda\xf1\x04\xea\x1b\x66\xf0\x01\xd9\x3e\xde\x9f\x06\xdd\xb8\xda\xd1\x54\x20\x79\x07\x38\x75\xc5\x62\xed\x32\x85\xda\xec\x75\x0a\xa5\xdf\x3d\x8b\x3d\x0a\x21\xba\xb3\x5b\xa8\x9f\xb1\xbc\x4e\x2a\xca\xf6\xb0\xc7\x13\xde\xf9\x1e\x33\x29\x3b\x91\x13\x3b\x02\x00\xeb\x46\x08\xb1\x32\x11\xff\xf0\xb6\x7d\x0e\x24\xcb\x28\x6d\x97\x5f\x47\xd6\x2b\x34\x8b\x15\xf6\x0c\x18\xf5\x67\x83\xfe\x30\x07\x83\x98\xda\x0e\xdb\x7c\x74\x13\x80\xb6\x07\x13\x4e\x89\x02\x03\x21\xea\x04\x1b\xcc\x80\x90\x85\xe8\xe0\x43\x7d\x68\xee\xcc\xfe\x39\x0a\x62\x2b\x22\xdb\x97\xa1\x99\x8d\x9c\x48\x1d\x85\x31\xba\x02\x36\x6d\x6c\x6a\xb3\xa3\xe7\x8f\x62\x07\x9b\xbf\x9b\x17\x88\x8b\x0d\x61\x9d\xe3\xfd\x73\xf0\xbd\x75\x9c\xc4\xe8\xd1\x71\x45\xbd\x68\xa3\x4b\x26\x52\x21\xd4\x70\x31\x9b\xf7\xc2\x5c\xcd\x43\x37\x68\x5d\x60\xa3\xf6\x43\x9a\xdd\xc3\xd3\xb9\xf2\x82\xae\xcc\x35\xb2\xeb\x5a\x78\x3a\xe2\x2d\xfd\x7d\xdd\x45\x36\x5a\x70\x6e\x51\x59\x3f\x8a\xf2\x9d\x64\xb5\xaa\x65\x6e\xe3\xe4\x76\x1c\x90\xce\xae\x4a\x2b\x4c\xb3\x83\xa2\x99\x73\x9f\x6a\x9d\xca\x73\x56\x5f\x46\x37\x24\x25\xf5\x55\xbd\x41\xfd\x98\x56\xf5\x24\xb8\x44\x43\x28\x28\x72\x32\x3c\x12\x7d\xdc\xf9\xd0\xde\x4f\xba\x9b\xd2\x71\x5d\x17\xf3\x28\x18\x1e\xe6\xd5\x26\x7d\x43\x8a\x31\xf3\xd9\xa5\xe3\x32\x81\x79\x0a\xe0\x65\x76\xb1\x54\x43\xf6\x58\x02\x60\x0a\xb0\x2d\x75\xfe\xe0\x21\xa4\xe3\x8a\x08\x97\x91\x46\xd5\xd8\x36\xc5\xf0\x9a\xd7\xe9\x50\x34\x5d\x3a\x5e\xcc\x30\xc0\x31\xb2\x83\x06\xb7\x32\x1a\xe4\x7b\x49\x18\xd9\xaf\x59\xf3\x34\x83\xf2\xee\xf2\x95\xd0\x97\x74\x7c\x4e\x5e\x51\x75\x3e\x5d\x91\x91\x99\x21\xcc\x21\x80\x17\x31\xf1\xdd\xf3\x0b\xa1\xf1\xbe\x02\xc0\x34\x27\x91\xde\x22\x12\xf9\x61\xe9\x77\xaa\xfb\x4e\x3a\x2c\x08\x3d\x22\x7e\x23\x51\xe8\x21\x81\x84\x74\x98\xa4\x8e\xb4\x87\xc5\xe2\xde\xb5\xaf\x96\xa9\x08\xd1\x4b\x8a\xd7\xbc\x82\xfa\xf1\x2c\xec\x91\x20\xf0\xd0\x43\x41\x94\xd0\x4a\xaf\xd3\x92\xe7\x07\x3e\x7a\x4d\x41\xe0\x21\x6a\x75\xcb\x33\xb8\x07\xae\xb2\x34\x87\xf6\x02\x71\x82\x1b\x07\x4d\x74\xec\x4c\xeb\x3b\x76\x57\xa4\x49\x71\x6c\x4f\x54\x4e\xaf\x2c\x8e\xed\x01\x13\x45\x3a\x33\x38\xf4\x01\xc3\x98\xe7\xd9\x1f\xfb\x87\xc5\xc2\xfe\x78\xc8\x5a\x76\x22\xa3\x8b\xd3\x72\xe0\x40\x3b\xaf\x22\xc7\xf0\x2a\x53\xc9\xed\xee\x7c\x59\xe6\xf6\x58\xcc\xa8\x47\xa5\x4d\xe8\x5a\x82\xe8\x6b\xc2\x95\xbf\x55\xc7\x91\x4e\xcc\x35\x3a\xfb\x3f\x40\xac\xf4\xae\x3c\x57\x5f\xf4\x2c\x49\x27\x11\x01\xe2\x4e\x34\xb2\x29\x60\xd2\xd4\x1c\xe1\x5c\x5b\x02\xad\xbf\xee\xe8\x0d\x8e\xbe\x34\x97\x3c\x34\xe0\xd9\x07\x00\x03\x23\x71\x47\x73\x91\x43\x88\xd3\xf5\x1b\xff\x0b\xee\x9a\x01\x97\xce\x9a\x49\x47\x30\x0a\x71\x56\xdb\xf5\x8b\xfd\x9b\x8c\xa9\x1f\xb5\xaa\x0b\xf9\x5e\x8d\xf8\x06\xa4\x23\x55\x8c\x6c\xa2\x77\xab\x55\xc7\x50\x21\x1d\x88\x38\xfa\xfc\x6d\x57\x57\x75\x9f\x56\xc5\x67\xfe\x52\xd4\x3d\xa9\x34\xe9\x00\xd7\x0e\x37\x10\x62\x4a\xe5\xce\xa6\xa1\x0c\xd2\xd1\x09\x91\xbd\x36\x9f\x64\x7b\xa6\xb6\xa5\x36\xa4\x91\x8e\x16\xd4\x9e\x79\x2a\x41\xa5\x63\xe8\xda\xf4\xc7\x71\x1d\xd7\xa7\xfa\x05\x39\xa4\x8d\x85\x85\x72\x5d\x14\x59\x0f\xec\xd1\x8c\xd2\x08\xb9\xad\x3f\x21\xaf\x2f\x06\x88\xdc\x69\x21\xd8\x51\x4c\x7b\xcc\x24\x91\x78\x89\x12\x41\xdb\xac\xb8\x01\xef\x93\xae\xc3\x43\x34\x35\x70\x2e\x0b\x2a\xbe\xb4\x89\x15\xe9\x3a\x12\xb0\xf0\xb2\x83\xca\xaa\x3a\x99\x23\xae\x47\xec\x94\x69\xf5\xba\xc4\xbf\x63\x17\xcb\x32\x0f\xd9\xf0\xbb\xb8\xae\xa7\xd1\x49\x98\x3d\xcd\xf7\x0f\xaf\x2f\xf7\x44\x2c\x39\xbb\xbf\xdf\x2c\xb6\x5b\xfb\x3b\xae\x26\x25\xe3\xfb\xd9\x5d\xd7\x67\x29\x5d\xcf\xd1\xd8\x67\xff\x69\xfd\xc5\x1b\xdd\x2d\xd2\xf5\x42\xc1\xdb\x4e\x5b\xc4\xf9\xb7\xd7\x48\x3c\xfc\x1c\xf8\x8e\x48\xe4\x69\x74\x87\x5e\xc2\xb1\x45\x85\x4b\xb3\x63\xb5\x08\xf8\xee\x22\x8a\xa4\x49\x8f\xfc\xe7\x9c\x9f\x8c\x78\x34\xd1\x1d\xda\x11\xe0\x2b\x63\xb1\xfb\x8d\xd7\x21\x33\xc7\xfd\xc0\x15\x24\x26\x59\xed\x6d\x67\xda\xbe\xea\xf7\x56\x48\xd7\x07\x9f\xb7\xd4\x59\xa8\x3a\xed\xd9\x43\xcc\x71\x43\xd1\x57\x75\x58\x9d\xda\x9b\x63\x31\x01\xfe\xd6\x45\x55\x0f\x2c\xba\x39\x1e\x04\x31\x66\x50\x9f\x67\x2f\x8f\xb3\xdd\x6e\xf6\xb2\xde\xac\xfe\xf8\xd3\xdf\xdc\xcf\xbe\x5b\x83\xe5\x06\xdc\xc3\x72\xe4\xdd\x62\xf6\xc7\x9f\xed\x1f\x9b\xd8\xc3\xf2\x21\x63\x1d\x60\x5e\x54\xc7\xa2\x59\x41\xb2\x3f\x2f\x03\xa0\xf6\xd9\x26\xb8\xca\xe1\x67\xbd\x27\x89\x93\x3d\x3f\xab\xb4\xde\xab\x42\xa2\x02\xcf\xd0\x4a\xb8\xa1\x47\x0d\x17\xa6\x61\x81\x24\xf0\x0d\x7f\xe2\x68\x64\x4c\x88\x68\x44\x96\xae\x1f\xb6\x1d\xe9\x4f\x9b\x2a\x37\x23\x23\xa6\x30\x0f\xb8\x2e\x8b\x42\xaf\xf4\xbc\xbc\x9c\xea\xe2\x25\xb5\x88\x28\xe9\x46\x49\xe2\xd2\x8f\x36\x16\xd9\x46\xbd\x5d\x29\x20\x74\xba\x08\x64\xf4\xdf\xf6\x0a\xdc\x41\x8d\x81\xf5\x6c\xbb\x6b\xaf\x2a\x88\xcb\x77\x0b\x99\xbe\x07\x92\x19\x4a\x6f\x05\xc5\xd2\x8d\x20\x0c\x49\xc0\x23\xad\xe1\x7f\xce\x6f\x5c\x8d\xf4\x2b\xa4\x1b\x9b\x2e\x0d\x22\x97\x32\xb7\x39\xa5\x87\x2c\xdd\x58\x53\x28\xff\x46\x45\xb9\x87\xf4\xa3\x9d\x93\x49\x24\x91\x2a\xbc\xc8\x17\x9b\xb9\xeb\x06\x01\xc6\x97\x57\xf0\xec\xd1\x0e\x30\xe0\xa2\xee\x62\x68\xe9\x26\x42\x52\xe5\xf2\x2c\x8e\x69\x7d\xc7\xb3\xac\x40\xeb\xb3\x7e\x9f\x64\x6f\xc4\x13\x80\x44\x7b\xaa\x22\xfb\xa0\xfc\xd2\xe0\x7b\x71\x3f\x46\x00\x41\x7d\x80\x2c\xff\xe4\x05\x96\x81\xda\x79\xcd\x75\xe4\x52\x83\xad\xe9\x18\xde\x16\x19\x6e\x46\x9d\x7d\x92\x8e\x83\x76\x43\xf2\x2c\x6b\x97\xd5\x8d\xd7\x2e\x13\x12\xe9\x99\x13\xbc\x71\x3b\x22\x99\x90\x2e\x24\x94\xa5\x79\xdd\xde\x23\x99\x33\x56\x40\x7b\xdc\x96\xd2\x05\xee\x84\x46\x43\xdf\x06\x6d\x2d\x32\x88\x4c\x0b\xd1\xb8\xd7\x57\x6b\x50\x47\x2e\xa2\xb6\x8c\x8e\xcd\xef\xb9\x7c\x28\xb0\x16\x34\xb9\xfd\x7a\x8e\xeb\x60\x42\x50\x03\x54\xa6\x90\xd7\xfc\x31\xd2\x14\x18\xfc\xe7\x5c\x51\x1d\x77\xa5\x8d\xb8\x0c\x91\xf8\x93\x8c\xcd\x8f\x91\xfe\x40\x73\x26\x4f\x0c\x41\x8b\xed\xdb\x1e\xdc\x9e\xe7\xc4\x0e\x02\xb4\x20\xaf\x7f\xb5\x57\x79\x6e\x20\xd1\xc3\xbf\xbb\x23\xc2\xd2\xe2\xa7\xbd\x41\x57\x02\xfe\xcc\xec\xed\xad\x34\x2a\xdc\xf6\x90\xa7\xb4\x6b\x28\xaf\x30\x59\xd3\xbc\x31\xa3\x1e\x46\x93\x27\xe8\x47\xf3\xb1\x3d\x4b\x07\x88\x5d\x38\x15\x45\x56\xed\x0a\xea\x8e\xb7\x97\xf4\xdd\x04\xdd\xa7\x1d\xd8\x80\x55\x7a\x8c\x49\xea\xdb\x39\x9c\xeb\xc9\x5e\xff\x66\x88\xa6\x5e\x88\x4b\x55\xc3\x71\x8a\x98\x50\x7a\x2c\x74\x69\x5a\x59\x1c\xda\x10\x43\x6c\xda\x5c\xdb\xc1\x1c\x5b\x16\x0f\xbc\x3a\x10\xc8\xf5\x17\x0e\x9a\x3d\x4f\xc5\xb1\x45\x95\xf2\x2e\x4c\xf8\xef\xdc\x3a\x2f\x60\x6e\x20\x3b\x4c\xfb\x60\xd3\xf1\x02\x4e\xeb\x2b\xeb\x89\x9b\x8c\x5e\x47\x00\x1e\x52\xa1\x9f\x8a\x66\x4a\x15\x85\x1e\xac\x50\x2f\xf4\x3c\x2b\xf5\xf8\x3b\x18\xf1\x82\x5f\xf2\x26\x4b\x2f\x8c\x18\x96\x10\x9e\x8a\x37\x1b\xd6\x7f\x99\x35\x96\x5e\x24\x23\x4c\x7c\x8a\xf3\xe5\x5f\x05\x32\x9e\x0e\x9b\xc7\xa4\x17\x4b\x6d\xf5\xb1\x88\xd0\x73\x7b\xad\x54\x3b\xba\x68\xac\xe2\x88\x08\x26\xff\x03\xb2\xb6\x3d\x48\xa3\xc5\x91\x30\x6e\x51\x82\xf3\xc5\x6a\x7a\x42\x70\xa6\x30\xc5\xa6\x8a\xe9\x82\x91\xf4\x44\x98\x90\x58\x50\x91\xf3\x1a\x10\x91\x64\xd2\x54\x1d\xa3\xff\xad\x2c\x97\xf4\x84\xe0\xd6\x7b\x78\xbe\xbc\x14\x16\x19\x19\xb2\x7f\x0c\xbe\xa7\xf4\x39\x8a\x86\xa3\xaf\xd5\xc3\x33\xfe\x02\xa9\x29\x3d\xe5\x3a\x48\x38\x46\x3d\x01\x8b\xfa\xf0\xcd\x96\x13\xa4\xa7\xe2\x08\xf3\xc7\xcd\xeb\x9c\xac\xcb\x9a\x71\x20\x7c\xc3\xd6\xd9\xb8\x20\x28\x4f\x32\x69\xf6\x3d\x0d\x24\x6b\x63\x6b\x07\x73\x5e\xaa\x2b\x00\x65\x7f\x9d\xfb\x8e\x03\xca\xe4\xc7\x29\x16\x18\xbe\x5c\xdf\x61\x10\x10\x45\x46\xf9\xd1\xf5\x8c\x7c\xfd\xcc\xbe\x63\x1a\xb4\xf8\xb9\xd9\xea\x5b\xa1\x9f\xdf\xec\x61\xa0\x6e\x4e\x2e\xe4\x53\x51\xd7\x45\xfb\x77\x4d\x8f\x79\x2c\x54\xaa\x1b\xbb\x5a\xeb\xa2\x44\x3b\x31\xba\x29\x5f\xc7\x40\xb9\xa9\xe3\xb1\xc8\x37\x20\x3a\xdb\xe4\xb3\x00\xd0\x0e\x8d\x45\xfb\x07\x6b\xb0\xab\x83\x48\x9f\x85\x0e\xfa\x38\xf7\xe9\x5b\x7a\xe2\x97\x5e\x99\xa6\x39\x46\x20\xcd\x59\x5d\xf3\x91\x48\x91\xf4\x99\xf6\x1c\xb3\x2a\xd6\xfe\xfd\x20\x8d\x2f\xfd\x20\x04\x2c\xd9\x7f\x6f\xb7\x30\x3f\x88\x98\xc9\x9a\x37\x9b\x88\x69\xe7\x18\xbe\xb8\x20\xa6\x88\x9f\x60\x40\x0f\xcb\xcd\x76\xb7\x5f\x6f\x96\xf3\xc5\x7e\x33\xdb\x2d\xda\x0b\xc5\x1c\xa9\xd1\x51\x3f\xae\x86\x2b\xd4\x95\x49\xc7\x0e\xef\x36\x90\x41\x64\x6a\x9c\x2d\x00\xcb\xa3\xa6\xa4\xe1\x3d\x84\x2e\x09\x16\x16\x39\x62\xe9\xb1\x7a\x31\x7a\xf2\x90\xa9\xa8\x25\xcf\xb1\x84\x67\x7d\x54\x91\xf4\xc3\xc8\x8f\xfa\x0d\x16\x77\xe7\x32\x37\x89\xba\x0d\x54\xf0\xf7\x58\xf7\xa4\x1f\x85\x04\x41\xb0\x54\x9f\xd3\x8d\xbd\xd2\x8f\x62\x6e\x69\xf6\xac\xad\x19\x14\xd6\xa5\x1f\xa9\x48\x18\x38\xcf\x77\xc0\x26\xd0\x09\x45\x93\xd1\x55\xe3\x44\x60\x0f\x6c\xe3\xe3\x8c\x09\x8a\xec\x10\x9e\x60\x85\x00\x65\xbe\x08\x01\x6f\x8e\x24\x8a\x61\x87\x5a\x95\xbe\xf5\x40\x88\x03\x68\xbb\x19\xc9\x23\x0f\x1b\x9d\x16\xbb\xc7\xc7\x5f\x81\x3b\xa4\xcf\x85\xc0\x80\x15\x01\x4b\x6b\x14\xf8\x69\x63\x69\x5f\x38\x0a\x7b\x28\xb6\xbb\xf9\x5d\xfb\x37\x19\x23\x39\x13\x6d\x06\xbb\x22\x83\x92\xf7\x24\x46\x46\xcf\x2c\xbd\x98\x85\x5d\x70\xf0\x0c\x2a\xe5\x3d\x30\xd8\x3f\x46\x15\x45\x73\x96\x4a\x08\xcd\x78\x2a\xd3\x9c\x68\x3a\x30\x54\xb0\x47\x15\xe0\xab\xf8\xf9\xf3\xe7\x68\x26\xe9\x88\x68\x98\x8e\x45\x06\xf2\x9c\x35\x31\x99\x3c\xe4\x45\x56\xbc\x5d\xfa\xfd\x4e\xd2\xd7\x89\x6f\xf1\x4e\x7d\xe9\xf7\xe1\x6d\x30\xc7\x09\xd1\xa0\x42\x29\x23\xcf\x7d\x86\x9a\xab\x56\x91\x58\x32\x27\x0a\x31\xb3\x63\xa2\x4d\xcb\x87\xd6\x78\x19\x8f\x90\xa9\x76\x58\x0c\x88\x75\x5a\x64\xe9\xcf\xb4\x7c\xdd\xde\xb7\x07\x44\x80\x1d\xb5\x44\xae\xdd\xf7\x86\x99\x23\xb8\x34\x22\x2e\xf3\xf2\xa2\xca\xef\x29\x7c\x4e\x08\x56\x49\xe6\x6a\x52\x72\xb1\xfa\x84\x36\xdc\x9c\x49\xd9\x4f\x30\x76\xf6\x89\x79\x91\x90\x66\xe2\x22\x90\x14\x1a\xf7\xb5\x30\x7d\xcc\xe3\xfa\xee\xe0\x5b\x32\x2f\x06\xf0\xec\xbe\x7d\x84\xd5\xb9\x9e\x9d\xeb\x03\xe4\x75\xda\x6f\x57\x90\xcc\x77\xe9\x9b\xbf\x41\x7d\x67\x60\x8a\x23\xc0\x99\x64\x8c\x45\x60\x3e\x00\x6a\x90\x3f\xa5\x55\x3d\x6c\x0e\x1e\x7d\x0b\x16\x71\x5c\x3c\xf9\xf9\x78\x4f\x04\x10\x97\x53\x1b\xd6\x33\x16\x77\xb4\x9f\x6d\xa2\xed\xab\x2c\x2b\x63\x10\x59\xa2\x4d\xc4\x5a\x50\x76\xa7\xea\x41\x2e\x86\x2e\x2c\x63\xc0\x13\xc3\xd5\x7a\xc7\xf3\x69\xee\x37\xc9\x02\x37\x46\x5e\x28\x62\xd0\x68\xe5\x37\x6c\x9e\x94\x05\xa1\x44\x54\x33\x7d\x30\xab\x31\xfe\xe5\x9d\x06\x2a\x8a\x93\x56\xf5\x4a\xa7\x6f\x7d\x65\xee\xc9\x55\xc7\xc2\x90\x8b\xae\x57\x74\x31\x36\xca\x2c\x8c\xb8\x6f\x3b\x37\x47\xd4\x39\x92\xc5\x8d\xbf\x4e\xb3\xde\x73\x7a\xea\x60\xf6\xb0\x66\x02\xba\x76\xc6\x61\x21\x73\x74\xeb\x49\x42\xb6\xc2\xb6\xd5\xae\x4b\xd0\xe9\x4f\x68\x62\xbf\xf4\xc8\xdf\x86\xba\x44\x38\x9c\x72\xf7\xf5\xc1\x7b\x7e\xd9\x0d\xa7\x3a\xf7\x1c\x5b\xf8\x35\x60\xf2\x7e\x79\xe1\x6b\xe7\x9a\x71\xed\x25\xe8\x77\x9c\xf8\x67\x8e\x4e\x69\x63\x80\x31\x0c\xb9\xde\x04\xae\xfe\x1d\x3e\x14\xd7\x1c\xf3\x6c\xcf\x77\xbb\xf9\x17\x99\x57\x26\x7c\x3f\x34\xc4\xc3\xc4\xcf\x7b\x6b\x18\x0b\x4d\xc3\xb4\x4e\xcb\xe3\x3f\x1b\x33\x69\xdf\x75\xe3\x4d\x76\x00\x9e\x79\x51\xd5\x63\x1e\x08\xc9\x64\x90\xb0\x76\xf7\x34\xe5\x82\xe1\xee\xc9\x54\x14\x62\xf8\xbe\x68\x91\xbc\x92\xa9\x44\x04\x86\x57\x18\x4a\xaa\x23\xf4\x25\x9b\x24\x03\xdf\x45\x2a\x06\xda\x2b\xcd\x15\xef\xcf\xcd\x17\x59\xee\x56\x37\xe6\xaa\x0e\x03\x6e\x4a\x5e\xf3\xb4\xbe\x5c\x09\x56\x0f\x6f\x5d\x4b\xc9\x78\x2b\x06\x03\x6a\x36\x4a\x2d\x31\x0d\x2e\xe6\x63\xcc\x8f\xec\x8a\xd7\x5b\xb2\x5c\x32\x70\xa4\x83\xb4\x15\xa7\x8c\x5f\x66\xf9\x65\x57\xa6\xa7\x6c\xd4\x97\x24\x03\x37\x22\xf5\xf7\x4f\xec\xd8\xf8\x4e\x0c\x17\xe6\x89\x03\xcf\xf5\xb1\xd2\xbb\xaf\x26\xa7\x98\x1d\xe5\x7b\xc8\x43\xb7\x3d\x14\xa7\x7b\xf8\xd9\x9e\x1c\x84\xc8\x22\x5e\xc3\xf1\x94\xf1\x71\x47\x94\x0c\x3c\x61\xb4\xfa\xcf\x97\x34\x9f\x8d\xc2\x92\xc0\x8f\x04\x37\x8b\xea\xb9\x31\xac\x2b\xfd\x08\x25\x6c\x31\x41\x6e\x7f\xc1\xe7\xa4\x45\xbb\x60\x7d\xa7\x32\x60\xdc\xc5\xf2\x48\xdb\xd1\xb7\xca\x2d\xe2\xf3\x0e\x0e\x3c\xd3\x84\x45\xb8\x85\xc2\x91\x01\xd3\xa4\xe1\xda\x98\x75\x73\xf3\xf7\x58\xaa\x6a\x7f\x39\xf4\x44\x42\xc5\xdf\x0a\xb6\xa7\x22\xaf\xcc\x06\x6e\xbf\x53\x10\x72\x0f\xa9\x79\xe8\xb5\x62\xff\xf7\x30\xab\x1a\x84\x10\x31\xb3\x59\xc2\xe9\x2a\x80\x1b\x7d\xca\xc8\x8b\x10\x94\xbd\xa8\x0f\xf3\xbc\xdf\xa9\x22\x83\x28\x71\xb1\xa6\x8a\xe9\xe1\x35\xbf\xb4\x39\xd7\x20\x52\x01\x6e\xd6\xf5\x54\xb7\xdf\xdf\xac\xb4\x98\x4b\x25\x91\x4a\xf4\xd0\xfd\xeb\x01\xae\x47\x63\xb9\x46\xac\x60\x25\x79\x3e\x64\xe6\x32\x30\xf6\xf6\x3d\x27\x8a\x21\xe5\x73\x89\xb9\xf9\x56\x51\x55\x06\x22\x0a\x50\xea\x1d\xdf\xdb\x8f\xa2\xcc\xd4\xdc\x2a\xe7\xc9\x40\xe8\x40\xe8\x4e\xad\xc1\xb8\xc7\xc3\x8e\x77\x33\x54\x3a\x32\x34\x4e\xf2\x7d\xf1\x99\xd7\xbd\x6e\x31\x3b\x42\x93\x58\x24\x62\x64\x8b\xfc\x5c\x19\xc6\x6b\x73\x58\x39\x61\x08\x3d\x6f\xe2\x78\xe2\xf9\x65\x48\xe3\x3a\xfa\x52\xca\x21\xd2\x1e\x01\x6f\x69\xde\xf2\x2e\xb4\xd7\x93\x66\x6a\xda\x50\x9b\xec\x8c\xf7\xe7\xe8\xc6\x95\x56\x91\x1a\xb4\x1f\x79\xbe\xbd\x06\x30\x81\x79\x8b\xfd\x81\x57\xdb\xf7\x34\xcb\xaa\xf9\x01\x46\xb4\x6d\x32\xd0\x3a\xc0\xac\x5c\x61\x48\x89\xf7\xff\x77\x86\x8e\x7b\x9f\xfe\xf9\x37\x1b\xa2\xf5\x64\xe8\x78\x04\xed\xa0\x40\x98\x44\x53\xb0\xa7\x77\x30\xbb\x43\x27\x22\x29\x03\x7d\xce\x65\x33\xab\xe6\x36\x99\x1f\x3a\x71\x44\xea\x32\x48\x0b\x6a\xd5\x2f\x06\x52\x83\x32\x74\xb8\x6f\x14\xcf\x31\xe3\x8f\xfc\x7d\xa6\x23\x7b\x72\xfa\x87\x0e\xa7\x76\xcf\x6d\x0d\x7a\x10\x40\x86\xae\x9f\xa0\xc1\xd4\x69\x96\x11\x82\xc6\xce\xb6\xa0\x97\xe2\xfe\xdf\xae\x90\x6e\xf9\x3a\xa6\x5b\xa1\x64\xe8\x46\xae\xb2\xec\xa2\x8b\xdd\xe3\xae\x40\x8c\xcf\x36\x1d\x95\xb1\x43\x4f\xc6\x09\xef\x5a\x97\x73\x28\x17\xbc\x1c\x36\x72\xc9\xd0\x53\x24\x3e\x77\xe2\x65\x35\xcc\x0f\x87\xbe\x47\x6a\xe5\x08\xfe\x69\xe2\x96\x66\x6e\x0e\xcf\xf6\x19\x17\xb6\xc7\xd9\x14\x1a\xda\xd8\xcb\x3e\xbf\x1f\x46\xd8\x30\xbe\xa7\x5e\xc1\xee\x52\xe7\xb1\x16\x92\x3d\x41\x52\xc5\xa1\xf1\xb1\x71\xf5\x56\x0f\x05\xd1\xed\x8c\x7e\x9d\x39\x24\xcf\x02\x26\xc9\x85\x6b\xf1\xa1\x28\x1f\xf9\xc7\x07\xe4\xd5\x6c\xd2\xd9\xb0\xe7\xfa\x4a\xbb\x56\xfc\x53\x66\x67\x75\xdd\x1e\x67\x47\x26\xc4\xa8\x4b\x80\xcf\xa9\x1e\x5e\x19\x06\x2c\xd6\x6d\x40\xd6\x43\xc2\xc8\x30\x08\x74\xc0\x5a\x4c\xc7\x3d\xaf\xc1\x6d\x0f\xc9\x00\x71\xde\x27\xac\xf0\x4e\xb0\xf0\x4d\xdf\x4f\xa0\x42\x1d\xde\xa0\xef\x7f\x24\xf2\x0b\x3b\x12\x12\x5c\x60\xeb\x7e\x87\x87\x0c\x43\xdf\xd7\x91\x4d\x7d\x66\xd0\x51\x03\xb8\x3d\xca\x5d\x19\x46\x91\xc0\x88\xe0\x23\x85\xcf\x7e\xb1\x36\x8c\x74\x6c\x25\xa3\x0d\xb9\xed\x50\x9e\xdf\x0c\x8b\x5d\x37\x36\xfc\x97\xf7\xf0\x01\xe5\xc5\x14\x99\xc6\x48\x0a\x3b\x5c\x73\xac\x90\x8b\x73\x99\x0f\x13\x29\x61\x12\xf9\x48\x47\x62\x4a\xf5\x9d\xf4\xa7\x0c\x13\x45\x9d\x6f\xc8\x9b\x78\x99\xf3\xea\x40\x6b\xef\x3a\x3d\x1a\x8f\x5e\x23\x67\x04\x9f\x7a\xe2\xe7\x5c\x1e\x36\x28\xde\x42\x58\xf3\xfe\xeb\xef\xb3\x25\xd8\x44\x60\xc8\xa5\x8b\x89\xc0\x96\xf0\xaa\x79\xb2\x22\x37\x22\xb2\xcd\x3b\x5d\xa7\x3f\x21\xa3\x3d\xd0\x2e\x76\x37\x1c\x5b\x32\xe1\x7a\x04\xd8\x57\x60\xf3\x00\xa1\x74\x88\xdb\xfc\x5b\x51\x28\x9d\x42\xa6\x08\x80\xf2\x55\x36\x20\x94\x4c\x21\xb6\x03\x0d\x1a\xee\x79\x0f\x45\xd9\xf1\x0b\x0d\x7f\x54\x85\x31\xf4\x74\x0d\x69\x02\x9d\x26\xd5\xa0\xaf\x78\x5d\x65\xa8\x62\x47\x1b\x93\x42\x3a\x25\xe4\x7e\x3e\x14\xe5\xd2\x34\x11\xae\x8b\x8a\x7a\x1e\xea\x29\xae\xe8\x7f\x0c\x6c\x34\x84\x21\x66\xcf\x30\xd5\xb5\x1d\xb6\xbc\xc9\x50\xbb\x61\x62\xa8\xbb\xe4\xfb\xa9\x68\x67\xb5\x8e\x5c\x0c\xc1\x67\x75\x0d\x95\xe1\xb8\xe9\xe1\xe2\x47\x76\x59\x27\x0e\x1a\xb1\x5e\xed\xb8\xbb\x92\x0a\x71\xca\x3d\x2f\x5f\x96\xcf\xb3\xa7\xfd\x8f\xc5\xd2\x1c\x8a\x1c\xae\x70\xca\x2d\x9f\x17\x7f\xfc\x61\xff\xe8\xfa\x1a\x4b\x62\x46\x0c\xd6\x94\xb2\xa6\x28\xa0\x65\xe4\x0a\x07\xab\xc9\xf7\x30\xc7\xb2\xce\x24\xe5\xd7\x97\xd4\xce\x32\x72\xa5\xc2\xcc\xc8\xdd\x6c\xa8\xb8\x24\x23\xcf\xf1\x30\x63\xbd\x37\x9f\xb1\x99\x72\x53\xed\x2a\xa3\x9b\xf2\x19\x11\xac\xe6\xf0\xb3\xde\x02\xaf\xda\x5d\x3f\xf2\x03\x95\x58\x1e\x78\xd4\xcb\x2b\xae\x13\xbc\x9d\x6d\x88\x7c\x1e\x61\x35\x60\x7f\x2a\xc1\x10\x68\x82\x55\x20\xff\xda\x7c\x45\xbe\x4c\x10\xdc\xbc\x4b\xa1\xbc\xe3\x55\x2a\xad\x2a\xc8\xa4\x59\x88\x98\xeb\x0a\x13\x7b\x97\x6f\x80\xfe\x4f\x6b\xe0\x22\x16\x70\x94\x59\x6f\x9e\x07\x0f\x6d\x6b\x38\x51\x5b\xb6\x19\x11\x78\x02\xd1\x30\x8d\xa3\x8d\x65\x8b\x1b\x5d\x00\x32\x0a\x15\x71\x9e\x7f\x2b\xc8\x79\x5a\x97\xc5\x7f\xa0\x0d\xb0\xa3\x48\x24\x44\x89\x74\xbc\x6c\x2f\x47\x61\xdb\xe8\x64\x14\x69\x86\xcd\xe9\x8b\xef\xf3\xf9\x81\xb7\x56\x36\x8a\x39\x95\x7f\x2b\xa8\xd7\x6d\x6e\xdf\x1c\xe3\x21\x20\x2f\x16\x41\x10\x2c\x62\x61\xb0\xcb\x47\xc2\xd7\x58\xa0\x7a\x81\xcf\xc7\xf4\xed\x00\x55\x7d\x97\x5e\xa3\xc5\x06\x97\x15\xa1\x0a\x3d\x0b\x74\xc7\xa2\x6f\x39\xed\xad\x44\x22\xa6\xe6\x23\xde\x38\x36\x94\x26\x47\x1f\xd6\xb2\xec\xda\x87\x90\xbe\x87\xa5\x38\xcc\x03\x40\xd9\xf9\xbf\x91\x0c\x02\x84\xe5\x65\x69\xd5\x11\xb1\xc8\x48\x46\x9e\x2d\xa5\x1c\x69\x6f\xd0\x65\x71\x54\xc5\x47\x6a\xad\x79\xa4\x62\x89\xce\xe1\xe2\x75\xb3\x1d\xac\x0a\x7b\x5c\x48\xfc\xa8\x17\x44\x03\xb6\x1d\x7b\x32\x52\x12\x1c\x53\xb2\x5b\xec\x1e\xaf\x5b\xf4\x65\x04\xb1\xf2\x49\x0f\xf7\x1e\x0e\x45\xa6\x3a\xb8\xac\x8c\xb4\x17\xd8\x02\x96\xed\x02\x18\x97\x91\x22\xed\x0b\x8b\x8b\xbf\x87\x0c\xde\xba\x9a\x42\xa4\x83\x58\x18\xd1\x98\xd9\x5b\x09\x30\xd8\xa8\xfb\x56\x6e\xa8\x76\x2c\x63\xc7\x93\x58\x28\x3d\x57\x2d\x30\x70\x94\xbc\x89\x1d\x01\x10\xb7\x90\xad\xb2\x67\xb4\xff\xed\x9b\x40\x24\x76\x03\xc2\xe8\x10\x12\x1b\x69\x9c\xb7\x12\x7a\x08\xf7\x2b\x55\xc2\xc1\xab\x89\xdd\x88\xf8\xbf\xb9\x52\x86\x09\x74\x9e\xa5\x5f\x51\xfe\xf6\x67\x56\xec\xca\x84\xbc\x69\x12\x2e\x25\xb2\xdb\xe9\xdc\x48\xec\x6a\xd7\xf2\x2a\xed\x53\x59\xe4\xe9\xff\x59\xb8\xff\x09\xca\x3d\x7a\x48\xbf\x8d\xcf\xf0\x4c\xca\x96\x57\xf0\x8c\x91\xef\x70\x80\xa7\x19\x56\xa8\x88\xeb\x69\x71\xe4\x69\x36\x4e\xbf\x0d\x6e\xd7\xe7\x21\xb9\x63\xef\xef\x05\x66\xa2\xdd\x29\x92\x8f\x78\x74\x92\x72\x90\xe1\xd1\xda\xa3\x07\x2e\x5b\x8a\x4e\x19\x33\x27\x41\xc2\xfc\x14\x2d\x71\x9f\x3c\x42\xc6\xcc\x0f\x1c\x52\x7e\xbd\xbb\xb4\x33\x26\x66\x3c\x12\x66\xaf\xac\x8a\x23\x60\xaa\xe7\x46\xda\x29\x0e\xdc\xc8\x8d\x4d\x15\xfb\x89\xb7\xb9\xa4\x38\x08\x1c\x9c\xf2\x5b\x9e\xd7\xb6\xeb\xd3\x1e\x92\x0e\x56\xe5\x30\x68\x5a\xac\xb6\x7d\xfd\xd2\xe9\xc0\x2f\x0e\x0c\x4b\xe1\x11\x1a\x4b\x9d\x8f\x9e\x22\xe4\x9e\x6f\xd4\x3e\xd7\x65\x7a\xe4\x8d\xc3\x26\x8b\x72\x9a\x30\xf8\xab\x7f\xcc\xf5\x22\xd7\xf1\x79\x1b\x42\x3d\x9c\xfb\x2e\xe2\xe8\xc6\x22\x97\x14\xc1\xdf\xc0\x00\xf6\x86\x85\x9b\x38\x12\x11\xee\x5b\x45\xa6\xa0\xaa\xbf\x75\x2f\x21\xe6\x4a\x9a\x45\x8d\x68\x6d\x0b\x29\x5a\x69\xcb\x5d\x71\x36\xd4\xa2\x5d\x84\x7f\xf5\x5f\xe6\x5a\x49\xe2\x20\x23\xf8\x9c\x9f\x4e\xa0\xda\x8c\xf4\xf2\x78\xba\x8d\x0e\x98\xfe\x9a\x9c\xc7\xe8\xb9\x7c\x22\x4f\x45\x77\xb7\xc2\xf7\x31\x6b\xf8\x92\xe6\xd0\x03\xda\xc5\x42\x01\x7e\x17\x62\x6d\x69\x77\xf9\x58\x72\xce\x22\xcb\xe4\xd5\x8a\x67\xcd\x8d\xd7\xd9\xc5\xec\xb1\x14\x3e\x56\x03\x95\xe5\x02\xab\xd0\xc4\x75\x41\x58\xac\x22\x1e\x50\xb8\x73\xac\x56\x7a\x22\x98\x8a\xc1\x25\x01\xdb\x13\xe9\xda\xf6\xd8\x88\x7e\x1b\x42\xbb\x07\x46\xcf\x73\xec\xe9\x89\xc4\x9e\x24\xb2\x4f\xdf\x20\x77\x1e\x8b\x26\xa2\xfc\x2f\x71\x15\xa3\x6f\xa2\x8d\x44\xc7\xbf\xa0\x2c\xee\x8b\x2c\xe3\xe5\x63\x71\x84\x75\xab\x31\x2e\x63\x2d\x88\x09\x2d\x3f\xbf\xdb\xbf\x25\x8e\x2f\x45\x3c\x4c\x05\x5d\x11\x3a\xcb\xc4\xf5\x08\x3c\xfc\xe3\x71\xb9\x5b\x3c\x2d\xb7\x3b\x92\x94\xc7\x5a\xab\xbd\x92\xcb\x22\x5c\xf5\x58\x6c\xe9\xbf\xf2\xc4\x0d\x39\x6e\x15\x07\x5e\x75\x82\x9e\xae\xbd\xb6\xe7\x2a\xcb\xda\xb8\x3c\xf2\x37\xe8\x93\x35\x8c\x1a\x67\x6c\xaa\x29\xf1\x04\x70\x43\x96\x49\x59\x8d\x65\x0d\xc7\x69\x03\x97\x30\xa6\x30\xb9\x97\xc3\xe7\x53\xf1\x09\x55\x3d\xab\xde\xa7\xb7\xfa\x24\x70\x22\x27\x6e\x11\xef\x04\x31\xcd\xfb\x18\xcd\x24\xd0\xa4\x2b\x70\xe4\xef\x37\x40\x05\x49\xc4\x62\x04\x78\x9e\x8a\x76\xab\x4f\xa2\xd8\xb7\x40\xe3\xb2\x06\x7e\xc4\xb0\xf7\xba\x52\x9f\x44\x3c\xc6\x52\x7f\xa7\xa0\x50\x58\x5e\x38\x99\x44\x5a\x39\x5d\x43\x84\x6d\x56\x42\x6e\x1f\xd3\x6e\x72\x33\x07\x9a\xc4\x22\x16\x56\x4b\x63\xb7\x9b\xf8\xc2\x89\xc3\x10\x46\xdd\xd2\x3d\xe9\x34\x9b\x12\x62\x91\x49\xe2\xb1\xc4\x30\xac\x4d\xd4\xdf\x92\x24\x8c\x91\x5f\x44\x59\x05\xdf\xa2\xe3\x21\x95\x49\x22\x09\xe1\x59\xf3\xf7\x36\x8b\x3f\xea\x58\x69\x06\x49\x6c\x9c\x3e\xf2\x9f\xa3\xde\x7e\x99\x24\xca\xc1\x0c\xc3\x9f\x9b\x7f\x7e\x15\xe8\x25\x5c\x40\x18\x19\x6c\x71\x06\x35\xa8\x87\xcc\x88\x86\xb5\x13\x8f\x03\xf5\xa7\x90\x15\x58\x56\xd5\xf9\x76\x8b\xc1\x75\xc6\xa9\xbb\x5d\x11\x51\x12\x9f\xc0\xb6\x63\xcf\x7e\xd2\xec\x25\xd2\x8b\x50\x9c\x6f\x29\x8b\x31\x4d\xc0\x7f\x97\xcb\x4d\x64\x10\x6b\x82\xe2\x9e\xf3\x9a\xa4\x18\xda\x97\x25\x85\xb4\xb5\xd0\xe5\xd1\x24\x29\x1b\xb7\xff\xe1\x9c\xcb\x41\x18\xdb\x3a\x42\xb7\xff\xc3\x5e\x52\xba\x5a\xb4\x5c\xc6\x02\xea\xbb\xcb\xb7\xfa\x72\xea\x0b\x94\xcb\x44\xc5\x2a\xe4\x1d\x25\xc1\x60\xef\x4c\x14\x0f\x99\x85\x00\xec\x8a\xd7\xe6\x34\x7b\x08\x9c\xd8\x01\x0b\x3a\x28\x53\x9d\xde\xe8\x0f\x49\x20\xa4\x16\x8d\xfd\x1b\xd4\xe4\x9b\x35\xbf\xb3\xe6\xa9\xda\x5c\xb5\xbc\x24\xda\x77\x91\x57\xfe\x58\xc8\xf7\x3d\x0a\x06\x2c\xf5\x4b\x51\x6f\x70\xaf\xbd\x01\xd3\x4e\xb4\x0e\x70\xfe\x50\x2b\x31\xd4\x3f\x80\x67\xf5\xc8\xd7\xe2\x6e\x92\x60\x4b\x18\xee\x5c\x8f\xbc\x54\x92\x9f\xcc\x3c\x6a\x47\x50\xa4\xb4\x9b\xcd\xb6\xfb\xf9\xea\x65\xb7\x99\xcd\x77\xed\x41\x1d\xbb\xd2\x80\xde\x56\xa7\x76\xef\xe3\x9e\x48\x98\xdb\x03\x83\x4c\x87\xab\xc3\x5b\xf1\x84\x40\xaa\x00\xcc\xeb\x3d\x17\x8a\x5e\x5e\xd1\xf2\xa9\x4a\xee\x87\x49\x8c\x45\xb2\x9f\xa7\xa2\x3a\x97\xb0\x85\xba\xce\x3a\x85\xba\xe9\x89\xca\xfd\x58\xf5\x58\xf4\xbf\x9d\x7b\x7d\x71\xd3\x7e\x4d\x2f\x1b\x7b\x6b\xe6\xf6\x3b\x5a\xec\xcf\x80\xf0\xcc\x26\x30\x9f\xad\x86\x1f\x90\x07\x4e\xe0\x8e\x2b\x1f\xeb\x12\xb6\xe9\x5b\x6e\xef\xff\x6f\x09\x22\x74\x4f\x15\xb8\x1c\x8b\x0e\x7b\x05\x35\xc8\xba\x23\x23\xe8\x0d\xf1\x35\x7e\xb9\xd9\xf2\x71\x07\xfc\xf8\x54\xc8\x51\x23\xad\xe4\x41\xac\x78\x07\x4e\xd8\x8b\x8e\xd1\x52\xf2\xd0\x21\x86\xa2\x66\x9d\xb4\x31\x90\x3d\xe6\x83\x2d\x4d\x12\x01\x6c\x7b\x20\x60\xd8\x3c\xf6\x9f\xf3\x5b\xdb\xf0\xc5\x43\x88\x41\xb6\xed\xba\x63\x3d\x8c\x1b\x9f\x2d\x72\xa8\x96\x66\x7b\x09\x79\xb6\xee\xf1\x77\x48\x1e\x79\x22\x48\x8c\xbc\x2a\x25\xc2\xc6\x0a\x0d\xa3\xeb\x85\x54\x57\xfc\x56\x10\x54\x5d\x14\xf5\xbc\x28\xa1\xbd\x5c\x24\x11\x75\xf8\xe7\xeb\x5d\xdf\xf1\xe6\x11\x4f\x10\x51\xd1\xbc\x99\xe1\x01\xa1\xe2\xa0\x35\x23\x58\x36\x29\x3b\x1d\x50\xc9\x23\x48\xb0\x8b\x20\x07\x50\xd5\x43\x9a\xf3\x2c\xfd\xab\xef\x53\xf0\x38\x4c\x62\x4b\x61\xb1\x85\xba\xad\x27\xf1\xc4\x0d\x64\x34\x0c\xfe\x08\x72\xfc\xdf\x76\x23\xdd\x78\x13\x49\xc4\x10\xc6\xaa\xd2\xea\x94\xf1\xcb\xbe\xee\xa5\xee\xec\x10\x1e\xc8\x60\xc0\x55\x36\x9e\x5c\x09\x57\x88\x0e\xf9\x40\x62\xc2\x96\x0e\x72\x04\xde\x1d\xae\x82\x04\x02\xd6\x23\xed\x68\x36\x56\x82\x19\x23\xb2\x9d\x37\x1e\x3c\xfd\xff\x97\xa2\x5e\xe6\xaf\x55\xfb\x71\xb8\xe7\x62\x11\xe7\x78\x79\x28\x8b\xbc\x5e\xd8\xae\xef\xf6\x78\x4c\x34\x1f\xa4\x2e\x40\x58\x9f\x89\x9d\x9d\x8b\x88\x23\xbd\xf8\x2e\x3d\xc2\x3d\x48\x7e\xb1\x75\xba\x3b\xf4\xf8\xca\xcb\x2f\x1d\xd8\xe1\x03\x09\x11\xe0\x56\x4e\xf8\xc5\x56\xcd\xb6\xef\x9c\xfc\x3a\x74\xe2\x42\x68\x4c\x36\x10\xe1\xc1\x80\xd4\x49\x72\x70\x13\xac\x3c\x0a\x5e\x41\x10\xdb\x38\xb8\xe7\xcd\x70\x48\x88\x78\xa0\x3e\x00\x4a\xf1\xb5\x67\x2a\x8e\x3e\xfa\x76\x37\x7b\xb9\x9f\x6d\x2c\xa8\x89\x6b\x48\x5a\xce\x4d\x93\xc6\xdd\xc0\xa9\xfd\x82\x0f\x45\xb9\xf8\x59\x97\xfc\xae\xc8\x15\x79\x6f\x55\xaf\xe3\x4a\x38\x9e\x40\x36\x90\xe6\x1b\x3e\xf0\x34\x5b\x9f\xab\xc3\x8f\x03\xe4\xdb\xba\x68\x02\xa9\xdf\xec\x30\xc3\x2e\xba\xaf\xa0\xde\xca\x03\x64\x98\x48\x68\xde\xf2\x14\x0c\x52\x38\x92\x12\x49\x14\x3d\x6e\x1b\xdf\xea\x40\x72\xd2\x83\x17\x2e\x1c\x19\x49\xd2\xfa\x3e\xde\xe2\x9c\x91\xc2\xd1\x81\xdd\x7c\x16\xd8\x62\x9a\x96\xea\xfe\x5c\x0e\xf8\x0d\xcc\x50\x17\x18\x16\x47\xbe\x01\xaa\x78\xd8\xe9\xf0\x9a\xa7\x75\xbf\xa6\x2d\x7c\x2f\x46\xf5\x1d\x30\xfc\x1f\x43\xf4\x86\xf0\x93\x90\x6a\x67\x14\x86\x0e\x92\xad\xc2\x17\x81\xf2\x5a\xe6\x0f\x91\x01\x8a\x61\x8f\x6e\x24\x48\x7c\x2c\x50\x55\x67\xb1\xca\xc9\x98\x4f\x9a\x45\x11\x3a\x1a\xbf\x1e\x9a\xea\xdd\xcf\xfe\xa7\x09\xfd\x18\xc3\x27\x2c\xee\x2d\x8f\xa7\xd2\x72\xe6\x9c\xa9\xa8\xd1\x9b\x34\x22\x12\x0e\x42\x53\x51\xc2\x7f\x39\x5f\xb5\x8f\x12\xe9\x18\x75\xf8\xee\x77\xf3\xf9\x7e\xf9\xb4\xfa\xb1\xb7\xa5\x54\x11\xfb\x0c\x8d\x3e\xd9\xa5\x67\x5e\x96\x69\x17\x9a\x89\x24\x16\xbc\x83\x4d\xcd\x0f\xfc\x78\xaa\xb0\x0b\x65\x2a\xc5\x24\x9a\xcd\xa9\x0b\x82\x61\xa0\xf3\x75\xb5\xe8\xa6\x52\xee\x82\x87\xc4\xdf\x64\xb7\x54\x24\xf5\xfa\x02\xec\x83\xca\x7d\xb8\x41\x17\xba\x9e\xf3\xd3\x32\xef\x9b\x73\x21\xdd\x20\x26\xc6\x49\x7e\xd9\x14\x17\x9e\xd5\x97\xf6\x50\x14\x20\x9d\xfc\x36\xfd\xb9\xad\x79\x63\x27\xd4\xdf\x13\x44\x92\x4d\xe4\x18\x91\xee\x18\xa1\xaa\xfa\xed\x54\x66\x88\xf2\x85\xc4\xce\x1b\x50\x69\x2b\xc2\xf1\x72\xbd\x9d\xd9\xe1\xb1\x47\x7d\x3e\x86\xc3\xb9\x0f\x4a\x14\x2a\x89\x6d\x16\xfa\xa1\x4c\x21\xc7\x8d\xe7\xad\x89\xae\xae\x4a\x43\x42\x09\x8d\x80\x10\xd4\x7f\x86\xea\x7c\xec\x16\x2f\x70\x97\xab\x11\xa8\x7c\x77\xd5\x4a\x6f\x06\xeb\x40\x24\x4e\x4b\x14\x87\x8b\x9b\xee\xab\x87\x2d\x11\x3a\x22\x44\x0e\xe6\x36\x9a\xbd\x7a\x02\xa7\x21\x34\x30\xcc\xe7\x16\x27\xea\x08\x9c\xdb\xc0\xc7\x5c\x45\xba\xbe\x72\x55\x9f\x60\x36\x2d\xf2\xe7\x36\xb1\x82\xcd\x79\xd4\x56\xda\x82\x6e\xa7\xb8\xe0\xa5\x74\x8d\xe0\xe9\x1b\xd4\x1f\x3c\x3b\x8f\x81\x40\xd2\xf3\x5c\x4b\x2c\x8a\xd9\x53\x6a\xc5\x30\x07\x7d\x87\x39\x49\x97\x39\x99\xac\x83\x8c\xaa\x8f\xd2\x8f\x14\x01\xc1\x0d\xa9\xfc\x94\xdc\xb9\x94\x7e\xec\xb8\x04\xfa\x47\xfa\x20\x13\x11\x8f\xae\x14\x2b\x53\x45\x2e\x7e\xa6\x6d\x69\x44\xfa\x9c\xfa\x50\x0f\xbc\x42\xc5\xa9\x55\x3e\x2f\xf2\xaa\x4e\x6b\x7c\x47\xeb\x22\xcb\x4c\xfd\x7d\xf8\x8b\x8c\xf1\xc8\xeb\x5a\xf4\x70\x56\x77\xdd\x03\x76\x50\x48\xad\xd3\x5c\x29\x54\xc3\xab\xa1\x1c\xf7\x75\x48\x06\xcc\x32\x8e\x1b\xf8\x4b\x7b\xb6\x76\x40\x75\xba\xaa\x77\xe7\xab\x3d\xd6\x0c\x0c\x42\x07\xd9\x43\xee\xf8\x7b\xfd\x80\x74\x94\x97\xab\x8c\xfb\xf0\xee\x03\x45\x2d\x6f\x55\xdd\xac\xaa\xe1\xd5\x42\x27\xc1\xb2\xe1\xf3\x05\xc3\x09\x84\x83\xda\x43\x91\x8f\x44\xa8\xdf\x10\xf1\x98\xdd\xac\x20\x9b\xe1\x91\x93\x20\xf9\x04\x19\xaa\x5b\x2e\xd8\x38\x03\x2f\x23\xc6\x7d\xd2\x93\xed\xcb\x41\xa2\x52\xd3\xe8\xb3\x47\x89\x83\xba\x7a\x5b\x6c\x92\xda\x75\xd8\x42\x19\x29\x81\x70\x24\x99\x01\xcf\xcf\xa7\x45\x59\x16\x28\x37\xff\x75\xcd\x4d\x26\xae\x32\xa9\x9a\x5c\x91\xd0\xc7\xcd\xac\x8a\x4c\x98\x2b\x42\xbb\x7a\x2d\xc0\xb6\x3d\xe6\xe3\x4c\xb7\x85\x6f\x03\x29\x9b\x66\x19\x93\x32\x01\xe2\x0f\x79\x9e\xfd\xb1\x5f\xcf\xfe\x5c\xbd\xee\xf6\x0f\x9b\xd9\x7c\xbf\x5b\xad\xed\x15\xb9\xab\x55\x47\x62\x42\x5c\x37\x9b\x73\x36\xc1\x55\x3c\xb8\xb2\x08\x5d\xec\x98\xdb\x80\x82\x23\x56\xaf\x29\x1e\x1f\x75\x7c\xd8\xd1\xb1\x46\x1f\xe1\xa3\x4d\x8f\x5e\xbd\xaf\xbf\x93\x22\x31\x57\x93\x71\x00\x84\x8e\xc7\xa8\x85\xb4\x35\x8a\xe2\xbf\x63\x82\xbe\x81\xed\x91\xaa\xed\x19\x7b\x4b\xe5\x88\x33\xdd\xbe\x33\x08\xdc\x40\x19\xc5\x89\xe7\x34\x1f\xab\xb2\x49\x09\x10\x60\x5d\xfd\xb8\xb7\x75\xb2\xa7\x54\x43\xc7\x27\x22\xa5\x76\x12\x5c\xe6\xf0\xd6\x57\x63\x92\x52\x07\x24\xa5\x9c\x36\x01\x3f\x1e\xe9\x51\xf1\x0f\xdf\xaa\x72\x84\xe7\x99\x84\x08\x96\x0d\x07\x29\x7b\xe5\x48\x40\xff\xc8\x30\xe8\xbe\xe6\x4d\x80\x57\xb5\x61\xa1\x72\x1d\x97\x87\x2d\x94\xbb\xac\xef\x79\x4b\xd2\x27\x95\x17\x11\x15\x14\x57\x6a\xd0\x6c\x35\xba\x03\x4f\x83\x46\x2e\xbf\xb4\xa8\x8b\xf2\x2e\x2d\x90\xe3\xb0\xf7\x3c\xca\x4f\x42\xe5\xda\x3a\x27\x32\x52\xf7\xea\xbf\xc3\x35\x10\x5f\x47\xf0\xca\x57\x31\x92\x4d\x36\x56\x0e\xe4\x54\x4d\x7c\x30\xe1\x95\xaf\xb5\x45\x7d\x37\xab\xd2\xc0\x2e\x07\xac\x33\xc3\x13\x98\xcb\x10\x07\xfc\x96\x7e\x00\x6a\xe5\xda\x1b\x67\x01\xc7\xaa\xf2\x23\xfa\xbc\xdf\xb9\xbc\x9e\xd6\x8a\x45\x89\x6f\x4c\x7c\xf3\xec\x50\x97\x56\xd6\x42\xaa\xc0\x89\x62\x43\xa4\xb3\x7f\x4f\xf3\xb7\x3d\x1f\xcc\x21\x15\xf8\x3e\x37\x09\x64\x2a\xe6\xb5\xe8\xce\x76\x00\xb3\x70\xca\x39\x3f\x71\x99\xd6\x23\x0f\x5d\x05\x89\x17\xba\xb6\x58\x8a\x7d\xb5\x3d\xe1\x8d\xe6\xb0\xf0\xa9\x5a\x8b\x5c\x35\xd8\x1b\x4b\x94\x8a\x66\x40\xe8\x68\x64\x45\xfe\x4c\x73\xd4\x9f\x9e\xec\x0f\x54\xa1\x2b\x6d\xda\xed\x5b\x51\x28\xf2\xc1\x07\x6b\x46\x45\x71\x82\xed\xba\xd4\x19\xdd\x5e\x67\xd8\xa3\x7e\x2b\x99\x62\xae\x11\x07\xd4\xe6\xd3\x6c\xf0\xc8\x3f\x33\x21\x7a\x26\x55\x1c\x13\xb7\xc6\x47\x0a\x9f\x36\x8b\x6b\xeb\x32\x1d\xb5\xae\x54\x89\x24\x30\x20\x75\x3e\xce\xa1\x4e\xb5\x6d\xb7\x18\x5e\x90\x87\x24\x5c\xb7\xe6\x79\x2a\xdf\xaf\xbe\x30\x97\x21\x1a\x50\x14\xd1\xb5\x17\xe7\xc0\xcd\x8b\xad\x57\xa7\x6f\xfc\x6b\x56\xf7\x2b\xa3\xac\x04\x63\x86\xcb\x00\xc9\xd7\x17\xdd\x92\x55\xa1\x8b\x31\x8b\xe5\x03\x6f\xa5\xd8\xbe\x7e\x75\xaa\xf1\xdc\x87\x44\xba\x37\xac\xab\x3d\x41\x85\x48\x4b\x35\x7f\x5c\xcc\x7f\x5f\xaf\x96\x2f\xbb\xfd\xef\x0b\x4b\x7b\xa0\xc0\x8d\xa9\x59\x92\xda\x5b\x06\x53\x06\x62\x22\xb4\xc3\xbd\x89\x12\x0b\x2b\xbd\x03\x4e\x0a\xee\x46\xbe\xbb\x1d\xcc\x43\x9d\xf4\x9a\x45\x8c\xb6\x42\x3f\xa9\xab\xb4\x17\xe2\x1c\x5c\x9c\x0e\x65\x91\xef\x30\x0b\xd1\xba\x8f\x4a\x33\x1f\x65\x84\xb8\x52\xfb\x13\xb9\xaf\xb6\x94\x5d\x15\xd9\x8d\xfa\xb7\xd2\x41\x88\xa8\x44\x4d\x19\x9e\x1b\xc5\x58\xa5\xc1\x51\x8d\xaf\xf2\x08\x59\x66\x53\x44\xe0\x40\x1c\x19\x92\xe3\xe2\x5c\xaf\xae\x33\xef\x83\x9f\x02\x47\x0b\xec\xfa\x68\xa2\xe3\xd6\x4b\xfb\x91\xd6\x87\x01\x55\xc1\xe8\x24\x57\x2a\xe9\xf7\x94\x9a\xd0\x21\x58\xe9\x59\x96\x61\x34\x6e\x4d\x04\x78\x8c\x88\x12\x28\x02\xef\x7b\x19\x76\x80\x20\x04\x9d\x25\xe1\x5a\xbc\xbd\xb5\xe7\x0a\xc1\x6c\x6b\x4f\x91\xe6\xf8\x3b\xd5\xb4\x15\x07\x4f\xb9\xb8\xf4\xde\x0b\xd0\xf6\x7c\xdf\x53\xb8\x0f\xcd\x72\x75\x28\x79\xdf\xa4\x83\x2f\x09\x30\x6d\xeb\x9c\xc4\x77\x34\xf2\x8a\x81\x31\x7a\xbb\x34\x6a\xb4\x91\x6e\x6f\x41\xa3\x81\x25\x1c\x43\x97\xdf\x7f\x9f\x4f\x40\x53\x80\x29\x87\xf5\x5a\x3b\x9a\x40\x22\xbb\xd1\x22\x02\x01\xf7\xd0\x57\x42\x0a\xa5\xca\xab\x27\xfd\x0e\x3b\x56\x4b\xa4\x0f\x7b\x5d\x12\x7b\xce\x2f\xc3\x48\x08\xdd\x00\x6b\x2d\xeb\xab\x76\xdc\xe1\x95\x43\xe6\x73\xe2\xad\xfc\x80\xac\x38\x41\xb9\xcf\xe1\x73\x5f\x11\x82\x69\x70\xc5\xc8\x89\x4d\x4b\x42\x9a\x35\x0b\x6f\x59\xa1\x76\x80\x1c\xbd\xd8\xd8\x57\x9e\xe9\xa8\xba\xe2\x11\x9c\xa2\x90\x96\x90\xb0\x90\x25\x6d\x5d\xf3\x0d\x5e\x37\xcb\xd1\x35\x13\x0e\x98\xd8\x7d\x81\xcf\x7b\x98\x90\x7e\xfc\x9b\xa8\xb9\xff\x77\xc9\x4f\x48\xa4\xc4\x06\xa6\x6f\x50\xcf\xd3\xba\x15\x1a\xbf\xf1\x42\xb9\x1f\xe2\xbd\xbe\xa7\x59\x76\x63\x42\xf3\x08\x30\x98\x44\xc8\x5a\x9a\xbf\xf5\x6c\xb4\x1d\xa1\x42\x6c\xe5\xca\x08\x37\x6b\xff\xaa\x09\x05\x31\x7f\x5a\xbd\xde\x3f\x34\x8e\x7d\xbb\x16\xa5\x4b\xd4\x2a\x9b\xd5\xd3\x62\x7f\xbf\xdc\xee\x36\xcb\xbb\xd7\xdd\x6a\xd3\x1e\x17\x32\x34\xd9\x59\xc2\xe2\x56\x8d\x5d\x1f\xde\x96\x04\x40\x9e\x98\xa1\x54\x81\x33\x1e\xa5\x89\x90\xe8\x5c\xa9\x5d\xb1\x18\x57\x87\x40\x79\x12\xfd\x0a\x2c\x21\x71\xd9\xb6\x35\xcc\x6e\x18\x1b\x95\x48\x42\x76\x9c\x71\xdd\x5d\xad\x53\x25\x48\x1a\xe1\xc4\x2f\xff\x3c\xf3\xb2\x86\x12\x13\xe3\x13\x8a\x83\x12\xc0\xa3\x98\xf9\x0d\x61\x52\xc6\x27\x6b\xed\x3d\x40\x08\xf8\x1d\x2d\x71\x26\x39\x02\xa0\x76\x8d\x69\x87\xe9\xa0\x62\xfa\xa6\x41\x78\xcc\xef\xd8\x8a\xb7\xdb\x39\xa8\x33\xed\xdf\xb6\xc9\x66\x30\xc3\x01\x9c\x80\xd8\x98\xb6\xe7\x13\x94\xe7\x6a\xec\x2b\x03\x80\x40\x28\xfe\x16\x78\x29\x0f\xcb\xf5\x66\x12\x34\x0a\xda\x4f\x10\x32\xd3\xf6\x5e\x10\x94\x7c\x72\x1b\x05\x1d\x13\xcb\xc3\x1b\xd4\xcf\xfc\xe7\xcd\x30\x1a\x34\xd7\x5c\xf4\x79\x22\x91\x5e\x8b\x2e\xf5\x50\x94\xe8\xa4\xc2\xc8\xb6\x6b\x47\x29\xca\xaf\xa3\x72\xc0\xdf\xeb\xf9\xd7\x0e\xb8\xd8\xf0\xbe\x83\xb2\xe4\x65\x7a\x3e\xf6\x36\x53\xed\x46\x01\xd6\x6d\xdb\x6e\x0f\x29\x86\x71\x8d\xf6\xc0\x47\x36\xd3\xaa\x28\xeb\x5e\x16\x53\xb3\x44\x12\xb1\x3e\xb4\x4c\x54\x5f\x36\x5f\xea\x20\x49\x34\xd1\x51\xbd\xe6\xe9\xcf\xeb\x62\x86\x0e\x5d\x07\xf9\x51\x5f\xf3\x0a\xea\xd9\x1b\xe4\x8a\x4f\x7e\x10\x1d\x06\x41\x2c\xbb\x46\x9e\xe7\xd4\xce\x36\x1d\xc6\x84\x7f\x34\x17\x18\xd9\x00\x1d\xc6\x1a\xb3\xdd\xd8\x3e\x6f\x05\x63\xdb\x73\x85\x8f\x09\x3e\xfa\x22\x77\xbc\x02\xca\x27\xfd\xad\xd9\xa9\x23\x83\x88\x9d\xdf\xfd\xd1\xdf\x18\x75\x24\x42\x2c\xd9\xc3\x31\x6d\xd6\x47\x35\x37\x1b\xe3\xf4\xb7\x8a\x84\x72\x84\xe9\xf1\x4e\x4b\x58\xe4\xc5\xf9\xed\xb0\xf8\x79\x7a\x28\xca\xbb\x26\x10\xb9\x62\x45\xd4\xb1\x1f\xfa\xb6\xee\x20\x8b\x36\x27\xa1\x79\x1c\xd9\x6c\xf6\x5d\x71\xce\xab\x05\x2f\x1b\x7f\x7e\xe4\x3b\x6b\xce\xa9\x77\x97\x0a\x84\xd7\x9d\x50\x5a\x38\x24\x15\x6f\x35\xea\xb0\x57\xe6\x9e\xd7\xfc\xb1\x97\xcc\xe9\x12\x16\x57\xa1\xfb\xe8\x6a\x0c\x10\xb1\xf2\x9c\x66\x59\x57\x3c\xd1\x22\x21\x3c\xf0\x47\x61\x0d\x44\x6f\xbf\xe9\xcd\x39\xa1\x18\x0b\xda\xde\x99\xb1\x24\x95\xd4\xb2\x09\xb0\x9a\x97\xd1\x2c\xa6\x14\xaa\xdf\xc1\x26\x87\xb5\x14\x0e\x1a\x77\x4e\x92\x70\xf0\x40\x04\xa9\x83\xfa\x94\x56\x10\x59\x07\xe9\x91\x97\x6a\xce\x4f\xf3\xc7\x87\xd1\x6f\x80\x43\xa8\x37\x64\xe7\x26\x67\xe3\x76\xde\x46\x43\xac\x11\x56\x3b\x2b\x3b\xb6\x05\xfb\x6b\xc0\x7d\xc4\xbe\xde\x3d\x3d\xcf\x2d\xbe\x5e\xeb\xc8\x41\x61\xcd\x66\x17\x58\xf3\x73\x5b\x5b\xd3\x5a\x73\xa2\x49\x38\x14\xa7\x6d\x5d\x94\xf0\x02\x3f\xeb\xa5\x99\xf9\xca\x71\x84\x23\xbb\xb4\xfe\x3d\xa8\x71\xd3\xb6\x19\xe7\x3a\x8e\xd1\xa1\x24\x26\xc7\x61\x2f\xfc\xe4\x67\x53\x8e\x2b\x23\xf4\xdb\x5a\xbc\xf6\xae\xb8\xef\x31\x2e\x4c\x46\x14\xca\xf1\x02\x1e\x25\xb6\x89\xee\x0d\x46\x37\xe2\x25\xc4\xc2\x60\x3f\xc8\x4c\x7d\xa4\x55\x71\x43\xab\x5a\x39\x9e\x72\x6c\x95\x1b\x9b\xb6\xfb\xa6\x43\x39\x1e\x30\x82\xa6\xf0\x4c\x12\x4c\x8b\xda\xf1\x66\xb9\xfa\x06\xf5\xba\x84\x2c\x3d\xa6\x39\x2f\x2f\x8d\xc3\xbc\x81\xaa\x6f\xbf\xcf\x5d\x13\x49\xe3\x48\x92\x82\x5a\x33\x13\xaf\x2b\x93\xca\x61\x9e\xc4\x04\xc9\xb7\xf4\xad\x9f\xd3\x50\x0e\x4b\x3c\x8c\xb7\x86\x89\xea\x49\x63\xa1\x1c\x8b\x12\x6d\x8c\xe0\x1d\xd4\x9f\x00\x79\x73\x63\xd5\x6f\xed\x71\x81\x77\x41\xb9\x4c\xeb\xd0\x20\xa3\x48\x6f\x8b\x53\x4e\xc8\x39\x52\x11\xfe\x68\x6b\xef\x43\xe0\x80\x72\x42\x88\x90\xed\x63\x3b\x5f\x6d\x16\xfb\xcd\x62\xbd\xda\xec\xf6\xdb\xdd\x6c\xb3\xdb\xef\x96\xcf\x0b\x3b\x2c\x0a\x04\x5e\xa8\x2f\xbf\x6f\xe6\xb0\x72\xa2\x84\xc5\x66\x87\x3f\x16\xa8\xf4\xbb\x4d\x73\x09\x4f\xbc\xaa\x1f\xfb\x0d\xb1\xed\x70\x8e\xe9\xf1\x3f\x77\xeb\xd9\x9f\x5f\x20\xa7\x94\x13\xc7\x91\x67\x7f\xf5\xbe\xb0\x34\xa5\xca\x49\x22\xf0\x6c\xb0\x39\x7e\xa0\x44\xbb\xa8\x4d\x02\xa9\x2a\x4c\x4f\xc0\xde\x1e\xe3\x0e\xc4\x44\x89\x53\x93\x62\x9d\x28\x7a\x99\xf9\xd1\x37\xe0\xc0\xb0\x29\xbb\xf9\xd2\xe5\x10\xd5\x36\x1e\xa9\x63\xcc\xec\x9d\xf8\x65\x72\x6b\x53\x8e\x08\x09\xc5\x5e\x9d\xc5\x7e\x5a\x2e\x54\x39\x32\xf4\x9d\xc8\x16\x45\x16\x3f\xd3\x71\x82\x50\x39\x92\x4b\xa4\x4b\x3a\x9f\x28\x6d\x71\x5d\xa1\x50\x8e\x94\x0c\x1b\x85\x4a\xf8\x80\xb2\x82\xed\x29\x33\xe2\xde\x94\xca\xe9\xd3\x33\xff\x36\x3c\x13\x02\x85\xbf\x6f\xd8\xd6\x98\x7d\x69\x10\x72\xb4\x67\xe8\x80\x2e\xe7\xab\xdf\x7a\xb3\x5d\x2b\x4e\x7d\xd2\x79\x9d\xd6\x97\x1e\x77\x81\x72\x1d\x8f\x21\x87\x80\xc8\xb8\x7c\x47\x1a\xca\xb2\x3b\x94\x20\x45\xa2\x01\xfb\x62\x98\xff\x3a\x41\xad\xac\x5c\x37\x21\x4a\xdf\x26\x94\x2f\x51\x53\x63\xfa\x63\xb9\x2e\x24\xc8\x5b\xf4\xd9\x6c\x61\xf8\xbc\xf4\xc5\xaa\x75\x9f\xd1\x5b\xb9\x5e\x22\x48\x73\xba\x99\x97\x0f\xb6\xb5\xb3\xea\xed\x53\x68\x37\xec\x2b\x77\x3d\xee\x38\x2d\xf6\x4a\x73\x09\x4b\xb5\x5f\x6c\xe6\x57\x14\x25\xca\xf5\x5d\x8e\x5b\x0b\xf2\x3e\x5a\xfc\xf2\xe2\x67\xdd\x78\x29\x22\x83\xb6\x6e\x6d\x86\xb3\xc4\x48\xe6\x16\xc6\x15\xbf\x81\x33\x18\x3e\x26\xd3\xa4\x2b\x68\xe1\xab\x43\xee\x11\x33\x28\xf0\x25\xe2\x92\x1b\x8f\xa2\x75\xb4\x95\x1b\x40\x82\x0e\xe5\x81\x57\xcf\x69\x7e\x77\x56\x6f\xb7\xa9\xc0\xda\xe7\x0f\x9d\x08\xfd\xa5\x66\x33\xdf\x9c\xab\xc3\x2f\x3b\xf4\x94\x1b\x2a\xc0\xd8\xb5\x30\x84\x81\x8d\x97\x0b\xf5\xe8\xc3\x86\xda\xc5\xc8\xe8\x9c\x13\xfb\xf3\x14\x4d\xa3\x72\x23\xcf\xc7\xc2\x10\xce\xa1\x96\x33\x4f\xb9\x51\xc8\x90\x11\x89\xf6\xb2\x56\xad\xec\x8b\xaa\x86\x72\x23\x9e\x60\xc7\xac\x30\xd8\x92\x01\x67\x4b\x7f\xaf\x70\x23\x15\x76\x12\x53\x46\x8d\xe6\x26\x32\xf2\x6a\x67\x1f\x17\xbb\xaf\x2a\x51\xca\x8d\x7d\x5a\x1a\xb3\xb2\x5e\x5a\x93\xee\xc6\x41\xe8\xf6\xca\xee\x50\x9a\xec\x23\xa0\x1f\x35\x2e\xa0\x0d\x9f\x2d\x8e\xc0\x17\x3d\xa6\x13\x03\xa8\x40\x4d\x5a\x80\x87\xa2\xdc\xf0\xbf\x6e\x2c\x9c\x38\x09\x43\x6a\x78\x43\xc6\x6c\x85\x99\xc0\xe7\x42\xbe\xdf\xac\xa4\x29\x37\x71\x7c\x4c\xee\xa6\x6d\xef\xeb\x9c\x9f\x96\xb2\x40\x1d\xe2\xdd\x67\xb1\xee\x25\xa4\x94\xcb\xa3\xc8\xa8\xb1\x65\xd9\x0b\x97\x5f\x12\xdf\x28\x97\x37\x9b\x1b\x91\xe0\x6d\x28\xd5\x79\x21\x92\xc8\x6b\x3e\xb0\xe1\xac\x17\xbe\x87\x10\x9e\x17\xf8\x7c\xee\x77\x72\x2b\x57\x44\x61\x6c\x71\xa2\xb6\x6e\x4b\xa7\x42\xb5\xd2\x4f\x43\x45\x85\xd1\x45\x39\x20\x63\xd3\x36\x7d\xcb\xcf\xc7\xe1\x55\x25\x47\x08\x34\xe2\x3e\x4b\x2e\xae\x84\xfd\x94\xab\x7c\x86\x1d\xb7\x0f\xab\xd7\x97\xfb\xc5\xc6\xf2\xf7\xba\xf6\x12\x0a\x2c\x66\xb3\xe6\xd9\x4a\xeb\xce\x42\x6a\x26\x90\xe1\xc2\x62\xe6\x16\xa5\xbc\xce\xcf\xda\xb1\x91\xc2\xb1\xdf\x1a\x47\xbe\x68\xec\xec\x7d\xcf\x2c\x69\x2e\xf1\x37\x88\x97\x6c\xbe\x7a\x7e\x7e\x7d\x59\xee\x4c\xda\x56\x79\x6e\xcc\x12\xdf\xc2\x46\xb1\x05\x6f\x0d\x65\x1f\x24\xab\x3c\x97\xc7\x68\x4e\xee\xd3\xb7\xb4\xe6\x59\xe3\x57\xa7\xf9\x1b\xc6\x88\x83\x97\xe5\xb9\x9a\xfa\x1e\x0c\x49\x53\xcb\x13\x6b\x0e\x7b\x82\x24\x6e\x8e\xe4\xda\x53\x5f\x40\xcf\x54\xb7\xe3\x94\x13\x59\x8e\x0c\x9e\xbf\xdf\xd1\xc7\x1c\x89\xf8\x2b\xcf\xd3\x2e\x46\x63\x88\xba\xc3\x12\x42\xc7\x5b\xa5\x3c\xdf\xf1\x50\xca\xcb\x22\x1f\x86\x75\x92\xe6\x78\x84\x29\xfa\x27\x7e\x14\x45\xff\xbb\x7a\x3e\x08\x82\xa3\x34\x7f\x7c\xe0\x59\x26\xb8\xad\x8e\x28\x8f\x79\x24\x69\x93\xe6\x69\x7d\x57\x88\xe9\x35\xe5\xb1\x44\x6b\xcb\x20\x09\xea\xae\xf1\x31\x10\x7e\x30\x08\x9c\x95\xc7\x04\xe9\x9e\xfd\xeb\x71\xb5\x99\xb5\x7f\x54\xe0\xb5\xb0\xa0\xfb\x33\x64\x77\xf0\x96\xb6\x37\xc7\xb4\x83\x08\x96\xb4\x5a\xda\xa6\x21\xea\x9b\x9c\x9c\x1a\x5e\x10\x3a\x98\xd2\xda\x37\x2b\xb5\xac\xe0\x9b\x89\xd1\x46\xe0\xbe\xe1\x49\xa1\xc7\x3d\xd3\x53\x6a\xf8\xd3\x2d\x82\x46\x79\x91\x47\xa0\xa2\x95\xe9\x3e\x6c\xdb\xfc\x94\x17\x07\x0e\x6e\x2f\xc4\x74\xf5\x4b\x04\x79\xdf\xcf\xf3\xe2\x00\xd0\x44\x60\xfb\x4b\xaf\x89\xa7\xbd\xb6\x0a\x91\x85\x76\xf7\xb0\x9a\x7d\xe5\x30\x7a\xb1\xa6\x12\xea\xde\x8a\xc1\xc1\xd7\x52\x60\xca\x4b\x1c\x42\xde\x1b\x58\xc3\x13\xe4\xf5\x61\xe0\x43\x7b\x49\x40\xb2\x8e\xdf\x8a\x42\xed\xca\x22\x9f\x6c\x09\x36\x63\x05\x23\x96\x0b\xb3\x56\x4c\x7b\xff\x20\x10\xf0\x44\xc8\x18\x1b\x35\x71\x1e\xd2\x1a\x9e\xa6\x52\xb2\x9d\xaf\xe5\x49\x07\xb8\x6a\x13\xfb\x8f\x03\x54\xdd\xe8\xa1\xa4\xc7\x30\xb3\xd5\x29\x54\x1b\xdc\x6a\xeb\x0d\x78\x12\x88\x4d\x44\x9a\x19\xbe\x7f\x28\x4a\xd3\xe3\x31\xaa\xc0\x75\x68\x33\xe5\x29\x00\xd9\x41\xb0\xaf\xf0\xda\x57\x66\x74\xb8\xb3\x7a\x5a\x6b\x6c\x9d\x7f\xc8\xd2\xd3\x8b\x9d\xf2\xbe\xeb\x31\x94\xba\x43\xb1\x84\x0e\xe0\xa1\x7c\xcf\x51\x08\x7c\x44\x97\x8a\xe4\x0a\x50\xc6\xe9\x32\xfd\xd8\xbe\xe7\x89\x88\x08\x79\x11\xc1\x7a\x4a\x87\x06\xca\xf7\x38\x67\xcc\xac\xde\x94\xd7\xd0\xa7\x9e\xb6\xbf\xe9\x87\x01\xc6\x32\xf8\x9b\x7b\x93\x40\x1a\x9a\x1e\xdf\x8f\x09\x31\x7c\x01\x5e\xae\x72\xdb\xfe\x92\xb6\xe6\xdb\xf7\xa5\x44\x6a\xc1\x96\xa6\xbb\x0d\x54\x48\x4d\xdb\x8e\x63\x01\x58\xa5\xd3\xc5\xee\x71\x32\x2c\xf0\x03\x5f\x82\xdd\x0a\x4a\xfe\x79\x0f\x1f\xf6\xec\x20\xd0\x98\xef\xe4\xa6\xa2\x76\xc7\xdf\xaa\xf6\x58\x18\x8a\xa8\xc7\x06\x36\x89\xa7\x9b\x5a\x42\x7e\xa0\x88\x3e\xf8\xdb\x6c\xbb\xdf\xad\x9a\x1d\x63\xfd\xb4\xd8\x2d\xf6\x8b\x3f\x16\xf3\xd7\xdd\x72\xf5\x62\x7f\x22\x0c\x95\xa2\x24\x1b\xd6\x72\x16\xf5\x21\x95\x8f\x67\xb1\x03\x7e\xec\xcc\x82\x1f\xf2\x00\xcd\x74\xd7\xf1\x6e\x4a\xb4\xf6\xb8\x24\xa4\x1b\x4e\x94\x5d\x31\xc0\xc5\xf6\xa7\x9e\x1f\x4a\x89\x3b\x95\x38\x97\xf9\x30\xab\x32\x5c\x83\x7e\xa4\x01\x13\x18\xeb\xb2\xa8\x81\xdb\x65\xe7\xc7\x9e\xb0\xa9\xa1\x1f\x69\xae\x8a\xcf\x99\xfa\xcf\xa6\x71\x91\x1e\x08\x8b\xd3\x6d\x30\xbd\x45\xe7\x73\x0f\x10\xde\x48\xb7\xbf\x52\xaa\x9a\xfe\x4a\x3c\xf0\x9c\xb8\x27\x72\x97\xfe\x05\x58\x96\xfb\xc6\xab\xde\xcb\xe0\x09\x35\x3a\x1b\xb0\x64\x9f\xf3\xde\xbb\x52\xb2\x37\xe7\x08\x13\x96\x1d\xf7\x27\x22\xbf\xb4\x17\x13\xa0\xb1\xaa\xf5\x02\x9f\x43\xf9\xf5\x2f\xe9\x09\x94\x2f\x25\x71\x39\x37\x2f\x02\xe0\x3d\xbb\xf4\x7a\x06\xbf\x17\xd9\xf9\x88\xbc\x20\xbd\x1f\x92\xe0\xfa\x7d\x59\xbb\x67\x9e\x9f\x79\xd6\x41\x7f\x47\xef\x5f\x39\x64\x23\x72\xf8\x7c\xb9\x92\x19\x34\x63\xc0\x4d\x6c\x4d\x60\xde\xe6\x24\x95\x0f\x11\x73\x0c\xec\xf1\x7c\xda\xf6\x14\x99\x47\x3f\xa1\x9d\x04\x8d\xd7\x2c\x2d\x39\xb1\xc7\xa0\xc3\x39\xf5\x4b\x1a\x82\xd0\xb3\x65\x2c\xc5\xcb\x6a\xd9\x7a\xa6\xcc\x89\x98\x6e\xb7\x7a\x64\xdf\x18\xa6\x7c\x15\xf3\x5d\x86\x67\xdf\x9d\x2f\x77\xdb\x5d\xdd\xcb\x05\x2a\x16\xb8\x44\x22\xbd\xfe\xb6\xee\xdb\x77\x16\x44\x0a\x17\xec\xef\xb3\x35\x76\x8b\x7e\xb1\xd8\x58\x14\x6b\x29\x8c\xc6\x33\xd2\x1d\xf1\xf2\xc6\xb6\xcc\x22\x23\x96\xdd\x78\xb1\xe4\x60\x35\x1b\xc6\x13\xe4\x6f\x07\xfb\xfe\x58\xa4\x8c\x68\x6b\x21\xdf\xb7\x00\x6a\xd4\xb2\xa6\x58\xcc\x42\x87\x80\xfb\xf2\x30\xf0\xf2\x58\xac\xb9\x43\x74\xad\x88\x24\xde\xfb\xf6\x40\x92\x70\xed\x77\x2b\x00\x51\x5b\xd5\x57\x9c\x30\x8a\x25\xda\xa1\xbe\x5f\xac\xa1\x12\xd2\xaa\xbf\xb9\x0d\x1f\x8c\xfb\x81\x65\x87\x7c\xe2\x8d\x37\x67\xa9\xe2\xa6\xa0\x56\x8a\x89\x50\x88\x3e\xa6\x75\x2b\x8b\xf3\xa9\xb8\x51\xa3\x55\x4c\x98\xf4\xba\x1d\x4e\xb9\x90\xe6\x5d\xff\x9e\xe6\x6f\x3f\xd2\xfa\xd0\xf8\xf6\xbc\x3e\x97\x37\xd5\xda\x7f\x59\x98\xec\x99\x29\x26\x9d\x08\x33\x77\x3b\xa8\xea\x30\xb6\x2f\x51\x6a\xae\x8c\x4f\x8b\x2f\xa5\x8f\x2d\x32\x43\x94\x74\x30\xd7\x95\xf1\x5c\xd9\xd7\x6b\x4f\x07\x87\xd2\x7d\x9b\xc5\xc3\x62\xb3\x99\x3d\x11\xc1\xfe\xb6\x3d\xac\x42\x83\xa4\x39\x9a\xac\x34\xa1\x89\x0d\xe0\x5b\x05\x8e\xe7\xf2\x36\x85\x63\xc3\xaa\xe1\xef\x07\x8e\xcf\x10\x95\xb5\x41\x82\xc0\x5f\x75\xa8\xd8\x93\x84\x8f\xd9\x6b\xfb\x76\x67\xb9\x7a\xea\xd3\xa6\x0f\x47\xbb\xbe\x80\x96\xd9\x0a\x78\xd5\xbc\xf3\xc1\xc7\x0d\xdc\xc0\x43\xc7\xa5\xbe\x9c\x7a\x6c\xe1\xe3\xcb\x84\x01\xa2\xaf\xaa\x43\xf1\xd9\xc2\x42\xaf\xe1\xc1\xcd\x40\x70\x98\x05\xbc\x1e\x05\x27\x5f\xb0\x15\xc1\xf3\xe2\x7f\x8c\x7e\x3d\x09\x51\x5e\xce\x34\x98\x5d\x6b\xa4\xde\x08\xf1\x6f\x6c\xab\x16\x96\xe6\x11\x83\xf9\x60\xe5\x07\xae\x0a\x94\x69\x44\x1e\x77\xff\x8f\x9e\x56\x73\x66\xb8\xea\x4f\x45\x35\x4d\x24\x6f\x86\x7a\x51\xe0\x19\x0a\x87\xa7\xa7\xef\x88\x43\xdf\xbb\xfe\x6f\xc3\x31\x2a\x26\x09\x59\x38\xa6\xf5\xa6\xc8\x60\xdc\x7b\xd8\x0b\xf4\x03\xdf\x61\xd8\xae\xd8\x73\x5d\xcc\xcd\x8e\x63\xf2\xe1\x3d\xfb\x52\x24\x61\x9b\x8f\x78\xcd\xd3\xba\x7a\xad\xa0\x9c\xf3\xfc\xee\x7c\xa1\x80\x65\x78\x02\x6b\xe2\xfe\x2e\xf7\xb8\xa8\x24\x3f\x81\xa1\xf2\xb4\x43\x02\x8d\x60\x0b\x89\x7b\xff\x6c\x9c\xb9\xb3\xa3\x84\xc4\x7c\xd5\x53\xf1\xf6\xb2\xd7\xb9\xbc\x95\x38\x19\x7c\xa3\xe1\x42\x76\x47\x0f\x13\x38\x31\x2e\xcc\x7d\x05\xf5\x9a\x5f\x76\xa3\x85\x1b\x04\xa1\x87\xf1\xf7\x7a\xb3\xd8\x2f\xe7\xab\xfd\x7a\xb1\x59\xae\xee\xed\x6d\xc7\xae\x1b\x0f\xaa\x18\xf9\x1b\x64\xd3\x68\x56\x7b\x86\xe7\x22\x7a\x71\x5f\x0e\xe8\x3a\xba\xa3\x58\x24\xb5\x65\xe1\xfa\x6c\x90\xcf\x83\x5a\xa4\x1d\xec\x0b\xad\x7b\xb5\x9c\x51\x07\xeb\x70\x57\x0d\x12\xe6\x33\xd5\xc1\x20\x27\x80\xe6\x2a\x48\x34\xb9\xe4\xcb\xdd\x59\xd8\x5d\x32\xe0\x52\x28\x2b\xc1\x93\xe6\xe7\x09\xc1\xc9\xee\x96\x38\x24\xe8\x86\xbd\x14\x0a\xb6\x9f\xfc\xd4\x6d\xb9\xbf\xb2\xb2\x37\x0a\x87\xbf\x82\x99\x98\xdf\x15\x11\x21\x6f\x56\xa2\xe6\x69\x3e\x3f\xa4\xa7\x3e\xf1\xa0\x0a\x44\xc2\xf0\xf8\x7c\xfe\x48\xdd\x32\x36\x4b\x13\x48\x06\xf8\xfd\x77\xcb\xe7\xc5\xea\x75\xb7\xbf\x5f\x6c\x77\x9b\xd5\x9f\xed\xe1\x80\xd9\x70\x79\x20\xc6\x38\x7d\x1b\x92\xfb\xa4\xfe\x68\x5b\x02\x7f\x5e\x90\xa9\x62\xf8\x96\x55\x24\xb0\x3f\xe2\x61\xb1\x78\xea\x74\xb9\x54\xa0\x40\x22\x05\x75\x2b\xcb\x38\xaa\xc4\x04\xe0\x73\x8c\xcf\xbf\xad\xd7\x8f\xb3\xcd\x33\xe9\xb0\x4c\x9a\xee\xd0\x09\xbc\x48\x0c\x3a\x03\x5b\x82\x9b\xab\x99\x79\x55\xb7\x54\xa1\xeb\x4a\xa4\x6d\xdf\xad\x76\xb3\x27\x9c\xf7\x83\x3d\x29\x74\xb5\xc6\x86\x19\x79\x3c\x4d\x6b\xd1\xaa\xd0\x73\x42\xec\x26\xa5\x70\x2c\xbb\xe7\x97\x49\xa6\x76\x15\x7a\xae\x63\xab\xae\xaf\x39\xf2\x28\x13\xd1\x75\xbe\xf8\x59\x98\xa5\xd4\xff\x05\xfb\x4d\x43\xcf\x57\x88\x8d\x82\x5c\x16\xaa\x23\x73\xe8\x4d\x4a\xfa\x97\x04\x23\x98\x33\x3a\x3b\xd0\xae\x21\xc2\x83\x11\xab\xb3\x0a\x9b\x50\xd6\x37\x9c\x20\xd6\x44\x85\xbe\x07\x88\x02\xc7\xe2\x02\xf9\x5e\xd7\x95\x5f\x3b\xd6\x0f\xf1\x99\x9e\x21\xad\x2a\x3e\xb7\xb2\xcf\x7d\x4f\x32\xf4\x13\x2f\x30\x9e\x3a\x65\xfb\x1b\xdb\x31\xbf\x6a\x38\x51\xa1\x2f\x7d\x3f\x26\xdb\x68\x76\xf7\xd1\xed\xb2\xd0\x0f\xc2\x3e\xf5\xdd\xbc\x38\x9a\x0e\xb8\x5d\x31\x78\xeb\xed\xe3\x07\x8e\x8b\x38\x15\x93\x18\x69\xbb\x06\x42\x36\x34\x09\x61\x10\x2a\x74\x2e\x1e\x8a\x63\xe1\x59\xbb\x17\x06\x49\x14\x33\x1b\xd4\x3f\x8d\x9b\x25\x54\x18\x68\xc9\x48\x98\x4e\xd8\x53\xc2\xc0\x8b\xb9\x15\x90\x19\x3a\x06\x61\x14\x48\x07\xda\x26\xe1\xe7\xe2\x63\x68\x2f\x06\x30\x3b\x15\x46\x09\x71\x72\xdb\x27\xfb\xc6\x5b\x26\x02\x3c\x88\xd6\xaa\x09\x24\x89\xde\x7c\xb4\x89\x84\xb1\xeb\x71\x66\xa9\x5b\x1b\x5f\x7a\xcf\x1d\x7b\x76\xcc\x62\x0b\xd9\x9a\x9d\xeb\xc3\xdd\x65\x7d\x28\xf2\x01\x03\xa7\x0a\xe3\xd8\xa5\xf2\x44\x06\xbc\xdc\xcc\x9e\x67\x59\xd6\x9e\x0e\xc2\xa7\xcd\x04\xd9\xb1\x7f\xa6\x37\x42\x9c\x90\x27\x44\xd1\x79\xe0\xd5\xbc\xb9\x0c\x42\xad\x7b\xc4\x84\x43\xd7\x25\x14\x42\x62\x39\xa9\xb9\x65\x03\xb1\xea\x8a\x4d\xa1\xd0\xd4\xcc\x2d\xb9\x49\x38\x19\xbe\xd9\x29\xf4\x8c\x0a\x25\x0b\x11\x6c\xa1\xa1\x05\x30\x64\xa0\x68\xbb\xa5\x2c\xd1\x08\x28\xa5\x42\x19\x46\x66\x7e\x95\xaa\xea\x97\x01\x43\xc9\x25\xd2\xe0\xa6\xd5\xba\x4c\x9b\x93\x47\x62\x1c\x2a\x54\x40\x3c\xd6\xea\x05\x7e\xd6\xfd\x2c\x78\x08\x41\x14\x73\x4b\x08\x83\xb9\x83\xc6\x23\xe8\x8e\x02\x89\xf8\xf3\x4c\x2e\xe7\xab\xaf\xf3\x7c\x21\x28\x61\x69\x5a\x1a\x57\x64\x94\x9c\x0e\xb5\xf2\x1c\x65\x51\xf1\xa0\x3a\x51\xdf\xfe\x87\x8d\x9c\x98\x09\x13\x83\x35\x37\xfb\x52\xb4\x6c\x97\x2a\x72\x92\x00\x4b\x05\xdf\x88\x58\x17\x6a\xe4\x53\x24\x17\xa6\xbf\xb0\x22\x47\x06\x58\x5e\x7a\xfa\xf3\xa1\xbf\xda\x23\x47\x4b\x48\xba\x32\x05\x72\xfd\x43\x5b\xaf\x05\x45\xb0\x85\xe1\x54\x8d\xdc\xd0\x13\x06\x55\xde\x23\xaf\x3c\x77\x54\x35\xee\xe8\x45\x44\x6e\xe4\x2b\x23\x6b\xf5\x74\x96\xef\x17\xd1\xef\xd8\xb4\x63\x12\xdf\xa7\xcf\x99\x77\x37\xb0\x01\x54\x92\x19\x74\x6c\xab\xc8\x05\xe2\xd1\x6b\xab\x7d\x69\x7e\x67\x85\x8f\x47\x57\xf5\x98\x8f\x18\x8c\xcf\xf4\x04\x77\x6d\x55\x78\xb2\x87\x4e\x45\x5e\xa0\x91\x1f\xf9\xf5\x6e\x3b\x78\x4b\x5e\xec\x60\x13\xdb\xf6\x50\x7c\x5a\x98\xb5\xba\x09\x3d\x9d\x9c\x0b\x91\xef\x2b\x4b\x1c\xf2\x9a\xe6\x35\x95\x52\xe7\x37\xfb\xdd\x55\xe4\x27\x1c\xa1\x28\xf0\x33\xad\xea\x8a\xbc\xa8\x0e\x78\x30\xb9\x80\x23\x9f\x27\xc2\xd0\x48\x34\xb3\x89\x4d\x3b\x04\x11\xf3\x22\x24\x42\xd2\x45\x29\xc1\x10\xb4\xd9\x43\x11\x43\x47\xf0\x4c\x92\x5f\xf7\xd0\xec\xd2\xa4\x61\x70\x4c\x47\x38\x2c\x15\x31\xc9\xc0\x38\xff\xb3\xda\x7c\xb2\xeb\x74\x72\x3f\xa4\x1e\xdf\x89\x92\x89\x32\x7a\x41\xa9\xb4\x7a\x09\xc8\xdd\x7f\xe0\x65\xda\x6a\x67\xde\x6a\x69\x56\x51\xe8\x6b\xdc\xaf\xb8\x52\xc4\x73\x70\xc5\x9f\x74\x9d\xe5\x32\xe8\x9a\xe1\x3f\xf6\x7a\x01\x73\x8c\xfe\xd9\x32\x9f\x42\x3b\x44\xa1\xd0\x6e\xd2\xa6\x8e\x9b\xd8\xa2\x9a\x16\x20\x55\x51\x14\x6b\xf4\x5c\xe7\x45\x9a\x37\x8b\xd7\xbe\xe5\x88\x4b\xcf\x90\x28\x88\x73\x39\xce\xf5\x46\xb1\xa3\x1c\xd5\xf1\xc7\x18\x39\xa1\xe9\x9f\x88\x63\x89\x65\x0a\xeb\xeb\x7f\x59\x04\x31\x31\x56\x94\x78\x4a\x18\x19\xa7\xa5\x2c\x26\x13\x2a\x51\x12\x01\x66\xe0\x28\xea\xb2\x44\x0e\xd7\xba\x69\xf1\xf0\xca\x9c\x79\x04\x22\x97\xe9\xb1\x89\x12\xd6\x25\xc8\xb4\x82\x7b\xfa\xdf\xa3\x07\x4d\x54\x98\x78\xbd\x10\xac\x09\xab\x77\xc5\x00\xc9\x6a\x46\xf2\x44\xab\xe6\xba\x39\x42\xa5\x4c\xa6\x62\x78\xc3\x5c\x0b\xac\x62\x75\x3b\xa8\x76\x23\xfb\xc6\x85\x93\x20\x18\x86\x64\x47\xd3\x3a\xfd\xab\x67\x4f\x44\x14\x33\xf3\x45\x1f\xb8\x9c\xcc\x1e\x46\x02\x5c\x97\x3a\x9e\x3f\xa0\xc3\xaa\xaa\x48\xba\x3e\x4a\xb9\x9c\x1a\xa3\xe0\x3e\xf3\x9f\xf8\x10\x73\x7e\xb2\x03\x94\x1f\xa3\x5d\xc3\x14\xd7\x38\xd9\x17\x3b\x2e\x60\x52\xf2\x92\x56\x87\x34\xeb\xd3\xf6\xa9\xd8\x51\x0c\x6f\x2b\x87\xcf\xd5\xef\xf6\x8f\xae\xe7\x86\xb6\x19\x0e\x99\x02\x5a\xbe\x08\xdf\xfb\x77\x92\xfc\xaf\x1d\x16\x70\xbc\xdd\x0d\xb5\x03\x97\xbf\x12\x0a\x52\xb1\xe7\x50\xbd\x2b\x3f\x1f\x2d\xad\xab\x7d\x41\xb1\x17\x6a\xc4\xff\x19\x8a\x82\xbc\xc7\x2a\xaf\x62\x3f\x12\x78\xd0\xf4\x27\xef\x8a\xf5\x39\xcb\x56\xe7\x71\xfb\xe4\xe4\xf2\x8d\x7d\xe0\xb1\xba\xa6\x05\xf8\x8a\x39\x70\x78\x01\xa6\x88\xff\xc9\xca\x9b\xa7\x1f\xb0\xcc\x55\xfa\x91\xaa\x33\xcf\x46\xfc\x7c\xd3\x4b\x28\x0e\xfc\x04\x5b\xb0\x78\x55\x41\x59\x2f\xfe\xcf\x65\xe4\x08\xba\x86\xf5\xc0\xfe\x6b\x77\xd3\x38\x88\xbd\x98\xf0\xc9\xaa\x89\x6f\x7b\x24\x94\xed\x6a\xfb\x45\x1c\x79\x9e\xea\xeb\xfc\xc7\xf0\xae\x12\x66\x54\x94\x79\x59\xbf\xc0\x27\x89\x6f\xd9\x83\xc2\x31\x05\xe3\xb6\x6f\xfe\xb7\xd1\x43\x81\x8b\x0a\x98\x0f\xab\xd7\xcd\xee\x71\xff\xba\x5d\x6c\xf6\xf3\xd7\x9d\xbd\x40\x18\x28\x5c\x2c\x90\xab\x3d\x3f\xf7\x1d\xb7\x38\x4c\x22\x2c\xaa\x1e\xf9\x3b\x3c\x20\x3e\xa3\x87\xbe\x8a\x63\x1d\x3a\xfe\x98\xae\xce\x06\x1c\x3d\xe2\xea\x91\x23\x60\x63\xb8\x38\x89\x42\xe4\xf4\xfd\xfd\xcf\xcd\x72\x35\xd8\x66\xe3\x44\xc5\x98\x28\xbe\xec\x77\x69\xdd\x2d\x11\x1e\x25\xca\x78\x51\x0f\x45\x96\x15\x9f\x69\xfe\xd6\x51\x56\xdb\x41\x3c\xc2\x20\xf4\x73\xdc\x68\xd2\xfe\xb0\x60\x81\x87\x98\x67\x5e\xbf\xe6\xa9\x2c\xca\x76\xfd\xc7\xd2\x55\x3e\x75\x16\x83\x7c\xef\x4b\x6e\xed\x8a\xe5\x7c\xb6\x6e\xb6\x23\xaa\x12\xe7\xd7\xbe\xf0\x64\x71\x39\x96\x41\x88\x65\x32\x95\x56\x5c\x64\xf0\x5c\x7c\x74\xb5\x8d\x58\x72\x62\x5f\xaa\xa0\xfe\x9e\x96\xf5\x99\x67\xc6\xcd\xb1\x49\xb9\xe1\x97\x94\x22\x94\x1d\x39\xe6\x3a\x3b\xbf\xa5\x37\x4a\xc1\xb1\xf2\x19\xe2\x51\x9b\x1d\xfd\xa1\x28\x77\xc0\x8f\xf6\x47\x55\x10\x63\x96\xf3\xc5\x12\x3e\x34\x7f\x92\x18\x32\x18\x8b\x55\xd6\x90\xf5\x0e\x41\x57\xe6\x9b\xf4\xc2\x62\x15\x87\x96\x50\x33\x83\x0f\xb8\x62\xbe\xb4\xc3\x12\x0f\x7b\xc8\x4c\x5d\xf2\x3e\x3d\x65\xc5\x91\x2f\xf2\xfa\x9a\x30\xc7\x9c\x01\x4e\x82\x20\xc8\x4f\x48\x77\xc5\xc0\x70\xd9\x01\x2c\xf2\x9a\x01\xcb\x9f\x69\x9e\x9e\x8f\x0f\xed\xac\x06\x66\xa9\x2b\xeb\xf9\x6c\x85\x95\xb6\xf6\x50\x18\x53\x85\x0e\xf5\xf1\xb6\xbb\xd9\xb7\xc5\xbe\x59\x1b\xf6\xb8\x0e\x5d\x84\x6a\xad\xa1\xd4\x20\x7b\xbd\x7d\x2a\xd6\x49\x12\xc9\x5e\x17\xdc\x3f\xeb\xcb\xf2\xa4\xab\x91\x4c\xbc\x4a\x1c\x4f\x61\xb1\xdc\x18\xc2\x6d\x9a\xbf\x11\x3f\xe1\x70\xa3\x4a\x1c\xa5\xb1\xda\x59\xf3\x12\x6b\x51\x03\x2c\x69\xe2\x86\x0c\x53\x7b\x18\x91\x5a\xfa\xe1\x9e\x6e\xb8\x4a\x3c\x97\xf4\x44\x0e\xc4\xf5\xbc\x17\xa9\x6a\x5b\x83\x54\xe2\xfb\x01\x76\xb0\x57\xf2\x00\xea\x9c\xc1\x23\xcf\xdf\x90\x87\xc7\x1e\xd7\x84\xbe\x79\x9a\xbd\xbe\xcc\x1f\xf7\xf7\xad\x52\xa0\x4a\x58\x40\x18\xb1\xd5\xeb\x6e\xf9\xf2\x6d\xb3\xd8\x2e\x36\xdf\xbb\x83\xc2\x71\x82\x36\x17\xda\xcf\x9e\xd9\x01\x9a\x23\xfc\x65\xbd\x59\x20\x3b\xe6\x7c\xb6\xb6\xe7\x06\x9e\xdb\x93\xf7\x9c\x91\xab\x32\x6e\x71\x6d\x86\x85\x26\x3e\x2f\x26\x2a\x23\x63\x6b\xf9\x5f\xfe\x6b\x7f\x23\x22\xaa\x16\x05\x32\xe3\x25\xb4\x7b\xc3\xa2\x35\xae\x49\xa0\x12\x27\x31\xe0\x31\x22\xa0\xc3\xde\xd7\xee\x15\x07\xda\xe6\x86\x72\xb5\x81\x63\x13\xe8\xef\x8a\x9e\xee\x81\x4a\x42\x9f\xe1\x88\x03\xcf\x55\x66\x5c\xec\x0d\x2d\x80\xd1\x33\x87\x31\x60\xf2\xb8\x3c\xe7\xb0\x2b\x7e\x40\xda\x9f\xb5\x49\x28\x7c\x16\x63\x80\x77\x67\x20\xb5\xf6\x48\x24\x01\x23\x3a\x93\xfd\x33\xf3\x64\x74\xf1\x38\x72\x1c\x43\x80\x68\x22\x9e\x65\xf5\x52\xd4\x0f\x65\xf1\x17\xe4\x0f\x45\xb9\x81\xfa\xdc\xc9\x7c\xf4\x6a\xd0\x49\xe2\x6a\x69\x50\xcb\xdf\xca\xe2\x7c\xda\xa4\x6f\x87\xb1\xea\x68\x7f\xb8\xcf\xa8\x13\x17\x81\x38\xe3\x96\x9b\xe1\x3c\x49\x7c\x8d\x04\x9a\xf3\xd5\x66\x51\x1f\x06\xf9\x4b\x3b\x22\x56\xd8\xff\x83\x62\x92\x3d\x6f\x29\xe1\x8e\x1b\xc4\x5d\x7c\x83\x34\x25\x3c\xbf\xa1\x98\xaf\x12\x6e\xb8\x82\xb1\xbd\xb6\xaa\x7b\xbf\xc0\x03\x66\xe1\x79\x18\xbd\x56\xdd\x81\x10\x53\x8c\x5f\x0a\xcd\x04\x66\x4f\x49\x04\x4b\x08\xf1\x50\xf0\xac\x25\x9c\xe9\xb5\xb6\xab\x44\x84\x2a\x0e\x3b\xf5\xaf\xc1\x24\x11\x21\x21\xc3\xb1\xc4\x8b\xdb\x4e\xd6\xbb\x45\xe9\xfb\xd8\x78\xb4\x57\x56\xc4\xbd\xe7\x67\x27\x32\x20\x6f\x4d\xb5\xa1\x72\x5f\x9f\x72\x38\x0b\x24\x67\xd8\xfa\x3b\x5b\x12\xeb\xfc\x17\x5e\x60\xa2\x42\x81\xdc\xa3\x33\xa5\x5e\xe0\xd3\x10\xf1\xac\xb9\x7c\xb7\x0c\x81\xe3\xd8\x3e\x51\xa1\xc2\x5d\xe4\x08\x47\xb8\xc6\x23\x26\x10\x0a\xb4\x0a\x8d\x37\x71\x77\xbe\x50\xae\xa5\x9f\x9b\x48\x80\x2b\x6c\x6c\xef\xf2\x84\x56\xcc\x79\x04\x80\x1f\x3e\x15\x08\x2d\x44\xdb\x76\xb6\x05\x5b\x9c\x79\x29\x76\x87\xb2\xe8\xda\x40\x06\xd8\xea\x04\x24\xc3\x88\xe3\xc8\x7f\xa6\xc7\xf3\x71\xb0\xac\x41\x33\x9f\x72\x05\x75\x0e\x55\xb5\xd2\xa3\x47\xd1\x71\x82\x28\x7f\xdb\xad\xbd\xc8\xe9\x26\x75\xaf\x64\x94\x68\x01\x36\xc5\x7d\x0f\x1a\x79\x6e\xff\xf9\x64\x0e\x72\xc7\x89\xad\xf3\x6e\x5b\xd2\x5f\x73\x42\xec\x4d\xf4\x39\x29\xee\x78\x24\x7b\x28\x46\x7f\x77\x03\x87\xf5\xfc\xf1\x6d\xfa\x97\x9d\x36\xdc\xd5\x3e\xee\xf3\x0f\x19\x9c\x6d\xbf\xbe\xe2\x1e\xe7\x58\xc8\xaa\xa1\xaa\x5f\xf3\xea\x92\x4b\x50\xbd\x15\xc7\x3d\xa0\x40\xec\x3e\xcd\x8b\x8a\x9f\xcb\x07\x5e\x1e\xa1\x7c\x81\x4f\x3b\xc0\xf7\x1d\x4d\x1c\x6b\xfd\x66\xfb\x8e\x27\x44\x71\x3f\xf1\x55\xab\xdc\xa5\x2c\x03\xb5\x3d\xca\xa4\x46\xff\x6c\x7f\xd2\xe9\xb8\xbe\xc4\x99\x56\x71\xeb\xcd\x62\x43\x89\x39\x10\x48\x43\x1a\x66\xa7\x86\x65\x50\x98\xc8\xc0\xb7\xdf\x89\x07\xc0\x49\x43\xec\xfd\xb3\x4b\xc1\xf2\x30\x64\xc4\x8a\x8f\xe6\x06\x6f\xdf\xe6\x37\x2b\x2c\x0f\xfe\xa2\x3f\x86\x87\x92\x25\x11\xf6\x71\x95\x65\xf1\x09\xc6\x78\xde\xf7\xde\x62\xe4\x28\x13\xce\x56\x75\x59\x5c\x56\x99\x22\x99\xfc\xe9\x5a\xad\x3d\x29\x0a\xfc\x5e\x71\x4d\x9d\xb3\x9a\x32\xc4\x1d\x2b\x67\x6c\x87\x4a\x1f\xfb\x2c\x94\x11\x1c\xf8\x55\xaf\xe5\xe8\x01\x62\xd7\x41\x5b\xf4\x9f\xaa\xc8\x37\xc0\xd5\x54\x9c\xcb\x63\xa1\x3b\xc8\x12\xae\x83\x1f\x90\xf6\xf0\x32\x3c\xe1\xd4\x26\x84\x5c\x09\x70\x9a\x10\x4d\x53\x3c\x11\x44\x12\xd9\x7a\xe3\xcf\x30\xa8\x82\x4c\x53\xda\x28\xce\x63\x47\xa2\xe0\x47\x59\xe4\x7f\xd8\x1f\xe4\x92\x0b\xe2\xb0\xb9\xfc\xd1\x84\xff\xdd\xdf\x49\xec\xb7\x9d\x1c\x98\xa2\x7a\x18\x91\x4d\x2a\xce\xc1\x85\x68\x58\x61\xff\x45\xb9\xcf\x9c\x28\x02\x8d\xa4\xd1\x3a\xad\x0e\x4f\xd6\x63\x19\xde\xb0\x04\x9f\x12\x3c\x07\xa8\xaa\x79\x76\x16\x4f\xe9\x07\xd0\xff\xe8\x1c\x48\xae\x7c\x85\x29\xdc\x3d\x35\x34\x7e\xc1\xf6\xa5\xb8\x62\x44\xb9\x30\xce\xe7\x5c\x97\xc3\xb8\x8a\x49\x5b\xe8\xc0\xab\xc3\xac\x7c\x43\x49\xad\xe1\x64\x33\xe5\x25\xf3\xcf\x55\x61\x94\x83\x20\xac\xee\x71\xdf\xbc\x96\xc7\xc6\x8f\x6c\x6f\x5a\x7b\x1a\x69\x5f\xb0\x1d\xac\x38\x37\xdb\xff\xf0\x64\x1d\x91\x90\x15\x99\x04\xf4\x73\xa7\xbf\xaa\x96\x0a\x59\x07\xb3\xe2\x0d\xd5\xd7\x52\x39\x59\x03\x10\x8e\xe3\x72\xe2\xbd\xce\x2d\x94\x5c\x38\x8e\x16\x89\xed\xc6\xf8\xcf\x44\x1a\x6c\x7c\x0d\x93\x2d\x1f\x76\xae\xff\xe9\x0e\x2d\x8e\x70\x9d\x18\x23\x88\xe7\xd5\xea\xfb\x35\x89\x42\x7f\x41\x08\x37\x20\x72\x06\xcc\xbf\x7f\x4e\x72\x11\x9b\x91\x5e\xe4\x46\xa6\x2a\xfb\x54\xc8\xf7\x74\xac\xd6\x39\xbc\x05\xdf\x8f\x90\x6f\xe8\x8d\x1f\x61\xf5\xd1\xee\x42\x82\x29\x19\x1a\xa9\xc8\xbb\x32\x95\xef\x3d\xe3\x2e\x98\xf6\xb1\x07\xad\x6d\xfa\x26\x05\xc9\x99\x5d\x9c\x22\x88\x00\xf1\x91\x06\xe2\x3e\x85\xaa\xb1\x23\x15\xc7\x50\x71\xf5\x91\x8e\x30\xe2\x22\x0c\x3d\xca\x58\x9d\xab\xc3\xfd\xc8\x90\x8b\x50\x48\x14\x20\xc9\xd2\x26\xa4\xed\xab\x2e\x2b\x11\xbb\x1e\x1a\xde\x1c\x3e\xbf\x95\xfc\x0b\xc1\x90\x5b\xff\x76\x1e\xa5\x48\xa4\x8b\x5e\xc1\x35\x86\xea\xef\x59\x3b\x91\x68\x2f\x36\xc8\x02\xe3\xc6\x4c\x7f\x07\xce\x01\x13\x25\xc7\x4e\x75\xd7\x1c\x11\xb1\x87\xc9\xe9\x03\xcf\xb0\x07\x6d\x78\x9e\xd0\x8c\x32\x28\x95\x2c\x8b\xcf\xc7\xb4\x1a\x90\xce\x4d\xdf\x93\xd0\x12\x23\xc4\xaa\x31\xed\x7d\x39\x56\x25\xa4\x91\x14\x31\x84\xbe\x58\xff\x6c\x15\xe4\xda\x31\x2e\xee\x2f\xc8\xf1\x43\xde\xc7\xcd\x0e\x95\xd1\xba\x00\x15\x79\x5e\x4b\x38\x6c\xba\x1b\xda\x8f\xaa\x99\x83\x2b\x94\x3a\x80\x6e\x40\x9d\x85\x8e\x14\x86\x67\xf7\x0b\x04\xe7\xbe\xcc\x9e\x17\xfb\xcd\xea\xc9\x46\x88\xd2\x09\x42\x8c\x3c\xef\x78\xfe\x9e\x73\xd5\x0f\x57\xa4\x13\x2a\xcc\xbf\x6e\xbf\xed\xac\xc7\x7f\xbd\x6d\x0d\x6e\x59\x3a\x82\x23\xaf\x80\xcd\xa1\xf0\x34\xaf\x21\xef\xc4\xde\x94\x74\x74\x82\xd0\xd6\xbc\x50\xb0\x97\xd7\xfb\x90\xf4\x62\x12\xbc\x7c\xe6\x88\x44\x49\x73\x35\xcb\xb2\xb4\x7f\x09\x4f\xbb\x38\x9d\x8f\xe7\xac\x4e\x3f\xa0\xaa\xef\xce\x57\xfd\x94\x5f\x6d\x59\xd2\x77\x69\x3d\x6c\x8a\xba\xf0\x3a\xa5\x0e\x25\x7d\x3f\x41\x56\xb3\x53\xc6\x25\x60\xa3\xd9\xae\xb0\xad\x40\xa3\xdb\x64\xcc\xb5\x25\xbe\xc6\xfb\x99\xd8\x51\x25\x8b\x99\x6f\x51\x96\x56\x37\x40\xd7\x50\xde\x92\xea\x55\x32\x54\xd4\x7a\x67\xf3\x00\xa3\x82\xb3\x8c\x18\x75\xab\x9c\x4f\x6a\x86\xa2\xad\x48\x1e\x0c\xbd\x5c\x9f\x8c\x18\x20\xcb\xc2\xde\x0a\x7d\x50\x4f\x67\x55\xf5\x33\x50\xc3\xab\xc6\x81\x83\x85\xee\xd9\x13\x66\x53\xed\xcb\x88\x21\x08\xa8\xb0\xbf\x9c\xaf\x7a\xd6\x4e\x26\x81\xf0\xbd\x1e\x5a\x68\xa9\x00\xdb\x3a\xbf\x80\x9c\xc9\x24\xf4\x95\xc1\x3d\xbf\x2e\xf3\x9a\x40\x48\xc3\xaf\x92\x24\x2e\x26\x51\xf0\x8e\xf7\xee\xfe\x2b\xb1\x1b\x25\xb9\x88\x12\xa3\xe4\x8c\xe2\x80\xa9\x4c\xf9\xed\xb5\xfc\x85\xd5\x92\x5c\xcb\x20\xe8\xf4\x12\xaf\x9c\x11\xd9\x04\x4c\xcd\x8b\x38\x14\x9f\xcf\x67\xac\x74\xff\xd1\x02\xdd\xe0\xa5\xf8\x1c\x1a\x19\x89\x3e\x70\xf3\x3a\x29\x7a\xb7\x0e\x5f\xb5\x3b\xf0\xcf\xde\xda\xef\xdd\x81\xf4\x99\x6f\x6a\x19\xfb\x23\x4e\xfb\xd1\x25\x65\xec\x58\x9d\xf3\x0d\x75\x1a\xd8\xc2\xfc\xc4\xf3\x48\x45\x20\x4e\x7c\x8f\xa6\xfd\x63\x72\xe3\x95\xca\xf1\x10\xb5\xcc\x95\x32\x5a\x40\x57\x79\x98\xee\xb2\xca\x73\x91\x71\x01\x01\x09\x1b\x2e\x81\xe0\xdd\x57\x7b\x7b\xff\x14\xdf\x89\xa8\x77\xf5\x0d\x93\x61\x4f\xab\x5d\xc7\xe8\xf8\xb5\xd9\x95\x8d\x2d\xe9\xc4\x3d\x30\x87\xd7\x32\x56\x4f\xef\xe5\x12\x58\x88\xce\xa5\x01\xfd\x10\xcb\xd9\x98\x23\x7e\xf8\x06\x40\x79\x98\x9c\xf8\x0e\xf9\xed\x92\xc3\x64\x25\xa0\xf7\xb3\x40\x54\x1b\x6f\x1f\x03\xeb\x09\x5a\xe0\xcb\x7d\xd8\x6c\x77\xfb\xf9\xe6\xc7\x3d\x26\xd8\x50\x7b\xde\x0e\xd1\x82\x44\x43\x66\x2f\xcf\xcb\x5c\x93\xe6\xcf\x80\x4d\x55\x29\x27\x8e\xb1\xd8\x9f\xa5\x75\x9d\xc1\x73\x91\xf7\xfa\xa3\x95\xc7\x09\x71\xc6\x95\x95\x14\x98\x7a\x2f\xca\x53\x1e\xc6\x10\xaa\xe4\x9f\x23\x5e\xf9\xc1\xdb\x50\xbe\xc3\x48\x81\xed\x8c\x6d\xaf\xfa\x9c\xb5\x90\x1f\x3b\x22\x6c\x51\xf2\xf8\x45\xef\x2c\xb2\x7b\x96\x2b\x6a\xcc\x9d\x7c\x47\xca\xe7\x82\xa4\x18\xff\x53\x64\x79\x5a\xfe\x00\x51\xa5\x6d\x0c\xa6\x7c\x4d\x8c\x4a\x15\xd4\x7b\x5d\x94\xfb\xea\x2a\x51\xa9\x98\x4b\xfb\xd8\x9a\x63\x9c\x45\xac\x63\x63\x06\x2f\xa5\x02\x27\xc1\xe4\x99\x49\xe7\xda\xdb\x1f\x3a\x4b\x2a\x10\x80\x65\xfa\x13\x94\xba\x28\x8f\xbd\xed\xe3\xdf\xf1\xa4\x66\xef\xa0\x1e\x3b\xbd\xa9\xa8\x40\xc7\x58\xed\xfc\x84\x74\x0d\xe5\xf6\xcd\xa6\x26\x55\xe8\x09\xcc\x2e\x28\xd0\x20\x9b\x0d\x6b\xac\x9a\x69\xc6\x45\x81\x87\x3d\xec\xab\xf5\xeb\xd3\xe2\xc5\x8a\x14\x29\x15\x25\x8e\xcd\x7b\x3d\xa4\xd5\xa1\x79\x03\xc7\xdb\x54\x47\xc3\xf7\x11\x49\x0f\x41\x87\xa8\x80\x00\x55\xc5\x9f\xd2\xff\x3b\xa7\xaa\x17\xe8\xa8\xd8\xe7\x8a\xf8\x7a\x4d\x8e\x17\x94\xeb\xb5\x07\xb9\x4f\xc9\x0f\xb7\xfd\x8b\x76\x70\x57\xd8\x1e\x79\x59\xaf\xfa\x33\x5e\x25\x9a\x90\x05\x06\xd6\x96\x43\x39\x0e\x76\xaf\x58\x39\xaf\x89\x74\x95\xe2\x92\x88\x19\xb6\x36\xe1\x32\xd9\x49\xa3\x38\x30\x2b\xbc\x82\x20\xb5\xba\x1e\xb1\x1c\x29\x25\x38\x43\x3e\x41\x94\xf6\xdd\x14\xd9\x58\x4d\xcf\x0e\x03\x8f\x99\xa2\xc8\xfe\x23\x95\xb0\x3f\x19\x5a\x34\x13\xc3\x2b\xa9\xa9\xa3\xee\x99\xbf\x83\xa1\xae\xfa\xd2\x78\x29\xe5\x50\xf8\xbb\xf8\xc9\x8f\xa7\x0c\x26\xea\x21\x4a\xb9\x80\xfd\x06\x3f\x96\xbb\xc7\xfb\xcd\xec\xc7\xec\x69\xbf\x78\xb9\xef\x73\x69\x28\xe5\x7b\x48\x44\xbc\xaf\xcb\xcb\xae\x4c\xdf\xde\xc0\x76\xde\x4d\x25\xf5\x9a\x45\x86\xcc\x8f\x55\x0d\x27\x5b\x43\x57\xa0\xa5\x13\xf6\x90\xa0\x13\x72\x41\x83\x77\xa1\xc3\x50\x6b\x5b\xc9\x78\x4e\xdf\xca\x2e\x55\x02\x6e\x1c\xe3\x36\xb5\x7a\xfc\xf6\x3d\x6d\xb6\x7c\x9e\x77\xc7\x34\xa5\xe8\xfb\x76\xd4\x56\xa6\xc0\xf3\x43\xc4\x54\x61\xad\x0e\x33\x85\xc8\x03\x91\xf5\x14\x46\x14\x78\x91\x26\x1d\xed\xa2\xfc\x44\xfa\xf1\xc7\xc2\xaa\xf0\x0c\x9e\x13\x3c\xa5\x34\xbe\x16\x33\x92\xa0\x53\x83\x2f\x0f\x0c\x22\x24\xb1\xc1\x34\xed\x4c\xa9\xae\xb7\x0a\x02\xc9\xb0\x3f\x66\x5f\xd5\xc0\xb3\x39\x2f\x15\x32\x2a\x8e\xfc\x3b\x08\x1d\x8e\xb5\x27\x45\x1e\xd6\xf9\x1a\x76\x02\x61\xe8\xa3\x31\x34\x5d\x5a\x2f\x69\xfe\x9f\x6b\x14\xcb\x97\xeb\x13\x42\x1e\x70\xab\x8a\xdc\xd3\x1f\x50\x10\x01\xc9\x83\x6e\x2f\x64\xe7\xc6\xad\xae\x10\x69\x1e\x75\x5d\x9e\x6d\x63\xe8\xd8\x4f\x85\x98\x79\xdc\x14\xc2\xfe\xa7\x10\xa6\xa7\x6e\x72\xd6\x42\x1c\x2a\xe5\xda\x97\xb6\xf8\x79\x4a\x47\x62\xde\xbd\x91\x3c\xf1\xcd\xda\x6b\x02\x87\xb2\xc8\x46\xc8\x64\x88\x25\x69\x26\x36\x11\x9a\xf5\x0f\xf1\x41\xac\xf0\xe6\x75\x10\xf4\x85\x71\x85\x58\x2a\x84\x9c\xa7\xb2\xe8\x88\x58\x15\x24\x11\x43\xd7\x6d\x3b\xa7\x8c\x6e\x4f\x9a\x5b\x81\x70\x7d\xa4\xd9\x56\x85\x81\x28\x7d\x9d\x86\x00\xc1\x02\xe4\x45\x82\xe6\xc9\x61\xa9\x5f\xa0\xd9\x04\x79\xdb\x5d\x03\x22\x21\x0a\x26\x6a\xef\xea\xeb\x67\xf4\xea\x1d\x20\x03\x29\x01\x9d\x9e\xba\x86\xf2\x82\x10\x80\x8e\xd8\xbe\x6f\xfa\xcd\xc3\xb2\xd1\x67\x50\x8a\x1a\x10\x2b\xa8\x9f\x2f\xcb\xf9\x6a\x92\x86\x50\x01\x78\x2e\xae\xd4\x26\xf8\xdc\x17\x39\xe9\xf4\xce\x10\x0e\xf1\xc0\xb3\xaa\xbd\x1f\x1d\x11\x07\x31\x4e\xaf\xdd\x67\x71\x4f\xa1\x99\x39\xac\x5d\xcf\x75\x4d\xea\xc2\xe0\xb6\x3a\x66\x29\xa5\x5d\x88\xa4\x6e\xa5\xf6\x30\xb0\xfd\x8a\xe1\x46\x7b\x11\x29\xac\x36\x01\xfc\x6a\xf5\x44\xad\x25\x9e\x3b\x40\x47\x6a\x8f\x3b\x6d\xc5\xfb\x9e\x17\x0f\x45\x39\x3d\x21\xb5\xef\x27\x68\xe2\xd1\x6e\xac\x3f\xf3\x1e\x5f\x81\xf6\x63\x86\xad\xe0\x27\x80\x77\xcb\x09\x63\x0f\x25\xae\x34\x53\x7e\xcd\xd3\x11\xc4\x59\xfb\x92\x71\xe2\x49\xec\x4a\x3e\x9a\x31\x87\x58\x47\xe7\xb3\xed\xe3\xcf\xf6\xaf\x09\x09\xac\xdf\xf3\xd3\xe9\xb1\x8b\xfb\x35\x13\x02\x0b\x4e\xf7\xbc\xde\x15\xf7\x75\x29\x5f\xce\x47\x23\xaa\x6c\x47\x40\x84\x08\xa3\x1d\xaf\xde\x37\x26\x4c\xfa\x3a\x74\xd6\x81\x16\xe8\x5f\xb7\xd4\x0b\x7b\x7c\x83\xb3\xfb\x7b\x5b\xef\xd6\xa1\x2f\x51\x54\x6a\xb3\x5d\x3f\xed\xf6\x0f\xed\x9f\x13\x0f\x6b\xcb\xeb\xb2\x38\x41\x59\xa5\xed\xfd\x87\x5a\x04\x61\x57\xc6\x6f\xf9\x4f\x46\xeb\xc1\x8c\x8e\x1c\x27\x8e\xac\x64\xbe\xd1\xa3\x1e\x4c\xd7\x76\x9c\xc2\xb7\xb2\x3d\x15\x65\xdd\xe7\xa8\x53\x3a\xf2\x3c\x47\x5b\x57\x25\xe7\xd9\x0e\x1a\x57\xc5\x1e\x0c\x38\xb2\x81\x50\x35\x7f\x33\xdb\x2d\xf6\x0f\xcb\xcd\x76\xd7\x1e\x8f\x5c\xcb\xd1\xfc\x52\x28\x78\x04\x2c\x5f\x0e\xec\x80\x8e\x12\xc2\x1e\xce\x14\x3f\xfd\xfa\x95\x46\x3c\x46\x2a\x77\x9e\x96\xaa\x2c\x4e\xe3\x28\xc8\x26\x65\x75\xa4\x3d\xf2\x07\xcf\x25\x1c\x79\x6a\xcd\x8b\x8e\x3d\x81\xc0\xb8\xf7\x34\xcb\x1e\xca\x2e\x9f\xae\xe3\x90\x93\x5b\xd4\x78\x73\xc3\xdf\x8c\x63\x85\xc0\xed\xaa\x2e\x4e\x1d\xb5\xbf\xd2\x09\x63\x08\xdf\x33\xb0\xb9\x99\xd6\x69\x96\x8e\x45\x3a\x94\x4e\x12\xa1\x88\x19\xb7\x5e\x43\xbd\x83\xce\x7d\xb0\x03\x74\x88\x92\x4a\x2a\xad\x4c\x66\x62\x74\x03\x9c\xfb\x18\x54\x10\x89\x72\xe3\xd2\xd9\x53\x05\x8b\x49\xdf\xfc\xee\x7e\xf1\xb4\x9f\x3d\x3d\xad\xe6\xb3\x5e\xa3\xb6\x16\x5c\xd8\x4a\x57\xab\x2f\x3a\xbc\xb6\x74\x02\xcc\x48\x11\xa1\xcb\x5d\xe3\x9c\xdd\x48\x3c\x69\x15\xc4\x88\x30\x7b\xe0\x69\x86\x35\x61\x63\x9c\x7f\x95\x5e\xbc\x71\xb5\xd0\x0b\x0c\x68\xb5\x89\x8e\x5e\xf8\x11\x48\x59\x61\x2a\x29\xad\x95\x08\x08\xed\x89\x39\x92\x29\x95\x30\xb7\xbd\xb0\xd0\x66\x89\x70\xb5\x3f\xbb\xe1\x9e\x97\x25\xb7\x16\x5f\x43\xa4\x98\xa1\x95\x32\xb0\x91\x81\x21\xd3\x71\x80\xd6\x71\x56\x96\x5f\x95\xea\x87\x8f\xa2\x13\x2d\x79\x0b\x5c\x6a\x3e\xd2\x9a\xa7\xad\xed\xd2\xca\xc3\xea\xe1\x76\xf9\x2f\xe3\x07\x82\xe3\x30\xaa\x2a\xd3\x56\xff\x9c\xe6\x35\x94\x53\x3c\x48\xe0\x38\x91\x4f\x5a\x3e\xfc\xa4\xf8\xe9\x25\x3d\x8b\xd4\x5e\xc4\x15\x12\x57\xb7\xe4\xe5\x8e\xff\x4c\x5b\x7f\x62\x10\x1a\x81\xe3\x09\x49\x12\xdb\xa8\x21\x88\x2c\x2e\x7f\xbf\x5c\x05\x8e\xef\x08\x4c\xf3\xec\xad\x0e\xe0\x60\x02\x81\xe3\xc7\x0c\x41\x25\xa6\xad\x09\x4a\xd3\x5c\x72\x13\x38\x32\x3a\x5d\x86\xe8\x11\xe3\x9e\xf7\x66\x9b\x92\xc1\x61\x0e\x55\x7d\x4a\xca\x9e\xdb\xbf\xba\xa1\xcb\x2c\x34\x45\x35\x9b\xc7\x32\xbf\xbb\xb4\x3a\x04\xe0\xb0\x58\x39\xcc\x36\xe3\xbf\xf1\xdc\xe8\xb5\xf1\x6c\x0e\xa5\xe5\x20\xbd\xbb\x2c\xef\xfb\x5f\x1d\x9a\x25\x80\x34\x14\xa9\x0d\xd9\xed\xe5\x42\x3f\x44\x94\x0e\xbe\xbb\x23\xa8\x94\xab\xa2\x9c\x21\xc9\xfa\x9a\xbf\xf1\xc6\xe4\x16\x5d\xaa\xae\x19\x1f\x63\x7e\x95\x74\x1a\xb7\x07\x6e\xc5\xe9\xc0\x09\x39\x60\xad\xe3\x7b\x5a\x56\x97\x1e\xcf\x2a\x38\x21\x30\xcc\x5d\xa6\xf9\x01\xca\xb4\x46\x78\x39\x02\x2a\xec\x80\x38\xf2\xb0\x91\x70\x8f\xc9\xa2\x63\xf1\xc1\xb3\x6b\x2d\x75\x70\x62\x15\x61\xd0\xb3\x7b\xf8\x45\xf3\x39\x38\x49\x02\xe8\x6a\x42\xae\x3a\xe1\x28\x70\xb8\x62\xe8\x2e\xb6\xb5\x3c\x0a\x4e\xbe\xf3\x32\x6d\x1c\x8c\x76\x9c\xe4\xa4\xf3\x82\x52\x40\x6d\x03\xd3\xe8\x76\x14\x23\x46\xf0\x53\x59\xa8\xb3\x84\xc6\x79\x2a\x88\x79\x71\xd2\x37\x00\x47\x71\x0f\xe3\xd0\xf9\xec\x65\xbe\x78\x7a\x5a\xdc\xef\x1f\x16\x8b\xfd\xc3\xd3\xec\x9b\xfd\x5d\x48\x14\x36\xb3\x18\x0f\xb9\x28\xdf\x6f\x24\x3e\xc0\x01\xa9\x30\xa3\x59\x5d\xf2\xfa\xb0\x34\xac\x1f\xca\x26\xbd\x87\xf0\x41\xf6\x8f\x01\x4a\x81\x8d\x2e\xa5\x1d\xde\x7a\x40\xcd\x6b\xdf\xd6\x70\x0a\x46\x0f\xab\x3d\xf2\xaa\x08\x5a\x45\x66\x74\x52\x85\x03\x1c\x1d\x92\x42\xf2\x22\x57\xae\xe9\x2d\x02\xd7\x61\x84\x7d\x9e\x9d\xeb\xa2\x4c\xff\x1a\xb4\x03\x80\xeb\xc4\xa1\x67\x54\xc1\xea\x16\xb9\x02\xae\x23\x7d\xdf\x74\xbc\x5a\xac\xf0\xa6\xab\x34\x99\x41\x6e\x28\x7d\xd1\xe1\x16\x51\x5d\x6e\x34\x42\x52\xee\xe4\x98\xe6\x8b\xfa\x30\xef\x09\x33\xd9\x1f\xf2\x22\x57\xb2\xde\x1b\xe8\x85\xd2\xe0\x32\xc7\x47\x1a\x0f\xa4\x4d\x59\x34\x8e\x6d\x2e\x61\x57\x58\xbe\x0f\x78\x7d\x59\xfe\x61\x2f\xc4\x20\xc0\x6c\xf7\x62\xf7\x18\xf8\x4e\x91\x33\xaf\x7d\x03\x01\x23\x6a\x48\xa4\x30\xe3\x59\xdc\xbe\x3d\x73\x3c\x74\x38\x56\x5d\x90\xa5\xac\xfe\x5b\xda\x5d\xe0\x86\x9e\x83\x98\x62\x64\x98\x1e\x05\x5c\xe0\x86\x3e\x4d\x27\x3c\xda\x12\xf7\x0f\x3e\xac\x1b\x06\x41\x18\xf6\x54\x50\x6d\x70\x64\x8d\xec\xf9\xaa\x53\x16\xdc\x30\x89\x83\xd0\x1a\xa1\xf4\x2d\xcd\x27\x4d\xbb\x1b\x2a\x49\x34\x56\xc5\xb1\x30\x7a\x1c\xf6\xce\xa2\x88\x34\x34\xb8\x52\xff\x53\xa4\xf9\x8c\xbc\x9d\x7f\x5e\x01\xd7\xc0\x8d\x78\x8c\xbd\x7a\xaa\x98\x9f\xab\xba\x38\x9a\xa1\xe3\x55\x71\x55\xb7\x06\x37\x12\x10\x28\xeb\x55\x60\x4d\x1c\xda\x09\x17\x27\x8e\x1f\xb4\xa2\x88\x03\x24\xf7\xa4\x73\x00\x6e\xcc\x29\xa5\xa5\xd3\x3c\xad\x0e\xaf\x27\xc2\x49\x5f\xe7\x23\xc0\x4d\x1c\x87\x38\x45\xd2\x23\x54\x27\xde\x4e\xb2\x44\x25\x5e\xf3\xd6\xee\xca\xb4\x4e\xab\x43\x57\xc4\x01\x97\x0b\xea\xe0\x3a\xf1\x4b\xa1\x75\xbf\x62\x07\xae\x88\x04\xa6\x11\xd1\xf1\xdc\xbf\xbe\x3c\xad\xe6\xbf\xdb\x63\x32\x0a\x43\x93\x67\xeb\x6b\xdd\x80\x0b\xa0\x11\xfb\x7b\x28\x6a\xe4\xcb\x6d\xff\xae\x03\x44\x3e\x8c\x92\x8d\xd3\x36\xc6\xd5\x9c\x63\x5a\xde\x38\x80\x73\x64\xa3\x68\x13\x63\x5e\xf7\xca\xa3\xff\x1d\x86\xc2\xff\xf6\xec\x47\xd0\x9a\x5e\x5b\x25\xa6\x36\x57\xcf\x51\x1e\x76\xfd\xce\x7e\xa6\x30\x90\x63\x03\xcf\xd1\x89\xcd\x02\x6c\xb3\xa2\xbe\x12\xd3\x06\xcf\xf5\xa5\xa7\x6c\x11\x9e\xb0\x03\xc8\x2d\xda\x6a\xe6\x0c\xcd\x5e\xab\xa2\x03\x9e\xe7\x78\xc8\xdf\x7d\x28\xce\x15\x0c\x13\xc6\xe0\x79\x9a\x14\x40\x15\xef\xf7\x49\x34\x7f\x0f\x91\xfc\xf1\xe9\xf5\xcf\xd5\x78\xa9\x79\xbe\xf2\xfa\xb4\x48\xeb\x32\xbd\x41\x42\x06\x1e\x73\xe3\x88\x8a\x54\xbb\x9f\xe4\x11\xf6\x03\x06\xf0\x98\xef\x10\x2b\x3e\xe4\xea\x3b\x31\xea\x9a\x23\x81\x47\xf4\xcb\x07\xde\xb1\x55\x0e\xaf\x1d\x28\x47\x1a\xd5\x70\xec\x0e\x79\x4c\xdf\x0e\x3d\xf0\x19\x78\x61\xe4\x5a\x86\x1c\xec\x15\xc4\x8c\xf8\x04\xc3\x44\x33\xd2\x47\xb7\xea\xf7\xd4\xb6\x78\x82\x17\xc6\xd2\x6f\xf9\x9f\x89\x99\x6e\x04\x80\x07\x2f\x0a\x42\x74\xe8\x50\xfb\x06\x3d\x25\x14\x5d\x1e\xde\x67\x24\x3c\x42\x49\x75\xfd\xb0\x3d\xaa\x11\xf0\x62\x4d\x1d\x87\x47\xfe\x0e\x7d\x38\x38\x78\x89\x1b\x33\x3d\x62\xeb\xb5\xb0\x13\x3b\xc4\x0b\x02\xd3\x53\xdd\x78\x9e\x5f\x31\xb3\x83\x97\x44\x01\x82\x91\x1b\x87\xa5\x83\xfd\x80\x97\xa8\x18\x81\x01\x77\x9b\xa7\xfd\xea\x98\xa7\x0a\x39\xfd\xec\x51\xee\x69\x3d\x64\xac\xb9\x23\x7c\xdd\x75\x66\x0f\x3c\xe1\x3a\xe8\x92\x1f\x0a\x95\x41\xb9\x4b\x8f\xd0\x93\x90\x01\x4f\x04\x09\x32\x4a\x28\xa8\x90\xae\x85\x00\x46\x37\x6e\x57\xc5\x02\xe7\x3c\xd6\xe6\x07\xd3\x53\x09\x22\x0e\xde\x70\xad\xbb\x79\xa9\xa4\x42\x35\x03\x71\xbe\x3c\x3f\x4c\xc2\xc4\xcc\x40\xe0\x1c\xa3\x38\xf8\x79\x42\x0d\x83\xae\xbb\x73\x50\x21\x03\x0f\x74\xa2\x9d\x56\x45\x89\xd2\x9d\x03\x26\x5a\xf0\xb4\xef\x60\xb3\xdc\x46\xaa\x6f\xd0\xfd\x55\xb9\xb8\xae\xb8\x52\x48\x2b\x36\x02\x2a\x7f\x99\x76\x04\x4f\x6b\x86\x69\x47\x9b\x15\x46\x32\xb5\xc1\x23\xf8\x0e\x90\x50\xf4\x2d\xc6\x96\xc9\x07\xf7\x1b\xf7\xc7\xb6\x99\x9a\x2d\x72\x1a\xa7\x67\xc6\xbb\x11\x65\xc1\x97\xf3\x95\x69\x58\x68\x7e\xe4\xd5\x34\x62\x81\xef\x8a\x10\x59\x29\xe7\xb3\xcd\xae\xfd\x9b\xd6\x88\xbe\x9e\x0d\x5a\x51\xc0\xf7\xa4\x8e\x89\x81\xfe\x67\xfb\x27\x00\xc1\xbb\xd2\xc9\x52\xdd\x5d\xd6\x45\x35\x7a\x52\xe6\x38\x98\xf7\x33\xdd\x8b\x73\x5e\x1d\x7a\x0e\xb7\xcf\x14\x17\x46\x0d\x11\xb1\x3d\x37\xa8\x5e\x46\x5c\x2e\x66\x01\xfb\x01\x4b\x58\x62\x2b\xb7\xf8\x80\x15\xea\xed\x92\x67\x49\xab\xd1\x64\xb9\x07\x9f\xc8\x0f\x02\x2f\xb0\x50\x18\xac\xd9\xcd\xb4\x5e\xde\xdf\x78\x8d\x41\x14\xba\xfd\x2c\xff\xb8\x86\x0d\x7e\xe8\x6a\x23\x59\x55\x97\x29\x7c\x18\x5e\x16\xfb\x8c\xa1\x0f\x46\x73\x2a\x57\xcf\x45\x0e\x97\xbb\x96\xcb\x12\xfc\x10\x42\xec\xdc\xdd\x42\x3d\x09\x16\x03\x3f\x6e\xec\x30\xc6\xdb\x75\xfa\x81\x21\x91\xb5\x30\x7e\xe2\x7a\x9a\xf7\xb0\x02\x6b\xf4\xef\x6f\x8b\xe9\x5d\x59\x2f\x3f\x61\x44\x89\x4d\xb2\x20\xbf\x98\x7f\x49\x20\x95\xc9\x9d\xae\x8b\x2c\xad\x53\xd9\xbc\xee\xff\xe1\xf2\xfd\x54\xd4\x3d\x01\x61\x52\xe4\xed\x16\xa2\x2f\x7d\x92\xa7\xfd\x17\x94\xc5\x1f\xfd\xcf\x2f\x63\x86\xa0\xed\x53\x09\x1f\x69\x71\xae\x10\xe1\xb9\xac\x46\x3c\x89\xe0\xcb\xc4\xb3\x33\x1f\x67\x3c\x35\x21\x8c\xdc\xc4\xd1\xdd\x4a\x1e\x5b\xe9\x9c\x07\x42\xe8\x4e\xdb\x13\x5f\x0a\x81\x81\x6a\xfa\x83\xe7\xf5\x1f\xff\xd3\xd3\xb9\x33\x03\x14\xd7\x84\x61\x38\x14\xe7\x4c\x51\x91\xef\x0b\xe2\xc5\xff\x96\xb9\xca\xfe\x8a\x22\x45\xf5\x23\xd5\x85\x06\xe6\xb9\x9d\xf1\x0a\x14\x87\x16\x1b\xdb\x89\x8b\xde\xa0\x46\x9a\xb4\xcc\x3e\xf8\x3e\x7e\xc7\x53\xc6\x2f\xa6\xb1\xcf\x1e\x61\x44\x37\x21\x9a\xcd\xf6\xa1\x89\x22\x76\x9f\xc5\x3d\xbf\xb4\x33\x0e\xb8\xc4\xd0\xd9\x7a\x22\x16\x73\x65\x0f\x43\xe2\x1b\xdc\xc8\x3c\x4b\x21\x1f\x37\x48\x7c\x4d\xe4\x74\x1e\x35\xcf\x82\xaf\x7d\x16\xb9\xad\x63\x5c\x97\x5c\xb5\x2e\x46\x73\x0c\x53\xba\x92\x88\x16\x96\xb9\x2c\x46\x2a\x5b\xc0\x1c\x87\xe0\x65\xbf\x9f\x55\x51\x4d\x49\x93\x0e\xe2\x95\xd1\xb9\x01\x43\xa0\xa5\xc4\xfa\xe7\x06\xf8\xd4\x14\x9a\xaa\xf3\x01\x73\xe2\x18\x63\xfa\xea\x7c\xbc\x87\x93\xd1\x01\x6a\x77\x7d\xe6\xc4\x3c\xd0\x46\xbc\x0f\xca\xfd\xa9\xeb\xe8\x36\x03\x5c\x87\x31\x83\xe7\xc1\x18\x6b\x79\xd5\x5b\x6f\x06\x7a\x91\x70\xa5\x51\x28\x4e\x73\x05\xe5\x95\x6d\xfa\x7f\x58\xfb\xb3\xee\xc6\x71\x64\x0b\x14\xfe\x3b\xf5\x70\x1e\x38\x80\x20\xf8\xa8\xc9\x4e\x75\x79\x50\x4b\xca\xcc\xaa\x3e\xeb\x2c\x2d\x0c\x01\x9b\x65\x8a\x54\x73\xb0\x53\xf5\xeb\xbf\xc5\x00\xc0\x49\x74\x66\x7d\xf7\xde\x97\xce\x6a\x13\xa4\x38\x00\x81\x18\x76\xec\x4d\x82\x24\xc1\xa5\xf3\xc8\x7f\x54\x03\x6c\x22\x10\xe2\x87\x18\x00\x22\xca\xa9\x28\xc3\xee\xef\x31\x11\xa4\x57\xe4\xbd\xbd\x22\x81\x40\xd9\x98\x4a\xc1\xa5\x2e\xe1\xbf\xb6\x1d\xc3\x1e\x8f\x62\x0f\x4b\xcc\x4e\x4b\xc8\x04\xd0\x3d\xc1\xdb\xc0\xff\x9e\x3c\x4e\xc4\x03\x6a\xd4\x19\xc6\x59\x0e\x12\x71\x43\xb2\xb9\xcd\xf3\xe2\xbd\x23\xd2\x74\x07\xa5\x12\x26\xed\x65\x3d\x5d\x1b\x1d\x66\x3d\xac\x0d\x48\xa4\x08\xee\x85\x08\xc0\x7e\xe5\x8e\x7f\xad\x3b\xac\x15\x1d\xb2\x2b\xde\x7c\xe7\x81\xd1\x24\x34\x30\x22\x25\x58\x6c\x3d\x1d\xf7\x8b\xd5\x29\xf1\x5c\xf4\x4c\x28\x0d\x71\x5e\xbe\x3b\x59\xfe\xae\x95\x0d\x08\x15\x09\x46\x48\x28\x45\xf5\xfb\xd3\xf3\xf7\xa7\xd3\xf3\x7e\x7b\xef\xb8\x85\xda\x01\x1a\x21\xc4\xef\x50\xa6\xfa\x6a\xab\x5c\xbf\xcd\x14\xef\xdc\x78\x48\x30\xdf\x59\x59\xf4\x7e\x77\x1d\x00\x9c\x62\x97\xa2\xaa\x9f\xe0\x63\x91\x57\x1f\x9f\xa0\x91\x81\xc4\xbe\x87\x84\x65\x59\x6b\x59\x61\xd0\x8c\x0d\x24\x56\x92\xdb\xf6\x41\x93\x2f\x7a\xd6\x66\x5d\x77\x5f\x86\x05\x52\x5a\xf7\xd2\x0a\x09\xd8\x9b\x6e\x83\xe5\x4e\xfd\x16\x08\xe3\x12\xf3\x16\x28\x67\xbb\xd9\x1f\xb6\x0b\xc7\x52\x04\x84\x29\x86\x55\xb2\x1a\xf8\xf9\x64\x79\xab\x27\x7e\x04\x49\x3c\x8e\x46\x7a\xc9\xf3\x7c\x0e\xe7\x05\x24\x21\x51\x6c\x15\xf5\x5c\xdf\x68\x4f\x5e\xe7\xc6\x44\x3e\xd8\xec\xc9\xb2\x2c\x3e\x4d\x59\x11\xee\x25\xbe\x67\xb7\x6c\xe3\x46\xe0\x5b\x99\xdd\x3f\x08\xf7\x84\xef\x9b\x4d\x6c\x51\xb5\x8e\xf1\xe4\x47\x39\x89\x71\x91\x9e\xe1\x5c\x94\x57\x23\xc6\xec\x1e\x9d\x53\x81\x06\x2a\x87\x0f\xc3\xd7\xf5\xd3\x0c\x30\xe1\xb1\x8f\x8e\x86\xcc\x8a\x0a\x46\x2a\x12\x83\x17\xc1\x13\x0f\x81\x19\xf7\x45\xc9\x4d\x76\xf3\x97\xd9\x19\xc2\x05\xf7\x3a\x12\xce\x3d\x75\xb7\x27\xfc\x38\x1e\x32\xa0\x8f\x9b\xe6\xc7\x8f\x29\x44\x88\x9c\x76\xdf\x17\xe7\xcc\x51\x93\xdb\x43\x32\xe4\x9e\x74\x44\xa3\x66\x45\x98\xbe\xaf\xd1\x3d\x48\x12\xa9\xa8\x57\x76\x6a\xae\x1d\xdb\xce\xf8\x25\xc8\x04\x30\x0a\x39\xee\x9f\x9f\xb6\xab\xee\x37\x04\xc7\xd6\xb6\x7d\x2a\x5f\xef\x8b\x4c\x8d\x4c\x84\x94\x01\x26\xc6\x2c\xfe\xdc\x94\x34\x3f\xf9\xf6\x12\x0c\xf7\xfd\xbf\xbe\x3e\xfc\xe9\xce\x57\x9e\xe5\x76\x1c\x72\xfa\xd1\xf1\xed\x2b\x21\x22\x18\x57\xf8\x96\x57\x03\xc5\x1c\xff\x40\x1b\xfe\x58\xfb\x89\xa1\x18\x4e\xd5\x8e\xf6\xcb\x62\x0a\xed\x58\xe0\x91\x63\x83\x5b\x3b\x15\xc2\xd9\x78\x9a\x80\xf0\x60\x10\x2e\xdf\x95\xc5\x79\x02\xbb\x68\xc7\x28\x24\xf9\x59\x3e\x7f\x7d\x3a\xfe\x79\x3a\x7c\x59\xec\x5d\x1d\x84\x68\xa2\x95\xb6\xe2\xe5\x65\xda\xc6\x55\xc3\x9c\x79\xe4\x71\x8d\xcd\xe2\x38\x41\x6e\x92\x31\xa3\x9f\x89\xfc\x84\xa1\x31\x6d\x37\xb6\x75\xf1\x31\x89\xa8\x23\x5f\x48\x24\x14\xb9\x6b\x72\x39\xfc\x4a\x51\x10\x4a\x44\xd7\xaa\x26\x7f\x81\x22\xdf\x95\x70\xe1\x03\x94\x84\x1d\x15\x7a\x0c\xf9\x2b\x97\x69\x7d\xc9\x9a\x6a\x3c\x25\xc7\xbf\x14\xb2\x18\x23\x70\x38\x43\xf9\x02\xb9\xbc\xde\x61\xd7\x29\x62\x3c\x55\x77\x3d\x9d\x50\x36\xe2\x37\x1a\xc6\xbc\x11\x91\x11\x1e\xee\x2c\xec\xf8\x27\x88\x0e\xb0\x0c\x72\x2e\xf2\xfa\x75\x92\x9f\x89\x68\xc8\x10\x45\x90\xda\xf9\x70\x92\x45\x5e\xf3\x29\x6b\x0c\x44\x94\x30\xa7\x2a\xba\x87\xaa\x38\x5e\x2f\xdd\xd3\xc6\x3e\xe0\x7b\x5f\xa6\x2f\xa2\x38\xcf\x3e\xec\x3f\xe6\xe2\x9b\x9d\xef\xed\x2f\x30\x3d\x90\x0e\xbb\x11\xe4\x98\xbc\xd4\x38\x30\x4a\x07\x5c\x29\xec\x4c\x9b\xf3\x80\xa2\x98\x86\x28\x57\x30\xce\xf9\xdf\x41\x57\x1d\x9f\xcf\xfa\xdb\xb3\x93\xc0\x84\x05\xce\x83\x40\x06\xe3\xc1\xb6\x17\x25\xb1\xc6\x04\xd7\xc9\xe4\x38\x8f\x9d\xeb\x14\x25\xc2\x08\xfb\x9d\x8b\xaa\xdd\xe3\x51\x15\x23\xcb\xba\x05\x15\x71\xad\xad\xa8\x35\xfe\x7e\xc8\xdd\x01\x91\xc8\x18\x37\xa8\x36\xe0\x3f\xa4\x2f\x26\x6e\x7c\x1c\x44\xe5\x13\x2c\x1d\x44\x82\x0b\xdc\xfb\x10\xff\x57\xdc\x83\xab\xc6\x43\x24\x03\x82\x33\x59\x23\x5b\xc4\xb7\x76\x33\xb7\x1a\xc6\x87\x8c\x57\xaf\xa3\xb4\x69\xa4\x34\x95\x36\x5f\xab\x1e\xd0\x29\x19\x7f\x20\x88\x4d\x49\xcc\x80\x75\x97\xbc\x82\xd9\x9e\x9b\xf9\x2d\x23\x02\x1e\xa2\x4b\x2e\xac\x2f\x39\xda\x3a\xa7\x63\x05\x71\xda\x8d\x07\x59\xa6\x97\x7a\x21\xfb\x16\xaf\xe9\x58\x30\xe9\x9d\x76\x6c\x21\x53\x98\x48\x5c\x43\xa4\x43\x85\xcd\x58\xae\x6f\xeb\xe8\xf8\x9d\xad\x84\x98\x7d\x7c\xea\x79\x01\x46\xc0\x67\x47\x27\x67\xcb\xc7\x78\x04\xdf\x2f\xfc\x80\x09\x85\xa8\x1b\xe0\x7b\xda\x49\xea\x77\x42\x77\x1d\xfe\x67\xfa\x5e\xc6\x19\xd6\xf9\xd9\x4d\xbd\x84\x31\x6b\xc5\xad\x23\x83\x35\xca\xa6\xef\xcf\xc5\x31\x89\x25\xef\x5a\xf1\x72\x24\x24\xc5\x66\x23\x1d\x77\x9e\x00\x7c\x52\x7c\x13\x06\xfe\xd7\x57\x76\xa8\x07\x31\xc6\x3a\xff\x59\x3c\xfe\x67\xe1\xfe\xe8\x53\x40\xa2\x2d\xeb\x8c\x3b\x02\x01\xa0\x81\x1f\xe3\x02\x43\x81\xbd\x0e\x04\xe3\x0e\x42\x82\x0f\xf1\xb8\x7d\x3a\x59\x7a\x87\x85\xeb\x4a\x01\x1a\x7a\xb1\xb4\x06\x6f\x3d\xa5\x79\x04\x1a\x12\x93\xb0\x31\x55\x88\x75\x5a\x82\xac\xbb\xa0\x81\x86\xd2\x88\xba\xef\xa1\x4e\xbb\xcd\x81\x86\x3a\xc6\x45\x77\x2c\xc4\x1b\x1f\x6c\xfc\x94\x78\x49\x60\x72\xcd\x2f\xad\x11\x70\x24\x63\x3f\x79\x47\x91\x0a\x10\xe1\x81\xfe\xc1\x69\x42\x70\xdb\x8f\x41\x82\xed\x77\xde\x64\xf5\xb8\x5c\x43\x69\x98\x24\x96\x4a\xe4\xb9\x79\x87\xb2\x8d\x38\x4e\xa0\x1d\x38\x78\xfc\xac\x31\xe5\x08\x24\x72\x5e\xff\x49\x38\x42\xba\x49\xdc\x4d\xe3\x76\x7b\xc4\xb6\x83\xba\xe1\x19\xee\x8c\x8e\xc6\xd5\x8e\x60\x71\x80\x15\x08\x0c\x55\xbb\xb9\x7e\x28\x32\xd5\x8d\x48\x28\x5a\x79\x44\x12\xb5\x36\xe9\x15\xb8\x3a\x34\x97\x4b\xd1\xed\x36\x34\x09\x24\xf6\x0c\x43\xc9\x2b\x38\xf5\xca\x56\x40\xb9\xa2\xa8\x14\x79\x57\x94\x12\x86\x89\x72\x2a\xa8\xe0\xd6\x9f\xb0\xf8\x76\x4c\xa3\x74\xfc\x63\xd5\xb0\x46\x48\xa5\x17\x6a\xcb\x42\xfd\x06\xea\xae\xe8\x45\x59\x3e\x43\x09\x8c\xa2\x05\x2a\xa3\x08\xf7\x54\xac\x31\xae\x5e\x41\xbe\x5d\x8a\x34\xaf\x07\xf8\x4a\xa0\x92\xfa\x88\x41\x6b\xf2\x0a\x3a\x80\xe2\xbc\xbb\x45\x25\x8b\xd1\x03\x4e\x6b\xf8\xbc\x91\x0d\x6d\xd5\x70\xe5\x4b\xd0\xe8\x43\x9c\xab\x97\xcd\x0f\x7e\x4e\xfb\x52\x2c\x55\x5e\x14\x71\xb3\x64\xfa\xfa\xea\xe8\x64\x95\xf8\xe0\x1c\xb0\xae\x6f\x70\xa0\x26\x0c\x54\x4b\x9f\xf9\x5d\x5a\xcc\x82\xc2\xcd\xb1\x36\x5a\xc2\x74\xfb\xa9\x8d\x37\x73\x2b\xb4\x32\x9a\x57\xb1\xef\x33\x6e\x04\x48\xb2\x66\xae\x1b\xc3\x0d\x0b\x08\xb3\x82\xe5\x16\xf8\x6c\x0f\x84\xb1\x8e\x0d\xc0\xf6\x70\x6e\xb7\xa1\xaa\xc6\x19\xf7\x35\x9f\x50\x36\x43\x1c\xb2\x08\xac\xc5\x36\x89\xcc\xc3\x85\x4b\xa8\x5e\xd3\xcb\xc4\xc7\x88\xc3\x84\x85\xdc\x02\x05\xca\x77\xd8\xed\xbb\x1f\x53\x0c\xf5\x1f\xff\x2a\x52\x0b\xe0\xb8\x49\x13\xc6\x24\xa0\x44\xf5\xef\x63\x94\x43\x8f\x49\xc8\xc6\x74\x05\xf6\xf8\xf4\x0e\x48\x28\x71\x9f\x7b\x5c\xad\x76\xce\x8e\xc5\x11\x11\x08\x4d\x10\xcd\x35\xf0\x86\x93\x28\xa6\x9e\x71\x02\xf8\x28\xa6\x9a\xbc\x42\x16\x68\xc7\x7f\x81\xca\xab\xad\xa3\xe8\x30\xdc\x6e\xca\xc6\x8c\x86\xe8\x43\xe5\xd5\xc4\x5a\xc4\x8c\x41\xec\x75\xbd\xdd\x46\x9c\x51\x64\x30\xce\x1d\xc4\x4c\x08\xb4\x37\xce\x4c\xb4\x1e\x45\xa7\x2f\x0d\x31\x03\x1a\x51\xdb\x8e\xdd\xde\xa5\xfb\x7b\x22\x39\x0a\xa1\x5c\x8c\x57\x89\x05\xac\x70\xb4\xf5\xc7\xdc\x8f\x88\xc5\x33\x64\xef\xd9\x93\x9e\xe6\x5a\x62\x1e\xfa\x94\xf4\x5c\x97\x8b\x46\xa5\xb5\xab\x46\xb8\x21\x3c\xc6\xc6\x1c\x44\x0c\xb6\xae\xeb\xd0\xa7\x8e\x05\x61\xf8\x82\xd2\xea\xf9\x02\xf9\x30\x64\x34\xb8\x31\x37\x4e\x7a\x54\x18\x35\xb1\x74\x40\xc9\x01\xb1\x0c\x12\xe9\x77\xcd\xbe\xeb\xc5\xf3\xb0\xda\xde\xdf\xa7\x94\x2a\x06\xa7\x19\xf1\x98\xe6\xe9\x5c\x57\xb9\x1b\xab\x14\x92\x2d\x1e\x3f\x8a\xb5\xfb\x19\x08\x18\x66\xbc\x0e\x28\x0d\xfe\xca\xd3\x7c\x08\x7e\xe8\x5e\x35\x28\x10\xf6\x67\xbe\xee\xb7\xcb\xbe\x03\xc9\x1e\xd7\xed\xf6\x31\x84\x94\x99\xb2\xc0\x8d\xdb\x1e\x6b\xc5\x85\xd9\x98\xea\xa6\xcc\x31\x2b\x3f\x9e\xad\xcc\xf3\xe2\xd0\xa8\x4e\x8f\x3a\xd4\x27\x83\x02\xed\xd9\xd6\xff\xad\xb4\x2c\xc8\x03\x93\xcf\x3c\x65\x14\xbc\x75\x56\xf0\x7a\x23\x8b\xbc\xc8\xdd\x56\xca\x7c\x15\x61\xe1\x7b\xb5\x7f\xfe\xbe\x3e\x7d\xdf\x6c\x7e\x0f\x47\xac\xe5\xd0\xce\x6d\xac\x99\xab\x92\xa7\x3f\x11\x3c\x6a\x07\x6a\x6d\x55\x73\x77\x45\x96\xb9\xd7\xc5\x42\xea\x21\x67\xcd\xe9\xcc\xd3\xbc\x3e\x6d\x72\xb5\x2b\x8b\x73\xd1\x1d\xe6\x14\x33\x7d\x87\xd7\xb4\x5e\x65\x45\x0e\x55\x56\x94\x6a\x0f\xff\xed\x06\x08\x43\xe5\xf7\x50\xbc\xdc\xa1\xa3\x3d\x68\xfa\xfd\x79\x54\xc1\x42\xad\xd1\x71\x79\x4f\x2f\x3d\xad\x06\xb0\x88\x28\xc0\x28\xb3\x10\x3b\x9e\xd7\xe5\xf5\x38\xbf\xb0\x59\x24\x34\x62\x65\x06\x04\x98\xed\xea\xbc\x49\x3e\x4c\x4f\x03\x02\xda\xb2\x59\x6f\xf2\x97\x34\x87\x6e\x2a\x33\xaa\x22\xdb\x4d\xff\xd6\x37\xcf\x98\x9d\x74\xfe\x62\x54\x99\x72\xe7\x61\xfb\x74\xff\x60\x7c\xa8\xd3\xe3\xd7\x87\xe3\x76\xf7\xb0\xdd\x38\xfb\xc9\x62\x6a\x10\x41\x69\xfe\x9e\x22\x99\xb8\x4e\x27\xe5\x26\x16\x0b\xa9\xa5\x8b\xef\x70\xbb\x9f\x5d\x19\x2c\x96\x3e\x17\xdd\xac\x9c\x14\xbb\xff\x11\x8a\x81\xb1\x40\x25\x56\xbc\x05\x31\x2a\x46\x7c\xf0\x93\x07\x64\x4c\x28\x23\x36\xfa\x5e\x03\x3f\xdb\x1a\x9a\x7b\xb0\x24\xf1\xb0\xf5\x6e\xb7\x7d\x76\xbe\x23\xe3\x24\x46\xfc\xeb\x47\x27\x65\x7b\x24\xc7\xee\x60\x14\x21\x4b\xe7\xcc\x2c\x71\x23\xa4\xc2\xaa\x3c\xf2\x04\x56\x23\x20\x08\x13\xc4\xf0\x6c\x7c\x69\xaa\x6a\x28\x1d\x08\x4c\xa8\x10\x53\x13\xdb\xac\x39\xff\x31\x3a\x22\x7d\x81\x79\x19\xac\xf2\xaf\x07\x60\x9b\x5b\x90\x0d\x93\x2a\x46\xc7\xf6\xd2\x09\x33\x3a\x1c\xc7\x53\xe1\x22\x76\xa6\x44\x28\x0d\x8e\x84\xab\x2c\xcd\x01\x13\x34\x4f\x03\x76\x47\x60\x4a\x91\x84\x0f\xe2\x65\xd4\x54\x68\x8d\x7a\x3f\x04\x24\xe8\x01\xc3\xdb\x42\x29\x63\x53\xdd\x4b\x19\xda\x2c\x06\xa0\x99\x53\x13\xbd\x40\xde\x99\x64\xa6\x43\x1f\x91\x47\x35\x54\xf5\xb9\x72\xa9\xdd\xa4\x8d\x22\x3a\x5e\xeb\x5d\x51\x64\x55\x2f\xca\x0b\x89\xef\xc7\xf8\x46\x64\x53\x96\xd7\xd5\x6b\x2a\xdf\x20\x1f\xbe\xb2\xc4\x0f\xb8\x67\x6f\x7f\x71\xe5\x79\xbd\x2e\x8b\xd4\x98\xa6\x73\xfa\xdf\x06\x4e\xab\xe2\x7c\xa9\xe1\x14\x77\xe3\x43\x81\x39\xf9\xcd\xf1\xcb\xe9\xee\xeb\xd3\x7a\x3c\xb5\x13\x9f\x1a\xb2\x16\x04\x8d\x3e\xbf\x43\x79\x48\x7f\x74\x24\xb5\xdd\x35\x14\x20\xd9\x8e\x46\xec\xee\x27\xc9\xd9\xc4\x07\x81\x3a\xa3\xf5\x4b\x79\x30\x48\xe4\x6a\x65\xb9\xbc\xcc\x86\xf7\x8b\x80\xf7\x9f\xd5\xd9\x92\x40\x1a\x9b\x5c\x41\x6d\xbb\x35\xa6\xc2\xa8\x90\x04\x3a\xc4\x28\x84\x57\xf5\xd0\x85\x4f\x88\x1f\xa2\x09\x39\x19\xce\xb7\x51\xd7\xdb\xf8\x61\x22\xf0\x7c\xeb\xdb\x39\x7f\xe4\x26\x65\x9a\x50\x2f\xc4\xc4\xf7\x05\x5d\xb7\x74\x2a\x47\x03\x09\x15\x46\x28\xf7\x94\x56\x77\x4d\x96\x3d\x97\x4f\x4d\x36\x4f\x2b\x08\x09\xd5\x1c\x09\x89\x16\xdf\xff\x7c\xe4\xf9\xef\x00\x17\x43\x6e\x65\x0f\xc7\x91\x46\x90\xf7\x0a\xc1\xc1\x87\xe3\x7e\xde\x26\x24\xcc\xd7\x7a\x28\x26\xd3\xd5\x18\xef\x8a\xf2\x1b\xcf\xd3\xfa\xfa\x75\xff\x30\xb9\x4d\x46\x8d\xfa\xc2\x7f\x1b\x5e\xd6\x7d\xd2\x3f\x69\x0d\x9a\xef\xba\x63\xd6\xf0\xeb\x9e\x61\x48\x18\x53\x08\xc7\x5e\x96\xc5\x20\x90\x4c\x92\x24\xf6\x6c\x61\x71\x04\xf7\x70\x87\x79\x9c\x58\x04\xfb\x13\x7c\x74\xe1\xf0\x1c\xec\xf6\x7f\xa6\x67\x26\xcc\xe9\x2c\x5a\xcf\x66\x5a\xd6\xed\x53\xeb\x49\x22\x23\xcf\xf6\x32\x60\xe9\x79\x6b\x81\xdc\x9f\x7c\xdf\x04\x14\xd5\x2e\xef\x8d\xcb\x8a\xf8\xee\x89\x38\x8d\x4c\x51\x79\x90\x6c\x4c\x78\xc2\x03\xe6\x36\x0a\x9c\xf4\x3f\xe9\x29\x83\x84\x73\xc6\x65\xdf\x5c\x7f\xab\x1c\x31\x3f\x37\x85\x17\x63\x2f\x88\xc9\xcb\x99\x42\xfb\xf8\xc2\x22\x34\x40\x79\x59\x14\x6f\x5f\x2f\x5d\x7f\x5f\x7b\x00\x18\x1f\xc9\xcd\x4d\xcf\xe4\x89\x21\x3f\xe3\x3f\x86\x1e\xdc\xae\x27\x7d\xb1\x03\xa5\x6f\x3a\x63\x5f\x21\x53\x9f\x59\x04\xc5\x12\xf4\x5f\x0c\xa0\x1d\xcd\xd8\xb1\x78\x44\x7a\x33\x77\x19\xa5\x0c\x5e\xe5\xa5\x7d\x05\x98\x27\x7e\xe0\x55\x3d\x94\x26\xb0\x03\xc1\xf7\x0c\xdf\x96\xa1\x27\xb1\x7e\xc5\x86\x97\xf9\xb0\xac\x3b\xe5\x30\xfd\x2c\xc5\x3a\x98\x13\x10\xc6\x98\x38\x54\xc0\xeb\xd7\x35\xaf\xf9\x49\xfb\xcc\xdd\x1e\x10\x9a\xd8\xb6\x9f\xb5\x65\xad\x6b\x3d\x0f\xf9\x0a\xeb\x5b\x12\x3b\x48\x74\xa0\x90\x30\xe4\xb5\x68\xca\x5d\x51\x7f\x49\x5f\x5e\x2b\xd9\x83\x22\x13\x1d\x77\xaa\xa0\xdb\xbc\x82\xb2\x5e\xf1\x72\xda\xf0\x3c\xfb\xaf\x3f\xaa\xae\xdf\xfe\xaf\xbb\x3e\x67\xc8\x96\xd3\x7a\x45\x3f\xfe\x1f\x75\x93\x00\xf7\x08\x35\x75\x79\x5e\xbd\x3e\x37\xf5\x61\x22\xf2\x02\xdc\x8b\x08\x06\x3d\xbd\xf0\xb8\x9b\xe1\xf6\x36\xb8\xef\x85\xb1\x95\x65\x32\x39\xdc\x91\xe8\x82\x1b\x14\x10\x4c\x7b\x18\x3e\xc2\x41\xcc\xfa\x3f\xa3\xdb\xf1\x95\xc4\x68\xa3\x6e\x27\x24\x22\x05\xba\xd4\x23\x0f\x48\x1c\xf6\xf3\xeb\xc4\x4f\x39\x7c\x9c\x0c\x7d\xde\xaf\xb8\x2e\xdc\x15\x18\x47\x4c\x5e\x93\xab\xe2\x38\xb4\x98\xee\x27\x42\x3f\xc0\x15\xfd\x2c\xd2\xb2\x39\x6f\xab\xaa\xe9\x36\x78\x1e\x4a\x86\xe0\xa7\x1d\x2f\x55\x53\x3d\x41\xfd\x51\x94\x0e\x18\xc4\x89\x67\x2a\x83\xb2\x38\x5f\x8a\x0a\xfe\x85\xdc\xa9\xa3\xbb\x0a\x83\xff\x8d\xfe\x6f\xf0\x5f\x33\x90\x86\xff\x0d\xbc\xff\x73\xd7\xb3\x58\xa1\x3d\xa8\xe5\xd7\x3f\xba\x5f\x09\x43\xc4\xaa\x1d\xcb\xb4\x39\x7f\x29\xb2\x5e\x71\x10\x38\xe1\x80\x01\x78\xeb\x22\xad\x1b\xe8\xfe\x6c\xb5\xed\xdb\x39\x68\x17\x2e\xf9\x29\x51\x1c\xf0\xc8\xe3\x10\xba\x6e\x72\xa4\x7d\xe4\xd6\x28\xa4\xc5\xc4\xf4\xf0\xc8\x07\x4c\xfa\x1e\x9a\x3c\xbf\x76\xf7\x19\xf9\x9a\xf9\x8e\x62\xfe\xf7\x3f\x57\x37\x5a\x26\xc0\x23\x9d\x48\x5b\x4a\xdd\x15\x6f\x70\x2e\x6e\x0b\x25\xe3\x5f\xa2\x71\x8c\x16\xe8\x71\xe5\x2a\xd1\x9c\x26\x02\x31\x1f\x4b\xa7\x51\x0c\x3c\xf6\xa2\xd8\x95\x87\xba\xa6\x4b\x9f\x76\x87\x03\x53\xcc\x52\xd5\x42\xa9\x79\x33\xcd\x63\x6a\xda\x7e\x54\x5a\x5d\x9a\xda\xfa\x94\x53\xa4\x1c\x8f\xa5\x8f\x01\xe7\x0b\xaf\x70\xba\xdf\x15\x25\x4a\x58\xe4\x15\xbe\xac\x45\xfd\xa5\x38\xc3\x21\x55\xdd\x87\x60\x42\x61\xdd\xde\xd4\x05\xbe\x19\x97\xe9\xa6\x9f\x18\x78\x42\x98\x34\x94\xa9\xf5\x7d\xaa\x9d\xe5\xe4\x9c\xc4\x34\xea\x5a\xfc\xb1\x83\x76\x50\x45\xe6\xc2\xa3\xa8\x66\x63\xa4\x8a\xa7\x5c\xfa\xe3\x5f\x10\x61\x84\x51\x41\x5a\x21\x24\x62\xd0\x89\x3b\xf4\x74\xb9\x48\x6c\x90\x0f\x99\xce\x32\x28\xaf\xc8\x08\x53\x34\xb9\x1a\x71\xdf\xfe\x63\x72\xac\x7f\xf2\xaf\x33\x29\x82\x4b\xc9\xe6\x00\x1e\x9f\x3c\x91\x30\xa5\x07\x4c\x22\xce\xd0\x5a\x02\x17\xca\x10\x4f\xa4\x15\x36\x5a\xd5\x83\xfe\x63\x3b\x42\x12\x81\xf9\x5e\xe4\xb9\xff\xba\x71\x61\x12\x97\xda\x54\x25\xd1\x65\x4e\xd1\x8c\x9f\x74\x9a\x63\xa7\xfc\x17\x4c\xa5\xc2\xbb\x73\x96\x3a\x5b\xa1\xbc\xc8\x6f\x2f\x96\x01\xd2\xed\x9f\xcf\x4d\x3e\xc8\xa9\xba\x41\x81\x8f\x26\x11\x39\x91\xea\x41\xd1\x94\x2b\x12\xc9\x01\x3e\xfe\xc4\x87\x69\x28\xae\x94\xa1\x29\xb3\x9c\xac\xdf\x79\x59\xf2\xfc\x67\x94\x43\xc0\x95\x4e\xa2\xb8\x23\x3f\x36\x3d\x2f\x53\x36\x40\xe0\x10\x18\x15\x71\x74\x72\x16\xe3\x46\x51\x3b\x44\x47\x94\xf7\x2a\x75\xdb\xbc\x6a\xa6\xac\xbd\xc0\x35\x0f\x70\x5b\xaa\xb8\xfc\x15\x6d\x3f\x08\x8f\x71\x5c\xc3\x97\xb2\xf8\x0b\x64\x3d\x14\xd8\x04\xe1\x71\x62\xb0\x9c\x43\x8e\x14\x10\x7e\x10\x63\x7e\x13\xfb\xca\xf2\xb4\x4f\xe8\xba\xe8\x51\x04\x22\x42\xc4\xa8\xad\x10\x7c\xe1\x62\xda\x21\x20\x02\x61\x24\x8d\x0e\x5f\xb6\x47\x97\xdf\x14\xa1\xcf\x78\x5f\xbc\x43\xad\xe3\xb2\xb8\x60\x82\xde\x28\x47\x4c\xa9\x83\x41\x84\x4c\x10\x6b\x2d\x2d\x3a\x6f\xd2\xa9\x27\x42\x1e\x32\x93\x71\xbd\xac\xf9\xd5\xb9\x94\x82\x78\x0a\x73\x7d\xb8\x23\x9a\xea\xfd\xf8\xbc\x48\x53\x1c\xd0\xee\x29\xfc\x96\x50\xda\x8e\xa2\xc4\x34\xec\xb6\x86\x21\x6b\x60\xd4\x5f\x0e\x22\x56\xe0\xf7\x4a\xa4\x2b\x7e\xf9\x9c\x2d\x65\xf4\xa1\x45\xac\x15\x01\xdb\x3a\xf7\xc8\xf3\x4f\xd9\xa4\x46\xe4\x25\x83\xd7\x92\x04\xda\x31\x49\xd9\x92\xee\xf8\xb6\x93\xc8\xc0\x6c\xda\x78\xdc\x09\xa7\x82\x48\xa8\x09\x2a\xad\x86\xf4\x5d\xf1\x49\xb2\x47\x24\xb6\x41\x5a\xf2\xfc\x31\xed\x96\x86\x48\x64\x82\x39\x8d\x0f\xfe\x0e\xd5\xfd\xf7\xee\xcf\x2a\x88\x8d\xb6\x37\x5c\x8a\x0b\x66\xbd\xa7\xb7\xa3\x0c\xc7\x84\xfe\x50\xc7\x62\xf3\x74\x18\xd6\xaf\x85\x83\x0c\x1d\x24\xcf\xb2\xe2\xf2\x39\x39\xd2\xfc\x17\xe2\x01\xc3\xc9\x68\x95\xc5\x77\x19\x97\xc8\xf6\xe1\x78\xc4\xf3\x97\x61\xc8\x2f\x38\x27\x81\xcd\x09\x1d\xcb\xa6\x9a\xb6\x19\xd8\x51\x22\x36\xea\x51\x7b\x90\x29\xbc\x83\x42\x5c\xe0\x1c\x95\xd4\x68\x3a\x88\x18\x10\x91\xf4\x56\xc9\x65\x53\xe6\x23\x3a\xc2\xd9\x13\x64\x28\x2c\x49\x26\xc6\x37\x5d\xda\x3d\xfb\xc5\x69\x89\xb2\xc2\xd3\xd7\x55\x71\xb9\x96\xe9\x80\x7e\x73\xd6\x0c\x48\xe9\x11\x43\x6b\x5e\x61\x29\xfb\xc6\x38\x09\x15\x30\x02\x03\xf4\x74\x1b\x6f\xb6\xfe\x7b\x70\x73\x27\xe3\x17\xa5\x78\x84\x06\xe6\xbb\xe3\x72\x75\x0c\x09\x93\xdb\x99\x9c\xa5\x22\xac\x9c\xde\x43\x0e\x65\x2a\xfb\x4f\xfe\x8f\x1c\x4d\xc4\x4a\x63\x35\xc4\x14\xcf\x2b\xe3\x3b\x8d\x32\x68\x02\x88\xc6\x29\x7c\xa8\x79\xae\x78\xa9\x4e\x51\x77\x44\xc4\x61\xaf\xa9\xba\x2f\x7a\x05\xab\x29\xc4\xfe\xff\x93\x1c\x8b\xd0\xbe\x87\x50\xae\xef\x45\xf9\xa6\xb3\xe2\xe3\xd0\x53\x8d\x83\xd0\x8c\x24\xac\x2f\x9f\x1f\x8b\xa9\x7c\xcd\x7c\x69\x5e\xe8\x76\x37\xc1\xe0\x5b\x64\x69\xf5\xfa\x08\x55\xd5\x2b\xa3\x98\x31\xd2\x53\x71\x92\x74\x2d\x96\xcb\xa2\x98\x74\x5e\x48\xdf\x93\xc8\x4f\x9b\x5a\x06\xb3\x43\xcd\xdf\x3e\x29\x54\xb4\xfe\x98\x36\x0d\x7d\x4b\xd3\xa4\x84\x7a\xe7\xc6\x24\xff\x5c\xe5\xca\xc9\x7e\x39\xc8\xaf\xf4\x63\x4d\x13\x2b\xc0\x06\x5b\xe9\x52\xf0\x32\x20\x1c\xcd\xcb\x85\x5f\x2d\x8e\xde\xef\x0e\xc5\x01\x52\x5e\x6d\x8b\x9a\xf7\x80\xb6\xd1\xa4\x92\xa1\x1f\x21\x87\x07\x66\xb1\xa1\x39\x2f\xcb\x14\xe9\x1c\x9d\xf9\x92\x21\x50\xcc\x44\x16\xef\x50\x4e\xe9\x93\x41\x86\x9a\x23\x52\x77\x4c\x29\x3a\x6f\x20\x65\xe4\xc5\xd8\xb0\x55\x7d\xa4\xb5\x7c\xd5\x8d\x33\x2f\x32\x82\x18\xc9\x1a\x2f\x9d\xda\x94\xe5\xbb\xfb\x7f\x35\x87\x24\xf5\x04\x16\xbc\x8d\x63\x70\x42\xe0\xd9\xe9\x72\x8b\x07\x94\x54\x48\x6a\x78\x04\x0a\x5c\xe6\x36\x73\x62\x13\x39\x91\x1b\x05\x02\xe9\x3d\x44\x73\xbd\xcf\xb8\x4a\x79\x5d\x94\xab\xd7\x41\x5a\xd1\x8e\x8b\x63\x29\xfc\x81\xdc\x63\x3b\x45\x27\xa6\x52\xc6\x5c\x68\xe5\x88\xda\x9a\xbc\xb2\x59\x84\x6a\x9b\x9b\x5e\xcb\xf9\x17\xc8\xbc\x04\x95\x36\xeb\xe2\x5c\xac\x8a\xfc\x1d\xca\x7a\x50\x1a\x91\xcc\xf7\x30\x73\x0f\x3f\x40\x36\xb5\x29\xf1\xaf\x21\xab\xf9\xb2\xb9\x11\x79\xff\xf4\x15\x0e\x8f\xdf\xca\xe9\xcc\xae\x2b\xc9\x02\x53\xe5\x59\xa6\xb5\x2c\xd2\xfc\xbe\x84\x6e\xeb\x90\xdc\x8f\x12\x31\xb0\x91\x43\xf1\x8e\x5f\x98\x0c\x77\x05\xe2\x61\xf2\x7e\xb7\xd9\xaf\xac\x3a\xe9\xe9\xf8\x7c\x5a\x6f\xbe\x75\xbf\x41\x0c\xad\xe9\x11\x32\xb8\x1f\x54\xda\x25\x8f\x4d\xa2\x00\x8d\x7d\x14\x4c\x3e\x94\xf0\x35\x06\xef\x69\x75\x57\x94\x6f\x7d\xdc\x2a\x05\x21\xb8\x70\xcc\x8c\x69\x6d\xec\x09\xfd\xcf\x93\xe8\x75\x08\x40\x4a\x25\xb0\x3a\x9b\xf1\xaa\xbe\x03\xa8\x6c\x72\xa0\xf3\xb8\xa5\x54\xa6\x92\xe2\x3c\x37\xb9\x83\x72\x79\x23\xd3\x07\x52\x79\x11\x26\x96\x2e\xfc\x6a\xe5\xba\x6c\x31\x7f\x76\xf7\x90\x2a\x60\xa1\x23\xfd\xb1\x59\xc4\x81\x54\x23\x48\x15\x1b\x34\xb6\xab\xb0\x74\xf2\x7a\xa3\xe6\x42\xa9\xb8\x87\x28\xc8\xba\xc9\xa7\xeb\x01\x7c\x81\x3c\x22\xf7\xfc\x3c\x12\x23\xea\xdb\xa7\x06\xff\x35\x76\x73\x25\x04\xc0\x3b\x96\xaa\x9e\xea\xb1\x75\x2e\xba\x90\x58\x82\x34\x9e\x9c\x0b\x3c\x07\xe8\x36\x93\xcb\xb9\xcd\x92\x49\x80\x08\xa3\xcd\xfb\x42\x19\xb5\xb0\x59\xcf\x46\x6a\x8f\x04\x74\x30\xdf\x7a\x26\x17\x37\xc0\x12\xea\x61\x87\xca\xb8\xcc\x20\x75\x62\x14\x3f\x6d\x95\x1b\x13\xc5\x7b\x90\x90\xbe\x4f\xb3\x8f\x52\x27\x12\xfc\x6e\x9f\x68\xbd\x96\x81\x9c\xff\x64\xb5\x6b\x61\x6c\xf7\x05\xe0\xed\x81\x57\x43\xc1\x49\x50\x5e\xa8\xb1\xfd\xd3\xf4\x72\x1c\xa0\x9d\x43\xe3\xef\xa1\xbc\xc4\xc3\x48\xda\xbc\xae\x47\xc0\x62\xd2\x4f\xc3\x4f\xe5\x71\x66\x4a\x21\x50\xd5\x2e\x9b\x7d\xf8\xe0\x25\x26\x5c\xdd\x18\xe5\xa3\x1b\x82\x20\xc9\x1b\x26\x91\xf1\xf5\x7c\x96\x38\xf2\x99\x8e\x2d\xeb\x2e\xe3\x2f\x43\xae\x3b\xbf\x1b\xcc\x93\xa0\x53\x86\xdb\xae\x9e\x87\x94\xd6\xa0\x7c\xc1\x6c\x5b\x0c\x5a\xb0\x63\xb1\xed\x00\x5d\x6e\x84\xd4\x52\xb9\x5c\x4d\xdf\xa2\x34\x7a\xa9\x2a\x08\x3d\xd4\x1a\x17\x0d\x9a\xce\x47\x9e\x0f\x15\x4b\x41\x05\x51\x84\x7a\x31\x45\x6e\x99\xbb\xf1\x33\xde\xf2\xeb\x0d\xbc\x6a\x15\xb0\x04\x3b\x86\x57\xbb\x22\xcb\x8a\xa1\x0b\xac\x42\x3f\xd2\x16\x27\xb2\x77\xbc\x40\xdd\x03\x87\xa1\xe4\x16\xf3\x67\xf6\xf8\x36\xdc\x5f\x4c\x3f\x63\x48\x04\x22\x24\x6c\xf0\x74\xc0\x47\xae\x66\x24\x03\x40\x85\x54\x03\x4c\x22\xfc\xbc\xe9\x9a\x93\x15\xf1\x7d\x0c\x0a\x11\x3e\xb5\x2b\xdb\x78\x73\xfc\x76\x48\xa8\x31\x59\xd7\xae\x14\xf4\x14\x47\x0f\x43\x62\x40\x1e\x98\x6a\xeb\x8c\x95\x8a\x3c\xc0\xe7\x83\x73\x8a\xd6\xac\xaf\x97\xcf\x4f\x88\x28\x34\x42\x30\x66\xcf\xae\x0c\x2a\x65\x92\x91\x52\x11\xe1\x38\x11\xa0\x2b\x50\x28\x1a\x7b\x88\xf5\x69\xad\xe6\x07\xc0\xdb\xc9\xcc\xfb\xc0\x1d\x8f\x49\x18\xdb\xd8\xf1\xcb\x55\x95\xe6\x23\xcc\xc6\x1b\x8a\x51\x8a\x3a\x75\xca\xc6\x19\xd5\xd8\x3d\x57\x09\xf1\xc8\x08\x56\xd4\xad\xd0\xff\x36\xa9\xba\x49\x7e\xa8\x24\x62\x6c\xa0\x27\x1a\x44\xf4\x91\xbb\x5e\x55\x95\x24\x2c\x72\xd3\x6d\xb0\xe9\xaa\x24\x51\x60\xd8\x7f\x90\x95\xfa\x00\xb2\x29\xd3\xfa\x6a\x61\x42\xb3\xba\x8a\xa0\x12\x15\xfb\xd6\x33\x29\x5f\xe0\x5f\x4f\xc7\x5f\xac\xe6\x44\x31\x94\xf2\x75\x26\xdd\xf8\x9c\xf6\x20\x0f\x29\x02\x1d\xd4\x35\xe7\xe7\x54\xee\xe1\x1d\x06\xfa\x97\xce\x30\x2b\xce\xa8\xe8\x1d\xdb\xae\xb4\x52\xf4\xda\xfb\xfd\x50\x4e\x03\xd7\xe4\xf2\x9f\xfd\x8f\x19\xbf\x51\x09\x46\xb5\x55\xd5\xde\xf1\xa6\x1a\x26\xfe\x94\x10\x3e\x32\x3c\x54\xbc\x91\xb0\x2b\x8a\x0c\x69\x94\xdc\xed\x4a\x3f\x06\x57\x94\xbe\xe3\x69\x76\x80\xfa\xa9\xef\x45\x57\x32\x8e\x93\x4e\x88\x76\x65\x04\x5d\x56\x9f\x49\xd6\x80\x92\xdc\x8b\x08\x16\x25\xa7\xd1\xd0\xfc\x9b\x94\x82\x68\x5b\x9f\xc0\x34\xcc\x2c\x7b\x1f\x28\xa9\x3d\xcc\x67\xe1\x5d\x8c\xc1\x5c\x4a\xf9\x01\x8f\xfa\x4c\x58\x51\x76\x96\x4d\x71\x3f\xb4\x73\x17\xcb\x38\xe3\xc4\x87\x52\x4a\x60\x07\x93\xe2\xe5\xdb\x80\x11\x43\x29\x1d\x61\x26\xec\xe9\xf9\xe1\xe1\x4f\xd4\x89\x1f\xdf\x0c\x04\x12\x8b\x74\x7f\x15\x69\x3e\x90\x5e\x9c\x2e\x36\x20\x86\xdc\xa9\xf5\x30\x9a\xcb\x44\x6a\x07\x14\x48\x43\x35\x5a\x01\xaf\xc7\x96\x12\x2c\xf8\xc7\x39\xac\xf8\x39\xc6\xb7\xa0\x3d\xc3\xfe\x79\xa8\x0b\xd7\xfc\xad\x34\x03\x64\x5c\x79\x82\xfa\xda\x64\x3f\x0b\xa5\xc1\x0b\x0d\x12\xcf\x50\xe5\x1f\x0e\x2e\xb9\x05\x1e\xa5\xd8\xc6\x8e\x8e\x55\xf5\x35\xaf\xd3\xec\x7b\xf7\x62\xc0\xf7\x69\xec\x00\xe0\x1f\xcb\x26\x57\x59\x6b\xe8\x9b\xac\x4e\xeb\x1b\xca\x56\x00\x3f\x8c\xb0\x16\x7e\x7a\x81\xfa\x5f\x7f\xee\x56\x03\x81\x37\x00\x9f\x88\xb0\x13\x86\x7e\x1f\x7f\x51\xf0\x69\x6f\xbe\x0b\x35\xc3\x07\x0b\x10\x78\x1e\x42\x0f\x9b\x5c\x41\x89\x1d\xc4\xf3\x76\x11\x02\xdf\x88\x05\x5d\x4a\xd0\xe9\x0f\x50\x5f\x7a\xfe\x0a\x37\x22\x94\xc4\x94\x46\xb1\x95\x63\x00\x38\x19\xbd\x73\x08\x98\x91\x44\x7b\xf8\xe6\x8a\x18\x10\x80\x8f\xa8\x02\xa8\x5f\xa7\xde\x26\x84\x54\x63\x0a\xdd\x71\xfb\xa7\x79\x7a\xf8\xe0\x97\x87\xde\x63\x05\xe2\x71\x4e\xfa\x04\x18\x76\x89\xcc\xfa\xdc\x40\x62\x8a\x93\xa5\x40\xca\x1b\x4b\x51\x55\x2d\xaf\x87\xcb\xc8\x33\x75\xa3\x85\x00\xd1\xa1\x75\xab\x65\x73\x5d\x5e\x17\xf5\x44\xe4\x1a\x80\x48\xe9\x18\x5c\x96\x8b\xe5\xb4\x4a\x6e\x07\x45\x96\x51\xbb\xcb\xa9\xb4\x7b\xc7\xe7\x7a\xc7\x00\x91\x54\xb2\x53\x17\xc7\x84\xed\xf2\x3a\xed\x5b\x82\x08\x38\x26\x36\x76\x4d\xf9\x32\xd0\x9a\x05\xa0\x1e\x01\x4b\xce\x73\x3f\x98\xf6\xb3\xa5\x7e\xa0\xa1\x85\xdb\x1a\xd4\x0f\x72\x7d\xd8\x43\xb1\x6f\x62\x6d\xd1\x5c\xff\x53\x4c\x1d\x6a\x48\xa8\x42\x4c\xb9\x71\xe0\xda\x58\x7c\x56\x5d\x0e\x20\x61\x4a\x5b\xdf\xde\xf9\x05\xa3\x0b\xf1\xd8\xe4\xbe\x72\xf8\x38\x34\x42\x15\xe7\x76\x02\xcd\x36\x24\xcf\x9a\x4b\xe0\x8c\xc5\xd2\x79\x66\xdf\x56\xc3\x37\xc1\xc1\xb4\xf9\x2e\x10\xcf\xf6\xb3\xd5\x2c\x6c\x41\xcb\xf5\xf7\x9a\xde\x78\xa3\x6b\x6a\x50\x7e\xfd\xac\x14\x1e\x37\x84\x79\x30\x84\xf5\x83\xf0\x05\xe6\x1f\xad\x18\x26\x4f\x2b\x50\xdb\x4a\x76\x87\xa9\x62\xc3\x10\x06\x4f\xb5\x8d\x3e\xb3\x21\x28\x08\xd0\x3a\x76\x61\xc7\x4d\x8b\x08\x48\x5f\x62\xbb\x4f\x5a\x55\x0d\x18\x49\x8e\x54\x0e\x92\xe7\x73\x8f\x09\x11\xc3\x36\xa5\xe2\x72\x29\x72\xc8\xeb\x11\xf0\x16\x20\xe1\xb8\x14\x8f\xdb\xcd\x9e\xd8\x3f\x6a\x3f\x06\xf4\x49\x0d\x84\x1f\xf8\x79\xb0\xcd\x76\xda\x20\xa0\xfd\x84\xa3\xa3\x91\xf3\x52\x16\xd5\xf2\x6a\xc2\x0d\x39\xaa\xe4\xeb\x20\x34\xdd\xfc\x96\xbe\x78\xd9\x94\xf9\x43\xf1\x89\xd5\xd1\x01\x8b\x91\x21\xe2\xab\xd1\x18\x37\xa2\xe6\xc5\x6d\x8e\x5b\x07\xe0\xe1\x26\x81\x34\x70\xdd\xd3\xe8\x30\x32\xc8\x6a\x9b\x53\x45\x64\xaf\x25\x55\x76\x23\x92\x84\x86\x7d\x1a\x7c\x1c\x4c\xea\x90\x1b\x39\x77\x05\x5c\x3d\xa4\x1d\x98\x4c\x13\xa2\xfd\x61\xd1\x6c\xf5\x9a\x66\xbf\x94\x79\x77\xe7\xb2\x98\xf6\x2c\x54\xdd\x94\xd2\x44\x27\x66\xee\x64\xbc\x3c\x4f\x36\x41\x1d\x05\x41\xa8\xa7\xfd\xa6\xc7\x02\x6b\x84\x5d\x4d\x5d\x47\x91\x83\xd7\x71\xd5\xb3\xd6\x82\x8e\x28\x35\xe0\x52\xf3\x1a\xee\x8a\xb2\x6f\xb2\x19\xbf\xc7\x48\x18\x16\x60\xa4\x89\x44\x1b\x3f\x07\xcd\xd3\x71\xa0\xb9\xb3\xf5\xe6\x7b\x3c\x14\xc5\x5b\x73\x19\x78\x3c\x3a\xe6\x01\x92\xcc\xf4\x20\x19\x1d\x4b\xa3\x7b\x50\xa7\x98\x74\x2b\xeb\xdb\xa2\xac\x66\x5e\x88\x6b\xe4\xf7\x3f\x57\x37\xce\x8f\x1b\xa2\x63\xf4\x54\x9a\xaa\x0b\x5f\x17\x4a\x4d\xbb\x61\x74\xe2\x89\x84\x98\xf2\xee\xe1\x35\xbd\x54\xcb\xeb\x08\x6c\xe8\x46\xc5\xa1\x23\xfa\xf8\x9a\x4b\x53\xa5\xbd\x1b\xd4\x33\x75\x12\x1b\x0a\x4b\xf7\xad\xab\x31\xb5\x83\x4e\x80\x48\xe8\xda\x24\x91\xad\xc3\x62\x5d\xc7\x0f\xc6\x7d\x43\x61\x87\x8b\x68\x09\x5d\xa7\xb8\xe6\xb1\x8a\x78\x8f\xcd\x6e\x7f\xbc\x6b\x69\xed\x07\x81\xe1\x81\x3b\x40\x96\x9d\x7a\x69\xc4\x4f\xd3\x4b\x5a\x50\xc0\xaa\x85\xe4\x59\x2f\x81\x3c\x7e\x74\xc1\x01\x5b\xc7\xa5\x8d\x7c\xb7\xb2\xd8\xf1\xb2\x76\x31\x8b\x96\x21\x04\x62\xd8\xb8\xdb\x3f\xb4\x8c\x64\x18\x0c\x7c\xab\x6a\x5b\xc3\xf9\x36\x45\xa0\xa5\x0c\xb1\x7e\x68\x73\x45\xe9\x4b\x0e\x6a\x0d\x3c\xb3\x9e\xda\xfc\x0a\x51\x3c\xd0\xae\x47\xbf\xbd\xa7\x2e\x15\xa4\x8a\x0f\x67\x6a\x35\x78\x80\xdd\x19\x69\xde\x2e\xa4\xfa\xda\xfd\x9d\x06\x89\xe1\x36\xbf\x1e\x76\xdb\xdf\x37\xdd\xdf\x15\x41\xa7\xeb\xf0\xfb\x2f\x2b\xa5\x5a\x53\x25\xb4\x7b\xf0\xaa\x41\xb6\x40\x7b\xc7\xa3\x50\x4c\xeb\x38\x66\x4e\xb5\x7f\xc9\xff\xe6\xbd\x9a\x3b\x68\x9d\x78\x58\x9b\x4d\xab\x6f\x50\x56\x69\x91\x77\x1d\xde\xe5\x43\xf1\x92\xca\x6e\x9c\x34\x95\xd7\x0a\xea\x93\x7d\x1f\xc1\x7c\x54\xa0\xb5\xa6\xdc\x3a\xe2\x5f\x2b\x58\x6f\x1e\x36\xf7\x8b\xe3\x66\xb5\x78\x78\xe8\xe3\x14\xed\x05\x4a\x18\x9e\x47\x9e\xab\xa7\xc6\x65\x0d\xb5\x17\x82\x87\x98\xc9\xd6\xdf\x76\xbf\x74\xba\xf0\x9b\x1c\x6a\x37\x5c\xc7\x0e\x0e\xca\xd3\xcc\x20\x8f\x8d\x8b\x38\xfc\x5c\xda\x23\x2c\x40\x38\x34\x4e\xec\x87\xa2\xd7\x39\xd6\x5e\xe4\x19\xb8\x68\x09\x55\x91\xbd\xc3\xda\xe2\x3c\x9a\x6b\xdf\xac\x3d\xfe\xd1\x28\xe0\xcc\xe4\x12\x9a\x7c\x04\x89\xa9\x26\x3f\x1a\x25\x0a\x71\x08\xa7\xbc\xc8\x25\xf8\xdd\x0f\x4a\x81\x1d\x4c\xaf\xbc\xba\x2b\x9a\xf2\x50\xc3\x65\xdc\x7b\xac\xbd\x48\x51\xc4\xdc\x42\xae\x9c\xea\xc9\xf8\x1e\x28\x31\xd4\xe5\x48\x84\x90\x8f\x99\x2a\xb4\x17\x73\x8e\x72\x13\xab\x7f\x1f\x7f\x49\x1f\xa0\x3d\x16\x00\xa6\xb8\xee\xb7\xab\xa3\xbb\x02\x23\xc4\x48\xed\x22\xf9\xda\xae\x2c\x0a\x3d\x9a\x56\xda\x63\x71\x00\x9d\xa9\x18\xe1\xe1\x3e\x61\x56\x69\x4f\x89\x8d\x06\x3c\xc0\x22\xcb\x0c\x30\xbb\xfb\x0c\x09\xa1\x08\xb7\xe4\x4a\xa1\x9a\xf6\x36\x27\xdf\x01\xde\x4c\xa9\xec\x56\x74\xf2\xa6\x01\x56\x7b\xdc\x8b\x85\x8d\x33\xbe\xf0\x52\x75\xd3\x5c\x7b\x3c\x0a\xb1\xa5\xed\xa9\xa8\x39\x26\x6c\xc6\x8f\xc2\xb9\x15\x8f\xfb\xfe\x64\x9b\x16\xb1\xe4\x75\x32\x54\x6b\xc3\x69\x2b\x3c\x89\x7e\xc9\x8e\xa7\x15\x1f\xa4\x75\xb4\x27\x48\xec\x2c\xec\xf7\x34\x7f\x28\x2a\x2b\x88\xb6\xbc\x2e\x0d\xb6\x07\x4d\xd0\x36\xbf\xe7\x67\xd1\x86\x52\xad\x11\xfb\x6c\x56\x0b\xc6\xd0\x63\x5a\xf1\xfc\x4f\xbe\xe6\x45\xf7\x1b\x22\x08\x4c\x39\x1c\xe9\x4f\xec\xb6\x72\x57\x16\xe7\x9e\x9f\x65\x8a\x27\xfc\xac\xd0\xf5\xd9\xdf\x67\xab\x0e\xf6\xf7\x25\x09\xad\x0c\xbc\x55\xd1\x3b\x89\xeb\xa9\x6e\x23\x99\x9b\x9c\xb1\xf6\x24\x18\x72\xb6\xb4\xda\x17\x45\xbd\x68\xea\xd7\xa2\x9c\xe6\x7d\xb4\xa7\x08\x51\x2e\x57\x6a\x1d\x27\x83\x71\x6e\x57\xc4\x8e\x97\x90\xd7\xd5\x5d\x51\x42\xfa\x92\x3f\x15\xf5\x36\xff\xea\xd8\xfb\xdb\x53\x35\xe6\x09\x36\xef\x90\xd7\x0f\xed\x66\xf4\xf5\x32\xec\x21\xee\xfe\x71\xe3\x23\x5f\x18\xa1\xe6\xed\xd3\xc3\xe2\x7b\x77\x19\xe9\x23\x6a\x73\xbb\x5d\xfd\xca\xe8\x6a\x4f\x69\xa3\xe8\x89\x8e\x41\xe8\x2e\x01\x24\x41\x2a\xb6\xd6\x98\x15\xe7\xf6\xce\x4d\x96\x79\x3c\x3d\x81\x86\xd8\xaf\x71\xc7\xab\xfa\xbe\x2c\x3e\xea\xd7\xd1\x04\x82\x44\x51\xbf\x8b\xa5\x0a\x3d\x93\x9b\xd4\x9e\x8e\x08\x4a\x7b\xbd\x17\x59\x93\xd7\x00\xe5\xf7\xb2\x03\xc2\x68\x4f\x33\x86\xb1\xf4\x7d\x51\xbc\x38\x1a\x18\xed\x7b\xbe\xd1\x24\x4b\x2b\x97\x67\xb6\x1f\xe3\xef\x5b\xa5\x09\x77\x4a\xe8\x2b\x8b\xc2\xb9\x14\x15\x20\xd7\xfa\x67\x9c\x1b\xda\xf7\x84\x61\xbd\xef\x5b\x08\x87\x49\xd1\xd9\xad\x5f\xfb\x7e\x14\x60\xea\xfd\x52\xfe\x52\xf7\xd5\x9d\xa1\x09\x26\xee\x44\x73\x5d\x95\xa0\xd2\xba\x5a\xe4\xea\x70\x81\x5c\x2d\x72\xe5\x18\x81\x66\xaa\x5a\xec\xb3\xb9\x6f\xaf\x1b\x78\x1c\xd3\xf5\x46\xec\x7b\x66\x2a\xfb\x81\x4f\x31\xaf\xa0\xd3\x2c\xfb\x7a\x39\x64\xc5\x7c\x0b\x90\xf6\x83\x48\x22\x6b\x99\xc5\x19\x6d\xab\xff\x40\x59\xcc\x79\xa7\xda\x0f\x84\x26\xbd\x20\x64\x51\x9e\x27\x36\xdc\x0f\xa9\xe1\xc5\xac\xa0\x7e\x37\xec\x9c\x3f\x63\xe3\x9a\x99\x2c\x7e\x18\x1b\x1d\x38\xc9\xf3\xc3\x85\x7f\xe4\x8b\xca\x2d\x8f\xd9\xf7\x40\x98\xc1\x98\xbe\x40\x6d\x59\xa5\x9c\x6d\xf6\x89\xf4\x91\x35\x1e\xb9\x94\x47\xb6\xd3\x27\x4a\xa2\x1b\x62\x89\xbc\x0e\x35\x7f\x4b\x73\xa3\x69\x36\x0c\x53\xb4\x1f\x05\x06\xb1\xd8\x3a\xc4\xa3\x1c\x90\xf6\x23\x4e\x89\xed\x0f\x38\xe5\x76\x57\x18\xbf\xd8\x48\xb1\x20\x76\x31\xe4\x71\xbd\xf9\x49\xad\x5b\xfb\x11\x90\xa0\xcb\xbf\x23\xf1\xe7\x0c\xb8\xb6\x1b\xcb\xe3\x61\x13\x79\xd9\xba\xcd\x3d\xf6\x4e\xfb\x14\x12\x24\x15\xdf\xc9\x21\xdd\x49\xfb\x77\x89\x2e\xdc\xa9\x75\x4c\x9b\x1a\x56\x4e\x7b\x28\x70\x97\x8e\xa9\x0c\x2d\x15\x97\x4e\x11\xb6\xe3\xce\x8d\x93\x40\x18\x6d\xe9\x2f\x13\x32\x63\xed\xb3\xd8\xd0\xc0\x57\xaf\xa9\xae\x4f\x19\xe8\xda\xc6\x82\x93\x87\x64\x4a\x1b\x45\xb7\x57\x9e\xd7\x8e\x5b\xc4\x1e\x4b\x3c\x89\x1e\xdf\xfd\x62\x35\xfa\x3b\x0f\x00\x77\xaf\xa7\x46\x66\xd0\x54\xdf\xd2\xd6\xe3\x33\xaf\xf2\xd1\xd0\x16\xcf\xbf\x50\x11\xfa\xe8\xc7\x1c\x5f\xd3\x52\xe1\xc6\xb5\xcb\x78\xdd\x4e\xda\xe1\x53\x89\x48\xfb\x43\xe6\x4c\xd7\xf8\x63\x27\xdb\xf8\x8a\xa2\x53\x5d\x5e\xad\xbe\x58\x58\x2e\x71\x57\x92\xa1\x51\x41\xe1\x97\x4b\x66\x6b\x93\x6d\xd0\x76\xe4\x3d\x05\x9c\x1b\xc9\x3c\xf4\x4b\x91\x52\x09\xc9\xaf\x86\x88\x41\xed\x4b\x65\xfc\x56\x63\x6f\x77\x45\x91\x9d\xc6\x0c\x32\xda\x57\x44\x62\x75\x2d\xe3\x55\x57\xd3\x6d\x27\x40\x55\xf3\xf3\xa5\x1b\xa4\x05\xe3\x5d\x5c\xc4\xeb\xba\xa3\x37\xd3\x3e\xc4\x49\x62\x23\x90\xf6\xbc\x6c\x40\x3a\xe2\x46\x30\x23\xb5\x7d\x29\x01\xc3\xc5\xc7\x71\x83\xac\xbb\x90\x06\xe2\xfa\x03\xee\x2d\x8c\x78\x3c\x39\x02\x2f\x02\xec\xaf\xc9\x1a\xf9\x76\x1d\x36\xb6\xe9\xc0\x63\xe0\x79\x1d\x19\xad\x91\xc0\x04\x65\x7c\x90\x6d\xee\x38\x8f\x27\x97\x4b\x22\x9b\x93\xcc\x32\x23\x59\x98\xcd\x6b\x56\xe8\xc0\x0f\x68\x68\x5b\x21\x1e\x79\x5d\x16\xf9\x24\xcd\xa7\x03\x1f\x08\xa6\x06\x0c\xe2\x03\x9f\xb3\xfd\x1e\x6b\xde\x71\x18\x4c\x2e\x19\x48\x12\xc5\x9d\xfc\xd2\xe4\x6a\x81\xa2\xd8\x44\xd0\x5a\xe1\x15\xcf\x50\x6d\x6f\x81\xfa\x13\xed\x5f\xfe\x97\xfc\x9f\x1b\xa7\x29\xe6\x96\x77\xbc\xaa\x3e\x8a\x52\xf5\x24\xfa\x68\xa6\x02\x6f\x44\x80\xa0\x83\x50\x10\xc4\xee\x41\x51\xed\xf6\xdb\x6f\x8b\xe3\x66\xde\x94\x07\x84\xc7\x89\x0d\xb9\x1f\x8b\xaa\xfe\x56\xd4\xa0\x9e\x2f\x83\x7e\xe6\x76\x08\x57\x4e\x9b\xef\xcc\x7f\xac\x37\xc7\x6a\xe7\x74\xd4\x1f\xa0\xaa\x8e\xaf\x3c\x9f\x3c\x16\x51\x80\xb7\xdb\x63\x76\x26\x64\x15\x3a\x88\x7c\x81\x80\x0e\x6d\xd2\x26\xae\x4c\xfe\xac\x07\x95\x9c\x76\x94\xe9\x23\x3c\x3e\x1f\x17\x0f\x27\xec\x42\xc6\x0e\x57\x6c\xf2\x73\x63\x48\xe2\x5b\xcc\xe5\xe9\x9e\x4f\x4c\x6a\x10\x45\x09\x76\xbe\x98\x8c\xe8\x4c\xa9\x4c\x07\x91\x30\xb4\x51\xd0\xba\x2a\xb6\x92\x7b\xdb\xc9\xe7\x06\xcb\x08\x27\xf9\x37\x28\x73\x7e\xbe\xcd\xe3\xeb\x80\x7a\x5e\x18\x0f\x73\x08\xad\xc3\x6a\x82\x76\x77\xcb\x34\x49\x30\x70\x69\xa3\xe5\x6f\x86\x3f\xa8\xf8\xb9\x94\x8d\x0e\xa8\x30\x2c\x02\x8f\x48\xf1\xf4\x7b\x31\x14\xf7\xb4\x43\xe2\x38\x41\x4e\x2b\x31\x90\x43\x75\x0e\xee\xe8\x16\x63\xab\xd5\x86\xeb\x7c\x08\x41\x50\xdd\xa5\x34\xc7\x2c\xee\x73\x9f\x52\xd5\x01\xf3\x3a\x22\x07\x1b\xae\x39\x30\xe7\x27\xf4\x11\x3a\x60\xd4\xc3\xb5\xe7\x08\x76\xd0\xe7\x1b\xed\x98\x01\x53\x31\x38\xcc\xed\x73\x53\x23\x43\xe6\xe8\x1a\x09\x67\x58\x80\xe3\xa2\x68\x6a\x43\x4d\x77\x35\x62\x0e\xd3\x8f\x9d\x88\xc4\xe3\xbd\x2a\x7f\x55\x15\x32\xbd\x4d\xad\xe9\x40\xc4\x11\x56\x1f\x4d\x2a\xa4\xb5\x97\x36\xc8\x58\xf1\xcb\x31\x85\x32\x98\x5c\x57\xfa\x06\x98\xef\xe2\x6f\x5b\x7a\x9d\x89\xc0\x03\x19\x2a\x6c\x89\x71\xde\xde\x01\xb2\x6c\xf1\x02\x79\x7d\x48\x6b\xd8\xc3\x3c\xbf\xab\x0e\x64\x2c\x71\x9f\x2b\x79\x0d\x5d\xb7\xb2\x0e\x54\x02\x7d\x3c\xbf\x87\x77\xc8\x5d\x8f\x8b\x0e\x80\x26\x44\x8f\x93\x5d\x53\x0e\xe8\xf1\x53\x43\x1c\x60\x37\xc0\xf2\xf9\xe9\xeb\xe1\xf4\xb0\xf9\xb6\x79\x38\xb9\x68\x3d\xf4\x42\xe5\x93\x1e\x32\x81\x19\x96\xf2\x6a\x15\x90\x0d\xe5\xc6\xb8\x86\xab\x43\x4f\x25\x18\x27\x99\xb7\x8d\x5c\x2b\x01\x71\x70\x97\xd1\xe3\x85\xbe\x9f\x60\xd4\x5b\x68\x0d\xe5\xae\xc9\xdf\xac\x64\xda\xb1\x98\x50\x35\xcc\x3b\xaf\xa1\x4f\x28\xa2\xac\x72\xf8\xd8\x43\x55\x58\xc6\x92\x19\x6f\x30\xf4\x95\x61\x58\xac\x20\x57\xa7\xba\x38\x29\x5e\x56\xaf\x4e\xd0\x49\x87\xbe\x96\x56\xee\x15\xe7\xaf\x91\x98\x9e\x56\x68\x07\x4e\x71\x18\xd0\x00\x27\x5f\x93\x9b\x30\xd9\xc8\x26\x4c\x52\x97\x3a\x0c\x38\x11\x43\xfe\x65\x0c\x83\x27\xd3\x28\x0c\x84\x4e\x62\xab\x88\x74\xdf\x5c\x8f\xae\xf4\xaf\xc3\x30\x62\xb8\xb9\x9a\x44\xfc\xf6\xcc\x5f\xa0\x97\x8e\xd2\x61\x28\x20\x89\x87\x0a\xf2\x86\x87\xd1\x1e\x25\x1e\x41\x7c\xe6\xc9\x96\x8b\x1d\xd0\x72\xf2\xeb\x24\x26\x98\x62\x84\xfc\xa5\xe4\xef\x30\x84\x6b\xe8\x90\x80\x11\x13\x3c\xf3\x37\x58\xf2\x5a\xbe\x4e\x38\xd0\x6e\x7a\xd5\x75\x18\x91\x90\xb5\x8e\xd0\x06\x29\x7a\xdd\x1f\x2d\xc0\x01\xb9\x00\x0d\x3e\x61\x2a\x71\xa5\xc3\x88\x6b\x2c\x25\xbc\x9b\x8f\xf0\xfc\xd1\x01\xe3\x74\x18\xa9\x08\xb1\xaf\x77\xe9\xcb\x6b\xfb\x69\xf0\x85\xdc\x42\x6a\x26\x17\x54\x09\xe6\xf1\x1f\x06\xc8\xb7\x5f\x31\x1c\xdb\x53\x69\x28\x46\xe5\x83\xcf\x88\x08\x74\x48\x59\x88\xae\x70\x06\x5c\x41\x29\x0a\x5e\x4e\x7c\x83\x90\xca\x08\x45\x88\xcc\x2c\x4f\x41\x76\xca\x80\x93\x71\x4a\xa1\xbb\x96\xca\xa2\x4b\xbd\x0f\xfd\xb0\x30\x0e\x08\x26\x17\xf5\x74\x06\xc5\x91\x16\xb8\xd7\xa5\x2f\xf9\x5d\x51\xf6\x0f\x3b\xda\xfe\xc3\x98\xb2\x44\x1a\x32\xe8\x0f\x74\x27\x86\x18\x6c\x1d\xc6\x82\x19\xcc\x30\xbc\x3f\x7f\x74\x36\x3f\x64\xbe\x4e\xfa\xf5\xec\x2c\xfc\x18\x17\x33\x59\x97\x2c\x92\x9e\x6d\x82\x3c\x34\xba\xdd\x73\x20\xaf\xed\xd4\xe9\xfa\x8e\xe7\x5f\x67\xe2\x85\xe8\x1b\xb7\x7b\xe0\x8a\x57\x69\xee\xf2\x3f\x61\xe2\x47\x24\x72\x45\xdc\xaf\x5f\x6f\x7a\x9d\x27\xd7\x89\x94\x2b\xbb\x1f\x5e\xd3\xcb\x90\x5e\xbc\x7b\x1f\x09\x33\xc4\x31\xd8\x59\x90\xb5\x3e\x4b\xfb\xb5\x39\x12\xc7\x55\xa7\xc1\xff\xb1\x92\x73\xee\x34\xc1\xb1\x17\xcc\xba\x50\xe8\x79\x1c\xbe\xee\x76\x8e\x73\x53\x87\xc2\xf7\x8d\xfe\xbf\x9d\x3d\xc6\x2d\x9f\xc7\x93\xe9\x50\x84\x49\x2c\x3a\xf9\xc8\x63\xe1\x16\xea\x69\xf2\x95\x45\x62\x32\x95\x9f\x6a\x89\xba\x71\x52\x12\x23\x7d\xf1\x58\x74\x5f\x51\xfa\xbe\x73\xaf\xd1\x6c\x1b\x76\xcf\x21\x39\xbd\x1b\x48\x59\xd4\xfb\x56\xdf\x16\x0f\x5f\x37\xee\x1a\x8a\xfa\xc4\x77\xd0\x9b\xa1\xd8\xb0\x35\x03\x6c\x4e\xbc\xb7\x33\x0c\x2a\x49\x30\x20\x2f\x70\x42\xf0\x6c\xa4\xf5\xac\x43\xc5\x99\xe9\xe9\x93\x48\x93\xdb\x3a\x66\xd8\xa1\x63\x0f\x43\x98\x20\x70\xd3\x59\x52\xe3\x39\xf5\x3a\xb1\x3a\x84\xd6\x69\xc5\xc0\xb7\x84\x23\xf0\xf3\x22\x57\xb6\xf8\x56\x8d\xc2\xa2\x10\x68\x8c\xa0\x81\xc3\x1b\xeb\xc1\x30\x3a\x04\x30\x9f\xd5\x76\xa6\xb4\xfe\xcf\xa8\x8e\xa4\x43\x4d\x12\x4c\x4a\xa0\x74\xc4\xa8\x9e\x35\x9e\xff\xc4\x13\x89\xd3\x0f\x33\x6d\xb3\x06\x7c\x3b\x5a\x8d\xc4\xd3\xdc\xd1\x13\xb9\xd5\x34\xdc\xb2\x88\x1f\x0b\x2c\xdd\x3f\x6e\x9f\xb6\x4f\xf7\xe3\x19\x46\xfc\x24\xc1\x62\xd3\xe3\xf2\x61\x68\xb0\x89\x0f\x3e\xed\xbf\xde\x80\x25\x55\x93\x80\x49\xdf\x3a\xa0\x38\xe1\x6d\xad\x96\xcb\xd9\xa6\x1a\x4d\x42\x46\x11\xe9\x77\xe6\x3f\x0c\xf0\xd3\x7d\x0b\x12\x26\x80\xb0\xe1\x73\x9a\xd7\x77\x45\xb9\xe1\x65\x76\x75\xbc\xb1\xd5\xe7\x5b\x03\x09\x21\xc1\x36\x27\xf7\x0d\x17\x5a\x1b\xed\xbf\xd1\xfc\x25\x21\x18\x4d\xd7\xd6\x09\xdb\xe6\x8e\xf1\x4a\x93\x50\x1b\x82\x69\x14\x6d\x40\x95\x28\x69\xb8\x4b\xb6\xea\xae\x2c\xce\x6b\x7e\x9d\x5c\x88\x70\x1e\xdb\x39\xdf\xfa\x5b\xa8\x06\x6d\x54\xe5\x26\xe3\x40\x60\x2e\x35\x73\xf0\x3c\xcb\x26\x33\x9a\x36\x24\x52\x02\x23\xfc\x45\x59\xdf\x63\x13\x97\xdb\xdd\x08\x0d\x43\x5c\x17\xf7\x50\xb7\xf7\xdb\xd7\x75\xdb\x43\x31\xa6\xd7\xfe\xb2\x4a\x03\x43\xd4\xaf\x6e\xbd\x97\xc4\x73\x71\x25\x52\xf2\xad\x9a\x4f\x22\x0c\x42\xa9\x41\x51\x61\xc5\xab\xc6\xe5\xbb\xbc\xfe\x0e\xd7\x39\x77\x87\x50\xae\x50\xd1\xd1\x2a\x10\x1d\x2e\x45\x5e\x15\x98\xdd\x69\x83\xcd\x5f\x64\xc3\xbb\xef\x45\x2d\x79\x8d\xe4\xf9\xe1\x83\xdf\xc8\x64\xda\x51\x31\x89\x31\x85\xf0\x57\x91\xe6\xf7\x1d\xdb\x69\x37\xcd\x59\x04\x89\x35\xdb\x1b\x23\xec\xfc\x30\x89\x0d\xdc\xc0\x98\x79\xfe\x98\x69\xb9\x27\x57\x70\x63\x14\x13\xae\x91\x0e\x5b\xf0\x2b\x18\x74\xe1\xce\xcf\xe3\x84\x12\x74\xa2\xee\x79\xc6\x6b\x5e\xf1\x4e\xc6\x51\x93\x44\x19\xa3\xc8\x95\xda\xc3\x7b\x0a\x1f\x3f\x23\xf8\xd0\x84\xfb\x2c\x12\x48\x9e\xde\xee\x67\xe8\x6c\x61\xfa\xfd\xb7\x71\xeb\xc2\x28\x11\x46\x78\x44\x8c\x00\xf6\x8f\xf6\xc1\xdf\x96\x93\xf4\xa9\xef\xbe\x2f\xa7\x21\xc2\x60\x3b\xa4\xe5\xf3\x6a\x32\x4d\x79\x9c\x60\xe5\xac\xf5\x0b\x06\xfc\x28\x9a\x70\x6e\xfa\xf5\xd6\xa0\xdb\xe5\x64\x98\x4f\xd7\x90\xf1\x6b\x67\xbb\x08\x07\xa3\xa5\x63\x48\x5d\x4c\x5d\x69\x93\x77\x87\x45\x1c\x60\x0c\x77\x86\x9a\xbb\x18\x65\x04\x2e\xf8\xe9\x96\x43\xa4\x67\x89\x13\xd0\x47\x78\x28\x5e\x6e\xeb\xf8\x9a\x28\x8f\x63\x30\xf3\xc4\xeb\x62\x24\x74\xe2\x6e\x42\x45\x1c\xf9\x5b\x34\x4f\xb3\xa6\x9c\xc0\x0c\x35\x51\x2c\x11\x46\xbf\xab\x44\xfa\x92\x39\x32\x69\x4d\x20\xa1\x7e\x64\xf3\xf1\xa6\x19\xbd\x2c\xce\x96\xb9\x7c\x3c\x52\xc7\x12\x6b\x1f\x45\x9e\x5d\x51\xbf\xcb\x19\xb8\xc8\x0b\x39\x05\x47\xcb\xdf\x7a\x6a\xbb\x89\xce\x81\x8e\x3c\x2a\x50\x6e\xc8\xa1\xc5\x8e\x7f\x1c\xe6\xd7\x47\xe4\x7b\x86\x54\x7f\xf1\xf5\xf8\xe5\xb4\x5a\x3c\x3d\x6e\x9f\x5c\x20\x17\xf9\x01\xc1\x24\x8a\x4a\xab\xd6\x5d\x5e\xdd\x38\x8f\x51\x40\x42\x9c\xbd\x4b\xf8\x9b\xe7\x86\x06\x77\xca\x1d\xa7\xa3\xd0\x4b\xa8\x15\x93\x79\xe0\x02\xb2\xc9\xd1\x20\x42\x98\xee\xd3\xe2\xb8\xfd\xb6\x39\x2d\x0e\x87\x4d\x77\x03\x61\xec\x83\x8b\x8b\x9e\xf3\x11\x3d\x9f\x8e\x42\x26\x90\x3f\x7a\xf9\x3c\xa4\xae\x6a\xff\xae\xa9\x53\x87\x42\xba\x74\x27\x62\xed\x8e\x27\x31\xa6\x99\x44\x63\x4a\xd2\x95\x4b\xc0\x8d\x5f\x4c\xa8\x14\x7e\xa9\x2f\xcb\x9f\x94\x9e\xc6\x5f\x37\x0a\x21\x44\x97\xed\x95\x97\xed\x7e\xf3\xef\xa6\x28\x9b\xf3\xd8\xaa\x46\xa1\xe6\x58\x4b\x1a\xfa\x67\x9b\xa7\xf5\x69\xbd\x38\xba\xcd\x30\x22\x31\x4b\x86\x54\x41\x18\xdc\x4c\xee\x8f\x08\x81\xfd\xa1\xcb\xb4\xae\xa4\x43\x74\xe9\x28\x0a\x02\xe4\xcd\x38\xd9\x74\xc2\x98\xab\xf4\x66\x6d\xb4\xe3\x0d\x40\xaf\xdd\xac\x52\x18\x63\xc5\x75\x14\x11\x86\x41\xca\x91\xe7\x57\xde\xfd\x46\xa2\xf0\x0d\x62\xf3\xcf\xb1\x68\xca\x9c\x0f\x5c\x9d\x88\xd2\x08\x63\x0e\x73\x07\x8f\x57\x04\xf5\x8c\xbe\x39\x8d\x0d\x48\xde\x8c\x38\x80\x9c\x59\x90\x11\x65\x1c\x25\x1d\x20\x57\x5b\x59\x2c\xaf\x7d\xcd\x38\xa2\x5c\x32\x7f\xbc\x55\x9b\x66\x96\x39\x19\x33\x1d\x51\x29\x3d\x36\x64\x2b\x5f\x65\xfc\x43\x70\xf9\xb6\x19\x62\xfa\xec\xe0\x38\x0e\x10\x0f\x0e\x95\xe4\x16\x07\x3a\xa9\x56\x46\xac\x8d\x03\x0c\x64\x9c\xa7\xb9\x6b\x0a\xee\xd6\x27\xe3\x5c\x0d\x5c\x35\xcb\x7d\xee\x8e\x26\xb2\x83\x32\x7e\x19\x91\x56\xea\x88\x93\x08\x25\x47\x75\x51\xc2\xbb\xed\x89\x32\x09\x6d\xbb\x77\x58\x7a\xfd\x6e\xb8\x42\x4a\xdb\x26\xcf\xd2\x49\xb7\x9d\x8e\x5a\x73\xec\x50\xbf\x07\xf9\x0a\x59\x96\xe6\x2f\xd8\x44\xb7\x86\x9a\xa7\x59\x35\x1d\x2f\x34\x2e\xb5\x43\xda\x2e\x97\x55\x91\x57\x03\x91\x99\x59\x3f\x32\x12\x81\x11\x57\x7c\xdc\x3e\xad\x4f\x77\xcf\x5f\x9f\xd6\xa8\xcb\x7c\x5a\x3c\x3e\x7f\xed\x8d\x88\x20\xd2\x49\x14\xec\x00\x11\x91\x9b\x1f\x97\xac\x28\x47\x1d\x54\x6e\x2c\x35\x25\x03\xae\x3a\xef\x6f\x16\xe6\x11\x09\x6a\xc8\x8c\x75\x9a\x65\xad\xf3\x34\x96\x78\xf8\x47\xbb\x42\x24\x44\x68\x48\xf1\x6d\x9b\xc4\x63\x3f\xbf\x64\xac\xd1\xac\x81\xf5\xc8\x9c\x88\xfc\x10\x1f\xae\x23\xc9\x0c\xce\xa3\xc8\xe1\x03\xe0\xad\xfb\xb3\x8e\xb1\xbd\x6d\xb1\xdd\xaf\xf7\xcf\x3b\xd7\x9a\xf7\xf4\xf5\xf1\xe0\x86\x40\x44\xb0\x03\xd3\xa4\xf2\x70\xf6\x6c\xcf\x17\xd4\x0b\x9c\xd6\xfa\x47\xb7\xac\x3d\x1f\x2d\xa9\x82\x2c\x7d\x87\xb2\x8d\x23\xc6\xd5\x36\x37\x2e\x10\xd4\x42\xce\xda\x17\x7e\xc3\x02\x35\x79\x9b\x9a\x80\xb2\xf0\x8e\xc7\x22\xc7\xe4\x52\xc6\xab\x6a\xf3\xa3\x86\x5c\x0d\x57\xc0\xa7\x2c\x47\xb7\xff\xeb\x2e\x9d\x84\x98\x34\xae\x3f\x8a\x2f\x98\x1c\xa9\xea\x65\xaa\xaa\x75\xaa\x35\x94\xd0\x2e\xd5\x91\x61\xd0\x32\x70\x14\x38\x98\x64\xa8\x26\xcd\x42\x9a\x7a\xc4\xf3\x4d\x97\x54\x9a\x23\x45\xf7\x40\x53\x40\x53\x8f\x9a\x84\xa0\xd9\x30\xc0\xb6\x0d\x7e\x29\xba\x9a\x21\xf5\x7d\x89\x35\xbc\xe7\x73\x9e\xae\xe1\x47\xf7\x67\x11\x61\xf8\x71\xb7\xd9\x9c\x0e\xdb\x87\xe7\xee\xef\x40\xb0\x05\x77\x51\x35\x7b\x9e\x9e\x1b\xf7\xf7\xc0\xe3\x18\xee\x23\x21\x88\x25\xdf\x9e\x0d\xf5\x69\xe0\x9b\x7a\xfd\xa1\x2e\xd3\xcb\x6d\xcb\x88\xa6\x01\x09\x30\xf9\x07\x3f\x2e\x69\x79\x5d\xf6\xad\x94\x9a\x86\xbe\x29\xee\x9d\x2e\x65\xf1\x62\x60\x8a\x33\xa5\x27\x1a\x06\x80\x9f\xbb\xaa\x79\x0d\x03\x88\xab\x3d\x1c\x85\x31\x86\x4a\x9d\x8c\xcf\x72\x90\x6a\x77\x63\x08\xc7\x5e\x8a\x33\xff\xd1\xf3\x10\xf7\x0e\x05\x8d\xa8\x99\xd4\x2f\x58\xc2\xb2\x15\xb2\xee\xa0\x22\x08\x0c\xbb\x4b\x33\xe8\x11\x9c\xed\xdf\x8d\x3e\xf1\x09\xd1\xa0\x8b\x5c\xad\x78\x96\x4d\xe4\xdf\x67\xfa\xcd\x34\xa5\x84\xe1\x05\x77\x8b\xfd\x61\xb3\x3a\x9c\x76\x9b\xfd\x69\x73\xfc\xb2\xd9\x9f\x96\x8b\x83\xdb\x25\x29\xe5\x91\x36\x08\x3e\x53\xcd\x1a\x32\x10\x6b\x1a\xfb\xa1\xb6\x11\x09\x92\xf3\x8c\x5f\x59\xec\xc7\x88\xbf\x7e\xe5\xb9\x42\x06\x1a\x28\x87\xc2\xf1\xf3\x26\x83\x32\x4a\x10\xfa\xb5\x5b\x3c\xb9\x9f\x61\xcc\x70\x00\x7d\xdb\x1c\x8e\x9b\x75\x7b\xa7\xab\x4d\x67\xfc\x28\x4b\x28\x06\xf3\x55\xfa\x92\x2f\x5e\x4a\xc0\x08\x63\xbc\xc5\xd2\x44\xc5\xb6\xfb\x3e\x7f\x6b\xd7\x86\x3b\x97\xfb\x9e\x1a\xaa\x3d\x0d\x30\xd3\xb3\xb7\x79\xd3\x95\xdc\x5d\x87\x20\xaf\xc8\x2b\xaf\x0c\x7e\x72\x32\xff\xb8\x0a\x31\xcc\x30\x0d\x67\x03\xa6\x68\x73\xc8\xc6\xb4\x2f\xed\x45\xbb\xbf\x6b\x81\xa9\x3e\xa4\xf0\x4e\x6f\xf2\x0c\x93\xb7\x26\x88\x71\x31\x1b\x03\xc2\x5e\x95\xd7\xaa\xe6\xd9\x63\x07\x87\xd6\x54\xd0\x08\x73\xab\x07\x6e\x37\x1f\x83\x73\xec\xb9\xd8\x35\x95\x41\x1c\x77\xe4\xa0\x35\xcf\x16\x52\x42\x55\x15\xe5\xf5\x00\x65\xda\xf9\xc6\x54\x12\x85\x6d\x12\x39\x7c\xec\x1e\x56\xfb\xef\xa9\x43\xf2\x34\xbf\x82\xda\x51\xc9\xfd\x90\x39\x1c\x83\x6a\x8d\x5f\x99\xf3\xcc\xe2\x16\xbb\x1f\x50\x89\x41\x2a\xf5\x42\x6c\xff\x68\xb7\xa1\x2a\xe1\x08\x80\x33\x29\xf9\xb1\xf0\xb3\xa6\x0a\x8c\x8e\xb8\x49\xa5\xa3\x8c\xf8\x88\x78\xcd\x50\x23\x78\xe3\x7f\xed\xb9\xc0\x65\xd0\xf1\xce\xff\xe2\x53\x80\xf0\x30\xe7\xf0\xb8\xf8\xe3\xb4\x78\x78\x78\xfe\xbe\x59\x9f\x0e\xc7\xc5\xfd\xe6\x14\xb8\x5b\x01\x19\x63\xfb\x76\x7b\xb5\x81\x44\xd9\x78\xcb\xa0\xa0\x04\x5a\x35\x4c\xb2\x20\xf9\xe8\x27\xe6\x4f\xc7\x31\x66\x4c\x7b\x57\xb6\x1a\xa8\xeb\x99\x41\xb1\x17\x46\x4e\xa6\x65\x48\xb7\xb8\x1e\x94\x06\x1e\xd3\x89\xdd\x8c\x3d\x9e\x60\xe8\xba\xdb\x5b\x27\xfa\xf8\xe5\xb4\x7d\x3a\x7d\xdf\x6c\xb1\xd2\x7a\x7a\x5c\xfc\xd1\x5d\x5f\x18\xf0\x73\x55\x17\x17\x43\x13\x71\xaa\x6a\xb8\xb8\x67\x8e\x7d\x1a\xa3\x83\x88\x5b\xb5\xcd\x65\x9d\x0e\x9b\x76\x3d\xdb\x8b\x3f\x6c\x1f\xb7\x6e\x55\xc7\xa1\x97\x60\x65\xc3\x28\x47\xdf\x37\x73\xa5\xa0\xd1\x5b\x88\xc3\x10\x82\x04\xfb\x86\xb8\xcc\xd2\xbf\xe1\x94\xc3\xc7\x1e\x11\x69\xeb\xc3\xbf\x1b\xa7\x44\xd6\x99\xc1\xe9\xd9\x91\xc0\x15\x6c\x66\x07\x3a\x93\x73\xdd\x1e\x3a\x0e\x2d\xd4\xdc\x32\x5e\x7c\xff\xac\xc2\x19\x13\x8f\x61\xc1\xe2\xb8\xf8\x97\x7b\x28\x12\x28\x8b\xf7\xce\x37\x86\x28\x61\x51\x8a\xb4\x2e\x79\x79\x5d\x15\x8e\x1b\x4d\xc7\x84\x51\x93\x01\xaf\x6c\xc6\xdc\x75\x51\x4f\x58\xba\xda\x91\x40\x2c\x86\xe0\x74\x29\xe1\xf4\x76\x95\xa7\x54\x16\x79\xfa\xdf\x13\xf6\x98\x9f\xf2\xe6\x6c\x04\xdd\x27\x1f\x36\x22\x9e\x0a\x5c\x79\x3f\x87\xeb\xd0\xe9\x8a\x23\x12\x59\xa6\xa5\xfc\xdd\xc0\xa2\xc7\x78\x7a\x1d\x47\x51\x84\x74\x6f\x15\x97\xbc\xfc\xbe\x59\x74\x7f\xd7\x0a\x03\x74\xcb\xd3\xfa\x5a\x94\xf5\x22\x4b\xf9\x24\xe2\x89\x63\xce\xfd\xbe\x27\xe9\x21\xad\x86\xda\x44\xb3\x5d\x36\xed\x39\xa6\x57\xdd\x98\x0a\x9b\x9f\x9b\xc4\xca\x71\x12\x98\x46\xa2\x12\xe9\xce\x2c\x0d\xb2\xbb\x39\x2e\x00\xac\x5a\xe9\xa2\xa9\x27\xb1\x5e\x2c\xa8\x71\xe6\x2f\xfc\xba\x06\x51\x4f\x8f\x72\x1f\x31\x55\x0f\xcd\x05\x90\x9c\xea\x93\xc2\x47\x2c\xe3\x90\x40\x87\x43\x69\xfd\xe6\x4f\xa6\x87\x8c\x63\x04\xd5\xed\x37\x87\xcd\xfe\xdb\x66\x7d\xb2\xff\x61\xa5\xc7\x4f\x8b\x6e\x29\x40\xe0\x63\x3d\x97\x77\x18\x52\x77\x80\x78\xc8\x37\x70\x49\xff\xfe\x9b\x9f\xce\x5c\xbe\xa6\xf9\xa7\xca\x3a\xee\x9c\x58\x23\x14\xe0\x91\xff\x30\x3a\xe3\x6e\x8e\x7d\x3d\xac\xbb\xeb\xf2\x00\xb3\xb4\x5c\xa9\x8e\x26\x68\xdc\xf9\x7f\x9b\xda\x8d\xb5\x6f\xe4\xb4\x7b\x98\xe5\xe1\x35\xbd\x0c\x62\xd6\x58\x87\xd2\xf5\x7a\x7e\x2b\x6a\xa8\x76\xd0\xcb\x77\xb8\x21\x4c\x98\xd2\x61\x6b\x8e\x72\xa8\x57\xbc\x7a\xed\x8e\x69\x23\xb4\x27\xd2\xfa\xa3\x28\x55\xd7\x25\x9e\x8d\xd8\x11\x34\xf3\x23\x03\xbc\x35\x93\xeb\x6b\x9e\xa2\x84\x87\x4e\x0d\x3e\x6a\xa6\x34\xcf\xfc\x98\x46\xe6\x79\x4d\x56\x1f\xd1\x19\x48\x60\x68\x42\x93\xee\xd2\x61\x1c\xe2\x40\x13\x53\x67\x17\x3f\x19\x4f\x13\x46\x42\x8e\x84\xae\xcb\x46\xbe\x5d\x07\x08\x09\x16\x45\x44\x5b\xe1\x11\x78\xce\xb1\x37\x24\xcd\x5f\x9c\x42\xcc\x27\x33\xdf\xbd\x5b\x16\x49\x19\x58\x86\xe0\x3a\x83\x95\x56\x63\xa8\x1d\x8b\x80\x06\x9d\xcc\x97\x03\xcc\xcf\x7e\x7f\x46\x15\xc5\x84\x73\x5a\x1d\x5e\x9b\x41\xb3\x86\x66\x14\xbc\x81\x05\x44\xae\xfd\x61\xaa\x72\xfc\xa0\x71\xc0\xc1\xd0\x4f\xbd\x17\x6f\x30\x6c\x02\xf8\x6d\xc6\xd9\x64\x31\x0b\x51\x05\x4a\xb6\xce\x69\xae\xee\xa1\x36\x30\xa1\x31\xbb\xc7\xe4\x56\x19\x91\xda\xe4\x4d\xd3\xfa\xf8\x9a\x56\x5b\x59\xdc\x15\xe5\x17\x9e\xe9\x67\x83\x14\x19\xfa\x51\x8c\x45\x86\x08\xc6\x4a\xc8\x61\x91\x11\x26\xbd\x2e\x9a\x31\x6a\x32\x88\xf7\xa8\x9e\xd2\x9d\xcb\xa9\x36\xbd\x57\x1f\xbc\x54\x28\x74\x36\x80\xa2\x32\xa6\xa5\x97\x74\x0f\x6b\x76\xd6\xc9\x75\x93\x00\x38\xef\x3a\xdc\x27\xd5\x95\xe9\x58\x4a\x51\x7c\xca\x18\xa9\xd6\xae\xba\x1f\x4a\x98\xc1\x62\x67\xa0\xeb\x90\x4e\x66\x29\xd7\x91\xab\xbd\x3d\x14\xf2\x6d\xdf\xbe\xed\x4f\x3e\xb2\xa0\x04\x13\xf2\xdc\xcc\xb4\xef\xb0\xe2\xed\x26\xa2\x9b\x0e\x3d\xce\x44\x6c\x98\x4a\x9f\x2f\x90\xf7\xc4\x9a\x9a\x09\x1e\x3a\x51\x88\x76\x4b\x3a\xd4\x45\xe9\x88\x97\x06\xd7\x97\xe0\x94\x28\x1f\xf9\x8f\xb9\x25\x25\x94\x29\x6d\x61\xe1\xa5\x7c\x9f\x12\xe0\x6a\x86\xb3\x16\x61\x87\x86\x26\x04\x41\x89\x48\x29\x51\x35\x67\x77\x33\x32\xf2\x8c\xdc\x8f\x7c\x05\xd5\x64\x30\x28\xc8\x76\x43\xa8\xc0\xde\xc0\xb4\x3a\xa9\x94\xbf\x14\x39\xcf\x7e\xeb\x63\x63\x26\xc1\x30\x3a\x9f\x5a\x57\xcb\xfb\x81\xd1\xec\x67\xd5\x8f\xff\x8d\xfe\x6f\x60\xd7\xe8\xff\x39\xaa\x19\x7b\x29\x15\x29\xc7\xc2\x71\x4c\xe5\x1b\x94\x87\xeb\x59\x14\xe3\x4c\x2b\x53\x0a\x88\x1a\x62\xc1\xd5\x1e\xe7\x94\xbb\x5d\xf0\x00\x9d\xd0\xac\x78\xb9\x4f\xdf\xa7\x3d\xbf\x6e\x10\x07\xdc\xff\x8d\x79\xb8\xe7\xd5\x1e\x9a\xb4\x9c\x6e\x76\x0c\x89\x60\xec\xbe\xe0\x0c\x69\x67\xaa\x40\x29\xe6\xe4\xae\x0d\x13\xce\x80\xee\x7a\x32\x5d\xb4\x97\x60\x07\xa6\xa5\xc3\xbc\x91\xf2\x74\xfb\x36\xd3\x9c\xe3\x2f\x2e\x1e\x1f\xe6\xf4\x88\xa7\x3b\x4f\x8f\x96\x61\x5a\xd2\xb8\xd7\x24\x5d\xbc\xbc\x94\xf0\x32\x32\x17\x66\x5c\xe2\x79\x11\x52\x5a\x1c\xa1\xaa\xa9\xf3\x9b\x12\x2f\x36\xc2\x1b\xa2\xb9\xde\x17\xd9\x94\xa0\xf5\xd7\x50\xf0\xc4\x93\x04\x53\x24\xbb\x3f\xf7\x58\x5d\x77\x17\xf6\x43\xe9\x64\x2f\xef\xf8\x19\xd4\xa1\xe6\xe5\xf2\xfa\xc8\x27\x12\x31\x3a\xf1\xa5\x40\xbb\x71\x4e\x73\xd8\x56\xcb\xf4\xa5\x13\xcf\xd2\x89\x0f\xa6\xd1\x14\x33\x9f\xcb\xa2\xa8\x4c\xfd\x6f\x7c\x81\x20\x08\x30\xcf\xbf\xee\x02\xd7\x24\xe4\x4c\xcc\xc9\x61\xcf\x3a\x16\x09\x89\x4d\x4b\x30\xd2\x15\xb8\x5a\xeb\x6f\x93\x31\x0a\x0c\xb7\x87\x31\xe1\xc5\xc0\xf9\x98\x75\xaa\x92\x28\x32\xec\x3e\xff\x6a\xd4\x8b\x89\x9b\x7f\xea\x3d\x24\x34\x08\x3d\x27\x9f\x98\xd7\x47\xfe\x32\x84\x11\xba\x69\x92\x50\x0e\xb8\x26\xdb\x88\xdc\x09\xf6\xeb\x84\xf9\x49\xd2\x59\x16\x0b\x22\xd3\xc5\xe4\x35\xb1\xd0\x68\xb6\xb6\x21\x8c\xab\x10\xed\xdb\xc0\x7c\xbc\x53\xba\xd1\x49\x4c\x3b\xaa\x1a\xd9\xa0\xa3\xbb\x2e\xa0\xfa\x06\x75\xd1\xfd\x6c\x22\x28\x74\xf4\xcd\x3f\xa7\x98\x9f\xbc\x72\xc6\x8d\x24\xc8\xbd\x61\xf2\x4e\x2f\x13\x4b\x9e\x24\x94\xa2\x96\xde\x1a\xde\x71\xbf\x44\xd8\x88\xa1\x78\x4f\xf3\x97\x21\xf5\x90\x4e\x12\x69\x48\x9b\xba\x92\xc8\x7c\x76\x26\x0c\xdc\xae\x9f\xf0\x48\x2b\x18\x10\x4f\xbf\x34\xe5\x68\xc9\xdc\x3a\x61\x09\xa7\x89\xf1\xdc\x71\x02\xb4\x5e\x56\xf9\x9c\x6f\x32\x90\xa3\x9d\x79\xfa\xd4\x3f\x59\x38\x5c\x78\x2e\xb3\x7c\x04\x7e\xde\x41\x39\x6d\x9a\xd5\x89\x60\x02\x27\xd1\xaa\xbc\x5e\xde\xd3\xca\x32\xf1\x4d\x5e\x95\x10\x80\x02\x81\xc7\x0e\x8e\x90\x08\xd0\xa2\xd3\x47\x47\x5a\x19\x67\xbd\x12\xe9\x29\xd2\x9a\x49\x13\xbf\x3d\x80\x7a\x81\xd2\xed\x23\x6e\x48\x98\x60\xaf\x89\x79\xd4\x3b\xde\xc8\xae\x50\x9f\xc8\xc8\xc3\x42\xb2\xf1\x98\x27\x7b\x75\xa2\x42\x15\xba\x5a\x59\x9a\xc3\xd7\x8b\x09\x6e\x26\x4f\x05\x54\x20\x3b\x21\x3e\x0c\x16\xbf\x67\xfd\xf8\x04\x62\x81\x71\xef\xda\xe4\x8b\x41\x2d\x8f\xab\x4f\x86\x6a\xcf\xc7\x1d\x44\x34\x57\x83\x2f\x7c\x2a\xd4\x67\x45\xa3\x44\x4b\x02\xc1\x10\xda\xb7\x2f\x44\x31\x91\x25\xd3\xdc\x13\x7e\x18\x1a\x9a\x73\xf7\xf4\xdc\xd3\x32\x09\x7b\x3f\x7b\x0f\xd5\x0d\xc2\x82\xfb\x89\x87\x5d\xe8\xe7\x7f\xd6\x7c\xc4\x7d\x61\x24\xc6\x31\x01\x62\xb9\x90\xbf\xbf\xa6\x19\x3c\x98\x1e\xc1\x9f\xb6\xd3\xd9\x6b\x84\xd2\x28\xd7\x3d\x5e\x0f\x73\x6c\xb1\xbf\xfa\x77\x6a\xc9\xe6\x6f\x34\xf2\x95\x49\x58\x56\xf6\x2e\x2f\xd3\x64\x1c\x8f\xc2\x48\xc6\xb6\xbd\xe2\x3a\x5b\x42\xe6\x11\x11\xd8\xca\xbf\x7c\x58\xba\xb7\x1a\x69\x5f\xdb\x50\xfb\x81\xe7\xea\xcc\xcb\xb7\xc9\x3b\x65\x3e\xc1\x3d\x42\x37\xb9\x74\x67\xb1\xd8\x00\x65\x6a\xc8\x32\x07\xc6\x9d\x77\x0b\x39\xe3\x0a\x13\x74\x9d\xff\xdd\xb7\x9c\x8e\xb3\x8d\x9c\xfb\x31\xda\xd7\xbb\xc5\xd1\x45\xde\x9c\x2b\x46\x84\xbb\x3d\x54\xde\x28\x9f\xf5\xa2\x42\x09\xc3\x11\xe6\x8d\x8b\x50\x89\x64\x44\x70\x31\x82\x5a\xb8\x0b\x0a\xe2\x4b\x2b\xc9\x7c\xe4\xa5\x93\x7b\xee\x8f\x6a\x26\x2c\xc2\x0c\xab\x19\x8b\x66\xe8\x96\x71\xa1\x62\x44\xc7\x3a\xa6\xd2\x9f\xe5\xaf\xb8\x00\x2a\x8d\x94\x17\x7f\xe3\x59\x5a\x54\xc3\x5a\x33\x97\x9e\x47\xe8\x50\x25\xd0\x82\x72\xc6\xd7\x50\x3e\x45\xe4\x40\x0e\x1f\xa7\x62\xae\xf5\xde\x8e\x83\x40\x7b\x36\xb7\x58\x22\x8a\xcb\xfd\x0c\x30\x46\xdd\xf7\x2d\xe4\x5b\x0f\xbd\x1c\xda\x43\x0e\xd2\xc3\xf0\xde\xd2\xb8\x8e\xe0\x73\xdd\x1b\xd6\x9c\xe1\x44\xe7\x8d\x4a\xeb\x23\xfc\xb0\xe4\x1a\x23\xcb\xca\xb5\x30\x50\x28\x5b\xc1\x6d\xc3\x71\xd0\xe6\x01\xef\x8a\x72\x33\x8b\x53\xe2\x1a\x12\xcc\x43\x9e\x44\x73\x45\x1a\x9d\x02\x89\x60\xfe\xe1\xd2\x31\x17\x11\x9e\x6f\x04\x1a\x45\x73\x6d\x63\x68\x07\x5c\xde\xaa\xd1\xa3\x0a\x8f\x48\x2c\x7e\xdb\x26\x48\xd3\x52\xd3\xce\x90\x45\x65\x93\x01\xa3\x7b\x13\x5e\x64\x20\xe9\x0a\x64\x96\xe6\x80\x38\x5d\x53\x88\xe8\x25\x66\xdc\x50\xc5\xb0\xb1\xe2\x74\x6a\x03\x42\xc1\x7b\x64\xdc\x14\x81\x24\x7c\x6d\x82\x40\x75\xce\x3e\x86\x60\x2c\x11\x68\xae\xe2\xae\xff\xda\x64\x31\x1d\xdd\xbf\x1b\x43\x02\xca\xac\xbb\x62\x01\x08\xb3\x3a\xf5\x6e\x34\xf5\x2c\xfd\x8f\x61\x5d\x3c\x80\xe5\x5d\xd9\xc3\x7f\x67\xfc\x6f\x41\x62\x88\x7b\x05\xe5\x43\x53\x5e\xca\xb4\x0b\xb0\x04\x51\xa6\x9f\xfb\xd0\xa8\xbf\x9a\xdf\xfb\x54\x80\x20\x60\x5a\xff\xef\x0a\xe7\xa3\x88\xc8\xe7\xb8\xd6\x30\x7e\x1f\x89\x0f\x8e\x26\x96\xa0\x91\xc9\x1b\xf3\x2c\x6b\x57\xed\xd0\x95\x71\x23\x98\x01\x68\x5a\x26\x26\xe3\x69\x4c\x32\xe1\x22\x8e\x3d\xc4\x2f\x2c\xf7\x8f\xdd\x9f\x58\x82\x24\x45\xcf\xff\x1e\xae\x3d\x11\x27\x1e\x8a\xec\x7d\x00\xbc\x65\xd7\x5b\xc4\xb6\x88\x65\x80\x99\x09\x47\x86\x51\x7c\x82\xe1\xf8\x85\xc3\x75\x2b\x4d\xa3\x45\xac\x12\x2c\x2e\x99\x2b\xf0\x5c\xe1\xbb\x70\x77\xc6\xbc\x08\x33\x9f\x4d\x6e\xfa\x56\x67\x91\x5f\x82\xf1\x70\xd4\x93\xc7\xb3\x59\xea\x27\x2d\x98\xa4\x21\xf4\x22\x02\x6b\xe0\x1d\x57\xb2\x1d\x91\x78\x09\x36\xb8\xe3\xae\x71\x07\x83\x0e\x85\x59\xe7\x51\x24\xda\xb3\x9c\xd7\xca\x79\xeb\x43\xee\x8d\x6e\x82\x73\x1f\x18\xc2\x94\xf9\x19\x76\x43\xc0\x96\xe0\x91\x42\x4a\x7e\xf8\x6f\x33\x23\x70\x3b\x5a\xab\x3c\xf1\x30\xf7\xfd\xca\xab\xd7\x25\x06\xe5\xdd\x45\xac\x06\xff\x63\x5a\xbf\x96\x69\xf6\xc8\x3b\x0b\x2f\xb8\x62\x56\x6b\x00\xf3\xdd\x98\x73\x33\x74\x48\x6e\x84\xa0\x1c\xcb\xf7\x1f\x29\x46\x8f\xf3\xcb\x46\x28\xc2\xac\x3b\x35\xde\x0b\xe6\x3f\x49\xbb\xa6\x55\x47\x14\x60\x9a\xf8\x96\xd7\xcf\x9b\x8a\x85\x0c\x63\xdc\x78\x7f\x7f\x3e\x7c\x71\xc2\x85\x5a\xc8\xd8\x20\x71\x6d\xfb\xe9\x13\x3f\xc3\x5d\xf3\xf7\xdf\xd7\x29\xe7\x99\x16\x32\x21\x88\x71\x71\x2c\xd4\xa3\x80\x5c\x48\xa9\xb1\x67\x5c\x1a\x3d\x9f\x55\x91\xe6\x95\xed\x2d\xf0\xd9\x1a\x64\x7a\xee\x83\x6a\x21\x75\x90\x38\x29\x98\x57\x7e\xbe\x6c\x56\x9f\x7c\x7c\x15\x79\xb1\x85\xff\x7e\x4b\xb3\x8c\xa7\x13\x43\xde\x86\x5e\x68\x04\x06\x7a\x7e\x43\xe1\xc1\xc9\x60\xce\x30\xdd\xf2\x36\xde\xa2\xa5\xc7\x43\x43\x33\x8a\x72\xd3\x59\xc1\x87\xa4\x38\x5a\x7a\x52\x46\xd2\xc6\xdc\x1b\x59\x54\xd7\xca\x44\x24\x63\x31\xce\xd1\x4f\x49\x0f\x18\xe9\x2c\xd1\x13\xfc\xa8\x37\x25\xbf\xe1\x54\x18\x9d\xe1\x6b\xc2\x0c\x85\xca\x8a\x5f\xee\x4a\x98\x24\x7a\x64\xc0\x69\xdc\x97\x04\x56\x25\xa8\xe2\x93\xdf\x0e\x38\xc7\x1c\xbb\x25\xf8\x19\x85\x4f\x32\xf4\x42\xec\xce\xb6\x9d\x59\xed\xf6\x2b\x87\x61\xf6\x68\x3d\xc8\x90\x45\x58\xdc\x36\x19\x8d\x6d\x0d\xe7\xdb\x6e\x0b\x19\x72\xd0\x4e\x3d\x0d\x05\xb6\x5b\xa7\x69\x3a\x46\xaa\x40\x0f\x18\x23\x57\xc8\x9a\xf9\x58\x94\x70\x7c\xe5\xb9\xad\xb3\xab\xee\x26\xad\x13\xd6\xf1\x88\x48\x12\x73\xee\x75\xc8\xfe\x9e\x2c\xc9\x1d\x56\x3e\x3a\x01\x55\x23\xfe\x55\x08\x0b\xd2\x45\x01\xe4\x09\xca\x6a\x3e\x1e\x97\x11\x61\x81\x69\xec\xfb\x45\xe4\x2e\x23\x1a\x20\x8b\x62\x0e\x1f\x4b\xae\x16\xbb\xc7\xa9\x6f\x39\x63\x82\x25\x95\x4a\xb5\xbb\xc9\xba\x79\x83\xf7\xea\x77\x9e\x57\xbc\x9b\x5d\xb1\x67\xb4\x41\x4a\xd4\x04\x7d\xe4\x59\x2a\x5b\xe7\x76\xf2\xf5\xe3\x24\xc2\xf7\x57\x34\x75\x55\x73\x84\x26\xed\x10\x7f\xda\x5d\x87\x85\x06\xf2\x59\x19\x3a\xf2\xda\x4c\x4f\xeb\xe3\x8d\x2f\xc6\x48\x84\x69\xee\xbf\x9a\x54\x5e\x07\x14\x8b\x5a\x32\xa1\xd1\x38\x5b\xfa\xf1\x61\x9e\x70\x36\x7c\x18\xc6\x25\x32\x49\x74\x64\x29\x04\xb9\x06\x64\x94\x98\x36\x9f\x8d\xef\x83\x87\x21\x5a\xa4\x55\xd1\x94\x3f\x69\x84\x92\x5c\x58\x6e\x00\x74\xf1\xee\xc0\x52\xa2\x1c\x5f\x4b\xa8\x5e\x8b\x6c\xe2\x4f\x48\x0e\x11\xba\xf5\xca\x16\x20\x37\xb9\xea\xa7\x96\x24\x5c\x0c\x09\xe5\xd3\x33\x12\x83\x9f\x2f\xf3\x56\x53\x4a\x26\x70\x43\x47\xdb\xf0\x6c\x1d\xcb\xc9\x0f\x2a\xc1\xc1\x6e\x00\xdb\xd5\x73\x4f\xf6\xe5\x0e\x4b\xd3\x0e\xb1\xe2\xa6\xff\x77\x40\x04\x23\xc1\x13\x56\x29\x2f\xcd\xbb\xcd\xa3\x47\x0f\x4a\x20\x31\x1e\xd7\x45\xd9\x5a\xdb\xb9\x0f\x32\xfc\x04\xc0\xcc\x9b\x2a\x41\x01\x9c\x17\xaa\xc0\xe6\xed\x1f\x29\x7c\x8a\x16\x99\x3c\xae\xf6\x88\xec\x2b\x8a\xdb\xee\xb5\x69\xcf\xa0\x28\xda\xf5\x7b\xc8\x52\x09\xc7\xc2\x70\x1f\x77\x03\x68\x88\xad\x59\x4e\x11\xf0\x33\xef\x50\xea\xd8\xa0\xac\x0c\x5d\xe8\xb1\x78\x48\x9d\xd8\xac\x56\x5e\x2c\x31\x03\xf2\x50\x7c\xd8\xb2\xf0\xa8\xff\x56\x79\x3c\x42\x4c\x4b\x75\x01\x39\x6a\x29\x50\xbe\xc7\xb0\xb6\xb7\x4c\xeb\x27\xde\xd4\xa9\xec\x0a\x6e\xe3\x6f\xa5\xfc\x30\x40\xf0\x14\xd4\xaf\xae\x25\xd7\xb9\xb4\x5d\x85\x53\xf9\x31\x43\xde\xbe\xfd\x66\xb5\xd9\x7e\xdb\xec\x4f\x8b\xf5\x7a\xbf\x39\x38\x4c\x9c\x0a\x3c\x23\x6d\x8f\x5a\x2a\x5d\x5b\xdb\x2f\x0a\xeb\x2a\x08\x4d\xaa\x1e\xa9\x50\x67\xa4\x0e\xb5\x0a\x08\x43\x8d\x16\x5c\x93\x9f\xea\xc1\xb8\xc1\xa0\x30\x39\x83\x68\xd8\xb1\xd8\xaa\x56\xa1\x8c\x34\xef\x6a\x23\x83\x69\xb3\xd0\x35\x94\x1b\x84\x6f\x4d\xde\x4c\xa8\x39\x2a\xcd\x0a\x90\xc5\x19\xee\x78\x5a\x5e\xcf\x98\x5d\x71\xd7\x24\xa1\x8f\x56\xcc\x68\x60\x1d\x8d\x1e\x46\xd5\x1d\x8d\x8c\x8a\x79\x1b\xde\x7e\x49\x2f\x45\xf7\x77\x15\x23\x64\x27\x75\x6d\x2d\x96\x9a\x63\xf2\xeb\x44\x49\x30\x7a\x2a\xbc\xde\x56\xc7\x57\x58\x22\x79\x5f\xa1\xb6\xf9\xf1\x15\xbe\x17\xa5\xd3\x5f\xd5\x2a\x0a\x22\xa4\xbd\xa8\xea\xe2\x82\x5a\x8f\xc3\xde\x3b\x45\x41\x87\xc6\x84\x21\x72\xf3\x17\xdf\x24\x26\x51\x48\x46\x5a\x9b\xf3\x9e\x88\x8a\xa3\x90\x18\xed\x2c\xcb\x56\xd7\xb1\x8a\xe9\xa2\x3c\xad\x7f\x9b\x8e\x36\x18\x99\x63\xd9\x40\x5f\x10\x56\xcc\x0f\xc0\x6c\x53\xd5\x05\xf2\x21\x23\x94\x62\x41\x60\x36\xed\x57\x90\x6f\xd6\xb5\x9a\xbf\x65\x16\x7a\x9e\x72\x86\x3e\x6f\x2a\xac\xd0\xdd\xc4\x86\x8a\x45\x0c\x71\x22\x46\x6e\x77\x0e\x7a\xa9\x18\xf7\xa8\xcb\xda\xa7\x39\xcf\xbe\xa7\x79\x9e\xe6\x2f\x46\x9d\x7a\xac\x1f\xa4\x15\xeb\xb3\x61\x26\xc5\x6e\x5f\xfb\x28\xb2\x52\x89\x47\x42\x4b\xc1\xd2\x7a\x15\x15\x7c\xf6\x3e\x13\x22\xd1\xdd\x71\x58\x9b\x6d\xb5\x68\x97\xc5\x34\xc9\xa4\x92\x38\xa0\xd6\xcd\x7d\xcc\x4d\x60\x3a\x0b\x9c\x56\x3c\x14\xa8\xb5\x5b\x41\x8d\xc0\x02\xe5\x4a\x6e\x93\x61\x2a\xc1\x2f\x63\xe0\x65\x2e\x67\x63\x9a\xa7\x86\xae\x8f\xe2\x4a\xfa\x3d\x32\x7c\x46\x73\x44\x2b\xc1\x0c\xcf\xf5\x0b\xd4\xbb\xa2\xc8\x5a\xdf\x79\x79\xdd\xae\x27\xa3\x64\x18\x69\x43\x62\x3f\x76\x3b\x95\x94\x09\x12\x4b\xe6\xcd\x79\xd9\xc8\xb7\x8e\x25\x51\x2b\xa9\x88\xcd\x76\x21\x75\x3c\xa2\xea\x5c\x65\x6a\xed\xb2\xd7\xdd\x58\x61\x6c\x51\x23\xde\xe0\x13\xda\x0d\xa5\x7c\x23\x19\x3a\xd6\x2f\x8c\xdd\x35\x80\x18\x30\x43\x87\x51\xcf\xb2\x4d\xfd\x6a\x79\xfb\xbb\x41\x52\xe3\x17\x73\xb2\xb7\x06\x0a\xdc\x51\x82\xb8\x51\x4a\x61\x01\xd7\x7e\xcd\x21\x3f\x09\x56\x25\x47\x93\xda\x56\x17\x95\x8e\x4c\x76\x4f\x3a\x49\xbb\x5d\x51\x9f\xec\x15\xc1\x93\x46\x65\xeb\xc5\x75\x2a\xc9\xeb\x18\xa9\x00\xbe\x97\xa0\x3f\xa3\x8c\xe4\x43\xd3\x89\x7b\x6a\xf0\x83\x04\x97\x55\x77\xa8\xb5\x16\x0a\xca\x65\x31\xe3\x70\x8c\x5f\x1a\x84\xd4\x10\x42\xb4\xa1\x50\x1b\xcf\x0c\x97\x03\x84\xb1\x87\xa0\x32\x9c\xfe\xb6\x81\x3f\x0c\x06\xfa\x5e\x1a\x42\xa6\x74\x34\x80\x01\x2e\xbb\xed\x0a\x42\x4e\x69\x8f\xa1\xfb\x54\x06\xea\x7f\xd9\xff\xb9\x13\x64\x88\x15\x92\x7f\xfd\xf9\xfb\xf8\x36\xc0\x43\x00\xd1\x39\x55\xf7\x25\x57\xf0\xa5\xd3\xa9\xd6\x40\x88\x74\xa9\xcc\xaf\x15\x94\xa6\x4f\xd5\xd1\x99\x8c\x1f\x95\x30\x82\x25\x92\xbf\x1a\xf5\x32\x48\x9a\x14\x45\x36\xce\x9c\x00\x01\x85\x94\x40\x7b\xfe\x77\xd1\x8b\x7c\xd9\x83\x51\x08\x18\x28\xbd\xe2\xa6\x6d\x81\x25\xc5\x47\x35\xdd\xe7\x20\x4a\x62\x8b\x60\xc9\xa1\x4a\x2b\xcc\x88\x0e\x91\x53\x40\x59\x82\x6e\x88\xa1\x04\xc0\x3b\xaf\x16\xb9\x42\xaf\xea\x1f\x39\x32\x40\x85\x8f\x20\x61\x8e\xe9\xb6\x9e\x44\xd4\xbf\x19\x28\x3d\xcc\x62\xbf\xa7\xf0\xc1\xfd\xc9\x8d\xc6\x5e\x10\xf9\x1d\x2a\x78\x48\x3a\x3c\x02\x5a\x98\x97\x44\xdc\x49\x7e\x88\xed\x09\x75\xd9\xc0\xa0\x2d\x16\x62\x08\x10\x60\xbb\x5c\x2d\x57\x7f\x0e\x40\x2d\xc0\xa8\x10\x5d\x32\x54\xde\x77\xed\x7d\x3f\xdf\xbb\x80\x25\x21\xb5\x35\x25\x4c\x50\xdb\x66\x89\xaf\xfb\xed\x6f\x93\x81\xd2\x47\xd4\xae\x80\xfa\x39\x5f\x63\x02\xd9\x7c\x5a\xf7\x3f\x76\x5c\x22\x62\x65\x84\xad\x5b\x53\x52\x39\xea\x0a\x48\x20\xc6\xd0\xe2\xc2\x7b\x4a\xa2\xa1\xdb\x09\x89\x0e\xb0\x4b\xd7\x11\xfa\xad\xae\x72\xc4\x7e\x05\x3c\xa0\x0e\x11\x6b\x8d\xe0\xb1\x40\x81\xbd\xf1\xeb\xe6\x2c\x46\x50\x0d\x60\x21\xe9\x60\xd1\x0a\xdd\x62\xe6\x8a\x60\xa2\xe5\xcc\x7f\xb4\x73\xab\x68\xea\xce\xcb\xdb\x59\x55\x22\x3b\x52\x78\x04\x0b\xec\x48\xaf\xf1\xac\xad\xc8\xf0\xba\x67\xc6\x04\x21\x12\x9b\xf7\x12\x19\x97\x6f\xe8\x29\x8e\xa7\xba\x64\x21\xa6\x8d\xf6\x05\xf6\xb4\x0c\x8a\x33\xc3\x7d\x02\x24\x13\xe8\x86\x19\x85\x8f\x83\x2d\x11\x8e\x2f\x05\x61\xe4\xba\xca\x8e\x1d\xcf\x66\x91\x6d\x07\x5a\xef\xbf\x98\xce\x3a\xa1\x0e\xb9\xe4\x48\xb4\x9b\x69\x03\x83\xf6\x88\x51\x1a\x6f\xb7\x8d\x5d\x51\xd5\x97\xa2\x73\x69\xb5\x17\x71\xd0\x0e\x9b\xe5\x3c\xb8\xd9\xf2\xe9\xe8\x87\xb5\xa7\x85\x60\x43\x20\xc6\x23\xf0\x89\x4f\xad\x7d\x8f\xf9\x46\x4d\x21\x83\x1a\x86\x6b\xcd\x0d\x88\x13\x69\x63\xd3\x7f\x71\x23\xfd\x33\x64\xb4\x73\xa3\x98\x69\x77\x50\x70\xc9\x8a\xab\xe5\xa1\x71\xf7\xef\xeb\x04\xba\x22\x67\xfb\xa9\x9d\xf5\xd7\x81\x34\x98\x71\x53\xda\x1e\x37\xaa\xff\x34\xfe\xd4\x61\x44\x7d\x36\x76\xe3\x91\xe0\xa2\x5f\x12\x9a\xf8\x80\xc5\xa4\xef\x9b\xed\x69\xbf\xd8\x1e\x36\xeb\xd3\x6a\xb1\x73\x3f\x4d\x88\xf6\x54\x9f\xed\x74\x1c\x37\x78\x23\xf3\x7e\x8f\x26\x89\xcf\xbc\x81\x6c\x52\xae\x8a\x12\x19\x8a\x7e\xbb\x45\x7b\xe8\x08\x3c\x8c\x07\x76\xcd\xf9\x32\x34\xfb\x3a\xd2\x02\xf7\x0f\x7e\xb9\x3c\xa5\xf2\x2d\xef\x1b\x19\x74\xa4\x25\x0a\xef\x9c\xaf\xdf\xd3\xea\xb5\x4b\xf4\x6a\x1a\x51\xca\x9c\xf8\x5c\xbb\xd9\xd8\xd0\x6a\x7c\x7b\xb1\xd2\xb1\xec\xe2\x86\xf5\x88\x0a\x5c\xeb\x18\x7c\x24\x06\x38\x37\x59\x9d\x3a\x92\x33\x5b\x15\x9b\x30\x17\x0c\xff\x1d\xae\x17\xcd\x42\x83\xc2\x3c\x60\x7a\x75\x57\x54\x7f\x88\x1b\x3d\x2d\xad\x19\x0f\xd1\xed\x53\x56\x02\xd7\xe2\x54\x27\xa3\x92\x98\x00\xeb\x1b\x9d\x11\xe1\x7b\xc9\xd2\x69\xbf\xab\x4e\x12\x49\xa5\xcb\x1e\x8d\x02\x47\x9d\x00\x23\x81\x83\x73\x9f\x2f\x19\x54\x77\x45\x39\xd3\xe2\xa7\xb9\x17\xa8\xc8\x66\x01\x77\xe1\x7a\xde\xd1\xd2\x9c\x00\xe9\x7b\x4f\x6c\xdd\xa3\xab\xde\xcc\x4f\x09\x1e\x45\x78\x65\x0c\x9d\xcd\xd2\x9c\xfe\x76\x62\xb8\xc4\x79\x55\x59\xd0\xc7\x64\x80\xf0\x3d\x65\xab\x71\x86\x6b\xbe\x29\xe7\x31\x51\x5a\x00\xc5\x4c\x59\x5e\xa8\x89\x6b\xac\x65\x10\x46\xdc\xe2\xe4\x41\x3d\xdc\xc4\xce\x5a\xaa\x18\x6f\x23\xe7\x95\xe2\xff\xfd\xa4\x44\x61\xc7\xaa\x24\x42\xc7\xcb\xf9\xf7\x8f\x3c\x45\xa9\x8c\x9b\xf7\xaa\x74\x88\x5c\x29\x47\xa8\x6a\xc7\xdc\xd7\x9a\x7a\xb4\xbd\x67\x27\xe1\xcf\xc6\x5b\xed\xcf\x9a\x48\x34\x00\xf5\xac\xb5\x3d\xbc\xa5\xd9\xe7\x9d\x32\x93\x6f\xa7\x83\x10\x1d\xf5\x15\xbf\xb4\x77\xfa\x7b\x5a\x77\x10\x61\xad\x43\xa3\x0d\xdc\x69\x02\xd5\x4d\x99\xc3\x0d\x0d\xbe\x1b\x0d\x06\xa5\xf5\x91\xe6\xaa\xf8\xf0\xc7\x19\x21\xe9\x79\x9e\x17\x0b\xcf\x45\x9d\x1f\x03\x65\x1c\x77\xdc\x8f\x59\x27\xa0\xb3\x1c\xe2\x3b\x07\x77\x2c\x3d\xcf\x0f\x3c\xac\x63\x75\x32\x05\x0e\x6c\x29\x3d\x2f\x90\x44\x51\x47\x27\xd8\x46\x17\xee\x40\x18\x25\xc8\x41\xf8\xc7\xe6\xa9\xfb\x13\xf5\x91\x51\x0d\x7f\xcf\x10\xba\x0f\xf3\x09\xed\x08\xe1\x31\x87\x73\xbf\x9a\x24\xd8\x76\xdd\x1d\xd4\x26\xf4\xaf\x64\x71\x93\x26\x1c\xdf\x30\xa1\x11\x17\x43\xa9\x9f\x71\xc3\x4b\x33\xa2\x59\x45\xf7\x64\xfc\x62\x08\x67\xf8\xc0\xc8\x6a\x89\xed\xe4\xce\x08\xd9\x01\x11\x35\x82\xdc\xc6\xbc\xba\x6e\xb7\xc9\x6c\x99\xb8\xb5\xed\x69\x92\xe2\x0b\xef\xfb\x97\xce\x97\x76\x23\xe9\x5e\xea\xf8\x31\x22\x25\xf1\x57\x5e\x8b\x3c\x10\x5c\xbe\x35\x17\xf7\xfb\xb1\xef\x99\xf4\x7a\xd5\xb3\x5e\xb5\x06\xf7\x86\x60\x69\x8e\xe0\xc5\x5d\x23\x32\xd8\x2d\x84\x1c\x16\xe7\x62\xe8\x32\x4c\xd4\x20\xa4\xe7\x31\x6a\xc8\x34\x96\xab\xdd\xaf\x1a\x87\xa4\xe7\x25\xc4\x74\xf8\xad\x8b\x73\x8a\xdc\xac\xee\xc6\x13\x41\x22\x0b\x34\x45\x26\x06\x93\xc9\x37\x7e\xe2\xe8\x0a\x5c\x19\x0b\x67\xab\xbb\x6e\xe3\x1c\xf7\xc9\x48\xcf\x13\x1e\x75\x88\xa7\x45\x59\x2e\x8b\x22\xbb\x4b\x21\x53\xa1\x3b\x2e\xfd\x18\x6d\xf2\x7d\x71\xff\xdc\xfd\x2d\x90\x60\xd0\x10\x7b\x93\xc0\xb4\x29\x01\x77\x98\x40\x82\xc8\xf5\x61\x8b\xf9\x34\x5f\xdc\x8e\xe3\x21\xb3\xa9\x8a\x89\x0e\xc2\xe4\x4d\xab\xc8\x80\x74\xbb\x56\x97\x0a\xea\x27\xa8\x3f\x8a\xf2\xcd\xfd\xa6\x62\x3a\x54\xbd\x50\xca\x43\x51\xd7\x50\x5e\x07\xb5\xaf\x76\x0c\x07\x6d\xf9\x0d\xa1\xbc\x1b\x70\xdb\x8e\xdf\x1c\x90\xd0\xf1\x8e\x58\x87\xd4\xd4\xd9\x71\x8f\x68\x77\x1d\x6c\x02\x75\x17\x05\x6e\x74\x2c\x76\x45\xc6\xcb\xb4\xb2\x7f\xf6\xfd\x80\xa2\x93\xc4\xcb\x01\x8f\x6c\xfb\x77\x2a\xb1\x8e\xa7\x0a\xa7\xb0\xfe\xe9\xfb\xf1\x7d\xa9\x7c\xfb\x69\x56\x59\xfa\x63\x74\x9d\xc0\x6d\xf1\x69\xee\x7a\x9a\xdc\x2a\xb2\x23\x42\x8f\x63\x03\x09\x57\x8a\xab\xbf\xb8\x84\x5c\xba\x1d\xd7\x77\x93\x79\xf4\x1f\xf6\x3c\xe2\x69\x4c\x1f\x8a\x54\xfd\x8c\x71\xaa\x1d\x49\x28\x01\x97\x0b\x33\x2d\x9e\x69\xa1\xf6\x45\x96\x21\x37\xb3\x1b\xc5\xe2\xc8\x71\x27\x7c\x76\xc1\x3e\x4a\x91\x9e\x1f\xd1\x44\x5b\xb5\x04\xe4\x0e\x73\x17\xa2\x2c\x52\xad\x33\x75\x77\xfc\xfd\x38\x7a\x17\xb1\x47\x95\x1a\xb9\x17\xcb\xeb\x9e\xe7\x6f\x3f\x73\x99\xdb\xd3\x7c\x1f\xd1\xa3\x75\x07\x7d\x69\x3a\x15\x16\xe9\xf9\x4c\x79\x60\xa7\x41\x57\xca\xb8\x25\xb7\x6d\x07\x6a\x30\x89\xbe\x46\x9c\x2a\x40\x18\x0b\xcc\xc0\xac\xa4\xe7\x73\x5f\x46\x1d\x87\xfe\x01\x21\x52\x83\x6c\xd5\x74\x30\x93\x8c\xf4\x4e\xeb\x4c\x49\xc1\x0d\x84\x08\x7b\xf6\x7f\x31\x9b\x44\x68\x14\xa9\x0e\xc7\xc5\xfe\x88\xfc\x4a\x4f\x0b\x2b\x45\xd1\x1e\x95\x09\x0b\xec\x92\x36\x0a\x39\x30\xd9\xed\x7c\xe9\x4b\x1e\xf6\xfe\x8f\xe5\x29\x70\x17\x90\x9c\x74\x52\xa9\xb8\xef\x18\x19\xe9\xf1\x25\x94\x6f\x30\x36\x2f\x36\xc0\x1a\x42\x5e\xdd\x85\x14\x0b\x98\x1d\x73\x12\x93\xaa\xe0\x70\x9d\xfa\x0a\x88\xa9\xf7\xd6\x45\x09\xcb\x9f\x57\x04\xa5\xe7\x43\x68\x51\x4a\x4a\xd9\xea\xd0\xcf\xa7\x07\x84\xa6\x17\xf0\x50\x37\x17\xe4\x48\x1a\xcd\x39\x60\x02\xb3\xf0\xff\x49\x5f\xd2\x6e\xc9\x69\x62\xa6\xfa\x09\xd5\xf8\x81\xb7\x37\x6b\x3e\xf1\x0c\x1c\xb9\x1d\x1f\x51\x04\x49\x63\x28\x76\x2c\xd6\x69\x25\xd3\xcb\x7c\x21\xa1\x1d\x9d\x40\x18\x77\x00\x25\x9e\xad\x5d\xbf\xd7\x68\x58\xe0\x11\x81\x7b\xf7\x86\x57\xd7\xe7\xea\x9c\x36\xe7\x71\x19\xb6\x1d\xa2\x34\xe9\x45\x4e\x27\x5c\xb1\xd2\x0b\x82\xc0\x8f\xe4\x20\x23\x36\x6c\x83\x6e\x0f\xc7\x02\x27\xdc\xa9\x2e\x8e\xfc\x07\xdc\x9c\xcd\x4d\x9a\xe4\x1e\x6a\x87\x92\x6b\x3a\x40\x5e\x7b\x1c\x34\x09\x7b\x02\xe5\x07\xd0\xf5\xb1\x78\x32\x6c\x41\x3c\x33\x45\x51\x2b\xb9\x36\x08\x4f\xa5\x17\x84\x3c\xc0\x72\xcf\x32\xad\x0f\xc7\xf5\xb7\x14\x3e\xc6\xd3\x2b\x88\xfc\x88\xdb\xc4\xc3\xd1\x8a\x53\x75\x89\x36\xe9\x05\x34\xf4\xb1\xe0\xb8\x38\x1e\x27\x27\xd2\x30\x88\xfb\x76\x96\x25\xcf\xdf\x6e\x08\x6d\xa5\x17\xc4\x21\x53\xdc\xa6\xc3\x90\x9f\x14\x71\x82\xbf\x0e\xcf\xa5\x17\xb0\xc4\x54\x8f\x2f\x45\xcd\xeb\x41\xbe\xb6\x3d\x24\x29\x62\x27\x50\x38\x99\x05\x93\xdf\x64\x4a\x1b\x75\x38\xad\x07\xa7\x40\x28\x0d\x61\x41\xa9\xfe\x98\x9c\x90\xc4\x02\x9b\xc7\xd7\x25\xf0\xf3\x1f\xee\x0c\xce\x9d\x54\x70\xcd\x33\x73\xc7\x96\x92\x71\xdd\x98\x59\x8a\x78\x0c\x3b\x5a\x78\x04\xd9\x46\x4a\xa8\x64\x03\x0f\x45\xd5\x3a\x38\x17\xf8\x44\xc1\xa2\x3d\x21\x0a\x11\xeb\xfe\xb4\x78\xec\x2f\xa2\x09\x3a\x16\x88\xd1\xb0\x33\xe8\x73\x02\xcb\x4f\xde\x9b\x64\x09\x6e\xd9\xbb\x12\x52\x59\x18\xad\x2c\x77\x48\x26\xc8\x27\x8d\x7c\xab\x6b\x5c\x86\x43\xf3\x10\xa8\x76\x2b\xb3\xfa\x01\xae\x4a\xc3\x3e\xc5\x7e\xb7\x27\xf8\x60\xc0\xfe\x27\x55\xc8\xe6\x3c\x21\x6f\x95\x5e\x00\x11\x43\x2c\x65\x59\x20\x53\x5e\x37\xaf\xb4\xc7\x4c\x49\xa3\xf5\x76\x97\xa9\x13\x33\x1f\xed\x12\x81\x56\x11\x32\x44\x6e\xc8\x03\x7f\xe7\xf6\x54\xa4\x31\x8a\x4d\xf5\xc2\xf0\x58\xcf\x81\x65\xdb\x71\x8a\x09\xe6\xe4\x04\xcb\xd9\x4e\xab\x76\x94\x0e\x11\x43\xdd\xe9\xe5\xcf\x35\x00\x4a\x2f\xf4\xb9\xef\x4c\xac\x61\xb4\x1d\x79\xd9\xa1\xcf\x63\x04\xbb\x22\x0f\x9e\xe2\x59\xb5\x34\x41\x94\x3d\x1c\x10\x19\xc7\x73\xa4\x88\xe3\x6f\x17\x06\x8c\x38\x0d\x42\x77\xbf\x56\x72\xda\x0d\x48\x38\x96\x00\x11\x7c\x63\xdd\xa1\xbb\xb2\x4f\x57\xff\xcf\xcd\x66\xe6\x4e\x54\x12\x01\x7d\x16\xfe\x30\x3f\x29\xc3\x90\x71\x6f\x58\xba\x3a\xa6\x19\x52\x63\x99\xd5\xd7\xb9\x3f\xe3\x93\x48\x28\x5c\x50\x6a\x95\x81\xb0\x6e\xa7\xb9\x9c\xec\x65\x61\x14\x9a\xf9\xed\x8a\x31\x96\x42\xb8\x3d\x02\x86\xbb\xa2\xc8\x5f\x8b\x4c\xd9\x44\x6a\x35\x39\x9d\x06\x51\x60\xb1\x55\x4e\x49\x6e\xec\x02\xcf\x24\x21\xda\xd3\xa4\x8f\xd3\xa8\xb5\x97\xf7\x90\x7f\xb9\x5e\xdc\x82\x08\x63\x66\x3a\xde\x1f\xaf\x26\x39\x61\x8a\x65\xe3\xd3\xe3\x24\x42\x36\x29\x05\x17\x5e\x22\x99\x64\x39\x29\xa7\x3a\x84\xaf\xcd\x6e\xb5\xe7\x70\x88\x06\x74\x14\x86\x8a\xe7\x84\x7c\x8b\xdd\x4f\xab\xc4\xa9\xe1\xd8\x9c\x38\xca\xd4\x60\x5a\xf7\x96\xee\x48\x7a\x21\xe3\x21\xd6\x27\xd0\x1e\x75\x13\x82\xf5\x2d\x7f\x9d\xc1\x99\x6f\xb9\xba\x01\x41\x49\x2f\x4c\x22\x83\x58\xbf\xe3\xd2\x12\x19\x0e\x77\xec\x30\x89\x4c\x4b\x53\x5a\x59\xaf\xfe\xb9\xdc\xf1\xaa\x36\xa0\xe8\xf1\x5b\x4a\x04\xc3\x12\xda\xe9\xcc\xdf\xe0\x70\x01\x99\xf2\x6c\x7b\x0b\xfa\x1f\xaf\x9a\x44\x8c\x85\x14\xcd\x0e\x54\x16\xe7\xdd\xdb\x2c\x8f\x4b\x7b\x8a\xa2\xe8\xa2\xef\x1a\x43\x48\xd0\xdd\xaa\xe2\x08\x05\xc5\x3c\x18\x02\xc9\xd2\x22\x7f\x4c\xbb\x47\xe1\xc4\xf3\x6d\x3e\x0d\x99\x02\x30\x41\x3d\x7a\x17\x9c\xcb\x98\xf7\x44\x90\x6b\x9b\xf0\xef\x49\x58\x1c\x0d\x03\xb3\x27\x88\xd8\x53\xae\x08\xd6\x94\x39\x3a\xf0\xe3\x97\x22\xb8\x87\x1f\x67\xf9\xb4\x9a\x1e\x51\x82\xdb\xc6\x9d\xbd\x1a\xf2\x3b\x8c\x9f\x56\x86\x46\xe8\x37\x75\x22\xf5\xbf\x8d\x0f\xc7\x81\xd5\x8d\x34\xfc\x54\x6b\x90\xa9\xea\xdf\x89\x04\x1f\xf7\xa4\x65\x81\xa8\x2a\xcb\x1e\x39\xb9\x13\x09\xa6\xd2\xdb\xd1\xd8\x1d\x3a\xc2\x99\xf6\xa8\xf6\x3b\x51\x83\x2b\x36\x72\x74\x57\x57\x9e\xe9\x0f\xe1\xa7\xf7\x14\x50\x03\xd3\xc0\xf1\x16\xb9\xb2\x9a\x9b\xbf\x0d\x56\x84\xf2\x0d\xa6\xf3\x1d\xca\x54\x5f\x57\x50\xd6\xdf\xd3\xfa\x75\xbb\xbe\xc1\x98\xcd\x80\x6f\xdb\xd3\x99\x81\x10\x5a\x8a\x71\x2c\xe1\xae\x60\x22\xe9\x2d\xbd\x10\x02\x83\x12\xea\xaa\x27\x83\xed\x73\xa8\x87\x35\x79\xcf\x10\xb2\x60\xa4\xc5\x8d\x75\x76\xfb\xa4\xed\xcc\x61\xba\x47\xc1\xb6\xaf\x61\x63\x2b\x76\x6e\x04\x0d\x8c\xac\x7f\x93\x77\x7f\x02\x2a\x6c\xc3\xf5\x4b\x3f\x0e\x04\xc8\xbe\x6e\x79\x48\xff\xee\x0e\xf9\x41\x88\xc4\xa5\xd2\x68\xa6\x1b\x7f\x15\x29\x1f\x3e\xc9\x3b\xcd\x05\x82\xc4\xa7\x51\xa0\x1c\xcd\x7e\xae\x8a\x72\xd1\x0b\x84\x98\x9d\xe4\x58\x72\x57\x91\x1c\x4e\x7f\xe2\x27\x4c\x5b\x17\x73\x93\xab\x75\xaf\x3e\x6a\x8f\x07\x91\x71\xd4\x37\xc7\x2f\x98\x23\xbf\x64\x69\x37\x17\x48\x18\x19\x62\x0d\x2c\xd5\x21\xbf\xe4\x5d\x99\x42\xae\xaa\xbb\x34\x7f\x81\xb2\x9a\xc2\xc2\xdb\x53\xa4\xa9\x32\x77\xcd\x0d\xe9\xb9\x39\x9b\x28\xa3\x1a\x39\xbf\x24\x54\xa6\x3a\x6f\xa6\x8e\xeb\xe9\xef\xf5\xbc\x6e\xca\x76\xd2\x23\x84\x11\x6d\x1a\xa8\x2b\xe8\xd9\xa4\xc7\x77\x10\xc5\x61\x20\x3b\xe8\xff\x56\x16\x8e\xc1\x76\x84\xbf\x6e\x07\x26\x0c\x99\xf4\x2c\x51\xea\xae\x84\x31\x83\xcf\x4f\x1d\x33\x36\xba\x2f\xea\x45\x66\x56\x14\xba\x7b\xcd\xee\x50\x00\x32\x1c\x23\x15\x8e\x8e\xec\xd9\xc6\x7c\x3f\xeb\xc0\x6a\xaf\x10\x1a\x4a\xc5\x8c\x57\xf5\x80\xa3\x0e\x8f\x30\xdf\x43\x0d\x90\xec\x3c\xb4\xf0\x84\x46\x1a\x8b\xec\x46\xd6\xb1\xaa\xa1\xfc\x9e\xe6\x55\x77\x54\xd2\xc4\x77\xb8\xed\xf6\xc1\x91\x1f\xfb\x58\x7c\x7f\x1d\x78\x1c\xb3\x9e\x04\xa1\xca\x74\xd1\x8b\xa2\x2c\x8b\x8f\xcf\x06\x8f\xde\x4d\x1c\x30\x44\x89\x5b\x9c\xf5\x76\x9d\xf7\xf2\x2d\xed\x61\x69\xac\x59\x3d\xe0\xdf\x36\x53\xda\x3e\x6b\x6f\x6d\x08\x4b\x8c\x5c\x9d\x53\x08\x71\xaa\x33\xce\xdf\x20\x4c\x69\xfc\x0e\x17\x57\x4b\x1c\xbf\xc9\x84\x42\x64\xfd\x35\x23\x88\x57\xe1\x0a\x1a\x18\x6a\x37\x90\xf9\xa1\xd5\x5c\xde\x22\x23\xfb\x8b\x4d\xe9\x4c\xc6\xf1\x88\x20\x23\x9a\xc5\x58\xb5\xa6\x7c\x50\xac\x69\x07\xf0\x04\x6f\xa8\xbc\x14\x1f\x8e\xba\xe1\x7f\x86\xc9\x15\x22\x44\x12\x19\x11\xc6\xbf\x4c\x25\xd6\xb4\xf7\xdb\xa3\x32\x4a\x1c\xcd\xcb\x3d\x3f\x43\xf7\x09\x25\x65\x20\x7a\x59\x8b\x2c\x2b\x3e\x3a\xf2\x8d\x7a\x30\x43\x24\x03\x8c\x30\x0f\x4f\x07\xd4\x78\x77\x7f\xe6\x46\x16\xf0\x64\xc2\x3c\x54\xa3\x18\x6f\x20\x44\x4a\xc3\x4d\x69\xe5\xad\xea\xdb\xf0\x96\xa8\xc4\xc3\xa0\xdd\x24\xfd\xaf\xbd\x8f\x33\x18\x02\xa1\x29\x58\x66\xbc\x7a\xb5\xd5\xc6\x87\xf4\x0d\x5a\x33\x99\x8f\x99\x2b\xa5\x47\x40\x2a\x61\x35\x9e\x6f\x93\xc8\x76\x8c\xf6\x7c\xd4\xd2\xbf\x14\x1f\xf3\xad\x5e\xed\x18\x69\x38\x22\xb7\x4f\xdb\xe3\x76\xf1\x70\xb2\x8c\xd8\x3d\x8b\xb6\xf4\x22\x8f\x1a\x8e\x32\xab\x74\xbc\x28\x4d\x12\xf5\xd6\xc9\x9a\x6e\x5a\x91\xa7\xa9\x72\xa4\x21\x68\xef\xc7\x6f\x2e\xf2\x63\x89\x55\xa9\x3f\x34\x94\x48\xb1\xd3\xf5\x05\xbb\xdf\xf6\xb5\x31\xba\x95\x61\x8f\x3c\xf3\x39\x19\x1a\xe9\x45\x01\x0b\xb5\x01\x95\xbc\x18\x1e\xa3\xd9\x5d\x34\x0a\x43\xab\x6b\x7d\xb9\x58\x31\xd3\x87\x01\x38\x60\x3a\x38\x26\xe8\x1b\x2e\xd2\x72\xf5\xea\x0c\x46\x14\x26\x1e\xfa\x59\xbb\xfd\xf6\x3f\x9b\xee\x8f\xca\x48\xa7\xa3\x47\xb6\xe4\x2f\x55\x77\x00\x84\xee\x28\x06\x0c\x79\x23\x06\xa4\xb3\x00\x40\xe9\x45\x34\xa6\xc8\x7e\x54\x35\x02\x83\x9f\x9b\x05\x17\xc5\x54\x20\x4d\xdf\xd9\xf4\x91\x54\xd3\xc3\xc2\xe8\x59\x1c\x2e\x3c\xcd\xdf\xab\x7d\x53\x55\xa9\x8b\x1c\x23\x46\x00\xeb\xc4\x03\x0a\xb7\x6a\xd0\x42\x20\xbd\x28\x89\x79\xe4\x84\xee\xd4\xf7\xa2\xda\x15\x45\x76\x57\x94\xa8\xea\x35\xf4\x8b\x22\x1e\x7a\x88\xd7\x38\x0d\x54\xc6\x3f\x09\xea\x22\xce\x80\x39\xd9\xc2\x36\xa2\x77\xd9\x1d\xf6\xbf\x7e\x4c\x27\x71\x5a\x24\x62\xa9\xad\x8c\xac\xf3\x62\x6f\x65\x88\xdb\x71\xcc\xa3\x6e\x5c\x71\xbe\xd4\x70\xf2\xd9\x68\x8d\x44\x12\x3c\x36\xf2\x69\x76\x45\x3a\x70\x98\x26\xbf\xab\x7c\xd3\xf4\xe8\x98\xb6\xfe\xf5\xbc\x7d\x3a\x1a\xce\x4c\xf7\xcc\x4a\x45\xca\xf0\x02\xd5\xf2\x75\x21\x8a\xb2\x86\x89\x99\x8b\x20\x8a\x51\x2b\xee\x25\x7d\x87\x7d\xfa\xf2\x5a\x1f\x0b\x84\x85\xcf\x06\x66\x91\x26\x0c\x41\x9a\xeb\xcd\xb7\xf1\x9a\xa3\x1e\x97\x88\x86\xb6\x90\xae\x0e\x91\x6d\xff\xbf\x1d\xe5\x47\x1a\x03\xcf\xd5\xee\x7e\xb7\xd9\x6f\xee\xf7\xdb\xa7\xcd\x69\xf3\xc7\x71\xbf\x58\x21\x03\x6a\xc7\x52\xd8\x8e\x4d\xa4\xa3\x79\xdf\x95\xe9\x99\x97\xd7\x59\x77\x98\x06\xd4\x64\x86\x2d\x7c\x6d\x10\x84\x8f\x4d\x10\x0d\x94\x49\x4c\x5b\xc5\xf1\x01\x85\x6c\x7b\x10\x0c\xd9\xf6\xc9\xe8\x5d\x9e\xe0\x7c\xa9\xaf\xa7\x4e\xef\xc8\x8d\xd2\x46\xa9\xde\xaa\x2a\x0f\xe6\x17\x0d\x7d\x81\x89\xf6\x73\x6b\x16\x46\x3b\x05\x25\x91\xe7\xbb\xe9\xc4\xab\x1a\xc9\x64\xc7\x9f\x81\x92\x98\x80\xd7\xe5\xe6\x8c\x2f\x3b\xeb\x32\xd0\xc8\x63\x68\xa2\xfe\xbd\x3c\x22\x6c\x6b\xfc\x32\xa2\x40\x62\x59\x61\xa3\x20\xdb\x17\x55\xdd\x9a\xd9\x2e\xa4\xa2\x51\xe2\x23\x0c\xb7\x97\x8c\x4a\xa1\x1a\x20\x96\xdb\x21\x20\x91\x42\xe6\xbf\xad\x51\x42\x75\xf5\xc9\x71\x2d\xb5\x3f\x64\xb8\xda\x2d\xf6\xc7\xa7\xcd\xfe\x70\x3a\x6c\xd7\xdd\xb7\xa3\x42\xf9\x56\x59\x7b\x5b\xc3\xf9\x26\x69\x3d\xbe\xe9\xd8\x0b\xd4\x80\xd5\x78\xf8\x56\x63\x4f\xa1\xc7\xd7\x2d\x89\xb5\xc3\x4e\xb6\xcb\xcc\xca\xe8\xba\xb1\x91\x88\x6d\x73\xde\xd2\xf1\x31\x38\x1c\xf5\x5c\xa5\x82\xc6\xb1\x16\x96\x3b\x6c\xdb\xf1\x49\xdd\xc8\x03\x8d\xef\x95\x25\x80\xee\x7a\x0e\x1f\x98\x71\xb6\x81\xd3\x8a\x9f\x2f\x3c\x7d\xf9\xa4\x36\x4e\x19\x70\xfc\xbc\x17\xf4\x96\x4f\x76\xe3\x3d\x7d\x18\x8c\xf3\xc4\x24\x52\x1e\x04\x08\x71\x53\x45\x96\xf1\xb2\xba\x2b\xca\x61\xe0\x4c\x85\xa7\x1c\x30\x5f\x8d\xdb\xbe\xe6\x6f\x59\x44\x01\xb3\x24\x15\x7f\xb4\x1b\xf3\xbf\xf7\x3f\x23\x10\x91\x1e\x95\x84\xb8\x46\xb7\x93\x30\x59\xb1\x51\x16\x80\x4a\x4a\x65\xc7\x7d\x7d\xc5\x22\xa3\x3d\xa2\xfc\x20\x0e\x5c\xb6\xcb\xf8\xe8\xfd\x21\x82\x78\xba\xe2\x62\xb2\xa4\x8b\x3c\x2f\x9a\x5c\xc2\x6d\x0e\x92\xaa\x38\x26\xf6\x06\x16\x59\x86\xae\xfb\x90\x42\xb8\x1d\xc1\x05\xb2\x2e\x9c\xa0\x6a\xc3\xe0\x2f\x45\xe5\x84\x68\x36\xbc\xcc\x07\xd2\xd2\xd3\x47\xbc\xf5\x67\x27\x9a\xcb\xd2\xa3\xda\x37\x39\xbd\xd6\x97\x6c\xce\x5b\x03\x79\x36\x3b\xfd\xf4\x53\x69\x5f\xc8\x5e\x5b\x0c\xb9\x39\xb0\xc9\xfc\x93\x79\xa0\x89\xf4\xdd\xec\x71\x33\xe6\x17\xe1\xf4\x3f\xe9\xff\x6e\xaf\xcc\x42\xe2\x75\xcd\x71\xb6\x24\xb1\xbc\x9a\xc4\xcf\xe4\x26\xb8\xc2\x6c\x7b\x5a\xc3\xb9\x5b\x3c\x5a\x6b\xdc\x07\x6c\x63\xf8\x8e\x37\x95\xe5\x67\x19\x78\xe9\xed\x42\x4d\x4c\xce\x28\xed\xbe\x45\xec\x25\x31\xf2\xf3\xc9\x22\xcd\x55\x59\x5c\x2a\x1b\x6e\xa7\xf9\xcb\xa2\x1b\xe4\x47\x56\xba\xa2\x42\x64\x22\xd7\xa3\xeb\xfa\x3a\x14\xba\xe7\x67\x76\x40\x0a\x35\xa0\x10\x95\x5e\x1c\x90\x00\xd7\x5e\xcf\xb6\x32\xf7\x71\x67\x91\x38\x78\x76\x12\x77\x9d\x88\xbb\xac\xa8\x1f\x4d\x50\x8c\xaa\xcc\xc3\xae\xc3\x01\x06\xfb\x17\x24\x44\xed\x55\x95\xc4\x20\x7c\xf3\x63\x44\xc1\xea\x6e\x39\xe4\x3a\xb2\xd4\x64\xb6\x89\xa8\xcf\x70\xc5\xc4\xf3\xb5\xd5\xa9\x38\x16\xad\xe3\xd2\x1f\x90\x48\xe7\x9d\x37\x67\x97\x69\x7c\x56\xaa\x3b\xea\x9b\xad\x16\x01\xf9\x88\xc2\xb2\x3e\xe6\x70\xab\x8a\x49\xe8\x11\x62\x9b\x51\x7b\xe1\xbe\xc9\xfc\x8d\x49\xe8\x87\x26\x51\x92\xca\x36\x0e\x42\xc6\x96\xee\x12\xdc\x80\xdd\x9d\x62\xf2\xa0\x38\x3b\x5b\xda\x1e\xbf\x19\x1a\x85\xd8\xa5\x75\xcf\xdf\xd3\x7c\xac\x51\x36\xfb\x26\xa9\x64\x18\x0f\x3d\x15\x65\xfd\xba\x2b\x32\x58\xdc\xb9\x1b\x89\x89\xc2\x97\x2c\x79\x7e\x67\x7a\xcf\xe6\x52\x08\x71\x1c\x1b\x29\x29\x5b\x50\x5d\xac\xbb\xf3\x85\xa7\x2d\xed\xc5\x62\xef\x90\xbc\xee\x60\x42\x7c\x27\x62\xd6\x3e\xa1\x7c\xfd\x0e\xe9\x6f\x93\xba\x72\x9c\xc4\x1c\x7c\x47\x95\x52\x6e\x73\x59\x9c\xed\x2e\x3d\x9e\x64\x89\x34\x41\x11\x57\x7f\x35\xd5\xad\x33\x1c\x73\x5f\x7b\x3d\x41\xc4\x97\xa2\xa9\xb0\x85\xd0\x22\x43\x47\x4b\x3a\xe6\x61\x80\xb6\x05\x9b\xdf\xaa\x07\x78\x99\xe6\x43\x5a\xd7\x17\x73\x7d\x8f\x69\x5e\x77\xcc\x00\xed\x74\x46\xe5\xdb\xb2\x5b\x38\xc2\x67\x68\xaf\x77\x4d\x96\x59\x33\xf9\xe8\x78\x3f\xda\xc3\x41\x84\xbe\xcf\x61\x71\x87\x91\xe4\x2f\x91\x3b\xb1\x90\x1a\x9d\x10\xc7\xf5\x79\x46\x8c\xd6\x9a\x5f\xe7\x6b\xc0\xb1\x92\x51\x32\x2c\x23\xec\x8a\x71\x2e\x2b\x56\x92\x25\xc6\xd9\xcb\xb4\x23\x46\x5d\x6f\x9f\xa6\xd3\x55\x29\x03\x90\x14\x8d\x85\xe4\xba\x47\x80\x30\xec\xf3\x1e\x39\xd4\xaf\x7c\xda\xc8\x3f\xb0\x36\x9a\xc4\x88\xb1\x30\x34\x75\x36\xae\x72\x57\xd2\x71\x1c\xf2\x71\x11\xd1\x2e\x9f\xae\x38\xc4\x3c\x6d\x1d\x75\x94\xc8\xf8\x61\x00\x78\xc7\xeb\xc5\x49\x59\x0e\xeb\x0b\xa3\x17\xc7\xfc\x24\x41\x11\x8b\x81\x42\x68\xfb\x57\xd0\x48\xac\xf7\xca\xab\x03\xb4\x11\xf1\x12\xa0\x93\xbb\x1d\xcf\x0a\x16\x92\x08\xbd\x58\x03\x8f\x6b\xea\x8e\x13\x71\xf4\xa6\x58\x18\xf9\xc6\xc8\x57\xdf\x0a\x9c\x1b\xe3\x89\xca\x88\x1f\x21\x4f\xd3\xf3\x7e\xbd\xd9\x9f\x76\x0f\x8b\xd5\xe6\x36\xf5\x3f\x93\x7e\x1d\x7f\x58\x46\x22\x40\xfc\x9e\x6c\x23\x0c\xcb\x14\x30\xa1\x99\x1b\xbf\x00\x42\x4d\x41\x13\x3d\x9a\x35\x64\x35\xff\xac\x8d\x4a\x7a\x2c\xf2\xc1\xb3\xeb\x16\xd5\xa8\x46\x28\xdf\xfe\x26\x28\x31\x40\xbc\xda\x95\x7c\x87\xa5\x67\xc6\x3c\xcf\x49\xc6\x3d\xa6\x79\xd7\xa7\xfb\xac\x71\xb7\x9e\xcc\x30\xc6\xe2\xc4\xf1\xb5\x3f\x5f\xa0\xbc\x51\x34\x6a\x87\x28\x8d\x86\xea\xb0\x59\xed\x37\xc7\x93\x11\xd8\xbc\x5b\xac\x8e\xcf\x7b\xf7\x9b\x9c\x51\x7c\xbb\x90\x2b\xa3\x9d\x74\xe3\x64\x30\x29\x3d\x97\xf7\xed\x73\xc7\xbd\x87\xc3\x94\xaf\x51\x62\xaa\x4e\xcf\xb6\xbc\xe9\x0e\x28\x1f\xd7\xde\xf6\xf9\xeb\x67\x1a\xe0\xd2\x63\xe0\x45\xa6\xd0\x20\x8b\x7d\x93\xc1\x0a\xdd\x82\xc9\xb3\x02\x70\xa3\x02\x9a\x15\xf9\x08\x9e\xd8\x0d\x49\xbc\x48\x83\x05\xbc\x1c\x6a\x2e\xdf\x6c\x37\xcd\x6f\xee\xb0\x20\x46\x4a\x0a\x63\xaf\x3d\xc8\xa2\x54\xb7\xca\x55\x38\x90\x21\x84\xda\x0c\xfc\x3d\xcd\x5f\x54\x71\xfe\x44\x25\xe3\x97\x9e\xcf\xec\x54\x4c\x3c\xc5\x91\x4a\xf6\x3f\xaf\x90\xe7\x45\xef\x01\xda\xc3\xbe\x47\x90\xb2\xc0\xda\x3f\x9b\x5a\x4f\xcf\x6d\xbc\x71\x9e\xe5\xe7\x6b\x4f\xa2\x24\xec\x09\xab\x57\xaf\xc5\xa4\xef\xae\x1d\x22\x4d\x93\x61\x39\xc2\x4a\xdf\x42\x93\x12\x1f\x48\xc4\x6d\x3b\x74\x6e\x10\x8f\x6e\x0f\x4a\x02\xaa\xd0\x7b\xfb\xb2\x7c\x1e\x26\x7b\x93\x20\x09\x11\x9e\x63\xe1\x51\x28\x9b\x36\x7d\x4b\x63\xb6\xa2\xc9\x4b\x09\x40\x62\x28\xe1\x1a\x9c\xbf\xf5\x56\x27\x09\x89\x74\xca\x8b\x4f\xf0\xa3\x6e\xa7\x49\xf7\x61\x43\x26\x5d\x03\x23\x42\xc7\x5f\xfa\x4a\xd6\x0d\xa7\x80\xf4\x12\x12\x28\x9b\xbc\x37\xa6\xfb\x89\x9f\xe1\x8f\xed\xda\xe8\xb7\x5d\x2e\x9f\x3a\xe3\xc3\x4b\x50\x85\xc9\xd2\x45\x5d\x9c\x07\x31\x6b\x42\x64\x8c\xf5\xf3\x6f\x50\xa6\x35\xaf\xa0\x19\xa5\xc3\x13\xa2\xb4\x11\x40\x7c\x4d\xf5\x27\x15\xc8\x24\xa2\x5a\x25\x0e\xe1\x6c\x8d\xba\x8d\xfe\xc7\x03\x69\xa8\x92\x78\x80\xdc\xaa\xc6\xa3\x26\x93\x83\x52\x8a\x4d\xa8\xfb\xa2\x38\x3f\x15\xad\xc3\xa1\xd4\xb0\xdc\x98\x50\xce\x31\xf0\xd2\xf8\xc7\xd1\xa1\x58\x51\x57\x7e\xd9\x6d\x4d\x07\x64\xe8\x8d\xb6\xc4\x84\xf9\x01\x7e\x7b\xd1\x5c\x3b\xd2\xe2\xaf\x79\x5a\x77\xdf\x88\x05\xde\x80\x70\x1b\x0d\xea\x22\x57\xf5\xed\xd3\x4d\x5e\x47\x12\xd3\xc8\x64\xb6\xab\xda\x24\x76\xc7\xcf\xc5\x09\xe8\x7e\x7b\xdc\xd4\xaf\xc7\x1f\x43\x05\xa9\x76\x04\x4b\x90\xde\xe6\xb0\x3b\xba\x5c\x53\x22\x02\x8e\x91\xfa\x07\xa4\x8f\x86\x3e\x60\xf2\x72\x85\x32\x61\x87\x0d\xd9\x7e\x5e\x19\x49\x14\x33\x72\x01\x83\x5c\x58\x93\x2b\x5c\xb0\xd5\x8d\xfa\x90\xf4\x12\x1d\x06\xd8\x7d\x81\xa2\xf9\xff\x6e\x6f\xf6\x06\x43\x98\x68\x50\xc1\x90\x52\xbf\x9d\x9e\x6e\xe3\x99\xfd\xc4\xdc\xa3\x80\x24\xaa\x69\xae\x0b\x57\xc6\x22\xbf\xb9\x83\xc2\xb4\xb5\xbf\x40\xfd\x7b\x9a\x65\xa0\x8c\x96\xfb\xe8\x37\xb9\x4f\x4c\xf3\x75\x5a\x1d\x81\x9f\x1f\x90\xe6\xd3\xe4\x2d\x9e\xdf\xa1\xdc\x6a\x94\xb4\x9c\xb8\x2a\xe3\x7b\xf0\x23\x4f\x98\x69\xf6\xce\xff\x53\xe4\xb0\x1c\xce\x7f\xee\x73\xc3\x98\xf8\xc3\x8f\xba\x3f\x89\x38\xe8\x3c\x18\x93\x2d\x6d\xef\xfd\xb9\xa9\x7b\x7a\x8d\x76\x18\x44\xf8\x36\x8c\x49\x5e\xf3\x62\xf7\xfc\x70\xf8\x7d\x51\xdf\x34\x67\x4b\x8f\x07\x81\x87\x8b\xd0\xf4\x95\x7d\x72\xa3\x41\x98\x60\xab\xe1\x3b\xcf\x1a\x8c\x25\x06\x15\x59\x1e\x30\xcf\x0a\xcc\xd4\xc7\x12\xe0\x50\x97\x8d\x1c\xd5\x02\x27\xd7\x52\x09\x3e\xf4\xa6\xaa\x20\xaf\x53\x3e\x7a\xe6\x30\x32\xbc\x85\xa2\x29\xf3\x09\xe5\xf4\xf8\xe5\x87\x11\x30\x31\x5c\xcf\xe8\x17\xab\xc5\x64\xdd\xf3\x90\x86\x24\x1a\x8c\x43\xff\xc1\xc0\xaa\xc7\xad\x07\x3c\x4c\x34\x36\x4b\x88\x91\x18\xc5\xf8\x6a\xc4\x37\x44\xcd\x88\xc0\x3e\x60\x87\xef\x27\xf7\x47\x02\x85\xce\x46\x57\x19\xb5\xb9\x06\x47\x07\x2f\x3d\x1e\x09\x29\x54\x2f\x02\x68\x2a\xe8\xf6\x58\x4c\xc3\xa4\x83\x26\x6f\xb5\x9d\x46\xdb\x0a\x4b\xe9\x0f\xa3\x52\xba\x3b\x43\x1b\x7d\xb4\xc7\xc5\x37\x64\x61\xff\xa5\xa7\xcf\x99\xd5\x20\xe9\x71\xe2\x5f\xab\xf6\xdd\xe8\xd1\x5c\x62\x34\xc1\x8e\x94\x27\x7e\x6e\x7d\xcd\xae\x1a\xd4\x67\xde\x7a\x4b\xcf\x59\x92\x60\x6b\x8b\x5b\x86\x8b\x0a\xf3\x8c\x9f\x56\x1c\x7f\x52\x3d\xe7\x4c\x9b\xe2\xc2\x5d\x96\xbe\xbc\xd6\x28\x8e\x78\x53\x57\xe2\x89\x47\xad\x60\xf4\xcb\x37\x9e\xb5\xf3\x29\x07\x6b\xd1\x9c\xe2\xf4\x6c\xa0\x3f\x3f\x35\x93\x88\xf9\xca\xf6\x5e\xdd\x04\x78\x3c\xa1\x06\xb5\x98\x17\x35\x96\xbe\xf3\x4f\x01\xff\x3c\x49\x38\x76\x06\x14\xb9\x6b\x5f\xff\x5a\xa9\x36\xf8\xb4\xc7\xb9\xcf\x90\x9c\xe4\x4b\x5a\x75\xcd\x87\xed\x9f\x43\x81\xe9\x3f\x0c\x00\x46\x09\x12\xce\x63\x08\xa0\x67\x48\xca\xdf\x8b\x01\x2c\xd7\x8d\x91\x03\x91\xf9\xdf\xd3\xba\x4e\xbb\x5d\x9f\x8b\x28\xf6\xec\x22\x75\x84\xf3\xff\xa0\x5b\xa9\x3d\x91\x51\x9c\xa5\x87\xe5\xc1\xca\xb5\xf7\xd7\xd4\x0c\x77\xba\x29\xcc\xe7\x31\xcd\x20\x70\x83\x64\x68\x9a\x00\x76\xfb\xcd\x69\xbb\x7a\xb6\x3e\xf5\xde\x29\xfb\xb5\x23\x92\x04\x5f\x16\x5e\xe6\xeb\x7e\xbb\x2b\x41\xa7\x3f\xdc\x51\x15\x13\xd3\x91\xea\xba\x78\x46\x45\x22\xae\x44\x8c\xa6\x6e\xd1\xd4\xaf\xd6\x13\x9e\xff\xb6\x4a\x12\x1a\x8d\x66\x3b\x4e\xf3\x01\x72\x9b\x03\xe5\x18\x1f\x36\x59\x9d\x9e\x79\x0d\xcf\x4d\x2d\x8b\xb3\x83\x17\xba\x41\x60\x10\x68\xc7\x2f\x8b\xef\xa7\xd5\x9f\xab\x87\xcd\xe9\xeb\x61\xe3\xc2\x03\xe1\x13\x05\xb1\x13\x76\xcc\xd5\xd0\xbd\x17\x81\x47\x30\x9b\xd6\x6e\x0c\xb6\x6f\x74\x58\xa8\x10\x01\xf1\x91\x22\xb1\x75\xec\xfb\xdb\x12\x61\x18\x60\x08\x79\x2e\xde\xc1\xf0\x59\x75\x47\x22\xc3\x67\x5c\xd9\xce\xec\x5d\x59\xfc\x98\x54\x23\x45\xc8\x62\x8f\x0f\xe2\x73\x9b\xab\xea\x2e\x91\x98\x32\x5c\x93\xeb\x34\xe7\x59\x8f\x81\x11\x21\xd7\x98\x99\xd9\x3e\xad\xf6\x9b\xc5\x61\x33\xfc\x66\x22\x54\x1c\x8d\xf8\x1a\xde\xd3\xac\x12\xbd\x03\x21\x88\x22\x6e\xa2\xdd\x97\xc5\x07\xaa\x4d\xe2\xaa\xc5\xee\xb4\xa9\x7d\x16\x04\x28\x06\x8d\x5f\x8a\xfc\xe5\xad\xc8\x5f\xa0\x1c\x78\x88\x82\x68\x8e\xb1\xc5\xa9\x1c\xb5\xaf\x39\xc7\x5b\xd0\x98\xa2\x67\x72\xd8\x3e\x20\x7d\x8e\x81\xf6\xfd\xb1\xeb\xbf\x07\xd5\x1e\x16\x3d\xd0\x0d\x6e\xfd\x8c\x45\xae\xb0\xf1\xa8\xea\x47\x44\xd4\xb7\xfa\xe5\x69\xfb\xd5\x5d\x87\xd1\x94\x6a\xd7\x8e\x8f\x23\x11\xab\xce\x7f\x1e\x12\x4f\xcc\x39\x9e\x22\x06\x81\x5e\xc2\x0b\x3f\xc3\x89\x67\x93\xb2\x93\x60\x41\x84\x3d\xcd\x2f\x7f\xc3\xd7\x4a\x75\x7f\x25\x42\x5b\x44\xda\x14\x8f\xc6\xdc\x10\xce\xb0\xb8\xba\xfa\xb6\xc8\xe0\x2f\x9e\xab\xd2\xa5\xe3\x45\x12\x50\xbf\xe7\x9e\xda\xa5\x93\x78\x49\x24\x22\xa4\x7d\x8e\xdf\xd8\x99\xe5\x67\xbd\x4e\xa3\x3d\x43\x24\x82\x49\xe8\x0b\x6d\xc7\x62\xa1\xde\xd3\xea\x56\x7d\xcb\x0d\x07\x29\x2d\xd0\xef\x89\xcf\xe4\xce\x27\xc3\x39\xe5\xca\x84\xa4\xe7\x35\x68\xc8\x2b\x58\x75\x92\x36\xee\xe1\xb8\xf4\xb9\xe9\x2f\x7e\x4c\x5f\xca\x5b\x0b\x6f\x87\x89\xc0\xe3\x74\xc0\x5e\xf3\x33\x0a\x63\x77\x0a\xed\x54\x3b\xb0\x6b\x60\xd7\xfe\x70\x55\xcf\x00\x90\x85\x60\xc6\x0f\x70\x8e\x23\xb2\x32\xd9\x63\x2a\xd4\x18\xf0\xa9\xe6\x7c\x19\x31\xde\x8d\x2f\xa1\x58\x18\xf9\x3d\x46\x64\xdb\x7d\x7b\x08\x21\xe9\xb1\xfc\xcf\x5a\xa3\x72\xb0\xdd\x77\xe1\x06\x10\x25\x80\x08\x7b\xa1\xfc\x3b\xd2\x7e\x1e\x40\x16\xb9\xda\x95\xe9\xdf\xf0\x3b\x5c\x6d\x75\x9b\x74\xc3\x63\x8e\x35\x55\x4b\xc3\x69\x52\x03\xeb\xb4\x84\x41\x5d\xac\xdf\xd1\xa5\xef\x53\x87\xab\x34\x65\x5f\x43\xef\x31\x7a\x16\xe9\x87\x21\x7e\x93\xf5\xe2\x68\x8c\xfc\xe6\xc9\x25\x68\xa5\x9f\x28\xdc\x24\xce\x85\x7c\x3b\x65\xc3\x82\xa3\xf4\x85\xe1\x8b\xb0\x84\xfa\xb6\x39\xee\x9e\x57\x37\x82\x7e\x66\x30\xb3\x10\x5d\x0b\xc6\x47\xc0\xde\x68\x66\x4b\x5f\x9a\x9c\xbc\x05\x56\x2f\x66\xda\x8d\xa4\x0f\x20\xa4\x4b\xcd\x0f\x4b\x6c\xa3\xcd\x54\x06\xd2\x63\x36\x60\x44\x12\x5a\x03\x52\xb5\x07\x43\x65\x84\x15\x06\x7e\xb8\x21\xd6\xf6\x5d\xd5\x5c\x12\x42\xbc\xce\x55\x37\x96\xe1\x59\x77\x9d\x2c\x2e\xdd\x55\x75\xc3\x63\x23\x05\x80\x8f\x37\x26\x33\x6d\x8f\x2a\x86\x2f\xf8\xae\xc9\x55\xc9\xd3\xea\x1f\x08\x7b\xce\xa6\xf1\x67\x8a\x65\x3f\x5d\x13\x32\x0a\x85\xe1\x8d\x46\xe3\x98\x0d\xde\xf8\xbc\x0b\x25\xa9\x17\xa8\xce\x27\x58\x54\x95\xc1\xe6\xb9\x83\x81\x51\xb1\x5a\x97\xce\x31\xfa\x59\xd9\x40\x52\x4e\x0c\xef\x2d\x57\xc7\xb2\xc8\x67\x0b\xa2\xdd\x50\xca\x5c\x52\x03\x3f\x04\x72\xbd\x3c\xdd\x30\x80\x49\x4f\xc6\x34\xc1\xf5\x79\xa8\x8b\xcb\x65\xb4\xdd\xc8\x38\x0e\x42\xea\x80\x8a\x96\xb7\x60\xb0\x16\xe2\x58\xc4\xbd\x66\xf6\xb0\x32\x63\x52\x4e\x77\x45\x79\x5f\x64\xaa\xf3\xd1\xe7\xd6\x13\xf3\x8d\xf0\x73\xdd\xb9\x32\xe9\x14\xa1\x25\x59\x28\x3d\xe5\xe6\x82\xa8\x97\xd7\xad\x9a\x8e\x60\x81\x3f\x48\x01\x5a\xcc\xdd\xff\x7f\x9f\x96\x89\x88\x0e\xf5\xb0\x07\xac\x33\x23\x1d\xf1\xf1\xb2\x60\x52\xe2\xc6\xbf\x2b\xe1\xcb\xe6\x61\xeb\x1a\x74\x64\xe2\x03\xed\x53\xb1\xb8\x80\x0f\x7d\xc7\x96\x4c\xa2\x04\xe9\xf0\x96\x65\x9a\xbf\xfd\x3d\x72\xe1\x64\xc2\x0c\x9d\x88\x71\x60\x0a\xfd\xdb\x64\xca\xda\x61\x5c\x04\x08\x47\xfa\xcf\x7f\xbe\x7f\x19\xc6\x8c\x92\x2b\x23\x72\xd1\x37\xd5\x3e\x4d\x31\x6a\x52\x86\x34\xb2\x9b\x36\x92\xd2\xe1\x57\x43\xd0\xf0\xf8\xa5\x48\x0a\xc2\xef\x70\x7d\x36\xa1\x68\x16\x23\x73\x43\x24\xc3\x2e\xac\x27\x2e\xa7\x6d\xdb\xbf\x5c\x84\xe3\x1f\x53\x3e\x48\xdb\xe2\x5c\x94\xea\xa1\x78\xf9\x25\xba\xb8\x19\x73\xb1\xb4\xd7\x08\x20\xb4\x7b\x7d\xf9\x02\xdf\x7b\xde\xe7\x59\x1c\x99\x54\x11\x41\xd5\xa5\x7b\xb3\xeb\x60\x61\x63\x3c\x42\x7b\x34\x36\xb4\xe0\xdc\xd4\x4e\x4f\xef\xb1\x7b\xd3\x3a\x08\xc0\x31\x1e\x40\xae\xee\x53\x5d\xcf\x99\x6a\xcd\x63\x88\x1c\x52\xc0\x76\xa1\x8c\x87\x28\x8f\xfa\x98\x88\x72\x1d\x30\x9f\x58\x2b\x37\x9a\x73\xa3\xf1\xcb\x0b\xac\xec\x56\xa9\x03\xe5\x29\x3f\x48\xb0\xe0\xb3\x6c\x5d\xab\xba\x0d\x1d\xa0\xc4\xb4\x42\xd6\x8d\x08\x8d\x0f\xf9\xb8\x7d\x3a\x2d\xbf\xfe\x69\x44\x53\xdd\xc1\x80\x26\x48\x56\x6f\xa0\x41\xd6\x5e\xcc\xfa\x32\x2a\x60\x21\xd2\x5c\xb5\xef\xe4\x50\x34\x65\xd7\xd8\xab\x42\x1d\x22\x3a\xa5\x32\x9d\x16\x16\xcb\xd4\x5a\x80\x47\x7e\x99\x3c\x38\x89\x3b\xbf\x64\xb5\xfa\x62\xd2\x83\x41\x38\x9a\xac\x8a\x68\xd3\xf8\x03\xe7\xb4\xee\xda\x92\x1d\x1f\x9b\x59\xeb\x13\x83\xa0\x68\x44\x31\x6d\x77\xb7\x59\x1c\xbf\xee\x37\xa7\xe3\x7e\xf1\x74\xb8\xdb\xec\x5d\x0e\x4f\x51\x69\x34\x5e\x2e\x4d\xfe\x56\xed\x7b\x91\x6e\x63\xa2\xdd\xa8\x38\x22\x58\x84\xb3\xa2\x8f\x8b\x07\xe7\xf0\x2b\x46\x24\x7e\xd3\xe3\x20\xc1\xf6\xf3\x3c\x9f\x62\xc2\x73\x3d\x5f\x3b\xa8\x17\x4d\x69\xfb\x34\xe9\x88\x53\x68\x38\x9b\x55\xe2\x7b\x52\x39\x11\x83\xfc\xad\xef\x74\xea\xaf\x9a\x68\x23\x34\x89\x29\x86\x0b\x94\x3d\xca\x5f\x71\x11\x59\xa9\xec\x73\x9a\x8f\xb3\x3b\x4a\x10\x85\xb1\x15\xbe\x18\x0b\x49\x6b\x67\xc4\xf6\xa9\x9d\x10\xdd\x28\xa6\x10\x82\x8a\xd4\x99\xc7\x02\x59\x7a\x66\x37\x1c\x25\x35\x0d\x4d\xb7\xc7\x03\xaf\xea\x3d\x97\x70\x97\xe6\x55\xfa\xda\x6d\x76\x0a\x42\x65\x14\x54\xfa\xda\xba\x09\x50\x33\x50\xdb\xd5\x62\x77\x83\x70\xb8\x55\xf5\x96\x9e\xd2\x71\xac\x3a\x0a\x0f\xfd\xc4\xa7\x16\x0b\x3c\x6a\xba\x9a\x3f\x5c\x93\x85\xf5\x14\x27\x0a\xfe\xff\x33\x39\x2b\x31\x6c\x28\xff\x3f\xd2\xde\x6c\xb9\x71\x1c\x5b\x17\x7e\x9d\xba\xe8\x0b\x02\x20\x09\xf2\x52\x96\xe5\x4c\x77\x7a\xda\x92\x32\xb3\xea\x74\x74\x28\x30\x2c\x58\x6c\x53\xa4\x36\x07\x0f\xf5\xf4\x7f\x70\x01\xe0\x24\x3a\xb3\xcf\x7f\x62\x47\xec\xec\x32\x41\x8a\x23\xb0\x86\x6f\x70\xac\x35\x8f\x97\xb8\x4c\x00\xdc\x78\xc2\x55\x6c\xd5\x53\x8a\x5d\x03\xe7\x3d\xd4\xcd\x68\xe1\x04\x92\x44\xc8\xe6\x7f\x7c\xd8\xec\x6f\xef\x37\xbb\xc7\xbb\xeb\xd9\x69\x92\x94\x91\x41\xba\xeb\xa6\xb2\x37\x64\x68\x7b\x2f\x4f\x91\x40\x80\x7a\xef\x83\x21\x5e\xe8\xc9\x58\x8b\x48\x5f\xa0\xd4\x20\xcd\xd6\x2a\x52\xda\xa5\x79\x2a\x0d\xa7\x02\x60\xc4\x59\xce\xbc\x8a\x46\x5c\x52\xa9\x47\x19\x3f\x30\x12\xa1\xe4\x81\xc3\x1e\xec\x5a\xf9\xeb\x17\x1f\x18\xe1\x46\xfa\x08\x73\x2c\xc6\xd8\x6d\x63\x14\x7b\x55\x67\x57\xe0\xb1\x91\xa1\x17\x80\xef\x06\x70\x49\xc6\x95\xec\xb1\x25\xfc\xe2\xe9\x45\xa9\xb5\x30\xcb\xf1\x3d\x6c\x5c\x30\xd0\xad\x6d\x37\x65\xe5\x95\x0c\xff\x18\x94\xe3\xba\x5d\x8c\x44\x74\x9c\x35\xde\xbd\xb0\x42\x77\xa3\x38\x31\xd8\x4c\x68\xca\x6f\xf0\x61\xc3\xfe\x85\x28\x0d\x38\x4b\xb0\x8f\x58\xb7\xa7\x93\xcb\x06\x7d\x54\x0b\x3c\x49\x95\xc2\x47\x31\x26\xa0\x4c\x20\x94\xc0\x53\xa6\xc6\x35\xc3\x41\xe1\x63\xe9\x83\x00\x9e\x0a\xe2\xe0\x00\x0b\x4a\x9e\x2a\x80\x44\x68\xcc\x87\xee\x3e\x74\x26\xc6\x18\x49\x48\x89\x4d\x21\x5e\xb2\x3c\x5f\xe5\xf9\x9f\xab\xdb\x3d\xca\x8f\x0c\x35\x59\x48\x89\x35\x7e\x36\x59\x91\xd5\xc7\xa7\x1f\x1b\x9b\x17\xcf\x1a\x7e\x90\x12\x2b\xb4\xf6\x65\xbb\x1e\x87\x22\x20\x82\x54\xdb\x98\xaa\x2f\x88\x80\x88\x18\x2e\xa8\xc2\xe5\x00\x36\xdf\x7e\x2a\xcb\xfc\xba\x1f\x12\x1b\x44\x66\x37\x50\x37\xec\x50\x83\xa8\xd4\xb1\xdf\xa6\x01\x63\xe6\x93\x78\x01\xcc\x0c\xfe\xcb\x28\x6f\x5e\xe9\x9c\xfd\xe7\xf2\xe7\x26\x29\xc3\x6a\xda\x92\x81\xdf\x24\x1e\x9c\xef\xa7\xac\xee\xde\x2e\x3b\x9d\x91\xb4\x66\x1d\xc0\x0a\xf0\xab\x30\x48\x2d\xc5\x80\x8e\x00\x8d\x46\xd6\xd6\x89\xe3\xd7\x45\x01\x50\x51\x24\x5c\xb3\xec\xa9\x7c\x81\xd3\xb2\x81\xaf\x0a\x40\xa7\x71\x3a\x48\xce\x5f\x09\xf5\x02\xc5\xfc\xe5\xd0\xdd\xe1\xac\x30\x90\x68\x32\xf1\x5a\x5f\x43\x81\xd6\x40\x6e\x3b\x04\x32\x11\x3e\x3c\xbf\xf1\x66\x27\xbf\xfa\xfc\x20\xe2\x78\x7a\x88\xb2\xb6\xea\x61\xfb\x45\xc5\xfc\x6e\x6c\x6c\x99\x12\x07\x6c\x31\x7c\x26\xeb\xaf\x02\x30\x82\xc4\xc4\x67\x00\x4e\x08\xd8\x5b\xe8\xba\xcf\x75\x5c\x59\x34\x81\xb2\x0e\xb0\xf6\xd2\xef\x9d\x7c\xc0\x42\xe5\xc2\x04\x90\x52\x97\xcf\xbb\x15\x92\x4d\x6f\x91\x21\x44\x10\x37\x7b\x75\x7f\xc5\xce\x17\xba\x97\x64\xc5\xa8\xf8\xf0\x8f\xd9\x4e\xb1\x11\x3d\x61\x6e\x41\x93\xf5\x97\xe9\x6a\xe2\x0f\xc2\xb5\x53\xd8\x83\xba\xee\xad\x64\x55\x60\x58\x4c\xe9\x70\x79\xdd\x24\xf7\x4b\x0d\xec\x6e\x0f\x21\x11\xf3\x78\x45\xaf\xba\x19\x60\x86\xdd\x33\x61\x40\x9c\x0b\x65\xdd\xc2\xcd\x20\xa7\x30\x3b\x4a\x98\xc6\x28\xee\x09\xe8\xc6\xd0\x58\xa1\xa0\x49\xfd\xce\x84\xd2\x60\x79\xaf\x90\x16\xde\x53\xf7\x1b\x34\x4d\x65\x6f\xff\x39\xb5\x5a\x9d\xfd\x8a\x09\x09\x8c\xd2\x4a\x53\x41\x7d\x44\xa5\xef\xd9\xb3\x8b\x78\x84\xa5\x14\x68\x8e\x87\x1a\x40\x1f\xc4\xb8\x7c\x6c\x22\x61\x6d\x21\xad\x3c\xe2\xfe\xd8\x63\xf4\xbd\x47\x5d\x37\x46\x46\x86\xfb\x08\x5e\x95\x85\xc6\x9a\x68\x17\xc4\x8f\x2c\x68\xfd\x58\xad\x52\x3e\x2d\x72\x7c\x2f\xac\x52\xaa\xff\xc9\x38\xb4\x52\x18\xa2\x69\x84\x3a\x62\x0d\x7a\x76\x90\x38\xe2\x6c\xd0\x41\x46\x99\x03\x91\xdb\x81\xe3\x55\xc4\xc4\x49\x12\xa5\x7d\xfe\x98\x9d\xda\xd3\x97\x4a\x28\xcf\xdf\xf2\x83\x04\x33\xa9\xcb\xcf\xab\x57\x40\x82\x78\x17\xee\xf4\xdb\xbb\x20\x70\xdc\x14\xec\xa2\xd4\x91\x8f\x66\x3f\x8c\x4b\x57\x95\xbc\x75\x9d\xdd\xf9\x6b\xb9\xb0\xd0\x19\x1e\x68\x44\x79\xdc\x3e\x7e\x9f\x24\xb0\x86\xab\x30\x1d\x5c\xfc\x0e\xe7\x5c\x14\xfd\xf2\x66\x12\x6a\x7d\xa3\xb5\x55\x4d\x7d\x34\xb3\x93\x49\x52\x4b\xc3\xd7\xa0\xbc\xa5\x78\xf7\x57\x6d\xd3\xba\xfa\x58\xb6\xb9\xde\x1f\xab\xf2\xed\xb1\x58\x35\x0d\x9c\xce\xcd\xbe\xf4\x41\xf8\xbe\x7c\x68\xf3\x89\x9f\xb2\x0a\x4c\x1a\x13\x14\x9b\x1a\x5b\x80\xab\xc0\xe8\x90\xc9\xd0\x85\x09\x08\x69\x98\x7d\xf6\x5a\x0a\x04\x2d\xfd\xb5\xbe\xba\x1d\xaf\x69\x06\x62\x95\x5a\x65\x1d\x6b\xee\x8f\x1a\xa5\x57\x60\xca\xcf\x3a\xbc\x06\xa4\x35\xcc\x35\x6d\xa1\xad\x41\x8d\x13\xe9\x40\xdd\xd9\x51\x59\xc0\x00\x00\xe6\x1b\x9b\xaa\x2a\xab\x69\x37\xcb\x18\x66\xeb\x74\xb7\x77\x37\x9e\x1d\x82\x5b\x48\x10\xa4\x06\x67\xa8\x06\x51\x0e\x58\x98\xb2\x96\x83\x93\x58\x8b\x04\x84\xc5\x23\x77\xc5\xc9\xdb\xb9\x88\xa9\x21\x01\x25\x01\x92\x4b\xaf\xaf\xae\x7f\x8c\x6e\x02\x09\x58\x4a\x31\x2a\x73\x51\xf5\xe6\xbd\x01\x74\x7b\x98\xee\x1e\xb2\x08\xc3\x9d\xee\x1e\x6f\xaa\xf6\xec\x8b\x0c\x56\x9d\xc9\x0d\x8a\x89\xed\x37\xd4\xc7\xb6\x39\xf4\x86\xce\x8a\x04\x9c\x52\x0c\xa2\xdb\x22\x53\x65\x55\x5c\x55\x00\xba\xa7\x9f\x91\x80\x47\x8c\x8e\xbd\x91\x2c\xcb\x69\x69\xe2\x22\x01\x4f\x63\x2c\xa4\x1f\xce\x50\x99\xb2\x3a\x0d\x2f\x4c\x97\x79\xfc\xcc\x9a\xe3\xd6\x26\xca\x97\xd2\x3e\x4b\x69\x08\x09\xb8\x10\xb1\x95\x75\xd5\xab\xba\x2e\x55\xd6\xe5\xa0\x9f\x80\x1b\x26\x73\xfc\x05\x64\x7b\x7e\xa6\xd2\x52\x2d\xd7\xfb\xf5\x55\x7f\xa5\x40\x10\x1b\x28\xb4\xf6\xea\xac\x8b\x27\x95\x50\x85\x5a\x12\x7f\x5d\x89\x42\x14\x62\x08\xf5\x48\x90\x08\x2d\x64\xef\xfc\x53\x0c\x7a\x01\xc3\x2f\x27\x3a\xc2\x77\x4f\x8f\x68\x27\x37\x18\xf6\xf9\x8f\x86\x04\x69\x62\xbb\xae\x8e\x6c\x7e\x93\x55\x75\xe3\x5d\x33\xba\xcd\x10\xd0\x1e\x82\xa5\x33\xe3\xff\x2e\x82\x04\x4b\x8c\x36\xbe\x59\x7b\x6d\x14\xbf\x59\xb2\x00\x6d\xa3\x6d\xf8\x3d\x43\xc4\xaf\x73\x91\x9d\xfa\x91\x29\xc3\x37\xb8\xb6\xf6\x22\xfd\x9f\x21\xc2\x3e\xf1\xb3\x38\x8f\xb1\xb2\xdd\x06\x83\xfe\x32\xeb\xb2\xd0\xc8\x6d\xab\xa7\x8a\xc2\xd3\x3b\x80\xcd\x0a\x4b\x54\x44\x1a\x99\x16\x1f\xd6\x7c\xb2\xfe\xc3\x2a\x58\x8f\xa6\x3f\x12\x28\x16\xe2\x9a\x89\x0c\x6d\xe4\x1e\xff\xf1\x89\x8f\xf0\xff\xe3\xbf\xfd\xef\x45\xa1\xab\x94\x6c\x26\xb0\x22\xbf\x1d\xa8\x0c\xa6\xfc\x21\x63\x7c\xd6\xbf\x7c\x48\xdd\x45\x37\xf8\xc8\xb5\x7d\x2b\xd6\x65\xde\xed\x59\x5d\xfa\x8c\xcd\xf7\xd4\xa1\x77\x2b\x77\xdd\xc3\x7e\x65\x9d\xbd\x94\x10\x19\x6c\x00\x7f\x81\xd3\xf8\x85\x04\xae\xb1\xa3\x27\xad\x95\x42\xd6\x0c\x2f\x19\xa4\x52\x04\xa3\x09\x16\x09\x4b\x5b\x2c\x40\x82\x9e\x65\x65\x24\x00\x49\x30\xdd\x3b\xf8\x79\xa0\x3f\x8c\xb1\xd6\x47\xaa\x3c\x9d\x45\x05\xfe\x49\xba\xad\x86\x08\x9b\x77\x56\xe5\xfb\x44\xf3\xb8\xdb\x16\x05\xb8\xed\x5b\xab\xcb\x1a\x5d\x88\x17\xc0\xa7\xbf\x79\x5a\x46\xc4\x88\x95\x54\x36\xec\x7f\xf2\x3e\x59\x85\xd3\x91\x6d\x07\xf6\x74\x37\x98\x27\x53\x9b\xb7\xfa\x47\xd9\x7c\x42\xad\x21\x81\x91\x96\x0e\x59\xc1\xf5\x70\xbd\x24\x10\x06\xc5\x82\x7e\xf9\xc8\x49\x00\x31\xde\xdc\xaf\x20\xf2\xe6\x38\x7a\x22\x84\xb0\x18\x5b\x1b\xaf\x16\x0e\xe1\x8a\x62\x4b\x68\x65\x42\x68\x48\x30\x44\x3b\xa8\x5c\x54\x99\xf9\x78\xfa\xf1\x34\xe5\x1a\x10\x42\xe3\x80\x8c\xd5\x7a\xee\x32\x39\x64\xb2\x4b\xc5\x58\x42\x28\x37\x88\x8c\x77\x8b\x0a\xd2\x44\x7e\x95\x0b\x11\x42\x45\x80\x50\x09\xdf\xab\xb7\x6f\xf1\x83\x97\x65\xee\x46\x68\x63\x45\xee\x70\x4b\x6f\x88\x36\x84\xd9\x84\xb0\x80\xe8\xd0\x4b\x11\x0f\xbc\x16\xab\x06\x86\x00\xbc\x7b\xf1\x3e\xbb\x01\x4c\x13\x14\xc8\xfa\x73\xb3\xfe\xcc\x49\x3c\x99\x9d\x6b\x18\x30\xa4\x7c\x9f\xc4\xfb\x5d\x86\xb7\xd8\x46\x9c\xfe\x95\x24\x21\xb3\x77\x2c\x53\xe5\x53\x2e\x9a\x6e\x9d\xf2\xfd\xd4\xe9\x54\x4d\x22\x19\xa0\x86\xe7\xfa\xaf\x9b\xf1\xaa\x4c\xe2\x30\xea\xdd\x82\x0e\xcd\xb1\x02\x8f\xb2\x5a\x21\x15\xe9\x46\xe4\x75\x7f\x63\xe2\x88\xa3\xad\xdc\xe1\x60\xb3\x88\x83\x17\xe3\x9c\x5d\x69\x1c\xf1\x84\x4c\xa3\xde\xc7\xa2\xe7\xba\x11\xc2\x19\x57\xdc\x9b\x99\x54\x75\x83\xee\x34\xb3\x63\xf0\x90\xa0\x8e\x5b\xdd\xca\x53\xd6\x6c\xe1\x35\x83\xb7\x21\xf2\xf0\xcd\x20\x42\xb8\xb2\xaf\xf0\xfe\xad\xbc\xce\x4e\x50\xd4\x03\xba\x86\x90\x24\xf0\x6a\x6d\xcd\x4d\x5e\xf6\x73\x3c\x49\x42\xcb\x0c\x51\x6e\x06\xfb\xbf\xf0\xc8\xee\xf6\x16\xa9\xf6\x6d\xd4\xac\x56\xb6\x24\x31\xbb\xdd\x29\xb1\x2d\x00\x2b\xf9\xf0\x68\x36\xef\xea\x78\x5b\x6c\xea\x2e\xad\x7f\x10\xf5\x55\x29\x97\x3f\x54\x92\xea\xc0\x7a\x99\x58\x12\xa4\x6f\x9f\x2c\x0f\x16\xa1\x44\xac\xfd\x63\x95\x3d\x0f\x5f\xa5\xa4\x14\x6d\xd3\xe1\x7f\xdb\xec\x3c\x4d\xdb\x08\x91\x3a\x8c\x3c\x70\xfe\xd1\xdc\x89\xba\xf9\x2a\xf2\xd7\x21\x46\x22\xd2\x84\x88\x53\xfc\x44\x58\xeb\x42\x0c\x37\xf9\xd7\xbf\x07\x1b\xef\xa9\xa1\x37\x1e\x2d\x41\x69\xe3\xf5\xdd\x9f\xbf\x6b\x56\x12\xa2\x02\xa5\x5c\xca\xee\x1a\xf0\x96\xe1\xed\x36\xeb\x54\xa7\x4e\x45\xd4\x7a\x6f\xd9\xe4\xb8\xdf\xac\xc1\x9b\xed\xdc\x8b\xa2\x35\x02\x11\x94\xf3\xf7\x0a\x88\xf1\xb2\x30\xf7\xfd\x8b\x0d\x46\x69\x27\x63\x63\x83\xed\xbe\xec\xd7\x8c\xf8\xb6\x84\x98\xd0\x62\x38\xb1\xff\xf1\xb0\xd9\x8f\x49\xde\x84\x18\x49\x10\x06\xda\x54\x6d\xdd\x40\xef\x02\x33\x6d\x4d\x12\x1a\x84\x4a\x38\xb9\xed\x41\x0c\xe7\x5f\x84\xf4\xab\xe0\xbf\x42\x7f\x67\xe9\x70\x43\x1d\xf8\x80\xd0\x80\xc7\x58\x76\xb6\x5c\x83\x2f\x55\xd9\x9e\x1f\x46\xba\x22\x84\x06\x9a\x60\x3a\x5d\xb6\xdd\x84\xe1\xf2\xbc\x69\x58\x4f\x89\xb4\x05\x4f\xa7\x82\x61\x7f\xb7\xbb\x6b\x83\xf2\xb9\x1b\x49\x79\x84\x37\x1d\xd3\xfc\xaa\xe7\x17\x83\x1e\x81\xad\x09\x65\x94\x21\x98\xe3\x59\x9c\x60\x9d\x97\x05\xc6\x8a\x7e\x5b\x62\x9b\xc5\xf2\xf4\xf1\x5b\x44\x25\xa1\x4c\xd8\x84\x43\x96\x65\xdd\xe0\xa1\x2c\xb5\x74\x76\x13\x43\x66\x7d\xf1\x84\x2d\xbe\x3b\x6e\xc5\xf4\xd4\xc3\xd8\x99\x9e\x67\x27\x8b\x91\x16\xcd\xf1\x4d\x7c\x20\xae\xb9\xa7\x78\xfb\x15\x9c\x86\x40\xa1\x77\x75\xba\x82\xc6\x9a\x6f\x8c\x26\x7d\x1a\x71\x29\xb4\xf7\x6c\x10\x75\x9d\x15\xcf\x2b\xff\x90\xfd\x51\xa2\xc4\xd8\xde\xf4\xfb\x85\xf6\xbb\x22\x34\x66\x36\x05\xea\xe3\xad\x47\x89\x42\xeb\xfa\x9f\x8f\x7f\xcd\x2e\x30\x8e\xad\xcb\xec\xb9\x7c\xa3\x57\x08\xee\xfe\x63\xba\x3d\xa5\xba\xd7\xc9\xc7\x97\x76\x79\x8e\xa0\x9c\xa4\xc2\x51\x8a\xb0\xd1\x78\x0d\xe7\x2e\xef\x2a\x96\x4c\x75\x86\x79\x95\x72\x16\x63\xf5\xc7\x58\x06\xb7\xad\x5a\x0c\x12\x51\xdd\x00\x1b\x72\xe5\xd9\x0b\xac\x21\x07\x59\x65\x23\x6d\xc8\xd9\x39\x88\x5e\x6a\xbf\x07\xf3\x7e\xed\x8b\x53\x84\x72\x45\x71\x1e\x13\x5a\x3b\x9f\xe5\x69\xc9\xd5\x0f\x03\xc0\xca\xf2\x0e\xab\xbb\xdf\xeb\x81\x0a\xbb\x50\x55\x27\x34\x51\xa9\x0b\x23\x9b\xab\x36\xcb\xbb\xcb\x58\xea\x04\xb8\xd1\x29\x55\x28\x57\xd4\x25\x9e\x1e\x49\x44\x68\x1a\x52\x6a\x79\xa2\x1f\xa5\x99\xc5\x91\x34\x8d\x42\xe7\xdc\x86\x6d\xda\xfb\xac\x18\xb4\x4e\x08\x4d\x13\x8a\x4b\xc0\xa1\x86\xc6\x09\xc8\x65\x8d\x6d\x02\x50\x32\x7b\xda\x22\x30\xae\xe8\xdd\x7d\x8f\x5b\x78\x85\xaa\xb6\x8a\xb8\x53\xa8\x12\xa1\x02\x22\xec\x1f\x5b\xca\xca\x6d\xe1\xf3\xa9\x71\x95\x87\x50\x61\x08\x62\xcc\x4c\x76\xae\x3d\x61\xf0\x8f\xcb\xd2\x2b\xa1\x92\x46\x58\x2f\x14\xd8\xc3\xdc\xb5\xf2\xaa\x2a\x5f\x46\x63\xa7\x17\xac\x68\x40\xdd\x3c\xf9\xa5\x12\x67\xa8\x77\x59\xa1\xc0\x2e\x22\xd5\xeb\x48\x42\xb0\x1f\x0f\x88\x74\x10\xb2\xc6\x45\xa8\x17\xdf\x20\x54\x31\x82\x0b\x03\xb6\xdb\xf2\x1c\x99\xd8\xfd\x74\xa2\xb9\x35\x6a\xb1\x35\x8d\x76\x10\x80\x25\x54\xa7\x1c\x17\xdf\x6b\x78\xfd\x92\xbd\x02\x62\x54\xc6\x12\xdf\x84\x6a\x50\xf8\xd9\x1f\x0c\x34\xea\x68\x81\x47\x37\x65\x75\x0f\xdd\xab\x72\xf1\x49\x02\x8f\xad\x39\xfa\x73\x05\x28\x0d\x89\xc0\x1a\x7f\x2c\x90\x04\x21\xe8\x8e\x44\x82\x2c\xbb\x21\x2c\x1f\x8c\x0b\x97\x5f\x29\xd0\x1a\xe5\x86\x37\xdf\xb7\xb6\xf7\xe3\xfe\x6e\xc2\x04\x97\x91\xd5\xc0\x4e\x86\xea\xc2\xb4\xe6\x1f\x8b\xb2\x87\xfe\x10\x42\xe1\xa4\x5a\x16\xf0\xb5\x2d\x74\x05\x7a\x7f\x2c\xdb\x5a\xf4\x09\x2e\x0b\x68\x6c\x73\x3b\x8b\x60\xb4\xf1\xf1\x7a\xd6\x4c\x27\x2c\x88\x2c\x60\xf6\x19\x9a\x35\xe4\xf9\x08\xa2\x45\x58\x90\x0a\x70\xe1\x13\xca\x13\x97\xd5\x6c\x67\x12\xa4\xd8\x27\xb2\xd5\xa1\x07\x78\x73\xb0\xb2\x45\x2d\x7e\xc2\x88\x50\x58\x52\xe9\x3e\x48\xa8\xbd\xbf\x4e\xaf\xfa\xef\x46\x51\x42\x7c\x77\x0a\xd5\xe9\x2c\xde\xed\xbf\x4a\x78\x19\x95\x0a\x09\xc6\xae\xcf\xf8\xb9\xe2\x0d\x61\x54\x6b\x34\x37\x11\x6d\x73\x2c\xab\xec\x6f\xd0\x16\xed\xee\x35\xca\x9e\xaa\xec\x55\x5c\xc2\x2a\xdc\xde\x8c\x48\xe5\xa4\x3b\xaf\xbc\x29\xd1\xee\x3c\x61\x33\xf8\x91\xcc\xe2\xdc\x6a\x68\xfc\x6c\xe5\xcc\xd5\x4f\xbd\xde\x5f\xb2\x14\x5d\xb9\xfd\x43\x69\x6b\x87\x47\xc8\xfd\x2a\xc3\x22\xc2\x61\xb8\xef\x33\x78\xc8\xf8\xfb\x66\x91\xa0\x3a\xf1\x6e\x4e\xea\xe5\x19\x75\x6b\x2f\xf1\x87\x84\x45\x2a\xc0\x17\xea\xf9\x6f\x78\x82\xaa\x17\xb7\x27\x8c\x87\xb6\x64\x8b\x21\xd7\xf7\xdd\x35\x2e\x22\x93\x92\x09\x4b\x48\x1a\xb9\x2c\xc4\xe6\x3e\x59\x31\x54\x78\x58\x42\x00\xd3\xa9\xeb\xb6\x51\x47\xaf\xfc\x76\x09\xb3\x26\x2c\x89\xed\x0a\x8c\x78\x53\x51\xe9\xad\x68\x46\x15\xf5\x7f\x8c\xdf\x91\x34\xa1\xd0\x73\x3b\x46\xbf\x95\xa6\x14\x2b\xb4\xf7\xd0\x08\x9d\xb5\xbe\x08\xc4\x04\xb1\x7e\x29\xd6\x81\x1b\xed\x61\xb1\x06\x31\xa9\x97\x12\x26\x64\x80\x15\x86\x9f\x8f\x77\x37\x61\xbf\xaf\x11\x38\x07\x94\xf2\x3f\xa0\x9a\xc3\xb2\x56\x00\x61\x92\x52\x30\x23\xe3\xa8\x91\xdb\xe8\x4a\x5e\xa6\x16\xb3\x9d\x5d\x46\xe4\xbc\x5c\x6b\x5c\x01\x1a\xd0\x4e\x96\x71\x0b\x42\x0d\x25\x35\x26\x59\x92\xba\x06\x14\x8a\xbf\xce\x8e\xc5\xa9\x48\xc6\xa0\xb4\xeb\xa7\xd9\x08\x15\x27\x38\xe9\x1f\x84\xd6\x5e\x49\xee\x93\xf7\x5c\x09\xc6\xc3\xa1\x2b\xd9\xd7\x9d\x09\x03\x9a\x20\x1c\xec\x24\xde\xf7\x55\x26\xf2\xeb\xaa\x3c\xfb\x09\x9c\x99\x50\x60\x8f\x04\xd5\x24\x26\x87\x26\xd4\x3f\x43\x23\x03\x2c\x1e\xc8\x0a\x40\x3f\x16\x63\x9d\x70\x1f\x8b\x4c\x02\x93\xa5\x94\x21\x0c\x62\x86\x46\xc6\xa2\xd5\xd9\xec\x69\x86\x41\xa2\x7c\xf6\xd7\xad\xfb\xdd\xe4\xbe\x24\x25\x40\x42\x02\x31\x0e\xdc\x6c\xd7\x9c\x12\xe7\x35\x5b\xa1\x06\x80\x33\xf0\x1a\x02\xa3\x90\x80\xc6\x3b\xd2\xc7\x70\x08\x48\x5d\xc0\xad\x93\x90\x86\x09\xba\x46\xe6\x95\xda\xf5\x38\x1a\x12\xd2\x54\xe1\x04\x87\xa0\xe4\x5d\x23\xaa\x71\x42\x1e\x32\xc1\x10\xae\x31\x7d\x89\x7e\x07\x15\xea\xf6\x93\x56\x0b\x68\xd0\x3d\x2d\xcf\xfd\x41\x0d\x0f\xc8\xc4\x3b\xf5\xa6\x2d\x34\xce\xf5\xd3\xa3\x84\x01\x41\x44\x23\xb2\xbf\xad\x1e\x8f\x3f\x46\x48\x88\xf7\x3a\xc1\x29\xef\x26\x17\xcf\x9e\xf9\xb8\x38\x1b\x87\x21\x67\xa1\x57\x07\x3d\xe7\xa5\xd0\xfb\x8f\xf3\x0c\xa9\x49\xc2\x30\xa1\x49\x38\x88\x51\x7e\x52\x68\x0d\x43\x11\xa1\xe2\xe3\xea\xfa\x7a\x7b\xf8\x79\xbb\xff\x7a\xbd\x5d\xfd\x5c\xdd\xd1\x3f\x86\xed\xa8\xa3\x7b\xf5\xd1\x40\x0e\x56\xae\xf5\x17\xb9\x66\x18\x6a\x8e\xf1\xb3\x6c\x3f\xee\xbd\x80\xbe\x7b\x33\xc3\x98\x59\x67\x65\x2c\xe6\x59\xc2\xcc\x02\x0c\x68\x1a\x1b\x85\x71\x12\x21\xd8\xf9\x24\xb2\xe2\x6d\x84\xce\x20\x61\x0c\x12\xc1\x95\xdf\x1f\x1e\x9f\x36\x0f\x9f\xa8\x19\x5f\x86\xe0\x61\x12\xd8\x68\xcb\x32\x4d\x6d\x04\x3e\x5e\xc2\xc2\x04\x28\xc6\x2e\x37\xeb\x4f\x2b\x4a\x9f\x1c\x3a\x8d\x12\xec\x73\x3e\x67\xaf\xf0\x7d\x99\xde\x4d\xc2\x34\x25\xd8\xc9\x39\xb4\x85\xaa\x40\x4f\x25\xff\x66\x8f\x47\x50\x5b\x56\x90\x22\xbf\x16\x59\xfe\x71\x57\x36\x8d\x8f\x23\x42\xc1\x24\x0a\x9e\x9e\xb2\xa2\xf1\xf3\xcd\xe7\x6a\xa3\x7e\xa7\x38\xc0\xda\xf5\xb9\x7b\x07\x67\x55\x8c\x50\xa4\x0c\x0b\xb5\x16\x1b\x3d\xfe\x4a\x76\x1e\xd7\xd8\x0d\x32\x41\x34\x16\x56\xff\xdd\x2f\x4a\x8e\xf8\x8a\xa7\xee\x62\x55\xb3\x3f\xc2\x4d\xdb\x65\x2a\x6b\x31\xf6\xf2\x19\xaf\x43\xa1\x14\x46\x7a\x85\x52\xbf\xba\x8f\x92\xa4\x50\x1a\x8b\xdc\x3f\x8a\x7a\x95\x57\x20\xf4\x47\xf7\x61\x2d\x7a\x51\x29\x12\x2a\xa2\x30\x2e\x74\x7a\xdc\x53\x48\xb2\x1f\x13\x45\x38\xfd\x7c\x29\xf3\x4b\x35\xea\xe5\xa3\x72\x89\x11\x9e\xeb\x63\x6d\x41\x68\xe2\xcf\x4f\x53\xdb\x1c\xc9\xc6\xd4\xf9\x69\x7d\x67\x8a\x99\x9d\xbd\x47\x9a\x09\xe4\x21\x3b\x17\xc8\xf6\xec\xbc\x1d\x2f\x50\xdb\x24\x84\x28\x50\x8e\x8f\xf3\xc3\x59\x37\xcd\x42\xa5\x10\x62\x82\xbc\xb0\xf2\x15\x2a\x5d\x09\x63\x39\x24\x7f\xf4\x5b\x95\x1e\x02\xda\x45\x17\xc0\x6e\x14\x17\xcc\x78\x1d\xc1\x32\xc7\xe6\x60\x3b\x98\x89\xf6\x8b\x03\xa4\xd6\x31\xd6\xd6\x17\x31\x8d\xf8\x0a\x02\xd1\xea\x43\xf8\x14\x82\x16\x88\x1c\x6a\x40\x9c\x86\xda\x87\x3f\x23\x13\x52\xe4\xf5\x9f\xee\x4a\xa1\x57\x85\x76\x6c\xdb\xe9\x2a\x64\xa4\x46\xff\xbf\x5a\x34\x65\x7d\xcc\xee\xcb\x3e\x4b\x8b\x48\x12\x79\xd7\xd9\x55\xb7\x7e\x5d\x02\x81\x49\x44\x84\x45\xdb\x38\xb5\xce\xfb\xf2\x35\x83\xb9\x32\xc4\x6c\x0f\x15\x09\x3d\x24\xdb\x50\xed\x51\xe0\xc4\x6d\xa5\x69\x28\xfa\xd0\xf1\x8b\x38\x4d\x5c\x53\x26\x67\x1e\x51\xcd\xc0\x35\x00\xbf\xfd\xb5\xde\x83\x38\x4d\x9f\x57\xc4\x08\xa8\x41\xae\xe7\x16\x2b\x44\x0b\x8f\x3e\x8a\x88\x41\x0a\xd3\xff\xb4\x42\xaf\xcb\x0a\x70\xe1\xf3\x27\x14\x85\xae\xc3\xec\xaa\xed\x98\x40\x94\xd5\x25\xf0\x86\x44\x51\x62\x9d\x06\xef\xda\xf5\xc7\x14\xfa\xb3\x50\x4f\x9a\x4c\xf7\x51\xa4\x0c\xa6\x8d\x87\x73\x05\x5e\xb0\x66\xd9\xb5\xc3\xed\x10\x07\x56\xfd\xe3\x28\x2a\xbd\x16\xe7\xdb\xc2\x7b\x83\x77\xdb\x68\x14\x72\x1f\x7d\xf6\x5e\xa6\xdd\x06\x30\x48\xa5\x75\x0f\xeb\x49\xb8\x8a\xc0\x7f\x81\x45\x5f\x9e\x93\x22\x2e\x13\xc7\x75\x40\x2f\x4d\x1b\xba\x3f\x9a\x5e\x4b\xd9\xff\x32\xd7\x1c\xd7\x8a\xac\x81\xd3\xa2\x57\xe9\xe8\xad\x8e\xd2\xd8\x3a\xa9\x0b\xad\xbd\x59\xe3\xac\xdf\x3c\x3c\xbb\x34\x31\x48\x74\x2b\xe0\xed\xa7\x70\x86\xc3\x3e\x19\x8f\xd2\xd4\x4a\x37\xaa\x9e\x62\xb6\x15\x0d\x3c\x1a\x2b\x2f\x39\xbd\x92\x34\x95\xc8\x6a\xf9\xd3\x9f\xb2\x88\xb9\x8d\xab\x0b\xd8\x1d\x4b\x1b\x34\x6f\xd1\x93\x20\xbb\xa0\x1c\x91\x48\x00\xc3\x7a\xd4\xa1\x3e\x8a\x0a\xd0\x28\x67\x40\x46\xcd\xa6\xd3\x4f\xee\xa5\x00\x15\x86\xfe\x5e\x7e\x11\xf5\xf7\x26\xcb\xb3\xbf\x87\x8a\x4d\xa4\x02\xab\xf1\x8c\xe0\xe7\x43\x0d\xcd\x01\x5c\xba\x72\xa8\x2e\x2f\x48\x07\x92\x38\x58\xf1\x5d\x29\x0a\xe7\xd9\x3c\xdc\x39\x4d\x22\x8c\x2a\x0f\x59\x8d\x13\x5e\x5f\xf9\x5a\xa1\x4e\xb6\xb8\x14\x14\x1a\x3d\x22\xcd\xa5\x72\xb9\x10\x6a\xc3\x7b\x4d\x60\xcf\xe4\x9b\x9e\x0a\x84\x5c\x85\xe3\x86\xca\x98\x89\x38\x5d\x0e\x22\x88\x09\x76\xce\x57\x2e\xef\x1d\x41\xb1\x48\x64\x82\xc8\xc8\x51\xd1\x00\x85\x45\x57\x95\xcc\x9a\x0a\x1d\xe8\xa6\x87\x32\x31\x41\xa4\x9f\xb7\x19\xf7\xd8\xc2\xe9\xc9\x99\x38\x41\x1d\xb7\x2d\x34\x59\xd5\x27\x31\x91\x49\x08\x72\x40\x0f\xd9\xe9\x5c\x56\xcd\x21\xab\x73\x51\x5c\xd8\x8d\xfd\x8b\x0d\x19\x31\x1f\xfe\x67\xf2\xef\xfe\x28\x9c\x3b\xcc\x53\xf7\x69\xbf\x66\x65\x5b\x1f\xba\x8f\xe0\xd0\x3d\xc1\xee\x35\x3c\x98\xaa\x3c\xe1\x9f\xe6\x5a\x82\xf6\x10\x31\x09\x53\xec\x56\x39\x62\x29\xdc\x2d\x46\x27\x7e\x70\x94\x86\x4e\x00\x78\x65\x4c\x96\x67\x23\x51\xd5\xe9\xdd\x89\x49\xa4\x30\x20\xbc\xde\xdc\x6c\x1f\x77\xfb\xc3\xd3\x66\x7b\xfb\xe8\xe7\x90\x98\xe8\x08\xf5\x3e\xb0\x7d\x2e\xa7\x9e\xe5\x8a\xc4\x54\x0a\x0c\x70\x6c\x24\xd9\xd7\x23\x63\x2a\x55\x60\x0d\xb8\x40\x54\x7d\xf1\x79\xfa\xc3\x4c\x4a\xac\xf8\xa2\x47\x75\x7d\x5c\xaa\x8d\xc6\x0c\x34\x26\x68\x8e\x9f\x6d\x93\xe1\xa5\x4a\x53\xdc\xe5\x69\xe0\x08\xf5\x1a\x25\xd9\x66\xe9\x53\x1c\x06\x29\xa6\x93\xdb\xcd\x7e\x75\xfb\xb0\xb9\x3e\x8c\x65\x76\x49\x1c\x33\x82\x42\x2c\xa6\x02\x70\x9e\x7c\xd3\x2e\x66\x1c\xab\x30\x4a\x06\x17\x01\x2f\x3e\x70\x59\x40\x8f\x63\x00\x86\xab\xf6\x1b\xc0\x79\x62\x76\x47\x62\x1e\xd0\x88\x3b\x05\x21\xe8\x3d\x36\x77\xde\xbb\xef\x93\x89\x3e\xe6\xa1\xc4\x80\xca\x4a\x2f\x76\xd1\xd1\xc7\xde\xb9\x0c\xcd\x06\x6a\xe2\x89\x15\xab\x57\x91\xe5\x2e\xe2\xe9\x41\x6c\x24\x4e\x42\xab\x57\x7f\xb2\xac\xda\xfd\xa5\x56\x48\x37\x26\xc5\xcf\xcf\x92\xd7\xd6\xfd\xae\xdc\x8a\x74\x0d\xe2\x8d\xf3\xb5\x62\x76\x18\x08\xbc\x8f\xc5\xba\xad\x9b\xf2\x04\xd5\x53\x05\xa7\x6c\x50\x11\x74\x03\x53\x62\x94\x83\x9c\x1c\x10\x38\x31\xdf\x1e\x4a\xec\x64\xfb\x78\xca\x39\x93\xcf\x71\x29\x9f\xa4\x14\xb3\xea\x74\x9c\x46\xa9\xa4\x36\x65\x38\x0b\xf5\xe2\x38\x1d\x59\x3d\x51\x90\xf4\x63\x53\x81\xe9\x05\x8a\x06\x4e\xca\xd7\x71\x9a\x4a\x2f\x1a\xed\xe7\x20\xf7\xac\xa7\x77\x21\x05\xe5\x5b\x7e\x57\xed\xdf\x7f\xaf\x85\x99\xb5\xa2\x63\xa1\x02\x04\x5d\xad\xef\xfd\xb1\x05\x30\x8c\x43\x0f\xce\x15\x73\x92\x5a\x4f\xcf\x50\x86\x11\xbe\xb9\xd6\x52\x7e\xc8\x33\x7e\x9d\x89\xc7\x32\xb5\x35\x93\x0a\x9e\xdb\x5c\x54\x1b\xa7\x72\x36\x1e\xec\x30\x5c\x76\xd5\x1f\x7c\xee\xff\xf1\xcb\x67\x2e\x95\xc0\xef\xec\xfe\xf6\xe1\xb0\xfa\x7e\x7d\xbb\x3f\xec\x6f\xef\x37\xfe\xba\x50\x10\xce\x26\x59\x59\xf1\xfc\x58\xc0\x0e\x72\x8f\xa6\x8a\x35\x61\xf8\x7a\xdd\xee\x0e\xeb\x87\xeb\xc3\xfa\xf1\x01\x45\xa5\x0f\xf7\xab\x2f\xb7\xeb\xc3\xc3\xf7\xfb\x2b\xcf\xe7\x22\xb1\x66\x2c\x0c\x7b\x72\x7e\x76\x6a\x4f\x58\xfc\x5d\x08\x4e\x63\x1d\x11\x2c\xab\xb9\x78\x67\x0d\x45\xd3\x56\x73\x49\x38\x12\x43\x14\x60\x69\xcc\x5b\xb6\x8e\x43\xec\xd8\x84\x7d\x4f\x61\x73\xce\xea\x52\x43\x3f\x2f\x18\x48\x03\x2f\x38\xb5\x24\x26\x43\x78\xc0\x8d\x55\x0d\xef\x66\xfa\x1d\x8a\xd2\x4d\x9c\xe6\x08\x0f\x8c\x15\xce\x92\xce\xb6\x3b\x0c\xdc\x06\xc2\x43\x2e\x67\x0e\x2c\xf7\xf3\x3e\x23\x27\xdc\xa0\x4d\xd6\xd5\x9a\x8e\xe7\x67\x4e\x94\x11\x0e\xcc\x74\x85\x09\x4d\x0b\x57\x1f\x5f\xc4\x49\xe6\x63\x13\xe4\xc4\x8f\x36\x32\xb5\x2c\x45\x03\x55\x05\xd5\x1d\xbc\x42\x4e\x26\xf4\x2a\xc2\x69\x90\x44\x30\xe6\x09\x8f\x57\x66\x4e\x13\xa2\x83\x5e\x48\x0d\x9b\x10\xe2\x53\xa8\xcb\xf4\x85\xe4\x54\x08\x88\x3c\x58\xd7\x29\x39\xcf\xef\x24\x35\xa9\x4a\x07\xaf\xd8\x0b\x1f\xec\x79\x88\x35\x59\x43\x39\x63\x1c\xa9\xd7\x7d\x31\xfd\x13\xdc\xc2\xec\xc4\x18\x33\x71\x32\x02\x1b\x8f\xf1\xcc\x84\xb3\xc8\x16\x08\x6d\x53\x6c\x5d\x16\x05\xa8\x45\x20\xfc\xec\x5c\x62\x8a\x00\xbe\xc6\xd9\xff\xed\x9e\x76\xbd\x01\x20\xe1\x2c\x95\x18\x50\xdf\x16\xa6\x12\x8f\xe6\xc2\x3e\x5c\x75\xef\x45\x94\x78\x2a\x09\x2e\x8c\xbe\xc8\xc4\x23\x92\x06\x16\xed\xa7\x5e\xae\x2a\x10\x2f\xfd\x86\xd8\xca\x7b\xd5\x50\x68\xab\xbf\xb5\x38\x35\xf0\x28\x31\x58\xb7\x7e\x85\xba\xa1\xa7\xbc\x27\x26\x2c\xab\x5b\x11\x1e\xc7\x56\xda\x43\x68\x8d\x12\x0c\x37\x65\xe5\x79\x66\x5f\x9d\xd6\xe0\xa7\x9d\x03\x1e\x4b\x6b\x30\x62\xc1\xec\xf8\xfd\xde\xea\xd7\x69\x7a\xca\x63\x1d\xa2\x1c\xd6\x83\x78\xfd\x92\x97\x52\xe4\xfb\xb2\x1d\x11\xba\x09\x8f\x21\xc6\x76\xda\x59\x7c\x94\xed\x42\xd3\x78\xf8\x39\xe0\xac\x7b\x5c\xe7\x97\xfe\x95\xe6\x8a\x06\x38\xfb\xe6\xd9\xe4\xeb\xe1\x90\xa0\xc0\xc9\xcf\xcd\x66\xdf\x4c\x36\x18\x4a\x6d\xdf\xb2\xd0\x4e\x06\x11\xab\x2f\x7a\xfa\x66\x24\xa1\x40\xd7\xd9\x5a\x18\x78\x81\x8f\xd9\xab\x9c\xc4\x02\x17\xa1\xf3\xdc\x4b\x67\x1e\xfa\xf1\x44\x50\x5c\xfc\xbc\xf0\xce\xac\xcc\xc4\x13\x63\x43\x38\x5f\xd3\x1f\xdb\xfe\x4c\xe2\x29\x9e\x06\x16\x91\x7c\x40\x52\x88\xd5\xcb\xa0\xb3\xf3\x4a\x89\xb5\x07\x70\xd0\x9e\x9f\x33\x79\xf3\x4f\xbe\x91\x34\xa2\x08\x6e\xb7\x00\xee\x69\xcc\xc3\x45\x90\x22\x43\xe2\x6c\xdb\x7b\xf8\xb3\x36\x7e\x18\x21\x35\xfa\xc1\x49\xea\xf0\x29\x4e\x59\xea\xfb\xfe\x11\xef\x3e\x99\x77\x99\xb9\x8c\x44\x6a\x29\xea\xa5\xc9\x9a\xde\xae\xc7\x6f\x4d\x39\x7a\x0f\xe4\xe5\x33\xb5\xb8\xaa\xc9\x19\xab\x20\x8c\x7a\x4b\xf4\xf5\xe6\xd1\xef\xa6\x98\x85\xdc\xa2\x30\x40\x5b\x39\x92\xf5\xf4\x6a\x95\xb2\xf6\xff\x1e\xd6\xe8\xd9\x12\x93\x6c\x97\xeb\x84\xd3\xa0\xc7\x6a\x88\xe2\x65\x11\xdc\xcc\x35\xb0\xd0\x52\x54\x76\x8d\xa8\x26\x4c\xd8\xd9\x48\xa0\x42\x10\xa7\x99\x36\xcf\xad\x39\xc4\x09\xe1\xee\xe3\xde\x8d\x42\x8c\xd9\x83\x82\x94\x3a\x46\xa0\xef\xbc\x20\xd2\xc4\x77\x07\x67\x93\x0c\x68\x8e\x9a\x50\x3e\x77\xda\x65\x79\x6f\x98\x4c\xb8\xa1\x0c\xdc\xc4\x88\xec\x12\x6f\xe0\xde\x2d\x47\x89\x97\xf2\xc5\x89\xe6\x06\xe0\x7e\xa6\x61\x4e\xb8\x31\x42\xd9\x53\x71\x0d\xe6\xb2\x70\x56\x9f\xcb\x95\xfa\x24\x00\xbb\xba\x7c\x59\x3f\x8d\x3f\xd4\x84\x10\x8e\x60\xc9\x9b\x0a\xe0\xef\x5e\x43\xb9\xdf\x4a\x2d\xcf\xb2\x82\xb2\x7a\x16\x45\xf6\xb7\x13\xfe\xf1\xdb\x69\xac\x79\xe2\x72\x1c\xe8\xbf\xaa\x84\xa6\xb6\xb4\xd2\xcd\xaf\x37\x22\xcb\xf7\x65\x79\x03\x6f\x6b\x2b\xe2\x39\xec\x6c\x22\xa4\xa0\x7e\x81\xa6\xfb\xf5\x91\xc6\x3f\x49\x58\x6c\x0d\xcb\xad\x92\xd7\x3f\x4b\x79\xa1\x22\x30\xfe\x38\x13\xc6\xad\xf3\x6a\x0d\xfe\xd1\x7e\x1e\xf4\x25\x2c\x09\xc1\xf5\x6b\x3f\xb1\x41\xee\xc6\x40\x4a\x47\xd2\xdf\xbd\x2a\xde\x7c\x5c\x4a\x31\xb1\xb9\x2b\x9f\x71\xcc\x5c\xa1\x77\xf6\xd3\x61\x20\x2d\x72\xc1\xbb\xcb\x6e\x91\x52\x3f\x9d\xb1\x93\x88\x4b\x33\x36\x19\xbc\xe9\x5e\x10\xb1\xa4\x3b\xee\x77\xd0\xd6\xa4\x1e\x9c\x4c\x26\xf6\x10\x66\x79\x40\xe2\x0d\x2b\x1d\x4c\x1f\xfb\xe5\x36\xe4\x73\x03\x62\x6d\x9d\xe8\xac\xd6\x6d\x93\x29\x64\xfd\xec\xfa\x1e\x6b\xc2\xbb\x6c\xdc\xde\x94\xbc\x2c\x9e\x85\xf3\xa0\x38\x65\xcd\x30\x07\x25\x9c\x81\x35\x96\xb3\xe2\x47\xeb\xb2\x02\xd4\x78\x9c\x4c\x6b\x49\x92\x1a\xd4\xc0\x3b\x8b\x2e\xf0\xdf\x8b\xf7\xd9\xc9\x26\x26\x0c\x1d\xbf\xee\x3c\xc5\xd1\x2f\xa6\x2d\x6e\xaf\x94\xd8\xaf\xc2\xd9\xbd\xc1\xd3\xa8\x34\xe7\x67\xbe\x24\x4d\x95\xe0\x43\x0d\xfe\xa0\x9d\x6d\xe2\xec\xc9\x8a\x30\xc0\x86\x2d\x1e\x0b\x53\xe3\x4b\xa0\xa4\x1b\x2a\x43\x82\x8a\x28\xab\x95\xcf\xf6\x12\x19\x59\x9a\xca\xb7\x9b\xaf\x93\x0f\x4a\x26\xda\x12\x8c\x2c\xd8\xb7\x9e\x3d\x79\x99\x72\xb4\xce\x46\xac\xae\x15\x9b\x3c\x74\x2b\xe5\xcf\xac\x39\x7e\xcd\x8a\xe6\xa9\x82\xd7\x6b\xb0\xbe\xaf\x7a\x32\x27\x27\x52\x89\xa8\x2f\x8b\xe3\xd7\x98\x95\xc5\xaf\x94\x35\x49\xa2\x44\x84\xdd\xbb\x3e\x0c\xfa\x63\x39\x49\xf9\x45\x97\x2d\xd1\xdc\x92\x5a\x07\xd9\xd3\xb1\xeb\x05\x49\x20\xb1\x01\x15\x96\xe4\x7e\x42\x36\xa6\x3a\xdd\xae\x1f\xc3\x7e\x5c\x1a\xe2\x8d\xf9\x06\xd9\xdf\xc3\x34\x00\x5a\x5b\xd9\x79\x91\x43\x79\x06\x54\x63\x18\x9a\x2f\x89\x09\x13\xe6\x27\xf5\x1b\x80\x6b\xaf\x2b\xdc\x03\x17\xd2\x20\x61\x78\x43\x6d\xfa\xb2\x29\x9a\xea\x63\xa9\x5a\x92\x06\x92\xd8\x36\x0e\xc6\x5c\x23\x9f\x31\x92\x12\x1a\x32\xcc\xaf\x51\x8f\x7c\xd5\x85\xe6\x17\x32\xef\x13\xcc\xec\xf8\xb1\xa4\xdd\x95\x05\x76\xef\xee\xfd\x77\x0f\xa4\x9b\xab\xcf\x65\x51\xc3\xf0\x2b\xca\xf6\x70\xba\x6f\x65\xae\xba\xde\x4e\x8f\xa8\x19\x96\xd5\x36\xb5\x12\x67\x2c\xfc\xff\x12\xcc\x9c\x52\x4e\xf1\xbb\xdf\xdf\x6e\xb6\xc4\x2a\x0b\xfa\x1f\xa5\xa9\xc6\xb6\xdd\xea\xfa\xc7\xed\xee\x71\x7b\xd8\x7f\xdd\x6e\x36\xfd\x46\x25\x52\xab\x21\xb6\xde\x4d\xbf\x8d\x94\xd1\x04\x6f\xc9\x49\xbc\x3b\x6d\x84\x11\x66\xca\xcf\xef\x29\x8b\x12\x29\xa7\x46\xaf\x77\xbd\xcf\x9f\x07\x7d\xcd\x4e\x96\x19\xeb\x6b\x72\x6e\xeb\xa3\x25\x1d\x2e\xb2\x02\xd2\x30\x8a\xb0\xe1\x30\x6d\x0f\xae\xbb\x68\xe1\xb7\xa2\x4f\xb3\x5e\xc8\xec\xc8\x51\x04\x28\xae\x5a\x9f\x61\x70\x29\x9a\x46\x95\x69\xa4\x55\x8f\x76\xec\xa6\xda\x89\x2f\x22\x49\x63\x9e\x68\x0b\x02\x2d\x5c\x39\xec\x0a\x36\x16\x6c\xad\xfb\x31\x32\x42\x70\x92\x1c\x9b\x21\x4d\xa7\xf5\x94\x13\x6a\x45\xd2\x44\x96\x7f\x7c\xa9\xca\xb7\xe6\xe8\x84\x4d\x0e\x7a\xf4\x73\x5c\x70\xe9\xce\xa6\xbb\xbf\xbb\xa6\xac\xc4\x73\x97\x9f\x8d\xcf\x89\x2b\x0d\x23\x92\x96\xa5\x3e\x83\xf1\x13\x72\x9a\xa4\x14\xab\xef\xf7\xe2\xfd\x76\xf0\x45\x21\x69\x4a\x1c\x6a\xa8\x57\x84\xfc\x51\x76\x33\xd7\x35\xd4\xaa\xca\xce\xa3\x04\x36\x15\x49\x80\xa0\x15\x9b\x8d\x7c\x5f\xd0\xdf\x72\x03\xa5\x34\x51\x5f\x57\xc7\x8e\x77\xd3\x7e\x32\x47\xa5\x2a\x15\x18\x52\xae\xd7\xfb\xaf\xa3\xa4\x25\xd5\x3c\x41\x2b\xa7\x7b\x71\x12\x57\x30\x45\x58\xa4\x3a\xb5\xce\xa4\xf5\xf8\x3b\xd6\x22\xc6\xa4\x41\x89\xe2\xaa\xfd\xf8\xe4\xe7\xb4\x52\x98\x51\x7d\x13\x45\x53\x95\x0d\x28\x64\xc3\x90\x5f\xf7\xdd\xfd\xbe\xda\xca\x22\xd8\x98\x65\x96\x1b\xa4\xc0\x6c\x55\x6a\xfd\x78\xfb\xe0\xbc\xc3\x50\x05\xee\xe9\xeb\x6a\xb7\x39\x04\xfe\x2c\x81\x4b\xa4\xeb\xfd\x84\x6c\x2d\xce\x96\xba\x32\x9b\x01\x44\x10\x6b\xec\x22\xa3\x98\xab\x7f\x52\x82\x50\x1d\xf7\xb6\xb8\xdd\x84\x89\xa5\x92\xa1\x5d\x21\x28\x91\x86\xb9\x20\xa9\xa7\x81\x7e\x8a\x5b\x9a\xde\x18\x41\x45\x62\x85\xd4\x4b\x51\xf5\x75\x5d\x41\xa5\x90\xca\x63\xed\x4f\x12\x2a\x84\x8b\x4e\x67\x0b\xc1\x12\x8e\x35\x80\xdd\x7e\xb5\xdd\x7f\x7f\xf2\xfb\x32\x29\x83\xd8\xaf\x0c\x07\x09\x4d\x4f\xd6\x2a\x86\x21\x1a\x65\x03\xac\xf0\x10\xfa\x04\xf6\x71\xb2\x88\x41\x61\xdf\xca\x4d\x5e\x7f\x1d\xf6\x9b\xd5\xfd\xe1\xe9\x71\xbb\xbf\x7d\x7c\xf0\x83\xb8\x96\x58\x03\xba\x6f\x94\x45\x2d\x64\xa7\xcc\x91\x1d\x67\x37\x35\xa1\x4a\xdb\x5a\x04\x02\xe1\x3f\xf3\xfb\xbd\x94\x70\xff\x6f\xb6\xfa\xdf\x88\x00\xb5\x77\x3e\x5b\xde\x1f\xe0\xdd\x4d\x8f\x7b\x91\xf9\xb6\xb8\x48\xd3\x08\x1b\xde\x98\x0b\x6d\xcb\x17\xec\xd3\xba\x6d\x22\x08\x53\x57\xb2\xbe\xad\x7b\x92\xe4\xec\x01\x08\x12\x60\x32\xdd\xbd\x10\x5b\xac\xfe\x4e\xa2\x69\x32\x5c\xc4\xc2\xd2\x28\x44\xa4\xd3\x64\xac\xc1\x78\xf5\xb1\x08\xb2\x12\x82\x53\x14\x06\xee\xf2\xb9\x95\x69\xa0\xb2\x74\x83\xfc\xe3\xbe\x37\x4b\x22\x42\x08\x8e\xa9\xd6\xc1\xea\x6a\x4e\xca\xeb\x42\x12\x89\xa5\xbc\x2d\x48\xec\xba\xf4\x9f\xbb\x90\xd2\x36\x29\x85\xd6\xff\x29\xb3\xa2\x0b\x9f\x0e\xf0\xfa\x89\x34\x04\x11\x8a\xa7\x08\xc8\x39\xe7\xe2\x63\xa2\xe5\x4a\x84\x8e\x24\x58\x4d\x22\x6d\x3b\xd1\xfd\x06\x6e\x45\x1f\x3c\x6d\xcc\x5b\x42\x4f\x2f\x52\xcb\x04\x53\xec\x07\x50\xa2\x3e\x3a\xef\x8e\x9e\x40\x25\x80\xc5\x16\xc2\x20\xaa\xb9\x9c\x0e\x11\x10\x5a\x4b\x22\x4f\x40\x58\x97\xb9\x03\xdc\xba\x32\xa2\x30\x11\xc7\xc2\x14\x14\x0d\x54\x6e\xed\xf0\x87\x36\x5a\x87\xd6\xbc\x2e\x2f\xdf\x76\xdd\xc5\x5f\x41\xbf\xd8\xca\x20\x22\xa8\xa4\x68\x4b\x3c\x57\x6d\x9d\x15\x50\xd7\x3b\x14\x64\x18\xc6\xc4\xf8\x80\x9e\xae\xf7\xe3\xe9\xb2\xfb\xbb\x74\xf3\xf1\x43\xa9\xa1\x5b\x16\xac\x22\xf5\xa8\x8a\x2b\x83\xd8\xe2\xc8\x7d\xea\x3b\x41\x57\xfa\x50\x58\x06\x5c\x12\x31\x14\x19\xab\xc7\x1e\x69\x2d\x83\xc4\x66\xcf\xf8\x79\x79\x85\x97\x7e\xa3\x56\xd8\x0d\xbb\x2b\x9f\x9f\xca\xfc\x03\xf9\xbd\xb3\x16\xdd\x6f\xc8\x95\x92\x44\x80\x77\xf7\xe0\x45\x6f\xc6\xba\xf6\x7e\x4c\xac\x64\x6f\xeb\xba\x42\x9a\xf6\x54\x63\x81\x48\xaa\xad\x17\xcd\xb3\x38\xc1\x97\xcc\x34\xf7\xe2\x7d\x2c\x40\x4c\x24\x8b\x43\xe4\x65\xfe\x4f\x9b\xa9\x97\xef\x45\x97\x03\x89\x8f\x31\xe0\x41\x32\x88\x91\x57\x2d\x6d\x65\x63\xc8\xa0\x64\xc8\x84\x2b\x34\xa8\xb2\xd0\x5f\xb3\xe7\x23\xd4\xcd\x55\xa6\x7b\x0b\x74\x1c\x82\x11\xd0\xed\x93\x72\xe8\xc1\x42\x8b\x4a\x2f\x72\xab\xda\x0b\x76\x8d\x0c\xe3\x18\x51\xf7\x3d\x78\x31\x78\x97\x8d\x72\x88\xc7\xd9\x42\x22\x43\x21\x22\x1f\x3f\xfb\x29\xa1\xfb\xea\x66\xa9\xa3\x8c\x12\x83\x35\x1b\xcb\xc5\x5e\xa1\x30\x90\x03\xc9\x0e\x92\xab\x6e\x6c\x1c\x87\xda\xa1\x80\x30\x36\x5a\x5f\xc2\x26\x65\x1c\x27\xc2\xf5\x74\x11\x07\x3c\xc1\x33\x4c\xbe\x19\x19\x27\x82\x2b\x64\x03\xc8\xac\xb1\xd4\xdf\xc7\x8b\x25\x46\x72\x16\x90\xc1\x3e\x12\xcd\xdb\xaa\xc3\x7c\x4c\x68\x9d\x73\x5d\x4a\x7f\x21\x72\x30\x1b\x2d\x12\x8c\x9a\x57\x75\x36\xe6\xcc\xcb\x24\xb1\x4d\x05\xe4\xa0\xbd\xdf\x00\xfc\xec\xe9\xb9\xb3\x8b\x4c\xa4\x15\x13\xb7\x88\x5f\xfb\x5d\xde\xcf\x13\x5d\x99\x06\xca\x73\x48\x0a\x3d\x6b\x0c\x4e\xcf\x28\x4d\x13\xec\x3d\xfa\xe2\xde\x53\x95\x9d\xca\x4a\x67\xce\xd0\x63\x79\x26\x94\xa9\x21\xb6\xed\x88\xd3\xad\x07\x83\xb8\x8d\x22\x65\x98\x5e\x69\xf9\x72\x3d\x99\x0c\xa5\x4c\x23\x9c\xc7\xfa\xc8\xda\xd6\x6e\x7e\x87\xe9\x93\x52\x49\x6c\x04\xdd\xdf\xae\xbf\x61\x93\xf8\x57\x10\x4d\xa9\x68\x8c\xc8\xa9\x75\x0e\xa2\xfa\x91\x81\xa7\x2d\x4b\x4d\x00\xe7\xc1\x97\x2c\xcf\x6f\xa0\x8f\x9a\xa5\x66\x71\x12\x0d\xcf\x70\x57\xe6\xaf\x9f\x94\x5a\xa4\xe6\x31\x95\xd8\x5f\x2f\x9a\xfb\x8f\x71\x71\x49\xea\x84\x24\x93\x48\xe9\xec\xa4\x5d\x96\x6f\xa1\x4e\xbc\x09\x86\x97\x77\xed\x15\x6a\x3f\xdb\x23\x95\x5e\xa7\x16\x4d\x20\x7c\xd6\x57\x95\xa7\xdb\xf9\x37\xa8\x8d\xc1\x7a\x49\x59\x3c\xc0\xdb\x5d\x29\x2e\xb0\x2e\x6e\x1c\x84\x01\xe6\xba\x7f\x8a\xb6\x6a\x4f\x88\xae\xdf\x6c\xd7\xd4\x07\x8e\x12\x24\xc1\x67\x79\xdf\xbd\xfb\x53\x97\x18\x22\x0d\xd1\xca\xf8\x92\x97\x55\x64\x5d\xc2\x71\x49\x43\x29\x7e\x98\x7f\xae\xbe\x8f\xf7\x57\x01\x15\x08\xd5\x5c\x35\xb9\xa8\xfb\x3f\xb2\x00\xcd\x14\x70\x25\xb8\x12\x4d\x93\xc3\xe3\x50\xe1\x54\x01\x58\x78\x67\x05\xb5\x6a\x67\x65\x6d\x15\x40\xaa\xbc\xb4\xa5\xff\x1b\x71\x36\x05\xcf\x68\x10\x8c\xdc\x89\xf5\x78\x1f\x42\x54\x1a\x7b\xf2\xe8\x92\xab\xc4\xef\x32\x3e\x7f\x1c\x4d\x91\x42\x72\xf5\xe8\x05\x98\x89\xa2\x89\xc6\xa4\x5a\x89\xfc\x01\xde\xa6\xdf\xa1\x1b\xc2\x78\x2a\x7a\x3e\xde\xfe\x2d\xeb\x16\x67\xbf\x3b\x03\x85\xf7\xd7\xd1\xe4\x6d\xaf\xfb\xb6\xb8\x2f\x8b\xe6\xd8\xdf\xaf\xb0\x5b\x39\x9c\x3c\x88\x5a\x92\x3a\x72\x9c\xd0\xf8\xdf\xd3\xff\x41\xe2\x8b\x3f\x5d\x5e\x54\x18\x73\x6c\x3d\xb8\xd9\x46\x9c\x60\x5d\xce\x4c\xd1\x88\x8a\x92\x14\x0d\x0d\x57\x8f\xf7\xaa\xcc\x8a\xf1\xfb\xa3\x22\xc1\x70\x79\x5e\x8b\x73\xd3\xad\x3b\x03\x19\x45\x45\x1a\x42\xcb\x67\xfd\x98\x4e\x13\x2a\x0e\x41\x39\xc2\xae\xc5\x36\x5e\xb5\xc6\x0c\xb7\x25\x56\x1c\xcd\x59\x6c\x73\xa1\x27\x53\x39\xe2\xcd\x2c\xef\x1b\x5e\x43\x15\xeb\x10\xdc\x9d\xea\xbe\x08\xaf\xa4\xd1\x2e\xc9\x1a\x8e\x6f\x47\x17\x86\x0f\x47\xe1\x94\x61\xca\xe2\x9b\xd2\x16\x4c\x03\xfa\xbe\x2c\x44\xa5\x8e\x28\x08\x30\x8a\x70\x14\x0f\xb5\x45\x10\xd6\xd0\xfc\x42\x37\x46\x71\xa9\x62\x77\x76\x37\x15\x16\xe7\xa1\x12\x39\x76\xed\x66\xcd\xb3\x21\x30\x52\x09\xe5\xdc\x9a\x2f\x23\x63\x62\x50\x3d\xf0\xdb\x65\x82\x81\xfc\x16\xe3\xca\x5f\xcd\x9a\x4a\x4a\x5b\xc0\x54\x5e\x3a\x6c\x16\xe5\x28\x29\x21\x56\xa3\xde\x42\x0f\x66\x99\x04\x11\x7e\xb0\xb6\x74\xe9\x53\x59\xc1\xfe\x28\x8a\x5d\x69\x9a\x91\x6c\x1a\x51\x2a\xf0\xdf\x71\xd3\x56\x05\x22\x05\x26\x42\x15\x4a\x05\x9c\x4f\x38\xaf\x37\x00\xd7\x1f\x85\x38\x65\x6a\x79\x6e\x56\x2a\x4e\xb1\x6a\x9e\x03\xbc\xec\x1a\x10\xf9\x97\xb2\xff\x35\x01\x28\xb7\x72\x16\xcf\x70\xd5\x7e\x58\xda\xef\xd5\x1c\x1d\xf2\xc9\x47\xa0\x09\x47\x7d\xac\xdd\x39\x53\xf0\x24\x3e\xaa\x32\x9f\x41\xa7\x94\x16\xa9\xd7\x41\xde\x57\x42\xc3\x08\x39\xab\xb4\x10\xae\x27\x63\x8b\xf3\xbf\xd4\xec\xb9\xfc\x75\x88\xac\x96\x43\x05\x06\x9b\x21\x93\x87\x06\x51\x0c\xd2\x7f\xfc\x8b\xd7\xe2\x07\xc6\x31\x42\x4f\x4f\x99\x93\xbd\xdc\x97\x5f\x60\xec\x5c\x44\x94\x91\x69\x2a\xbc\x3f\xf1\x84\xf6\xad\x03\x96\x48\xbf\xf2\x74\x8b\x67\x97\xad\xa1\xc7\xd5\xaa\xd0\x88\x49\xb8\xc4\x2e\x68\x42\x2c\xd2\xc8\x4e\x1d\x17\x1a\xfa\xd3\x75\x48\x13\x13\x21\xbc\xe9\x2a\xf3\x41\x69\xbf\x41\x98\xc1\x87\x7c\x4c\xf6\x09\x03\x4f\x0c\x9a\xfc\x1b\x06\xb3\x43\x53\x1a\x62\xad\xf8\x50\xb7\xb2\x5b\x2b\x11\x74\xf1\x15\x16\xac\x71\x86\xaf\x5c\xd3\x48\xa1\xbd\xa1\xb3\x66\x9a\x54\xb0\xfd\x90\x34\xc1\x78\xdc\x49\x05\xd7\xd7\x65\x21\x9a\xcf\x00\x80\x9a\x51\x81\xd5\xbb\x11\x1a\xfc\x93\x81\xa1\xc4\x44\x60\x6c\xa7\xb5\x2a\xf4\x5a\xe4\x17\xf6\x2a\x4b\x20\x5d\xcd\x22\xde\x17\x4f\xb2\xc2\xe9\x01\x5e\x65\xb3\x00\x41\x87\x71\x4a\xc4\x44\x07\x66\xef\xbf\x16\x1d\x72\x5b\x1d\xb3\x18\xf7\xa9\x12\xf7\x04\x0d\xaf\x43\xa9\x30\xd4\x2a\x51\x48\x42\xe4\x93\xa5\x55\x87\x86\x07\x2e\xc7\xbf\x7f\x1b\x1b\x9e\x13\x1d\x45\x36\x1f\x91\xed\xc7\xa7\x28\xdc\xd1\xe3\x88\x38\xc5\x36\x44\xaf\x45\xfb\x4b\x24\x95\x8e\x20\x09\x9d\x64\xd6\x03\xbc\x8d\x6b\x86\x6e\x40\x1c\xb0\x58\xfa\xc9\x4e\xa8\xbe\x53\x3d\xa6\x4e\xfb\xa1\x4c\x21\x19\xd7\xd6\x1f\xb1\x7a\x7c\x65\x63\xfb\x45\x57\x56\xa2\xe3\x38\x4c\x50\x1c\xa7\xac\x9b\x93\xe8\x5f\xe4\x58\x48\xe6\x30\x01\xb7\xb5\x13\x75\x84\xea\xa6\xb4\x86\x5e\xf6\xaa\x46\x57\x1c\x2b\xe9\x09\x98\x4f\x48\xa7\x42\x4d\x8b\x09\x46\x49\x73\x57\x74\xb8\xbd\xf2\x28\x35\x9d\x02\x45\xe7\xa6\x02\xde\xb1\xfd\x39\x79\x1e\x82\xa5\x14\x6d\x65\xd6\x8f\x48\x3c\x1f\x35\x3d\xb4\x94\x06\x29\xd7\xfe\x7d\x58\xe5\x79\xf7\xe6\x6d\xcb\xbe\xc6\xa1\xbb\x00\x74\x02\xd6\xf9\xe4\x0d\x96\x26\x02\x33\x80\x81\xf7\xbb\xab\xc5\xca\x8e\x86\xc0\xda\xce\xfe\x6f\x2b\xaa\x06\x2c\xd5\xd6\xff\x16\xa4\x0c\x29\xbf\xce\x98\x78\x21\x43\x18\xbf\xf3\x90\x82\xf1\x37\xab\x0b\x24\xb2\xb2\xe8\x3e\x70\x77\x53\xc7\xc5\x32\x6d\x84\xf2\x53\xd9\xff\xb4\x22\x47\x48\x53\xed\xf4\x42\x6c\x58\xe4\x80\x5e\x10\x40\x3c\xca\xb4\xbe\xd7\xfa\x09\xaa\xfb\xb9\xa2\x21\x01\x12\x18\x34\x37\xea\xb5\xcc\x00\xae\xb2\xa6\x0b\x84\xd6\xa2\x3e\xde\x03\xd2\x49\x67\xbd\x3d\xc0\x86\x80\x3d\x0b\xb7\xc9\x94\xaa\xad\x95\xa8\x74\xa6\xe9\xf2\x1c\x09\x44\x32\xca\x3d\xcc\x7c\xed\x75\x5e\xea\x66\x77\x2c\xcf\x83\x5b\x3c\x01\x46\x00\x27\xa6\xdd\x66\xfb\x63\xb3\x45\xb0\xdf\xe3\xf7\x7d\xbf\x55\x6a\xe6\x7e\x7a\xd2\x5e\x99\x5e\x55\x48\x0c\x02\x66\xd7\x8f\xf7\x4f\xab\x87\xbf\xa6\xd0\x5c\x08\x23\x8e\x7d\x12\x78\x3f\x43\x95\x41\xa1\x00\x3d\xc2\xfa\xcd\x9c\x4a\xe8\xd7\xf6\x87\xb2\x99\x77\x8d\x21\x4c\x92\x50\x8f\xb5\x30\x31\xa9\x47\x9b\xa2\x7a\xe6\x53\x44\x20\xd4\x46\x8b\x1e\xd5\xa9\x60\xe4\x24\xed\x46\x44\x81\x41\x99\x68\xf4\x67\x2e\x44\xbe\xd2\xda\xeb\x16\x4e\x6f\x61\x44\x03\x6a\xcb\x74\xdd\xa4\x70\x2f\x5e\x10\x08\xe1\xe5\x1a\x17\x5f\x67\x88\xa8\x0d\x44\x84\xd6\x7d\x2b\xb0\x5b\x83\xdc\x7c\x38\xfb\x01\x16\x60\x50\xbb\xee\x99\xed\x23\x49\xa5\xf1\x3b\x0b\x51\x2a\xb0\x5d\xe1\x2c\xce\xc3\xc9\xc2\x0e\x31\x09\x30\xcf\xbc\x6b\x8b\x8f\xea\x97\x53\xde\xec\x6c\xe3\x48\xc9\x6e\xf9\xb8\xda\x6f\xfb\xc7\x15\x27\x31\xa7\x7d\xb7\xd4\xc7\xcb\xa0\x7d\x2d\xb2\x1f\x06\xa1\x15\x31\x75\xe8\xb2\x83\x3d\xa5\xc3\xf5\xec\xdc\x94\x85\xa0\x5b\x68\x02\xc2\xc3\x8a\xd1\x33\x99\x9d\x10\x0f\xac\xfa\xbd\x95\xba\xc0\xda\xad\x03\xed\xce\xc6\x39\x8c\x1c\x52\x4d\xad\x7e\xda\x52\x37\x1e\x38\xb3\x25\xc9\x3a\x7b\x2e\x36\xab\xc9\x84\x08\x3c\xb4\xba\xef\xa7\xac\xf0\xc2\x05\x23\x21\xdc\x71\xb6\x0e\x69\x2a\x10\x9e\x9e\xd5\x4e\xc6\xd2\xaa\x23\xcf\xb9\x0a\x90\xaa\x08\x3f\x17\x5f\x36\x6d\x2f\xe5\xb6\x40\x24\x12\x51\x4f\xe7\x6a\xc8\xe1\x27\x85\x48\x10\xca\x9a\x9a\xae\xaa\xac\x1e\x17\x7e\x40\x12\x2b\x57\x88\xed\xa3\x6a\xf8\x33\xb3\x4c\x1b\x89\x06\xd0\x59\x17\xae\xa1\x44\x99\x0b\x74\x2e\xc4\x94\xf0\x6f\xc3\xbe\xa1\xfb\x5c\xf2\x52\xbd\x74\x71\xc3\xf4\x74\x65\x14\x60\xa4\x7f\x97\x15\x62\xa4\xaa\xbb\xfc\xf6\xcb\x48\x6b\x74\x4a\xdc\xfc\xe8\x4f\x2e\x51\x4e\x42\xee\xd8\x8c\x54\xf0\x40\x91\x00\x33\xa3\x6d\xf6\x5c\x22\x31\xae\xdf\x10\x0a\xfc\xea\xbc\x64\xc5\x0c\x2e\x07\x3a\x24\xa8\x87\x22\xd0\x92\x45\x7b\xf9\x7c\xbf\x35\xb2\xcc\xb3\xac\xbe\x72\x14\xc0\x8b\x0c\x77\xfc\x5d\x01\xa5\x78\xc2\x9b\xfb\xdb\xdd\xee\xf6\xf1\xe1\x70\xf3\xb8\x45\x3b\x85\xdd\x7e\xf5\x65\x13\xf9\xa3\x02\x63\xf6\xab\x6e\x9b\x5e\xd3\x75\xe5\xa9\xc4\xcb\x6f\xb2\x09\x52\x6b\x69\xdf\x94\x15\x38\xe1\x92\xde\xcd\xfa\xea\x63\x8b\xb0\xed\xee\x0d\xfa\x54\x87\xc3\xc5\x0a\x0e\xb8\x3d\x53\x79\x34\x41\x68\x67\x31\x91\xe7\x3f\x21\x7b\x3e\xf6\x65\x78\x13\xc4\x90\x0c\x19\xef\x5f\xdf\xef\x1f\x17\x57\x54\x13\x68\x81\x55\x66\xec\x04\xe5\xa2\x7a\x86\x6b\x78\xcd\xf0\xfc\x1e\xca\x66\x0e\xaa\x31\x01\x50\x35\xc4\xd6\x5d\x76\xbf\x1d\xf7\x8d\xdd\x28\x12\xc4\xf1\x24\x32\x50\xaa\xb5\xc2\x48\x1a\xbd\xb7\xa6\xa7\x40\x62\xe9\x25\xb1\x7e\x42\xb6\x28\xe9\x67\x48\x62\xd9\x18\x59\x8d\x86\x30\x30\x69\x09\x18\x92\x52\xeb\x3d\xdc\x9e\x4e\x88\x51\x82\xaa\xf6\xc4\x53\xd3\xe5\x15\xf1\x68\xa6\xff\x51\x5e\xfa\xad\x2c\xcf\x8c\x86\x05\x1c\x91\xca\x87\xac\x1e\x05\x3e\x26\x8c\x20\x09\xbc\xf1\x64\x59\x3d\x55\x70\xbb\x7e\x5c\xfe\x18\x4c\x44\x6d\x48\xf0\x66\x21\x98\x63\x9c\x93\x89\x38\x43\xe6\x95\xcc\xf4\xed\x85\x28\xc1\xf2\x19\xc5\xd4\x3a\xa0\x58\xdd\xb2\xaa\x9b\xf8\x5e\x41\xe4\x8e\x54\xda\xbd\x01\xd3\xe0\xc5\xc4\xa1\x6d\x34\xd4\xed\xf9\x5c\x56\x0d\xe8\x6d\x99\x5b\xbb\xa3\xe9\x81\x39\x67\x56\xc5\xd5\x99\x40\x3d\x21\x06\x77\x22\x56\x4c\x0c\x57\x11\xa2\xc6\xb2\xc2\x31\x48\xfd\xdc\x68\x92\x20\xb2\xd1\xb1\xcd\xb9\xa6\x36\x0d\x4b\x64\x1f\x93\xf2\x54\xb8\x3c\x14\xf9\x11\xf3\xda\xbc\x11\x04\xb0\xf2\x6b\xd9\x32\x9b\xff\x9d\x73\xaa\xa6\x5f\x82\x00\x1a\xc9\x11\xa8\x3c\xab\xae\xab\x5e\x94\xc0\x48\xae\x70\x72\x3c\x9e\x1c\x80\x71\x94\x02\xfa\x21\xa9\x4c\x61\xb2\x94\x7d\x2d\xdf\x0e\xfb\x72\xb2\x90\x19\x65\xac\x9d\x50\x77\xff\x4b\xd3\xbc\x89\x0a\x01\x15\x4e\x14\x6c\xbc\xb2\x18\x4d\x23\xfb\x96\x9c\xa1\xd0\x5d\xb4\x70\xa8\xc7\x3d\x46\xa3\x43\x86\x37\xd3\xb1\x6d\xad\xf4\xd8\x67\xbe\x5f\xd3\xaf\x01\x22\x9a\xf8\x45\xcb\xb5\x5a\x1f\xfa\xde\x8e\x31\x49\x80\xee\x32\xf6\xd3\xbf\xba\x64\xe2\x18\xa3\x02\x6c\x67\x3b\xd2\x05\xae\x72\xd0\x9e\xec\x7a\xd6\x65\x6e\x33\xdb\x9a\xc9\xa3\xa3\x41\x10\x0b\xe2\xac\x62\x0e\x26\x7b\xc7\x8f\xfa\xb6\x58\xff\x5c\xff\x31\x1d\x47\x68\xca\xe4\x80\x04\xb3\xd2\xad\xdd\xa2\xe4\x67\xf3\xa5\x29\x89\x06\x24\x8a\x30\x90\x87\xe6\xd8\x25\x57\x0e\x12\x4f\x03\xa2\x0d\x2a\x9c\x7f\x2f\xee\x4a\xf5\xb2\xbc\x2f\x25\x1a\xc5\xa6\x4f\xe2\x7d\x0f\xe2\x84\x17\x7f\xe5\xc5\x42\x68\xc0\x98\x05\x89\x6d\x0a\x6d\x0b\x71\xa3\x65\x83\x06\x2c\x89\x62\xfb\x5d\x37\x8e\xac\xf6\xc7\xa8\x99\xee\x07\x69\x5b\x3f\x73\x9a\x41\x96\x73\x74\xe1\x4d\x45\x83\x30\x0a\x90\xb0\xe2\xa1\xa7\x5b\xc0\x4b\xbe\x43\x85\x85\x2d\xbc\x66\x75\x56\x16\xd7\x25\xd4\x45\xf3\x55\xa0\x30\x5e\x66\x3d\x56\xfc\xb6\xfe\xa4\xc3\x38\x44\xc4\xbf\x13\xa0\xbb\xc4\xc5\xfb\x71\x92\x26\x49\x6f\xda\x50\x56\x1e\xb3\xb1\x94\x1a\xd0\x20\x34\x29\x8a\xfb\x1d\xc6\x55\x03\xab\x38\x7d\x01\x65\x9f\xfe\x4e\xe4\xaa\x23\x67\xf1\xf1\xd8\x36\xfe\x2c\xa3\x90\x4b\x36\x74\xe7\x17\x54\x4a\x68\x10\x09\xa3\xad\xe1\x39\x92\x53\x34\x92\xee\xc7\x61\x0f\x0d\x22\x88\x43\x5b\xbb\x7a\x2d\x5f\xe0\x16\x6b\x29\x68\x7a\x3f\x25\x91\x4e\xaf\x25\x26\x11\x68\xdf\x4d\xfd\x39\x05\x6f\xd0\x20\x8e\xa8\xb7\xe7\x5c\x9d\xb3\xe5\xf7\x26\x61\xd6\x8a\x30\x17\xea\xa5\xb6\x35\x57\xb7\x25\x25\x3a\xe8\x93\x9f\xa6\x9a\x71\x4e\x69\x90\x1a\x09\xc3\x42\x7b\x28\xca\xa6\x9b\xe1\x47\x93\x06\x0d\x04\x0d\xb4\x77\xb7\xcc\xb3\xb3\x75\x92\x59\x3c\x0d\x11\x0b\x3c\xd8\xe6\xfa\xfe\xf3\x5e\x1a\x0d\xd0\x32\x01\x3b\xf0\x4d\x7d\x53\x56\x43\x3d\x6d\x34\x84\x68\x84\xeb\x17\xf0\xe6\x6f\xc8\xba\x3c\x39\x58\xee\x6c\x2c\xb0\x10\x99\x6b\x6d\x71\x83\x26\x3c\xbf\xfa\x69\x50\x11\x2e\xd6\x5e\x6d\xf4\xc6\x7a\xc5\xf8\xbb\x65\x52\xdb\x3a\xf9\x8e\xe9\xac\xfb\x2b\x09\x12\x91\xd2\x71\x61\x76\x6e\xf6\x3e\xf9\x0d\x12\xa8\x98\xba\x57\xe9\x1b\x7c\xd4\xe3\x69\x95\x12\x92\x12\x01\x08\xd6\xc6\xb6\xf4\x7a\xf4\x33\x94\x83\xcf\x07\xee\x3f\x76\xc7\x2a\xf3\x32\xee\x94\x50\x69\x6b\x69\x68\x9f\x54\xa2\x12\xf0\xdc\x0f\x9b\x12\xaa\x0c\x06\x95\x0f\xdf\xbf\x3c\xde\x5d\xfb\x5d\x23\x9a\x62\xf6\x60\x0d\x8a\xbe\x17\x4d\x36\x2d\xe5\x52\xd2\x85\x03\x18\x91\x3b\x1d\xcf\x56\xda\xa0\xc8\x6d\x8e\x89\x62\x64\x6c\xca\x89\x7a\x84\xe3\x37\x84\xc4\x09\xa8\x41\x24\xb3\x8b\xde\x17\x99\xbe\x94\xc4\x2a\xd0\x8e\x63\xb9\x46\xa1\x94\xd9\x1b\x44\xb8\xe0\xa8\x22\x88\xab\x4e\xf7\xe4\xbf\x88\x7a\xce\x02\xff\x3c\x16\xa6\x84\xab\x00\xbb\x77\xeb\x3c\x53\x2f\x5f\xc0\x76\xef\x46\xfd\x19\x4a\xd2\x40\xa5\xe1\x08\x7f\xb1\x83\xa6\xc9\x51\x61\xcc\x55\xe3\x17\xe1\x9f\x94\xa4\x8a\x22\xc6\xf3\x15\x61\x7b\x93\x8f\xc0\x8f\xd0\x8c\xc6\x83\x8a\xd2\x81\x84\x7e\x8b\x10\x14\x42\x2c\x90\x7d\x15\xd5\x7f\xfa\xbf\x4a\xab\xba\xd2\x88\x46\xe4\x9b\xe6\x88\x24\x88\xb6\xd7\x11\xa2\x44\x18\x11\xb9\x75\xae\xfb\x4d\x97\xe0\x6f\x71\x6a\xd1\xb3\x1b\x27\x8c\xb5\xf4\xf4\x66\x3a\x18\xdf\xd8\x75\xb0\xde\x96\x79\x3e\xd7\x07\xbb\x7c\x6d\xa5\x04\x24\xa3\xec\xa0\x69\xcf\xd7\xbd\xb4\x1f\x25\x2a\x8c\x10\x26\x97\x29\xab\x5a\xd0\xff\x3d\x02\xbc\xd7\x26\x7b\x47\xd5\x46\xaf\xf6\x35\x7a\x25\x55\xaa\xb0\xae\x8a\xad\x23\x8b\x74\x71\x5b\x74\x40\x31\xb0\xdc\x41\xb3\x79\x15\x79\x3b\x72\x11\xf4\x72\xb9\xff\xb0\xcf\xc3\xa5\x79\x94\xe8\x48\x48\x57\x4f\x7c\x28\x35\xcc\x6e\x80\x96\x01\x63\xfd\x3b\xe8\xcc\x2e\x97\x91\x93\x94\x68\xa0\x48\x3c\xf5\x8b\x87\xd3\x91\xc4\x6e\xb0\x05\xf4\x8b\xaa\xf9\x58\xa2\x70\xb9\xfe\xe1\xe7\x4a\xbe\x94\x40\x64\x29\x7e\x27\xf1\x02\x77\xd9\xff\xb6\x99\x5e\x97\xfd\x33\x05\x61\xf3\xe2\xaa\x5b\x4f\xb3\xc6\xc3\x52\x0e\xac\x1f\xa0\x52\xcf\xf2\x44\x54\xcd\xed\xd9\x4c\xe3\x1f\x4a\x40\x13\xd7\x16\x2f\xa0\xce\xea\x1f\x59\xd5\xf6\x2f\xa1\x91\x04\xd1\x57\xf8\x44\x4c\xa6\x2e\xe8\x89\x8b\xf3\x62\x17\x19\x22\xd2\xf3\xfa\xf6\xaf\x7d\x2b\x47\x90\x31\xda\xad\x69\xf8\x98\x0f\xae\x0a\xea\xfd\xab\x28\xa5\x54\x62\x88\x88\x9d\xb8\x5d\x2b\x7b\x24\xab\xef\x6e\x4e\x7e\x83\x52\x30\x28\x4a\x72\xc6\x62\xc8\x14\xb2\x4f\x29\x0b\x0d\xea\x69\xad\x1f\x1f\x7e\x6c\xb6\x98\xc7\x5e\x6f\x1e\x1e\xef\x6f\x1f\x56\xfb\xc7\xad\xff\x49\x16\x01\x0f\x3d\x0f\x72\xec\x75\x7b\x14\xcd\x3d\xd4\x35\xf2\x35\xfc\xd8\x58\x52\xb7\x6e\xdd\xae\x1f\xd9\xd3\xb1\xc7\x97\x51\xca\x52\x2d\x5c\xc9\xa0\x86\xdc\x74\xf3\xaa\x58\x58\xf2\x69\xb7\xae\x72\x9b\x01\x9f\xb7\x48\x97\xef\xcb\x47\x94\x86\x89\xa5\xa2\xa3\x64\x60\xb5\x2e\x35\x74\xdf\xbd\x2d\x40\x4f\x2f\x2e\x4c\x14\x1d\x4c\xb2\x1f\x5d\xa1\x76\x3b\xf1\x19\x77\x43\xa3\xc0\x92\xbd\xfd\xab\xb9\xeb\x72\xef\xa1\xcd\x39\x1b\xcc\x23\x7c\x59\x1e\x0b\x54\x67\x57\xf6\xc1\x2d\xc9\xa5\x2f\x7e\x07\x34\x4a\x13\x54\xed\xb9\xca\x9a\x75\x0e\xa7\x93\xbf\xb2\x48\x9a\x80\x79\x6f\x5a\x3f\x97\x5f\xc3\x39\x2f\xb1\x33\x32\x00\xa2\x29\x8d\xb5\x65\x68\x38\x12\x74\x17\x1f\x6f\x74\xd6\x1c\xf8\x64\x89\xa0\xb1\x4e\x11\x37\xad\xcb\x7d\x6f\x57\x46\x29\x8f\x83\xd4\x85\xac\x4d\x8e\x02\x3b\xc3\xe4\x41\xb9\x02\x08\x9c\x77\xc9\xfe\x28\x9a\xdd\x31\x6b\xae\x7b\x0b\x13\x4a\x93\x34\x42\xa8\xf5\x4a\xeb\x7d\xd6\xe4\x73\xbe\xe1\x2f\x54\x41\x29\x4d\xa4\xf2\x16\x0b\x37\x59\x9e\xff\x28\xf3\x16\xbd\xf7\xcb\x32\x9f\x7a\x8e\xcd\xf6\x4b\x53\xc0\x59\xa6\x3b\x27\x5d\xbe\x15\xd3\xbc\xc7\x0d\x12\x24\xc4\xbe\xb1\xa5\xe4\xcd\xf3\xc8\xd9\xd8\x94\x31\x47\xa2\xba\x12\x35\x2c\x7f\x39\x42\x86\x10\x0c\x56\x44\x7a\xec\x69\x47\xa9\x30\xdc\x20\x77\xb4\x3c\x9d\xdb\x06\xae\xda\x8f\xd9\xee\xca\x19\x27\x75\x3b\x67\x6a\x56\x9a\xa6\x54\xc7\xca\x9f\xc2\xaa\x82\x42\xdc\x16\x0d\x54\x46\xcc\x8a\x18\x94\x9a\x00\x60\xec\x9d\xe7\xd6\xa3\x7a\x3e\x8c\x28\x04\x9f\x1e\x06\x9c\xcf\xbc\x53\xfb\xab\xb2\x05\xa5\x26\xa1\x58\x27\xb6\x6d\x08\x3f\x43\xf6\x02\x83\x83\xb7\x20\xa5\x46\xb1\xc4\xc2\x5f\xb2\x66\xa7\x3c\x9c\x97\xb2\x20\x54\xa1\x83\xb9\x6e\xde\xcf\x79\xa6\xb2\xbe\x4d\xe2\xd1\x0f\x43\xe7\x9d\x32\x12\x4a\x5c\x9f\xd7\x8f\x0f\x37\xb7\x5f\x0e\x37\x9b\xcd\xee\x70\x7d\xfb\xc3\x1f\x8d\x48\xe1\x05\xb9\xac\x0d\x7c\x56\x16\xd6\xc0\x60\x7a\xe9\x8c\xd2\x00\x93\xf0\xc3\x2b\x54\x99\xf9\x98\x3d\x79\x3f\x28\xb1\xc6\xa1\x3a\xab\xbb\xb4\xda\x81\x38\x86\x76\x06\x65\x34\x05\xec\xfd\x1d\xb2\xfa\xa1\x6c\x1e\x8b\x31\x1d\xd1\x0d\x61\x90\xf0\xc0\x39\x82\x5a\x95\xed\x46\x1d\xf7\x15\xc0\xa2\x74\x0b\x65\x11\x4b\x49\xe2\x31\x41\x17\xd3\x1c\x8b\x62\x8d\x21\xeb\xa9\x0b\xdd\x8e\x30\xd3\xe9\xf5\xb2\x0b\xe1\xf8\x9f\x71\xef\x9b\xb2\x48\x44\xde\xa8\xa0\x4b\x9f\xb0\xaf\x31\xff\x0d\x48\x10\xac\xf0\x03\x0a\x5d\x56\x9f\xbc\x64\x2c\xa6\x5a\x47\xde\xd5\xe8\x5c\xaa\xe3\xa8\xae\x4a\x59\x9c\x32\xfc\x10\x90\x4c\xb6\x52\x0a\xea\xda\x49\xc4\xea\x61\x08\x17\x89\x07\x07\xcf\x0f\xae\x54\x6c\x0d\x89\x11\x6a\xb2\xec\x64\xed\xc6\xf2\x40\x20\x7f\xa5\x3c\x43\x81\x85\x42\x2c\xd1\x2f\x55\xe8\x29\xe3\x49\x9a\x38\xf4\x38\xce\xd4\x2e\x3f\xb8\x2d\xee\xb3\xdc\x11\xba\xfd\xaa\xc4\x12\x42\x11\x7d\x25\xe1\x39\x2b\x9e\xfa\xd9\x8c\x25\x91\xd5\x49\xa8\xb2\xe7\x63\xc3\x93\xd9\xcd\x4b\x52\x4b\x5f\xd6\x59\x9d\x67\x2f\xb0\xaf\xc6\x4e\x81\xd3\x47\x9d\x6a\x83\xf7\x08\x8b\x9f\x98\x2f\x4d\x6c\x79\xdc\x28\x41\x23\x29\x46\xd8\x96\x2b\x68\x9c\x37\xc2\xf2\xed\x10\x3c\xc4\x56\x9c\x2b\xf7\x38\x62\xe0\xcf\xec\x25\x7b\xc2\x35\xd7\xde\x0f\x1f\x03\x31\x19\x4a\xac\x67\x39\x74\xfa\x51\x54\x7e\xc1\x60\x2a\xe1\xf8\x84\xcf\xb9\xf8\x18\x4d\xf7\x4c\x0b\x26\xd2\x01\x1e\xb8\xb3\x2e\x44\xa3\xa5\x86\x69\x48\xf1\x91\x5c\x83\x41\x33\x36\x67\x73\x9b\xe7\xc3\xd3\x07\xa2\xb0\x41\xbc\x9b\x35\x24\x28\x03\xc5\x50\xd8\xf3\xdb\x6e\xa7\x32\x6d\x31\x95\x6e\x93\x09\x02\x54\x2f\x91\x9f\x50\x39\xfc\x30\xd0\x5e\xd1\x08\x39\x63\x30\xd6\xf4\xb4\x33\xca\x00\xa0\xb2\xfb\x84\x01\x0f\xb0\x8e\xbd\x6e\x2b\x6f\xba\xe4\x7e\x35\x24\x81\xf5\x99\xee\xde\xef\x75\x59\x37\x4f\x50\x7d\x2d\xdb\xaa\xdf\x4c\xad\xac\xfc\x64\x1f\xca\x0d\xf7\x62\x1a\x99\xbe\xbd\xfe\xac\xd4\xf1\x4b\xe4\x1e\x0d\xa9\x30\x68\x65\x22\xe1\x53\x37\xf1\x91\xa6\xe1\xe2\x6b\x16\xb2\x90\xa1\x4b\xcd\xaa\x10\xf9\x47\x93\x29\xab\x53\xec\x37\xc6\xb1\x09\x7a\x41\xbc\xa7\xaa\x7c\xcd\xe6\x7a\xcf\x34\x64\xd2\x52\xa9\xb2\xda\x2a\x34\x3c\xbe\xf5\x19\xd5\xbc\xbe\x3d\xdd\x31\x0a\x42\x4c\x04\x7c\x49\xfc\xaa\x97\x02\xfa\x65\x90\x1b\x46\x8a\x20\x50\x04\xeb\x2c\x57\x6d\x55\x4c\xee\x2d\x67\xd6\x58\x5b\x95\x45\x5d\x56\x4d\xd6\x9e\x9e\x72\xa1\xc0\x32\x19\xfb\x41\x31\xf5\x6e\xf9\xab\xaa\xc9\xea\x66\x0c\xb9\x76\x63\xd2\x40\xc4\x83\x44\xfd\x5a\x54\x7a\x20\xd4\xfb\x25\x27\x4c\x69\xe8\x8b\x2a\xc8\xc7\x99\x5b\x86\xd1\x30\x0d\x35\xd2\x88\x7b\xab\xda\x62\xb2\xec\x87\x29\xe7\xca\xfb\xd1\x78\x09\x6e\xbf\x29\x91\x88\xe0\x50\x65\xf1\x9f\xb6\x02\xc7\x2d\xf4\x5b\x45\x60\xb0\xab\x03\x93\xaf\x2b\x14\x49\x8a\xd8\x15\xc4\x65\x1e\x5c\xb5\xee\xa0\x8a\xe6\x70\xf2\x86\xc1\x34\x14\x69\x8c\xf1\xb7\x27\x77\xa0\x1f\xf5\xa8\x5a\x10\x0a\x6d\x8d\xbb\xb6\xa8\xbe\xd2\xf3\x45\x68\x28\x41\x79\x3b\x91\x6e\xa7\x7d\x36\xdc\x54\x45\x22\x84\x1e\x09\xad\xb7\x4b\x34\xbe\xdf\x31\x0f\xdd\x61\x34\x23\x08\xdd\xfc\xfe\x70\xbb\xbf\x6e\x4f\xa7\x0f\x87\xe3\xf9\x22\x1a\x78\x13\x1f\xb3\xa7\xa4\x21\x00\x2b\x5b\x88\xa6\x2e\x5d\xfa\x92\xe9\x59\xe4\x14\x6a\x50\xc9\x60\x51\x7e\xf5\x7d\x77\xfb\xb0\xd9\xed\xfc\x79\x03\xb1\x14\x07\x64\x62\x68\x4b\xc1\xd9\x76\xd1\x81\x1f\x60\x80\x5a\xef\xc0\x91\x04\x67\xeb\x9f\x43\x14\x50\x8d\x55\x7d\x4c\x9f\x0e\xe7\x2e\x61\x3f\x9c\xca\x02\x3e\xfa\x01\x31\x80\x8b\x3b\x1e\xa7\xc6\xa9\x34\x0a\xb8\xf0\x0e\x30\x23\x6b\xe7\xe9\xe9\x47\x01\x07\x24\xc0\xf7\x2a\x8b\x85\x16\xbf\xbb\xb9\xff\xa2\x53\x93\xb1\x2e\x21\x61\x56\xb2\x46\x35\xd9\x2b\xf4\xec\xb2\x01\xf1\x47\xa3\x00\x8c\xc3\x36\x1a\x47\x95\x59\xaa\xfc\xd3\x88\xa4\x0c\x15\x37\x73\x75\x5a\x40\x98\xd1\x88\x88\x10\x0b\x88\x5f\xe8\x77\x33\xbc\x54\x11\x55\xd6\x4f\xec\xd9\x01\xf8\xbc\x1e\xd0\xf4\xe0\x54\x27\x61\xe8\x4c\x26\x0e\x4d\xdf\xf0\xa2\x11\x0b\x83\xa0\x7b\x0c\xdb\xa7\xdd\x6c\x17\xd6\x25\x3a\x18\xf8\x3d\xde\xad\x1f\x6f\xfd\x8a\x10\x85\x10\x22\x89\x6d\x77\xb3\xf7\x7f\x8a\xba\x2f\xae\x7b\xd8\xa7\x73\x7e\xb0\xd2\x51\xd3\xd9\xd7\x8f\x63\xa1\xd5\x0e\xc1\x00\x71\xd0\xbc\xa4\x51\x64\x44\x38\xc4\xb5\x23\xc5\xd6\x6e\x93\x24\xbc\x37\x5e\x5f\xea\x21\xd2\x28\x26\x16\x30\xf8\x9f\x32\x2b\x1e\x0b\x98\xb0\x9a\x68\x14\xeb\x88\x27\xc3\xe7\xe5\xda\x71\x3f\xb3\xa2\x1e\x7d\xe3\x51\x0c\xc2\xeb\xc7\x79\x55\x2f\xe7\x8b\x2c\x45\xf1\x32\x7b\x7b\x38\x11\x58\x39\x3c\x43\xa5\xbe\x9f\xe7\x1b\xa9\x42\xca\x8b\x70\x26\xdc\xab\x42\xbb\x46\xa2\x1f\xa0\xac\xca\x56\x5f\x34\xc5\x36\xcd\x22\x81\x86\x46\x1c\x04\x52\x9c\xa1\x1b\xf3\x24\xb2\xfe\xc9\x73\xc3\x84\xc3\xb2\x3f\xb8\x92\xed\xee\x98\x9d\xeb\xab\x0f\x3b\xa7\xba\x61\x89\x31\x38\x2d\x61\x67\xd0\xfd\x2d\x8d\x25\xf1\xe6\x53\x95\x78\x2e\x8b\x89\x2e\xd7\x74\x69\x88\x04\x4f\x63\xf7\xa9\x7d\x15\x95\x56\xed\x79\xe4\xe7\x45\x23\x21\x13\x6c\x43\x66\x8f\xbb\x51\x69\x24\x12\x4a\x20\x4e\xe7\x2a\x73\x2d\xa8\x7e\x03\x04\xe8\x05\xd4\x5d\xb3\xc8\x1f\xca\xea\x64\x03\x9a\xdf\xc9\x50\xfd\xf6\xdf\xe9\x2b\x21\x59\x88\x4d\x9a\x1f\xd9\x2b\xbc\x6c\xcb\x63\xd6\xfc\xc8\xe4\x51\x7c\x8c\xd7\xb5\x48\x51\xeb\x00\x50\x37\xe2\xd9\xc6\x44\xf7\xed\xac\xdc\x1e\x29\x43\x46\x8a\xc1\xdd\x34\xb5\x80\x58\xa1\x91\x0e\x5c\xb7\xfd\x19\x76\xd0\xa0\xf0\xc2\x93\xa8\x9a\x1e\x48\xe2\x86\x41\x6c\x57\x92\x2e\x48\x3c\x89\x06\x5c\x37\x6a\x56\xf1\x89\x0c\x49\xad\x2b\xbe\xd6\x13\xff\xe0\xc5\xfc\xbd\xdf\x47\x60\x33\x04\x59\xff\x65\xb5\x10\xd9\x46\x86\x47\x08\x1f\x3e\x0b\x54\x29\xf0\x7f\x05\xeb\xf5\x64\xaf\xb0\x0b\x38\xb2\xe2\x79\xae\x97\x41\xe3\x20\xd6\x58\x7d\xb9\xba\xdd\xef\x37\xeb\xb1\xe6\x04\x8d\x83\x84\x11\x57\x7b\xfa\x67\xd1\x5c\x18\x23\xd1\x38\x30\x31\xf6\x35\x6f\xeb\xab\x32\xcb\xa1\x9a\x40\x37\xdc\x18\x12\x58\xa9\x7d\xdb\xfe\x1e\xfb\x51\xd1\x98\x24\x04\x23\x77\x05\xdd\xb5\x2d\xcb\x43\xd3\x98\xa4\x02\x1f\x3a\x1a\xc1\x20\x05\xa5\x99\xdd\x88\x7f\x2c\xec\x45\xd3\x44\xf4\xb5\x2a\x67\xc1\xbf\x85\x3a\xd3\xad\xc8\xaf\x54\xd9\x9e\x87\x8e\x5d\x4c\x05\x63\x72\xe0\xb8\xa3\xc4\xe3\x00\x20\xa0\x31\x95\x29\x2e\x08\x4e\xcb\x4e\x9c\xce\x22\x7b\x2e\x66\x42\x88\x63\x3d\xd2\x0b\xb2\xc5\xc5\xbf\x6e\xdf\xc9\xad\xa2\xda\x60\xbc\x9d\xd5\xdf\x8a\xf2\xad\xf0\xd1\xf6\x62\x4c\x18\x33\xc2\x75\x77\xef\x31\x80\xb0\xa8\x02\x4c\x42\x3f\xeb\x02\xc7\x2c\x21\xa8\x9c\x92\x67\xa7\xac\xd9\xec\xbf\xfa\x8b\x0b\x79\x82\xdd\xa4\xb3\x68\x6b\x6b\x9a\x33\x7d\x48\xa1\x08\x26\xe0\x90\xcd\xbb\x1a\x7a\x00\x71\x28\x38\x57\x1e\xe6\xd7\x34\x39\xde\xb7\xb2\x9d\x2d\xcc\x71\x14\x87\x08\x5a\x5d\x6f\x1f\x7f\x5e\xef\x56\x77\x9b\xc3\xdd\xed\xfd\xad\x5f\x6b\xe2\x48\xc4\x38\xd5\x7f\xdb\xae\x9f\xdc\x33\x98\xcb\xf6\x2c\xdf\x85\x98\x30\xcc\xad\xee\xca\xe7\x2d\xc8\xe9\x32\x32\x27\x27\xff\x32\x45\x88\xe3\x30\x0e\x06\x57\xc1\x5d\x23\xd4\x8b\x8d\x84\x17\x5d\xfa\x87\xf7\x8c\x87\x1c\x6b\xc2\xa6\x02\x50\xe5\xe9\xd4\x16\x59\xf3\x31\x6a\xa6\xc5\x3c\x06\xc4\x0d\xfc\x58\x4d\x3e\x2e\x0e\xa1\xb4\xac\x42\x2b\x4d\x3b\x82\xd2\xb8\x11\x09\x8f\xc4\xd4\x4e\x02\xf2\x2e\xf4\xb7\x86\x1b\xb3\x1b\x9c\x00\xe7\xae\x57\x80\x7c\xf5\x2e\xb3\x1a\x84\xb2\x5d\xd5\x22\x4e\x03\x12\xca\x31\xed\xfe\x76\x36\x99\xc4\x69\x24\xb0\x9c\xbe\xed\x56\xca\xf1\x65\xa4\xa9\x24\x7a\xea\xcc\x68\x8f\x3f\x99\xe3\xe2\xd4\x50\x7c\x5b\x9e\xb6\x9b\xfd\xf5\xc6\x85\x88\xe8\xfd\x39\xd4\x91\x63\xc1\x18\x1e\x0b\x55\x47\xfb\x64\xc9\x6f\x14\x4c\xf9\x34\xf1\xbb\x35\x6b\x9e\x5d\xab\x0c\x09\xf4\xd6\xe9\xdf\x37\xfb\x7a\x50\xf1\xa3\xb1\xe4\x0a\x23\xaa\xb5\xa8\x8f\x7b\xc8\xe1\x7d\x72\xd7\xa5\x50\x9a\xf4\xa9\xca\x75\xd5\x5d\xe5\xec\x0e\xa0\xb7\x93\x87\x0f\x97\x55\xbf\xc6\xc5\x8a\x87\x88\xb1\x74\xd6\x28\xfb\x12\xa1\x4d\xb3\x08\x3a\x56\x83\x48\xd4\xd5\x6d\x3f\xc3\x4f\x86\xe8\x20\xc4\xe9\xc4\x01\x26\xc8\x1f\xfd\xdf\x15\x16\xb7\xe1\x94\x35\x3f\xcb\xea\x05\xe9\xa8\x9f\x7d\xce\x3a\x4e\xb1\x4b\xf1\x58\x80\x8b\x0e\xbf\x64\x5e\x95\x83\xc6\x5a\x13\x4c\xc3\xff\x33\x32\x12\x74\x9b\x0c\x70\x05\x83\xce\xd2\x0f\xa8\x1b\x2f\xa2\x76\x33\xc3\x46\x52\x1e\x28\x89\x37\xe3\xaa\x51\xfb\x63\x7b\x92\xbf\x25\x12\x77\xbb\x00\xfa\xef\x55\xda\x01\x98\x71\xb2\x1e\xf5\x0d\x79\xa0\xb9\x92\x63\xe0\x3b\xce\x61\x4e\xf4\x6e\xec\x3c\x32\xfd\xd8\x39\x09\x52\xcb\x0a\x13\xb9\x42\x8a\xc7\x13\x58\x68\xfd\xf2\x2d\xe2\x24\x14\xa9\x97\x48\xdc\xae\x66\x57\x46\x94\xc0\x4a\x7c\xd1\x9e\xee\x4b\xe4\x0c\xce\x9c\x3a\x29\xa7\xd4\x8a\xd8\x63\x23\xb8\xec\x0b\x3a\x9c\x32\x8d\x52\x84\x36\x71\x6c\x7e\x23\xfd\x3a\x0e\x96\x39\x35\x1c\x83\x65\xd9\x56\x45\xaf\xfa\xed\x50\x2b\xff\x25\x69\xe8\x57\xed\x60\xce\x12\x8a\x52\xea\xb2\xfd\xe8\x02\xd4\x5c\x7c\xa0\xc0\xec\x2f\xa3\x2a\xce\x64\x60\x15\xa0\xce\x50\x34\x4f\xa2\xaa\x41\xf5\xcf\x2a\x0a\x52\x4c\xba\x33\x0c\x79\xae\xb3\xaa\x57\x6b\xa3\x3c\x0a\x53\x9d\x7a\x72\x68\xf7\x89\xa3\xea\xe4\xf2\xb3\x88\x03\xbb\xca\xb8\xc4\x0c\x89\x79\x50\x5d\xe0\xa7\x26\x93\x09\x8f\x89\xa5\xae\xbe\x7c\x76\xd0\x48\xfa\x49\xef\x0e\x9e\x67\x7c\x66\x3f\x26\x8d\x51\x04\xa3\x11\xb2\x7e\x2c\xba\xa0\x7c\x8d\x3a\x2e\x43\xe4\xce\x79\xc4\x90\x39\x75\x14\x79\x53\x23\xb9\xab\xbf\x7c\xce\xad\xef\x86\x83\x0a\xd8\x90\x5e\x34\x70\x5b\xac\xa1\x57\x2c\xa2\x9c\x1b\x82\x14\x4f\x73\x49\xd4\xed\x36\xda\x3e\x33\x2e\xb0\x7f\x8c\xfc\x8a\xdc\xf6\x84\x01\x6a\xb0\xbe\x66\xf0\xb6\xf6\x16\x3d\x77\xd9\xab\x1b\x3b\xac\x35\x3c\x09\x53\x2c\xe7\xee\x5f\xca\x0b\x83\x39\x37\x24\xd5\x41\xe8\xf4\xe7\x74\xab\x9a\xf0\x50\xf7\x7c\x4c\xca\x45\x1c\x61\x38\x6b\x63\x42\x6f\xfb\x88\xe5\x18\x8b\xee\x9f\x9e\xb8\xe0\xa1\xd3\xa4\x68\x9c\x7a\xdf\x74\xbb\xa4\x8a\xea\x41\xb5\x72\x23\x2a\xab\x5a\xe9\x37\xab\x18\x43\x03\x55\x16\x26\x7b\x6e\x2b\x18\x81\x43\xfe\x31\x7d\xde\x93\x72\xde\x98\x8c\xd9\x1d\x85\x23\x9b\xc3\x94\x55\x93\x19\x2b\xf0\x50\xcf\xaa\xf5\x4b\x3e\x95\x94\x2b\x46\x39\xf4\x57\xfb\x00\x6f\xdb\x56\x42\x8d\x80\x10\x8b\x96\x9c\x5d\x8e\x26\x16\x00\x88\x6a\x16\x55\x0d\x26\xab\x60\x84\xff\xa4\x5c\xc7\x01\x52\xee\xb1\x54\x8f\xda\x6f\xa3\x6d\x9c\xd3\xc1\x77\xcd\x1f\xf9\x5f\x24\x20\xff\xf6\x35\x62\x0e\x9c\x79\x41\x14\xab\x24\xdf\x2d\x23\x5d\xd4\xfb\xa9\x8c\x01\xe5\x46\x31\xc4\x4c\x18\xbf\x4a\x24\x41\x14\x12\xf5\x09\xaf\x6a\xf2\xf9\x24\x41\xa2\x91\x00\x76\x9f\x15\xbd\x94\x04\x4d\x08\x35\x0e\x0a\x90\x3d\x3f\x4f\x1d\xd9\x68\x42\x98\x6d\xe8\x18\x80\xbd\x78\x81\xfe\xcf\x5d\x6e\x69\x67\xd2\xdb\xd3\xc9\xb7\x84\xa6\xaf\x5e\x42\x44\x80\x42\x1f\x37\xb6\x54\x26\x64\x3e\xe2\xbb\xb7\x8b\xdc\xdb\xd9\x01\x34\xc1\x1f\x57\x72\xba\x60\x24\x8c\xd2\x58\x0f\x1c\x58\x57\xfb\x5c\x48\x97\x12\x46\x43\x16\x4c\x14\x10\x2b\x03\xd9\x9c\xb3\x97\xcc\x7e\x38\x64\x56\x76\xb2\xbb\xbc\xe2\x35\x6b\x30\x93\x69\x3f\x9d\x36\xe7\x7b\x87\x0a\x61\x88\xdd\xb2\xfd\xcf\x52\x5a\x6f\xba\x2f\xd9\xeb\x6f\x08\x1d\x89\xdf\x3d\x22\xd8\xd2\x73\xd2\x4e\x37\x8f\xdb\xc3\x76\x73\xb3\xd9\xae\xee\xfc\xe5\x87\x42\x22\x2c\x06\xee\xfe\xfa\x9f\xeb\xfe\x8f\x4a\xab\xc8\x8a\x60\x7a\x49\xad\x49\x03\x3a\x89\xa8\xe5\xf7\xe0\xb4\xb3\x68\xbb\x48\x93\x28\x56\xd8\x82\x38\x57\x50\x97\xb9\xbe\xef\xeb\x9e\x49\x24\x68\x68\x05\x13\x1c\xf6\x0f\x1b\x0c\x77\x7f\x9d\xa1\x1a\x72\x87\x24\xd2\xc2\x20\xed\xbf\x34\x79\x66\xfa\xd7\x25\x36\x0c\x17\x86\x9d\x7d\xd1\x17\xb1\x73\x09\x4f\x28\x56\x5b\x5e\xb2\xa6\x81\x62\x1c\xc3\x25\xdc\x08\xee\xf1\x67\xd7\xd9\x6b\xb6\xe8\xe8\x31\xbd\x92\x44\x48\xaf\x67\xd4\x7d\x51\x4e\x72\xec\xde\x8a\x61\xdf\xf6\x47\x4e\xc0\x56\x18\x8b\xf2\x6d\xac\x2b\x4f\x93\x94\x5b\xcb\x8e\xba\xe9\x8d\x32\x69\x92\x0a\x6d\xc4\x08\x9a\x32\x14\x54\xe6\x78\x64\x9a\xa4\x5a\x22\x07\xd8\x74\xc1\xf1\x50\x33\x9c\x15\x1e\x12\x11\x59\x8f\x66\xab\xc9\x04\x0a\xb2\x73\xf3\x54\x95\xa5\x99\xa9\x45\x0d\x99\xe4\x05\xa4\x35\x11\x29\x89\xac\x23\x40\x9e\xd7\x27\x51\x37\x68\x8c\xe0\x4f\x5a\x38\xe3\x29\xa1\x7d\xdb\x7c\xa9\x2b\x9b\xc8\x90\x61\x37\xe6\x39\x33\xcd\x5a\x54\xcb\xc6\x53\xdd\xb0\xc8\x2f\xb1\x43\x7f\xed\xea\xc3\x2d\x72\xc9\x6c\xc6\x91\x06\x26\x20\x5a\xcb\x91\xda\x89\x13\xdc\x9e\x4d\xfd\x55\xd4\xc7\x55\xa1\x1f\xca\x61\xde\x4c\x14\xe7\x81\x98\xcc\x89\xf8\x71\x3f\x4d\xdd\xa2\xfc\x60\xd0\x58\x52\xbf\xde\xdc\xfb\xc5\x3b\xd1\x2c\x11\xbd\x48\xd8\xed\xc3\x97\xc3\x6e\xb3\xb9\xde\xf5\x5b\xa3\x18\x4b\xa4\x77\xe5\xf3\xbd\xd3\x26\x58\x6c\x95\x24\x5a\xc6\xa1\x25\x50\x59\x15\xb6\x3f\xe6\x9b\x15\x7e\x4c\xcf\x95\x28\x1a\xdb\x87\xbd\x29\xc7\xda\x71\x34\xd1\x40\x11\x13\xd8\x9e\x9f\xbb\x10\xa2\x7f\x89\x20\x0a\x2c\x14\xc6\xae\x92\xab\x42\xbb\x36\xec\x94\x31\x48\x13\x70\x89\xe2\x16\x74\xab\xb0\x42\xdf\x25\x4f\xa3\xf2\x5b\x02\x42\x26\xd1\x44\x7f\xdf\x5a\xd0\x81\x23\x00\x11\x7f\xba\xa0\x52\x67\x1a\x5c\x9f\xcb\x42\xef\xcb\x75\x6f\x74\xe6\x5f\xac\xf4\xdf\x53\xe5\xb1\x7f\xfd\x5f\xfd\xf7\x1c\x03\x96\x98\x88\x23\x37\xe2\x76\xfd\x68\x1d\x06\x45\xe5\xe3\xc4\xc4\x24\xc4\x23\xbc\x9e\xc4\x87\xea\xc2\x84\x46\x0c\x1b\x01\xf3\xee\x4c\x95\x37\x6d\x31\xba\x6f\x26\xd5\x86\x0c\x72\xab\x3f\xac\x42\xc6\x1e\x1d\xd4\x07\x7c\xd0\xdc\x78\xc1\xee\x9c\x06\x2c\x46\xd4\xf7\x39\x17\x1f\xd7\x99\x82\x75\x79\x92\x8e\xd5\xf7\x6b\x55\x6d\x9a\x06\x3a\x46\x19\xe5\xf3\x3c\x1e\x4a\x89\xd0\xd8\x12\x7e\x28\xbb\x48\xe4\xe0\xca\x24\x4b\x70\x9b\x94\x48\x0b\xfd\x5a\xb5\xcd\xf1\x5a\x9c\xcf\x53\xb5\x8a\x7f\x8c\x82\x95\x51\xc4\x92\x12\x6d\x30\x52\x14\xc6\xb8\x9c\xee\xe0\xee\x46\x4a\x69\x88\x7d\x5e\x74\x69\xed\x3e\xad\xee\x4b\x19\xdf\xe5\x94\x0a\x81\xa1\xea\xbd\xaa\x6e\xca\xea\x8b\xa8\xed\xa8\xe5\xf7\x3d\x65\x81\xc1\xab\x94\xa2\x86\xef\x45\xd6\x1f\x85\xb1\x04\xe3\x7d\x55\xfe\xfd\x31\x46\xc9\x2f\x2f\xd9\x29\x33\x2a\xb0\xd5\xbd\xe6\x4a\x14\x2f\x28\x2e\x54\xa8\xec\x2c\xf2\x05\x1a\x1d\x4d\xc3\x80\xba\x67\xda\x85\xae\x5f\x2c\x9c\xaf\x7b\x5f\xea\x45\xa6\x35\x4d\xc3\xd0\x9a\xa6\x1f\x10\x00\xb1\x83\x42\x8f\xcb\xe0\xdd\x66\x2e\x7a\x6c\xeb\x57\xa7\xc1\x0a\xe7\x5f\xad\xf6\x69\xa8\x2c\xcd\xa1\x4b\xeb\x56\x0f\x13\xed\x6f\x37\x22\x0a\x8d\xb1\x58\xcd\x05\xe5\x88\xd1\x4c\x9c\x46\x91\xd4\x8e\x5c\xd0\x4d\x57\xbd\xa2\x37\x68\xa7\x51\x32\x7a\xb8\x31\xb3\xc4\xd4\x1e\x82\x59\x96\xb3\xe0\x3d\x8d\x8d\x0d\x22\x0f\xb2\xfd\xb8\x13\x48\x56\x5a\x8b\x42\x7f\x7c\xf2\x0c\x39\xb5\xe5\xd3\x1a\x0a\x8d\x40\xa6\x4f\xf1\x9b\xbe\x0b\x9b\x72\x23\x50\x76\xff\x7a\x73\xb3\xfa\x7e\xb7\x3f\x5c\x7f\xdf\xae\x06\xd9\x43\x9a\x26\x91\xed\xaa\x98\xd2\xf7\xf4\xd2\x94\xb2\xc0\xb5\xb6\xd7\x2e\x79\x9b\xdb\x7d\xd0\x34\x4d\x12\x2d\x27\x14\xe9\x4d\x77\x9f\x3e\xe3\x3e\xa4\xa9\x60\xa9\x2b\x2d\x3f\xc0\x7b\xb3\x15\xc5\x0c\xba\x92\x8a\xb8\xa7\x04\x5b\x38\xf3\x74\xb3\x66\x11\x5e\x48\xcf\x72\x9f\x89\xe6\xd1\x54\xa7\xd6\x8d\xd5\xb2\x52\x11\xbf\x21\xea\x7a\x99\xb9\xb7\xac\xd2\x39\x3d\x1e\x24\x96\x4a\x54\x43\x73\x7b\x3a\x5b\x04\xf5\x88\x26\x3c\x4a\x62\x16\xa3\x71\x11\xd0\xd4\x43\x04\x6e\xaf\x0f\x28\x4b\x50\xce\x96\x19\x41\x22\x2d\xad\x4b\x9c\x8d\x5f\x6e\x55\x89\x28\xce\x91\x8a\x47\x37\x08\x30\xaf\xb1\xc0\xec\x4d\xa1\xeb\xdb\xe2\xeb\xd7\xfb\x7b\xbf\x9d\x86\x12\x21\x7b\x4f\x65\x3d\x5f\xfb\x27\x21\x80\xa0\xce\xe7\xe4\xec\x73\x0b\xc1\x58\xe8\x17\x98\x2d\x3c\xb3\xd9\xd9\xb1\x34\xc4\xba\x8d\xeb\xb5\xed\x5a\x5c\x07\xcd\xd0\x5c\xf9\x2c\x50\x9e\x3e\x7c\x11\x26\x8a\x07\x3d\x67\x04\x7d\x9d\xca\x1c\xe6\xdd\x90\xc9\xdd\x17\x61\x4a\x51\x5b\xe1\x64\xd5\x42\xbd\x5c\xfb\xec\x0c\x23\x88\x94\x17\x69\x71\x42\x4b\x93\x2b\x8e\x19\xf8\x4f\x7f\x73\x3a\xe7\xe5\xc7\x44\x3e\x81\x8a\x24\x61\xd8\xb1\xbc\x06\xec\xfd\x0e\x8d\x44\x91\x80\xc2\xe4\x50\x5a\x8d\xf3\xfe\x61\xa4\x91\xc2\x6a\xa5\xeb\x71\x76\xab\x93\xef\x14\x2d\x7f\xb5\x22\x8d\x03\x24\xbb\xa2\xab\x3e\x14\xfa\x26\x2f\xdf\x46\x95\x90\xe9\xab\xb8\x04\xa5\x24\xf1\xc5\x11\x15\x16\x10\x36\xb5\xaa\xca\xb7\x1f\xa2\xcd\x67\x13\x8b\x48\x13\x89\xba\xc3\xa7\x8f\x13\x34\xc7\xa1\xcd\x35\x7d\x1f\x84\xb1\xda\x5a\xae\x51\x3a\x17\x42\xa0\x42\xc6\x31\x12\x6f\x8f\xa2\x5e\x35\xee\x3b\x27\x57\x6d\xf3\x50\x36\xfd\x7f\xd3\x8b\xf2\xfb\xf4\x33\x50\x81\x44\xa4\x62\xd6\x45\xe7\xef\x7f\x4c\x8e\xaf\x98\x30\x4e\xd4\xa3\xb7\x19\xa7\x42\x85\x09\x26\xbc\x3a\xab\xc5\x38\xe2\x12\x4a\x45\xbd\x88\xd4\x14\x0f\x73\xe1\x41\x42\x85\xd6\x31\x1f\x27\xdf\xd5\x25\x90\x45\x68\xc3\xf0\xdc\xb0\x2e\xfd\x13\xb2\xb1\x7e\x23\x15\x40\x44\xc4\xdc\x74\x3b\x6e\x0a\xcc\x6b\x58\x93\x4b\x02\x0e\x64\xe4\x61\xfc\x24\xb2\x7c\x02\xd3\x9f\x3c\x00\x90\x0c\x13\xbd\x2f\xdb\xd5\xfd\x6a\xdf\xcf\xca\x32\x88\xad\xdc\x5d\x0d\xcd\xf5\xac\xa3\x2f\x03\xc5\x43\xc7\xee\xda\xec\xbf\xee\xcb\x39\xf6\x68\xf9\x1b\x94\x84\x0a\xee\x5d\xea\xa7\x5a\x27\x6e\x00\x35\x12\xf5\x2b\xc0\xf2\xdc\x36\xef\x59\x3d\x93\x90\xa0\x92\x71\x26\x6c\x72\x00\x1a\x49\x32\xee\xef\x61\xc8\xd1\x84\xe1\xe6\xf6\xe1\x6e\x75\x75\x78\xda\x6e\x76\xab\xbb\x4d\xbf\x95\x73\xe1\x84\x8a\xac\x60\xd4\xd5\xc7\x1e\x4e\xe7\x7c\x6e\xf9\x41\x65\x28\x64\xa8\x47\x20\xce\x4b\x6e\x24\x95\xa1\xd6\x5e\x36\xd2\x89\x1d\x78\xad\x87\x61\xed\x95\xb1\x8c\x90\xcb\x92\xd5\xd8\xdb\xf3\x31\xa6\xe4\x41\x82\xc8\xdb\xff\x69\x45\xd1\x64\xf7\xa5\x2e\xc7\x2f\x98\xe4\xd2\xca\xee\x0a\x8d\x60\x17\xe4\xe3\x2e\x2a\x35\xb8\xf1\x89\xd1\x58\xd8\xbf\xff\x6b\xdb\x3f\xbb\x34\xa1\x69\x34\x60\xed\x1e\xcd\x43\x59\x7c\xfb\x6b\x3d\x7b\x8a\x22\xe4\x56\xe1\x55\x14\x28\x7a\x3b\xdb\x1a\x49\xaf\xa5\xfd\x24\xd4\x8b\x78\x46\xdc\xfd\x64\x6a\x93\x22\x89\xb8\xbb\x0f\xff\x2c\xe5\x0a\x35\xe7\x87\x0b\x15\x22\x49\x7a\xe7\xa3\x2e\xbb\x5a\x7f\xbd\xf1\xdb\x14\x05\xe3\xc2\xf3\xd9\xef\x6a\x99\x20\xfe\xd0\xa2\x7b\x31\x4d\x7d\x34\xf8\xea\xe3\x3b\xb1\x7a\xae\x00\x2e\xbc\x9c\xe2\x70\x5e\xcd\x1d\x23\x6d\x06\xc0\xf9\xac\xea\xe7\xf2\x68\x69\x08\x97\x76\x71\x50\xe5\xeb\xac\x42\x9c\x2c\xcf\x29\xd2\x10\xeb\x29\x6f\x2a\x80\xbf\xbb\xcc\xc9\x06\x5f\x76\xab\x0a\x62\x83\x6c\xf3\xc7\x5c\x6f\xcb\xf3\xd8\xa7\x84\x2a\xc2\x04\x2e\x45\x77\x8f\xeb\x6f\xdf\x9f\x0e\x3f\x57\x77\x77\x1b\xdf\x95\x54\x4c\x6a\xd4\x0e\x3e\xbc\xfa\xbf\x84\x82\x51\x37\x89\xdc\x7a\x4e\xf5\x1f\x0b\x57\xa1\x42\x61\x01\x69\xab\xdd\xee\x69\xf2\x83\xa1\xf2\x25\x58\x50\x2f\xe7\xb2\x17\x38\xa6\x2a\x22\x21\xb3\xc2\xee\xf2\x5e\xbc\x40\xbd\x69\x8e\x1e\x1c\xbf\x18\x58\xd0\xc0\xef\x48\x03\x9c\x35\xd6\x47\x71\x3a\x67\x65\xd1\xe3\x91\x3f\xeb\x1d\xa9\x28\x8c\xa5\x75\x38\x3e\x75\xf9\x5a\x23\x9e\x21\xee\x4d\x6c\xa9\x8a\xa4\xa5\x9a\x76\x91\xca\xe0\xfd\x38\x3d\x02\x58\x21\x7b\x67\x60\x3a\xad\x60\x8c\xdf\x4b\x15\x99\x04\x91\x21\xf8\xed\xae\xde\x04\x9a\x66\x2b\x27\xa3\xb0\xf8\x19\xa9\x98\x68\x8b\x93\xe8\xde\xaf\x7d\x89\x15\xf9\x3f\x66\x43\x68\x14\x53\x1f\x94\xba\x1a\xe3\xd8\x48\x70\x39\xb7\x53\x71\x62\xa9\x3d\x56\x8f\xb6\x3b\xf0\xd0\x95\x54\x5c\x09\xec\x4a\xc2\x7b\x53\xd9\x85\xa6\xee\xbe\x45\x6f\x3a\x31\x25\x1f\x2b\x6e\x0c\x66\x3e\xfb\xf2\x0c\x23\x57\x2c\xaa\x12\xa3\xf1\x63\xcd\x0a\x6b\xb7\xf1\xb3\xac\x72\x3d\xf1\x2c\xfe\xe4\xe4\x44\x10\x59\x1e\x78\x0e\x62\x48\x25\xee\xc5\xf9\x3c\x3a\x49\x99\x24\x68\x0e\xf4\x9c\x19\xcf\xff\xe9\x37\xa5\x29\xb5\x49\xff\x98\x65\xf3\x09\xf2\xc0\xef\x23\xd8\x20\xf4\x32\xad\xba\x2a\x29\x29\x42\x43\x3c\x32\x52\xb4\xcd\x27\x55\x6a\xa5\x44\x8c\x19\xbe\xcf\xc6\x51\xda\xb0\x76\x74\x1f\x3f\x46\xda\x42\x4d\x56\xbb\xe2\x9c\x23\x49\xe0\x3d\x9e\xe5\xef\x4a\x07\x10\xf4\x48\xc3\x07\x78\xb3\xe2\xc2\xf3\x4b\x9a\x5c\x8a\xe6\x31\xa3\x56\x72\xc2\x85\x76\x9f\x9c\xac\x16\x86\xf6\x89\x01\xf1\xf8\xba\xac\xf4\xde\xe7\x54\x69\x69\xf0\xd7\x77\x1f\xf9\x64\x41\x50\x86\x5b\xc6\xe3\x51\xd4\x83\xb0\xed\x92\x0e\x30\x55\x26\x95\x18\xca\x3f\x95\xcd\x53\xd9\x08\x6f\x79\x4f\x75\x90\x12\xec\x84\x21\x73\x14\x1a\xa1\x17\x0c\x7f\xdd\x50\x12\x69\xcc\x07\xb1\xd1\x7d\x5b\xd7\x6d\xb7\x82\x20\xda\xed\x15\x2a\xf1\x0c\x53\xc0\x80\xa6\x0c\x42\xe7\xb9\xdc\x64\x45\x5b\xb6\xf5\x95\x50\x2f\xc3\xcb\xa3\x69\x44\x10\xa8\xab\xba\x45\xf0\x56\x95\xbd\xc8\x36\xd5\x8c\x87\x38\xb3\x8d\x0a\xe7\x3f\xb3\xe2\x22\x35\xd6\x21\x89\x90\x13\xb3\x3e\x66\x6a\xb8\x31\x3a\xa4\x80\xe0\x12\xdb\x57\xf7\xf4\x97\xd9\xae\x21\xc5\x09\x0e\xde\x55\xde\x6a\xf8\x79\x1c\xe1\xc3\xfa\x21\x76\xb2\x38\xbb\x20\x86\xf6\xc7\x37\x33\x70\xdd\x14\xdb\x36\x3d\x4a\x44\x63\xe4\xba\x1d\xaa\x0b\x8c\x9f\x8e\x18\xa0\x5d\x4c\x56\x64\xcd\xb8\x94\xa0\xa3\x38\x10\x4e\xfa\xe5\xfc\x58\x09\x95\x67\x7f\xf7\x37\x27\x92\xb6\xcc\xfd\xcf\x7f\xfa\x9a\xbc\x4e\x18\x47\x7e\x89\x75\x18\x18\x94\xf5\xbb\x2d\x80\x7e\x6f\x5d\x5e\x83\x8a\x3e\xcb\xcf\x36\x89\xad\x6b\xf5\x03\xbc\x5d\x97\x45\x79\xa9\x49\x3b\x3d\xef\x44\x03\x92\x8c\xce\x55\x79\xca\xea\x1e\x7a\xa6\x53\x16\x63\xa9\xdd\xd2\x06\xbf\x7d\xef\xff\xae\x08\xb2\x2e\xce\x15\x64\xaa\x3c\xe0\xbb\x3e\x78\x7f\x50\x2d\x62\x8b\xd4\xad\xa1\xb9\x87\xc6\x6b\xcf\xf9\x73\x98\xfc\xb4\x90\x04\xe7\xda\x53\x56\x40\xb6\xac\x3e\x49\xb5\x0c\xac\x24\xde\x33\x34\x28\x6d\xbe\xa0\xf6\x3f\xbb\x01\x92\xc6\xc6\x6a\x83\xdb\xf0\x62\xc9\xc7\xb5\x1b\xa5\x6c\x3f\xd3\xe9\x66\x2c\x64\x7d\x5a\x46\x09\xb6\xf2\x65\x05\xa0\x57\xef\x19\xfc\xa6\xc4\xd7\x85\x35\x78\xef\xaf\xf2\xb2\x9c\x70\x14\xb4\x4c\x81\x46\xbd\xb4\x22\x54\x5f\x2d\x58\xba\x0b\x6e\x47\x4c\x60\xad\x82\x10\xc3\x86\x6f\x59\x9e\x83\xde\x67\x79\xfe\x50\xbe\xf5\x1b\x53\x61\x46\xfe\xf0\xa3\xc0\x58\x2b\x6d\x64\x78\xd1\x55\xc1\xa5\xe6\x0e\x4c\xe3\x9d\xd8\xfc\x68\xd0\x98\x8d\x5b\xee\xfe\x35\xa8\xec\x24\x72\x92\xf8\xcd\x40\x53\xac\x9c\x76\x9f\xab\xb5\x03\x73\x5f\xac\xdf\x9e\xa4\xd2\x1b\x01\xe7\x90\xe9\xfe\xb8\x60\x98\x74\x2a\xea\x8f\xce\x9d\xad\xdf\xc9\x24\x09\x1a\xb7\xad\x74\x31\x10\x5f\x21\x10\x06\xc3\x53\x5d\xde\x97\xaf\x97\xf2\xa6\x93\xbb\x0b\x84\x1a\x6f\xe6\xe7\x88\x2b\xdd\xb2\xa0\x8e\x43\x91\xcf\x27\x65\x40\x38\xc1\x3a\xf5\x4e\x78\x6d\x71\x0a\x34\xd1\xda\xed\xbe\xcf\x9a\x36\x17\x59\x05\x87\x75\x79\x3a\x37\x70\x98\xb1\x84\x80\x0a\xc6\xc6\xb3\xd6\x16\xfe\x03\x6a\x08\x7b\x71\x3b\x0c\xdd\x0b\x51\x80\x4b\x39\x6e\xca\x6a\xff\x71\x9e\xb4\x25\x87\xa3\xb2\x30\x46\xce\xc3\xaa\x78\x7f\xcf\x7c\xa1\x1a\xc2\x38\x20\xbe\x19\xe4\xfd\xbd\x2f\x6c\x0a\xbb\x61\x8c\x8f\xe9\xac\x57\x48\x08\xfa\x5d\x7a\x0a\xa1\x4c\x90\x8f\x6c\x07\x7e\x77\x3d\x84\x4f\xcd\xe8\x28\x44\x94\x06\xf1\x18\x44\x33\x2e\x64\x40\x14\x69\xc1\x06\x18\x00\x3b\x0c\xc4\x04\x88\x74\x8a\x49\x8f\xa7\x34\x68\x4b\x5d\xe8\x37\x83\x0a\xc2\x41\xe8\x76\x31\xa1\x82\xc8\x00\xfa\xe1\x7f\x83\x8f\x2d\x9c\x73\xa1\x3e\xd3\x2d\x81\x98\xc6\x08\x65\x5f\x3f\x8e\xbd\x23\x28\xf0\xc4\x60\xae\xa4\xe1\xc7\x84\x3b\xe8\x36\x27\x41\x80\x12\x21\x59\xed\x5b\x97\x96\x6f\x33\x1b\x95\x10\xfc\x42\xd6\x1f\x12\xaa\xfb\xb6\xce\xd4\xe4\x37\x52\x23\x50\xe3\x64\xd7\xca\x11\x2e\x1d\x04\x35\xa9\xb2\x78\x0f\x63\x8d\x89\xe7\xc7\x15\x91\x4a\xc1\xc7\xf9\xaf\xd6\x4f\xca\x6f\xea\xb2\x74\x5c\x64\x91\x7c\xba\x7f\xbf\x20\xb2\x80\x50\x09\xb7\x55\x34\xd5\x56\x8b\xae\xa0\x14\x24\x09\x84\xe7\xcc\x5f\xb5\x85\x9e\x03\xfa\x40\x69\x93\x40\x6f\x95\x39\x60\x25\x41\x53\x89\x88\x00\x5d\xaa\x16\x71\x4b\xb3\x1d\xb5\x36\x48\x71\x7e\xb1\xf7\x24\x6f\xb2\x5d\xf6\x3c\x61\xd2\x80\x06\x15\x78\xa1\x9f\xa3\xa8\xb2\xe6\x03\x95\x6d\x2f\x94\x46\x00\x02\x11\x79\x10\x6d\x17\x31\x8f\xe0\xe6\x00\x4c\x20\xe8\xf9\xf1\x61\xd3\xff\xc9\x04\x09\xb8\x35\xf4\x4e\xa0\xdf\xed\x68\x3e\x33\x01\xb5\x85\xc9\x3e\x62\xe7\xbf\x85\x87\x2f\xbe\x53\x26\xe8\x42\x53\x37\xb3\x89\x4a\x7b\x63\xf2\x76\xa0\x6e\xce\x1a\x0f\x26\x50\x01\xba\x55\x8a\xe2\x19\xf2\xc7\xe2\x0e\x84\x86\x0a\x2d\x89\x26\x2c\x25\x13\xe8\x14\x63\x94\x4c\x95\x2b\xd9\xcd\xa9\x45\x3f\x99\x98\x40\x4b\x0c\x7d\x10\x83\xe0\x2d\xd5\xfd\x17\x4d\x87\x4f\x9a\xff\x7b\x9a\xac\xfe\x8b\xba\x8f\xdc\x10\xc6\x6d\x62\xf5\x26\xce\xdd\xe2\xe8\x8f\xcc\x14\x60\xf3\x79\x75\x7d\xbd\xdd\xec\x76\x13\x6c\xac\x61\x9a\xa3\x4c\x50\x05\x42\x1f\xac\xe7\x91\x5d\x10\x0e\xa5\x39\xf8\x65\xd1\x07\xed\x26\x24\x11\x7e\x98\xeb\xfd\x55\x29\x9a\x89\xbb\xf8\xe2\x3c\x62\xc2\x34\x00\x07\xaa\xcb\xa1\x3a\xf4\xc7\x49\x79\xec\x85\xff\xb1\xe5\xd4\x4d\x16\x3b\x55\xba\xf7\x99\xcc\xa0\x5a\x26\x34\x76\xd1\xdb\x43\xdd\x3c\x56\x17\xdc\x37\x13\x13\x91\xba\xe3\xf9\xe8\x0a\x71\x47\x38\x0b\x8f\xbf\x0c\x13\xc7\xb1\xb0\x06\xb3\x28\x3b\x69\x93\x28\x7f\x5a\x5c\x45\x98\x75\xdd\x64\xc5\x88\x0d\xe8\x36\x8a\x38\x46\xbc\x5f\x37\x9b\x55\x22\xab\xa1\x5a\x8b\x3c\xc7\xb4\xd0\x8f\x48\x24\x22\x96\x9e\x4a\x6f\x2b\xed\x37\x08\xdb\xf4\x5b\x97\x45\xdd\x54\xad\x6a\xca\x6a\x99\x5d\xef\xc6\xcb\x88\x25\x83\x6a\xfe\x8d\xe8\x76\xf8\x58\xd6\x80\x31\x32\x31\xe8\xf2\xb8\xcf\x8a\x8f\xaf\xed\x49\x5c\xc2\x42\x66\xe3\xc1\xca\x3b\xf7\x42\x4f\x30\x3c\x5e\x15\x84\xc9\xb8\x89\x84\x21\x2c\x16\xfd\x7a\x2e\xa2\x51\xd2\x60\xa9\xdc\xe5\xe6\xc8\x83\xaa\xc4\x09\x9a\x4f\x9a\x95\x46\x01\xf7\x5c\xe9\x27\x51\x35\xb5\xf3\xbe\xfe\x99\x35\xc7\xac\xd8\xa2\xe5\xd5\x2f\x83\x53\xa3\x03\x0b\xfa\xcd\xea\x7d\x95\x9d\x73\x70\x9d\xd1\xe9\x20\xa0\xb6\x0f\xfe\x0c\xcd\x4d\x89\x9a\xd5\x73\x26\xbd\x01\xc6\x30\x72\x78\xda\x6e\xd0\xe2\xac\xaf\x80\x1a\x90\x10\xa6\xbe\x50\x37\x6d\xbc\x77\xdb\x4c\x34\x32\x03\x6f\x91\x06\x31\xfd\x71\x13\x18\x0c\x6b\x1e\xe0\xcd\x22\x46\x47\x6a\x42\xd3\x27\x6b\x18\x43\x92\xda\x7f\xda\xd3\x79\x7e\x10\x2e\x98\xd5\xef\xff\x4f\x5b\x7b\x56\xc1\xba\x2f\xe4\xcc\xaf\xc6\x28\x6e\x6d\x0c\xbb\x7c\xe5\x93\x06\xa7\x31\x46\xc7\x7e\x2a\x46\xe0\xc1\x7c\x39\x61\x41\x90\xc6\x56\x6c\xd9\xe5\x3e\x59\x59\x74\xf9\x86\x4b\xaf\xfb\xe9\xdf\x85\x12\x2c\x20\x9c\x06\x83\xa7\xcd\xaa\xae\x4b\xd5\xc5\x2a\xda\x87\xe3\xbf\x9a\x5b\x59\x40\x79\xe4\x23\xe0\xc7\xb7\x7e\xf6\x63\x01\x15\x61\x24\xc7\xde\x27\xbb\xa6\x3c\x9f\x47\xdb\x0d\x47\x10\xe5\xb9\x2c\xf3\x49\xa9\x84\x05\x2c\xb2\x7d\xa3\x1f\xdf\x9f\xac\xca\xb0\xb7\xb1\xdb\xdf\x6e\xb6\xac\x1f\x95\x10\x99\x7a\x26\x41\x9e\xaf\xcb\xb6\xaa\xe7\xb7\x82\x29\x0b\xf7\xb7\xb2\xc3\x88\xc6\xdc\x97\x9e\x8d\x53\xf7\x47\x52\x11\x13\xd3\x5c\x76\xff\x56\x62\x5f\xd8\x8d\x08\x25\x43\x27\x06\xfb\xf9\x6a\x67\xa6\x3b\x7a\x0f\x58\x10\x1a\xa3\x7a\x03\x70\xb8\x5d\x6f\x16\xe3\x30\x16\x44\xa9\xc2\x77\x5f\xb6\x1f\x2e\x6a\x1b\xa3\x69\xdc\xa0\x38\x61\x68\xa4\xf6\xb4\xbd\xfd\xb1\xda\x6f\x0e\x73\x06\x04\x0b\x62\x25\x53\xdf\xcb\xbd\x86\xd7\x31\x95\x9b\x05\x9c\x44\x3e\x24\x7e\x68\x4f\xee\xb9\x7f\xaf\x41\xdf\x0c\xd8\xea\x5f\x3f\x55\x4e\x12\x44\x27\x35\x50\x37\xb7\x0e\xe4\x5b\xf5\x87\xe7\x8a\x78\x51\x92\xf7\xf3\x0c\x24\xc6\x02\x6e\x62\x39\xbe\x9d\x3f\x65\xf3\xb9\xe2\x18\x0b\x12\x0a\xa9\xa7\xbb\x43\xf5\xd8\x36\xe7\xb6\x59\x35\x5d\x7e\x34\x3d\xa5\xc4\x44\xf8\x42\x19\x91\xe7\x52\xa8\x97\x8b\x2b\x98\x1e\x56\xa4\x56\xd6\xcb\x33\x3b\x91\xe9\xba\x3e\x8a\xa2\x80\x0b\x4c\xcf\x6c\x57\x19\xc4\xd6\x15\x24\xb7\x66\x1b\xcd\xe4\xe6\x4a\x92\x50\x70\x77\xfe\xc7\xc3\x66\xff\xc9\x65\xc9\x24\xc1\xda\xc9\x49\xbc\x3b\x6c\xc6\x13\x54\x36\xf2\xee\x8f\xa4\xac\x2a\x3a\xe6\xa1\xdd\xec\x89\x97\xe4\x4c\x0c\xc2\xc0\x8f\x32\xa1\xb6\xd6\xd7\x1a\x36\x79\xf6\x9c\xc9\xe1\x4b\x51\xdd\xff\xf9\xea\x70\x17\xb2\x2e\x27\xcf\x2c\xd0\x01\x20\x99\xf7\x7c\xcc\x86\xbc\x94\x05\x5a\x18\x3c\xf6\xc1\x26\x4f\xcd\x87\xcf\x28\x71\x9e\x9b\x5e\x90\x36\x04\x95\xfb\xf2\xf2\xb9\x37\x9f\x5e\xbe\x74\x6d\x22\xb4\x3d\xfa\x3f\xab\x5b\xff\x43\xa0\x03\xe4\xa6\x7c\x81\xe6\xad\x1e\xec\x3a\xdc\x56\x13\x5a\xc6\x96\xd3\x55\xdf\xde\x4e\x3e\x2d\x12\xd0\x44\xdb\xf8\xbb\x46\x2a\x89\x2b\x18\xd4\x8b\x52\x1e\x8c\x04\x11\x41\x0a\x5c\x03\xe2\x64\x0b\x75\x63\xa3\x81\x6e\x3b\xc3\xea\xff\xc3\xc3\xbe\xff\x93\x4c\x11\x97\x61\x9d\x5b\x50\x2d\xfc\xb2\x18\xbe\xa4\x4f\xc3\x08\xd1\x41\x98\x8e\xe9\x4e\xb3\x2e\x28\x23\x54\x87\x71\xe2\x5e\x98\xa7\x5f\x7c\x09\x84\x1a\x83\x39\x4c\xaf\x50\xfd\xb9\x0b\xd6\xff\xdf\x7f\xdd\x2f\x85\x94\x0a\x35\x2e\x8f\xcd\xe4\x01\x66\xa3\x99\x81\x68\x40\xad\xac\xc5\xf9\xb3\x81\x91\xed\xef\x1d\xda\xe2\x2c\xd4\xcb\xaa\x69\x84\x7a\xc1\x60\xa2\x9e\xdd\x93\x30\x4e\xb0\xcd\x79\x86\xe7\xcd\xfe\xeb\xf7\xdd\xf5\x6c\x7b\xc4\x12\xe6\x0b\x1f\xd9\x7b\x97\x72\xda\xee\xce\x62\x57\x67\xfa\xae\x93\x28\x64\x4e\xd1\x7d\xdc\xd9\xf0\x1b\x23\x8a\xa5\xda\x3f\xdb\x7c\x0a\x36\xfe\x1d\x99\x94\x91\x28\xa5\xc2\xd9\x96\xff\x35\x92\x27\x66\x24\x12\x01\xd6\xb2\xbe\x6d\xfb\x17\x2a\x4e\x7d\x7d\x13\x01\x75\xf3\x5f\xf8\x57\xf8\x6f\x3f\x50\x59\x05\x69\xfb\xea\xf7\x0c\x98\xe9\xdc\x47\x38\xe3\x3c\x1c\x9a\x82\xfb\x63\x05\xf5\xb1\x07\xc0\x32\xc2\xc3\x18\x1b\x9f\x96\xaa\xfc\x15\x44\xd5\x1c\x77\x4d\x2f\x51\xc7\x08\x8f\xa8\x0a\x26\x40\x86\xea\x9f\xa5\x9c\x3e\xf0\xc4\x8d\x4d\xa8\xb5\xb2\x7e\x06\x04\xca\x5c\x36\x51\x19\x49\x89\x61\xc4\xe5\x18\x3f\x21\x37\x83\xf5\xd8\x7c\x20\x55\xbe\xcc\xa7\xda\xaa\x7a\x68\x4f\x8f\xc6\x2d\x7b\x7e\x42\x25\x69\x4c\x12\x77\x5f\x57\x79\x7e\xff\xe1\x5a\x96\xb7\x7a\x18\x91\xa4\xf8\x61\xec\xab\xb2\xf8\x32\xba\xec\x54\x04\xd8\x46\x40\x49\x98\x34\x99\xff\x36\x58\xda\x94\xe8\x82\xc7\xb1\xea\xbb\xdf\x5d\x04\x29\xc2\x86\x1f\xab\xf3\x11\xda\x7a\x5b\x7e\x88\x7c\x97\x89\xd3\x56\x64\xf9\x9b\xf8\xe8\x7f\x5e\x68\xae\x9d\xb2\x21\xfc\xd5\x4b\xb9\xb8\x8d\x92\xa6\x48\x8f\xfa\xb2\xba\xdf\xcc\xe0\x51\x8c\x48\x49\xb1\x4a\xf3\xe7\x66\xdc\xd5\xeb\xfe\x9e\xa0\xb8\xc5\xd9\xae\x0c\xfb\x72\x2f\x5e\x60\x55\x6f\x7b\x08\x3d\x23\x2a\x90\xb1\x6d\x4f\x58\x7a\xe3\xe9\x9c\x43\x33\x6c\x8d\x28\x46\xbe\x0e\x26\xb0\x73\xe9\xc9\xda\xa2\x84\x10\xaa\xe0\x47\xc6\x49\xe4\x80\xd9\xdd\xbb\x8e\x4f\xd3\x7e\xed\xde\xfb\xd2\x0f\x84\xd4\xbb\x40\x78\xef\x93\x2f\x55\xd9\x9e\xeb\x61\x80\xc4\xef\xca\x4b\x83\xae\x9a\x06\x0a\x0d\xc3\x83\xd4\x81\xa5\xdf\xe0\x87\x75\xd3\x16\xfa\x7a\xf5\xf8\xc7\x67\xc4\x2f\x46\x34\x0b\x52\xa7\x41\xe5\xa8\xab\x43\x74\x32\x7d\xfd\x35\x13\x56\x18\x4f\x7c\xcc\x83\x37\xa2\x19\x60\x66\xd5\xad\xb3\xad\xcc\x33\x35\x54\x10\x18\x81\x20\xc2\x20\xf3\x7f\xdb\x4c\xbd\xac\xcb\xe2\x15\xaa\xde\x4c\x8d\x11\x88\xa1\xc7\xc3\xd9\x5b\xb2\x2f\x77\x56\x02\x6c\x76\x02\x86\x45\x6c\x50\x2c\xb9\x2a\x17\x95\x8d\x19\xe9\xd6\x3d\xdd\x1b\x33\x77\x27\x32\x53\xfd\xf6\xe3\x84\xad\x2e\x78\xf5\xc2\xf1\x6d\xa1\x01\x21\x88\xfb\x6a\x0b\x6c\x4f\x43\x17\xbb\x6f\x41\xc1\x39\x83\xa2\x19\x89\x3d\x31\x1a\x84\x29\xd6\xf8\x95\x6d\x2d\x8d\x30\x26\x57\x1f\xf7\xa0\x33\xd1\x94\xd5\x45\x7a\x40\x03\xc5\x29\x9f\x5a\xf4\x75\xbb\x5c\x0e\x24\x01\x60\x3d\xd8\x79\x20\x8e\xea\x85\x8c\x92\xc4\x3a\x6b\x63\x9f\x60\x2a\x90\xee\x47\x68\x65\x45\xa4\x8f\xe5\xdb\xc8\x55\xe4\x27\x64\xb3\x81\x94\x12\x44\xe5\x1c\x0a\x78\xdb\xc2\xd9\x0b\x72\x4f\x27\x5f\xca\x38\xd7\xce\xd6\x0c\x5e\xcb\xcc\x0a\xf3\xcb\x45\x9b\x82\x8b\x3d\x2d\x38\xd3\x99\x32\xd9\x88\xc0\xc1\x3a\xa6\x17\x1c\xd2\x18\xb1\x59\x0e\x12\x33\xfe\x62\x69\x18\x07\xd8\xdb\x77\xf7\x7a\xd7\x88\x17\xb8\xe4\xfb\xce\x8e\x27\x62\x04\xa3\xfa\xa2\xcb\xae\xcc\x75\xf6\x19\xe5\x8d\xd1\x48\x00\x06\xfd\x12\xf2\xb2\x78\xae\xf7\xe5\x05\xa2\x9d\x21\xe7\x5b\x0f\x4b\xf1\x60\x1a\xed\xb6\x27\x4c\x27\xac\xd7\xa2\x15\x85\x5e\x24\x72\x30\x9a\xc4\x76\xa5\x86\x57\xa8\x3e\x48\xe4\xaf\x32\x65\x91\xf6\xf5\xbb\xf6\x03\x2b\x2a\xdd\x12\x50\x5f\x7d\x5c\x28\x60\x33\x9a\x42\x88\x2a\xe3\xe8\xac\xea\x3e\x88\x4f\x34\xa9\x67\x8f\x44\x78\x2e\x01\xce\xf8\x3b\x74\x3b\xa9\x6f\x4a\x5b\x9d\xf8\x63\x3e\x56\xf1\xc1\x39\x66\x5d\xbe\xcc\x4f\x43\x44\x81\xe9\xf3\xc0\x8b\x67\x2a\x62\x0b\xac\x6e\xca\xef\x59\xd1\x4c\xbf\x34\x91\x24\x02\x06\xe8\x88\x97\xc3\xb9\xce\x9e\xa1\xbe\x90\x6a\xef\xf7\x01\x8b\xe0\x2d\x4f\x70\x8f\xd8\x38\xf2\x3b\xc1\x18\xbf\x67\x6a\x0d\xd7\x75\x79\x40\x56\xc0\xa1\xf9\x45\xcc\x45\x85\x10\x89\x2b\xd7\x3f\x88\x13\xfc\xac\xb2\x06\xd9\xd7\xd3\xc7\x2d\x93\x38\xe9\xed\x1a\xca\xca\x4d\xa3\xdd\xd4\xdb\xe3\xdc\x7f\x99\x25\x51\xb4\x87\x71\x65\x36\xef\x5b\x31\x9b\xd5\xa8\x52\x31\x26\xd1\x96\xd2\x79\x53\x56\x84\x3a\xbf\xc9\x5f\xa6\x51\x54\x81\x24\xe1\x48\xc1\xe9\x76\x9c\x7e\x2e\x86\x6e\x54\x27\x09\x96\x40\xec\xf2\xe3\xe0\x2c\x0b\xca\x3d\x8c\xea\x34\xf4\x5a\xa9\xa6\x74\x73\xdf\x7f\x47\xaa\x65\x54\x03\x30\xd1\x9b\x23\x1f\x10\xbd\x77\x10\xa7\xf1\xfc\x06\x24\x46\xca\xf8\x76\xf3\x3f\xdf\x37\xbb\xfd\x61\xbd\x7a\x58\x6f\xee\x36\xd7\x87\xab\xbf\x0e\x77\x9b\x87\xeb\xcd\xf6\xb0\xdb\xaf\xf6\xdf\x77\xfd\x0e\x54\x62\xdf\x11\xc1\xe9\x28\x68\xbe\xc5\xb5\x42\xcf\x6e\x26\x40\x94\x12\x57\xfa\x72\x16\x23\xd6\x8f\xed\xb3\x4f\xe6\x93\x07\x67\xe2\x34\xf4\x12\xff\xc5\x33\x2a\x84\xb7\x17\x61\xf9\x7c\x1f\x19\x81\xf0\x20\xea\xb7\xde\xba\x7a\x4c\x6c\x62\xd4\x98\x10\x4f\xb0\x5b\x08\x7b\x09\x4b\xb7\x11\x73\x2b\x3e\xd2\xd9\xb4\xab\xe6\x35\x52\x2d\xec\xbb\x73\xd7\x4f\x99\x8c\x44\x12\xc5\x03\x36\xa2\x76\xcb\x36\xf5\x13\x0d\xa3\x49\x82\x48\xb9\x6e\x71\x5b\x39\x85\x9c\x71\xcf\x81\xb1\x6e\xae\xc3\x1a\xc6\x31\x43\x40\xcb\xa0\xd2\xd3\x6d\xe3\xcc\xa1\x79\x1e\xe0\xbd\x59\xa4\x2c\x2f\xde\x02\xc6\x62\x15\x8c\x35\xc3\xbc\x4e\xdf\x6e\x54\xf8\x9e\x81\xcf\x19\x0b\x03\x6b\xd1\x7c\x57\x22\x52\x0c\x46\xb6\xfe\x89\x1f\x12\x5a\x68\xb4\x7b\xad\xf7\x16\x06\x32\xff\x5e\x59\x08\xb6\xd3\x73\x16\x1f\x57\x1f\x9b\x4a\xd1\xe0\x8f\xd9\x4f\x81\x48\x8c\x77\x7d\x6e\x60\xa5\xbb\x88\x25\xab\x11\x35\x77\xd1\x3c\x64\x2c\x0a\x2d\x86\xe5\x70\x76\x91\x89\xf5\x60\x9c\x8f\x32\x36\xf9\xde\x7e\xfb\x32\x5e\xd3\x58\x9c\x32\x6e\xad\x40\x27\x82\xd9\xd3\x6f\x92\xc5\xa9\x0c\xb4\x87\xd6\xcc\x8c\xa3\x97\x6f\x72\x0c\x1c\xa3\xde\x87\x52\x42\x3e\xf9\xc5\x24\x90\xdc\xa5\x03\xd7\x60\xa0\xa8\x2f\xe4\x38\x67\x87\x4a\x48\x62\xfa\x94\xb8\xc4\x8e\x83\x9b\x41\x68\x7f\x4c\x9a\x70\x97\x3e\x7c\xdf\x5d\x8f\x08\xb8\x8c\x25\x69\x80\xf8\x60\xcc\x01\x1f\xe0\xed\xb6\x71\x53\x9c\x1f\x90\x52\x83\xc5\xcb\xa7\xed\x7a\x4f\x82\xe0\xb0\x3d\xec\x37\xab\x7b\xbf\x55\x84\x0a\x3d\xcd\x5c\x79\xf2\x57\xa6\x19\x8c\x89\x48\xa2\xad\xed\xf6\x6e\xfd\x34\xe2\x3c\x32\x26\xe2\x18\x06\x55\x2b\x3c\xbf\xcd\xf5\xe6\xcf\xd9\x33\x12\x89\x95\xe0\xb2\xe5\xaa\xaf\x90\x6b\x0b\x61\xf2\x9b\x05\xb7\x1e\x07\xa8\x36\x72\x95\xe9\xc9\x4a\xc6\x84\x61\x11\xbe\x07\xcf\x88\x6a\xbd\xb0\x43\xfd\xe4\x41\x49\x1e\xa3\xc8\x6f\xd5\x65\x1f\x63\x30\x17\x63\x52\x02\x46\xce\x77\xc3\xed\x50\x06\xb0\x2f\xf1\xad\xcc\x5f\x8e\xe2\x12\x58\xc1\x98\x96\x1c\x55\x24\x0e\x8e\x2b\xec\xcc\x33\xca\xb6\x2a\xc4\xa9\xd7\x36\x67\x4c\x9b\xd0\x6b\x6b\x62\x46\xb8\xcd\xd4\x8b\x25\xe3\xf4\xbf\x0f\xc4\x6a\x95\x5d\xed\xef\xd7\xfd\xdf\xc2\x40\xb0\x41\x0a\x78\x64\xd1\x37\x9c\x02\x84\x69\x68\xdb\xc4\x06\x75\x32\xcb\x62\xf6\x09\x1a\x69\x35\xa9\xcf\x55\x39\xe8\xd2\xb0\x30\x60\xda\x9a\x92\x14\xfa\x07\xf2\x24\xfa\x0d\x11\xb5\x9a\x43\xd6\x9f\x71\xf6\x7b\x21\x09\x18\x76\xf9\xf7\x50\x37\x23\x85\x2b\x16\x12\x99\x9a\xd8\x63\x4c\x3d\xc2\x69\xdc\xd1\xef\xbb\xe3\x2c\x64\x81\xc4\x1c\x12\x55\xe0\x91\xa9\x7f\x87\xa4\xa0\x79\x9d\xcd\x0f\x0f\x93\x84\xcd\x18\xdd\xfd\x3a\x37\x3a\x2a\x07\xec\xf8\xbb\x1c\x51\x5b\xe9\xfc\xe9\xa1\xc2\xc0\x36\x59\x46\x16\x70\xd3\x17\x21\x0c\x53\x2a\xf8\xc8\x67\xb3\xbe\xfa\x78\x3c\x4f\xc2\x84\x25\x78\x1d\x0b\x43\xa9\xf0\x05\xfa\x5a\x16\xdd\xf2\x50\x3f\x40\xf3\x56\x56\x2f\x78\x8c\x9f\x59\x05\xec\x8f\xd1\x40\xb4\x02\xdb\xac\xee\x86\x92\x8c\xdf\xa8\x34\x36\xa7\x4b\x63\xa0\x72\xbf\x6b\xf3\xb8\x7a\x4e\x28\x67\x61\x94\x24\xd2\xc6\xe8\x28\x79\x7e\x0d\xd0\x97\x10\xc2\x28\xd1\x98\x8e\x28\x91\xe7\x5b\x50\x19\x66\x53\x9f\xae\xb9\x93\xa8\xc1\xff\xff\xe1\xce\x46\x32\x42\x53\xb9\x43\xdd\xca\x6b\x91\x2d\xc2\xca\x58\x18\xa9\xc8\x9a\xe7\x95\x3b\x61\x60\x07\xc5\x32\xb7\x8e\x85\x31\x4d\xf0\xdc\x9e\x6e\xd6\xb3\x2b\xe2\x71\x68\x19\x0b\xe2\x65\x30\x3e\x41\x7a\xd3\x2f\xea\x88\x21\x37\x40\x1c\x2d\x62\xbd\xd9\x87\x0b\x5c\x7a\xff\x35\x84\x29\xb5\x4a\x64\x57\xab\xdd\x06\x6d\x21\x0f\xfb\xc7\xc3\xfa\xf1\xf1\x9b\xbf\x6f\x82\xda\xde\x88\x12\x95\xbe\x11\x0a\x5e\x7b\xa2\xbb\x5b\xfa\x42\x19\x0b\x97\x45\xa3\xbd\xe8\x3c\xac\x19\xdd\x36\x29\x18\xa4\x63\x4d\x8f\x53\x76\x59\x43\x9e\x5d\x8b\x0a\x12\xac\x3d\xc2\x3b\xa8\xb6\x97\x50\x63\xa1\xa2\x1c\x85\x12\x67\x14\x3f\x16\xaa\x30\x74\x21\x8a\xb5\xaf\xc0\x76\xee\x28\xfa\x0b\x55\x6c\xad\xf9\xac\x0b\x05\x8c\xf5\x63\xdc\x08\xed\xc2\x8b\xfb\xd5\x9f\x87\xf5\xe3\xfd\xfd\xed\xc0\x7b\x3b\xdc\x3e\x1c\x76\x9b\xf5\xe3\x83\xa7\x0c\xb3\x50\x0b\xc2\x2d\x57\xe0\xaa\xad\x86\x06\x58\xa8\x25\xb1\xd5\x90\x9d\xd7\xa8\x9a\x06\x53\xa1\xd6\x04\xe1\x97\xae\x08\x74\xa8\x40\xbb\x6a\x81\x1f\x00\x94\x5a\x3a\x43\xf1\x0d\x3e\xea\x2d\x2c\xdb\x5c\x77\x03\xa5\x1a\x8c\x95\x6d\x93\xe1\x67\xf6\xd9\xeb\x01\x31\x20\x94\xef\xb1\xc8\x3f\x46\x93\xcd\x85\x1f\xb3\x1f\x6e\x52\x61\xe6\xd1\xb2\x6e\x27\x0b\x69\x68\x88\xc1\xd0\xf2\xbb\x2b\x5a\xb8\x98\xfd\xd7\xcf\xd6\xc4\xd2\x6b\xc5\x3e\x55\x3d\x7c\x92\x85\x86\x27\x56\xee\xd4\x3a\x11\xc2\xe4\x5d\xbf\xe0\x2a\x8e\x5a\x99\xa1\x49\x62\x54\x81\xfe\x51\x8e\x17\x6a\x6c\x66\x2c\x10\x68\x58\x68\x64\xa4\xec\xdb\x5d\x94\x45\xf6\x37\xe8\xbe\xf3\x3d\x60\xdc\x58\x14\x04\x3c\xb4\x5d\x44\xd3\x16\xfa\xae\x54\x2f\xa3\x60\x34\x0a\x88\x31\x56\xda\x53\x83\xf3\x53\x59\x9e\x10\xa2\x80\x46\xd8\x37\xb3\xc6\xb1\x9b\xe6\xe8\xb3\xe5\xc5\xdb\x13\x05\x89\x8e\x92\xfe\x67\xbd\xa0\xe3\xec\x90\xd2\x45\x1d\x65\xad\x84\xe5\x3d\xb6\x9f\xc2\x10\x58\x44\x18\x61\x56\xa9\xb4\x5b\xfb\xf0\x5c\x2f\xea\x3e\x11\x31\xda\x53\xf8\xbf\x88\x1a\x03\x96\x27\xd5\x3c\x1a\xeb\xb5\xd8\x2e\x0c\xf7\x25\x89\x2b\xd1\xa8\xa3\x6b\xe6\x7f\x06\x5d\x63\x11\x25\xd2\xfa\x4c\x97\xf9\xcb\xa0\xea\xce\x22\xaa\x05\xb8\xe0\xd0\xa6\x02\xa3\x32\x66\x44\x8d\x44\x7a\x27\xa6\xce\xd6\x54\x20\x2b\x9e\x17\x61\xde\x6e\x0f\x26\x92\x74\x90\x73\xb1\xf2\x65\xcb\x21\x6e\xc4\x14\x45\x4e\x50\x5b\xa0\x84\x96\x25\xc9\x0f\xab\x50\xc4\xb4\x44\x89\x04\x6c\x20\x3f\xe5\x6d\x3d\x08\x9d\xb1\x28\xa4\xca\xce\x44\x96\xc6\xfe\x0c\xdf\xcf\x7f\x2c\x3e\xcf\x30\xb1\x86\xeb\x35\xa0\x32\xf7\xeb\x72\xd9\x2d\x8a\x02\xab\x6d\x67\x75\x01\x46\x70\x3a\xbf\x5d\x92\x00\x41\xd9\x0f\x99\x82\x2f\xed\x47\xff\x77\x10\x9e\x2f\xba\x69\x8e\xd8\x27\x70\x22\x90\xf6\x6e\x2e\xa2\x4d\x58\xc4\x43\x5b\x3e\x39\x8b\xaa\x29\xa0\xa2\x87\x2e\x54\xf3\xc7\xe4\xb1\xe5\x01\xd6\x4e\xb7\xbd\xfe\xc4\x63\x8a\x45\x9c\x5b\x4b\x4e\x34\xe1\x9a\x39\xaa\x0c\xdf\xeb\xb0\x18\x44\x3c\x49\x51\x2c\x0b\x2b\x71\xfe\xf7\x92\x50\x27\xde\x1e\x5c\xbc\x4f\xfa\xf5\xfd\x10\x65\x6d\x03\xb3\xda\x8a\x18\x8e\x5c\x4b\x58\x94\x0a\x2a\xc2\x11\x97\x62\x52\xf5\x5f\x7e\x4d\x44\xa8\x51\x99\xf7\xba\x95\x22\xfb\x52\x01\x14\x58\x63\x5d\x1f\xc5\xf0\x88\x55\xe0\x48\x14\x9e\x3d\x52\xb6\xd5\x48\x8d\xca\x8f\x62\x14\x6b\x29\x45\xf9\xda\x9e\xa6\x51\x54\xa4\x84\xc4\x22\x64\x9e\x35\xcd\x3a\xef\x62\x8f\xdb\xfe\x81\x6a\x62\xb9\x0b\xdb\x0d\xda\x33\x4f\x8c\x95\x59\xa4\x95\x49\x5d\x37\xa6\x0f\xd2\xfa\xc3\x02\xb1\x08\xb9\xfb\xdd\x66\x3b\x9d\x79\x96\xbe\x7e\x30\x36\x8f\xed\x0e\x55\x65\x8d\x2d\xed\x35\xe2\x74\x9e\x5d\x88\x09\x2d\x15\x61\x0c\x9e\x3f\x95\x95\xce\x44\xee\xf2\xe5\x6c\x54\x58\xfa\xaf\x52\x8d\x38\xa0\x56\xb4\x4a\x43\xb7\x3a\xf9\x82\xff\x12\xbe\x88\xa1\xf4\x57\xe0\x30\xf7\x4b\x6a\x8a\xb3\xd1\x2a\xb6\xa5\x84\xac\x69\x3e\x2e\x3a\xd3\x93\x97\x3d\x26\x91\x95\xcc\xa8\xa1\x39\x88\x5f\xa0\xcd\x59\xcc\xe2\x60\x50\xbf\x74\x10\x6a\x16\x87\x8c\x01\x9d\x44\x30\xe5\x75\xd5\x3e\xff\x57\x76\xa3\x2c\x0e\x23\x1e\xa5\xa3\xb7\xd3\xca\xd4\xa8\xe6\x27\x7c\xb6\x06\xc4\x5d\xfc\xa5\xbd\xec\x6e\x7d\x5c\xc2\xd2\xb1\x38\x0a\xac\x39\xbf\x16\x85\x73\x30\xb1\x65\x95\xf1\x1b\x18\x47\x9c\x6a\x47\x45\xd9\x14\x7a\x5e\x27\x8d\x23\x6e\x52\xef\x61\x57\xbe\x0f\x16\x18\xbd\x31\xad\x1f\x27\x62\xfc\x5c\x0e\x35\x34\xdb\xac\x7e\xe9\x17\xcc\x4f\xaa\xda\x71\xa4\xc3\xfe\x61\xfe\xcc\x74\xdf\x86\x8f\xe3\x20\x04\x7b\x69\x73\xa1\x57\x16\xc7\x34\xa2\x96\xfb\xd3\x1b\xf0\x2e\x2a\xbf\xf9\xe1\x8c\x62\x3c\x7e\xab\xca\xc1\xac\x8e\xc5\xb1\x24\x68\xa6\x76\xd5\xe6\x2f\xe3\x32\x44\xcc\x63\x11\x58\x30\x6d\xf1\x0c\x3f\x8f\x99\x73\x4c\xf5\x4f\x6f\x98\xa5\x62\x0e\x8a\x0c\x1c\xa9\x55\xab\xb3\x31\xd2\x6f\xf9\x85\x4c\x82\x00\x35\x10\x6f\x35\x14\x4d\xd6\x7c\x58\x44\xd0\x6f\x0b\x7c\x7e\x6f\x12\x20\xd8\xf8\x54\x16\x5d\xf8\x7a\x38\x9e\x67\x4f\x2a\x21\xc0\x06\xfb\xcf\xc3\x99\xcd\xb7\x53\x6b\xc6\xd2\x64\x27\x38\x40\xa1\x0f\xa3\x7c\x2a\x4e\x22\xab\xf0\x2f\x33\xfd\x58\xfc\x2c\x0b\x3d\xdc\xf3\x24\xb2\x8e\xc2\x42\x6b\x4f\x14\x9b\xc6\x4c\x93\xc9\x24\x4e\x52\xcb\x79\x6a\xa0\x6e\x5c\x75\x66\x07\xcd\x43\xd9\x38\x23\xcc\x6e\xcd\x7a\x28\xc7\x9c\x19\x16\x27\x92\x60\x67\x59\x67\xb5\x6c\x2b\x5b\xd5\xf2\xdb\xd2\x84\x98\x70\x84\xa3\x78\x10\xea\x01\x1a\xb3\x85\xa1\xf4\xb3\x1c\x56\xc5\xa9\x0a\x94\x63\xdd\x3a\x00\x63\x56\x16\x5d\xc8\x8d\x46\xb7\x17\xf4\xf2\x65\x08\xc1\xf4\x8b\x12\x5c\x86\xd1\xa0\x0e\x85\x52\xe4\x9b\xe6\x68\x5d\x90\x76\x22\xd7\x53\x26\x38\x8b\x85\x4e\xd0\x9c\x44\x43\x0e\x68\xc9\x53\xcd\x9e\x8a\x30\xa1\x6f\xaa\x5b\x43\x1a\x7f\xdd\x2a\x20\x91\xfb\xa9\xc3\x39\x17\x05\x34\x87\xec\x22\x25\x89\x55\x90\x82\x17\x2a\x40\x45\x1b\xdd\x25\x3e\xf3\x70\x30\x56\x0a\xb0\x53\xed\x52\xfe\x3e\x08\x23\xf1\xbf\x3f\x79\x59\x35\x30\x24\xa9\x7b\x8f\xd8\xfe\xbc\x34\x44\x98\xbe\xd4\xa7\x2e\x7a\x40\xd0\x0d\x76\x22\xfc\x76\x88\x2d\x28\xe4\x4f\x95\xb7\x75\xf6\x3a\x72\x44\x63\x31\xa4\x11\x4e\x12\xbb\x1f\x77\xfe\x4f\xc6\x90\xb8\xd7\xf2\x47\x0f\x67\x0b\x4c\x1c\x7f\x96\xc6\x18\xcc\x77\xc4\xab\xc8\xf2\xee\xfd\xf1\x85\x86\xc9\x29\xf3\x20\xe6\xa8\xb2\xa5\xcb\x62\x64\x8a\xe7\x37\xca\x00\xf1\xcc\x57\x63\x8f\x36\xc6\x03\x65\x3b\xb3\xb5\x6b\x94\x3f\x8c\x81\xce\xe3\xf7\x9a\x07\x3a\xc1\x4a\xdb\xe6\xfd\x2c\x0a\x2d\x0a\xed\x6c\xbd\x67\x27\x41\x03\x6a\x97\xe5\xec\x15\x5f\xb4\x47\x63\xfc\x6f\x51\x67\x7a\xde\x25\x98\x0e\x73\xdf\x8d\x58\x9e\x1f\x39\xa5\x12\x93\xf5\x55\xdb\x94\xbb\x5e\x7b\x91\x71\x16\x5b\x2d\xb1\x43\x7d\xcc\x4c\xb3\x1d\x5b\x3f\xcf\x8e\xc0\x78\x10\x0d\xca\xdd\x2e\xc9\x1c\x4b\xd1\x32\xce\x54\x00\xde\xd4\xb6\x11\x95\xf5\x27\x1b\x17\x02\x78\x44\x38\x42\xe4\x4f\xd6\xfa\xe7\xd7\x88\x20\x1e\x49\x91\x78\x15\x2e\xf1\x2a\x9e\x84\x7a\x81\x66\xff\x71\x86\x63\x4f\x5e\x62\x3c\x52\x14\xcc\x08\x67\xbb\x14\x7e\xf2\x98\xa6\xc8\x1e\x81\xe6\x88\x10\x6c\x1f\x15\x71\x9e\x52\x19\x39\x0f\xbf\xee\x7c\x76\xa0\xda\x2a\x73\xcc\x98\x65\x55\x96\x61\xde\xe6\x09\x4f\xe2\x11\x8b\xde\x7a\xdf\x5e\x14\x2c\x79\x22\x12\x66\x5b\x14\x55\x73\x1c\xbf\x8b\x3c\x01\xe1\x8d\x64\x90\x54\x33\xdb\xcf\x10\xcc\x89\x6d\x8f\x67\x35\x3c\xb5\x34\x21\xc8\xf6\x38\x89\xf7\x9b\xec\xdd\x7b\x5e\xf4\x5b\x53\x02\x6c\x04\x33\xdb\x14\x8b\xca\x1a\x8c\x8b\x98\xa3\x41\x9a\x40\x5a\xfe\xfd\x45\xd9\x91\x8b\x18\x90\xfb\x8b\x66\xde\x15\x39\x9c\xdd\x11\xfd\x2f\x89\x84\xb9\xd2\x81\x85\xe3\xa3\xda\xd0\xcc\x94\x75\xfa\x20\x64\x20\xac\xca\x42\xa9\x91\xbb\x8f\x22\x58\x13\x68\xf4\xec\x1d\x90\xca\xda\x07\x58\x6e\xf4\xf5\x20\x4c\xcc\xb8\x92\xd6\xc3\xd5\x31\x81\xeb\xdf\xb0\x99\x18\x57\x5a\x19\x6b\x7e\x77\x9d\xd5\xe7\xb6\xe9\xd2\xb5\xb2\xfa\xd8\x82\x18\x65\xf1\x8b\x2f\xbf\x26\x0a\xf1\x53\x8d\xc3\x6f\xa0\x1a\xc2\x6c\x48\x22\xb0\x83\x9c\x15\x1a\xde\xb7\xd0\x45\xaf\x3e\x44\xe0\x3a\x0d\xac\x8e\xc2\x20\xc3\x99\xf8\x4d\x92\x46\x16\xa4\xfe\x50\x36\xff\x07\xaa\x72\x89\xaf\xce\xb8\x36\xca\xc2\x52\xb3\x3c\xb7\x44\x86\xe5\xdb\x05\xdc\xf2\xbc\x06\xc5\x23\x8f\x7a\x9e\x3e\x07\xe0\xa1\xea\x9d\x2e\xfc\x6c\xcc\x21\x51\xa8\x6a\xda\xad\x1c\x9b\xf7\x73\x59\xf5\x7e\xc9\xc3\x17\x63\xba\xff\xb3\x0e\x82\xae\x06\x77\xfb\xa9\xa2\xa4\xdf\xc5\x09\x2f\xd6\xc7\x0b\x26\xbc\x1d\x91\x04\x01\x45\x46\xcf\x4a\x6b\x2b\xa5\x33\x83\x67\x5c\x96\x4c\x47\xc8\xd1\xd1\x17\x99\x04\x81\xc1\xa5\xc9\x91\xb9\x2f\xa5\x77\x59\x12\x90\x94\x25\x1e\xbc\x20\x1a\xf8\xff\x68\xfb\xb3\xe5\xc6\x75\x2c\x7b\x1c\x7e\x9d\x73\x51\x17\x24\x01\x70\xb8\x94\x64\x39\x53\x95\x9e\xca\x92\x33\xeb\x74\x45\x85\x02\xc3\x86\xcd\xb2\x44\xaa\x39\xa4\xad\x7e\xfa\x2f\xb8\x31\x70\x10\xe5\x53\xbf\x2f\xe2\x1f\xd1\xd1\x59\xc7\x04\x49\x08\xc4\xb0\x87\xb5\xd7\x42\xc6\xab\x71\x77\x48\x10\x9b\x32\x5a\x50\xad\x04\x44\x61\x4c\x5b\x50\x95\x5a\x13\x1f\xed\xf3\xaf\x63\x50\x29\x11\xa1\x01\xdd\xb7\xc7\x63\x59\x84\xc1\xf6\x3d\x2f\x16\xa7\x13\xf0\xea\x42\xc0\xd8\x71\x37\x92\x94\x40\x80\x0c\x11\x30\xc0\x57\x8c\x7f\x0a\x65\x11\xee\xea\x38\x2d\x57\xfc\x84\x5e\xea\xee\xc3\x85\x33\x52\x2a\x42\x2c\x08\x6d\x80\x1f\x8d\x7b\xee\xf2\x59\x29\x4b\x01\x21\x73\x6d\x61\x42\x98\xcd\x46\x96\xb3\x70\xa3\x34\x4e\x22\x1e\x0c\xf0\x3f\xdd\xbb\xae\xa2\x51\xd2\x38\x49\xa5\x95\x16\x5e\xb6\xb9\x91\x77\x28\x4d\x96\x77\xf4\x33\xd3\x7f\x85\xc1\xbf\x67\xff\x97\xab\x4f\xf2\x7f\x75\x4f\xd6\x3a\x51\x0e\x85\x7c\xdb\x16\xb3\x34\x37\xb6\x6d\x92\x66\x18\xa3\x87\x4f\x3e\x64\xa5\x1f\x6f\x46\x69\x22\x4c\xd2\x61\x69\x54\xfb\xcc\x6c\xbe\x32\xd4\x69\xac\x63\xcf\x90\xf1\xab\xe7\xd1\x9c\x9b\xa0\x97\x76\xdf\xec\x5f\xdd\x93\x53\x93\x96\x71\xc9\x62\x33\xc0\xa5\xcb\x19\x5f\xcb\x17\xa7\xa9\x34\x65\xf3\xb5\xc1\x6e\x2c\x0a\xb5\xcb\xe5\x7b\xbf\x74\x86\xfb\x47\x9a\x4a\x89\x96\x63\xb7\xb2\x97\x79\xb3\x30\x6c\x7d\x98\xc6\x7d\x7c\x5c\xba\x49\xc1\x03\xc3\xbb\xa0\xe0\xf7\x2d\xc0\x77\x7e\x51\x00\xd8\x35\xd1\x58\x35\x71\xff\xed\x6e\x20\xde\x46\x52\x9e\x72\x8c\xcf\x1d\x0d\x03\xe4\xd2\x6f\x2a\x29\x57\x51\x62\x8a\x3e\x73\x09\x7d\xc6\x32\xe5\x2a\x66\x96\xf5\xea\x3b\x54\xe5\x53\x59\x5b\xbc\x9b\x6b\x20\x84\x81\xc3\x75\x6b\x8c\xb7\x35\x4c\xc9\xeb\x48\x2a\x03\xed\xd4\x34\x9e\x78\x85\x34\xe1\xe7\xb2\x6d\x86\xc4\xac\x7d\x9d\x33\x49\x25\x4b\x43\x32\x08\xda\xa3\x74\xc7\xe4\x3b\xcb\xcc\xa8\x70\x63\xcd\xb2\x9f\x0b\xa3\xb1\x94\x9c\x0b\x8b\x66\x41\x32\xb3\xd1\x45\xb0\x10\x58\x63\xa2\x3f\x01\x8a\x1a\xe7\x30\x29\x33\x48\x21\x36\x44\x71\xc6\x9a\xc2\xc3\xd3\xc5\xed\xc7\x0d\x75\x90\x98\xd8\x58\xc1\x4f\xf5\x5b\x69\x64\x14\xbe\x95\xe5\x33\xd4\xc0\x2b\xf9\x66\xd9\x85\xdc\x4f\xd4\x21\x47\xb5\xb2\x0f\x9e\x37\x9e\xb3\xb4\xc7\x5d\x64\xa1\x0c\xb1\xef\x26\x86\x3f\x8a\xf5\xce\x6f\xde\x59\xa8\x58\x6a\x15\xae\xfe\xf9\xf4\xfc\x78\xff\xb8\xbf\x7f\xb9\xdb\x6d\x9e\xee\x36\xeb\x67\xf7\xd4\x28\x48\xb2\xa1\x0d\xe6\xc5\x6f\xdd\x75\xa9\xa9\x01\xf2\xfe\x06\x3e\xd6\x3d\x27\x59\xa4\x43\x57\xe7\xd5\x59\xa6\x3d\x51\xce\xb8\x1f\x91\x66\x3c\xf0\x68\x2e\x8b\xde\x7d\x36\x6a\x01\xdd\x47\x9e\x20\x66\x33\x92\x9a\xd4\x0d\x2e\x58\x4f\x6f\x8a\xa1\x53\xd7\x6d\x1a\x9b\x52\xf5\xce\x5c\x7f\x83\x1f\x79\xf1\x5a\xff\xa3\x2d\x1b\x18\x3f\x88\xea\x18\x67\x7c\x5b\x48\x03\x65\x1d\x55\xc1\x64\x2c\x24\x36\x71\xd1\xdc\xc0\xa9\x02\x89\x5e\xf8\x1c\xba\x30\x63\xcc\x08\xd2\x72\x7f\xa8\xee\xca\xed\x09\x7c\x6c\x3a\x63\x3c\xc4\xb2\xab\x03\x16\x82\x2e\xf3\xfe\x82\x26\x24\xee\xd3\xc9\x3e\xfe\x34\x7b\xda\x64\x31\x25\x88\x7f\x40\xd8\xe4\xac\x94\x9b\x6d\x98\x70\x93\xa3\x79\x2b\x0f\x65\x7d\x5b\x56\xbf\x20\x9f\x8c\x7a\x1a\x50\x2e\x07\xf6\xf1\x53\x05\xf9\x91\xbf\xce\x03\x61\x52\x77\x53\x96\x59\x41\xb6\x1b\xe0\xea\x90\x17\x30\x7d\x2a\xcf\x10\x10\x51\x1b\xfa\xaa\x7a\xfd\xbc\x0a\x63\x36\x99\x17\xa9\x0e\x90\x34\x1b\x3e\x4f\xf9\x44\x4c\x21\xbd\x24\x7d\xb5\x37\x65\x84\xb8\x64\x0f\x62\x90\x2d\xa4\xd0\x5d\x55\x89\xb4\x5e\xb0\x4d\x95\x9b\x20\x3c\x52\xe7\x8d\xdf\x9e\x81\x74\x31\x62\xc7\x77\x64\xaf\xf0\x4c\x65\x89\x2b\x39\x43\xa6\x84\xf3\xc9\xbf\x81\x6b\x81\x00\x8b\x65\xde\xc8\x32\x37\xb5\x60\xee\x9a\x48\x32\x85\x8a\xbc\x2e\xc9\xbf\x9f\xbc\x53\x8a\x00\xcb\x7c\xd7\xcf\xab\x34\x4a\xfe\x32\xd2\x9a\x49\x01\xba\x27\xce\x7f\x18\xe2\x93\xc6\xed\x20\xc5\xf4\xcd\x6d\xc5\x8b\xf7\x43\x5e\xe0\xbf\xae\x57\x52\x1b\xd5\xbf\x02\x09\x86\xb4\x3e\x40\x31\x0c\x92\x65\x90\x18\x4e\x4c\xae\x94\x85\x19\x0f\x09\x74\x48\xa6\xb5\x44\x1f\xe8\xdb\xcf\xdb\x7f\xda\xbf\xf1\x20\x51\xda\xb1\x00\x78\x7a\xe6\xda\x5f\x15\x86\xe4\x0d\x23\xe0\xb7\xf9\x01\x6a\xb3\xf5\x0d\xe2\x34\x3c\x0c\x8d\xae\x99\x51\x22\x33\x35\xb7\x2f\xb5\xf2\x97\x59\xa8\x60\x40\x33\xa0\xbe\xf1\xa3\xcd\x48\xfa\xd7\x84\xa9\x42\xc9\x13\x5f\xdd\x66\xaa\xfb\x6c\x35\xb3\x6f\x05\x09\x26\x08\xb0\x84\xf9\xd7\x7a\x63\xd2\x00\xde\xdc\xe5\x11\x93\x54\xf6\x85\xf5\xab\xa2\xa9\x4c\xd6\xf1\xa5\xce\x8b\x57\x74\x49\xc7\xab\xcb\xc5\x30\x79\x14\x27\xa2\x97\x6a\x5d\x37\x6f\xdf\x0e\xa5\xe0\x87\x1b\x38\xc0\xeb\x18\x51\x3c\x9a\x05\x3c\xe2\x71\x6c\xab\x09\xab\x1c\x7e\x5f\x29\x7f\xe2\x11\xcf\x08\x77\x2c\x74\xe6\x98\xf2\x3f\x3d\x92\x01\x1a\x61\xb5\x7c\x03\xd5\x1e\x60\xc5\xbd\xef\xc8\x09\x4b\x5d\x25\x25\x62\x55\xe7\xdc\x0d\x4e\x32\x46\x69\x2f\x02\xbb\x2a\x8f\x27\x5e\x9c\x8d\x87\xb5\x30\xf9\xd2\x3e\x2d\xcb\x09\x40\x1a\xb8\x83\xba\x6a\x10\xdf\x7e\xb8\xa0\xdf\xb4\x8d\x69\x6a\x0e\xb4\xde\x43\xd9\xfd\xb8\x7b\xb8\x66\xe5\x70\x0a\x02\xcb\x68\xf7\x48\x31\xfc\xf8\xdb\x4f\x4c\x4e\x75\x8a\x47\xd9\x5b\x2e\x26\x4a\xdd\x84\x33\x2d\xb1\x52\x65\x23\xcb\xa2\x0f\x03\xb9\x3b\xe3\x88\xc7\x69\x9f\x9b\x37\x43\x10\x06\xee\x6a\x66\x54\x0e\x55\x8e\x62\x0a\xaa\xf6\xe6\x84\xc7\x05\xf0\x18\x8c\xe5\x68\xc5\xa3\xcd\x52\xed\x0d\x13\x9e\x50\x40\x1c\x37\x72\x50\x74\x83\x71\x2b\xf3\x91\xdb\x66\xdb\xa5\x84\x3b\x5d\x3d\x73\xaa\x2c\x5c\x50\x6a\x57\xde\x4f\x7c\x36\x9e\xc6\x19\xb2\xb7\xbd\x96\x07\x05\x05\x1a\x7b\xcd\x25\xeb\x2d\xe1\xa9\xe2\x4c\x0f\x82\x6d\xf7\xbc\x72\xab\x9d\xa7\x9a\xe1\x41\x52\xd5\xad\x51\xcd\x99\x52\xc6\x13\x9e\x89\x10\x37\xc9\x9a\x9f\xbf\xc3\xe1\x50\x8e\x4e\x43\x9e\x09\x85\x9e\xf0\x91\x7f\x7a\xa6\x6f\x3f\xef\x32\x01\xae\x6c\x18\xf9\x4c\xbe\x5d\xdb\x92\x78\x26\x33\xdc\xdc\x51\x1d\x68\x1a\xe8\x1e\xff\x6c\x1e\x68\xb0\x39\x83\x4d\x03\x47\x7c\xb0\x15\x8e\xbb\x32\xc5\x04\xa4\xa9\x2b\x85\x43\xdb\xbe\x9f\x5d\xb6\x85\xcc\x08\xe2\xb0\xfe\xb1\x7a\x9c\x65\x4e\xfc\xab\x7f\xed\x63\x14\x03\x27\x19\xb4\xfb\x00\x98\xce\x42\xa0\x04\x4d\x16\xd1\x9e\xc3\x20\x68\xf0\x83\xf9\xb1\x02\x2e\xd5\xc0\x02\x6c\x0f\x53\x48\x04\x07\x61\x29\x67\x98\x9d\xa1\xee\xef\x4a\x61\x82\xcd\xd8\x70\x9b\x1a\x99\x4a\x72\x50\x9b\x62\xd9\x1e\xde\x27\xd8\x2f\xff\x93\x35\x49\x31\xd2\x67\xde\xb7\x29\x74\xf9\x52\x1d\xe6\x3f\x8e\x4e\x02\xab\x24\xd4\xf0\x83\xb6\x34\x83\x44\x04\x3a\xc3\x6a\xf5\x1f\xb9\x1c\x25\x3a\x44\x18\x10\x84\xa5\x22\x29\xc8\xb6\xcf\xe7\x8f\x87\x43\x84\xa9\xc6\x63\xc8\x0a\xca\x9f\x0e\x97\xdc\x73\x7d\x4b\x1d\xb9\x0e\x98\xe0\x96\x17\xc6\x21\x22\x54\x2c\x12\x06\x50\x6f\x00\x56\xbb\xb2\x9b\x46\x1b\x75\x25\x8e\x28\x42\xad\x11\x8b\x63\xe2\x5c\x23\xf6\x89\x49\xd8\xc7\xde\x10\x51\x81\x60\xa3\x3b\x70\x86\xb5\x88\x18\xc3\xd0\xee\xa1\x2c\xdf\xdb\xd3\x10\xea\x23\x22\x45\xd0\x4f\x71\x4a\xfb\xa3\x68\x9c\x20\x51\x12\xaa\xa1\x8c\xfe\x57\x14\x0e\x44\x10\x66\xc2\x48\x2e\x41\xb1\xbb\x20\xb7\x9b\xfc\x38\x22\x63\x64\x67\x7f\xcf\xe5\xfb\x63\xdb\x60\x31\xd5\x95\x71\xa0\x4a\x44\xac\xaf\x65\x9f\xee\x46\x82\xb1\x98\x30\x53\x7b\xfb\xc7\x45\xb0\x53\xb0\x84\xeb\x3e\x6e\xf2\x0a\x63\xc0\xfc\xfc\x0a\x11\x71\x2c\xc0\x83\x6f\x4c\xf0\xf0\x67\xd9\x60\x8a\xff\x02\x6d\x2f\x62\x9d\x61\xde\xf4\x38\x9a\x5d\x09\x4b\xb0\xfc\xce\xd5\x2e\x7a\x68\xc0\xa8\xe6\x6b\x60\x7f\x8a\x84\x09\x07\x6f\x46\x0d\x4d\xc3\x36\x84\x68\x08\x74\x22\x3d\xc1\xd2\xe0\xd7\x25\x60\x64\xa7\x3d\x73\x37\xfe\x46\x17\x2e\x11\xa8\x21\x31\x70\xd2\x37\xfa\xa1\xfc\x7e\x3b\x5e\xb0\x22\x0b\x95\x61\xa9\xca\x97\xbd\x81\x25\xb2\x84\xa2\x91\x7d\x5f\x2a\x5c\xa6\xff\x8f\x05\xa1\x22\x83\x08\x87\xf0\x54\x7e\x18\x74\xde\x7d\xa9\xda\x43\xfb\x17\xf0\x68\x91\xe9\x08\x03\xa7\x27\xea\x3a\xc2\x23\x43\x2f\xe0\x7e\xc3\xfa\x79\x95\x44\xe1\x6c\x7e\x42\xf0\x98\xf5\x62\x76\x23\x56\x3d\x22\x78\xc2\xb0\x4c\xf4\x98\x17\xcd\x6d\x59\x21\xb8\x66\xdc\x65\x9e\x11\x8c\x1b\xff\xfd\xe9\xcf\xfd\xe3\xb1\xc8\x55\x79\x38\x70\x77\x78\x0a\x11\x1b\x32\xff\x0f\xc8\x6b\x83\x50\x82\xfe\x5a\xaa\x41\xf4\x32\x70\x43\x3b\xc2\xb6\x90\xc2\x94\x7d\xd7\xe5\x41\xa1\x74\x93\xfd\xbb\x0a\x04\x46\x83\x57\xfc\x84\x75\x0a\x43\x88\xb6\x50\x32\x8c\x07\x8c\xf8\x48\xec\x3d\xcd\xd8\x8d\x22\x38\xf6\x3e\x88\x18\x3a\xb6\xab\xb2\x28\x40\x36\xb9\x2d\x6a\x9c\x74\x09\x88\x44\xea\xc6\xbd\x93\x14\x3e\xbd\x9c\xfc\x41\xee\xba\x00\x36\x96\xbe\xb5\xc9\x11\x14\xeb\xbb\x7b\x0a\xa7\xcf\x4a\x8d\x98\x48\x67\x6e\x6b\x3d\x0d\x4b\xbb\x46\xdc\x80\xe5\x8c\x69\xf9\x0d\x8a\x60\xb6\x02\x50\x68\x12\x61\x26\xc0\xd5\x52\x7e\x87\xaa\x5c\x1d\x78\xed\x99\x79\x88\xd0\x2c\xa0\xdc\xd1\x8b\xca\xe6\xa2\xae\x5c\x06\x61\x96\xca\x5e\x6d\xa6\x9e\x45\x88\xc9\x40\x00\x82\xf1\x55\x7b\x3c\x0d\x51\x76\x32\x24\x11\x86\x94\xf7\x18\x17\x47\x46\xd6\xcd\x18\x56\x2e\x43\x65\x62\xd1\xfd\x96\x67\x82\xec\x93\x57\x44\x71\x8a\xde\xb3\x95\x43\x35\xf1\xcc\x49\x94\x40\x46\x3a\x40\x2d\x32\x81\x15\x8c\xa3\x51\x93\x84\x25\x88\x41\x6a\x1c\xf0\xca\x95\xbb\x3a\x63\x5f\xb2\x20\xc2\x57\x28\xe3\xf1\xfd\x5a\x6f\xfa\x2b\x04\x8d\x79\x01\xb2\x3c\x82\x11\x95\x30\x1a\x37\xbe\x45\xc8\x1d\xc8\x4f\xc2\xc1\x53\xc1\xf7\x56\x9f\x65\x73\x22\x92\xc5\x04\x33\x77\xbf\x2d\x0f\xce\x5c\xe5\x91\x64\x19\x47\x0d\xa4\x0f\xfc\x99\x33\x52\x02\x44\x32\x6e\xca\x4e\xf3\xfa\xd9\x06\xb4\xa6\x75\x40\x92\x09\x1a\x58\xa6\x39\xac\x13\x55\x6a\xfa\xe1\x62\x62\x72\xb9\xdd\x62\x5e\x72\xf5\x3a\x39\xb4\x65\x0c\x11\x82\x18\xf0\xf3\xa1\x62\xfc\x5b\x05\xdc\xa3\x1f\x64\xac\x03\xe9\x48\xaf\xda\xba\x29\x8f\x50\xed\x3e\x3d\xe4\xc7\xd6\xba\xfd\xf8\xf5\x36\x5d\x6e\xf6\xf6\x84\x30\xb4\xa0\x96\x9b\xdd\xcd\xf3\xe6\xe7\xda\x3d\x36\xa1\x12\x53\xe3\xbc\x3b\x4a\x6f\xcb\x6a\x05\x55\x93\xeb\xdc\xfa\x1d\x5f\xb2\xd1\xcf\x81\x7d\x64\xc2\x80\x59\xfd\xcb\xb5\xa1\x0e\xef\x5c\xb7\x6d\x37\x51\x2f\xce\x0f\x99\xa6\x86\x72\xd7\x59\xf7\x93\x22\x37\xd7\x4a\x86\x91\x35\x76\x7f\xe6\xa7\x91\x58\xda\xb8\x61\x16\x80\x49\x4a\x1b\x71\xa5\x21\x0d\xae\x6b\xc1\x64\xe2\x04\x50\x11\x74\x38\x99\xb9\x9c\x48\x74\x27\xb6\x79\xf1\xda\x1e\x90\x1a\x6d\x07\x75\xe3\xc0\xed\xb2\x33\x44\x13\x6b\xf0\x42\x75\xbf\xd9\x4d\x9e\x2f\x68\xc8\xec\x47\xda\xac\x1e\x07\xb2\x0d\x44\x0a\x16\x80\x4b\x59\xe7\x36\x96\x31\x07\xff\x91\x22\x95\x58\x67\xe7\xf8\xf9\x0c\xa1\xbf\xbb\x28\x23\x9c\x05\x08\xa0\xdf\x72\xd9\x19\xa4\x7e\xf7\x95\x42\x11\x3a\x50\xa1\x9b\xda\x5e\xb3\x96\x83\x54\x59\x86\x50\xa1\xd5\xdd\x62\xbb\xdd\x2f\xfe\xf1\xb2\xd8\x6d\x5c\x8d\x86\x04\x61\x2c\x85\xdf\x39\x7c\x30\x87\x9b\x92\x1a\x02\x0c\xaa\xae\xd7\xcb\xa9\x8d\xd5\x5e\x14\x86\xab\x20\xa4\xca\xfa\x15\x9d\x03\x0d\x03\x5f\x78\xf4\xcb\x55\x90\xea\x20\xbe\x14\x9b\x1a\x52\x11\x8c\xc5\x5c\x88\x0a\xb8\x51\x11\x7b\x80\x8f\xb1\x7f\x31\x63\xf2\xa9\x80\xb3\x98\x8e\xa2\x52\x2e\x87\x3a\xb0\x32\x55\x44\x0c\x1b\x1b\xce\xa2\x3e\xbc\xae\x22\x69\xd8\xf9\x6b\x68\x7e\xc0\x79\x3c\x71\x14\x89\x8c\xc8\xe3\x53\xfe\x09\x87\x95\x17\x0b\x25\x8a\x50\x26\xed\x3b\xbf\xf3\xe2\xb5\x6c\x9b\x31\x90\x4b\x91\xd4\x1c\xb3\x05\x7c\xac\xca\xf2\x3d\xf7\x77\x52\x95\x30\x1f\x77\x38\x76\xbe\x18\xaf\xdf\xe6\x0b\x2d\x15\xa3\x12\x6b\xef\x4f\x3c\xc7\xe8\x8e\x65\x27\x9e\xd5\x27\x71\xb7\x30\xae\x46\x9c\x21\xcb\xf6\xfc\xad\x3c\xa8\x01\x82\x75\xbc\xbc\x14\x4b\x15\x32\xfb\x54\x6d\xd1\x3b\x09\x8a\x65\xa6\xf8\xb7\xf3\x1a\x65\x79\x93\xd7\x38\xb0\x96\x23\x87\xbf\x42\x3d\x5c\xf7\x97\x36\xa4\x62\x5a\x11\x57\x3c\xac\x8e\x79\x31\x40\x09\xab\x38\xe5\xc8\xef\xd8\xc0\xf1\x54\x56\xbc\x3a\xff\xc8\x0f\x93\xa8\xb6\x8a\x33\x15\x74\x47\xef\x03\x6a\xa9\xba\xc8\x98\x4a\xb8\x95\x7f\x81\xc2\xd7\xdd\xa8\xaf\x40\x10\x2a\x01\xc2\x82\x6b\x1c\xc6\x93\xf1\x4e\x65\x80\xdc\xd8\x50\x28\xc7\xa0\xee\x6a\x21\x55\x96\x70\x2c\xc8\x97\xdc\x19\xdf\xee\x42\x1a\x05\xa6\x3e\xcf\x24\x97\x87\x24\xc3\x44\x65\x92\x22\x37\x6c\x3d\x54\xb4\xb5\xd7\x38\x8d\x90\xb0\x5d\xba\xc6\x9c\x85\xcc\x16\x3d\xac\x9b\x37\x5e\x35\x8b\xaa\x19\x45\x0b\x15\xe7\x02\x57\xb5\x3b\xeb\x97\x03\xda\x12\xd7\x44\x66\x88\xf1\x45\x64\x99\x28\xdb\xd7\x37\xdf\x55\x41\x32\xcc\x3d\xb7\x45\xdd\xf0\x77\x78\x32\x3a\x7a\xd3\xd5\x3b\xb5\x8b\xf1\xef\xe9\x64\x58\x05\x03\x4c\x0f\xbc\x54\x6d\x31\x00\x4a\x29\x19\x18\xd2\x04\x8d\x45\x65\x37\xc0\xaf\xc4\xb1\x94\x0c\x03\x24\x54\x2f\xbb\x03\x7e\x53\x34\x50\x15\x83\xb6\xe3\x49\xad\x22\x82\x53\xf4\xc8\x3f\x57\xfc\xb4\x6e\x9d\xd1\xa0\x20\xe4\x86\xf3\x96\x1f\xc1\xea\x2a\xbb\x2b\x89\x14\xba\x3f\x34\x14\x1c\x11\xa5\xf4\x2b\x2f\x54\xf9\x71\xa5\x4b\x00\x46\x5e\xcc\x98\xa1\x8b\xc3\xc1\x56\xbb\x21\xb7\xdc\x70\x02\x83\x16\x49\xe0\x63\x01\xf8\x62\x77\x49\x67\x99\x75\xd2\x7f\x97\xc6\xdb\x9a\xd9\x18\x27\x3f\x4f\x0b\x93\x51\xc7\xa9\x79\x5b\x56\x4d\x5b\x78\x03\x53\x69\x01\x58\xb3\x61\xf4\x39\x1d\x1c\xc1\xee\x70\x17\xb8\xd8\xbf\x4d\x22\x35\x4a\x2b\x6e\x82\x5e\xfc\x38\xa2\x4a\x80\x20\x4c\x50\x54\x47\x3d\xc0\xa7\x71\x48\x47\x50\x23\x08\x18\xc1\xcc\x85\xad\x7b\x59\xb6\xe7\x25\x97\xef\xdd\xf9\xd6\x27\xc8\x21\x88\x85\xa9\x15\x32\x41\x18\xa3\x30\x33\xd6\x27\x74\x2d\x39\xc4\x86\xc5\xb1\x5b\xcf\x26\x1a\xb9\x3f\xf9\xed\xc4\x3f\x50\x08\xae\xfa\xa8\x6c\xf7\xe2\x33\x06\xe6\x87\x3b\x3e\x84\x2a\x62\x83\xbe\xd5\x8f\xfa\xa9\x2a\xff\x03\xb2\x99\x10\xb0\x40\x14\xa4\x4e\xc7\xbe\x8f\x91\xdb\x68\xec\xf8\x91\x51\x92\xd1\xd4\x43\xf7\xe0\xa5\x56\xb7\xbc\x36\x79\xd3\xc9\x2f\x89\x74\x14\x83\x21\x13\x05\x35\xd4\x92\x21\x40\x52\x0e\x8e\xe4\x60\xfd\xe3\x65\xbc\x30\x81\x64\x81\xf3\x04\xf6\xa7\x0a\xf6\xef\x67\x69\xeb\x74\x8a\xf6\x08\x15\xbf\x20\x14\x02\x22\x2d\x67\x24\xf0\x71\xa4\x10\x58\x10\xe0\x6e\xa4\x00\xd7\x6f\x77\x2a\x4c\xde\xc6\x52\xc0\xf0\xbd\x38\x70\xc3\xf0\xba\x45\xca\xa2\x81\xe2\x4b\xea\x26\x09\xc4\xc0\x11\x45\xb8\x7c\x7c\x78\xd9\x3a\x7c\x10\xa4\xda\xe8\x93\xd4\xc7\xce\xdd\x1a\xce\x9d\x2c\xd2\x58\xb4\x71\x53\xf1\x8f\xbb\xb2\x69\xa0\x3a\xcf\x62\xc4\x21\x23\x1a\x6b\x41\xad\x43\xf0\x1d\x0e\xa7\xc9\x26\x08\x3c\xd0\x68\xf7\x9f\xaa\xf2\x58\xae\x9b\xb7\x41\x80\xc2\xb5\xc8\x02\x13\x01\xea\xee\xdb\x95\xdb\xc6\x5b\x92\x8e\x83\x95\x80\x08\x92\x88\x98\xe2\xef\x07\xf8\x98\x45\xa1\xfd\x55\x15\xe1\xe0\xf4\x02\x25\x28\x2e\x0e\x67\xac\xad\x6c\xd0\xaf\x6e\x11\x70\xd2\x73\x77\x12\x80\x98\x84\xa1\x15\xb6\x5f\x14\x0a\x53\x05\xa3\x99\xa5\x69\x42\xba\x0f\x81\xbb\x88\xd9\x51\x4c\xe1\xd3\x1c\x26\xc7\xdd\xc3\x52\x34\x58\xbf\xf1\xa3\xf0\x99\x33\xd0\x29\x41\x6e\x75\x53\x65\x97\x97\x85\x75\x6b\x46\x03\xaa\x83\x30\x40\xe2\xb4\xa2\x3d\x7e\xe3\x47\xdf\x51\x1d\x10\x8d\xa7\xcd\xff\xb6\x50\x9d\xb7\x27\x90\x39\x3f\x3c\xf3\x06\x6e\x2f\xf8\x7c\xc6\xa7\xa2\x0e\x12\xc1\xad\xe0\xfa\x50\x50\x02\xea\x69\x58\x58\x07\x8a\x23\x50\x29\xaf\x2d\x3e\xd1\x47\xfc\x75\x98\x70\xb0\xd1\x2f\xb3\x66\x76\xe5\xa6\xae\xa7\x65\x4a\x3a\xe4\x49\x18\x78\x8a\x66\xa8\x9b\x41\x52\x4b\x87\x22\x00\x3e\xd8\x6d\x4c\x71\xc2\x95\xbd\x75\xc2\x03\x37\x0f\x4c\xd3\x84\x84\x41\x0f\x4c\x7b\xd4\x98\xec\x98\x7a\xe7\x9a\x50\x8e\x36\xc4\x0d\xbf\x0a\x54\xfa\xef\x0a\x2c\x34\x11\x29\xa2\x40\x8f\xfc\xf3\x01\x51\x1e\xfe\xf3\x50\x6a\x34\x17\x2b\x38\xf0\xf3\x3d\x34\x7c\xf7\xf9\xc7\x3c\x18\x66\xe4\x09\x4e\xbe\x15\x0b\xcd\x6a\xca\x8b\x1c\x25\x38\x30\x82\xf2\xd5\x8c\xef\xbb\xc6\x08\x60\xa2\xd2\x50\x53\xf7\x8a\xcc\x8b\xc2\x52\x89\xdf\x96\x97\xea\xad\x44\xb3\x2c\x4e\x93\x21\x57\x03\x7a\xf5\xf5\x5b\x7e\x9a\x34\x8c\x23\x23\xd9\x2e\x0d\x37\xf5\xaa\x6d\x2e\xa6\x6e\x9c\x48\x35\x0c\xde\x6e\xb1\x98\xd1\x8d\x50\x0c\x06\x73\xdf\xd9\x7e\x8f\xc5\xe1\x8c\x86\xf3\x70\xa9\xe9\x04\x64\x66\x67\xea\x5d\xf9\x3a\x34\xff\x75\xa2\x43\x63\xcf\xba\x22\xdf\xf1\x9b\x53\x4a\x94\x55\xaf\xfa\x09\xd5\x48\x22\xac\xbb\x28\x03\x9f\x51\x9c\xe8\x15\x8f\x7f\x63\x16\x18\x6f\x5f\xbb\xa0\xa1\xce\x02\x93\xb4\x36\x07\x9a\xce\x5f\xfd\x05\x1a\x18\xea\xe4\xfc\xb5\xb0\xd9\xee\xff\x42\x15\x89\x68\x4e\x75\xe4\x7c\xd5\xa7\xf2\x03\x86\xac\xb9\x44\x73\x66\x42\xf5\x98\x1b\xde\xda\xf4\xe5\x95\x82\x3a\x2d\x48\xc8\x0d\x33\x55\x79\xb8\x69\x8b\x57\xf0\x7b\xae\x16\x0c\x58\x1f\x21\xfb\x69\xe9\x6a\x6e\xaf\x0b\x5a\x4c\x26\x93\x90\x86\xf2\x62\xb3\x7a\x7c\x6e\x8b\xa2\x47\xd8\x68\x49\x13\x9c\x2f\x6e\x6b\xbd\x2d\x7d\x76\x4d\x2b\x01\x18\x22\x37\xca\x28\x05\xee\x98\x0a\xd5\x36\x6c\x03\x20\x60\x94\x9a\x7a\x88\xbb\xd6\x81\xa1\x51\x7d\xed\x6b\x62\xfe\xa7\xe7\xd7\x48\x5d\x2b\x92\x62\x7c\xda\xa0\xdf\xca\x0a\x6b\x10\x7a\xfd\xdc\x39\xdf\x81\x06\x21\x8f\xec\xf1\x55\x37\x55\x79\xd6\x65\x65\x99\xf7\xa7\xa1\x42\x1a\x84\x2a\x46\x81\x2b\xec\xba\xa7\x29\x1b\x64\x32\x68\x10\x85\x12\xe1\x53\x4d\x79\x6a\x4f\xeb\x02\xaa\xd7\xf3\xf2\x3c\x5b\x21\x3e\xe9\x46\x14\xab\x44\x78\x17\xe6\x06\x7e\x8f\x56\x16\x0d\x22\xa0\x08\xe4\x5f\x7f\x9e\xba\xbf\xee\xb7\xbc\xc9\x6b\x6d\xe0\x85\x7b\x43\x31\x06\xea\x1a\xe4\x90\x06\x84\x2b\x99\x0e\x32\x5b\x86\x5a\xf4\x8b\x6d\x93\x06\x44\x1a\xbe\x26\x5b\x0c\x77\xb3\xdf\x3d\xee\x16\x77\xfb\xc5\xfd\xe3\x8b\xa3\xeb\xa4\x41\x37\xf9\x75\x8f\x2f\xee\x81\x24\x34\xa0\xa1\xc0\x1c\xe9\xef\x1c\x3e\xf8\xec\x78\x52\x42\x31\x8b\x7f\xff\xe7\xfa\x9f\xab\x01\x52\x8e\x06\x54\x10\x04\x47\x58\x31\x4d\xab\x42\xe1\xae\xb2\x88\x61\xa8\xe6\x8d\x57\xfc\x47\x5e\xe5\xfd\xdf\x39\x7e\x7f\x9e\x57\x77\xb9\x6e\x06\xd1\x6d\x1a\xb0\xc4\x68\xbb\x98\x7c\x36\xdf\x53\x7f\x21\x0d\x14\xf8\x81\x37\xb5\x95\x91\xbf\x28\x0c\x03\x1c\x57\xea\xef\xa5\xf8\x8b\x4f\xc8\x14\x09\x1c\x1d\x6d\x74\x74\x85\xb1\xb3\xeb\x92\x06\x0c\x42\xcc\x78\xec\xb9\x52\x8b\xa2\xc6\x35\xfe\x3d\xaf\x9b\xb2\x3a\x5f\x55\x25\xbd\x30\x22\x68\x10\x67\xd2\x31\x61\x5a\x68\xc7\xf2\xbc\xab\xb8\x7c\xdf\xa8\xc9\x60\xc7\x8a\xfa\x96\xf9\x27\x0c\x45\x38\xa9\x6d\x92\xc4\x49\x60\x60\xcb\x45\x39\x14\xa5\xe8\xae\xa4\x88\xc1\x3f\xf1\x79\x45\x5b\x1a\x24\x32\x56\x66\x82\x95\xa7\xe1\x86\x4d\x83\x94\x09\x6d\xeb\xd4\x2e\x35\xbc\x07\xc0\x24\x1a\xa4\x71\xea\xf8\x00\x8c\xa2\xb8\x8b\xf1\x8c\x87\x2e\x05\x2d\x0c\xab\xe8\x3d\xfa\x4b\x79\x59\x20\xa8\xf7\xf1\xe4\xf6\x48\x1a\x64\xd4\x54\x7e\x20\xa0\xf2\x09\xaa\x97\x22\x97\x65\xd5\x5f\xe6\x0a\xc9\x16\x3a\x2b\xeb\x8f\x21\x4e\x6a\x6c\xed\xd0\x80\xeb\x28\xf3\xe8\xe1\x1d\xf0\xa3\x53\x13\xac\xdc\xa3\x44\x94\x60\x3e\xff\x8d\xd7\x5b\xfc\xd9\xf6\xd7\xff\xeb\xdf\x7f\x1b\x0d\x83\xa0\x06\x6e\x71\xcc\x8b\x6d\x7b\x34\x44\x7d\x5e\xb9\x8d\x06\x22\x09\x63\xeb\xc5\xdc\xdd\xfd\xdc\x83\xca\x9b\x7d\x48\xc7\x23\x29\xd2\x34\xee\x17\xf1\x04\xb4\x3e\x41\xf2\x77\xad\x15\xa6\x90\xda\x5a\xed\xca\xef\xfc\xf7\x68\x39\x08\x65\x8e\xbb\xbd\xd5\xe8\xbe\x2b\xf9\x95\xe8\x0a\x0d\xa4\xa6\x98\x6f\x32\xa8\x73\x8f\xf7\xb4\x57\x55\x98\x71\x87\x17\x33\xb7\x6f\x7d\x68\x84\x06\x8a\x86\xc8\xb1\xbd\xf0\x55\x1d\xe3\x67\xab\x38\xc2\x72\x03\x4b\xfc\xd9\x17\xfc\xae\xf2\xe6\xbc\xcd\x9d\x36\x13\x0d\x94\x4c\xc1\xa4\x1d\x66\xd0\x72\x34\xd0\x4a\xa2\x61\x73\x63\xa9\x53\xa6\x97\x41\x22\x10\x48\x97\x95\x84\x47\xad\x6b\x68\xd6\x68\x60\x77\x66\x7e\x4f\xc3\x4c\xc3\x20\x4b\x51\x93\x13\x53\x12\xf5\x3d\x6f\xba\xe3\xf5\xea\x82\xfc\x2a\x43\xde\x3d\x4b\xa1\xbb\x29\x9c\xf8\x51\x6d\x61\x41\x2e\x82\x41\xc3\x10\xa8\xb2\xe2\x91\xab\x4b\xf1\x7a\x1a\x46\xa9\x88\x07\xca\xf4\xc3\x35\x19\x92\xc0\xb0\x7d\x38\xa4\xee\xfa\x37\x0c\x2e\x72\x1d\x39\xf9\x1c\x9c\x6a\x83\xe2\x6c\x1a\x12\x6d\x12\x68\x0d\xd4\x16\x0e\xec\xae\x50\x05\xb8\x1b\xa2\x51\xd9\x5c\x99\x11\x21\x0b\x53\x53\x92\xdb\xca\xf7\xf3\x9f\x65\x3b\x30\x4f\x68\xc8\x58\x86\x38\xfe\xf5\xee\xbb\x57\xce\x1c\xaf\xe0\x90\x89\x0c\x7d\x7b\x0d\x03\x9e\x5d\x7b\x2d\x26\x2c\x4c\xed\xea\x2e\x06\xfb\xa7\xbb\x4c\x49\xdc\x53\xe0\xd9\x0d\xe2\x9e\x7f\xfa\xdb\x63\x40\xad\xba\xc7\xe5\xb7\x01\x08\x6b\xf2\x0c\x1e\xa0\x21\x08\x47\xa8\x5e\xa1\x90\xe7\x2d\x34\xcb\xe5\x2d\xb7\xfe\xf5\x38\x50\x4d\xc3\x24\x4a\xad\x56\x6a\xd7\x4f\x3c\x21\x56\xfd\x88\x25\x84\xe1\x57\xb6\x29\xb7\xe7\x41\xe9\x14\x0d\x13\x01\x12\xcf\xd0\xd5\x68\x88\x52\xaa\xb0\x1e\x6b\xb9\x5a\x8e\xff\x2e\x53\x4c\x11\xa0\x6e\xe2\x17\x41\xf1\xf9\x03\x28\x4c\xa5\xe1\x8d\xe5\x4a\x3d\x16\x26\xdc\xf3\xe5\x89\x15\x66\x69\x18\x87\x1e\x94\xe6\xaa\x87\xe7\xbf\x39\x27\x71\xc0\x7b\x75\x81\x6a\x32\x53\x79\x66\x2a\xda\x85\xaf\x9f\xe8\xfe\xa6\x70\x71\xbf\xf1\x7a\xff\x9f\x32\x2f\xfa\x71\xe1\x4a\x21\x2e\xad\x80\x8f\xfb\x52\x0d\xbd\x48\x1a\x8a\x80\x43\xe2\x29\xa9\x04\x54\x8f\x05\x2c\xaa\xd7\x71\x72\x8c\x4e\xbe\x91\x0c\x33\x65\x95\x37\x90\x5e\xd6\x1b\xf1\xd7\x7e\x0e\x52\x75\x79\x1a\x2f\x6f\x24\x9a\x54\xa4\x39\x0b\xda\x5e\x12\x75\xa0\x8c\x3a\x3f\x92\x92\x08\xa7\x65\xbb\x6c\xcf\x79\xf1\x3a\xa7\xc0\xef\xda\x66\x1c\x47\x7d\x80\x31\xb0\x2c\x42\x97\xa1\xbe\xf1\x9d\x10\x2a\xaa\x2d\x1d\xce\xc3\xcb\xfd\xfe\x61\xf1\x73\x33\xe4\x28\xa0\x21\x68\x08\xac\x0b\xbe\x84\xba\x19\x9a\x79\xb6\x85\xa6\x29\xda\xbb\x37\x79\x51\xd6\xbc\xad\xba\x69\xef\xe5\xfa\xba\xcb\x12\xb1\xf9\x0d\x7f\x87\xca\x82\xcc\xc7\x43\xad\x33\xaf\x17\x77\xc3\x0d\x75\xc1\x64\x2e\x68\x21\xf0\xeb\x72\xa5\x26\xbe\xf6\xfc\xe8\x45\x41\x16\x61\xde\x7f\x5d\x48\xa4\xcd\xde\x8d\xc8\xea\x68\x14\x68\xc3\xb9\xe6\xad\x9c\xed\x5b\x7e\xea\x26\xce\x61\x79\xde\x8c\x74\x80\x68\x14\x46\x14\xf3\x29\x75\xeb\xec\xc2\x28\x64\x24\xc3\x25\xea\x59\x89\x47\x89\x1c\x1a\x85\xa9\x42\xf2\x86\xd2\x06\xf6\x47\xea\x8c\x34\x0a\x35\x1f\x48\xc6\x20\x36\xa5\xf3\x95\x7b\x98\xcc\xb5\x0a\xf4\xee\x56\x89\xd6\x81\x35\x64\x71\x51\x7a\xb5\xd3\xd4\x36\x8a\xa2\x8c\x08\x1f\x4f\x77\x6a\x91\xee\xed\x91\x0a\x90\x49\xc7\x86\x00\x07\x65\xdc\x34\x8a\x40\x85\xb6\x52\xfc\xb6\x02\x58\xc2\xbc\xc8\x1f\x8d\x48\x2c\x6d\xca\xa8\x91\x6f\x86\x88\xbd\xf2\x3f\x9f\x51\x93\x5a\x5d\x95\x15\x0c\xa9\x1f\x69\xc4\x32\x88\x7a\xe6\x16\x7c\xf5\x90\xa5\xe9\x6f\xed\x1c\x4a\x6b\x26\x81\x47\xa3\x98\x26\xa4\xa7\xd0\xd9\x72\xed\x7f\x5f\x2c\x42\xc3\x69\xff\x56\x7e\x58\x18\xb9\x81\xbb\x8c\xa6\x5d\x14\x4b\xe2\x38\x69\xd6\x9f\x48\x77\xad\xbc\x72\x79\x7d\x5b\x3a\x41\x87\xf1\xcf\x8e\xb5\x21\xe5\x19\x8a\xcd\xe2\xaf\x37\xec\xcd\xe3\xc6\x49\x60\x30\x3b\xad\x41\xbf\x1c\x6e\xae\xe9\x54\xd2\x28\xc9\x4c\x59\x25\x72\x34\xb4\x45\x33\x83\xf7\xa0\x51\xc2\x63\x84\x81\xae\x3f\x9b\x0a\x8e\xb0\x85\xa6\x3d\x8d\xa6\x75\xc2\x35\x7e\xd9\xb2\x6d\x64\x79\xb4\x18\x87\x7e\x0f\x18\x77\x0e\xe2\x2c\x9b\x40\x99\x1f\xb5\x7b\x52\x9a\x1a\x10\x4b\x37\x38\xbc\x3a\x9c\x17\xc8\x2a\xf4\x23\x6f\xea\x67\x38\xf2\xbc\xf7\xcd\x69\x94\x66\x81\x1f\x12\x5e\x37\x87\xf9\x72\x60\x1a\x65\x81\x70\x65\xb7\xa6\x63\x33\x05\x5d\xa3\x9d\x25\xca\x58\x8c\x24\x0f\x05\x7c\x7a\xde\xf2\x67\xe4\xf5\xea\x1c\x75\xd7\x28\xd5\x58\x14\xb8\x58\xdd\x4d\x5f\x08\x14\x37\xa6\xdd\x7a\x71\xbf\x5f\xdc\xdd\x3d\xfe\x5a\x3c\xac\xd6\xee\x3e\x1e\x24\xc8\x2d\x02\x48\xd5\xf9\x5f\x9c\x86\x91\x60\x1a\xc2\xa1\x7d\xf4\x69\xf3\x4f\xee\xba\x08\xc1\x72\x76\xe3\xef\xdf\x43\xf3\xb6\x37\xa4\x6a\xae\x85\x0a\x30\x8d\x5b\xb8\x0c\xb5\xfd\xbb\x8c\x48\xc2\xcd\x7a\x69\xe0\xb3\x2f\x6e\xa7\x91\xcc\x32\x1b\x45\x32\xef\xfc\xc3\xea\x3d\xff\xcd\xa4\x5d\xf0\x93\xd2\x7f\xd1\x7f\xf7\xff\xc3\x5c\xe8\xfe\xd7\x58\x61\x91\x46\x52\xa4\xb8\xb6\x5f\xcb\x83\x5a\x96\x9f\xe6\x23\x8c\x74\x26\x69\x24\x25\x24\x1e\x85\xba\x1f\xa1\x67\x69\x24\x95\xc1\x90\x61\x7d\x80\x81\x92\xce\xfa\xa2\x91\xd4\x8c\xd8\xf4\xf8\xb7\xf2\x37\x54\x45\x39\x9d\xca\x10\x50\x3c\x15\xf0\x51\x5e\x7b\x96\x46\x10\x1a\x86\x8b\xdd\x8f\x27\xff\x27\x95\x66\x74\x50\xef\xbc\xe3\x95\xd3\xa0\x1b\x26\x9f\xba\x86\x0a\x8f\xc1\x13\x3f\xdf\x02\xd4\xbb\xf2\xf5\xb5\xff\x61\xa0\x34\xc2\x93\x0f\xf0\x1b\x9e\x7d\xee\x88\x46\x3a\x36\x44\x22\xcf\x6f\x5e\xf1\x7d\xdc\x53\xad\x0c\x80\xef\xd9\xb3\xc3\x5e\x55\xee\x30\x77\x90\x80\x71\x04\x07\x7c\x60\xda\x10\x81\x1f\xf7\xfe\x8b\x92\x40\x48\x64\xbb\xfa\x70\x8c\x3f\x8e\xf6\x7e\xfc\x5e\x12\xd2\x04\xeb\x79\x36\x06\xdf\x9a\xff\x1f\xdc\xf3\x22\xd7\x5d\xd3\x2b\xb3\xd5\xe8\xa9\x7b\x57\x9e\x84\x34\xc5\xb0\xee\x91\xbf\x83\xc3\x81\xfe\x31\x3f\xc3\xaf\xa1\x21\xff\x36\xe9\x53\x26\xd0\x27\xf7\x6a\xef\xdf\x79\xfd\xb6\xf6\x3f\x2d\xd4\x69\xca\x5c\xcc\xff\x52\x95\x81\x92\x28\xe4\x4a\x78\x5b\x7b\x53\xec\xde\x60\x7b\xae\x1b\x18\xa7\xa1\x28\x89\x32\x6e\x80\x9f\x06\x08\x89\x83\x8e\x31\x06\x37\x15\x09\x49\x32\x2c\xa0\x31\x41\x96\x4b\xaa\xbb\xc9\x60\x12\x30\x43\x51\xe1\xe6\x75\x9f\xdb\x1a\xa4\x61\xc4\x96\x12\x1a\x45\xc8\xb4\x8a\x1a\x5d\x8d\x8b\x83\xda\x1a\x36\xdf\x28\x66\x28\xcb\xb3\xc7\x98\xe0\xa5\xbc\x1d\x25\x2c\x93\xa1\x01\xeb\x57\xef\x86\xb7\xdc\xf7\x9a\x71\x08\x7c\x66\xf1\xf3\x5b\xc9\x27\xee\x19\x61\x2a\x42\xc8\xe4\xb7\xe7\xf5\xfd\x70\x87\xe8\x2e\x98\xc4\x6a\x67\x71\xd4\x6f\x16\xbe\x60\xd5\xd9\x1c\x35\xf0\xec\x49\x4d\x98\x8a\xd1\xd8\x70\x78\xc4\x49\xe1\x0a\x25\x71\x1c\xa2\xcc\x4d\x89\xc9\xee\x11\x0c\x66\x02\x2e\xa1\x48\x37\x81\x5f\x26\x97\xef\xcf\xf0\xbf\x6d\x5e\x01\x46\xcd\xbf\x34\x5a\x48\x92\x1a\xa2\xd5\xff\xc9\x47\xe7\x15\x49\x44\x86\x05\x47\xcb\x73\x03\xf2\x6d\x07\xf2\xad\x28\x0f\xe5\xab\x0b\x7e\x92\x34\x0a\x39\xb7\xfc\xc4\x28\xb0\x66\x8c\x1e\xdb\xc5\x6d\xaf\xb9\xe8\xdb\x13\xdc\xa1\xff\x53\x97\xc5\x0f\x38\xdb\xb4\xe5\x8c\xf5\x40\xd2\x24\xc3\x92\x0c\x50\xaf\xf0\x94\xbf\x76\x73\x79\xe9\xde\x9a\x71\x8d\x46\xf1\xaf\xc5\xcf\xf5\x21\x6f\x60\xd4\x65\x1e\x73\xac\xf5\x37\x9c\xf5\xf5\xee\xa3\x7c\xe0\xc7\x2b\x1c\x4f\x94\x70\x4e\x70\xcb\xf5\x00\xe7\xbd\x7f\x0e\x64\x08\x79\xf8\xf6\xfc\xf8\x6b\xf7\x7d\xbf\x7c\xb9\x77\x1b\x1e\x11\x49\x46\xac\x28\xf9\x2b\x5c\x62\xfa\x29\x11\x82\x59\xd3\x07\x43\x2d\x26\xc4\xf8\x96\x9f\x2e\x98\xd2\x47\xc7\x29\x91\x31\x41\xab\xb0\xa9\xb0\xd0\xf1\x0a\x18\xc0\x35\xce\xc0\x28\xac\xf8\xfc\xdd\xa0\x6c\x77\xd2\x56\x05\xcc\x88\x9c\x0e\x2b\x9f\xac\x57\x35\xee\xb9\x62\xf1\x80\x04\xfe\x70\xa2\x93\x0f\xa8\x32\x6e\xfc\xd5\xd5\x7a\xe7\xf1\x21\x94\x40\x00\x58\x5b\xb9\x77\x39\x9e\x2b\x1d\x81\x8c\xc6\xd1\xe0\xa8\x18\x8b\x0f\x4e\xfa\x02\x22\x00\x57\xdb\xfa\x9b\x37\x7c\xcc\xf9\x46\x09\xa8\x48\xf6\xc2\x70\x83\xbc\x10\x25\x3a\x8a\x10\xc8\x95\xd7\x6e\xf3\x9e\x30\xbd\x9b\x76\x34\x08\x8c\x08\xaa\x36\x4e\x4b\xdd\x53\x22\x76\xd7\xc0\xe5\x78\x9e\xaa\x52\xdb\xb2\x8c\x31\x62\x86\xd2\x80\x99\x62\xeb\xbd\xa1\xcd\x7b\x36\x59\xb0\xb7\x81\x39\x4f\x83\xd4\xf0\x68\x1b\x1e\xab\x97\xa2\xb3\xd1\x78\x03\x4f\x50\xfd\x09\x0e\xff\x4d\x69\x60\xe9\xc9\x15\x28\xb0\x7c\xbd\x63\x9f\x85\x86\x19\xc1\xfa\x35\x84\x13\x3e\xb5\xc5\xbb\x33\x0d\x66\x87\x8f\x46\xc4\x28\xe7\x60\x94\xc8\xea\xfe\x6c\x07\x09\x3c\x67\xa1\x0c\xfc\x12\x1a\xc5\x1c\x0f\x61\x5e\x89\xbc\xa9\x86\xb0\xc4\x29\x2e\xbc\x3f\xc6\x68\x94\x65\xd2\xb0\x3a\xc3\xe2\x70\x7a\xe3\xc3\xb0\x23\x25\x91\x51\x2b\x7a\x22\x37\x93\x9f\x43\x78\x86\x6e\xdb\x7d\x2e\xcb\xbc\x18\x52\x14\x7f\x51\x0a\x42\x29\x0d\x8d\xe1\x5b\x21\x71\x3a\x1e\xde\xab\x0a\x54\xde\xf4\x31\xa7\xc9\x40\x30\x22\x54\x30\xf4\x25\xef\xf3\xc2\x53\x1b\x4d\x06\x80\xd1\x0c\x8b\xf6\xb4\x29\x3d\x6f\xf9\xe1\x70\x25\xfe\x4d\x59\x62\x58\xba\x0f\xa5\x25\x4a\x49\xfb\x32\xbd\x4b\xb4\x55\x3f\x5c\x0c\x0c\x35\xcf\x73\x77\x64\x1e\x46\x6e\x2f\x8d\x53\xed\xf0\x79\x0f\xf0\xf1\x54\x36\x43\x95\x70\x4a\x93\x84\x23\x2a\x61\xc9\x8b\xf7\xa2\xbc\x04\x8d\xba\x66\x59\x8a\x5b\x83\xe8\x5c\x3f\xc7\x98\x30\x66\x85\xbd\xe0\x81\xa1\x34\x8d\x52\xe1\x2d\x4b\x2f\x50\x30\xbf\x90\x69\x9a\x85\x98\xd1\x5f\xbe\xfc\xf9\xf8\xb2\xdb\x3f\x3d\x6f\xbc\xe1\x4e\x53\x6d\x80\x80\x79\xdd\xf9\x41\x7c\xc8\x3b\xe0\x9a\xf0\x88\xe3\xed\x26\x2b\x8d\x9f\xcf\x87\x8a\xa8\xb0\xf4\x4e\xae\x50\xa5\xac\xbb\x5b\xc3\x59\xa3\x2e\xfd\xff\xf7\xbf\xdc\xbb\xc2\x40\x19\x06\xce\x73\xd9\x36\x8f\xca\x9b\x02\x54\x46\x80\xab\x56\xb4\x55\xf1\x74\xf7\xb2\x7b\xd9\x9a\x7c\xd5\x78\xa8\xa5\x48\x11\xbc\xf1\x3b\xef\x3c\x86\x86\x1f\x4c\x70\x75\x57\x5a\xe7\x74\x3c\x6a\x52\x51\x23\x60\x02\x85\x7a\x86\x09\xb3\xe2\x14\x8b\x4b\xa9\x04\x85\xb6\x7e\xf9\x7f\x7e\x06\x28\x12\x03\x18\x5c\x4d\x83\xea\xe9\x17\x47\xca\x6c\x64\x9a\xaa\x58\x63\x7e\xf6\x69\xf1\xe4\x08\x0a\x28\x85\x38\xa6\x6e\x83\x35\xe9\xba\x61\xb8\x99\x42\x62\xc8\xfd\xeb\x5c\xc1\x12\x9a\x27\x3e\xc6\xd1\x52\xaa\x93\xd4\x41\x74\xbd\xd3\xd9\x9d\xa1\x9b\x62\x98\xe2\xa7\x2c\xe0\x01\x32\x56\x21\x46\xc5\xe4\x79\xc6\xc1\x2f\xdf\x2e\x62\x7a\xa0\xbe\xb4\x97\xe3\xcc\x03\x0b\x94\x11\x6c\xb3\x28\xdb\xb6\xc8\x9b\xf3\x33\x9c\xda\x66\x26\xe6\xcb\xa2\x48\x66\x91\xb7\x40\xb7\x0d\xd7\x7a\xda\x82\x05\x78\x80\xe4\xb2\xc4\xd3\x88\xb8\xf7\x10\x12\x20\xbc\xb3\xf2\xbf\xaa\xfb\xb4\xb8\xd7\x38\xe4\x0d\x65\x44\x2a\x77\x3e\xdc\x9f\x7f\xe6\x45\x7f\x85\x12\x82\x28\xe1\xdd\xcb\x66\xb8\xba\x19\x65\x80\xb1\xfd\x7d\x65\x64\xd8\xb1\x64\x69\x92\xeb\x62\x2c\x4a\x50\x03\xe4\x54\x95\x9f\x39\x4c\x87\x28\x0e\x8d\x0b\x65\x03\x47\x0e\xd9\x4b\x59\x4c\x18\xb5\xf1\x89\x75\xa1\x6c\xa9\xd6\x44\x15\x97\xb2\x38\x63\x81\xed\xf3\x8f\x56\x95\xf5\x34\x4e\xdf\xf9\xf3\xce\x97\x43\x7b\x7e\xc6\xba\x61\x49\x6c\x54\x67\x7f\xad\x57\xee\xed\x89\x16\x24\x19\x54\xec\xce\xdd\x96\xd2\xcc\x40\x13\xcb\xd1\x8e\xf0\xa5\x61\xca\x52\x60\xda\xcb\x90\xdf\x96\x95\x84\xce\xec\x18\x8d\x6a\x16\x28\xa2\x07\xe5\xb5\xf3\x64\x98\x94\x65\x31\x45\x53\xef\x98\x17\xcd\xb6\x3c\x7c\x85\x2f\xa6\x2c\x4b\x23\x84\xa0\x1e\xb9\x52\xb3\x15\xc1\x94\x65\x22\x40\x2c\xf3\x62\xb7\x7b\xde\x3f\xad\x9f\xef\x17\x0f\x6b\x9f\x26\x67\x99\xc8\xf0\x98\xba\xe7\x9f\xdb\x86\x57\x68\xff\x4f\xaa\x9f\x28\xe3\x96\x7f\x50\x1b\x4d\x6a\xff\x67\x1a\xe0\xc9\x22\x2c\x03\xcf\x70\x7d\x5f\x9e\x31\xee\xa6\x58\x63\xc8\xd3\x50\x82\x5d\xf2\xe4\xb8\x66\x3c\xc0\xca\x7d\x83\x17\x7b\xe3\x95\x55\xd2\xaa\x07\x21\xf0\xc1\x43\x95\x51\xde\x32\x01\x85\xbc\x90\xc0\x02\xd7\x4b\x41\x43\x06\x1e\x4c\xe2\x70\x5b\xee\x7d\xf4\x82\xf4\xf0\x5f\x61\xf8\xef\xb9\x24\x30\x93\x54\xb3\xb4\xe7\x8b\x0b\xdd\x0b\xa4\x32\xca\xa4\x79\x91\x37\x7b\xdd\x5b\x66\x4c\x85\x99\x1a\xf2\x8e\x2d\xe1\x19\x8d\xfd\xa9\x79\xc7\x14\x89\xa4\x9e\x6c\x50\x9d\x2b\x53\xdf\x01\xb2\x3b\xff\x4f\x3d\x04\x63\xf9\x9b\x4c\x21\xb1\xf4\x52\x07\x9e\xfb\xd7\x77\x80\x19\xba\x1f\x54\x2a\xe6\xaf\x70\xbd\x78\x71\xd2\x9f\x94\x3b\x76\xc2\x5f\x79\x81\x73\xe2\xb6\x2a\x8f\x08\x79\x9a\x75\x09\x98\x4a\x0d\xc5\xda\xb7\xea\x7c\x7a\xf3\xe7\x27\x53\x4a\x19\x78\x16\x86\x5a\x1c\x8e\x1f\x19\xc2\xa9\x6f\xa3\x0d\x7b\xff\xea\x71\xbb\xf9\xf6\xb0\xbf\x5f\xfc\x13\x45\x06\xdc\x65\xa0\x1c\x43\xc0\xdb\x8f\x5c\x37\x37\x3e\x5c\xc7\x40\xa6\x88\x67\x7d\x6a\xc7\xf5\x36\x94\x81\x36\x95\x55\xa5\xd6\x87\xbc\x80\xee\xad\x28\xdf\x53\x1e\xd4\xd7\xab\x38\x0e\x12\xa3\xfa\x7a\xf7\xb2\xfa\xd3\xe5\xbf\xe3\x20\x23\x98\x40\xd9\x07\x9f\xf7\x65\xc1\x3b\x23\x70\xb8\xae\xe3\x30\x0d\x6c\x12\xce\xf9\x93\x8f\xda\x54\xab\x5e\xd7\x5f\xe8\xee\x32\xcc\xe3\x8f\xef\x77\xf9\xef\x69\x99\xfd\xe8\x78\x8d\xc3\x34\x43\xf0\xc8\xfd\xe6\x61\xbf\x79\xf8\xb9\xde\xee\xf6\x8b\xd5\xce\x97\x5b\xd1\x38\x0a\x18\xfa\xdd\xff\xdb\xf2\xf7\xe9\x59\x1e\x47\x31\x60\xf7\x9e\xda\xe3\xe9\x7b\xa9\x0e\xfe\xa6\x94\x21\x3f\x99\xe4\xf5\x5b\xd9\x36\xeb\xc7\xed\x12\x6b\x1b\xdf\x27\xfa\x3d\xae\x39\xa7\x98\xbe\x39\xf2\xcf\x81\x52\xdf\xf0\x1c\x8e\x23\xa1\x42\x9b\xb3\x6b\x4f\xa6\x24\xde\x5e\x21\x71\xe4\xe8\xdf\xf7\x98\xd9\xdc\x77\x9b\xdb\xbe\xf1\x12\xa5\xe3\x77\x11\x6e\x98\x13\x57\xfc\x94\x37\xfc\x80\xb9\xee\xd1\x90\x13\x11\x04\xa6\x16\x16\x25\x64\x9c\x6d\x61\xf2\xcc\x5f\x26\xaa\x62\xaa\x9d\x98\x99\x35\x69\xaf\xec\xac\x31\x83\x04\x45\x62\xac\xa2\x8f\xd1\x6a\x2a\x74\xf9\x55\x01\x0c\x8d\x63\x12\x22\xdc\xf6\x5b\xe7\x65\xe5\x03\x82\x78\x1a\xc7\x34\xc6\xaf\x74\xbb\xf9\xe7\xfa\xe6\x79\xfd\x6b\xf1\x7c\xb3\xbf\xbf\x77\x57\x93\x24\x30\xe4\xa3\x9d\x83\x6f\x22\xe5\xaa\x3c\x0d\x72\x21\x71\xc2\x09\xd2\x0c\xf7\x8a\x8f\xfe\x8a\x30\x12\x46\xfb\xd3\x81\x5f\xaa\xbd\x7c\x99\x1e\x8c\x33\x0a\x48\x8c\x0b\x72\x8c\x17\x8b\xb3\x24\x46\xc8\x3c\xa2\xb2\xf7\xbf\xee\xfc\xdf\x41\x60\xb8\xdf\x50\x64\x75\xdb\x82\x0f\x9a\xcd\xdb\xe0\x31\x8f\x08\x8f\x1c\x0f\xa5\x5a\xfc\x86\x8a\xbf\x82\xa3\xbf\x1f\x75\x86\x47\x99\x2b\x71\xbf\x47\x8a\x3d\xe4\x88\xbf\x2c\x36\xa7\x31\x27\xdc\x08\x4e\xc9\x12\xf1\x03\xa1\x35\x26\x5c\x2f\x79\x1c\xa1\x03\xdf\x8d\x08\xe6\x6c\x7c\x46\x22\xe6\x5c\x63\xd0\xe3\xe9\x8d\x57\x47\xfe\x0d\x8a\xb2\xbf\x4d\x44\x2a\xc3\xda\x41\x28\xce\xcb\xb6\x50\x87\x3e\x3d\x11\x8b\x98\xa2\x54\xcb\x03\x7c\x18\xf6\x8e\xf1\x74\x6b\x67\x4b\x91\x68\x2c\x89\x34\x61\xdf\x56\xeb\xd1\x24\x96\x5c\x72\xe8\x59\x5a\xf6\xcd\xa0\xfb\x12\x98\xd3\x59\x7d\x2c\x00\xad\xba\x5b\x80\xda\x42\x12\xa6\x20\x92\x58\x45\x91\x0d\x93\x57\xbf\xa1\x5a\x17\x48\xa8\xb3\x2a\x0b\x7d\xc8\x65\xb3\x39\x9e\x0e\x23\x17\xd2\xd8\x07\xfd\x84\x18\x1b\xe2\x57\xff\x9d\x3d\x2a\x62\x45\x25\xb2\x18\x35\x6f\xfc\xc3\xb1\x32\xd9\xe5\x38\xb1\x09\x63\xa5\xcd\xaa\x35\x45\xb1\x98\x6b\x1c\x37\x00\x02\xe8\x90\x75\xf6\xf2\xb7\xb2\x7c\xba\x82\x76\x8c\x21\x0e\xa9\x89\xe6\xad\xee\x57\xce\x92\x89\x41\x51\x3c\x86\x35\xc0\x45\x69\x07\x8d\x35\x01\x9c\x5a\x07\x5e\x37\x26\xec\x31\x92\x4c\xa0\x49\x10\x06\x68\x1a\x72\x3e\x94\x82\xa1\x49\x10\xa5\x18\x3e\x47\xaf\x6a\xff\xbc\xd8\xad\xf7\xab\xe7\xc7\x5f\x37\xdb\xc5\xdd\xda\xdf\x4b\x42\x47\x04\xf3\xa3\x9b\x54\xee\xef\x61\xac\x0c\x4f\x5c\x2f\xd6\x3d\x10\xc6\xb6\x8d\x22\xc6\x92\xc4\x2b\x9c\xc8\xff\x4e\xa5\x8e\x26\x91\x4c\x1c\xb1\x0a\xce\x8f\x5f\xd3\x88\xd6\xf4\xa8\x9b\xd2\x6d\xd1\x84\xb0\x30\x32\xdf\x2e\xaf\x94\x49\x89\xf4\x73\x30\xa1\x01\x37\x95\x79\xa3\xd2\xb5\x71\xdf\x69\x16\x60\x10\xd3\x54\xd4\xdc\xe4\xbf\xf3\xa1\xec\xc3\x95\x9e\xd3\x4c\xa0\x52\x42\xfd\x56\x7e\x6c\x86\x60\x19\xff\x66\x48\x2c\x18\xbd\xb3\x96\x6e\xdb\x42\xd5\xb7\x65\x75\xcd\x54\x4c\x58\x94\xf4\x14\x85\xdb\x06\x4e\xce\x3f\x4a\x18\x17\xda\x30\xdb\x15\x30\x5f\x76\x45\x13\x26\x95\x66\x4e\xba\xee\xa1\x6f\x66\x2f\xc7\x4a\x51\x83\x65\x3a\x95\x55\x73\xcf\x0f\xb9\xcc\xcb\xf6\x52\xd7\x6a\x38\xae\x89\x8a\x88\x2f\x19\xde\xe8\xc5\xa1\x02\xae\xce\x18\xe2\x87\xce\x39\xb8\x19\xec\xd2\xe3\xf1\x4c\xa9\x56\x56\x0e\xf3\xbe\x7e\x1d\x61\xec\x92\x34\x05\x0d\x56\x57\xd1\x7c\xf2\x9f\x65\xe3\xcf\xd8\x24\x15\x2c\x42\x79\xfa\xbb\xc5\x6e\xf3\xf0\x72\x6f\xe1\xb0\xfb\xdd\xd3\xce\x37\xd1\x12\xa7\x38\x6e\x88\xbf\xde\x00\x2e\xaa\xe3\x86\x3b\x57\x92\x85\x34\xea\x09\xca\x56\x65\x79\x50\xe5\x47\xe1\x36\xda\xae\x25\x35\xe9\x43\x1a\xb8\x3b\x58\x8a\x99\x70\x23\x32\x33\xea\x7d\xc6\x25\xc4\x63\xea\xc2\xfa\x1a\xfb\xc8\xc4\x77\x48\xff\x35\x48\x41\x4e\x93\x91\x09\xd7\x0c\x6d\xe7\x95\xed\xe5\x84\x85\xbb\x6b\xe0\x85\x20\x9f\xad\x24\x65\x6f\xc4\xfa\x70\x57\x22\x64\x10\x58\xf4\x3e\x1a\xf1\x7e\x60\x25\x95\x8e\x6c\xd7\xa6\xd0\xec\x74\xed\x8b\x88\x67\xcf\xbd\x44\x6a\xe6\x68\xce\x46\x8a\xa6\xf6\xb2\x62\x42\xa4\x76\xb7\xab\x8d\x66\x7e\xb1\x6c\xcf\xe8\x1b\xae\x9d\x04\x02\x4d\x20\x11\x68\xc3\xd7\xa5\x6e\x24\x3f\x91\x67\xe0\x88\xfc\x73\x97\x33\x66\x75\xbc\xfe\xd3\xd6\x98\x29\x9e\xfc\x7c\xc8\x8c\xea\xd2\x30\x8d\x66\x2a\x2a\xae\xcc\x41\xd0\x26\xc0\xcb\x7b\x1b\xd6\x8f\x85\xb6\x85\x5f\x96\xb5\x74\xfc\x89\x75\xe0\x55\x48\x5c\x71\x6c\x7f\x23\x07\xcc\xd9\xf3\xb6\xc1\x90\xd3\xb2\x6c\xfc\x25\x19\x21\x5b\x19\xaa\xf6\x78\xe9\xee\x29\x1d\xb4\x69\x9c\x06\x91\x29\x68\x58\x28\xaf\xc6\x3d\x51\xed\x19\xfe\xf8\x34\x88\x95\xee\xa9\x9b\x4d\xaa\x6b\x80\x52\x49\x03\x60\xa9\x0d\xd2\x42\xd5\x5c\x8b\x51\xd9\xc6\x61\xc8\x03\xab\x22\xbe\x59\x3d\xee\xba\x4d\x73\x64\x32\xa5\x21\x11\xc8\x75\xb3\x6d\x5e\x1f\x0b\xc0\xe2\xba\x75\x3f\x91\xd2\x90\xc9\x2c\xb6\xf5\x74\x0b\xf5\x7b\x34\xb2\x69\x98\x72\x93\x71\x2a\xf3\xe2\x29\x47\xc2\x95\xd9\xa8\xa0\x6f\x6e\x50\x33\xfb\x0b\x20\xe3\xf8\x6b\xa6\x51\x94\x65\x43\x31\xd3\xc5\xcb\xee\xd1\xf8\xa3\x61\x70\x31\xba\x91\x04\x6e\xf6\xcb\xce\x28\x71\x5d\x23\x54\x92\xc0\xd7\x01\x36\x63\x8a\x24\x9a\x12\x91\x84\x12\x23\x08\x93\x93\x2d\x25\x02\x34\xbf\x0a\xe2\x9b\x45\xe6\x7c\x99\x10\x4f\x69\x68\xca\xc2\x4f\x86\x98\xa2\x5e\x7a\x2d\x97\xea\x8f\x51\xd0\x23\xa5\xc4\x80\x31\x3b\x8f\x1a\x53\x1d\x43\x0b\xa8\x7f\x20\x0b\x09\xa7\x5e\x0a\x1b\xc5\xa2\x8a\xba\xe1\xde\xa7\x49\x59\x94\xa1\xf7\x89\x5c\x6a\x36\xc5\xec\x2e\x65\x01\x96\x5b\x3e\x2d\x9e\x77\x0f\xeb\x67\xcb\x50\xe8\xaf\x72\x99\x59\x53\xd6\x00\x97\x6e\xcb\xca\x7e\xf1\xd9\x84\x68\x1a\x93\x00\xb3\xbd\x0b\xa4\xb9\xaa\x1d\x4c\x65\x32\xa4\x31\xd5\xc8\xac\x61\x2e\x9a\xb6\xbe\x69\xbf\x9b\xa5\x71\x4a\x31\x05\x7d\xaa\x60\x23\x4b\xe3\x8e\xba\xae\xc5\x2a\x44\x4c\x19\x9e\xd9\xa1\xdb\xd3\x7a\x5a\x09\x9a\x26\x61\x40\x32\x4f\xab\x08\xb9\x81\x8e\xde\xb4\xdd\x08\xa1\xb9\xed\x40\x79\x69\x1a\x01\x2e\x5e\x4b\xb6\x81\x46\x44\xe0\x2f\xaa\x58\x1b\x26\xd3\xf2\xf4\xa8\x35\x54\xbd\x35\x9d\x66\x89\xb1\xa6\x5d\x24\x6e\x02\xa8\x9f\x0c\x4e\xc6\x8d\xef\x64\x6b\xa3\x4d\x49\xc7\x64\x68\x78\xa0\x10\x09\x62\x04\x21\x86\xa6\x76\xca\x89\x29\xc7\x36\xd2\x06\xf2\xfd\xa9\x99\xc0\xb1\x52\x27\xc0\xea\x69\x9c\xf3\x23\x1c\x30\x02\xfc\x35\x46\x23\xe5\x09\x8b\x03\xeb\x4f\x6e\x25\x3f\x4e\xfc\xe6\x54\x84\x52\x07\x16\xd0\xbc\x67\x7b\x23\xaa\xf6\x0c\x46\xd4\x27\x2f\x8b\x3d\x4a\xa9\x74\x3b\xd8\xbe\xf3\xc3\x0f\x6a\xf7\x56\x95\x1f\xae\xe3\x32\x4e\xc1\xe2\x66\xbb\x3e\x58\xcc\x62\xed\x62\x27\xa9\x62\x1c\x2d\xe1\xfd\x9c\xcc\xe7\x97\xb1\x8e\x54\x65\x04\x21\x18\x7f\x6f\x2b\xfe\x97\xd9\xac\x54\x65\x19\xe2\x1e\x3a\xab\xfd\xa6\x3d\x9e\x06\xe3\x32\xae\x74\x74\xed\x05\x41\x26\x9f\x85\xae\x72\xc9\x7b\x29\x34\x9a\x2a\xc9\x90\x6b\xe8\xef\x5c\xbe\x9f\xca\x66\xf1\xc1\xab\x81\xd2\xd0\x95\xce\x42\x68\x4a\x14\xf2\x23\xd2\xda\x9b\x36\xc3\x12\xd0\x69\x79\x44\x0a\x0c\x1c\x45\x86\xdb\x23\x6e\xa0\xe1\xf9\x3c\x21\x00\x4d\x21\x0d\x33\xe9\xbe\x53\x79\x82\xc2\xb0\xf2\xf8\x60\x67\x0a\x5c\xc8\x60\x00\x73\xb3\x47\x69\x5f\x1f\x46\x53\xd0\x46\xe5\x51\x1f\xca\xb2\x72\xda\x5d\x34\x0b\x32\x9e\xd8\x52\x1d\x5b\x84\x37\x1b\x3b\xc8\x02\x1e\xe1\x98\x35\xe5\xcb\xc6\x55\xed\xbb\x4b\x4a\x23\x01\x78\xee\xe9\x02\xbf\x34\x3d\xb2\x50\x1b\x25\xd3\xdb\x03\x7c\xe6\x8e\xe2\x72\xcb\xbf\xa8\xc6\x1c\xdf\x4f\xb8\x46\xa3\x4a\x1e\xca\x1a\xac\xb5\x60\x2f\x51\x1e\xa4\xbe\xd4\xcc\x66\x8f\xdc\x25\x69\xc2\x67\x0d\x1c\xd0\x5a\xfe\x51\xa0\x22\x49\x3b\xc0\x56\x65\x54\x27\x28\xec\x77\x07\xea\x15\x0c\xfb\x58\x7b\x21\x3d\xea\xb1\xcd\xf6\x26\x96\x1a\xe0\x7e\xc5\x1b\x78\xd9\xde\x48\xcf\x43\x4e\xb3\x38\xf3\x6c\x71\x86\x15\x6f\x51\xa8\xc5\xf1\x0a\xd8\x34\x4b\x92\x34\x48\xbc\x62\xc7\xff\x41\x31\xeb\xd6\x64\x29\x31\xac\xb8\x56\x2b\xd3\x68\x08\x4f\x9a\x68\xa9\x2d\x55\xc0\x4b\x91\x3b\xa5\xea\x8d\x55\xed\xfa\x0b\xb8\x74\xc6\x43\x53\xcc\x60\x69\x05\xdf\x78\x05\x46\x36\xf1\x4a\x73\x22\x30\x1d\xe2\xe8\x3d\xec\x24\xa8\xa6\x6b\x70\x76\x6a\x67\x3c\xd5\xd2\x24\x6b\x65\x5b\x59\x85\x6a\x74\x46\xd0\xb3\x1a\xd9\xc2\x7f\x9b\xa4\x10\xa6\xff\xda\x27\x8a\x8c\x42\x36\xd8\xbc\x77\x9f\x13\x17\x3d\x93\xc4\x90\x11\xbe\xda\x30\xc9\xa3\x01\x92\x6e\xea\x2d\xcc\xd3\x46\xd2\x4c\x11\x81\x96\x8a\x29\xe6\xc1\xf0\x80\xbb\x92\x69\x6d\xab\x8b\x1a\x2b\x3b\x35\xd9\x66\x33\x00\x26\x3c\xbf\xd1\x4b\x71\xea\x49\x31\x68\xa6\x33\x83\xcc\x5b\x6f\x9e\x92\x30\xba\x79\xbc\x5f\x6c\x1e\xf6\xbb\x3f\x9f\xd6\xdf\x17\x5b\x3f\x8f\x34\x70\x27\x68\xf9\x93\x57\x79\x77\x98\x5d\x25\x99\x99\x74\x5c\x83\xc6\x75\x7b\xe4\x9f\x8b\x22\x3f\x72\x0f\x2e\xe3\x41\x6c\xea\xc9\xf3\xfa\xc7\x9f\xab\x27\x5e\xd7\x57\x04\xd4\x29\x0f\x14\x57\xae\x86\xa1\xf3\xce\x7a\x15\x25\xca\x43\xa2\x91\x5d\x80\x6b\x9d\x1f\x72\xde\x18\x30\x81\x25\xc3\xf1\x8d\x00\x4c\x66\x8b\xd7\xe8\x41\xb8\x70\x80\xa3\x67\x70\xcd\x34\x60\x66\xd7\xc9\xcb\xfd\x02\x78\x3f\x9c\x07\xd5\x99\x46\xbe\xca\x70\x69\x0c\x38\x5a\xed\xed\x91\x8c\x71\x98\x2d\x77\x4b\x44\xb6\x9e\xff\x9c\xf2\x48\xc5\x31\x75\x24\x16\xe6\x18\xbd\x05\xac\x80\x99\x3c\x04\x62\x43\x28\x65\x25\x29\x2e\x4b\x43\x87\xde\x34\x8f\xb4\x01\x10\xd5\xd0\x38\x49\xe7\xf1\xf3\x48\xc8\x50\x7e\xe4\xc4\xe5\xfb\x25\x84\x9e\x93\x34\x14\xe9\x40\xd6\xe9\x79\xa2\x6b\x44\x39\x95\x02\x73\x92\xb8\x15\xdc\xe7\x87\x77\x77\x2b\x85\x08\x63\xa0\x1f\xc0\x4f\x9d\x49\xe1\x85\xe6\xc6\x1d\xa0\xda\x88\x3a\xa2\x7a\x82\x61\xb4\x99\x00\x09\x38\x0b\x28\xda\x5c\x6d\x61\x49\xe0\x41\x19\xb0\x8e\xef\x26\x23\x0c\x23\x9a\xc6\x55\x79\x80\x8f\x89\x7c\xc1\xe8\x3c\xe6\x4c\x84\x18\xc4\x74\xba\xdd\x5f\x47\x7d\xec\x4d\x49\x16\xcb\xd0\x79\xc2\x1a\x2a\x98\x58\x97\x3c\x0d\x99\xe3\x08\xb9\x3f\xef\xda\xaa\xf1\xd1\x6b\x9e\xb2\x0c\x11\x48\xcb\xc5\xc3\xea\xf1\x79\xff\xcf\xfe\xef\x02\x9f\xc9\x0f\x87\xf2\xc3\x80\xbb\xa7\x0f\xcd\x00\x33\x1d\x07\x28\x5e\x9b\xb7\xbe\xea\x7e\xbc\x8a\x78\xca\xe3\x24\x18\xec\x18\x73\x94\x1e\x94\xa7\x82\x25\x16\x73\xa1\x3a\x7f\x04\x79\xcc\xba\x0f\x4e\x26\x6f\xcd\x68\x24\x0d\x40\xac\x2d\xde\x07\x75\x7f\x3c\x8b\x13\xe6\xea\x50\xce\x26\x80\xdd\xfd\x4b\xa2\x71\xfd\xbb\x6d\xcd\x33\xca\x87\x8c\x47\xd7\xc6\xf9\x12\xa7\xc2\x15\x89\x04\x0c\xc8\xf7\x77\x15\x4c\xb7\x2d\xae\x04\x45\x72\x32\x24\x13\xbc\x81\xba\xc9\x0b\x7e\x29\x67\x46\x39\x84\x31\x4f\x87\xd0\xa0\xcd\x24\x85\xc8\x81\x84\x86\x1e\x14\xc1\xca\x03\x52\x20\x2a\x02\xa6\xa9\x2d\xc5\xd8\xbd\xf5\x65\xa0\x5f\xd4\x44\x88\x20\x96\x98\x83\xde\x02\xa8\xed\x54\x7f\x88\x8a\x90\x42\x60\x8d\xf7\x6d\xfe\x5a\x20\x49\xd6\x38\x09\x27\xc2\x8c\x61\x48\xb4\x8a\x26\xf7\x46\x94\x63\xb9\xf8\x90\x4f\xcf\x5d\x4a\x29\x7a\x92\x7b\x54\x27\x52\xd0\xed\x61\xeb\xe6\xed\xda\x98\xbb\xbb\x32\xa2\x6c\x67\x96\xed\xf9\xb9\x1b\x3f\xff\xc0\x2c\xe6\xc9\x90\xcf\xa3\xac\x86\x90\x7f\x11\xf1\x18\x07\xed\xdb\x81\xff\x5e\x55\xe7\x53\x83\x47\xbd\xbf\x0a\x52\x5a\xb2\x6c\x03\x4a\x9a\x57\xbf\xa6\x82\x30\x8d\x18\xe2\x9b\xcd\x4f\x77\x2f\x49\x32\x34\x85\x80\x57\x45\x5e\xbc\xd6\x8f\x7a\x64\x2a\x09\xc2\x59\xd8\xb3\xd2\xd9\x58\xf5\x80\x3e\xfc\x82\x3a\x95\x0a\x1a\x68\x24\xb1\x6c\xde\xe5\x78\x87\x13\x54\x69\x8c\xc1\x3f\xf1\xf3\x40\x92\x96\x0a\x46\x19\xa2\x62\xef\x17\xff\xdc\x6f\x3b\x37\x75\xe1\xcb\xb1\x04\x93\xca\x84\xea\x7e\x1b\x7a\xa5\x0b\xc4\x9d\x4d\x10\x38\x1b\x4c\x30\x9d\x22\xde\xe3\x6e\x37\xaa\x0c\x14\x71\x64\x84\x60\xad\x6b\x66\x9e\xb0\x85\xa6\x19\x32\x7c\x4f\xad\xa1\xb9\x39\x17\x27\x60\xf5\xe2\xcc\x7a\x79\x46\x1b\x32\xfa\x63\x80\x58\xeb\xc3\x7e\x22\x16\x0c\xed\xaf\xbc\x18\xd4\xc8\xf9\x3e\xc9\x08\xd1\x18\xa2\x91\x46\x9a\xba\x2a\x7f\xe7\xaa\x1f\xfd\x58\x83\xb5\x88\x0a\xf5\xd3\xd7\x5d\x88\x24\x94\x58\xc9\xbb\x59\x3d\xee\xef\xd6\x3f\xd7\x77\xfb\xd0\x5f\x4a\x43\x9e\x8e\xbe\x57\x5f\xc3\x79\x8d\xdc\x8e\x8a\x44\x1a\x69\x7e\xe9\x40\x40\x3f\xcb\x66\x40\x6e\xe0\xdd\x75\x91\x06\xda\xb0\x3a\x15\xd2\xcc\x93\xc7\x8f\xcb\x3d\xdd\xb6\xcd\xa2\xc8\xe1\x48\x7e\xe2\x8e\xf1\xea\x10\xe6\x7f\x45\xb5\xf2\x05\xda\x4f\x64\xa9\x09\x74\x6c\xf8\xeb\xd8\x79\x16\x9c\x33\x1b\x5e\xc7\x83\x2b\x9a\x32\xb5\xb9\x98\xac\x6b\xae\x29\x86\x54\x36\xff\xd8\xed\x6f\x5f\x1e\x6e\x8c\x24\xfe\x48\xb7\x81\x0a\x11\x84\xf8\xcc\x37\x5e\xbf\xed\xeb\x37\x4e\x66\x77\x7b\x21\x99\xe2\x26\x05\x51\xb7\x47\x98\xd4\x77\x0b\x99\x08\x77\x16\x18\x71\x06\x5b\x6e\x37\xfc\x59\x2a\x05\xe4\xb0\x2a\xda\xe3\xde\xaa\xa5\xfa\x65\xa3\x80\x61\xc8\x0d\x3d\x19\x4b\x24\x35\x94\x98\xa5\x02\x84\xb2\xf1\xa6\xb6\x86\x3b\x5e\x1b\xee\x5f\x77\x55\xeb\x30\xb2\xda\x1a\xcb\x03\x97\xef\x58\x83\xd1\xc0\x04\x4b\x2e\x83\x38\xc3\x12\x42\x77\x84\x6c\x8a\xb5\xab\xee\xb5\x4f\x92\xa1\x20\x08\x31\x6d\x3c\x26\xc9\x46\x65\xf6\xbe\x85\xcc\xa8\x09\xf3\xaa\x69\xd4\x4e\x86\x2a\x45\x5b\xbb\x33\x99\x1d\x93\xf0\xac\x95\x29\xa3\x08\x10\x7b\x83\xfc\xba\xc8\x7a\xf7\xdb\xcf\x7e\x19\xd1\x08\x8f\x89\xa6\xad\x8a\xee\xb7\xfa\xbf\x43\x82\xac\x32\x86\xf7\x69\x6c\x3a\x49\x12\xa4\xf6\x90\x6b\x96\x50\x80\xce\x65\xce\xab\xf3\xca\xcb\x36\x51\x49\x92\x10\x91\x21\x35\x6f\xca\xfa\x2d\xdf\x8b\xe6\x6d\xaf\x40\x0e\xed\x64\x49\x32\xc3\xf1\xb4\xfd\xb5\x78\xda\xaf\x16\x0e\xc0\xde\x39\xa2\x4e\x9a\x62\xc5\x4f\xfe\xaf\x3c\xc5\xe2\x34\xd1\x9e\x1f\xe0\xe3\xa6\x2a\xa7\x35\xf7\x92\xaa\x00\xcf\xa7\xd5\xf3\x72\x87\x73\xf9\xae\x0f\x7f\x49\x0a\x04\x1d\xf9\x6f\x8f\x77\x37\x2e\x49\xb2\xfd\x71\xd7\x5f\xa6\x68\x59\xb9\x8a\xcb\x3d\x22\x90\xa6\xc1\x11\x9c\xf1\xff\x22\xee\x13\xb0\x80\x1b\x00\x4f\xae\x9b\xaf\x50\x05\x92\x65\x12\xdd\x0c\x68\xde\x36\x8e\x53\x44\x76\xc7\x87\x41\x77\x57\x20\x39\x2e\x69\x54\x3c\x77\x07\xa3\xec\xdc\x08\x83\xf1\x3c\x9b\xd4\xf3\xd7\x19\x36\x19\x27\x31\x76\x67\xf7\x3c\xda\xab\x65\x9c\x0a\x4a\x9d\xdf\xe6\x03\xb9\xb7\x65\xe5\x89\x63\xfb\x67\x24\x94\x89\x78\xa0\xc5\x73\x8b\xd8\xaf\x2b\x3f\x2b\xa5\x11\x1e\x77\x7b\x38\xe6\xcd\xdf\x4b\xb1\xcc\x87\xf2\xd1\x33\xfb\x8d\xcc\x02\x85\x8b\xd7\xad\x8a\xef\x65\x5b\x43\xb7\x93\xfa\xeb\x9a\x4a\xb7\x24\x5e\x6a\xa8\xea\x2d\xff\x3d\xb1\x43\x24\x87\x34\x8d\x3d\xc1\x5e\xcb\x0f\x3b\xa3\x86\xef\x40\xf4\x83\xf7\x89\x28\xb3\x4a\x94\x27\x9e\xfb\x81\x15\x82\x65\xa1\xd5\x87\xf1\x19\x09\x29\xac\xb6\x59\x5e\xef\xca\xb6\x7a\xb1\x28\xcf\x89\xd5\x2f\x85\xe6\x46\x65\xa5\xc6\xa0\x71\xd5\x0e\xb8\x02\xa4\x0c\x63\x8c\xe6\x76\xe7\xf8\xb6\x18\x84\x9d\xdc\x75\x66\x04\xc9\xb9\x52\x5b\x84\xd4\x8d\xe7\x97\x6b\x15\x03\x32\x72\xee\x5e\x01\xbd\x42\x23\x98\x35\xd8\xf1\xfd\x96\x38\x3f\x0f\xa4\x8e\x81\x0f\x2b\x25\x4d\x94\x77\xdc\x48\xa7\x1c\x33\x9c\x36\x47\x62\xd8\x1c\xc6\x85\x97\x7f\x79\xa0\x4c\x2a\xc6\xa4\xce\x08\x66\xf2\xef\xa1\xe1\xf7\x65\x75\xf2\xbb\x81\x96\x0c\xf7\x8b\xa7\x6f\xeb\x20\x7c\x70\xd1\x72\x15\x84\xd4\xc9\x94\x3d\x55\x60\x30\x70\xab\x32\xf7\xe9\x11\x15\xa6\x02\x03\x5a\xbd\xdc\x7c\x59\xbe\x2d\x2f\x83\x9e\xb6\x79\xc4\x22\x4c\xea\x1a\x3a\xef\xb1\x69\xaa\x22\x96\x71\x8b\x46\xda\xd4\xe3\x72\x94\xfe\x27\xa8\x28\x49\x0d\x92\x67\xb7\x9b\xc4\x9b\xc7\x9b\xaa\x8a\x84\x29\x35\xc1\x14\xc1\x70\xb9\x29\x92\x45\x88\x4a\x94\x03\x39\xcb\x8d\x1a\x1d\x31\x8a\x46\x11\xa2\xf8\x9e\xa1\xce\x55\xcb\x0f\xdb\x21\x53\xeb\x9c\x9d\xa4\xa8\x56\x2e\x10\x89\x9f\xd3\xb2\xe8\xed\xf2\x23\x2c\x79\xbf\x69\xa8\x38\x56\xc8\x79\x97\xfb\xba\xbf\xf1\xea\x51\x49\x12\x60\xbe\xae\x28\x15\xf4\xa6\xed\x78\x20\x13\x91\x61\x78\x0d\x8b\x5b\xdd\xb4\xd8\x7e\xe4\x03\x59\x96\xf9\x10\x97\x4a\xb9\x59\x1e\x3f\xa1\xe0\x83\x42\x54\x95\x85\x41\xa4\x5d\xe9\xc0\x67\xb3\xb9\xf1\x3f\x76\x74\x7b\x96\x50\xdc\x1f\x8c\x00\xde\x33\xd4\xd7\x37\xbd\xc9\x8b\x39\x8f\xd0\x65\xc3\xf4\xc6\xed\x85\xcf\xa5\x84\x8e\xa3\xc8\x6c\xa6\x33\xf0\x5f\x25\x43\x86\xa4\xcb\x8e\x21\xec\x69\xa4\x9a\x4b\x95\xe4\x2a\x74\x52\x89\x03\x0e\xa5\xf1\x43\x14\x11\xe8\xee\xa3\x93\xd3\xed\x5e\xbd\x9b\x34\x13\xb2\xeb\xe9\x02\xbf\x60\x0d\x4c\xdd\xa3\x19\x47\xc9\xab\xbc\xee\x0e\x69\x24\x7d\x5f\x5f\xab\xad\x51\x4a\x81\x52\x7d\xfe\xc0\x05\x8f\x47\x79\x5b\x05\x8a\xba\x02\x6e\x93\x28\x5a\x42\x53\x8f\xcb\x30\x6c\x4b\x4d\xc2\xc0\x00\x6f\x3a\xd7\xcc\xe2\x20\xd1\x10\xc6\x98\xd3\x78\x24\x21\x0c\x25\x6e\xae\x5e\x3b\xe5\x1a\xe4\x19\xc2\x08\x06\x2a\x2b\xf7\x79\x81\x14\x95\x73\x38\x44\x08\x63\x81\x3a\xa2\xbe\xea\xf5\x0b\x90\x25\x84\x49\x86\xa6\xf2\xbe\x2c\x1e\x7f\x83\x5d\x22\xd6\xb1\xba\x16\xd7\x4b\xff\x45\xfe\x8d\xff\x17\xda\xc3\x1d\xa2\x0c\x62\x7b\x12\x62\xd8\x74\x04\x83\xbd\x92\xb7\xb8\x96\x84\xb1\x8f\x24\x54\xa1\x13\xdc\xd9\x61\xb8\x88\xc7\xbf\x75\x7e\x49\x01\x49\x02\x97\x53\xdc\x1a\xba\x80\x66\x98\xf4\x03\xc2\x63\xcb\xd6\x50\xd5\xcd\x50\x39\x92\x02\x0d\x45\x14\x5d\x9c\xfc\xee\x2a\x13\x09\x26\xea\xcc\x11\x60\xb2\x8a\x8b\x42\x3d\xf1\xb3\x0b\x8f\x38\xd8\xf5\x4c\xb8\x63\x1a\xf8\x00\xa6\x15\x26\xd5\xf7\x35\xd7\x9e\x7e\xbf\x7b\x90\xe7\x59\xbe\x76\xac\x0c\xfc\x08\x88\x23\xc3\x10\x7c\xe4\x9f\x38\x38\x43\xa8\x29\xc4\x9c\xf3\xd8\x97\xde\xa0\x17\xb6\x51\x23\xcb\x14\x62\x19\x63\xcc\xbc\xec\x0e\xce\xb1\xc3\x0c\x49\x60\x92\xe2\xc7\x52\xbe\x7b\x30\x8b\xbf\x33\x09\x0d\x89\x39\x0e\xa3\xd5\xa8\x1c\x00\xa3\x20\x51\x21\x9a\x26\x08\x48\xb2\x12\xfb\xe3\x0f\x95\x32\x81\xdc\x52\xfa\xd0\xd6\x6f\xa3\x3c\x3f\x64\xc4\xb0\xab\x89\xbc\x50\x7f\x2f\x45\xb7\x8e\x96\x25\xaf\xae\xd4\x7d\x42\x96\x1a\x82\x90\x6d\x7e\x3c\x1d\xc0\xe6\xa4\xfa\x0a\xc3\x69\x6b\x48\x03\x2b\x6a\xe0\xa5\xe2\xc7\x2d\x38\x37\x58\xe2\x3d\x82\xa5\xf6\x68\x5d\xed\x37\xab\x47\x97\x51\x04\x11\x09\x62\xea\x83\x9b\xce\xe0\x1a\xa2\xf4\x26\xde\xbb\xbb\x21\x05\xfc\x4e\x2e\x73\xba\x87\x21\x45\xc6\xa4\x83\x52\x0b\x3c\xfe\xef\x8d\x2b\xb6\x7a\xe3\xc7\x53\x5e\x16\x17\x7c\x9d\x14\x00\x40\x64\x56\x1e\x03\xab\x76\xc5\x94\x2f\x06\x74\x68\x6a\x9a\x30\x9c\x59\xf4\xa5\x41\xe6\x90\x9a\xad\xdf\x06\x9d\x45\x98\x0b\x78\x3c\xe6\x35\x7c\x7b\xfc\x56\x1e\xfc\x12\xd1\x56\xb9\xcf\x3a\x27\x4f\x15\xc8\xbc\x27\x02\xa6\x3a\x88\x05\xcf\x6c\x15\x7c\x35\x21\x0f\xa5\x3a\x48\xa4\xd6\x0e\x32\x6f\x95\x50\xfa\xc0\xf6\x46\x5d\x0a\xfe\x4c\x6c\x26\x1d\xf0\x00\x09\xbe\x96\xbb\xd5\xb0\x32\x51\x87\x51\x88\x94\x54\x47\x53\xe8\x6d\xf1\x3f\x8b\xc6\x5f\xa7\xa1\xb6\x07\xea\x2f\xc8\x9f\xa0\x5a\x7d\xbf\x9d\x74\x2e\xa4\x12\x93\x9b\x95\xcd\x3b\xcf\x5b\x32\x3a\x94\x80\x68\x3e\x79\x00\x5e\xad\xda\xca\x48\xc1\xcc\x7e\x49\x1d\xf1\x18\x1d\x52\x74\x25\x7f\x71\x8f\x16\xd1\x11\x4f\x10\x43\xf2\x0d\x0a\xd8\xca\x1c\x2e\x58\xf2\x34\x61\x0a\x09\xe5\x7a\xda\x8e\x19\xfe\x35\x4d\x62\x22\xec\x80\xfe\x34\x61\xff\x6e\x1f\x9a\x36\x92\x41\xe6\xb1\xf7\x75\x2e\x9f\xf9\x45\x13\x46\x59\xec\x7d\xde\xa6\x15\xb0\xe3\x63\x60\x9d\x66\x52\xa5\x91\x5b\xef\x53\x7d\x44\xaa\xe3\x28\x20\x8e\x8a\x0a\x63\x33\xb3\x28\x4d\xdb\x38\xd1\x21\x86\xd5\x6a\xc9\x0f\xa0\x4c\x78\xf3\x69\xc4\x92\x4a\x75\x1a\x85\x88\x23\x1a\xed\x8f\x57\x86\x39\xe5\x0a\xc1\x67\xb2\x2c\xea\xf6\xb0\x2f\xfc\x2e\xa4\x53\x91\x61\x1e\xbd\x01\x54\x5e\xfe\xda\x23\xd4\xa9\x26\x4e\x10\xc1\xc6\xaf\x26\x15\xd3\x3a\x63\x61\xe0\xc8\x6e\x5e\x8a\x13\x3f\x83\x72\x29\xa6\x49\xc3\x34\xe1\x3d\x2e\xf4\x57\x59\x5d\xd4\x1c\xe8\x2c\xe3\xd8\xc4\xd0\x1a\x39\xd4\xdd\x78\x13\xd6\x3c\x33\x04\x44\xaf\x3d\x2e\x0f\x87\x69\x10\x06\x1f\x81\xca\x47\x8b\x5f\x73\x9e\x21\x29\xf2\xb2\xca\x8b\xf9\x6a\xdc\xf6\xa2\x50\x51\x0b\xc5\xcd\x22\xcd\xc5\x1d\x3f\x8a\x72\x62\x5c\x68\x49\x38\x1e\xa0\x27\x43\x60\x68\xb2\xe6\xc3\x93\x52\xcb\x34\xc3\x98\x91\x68\xc5\x00\x3c\xac\x25\xb0\xcc\xb0\xf8\xb5\x55\xf3\xe6\x58\x80\xf0\x64\xef\x4e\xea\x21\x0c\x4c\xab\x28\x8e\xb8\x2b\x15\xf3\xb4\x3f\x33\xde\xf2\xfc\x97\x54\x3c\x22\x30\x2a\x60\xd8\xc8\xb2\x5b\x4a\x98\xd2\x99\xe8\x33\x77\xbe\x42\x8c\xd9\x2f\x0c\x61\x6d\xa4\x0b\x8d\x6b\x88\xe2\x84\xf9\xaa\xf1\xa6\xdc\x28\xcb\x06\x3b\xa5\xe7\xd4\xa0\x12\x9c\x68\x5c\x29\x74\xd2\x4d\x19\xec\x95\x00\x87\xd6\x24\x46\xa1\x99\x31\x0d\xff\x95\x6a\x30\x16\x04\x49\x84\x80\xc2\x9b\xdd\x60\x89\xb0\x20\x00\x8e\xac\x0a\x6d\x0d\xd5\x13\xa0\x46\xf6\xaa\xe2\x0d\x58\xdf\x69\xf8\x13\x59\x10\x06\x11\x15\xbe\x6a\x60\xd5\x9a\xfa\xa2\x3f\xc6\x2f\x0a\x59\x80\x0e\x24\x72\xf8\xdc\x3f\x3e\xec\xbe\x3b\xac\x16\x0b\x42\x61\x0b\x48\xa1\x31\x3f\xee\x5e\xce\x9d\x1e\x2c\x20\x61\x10\x82\x8b\x47\x15\xc8\x52\xdd\xdb\x5f\x2c\x20\x49\x12\x29\x8f\x5b\x7e\xe9\xe6\xdf\x80\x4d\x8b\x05\x84\xa7\x4e\xb9\x74\x07\xfc\x78\x3b\xc9\xbf\x61\x8e\x90\x12\x2b\x4d\xb2\x05\x57\x54\x3d\x67\x42\xb2\x80\x52\x81\x15\x0e\x79\x7d\x03\xb5\xac\x72\x44\x3d\xdd\x5a\xa7\x45\xb9\x9f\x46\xb3\x04\x8b\x0c\x86\xe0\xb4\xee\xaf\xa6\x30\x4d\xc1\x6f\x38\x94\x27\xa8\xf6\x66\x99\xf8\x42\xd6\xfd\xef\x19\x4f\x81\x05\x54\x18\x12\xf7\x55\x79\x28\xab\xfa\xde\xa7\x1a\x58\xc0\x82\x54\x0d\x8a\x19\xec\x59\x7c\xd3\x56\x83\xad\x94\x05\x4c\xa6\x08\x90\xfc\xbf\x4f\xb9\xf5\x27\x2f\x0b\x18\x18\x0d\x7d\x28\x54\xcf\x78\xc9\x82\x98\x2b\xec\xbb\xd5\x9e\xf0\xd0\x50\x2c\x45\x9b\xe2\x7c\x59\x90\x44\x21\x72\x3b\xfc\xa7\x45\x99\x2b\x07\xa2\x62\x41\xca\x88\x66\x9e\xb6\xef\x09\xf7\x24\x9b\x65\x73\x2d\xd2\x18\xdf\x84\xe0\x9f\x55\x59\xd4\x50\xd4\xe7\xfa\xa1\x6c\x46\x60\xdb\xee\x37\x1a\x76\xc9\x0a\x40\x41\x05\x47\x63\x63\xd7\x93\x8e\x64\x31\xc7\xa8\xb1\x06\x18\x52\x56\xcf\xad\x17\x16\x64\xd2\x14\xaa\xe0\xf4\x77\x22\xf2\xee\x9a\x12\xc4\xee\x90\xf8\x3d\xce\x58\x22\x32\x9e\x06\x1c\x38\x66\x10\x51\xdd\x1c\x83\x07\xf3\x4e\x16\x0b\x84\x30\x3c\xcd\xdd\x30\x40\xdb\x54\xfc\x70\xef\x0a\x92\x07\xe6\x2f\x0b\x84\x8a\x90\x7d\xaa\x31\xd4\xc6\x37\x50\x94\xc7\x6e\x3f\x2e\x7d\xbf\x04\x04\x68\xde\x1e\xcf\x4f\x07\x5e\x40\x33\xda\xa6\x27\x2f\x05\x4f\x1e\xfb\x64\x0f\x03\xb4\xa7\x27\x43\x26\x29\x75\x05\x90\x76\xea\xcc\x48\x5c\xb2\x40\x66\x89\xea\x95\x4f\xb6\x4d\x59\xf1\xd7\xe9\x80\x48\x91\x99\x6f\x69\x0f\x56\x23\xca\x71\xc1\x69\x33\xe9\xa7\x4a\x8c\xa6\xc7\xcd\x62\x35\xda\x88\x54\x4a\xb1\xb4\xfd\xe9\x71\xbb\x72\x7f\x03\x19\xda\xf2\x84\x53\xb9\x38\x9d\x36\x7e\x7a\xe8\xd0\xe4\x50\x2c\xc7\x3c\x12\x5b\x8d\x60\x1a\x2c\xd0\x69\x84\x4c\x6e\x9b\x5f\xbc\xbe\xed\xec\x8d\x2d\x54\xbf\x73\x09\xa3\x97\x6a\xcd\x70\x7c\x25\x2f\xb6\xad\xb8\x24\x0b\x1d\xf7\x3d\x0c\xc2\x14\xfb\xf8\xfb\xa4\x47\x6a\x4e\xb3\xbf\x34\x0c\xa8\x24\x36\x7e\xe1\x80\x71\x8b\xa3\xeb\x5f\x18\x30\x43\x90\x88\x4e\xe2\xfa\xe6\x65\x78\xfa\xb1\x30\x90\x59\x10\x5f\xa2\x7a\x1e\xda\x23\x54\xb9\x9c\x9f\x77\x61\xa0\xb8\xe3\x52\xa9\xa7\x0e\x49\x77\x55\x60\x19\x62\x6b\x00\xf0\xdb\x26\x3f\x1c\x96\xed\x79\x90\xf6\xf5\x0d\x8d\xb6\xa4\x29\x77\x75\xe6\xfd\x2d\xd6\xe3\xf9\x63\x26\xfd\xb7\x6b\xad\x13\x93\x65\x36\xf2\xdd\x07\x90\x73\x45\x7b\xff\x72\xcd\x43\x12\xe2\x19\x27\x79\xb1\x84\xed\x44\xc1\x8d\x85\x21\x27\x66\x91\x3a\x74\x28\x96\xb3\x5e\x8f\x3c\xb0\x30\x14\x01\xc6\x77\x9d\xe6\xdb\xcd\xee\xe7\xbc\x54\xf1\x75\xd9\x3b\x16\x86\xa0\x4c\xe5\xf2\xa1\xac\xc1\x4a\xcb\xd9\x4b\x51\xc8\x10\xc7\x63\xb9\x5d\xbb\x15\xd8\xbb\xa8\x2c\x8c\xa2\x58\x10\x03\xf9\x2a\x91\x0e\xf2\x15\xee\xf3\xa2\xc9\x8b\xd7\x9b\x7e\x83\x0d\xa3\x8c\x20\x41\xec\x16\xc0\xf8\x83\xfe\x82\x0a\x91\xd4\xbe\xdb\x0f\x57\x2e\xe2\xba\x69\xe0\xe8\xe7\x7a\x48\x22\xce\x2c\x54\x64\x85\x63\x6c\xfa\x77\x03\x35\x46\xba\x3a\xdb\xd7\xb0\x51\xdb\x0f\xf5\xb3\xa7\xaf\x63\x21\x21\x29\xa6\x94\x50\x83\xb4\xe2\x26\xd2\x3b\x3f\x90\x84\x09\x6e\x88\x4e\xe4\xfb\xb9\x68\x8f\xfe\x11\x36\x7f\xfd\xe3\x26\x1c\xae\x9d\x90\x28\x86\x20\x7b\x43\x7e\xb8\x50\x6a\x40\x92\x3c\x3c\xcb\x42\xa2\x63\x4c\xb9\xae\xef\x9f\x76\x7f\xee\x9f\x16\xcf\x8b\xfb\x7d\x0f\x08\x63\x21\x65\x81\xe4\x03\x8c\xdb\x46\x2d\x9a\x9e\xd8\xbf\xef\x60\x67\xf2\xa0\x6c\x1d\xaf\x9b\xbc\x2f\x0e\xbe\x1e\xc1\x65\x21\x8b\x02\x66\xb1\x83\x38\x2c\x91\x7b\x27\x8b\x23\x5c\xc9\x6a\x86\x6c\xf2\x4b\xb3\x90\x85\x71\xb7\x0b\x38\xd6\x80\xce\xa0\xa4\xee\xa1\x71\x04\x88\xb8\xfc\x0d\x85\x9a\x88\x80\xb1\x30\x26\x0c\xe3\xbb\xc2\x0d\x57\x6f\xa1\xb3\x30\xc9\x4c\xb5\x47\x03\xfc\x18\x58\x14\xa4\xbd\x94\x86\x91\xa1\xad\xce\x0b\x5e\xc8\xbc\x78\x1d\x86\x9b\x58\x98\x05\x19\xd6\x51\x62\xa9\x43\xe1\xb8\x56\xfd\xdd\x59\x67\xe1\xa1\x28\x6e\x83\x9b\xe4\x7e\xd2\x2b\x1e\x65\x10\x8c\x29\x25\x31\x43\x65\x2f\x0b\x30\xd4\xfe\x98\x99\x43\x2a\xa7\x6f\x16\xf5\x36\x3f\xec\x93\xa1\x12\xda\xd0\x62\xad\xd6\x9b\xbb\xcd\xc3\x37\xf7\x54\x29\x59\x16\x8d\xe1\x6b\x3d\xbb\x4c\x6f\xe5\x85\x52\x31\x54\x1e\xec\x46\xf9\x17\xaf\xea\xe7\x5d\x2d\xbd\x36\x5f\x77\x39\x76\x1a\x52\x77\xa5\x7c\x9f\x00\x4c\x27\x5d\x91\x10\xe2\x89\xb1\x83\x03\xbc\xf2\xc7\xb6\x99\x6c\x7a\x52\x87\xc6\x23\xe7\x07\xb9\xe4\x98\x20\xbb\x2d\xab\xf1\x31\x6f\x9b\xaa\x30\x16\xb1\xa7\xba\x73\x85\xa2\xbf\x20\x77\x1d\x53\x32\x43\x0e\x7b\xf8\x3c\xe5\xd5\x79\xf5\x06\xf2\x7d\x64\xdd\x45\x01\x8d\x8d\x0d\x57\xdf\xc0\xe9\x50\x9e\xbd\xdd\xd3\xf9\xab\x48\x8d\x89\x75\x5d\xdb\x86\x17\x6a\x18\xb1\x9a\x80\x4f\xa7\xda\xd3\x2c\x0a\x69\xa8\xb8\x8b\x86\x6f\xf3\xd7\x31\x03\x0a\x8b\xc2\x98\x62\x0d\x72\xd5\x53\xa4\xb8\x2b\x89\xc9\x8c\x7e\xae\xcc\xae\x7f\xdd\x9f\xf8\x52\x69\x87\x45\x24\x34\x47\x2a\x57\x6a\xa8\xfc\x78\x61\x56\x47\x44\x31\x65\x93\x43\xc8\x0c\xf9\xc4\xab\xc6\xe1\x0a\xc6\xff\x8c\x5e\xe8\xee\x06\x8d\x25\xf0\x3f\x1f\x6e\x30\x07\xfe\x57\x2e\x29\x8b\x68\x08\x51\x36\xe6\x1f\xb4\x3c\xf1\xae\x41\xc4\xa5\xf5\x6e\x5c\xc0\xe4\x92\xd2\x95\x45\x34\xa6\xcc\xd5\x53\xe4\x47\x03\x11\x9d\x91\xa6\x65\x51\x12\x98\x7c\xfc\x7f\x14\x3f\xc0\xef\x1a\x4b\x5a\xea\x1e\xa0\xcf\xa2\x84\x18\x85\xb1\xa7\x5b\xac\xd9\xb8\xca\xac\x35\xb7\x1f\x39\x88\x30\x8b\x92\x44\xe1\x38\xe6\xf5\x93\x65\x1a\xac\xae\xe8\xdc\xb2\x28\x8d\x74\x32\x44\xfe\x18\xb7\xf6\xb6\xac\xac\x90\x80\x5d\x43\xd3\x6a\x30\x16\xa5\x1a\x90\x90\xfb\x66\xc4\x62\xce\xa2\x2c\x92\x71\xe2\xc5\xce\x1d\x62\xa3\xfb\x3b\xa8\x6c\x98\x45\x5c\xbf\xbe\x0e\x83\xa4\x93\x49\x93\xa5\x09\x5a\xa5\xdd\x07\x7b\x87\x41\x50\x8e\x45\x99\x30\x91\x56\x67\x65\x76\x9f\x66\x14\x2b\x9d\x4c\x4b\x7b\x1b\x17\x49\x92\x0e\xb0\x14\x5f\x1a\xa5\x11\x57\x1a\xd7\xcd\xb2\x14\xf5\xc3\x4f\xfe\xea\x5e\x2e\x54\x4a\x6c\xf4\xfb\x86\x9f\x4e\x66\x3a\xcc\x55\x15\xb1\x48\x66\x24\x96\x7e\x7a\x2d\xcf\x1b\xe5\xcf\xaf\x7e\x0d\xb9\xb6\x96\x28\x06\x9f\x67\xb9\x6f\x8c\xfd\xb7\x77\x6f\x96\x0a\x1c\x78\xf2\x19\x14\xc0\x91\xbb\xe2\x82\x1a\x85\xe1\xaf\xf4\x02\x68\xa0\x82\x41\x3d\xd1\xfa\xf3\x64\xca\xd8\xed\x75\x1d\x44\xe8\x00\x2e\xef\xb6\xfb\xa7\xe7\xf5\xde\xf3\x05\xb1\x48\x67\xa6\xf2\xc1\x22\x8e\x3d\x45\xe1\x05\x95\x89\x69\x4f\xc2\x28\xc4\xa4\xd3\x2f\xc8\xf1\xe8\x28\x0f\x33\x0a\x44\xd7\x75\x4b\x18\x09\x65\x84\x15\x56\x60\x38\x1f\xc7\x0f\x57\x0c\x45\x83\xb7\xbb\xe7\x97\x51\xc0\x82\x90\x24\x73\x87\xc7\xb2\xac\xeb\xef\x4f\x37\xa0\x51\x62\x77\xdc\x3b\x92\x18\xae\xbe\x8a\x17\xaa\x3c\x46\xfe\xee\x2c\x24\x91\x2d\x4e\xc7\x18\xa3\xf2\x57\xb4\x74\x21\x03\x7b\x9a\x0c\xa5\x8a\x6d\x23\x1a\x28\x69\xe2\x0e\xa8\x80\xa8\xf6\x1f\x90\xe3\xb1\x68\x04\xfe\xdc\xb3\x68\x6c\xa6\xb3\x55\x67\x37\xfe\x98\x53\x74\x1c\x24\xa1\x2e\xf6\x58\x7f\xbf\x16\x61\x8f\x39\xde\xe3\xa6\x71\xb1\xdb\x13\x2a\x38\x15\xbd\x6c\x91\x87\x46\x7d\xa9\x94\xca\x08\x0b\x08\x8e\xfb\x3d\x7f\x85\x4f\x2f\x3b\xc7\x08\x0b\x63\xa6\x6d\x89\x26\x3f\x98\xac\x54\xe9\x38\x5f\x86\x9b\x2f\x89\xa9\x40\xde\xc1\x6f\xd0\x23\x02\x7f\x41\xfe\xfa\xd6\x80\x32\xb0\xf6\xc9\x99\x49\x62\x99\x31\x47\x18\x5f\xe7\xb6\x44\xff\x4a\xff\x62\x50\xd8\x0f\xd1\x9e\x6f\x8e\x07\xcc\x68\x8f\xbf\x42\xc2\x23\x04\xfb\x9f\xaa\xbc\x90\xf9\x89\x1f\x1e\xdb\xa6\xee\xce\x4a\x5f\xf5\xc6\x48\xa2\x33\x46\x7d\xb5\xae\x39\x66\x9f\xb1\x76\xef\x4b\xeb\x8e\xa4\x84\x38\x9a\xf9\x3b\x5e\x37\x63\x24\x1c\x23\x59\x1c\x24\x4e\xdb\x31\xb7\x49\xb6\x3d\x06\xbc\xf7\xc5\x00\x6d\xc0\x08\x0f\x0c\xda\xc0\xc1\xff\x1f\x4a\x5f\x76\xcf\x08\x17\xe6\x28\xc2\xa4\xd0\x63\x71\x38\x9b\xfe\x19\xd1\xca\xda\xbf\x8c\xab\x04\xa9\x65\x7f\xf0\x4a\xf1\xfa\x2d\xe7\x45\x7f\xc5\x84\x57\x07\x4e\xcf\xaf\xb2\x7a\xaf\xdf\xca\x93\x6b\x22\xc2\x08\x55\xdc\x8f\x9d\x87\xe7\xe9\x72\xfc\xd5\x4c\x06\x56\x9f\xae\x3b\xc4\x0c\x0e\xc4\x5f\xe4\x5a\x08\x27\x1c\x92\xe3\x6d\xb3\xb5\xa3\xb6\xb9\x8c\x4c\x1e\xbf\xb7\xdf\x6f\xab\xf2\x28\x96\x4f\x6f\x13\xe1\x36\x46\x64\x1c\x62\x75\x19\x7a\x7f\xc3\x23\x78\xdc\x0a\x02\x34\x1b\x71\x13\xbb\xa9\xb8\x8b\x2f\x11\x15\x4b\xb0\xe0\x95\xc5\xe1\x30\xa5\x43\x75\x8d\x52\x9a\x12\x9f\x64\x6f\xf9\x61\xd7\x4b\x75\xf9\x07\x09\x8d\x89\x08\x95\xd7\x9d\xcb\xd7\x56\x60\xfc\x97\x6b\x26\xce\xe8\x5f\x27\xf9\x1d\x8e\xff\x73\x52\x65\xc6\x88\xd2\x51\xe0\xc8\xf4\xaa\xea\xa5\xf3\xc0\x72\x38\xa8\xd0\x77\x42\x67\x58\x48\xd2\x16\x28\x1a\x6c\xe3\x13\xf3\x1b\x3b\x01\x4a\xd0\xeb\xd8\x7c\x7f\xbc\xb9\x1b\x6d\x88\x00\x04\x53\x00\xfb\xda\x97\xcd\xaf\x78\xa5\xfa\xdc\x89\x37\x15\x88\xce\xa2\xd8\x7e\xd8\xe5\xb9\x2d\x5b\x8b\x42\x18\xd8\xdc\xdd\x2e\xc8\xbc\xd8\x51\x7d\xe3\xc2\x96\x7e\xe4\xb4\x36\x29\xfa\x1f\x79\xb7\xdd\xff\x7a\xf3\xb4\x3b\x8c\x06\xa1\x91\xe4\xaa\xa1\xf9\x47\xcb\x8b\x26\xef\xdc\x9c\x63\x8e\x13\x7c\xfe\xdc\xa7\x01\xd3\xc8\xb4\xe3\xb8\xd2\x5f\x6a\xa8\x0c\x72\xea\xca\x39\xe2\xee\xd3\x19\x1e\xa0\x76\x5d\xc3\x81\x9f\x7d\x2f\xb4\x88\x7b\xfa\x83\x65\x7b\x7e\x68\x8f\x33\x05\x07\x8c\x86\x61\x80\xde\x85\x2d\x03\x7e\x58\x6c\x6f\x16\xff\x18\xcf\x25\x1a\x86\x09\x72\x38\x3f\xaf\x6f\xbe\x6d\xee\xee\xdc\x3b\x42\x8b\x58\x9a\x8a\x54\x5d\xa9\x0d\x67\x34\xe4\x4c\x28\x5f\xfd\xbe\xb8\xbf\x9b\xbc\x27\x8a\x0d\xc0\xd5\x9a\x51\xe3\xcd\x93\x46\x71\x82\xd1\x09\x3d\x41\x94\x31\x4a\xb2\xc4\x28\xfb\x99\x22\x65\x57\xb6\x34\xbf\xb1\x52\xc2\x0d\xc8\x0d\x7e\xf3\x43\xcb\x1b\x58\x54\xc0\x67\x58\x75\x06\x37\x08\x8a\x6e\xe9\xa6\x68\xc0\xaa\x6c\x3d\x6a\x13\xb8\x77\x43\x41\x64\x86\x70\x07\x05\xbf\x3d\x2f\xca\xf8\x21\x34\x0a\x6d\xc8\xd7\x89\xdb\x3e\x94\x8d\x27\xfc\xf3\x07\x30\xa5\x91\x4e\x94\x2b\x24\xef\x0e\x6d\x33\x79\x5d\x55\xfe\x78\xc0\x28\xd5\xb8\xbb\x89\xf6\x3c\x73\xd6\xb9\x3a\xba\x41\x27\xe2\x34\x12\x9e\x71\xf7\xb6\xac\x96\x6d\x55\x4c\x3b\xaa\x53\xb4\x59\x31\xe0\xf6\x8c\x66\x1c\x82\x32\x78\xd3\x4c\x24\xb6\x2c\x54\x9f\x51\x46\x0d\x11\x97\xcb\x06\xb8\xdf\xc2\x64\x90\xa9\x11\x88\xee\x4b\xbe\x99\xf1\x6f\x8b\x03\x48\x42\x67\xfa\x75\x06\x44\x67\xfa\x8d\x3d\x8c\xe9\x1d\x8c\x63\xdd\xda\xef\xb2\xc9\x8b\xd7\xba\x67\xe3\x61\x34\xe6\x59\xe4\x02\xee\x3e\xa8\x86\x23\xf6\x52\xe7\xc5\xeb\x33\xff\x40\xea\x67\xdb\x3a\x09\x28\xf4\x68\x8f\xf7\xad\xe3\xc0\x9e\x8c\x54\x12\x64\x91\xcf\x03\x1d\xa0\x6e\xa6\xc0\x60\x46\x13\x6e\x76\xd8\x7d\x63\xf8\x53\x5a\xf9\x06\x55\x3d\x0a\x72\xd2\x44\xa5\x3a\x1c\x18\xab\xe6\x37\x6e\xf9\x01\x88\x6f\x02\xe6\xc0\xa8\xa1\xf9\xce\x1b\xf9\xe6\xf2\x1c\xcb\x73\xd7\x2d\x47\xd8\xeb\xdc\x14\x9a\x12\xb3\x1e\xe0\xb3\x1b\x88\x36\x77\xe0\x68\x46\xd3\x24\x8e\x1d\x89\xe6\xb9\x1f\x88\xcd\x6a\xf1\xe4\x53\x7a\x30\x24\x51\x1f\x3b\x94\xf6\x29\x19\x15\xf8\xab\xb6\x2b\x17\xbd\xa2\x59\x0a\x8e\x66\x73\x67\x62\x30\x0b\xf5\x3b\xaf\x4b\x2c\x8f\x35\x70\xc6\x8b\x6a\x96\x2b\xbb\x5a\x96\xc5\x22\xf1\xfa\x28\x43\xc9\xf7\x69\x43\xa0\x56\x7f\xfa\x60\xf8\x38\x17\x13\xf3\x97\x66\x10\x23\xa8\xe3\x66\xf1\xe7\xd6\xf7\x14\x12\x0c\xf0\x59\x00\x2f\xa6\x41\xf2\x6e\xa6\x23\x27\x7c\x6d\x8b\x8f\xe7\xb7\x0e\x1e\xc4\xae\x5e\xcd\x32\xba\x1b\x55\x8f\xa1\x9c\x46\xd7\xca\x70\x25\xe3\x89\xbb\x5f\x17\x4d\x95\x3b\x62\x12\x46\x45\xc4\x50\x39\x13\xf3\x27\x46\xe9\xec\x60\x8f\xdc\x70\xfa\x03\x05\x8b\x99\xa9\xb1\x1a\xf1\xb9\xfc\xed\x92\x91\x92\x51\x99\x06\x18\xae\x7e\xfe\x34\x3c\x63\xee\x7d\x52\x91\xcc\x76\x79\xcb\x0b\xf5\x91\xcb\xb7\xce\xa2\x5f\xf1\x43\xd9\x75\xeb\x12\x91\xc8\xa8\x62\x46\x52\xbf\x2e\x9a\x3d\x76\x73\xea\x40\x53\x95\xc6\x81\x3d\xe3\x56\x25\xba\x48\xd1\xa4\x05\x24\x04\x88\x57\x5d\x43\xbf\xa9\x3f\x5e\x29\x64\xa1\x1c\x88\x5a\x62\xcc\x63\x7e\x32\xe8\xc0\xa9\x16\x60\xd0\x77\x24\x5b\x70\xad\xa6\xfc\xeb\xc8\x25\xd5\x84\x06\x16\x9a\xf0\x8d\x1f\x61\x7d\xf5\x6b\x6b\x46\x10\x51\xfa\xa8\xb1\xcc\xe0\x60\x52\xcc\xdd\xa7\xb0\x83\xcb\x02\x62\xe2\x54\xdc\xaa\xd9\xd9\xfc\xb8\x9d\x0f\xfd\x79\xef\x9a\x33\x43\x9b\xd6\x94\x26\xd2\xfa\x65\x3f\x59\x14\xab\x70\xaa\xd8\x33\x23\x36\xcf\x18\x09\x02\xc4\xf8\x7f\xe4\x07\x25\x79\x65\xf3\x83\xa1\x7b\x0e\x49\x28\x3a\xc3\xae\xc0\xe0\x66\x60\x27\x30\x1a\x31\xdc\xea\x70\xae\xe2\x97\x1c\x6d\x4e\xdd\xe1\x87\x07\xdb\xa9\xfc\x80\xea\x86\x9f\x9f\xa0\x7a\x82\xaa\x2e\x8b\x15\x3f\x6d\x8a\x3e\xda\xc7\x68\x6c\xf4\xdd\x9a\xd1\xee\xba\x2b\x07\xe4\x8d\x97\x90\xa4\x2f\x4f\x00\x46\x33\x23\xc0\x75\xcc\x8b\x1b\xa7\x75\xe8\x2e\xf1\x18\x8d\xca\xbc\xc8\x2d\xb1\xae\x51\xa2\x9c\x9d\x44\x2c\x8e\x15\x97\x23\x1d\x35\xbd\x2a\xdb\xaa\xf6\x8f\x4b\x18\xe8\xc0\x05\x0c\x87\x08\xc2\xaf\x93\xa9\x2c\x11\x99\x61\xf4\x96\x3e\x84\xc8\x12\x15\xe1\x82\x5b\x9e\x1b\x40\xb3\xc8\xcf\x96\x04\x18\x7a\x7f\xfb\x57\x68\x7e\x61\xde\x75\xdc\xcd\x94\x03\xda\xa5\x13\xf8\xf7\x05\xe2\x91\xb1\x2c\x08\x08\xf1\xfc\x22\x4d\x3b\x27\x15\xc1\x58\x16\x09\x88\x3c\x0f\xc4\xa8\xb6\x77\x7e\x9c\xb2\x84\x12\x43\x2c\x2b\x0f\xad\x9a\xae\x7a\x96\x49\x82\x70\x50\x91\x37\x1f\x65\xa5\xea\x55\xdb\x3c\xb6\x4d\xa9\xc3\x20\x70\x3f\x91\x07\x11\x6e\xae\x5b\x47\xf8\xcb\x98\x88\x85\xb0\x90\xa9\xeb\x52\x0c\x8c\xc9\x50\x62\x38\x19\x63\xec\x0f\x5f\x06\xd9\x67\xb6\x3f\x26\x69\x18\x76\x7d\xbb\x5d\xaf\xf7\xab\xef\x8b\xe7\x6f\xeb\xe7\xfd\xcd\xfa\xe1\xf1\x7e\xf3\xb0\xd8\x3d\x3e\xff\xe1\x9b\x69\xa4\x6a\xcd\xeb\x1e\x0d\xd3\x62\x11\xb1\x6e\xdd\xfe\xcd\x54\xa0\x9d\x27\x67\x77\xf9\x99\x5d\x92\x29\x62\x04\x2b\xad\xde\xef\xb7\x5f\xfe\x76\x0e\x18\xfa\xf5\x62\x97\xfe\x82\x32\x32\xf7\x79\x7d\x07\xaf\x9e\xcb\xe2\x8a\x92\xa6\xbd\x07\x02\x40\x21\x11\x61\x4b\xf0\xf3\x52\xb9\xc3\x7f\x53\x7c\xef\x26\xb1\x7b\x3a\xd0\x18\xe3\x19\x77\xeb\xdd\xe3\xa0\x94\x81\x31\x27\x43\xe4\x2a\x5f\xf6\x4d\xb9\x2f\x7b\x52\x2a\xc6\x00\x22\x3c\xd5\x0a\xf8\x6c\xb6\x50\xf7\x18\x44\xc6\x74\xa8\x91\x94\xb4\xc9\x8f\x38\x99\xb1\xfc\xfe\xaf\xd1\xb4\x8c\x69\x22\xa8\xe5\x25\xdd\x14\x9d\x25\x59\x56\xf3\x7a\x01\x8c\xe9\x38\x30\x82\x6c\xdd\xe2\x5b\x14\x56\xb6\xe6\x12\xe0\xcd\x98\x16\x04\x61\xb4\xdb\xc5\xed\x7a\xff\xb4\x7e\xde\x3c\x5a\xd2\x5c\x16\x47\x81\x82\x6e\xfb\xb9\x2b\x5f\x97\xed\xc5\x9b\xe6\x77\xd8\x98\xb0\x50\xf6\x25\xf0\x7d\x84\x6f\x78\xf7\x25\x11\xe5\xd8\x12\x1f\x7f\xaf\x98\x64\xa0\xd0\x34\x7a\x59\xce\x3b\x7b\x31\x63\x21\x4e\xf4\x53\xe9\xbe\x50\xcc\xb2\x04\x65\x7c\xf7\xbf\x23\xff\x27\x10\x96\x80\xc5\xf0\x24\x7e\x94\x9d\x41\x68\x93\x5e\xe3\x07\xc6\x8a\x12\x39\xf0\x1e\xc7\x0c\xfb\x63\x6f\x3c\x4e\xc2\x10\x53\xb0\xc7\xf6\x10\xbb\x8c\x5d\x9c\x48\x15\xc5\x03\xe0\x7c\xab\x06\xf5\xf0\x73\xc9\xcc\x38\x01\xb3\x53\xd4\x6f\xe5\xc7\xfe\x08\xfb\xe6\x0d\xf6\xc7\xb2\x80\xb3\x7f\xa4\x26\x18\x59\xb1\xb1\xbb\x85\x52\x16\x73\xe7\x25\xff\xfa\x1f\x90\x46\x86\x90\xcd\xb8\x6f\xbb\x5c\xbe\xcf\xac\xb7\x38\xcd\x88\x16\x03\x6f\x73\x28\xcb\xdc\x5d\x85\xc4\x10\xa9\x7a\x76\xd8\x59\x35\x37\x16\x67\x84\x19\xc4\xe4\x5b\xf9\x61\x39\x81\x1e\xe0\xb3\x79\x76\x1e\x58\x9c\x65\x1c\x01\xc6\x92\x17\xcf\x08\x00\x82\x97\xa2\xee\x79\xd1\x7d\x2b\x85\x81\xd2\xbd\x2c\x8f\x27\x5e\x79\x7e\x59\xb3\x39\x8d\x7a\x9e\x09\x2b\x4f\x9b\xbf\xbe\x35\x19\x99\xfc\xae\x4c\x0b\x1f\x5c\x37\x69\x58\xa4\xf8\x19\x77\x9a\x07\x1a\xe3\x71\x75\x7b\x3c\x5e\x44\x23\x62\x4e\x20\xb5\x42\xb1\x23\x40\x4f\xec\xa8\x08\x57\xbc\x28\xb8\xe0\x85\x83\x94\xc4\x22\x52\xf8\x1b\xad\x9a\xee\x53\x59\x5c\xd2\x39\x0d\x96\x73\x2c\x68\x84\x7b\xc8\xde\xe2\xad\xee\xf3\x7e\xe8\x85\x50\xdc\xd4\xa5\xf9\x34\xa6\xf9\xe8\x93\x1f\x2a\x80\x3b\xba\x8e\x41\x8c\xf6\xa5\x9e\x9e\x83\xb1\x4c\x33\xe4\xef\x5d\xbd\x41\xa1\xe0\x57\x59\x79\xe4\x56\x2c\x75\x24\x22\x1f\xfa\x42\xf2\x8d\x21\x03\x0a\x8b\x55\xa0\x30\x13\x63\x02\x37\xdb\xf2\xa0\x26\x24\xe5\x2c\x06\x92\x62\xdd\xa9\x45\xf9\x4e\xc2\x6e\x31\xc4\x06\x2d\xfb\x0a\xcd\xba\x96\x55\xf9\x31\x22\x0b\x65\x9d\x99\x83\x24\x73\xfb\xbc\x7e\x2c\x26\x60\xa0\x18\x74\x80\xcf\x86\x4f\x90\xcb\xf6\xbc\xe4\x13\x69\x45\x16\xeb\x90\x61\x46\xe6\xe5\xff\x78\x3e\x84\xe9\xb2\x58\xcb\x0c\x99\x2d\x9e\x0c\xc4\xe2\x32\x36\x90\x04\x60\xc2\xc7\xab\xb6\x6e\xca\xe3\xd3\xe3\xc2\xdc\x3f\xcf\x68\xf7\x5f\x6d\x81\x49\xc8\x4c\x98\x50\x58\xb1\xb7\x4b\x2e\x11\x96\x84\x71\x64\x44\x31\x71\x7d\xde\xf3\xbc\x98\x33\x43\x93\x28\x36\xc9\x0a\xe5\x3b\xde\xb9\x94\xdd\x5a\x6d\x4f\x7f\xb5\x21\x4f\x7a\x15\x49\x23\x83\x62\x35\x13\x4a\xd9\x56\xa8\xda\xf6\x57\xf5\x81\xee\x76\x25\x25\x71\xac\x4b\x00\xf7\x79\x7f\xd8\x25\x11\x64\x98\xde\xdc\x2b\x90\xa5\x82\x65\x7b\xc6\x1d\x69\x30\xd9\x13\x92\x06\x3c\x1a\xa0\x01\x30\xa5\x33\x86\x2a\x24\x24\x0b\x22\xe5\x98\x1e\x74\xf9\xc4\x0b\x38\xf8\x6b\x10\x63\x98\xab\x1f\x88\x8d\x7e\x00\x50\x57\x2a\xec\x59\x42\x29\xc1\x29\xf5\x3f\xcf\xff\xdc\xaf\xff\xb9\xfa\xbe\x78\xf8\xb6\xc6\x0a\x76\xf7\x44\xca\x19\x6e\xf1\x5c\xa9\xbf\xb7\x55\x5e\xab\x7c\x04\x2f\xfa\xd7\xbf\x31\x1f\xe2\xcc\xc3\x84\xaa\xd0\x19\x30\x9d\x87\x33\x9e\xc0\x09\x8b\x82\x40\x39\xd7\xac\xdb\x47\x9a\xf3\x12\x64\x79\xb4\x09\x9a\x35\xaf\x8a\x97\xa2\xb1\x15\xa4\xe1\xb5\x4f\xc4\x64\x44\x52\x4b\x69\x70\xa9\x3e\xc8\x92\x38\xc9\xb4\x39\x95\x64\x7e\xca\xa1\x68\xee\x37\xce\x24\x4c\x12\xca\x2d\xa3\x00\xa8\xa1\x92\x1d\x4b\xd2\x44\xa3\xf2\xe5\x29\x97\xe5\xa9\xde\xe7\xdd\x41\x94\x37\x57\x2c\x87\x24\x15\x91\x93\x0d\x30\x5b\x4f\x59\x1d\x0d\x54\x6a\xaf\x6c\x3a\xcc\xb5\xd4\x46\x12\x6b\x0b\xcd\x2a\x6f\xce\xc8\x76\x34\x7b\x40\x26\x19\xc9\x12\x47\xd5\x60\x30\x0b\x5f\x66\x58\x93\x8c\x66\x78\x9c\x78\xe8\x86\x21\x1a\x9b\xb7\x72\x93\x2c\x0d\x85\x35\x53\x5d\xd7\x78\xc0\x70\xbf\xd1\x3c\xaf\x78\xa1\x80\xd7\x67\x7f\x89\x72\x0c\xfb\x18\x2a\xe8\xa7\x97\xe5\xdd\x66\xb5\xdf\x2e\xee\xd6\x7d\xcd\x3a\x4b\x78\x9a\x46\x3d\x77\x98\x63\x91\x9b\xc5\x13\x27\x3c\xcb\x8c\x3c\x21\xd4\xcd\x2d\xcf\x0f\xcf\x80\x27\xe4\x1d\xea\x06\x3e\x83\x61\x53\x5e\x17\xa8\x0d\xef\xfe\xd3\x4f\x79\x49\x0c\x8d\x32\x57\x0a\xe5\x87\x0c\x5b\xf6\x0c\x9b\xda\x90\x6a\x82\x25\xb2\x33\xf0\xac\xab\x86\x15\x4c\x9d\xed\xa9\xae\x25\xfd\x12\x99\x18\x98\xf1\xf1\xbd\xd9\xd4\xf5\x15\x86\x32\x96\x28\xa2\x9d\x57\xf1\x0c\xb7\x6d\x31\x2b\x9f\xc8\x12\xc5\x34\x38\x2a\x9a\xf2\x0a\xe5\xe3\xf4\xc9\xc0\x51\x12\x5d\x40\x53\xdf\xf5\x69\xa8\x44\x0b\xc3\x36\xdb\x78\x4e\xa7\xd1\xab\xd2\x20\x4e\x95\xcd\x9c\x9a\xd4\xcf\xb6\xa9\x46\x27\x4b\x1a\x64\xc4\x11\x4b\xdd\xdd\xfd\xdc\x83\xca\x9b\x7d\x94\x8e\xdb\x84\x2c\xb6\x52\xf6\x48\x82\x3d\xaf\xdb\xce\x52\x42\x09\x78\x01\x0f\x23\x30\x32\xfa\x15\x29\x49\x92\x10\xf1\x27\x7b\x38\x62\x75\x81\xd9\x2b\x98\xbb\x2c\x04\xc6\xc0\x9f\xff\x7c\x70\x99\xef\x94\xd1\x10\x6f\xf1\xb1\x4c\x5b\x82\x7f\x9e\xbc\x9b\xa5\x81\xd1\x36\x94\x2e\x2c\x15\xfa\x47\x08\x91\x91\x81\x29\xba\xa8\xcd\x26\xf3\x79\xf1\x0c\x05\x68\x0b\x74\xe3\xe8\xa2\x9c\x69\x9c\x52\xee\x12\x6e\xbc\xad\xc1\xd1\x56\x40\xdf\x20\x61\xc6\xd2\xd8\x1b\x6e\x7f\x77\x21\x01\xa2\x3c\x16\xe9\xb9\x97\x9d\x67\x69\xa2\x8d\x10\x7c\x5d\xea\x66\xc5\x4f\x68\x33\xde\x94\x1f\xc5\x2e\x3f\xfa\x33\x21\x4d\xad\x62\xcb\xe9\x8d\xd7\x40\xd7\x85\x32\x1a\xad\xee\x6a\x66\xb8\xf1\xa1\x50\xbd\x9e\x26\x4b\x53\xc1\x43\x6f\x8f\x7e\x40\x8d\x5b\x6d\x77\xe2\x95\x6d\xf3\x8f\xb6\xac\x3c\x74\x30\x4d\x25\xc7\x85\x83\xf5\x3e\x97\x5c\x6a\x2c\xcd\x88\x51\xd5\x7e\x2c\xec\xd9\xbf\x6c\xcf\x06\x48\x0c\x45\xcd\x9b\x6b\xe7\x46\x9a\xe9\x10\x69\x67\xbc\x7c\x7a\xf3\x06\x55\xbd\x2b\x6f\x78\x39\x99\x0e\x9c\x90\xc8\xd6\x14\x19\xce\x2c\x7b\xb0\xcd\xae\x85\x74\xb0\x7c\x53\x4e\xa8\xb4\x80\xea\x6e\xcc\xca\x76\x3a\xd3\x78\x2c\xc1\x1d\x04\x4f\x86\x27\x77\x3e\x5e\x9b\x72\xce\x6d\x58\xfd\xa0\x6f\xc0\x30\x18\x0c\x48\x3c\xdc\x68\x08\x46\xdd\xdc\xc6\xf9\xd3\x6b\x5b\x4f\xde\x2c\x65\x80\x3b\x8b\x19\xd7\x6e\xc8\xdc\x5e\x95\x4a\x88\xa2\xc0\x19\xd5\xd6\x5c\x1e\x2f\x34\x15\x88\x1e\xf2\x77\x3c\x41\x93\x23\x0a\x1c\xa3\x29\x8f\xda\x15\x3e\xf6\x08\xc4\x54\x65\x31\x26\x18\x3f\x9c\x7f\xb1\x7e\x5e\x45\x11\x99\x4c\x6c\x1d\x19\xee\xab\x37\x5e\xbf\xed\xce\x27\xc7\xe9\xe7\xae\xb2\x08\x81\x84\xf5\x1b\x47\x6a\x5b\xcf\xe5\xc9\xb2\x20\xe1\x98\xed\xfd\xc1\x8b\x7c\x80\x8e\xca\x02\x99\xa1\xe5\xed\xb4\xbf\x86\x5e\x4f\x16\x26\x31\x46\x64\x7e\xc0\xef\xd5\xe0\x9e\x50\x10\x84\x92\xe6\x0d\x1c\x57\x1c\x8b\x9b\xe7\x67\x50\x16\x4a\x23\x81\x6f\xec\xe9\xbf\xe7\xc5\xeb\x01\xea\xc7\x81\x8c\x08\xcb\x22\xc6\xac\x7b\x8e\xd6\xdf\x28\xd1\x91\x7e\x6d\xc7\x65\x91\x24\xe8\xd8\x72\xa5\x1c\x1f\x44\xfb\xfa\xd6\x2c\xea\x09\x87\xf6\xf8\x2e\x42\x4c\xd8\xdb\xcb\x55\x1f\x79\x7e\x98\xf2\x8f\x0e\x3f\x66\x46\xe2\x50\x64\xce\x1a\xab\xdb\x6a\xb4\xcd\x4f\x1e\xae\xb4\xf0\x58\xce\xce\xf4\xc3\x42\xe1\x2b\x2b\x2c\xa3\x54\x13\x6f\x88\x5e\x6b\x93\x48\x15\xbb\xbd\xf8\x54\x56\xc8\x90\xd4\xf4\x3b\x45\x46\x79\x88\xb6\x22\xaf\x80\xab\xff\x70\xe9\x56\x88\xb5\xad\x5c\xa0\x36\x73\xe4\xd0\xb6\x2a\x1d\x73\x3b\x9d\xa3\x35\xb6\xdf\x32\x96\x0a\xc5\xfd\x11\x71\x9b\x1f\x86\x12\x9f\x2c\x63\x1a\xc0\x30\x7d\x1c\xf3\xc2\x25\x23\x4d\xbc\xd9\xb6\x88\x03\x19\xd9\xac\xe1\x0f\x38\x1b\x56\xf9\xf1\x34\xce\xe2\x24\x74\x1a\x43\x7b\x55\xe4\xe3\x85\x97\xa5\x81\x70\xac\xa6\x37\xcf\xdb\x6e\xe6\xdd\xe4\xbf\x3b\x5b\x4d\x4d\x1b\x86\x69\x16\x0d\xf3\x93\x17\x31\x16\xdb\x30\x4b\x4d\x24\x06\x73\xaa\x73\x73\x6a\xae\x7a\x7e\x34\x05\x32\x91\xb8\x9a\xaa\xce\xa5\xfc\x56\x95\xed\x3c\x81\x06\xcb\x32\x65\x30\xc8\xf7\x8b\x7f\xee\x1f\x5e\xee\xf7\x4f\x0b\xd4\x6a\x5c\xec\x76\xeb\xfb\xa7\x9d\x4b\x14\x65\x3c\xa3\x51\x3a\x8c\x68\x57\xc0\xeb\xb6\x32\x70\xb0\x49\xff\xb9\xe4\x58\xc3\x72\xa8\xa4\x1b\x72\xbf\x1a\x45\x04\xb8\x17\x3d\xac\x7f\x2e\xfc\xdf\x18\x8b\xed\xc0\xf4\xd8\xb3\x4c\x86\x21\xa5\x6e\xd7\x42\xfb\xf5\x07\x9c\xaf\x6d\xd1\x73\x60\x8b\x4c\x45\x09\x9e\x24\xbf\xe1\x2d\x97\x07\xb8\xe9\x0c\xbb\xe5\xb9\x33\x79\xff\x98\x34\xa4\x29\xed\x11\x8b\x7e\x97\xcb\x14\x63\x5c\xf5\x98\x2d\x5f\x2d\x3a\x82\x0e\x5c\x7b\x39\x8b\x09\x19\x53\x20\xcf\x04\x72\x32\x15\x73\x47\xe1\xb4\x28\x5e\xe1\x80\x65\x6d\xf5\x1f\xc3\x8c\x72\x06\x81\x48\x13\xc7\xb2\x2b\xcb\x42\x19\x8f\xd3\x9d\x9b\xe3\x07\x02\x4b\x22\x43\xd6\xbd\x98\x4e\x40\xe0\x91\xd1\x0d\x2d\xca\x0f\x7d\xe0\xef\xde\x17\x1a\xcd\x1d\x80\x10\xb7\xb8\x0a\x69\xc7\x47\x1e\x49\xa6\x09\x77\x50\xa7\x55\x59\x28\x3c\x25\xea\xd1\xf2\xd6\xb1\x11\x44\xc6\x42\x3e\xfe\xb9\x69\xe0\x38\xda\xf5\x33\x9d\x12\xc4\xc1\xed\x5f\xa1\x79\xd0\x57\xe2\x52\x3c\xe0\x8c\x59\xb2\x85\xcd\x91\xbf\xa2\x25\x5f\x0e\xaa\x23\xc7\xbb\x0e\x0f\x24\x4f\xb5\x35\xab\xe7\x32\x05\xf3\x39\x15\x1e\xa8\xd0\x68\xd2\x7a\x12\xc0\x7f\xb4\xbc\x6a\xa0\x72\x36\x1c\x0f\x03\x8a\xf9\xff\x43\xb1\xd7\xf9\x27\x28\x72\xa5\x03\xa1\x4a\x30\x67\x72\x84\x86\x2b\xde\xf0\xef\x9e\x83\x8b\xf1\x48\x11\xc3\x06\x6f\xa0\xb8\x53\x40\x91\x6d\x45\xe2\x4c\xd0\x11\x46\x7a\x50\x59\x38\xfa\x42\x9c\xc6\x66\x53\xfb\x7d\x59\x69\xc9\x29\x08\xcc\xaa\xd9\xd0\x94\x21\xe0\xe3\xf9\x64\x2a\x70\xc6\x42\x16\x8d\xbc\x72\x53\x2d\x7d\x81\xf2\xe5\x71\xa0\xb0\x5a\xf1\x34\x00\xfe\x5d\x2b\x6f\xe2\x71\x42\x30\xea\xb1\xcf\x6b\x0f\x02\xac\x16\x4d\xc3\xe5\x3b\xd6\x5b\x5d\x19\xbd\x24\x8b\xb9\x35\xab\xf6\xf6\xfd\xfb\x45\x95\x17\x17\xe4\x07\xb6\x7d\x4a\x64\x24\x1c\x65\x2c\x9a\x45\x6e\xc9\xf2\x34\x35\x80\xa3\x01\x13\xc0\x83\x37\x3e\x79\xca\x23\x2e\x06\x25\x6c\x98\x2d\x1a\xed\xac\xae\xa1\x32\xea\x2b\xcf\xa5\x7c\x87\xe6\xb6\x85\xa1\x02\x2f\xe3\x59\x4a\x88\x29\x73\x6b\xeb\x06\xc0\xf3\xa0\xf6\xd7\x53\x69\x22\x5f\x4d\x67\x08\x1a\x3b\xd6\x66\x2c\xba\x6e\x4d\xbe\x06\x0f\x0c\xe4\xc9\x08\xfa\xda\x38\xec\xc5\xce\x3f\x1e\x03\xae\x88\xdb\x38\x3c\xab\xbe\xbd\x24\x68\x1c\x44\x3d\xdc\xe9\x6b\x47\x6f\x60\xde\x72\x19\x46\x16\x8a\x57\xbf\xed\x4a\x2f\x83\xc2\xb8\x4c\x8d\xef\x7d\x00\xdd\x60\xfd\xc3\x10\x8e\xcd\x25\x27\x18\x87\x7c\xf8\xf3\x9f\x37\xd0\x2d\xa4\xca\x94\xc1\x6e\x30\x60\xa1\x6d\xbd\xa7\x73\xcd\x66\x92\x73\x5c\x02\xa5\x5e\x44\xe8\x16\x40\x6d\xcb\xb6\xea\x5f\xa0\x32\xca\xb3\x9e\x48\xc7\x54\x60\xac\x2e\x28\x72\x18\x87\x18\x30\x7c\xf0\x63\x08\x41\xe0\x90\x30\x47\x6e\xdb\x7d\x87\x5b\x53\x35\xc3\x0f\x3d\xcb\x35\xe3\x9a\xa4\x81\xa5\x98\xfc\x7b\x31\x32\xc4\xc7\x6f\xd0\x59\x80\xb9\x56\x57\x12\xe1\xfe\x2c\x03\xb4\x87\x0d\xf2\xff\xb2\x66\x70\xae\x14\x86\x6b\x09\x58\x0c\x00\x9d\x95\x06\x1b\x47\x87\x3e\x2c\xe8\x34\x2d\x45\x40\x19\x08\x5f\x51\x86\x49\x90\xb1\xd7\x24\x02\x4b\x69\x66\x48\x81\x2c\x0f\xa1\xbd\x16\xb2\x00\x29\x9a\x6d\x46\x03\x9a\xe6\x80\x01\x44\x3b\xff\xfb\x09\x20\x42\x26\x8d\xf6\xdf\x66\xf9\xb8\xf5\xb7\xdb\x78\x9b\xad\x8b\xfa\xc3\x22\x1c\xed\xae\xea\x4e\x29\x11\xaa\x0c\x3d\xe1\x02\x3e\xb0\x83\xfe\x76\x48\x10\x16\xf0\x52\xd4\x30\x4d\xb9\xda\x26\x11\x21\xc4\xad\xff\x1a\x3b\xb5\x6f\xeb\xb9\xe2\x87\x11\x69\x07\x13\x11\x8d\x10\x52\x75\xc2\x85\xf5\x54\xc1\x66\xf7\xb8\xef\x69\x1c\x5f\xb6\x2e\x23\x26\x08\x33\x78\x54\x91\x7f\x0e\x17\xb2\x20\x9c\xe2\x69\x69\x61\x19\x1e\xdc\x64\xa2\xbb\x93\x5d\x53\xd0\x30\x41\x8a\x52\xd1\x9e\x9f\x0e\x97\x2b\xd4\xb5\x22\x12\xd9\x1e\x56\xe7\xd3\x1b\x54\xff\x74\xaf\x62\xc4\xf8\x34\x7b\xc3\x0f\xf3\x56\x56\xdd\x1a\x79\x2a\x3f\xa6\x85\xb6\x22\xa1\xa9\x34\x61\x0f\x05\x47\xdc\xff\x87\xcb\x4d\x24\x2c\xc5\x9c\x3a\x8a\x15\xde\xe7\x45\xfe\xcd\xd3\x95\x33\x91\x08\x40\x2e\xb7\x5d\xd5\xca\x77\x94\x54\xf1\x9e\x90\x48\x24\x0b\xcd\x56\x6e\x51\x08\x0d\x8c\x54\xf4\x5c\x33\xcd\x84\xee\x79\x18\xf6\xd0\xbc\x0d\x84\x55\x99\x48\x19\x60\x1d\xfa\xcb\x72\xbb\xf1\x7f\x53\x09\xa2\x64\xe4\x59\x1e\xa0\xc6\x61\x44\xc4\x80\xbb\xac\x93\xc4\x94\xcb\x23\xaa\xe2\x8a\x08\x3b\x13\x19\x09\x10\xc2\x57\xa3\xef\xd5\x94\xc5\xb0\xa4\xd6\xb5\x91\x0a\xf9\xe8\xb7\xf7\x8b\xe7\xdd\x6a\x35\xfc\x81\x5c\x9a\x5d\xfb\x54\xb5\x45\x5f\xb1\x7e\xe5\x33\x71\x2d\x50\xa3\x02\xca\x7a\x52\x77\x2c\x84\x55\x60\xdd\xdc\xdf\xac\xff\x89\x10\x5a\x94\x63\x42\x1d\x69\x83\xde\x9f\x49\x3d\x0a\x29\x29\x42\xd7\x4e\xbc\xea\x16\x57\xc1\x4f\xdb\xb7\xb2\x19\x46\x4f\x84\x4a\x29\x4e\xc3\x1d\x7f\x87\x47\xad\x31\x9b\xf3\x2b\x57\xfe\xeb\xa9\x2c\x48\x33\xfb\xe5\xe1\xb8\x2a\xdb\xd3\x94\x8d\x9a\x09\x25\x0c\x77\xe3\xb1\x3d\x34\x97\xe5\xe1\x02\x12\x43\xa5\xbf\x47\x00\xf1\x0d\xfc\x5e\x4d\x83\x14\x02\x74\x8c\xc1\xbb\x3d\x60\x4a\x67\x40\xca\xdc\x5d\x4b\xa8\x3d\x56\xba\xb1\xbf\xd4\x53\xff\xaf\x32\x29\x42\x47\x86\xce\xd4\xa8\x0d\x0e\x5d\x32\xa1\x89\xc7\x60\xdd\xf1\xba\x79\x28\x0b\x57\xa3\xe4\x67\x98\xe6\x99\xb2\x87\x38\xa2\x7f\x2d\x92\xb6\x18\x95\x64\xba\xb6\xb6\x64\xcc\xb0\x97\x54\x1e\xec\x2e\x34\x68\x5c\x86\xc8\x51\xdc\xed\xab\xd5\x15\xc4\xb1\x0c\x02\x8e\x00\xac\x02\x40\x79\x92\x36\x77\x2d\x0c\xd1\x66\xc6\x7c\xfc\x48\xb5\x62\x12\x5d\x95\x01\xe1\x18\x7f\xda\x1f\x4b\xff\x41\x65\x90\x99\x02\xeb\x1d\x86\x94\x65\xf9\xfb\x0a\xd0\xe9\x8a\x17\x21\x03\x91\x32\xcf\x81\x7b\xcf\xeb\xc6\x3b\xae\x32\x50\xc2\x08\x3a\xbe\xf9\x75\x26\xc3\x34\x41\xb2\x85\xbb\xf2\xd5\xe9\x77\x7e\x1d\xe0\x95\x91\x8e\x5d\xe4\x67\x57\x9e\x4c\xb6\x7c\x2b\xcb\x8b\x0a\x47\x49\xa9\xf1\xdb\x57\x07\xe0\xc5\x92\x17\xef\x50\x99\x6d\x7e\x60\x36\x49\x9a\x50\xcb\x1b\xda\xf0\x83\xd1\x2d\x72\x5d\x63\x21\xc1\x92\x65\x59\x9d\xeb\xc6\x1a\xa6\xfe\x5a\x9c\x20\x09\xe6\xf3\xe3\x72\xb3\xde\xf9\xbf\x66\x04\x91\xfd\xe5\x09\x8a\x6e\x8b\x7b\x86\xba\x33\xb3\x0a\xf5\x00\x1f\xb8\xe5\x5d\x4b\x9f\xcd\x68\xe2\x30\x19\xa7\x81\x09\x0f\x42\x8d\x93\xca\xbd\x25\x16\x61\x64\x70\x28\x3d\x49\x79\x9f\x25\x1d\x7f\xe2\x24\x64\x30\xc8\xe3\x2f\xf9\x80\x88\xf1\x12\x98\x24\x93\x48\xe0\x36\x52\xf3\xf3\xa2\x38\x37\x03\xf6\x77\xd7\x20\x4e\x51\x3e\x0e\xb9\x3c\x26\xaf\x4a\x23\x0c\xfb\xfc\x59\x5a\x5a\x4b\x7b\x42\xe1\x98\x47\xff\x2d\x76\x6c\x7c\xce\xca\x34\x08\x11\x22\xdf\xfd\xb4\x5b\x2e\x61\x57\x76\xff\x7f\xd1\x74\x46\xea\x20\xba\xd7\xb5\xb3\x14\xac\x0f\xe5\x15\x0f\x4d\xa6\x49\x34\x62\x7a\xe8\xb6\xfb\xe7\x52\x94\x5f\x4b\x00\x77\xf7\x29\xab\x9a\x9f\xe3\x78\x1b\x51\xee\x2b\x05\xa1\x32\xe5\x81\xa5\x25\x6f\xd6\x9f\xa7\xdc\x60\x7d\xba\x03\xba\x7b\xdd\x6c\x96\x43\x66\x91\x81\x34\x6c\x9b\xb2\x82\xb1\x8e\x10\x93\x19\x11\xe8\xdc\x2e\xf3\xaa\xb7\xc2\xe7\xf7\x30\x99\x31\x89\x3e\xa8\x2b\x5c\x78\xf1\xaa\x6c\x4c\x66\x60\xac\x6f\x83\xe8\x3c\x71\xd3\x31\x73\x2c\xec\x2a\xa3\x21\x7e\x0b\x60\x55\x33\xf3\xe9\x11\x2f\x33\x1d\xa3\xc5\x6f\xf6\x47\x97\xfe\x92\x5c\x12\xa4\xd4\xfd\x47\x67\x29\x0f\xd2\x4d\x52\xb2\x08\x13\x88\xdd\x5e\x7d\x2c\xf2\x1a\x5f\xb7\x67\xfe\x32\x08\x24\x56\xab\x8f\xdd\xf3\x0c\x47\xd6\x0a\xa1\x18\x78\x34\xcc\xff\xbe\xce\x81\x90\x2e\x54\x67\xd2\x5b\x08\xa0\x6e\xf8\xf1\x64\x76\xec\x28\x98\xde\x92\xa6\xe8\x0c\x1e\xf3\xba\x3b\xa2\x51\xc2\x66\x57\xae\x0b\x35\xb6\x38\x25\x90\x2c\xb4\xc8\x6a\xd5\xca\xc6\x13\x17\x48\x9d\xca\x04\x46\x68\xb2\xef\xf9\xeb\xdb\xb0\x84\x5b\x05\x44\x1b\x25\x31\xdd\x40\x81\x8c\xfa\xc3\xb3\x59\x05\x32\x4e\x2d\x21\x92\xdd\x0f\xdb\x39\x12\xcf\x51\xcd\xef\x57\xff\xdf\x33\xed\x8f\xac\x59\x15\xd2\x0c\x3f\x3e\x66\x41\xf6\x91\xe5\xea\x1b\xf2\x34\xa8\x28\x02\x0c\x46\xa3\x66\xfa\xe3\x6e\x71\xe7\x45\x3f\x1f\xf7\xcf\xeb\xd5\x7a\xf3\x73\xbd\xf7\x5a\x49\x4c\x45\x2c\x49\x0c\xb0\xec\xa3\x0f\x24\x75\x06\xed\xff\x13\x46\x41\x45\x99\xa9\xe6\x7c\x7e\x79\x68\xfe\x8a\xeb\x40\x91\x8c\x63\x10\x2a\xaf\xd7\xbc\x19\x10\xa6\xda\xcb\x94\xc5\x18\xac\x3d\x96\xbf\xe1\x52\x54\x75\xfc\x5e\x1a\x2b\x9c\x81\xb2\x3c\x9e\xda\x06\xf0\x8c\x98\x3c\x8e\x85\x2c\x35\xbc\x9a\x17\x30\x16\xc5\xb2\x2c\xe9\x03\xe7\xdb\x56\xbc\xcc\x18\xf8\xb6\x6d\x1c\x72\xfc\x89\xc5\x64\x9f\xf7\x1a\x49\x7d\xaf\x62\xa6\x90\x5e\xc1\xee\xc8\xdb\xce\x5e\x2a\x2b\x2e\x0e\xf0\xf7\x52\xfc\x31\x69\xcb\x13\xb4\xcf\xbe\x55\xc0\x1b\x59\xe6\x05\x16\xd4\x8f\x26\x57\x2c\x13\xe4\x86\x78\x6a\x0b\xf9\xb6\x1a\x58\x6e\x2a\x49\x03\xac\x99\xf8\x3f\xff\x07\xa5\x90\x87\x06\xed\x3b\xd9\x57\xb5\x7d\xa5\x06\xc5\x54\x1a\xa6\xa6\xc6\x2e\x2f\x9a\xed\x72\xf3\x45\x24\x5d\xa5\x24\xc9\x7c\xfc\xb3\xce\x5f\xa7\x5f\xda\x35\xe3\x0a\x21\x1c\x68\xc9\x4f\xd2\xd0\x63\x96\xdb\xbf\xfa\xe7\xfa\x9c\xcb\x3a\xdf\xc5\x82\xaf\xcd\xaa\x35\x7c\x23\x17\x84\x7f\x4c\x65\x5c\x61\xd3\xcd\xe2\x61\x34\xb2\x99\x4c\x62\x9b\xee\xdd\x9f\x2a\xd8\xbf\x9f\xe5\x3e\x97\x65\x91\xff\xaf\x29\x93\xdd\xab\x81\x29\x3b\x3f\x20\x5c\x6a\x57\x8d\x8b\x5e\x44\x1f\x9f\x50\x22\x8a\x30\x0b\x70\xe0\xb5\x35\xb8\x47\x8b\x59\xf0\x14\xb7\x23\x55\xda\x2a\xa2\xfe\xcc\x9e\x7f\x95\x8c\x05\x63\xae\x5e\x50\xf6\xdc\xdd\xf3\xf3\x55\x42\x8a\xa4\x3e\xb6\xe2\xea\x69\x77\x59\xfb\x6c\x5b\x2a\x61\xf8\xd9\xb0\x8f\xdd\xee\xb9\x29\x64\x2b\xba\xdf\x3c\x1a\x2c\x25\x78\x10\x39\x0f\xef\x86\x37\xe0\xe2\x91\x0a\xa4\xc2\xfa\xc0\x5c\x96\x04\xed\x2b\x77\x41\x47\x09\xe6\x09\xd7\xbb\xef\xd2\x91\xf5\x33\x08\x52\xc3\x9a\xf9\x0a\xcd\xbe\x2c\xf7\xa5\x1e\xf7\x07\xc2\x28\xc5\x2c\xb7\x68\xab\x62\x71\x38\x38\x0b\x68\x5c\x3e\x65\xdb\x46\x59\x80\x59\x09\x4c\xd5\x6f\x0a\x5d\xa2\xb4\xf9\x70\x2e\x42\xc4\x13\xd5\xab\x91\xdc\xdb\x58\xe8\xf4\x39\x9a\x22\x17\x9c\x15\xad\x34\x9e\xb6\x3b\xe8\x80\x30\x83\xb1\xfd\x06\x48\x98\x23\x51\x51\xe5\x8b\x2d\x0e\x48\x2c\xf0\x44\xe9\x46\xf4\x9e\x17\x13\x38\x25\x10\x6e\x04\xa6\x51\xc8\xda\xbf\x44\x84\x86\xa4\x1a\xb0\xa2\xc3\x97\xb5\xff\x31\x4b\x04\xed\x6e\x02\x82\x06\x64\x1d\x85\x36\x04\x62\x2f\xd0\x30\x42\x1c\x89\x01\xce\x6e\xf9\xe1\x92\xc1\x7d\xba\xbc\xfa\x18\x06\xd0\x88\x10\x87\x94\xb0\x75\xc1\x86\x23\xb8\xe1\xef\xb0\xe2\x07\xcf\x73\xc8\x80\x32\x23\x43\xd1\x79\x7e\x39\x16\x00\x5c\x33\xff\xc6\x3d\x8f\x09\xf5\x9c\x62\x88\x48\x6c\x55\xfe\x95\x50\x02\x83\x44\x50\x6d\xcd\x9b\xf6\xf4\x84\x2a\xa6\xf3\x46\x04\xa4\x22\x45\xec\xc2\x1b\xaf\xd7\x45\xd9\xbe\xbe\x2d\xb7\xbb\xaf\x4b\x9a\x20\x63\x21\x66\xf6\xf8\x2b\x14\x86\xd3\xb9\xbe\xa2\x4b\xc5\x20\x4b\x28\x5c\x14\x52\x5c\x43\x89\x4f\xef\x4d\x39\x3a\x23\x66\x36\x6e\x0a\xd9\x4d\x29\xab\xa9\x3c\x03\xa8\x86\x2c\x33\x2a\x33\xa8\x2d\x8c\xae\xa6\x69\x65\x2f\xf3\x20\xc4\x98\x2e\xc2\x85\xa2\xc9\xbd\x3c\x10\x28\x05\x2a\xda\xf3\xf6\x7f\x5b\x47\x22\x9f\xce\xc7\x6e\x81\x5b\x85\xc3\x23\xff\xf4\xa6\x11\xf0\x38\xc2\xd8\x00\xa0\x32\xfe\x16\xe5\x02\xef\x7b\x57\x12\x78\x6a\x68\xba\x9f\x41\x1b\x50\xf8\x1f\xf3\x27\xcd\x64\x14\xb8\x88\x53\x3a\x2c\x3b\x74\xd9\xc9\x2b\x71\x11\xe0\xd2\x68\x2b\x7a\x8e\xef\xce\xcc\x5e\x14\x6a\x39\x5b\x56\xd9\xdf\x27\x80\x9b\xe0\x58\x59\x55\xe5\xa4\xe0\x13\x64\x60\x04\x83\x6a\x2b\x9d\xb0\xe5\x57\x58\xd3\x19\x48\x62\xaa\x8d\x5f\xdb\x5c\xd9\x20\xce\x11\x0a\x04\x3e\x70\xd9\x80\xc2\xe8\xef\xae\x7c\xf2\x65\x3b\x20\xb5\x8c\xc3\x21\x48\xd5\x42\x87\xc7\x9b\x93\x4a\xc2\xd8\x13\xcd\x0e\xe3\x7d\xee\x31\x2a\x95\x99\xe1\x27\x29\x2c\x83\xcf\xe4\x47\x28\x45\x91\xf5\xf4\xc4\xcf\xb7\xe5\xc4\xa2\x07\x60\x71\x9a\xba\x2a\xb0\xe3\xa9\x81\x7d\xc4\xc6\x1d\xd0\x54\x5a\xee\xd0\xbf\x24\xd3\xff\xff\xfa\x5f\xd7\x23\xce\xf1\x5c\xf4\x73\xc3\xf0\x84\x0d\xda\xba\x23\xb4\x6b\x8a\xc0\x16\xd1\x9e\xbf\xa2\x20\x65\xa0\x81\xbb\x53\x1a\x2b\x5c\x6c\x90\x79\xb4\x00\x74\xa0\x88\x45\x09\x14\xf0\x23\xf7\x1b\xb3\x26\x61\x60\x23\x9f\x06\xec\x60\x37\xda\xc8\x5d\xce\x24\xa2\xd1\x2a\x0c\x63\xcb\xb2\x50\xbb\xdc\x7b\xf2\x9a\x06\x86\x6e\x5f\xe5\x35\x1e\xd9\xa0\x6e\x80\x1f\x46\x09\x4c\x4d\x05\x41\x43\xc1\x72\x03\x97\xe5\xf4\xba\xcc\xd2\x3e\x41\x74\x63\x9f\xb4\x6d\xe0\x34\xfe\xdc\x9a\x49\xc0\x50\x23\x37\x85\x9d\xb8\x32\x2c\x10\xd8\xb6\x88\x83\x18\x43\x3f\x60\xe9\x56\x26\x24\xf3\xfd\x11\xa0\x93\x20\x4e\xa3\x61\x09\xfe\xea\x92\x39\x48\x27\xa1\xc9\x9b\x9e\xda\x61\x0a\x71\xf0\x10\x50\x58\x68\xf3\x00\xf2\x7d\x10\x13\xd5\x59\x68\xc8\x2b\x24\x3f\x1c\xd6\x9f\x39\x86\x65\x5f\x8a\xf7\xa2\xfc\x28\xe6\x3d\x7b\x9d\xb1\x98\x1b\xd1\x72\x4c\xf1\x4f\x78\xc9\x74\x96\x1a\xbc\xea\x11\x5e\x5d\xf6\x44\xf3\x30\xc3\x5a\xf5\xfb\x7b\x97\x35\xd0\x02\x92\x88\x58\xf5\xa8\x43\xb3\x3f\xf1\x73\x53\xba\x6b\x92\x12\xb4\x59\x1f\xe0\x03\x2a\xff\x10\x99\x99\xa4\x99\x01\x78\xee\xbe\x6f\x9e\x6f\xf6\x37\x9b\xed\x0a\x7d\xaa\xfb\x97\xbb\xdd\xe6\xe9\x6e\xb3\x76\x30\x60\x0d\xdc\x40\x29\x9f\x9e\xd7\x06\x06\xba\xdd\x2d\x9e\x77\x4e\x34\x8c\x69\x80\x04\xb3\x1e\x96\xed\x07\x0f\x9a\xc9\xb6\xad\x75\x14\x60\x74\xef\xbe\x2c\x7b\x91\x5e\x7f\x2d\x32\xc5\x7e\x07\x7e\x7e\xb0\x5d\x8f\x83\xc0\x66\xc7\x0d\x73\xaf\xce\xc7\x83\x17\x07\x61\x18\xbb\x62\x34\x94\x06\x81\x2b\x8c\xa0\x71\x10\x26\x1c\xa1\xaa\x27\x8c\xb9\x3d\x97\x03\x22\xa4\xc9\x23\x45\x82\x01\xef\x5c\x96\x28\xff\x1d\x0e\x76\xad\x38\x88\xc2\x10\x45\xaa\xef\xf3\x02\x6e\xf3\x62\x10\x47\x8d\x83\x28\x95\x68\xb2\x60\x2d\x93\xd9\xee\x5c\x15\x78\x1c\x44\x19\x24\xc2\x42\xd5\x96\x4f\xeb\xed\xa3\x11\x93\x2d\x31\x66\x31\x44\xc1\x5c\x44\xb6\xe2\x80\x70\x0a\x64\x20\x68\xf0\xfd\xe9\xea\x8e\x36\xfa\xcd\x84\x03\xda\xbf\xff\x29\xe5\x3b\x9c\x6f\xb7\x7f\x8c\x87\x84\x08\x95\x18\x13\x73\xf0\xcd\xae\x1b\x51\xd3\xe2\x92\x38\x20\xd2\x70\x80\x3e\xc0\xc7\x53\x0e\xea\x29\x3f\x41\xb5\x1a\x10\xe5\x5c\x44\x05\xfa\x5b\x69\x48\x8c\x68\x88\xdb\x0b\x7f\x14\xe5\xc7\x01\xd4\x2b\x2c\xdb\xb3\x11\x00\x98\xf4\x96\xc6\x3a\x71\xa4\x7f\x8b\x42\x5d\xe3\x12\x1f\x94\x8e\xc4\x01\xcd\x32\x64\xc6\xec\x0e\x1f\xa7\x1c\xff\xdc\x1b\xf8\x71\x40\x85\x11\xc7\xeb\xec\xa9\xcf\x06\x8a\x7a\x0a\x77\x8d\x03\x0a\x19\x56\x75\x28\x38\xdc\xe6\x87\x66\x12\x5b\x8a\x03\xa6\x13\x64\x9d\x7a\x83\xc3\xa1\x1c\x14\x8c\x74\x1b\x92\xe1\xe8\xa9\x91\xde\xd5\x16\x77\xcf\x4f\xba\x24\x49\x71\xbb\x31\x8d\x26\xb0\xda\x59\x83\x2b\x0e\xd2\x40\xe0\xce\xf0\x23\xbf\x79\x73\xb1\xa0\x38\x48\xd3\x00\x23\xcc\x8b\x3e\x78\x1d\x07\x19\x17\x51\x3c\xc0\x77\xb8\x02\xf2\xaf\x60\x1e\x71\xc0\xb9\x51\xe2\x2a\xe0\xe3\xb6\xac\x5e\x3b\x3b\x7b\x32\x36\xc2\x6a\x4b\x18\x38\xd8\xd0\x3f\x9d\x3c\x4a\x24\x09\x9a\x45\x88\x7c\x5b\x3f\x6e\x3d\x16\x6b\x06\x64\xe4\x6e\x51\x72\x08\xaa\xaa\x67\xb7\xcf\x38\x90\xa1\x71\x96\x91\x01\xc8\x7a\x8f\x63\xad\xe7\x71\x4f\x24\xe1\x88\x4f\xec\x36\xe8\xdb\x4b\xe7\x77\x76\x1a\x49\x6e\xc8\x82\xcc\x04\xb2\x61\xc7\xfc\x32\x24\xee\x9a\x4b\x81\x69\xf1\xce\xa5\xa8\x96\xed\x19\x21\x13\xee\x53\x48\x88\x90\x5a\x42\xe7\x85\x7a\x80\xcf\xe6\x3e\x2f\xda\xc1\xb0\x8d\x5e\x0b\x0a\x13\x88\x77\xd0\xd4\xdf\x4a\xa3\x76\xf9\x65\xd4\xe3\xbf\xb2\x43\xe2\x40\xb3\x18\x01\x04\x98\x36\x58\xc8\xb2\x72\x81\xcf\x38\xd0\x31\x8d\x0d\xe9\x73\xb7\xa3\xe6\x2e\x20\x13\x87\x81\x30\xb0\xbb\xce\x33\xb8\xc6\xe0\x1f\x87\x21\x89\x02\x36\xe0\x21\x5a\x9e\x4d\xb6\x6b\x5c\xc7\x37\xbd\x89\x72\x3c\x00\xad\xe3\xf0\xf4\x78\x09\xdc\x8a\xc3\x30\x31\x9e\xf8\xa7\xd1\x98\xb8\x05\x23\x24\xee\xba\x17\x2a\x30\xa6\x8a\x29\xf4\x33\x87\xff\xe8\x24\x8d\xc3\x28\xe3\x8c\x9b\xb2\x50\x5b\x7e\xe5\xaf\x48\x69\x35\x91\xb1\x9c\x0e\x91\x6b\x16\x4d\x7d\xfd\x33\x87\x24\x48\x33\xed\xe4\x00\x9b\x7a\xfd\x1b\x8a\x45\xa1\x1e\x6f\x6e\x26\x5d\x27\x11\x20\x3f\x6d\x93\x1f\x61\x09\xcd\x07\x40\xe1\xd0\x3f\xae\x45\x92\x19\xa1\xbc\x43\x8e\x31\x19\xd8\x1e\x79\xe5\x33\x01\xcb\x73\x03\x2b\xef\x99\xc4\x21\x15\x2c\xea\xeb\xd0\x7a\x93\xfd\x89\xcb\x77\xfe\x0a\x9b\xfe\xb9\x54\x71\xdc\xba\x74\x05\x30\xb2\xed\xe2\x90\x59\xb3\x7f\xdd\xbc\x2d\xa1\xe9\xb7\x8a\x90\x65\x9c\xd8\xb2\xf2\x2f\xe5\x1a\xe2\x30\xce\x00\xd3\x29\x28\x5a\xd3\x56\x05\x37\xe4\x59\x05\xea\x01\x54\xbe\x13\xb1\xa6\xa1\x9f\x6d\x2e\xb8\xef\x2e\x26\x29\x47\xd7\xac\xaf\x71\xec\x6d\x82\x38\x4c\x34\xc4\xe0\x72\xf8\x9e\x9e\xf4\x2b\x37\x34\x0e\xd3\x40\x21\x61\x4e\x9d\x1f\x7e\x43\xb5\x2c\x3f\x07\xa9\xaf\x38\x4c\x23\x43\x67\x2d\xdd\xfe\x73\xaa\x72\x39\x23\x6d\x35\x7d\x28\x0f\xd1\xa5\xff\x8d\xcc\x6a\xfe\x61\x2a\xc4\x31\xb4\xe0\x14\x53\xde\x5f\x0f\x8b\x1d\xe2\x30\x63\xca\xf0\x0c\x3e\xac\xf7\x37\xeb\xd5\xe6\x7e\x71\xb7\xff\xc7\xcb\xe2\x61\xf7\x72\xbf\x5f\x2c\x57\x7b\x5b\x5e\xf3\xbc\x59\xad\xff\xe8\x6f\x71\x45\x99\x28\x68\x3e\xaf\xbb\x15\x87\x59\x26\x62\xe5\x82\xfb\x75\x53\x1e\xa1\xb2\x04\x56\x93\x89\x9f\x09\x93\xae\xf8\x06\x8d\xc1\x3f\xd8\xbf\x8b\xc0\x30\xc1\x4b\xe3\x7e\xe5\xe2\x00\xb8\x5c\x77\x86\x56\x63\x32\x8d\x45\x6a\x34\xce\x0c\x7f\xcf\x37\x43\x5f\x89\x1a\x34\xdd\x61\xdd\xf8\x51\x91\x44\x52\xab\x58\xd9\xcd\x48\xd4\x35\xde\x7d\xef\x61\x2f\x71\x08\x34\xb2\x5c\xf7\x03\xb8\xfe\xe8\x5d\xc0\x04\x42\xee\x24\xaf\xd4\x16\x9a\x7a\x53\xac\xf2\x0a\xed\x84\xa9\x22\x7a\x1c\x02\x4f\xf0\x00\xc0\x23\xa5\x3b\x3d\x3d\x4d\xe3\x7c\x20\x6b\x00\x3c\x8b\x43\xd0\x0a\x5f\x74\x5f\xbf\xae\x8b\x57\x17\xe3\x71\x57\x75\x68\x12\x78\xda\x52\xfa\x76\x9b\x41\x77\xcc\x44\x7f\xf8\x06\x84\x87\x9e\xaf\x54\x55\xfc\xe3\x1b\xaf\xff\x7f\xac\xbd\x59\x73\xe3\x38\x96\x3d\xfe\x75\xea\xa1\x1f\x48\x82\x04\xc0\x47\x59\x96\x9d\x9a\xf4\x36\x92\x32\xb3\xaa\x3b\x3a\x14\x58\x2e\x64\xb6\x29\x52\x4d\x52\x76\xba\x3e\xfd\x3f\x78\x01\x70\x13\xed\xcc\xf9\xc7\x6f\x22\x26\x2a\xdb\x04\x29\x2e\xc0\xc5\x5d\xce\x3d\x67\x72\x7f\x86\x08\xd4\x01\xd0\xd5\x69\x90\x75\xa4\xa1\x91\x04\xf3\xe3\xf7\x65\x67\x88\xa2\x80\x45\xd8\xc1\x5d\x98\x72\xdf\xcc\x48\xc5\x4f\x1d\x82\xb9\x36\x32\x1a\x05\x32\x31\x8e\xdb\x56\xbc\xdb\xc0\xad\xfb\x01\x50\x08\xc1\xfc\xfa\xd7\x72\x07\xe2\xe8\xff\x1c\x46\x11\x02\x9e\x16\xed\x0c\x1e\xde\x65\x14\x9a\x94\x5a\x96\xe6\xf6\x1b\x5f\xaf\xaf\xbf\x94\xb9\x9e\x24\x5a\x69\x14\x05\xc6\x75\x1d\xda\x64\x47\xd7\x3f\x6a\xdb\x1a\xaa\x01\x5f\x37\x8d\xa2\x90\x63\x17\xea\xa9\x2a\xff\x03\xaa\xf1\xf3\xa7\xbb\xc7\x28\xb6\x91\x44\x56\xd7\x67\x70\xc0\xe7\x4b\x24\xf2\xe4\x06\x84\x91\x41\x07\xc2\x87\xca\x8a\x5b\xdf\x94\xd5\xc3\xf9\xf8\x49\x1a\x85\x46\x24\x31\xdc\xf6\x6e\xe7\x36\xc9\x7e\x2f\x5e\x3e\xa8\x94\xd0\x88\x50\x86\x19\xc1\xec\x64\xea\x1e\x72\xda\xfe\xdd\xf2\x83\xfb\x74\x0b\xf2\x39\x8d\x98\x22\x26\xe8\x83\xf1\x3d\xc4\x01\xc1\x69\xb6\x85\x66\x71\xfe\x79\x49\x78\x4b\xa3\x84\x18\x74\xe4\xff\x74\xff\x17\xf0\xf1\x24\x8b\x12\x69\xad\xde\xb0\x3c\x7c\xb5\xf9\xf3\x49\xcc\x43\xb8\x07\x27\x42\x2a\xc3\x11\x8b\xd7\xac\x83\x1a\x51\x12\x22\xe2\xee\x2e\x53\xad\x97\x5c\x1c\x46\xb3\x84\xd2\xc8\x78\x3a\x69\xa4\x64\x16\xa7\xac\x11\x79\xf6\xf7\xcc\x82\x8d\x28\xa5\xa9\x2f\x6f\x94\xd5\x45\xf6\xd6\x8f\x52\x49\x64\x27\xf1\xad\x98\x08\x41\xd0\x88\xa5\x02\xef\xfa\xb5\x6c\x00\xd5\x63\xfd\x8d\x30\x1d\x18\x9f\x16\x12\xc7\x93\x18\xd6\x71\xc6\x77\xc1\xb5\x46\xe7\x7c\xb7\x58\xdf\xf9\xb3\xd3\x80\x62\xce\x0f\x7e\x3a\x5a\xc9\x4e\x17\xd7\x72\x98\x5e\x6f\xf7\xa7\xaa\x2c\x0d\xa2\x56\xde\x87\x84\x48\x1e\x49\x32\x4c\x96\xd3\x28\x0d\x23\x0c\xca\x5b\xab\xb4\x1b\x90\xe7\x5e\x12\x91\x4c\x6e\x2e\x55\x1a\xa1\x0c\xce\x32\x3b\x16\x50\x7f\x10\x18\x22\x92\x74\x59\x94\xd5\x5d\xd7\x5c\x4e\x23\x21\xa8\xa7\x6f\x7b\x28\x35\xac\xf5\x1f\x63\xbb\xa0\x12\x4b\xb1\xdb\x46\x01\xaa\x44\x84\xf0\x0f\x80\x97\x8b\xb2\x12\x8d\x94\x11\xa1\xbb\xd2\xfd\xfb\x43\xe9\x8e\xbb\xec\x14\x8d\x34\x8b\x03\xeb\x57\x94\x7f\x43\xe1\x29\x2d\x69\xa4\x95\xf6\xbc\xcc\x5b\x28\x9a\x81\x26\x58\xdd\x0d\x01\x60\xad\xc1\xfd\x72\x3e\x8a\x02\xeb\x32\xa3\x89\x04\x42\x39\xd8\x0a\xcc\x90\xe8\x75\xef\x7a\x74\xb3\x46\xc0\x88\x61\xfe\x82\x34\x96\x92\x20\x8c\xbc\x9d\x6e\xd7\xed\x53\x86\xea\x94\x73\xe9\x7b\x4a\x02\x63\x99\xd5\x94\x28\x56\x45\x03\x55\xdf\x28\x85\xc7\x90\x25\xe7\x9f\xbf\x27\xc2\x44\x49\x18\x4b\x44\xd8\xa1\x67\x59\xbc\x4f\x05\xb7\x28\x09\x99\x41\xbf\x16\x2f\xb8\x6f\x9d\x1f\xdd\x1d\x92\x96\xbf\x14\x15\x11\xbe\x23\xaf\x5c\x77\x08\x18\xc2\x55\x50\xbc\x6c\x53\x4e\x5a\x5a\x28\x89\x42\xdb\x48\xec\x57\xf5\xd3\x94\x0b\x80\x92\x08\x28\xf6\x33\xee\xdb\x28\x65\xa3\x07\xba\xee\x6e\x00\x09\x78\x6c\x5c\xc2\xe2\xb6\x02\x18\x16\xb4\xc7\x0f\x49\x12\x17\x5d\xb6\x96\x7e\x5d\xbc\x8a\x7a\x66\xcf\xf2\xc9\x0c\x42\x40\x3a\xa2\x45\x2f\x7d\x8f\x2e\xbb\x7f\xb4\x38\x4e\x8c\xb3\x0e\x37\x00\xf8\xf2\xc7\xf7\x15\xeb\x80\x78\x3d\x85\x4b\x2d\x35\x4a\x62\xa7\xc8\x88\x3d\x48\xdb\xae\x9b\xe5\x23\xe1\x7a\x4a\x92\x38\xc1\x3e\xdd\x5e\x20\x08\xbb\x63\x1b\xf8\xd9\xec\x0d\x40\xfd\xc7\xe8\x61\x93\x58\x62\xce\x14\x89\x8d\xce\x43\x7e\x35\x4a\x12\x26\x6d\x8f\xe8\xf1\x94\xef\x4d\x59\x1d\x7e\xe9\x59\x92\x44\xa4\x68\x39\xef\xb3\x22\x3b\x9e\x8f\x3e\x95\xee\x8f\x4a\x83\xd5\xaa\x17\x78\xbf\x6d\xa6\x82\x1e\x7e\x8c\xa6\xd8\x40\xea\xa9\xea\xc7\x45\xee\x4f\x32\x31\x7d\x3a\x93\x12\x1a\x46\xd4\x27\x57\x1e\x0b\x68\xcd\x82\xbf\x07\x4a\x15\xd8\x3c\xe1\x6e\x71\xb7\x5f\x2f\x1f\xfb\x06\x70\x4a\x28\x0f\x31\xc9\xae\xb3\xda\x63\x02\x10\x4b\x7a\xc1\xac\x41\x09\x4b\x9c\x02\xbd\x33\x84\x9e\x9a\x6d\xd6\x02\x12\x1e\xd2\xd8\x95\x52\x97\xcf\x5d\x8f\x10\x25\x3c\x0e\x58\x67\xf9\xfb\x54\x32\x25\x3c\x89\x2c\x3f\x0f\x66\x0a\x5b\x37\xa4\xea\x0e\x71\x40\x12\xdf\xfd\xa2\xc9\xdb\xf0\xa3\x1e\x9a\x1c\x92\x12\xb0\x4d\xdf\x99\xe3\xd7\xdc\x42\x63\x55\x2a\xa7\xd4\xb3\xa3\x97\x38\x7e\xb8\x34\xe5\xd0\x8b\xba\x7e\x2b\xb2\xa6\x7e\x2c\x60\xd5\x3c\x2f\x45\x31\x50\x6e\xee\x46\x1b\xc5\x3c\x5f\x6c\x03\xc7\x87\xb2\x75\x55\xb6\x53\x82\x6f\x4a\x44\x0c\x3e\x9e\x5e\x8a\xaa\xb9\x83\xe2\xe0\xab\xf0\x94\xa8\x50\xe0\x9e\xaf\x44\xae\x6e\xb2\xc3\xf3\x1c\x75\xff\xe5\x84\x53\xca\xea\x2c\xf9\x64\xbb\xbf\x9a\x0e\x62\x14\x59\xb1\x32\xcb\x60\xa0\x1a\x70\xd7\x7f\xca\x79\x41\x89\x76\x12\x5b\xc2\xc2\x92\x1e\x3a\x80\x34\x25\x10\x81\xf4\xba\x95\xad\x17\x6d\x93\xa9\xf3\x97\x81\x24\xf2\x5a\xf7\x33\x6d\x0b\x94\x80\x54\x48\x8a\xec\x78\x01\xf1\x2d\xfb\xdf\x31\x71\x8a\xad\x26\x77\x67\xf5\xf2\x7e\xdd\x47\x7c\xc4\x68\xeb\xf1\xe2\x49\x93\x1e\x61\x3f\xc4\x70\xac\x64\x28\xab\x71\xd6\x67\x60\xe2\x76\xdf\xa0\x18\xe1\xb5\xa6\xe4\xb2\xb9\x78\x74\x7f\x71\x10\x73\x9b\x4f\xb5\x79\xa2\xbb\xf2\x90\xa9\xcf\x14\x3a\x69\x1c\xb0\x24\xea\xa7\xcd\xbc\xd7\x19\x87\xc2\x66\xac\x84\xd6\x4f\x55\xf6\xea\x8a\xde\xab\x42\x5f\x5f\x6c\xdc\x71\xc4\x62\x94\x5c\xaa\xcf\xf2\x98\x0d\x37\xe0\xcf\xd2\xa4\x71\x24\x6d\x9c\xe3\x4b\x10\x3e\xce\x19\xc7\x91\x71\x64\x02\x8b\xc0\x7a\xdc\xf9\x3f\x91\xc0\x66\xc6\x0e\xd0\xec\xb1\xd2\x87\x97\x9d\x3c\x25\x89\xa9\x65\x61\xa8\x77\xe2\x05\x9e\xa0\x3a\x66\xcd\x67\x1a\x80\xbf\x42\x68\x4d\xae\xce\x19\x3a\x8a\x27\xfb\x6d\x77\xe5\x78\x5f\x9f\x8c\x8e\x03\x69\xab\x82\x67\x39\x66\x8f\x70\xc7\x13\x16\x21\xda\xfe\x98\x15\x56\x18\x75\xd8\xd8\x40\xe3\x04\x94\xb2\xf5\xf7\x42\xe7\x60\xc1\x94\x57\xd6\x3c\xf8\x21\x34\xa4\x91\xef\xa5\xfb\xbe\xdf\xc4\x93\x2f\xc4\x62\xa2\x13\x8f\x49\xb9\xcf\x3a\x22\x01\x1a\x33\x6a\xf9\x22\xb2\xda\x6d\x06\xeb\x62\xd0\x3a\x4b\x63\x26\xa3\xc0\xd3\x9c\x8a\x9f\x1f\x15\x3a\x62\xa6\x08\xa2\xb9\x9b\x7d\x58\x37\x7b\xac\x41\xac\xba\x00\x30\xe6\xdc\x92\x67\x39\xf6\xcb\xfd\x5b\x6f\xe9\xe3\x34\xe0\x8e\x22\xb2\x11\xb9\x85\xe0\x75\xdf\x5e\x44\x04\x3d\x8e\x7d\x83\x1c\x27\x03\x98\x3d\x8d\x05\x89\x48\xda\xcd\xe2\xd5\x4f\x50\x93\x09\x20\x84\xc2\x9c\xb4\xa3\xab\x5b\x96\xc5\x7f\xce\x55\xff\xe0\xd2\x44\xb8\x0a\xb6\xe7\xe3\x11\xaa\xd6\xd7\x28\xfa\x43\x04\x05\xd4\xfb\xc6\x39\x7b\x5f\xfe\xb8\x66\x04\xb1\xe4\xff\xd3\xd7\xe0\x68\x0c\x01\x41\x0e\x9d\x9b\xc5\x93\x1a\xfd\x99\x23\x3f\xa0\x0f\x0c\x9e\xc4\xb9\xd6\x93\xaf\x03\xdc\xee\xee\xae\x22\xf2\x30\x39\x6c\x22\x8e\x54\x2e\xd6\x3d\xc5\x54\xfa\xec\xfe\x1e\xce\xff\xc7\x5f\x25\x8d\xb1\x21\xc0\xbe\x2f\xcb\x89\x50\x56\xef\x77\x3d\x90\x6a\xb0\x35\xc7\x46\x38\x89\x3a\xa4\x62\x77\x01\xb6\x53\xc5\xf1\x43\xa4\xd5\x14\xdc\xb7\x5b\x81\x25\x92\xcf\x8a\x83\x25\x6f\xeb\x03\xef\x24\x88\x12\x5b\xd9\xaa\x31\xbf\xb8\xb5\x44\x00\xab\x62\x20\x1b\xd5\x8d\xd4\x88\xcd\x90\xa2\x06\x6f\x33\xdd\xa1\x30\xb2\x18\xc7\xe5\xc3\xf2\xd7\xfe\x6f\x12\xc7\x80\xfe\x7c\xa6\xca\xed\x09\x14\xe6\xb3\xaa\x63\xf7\xe9\x93\x98\x07\xcc\x52\xcd\x61\xe7\x41\x4f\xcd\x35\x6f\x0b\x93\x84\x70\x44\x3d\x08\xd3\x40\xb5\xdd\xad\x2e\x88\xaa\x68\x92\x68\x26\x6c\x8b\x3a\xe2\xff\x47\xec\xb5\x23\x05\x1b\x9a\x24\x46\x47\x6e\x73\xda\xe6\xe5\xdb\xf5\xf9\x38\xae\x3b\xd3\x84\x06\x3c\x19\x90\xc5\xba\x5e\xc1\x01\xf9\x28\x4d\x28\xb3\xab\xc6\x1a\x7d\xec\x4d\x9c\xa1\xa8\xa2\x09\x0b\x80\x3a\x75\x5b\xdc\x11\xca\xca\x87\x84\xfb\xad\xc2\xd6\x93\x79\x57\x28\x61\x69\x8a\x00\x1e\x6b\x6d\x5c\x6d\xe8\xc3\x37\xc4\x03\xdb\xfe\xfa\x05\xaa\x12\xa1\xd1\x70\x51\x73\xfa\xed\xb2\xc1\x05\x02\xb4\xbd\x3c\xf7\x6c\x07\xdb\x93\x57\x93\xe9\xe6\x0d\x4f\xac\x4b\x62\x67\xf6\x43\xd9\x88\xac\x82\xd9\xad\x2f\x49\x15\x78\x02\xeb\xab\x91\x1e\xd7\x64\x98\xb6\xad\x8a\xe7\x2a\x9f\xcc\xd1\x54\x2b\xb0\xa8\xf9\x5e\xc0\xd3\x1d\x12\x81\xd1\x7d\x45\xe1\x29\xfb\x09\x79\xaf\x66\x36\x59\x8d\x89\x88\x03\x4b\xa6\x87\x38\xaf\x3a\x3b\xcc\xea\x8d\xd3\x44\xa8\x04\xa1\x72\xad\xd3\xfa\xad\xc0\x0e\x91\xee\xf7\x34\xb7\xb3\xbc\xde\x80\xd0\xef\xbb\xd2\x7a\x39\xe3\xfb\x95\x61\x94\x98\x2e\xad\x8b\x6a\x73\xf3\xbe\xc1\xe4\x83\xca\x38\xf5\x9c\x70\x57\x42\xbe\xdf\x8b\x97\xac\x98\xa9\x90\x24\x8a\x82\x00\x8f\x2f\x17\x98\x05\xbd\x24\x54\xa3\x89\x4a\x13\x2b\x17\xd4\xb5\x78\xcc\xef\x23\x89\x52\x2a\x70\x5d\xb2\x77\x8d\x7e\x12\x95\x38\x7e\x48\xa2\xeb\x4f\x01\x45\xa2\x8e\x3d\xdb\x15\xb8\x7d\x6e\xfa\x43\x5f\x72\xfc\xb8\x3a\x4c\xa4\xed\xc9\xf2\x74\xe0\xfe\x80\x00\x34\xdf\x9e\xef\x58\xd3\xfb\xb2\x68\x9e\xbd\x11\x4c\x8c\x24\xdc\x7a\x19\xdb\xae\xda\x46\x83\x30\xf2\xbd\xa8\xf7\xef\x6b\x05\xd7\x95\x38\x74\xef\x82\x06\x31\xc3\xfa\xf5\x2d\x34\x17\xd4\x90\x94\x86\x81\x46\x5b\x83\x7c\xa5\xb6\xbf\xcb\x9f\x18\x6a\x90\xb1\x4f\x51\x7e\x11\x95\x56\xe2\x34\x2f\x79\x38\xb9\x24\x00\x36\xf6\x62\x16\xa9\xef\x60\xa6\x34\x34\xa0\x2d\x72\xdc\x51\x97\x8f\x97\x01\x8d\x82\x84\x07\x83\x26\xc1\xd1\xe6\x4c\x49\x0c\x88\xba\x54\x50\x35\x99\x99\x44\x1b\x94\x70\x8d\x39\x88\xbb\xf2\xb0\x83\xe3\x29\x47\xba\x51\x10\x33\x26\x64\x64\xbb\x69\xcc\x13\x19\x8d\x18\x21\x36\x50\x97\xf9\xeb\x34\xb2\xa3\x09\x09\xe2\xd0\xcb\x16\x59\xba\xe5\x71\x23\x08\xa5\x54\xb1\xd4\xe5\xe5\xbc\x60\x34\xbe\xaf\xa5\x98\x58\x5c\xca\x58\x12\xa6\xfd\x0e\xbc\x85\x06\x09\xf5\x2d\x6e\xf5\xff\x2f\x90\xcb\x5f\x5b\x48\xcf\xcc\x83\x25\xe2\xee\x2e\xc7\xcf\xc3\x13\xea\x24\x31\x54\x59\xcd\xb3\xb3\x50\xca\x79\x8c\x94\xb7\xf6\x95\xed\xca\x6d\x76\x28\x56\x3f\x05\x02\x17\xfc\x10\x6d\xb0\x28\xa9\xcb\x09\xab\xf2\x3f\x2e\xa0\x1e\xfe\x0c\x00\x84\x36\x97\x27\x2c\xae\xd8\x96\x8f\xb1\x17\x4e\xb9\x61\x58\x15\x86\x9f\xea\xf9\x06\xba\x1f\x4b\x53\x89\x5b\x76\x1b\x25\x88\xf7\x5d\xbb\xfc\xff\xf8\xc4\x15\xf9\x8d\xff\xf8\x0b\x2b\xdb\x9a\x91\x79\x44\x67\xbd\x2e\x3e\xc6\xaa\x50\x11\x93\x50\x4f\x88\x9f\x3f\xd5\x72\x19\x00\x4b\x47\x06\x93\x0a\x61\x2c\x61\xd1\xd9\x3a\x48\xfe\x49\xa5\xa6\xb8\xc1\x3b\x77\xb3\x79\x5e\x2f\x1f\x77\xcf\x15\xd4\xcf\x65\x7e\x09\xb3\xfc\xc5\x94\x50\x51\x82\xc5\x36\xdd\x55\x3b\x07\xc2\x84\x1f\xac\x62\x45\x99\xe3\xfe\x1f\x8b\xb9\xd7\x73\x14\x21\x94\x42\x1c\xa4\xae\xa2\x3a\xd6\x32\xa2\x14\xd2\x08\x23\xa3\xd5\x76\xd9\xb3\xd3\xf8\x63\x9a\x1b\xe6\x90\xd6\xb7\x50\x40\x9d\xd5\xeb\xe3\xa9\xac\xba\x98\x97\x05\x91\x95\xc1\x5c\xde\x2d\xd6\xf7\xfb\xed\xfa\xf6\x61\xb5\xd9\x7f\x5d\xfd\xd5\x1d\x4f\x04\x36\xcf\xd7\xd9\xa1\x38\x9f\x10\x44\x61\x85\x07\xf2\xc9\x8c\x67\x61\x68\xa9\x43\x3d\x4d\xb3\x17\x68\x3e\x5f\x10\xc9\xb7\x63\x6d\xd3\xe3\xba\x78\xc5\xfc\xe8\xa9\xca\x6a\x18\xd8\x32\x16\xc6\x96\xac\x0a\x7b\x38\xf7\x12\xe6\x71\x2c\xdc\x8f\x4e\x0c\x76\x50\xe7\x60\x9a\x38\x9e\xfe\x16\x4d\xd0\x53\xbe\x2e\x5f\x33\xb8\x12\xd5\x7d\xd6\xfc\xfd\x2a\x7c\x06\x84\xc5\x61\xe0\x69\x79\x2d\xa8\xfc\xae\x14\x13\x88\x0a\x8b\x43\x9b\x4f\x3c\x66\x05\x2c\x6d\x33\xe4\xa4\x42\xc7\x62\x08\x94\xfb\x9e\xa3\xc2\xfb\x80\xb0\xc2\xdf\x2d\xe5\x09\x22\xfc\x5b\x4f\xec\xd1\x98\xa5\x28\x2c\x38\xb8\x23\xfa\xba\x47\xd7\x7b\x58\x66\x65\x2c\x66\xc2\x51\x97\xdf\x9e\xb3\x7c\xb2\x9e\x19\xa3\x36\x7a\xba\xca\x3a\x4a\xcc\x61\x7e\x8a\xb5\x61\x1f\xb3\x0b\x6a\x65\x75\x2e\x27\x04\x56\x43\xa3\xcd\x38\x05\x04\x39\x38\x41\xb2\x09\xbf\x08\x65\x5c\x89\xd0\x25\xa4\x5b\x4f\x7c\x8d\x9a\x18\xe3\xd7\xc1\x81\x86\x9e\x54\xad\xe3\x56\x72\xc7\xd2\x84\x07\xb6\x2a\x73\x5f\xea\x73\x0e\x5f\x30\x0e\x9e\x6c\x08\x2c\x4d\x24\xda\x46\x4b\x1c\x2e\x9a\x06\xaa\x62\xfa\x2b\x29\x4b\xf1\xad\x3c\x89\x97\xac\x6e\x44\xb1\x39\x9f\x3a\x63\xc6\x52\x6e\x39\xe6\x35\xe8\x0c\xf7\x7a\xe4\xf1\x9b\xbc\x38\xa1\xac\x03\x88\x79\x07\x1f\xe7\xd6\x0b\xbf\xb8\x98\x07\x27\xd9\x60\xed\x87\x13\x28\x98\x83\x71\x7b\x5b\xc7\x64\x92\xa6\xa2\xdf\x66\xef\x7b\xd9\xe8\xee\xa2\x52\x79\x99\xa0\xef\x43\x30\x00\x6b\xdd\x2f\xf4\x67\x9b\xd2\xea\xf5\x0d\x80\x0c\x4c\x01\xc5\x35\x73\x93\x67\x87\xe7\x06\x45\x10\x1e\xe0\xed\xa9\xcc\x33\x35\x5d\x8a\x9a\xb0\xae\xaa\x9f\x97\x35\xe8\xa5\x28\x74\xd6\xce\xb1\xee\xc1\x21\x26\x2a\xf4\x9b\xa9\x45\xbb\xae\x26\xf4\x57\x94\x19\x22\xb1\x2c\x7e\x2b\x8a\xbb\xec\xcf\x4c\xfc\xd1\xfd\xdd\xa2\x36\x5c\x38\xd9\x85\x4f\xd9\x20\xa6\x61\x86\x69\xaf\x22\xef\x32\xd2\x33\xfc\x1f\x94\x07\x84\x22\x12\xe5\x4d\xd4\xc3\xd6\x09\xca\x83\xd4\xea\xf8\x9c\x50\xae\x01\xeb\x81\xab\x42\x77\x9f\x86\x87\xb1\xc0\x08\x5d\x95\xa7\xf7\x27\x71\xfa\x08\x62\xc2\x43\x4d\xb1\x3a\x2b\x85\x3e\xc0\x85\xc2\x93\x1b\x14\x85\x5c\x87\x5e\x90\xa0\xba\x09\x6f\xa2\x1b\xf2\xc7\x5c\x7b\xa2\x1f\x1f\x11\x8c\xe9\x9c\xac\xc7\xa2\xae\xff\x18\x77\x6e\xfd\x06\xd0\x9f\xf2\xc8\x81\xe3\xec\x45\x36\x65\x39\x47\xb5\x42\x79\xa4\x03\x69\x53\xa3\x9e\x82\x62\xef\x78\x41\x44\x6e\x2b\x55\xf3\x97\x27\x41\x8a\x24\x68\x48\xd2\x95\x97\x67\xbd\x05\x55\x2f\x0e\x22\x2b\xea\x66\x98\x15\xe2\x84\x92\xc0\x6a\x8f\xce\xb7\x51\x53\x4e\x98\xe0\x6c\xf4\x31\x61\x37\xd0\xd6\x9f\xfe\xb0\xe6\x98\x6e\x70\x7d\x11\xfd\x24\xe6\x71\xc4\xe9\x90\x1a\xef\xaa\x2a\x5f\xa6\x4b\x9f\x27\x21\x47\x4a\x85\xed\x87\xa9\x7d\x9e\xf0\x10\x5c\x3e\x13\x09\xe4\x66\xb2\x08\xf3\xdd\x47\x94\xd3\x24\xf1\x74\x09\xc3\x2a\xdf\x38\x84\xe0\x8c\x27\xac\xef\x44\xb1\xe8\xbb\xd9\xab\xce\xe2\xd1\x38\x53\x90\x3a\x8e\x62\x27\xe6\x36\x2a\xc9\x7f\x30\x1f\x38\x37\x58\x62\x3c\xda\x1e\xe4\xc9\xae\xc9\x79\x1a\x60\x1a\xda\x4a\x9d\xdd\x9e\x45\xa5\x33\x51\x58\xd1\xd9\xf1\xc8\x34\x0c\xd0\xfc\x36\xe2\xe5\xa2\x44\xe9\xcd\x38\x17\x44\x85\x2e\x17\x38\x4a\x05\x71\x91\x10\x34\x1f\xb7\xd0\x60\x2a\x7c\x8c\x34\xe3\x42\x07\xe8\x25\x7e\x29\xf3\xcf\x93\xfb\xdc\x9f\x00\xd6\x17\x6e\xe7\x6f\xeb\xfe\xa9\xb9\xb2\xec\xfc\x1b\x91\x3c\xb2\xac\x4c\xcd\xf3\x9d\xa8\x1b\xd7\x45\xe3\x0f\x1a\x82\x93\x00\xc6\x15\x2f\xae\x74\x8c\xfd\x65\xcb\xc7\xf5\xc3\x7e\xfb\xed\xe9\xe9\xee\x2f\xac\x39\xed\xd6\xab\x8d\x07\x9b\x53\xae\x00\x02\xcf\xde\x55\x35\x59\xdd\xec\xca\xce\x97\x9f\x3a\x95\xf3\x37\xa7\xc1\xf6\xb1\xd5\x36\x95\xde\x77\x62\xbb\xe3\x40\xac\x54\x12\xa6\x16\xde\x87\xbc\x28\x2e\xcd\x35\x5b\x8c\xe3\x90\x44\x3a\xed\x19\x4b\xb7\x78\xc9\xd9\x59\x06\x90\x2a\x3b\xcb\x44\xa5\x2e\x7a\xe3\xbb\x41\xd2\x03\xbf\x1d\x64\x77\xd7\xd1\xed\xac\x8b\x25\x74\x24\x02\x94\x9b\x48\x68\xd7\xba\x7f\x5d\xaa\x59\x5b\xd4\x5a\x75\xe5\x5a\xaa\xf6\xcf\xa2\x46\xf2\x3b\x5c\xe5\x38\x85\xf6\x7f\x43\x55\xf6\x7f\xc3\xf9\xe7\xcf\xd4\x24\x60\x3e\x2b\x7e\x3e\x0e\xf3\x0a\xae\x8c\x67\xa1\xf2\xdd\x78\x08\x94\x15\xa6\xb5\x7b\xd8\xba\xf0\xdd\x08\x34\x0d\x88\x65\xda\xc5\xbb\x88\xc2\xbd\xa8\x6b\xa8\x9a\x5b\x51\x7f\xab\xc5\x01\x92\x00\x6b\x6f\x75\x37\x5a\x59\x37\x61\x71\x2a\xf3\xbc\xbb\x46\x18\x09\x62\xbd\x18\xcc\x27\x6e\x40\xcb\x73\x9e\x63\x1b\xff\xd8\x1e\xa5\x91\xb2\x9e\xed\xe9\x5c\x3f\xf7\x04\x54\x34\x8d\x74\x8a\x62\xdb\x77\xe5\xe1\x01\xce\x47\x51\xbd\xd4\x48\xf9\x7c\x11\xee\x8d\xbf\x48\x1a\x99\xd8\xe9\xca\x16\xe5\xb9\x50\xb0\x38\xf4\xb9\xd1\x34\x4e\x09\xa6\x28\xea\xb3\x1c\x18\xce\x34\x09\x02\xa3\x3b\xe4\xdc\x10\x93\x33\xbe\x76\x62\xac\xa0\xb6\x05\x9b\x2c\x9e\xd6\xfb\x73\xe5\xa1\x07\x29\x0d\x34\xb6\xd7\xbd\x65\x45\x01\x55\xa6\xbb\xbf\x33\x85\x0b\xf4\x1a\x5e\xb3\x1a\x66\x0a\xe2\x69\x7b\x2e\x5a\xf4\x63\x66\x0b\x9b\x3e\xfa\x9f\x18\x97\x8b\x70\xec\xb3\xb4\xa0\xbb\x36\xa3\xae\x74\x66\x13\xe2\xc5\x0b\xec\x2a\xa1\xad\xde\xd6\x07\x6f\x90\xa5\x0a\x21\x98\xdd\x76\x35\x09\x8a\x52\xa6\x2c\x51\xc2\x1e\xf1\x04\xa8\x8f\xd1\x13\x5c\xd1\x34\xe5\x5e\x3e\x02\x93\x7b\xa2\x6a\x0a\xa8\xc2\xfd\x6b\xf9\x36\xae\xd4\xa7\x22\x08\x3a\xd2\x08\x38\x1c\x40\xcf\x67\x68\xe6\xbf\x85\xe0\x80\xad\xba\x50\xa9\x28\x70\x9e\xc7\x4d\x59\xcd\x26\x29\x53\x49\x52\x42\x3b\x8d\xa7\x6d\x76\xa8\xc7\xb9\xbf\x54\x26\x1a\xab\xfc\xa7\x0a\x5e\xf7\xcf\x3d\x72\x0c\x0f\xc8\xce\xcc\xf4\x1c\x4a\x13\xb7\x3d\x95\x8c\xa2\xd7\x86\xa0\x86\x3d\x32\xa3\x3a\xbb\x39\xbe\x13\xc5\x6c\x87\xcd\x31\x2b\x1a\xeb\x58\xcd\x18\x82\x54\x69\xab\x8d\x28\x2b\x68\x1d\xbf\x43\x9f\x46\x48\x21\xa0\xba\xd3\xfa\x76\xd8\x1d\x27\x51\xea\x47\xe8\x04\x9f\xc5\x25\x68\x86\x35\xc6\xf1\x43\x9b\x38\xe6\xe1\x44\x73\xc3\xd7\xdc\x06\x53\xc8\x70\x8a\x20\x29\x65\x51\xb4\xdb\xec\x50\x88\x7c\x57\xde\xdb\x02\xdc\x64\x2e\x1b\xc1\x85\xb3\xaf\x1d\xa9\xd7\x07\x1f\xc5\x48\x83\x6a\x33\x12\xb3\xcb\x4f\x55\x79\xa8\x3a\xc0\xa3\x08\x02\x82\xef\xe9\x6e\xb3\xbc\x69\x27\x97\x15\x35\x52\x20\xcb\x9f\x17\xdd\xc4\xa3\xcb\x8a\x20\x51\x01\xb5\xe5\xc6\x47\x47\xf5\x34\xc1\xf3\x89\x20\xd5\x18\xf0\x1f\x2a\x51\x38\xca\xeb\x8f\x2e\x26\x43\x6c\xe1\x50\xa8\xc5\x67\xb9\x8f\x97\x95\x18\x53\x29\x50\x11\x38\xc8\x0c\x9a\xcc\xe6\xb9\x02\x58\x17\xaf\x22\xcf\xf4\xea\xbf\xae\xf8\x78\x0f\x75\xdd\x37\x1b\x89\x30\xe4\xba\x03\xa2\x78\xc0\xc5\xfd\xf6\xf3\xbc\x86\x08\x99\xc6\x94\xfc\xa9\x7c\x0b\x83\x3f\x66\xbc\x01\x11\x45\x94\xbb\xd6\xcf\x41\xb2\xaf\xcf\xad\xd3\x78\xf2\x80\x51\xc2\x6c\x42\xab\xb0\xa6\x69\x5d\xac\xce\x55\x1f\x68\x88\x48\x18\xd1\xc1\x9f\x56\xcb\xe5\xe2\x37\x8a\x4a\x22\x66\x01\x78\x25\xeb\xac\x46\x7a\x8c\xe6\xa2\x14\x2e\xe2\x94\x22\xaf\xda\xa2\x6a\xde\xca\xea\xe5\x03\x55\xc9\x79\x4f\x70\xf2\x14\xb1\xb6\x72\xdd\x35\x34\xf7\xe2\xa7\x6d\x7a\x9d\xfe\x9a\x89\x85\x19\xeb\x76\x95\xd6\x47\x75\x03\x92\x28\xb5\x4c\x99\x52\x74\x7f\xd2\x89\xee\x13\x59\x58\x52\xad\x9f\x50\xe9\x6e\x72\x71\x9a\xa6\x24\xec\xac\xc4\xb2\x3c\x1e\xb3\x71\xb3\x7b\x1c\x4c\x00\xa6\xb3\xde\x89\x60\x61\x82\x7d\x06\x3f\x56\x5f\xbf\x5d\xea\x66\x50\xc1\xa2\x04\x65\x04\xdc\xb6\xba\x9b\x41\x20\xf7\x0b\x57\x30\x4d\x84\xf1\xa0\xcf\xf6\xf3\xfd\x54\x98\xa3\x9d\x9f\x5c\x3c\xe4\xae\x3f\x30\xab\x5d\x34\x59\x5f\xbd\xaf\x27\x61\xab\xe0\x29\x57\xa8\x28\xe1\x5f\x52\xca\x14\xa6\xc8\xb6\x65\x7e\x1e\x01\x77\x44\xca\x13\x2c\x0d\xad\x97\x8f\x0f\xeb\xe5\xfe\x61\x7d\x31\x77\x46\xb3\x46\xc6\x49\x18\xbb\xb4\xc6\xa6\x94\xe7\xfa\x43\xbe\x00\x7f\x42\x62\xc9\x0a\xbf\x96\xcd\x6a\xe7\xcb\xfb\x42\x26\xca\x52\x92\xb7\x8e\xcd\xd5\xf9\xbd\xff\xbb\xc6\x54\xd5\xdb\x50\x82\xd7\xaf\x1b\xc9\x63\x2e\x7c\x51\xa3\x12\xf9\xba\xa8\x9b\x9e\x56\x9b\x0a\xa9\xa2\x94\x77\xad\x24\x8b\x8b\x3b\x73\xc3\x54\x42\x6c\x5b\xf7\xaf\xd1\x1d\x48\xdd\xd8\x97\x3a\x85\x0e\xc3\x14\xd1\xe6\xef\x8f\x6f\xc5\xa0\x58\x2e\x74\xa2\x31\x58\x82\x9f\xa7\xac\x82\xab\x4c\x4f\xe6\x04\x10\x89\xdf\xcd\xb6\xe8\xc3\xf9\x98\x97\x4d\x03\xd5\xfb\x03\x7c\x64\x21\x81\x32\xa4\x71\x36\xe7\x42\xab\xea\x3c\xfa\x66\x86\x84\x28\x0d\x8d\xb9\xc1\xeb\xf2\x2c\xa7\xd0\x45\x61\x62\x62\x7a\x30\x41\x97\xd7\x7d\x80\x37\x4f\x7a\x34\x7e\x27\x26\x66\x9e\x23\xf9\x8f\x19\xb9\x30\x2a\x8c\x4e\xdd\xbb\xc7\xc2\xa9\x6d\xd6\xa8\x2f\x2e\x24\x83\x88\xfa\x7e\x71\x2b\x46\xb3\x14\x27\x21\xb3\x7c\x28\x01\x83\x3f\x30\xac\xce\xcb\x40\x84\x28\x9f\x83\x0f\xe4\xe9\x7f\xe7\x29\xa0\xa8\x0c\x34\x60\xd0\x51\x75\xca\xc6\x9d\x60\xd8\xfc\xbb\x94\x81\x31\x3a\x70\xaa\x13\x56\x2b\xd0\xbd\x49\x19\x05\xd6\x0d\x6a\x77\x02\x95\x95\xdd\x9f\x85\xe5\xe7\xb3\xaf\xcf\x99\xa2\xa1\xac\x26\x95\x44\x30\x74\x61\xdf\x4e\xf9\xf9\x03\x10\x89\x24\x42\xbb\x6e\xd5\x66\x77\x91\x57\xb8\xcc\xfa\xcb\x58\x68\xac\x4f\xa9\xe6\x3c\xd4\xf7\xa3\x32\x89\x19\xd0\x2e\x2c\x39\x1f\xa1\x68\x1e\xc4\x44\xcd\x98\xca\x24\x85\x14\xfa\x06\x3b\x51\x89\x23\x34\x30\xe1\x92\x9c\x6c\xb3\x92\x06\x01\xa2\x8d\x77\xf7\xdb\xbf\x3e\x77\xed\xe6\xdf\x2d\x95\x21\xf6\xd8\xaf\x97\x8f\x2e\x8d\x3f\x7e\x4f\x54\x2a\xa2\x1c\x5b\x4b\x97\x06\x1c\xdf\x02\x4f\xec\x8e\xb9\x68\xca\x63\xa6\xfe\xf4\x67\x4a\x49\xc1\x0c\xf5\x89\xea\x5d\xc9\x7e\xf7\xee\x3e\x77\x4c\xa5\xe2\x1a\xbc\x9a\xb4\x4b\x4f\x44\xa5\x21\xfe\xa7\x95\x4e\xb0\x6a\xb0\x7e\xd8\xad\x6e\x37\x8f\xc3\xc5\x27\x15\x18\x64\x4e\x29\xdb\x95\xfc\x54\x96\x56\x96\xdf\x1f\xd5\x49\x1c\xda\x72\xcb\xe9\x54\x56\xa8\xa4\xfc\x79\xb9\x57\xea\x44\xa0\x8f\xec\xbb\x3e\xea\x27\x91\xe9\x27\xa8\x6c\x67\xde\xf8\x65\x6b\x1a\xf9\x8c\xe2\x1e\x8d\xff\x22\xcf\x6d\x2b\xc9\x4d\x59\xb9\xd6\x6e\x3f\x34\xb5\x65\x0d\xb4\xb0\x96\x31\x75\xb4\x8d\x49\x50\xa9\x15\x00\x6c\xe3\x83\x3b\x6b\x8e\x26\x1f\x06\x0c\xe8\x3e\xf7\xfb\x54\xe6\x13\xf4\x80\x34\x01\xd1\x3d\x89\x90\xe3\x19\x75\xed\xa3\x1f\xac\x45\xc3\x62\xee\xd5\x99\xee\xce\xfa\x7c\xdc\x95\xf7\xa2\x78\xff\x78\x55\xa8\x20\x8d\xbc\xe8\xaa\xc5\x3a\x0f\xda\xf8\x54\xc8\x01\x37\xf5\xa7\x21\x19\x2a\x55\x21\x44\xe8\xb6\x3a\x6e\x29\x2f\x83\xe3\x8e\x46\x81\x60\xc9\xa0\x13\x7c\x29\x2a\x6d\x59\x24\xfc\x80\x44\xdb\xcc\x48\xd5\x7c\xab\xf2\x41\x77\x80\x8a\x98\x42\xe4\xec\xbe\xce\xab\xab\xf7\xea\xee\xd8\x2c\x9f\x2f\x05\xa6\x66\x1d\x20\x15\xa5\x94\xea\xbe\x70\x8a\xa8\xa1\xd7\xcf\x67\x87\x22\xc4\xf6\x84\x38\x56\xd1\x55\xf3\x6c\x13\xe6\x5b\x91\xeb\x0f\x32\x77\x8a\xa4\x56\x5e\xe2\x3c\x05\xd0\x22\xde\xc7\x3f\x09\x91\xb6\x3b\x0c\xfb\xc7\x3e\x5d\x2d\x8a\x18\xbb\x9b\xd4\xd0\x7c\x7d\x97\x50\x5d\xea\x01\x51\x15\x53\xdb\xc0\xad\x7c\x53\x74\xdd\x89\x77\x51\x15\x4b\x13\x77\x95\xfe\x9b\xf2\x42\x32\xd5\x0d\x4b\x12\xc6\xb0\x9b\xa4\x3c\x9d\x3a\x85\x63\xaa\x92\xd4\xca\xea\x39\xaa\x2a\x8b\x90\x9e\xa4\x4c\x15\x4d\x42\xdb\xef\x77\xca\x34\x54\x1b\xf8\xaf\x3f\x9b\x72\x90\x2e\x71\xbb\x78\x17\x45\x73\x5d\x95\x59\xb3\x52\x65\x51\x1e\xb3\xff\x9e\x61\xef\x89\x4f\xba\xf1\x92\x20\x08\x79\x8e\xed\x65\x72\xbf\x4c\x87\x31\xe9\x02\x8f\x4d\xc7\x7c\x3c\x27\xe8\x44\x15\x33\x89\x55\x5d\x6a\xc3\x09\x81\x0c\x1e\x8f\x06\xd9\x02\xfe\xf7\x0c\xfd\xdc\xe3\x89\x12\xbd\x1a\xd8\xae\xd3\xaa\x1a\x5f\x8c\xf3\x88\x28\x4f\xf6\xd5\xb3\x2d\x0f\xf7\x6c\xc5\x95\xc6\x6c\xe9\x5d\x89\x15\xf0\x8f\x7b\xfd\xbb\x8d\x58\xa5\x29\xc3\x0f\xd5\x04\x61\x1b\x1f\x7f\x85\xb1\xea\x04\x55\x42\x58\x07\xbc\x86\x3c\xdf\x94\x7d\x3f\xc4\x64\xc6\x48\x26\x52\x8a\x8a\xd5\x1a\xaa\x7b\xd1\xa8\xe7\x1d\x5c\x32\xe9\xff\xe3\x83\xd4\xc8\x47\x29\xd5\xe9\x4f\x48\xef\xed\xb5\xb7\x88\x0b\x78\x92\x32\x50\x52\x25\x91\x75\x5b\x5e\xcb\x17\x58\x22\xb2\xc3\x66\x5f\x27\xe3\x74\x82\x52\x08\x42\x8a\x42\x97\x05\xe8\xb5\xf2\x62\x63\x93\x88\x58\x29\x6a\xb1\x5b\x57\xe7\xf7\x6d\x53\xaa\x17\xcb\xb6\xef\x51\x02\x93\xb1\x10\x01\x56\x9f\xa7\x41\x82\xd2\xa1\x9d\x0c\xb6\xf9\x07\xf1\x6e\xde\x29\x51\x9a\x59\xd6\x5a\x0d\x39\x1c\x44\x03\xdd\x97\x5b\x14\xfa\xa1\x44\x6c\xca\xaf\xc0\xbd\xb3\x49\xa9\xc9\x37\xd2\x12\x12\x4b\xb2\xd2\xc0\x01\xa5\xe4\x27\x73\x4c\x2b\x6a\x28\xea\xda\xd5\xcd\x7a\xf9\x38\x3d\x6a\x18\xba\x61\x4e\x80\xf4\x07\x34\xcf\x93\x67\x84\x88\x76\x72\xa1\xa2\x50\x65\x35\x8f\x14\x51\xc0\x43\xab\x43\x81\xa5\xf2\x6d\xb7\xdd\xff\xc2\x2a\x81\x30\xce\x3f\x68\x6e\x00\x66\xe5\xe3\xa8\x02\x99\x04\x08\xd4\x07\x35\x50\x19\x6d\xff\x0e\xd2\x15\x08\xf7\xd9\xa0\x80\xe4\x0f\x6b\xab\x09\x71\x80\xe6\x47\x59\xbd\x20\x71\x42\x0f\xf3\x57\x26\xb4\xac\x0a\x5d\xf7\x0d\xe6\x1a\x9f\xa0\x32\x65\x75\x1c\x84\x24\xca\xc4\x56\x51\x73\xe0\x67\x2c\xfa\x63\x5a\xa7\xfd\x0b\x7c\x2c\x00\xdb\x2d\xff\x09\x55\x3f\xf5\xec\x50\x1d\xc4\x14\x69\xd8\xaf\x44\x9d\xa9\x4b\x95\xe3\xd1\x23\xeb\x40\x5a\xf5\x6a\x70\xe2\x6b\xef\x4b\xe8\x4b\xaf\xba\xf5\x85\x85\x15\x2b\xcc\x41\xef\xe0\x88\x20\x99\x73\x05\xf5\xa8\x2f\x42\x87\x3a\xc2\x9c\x03\x56\x38\x9f\x90\x53\x44\xdf\x00\xd4\x8b\x89\x59\xd3\x91\x92\x54\x78\x6a\xec\x57\xb1\x7b\x3f\x81\xbe\xf6\x6a\x22\xbf\xf0\xc6\x3e\xaf\x7d\x68\x12\x71\x6c\xdc\xd1\x20\x1a\xcc\x3b\xef\x3b\x17\x4d\x13\x21\xd3\xde\xf5\xb0\x44\x38\xef\x47\x59\x8e\xd8\xfd\xa8\x8e\x43\x86\x19\xea\x07\x78\x1b\x49\x46\x8e\x07\xc5\x80\x0a\x69\x7b\xcf\xb8\x80\x1f\x7b\x57\x5e\x9d\xdf\x51\x06\x10\x99\x47\x26\x8f\x1d\x27\x14\xf3\xab\x3f\xb2\xa2\xc8\x8a\xc3\x7e\x55\xf4\x40\x2d\x1d\x73\x08\x7c\x33\x9d\x0d\x93\x46\xf3\x47\xd3\x54\x90\xa0\x03\xa1\x5f\x9a\x77\xcd\x68\xa8\xe3\x6e\x67\x59\xd5\x4a\x9c\x60\x04\x12\xd5\x8c\xa5\x3e\x24\xb0\x6c\x50\x96\x94\xee\xa6\xbc\xcc\x7c\x68\xc6\xad\x02\x9c\x85\x62\x34\x68\x56\xc6\xeb\x44\xf3\x30\x89\x99\x5b\x27\x48\xaa\xdb\x31\x0b\xcd\x6e\x7d\x9a\x8b\x28\xe8\xda\x4f\x7d\x2c\xd8\x3e\xc8\xec\x32\xd4\x5c\x5a\x40\x05\x52\x0f\x23\x57\xc0\xb6\x69\x17\xce\xa1\x7b\x65\xdc\x04\x2a\xee\xc5\xa1\x27\xb6\x48\xa7\x01\x20\x04\xd1\x56\xfe\xea\x6b\x91\xe5\xef\x9b\x32\x9b\xfc\x4c\x1a\x5a\x5e\xec\xfb\xc5\x9f\xfb\xeb\xc5\xfa\xee\x2f\xc7\x0c\xb0\x7c\xdc\xae\x6f\x1f\xf6\xdb\xa7\xd5\x83\x6f\x42\xd0\x69\x92\x20\xa3\x82\x67\xb4\xb1\x35\xa1\x33\x52\x11\xcd\x1a\x1c\x2d\x74\x80\x94\x57\xc7\xbe\xa6\xa3\x05\x58\x75\xf7\xdd\xfa\x7e\xb5\xdf\x3d\xee\xbf\x2c\x76\xcb\x2f\xfb\x70\xfb\xd0\x37\xc4\x6a\xa9\x0d\xb5\xc4\xc2\xd9\x51\xf4\x93\x44\x11\x8a\x04\xe2\x8b\xac\xba\xae\xca\xd3\x93\x78\xbf\xca\x9a\x7a\x13\x4d\xd3\xd6\x5a\xc5\x04\xc3\x48\x99\xe9\x7a\x9f\x1d\x8a\xb2\x02\xbd\x1f\xb6\x1d\x69\x25\x42\x6d\x33\xe3\xe5\xa9\xac\x5d\xb1\xf6\x13\x4e\x57\xaa\x75\x12\x60\xae\xe4\x1a\xfd\xe9\xac\xe8\x8d\xca\x47\x4b\xf3\xb7\xc2\x41\xad\x13\x8d\xf2\xa8\x98\x58\x15\x1f\xb1\x21\xfd\x02\xc4\xfa\xd1\x3d\x73\x5b\xd3\x5d\xbe\x1f\x3a\xa1\x14\xaa\xb5\x32\x18\x80\xa2\x52\x91\x6a\xd7\xea\x30\x12\xd0\x5a\xdb\x52\xfa\x4d\x59\x41\x76\x28\xae\xaa\x4c\x1f\x2e\x26\x75\xf7\xaa\x21\xb4\xdb\x45\x5d\xe6\x7a\xad\x41\xf4\x49\x56\x0d\x09\x0b\x52\xd7\x28\xb6\x3f\xd9\x82\x89\x87\xaa\x8d\xdf\x01\x80\x33\x4d\x83\x02\x9f\x9d\xb7\x1d\xb6\x43\x1b\x4a\x31\x65\x6b\x89\xfd\x5a\x67\x77\xb6\x30\x6a\x47\x43\x10\x04\xf8\x56\x8f\x45\x33\xa2\x3f\x80\x80\xd8\x7e\xbd\x3b\x51\x7e\x39\x67\x5f\xce\xd9\x67\xc9\x3b\x08\x62\x0b\x04\x6b\x57\xde\x17\x51\xe9\xee\x2a\x8e\x71\x75\x95\x67\x87\xa3\xe8\xa6\xc2\xa4\xa4\x04\x81\x4a\x91\xbc\x1f\xb3\x34\xbb\x41\x8f\xfc\x8f\xac\x79\xde\x74\x48\xe3\x8f\x3e\xee\xf8\x56\xb4\x42\x46\x04\x8b\x48\xf5\x17\x73\x58\x31\x37\x26\x54\x21\xb3\xdc\x96\x80\x55\xf8\xc7\x62\xa8\x93\x47\x81\x88\x14\x29\x61\xf6\xb6\xd5\xa6\xfd\x66\xfe\x54\xa2\x43\x84\x16\x9f\xaa\xf2\x58\x62\xf9\xe5\xd1\x7c\x29\xa7\x75\x4d\x20\xc0\x8d\xef\xd0\x46\xe7\xe3\x6a\x0a\xa0\xff\xc7\xe4\x04\x63\x94\x85\x54\x35\x50\x1d\xb3\x02\x9e\xd6\xde\xa0\x40\x1c\x52\xfc\x48\xee\x8c\x5b\x91\x4d\xe8\x68\x29\x24\x49\x8c\x41\x52\xdf\x88\x33\xa1\x0b\x18\x4d\x78\xa0\x3c\x40\x67\xfb\x1a\x7a\xed\x95\xc9\x15\x29\x07\xec\xad\xb3\x21\x7a\xcf\x20\xf3\xa9\xe6\x15\x05\x2a\x24\x9a\x6f\x0f\x03\x5f\x8a\x42\xbf\x8f\xd2\x3f\x97\x81\x38\x50\xc9\xf1\x24\x5b\x91\xe9\xa6\x05\x0b\x6d\x4b\x6a\x05\xea\x59\x54\x87\x09\x16\x01\x78\x68\x39\x8f\x2a\xdf\x51\xe3\x32\x90\x88\xad\xf5\x63\x64\x8c\xf0\x42\x97\x68\x40\x98\x5a\xa1\x91\x00\x62\x3a\x9b\x86\x13\x20\x8d\xa9\xb6\xd4\x31\x48\xef\xfd\xf4\x2c\x2a\x51\x3e\xf7\xb1\x1f\xa4\x69\x8c\xd8\x61\x84\x9d\x7b\x69\xad\xee\xa0\x02\x2c\x14\x3f\xfc\xf3\x7a\xbf\xbc\x5b\x2d\x36\xdd\x01\x63\xb0\x01\xd9\xee\x0b\xd8\xca\x39\xa4\xe2\x98\xdd\xe1\x40\x90\x00\x5b\xd0\xf7\x3d\xa3\xee\x2f\x41\xb4\x93\x2b\x68\x6e\x29\x0c\x71\x4a\x5c\x9d\xab\xce\xbe\x83\x80\x00\xf3\xf9\x79\x76\xcc\x9a\x8e\x42\x9a\x82\xf4\xc4\x3f\x8d\x38\x40\x74\x05\x87\xac\x18\xb4\x2a\x81\x26\x96\xb5\xd8\x02\x51\xb3\xa2\x79\x2a\xbb\xd9\xaa\x79\x9a\x06\x5e\x57\x79\x38\x07\xbb\xe3\xe0\xc5\x71\x5d\xc4\x6d\xe1\x83\xdd\xea\xd4\x82\x60\x77\x3c\x2e\xbe\x7f\xee\xbe\xa2\xd4\xb6\x75\x45\xba\x31\xc0\x82\xb0\x43\x1a\x0d\xff\x6c\xc9\x5c\xee\xb2\xe2\x45\xc8\x8f\x1c\x59\x00\x90\x98\x85\xc9\x3c\xc5\x70\x76\x84\x2b\xbf\x7d\x9a\x20\x64\x60\xc9\x2c\xf5\x63\x75\x98\x22\x56\x4d\x40\x84\x10\xbe\x91\xc3\x11\x73\xce\xd8\x44\x13\x24\x09\xb3\x2a\x7c\x35\x54\x8d\xa8\xee\xa1\xa8\xc5\x7f\x2e\xf0\x54\xe3\x73\x28\x43\xac\xdc\xfd\xf7\xa7\xa1\x35\x36\x44\x70\x2c\x59\x42\xa1\x91\x17\xa2\xe7\x38\x1b\xa2\x62\x4c\xcc\x62\xee\x5c\xb7\x2f\x59\xdd\x94\x55\xa6\xbc\xb6\xc8\xe8\x1b\x98\x98\x47\xc2\x32\x84\x57\x07\x58\x8a\x13\x42\x1e\xbb\xab\x70\x4e\x69\x47\xed\xf1\xf8\xda\x4b\x3c\xfa\x01\x20\xd1\x3c\x96\xfb\xd6\x50\x55\x42\x4f\xe8\x5f\xa9\x49\x62\xdb\xb4\x5d\x0e\x37\xe9\x7f\x45\xfd\xca\x8f\xff\xed\x47\xca\xa0\xd7\xda\x75\xbb\xda\xe5\xe5\x74\x1a\x7a\xd9\x5f\x7b\xad\x3e\x31\xef\x86\xd0\xd0\x36\x29\xfa\x6a\x6a\x05\xba\x03\x48\xfb\x21\x34\x16\x1d\xb4\xb2\xd3\x82\xbd\xc9\xcb\xb7\xba\x1b\xa2\xad\xd4\x8e\x2b\xa2\x0c\x5d\x6b\x43\x4d\x14\xd2\xae\xca\xf8\x04\xd5\xee\xe7\xe4\x36\x59\x40\x5c\x37\x8b\x0b\xde\xca\xf2\xf8\x90\x1d\x9e\xc7\x3c\x08\xbf\x6c\x8a\x18\xbf\x6c\xce\x25\xe2\x31\x10\x11\x54\x56\x15\xa8\x66\x4a\xba\xe3\x46\xa6\x3c\xd4\xae\x23\x68\x57\x4d\x1b\x37\x4c\xaa\x01\x59\x87\xcc\xb9\x8d\xc9\x56\x3f\x4f\xa2\xa8\x07\x8d\x47\x46\x68\x4b\x83\x66\x40\x3d\x2f\xf2\x7c\x7b\x3e\x3e\x9c\x8f\x37\x65\xb5\x2a\x54\x79\xae\xc4\x61\x3a\x85\x84\x61\x98\x16\x73\x38\x8f\x76\x3b\xb4\xac\xf0\xe3\x61\x2a\x92\xd8\xf6\xb4\x58\xae\x56\xff\x3d\x67\x1e\x3c\x3d\x5f\xe5\x1d\xd4\xe4\x8c\x8e\x6c\xd3\xb3\xed\xf2\x58\x1f\xe5\x44\xb8\xef\xb3\xf8\xce\x68\x80\x84\xba\x7e\x9d\x4f\x76\x5d\x03\x24\xc4\x35\xea\x9b\x03\x8b\xac\x79\xff\xb6\xb9\x1b\x45\x7a\x06\x58\x94\x52\x4f\xba\x87\x40\xaa\xcb\x2e\x86\x11\xa0\xa6\x4f\x7b\x19\x43\x04\x22\xc4\x56\xcd\xf3\xbd\xa8\x7c\x4b\xae\x31\x71\x80\x85\x7a\xa7\xce\x56\xaa\xa9\xd9\x67\x41\x90\x18\xb4\x51\xfd\x8e\xbe\x2e\x2c\xed\xcd\xaf\x26\x92\xbb\x40\x48\x19\xf6\xe6\xee\xed\x1b\xf4\x40\x30\x5f\x29\x99\x8b\x44\x58\x10\x85\x2a\x85\xae\x84\xf9\x84\x8f\x3c\x4d\xef\xf9\xa1\xb1\x4c\x79\x47\x3d\xf5\xe5\x5d\x56\x99\x9e\x63\x14\x62\x41\xc4\x48\x64\x3b\xa7\xaf\xca\xba\xfe\x21\x8a\x42\x2c\xdb\xc5\x35\x74\x02\x59\x10\x71\x83\xaf\xd9\xb1\xef\xdf\x81\xf1\xac\xec\x7e\x80\x26\xe8\x7a\x7d\x2b\x3c\xc4\xf5\xd7\x0c\x08\x1f\xbc\x1b\x42\x58\x14\xba\x95\x5a\x67\x35\xc2\x83\xfd\x21\x4e\x30\x4b\xda\x88\x17\x40\x60\xe9\xf6\x39\x3b\x4d\x1e\x28\xa6\xa1\x53\xa8\x2c\xf4\xa2\xbe\xcd\xcc\x7c\x45\x98\x05\x31\xb3\xf8\x09\x2f\x84\xfa\xad\xca\x9f\x2a\x30\xd9\x4f\xff\x6b\x31\x04\xb1\xe8\x66\x79\x56\x1c\x6c\x7a\xbb\x7e\x34\x57\xd0\x69\x0b\xfe\x63\xac\x31\xc8\x9d\xdf\xc4\x82\xd8\x30\xcc\x28\xe7\xa5\x7a\xe9\x59\x1d\x58\x90\x08\xcb\xdd\xde\x7a\x9f\xd0\x7e\xef\x42\x67\x93\xe2\x18\x0b\x12\x08\x85\xf7\xd4\xde\x3e\xed\x8e\xeb\x95\x06\xff\x31\x9e\x02\x2c\xb4\x1c\xde\xb6\xab\xc2\x62\x59\xe7\xb4\x02\x59\xc0\x52\x82\xb9\x9c\x2d\x54\xa7\x0e\x91\xc7\x02\x26\x05\x74\xf5\x92\x53\xfb\x08\xdd\xd7\xe6\xa0\xbd\x30\xda\xd3\xda\x52\xbe\x84\x89\x3f\x98\x86\x0a\x33\x8c\xeb\x87\xf5\x6e\xbd\xb8\xdb\x6f\x77\x8b\xdb\x55\x77\x90\x71\x4c\x44\x7d\x2b\x32\x55\x56\xc5\x95\x43\x51\x4d\xa6\x6f\xca\x0c\x6e\x51\x79\x56\xbc\xcc\x39\x5e\x2c\x48\x39\x60\x4d\x5e\x83\x2a\xb5\x8d\x37\xad\x9e\x64\xa1\xd7\xf5\x94\x35\x84\x05\xa9\x62\x92\x7b\xd5\xce\x6d\x03\x27\xe6\x6f\x48\x44\x76\xe3\xd9\x3c\xde\xad\xf6\x0f\xab\xd5\xf5\xfe\xee\x71\xf9\x75\xff\xed\xa9\x1b\x40\x0c\xea\xb6\x20\xc9\xfc\x17\xd1\xbd\x1e\x91\x46\xc8\x8f\x7b\x8b\x9b\x63\x0d\xc5\x65\x1f\x24\x0b\x84\xb6\x75\xd6\x0c\xf5\x45\x9b\xf7\x7d\xbb\xf1\x77\x60\x23\x16\x48\xa9\x2c\x54\xee\x98\x35\x1b\xcc\x56\x5f\xb8\xf0\xe3\xe7\x56\x2a\x41\x48\x47\x7b\x1d\x78\x12\x75\xfd\x56\x76\x7d\x19\x7e\x88\x16\x88\x44\x79\x16\xf5\xf3\x95\x50\x2f\x0d\xd4\xcd\x53\xeb\x9b\x67\x5e\xa1\xcf\xb2\x40\xd1\xb8\x9b\xab\x0a\x0c\x56\x05\x7f\x88\x5c\x1c\x45\x0f\x71\x60\x81\x0e\x29\x46\xb5\xa2\xa8\xdf\xb0\xc0\x32\x22\xd7\xed\xdd\x72\x16\x68\xcd\xa5\x15\x46\x2d\xd5\xb9\x82\x19\x61\x0e\x16\x00\xb7\xc9\x0f\x5b\x07\xc1\xf2\x44\xc7\xa4\xc7\x02\x30\xa9\x17\x36\xf5\xb3\x8a\x90\xf1\xb3\x99\xc4\x26\x5e\xe4\xf9\x7d\xd9\x86\xb2\xe3\xb7\x6d\x84\x41\xef\x76\x55\xe8\xd6\xef\x6d\xe7\xd5\x64\x00\x50\xcc\xff\x5a\xbe\x1a\x98\xa0\x22\xc6\xaf\x3a\x0c\xa2\x14\x42\xdf\x3c\x5c\xbc\xb8\x67\xaf\xe7\x20\xc9\xed\x60\x8d\xb5\xe3\x7d\xfb\x85\x4f\x03\x8a\x07\x16\x06\xc2\xfa\x73\x47\xe4\xc8\x3b\xe5\x42\xc1\x5e\xf5\xb2\x2b\x6e\x54\x18\x04\xd8\x0a\x8f\x18\xf8\x6d\x76\xf0\x71\xcb\x40\x16\x6f\xfc\x8b\x51\x20\x11\x2a\x82\x6b\xc4\x15\x5f\xcf\x03\xc0\xd7\xd0\x79\x6d\x47\x6b\xe6\xad\xe2\x2c\xc5\xef\xef\x19\xe7\x30\x32\x04\xbf\x32\x42\x55\xbd\x22\x04\x0b\x09\x31\x89\x4b\x0c\xba\x7b\xd9\x8e\x3f\x7d\x48\x04\xc5\x74\xd6\xb1\x44\x1c\x43\x69\xbb\x51\xe6\x7f\x84\x08\xe1\xf5\x84\x56\x85\xee\x55\x72\x06\x23\x64\x88\xfd\x8d\x59\xbd\x15\x47\xd8\x66\x87\xe2\x8f\xcb\x6a\x51\x3b\x4c\x77\x2d\xcc\xf8\xf6\xa1\xda\x74\x40\x7a\x16\xc6\x44\x61\xf3\x6d\x51\x36\x78\x19\x00\x3d\x13\x2d\xb0\x30\x8e\x23\xda\x73\x18\xfb\xb6\xda\x7d\x59\xe4\xef\xfb\x6b\xf8\xb0\x98\x3b\xe9\x93\xfa\xf4\x30\x1f\xf8\x57\x2c\x4c\x08\x0f\xad\x3c\xd5\x1b\x54\x0e\x59\x31\x7e\x01\x49\x62\x65\x9d\x45\x9e\x5b\xa9\xc7\x3e\x02\x64\x21\x4d\x23\x69\x29\x40\x51\x11\xc5\x0b\xd5\xb3\x90\x4a\x2b\xbd\x2b\x74\x79\x6a\x66\x38\x5c\x58\xc8\x22\x16\x62\xb3\x74\x79\xae\x61\xd2\x57\xc9\x42\xc6\x23\x62\x21\x35\xd7\x70\xaa\x00\xdb\xcb\xba\x63\x90\x62\x4b\xd9\x6b\x99\xe9\xc7\x6a\x03\xa8\x39\x3c\xbe\x69\x2e\x23\xd4\x56\xbd\xc9\xcb\xb2\x13\x43\x1b\x4f\x13\x2e\x23\xec\xf9\xf9\xeb\x5c\x5c\xa2\xec\x58\xc8\xb5\x8d\x48\xf6\x35\x34\x37\x15\xc0\xdf\xa0\xa7\xa2\xd1\xf3\x53\x2a\x8d\x14\xee\x3b\x88\x89\xb0\xed\x14\x3f\x44\xbd\x81\x8e\x5d\xba\x1d\x02\x5e\xc5\x1f\x65\xc8\xc7\xbf\x9c\x92\x18\xe5\x16\x6a\x61\x00\x83\xde\xc9\xb3\x09\x26\xb0\x29\xa3\x77\x09\xf5\xb8\xc1\xf5\x1a\xea\x26\x2b\xd0\x05\xab\xef\x7c\xf4\xc8\x42\xa1\x39\xb6\xb5\xbf\xc2\x73\x05\xf5\xa9\x2c\x2e\xb9\x7d\xba\x24\x88\x77\x5d\x59\x28\x13\x4e\xa4\xc7\x79\x78\xab\xec\x8f\x89\x30\x08\xba\xea\xe7\x47\x9a\xda\xe3\xa7\x93\x00\x88\x90\x7f\xbc\xb7\x42\x5f\xc8\xa7\xf2\xc1\x50\xc3\xa5\xe8\x9b\x75\x32\xa8\x1e\xcd\x80\x27\x98\x85\x2a\x90\x68\xe4\x91\x8d\x7d\x20\xac\xd9\x3a\x24\x06\x29\xb9\x64\x2e\xd4\xcb\x1d\xc2\xd7\x8f\x27\x51\x74\x2c\x70\x2c\x54\x3c\xc5\x80\xea\x0d\xe0\xe5\xa6\x3c\x57\x03\xfd\x00\x16\x2a\x19\xa0\x8f\x29\xcf\x59\xae\x77\xd9\x6c\x93\xb6\x57\xca\xeb\x4e\xb1\xb2\x02\x9e\xd0\xe4\x13\x90\x0a\x0b\xb5\x50\x4a\xfa\x4c\xa7\x7f\x6f\xfe\x98\x96\x8e\xad\x1d\xd1\x2e\x13\xff\x38\x84\x98\x6b\x17\x7f\x3e\x9e\x1b\x55\x1e\x61\xda\xb8\xed\xf7\xda\x10\x38\x43\x1e\xc4\xef\xab\xed\x6e\xfd\x70\xbb\xbf\xfe\xb6\x59\xec\xd6\x8f\x0f\xfb\xe8\xaf\xee\x6a\x60\x90\x30\x48\xb4\x0b\xff\xc6\x49\x76\x3c\x16\x70\xed\xf3\x00\x2c\x34\x3e\x74\xd3\xfa\xf1\x04\x85\x4d\xb8\x8f\x56\xb2\x21\x61\xe8\x08\x5a\x6e\x16\x57\x0b\xc7\xa2\x68\xe7\xe2\x0c\xc9\x0a\x0b\x4d\x1c\x25\xa4\x43\xe2\xcb\xf6\xbb\x7e\x2f\x9b\x49\x7d\x98\x45\x21\xb5\x5c\xc6\x1d\x30\x67\x5f\x9f\x40\x65\x22\xdf\x3f\x97\x55\x7d\x49\x49\x3f\xdb\xa1\xce\xa2\x50\x92\xd8\x73\x98\x88\xa6\xc9\x67\x4b\x48\xed\x30\xbb\x63\x63\xf6\xf1\x3b\x92\xb7\xcc\x73\xd2\x7e\xda\x71\x31\x91\xe3\x66\x51\xa8\x0c\x58\xb6\x0d\x6c\xda\x19\x7f\xec\x28\x34\x01\xb6\x4e\xa2\x94\xb2\x4f\xeb\xb9\x63\x11\x89\xf0\x58\xdf\xee\x7d\xef\xb9\x4f\xfc\x08\x08\x43\x9b\xa0\x76\xb1\xd9\x75\xf6\xfa\x39\xfb\x47\x7b\x8e\xe5\x8e\x6f\x5d\xaf\x3f\xfd\x85\x08\x17\xe8\x53\x00\x16\x02\x07\xf6\xc3\x0f\x88\x19\xc3\x8c\x1a\x76\x54\x17\x6b\x55\x76\x07\x38\xc5\xca\xd0\xb7\x02\x7e\x9e\x90\x31\xa2\x3b\x22\x94\xf4\xc4\x77\xd7\x99\x31\x99\x3a\xe7\x9e\x52\x9c\x45\x09\xd7\x36\x2d\x86\x94\x42\x1d\x78\xf1\x03\xc2\x1c\x16\x51\x15\x79\x46\x1b\xef\xb1\x45\xb1\xbf\x18\xd5\x80\x81\xce\x11\x5b\xae\x17\x55\x35\xa9\x50\xb2\x88\xb1\x30\x4c\x50\x54\xb6\x10\x5d\x8f\xc9\x47\x59\x07\x16\xb1\x94\xa3\x71\x38\x89\x77\x9f\x6d\xfe\xa0\x84\xe4\x4e\xe0\x01\xc1\xeb\x7f\x2b\xba\x16\xd2\xdd\x05\x33\xbb\x1f\x4b\x45\x14\x76\xf8\xd2\x11\xfb\xcb\x78\x60\x1a\xda\xee\x37\x0d\xb5\xaa\x32\x44\xfe\x7c\x11\xf5\xb3\xcd\xe9\x4d\x9f\x30\x15\x96\x31\xc6\xcf\x16\x74\x79\xcb\xf9\xa9\x2e\xda\xa9\x85\x5c\xf7\x50\xed\x71\x61\x85\xfe\x55\x8a\xd8\xb6\x8e\x5f\xdf\x8a\x23\x5c\x4a\xf6\x79\xdb\x12\xc9\x24\x64\x2e\xc7\x78\x5b\x95\xe7\x93\xb7\xab\x91\x4c\x00\x09\x49\x4f\x50\xb5\x91\xca\xc0\x09\x8a\x24\xd8\x72\xfb\x41\x60\x19\x79\xf9\xe0\x0f\xa8\x30\xc4\x46\xf2\xbb\xf2\xf0\x59\x55\x91\x45\x8a\x25\xac\xe7\xb9\xde\x63\xcc\x7a\x81\xcc\x98\xcc\x1c\x08\x13\x46\x5d\x17\xa2\x3d\xf0\x91\x96\x31\x8b\x20\x61\xca\xb3\x39\x40\x6b\xf8\x73\x7f\x8b\x40\x2d\x43\xfc\x69\x8f\x7c\x12\x66\x42\x22\x31\xb9\x4f\xe0\x12\x43\x3d\x64\x8c\xdf\x93\xee\x22\x29\xf8\x0e\x85\xd5\x01\x2a\x38\xcc\x7f\x1e\x13\x58\xe0\x86\x15\x9e\xde\x7f\xc9\x9a\xc7\x0a\x79\x43\x2f\xf1\xfd\x8c\x04\xc4\xea\x7c\x79\x0c\x65\x3d\x52\xf8\x62\x24\x88\x2d\x75\xad\x03\xed\x7a\xa6\x56\xce\xfd\x71\x29\x31\x86\xab\xd0\x4f\xc9\x7a\xfe\x5a\x46\x02\x6d\xd0\x43\xfa\x01\x6d\x40\x31\xc8\x44\x33\x12\xaa\x24\xb0\x34\xf3\x18\x1e\x8e\xfd\xfc\xd9\x25\x42\x42\x08\xa3\x9e\x99\xbe\xce\x07\x68\x10\x46\xa2\x20\x32\xed\x0b\xfb\xcf\xc9\xbd\x58\x71\x40\x4d\xb6\x8e\x50\x84\x91\x48\x47\x41\xd8\x03\x00\x07\x49\x59\x46\x48\x20\x0d\x1d\x37\x4f\xcf\xb4\xc2\x33\x12\x13\x96\x78\x10\x00\x20\x42\x72\xdd\xc0\xd1\x01\x53\x26\x43\x19\x47\x96\x24\x51\xbf\x17\xea\x02\xda\x36\xff\x88\xb1\x49\x31\x21\xe4\xe0\x0d\x9f\x2a\x33\x30\x42\x93\x14\x3b\xdf\x36\xf0\x73\x9c\x0d\x1d\xdf\x08\x85\x10\x8b\x2c\xf2\xf0\x73\xa8\xa5\xc5\x08\x63\x16\xcd\x7d\x55\x9e\xab\x02\x10\xf5\xff\x49\x55\x81\x11\x26\x99\xa2\x03\x54\xea\x2e\x53\x2f\x30\x51\x6c\x67\x84\x87\x09\xf2\x7e\xe3\x5e\x73\x1c\x71\x58\x4c\x88\x70\x18\xe1\x89\xb1\xa4\x8e\x55\x59\x9a\xb5\x9e\xec\xdf\x84\x0b\x4e\x68\x37\xf5\x56\x58\x91\xf3\x6b\x70\xac\x80\x36\x9c\xd0\x69\x12\x26\x61\xaf\x97\x29\x7e\xfa\xd2\xb6\xe7\x38\x98\xfc\x4a\xca\xb5\x8e\x87\x02\x0b\x03\xa4\x2d\x23\x69\x6a\x79\xf9\x9e\x45\xed\xcb\x4c\x93\x07\x4e\x53\x26\x7b\xf4\xe7\x95\xa8\x9d\xe0\xdb\xa7\xdb\x28\x49\x35\xf1\x3e\xcf\x80\xee\xd3\xf6\x99\xce\x3c\x94\x88\x34\x26\x53\x74\x56\xa3\x61\x9c\x4d\xb4\x5d\x94\x44\x19\x11\x02\x7c\x29\x67\xef\xe0\xcf\xfe\xc9\x64\x68\x79\x4c\x3d\xfb\xf9\x7d\x56\x2c\x45\x9e\x4b\xa1\x5e\x6e\x45\xdd\x8d\x22\x81\xff\x44\xff\x01\xd5\xd4\xa3\x65\xa3\x22\x26\xd5\x88\x8a\x7c\xfc\x90\x2a\x12\x68\xaf\x7e\x54\x59\x03\x57\xd9\xaf\xc8\x8a\x46\xb3\x4d\xa5\x04\xf1\x5d\x36\x11\x78\x75\xae\x8a\xab\xb2\xb5\x12\x8f\x27\xa7\x48\x61\x31\xe3\x9f\xbf\x65\xdd\xde\xbf\xab\xf8\x60\x93\x47\xef\xc0\x13\x0d\x06\xe9\x14\x57\xbb\xe5\x17\xf7\x02\xfd\x21\x10\x84\xba\x12\xc8\x43\xe6\x72\xa2\xa3\x9b\x03\x65\x95\x14\x8e\x19\x0a\x63\xb8\x94\x55\xd7\x60\xc9\x88\x09\x54\x18\xba\x2c\xf4\x6d\x5e\xca\x9b\xb2\x40\x18\xcb\xe4\x05\x99\x28\x00\xe2\x71\xc7\xe2\x38\x7c\xb7\x46\x01\xfa\x7d\xcb\xbb\x07\x2b\x5d\x3a\xe8\x5a\x60\x71\xc0\xac\x24\x05\x46\x55\xe3\x09\x19\x07\x52\xa5\x0e\x77\x78\x57\x16\x87\x06\xaa\xe3\x7d\x56\x34\x1f\xd9\x91\x38\x0c\x02\x4c\x3d\x58\x80\x8a\x44\x17\xb7\x1e\x44\x33\x71\x18\x5a\x1e\xb4\x4e\xc5\x6b\x51\x34\x83\xc4\xe5\xf4\x72\x8c\x62\x80\x56\xe6\x7a\x15\x77\x97\xd0\x2c\xb0\xcd\xd1\x4d\x95\xc1\x2b\x60\x3b\x66\xdd\x1d\x05\xee\xd1\x57\xfb\x93\x6f\x0b\x99\xcd\x5e\xc5\xa1\x09\x8c\x15\xd7\x7d\xbf\x5a\xdf\xdd\xf9\x2b\x44\x81\xb0\xcf\xdc\xee\x26\x7f\x8c\x28\x61\xe7\x89\x0f\x86\xee\x5a\x1c\x11\x0b\x1c\x30\x28\xf5\xb6\xb1\x11\x58\xf7\xae\x23\x62\x1c\xf1\x79\xd5\xee\x53\x23\xf8\x00\x8b\x23\x4a\x31\xcd\xf4\x45\x14\x7f\x8d\x54\xd5\x59\x1c\x49\xab\x5f\xf0\xfd\xdb\x93\xc3\x79\x39\xaa\x83\xdd\x7a\xb5\xf1\x1e\x53\x4c\x82\x14\x57\xd8\xf0\x8d\xfe\x9f\xca\x10\x48\xcf\x8b\x65\xf4\x2a\xcb\xf3\xac\x2c\xb2\x9f\xf3\xae\x4c\x4c\x42\x93\xf4\x7a\xe1\xab\xdd\x9f\xb3\xfe\x43\x4c\x92\x08\xbd\x8f\x9b\x2c\x87\x2d\x54\xaf\x50\x59\xb7\xb7\xea\x6e\x99\x05\xd8\x3e\xfc\xe9\xb6\x16\xf3\x61\xd2\x35\x8e\xe3\x08\xf1\x80\xde\xbf\x7c\x80\x9f\xd9\xf9\x38\xfd\xe9\x38\x51\x5e\xf5\xe8\x49\xd4\xf5\xa9\xac\x9a\xf5\x07\x2e\x7d\x1c\xd3\xc4\x83\x0b\xaa\x0e\xee\xc1\xe2\x24\xb5\x6b\xea\xae\x3c\xf4\xaa\x49\x1f\x4c\xfd\x44\x09\x64\x02\xf2\xf1\xcf\xd5\x80\x41\x7f\x3e\xff\x10\x27\x5a\x60\x20\x81\x0a\x22\xde\x59\xb0\x6d\x73\xe3\xc5\x1d\xd3\x18\xb0\x25\xad\x7e\x2e\xdf\x2c\x00\xf7\x07\x76\xf5\x77\xd3\x9e\x0a\xcb\x0b\xdd\x0e\xb8\xd4\x9f\x9a\xdc\x2a\x95\x11\x0a\xa9\x3e\x6d\x97\xa3\x49\x46\x15\x37\x9e\x24\xc3\xba\xb3\x5b\x54\x66\x9a\xbc\x58\x06\x06\xbd\xd8\x85\xcc\xd0\xdb\x9a\x3a\xe4\x31\x33\x21\xb2\xe6\xd9\xb2\x76\x6b\x8f\xaa\x65\x99\xb7\xab\xbd\x12\x79\x56\x0f\xa3\xb9\x98\x07\x04\x41\xab\xfb\x0c\xf5\xda\x2c\xfd\xe8\x18\xca\x3d\x0a\xa1\x63\x9e\xc6\x71\x67\xae\x86\x0a\x2c\xe3\x67\xe4\x32\xc1\x48\xfb\x09\xa0\xb2\xbe\x4a\x3d\x95\x93\x67\xb1\x88\xe2\xd8\x29\xca\xb6\xa1\xdf\x02\xd3\xfd\x48\x0a\x31\xd3\x22\xe9\xcf\xa1\x69\xa0\x7c\x51\x65\x9f\x15\xfb\x37\x8f\x9b\x63\xb1\xe0\x11\x73\x3b\xf1\x7d\x59\xd4\x0d\x54\xc8\x9c\x70\xc1\x02\x30\x99\x07\x22\xa5\xe0\xb2\x02\x5f\x6e\x77\x93\xb7\x2d\x24\xc4\xc4\x13\x52\xda\x2c\xc0\xd0\xab\x88\x65\x08\xe8\x8b\xe2\xd4\x75\x25\xd5\x41\x5a\x34\x96\x89\xc0\x9c\x69\x79\x82\x22\x59\x3e\xf7\x29\xb3\x58\x45\x89\xa3\x08\xd0\x5b\x61\x20\xff\xc8\x0a\x2b\x9e\x60\x2d\x28\x6b\x7f\x38\xd3\xbf\x5c\x09\x4a\x58\x06\x8d\x73\x81\x58\xa4\x41\x63\xc5\xe4\xb9\x15\x30\x5c\x75\xbb\xd5\x76\x87\xff\x7f\x99\xfb\x8c\x21\x0d\x30\x83\xae\x2e\x7b\x98\x2f\xef\xd4\xa8\x00\xf3\xfd\x87\x33\x32\x82\x4c\x0e\x6a\x81\x35\xdf\x7d\x9f\xac\x74\xd4\x99\xf5\x25\x09\x06\x4b\x02\x6a\x9f\x62\x7f\xb2\xc5\xf0\xed\x2f\x4b\xd5\x49\xc0\x41\xb1\x3e\x9a\x46\x72\xf8\x4f\xf3\x41\x49\x90\x12\x8e\xc5\xed\xe7\xcc\x34\x4a\xd4\xcf\xc3\xe9\x99\x04\x8a\xa0\xd1\xf7\xc8\xb5\xd5\x90\x9d\xb9\x3d\x2c\x59\xea\xb1\x35\x87\xf6\xcb\x5e\x65\x5a\x4f\x57\x42\x12\x68\x83\x9d\x46\xb6\x80\x3e\xa5\x58\x74\x83\x42\xaa\xb1\x2c\xbc\x5c\xef\xfe\xda\xaf\x1f\x96\x9b\xd5\x62\xbb\xda\x6f\x16\x3b\x5f\xc3\x4c\x42\x08\x90\xa9\x17\xdb\x00\xfb\xfa\x55\x12\xb1\x18\xd1\x8d\x08\x1c\xb0\x0d\x7a\x96\x27\x66\xea\xdd\x26\x91\x48\x53\x2b\xe6\x5a\x80\x53\x19\xa9\xca\x63\xf9\xcb\xfe\x7d\x96\x44\xc6\x56\x46\xd1\xa0\x7c\xb3\x3d\x04\x3e\xb9\x93\x10\x4a\x30\xef\x7f\xb5\xba\x5d\x3f\xec\x77\xeb\xfb\xee\x96\xe3\xc8\x20\xb3\xe4\xed\x72\x64\xe7\x92\x76\x9e\x38\xe6\x4b\x4c\x18\x7c\x6e\x2e\x93\x24\x8c\x11\x75\xeb\x45\x4f\x4f\xb6\xa6\xf8\x09\xe6\x93\x25\x49\xaa\x91\x82\xd9\x1d\xdc\x95\xd8\xb7\x33\xf9\x32\x8c\x00\x8f\x06\xfc\x58\xdb\xe6\xac\xa7\x10\x5b\x96\xb0\x98\x3b\xea\x9a\xe3\xf1\x5c\x64\xcd\xfb\x28\xf4\x4a\x18\x05\x6e\x50\x6d\xe3\x6a\xf4\x90\x8c\x02\xc6\x22\x26\x2b\x84\xf5\xc9\x9d\x5a\xc5\xbc\x11\x4a\x18\x8f\x2c\xf9\x49\x6b\x47\x06\xef\x64\x3c\x8a\x53\x85\xe6\xda\xaa\xff\x7e\xdb\xae\x36\xfb\xe5\xb7\x9d\xff\x4d\x2e\x39\x26\x01\xc5\xb9\xc6\x17\x3b\x55\xaf\x61\x49\x1a\x44\xd8\x4a\x9c\xbd\x35\xe6\x5c\xe8\x21\x2b\x2d\x4b\xd2\x50\x93\x8e\x07\xf2\xf6\xdc\x7b\xd1\x49\x4a\x0c\x1a\xb9\xed\xd7\x3b\x5f\xbe\x74\x47\x84\x34\x51\xec\x95\xf0\x7f\xf1\x21\xa5\x8a\x8d\xf4\x78\xa9\xd6\x8d\x2d\x44\xa1\x00\xb3\xfe\x7d\x7c\x94\x48\x45\x91\xf4\xfc\x5b\x91\xbd\xb6\xf1\xd1\xf6\x39\x83\x7c\x9e\x0a\xc6\x9d\xa1\x53\x1d\x59\x83\x97\x97\xea\x65\x4c\x00\xc8\x12\xe0\x3a\x49\x3c\xf9\xa7\xca\x4e\x19\x14\xcd\x16\xe7\xca\x28\x10\x48\x8c\x64\x58\x41\x58\x55\x95\xef\x1a\xf4\x47\x54\x84\xb8\x19\x53\x01\x0c\xa8\xdc\x18\x0d\x02\xfb\x35\x0e\x1d\xf1\xd8\x06\x5a\x3f\xa7\x67\x38\xf1\x03\x23\x82\x25\x30\x0d\xa7\xbc\x7c\x1f\xfd\x2e\x0d\xe3\x18\xbb\x67\xef\x17\x7f\xee\x97\x9b\xc7\x1f\xd7\xfb\x9b\x6f\x0f\xd7\xeb\x87\xdb\xfd\x6a\xf7\xc5\x5f\x20\x14\xb6\x1b\xb7\xc2\x0a\xd7\x0d\xc0\xd2\x3b\xf0\xfa\x26\x17\x87\xc1\xfb\xa3\x51\x12\x33\x3d\xa0\x2d\x77\xe4\x41\xc3\x68\x8f\x46\x2a\xc6\xbe\x9d\x23\x72\x8c\x8e\x27\x3c\x8d\xb4\x65\xfa\xea\x62\x84\x8d\x23\x41\x18\xa1\xb9\xc6\xdf\x96\x46\xae\x8d\x19\xd9\xc1\xab\x0a\xe9\x34\xc7\x97\x25\x71\x80\xe9\x44\x28\xf4\xa9\x82\xb5\x2a\x87\x37\x4d\x20\x11\x2e\xf2\xee\x60\x00\x34\x8e\xed\x76\xde\xfb\x43\x9f\x52\xbd\x30\x1a\xeb\x18\x1b\x3b\xbc\x63\xda\xe9\xfd\x0c\x57\x26\x8d\x01\x90\x20\xe1\xfb\xfa\xc7\xe3\x3f\xfd\x1f\x13\x6a\x28\xf4\xdb\x38\x46\xc8\xdd\x31\x0d\xc6\x35\xd3\x5e\x41\x01\x26\x53\x99\xa8\x26\x1c\x03\xde\x92\x53\x4a\xad\x30\xb0\xf7\x43\x6d\xd9\xee\xd3\x64\x11\xa5\x29\xc1\xc4\x5c\xbb\x24\x3d\x86\xe0\x83\x91\x0a\x82\xc8\x51\xf1\x09\xd5\x09\xe7\xec\xca\x8b\x34\xe6\xe4\xd5\xf0\xc0\x3a\x11\x87\x5c\xf8\xc7\xe2\x22\x56\xba\x6f\x0a\xdb\xbe\x0d\xb8\x93\xbb\x21\x2a\x08\xbd\xe1\xb7\xe0\x00\x78\xf3\xe7\x8b\x58\xe2\x72\xae\x20\x17\xef\x1b\x50\x90\xbd\xba\x8e\x59\x71\x89\xa5\x9e\x01\x6f\x50\xc1\x9c\x82\x4d\xd6\xd4\xbd\xee\x03\xa3\x92\x13\x6e\xfb\xf8\xf3\x97\xad\xa7\xac\xe7\xff\xfa\xb7\x3d\xd9\x83\x9e\x48\x34\xf8\x87\x3b\x53\x85\x52\x38\xcd\x70\x05\x57\xf0\x61\x4e\xe1\x23\x84\xe5\x3f\x46\x9d\x11\xfe\xa2\x94\x6b\x2b\x43\x91\xab\x5d\xa9\x3e\x37\x72\x54\xa5\xb6\x6c\x0f\xcd\xf3\xf7\xde\xd9\xa3\x3a\xb0\xe9\x46\x93\x89\xa6\xf5\xea\x3f\xf7\xa4\xa8\x06\x82\x8c\xc5\xb6\x14\x39\x93\xc2\xa3\xda\xc4\x9e\xd9\x67\x51\x1d\xdf\x2f\x05\x40\x19\x05\x66\x48\xd4\x77\x09\xec\xca\x27\x64\xf7\x5c\x4f\xbf\xb2\x09\x34\x6e\x1b\xcb\x47\xef\x03\xfa\x03\x3c\x40\xf5\x0c\x07\x34\x5f\x8a\x53\x1b\x20\x8c\x4d\xf1\xf0\xfe\xbb\xba\xfe\x67\xff\xb1\xd7\x66\x51\xc8\x10\xfd\xf3\x54\x95\xf5\x69\xa4\x61\xc9\x58\x94\xc4\x5e\xfd\xba\xeb\x46\xb8\x9f\x55\x0f\x63\x2c\x12\x06\xb7\x67\x59\x76\xe6\x96\x11\x2a\x90\x49\xe8\x2d\x2b\x74\xf9\xf6\x78\x1a\x01\x15\x58\x12\x33\x34\x55\x47\xf1\xb3\xfd\x33\x82\x28\x5f\x45\xfe\xe5\xca\x0f\xa0\x81\x0c\xdd\xab\xcd\xe1\x15\xf2\xf1\xeb\x62\x94\x50\x64\xe5\x7b\x12\xe7\xda\x02\x02\x17\xfa\x98\x15\x03\x73\xc6\x28\x8f\xb1\x8b\x7d\x99\x67\x27\x2f\xb1\xfe\x49\x3e\x96\x51\xa5\x50\xaa\xe0\x66\xb3\x5a\x5d\x3f\xde\x0f\xb0\x50\x8c\x25\x41\xe8\xc9\x52\x73\xf1\x0a\x73\x55\x54\xc6\xc3\x00\xdd\x9d\xa7\x0e\xb5\xc8\x78\x1c\x59\xe8\x8b\xf7\x3b\xec\x0e\xd5\x4c\xdd\x42\xc6\x69\x84\x0c\x05\x57\x59\x23\x8a\xfa\x5c\x76\x17\x10\x31\x96\x8c\x75\xf9\xd4\x91\xeb\xce\x59\xa6\x11\xf8\x85\xa5\x9c\x23\x44\xce\x46\x4a\x2e\x4f\x39\xdf\xe5\xc6\x98\x08\xac\x98\xeb\xcf\x29\xa9\x26\x63\x22\xa4\x60\xb3\x4c\xf5\xf9\xd8\x35\xed\x74\x5f\x58\x40\x2a\x4d\x27\x7b\x2d\xfe\xfe\xbc\x26\xc7\xa4\xe6\xd8\x95\x28\x30\x7f\x8c\x9f\x6b\x57\x76\x4f\x2a\xb5\x4d\x1f\xca\xac\xf8\xcc\xcf\x60\x2a\xb0\x5a\x95\x6d\x28\xf7\x00\x6f\x57\xf0\x8b\x78\x88\x69\xe7\x37\xd7\xcf\x55\x76\x3c\xbd\x57\xe2\xe8\x69\x00\x19\x83\x76\xe7\x1f\xa4\xe0\x3d\xf4\x6a\x31\x4c\x1d\x32\x30\xa9\xe4\x1d\xc4\x09\xea\xba\x93\x4a\x1b\xdf\x9a\x49\xac\xce\x4d\x47\x1d\x96\x15\xe7\x7a\x59\x1e\xb3\xba\x9e\x63\x1b\x1a\xdf\xa6\x81\x18\x71\x04\x9e\x30\x3e\xab\xb3\xe2\x30\x4a\x52\xf2\x50\x33\x64\xd7\x1c\xe6\x0d\x3b\xd3\xdc\x5d\x89\x87\x26\x65\x72\x44\xaa\xb5\xac\x84\x1c\x02\x35\x78\x94\x28\x64\x50\x7b\xaa\xce\x20\x45\x9e\x75\x24\x91\x8c\x47\xc6\x32\x47\x1d\x50\x73\xa0\x12\x13\x14\x89\x1b\x45\xb4\x05\x24\x9f\xce\x79\x3e\x93\xab\xe1\xc4\x48\x04\x13\x61\x5b\xe0\x3c\x05\x31\xe3\x31\x8d\xb9\x23\xbd\x5f\x6b\xac\x12\xaf\x1b\x38\x7e\x10\x53\xcc\xb1\xce\x32\x1e\x33\x6d\x89\xb9\x2d\x29\x71\x51\x94\xbf\x60\x52\x64\x3c\x61\x4e\xea\x1a\x55\x3a\xa7\xa9\x68\x4e\x05\xb5\xb2\x77\xae\xaf\xc7\x89\xd3\xfe\x2e\xe8\xc0\x5f\x05\x24\x76\x8c\xdc\x95\x87\xa7\x0a\x4e\xa2\x02\x2f\x6f\xf2\x01\x4d\xf2\xec\x64\xe7\x8c\x02\x9a\x14\x54\x14\x1a\x7e\x40\xc6\x8d\x70\x0d\xc5\xa8\x09\x9a\x35\xef\xc3\x2c\x94\x1b\xc5\xb9\x08\x3a\x15\xb7\xed\xf9\x04\x95\x55\xf2\x58\x1d\x0e\x7e\x11\xf3\x34\xb4\x04\x5f\xa6\xac\x9a\xe7\x1f\x00\x2f\x6d\x54\xb0\x5e\x3e\xa2\x9f\xb9\xaa\x9b\xec\xd8\x57\x8c\x79\xca\x62\xef\x6b\xef\x91\x56\x4f\x8b\x46\xec\x47\xa5\x43\x9e\xf2\x48\x27\x5d\x0f\x10\x5a\xf5\x65\x09\xa6\x75\xd8\xba\x3e\xb5\x68\xf2\xba\x52\xb0\x64\xcb\xd6\x34\xf4\xdc\x82\xe3\x4f\x23\x08\x41\x58\xe6\xb5\x65\x69\xb7\x05\x8b\x59\x5b\xd3\x7a\x55\x88\x82\xcf\x54\x39\x02\x22\x71\xc1\x35\xf6\x5b\x7c\x15\x95\x16\x45\x57\xcd\xe4\x42\x33\xe6\xca\xe4\xae\xdc\xd9\x1d\x31\x91\x61\xc3\xee\x4e\xb8\x7a\xc7\xce\xa8\x0b\x3f\x78\x7c\x0b\x32\x0a\x30\x47\xe6\xad\x81\x90\x39\x92\x57\x0d\x11\xa2\x5c\xd2\x10\x1b\x04\xd1\xb7\xbb\xcb\x6a\x84\x17\x76\x07\x75\x40\x03\xd7\x7f\x3c\x48\x38\xb9\xa3\x2a\x08\x09\x77\x02\xf9\xd8\x6e\xb4\xf7\xc1\xc6\x7e\x58\x6d\xe0\x8a\x08\xee\x72\x67\x4f\x15\xe8\x6c\xa8\x2c\xcb\xb8\xd2\x86\x7a\x56\x18\x2f\x60\xf7\x01\x9d\xab\xf7\x1a\xb8\x66\x56\x33\x66\xf9\xb8\x7e\x58\x2d\x47\xde\x0a\xd7\x3c\x46\xce\x9b\xa7\xdd\x72\xfc\x77\x45\x5d\x03\x62\xb3\x97\xe7\xf7\x65\x2f\x9e\xfe\x01\x49\x88\x3b\x0f\x42\x92\xba\x52\x86\xcf\x79\x7c\x26\x0e\xc8\xb8\x21\x60\x79\xf8\xdb\x77\x00\xfd\xb4\x34\xca\x46\x78\x59\xa1\xe1\x27\xe8\xab\xf7\x59\x7a\x6a\x3b\x38\x0d\x49\x48\x9d\xd6\xba\x63\xee\x19\xed\x08\x69\x28\x35\x42\x46\x16\xc5\x01\x86\xed\xc7\x2c\x0d\x95\xb2\xba\x04\x8f\xab\x39\x87\xe3\x32\xaf\x93\x86\x10\xe2\x16\x7f\xca\x05\xf6\xca\xc3\x63\x25\xd4\xb4\x19\x97\xa5\x51\x10\x61\x4b\x42\x93\x59\x24\xeb\x24\x8f\x92\x92\x98\x20\x66\x3f\xab\xb7\x7f\x3d\x20\xbf\x88\x3f\x93\xa4\x06\xc9\x24\x4a\xad\x6b\xcb\x5d\x35\x6b\xb3\xd2\x38\x20\x18\xde\x22\xcb\xda\xb9\x2a\x84\x02\xc4\xb5\x8f\xab\xa1\x5d\xbf\x03\x96\x45\xb1\xa6\x7a\x59\x27\x4d\xe3\x50\x04\xa9\x57\xc1\xc9\xe1\x20\x74\x79\x0d\xab\x5a\x9d\x21\x17\x17\xc2\x26\x17\x05\xa4\x34\x4e\xe2\x14\xfc\xe9\x75\x76\x28\x04\x82\x2a\xdb\xb0\x7e\xe0\xe1\xa5\x31\xe5\xe8\xb1\x7d\xdb\xdc\xf5\x88\x62\x7f\x0c\x8c\x85\xb3\xba\x4c\xc4\xb2\xf4\x14\xf0\x93\x71\x26\x41\xcf\xab\x5d\x64\x8b\xa2\x38\x8b\xdc\x2e\xb5\xc9\xb0\x84\xf2\xd8\x17\x7e\x51\xce\x67\x62\x6b\xd3\x44\x6b\xcc\xc1\x88\x57\x91\xe5\x9d\x98\xbe\xdf\x3d\x47\xb5\x32\x77\x06\x25\x02\x53\x6a\x3b\x21\xfd\xee\x9b\x52\x1e\xf6\x62\x82\x1e\x8b\x77\x63\x75\xf4\xfd\x18\x2e\x13\xe5\xba\x60\x6d\x2e\x6c\x34\x01\xd3\xc0\x60\xf5\x11\x35\x7c\x5f\xbd\x7e\xaf\x87\x45\xa6\x69\x22\x90\x0b\x7e\xef\xf3\x6d\x76\xbf\x1c\x04\x07\xfd\x33\x0b\x17\x45\x3b\x12\x87\x99\xfe\xaa\x19\x37\x3a\x95\x22\xc2\xd4\xc7\x4b\xad\x86\x3d\xe3\xbf\xd3\x26\xce\x52\x29\x6d\x47\xe5\xf6\x76\x31\x85\x20\xa7\x52\xcb\x98\xfa\x1c\x12\x72\x42\x7f\x86\xf9\x49\x55\x1a\x22\xe4\x54\x59\xe2\x25\xcb\x4e\x38\x25\x38\x62\x29\x08\x81\x15\x32\x2f\x6d\x99\xda\xeb\xa4\xfe\x32\x26\x21\x51\x0f\x7f\xc0\x0d\xcf\xdf\x90\x61\x0a\x09\x69\xf6\xa7\xb2\x6e\xbe\x3b\x02\x84\xcf\xd3\xe3\xa9\xe1\x12\xbd\x51\xc0\x04\x97\xff\xa3\xa2\xb8\x5a\xdc\x29\x4b\xf7\x77\x11\x44\x01\xed\x22\x7f\x9c\xbc\xce\x6e\x76\xfb\x99\x08\xb8\x35\x6b\xfb\x31\x35\xcd\x75\xe1\xef\x52\x84\x94\x23\xd3\xc7\xd6\xbf\x36\x44\x92\x8c\xa7\xb7\x08\x69\x8a\x55\x88\x76\x53\xff\x96\x4d\xc4\x78\x98\x08\x39\x4d\x9c\x8d\x9a\xbc\x3f\x11\x9a\x28\x1a\xf4\xcc\x4d\x29\xd6\xdb\x01\x12\x51\x27\x4f\x9b\xd5\x7e\xbb\xb8\x5b\xf5\x42\xc8\x4c\x44\x71\x8c\xbb\xc2\x3a\xcf\xcf\xc7\xac\xe8\xc9\x00\x98\x88\x78\x84\xb7\x8d\x4d\x15\xe7\x77\xaf\x9d\xdf\x1f\x17\x94\x7a\x92\xf7\x52\xc3\x62\x7e\x3b\x10\x24\x22\xc6\x36\x3a\x22\xd2\xd6\x77\x26\x5d\xad\xaf\xaf\xd7\x0f\xb7\x7f\x74\xa3\x18\xc6\xba\xe8\xa2\x4d\x27\x9e\x20\x8c\x26\x8e\x51\x6c\x69\x2c\x26\x23\x8c\x78\x77\x90\x61\xea\xb9\x93\xa6\x2b\xf3\x0d\xa0\xe5\xbe\x6b\xad\x74\xb3\x81\x57\x24\x58\x79\x28\x2d\xf8\xbc\x6f\x83\x67\x22\x16\x26\x4c\x06\x0b\xec\x8f\xde\x12\xf6\x3f\x10\x2b\xc3\xb5\x4f\x08\x3f\x62\xf1\xf8\xa7\x9a\xf4\x91\x32\x11\x43\x8c\xd0\x91\xef\xeb\xa7\xe5\x97\xc5\xfa\x61\x68\x13\x44\xa2\x23\x9e\x58\x85\xfe\xa1\xc3\xe2\x8e\x52\x15\xdb\xf6\xf7\x4b\xfe\xda\x6e\x04\xc5\x34\x7a\xeb\x13\xeb\xac\x99\x87\xe1\xba\xb1\x9c\x6a\xdd\x13\x8d\xaf\x0a\xa8\x0e\xef\x7f\x5c\xa6\x20\x86\x27\x00\x82\x0d\x5b\x33\x0f\xda\x81\x82\x3e\x4d\xd8\xcd\x27\x8e\xc6\xae\xb3\x48\x69\x1a\xb9\x76\xa9\xd3\x7a\xf9\xb8\x8f\x82\xfd\x3d\x6a\x06\xf8\xe3\x82\x62\x6d\xd4\x31\x82\x3f\x40\x63\x36\xf0\x0a\xc5\x79\xd2\x90\x27\x52\x4d\x75\x97\x94\x5c\x2f\x1f\x27\x6f\x4f\x44\x0c\xab\x57\xa7\xb2\xcc\x7b\x26\x72\x7f\x50\x70\x62\xe5\xa1\xcf\x45\xf3\x1e\xfc\x1c\x7d\x15\xa9\xe2\xc8\x75\xac\x1f\xc4\x11\xd4\x45\x57\x93\x50\x41\x8a\x76\x61\xa1\x35\xe8\x19\x3a\xa3\x8b\xe8\x61\x72\x7a\x18\x63\xe9\xcc\x33\x4d\x2e\xcf\xcd\xd3\xd4\xbd\x15\x4a\x40\xe4\x5c\x7a\x8b\x4d\x18\x67\xcd\x85\x26\x21\x06\x9d\x77\xe5\xe1\x4b\xa9\x73\x5c\x21\xdb\xcb\xa0\xdb\x8f\x96\x96\x71\x3d\xb3\x99\xf8\xec\x6f\xd8\x55\x80\x48\x1d\x9f\xce\xfd\xe8\x5b\xce\x06\x40\x42\x83\x89\x5c\xcb\xe4\x32\x6b\x84\x25\xdb\x43\x7d\xb9\x39\xb9\x49\x26\x80\x08\x0c\x3e\x4c\x96\xe7\x57\xe7\xf7\x1e\x1c\xff\x61\xa8\x26\x80\xc5\x89\xe3\x15\x18\x45\x14\xfe\x70\x4a\x31\x7f\xf7\xf3\x97\x70\x43\x61\x42\x6e\xb0\x40\x03\xfa\xa9\xdc\x8e\xbe\xb5\x21\x5a\xf7\xbb\x48\xeb\x8b\x74\x47\xc0\x4a\xd9\x7b\x3e\xe8\x4f\xab\xe4\xc2\x98\x40\xb3\x8e\x3a\x2d\x7f\x77\x4d\xca\x9f\x90\x1a\xdb\x13\x65\x10\x11\xb4\xe0\xd7\x4f\x4f\x53\xfb\x26\x03\x13\xa0\x54\x76\xeb\xfb\x8f\x25\xd9\xba\x01\xb6\xaf\xf3\x5c\x83\xc6\x10\x7d\x7c\xed\x30\x34\xca\xb6\xb9\x65\xc5\xbd\xf8\x79\xa9\x9f\xc9\x64\x48\x2d\xc2\xc5\x27\x5a\xbc\x6b\xe3\x9e\x16\x6a\x97\xba\xd6\x8e\x1c\xa9\x3b\xcf\x68\xec\x68\x39\xd7\xed\x6e\xbf\x6a\x9e\xef\xca\xc3\x36\xfb\xbb\xbb\xf5\x88\x80\xa2\x6e\xbe\xe1\x74\xb3\xd4\x10\xfe\x28\x13\x28\x2a\xbd\x7e\xc4\xcb\x9f\xba\x4d\x49\x92\x10\x74\xd7\x4c\xf9\xa9\x9d\x71\x8e\xe9\x30\x67\x2e\x89\x0c\x3a\x88\xa3\x6d\xae\x40\xce\xf2\xd1\xc6\x28\xe3\x50\x08\xaf\xf9\x6a\xf5\xd1\xb2\x6e\xf7\x92\x31\x31\x81\x95\x03\x38\xb5\xbf\x78\x75\x7e\x7f\x38\x5f\x0a\x85\x7a\x77\x5a\x26\x2c\xa4\xbd\x60\xc4\x16\xf2\x7c\x9e\x67\xe9\xd3\x99\x2e\x69\xc0\x11\x49\x26\x85\x7a\x81\x42\x5b\xe4\x5f\xe7\x85\x48\xaa\x94\x70\x20\x89\x66\x38\x79\x25\x35\x1a\xbb\x84\xeb\xb3\xbc\x16\xef\x1f\x14\x9f\x24\x4b\x53\x3c\xdd\xdd\xd3\xcd\xb9\x50\xf3\x93\x58\x32\x4d\x95\xf0\x9c\xe2\x60\xa5\x5c\x16\x85\x76\x6a\x70\x83\x18\x57\xf2\xd0\xc4\xb6\x2b\x61\x75\x2a\x15\x52\xc2\x6d\x61\xe2\x9c\x48\x9e\x04\x48\x4a\xfb\xd6\x37\x2d\x0c\x38\x2b\x26\x0e\x81\xe4\x4c\x33\x57\x2b\x7d\x74\x15\xcd\x59\xcf\x41\xa6\x2c\xe2\x7c\x40\x98\xb2\xf2\x79\xbc\xcf\x5f\x72\xca\xad\xfe\x69\x95\x1d\x9e\x9b\x70\x72\xab\xa9\xb4\x69\xb3\x59\xb6\x85\xf3\x47\x2d\x9c\x32\x55\xc4\x57\x4f\xb7\xa0\xca\x42\x63\x72\x66\x4e\x37\x91\x49\x11\x59\x47\x00\x73\x3e\x8b\x42\x5b\xb6\xb6\x19\x16\xea\xc9\x7d\x8b\x34\x42\xf2\xc6\xaf\x8b\xbb\x78\xf4\xf5\x25\xe1\xe0\xf2\x65\x2e\x08\x9e\x35\xbd\x52\xc6\x36\x4f\xb2\x5b\x2d\xee\x03\x7f\xb2\x62\xb6\x0e\xea\x71\x8a\x36\x28\xfa\x45\xea\x44\x2a\x88\x10\xee\x73\x0f\xc5\x39\xf0\xdd\xe5\x52\x4b\x89\xb1\x81\xed\x8c\xf7\xba\x93\xa8\x60\xf8\x9c\x9d\x06\x71\xa1\xd4\x4a\x63\xe1\x66\xfd\xd7\xe2\xeb\xda\x77\x35\x48\x88\x63\x24\x1d\x97\xa2\xb0\xc5\xd4\x69\x02\x57\x02\xb3\xb4\x10\x96\xa4\x73\x94\x7c\x95\xa0\x48\xc8\x3b\x5c\x8b\x6b\x27\x9b\x9d\x39\x2a\x88\x53\xac\x4d\xb4\x36\xf6\xb6\xf4\xcc\x65\x4c\x05\x2a\xc1\x7c\xf9\xb1\xd4\x99\x79\xbf\x17\xd5\x4b\x56\xcc\xeb\x26\x33\x15\x52\x82\x2d\x59\x6f\x90\xed\x6c\x0a\xcb\x5f\x25\x12\xd6\xa8\xfd\x10\x55\x95\x95\x55\x7d\x25\x5a\xab\xfd\xa5\x3c\x7e\x68\xc7\xba\x13\x01\x9f\x6e\x20\x2f\xe7\xaf\x49\x22\xca\xbb\x96\xac\x1a\xbe\x55\x23\x56\x45\xa6\x08\xb5\x2c\xb0\xb7\x67\x29\xa1\x6a\x57\x68\xeb\x88\x36\xcf\x55\xf9\xf6\x41\x9e\x5e\x11\x19\x5a\x12\x5f\x51\xec\x90\x3a\xab\x4f\x23\x2a\x22\x23\xad\x3d\x44\x0c\x3b\x3b\x90\x95\xb9\x8b\x6d\xc6\xf7\x1d\x07\xb6\xed\x01\x35\x5a\x2d\x86\xf1\xae\x3c\x64\x9d\x5a\xd3\xf8\x77\x63\x63\x62\xda\xfb\x75\x9d\x79\x53\x49\x6c\x55\x84\x9b\x67\x58\x5d\x2d\x7f\xad\x98\xc1\x54\x62\x12\xec\x80\x37\x65\x65\x1d\x38\x7f\x29\x1a\x25\xc8\x26\x5e\x89\x69\xca\x55\xd1\x94\x20\x3f\xc2\x5d\x59\x1c\x9e\x72\xd1\x27\xce\x87\x34\x3b\xfc\xdf\xc3\x4d\x85\x44\x83\x63\xee\x32\x8c\x44\x1d\x8f\xe8\x12\xc5\x42\x6c\xdd\x68\x5d\x28\x4b\x36\x33\x68\x4c\x53\x0c\x52\x70\x8e\xa4\x2b\xd1\x7f\xf0\x4d\x78\x40\xb1\xcd\x51\x1c\xa5\xa8\x6b\xa1\xcb\x89\xb3\xa7\x78\x60\xb7\xa5\x06\xc4\xf1\xae\x54\x2f\xdf\xba\x19\xc2\x09\x0f\x9c\xd9\xbc\xc9\x0a\x51\xa8\xac\x38\xd4\x0b\x3d\x7d\x7c\x2e\x2d\x52\xed\x6b\x96\xe7\xdb\xb7\xac\xe9\xfc\x6d\xc5\x55\x8c\xf9\x11\xe4\xb9\xaf\x3b\x4e\x2b\xa6\xb8\x31\xc4\xe5\x8b\x1f\xe0\xdc\x54\x22\xbf\x3f\x5b\x4f\x0f\xdd\xa4\x41\xc6\x44\x89\x80\xe1\x4c\xf8\xdf\xb3\x40\x4e\x85\x85\xcf\xb5\xf8\x6b\xc9\x34\xc6\x29\x7e\x0b\x85\x6d\xd6\xd9\xb4\x17\x9a\xb7\x32\x4a\xca\x74\x58\x58\x5d\x54\xe0\x63\x66\xa5\x08\x43\x03\x34\x90\xe3\xed\xb5\x5a\x99\x52\x31\xa0\x7d\x41\x34\x67\xf7\x47\x4a\x3c\x01\xd5\x15\x34\xbb\xac\xe9\x6f\x4b\xa9\x24\x19\x30\xbf\xee\x55\xbf\xf2\x34\x09\xb5\x33\xed\x77\x77\xdf\x5d\x23\xdd\x98\xfa\x40\x41\x40\x91\xa4\xd0\x02\xca\xaf\x41\x9f\x95\x6f\xab\xf9\xe0\xd1\x40\xa8\x34\x1d\x56\x8a\x6c\xa3\xe5\x55\xe9\xdf\x68\xf8\x81\xc3\xad\x40\x31\x2c\xaf\x39\x86\xcf\x31\xbf\x32\x53\x60\x24\xba\xb8\xeb\x6b\x8f\x8a\x51\x26\xe2\xc6\xd2\x0a\x17\x08\x79\xdb\x65\x47\x28\xcf\x4d\x77\x98\x0a\x8c\x72\xee\xfe\x67\xe4\x11\x2b\xc3\x03\xcf\xc9\xde\x7d\xc6\x6b\x78\xbd\xe9\x34\xab\x98\x0e\xe2\x18\xd1\x58\x8b\x73\x53\x2e\x9f\xc5\x18\x0d\xae\xc3\xc8\x0a\x58\x56\x20\xf4\xc8\xa7\xfc\x56\x43\xe5\xb3\x30\x13\xd3\xac\xa3\xc0\x70\x57\x8d\xbf\x87\x06\xaa\x53\x39\x64\x43\x1f\xbe\x43\x1d\x45\x29\x02\x9a\x24\x34\x8f\xa7\x0f\xb9\x91\x66\xb6\x6b\x1d\x51\x48\x7d\x97\x84\xb2\x2a\xcc\xef\xf8\x6a\xac\xeb\x44\x63\x37\x2e\x36\x94\x7b\xed\xf9\x52\x96\xcd\x4d\x59\xb5\xf7\x7e\xf5\x6e\xa5\x81\x66\x3f\xad\x4e\x38\x45\x7d\xc0\x93\xad\x41\x3e\x55\x65\x69\x1e\xcd\x8f\xb2\x9a\xb4\xa5\xeb\x44\x52\x13\x76\x94\xb2\xe8\x33\xa2\x6e\xa2\x3f\xac\x02\x04\xa5\xff\xf9\xfd\x11\xb1\xf4\xdd\xdf\x75\x88\x84\xf7\xaa\xac\x9b\x8d\x63\xf8\x9b\x5e\x59\x6b\xcc\xe8\x78\x96\xfd\xd9\x99\xa4\x29\xa4\xe8\x3f\x99\x73\xa1\x71\x97\x1e\x41\xf6\x34\x35\x02\x6f\x0f\x44\xdd\x46\x31\xa7\xf2\xa3\x94\x99\x66\x2c\x65\xc1\x00\x21\xd8\x06\xc2\x7f\xb6\x43\x6f\xaa\xf2\x78\x2d\x4e\xa7\x29\x08\x68\x72\x23\x4c\x26\x48\x99\xd8\xc6\x84\x23\xb7\xf9\x5f\x49\x6f\x92\xe9\xc4\x24\x8f\x01\x45\x3a\xa5\x24\x70\xfc\xbc\xf7\x28\x8b\xdb\x3c\x7f\xcf\xc4\x94\x45\x64\x7c\xdf\xa9\x89\x71\x82\x0e\x0b\x40\x1f\x94\x42\xb5\x48\x09\x36\xe7\xba\x86\xea\x0f\xa9\xdb\xe7\x7f\x49\x08\xc0\xf6\x58\x24\x17\xbd\xa9\x00\xba\xc6\xca\x76\x1e\xf9\x41\x32\xc6\xaf\xf6\x8a\xdd\xc4\x87\x01\x18\x43\x0b\x05\x16\x63\x8b\xe5\xb7\x36\x18\x29\xdf\x2e\x45\x36\x99\x96\x81\xa5\x57\xdc\x42\x6e\xb0\x08\x77\x56\xcd\xb8\x95\x41\x4b\xa9\x30\x6d\x57\xc0\xcf\xc6\x36\xb4\x75\x47\x94\xc5\x56\x3a\x35\xc4\xa7\x52\x0f\x02\x39\xad\x63\x89\x9e\xfe\x41\x1c\xc1\x53\x6c\x32\xad\xb5\x15\x33\xcf\x1a\x38\xba\x36\xdb\x69\xa2\x5f\x43\x64\x81\x33\x3f\x86\x2a\xdc\x17\x2f\x6e\xfc\xba\x41\x30\xc4\x48\x8b\x0a\x1e\x73\x6d\x79\x92\xbe\xc2\x7b\xfd\xbd\x1c\x2a\xfc\x4d\xce\xd1\x36\x51\x7c\x5d\x9e\x7d\x47\xa6\x36\x81\xb0\xa4\x8a\x79\xbe\xef\x6b\x4d\xda\xa4\x81\x6f\x6b\xbc\x3a\xbf\x7f\x2b\xb2\xa6\x6e\x03\xc4\xea\x28\x86\xb5\x37\x6d\x84\x44\x40\x84\xef\x54\x19\xbb\x1f\x10\xc4\x74\xd0\x47\xd4\x6e\xf8\xbd\x8c\xe5\x1f\x7e\x0c\x25\x49\xeb\xa2\x2c\x6e\x57\x0f\xbb\xfd\x76\xb7\xd8\x7d\xdb\xce\x03\xcd\x21\x48\x3b\xe6\xa6\x6d\xa6\xa7\xf5\x23\x08\x23\x86\x82\x72\xab\x4a\x45\x01\x92\xf7\x7f\xd8\x8e\x0d\x51\x18\x20\x2b\x6a\x89\x28\xe0\xa7\xb2\xcc\xad\xb8\x76\x7d\x87\x19\x84\x46\xe4\xd3\x09\x0e\x51\x24\x94\x0f\xbb\xb0\xbe\x75\x2b\xa6\x77\x10\xf1\xd8\x13\xfc\xb7\x93\xf3\x0e\x8c\x9f\x3b\x10\xa5\x04\x3b\x70\x3d\x08\xfc\x37\xfa\x5b\x81\x24\x02\x9b\x73\x90\xd4\x69\xbb\x5b\x6c\x3c\x42\x17\x88\xa4\x58\x78\x11\x59\xa5\xab\xf2\xb4\x28\xf4\xb0\x5e\x06\xc4\x18\xcc\x0c\x9e\x2a\x38\x14\xa2\xf0\x5d\x0c\xfe\xb3\x41\x1c\x48\x04\x4d\x6d\x1b\xd1\xfc\x39\x40\x09\x41\x1c\x52\x64\xed\xbc\x7b\xbc\xdd\x6f\xad\xee\x90\x39\xe7\x73\x40\x33\x7f\x82\x89\x13\xe2\xc3\x41\x67\x4d\xd7\xc7\xd3\x04\xeb\x04\x49\xa0\x95\x25\x6a\xbb\x7b\x5c\x4e\x8f\x45\xb1\x95\x10\xb2\x61\xde\x5f\xe5\xb9\x1a\xe5\xc9\x21\xa1\x16\x51\xbb\xc7\x7a\xfc\x70\x5f\x99\x5c\x88\xd3\xd8\xcd\x59\x2b\x6c\x3a\xc4\xaa\x42\x92\x12\xac\x21\x36\xe5\xe1\x90\xc3\xa2\x69\x84\x7a\x06\xbd\x6a\x27\xb5\x02\xcb\x3f\xdb\x85\x5f\x90\x18\x85\x14\x25\xb7\x79\x29\x45\xbe\x03\x35\x42\xf4\x03\x65\x04\xcb\xda\xb7\x8b\xed\xfe\xea\xdb\xcd\xcd\x6a\xd3\x1d\x49\x23\x2c\xbb\xee\xdd\x97\x19\x28\xed\x30\xa0\x3a\x40\x0b\x81\x0e\xe4\xb2\x2c\x4c\x76\x89\x82\x1a\xbf\x5e\x46\x84\x36\x17\xba\x7b\xdb\xf2\x5c\xf5\x0b\x88\x13\x9b\xfd\x3b\x8a\x46\x3d\xdf\x5b\x62\x13\x4b\x2a\xe6\x37\x6b\x17\x31\xf7\x9c\x59\x90\x46\x0c\x2b\xef\xf7\x99\xaa\xca\xab\x9d\x2f\xd7\x40\xca\x12\x4b\x35\x66\xc9\xa2\xa3\xfd\x6b\x6b\x4e\x9c\x72\xf5\xfe\xd8\xc6\x6b\xe2\x00\xfb\x7a\x40\x7a\xcc\x20\x15\x02\xf7\xe1\x7d\x56\x6f\xb3\x76\xa5\x3d\xb5\xd1\x52\x33\xb4\x43\xe3\xa7\xf2\x4e\xf0\x16\x44\xde\xb3\xb6\x4f\xd7\xc2\xff\x29\x33\x04\x82\x0b\x14\xa9\x5e\x3d\x8e\x9c\x34\x90\xca\xfa\x76\x07\x68\x1c\xef\xfd\x87\xec\x1b\xee\x0c\x1d\x76\x0d\xb2\x0f\xe5\xa3\xb9\xaf\x0f\x13\x17\x0c\x74\x9c\x60\x32\xc3\x79\xb0\xdb\xbc\x6c\x2e\x46\x68\x3e\x66\x4d\xfe\x7e\xff\xab\xfc\x05\x68\x61\xb0\x8c\xb0\x7b\x86\xdb\xf2\xfa\x90\x0d\x66\x8e\x36\x1c\xaf\x77\xfd\xf8\x63\xbf\x5d\x74\x66\x00\x82\x20\x01\x47\xd3\xde\xcd\x07\x08\x95\xd7\xca\x7e\xaa\xe0\x35\x2b\xcf\x35\x92\x43\xf9\xc3\x29\x47\xfd\xb0\xa6\x3a\xd7\x0d\xe8\xab\x73\x55\xcc\xb0\xe9\x32\x30\x31\xc3\x9d\x32\xab\xbf\xf6\xa4\x05\x60\x04\xe5\x3e\x25\x28\x72\x98\x12\xf7\x33\x30\x32\xa4\x51\x07\xe4\xff\xcd\x6f\xda\x9d\xcb\x51\x21\x18\xa5\x1b\xaa\x79\x60\xb4\x09\x62\xc0\x3a\xdf\x69\xa8\xcc\xd5\x1d\x0d\x89\x85\xee\xfc\xef\x59\x54\x8d\x43\x4c\xfa\x43\x5c\x63\xfe\xd8\x4e\xe6\x21\xdf\xdd\xef\xc1\x7a\x87\xf9\x53\x13\xc5\x1d\xb6\x73\xb9\xfc\x62\x83\x1e\xee\x7f\x29\x52\xd6\xd6\xaf\x44\xed\xa4\x5d\xc3\xa0\x3b\x06\x54\xd8\xd2\xb7\xc7\xe2\x38\x3c\x51\xe0\x06\x90\x20\x40\xc4\x22\xe6\xb8\xdb\x77\xbc\xbf\xc7\x64\xcb\xaa\xd0\xd7\x53\xd5\x05\x86\xb2\x7a\xba\x0b\xd9\x3e\xd4\x95\x6f\x07\x1a\xec\x2e\xff\x22\x0a\xfd\x63\x4a\xf3\xcd\x0c\xa1\x41\x18\xf8\xcf\x66\x5b\x9e\xc6\xe7\xc7\x11\x51\x2e\x87\x76\x07\xc2\x8c\x59\xf4\xba\xd7\x1f\x47\x8a\x5a\xb4\x57\x1b\xac\xf5\xdd\xcf\x26\x76\x6a\x82\xbb\xf5\x6a\x13\x0d\xea\xa7\x26\xa6\x1a\x23\x7f\x5b\x68\x7c\x13\x95\xbe\xda\x8e\x23\x36\x93\x18\xab\xd7\xd6\x31\x5a\xc3\x03\xfc\x6c\x1e\xe6\x66\xad\xa1\x26\x0e\x7a\x09\xf8\xaf\x7f\x2d\x1d\x2b\xc0\x74\x94\x40\xfb\xbd\x5a\x5f\xdb\xc4\xe8\x66\x19\x75\x5f\x88\x85\x96\x1f\xd6\x9c\x9b\xea\x3e\xeb\x24\xed\x98\x61\x31\xc3\xed\x18\x71\x9f\xb6\xe3\x68\xe8\xed\x18\x96\x70\x4f\x8e\x69\xc3\x81\x89\x8a\x2d\x33\x4c\x42\xe2\x1a\x0b\x6f\x7f\xa2\x86\xc1\x24\x8b\xe8\xc6\xf1\x98\x62\xe1\x7f\xbf\xdf\xbb\x80\x7b\x57\x4e\x87\x50\x45\xa6\xe4\x2c\xf5\xa6\x7b\xad\xdc\xd8\x55\x82\xfc\x7f\xe8\xb0\x77\x18\x5a\x37\x42\x84\x1a\xdd\xdc\x2f\xed\x62\xeb\xfe\x98\x44\x1a\x3c\x40\xc1\x2a\xdf\x60\xd6\x60\xfc\xdb\x42\x70\x5b\xcf\xb5\xe9\xae\xa1\x8a\x1b\x33\x32\x15\xb8\x88\x75\x56\x9f\x72\xf1\x7e\x1c\x13\x0c\x19\x29\x2c\x76\xb1\x82\x57\x10\xf9\x90\x22\xcb\xa8\x54\x20\x7e\xf6\x47\x59\xe5\xfa\xa1\x53\x4c\x63\x46\x29\x4d\x6c\x0e\xbd\x27\x95\xf7\xcc\x52\x1f\x99\x18\x77\xaa\x06\x1e\xf6\x3c\xbc\x4f\x8f\xeb\xc9\xa3\x40\x18\x76\x75\xe1\xff\x47\xd0\xf4\xfe\x73\x03\x58\x65\x49\x3b\x19\x07\xbc\x35\xc6\x84\x09\xb7\xea\x62\x5f\x44\xde\x63\x21\x8c\x09\xa5\xc3\xcb\xfd\x5c\x8a\xd3\x06\xd0\x47\xe9\x0e\x46\x81\xdf\x98\xda\xf9\x05\x55\xf3\xbe\x2c\xf3\xb2\xaa\x1f\xcd\xc6\xe9\xd2\x86\x43\x7c\x0e\x0f\x82\x38\x42\xe6\x8d\x5c\xd4\xcd\xd7\xa2\x7c\x2b\xfc\x79\xa3\xa4\x19\x0f\x82\x34\xc6\x8e\xf5\x76\x11\xae\xfe\x7b\xee\x44\x87\x78\x10\x52\x85\x75\xf7\xfb\xc5\xfa\xc1\x62\x1f\xae\x1e\x1f\xbe\x6d\xf7\x4f\xab\xcd\x72\xf5\xb0\x5b\xdc\xae\xf6\x4f\x5f\x16\xdb\x55\xe8\x4f\x88\x58\x84\x86\xe4\x5e\xe4\xe2\xbd\xce\x04\x61\x41\x77\x88\x4b\xcc\x39\x8a\xb3\xce\x9a\x81\xb4\x92\x3b\x4c\x62\x4e\xe5\x24\x9d\x32\xf2\x92\xfd\x38\x01\x98\x8e\x79\x79\x57\xcb\xf2\x78\xca\xc1\xbf\x56\x1e\x10\x93\x72\x9b\x30\xa8\xc6\x86\x92\x07\x71\x92\xc6\x3d\x27\xc7\x75\xcf\x7f\x34\xd3\x15\xc1\x83\x98\x72\x37\x4b\x6d\xc0\xde\xee\x92\xd3\x0b\x8a\x84\x43\xe7\x4f\x6e\xc0\x58\x94\x9d\xbf\x95\x24\xe4\xdc\x82\xd9\xda\xa8\xce\xad\x74\x57\x52\xdc\xa0\x5c\xae\x1f\xc8\x03\x34\xcc\xdf\xcb\xec\xb4\xeb\x1c\x17\x1e\x24\x69\x18\x0b\xbf\x14\xdb\xa0\xba\xd9\xc0\x7f\xcf\x59\x05\x7a\x57\x6e\x40\x55\xe7\xac\x99\xdc\x51\x22\x29\xd6\x4d\x9e\x36\x2b\xfc\x52\x96\x60\xe0\xcb\x62\x73\xdd\x1b\x5c\x1e\x24\xa6\x4b\x94\x6f\x90\x9c\x7d\xfc\x76\x69\xc4\x3b\xc5\x3f\xe4\x28\xbc\x64\x08\xe2\x01\xa5\x0c\x93\x94\xe2\x74\x82\x42\x7f\xc3\x96\x8a\x51\x2f\xdc\x3f\xc6\x77\x46\x59\xe2\xcc\x4a\xa1\xaf\x33\x71\x2c\x07\xf1\xc4\x58\xbb\xd5\x33\x12\x4f\x2f\x20\x52\x6c\x01\xb5\x8f\xb4\x7b\xdc\x2d\xee\x86\xcf\xc4\x62\xa2\x2c\x02\xee\x67\x1b\x98\xdb\x92\xd8\x00\xee\xc8\x83\xd6\xf2\x72\xdb\x35\xd6\x46\x66\xed\xbe\x1a\x75\xc7\x94\x0c\x2c\xe1\x58\x56\xfc\xc7\xa6\xef\xc7\xef\x84\x01\x45\xd2\x92\xff\x59\x2d\xbf\x2e\xac\x5f\xef\xcf\xe5\xa1\xd4\x51\x2f\x32\x7b\x7f\x6e\xce\x22\xff\x9f\x52\x2e\x31\x65\x95\x8b\x5e\x1e\xfd\x32\x5f\x39\xeb\x05\xf1\x80\x73\x8e\x0c\x25\x7b\x25\x8a\x27\xf1\xfe\xe8\xc8\x58\x26\x1f\x9b\x2b\x83\xc6\x00\x9c\x16\xd0\x17\xc8\xa1\xc8\x06\x7c\x3d\xe3\x47\x48\xe3\x18\xb1\x95\x48\x3f\xb8\xc9\x0e\xcf\xf3\x79\x57\x1e\x88\x84\xa7\x72\x44\x11\x37\x83\x01\x1c\x5f\x5b\x4a\x89\x1c\x45\x8e\x32\xb2\xcf\x7f\xf2\x40\x82\xc2\xa6\x5e\x40\xa6\x9e\xa7\x6a\xc0\x46\xc7\x03\x15\xc6\x22\xe9\x39\x6a\xdd\x8f\xfc\x58\xad\x7b\xf9\x6c\x1e\xa8\x88\x8b\x68\x4c\xec\x37\x88\x84\x3a\x3b\xa5\x09\xb5\xac\xab\x22\x87\x1f\x90\x75\x85\x21\x1e\x68\x69\x5d\xe7\xd6\x63\x55\xcf\x90\xe7\x59\x71\xb0\x24\xf5\x53\x3e\x71\x1e\x40\xa0\x6d\x55\x47\xbc\x5a\xc9\xce\xf3\x25\xc2\x8f\x07\x40\x00\x25\x22\xb6\x59\x71\x38\xe7\xa2\xca\x9a\xf7\x1d\xd4\x4d\x44\xfc\x4f\x82\x4a\x30\xcf\xe2\xdf\x61\xb7\xa6\x4d\x2a\xe2\x61\x53\xdf\x53\xf9\x02\xc7\xcb\x56\xde\xf1\x27\x09\x83\x24\x80\x4e\x3b\xf9\xaa\x12\x85\x7a\x5e\x17\xab\x53\x56\x0f\xef\x70\x7c\x4a\xc8\x24\xfa\xba\x0e\x2e\xd5\xe5\xec\x86\x82\x69\x3c\x0c\x53\x8a\xbc\xa2\x85\x7b\xb1\xf7\x59\x0e\x75\x53\x16\x9e\x11\x87\x87\x24\x91\xd8\x4f\x89\x3a\x4e\x1a\x54\xf5\x7e\x6a\xc6\x4a\x4e\x3c\x24\x8a\x04\x5e\x98\x76\xf7\x5c\x95\x6f\xdb\xf2\x08\xad\xc9\x3b\x74\x23\xc0\x32\x06\xed\xb3\xfa\x0e\xc4\xe9\x2f\x10\xd5\x10\xd2\xc9\xc3\x98\x44\x58\xd6\x6f\xb2\x23\x5c\x95\xe7\xc1\xec\xf4\x03\x92\x00\x9b\x05\x36\xc2\x98\xd6\xd8\xa2\x52\xe7\x47\xf8\x9b\x59\xef\xdd\x79\x93\x3c\x8c\xb9\x25\xa3\xb1\xfd\xac\xcb\xe7\xec\xf4\x21\xbf\xe1\x3f\x2e\x4d\x5f\x18\xa7\x4a\x7a\x6e\x08\xdf\x12\x35\x6e\x3d\xe6\x61\x92\x6a\x07\x60\xad\x32\x81\x3a\xd2\xfe\x80\x4a\x11\x6e\xb9\x83\xaa\x12\x2b\x55\x0e\x22\x55\x1e\xd2\x28\xa0\xae\x47\x67\x07\xe2\x78\xe1\x77\xb5\x23\xe2\x94\x61\x8b\xfc\xee\xcf\xee\x2c\x2a\x90\x52\xa4\xa3\xbb\x70\x7f\x67\x9a\x61\x5a\xed\x57\x3c\x63\xf3\x46\x28\x64\x60\x99\x5d\x85\xd6\x73\x4c\x8a\x83\x87\xe5\x4c\x99\x70\xa8\x2f\x64\xbd\xf8\xf1\xca\x0a\xb9\x50\xb6\x05\xc1\xbe\xf5\xbc\x2c\x60\xde\xc9\x9a\x43\x12\x5c\x10\xc4\xf3\x90\x1b\x01\xbd\x9f\xaf\x27\x12\x7f\x3c\x4c\x09\x8f\x1d\x24\x6a\x5b\x9a\xe6\x4d\x54\xe0\x64\xed\x26\xe0\xab\xb9\xda\x35\x0f\xd3\x34\x22\x3d\x05\x9e\xf7\xd2\x77\xe5\xb4\xf9\xa5\x1b\xce\x23\xab\x30\xf0\xee\x29\xd0\xfc\x11\x43\x6d\x9d\x0d\x5e\x47\x1f\x5b\x24\x31\xa6\x10\xba\x25\xb7\x5f\xe6\x65\x0d\xbb\x67\xec\x68\x1e\x9a\x9b\x50\x30\x8d\x1e\xd5\xf2\x5c\x55\xef\x7d\x40\xdb\xee\x3c\x61\x40\xed\x2e\x5c\x95\xaf\xf0\x00\x6f\x8f\xbd\x02\x37\x0f\x55\x92\x7a\x45\x3f\x04\xde\xba\x0d\x71\x7c\xe7\x4a\x08\xe8\xdb\x56\xee\x47\xe4\x6c\x33\x95\x21\x1e\x2a\xa9\x30\x84\xb9\x5f\x6f\x77\xdd\x2f\x19\x46\xe3\xa1\xb0\x1f\x36\x89\x9c\xdf\x2f\x67\x9d\x3b\x41\x87\x36\x14\x6f\x3d\xd9\x73\xf1\x32\xb9\x27\x08\x12\x24\x07\xff\xfa\x78\xfd\xe8\x7f\x02\x34\x20\xff\xd6\xa9\xcc\xf3\xd6\x19\xfb\xdf\x7e\x51\x99\x76\x49\x0e\x80\x59\x43\xfe\xe3\xf1\x77\x8a\x42\x6a\x33\x2c\x07\x68\xee\xb2\x02\xbe\x9d\x2c\x83\xdc\x5e\x83\xe9\xd3\xa7\x3c\x8a\x28\x20\x68\xd9\xdb\x6f\xcb\xac\x38\xbe\xcb\x28\x92\x9a\x0c\x75\x61\xb0\xd4\x3b\xeb\xbd\x44\x91\x66\xc6\x32\x4f\x6f\x7a\x7d\x89\xe1\x5b\x8d\x48\x2c\xb0\x90\xeb\x35\xb1\x5e\xa0\xf8\x56\x65\x93\x5f\x8c\x29\xc3\x24\xaa\xd3\x8e\x9a\xa6\xd2\x79\x14\x73\x8b\xb3\x75\xbc\xd9\x1f\x25\x5f\x66\xbf\x49\x14\x8b\x08\x37\x2d\x61\x2b\x42\xf5\x24\xff\xcd\xa3\x84\x58\x59\x07\x57\x6b\x9e\xa7\x9f\xff\xd0\x84\x4e\xae\x25\x52\xec\x31\x71\x4e\xf3\x06\x85\x5e\x7c\x67\x8f\x85\x06\x21\x18\x75\x7d\xb5\xf4\x0f\xc7\x84\x4d\x1a\x62\x8c\xf2\x73\x2c\x58\xf2\xaf\x28\xf8\xb7\x1b\xc6\xa3\x14\x5c\x22\xa3\x5d\xf8\x5f\x44\xa5\x97\xe2\xd2\xc4\xfb\xd1\x84\x79\xb5\x27\x0c\x45\xfb\x92\x12\x8f\x38\x50\x80\x51\x13\x62\x6e\x6b\xa0\xed\x94\x71\x8b\x69\xfc\x54\x69\x60\x1b\xfc\xff\xee\xd6\x79\x94\x86\x1a\x29\x80\x51\x10\x6a\x44\xb6\x33\x39\x35\x4d\xd0\x4b\xc9\xea\xf5\x11\xa9\x1f\xe6\x01\x10\xed\x40\xdb\x96\x78\x28\xfd\xc4\xeb\x7e\x2a\x05\xa4\xdd\x44\xc9\xec\x51\x0a\xe7\xb7\x52\xa8\x3c\x4a\xa5\xa5\xc9\xba\x5f\xfc\xb9\xbf\x5b\xfc\xb5\xda\x6c\xfd\xa5\x85\xb0\x25\x31\x0b\x74\xbb\x7a\xdf\x89\xc3\x28\x47\xc3\x23\xc9\x01\x3d\x70\xb4\x34\xd7\xa2\x3a\x1f\xc5\xff\x35\xa1\xeb\xaf\x24\xad\x74\xe4\x53\xd9\x6c\x4f\xf9\x0c\x4d\x6e\xbf\xf7\x44\x52\x47\x98\xe5\x58\xce\xc9\x16\x7e\xea\x65\x47\x8a\x11\x04\xf7\x74\x42\x3e\x5b\x98\x7e\x4e\xa5\x39\xfa\x5d\x3d\x67\xed\x06\x9a\xac\x9a\x86\x07\x91\xe6\x21\x7a\x8d\xb7\xeb\xe5\x62\x68\xe4\x23\x2d\x63\x0c\x2c\x30\xdf\xbf\x75\x65\xa3\xec\xef\x61\xe1\x68\x72\x57\x26\xb2\xf2\x67\x56\x19\xc4\x52\x67\x7f\x2e\x0f\xc2\x23\xc3\x35\x22\xf2\x26\x0a\x7d\x9f\x3b\x95\x24\xa0\xdc\x93\x55\x3d\x55\xbf\xd6\x7d\x9b\x9e\xac\x9c\x22\x7e\xb3\x17\x95\xcc\x9a\xcf\x2b\x59\x9c\x04\x92\x23\x0e\xc9\x25\xa1\x50\xc2\xd3\xc9\xb9\x7c\x70\x82\xa2\x09\x1d\x08\xa9\x61\x49\x21\xcf\x3b\xd4\x37\x27\x61\x64\x3b\xbb\x7d\xd7\xc8\xf7\xb2\x81\x9b\xb2\xb2\xbd\x5a\xed\x44\x68\xbd\xfd\xa3\xd5\xf4\x3d\x8f\xf1\x22\x73\xd5\x45\x4e\x42\x12\x60\xe9\x26\x53\x25\xca\xb6\xa1\x15\x7a\x16\x35\x44\xab\x2e\xa0\x21\x21\xb1\x81\x68\xbb\x73\x95\x65\xfe\xf8\x0a\x55\x2e\x4e\x7d\x19\x98\x93\x88\x86\xb8\xe2\x11\xbd\x68\xcb\x62\xe5\xc4\x91\x23\x11\x0f\xd1\x2b\x40\xb6\x32\x47\xeb\x3e\x75\x48\x3e\xf8\xaf\xbf\x82\x0c\x02\xed\xe5\xf5\xf0\x75\x56\xe5\x9b\xfe\x01\xf0\xe2\xa3\x10\x42\x12\x2b\xf5\xbe\xc8\xe1\xa5\x86\xec\x9f\x22\x6b\x14\xbc\x0e\xa8\x45\x3f\xfc\xe8\xe3\x9b\x6d\x63\x00\x67\x51\xd7\x45\xd6\x6c\x2f\x62\x51\x42\xb4\xe5\x3b\xbd\xca\x0e\xb2\x3c\x0e\x90\xab\x13\x31\x35\x4e\x62\x1d\x10\x2b\x18\x50\x65\xe6\xbd\xd7\x39\x1b\x42\xcb\x46\xff\xfc\xf0\xc0\xef\xff\x93\xb8\xad\x81\x24\x01\x13\x03\xfc\xa3\x7e\x9d\x7c\x15\x1a\xa5\x0e\xb1\x26\x8e\xae\x1a\x3c\x1d\x01\x06\x5d\x8d\xfd\xa9\xab\x70\xb9\x23\x8c\x07\x18\xa6\xaa\x5e\x89\xf4\x5c\x74\xd0\x2a\x4e\xb8\xb2\x81\xf0\xc1\x77\x13\x36\x5d\x90\x45\xd2\x20\xe0\x2e\xe9\xfa\x94\xfd\x84\xbc\x4f\xee\xcd\x24\x87\x39\x49\xc3\x10\x5b\x06\xff\x13\x8e\x70\x4a\x9c\xa4\x91\xcd\x82\xa0\x38\x93\x95\x85\x6a\x17\x59\x01\x23\x28\x64\x3b\x8e\xe1\x07\x3d\xe9\xb2\x3b\x95\x58\x39\xd5\xcc\x81\xf4\x7e\x21\xe0\xc2\x49\xca\x53\xdc\x11\x1c\x75\xf2\xb6\x69\x5d\x02\xd5\x64\xaf\xdd\x3a\x48\x55\x80\x39\x1f\x1b\x67\x39\xe7\xdb\xf1\x70\x8e\x6e\x47\x30\xc0\xd0\x7d\xb1\x1a\x1a\x4f\x22\xd2\x18\xf5\x36\x7a\x25\x6d\x11\x86\xfd\x41\x8e\x49\xb3\xf2\x04\x45\x4f\x40\xed\x0f\x4a\xab\xe1\xd0\xa1\x6d\xca\x66\xc8\xb3\xf3\x21\xec\x89\x13\xa1\x12\xac\x52\x58\xdb\xd4\x75\x27\x5a\x3a\xb4\xf9\x0d\x99\x48\xe0\x08\x12\xaa\xb3\xe2\x90\xc3\xbe\x9d\x5a\xe3\x5e\xc9\x61\x46\x96\x28\x69\xbb\xa5\xf7\x45\x39\x28\x38\x73\x02\x22\xc5\x2e\x81\xba\xcc\xf5\xf5\x6a\x77\xb1\x79\x8d\x56\x7f\x1c\x84\x96\x99\x5d\x42\x23\xcf\x6d\xbc\xb1\x7b\xf3\x9f\x32\x0e\x64\x88\xed\x74\x87\xb2\xd4\xf5\x43\xd9\xf8\xb6\x84\xf1\x9a\x8d\x43\x6d\x71\xe9\x87\x8e\xe3\xb0\xfd\x86\xf5\x64\x54\x14\xe8\xc8\x56\xab\xba\x66\x67\xac\xc0\x27\xfe\xd7\xa2\x48\x21\x61\xa5\x2c\xcb\xba\xa9\xc4\xe9\x49\x54\xcd\x3c\x9c\x8a\xc7\xad\x21\x89\x6c\x2c\x04\xf9\xa3\x0b\x00\x1f\xce\x47\x7f\x2d\xa2\x2c\x4d\x0c\x52\x24\x2e\xf2\xac\x9b\x0b\x71\x4c\x8c\xd0\x9d\x2a\x88\x97\xbf\x9e\x58\xd5\x38\x4e\x25\x7a\x03\xb7\x9d\xaa\x2e\x8f\x69\x1c\x18\xa7\x70\x8b\x2d\x88\x4b\x51\xe9\x59\x32\x66\x3f\x9e\xa6\x08\x54\xf4\xdd\x3f\x9e\x57\xd9\x1d\x66\x51\x92\xf6\x74\xa9\xcb\xfc\x2c\x27\xf7\xc0\x62\x8e\x8c\x2d\x15\x34\xe7\xaa\xb0\xea\x36\x37\x15\xb8\x44\xb6\x1b\xc4\x45\x80\x39\x84\xa2\x6c\x32\xf3\xde\xeb\x3f\xcf\xda\xdf\x98\x1b\x21\x2d\x64\x09\xf2\xdf\xd9\xda\xe3\x34\x0a\xd0\x4a\x7d\x93\x59\x5d\x7a\x04\x0a\x8f\x05\x0d\x71\x59\x5c\x09\xf5\xa2\xcb\x12\x73\xda\x83\xd6\xa2\x8f\x40\xc4\x3c\x16\x9c\x51\xda\x17\x85\xca\x62\x7d\x14\x07\x2c\xa0\x2e\xf3\xf2\x7c\x29\xf9\x32\x97\x34\x8b\x85\x14\xa9\x6d\x56\x3b\x9e\xab\x4a\x1c\x3e\xd2\x76\x71\xc3\x65\x60\x4b\xec\xcd\xe8\x79\x67\xd6\x6c\x2c\x43\x85\x11\xec\xd3\xb7\xab\xbb\xf5\x72\xbf\x59\x6d\x1f\xef\xbe\xaf\x36\xfb\xbb\xc5\xd5\xea\xce\x3f\xbb\x8c\x19\xa2\xb0\x30\x2f\xde\xd7\x2e\xba\xc3\x82\xc7\xa2\x63\xfb\x05\x3d\xe6\x7e\xe3\xb1\x0a\x02\xbc\x79\xdb\x6f\x32\x75\x00\x63\x95\xa4\x94\x78\xf1\x9d\x73\x0d\xcb\x73\x53\x1a\x83\xb1\xc4\xf8\xcb\x28\x9a\x46\x96\x82\x73\x57\x09\x8d\x05\x0e\x95\xad\x8b\x2d\xd8\xb6\x0c\x3f\x2a\x05\x9c\xb3\x77\xa2\x6e\x7a\xf1\x3d\x1e\x2b\xc1\x29\x1b\x05\x24\x18\xfd\x2d\x9a\xa6\xec\x7a\x9e\x3a\xf5\x6f\x1e\x2b\x2d\x02\xd7\xfb\x8c\xa5\xa7\xb9\xcc\x45\xac\x13\xea\xc3\xa5\x0d\x88\xfc\x38\xe7\x17\xb8\xa1\x20\x53\xdb\x9e\x6f\x9b\xcb\x47\xce\x94\x1b\x62\x12\x8d\xcc\x23\x9b\xf2\x4d\x14\x83\x54\x45\x12\x04\x11\xfa\xa8\x76\x59\x58\xbf\xb6\x6b\x7b\x70\x63\xc2\x98\xd9\x24\x3e\xe8\xec\x7c\x1c\x60\x77\x78\x12\x32\x19\xa3\x8c\xfa\xc3\xb5\xe5\x6a\x18\x31\x2e\xf3\x24\x94\x14\x5d\x9d\x1c\x0e\x50\xe8\x21\x4d\x1b\x4f\x42\xd0\x96\xcc\xb5\x8d\xef\x1e\xe0\xad\xf5\x13\x67\xf3\xba\x49\x14\x84\x98\xf4\xe9\x36\xbf\x0e\x96\xcd\x93\x88\xc4\xb6\xfc\xed\xe8\x59\xd7\xcb\xc7\x6d\x23\x0e\xe0\xbd\xad\x84\x28\xeb\xd9\x14\xf0\x76\x5d\x89\xb7\xf1\x16\xf0\x2f\x72\x81\xf9\x98\xf7\xac\x93\x38\x06\xee\xf2\x56\xb7\x56\x42\xf2\x49\x64\x1e\xb8\xc5\x93\x58\x4b\xa4\x45\x7a\x15\xe7\xbc\xd9\x57\x58\x74\x1a\x4f\xc6\x24\x09\x42\xe9\x88\xc8\x77\xcf\x15\xd4\xcf\xbd\x35\x4c\x12\x6d\xd1\x1b\xf6\x33\xdc\x95\x45\x27\x17\x31\x2b\xe5\xfe\xaf\xe8\xdf\xfe\x44\x70\xc1\xb7\xf3\x67\x77\x20\x8e\xb7\x95\x28\x7a\x0f\x28\x61\x3c\xed\x18\xd2\xe1\x0d\xbb\x5f\x3f\xda\x33\x13\x26\x6c\x4e\xde\xa6\x12\x5a\x4b\xe2\x65\xa0\x7e\xab\x44\x92\xf0\x28\x41\xdf\x40\x18\x93\xe5\x19\x66\xe8\x8e\x13\x8e\x22\x3f\x92\x08\xe4\x24\x1a\x4a\x7b\x3a\xa1\xcc\x99\xde\x8b\x76\x3c\xd0\xb4\x4b\x9a\x7d\xab\x75\x5f\xb5\xe5\x09\x57\x01\x16\x3a\x1a\xa8\x9b\xfb\xfa\x60\x59\x95\xd7\x45\x3b\xa3\xfa\x4f\x94\xaa\x18\xf1\xd9\xed\x7b\x9f\xc7\xca\xf2\x44\x18\x83\xf3\x19\x5f\xe7\xc3\xe2\x3b\xc2\xb0\xbe\x6d\xaf\xfd\x35\x24\xb3\xc5\x4a\xdf\x35\x7f\x25\x8a\x97\x36\x02\xed\xf6\x72\x3f\x4e\x06\xce\x9e\x74\x35\x91\xa1\x70\xe0\xe4\xd9\xa4\x0c\xad\xcc\x9f\x2e\xef\xc5\x69\x71\x6e\xca\x89\x61\xf5\xe3\x94\x55\x3c\x46\x5f\xd5\x54\x65\xdd\x58\x60\x9f\xff\x55\x15\x86\x18\x3a\x3a\x02\xf3\xd5\xf2\xf1\xe1\x7a\x6f\x75\x49\x7a\xa6\x59\x9e\x28\x96\xc8\xc8\x12\x9e\x62\x91\x76\x59\x6a\xb0\xe2\x65\x7e\x84\x96\xc2\x1b\x34\xf7\x4d\xce\x9d\xc0\x63\xff\xb1\x21\x60\x48\xaf\x3d\x10\xa4\x6e\xff\x28\xc1\xc1\x8c\x2e\x44\xf2\x79\x02\xa1\xe5\xca\xc5\xf7\xb7\x01\x25\xf2\xbc\x7f\x69\x00\x31\x22\x67\x6f\xb2\x1c\xdb\x7a\x97\x6d\x84\xe8\x8e\x19\x2a\x10\x8b\x08\xf3\xb3\xc9\xe8\xd8\xf0\x8e\x7f\xf3\x43\xc9\x9f\x7f\x8c\xa7\xd6\x4c\xfe\x9a\x06\x24\xd5\x56\x9e\x55\x03\x1c\x41\x0f\x3b\xb5\x38\x0d\x23\x19\x19\xff\x86\xb7\xfb\x9b\xc7\x0d\xd6\xde\xbb\xc3\xc6\x36\x97\xed\x0f\xd0\x5c\x4a\x23\xb7\xc7\x09\x3a\xf8\xcf\xe5\xb9\x86\x6d\x23\x5e\xfc\x1b\xa7\x11\x27\xe8\x62\xf5\xd5\xbd\xf9\xb9\x42\x23\x11\x22\x5a\xd2\x00\xb8\x26\xbd\xbd\xbf\x46\x4c\x24\x02\xc8\xee\xb3\xa2\x99\x48\x2f\xfc\x56\x86\x87\xc6\xc0\x68\xd0\x49\xd3\xf6\x4b\x77\x25\xaa\x62\xea\xa7\xd2\x24\xb4\x4d\xee\xed\x63\x64\xc5\x01\x77\xbc\x1b\x98\xd1\xe7\x1d\xdf\x7f\xa2\x22\xdc\xb1\xbf\x94\x27\xdc\x4c\xba\xad\x88\x26\x4a\x68\xe9\xa9\xd0\xda\x80\x05\xdd\x41\xfb\x1a\x7b\x87\x9c\x52\x1a\x09\xd7\x3f\x83\x3b\xd5\x7e\x3c\x15\x28\x63\x29\xf2\x5a\xe5\xa2\x6e\x90\x0f\x69\xff\x1a\xc6\xfe\x37\x98\xb2\x62\x6c\x73\x4a\x4c\x9f\xa7\x61\x29\x03\x81\xbe\x44\xeb\xc4\x2e\xcb\xa2\xe8\xf8\x43\x39\x65\xc6\x32\x5f\x5f\x95\xe5\x0b\x22\x96\x56\xcd\xf3\xf7\xf0\x14\xfa\x26\x06\x37\x8c\x87\x04\xc3\xdc\x27\x51\xd7\x3e\x84\x2c\x3d\x83\x79\x37\x28\x31\x51\xe8\xd9\xcd\xbe\xd5\x50\x15\x13\x1a\x31\x4e\xb9\x48\xa8\x63\x55\x47\xa5\x5b\xfc\x30\x71\x30\xfa\xa8\xfd\xff\x74\x27\xa5\x41\x84\x19\xf6\xd3\x59\xbe\x4c\x88\x4a\x38\x4d\x43\xe9\xe9\x02\xe6\x14\xa7\x38\x4d\x13\xc0\x2e\xa3\xcd\xd3\x3c\x04\x9c\x53\x91\x06\xc6\x23\x09\x46\xec\x44\xd3\x61\x16\x55\x96\xd5\x5f\x33\xf5\x52\x1a\xe3\xa4\x62\x26\xbf\x27\x59\x80\xbc\xa4\x15\x32\x8e\x3c\x56\x87\xc5\xd3\xfa\x2b\x74\x6f\x52\x25\x81\xe9\x85\x8e\xb0\x31\x6d\x40\x62\x35\x98\x2c\x3a\x88\x10\x82\xdb\x2e\xc8\x76\x6b\x6c\x57\x73\x59\x35\xe3\x8a\xcb\xe4\x4d\x69\x25\x12\x7b\x8b\xab\x9f\xa7\xbc\xac\xa6\x82\xaf\x9c\x42\x94\x20\x02\x13\x77\x89\xe5\xa8\x12\xe5\xee\x90\x05\x51\xa4\x89\x77\x4b\xee\xcb\x42\x54\xea\xf9\xfd\x56\x4c\x1d\x4f\x16\x24\x09\x42\xa3\x4f\xe2\x7d\x84\x8b\x60\x01\x18\x86\x40\xe0\xf5\xc3\xfa\xe1\x76\xff\xf4\xf8\x78\xb7\xff\xf2\x78\x77\xed\x11\xcd\x9c\x85\x84\x22\xcb\xf6\x97\xd5\xdd\xfa\xcf\xee\x8f\x09\xc7\x46\xd4\xbd\xd0\x56\xe2\xf4\xa9\x2a\xf5\x59\x0d\xc2\x89\xd1\xf7\x60\x11\x49\x30\x33\x2e\xcf\x55\xb1\x81\xa3\xc0\x76\x85\x3f\x26\x63\xb4\x20\xad\x53\xf0\x75\xfd\xe0\x37\x42\x46\x38\xb1\xca\x3d\x59\xd1\xf4\xc2\x9b\x17\x2f\x93\xc5\x71\x4c\xfc\x6a\xf4\x15\xcf\xff\x3d\xc3\x19\x06\xfd\x23\x9c\x25\x81\xe6\x1e\x6b\xf8\x25\xc3\xfa\xc0\x12\x55\x46\x7b\x2a\x01\xce\x12\x6a\xc2\x68\x50\x4e\xda\x9e\xca\xa2\x2e\x87\x9e\x2a\x4b\x64\x68\xe4\x28\xe3\x8a\xe6\xa3\xcb\xe8\xb0\x44\x87\xe8\x07\x2f\xaa\xe6\xf9\x6c\x85\xb6\x44\xa5\x7f\xd9\x32\xed\xce\xa6\x89\x41\x3e\x85\x36\xd4\xe8\xf4\x4f\x39\x63\x71\x8c\xa8\xd2\xbd\xab\xf7\x21\x04\xee\x77\x54\xa4\x38\xe3\x21\xc1\xd2\xb2\xb1\xaa\xa3\xf7\x65\xdf\xa1\xce\x19\xe7\xd6\xd4\xeb\xac\xc6\x4c\x64\xeb\x20\xf5\x45\x25\xc6\x79\x12\x3a\x40\x90\x9d\x83\x83\x89\xcf\xb8\x16\x78\x4f\x88\xf2\x73\x78\xa1\x1e\xe6\x6c\x99\xb5\xdc\xd0\x94\x5a\x9f\xcd\x81\x06\x6f\xa0\x7f\x5d\x82\x84\xc8\x20\xdc\xb7\x37\x4d\x16\xff\x6f\xb7\x39\x71\x26\x89\x4d\x0b\xeb\xac\xc6\x6e\x25\xab\x77\xeb\x7f\x49\x26\x14\x53\xf5\xb8\xa4\xbe\x6d\xd6\x93\x65\x22\x21\x14\xa6\x57\xdc\xfc\x22\xea\xe7\x6d\x76\x28\x06\x37\x34\x88\x76\x98\x0a\x98\xb6\xd2\x71\x4e\x4e\xf6\x1e\x72\x80\xed\x59\x36\xef\x27\x18\x66\xa4\x98\x32\xe0\x03\xc4\x21\xee\xb8\x7b\x37\x90\xd0\x90\x78\x46\x73\x4b\xb1\x82\x84\x41\x93\xdb\x03\x2e\x91\xf2\x21\x53\xe5\xa6\x3c\x17\x9a\xfa\xc7\x32\x29\xe1\x9e\xe8\x36\xcf\xd7\x0d\x1c\x5d\x2e\x6e\x3a\x2d\xfa\x4f\xc7\x83\x58\x62\x9d\xe5\x7a\xeb\x4b\x6c\x3c\x48\xb9\x27\xf2\x18\xf8\x93\x56\xc5\x68\x74\x27\x3c\x30\x56\xc7\x46\x23\x19\xe3\xae\x02\x51\x7b\xd9\x6c\x7f\xb1\x90\x18\xa3\x3d\xf9\xc0\xf7\xf5\xd3\xdd\x80\x54\xda\x3f\x38\x0f\x25\x51\x01\xe6\xa8\xb1\xe9\xf7\x56\xd4\x38\xf7\xac\x9b\x38\xb1\xd6\x3c\x0a\x13\x60\xc3\x96\xd0\xd5\x4f\x05\x75\x3d\xd2\xbf\xe4\x3c\x12\x4a\xf1\x4e\xd0\xcf\xe6\x71\x1f\x8d\x85\xeb\xce\xae\x0e\x1e\x01\x60\x34\xd2\x31\x47\xcd\x99\x18\x1e\x81\x49\xdb\x97\xd3\x5a\xd7\xc7\x13\x5c\x78\x2a\x9c\x04\x1a\x7b\x35\x56\xcb\xea\xfd\xd4\x8c\xb0\x1d\x9c\x10\xab\xae\xb0\xb7\xd8\x4d\xa4\x5e\x5d\xd7\x37\x65\xb5\x99\xd2\x1f\xb4\x63\x4d\xe2\x3e\xe6\x2e\x83\xaa\xee\x40\xdd\xbc\x5b\x03\xff\xfe\x8d\x7f\xf1\x2e\x7a\xe3\x44\x13\xb4\xd6\x42\xeb\x7b\x71\x3a\x65\xc5\xe1\xa6\xac\x6c\x77\xf1\xfa\xfa\x73\x75\x4f\xce\xe3\x38\x15\xdd\xde\xe6\xd9\xd0\x60\x52\x00\x9d\x9c\x93\x44\xd2\xd7\xf7\xaf\xb2\xaa\x79\x5e\x9e\xa7\x0f\x99\x30\xad\x9c\x55\x71\x49\x95\xfb\x0e\xf0\xcb\xdb\x10\x24\x19\xba\xa9\x0e\x52\xe2\x8f\x42\x1a\x79\x66\xfa\x21\x71\x27\xe7\x34\x30\x71\x38\x6a\xf6\x58\x3e\x97\x99\xfa\x20\xa3\xc1\x69\x92\xc6\xba\x17\x2b\x73\x3e\xc2\x58\x47\xae\x1b\xaa\x02\x18\xb4\x6f\xe9\x28\xbe\x2f\x8b\xe6\xb9\xee\x7e\x1a\x94\x47\x5b\xf8\xe5\xf0\x54\x95\x52\xa0\xc6\xd8\xfb\xae\xb5\x08\x23\x43\xc5\xb9\x11\x76\x4b\x14\x45\x2f\x1b\xf4\xd4\x55\x0c\x38\x37\x4a\x79\xd2\x4b\x0c\xfd\x86\x98\x27\x37\x26\x8d\x05\xa2\xdd\x7f\xdc\xcf\x82\x69\xfc\x28\x1a\x62\xac\x61\xa3\xed\xaf\x59\x71\xd0\xe5\x71\x12\xfe\xce\x7b\xa3\x3c\x4d\x29\x86\xcf\xf7\x50\xd7\xe2\x00\x4b\x91\xe7\x43\xa2\x1e\x9b\xcd\xff\xa0\x7c\xf4\x8f\xcb\x2c\xf8\xe5\x27\x48\xc1\x56\x09\x6c\xe6\xcd\x81\x2b\xaf\xde\x83\x55\xff\x51\x25\x65\x49\x27\xf7\xf0\xb3\x83\x06\x6f\x4f\xe5\xf4\x75\x48\xc6\x30\x99\x85\x7a\xbb\x16\x43\x85\xc2\x30\x97\x82\x34\xed\x58\xe5\x8b\x2e\x96\x5f\xa4\x9e\x35\x74\xd2\x30\xf4\xd2\x50\xcd\x18\x49\x2c\xea\xa9\xf5\xe6\x2a\x09\xd1\x8b\xcc\x1c\x77\xd6\x5e\x62\x30\xe1\x8f\x2a\x2a\x1c\xfe\x70\x09\x55\x93\x99\x4c\x89\x0b\x65\x56\xce\x81\x52\xc4\xc8\x81\x83\x36\x6c\x45\x0e\xf3\x04\x65\x9c\x1b\x4d\xa0\xcf\x42\xaf\x55\xb9\x99\x36\x86\x70\x6e\x20\x34\xa2\x43\x92\x23\xeb\xf9\x18\x2f\x90\x06\x94\xe0\xa3\xd9\xea\xb4\xb8\x24\x08\xf6\xe3\x4c\x84\x0a\xa9\xb7\x50\x2c\x9f\xb3\xd3\xd5\xfb\x0f\x40\xfc\xe8\xec\xe7\xf5\x2f\x25\x0d\x45\x94\xba\x05\xde\x11\xdf\xfc\xaa\xca\xfc\x41\x67\x14\x4f\xa3\x28\x48\x9c\xb6\xc5\xb7\x7b\x27\x99\xe6\x1f\x23\x22\x21\x62\xd7\x8f\xad\x8b\x58\x56\x9e\xc0\xec\xf3\xf2\x7f\x1a\xd1\x94\xf8\x49\x55\xce\x92\xa0\xf0\x34\x52\x06\x0d\xba\x55\xe1\xdb\xf4\x1c\xbc\x3c\x25\x61\x47\x67\xf3\xf8\xb0\xf3\x05\x89\xcb\xcf\x90\x12\x01\x96\xf8\xa0\xd9\x95\x4f\x4d\x57\xa5\x49\x63\x08\xc1\x5d\x60\x60\x54\x67\x2e\x90\x90\x00\xe3\xdf\x02\xde\xae\x45\xb9\x39\xe7\x50\x4f\x9b\x4b\x7e\xdd\xbe\x34\xc8\x3f\x7c\xf0\x3e\x92\x98\x19\xcb\xdf\x78\xcc\x8a\x2d\x34\xbb\x9f\x37\x00\xeb\xe2\x35\x6b\xe0\x32\x9c\x48\x93\x24\xc0\x10\xf3\xea\x7e\x8d\x41\xd8\xac\xf1\x48\x69\x90\x60\xbd\xe7\x7a\xb5\xb8\x5b\x6d\x7e\x78\x1a\x9b\xd6\x1e\xd9\x46\xcd\x73\x71\x25\x26\xeb\x20\x4d\xa3\x18\x8d\x15\xa6\x6e\x6c\x5a\xfb\xa6\xc4\xe9\x79\x7d\x6e\x0d\xd6\x7a\xf9\xe8\x81\xdb\x69\xca\x42\x0c\x62\x4d\x59\xb5\xfb\x83\xad\xb1\x8c\xef\x34\x35\x02\x93\x3d\xcf\xa5\xce\xa1\x42\x87\x1e\xe3\x7d\x72\xef\x2f\x22\x48\x24\x64\x2f\x8e\xbe\x13\xd5\x01\x66\x14\x02\x78\xda\xfa\x15\xd4\x85\x9e\x73\xd9\xef\x54\x26\x81\x72\x18\x47\x9d\xcd\xd0\x15\x75\x6b\x43\x32\xed\x84\x29\xde\x97\xe5\xf1\x58\x16\xbb\xdd\x8f\xab\xf7\xd5\xee\xcb\x7c\xf4\x94\xca\x94\x63\xf6\x3c\x77\xe4\x66\xe3\xee\x8d\x54\x0a\x63\x7c\xdd\x0b\x8a\xdb\x3e\xc1\x96\x2a\x10\x69\xda\x55\xd4\x7a\xb8\x74\xaa\x69\x80\x0e\x29\x82\x14\xa6\xfc\x3d\xa3\xa9\x72\xe1\x67\x4f\x34\xe1\x79\xaa\x95\xa5\xbd\x3f\x0e\x79\x28\x66\x61\x95\x29\xc4\x84\x86\xce\x37\x3b\x0c\xee\x13\x92\x88\xdb\xf2\x00\xe6\x37\x97\x43\x84\xd9\x4d\x55\x1e\xad\xfe\xf6\x07\x31\xce\x87\x56\x03\x14\xb5\x6a\x7b\x6d\x70\xdc\x49\x38\xce\xcf\x55\x13\x29\x14\x75\x35\x83\x3a\x5d\x6a\x92\x10\xe1\xba\x4e\x08\xb9\x2a\x8f\xe5\x46\x48\x79\x89\x49\xf2\xe3\xb9\xc1\x50\xb9\x75\x24\x6f\xa1\x19\x68\x5d\xfb\x01\x42\xb8\x18\xa8\xe7\xa9\x34\x50\x8d\x38\xe3\xe7\x52\xb2\xa9\x91\x09\x22\x08\xa1\x79\x3e\x17\x27\x71\xee\x4a\x53\xa9\x51\x56\x6e\xbf\x6e\x7d\x98\xd7\x4c\xc1\xf5\xb9\x38\x00\xaa\x73\x8c\xde\x86\x08\x25\x58\xec\xc2\xb1\xf5\x5b\x76\xa5\x45\xd3\x8f\x52\x3e\x22\x84\xd0\x35\xf9\x15\x1a\x99\xcf\x0b\x91\xe7\xef\xf3\xfb\x82\x88\xda\x38\xc0\xed\xa0\x22\xcf\xb7\xcd\x50\x29\x71\x3a\x54\x05\x36\x4d\x51\x65\x2f\x50\xd5\x1e\x9e\xf0\x87\x3f\x0e\xb6\x20\x2a\xb4\xb6\x82\xbb\x50\x6d\xe0\xbf\x8b\xe5\xf2\xf7\x92\x66\x22\x4e\x54\x1c\xfb\xb0\xee\x5e\x34\xe7\x2a\x6b\xde\x9f\xa0\xca\x4a\x6f\xb1\x45\xcc\x35\xeb\x25\xd2\xb7\x0d\x9c\x3c\x58\xd3\x0f\x10\x0a\x4b\xbb\xc7\xf3\x3c\xbb\x34\x17\xb1\x62\x98\xae\x7e\xc9\xd4\x0b\x66\x2d\x9b\x06\x10\x76\xf4\xc7\xe4\x6e\xb4\x46\xcf\x0d\x45\x25\xae\x44\xa3\x9e\x61\x9e\x0c\x91\x8b\x18\x6c\x02\x6a\x25\xaa\xfc\xdd\x57\x1d\x17\x47\xab\x7a\x3f\xfe\xf5\x04\xa8\xcd\x06\xf9\xed\xe2\x5c\xe8\x45\xa1\x57\x85\xbe\xed\x6b\x84\x82\x92\x44\xba\x2a\xcc\x0f\xc8\x2e\xf7\x13\x41\xb5\xad\x26\x23\xf7\xbd\x2d\xe7\xd8\xb0\xdd\x1d\x67\x21\x20\x99\x3e\xfa\x30\x5e\x1d\xaa\x5d\x86\xc3\x12\x80\x60\x04\xd4\x50\x25\x13\xe9\x65\xfc\xb1\x98\x44\xa6\xcb\xea\xaf\x55\x39\xe5\x13\xf6\xe3\x68\x8c\xb8\x8f\x2b\x4f\xb0\xc1\x05\x0f\x38\xba\x9b\xe2\x55\x34\xe2\xd7\x90\xf5\x81\xf1\x15\x3c\xb4\xd4\x0b\x48\x20\x82\x84\x05\x23\x77\x5b\x70\x12\x48\xe7\x0f\x4d\xde\x08\x27\x04\x7b\xf1\x90\x94\xed\xea\x5c\x79\xe2\x01\x2e\xd2\xc0\x2a\x64\x3e\x8b\x42\x63\xf7\x4a\x2d\xa6\x15\xf8\xf1\xa5\x52\xe8\x50\xe7\x7e\x1e\xb7\xe6\xeb\xeb\x5f\xcb\xc9\xb3\x0b\x23\x71\x8a\xb4\x61\xc7\x97\xbe\xfe\x20\x14\x0b\xf0\xed\x3b\xa5\x6a\x68\x5f\x5c\xd1\x5c\xbd\x5b\x65\x98\x4f\xca\xe0\x42\x47\x0c\x68\xe7\x48\x3f\x55\xdd\x07\xd5\xa9\x6d\x5e\x5a\x17\xad\xd3\xfe\xda\xc1\x59\x36\x76\x76\x5e\x4a\x63\x70\xa1\x41\x27\xce\x77\xbb\x76\x49\xa1\x81\xd7\x3b\xdd\xce\x04\x70\x86\x7c\x84\x96\xb4\xff\x1e\x0e\x42\x96\xd3\x97\x0c\x26\xc1\x0c\xc7\xa9\x82\xf6\xe3\xec\x3c\xe5\x40\x7b\xc4\x0a\xef\x64\xb5\x55\x01\xf5\x7f\x37\x61\x82\x14\x05\xc6\x29\x50\x3f\x89\xf7\x1e\xeb\x24\x4c\x4c\x9d\x00\x71\xb1\x28\xde\xcb\x02\xe5\xa0\xdd\x41\x19\xf0\x30\xea\xc0\x03\x75\x9f\x6f\xf4\x87\x81\x72\x17\xaa\x2d\x57\x3e\xbd\x26\x43\x6e\x63\xd6\xb2\x00\x8c\xec\xba\xbf\xa7\x06\x7d\x9d\xac\x1c\x72\xdf\x72\x19\xb6\x6b\xcd\x0b\x88\x3e\x0d\x5b\xcd\xb9\x8c\x42\x63\x61\x9c\x3e\x41\x98\x61\x7e\xb0\xba\x71\xf8\x82\x6e\x1c\x65\xac\x4b\xdf\xae\x8a\x76\xb3\x18\x64\xe6\x64\xa4\x94\x74\x71\xfb\xb6\xa9\x86\x6a\xfd\xd3\x6d\x76\x38\x15\x24\x89\x02\xac\xf2\xe2\xed\xde\x65\xff\x3d\x67\x3a\x6b\xde\xdd\xdb\xfd\xad\x12\x8d\x24\xb1\x75\x8a\x30\x80\x9f\x54\x98\x25\x49\x14\x6b\x6f\xeb\x6a\xf1\xb0\x78\x58\xf8\x9b\x25\x29\x48\xe7\xd1\xae\xf4\xb2\xac\x60\x1e\xbe\x26\xe3\x90\x08\x3d\xe2\xd7\x1d\x92\x19\x4d\xf7\xf6\xb0\x07\xf2\x0d\x97\xbb\x8c\x89\x0a\x03\x57\xf9\x3c\xd7\xa0\x27\x8c\xb0\x5c\xc6\xca\x32\x59\xd8\xc7\x1e\xa7\x5e\xc7\xcf\x1a\x83\xc4\xdc\x8c\x4f\x36\xf8\x7c\xf0\xf8\xb6\x93\xc8\xaa\x94\x79\x68\x58\xfd\x41\x5e\x5f\x26\x54\xa2\x03\x7b\xee\x2a\xce\x9d\xaa\xc5\xd8\x24\xc9\x44\x0b\xc4\xd5\x38\xfe\xd4\xa6\xe9\x20\x20\x92\x0a\x2b\xac\xb7\xd8\x7a\x55\x46\x2e\x59\x60\x29\xd8\xf6\x58\xfa\x28\x5a\x03\xbe\x36\x0f\x00\xba\x9f\x4f\x4c\x11\x84\xac\xdf\xaf\x77\xc3\xe9\xc8\x80\x2b\xdf\xde\x7b\x2f\x5e\xa0\xb7\xb8\x92\x47\x51\x34\x65\xa6\x5a\x3f\xcd\xf5\xc4\xca\x34\x4c\x10\x1e\x71\xbf\x7e\x78\xdc\xec\xbf\xaf\x36\xdb\xf5\xa3\x77\xe9\xa5\x64\x04\x4c\xef\xfa\x5c\x65\x4d\x7d\x23\xb2\x1c\xd3\xef\x8f\x8f\x57\xfd\x30\x6d\xf3\xf9\x45\xd6\x6c\x44\x05\xb7\x55\xf9\xd6\x2f\x35\x15\xc5\x49\xeb\x1e\xdd\x9d\xff\x27\x13\xff\x3c\x67\xa3\xf5\xa6\xe2\x28\x15\xdd\x06\x7e\xed\x08\xa1\x9f\x44\xf3\xfc\x26\x3e\x70\x51\xa4\xa2\x56\x63\xc6\x06\xc1\x7d\x4e\x41\xea\x30\xb6\xb7\x8b\xd2\xc6\xc5\xeb\xa8\xfc\x2a\x75\x68\xf9\x98\xbe\xaf\x36\xeb\xfb\xd5\x64\x22\x68\xc2\xb0\xbe\xff\x58\x3f\x43\xe5\x70\x38\xeb\xe5\xe3\x30\x67\x2e\xb5\x34\x72\xa8\x6c\xfd\xad\xa8\x4b\xc7\xd4\x5a\x77\x63\x94\x8d\x16\x36\x88\x69\xbb\x7e\xdc\xcd\xe5\x98\xa5\x21\x84\xf3\xee\x46\x37\xcb\x85\xcf\x3f\xf9\xcb\x18\x23\xb0\xc5\xbb\xc9\xa0\x0a\x7b\xa0\xb2\x0a\x42\x91\x24\x7d\x63\xea\xfc\x0b\x52\x01\x17\x68\x2a\xf6\x59\xfd\x88\xfa\x36\x22\x5f\x9c\x4e\x93\x40\x58\x05\xd2\xf2\xc8\x4a\xa4\x90\x6c\x1d\x8f\x11\x65\x16\x57\x81\x92\x52\x7a\x7d\x79\xf5\x02\xfa\xff\xe3\xed\x5f\xba\x1b\xd7\x91\x2d\x71\xfc\xbb\xf4\xe8\x0c\xee\x80\x04\x1f\x20\x7a\x26\xd9\x72\xa6\xfa\xf8\x75\x2d\x39\xf3\x56\xf5\xba\x4b\x2b\x00\x04\x2c\x96\x29\x52\x4d\x52\xce\x74\x7d\xfa\xff\x62\x00\xa0\x48\x8a\xf2\x39\xf7\x3f\xf8\x4d\x2a\xeb\x98\x20\xc5\x07\x10\x88\xc7\x8e\xbd\x1d\xa8\xb9\x07\xa0\xbc\x36\x13\x77\x46\x85\x10\x13\xe0\x31\x2f\x4d\xb5\x90\x9d\x4b\x76\xf4\xa2\x63\x99\x62\x61\x42\xae\x81\x8b\xc9\x96\x9f\x84\xb5\x99\xdc\x15\x43\x9d\xf4\x4e\xdf\xa2\x69\xf2\xb7\xb2\x33\x9e\xce\xeb\xee\x2f\x65\x30\x3d\x4b\x76\xd9\xfb\x1e\xd8\x58\x15\xa5\x89\xb1\x58\xbc\x5f\x1a\x3e\xfb\xbf\x66\x16\x1d\xff\x82\x6f\xcb\xa1\x12\xc2\x6c\x51\x52\x45\x52\xb0\xf4\xdc\x5b\x5e\xc3\x5b\x75\x0b\xd5\xe4\x76\x93\x30\xf2\x09\x91\xd7\x06\xeb\x5b\x4b\x8f\x30\x8b\xc0\x50\x29\x57\x30\xe4\x5d\xa3\x90\x55\x5e\x52\x31\x64\x8a\x87\x82\xfa\x8f\x1f\xa0\x7c\x03\xb5\xbf\xe0\x2e\xf8\x5b\xfe\xb3\xe2\x4c\xd2\x6e\xba\x5d\x2d\x1e\x76\x2f\xab\xcd\xea\xe5\xc7\x6a\x77\xd7\x37\x19\x2a\x1e\x0b\xb4\x62\xd9\xb8\x7d\xc3\xc9\xc7\xe7\x49\xea\x9a\x43\xda\x1f\x58\xe7\x26\x9f\xe2\xe3\x14\x17\xa9\xe7\xa2\xec\xb6\xe9\xbc\x7c\x7b\x80\x2b\x2e\x14\x05\x49\x76\x1b\x51\x35\x6d\x3e\xd3\xc9\x28\x64\x48\x18\x8c\x66\x5f\x9d\x0a\x4d\xbf\xf8\xb9\xc1\xb7\xc3\x8c\x8c\xc6\xff\x9d\x6e\x1e\x2e\x20\x75\xf4\x85\x99\x12\x9a\x93\x6f\xd4\xed\xcd\xf7\x55\xf5\x7e\x3a\x4e\x66\x29\xa4\x71\xe2\x7c\xd9\x81\xce\xd6\x7f\xcc\x41\x87\x14\x68\xa0\x52\x6a\xe5\xba\x3c\x76\xff\xef\x84\xe7\x0a\xf7\xa8\xbf\xbd\x4f\xcd\x2b\x99\x06\xb4\x72\x2c\xc5\x61\xb7\xd7\x8e\x91\x58\x16\x0f\x73\x2e\xdb\x28\xc9\x35\xd1\xf8\xfd\x59\x93\xd4\x92\x0f\xa1\x94\xcc\x52\x4a\x74\x78\xf0\x9a\x17\x19\x3f\x1f\x07\x9e\x0c\xca\x78\x97\x19\x32\x3f\x50\x64\x89\x93\x6d\x2d\xbc\x95\xf5\x17\x51\x89\xd2\x23\xbf\x06\xff\x91\x63\x31\x5d\xda\x4a\x28\xe5\x2a\xa8\xab\x62\xd4\xf4\xe4\x07\x00\x52\xb8\x87\xbf\x5b\x8a\x74\x88\x2b\xad\x97\x94\xca\x94\x0e\x2c\x0f\xb7\x8f\x8f\x2d\x66\x8b\x1a\x0a\x1b\x57\x0a\x98\xbf\x77\x9d\x26\x68\x7d\x32\xe2\x94\xff\x8a\x61\x34\x53\x5a\x6b\x2b\x4d\xd2\x45\x42\x84\x83\xd8\xd0\x94\x5a\x62\xb4\xf3\x6d\x27\xd4\x08\xf2\x19\x05\x41\xe0\x59\x2c\x14\x86\x96\xd7\x96\xba\xb1\xff\x0f\xa8\xf7\x63\x35\x7d\x3e\x64\x86\x96\x4b\x91\x1b\x6c\xf3\x03\xba\xfb\xe8\xbf\x05\x46\x01\x09\x12\xc8\xa2\x52\xef\xcd\x5d\x45\xa8\xcd\xf1\xcd\x21\x00\x31\x45\x53\x52\xc5\x4f\x89\xf9\xfc\x7a\x7f\x06\x52\xdd\xba\x85\x0f\xac\xcb\x09\x50\x40\x99\x98\x33\xf7\x4d\x1c\xd4\xae\x19\xf5\x82\x2b\x93\x72\xdb\xe9\x7d\xfa\x24\xae\xf7\xcd\xb1\xe7\x8c\xca\x94\x91\x41\xe4\xce\xb6\x65\xa3\xe5\x9c\x2d\x32\x3a\x26\x2a\xc1\xd7\x47\x22\xac\xeb\x8c\x89\xbb\x80\x0e\x50\x05\x0e\xee\x74\x52\x16\x49\x31\x07\xfe\x1d\x3f\x92\x0e\x39\xd3\xa9\x2f\xc5\xbf\x63\xb9\x2e\x4d\xf5\x58\x9d\x6b\x7d\x3a\x74\x80\x3c\xd0\xfa\x75\x5d\xb6\x16\xd8\x3d\x9b\x7a\xd2\xa1\x32\x56\x7c\xaa\xef\x9a\xbc\xab\x6a\x27\x14\xe7\x2f\x17\x69\x99\xb1\x3e\x72\x25\xad\x4a\xf8\x3d\x50\xe9\xcf\x74\xcc\x0d\x09\x30\xd7\x48\xd2\xb0\x96\xc4\x79\xf4\x16\x74\x2c\x23\xda\x52\x5d\x95\x7e\x51\xea\x1b\x28\x8a\xe7\x1a\xa9\x92\xec\xd6\xf7\xbc\x9e\xed\xbc\x33\xae\x93\xc0\x82\x2d\x68\xa2\xe6\x65\x83\x75\xbb\x33\x79\xa9\x1f\xab\xef\x79\x69\x25\x59\x70\x0b\x79\xf1\xc7\xe4\x2c\x8b\x7b\x2d\xf1\x77\xbb\x04\xf5\xfe\x93\x44\x4c\x17\xfa\x5f\x27\x8b\x5f\xb1\xbc\xc2\x7e\x30\xb3\xc4\xda\x16\x51\x7a\x8d\xbb\xd3\x0d\x4e\x43\x91\xf5\xa6\xe4\xf3\xd8\x56\x8b\xb7\x8b\x35\xae\xd3\x4c\xc8\x70\x24\xba\x4c\x2b\x7c\x7c\xa5\x2c\x0e\xe8\xc9\x08\x3d\xb6\x3a\x60\xfd\x86\xa5\xa2\xbe\x97\xbc\x3c\xbf\xf4\x2c\xc5\xc8\x72\x57\x14\x43\xa5\xb2\x4c\x67\x59\x46\x80\xa8\xaa\x29\xf2\xf7\x7c\xa0\xb9\xe7\x8f\x2b\x63\xf9\xef\x8f\xc7\x21\x0e\x44\x8b\x98\x51\xa8\xb2\xad\xe1\x03\x0b\xac\x07\xaa\xc1\x99\x16\x2a\xa0\xf6\x1a\x97\x7e\x74\xb2\xd7\xff\x03\x8a\x00\x2d\x50\xaa\x5e\x92\xf3\x00\x6d\x35\xc4\x02\xe8\xce\xb7\x67\x36\xd3\x68\x7f\x00\x88\x92\x62\xf2\xfa\x64\x0a\x46\x9c\xf5\x19\x5a\xdc\xf5\xe8\x32\xad\x52\x2b\x76\xf1\x81\xfb\x5c\x15\xd8\x2c\x3f\x6f\xf2\x76\x82\xb5\xd2\x8a\x63\x28\x7a\xb9\xf2\xaa\x54\x04\x94\xcd\xab\xf2\x82\x44\x2c\xd3\x3a\x8d\x09\x2d\xa5\xe1\x47\x5e\xaa\x7c\x9c\x5e\xd6\x3a\xb5\x00\xfb\x7e\xf1\xdf\x62\x0b\x79\x31\xd9\x97\xb5\x86\x88\x52\x59\x3f\x9e\xb6\xeb\xc7\x6f\x96\xae\x72\xb7\xec\x2c\xc1\xe3\x4b\x7f\x29\xe0\x96\x84\xcc\xa2\xbf\x7c\x99\x7f\x8c\x4c\xf7\x79\x05\xad\x8d\xd5\xb1\x7c\x78\x98\x52\x27\x67\xda\x24\x9a\x3c\xfb\xe5\xd3\xe6\xfb\x7a\x10\xeb\x60\x60\x6c\x31\xae\xdb\xd2\xbb\xdb\xf5\x7f\x0f\xc3\x84\x6a\x05\xdb\x3a\x3f\x2e\xf3\xa1\x3a\x44\x86\x61\x64\xdd\x9f\x9e\xc5\x2a\xc3\xd0\x60\x64\xfc\xfb\x77\xea\xdf\x4f\xe6\x06\x0e\x47\xc8\xdf\xca\xf1\xbb\x46\x16\xda\x4e\xfb\x9d\xdd\xc5\x7b\x50\xe4\x3c\x86\x0d\x99\x51\x60\x15\x41\xbe\xd6\xed\xf8\xea\xdf\xa1\xbb\x88\x11\x0b\x78\x3c\x6c\x3a\xb9\x50\x20\x75\x03\x63\xc1\x03\xdb\xed\xdf\x52\x17\xe0\xea\xf7\xb1\x22\x19\xf8\xf1\xb7\xc4\x18\xac\x2c\xd8\x71\x60\xec\x2f\xea\x63\x98\x24\x3c\x98\x71\x78\x46\x3e\xd2\xff\x0d\xff\xdb\x8f\x4e\x53\xd2\x39\x91\xd8\xae\xcb\xe3\xa9\xdd\x56\xcb\x4f\xaf\x01\xe8\x60\x84\x57\xfe\xe9\x2f\x20\x20\x3b\xcb\x21\xfd\xd1\xff\x19\x28\xaf\x7d\xb7\x78\xee\x22\x13\xb7\xd7\x86\xfd\x61\x93\xc4\x16\x8a\xa5\xa0\x84\xd1\x67\x4f\x59\x4a\x9e\x24\xed\xe4\xb7\xf9\xc7\x04\x49\x82\xa9\x64\xf4\x83\x45\x45\x54\xc3\x84\x3f\x9e\x6a\x77\x74\xa3\x20\xfe\xff\xba\xa5\xd1\xbf\xd3\x54\x71\x82\x5f\xe5\x87\xbc\xf4\xa8\x95\xd1\xcd\xf1\x20\x45\x36\x10\xf1\x1f\x12\x58\x67\xc8\x43\x4b\x68\xff\x50\x51\xd7\xf6\xe3\x82\x68\x53\xfb\xa3\x59\x46\x1d\xd2\x2f\xab\xfb\xd5\x62\xb3\xda\xad\x9e\x9f\x6e\xbe\xf7\x07\x15\x78\xcd\xa5\x87\xe6\xed\xf6\x9c\xcb\x47\x8e\x89\xe5\x38\x21\x92\xa6\xc7\xd7\x07\xcb\x43\xe5\x7b\xc9\x31\x53\x16\x0b\x55\x9d\xda\x86\x78\x4c\x6f\x6c\x31\xe4\x71\xc0\x66\xe3\x87\x6a\x8b\x3e\xd8\xee\x6d\xd6\x75\xd5\x5f\xc3\x58\xc9\xb8\x43\xde\x34\x68\x63\x00\x57\x55\xdf\x14\xbe\xdf\xf7\x6a\x72\x0b\x85\x51\x99\x67\x12\x78\x03\x6f\xe7\x10\x02\x45\x9b\x51\x67\x4d\x0e\xf0\x3e\x42\x33\x21\x84\x86\xc4\x55\xbd\x26\x58\xdb\x59\xdc\xb9\xd8\x62\xe6\xbf\xfd\x25\x62\xdb\x03\xa3\x8a\xaa\xc1\x1b\x7d\xfc\x8b\xbb\x04\x99\x10\xc1\x9f\xc5\xa6\x7a\x47\xf3\xe4\x02\x82\xc1\x2f\xf4\x66\x48\xf2\xd8\xe6\xe5\x62\x36\xba\x77\xc5\xd0\xa6\xc2\x5e\x97\xab\xff\xea\xff\x98\x70\x3c\xb7\xd4\xb9\x6f\x30\xb1\x6b\x3a\x65\x44\xee\x6b\x03\x3e\x3d\xba\xa8\x46\x4e\xee\x66\xf7\xa6\xea\x66\xf1\x81\x35\x50\x01\xfc\x62\x2b\x43\x6d\xd2\xc4\xe2\x07\xda\x45\xa9\x5f\xc8\x03\xbc\xc3\x6e\xdb\xba\xab\x61\x44\x22\xe1\x4e\xc0\x40\xa5\x43\x0a\xaa\xe5\xe7\xe6\x24\xcf\x7c\x6d\xb3\xae\xd3\x24\x07\x8a\xc8\x34\x64\x7e\xfb\x3b\x3a\x35\x86\xf5\xcb\x63\x37\xcb\xec\x2c\x1f\xff\xa6\xc9\x24\xa5\x23\xac\xd4\x3b\xb3\xc8\xcf\x61\x52\x08\x8d\xe6\x60\xbc\x07\x4d\xfa\x99\x75\xcf\x6f\x99\x99\x80\x73\xa2\xfc\xe9\x76\xf5\xed\x1e\xda\x17\xfc\xc0\xba\xf7\xf8\x4d\x20\x52\xc2\x58\x7e\xe4\x0d\x10\x2d\x79\x5e\xbe\x79\x07\x7c\x74\x23\x26\x10\x96\xcd\xc4\xf1\x3e\xae\x3e\xf2\xe2\xa1\xba\xda\x53\x69\x02\xcd\xa9\xe2\x40\xed\x92\x77\x50\x1f\xfa\xb8\xdc\xb0\x50\x93\xcb\xbf\x85\x37\xd0\xb0\x6d\xaa\xbc\xa4\xff\x19\xec\x96\x86\x65\x51\x32\x24\xa4\xea\x1c\xc5\xf9\xbd\xc3\xb0\x2c\x83\x73\xe7\xfb\xe4\xae\x23\x10\xe8\x80\x57\xf7\xd0\xb4\x2f\x55\x51\x3c\x9d\xda\xe3\x69\xe2\x15\x9a\x08\x6d\x1d\xd3\xf2\x19\xc3\x01\xdb\x6e\x7b\xb1\x4a\x13\xa3\xb9\x67\xe2\x90\x13\xb9\x0d\x15\x3b\x9f\x07\xcd\x78\x26\xe6\x19\x5a\x8d\xb2\xd6\x26\x63\x9f\x0b\x68\x4d\x55\x1f\xee\x0a\x78\x1b\x80\x53\x4d\x2c\x6c\x3f\x69\x79\x3a\x3c\x99\x25\x14\x45\x55\x95\xcd\xf6\xf3\xd8\x03\x4f\x4d\xa2\x22\xf2\xb2\xee\x1f\x6f\xbe\x5f\x74\xbe\x85\xec\x02\xb4\xd4\xff\x7d\xe0\xb1\xfc\xff\xf9\x9f\xfe\x0e\x74\x46\xa1\x20\xe5\xf7\x76\xea\x2c\xb0\x95\x99\x2c\x88\x8c\x9b\xc2\xaf\x65\xde\xfe\x1f\xd0\xb8\x69\x11\x3a\x67\xd1\xb1\x3c\xe7\x7f\x83\xd6\x69\xf0\x3e\x32\x6e\x45\x0f\x7a\xe1\xd4\xf9\x32\xb6\xc9\xb2\x80\xca\x5e\xbe\x09\xe6\x01\x9a\xa7\x12\x09\xc2\x36\x83\x69\x38\xe3\x01\x26\x13\x26\x73\x0c\x54\x8e\xe8\xda\xe6\x33\xc6\xbf\x24\x32\xed\xf9\xd2\x1d\x5e\xef\x6e\x28\xdb\x98\x19\x29\xb5\x76\x1d\x03\xdf\x9e\x37\x53\x8a\x16\xa3\x20\x4a\xb0\x2f\x53\x7c\x9f\x33\xfd\x7f\xf1\x7e\xdc\x85\x74\x24\x08\xe9\xff\x8d\xda\xbe\x36\xfb\x9e\xe0\xcf\xe8\xd4\xca\xac\x9d\xca\x86\x1a\x69\x66\x8a\x11\x46\xab\x8c\xba\xf2\x7a\x1e\x35\x0b\xc4\xef\xbf\xa4\xd6\x92\x2a\xe5\x76\xf3\xb8\xc7\x43\x45\x8b\xf0\x5c\x99\xda\x56\x67\xc5\xb8\xcc\x68\x93\x92\xe2\xd4\xbe\x2a\xf4\x10\x6d\xf7\xe5\x7e\x61\x90\x05\x9e\xf1\x75\x43\xad\xe8\x4b\x6c\xd7\x2d\xba\x46\xca\xc9\x58\x60\x54\xcc\x70\x58\xec\xaf\xc3\x70\x83\x3a\x32\xc3\x6c\xf6\x0d\x34\xfb\x4b\xae\x3f\x63\xb2\x80\x32\x08\x4d\xdf\x51\x7e\x53\x40\xd3\xf8\x2d\xeb\xea\xc4\x14\x41\x10\x58\xed\xd2\x2e\x54\xa5\xca\xbc\xfb\x7b\x18\x08\x73\x4e\xf9\x6f\xaa\x03\xde\xfc\xbc\x69\xae\xfa\xb7\x22\x08\x33\x61\x51\x1c\xa8\xf6\x8b\xa2\xf8\x51\xb5\x8e\x2b\xae\x0b\xbf\x5b\x78\xc3\xe5\xa7\xd5\x2e\x1f\x9f\xc6\x54\x44\xf9\x26\x89\xed\x58\x2d\x46\x04\x4c\x87\x94\xc9\xdf\x91\x93\x78\xd3\x59\xd9\xb6\x0b\xe4\x2f\x32\xc2\xe7\xf9\x20\x82\x2e\x98\x4e\xfb\xfa\xe3\x59\xe2\x67\x38\xf9\x45\x10\x05\x48\x61\x00\x09\xb9\x8c\x78\xb7\x06\xaf\x26\x06\x86\x0e\x5c\xe3\xc2\x68\xfb\xe6\x2d\xcb\xfa\x48\x08\x53\x04\x29\x24\xe0\x13\x05\xb7\x04\x7f\xa6\xd6\xc4\xfe\xb0\x04\x6a\x69\xfa\xb6\xb8\x39\x7f\x37\x11\xa4\x2a\xa3\x22\x24\x51\x89\x4c\xea\x68\xdd\x51\x4d\xad\x03\x77\x15\xb9\x6a\x79\xf9\xb7\x5a\x0e\x44\xc0\x93\xc4\x35\xe8\xa9\x1a\x5b\xa8\x3f\xbf\x11\x4f\x4b\xe1\xaf\xcb\xd3\x88\x76\x82\xe6\x24\x5d\x4d\x63\x8a\x89\x14\x01\x17\x29\xf7\xf4\xb5\xbb\x23\x7c\x1e\xb0\x6c\x77\xbd\x58\x7c\x7f\x25\xc1\xd1\x6a\xfb\xe5\x2a\xd7\xf3\x65\x47\x11\x70\x9d\x44\x9e\x25\x0c\xde\xb1\xef\x3e\x9e\x42\x3e\x45\x90\x25\x19\x73\xb8\x96\x1d\x61\x23\x1d\x50\x64\x1c\xc6\x89\x20\x33\x51\xc0\x7a\x52\xa4\xe7\x53\xdd\x74\x3e\xcd\x5c\xa8\x24\x02\x11\x28\x72\x1f\x89\xfa\xe0\xce\x2b\x1c\xf4\xdc\x07\x22\x10\x22\xca\x1c\x4f\xc1\xe2\x78\x2c\x3c\x46\xf4\xaf\x94\x7a\x44\x20\xa4\xd5\xf8\xe9\xbc\x4a\xa7\x89\x62\x81\x2f\x3d\x25\x84\x08\x20\x05\x82\x57\xfd\x15\x89\x6f\xec\x4f\x50\x2c\xa0\x5a\xf8\xcd\xfd\x62\xfd\xb0\x5b\x3c\x3c\xbd\x3e\x6e\x77\xab\xed\xf7\xfe\x78\x92\x51\x2d\xee\x69\xf1\xd2\xff\x49\xc4\xa2\x4f\x8b\xde\x55\xb5\xef\x88\x99\x33\x56\x22\x50\x46\x06\x0e\xd5\xd8\x59\xfc\x99\x7a\xa3\x08\x74\x90\xb9\x9c\xa1\xdd\xad\x6c\x8b\xe1\x70\x9d\xe9\x30\xb6\x15\xc9\x7f\xdc\x2f\x36\xdb\x81\x06\x90\x08\x34\x53\x14\x19\x59\xe8\x16\x6d\xfe\x97\x4c\x52\xb3\xbf\x8a\x8c\x04\x8d\x6f\x3a\x3b\xe1\x49\xce\xfe\xce\x26\x22\x02\x13\xc5\x34\xa5\x97\x79\x4b\x05\xfd\x7c\x9a\xfb\x1f\xfd\x90\xe1\x82\xc8\xa1\x1d\x83\xca\xe2\xad\xc6\x41\x61\x4a\x04\xa6\xf3\x62\x2d\x2c\xe5\xc2\x1b\x15\x81\xd1\xe0\x44\x33\x4e\x65\xfb\x32\x86\x97\x88\x30\x08\xa4\xa7\xc4\xbb\x19\x22\xfc\xfc\xe1\xd0\x50\x4d\xcc\x67\xb9\xad\x62\xf1\x00\x50\x3a\xbb\xa4\xc3\x80\x05\x34\xd5\x76\x3e\x1f\xeb\x36\x38\x11\x86\xa9\xa4\x56\xc1\xc3\xe7\x28\x84\xee\x0e\x20\x65\x5d\x3f\x11\xea\xed\xbe\x46\xa4\xdb\xf1\x89\x65\x11\x86\x32\xb1\x9c\x4b\xcd\x00\x2c\x37\xe7\xe9\x8a\x30\x92\x49\xe2\x92\xb3\x3f\x46\xca\x5e\xfe\xb8\x89\x88\x84\xb0\x33\xa7\x55\x55\x3e\xd7\xf9\xbf\xb1\xa7\x86\xb9\xf8\x58\x61\x8c\x86\xaa\x87\x1b\xa7\x38\x37\x79\x83\x49\x1c\x98\x74\xc4\xb5\x70\x53\x1d\x8e\xd8\xe6\xdd\x7c\xa0\x94\x70\x33\x84\xce\x89\x30\x31\x4a\x58\x80\x0b\x09\x41\xbd\x5a\xf7\x7d\x72\xd5\x34\x0c\xd4\x90\x33\xd0\x51\x01\x4d\xf8\xa1\x44\xc8\x13\x46\xad\xd3\x6f\x79\x5d\xac\xf5\xb6\x9a\x90\xed\xb9\x51\x59\x18\x29\x6f\xee\xb7\xd5\xb2\x7b\xd6\xe1\x0b\x11\xc2\xb5\x49\x90\x93\xbc\xac\xab\x77\xac\xd7\x87\xe3\xe4\xa7\x64\x10\xc6\x2e\x4f\x78\x26\xfa\x9c\xdb\x8a\x42\x19\xdb\x04\x0e\x61\x46\xbf\x63\xed\xcd\x4b\x28\x55\x96\x8c\xfc\x03\x2f\x50\x21\x42\x95\xda\x6a\x9e\xef\x01\x1f\x4d\xe2\x50\x41\xaa\x46\x0d\x3d\xcf\x88\xf5\x78\x66\x29\x2d\xc8\xfd\x72\x92\x4b\x0e\xb4\xe8\x0e\x6a\x8e\x5e\x0f\xa8\x33\xe3\x63\x60\xaa\x08\xb5\x48\xd2\x9e\xaa\x75\xca\x61\xec\xc6\x60\xac\x3c\xe7\x4c\xe7\x2c\x35\x4b\x6a\xd5\x58\x38\xbd\xaf\x39\x8e\x00\x11\x1a\x95\x86\x62\xd0\x21\xf8\x34\x09\x73\x04\x0b\xc2\xc4\xcf\x1e\x57\x09\x7f\x2d\x49\x9a\x38\x3f\xe0\x74\x68\x6a\xbb\x86\x1a\x12\xd4\xf8\x80\x37\x1c\xba\x0a\x83\xf7\xcf\x42\x01\x1c\xfa\x44\x13\xa9\xa6\xcd\xe7\x9a\xae\x24\x8d\xb2\xff\xf6\x17\x32\xb6\x60\xfb\x2d\x37\x16\x29\x77\xcd\x57\xfe\x82\x9a\xdb\xc1\x82\x59\x6c\xc3\x9a\x74\xf8\x4f\xff\x76\x19\x4b\x43\x8f\x09\x9a\x14\xb1\xfc\x00\x13\xc7\x36\xd4\x70\xb9\xff\x9f\xde\x34\xb0\x28\x50\x14\x3e\x40\xd3\xe0\x80\x06\x45\xb0\x98\x07\x89\x45\xf6\x74\x33\xb5\xac\xb4\x63\x9c\x25\x89\xf1\x6d\x65\xff\x63\xb8\xf2\xfd\x79\x2a\x61\x56\xbf\x49\x55\xa5\xbe\x80\x08\x0a\x16\xeb\x98\x62\x69\xdb\x07\x44\xf3\xf0\xcc\x83\xe5\x67\x24\x4b\x82\xd0\x23\x2c\x37\x6d\x75\xbc\x60\x79\x11\x2c\x8d\x23\xa2\x48\x25\x08\xe5\x99\xcb\x5a\xb0\x14\x80\x30\x7a\xef\x8d\xda\x60\x51\x5c\xdd\x56\x86\x86\x85\xf1\x20\x4d\xd8\x80\xb3\x03\xca\x99\xbc\x81\x60\x9c\x65\xb6\x4d\x4b\xd2\x5e\xd7\x59\x8d\xee\xa5\x35\x47\x98\xce\x79\x26\x12\xa9\xdc\xec\x7c\xaa\xdf\xe8\x06\xc7\x73\x52\xa4\x9a\x50\x88\x8d\xda\xa3\x3e\x15\xf8\x85\x36\xf7\x17\x98\x4c\xc1\x84\xd4\xe0\x78\x8e\x20\xaf\xdc\x4a\x68\xa6\x3f\xa6\x94\x89\x06\xea\xe1\x13\xe0\xb2\x60\x42\x27\x14\xe4\x55\x1f\x58\xd7\xb9\x63\x45\xb4\x18\xc6\xe6\x2a\xc8\x5e\x30\x08\x41\x67\xfe\x2b\x50\xc1\xef\x16\x8b\x16\x9e\xb1\xfe\x5e\x9d\xbc\x09\x61\x10\x22\x73\xcd\x76\x6d\x2f\x65\xeb\x8f\xa1\xa2\x3a\x8e\xda\xe7\x7e\xb8\x84\x4c\x3a\xf1\xc5\xd1\x9b\x70\xf1\x8d\x4f\x19\x84\x2c\xeb\x4f\x90\xa4\xa0\xb7\x59\x6f\x1f\xaa\x73\x6e\xc5\x1d\x55\x3a\xd6\x91\x17\x0e\x1d\x51\xad\x4f\x28\x43\x04\xd3\xcc\x3a\x88\x3d\x75\xb8\x2f\x28\x76\x51\x6f\x5e\xbe\x75\x33\xd5\x91\x68\xfc\x0f\x6b\x0a\xfe\x07\x22\x24\x0a\xb8\xc5\x01\xfe\xed\x03\x70\xc1\x48\x30\xef\x7f\xfd\xef\xff\xf5\x03\xca\x87\xbc\xdc\x8f\x5a\xee\xaf\x75\x30\x0b\x86\x51\x9a\xb8\xfa\x81\xc2\xe5\x25\x1d\xef\xfc\xac\x19\x9b\x06\x13\xd9\xde\xb6\x6f\x70\x38\x77\x41\x0b\x66\x32\x41\xfb\xb6\xdf\x6c\xa6\x97\xf6\x74\x7f\x22\x62\xca\x72\xbb\xbe\x6e\x6e\x87\x8c\x40\xdd\x01\xf0\x12\x45\xcb\x53\x4e\xf3\x68\xd6\x6b\x8f\xa2\xc0\x62\xfe\xb0\xdd\x6f\x6d\x3f\xe7\xb9\x55\xcc\x5f\x2c\x8a\x83\x24\xec\x19\x3b\x17\x9d\xb1\x6a\xa6\x3b\x51\x14\x25\x16\xa4\xff\xab\xaa\x0b\xfd\x2b\xd7\xf8\x96\x9b\x56\xf5\x0d\x8f\x22\x4a\xc2\x84\xd0\xe9\x24\x7d\x72\x73\x3a\x8e\xee\x37\xcd\x12\x9f\x25\xf9\xcf\x53\x55\x9f\x0e\x23\x6d\x7b\x11\x71\x19\xd0\x97\x3b\x16\xd0\xe6\x65\x1f\x53\x44\x5c\x43\xc8\x7c\x07\xee\x33\x49\xf0\xf5\x5b\xfc\xe4\x49\x39\x06\xc2\xe6\xd4\xba\x58\xe6\xb5\xc1\x7a\x7d\x3b\xf2\x6f\xa2\x2c\xd0\xe4\xae\xde\xa2\xca\x1b\xb7\x4b\xfb\x1f\xca\x5c\xcb\x2d\xf9\xfe\xab\xdf\x79\xd3\x36\xdd\xf6\xa9\x9f\x5d\xb1\xc4\xe1\x6d\x44\x24\x22\x45\x6f\xfe\x11\x7f\x11\x63\xe0\xa0\x30\x2a\x22\x91\x32\x0a\x3a\xee\x4f\xea\xfd\x06\x9a\xfd\x39\x14\xbd\x36\x6b\x66\x1d\xc5\x48\x18\x9d\x58\x48\xa3\xcb\xae\xac\x9b\xe6\xd4\x59\xf4\xc7\xea\x30\x15\x3e\x12\x11\xa4\x2a\x73\xaa\x7e\xb7\x96\x05\xfa\x22\x22\x8c\x00\x54\xd6\x27\x93\x0b\x84\x2e\xd0\xda\x38\xdb\x38\xbd\x9c\x8c\x09\x6a\x49\xaf\x62\x5b\x23\x36\x3f\xc1\xf2\x3d\x4f\xec\x53\x24\x05\x4f\x3c\xc2\x83\x0a\xe8\xcd\x1f\x33\xd9\x38\x11\x29\x96\xa6\x67\x11\x19\x5b\xc0\x99\x9f\xae\x0a\x45\x60\xb5\x6e\xd0\x58\xb9\xd2\x33\x8b\x63\x3f\x04\xed\x97\xb2\x89\x1f\x8f\xef\xb9\xb8\x92\x31\xf4\x52\xce\xd0\x18\x1f\x55\x8f\xfd\xfb\x48\xeb\x28\xa4\x92\x43\x01\x87\x03\x0c\xea\xe8\x22\x42\x96\x44\xb6\xbf\xd5\x19\xb4\x25\x34\x13\xb0\x84\x88\x90\x87\x99\x1c\x50\x72\xd2\x31\xa4\x14\x8f\xd7\xf6\x6f\x26\x4d\xe3\x22\xc2\x2c\xa3\x59\xe4\x72\x32\x70\x9c\x5e\x34\x93\xa1\xd7\xe5\xa5\x36\xf8\xe5\xe9\x73\xa0\x87\xd7\x7f\xd7\x38\x48\xad\xd2\x5b\x4f\xda\xb9\xea\x9b\x7f\x44\x1c\x28\xbb\xcf\x0f\xb0\xfc\x94\x60\x9c\xa3\x1d\x10\x71\x18\x48\xca\x99\xce\x86\x8d\xe3\x5f\x65\xc2\x4a\x54\x6d\x4e\xef\xf0\x09\xfe\xe7\x62\x88\x28\x46\xbf\xd9\x43\x5d\x7c\xde\xe7\x06\xef\xab\x5e\x4d\x65\x74\x7e\x92\x26\x91\x67\x13\x27\x5d\x98\xce\x05\xb9\xab\xcf\x1e\x52\x9c\xc8\x84\x8a\xd7\x45\xd5\xb6\xd5\x5a\x63\xd9\xe6\x26\xef\xdd\xe6\x38\x35\x11\x55\x32\x3c\x2f\xc5\x2e\xf2\x47\x38\xe3\x3e\x3d\xff\x33\x2f\xbf\xe8\x9d\x16\x31\xd7\x32\xb3\xe2\xb7\x75\xf1\x79\x9e\x68\x77\x88\xcf\x1e\x75\x24\x62\x91\xb1\xd4\x36\x50\x34\xfb\xdd\x11\x9a\x86\x6c\xde\xf8\xcd\x09\x47\x0c\xe8\x76\xbf\xa6\x7f\x0a\xa1\x02\xa2\x3b\xdf\x11\x8d\xd1\x74\x43\x8c\x21\xcc\x08\x1c\xff\x7e\xfc\xfc\x56\x41\x31\xd2\x4a\x12\x31\x24\xb6\x13\x63\xb9\xde\xfe\xb0\x6a\xb1\xfe\x88\x0c\x80\xca\x9a\xae\x4b\x7f\xa0\xf0\x2d\xe2\x2e\x1a\x8d\x6c\x2f\x42\x5e\x4e\x05\x98\xba\xc3\x8a\xa6\xb4\x02\x29\xe1\x6d\x58\x20\x14\xb1\x34\x5a\x86\x03\x37\x66\xa8\x30\xf4\x95\x7f\x17\xab\x94\x67\x03\xdd\xdc\x39\x87\xdc\x8f\xe4\x82\xc8\x2b\x88\x63\x7b\x5b\xb5\xfd\x54\xd5\x01\x52\xaa\xa0\xd2\x7a\xf5\x71\x85\x47\x52\xc4\xda\xed\x87\x1b\x68\xab\xb3\x4b\x13\x63\x1a\x13\xed\x8a\x6d\x9a\xb6\xc1\xd7\xfc\xc4\xc5\xd4\xb2\x8e\x1a\x6c\xd5\x9e\xf2\xa8\x13\xbb\x11\x23\x97\xe4\xf9\xe6\x4e\xda\x62\x14\xee\xc5\x86\x69\xca\x12\xac\xef\x9f\xb6\x63\x7c\x9a\x88\x0d\x17\x59\x44\x73\x32\x2f\x8a\x6d\xf5\xad\x9a\x2c\x55\x23\x75\x6c\x01\xb9\xe8\x60\x82\x22\x09\x43\x99\xb8\xd0\xd5\x59\x8e\x59\xec\xab\x1b\xcd\x04\x23\x6f\x6e\xd5\xee\xc9\x20\xdd\x2e\xfd\x75\x22\x16\x68\xcb\x98\xe7\xf4\x3c\x06\xe5\x26\x91\x44\x3c\x8b\xdc\xee\xbb\xfa\x7d\x24\x79\xa0\xb9\xae\x19\x91\x24\x91\x95\xd0\xa3\xec\x6b\xdf\xf8\xd1\x4f\xbc\x24\x89\x13\xee\xb5\xb2\xa9\xa6\xbb\xa8\x65\x7e\x4e\xcf\x26\x89\x4c\x42\x97\xc0\x70\xea\x41\xa8\x67\xc1\x6c\x22\x49\xb9\xa4\xba\x55\x75\xc4\x72\x5b\x83\x1e\xfc\x4a\xaa\xad\x46\xc8\x1e\x8b\xe3\x25\x8b\x6f\x3f\xc8\xaa\xf1\xfd\x7c\xba\xbf\xf3\x8b\x3f\xe1\x41\xc8\xac\x0a\xfa\x71\x92\x05\x4f\xb2\xa0\x97\xce\xb7\x72\xe0\x1e\x02\x3c\xbe\x6c\x16\x07\x41\x36\xc8\xd8\x91\x16\xc6\x15\x39\x89\xb1\xfd\x4c\x44\x9c\x72\xe9\x49\xa6\xbb\x0d\xb3\x69\x6f\x97\xf3\xf3\x30\x11\xa8\x12\x57\xac\x79\xa9\xd4\x3b\xc5\x61\x2e\xa7\x1f\xfa\x31\xa0\x80\xd6\x0a\xb6\x7b\x6f\x8d\xfd\x11\x0c\x32\xb7\xc6\xb1\xdd\x57\x1e\x9d\x66\x9f\xd8\x39\x2a\x89\xd4\x56\x09\x9f\x6a\xf5\x53\x57\x7b\x9a\xfb\x77\xe7\x28\xc7\xfe\xdf\x38\x52\x36\x1b\xf2\x4f\x94\x49\xba\x61\x86\xfb\x44\xf4\x39\xae\x5a\x4f\x3a\x97\x45\xa2\x42\x2b\x14\x99\x4f\xf4\x00\xfc\xe1\x94\x6b\x12\x23\xbc\xfd\xb1\xde\x3c\xbd\x6c\x5c\x57\xfc\xee\x7e\xfd\xb0\xf6\xe9\x97\x44\x09\xc8\xac\xa2\x68\x5e\xbe\x0f\x7d\x77\x77\x5c\x67\x48\x94\xb0\xea\x5c\xd7\x70\x47\x30\x10\x81\xf0\x3d\x8c\x16\xf6\x35\xb9\x01\xcc\x42\xca\x31\x3e\x7c\x2e\x9d\x9b\x97\x4d\x56\x9c\xe1\x42\xf6\x2f\xf1\x1e\x41\x63\x2d\x2b\x2f\x0d\xd3\x7f\x29\x93\x59\x4a\xcb\xed\xa0\xaf\xf1\x8a\x05\x4a\x8c\x48\xa4\x3c\x2b\x60\xe8\x6f\x90\x97\x0d\x35\x39\xce\x8e\x4f\x03\xc6\x89\x1b\x00\xdb\x3d\xd5\x91\xbd\x25\x4f\xc3\x88\x47\xd1\x99\x14\xf4\x77\xbb\xaa\xe1\xa2\x0d\x7a\xe2\x6d\xce\xfe\xa7\xbf\x9e\x36\xb4\xd1\x79\x9c\xcd\xee\x38\x68\x3e\x15\x29\x0b\x2c\x3a\x40\x57\xc3\x76\xd1\xf9\x40\x2c\xed\xfc\x3d\x67\x70\xa8\x95\xa0\xbc\x1b\xd2\x2d\xb8\x41\x51\x10\xd3\x20\xe7\x5d\xf9\x00\x66\xb0\xeb\x38\xaa\xc5\xe1\x5e\x93\x46\xb1\x89\x58\x8f\x29\x71\x4d\x44\x70\x85\xa2\x4c\xa4\x71\x2c\xb9\x55\xc1\x6b\xf3\x1a\x17\xbf\xf3\x19\x31\x38\x91\xc6\xce\xb0\x6e\x9a\xa3\x33\x0b\xd3\x12\xcc\x78\x5e\xa4\x31\xc6\xc2\x45\xbd\x9b\x23\x28\x24\x6a\xad\xf1\x2f\x27\x21\xa7\x54\x33\x75\x73\xde\xe7\x25\xfe\xac\xab\xde\xc6\xa5\x49\x24\xa9\xe2\xf3\x00\x79\xe9\xb9\x17\xfa\x63\xc2\x72\x1f\x6e\xf7\x18\x06\xab\xed\xf7\xe7\xcf\x1a\x0e\x79\xff\x25\x12\x0c\x29\xe2\x56\x55\x69\xc5\xdf\x17\xcf\x6b\x42\x22\x9c\x07\x68\x5a\x9e\xe4\x40\x0f\x79\x67\x44\x9a\x06\x9a\xd0\x73\x5e\xce\x61\xa5\xdf\x90\xa4\xfc\x16\xa5\x76\xdd\x89\x5f\x86\xd8\x69\x9a\x59\x24\x4c\x59\xb9\x1d\x60\xf2\xd4\x5c\x58\xc8\xcf\x77\x30\xf9\xbf\x87\xde\x45\x9a\x89\x80\xea\x47\xb4\x49\x77\x0e\x0d\xea\xf9\xad\xfa\x2f\xff\x1d\x7c\xb8\x0c\xc0\x32\x67\xc0\x3b\xbe\x76\x5f\x8c\x18\x89\x87\x31\x59\x9a\x81\x4a\xcf\x05\xfa\x51\x30\x97\x8a\x28\x0e\x5d\x33\x7f\xfe\x41\x09\x89\xce\x85\xbe\x3b\x61\xe1\xf6\xc7\x2f\xb2\x33\x29\x68\x19\x38\xc0\x48\x17\x6d\x2e\x27\xe2\x1b\x22\x55\x49\x0c\xfc\xac\x70\x7e\x79\xa9\xff\x18\xde\xa7\xca\x80\x48\xca\xe8\xd3\xdc\xe7\x4d\xfb\x00\xd3\x29\xa5\x74\x4c\x68\x52\x57\x26\xf4\x6f\x56\x21\xf0\x73\x6d\x7e\x8e\x09\x51\xa4\x9a\x69\x03\xbd\x4a\x4c\x4b\xdf\x9b\xd2\xaf\x23\xd4\xb6\x1b\x8c\x49\x4a\xd2\x91\xe5\xe9\x30\x50\xfb\xf1\x07\x79\x96\x98\x69\xb6\x7d\x5e\xea\x45\xa4\x98\x45\xe4\x97\xd0\x22\x18\xa8\x2a\xac\xcf\x97\xcb\x0c\x39\x7e\xcb\x53\x3d\xdf\x02\x27\x52\x13\xb1\xa8\xff\x82\xd6\x1d\xf8\x82\x96\x50\xa4\x26\x09\x7c\x0b\x33\x85\x3b\x33\xac\xd1\x82\x87\x71\xcc\x5c\xe2\xfd\x76\xe9\xdd\x50\x1e\x02\x10\x97\xcf\xdd\xfa\x71\x71\xbf\xd9\x6e\xb6\x2b\x2f\x11\x25\x78\x28\x43\xea\x9a\xd8\x91\xfa\xe5\x60\xea\x8f\x37\x51\x1e\xc5\x48\xea\x19\x3f\xa1\x55\xfb\x7b\x68\xda\x61\xdb\xaf\xe0\x51\x92\x51\xb6\xfc\xdb\xb7\xe7\x9b\xe1\x02\xe1\x91\x63\xa9\x7b\x7f\x80\xdf\x03\xc6\x53\xc1\x23\x61\x0b\x08\xbb\xbc\xb1\x29\xfd\xd9\xd7\xc4\x23\xc5\x30\x3a\x07\xc6\x55\x3d\x02\x41\x0b\x1e\xc7\xb6\xf6\x65\x5b\x03\x0e\x79\x9f\x65\xe1\x71\x1a\x85\xd2\x65\x5f\x4c\x55\x1f\xce\x4e\x97\xe5\x69\xe9\x3f\x3e\x8f\xbb\xa8\x89\xa0\x24\xe4\x18\x8c\x63\x78\xbf\x32\x78\x17\xde\x69\x1b\x9d\xd5\xed\x4d\x2f\x1e\x27\x78\xca\x4c\x46\xc0\xca\xaa\x5a\xe6\x96\x08\xf5\x36\x37\x66\xfe\x3b\xf2\x54\xc6\xe4\x22\x36\x45\xf5\xeb\xf6\xd4\x57\xcb\x79\x2a\x6d\xab\xde\x4e\x55\x87\x23\xd4\xf8\xc7\xf0\x33\x8c\xb3\xf3\x3c\x55\xb6\xbe\x72\x3c\x6b\x86\xdc\xe7\x87\xbc\xff\x1a\x1c\x38\x70\xdf\xd2\xa6\xb7\x15\x05\x26\x57\xc9\x70\x04\xcf\xb2\x94\xea\xb5\x12\x4b\xa4\x66\xc3\xfa\x73\x08\x48\x15\x3c\x03\x2e\x6d\x61\xf2\x23\x1f\x0a\xe6\x0a\x9e\xa9\xd8\xb7\xa4\x3f\xe2\x2f\x47\x47\xc5\x46\xcb\x94\x67\x68\xd9\x43\x4d\x75\xaa\xdb\x3d\xe1\x3d\x1e\xf2\xb2\x73\xc1\x6f\x07\x57\x12\x61\x18\xa9\x1e\x6c\x02\x6f\xb8\xf2\x5c\xbf\xfd\x00\x0c\xf4\x99\xa4\x63\x59\xc9\x75\xa9\xf3\x1a\x55\x37\x17\x27\x4f\x04\x41\xaa\xd0\xe9\xf8\xd6\x5a\x4d\x23\x46\x0e\x80\xd4\x51\xf2\x78\x2a\x9a\xff\x19\x0d\xa4\xe0\x20\xb9\xb2\x04\xa1\xeb\x9b\x27\x52\x87\xeb\x2f\x2b\x13\x46\xad\x66\xff\xf5\x8f\x7f\x6e\x50\x9d\xea\xbc\xcd\xb1\x9f\xaa\x32\xd5\xe1\x19\xaa\x4a\xfc\x13\x7f\xd8\x9c\xb4\x33\x9e\xe7\xff\x97\x8d\xe0\x5b\x83\xff\xd7\x6f\x12\x5c\x62\x48\x85\xe6\xa2\xba\x44\x06\xce\x6f\x73\x5c\x85\x49\x60\x5b\x4f\x41\xbf\x4c\x7d\x10\xae\xd2\x28\xf1\xcd\xc8\xdf\xb1\x28\x7c\x75\x84\x53\xb3\xdd\x39\xd1\x85\xf9\x33\xd6\x3f\xf7\x95\x67\x5c\x98\xfc\x86\xea\x85\xbb\xbc\xe3\xf8\x02\xbf\x46\x6c\xe6\x7e\x24\x1a\x4a\x54\x6c\xf6\x58\xb4\xe7\x92\xde\xe8\x9e\xb4\x0a\x2d\x17\x22\xb4\x50\xa3\x13\x90\xf5\xf7\x85\x59\x4c\x6f\xc0\x93\xd6\x5c\x6d\x8f\x99\xfd\x77\x9e\xa7\x52\x70\x54\x41\x14\xf5\xd5\xd9\xa7\x0f\xac\x57\x2f\x37\x8c\x65\x57\xb3\xf7\xa3\xbd\x81\x9b\x2c\xf2\x8c\x92\x14\x6c\xcc\x66\x04\xb3\x20\x94\x94\x0a\x35\xbb\x23\xa5\x7f\xff\xf0\x7f\x8f\x42\xd9\xbd\xbd\x7d\x5e\xb6\xaf\x2f\xf7\x7f\x8c\x4d\xf1\xe8\xdd\x64\x81\x4a\x7d\x85\x84\x74\x1f\xfe\x98\xcb\x62\x64\x61\x9a\xc8\xf4\x2c\x60\x47\x24\x4a\x7f\xf4\xc7\x52\xe5\xc8\x6b\x86\xe4\xb3\x22\x0b\x33\xce\x32\xdb\xfc\xa8\x3f\x7b\xc9\x56\x91\x85\x42\xd3\xc7\xfd\x76\x82\x5a\x83\xd3\x89\xae\xc6\x31\x69\xc6\xd0\xce\xa3\x89\x1a\xc2\x1f\x33\xee\x41\x16\x65\x22\xea\x55\x0e\x0c\xd6\xb5\xa3\x96\x9a\xc7\x0a\x65\x89\x62\xcc\x39\x27\x3b\x28\x8a\x1d\xa1\x76\xfc\xfa\xca\x52\x65\xa8\xb1\x4a\x5b\x6e\x74\xc7\x31\xd7\x8c\xea\xd6\x19\x07\x4e\xdc\x43\x8b\xf5\x66\xdd\xff\x4d\x25\xe0\x5b\x53\x16\x7a\x12\xd0\x65\x99\xb6\x12\x15\xdd\x9e\x0a\xf9\x39\xa7\x36\xb4\xb8\x99\x08\x2d\x57\xc9\x33\x92\x6e\x5e\x91\x97\xd8\x6c\xab\xce\x41\xee\x7f\x99\xd2\x54\xd4\x07\x38\x6c\x5d\x13\x19\x70\x61\x64\xaf\x08\x5f\x54\xed\x7d\xf5\xf6\x38\xb9\x07\xc9\x03\xf2\x5d\xe4\x9b\xec\x22\x98\xdd\x9f\x58\xf5\xd7\x95\x9a\x6b\x70\x82\xd6\xe5\x50\x38\x64\xb4\x30\x33\xa9\xad\x62\xcc\x27\x42\x9d\xdc\x0f\xf6\x39\x77\x5c\x45\x36\xfc\x7e\x3a\xb5\xaa\x3a\x8c\x72\x68\x99\x4a\x91\xf2\x07\x3d\x4b\xf1\x5d\x55\xdf\x57\x50\x2e\x5a\xdb\xbe\x35\xff\x8b\xca\xd8\xa4\xdd\xcd\xd3\x72\x74\x35\x1d\xc5\x94\x26\x80\xa2\xc8\xaf\x2a\x8d\x88\x4c\x0b\x99\x45\x83\x26\xc3\x9e\x33\x7b\x72\xe3\x18\xf7\x40\x09\x47\xa1\xe8\x79\xb7\xc7\xd7\x33\x81\xa5\xc4\xed\x3c\x5b\xda\xe8\xfb\x7c\x91\xfd\x92\x93\xd1\xca\x92\xfa\x7a\xde\x35\x07\x96\x9d\x1a\x81\xc9\x49\x68\xd0\xed\x50\x1f\x58\xb7\x03\x7d\xb1\x4b\x2e\xac\xf1\xa9\x22\x48\x42\xad\xbc\x3b\x58\x68\x05\xb5\x1e\x10\xa4\x0c\x03\x73\x11\x32\x46\x05\x8a\x37\x78\xf3\x36\x5a\xb0\xc4\xf2\x4d\xff\xab\xca\xcb\x21\x2f\x9c\x33\x75\x83\x35\x27\xa2\xcc\xa6\x6f\xdf\xb0\x3d\x2b\x94\x58\x71\xdf\xf5\xb9\xe9\x52\x88\xd8\x60\x14\x7a\x22\xc6\xc3\x11\xca\xcf\xd9\xe4\x92\x48\x52\x16\x59\x8e\xb0\x0f\x84\xe2\xa1\xfa\x98\xef\xf4\xec\x06\x4a\xda\x7e\xee\x1e\x46\x2e\x62\xe7\x7f\x51\x4b\xc0\xb1\xc6\xce\xf1\xf9\xd9\xd3\x7d\x58\x36\xbd\x6f\xf9\x07\x96\xa4\x38\xe8\xff\xd2\xfb\xd9\xdd\x96\x46\x60\xc6\xc3\xa9\x08\xb3\xf9\x69\x28\xb2\x98\x19\x31\x54\x08\x51\xd5\xd7\xe1\xa0\xc8\xd0\xe6\x73\xed\x16\xd0\x85\x1e\x7f\xe2\xe7\x5d\x5d\x1d\xa6\x5c\x65\x6e\xbc\x08\x43\xaa\x31\x80\xd6\xc4\x07\xd4\x59\xc5\x4b\xf0\x90\x00\x61\x71\xd7\xd5\xb1\x5d\x97\x77\xaa\x7c\xe8\x3e\x95\x9f\xc6\x02\x30\xf3\x3e\xdb\x1d\xaa\x3d\x6c\x27\x7c\x48\x42\xc8\xd0\x90\x55\xce\x55\xf5\x13\xf1\x3d\x5e\x9e\xd9\x2c\x85\x90\x8c\x53\x17\x80\xdd\xa4\xef\xba\xc8\xc4\xb9\x70\xe3\x9b\x50\xae\xd2\xd7\x59\x67\xa8\x2d\x3b\x78\x3b\xd0\x74\x11\x42\x67\x82\x88\x17\xc8\x6a\x3f\x95\x8e\x7d\xb5\x3f\x2a\xd0\xf4\x7a\x2b\x6b\x55\x0d\x3c\x38\xa1\x65\x48\x79\xa5\x5d\x8f\x1b\xb2\xa4\x13\x03\x40\xec\x70\x22\x6a\xa5\x7c\x2b\x65\x4f\x0e\x39\x7e\x62\x13\x45\x64\x29\x6e\x5f\x16\xeb\xc7\xdd\xed\xea\x7e\xf1\x0f\xff\x5b\xc6\x58\xaa\x42\x9d\x17\xa7\xa9\x3f\x0b\x41\x8c\x49\x32\x30\xd9\xab\x76\xff\x5c\x57\x66\xba\xc8\x21\x40\x46\x10\x8e\xf5\xcd\xd3\x48\xbb\x7c\x3c\x2a\xd4\x59\x26\xfb\xa2\xb9\xcb\xa9\x9d\x91\x35\x67\x9f\x0c\x18\x48\x02\x20\x01\xa5\x87\x6e\xf1\x83\xfa\x01\x9a\xdc\x27\x48\x20\x0a\xac\x06\xc9\xf2\x54\xd3\x5b\xed\x4b\xa9\xd7\x24\x2b\xce\xcf\x14\xa5\x09\xcd\x0f\xd3\x77\xd3\x16\x7d\x67\xbe\x80\xc8\x30\x9a\x1b\x9b\x9b\xfb\x73\x79\xf6\x8a\xb1\x9a\x5c\x38\x8e\x24\x45\x80\x87\x5d\xe3\x04\x99\x27\x6f\x33\x36\x00\xdd\xf4\x5e\x68\xfc\x7d\x2d\x83\xf4\xb7\x34\x44\x05\x24\x41\x40\x3e\x7e\x01\x63\x1f\x13\x12\xa6\x99\x83\x84\x51\xf7\xe1\xb8\x63\x7c\xe0\x36\x42\x92\xda\x6c\x6e\xb7\x5d\x62\xdb\x52\x8a\xa2\x0b\x25\xd6\xa5\xa9\xd8\xe4\xcb\xa5\x22\x25\x94\xe3\x99\xd2\xe8\xe9\x57\x79\x89\xf8\x06\xdf\x50\xd8\x2d\xe0\xd3\x97\x98\xfe\x79\xeb\x0d\x29\x5a\x57\xb4\x3d\x17\x57\x3a\x7b\x41\x62\x3b\xfe\x11\x79\xa2\x85\xf3\x75\x9e\xd7\x3b\xd4\x79\xbb\x63\xc1\xc8\x05\x07\x9e\xb2\x08\x6c\xaf\xbf\x97\xd4\xf8\x63\x30\xbd\x38\x47\xab\x6c\x5c\xb5\x50\xe0\x43\xd3\x4f\xab\x2c\x4c\xa4\x0b\xc2\x36\x47\xeb\x81\x8c\xf6\xb4\xc9\x57\xc8\x18\xd0\xe3\x1e\xa0\x7e\xbf\x19\x94\x58\xcf\xd5\x0a\xc8\x24\x10\xf2\xfe\xf0\x49\xa6\xe4\xbe\xf2\x5d\x10\x02\x20\x08\x23\xe9\xe3\xe0\xa4\xff\x6b\xac\x8c\xa7\x58\xfc\x0e\x63\xa7\x0b\x80\x87\x1e\x28\x71\x57\x74\x8f\xf6\x5a\xe6\xaa\xaa\xcb\xb1\xbc\x91\x4f\x60\x81\x4c\x18\x05\x4a\x0b\xad\x97\x55\xf5\x3e\x0d\xc9\xc6\xaf\x5e\x65\x51\x3a\x84\x6e\x3e\xe3\x7c\xdb\x44\x7f\x75\x05\x92\x5c\xb5\x02\x4d\x9b\x88\xc9\x5c\xd7\x89\x05\xc6\x59\x09\x1d\x07\xb0\x5e\xdf\x3c\xed\x36\xdb\xc5\xb7\x55\xb8\x7b\x7e\x59\x11\x50\xdb\x17\x67\x00\x13\xcb\x88\x43\x10\xaa\xef\x9e\x0a\x2c\xf3\x59\x03\x30\x41\x26\x8c\xc7\x74\xf5\xd2\xf6\x85\x7e\x2d\xf3\x0f\xac\x9b\x49\xd1\x15\xbc\xce\x2c\x55\xd0\x5f\x8f\xf3\x15\x0d\x19\xa4\x40\x45\xb7\xc5\x8a\x84\xde\x86\xbb\xa9\x0c\xb4\xe0\x8e\xb8\xc4\x89\x03\xf6\x47\x10\x4d\xec\xdb\x82\x71\xdd\xfe\xe7\x1c\x0d\xca\xac\x09\x1a\xcf\x1f\x19\x86\x81\x47\x31\x5b\x77\xf0\xc9\x0c\xf1\x78\xb3\xbe\x91\x0c\x21\x21\x4a\x88\xcd\xbe\xfa\xb5\xbb\xad\xd4\x85\xb5\x97\xa1\x64\x34\xe7\xb0\xdd\x63\xfd\xe7\x54\x76\x43\x48\x96\x98\x60\xd8\x13\x47\x59\x0d\xff\x70\x0c\x12\x5a\x81\xaf\xdb\x4b\x50\xb6\x64\x98\x78\x92\x8d\xcd\xe7\x41\x56\x93\xb2\x9b\x8c\x42\x5b\xc4\x3c\x87\x2c\x1b\xea\x8e\xf0\xe7\x47\xc8\xa3\x21\xdf\xc5\x06\x8b\x62\xc0\x2b\x25\x64\x1c\x67\x14\x98\xdc\xad\x5f\x56\xdb\x97\xc5\xed\x6a\xd3\x1f\x49\x65\xaf\x8e\x1d\xec\x40\x0f\x16\x99\x8c\x95\xb4\x44\x8b\xeb\xe5\xdf\xcc\x3d\xc8\x58\x6b\xc9\xce\x84\xac\x8e\xd4\xe9\x3a\xe5\xbb\x90\x09\x5a\xc1\x3e\xda\x37\x28\xbe\xe9\xdf\x59\xca\x6d\x46\xf4\xb1\x2a\x17\xb6\xf1\x3c\xaf\xca\xcb\xda\xe4\x18\xab\x3a\x0e\x9e\x07\xc7\xdc\x45\x39\xc8\xcc\x4b\xc8\x57\x54\x23\x98\x74\xf5\xc8\x2c\x60\x94\xc7\xe9\x5c\x08\x09\x23\x21\x47\x21\xb3\x54\xc7\x36\xf7\x5d\x9e\xa0\xb0\x60\x24\x77\x48\xc4\x48\x7a\x53\x45\xee\xc8\xdb\xef\xf2\x92\x8c\xfa\x04\x98\x28\x21\xd0\x84\x8d\xab\xc5\x24\xc8\x91\x10\x31\x5a\x02\x37\x4f\xcf\xcf\xab\x17\xbf\xbe\x1f\x6f\x6f\xfa\x01\x3c\x02\x17\x74\x1c\x3e\x8f\x03\x32\x39\x7f\x5c\x44\x12\xbd\xcf\xa2\xf1\x37\x91\xe0\xba\xdf\x98\xdd\x1a\xa4\x04\x46\xeb\xd1\x3e\x90\xcf\x69\x79\xd9\x1b\x3f\x48\x65\xca\xd6\xa1\xca\x77\xfc\x24\x50\xed\xf8\x2a\x2a\xc8\x28\x18\xea\x49\x46\xeb\xea\x70\x57\xd5\x2a\x97\xc5\x55\xfe\x5d\x7f\x2a\x93\xe6\x9c\xbe\xd9\x94\xf9\x91\xba\x85\xfe\x2a\x29\x28\x55\x62\x15\xd2\x1d\x51\xd9\x0d\xe6\x05\x29\xc2\xe7\xcd\x74\xa4\x66\x19\xd5\x8d\xcc\x20\xdc\x95\x28\xed\x76\x47\x99\xff\x45\x91\xf7\x9e\xae\x0a\x32\x69\x99\x4e\xa9\x0a\x3d\xfe\x42\x2a\x10\xe0\x54\x22\xca\xcf\xe5\xa9\xd4\x7d\x57\x65\x7b\x99\x6c\x52\x81\xe2\x84\xbc\xd6\x8e\x4f\x68\x18\x26\xa9\xc0\x30\xdf\x83\xb8\x28\x8a\x9f\x55\xfd\xde\x8b\xc1\x09\x15\x6a\x49\x9e\x41\x01\xa7\x52\xed\xa9\xeb\x6a\x7c\xe9\x10\xb5\xf0\xd9\x30\xd7\x02\xe1\xab\x06\xde\x07\x5a\xeb\xc5\x1b\xf4\xb8\xaa\xee\x0c\x0a\xfe\x56\xcf\xff\xb8\x79\xf2\x9c\xda\x42\x31\xa6\x51\x9e\x95\xec\x6f\xf3\xa6\xed\x62\xce\x75\x79\xff\xb9\xdd\x57\xa7\x06\x4a\xdd\xee\x9b\xa1\x63\xac\x58\x96\x7a\x1c\xf0\x2b\xf1\xf1\x19\x53\xa0\xad\xf5\x4e\x8a\xd1\x2a\x8a\xad\x06\x1b\x7d\x4c\x3c\x1d\xbc\x7a\xeb\x1f\x57\x4d\x88\x8a\x63\xd7\x43\x04\x75\xfe\x88\xed\x73\x9d\x7f\xe4\x05\x5e\xe4\x8f\xa6\x27\x39\x06\x7f\x6c\xbb\xf0\x92\x9a\x38\xe6\x0d\x8e\x8a\xb9\xa0\x6c\xfa\xc0\xa3\x5e\x9c\xda\x7d\x55\x9f\x53\xe6\x2a\x09\x13\xca\x93\xca\xd3\xe7\xb2\xae\xca\x7f\xcf\x43\x09\xaf\xa4\xe8\x54\x12\x31\xaa\x96\x92\x1f\x44\x45\x05\x3d\xad\xe6\xab\x24\xca\x6c\xcb\x5d\xb5\x93\x79\x09\x13\x45\x2b\xa1\x12\x99\x10\xb5\x88\xc5\x96\x8c\x53\xa1\x2a\x0d\x39\x35\x28\x2c\x73\xbd\x39\xc9\x89\xe4\xdc\xfc\xa6\xa8\xd2\x34\xb5\xc8\x04\xcb\x43\x09\xb5\xa6\x9a\xba\xf3\x74\x46\xf4\xe0\xa3\xa5\xad\xb8\xc8\x64\xe4\xd1\xa0\x77\x35\x22\xe5\x24\xea\xc5\xc7\xdb\xb8\x6b\x7f\xcc\xfe\xed\x4f\x56\xd2\x52\xbc\x4a\x2f\xdf\x79\xa5\x44\xaf\x38\x1a\xe2\x5e\xf5\xf8\xdc\xb6\x6f\xd7\x15\x2a\x0b\x20\x49\x7d\xb2\xa3\xd9\xe7\xc7\x7b\xfc\xc0\xb1\xc2\xb4\xff\xc1\x2c\xc9\x08\x24\x77\x80\x77\xa4\x86\xf9\xab\x64\x0b\xd7\x22\x82\x2f\xad\x95\xca\x12\xb4\xcd\x2c\x76\x1f\xee\x26\x1b\x71\x7a\xfa\xc3\xc6\x10\xad\x9e\xa3\x5c\xb2\x6d\x52\x04\x79\xb2\x1d\x28\x51\xc0\xbc\x18\xb5\x50\x82\x29\xcb\xbc\xe5\x8c\xe6\xcf\xbc\xc4\xce\x70\xfe\xc8\x4b\xfc\x84\x5a\xdf\x60\x51\x40\x7d\x1e\xad\xbd\x4a\x77\x4f\xe4\x3f\x97\x78\x55\x10\x64\xb4\x7f\x75\x1b\xc0\x00\x58\xa9\x64\x10\xd0\xd6\xd5\x58\x91\x31\xfb\xc9\x87\x79\x55\x25\x03\x24\x48\x1d\x1e\xf2\xf6\x11\x7f\x11\x9f\xd7\xa5\x06\x86\x50\x32\x35\xd4\x08\x72\xa6\x73\xbb\xcd\xbb\x77\x8d\x65\xef\x70\x8d\xbf\xf5\x65\x21\x57\x49\xce\x02\xcb\xe5\xdf\xf4\x42\xa3\x42\x49\xc5\xc8\x13\x7a\xce\x15\xb5\x65\x5c\x4c\xea\x59\x87\x53\x49\x93\x51\xce\x88\x02\x85\xc1\x96\xe1\xdd\x60\xa5\x82\x58\x64\x3d\x73\xfe\xa8\x6e\xa3\x54\x80\xda\x35\x9b\x50\xe2\x38\x87\xf2\xaa\x9a\xad\x50\x2a\x84\x60\x88\xa7\xb7\x0f\xba\xad\x06\x75\xd6\xc9\x52\xd6\xb1\x95\x78\xff\xb0\x78\xc2\x95\x25\x05\x9a\xbc\x52\x0d\x22\x34\xfd\xf2\xfc\x62\x39\x62\xa8\x58\xf7\x15\xff\x7c\x5d\xfd\x89\x8f\x56\x36\x7b\xf4\xf9\x31\x65\x44\x5c\xd3\xd9\x2e\x50\xef\x83\x8e\x5d\x65\x82\x48\x61\xcf\xd6\xf5\x50\x95\xf8\x79\x57\xd5\xaf\xcd\x59\xa7\xca\x0f\x64\x3a\xc6\x5e\x2e\xd6\x6d\x5f\x53\x28\x91\x32\x90\x52\x3e\xc5\xaa\x47\x4d\x5a\x71\xaf\xad\xaf\x99\xa9\x60\x40\x39\xca\xd1\xee\xb6\xac\x87\xab\x2e\xea\xd2\x93\xef\x60\x90\x3b\x25\x8d\x52\x5b\x9a\xd4\x79\xc3\xa2\x83\x80\x53\x7f\x1f\xbd\x53\x4f\x29\x3e\xe5\x8e\x9a\xff\x11\x1d\xf0\x94\xea\x20\x8f\xd8\xbe\x53\xbb\xfd\xdf\xf2\x82\x75\xc8\x34\x21\x1c\xce\xfd\x95\x7f\xaf\x97\x42\xb3\x88\x47\xd2\x45\xbe\xd8\xfe\x59\x56\xbf\x0a\xd4\x3d\x46\x45\xb3\x24\xa5\x08\xc4\x86\xf1\x50\xe0\x3d\x7a\x99\x6e\xa1\x19\x07\x52\x38\xfc\x18\xea\x14\x9f\xa3\x73\xcd\xb8\x54\x86\x7c\xb8\xdb\xbc\x39\x9e\x48\xe2\xaa\xaa\x3f\x2d\x2e\x6f\xd3\x39\x51\x83\x2e\xb7\xf1\xfa\xd2\x4c\x33\x0a\x8e\x6c\x74\xd1\x0e\x81\x53\xa3\x29\xa1\xa3\x38\xa5\xf5\xab\x73\x63\x6e\xe1\xf3\x4a\x1b\xaf\x8e\x53\x46\x40\x63\x2c\xdf\xf2\xb2\x7f\xbc\x84\x47\xcc\xc6\xfd\x25\xbc\x39\x87\x62\xbc\x96\x74\x9a\xa6\xe4\xb5\xbd\x90\xfc\xe9\xac\x78\xa8\x1f\x99\x39\x3a\x3d\x8b\x03\x39\xf6\xa1\x98\xe6\xda\xc2\xc0\xbb\x5d\x86\x40\x63\x0b\xd3\xe2\x59\x11\x6f\x18\x8c\xeb\x8c\x25\xa9\xfd\xbd\x5f\x50\x6b\xca\x68\x9e\x3b\xa5\xff\xe8\x07\x29\x91\xda\x34\xdd\xee\xf6\xf5\x65\xb1\xed\xf9\x8d\x85\x16\x69\x44\x7e\x9a\xf5\x6e\xbf\x61\xf9\x03\x06\x72\x4c\x93\x7b\x16\x8a\xd1\xa6\xaf\x11\x5a\x12\xbe\xd9\x41\xe0\x2f\x04\x32\x26\x3c\xc6\xe6\x24\xeb\xaa\x81\xfe\xcf\xae\xe4\xb4\x3c\x35\x4d\xe7\xde\xee\xba\x9d\x7d\x3a\xb9\xe7\x12\x13\x5a\x86\x52\x3a\x48\x49\xaf\x4b\x5d\xb7\x17\x2c\x6f\x42\x4b\x26\xa5\x13\x64\x73\xe5\xa3\x59\x79\xd2\xf9\x47\x92\x8a\x51\x6d\xdd\x5b\xe5\x8d\xc5\x4d\x0f\xe6\xa5\x02\x87\xf6\x3b\x5b\xbe\x87\xbc\x6c\xa7\x79\x7c\xad\x23\xe7\x04\x94\x5d\xa0\xe2\xc1\x9e\x8e\xc5\x70\x10\xa2\x69\x2d\xc2\xc4\xf8\x1c\x85\x07\x5d\x4c\xae\xa5\xc3\x73\x1a\xe3\x19\xeb\xa6\x2a\xa1\x98\xd7\x97\xa4\xc1\x5e\x97\xa0\xa7\xf3\x7a\xea\x66\xf7\x6a\xea\x95\x6b\x8c\xac\x0e\xc6\xea\x69\x74\x47\x28\x2d\x00\xda\x81\x44\xf2\x6a\x48\xee\xe0\xc6\x18\xe0\x54\xce\x28\xae\x31\x84\x0b\x0c\x42\x8b\xf8\xf6\x30\xd9\x85\x57\xb1\x9e\xa5\x57\x19\x5a\x24\x0c\x78\x42\x6e\x4b\xb3\xaf\x7e\x75\x41\xf9\x78\x0d\x4f\x7e\x86\x5b\x45\x00\x59\x9f\xe1\x4e\xc8\x02\x4e\x68\xcb\x9d\x6f\xaa\x9c\x73\x3d\x90\x25\x56\xcf\x54\x9e\x3e\x07\x9f\x18\x23\x30\x7c\xd0\xb2\xbe\xc4\x76\x58\x9c\xc4\x08\x53\xd7\x6f\xab\xaa\x52\x53\x52\xf2\x58\xe5\xbe\x2e\xeb\x06\xc5\x41\x18\xf8\xc6\xea\xaa\xb3\xf7\x16\x71\xdd\x39\xfa\x93\xf6\xbf\xf1\x3c\xc7\x38\xb2\x2b\xe4\x61\xfd\xb8\xfb\xd9\x53\x11\x60\xac\x33\x4a\x7c\xe4\xcd\x06\xeb\x8f\xfc\x5a\x99\x0f\x13\x96\x10\x72\xc8\xaf\x68\x4c\x12\x49\x7b\x23\x39\xa3\x77\xf9\xef\x07\xf8\xed\xb2\x39\xe3\xd7\x98\x4a\x9b\xce\xda\x61\x67\x62\xfa\x87\xe5\xc6\xe6\x72\x36\xd5\x87\x2d\x25\x4f\x88\x33\x30\x8b\x23\x6a\x6d\xa5\xfe\xc3\x7b\x5b\x41\x1e\x5f\x59\x04\xb1\xc4\x81\xca\x37\xc5\xbc\xde\x1a\xa1\x30\x31\x55\xea\x74\x55\xd2\xca\xb8\xaf\xda\x16\xbd\xca\x6f\x77\xd8\x50\x26\xfb\xe6\x79\x39\xc2\xd0\x20\x70\xc5\xcf\x5d\xcf\xf9\xe1\x74\xe8\x8c\x63\x5e\xbe\x7d\xab\x60\xd2\x12\x8b\x52\x26\xe8\x75\x41\x1f\xd0\x43\x9a\x50\xa2\x04\x5f\xf2\x7f\xbe\xdb\xf4\x4c\x4d\x73\xd8\x09\x54\xa9\x32\x69\xaf\xe4\x57\x12\x50\x85\x3a\x2c\x5d\x68\x75\x9e\x3e\x4a\x25\x04\x92\x75\x9b\x77\x5e\xbe\xf5\xd8\xeb\xf3\x20\x0d\x56\xd3\xa9\x73\x46\xea\x1a\x3e\x29\xfd\x31\x4b\xec\x3a\xbe\x0d\x64\x56\xef\xec\xdb\xab\xa7\x9a\x13\x88\xc0\xe9\x55\xec\xac\xd5\x1e\xcd\x43\x93\x24\x5e\xe8\xfd\x47\x55\x9c\x0e\x56\xc2\xd5\x77\xd6\x8d\x5f\x93\x81\x88\xa4\x1f\xe9\x53\x3e\xe4\x05\x36\x6d\x75\x4e\x41\xa0\xd1\x40\x9f\x42\x41\x49\xb6\x77\x0c\x38\x37\x81\x08\x68\xaf\x3b\x56\x47\x2a\x56\x75\x3b\x94\x72\x8c\x76\x4d\x3f\x08\x02\xe6\x05\x72\x27\xe7\x87\xa9\xa3\x29\x6c\xff\x1d\x31\xc7\xa6\xe3\x0f\x49\xdb\xaf\xb3\x45\x18\x61\x56\x0c\x0b\x2d\x03\x71\xf7\x16\x4f\x3a\x27\x83\x57\x4d\x44\x18\x85\x89\xc2\xd4\x17\x83\x09\x16\xd1\x79\x0e\x37\x95\xc6\xe6\xc9\xcc\x3a\xad\x26\xd2\xa9\x67\xfd\x3b\x57\xf5\x56\x50\xf7\xc5\xe3\xfe\xce\xd2\x2c\xa0\x30\x70\xf1\x30\xba\x2f\x1e\xc5\xe4\xc4\x11\x21\x7f\xa9\xf3\xee\xb3\x4c\x1b\x7e\x4d\x16\x63\x08\x3d\x4e\x6e\x43\xd6\xe4\xd9\x42\xd0\xfc\x75\xb2\xcc\x50\x4a\x31\x2f\x1d\x7b\x1d\x65\x4a\x46\xc0\x1f\x93\x29\xc3\x02\x7f\xb3\xe5\x07\x34\xd8\xfc\xcc\xdb\xfd\x06\x8b\xc2\x46\x94\xe7\x59\x67\x20\x0c\xad\x76\x67\xe7\x89\x10\xdb\xa8\xff\x25\x48\x04\xa5\x31\x2c\x7e\xbc\x6f\x95\x32\x90\x19\xa6\xbd\xc6\xfa\x1d\xe2\xf7\xaa\xd0\xd5\x47\xef\x9d\x18\x00\x4e\x61\x5e\xde\xb8\x9c\xe7\xd4\xed\x36\x52\x70\x02\x6a\xf8\x22\xc5\x66\xc6\xf7\x9d\xdf\x8d\x8d\xd4\x2a\xb2\x34\xc4\x16\xcc\xb2\x33\xd8\xbf\x1a\x89\x16\xaf\xb3\xfd\x85\xdd\x67\x25\xec\x8c\xb7\x1a\x46\x41\x46\x7c\x0c\x75\xfe\x81\xed\xbf\x5f\xa6\x3c\x60\x7f\x11\x43\xbb\x8b\xe8\x50\xf8\xb2\xa7\xeb\xad\xb2\x16\x68\x48\x28\x2d\x8c\xce\x22\xaa\x99\x17\xd0\xb4\x77\xe8\x5c\xad\x09\x83\x97\x30\x26\x8a\x71\x00\x31\x1c\x1d\x92\x16\xd7\x41\x7c\x13\xcf\xd4\xe8\x41\xa1\x8e\x3d\x0e\x41\x10\x0a\x12\x95\x5a\x94\x2d\xd4\xaa\xcd\xcf\xbc\x76\x10\x04\x00\x16\xe6\x4d\xad\x07\xce\x72\xce\xd8\x0d\x08\xc2\x84\x2b\x7d\xce\x38\xad\x27\xbd\x90\x10\x84\x32\x22\x23\x72\xbb\xd8\x0c\xa6\x72\xf7\x77\x88\xac\x01\x29\x49\xbf\xd4\xad\xe7\xe1\x87\xea\xd6\xb4\xa4\x67\x70\x9c\xdb\x47\x5b\x1d\x76\x07\x23\xee\xe4\xc5\x7d\x19\xfb\xa6\x3a\x1c\xab\x53\xd9\x37\x5b\xce\xfa\x0f\x10\x44\x1a\xe4\x30\xc5\xb2\x39\x49\x9d\x7f\x34\x63\x58\xaf\x1f\x6b\xac\xce\xea\x66\x5f\xfd\x5a\xdc\xfe\xf0\x3f\x1d\x6b\x96\x0e\x6b\x1c\x2f\xe8\xc0\xdf\x73\xae\x04\x04\x31\x5a\x46\xb8\x37\x6c\x09\x44\xfb\x9c\xff\xc6\xe2\x66\x58\x0d\x70\x03\x93\x30\x8b\x87\xdd\xd9\xbe\x53\xea\xaf\x92\x36\xd3\xff\xb6\xc0\xea\xf3\x6a\x86\xa0\x0b\x99\x7a\x39\xe1\xaf\x90\xef\x6e\x7c\xca\x18\xd5\xeb\x56\xaa\x3a\x82\x7a\x57\x83\xc9\xc1\x59\x98\x39\xe3\xb8\x9e\x3e\x00\xe7\x86\x14\xda\xbc\xce\x6b\xfc\x5c\x57\xff\x42\xd5\x8e\x3e\x3d\xcf\x42\x08\x7d\x27\x17\xc1\xc1\x6f\x7c\x27\xaa\x1f\x21\x14\x55\xfc\x5f\x8f\xfa\x4a\x59\xf1\xca\x6d\x67\x5c\x52\x0c\x72\x57\xe0\xef\xbb\xbc\xb5\xf1\x4a\xe3\x2f\x2b\xa2\x8c\x1a\x91\xdf\xba\x99\xda\x6c\x4e\xa5\xae\x7e\xf5\x77\x25\xe2\xd0\xb1\x18\x97\x7a\xad\x97\x9f\xdf\xab\xa6\x7d\xae\xea\x76\x0e\xc2\x0d\x01\x08\x41\xa6\x7c\xfd\xf1\xf9\x27\x91\x42\x0e\xfb\xf1\xba\xc3\x8a\xcc\x1b\xf5\x06\x34\xd7\x9a\xb8\xdc\x60\x19\x66\xdc\xd5\xb5\xed\x4e\x3d\x3f\x8b\x64\x6c\x69\xfd\x49\x8d\xf0\x06\xea\x66\xad\x7f\xfb\xdf\x53\x01\x10\xba\xaa\x7b\x32\xdb\xb4\xbb\x69\xeb\x17\x34\x7f\x8c\x7e\x48\x85\x98\x32\x47\x27\x43\x91\x6f\xfd\x5e\xe0\x98\xf8\xf6\x3f\x7a\xc7\x79\xfe\xcf\xfe\x4a\x2c\x60\x36\x2f\x5b\x5a\x09\xf8\xfe\x46\xd2\x20\xb4\x89\xc7\xdf\x9d\xc3\x34\x80\x2a\x41\xa0\xb8\x75\xd8\xe4\xe9\xf3\x0b\xa5\x51\x3f\x58\x58\x1c\x5e\x37\x64\xc8\xa0\x41\x5c\xb9\x7f\x91\x5c\xf1\x97\xd0\x5c\x05\x9e\x01\xb2\xdb\x0b\xef\xa1\x9d\x84\xd2\x10\xe8\x20\x24\x67\x6d\x47\x1c\x4b\xbf\xaa\x61\x49\xb2\x3b\xaa\x3d\xa5\x7d\xef\xb8\x9c\x05\xa5\xfd\xa0\x14\x63\xa7\x95\x94\xf7\x22\x44\x10\x68\x91\xa4\xf1\xa0\x39\xfb\x90\x97\x33\x22\xde\x10\x68\x65\x49\xf1\x0f\x39\xb1\xca\xf7\xaf\x12\x13\x45\x9b\xf4\x8f\x1c\x7f\xb9\x65\xd4\xcf\x64\x13\x5a\x9a\x2d\x07\x99\x70\xfa\x9e\x03\xf6\x76\x08\x0c\xa6\x0c\xfa\x46\xdd\x07\x3c\xe0\xf9\x6c\xe4\x14\x9f\x34\x14\x85\xbe\x40\xf9\x9e\x97\x6f\xae\xb8\xe1\xaa\xf0\x7f\xe3\x1f\x7b\xb1\x30\x8c\x85\x1e\xb4\xa2\xac\xca\xb6\xfe\xb4\x1a\xd0\xfd\x0f\x86\x51\x18\x7b\xf2\xd7\x87\x33\x60\xca\xbf\x81\x30\x92\x59\xe8\x08\x02\x1c\x8f\x65\xe7\x91\xf5\x27\x1b\x49\x05\xe5\x43\x5e\xda\x39\x73\x83\xbd\x14\x27\x84\x89\x6b\x9a\x24\xea\x88\xc9\x32\x0c\x13\x23\x3d\xa9\xe3\x0d\xb1\xda\xfc\xba\x02\xbc\x84\x30\x8d\xb8\x71\x43\xbf\xdd\xe2\xa1\x52\xcd\xa3\xbf\x4a\x2a\x90\x1c\xef\x1f\x55\xa5\xdf\xc1\xff\x95\x2b\xf0\xcf\xbd\xac\x7e\x5f\x82\x67\xcf\x97\xce\x92\x80\xb2\x41\xae\xb6\xdb\x90\xf4\xe0\xb0\x9e\x06\x61\x96\x86\x60\xb5\x36\xab\xce\x10\x92\x98\x89\xeb\xba\xff\x12\x05\x07\x61\xa6\x21\x72\xf9\x8b\x6f\x58\xfa\xf1\xa3\x4c\x1c\x84\x19\xda\x24\xc7\x91\x32\x1c\x03\x47\x1e\x42\xc1\x04\xfd\xf2\x7d\xf5\xb6\xc4\x6e\x27\xd3\x88\x07\xd4\x53\x48\xc3\xe4\x57\x45\x94\x91\x52\x08\xb9\x6f\x37\xa7\x76\x4a\xa6\x08\x21\x30\x24\x73\xda\xed\x03\xc5\x33\xe4\xe8\xc4\x85\x4c\x5e\x1f\xc6\xec\xee\xc3\x1c\x1b\x84\x10\x05\x44\x2a\xe0\xb7\xd6\x9b\x7d\xae\x48\x65\xb1\xba\xd4\xf8\x1c\xdf\x13\xc4\x82\x94\x01\x68\x63\x5d\xfd\x46\xd5\xbf\x5d\x10\x71\xe4\x6a\x37\xff\xcc\xf1\x1d\xcb\xfd\x29\x9f\xf8\x29\x21\x80\xed\x8d\x3c\x27\xf3\x1d\x47\xe7\x48\x77\x0a\x42\x90\x8c\xf8\xb9\x35\x71\x3f\x2c\x3f\xff\x89\xf5\xb8\xd9\x1a\x42\x50\x89\x95\x0a\xb5\x68\xee\x9f\xfb\x2e\xac\x9d\xdf\xbe\xfc\x19\x3a\xf2\xb8\xaa\x67\xa8\xdb\xce\x45\x70\x91\xd4\x70\x7c\xe8\x87\xcb\x20\x25\x78\xc1\x82\x2c\xa2\x8b\x77\x9e\x0b\x98\xef\x18\x84\x50\x26\x00\xdc\x4b\x34\x5a\x6a\x35\x22\xeb\xf1\x0e\x3c\x84\xd2\xa4\x84\x7f\x31\x75\x75\xa5\x62\x08\xa1\x8a\xa4\xf4\xb5\xd6\xc7\xaa\x24\xa2\x92\xbc\x7c\xfb\x51\x51\xb7\xc1\xdb\xbe\x5f\x75\x2a\xcb\x44\xe2\x53\x6a\xb9\x42\x57\x06\x99\xbc\x25\xcd\x02\x12\x74\x32\xd3\xaa\x2e\x84\x3a\x35\x44\x5c\xa9\xab\xce\x0e\xb8\x26\x94\xc9\xf7\xc2\xc4\x96\xa7\x3b\xab\xe9\xc0\xb1\x9f\xab\xed\xf7\x95\xd3\xff\xbe\xf2\x0c\x28\xb8\x6f\xe7\x7a\x76\xc2\x83\x43\xd7\x24\x44\x60\xa4\x53\xaf\xa1\x85\x07\xdf\xcf\x7e\x0d\x45\xd7\xdb\x2f\x94\x19\x6d\x6c\x36\x5f\x0d\xc3\x84\x02\xb0\x40\x58\xba\xf4\xe5\xa9\x28\xf0\x77\xee\xff\x1c\xc6\x16\x28\xd8\xb9\xdd\xdf\xab\x7e\x74\x98\x04\x41\xd2\x23\x17\xba\x39\x76\x02\x07\x62\x99\x7d\x22\x16\x26\xa9\xab\xff\x6b\x2c\xab\x43\x5e\x4e\x33\x97\xc0\x42\xce\x69\xca\x3e\x6e\x9e\xef\x9c\x1a\xe4\xd7\xde\x1f\x0b\x85\xa4\x2d\xe9\xbf\x2c\x39\xe7\xf0\x15\xb1\x28\xe4\x03\xd8\xad\x5b\x24\xdd\x77\x7a\x41\x85\xc7\x7c\x2a\x65\x02\x2c\x62\x4c\x59\xaa\xf3\x66\x72\x25\xc1\x1c\x43\x73\x51\xfc\x31\xa8\x24\xdb\xbb\x19\xd3\xb3\x03\x8b\x83\x88\x32\x46\xe7\xac\xf0\x47\xc8\xfd\xa5\x12\xc6\xc9\x1e\x49\x68\xd5\xde\xe7\xb0\xd9\x74\xab\x65\x49\xca\x89\x27\xe8\x17\x75\xc7\xbc\x6e\x6e\xf3\x72\xfb\x6d\xd5\x5f\x84\x87\x60\x5c\xaf\x0e\x6a\x17\x97\x37\x13\xe6\x0c\x60\x89\x34\xe4\xfc\xaf\x4b\x75\x92\xd0\x56\xf5\xb7\xa2\x92\x50\xf4\x20\x61\x60\x09\x0a\xe5\x17\x80\xab\xb4\x90\x5c\xcc\xf5\x42\x20\xb0\x34\xb2\x1e\x9c\xcf\x6a\xde\x56\x87\x2e\x8c\xa6\x17\x32\xb6\xe6\x2c\x4d\x94\x6f\x75\xf0\x38\xa8\xe3\x40\x54\xdb\x8f\xe2\x16\x87\xfc\x66\x15\x4c\x6a\x3d\x80\x0f\x03\xe3\x71\x26\x87\x78\xbc\x45\xa9\x9d\x90\xed\xdf\x2c\xd5\x4c\x66\x0c\x4f\x15\x35\xf7\xda\x54\xd1\x36\xc7\xda\x65\xcf\xe6\xf7\x44\xc6\xb3\x84\x76\x24\x53\x9c\x9a\xfd\x77\x97\x04\xe8\x5f\x20\xcf\x0c\xa1\x31\x7e\x40\x99\xb7\x9f\xaf\x2f\xf7\xfd\x01\xc9\x88\xe4\xe1\xfe\xa4\xde\x9b\xd1\x64\xe2\x28\xc9\xf1\xb4\x36\xf7\xde\xda\xa6\x6b\x81\x93\x3b\x27\x0b\x8d\xb6\xef\xbc\xac\x4e\x94\xbc\x19\x68\xdf\x01\xcb\xb4\x45\xba\x6d\x56\x7f\xde\xc0\x31\xf7\x82\xea\xfe\xb0\x60\xa9\x87\xab\x39\xe4\xfd\xa8\x7c\x08\x4c\x28\xb0\x4d\xe6\x27\x63\xb0\x1e\x5b\x05\x60\x46\x58\xe5\xc0\xd2\x46\xe5\xe3\xd7\x03\xca\x18\x33\xe4\x0a\xb5\xd1\xe9\xcf\xbc\xdd\x57\x27\xdb\xb2\x34\x39\x43\x9a\x80\x8a\xd1\xc7\x1a\x75\xae\xda\x67\x50\xef\xd3\x21\x2a\x8c\x3c\xdf\xa3\x9b\x37\xff\x79\xca\xd5\x3b\x09\x73\x0f\x50\xea\xc0\x94\x16\x3a\x3a\xdb\x33\x8a\x27\xfa\x63\x68\xc8\x77\x7c\xa0\x1a\xc1\x4f\xa8\x27\x3e\x17\xd3\x49\x12\xc1\x90\xec\xc2\xbf\xd5\xeb\x00\x09\x60\xda\xe8\xe0\x4c\x55\xed\x74\xf0\xea\xc9\x8c\xd6\xc6\x98\xd0\xf6\x7f\x9b\xaa\x7e\xf7\xb9\x5e\x60\xc8\x4c\xdc\xb7\xbb\xdb\xf6\xee\xfb\x4a\xbd\xbf\x1e\x87\x75\x7d\x60\x98\x29\x5a\x96\xdd\x63\x4d\xfd\x1c\x37\xc4\xb0\x8c\xba\x51\xef\x1e\x6e\xbe\x00\xda\x00\x33\x09\xd0\x74\x7f\x3e\xc9\x17\xfc\x17\xb1\x9a\x4c\x42\xbc\x7e\xa0\x22\x37\x68\x07\x5a\x93\xd4\xea\xf4\xa1\x4c\x6a\xb5\x38\xfe\x89\x6d\x0b\xdd\xfc\xf1\x77\x6b\x74\x92\xc5\xfd\xf4\x3a\x40\xe7\xdb\x3d\xf7\x1b\x45\x14\x24\x16\xbf\xb3\xac\xaa\x03\xa1\xfc\xa9\x85\xbc\x8b\xb6\xce\x36\xe6\x5a\x98\x74\xde\xf8\xa3\x00\x18\x77\x6d\x39\xdb\x37\x5c\x34\x5d\x24\x61\xf5\xa8\xdc\x80\x30\x4a\x28\x4f\xb3\x7a\x58\x6f\x36\xeb\xa7\xc7\xdd\xdd\xd3\x0b\x61\x6b\x09\x6a\xcb\xfa\x61\x89\xb2\x39\xef\x02\x9a\xfd\x66\x44\xf5\x3e\x7a\xde\x28\xcc\x42\x0c\xa6\x72\xf7\xa7\x11\xc7\x79\x3f\x92\x93\x83\x40\x09\xac\xeb\xd4\x34\x10\x31\x96\x91\xb4\xb7\xcf\x53\x5b\x08\xd6\x43\x5e\x8c\xf9\x02\x21\x62\x49\x4c\x49\x6b\x4d\x69\x37\xda\xdb\xc7\x7e\x78\xc4\xd2\xd0\x62\xba\xf2\x0f\x74\x70\xa8\x7f\x5f\x52\x6b\x43\x14\x05\x49\x1a\x39\x12\xa9\xb9\x89\x14\x45\x90\x51\xa9\x78\xf7\xe6\xb0\x14\x3f\x90\xb2\xb0\xd7\x82\x84\x28\x8e\x34\x73\x00\xb4\xf5\xcd\x93\x6d\x4a\xbc\xde\x68\x0e\x51\x0c\x81\xe5\x5a\x6a\x29\x7d\xb6\x2b\xf1\xf7\x24\x79\x15\xc5\x18\x92\xfe\xcb\xcf\xbc\xc4\xb1\x7c\xb1\x1b\x90\x30\xab\x27\x55\x9e\x0e\xb7\x28\x87\x64\x61\x7e\x80\x34\x86\x79\x8d\xfa\xe3\x45\x19\xfb\xeb\x3d\x21\xf2\x39\x24\xbb\xa8\xfb\x0a\xcf\x97\xf4\x16\x10\xa5\x49\x8c\xfc\x0c\x68\x1c\x1a\xa6\x28\x4d\x45\xa2\xfa\x8e\xe9\x67\x02\x17\x4f\x1e\x3a\xcd\xac\xee\x75\x0d\xa5\xf6\x11\x5c\xc4\x41\xa0\xec\x65\xdd\x9f\xb1\xbe\x99\x56\x29\x20\xe2\xda\x50\x6b\x8e\xaa\xab\x66\x2c\x65\x04\x11\x37\x5c\x7b\x3a\x97\xfa\x63\x62\xcb\xa3\x2c\x8d\x45\xea\xbd\xf7\xa6\xf9\x55\x9d\x4b\xcf\x43\x5b\x10\x09\xa6\x7c\x0b\x5c\xb7\x54\xb7\x4f\x93\xb7\x2d\x9c\xf4\x8f\x19\x12\x96\x4c\xde\x29\x44\xc6\x6a\x65\x1d\xe1\x93\xf8\x81\xda\xe5\xa7\xf7\x54\xae\xac\x38\x80\x94\x6c\xd5\x3d\x96\x43\x0c\x3a\x44\x32\x51\x54\xcc\xdc\x43\xf3\x82\xc5\x20\x28\xfb\x8f\x91\xc8\x9e\x1b\xad\x78\xe2\x69\x7b\x5f\xd0\x98\x0b\xf4\x2b\x44\x24\x13\xd6\x99\xa4\x97\xa7\xc7\x7f\xae\x2e\x60\xbb\x10\x29\x11\xc6\x3d\x03\x88\x13\x31\xa3\x7c\xc1\x95\x87\xd5\x3a\x24\xd1\x4d\xaf\x05\xd8\xe3\x13\xc7\xbf\x8b\xae\xb1\xeb\x16\xaa\x97\x53\x81\x8d\xc7\x85\x4d\xf6\xbf\x08\x43\xcb\x5a\x93\xab\x2a\x1c\x05\x75\x11\x26\x91\x3d\xd2\x5c\xa8\xf3\x42\x64\x54\x40\xe5\xab\x1b\x5b\x48\x77\x38\xcc\x85\x22\x52\xe6\xbc\xd9\x1f\x2e\xe6\x52\x1c\xb0\x8c\x9a\x3d\x97\x20\x3f\x97\x55\x5d\xce\xe6\x10\xe3\x30\x0e\x02\x37\x6f\xc8\x9f\x0d\xc3\x51\xba\x2e\x0e\x75\x48\x8e\xe6\xe6\x61\xdb\x05\x49\x84\xcf\x70\x36\xde\x8d\x60\xcc\x8a\x81\xdf\x2f\xb6\xeb\x87\x55\xff\x57\x30\xbd\xea\xc7\xaa\x56\x2c\xd8\x56\x36\xa3\x31\x7e\x6f\x71\x94\x05\x54\x28\xda\x60\x61\x6e\xb1\x51\x44\xe8\x92\x57\xd3\x64\x66\x1c\x89\x0c\x2d\xb9\x18\x21\xf1\xfe\x1e\xfc\x07\xe2\x48\x86\x34\xbd\xa0\x3e\x7c\x6e\xa0\xc5\x22\x6f\xb1\xb9\x94\xd3\x80\x38\x0e\x42\xda\xd7\x73\x97\x11\xec\xf6\xca\x17\x34\x76\xe5\xcf\x46\x3d\x71\x1c\x4a\xa2\x73\xb5\x4c\x3c\x84\x2c\xa4\xda\xc8\xf4\xca\xa9\xd6\x63\x8a\xb3\x59\x4d\x39\x88\xe3\x0c\xb2\xac\x97\x73\xa2\x5c\xd2\x6c\x7b\x24\xc4\xb1\xca\xd0\x73\x3b\x5a\xe8\xd0\xba\x6c\xf1\xad\x9b\x96\x34\x41\x62\x2b\xcb\xe6\x46\xa7\x18\x13\x9e\xed\xe6\xe5\x69\xb3\x58\xbf\xec\x7e\x3c\xbd\xde\x7c\x5f\xbd\x0c\x69\xa6\x20\xe6\x31\x33\x3e\x1f\xfe\x38\x79\x82\x8c\x31\x4a\x22\x7e\xc3\xd6\x09\x1b\x94\xed\xb0\x54\xd8\x8d\xc8\xc8\xaa\xec\x4c\x5e\x8e\x3b\x2a\x20\xce\x92\x8c\x22\x1a\xfc\x00\x75\x3a\x17\x59\xc6\xcf\x9e\xc9\x80\xa2\xd7\x06\x5b\xcf\x9c\x7a\x25\xe0\x75\x27\x88\x28\xa3\x56\x68\x2a\xbc\xdb\xa8\xc1\xbb\x62\xb1\x70\xb9\xae\x5f\x98\xdf\xd5\xd5\x61\x4c\x2f\x04\x31\x04\x4c\x58\x6c\xd3\xef\x45\x5e\x9f\x55\x5b\x20\xee\x3c\x58\x6e\xb9\x4d\xed\x5d\x52\x3d\xef\x4a\x81\xc3\x9f\x13\x69\xe2\x3e\xfe\x95\x97\x45\xd5\xf4\x3f\x22\x59\x90\xd9\x48\xf1\x03\x8b\xaa\x87\x3c\x41\x2c\x63\xa3\xd3\x7e\x43\xfa\xe3\x82\xba\xc1\x0f\x53\xa9\x4f\xb4\x2f\x4f\x75\x9d\xb7\x15\x25\x9d\xc7\xbf\x2d\x75\x42\x22\xe7\x04\x9d\x7a\x21\xc8\xde\xa4\xc3\x01\x62\x95\x19\xf2\x26\x9e\x4a\xdc\x12\x40\xbd\x2f\xa2\xc4\x4a\x9a\xd4\xa9\x42\xbe\x0e\x3d\xa1\xd1\x0a\xd2\x61\x4c\xca\x9d\xdf\x7e\x7e\xbb\xfb\xca\x1d\x8d\x31\x60\xc4\xd2\xf2\x7f\x4e\x67\x82\xfa\xf9\x4d\x39\xc6\x38\x4b\xad\x38\xfb\xcd\xf6\xe9\xe5\x9f\xeb\xfb\xfb\x85\x97\xac\xf6\xf7\x66\x02\x41\x76\xdc\x65\x0b\x4f\xcd\xfe\xca\x2a\x34\x26\x25\x5e\x80\xa3\xd3\x83\xdd\x4c\x9a\x47\xa1\x73\x30\xa8\xd4\x63\x4e\xa5\x72\xc1\xcb\xa2\x7e\x3b\x1d\x06\x19\xdc\x84\x29\x45\x19\x3f\xd7\x07\x95\xcb\xc2\x42\x96\xbf\x50\x0d\x9d\xbd\x9d\xa4\xf3\x55\xc1\xba\x96\x3b\xd9\x6f\xcf\x49\x24\xb8\xa3\xc9\x2f\x15\x16\xe7\xfa\xf5\x70\x15\x25\x71\x12\x10\x26\x14\xca\xcf\x9d\x72\x7c\xa5\x5e\x33\xa5\xd9\x7d\x9e\xaf\x16\x27\x31\xb1\x0a\x39\xa6\x06\x1f\x3e\xf7\xf2\x13\x57\x6e\xd5\x9f\x8d\x40\xa8\x19\x02\xf6\x3c\x99\xf1\x7c\x49\x92\x38\x24\x6e\xcd\xce\x97\x7b\xa9\x4e\xa5\x13\xab\xf1\x13\x3b\x49\x12\xe3\xd3\x84\xeb\x32\x1f\x6b\xc5\xf7\x63\x32\x49\xc8\x81\x6e\xca\x76\x86\x9c\xea\xfa\xe3\x9b\x48\x44\x12\xab\x41\x9f\x94\x25\x03\x9f\xdc\x4b\x1a\x06\x84\x46\xb2\x9d\x15\x47\x6f\x52\x92\x34\xb4\x5d\x3b\x7f\xe6\x78\xd8\xd6\xf0\x08\x87\xc7\xfd\x09\xca\x61\x53\x07\x24\x5c\xa4\x94\x8a\xfd\x56\x57\xa7\xe3\xf2\x34\xd9\xb0\x93\x2c\xe1\x04\x87\xb7\xe5\xb9\xbb\xaa\x3e\x1d\x26\xbf\x9e\x65\x26\xb4\x10\xc0\x82\x0a\x27\xf3\xbe\x62\x92\x81\xbd\x49\x0b\x95\xac\xff\xec\xab\xdb\x49\xa6\x2d\x86\xf0\xee\xf5\xf1\x76\x73\xfe\x23\x84\x30\x4d\x5d\x4d\xee\x4d\x98\x98\x00\x0b\xe7\xd2\xae\xea\xfc\xb9\xc9\xb6\x31\x99\x79\xc2\x40\x46\x5e\xd9\x39\x7b\xac\xb7\xd5\x6c\xf2\x36\x81\xc8\xf6\xb4\xe4\x8d\x83\xef\x9c\x49\xa5\x67\x57\x6c\x02\x91\xf1\x39\xcb\x5b\xf8\x6c\x3a\x17\x13\xf5\x26\x2f\x15\x92\x56\x1c\x99\x1e\xa7\xd0\xe2\xcf\xc8\x04\x05\xfa\xbe\xf3\xa2\xd9\xa3\x63\x58\xeb\x17\x1d\x68\xd0\xea\x2c\xf5\xbd\x6a\xf7\xcf\xa7\x22\x57\x0e\xeb\x34\x79\x27\x32\x66\xe4\x41\x16\xd5\x5b\x36\x5a\xde\x32\x66\xc4\xa9\xf4\x5c\x15\xb9\xc2\x9d\x8f\x06\x13\x99\x01\xd5\x6f\x5f\x56\xdf\x5e\xef\x17\x2f\xbb\x9b\xc5\x76\xf5\xed\xe9\xe5\x1f\xfe\xb8\x0a\x12\x7a\x5f\xae\x22\x62\x0d\xbe\x9d\xce\xaf\x65\x9b\x17\xfd\xb8\x30\xf1\x49\x8d\x2e\x30\xa5\x26\xd7\x61\xf5\x22\x51\x1c\xa2\xd8\x0b\xe7\x95\x7a\x46\xc4\xb3\x1b\x63\x19\x12\x6d\x5a\x6f\xb4\x41\x26\x3a\xc8\xa8\x1f\x11\x46\x9b\x51\x82\x32\xc1\xd0\xb3\x5a\x5b\xda\x9a\xc9\x2b\x31\x31\xa3\xc2\x20\xd8\xbc\x0c\x94\x6d\xbf\x07\xa6\x01\x57\xb4\xc8\xfd\x14\xda\x91\x3e\xe8\xd7\xd5\x8b\x34\x30\x31\x31\x46\xba\xcc\xcc\x5a\x0d\xf1\x56\x90\x86\xcc\xe2\x68\xec\xd6\x75\xf7\xb2\x18\xdf\x4f\x1a\x26\x69\xea\x3b\x2e\xee\x20\x2f\x6c\x0f\x6b\x67\x72\xef\xaa\x1a\xf3\xb7\xf2\x19\xba\xcb\x3e\x56\xed\xba\x7c\x6d\xce\x97\x4d\x32\x2a\x55\xe4\x2d\x1e\xd6\xfd\x03\x84\xca\x0a\x0f\x74\x17\xdb\x9c\x64\xff\x67\x14\x54\x00\xb0\x0a\x1a\xdf\xa1\xd9\x0f\x58\xf3\xc7\xba\xfb\xb3\xb5\x9d\x94\x85\x40\xec\xde\xb7\xab\x1f\xab\xfb\xa7\xe7\xd5\x8b\xdf\x79\x6e\xfd\x4f\xb0\xd4\xf6\x0c\xa1\xf3\x1b\x16\x1a\x8e\x2d\xd6\x63\x8f\x3c\x65\x99\xa2\x82\xb9\x87\x49\x0c\xa3\x9a\x34\x62\x36\xcb\x23\xbb\x0f\xf3\xf9\x0c\x79\xff\x58\x91\xb0\xa0\xaa\x37\x6c\x1f\x4f\xff\x82\x31\xb8\x07\xd2\x08\x92\xc4\x45\xe0\xdf\xab\x16\x8b\x91\xc2\x3b\xa4\x91\xb4\x34\xf2\xa6\x73\x78\x08\xfd\x7b\x81\xdf\x48\x23\x13\x58\x26\x84\xf5\xe6\x86\x82\x1f\x4a\x92\xec\x9e\x1e\xfd\xde\x9a\xc6\x22\x20\xf8\x39\x5a\x65\xff\x3b\xa7\x62\xdd\x1f\x76\x38\xb6\x09\x00\x64\x62\xc1\xbb\x61\x54\x61\xf9\xc8\xf1\xd7\x63\xb7\x59\x10\xad\x3a\x5e\x8c\xd2\x99\x8b\xd8\x1e\xab\xf6\x19\x3e\x49\x97\x63\x2a\xb8\x01\x69\xac\x74\x14\xf7\xe9\x3e\xe2\x6d\xee\xdf\x59\xc2\x32\x35\xd4\x3a\xf2\xfa\x0a\x3d\x39\xfa\xdf\xab\xc5\xa7\x69\x6c\x53\xe2\xf3\xcc\x27\x7e\x50\x86\x54\xd7\x7a\xf8\x5c\xbd\xdc\x74\x61\xcb\x55\xb6\x85\xe9\xd5\x41\xd0\x16\x2f\xbb\x35\xde\x9e\x24\x5e\x17\x5a\xf8\xc2\x8d\x4a\x79\x60\x75\x17\x9c\xf0\x5c\x8d\x77\x75\xf5\xef\xf3\xcc\xe2\xa9\xb5\x76\x47\x47\xd5\x88\x07\xdb\x90\xef\x8f\x67\x22\xb5\x1c\xe4\xbd\xca\xc1\x0b\xb4\x17\xdf\x2e\x03\x4b\xc5\xe6\x12\xd5\xd0\xb4\x3f\xf3\x81\x98\xc9\xdf\x6e\xf0\x86\x54\x64\x56\x79\x8e\xf6\xff\x7e\x17\xf1\x26\x3e\x15\x42\x5b\xa1\xcf\xce\x2b\xd3\x76\x9f\xb0\xb0\xfb\xf1\x0d\x09\x8c\x98\xcd\xf6\xfe\x1e\x2d\x24\xd0\xa1\x18\xea\x53\x13\xa7\xb7\x2d\x1f\x7d\x83\x66\x64\x9d\x40\x87\xe8\x08\x8e\x2d\xd9\x7b\x3f\x60\x7c\xc7\x92\x33\x62\x85\xf8\xaf\x2e\xbe\xac\x46\x9a\xe4\x90\x2a\x1e\x07\x81\x77\xbb\x3f\xb1\xde\xe4\x6f\x25\xb4\xa7\x7a\xd4\xf5\x07\xa9\x32\xdc\x66\x5b\xba\x78\xef\x67\x5e\x5e\x68\x66\xcf\x11\x73\x74\xa7\x69\x5a\x32\xae\x28\x3b\x9c\x5b\x6e\x84\x4e\x2c\x9c\xf3\x42\x50\xb0\x3f\xae\x03\xe7\x36\xd9\xad\xca\x6e\x5b\xeb\x92\xbc\x9c\xdd\xbc\x8f\x9c\x9a\x8c\xd1\xef\xbe\xdc\x0e\xc1\xf0\xc0\x83\xd8\x2a\x1d\x74\x4b\xb7\x6c\x0b\x9b\x27\x6f\x54\x8e\xa5\x42\x36\x1e\x99\xb1\xc8\x69\xe3\x96\x58\xf4\x7f\x15\xe0\x8d\xd9\x1d\xe2\xe8\x84\x30\x08\x28\x34\xd9\x83\x75\x31\xba\x05\xbb\xad\x5e\x50\xe5\xf8\x31\x09\x01\xc7\xfe\x14\x0f\xe3\x80\xf2\x09\x56\xb8\x9c\x34\x0b\xbb\xc5\xea\x11\xfe\x97\x82\xae\x5f\xe5\xff\x38\x63\x4a\x3b\x77\xb5\x2d\x7a\x4a\x96\x69\x5b\x0d\x70\x16\x05\x28\x26\x5d\xd3\x3d\xb6\x72\xf6\xad\x72\xc6\x13\x32\x4b\x9b\x63\xae\x08\x2e\x3d\x59\x65\x3c\x8a\x54\xe4\xa0\x4e\x07\x98\xc2\x2d\x78\x14\x87\x02\x3d\x15\x10\x1d\xc1\x66\x5b\x2d\x0b\x50\xef\xc5\x0c\x44\x87\x47\x22\x00\x69\x09\x8c\x6e\xf3\x8f\x1b\xcc\x2f\x64\xd1\x26\xf7\x17\x07\xb6\xe8\xbb\x76\x66\xd3\xfb\x55\x57\x46\x87\x2c\x76\x33\x8f\xc0\x62\xd7\xc2\x9e\x19\x9b\xc5\xe3\x28\x20\x32\x5f\xff\xf2\x4e\x03\xc2\x19\xe0\x49\x66\xc8\x11\x6f\x5a\xf5\x00\xbf\x67\xea\x46\x3c\x91\x56\x10\xe6\xf9\x65\x45\xd2\x86\xdf\x9f\xee\x6f\x57\x2f\xfd\xf9\x4a\x52\x37\x55\x73\x92\x87\xbc\xfd\x4a\xc8\x68\xfc\xfa\x13\x6d\x19\x9b\x0f\x3b\xcb\x1a\xea\xfe\x9c\x06\x01\xa1\xd3\x7b\xa9\xb3\x3d\x1c\x8e\xf3\x69\x4b\x9e\x86\x91\xc7\xee\xdc\xa2\xac\xf3\x31\x0b\x49\xe6\x47\x61\x42\xd8\x2b\x9b\xfa\x7f\x41\xdf\x83\xda\x1d\x51\xca\x45\xf1\xe4\x07\x2f\xab\x52\xdf\xe6\x1f\xd3\xe7\xe7\xcc\x4a\xd7\xee\x8e\x50\x37\xb8\x2e\xdb\x4d\xb7\x06\xdb\xdc\xe4\xea\x27\xe6\x23\x0b\xc1\x39\x58\x6a\xe9\x3d\x94\xba\xc0\xc5\xfd\xeb\x1f\x5f\xaf\x83\x2b\x93\x83\x83\x45\x25\xf5\xc0\xd5\x3f\xce\x07\x32\xf0\x7a\x46\xbf\xdb\xbb\xdc\xcb\x3a\xfb\xe3\x12\xa8\x39\x86\x9e\x87\x64\x59\x4a\x85\xce\x61\x74\x1b\xf3\xc6\x33\xab\x02\xe7\x68\x2d\xc4\xc0\xe0\x2d\x3f\x17\x83\x0d\x69\xae\x13\x00\x78\x86\x69\xe2\x80\x30\x9d\xbf\xf0\x40\x84\x08\xc5\xe7\x43\x8f\xb3\xf0\xd7\x17\x41\x44\xbe\xf3\xa2\x69\xa1\xad\x9a\xcb\x0e\x59\xe0\x82\xf1\xc4\x56\xbf\x9a\x66\xa8\xfa\x3a\x7e\x1f\x02\x19\x55\x19\x0e\x79\xd9\xde\x57\xe5\xdb\x16\xeb\xc3\x17\x4d\xd2\xc0\x85\x11\x94\x3c\x01\x59\xd5\xed\xba\xb4\x05\xca\x4b\x9a\x6f\xe0\x10\x64\x94\x51\x57\xd5\xe1\x88\x65\x73\xe1\xc6\x73\x19\x26\x1a\xfc\x8e\xdf\xed\xd6\x89\x7f\x3a\x69\xac\x7e\xda\x5d\x5e\xd2\x5b\x26\x50\xfb\x57\x0b\x51\xc5\x5a\xba\x8f\x47\x6d\xfe\xc3\x0d\xb2\x0b\x08\x28\x93\xf3\x74\xc0\xb2\x1a\x19\x6b\x95\x59\x56\xec\x07\xd4\x0a\x06\x99\x96\xf1\x7d\x92\xaa\xd8\x70\xca\xdc\x51\xbe\x89\xe0\xa2\x74\xb9\xf9\xbc\xdd\xdf\xca\x9b\x70\x25\x12\x7a\xff\x9e\x35\x67\xc7\x02\xa7\x70\xfa\xe0\x09\x12\x80\x53\xb4\xd7\x07\x20\x53\xc5\xdd\x91\x3d\xd7\x61\x46\x46\xe3\xe6\xe9\xe5\x19\x3e\x07\x59\x2f\xae\x55\x22\x43\xef\x81\x5b\xb1\x67\xc2\xd9\xf7\x73\x0a\x23\xcb\x29\x44\x9b\xfb\xd2\xb6\xee\xde\x0e\x56\x08\x66\x99\xef\xb5\x75\x0c\x88\x73\x56\x21\x0b\x64\x9c\x89\x1e\x14\x77\x45\x46\x15\xb2\x90\x71\x1d\x5b\xdb\xd9\x59\xe7\x3b\xc4\x87\x4a\x53\xe5\xf9\xca\x06\x99\x85\x42\x47\xc9\x19\xec\xb8\xbe\x5d\x7e\xce\xf0\xb7\x41\xc6\xba\x0f\x6b\x91\x05\xad\xbb\xe6\x24\x39\x98\x31\x69\xd5\x86\xbb\xbd\x76\x79\x1c\x52\x4b\x40\x16\x2b\x5b\xd1\xa0\x8e\x19\x9f\xf7\x3f\x77\x47\x41\x16\xeb\x90\xaa\xbf\x47\xf8\xb4\xca\x00\x8b\x52\xdf\xe2\x87\x3f\x9c\x24\x40\x71\x08\xb1\xdb\xe2\xea\xed\xad\x3f\xa0\x25\xb1\xc6\xfd\xbf\x53\xae\xde\x37\x96\xeb\xc2\x2b\x4d\xf7\x59\xeb\x2c\x65\x36\x4b\xbb\xcc\xdb\xce\x4b\x23\x55\xad\xfe\x98\x48\x20\xf6\xca\x06\x7d\xb2\xd6\x1f\xe5\x59\x4a\x1d\xe8\x12\x14\x94\xea\x73\x38\xd3\x33\x2e\x38\x31\x8e\xca\x53\x5d\x3e\xf4\x4f\xc2\x95\x24\x98\xea\xc3\xcb\xb8\x41\x20\xe3\x98\x72\xec\x95\x1d\x47\x71\xcb\xe4\x33\x72\xb4\x34\xad\x1b\xac\xe6\x0d\x46\x96\x45\x29\xf1\x11\xe4\x8d\x6b\xdd\x9c\x7c\x8b\x2c\x49\x98\xf6\xf0\xcb\xc9\xa7\xcc\xb8\x56\x71\x4f\x50\xd2\xb9\x43\x9b\x16\xda\xbc\x69\x3d\x1f\x2c\x64\x19\x70\x52\xa1\xdf\x35\x7b\xa8\xc9\xd5\x32\x58\x5f\x27\xb8\xf5\x67\xc9\x88\xa2\x1d\x8d\x8e\x4a\xbf\x28\xfa\x0b\x4a\x9d\x48\xd7\xfd\x42\xde\xfd\xd2\x26\x2f\xa6\xb7\xa6\x2c\xa1\xd8\xee\x8d\xb4\xfc\x8b\x02\xcb\x37\xdc\x9c\x08\x75\xf1\xb5\x83\x92\x01\x53\x04\x9b\xb5\x9b\xc3\xaa\xa1\x46\x48\x0f\x49\x3a\x83\xc0\xc7\xbf\x07\x52\x44\x7d\xc0\xb1\x76\x0a\x00\x55\xdd\x7f\x7d\x19\x09\xd5\x0b\x7d\xbd\xe5\x55\x49\xb7\x6d\x7b\x53\x07\xdc\x1f\x93\x5b\x91\x31\x43\xd7\xd4\xb4\xcb\x89\xa8\xd4\x1d\x40\xe4\x09\x38\x22\xe4\xdd\x29\xdb\x41\x5d\x83\x8f\xd6\x33\x93\x19\x63\x4b\x76\x04\x44\x9c\x7c\x50\x23\x52\x42\xa9\x7c\x54\x2d\xd6\x3f\xaa\xd6\x49\x3b\x8f\xdf\x9f\x60\x2c\xa0\x3c\x82\xb1\xde\x99\x4d\x5f\x8f\x6c\x99\x60\x02\x07\xe4\x14\x55\x7d\x18\x38\xc2\x99\x1f\x03\xa1\x6b\x27\x6a\x4e\x45\xbb\xdb\x77\x66\xdc\x1d\x8a\x03\xe9\x37\x85\x67\x68\xda\x81\x0f\xec\x07\xc4\x6e\xe6\xe1\x59\x3b\xfc\x1a\x41\xb2\x3f\x25\xb5\xc2\xb4\x20\xf3\x73\x88\xe4\x8f\x09\x4b\xe4\x2f\x3b\x57\xf6\x5f\xa0\xde\x6d\x43\xc1\xf0\x6e\x63\x10\x04\x2b\x77\x7d\x53\x36\xb5\x72\xb8\x80\xed\x89\x24\xb6\xa9\x88\xd5\xef\xa3\xcb\x94\x78\x12\x0e\x10\x69\xa2\xa2\x61\xff\xcb\xcd\x6a\x52\xcb\x16\xa9\xe6\x64\x68\xd4\x50\x3f\xf9\x3f\x66\x6c\xb5\xe0\x81\x84\x73\xa3\x26\x79\x68\xfe\x08\x53\x3a\x1e\x40\xe2\x1e\xf1\xd7\x38\xd9\x2d\x38\x30\x8b\xbc\xaf\x3e\xf0\x05\x49\xff\xf8\x6a\xd1\xc0\x9f\xa2\x19\xe5\x9e\x4f\xe7\x8e\xe9\x26\x9a\x43\x12\x08\x11\x64\x89\xe7\xac\xef\xe2\x21\x7d\x21\xf5\x09\x42\x70\xe6\x63\xd6\xbb\xaa\x46\x05\x0d\x95\x72\x2f\x1e\xd8\x4b\xa0\x0f\x1f\x1c\x82\x94\x9a\xe6\xba\x3d\x7d\x82\x35\x9e\xbf\x75\x10\x51\xe6\xda\x88\x1e\x73\xf5\x5e\x0e\x2a\xf0\xe3\x85\x4a\xdc\x44\x1e\x9a\x56\x7f\xea\x7a\xa0\x0e\xed\x47\xc4\x32\xb2\x31\x62\xab\xf6\xe7\x0d\x42\x28\xa5\x23\xdd\x37\x21\x53\x11\xe2\xdc\x54\x06\x42\x07\x5c\xda\x25\x69\xf2\xa2\x98\xbc\x30\x1d\x18\xca\xea\xba\x9c\x32\x9b\x77\xec\x85\x46\x23\x7b\x14\x80\x9f\xeb\xff\xdc\x7e\xbf\x32\xdd\x31\x14\x44\x1d\xb0\xf3\x93\xcd\xdf\x0b\xaa\x90\xf2\xe2\x6d\xb5\x6a\xf7\x56\x61\xc8\x11\xdb\x7f\x87\x66\x6f\xcb\xb0\x03\xef\x59\xa0\x51\x56\x0e\x1f\x4d\x9b\x85\x93\x7b\x37\x41\x46\xdd\x70\x0e\xe1\xa1\x7d\x77\xca\x24\xae\x14\x06\x62\x8a\x1c\xf7\x50\x98\x4f\xec\x36\x4f\x38\x74\x77\xa6\x71\xa7\xcf\x7e\x0a\x04\xcc\x52\x31\xff\x22\xae\xe7\x21\xf2\x12\x82\x28\xd1\x23\x96\xba\x6e\xc5\x7f\x1e\xcf\xa7\x46\x10\xe1\x60\xda\xd5\x6b\x3d\x8a\x42\x20\x30\x01\x15\x75\x35\x7e\x38\xbe\x11\xd7\xfa\x5d\x3e\xe4\xe5\x69\xce\xbf\x1f\x3d\x2a\x04\x46\xb0\x41\x94\xe1\xdb\xc6\xdd\xd1\x30\xc6\xc8\x81\x12\xbe\xe5\x1f\xb8\xcc\xeb\x76\x4f\xb7\x77\x06\x8d\x01\x4b\x78\x92\x0e\x16\x66\xcf\x4f\xfb\x15\xb0\x07\x22\x99\x92\x9d\xdf\xe6\x6a\x0b\x6a\x5b\xf5\x4f\x1c\xe9\x84\x16\xda\xf6\xe5\x66\x44\x74\xe6\x0e\xc7\x41\xec\xb9\xea\xdd\xf2\xbf\x64\x82\x06\x88\x55\x42\x25\x50\x68\x9a\xd3\x61\x82\xe4\x84\x04\x24\xd8\xd6\x80\xd2\xe4\x6f\xa7\xba\x0b\x6c\xfa\xb6\xec\x2b\xcb\x0d\xd2\x38\x93\xf1\x40\xa7\x7a\x40\x07\x0e\x90\x72\x9b\x7b\xb3\x79\xf6\x3f\x6f\xb7\xf3\xb3\x17\x52\x83\xe4\x2e\xf5\x0a\xcd\xfe\x02\x3c\x11\x04\xe4\x79\x58\x3f\xee\xd6\x8f\x3f\x56\x9b\xed\x6e\xf9\xb4\x78\xb9\xed\x8f\xf3\x98\x1a\xf6\x8e\xd8\x3e\x95\x03\xf5\xa7\x66\xc8\xcc\x01\xc0\x65\x4c\x59\xe9\xc5\xdf\xe4\x26\xec\xce\x40\xca\x0e\xdd\x90\x68\xd5\xb3\x2d\x71\x5e\x52\x88\xb8\x2d\x6e\x54\x4a\x01\x6e\x74\x90\xf6\xa5\xd4\x65\x7e\x69\x6c\x07\xb3\x24\x63\x40\xfe\x8d\xe3\x62\x2c\xf5\x1d\xe4\x13\x93\x01\x19\xb7\x10\xdb\x5d\x0b\xef\xb8\xb8\xae\xe9\xdc\x0f\xe7\x84\x0d\xb3\x1d\x64\x57\xe6\x59\x86\x41\x66\x39\x87\x3f\x5c\x8d\x77\x04\x24\x07\x60\x01\x09\x25\xb8\xb3\xb6\xd5\xe3\xe9\xb0\xad\x7e\x4d\x71\x11\x00\x4a\x86\x3d\x7f\xd9\x5d\x55\x5b\xc4\xab\xff\x3e\x32\x00\xe5\x6b\x24\xdb\x7d\x5d\xfd\xb2\x33\xe1\x05\x69\x09\xf4\x09\x74\x90\x2c\x24\xd7\xf3\xa9\xdf\xa4\x41\x62\x46\xd1\x49\x5e\x9e\xf9\x82\xee\x2b\x62\xe0\xe8\xe9\x54\x00\x54\xc6\x75\x70\x66\x6e\xe9\x6c\x81\xdf\x19\x41\x27\x32\xf4\x05\x90\xdb\x1a\x7e\x59\x8e\xcd\xf1\xbb\xd2\x68\xcb\x19\x0b\xad\x6b\xdf\x54\x42\x5d\xc0\xfe\x22\xa8\xa3\xc0\x92\x54\xfe\x0b\xd5\xb9\xbd\x6d\x72\x19\x44\x11\xfa\xd6\x94\xba\xfa\xfd\x39\x52\x81\x71\x63\x0c\xd3\x9a\xfb\xa6\x05\x6a\x48\x5b\x94\xcd\x2f\xac\x5f\xc8\x21\x9a\x5c\xd0\xa4\x9a\x72\x40\xe5\xe9\x70\x5f\x7d\x20\xc9\xc6\xfb\x5b\x32\x10\x50\x6b\xf4\xcb\xd3\xeb\xe3\xed\x8e\xef\x7c\x52\x8a\xa2\xd1\x7e\x90\x0a\x09\xc1\x70\x6d\x9b\x19\x4f\x07\x19\x84\x82\xb2\xf6\x78\xc8\x5b\xcf\x52\xf5\xd4\xbd\xaf\x71\xe0\x36\x6f\x2c\x65\x90\xda\x1e\x42\xcf\x4d\xdc\xe0\x75\x5d\xdd\x2b\xbf\x2f\x18\x8f\xfa\x90\x51\xbb\x05\x37\x2a\x43\xca\xc0\xa4\x36\x5b\x69\xc9\x61\x8e\x55\xd9\x20\xce\x71\x08\x80\x0c\x39\xa3\xb6\xfc\x1f\x55\x8b\xcd\x23\x76\x6f\x00\xfa\x1a\x96\x8c\x52\x14\x6c\x20\x3f\x34\x97\xe1\x91\x11\x4f\xc8\x8f\x38\xda\x59\xe1\x2b\x39\xd3\xf0\x42\x46\x42\x13\x6b\xa1\xc7\xd5\x92\xac\xe3\x79\x81\xcb\x08\x2c\x1b\xb4\xcd\x15\xac\x6f\x9e\x76\x3f\x57\xab\x3f\x07\xd5\x2e\x19\x73\x4d\x4d\x2e\x2f\x8b\xed\x8a\x80\xc3\xdd\x00\x5f\x25\x96\x49\xac\x09\xf7\x44\x64\xc4\x79\xeb\x42\x5c\xdb\x4f\xda\x2b\x40\x62\x3f\x5a\x05\x34\xda\xf2\xc9\xd1\x3b\x3c\xd3\x8e\x82\x4c\x03\xe6\x01\x35\xc4\x46\xe7\x13\x25\xba\x1b\x35\x49\xfa\xc9\x34\x4a\xd3\xd0\x37\x68\xc8\x22\x6f\xf6\xd3\x39\x2d\x53\xb4\x6a\x4c\x3b\x0a\xcf\xaa\xcf\x5b\xec\xd7\xb4\xe4\x18\x11\xac\xec\xe8\x9a\x3b\x6e\xe0\x72\x13\x19\x58\x42\xc9\x4d\xd0\xdb\x8a\x5d\x5e\x36\x58\xb7\x3b\x93\x97\xba\x7b\xf3\xdf\xf3\xb2\xb5\x25\xbc\x43\xf5\x81\xbe\x82\xdd\x9f\x98\xb0\xb0\xe7\x69\xf0\x3f\x9f\x09\xc7\x3b\x31\x62\xdd\x03\x29\x58\x42\xac\xa8\xcb\x53\x5d\xbe\xa0\xc2\xfc\x38\xcf\x0a\x05\x52\xa8\x88\x81\xeb\xbc\xb1\x9b\xe9\xfc\xec\x07\x16\x90\x37\x78\x5f\x7d\x42\xd1\xf6\xb3\x4c\x46\x10\x79\x08\xc3\x71\x0f\x8f\xa7\x03\xd6\xb9\x1a\x79\x29\x52\x05\x26\xb6\xf1\x99\xe3\x0f\x78\x3a\xf6\xb1\xbd\x54\xdc\x92\x02\xec\x40\xeb\x07\x68\xa6\x2c\x47\x20\x3b\xf3\xeb\x76\xf3\x4a\xe5\xbe\x92\xdd\xe7\x43\xbd\x2d\x97\x9a\x71\xfa\x4a\x0f\xd5\x25\x48\x5b\x6a\x1e\x11\x05\x9c\x35\x70\x93\x33\x31\x88\x93\x9e\x61\xff\x70\x84\xfc\xad\x9c\x8e\x60\x8a\x7a\x12\x48\xbe\x64\x55\xea\x41\x1e\x4a\x1a\xce\xa8\xdf\xe8\xe7\x66\x79\x33\x48\x70\x49\x93\x59\x6d\x3e\xaf\x2b\xb8\xb6\xea\x93\x75\xdc\x0f\x90\x22\xb2\x31\x0d\xf1\xd4\x4f\xee\xd8\xe8\x90\xba\x62\x60\xe8\xd7\x4d\x2c\x80\x0a\xb8\x6d\xe6\x3c\x63\x4d\xb6\x08\x87\x9b\x53\x4b\x6b\x73\xfc\x05\x55\xc8\x34\xd3\x3e\xc1\xf9\xcd\x72\x2d\xe4\x55\x79\xee\xb5\x57\x51\x12\xba\x6d\xee\x1d\x4b\x5f\x48\xf6\xc7\xb8\xb1\xf4\xaa\x95\x6f\x7e\x69\xbc\xb5\x28\xfb\x31\x68\xd9\xdb\xad\x64\xf7\x20\x83\xa3\x22\x63\x93\x41\x47\xac\xd5\xd3\x85\xd0\xd6\xe4\x46\x53\x96\x60\x3a\x25\x14\xa4\xcd\x86\xf4\x0d\xe7\xfc\x82\xb0\x3f\x57\x73\x27\xed\x85\xbf\x07\x5f\x43\xa5\xa8\x35\x65\xe1\xf2\xb7\x7d\x3b\x22\x00\x02\xc5\xb9\xb6\x79\xff\xdd\xb0\xec\xb4\xad\xd6\x37\x8b\xe7\xee\x19\x7b\x46\x97\x6b\x9d\xb0\x23\x9b\xaa\xb8\xb6\xa9\x7b\x57\xc2\xd9\x56\xf7\x53\x95\x78\x50\xdc\x28\xea\x3e\x83\xe2\x42\xe2\xef\x5a\x6b\xa1\xca\xb4\x85\xb3\x37\xd8\x52\x4d\x7c\x56\x72\x07\x94\x60\x86\x6a\xbd\x0b\xac\xab\x12\x4f\x17\xad\xb2\x7e\x58\x62\xdd\xad\xbc\xf9\x41\xaa\xe4\x0e\xe8\xb6\xfd\xed\x76\xa5\xce\xcb\xb9\xf9\x39\x9f\xd6\x55\x22\xd3\xa9\xa3\xfa\xb8\xb9\xf9\xee\xa8\xf1\xfd\xc4\x56\x02\x04\x81\x5e\xec\x16\x66\xf7\x56\xfa\x7c\xb3\xdb\x18\xf1\x93\x10\x02\x28\x2f\x0a\xe2\x28\x42\x3d\x70\x27\xcf\x83\x48\x9f\xef\x54\xf6\xd5\xed\xf9\xab\x41\x9a\x8e\xba\xd9\x9e\x9d\x98\xdc\x70\xea\xb8\xa1\x92\x71\xcb\x47\x75\xbb\x6b\x08\x10\xdf\x2d\x9e\x55\xbb\x9f\x80\x9e\x95\x62\x31\xca\x49\x51\xf2\x47\x0e\xe4\x03\x5d\xfb\x6a\x93\x29\xad\xa0\xd7\x0e\x5c\x42\x83\x73\x04\x23\x8a\x30\xb1\x67\x88\xfb\x88\x7e\x6f\x30\x4a\x73\x9a\xac\x3d\xa2\x75\x5c\xcf\x54\x4a\x67\xd4\x35\xaa\xa1\x7a\x7e\xba\xdf\xfc\xb9\x68\x87\x59\x59\xa5\x39\xa4\xbd\xba\x94\xcd\x5b\x8f\x8c\xb5\xc2\xd8\xe6\x5a\xcf\x10\xc9\xbf\x6a\xf5\xf0\x27\x72\xa9\x7b\x92\x19\x0b\xe7\xfb\x73\x72\xef\x98\x19\x52\xe5\xd4\xa4\xb6\xf1\x2d\xaf\x0b\xb7\x12\x6d\x05\xc0\xdf\xa3\x09\x31\xf0\x61\xaf\x83\x5d\x0e\xc3\x66\x65\x12\xb0\xb9\x47\xbf\xb1\xdb\x3e\xaf\x51\x87\x97\x32\x69\x0a\xd2\x91\xca\x34\x79\xd3\xf3\xd4\xf5\xc7\x81\x91\xad\xda\xe5\xcd\xf2\x94\x4f\x5d\x53\x65\x64\x42\xd9\xfd\x53\x79\x04\xf5\xbe\x98\x26\x38\x94\xd1\x19\x15\xaa\x8f\x05\x7c\x76\x31\xf1\xc4\xad\xd0\x01\x17\x14\xb3\x59\x20\x3b\xea\xd7\x8d\x0f\xe7\x74\x90\x09\xe2\x94\x6d\xae\x75\x44\xea\x50\xa5\xa9\x17\xe4\xda\xe7\x85\xb6\x02\xfe\xc3\x46\xf9\x8b\xcc\xa3\x0e\x75\x24\x3c\x8b\xbb\xa3\xef\x5b\xd8\x70\xc1\x12\x5e\x9c\x5f\xc0\xac\x3d\xd0\x2c\x88\x89\xd3\xef\x89\x3d\xcd\x86\x8f\xc3\x49\xa2\x19\x07\xb2\x31\xf5\x59\x80\xd2\x71\x41\xf8\xdb\x61\x99\x15\x8f\xa5\x70\x64\x89\xed\x7a\x92\x15\xd4\x91\x66\xb1\x1e\x7e\xc4\x65\x05\xed\x1d\x4e\x62\x0e\x1d\x87\x56\x50\x46\x43\xfd\x5e\x56\x1a\x97\xd5\xb4\xbb\x55\xc7\x69\x88\x30\xec\xe8\xe9\xde\xf5\xe4\x2a\x80\x34\xf1\x76\xc4\x79\x73\x51\xdc\x77\xa3\xd2\x40\x53\xa3\x16\xc1\xba\xf0\xab\xfc\x9b\x4e\x53\x4e\x52\x78\x8f\xa7\xc3\x93\xd9\xb4\x27\xdd\x4d\x52\x47\x4d\xe4\xd7\x9a\x4e\xb5\x95\x0f\x6c\x4e\x07\xdb\xab\x31\x98\x04\x9c\x85\xf4\xf8\x0d\x39\xff\x94\x5c\xf3\xf6\x53\x67\x81\x65\x54\x21\xbd\x8b\x6c\xf2\x28\x22\x4c\x89\xe6\xc9\x01\xe7\x76\x37\x8b\x67\x7f\x9e\x88\x52\xea\x5c\xd8\x62\xd3\xb2\xe9\x69\x69\x44\x1d\x74\xb7\xab\xff\xfa\xb3\x1f\x9f\xc6\xbe\xcf\xec\x05\x3b\xe7\x64\xb8\xca\xb4\xc8\xf8\x80\x85\x7e\x71\x3c\xd6\xd8\xb9\x5f\x79\x55\x6e\x5a\xf4\xcb\x48\x77\xa1\x31\x35\x20\x4f\xde\xa5\x0c\x43\xb2\x33\x87\x4a\xe7\xe6\x93\x6c\xf6\x98\xf1\x64\xe0\x14\x6b\x19\x05\xb6\x98\x6d\xb9\xd5\x3c\x36\x54\xcb\x38\x23\xe7\xda\x6b\x41\x53\x5c\xed\x6b\x09\x83\x5c\xa4\x96\x09\xa3\x4c\x55\xb7\xd6\xb6\x95\xb3\x88\xab\xdf\x63\xd4\x2d\xcb\x06\xcb\xc6\x6f\x65\x5a\x22\x68\xa7\x03\xd7\xc2\x80\xdb\x48\x2b\x91\x90\x27\xd1\x45\x57\x4f\xa5\xb7\xc6\xb6\x4a\x36\x9d\x82\x0a\xb8\x6f\xfb\xda\xec\xa1\x46\x0b\xa3\x6e\x46\x5e\xd8\x64\x06\x29\xa9\x28\x05\xd6\xc5\xe3\x37\xd5\xe1\x58\x60\xef\x52\x6a\x9d\x65\x59\xff\x61\x7e\x5d\x08\x5d\x8e\x2f\x84\x11\x50\x75\xda\xa1\x99\x88\x50\xca\x0e\x8d\x7d\x33\xe5\xf8\x66\x31\x36\xf4\xb6\x1d\xf7\x26\xea\x9d\xea\xe2\xd8\xdd\x47\xde\xf6\x7d\xeb\x1a\x39\x37\xbe\xe0\x32\xbb\xd1\x6a\x54\x21\xe5\x74\xce\x15\x81\xc9\x71\x9d\xda\xd9\x0f\x85\x6d\x79\xef\x2f\xad\x39\xf5\x14\x34\x27\xd9\x05\x02\x2f\x55\x75\x98\x01\x50\x6a\x13\x45\xf4\xfe\x3f\xa0\x38\xe1\x14\x1f\xaf\x0d\x8f\x89\x13\x6d\x77\x2a\x69\xc3\x41\xed\xd8\x41\xa6\x3d\xfa\x18\x44\xc2\xd3\xf9\xff\xcc\x9b\xfd\x25\xe8\x11\x03\xae\x29\x04\xb2\x12\x32\x9b\x9b\xc5\xbd\x8f\x5a\x31\x4c\x82\x24\x3c\x7b\xc4\x24\xe1\x31\x4f\xab\x0c\xc8\x02\xe9\x8b\x04\x8b\x32\x3f\x40\xb1\xd6\xe4\x22\xf7\x14\xb1\x4d\x7b\xea\xa7\x2c\xb2\x30\xb1\x50\xae\xce\x21\xfd\x27\xd6\xd5\x43\x55\x52\xf4\xe3\x8f\xf3\x40\xa6\x9e\x11\xe1\x4b\xe7\x02\xa3\x98\x11\x6f\xa4\xae\xca\x76\xb3\xaf\x7e\x3d\xe0\xba\x9b\xaf\x3d\xe4\x00\x23\xc5\x08\x7b\x61\xa5\x2b\x1d\x00\xe9\x62\x4d\xfa\xc1\xda\x2a\x5e\x7d\xe0\x3e\x57\x45\x5f\x09\xc6\x38\x46\x12\xb4\xf0\xc2\x05\x03\xef\x1a\x63\x9d\xf2\xd4\x51\x4f\x5b\x74\xe1\xe4\xa2\x09\x8b\x94\x8f\xef\x3b\x57\x50\x6f\xeb\xcf\xc5\xa9\xdd\xbf\x96\xe0\x5a\x6b\xfb\x90\x1a\x13\x2e\x42\x4f\xaf\xff\x6b\x42\xa8\x82\x89\xca\x08\x2b\xb7\x78\x7e\xde\x6d\xb6\x4f\x2f\xfd\x97\x4a\x83\x98\x74\xbd\xd7\x8f\x3f\x56\x2f\x9b\xd5\x6e\xb9\xd8\xac\x37\xbb\xe7\xa7\xf5\xe3\xb6\x1f\x12\x6a\x22\xea\xaa\xa8\xe7\xe3\x0a\xdd\xf5\xf8\xbe\x53\x69\xb1\xaa\x2d\x1c\x9f\xab\xbe\x28\x8b\xa9\x31\x94\x74\xdb\xfc\xf9\xdc\x5f\x9d\xf3\xd8\x69\x80\xff\x26\x2a\xde\x0f\xe8\x87\x67\xc8\x28\x0d\x59\x62\xaf\x91\x77\x05\x78\x33\xf6\xb3\x31\x43\x49\x9b\xb2\x6a\xeb\x11\x6f\x1a\x8a\x34\x0d\xbb\xd9\x43\xf5\xf8\x9f\xb9\xc9\xcf\x07\x04\x71\x16\xe6\x8d\xb5\x07\x13\x4d\x3b\x40\x91\x69\x1b\x09\x87\xd3\x03\x10\xf0\x33\x99\xc7\x18\x66\x8d\x42\x01\xad\x03\xdf\x7e\x59\xea\x1b\x28\x2e\x1f\x62\x50\x63\x41\x30\x98\x5a\x1e\x23\x78\xc3\x09\x5b\x21\xa0\x64\xb6\x97\xfc\xd9\xc2\xf9\x2f\x1a\x43\x50\x32\xa4\x8c\xd2\x0e\x0f\x79\xbb\x79\xcf\x8b\x62\x51\x23\x34\x9b\xcb\x34\x9d\x3f\xc1\x41\x07\xfb\xc4\x7e\xf7\xec\xfe\x98\x64\x54\xa5\xe8\x9e\xad\xc4\xc2\x3d\xdc\xf2\xd3\x76\xf7\xcd\x3a\x44\xa8\x22\xe1\xbd\xd0\xbc\x34\x55\x01\x66\x6a\x59\x54\xa4\xb8\xf0\x4e\xfd\x80\x6c\xe4\xda\x05\x95\x45\x79\xb4\xa7\xba\xb4\xc4\xee\xfe\xf6\x74\x6c\x88\x72\xe7\x16\x5a\xf0\xdc\xbb\xfe\x50\x16\x68\xd3\xd7\x57\x2e\x68\xf2\x01\x31\x88\x89\xc2\x70\xa1\xb5\x4d\x76\xb5\xf8\x56\xd5\x23\x06\x7c\x40\x0c\x35\xd5\x89\x94\xdb\x40\x5f\x80\xf6\xb4\xc1\xf7\x40\x96\xda\x7e\xa2\x6e\xfb\x6a\x5e\x50\xcd\xef\x36\x88\x51\x44\xe1\x45\xcf\xaf\x40\x5f\xb6\x67\xf3\x05\xc4\x18\x69\x69\xdc\x54\x87\xc3\xa9\xcc\xdb\x4f\xca\x4e\x4e\x56\x31\x72\x8b\xda\x27\x11\xfe\xc6\xa6\xcb\xfb\xb7\x61\x58\x48\xbe\xd5\x37\xcb\x2e\x4d\x5a\x32\xc7\x22\x9f\x46\x42\x68\x12\x8d\x0e\x84\xbb\x39\xc9\x67\xf8\x44\xdf\x53\x3a\x5e\x44\x26\x05\x5a\x7d\xab\xed\xf7\x87\xa7\xc7\xd5\x3f\xfa\xdf\x91\x5c\xe0\x5f\x77\xb4\xfb\xd1\x2a\x21\x4d\x84\x0d\x1e\xcc\x18\x1d\x8d\x46\x4b\x9a\x79\x77\x3f\x6f\xbb\x6f\xb3\xf2\x94\xca\x60\x82\x44\xd9\xce\xfc\x66\xd3\xda\xbc\x7d\x7f\x24\xcb\x68\xb5\x35\xc7\xe2\x32\xe5\x36\xfe\x69\x13\x0a\x4c\x2c\x32\x6d\x8b\xbf\xdb\x41\xda\xd5\x84\x52\x52\xf2\xac\xc6\x63\xb5\x3c\x27\x6b\x0c\x13\x9c\x60\x85\xcf\xab\x97\x9b\xd5\x23\x35\x1e\xdc\xae\x7f\xac\x37\x4f\x1e\xcd\x69\xa2\x20\x25\x26\x9e\xba\x73\x19\xb0\xfe\x89\xf9\xba\x7c\x80\x7c\xc0\xd1\x67\xe2\x48\x50\x43\x48\x67\x0e\x8a\xe5\xa9\xbe\x82\xd9\x33\x71\x9c\x66\x9e\x0c\x6a\xe2\x76\x9a\x44\x70\x82\x66\x74\x56\x79\x06\x15\x68\xd2\x34\xa4\x3c\x88\xcc\xdf\xc8\x07\x7e\x80\xdf\xf4\xef\x63\x8f\x5d\x34\xa9\x92\x04\x30\xb0\x2d\x09\xb7\x68\xe0\x54\x74\x81\xc2\xf7\xfc\x6d\xdf\x8f\xc1\x50\x39\x90\x97\x95\xf7\xf6\x50\xc5\xe1\xcb\x4a\x8d\x25\xc3\xb5\x41\x8b\x05\x83\xb9\x43\x3c\xe4\x94\xa1\xb4\x2e\x14\xf5\x05\x12\xdf\xda\x35\xf0\xdc\xc9\x29\x7e\x7b\x6f\x36\xf9\xef\x01\x8d\x4f\xfa\xdf\x23\xd6\xf1\xd3\x75\x75\x70\xff\xeb\xc2\x92\x56\x9c\xfb\xcc\xde\xbc\xa0\x61\x38\xd9\x90\x0c\xef\xbe\x7a\x67\x16\x0f\x76\x59\x7c\xde\xa2\xea\x7c\x0d\x7a\x6b\x7f\x31\x8f\xb2\x80\x53\x07\x26\x51\xb9\xae\xfa\x76\x16\x23\x42\x19\x0d\xca\x4b\x43\xfe\xa5\x09\x50\xe3\x7c\x2d\x21\x4d\x92\xf5\xe4\xe3\x3d\xf7\x7d\x33\xe3\xc9\x19\x08\x15\x65\x66\x9f\xe1\x5f\x9d\xd3\xc0\x58\xe4\x7f\x19\x18\xd3\x4e\x42\xf5\x1e\x4d\xbb\xbe\x79\x9a\xe3\x7e\x35\x20\x39\x85\x9b\x1f\x39\xfe\x7a\xc6\x36\xa7\x20\xa4\x33\x54\x7b\xf2\xb3\x3b\x27\x6b\xd6\x47\x35\x80\x9a\xb6\x2d\x8d\xa0\x8b\xbc\xc4\x5e\xe1\x68\xd0\x68\x63\x24\x63\x54\xfc\xf2\xa1\x7a\xff\x77\x15\x8b\x73\x77\x86\x2b\x6c\x4f\x58\xde\x67\xe1\x95\xd9\xe4\x5d\x49\xa5\x32\x2b\x6a\xb9\x2e\x4b\xac\x37\xaa\x3a\x5e\xc1\xaf\x19\x15\xd8\x5c\x58\xde\xbc\xe0\x9b\x2d\x5a\x4c\x1e\x49\x47\x3a\x71\x3c\x1c\xaf\xc7\x09\x55\x3a\x18\x0c\xd0\x4b\x56\x76\xb1\xf4\x5c\xfb\x83\x41\x66\x42\xe1\xa1\x59\xa0\xf6\x37\x70\x3c\x9e\x9f\xda\xc4\x32\xb0\xcd\x08\x0d\xd5\x9e\x66\x7b\xdf\x65\x10\x08\x5b\xf0\xf9\x13\x8b\xa2\xfb\x02\x45\x91\xc3\x61\x3e\x5a\x96\x41\x80\x9c\xd8\xbd\x1e\x6e\xb6\x3e\xb7\x36\x8e\x68\x86\x8f\x28\x83\x90\x73\xca\x1d\x38\xd8\xf1\xb9\x32\x6a\xe1\x93\xf6\xff\x37\x77\x55\xbd\xea\x59\xa2\x65\x10\x8a\x04\xcf\x49\xc7\x5b\x9f\x1d\xdb\xe2\xe1\xd8\xbd\x46\x9b\x1c\x1a\x15\x38\xfc\x89\x20\x2c\x21\x22\x7c\xbe\x60\x39\xfd\xc0\x7e\x90\xe2\xd4\xf0\x81\xc7\xbc\xa9\x34\x36\xbd\x7d\xea\x0e\xe9\xc0\x71\x9a\x35\x76\xaa\x5c\x79\x0b\xa1\x09\x89\xb1\xe4\x1b\xb6\xf7\xd5\x9b\xc3\xa7\xfc\x74\x94\xdf\xfd\x98\x98\x62\x33\xdf\x80\xd3\x6c\xab\xce\x3d\x5a\x5b\x32\x78\xed\xbc\x25\x3f\x9a\x85\x01\xbd\x28\x8f\x78\x3f\x9e\xda\xc1\xcc\x96\x01\x13\x9c\xa8\x11\x16\xc7\x7d\x5d\xe9\xbc\x3d\x9f\x28\xc1\xea\x8a\x74\x46\x64\x83\xe5\x45\x77\xbd\xb3\x4d\x32\x88\x30\x26\xfd\x15\x1b\xd1\xdc\x55\xd5\x90\x37\x44\x06\x71\x80\xc1\xa0\x05\xda\xbd\xec\x3f\xc6\xce\x2c\x85\xfa\x53\x9d\xa2\x79\x9b\x3a\x79\x65\x89\x14\x1e\x00\xd3\xdb\x2b\x19\x70\x29\xbc\xf8\xa3\x6d\x7b\xed\xcc\xa5\x87\xad\xc8\x40\x80\xb4\x5b\x1b\x36\x55\xf1\xd1\x2d\xdc\xe3\xe4\x93\x0b\x19\xe8\xb3\xd2\xdd\xf3\xda\x9f\x09\xcc\x36\x06\x7d\x87\x66\xdf\xc2\xdb\x25\x55\xa1\x0c\x20\xca\xb2\x01\x71\x8b\xaa\x2e\xb9\x26\x64\x00\x32\xf6\x0d\x39\xeb\xe7\xbb\xcd\xf7\x01\x98\xdb\x8d\x90\x69\x48\x55\xc7\x9d\x45\x7c\x0d\x2a\x2d\x32\x90\xdc\xae\xc0\x66\x6c\x5a\x27\x24\x6a\x6e\xb0\x42\xdd\x0b\xb5\xe6\x25\x92\x3a\xc2\x3c\xe7\xbc\x0c\x74\x14\x46\xee\xc2\xab\xa6\x8b\xf9\xbb\x09\x45\x64\xb2\x7d\x0d\x62\x7e\xe6\xea\x48\x64\xa1\xa7\xbe\xa5\xd2\x80\xcd\x17\xe5\xe5\xdb\x40\x33\x6e\x0b\xf5\x1b\xb6\x03\x68\x8c\x0c\xd0\x58\xe0\xc2\xfe\xad\xb5\xfd\x6f\xe3\xeb\x9a\xcc\xe6\x68\x49\x3b\x7d\x47\x40\xc5\xe9\x08\x19\xf8\x98\xda\xe6\x88\xb7\xbf\xaa\x45\xfd\xd6\x8c\xeb\x12\xf1\x6c\xbd\x5d\x86\x01\x06\x5e\x20\xac\x9b\x28\xb7\x27\x2c\x9c\xd4\x98\x0c\x03\x03\x36\x64\x05\x83\xdb\xea\xe1\x74\x91\xe6\x76\xe3\xc2\xc4\x32\x17\x1d\xaa\x8f\xf3\x3a\x0d\x43\x6e\xc8\x1e\x8c\xe3\xa1\x45\x73\x81\x7b\xba\x8c\x8c\x64\xc8\x18\x04\xe2\x6c\xa4\xcf\x69\x53\x19\x32\x19\x53\xd2\xc3\x3b\xe6\xdd\x5f\x30\xb3\x0c\x0c\xd5\x01\xdb\x3d\x9e\x9a\xcd\x3e\x3f\x92\x1e\x8c\xee\xc7\x18\x15\x5a\xee\x97\x87\xdb\xd5\xe3\xee\x76\x75\xb3\x7e\x58\xdc\x6f\xfc\xe1\x88\xc7\x04\x79\x3a\xb3\x67\x5d\x67\x1f\x94\x61\x9c\x66\xd4\x6f\x2f\xa1\xc1\xd5\xf6\xfb\x88\xfe\x48\x86\xb1\x90\x74\xef\xb6\xb7\xc8\x6a\x34\xce\xc6\x3b\x32\x8c\x21\x51\x16\x19\x8a\x78\x8b\x2d\xe4\x13\x16\x1e\x19\xc6\x32\xa4\xd6\xa0\xcd\x49\x36\xaa\xce\x8f\xce\xc6\x9f\x0a\x5c\x1f\x8e\x45\xff\x93\x5a\x44\xbe\x19\xb7\x5b\x49\x23\x46\xa2\xc9\xd7\x4a\xb8\xa0\x98\x80\x2a\x90\xe4\xc3\x51\x64\xe6\x7f\xf7\xff\xc6\x99\x7f\xcc\x44\x07\xdc\x5d\x95\x38\x20\x66\x4a\x32\x32\x4c\x43\x43\x3b\xf7\x42\xeb\xdb\xfc\xc3\xdf\x50\x1a\x5b\x39\x9d\x2e\x84\x6b\xb6\x95\x85\xc1\x4c\x4e\x4c\x02\x02\x8c\x39\xbb\xb8\xaf\x11\xe6\x88\xa0\x64\x98\x6a\xfb\x6d\x1a\x2c\xf5\x08\xba\x33\x79\x99\x29\xa6\xb4\x92\x10\xea\xe2\x73\xb0\xe8\xce\x8c\x01\xe3\xf1\x3c\xe0\xd1\xb9\xe3\x67\x59\x55\x45\x33\x24\x39\xa9\xaa\xa2\xff\xe0\x9d\x2b\x17\xb9\xb4\x31\xe5\xb9\x12\xff\xa0\x10\x31\x42\xac\x41\x35\x52\x24\x90\x21\x70\x19\xf6\xa5\xe4\x5b\x2c\x66\x78\xb8\xbf\x72\x9d\xcf\xef\x09\xc0\xb6\x31\x0d\xc8\x12\x76\xb6\x5b\xbb\xff\x29\x19\xc5\xde\xa3\xa1\xfe\x9b\x1c\xc6\x3c\x10\x6e\x9c\xcc\x98\x74\xa0\x8f\x53\x83\xb5\xab\xba\x5f\x99\x9a\x12\x52\xa2\xcd\xfc\xa0\xdc\xee\xca\x49\x10\x5d\x7d\x86\xf9\xb9\x26\x91\x59\x0a\x09\x97\x70\xc0\x99\xf6\x0f\x19\x2a\x66\xc9\xcb\x1f\xd6\x8f\xbb\xcd\x76\xf1\xe7\xca\x3f\x98\xca\x24\xe5\x47\x3c\x72\xe4\x16\x0d\x96\xfd\x2e\x10\xea\xcc\xea\x4a\x5b\x38\xf1\x7b\x5e\xbe\x39\xde\x36\x7f\x5c\xe8\xd4\x1b\xf3\xc7\x6f\x7d\xb4\x3d\x6b\xf9\x43\x8d\x41\xc6\xa7\x62\xb4\x9b\xed\x97\x79\x45\x19\x62\x6c\x05\xc3\xf2\xe6\x01\xfe\x45\x6c\x5b\x8e\xb4\x19\xf5\x1f\x43\x7b\x66\x80\x87\x8e\xe3\x74\x93\x97\x6f\x05\xf6\x0d\xe1\xe3\xeb\x19\x00\x4a\x02\x16\x68\x5a\x9b\x15\xf0\x07\x14\xe3\xe9\xd9\xd3\x86\xa6\xe9\x76\x97\xe5\x0c\xc0\xac\x1b\xcb\xe5\x99\xd0\xe2\xdf\x20\xab\x75\xb9\xcc\x3d\xb1\xbf\x64\x01\xb7\x85\x87\xfb\xdc\xe0\x1d\xa8\xb6\xaa\x77\xfd\xca\x65\x8c\x2b\x4f\xe7\xf3\xfc\xf4\x74\x6f\x0b\xd7\x61\xd6\x1f\x56\x01\xb8\x4a\xd2\xf2\xa4\xdf\x70\x96\x8b\x47\x32\xa6\xad\x88\xcd\xaf\xbc\xd4\xd5\x2f\xd2\x34\xa6\x8a\xc4\xf8\x71\x19\xd3\x31\x11\x48\x96\xa7\xc3\x12\x4b\x34\xb9\xca\x81\x12\x38\xfe\xb8\xd1\xc9\x79\x1b\xb8\xd9\x77\xdb\xe7\x10\xd1\x29\x59\x94\x19\x97\x84\x6f\x4f\x75\xd9\x19\xbf\xfb\x6a\x20\x2f\xea\x8d\x5a\xe4\x56\x32\x8b\xc3\x80\x50\x5a\x4e\xd1\xb4\x2a\x5b\x2c\xdb\x21\x61\xd1\x78\x3b\x72\x19\x12\xc9\xe2\xd8\x50\xba\xe0\xbd\xaa\x11\xca\x9b\xbc\xcd\xfb\x56\x77\xc9\x62\xcc\x28\xe2\xbc\xab\xaa\xfa\xe8\xff\x98\x68\x41\x66\xeb\xff\xdc\xdd\x0e\xfd\x41\xc6\xa5\xa6\x4f\x5c\xe3\x07\x42\x71\xeb\xc2\xae\x3f\xc6\x3f\xc7\x0d\x23\xab\x8a\xa5\xa6\x00\xe6\x2c\xc8\x28\x59\xc6\x58\x12\x0d\x94\x9c\x7a\x0f\x08\xcf\x43\x24\xd0\xc2\x59\xac\x67\x1c\x34\x96\x29\x1e\x9e\xe7\xd2\x9f\x9f\x6a\xa4\x12\xf0\x65\x2f\xfd\x7c\xc3\xbd\xfb\x67\xce\x7c\x31\x11\x21\x07\xd7\xdb\xd5\x05\x0f\x24\xfc\x31\x47\x2b\x26\x99\x88\xad\x58\xe9\xeb\xfd\xf6\xe5\xe9\x71\xf5\xfa\xe0\x1f\x47\xf0\x90\x1a\xe1\xd0\xf5\x4d\x8e\xea\xf9\xdd\x61\x24\x61\xa2\xdd\x11\x6b\x53\xd5\x87\x17\x2c\xf1\x17\x5c\xf1\x56\x98\xc8\xb2\x01\xf5\xed\xea\xed\x6d\xa3\xf6\x78\xd9\x2d\xf5\x97\xff\x92\xc7\xde\xe7\x4e\x24\x13\x88\x96\xaa\x13\x75\x33\x80\x2b\x4a\x26\xa3\x58\xa7\x7d\x6b\xd6\x54\xb5\x57\x32\x99\xa4\x69\x67\xc6\x56\x3f\x96\x03\x31\x20\xc9\xa4\xb0\x25\xbf\x1e\x79\x6b\x41\xfa\xb3\xe6\x9a\x49\x04\xa7\x6c\xd9\xae\x3c\x78\xda\xea\xbd\x5f\xf1\x58\x99\x0a\x12\xc2\xc5\x7d\xe4\xf8\xcb\xe1\x50\x3d\xc9\x37\x25\x0e\xfc\x6d\xa8\x8c\x33\x57\x6b\x78\x6d\x49\xa2\xdc\x31\x20\x8d\x6f\x00\x03\xeb\x13\xe5\x79\x3e\x3d\x12\x6a\x4a\xc4\xe7\xaa\x1a\x16\x71\x25\xc3\x38\xa5\xcc\x17\xda\xae\x89\xba\xff\xbb\xb2\x8c\xe8\x5e\x01\xfb\x0a\x9b\xd0\xf0\xe5\x1b\x2e\xb3\x33\xa1\xf2\x10\xc8\xec\x6b\x9a\x21\xcb\xfa\xb1\x96\x58\x72\x0f\xcd\xfe\x36\x37\x26\x57\xa7\xa2\xfd\x9c\x2c\x40\x83\x09\x01\x47\x6b\xaf\xef\x67\x3b\x82\x4f\xb5\xaf\xfe\xca\x28\x94\x29\xa9\xdd\x50\x84\xb8\x1d\x6c\x1b\xd3\x4f\x74\xe9\x41\x46\x2c\x88\xc1\x6d\x5d\x7f\x7e\xaa\x21\xf8\xd4\x0d\x88\xb2\x38\xb2\x05\xab\x0d\x51\xa1\x56\x26\x9f\x30\x53\xc9\x28\x42\x5b\x80\xd4\xd5\xb6\x06\x7d\xb1\x91\x8f\xbf\x77\x94\xa0\xa5\xc3\xd2\x78\xe8\x36\x96\xfe\x31\xd2\x8c\xdb\xc6\x9a\xaa\xfe\xcb\x45\xe0\x4f\x11\xb1\xef\xd3\xb2\x59\xc4\xbe\xff\x63\x50\x1e\x97\x11\x77\x29\xd6\xb6\x01\x27\x32\x36\xbe\x4c\x16\xca\xd4\x56\xbc\xe0\xb0\xda\x7e\xb7\x20\x0c\x1f\x7d\x44\x59\xa8\x22\x07\xa5\xfe\x06\x4d\x3c\x63\xc8\xa2\x2c\x93\x04\xe8\x20\xa4\xa8\x82\xa2\x58\xf7\xbf\x9d\x29\xee\xdb\x11\xce\xe2\xff\x17\xa5\x3c\x19\x89\x08\x29\x83\x7b\x9b\x2b\xdf\xcd\x2c\x23\xe1\x04\xf1\x35\x5a\x3e\x82\x05\x85\x30\x50\xfc\x75\x4d\x47\x46\x02\x80\xe8\xfe\x3e\xa0\xc8\x6d\xca\x81\x10\x0f\xbd\x67\x99\xfd\xf7\x50\x6f\x68\x74\x2a\x84\xa1\x11\x83\x7e\xff\xd7\x06\xeb\xcd\x11\x15\xf5\xc3\x12\x73\xde\x5c\x45\x2e\xf3\x67\x4b\x46\x79\xe2\x9f\xff\xf8\xcf\xbf\x42\xa7\xc8\x88\xca\xb6\xff\xeb\x7f\xff\xaf\xe7\x02\x3e\x4d\x55\xcb\x53\xf1\xde\x0e\x36\xa9\x48\x06\xb6\x6e\x73\x5f\x0d\x8b\x6a\x32\x92\x8a\x51\x3b\x9c\xd3\xbf\x58\x56\xa7\x21\xf9\xea\xf8\xd5\xaa\x6e\xa3\x71\xfd\xc2\x97\x44\xe9\x7f\xe5\x04\x4f\xae\x25\x03\x4a\xd3\xf8\xb7\xba\xfd\xf2\x9a\xd7\x66\xf1\xf0\xf8\xd5\xec\xed\xf4\x97\x91\xa5\xa4\x56\xb0\xa3\x54\x88\xdf\x74\x22\x65\x84\xb0\x32\xfd\xaa\xd2\x6e\x47\xfb\xdb\x7b\xc7\x78\x1a\xeb\x54\x26\xae\x45\x69\x8b\x70\xe8\x5d\x43\x77\x18\x23\x11\xeb\x89\x67\x4a\x00\x5f\xbc\xba\xe4\x27\x3f\x80\x69\x4c\x44\x32\xa7\x72\x0f\x45\xbf\x44\x50\x22\x25\x81\xe8\xb9\x6e\x49\xa0\xa3\x77\x32\x22\x44\xa5\x7c\x56\xa1\xdb\x1f\xac\xc0\xff\xf9\xa8\xb5\x25\x50\x14\x36\xbe\xed\x5f\x8b\x51\x32\xf1\x0d\x51\x75\xf5\xab\xb5\x1a\x06\xb3\x52\x87\x32\x0e\x93\x08\x3d\xc3\x74\x5d\x7d\x3e\xe6\xe5\xbf\x60\x32\x84\x85\xc0\x6c\x7a\xba\xc4\x03\xbe\x53\xee\xc0\x3f\x41\xcc\x62\x45\x28\xa0\xef\xff\x7c\xb9\xac\x9c\xc8\x98\x01\xa7\xf8\xd5\xce\xfc\x6d\xe5\x3e\xf4\xb0\xee\x27\xe3\x88\xa5\x42\x7b\x20\x89\xa5\xb8\xea\x22\x6b\x82\xcc\x0f\x33\x85\x71\x94\x06\x84\xb4\x19\xa1\x8d\xbf\xec\x87\x90\x71\x84\x01\x2d\x23\x5d\x43\x5e\xee\xe4\x99\x6b\x44\xc6\x31\x0b\x43\x4f\xaa\xe2\xcc\xcb\xe4\xf6\x63\x99\x10\x9c\xfc\x05\x9b\xaa\x38\x59\xe1\x52\x4f\xd5\xeb\x86\x24\x5c\x13\xe3\xdb\xa9\x2c\xf2\x43\x7e\x76\x00\xe3\x04\x98\x70\xe6\xcf\x4a\x1a\x0e\x1b\xcf\x65\xcc\x43\x4e\xc0\x94\x8d\x95\x85\xc7\xfa\xbc\xff\x7d\x3d\x57\x63\x1e\x59\xf6\x03\x6c\xda\xfc\x00\xad\xb5\x4b\x79\xf9\x36\xcf\xbe\xfd\x3f\x5b\x08\x31\x17\xc2\x78\xfd\x28\x6c\x41\x0f\xdd\xf2\xd1\x47\xe3\x90\x11\x5b\x09\x15\x3e\x89\x16\x65\xf0\xa1\x38\x48\xc5\x07\x9d\x68\x3d\x77\xc2\x99\x8f\xa5\x7f\x11\x19\x86\x24\x51\x68\x19\x37\x36\xb6\x21\xfd\xa2\xbc\x22\x63\x08\x13\x72\x4d\x29\x69\xb2\xa1\x5b\x71\xe1\xfe\x17\x9c\x53\x32\x96\x41\x48\xa5\xe0\xd7\x72\x7f\x4d\x6b\x5c\xc6\x32\xe2\xa1\x0b\xdf\x37\x6d\x75\xdc\x60\x51\x9c\xd3\x68\xb1\x14\x9a\x7c\xdf\x95\xda\x57\xe4\x1e\x0e\xed\x71\x2c\x15\x73\x64\x40\x9f\x70\x6a\xf7\x58\xb6\x79\x37\x37\x87\xb1\x67\x2c\x75\x96\x45\x83\x14\xb8\x99\xcd\xdf\xc7\x12\x03\xe9\xb2\x3d\xdb\x53\xdd\x16\x78\xa0\x56\x83\x17\xfc\x7f\xfe\xc7\x54\x96\x52\xfe\xc0\x35\x80\x9f\xff\x9c\x51\xc4\xf8\x80\x3a\xef\x66\xc4\x00\x07\xd6\x9e\x9a\x29\x9f\xc3\xc0\x6b\x8b\x55\x86\x04\xf0\xca\x9b\x97\xcd\xf3\xc6\xb2\x39\xf9\xab\xea\x48\x53\x87\x0a\x29\xfa\x0f\x89\x37\xe7\x5f\xa2\x46\x41\x4e\xf4\xfa\xe6\x69\xb7\x5c\x6c\x56\xbb\xe7\x97\xf5\xcd\x6a\xb7\x7e\xdc\xfd\x5c\xf9\xe4\x75\x8c\xdc\xaa\x16\x35\x07\x59\x9c\xff\x66\xc8\x0d\xce\x55\xb5\x6e\x5e\x4e\xe5\xa0\xd4\x10\x9b\x50\x67\x2e\x39\x4a\x9c\x8d\xde\xf3\x1d\xbc\xdd\x24\x88\x02\xa7\x1f\xda\x54\x05\xe1\xc0\xdc\xd9\x49\x18\xa0\xe0\xae\xb2\x3d\x45\x46\xc8\x24\x54\x36\x79\xb1\x6b\x2b\x3b\x9f\xa6\xc7\x0d\xe7\xbc\x47\x5c\xd9\xa7\x79\xec\x43\xa2\x84\xa5\x8c\x09\x32\x0e\x24\x7f\xbf\xef\xbc\x8c\xe5\xe7\xa5\x23\x99\x30\xc1\x52\xf0\xc2\x5b\xdd\x6e\x4d\x80\x0e\x2b\x78\x31\x1b\x4a\x24\x4c\xb1\x04\xcf\xa8\x46\x5a\xd8\xbd\xcc\xf5\x5d\x55\x6f\x06\xdd\x5c\xee\x94\x24\x02\x5b\x5c\xfe\x85\x78\xfc\x99\xff\x1b\x6a\x7d\x53\x1d\x0e\x79\xd3\x5c\x78\x7d\x49\x02\xda\xb8\x79\xb6\xe9\x8c\x39\xbe\x59\xe2\x8b\x45\xa9\xad\x30\xd2\xd2\xca\xf0\xce\x87\x2d\x49\x1a\x80\x8a\x5d\xaf\x70\x5e\xbe\x0d\xa0\x0f\x7e\x00\x33\x04\x32\x7a\x2d\xf3\xaa\xdf\xcf\x92\x54\x5b\xa1\x52\xcf\xf8\xb8\x2c\x2a\xb9\x69\xab\x1a\x1f\xab\xd6\xb3\x67\xe1\x60\xb4\xf6\xb0\x15\xca\x5d\xd8\xde\xa9\xc9\x8d\x60\x1c\xf8\xf5\xd2\x79\x23\xf5\x30\x4b\x9d\xf0\x58\x92\xec\xa3\x3c\x7d\x5a\x09\x29\x3f\xb1\x13\xce\xe3\xcc\xd2\x00\xe3\x11\xea\xe9\x55\x33\x26\x28\xdf\xff\x82\x1f\x79\x73\x36\x6a\x49\x96\x44\x14\x30\xd8\x04\x35\xfc\xbe\xfa\x7e\xb2\xc4\x76\x16\x38\x8e\xce\xcd\x1e\x74\xf5\x6b\x20\x65\x2a\x93\x2c\x65\x5e\x93\x84\xa2\x71\x7a\x85\x15\x21\xce\x86\x5b\xda\x39\x6a\x99\xcc\x0f\x99\x4a\x34\x03\xc1\xaa\x4d\x8b\xc7\x6c\xf2\x18\xd2\x08\xaa\xb9\x50\xbe\xb6\x19\x6a\x4d\xcb\x44\x99\xd8\x6a\xb0\x59\x5c\x2f\x82\xee\x6f\x4d\x07\x29\xc9\x58\xbb\xe6\x36\x46\xac\xd6\xee\x18\xc6\x16\xb5\xff\xf8\x41\xf0\xbc\x33\xb6\x4e\x26\xc8\x6d\xdb\x4e\x89\xbf\xe6\xa8\x76\x58\xf0\x1f\xc3\x9c\x51\x82\x99\x20\xd8\xe5\x8e\x44\x57\x48\xfe\xf1\x52\x8b\x5b\x26\x26\xcc\xb4\xfb\xc0\x3b\xe8\xb3\x67\x89\x81\x34\x72\x7a\x42\x14\xce\x4e\xa9\x10\x64\x62\x74\x40\xd7\xdf\x12\xd4\xf6\x0b\x86\xf0\xc9\x8b\x35\x18\x91\xab\xf9\x63\xb5\xd9\xae\x1f\xbf\xed\xd8\xee\x76\xb1\xf5\xc9\xd0\x34\x30\xb6\xc1\xba\xc1\xa2\x98\x60\xc5\x64\x1a\xc6\x8c\x16\xa0\xc5\x65\x2f\x8a\xc2\xf5\x7e\xaf\xcb\x3e\x1b\x70\xc6\x79\xc8\x34\x4c\x18\xb3\xed\xd4\xf7\xf7\xeb\x27\x4f\xf9\x2b\xd3\x50\xc6\xf4\x77\xbb\xf4\x69\x3b\xfc\x1a\xf4\x43\xa7\x10\x44\xa8\x7b\x99\x2f\x43\x7d\xf8\x59\x3b\x9d\x32\x11\x52\xbc\x45\x4e\xe7\x06\xcb\x39\x7d\xd5\x49\x89\x33\x8d\x02\x9b\x5e\x73\x95\xa4\x1f\x96\x2d\x72\x6c\x2f\xd3\x28\xe5\x24\x30\x68\xe9\x56\x7b\xaa\x8f\x09\x0f\xda\x17\x20\x13\x99\x46\xdc\x9a\x7b\x47\xa6\x6a\xdf\xe0\x44\xe8\xdd\x0f\x15\x11\xb3\x05\x54\x28\x46\xb4\xd3\x32\x8d\xb4\x25\xad\x5e\xdc\xdf\x3f\xdd\xec\x5e\x56\x9b\xf3\x01\x4d\x70\xd5\x03\xbc\x63\x8f\x71\x9c\x7b\xde\x98\x85\x64\x21\x5c\x27\xe9\x63\xa5\xf1\xbb\x95\x8c\x1b\xe5\x28\xd2\x38\x01\x74\xed\xab\x4f\x65\x1f\x68\x8e\x6f\x34\x86\x88\xcb\x01\x6c\x87\x9a\x24\xac\xe2\x8c\x1f\xa1\x39\x85\x17\xd8\x2d\x55\xab\x9d\xac\x7a\x45\x1b\x99\x26\x29\x38\xa8\xe9\x47\xde\xc5\xa3\xe7\x15\x99\x26\xa0\x29\x8f\xfc\x50\xc9\xbc\xe8\x82\xe4\x61\x9b\xae\x24\xdd\xad\xa1\x72\xf0\x0e\x7f\x2b\x6c\x9a\x5d\x3b\xe3\x60\xa5\xa9\x6b\xc9\x72\x48\xe5\xfb\x29\x49\x8d\x4c\xb9\x61\x54\x90\xe8\xb6\x1f\x5b\xea\xbf\x18\x20\x2c\xb9\x9d\x6d\xe6\xb8\x6c\x06\x94\x69\xc6\x33\xba\xc6\x37\x92\x8d\xb9\xe0\xa9\x97\x69\x26\x82\x5e\x02\xc1\x91\xa7\xcc\xcf\x63\xd0\x19\xe5\xdb\x8a\xea\x2d\x0c\x6e\x30\x27\x97\x6d\x3c\xc2\xc4\xea\xfc\xe6\x6f\x2c\xac\x72\x14\x7b\xa4\x32\x34\x64\xd2\x94\x61\xb6\x30\xc2\x9e\x55\xff\xe2\x25\x4b\x28\x3b\xf6\x51\xd9\x7c\xff\xc5\xf3\xca\x2c\x15\x9e\x71\x65\x6d\xf3\xf4\x49\x7f\xb2\x01\x2a\x90\x2f\x1f\xd7\x43\x7f\x31\x95\x46\x53\x32\xef\xe6\xb3\xa7\xd8\x9f\xa4\x09\x4e\x53\x0e\x04\x99\xaa\x30\xa5\x67\xb5\x1f\xee\xae\xaa\xc3\x55\xbb\x7f\xf6\x89\x9a\x54\xa1\xf2\x58\x83\xf5\xd1\x58\x02\xae\x6d\xde\x4e\xba\x4f\x65\xaa\x03\x95\x38\x65\xd2\xfc\x70\x3a\x78\x05\xd6\xb5\xed\x55\xf0\xf6\x35\xd5\x20\x2c\xc9\x1c\xbc\x8f\xb8\x40\x64\x8a\x91\x01\xfa\x38\xfb\xea\x54\x68\x4b\x94\x44\xcc\x6e\x93\x5c\x24\x0f\xb4\xa0\x46\x6a\xbb\x90\x5f\x1b\xac\x6f\xb0\x6e\x2d\x2e\x66\x72\x57\x3c\x64\xb6\x8b\x69\xd4\xd8\xf8\xb5\x11\xe3\x21\x13\x10\x0d\xe1\x13\x79\x55\x2f\x7b\x5e\x36\xc9\x59\x1c\x33\x4f\x2f\xfd\x0c\x9f\xa3\xd8\x8b\x47\x22\xa6\x4a\xce\xc3\xe2\xdb\x6a\xd0\x7f\xd9\x1d\xb0\x42\x75\x67\x4e\x8f\xfb\xaa\x99\xac\x13\x1e\x07\x8a\x72\x66\x04\x0b\xfd\x12\x7c\x37\x38\x87\x45\x04\x44\xfb\xc8\xeb\xf6\x04\xbe\x9b\x72\xd2\x05\x20\x79\xc2\x52\x72\x7a\xe4\xe9\xf3\xdc\xbc\xfa\x5c\x4d\xf7\x45\x9e\x70\xdb\x35\xff\xb2\xfa\xf6\xe4\xef\x3d\xc9\x80\xea\x60\xa0\x75\xb7\xaa\x9e\xab\xbc\x9c\xe7\x2f\x95\x3c\x15\xb6\x9b\xd9\x91\xc2\x75\xef\xad\xdb\xc9\x36\x2d\x1c\x8e\xeb\x72\xf1\x02\xff\xee\xb3\x0d\xf3\x8f\xc3\x99\xd5\x5b\x6b\xf6\x79\xe9\x8d\x0d\xe7\xb1\x8d\x84\x89\x0a\x2f\x2f\xdf\xd6\x67\x6a\x2c\xc9\x79\xa2\x13\x57\x86\x6c\x4e\x07\x1c\x09\xdb\xfa\x21\x68\x59\x9d\x77\xa4\x75\x59\x7d\xe4\x1a\xeb\x39\xaf\x80\x67\x12\xa9\xb8\xf6\xba\x59\xbd\xec\x96\xaf\xff\x18\x8a\x93\x48\x9e\x29\x41\xa5\x08\x53\xe4\xc7\xfe\x8b\x8b\x04\x48\x95\x04\x2c\x83\xfd\xf2\xd4\xdf\xb5\xd0\x09\x77\x80\x78\x27\x8a\x37\xc4\x86\x70\x81\x11\x95\xc7\x3e\x88\x92\xeb\xa5\xdb\x02\xa6\x02\x8b\x92\x43\x00\xa9\x19\x32\xe0\x6c\x8e\xa0\xb0\xd9\xe7\xc7\x25\xb4\x6d\x81\x0f\x95\xc6\xe5\xe7\x7a\x62\x3d\x38\x80\x0a\x71\xda\x41\xdc\x74\x93\xdf\x01\x5e\x86\xba\xbb\xf3\xcb\x00\x94\xd5\x8b\xd9\x57\x05\xf8\x5b\x96\x91\x09\x7c\x53\x8c\xeb\x4c\x74\xa6\xaf\x19\x0c\xa1\x12\xdc\x9f\x79\xf9\x76\xca\xcb\xb5\xaa\xfa\x23\xb1\x6d\x34\x52\x50\xde\x3c\x5b\xc8\xf3\xba\xb4\x15\xca\x8b\x2e\x52\x7f\x4a\x96\x72\x57\xe3\xa5\x27\x18\x51\xe2\x8c\x6f\x57\x3a\x0d\xfd\xce\xda\xc0\x5c\x0d\xb8\x1b\x91\x3a\x20\xc9\x07\xce\x61\x11\xb8\x0a\x12\xa2\x54\xb1\x5e\xc6\xee\x8c\x50\x97\x5c\x31\x1b\x36\x75\x4e\xcd\x6e\x5b\x9f\x1a\xa2\x29\xfe\x82\x04\xd6\x9f\x17\x05\x96\xcf\x73\x77\xbb\xeb\x6d\x81\x8e\x32\x50\x67\x8a\x8b\x6e\x52\x7b\x60\xdb\xf8\x6c\x9d\xa1\xd5\x1c\x3b\x42\xed\x73\x4b\x1c\x79\x40\x85\x81\x7e\x25\x3f\x95\x3e\x43\xbf\xc4\x3d\x14\xe6\xca\xad\xfc\xff\x48\x7b\xb3\xe5\xb6\x91\x2c\x7f\xf8\x75\xea\xa2\x2f\xb0\x23\xf3\x92\xa2\x28\x9b\x5d\x92\xa8\x21\x29\xbb\xea\xdf\xd1\xc1\xc8\xe5\xa4\x84\x11\x09\xb0\x01\xd0\xb2\xfa\xe9\xbf\xc0\x39\x99\x89\x85\x90\xab\x26\xbe\xb9\x68\xd7\x08\x20\x08\x02\xb9\x9c\xe5\xb7\x00\x27\x41\x76\x5d\x34\x67\xd1\xaa\x57\x9f\x54\xe5\xc0\xa5\xa1\xa6\xe5\xbb\xa8\xb5\x35\xa3\x7a\x10\xe7\xcd\xa7\x97\x32\x19\x16\xaf\xba\x05\xce\xd9\x9c\xfc\x9f\x0b\x42\xb9\xd1\x9c\xec\x43\x5e\x41\xbd\x7d\x83\x5a\xa8\xa2\x1d\xe1\xf6\x25\x0b\x22\xe5\x88\x60\xeb\xf2\x47\x55\xa8\xc9\x02\xcf\x02\xa9\xb3\x80\x4a\xd6\x94\x2c\x77\xe9\xdf\x27\x0c\x25\xc9\xc2\x00\x68\x8f\xf1\xa1\x29\xf5\xeb\xc7\x56\xf3\x9f\x36\x78\xdc\x55\x0c\x28\xe7\x8d\x6a\xe3\xb2\xe1\x4e\xc6\xa2\xd0\x04\x23\x7a\xee\xb2\x0b\x7b\x5c\xe2\x3b\x7f\x67\x91\x4e\xad\x00\x5a\xf9\x20\xde\xe0\xb1\xba\x83\x6b\xed\xbb\xd1\x78\x66\x09\x64\x0e\xbe\x6f\xb1\x94\x0f\xe2\xe7\xf2\x55\xa0\xe6\x4e\x3d\xd9\x5a\x58\x1a\xc5\xe8\xbf\x23\xb4\xb6\x5e\x1b\xe3\xe9\xc1\xd2\x2c\x72\x22\x10\xe4\x63\x84\x51\x9a\x3b\xc8\x55\xc0\x7b\x45\x11\xb4\x16\xf3\xc7\x0c\x39\x93\x79\x3e\x55\xaf\x18\x86\xe5\x9d\x59\x0c\x01\xcb\xb4\xc1\x36\xe0\xa9\xfa\x41\x33\xe0\xf6\x6a\x4e\x33\x16\x05\x2e\x17\xfd\x5e\x17\x2d\xca\x7f\x4d\x51\x94\xe3\xe1\xc0\xac\x3b\x47\x6f\x8c\x6b\x5c\xd4\xc4\x58\x2a\xb0\xe9\xd6\x63\x86\xff\x6e\x47\x61\xfe\x95\xf1\x94\x8c\x3b\xbc\xdf\xcd\x57\xd1\xbc\x6e\x2f\xee\xeb\x38\x27\x12\xab\x06\x53\x57\xcd\xa8\xd1\xc2\x44\x96\x23\x39\x9a\x9a\x0e\x77\x55\xbd\x1c\x38\x43\x49\x26\x13\x89\x35\x3d\xeb\x02\x84\x62\x07\x93\xb7\x25\x39\xc7\x1a\xef\x41\x68\x8d\xae\xf6\xa2\x6c\xef\x6a\xf1\x42\x6e\x42\xf3\x37\xac\x22\xee\x0d\xfc\x3f\x7e\x07\x29\x64\x5f\xda\x67\x2a\xc9\x49\xb4\x01\x53\xe6\x41\xf6\xc9\x94\x4c\x84\x25\x63\x7f\xa9\xc4\x71\xb2\xac\x32\xa5\x73\x35\x12\x07\x00\x38\xb8\x8f\xea\xc0\x60\xc6\xdf\x36\xad\x33\x14\x91\xcc\x98\x04\xb7\xb4\xb7\xaa\x28\x55\x55\xc2\x9b\x1b\x65\x3c\x60\x1a\x59\x31\x36\x35\x72\x44\xbb\x81\x7a\xb0\xe4\x61\x64\xac\xe1\xd6\x1b\x94\x4b\xca\xe1\xfc\x05\x42\x96\xc5\x56\x7b\xff\xb6\x16\xef\x4f\xe3\xf1\xc4\x43\x91\x39\xc5\xdc\x2f\x70\x7a\x42\x5f\xde\x69\xac\xc0\x43\x01\xae\xc0\xdc\xcd\x03\x8c\xa6\xbc\xb1\xeb\x27\x55\x35\x1e\x9a\x10\xbb\x2d\x67\x94\xad\x22\x47\xc3\x03\x0c\xf5\x02\x25\x8f\x82\x24\x52\x5e\x35\x98\xba\xf0\xe3\xab\x44\x31\xc3\x6c\xac\x1b\x9c\xda\x7f\x4c\x1a\x41\x48\xd9\xea\x74\xbe\xb4\x4e\xe3\x7a\xd6\x3f\x73\x7e\xa1\xe5\x91\x8a\x98\xf6\xeb\xfb\xea\x07\xd4\x1f\x61\x10\x04\xdd\x23\xca\x7f\x9b\x9e\x2a\x71\x15\xb0\x7a\xc3\x23\x70\xef\x27\x57\x8f\x03\x92\x71\xf9\xbd\x3a\x17\xaf\x45\x2b\x4e\xc3\xa1\xce\x63\x21\x71\xa0\xde\x3c\xff\xb9\xda\x1e\x76\xfb\xd5\xd3\x21\x1c\xaf\xe1\x3c\x86\x18\xa3\x3b\x1c\xc7\x55\xb7\xbe\x34\x23\xa8\x17\x8f\x0d\x99\x76\xbb\x5c\xf3\x16\x7e\xdc\x81\x7f\xae\x49\x02\x38\xd1\xac\x60\xd2\x73\xe3\x1f\x5d\x92\xc6\xa1\x8b\xd4\x57\xff\xb9\x38\x3e\xa2\xe4\x09\x8f\x1c\xc3\x92\xc0\x17\xce\x9a\x5a\xcf\x25\x96\x3c\xe1\x90\x86\xce\x2c\x98\x64\x42\x26\x67\xa4\x81\x8a\x7b\x84\x02\x0a\x8a\x3c\x2c\xe7\x10\x95\x3c\x65\x01\x02\x49\xb0\x79\xd1\x3b\xb2\xc8\x2e\x8c\x44\x12\xeb\x0d\xa1\xff\xc6\xd7\xcf\x82\x30\x02\x8b\x6a\xd8\x57\x51\x9a\x4d\x1e\x61\x96\x0a\xb0\xed\xab\xdf\xc1\x69\xa3\x49\x9e\xc9\x40\x53\x36\xf2\xc7\x61\xf5\xc7\xf2\xeb\xe2\xf1\xcb\xea\x70\xb7\x5a\x1d\x7a\x5e\x94\x3f\xd5\x84\x88\x68\xdc\xa0\x5d\x87\x77\xb0\x97\x3c\x4f\x33\xf4\x41\x90\x97\x8f\xe5\x11\xbb\x42\xdd\xae\xdf\x2c\x5e\x44\x51\x36\x24\xef\xed\x4e\x65\xa9\xc5\xd9\x12\x4a\x6e\xf7\xee\x94\x75\xba\x43\x39\x8a\x40\x3a\x5f\x43\xca\x88\xc7\x50\x1f\xce\x52\x8d\x55\x9e\x87\xc5\xf6\xf7\xd5\xfe\xb0\xfb\xba\xd8\xfa\xfb\xe3\x41\x82\xd1\x0b\x31\x5e\x1a\xdc\x4d\x8b\x19\xc4\xf6\xa0\x03\xc1\xb9\x22\x39\x55\x4c\x1b\x76\xe8\x56\x3a\x79\x1b\x22\x22\x20\xfc\xc3\xfa\x71\x7d\xf8\xb2\x78\x58\x1d\x16\xb7\xb7\x87\xfd\xfa\x61\x75\xb8\x5d\xdd\x2d\x9e\xef\x5d\xec\xcf\x45\x4c\x75\x55\x74\x16\x2c\xfe\x0b\x0f\xa2\xfc\xb0\x60\x35\x57\x62\xea\xce\xc1\x7e\xd3\xb9\xae\x4e\x15\x69\x39\x9d\x0b\x50\xe0\x08\x7e\xc3\x28\x81\x8b\x14\xd0\x3b\x5e\xfc\x10\xc5\x51\xc8\x23\xa0\x69\x93\x3b\x28\x14\x26\x15\x97\x06\x9a\xfb\x42\xd6\x5e\xd6\x4c\x72\x01\x39\x19\x50\x89\x6e\x58\xf7\x10\x17\x52\xcc\x73\xf4\x7c\x7b\xb2\x8c\x45\xac\x26\x3a\x35\x89\x3f\xa8\x4d\xe2\x33\xff\x5d\x65\x5a\x25\xce\xeb\xa6\xb9\xf4\x1f\x57\x2c\xc5\x12\x46\xfb\x5a\x57\xef\x6b\x43\x91\xaa\x68\x48\x82\xb9\x1d\xac\x6d\x3a\x23\x91\xee\xfb\xea\xe5\x16\x90\xc9\x3f\xbb\x05\x71\xcd\x32\x2c\x6a\xdd\x50\xec\x64\x9d\x02\xc7\x63\x5d\xeb\x50\xd8\x8e\xd9\xc3\x10\x73\xce\x21\xca\x53\x42\x0e\x75\xdf\xb0\x2a\xdb\x2e\x5c\x1c\x5d\x5f\x04\x21\x39\xc7\xdf\x5f\x4a\x51\xdf\x17\xa5\x0b\x9a\x45\x00\x9c\x67\x56\x22\x59\x1d\x2f\x57\xdf\x2a\x42\x23\x5c\x9f\xee\x50\xa8\xaa\x2c\xfe\x73\xb0\xde\x36\x87\xea\x3c\x28\xf2\xf6\xc3\x4b\x44\x29\x60\x4a\x6d\xcf\xfb\x2a\x6a\xad\xfc\x88\x17\x91\x1a\x02\x90\x9f\x2e\x75\x33\x32\x6f\x91\x22\x49\x9d\xe6\x6d\x53\x94\xd5\x2f\xc5\x74\xdc\x27\xa4\xc2\xbe\xef\xa1\x81\xf6\x6b\xf5\xde\x0d\x41\x52\x85\xba\x05\x55\xe8\x49\xf4\x24\x12\x93\x11\xa7\x0f\x63\x0b\x22\x6b\x5c\x27\x4e\x22\x0d\x8c\x0e\xad\x4e\x4c\x2d\x5a\x2c\xa8\x78\x0b\xdc\xd9\xb7\x28\x52\x26\xb0\xd6\x69\xf9\x49\x23\xc6\xae\x14\x29\x67\x88\x22\x21\x33\x70\xff\x57\x99\x20\x5c\x08\x4a\xfd\x19\x47\xc0\x9e\x99\xa5\x0c\xd7\xba\xd5\xf1\x58\x9d\x8a\x8b\xdb\x49\x44\x96\x45\x88\x6a\xb9\xdb\x7f\xfb\x7b\x25\x77\x91\x65\x80\xa8\xb5\xe6\x58\x28\xb8\xa1\x66\xc1\x18\xcb\xe1\x4e\x14\xb1\x05\xa1\xb7\xde\xc5\xb0\xa7\xe5\xff\x32\x0c\x14\x79\xa2\x85\x73\x2c\x85\xa6\xba\xd4\xea\x8a\x32\x36\x0e\x52\x05\x63\x2c\x8f\x9c\x74\xb8\xae\xde\xfd\x2f\x64\x3c\x08\xa5\xd7\xfd\xa9\x2e\xed\x60\x2d\x17\x4c\x82\x13\x9f\xa4\xa5\x6c\x06\x04\x2e\x78\x28\x70\xd0\xd5\x28\x56\xfc\x5e\x0d\xe2\x0f\xc1\x45\x8e\xa3\x87\x1c\x3b\xb6\x08\xa9\xbd\xa9\x9c\x30\xac\x14\x5c\xd1\xce\xe4\x86\x3d\xae\x9a\x23\x58\x83\x10\x01\x19\x2a\x92\x27\xce\xa2\x6d\x07\x84\x95\xc9\x63\x11\x81\x44\x22\x82\x38\x41\xa9\x29\xcb\xb2\x12\x98\xc4\xea\x1c\x4d\x05\x29\x72\x2c\x8e\xad\x16\xce\x20\x59\x0a\x15\x85\xd8\x64\x1a\x85\x54\x27\x51\x94\x4b\x71\x5e\x97\x5e\x49\x46\x0a\xc5\x18\x02\x5e\xbd\x6f\x45\x14\xf8\x43\x82\x86\x0c\x89\x88\xec\x86\x54\x63\x77\x86\x8c\xd0\x06\xbd\x0b\x50\xd1\x12\x06\x2b\x35\xc5\x8b\x7f\x27\xca\x18\xec\x62\xa3\x70\x0e\x72\xac\x6f\x26\xc8\xfa\xf1\x05\x75\x9c\xbb\xe6\xa2\x97\x53\x1c\xbb\xab\x49\xa1\x33\x2b\x6d\x71\x46\x5a\xc4\xa0\xb3\x28\x74\x2e\x31\x0a\x50\x57\x28\xe7\xf9\xe8\x4b\x68\x2d\x11\xb2\x7d\x33\x70\x12\x90\x02\x02\xd2\x05\xc5\x42\x4d\xd5\x14\x43\x7c\xde\x3f\x46\x9f\x87\x80\x63\xcc\xfd\x08\xef\x5b\x2a\x78\x7e\xc2\xc0\x10\x10\x26\x59\xee\x97\xdf\xc5\xf1\xb8\xf8\x21\x5a\xe1\x33\x08\x01\x42\x3b\x50\xde\x76\x58\x48\x98\x0c\x51\xd0\x9a\x90\x7f\x47\xd1\xbc\x76\x8b\x0d\x6a\x77\x0f\x9a\xee\xc2\x24\x39\x1a\xf5\x6c\x9e\x56\x28\x96\xb9\x7b\x7e\x7a\xba\xff\xd3\x7d\x8d\x49\xc3\x20\x21\xdd\x2a\xdb\x28\x18\x7d\x36\xcd\x32\x3d\x80\x43\x94\x2d\x2a\x95\xff\xfa\x19\x1a\x00\xe6\x9d\x4f\x9a\x7d\xf5\x50\xf8\x6d\x5a\x06\x21\x63\x2e\xa5\x20\xea\xb5\xed\xea\x8c\x7e\x95\x0c\x12\x85\xbc\x55\x0d\xb2\x1d\x44\x75\x32\x48\x53\x5c\x0c\x11\xce\x8d\x23\xf7\x3b\x14\xfe\xa0\xe2\xa9\x18\x16\xf7\x1c\x38\xcc\xba\x98\x8f\xc7\xaa\x0c\x03\x52\xcb\x7e\x84\xf7\x81\x0d\x85\x94\xa1\xce\xb3\xb0\x0f\xbb\x6e\xb0\x3f\xe6\x80\x0c\x53\x1c\xb6\x8c\x8c\x46\xb9\x9c\xfd\x76\x3f\x0c\xd4\x65\x1c\x6a\xac\x8d\x9c\xc4\xdb\x34\xbc\x95\x49\x1c\xa3\xc2\xd4\x2d\xc0\x79\xf4\xa1\x24\x0d\x11\x48\xbb\xdf\xec\x17\xf7\x87\xef\xeb\xc7\x5d\x7f\x24\x49\x9c\x37\xb4\xaf\xbe\x1f\xda\xea\xe0\xb4\x8c\x0e\xef\xe4\x81\x7b\x30\xd6\x48\xcd\x7d\x32\x0d\x34\xb2\xb1\x5b\x10\xa7\x9e\xfa\xea\x95\x93\xe7\xe7\x9d\xcc\x20\x55\x7c\x54\xf1\x3c\x23\x17\xf0\xb6\xea\xd6\x8c\x5e\x3c\x71\xfe\xa1\xe4\x81\x72\x5a\xb1\xf7\x9b\xe5\xe4\xd7\x33\x19\x62\x85\x7d\xbf\xda\x39\x65\x03\x29\x39\x0b\x11\x02\xd0\xad\xa2\x07\x73\x14\x2f\x87\xcd\xa3\x3f\xa6\xa5\xe4\x3d\xc4\x79\x59\x5d\xce\xfd\x5e\xfa\xaf\xa8\x07\x0c\xb3\x7f\x8f\xd1\x8a\xff\x8a\x6c\x28\x29\x45\x6c\xb0\xed\x72\xbb\xdc\x8d\x1e\xb8\x50\x3a\x21\xa4\x40\x61\xcc\x24\x4f\xe9\xe6\x16\xee\x1f\x45\xa9\xa0\xec\xd2\x78\xaf\x1c\x5b\x54\xa5\x53\x16\x70\xf3\x55\x76\x2b\x1f\x73\xe5\x37\x94\x04\x9b\x34\xc5\xec\x79\x2a\x94\xc6\xd3\x31\x1b\x1c\x5a\x36\x6e\xbf\xab\x6a\xf4\xe8\x9a\x9c\xcf\x52\x9c\xa0\x5f\xca\xaa\x29\x9a\xbd\x38\xfa\x37\xab\x18\x89\xa8\x34\xe4\x10\x50\xbc\x94\xb7\xa2\x38\x7e\xcc\x90\x92\xa5\xd2\x06\x01\x32\x42\x6b\x4a\x78\xd5\x24\xd4\x93\x9a\x05\x7c\xc0\x40\x74\xd5\xec\x75\x79\xff\xbc\x9f\x9e\x2a\x02\x54\x32\x79\x1a\x20\xa3\xa5\x56\x54\x0e\x22\x00\x07\x12\x17\xc6\xbf\x03\xa2\x10\x3b\x70\x0b\xd5\x5e\xac\xe2\xe7\x48\x14\xa6\x3b\x23\xc5\xcd\xe3\xa6\x7a\xa9\x7a\xe5\x2c\x29\x21\x0e\x10\x3c\x72\x57\x55\xde\x2a\xca\x1f\xe3\x39\xbe\x58\xea\x63\x3e\x97\xc5\xcf\x2b\x33\x0e\x29\x41\xc4\x89\x05\x90\x3f\x54\x1a\x50\xca\x65\xd1\x8e\x80\x33\xf6\x4c\xc3\x72\xae\x3c\x3f\x94\x8c\x4d\x3f\x51\xcb\x73\x9f\xe0\x49\x14\x8c\x18\x67\xdf\x56\xbb\x19\x58\xc8\xe4\x7b\x20\xcc\xec\x1d\x91\x32\xc4\xec\x1e\xa1\x02\x2b\x3a\xe8\x67\x3c\x9e\x4c\x00\x95\xf9\x4f\x84\x91\x0e\x6d\x93\x64\x5b\x94\x2f\xbb\xe2\xbf\x6e\x13\x53\xa1\x32\x28\x17\xee\xf5\xe2\x0f\xef\x63\xf0\xac\x8a\x92\x08\x53\xff\x87\x4b\x33\x94\x5b\x95\x2a\xca\x12\x2c\x9c\x97\x28\x68\x80\x5e\xb9\x8b\xe3\x71\x5f\x4d\x75\x0c\xbb\x33\x53\xa1\x3c\x61\x67\x07\xea\x0d\x26\x6c\x01\x15\xcb\x3c\x06\xbb\xf1\xbd\x88\x16\xbe\x0a\x92\x0c\x9d\x38\x8e\x48\x15\x1b\x19\x90\xe3\x48\x51\xea\x43\xf3\x2a\xba\x44\x7d\xac\x93\x60\xcf\x4c\x12\x86\x71\xda\x53\x97\xc5\x3d\x78\x31\x5d\xa9\x92\x8c\xa3\x54\xc4\x6e\xbf\x1d\xfd\xa0\x34\x22\x30\x1d\xe6\xdb\xeb\xe6\x28\xfa\x89\xac\x52\xce\x10\xbe\x58\x34\x54\x71\x98\xd4\x77\xc7\x6f\x52\x65\x56\x0a\xe7\x44\x44\x66\x5b\x69\xf9\xe4\x5c\xae\xb0\x70\xb4\xab\x54\x21\x8e\x08\x01\x1c\xdd\x55\xa6\x48\x68\x1a\xfe\x17\x4a\xf3\x3e\x62\xc6\xab\x3c\x4f\x53\x35\x74\x2c\x11\x27\xf8\xa3\xdb\xeb\xef\xea\xea\x74\x2b\xce\xe7\xcf\x4a\xb9\xff\xf0\xa2\x71\xcc\x5d\x8a\xa5\x09\x0c\xda\x40\x9f\x54\xe1\x14\x4b\x32\xd7\xdf\xbf\xa9\xaa\xa6\x85\x89\x65\x45\xb7\x34\x29\x9e\x7b\x03\xa3\xa5\xa8\x75\x83\xc5\x79\xa2\x8a\x69\x3f\xb5\x15\x13\x80\xed\x6c\x2b\x89\x86\x11\xc8\xc1\x6b\xc3\x48\xc5\x83\x08\xa3\x18\x53\xd5\x0a\xb6\x5e\x19\x4b\x2a\x1e\x02\x67\xa3\x16\x03\xb6\xcc\x6f\x2e\x1f\xab\x9f\xbf\xf6\xa3\x97\x8a\x2b\x86\x93\x19\x6f\xe9\xb0\xdf\x2e\x96\x87\x98\x05\x2e\x9a\x55\x22\x88\xb0\x35\xda\xd6\xa2\x29\x6d\x2f\x7b\xc4\x10\x9c\x5c\x4e\x08\x25\x7c\x7f\xc5\xe5\x35\xf3\x7a\xbe\x97\x19\x1c\xae\x12\x52\x85\x7d\x02\xf9\xa0\xdb\x7d\xb7\x23\xcf\xf5\xd6\x94\x8c\x49\xc6\xc6\xca\xc4\x0d\x21\x33\x4a\x65\x29\xea\xcf\x2d\x96\xf7\x87\xc5\xd3\xd3\x61\x7d\xeb\x8f\x18\x8e\x01\xcd\xae\x40\xf9\xbf\xe1\xe8\xd1\xa9\x46\xdf\x34\x0f\x63\xc3\x6a\xca\x68\x80\x69\x45\x5e\x49\x6e\xa9\xb1\x71\xf9\x2c\x1f\x59\x41\x64\x94\x6d\x25\xd0\x24\xb9\x11\x0d\xe8\x91\x09\xe4\x95\x68\xcd\x80\xd2\xa3\x4c\xa2\x31\xf3\x29\x54\x65\x77\xc9\xe9\x23\x30\x0c\x14\x8c\xc0\x25\x74\xf5\x5f\x66\x8f\xca\x70\x06\x59\xdf\x0a\x44\x34\xb7\xa8\xe7\x8c\xd4\xa4\x32\x46\xa3\x18\xda\xee\xb5\x7a\x1f\x45\xb5\xc3\xb7\xa6\x83\x3c\x43\xad\x11\x1b\x7c\x4c\xf6\xe8\xf1\xd7\xeb\x20\x37\xa8\x0a\x7d\x16\x85\x76\x24\x81\x71\xfb\xc0\xad\x82\x3a\x60\x0a\x03\x1e\x62\xfb\xfe\xbd\xca\xb3\x0e\x65\xce\x22\xcf\xe1\xe9\x86\x35\xd6\xbd\x0f\x65\x45\x89\xb6\xaa\xfa\x39\xa7\xa3\xd0\xa0\x81\xd0\x3f\x6f\x50\x12\x72\xa8\x41\x2c\x75\x94\xc4\x98\x5d\xec\xa0\xfd\xfe\xfa\xf1\xdb\xe8\xd6\x22\xa1\x70\x73\xb2\x01\xb0\xa7\x84\xa3\x8e\xbc\x38\x8e\x97\x73\x1d\x49\x6d\xb4\x5f\x03\x16\x97\x11\x66\x5c\x47\x2a\x47\xb2\x7d\x17\xe8\x74\x0f\xee\x77\xf8\xb0\xcd\x99\xd1\xcb\xd0\x11\x28\x1d\x0d\x46\x9f\x77\x97\xfd\xf5\x0b\xd7\xb1\x4c\x02\xdb\x4d\xb9\xbf\x4c\x0c\xd6\xa4\x8e\x8d\xc0\x4a\x37\x59\xa9\x6f\xde\x41\xdf\x55\xf5\xe2\x5c\xdc\x55\x35\xfa\x00\xcf\x6f\xa2\x3a\xe1\x09\x7a\x1c\xa1\x8c\x73\xff\x40\xd3\x90\x10\x06\x28\x64\x53\xd5\x76\xbc\x0f\x65\x82\xa5\x4e\xf3\x90\xaa\xf7\xfb\xe5\x70\x76\xe9\x54\x4a\xd4\x46\x6d\x2c\x10\x72\x98\xa5\xea\x4c\xa9\x2c\xb7\xdd\xf0\x5b\xd1\x8a\xbf\xe7\xb7\x22\x35\x4b\x15\x79\xf9\x75\x2f\xc4\x52\x1e\x93\xb9\x8a\x8c\x66\x2c\x27\xc7\xbb\x56\xbc\xc1\x43\x51\x2e\x7c\x77\x4c\x33\xc8\x9c\xc4\x0f\x41\x8b\xf1\xf7\x3c\x41\xfd\x15\xea\xa2\xbd\xb6\x42\x99\x5e\xd9\x98\xdc\xca\xe4\xf9\xd8\x78\x5f\x3d\xd5\xc5\x7f\x61\xc0\xc3\xd5\x3c\xe5\xa8\x4f\xf6\x05\xca\xe5\x6b\x41\xb9\xc4\x01\xf9\x5a\xd7\xdc\xd3\xc9\x37\x70\x1d\x61\x21\x65\x5d\x22\xa1\x69\x29\xd0\x6c\x6a\xfc\xc6\x84\x05\x9f\x5b\xb4\xfd\x97\x4a\x1c\xbf\x8a\x5a\x7b\x2d\x7a\xa9\x65\x94\x60\x70\x89\x98\x15\xa0\xc5\x64\xec\xd4\x24\xb5\x4c\x0c\x56\x92\xbe\x40\x4b\x16\x36\x63\xb1\x0a\xad\x52\x81\xfa\x05\x36\xb1\xad\x85\x06\x0c\x74\xed\x61\x1d\x47\x36\xa8\x43\x89\x68\x12\xe8\x6f\xc6\x62\xac\x52\xeb\x8c\xcb\x1e\x20\x66\xed\xc1\xec\x31\x88\x0c\x22\x62\x8a\xe6\xb9\x24\x74\xea\x04\x89\xa2\x4d\x10\x19\xe9\x8d\x07\x86\x48\xad\xd9\x3d\x5c\x9b\x98\x91\x32\x5e\x75\xd4\xf8\xd0\xf1\x87\xaf\x9b\xe7\x1e\x63\xac\x0d\xcb\x30\x5b\xbb\xaf\xd4\xdb\xc5\x3d\x30\x08\x44\x48\xf2\x82\x8e\x39\xfd\x2a\x88\xb2\x6f\x55\x5e\xfd\x79\x90\x20\xb7\xcb\xd6\xb9\xbe\xd4\xa2\x6c\x01\x9a\x07\x71\xc6\x72\xdb\xe8\xf6\x21\x0a\x43\x2a\x63\x69\x6c\xb8\x7d\x07\x70\xd9\x0c\x44\x71\xa0\x62\xeb\xfc\x80\x01\xd7\x0c\x4b\x09\xa2\x98\x64\xb0\x1b\x68\xd7\xaa\x72\x86\x27\xc8\x9d\x18\x40\x76\x21\x8a\x25\x4f\xbc\x10\x0c\x55\xde\xf0\x77\xf8\x2f\xe3\x26\x4e\x1c\x50\xb3\xaa\x9b\x11\x18\x13\x22\xe0\xce\x1f\xd2\x99\x32\x8e\xaf\x1f\x47\x09\xae\xf3\x87\x06\xda\xdd\xe5\xe5\x85\xf4\xc2\xf5\x6c\x13\xd1\x7d\x24\x4e\x55\x0f\xb9\xbd\xad\xd4\xe5\x34\x54\x87\xea\x27\x6d\xe8\x3f\x91\x03\xee\x91\x37\x7f\xde\x0c\x97\x12\x88\x45\x90\xdb\xe4\x7a\xb4\x6e\x43\x2c\x89\x43\xf1\x3b\x9c\x8f\x50\x0f\xd0\x72\x90\x04\x59\x64\x0b\xb2\x97\x79\xc3\x83\xfe\x46\x93\x38\x92\x96\x81\x1c\x8f\xc0\x78\x90\x24\xc6\x95\x75\xfd\x9e\x30\x89\x8b\xfd\xcd\xa7\x49\x90\x98\xd1\xf6\x6d\x0d\xef\xaf\x0b\xff\x90\x66\x31\x25\xa7\x27\x28\xf5\x7d\xf5\x59\x0d\x14\xd2\x2c\xd3\xe0\x2b\x66\x4b\xd1\x28\x31\xad\xd2\x43\x2e\x88\xab\x49\xf6\x74\xe7\xb6\x7a\x18\xea\xb5\xb8\x93\x24\x43\xf5\xfc\x3f\x2f\xe5\xef\xa2\x18\x3e\x28\x16\x24\xf8\xe6\xbb\x0d\xf6\x1b\xd1\x27\x7b\x5e\x01\xb0\x2c\x8a\xc9\x1e\xe3\xc7\xf3\xf9\x93\x9b\xe4\x60\x10\x38\x75\x23\x9a\x42\x8d\x30\xa3\xe3\x91\x2c\x92\x24\xb4\xe8\x81\x75\x0b\x27\xa7\xf0\x3c\xbe\x98\x4c\x73\xec\xbf\xec\x5e\xab\x1a\xfe\x1e\x00\x15\xa4\x4a\xb3\xd8\x1a\x13\x5f\x90\xfc\x59\xb4\xbb\x5f\xf1\x95\xed\xe7\x54\x40\x38\x50\x34\x86\x0d\x1c\x60\x15\x54\x92\xa6\xc6\x6a\x66\x17\xe5\x05\x26\x12\x71\x12\x54\x1e\x61\x3d\x03\xc1\x17\x5f\x05\x25\x00\x30\xe6\xd0\x81\xca\x19\x96\x70\x6a\xc2\xf7\xd0\x44\x99\x13\x44\xb0\xe7\xeb\x30\xc5\xa5\x14\x5d\xd4\x4f\x45\xf9\x89\x2c\x0d\x68\x69\x52\x61\xd3\x83\x21\x6f\x03\x40\x64\x18\x5e\x9d\xa1\x1e\x18\xba\x4d\x45\xc3\xec\xc9\x06\x28\xb7\x52\xe2\xa8\xf6\xae\xec\x6d\xaf\x64\x02\xce\x02\xa7\x6c\x39\xc5\x13\x9a\x40\x06\xe8\xe1\xf4\x56\x1c\x8f\xd3\x43\x46\x58\x7b\x94\x56\x1c\xbf\x8b\x17\xa8\x29\xfa\x98\x0b\xf8\x4d\x18\x07\x88\x2b\x97\x53\xf3\x8e\xd1\x3b\x32\x61\xcc\x30\x64\x35\x15\x22\x79\x77\x6d\x55\x8b\x17\xf8\x86\x65\x54\x77\x4a\xca\x43\xed\x0a\xac\xe5\x87\x8f\xfb\xfa\xf9\x66\xa2\x90\xc5\x96\x6b\x35\xa2\xcf\x99\x28\x53\x58\x68\xb9\x85\x1f\x85\x82\x81\xbd\xba\x34\x91\x20\x2c\xb4\x72\x8a\x2d\x37\x1f\xfe\x90\x8c\x82\x78\x16\x08\xf4\x57\x80\xa0\xff\xbf\xff\x0e\x7e\x53\x9c\x64\xe8\x83\x74\x68\xe0\x78\xc4\x3b\x99\x9f\x77\x26\x49\x63\x7c\x3e\xda\x85\xe7\x36\x7e\x1b\x9f\x95\x65\x22\x88\x06\x10\x89\xed\xa5\xf4\x03\x22\x33\x06\x99\xe7\x68\x1f\x36\x2a\xa6\x9b\x5c\xd1\x1c\x2a\x1a\x8c\x75\x3f\xd4\xe4\xb2\xb9\x52\x11\xad\x60\xe7\x63\xf5\x71\x57\x94\x45\xf3\xea\x77\x52\x93\x9b\x00\x51\x61\x77\x8b\xa7\x3b\x7a\xc1\xee\x08\xe3\x80\xfb\x8d\xcb\x29\x6e\x29\x19\xb9\x2e\x4a\xfc\x3a\x7f\x30\x3c\x48\xbd\xe3\x5a\xdf\x4d\x79\x17\xb5\x7e\xaa\xaa\xe3\xbc\x34\xa3\xe1\xb1\x42\xe1\x00\x4a\x38\x56\x3f\xcf\xc7\xaa\x46\x6f\xb5\xe7\xa6\x28\x5f\x56\x0f\xd5\x35\x95\xd5\x7d\x32\x4f\x71\xa7\xfa\x5a\x9c\xbb\x74\xf3\x4e\xd4\xbd\x70\x85\xe1\x22\xc4\xed\xed\x3f\x17\xa8\x3f\x96\xaf\x85\x2c\x16\x7a\x12\xed\x18\x2e\x33\xed\xf9\xc6\xaa\xaa\x75\x6f\x4f\x32\xdc\xf9\x8c\x08\x19\x88\x81\xb0\xbf\xc5\x2e\x4e\x9e\xaf\x88\x15\xd6\x03\x1a\x25\x86\xa3\x5e\x8a\x00\xd9\x14\xee\x5d\xdf\x81\xed\x9f\xd8\xf0\xdc\xa8\x30\x42\x9c\xd3\xae\x2a\x0b\xc7\xef\x34\x3a\x24\x70\x06\x69\xa0\xef\xc4\x11\x46\x31\x84\xd1\x39\xc7\xd6\xbc\x35\xcd\xb8\x13\x6e\x17\x31\x90\xe9\x04\x59\xda\x36\x06\x40\x93\xe1\x66\x9c\x55\x19\x90\xd2\x41\xaf\x56\xfb\xaf\xdb\x4f\x55\x20\x8d\x09\x49\xd7\xa2\x0b\x45\xac\x8a\xdb\xfc\xc0\x37\x91\x42\xdb\xdc\x83\x13\xd5\x1b\xcb\x83\x4d\xae\x9a\x59\x2c\xe9\x20\xaa\xff\xc4\x65\x59\x1a\x23\x43\xd1\x73\x20\x97\x55\x69\x8e\x85\x6a\x7b\x26\xf6\x68\x12\xa8\x20\x60\xd6\xaa\xc2\x0e\x42\x85\x7a\x69\x9f\x7b\x85\xa9\x20\x50\xe4\x94\xdc\x40\x7b\x10\xb5\x2c\xda\xe6\xd0\x23\x09\xfc\x22\xa0\x82\x10\x62\xd4\xbd\xf6\x18\x10\x9a\xdb\xfb\xca\x06\xad\xbf\x8d\x2f\x1b\xc5\x4c\x5a\xf5\xa6\xe6\x72\xd2\xa2\x15\xd1\xe8\x2d\xa8\x20\xca\x89\xd8\xef\x8a\x6e\x7f\x25\xcc\xe0\x3e\xa6\xf3\xd8\xb8\x12\xff\xb1\xaa\x67\x9d\x95\x54\x10\x27\x39\xe6\x44\xe5\x43\xf3\xd2\x7c\x17\x45\xeb\x07\xa5\x0a\x62\x15\x27\xf6\x27\x3b\xc7\xa1\xb9\x9d\x43\x05\xa9\x66\x58\x77\x87\x9f\xa0\x2e\x2d\x50\x35\x79\x28\x90\xf9\xaf\xb8\x2f\xbf\x24\xe3\x7a\xf4\x95\xac\x83\xbd\x66\x16\x49\xec\xd0\x40\x49\x78\x84\xc1\x26\xa1\x82\x4c\xc5\x29\x35\xb6\x7e\x62\x42\xe1\xff\x6e\x52\x10\xde\x30\xa6\xa8\xb4\xb3\x37\xb0\x49\xd4\x5d\x35\x9f\x6e\xab\x20\x0f\xc9\x14\xc1\x29\x97\x7d\xaf\x5c\x8f\x43\x05\x79\x6a\x44\x6e\x1b\xca\x7b\x10\xa7\x7d\xcf\x0e\x55\x41\x2e\x48\xec\xc1\x5a\x55\x3c\x54\x12\x5f\xd2\x2f\xa4\x74\xfb\x97\x9f\x6b\x0b\x31\x43\x7c\x86\x81\xba\x16\xc7\xe6\x3b\x14\xb3\x79\x94\x0a\x18\x50\x23\x99\x82\xca\x5d\x97\xd9\xfd\x3f\x77\x1b\x5c\x65\x48\xa2\xdd\xfc\xb1\xf9\x85\x8e\x88\x0a\x44\x94\x21\x34\xc4\x42\x0e\x1f\x8a\xd2\xad\x4d\x2a\x90\x91\xc2\xa1\x8b\x59\xe1\x5c\xcd\x4d\x05\x32\x15\xa9\xf1\x4e\x4a\xd3\x67\x39\xb9\x5f\xc9\x13\x27\x5f\x67\x29\x05\x2e\x8b\x19\xbd\x69\xc9\xb5\x31\x14\x67\xad\x7e\x16\xed\xbe\xfa\x9f\x0b\x5c\xe0\xb3\x6b\x7f\xf2\x28\xa5\x64\x60\x71\x5a\x95\x39\x54\xe6\x40\x6b\xe2\xe1\x0d\x3e\x22\xf7\xfb\x74\xa0\xb0\xca\x70\x73\xbc\xc0\xbe\x68\x45\x59\x5c\x4e\xcb\xa3\x68\x1a\x67\x75\xaf\x02\x08\x63\x5c\x31\x69\xd4\x3d\x88\x6e\x31\x2b\xfb\xf4\xbb\x3b\xc1\x20\x85\x0e\xf3\xb9\x8d\xd7\xea\x55\x01\x44\x09\xae\xe0\xcb\x57\x50\x6f\xb7\x9b\xfd\xe4\x47\x02\xcf\x15\x71\x19\x5e\xba\x90\x7c\x58\x08\x53\x81\x09\x73\x74\xac\x34\x00\x56\xfa\xba\xf1\x87\xb2\x14\xad\xb1\xbe\xe0\xca\x0a\xf5\x50\xf9\x8b\x4e\x09\x83\x30\xc1\x77\x82\xc1\xef\xf7\xab\x60\x41\x85\x41\x94\xe3\xac\x38\xf4\x12\x37\xdd\x58\x9b\x14\x30\x54\x18\xa4\x09\x6e\x0a\x0f\x0f\x9b\xbe\xf5\xa5\xc2\x40\x93\xac\xc5\xba\x79\x12\x6d\x31\x75\x52\x57\x61\x00\x49\x10\x7a\x54\x94\xd7\xc9\xf5\x4b\x62\x18\x46\x9c\xc1\x10\x45\x30\xaf\x70\xa5\xc2\x28\x24\x31\x3d\xa2\xe6\x53\xf4\x3e\x08\x2c\x55\x18\x71\x83\x93\xad\x76\x79\xe7\x54\x2c\x4a\x75\x41\x2c\x96\x27\x77\xcf\x8f\x7f\xb8\x8f\xc5\xa1\xa4\x77\x83\x77\xf8\x08\xef\xb7\x53\x21\x3f\x15\xc6\x69\x8a\x48\x34\x45\x13\xe3\x0b\xf4\xcf\x2f\x89\x62\x49\x7e\x05\xa8\x69\x7b\x73\x91\x83\x5c\x58\x85\x49\xac\x10\xa8\xf9\x08\xef\x7f\x6c\x49\x55\x1b\xd9\x48\x93\xa4\x74\x3c\x39\xc2\x24\x8f\x71\x73\x3d\x8b\x8f\xc5\xf1\xe8\x9e\x8b\x3b\xc8\x24\xba\xb8\x89\xee\xaf\x57\xf4\xaf\x41\x23\x45\x85\x89\xc8\x11\xca\x7d\x16\x85\x1e\x61\x2f\x55\x98\x86\x8a\x45\x03\x0c\x04\x6a\xc0\xf7\x63\x39\x4c\x25\x00\x45\x8a\x16\x2b\x8b\xda\xb7\x17\x5f\x95\x51\x61\xaa\xa2\x4c\x0d\x79\x29\xa3\x3e\x80\x0a\x53\x1d\x30\x9b\xe9\xae\x4e\x5d\x38\x09\xb0\x2e\xbb\x7d\x42\x5c\xa9\x47\xa9\x30\x0b\x22\x4d\x1c\x0b\xf4\x47\x5b\x56\xb5\xbf\x4e\x06\x19\xbe\x20\xc2\x1c\x6c\x57\xbb\xd5\xf6\xdb\xea\x70\xf7\xfc\x78\xeb\xcf\x30\x29\x06\x03\x9f\x6a\xf6\xab\x30\x17\x24\x00\x5d\x5e\x4e\x0b\x5d\x9d\x5b\xd0\x8b\x9f\x05\x4c\x99\xca\x83\x71\xc9\x42\x85\x14\xfd\xb7\x7e\x67\x09\x19\xd7\x58\xb0\xa6\x61\x37\xff\x45\x9c\xc5\xf8\xab\x49\xae\xb1\x3a\xea\xdd\xb1\x7a\x29\xfd\x63\x97\x59\xac\x9d\x74\x64\x2b\xde\x06\x3e\x21\xe3\xcb\x48\xa6\xb1\x4f\x60\x6a\x00\xfd\xbd\x6a\xba\xf0\x97\xfc\xfa\xfc\x95\x54\x9e\x58\xea\x83\xd5\xb0\x99\xdf\x19\x42\x15\x70\xdc\x48\x1e\xe1\x52\xdb\xbe\xb6\xbb\x86\x0e\x52\x6c\x60\xe2\x82\x85\x18\x4d\xd2\x26\xf3\xc7\x43\xf2\xb6\x38\x20\x12\x1a\xc7\x3e\x7e\x7e\x80\xd0\x57\xa1\x4e\x14\xa6\x22\x8a\x6a\x7d\x13\xa4\xa5\x0a\xc1\xd0\x38\x68\x1c\xef\x69\xbf\xe9\x35\xbd\x55\x14\x24\x0a\xa1\xf4\x54\x02\xb7\x1e\x9b\xf0\x3e\xbe\x48\x14\xe8\x20\x4f\x47\xdb\xc5\x7a\x1e\xa8\x67\x87\x7e\x14\x46\x02\x5b\xea\xba\x68\xe4\xa5\x6e\x80\x14\xb7\x46\x0f\x39\x0a\x05\x89\x3a\x1e\xde\x01\xde\x06\xdb\xbf\x3b\x0c\x1c\xb3\x83\xe7\xdd\x61\xfd\xb8\xdb\xaf\xf7\xcf\xfb\xf5\xe6\x71\x71\xef\xee\x3c\x4e\x00\x2c\xbc\x61\xbd\xdc\x38\xb5\x91\x7e\x0c\x45\xb1\xa0\xca\xb5\x5d\x1b\x30\xa8\x8d\xfc\xa7\x65\x8e\x1e\xd5\x5f\x17\xdb\xdb\xc3\x72\xf1\x74\x58\x3f\x1e\xb0\xfb\xe8\x4e\x48\x22\x83\x42\xb0\xd8\xb5\xdc\x82\xd0\xfe\x80\x49\xf3\xb0\xbf\xec\x1e\xca\x11\xcb\x5b\x45\x69\x2a\xb1\x7c\xd4\x42\xd3\xde\x88\xff\x3e\x40\xfb\x5a\xe9\xb5\xff\x7c\xaa\x01\xa5\xee\x76\xe2\x74\x3e\x02\x06\xb7\xe3\xde\xec\xff\x89\xd7\xa5\xa2\x8c\xc5\x3c\x76\x19\x7d\xa3\xa0\xd4\x62\xba\x0f\x44\x79\x16\x0a\x0f\x0f\x3a\xc1\x6f\xa3\x0b\xe4\x86\x23\xad\xfd\x7e\xf7\xe7\x93\xbb\x49\xc6\x89\x1e\x8c\xd8\x48\xf4\x6a\xb6\x0b\x98\x0d\x13\xc6\x97\xe7\xb1\x70\x96\x78\x56\x2f\xb2\x59\xd6\xa0\x8b\x76\x61\x4c\x71\x2c\x44\x0b\xcd\xf5\xfb\xe5\x49\x84\xdc\xe4\x1d\xb4\x8b\xd5\xd1\x78\x49\x59\x94\xd0\x68\x8a\x97\xf9\xf9\x14\x71\x11\x8c\xdd\x5a\xf7\xd6\x2a\x61\x4e\x51\x77\xfc\x8d\x82\x87\xb6\x90\xfd\xf2\xbd\x28\x4b\xa8\x11\x3a\x36\xbe\xbc\x10\x11\xf2\x51\x1e\x17\x0f\xeb\xc7\xcd\x76\xed\x1e\x88\x8c\x02\x43\x1b\x4d\xf7\xc2\xb0\x4a\x7e\x77\x29\xaf\x95\xf8\x54\xa4\xa2\x20\xb5\xb5\xa9\xdd\x19\xbf\x66\xaa\x6b\x34\x17\x2e\x0d\xcd\xe2\x98\xbf\x92\xc4\x2e\x2a\x59\x0c\x3b\xee\xe6\x9c\x5c\xa8\xfb\x40\x9a\xa4\x96\x68\x71\x68\xde\xab\xda\x6e\xc4\xee\xce\xb4\xd2\x58\xbd\xb4\x94\x98\x42\xc3\x44\x90\x61\xf2\xbc\x20\x60\x2e\x64\xdf\x82\x1a\xb0\x2f\xaf\xc8\xfe\x2a\x82\x30\x55\xce\x1d\x87\xfa\x5f\x5d\x94\xf6\xcf\x4a\x4e\xc7\x0a\x08\x25\x43\x37\x56\x28\xae\x1e\x0a\x9a\xf9\x9b\x35\x69\x80\xa2\x3c\x4e\xb7\xa1\x85\x91\x8c\x95\xf5\x7f\x1c\x9c\x1e\x62\x9c\xf6\x57\xf6\xb6\xee\x74\x4d\x48\xba\x4b\x59\x19\x54\xca\x3d\xa2\x40\x60\xf1\x52\x3e\x9f\x87\xb8\x71\x15\x07\x09\x47\xd0\x8b\x2b\xc9\x13\xc9\x6e\xa6\xce\xea\x9f\x45\x1c\xa4\x02\x87\x68\x97\x3b\x2c\x50\x0c\x6b\x45\x1a\x68\x57\x25\xd6\xd1\x4d\xc5\x01\x13\xe8\x9b\xf6\xee\xaa\x99\x3b\xbf\x31\xd8\x61\x18\x87\x69\x82\xed\x66\xd1\x22\x80\x02\x9a\x9e\x36\xa8\xe2\x28\x23\xcc\xb2\x8d\x93\xd0\x35\xbd\x2f\x55\xaa\x38\x62\x06\xcb\x83\x32\x8d\xc3\x2c\xc9\xa5\xff\xbb\x61\x62\x28\x8a\x87\x95\xd2\xbb\xaa\xde\x8b\xe6\x6d\x67\x93\xf4\xa9\x5c\xa2\xfd\x68\x2c\x34\x06\xa0\xb7\xbb\xa7\x5f\xe5\x36\x71\xac\x58\xee\xbb\x5a\xc3\x6e\xba\x3d\x9e\x84\x09\xa2\x10\x55\x55\xd5\xba\x28\x11\x81\xf5\x52\x43\x97\x15\xae\x9c\xf4\xd1\xf8\x61\x25\x11\x60\xd5\x65\x5b\x35\x30\xdc\x55\xe3\x24\x0d\x89\x85\xd3\xad\x23\x3f\xa0\x9e\x1e\xce\x43\x02\xe4\x88\x9f\x44\x14\x1d\x3e\xde\x84\x25\x38\xe8\x56\xed\xeb\x49\xcc\x18\xe1\xfd\x1d\x90\xb0\x8a\x13\x11\x61\x6c\x50\xa8\x6a\x45\xa4\x34\x74\x42\xdd\xb5\xe2\x05\x42\xff\x55\x86\x21\x03\x62\x71\x3c\x36\x6d\xa5\xde\x9a\xd1\x5d\x66\xa1\x52\xc9\x40\x77\x0d\x17\x9c\xb1\x9a\xac\x8a\xb3\xc4\x38\xdc\xda\x16\x7b\xe6\xe3\xdb\xc8\x58\x80\x39\xa3\x01\x38\x9c\x9a\x17\xff\x29\x11\x47\xcc\x02\x3e\x83\xff\xb9\x78\x63\x6a\x15\x67\x86\x11\x74\xa4\x6e\xfb\xa6\x87\x8a\xf3\x98\x04\x9c\x5c\x01\xac\x57\xa3\x9a\xec\xe8\x31\xcb\xa8\xc0\x52\xc2\xfb\xfe\x52\xc2\xe6\xec\x97\x47\x5b\x35\x1c\x82\xf4\x9d\xe4\xef\x3f\x86\xc9\x82\xd5\x15\x52\x31\x53\x0c\x69\x29\x45\xd9\x5c\xea\x6e\x46\x3b\xb4\xa4\x3d\xce\x63\x66\x48\x7b\xfa\xed\xbe\x52\x6f\xa0\x17\xf3\x8b\x58\xcc\x73\xd0\xce\xdc\x96\xe6\xc5\xdd\xc4\xa4\x4e\xc5\x22\x20\xe0\x95\xb2\x74\x33\x47\x7c\x9f\x55\xc8\x1f\x0f\x6c\xa1\xb9\xa0\xbc\xe8\x49\xa8\xb7\x27\x51\x0f\x6c\x69\xec\x29\x92\xb1\x20\xb3\x77\xd0\x37\x64\xbb\xd5\xac\x5b\x47\x47\x16\x62\xf3\x05\x97\x58\xca\x98\xa4\xdf\x5d\x09\x9d\x88\x82\xee\xa8\x06\x9c\x83\x14\xa1\x5b\xf0\xd4\x40\x49\x41\xc5\xd2\x70\xa0\x3a\x95\x06\x38\xcd\x82\x72\x55\xac\x22\x15\x58\x66\x05\xb6\xb6\x8a\xf6\xe3\xa6\x2a\xf5\xdd\xb1\x72\xc6\x76\x2a\x56\x29\xc7\x55\x1e\x3b\xab\xca\xff\x35\x0f\x08\xda\x4a\xee\x03\x54\xa2\x20\xa4\x5b\x14\x44\x61\x7f\x5a\x22\xac\x22\x00\xea\xf5\x3c\x56\x7d\xc2\x13\x2b\x65\x90\x70\x76\xae\xe1\x47\x51\x5d\x1a\x52\x08\x75\x47\x75\x94\xa3\x72\xe5\xa9\x28\xc7\x8a\x9e\x2a\xd6\x29\x21\x3c\x57\xd4\x76\xbe\xa9\x50\x2f\xad\x6c\xeb\x6a\x88\x03\xb8\x66\x97\x4f\x7e\xbd\xe6\x99\xf3\x67\xe8\x76\x02\x67\x20\x31\x39\xc9\x90\x18\x55\xd1\x34\x17\xb8\x16\xd1\x55\x31\xc4\x39\xb3\xc4\xc1\x55\x59\x5d\x5e\x5e\xef\xc8\xb3\x61\xf4\xbe\xba\x1d\xd0\x59\x41\xd4\x42\x1d\x8b\xff\x82\xe7\x57\xaa\x18\x8c\xce\xba\xa3\x4f\xcf\xbf\x0f\x27\xa1\x49\x12\x69\x1c\x2d\xf8\xa8\xad\x1e\x20\x15\x74\xc7\x37\x69\xd2\x90\x4c\x50\x8a\xf6\xa9\x6a\x9f\xea\x4a\x75\x79\xe7\x20\xf5\x9f\x4c\x10\x23\x02\x04\xe8\x3c\x56\xf2\x08\x28\x68\xd7\xcc\xb5\x12\x47\xa3\xde\x68\x9d\xd8\xe4\x73\xaa\x72\xa4\x92\x50\xc4\x48\xfe\xaa\x45\x0b\xb8\xe6\xc5\xfe\x88\x8e\x25\x29\x3d\x99\x4b\xa9\x89\x23\xe5\x8e\x45\x11\x25\x22\xaa\x02\x2f\x90\xb7\x70\x53\x76\xb0\x8b\x25\x51\xac\x22\xeb\x4b\xbf\x53\xaf\x54\x7c\x5c\xfd\x3c\x8b\x72\xa8\x8f\x37\xfe\x8d\x49\x04\x2c\x16\x83\x25\xec\x3b\x09\xde\xb9\xbc\x30\x89\xb3\x90\xf8\x6a\xa4\xdd\x8d\x6f\xcd\xda\xe4\xdc\x42\x59\x9d\x68\x47\xea\xcf\x06\x2c\xbe\x9e\x50\x1f\x6d\xdd\x90\xee\xd9\x00\xb2\xa3\x92\x24\x52\x58\xe2\x5d\x2f\x37\xa4\x37\x98\xb8\x0f\x27\x69\x16\x0e\xab\x99\xe3\x62\x54\x92\xc8\x30\x95\xae\x36\x3c\x90\xe5\x9d\xeb\xbd\xa8\x24\x31\x3a\x92\x13\x13\xcd\xd3\x55\x19\x28\x49\xc3\x94\x85\xa3\x35\xf0\xa6\x78\x79\xaa\xab\x53\x45\xa0\x39\x77\x1a\x0b\x94\x73\x8d\x87\xb6\x19\x7a\x70\xa8\x24\xe5\x19\x3e\x22\x45\x32\xff\x03\x72\xa5\x4a\xb2\x8c\xfc\x2e\x0f\xdd\xa4\xfb\xb4\xe7\x34\xbb\xc6\x7d\xf2\xc3\xf2\x28\xc0\x30\xdc\x8b\x3a\x0c\x8c\x89\xc7\x25\x2a\xf7\xc4\x73\x41\x12\x82\xb5\x2d\x83\xcc\xee\x06\x49\xae\x01\x25\x4e\x70\xc0\x68\xb7\x40\x26\x3c\x80\xcc\x49\xbc\x9e\x8f\xc5\xf8\xd7\xf1\x24\xe2\x36\x62\xfd\x67\x25\xaf\xd7\x16\x77\x1a\xe7\x2e\x5a\xde\xd7\x42\xa3\x6e\xce\x34\xce\x49\x38\x68\xb0\x75\xd7\x6f\xd0\xb4\x53\xa9\x4a\x95\x08\x11\x04\x36\xd3\xbe\x25\x25\x5f\x52\x8e\xc3\x8a\xef\x40\xd0\xa6\x3b\x33\x42\xe0\x3f\xe9\x15\xd8\x3f\x4a\xce\x89\x5b\x53\xb4\x47\x58\xfb\xaa\x55\x22\x4d\x86\xa5\xa8\x13\xe9\xaf\xfb\x40\x23\x51\xa1\xc2\xef\xdb\xbd\x7f\xb4\xea\x75\x18\x83\x24\x4a\x05\xb6\xb5\x8f\xdd\x91\xd1\x31\x1d\xc5\x08\xc8\xdd\x82\x15\x19\xf3\x07\x58\xc8\x55\x0f\x5f\x72\x44\x6f\x7f\x58\x30\xac\x9e\xad\x7e\x40\xd9\x7e\x2f\x4a\x7a\xad\x9f\xbc\x2c\x08\x02\x64\x31\xef\x0b\xf5\x06\xd3\x31\x6d\x04\x43\xb4\x1d\xd8\xbd\x7a\x69\x47\x4a\x75\xd5\xb3\x9a\x5c\xd5\x48\x85\x44\x4d\xa1\x14\x9c\x6d\x41\x85\x80\x42\x9f\xb6\x6f\x46\x17\x48\x83\x2c\xc4\xc4\xf5\x47\xd5\x82\xc3\x7b\xce\xd5\x11\xd3\x40\x0b\xd4\x6a\x90\x97\x8f\xa5\xa8\x87\x2d\x49\x95\x06\x86\x56\xb1\x53\x51\xb6\xe8\xdf\x5b\x8a\xe3\x6f\xbf\xfc\xda\x38\x67\xb8\x07\xca\xcb\xc7\x23\xfc\xec\x22\x3e\x17\xb6\xa6\x31\x07\x49\x25\x89\xf3\x51\xf4\xa1\xd2\x6c\xea\x93\xa6\x91\x62\x16\xbd\x64\x31\x70\x53\x03\x7b\x95\xa6\x71\x80\x91\x20\xca\xe5\xa3\x54\x0e\x2e\xe4\xee\xfb\xf2\xdc\xc4\x36\xc5\xb5\xea\x92\xe3\x2e\xf9\xe4\xce\x73\xa0\xa4\xa5\x28\x49\x02\xfe\xa9\x86\x97\x52\xd8\x35\xc4\x6f\xf2\x29\x93\xca\xb0\xd1\x2a\x45\x0d\xa4\x5f\xbe\xce\x54\xe4\xd4\x1d\xb2\x0d\x4e\xa4\xb8\x3c\x41\xff\x56\x86\x67\xb2\xc0\x96\x75\xab\xcb\x14\xda\xfe\xc9\xc5\xa5\x40\x3e\xd9\xb2\x2a\x9b\xb6\xbe\x74\x09\xf8\x1e\x9a\xeb\x3c\x6e\x66\x8f\x4c\x65\x18\x63\x04\xfb\xb4\xf8\x73\xf3\xbc\x3f\xdc\xae\xee\x17\x7f\x1e\xd6\x8f\xfb\xd5\xf6\x9b\x2f\x62\xa5\x32\x8a\xb0\x24\x71\xeb\xe1\xc3\x3d\x2e\x78\x7c\x2b\x32\x4d\x10\x1b\xd0\x56\x37\x3d\xd1\xc8\x4f\xac\x54\x05\x1c\x31\x2a\x27\x8b\xe0\x1e\x76\x9b\x55\xaa\x2c\x73\xa3\xb1\x6a\x33\x68\xef\x43\xe4\x9a\xf1\xe0\x50\x89\xc0\xe8\x43\xb4\xad\x50\xaf\xf6\xe5\x7e\x32\x90\x94\x90\xe8\xef\x46\x2d\xb2\x6e\x1e\x0f\x18\x00\xff\x18\x8d\x76\x05\x80\x4a\x56\x7e\x39\x77\x62\x23\xde\xe3\x7c\xfe\xf9\x9b\x80\x3b\x7d\xdb\x47\x69\x8d\x62\x9a\x7b\xcb\x51\x1b\xe5\xe9\xa9\x51\x81\xee\x35\x21\x48\x12\x67\x84\xcf\x54\x59\x10\x03\x56\x7f\xed\x82\x36\x54\xd8\xb4\x67\x84\x3a\x50\x83\xfd\x74\x10\x6d\x8e\xee\x2b\x8b\x82\x1c\x87\xd2\xff\x56\x45\xb9\xaf\xf6\xb5\x50\x6f\xe3\x7d\x3c\x8b\xb2\xcc\xf1\x94\xbf\x8a\xe6\x95\x58\x18\xad\x98\x06\xfa\xf6\xec\x38\x48\x41\x7b\x5e\x11\xad\x77\x83\xc5\xf3\x97\xbd\xbc\x2c\x4e\xb4\xb0\xa5\x97\xc3\x9b\x03\x4c\xaa\x2c\xce\x82\x84\x9e\x79\xb9\xa2\xe6\xef\xe4\x47\xc4\x0c\x10\x98\x53\x5f\xe4\x51\xfc\x73\xf5\x34\x58\xdf\xb3\x98\xf3\x0c\xdc\xed\x17\x76\xe3\x99\x7c\x5c\xc4\xce\x04\x97\x64\x28\x27\xcf\x32\xb1\x01\x5d\x79\xf1\xe8\x35\x77\x44\x19\x25\xdd\x1e\x87\xad\x09\xfd\x20\xea\xba\x10\x2f\xd0\x9f\x03\x91\x1e\xf8\x96\x90\xf6\xed\xe4\x1b\xd2\x3c\xe3\xae\x01\x27\x5a\xf5\x3a\x0a\x58\xb2\x34\x87\x2c\x1a\x52\x43\xe6\xc7\x58\x96\xb1\x14\xe7\x06\x21\x2f\x47\xf4\x5d\x97\x93\x8e\xff\x71\x9f\xd3\x31\x86\x28\xf2\xf2\xb1\x2a\x5f\x8a\x12\xfa\x05\xe7\x5f\xd6\xf6\x4d\x65\x19\x28\x2c\x05\xec\xa1\xae\x05\xf9\xe9\x8c\xc2\x13\x7b\x5a\x9e\x93\x5c\x60\x03\xed\xea\x61\x41\xfd\xf1\xc9\x02\x90\xe5\xdc\x20\x40\x63\xff\xfc\xb4\x74\xbf\x31\x97\xa1\xcb\x0a\x1c\xe3\xa4\x0b\xc6\xdd\x61\x1e\x30\x44\x59\x3e\x7d\x5d\xec\x56\x87\xe5\xfd\x66\xb7\xba\xf5\xc7\xc2\x1c\x71\x80\x7e\x74\x3b\xe2\xda\x64\x68\xaa\x20\xc4\x26\xc5\x62\xff\xd0\x25\x1e\x7f\x89\x30\x54\x99\x62\x80\x5e\x3b\x8f\x77\x7f\x2c\xab\x91\xc6\xba\xca\x94\xc8\xb1\xef\xdc\x10\xb4\xfb\x46\x34\x70\x2f\x3e\xa6\x4b\x75\xa6\x0c\xb9\xb0\xdd\xac\xb6\xfb\xe5\xfd\xf3\xcd\x72\xb3\x76\x85\xf9\x4c\xe7\x0c\x21\x9c\xf2\x52\x97\xeb\xfb\xbb\xf9\x3d\x27\xd3\x4c\x0a\x8a\xe8\x5f\xa1\x2e\x5a\x27\x91\x35\x65\x67\xbb\xb3\x45\x8c\xe5\xa9\x1a\x54\x71\x2e\xa0\x6c\xbf\xad\x9f\x26\xaf\x48\x4b\x02\x3a\x76\x51\xa0\x50\x6f\xe7\xaa\x45\xeb\xc0\x49\x80\x97\x41\x98\x42\xea\xaa\xf1\x47\xf1\x61\x91\x8e\x96\x59\x3b\xad\x3c\x64\x90\x19\x44\x39\xb9\x75\xc6\xa9\x8e\xaa\x0c\xf2\x00\xd0\xc4\x76\xb7\x1f\xfe\x7a\x60\x29\x56\xfb\x8f\xe2\xbd\x5b\xe2\xab\xba\xa5\x9e\xd1\xb8\xbf\x98\x81\x8a\x11\x75\xdd\xbc\x17\x18\xd6\x7d\x11\xa7\x91\x1e\x46\x77\x06\x68\x4a\xb8\x0b\x05\x1b\x83\xbd\xad\xf1\x4f\x31\x01\x60\x22\x79\x53\xd4\xed\xab\x16\x1f\x4b\x51\x3a\x75\xe9\x2e\xe3\xe7\x58\x74\x40\x83\xc0\x7d\x71\x82\xfb\xbe\x8c\x96\x07\x52\x86\xc2\x81\x9f\x9a\xd7\xd9\x92\xf5\x78\x11\xcb\x03\x4d\xde\x31\xcd\x6b\xf5\x3e\x62\xf2\xd8\xe3\x21\x63\x28\xf6\x72\x29\xef\x8b\xf2\xad\x5b\x4e\x89\xa3\x34\x43\xdd\x51\x79\x94\xc8\x88\xba\xa7\x7b\x1b\x64\xbb\x03\x8a\x63\x47\x0d\x41\x65\x18\x52\xf7\x22\xf3\x2a\x8f\x40\x21\xb4\xd9\xa5\x66\x57\xe5\xd7\x3c\x09\x95\xe3\x7f\xde\x16\x9a\xea\x87\x55\xd5\xeb\x07\x8d\x07\x61\x9e\xc4\x02\x8b\xd2\x94\x05\x6e\x1e\x36\x87\xed\xea\xfb\x62\xeb\x34\xa2\x55\x9e\x40\xa4\x04\xed\xda\x07\x4a\x8a\x87\x0a\x10\x2a\x4f\x83\x98\xa7\x4e\x9c\xa5\x6c\x5f\x37\xe7\xeb\x65\x6c\xd0\x38\xb8\x5a\xdc\xf2\x34\xa1\xc6\xeb\x7a\xb9\xf1\xbd\x4e\x22\xd8\x8c\xb1\x74\x2a\x4f\x53\x99\x0f\xba\x65\x04\xc7\x1e\x6f\xa0\x79\xca\x93\x94\x54\x81\x2d\xce\x73\xf2\xdc\x53\x6e\x18\xf3\x0d\x86\x89\x0b\xa4\x3b\x47\x28\xb4\x83\xf6\xec\xd2\x85\x31\xdf\x3c\xd1\x7f\x70\x3f\x2a\xc1\x98\x56\x48\x75\x75\x84\x00\x87\x3b\x28\xf5\xa9\x2a\xe1\x03\x7d\x84\xc6\xe7\x64\x09\xc7\x27\x6f\xa5\xcd\x4e\x02\xe3\xc2\x3f\x0b\x38\x4e\x7f\x77\x9e\x64\x8c\x2c\x90\xcf\x96\x8a\x51\x54\x25\xd9\x5c\xdc\x55\x1e\xb3\x31\xf9\xa1\xb9\x64\x08\xde\xbd\x59\xad\xee\xfe\x1c\x2e\x70\x39\x8b\x55\x6a\xa3\xeb\x1b\x51\xbe\x51\xa6\xe8\x40\x25\x9b\x72\x22\x7e\xad\x72\xa6\x14\xf7\xd6\xc8\x4d\x97\x95\x83\xe7\x3d\xaa\x9c\x27\x1c\xa1\x73\x28\x30\x72\x18\x16\x40\x73\x9e\x6b\x17\xc6\x3f\x88\x9f\x24\x0e\x82\xb4\x9a\x39\x7b\x18\x95\x73\xc6\xb0\x19\x8a\x23\xdf\x73\xea\xdc\x41\x21\x02\x9b\xfe\x7a\x31\xed\xd9\x40\x25\xe7\x20\x8c\xc3\xcf\x57\xc7\xaa\x1e\x01\x2d\x55\x2e\x02\x32\xba\x44\xfd\xeb\xc6\x73\x41\xfc\x17\x75\x29\x2b\x77\xb0\x6b\x2c\x21\x8f\x38\xde\x2a\x97\x91\xc5\x3d\x94\x45\x6b\xa1\x91\x8b\x52\xaf\xba\x45\x06\x97\x50\x7f\x5e\x12\x42\xaf\xe9\xb9\xad\x8e\xc7\xe7\x52\x4f\xb7\x91\x5c\x66\x01\xd2\x1a\x0f\x70\x2a\xda\xef\x55\xfd\xe6\x21\x9f\xf3\xb3\x45\x25\x0a\xc1\xf9\x2f\x55\x4b\x0d\x42\xf7\x75\x4a\x73\x4c\x4d\x2c\x7f\x68\xd5\xbe\x7e\xa9\x1c\x5b\xa4\x3b\x4a\xa6\xc8\xba\xf8\x01\xf1\xe4\xfd\xea\x50\x90\x10\x31\x65\x34\x5f\x8b\x97\xd7\x2e\x30\x75\x92\x15\x2a\x87\x50\x72\xdf\x3b\xd5\x70\xc2\x9a\xf9\x2c\x96\x2f\x87\x28\xc2\x7c\x98\x40\x7c\xee\x8f\x09\x8f\xa8\xa9\x67\x8a\xe3\x91\xe4\x7e\x11\xe9\xf9\xe4\xc5\x66\x54\x0e\x3c\x0e\x88\x4d\x78\x3a\x15\x2d\xaa\x16\x0e\x30\x2b\xe3\x6f\x31\x71\x86\x99\xc4\xb7\xfb\xc5\xed\xe2\x7e\xfd\xb8\x70\x17\x31\x29\x77\x26\x62\x5b\xf8\xcf\xa5\xa8\xbb\xb0\x8d\x8c\x3a\x27\xcf\xdd\x64\x01\xd3\xde\xa5\x0f\xf6\x1f\xd6\x80\x7e\xd8\xe4\xbc\x76\xc7\x71\x1f\x66\x11\xc2\xb8\x6a\x10\xfa\x50\xb0\x83\xa8\x6b\xe1\xb7\x1d\x23\x38\x01\x49\x24\xae\x87\xcd\xd3\xe0\x10\xc4\x4c\x8d\x92\x52\xb7\xe9\xff\x3a\xc9\x63\x81\x21\xeb\xbc\x6e\xeb\xf9\xcd\xff\x8d\xe3\xee\x8b\x55\xe8\x8d\x59\x4f\x12\x64\x16\x6a\x89\x2c\xad\xdb\xd5\xdd\x76\xb3\xdb\x1f\xee\x16\xcb\xfd\x66\x7b\xd8\xaf\x16\x0f\x8b\xc7\xdb\xc5\xed\x37\x77\xa1\x28\x32\xd8\xd3\xa3\x81\xfa\x67\x97\xb9\xcd\xbe\x5c\x16\x65\x61\xe6\x4d\xc2\x9b\xd7\xe2\x7c\x9d\xe4\xb1\x08\xf2\x08\xac\xd5\x90\x45\x7d\x0e\x31\x3d\xc3\xfd\x9d\xc5\x31\x20\xa1\x8d\x10\x89\x25\x9e\xf1\xdf\xdf\xae\x0d\x29\xd9\xa7\xf6\xb3\xb3\xc3\x83\xa5\xa1\xc2\x6c\x63\x07\xea\x52\x17\x6d\x01\x04\x03\xbb\xe9\xcb\x11\x2c\x8b\x49\x3c\xde\xad\xf0\x24\x26\x32\xe8\x5c\xb1\x2c\xcd\x10\xbc\xd4\xc2\xe9\xfc\x50\xbe\xd4\xfd\xdf\x99\x24\x0e\xf4\xdb\xc8\xe7\x65\x72\x0f\x59\x2a\xf3\x21\x24\x1b\x29\x93\x83\xc2\xdc\x6c\x89\x9f\xe5\x91\xcc\x32\x57\xbd\x9f\xbc\xcf\x3c\xd3\x98\x80\xc9\xaa\xfe\x24\x4f\x60\x39\x68\x84\x6c\x21\xbf\xfb\xf1\x72\x5a\x5e\xa1\xe5\xd8\xaf\x50\xb3\x8c\x85\xcc\x64\x6e\xfa\x60\x12\x60\x2e\xe5\x64\x37\x62\x4c\x02\x0a\x42\x3e\x5e\xaa\x1b\x31\xf4\x28\xfa\xcb\xb0\x9b\xf1\x30\x40\x0a\x86\xcd\x98\x30\x1e\x1b\x3f\x00\x9e\x25\x5e\xd0\xac\x0b\x08\x07\x18\x49\xc6\x33\xce\x94\x6b\x38\x9e\x0b\x35\xac\x80\x32\x9e\x03\x86\xe3\xab\xc7\xdb\xc3\xee\xf7\x4d\x78\x78\x7e\x5c\xef\x77\xfe\xa8\x4e\x79\x36\xe0\x54\xcd\x69\xa3\xba\x53\x81\xa1\xe0\x37\xa8\xaa\xf9\x68\x5a\x38\x0d\x69\x40\x8a\x09\x96\x61\xc9\xe4\xcf\xe8\x50\x0f\x4d\xea\x15\x13\x86\x56\x72\x4b\x65\x7d\x5e\xbb\x9e\xd9\xc0\xf4\x4f\x31\x19\x27\x48\xc1\x47\x82\xc7\xa0\x7b\xc2\x24\xcf\x2c\x04\x75\xe4\x13\xf3\xc9\x10\x97\xc2\x60\x6a\x74\xa2\xbc\xd6\x4f\x44\xdf\x01\x60\x52\x07\x99\x25\xc5\x3e\x97\x45\xdb\x6c\x4a\x58\xb5\xaf\x4b\x51\xde\x5c\x26\x6b\x21\x53\x81\x21\xe4\xae\xcd\xcf\xa8\x5b\x39\xbb\x24\x31\xf7\x91\x58\x25\xa9\x7b\x17\x6f\x50\xae\xf5\xb8\x16\xcf\x54\xc2\xc9\x38\x58\xfd\x15\x31\x7c\x32\x86\x95\x26\xeb\x2d\x2f\xed\x59\x8b\x97\xaa\x6c\xee\x8a\xe3\xc9\x5f\x1b\x22\x04\x89\xd0\xba\x81\x7e\x60\x4d\x7f\x8c\x61\x4a\x6d\xc5\xd7\xbf\x88\x66\x08\x45\x63\x90\x48\xcc\xf8\xef\x37\xcb\xdf\x17\x0f\x9b\xe7\xc7\x7d\xec\x0f\xc9\x04\xf3\x9c\x12\xde\x2f\xcd\x27\x1a\xcb\x8a\x99\x40\x8e\x16\x8e\x59\xb7\xd2\x4f\xe6\x17\x0f\x82\x14\x65\x67\xbe\xf8\xf2\xe1\xb6\xaa\x4e\x8b\x52\x13\xa1\x7a\xf4\x4d\x3c\xc8\x22\x6c\x1f\x3b\x7d\x49\x97\x3d\x2f\x5f\x8b\xa3\xae\x61\xa0\x60\xe4\x3e\xa0\x05\x22\x03\x90\xfe\xf6\x78\x39\xf9\xbf\x43\x8e\x3f\x0c\x77\x1d\xd4\x7a\x9f\x93\x20\x41\x9d\x0a\xc4\x66\x60\xf9\xad\x67\x05\x2b\x1e\xa5\x1c\x1b\x9f\xc7\xea\x65\xa1\x86\xad\xba\x39\xbc\x05\x8f\x24\xa9\xba\x53\x5c\xfb\x24\xd0\xa9\xfb\x4a\x66\x50\xf1\x08\x24\x42\x3a\xac\x61\x86\xa7\x5e\xfd\xd5\x70\xf9\xe5\xda\xcf\xe3\x5c\x21\x74\xed\xb6\xfa\xe1\x2b\x35\x3c\x06\xc0\xc4\xc1\x54\xf5\x3b\xf6\x5e\x8b\x29\x2e\x80\xc7\x26\xc3\x6a\x12\x56\x62\x2e\x28\x41\xf6\x09\x29\x48\xf1\x24\x4c\x75\xe0\x43\x95\xcd\x24\x53\xe7\x49\x94\x62\x01\x61\xb3\xdc\x2f\x68\x88\x0e\xc3\x6f\x9e\xf0\x1c\x4b\x42\x96\x28\xe7\xf1\x67\x13\x66\x9e\xe2\x89\xe6\x44\x58\xa3\x9e\xf5\xe7\xca\xf2\xff\x98\x8e\xc1\xf9\x47\x93\x80\x33\xd6\x6f\x89\x7c\x22\xc6\xbb\xfc\xe4\xf4\x34\x61\x88\x3f\xa2\xb0\xe0\xce\x6a\x72\xd9\x2a\xf0\xe4\x27\xa7\x9a\x21\x2f\xa0\x89\xad\x0e\x6d\x68\x0f\x64\x41\xc8\x2d\x26\x0d\x71\x54\xf8\x24\x6c\x42\xec\x4e\x91\x1c\x9b\x1d\x95\x31\x50\x13\x1e\xa3\xd9\x57\x0e\x10\x3c\x29\xd6\x4e\xfe\xe9\xa1\x94\x3c\xcf\x32\x82\x4b\x35\x9a\x18\xe9\xdd\x5b\x3e\x61\x87\x5f\x89\xf3\xa0\x3b\xcb\x73\x19\xb3\xee\x9e\x6e\x16\x8f\xcb\xcd\xf6\xf0\xc7\xe1\xf9\xe9\xcb\x76\x71\xbb\xda\xfa\x13\x40\x63\xc9\x4a\x9e\x0a\xf7\x27\xa6\x18\xa7\x9d\xeb\x07\x1c\xab\x33\xd4\x07\x37\x1d\x0f\x3e\x1a\x9a\xbc\x3e\x66\x4c\x34\x4c\xd5\xbf\x15\xc7\xa3\x98\x22\x60\x38\x0f\x35\x76\xc3\x6e\x7a\xf7\xa8\xbf\xdc\x47\x39\xcf\x48\xd6\x4b\x7a\x97\x77\xc5\x45\x1c\x5a\xe2\xde\x16\xce\x35\x34\x50\x5e\x95\x72\xb8\x60\x0c\xeb\xa1\x4a\x90\x70\xda\xf8\x61\x8e\xee\x4b\x48\x12\xf2\xb1\x1d\xa4\xa5\x28\x35\x82\xff\xc7\x35\x64\x2e\x54\x9c\x5b\x11\xf9\xe1\x6e\x3e\xbf\xb6\x73\x01\xb1\xc9\x9c\xde\xb8\xed\xab\xd9\x43\x32\x0e\xf1\xd6\x5c\xaf\xec\x0e\x60\x5d\x62\x46\x32\x89\x3f\xb8\xcc\xc3\x84\x34\x71\x40\xa0\x28\xe7\xe4\x47\xca\x9c\x94\xb7\xf7\xa2\x79\x1b\x6c\xb0\x5c\xe6\x2c\x72\x56\xa5\x17\x41\x1c\xff\x5f\x3a\x5e\x28\x2e\x45\x86\x60\x00\x79\xf9\xd8\x82\x71\x17\x52\x01\x8f\x3d\x89\x03\x74\x97\xb4\xf9\x48\x83\xab\xc4\xdb\x9d\x1c\x46\x6c\xbf\xbf\xc0\x65\x4d\xbe\x59\xe7\x69\x68\xc1\xad\xfb\x02\xea\xeb\x36\x2d\xd7\x8c\xc4\xe6\x2d\x10\x80\xf4\x24\xbb\x41\xf4\x15\x8e\xe7\x7e\xfb\xfa\x0c\x4d\xc2\x35\x44\xa8\xfa\xe7\xc2\x15\x3a\x69\x20\x9d\xa8\x38\xe4\xb1\x35\xaa\x55\x35\xf6\xec\x6f\x07\xb3\xc8\x44\x1e\x79\x49\x02\xbf\x7a\x0f\xe2\xe4\x87\xa3\xd1\x1c\x95\x97\xaa\x72\xd7\xc5\x5c\xa0\x8b\x4f\x5a\x6f\x22\xc8\x4d\x62\x1b\x3f\x56\x4d\x03\x89\x74\x7f\xd1\xf7\x12\x01\xd3\xc8\xb8\xa0\x6d\xa6\xa9\x8e\x8d\xa9\xea\xd7\xc2\x07\xf0\x22\x30\x20\xfb\xfa\xca\x5e\x8c\x85\xd2\x94\x08\x03\x29\x6c\x08\x83\x38\xbc\x5d\xf1\x32\xae\x25\x89\x28\x8c\x45\xd8\x8b\xc0\xaa\xd7\x21\x0c\xdf\x55\x8b\x44\x14\xf2\x44\x79\x47\x0a\xcc\xe6\x86\x4a\x22\xe3\xd1\x29\xa2\x8c\x87\xf9\xc0\x4e\x6e\xaa\x1d\x3a\xff\x8c\x62\x60\x31\xe2\xd0\xe5\xac\x99\x8f\x12\x49\x10\x22\x64\xe3\x50\x83\x7a\x15\xf5\xcb\x27\xe0\x02\x91\x84\x59\x3a\x30\x99\x7f\xaa\x8b\x1f\xa2\x85\x01\xda\x5e\x24\x79\x80\x32\x36\x58\xcf\x71\x3f\xa8\x1b\x7f\x37\x1f\x63\xe2\xaa\x5b\x36\x26\x37\x62\x62\x1b\xbe\x95\xe3\xb2\xd4\x27\xbf\x2c\x0d\xa2\x40\x3a\x36\xc4\xfd\xcd\xae\x3a\xea\xc3\xd3\x76\xfd\xcd\x3b\xe1\x29\x91\x6a\x25\x29\x29\x72\x6b\xee\x0a\xf9\x55\x6e\xed\x10\x59\x6c\xb0\x87\x20\x2f\x1f\xa8\x27\xf6\x49\xef\xd3\x9d\x2d\xc0\x19\x39\x7e\x79\xda\x3d\x14\xa5\x57\x2f\x51\x22\x4f\x48\x81\xf9\x05\xda\x45\x59\x5e\xc4\xb1\x47\x3d\x89\x9c\xe9\xd4\xa2\xf4\x08\x4d\x73\x5f\x34\xed\x28\xe8\x15\x39\x4f\xb4\xb3\x13\xf8\x2f\x60\x8d\x78\x53\x5e\x79\x9b\x29\xc1\xc3\x14\x7b\x29\x4f\x47\xa1\x60\xc6\x5e\x5f\x09\x9e\x07\x18\xb3\x1d\xce\x50\x77\xd9\xf3\x7e\x62\x06\x7d\x2d\xd8\x35\x9d\x2d\x73\x21\x9e\xe0\x3c\xc1\xfa\xc8\x3b\x14\x91\x2b\xe3\x0b\x91\x86\x28\x3d\x77\xbf\xbe\x5b\x0d\xea\xf8\x42\xa4\x0a\x05\x9a\xef\xab\x13\x1c\x8b\x61\x0c\x23\x84\x0c\x95\xb0\x0a\x0d\xa2\xfc\x18\xa3\xab\x84\x00\x92\x11\x77\x3b\x9f\xf5\x3a\x5a\xe8\x1f\xbf\x42\x6c\x09\x19\x4a\x2c\xac\xed\x2e\xd2\x56\xde\x16\x88\x7f\x98\xc2\xc7\x84\x64\x09\x6e\x7f\xba\xf8\x61\x1c\x20\x61\x76\x8d\x90\xca\xe0\x6d\xfe\xf1\x70\xff\xe7\x8d\xd0\x1e\x1d\x20\x54\x9e\xa3\x57\xdd\x97\xaa\xba\x17\x97\x52\xbd\x22\xd2\xa8\x17\xca\x50\x42\x87\x1c\x12\xdb\x9a\xc3\xce\x5e\xf7\xe4\x17\xfa\x4a\xaa\xda\x9d\xae\x33\x2c\x05\x4b\x68\xc3\x8d\x99\xbc\x6e\x0d\x26\x4c\x6d\x52\xbb\x59\x3e\xed\xc9\xa8\x62\xf6\x3a\x90\x73\xec\x88\x36\xaf\xd5\xfb\xdd\xd3\x30\xc3\x15\x00\x1c\xc3\xfb\x7f\x16\xaf\xd5\xc7\x84\x03\x28\x4c\x22\x03\xcb\xb0\x58\xd7\x30\xd6\x89\x55\x32\x08\xe2\xa4\xaf\xf0\xac\xda\x66\xb6\xbe\x23\x83\x5c\xa1\xd6\x94\xc7\x70\x5a\x39\x5d\x77\x98\x51\x3f\xa5\x68\xba\xdc\xd6\x2e\x1d\xee\x60\x18\x93\xdc\xed\x81\x30\x2b\x8b\x52\xbd\x56\x56\x90\xda\x9d\xa1\x02\xd7\x6e\xfe\x9f\x0b\x34\x57\xe5\x20\x19\x2a\x29\xd5\xd0\xb3\xf5\x52\x97\x8f\x15\xee\xf0\xf6\x8c\x28\x00\x2c\x28\xef\xda\xaa\x3e\xdd\xd4\xf0\x3e\xd8\xdf\x65\x14\x41\x4c\x74\xa7\x46\xd5\x05\xc6\x91\xb1\x3f\x06\x1c\xc9\x25\x45\xd9\x40\xed\xad\xfe\xc6\xbe\xc8\xbf\x42\x4a\xc8\x38\x21\xdb\xcb\x47\x78\x77\x70\x12\x2f\x44\x3b\xbf\xd4\xca\x34\xa0\x74\x6c\xb7\xfe\xf2\xb0\x38\x3c\x2c\xfe\x38\x2c\x17\x5b\x67\xa1\xa6\x64\x1a\xc7\x38\xbb\x30\x8a\x58\x2f\x37\x08\x85\x77\x07\xb3\x00\x62\x42\xc3\x96\xed\xe6\xd2\x5a\xd7\xdb\x4f\xfd\x69\xdc\x5e\x24\xb3\x50\x0b\x32\xfa\x5c\x6e\x37\x87\xdb\xcd\xfd\xfd\x62\xbb\x3b\x3c\xad\xb6\x87\x9b\xc7\xfd\x9f\x87\x87\xc5\xfa\x71\xb7\xb8\x5f\xf9\xaf\x49\xb8\xb5\x2c\xbe\x59\xde\x0e\xd5\xbe\x94\xcc\x94\xc4\xea\x62\xa1\xaa\x9b\xaa\x6d\xab\xd3\xba\x6c\xe1\x05\xea\x61\x36\x2d\xf3\x2c\x17\x63\x53\xb1\x59\x6c\x85\xcc\x59\x6c\x5d\x96\xba\x25\x77\xcc\x68\x0b\x67\xc8\x25\xd7\x44\x13\xd9\x85\xd3\xb6\xb2\x6b\x01\xeb\x93\x31\x2e\x14\xc7\x29\x5d\x8b\x52\x57\x27\xea\x8e\xb8\xfb\x14\x90\x92\x86\x36\x66\x52\xab\xa6\x1b\xe0\x7f\x25\xf1\x61\x3f\x2a\x13\x82\xaa\xee\x37\xae\xa3\x2d\x65\x1a\x19\x1b\x38\x7c\xa9\xab\x0b\xe6\x16\x93\x74\x52\x4a\x41\x64\x58\x44\xfc\xbc\x78\x98\xa9\xbb\x84\x4e\x43\xac\xa1\x49\xdb\x7f\xb9\x81\x12\x90\xe3\x51\x7f\x0c\xc5\xd8\x94\xd4\x8c\x54\x06\xd1\xbf\xa6\x3a\xcf\x18\x88\xd0\x39\xdc\xe1\xd9\x48\x82\xdb\x7f\x5c\x10\x93\xa0\x27\xc5\xdd\x7c\x3c\x4e\xfb\xac\x52\x43\x82\xd1\x05\xa9\x12\x1d\x94\x8f\xf5\x87\x2f\x00\x22\x91\x31\xa7\x13\x83\x07\xfe\x15\xe6\xd9\xbf\x47\x2f\x09\x12\x72\xe5\xc6\x96\x94\x78\x17\x57\x40\x4b\x7b\x9e\x51\x19\x90\xfd\xcc\x8f\xea\x0d\x7a\xd5\xd4\x41\xf0\xa9\x02\xc6\x51\x6b\x72\x0b\xdd\xbd\xf6\x72\x5d\x78\x24\x4f\x7a\x6d\x2b\x0b\x6d\xed\x53\x41\x15\x06\x0c\xfb\xc6\x35\xa0\xbc\x82\xfb\x6b\x68\x30\x44\x7a\x15\x0d\x42\x88\xc9\x5f\x6f\x8a\x5e\x75\x27\xc7\x0c\x8d\x02\x4e\xe2\xe7\x6f\xe3\x39\xa6\x62\x2e\x53\xaa\x30\x50\xc5\xda\xaa\x05\xf9\x80\xfb\xd7\x6a\xce\xf3\xc3\x4c\xa5\xa1\x40\x14\xd1\xb1\xaa\xde\x2e\xe7\xbb\x02\x21\xc3\xdb\x01\xf6\x72\x7a\x7e\xa2\xb1\x74\x7e\xbf\x59\xfe\xfe\xfc\x74\x88\x1f\x0e\xeb\xe5\x06\x6d\x4a\x76\xfb\xc5\x83\xe3\xc8\xa9\x34\x0d\xd1\xa7\xf1\x51\xcc\x71\xcf\xdc\x49\x9a\x40\x94\xdd\xba\xfb\x48\xb5\x8a\xe6\xb1\x5a\x8a\xa3\xe7\x91\xab\x2c\x24\x0f\x68\xea\x0d\x1f\xbe\xaf\x1f\x0f\x0f\xcf\xf7\xfb\xf5\xd3\x3d\x3a\xc7\xf8\xd3\x22\x89\x72\x14\xa2\xe9\x96\xd9\xd5\x7f\xac\x18\x85\x2d\x83\x4d\xaa\x61\x2a\x4b\xe2\x01\x1c\x0a\xbb\x30\xc5\x75\xf0\xe6\x4e\xd6\xda\xf4\xc5\x10\xdc\xae\x9f\x06\x93\x78\xde\x96\xff\x93\x87\x9d\x47\x31\xf2\x51\x17\xcf\xb7\xeb\xfd\xea\xf6\xb0\x78\xbc\x3d\x6c\x57\xff\x5c\x2d\xf7\x1e\x7b\xa2\x98\x24\xf4\xa8\x8b\x29\xff\x67\x3b\xde\x2c\x15\x8f\x12\x7c\x24\xf4\xbc\x9e\x4b\xa7\x05\x7c\x5d\x37\x9d\x7c\x2e\x8f\x71\xf8\xac\xb6\xcb\xdd\x59\x9c\x4e\xd7\x02\x26\x73\x1b\x90\xe2\x2c\xc7\xe6\xe8\x04\xe6\xa5\x44\x18\xa1\x3a\xe5\xbb\x28\x06\x0e\xd1\x5d\xa2\x41\x79\x28\xea\x2c\xe1\xdb\xc7\x41\xef\x0e\x4b\xce\xf2\xa1\x81\xd2\xfe\xbd\x5f\xd6\x95\x0a\xa2\x81\x33\xe9\xda\xd1\x5b\xee\x00\x9a\x5e\x49\xda\x9d\xcb\x0c\xb7\xbb\xfa\xad\x38\x9f\x3d\x87\xb4\x9b\x28\x59\xef\x87\xbb\xb0\x51\x41\x97\x70\x23\xba\x45\x1c\xd1\x7c\x12\x05\x1f\x87\x65\xf2\x31\xbf\xd4\x4f\x3a\x1d\x81\x60\xbe\xfd\xab\x2f\xaa\xbd\x96\x32\x50\x90\x84\xa4\xd4\xf9\x71\x92\xd5\x71\xb2\x24\x2b\xc8\x08\x19\x40\x37\xf4\x7b\x51\xbe\xe8\xea\x34\x5f\xc9\x1c\xd4\x95\x14\x00\x60\xc1\xf7\xe8\x5c\x6e\x0e\x3f\xc2\xaf\xa2\x79\x3d\xd8\x73\xdd\xef\x35\xb1\xc0\xce\xc5\x8b\x40\xfb\xb6\xfb\xcd\xb3\x1f\x4b\x26\x17\x8e\x72\x31\xbe\x27\x1d\xa6\x3c\xb2\xe9\x98\xb7\x19\x29\x51\x1f\x72\x5e\x2e\x4c\xe9\x50\x64\xee\x13\x2f\x17\x68\xa6\x17\x8c\x03\x91\x59\x4d\xb6\x81\xc0\x9d\x0d\xf7\xa6\xbb\x94\x8e\x63\xc2\x66\x49\x74\x98\x1a\xed\x3c\x3a\x66\xa9\xb1\xf1\x89\x31\x87\xd8\xff\x99\x27\x4c\x7a\xfc\x44\xb7\x38\x8b\x4b\x7d\xc5\xe6\xd5\x31\x4f\x29\x18\x2b\x8e\x97\x4f\xbc\x7f\x94\x4e\x82\x28\x20\xaa\x4e\x43\xd4\xb2\x2d\x60\x73\x6b\x7c\xa9\x24\x13\x18\x89\xdf\x5c\x3e\x08\x75\xf8\xdc\xc0\x08\x8d\x31\xb9\x6a\x96\x46\x43\xa2\x44\xf1\xdf\xbf\x5d\x52\xf6\x17\x48\x11\xbc\x51\xc2\xfb\x16\x83\x89\xd1\x6e\xa9\xb3\x54\x05\xde\x17\x0f\xc5\xba\x8b\x72\x90\x40\xeb\x8c\x19\x1a\x85\x2d\xf6\x25\x26\x37\x27\x14\x06\xa2\x67\x0b\x59\x46\x79\x5f\xaf\xf1\xa9\x74\x1e\x02\x75\x88\xeb\xd3\x47\x97\x07\x89\xba\x28\xa1\x59\x5e\xef\xfa\x3a\x4f\xe3\xcc\x4b\xe7\x57\xeb\xab\xe3\x8c\x13\x87\xdb\xe3\x59\x1f\x44\xf9\xd1\x0d\xdc\xcf\xf9\x46\x9f\x68\xbd\x2b\xcd\x84\x0e\x94\xb3\xc9\x2b\xaf\x83\x2f\xcd\x14\x51\x5b\x6f\x41\x16\xad\x47\xd4\x7d\x21\x15\xd1\xc9\xfb\x64\x10\x21\x65\x78\x51\x9e\x46\x49\xa5\x66\x20\x74\xee\x8c\x55\x96\xa2\x85\x97\xaa\x2e\x20\x9a\xdf\xb5\x34\x8f\x39\x77\xcc\x42\xdb\xea\x1f\xb8\xc0\xbb\x93\x52\x91\x06\x43\x80\xe5\xbe\xc2\x58\x1a\x21\x55\x33\xbf\xdf\x7d\x2c\x13\x88\xb2\x52\x45\x5f\xf0\x1c\x2d\xc7\x9a\x0b\x8a\x86\xce\xe8\xd4\xfd\xfb\x9f\xcb\xc9\x8f\xe4\x3a\xc0\x1a\xf3\xc3\xfd\x7a\xf3\xec\xee\x46\x24\xd2\x39\x78\x13\xe3\x9e\x30\xab\xa3\x0b\x8b\x8c\x67\xde\x30\xbf\xb9\x32\xfc\x1c\x3f\x76\x01\x74\x9f\x2f\xd0\xee\x41\xbd\x62\xc1\x21\x9e\xbc\x1a\x19\xa4\xd8\x8e\x79\xac\xde\x2e\xe4\x55\x47\x6c\x8c\xbf\xd1\x66\x77\x57\x88\x29\x9d\x2f\xe1\x7d\x0c\xe1\xd3\x52\x1a\x5a\x23\xa8\xd1\xee\x7c\xa4\x87\xe5\x7d\xad\xd2\x18\xd1\x46\x08\xfb\xbf\x81\xf6\x5b\xf8\x6b\xb4\xbc\xd6\x21\xc7\xe2\x08\xc1\x8d\x86\xfe\x1e\x57\x2f\xcc\x7d\x22\xe1\xa8\xed\xbf\xb3\x77\xf0\xc9\x88\xd1\x9c\xdc\x52\x6c\xdf\x76\x55\xfe\x6f\x51\xa2\x20\xd3\xb0\xc1\xab\x4d\x37\x7f\x31\x27\xda\x5c\x5a\x55\x9d\x60\xd7\xff\x16\xa3\x0c\xce\xde\x1a\xad\x92\xb0\xf2\x7a\x57\xd5\x0b\xa7\xf5\xae\x20\x88\x92\xc4\xa3\x4a\x0c\x5c\xf9\x5a\xf5\xfb\x0a\x04\x82\x4a\x28\x45\x63\x13\xca\x1d\x2a\x9b\xba\xa3\x8a\x2c\x7d\xc9\xeb\x7f\x00\x8d\x1c\xff\x74\x08\x14\xcd\x4c\x84\xe4\x7d\x83\xba\xe9\xb7\x66\x08\x03\xd2\xfd\x76\x12\x62\xf7\x45\xdb\xfa\x65\x0a\x42\x4d\x5e\x0a\xd6\x9e\x9d\xfa\xc8\xa8\x3d\xe8\xce\x88\x42\xc0\x6a\x96\x87\xfb\x3b\xa4\x99\xb8\x96\x6e\xfa\x5b\x81\x17\x44\x51\x1e\x08\x2b\xdb\xd8\x2d\x7c\x98\x13\xdd\xd9\xfe\xa6\xf6\xdf\x9b\xe7\x21\x78\x2a\xe8\xf3\xfe\x8f\xcd\xd8\xb6\x62\xdc\xf6\x72\xff\xeb\x2d\x02\xe6\x7b\xaf\x10\x71\x10\x79\xbf\xf2\xae\x86\x56\x9c\x0a\x22\xc3\x20\x76\xc8\x09\x3b\xca\x1f\x8a\x06\xd5\x6c\x46\xa3\x08\xe2\x34\x93\x36\xfb\xfb\x5a\xe9\x63\x8f\x19\x87\x98\x07\x38\x75\x5f\x85\x7f\x52\xe5\x56\xbc\xf9\xef\x48\x18\x60\xc6\xff\x05\xc0\xbb\xf1\xbb\x43\x52\xa7\xc4\x3a\x44\xae\xd2\x5d\xef\xca\xa2\x20\xd7\x24\x65\xd6\xbc\x17\xe7\x09\x34\x0f\x72\x20\x41\x7e\x79\xf9\x04\xdf\x09\x2c\xe4\x88\x33\xc5\x1a\xd6\x6d\x71\x5d\x30\xb4\xe7\xf1\x90\x7a\xbc\x6d\x77\xc3\x83\x3c\x0c\x78\x2c\x50\xc3\x84\x10\xdf\x13\x60\xe6\xe4\xcb\x64\x16\x67\x04\xae\x44\xca\xc4\x1c\x29\x0a\x24\x8f\x42\x9b\xbd\x59\xa5\xf5\xb1\xac\xd7\x30\xa1\x04\xa9\x04\xe6\x6c\x77\x55\x75\x45\x33\x1c\x5f\x56\x85\x49\x46\xd4\xa3\xe3\x1b\xfe\xd6\x1d\x09\x9f\x7f\xba\xc8\x83\x52\x79\x38\x32\x52\x47\x17\xfb\x89\xbc\x18\xe8\x48\x4a\xeb\x63\x88\x0d\x77\x54\x90\xbf\x1a\x14\x9a\xcb\xcc\x96\xdf\x6e\xa0\x69\x47\x8a\xbd\xf3\x51\x06\x68\x91\x22\xbe\x68\xb9\x78\x7a\x5a\xdd\x8e\x54\x38\x15\x68\x13\xeb\xc8\xe7\xed\x45\x89\x3c\xcb\xe1\x3e\x01\x10\x87\x60\x29\xa6\x8f\xd2\x06\xb3\x8d\x47\xb1\x0d\xa7\xe6\x60\xcd\x41\x71\x60\xfa\x50\x7b\x84\x21\x26\xf5\x93\x9b\x34\x99\xc6\xdf\x85\xd6\x5a\x05\x94\xe8\x64\xf5\x3c\xe9\x74\x9a\x20\x8d\x51\xe7\x80\xd8\xdd\x43\x83\x8c\xdf\xdc\x19\x99\x90\x56\xf8\x6d\x59\x9d\xce\x55\x33\x5d\xce\xfe\xf5\xef\x7f\x4c\xae\x99\x67\xc4\x12\xb4\x3b\xe0\x95\x17\x81\x3d\x2f\x8c\xe2\xc0\x0e\xa7\xc3\xa9\x98\x46\x41\x26\x4c\xd2\x44\xf4\xfd\x8e\x8d\x19\x3d\x45\x13\x0a\x89\xa1\xde\xa5\xb9\xd4\xe7\x61\x5e\x63\x42\x60\xd8\x25\xf8\xe7\xf3\xa3\x2b\x97\x99\x28\x20\x9b\x3e\x7c\x25\xbf\x0f\x0c\x6c\x66\x12\x36\x13\x25\xa4\xd0\x4c\xd9\xed\x48\x0d\x6f\x7e\x9f\x35\x51\x2e\x9c\xa9\x09\x56\xd9\xa2\xc9\x6f\x89\x24\xcb\xa5\x0d\x66\xba\x05\x86\x4c\xb9\xff\x5e\x1d\xcb\x24\x61\x82\xb1\x07\x6e\x76\x4e\xa7\xe5\x2f\x3b\xcd\x26\x11\x3c\x71\x8c\x7b\x28\x75\x55\x2f\xce\xe7\x63\x31\x43\x6e\x32\x89\xa4\xb5\x7d\xbb\xd8\xaf\x1c\x9f\xde\x24\x26\x09\xed\xbc\xd8\x5d\xa4\xed\x52\x8a\xa9\xbe\xa1\x3d\x39\x8d\x05\xb3\x10\xdf\xbb\xe2\x38\xaa\x3e\x99\x34\x09\x70\x4f\xc0\xf5\x19\xcb\xc7\x93\x71\x90\xaa\x54\x99\x81\xce\xe5\xb2\x2a\x9b\xcb\x69\x12\x39\xb9\x59\x6d\xb2\x24\x46\x87\x40\xb2\x2d\xdc\x56\xc7\x63\xb7\x34\x92\x29\xe1\xe4\xa9\x67\x79\x60\xec\x44\x43\xae\xdf\xf3\xf9\x0e\xae\xce\xe1\x80\xc3\x88\x6a\x8f\x93\xda\xbc\xc9\x24\x21\x06\x97\xcb\x9e\x6b\x32\x9f\x76\x7e\x32\x3e\x7e\x69\x3b\xae\x4c\x2e\x09\xbf\x5b\x83\xaa\x7e\xb8\x0a\xed\xfc\x10\xcb\x75\xa0\x93\x6b\x2f\x9a\x89\x22\xb6\x32\xb9\x01\x64\x4b\xff\xf3\xd2\xb4\xdd\xea\xe3\x77\x2a\xc3\x22\x81\x54\xfc\xef\xa2\x15\xf0\x73\x18\xbf\x1b\x26\x95\x89\x07\x53\x76\xf3\x6d\xbd\xbb\xa9\xaa\xb7\xb1\x92\xb6\x32\x0c\x08\x3e\xb3\xbc\x5f\x0f\xe5\xac\x0c\x03\x83\x2c\xa7\x8b\xaf\xa5\x7c\xab\x7c\x83\xc1\x70\x43\xcd\x68\x14\xb5\x6b\x86\x9d\x11\x23\x18\xe4\x36\x27\x46\x8c\xe7\x44\x3d\x73\x34\x4c\x85\xc8\x23\xe3\x75\xa0\x5a\x71\xc4\xc7\xf5\x04\xf5\xd7\xea\x32\xc1\x66\x1b\xa9\x25\x07\x87\xd5\xeb\x82\x86\x5b\x71\x5e\xfa\xe2\xaa\x51\x41\x80\x0d\x41\x57\x43\x79\x58\xdf\x4f\xd2\x3d\xa3\x42\xc0\x29\x6d\x83\x8e\xef\x50\xf4\xb9\x9e\x51\x2c\x0c\xe5\x60\xc8\x3e\x89\xba\x2d\x54\x71\x16\xfd\x2f\x53\x2c\x8f\x86\xea\xad\xdd\xb4\x1f\x87\xb8\xb3\xeb\xb6\x51\x3c\xc5\xf7\xf7\xbc\xbb\xc5\xc5\xea\x6f\xcc\x74\x25\x35\xd6\xee\x94\x28\x1f\xc4\x1b\xd4\x7b\xa8\x51\x53\x60\x82\xf8\x30\x5a\x09\x07\x06\x7f\x28\x1c\x2d\x79\xae\x2e\x6d\x20\xc9\xb0\x34\xb4\x6c\xcd\x68\x9c\x80\x8e\x91\xcf\xbd\x7c\xb8\x1d\xfd\xdd\xc4\x19\x6e\xc8\x8b\x42\x16\xad\x14\xe5\xdb\xf8\x68\x12\x21\x16\xa3\x20\xab\xad\x85\x16\xe7\x76\xd2\x36\xd5\x41\xc0\x4c\x68\x41\x09\x0f\x85\x93\x60\xd4\x41\x00\xd0\xab\xd8\x0d\xae\xaa\x83\x28\x97\x90\x7a\xeb\x97\xea\x7d\x46\x4a\x5b\x07\x71\x12\xc5\x89\xd7\x84\xd8\x92\x00\xbc\xbb\x42\xcc\x38\x4e\x88\x93\x95\x7e\x1a\x5d\x3e\x96\x01\xb7\x3d\x63\x4b\x85\x22\x77\x7f\xc4\xaf\x0e\xd7\x4f\x1d\x24\xa1\xb0\x02\x28\x5d\x80\xb1\xac\xaa\x63\x6f\x04\xab\x83\xc4\xaa\xfd\x35\xd0\x7e\xaf\x6a\x3d\xf9\xa8\x22\x5d\xe4\x12\xde\x1d\x37\x62\xd5\xbe\x3e\xef\x6e\x51\xbb\xc3\x3f\x85\x54\x51\xe4\x45\x1b\xf4\xdd\xe6\x79\xbb\xff\x4a\xca\x0f\x87\xad\x6f\xb7\xeb\x20\xd5\x21\x58\x9a\xd3\xf9\x49\x78\x0a\x86\x0e\xb2\x28\x8f\xed\xfa\xdc\x85\x0e\x8b\x9b\xf5\xa4\x72\x6f\xc7\x88\x0e\xb2\x24\x06\xb0\xc1\x24\x41\x08\x08\x69\xeb\x0e\x67\x46\x67\xbd\xbe\xff\x9a\x0a\x35\x23\xeb\x09\x77\x26\x27\x55\x98\xcd\x07\x4e\x90\x1a\x9e\x40\xd4\x47\x7f\x1d\x91\x5b\x65\x4d\x5c\x13\x06\x74\x62\x1d\x38\x38\x18\xc6\x04\xd3\xc9\x42\x6d\xa7\x5f\xff\xef\xf8\x46\x58\x92\x1a\x02\x5f\x57\xc7\xa8\x69\xeb\xbe\xdd\xa0\x03\x1e\xc4\xb8\xfa\x3f\x89\x8f\xbb\xaa\xbe\x3b\x8a\x97\xf1\xeb\xe1\x51\x86\x42\x1b\xb5\x68\xe1\xd0\x56\x7e\x05\xd0\x81\x88\xc3\x84\x8a\xb7\x5d\xc6\x3c\x42\x9f\xe8\x40\xa5\x0c\xeb\x58\x48\x54\x99\xc0\x44\xdc\x29\x2c\xc7\x71\xfd\xc7\xe2\xc9\x7d\x0a\xf2\x2c\xd4\x23\x86\x3a\x3a\x99\xfd\x1c\xb3\xef\x74\x00\x8c\xa3\x52\xe5\xed\x0a\x79\x01\xfe\xcf\x40\xb5\xaf\xc3\x59\x7c\xdc\x7c\xac\x6a\x15\x05\x93\x57\x62\xa2\x4c\x65\x53\x32\xc8\x55\xa2\x3b\xbe\x4f\x93\x0a\x6c\x0e\xdf\xee\x97\x4b\xf7\x4d\x46\xab\xc8\x11\x7a\x44\x51\xb6\x45\xf9\xb2\xa8\xdb\xa2\x69\xd7\x7a\xfa\x8d\x46\x63\x78\xf9\x78\x79\xeb\x41\x72\x74\x2c\x0c\x62\x89\x09\xf7\xd6\xa9\xfa\x8c\x3f\x1b\x86\x79\xec\xbc\x04\x28\xc8\xef\x36\xa4\xb9\xee\xb7\x0e\x43\xc5\xb0\x30\xdf\x16\x27\xd8\x17\xc7\xe3\x63\xf7\xd0\xc8\xd0\xd8\x9e\x11\x81\x71\xe2\x23\x0d\xe6\xaf\x13\x2c\x90\x0e\xe3\x48\x60\xff\x15\xa1\xb6\x3d\xb4\x66\x7c\x4f\x71\xac\x98\x83\xab\x14\x7a\x7a\x30\xe5\x11\x22\x2b\xba\x3c\x90\xf6\xcd\x9b\x0f\x54\x0a\xb0\x27\xa4\x11\x95\x1f\xb1\x12\x0e\xbd\x29\xf5\xdc\xca\x15\xa6\x89\xb2\x4a\xd7\x54\xa3\x74\xaa\x51\x3d\x1c\x52\x87\xa9\x22\x87\xc6\x87\xc5\xe3\xe2\xef\xa3\x70\xe7\xf6\x1d\x1d\xa6\x46\xe1\x4e\xec\xc6\xc3\x1d\x0c\xeb\x71\x3a\xcc\x40\x49\xbb\xfb\x3e\x5e\x4e\x93\x9f\x9e\xab\x04\x53\xad\xf2\x72\xda\x98\x61\xc8\xa0\x43\xd6\x0d\x97\x51\xa3\xb9\x3b\x4a\x90\x0c\xb2\xbf\xf9\x15\x90\x4f\x87\x2c\x4c\x34\x25\x3e\x47\x63\x35\x4b\xfa\xec\x5f\x87\x2c\x0f\x10\x82\x7a\x40\xa6\xa9\x2d\x85\xac\x97\x9b\xd0\x9f\xa0\xc8\xec\x72\x2f\xde\x60\xd5\x23\x0e\xa7\xdf\xa2\x53\x2c\x0f\x89\xa2\xbe\xad\xab\xf3\xe4\x5d\xf0\xdc\x18\x92\x69\x56\xaf\x5d\x60\xb3\x2e\x4d\x75\x57\xd5\xdd\x7f\x4e\xb6\xb1\x50\x24\xe0\xca\x48\x5f\x3f\xce\x5d\xf2\x43\x12\xa5\x56\xdc\x6f\x66\xf0\x8a\x54\xe1\xc0\xeb\x16\xd1\xa2\x7c\xd9\xb5\xdd\x62\xf3\xf2\xf1\xb7\x5f\xe3\xf8\x87\x08\x46\x95\xd8\xd5\x97\x2f\xbb\xc3\x7e\x73\xf8\xba\xd8\x2f\xbf\x1e\xc2\xdd\xe3\xe2\x77\xb7\x4d\x84\x92\xc7\x98\x9a\xab\xd7\x6e\xf1\x1a\x48\xbb\x0d\x1b\xa0\xa3\xff\xfc\xf4\xc0\xdf\xff\x4f\x37\xcf\x14\x64\x4e\x24\xd7\x0e\x80\x69\x50\xae\x43\xad\x52\xc7\xb0\xc5\xc6\x38\x3d\xaf\xc5\xb1\x06\xa1\x3f\xd6\x04\xcb\x1a\x3f\x44\x08\xe2\x34\x75\x58\x34\x32\x60\xf0\xf3\xca\x9f\x92\x7b\xf8\x1e\xc5\x01\xfd\xcc\x84\x84\x25\x03\x79\x9f\x5d\x2b\x70\xaf\xbf\x16\x42\xd7\xa1\xc9\x62\xad\x7c\x9c\x32\x60\x64\x4c\x5e\x84\xb1\xc2\xa9\xc7\xea\x65\x18\xf2\xea\xd0\x70\x91\xf6\x2e\xd2\x76\xb6\x8d\x34\x0c\x74\x68\x14\x75\xa4\x6e\x56\xfb\x47\x68\xdf\xab\xfa\x6d\x68\xd7\xe8\x4e\xd2\x0a\x83\x02\xb2\xc6\x20\x4c\x6e\x14\xfc\x36\x13\x3b\xeb\x28\x48\x73\x0c\xdc\x8d\x28\x8e\x83\x1a\x91\x8e\x02\x19\xe1\x2f\x6f\x44\xd5\x88\xca\x02\xcb\x74\x14\x29\x85\x10\xd1\x2f\xe2\x44\x8e\x98\x73\x29\x2a\x1b\x17\xf5\xdc\x47\x4d\xe2\x75\x85\x51\xe0\xfa\x47\xd1\x14\x55\xe9\x85\x0a\xc7\x65\x9a\xee\xfc\x34\xce\x3c\xc7\x41\x5f\x54\x7b\xf3\xb1\x85\x17\xab\xb6\xf3\x2b\x80\xcf\x4c\xf2\xae\xa3\x38\x00\xa9\xbd\x44\x10\x76\xf8\xd1\x8c\xc1\xf4\xaf\x3b\x8a\x63\x32\xb7\xaa\xac\x40\xda\xe1\x45\x34\x47\xb4\x80\xb0\x27\xa4\x79\x64\x11\x0c\x5d\x44\x67\x15\x33\xc6\x03\x21\x4a\x4d\x8a\xb4\x03\xc2\xbd\xaf\x7e\x42\xad\x8a\x66\xbe\x5f\xa6\xa3\x0c\x42\x6c\x82\xee\x56\xcb\xe7\xed\x7a\xff\xe7\x61\xb5\xff\xba\xda\x1e\x96\x7e\xf7\x8f\xf2\x30\x41\x76\x73\x09\xef\xdd\x72\x6f\xe9\x1e\x53\xbe\xc6\x4c\x25\x59\x47\x79\x0e\x99\xe5\x26\x3a\x41\xcd\x59\x6e\x8b\x7f\xe4\xc8\x1b\xf5\xec\xde\xad\x28\x1a\x98\x49\x03\x74\x94\x9b\x50\x13\xe8\xfc\x7c\xb6\xa9\xe0\x50\xf9\x45\x47\x5c\xe5\x18\xb4\xbb\x08\xfa\xd9\x47\x78\x91\x08\x14\xe6\x3f\x0e\x49\x88\x8c\xec\x03\xb4\xaf\x7f\xbb\x00\x3d\xaa\x1a\xba\xab\x86\x21\xa6\x3a\x04\x23\x25\x3f\x86\x3e\x9e\x8b\x44\x46\x66\x00\x2e\xaf\xbb\x29\x8e\xc7\xa2\x2a\x1b\xa2\x8d\xb8\x93\x72\x41\xf5\xc6\xba\x12\x5a\x09\x14\x42\x6d\x61\x34\x2b\x84\x24\xcc\x18\x5a\x96\x39\xa6\x35\x0a\x29\x19\x31\x0d\xe5\x22\x99\x0a\xa4\xee\xbd\x43\xb1\xaf\x7a\x5e\xa5\xfb\x3a\xa5\x35\x6a\xae\xe1\x2c\x75\xcc\x9f\xfe\x20\xb5\xa8\x85\x0b\x06\xd6\xaa\x42\xa5\x73\x7b\x5c\xa7\xa4\x0e\x46\x61\xa6\x5d\x30\xfd\x41\x46\x26\x4f\xaf\xe4\xcd\xef\x1a\xf8\x3a\x02\x15\x23\x9f\xad\xbe\x94\x84\x85\x5d\x97\xe6\x38\xa8\x91\xe9\xc8\x04\x79\x18\xf4\x06\x60\x37\x1f\xd3\xd0\x2d\x32\xa9\x21\xf1\xb7\x23\x88\xfa\xae\xaa\x16\x3d\x51\x56\x47\x26\x8f\xed\x1a\xf6\x06\xe5\x67\x9d\xae\xc9\x28\x35\xb9\xc2\xb1\xb2\x84\xb2\x71\xaa\x70\x3a\x0e\xb2\x30\xce\x07\x2d\xdf\x06\xbe\x1c\x2b\xe9\x7d\x10\x74\x1c\x06\x84\x86\xc0\x06\xfe\x4e\xbd\x82\xbe\xcc\x28\x2f\x8e\x83\x99\x38\x8c\x05\x0e\xdc\x63\xd1\xb4\x1b\x73\x2d\x0f\xae\xe3\xd0\xc4\xf8\x60\x77\xc5\xcf\xd6\x81\x60\xb7\x97\x23\x4c\x76\xe7\x38\xca\x52\x61\xcb\x60\x64\x2e\x0e\x7b\x51\xbf\x4c\x4a\xe3\x3a\x8e\xf2\x98\x33\x67\x65\xa1\x80\xa8\x30\x7d\x05\xdb\x9d\xc5\x63\x0d\x03\x15\x39\xfb\xe7\x38\xcb\x83\x1e\xf4\x34\x44\xa0\xfb\xa7\x90\x44\x84\x3d\xbf\x87\xa6\xf9\x04\xb6\xa8\xe3\x54\xa5\x98\x72\xad\x2e\x75\xd5\xd6\x4e\x53\x5c\xc7\x59\x4a\xfc\x12\x57\x07\xc3\x66\xe3\x3f\x9f\xfe\x5c\xfe\x55\x8c\xe1\x3e\x9f\x13\x6b\xa2\xdb\x55\xd7\xcb\xcd\xe4\xa7\xe7\x5a\x21\x3f\xfd\x0c\x7d\x7a\x14\x33\x46\x02\x3b\x4d\x2b\x5e\x20\xf1\x7f\x15\x82\xa1\xee\xde\x6b\x55\x35\x30\x24\xc1\xeb\x98\x27\x02\xcb\x95\xab\xfd\xd7\x30\xf8\xdd\xff\x35\x15\x98\x49\x79\x0f\xf2\x45\x39\x66\xab\xfc\x72\xcc\xc5\x22\xd4\xf8\xc0\x1f\xc4\xcf\x05\x45\x76\x7f\x0c\x14\x30\x74\x2c\xe2\x3c\x13\x03\xc7\xde\x2b\xe1\x3d\x1d\x8b\x3c\x45\xbd\x99\x63\x25\x74\x17\xf0\x75\x71\xc1\xa0\xdc\xf3\x0d\x75\x7d\xae\x14\x56\xfb\x02\xa8\x8e\x65\x10\xa3\xb3\xd6\xd2\xa2\x87\x5d\x45\x4e\xc7\x2a\x0e\x42\x5b\xa2\xb5\x8e\x58\x18\xda\x8e\xf6\xc7\x58\x41\x1c\x64\xbe\xa7\x46\xa2\xb1\x73\x8d\x14\x1d\x6b\x60\xf8\xd0\xcf\xe2\x63\x5f\x0d\x08\xcb\xf6\x30\x04\x21\xc6\x48\x37\x97\x6e\x3b\xb3\xb1\x34\xe8\x59\xe3\x2d\x1d\x43\x42\x64\x4e\xa2\xec\x86\xc1\x03\x34\x4d\x2f\xa1\xa4\x63\x93\x53\x7f\xde\xb2\xca\x1e\xf6\xcf\x93\x19\x66\x20\x72\xe9\x2c\x8a\x0c\x13\xae\x13\x53\xb9\xf9\x26\x94\x4e\x82\x30\xce\x8d\x9d\x1f\x08\x89\xda\x81\xd3\x41\xd0\x49\x10\x11\x20\xae\x9b\xd3\x07\x53\x1c\xfd\xad\x24\x81\xd5\x9c\x23\xe9\x35\x74\x9d\x1f\x3d\x98\x24\x10\x89\x55\x0c\x28\x75\xf8\x50\x1c\x27\x87\x43\xa1\xc5\x80\x59\xe1\xfa\x15\x23\xcb\x0b\x9d\x44\x61\x8e\x1e\x25\x64\x8d\x3a\xa1\x71\xe8\x24\x8a\x95\x43\x08\x0c\xb8\xf5\x9b\x1a\xa6\x9a\xe1\xee\xfc\x8c\x20\xd9\x3f\x0a\xd5\x56\x75\x01\x97\xd3\x30\x3b\x4e\x62\x0d\x58\x91\xb5\x08\x3b\x52\x52\xdf\x3b\xd7\xd6\x19\x56\xce\xf4\x05\x26\x31\x48\xc3\xbd\x59\xc5\x59\x94\x6f\x68\x4a\xa1\xfd\x37\x00\xe0\x0d\x17\x8d\xe7\x31\x3e\xd5\xd5\x4b\xed\x5c\x28\x74\x92\xc6\x79\x46\xd8\x91\xe3\xf1\x7b\x51\x4e\xa2\xf4\x24\x85\x14\xf7\xd1\xe5\xd7\xdd\xe8\xd6\x53\xa3\xd0\xb1\xe3\xee\xe7\xcf\xb7\x68\x74\x24\x13\x12\xf1\x40\x9e\xa0\x6d\x17\xde\x2e\x67\x6c\xfb\x37\x9d\xe9\x1c\x77\x71\x71\x3e\xd7\xd5\x0f\xb8\xf9\x58\x97\x1a\x7e\x4e\xbe\x3d\x4f\x64\x60\x81\xf1\x45\xd9\x6b\xe9\x0c\xd1\xc3\x3a\xc9\x15\xb9\xab\xa9\xaa\xda\x5a\xd4\xd3\x8f\x02\xde\xa7\x93\x3c\xc9\x4d\x6c\xcd\x1c\x1a\x75\x81\xfb\xaa\x69\x7f\xff\xd0\x1f\xb3\x4c\x7f\x9d\xb0\x48\x73\xdb\x7d\xbc\xbf\xff\x76\xe8\xde\xc4\x21\x72\xdf\xc8\xd2\x9c\xd0\x23\xe2\xa7\x27\xa7\xe8\x84\xa7\xb1\x13\xf9\x7c\xac\x4a\x42\x76\x0d\x9d\xbc\xdd\x69\x19\x20\x9d\xe3\x47\xd5\x82\xd3\x92\xea\x29\x09\x93\xf7\xcb\x73\x6e\xdf\x9f\x15\x5a\xfc\x52\x75\xa9\x8f\x50\xaf\xfd\x3b\xe6\x3c\x8d\x9c\x88\xde\x30\x6b\x9a\x5c\x4a\x80\x46\x7d\x74\xa8\x6b\x12\xa5\xb1\x93\xdd\x5d\x46\xc6\x0a\xb7\xfb\x2e\x36\xbd\x48\x5d\x9d\x44\x31\xed\x83\xcc\xee\xc3\x89\xcc\x78\x98\x78\x0d\x71\x5d\x4d\xea\x06\x89\x0a\x12\xac\x48\x2d\xce\xe7\x6a\xd0\x01\x9c\x5c\x45\x25\x2a\x50\x63\x81\x59\x5c\xc2\xdc\xed\xe9\x20\xcd\x6d\x30\x23\x2f\x1f\xe5\x40\xd8\xd6\x9d\x10\x66\x28\xc0\xba\x52\x55\x59\x9d\x3e\xb6\x20\x11\xed\xf9\x8b\x64\x62\x94\x53\x24\x3a\x91\x09\xca\xff\x6f\x1e\x9f\x77\x83\xa0\x3d\xd1\x19\x43\x05\x25\x52\x77\x5b\xad\x9f\xfa\xfc\xcb\x9e\x01\x11\x93\x36\xdd\x7d\x84\x9f\xed\x4d\xa1\x57\x3f\xcf\x45\x0d\x38\x58\x2d\x05\x69\xfc\x4c\x20\x26\x18\xd1\xf3\x6e\xb5\x3d\x2c\x96\xff\xf3\xbc\xde\xad\xf7\xeb\xcd\xa3\xfb\x4e\x93\x02\x8e\xd5\x87\xfd\x68\x6e\x19\x19\x63\x64\x5c\xc2\x7b\x17\x40\x76\xe1\xf1\xe6\x7c\x2d\x3e\x3a\xd3\xb6\x9a\x24\x70\x69\x10\x4a\x74\x9e\xc2\x12\xf1\xb1\xf9\xdc\x59\x73\xf6\x9d\xa7\x41\x4c\x3e\x9e\x04\x87\x00\x87\x11\x4d\xdc\x61\x9d\x20\xe3\x0b\xed\xb2\x3c\xdf\xf5\xe4\x39\x48\x3a\x0d\xa5\x12\x4e\xe4\xe8\xf2\x61\x73\xf5\x91\x43\x9f\x3b\xd1\x04\xd8\x75\x44\xc0\xd5\x81\xd6\xe5\x43\x0b\xb5\x5b\xc0\xd2\x88\x65\xda\x0e\x0c\x82\xd0\x0e\xdf\x6a\x1a\x8b\x18\xc9\xde\x27\xf1\xd6\xdb\x67\xd1\x79\xe3\xef\x89\x05\x29\x26\x3c\x2c\x1e\xbf\x2e\xf6\xfb\xc5\xe3\xd3\x76\xf3\xc7\x9f\x77\xb7\x5b\xf7\x3d\xdd\x66\x99\xf6\xe0\x09\x62\x1d\xb9\x83\x49\x90\x81\x9d\x03\x76\x2b\x58\xb4\xbb\x52\x9c\x9b\xd7\x6a\x12\x45\xa6\x89\x4a\x5d\x1b\x79\x59\xd4\x88\xfd\x2b\xaa\xb2\x0b\xab\x66\xe7\x6d\x9a\x06\x0a\xab\x9a\x7f\x38\x5b\x85\xeb\x2a\x41\x9a\x46\x01\xa6\x1f\xbf\x57\xed\x6a\xef\xff\xc8\x69\xe9\x46\xbb\xbc\xbe\xee\x90\xa6\x4a\x0b\xa2\x13\xb4\xd8\x43\x22\x84\x8f\x45\x53\x4d\x9e\x4a\x16\x44\xb8\xd2\x2d\xea\xff\x1d\x0e\xc4\x34\x0b\x48\xc6\x61\xf5\xff\xa2\xb4\xe7\xa4\xe9\x34\x0b\x73\xac\x11\xee\xf6\xcb\xfe\xc9\x65\x69\xea\x68\x77\x4f\xc5\x4f\x38\x92\x1e\xda\x65\x0a\x6a\x9c\xff\x2f\x7f\x0d\xa9\xd2\xe1\x4d\x2f\xcc\x40\x52\x67\xf2\xc8\x32\x16\x62\x8c\x74\x2a\xca\x76\x0b\x66\x52\x8c\x48\x33\xa6\xb1\x21\xdb\x5c\x64\x37\xde\x7a\x77\x60\xe6\xff\x27\x1c\x91\x12\x75\x9a\x99\xc0\xf1\x7d\x6f\xc1\x88\xcb\xb1\xc5\xa2\xc3\xe4\xd5\xe6\x91\xc0\x18\xff\x66\x73\xe7\x7e\x7b\x9e\xaa\xd8\xc2\xb8\xda\x2f\x70\x9a\x6b\xf4\x79\x2b\x83\xf1\x8f\xc8\x33\x8d\xe3\x7a\xfd\xb4\x58\xfa\xab\xe5\x39\x38\xf5\x0c\xe5\x4a\xea\xcd\xbe\x72\x3c\xd0\x4f\xea\xab\x69\x2e\x12\xcc\x40\x77\xef\xe2\x7c\xd5\x0b\x98\x9e\x9a\x61\xc8\x77\x23\x9a\xe2\x68\xeb\x52\xee\xeb\x59\x12\xe0\x1c\x21\xff\xbc\x05\xee\xdc\x7e\x47\x4f\x59\x46\xc1\xe2\xa6\x3c\x16\x13\xd5\x46\x9d\x32\xc1\x32\x4a\x01\x49\xa8\x98\x4c\x4d\x7e\xad\xa0\x3b\x1f\xef\xa7\x0c\xc8\x77\xe9\x2f\x16\xc1\xd9\xd5\x6f\xfc\x56\x79\xc8\xd0\xb4\x7c\x29\x4a\x51\x7f\x7c\xcb\xef\x84\xef\x1b\xa6\x5c\x9a\xd4\xe9\xc6\x56\xef\x77\x75\x75\x1a\xb8\x15\xeb\x54\x24\x8c\x6b\x4b\xb7\xb9\x76\x40\xd6\xa9\x48\x73\x35\x6c\x1e\x6f\xce\x45\x39\x14\x97\x1f\xdd\x87\xe0\xd2\x62\x1a\xed\xd6\xb7\xa9\x9f\x44\xe3\x78\x70\x28\xd1\x3f\x89\x22\x52\x21\xb3\xd0\x52\xdf\x57\xa7\x73\xfb\x81\x13\x6b\x51\x83\xf8\x7b\xe9\x5e\x2a\xba\x8d\x8d\xe6\xe4\xef\x70\x9d\xda\x0c\xea\x24\xa9\x4c\x04\x74\xef\xf5\xbf\x5f\xff\xc7\x2a\x39\xbb\x87\x20\x19\xb3\x28\x72\x17\x0b\x7f\xd9\xae\x56\x8f\x33\xdc\xf6\xf1\x97\x4b\x91\x23\x9c\xce\x14\x75\xd3\x22\xc9\xf6\xa9\xf2\x0f\x5e\x0a\x9e\xb3\xde\xed\xff\x00\x63\x45\x43\x9d\x4a\x43\x60\x2e\x32\x82\xd1\x1b\x33\x99\xde\xd2\x50\x00\x6a\xab\x0d\xdf\xa0\x69\x47\x45\xe2\x54\x45\x11\x62\x0c\x4e\xcd\xcb\x83\x38\x4f\x56\x3c\x95\x28\x8c\x33\x88\x6c\x45\xef\x7c\xfc\xe8\x75\xa6\xb0\x68\x22\xa1\x5d\x97\xa6\x5a\x37\x56\x8f\xc7\x1d\xe6\x29\xae\x2e\x7b\xf1\xb3\x18\x4d\x01\x2d\x05\x62\x64\x10\xf8\xbf\x3a\xc2\xf9\x55\xf4\xf7\xa4\x35\xf1\xd8\x9a\xd7\xea\xfd\xa1\x79\xb1\xe8\x38\x7b\x10\xa2\x80\xec\xc0\x0e\xeb\xd3\xe9\x48\x2d\x6c\x9b\x92\x55\xb5\x73\xc0\xd4\x29\xc4\x0a\x3b\x64\x28\xa1\xef\xfe\x26\x35\x56\xa8\x3d\xcc\xbc\xcb\xb8\xaa\x8b\xff\x5e\x50\x1a\x65\x88\xda\x57\x9b\xaa\x97\xc3\xd8\x3a\x35\x09\xc7\x95\xd4\x65\xe6\xce\xc9\xf0\x97\x19\x79\x6a\x52\x95\x10\x38\xec\xe3\x0b\x58\x1e\x67\x68\x5f\x4f\x16\x08\x81\x42\xa9\x24\x9b\xee\x2c\x0c\x7e\x79\xc1\x2c\x30\x14\x33\x3f\x2c\xfe\x38\x20\x8a\xcd\xde\x5f\x16\x72\x92\x5e\xc4\x89\x72\xe8\xa2\xc2\xc6\x1f\x12\xdc\x1a\xb7\x1f\x8f\x24\x77\x37\x7f\xed\x50\xc9\xd8\xee\x4e\x78\x4b\xb6\x02\x34\x79\xeb\x59\x24\x63\x72\x9e\xbc\x94\x5d\xf0\xd0\x4f\xf5\x2c\x4e\x78\x44\x6a\xb2\x1f\xf7\x20\x3e\xff\xa2\xd8\x4a\x8e\x61\x24\xb3\x7b\x2d\xce\xd3\x9a\x9a\x3b\x8f\x53\xa5\x77\xd5\xa2\xf7\x87\x3f\x6b\x72\x35\x4e\x4c\x04\xf7\x66\xba\x04\xca\x6a\xc0\xff\x0a\x8e\xa4\xb3\x58\x28\x4c\x19\xe5\xe5\x63\xf9\xda\x03\x25\xb2\x58\x73\xcc\x0f\xfc\x64\xb6\x51\x89\x3d\x9c\x48\x62\xa1\x1f\xac\x38\xd8\x2c\xcc\xc5\x9d\xab\x39\xd1\x27\x2f\xc5\x51\x2f\xab\xb2\x84\x79\x6f\x35\xf7\xef\xaf\x56\xaa\x2c\xcd\x32\x04\xd1\x4b\x81\xf0\x68\xf2\xcd\xa6\x05\x2a\xfd\xc7\xe8\xff\x73\x1f\xe0\x01\x83\x9e\x1e\xf5\x74\xb7\x1b\x85\x84\x59\x2a\x25\x6e\x45\xdf\x0a\x78\x1f\x4e\xd0\x2c\x4f\x73\x14\x58\x22\x8a\xf4\x27\xbf\x2d\xe7\x04\x99\x5b\xec\xbe\xde\xaf\xfe\x3c\x2c\xee\xef\x37\xcb\xc5\x20\x74\xcf\x72\x48\x11\x50\x7f\xbf\xdb\xa3\x5f\x28\xd4\xdf\x57\x6b\x7f\xd0\xc4\xc8\xa1\xee\x22\xdd\xf2\x65\x50\x26\xca\x58\x18\x60\xfe\x73\x14\xcd\x04\x0b\x90\x71\x96\x62\xa1\xba\xdb\xe3\x41\xbb\x8e\xaa\x3f\x2a\x72\x13\x52\x65\xfa\xe5\xb5\x6d\x16\x08\x63\x29\xaa\x72\xec\x35\xab\x33\x91\x2b\x2c\x10\xa2\xf2\xd6\xac\xa6\xc5\x6c\xa8\x9f\xa9\x44\x4a\xef\xfe\xb8\x43\x64\x6a\xb7\xcf\x3e\xa1\x0e\xda\xb0\xde\x9c\x29\x16\x27\x4e\x81\xa1\xb5\x1b\x02\x51\x28\xe6\x1f\xa5\xce\x0d\x4e\x5e\xc2\xb8\x90\xfe\xa1\xbb\x96\x56\x19\xcb\xc7\x2c\xa1\x4f\x2e\xa2\x04\x3e\x9c\x6e\x5f\x22\xa8\xfa\x00\x13\xfe\xc9\x14\x80\x20\x85\xc8\x55\x4d\x9e\xaa\x76\xf1\x2e\x3e\x7a\x67\x4e\x9d\x41\x42\x34\xed\xfb\x9b\xe5\xe7\x84\x05\x9d\x01\x63\xa9\x93\xd6\x05\x6d\x51\x97\xcd\x70\x69\x00\x49\x3d\x65\x09\x76\x0b\x5a\x74\xc1\x84\xff\x1a\x08\x50\x09\xe7\xfb\x7a\x77\xbb\x79\x70\x7f\x35\x09\x81\xa1\x74\x2d\x5e\xaa\x61\x53\x31\x33\xb9\xc2\x00\xeb\x0b\x94\xf0\x78\x79\x79\x81\xb6\x19\x8d\x5f\x93\x1b\xac\xc9\x88\xf3\xf9\xf8\xf1\xbb\xa8\x4f\xe2\xb6\x30\x66\xfa\xdc\xfe\x15\xfd\xdb\x9d\x2f\x0c\x26\x02\x7f\xd8\xff\x0b\x12\x7f\x25\x15\x69\x5b\x2c\x7b\x40\xbb\x8f\xef\xa2\x26\x65\xd8\xaa\x1a\xeb\xe4\xea\x3c\x48\x94\xb4\xa9\x4f\x77\x63\xb5\x38\x6e\xe1\x28\x06\xb6\x5d\xf6\xbc\x50\xc4\x48\x66\x77\x0e\xfa\x99\xb1\xe6\x87\xae\x8b\x9f\x87\x22\x19\x69\x32\x3e\xbc\x7d\x32\x09\xf3\x28\x22\xdb\x53\xe4\xa0\x4c\x97\xd1\x1e\xab\x7c\x9d\x47\xe4\x11\x63\x61\xea\x11\xaf\x2e\x72\xeb\x09\x78\xa3\x37\x9c\x47\x3c\xc2\x1e\x5a\xb7\x50\x36\xf7\xe4\x6c\xfb\x9b\x3f\x26\x38\xd9\x76\x1d\x71\xff\xc7\xb4\xcc\x8b\x0e\x8c\xf0\x11\x79\x24\x24\xd2\x81\x11\x2b\x84\xad\x38\x17\x2e\xe4\xb1\xb6\x26\xbc\xdd\x55\x9a\x27\xa8\x6f\xfb\x72\x68\x1e\x6b\x93\x33\x0f\x7f\x7b\x6e\xba\x2c\xae\x1f\x5e\x79\x12\xf0\xcc\x69\xfc\x88\x56\xd8\xfe\xf2\x16\xcc\xb5\xfc\xb5\xce\xd3\x54\x12\xe5\xfd\x22\xe7\x25\xc5\x74\x9e\x85\x12\xb5\xa9\xbf\xd4\xc2\xaf\x3e\x79\x16\x31\xec\xd3\xff\x6f\x55\x94\x48\x74\x99\x7f\x25\x59\xb7\xbf\x59\x11\x8d\x21\x7d\xcb\x1d\x16\x22\xcc\x06\x85\x62\x2f\xec\x8b\x83\x24\x4b\xa6\x77\x62\x04\x32\x97\x8e\x45\x63\xd5\x5c\x56\x2f\x2f\xfe\x96\xf2\x28\x51\x76\xa1\x59\xb5\xaf\x7b\xe2\x44\xaf\xcb\xf3\xa5\x9d\x01\xa9\xe5\x79\x1a\x85\x76\x83\xbf\xdb\xed\x67\xf1\x19\x79\x2e\xc8\xb7\xc8\x35\x32\xf7\x57\x6e\x04\x3a\x67\x41\x8a\x6b\xf7\xb9\x40\x8a\xc5\x5f\x24\x2d\xee\x43\x21\x85\xf6\xe7\xcb\xf1\xb8\x2a\xdb\xfa\x63\x72\x73\x2c\x21\xa9\xb0\xa2\xd9\x5d\xce\xd6\x73\x64\xf2\xb5\xb6\x82\x71\x26\x1b\x2e\xc4\xdc\x0e\xc6\x00\x37\x2c\xd3\x3e\x99\x7d\x7a\x7b\x41\x0e\xe1\x4c\x81\x2b\x17\x91\x42\xe2\xe3\x16\x9a\xcb\xa9\x97\x88\xd6\xb9\xcc\x72\x94\x1f\xe9\x46\x20\x35\xe6\x86\xcb\x4a\x2e\x05\x33\xba\xd7\x1f\xc6\xec\xbd\xfb\x92\xa5\x8f\x1d\x72\xc5\x23\xa4\xe7\xd4\x54\xc7\x99\x7b\x0b\x3a\x95\x68\x53\xb2\xdb\x2f\xb6\xfb\xf5\xe3\x97\xc3\xee\xfb\x66\x7b\xeb\x2e\xa0\x05\xc3\xcc\xb2\x7d\xad\xab\xf7\xe6\xfb\x2b\x94\x96\x76\xd4\xad\x3d\x45\xfb\xba\x2e\x55\x55\xd7\xa0\xda\x3e\x22\xc9\xb5\xa0\xba\x63\x0d\x65\x75\x29\x15\x2c\x6a\x59\x5c\x25\x4a\xb9\x36\x22\x0e\xbd\x5f\x73\x6d\xb5\xb0\x26\x37\x07\x71\xe8\xa0\xed\xb8\x61\xd1\xfc\x99\x9c\xc3\x0d\xda\x01\x6c\xc1\x54\xa5\xfe\x0b\x7f\x33\x9d\x83\x50\x18\x56\xbe\x56\x97\x06\x0e\x06\xe0\x70\x56\xfe\x79\x81\x0a\x71\xa5\xeb\xe5\xea\xe8\xb3\x87\xe5\x6f\xe3\x8b\x28\x8d\xeb\xcf\x4b\x2d\xba\x1d\xb7\x3a\x55\x4f\x62\xa2\xe2\x66\x1b\x50\xb9\x61\x29\x32\xd2\xe4\x45\x0f\x14\xb3\x66\xcd\x47\x74\x6e\x04\x39\xde\x35\xd0\x3e\x01\xea\x51\x53\xcd\xdc\xdd\x9f\x91\x24\x84\x6c\xc1\xbc\x0f\xa2\x45\xf3\xf0\xe2\x93\xd0\x36\x37\x86\x78\xd2\x74\xf3\x58\xc9\xf7\x54\x8e\xd1\x63\x61\x81\x16\xbd\x6b\x39\x09\xfa\x8e\xde\x17\x0b\xb9\xd4\x36\x31\xed\x0e\xdc\x7d\xbf\x9d\x9c\x10\x89\x1c\xd7\xc4\x03\x06\x32\x5d\x3a\x73\x9c\xe9\x15\xda\x93\xe3\x0c\x70\xb9\xdf\x7d\x5d\x6c\x6f\xbb\x51\x47\x0a\x09\xbf\xb9\xc3\xcc\x04\xb6\xca\xff\x28\x4e\x3e\x77\x60\xb1\x4c\xb1\x1f\xbd\x17\xaa\x1a\x04\x69\x2c\x51\x06\xbd\xa7\xde\xdf\xdd\x1e\xf5\x3e\x79\xb4\x2c\x8d\xe2\xd8\x66\x03\x77\x75\x75\xda\xd7\x97\x2e\xfd\xef\x16\xf5\xbf\x6a\x9e\xb3\x34\x09\x90\xbf\x22\x6c\xab\x66\xff\x5a\x43\xf3\x5a\x1d\xb5\xdb\x21\x59\x9a\x06\xd2\x92\x1d\x68\x88\xf6\x0b\x01\x4b\x81\xe3\x14\x5a\xb5\xe2\x58\x8d\x8a\x2f\x2c\xb3\x50\x18\x0c\xe1\xd0\x2e\xba\x28\x5f\x26\xf7\x9d\x65\xe4\x85\xfd\x20\x7e\x16\xa7\xe1\x6f\xce\x58\x96\x30\xaf\xec\x32\xec\xbf\x4c\x2e\x00\x00\xfe\xcd\xa2\x17\x7f\x51\x95\x0f\x45\xf9\x50\x1c\xc1\xff\x80\x3c\x94\xb8\x0d\x9c\x44\xab\x5e\x6f\x28\x6d\x7f\xaa\xc1\x14\x3f\xc7\x25\x88\x31\x87\xd0\x7d\x38\x25\x53\xd4\x8d\x31\x5f\xea\x42\x3f\x89\x5a\xe8\xa2\xa7\x2a\x8d\xc6\x19\x0b\x24\x26\xdb\x6f\x4a\xbd\x45\x69\xd6\xb4\xb5\xd0\x7a\x8e\xd7\xa2\x19\x0b\x73\xf4\xe2\x6b\x3d\xd7\xd4\xfa\xf6\xb9\x3d\x9a\xb1\x38\x8e\x81\x5c\x7f\xf4\xae\xad\xea\xc9\xda\xc6\x58\x9e\xc7\xb6\x3a\xb8\xfa\x79\x86\xba\x2d\x1a\x98\x62\x2d\x18\x93\x42\x25\xa3\xaf\xb9\xaf\x3c\x97\xd1\x7d\x13\xcf\x65\x3e\xc4\xb6\xec\x2e\x92\xb4\x67\xc7\xd7\x12\x22\xc2\x91\xb2\x56\xa2\xf6\x30\x0b\x26\x83\x08\x37\xb1\x2d\xfc\xa8\x3c\x4e\x99\xc9\x40\xe4\xb9\x97\x66\xf8\x5f\x50\xed\x3f\xbb\x25\x62\x72\x45\x15\x64\xb1\x1c\x89\xb8\x2d\x48\xa1\xd7\x5d\x46\x29\x66\x37\x09\x8c\x82\x06\x76\x94\x9a\x29\x4d\xa2\xae\x7f\x14\x85\x57\x53\xd7\x4c\xc7\xe4\x94\xa1\xc4\x51\xdd\x5f\xd4\xdb\x47\x37\xaa\x48\x49\x67\x52\x7c\x67\x9a\xd1\x3a\xd7\x12\xfb\x89\xa4\x4c\x1d\x18\xf6\x2f\x66\x8d\x96\x44\x34\x2f\x1a\x5b\x12\x19\x95\x97\xdd\x49\x86\x81\x1a\x88\x02\xdc\x8b\xa6\x1d\x54\xb2\x18\x44\x29\xa2\x76\xcd\xd0\xb3\xa2\x99\xf6\x7f\x19\xe8\xcc\x58\x18\xdb\x03\x09\xe7\x5e\x55\xce\x46\x5f\x6b\x98\x44\x95\x12\x6a\xf0\x3e\x58\x18\xf5\xcb\xb0\x4c\x39\x98\xc1\x46\x01\x5a\x1b\x2c\xab\xb2\x19\xe0\xf1\x79\x90\x6a\x43\x9e\xa1\x5e\xde\xc3\x87\x88\x3c\xc8\x48\xb3\xd3\x1a\xb7\xcd\x04\x2e\x3c\xc8\x32\x14\x01\xa5\xc7\x79\x3c\x87\xd3\xe3\x92\x63\x2d\xb3\x39\x8b\xf7\x92\xe4\xff\xaf\x0d\xbd\xe7\x9f\x3e\x0f\xb3\x1c\xe1\x49\x58\xca\x43\xbe\xf0\xad\x68\xa1\xed\xc1\xbb\x3c\x64\x19\x06\xa9\x07\x5c\x7d\x08\x6b\xd8\x8d\x68\x7b\x38\x0a\x73\x6c\x44\xc1\x0f\x28\xdb\xfb\xa2\x69\xa1\xaf\xb2\xf2\x88\x99\xac\x77\xf0\xb6\x23\xd2\x0d\xd0\x66\xe6\x19\xf2\x48\x83\x0a\x88\xff\x04\xf5\x03\xb4\x50\x2f\xd4\x54\xb3\x42\xa3\xb6\x31\xc7\xfd\x57\xb6\xf7\xa0\x5f\xa0\x1e\x0a\x05\x6a\x1e\x47\x64\xd2\x72\x16\x75\x03\x1e\xd4\xf8\x24\xea\x29\x40\x90\xc7\x71\x90\x0b\xc7\xdf\x85\xcb\x69\x77\xea\xe6\xc5\x2f\x02\x03\x1e\xa7\x09\x29\xd7\x5d\x50\xab\xf9\x7a\x94\xf1\x98\x05\x54\x74\x83\xa6\x4b\xb8\xed\x68\xdc\x41\xdb\x10\x30\x6f\x79\x39\x61\xd7\xe8\x07\x78\x90\x1e\x8f\xad\x03\xc1\x0e\xd0\xb5\x01\x43\xcd\x3b\x98\x65\xa5\x6b\x9e\xc4\x80\x8e\x02\x3d\x5c\xfb\x2f\xc5\x61\x35\x4f\x12\xc0\x15\x62\xf5\xc7\xd3\x6a\xbb\xdf\x1d\x9e\x36\x1b\x4b\x26\xdd\xb9\x9b\x48\x44\x24\xa8\x57\x37\x8a\x20\x79\x1a\x53\x80\xf9\x02\xed\xff\xdb\xff\x8e\x4d\xc1\xf9\xfd\x9a\xa7\x09\x53\x48\xe9\x22\x49\xc2\xe7\xed\xfd\xdc\xea\xce\xd3\xd4\xa0\x7a\xf9\xab\x68\x76\xa2\x6c\x05\x41\xff\xc6\x97\xca\x72\xae\xb5\xd3\xea\x7f\xda\xae\xf6\xb7\xab\x71\xbb\xc1\x9e\x97\x27\x29\xaa\x13\x58\x25\xdd\xa1\x8e\xf3\xf8\x01\xb0\x24\xf7\xfa\x77\xa4\xb3\x6d\xe1\x37\xee\x67\x32\x19\xb9\x46\x38\x59\x17\xe3\x2e\x58\xd5\x7d\xd1\x04\x55\x73\x17\x6d\x5b\x41\xfb\x4a\x2a\xc8\xee\xb3\x3c\x17\x22\xee\x53\xb9\x43\xec\xb6\x4c\x2e\x42\x2a\x77\x6b\xf8\x31\x66\xa0\x70\x11\x52\x44\x8a\xc5\xcf\x8d\x21\xd8\xa1\x3f\x18\xe5\xc8\xca\xd0\xd4\xae\xda\xc2\x4b\x97\x95\x8a\x9f\xfe\x78\x4c\xae\x31\xa2\xfc\xc0\x28\xe2\x5f\xf9\xbf\xdd\x91\x5c\xa4\x99\x57\xff\xa2\x25\xa7\xaa\x6f\x3e\x48\x63\x15\xe6\x71\x49\x5c\x46\x26\xb0\x2a\xe6\x1e\xdc\x36\x68\x48\xfd\xeb\xdf\xff\x18\xdb\xf8\x68\xae\x98\x66\xdd\x54\x45\x74\x55\x01\x7a\x5d\x9a\x0a\x93\x97\x51\x39\x9f\xeb\x30\xc2\xf7\x53\x28\xf2\x40\x7e\x2e\x0b\xff\x23\x74\x94\x83\xf6\x56\x59\xf0\x22\x74\x75\x6b\xad\x0d\xdb\xea\xaf\x51\x5b\x1c\x44\x6c\xb7\xfe\xa6\x7d\xa8\xb4\x7f\xb2\x26\x48\x31\xce\xb2\x72\xae\x38\xb9\x67\x13\x47\x11\xa4\x39\x76\x73\xe1\x54\xb4\x8f\xd5\xa9\x28\x9f\x71\xa9\xd2\xd3\xd3\x00\x70\xc0\xbe\x88\x53\xb7\x0d\xdc\xc0\xb8\x25\x21\xc2\x30\x26\xf7\x3e\x4c\xbf\x6e\x3c\xec\x41\x44\x99\xad\x62\x9f\xab\xb2\xf9\xdc\x87\x64\x3c\x57\x45\x9c\x92\x4d\x03\x4a\xcd\x8f\xb6\x1d\x77\x42\xc6\x30\x83\xee\x82\x91\x6f\xfe\x8f\x2a\x70\xf6\xdd\xcf\x65\x53\x1d\x35\x69\x0a\xb8\xc3\x49\x9c\x62\xaa\xfa\xad\x80\xf7\x1b\x68\x6f\x3e\x26\x96\x26\xdd\x19\xa0\x52\xaf\xbf\xf1\xb5\x9e\x22\x12\xdc\x69\x12\xac\x8e\x25\x4a\x4f\x5d\x46\x93\xed\x93\x5f\x94\x31\xc0\xde\xc6\x7d\xf5\x72\x0b\xe4\x01\xba\x9c\xf6\x6e\x44\x06\x44\xce\x41\xfa\xec\x2f\xf4\xd8\x27\xcb\xf3\x20\xc6\x14\x39\xd3\x88\x89\xbf\xc5\xcf\x9f\x2b\x1f\xe4\x08\x16\x07\x68\x0e\xe0\x85\xc5\x75\x37\x4f\x61\x28\x75\xab\x05\xcb\x21\x76\x56\xf1\x55\x69\x8a\x97\x9b\xaa\x3a\xfe\x77\x08\x3b\x16\x3c\xa5\x61\x3f\x46\x9e\x09\x99\xc7\x88\x21\x91\x47\xa1\xde\x10\xc6\xe3\x0e\x70\xe9\xec\x9c\x9f\xea\xea\x47\xa1\xa1\x7e\x1c\x8a\xe8\x8e\x1e\xad\x14\x39\xb3\x01\xca\xcd\x14\xe2\x20\x74\x6a\xb8\x63\x17\x0f\xe0\xd0\x93\x4e\xe9\xec\x7c\x99\x15\xed\xd0\x42\x67\xe9\x20\xb2\xb8\x21\x99\x2a\x9b\x86\xcf\xc2\x7c\x84\x96\x24\x9c\x52\x17\x2f\xaf\x6d\xca\x26\x77\x08\x32\xc9\xb5\x27\x59\xda\x19\xd7\x3b\xb5\x4d\x26\x95\x49\x82\x88\x39\x96\xc6\x0b\x05\x46\xc3\x82\xa9\x0c\x40\x65\xb6\x87\x7b\x5f\x94\x6f\xa0\x49\xfa\x66\x32\x87\x65\x60\x00\x81\xc4\xf7\xc5\x0f\x68\xfb\x8e\x88\x8c\xe2\x00\xd1\x36\xb7\x5f\x17\x0f\x8b\x6d\xff\x57\x15\x59\xc8\xe3\x43\x55\x8a\x5a\xbd\x7e\x38\xbe\xbe\x3b\x83\x91\x11\xbc\x12\x25\x56\x6b\x66\x9f\x84\x8c\xb8\x95\xfb\xef\x16\x35\x2c\xfa\xcd\x2e\xac\x32\x0e\x12\x16\x39\x3b\x30\x8a\x4b\x9f\x77\xb7\xbf\xae\x70\xcb\x38\x4e\xc8\xb9\x13\xa7\xd8\x97\x5a\x90\xec\xe4\xcc\x5e\x2a\x63\x46\xea\xcc\x67\xb4\x0d\xa3\x52\x5a\xb7\x65\xea\x21\x5c\x4f\xa6\x71\x24\xb9\x6f\x8b\x2e\x5f\xc5\x95\x67\x93\x96\x29\x03\xac\x02\xdc\x3e\xdf\xb8\x86\x87\xcc\x42\x92\x68\xbf\xab\xea\xb7\x5b\x38\xf6\x9a\x70\x9f\x32\x03\xc6\xbf\x3e\x8b\x72\xfc\x7c\xf3\x5a\xbd\x6f\x41\x89\xc6\xce\xab\xc6\x7f\x41\xa4\x5c\x61\x71\x29\x9a\xd7\xcd\x65\x8e\xec\xac\x65\x96\xa7\xb1\x9d\x45\x8f\xe2\xc7\xa8\x32\x2d\x73\x8b\x82\x7f\x84\x53\xf5\xc7\x1f\xc3\xc8\x45\xe6\x19\x47\x36\xf5\x49\x94\x17\x71\xdc\x8f\xe8\x6d\xfb\xea\x7b\xd1\xbe\x8e\x4a\xad\xbf\x5e\x96\x65\xce\x04\xae\x4f\x2f\xc5\x0f\x78\xfc\xa9\xe6\x2b\xa9\x32\x07\xe3\xac\xd6\x1f\x8a\x72\x71\xd1\x05\x15\xd4\x1e\xfc\xe6\x2d\x59\xa0\x9c\x63\x31\x62\x46\xfd\xdf\x99\xd0\xb6\xd8\xf5\x24\x2e\x68\x3f\x38\xaa\x16\x4a\xce\x32\xa5\x06\x99\x6a\x01\x7d\x3c\x21\x39\xe7\x88\x61\x36\x4d\x3b\x60\x47\x3e\x51\x3b\xe9\xf1\x72\xa2\x40\xc0\x9d\x2d\x40\xe3\xce\x74\xb0\x45\x22\x9b\x7d\xe1\x04\xac\xff\xcf\xcc\xb6\xc9\x33\x90\x41\xe4\x84\x51\xed\x2a\x30\x9a\xd8\x4a\x19\xec\x84\x5c\x4a\x0b\x08\x83\x52\x1f\x74\x4f\x9a\x94\x0a\x02\x04\xde\xa2\x1e\xc5\x10\xb8\x21\x95\x31\x99\x76\x32\xc7\x55\x2b\xfc\x40\xd2\x81\x09\xc0\xc1\x18\xdb\xa2\x9a\x86\xe5\x52\x87\x01\x56\x12\x55\x2d\x4c\xbb\x7f\xaf\xae\xdd\x9b\xfa\xfb\xd7\xb1\x41\xbb\x04\xd9\xbf\x33\x9d\xa7\x38\x50\xb1\x6c\x45\xa5\xfc\xc9\x54\x70\x91\x91\xd4\x2a\xc7\x38\xfa\x16\x7e\x80\x1a\x81\x08\xa4\xd6\x29\x66\x44\x3b\x68\xbb\x1c\x76\xce\x9f\x66\x82\x78\x19\xbc\x7d\x6d\xf9\x10\x47\x30\x6d\x9c\x4c\x66\x88\xe1\x0a\x63\xa1\x13\x89\x19\x7f\x84\xf1\xf4\x04\x4d\x20\xa2\x13\x9c\x24\xd4\xf7\x95\xb5\xc4\xd4\x2a\x48\x78\xd6\x97\x58\x5b\x68\x26\x00\x10\xd6\xff\xeb\x3e\x91\x66\x58\x1c\xb5\x18\x0f\x12\x17\xec\x5f\x9f\x0a\x32\x2a\x02\x2e\xeb\x8f\xf3\x8f\xa2\x81\x7a\xc0\x48\x98\xc8\x8b\x69\x15\xe4\xa4\x4b\x7d\xd0\x84\x76\x9f\x9f\x56\x2a\x64\x09\x12\x9a\x5d\x69\xc5\x0f\x09\x15\xa5\x54\x7c\x26\x2c\x22\xce\xb5\x49\x9a\xa7\xa2\x4c\x23\x9c\x47\x57\xb5\x12\xa3\xae\x9b\x8a\x18\xd9\x66\xbf\x00\x95\xd6\xdc\xdf\x63\x6e\x9c\xb4\x4d\x37\x52\x76\x70\xed\xf9\x3d\x2a\x72\xf5\x42\xd7\x33\xe5\x5d\x15\x43\x80\xe8\x54\x1b\x91\x3e\x88\x9f\x23\x92\x96\x4a\x73\xa3\xd1\x70\xaa\xd2\x85\x21\x99\xb5\x99\x2a\xbc\x4a\x55\x8e\x95\x1a\x4a\xa8\xbb\x4d\x11\x23\xee\xc9\x8d\xd8\x93\xb3\x48\x05\x36\x98\xb9\x03\xb0\x6d\x96\x65\x55\xfe\xb0\x3a\x66\xe3\x4b\x67\x91\x8e\x69\xc8\x1f\x8f\x55\x7b\x0b\xad\x28\x8e\x23\x6f\x47\xad\x32\x26\x59\xea\x77\xa5\x83\xf0\x30\x15\x95\x07\xb9\x9b\x95\x0f\xc5\xd1\x41\x7d\x14\x0b\xc9\x0e\x0a\x1b\xb5\xeb\x12\x65\x25\x1b\x7f\x30\x03\x2a\xa8\x4d\x0a\x8e\x0e\x08\xe6\x4e\xe3\x09\x62\xc8\xd1\x30\x21\xed\xc5\xad\xed\x61\x19\x13\x90\xdd\x8b\xaa\x8f\x9f\xab\xcc\x89\x0c\xae\x7a\xf9\x6f\xad\x24\xcb\x2d\x8d\xef\x27\xb9\x44\x78\x1b\x02\xad\xa4\x50\xd8\x9a\x3c\x77\x1f\x88\xf1\xeb\xba\xe0\xdb\xdf\x8e\x4a\x39\x32\xf8\xff\xbc\x94\x65\x31\xa2\x03\x28\x95\xea\x18\x06\xa6\x5d\xd4\xcf\xdb\x77\xa9\x54\x5f\xf0\x51\x3a\xcf\x15\xe1\x21\xfe\x6b\x9f\xee\x60\x8a\x77\xf1\x25\x72\x10\x6f\xab\x17\x58\x0e\x5f\xed\xcc\xd6\xaf\xb4\x4c\x32\xfb\x82\xb7\x45\xf3\xf6\x24\x6a\x71\x82\x16\x9b\x8c\xa3\x81\x00\x51\x82\xd8\x84\xef\x08\x76\xeb\x61\xe1\x97\x6b\x30\xa3\x1b\xaf\x90\x46\x81\xdd\x96\xbb\xb5\xce\xdb\x5d\x69\x65\x02\x02\x07\xe9\xa2\x39\x5f\x5a\x98\xad\xc9\x2a\x93\x90\xf0\x13\x12\xbe\x6f\xa1\xac\x50\xeb\xc4\x6f\x3e\xca\xa4\x39\x4f\xdc\xfa\xee\xc5\x38\x66\x6b\x0a\x3a\x0c\x25\x8b\xdd\x00\xc0\xa0\xe6\x7b\x51\x96\x45\xe9\x63\x08\x1d\xc6\x29\xa3\xa1\xdb\xaa\xd7\x9e\xd8\xd1\x6d\xef\x63\xda\xfe\x75\x43\x59\x87\x71\x96\xc7\x5e\xe4\x62\x0b\x9a\xd2\x99\xc1\x6a\xa6\xc3\x38\x77\x79\xd5\xea\x07\x94\xe8\xe6\xde\xaf\x30\xff\x8a\xd2\xcc\x5f\x4c\xa6\xae\x90\xbc\x83\xff\x5c\xba\xcd\x79\x5c\x6b\x9f\xfc\xb4\x28\xc8\x72\xe8\xe5\x9f\xba\x81\x86\xf7\xbb\xab\x26\x26\xb5\x5a\x47\x49\x8e\x25\x2f\xb4\x71\x5a\x7c\x42\xce\xd1\x11\x18\x52\x12\x6d\x45\x7d\x73\x71\xb3\x40\xc7\x69\x6e\xc3\x49\x37\x49\x26\xbe\xc6\x5a\xc7\x82\x64\xf0\x84\xd6\xb7\x03\x04\xd1\xae\xba\xd4\x0a\xae\x58\x72\x3a\x89\x23\x1d\xf8\xc7\x36\x0d\x2e\x74\x16\x93\x23\x02\x32\x73\xab\xc9\x4f\xc9\x74\x80\x0a\x94\x24\x04\xd0\xdc\x55\x58\x48\x99\xff\x41\x79\x14\x39\x57\x10\x64\xf2\xfb\x77\x9e\xc7\x1c\xeb\xa6\xb4\x7a\x88\xf3\x5d\x55\x0f\x8d\x73\xb5\xce\x65\x88\x6d\xcf\xa2\x2c\x3e\x5f\xb9\xc7\xaf\x83\xe5\xa9\x0b\x21\x6e\x2f\x70\x4d\xf3\xd2\x4c\x92\x48\x8e\x43\x85\x0e\x74\xe5\x7f\x9b\x5c\x4a\xa9\xc4\x56\x28\x2f\x2f\xb6\x3b\x38\xea\x0d\x6a\xa6\x13\x54\x98\x3b\xbd\x9c\x5a\x82\xe5\x59\xa2\x4d\xcf\xe9\xd0\x3c\x30\x52\xba\xea\x2c\xae\x54\xdf\x1f\x6e\x8b\x66\xe0\x02\xac\x35\x8f\xe3\x38\xf2\x06\xf0\x1a\xd5\x09\xfa\xda\xbe\xe6\x79\x8e\xe8\xcf\xee\xf6\x76\xa3\x68\x53\x8b\x2c\x12\x64\x71\xd4\x5e\x2c\xd9\x01\x35\xeb\xe6\x11\xb8\xbe\x58\x8b\x44\x81\x7f\x5c\xa7\x9e\xee\xdf\xf0\x93\xa0\x50\x0b\x9e\x29\x2f\xe9\x8d\xbb\xdb\x6a\xff\xd5\xdf\x8c\x89\x10\xde\xd0\x63\x51\x6d\x82\xed\xd4\xad\xc6\xd7\x92\x09\xb8\x92\xe4\xad\x68\xc5\xb8\x0d\xa3\x65\x4a\xaa\xdd\x94\xd7\xee\x41\x9c\xc6\x26\xe1\x93\xf7\x2e\x19\x50\xb9\xa5\x8b\x1e\x90\xdd\x3e\x1f\x83\x68\x09\xa4\x17\xf5\x22\xa6\x48\x7b\x2d\x8d\xc1\x96\xe3\x72\xfb\xe7\xd3\x7e\x73\xfb\x7c\xb3\x70\x39\x94\x56\x41\x84\x9a\xce\xd8\x57\x5d\x9d\xce\x45\x0d\xc3\x7d\x43\xab\x98\x48\x6b\x2e\xb2\xb9\xab\xea\xfd\x7b\xf5\x27\x08\x3f\x9d\x14\x30\xec\x01\x59\xed\xbf\xaf\x8b\xed\xea\xb0\xb9\x3b\xdc\xaf\xbe\x2c\xee\x5d\xf5\x56\x43\x4a\xc8\x36\x6b\xc8\x54\x90\xde\xfb\xae\x15\x27\xaa\xb3\x84\xee\x56\x21\xcf\xb0\x64\xff\x2a\x9a\x45\xf9\xb1\x68\xdb\xba\x19\x47\x10\x6e\xb8\x03\x8f\xf0\xb9\x88\x1f\x2f\x64\x2c\x57\x94\x84\x07\x73\xc7\x85\x74\x14\xf5\xeb\x88\xe5\xd7\x19\x82\x36\x52\x08\x52\xa3\x42\xca\xe7\xe2\x6e\xff\xfb\x0e\x7e\xf8\x87\x02\x41\x24\x23\x2f\x16\xa1\x8b\x1f\x45\x69\xd1\xf2\x94\xdc\xfa\xd3\x44\xe2\xe4\xe3\x7a\x3d\x82\xd1\xdb\x85\x90\x05\xc2\x71\x12\x1d\x60\xe8\xe6\x03\xad\xfb\x61\x3d\x96\x7a\x82\x50\x73\x6c\x07\x90\x0e\x27\x7e\x21\x06\x2d\xb3\xc5\x43\x88\x52\xc3\x2c\x7e\xe7\x7b\x51\xce\x81\x8d\x21\x52\x31\x66\x59\xb4\x4e\xde\x54\x52\xdc\x74\x81\xc8\xe8\x59\x40\xa4\xf3\x48\xf4\xd4\x94\x9b\xfd\x72\x4a\x05\x9a\x4e\xc9\xd1\x4d\x47\x40\x7e\x0c\x8b\xa8\x17\x98\x79\x12\x75\xdb\x67\x4d\x90\x04\x21\x62\x2a\x17\x2f\x75\x81\x8a\x65\x28\xef\xee\x0f\x4a\xec\x3b\x62\xb5\xf1\xae\x5b\x6a\xbe\x03\xbc\xf9\xa3\xb1\xc1\x2a\xcd\xa9\x28\xdb\xf1\x54\xfc\xc7\x78\x11\x1d\xbf\x60\x48\xc0\xe0\x63\x37\x47\x67\xa1\xa9\x21\xe5\x54\x4d\x78\x12\x93\xf5\x12\x52\x93\x32\x72\x40\xb8\x5f\x2d\x76\xab\xc3\xfa\x71\xbf\xda\x7e\xf3\x40\x61\xc8\x58\x90\x58\x77\x89\x27\xef\x1c\x3e\x3f\x9d\x21\x4f\x00\xb3\xeb\x63\xa1\xa0\x6c\x60\x12\x0d\x41\xae\x09\xc0\x8c\xdc\xa7\x85\x42\x68\x04\x6a\x17\x6d\x2e\xed\xc6\x5c\xa9\x6f\x6b\xc8\x0d\xc7\x8a\x5f\x23\x7e\x4c\xc3\x9d\xc9\x6f\xe6\x31\x60\x9b\xf2\x11\xde\x71\x98\xce\x2f\x23\xc0\x79\x8e\x90\x2c\x0f\xea\xde\x6e\xdc\x62\x01\xdc\x44\x58\xc0\xc4\xb2\xd2\x20\x25\x06\x91\x67\xa8\xea\x25\x2f\x1f\xf7\x55\x6f\x5c\x31\xa3\xe4\xd2\xfb\x61\xc4\x76\xbb\x06\x19\x26\x18\xb9\x9f\x44\x73\x25\x7a\x3d\xe2\xed\x8c\x1f\x95\xcc\x25\x3a\x3d\x3f\x08\xca\x62\x1d\x54\x1d\xa4\x61\x78\xbd\xed\x67\x8c\x8d\xab\x09\x0f\x4a\x87\x38\x4a\xef\x9e\x1d\xd4\x16\x74\x46\x16\xfd\x87\x17\x68\x6f\xea\x42\xdb\x19\x77\xa5\x35\x03\x3a\x33\xe8\x25\xf7\x4f\x68\x2e\xcd\x44\x4d\x51\x83\x16\x01\xe2\x38\x0f\xe4\x8b\x31\xa8\x97\x00\x44\x21\xd2\x2c\x96\x1f\xd2\x96\x7d\x7e\xf3\x47\x08\xcf\xd4\x5d\x48\x1d\xab\xa6\x28\x5f\x06\x69\x05\x80\x85\xc0\xd7\x42\x81\xd3\xd5\x1c\x95\xb9\xc7\x43\x0e\x18\xc7\x28\x72\xf7\x8e\x2a\x1c\x9f\xbc\xf7\x2e\x7d\x0f\xc9\xbf\xc3\x91\x67\x5c\x7b\x66\x32\x1d\x0c\x4f\x06\xde\xa4\x7f\x85\xf4\xfd\xa5\x90\x25\x1b\x2f\x16\x86\x1b\x62\x78\x15\xa7\x73\x17\x07\x5e\xa1\x21\xc0\x88\x00\x59\x50\x77\x55\xa9\x2b\xc7\x20\xfa\x45\x1a\x02\x46\x24\x48\xe0\xef\xf2\x8f\xdb\x68\xdf\x57\x60\xc1\x40\x1e\xd8\x5d\xfa\x7e\xb3\x94\x57\x1d\x07\x13\x84\x19\xaa\x74\x5b\x95\x6c\xaa\x40\xff\xe6\x0e\xa6\x42\x3a\xa6\xed\xf5\xb4\x34\x51\x00\xa4\x59\x4a\xb8\xb6\xdd\x47\x89\x18\x5e\x18\x6e\x51\x26\x8e\x94\x90\x7d\x06\x4a\x10\xec\xef\x50\xf8\xe3\x52\x65\xc4\x66\xff\x51\x34\xfd\xa7\xa4\xc6\x4f\x7d\x81\xf6\xe1\x83\x1a\xd0\xf6\x48\x92\x52\x4e\x7d\x57\x5d\xea\x7b\x10\x66\x79\xac\xbc\x85\xb6\x36\x49\x66\xc3\xde\xe2\x9a\xcd\x39\x43\xea\xcc\x92\xf1\x3f\xee\x2a\x3a\x93\xc9\x20\xca\x1c\xc8\xdf\xbb\xf8\xdb\xa4\x79\x82\xa8\x71\x07\x78\x1c\x6f\xe0\xb9\x3d\x2b\xeb\x02\x25\x07\x9b\xe8\x3d\x80\xd1\x0b\x2b\x9c\x3c\xce\x3c\x49\x64\xe4\x0c\x0f\x2e\xa5\x86\xda\xd9\xce\x8d\xcf\xe3\x01\xa0\xbb\xcb\xb6\x3a\x42\x13\xdd\x17\xb2\x16\xf5\xc7\xa2\xd4\x28\x7b\xef\xfe\xdf\xb1\x7a\xe4\x78\xb2\x18\x1e\x2b\x44\x6d\x61\x5b\x6e\x98\x84\x18\x6e\xc1\xf9\xfe\x4e\xff\x8e\x9a\x6b\x3f\xdd\x0d\x97\xb9\xcb\xa7\x88\x89\xa5\x26\x35\x6e\x23\x03\x11\x11\x66\xfd\xdb\x7e\xc4\x88\x37\x32\x92\xd4\x09\xc4\x8e\x50\xef\x0f\xe2\x0e\xa7\x64\x11\xd9\x00\x51\x07\xa7\x3b\xbd\x91\x2a\x89\x73\xaf\xd7\xd3\x77\x08\x67\x57\x43\x23\x15\xc3\xf7\xf7\xb0\x7e\x5c\x3f\x2c\xee\x0f\x4f\xcf\xdb\xe5\xd7\xc5\x6e\xe5\xbf\x0e\xa2\x88\x10\x7c\x8b\xd2\x01\x69\xa6\xdf\xa8\xa2\x40\xd8\x0a\x55\x97\x92\x7a\x75\xea\xf1\x8c\x37\x3a\xe2\x18\x0c\xdf\x6c\x9e\xf7\xbb\xa7\xed\xe6\x40\xc6\xdc\xee\x9b\x74\x1e\x81\x83\xf9\x74\x91\xf2\x4a\xd4\x94\x5c\xcf\xdf\xb8\xce\x13\x74\x87\xda\x6d\x1e\xd7\xcb\xd1\xeb\x99\xfb\x6a\x99\x6b\xf2\x0a\xa1\x96\xdf\xe2\x8a\xbb\x30\xbb\x9c\x1a\x88\x08\xe5\x4d\xcb\xdf\xb7\xe2\x8a\x5b\x3b\xbf\xc7\x18\x13\x12\x75\xec\x2c\x2e\x0d\x0c\xe4\xf4\xe7\xc7\xa1\x49\x59\xda\x1b\x24\x59\x87\x56\x1f\x2d\x5c\xd5\x0a\x20\x08\x74\x82\xb0\x12\x2f\x74\x82\x56\x91\x73\x0b\xf4\xf0\xb6\x20\x08\xf3\x08\x4b\xb3\xf4\x45\xeb\xe5\x66\xe0\xf2\x06\x41\x08\x21\x58\xf7\x8f\xb1\x24\x35\x04\x51\x18\x23\xae\x95\x48\x5d\x1b\xb3\xb5\x36\xcf\x4b\x24\x4a\x0d\x7f\x0d\x04\x49\x9a\x1b\x6b\xa1\x47\x81\xe8\xb4\x11\x38\x39\x5d\x30\xec\xf5\x16\xcd\xed\xe2\x7c\xde\x82\xd0\x1f\xee\x86\x12\x15\x62\x1a\xfc\x5a\xbc\xbc\x0e\x85\x6e\x16\x68\x28\x3c\xbe\x4c\x1a\x65\x49\xdf\x0b\x46\x0a\x93\x82\x73\x5b\xa1\x9f\x23\xd9\xc8\xb8\x33\xe3\x8c\x44\x9c\x09\x9c\x37\xa8\x90\xf9\x33\x98\xc6\xd2\x1b\x05\xdf\xf7\xab\x3f\x86\xc2\x72\x93\xef\xcd\xc2\x1c\x1f\x1a\x61\xf7\x9f\xcb\xb6\x38\xba\xcb\xe4\x51\x88\x55\x31\x45\x10\x75\x5b\x4e\x6c\xfc\x61\x1d\x49\xb2\x88\xa9\x7e\x7e\x5c\xc9\x22\x4d\xc7\x59\xdf\xf9\x85\x80\x33\x52\x9b\xa5\xdf\xda\xce\x2c\x4d\x33\xb5\x30\x08\x44\xc8\x1d\x7e\xdd\x52\x10\xbc\x44\xc8\xd5\xf2\x0a\x81\x4c\x25\x82\x87\x54\x37\x4d\x7a\x9b\x22\x54\xc6\xe8\x7b\x8c\xee\x64\xc9\x55\x62\x6d\xcd\x9a\x1e\xf4\x09\x81\xd4\x29\x6a\xfd\x4a\x51\x2a\xf4\xcb\xfd\x01\x75\x0b\xf5\xa8\xd1\x09\x81\x04\x63\x45\xbd\x4f\xa2\x18\x51\x1e\x20\xd0\x29\x51\x17\x84\x76\xf6\x46\xfb\xea\xe6\x28\xd4\xdb\xd0\x34\x69\xf2\x4b\xb5\x21\x87\x06\x52\x4e\x77\x36\x90\xe3\x73\x20\xe4\x88\x6b\xe9\xe2\xa4\x52\xef\xae\x0a\x23\x10\x18\x16\x60\x83\xf6\x41\x88\xff\x76\xa9\x90\xfb\x33\x8f\xa4\xcd\x5a\x5f\x89\x0f\xd8\x97\x20\xc6\x1b\xe9\x67\xeb\x03\x04\xc6\x30\xdd\xfd\xa8\xe5\x6e\xd7\xce\x79\x81\x0f\xef\x23\x0c\x18\x19\x61\xbf\x9f\xac\xb7\x71\x18\x51\x57\x26\x8c\x98\x3b\x85\x87\x28\x2d\xe1\x58\xd1\xb7\x15\x34\x58\x22\x5c\xfd\xec\x9e\xd2\xe8\x65\x85\x81\x32\x8c\x8d\x7a\x62\x73\xa2\x29\x10\x86\x26\xc2\xa2\xcf\x8f\x41\xef\xd9\x2d\x41\x61\x14\x90\x91\xdd\xa1\x11\x06\xdc\xe8\xed\x86\xf8\x75\x1c\x6e\x3f\x11\x73\xeb\xd7\xa4\x2a\xdc\xf7\x5d\xfd\xa8\xaf\x36\x59\xa8\x12\x84\xb1\x34\x32\xf7\x63\xef\xbe\x12\xa5\x07\x1b\xbb\xf8\x83\xf7\xab\x62\x4e\xff\x19\x47\xff\x4a\xfe\x3d\xf9\xce\x24\x01\xec\x36\x37\xe7\x42\xc1\xf3\x79\xf4\x7e\xc3\x24\xd3\xf1\x50\x73\xe8\xbb\x97\x7d\x83\x2e\x4b\x41\x11\x90\xfd\x7a\xb5\x8d\x57\x8f\xb7\xfd\xdf\x55\x48\x1e\x7a\xa7\xb3\x9f\x3d\x45\xa5\x37\xc6\x9f\x21\x12\x54\xfa\x23\x4e\xd8\x00\xf8\x02\x61\xa2\xa9\x83\xf0\x54\xd0\xaa\x73\xe3\x5b\x01\x10\x26\x00\x88\x14\xba\xe9\x92\xce\xaf\x8b\xed\xed\x61\xb9\x78\x42\x47\xcf\xed\xe6\x79\xf0\xfd\x26\x0c\xc8\x12\xb7\x21\xbc\xc8\xf8\xf7\xa6\x59\x92\x0b\x67\x14\x24\x48\x25\xc0\x8d\x91\x94\x49\xc4\x09\x58\xa1\x1c\x67\xd6\x7b\x65\x6f\x6a\x4f\xcf\x02\xb0\xf8\x79\x51\xab\xd7\x45\xa9\x6f\x8a\xf9\x62\x2f\x84\x59\xc8\xb1\xf6\x71\xe8\x16\x41\xbb\xcc\xfd\x9a\x91\xef\x3f\x28\x71\xe3\x5b\x94\x2f\x70\x9c\x68\xfe\x42\x98\xa5\x0c\xab\x3e\xb4\x5b\xad\x7e\x9e\x91\xe7\x63\xa3\x99\x31\xaa\x64\x74\xd5\xdc\x90\x87\xc0\xd7\xea\xff\xe3\xec\xdd\xba\x1b\xc5\xb5\xb6\xd1\xff\xf2\x5d\xd5\x45\x5f\x08\x01\x02\xf6\x9d\x4f\x49\xf9\xed\x38\xce\x1b\xbb\xaa\xba\xd7\x1a\x7b\x78\xe8\x30\xe5\xd0\xc1\xe0\x06\x9c\x94\xfb\xd7\xef\xc1\x94\xc4\xc9\x24\xd5\xfb\x5b\x37\xd5\x2b\x92\x31\x06\x69\x6a\x1e\x9e\xf9\x3c\x55\xdd\x6b\xf8\x06\x2f\x06\x41\x84\xe3\x19\xf3\x96\xc0\x55\xd6\x92\x87\x83\x97\x04\x1e\x9e\x0b\x75\x73\x1f\xd8\x3e\xb2\x83\xfa\xb1\xa8\x11\x88\xd5\x3c\xec\xc7\xa2\xee\x55\x80\xc1\xe3\x11\x41\xa8\x9d\x89\x60\x9e\x4a\xd8\xdf\xaf\x86\x9a\x00\xe0\x71\xae\xb1\xc8\xf2\x3d\xcd\x87\x34\xfa\xe0\x71\x2d\x10\x28\x7f\x18\x90\xdd\x7e\x7e\x82\x7b\x82\xc4\x98\xe9\x71\x29\x3a\x27\x4e\xd9\x2e\x5c\xa1\x22\x2c\x41\x38\xf6\x5b\xa7\x27\x0d\xd0\x33\xcb\x9e\xf4\x42\x3f\x76\x60\x87\x52\xcd\xaf\xb7\x29\x23\xf0\x64\xe2\x63\x66\x8c\x0b\x9e\xab\xa1\x0c\x04\x78\x52\x53\xa3\x7a\x8b\x3f\xbe\x6d\x13\xe9\x49\x42\x81\xa7\x18\x18\x34\x36\x54\xf5\x0c\xcd\xac\x81\xfe\xb9\x71\x50\x5e\x6c\x33\xc6\x0f\xbc\xaa\x37\x69\x06\x55\x5d\xe4\xa6\x28\x50\xcd\xea\x6e\x9e\x31\x44\x73\x40\x9d\xa6\xbf\x2f\x69\x59\x42\xb6\xbc\xbc\xb6\xef\x4e\x87\x0c\x3b\x6e\x5f\x8a\x4c\x35\x01\x34\xff\x39\xec\x5a\x05\x4f\x6b\xa9\x92\x4e\xe3\xbd\x53\x17\xef\xa2\x74\xa0\xc4\x37\x15\x9e\x42\x63\x32\x1d\x1b\xe5\x76\xe9\x31\x6f\x2d\xc7\xf0\x9c\xa1\x24\x10\x78\x36\x29\x30\x78\xef\x2f\x37\xc3\xe8\x5b\x9b\x6c\xe9\xc3\x76\xf1\xfb\xfa\xf1\xbe\xd9\xd3\xeb\xad\xdb\xd0\x94\x68\x85\x9e\xd5\xdf\x17\x28\xaf\x4e\x46\xb3\xff\xca\xa9\xc7\x4d\xe7\x57\x05\xb9\xb2\x70\xba\x1e\x08\x75\x5f\xec\x97\x2b\x77\x31\x4f\x0b\x6c\x2b\xb9\x2f\x32\xe8\x97\x04\x81\x52\x02\xd2\x69\x7f\xce\x94\x53\xa3\xbf\xe3\x69\x56\xcd\x44\xf1\x06\xdb\x37\x28\x75\xe6\x5a\x4a\x81\xd2\xc4\xc7\x78\x78\xb5\x9e\x4f\x2a\x88\x0d\x56\x25\xf5\x09\xf1\x49\xdb\xc2\x88\x0d\x68\x4d\x14\xab\x0c\x97\xe2\xf0\xa1\xf8\x7e\x80\x3d\xdd\x48\xa1\x6a\xdb\xf6\x7b\x5d\x24\xe3\x2b\x43\x6c\xfa\x9c\xd7\xff\xfb\x6d\xbd\xc4\xfe\x68\x8b\x15\x46\xdb\xd8\xe6\xed\x81\xfa\xda\x94\x44\x72\x78\x6f\x0e\x8c\x49\x4e\xd3\xff\xbf\xf8\x11\xa0\x81\xa7\x30\x9b\xfe\x50\x1c\x77\x50\x4f\xec\x12\x1a\xc4\x71\xe0\xb7\x50\xb3\x6d\x0e\xa3\xf1\x30\x14\xc2\x7a\x5d\xcd\x51\xf9\x0a\xc3\x48\x10\x28\x63\x1c\xad\x67\x5d\x9c\xdc\x6f\x61\x91\xc0\x44\x12\x48\x55\x71\x0b\x3f\x1d\x94\x3d\x3e\x01\xd3\x01\x8d\xa2\x08\xed\xd2\x3c\x3d\xca\x17\x5e\xef\xa7\x1c\x8c\x9b\x18\x09\x68\xc4\x69\xe7\x1e\x1e\x8b\xdb\xaa\x3f\xd0\x38\xa1\xb8\x58\x9f\xa1\x6a\x1c\x6a\xc3\xc7\x60\xc7\x78\xa2\x59\x5b\x62\x5f\xd5\x2f\x5d\x63\xa6\x9d\x20\x19\x57\x61\x4f\xeb\xe8\x0e\xa0\x47\x13\x0a\x54\x82\xaf\x2d\xfe\xe1\xc1\x1d\x49\x76\x48\x79\x91\x6f\xe9\xc4\x77\x90\xe9\xad\xd6\xed\x88\xaf\x91\x8d\xcf\x20\x45\x7f\xff\xbe\xdf\x17\x7d\x1b\x4d\x95\x56\x48\x7f\x6f\x5c\xe5\xbb\xa2\xa8\x45\x63\xa2\xca\xc6\xc4\xfc\xab\x02\x01\x50\x2d\xe3\xc8\x92\x7a\xce\xca\x3a\x95\x19\x7c\xbd\xad\x87\x77\x73\x51\x1e\xde\xf2\x50\x2d\xc6\xb1\x4f\x3b\x0d\x9c\xf9\x75\xc6\x68\x9d\xeb\x62\xda\x71\xf2\x49\x92\x20\xd4\x11\x75\x7b\xe7\x85\xc3\x89\x83\xef\x45\x81\xe4\x9d\xbc\x72\x2b\xa7\x3f\xed\x15\xfb\x34\x31\xcc\x67\xe2\xfa\x0f\xcf\xeb\x34\x37\xb2\xef\x56\x2f\x7a\xe8\x23\xfa\x41\xc4\x51\xc3\x4c\xbb\x9e\x21\xcf\xdd\x4d\x90\xc4\xe8\xa8\x2c\x9d\x0e\xee\x5a\x41\x5e\xa7\xf5\x30\x91\x0e\x7e\xc8\xc0\xb7\x49\x81\xc6\x15\xa1\x5f\xa6\x12\x4d\xbf\x0d\x2e\x1d\x79\x01\x02\xa3\xd0\x16\x4e\xd8\x0e\x3f\xf2\x05\xba\xb9\x2f\x50\x16\x5b\xbd\x7f\x81\x27\xc7\xc2\x0c\x7e\xc4\x0c\xf0\x5d\x5c\xae\x07\x6c\xa8\xb1\x7f\x8f\x89\x61\xf5\x3b\x15\x45\x8e\x84\xa6\xed\x80\x0f\x32\x42\x4e\x45\x78\x67\x71\xfb\xd7\x04\x5c\x9d\xd7\x45\x7d\x4d\x70\xe8\x86\x93\x80\xa1\x13\xdb\x66\xcc\x17\x45\x35\x9d\x5a\x01\x3f\x49\x42\xca\x3b\x5f\x6d\x07\xf2\x52\x42\x87\x0e\x6f\x26\xb4\x60\x95\x6f\x65\x36\xab\x5d\xbf\xe3\xa7\x2e\x80\xcf\x23\x82\x58\xd9\x05\x3a\xc7\xc5\x07\x31\x90\x2f\x48\x60\xaa\x0b\x18\xc4\x3e\x19\xfc\x83\x2c\xb9\xe9\x43\xa1\xb3\xdb\xce\x04\xf0\x05\x30\x3c\x68\x9d\x77\x61\x8e\x73\xe7\x96\xfb\x52\xfa\xbc\x23\x40\xdd\x17\x19\x94\x83\x1c\xca\x14\x37\x68\xf3\x29\xed\x18\x69\x2e\x99\x7a\xc6\x8d\x6a\xb9\xaf\x46\x8b\x0e\xdb\x17\x5a\xfc\xd7\xb1\xaf\x0c\x05\xbe\x04\x6d\xb5\x5d\x8a\xf3\x9e\xbf\xf6\x2b\x97\xe0\xab\x84\x62\xce\xeb\x94\xe6\xf5\x86\x97\xc7\x36\x88\x1c\x9d\x02\x2e\x56\xe8\x89\x76\x1b\xb5\x6e\xe4\xcd\xea\xe9\x0c\xda\xeb\x42\x6c\x1a\x51\x7e\x2f\xca\xd7\xc1\x17\xea\x98\xa1\x4a\x91\x8d\xed\x47\xcf\x51\x6b\x8d\x1c\x27\xdb\xc7\x3d\x46\x16\x7d\x28\x10\x04\x5e\x48\x50\x78\xe5\x64\x04\xe3\x4d\x8b\xc7\x3a\xbf\x2b\x8b\xd3\x2e\x15\x59\xb7\x76\x03\x2f\x89\x0d\xd3\xcb\x19\xf2\xdf\xff\x5c\xb4\x7f\x56\x11\x62\xd8\x1f\xe1\x7d\x9d\xd7\x8d\xe7\x2c\x5f\x36\xa0\xd2\xa1\x4e\x32\x04\x34\x0c\xb0\x09\xa6\xb6\x12\x3f\x96\x58\xdd\x5d\x86\x26\x81\x29\x22\x23\xdb\x42\x0d\x18\xcc\xce\xaf\x1b\x68\xce\xe4\x89\x72\xca\x87\x9c\x87\x10\x50\x21\x1c\x37\xad\x21\x31\x5a\xc2\x5b\xb3\x81\xfb\xcd\x09\x10\x50\xcd\x31\xf0\xdc\x43\x26\x1b\x67\x74\x78\xb7\x7e\xa8\xb1\x97\x78\x07\x75\x8f\x32\x77\x76\x2c\xa7\xc4\x6c\x87\x06\x35\xf0\x05\x91\xd6\xcc\xab\xb4\x2e\xca\x69\x21\x64\x08\x7c\x49\x1c\x46\xa1\xf1\xed\xf2\x1e\x0d\x41\x37\x03\xd7\xe0\xa2\xe4\x28\x1c\xd9\x6f\x68\xb2\x53\x82\x30\x42\xcb\x76\x0f\xf9\xe2\x25\x3d\xcf\xaf\x86\xad\xf2\x07\xf2\xa6\x7c\x19\x82\x15\x46\x61\x73\x10\x72\x8a\x34\x49\x8b\xf2\x7a\xae\x8b\x65\xef\x6d\x84\x3a\x41\xb4\xee\xa6\x28\x66\xea\x6d\xf2\xd0\x1e\x3c\x72\x16\x27\xc8\x39\xe6\xa2\x87\x05\xb7\xdb\x29\xfc\x54\x46\x0c\x02\x66\x11\x80\x69\xf5\xc4\xaf\xe8\x01\xdb\x81\xc8\xe3\xa8\xe6\xf3\x5a\x9c\xce\x69\x0d\xf2\xa5\xbf\xe2\x83\x48\x80\x6e\x91\xb0\xc5\xa5\x89\x1b\x06\x14\x89\x10\x44\xc0\x88\x6b\x0b\x98\x65\xa9\x84\xf9\x98\xb2\x65\x24\xb7\x03\x41\xec\x1b\xac\x68\x85\xd2\x90\xeb\x2f\xed\x9f\x01\x17\x0a\xa6\x6b\x9b\x68\x72\x7b\x86\x1c\x73\x7a\x50\x8d\xf6\x5a\x10\xf3\x30\xb0\x46\xf4\x2b\x94\x85\x31\xf1\x93\x26\x31\x48\x22\x53\x03\xef\xa0\x1d\xb3\x2c\x4b\xf3\x74\x90\x70\x0a\x38\xd3\xa4\x05\x38\x2d\x78\xfe\x86\x42\xdf\x28\x5b\x5f\xb8\x1c\xe0\x65\xc0\xa1\x3b\xfa\x1a\x9e\x18\xc8\xda\x09\x21\x84\x78\xdb\x2d\xbb\x1d\x04\x1c\x0c\x04\x0a\x81\x02\xef\xbc\x54\x43\x5a\xb6\xd1\x03\x92\x01\xc7\x2c\xf7\xbe\xbc\xc0\x5d\x96\x9e\x6f\xdb\x32\x21\x90\x3a\x90\x26\x43\x86\x84\x3e\x3d\xb8\x3d\x04\x8a\x78\x78\x2a\xbe\xf1\x2c\xc5\x22\xee\xf0\xf2\x8a\x31\xcc\x8f\x20\xa4\xed\x96\xac\xa0\x99\xa0\x15\x52\x9c\xf1\x32\x6d\x0c\x99\x91\xf0\x74\x83\xc2\xf4\x93\x0e\x64\x81\x6d\x91\xb2\xb5\x76\x4a\x19\x4d\x20\x87\x06\x39\xc1\xf3\xe2\xf3\xb4\x40\x00\x01\x45\x55\x4c\x53\x85\xdb\xf0\x9c\x8f\x6b\x0e\x10\x40\xc8\xd1\x32\xeb\x34\x57\x9d\x14\xa7\x1b\x8c\x03\x13\x99\x3b\x8e\x88\xc5\xd7\xf5\xa2\x55\xa0\x6b\xc6\x0d\xbb\xbc\xf1\x0a\x1f\xe1\x67\xfd\x54\xc2\x29\xbd\x9c\x5a\x15\x9f\x78\x7c\x4b\x82\xf5\x52\xf4\x7f\x2c\x9f\x9f\x6f\x1f\x26\xe8\x30\x6a\x79\xee\x2b\x9b\x58\x01\x75\x57\x94\xb3\x1b\x88\xf6\xff\xed\xbf\xed\x57\x01\x3a\xdb\x69\x8e\x85\xe6\xcb\x10\x76\x3b\x34\x8e\x21\x89\x02\x84\x0d\x3a\x01\x8b\x7b\x5e\xf5\xf3\xfe\x21\xd1\x91\x6b\x44\x99\xbd\xf1\x34\x6b\x6c\x82\x0d\x10\x6f\x9d\x91\xf6\x33\x09\x65\x6d\x6f\xc1\x43\x27\x87\x01\xa1\x47\x14\xda\x97\x1c\xa0\x95\x55\xe9\xaf\xc9\xd0\xf3\x05\x96\x3a\x9d\x97\x81\x36\x68\x78\x79\x4a\x03\x8a\xf5\xb3\xa2\x96\x2f\x69\xcf\x35\x6e\xc7\x35\xed\x0a\x19\x56\x6e\x6f\xf0\x36\x42\x2a\x83\x5e\x73\x98\xf5\x56\x27\x9a\xb8\xda\xe9\x1a\x43\x1b\xc8\x65\xa1\xd2\xfc\x78\xd0\x45\x79\xe2\xed\x8f\xf2\x01\xf0\x19\xbd\x15\x35\x3c\x62\x97\xeb\xfc\x3a\x53\xa7\xf4\x17\xf9\x9a\x30\x88\x62\x1e\xb4\xe5\x81\x05\x3f\x37\xbb\x68\xd4\x11\x00\x61\x90\x04\xa2\xe7\x11\x8c\x46\x43\xc6\xa4\xc9\xc4\x57\xd3\xe8\x44\x08\xc3\xc8\xb4\x14\x0c\x68\x67\xaa\xf1\x75\x22\x02\xa6\x94\x37\x04\xa1\xd9\x61\xe6\x13\x24\xee\x9f\xf3\x0a\x46\x69\xac\x90\x85\x09\x86\xe1\xd6\x99\x34\x98\x1e\x3a\xbe\x80\x0c\xc2\x3e\x30\xde\x10\xdb\x4e\xda\xc8\x90\x69\x1f\xd3\xc7\xa7\x22\x87\xeb\x47\xaa\xc6\x10\x46\x91\xa1\x7c\x76\x72\x77\x83\x03\x27\x8c\x62\xa9\x0c\x09\x44\x63\x21\x4e\x56\x03\xad\xc7\xc3\xe4\x6e\x3f\x52\xb1\x0b\x3d\x8d\xf6\xa7\xe3\x39\x1d\xfd\x82\xc4\x23\x86\x47\xdd\xb4\x83\xb8\x8f\x27\x34\x8c\xad\x14\x1a\x52\x69\xf4\x40\xb1\xa3\xfb\x4d\x58\x8c\x0c\xb5\x88\x1f\xaf\xbf\x7c\x82\x4b\x82\x30\x89\x3c\x4c\x31\xe7\xcd\x42\xcb\x96\x70\xba\x94\x25\x3f\x4e\x69\xab\x40\xc8\x43\x85\x48\x39\xb3\x98\xbf\xe5\xe9\x4d\x2f\x3a\x84\x9c\xf9\x68\x8d\xdd\x1a\x18\xd0\x17\x8c\xbe\x9b\x4b\x1f\x97\xf3\x5d\x5a\x9e\x78\x07\x72\x87\x50\x92\xc8\x57\xad\xea\x63\x3d\xd1\x2e\x07\xa1\xa4\x12\x7b\x13\xcf\x50\x36\x9b\xe4\xa3\x46\x67\x08\x65\xa0\xb1\xca\xa1\xad\xf2\xf7\x6e\x42\x70\xcc\x4d\x0d\x29\x31\x3d\x31\x8d\x5f\x74\xac\x46\x2f\x50\xc5\xc4\xc8\x22\xd6\xc0\xb3\x05\x2f\x51\x17\x77\xc4\x8c\x01\x21\x78\x26\x3e\xe9\x94\x9e\xcb\x42\xa7\xe3\x75\xde\xb8\xd5\x16\x2c\x68\x81\xbf\x87\x33\x94\x07\xe8\xaf\x56\x37\x95\x19\x59\xa6\xfa\x58\xee\xa0\xbe\x4b\xf3\xb4\x6a\xf9\xd2\x21\x74\xa7\x8c\xe3\x82\xe8\x65\x12\x43\x48\x34\xae\xef\xc5\xf6\xf9\x79\xb5\xe8\x68\xfd\x20\xd4\x89\xd9\x25\xf9\x10\xaa\x0c\xa1\xe6\x1e\x98\x0c\xa5\x2c\x72\xd5\x57\x70\x1b\x54\x11\x42\xad\x22\x5c\xa4\x58\x12\x19\x6d\x54\x46\x18\x20\xca\xd6\x91\xa3\xf5\x93\x21\x8c\xe8\x08\x95\x0d\xcc\x2a\xda\xf0\xb2\x4c\x9b\x28\xab\x2f\xaf\x3e\x38\x49\xfa\xa1\x10\xa3\xd4\xf4\xe4\xf2\xdc\xb0\x24\x59\x41\x8e\xfe\x86\x64\xd4\x37\x28\x9a\x23\x18\x90\x70\x9f\x0c\x01\x18\x8d\x04\xa6\x60\x4f\x69\x0e\x86\xa5\x0c\xf9\xbd\xdc\x68\xc2\xb1\x66\x77\xb0\x6a\x91\xfb\xe2\x82\xfe\x79\x5e\xcf\x8b\xa2\xfe\xb0\x0f\xcc\x7e\xda\x27\x8c\xb9\xfc\xe6\x81\x1d\x04\xaf\x52\xd9\x36\xd8\xba\xaa\x3f\xee\x88\x6a\x7e\xf5\x08\x21\xee\x6b\xfd\x80\x6a\xc7\x35\x28\xd2\x81\xb2\x3e\x30\x5f\x4a\x4c\xa6\x9f\x8b\xaa\xde\xf3\xea\xf5\x73\x00\x88\xfd\x50\x90\x08\xdf\x66\x9a\x1d\x99\xc3\xad\xb3\xc0\xc2\xd0\x50\x5b\x1e\x4c\x8d\xeb\x46\x3e\x10\x18\x0b\x15\xee\x9e\xed\xdd\xdd\xce\x91\x71\x03\x8b\x84\xc2\x5e\x7d\x4c\x06\x15\xe7\x2f\x43\x04\xe4\xf0\x0a\x31\x83\x00\x99\x9f\x65\xf1\x19\x7e\x65\xf0\x0a\x63\x66\x3c\x8b\x7f\xc3\x88\xdc\x27\x9b\x1e\x5e\x25\xf1\x0c\x60\xf7\xb5\x6b\x5f\x00\x96\xf8\x3e\x5a\x61\x0d\xb5\x7c\x79\xe2\xa9\xc2\x80\xd3\x48\xa4\x5c\xbb\x55\x9a\x84\x0a\x75\x3d\x0e\x5c\x29\x24\x22\x9e\x34\x9f\x2c\x49\x8c\x04\x8c\x2d\xe3\x7f\x47\x40\xd5\xd4\xb9\xc7\x12\xa9\x90\x57\x75\xb3\x7e\x3c\xcc\xd7\x2e\xf3\xce\x78\x22\xf0\xf4\x38\x97\x45\xa1\xf7\xd7\x33\x1c\x0c\x83\x87\x1b\x17\x7e\x80\xf4\x9e\xed\x71\xf6\x53\x62\xf1\xf9\xc6\x01\x67\x92\x08\xb4\xe4\x07\x97\x34\x32\xbd\x16\x5d\x57\xe7\xf0\xce\x25\x35\x5d\x22\x07\x38\xa5\xb5\x91\x6e\x9d\x52\x9b\x07\x26\x13\x8e\x13\x8d\x25\xd8\xa4\x79\x7a\xe2\xd9\x0f\x48\x47\xd7\x53\x7e\x88\xcd\x9a\xd6\x7b\xf8\x98\x69\x12\x98\x0a\x3c\x65\x71\x49\x03\xd5\x06\x60\xc0\x41\x87\x1d\x3b\x67\x63\x82\x3a\x5e\x9b\x66\x58\x23\xd9\xeb\x9f\xdb\x6f\x87\xf9\x6a\x7f\xd8\xac\x1f\x57\x87\xe5\x76\xf1\x6d\xb3\x7a\xdc\x1f\x76\x5f\x67\xa1\x47\xdb\xb9\x5a\x20\x6e\xcf\x9c\x64\xe8\x1b\x7e\xa8\x37\x69\x3f\xa2\x3d\x03\x68\xf9\xb1\x5a\xfd\xbe\x3b\x50\xe6\x2e\xa5\x63\xc3\x28\x83\xb5\xec\x87\xe2\xd8\xf3\xb7\xfa\xeb\x2d\x22\x89\xb4\x6d\x3e\xc6\x4f\xc0\x2e\xae\x5b\xac\x1e\x44\x44\x73\xf4\x81\xec\x41\x9a\xd5\xe9\x09\x33\x1f\xa8\x9f\x3b\x8d\x5a\xfc\xd4\xf0\x44\x9e\x88\x91\x99\x67\x9f\xf2\xfc\xef\x54\x70\xb3\xd3\x10\x83\xf6\x59\xf8\x1e\x79\xd2\x04\xdb\x7f\x5d\xca\x6b\x8b\xbd\xb4\x63\x94\x9b\x24\xe3\x7a\xb1\x3d\x3c\xad\x9e\x17\xab\xc7\xfd\xec\x7e\x75\x70\x79\xb8\xc8\xe7\xcc\x89\x9d\xb6\xb8\x0c\x14\x8a\xe0\xb7\x87\x70\xe4\x8b\xc0\xb3\x79\xd8\xf9\xe5\xea\x78\xa9\xfe\xee\x4b\xab\x7f\x6a\xcf\xa2\x80\x52\xf4\xb5\x77\x8b\xd9\xf3\x6c\xde\x87\xdf\x42\x14\x04\x02\xf1\xb0\x3b\xc8\x32\xd3\xb4\xf8\x11\x7e\xe5\xf3\xa7\x18\x30\x42\x83\x4e\xda\xbc\xbd\x3c\xa3\xf6\x48\x44\xce\xbd\xe6\x5b\x26\xa1\xfd\x6e\x7a\x62\x54\xe4\x14\x4a\x3a\xba\x8b\x44\x81\x29\x4e\x95\x3c\xad\xb0\x08\xda\x1c\x3b\x23\x68\xec\x38\x69\x19\x45\x52\x63\x62\xe2\x99\x6b\x9d\x81\xec\x4a\xa7\x51\x4c\x81\xa0\x53\x93\x15\x45\xf9\x50\x1c\x0d\xce\x74\xf8\xe9\x38\xa0\xd8\xa2\x5b\xc9\x92\x9f\x7b\x0d\xc7\x38\xa2\x0d\xb3\x85\x01\x50\x19\xfb\xd0\x0e\x1a\xd0\x41\x13\xd3\x3a\x45\x97\x75\xbe\xe1\x3f\x57\x3f\xcf\xa6\x54\x32\xfa\x1a\x61\xe8\xcf\x67\xd6\x01\x51\xb8\x4d\x7a\x6e\x48\x94\x78\x11\x62\x9d\xef\x57\xdb\x4e\x5d\x01\xa2\x24\x30\xe6\x19\x5b\x74\xab\x56\xdc\xd9\x8d\x26\x82\xf4\x74\xae\x6a\xfe\x6a\x74\x64\x27\xd3\xbb\x51\xc2\x15\x5a\x9f\x63\xfa\x36\x19\x38\xba\x69\xca\x43\x46\x06\x04\xfa\x56\x97\x93\xe2\x35\x9f\xa4\x54\xb1\xe8\x53\x88\x38\x61\x98\x89\x3b\x38\x50\xcb\xfe\x08\x3b\xa8\x1f\xd2\xb7\xf6\x4e\x39\x15\x08\x01\xb5\x94\x96\xe3\x73\x6a\x78\x07\x9c\x11\xc4\xd2\x9a\x22\xe5\x94\xd0\x32\x44\x3c\x09\x30\x35\xbb\xc3\xf4\xd5\xb5\x06\x9f\xf6\xd0\x3d\x2e\xa2\x8e\x38\x8f\x50\xd4\xe7\xe9\x8f\xcd\xe2\x5f\x96\xd7\x22\x2e\x98\xd3\x55\x3b\x94\x56\x73\xb4\xff\xaa\x04\x4f\x70\xcd\x1c\xd2\x3c\xad\xe7\x5c\x1d\xe1\xdf\xb1\x01\x40\x24\x29\x97\x86\xda\x80\x97\x63\x34\x5e\x24\xed\x69\xea\xd2\x84\xc8\x73\x7a\x2b\x55\x0a\x91\xe4\x0c\xa1\x8e\x88\xb9\x45\x43\x32\xf4\xc1\x9b\x09\x58\x12\x3a\x81\x6a\xd6\x6d\x51\xb5\x8b\x5a\x2a\x21\x2c\x33\x1c\x96\x30\x9e\x8b\x62\x94\xda\x8f\x94\x6f\x1a\x12\x67\xdf\x37\x4b\xd3\xaf\xf9\x64\xde\x99\xbb\x06\x50\x1f\xb1\x02\xdf\x72\x97\x48\xfa\x3c\x49\x14\x41\xe8\x21\x55\xa8\xfd\xeb\xbe\xb0\x10\xae\xe1\x2c\xcd\x00\x21\x06\xcd\xbe\x7f\xba\x64\xd5\xa0\x6c\x10\x69\x49\x89\xf1\xe0\xe5\x5d\x51\x76\xcc\xcd\x10\x13\x9f\x63\xad\x2c\x2f\xb6\x7a\x07\xbc\x45\xed\xc5\x84\x79\x91\x8d\x05\x7b\xc5\xeb\xee\x3d\xc6\x24\x01\x84\xef\xae\xf6\x5f\x0f\xcb\xd5\x62\xbd\x99\x3d\xec\x06\x9c\xd4\x10\x7b\xbe\xc2\x1e\x13\xae\xd4\xfe\x52\x96\x26\xdf\x6d\xbc\x04\xd7\xda\x0e\xb1\xc7\x22\xcc\x22\xfe\x11\xcc\xfb\xf7\x1c\x7b\x31\xa0\x17\xb5\x4b\x9b\x9f\xbb\x68\xd6\xb2\x63\xbe\x99\x74\x94\x62\x0a\x02\xc3\xb5\x54\x16\x41\xdf\xdc\xc4\x3e\x31\xca\x14\x07\xb3\x23\x26\x3c\x9b\x38\x08\x95\xd7\xa7\x6c\xed\xf3\x46\x41\x1c\x42\x8c\x41\xdb\x66\xf6\x87\xd5\x97\xdf\xcd\x1e\x56\xed\xa8\x16\xc8\xe3\xf8\x57\x51\xfc\x95\xe6\xae\xcb\x07\x62\x46\x38\xb3\x39\xf8\xdd\x4b\x7a\x5e\xab\xca\xc1\x4f\xdc\x84\x84\x1b\x33\x88\x8d\xdf\xf6\x8f\x11\xf5\xb0\xbc\xaf\x78\x61\xf1\x7c\xa3\x95\x1e\x37\xc7\x62\x8f\xdf\x16\x21\xaa\xe3\xd8\x35\x8e\x22\x23\xdd\xfc\x9e\x7e\x48\x14\x34\x8c\x84\xdc\xe7\x34\xa3\x3d\x76\xbc\x1f\xe9\x3f\xbc\x54\xcf\x4f\xa3\xab\xc7\x24\x90\x49\x2b\x57\x0c\xe5\x2d\x81\x31\xc4\x71\x6c\x50\x35\xe7\xa2\x1e\xf7\x97\x40\x1c\xf3\x44\x42\xcb\xd1\x63\x5b\x80\xdd\x23\x88\x85\x17\xd8\x2c\x86\x83\x34\x0e\x3f\x9d\x70\x8a\x08\x2f\x27\x50\x58\xd7\x37\xf8\xe9\xd8\x4d\x15\x21\x3a\x82\xe2\xd2\x44\x43\xee\x1b\x12\x19\x63\xd7\xae\xe4\x99\xfc\x1d\xae\xd5\xb3\x95\x28\x9a\x3e\x6f\x63\x2e\x89\x23\x29\x9a\x19\x5e\x98\xe1\x4f\xe5\x90\x98\xd8\x2a\x7d\x03\x93\xeb\xfe\x60\x89\x8a\x50\x30\xe2\xa0\x07\xf2\x15\xe5\x77\x37\xc8\x94\x92\x5d\x31\x91\x82\x91\xc6\xf0\x23\x91\x87\xbd\x55\x69\xf5\xf5\xee\x4b\xfb\x37\x83\xba\x96\x45\x5e\x5d\xb2\x9a\xe7\x75\xd5\x83\xb7\xb9\x49\x02\xb0\xcc\x24\x0a\xb1\xe1\xaf\x50\xa1\xf6\xbd\xe5\x1c\x19\x1f\x71\xc3\x6a\x13\x25\xc3\x13\x25\x16\x92\xa3\x09\xe2\x59\x86\xd5\xea\x05\xcf\xe7\xf0\xcd\xd2\x78\xbb\xef\x53\xc4\xc8\x34\x1d\x50\x1e\xf6\xb1\x58\x58\x56\xca\x6e\x3c\x61\xaa\x55\x6c\x6c\xc2\x18\x14\xab\x9d\xd8\x8c\xca\x4b\x50\x86\xd5\x68\x65\x95\xc5\x69\x07\x6f\x50\xf2\x6c\x9c\x62\x6b\x4d\x88\xf2\x63\x8c\xf7\x6d\x01\xba\xe5\xf0\x75\xc3\x91\x11\x18\x2d\x0e\x19\x17\x8d\x35\xa9\x8b\xd1\x82\x52\xd2\x37\x05\xbb\xed\x7e\xf6\x60\x80\x88\x3b\xf7\x69\x84\x80\x22\xd3\x32\x7f\xef\x98\x14\xdd\x20\x35\x99\x9f\x1d\x4f\xf3\x7a\x56\xe6\xc5\x25\x53\xff\xc2\xa8\xc7\x10\x7a\x06\xa2\x70\x29\x73\x50\xb8\x0e\x9a\x28\xa4\xef\x42\xc5\x90\x84\xaa\x83\x05\x1a\x3e\xba\x8f\xf6\xf2\x7f\x5d\x65\xd7\x45\xaa\xf1\x7f\x3d\x1a\xdb\x3f\x0e\x9f\x2e\x08\x23\xfa\x7f\xe2\xaf\xb0\x93\x2f\x45\x91\x0d\xcc\xae\xd6\x14\x23\x8c\x7d\x2a\xf7\x5c\xee\x0b\x98\xa9\xbf\x2e\xd8\xe7\x53\x7c\xa8\x2f\x3b\x9d\xf8\x4b\x08\x25\x18\x32\xd8\x44\x47\xe7\xd5\xba\x71\x26\x91\xe8\xb2\x71\xeb\x9f\xca\xab\xac\x9d\xd2\x36\x24\x24\x31\x1d\x80\x58\x84\x73\x0a\x2c\x83\xdf\x91\x10\xc1\x0d\x5a\xa4\x38\x7f\x3b\x9b\x38\x64\xc2\xd3\xf5\x12\x7b\x32\x27\x1e\x65\xd8\x7f\xe6\x6a\x21\xef\x1f\xfe\x9a\x4f\xbd\x90\xc4\x63\x0a\x3b\xf1\x52\x9b\x6c\xe8\x8c\xc7\xf0\xfe\x3c\x08\x84\xdf\x2a\x63\xf2\x21\x36\xbb\xeb\xa1\x81\x84\xfa\x11\x8d\x1d\x27\x1f\xcf\x36\xc8\x16\xf3\x71\x21\x65\x78\x37\x54\x49\xe4\xc1\xcb\xe1\x7d\x9e\xaa\xa1\x33\x92\xf8\x82\x40\xd0\x82\x86\x66\xae\x6c\x36\x05\x58\xb5\x9f\x08\xa9\x1f\xd8\x1f\x67\x04\xa7\x5c\x4f\xb8\x6d\x14\xfb\xe0\x53\x9c\x63\x1d\x2b\xad\xb6\xf9\xa2\xe4\x1a\x09\x3c\x2e\x13\x99\xd2\x24\x14\x06\xac\xd1\xc9\xbe\xcd\xaf\x33\xe3\x7d\x4d\x3a\xb3\x09\x93\xb1\x21\xff\x84\xda\x09\xa9\x1c\x4e\x53\x85\xb2\x84\x59\xee\x32\xac\x37\x8e\x45\x62\x20\x89\x28\x09\x5b\xc6\xdc\x43\x51\x2a\x28\x77\x2f\x00\x63\xb9\xd0\x76\xb6\x46\x8b\xbf\x81\xfc\x42\xbc\x0f\x7e\x76\xa4\x99\x01\x92\x21\x93\xfc\xbe\x31\xe2\x9f\x67\xef\x92\x98\x52\x84\xe2\x6c\xf8\x31\x95\x1e\x99\xae\x19\x24\x89\x17\x22\xae\xf7\x7c\x78\xef\xc3\x4c\x13\xee\x0b\x23\xc3\x76\x06\x99\xb6\x65\xa6\x84\x33\x6e\xa9\xf8\xeb\xed\xad\x81\x18\x5e\x9a\x03\x43\xdf\xe1\xe9\x85\x97\x27\xfe\x23\xed\xae\x0d\x89\x67\x41\x69\xb3\xe7\x8f\x0e\xc2\x84\x6b\x43\x6a\x96\x56\x6e\x5d\x8c\xdb\x73\xfb\x0c\x81\xed\xd3\x14\x81\x8f\x3d\x60\x3d\x30\xd1\xc9\x41\xb8\x86\x5f\x20\xfd\xc4\x38\x16\x35\x9c\xf7\xef\xc5\x88\x7c\x06\x12\x60\x11\xb6\x56\xe9\xa2\x6c\x62\x2f\x8d\x1c\x6f\x55\x2a\xef\x00\x7a\x19\xb8\x04\x98\x71\xd4\x0d\x05\x77\x73\x81\x35\x92\x61\x1e\x61\xd4\xf0\x93\x68\x1a\x28\x89\x5e\x66\x06\x79\xfd\x58\xd4\xbc\xbc\xfe\x5a\xdb\x71\x74\x0d\x41\xcc\xe9\x61\x4f\x87\xc6\xd0\x21\x79\xe4\x67\x9b\x86\x13\x1a\xa8\xc4\x2d\x48\xb4\x8b\x2d\xe7\x0b\x70\x12\x33\xf3\xc4\xd0\xc3\x59\xf2\x34\xbb\xde\x6a\x3d\x02\xf7\x08\xb7\xc4\x02\x25\x62\x50\xd3\xfc\x78\x5f\xb4\x2b\x83\x7b\xa1\x71\xad\x97\xbc\x7c\x2d\x21\xcf\xb8\xa5\xe1\x77\xc3\x4c\x22\x0a\x18\x72\x85\xe2\x01\xf6\x01\xb9\xd1\x24\xc6\x65\xf5\x50\x1c\xe7\xa9\x32\x20\x2c\x18\x59\x18\x4e\xa9\x30\xde\x89\x2c\x0e\x55\x47\xa4\x01\x9c\xc6\x09\xb2\x04\x21\x1d\xc7\x7a\xec\xc1\x71\x0a\x0a\xa9\xb1\x4c\xfe\x4a\x3d\x59\xae\x27\x17\x13\xf3\x40\x18\x35\x1b\x47\xbb\x54\xd5\x56\xd7\xc0\xea\x7c\xdd\x64\x68\xa7\x42\x76\x1e\x12\x1f\x0f\xa0\x83\x95\x59\xf8\xcc\xf4\xf1\x50\x18\x47\x0b\x41\xda\x02\xb2\x9e\x2c\x84\x9b\xa1\x98\x11\x01\x78\x49\x75\x7d\x28\x6f\x50\x30\xdd\xb5\x98\xef\x23\xc1\x57\xdd\x95\x8c\xec\x0a\xdd\xb8\x07\xc4\x42\xc0\xa8\xdf\xde\xcc\xba\x9a\xc0\xdc\x72\x16\xb5\x32\x0b\x5f\xaf\xaa\x2c\xd6\x37\x42\x3d\x76\x62\x14\x86\xa1\x18\x20\x3e\x70\x3d\xf0\x32\xe5\x98\xd7\x70\x0e\x0b\x8f\x3d\x2e\xbc\x1e\x16\x6a\x51\xe4\x35\x54\xf5\x5d\x51\x76\x95\xe3\x9d\x7c\x81\x13\x1f\xa0\x91\x46\xcf\xd9\x5d\x2c\x62\xc2\x72\x39\x1b\x58\xc2\xf0\x29\x24\x81\x0f\x36\x09\x6b\x9c\x9b\x5c\xa7\x0e\xf2\xc5\x93\x88\xb8\x0e\x8e\xcd\x75\x9f\xca\x57\x40\x32\xeb\x2f\x83\x5c\xfb\xe8\x7a\x09\xc5\xc3\xe3\x85\x57\xeb\x3c\xad\x37\xbc\xac\x3b\x33\xc8\x13\x11\x61\xbc\xb1\x5e\x6c\x0f\xab\xed\xee\x30\x5b\x3f\x2f\x9f\xb7\x4f\xed\xb0\xa2\xb6\xef\xb8\x92\x97\x51\xdd\x78\x7a\x5f\x23\xd0\xd7\xd2\xb4\x7d\xe7\xb7\x27\xb2\x9d\xc5\x43\xa2\x82\x0e\xdc\xff\x84\x72\xdb\x56\xbc\xc8\xc8\x65\x3b\x23\xcb\x39\x50\xc4\xb3\x9d\x78\x55\x99\x9e\xbb\x7e\xa7\xbb\xc1\x9c\xdc\x15\xe5\x7d\x91\x29\xcc\x77\xf6\xc5\x89\xad\x87\xe7\xae\xa4\x8d\x24\xd7\x2c\x2f\xf2\xeb\xa9\xb8\x38\x2a\xf7\x0f\xd6\xb6\x20\x89\xb2\x2e\xc6\xe1\xdc\x61\xce\x7e\x95\x77\xe9\xb9\x93\xee\x42\x01\x60\x72\xe7\xfb\x76\xbb\xdc\x6e\xdd\xef\x92\x94\x43\x27\xa9\x72\x38\xdb\xf4\xd4\x64\xbc\x39\xca\x82\xdd\x04\x1f\xed\xe2\x92\x32\x42\x42\x9f\xe6\xd0\xb0\x2a\x8f\x9b\x34\x6f\x9c\x1c\x3b\x41\x51\x69\x61\x7d\xf5\xe1\x5c\xcb\x83\x98\xca\x74\x71\x15\x30\x2c\x8a\x9c\x2f\xf5\xbc\x46\x02\xca\x5d\xe7\xfe\x7f\x64\x3f\x3e\x7e\x20\x1f\x72\x23\x03\x57\x2a\x41\x83\xa9\x8a\x9c\xd7\x30\xab\x9a\xef\x42\xea\xee\xea\x72\x1a\x42\x47\x9d\x95\x03\xdf\x30\xec\xd9\x3b\xdf\x15\x59\x36\xba\x7b\x88\x34\xa6\x08\xea\x97\xb4\x54\x68\x9f\x2d\x39\xb1\x7b\x08\x9a\x08\xac\xbf\x72\x75\x9a\x7d\xe8\x62\x72\xed\x19\xbe\x9d\x5e\x0b\xce\xa8\xcb\x73\xb4\x60\x74\x12\xa2\x7c\x6b\x0e\xa0\xf6\xc5\x3d\xd4\x77\x25\xb4\xb6\x5d\x0b\x2f\x56\x5d\x53\xcd\xf0\x96\x9b\xb3\xd0\xe1\xd4\x76\x45\x76\xb9\x49\xd8\xb8\x17\x2c\x3c\xa2\xd1\xe5\x38\x97\xcd\xe9\xdc\xea\xd4\x80\xa0\x5e\x80\xce\x97\x4b\xf7\xfe\x2a\xec\x70\x1f\xa3\x1a\x33\x6b\xc8\xc8\x06\x6a\xc5\xcb\x91\x77\x21\x68\x10\x25\x36\x7f\xf7\xfb\x55\x0e\x10\x74\x6e\x46\xe4\xa3\x4b\xe7\xb0\x05\x8b\xb2\xf3\x2a\x84\x1f\x1a\xff\xab\xeb\xd0\x9c\xec\x96\x11\x01\x89\xb1\xe1\xb5\x89\x84\x5d\x44\x23\x02\xcf\x8f\xad\xe7\xdb\x58\xd6\x07\xd0\xf5\x13\x57\xed\x68\xa0\x48\x4b\xcf\xb6\x3b\x67\x69\xe3\xb7\x8c\xee\x3e\xf4\x34\xb1\x80\x3a\xa3\x24\xfb\x01\xed\x05\x08\x46\x58\xe8\x14\xc6\xca\xe2\x32\x42\x0c\x09\xa6\x84\xe1\xb2\x4e\x4f\x70\x28\xb4\x01\x07\x1c\xaa\x77\x7e\x3e\x40\x5b\x4e\x10\x51\xe2\xa1\x7f\x82\x8c\x72\x3d\xe7\x4a\x44\x42\xc6\x2d\xfc\xab\xed\xbb\x2a\x8b\xd3\x87\x35\x91\x51\xbc\x2e\x22\x08\x7c\xd9\x36\x66\x6e\xf3\x45\x71\x3a\x67\x60\x4b\xc7\x0e\x25\x2f\xe2\xd8\x68\xc7\x54\x50\xf7\x9b\xa2\x3f\xf8\xcd\x31\x00\x72\x3e\xa9\x8b\xb1\xa6\xeb\x7c\x93\xe6\x97\xba\x3d\xf9\x44\x12\x2b\xf4\xbd\x2f\xb9\x70\x3c\x6d\x20\x12\x1e\x6a\xbb\x58\xef\xf9\x09\xac\x9d\xc1\x9a\xfe\x18\x75\x21\xb8\x67\x28\xf4\x36\xb3\x3f\x0e\x0f\xdb\xd9\xe3\xa0\xad\x1f\x04\xf7\x89\xd1\x34\x97\x2f\xa0\x2e\x19\x4c\xf1\x69\x0f\x32\x6e\x37\x5d\x9c\x82\x87\x04\x2d\xda\x66\x3b\xef\x68\x85\x47\x2b\x94\x4b\xc3\xee\xfe\xf0\xbc\x78\x28\xf2\xe3\x1e\xca\xd3\x57\xd3\x0c\x76\xa3\x53\x3c\xfa\x20\x84\x78\x7a\xde\x3f\xcc\xbe\xb9\x7b\x16\xb1\x91\x2a\x6c\x5c\x00\xcb\xcd\xff\x0c\x58\x19\x5d\xe5\xe8\x62\x3f\xc3\x5b\x5a\xf5\xda\xee\x84\x10\x12\x9a\xab\x20\x25\xc3\x2c\x2d\x55\x59\x4c\xeb\x70\x83\x90\x9e\x29\xc8\x29\x78\xeb\xe7\x35\x84\x4c\xb8\xeb\x86\x5b\x42\xd6\xf6\xc5\x08\x09\x06\x9e\xd7\x35\x0a\x3b\x77\x50\x28\xdf\x13\x76\xc1\x38\x82\xc8\x7e\x26\x41\x00\x31\x61\xc3\xdf\x97\xa2\xcd\xbf\x0a\xed\x9b\x20\xe0\x94\xe6\xa8\x20\xd7\xfe\x9d\x33\x0c\xaf\x4e\x45\x5e\xbf\x78\xb1\xb4\xca\x09\x79\xaf\x83\x52\x12\xea\x21\xb3\xe4\x57\xe0\x59\xfd\xb2\xe4\x35\xc7\x56\x9e\xcf\x2a\x9d\x92\xe8\xc8\x0f\x86\x9d\x77\x83\x9a\x89\x9d\xe6\x11\xe9\x59\xaf\x02\x75\xe0\x3f\x8d\x18\xa5\xe7\x33\x84\xf2\xee\x5e\x8a\x72\x42\xee\x1d\xa4\x17\x71\x43\xb8\xf3\x52\xa6\xd5\x1c\xb2\xec\xd7\x25\x1a\xe9\xfb\x3a\xb0\x8e\xd9\x13\xaf\x8d\xcc\xc2\x08\xbf\xfc\xdf\x70\xb4\x38\xa5\xcf\x7c\xb4\xfa\xdf\x8b\xe6\xf1\x2f\x5e\x9a\xd0\x34\x6f\x1d\x7e\xe9\x33\x69\x39\x54\xf4\x25\x57\x4f\xc5\x7b\x63\x83\xbf\x39\x9b\x2e\x03\xee\x49\xe9\x88\x22\x9e\x4d\xdd\xb2\x3b\xa0\x64\xc0\x8d\x90\xde\x7b\x5b\xe6\xcd\x7b\x88\x6d\xc9\x7c\x89\x1c\x4d\x8f\xfc\x54\xf4\xb3\x55\x92\xc5\x31\xed\x33\xb7\xdc\x5d\x1c\x45\x2a\xc8\x88\x32\x22\x2c\x25\xe2\xe1\x54\xe4\x95\x23\x59\xf7\xd8\xa0\x1d\x47\x46\x91\x69\xd8\x42\x69\xd2\xc3\x6c\xf9\x7d\xbd\x6b\x6b\x18\x32\x12\x86\x35\xd0\x39\x58\x63\xa7\xe5\x32\x01\x0b\x91\xb1\xa2\x88\x90\x55\x80\x38\xaf\xd1\xfe\x1f\x4c\x4d\x42\xce\x6d\xd8\x61\x55\x94\x9a\xe3\x01\xb1\x22\xf2\xb5\x09\xa8\x26\x04\x49\x40\x26\xc2\x80\x3e\x0f\xf0\x13\xe4\xa5\x86\x0f\xb1\x69\x32\x51\x3a\x4e\x86\x4d\xf0\x50\x23\x05\xa4\xa9\xa1\x8e\xba\x07\xa7\x16\x36\xf7\x28\x6e\xcc\x01\xfe\xab\xcb\x37\xba\x59\x11\x20\xe3\x59\xf3\x6a\xa7\xd4\x51\xdc\x34\xed\x63\x6b\x13\x4a\xdd\x1a\xa0\xd2\x17\x93\xae\xb3\xd4\xac\xd8\x6b\xe7\x66\x0b\xc2\xb0\xa7\xe6\x94\xe6\x03\x88\x97\x94\xbe\x0f\x91\x13\x2b\x31\xe1\xc3\x2f\x9a\xb0\xa5\xb4\x2c\x1b\xcd\x09\x6c\x84\x1f\x1f\xf9\x09\x7a\xd0\x2c\xa9\x08\x45\x6f\xcb\x3e\x54\x57\x66\x1d\x3c\x0c\x45\x0c\x47\xd2\xc1\x96\x5f\x30\x21\xde\x76\x95\x4e\xff\x66\x95\x28\x0c\x11\x0e\x69\xf5\x88\x60\xe1\x47\x78\x1f\x88\x63\x82\x54\x92\x21\xa4\x6f\xbf\x9a\xb9\x10\x51\x91\x24\x54\xac\xd5\x46\x40\xa2\xfd\xfe\xad\x28\xc2\x7d\x6e\x69\x98\xbf\x16\xc5\xab\x43\x57\x8c\xcf\x01\x37\x5b\x48\x3c\xf5\x37\x3c\x3f\xf2\x5e\x1a\x40\x11\x69\x54\x55\xab\x8b\xa8\x64\x99\x9e\x87\x6c\xac\xa0\x88\xf2\x1d\x0a\xc3\xa5\x59\x7e\xe5\x26\x4f\xbe\x00\xe5\x79\x06\xa6\xc5\x95\xda\xc0\xa9\x28\xaf\x5f\x6e\xf4\x24\x40\x79\xdc\xec\xda\x73\x51\xfc\xe5\x4c\xb9\xa2\x89\x91\x38\x7f\x28\x8e\x77\xd8\x80\xfc\xb1\xaf\xab\x7c\x2a\x88\x74\x3d\x94\xf9\x58\x97\x1a\x94\x9f\x84\xc8\xbb\x2a\x2e\xd7\x07\x3e\x76\xb2\x94\xaf\x8d\x21\x4a\x1d\x32\x73\x76\xa9\x5f\x8a\x32\xfd\x67\x9c\xdf\x55\x41\x10\x08\xed\xda\x27\x9a\x53\x69\xb2\x79\xe2\xc3\x54\x9c\x0a\x24\x61\x7d\x14\xf1\xbe\x98\xf4\x26\x55\xa0\x03\x2b\x61\x97\x65\x06\x69\x6c\x07\x58\x98\x08\x66\x6b\x08\x9b\xd7\xda\x48\xfa\xd8\xb1\x88\xea\x38\x6a\x99\xa8\xdb\xbf\xc6\xa0\xac\xad\x59\x9f\x8c\xf2\xd4\x50\xfe\xde\xed\x3b\x15\x29\x82\x52\x64\x25\x34\xeb\x7b\x7e\xdd\xe2\x17\x0f\x6f\x2c\x26\x1c\x41\x90\x56\xab\xcb\xb0\xa0\x8f\x49\x44\xbb\xe8\xb5\xab\x54\x4c\xfc\x97\xbb\x64\xc0\x23\x2b\xa3\x3b\x46\x2e\x7f\xb0\xa6\x12\xca\x22\xd2\x41\xc7\xcc\x4d\xa4\xe3\xa2\xbf\x4a\xb4\xe1\x80\x3e\x21\x6a\xad\x78\x1c\xd3\x89\x82\xe2\x01\xc7\x12\xf9\x63\xf1\x96\xa2\x84\xe1\x61\xbf\xda\x39\xe7\x4e\x71\x65\x7e\xeb\x2e\xcd\x8f\x97\x0c\xb5\x1c\xf6\x50\xd5\x0e\xbf\xa5\x84\x00\x4c\x75\x98\xe2\xc2\x14\x3a\x4f\x49\xe2\x71\x70\x55\x4d\x34\xa4\x63\x58\xb6\x92\x54\x82\xd7\x32\x5a\x75\xc5\xa6\xe1\x9d\xca\x88\x3a\x7d\x3a\xc7\xbe\x3e\xbe\x8e\x50\x09\x82\x10\x10\x90\x7b\x98\x7f\xfb\xf3\xb0\xbd\xbb\x5b\x3d\x1f\x66\x8b\xc5\xea\x69\xbf\x72\xd0\x40\xe4\xc6\x26\x98\x4e\x75\x58\x88\x49\xfd\x4b\x40\x62\x5c\xd6\x67\x3f\x1b\x59\x7f\xa5\x14\x41\xd8\x8b\x70\xb0\x98\xb6\x3c\x38\xbc\x35\x4d\x29\x35\xca\x80\xf9\xb1\xf9\xb3\xa9\x76\xb4\xc2\x8d\xf6\xc6\x80\xd8\xb4\xec\x11\xea\x47\x4b\xc5\xf4\xbd\xe8\x9c\x79\x20\x94\x23\x52\x7d\xb7\xbd\xdb\x2f\x66\x4f\x87\xd5\xfe\xeb\xe1\x61\xbd\x59\xef\xdb\x09\x22\x40\x72\xa6\xc5\xf3\x7e\xb7\x9f\x3d\x1c\x36\xeb\xc7\x1b\x4e\x02\xf0\x7c\xc0\xca\x4b\x8f\xa2\xfd\xdf\xd6\x84\x3e\x33\x74\x40\x03\xc0\x2e\x85\x23\x3f\x89\x0c\x4a\x87\x67\x03\xca\x0c\xa4\xa1\xd9\xca\x37\xef\x15\x28\x4f\xa4\x51\xad\x9b\x46\xed\x43\x40\x3c\x3c\xf4\x0d\x61\x5a\xcb\xbc\x0c\x10\x26\xae\x31\x4a\x75\xfd\xa4\x1f\xd9\xe3\x1b\xea\x1e\x7b\x11\x26\x08\xc6\x7b\x33\x14\x73\xaf\x76\x97\x3c\xbf\x8e\x3a\x1f\x80\x89\xb0\x27\xcf\xf7\xc0\xad\xd6\x70\xea\x28\x04\x01\x18\x98\x8e\x6f\xee\x20\xc1\x56\xfe\xf0\xb1\xcd\x82\x01\xd3\x26\x8e\xda\xad\x7e\x5f\x6d\xba\x3f\x26\x2e\x24\x34\x4d\xf7\x5b\xdd\x5c\xfe\xae\xe5\x32\x05\x88\x7c\xe6\x84\x42\xf7\x4f\xfb\xc9\xdf\xf8\x01\x53\x00\x44\x81\x69\xeb\xe8\x6c\x2d\x36\x70\xe9\x9e\x50\xe4\xd0\xea\x42\x4c\xfc\xd0\xf6\xb6\x05\x67\x4c\xe9\xb9\xdb\x88\x69\x02\xbc\x75\x74\x37\x3c\xbf\x7e\x19\xc5\xb7\x10\x6b\x8e\xe4\x39\x36\x25\x7f\xb0\x08\x85\x83\xe4\xd5\x8b\xe0\xf2\xf5\x80\x91\x77\x17\x6b\x43\xe2\x03\xb2\x4f\xa6\x95\xd1\x6e\x76\x7d\x77\x83\x17\x94\x30\x1d\x58\xd0\x05\x7a\x3d\xca\x74\xdb\xa2\xf6\xc6\x68\x29\x71\xdf\x28\xfd\x66\x45\xf1\x7a\x39\x7f\xab\xa0\x74\xfc\x29\x5f\xd3\x66\x61\x5d\xe7\xd7\x05\x3f\x9d\x79\x7a\xcc\xd7\xcb\xd1\x3b\xe6\x2a\x10\xcc\x85\xdd\xa7\x73\x0d\x07\x8f\x0c\xfc\x0e\xe0\x5a\x21\x58\xb5\xa5\x4f\x6e\x5c\xa0\x99\x7a\x6b\x36\x7e\x0f\x2b\xf2\xc1\xe6\x10\x11\x61\xf6\xfa\xff\x53\xa4\x37\xdc\xa3\x00\x02\x68\x6c\x80\x02\xe7\x02\x9b\x0a\x35\x97\x30\x04\xac\x83\x8c\x75\xac\x5b\x32\x0a\xc7\x21\x3d\xe1\xbc\x02\x04\x9e\x97\x74\x9d\xb0\xd5\x33\x57\xbc\xac\xd6\xaa\x35\x25\x90\x30\xf4\x07\xca\xa2\xe6\x35\x7c\x96\xd6\x07\xe0\x04\x5f\xbd\xb4\xf9\x8a\x59\x5d\x73\xf9\x3a\x2c\x89\x80\xf6\x63\xc3\xc4\xe0\x8a\x5d\x88\x45\xda\xa7\x50\xfe\xef\xa5\xa8\xd3\xae\x07\x05\xb4\xaf\x0c\xbd\x99\x95\x99\x8c\x46\x6f\x42\xb3\x20\x30\x9c\x20\x77\xab\xf5\xe3\xf7\xf5\x72\xf5\xdc\x7e\x54\x38\x4c\x37\x3c\x61\xfa\x6c\x95\xab\x96\x47\x46\x13\x3f\xd2\xaa\xcb\x9c\xa4\xf9\x05\x8b\xef\x5d\xda\x50\x13\x46\x91\x83\xa2\x34\xa7\x75\x9f\x37\x4e\x13\x48\xc0\xc6\xe7\x77\x3c\x93\x45\x7e\xc2\xe6\x98\x67\xf8\xdb\xcd\xa0\x81\x44\x96\x5a\xd7\xf3\x76\x37\x16\x5c\x05\x4d\x93\xd0\xd2\x3e\xae\x17\xab\xc3\xe6\xdb\xc3\x7e\xfd\xf4\xb0\x5e\x3d\x1f\xd6\x8b\x6d\xd0\x5e\x07\xc2\x30\x31\x4d\x97\xaf\x50\x23\xe0\xe8\xd0\x2c\xcf\xae\x8e\xa4\x03\x4a\x5d\x2a\x6b\x90\x04\x1a\x7e\x5b\x20\xc0\xb7\xf2\x93\x75\xca\x33\x4c\x4e\x4c\xfb\xe2\x3a\x0c\x39\x9e\xb1\x39\xbc\x37\xcb\xbb\xdf\x7a\xaf\x43\x50\x2c\xe9\xe1\x8a\x90\xbc\x7d\xa0\x3e\x6a\x27\x32\xee\x27\x5d\x5f\xe5\x26\xcd\xa1\x9c\x0d\x30\x4c\x9a\x49\x8d\x30\x2e\xae\xd4\xbe\xe8\x92\xf9\x53\x1e\x9e\x8e\x42\x85\x28\xcb\xd3\x75\xc1\x4b\xb5\x4c\xdf\x52\x05\x79\xbb\x40\x75\xc4\x03\x8c\x81\x1e\x8a\xe3\x1e\x4e\xe7\x66\x49\xed\x6e\x99\xd5\xc7\xd7\x84\x08\x91\x46\x69\x9e\xe2\x13\xe1\xe7\xf6\x7a\x71\x1c\x61\xd2\xa7\x79\xd2\xa6\x55\xa4\x39\xf4\x9b\x7d\x68\xc2\xd3\xc1\xe3\x8a\x95\x1f\x58\xb6\x09\x23\x3e\xdd\x2f\x0d\xd8\x39\x49\xe0\xe3\x77\x99\x53\x41\x1b\xa3\x67\xeb\xae\xa3\x17\x95\x30\x62\x68\xc5\xd2\x13\xec\xd3\x2c\x7b\x84\x9f\xf5\xae\x6e\x05\xfc\x41\x27\xd2\x74\xc7\x34\x1e\x01\x2c\x1f\xac\xac\x52\x3b\xaa\x04\x62\x88\x2c\x2d\xfb\xb7\xa7\xa7\x87\x3f\x0f\x08\xda\x71\x33\x38\xa3\x81\xe8\xb7\x46\xd9\x1c\xd5\x3d\x3f\x19\x77\x77\xf8\x98\x78\x4c\x70\x1f\x68\x43\xc0\x5a\xf5\xa0\x91\x9a\x0b\x1e\x19\x9d\x2f\x39\xfa\x15\x5c\xf9\x86\x46\xd9\xa2\x3a\xb6\xaf\xfc\x6a\x32\xfd\x5f\xa6\x10\xbe\x5a\x10\xe3\xa9\x23\xeb\x72\xf1\x6a\x49\x50\x86\xd7\x14\x3e\x43\x39\xc8\xb7\x66\x2b\xee\x8b\x01\xc1\x94\x96\xe0\x61\xd2\xaf\xf9\x15\x4d\xac\x39\xb0\xc7\x5a\x51\x8a\x98\x53\x03\x6f\xac\x27\xd9\xb5\x86\x3f\x5b\x29\xc5\x4d\x1d\xff\x1e\x72\xa8\xac\x20\xd5\xad\x47\xaa\x95\x96\xda\x1f\x27\x08\x31\xba\x7c\x2c\x6a\xfb\x5f\xbd\x44\x8d\x06\xea\x23\x99\xda\x57\x5e\xfe\xd5\x8b\x31\x35\x08\xc3\x80\xbf\x81\xea\xe5\xa9\xc0\x86\x3b\x83\xe1\x18\x3c\x03\x50\x21\x82\x0f\x67\x75\xc6\xf3\x3a\x55\x63\xcd\xbe\x81\x65\xd7\xda\x0b\x12\xd1\x6f\xc2\xba\xc8\xd7\xeb\x53\x31\x4a\x90\x69\xcd\x34\xb0\x96\x63\xcf\x66\xce\xef\x5a\xea\x84\xf1\x6c\xc1\xb5\x67\x11\x0e\x98\x8d\x69\x53\xed\x38\x41\x13\x42\x7d\x6c\xac\x38\xbf\xd5\x87\x73\x76\xaa\x0f\x27\xfe\xf3\x90\xe6\x87\x96\xe2\x58\x13\x12\x05\xb8\x1f\x72\xf8\x59\x0f\x4c\x91\x1b\x97\x9e\xa1\xff\x68\x7c\xb5\x6d\x0e\xab\xbc\xbb\xba\x34\x04\xff\x26\x31\xf2\xf7\x85\x97\x8d\x19\x4a\xa1\x9a\xb5\x33\x54\x20\x6c\x5a\xfe\x1f\x78\x2a\x8a\xcc\xb1\x5a\xda\x71\xcf\x13\xf8\x0c\xe1\xa7\xcc\x2e\x0a\x54\xc7\x10\x31\xbc\x09\x2a\x38\x1e\xe2\x05\xc6\xfb\xd5\x13\x94\x66\x7f\xdb\x61\x3f\x10\x18\xf4\xd7\xbd\xfc\xbe\x91\x66\x57\x37\x79\xe6\xfe\x13\xd4\xc4\x07\xd3\xf5\xf3\x6c\x53\x72\xbd\x2a\xc5\x84\xf5\xd3\xc4\xd7\xa1\x0e\x7a\xd9\x25\xd3\x8a\xf9\x3b\x5c\x47\x37\x1c\x28\x85\x54\xc3\xcb\xd9\xd3\x0e\xf7\xbf\xbb\xd5\x40\x0b\x2b\x6d\xd3\x58\x6d\x2b\x8e\x5a\x8e\x3e\x1d\x06\xc6\x1e\xbf\xf0\x52\x2d\xf8\xb9\xcf\xd7\xa1\x09\x8b\xa9\x71\x0f\x0d\x13\x6f\xfb\x67\xe1\x05\x96\x3d\x1c\xca\x7a\xf5\xb7\x17\x59\x26\xa8\xe8\xb7\xc1\xbf\xf6\xe8\x6f\x3e\xe0\x63\x3d\xfc\xf7\xed\x7a\xbb\xfb\x17\x4c\xca\xf6\x63\x91\x47\x70\xeb\x57\x2f\xc5\x3b\x96\x90\x8b\x22\x9b\x22\x61\xd5\x24\xd2\x02\x0d\xc9\xd7\x6f\xbd\x2c\xa8\x26\x31\x35\x58\xed\xd5\xfe\x6b\x13\xdf\xb4\x4f\x26\xf6\x43\x23\x5f\x96\x56\xf5\x2c\xcb\x66\x75\x0d\xb9\xe2\x2d\x35\xab\x26\x31\x8b\x58\xd8\x26\x82\xcb\x22\xef\xab\xc6\x69\x92\x04\x01\x2e\x54\x01\xf5\xf0\xef\x92\xe1\x2e\xcf\x78\x65\x34\x6d\x0e\xda\x23\x5f\x79\xf5\x72\xb0\x3f\xac\x9d\x08\x44\x75\xac\x54\xad\x87\xd2\x0c\x30\x3c\x85\x77\x50\xcf\xd3\x9b\xca\x45\x3b\x29\xc6\xd2\xad\x11\x62\x3f\x43\x59\x1b\xfc\x34\x8a\xec\xb5\xed\x31\x9e\x7b\x8c\x9c\x18\xe5\xc3\xc5\x4b\xf1\x71\x20\xe7\xe6\x86\x04\xd5\xbf\x96\xc5\x19\x06\x8f\x92\x83\x22\xd0\xf6\x05\x23\x45\xfa\xe5\x6a\x08\xce\x87\x2f\x4d\x0a\x86\xcc\xd9\xd8\xf3\x6b\x82\xdd\x96\xdb\xd6\x4e\x51\x42\x52\x1b\xa8\x7f\xa5\xf3\x54\xa9\x6e\x08\x02\xc3\x6d\xa4\xd3\x5c\x8d\x2b\xb1\xc3\x68\xa2\x99\x2b\xb0\xe4\x02\xc7\x63\xb5\x46\x62\x9b\x5d\x66\xad\x5c\xec\xa6\xc4\x44\x3b\x1a\x6e\xe4\xca\x56\x53\x6d\x1f\x9a\x68\x12\xa2\xc7\x59\xbd\x64\x71\x8f\xfe\xc1\x5d\x46\xfb\x81\x0c\xda\xfc\xc3\xf2\x32\xd1\x67\xa5\x89\x8e\x19\x16\x0f\x04\xaf\xeb\x0c\x1a\x8f\x65\xad\x9e\x79\x5b\x09\xd0\x44\xcb\x08\xa3\xdc\x03\xf6\x3f\x5a\xb2\x9d\x35\x76\x32\xb7\x94\x3b\x93\x96\x40\x2b\x2e\x9d\x41\xc7\x14\x0b\x7a\xce\x13\x0f\xdf\x23\x84\x62\x7a\xeb\xcc\xaf\xfb\xc2\x1d\x25\xc3\x29\x1e\x0d\x90\xdf\x4a\x72\xab\x30\xdc\xb8\x1a\xcd\xf9\xb9\xce\xd3\x9a\x67\x46\x53\x78\x97\xfe\xe3\x6e\xdb\xa3\x81\xc0\x2e\x67\x3c\x3f\x9b\x25\xb6\xae\x86\x8d\xd0\xda\xa3\xa1\x81\x51\x08\xae\x8e\x70\x28\xc4\x5f\xed\x40\x14\xa3\x3f\x78\x86\x52\x6e\xf5\x64\xf4\xa0\x3d\x2a\x22\x1a\x8e\xf8\x98\x07\xfe\x8d\xf6\xa8\x4a\xd0\x13\xfc\x59\x94\xf0\xb3\x6a\xff\x0a\x31\x66\x69\x8e\xe9\x1b\x18\x1d\xed\xe1\x6b\xf5\xfc\x80\x13\xe6\x28\xe9\x1e\x8c\x08\x87\x6d\xda\x80\xf6\x2a\x3e\x0b\xf0\x60\x58\xf3\x63\x91\x8f\x38\x48\xb5\x17\x90\x10\x57\x10\x0a\x1f\x2d\x5d\x51\x4e\x7b\x81\xf0\x12\xaf\x6b\x58\xb3\x6b\x75\xab\x77\xe9\x31\xff\x45\x17\xdc\x74\x30\xae\xbd\x40\x82\x1c\xd4\x7a\x36\xfc\xe7\xbe\x78\x9d\x0c\xc4\xb5\x17\x46\xb1\xcb\x04\xe1\xe6\x37\x74\x69\xed\x60\x82\xdd\x6b\x8d\xbb\x9c\x1e\x7b\xb6\xdb\x0b\x63\x6d\x3a\xea\x26\xaa\xb1\x9f\x65\xa9\xb5\x17\x8a\x18\x33\x59\x6b\x59\xb8\xba\x74\xbb\x00\x18\x91\xda\x7a\xf5\x9b\x42\x0d\x85\x24\xfa\xce\x89\xf6\x98\x30\x62\xb5\x87\x33\x97\xaf\xc6\x13\xed\xbb\x9f\xa3\xef\x64\xd2\x20\xf1\x9c\x2b\x63\x04\xa5\x46\x73\x20\x09\x4d\xe1\xe4\xba\xcd\xe7\xf0\xc2\x33\x3d\x5a\x06\x71\x44\x31\x9d\x75\x30\xe6\x76\xf1\xd2\x09\xd8\x4e\x7f\x6d\x1c\x29\x6d\xd3\xad\x26\xad\xee\xf4\x72\x3f\xb8\xcd\x38\xf6\x3c\xed\xe8\xfc\x1a\x5f\x00\x0c\x9d\xb2\x1b\x4e\x0c\xce\xbe\x31\x51\x73\x5e\xf5\x3c\x05\x3b\x21\xf1\xc2\xc0\x68\x98\xd5\x25\x4f\xeb\x5d\xcd\x73\xc5\x4b\x75\x08\xdb\x09\x01\xf3\x2d\x9a\xf9\xa9\x78\x85\x53\x91\x4f\x10\x33\x68\x2f\x09\x3d\xec\xc7\xf9\x8f\xc4\xa2\x6c\xfb\x57\xc0\xfa\x6b\x6a\xc5\x78\x97\xbd\x8d\xd5\x84\x05\x58\xfc\x58\x6f\xf7\x2d\xbc\x73\x1a\xd1\xa5\x3d\x41\xfc\x48\xf6\x8a\x8a\x6d\x27\xc3\x68\x9a\xe7\x41\xdc\xd2\xe0\x3c\x41\xf9\x03\xd2\xa7\xec\x52\xdd\xb6\x42\x6b\x4f\xf8\x1a\x9b\x29\xbb\x04\xd4\x79\x3c\x23\x08\xb1\x3c\xf3\xad\xfa\x40\xc6\x41\x7b\xd2\xf3\x5d\xd3\x0c\x7e\xc7\x73\xef\x07\x4a\xdf\x63\xb6\xfb\xf5\x83\x8a\x85\xf6\x64\xa2\xb1\x8d\x12\x6b\xb0\x4b\xd7\x6a\xaf\x3d\xa9\xa8\x4d\x2c\xc9\x4b\xe3\x6f\xe6\xe3\x0f\x2a\xea\x61\xf6\x1c\xfd\x8b\xc3\x6c\xb9\x7c\x5e\xed\x76\xee\xd3\x2a\x64\x91\x61\x88\xab\x4e\xa9\x5c\xb6\x55\x79\xed\xa9\x98\x5a\xf9\xec\xfa\xc9\xe8\x96\xf6\xf8\xce\x3a\xbd\x87\x09\x80\x9b\xf6\xc0\x17\xd2\x36\x3a\xff\x05\xb2\x1e\x68\x7f\x6b\x0f\x04\xc7\x7a\xd0\xb9\x2c\x4e\xc5\x86\x9f\xbf\x0c\x2d\x0c\xc8\x10\x33\x48\x97\x4a\x3d\x61\x27\xe0\x43\x71\x1c\x3d\x6e\x50\xda\xa4\x72\x9a\xb0\x6d\xad\x1f\x50\x8a\x2d\x9f\x4f\x36\xa8\x6b\x0f\xf3\x93\xff\xe7\xff\xf9\x3f\xdb\xef\xeb\xdd\xf3\x6a\xb7\x7a\xfe\xbe\x5a\x5a\x7a\xd6\xf6\x96\xc0\x28\xec\x9a\xc3\xa6\x79\x35\xb7\x89\x03\xed\x69\xdf\x0f\xc1\x52\x87\x3d\xa4\x7f\x5f\x52\x95\xd6\xc8\x00\xf9\xc1\x8e\xd3\xbe\xc2\xbe\xd6\x0c\x3b\xf6\xb1\x6c\x61\x46\x28\x21\x90\xe8\x01\x92\xbe\xda\x61\x5a\x79\xf8\x43\x29\xa1\x46\xfa\xe8\x74\x45\xd3\x5e\xf7\x8c\x3e\x25\x5c\xe2\x7e\x94\x69\xcd\x15\x64\x83\xae\x37\x4d\x3d\x02\x9e\x69\x05\x6b\x8c\x08\x52\x52\xcb\x76\x2f\x53\x8f\x51\xd2\x91\x40\xed\x8b\x0f\x89\xfd\x27\x21\xa4\xbd\x92\x9f\xa6\x5e\x12\xe1\x7e\x1b\x88\xb8\xfc\xaa\xb4\xd8\xb7\xb6\x94\x86\x1e\x69\x65\x20\x2d\xf8\x7a\xb4\x05\x29\x95\x31\x16\x78\x56\x19\x98\x63\xe0\x46\x76\x62\xfa\x40\xa0\xbe\x67\xfc\x99\xc6\x3a\x66\x45\x3d\x54\xb7\xd2\xd4\x0f\x23\x34\x2d\xef\x13\x0b\x7a\x58\xdf\xd2\xd4\x67\x1e\xeb\x24\x4f\x1a\x3b\xd9\xe7\xae\xb1\x93\x42\x30\x88\x03\x57\x28\x82\xf9\xa5\x4a\x73\x8c\xe1\x9e\xa0\x6c\x45\x47\xba\x0f\x30\x2e\x93\x9e\x6a\xfb\x2d\x90\x58\xd3\x28\xf4\x93\xe6\x8b\x1f\xe6\x0f\x9f\xc4\xd4\x9a\x46\x71\x80\x39\xf6\xea\x9c\xa5\x23\xd8\x42\xcb\x41\x3e\xfc\xf2\x28\xd1\x26\x60\xce\x2b\x28\xd3\x72\x7b\x79\x4b\x55\x51\xa6\xfc\xb1\x58\x70\xc5\xab\xba\x2c\x3e\xb8\xcc\x18\x4a\x39\xbc\xaa\x22\x1e\xb3\xb5\x90\xfb\x92\xcb\x01\x35\x8c\xa6\x31\x8d\xa3\xde\x49\xf7\xd8\x72\x8d\x6a\x1a\xc7\x11\x7a\xcb\x1d\xd2\xf1\xd6\xb1\x1e\xfd\x84\x58\x18\xad\xb6\xf3\xc1\x64\xb0\x2c\x5b\x8e\xe9\xe4\xeb\xf8\xcd\x46\x4f\x3d\x09\x79\xe8\x56\xed\x47\xc4\x4e\x9a\x26\x89\x01\xf6\xfd\x55\xa4\xf9\x53\x1b\x5e\x53\x1e\x33\x44\xed\xd4\xef\xc5\xe8\xb2\x5c\x6b\xd9\x35\xa5\x3f\xc3\xdf\x97\xb4\x6c\xa2\xf8\x53\x0f\x7d\xd4\x91\x78\xda\x0f\x09\x8f\x61\xed\xe6\x7e\xcc\xf3\xa8\xa9\xf0\x45\xd0\x31\x2a\x3d\x17\xc5\xe9\x7f\x2f\xa9\x03\x3a\x69\x2a\x62\x49\x42\x57\x77\xe1\x59\x5a\xa1\xcb\x7f\x00\xad\xc1\x54\x22\xec\x3c\x19\x52\xa3\xe7\x3c\xc2\x19\xf7\xef\x42\x11\x1f\x2b\x9c\xa7\x34\xff\x9f\xcb\xe9\xec\x3e\xaa\x7c\x4f\x8b\xde\x71\xfa\x65\xa8\xde\xec\x66\x85\x0a\xcb\x02\x8d\x67\xba\x83\x4c\x2f\xcb\xe2\xdc\xf7\x50\xa9\x0a\x01\x01\x46\xeb\xc5\xf6\xb0\x7f\x5e\xdf\xdf\xbb\x6c\xb8\xa6\x2a\xa1\x48\x9b\x6c\xa1\x3b\xbb\xc3\xec\x71\x79\x58\x6c\x1f\xf7\xcf\xeb\xf9\xb7\x3d\xfe\x61\x70\x66\x51\x20\x1e\x42\xc0\xb2\x34\x7f\xfd\x32\xb8\x0d\xf0\x0c\xc1\xfa\x72\xfb\xe3\xf1\xf0\x8e\x41\x42\xd5\x7e\xca\x07\x4c\x16\xde\x37\x26\x37\x7f\xb5\x18\x84\x91\xd5\x84\x98\xa0\x77\x7b\x30\xf8\x83\xfa\x19\xde\xe0\xb6\x75\xb1\x77\xd4\x51\x1d\x87\x68\x14\x8e\xdd\x3a\xdf\xa4\x08\xac\x74\xd7\xd4\x09\x47\x2a\xc5\x01\x81\xfe\xa2\xcf\x7c\x54\xbd\xf4\x24\x7b\x86\x0b\x40\x8b\x48\x5a\xd8\xe8\x72\xbd\xfc\x50\xe1\x45\xfb\x84\x30\xee\xb5\x7c\x3e\x18\x60\xaf\xf3\x65\x91\x65\x7c\x74\xa6\xf8\x24\x21\xb8\x7a\xfb\x0d\xa0\xda\xf7\x08\x43\x67\xfc\xa9\xc8\x52\x09\x8e\xc5\x43\xfb\x5e\x20\xd0\x35\x79\x43\x7e\xef\x0f\x91\x1b\xda\xf7\x22\xe1\xc4\xa4\xcc\x51\xb6\x1e\x13\xe2\x69\xdf\x83\xc4\x45\xba\xdb\x4b\x7d\xbe\x20\x98\xb6\xfd\x26\xad\x63\xd6\x07\x6f\x60\x5a\x73\x74\x05\x2a\x08\xb6\x65\x2b\x2b\x8b\xe0\x5e\xaf\x4f\x45\x82\xd4\x87\x8d\x2f\xb0\xce\xdf\x20\xef\x94\x5b\xb4\xef\x0b\x8e\x29\x22\x83\x7e\x43\xff\x7c\x6c\x11\xfc\xd0\x93\x3d\xa0\xcc\x27\x4f\x3a\xa4\xbe\x91\xb1\x2c\x8a\xe3\x50\x3f\x5b\xfb\x21\xd3\x18\x0a\x9c\x79\x29\x21\xbb\xff\x07\x5a\x76\x9d\x6d\xfe\xd0\xca\x63\x69\x3f\x8c\x7c\x66\x0b\x23\x18\x62\xe3\xb9\x30\x38\x99\xfc\x50\x28\xcc\xbe\xf0\xaa\x82\xf1\x71\xe8\x87\xda\x34\x53\xf4\x13\x7c\xd8\x2a\xa2\xd2\x4a\x5c\xca\x0a\x69\xe6\xf4\x87\x9e\x89\xcf\x7c\x22\xac\x73\x67\x92\xf8\xae\x53\x6b\x34\x4d\x1b\x54\x58\xdb\x85\x5c\xbf\x38\x58\xd5\x18\x7a\x66\x7b\x8f\xed\x07\xa3\xc0\x47\x46\xbc\xe5\xa5\xaf\x26\xa1\xfd\x58\x30\xd2\xc2\x92\x17\x2f\xa9\x70\x69\x57\x3f\x89\x0c\xb5\x1a\x57\xca\x70\xf3\x36\x9f\x9b\x0d\x6e\x7f\x74\x78\xf9\x89\xd0\xc8\x52\x82\x79\xfc\x7a\x5f\xec\x2e\xa7\x53\x91\x3f\x5e\x46\x19\x5b\x5f\x78\x09\xeb\xe4\x60\x5b\xb6\x83\x6f\xeb\xc7\x7d\xec\xbe\x5e\x44\x86\xba\xcd\xb6\x34\xad\x67\x9b\x0f\x9e\x9c\x64\x46\x79\xbe\xeb\xd5\xb1\xf2\x6f\x9f\xb4\x27\x69\x5f\x72\x82\xed\xae\x48\x28\xb6\x2c\xea\x7b\x5e\xf5\xd8\x28\xb5\x2f\x85\x8f\x36\x10\x7e\xca\x4e\x4a\xf5\x83\x6b\x29\xcf\x94\xcb\x2a\xc3\x66\x83\xe2\x20\x1f\xcc\xb4\xc5\xee\xdd\xe3\x7e\x33\x26\x08\xd6\xbe\xf2\xe3\x20\x69\x51\x1a\xeb\x1c\xc9\x57\x0d\xcd\x73\xbb\xab\x54\x4c\x21\x6c\x73\x4a\x08\x4f\xf0\xba\x66\xf5\xa7\x66\x93\x5b\xb0\xc3\xf0\x9b\xc1\x8b\xa8\xe8\xf1\x93\x0f\x78\xe3\x87\xeb\x1c\xbc\x04\x3b\x0e\xda\x8a\x6b\x07\x03\xc2\xce\xea\x09\x78\xc7\xe8\xbb\x42\x8a\x10\x2b\x5b\x05\x81\x1f\x45\x99\xa9\x5d\xce\xcf\xd5\x4b\x51\xaf\x2d\x2b\xcb\xf8\xfe\x42\x6a\xdb\xf7\xce\x86\x24\xc1\xfd\x60\xb0\xad\x13\x59\x29\x4d\x5a\xf0\x09\xca\x4d\x91\x3b\x7a\x38\x1d\x10\x61\x84\xbf\x2d\xd7\x04\x76\x27\xf6\xc2\xe8\x80\x68\x8a\xbc\x7d\x86\x0b\xea\x22\x5f\xaf\x06\x02\x63\x22\x8b\x9b\xd6\xcc\x7e\x06\x2f\xf0\x62\x26\xcd\x59\xdb\x44\x4d\x48\x29\x30\xe9\xd4\x06\x9e\x62\x3a\x76\x99\x5f\xd7\x53\xa3\x03\x4a\x63\x7c\xdf\x69\x85\x09\x1e\x35\xbf\xce\x1c\xa0\x56\x07\x34\x60\x48\xc9\x06\x16\xda\x41\xbf\xed\x96\xe7\x0e\x86\xdd\x4c\x10\x36\x62\xc0\x0c\xd7\x5d\x51\xee\xe0\x83\x26\x05\x1d\xd0\x48\x79\xa2\x7b\x0c\x4f\x90\xf3\x6c\x44\xae\xaf\x03\xdf\x0b\x91\x30\x74\xb3\x7e\x9c\xaf\xf6\x87\x33\x94\xcf\xdb\x87\x07\xf7\x7d\xbe\x0e\x0c\x68\xd2\x14\x26\x5e\x10\xac\xdd\xb7\x16\x41\xa0\x43\xdd\xf5\x11\xfe\x0e\xd7\x0d\xaf\x5e\x3f\xc4\x5c\x8f\xee\x30\x64\x31\xeb\x44\xf1\xac\x8e\xd0\x24\x97\x4f\xef\x33\x3a\xc6\x06\xd5\xcd\x6c\x39\xb8\x11\x46\x8c\xa0\x2a\xc2\x0b\x3c\x36\x5c\x4c\x01\xa3\xcc\xba\xbb\xdf\x01\x5b\x1d\x77\x23\xd6\x52\x1d\xb0\xc0\x72\xc6\x73\x0d\xb3\x91\xec\xaa\x0e\x58\x4c\xdb\xa3\xb3\xe6\xaf\x69\x7e\xdc\x40\x13\xb4\x55\xd3\x5b\x26\x60\x42\xd1\xa0\xd7\xb2\xfa\x2f\x9d\x89\x80\x29\x81\x7d\x86\x29\xba\xc5\xef\x76\x35\xc6\x37\xb3\xa4\xa3\x00\x32\xd0\x8c\x5e\x58\xd8\xbb\xe9\x28\xf6\x10\xa9\xa9\x00\xc1\x14\x86\x59\x63\xf8\x60\xa2\x38\xa1\xd6\xa6\xef\x4c\xd7\x73\x73\xb2\xf2\xd7\x5b\x3d\xc3\xd1\xe7\xa4\x6f\x69\x7b\x6d\x9b\x63\x79\x3d\xd7\xd5\x75\xf0\x4a\xe2\xd8\xc7\x6e\x8b\xf9\x7a\xbf\x98\xed\xbe\xfe\x52\xfe\x45\x07\xb1\xf2\xb8\x85\xae\x7c\x2f\x7e\x8e\x5e\x10\xf7\x8c\x4b\xff\x59\xc6\x71\xb2\x0f\xc4\x7e\x5e\x70\x8e\x95\xeb\x57\x38\xe5\xfc\x38\xb8\x53\xe9\x03\xef\xa1\x35\xd4\x0f\x48\xab\x76\x4c\xc6\xe8\x5d\xcf\xd3\xc6\x13\xcd\xba\xa2\xab\x0e\xb0\x81\x14\xa9\x64\x2c\x08\xe5\xf3\xcc\x67\xa0\x7c\x43\x5b\xff\x04\xc5\x39\x83\x66\xeb\x5a\x1e\xdf\xfe\x45\x15\x93\x88\xcf\xb5\x30\xb1\xaf\xd7\x33\x94\xcb\xf4\x6d\xe4\xe2\x04\x10\x26\x7e\x9f\xa2\x54\x35\xa1\xc9\xff\x70\xf9\x7a\x2e\xdc\x91\x15\x40\xc2\xd0\xad\x95\xbc\x54\xbb\xba\xbc\x48\xc7\x0d\xd4\x8e\x83\xb4\xfd\xc9\x0b\x9e\x65\x96\xcc\x6d\x39\x26\x0e\xd6\x81\xe6\x02\xf3\x92\x4f\xab\xe7\xbb\xed\xf3\x66\xf6\xb8\x58\x1d\xee\x56\xab\xc3\xf3\x6c\x6f\x59\x7a\x74\x48\x02\xd3\x71\x6c\x13\x4a\x3d\x9c\x55\xfb\x00\x42\x92\x08\xac\x89\xf6\x3c\xf1\x41\xa1\x30\xf4\x00\x22\xde\xc2\x8e\xb0\x32\xd1\x3d\xd8\xd8\x4d\xd2\x21\xf6\xb7\x3c\x5e\x64\x06\x97\xea\x3b\x36\xd0\x58\xd5\x75\x77\x21\xca\x4d\xad\xea\xdd\x21\x43\x26\x1d\xc5\x90\x72\x23\xe4\xd5\x67\xab\x98\x7c\x77\xa1\x4f\x7c\x04\x0f\x62\x3e\xab\xad\x33\x85\x3e\x31\xad\x5e\x0f\xdb\xfb\xc3\x23\xbc\xcf\xe1\xe3\x04\xcb\xc0\x40\x84\x7e\x12\x9a\xfa\x2f\x54\xf5\xa1\xec\x75\xa9\x36\xe7\x70\x79\x32\xbc\x59\x52\x5e\xba\xfe\x38\x1d\xfa\xca\x00\xf4\x8e\x50\xcf\xa1\x6e\x26\xce\xc7\x02\xc4\x3a\x0c\x38\xe7\xc4\x75\xff\x58\xe9\xaa\xe1\x8f\x66\x9e\x69\xf6\x68\x22\xc1\xdf\xfb\xfb\x20\x64\x81\xc1\xde\x1f\xa1\xfe\x0e\x2f\xa9\xcc\x90\x3d\x62\xea\xc1\x45\x9e\x8f\x85\xd2\xf7\x17\x5e\x57\x9b\x6b\x2f\x71\x16\xc6\x31\xa1\x36\x71\xb6\x7d\x83\xf2\x2d\x85\xf7\xe9\x33\x32\x8c\x39\x09\x0c\x11\x58\x73\xfc\x3a\x52\xc1\xf6\x3a\x5a\x80\x93\x51\x3b\x18\x7e\xf2\x83\x4e\x73\xac\x73\x7d\x4d\x73\xf4\x8a\x6d\x36\xd1\x9c\xdc\x7b\xee\x24\x33\x75\xc8\x21\x44\x83\xff\xc4\x2f\x55\x87\xe4\xd4\xa1\x08\x39\x62\x7b\x91\x7b\xec\x5b\x6e\x74\x1d\xdb\xc1\xd8\x80\xb2\xab\xcb\xe9\xd4\x04\x0d\x45\x59\xb7\x54\x34\x3a\x14\x09\xd1\xc4\xa6\x16\x07\xce\x9f\xcb\x3e\x85\x82\x87\x7e\xc7\x14\xfe\xa5\x17\xba\x87\x42\xc5\xe8\xbc\xae\xea\x17\x2c\xe8\xae\x7e\x9e\xb3\xa2\xec\xd6\x91\xf4\x44\xd8\x6a\x15\x97\x03\x7e\xe3\x7e\xc3\xb6\x9b\x4d\xb9\x69\xb5\xab\xd4\x02\xf2\xba\x1a\x86\xc8\xa1\x8c\x05\xc2\x93\x17\x17\x2c\xa0\x3c\x5f\x26\x52\xf1\xed\x4d\x4b\xe1\x39\x25\x8b\x0e\x51\x30\x33\x11\x8d\x9d\xa2\x02\x40\xff\x6f\xde\x04\x65\x65\xcf\x58\x85\x2a\x8c\x90\x85\xc0\x25\x53\x90\x9a\x69\x78\xaf\xe0\x33\x65\x97\xc3\x0f\x48\x5b\x8c\x19\x38\x35\xa0\xe1\xd1\x16\x6a\x6a\x82\x8c\x4b\xbe\x49\x73\x50\x4f\xdd\x96\xd6\x71\xa4\x3a\x14\xd4\xa2\xc8\xab\xcb\x09\xa1\x31\x9f\xf8\x6b\x8c\xf8\x0c\x91\x7a\x99\x21\x10\xee\x09\x4d\x69\x46\xa9\x49\x8b\xa2\xfc\xcf\xa8\x94\xc2\xa8\x0a\xa0\xc3\x0e\x1a\xfd\xe3\x65\x71\x11\x19\x2c\xc7\x72\x56\x9a\xf9\x8d\xf1\x33\x86\xf4\xa9\xb4\xe8\xf4\x96\xf3\x54\x33\x3f\x60\x36\xd7\x8e\x49\xfa\x4d\x9a\xf7\x14\xbd\x35\xf3\x85\x11\x8b\xcb\xe1\x7a\xe2\xe5\x57\x5e\xa1\x90\x83\x1a\x7f\x07\x28\xe0\x2e\x1f\xbc\x56\x46\x8f\x73\x38\x25\x90\x01\xd5\xd6\x9e\x0f\x95\xb1\x7b\xa5\x1a\x16\x28\x03\xbb\xfa\xba\xfd\xbe\x7a\x5e\x3c\xcf\xee\xf6\x87\xfd\x9f\x4f\xce\x8e\xb3\x90\x2a\x17\x64\x5b\x71\x9d\x79\xf1\xd3\x38\xc8\xa3\xaf\x0b\x83\x38\x66\x63\xc1\x8c\xd1\x94\x24\xa4\xc6\x03\x71\xe8\x93\x25\xbc\x8d\xf1\xf4\x9a\x31\x2a\x30\x6b\xff\x3f\xf7\xcd\xe2\xda\x3a\x98\xba\x66\x2c\x0c\x02\xdf\x22\x7d\xd0\xd9\x76\x7f\x67\x26\xe5\xd5\x04\x46\xbc\x39\x68\x70\xc1\xba\xd1\x28\x26\x98\x39\xdc\x5c\x4e\xd5\xfe\xa5\x89\x36\xda\x0b\xc6\x54\x60\x64\xf6\x7d\xf3\xbd\x6f\x6c\x58\xe2\x7b\x98\x31\xc8\x40\xd7\x8c\x8c\x7e\x45\xe2\x07\x68\x17\x0e\x35\xf0\x93\x3b\x63\x47\x53\x82\xb6\xe3\xd6\xf6\xb8\x7e\xab\xc0\x28\x68\xd8\x5d\xe1\x26\x2a\x4d\x6d\x5c\xb0\xe4\x35\xb7\x67\x6e\x9f\xdf\x5a\x33\x1e\x47\x48\x94\x6a\x4e\xc1\xb9\x39\x37\x86\xb9\x07\xc6\x55\x1c\xf5\x50\x57\xc7\x12\xa0\xa3\x5f\xd7\x4c\x78\x04\x45\x60\x50\x13\xf8\x1e\x19\x7b\x5a\x26\x53\xcd\x84\x1f\xe3\x17\xfc\xe0\xb5\xec\xf4\xd5\xee\x00\xaa\x75\xbe\xfb\x87\x8b\xa2\x9d\x18\x11\x69\x54\x3b\xf2\xab\xa3\x1d\xa8\xda\xc1\x58\x60\x83\xce\x1f\x7f\xee\xdb\x3f\xa9\x18\xc1\x53\x28\x85\x45\xdd\x5f\x95\x4d\x7c\x75\xa9\x10\xf8\x20\x1e\x66\x10\x04\xb1\x89\xdd\xaa\xba\x50\x29\xcf\x1d\x8d\xc3\xdf\xa3\xb2\x00\x03\x2d\x5c\x6c\xbc\x50\xbd\x4a\x1d\xd3\xbe\x46\x46\xa3\x26\xfc\x6f\x1e\xce\x41\x95\xe9\x5b\xf7\xa6\xb5\x30\x3e\xc8\xe6\xb3\x62\xc8\xf0\xab\xb4\x00\xb3\xf5\xf8\x2b\xcc\xde\xf9\x75\xda\x77\x67\x5a\x9a\x66\xdf\x36\x4c\x9e\xbd\x41\xc9\x8f\xf0\x94\xfe\x84\x4f\xe8\x66\x75\x44\xbc\x58\x05\x8e\xed\xef\xdb\xf3\xfa\xcb\x54\x0d\x26\x22\x82\xfb\xcc\x19\x80\xff\xb8\xbe\x68\x1d\x79\x44\x98\xb6\xd8\x97\xe2\xbd\x83\x57\xe2\xdf\x23\x07\x2d\x3c\xd8\xec\x40\xfa\x0f\xd8\x1c\xbc\x9b\x45\x49\x8c\xfa\x53\x0a\xb2\xf4\xcd\xa5\x48\xe6\x48\x36\xf2\x61\x99\x25\xa2\x24\x41\x0a\xf7\xdf\xaf\x02\xca\xaf\x3c\x57\xd9\xb8\x20\x12\xd1\x80\x20\xf5\x70\x8f\x2e\x74\x8a\x74\x6b\xf8\x20\xa8\x08\x9d\xfa\x93\xa5\x36\x6d\x39\xa9\x9a\x0f\x1c\xf8\xad\xa4\x81\x8e\x7c\x2f\x94\xcc\x15\xbd\xa5\x4d\x7b\xb9\x34\x57\xe4\x7b\x02\x0b\x7c\x7b\x38\x1d\xa1\xcd\xf8\x46\x3e\x37\x0d\xcf\x96\xea\x6a\xc0\x50\xaa\xa3\x90\x25\x28\xbb\xa5\xc0\x28\x5e\x01\x66\x09\xbe\x17\x3d\x77\x20\x62\xbe\x32\xec\x0a\xe8\xc6\xf6\x53\x45\x11\xe3\x3e\xee\x02\x7c\x98\xbb\x7a\xdc\xd0\x17\xbb\x69\x52\x20\x10\xa2\x4a\x4f\xeb\xbc\xaa\x79\x96\x99\xed\xd5\xf3\x1b\x22\x06\x42\x1b\x92\x8e\xb2\xba\x4f\x75\x07\x95\x88\x22\x9f\x68\xaf\x8b\x59\xee\x2e\xb9\x1a\x24\x3a\xa3\x28\xa4\x88\x67\x90\x48\x0b\x73\x29\x61\x59\x9c\x78\x9a\xdf\x15\xe5\x97\x69\xb4\xdc\x34\x94\x2b\x8a\x64\xac\x2c\xef\xd7\x4c\xeb\x34\x4b\x2d\xab\xcd\x87\xad\xf0\x3a\x8a\x49\x10\xa8\x36\x27\x75\x2b\x09\xad\xa3\xd8\x57\x68\x6f\x79\x96\xb5\x2c\x9c\x6e\x88\x07\x61\xa7\x01\x3a\x9f\xff\x3e\xfe\xa8\x34\xfa\x6d\xee\x1e\x6c\x3e\x70\xb4\xfe\x92\x90\x21\x49\xef\x6e\xbd\xfa\x98\xc7\x5c\x47\x89\x32\x54\x12\xae\xe3\xe0\x19\x85\xc3\xd3\xfc\xd8\x97\x72\xd2\x11\x8f\x13\x16\x3a\xd9\x88\xf6\x8f\x20\xa0\x5f\x35\x98\xe5\x75\xfa\xf7\xe5\x46\xc5\xce\xce\x16\x7e\xcc\x8d\x51\xaf\x2e\x27\xb0\x46\xb7\x7f\x06\x45\x22\x96\xb8\x15\xcf\x88\x66\x39\xc8\x5e\x60\x14\x09\xe1\x19\x72\x3d\x9e\x63\x12\x19\x8f\xff\x9e\x8c\xf5\x6f\x53\xb4\x3e\xd3\x66\x6d\x14\x74\x47\x92\x26\xb1\x4d\x20\x5a\x8c\x3d\xda\xaa\xdb\x5e\xf8\x66\xaa\x30\xea\x30\xe6\x24\x18\x71\x33\xeb\x48\x11\x1f\x8b\x71\x8d\x6d\x6d\x5c\xb3\x07\xfe\xcf\x75\x51\xb8\xcc\xab\xfb\x2d\x8a\xfa\x08\x04\x73\xad\x70\xb7\xe1\xfb\xf0\x5b\x95\x94\x48\x28\xdc\xe5\x73\x57\xf5\xb4\x7e\x8d\x8e\x80\x78\x88\x10\x5d\x2f\xb6\xde\xa0\xa4\x19\x01\x31\x4e\x58\x05\xf5\x82\x9f\xb1\xff\xbb\xc5\x4a\x4c\xb6\x51\xba\xcf\x31\xa3\x49\x6d\x1c\xc1\x45\x51\x64\xaa\x78\xcf\xbb\x35\x1d\x90\x7e\x67\xa7\x8e\x20\xa1\x81\xf5\xa7\xdb\x53\xb9\x5d\x47\xcd\xa1\x85\x6c\x68\xaf\x50\xcb\x17\x93\xc9\x75\x63\xda\xa3\x60\x23\xfa\x79\xaa\x10\x0f\xda\x84\x02\x38\x13\x90\xec\xc6\x74\x55\x0f\x9f\x79\x4c\x62\x82\xed\x30\xe9\x0f\x9e\xd7\x7f\xfc\x0e\xd7\x51\x21\x22\xf6\xfc\x08\xcd\x0c\x14\xd5\x72\xb6\xfb\x3a\xfd\xe0\x62\xcf\x07\x5f\x77\xc2\x7b\x6d\xa5\x21\x76\xe3\x49\x14\x9b\xc4\xa7\x4c\xcf\x29\xe4\xf5\x66\xbd\x1f\xdd\x89\xa7\x29\xee\xfa\xe6\x4e\x72\xfe\x90\x22\x0a\x1c\x5a\x16\x76\x1d\x53\x12\x18\xd6\xae\x9f\x6d\xcf\xac\x8e\x29\x23\x9e\x68\x9d\x9d\xc6\x10\xa6\x35\xb6\xa0\x18\x97\x6e\xa2\x88\x1e\xd3\xc8\x77\x30\xa9\xa7\x54\x8e\x7e\xae\x4f\x25\x76\xd7\x14\xef\x39\x94\xc6\xed\x31\xf0\xb0\x5f\x09\xf9\xba\xcf\x47\x9a\xab\x9e\xf0\xc9\x43\xcb\x5a\xa1\xe3\x80\x44\x48\x83\xd1\xb1\x21\xb4\x3e\x55\x1c\x06\x09\xf6\xb6\x34\x01\xbb\x2b\xcd\xc5\x8c\x29\x24\xc5\x42\xd4\xb1\x93\x14\xe0\xf9\x32\xad\x64\xe7\x13\xc6\x8c\x27\x61\xdf\x90\x18\x21\xb7\x7e\x96\xd0\x4e\x8c\x98\x88\x6c\x94\x68\xad\xe6\xb7\x72\x20\x65\xa4\xe3\x28\x81\xd8\xb7\xf8\xfa\xb7\xe2\xf5\x86\xdb\xc7\x4e\x8b\x3d\x8e\xd9\x75\xfd\xad\x82\x41\x0a\x26\x8e\x01\x44\x07\xa1\x98\x5f\xae\x73\x2e\x5f\x51\x6c\x74\x78\x85\x24\xf4\xb0\xd7\xb9\xb1\x64\xbc\x86\x92\x67\x2e\xd7\x39\x0e\x5d\xe2\x24\x0a\x02\x8d\x9d\xf1\x4d\x14\x65\x82\xf5\xf1\x94\xc4\xd4\x68\x51\xc9\x7e\x04\xa0\xb8\x8c\x09\x36\x74\xcc\x69\x80\x48\x38\x38\xa1\xa3\xe5\xb0\x98\x9f\xc2\x25\x6f\x5f\xb5\x90\x89\xe7\xc4\xcb\x5b\xcc\xda\xc0\x15\x8f\x65\x22\x65\xdc\x51\x50\x4e\x50\xce\x7c\xea\x42\xda\xab\x28\x66\xc2\x20\x74\xdd\xf0\xbc\x1a\x50\x00\xe8\x58\xc5\x12\x93\x36\x86\x8f\xb2\x97\x4d\x89\x21\x49\xd0\x8f\xda\x5c\xb0\x62\x7b\x97\x96\xa0\xc4\x35\x6c\x57\x18\x88\x10\xd3\xd6\x76\x3d\xac\xab\xbb\x5b\x01\x71\xdd\xbc\x53\x4c\x5f\x57\x17\x31\x02\x2e\x8f\x1e\x89\x0e\x54\xe0\xb6\x56\x67\x1f\x87\x52\x7c\x3a\xd6\xb1\xc6\x54\xac\x46\xfc\xee\x7a\xb1\x6d\x6b\x38\x6e\x02\x80\x73\xe4\x90\x3e\xf2\xb9\xcf\x32\xd5\x65\xa8\x13\x12\x00\xda\x26\x05\xd9\x02\x59\xae\x4f\x23\x35\x4f\x9d\x90\x30\xc2\x0a\x83\x4e\x73\xf5\x08\x3f\xeb\x3f\xa1\x27\xb8\xdc\x63\xfb\x6a\x66\xc6\x58\xf7\x79\xe1\xd5\x58\x4a\xf8\xb7\xd1\x35\x85\xc6\x7d\xbc\xe4\xf5\x13\x1f\x64\x9d\x12\x02\x11\xf6\x24\x58\x40\xdd\xa7\x1c\x03\x3a\x69\x7c\xef\xc8\x0a\xb6\x18\xf1\xce\x16\xf5\x64\xc9\x87\x62\x37\xd3\xe7\x60\x53\xf6\xbf\x17\xa9\x53\x9d\xfd\xe0\xaa\x01\x47\xf4\x35\x9a\xb0\x9d\x49\xa3\x95\xa9\x9a\x7c\x82\x1e\xf8\x78\x24\xbb\xcd\x67\xfb\x8d\x46\x0f\x91\x82\x87\x08\xa6\x13\xff\xd9\x18\xc3\x66\x67\x23\x54\xdb\x99\xa0\xc4\x0f\x14\xa6\xb2\x73\x78\x37\x47\xdb\x64\xf5\x25\xf1\x03\x6d\xb9\x12\x72\xb5\x2f\xe6\x90\x03\xea\xdb\x97\xd7\x51\xfa\x24\x09\xc0\xb0\x90\x54\x50\x1f\x5e\x8a\xea\x3c\x19\xd2\x24\xa1\x27\x11\x63\x97\xe6\x69\x6d\xcc\xfd\x24\x76\x6a\xf4\x21\xdf\xf4\x3c\xd4\x9d\x20\xee\xd8\x11\x49\xc2\x48\xa2\x7a\xd5\xf3\x76\xb7\x98\x0d\x38\x69\x68\x3c\x7e\x95\xf6\xcc\x77\x07\x78\xc2\x22\x26\xbd\x4e\xb9\xcc\x46\xe8\xdf\xb0\xa7\xaa\xfb\x1d\xb7\x26\xaa\x7b\x4a\x4c\x02\xf1\x1d\x6f\xc8\xa5\x82\x95\x3a\x82\xeb\x22\x1a\xce\x8c\xa2\x44\x2a\x57\x1f\xc7\xf3\x7e\xea\x1d\xc7\x81\xf6\x9c\x54\xd3\x1d\x4f\x3f\xa7\x90\xd2\x09\x32\x6a\xf7\xe3\x50\x2c\x0a\xf7\xf8\x9c\x74\x92\x78\x14\x1b\x43\xe7\xcf\xb3\xc7\xa5\x41\xef\xb4\x43\xdc\xd0\xa6\x8a\xcb\x55\x70\xf9\xba\xbf\x9e\x61\xff\x5e\xb4\xa3\x52\x21\xbd\x40\x5a\x63\xd9\x67\xff\x52\x16\x97\xe3\xcb\xee\x9d\x97\xd3\xfd\xa0\x3a\x49\x94\x89\xa5\x9c\x76\xdb\x5a\x3f\x82\x84\xaa\xe2\xad\x39\x49\x38\x33\x0c\x8f\xab\xfd\xd7\xc3\xb7\xdd\xf2\xb0\xfa\x63\xf1\x75\xf6\x78\x6f\xea\x0b\x87\xf5\xe3\x61\xb1\x7a\xdc\xef\xda\xd9\xd2\x00\x2e\xb3\xe2\x38\xe0\x66\x98\xf6\x1e\x13\x2e\x13\x4c\xb8\x08\xa1\x7c\x16\xc4\x81\xbb\x8c\x60\xa6\xbe\x8c\x15\xb9\xae\xa7\xc0\x8d\x26\x80\x5c\x70\x77\xcb\xc5\xc0\x3c\x28\xdf\xc7\x0e\x85\x7b\xc8\xd3\x8b\xe5\x11\x68\xc7\x74\x88\x09\x6b\xab\xa5\xf9\x11\x4e\x73\x7c\x60\x4c\xa1\xf7\xba\x1b\xd1\xbe\xc2\x42\x86\xb5\x47\x28\x7b\x8a\x8e\x28\xba\xa3\x37\xb5\xdf\xf1\xa7\x43\x40\x5a\x89\xcd\xec\xf1\x87\xbb\x4d\xcd\x35\x26\xf8\x9c\x75\xb9\xd1\x14\xd3\x9c\x78\x3e\xd3\x03\x60\xf1\x54\xb7\x69\x33\x4f\x18\x09\x82\x12\xce\xbc\x6c\xdc\xbd\x15\x2f\xb3\xeb\x9d\x79\xd5\x3d\xb6\x7c\xcd\x49\x98\x38\xae\xd2\x75\x55\x5d\x9a\x23\x68\xad\xaa\x11\xd3\xd1\x64\x14\xe3\x2e\xc0\x22\xf4\x73\x51\xec\xca\x74\x69\xcc\x87\x0c\x18\xc3\x80\x8b\x93\x38\x10\x64\x48\x17\x76\x53\x7d\xb5\x53\x3d\x1a\x7a\xa4\xe5\xf1\xee\x13\xb3\xfe\x97\x76\x11\x41\x64\x43\x02\x4e\x03\x00\xbb\xbf\xef\xd2\xe3\x0b\xe6\xc4\x4b\x98\x2c\x94\x70\x5f\x68\xc4\x94\x1f\x9c\x70\x6e\xe3\x4f\x5e\xce\xb8\x25\xdd\x8e\xe5\xbe\x34\x39\xf8\xe6\x21\x62\x58\x35\xfc\xe9\x41\xc0\xb0\x25\xb2\xc5\xf3\xbb\xcc\x1a\x0f\x58\x92\x90\x0e\xd1\x65\xf5\x1c\xef\x2e\x23\x79\x23\x37\x9b\x1b\x7c\x41\x73\xb8\x17\x45\x36\xca\xa8\xf1\x40\xfb\x10\x3b\x82\x6f\x04\x18\x8c\x3e\x1f\x7a\x91\x4b\xe5\xe3\x93\x9c\x5f\x67\xa8\x24\x36\x62\xf2\xd3\x3c\x94\x06\x81\x63\xc9\x4a\xd6\x39\xd6\x96\x75\x2a\xf7\x63\xe6\x18\xcd\x43\x15\x62\x41\x1f\x71\x37\xf5\x45\xc0\x0d\xd0\x79\x3c\xdf\xa8\x7b\x57\xef\xfc\x3c\x6b\x05\x0e\xdc\xa0\x26\xa8\x94\xef\x40\x3a\xab\xfd\x57\x37\xc4\xa2\x50\x5a\xae\xe2\x37\xe0\x59\x8f\xcc\xfd\xc3\x1d\xf9\x0b\x17\xcf\x5e\x38\x22\x11\xde\xd0\xfc\x72\x7d\x36\x5d\x21\xb8\x31\x3f\x98\x1c\x2a\x4c\x68\x2b\x78\x83\xac\x38\x43\x79\xe0\x4a\x1d\xcc\x29\x72\x98\x0f\x5c\x79\x1e\xfb\x24\xb2\x32\x87\x5f\xcf\x4b\x50\x17\xd9\xa5\x7f\x78\xcc\x62\xac\x9d\x3d\xa3\xda\x43\x9a\x1f\x51\x63\xbc\x97\x85\xe2\x89\xe6\x18\xd7\x9f\xcd\xc9\xc3\x8f\xf0\xf5\x72\xe2\xb9\xc3\xc3\xdb\x59\x9c\xfa\x18\x91\x1e\xd2\xea\xb1\xa8\x37\xe9\xcf\x9e\xf4\xcd\xe8\xde\x79\x14\x62\xe6\xf4\x6c\x7a\xaa\x0c\xe3\x77\x9f\x3e\x5c\x73\xce\xa9\x01\x99\xfe\x62\xc3\x71\xad\xf1\x5b\x67\xcb\xff\x88\xcb\x3f\xff\x2c\x8a\xd3\xe9\xd2\xe9\xf5\xd8\x49\xc2\x27\x48\x11\x72\xbc\x98\xfe\xda\xc1\xcd\x88\x20\xa2\x86\xcc\xe5\x5b\x05\xa5\x61\xb3\x53\x77\xb7\xe4\x5c\x43\xd7\x8a\x0b\x16\x22\xdd\x41\x75\x39\xad\x32\x1b\x9b\x9b\xd3\xdf\x05\xfc\x5c\xc4\x31\xe2\x17\xcf\x5a\xda\x8e\xec\xac\x0d\x61\xb9\x00\x16\x09\x73\x60\xc3\xb9\xb6\x60\x12\xdb\xab\xd3\xfd\x58\x3b\x59\x52\x1a\x9b\x4c\x56\xfa\xf7\x05\xfe\x07\x05\x63\xc7\x9b\x4e\x85\xd4\x6a\x3d\xd7\x3c\xeb\x7a\x89\xed\x28\x50\xc9\x6c\xea\xe3\x0c\xb9\x93\xe3\xdd\x17\x0e\xd3\xd5\x7e\x60\x6e\x7b\x28\x3f\xcc\x63\x70\xf0\xa9\x87\xcd\x92\x25\xb4\x39\x07\x0e\x21\x05\xaf\xad\x58\xde\x0d\x7b\xd3\x38\x28\x0f\x43\xe9\x53\x9a\x5b\x34\x0a\x96\x9d\x57\x6d\x78\xc4\x31\xfb\x6a\xd6\xfe\xea\x78\x6c\x6f\x5b\xc7\xdc\xf7\x2d\xfe\x6d\x9f\x8e\x04\x29\xb5\x20\xc4\x10\xf1\x6c\x45\x09\xaa\x45\x5a\x08\x12\x25\xa6\x67\xf4\x0f\xf7\x17\x1a\x11\xa4\xe7\xae\xde\xd3\x5a\xbe\xb8\x12\x7f\xe7\x19\x09\x9f\x05\xf8\x3a\x30\xb0\xb2\xfa\xe7\x6e\x88\x07\x89\xef\xf8\xaf\x2d\x51\xfc\xf0\x36\x7c\x61\xea\x57\x7f\x71\xf9\x7a\xc8\x8b\xae\x80\x2a\x82\xd0\xe0\xf7\xac\xa6\xa6\x21\x7e\xeb\xb5\x34\x0c\x37\x86\x08\x3d\xe3\x62\x98\xdd\xbb\x2f\x5c\xc5\xa6\xbf\x9b\x45\xc8\x43\x07\x08\x1b\x10\x3d\xd8\x61\x16\x28\xc4\x3e\x73\xa5\x16\x97\xaa\x2e\x4e\x06\x31\xfa\x54\x16\x6f\xa9\x82\x72\x22\x32\x12\x0c\x12\x3c\x7d\x1f\x8a\xe3\x27\xb8\x03\x3b\x39\x0a\x25\x26\x10\xab\x8c\xbf\x41\x3e\xeb\xa7\xbb\x45\x24\x12\xec\xe5\x7b\x7a\xde\x6e\xdc\xdf\x12\x2f\x30\x59\x23\x53\xa8\xbe\xe3\x55\x0d\xf9\x6a\xff\xb5\xcb\xdc\x88\x04\x0c\xe3\xb7\xc1\x44\xd5\xb0\xd5\x4f\x59\x9b\x61\x17\x9c\x50\xb4\x5e\x2f\xbc\xda\xbd\xa6\x1d\xf1\xf2\xe7\x31\xb9\xe0\x34\xe0\x86\x1f\xce\x90\xcb\xcd\xd3\xe2\x84\x48\xab\x87\x3e\x16\x5a\xf0\x40\xa3\x83\x8f\xaa\xed\x53\xad\xb8\x82\x27\x89\xeb\x6b\xfc\xdf\x4b\x51\x0f\x2a\x84\x42\x50\x62\x40\xfb\xa6\x56\xb7\x3b\xf1\xb2\xde\x9d\x01\x94\x2d\x74\xba\x69\x81\x40\x14\x97\x41\x2b\xb7\x7f\x8d\x94\x29\xc4\x00\x3f\x0d\xa5\x70\xb4\x10\x89\xc6\x80\x70\xb9\xfd\x71\xd8\x7f\xfd\xd6\xfe\x59\x28\x6c\x0f\x79\x9a\xb5\x18\xf9\xe6\x4f\x84\x5a\x37\xfd\x47\x6a\xa5\x3e\xab\xe1\xa2\x11\x8a\x5b\x15\x65\x78\x35\x44\x09\x6d\x8c\x2d\x54\x10\xc7\xa6\xdd\xf5\xad\x78\x85\xa1\xf8\xbf\x9d\x02\x54\xa2\x44\x8a\x49\x2b\x7c\x40\x61\x3e\x7a\x01\xa0\xa2\x30\xec\x91\x4f\x5f\x3a\xa2\x0d\x2d\x40\x33\xbb\x2a\x7a\xb5\x96\xd1\x05\x74\x42\xb9\x03\xad\x16\xca\xc8\xfe\x8d\xee\x4b\x27\xa6\x94\x65\x80\x2c\xcf\x20\x8b\x31\x6c\x40\x92\x50\x84\x4e\x2a\x1b\x8d\xde\xae\xc8\x14\x6a\x2f\x8c\xe6\x49\xe9\x07\x6e\x11\x36\x21\xc9\x71\xb4\xcd\xa5\x97\x44\x56\xed\xa8\xa8\x60\x53\xbb\x97\x2b\x29\x25\x08\x61\xd9\x9d\xa1\x3c\x3d\x70\x51\xb5\x03\x3c\x41\x6e\x5a\x65\x89\x62\xb0\x63\xb4\x9a\x83\x6e\xf6\x81\xe5\x31\xc1\x5f\xd5\xa7\xb4\x6d\x3e\x66\x44\x5a\x1c\x24\x0e\x81\x4b\x77\x05\x46\xe4\xa3\x5b\x0a\x3c\x69\x9b\x7e\x85\xfb\x74\x10\x12\x6e\x2a\xad\x3f\x8d\x71\x6f\xce\xa6\x75\xde\xb1\x5e\xc8\x20\x64\xf8\x3b\x36\xfc\x35\xcd\x55\xd1\xfe\x99\x6b\x6c\x30\x11\x8e\x60\x08\xff\x84\xaf\xb0\xe6\x97\xf6\x4f\xca\x48\xb6\x3b\x34\xfb\xc0\xc7\xed\xa8\x68\xff\xcb\xec\x71\x21\xc3\x20\x0e\x5c\xa4\xdf\x4b\xb7\xbb\x51\x6e\x92\x9d\xf8\xfe\xf7\xc5\xb7\x34\x1f\xea\xf4\x69\x19\x42\x24\xe3\xce\x33\x5d\xf4\x7b\x12\xec\x94\x88\x12\x62\x52\x22\x99\x56\x50\x21\x40\x6d\x3c\x05\xa8\x72\x22\x06\x69\x3e\x48\x54\xca\x44\x0a\xc4\x31\xdc\x15\xa5\x3d\x86\x6f\xa4\xae\xb4\xe4\x7e\x84\x50\x80\xc7\xa2\xe8\x54\x47\xec\x98\xa0\x26\x29\xe6\xe0\xa7\xed\x59\xff\x2f\xfd\xbf\xcf\x2d\x99\x14\x2c\xc1\x04\xe9\x1e\x32\x38\x96\xfc\xb4\x6f\x79\x23\xa4\xe0\x54\xc7\xae\x19\xdc\xe4\xa8\x71\x91\x99\x7e\xf8\xc6\xa1\xaa\x6a\xde\x36\xf8\x48\x49\x12\xdc\x51\x55\x7a\x3a\x1b\x5e\xba\x29\x28\xe5\xe8\x2e\x07\x3c\x90\x83\x1b\x93\x61\xc4\x8d\x4a\xc2\x4f\x6c\xf6\xde\xbf\xf0\x1a\x7b\x33\xdb\x82\x8c\xd5\xd1\x6b\x77\x84\x8c\x22\x6a\xe2\x23\xf9\xc2\xcb\x23\x3c\x17\x62\x8c\x80\x90\x52\x0a\x8c\x61\xa0\x92\x65\xf1\xde\x57\x56\xb0\x13\x54\x1c\xe0\xaf\x90\xa6\xf4\x95\x8a\xcc\xc0\xb2\xf7\xc5\x44\xac\x22\x55\x2c\x91\x13\x37\xcd\x3f\xb6\x58\xbf\xae\x77\xf5\xd4\xb9\x7a\x09\x15\xa9\x14\x78\x49\x4b\x9e\xf5\xf4\xbc\x9a\x7f\xfb\xf3\x30\xdf\x3e\x7e\x73\xc6\x59\x11\x12\x22\xd4\x2e\xad\x9c\x43\xe9\xf0\xda\xb6\x31\x7f\x8a\x60\x41\x11\x9e\x20\x91\x40\x13\xe6\x2c\x32\x5e\x55\xa9\x74\x6c\x53\x93\xd1\xa1\xf2\xa8\x29\x2e\x21\x53\xcd\xae\xd0\xb5\xe4\x7d\xc6\x2c\xad\x68\x9c\x30\xe6\x36\x00\xaa\x32\x6f\x2f\xf5\x12\xd7\x3b\x7a\x24\x7d\x20\x91\xa2\x60\x20\x11\x28\x8d\xba\x28\x9c\x02\xd0\x64\x1c\xa5\x7c\x6a\x70\x82\xa6\xee\x72\x87\x66\xed\x4b\x3b\x06\xda\x90\xff\x1a\xfa\xc8\xe9\x08\x5b\xf9\xd2\x48\xb1\xda\x53\x14\x8b\xe4\xbb\xba\xc8\x61\x70\x8a\xaa\x20\x30\xda\xb1\x46\x11\x7a\x0c\x6d\x73\x93\x2c\x2f\x95\x2b\xbb\x1c\x4e\x2a\x6c\x2f\x00\x0a\xfd\xc5\xa7\xb2\x28\xf4\x56\xbb\x3f\x87\x21\xc1\x3a\x22\x0a\x92\x3c\xce\xe6\x0f\xab\xe7\xdd\x61\x31\x7b\x6a\xc7\x19\x47\x06\x91\x43\xe3\x86\x7e\x7e\xea\xa9\x50\x8a\xc8\x20\xea\xa0\x34\xac\x73\x1b\x43\x68\xbd\x58\x1a\x0d\x6b\xb7\x17\x14\x0b\x35\x96\xc3\x5b\xd2\x9a\xc4\xa2\xca\x12\x4b\x5a\x93\xb8\x89\x00\x58\xf0\xfd\xdf\x65\x0f\x31\xa7\x22\x2e\xd0\xf4\xef\xf6\xb3\xe7\xfd\x7e\xbd\x59\xb5\x03\x02\x88\xd1\xaa\x90\xaf\x8f\xf0\xfe\xb5\x38\x43\x8f\x90\x59\xab\x48\x1b\xc8\xd3\x41\xbe\xbc\xce\x2f\x57\x28\x1f\x4e\x75\x35\x43\x9b\xf1\xab\x1f\x17\x73\x0f\x5b\x91\x04\xd4\xfd\x2c\xa0\x8a\x15\x93\xa4\x85\x91\xa3\x9f\x39\x5a\x9f\x89\x1f\x63\xc4\xdf\x04\xb5\x39\x0c\x4b\x4d\x2a\x09\x04\x42\xf5\xde\x10\x17\xf1\xd0\x06\x6e\x2a\x01\xe2\x2a\x99\xe8\x18\xde\x15\xe5\x6d\xf2\x48\xf1\xc8\x73\x52\x65\xb3\x52\xa4\x35\x94\x77\xe0\x6a\x51\x03\xb8\xc4\x74\xee\x5d\x71\x69\x54\x0c\x9b\x6f\xe9\x15\x49\x4d\x77\xfe\x97\xf1\x5c\xd3\x12\xb2\x83\x1a\x91\xea\xc5\x27\x70\x1c\xc5\xb5\x32\x92\x68\x53\x1c\x25\x4a\x50\x40\xd6\x7b\x5d\x02\x18\x92\xfe\x26\x34\x9a\x90\x2a\xd6\x4a\xf8\x21\x58\x18\xc4\xc3\xef\x8b\x95\xcd\x49\xdc\xe6\xdb\x94\xe0\xbe\x23\xe2\x31\x00\x04\xe3\xec\xde\x5e\x50\x1b\xb2\xbe\xcd\xec\x8f\xc3\x7c\xb6\x5f\x7c\x3d\xec\xd6\xff\x69\x57\x90\x0a\x42\xbc\x4a\xf5\x52\xbc\x5b\x10\xda\x3c\x55\x03\x0b\xd1\xf8\x76\x11\x16\xed\x2e\x79\xbd\xd5\xb3\x8c\x57\x35\xbf\xf2\x7e\xd8\xad\x54\x04\x31\x1f\xc6\x84\x4d\x7c\x5e\xe4\x8d\x33\xe3\x14\xb4\xb4\xd2\x7e\x28\x58\x6b\x3f\x1e\x8a\xe3\x60\x71\x00\xf1\x0c\xe3\x26\xcf\xaf\xb3\x8b\x4a\x5d\x1a\x1d\x65\x8c\xa0\x9a\xb0\xf8\x40\x78\xa8\xda\x22\xd9\xef\x05\xb8\x7d\x0e\x44\x05\x58\x0e\x69\x76\xc6\xe5\x7c\xb0\x45\x27\x59\xa0\x66\x90\x9b\x03\xe6\xad\x0c\x6d\x4c\xcb\x13\xf7\x5b\xdf\x8b\x05\x2f\x66\xa2\x2b\x5f\xdd\x8f\xb9\x8a\x9b\x09\x71\x64\x9a\x71\xb3\xe6\x20\x7b\x86\xbf\x3f\x80\xcc\xd8\xf9\x54\xf8\x91\x6d\x01\x5d\xe7\xf5\x9d\x37\x2b\xcb\x79\x51\x64\x77\xd4\x5a\xfd\x3b\xef\x4b\xcf\xe2\xfd\xf7\xff\x1d\xae\x64\xa0\x3a\xc0\x38\xfb\x31\x95\xaf\xed\x2f\xf2\x49\x82\xa4\x73\x2f\x58\x41\x30\xc4\x59\xdd\xa0\x30\x4d\x09\xd5\xfe\xf5\x83\x7e\x36\xf0\x95\x87\x54\x7e\x87\xb6\x2d\x78\x32\x23\x02\x3e\x30\x2c\x18\xdf\xff\x98\xf7\xec\x14\x04\x5a\x60\x5f\xe1\xf7\xd5\x62\xbf\x7d\xfe\xcf\xfa\xe1\x61\x76\xb0\xcc\x0c\x87\xef\xff\x71\xe0\x33\x08\xa9\x50\xca\xba\x89\x86\x39\x66\x78\xf5\xd0\x0f\x82\x8e\xc3\xfa\xb1\x78\xe3\x93\x07\x21\x30\x62\x34\x4f\x1e\x8a\xe2\xf5\x19\xde\xfa\x0b\x12\x58\xe0\x73\x47\x5d\x9b\x1e\x5f\x50\xf5\xa9\xc8\xda\x24\x09\xb0\x28\x74\x5c\xdc\x3f\x00\x5e\xb3\x6b\xe3\x70\x7e\x2f\xb2\x4b\x9b\x97\x02\xa6\x29\x6e\x8d\x05\x94\x75\xaa\x53\xc9\x6b\xe8\x72\x2d\x83\x43\x0d\x22\x61\x28\x9b\x3b\x90\xbd\xbb\x48\x04\x11\xef\xc8\xb6\x1e\xf8\x49\x14\xbb\x89\x12\xa1\x9d\x1d\xcb\x10\xeb\x1e\x48\x2a\x94\x1b\x1c\xfe\xe5\xb6\x97\x07\x12\x1e\x89\xb6\x51\x0c\x15\x09\x6e\xc8\xb3\x35\x70\xdf\xf0\x92\x55\xef\xfc\x7c\xd3\xad\xe7\xe6\x44\xa1\x43\x45\xac\xab\x59\xd6\x96\xe3\xab\x41\xe4\x0c\x9c\x87\xc0\x7b\x24\x27\xb7\x9e\x1a\x70\x2e\xb9\xa3\xf0\xb4\x2c\xb6\xbf\x80\x8c\xd9\x0f\x8a\xc4\xe7\xb1\xd9\x37\xb3\xb9\x1d\xba\x01\xf7\x8c\x3f\xc2\x13\x5b\x17\xdd\x5d\x04\xe2\xf1\x6d\x32\x73\x10\x79\x82\x48\x00\xcf\xaa\x39\xc6\xea\x68\xd4\x16\x69\x69\x71\x96\x7d\xb4\x3a\x08\x11\x3b\xa4\x0a\x6f\xd6\x41\x0d\xfb\xc2\xe0\xfc\x7b\x79\x4f\x10\x32\xf6\x3a\x7c\xf7\xea\xe7\x39\xe3\x69\x3e\x34\x61\xc2\xe2\x59\x0c\x83\xdf\xd8\x18\x83\xa4\xc6\x89\x3f\xa5\xf9\xae\x35\x8b\x20\x99\xe4\x7e\xbf\xf8\xf6\x54\x16\x3a\x45\x62\xac\xfd\xf5\x0c\xde\x07\xab\x45\xc6\xca\xec\x42\xc3\xa2\xfb\xb4\x7a\xd8\xda\xa3\x70\xf4\xa5\x89\x8f\xfb\xa9\xbc\xe4\xe3\x78\x06\xa4\x8a\x30\x59\x80\x50\xcb\x75\x2e\x87\xdc\x57\xa0\x12\x0f\xbb\x02\xea\xf4\x04\x4f\x8d\xf7\x32\x0a\xb9\x41\x49\x82\xd7\xce\xe1\x0d\x4a\x95\x0e\x32\xeb\x00\xb1\x41\x01\x62\x14\x8d\xe7\x5e\xfb\xc0\x35\xe7\xf8\xc0\x57\x46\xd5\x41\x4d\x29\x6a\x68\xd0\xc2\x47\x96\x0f\x4b\xf6\x3c\xdc\x74\x5a\x6a\xac\xd5\x34\x6f\x4b\xdd\x15\xa5\xc3\xca\x4c\x17\xc8\x41\x43\x80\xdf\xe8\x00\x33\xad\xd0\x71\xf5\xd8\x69\x44\xb4\x73\x43\x4e\x3b\x4f\x3e\x15\x06\x16\xf6\x7c\xc9\x7b\x74\x56\x48\xa0\x89\xad\xdc\x26\xc7\xd8\xcb\x69\x6b\xc2\x62\x7c\xa3\xa5\xa9\xef\x7f\xb0\x03\xfa\xc5\x7e\x4d\xa2\x28\xb2\xf0\x87\xd5\x1b\xcf\x2e\xe8\xaa\xf7\x19\xfe\x34\xe1\x02\x61\x1d\x67\x5e\xf2\xf6\x49\x6a\x8f\x46\x6e\x33\xac\x65\x81\xd0\x7d\x7f\x7a\xc1\x68\xcf\x07\x3c\x01\x70\x8f\x96\x03\xa1\x07\x2f\x72\x73\x04\x43\x3e\x73\x63\x7c\x31\x85\x38\x66\x83\xd6\x9a\x26\x0a\x3b\x24\x04\xf2\xe7\x55\xe3\x51\xcd\x11\xcd\x76\x30\xa5\xb1\xb1\x8e\x4d\x37\xd1\x8f\x29\x72\x53\xcc\xd6\xc6\xc1\x72\x3f\xc9\x57\x81\x6a\x23\x1c\x87\x5a\xd1\x81\x67\x9a\xdb\x57\x3f\xdb\x7a\x05\x76\xbe\xa9\x76\x81\x20\x74\xde\x0d\x85\x82\xe2\x61\x74\xf7\xf0\xcd\xe5\x86\x35\xf3\xb4\x51\x67\x68\x3c\x0a\xe7\x5b\x8d\x5b\x72\x74\x44\x01\x71\x0d\x56\xe7\xd3\x55\x5d\xaa\x67\x07\x63\x1b\xae\x16\x1d\x31\x83\x83\xc0\x74\xfc\xaa\x7e\x99\xf3\xfc\xb5\x2c\xb2\xac\x99\x0f\x1d\x4b\xa9\x8e\x29\x50\x8b\xf2\x33\xe2\x28\x13\x09\x0e\x9d\x50\xd3\xa3\xd7\x38\xc8\x7d\x7f\xc4\x2d\x7b\x9d\x04\x1e\x26\x7d\x17\x0e\xa2\x3b\x2d\x3f\xa9\x35\x0f\xfc\x00\x9b\xf5\xd7\xab\x7d\xef\x94\xd6\x32\x31\x4d\xab\x3b\xa8\xe7\x97\x14\x55\xaa\x6e\x34\x27\xfe\x2f\xfe\xb5\x57\x57\x32\xc1\x1e\x03\x97\x17\xe8\xf1\xc3\x0d\x27\x02\xa1\xd2\xd6\x8b\x5b\xab\x74\xeb\xe6\x6a\x88\x18\x56\x7d\xd6\x79\x75\x69\xa9\x5a\x34\x80\x6f\xb2\xe7\x17\x2c\xea\xea\x4b\xb6\x04\x9e\xb5\x7b\x42\x53\xd3\xa1\x6c\x7a\xe0\x2d\x4f\x55\x37\xca\x7c\x24\xdf\xe0\x28\xa6\xbc\x01\x95\xde\x90\xec\x6a\x8d\x08\x34\xcb\x24\xb3\x2f\xd6\xb9\xce\x2e\x90\xcb\x09\x95\xd3\xbe\xf9\xd7\x9a\x13\x4c\x01\x64\x3c\x97\x2f\x07\x5e\x73\x93\xe9\x53\x84\x90\x90\x73\x17\x20\x54\x86\x4a\xce\x8d\xc4\x1c\x9d\x2e\xae\xd4\x23\xbc\x8f\x82\xe7\xde\xc3\x68\xa6\xf2\x00\xe3\xbd\x1e\xd3\xfe\x0d\xda\x45\x11\xe2\x05\x14\xb1\x81\x82\xe7\xaf\xd4\x7d\x8d\x17\x86\x58\x0b\xb7\x25\xfc\x26\x3e\x75\x70\x0a\x45\x08\x0d\x18\x15\xae\x83\xe7\x9c\x15\x88\xd5\x1d\x6d\xfc\x66\x1a\x0f\x9c\x22\xf1\xb7\xfc\x19\xb0\xdb\x4d\x59\xff\xdc\x5d\x2a\x20\x31\xba\xd5\xae\xf2\x7c\x93\x62\x6b\xe6\x04\x1a\xb9\x19\x0f\x47\x30\x29\x80\x87\x5e\x67\x52\x67\x16\x9b\x99\xa1\x8f\xd8\x2a\xdc\x5c\x9b\x34\xaf\x7b\x09\xbd\x66\x38\xe2\xa6\xd9\xe4\xa3\xce\x0c\xb3\x6f\x9a\x99\x9a\x60\x7e\xa2\x71\x87\x3e\x78\xbc\x81\xf6\x63\xa7\x56\xcd\xeb\xcf\x65\xc0\x14\x21\x2c\x90\xf8\x44\x4f\xfc\xe7\x12\x44\x7b\x4b\x2c\xd6\x31\x71\xbc\x9f\xe9\x08\xbf\xa3\x08\x89\x28\x20\x8e\xc6\x02\x71\x1a\x13\x39\x7a\x3a\x91\x64\x41\x60\xac\x1a\x82\xe4\x60\xe8\x6d\x35\x33\xb4\x2d\x68\xbf\x14\xef\xb6\xb9\xa8\xdf\xcf\xa7\x08\x89\x13\xc3\x93\x5b\xbc\x81\x42\xcd\x7e\x53\xce\xe2\x1f\xab\xc3\x35\x1f\x52\x11\x9e\x7b\xf3\xa2\xea\x0e\x72\x45\x48\xe2\x99\xac\xc9\x15\x78\x99\x5d\xf7\xc0\x4f\xe6\xe4\x44\x96\x82\xe1\x25\x92\x50\x4a\xdb\xe4\xdd\xcb\xe8\x28\x42\x78\x42\xc2\xb8\x05\x02\xf4\xa0\xf2\x8a\x10\x29\x01\x6f\xb6\x2c\x32\x83\x52\xef\x97\x34\x14\x21\x8a\x12\x1d\xf4\x78\x27\xaa\xd6\x62\x28\x77\x09\x00\x8d\x84\x36\x38\x7e\x5f\xf2\xbc\x9e\x00\xba\x0c\x2e\x0a\x3a\x8e\x6d\x26\x03\x8b\x6b\x53\xdc\x30\xbf\x0d\x1e\xbb\x47\x13\x43\xe9\xc4\x95\x32\xfd\xa7\x53\xbe\x86\x22\x9e\x4f\x08\xf2\xa1\xec\x2e\x02\x13\x53\x13\x04\x97\x6e\x26\xf7\x9c\xee\xde\xae\x31\x52\xa5\x33\xc9\x3f\x80\x9f\x47\x9f\x8a\xfb\x1b\xc3\x0b\xa8\xc4\x72\xd4\xfa\x74\x86\x32\xe5\xd9\xa2\x04\x95\xd6\xfd\xd7\xe6\x05\xd2\x10\xbb\xc3\xb8\xcc\xd3\x8c\x29\x23\x3a\xfe\xc7\x62\xb9\x77\xf3\xc3\x58\x60\x50\x84\x1c\xb1\x46\x5c\x3a\x03\x85\xb9\xff\x26\x8e\x77\x44\xb1\xf3\xeb\x4d\x65\xb1\xf9\xb0\x8a\x5d\x65\xcf\xd1\x65\xd6\x55\x7b\x65\x6d\xc8\x89\x1f\x8b\xb2\x7e\x79\x2a\x32\xe8\x37\xcf\x28\xe2\xb1\x28\xc6\x3e\xd9\x92\xa7\x15\x2c\xf9\x95\xb6\x03\x89\x34\xa4\x50\x85\x7c\x35\xd5\xb8\x9e\x13\x88\xe3\x06\x14\x80\x31\xfc\xe1\x69\xbb\xdb\xbb\xc6\xdd\x66\x10\x0c\x95\xde\x5b\x7a\x36\x14\xef\x4e\xcc\x5b\x11\x2f\x92\x54\x74\x32\xfc\xae\x46\xde\x63\x78\xc7\x39\x26\x87\xc8\x25\x12\x7e\xdd\x8d\x62\xac\x66\x06\x50\x62\xe0\x0d\xa8\x3b\xd6\x6f\xae\xf8\xd4\x76\x78\x91\x36\x3c\xe9\xff\x73\xa9\xea\x6d\x6e\xd6\x5e\xfb\xa3\x63\x66\xd0\x8a\x69\x9b\x48\xda\xb5\xe7\x5c\x76\x6d\x67\x71\x42\x8c\xdc\x86\x02\x38\xcd\xa1\x43\xab\xbb\x09\x4a\x60\x4d\x8a\x1b\x45\x8c\xe1\xeb\x4a\x62\xe9\xdb\x52\xf7\xdd\x25\xc7\x25\x6a\x00\xb0\xc8\xd3\xdd\xdf\x28\x5e\xa2\x28\x32\x10\x6f\x9e\xdb\x95\xc2\x99\xd1\x76\x44\xab\xdc\x41\x3a\xd3\xf6\x14\xf0\x78\x62\xa8\x7e\xe7\x69\x3d\x4b\xcb\x61\x3b\xcd\x2f\xf9\xb7\x9b\xcf\x0b\x8a\xcd\xcf\xae\x9c\x5e\xaa\x4f\x98\x6d\xff\xdd\x33\xe7\xc2\xe8\xc8\xae\x17\xdb\xfe\x01\xec\x89\x30\x0c\x6d\xca\x0d\x59\xac\xf9\xc5\x6a\x29\xb9\x71\xa1\xa4\xd5\x78\xd9\x96\x5c\x66\xe0\xb8\x47\x5b\xba\x9f\xe1\xf7\x48\x92\xe0\x29\x7d\x77\xf9\x2b\xcd\xeb\x62\x88\xda\xfd\x00\x9f\xae\x88\xd7\xac\x8a\xd0\x66\xe2\xf9\xd1\x36\x2b\xdf\xec\x5b\xc5\x04\x02\x10\x4c\x5b\xdb\x56\xbb\xfe\xeb\xf6\xc1\x03\x55\xd8\xfd\xe5\xd4\x01\x78\x9a\x77\x63\xd2\xa0\x17\xd2\x53\x73\x72\x5b\x98\xde\x94\x8e\xab\x9d\xaf\x03\x83\xb5\x7d\x29\x2e\x65\xb5\x4b\x73\x09\x5d\x9d\x69\xf8\x9b\x75\xa0\x91\x02\xac\xaa\x8b\xb3\x71\x2e\x76\x2e\xca\x6c\x46\x99\xaf\x6d\xda\xb6\xa3\x18\x35\x63\x94\x04\x1e\xaa\x19\x70\xf5\x96\x56\x45\x59\xdd\x50\x3c\xe0\x1c\x6a\xc2\x29\xc8\x52\x9b\xe3\x6b\xfe\xca\x8d\x74\xdd\xb1\x89\x93\x9b\x85\x78\xdf\x9a\x3e\x4a\x94\xf4\x7b\x9c\x3b\x50\x55\x7d\x09\xa6\xfe\x73\xa7\x5e\xe0\x83\x72\x89\x54\xbd\x2f\x2c\x98\x7f\xf2\x04\xa0\x1e\x53\x08\xcd\xfb\xc3\xfe\x8f\x44\x5f\x46\x13\x54\x8c\xd5\xc7\xc6\xe3\x16\xbc\x72\x8f\x80\x52\x22\x3c\xe9\xdc\x5d\xcb\x04\x7c\x3a\xdf\x78\x58\x94\x86\x80\x55\x7f\x14\xb4\x7d\x5e\x1c\x96\xab\xa7\xed\x6e\xbd\x3f\x3c\x8d\x48\x5e\x15\xa1\x7e\xc4\x31\x0b\x84\xb1\xfb\x43\x5a\xf7\x49\xcb\x9a\x61\x45\x85\x93\xd1\xcd\xb8\x71\x72\x17\x2f\x50\xf5\xf2\xf9\x38\xcb\xa7\xf6\xbe\x56\xb9\x42\x6a\x26\xf3\xfe\x46\xf7\x15\x44\x2c\xd6\xb6\xe9\xed\x82\x19\x0a\xe4\x7e\xef\x09\xf2\x0f\x9f\x6a\x20\x15\x22\x15\xd0\x30\xdb\x1e\xb1\x65\x5a\x82\xbc\x95\x20\xef\xff\xcb\x82\xd1\x03\x0f\xa9\x21\x41\xb8\x07\x4b\x14\xae\xe0\x27\x54\xfb\xe2\xc9\x58\x5c\xf7\x33\x22\xea\x61\xa7\x96\xe3\xf2\x6d\x6b\x13\x76\x3c\x26\x04\x31\x16\xe2\x72\xb5\x9c\x8d\x93\x4c\xd8\xcd\x4c\xc6\x85\xed\x97\x59\xd9\x6a\xd8\xb8\x10\xd1\xcc\x8a\x42\x74\xc0\x5c\x98\x63\x99\xf5\x9a\x11\xce\xa8\xe9\x03\xe5\x46\xa4\xf6\xf0\xe6\x75\x83\x92\x62\x4c\x86\xbc\x45\x7f\xb7\x7f\xd5\xa1\x0b\xfd\xd1\x58\xdc\x15\x25\x36\xe5\x0e\x9f\x44\x12\x09\xf4\xac\x5a\x76\x81\xf4\x74\x39\x7d\xa4\xbf\xd3\xcc\x8f\xa9\x95\x2e\xb3\x31\x85\xfb\x3b\x0f\x9d\x64\x97\xc5\x7e\xa2\x28\x3a\xcf\xd5\x75\x74\x05\x1e\x68\x84\x52\x09\xd9\xee\x2b\xce\x14\x3a\xf7\x78\x9f\x0f\x45\x7e\x5c\xfd\x84\x52\xa6\x55\xe7\x6c\x0d\xd1\xaf\xbf\x0d\x1e\x75\x6f\xec\xb7\xd1\x57\x25\xb1\x53\x44\x5d\x22\x2c\x08\x6b\x08\x8e\x95\xce\x4e\x12\x1e\x0b\xfd\xb6\xcd\xc8\xa6\xaa\xda\x04\x5d\x33\x21\x89\x90\x7b\xaa\xb7\x0a\x4e\x45\xdd\xfd\x74\xa1\x3d\x84\xe9\x55\xe7\x34\xdf\xbf\xc0\x8f\x17\x80\xac\x1b\x8b\x31\xa4\xb4\xda\x68\xc6\x23\x18\xf8\x03\x54\x06\x86\x22\xd0\x32\xc5\x62\xa7\xae\xa1\xfc\xe8\x1d\x17\x54\xc6\x12\xeb\x5f\xe6\xe0\xc2\xe0\x68\xf4\x5c\xa5\x64\x89\x6b\xda\xfc\x31\xa4\x57\x52\x84\x2a\x12\x5b\x55\x8c\xce\xcd\x1d\x14\x94\x9a\x39\x9e\xef\xdc\x46\xd3\xa8\xd6\xc2\x6e\x62\x37\xc3\x8f\x11\xbb\x35\x3b\x17\x59\x56\xec\xe0\x5c\xc3\x69\x8e\xe2\xe9\x2e\x03\x38\x6d\xe0\x54\x60\xc0\x8e\x26\x61\xfd\x11\xf1\x75\x33\x31\x34\x82\xf3\x15\xd4\xb3\xb2\x5e\xbd\x4d\xb4\xdd\x35\xb3\xb8\xa9\x8b\x1d\xbb\x72\x21\x66\x3d\xba\x77\xa2\x94\xc4\xbe\x20\x8b\x80\x37\xd9\xa8\xdf\x3a\xd2\x0d\x45\x28\x78\x01\x02\xeb\x5d\x3b\x80\x7d\xf3\x55\x77\xc2\x50\x08\x25\xa6\xb6\x4e\xb5\x5c\xf2\x34\xbb\xee\xce\xbd\x75\x03\xb1\xc6\xf4\xfc\x66\xfb\xf8\x6d\xb3\x7a\xdc\x1f\x16\xeb\xfd\x9f\x87\xbb\xd5\xaa\x9d\xc0\x0d\x13\xef\xf2\x22\x5f\xfb\x1e\x34\x05\x29\x90\xdc\x66\x2b\xd2\x1a\x79\x05\xd2\xfc\xe7\x60\x82\x0e\x03\x86\xcc\x90\x69\x96\x71\xe3\xe6\xdc\x71\xd9\x92\x54\x36\x33\x62\x91\x38\xe6\xe0\xf3\x39\x4b\x0d\xc7\xde\x0d\x07\xd8\xe8\xe9\x6a\x69\x7a\xed\xde\x55\xfa\x66\xc0\xa6\xb6\x09\xc5\xa3\xf6\x0d\xfb\x84\x92\xd0\x00\x82\xde\x79\xa9\xfa\x8a\x33\x8a\xf8\x9e\x1f\x11\xd1\x75\x7a\xdb\x70\x6b\xb0\xd0\x7c\x2f\x64\x61\x1f\x5d\xb8\x74\xbd\xb2\x56\x72\xb2\x3b\xeb\xdb\xbe\xb4\xe6\x53\x82\x23\x83\xc3\x43\xfa\x3a\xb1\x98\x3e\xf5\xc0\x7c\x4f\xc5\xe8\x49\x1e\x5c\x12\xb6\x2f\xf6\x3a\x55\x1f\x50\xc4\xa7\x1c\x30\xa1\xa4\x0a\x87\xe5\x1c\xe4\xeb\x14\xf1\x7d\x19\x20\xec\x8b\xab\x1b\xd9\x8e\xfe\x5a\xf4\x7d\x2b\x00\x8d\x29\xa9\x47\x7e\x6a\xb7\x93\xef\x03\xc3\x46\x83\x73\x09\x8e\x59\xf8\xb3\xf2\x78\xf3\x09\x9d\x78\x03\x71\x00\x00\x85\x67\x61\x3f\xe7\xe0\x07\xa1\xcf\x4c\xf4\x72\xbc\x4b\x33\x58\x64\x05\x86\x08\x23\xc7\x77\x62\xdf\xf8\x21\xd3\x58\x15\x31\xdb\xd0\x62\x86\x31\xac\x75\x47\x9e\x1f\x0a\xc0\x0e\x18\x6c\x12\x98\xd4\xff\x69\xef\x23\x84\x00\xbb\xc4\xb1\x4c\x7a\x80\x4a\xf2\x33\x0c\x4f\x17\x9f\x11\x93\x95\x50\x25\x4f\xf3\x41\x67\x56\x33\x48\x19\x06\x92\xc6\xe9\xc4\x12\x10\x8c\x57\x13\x13\xa6\x87\xf6\xd0\x56\x31\x26\x17\x5d\xc4\x28\x16\x2d\x8a\x3c\xbb\x3a\x19\xa7\x6d\x69\x1b\x6a\x26\x1b\xdc\x7e\xeb\x6c\xab\x1f\xc5\x8a\x38\x0d\x6f\xe0\x95\x13\xb6\x9d\x0e\xae\xfd\x38\x21\x98\x13\xb8\xcb\x8a\x92\xdf\xa5\xb2\xbf\x73\xfd\x24\x11\xe8\x3d\x41\xae\xc6\xd5\x5c\x45\x7c\x11\x78\x08\x3c\x12\x98\x35\x19\xe6\x56\x7c\xa1\x8d\x7c\xe1\xf3\xec\xf1\x7e\x85\xa0\x8c\x43\x7b\xc4\xfb\x32\x36\x8a\x07\xcd\x6a\xcc\x8f\x90\x8d\x9e\xb3\xd4\x3a\x31\xbf\xe0\x6d\x83\xa4\x01\xcf\x6e\xfb\xae\xf6\x5f\xe7\x2d\x36\x50\x11\x5f\x85\x14\xbb\xf4\x4a\xae\x75\x06\x4b\x07\x18\x6d\x46\x12\x86\x01\xc6\x89\x57\xaf\xeb\x49\xc9\x27\x45\x7c\xf0\x08\xb2\xf4\x6d\x9f\x67\x8b\x87\xf5\x7f\x56\x87\xfb\xd9\xce\x60\x97\xee\x7f\xac\xfe\x74\x97\x02\x9f\xe0\x6b\xaf\x8a\x13\x6c\xa0\x7e\x29\xd4\x4d\xf1\x60\x7c\x5d\x16\x23\x26\xfc\x7b\x91\xbd\x56\x35\xb4\x8e\xbc\x0f\x89\xc0\x66\x89\x87\xe2\xf8\x0c\x12\x52\x03\x10\x1a\x96\x9a\xe3\xf1\xc5\x12\xad\xcd\x49\x78\xa9\xf6\xc5\xa5\xbc\xa9\xe5\x75\x53\xb5\x36\xc5\x0b\xb3\x23\x1c\x2e\xd5\x0c\x06\x5e\x10\xa3\xf4\xe2\xc9\xa9\xbf\xb9\x01\x4a\x18\x46\x17\x8b\xe7\xed\x6e\xe7\x8a\xd1\xed\x20\x8f\xb0\xe1\xf0\x74\xc9\xea\x74\x07\xb9\x9a\x4d\x2f\xa4\x80\x4a\x40\x27\xd9\x41\x7f\x6b\x6e\xb9\x5c\xab\x79\x71\x39\xbe\xd4\x1d\xe3\x99\xfd\x80\x4f\x8c\x36\xdc\x2c\xcf\xe1\x27\x1c\x76\xdb\xc3\x72\xfd\x7d\x76\xd8\xcd\x76\x56\x57\xa3\x99\xe3\x49\x0c\x8a\x0e\xc5\x19\xf2\x79\xf1\x73\xf8\x7b\x03\x3f\x94\x58\xde\xb2\x98\x22\x43\x2f\xdd\xda\xdb\x0f\x0a\xa4\xd3\xef\x2c\xf0\x1b\x27\x13\xf7\x3f\xc2\xcc\x83\x2f\x3d\xbe\xff\xd1\xd4\x10\x3c\x7c\x23\x87\x14\xf9\x59\xdd\x9a\x0f\x18\x61\x48\xb7\xc4\x95\x9a\xc3\xad\x0f\x3f\xb9\x06\x83\xc8\x03\x6c\x15\x78\x00\xc3\x6a\x53\x8d\x6d\x77\x10\xf9\x11\x06\x29\x7f\x5e\xfe\x79\xb9\x94\x3c\xfb\xa7\xc8\x8a\xba\x38\xb8\x54\x48\x10\x25\x86\xe2\x59\x5c\xca\xfc\x5b\x5e\x15\x99\x9a\xb2\x2a\x41\xc4\x4d\xc6\xe4\xd8\x38\xed\x50\x1e\x21\x97\x57\x57\xcb\x1e\xa9\xe2\x0c\x3f\x18\x93\x08\x61\xec\x5f\xa1\x2c\xf2\xb4\x4d\x0f\x05\xb1\xa7\x63\xeb\x84\x59\xed\x9e\x3d\x94\xa7\x6a\x4c\x34\xea\x66\x0b\x83\x44\x48\x73\xdc\xf2\x3d\x12\x89\x66\x50\x99\x7e\xdf\x23\xd4\x5b\xad\xad\xff\xe3\x06\x79\xe0\x39\x99\x80\x25\x1c\x4b\x80\x61\x0e\x27\xe0\x01\x13\xa4\xc5\x4a\xd4\x97\x12\x56\x3f\xcf\x3c\xaf\x9a\x33\xfa\x93\xae\x6c\x45\x02\x41\xbc\xc4\x36\xcf\x19\x2f\xf6\x19\xaa\xe2\x52\x4a\x98\x80\xbe\x37\xd3\xb5\x4c\xcc\x83\xbe\x42\x79\x38\x73\xe7\xbf\x04\x32\xf1\xbc\xd0\x91\x3c\x5c\x79\x56\x5f\x51\x2b\xb0\x1a\x7d\x5e\x8a\x00\xb9\x20\x9c\xeb\x7d\xe0\x59\x76\x98\x94\x3d\xb4\x1f\x50\x94\x61\xc6\xc0\x14\x1a\x77\x75\x69\xc2\xee\x89\x1a\x40\xa0\xa8\xa9\x8f\xcf\x33\x2e\x5f\xb3\xb4\xea\xb7\x99\x8f\x6e\x43\xc5\x26\xad\xc9\x5b\xbd\x95\x43\x89\x50\xf1\xa7\x8c\xd7\xba\x28\x4f\xae\x17\xa1\x99\x2b\x54\xcb\x69\x88\x77\x1a\xb8\x11\x08\x43\xcc\x93\x6c\x56\x33\x27\x64\x65\x47\x34\x31\x08\x8d\xa7\xb4\xaa\x53\x29\xd3\x85\x63\x3a\x6f\xc6\xc0\x23\x51\x5f\x23\x62\xa6\x9c\x41\x08\x49\x90\x60\x35\xd2\x21\x00\xa9\xdd\x83\x34\xf8\x6d\xf0\xaf\x7b\xf1\x21\x09\x43\xa3\xdd\x7d\xc9\x5e\x5d\x8e\xe7\xa9\x98\xdd\x30\xdd\x4e\xec\xe1\xd0\x0b\x02\x87\xa3\xde\xf0\x57\xe8\x2f\xb8\xd0\x63\x0c\x99\x72\xf4\x4d\xcb\x3f\x0e\x0a\x5c\xf5\x27\xfe\xd3\x26\x87\x06\x79\x98\xd0\x53\xa6\x47\x0f\x75\x0e\x6f\x50\x1a\x76\x12\xd5\x42\x3b\x8a\x37\x23\x6c\x3c\x51\xdc\x57\x24\xf4\x13\x4f\x19\xdd\xa6\x53\x9a\x1f\xfa\x94\xe7\x9f\x75\xe7\x2a\x12\x06\x24\x42\xc7\x67\x07\xf5\xae\x86\xb3\x4b\x5f\xfe\x28\xf9\xf9\xfc\x51\xb8\x12\x06\x94\x61\x22\xf9\xe0\xa0\xf6\xa6\xf5\xbe\x97\xbf\x70\x13\x99\xe1\x93\x3d\xa5\xd8\x5b\x6d\x8a\x5c\x69\x7e\xec\xaf\xb9\xcf\x8c\x5e\x18\x24\x8c\x7c\xc4\x39\xfb\xaf\xdc\xe4\x30\x90\xca\x82\xd7\xd4\xbc\xe0\xa5\xda\xb5\xcc\xec\x1e\xf9\x6d\x58\x11\x98\x5c\x0e\xbf\x9a\x65\xbf\x86\x25\xc2\x2d\x93\x1f\x69\x6e\x14\xbe\x47\x86\x35\x64\x4d\xac\x6a\xd2\x38\x35\x2c\x0a\x35\x3a\x95\xc3\x28\x36\xd9\xc6\xdd\xe6\x7e\xe1\x56\x49\x1c\x11\x44\x75\x23\x9d\x4f\x7d\xc8\x3a\x72\x0c\x45\xc2\x84\x08\xae\x7a\x1d\x0f\x36\x35\xb7\x2f\x1a\x33\x3d\x6d\xca\x42\x11\x49\xac\x9d\x5e\xb0\x16\x8b\x12\x5a\x13\xce\x44\x28\x78\xa0\xac\xdc\x92\x15\xaa\xda\x17\x56\x62\xb9\x0f\x58\x1a\x7d\x4a\x46\x26\x61\x57\x71\x0d\x9b\x4b\x36\xed\x01\x84\x32\xf1\x0d\xa6\xa1\xd9\xdc\xfb\x41\x0c\x18\xca\x84\x2b\xdb\x76\x82\xd5\x66\xa3\x50\xf2\xc6\xd3\xac\x79\x00\xb7\xaa\xa6\x53\xa8\xa6\xe6\x32\x22\x0c\xc2\x96\x28\xa6\x9c\x14\x2f\x51\x24\x54\x49\x82\x75\x96\xfd\x1f\xcb\xd5\xc3\xcc\x39\x72\x21\x48\x26\xad\x99\x46\xff\x3c\x18\xbd\x28\x00\xd3\x01\x5f\x03\x3f\xcd\x06\x3e\x52\x08\x5a\x61\x1e\x55\x61\x7a\xae\x28\x67\x76\x80\x11\x12\x22\xc0\x65\xb6\x6c\xff\xc2\x29\x32\x66\xab\x62\x77\xe2\x59\x86\xe1\xd8\xbf\xc0\x05\x28\xc2\x3c\xc2\x31\x89\x8e\x2d\x47\xe7\x22\x1b\x13\x9c\xfd\x8b\x2b\x44\x1a\xbb\x37\xb7\x9b\xf5\xaf\xfd\xa0\xc1\xa3\x65\x54\x46\x48\xec\xb5\xc8\x80\xe7\x73\x9e\xbf\x42\xb9\xe0\xb9\x4a\x5b\x52\x19\x7b\xd2\x30\x9f\x78\x68\xe0\x0e\x87\x12\xaa\x22\x7b\x1b\x2d\x77\xe6\xeb\xd0\x06\x52\x0f\x69\x5d\x63\x8b\x7b\xca\xf3\x1e\xea\x4c\x11\x16\x50\xa6\x2c\x87\xda\x1b\x94\xf5\xb7\x4a\xed\x0b\x4c\xd1\x8e\xae\x15\x44\x1a\xf3\x70\x07\xe7\xd1\x8a\xfa\x63\xbf\x8c\x85\x41\xe0\x3c\x9c\x45\x91\xb6\x75\xca\xbe\xe9\x62\x61\x1c\xa3\x6d\x7f\x30\x3c\x5f\xcb\xb9\xbd\xb1\xc9\xcc\x2a\x63\x32\xc6\xa2\xab\x65\xff\x98\x5f\xae\x98\x18\x76\x36\x7b\x72\xf5\xb1\x88\x11\x65\xb8\xe8\x1b\x7b\xb8\xd5\xdb\xf2\xf8\xa5\x1d\x62\x58\x90\x6c\x39\x8b\xb2\xa2\xfa\x80\x19\xff\xa6\xdf\x62\xf4\x25\x49\x8c\xde\xb3\x2e\x2e\xe5\x3b\xc0\x6b\xd5\x7e\x45\xa2\x0c\x6d\x21\x4c\x4b\x60\x28\xc2\x62\x3f\x40\x57\x17\x0c\xb0\xec\xf9\xd2\x6c\xff\xd9\xe8\xd1\x27\x34\x32\x30\x72\x7e\x82\xea\x01\xf4\xc8\x8b\x60\x49\x6c\x78\xf2\x1e\x8a\xe3\xd7\x42\x65\x56\xbe\xf3\xf3\x63\x89\x25\x31\x75\x89\xe3\x25\x9c\x2e\x65\xe3\xf0\xce\x6e\xc8\x07\x9b\x89\x89\xc4\x8c\x50\x13\x28\xdf\xc1\xaf\x60\x06\x8c\x13\x1d\x3a\x68\xc6\x35\xe7\xa7\x54\x2e\x20\xc5\x5f\x75\x8b\x8a\x6d\xa6\x87\x46\x49\x1c\x05\xe5\x66\x59\x66\xfd\x65\x7c\xcc\x83\xd5\xc2\xe3\x84\x9b\x28\xf2\xe7\x43\xdf\x44\x33\xe1\x83\x21\x16\x7a\xe1\xf2\xb5\x39\xf9\x8a\x22\x6b\xc7\x82\x00\x4f\xc7\x3f\x7f\x5f\x4c\xd6\xb5\xa6\x4e\x7a\x26\x98\x8e\x3a\xfd\x56\x57\x6b\xed\xe3\x60\xdd\x44\x6e\xb4\xe7\x7f\x94\x50\xd5\x19\xb4\xa8\x25\x45\x98\x0c\x03\xdd\x35\x51\x3f\xc2\xcf\xba\xeb\x74\x68\x86\x23\xc3\x81\x5f\xa5\xc7\x9c\x67\x7d\xf3\xcc\x64\xe2\x61\x0a\x12\xa3\xbc\x2a\x3d\x9a\xbd\xe8\x06\x39\x65\x1d\xa7\xa3\x32\x9e\x72\xbb\xde\xa4\x92\x48\x87\xd9\x13\x7c\xb0\x02\xf4\x6e\x86\x0a\x0c\xc1\xfc\x5f\x2d\xd2\x87\xe9\x16\x08\x5e\xd5\x65\x71\xdd\x5c\x07\x0f\xca\x4d\x4a\x22\xbb\x92\xeb\x7d\x09\xbc\xba\x94\x13\x74\xfc\x8a\x44\x24\x92\x48\x7f\xf6\x04\x65\xe3\xbd\x36\xbb\xba\x2c\x46\xc5\xb7\x88\xc4\x80\x99\x82\x65\x21\x2f\x27\xc8\xeb\x05\x94\x75\x81\xc9\xca\x36\x91\x33\xc5\x8d\x33\x58\x0e\x91\xa7\x23\xd1\x13\x15\x1d\xc6\x21\x91\x2f\x43\xfc\x8a\xf5\xc6\x89\x28\xb7\x03\xa6\xdb\x74\xf7\x6d\xb1\x58\xed\x76\x87\xbb\x87\xd9\xbd\x1b\x0b\x02\x13\x13\x2c\x81\xd7\x2f\x26\x2d\x7a\x48\xdb\xc1\x88\x27\x16\x4a\x74\x5f\x64\x0a\xdd\x2d\x80\xe1\xd1\x14\x05\xdc\x8f\x1d\xd0\xd0\xa5\x05\xdc\x90\x82\x58\x5a\xef\x3d\x95\x45\xfb\x67\x4d\x31\x5c\x79\xfa\x3a\xdb\xad\x0e\xde\x01\x53\x1e\x6e\x30\x94\x1e\x16\xe1\xde\x52\x78\x7f\x2c\x72\x59\xf1\x56\xf4\x64\xb4\x8d\xa2\x28\xd0\x88\xff\xba\x5f\x3d\xee\xd6\x3b\xa3\x67\x7f\x58\x6c\xbf\x3d\xba\x1a\x78\x14\xc5\x1e\x96\x80\x54\xfa\x36\xef\x0a\x7d\x51\x1c\x1a\x75\x40\x83\x3d\x13\x50\x62\x8b\xf3\x15\xca\x6a\x9d\xdb\x0e\x8b\x7b\xde\xfd\x8c\x98\x31\xf4\x82\xab\xf4\x1f\x18\x92\x78\x28\x12\x25\x89\x00\xbb\x71\x9e\x8b\x0c\xa6\x32\xec\x11\x8f\x0d\x59\xe9\x73\x5a\xb5\xfd\x8c\x6e\x48\x1a\xe9\xe0\xa2\xe4\x32\x4b\xff\x81\xc3\xdf\x17\x28\xaf\xe3\x2d\x8b\x2f\xda\x51\x4f\x75\xdf\xcd\x15\x17\x7e\x2b\xea\x34\x88\x03\x22\xa1\x35\xb1\xef\x0e\x09\x4e\x47\xb7\x2d\x43\x43\xf4\x5e\xbf\xa4\xb9\xa1\x81\xb3\x03\x10\xa9\xc8\x16\x1b\xf7\xfb\xc5\x47\x62\x4c\xcd\xc4\x44\x3b\x8e\x92\xff\x29\x44\xd5\x8f\x60\x22\x4d\x13\x14\xaf\xe1\x4a\xd9\xce\xda\x96\x0d\x74\xd2\x30\x37\x6e\x03\x06\x24\xf7\x25\x40\x8e\x32\x32\x77\xbc\x3c\xb5\x97\xf3\x39\x16\x36\x9f\x0b\x61\x3c\x83\xa1\x6f\xf9\xdb\x44\x40\x1a\xe9\xd8\x43\xa6\x64\x97\x86\xb4\x75\xaa\xea\xd3\x88\x3c\xd2\xca\x00\x96\xb7\xb2\x2e\x04\x94\x1e\x3d\x50\xe2\x45\xf6\x3e\x62\x4f\xb0\xd8\x74\x46\xbd\x57\xdd\xdf\x12\x4c\x11\xe5\x50\xbf\x17\xe5\xab\xa1\x85\x75\x63\xda\xe8\xe3\xcc\x9b\x35\xe9\xdc\xc0\x98\x7a\x02\xa5\xb2\x05\xd4\x7d\xc7\x26\xa6\x51\x88\x27\xda\x8f\x22\xd3\x25\x3f\xcd\xb2\xf3\x0b\x6f\x3f\x13\x25\xc2\x50\x4e\xe0\x99\xb1\x2f\x2e\x65\xce\x7b\x75\xb7\x98\x02\x8f\x5d\x8d\xd8\x82\x66\x27\x5f\x5b\xec\x27\x61\x68\x08\x09\xfe\xba\x54\x86\x09\x0b\x71\x74\x76\x38\xd0\xcc\xb5\x49\xd8\xfe\x02\x13\xae\xd8\x07\x14\x87\xb1\x6f\x38\x0d\xd3\x13\x3c\x74\x99\xd0\x38\x14\x31\x7a\x7e\xfb\xf5\x66\xb5\xd8\xae\x1f\x47\xdf\x1a\xca\x18\x9f\x04\x82\x3a\xfa\x45\x8c\xf6\xf3\xc0\x30\x0d\x7f\x6f\x08\xea\xa6\x18\x19\x14\x89\x99\x1f\x22\x1e\x0c\x49\x65\xaa\x96\xd4\xd5\x5d\x84\xc5\x94\xfa\x2d\x60\x68\xb6\xff\xc3\x90\xb6\xb4\x3f\x8e\x71\x43\x42\xdf\x7c\xec\xd0\x18\xa4\xc9\x45\x10\x47\x8a\xc6\xb1\xeb\x74\xef\x72\xca\x71\x4c\x22\xd2\x6a\x9f\xde\xe8\xb0\x8e\x2e\x12\xeb\x90\xa8\xd6\xc6\x40\x59\x2c\x20\x53\xbc\xbd\x95\x24\xa0\x98\x63\x5e\xcd\x9e\x1f\xfe\x3c\xac\x1f\xbf\xaf\x76\xfb\xed\xf3\xe1\xc7\xec\xe1\x61\xb5\x6f\x27\x45\x3e\xba\x6b\x90\x1f\x4b\xfe\x06\x23\x01\xc0\x81\x71\x70\xa7\x40\x9c\x80\x87\x08\x1a\x9b\x64\x1d\x50\xfc\x29\x12\xf3\x28\xc6\xed\x6d\x3f\xb4\x2f\x76\x78\x91\x61\xce\xc2\xce\x15\x71\xa2\xad\xe0\x56\x13\x25\xed\xea\xe2\x7c\xee\x3d\x6d\x21\x4d\x9f\x77\x56\x1c\x9f\x41\x7f\xf0\x18\x84\x06\x6a\xd4\xbd\x6c\x38\x80\x2e\xe7\x4d\xa7\xa8\x22\xb1\x64\x46\x67\xd4\xa8\xda\x3c\x41\x59\x8d\xcb\xe5\xb1\x62\x86\x30\xc9\xf5\xb8\x0c\x38\x98\xdb\x39\x11\x16\xa0\x4f\xaa\x36\x61\xde\xc0\x2c\xc6\x40\x7d\xac\x9d\x1e\x8b\xcc\xd5\xe3\xf8\xb1\x7d\xc3\x9a\x4a\x16\x0d\xf2\x22\xb3\x91\x67\x98\x10\x42\x10\x94\xb5\xd8\x3e\x6c\x1f\x57\xcf\x7d\x63\x9e\x78\x5e\x82\x80\xb5\x53\x51\xd6\x47\x7e\x1c\xe5\xef\x12\x2f\x90\x78\x52\x3e\x43\x36\x90\x11\x6f\x86\x44\x88\x61\x41\x0e\x06\x8d\xdd\x85\x3e\x76\x82\x1f\x85\xae\x44\x89\x9e\x0e\xee\x00\x3c\xd3\x06\xaf\x3f\xf1\x93\x18\x8f\x23\x97\xab\x59\x2c\x9f\xa6\xdf\x4c\xe2\x03\xc1\xb3\xf1\xcc\xaf\x13\xdc\xf7\x8a\x24\x01\xe1\x88\xb9\x12\x5d\x01\x21\x09\x98\x42\x3c\x6d\x65\x7a\x7a\x36\x69\x0e\x25\x1f\xd5\x4f\x92\x20\xd1\xd8\x91\xf2\x6d\xfd\xb8\xa7\x21\x3b\x6c\x66\x7f\xb4\x9f\x57\x8a\x5a\x18\xc5\xc3\xc3\xf7\x03\xa8\xb4\x3e\x78\x2e\xa7\x97\x84\x91\xa9\x61\xb9\x04\xe5\x23\xd4\xeb\x5c\x16\xed\x49\x9c\x84\x2a\x48\x8c\x88\x5d\xa1\xd3\xda\x07\xc7\x4d\xd3\x0c\x81\x21\x54\x4b\xf3\xb4\x4e\xb1\x04\xbd\x29\xd4\x25\xeb\xf5\x83\x8d\xf2\xda\x09\x8b\x0c\xed\xd5\x9e\xe7\xaf\x3b\xc8\x32\x2b\x99\xed\x46\xe3\x50\xb8\x74\x75\x5e\x97\x29\x0c\x4e\xb8\x84\x89\xd8\xaa\x86\xd4\x97\xf3\x33\x96\x7f\xdc\x50\xe4\x73\x6c\x20\x1a\xa8\x4e\x56\x77\x65\x71\x9a\xac\x00\x76\x0f\x3c\xf6\x0c\x6b\x4f\x05\x4d\xdc\x7a\x82\x9b\xdd\x9b\xc4\x54\x43\xcb\x8b\xd3\x98\xdf\xe5\xa5\xe4\x3d\x33\x9a\xc4\xbe\x01\x1d\xe3\x84\xe7\x66\xa8\x7d\x40\x71\xec\x61\x17\xf9\x66\xf6\xf8\x75\xb6\xdf\xcf\x1e\x9f\x9e\xb7\x7f\xfc\xb9\x99\x2d\xd7\xbb\xed\xe3\xac\xad\xb8\x24\x49\xe8\xe1\x4a\x33\x46\x74\x93\xe6\x63\x76\x0e\x9c\x23\x7c\x63\x68\xf5\xa5\x25\x6a\xb9\x7d\xc2\x9c\x71\xc4\x72\xb8\x27\xd1\x23\xd6\x50\x24\x11\x84\xa3\xd3\xff\x0c\x3c\x5b\x55\xbd\x73\x33\x91\x22\x26\xa6\x4f\xdd\x7a\x63\x03\x30\xeb\x30\x46\x4e\x14\x10\x44\x7c\xa4\xb9\x2c\xa1\x77\x24\x26\x40\x3d\xdc\x0a\xe9\x31\x2f\x4a\xbb\x4f\x82\x9e\xc5\x49\xc0\x0f\xa9\x4d\x0a\x35\x96\xe4\x52\xad\x47\x0b\x19\x38\x98\xf6\xe2\xc5\x6c\x33\xd8\xae\xa0\x34\xba\xda\x6d\x0a\xbb\x5d\x36\xa0\x69\xe0\xf5\x08\x39\x46\x0f\x4e\xc7\x21\xf6\x35\xa0\x46\x5d\x9a\xb7\xbf\x58\xc7\x11\x12\x9c\x7d\x87\xfc\x52\x7d\x12\xb5\xb5\xd3\x05\xa2\xe0\xb9\x52\x7f\xfc\xf9\xef\xb2\x3b\x09\xd2\x1f\x59\x30\x88\x2d\xea\xba\xf5\x58\x4d\x84\x35\x89\x16\x12\x1f\x1f\xb2\x8b\x19\x3f\xd0\x78\xe2\xc5\xc7\x4c\x1a\x93\x6f\x88\x93\x50\xbb\xd6\xc4\xf5\x61\x37\x7c\x22\x9c\x30\x8d\xa4\xfa\x32\x2b\x72\x40\x88\xcc\xe4\xe6\xe0\x1e\x57\x3a\xb0\x44\x02\x88\x97\x9c\x40\xa1\x70\x1a\x05\x56\x1b\x81\x9f\xcc\x62\x73\x35\x5f\x4e\x15\xc7\xec\xfe\x31\x7d\xbb\x05\x0e\x4c\x3c\x63\x4e\xb5\x81\xd4\x1e\xa1\x9e\x65\x99\x63\xe6\x72\xdb\x89\x07\xa1\x01\x5e\xa1\xa6\x12\x8a\x24\xae\x4f\x67\xb3\x6b\xf9\x20\x8f\x3c\x29\xd7\x39\x4e\xf4\xf2\x80\xc7\x9e\xcd\x20\xec\x91\x11\xb8\xf1\xc9\xcb\x71\xd3\x8b\x22\x3c\x64\x14\x4d\xe0\x3d\x18\x6a\xd5\xfd\xf5\xec\x04\x29\x10\x19\x3b\xee\xc0\x6e\x3e\x12\x25\x56\x48\xd8\xc9\x0b\x22\x9d\xe3\xba\x47\xc1\xf1\xdf\x51\x68\xc1\x43\x10\x81\xcb\x07\xf0\x34\xb7\x20\xab\xe1\xad\x30\x2f\xb1\x64\xb0\x59\x76\xf8\xe0\xb5\x31\x1a\x22\xd1\x05\x37\x4b\xce\x60\x03\x3f\x7a\xc7\xcc\x67\x88\xd4\x69\xb7\x32\x42\x77\xe7\x25\xcf\xa5\xcb\x7c\x70\xa6\x8d\x98\xd3\x43\x71\xb4\x76\x67\x31\x68\x11\x9b\x5e\xfd\x9c\x69\x1e\xb6\x20\xa7\x54\xc2\xfc\xba\x56\xc3\xa3\x93\x47\x22\x60\x91\x43\x4b\xf1\x63\x91\x2f\xe1\x6d\x63\x13\x12\xa3\x5f\x1e\x53\x53\xb2\xae\xa0\xfe\x91\x66\x4a\xf2\x52\x0d\xd2\xd7\xb7\xdb\x89\xc7\x7e\x88\xe4\x92\xe2\x72\xdd\xbd\xa4\xe7\x01\x08\x85\xc7\x32\x46\xc7\x54\x57\x48\x21\x66\xff\xca\x89\xef\xd9\x6f\x59\x14\xa7\x73\x0d\x07\x3f\x1e\x64\x13\x39\x0f\x48\xd4\x3f\x30\x4d\xde\x64\xe4\x3b\x8f\xff\x75\xe6\x99\x73\x19\x22\xfa\xb0\xd9\x2d\xd8\xce\x3a\x4e\xf6\x70\x41\x08\x63\x2e\x0d\x96\xc1\xcf\x54\x64\x13\x6a\x50\xcd\xc4\x20\x06\x03\x36\x9f\x3b\x49\x9b\x2e\x7b\x88\xff\x6f\xf8\x00\x45\x1c\xf8\xb4\x2f\xfe\xde\xd3\xa8\xba\xe9\x8f\x55\x84\x4b\xe2\x71\xeb\xf9\x61\x81\x76\xf5\xf3\x9c\x96\x23\x2c\x24\x97\x94\x86\xae\x51\xe3\x25\x3d\xdb\xe6\xfa\xe1\x93\x56\x91\x61\x3a\x16\x97\xab\x69\xf0\xfb\xd2\x3e\x95\xd1\x2d\x2a\x88\x90\xa9\xc6\x95\x03\x2f\xae\xd3\xfb\x76\x71\x41\xe0\x87\xcc\xc1\x93\x91\x0f\xc1\x9c\x27\xd3\x27\x16\x87\x84\x3b\x37\x76\x93\xe6\x96\x6c\x76\x78\x45\x6d\x09\xb9\x50\x25\xd8\xb4\xed\x3a\x63\x3d\x19\xd6\x09\xe2\x01\x43\x2d\xa3\x43\xe3\x1c\x77\x04\xce\xe3\x69\xd4\xd4\xea\x4d\x3e\xdb\x88\x4c\x36\xd6\xea\x5b\x9e\xd6\xfe\x17\x37\x89\x69\x74\xfc\x32\x5e\xd5\x4e\x3c\xd5\x0d\x49\x82\x89\x73\x23\xe2\xb1\xb4\x1d\xfd\x03\x50\xb3\xf0\x62\x8d\xe8\x33\x77\xea\xcf\xaf\x77\x45\xf9\x39\x9f\x6f\xf3\x29\x61\x68\x3f\xee\xfe\x18\x24\xaf\x04\x15\x61\x64\x90\xfd\xa0\x7a\x38\x52\xe1\xb3\x18\x33\xa0\x5c\xa9\x7d\x61\x0f\xb4\x71\xcf\x7b\x33\x4d\x71\x34\x97\x7f\x15\x23\x1d\x78\x3b\x1e\x44\x26\x1c\x46\x4a\xe2\xff\x8f\xb3\x2f\xeb\x6e\x1b\xc7\xba\xfd\x3b\xf5\xd0\x0f\x04\xc0\x09\x8f\xb2\x2c\x3b\xbe\xf1\xf4\x49\x4a\xd2\x75\x7b\xf5\xd2\xc2\x70\x60\xf3\xb3\x44\xaa\x49\xca\x8e\xea\xd7\xdf\xc5\x83\x81\x83\xe8\xa4\xfa\xbe\x94\x53\x22\x44\x71\x00\x0e\xce\xb0\xcf\xde\x9b\xc5\xfd\x6a\xb3\x5d\xdc\xae\xfc\xae\x21\x13\x4a\xfc\x9b\xbd\x3b\x9a\x66\x48\xaf\x35\x7e\xa9\x32\xe1\x39\xfa\xae\xd8\x48\xfd\x5c\xc3\xdd\xf2\xe9\xf9\x24\xf7\x85\xf2\xa7\x4a\x73\x0b\x8e\x39\x57\x95\x14\xa3\xbc\x8a\x1f\x20\x05\xfa\x00\x9e\xb7\x27\x1c\xc8\xe2\x3c\xc2\x55\x88\xb4\x24\xe1\xd3\x84\x39\x1b\x84\xea\x64\x9d\xf1\xb7\x9a\x8a\xf3\xd7\x97\x29\x81\x14\x21\xb6\x59\x72\x46\xe3\xf8\x1f\x83\xc2\x86\xfb\x4e\xce\xb4\xe4\x01\xf7\x39\x02\x9a\x8e\x4c\xa7\xcc\x53\x8d\x19\xbd\x1b\x51\x0b\xbd\x42\xa6\x28\x7f\x99\x9c\x38\x4d\xd3\xd7\xea\xe3\xea\x54\x97\x9d\xd7\x51\x4c\x53\x79\x92\xbb\xde\x84\x0f\x90\xec\x7b\x01\x1f\xeb\x6a\xbf\xff\x4c\x31\x76\xde\xc2\x4b\xce\xc1\x82\xdb\x7a\x3d\x91\x7b\x51\xea\x57\x14\xd7\xd8\x8a\x09\x76\x47\x72\x48\xd0\x85\xda\x34\xc7\xcf\xb8\x45\x2f\x10\x3b\x43\xdb\x2b\x39\x64\x9c\x06\x3f\xf9\xaa\xaa\xeb\xea\x03\xf4\x2a\xe4\xe8\xa5\x24\xb6\x66\xe7\xfa\xf9\x46\xf1\x83\x54\xc4\x6a\x86\x0a\xad\x1f\xaa\x12\x26\xa6\x4c\x2a\x9e\xb9\xf6\xa2\x1e\x5f\x7c\xda\x7f\x52\xf9\x94\x0a\x6c\x95\xd8\x51\x70\x5d\x09\xf5\x16\x16\x33\x72\xe9\xa1\x02\x83\xed\x78\xf6\x9f\x83\xe2\x99\x2d\x81\x9d\x90\x4f\x66\x98\x8a\x92\x26\xd6\xb8\xb3\x6f\x0e\xd5\x1b\xf8\x7c\xd2\x72\xb8\x84\x7e\x03\x6a\x9a\x5c\xa0\xe1\x09\xd6\xdb\x65\xab\xee\x83\x51\xf1\x57\x62\x8c\x05\xc9\xb6\x9d\xdd\x04\xdf\x24\x79\x2d\xdd\x71\x15\x31\xc3\x92\x41\x71\xe0\xbb\x38\xed\xdb\x70\x50\x31\x4c\x51\xe3\x6d\x8c\x71\x47\xe3\x05\xa0\x88\xca\x63\xe7\x01\xa0\x5b\x01\x3e\x6e\x19\x33\x40\x74\x23\x35\x41\xf8\x5c\x17\x9d\xba\x35\x7a\x0d\x8d\xaa\x8b\xe3\xc8\xb1\xbb\xa4\x0a\xd3\x91\xa2\x31\x70\xb7\x67\x3f\x56\xf6\x46\x51\xcc\x70\xa0\x5e\xa5\x23\xc5\x22\xe6\x64\xe5\x30\x7e\x76\x34\xa6\xfe\x20\xd5\x58\xe0\xac\x5a\x15\x04\x30\xe6\x6f\x89\x51\x40\x04\xe4\x06\x44\xad\x5e\x17\xf7\xf7\x37\xc5\x1e\x46\x85\x22\xc5\xb8\x21\x31\xba\x4b\x08\x99\x9f\xdc\x69\x4c\x28\xee\x44\xab\xc7\xeb\x27\xdf\x76\xea\x0f\xd1\x14\x9b\x3a\xe4\xa9\xee\x1c\xff\x90\x6b\xbb\xbb\x5a\x86\x21\x59\xe2\xb3\xbc\x96\xeb\x71\xd3\xd6\x85\x9a\x6c\x65\x2a\x51\x49\xee\xab\xde\xdd\xb9\x86\xe9\x18\x95\x28\x1e\xa7\x7d\x20\x79\x9c\x69\x44\x56\x59\x62\x09\xb7\xde\xa1\x2e\xcc\xd9\x72\x16\x0d\x01\x1b\x53\xf3\xf0\xd9\xd4\xfc\xec\xf3\x0b\xbb\xa7\x32\x19\x61\xc5\xe8\xb8\x17\x0a\x7a\xe4\x69\xfc\xbb\x2a\xf8\xe7\x05\xd4\x39\x9f\x5f\x65\x2a\xb5\x13\x1b\x4d\xf2\x16\xc4\x61\x51\xea\x85\xeb\xb1\xf2\x4f\x28\x17\x99\x15\xc0\x16\xa5\x7e\x09\xdb\xa2\xe2\x52\x3a\xeb\x83\x3e\xfd\x76\x79\xbf\x2e\xca\xbe\xeb\xd7\x0f\x13\x84\x7a\xdd\xa4\x1d\xa2\x60\xfb\x03\xdc\x77\x27\x04\x0b\xf3\x99\x54\x7c\x37\x3c\xb6\x15\x13\xec\x4c\xf7\x0d\x35\x13\xdd\xfd\xd9\x7d\x5d\x89\xc4\x4a\xff\x5a\x8f\x03\xbf\xb2\xad\xac\x42\x12\x8d\x68\x14\xae\x27\x63\x9e\x14\xbb\x5d\x83\x81\xba\x16\xfb\x11\x9f\xee\x67\xa7\x57\x1c\x7d\x3e\x14\x64\xb0\x40\x30\xef\x22\x28\x99\x67\xb1\x18\xf4\xec\x5c\x9d\x1f\x8a\x12\xee\x3c\x52\x42\x29\x13\x0f\x9c\x21\xd4\x6a\x2b\x15\x5c\x6c\x3b\xa3\x27\x72\x81\xe6\x99\x3f\x3a\x3b\x01\xdc\xcf\x42\x9a\x60\x6b\xc9\xe6\xa3\x68\xff\x82\x7a\x2f\x4a\xfd\xde\x2c\xab\xa6\x15\xeb\x42\xf9\x8c\xbf\x82\x8c\xa5\x81\xde\x34\xec\x50\xe3\x9b\x37\xb1\x25\xf8\xfd\xab\xea\xac\xea\x1a\x4c\x0d\x96\x66\xd2\x9d\x44\x47\xa0\x91\x44\xd4\xc7\x07\x43\xd3\xa9\x09\x03\x84\x30\x35\x07\x51\xb7\xfe\x17\xee\x9a\x89\x4e\xad\x1f\x0c\x22\x0b\xac\xfb\x48\x8b\x3d\x5e\xa5\x9a\x42\x66\x45\x7f\x45\x79\x12\xfb\x29\x71\xc7\xf8\xad\x69\x96\xcb\x34\xf1\x4c\xfb\x75\xd3\xae\x45\xf9\x76\x53\x59\x01\xc9\xde\x39\xd3\x8c\x47\xe8\x49\x7e\x39\xc9\x19\xc3\xa0\x99\xe4\x98\xc0\xbb\x33\x36\xd5\x67\x63\x88\xe9\x20\x93\xc8\x5e\x7a\xfa\xb1\xaf\x74\xe9\x38\x56\xca\xa5\x25\x9e\x9f\x9e\xee\x6d\x32\x92\xc5\xa3\x08\x4b\x27\x84\x18\xee\x4b\xa0\x62\x3f\xda\xc4\x75\x42\x39\xfa\x36\xd5\x11\xca\x1f\x45\xa9\x83\xd7\xa3\x93\x84\x6a\xdf\x79\x83\x2d\xd1\xe3\x8b\x4a\x73\x9b\x25\x92\xd0\x2e\x3a\x7b\xfd\x1a\x4e\x99\x33\x8a\xd8\xab\xce\x1c\x62\xa7\x75\x17\xdf\x87\x83\x5c\x59\xf1\xda\xd3\x01\x05\x92\x0a\xdf\x35\xb2\xa9\xf6\x7e\xd6\x6b\x9e\xe6\x2a\x72\x86\xfb\xa6\xae\x0e\x13\xfc\xbd\x1f\x95\xd3\x2c\x0d\x2c\xc3\x18\x53\x4d\xae\x91\x03\x45\x3d\x09\x38\x14\xed\x52\x1c\x85\x2c\xf6\x45\x7b\x5e\x68\x3d\x55\x66\x88\x87\x75\x37\xcd\x8d\x42\x0e\x07\x04\xde\x77\x36\x67\x3b\xc8\xff\x6a\xc1\xc0\x6b\xcb\x3e\xc2\xcf\x76\x51\xb6\xc5\x1a\x8e\x7b\x71\xde\x8a\x97\xc9\x15\x0a\x9d\x81\x2d\xd6\xfc\x5c\x8a\xe3\x83\x08\x38\x03\x2d\x93\x08\xfb\x13\x5e\xb1\x6f\xcb\x7d\xa8\x22\x81\x80\x7b\xb1\xdf\x5b\xb4\xce\xa9\x86\x66\x67\xaa\x7a\xd7\x1c\x41\x15\xd3\x5e\x08\xad\x12\x4b\xc1\x6e\xb1\xad\xdb\x5e\x74\xc6\x9f\x50\xb3\x5c\x04\xc1\x5c\x44\xb2\xdf\x0a\x5c\xa6\x43\x4f\x49\x43\x26\x51\x0c\xff\x01\x5a\xa1\x8b\xd3\xc1\xb5\x81\xfc\x0e\x45\x38\x08\x41\x34\x98\x04\x73\xe2\x23\x7e\x8c\xe1\x24\x84\x28\x4b\x50\x17\xfa\xaa\x68\x55\x55\x94\xcf\xa7\xfa\x18\xd2\xcd\x10\xe5\x04\xd9\x68\x8e\xb6\x91\x6e\xfc\x16\x21\x92\xc2\x0b\xf6\xdc\x4d\x82\x76\x88\x20\xc7\xa2\x6b\xe1\xa8\xc4\x2c\x5d\x8d\x3f\x2f\x95\x80\x19\xee\xa2\x2c\x5a\x0b\x0c\x18\x47\xfe\xbf\x76\xf9\x80\x6a\x95\xc6\xae\x81\x0e\xc5\x55\xdd\xe7\x2c\xd2\x98\x57\xd7\xa3\xee\x00\x60\x4c\x12\xaf\x0a\x8e\xba\xb6\x16\xe9\xe8\x8f\x2a\x29\x61\x24\xc3\xbb\x75\x44\x3e\x21\xf3\x0a\xcc\x04\xb8\xc6\xf3\x49\xbe\xc1\x79\xb4\x90\x21\x4e\x52\x04\xb8\xa0\x60\x31\xdc\xd6\xd5\xe9\x18\x4e\x1f\xa7\x14\x37\x62\x79\x3a\x2f\x11\x18\x58\xea\x0d\x94\xfa\xb6\x30\xed\x25\xb7\x5b\x37\x3e\x23\x08\xa8\x58\xae\xbc\x2f\x04\x49\x62\xb1\x7b\xd6\xec\xe1\x7a\x1a\x36\x48\x4c\x1e\x4e\xaa\x0c\xfa\x5d\xb6\x75\x05\xd7\xf0\xa8\x8d\x11\xb2\x88\x63\x79\xde\x55\x33\x3e\xd3\xce\x98\x9c\x36\x13\x09\x76\xd8\x76\x96\xec\x53\x26\x4c\x1d\x01\x4f\x34\x58\xad\xdc\xf6\xb5\x2e\xf6\x4f\x21\xe5\x04\xdc\x58\xc2\x82\xab\xc7\xed\xb8\xa1\x06\xa4\x96\x5e\xe8\xca\xe3\xad\xc7\x0f\x45\x45\x49\xe6\xde\xd1\x25\xe1\x67\x3f\xdd\x41\x91\x14\x93\xfb\xb6\xf7\xf2\xb9\xda\x4f\x8a\x0b\xa0\x13\x85\xa5\x64\xcb\x6e\x3e\xe9\x73\x02\x6d\x38\xfa\x66\xce\x9f\xf8\xfb\xc0\xdd\xc9\x33\x00\x16\xd2\xbb\x9b\xf3\x41\x56\xfb\xce\x56\xce\xe6\x56\xc0\x90\x08\x39\xb3\xbd\x1a\x98\xbf\x14\xc3\xd2\xd0\x5e\x19\x40\x2a\x9f\x12\x20\xcc\x5f\x86\x31\x39\xf2\xc6\x7e\x40\x31\x0b\x41\x34\x51\x1c\xe1\x75\x62\xd1\x19\x6b\x83\x81\x98\x74\x7c\x99\x26\x02\x83\x6f\x5f\x9e\xce\xcf\x35\xe8\x42\xb5\xff\x2c\x3b\xdf\x75\xe8\x93\x38\xb3\x65\x08\x4b\x99\x23\xb9\x2b\x0e\xa7\xc3\x73\x0d\x47\x51\x68\x07\xa2\x1b\xf7\x29\x1a\xe2\xda\xdd\xed\x0c\xed\x9c\xbf\x8b\xfe\x8d\x30\x34\xd3\xb8\xaf\xa9\x41\xcb\xb3\xeb\x82\xf6\x43\x68\x44\x30\x60\x7b\x15\xcd\xa7\x02\xae\x3a\x32\x8c\x32\xcc\x41\x05\xd0\xf9\x62\xcc\x8a\xd3\x27\xac\x87\xbe\x95\x61\x42\x20\x40\x40\x74\xcf\x68\x40\x6f\x60\xe2\x54\x45\xae\x89\xe3\x5b\x03\x75\x33\x99\x56\x26\x36\x1c\x2f\x0b\x11\xa5\xcf\xa7\xbf\xfe\x9a\x7a\x40\x26\x31\xb1\xd2\x5e\x9d\xf2\x27\xec\x97\xd5\xbe\xb2\x2f\xcb\x6b\x90\xf9\x91\xa9\xb1\x9c\x26\xff\x73\x12\xa8\x56\x67\xad\xe7\xe6\xf3\x96\x1c\xf7\xbd\x2c\xb5\xed\x6e\xab\x52\xfb\xf0\xdd\x64\x22\xc5\xcc\x30\x74\x53\x63\xdd\x47\xcd\x26\x27\x56\xa2\x1f\x0b\x4d\x2f\x03\x02\xcc\xe6\x82\xb2\xac\x1b\x9d\x2a\xae\xfb\xdb\xff\x63\x74\x67\x79\x0a\xc2\xf7\x22\xc0\xa1\xaa\xcf\x6b\x10\xb3\x42\x37\x38\xd6\xb8\x88\xf1\xeb\x30\x4d\x67\xf2\x4c\xa1\x79\xb0\xb2\xc9\xcf\x35\xdc\x6d\x9f\x76\x5d\xc8\xb8\x14\xc7\x9e\xee\xbe\x1b\xc8\x55\xea\x16\x0d\x42\x28\xae\x84\x7a\x83\xba\xb9\x3a\x0f\x93\x77\xff\xfa\xb7\x63\x54\xf5\x5f\x52\x19\x71\x0d\x7b\x17\xe1\xde\xc0\xf1\xf6\xb3\x3b\x87\x14\x61\x93\xd7\xb0\x87\x17\x5c\x95\x7e\xa2\x7e\x42\xc5\xa6\x23\xc3\x53\x8e\x4e\x85\xaa\x0e\xb8\x31\xcd\x43\x9f\xf3\x30\xda\x20\xad\xf5\x75\xf1\x52\xb4\x62\xff\x2c\x34\x56\x36\x87\x3b\x8e\x11\x3c\xc5\xc2\x64\x43\x5c\x23\x09\xf1\x07\x64\x8c\x93\xf4\x00\x7e\xb3\x35\x32\xe7\xc8\x46\xe4\xe4\xf4\x2f\xc1\x6e\x46\x42\x86\x19\xb2\x90\xb8\x6e\xfe\x98\xe4\xf3\x8d\x22\x56\x75\xb1\xb3\xc0\x35\xfc\xe7\xd4\xad\xd0\x71\x8d\xc3\x28\x9a\xd9\xee\x11\x97\x4b\x99\x78\x45\x46\x31\x5b\x12\xf0\xc4\x60\x37\x55\xdd\x79\x9a\xfe\x32\x55\xce\xb9\xf5\x35\xc0\x06\x8c\xae\x28\xb6\xda\x7e\x99\x5c\xae\x12\x11\x3a\xd7\x2f\xd5\x4b\x35\x82\x4c\x4f\x6a\xc4\x06\x18\x38\xb9\x0b\x1b\xc8\x3a\xe4\xe9\xe4\x74\x20\xb5\x17\x9f\xf8\xa4\x30\x66\x40\x42\xec\xba\xa3\x46\x31\xb0\x01\x93\x21\x7a\xec\x7b\x17\x57\xfb\x0f\x0d\x28\x21\xfc\x34\x14\x7b\x78\x98\x24\x08\x49\x14\x31\xea\x85\x46\xba\xf3\xf5\x6b\x8f\x44\x84\xd9\x45\x00\x56\x3d\xad\xb3\x33\x24\x1c\xd3\x0c\x71\x08\x6d\x71\x00\x9c\x13\x7f\xdb\x13\x24\x11\x4d\x05\x2e\xc4\x3f\x57\xc3\x1c\x38\x89\x68\x46\x90\xb8\xf5\xe9\xe7\x73\x5d\xb5\x95\xf2\x58\x5f\x12\xb1\x38\xe6\x4e\x5e\xe6\xdb\xfa\x7e\x38\xff\x48\xc4\x32\x81\x62\x9d\xc8\xa6\xf6\x59\x12\xe4\x77\xbb\xd5\xf0\xd5\xf5\x86\x96\x44\x31\xb5\x78\x56\x67\x50\x9c\x6b\x38\x57\xff\xea\xff\xe3\xbf\x9a\xc5\x5e\xda\xc3\xf5\xe1\x0f\x82\x2a\x82\x9d\x7a\xbc\x6f\x8b\xff\x8e\xd2\x56\xdf\xd6\xf7\x4e\xbc\x60\xce\x43\x26\x51\x2c\x48\x50\x1e\x09\x40\x4f\x12\xc5\x52\x09\xea\xb9\xf0\x8a\xb6\x59\x8c\x68\x96\x66\xb7\x64\x12\x25\x44\x60\x29\xc5\x21\xb9\x47\x6f\x22\xa1\x0c\xb9\x35\x6e\xab\xbd\x86\xf2\xbe\x78\x79\x6d\x11\xc4\xfb\xf7\x08\x84\x48\x94\xb0\xc4\x6f\x43\xd6\xe7\x9e\x83\x23\xe6\x7e\x70\x4c\xb0\x25\xc2\xfa\x94\x5e\xfb\x74\xd5\xbe\xce\xb9\x29\x24\x4a\x72\xdb\x1e\xae\x1c\x7b\xb9\xbf\xe6\x8c\x49\x2f\xf4\x7e\x55\xb4\x1f\x55\xad\x9b\xe5\xa9\x9d\xcc\xf6\xce\x75\x54\x8e\xfe\xfc\x2f\xb8\x70\x31\x26\x8f\x28\x27\x59\xd6\x07\xd5\xab\xc3\x71\x5f\x9d\x27\x19\x01\x12\xe5\x69\x22\x2c\x7a\x4d\x5b\xba\x9a\x1f\x00\x6f\xfe\xa2\x72\x69\x1b\xc4\xbe\x9e\x25\xd4\x81\x21\xa5\xaa\x27\xdc\x43\x24\xca\x8d\x51\x91\x47\xb4\x6c\xab\x6e\x27\x19\x5f\x0b\xa7\x12\x86\x70\x1b\x27\x69\x75\x8d\x30\xb2\xc9\x25\xf1\x94\x24\xd6\xd8\x20\x5b\xd8\x53\xf0\x6f\x49\x24\x12\xc0\x70\xd7\xe2\xaa\xec\x4b\x99\x59\xa2\x42\x65\x88\xc0\x91\x3e\x77\x8c\x7a\x0c\x45\x55\x5e\x57\xe5\xf4\xd7\x84\x36\x5e\x4f\xb0\xf3\xc6\x03\x74\x8e\x44\x02\x80\x2b\x07\x44\x74\x2a\xd6\xee\x88\x54\x9c\xda\x28\x06\x5c\xa4\x33\xd2\x33\x77\xa3\x14\xd3\x78\xb1\x4e\xe4\xa1\xae\x0e\x77\x36\x50\x70\x21\xec\xf8\x09\xa9\x24\x42\xf1\xdf\x57\xd1\xec\xde\xab\x89\xa6\x7e\x77\x1c\x64\x9c\xf9\x3a\x73\xd9\x54\x7b\xab\x63\x6c\x9b\xa4\x66\x04\x4e\x35\x89\x74\x4c\xc1\xee\x7f\x56\x06\x63\x72\x46\x2d\x18\x62\xf9\x5c\xdf\xcc\x7d\x51\xbe\xec\xab\xf2\x65\x29\x5a\x4f\x5a\xf1\xdb\x9e\x93\x5f\xaf\x51\x2d\x2d\x54\x4a\x68\xbd\x14\xf5\x4c\xff\x3a\xf1\x23\x81\x44\x92\x79\xae\x2d\x51\x3a\x0d\x4b\x58\x95\x1a\x06\xfc\x57\x24\x02\xca\xb0\x86\xb2\xdc\x57\xed\x6b\x51\xbe\xf4\x8d\x0d\x24\x82\x8c\x89\xbe\xaf\xfd\x57\x22\xc4\xdd\x60\xce\x71\xa3\xc6\x70\x7e\x9c\xff\x75\x23\x4c\xaa\x31\x6d\xb7\xab\x5d\xb1\xb8\x78\x29\x31\x5f\x11\x44\x86\xf3\x7f\x0f\x8d\x2d\x89\xa2\x14\x83\x84\xab\xaa\x7a\x5b\x0a\xe3\xaf\xb9\xb3\x6f\x58\x29\xd8\xdc\xaf\x97\xe1\x33\x13\x61\xde\xfe\x7e\x75\xbb\xb8\xf7\x1f\x76\x73\xc0\xd8\xbd\xf1\xa1\x50\x75\xf5\x15\xce\x56\x79\x5e\x94\x7a\x16\xb3\x4e\x08\xa1\x99\x8a\x5c\x11\x18\x39\x0f\x76\x86\xe4\xfe\x7c\xd4\x05\xf1\x4d\xf1\x17\xd0\xf0\xa1\xb2\xcd\x52\xcf\xcb\xc7\xc1\xc3\x23\x71\x96\x10\xdf\xe4\x0c\x9d\xc1\x44\x9d\xd3\x5f\x36\xd4\x10\x92\x30\x43\x6d\x44\xfe\xd2\x17\x7d\x09\x49\x78\x66\xfb\x97\xd6\xab\xbb\xe5\x53\xd3\x33\xc4\x11\x92\x28\x81\xd4\x4b\xff\x5b\x75\xd6\x38\xc0\xa3\x27\xa7\x35\x11\xd6\xf4\x6d\xd2\xe7\xa1\x28\x67\xc0\x0c\x84\xa4\xca\x52\xa0\x38\x97\x64\xc4\x70\x44\x48\x46\x88\x70\xa2\x9e\x76\x5d\x06\xbf\x80\xe4\x91\xed\x1a\xba\xaf\xda\x4a\xf6\x50\x37\x42\x72\x46\x14\x1b\x74\x54\x7e\x09\x2d\xc9\x84\xf0\xc8\xea\x1d\x59\x2b\x1f\x3a\xe2\x5b\x38\x22\xbe\xba\xb7\x3d\x84\x27\x2a\x1e\x5a\xba\x47\xd1\xbc\x3e\x9d\xe6\xd1\x84\x84\x70\x2d\x63\xe7\x1a\x6c\x54\x55\x7f\x62\xca\x89\xd4\xb6\x97\xb6\x81\x12\xf1\x60\x45\x89\x91\xdd\xa0\x00\x4d\x88\x04\xc0\xac\xc0\x66\xbb\xd9\xae\x36\xdb\xd4\x7f\xae\x74\x3c\xa0\xbb\x42\x6c\xf7\x25\xfe\x88\x10\x2d\x73\xe6\xc5\xc7\xa1\xc4\x26\x91\x3e\x6c\x0f\x3f\x02\x59\x66\xe1\x80\xab\xbb\xe1\x96\x4b\x0c\x61\x98\xe5\x2d\x7d\xa7\xc6\xc0\x1e\xfe\x10\x45\x77\xc1\x37\x55\xfd\x6c\xe9\xc7\xfd\x77\x12\xc9\xad\xcb\xd7\xf9\x17\x05\x9c\x0e\x8f\xf0\x71\xb7\x7c\x1a\x9f\xd8\x28\xb7\x19\xb8\x72\xc3\x20\xfd\x47\x68\x94\x0a\x4c\xec\x59\xa4\x83\x9d\x27\xf8\xf5\x07\x51\x9e\x27\x48\x47\x42\x23\x41\x3d\x1a\x0c\xe9\x1b\x3a\x93\xec\x95\xdf\xd0\x28\xfd\x8b\xf5\x43\x63\xe3\x7a\xd0\xbe\x95\xc8\xb5\x64\x85\xf6\x8b\xbf\x40\x3f\x77\x91\x47\x80\x73\x12\x4a\x88\x40\xd6\xb1\x4d\xb5\x17\x35\xfc\xf4\x1f\xd3\x34\x49\x2d\x53\x5a\x17\x91\xcf\x00\x66\x08\x65\x99\x55\x46\xb8\xaf\x5e\xee\xc6\x70\xab\x38\xf7\x43\x78\x86\xeb\xb5\x33\x54\x4e\x68\xd3\xff\x00\x93\x29\xd6\xd2\x01\x19\x9d\xd7\xf0\x82\x64\x31\x13\x2b\x4f\x63\x02\x1e\x2d\xed\x90\x24\x77\x7a\x82\x97\x26\x34\x11\x19\x84\xe5\x22\xf6\x56\x15\x6b\x32\x26\x8d\x00\xb3\xe5\xa7\x06\xea\x89\x9a\x9d\x1f\x21\x00\xab\xd8\xdb\xf5\xfd\xf2\xe9\xee\x71\x77\xbd\x5a\xde\x3d\x2c\xee\x37\xfe\x82\x53\x2d\x6c\x96\x44\x34\xaf\xd5\xe9\xb2\x92\x3f\xfe\xbd\x8c\xdb\x80\x77\xa1\x35\x16\x33\xe6\x97\x06\xcd\xa4\xe4\x03\x1d\x24\x27\x2c\xea\x7f\x32\xe7\x14\x5c\xbe\xf1\xb6\x30\x18\x96\x0c\x16\x2b\xcd\x0d\xd5\x10\xd2\x5c\x83\x46\xb8\xee\x90\xa2\x3e\x49\xa1\x02\x09\xcf\x4d\x55\xbb\x5e\x19\x3f\x8e\x27\x60\xc1\xa2\x8f\xd7\xeb\xaa\x6a\xfb\x8f\x0d\xc2\xc2\xae\xb7\xeb\xc5\xf2\x6b\xf8\x14\x00\x33\x3a\x96\x2b\x1b\xf4\x60\x89\xed\xba\xa8\x01\xec\x3f\x87\xaa\x47\x9a\x50\x11\x09\xab\xfb\xad\x2a\xd7\x0b\xea\x0f\xa4\x51\xec\x08\x35\x7f\x40\xd1\x59\xa2\xe9\x37\x33\x19\x4f\x10\x5c\x98\x3b\xa9\x27\x6f\x4e\x26\x04\xf7\x11\x6b\x23\x50\xd4\x55\x9f\x56\x3f\x8f\xa3\xc0\x94\x50\x99\xe7\x68\x86\x36\xb0\x2f\x0e\xc3\x65\x4a\x55\x94\x63\x11\x68\x75\x7b\xbb\xd9\x6d\x9f\x76\x5f\x50\x20\x87\x5c\x7d\xbb\xef\x5f\xbf\x22\x60\xc5\xc0\x85\x7e\x81\x66\x52\xd0\x27\x54\x65\x12\x8b\x84\x3f\x1c\xfd\x97\xff\x9a\x4e\x2c\x3f\xaf\x2d\x38\x82\x46\xfc\x8c\x7d\x1b\xab\x43\xd1\xce\xd0\x13\xfb\x2f\x72\x2b\x2c\x7d\x7d\xb3\xbd\x1a\x9d\x11\x22\x89\x18\x1e\xc4\x0d\x3e\x7d\xe0\xaa\xf2\xc7\x4c\xca\x99\xe5\x8b\xaa\x3e\xd0\xf5\x70\x20\x31\x7f\x38\x8b\xd0\xe0\x60\x99\xf6\xee\xf1\x76\xd8\x16\x47\x58\x44\x22\xec\x75\x7b\xa9\x85\xc3\x39\xcc\x6a\xf0\x76\x23\x39\xc1\xe4\x6e\x09\x1f\x88\xdc\x1e\x38\x12\x8c\xc4\x00\x5e\x04\x05\xd9\x76\xfd\xe9\x49\x02\x56\x73\x6b\xb3\x5e\x84\xcf\x84\x6d\xc8\xb8\x81\x56\xbd\x76\x6e\xc0\x17\x4c\xd5\xf4\x87\x25\xee\xeb\x0e\x21\x16\xe4\x4b\xea\x83\xcd\x83\xce\x38\x15\x8c\x08\xeb\x22\x1c\x6b\x50\xe8\x35\x3f\xd8\xfc\x63\x38\xa7\xb6\xe8\x3c\x5f\x17\x44\x16\x1f\xdc\x57\x9a\xa9\x61\x61\x34\xe2\xc6\x1a\xe8\xd7\x50\xfd\x22\x8c\x32\x4e\x44\x4f\x14\x3b\xa3\x6f\xde\x0d\x12\x39\x62\x89\x2d\x35\xee\x38\x5f\x40\x18\x05\x19\xd1\x41\x93\xb4\x13\xd5\xf8\xa5\x49\x61\x8c\x70\x9f\x4e\x1e\x6c\xee\x2c\xa6\x3c\xc9\x1d\xbe\xa1\x81\xaf\x67\x35\x79\x59\x71\x9c\xe1\x26\xfd\x51\x94\xbd\x10\x50\xf7\xb9\x89\x85\x6d\x35\x12\xfb\x3d\x94\x2f\x80\x42\x7e\x6e\x89\xe9\x51\x9c\xcf\x12\x02\x3c\x1e\xf0\x9c\xd9\x80\xa2\x73\xf1\x26\xb7\x9d\xc4\x26\xb5\x80\x7b\xa4\x7e\xda\x16\xc7\xf9\x76\x3c\xc2\x12\x01\xd8\x8d\x55\x34\x5e\x1e\x6f\x5b\x85\xad\x91\x25\x4a\xc5\x43\x22\xcf\x81\x10\x4d\x77\x54\x1b\x34\x0c\xcb\xa7\xc7\xd5\xad\xef\x7a\x23\x2c\x4d\x0d\x71\xaa\x90\x7b\xa8\x1d\x4c\xd2\x12\x58\xfb\x24\xea\xac\x3f\xcd\x52\x61\x01\x80\x18\xd6\x3a\xe0\xb2\xaa\x0e\x20\x3d\xa1\x13\xde\xf4\x27\x37\x92\x25\x06\xcb\x9c\xb8\x69\x6c\xbe\x3d\x3f\xdf\xff\xb9\xbb\x5b\x3e\xd9\x5e\x51\x7f\x69\x59\xaa\x85\xf0\x6c\xf0\x48\xff\x76\x1f\xa0\xf9\x84\x65\x39\xc5\x30\xb6\xf3\xa3\x5a\xf1\x3b\xcf\x95\x65\xb9\x95\x0d\x7f\x81\xf6\xba\x68\x06\x9d\xb2\x84\xe5\x34\xe2\x34\xb4\x84\x4d\xd0\x13\xe3\xb3\xe4\x31\xb8\xfa\x4f\xd3\x16\xed\xa0\x53\x8e\x30\xce\x2c\x29\x8f\xaa\xca\x12\x94\xed\x32\xb0\x5e\xd7\x6f\x72\x39\xfe\xfb\x99\x25\xd8\x2c\x54\xf5\xf4\x0e\xf5\x7b\x01\x1f\xfe\xd4\x82\x31\xac\xce\xfa\x17\xdb\xad\x20\x1a\x0e\xa6\xb1\x76\xcd\xa6\x7f\x8a\x72\x59\x81\x31\x85\x1a\x72\xe7\xe3\xef\x78\x83\xce\x44\xc6\x70\x41\x78\xb7\x6d\xa0\x8c\xaf\x09\x93\x49\x2c\x9d\xeb\x70\x2b\x0e\x30\x76\x61\x26\x17\x2c\x4d\x96\x5a\x32\x7e\xab\xd1\xda\xb9\xa6\x5b\x97\x5d\xa3\x23\x0c\x25\x61\xca\x71\x91\xfb\xad\xd5\x51\xe4\xcc\x3f\xeb\x4f\x1e\x90\x92\x56\x91\xaf\x73\x54\x70\x4d\x8e\x0f\x6b\x22\x90\x5e\xd8\x73\xc7\x2c\x85\x87\x2a\x0e\x48\x21\xc8\x54\xe3\xee\xef\x14\xa5\x08\xd3\x42\xe0\x5c\xdf\xfa\xfe\xb0\xd5\x7a\xe9\x31\x32\x84\x41\x94\x47\x39\x5a\xf6\x9f\x4e\xba\x6d\xbb\xb5\x7d\x29\x77\x3a\x0f\x83\xa8\x40\x42\xbd\x1f\x50\xec\x02\x68\x6b\xb7\xad\x70\xda\x2f\xc5\x31\x8c\x4b\x72\x44\x5e\x61\x5e\xe5\x0b\x82\x24\x87\x69\x38\x06\x19\xf7\xca\xb2\xdf\x36\xd7\x6b\x51\xf4\xce\x01\x03\xc1\x3d\x72\xe2\xa1\x28\xbd\xec\x9b\x3b\x68\x22\x4e\x7d\x43\x34\xf6\x45\x5d\xf2\x6f\x13\x66\xb8\x15\x8a\xe9\xbb\xb5\xfe\xab\xba\x59\x77\x02\x9d\xd8\xb6\xdb\x8f\xbb\xd6\xcb\x78\x4f\xf2\x6f\xb3\xc4\x3b\x7d\xfb\xe4\xec\x89\xe3\x28\x93\x78\xdf\xdb\x5a\x28\x18\x6b\x31\x69\x12\x13\xc2\x72\x18\x6a\x01\x20\x78\xf3\x6a\x02\x5e\x20\x31\xe1\x16\x77\x55\x9e\x0e\xcf\xa2\x16\x07\xe8\xe9\xbf\x49\x4c\xa4\x53\xfc\x45\xce\xdf\x6e\x0b\x47\x91\x86\xcb\x24\x46\x7f\x3e\x9a\x5b\x14\x15\xde\xe8\x4d\x55\xff\xda\x08\xc5\x54\x2a\x44\x35\x17\x25\x8a\x1d\x9f\xc4\xfe\x07\x14\x4b\x8b\x0e\x9d\xba\xf1\x31\xd3\xc2\xd3\x96\x74\x76\x6f\x73\x3a\x4c\x6e\x26\xa6\xe0\x25\xd7\x37\x6d\x7d\x53\xc0\x5e\x7b\xab\x10\x67\x34\x72\x6c\xc9\x78\xf2\xe5\xeb\xa7\x9b\x4a\x9c\x65\x76\x8b\x6c\x8a\x97\xd2\xd5\x4d\x26\xdc\x07\x61\xa0\xc9\xa4\x97\xdd\xb3\xf5\xef\x6e\x92\x5a\xc5\xc3\x53\xcf\xe3\x42\xe2\x8c\x27\x16\xc4\x8a\xc2\x0a\xaa\x2a\x4a\x9c\x6c\x77\xe5\x4d\x2d\x94\xbf\xc4\x9c\x66\x98\x3d\xb1\x41\x7f\x50\xeb\x08\x47\xf3\xdc\x69\xdc\x74\xab\xa0\x28\x5f\x1c\x35\xdc\xf8\xe2\x85\xca\x6c\x80\xe1\x9d\xb7\x3e\x45\xea\x46\x48\x6a\xb8\xeb\xc9\xea\xfd\xc8\x4f\x1e\x85\x4c\x39\x71\x22\x7e\xdd\x32\x71\xa5\x8f\xce\x51\x19\xbf\x1a\xa5\x29\xf6\xd9\xe1\x22\xdd\x1c\x6b\x10\x7e\x0d\xc6\x40\xb2\xdc\x09\x90\xa0\x0e\x4c\x55\x63\x7a\x75\xfc\x3b\x90\x52\xef\x4f\x2d\x2f\x58\x4e\x48\x0c\xd2\xf2\x07\x3c\xfe\x73\xb5\x1b\xa4\x6c\x62\x43\x32\xc4\xf0\x88\x8b\x9a\xeb\xf8\xf2\x4c\x92\x62\xc7\xfa\xa1\x7a\x07\xcb\xfc\x17\xce\xc0\x29\xb1\x2a\xf1\xde\xb7\x4b\x22\x93\x23\xc8\xc2\x45\x53\xd7\x55\x39\xe8\x5c\xec\x0e\x4b\xcc\x5b\x39\x4a\x9e\x6d\x75\x17\xd2\x3e\x09\x01\x45\x03\x59\x9a\x86\xed\x3f\x6f\x2e\x62\xc8\x84\xe6\x69\xe2\x33\xeb\xa2\x69\xaf\xef\xbe\x5f\x0f\x39\xfe\x48\xc2\x58\x8c\x40\x4a\x14\x67\xfe\x0e\xcd\x88\x2f\x81\x24\x2c\x4b\x71\x9b\x1f\xe6\xbb\xe2\x70\x90\x5b\xde\x18\xa7\x07\x83\xaf\x6b\xf2\xfb\x4c\xc8\xd8\xf5\x23\xa0\xf3\x7f\xdc\xc3\xb6\x80\x9a\xb8\x45\x3e\xcd\x18\x24\x4c\xa6\x18\xd1\x1e\xd1\xcb\x04\x3d\x8c\x10\x13\xa6\x09\x36\x39\x3d\x9c\xaf\x7b\xcb\x9a\xc4\x84\xa6\xb1\x7f\x0c\x08\xc1\xb8\xa9\xea\xcb\x6a\x2f\x49\x92\xc4\x58\x2e\x58\xdb\x16\xd1\xed\x15\x05\x0a\x8f\x4f\x71\x24\x7e\x7c\x2e\xb1\x29\xdc\x66\x42\xb0\x3a\x3e\x78\x32\x09\x8f\x7c\xb3\x61\x15\xdc\xa2\x24\x31\x60\x0b\xc1\xba\x68\xaa\x72\x30\x7b\x92\x34\x89\xb9\xf1\x54\x04\xc7\xa2\x06\xbd\x28\xf5\x48\x50\x5f\x93\x24\x23\x1c\x85\xd2\x7c\x21\x72\x74\xfb\x19\xb5\xa5\xbc\xa6\x67\x44\x9c\xb0\xa3\x8c\xaf\x3f\xcb\x52\xec\xd2\x38\x3a\xb8\xf4\xa4\x7c\x48\x92\x0c\x72\x82\x64\x81\xb8\x1b\xae\x7e\xb6\x50\xea\xcf\x79\x8f\xfc\x97\x0c\xcd\xbc\x06\xa6\x47\xe5\xda\x1c\xd1\x25\x18\xb1\x1b\x9d\xc6\x0e\x68\xe5\x12\x86\x68\x69\xde\x27\xbd\xb3\x24\xe1\x71\x8c\x61\x95\x05\x4a\x6e\x47\x4d\xc2\xdb\x0b\x4a\x82\x4f\xae\x4d\x26\x11\xd6\x9f\xf1\x6b\xeb\x27\x9f\xfd\x4d\x24\x4f\x70\x5f\xd5\xb6\xf2\x0d\xd7\x6f\xfb\xab\x42\x3b\x6e\xff\x8b\xfb\x1d\xf7\x69\x0d\xd3\xe6\x89\xe4\x29\x56\xdc\x6f\xa1\xbd\xaf\x5e\x1c\x03\xdc\xaa\xae\xab\xf0\x92\x14\x21\x88\xfe\x3e\x3a\xce\xf0\xf5\x84\x13\xcd\x0f\xcb\x29\xb0\xbe\x9c\xf7\x20\xca\xf3\x18\xa6\x3f\x40\x72\x4c\xbe\x69\x04\xe6\x80\x97\xaf\x75\x55\x56\x0f\xc5\x25\xa9\xdf\x6c\xc0\x90\x68\x6a\x91\xa8\xcb\xfb\xd5\xee\x0a\x5a\xb1\x7b\xb6\x59\x40\xbf\xff\x26\x3a\xb5\x1e\x3d\x6e\x78\xb2\x16\x93\x46\x32\x92\x68\x99\x38\x4d\x66\xab\xa4\x70\x25\xd4\xdb\x4b\x5d\x5d\x1a\x1d\x88\x52\x27\xb6\x6d\xbb\xd7\x82\xbf\xf0\xa9\xaf\xe9\xbf\x48\x22\x62\x89\x9d\xea\x37\x08\x22\xf7\xcd\x08\x79\x43\x12\xe0\xb1\x65\xfe\x6d\xab\x63\xe8\x63\xef\x15\xf4\xba\x11\x4a\x2a\x4b\x4d\x73\xb0\x29\x3a\x34\x5d\x43\x55\x27\x92\x00\x70\xe3\xd6\xa3\x85\xbe\x88\x72\x5b\x8b\x51\xb6\x2a\x31\x8a\x63\x7b\xa4\xc5\x5c\xed\xc6\x5e\x75\x1a\x25\x56\x2e\x1a\xb5\x4c\xcf\x18\x71\x7c\x9d\xb4\xac\x90\x94\xb0\x88\xa5\x93\x42\x7e\xb0\x37\xfd\x4f\xa5\x84\x65\xb6\x77\x5a\x1f\x8a\xf2\x16\xc6\xa2\x58\x24\x25\xb1\x36\x6c\xe4\xba\x3c\x20\x88\x24\x1c\x4f\x98\x65\x20\x68\x45\x8d\xba\xb0\xdb\x8f\x2a\x1c\x93\x09\xfa\xbe\xb8\x5d\x36\xdd\x8c\x01\x7d\x7d\xea\x0c\x46\x50\x1c\x22\x29\x23\x0c\xe9\x9a\x0e\x4d\x14\x3e\xa2\xc6\x32\x92\xa2\xda\x5c\xb7\xb9\xb8\x10\x79\x9e\x92\x96\xa4\x2c\xa1\xc2\x84\xcc\xe7\xb0\x22\x9f\x32\x99\xa1\x91\xae\xab\x8f\x61\xe7\x21\x49\x99\x51\x42\x8e\x30\x8c\x5f\xa0\x0e\x97\x9e\x44\x26\x33\xae\x4c\xb5\xab\x4a\xf8\x2e\xf6\x85\x5e\xfd\xc7\xb2\x73\x3c\x56\xf7\xd5\x4b\x18\x49\xb2\xdc\x92\xad\x97\xa2\x05\x27\x0f\x31\x09\x52\xd2\x84\xe6\x39\xf4\xd0\xb4\x0f\x6b\xf8\x86\xaf\x21\xd1\x99\xd2\x83\xa9\xfb\x28\x0e\x80\x78\xb1\x9b\xba\x3a\x5c\x8b\xe3\xf1\xa2\x81\x79\x94\xb0\x4b\xd3\xc8\x92\x3c\x34\xc2\xc0\x05\x3c\x71\xfe\xa9\xa5\x09\x43\x0f\x69\x77\xb0\x92\xf7\x93\x6b\xce\x08\xc5\xc4\xd5\x41\xfc\xbc\xad\xc4\x7e\x0d\x42\x05\x39\x05\x92\x66\x39\x45\xb0\x6a\xf7\x80\x1e\x00\x3b\x45\xfd\xa1\x9c\xa6\x38\x25\xc6\x6a\x76\xbf\x2d\xc6\xa7\x79\x92\x2a\xe1\x49\xe9\x87\x04\x03\xe3\x51\x69\x82\xa9\xb1\xe7\xf5\xdd\xd3\xfa\x6e\xfb\xa7\x97\x78\xd9\xdd\xdf\x6d\xb6\xe1\x12\x4c\x6a\xbb\xb2\xf7\xef\x7f\xe3\x87\x79\x1e\xb3\x28\x80\xaf\x3d\x01\x9c\xa3\x8e\x1f\x19\xb3\x94\x8b\x08\x73\xc5\xf0\xfe\xf0\x72\x68\xef\x9a\xe6\x04\x57\x3d\x68\xf4\xc2\xca\x5c\xf4\xb6\xf4\x2f\x9c\xab\x1c\xc3\x68\x28\xf5\x93\x71\x0d\x83\xfe\xf2\x45\x26\x30\x69\x61\xf5\x74\x3d\xc1\xd7\x10\xc5\xe1\x07\xe6\x06\x61\x5e\x6f\x85\x7a\x1b\xcb\x20\xfa\x01\x3c\xc5\xfa\xf5\x47\x51\x5e\x15\xd8\x0d\xf7\xb7\xb2\x12\xa9\x8c\x62\x2b\x12\x78\x46\xea\xc4\x97\x70\x69\x32\xb5\x2d\xfd\x2f\xd0\x3e\x95\x23\xa3\xb2\xad\x7a\x0d\xf4\x6e\x20\x64\x0e\x41\xec\x9b\x60\xae\x61\xdf\xad\xe1\x7e\xa2\xa8\xd8\xd2\x79\xdf\x3c\x7d\x7b\xbc\x5e\xad\x3d\x66\x27\x05\x62\xf1\xb0\xae\x1e\xeb\x7f\xe0\xae\x85\x4b\x9e\xdb\xd1\x8b\x84\x38\x76\xd8\x6b\x78\x2f\xaa\x53\xe3\x00\x67\x21\xcf\x91\x02\xa7\xba\xaf\x1c\x5f\x72\x62\xfe\x7f\xc3\x72\xfa\x57\x02\x5a\x61\xef\xa5\x7a\x15\xf5\x0b\xdc\x00\xf4\x5c\x80\x24\x35\x79\x8a\x2f\x5d\x8d\xe9\x77\xfc\x51\x63\x49\x88\x31\xa1\xe0\x19\x67\xee\xfc\xe3\xca\x22\xc2\x90\xa3\xe8\x66\x5f\x1c\xc9\x30\xcd\x9d\x51\x6a\xb1\x51\xcb\xc5\x76\x0c\xa4\x24\x19\x8d\xf3\x9c\x8c\x52\xcc\xa3\x09\x92\x51\x4e\x90\x4d\xbc\x50\xd5\x50\xab\x17\x8f\x88\x58\x38\x7f\xcb\xbe\xc0\x07\x74\x91\xf6\xf3\x44\x97\x24\xa3\x3a\x45\x99\xd5\xe3\x5e\x9c\x6f\x44\x08\xe9\x32\x16\x03\x36\x8b\x17\xcd\x5d\xf9\x08\x3f\xdb\x5b\x5b\x75\x9d\x6a\x67\x91\x8c\x65\x11\x7a\x78\xaf\xa2\x79\x7e\x3d\x37\x85\x12\xfb\x59\x68\x4d\xc6\x72\x99\x61\xb1\xa3\xae\xaa\xc3\x8f\xee\x3f\xe1\xb7\xb4\x25\xdd\x5b\x1c\xc4\xfe\x45\xf4\x1f\x43\x92\xe5\xa3\x10\xb6\x47\x08\xdf\x57\x13\xa5\x37\x92\x31\xa3\x72\x57\x13\x74\x9d\xc1\x33\x7c\x27\xf3\xee\x4e\x16\xa7\x96\xd2\x3a\xcc\x7b\xa4\x7d\xf1\x17\x12\x2b\x96\xe7\x61\x4b\xc4\x54\xd8\x53\xfb\x0a\x75\xb7\xca\x46\x0d\xbd\xe3\x47\x9b\x38\x69\xca\x83\x68\x9a\x55\xfb\x3a\xa8\xc1\x67\x09\x4f\xf2\x5e\x3b\xc7\x75\x5e\xdf\x54\xf5\x62\x02\xe4\x26\x59\xa2\x2d\x33\x60\x50\x9b\xb0\xfd\xc9\xc3\x5d\x31\x4b\x25\x60\xc9\xfc\xba\x2a\xab\xfa\xf3\xf5\xf1\x89\x7d\x73\x27\xc9\x52\xeb\x52\x9c\x9a\xce\x2a\xac\x2b\x59\x7d\x42\x34\x47\xb2\x2c\x07\x6c\x64\xfb\xb6\x6f\xeb\xe2\xe7\x20\x6c\xc9\x32\x48\xb1\x02\x65\x8a\xfd\x6f\xa4\xec\xc6\x67\xcc\x53\x9b\xcd\xf1\x5d\x66\x13\x56\x32\x92\xe5\x9c\x60\x0e\x7a\xf1\xd0\x53\x13\x92\x8c\x83\xc4\xd2\x2e\xf2\x9e\x68\xa4\xd4\x76\x47\x04\xb1\x3c\x99\x1b\x68\x17\x28\x29\x88\x2d\x40\xa3\xa7\x26\x32\xae\x82\xe2\xea\x63\x55\x1f\x5c\x2f\x44\x9f\xe2\xf1\x03\x45\x8e\xc9\xf8\x5b\x68\xaf\x8b\xf7\x67\xfb\xde\xef\x3b\x43\x11\x46\x48\x86\x35\x7c\x53\x03\xd0\x09\xbb\x21\xc9\x24\x10\x2f\x41\xb8\xd8\xef\xbf\x54\xa7\x66\x70\x63\xca\x50\x6e\xd5\x0d\xdb\xba\x80\x77\xf8\x21\xea\xba\xa8\xea\xf9\x8e\x40\x57\x75\xce\x74\xa4\x6d\x99\xeb\x6e\xeb\x9b\xc4\xea\x87\x21\x4e\x72\x7e\x96\x6b\x9a\x60\x39\x75\xec\x30\x8f\xfd\xd4\x0c\x62\xeb\xb7\x37\x94\x0d\x11\xb7\xdd\x01\x2b\x5d\xa5\x41\x55\x1a\x85\xd1\x26\x0e\x53\x66\x12\x8d\xb5\xde\xce\xed\x54\xb0\x7b\x2f\x4a\x55\xb4\x55\x1d\x1e\x93\xc9\x48\x4c\x07\xbd\x32\xbf\xb3\xe0\xfe\x6b\x3a\x61\x08\xf5\x29\xe1\x23\x64\x9e\xfe\x66\x4e\xf8\xd7\x21\x60\x1e\x51\x1d\x3a\x26\x57\xb7\x0b\x5f\x0b\xcd\xa3\x94\x8d\x1c\xbb\x01\x5e\x62\xf1\x02\xd3\x5c\x41\x1e\x71\x03\x79\xdf\x8f\x73\x5f\xfc\xe7\x84\xdb\xc0\xf6\x75\xb8\x91\xe4\x91\xb4\xf0\x38\xaf\x54\xd6\xd7\x58\x67\x77\xc6\x3c\xd2\x11\xf6\x56\xee\xb4\xdd\x84\xc7\x19\x78\x3f\x08\x24\x3a\x60\x56\x3a\xeb\xce\x33\x84\x92\x9c\x50\xdb\x6c\x52\xc2\xc7\xf2\xd4\xb4\xd5\xc1\xea\x2a\xf8\x26\xe6\xbf\x65\x15\x72\x92\x26\xe8\x31\x3e\xad\x1e\xc3\x79\x73\x01\xda\x23\xf2\xa0\x29\x34\x94\x2d\x5c\xc3\x03\x34\xe2\x77\xac\x29\xfe\x0c\x8a\x61\x97\xcb\x23\xa8\xba\x1a\xee\x89\x39\x95\x31\x86\x59\xd6\xb9\x57\xe7\x2f\xa0\xc3\x2a\xcb\xa9\xa6\xc8\x4a\x77\xb7\x7c\xda\x21\xed\x29\xd9\xdd\xdf\x3d\xdc\x79\x6b\x90\xb3\x98\xc5\xba\x67\xed\x6b\x02\xa5\xd6\x6c\x68\x9c\xb3\x44\x22\xdb\xe3\x1e\x4c\x4b\xc9\x78\x2a\xe7\x31\xe1\xe8\xcc\x6d\x0e\x3e\xdb\x92\xc7\xdc\x76\x53\xa0\x84\x85\x3c\xbd\x84\xcf\x85\xc6\x47\xd4\x53\x26\x6c\xab\x10\x68\x2e\x4a\xc7\xc5\xd2\x5c\x36\x5d\xf8\x34\x56\x1e\x4b\x1b\x68\x60\x5f\xa0\x6b\x23\x71\x15\xf4\x77\xf8\x44\xef\xf9\xf2\xa9\x26\x2a\xb1\x8a\x43\xc3\xf6\x62\xe4\x5d\xf6\x03\x0c\xc3\xfd\x74\x57\x7d\x94\xcd\x2c\x39\x24\xc9\x53\x42\xb4\x0d\x40\x1d\x8a\x3e\x3c\xfd\x34\x8d\x88\xe3\x4c\xf2\xa5\xfe\x61\x86\x2b\x4f\xd3\x84\xeb\x5e\x54\xfa\x4e\x55\x0f\xa2\x28\x2f\xba\x60\x49\x9e\x3a\xfc\x7b\xd1\xf9\xe1\x8b\x52\xdf\xcf\x00\xbc\xdd\xd0\x2c\x4e\x71\xaa\xe1\x9e\x67\x29\x8a\xf4\x9c\xc8\x02\xc9\x73\x63\xb9\xff\x1a\x2f\x14\x67\xfd\x95\xfd\xfd\xfb\x90\x1b\xdc\xd9\xcf\x9c\x33\x8d\x1c\x97\xd5\x5e\x9f\x1a\x68\xe6\xb5\x14\x48\xce\x25\xc7\xbd\x17\xb3\x9d\x4e\x8c\x6d\x98\x67\xf6\xc3\x14\x41\x20\x5f\x2f\x25\x77\x75\x5e\x1d\x44\xf1\x29\xf9\x86\xfb\x9e\x48\x92\x94\xf5\x56\xa3\xd9\x20\xae\x7a\x32\x46\xc7\x1a\x86\x02\x78\x0b\x33\x01\x66\xe4\x32\xca\x30\xaf\x1a\x3c\x04\x4c\x55\xa2\xa0\xe3\x6c\xff\x09\xc9\x25\x67\x56\x73\x16\x27\xc2\x2f\x77\xe6\x5c\x25\x1a\xf3\x3c\x37\x75\xf5\x72\x2d\xea\xd3\x41\xfc\x96\xe1\x63\xfe\x44\x9a\xc7\xb1\x2b\x48\x7c\x11\xb5\x5e\x8a\xe3\xe4\x56\xb5\xe1\x48\x51\xfd\x2e\x4e\xfb\x76\x67\xb5\x07\x2d\xd2\x29\xcc\x60\x6d\xac\x42\xed\x51\xd4\xf5\x84\x6a\x91\xe4\x10\x31\x2c\x5b\x5a\x8a\x83\x6b\x98\x94\xf8\x73\x20\x31\xe2\x16\x17\x65\x59\x9d\x4a\x85\x38\xa4\x66\x7a\x8e\x9c\x48\xd6\xe7\xd7\x87\x6f\xd9\x18\x99\xdb\xcd\xed\x1d\xea\xa6\xaa\xef\x9a\x0b\x24\x02\x8f\x22\x86\xe9\xbc\x9d\x8f\x0f\xfb\x94\x09\x8f\x5c\x6f\xed\x76\xbd\xbc\x68\x94\x25\x9c\x48\x86\x89\x9f\x05\x32\xca\x5e\x79\x40\xda\xe4\xfa\x38\xd1\x19\x82\x2e\x9e\x9e\x57\xeb\xc5\xf6\xee\xe9\x71\xb3\xdb\x7c\x59\xac\x57\xe1\x34\x40\x2c\xa6\x59\xb4\xb0\x39\x37\xc3\xd8\x6b\x7c\x22\xca\x52\x2c\x0f\xd5\xa8\x0e\xe2\xe1\x2a\x9c\x26\x12\xbb\x6a\xfe\x5c\x2c\xbf\x78\xbb\xca\x19\x13\x18\x14\xbe\x54\x62\x8f\x39\x73\x44\x70\xf5\xd1\x13\x67\x59\x24\xbd\x08\x5f\xfb\xf5\xcf\xe5\xe4\xa9\x30\xd7\xc6\xd2\x1c\xf7\xdd\x2c\x2f\xca\x97\x4b\xe7\xd4\x0d\x8d\x23\x81\x39\x66\xe1\xde\xd1\xe4\xf6\x13\x29\x91\x39\x69\x71\xfe\x10\x6f\xf0\x79\xeb\x1b\xe1\x09\x18\x34\x86\xdd\xc6\x8e\x81\x80\xf5\xb1\x43\xd2\x8f\x27\x46\x63\x39\xc4\x49\x65\x5d\xef\x2c\xbf\xf0\x6e\x73\x77\x1d\x9e\x66\x96\x8a\xd4\x6b\xc1\xee\xa1\x85\xa1\x7e\xda\x3f\x26\x19\x8a\xf1\xcf\xe7\x09\xc3\x66\x63\x70\xde\x99\x23\x27\x99\x7f\x17\x79\x26\x68\xee\x69\x01\x84\x06\xf4\xbd\x27\xcf\x30\xcf\x65\x2a\xfa\x5a\x7f\x90\xe0\xeb\xcf\xc2\x89\x6d\xa4\x54\xb6\xff\xf0\x57\xc8\x08\xce\x55\x8e\xd3\xc4\x12\x4f\xfd\x2a\x56\xf8\x2c\x27\x32\xbb\xa5\x72\x99\x5b\x41\x17\xcb\x44\xe2\xea\x2b\x53\xce\x2d\x3f\x96\x73\x94\x9c\xb4\x04\x99\x98\xcb\x7a\x32\xc6\x1f\x55\x8c\x27\x36\x40\x3a\xda\x65\xb4\xad\x85\xef\x3d\x73\x43\xba\xe9\x1e\x24\xe5\xf7\xc6\x76\x23\x87\x2e\x88\xee\x09\x84\x91\x39\x20\x9e\x09\xdd\x7b\x38\x1d\x24\x86\x50\xee\x20\x44\x5c\x81\x6f\x51\x37\x9d\xed\x71\xa9\x9b\x50\xc5\xdc\x40\xdb\x22\x86\xc1\xf2\xcf\xfc\xe3\x6f\xff\xf1\xbf\x40\x04\xb6\x69\xf4\x8a\x81\x8f\xf0\x31\x83\xf1\xe5\x40\x59\xea\x3a\xf4\xb0\xb2\x37\x2b\xd5\xef\xc7\xa6\x0a\x3b\xcb\xed\xae\x78\x0d\x42\x23\xde\xe6\xb3\xf7\x37\xb7\x69\x8a\x48\xd9\x0a\xb7\x53\x75\xf7\x18\xed\x5f\x26\x20\x45\x04\xb9\xf2\xf0\x32\x80\x35\x48\x81\x44\xc3\x6a\xea\xa8\xb8\xbd\x56\x10\x46\x0d\x0f\x62\xb2\x8f\x95\x76\x14\x13\x43\xce\x55\x22\x88\x04\xcb\xfa\x5b\xcc\xf8\x3b\xbd\xa9\x11\xc4\x31\x51\x08\xad\x37\x55\xf9\x72\x2d\x5a\xf1\x5b\xce\x7f\x22\x68\x66\x3b\xbc\x7e\xaf\xe3\xf9\x37\xf7\xb4\xc9\x33\xa1\xd2\x60\x2a\xdb\x76\xf7\xee\x5c\xb6\x62\x37\x32\xf1\x82\x6a\xa3\x6d\xf4\xb3\xfa\xe9\x84\x4b\x44\x2b\x06\x62\xf4\xa3\xdc\xb0\x60\x9a\x89\x21\x75\x1e\xb7\xc7\xb9\x9d\x5b\xdc\x8f\x32\x12\x53\x9b\xb6\x2e\x8f\x5d\x64\x98\xb9\x98\x5d\x9f\x22\x8e\x14\x76\x7c\xec\xac\x96\xea\xf7\x01\xd5\xc1\x27\x6f\x3b\x16\x1c\x9d\xe4\x2b\x70\xbc\x09\xbf\xcf\xcc\x8a\x94\x44\x58\x73\x6a\x3b\x63\x76\x55\x55\x6f\x53\x2c\xa9\x48\x59\x8c\x0e\xc8\xd3\x77\x5f\x74\x13\x29\x8f\x13\xc7\x70\xb4\x83\xb2\xd2\xb0\x93\xe7\x9d\xcf\xff\xf7\xd7\x93\x25\x80\x8c\xe0\xdf\x9f\xb6\xab\xdd\xcd\xd3\xfa\x8f\xf0\xb9\xa5\x47\xf5\x1d\xed\x20\xda\xb3\xc3\xc7\xfd\x31\xbc\xc4\xc9\xed\x65\x9a\x08\x5b\x23\x7e\x2e\x4a\x17\x60\x6d\xa1\x69\x3d\x34\x43\xe4\x3a\x8e\x5d\x99\x0b\x95\xde\x24\xb4\xbb\x77\xb1\x3f\x05\xaf\x5a\xf0\xd8\xf2\xdb\x6e\xff\xf9\xd4\x0e\x42\x19\xc1\x41\xa2\xbf\xfc\x11\x88\x7e\xbc\x21\xb4\x65\xda\xf1\x85\x70\x93\x20\x39\x83\xbd\xfe\x9b\x62\x0f\x28\x56\x5d\x95\x2d\x7a\x29\x13\xb4\x8d\x6f\x71\xf9\xf7\xe4\x76\x84\xb6\xbb\x04\x42\x15\xf6\xd5\x69\xc8\xf1\x9f\x8f\x56\xa5\x8c\x62\x64\xb2\x5b\x74\xeb\xc8\xb4\x1f\xa2\x9e\x56\x87\x3f\x01\xfe\xf8\xef\x6b\xab\xc9\x8e\xf5\x25\xb8\x06\x55\x1c\xc4\x3c\xb3\x1a\x11\x4a\xc6\x68\xd6\xac\x1e\xbc\xbe\xaf\xc4\xa7\x14\x68\xee\x1b\x10\xc5\xf9\xb0\x49\xe3\x0a\x94\x38\x35\xf0\x64\x16\x2f\x2f\x35\x26\x87\x7f\x99\xb4\xef\x3d\xed\xcb\x60\x4b\x00\x4f\x52\xe3\x94\x7d\xce\x30\x29\x46\x0a\xe0\x96\x58\xe1\xfe\x66\xb3\xfd\xf3\x7e\x18\x9b\x0a\x10\x49\xcc\x2c\x7e\xa1\x5b\x3c\x23\xd1\x4f\x37\xc4\xe4\x02\x89\xfd\xef\x8b\xf2\x0d\xea\xd5\x4f\x71\x08\x1c\x23\x44\x18\xe1\x00\x05\xba\x0b\x3a\xea\xf6\x02\xa9\x22\x8c\x96\xb9\xa5\x0b\x3b\xbb\x06\x3c\xf7\x5d\x49\xa8\x65\x92\x85\x9f\x4e\x55\xff\xaa\xfa\x7d\x0a\x64\x74\x72\x49\x04\xa5\xce\xff\x9e\x4c\xa7\xe1\x43\x1a\xfc\xcb\x36\x8f\x4f\x9f\x9f\x24\x32\x4d\x2c\x8a\xaa\x7c\x81\xd5\xf6\xcb\x08\x01\x22\x59\xb7\xb8\x71\x1e\x9f\x8f\x6d\x25\x45\xf9\x36\x2b\x25\xd9\xb9\xbb\x11\xf7\xf2\xb1\x98\xa0\xab\xea\xb9\xed\x43\x32\x26\x8c\x18\x6d\x9e\xd7\xe2\xfc\x2c\x82\x1f\x21\x19\x17\x60\x75\xe8\x71\x0e\x3e\x19\xd3\x40\xb8\x9c\xd8\x58\x45\x1e\x44\x48\xd8\xdf\x59\x63\xbd\xe8\xfa\x8f\x39\x3d\x6a\x22\x13\xa0\xb8\x0e\x5b\x68\xda\x1b\x51\xec\x3d\xa5\x6a\xa0\x76\xd2\x8b\x97\xc0\xa2\x43\x64\x1a\xe7\x98\x27\x52\xee\x30\x32\x9e\x88\x70\x6d\xa9\x48\xf0\x95\x1b\xcc\xcd\xac\xda\xd7\x5b\x18\x52\xd6\x13\x99\x6a\xcd\x06\xf4\x86\x13\x01\x26\x37\x28\x53\x12\x4b\x7e\x61\x35\x20\x65\xcf\x04\x0b\x23\xf3\xcc\xb2\xc7\xbe\x40\x5b\x23\xf1\xcb\x78\x66\x4b\xae\x6c\xbd\xec\xe9\x39\xa4\x72\xa4\x48\x13\x44\x40\x38\x06\x8b\x50\xb3\xe9\xb9\x06\x88\x14\x39\x45\x4b\xb1\xb9\xfb\x67\xf8\x48\x98\xc4\x52\x25\x1e\x0e\xa7\xb2\x68\xcf\x56\x1a\x1a\x65\x29\xfa\x8c\x81\x14\x32\xc6\x76\x58\xd9\x5d\xaf\xcb\x71\x4f\xd7\xed\xfc\xdc\xf3\x27\x50\xb6\x06\xe1\xda\x59\xae\xba\xd9\x34\xbb\x4d\x49\x19\xc5\xcc\x0a\x36\x62\x49\xce\x01\x01\x1c\x92\x25\xac\x22\x99\x28\x0b\xb5\xc2\xfc\x27\x12\xd3\x4d\x2a\x2f\x52\x66\x32\xe1\x21\xd5\xff\x0c\xf5\x0f\x28\x30\xfb\x40\xbc\xf2\x31\x91\x32\x4f\xd1\x3a\x21\x1f\xdc\x20\xfa\x92\x52\xa4\xd8\x23\x6a\x5b\xfa\x07\x7d\x2e\x52\x51\x85\xc8\x37\xff\x0a\x91\x15\x67\xd6\xf6\x49\x15\x13\x7c\xde\x5f\x45\xf9\x7f\x3b\xdf\x2e\x9c\x22\x51\x98\x24\xfa\x8a\x2b\x6b\x9c\x37\x93\x2a\xb5\x8d\x32\x56\x09\xc3\x95\xe6\x36\xbb\x6f\x9b\xeb\x30\x22\x4b\x85\x93\x3d\x2a\x8e\xc5\x65\xe8\x2b\x95\x34\x18\x7e\xef\x8a\x66\x0d\x42\x7b\xb7\x45\x6a\x46\x11\xb9\x84\x4e\x33\x36\x14\xf4\x39\x46\xa9\x93\x14\x73\xe8\xdb\x1a\xb1\x5a\xe1\x63\x93\x62\xc6\x56\x89\x5a\x37\x3b\xb9\x17\xea\x6d\x87\xdc\x2b\x93\x99\x0d\x99\x7d\x2c\x88\x6a\xa9\x9f\xab\x7a\xc4\x6a\x49\xa4\xe1\x31\x76\x82\xd4\xd5\x5b\xff\x91\xb0\xa0\x50\xf8\xd9\xae\x4f\x01\x4a\xa5\x22\x22\xc7\x1a\x19\x7f\xaf\xf2\xa0\xa2\x54\x22\x51\x8e\xf0\x3a\x86\xbe\x7d\xcc\x2f\x62\x45\x3a\x0f\xd6\x35\x35\xdf\x95\x4e\xc5\xea\x1c\x8e\x32\x21\x75\x60\x30\x5d\x43\xd9\x03\x4b\x14\x49\x04\xd6\x63\x9f\x7e\x3c\x76\x6f\x63\xf1\x78\xbd\x7b\x5e\xac\xb7\xf8\x3f\x16\x47\x1f\x46\x72\x83\x99\x5e\x9f\xb6\xfb\x94\x01\xc7\x8f\x37\x04\xab\x06\x5d\x20\xb1\x17\x17\x81\xe5\xc0\x63\x56\x54\x0a\x0c\xce\x91\x6e\x66\x7e\x87\x56\x8c\x18\x12\x0d\x25\x11\xbe\x1d\x07\xf1\xbd\x62\x8c\x62\x34\x7b\xf4\xda\xf9\xdb\x6a\xa1\xfe\x73\x2a\x44\x89\x64\x7f\x0d\xae\xfc\x41\xae\x44\xc5\x2c\xb1\x3e\xd1\x2b\xac\x7e\xb6\xb5\xa8\x6a\x5d\x94\xa2\x3e\x6f\x8e\x02\xf3\x2e\x61\x5c\xca\xc9\x00\xee\x72\x59\xd4\x53\x71\x1e\x63\x72\xd5\x23\xfc\xd6\x56\xb5\xeb\xfc\x15\xce\xae\x0d\xf2\x5b\xd9\x16\xe1\x89\xc7\x8a\x46\xa9\x17\x92\x3a\xb5\xc1\xa7\xb9\xac\xc2\xab\x04\xac\xb8\xf9\x0b\xb4\x0f\xe7\x45\x59\x75\xb1\xe1\x35\x52\x96\xfb\x93\xa5\x19\xb3\x7c\xdc\xbe\x29\xbe\xd4\x88\x53\xff\xb4\x9e\xdc\x37\x09\xa9\x94\x33\xd4\xaf\xb0\x7a\x5a\xdb\xa7\xaf\xab\xc7\x4d\xe7\xaf\x8e\x1a\x92\x54\xca\x39\x36\x4d\xc0\x4f\xa8\x55\xd1\x40\x10\xed\x25\x2a\x95\x91\x87\x87\xa3\xfd\x99\x51\xd8\x23\x2a\x35\x31\x36\xb3\x7a\x54\x2e\x86\x1d\xeb\x0b\x54\x88\xca\xa8\xc2\xd2\x4d\xd1\xdc\x95\x68\xab\xb7\x1f\xd5\x40\x64\x89\xa8\x8c\x31\x4a\x03\x90\x5d\xd4\x5a\x89\xe3\x18\x3b\xa2\x32\x91\xa2\x31\x5e\x04\x76\x15\x3f\x59\x7b\xed\x92\x7f\xd1\xde\x88\xe7\xff\xfe\x64\xc5\x65\x12\x30\x4d\xbf\x3b\x9e\x9a\x57\xd4\x61\x41\xce\xcc\xe1\xe0\xfc\x93\x69\x9f\x27\x31\x66\xb0\x6f\x6f\xd7\x95\x7a\x83\x09\x07\xf3\xac\x34\xdf\xf4\x0c\x90\x81\xeb\xb6\xad\x8b\xf6\x3c\x01\xd0\x2a\x11\x51\xc4\x8c\x62\x6e\x7a\x0c\x81\x99\x3f\x9f\x8c\x4c\x64\x42\x6d\x6f\x5b\x1d\x64\xb0\x1b\x92\x53\xe4\xa7\xfd\xf2\xed\xf1\x7a\xbd\xba\xde\xde\x3d\xac\x36\x93\xf7\x22\x39\x47\x0e\x34\x6c\x48\xfb\x0d\x5f\x84\x92\x46\xa5\xa9\x07\x71\x58\xb2\xbd\x1b\x80\x26\x08\x41\x4d\x7d\x59\x25\x0d\x78\x82\xc8\x35\x18\x73\x21\x32\x43\x94\xe2\x3c\xb3\xe4\x75\x5b\xa8\x0f\x45\xd9\xb3\x94\x13\xa5\x09\x57\xd6\x5d\x45\xd4\xe6\x32\x34\x06\x2b\x9d\x49\xe3\xdb\xc3\xbe\x59\xbd\xf6\x09\xf9\xb3\x1f\xa8\x0c\x96\x67\xad\x1c\x3f\x92\x82\x77\x7b\xd3\x7a\x77\xf5\xf4\xf8\x6d\x13\x4e\x67\x00\x41\xd8\x38\xcd\x77\xcf\x55\xf5\x29\x53\x9b\xfb\x02\x44\x24\x73\x5d\x15\x8b\xab\xbb\x2f\xa2\x79\xbd\xa9\xea\x87\x6a\x2c\x45\x40\x14\xb0\x14\x17\xd7\x09\x2d\xda\x9d\xf6\x9d\xbf\x0a\xd2\x04\x41\x64\x45\xb3\xc4\xbd\x74\x5d\x1d\x90\xe5\x7a\x89\xac\x45\x98\xa5\xb8\xd9\x86\xc1\x8a\x89\x90\x3a\x40\xdf\xa2\xc7\xbd\x2b\x43\x08\x9b\xb8\x97\x9b\xee\x61\xbb\x2d\x76\xf2\x38\x0c\xa4\x48\x9e\x8c\x45\x9d\xa5\xed\x3b\xdf\x7e\xea\xd3\x68\xd2\x6d\x1f\x1e\xcd\x66\xaa\x53\x7d\x57\xbe\x5b\x40\xdb\xb7\x1e\xc6\xe9\xc7\xaa\x5c\x00\x76\x10\x20\xf0\xdb\x77\x4d\x0f\x2c\x92\x26\xc6\x02\x9f\xbb\xb7\x76\x92\x81\x89\xd9\xf5\x4f\x5a\x7e\x99\xe1\xf3\xd3\x54\xda\xee\x90\xe0\x78\x23\xe7\xc0\x90\x19\x99\x68\x26\x72\x44\x1e\x38\x8e\x0a\xdf\xdd\x3b\x9f\x1b\x9d\x5f\x42\x9a\x39\x16\x5e\x47\x5d\xfd\xfc\xf6\x12\xce\xae\x6d\x3f\xeb\x43\x51\xb6\xf7\xd5\x05\x1f\xa4\x1b\x15\x53\x0b\x6a\x43\x6c\xe9\xa8\x60\xf6\xaf\xf4\xdf\x21\x54\x4e\xff\xed\x87\xa7\xda\xc7\x41\xcb\x57\x68\x06\xcd\xf6\x64\x7a\x65\xb1\xb2\xad\xf9\x8d\x30\x70\x5d\xbc\x7b\xe4\xec\x68\x4c\x42\x38\x42\xd0\x07\xed\xfb\xe3\x65\xa8\x13\x16\x7b\x36\x6b\xa4\x71\x13\xfb\xde\x3f\xec\x36\xcd\x6d\x0d\x0d\x76\x5f\x4e\xbe\x96\xa6\x76\xfd\xb9\x2e\x2c\xdc\x48\xe7\x2a\xc0\x3a\xc9\x69\xec\x30\x7f\x57\xd0\x6e\x5f\xdd\xf9\x9e\x83\x57\xab\x93\x5c\x62\x46\x06\x73\xc3\xd8\x4e\x3b\xfe\xad\x34\x4b\x7c\x1b\xb6\x63\x9a\x43\x7e\xf9\x67\x98\x4a\x3a\xfb\xf1\xda\xfa\x77\xab\xa6\x2d\x0e\xa2\x85\x3e\xe4\xd1\x29\xc4\x08\x40\x3a\x8a\xa2\x6c\x6f\x6b\x61\x4c\xd1\x16\xd3\x09\x31\x4c\x17\xe9\x3c\x32\xda\x41\x6b\xbb\x5f\x9b\xdc\x5c\x6e\x34\x1a\x31\x6f\x13\x46\xc4\xf7\xc3\x48\x51\x73\xc6\x48\x1e\x52\x28\x8b\x77\xd1\x8a\x7a\xb6\x58\xa8\x45\xc4\xc1\x45\xd3\x18\xd3\x1d\x8e\x55\xdd\xde\x00\x2c\x11\xfd\x35\x9e\xe1\x22\x8f\x59\xea\xaf\x0e\xd3\x8d\xbf\xba\x17\x49\xac\x43\x7b\x8f\x72\x6e\xb6\xf7\xed\xe9\x08\xe5\xd4\x36\x6b\xc9\x2d\x37\xe5\xdd\xe3\x7a\xf7\x74\x28\x0b\x5d\xed\xf7\xc2\xa3\x8d\xb5\x54\x3a\xb3\xcc\xf5\x8f\x95\x86\xed\xfd\xf5\x93\xf1\x49\xd3\x30\x46\xb1\x0c\x5d\x1d\xfc\x29\x04\xda\xea\x01\x83\xd8\xe4\x8e\x55\x46\x11\x63\xfd\xb0\xda\x2e\xbe\x2c\x36\x5f\x50\x5d\xd0\x1d\xd3\x34\xc3\x48\x5c\x9e\xce\x3b\x28\xf5\xae\xed\x1d\x39\xad\x25\xc5\xbc\x43\x8d\xd4\xe4\x96\x50\xf4\xd7\x20\x13\x0d\x49\x44\x1c\x76\xcd\x63\x20\xc7\x76\x05\x12\x4e\xc5\x84\x87\x6e\x32\xc2\x18\x64\x77\xd8\x81\x3e\xa9\xd0\x17\xed\xaf\xc9\x10\xab\x50\xd2\x3d\xf6\x2b\x08\x14\x4d\xda\xb0\x28\x55\x8e\xb3\xf7\x17\x7d\x43\xda\xe4\x24\x00\xb1\xb1\xa4\x8a\xee\x87\x3f\xa8\x15\xe6\x7f\x8e\xa2\x85\x12\xbb\x9f\xbb\x25\x7a\x0d\x7b\x4f\xbe\x4a\x20\x62\x29\x6e\xda\x9e\x97\xa7\x72\x45\xdb\x01\x8f\xf5\xe8\x07\x21\x8a\x23\xec\xf2\x70\xc6\xd9\x66\xe6\x40\x5f\xbd\x4d\xba\xce\x21\xca\x24\x92\x4f\x56\xe5\xfe\xbc\x44\x91\xff\x87\x9e\xff\x04\x48\x12\xb9\xe6\x88\x52\x5f\x89\xc1\xe7\x9c\x88\x78\xa8\x5f\xd3\xf9\xc7\x48\xbf\xd3\x8f\x10\x58\x21\xee\x11\x0a\x41\x2f\xd9\x65\x25\x2d\x6f\x94\x1f\x4f\x41\x26\xe0\xf5\x00\x3c\x3f\x9d\x3f\xc8\xe2\x0c\x43\xed\xdb\xe5\xd3\x3f\x17\x4b\x27\xe9\x75\xe9\x7a\x4d\x9a\xef\x20\x8e\x22\xac\x5c\x82\xaa\x6c\x61\x72\x5c\x0e\x82\x58\x5a\x79\xfa\x02\x17\xe3\x84\xd1\xcb\x8d\x49\x72\x4b\xa1\x72\xac\xe1\x4e\x55\x03\x32\x39\x48\xb9\xa5\x52\xda\x8b\xa6\xbd\xaf\xda\xb6\x1a\x44\x23\x90\xba\xb0\x7c\x0f\xa6\xf5\xc4\xdc\xee\x50\x06\x56\x70\xa4\x81\xbd\xb9\x1f\x3c\xeb\x9c\x59\x6d\x30\x5b\x5d\xf9\xdb\xa0\xa3\x3e\xbc\x80\x5c\x28\x2c\x68\x2c\xae\x96\xbf\x4f\x99\x03\xcf\x29\x55\x7d\x35\x72\x24\x61\x49\x80\x73\x0b\x14\xb8\x5a\x2c\xbf\xde\xaf\x16\x37\xe1\x73\x21\x91\xc4\x62\xf3\x51\x98\x36\x7c\xa8\x95\x34\x21\xa6\x46\xd5\x98\x5b\x71\x80\xd5\x67\xed\xdd\xc0\x4d\x96\x78\xd6\xe0\x2f\x45\xbb\xa9\x4c\xdb\xb7\x0a\x80\xa0\x16\x29\x5f\x75\x0e\xe4\xe6\x0d\x5a\xf5\x3a\x21\x37\x9f\x9c\x4e\xe4\x12\x63\x8d\xff\x79\xdc\x7e\x6b\xf4\xf0\x25\x09\xa9\xd0\xd0\x2c\x3f\x83\x97\x7f\x5e\xc1\x01\x99\xc6\x58\x3d\xd7\xce\x61\x47\x72\x98\xc9\xf4\x90\x82\x2b\xee\x01\x3a\xc8\xa6\xe6\x9b\x76\xc2\x2c\x53\x8c\x3a\xec\x12\xf2\x70\x6c\xab\x2f\x7d\xbf\x1d\x28\x91\x5b\x71\xb7\x6e\x13\xbf\x53\xd5\xa8\x7e\x0f\x4a\x03\x3a\x03\x87\x1d\xe6\xef\x07\xc0\x1a\xd0\x4c\x0b\x87\x0c\x42\x6d\xae\xf9\xcc\x0e\xe8\x2c\x16\x7a\x00\xf5\x1b\xdb\x45\x00\x2a\xb1\x50\x56\xa8\xca\x37\xbd\x0f\x67\x31\x30\x8a\xf4\x47\x7d\x68\xd2\xdc\x54\x75\x77\x81\xe3\xe7\x6f\x62\xc0\x4e\xcd\x77\xdf\xfe\xfc\x1b\x84\x07\x98\x2c\x41\x5c\xc4\x73\x35\x23\xbe\x15\x02\xe7\x4f\xda\x80\xff\x3f\xff\xfa\x9f\x96\x09\xa6\x4f\x77\x2f\x9d\x33\x26\x0e\xc7\xe9\xbd\x68\x16\xb9\xd7\x55\x87\xa4\xae\x89\xa4\xc4\x0b\x3e\x56\x47\xf4\x4b\x5d\xae\xfc\xa6\x86\x20\xb3\xe2\x5f\x8d\x21\x60\x02\xa1\xb5\x05\xf0\x0c\x96\xbf\x21\xc6\x18\xc7\xe0\xeb\x2c\xce\x4d\x55\x6f\x7f\xf6\x61\xb8\xa1\x59\xaa\x59\x9f\xa1\xb0\xe0\x3f\x7f\xcc\xb1\xf2\x14\xcd\xb7\x06\xea\xe7\x6a\x5f\xa8\xf3\x02\x65\xdb\x43\x14\x65\x28\x18\x44\x2c\x14\x4d\x40\x43\xf9\x23\x86\x5b\xec\x6a\xc8\x6b\x17\xef\x3e\xe9\x6a\x58\x2c\xb1\xb5\x69\xb7\x3b\xa1\xae\x05\xf2\x21\x8d\x1f\x8e\x61\x79\x84\xc8\xf2\xe5\xf6\x76\xb8\x3f\x9a\x38\x25\x3a\xe9\x59\x25\x7d\x3b\xca\x6c\x19\xd9\xc4\xda\xd8\xfa\x56\x17\x81\x0e\x9a\x22\xa6\xe3\x92\xc4\x76\xe4\xa0\xb6\xda\x24\x69\x6a\x12\xee\x24\x8e\x9a\x7b\x81\xad\x25\x45\x59\xd5\x5b\xd4\x21\x98\x7b\xed\x26\x25\x0a\x03\x21\x8c\x61\x8b\xbf\x20\x70\x97\x98\x94\x00\x5e\xbb\xae\xab\xa3\x4d\xe0\x9c\x06\x90\x5d\x93\xc6\x34\xb6\x80\x8c\xd2\x14\x2f\x4e\xb6\xf3\xef\x17\x75\x2f\x32\xcd\xff\x18\x27\x1d\xc6\xcf\x37\xe5\x3c\x72\xf8\x82\x2f\x50\x57\xcb\xbd\x68\x9a\x09\xfd\x3b\x31\xa9\x4e\x31\x82\xee\xf5\x7d\x3e\x91\x41\x9a\x5d\x7b\x26\x8b\xb2\x34\x0a\xbe\x2f\xe6\x1d\x5d\xa3\xb6\xd3\x3a\x3d\x1c\xaa\xb2\x0b\x89\x67\xb4\x03\x89\xc9\x44\x0c\x71\xdf\x18\xd1\xd3\x17\x0f\x03\x3f\x93\x0b\x1a\xe5\x81\xe7\xf0\xa9\x7e\x11\x65\xd1\xcc\x20\xf9\x0d\xa7\xb6\xb9\xaa\x73\x00\x6b\x38\x1d\xae\x61\xdf\x0a\xff\x66\x78\x42\xd1\x00\x1f\xeb\xea\x08\x75\x7b\x46\x43\xb7\xad\x66\x6a\x99\x86\x2b\x1b\x8f\xbc\x88\x03\x0c\xb3\x4c\x86\x1b\x86\x5e\xa8\x2c\x5a\x5d\x8e\x38\x41\x8d\x60\x16\xe6\x6e\x11\x29\x6d\x55\x4f\x95\x7f\x89\x11\x59\x8c\xf5\xf3\x4d\x71\x38\xee\x61\x28\x90\x45\x8c\xe0\xb1\x76\xcf\x11\x69\x96\xfa\xa0\x36\x0c\x50\x68\x7b\x9f\x45\xdd\x96\x3d\x8d\x80\x11\xc0\x90\x72\x7e\x59\x39\x66\x8c\xcd\x47\xd1\xaa\x57\x18\x07\x92\x6e\xb0\x64\x39\x96\x57\x77\xb5\x53\xea\x11\xcd\x2b\x68\xc7\x9a\x36\xff\x82\x65\x92\xc6\xa3\x86\xbe\xc9\x29\x55\xa4\xb5\x73\x69\xde\x9f\x6a\xa1\x7a\xfb\xa0\x72\x85\x3d\x7c\x50\xea\xeb\xa2\x39\x9e\xfa\xc7\xa8\x94\x41\x2e\x71\xcc\xc8\x83\xf6\x65\x8e\x70\x4f\x9a\xa6\x11\x78\x7e\xd4\xb6\x85\xba\x80\x66\x42\xfc\xea\x47\x32\x89\x10\x9a\x5d\x5d\x75\xef\x69\x29\x4e\x7b\x5d\x3b\xd8\xa0\x0b\xab\x0c\xc4\x0c\x13\xee\xae\xdf\xec\xba\xdb\x7c\x1e\xab\x35\x74\x6e\x5a\xf8\x49\x10\x4c\x87\x54\x13\xde\xa9\x1e\x3e\xfd\xce\x9f\x84\x20\x4b\xbd\xa8\x6b\x71\xbe\xb2\x16\x21\x9c\x40\x89\xd4\x13\xc4\x1c\x6d\x62\xd7\x97\xef\xc7\x97\x6c\x12\x86\x9b\xf4\xf3\xb7\xf5\xf2\xcb\x62\xb3\x5a\xef\x1e\x16\xff\xb4\x09\xd6\xdd\x72\xf1\xec\xcf\x67\x72\x92\x90\x9e\x26\x46\x94\x6f\xe1\x5a\x0d\x4f\xa3\xc4\xaf\xb9\x43\x51\xde\x00\xcc\xf2\x73\x1a\x23\x33\x6c\xaf\xde\xdd\x5b\xb8\xc6\x1a\x17\xd0\x38\xcd\x44\xa3\x28\x36\xb9\xcb\x46\x75\xde\xe2\x27\x7a\x01\x34\x8a\x92\x1c\x31\x22\xab\xcd\xf2\xca\xf1\xb0\x1f\xfb\xa5\x33\x72\x15\x68\x14\xe5\xb6\x77\x7d\x5f\xbd\x3c\xd7\xd5\xa1\x40\xf5\x1a\x53\xd4\x87\x49\x20\x49\x23\x4a\x12\x5c\x38\x6f\x70\xfe\x22\x9a\xe7\x53\x7d\xac\x1a\x98\x05\xf7\xd2\x88\xe5\x3a\xb6\x78\x56\xcb\xdf\xe9\x5a\xf3\x69\x94\x10\x83\xb5\x25\x9b\x47\x7e\x16\x4d\xf3\x51\x0d\x44\x2a\x3e\xf5\xcb\x68\x94\x08\x8d\xdd\x3f\x2e\x3f\x7f\x5d\x34\xc8\xae\x34\x30\x40\x34\x4a\xa4\x92\x36\x9a\x75\x29\x7b\x37\xd1\xc7\xb7\x9c\x18\x02\xe9\xa0\xf2\xba\x6b\xa0\xdd\x1d\xeb\x42\xc1\xae\x8b\x6c\xaa\x53\xbb\x1b\xe0\x2b\x68\x94\xc6\x40\x8d\x27\xd4\x98\xba\x0e\x34\xca\x32\x4b\xd2\x6d\xcd\xb2\xa7\x4a\xea\x4b\xd5\x34\xca\xb8\xb2\xd1\x04\x06\x81\xcd\x30\xec\xa7\x51\x06\x59\x12\xb4\x9a\x36\xd0\xe2\x25\x17\x7f\xc1\x46\x18\xcc\x76\x0c\xb6\x25\x1a\xe5\x91\x42\x37\xe6\x28\x4e\x0d\x4c\xc8\x77\x69\x94\x33\x4b\x94\x85\x6b\xc3\xb6\x77\xff\x4a\x86\x92\x46\xb9\xd1\x69\xe4\xa9\xe4\xb1\x67\x7c\x03\xe5\x54\x06\x99\x46\x5c\x58\x55\xd8\xab\xe7\xdd\xf3\x6a\xbd\xb9\x5b\x3c\xfa\x5f\x14\x40\x65\xe2\x4b\x1b\x3f\xaa\xfa\xad\x99\xdd\x88\x69\xa4\x98\x45\x17\x6f\xc5\x79\x5f\x0d\x69\xdd\x68\xa4\x74\x8e\x65\xf5\x8d\x25\xcb\x9a\xcd\xb1\xbb\xa1\x3a\xb5\x95\x94\x81\x3a\xd5\xb7\xba\xb8\x84\x9e\x5c\xc0\x50\x68\xa4\x65\x8c\x05\xa0\x9d\x63\x59\xf0\xb6\x6c\x3e\xf5\x4b\x23\x0d\xb6\x23\xa2\x84\x9f\x43\x4e\x5f\xeb\x75\xbb\x31\x90\xc4\x88\xe9\x41\x37\xfe\x0a\xda\xc9\x63\x33\x89\xa5\x88\x73\x79\x6d\x47\x55\x37\x8a\x46\x29\x89\xb2\x0c\x8d\xaf\xa8\xad\x8a\xa4\x37\x6a\xdb\x6a\x28\x0b\xea\x06\x93\xd8\x52\x73\xae\xab\x3d\x78\x1b\x31\xd3\xcf\x41\x09\x31\xda\x66\xa8\xc4\xb1\x08\x65\xc2\xee\x63\xab\xe7\x53\xa8\x6a\x55\xea\x3e\xfd\x42\x09\xa5\x11\x82\xaf\x71\xe2\x93\xf0\xa9\x48\x11\x40\xbf\x33\x21\x06\xa1\x84\xc5\xb6\xfe\x09\x3f\x8f\xdb\x9f\xbf\x2c\x5a\x50\xc2\x12\x2b\xb5\x5a\x34\xd8\x21\x3d\xc7\xc5\x41\x09\x03\x6d\xc9\x25\x10\xc5\xe9\xd5\xae\x1f\x0a\x04\x46\x5a\xad\xa8\xcb\xe6\x56\x4a\x98\x21\x11\x77\x6e\xed\xe2\xd0\xae\xa1\xcf\x39\x8e\x66\x39\x89\xa3\xcc\x88\x21\x19\x4c\xb3\x74\x30\x5b\xed\xef\x29\x66\x14\xa1\x3a\xb7\xd0\xfe\x28\xca\x7e\xdb\xa6\x24\x96\xa0\x1c\xab\x77\xb7\x8e\x3c\xdb\xc6\x04\x68\x46\x49\x4a\x52\x0f\x48\xdd\x83\x6a\xed\xe6\xee\x4f\x92\xc6\x2c\x72\x84\x24\x2f\xf0\x03\xc4\xb1\x2a\x9f\x4f\x35\x5c\x8b\xc3\x2f\x18\xca\x26\x8f\x32\xe5\x1c\x83\x67\x0d\x2d\x56\x50\x06\xed\x79\x73\x83\xb5\x37\x59\x0f\x55\xd9\xb4\x50\xdf\xc3\xbb\xa3\x6e\x73\x74\x3c\x38\xc8\x68\x4c\x05\x6c\xbf\xad\x1f\x77\xd7\x8b\xed\x2a\x5c\xb0\x88\xd1\xd8\xea\x2e\x1c\xea\xa2\x11\xfb\x52\x3e\xab\x4b\x0e\x6c\x30\x49\x45\x8e\xc9\xb1\x23\xca\xa9\xa2\x73\x83\x85\xbc\x30\xd5\x52\x9d\x60\x77\x0b\x6a\x64\x20\x28\x7c\xf5\x13\xd4\x2f\x3b\x18\x28\xc9\xa2\xc4\x18\x4f\x43\xb0\xc3\x3d\xa0\xee\xcb\x69\x94\x64\xb9\x8c\x1c\xe7\x0c\x0d\x9f\x49\x2b\xa1\x6f\xe7\x55\xfd\xad\x0c\x70\x1d\x8a\x18\xfd\x78\x52\x72\x78\x0b\x89\x2c\x4a\x72\xc3\x31\xf2\x43\x2c\x41\x51\xb6\x9e\x9f\x81\x12\x6e\x48\xc4\x7a\xf5\x4e\xd4\x10\x85\xfa\x22\x49\x40\x89\xd0\x96\xd9\x31\xfc\x84\x9d\x59\xcb\x4f\x3c\x38\x4a\x64\x1e\x8b\x5e\xe0\xee\x11\x3e\xae\x17\x4f\x93\x73\x4a\x6e\xd9\x75\xbf\x9c\x8f\xfd\x82\x94\x3c\x45\x6f\xba\x5b\xff\xaf\xa2\x79\xf5\xb6\x7f\x62\x69\xa4\x06\xf4\xe1\xaf\x8a\x16\x89\x71\xfc\xe7\x8a\x71\xc4\x6b\x08\x0c\x28\xa7\xd0\xdc\x4f\x22\x9b\xc9\xa5\xab\xcc\x0a\x11\x35\x6d\x75\x1c\x1a\x77\xa2\x84\xd2\x66\xc0\x55\x73\xb1\x6e\x94\x34\xc6\x39\x35\x77\xe6\x7b\x35\xa8\x2d\xfe\x63\x32\x10\x24\xba\xf4\xa1\x61\xd3\x9a\x53\x4f\xfd\x30\xb9\x59\x65\x6c\xfc\xd6\x40\x6b\xdb\x00\x7c\x09\x79\xaa\x1c\x41\x89\xa6\x4a\x77\xf7\xbf\x2f\x0c\x3c\x57\x45\xe0\x6d\xa7\x44\x67\x3c\xe9\xc9\x50\x6f\x45\x83\x74\x55\x4f\xa6\xdb\x9a\xbb\x8d\x72\x72\x22\x20\x19\x16\x91\x76\x47\x71\xf6\x00\xf0\xe9\x10\xa3\x90\x55\x09\x4a\xfd\xfc\x1a\x94\x0f\x28\x31\x22\x06\x32\x40\x77\xed\xc4\xbe\x78\x87\xdd\xa9\x6c\x8b\xfd\xae\x7d\x2d\x9a\xdd\x80\xa0\x9a\xd2\x88\x28\x26\x03\xce\xf1\xfe\xdb\xe3\x6a\xbb\xf9\x65\xee\x85\xd2\x28\xc9\x04\x1f\xf4\x19\xce\xa2\xd2\x28\x8d\xa4\x15\xc6\xf2\x6c\x9a\x5b\xb1\xdf\x17\x83\x77\xf2\x59\x1a\x92\x52\x9a\x58\x79\xcc\x17\xe8\xb6\xc2\x16\xea\xc7\xd3\xe1\xc9\xfc\xf0\x4c\x99\xe3\x9f\xa1\x3c\xc2\x4c\xb2\x01\xb8\x2a\xbc\xb2\x17\xb6\xa9\x47\x71\x4f\xf8\xaf\x2d\x9d\xe5\xf8\xd5\x52\x46\x38\x3a\x01\x03\xca\x5c\x5b\x01\x01\x7d\x75\xb6\x7c\xba\x97\x8c\x6b\xfe\xbb\x31\x11\x43\xa8\xec\x75\x67\x15\xbb\x30\xf3\x79\xd2\x07\xd1\x0d\x95\x2c\x1b\x0c\x15\x7b\x1a\xae\x20\xe1\xae\x16\x69\x9b\xaa\x4f\xf3\x8a\x56\x93\xf3\x71\xbb\xc5\xc8\xd3\xf9\xaa\xaa\xf0\x15\x8c\xaf\x2d\x26\x04\x3b\xb5\xb1\x2d\xaf\x86\xeb\x40\xbf\x44\x69\xac\x98\x23\x82\x2d\xa3\x4d\x0b\xc7\xf0\xb9\xb1\x26\xe6\x58\x57\x3f\x8b\x39\x29\x21\x4a\x93\xd8\x72\xbf\x5f\x5f\xaf\x86\x0b\x93\x26\x9c\xa8\xdc\xf3\x9f\x55\x6f\x7f\xcc\x34\x97\x50\x9a\x6a\x62\x51\x85\xb6\xe0\x59\x68\x08\xd4\x2f\x94\xa6\xc6\x60\xb3\x0e\xf6\xa5\x0f\xbd\x0f\x9a\x31\x83\x8f\x6e\xe7\x48\xd2\x4f\x25\x3c\x1d\x03\xa5\x91\xb3\xed\x43\x4d\xa0\xa0\x3b\x82\xc5\x51\x9a\xf7\xff\x93\xc6\x93\x37\x98\x53\xad\x5c\x4c\xf5\xcd\x1e\x98\x3c\xc6\x5c\x19\x15\x2a\x90\x5f\x2a\xbd\xb7\x64\xe0\x37\x13\x05\x1a\x4a\xb9\xe0\x58\x3f\xec\x16\x56\xc8\x72\x6e\x6b\xd1\xc5\x0d\x56\xf1\xf4\x22\xc5\x32\xfe\x25\x41\x08\xb6\x30\x75\x41\x4e\xe9\x74\x1b\x07\xca\x62\x7e\x94\x8a\xf0\xbd\x7b\xc7\xd3\xa5\x13\x66\xb7\x39\x2a\x89\xb0\x76\x14\xb3\xc6\xdf\xad\x34\xbd\xa5\xd3\xf5\x23\x18\x45\xa8\xd0\x6b\xf1\xde\x05\x93\x03\x4d\xbd\xee\x98\xc2\x5a\x02\x86\x12\x8b\xfa\x70\x9e\x9b\x10\x92\x69\x70\x65\xc6\x6d\xd1\x9e\xf6\xa2\xa8\x61\xd7\x39\x44\x2d\xec\x48\x34\x79\x98\x32\x8d\xbd\x22\x8b\x07\xb0\x5c\x9d\x27\xb1\xc4\x64\xce\x48\x4e\x32\x87\x63\xbf\xeb\xdc\x9b\x6e\x37\xaa\xca\x49\x3a\x8b\x52\xa9\x95\xd5\xff\x76\xda\x92\x96\xac\xd5\x1d\x54\x8e\x16\x18\x51\x08\x56\xf9\x1e\x31\x59\xdb\xd7\xba\x2a\x61\x7d\xda\xc3\x85\xe3\xf3\x6b\xef\x89\xaa\x2c\x37\x79\x28\xc5\x95\xd0\x5e\x43\x2b\x8a\xfd\x27\xfe\x13\xd5\x4e\xf6\xca\x82\x33\xef\xca\x6f\xc1\x54\xd3\x6e\x17\xcd\xfd\xfc\x7a\xae\x2b\x33\x61\xcb\xa4\x14\x32\x89\x2c\x1e\xe1\xea\x3b\x4f\xa8\x79\x1d\xca\xb1\x77\xd3\x7b\xb8\x64\x58\x94\x98\x28\x0b\xa4\xb6\xa5\xcd\x5c\xf4\x9c\x5b\x7e\x14\xe4\x48\xa0\xf8\x20\x7e\x0e\xc8\x54\x28\xa3\x19\x77\xd9\x6b\x64\xd3\xb3\x8e\xc6\xdf\x6a\xe6\xa5\xc8\xae\x1c\x88\xf6\xf0\x2d\x84\x9a\x0c\x65\x2c\x4b\x3d\xad\x68\x2f\xba\xea\x89\xf6\x28\x63\x90\x20\x5b\x78\xf5\x73\x42\xb0\x46\x19\x33\x56\xc1\xcd\x47\xc5\x16\x4c\xe7\xbf\x98\xd2\x1c\xf1\xb1\xcb\xb3\x84\x7a\x2d\x8a\xfd\xa3\xaf\x41\x51\x96\xe6\x96\xf7\xf8\xaa\xd8\xef\x3b\x8f\x6c\xfe\xb2\x33\x11\xe3\x46\xb5\x0d\xdf\xcb\x64\xcc\xac\xab\x81\xaf\xc6\x53\xd1\x39\x48\xef\x64\x07\x62\x99\x54\xd9\x80\x90\x71\x53\xfc\x05\x4b\x7f\xa6\x5c\x69\x62\xbb\x0c\x35\xc0\xe1\x7b\x75\x52\xaf\x50\x4f\xba\x09\x7f\x85\x9a\xa4\x2c\x07\xc5\xbb\x07\xf3\xe5\xc7\xed\x10\xda\x4f\x19\x4f\x34\x06\xf0\xbd\xec\xd5\x2f\xb7\x6d\xc6\x41\xe4\x8e\x86\x6a\xa3\x5e\xe1\x20\x9a\xa1\x00\x2d\x65\x42\x33\xdf\x0b\x6d\x53\xb8\xd3\xfb\x94\xb9\xc1\xce\x2b\xdc\xed\x44\xb1\x3f\xbb\xc9\xe1\x0e\x6b\x65\x29\xc6\x77\x5e\xeb\xc2\x06\xd5\xeb\xbb\x3f\xe6\x3b\x3f\x28\xd3\x86\xa2\xbb\xb4\x5e\x3d\xae\xfe\xb9\xdb\xac\xb6\xdb\xfb\xd5\xc3\xea\x71\xbb\xf3\x4a\xcd\x94\x41\xc4\x8d\x6d\xcb\x29\xaa\x71\x06\x9f\x32\xc8\xe3\x7c\x08\x75\xec\x79\xd1\xc7\x3f\x03\x82\x20\x3c\x1a\x6e\xab\xbd\x56\xaf\xa2\x28\x37\xbd\x7e\x08\x65\x60\x98\x4f\x67\xfb\x84\xb8\xd3\x3d\xa8\xea\x99\x0c\x36\x65\x26\xb2\xe0\xd4\x71\x51\xcb\x11\x0e\x4f\x7e\xdb\x10\x69\x91\xbf\xd5\x15\x04\x6f\x90\x99\x38\xb6\x8d\xdf\xaa\xaa\xe1\xba\xfa\x98\xcc\xf8\x98\x24\x89\xf2\x70\x04\x84\x50\x62\x80\xd6\x97\x25\xbb\x11\x39\xe2\x09\xb6\xaf\x58\x82\x29\xfb\x03\x20\x74\xee\xd9\xb2\x8a\x72\x8d\x08\xdf\xa8\x73\x59\xed\x3f\xfd\x38\x1a\xc7\x98\x01\x6c\x7b\x7d\xbc\x09\xe7\x2d\x8d\x69\x62\x95\x60\x24\x8c\x28\x33\x69\x4c\x33\x2d\x13\x1f\xd2\x60\x41\xc4\xe5\x93\xc7\xb7\x41\xa5\xd5\xf7\x77\x0c\x80\x3f\xc4\x3b\x02\x0f\x4e\xde\x26\xc4\x0c\x14\xc6\xff\x47\x71\xbe\x86\x77\xff\x69\x1c\x25\x98\x2a\x40\x81\x81\xfb\xa2\xb1\xaa\xfd\xfe\x68\x22\x22\x44\xde\xcd\xf8\x6c\x0b\xd3\x42\xed\xf3\xce\xb3\x8b\x20\x4e\x84\xe0\x56\xdf\xc2\x12\xe6\xe1\x83\x65\xe1\xdc\xda\x36\xb5\xda\x94\x22\x52\x8e\x3f\x8b\xda\xe5\x6b\xfa\x1c\xd9\x2f\x17\x6c\x9c\x66\x56\x20\xed\x16\x5b\x3c\xf7\x3e\xbc\x70\xed\x46\x7e\x0e\xc4\xa9\xc8\xb1\xf0\xbb\x17\x4d\xfb\x88\x62\x85\xef\xf0\xbd\x6a\xfb\xc0\x31\x4e\xa5\x55\x46\xef\x03\x4b\x78\x87\xf2\xf4\x6b\x1e\x72\x1a\xa7\x3a\x46\x2c\x0b\xea\xf7\x6b\xed\xd7\x67\x9c\x91\x34\x12\x3e\x58\x6e\xab\x16\x9c\xc7\x3a\xa4\x07\xf5\xd9\x0c\xff\x9d\x3c\x4b\xa5\xe7\x6e\x5f\x3e\x6c\xb1\x8d\xa4\x69\x2f\xd5\x4a\x69\x9c\x2b\xdb\x28\x74\xbd\xd8\x7c\x59\x5c\xdd\xfd\x02\x70\x44\x63\x9e\x67\x3e\x50\x7b\x04\x2b\x26\x7f\xd9\x59\x4a\x63\xce\x2d\xd9\xf4\x0b\xb4\x6f\xc5\x7e\xef\xc8\xce\x2d\x20\xa5\x29\xaa\x32\x54\x3c\x69\xcc\x45\x42\xfb\x5c\xf0\x1f\x23\x7a\xcb\x8b\x1e\x0d\x1a\x0b\x95\x79\x3e\xd5\x35\xfc\xaf\x15\xc8\xb8\xa4\xc9\xa5\xb1\x8c\xec\xed\xd7\x2e\x0c\xf6\x19\xd9\x53\xd3\x56\xba\x10\x61\x31\xc9\x28\xc7\xa6\x11\x25\xf6\xfb\xa6\xad\x6a\xd0\x62\x14\x68\xc4\x32\xa5\xc2\xa6\xc6\x91\xc7\xa4\xf3\xf0\xc2\x84\x96\x59\x84\x06\x3e\xc4\x7a\x0b\x2c\x9e\x38\xd0\xcb\xf4\x8a\x32\x4b\x07\xdd\x19\xab\xf6\x75\x00\x03\xa4\xb9\x1f\xa1\x24\xb2\x82\x9d\x1a\x40\x5b\x37\x94\x17\xee\x8e\x9a\xc4\xdd\xf9\x80\x51\xff\xea\xf7\x8c\xfa\x34\x56\xb9\xc1\xa0\x7f\xd7\xf3\x18\x0e\x3d\xad\x58\x13\x82\xd5\xaa\x2b\xd1\xb6\xfb\xce\xcf\x42\x72\xd0\xdf\xb9\x0e\x9f\x4c\x62\xad\x95\x17\xbd\xfc\x5a\x34\xcd\xd5\xd6\xef\xa8\x31\x28\x45\xbc\x3a\xb5\x25\x10\xff\x6f\x7a\xc1\xfd\x49\x4c\x8c\xa9\xd2\xe7\xfb\xc5\xf6\xe6\x69\xfd\xb0\xbb\x5e\x7d\x5f\xdd\x3f\x3d\x77\xbb\x8f\xff\x21\x93\x0b\xd4\x2d\x70\xbc\xc4\x9b\xd7\xaa\xf6\xa8\xae\x66\x5b\x79\xba\x9c\xa2\x1a\x4b\x00\xda\x2f\x27\x51\x14\x21\xe0\x68\x7d\xb7\xf1\x99\xb0\x24\xe2\x11\x26\x9e\x7c\x18\xb8\x1c\x68\xe5\x4e\xbe\x4e\x08\x57\xce\x87\x7b\x68\x5e\xb0\x71\xfe\x17\xc9\xec\x84\x92\x88\x39\x52\xd1\xba\xb0\xc2\x19\x41\x5f\x84\x26\x34\x8d\x49\x1e\xf4\x99\x27\x6d\xcf\x6e\x0c\x23\x09\x4e\xc2\xe5\xe2\x71\xb9\xba\xdf\xad\xfe\xb9\x5d\x2f\x76\x81\x5b\x88\x26\x2c\xcd\x3d\x1e\xd4\x2b\xbf\xf9\xec\xe6\xcc\x32\xb3\xe9\xf2\xe9\x7e\x9f\xc4\x39\xe3\xcc\x11\x96\xd1\x88\x70\x0b\xc3\xb6\x0d\x96\xfe\x87\x92\xd8\x86\x52\xb6\xf0\x7b\x57\xbe\x43\xd9\x56\xf5\x58\xcd\x94\x26\x49\x16\x21\xd8\x6e\xb1\x2f\x14\xcc\x3d\xff\x24\x37\x68\x3b\xf0\x18\xbb\x0e\x67\xe7\x09\xbe\x96\x1f\x5d\x9c\xa5\xa0\x19\x3a\x54\x49\x1a\x27\x44\xf5\x64\x30\xbd\x43\x7f\xe1\xbf\x78\x43\x92\xa4\x2a\x13\xc9\x80\xbe\xad\x09\x71\xd4\xec\xb4\x4e\x32\x12\xa5\x34\xb0\x73\x7a\x87\x26\xbc\xa9\x2c\xb3\xf2\xa2\xa8\x37\x5d\xed\xa1\xd7\x87\x9b\x42\x5a\xc6\x6f\x2f\xd7\x99\xf4\x65\xa8\x5d\x3c\x76\xc0\x9a\x85\x52\x75\xd5\x34\xb8\xdd\x35\x76\x8b\x84\xa6\xad\xab\xf3\xae\x28\x6d\x4a\xd6\x1e\xba\x3a\x93\x28\x8a\xfc\xa5\xe4\x86\x62\x01\x68\x0b\x5b\x18\x3d\x25\x4e\x22\x14\xc9\xdc\xde\x2f\x5d\x68\xfb\xdf\x72\xb7\x4d\x9e\x09\xa7\xd4\xb2\xff\x35\x4d\xdb\x86\x5f\xc9\x55\xac\xc2\x34\x40\x86\x89\x7a\x50\xe1\xa5\x09\xe7\x0c\xab\xc0\x9d\x19\xd8\xbc\x8a\x1a\x43\xb9\x18\xe3\x23\x55\xb4\xe7\x70\x1e\x9d\x21\xe7\xab\xf5\xeb\xb0\x74\x3a\x8b\xfb\xa7\x89\x20\x14\x4f\xe8\xa8\x39\x5b\x67\x7f\x6d\xde\x68\x8c\xdd\xfd\x4c\x57\x60\x90\xbb\x4e\x04\x61\x32\xf6\x00\xef\xed\x47\x75\x35\x48\xba\x25\x22\x91\x18\x79\xbb\x0e\xca\x0b\x6a\x15\x9a\x48\x06\x98\xc5\x5b\x28\xa1\xe1\x50\x2c\x43\x12\x20\x91\xb1\x41\x24\x6a\x78\xec\x5e\x01\x90\x26\x2a\xca\xb0\x1e\x5d\x34\xc8\x53\xef\x72\x49\xee\x20\x52\x35\x58\x72\xb9\xed\x6b\xad\x2f\x2b\xeb\x34\xd1\x69\xc4\x54\xaf\x5c\x55\xcf\x99\xef\xbf\x63\xce\x3f\x7b\x40\xfe\x67\x54\x84\x95\x9c\x36\xd0\x79\x4e\xa2\xcc\xd9\xfd\x27\x01\x16\xc7\x56\xa9\xe8\xfe\x17\x40\x3c\x37\xd8\x44\xb9\x0c\x5c\xc3\x0b\xad\x07\x90\xb3\xbf\xbb\x13\x5d\xf4\x15\xfb\x53\x13\x9b\x78\x5d\x3e\xdf\x3e\xaf\xd6\xab\xdb\xf5\xdd\xe3\x0a\xeb\xf9\xcb\xc5\xfa\xf6\xc9\x3f\x6e\x93\x5b\xf0\x72\xe7\xc2\x3b\x32\x7d\x7f\xc4\x30\x24\x94\x7b\x78\xfc\xe7\x70\x61\xa5\x11\xe5\xd8\xeb\xba\xae\xd4\xdb\xb3\x38\x42\xbd\x51\x45\xd3\x54\xa1\x7e\x94\x46\xcc\xaa\xc2\x1e\x5f\x45\x03\x74\x85\x55\xe9\x90\xcd\x49\x89\xb6\x32\x60\x8f\xdf\x97\xdb\xd1\x79\x89\x91\x98\xd9\x73\x4f\x75\x29\xf6\xfb\x2e\x1c\xb0\x69\x01\xdf\x74\xe0\x44\xea\x68\x4a\x23\xc0\x6a\xc5\x6b\xb5\xd7\x4f\x66\x6c\x76\x53\x9a\x18\xa4\x1d\x39\x0e\x4b\xe2\x57\xfe\x87\x18\x81\x78\x58\xbd\xfe\x10\xb5\xa7\x53\x19\x4f\xb4\x94\x49\xab\xa5\x8a\xd9\xa5\xce\xb7\x0b\xa7\x90\x36\x23\x72\x38\x5b\xb7\x25\xdc\x3b\xd3\x54\xb8\x7a\xf4\x8f\x62\xaf\x2f\xd0\x98\x6e\x58\x2c\xf2\x2c\xf7\xda\xe8\xb6\xf8\x6d\xe7\xd6\xb6\x38\xc0\xb0\xcb\x9a\xa6\xb1\x32\xc8\x64\xda\xad\x4b\x87\xf9\x9e\x56\x14\xd2\x18\x22\xc4\x6d\xb8\xee\x79\xff\xd5\x24\x32\x58\x66\x5e\x63\x50\xff\xb7\xe8\xce\xc6\x73\x39\x4d\x48\x9e\x24\xe1\x51\x59\xad\x97\xf1\x4f\x27\x31\xf5\x9d\x7e\x9e\x57\xee\x1a\xca\x6a\xd4\xef\x44\xd3\x24\x8d\x30\x3f\xb4\x39\x88\x3a\xe4\x18\x77\xbe\x0f\x7f\x72\xc6\xcc\xd6\x84\xba\xf8\x5e\xd4\xfa\x19\xea\xb7\x2d\xfc\x9c\xf6\xbd\xb8\xc1\x29\xe4\xcc\xc6\xb8\xae\xe2\x36\xbb\x26\xd3\x2c\xb2\xac\x19\xeb\xd5\xff\xf8\x4b\xca\xd2\xcc\x43\xe9\x97\xd5\xe1\x80\x35\x3b\x4b\x6d\x37\x02\x2b\xa4\x39\x17\x58\x15\x07\xa5\x1b\x61\xe9\xaf\xfe\xbb\x44\x5c\xca\x05\xe0\x43\xec\xd6\xde\xe2\xfe\xfe\xe9\xc7\xea\x7a\x28\xef\x44\x53\x95\x0b\xd4\x61\x57\x55\x80\x4a\x86\x43\x12\x88\xeb\x3d\x0a\x8d\x68\xff\xa5\xa7\xfa\x7b\x40\x35\x4d\x95\x01\x01\x41\x2f\xc7\x06\xd1\xf1\xfa\x82\x4f\x9e\xa6\x5a\x30\x6e\x75\xb7\x5c\x8c\x71\x53\x57\x07\xb4\xd1\x4f\x35\x92\x5e\x7f\x85\xf3\xe4\x7d\x6a\xa9\xa9\x98\xb6\x8f\x5f\x17\x8d\x3c\xd5\x4d\x3f\x43\x00\xa2\xd4\xa7\x12\x7c\xb7\x30\xa2\x03\x6e\xaa\x7a\xfb\x0a\x5b\xf0\xd4\xb5\x34\x35\x5c\x21\x43\xaa\x14\xea\xad\x32\xa6\x50\x60\x27\xf8\xe4\x52\x8d\xc9\x51\x22\xac\x39\xc9\x2e\x2c\x9f\x05\x69\x64\x51\x64\x61\xc9\x42\xeb\xc7\xea\x06\x60\x92\xe8\xed\x05\x45\xbc\x2b\x95\x45\x32\x87\xc0\x57\x1b\xe2\x9f\xa2\x2a\xbd\x92\x9b\x1f\xa7\xa4\x70\xc5\x8f\xc5\x62\x19\x3e\x85\x0c\x6d\xe3\x41\x0c\x36\x78\x77\x8c\x44\x96\x5f\xcc\xef\x37\xe8\xa0\x35\xe1\x68\x22\x52\x97\x16\x5b\x1d\xe4\x1e\x0e\x03\x41\x0a\x9a\x91\xdc\x48\xf7\x02\x2d\x82\x7a\x2f\xc6\x69\xc4\xdc\x0f\xe4\x11\xe6\x4d\xf7\x45\xf9\x36\xef\x61\x64\x84\x6b\xec\x57\x95\xad\x1a\xa4\x72\x32\x22\x23\xdc\xb5\xf7\xe5\x1f\xc3\x40\x2e\xa3\x19\xd8\xde\xf6\xaa\x04\xa7\xb1\x17\x18\x0e\x68\x46\x73\x83\x0e\xfb\x55\x75\x7a\x79\x6d\x2f\x72\x89\xa3\x57\x96\x31\x9a\x27\x3d\x19\xb5\x1e\xdb\xd6\x8c\x39\x52\x2b\x5c\xa5\x81\x04\x72\x13\x4c\x65\x16\x13\x9b\xba\x75\xab\x74\x58\x6f\xc8\xff\x95\xfc\x7b\xf2\xea\xe3\xdc\x9a\x6a\x4c\x9d\xce\xb8\x19\x59\x2c\x29\x1b\x6a\x27\x0c\xea\x29\x7f\x8b\x96\x8f\x66\xb1\x11\x08\x17\x17\x07\x28\xf5\x1a\x5a\x28\xe7\x54\x2e\xdc\xe0\x24\x05\x34\x48\x1e\x40\xe6\x34\x12\x26\x83\xf2\x84\xf5\x7d\x58\x4f\x25\x5c\xd7\x45\xf9\x36\xaa\x45\x65\x69\x24\x31\x6b\xb0\x2b\x9a\xab\xd3\xb9\x4f\xd4\x64\x29\x4d\x11\xfd\x70\x3c\x35\xaf\xa3\x26\x9e\x4b\xd0\xae\xff\x06\xd7\x98\xb4\x76\x60\x16\xdb\xc4\x59\x0c\x6f\x62\x1a\x3c\x65\xa9\x60\x56\xf8\xda\xba\x75\x08\x16\xf0\x17\x90\x73\x21\x12\xaf\x4a\x50\xbc\x17\x7b\x78\x71\x20\xd6\xd1\x0d\xf0\x9c\x45\x4e\x18\xf8\xa1\xd8\x43\xd3\x56\x9f\x93\x6f\xf9\xaf\x28\xc2\x89\x7f\x99\x63\xad\x7f\x37\x42\xc4\x0c\x3b\x19\x2d\x57\xc2\x8f\xe2\x82\x26\xc7\x8f\x4b\x0d\xe6\xd6\xfe\xef\xf9\xf9\x79\xf1\xdb\x98\xc1\x7f\x49\x10\xc4\xf8\x6d\x40\x9d\xea\xb0\x62\xa4\xb1\xca\x22\x7d\x22\xe2\x7e\x5c\x29\xcb\x90\x92\x22\x20\xfc\xc4\xbe\x19\x0a\x63\xd0\x4c\x33\x40\x32\x0c\x79\xda\xbf\x6d\x06\x22\xe6\x97\x11\x5e\x66\x62\x82\x59\xf6\xa5\xed\xbd\xbe\x2b\x9f\xeb\xea\xa5\x1b\x3b\xca\xab\x64\x46\x19\x04\x1e\xbd\x1c\xda\xce\xba\x8e\xeb\xcc\x99\x31\x80\xaf\xfb\xe9\xfe\xee\x66\x54\x3b\xcd\x69\x9e\xa6\x2e\xd7\xa9\x5e\xb7\xc5\x84\x4a\x93\xe6\x54\xcb\x08\xc9\xaf\x3e\x2e\xfa\xd6\xdd\x08\x96\x28\xa4\x2d\x78\x8e\x9f\xfd\x49\x59\xce\x98\x2d\x39\x81\xaf\x45\xf6\x66\x3e\x67\xb9\xe5\x3c\xb5\xa1\xd5\xd5\x5e\x4c\xf8\x0b\x68\x1e\x47\x0c\xa3\x54\x94\x47\xb0\x80\xb3\x5f\xd7\x16\xf2\x38\xa6\x60\xbc\x43\xe7\x2a\x59\xfe\x50\xaa\x32\xeb\x49\x3c\xd7\xd5\xcf\xf3\xc4\x38\xe7\x89\xcc\x30\x4e\xda\x57\x21\x9d\x96\xa7\x5a\x1a\x1b\xdb\xb5\x50\x97\x62\xff\x08\x1f\xa3\x3d\x73\xf2\xe3\x19\x21\x88\x8d\x75\x15\xb6\xa6\x39\x81\xbe\x3a\x6f\xb6\xde\x17\xcf\xb3\x18\xe2\x61\xa9\x7e\xd6\xda\x5c\x06\x2d\xb3\x9f\xfa\x53\x72\xdb\x82\x80\xc9\x30\x77\x4b\xf8\x62\xc7\x7e\x46\x9e\xa7\x20\x55\xdf\xd7\xb0\xe9\x9c\xdd\x49\x5d\x25\xcf\x95\x75\x5a\x91\x72\xe4\xbe\x68\xda\x19\x7f\x30\xe7\x42\x3b\x35\xe5\xf3\x0d\x4c\xb2\x82\x39\x07\x89\xb8\x51\x79\x3a\x7b\x09\xaa\xbb\x16\x0e\xcd\x30\x62\xce\xb9\x21\x08\x2b\xdb\x79\x9d\xb2\x79\x9f\x2e\x17\xb1\x45\x6a\x37\xd0\x7e\x3d\xcb\x4b\x2a\xc4\xf1\x75\x09\xe0\x60\x5c\x92\xda\x6a\x8d\x60\x34\x3e\xa1\x7e\x98\xfc\x84\x4c\x98\x93\x04\x6d\x97\xe2\x70\x14\xc5\x4b\xf9\x3b\x16\xe6\x71\x85\x7f\x92\x0c\x1b\x9f\x1c\x32\xee\x72\x67\x9b\xd7\xc2\xd6\x40\xf7\xd8\x08\xfa\x1f\xff\x56\x14\x4d\x90\xdc\xd0\xa1\x71\x6a\x40\x62\xf1\x91\xb1\xcc\x15\x15\xd8\x89\x6f\x8a\x9f\xbb\xa3\xa8\x87\xe4\x33\x03\x0f\x2f\x57\x32\xc3\xcd\x33\x50\xb1\xcc\x95\x8c\x72\x25\xad\xce\x04\xbe\xd9\xbf\xa7\x52\x42\x73\x1d\x5b\xe9\xeb\xff\x9c\xa0\x3e\x2f\xf6\x7b\xef\x47\xfb\xbb\xd0\xb9\xad\x01\xed\x4a\x11\xdc\xa3\x5c\x2b\x8d\x9c\x72\xaf\x62\xdf\x7a\x60\xaa\x3f\x06\x31\x43\x87\xd9\x66\xc9\x97\xb3\x7d\xd5\x34\x87\x3c\x47\x72\x18\x83\x92\x20\xd7\x48\x71\x39\xb9\x1d\xc3\x2d\xa1\x61\x6f\x94\xfa\xcd\x28\x37\x82\x63\x3d\xcd\x1f\x44\x0a\xba\x01\x23\x2e\xcd\x8d\xd6\xd0\x97\x59\x46\xa9\x7f\x6f\x77\x79\x44\x9c\x42\xf3\x62\xbb\xda\x6d\x9e\x3c\xb7\x01\xe5\x51\xe7\xd1\x86\x3c\x8d\x25\xbf\x73\x9a\xa0\xf3\x13\x9a\x13\x23\x72\x57\x90\x79\x28\x4a\xa8\x27\x82\xc2\x94\xd3\x28\xc7\xe9\xf0\x20\x2c\x6b\x96\xa7\xca\xa2\x9c\x26\x24\xd1\x9e\x6e\xff\xa1\x28\xdb\xc7\xd3\xa1\x09\x07\x25\x47\x1a\x43\x24\x64\x10\xa7\xda\x12\x82\xf6\x9d\x7b\x94\x53\x48\x11\xf1\xb9\x6b\xa0\xd4\x78\x9f\x8e\x2a\x68\xfe\x42\x63\x25\x11\xb2\xe1\xb8\xc0\xe7\xfa\x49\x29\x8f\x4d\x84\x49\x54\xdc\x91\xfb\x86\x3e\xca\x13\x66\xb0\x30\x26\x9a\x06\xda\xab\xf3\xb8\xa9\x6f\xfc\x43\x49\xcc\xd0\x87\xbe\xa9\xf6\x45\xf5\x58\x94\xff\x2b\x66\x69\x69\xe7\x8d\x3d\x4f\xf3\x84\x89\xa1\x00\xb8\xd3\x94\x99\x82\x39\xfa\x55\xc2\xb3\x88\xd0\xc8\xd3\x9e\xb6\x2d\x16\xc5\x8a\x03\x54\x27\xab\xb8\x37\x4e\x33\xf0\x2c\xe2\x46\x06\x7a\xa2\x89\x2e\xfc\xe4\x62\x32\x66\x7c\x62\xba\x33\xb0\xa8\x98\x30\x3f\x32\x67\x16\xa3\x7a\x5f\x09\x0d\xda\xc9\xd1\xcf\x0f\xe5\x5a\xd8\xc2\xe7\x5e\xbc\x01\x95\x17\x22\xaf\x1e\xf7\xca\x65\x62\xc1\xb1\x87\xa2\x6c\xd7\x70\x3c\xb5\x63\x39\xd2\x49\xd6\xd6\x7d\x49\xe5\x0a\x7d\x05\xe7\x8d\xe3\x13\x78\x2a\xad\x56\x5f\x63\xb1\x7c\xb3\x2e\x14\x57\xc2\xa0\x0b\xf8\x7f\x8b\xfd\xbe\xf8\x8f\xf8\xbc\x5f\x9c\x72\x25\x7b\x38\xbe\x45\xed\x5e\x89\x06\x7d\xc2\x66\x84\xdc\xe5\x3a\x8e\xb1\xcb\x65\x77\x59\x45\x1f\xff\xb8\x4e\x6c\x72\x50\x68\x6d\x45\x63\x67\x5d\x82\x7c\x72\x1d\x9a\x13\x5f\xc3\x7b\x14\xb5\xaa\xbe\x54\x07\x08\xce\xda\x64\xa8\xcc\x6c\x7d\xc9\x33\xbb\x7a\xeb\x35\x7f\x87\x5a\x67\x88\xab\x09\xb3\x10\x93\xbb\x93\xed\x89\x03\xcd\xb0\x95\x09\x79\xd3\x76\xf2\x74\xde\x55\xb5\x4f\x25\x93\x0b\xae\x8f\x99\x4c\x22\x07\x46\x90\x86\xd5\x76\xeb\xdc\x2d\x9f\xd8\x90\xc0\x9f\x72\x48\xad\x58\xba\x6d\xf7\xec\x25\xc0\x29\x07\xa9\xb1\x28\x79\xb4\x3d\x9c\x4f\xc6\x40\x77\xde\x51\xa2\x97\x9b\x24\x26\xae\x0d\xf7\x79\x12\x02\x8c\xdf\xbe\x88\xb8\xb4\x9d\x3d\xd6\x6c\x5a\x3e\x7b\xf1\x19\xee\x48\x90\x8c\x27\x7c\x94\x65\xf5\x0d\x7a\xdf\xc5\x90\x10\x61\xf2\x2d\xb0\xfd\xfa\x37\xa7\x2b\x1f\x6a\x0a\x6a\x00\x77\xc2\xcd\x76\x7d\xe7\x3f\x63\x54\x61\xb6\x1c\xdb\xb9\x76\x62\x88\x0e\x10\x2c\xe7\xf8\xc4\x8e\x4e\x31\xee\xd7\x3e\xbe\x60\x92\x60\x24\xbb\x59\x0c\x3d\x63\x91\xa4\x1c\x5b\x87\xb1\x23\x62\x9c\x42\x15\x69\x4a\xb9\x0a\x5d\x30\x36\x43\x75\x2b\x0e\x97\xe2\x7b\x7e\xbc\x32\x98\x8d\xf0\x0e\xa5\x55\xc1\xfb\xff\xc9\xeb\x7c\xd6\x63\xec\x7e\x28\x23\x39\x28\x97\xc6\xe9\xec\xcb\x50\x20\x9d\x8a\x2c\x61\xb6\xf5\x11\xf3\xeb\x57\x03\xe5\x5f\xef\xfc\x58\x30\x63\x6f\x38\x45\x96\xc6\x3a\xa0\x79\x31\x4f\x75\x57\x5e\x3d\x5e\x85\x33\x72\xc0\x8e\x9f\xb6\xf8\xe9\xf0\x27\xde\x5a\xfa\x01\x9a\x61\x0a\xec\xe1\xee\x71\x77\xf3\xed\xf1\xfa\xee\xf1\x76\x37\x94\xa3\xa1\x22\x03\xe1\x7d\xb1\x0d\xec\xcd\xa2\x5b\x77\x80\x3e\xdc\xab\x5d\xe6\xc3\xd5\x20\xf2\x94\xe7\x48\x16\xff\xb4\x5e\x7c\xf5\xa7\xe0\xd2\x2a\x1e\xbc\x40\x6b\x11\x0c\x17\x08\x49\x21\x68\x2c\x53\x9f\x15\x2c\xdb\xba\xda\xdf\x95\xa6\x7a\x10\x3f\x9f\xa1\x46\x03\x78\x77\x90\x76\xbb\xbb\xef\xbb\x90\x84\x4c\x25\x1a\xbc\x26\x30\xd4\xe4\xfe\x48\x96\x0f\x65\xc4\x1f\xc5\x84\x97\x94\x0a\x15\x19\x2b\xa1\xe8\x3a\x61\x67\x73\x32\x42\x11\x4b\x50\xd8\x85\x3a\xae\x5b\x64\xd6\xcf\x15\x8a\x6a\x7c\x90\xaf\x80\x79\xf1\xc9\x41\xa9\x22\xed\xa8\x03\x77\x07\x68\xc5\x7e\x77\x28\xca\xf1\xaa\x50\x4a\x60\x53\xb6\x47\xb2\x7e\x96\x7a\x15\x0a\x22\x04\x13\xec\x4a\xf8\x70\x80\x10\xbb\xf3\x8c\x46\x41\x62\x90\x62\x06\x6c\x15\xdf\xd2\x5d\x38\x15\xa8\x5e\xb1\x9b\x0a\xc8\xc1\x4b\xdc\xdf\x42\x09\xcd\x88\x4b\x82\x0a\x90\x3c\x32\x21\x18\x7c\xae\x3e\xa0\x3e\x35\xd3\x8c\x8d\x00\x88\x22\xaf\x60\x28\xca\x45\xdb\x0a\xf5\xe6\xb6\x95\xbb\xe0\xd6\x09\x23\x72\x65\x93\x1a\xab\xf5\x32\xa3\x24\x7c\x0e\x00\x7d\xf6\xe9\xaa\x12\xf5\x05\x87\xca\xaf\xf3\x3d\x32\x8a\xac\x30\xfb\xf3\x7a\xf5\x70\xf7\xed\x61\xb7\xfd\xf3\x79\xb5\x5b\x0e\x66\xb1\x8c\x28\xc5\x5e\x4e\x57\x99\xe8\x59\xde\x9a\x71\x40\x26\x23\x9d\x78\x00\xc4\x75\xd1\x58\xde\x79\x9f\x17\x90\x24\x92\x08\x8a\x5c\x14\xf5\x75\x5d\x1d\x3f\xeb\x8b\xf6\xa3\x93\x94\x43\xc0\xf6\xd9\xe4\x08\xe8\xc5\xcf\xe2\x33\x3b\x24\x99\xb1\x7a\xda\xce\x82\x77\x31\x2d\x62\x9b\xc6\x5d\xf2\x54\xc6\x34\x52\x36\x1b\x8c\x9b\xc6\x06\x91\x07\xd3\x31\x22\xf6\x3b\xfc\xff\x11\xea\xed\x58\xb5\x17\x71\xa1\x4c\xa2\x0c\x4b\x66\xd7\x4f\x3f\x76\x37\xc1\x78\xcb\x44\x51\x04\x3c\x2e\x9a\x42\xbb\xbc\xf1\x17\xf1\x0e\x57\x00\xa5\x03\x1d\x5f\x66\xc3\xfd\x57\x35\x07\x0b\xe9\xb2\xdc\x6c\x3d\x06\x47\x66\x4c\x81\xf0\x1c\x3a\x9d\x45\x9e\x06\x8e\xe3\x33\x65\xb1\xc9\x82\xf7\x5c\xdd\x74\x8b\xa5\xf1\x3d\xd4\x7e\x48\x22\x71\xc8\xee\x74\x6c\xa0\x9e\xa7\x58\xef\xf1\xdd\x83\x53\x67\x96\x35\xec\x58\xed\xf7\x0f\xe2\x38\xf6\x2e\x65\x96\x27\x94\x0f\x4c\x91\x50\xed\xe3\x44\x8c\x94\xca\x4c\xf3\xc4\x6a\x21\x80\x3a\xb5\xe0\xe5\xfd\xd4\x6f\x5a\x96\x64\x1e\x31\x24\x1a\xc6\x34\xc3\xfc\x64\xce\x39\x41\x18\x25\x92\x93\x5c\xec\xf9\xa7\x11\x9e\xdd\x7f\x45\xe6\x98\x22\xd6\x95\xef\xa9\x19\x1f\xe7\x8c\xa1\x0f\xb2\x72\xdb\xdb\x60\x1f\x95\x3c\xa5\x98\x4c\x71\xc4\x3f\x85\x90\xc5\xbe\x68\xcf\x43\x9f\xd6\x8f\xd4\x02\x03\x88\x27\xcc\xfd\xcf\xd0\xe3\xf4\x3f\x28\x62\xbb\xc5\xdf\x6d\x76\x9b\xbb\xdb\xc7\xc5\xf6\xdb\x7a\xb5\x1e\x1b\x0d\x29\x92\x04\xa1\xfb\xe5\xc9\xca\x46\xd9\x78\xb3\x8f\x5f\xa5\xc8\xa3\xcc\xc9\x5d\xc8\x42\x87\x4f\x9d\x1c\xb8\xa5\xf5\x5a\x56\x96\x86\x73\x0a\x84\x92\x32\xb5\x1c\x15\x6d\x71\x40\xb9\x6d\xdf\x51\x21\xa5\x16\x94\x4f\xe4\x4d\xa7\x8c\x9a\x43\x4b\x2a\xa5\x49\x3d\xb5\x12\xc6\x4c\x77\x17\xdb\xb2\x1b\xa8\x99\xd6\x1c\x75\x46\x7c\xa6\x4d\x82\xa2\x88\xa2\xc4\x0d\x6a\x59\x0b\xd3\x99\xeb\xcf\x44\x97\xe7\xa7\x83\xc9\x32\xee\x7e\xfe\x6b\x51\xbe\xe8\xea\xd0\xed\x8c\xf5\xc1\x45\x92\xa3\x4b\x35\x9a\x7a\x39\x9a\x17\x71\x80\x6e\xbb\xf9\xaf\xbd\x98\xd1\xaf\xab\x88\xa9\xc8\x66\x95\xdb\x6a\x37\xcd\x8f\xf9\x31\x10\x31\x07\x5a\xf9\x15\x0a\x49\x91\x1c\x70\x97\x10\x47\xef\x3a\x2a\x92\xdb\x4d\x18\x90\xc8\xb5\x54\x67\x5f\x0f\x76\xc7\x19\x03\x2b\x03\x84\xe9\x65\xdc\xb8\x7e\x40\x31\x6f\x6f\x15\xcb\x52\x4a\xfa\x5c\x5a\x17\x46\xec\x47\x39\xb7\xc9\x70\x41\xd0\x17\xb3\xc6\x16\xa1\x6a\x17\x9c\x9d\xfd\x83\x88\x09\xd1\x36\xac\xae\x1a\xb0\x64\xd5\x93\x01\x5c\x66\xee\x3d\x75\xa1\x2b\x32\xb8\xae\xa6\x75\x3c\x95\x10\x65\xf5\x22\x8b\xf6\xf5\x35\xd0\xf4\x50\x95\x28\x96\xe6\x23\x8a\x6e\x9c\x32\x8f\x95\x25\x0f\xc6\x34\x4c\x18\x6a\xf1\xa3\xa8\xc5\x56\x1c\x60\x80\xe1\x54\x19\x73\xc1\x7f\xdf\xb5\x3c\xaf\x14\xd6\x0d\x25\x38\x5b\xb7\x50\x1f\x9a\x27\xd3\xb7\x1d\xa8\x3c\xcb\x8c\x13\xc3\xb8\x46\x06\xb7\x0b\xf2\xd5\x6e\x8c\xc4\x36\xd3\x87\xab\x4f\xd9\x75\xe6\x5f\x12\x67\x29\x82\xdc\x9c\x18\x11\x26\x1a\x6d\xc3\xa8\x1f\x10\x03\x36\xd5\x2c\xe3\x9b\xa1\x9d\x52\x82\x58\xd4\x6f\x17\xca\x7d\x2b\x55\x55\x1a\xa8\x01\x95\xd0\xfc\x00\x4a\x88\xdd\xe2\xeb\xa2\xd2\xa3\x62\xb2\x12\x9a\x62\x66\xeb\x4a\x94\x6f\xbf\xcc\x17\x28\xa1\x53\xa4\xec\xc2\xc0\x65\xe9\x91\xb5\x93\xbb\x17\x00\x08\xd7\x14\xd5\xe1\xa4\xfa\x74\x50\x17\x7f\x23\x38\x42\xec\xf7\x8b\xa6\x81\xb6\x99\x7a\x82\x4a\x2a\x10\xce\xcf\xdd\x6c\x9e\x27\x07\x55\x16\xd9\x3b\xe8\x82\xd1\x87\xea\x1d\x86\x2e\xad\x52\x99\x6d\xda\x12\x4a\x9d\x9c\xa6\xf7\x5d\x79\xf4\x0c\xa6\x54\x29\xd0\xdc\x23\x4a\xca\xf2\x24\xf6\x53\x86\x2f\x37\x4e\xf3\x14\xcd\xaa\xcf\x59\xf5\x85\xaa\xee\x90\xd4\x21\xef\xf9\x3f\xa7\xaa\x9e\xb6\x15\x2a\x6d\x92\xdc\xa1\xe1\xbf\xfe\xb9\x3c\x8a\xa6\x99\x02\x09\x14\xe4\x1c\xe1\x0f\xfb\xea\xa5\xfa\xb6\xf6\xd5\x76\x65\xb2\x0c\x3b\xee\xae\xd0\x43\x84\xc3\xf1\x37\x40\x69\x65\x20\xc1\x46\xf1\x63\xd5\x34\x83\xa7\xac\x23\x0d\x9a\x0c\x1a\x3d\x71\x0e\x8d\x04\xd2\xa9\x8e\x20\x42\x1e\x01\x3d\xff\xb2\xff\x71\xea\x25\xed\xa9\x26\x11\x49\x3d\x56\xcc\x42\x46\x7f\x5b\x6f\x9c\x9d\xdc\x9a\x44\x12\x13\x97\xdb\xdb\xd5\x0c\x85\x9c\x1f\x94\x30\xac\x7f\xde\xd6\xa2\xd4\xbb\x4d\xb5\x17\xf5\xee\xc1\x72\xd5\xfb\xab\xa7\x29\x58\x15\xdd\x7d\x75\xd2\xc3\x5b\x67\x32\xc7\x1e\x0a\xcb\xcd\x7a\xc1\xad\xfb\x69\xf5\x5c\xc7\x34\xca\x3c\xae\x77\xc2\xea\x33\xae\x45\xe9\x38\xe6\xb8\x54\x96\x28\x78\x29\x02\x49\x1e\xd5\xb1\xd4\x99\xeb\xd0\x5a\xd6\x55\x63\xfb\x0d\x2e\xdc\x04\x9d\x88\xc4\xfa\x2f\x1f\x25\xd4\xdf\x6d\x63\x52\x7f\x92\x8c\x32\x62\xc6\xa0\xf5\x8f\xc1\x36\xe5\x47\x71\x82\x09\xb6\xa3\x38\x5b\x5b\x3b\x03\xb1\x9c\x0f\xb5\xdd\x09\xf2\x44\xa1\x57\x53\x57\x55\xdb\x3c\x0c\xb5\x05\x26\xaf\x2c\x57\x12\x5d\x27\x9b\xbe\x19\x10\x59\x53\x9d\x1b\x1d\x39\x2c\x75\xbb\x87\x61\xdb\xf5\xfc\x84\xd5\x9c\x1a\xea\x1e\x72\x68\x06\x58\x95\x6d\x7d\x9e\xdc\x1d\x67\xb6\x36\x0f\xed\xeb\xa0\xd0\xaf\x79\x66\x4d\xcf\x07\xc8\x63\xef\xe5\x6a\x9e\x69\x6e\xf9\xa1\xf6\x7a\xec\x00\x6b\x2e\x73\x95\x86\x96\x9c\x63\x0b\x3b\x1a\x8f\x3c\x02\x8d\xf9\xbb\xce\x68\x74\x0f\x79\x5b\xb4\xa2\x2c\x4e\x97\xb7\x31\x7e\x24\x82\x5a\x70\xf1\x6b\xd5\x4c\x27\x87\xa4\x1c\x13\xc3\x36\xb9\x8c\xd2\x9b\xfd\xc6\xa1\x55\x64\x85\xc4\x85\x9e\x0a\x1a\x4e\xd8\x56\xc6\xbf\xa7\x34\x67\xc1\x20\xd9\xec\xd7\xc2\xb2\xc4\x8d\x1f\x9b\xce\x2d\xa0\x45\x9c\xda\xd7\xaa\x2e\xfe\x02\xed\x52\x5d\x4b\x51\x6b\xab\x32\x31\xa5\x76\x9d\xfc\x92\xe6\x26\x1b\xe6\xbc\x46\x99\x2e\x3f\xc6\x10\x84\xe4\xb8\xf6\xcc\x9b\xaa\x9e\xf2\xf5\x50\x0d\xa9\xf2\x59\x4b\x84\xc9\x61\x87\xdc\xd5\xf9\x2b\x9c\x67\x57\x3c\xa4\x76\x4b\xd3\x17\xa8\xfd\x79\xaf\x4b\x03\xe7\xd8\xb9\xd4\xb4\x15\x2a\x85\x55\xca\x3f\x62\x43\x13\xc4\xbd\x7e\x40\xb1\xad\xbe\x6d\xae\x27\x8f\xc8\x70\x4a\xa9\xa3\x36\x7d\x87\x7a\xd3\x56\xea\xad\xbb\x2a\xab\x79\x4b\xc3\x28\xa5\x42\xda\xa4\x7b\xd0\x5d\xc4\xff\x58\x5d\xf5\x0a\x62\x14\x22\xc2\xd0\x3d\x58\x61\x80\xd3\xb9\xab\xbf\xe0\x33\x9c\x73\xf7\x20\x22\xd2\x13\x43\xdc\x57\xea\x2d\x44\x32\xa3\x47\x09\x51\xca\xb2\x81\x0e\x7a\x28\x95\xb6\xa3\x79\x0c\x24\xca\x33\xee\x3b\x32\x14\x14\xc7\x76\x5d\x4d\xc4\x12\x29\x10\x4d\xd1\x59\xed\x76\x5e\xfc\xf2\xdc\xdb\x00\x2a\xac\xd6\xfb\xee\x58\x57\x3f\xcf\xbe\xb3\xc5\xa2\xf4\x3e\x4d\xed\x0d\x1d\x7d\x60\x69\x8c\xc8\x9b\x0a\x3b\x8d\x1b\x47\x81\x1a\xbc\x56\x88\xb3\x18\x05\x17\x9f\xd7\x4f\x0f\x4f\xdb\xa7\xf5\x66\xf7\xfc\xf4\xe4\xf7\x41\xc8\x98\xc6\x72\x6e\xdf\x18\x8e\x5b\x54\x55\x8f\xc4\x77\xc6\x33\x02\xb2\x5c\x60\xc4\x8f\xd0\xec\x93\x6b\x48\x19\x55\xca\x21\x8f\x62\x1e\x7b\x63\xe0\x7b\x60\x2e\x5d\x37\xc8\x89\xa3\x64\x2c\x0b\xc7\x15\x3b\x79\x25\x39\x8b\xb8\x97\x8b\xd9\x1d\x86\x64\x3d\x2b\x5f\x21\x05\x1e\x69\xc7\xc2\xe0\xa6\x50\x20\x95\xa4\xc0\x89\xcc\x1d\xda\xa4\xc7\x53\x02\xa7\x2c\x95\x8e\xe9\x75\xd5\xbe\xda\xa6\xd2\x91\xe9\x9e\xdc\x32\xe7\xb6\x8c\xe4\x29\xad\x2e\xac\x56\x9f\x06\x05\x91\x19\x74\xbe\x97\x35\xe8\xa2\xbd\x5e\x3c\x0d\x8b\x37\x6e\x8c\x4c\x63\x54\x4f\x5c\x7d\x7f\xb8\xf6\x09\x52\x50\x32\x0e\x0f\x63\xa4\xc5\xee\x07\x74\x9b\xae\xf3\x77\x7e\x54\x75\x33\xca\x32\x82\x16\x11\x66\x01\x10\xda\x72\x55\x55\xfb\x3f\xac\xbe\x90\x3b\x0c\x20\x10\x30\xf7\x2c\xda\xba\x50\x6f\x5b\x24\x6b\x0a\x9b\x39\x98\xc8\x4a\xf0\x6b\x28\xcf\x96\x67\x7d\x7e\x8f\x02\xc3\x64\xa4\xfd\xc6\xdb\x2d\x13\x4c\xbf\xa2\x87\x61\x21\xf6\xc3\x0e\x5d\x30\x19\x43\xca\x00\xf5\x2a\xf6\x7b\x28\x5f\xfa\x03\x00\xd8\xd4\xd2\x59\xb6\x2e\xa0\x70\xe1\x81\x3d\x6a\x22\x26\x2d\xe3\xb8\x8b\x8b\x7f\x14\xed\xeb\x80\x7b\xd9\x8f\x92\xc0\xc3\x3a\x34\x17\x38\x45\x43\x0c\x41\xcb\x75\xb7\x7c\x1a\x6f\x1d\x86\x98\xcc\x2b\x1b\x7e\xaf\x5a\xdf\x18\x12\xe0\x6c\x86\x66\xca\x33\x4a\x2d\x61\x0f\xb2\x2e\xda\xf3\xa8\xf4\x3b\x9e\x1e\x86\xe6\x56\x88\x7e\x46\x43\xfe\xc2\xf0\x1b\xaa\x13\x44\x78\x2c\xef\x9f\xbb\xb7\xf0\x38\x52\x2c\xa2\x86\x51\xcd\xdd\xc6\xbd\x53\x3d\x90\xd7\xb0\xd8\x2a\x5e\xb6\xc5\x01\x7e\x14\xa5\xf6\xdc\x7c\xd4\x30\xc9\xad\xcc\xad\x68\xbb\xa9\xbf\x2a\x35\xf4\xdf\x02\x11\x3b\xf8\x91\xaf\x51\xcd\x08\x5d\x50\x13\x47\x96\x9a\xf0\x05\xda\x9b\x53\xd9\xad\xe9\xc7\xbe\x50\x6f\x62\x91\xa0\xf7\xf1\x31\x02\xe3\x99\x34\xb1\xa2\x2a\x0d\xb4\x0f\x95\x7a\xf3\x8c\x73\xb8\x80\xe2\xb1\x9d\x32\xa9\x49\x91\x5a\xe7\x60\xf9\x8d\x26\x06\xc3\x64\xd4\x8a\x5e\x79\x3d\xcf\xf0\xb9\x4a\xb4\x74\xd2\xf0\xd8\xba\x3e\x99\x03\x99\x61\xd8\x76\xdf\xd9\x07\x2f\x25\xf5\x58\xa8\x37\x8b\x6c\xe8\x2b\xfd\x26\x8f\x14\xc6\x33\x42\xeb\xeb\xe2\xbd\xe8\xec\xd1\xff\x39\xd5\x45\xa3\x0b\x9b\x00\xe9\x9d\xba\xe1\xb2\x31\x39\x8d\xb0\xeb\xf3\x3f\xa7\x42\xbd\x6d\xaa\xba\xbd\x2a\x42\x12\xd9\xe4\x5a\x63\x01\xea\xe9\xa3\x9c\x06\x1e\x46\x10\x83\x1d\xcc\x68\xd8\x7b\x06\xc1\xf1\x43\x11\xa9\xe5\xda\xb3\xf9\xa3\x5b\xd1\xcc\xb4\x16\x1a\xc1\x2d\x73\x5f\x10\x52\x1d\x88\x9d\xdc\x7c\x5b\x6f\xbf\xac\xd6\xbb\xed\x6a\xf9\x65\xa6\x2f\xcc\x08\x29\x30\xaf\xf0\xfd\x6e\x84\xb3\x37\xc2\x50\xa4\x05\xf3\x76\xff\xea\x34\x30\xbd\x43\x91\x91\xec\xdf\x63\x68\xd1\xbf\xe8\xbf\xc3\x29\xac\xfc\x5e\x13\x1a\x6e\x67\x77\x0b\x23\x19\x55\x34\x24\xf5\xa3\x27\xf9\xbf\x21\xb3\xe1\x0b\xbb\x46\xe6\x99\x63\x91\x52\x55\xad\x51\xbd\x71\xa8\xad\x40\x8d\x94\x0a\xbb\x73\x17\xd7\xdf\xef\x36\xdd\x26\xe6\x9e\xc1\xf3\x6a\xbd\x1c\xdc\xae\xd4\x91\x25\x06\xf9\xa4\x9a\xe7\x86\x99\x44\xc7\x8e\xf9\xff\xc7\x6a\xfb\x45\x7a\x19\xf3\x8b\xd0\xc5\x8f\xcf\x8d\x76\x7a\x54\x16\xb7\xb5\xe9\xb3\x25\xc6\x28\x61\x29\x93\x9c\xa2\x71\xe7\x38\xae\x7e\xaa\x81\xb5\x31\x3a\x41\xeb\x10\xa4\x72\x97\x58\x53\x9b\x35\xb0\x2c\x8a\xe2\x0c\x17\x95\xd3\xc4\x46\x7f\x68\x55\xea\x5e\xf7\x8b\x45\x51\x6a\x71\x33\x68\x6a\x6f\x1c\x54\xd4\xd5\x29\x72\x3f\x26\x8b\x91\x7f\xe3\x78\xf2\x4c\xe4\x3d\xa5\x39\x8b\x22\x61\x9b\xf0\x2a\xd7\x78\xb0\x43\xdc\xce\x1f\xc3\xde\x20\x77\xf7\xdd\x58\x9e\x5a\xc9\x16\x44\x36\x16\x8e\xc0\xf6\x8f\xf1\x65\x93\x8c\x60\xb6\x47\x68\xfd\xed\x33\x7a\x39\x16\x11\x95\x27\x01\x7b\xe7\xf3\xf7\xa1\x2d\xfd\x7e\xd0\xb0\xfc\x0b\xdd\x32\x16\xd1\x8c\xa2\x38\x62\x53\xbc\x94\x0b\xcc\xd5\xfd\x31\xfe\x1d\x2a\x4c\x6c\x25\xd0\x5d\x35\x76\x6c\x6f\x58\x44\x65\x84\x51\xed\xa9\xbc\x41\xe8\xd0\xe4\xfb\x4c\x66\xd8\xf4\xbe\xac\x4e\xc7\x19\x8a\x9b\xc9\x60\x60\x36\x31\xd8\xed\xbc\x0f\x85\x2e\x1e\xab\x16\xec\x36\xd8\x6f\xd0\x2c\x4a\x22\xc2\x13\x2f\x0a\x3e\x92\x20\x9e\x9c\x2f\x61\x9c\xbb\x26\x98\x6d\x75\xd9\xc9\x7d\xba\x54\xd2\x60\x51\x92\x64\xa8\xc3\x77\xbb\x19\x13\x36\xf8\xc3\x69\x86\xcc\x22\xd7\xa2\x1e\x68\x97\xce\xde\x4d\x92\xe5\xbe\x16\xef\xea\xce\x79\x67\x10\xfc\xfa\x8f\x47\x02\x44\xfe\x65\xa5\xfe\xcd\x24\x9c\x62\x14\xb8\x6b\xeb\xe2\xf0\x09\x3e\xb8\x1b\xa5\xb8\xd5\x89\xfb\x19\x5e\xfe\xb2\x3a\x1c\x44\xa9\xfd\x0b\x4a\x44\x9c\x68\xc7\x89\x04\x8d\x6f\xe4\x0c\xef\x2f\xa5\xd2\x87\xb7\x77\xa5\x2e\x14\x34\x28\xe7\xe9\x61\x62\xe1\xac\x68\xd8\x2e\x56\xf6\x6c\xcc\xcc\xa2\x34\xb5\x8e\xbd\xb7\x8a\xdf\xa1\x69\x2f\x58\x9c\x58\x94\x72\x2b\xed\x3d\x6a\x09\x3d\x5d\x42\xe4\xa6\x5b\x3f\x8b\x32\x4e\x11\xbc\x65\x89\x65\x9b\x07\x71\x7c\xae\xc6\x7b\x42\x37\x26\x45\xee\x19\xc4\xb6\x5c\x08\xf5\xcc\x5f\x78\xa6\x74\x82\xf5\x5a\x19\xcf\x09\x72\xb0\x28\xcf\x0c\xc6\x19\xe8\x22\x3f\x1d\xa1\x7c\x3e\xf6\x7d\x0a\x2c\xca\x73\x89\xe8\x3c\x1f\x8b\x76\xcf\xd2\x31\x63\x2e\x4a\xed\xba\x3c\xa6\x90\xa9\x59\xe0\xd0\xe0\x84\xe8\x03\x43\x23\x8a\x7a\xd8\x94\xc9\xa2\x9c\x5b\x2d\x14\x0b\x88\x20\xe1\x63\x25\x81\x0e\x1e\xfe\x43\x55\xc2\xf9\xea\x6c\xdd\xed\xf9\xc7\xc9\x69\xa4\x86\xf4\x61\x68\x7b\x6d\x7d\x19\xc2\x44\xe2\x79\x6e\x85\xca\xe1\x20\x91\x55\xde\x1f\x10\x84\xa0\xea\xe3\xd8\x69\x1b\xe7\xa9\xc3\x50\x46\x03\x87\x84\xe7\x08\xc3\x6d\x0a\x99\xa1\x06\x21\x1d\x8b\x44\x42\x10\x49\x23\xa1\x7d\x2a\x97\xd5\xfe\x74\x28\x9f\xea\xeb\xea\x2f\x28\xff\xe8\x6b\x80\x21\x5c\x60\x9d\x75\xc5\x5c\xf2\x1a\x5b\x27\x2f\xf5\x7f\x87\x98\x4b\xf7\x15\x99\xb0\x3c\xed\xf1\xb5\xd3\xba\xf4\xf8\x21\x49\x69\x01\x8c\x16\xf2\x5e\xd5\x6f\x45\xf9\x72\x57\x9a\x5a\xcc\x6e\x8e\x2c\x92\x60\x8c\x55\x75\x7a\xad\xf6\xfa\xb6\xdb\xe9\xe6\x27\x9d\x34\x8c\x3a\x34\xdb\x56\x34\x6f\x36\x77\xf6\x2c\x0a\x3d\x99\xd0\x4a\x68\x74\xd1\x50\x50\xb0\x3a\x95\xfa\xfa\x34\x94\xa6\x66\x11\xd0\x28\x1a\xf0\xb7\x56\xe5\xb7\x7a\xac\x74\x9b\xff\x8b\xd0\xfc\xdf\x61\x74\x8a\x8e\x55\xd3\xcb\x50\x42\xfd\xad\x2c\x82\x69\x00\x6e\x59\x27\xf5\xa0\x2f\x67\x18\x5e\xb0\xc8\xf0\x38\x71\xd1\xdc\x23\x7c\xcc\xb5\xfd\xb1\xc8\x08\x8e\x60\x2c\x73\xda\x9b\x62\xbf\xbf\x86\x7d\xf1\x0e\x35\xd6\x3e\xc6\xb7\xd7\x39\x1d\xda\x69\x18\x6d\x4e\xd2\xee\x32\xf3\x8f\xd6\xa8\x1c\x29\x07\x31\xb8\x5e\x68\x3d\xa9\x93\x33\x12\x45\xb6\xb3\xe3\xcf\xa7\xfb\xa7\xe5\x62\xf3\xe5\x0f\xff\x39\x17\x18\x2d\xe9\x5a\x14\x7d\x63\x0d\x23\x91\x54\x8c\xf6\xe4\xd7\x83\xf2\xa1\x1b\x40\x88\x46\x72\xa0\x9d\x4b\x7c\x80\x9e\xf8\x6a\xa3\x9b\x26\x24\x49\xd0\xaa\xee\xe4\xb1\x55\xff\x15\x4d\x01\x23\xc4\x49\xf3\xa2\xb6\xba\x9a\xc9\x76\x30\x42\xb8\xc6\x4c\xea\xa1\x28\x2d\x7b\x64\x55\x8f\x71\xc2\x8c\x10\x19\x23\x83\x32\xbc\x43\x7d\xbe\x2a\x74\xbf\x5e\x09\xcd\x63\x0c\xda\x4f\x65\xf1\x9f\x13\x0c\x54\x55\xc2\x97\x99\xa1\xd8\xed\xda\x7a\xad\xb5\x5e\x7e\xdf\x8d\x88\x23\x81\x48\x14\xd7\x3a\x73\xb4\x62\x8c\x8b\x52\x5f\x7f\x06\xb5\xef\x5f\x4e\x9c\x0a\x9c\x11\xb8\xc9\xec\xb6\xeb\xc5\x72\xc7\x53\xdf\x84\xce\x48\x0a\x56\x2d\xdf\x52\x70\xdf\xd6\xa2\x6c\x61\x5c\xe6\x63\x24\x67\x79\x3a\xa2\xdf\x74\x08\xf8\x02\x6a\x6c\x76\xbf\x3a\xd5\xf3\x20\x49\x46\x78\x42\x72\xa7\x71\x5f\x3e\x56\x1f\x61\x63\x08\x87\x55\x6e\x67\x42\x17\x08\x0f\xf8\x66\x86\x3c\x33\x53\xd0\x05\x23\x5c\x58\x10\x09\x36\xe3\x58\xb3\xe6\x3d\xa5\x2a\x00\x0f\x07\xf5\x09\x46\x44\xee\x60\x4e\x5d\x68\x5c\xb6\x17\x24\x02\x7e\x98\x89\xf1\x72\x6d\x52\x74\x44\x59\x3c\x01\x11\x31\x22\x19\xf3\x80\x5b\x84\xc5\xda\xfe\x31\x53\x4d\x1e\x9e\x22\x09\x82\x3a\xbd\xdb\x88\x52\x11\x56\x3f\x46\x5f\xe2\x78\x19\x51\x06\x74\xda\xa7\x53\x1e\xaa\xb2\x7d\xf5\x58\x9b\xc9\xd5\xea\x4c\x62\x7c\xfb\x50\x55\xe5\x52\xb4\x6b\x68\xd4\x29\xcc\x19\x30\x2a\xeb\x95\xc3\xbf\x40\x5d\x0d\xf7\xd8\xf0\x7c\xc6\x8f\xc9\x44\x06\x57\xf2\x5a\x1c\xa0\xec\x13\x2d\x8c\x18\x6d\x8c\x63\xae\xfa\x22\x0e\x87\xa9\xdd\x21\x06\x00\x6d\x84\x9d\x9b\xe5\x0b\xbc\x07\x86\x00\x46\x8c\x21\xac\xd7\x42\x1b\xcb\x9d\xcf\xe0\x05\x18\x8d\x84\xc2\xcd\xc5\xb3\xd8\xb9\xfc\x1e\xe8\x18\xeb\x10\x45\x39\xaf\xf9\xc6\x28\x31\xe0\x81\x27\x43\x3a\x25\x46\x69\x64\x19\x64\x4b\xf8\xc0\x60\xf5\xda\x51\xe5\x0e\x93\x7b\x93\x73\xd1\x34\xc6\xdd\xf3\xfa\xf4\x20\xca\x97\x6a\xf0\x34\x68\x4c\x38\xb1\xca\x4d\x1a\x7e\x36\xad\x28\x75\xc8\x78\x30\x9a\x10\x21\xa8\x47\xc5\xed\x8f\xdd\xf7\xe6\xf0\x6e\x8c\x26\x99\x8d\x66\x16\x2f\x75\xb1\x7c\x15\x45\xb9\xec\x96\xd5\xfb\x70\x93\xa1\x49\x2e\xb9\x4d\x5a\xbe\x5f\x57\x75\xd5\xbe\x9e\x87\xd7\x91\x28\x0a\x56\xc2\xe1\x1d\xea\x76\x8a\xe6\x75\x83\x52\x92\x20\x1f\x93\xae\x8b\x63\x5f\x2b\x61\x34\x65\xd4\xe8\x40\xe0\x5f\x54\xe5\xed\xe0\x60\x96\x50\xe6\xd2\xf3\xe8\x9e\x3c\x3a\x84\x09\x42\xcb\xbc\xe5\xa2\x5c\x01\xc6\xb7\xda\x13\x73\xee\xd4\x59\x5d\x0a\x6e\xb8\xd1\x22\xb3\xec\x65\x76\x71\xdd\x8b\xcb\x6e\xa3\xf9\x48\x85\x0a\xae\x34\x0f\x55\xa4\xd9\x76\x58\x46\x85\xa4\x88\xf2\x7d\xaf\x5a\xb8\xa9\x3e\x53\xb8\xef\xc6\x89\x98\x7a\xdb\x81\x78\xce\xcf\x74\x54\x19\x95\x69\x84\x8a\x92\xcd\xe9\xe0\x24\x0c\x3d\xc3\xbb\x8f\xe9\xa8\xcc\x13\x34\x45\x3b\x0b\xa2\x1d\xe3\x52\xdc\x18\xc5\x63\x66\x09\x57\x90\x04\x7f\x19\xb2\x8a\xe3\x3b\x50\x32\x32\x30\x50\x7d\xfd\x23\x7c\x6e\xc9\xd0\x16\x4d\x98\xce\x40\xe3\x44\x0e\x00\x56\x76\x47\x09\x64\xbb\x4b\x71\x9c\x5c\x02\x50\xae\x5d\xca\xc6\x81\x30\x2f\xac\x2a\x85\x38\xc7\x7d\xae\xdb\x5b\xba\x75\x3c\x99\x47\x60\x88\x6d\xc9\x7f\xad\x74\x55\xce\x04\xd3\x2c\xe2\x22\xb3\x68\xec\x4a\x9f\x54\xbb\xad\x0b\x39\xde\xd8\x19\x61\x39\x3a\x39\x68\x7b\x85\x31\x7b\x70\xdd\xd4\x93\x9e\x3b\xc6\x88\x00\xc9\x82\x80\xea\x4d\x21\xda\xc1\xee\xd0\x0c\x08\xfb\x19\x23\x32\xb5\x60\xff\xea\xd0\x6d\x17\x9d\x3b\x71\x73\xfa\xeb\xaf\xf3\x17\xd1\xbc\xae\xb6\xe3\x0b\xa0\x84\x63\x2f\x5c\xeb\xfb\x59\xdc\xe7\x4c\x67\xa8\xaa\xa8\x2d\x6f\x8b\x6d\xb0\x9a\x9f\xc7\x8c\x81\xb2\xa4\x61\x56\xda\x11\xea\xf7\x42\x81\xd7\xb4\x1b\xdf\x45\xac\xad\x86\x16\xfc\x3c\x16\x35\xdc\x87\x06\x3c\xc6\x52\xa6\x31\xb1\x5d\xa8\x2a\x28\x33\x0e\x99\xd2\x18\x4b\x63\xcb\x51\xfe\xbc\x5e\x6d\x16\xf7\xa8\x93\xba\xde\x86\x83\x49\x8a\x6b\xe9\x58\x17\x07\x51\x9f\x9f\x8e\x50\xf7\x25\x62\xc6\x52\xa1\x72\xb7\x37\x3d\x43\xdd\x54\xe5\x10\x96\xe3\xc6\x64\x29\x49\xc1\x51\xc7\x39\x41\x10\x6f\xb1\x59\x26\xad\x64\xd6\xe1\x6c\xf9\xcf\x9b\x70\x40\x59\x4e\x7a\xa1\xf5\x73\x5d\xfd\x2f\xa8\xff\x4a\xd4\x93\xb1\x0c\x32\x0c\x33\x70\x02\xe0\x1c\xa2\xfe\xd4\x39\x15\x58\x35\x0f\xdd\x06\x03\x63\xc5\x38\x4d\xac\xc8\xdd\x51\x7c\x94\x77\x6d\xdf\x31\x3f\xef\xd6\x31\x21\xb5\x2d\x88\xee\x68\xa9\x77\x88\x4c\x5a\x85\x28\x9d\xc9\x8c\x6b\x57\x65\xbd\x12\xfb\x7d\xd5\x2e\x4a\x8d\x19\xf5\xc7\xea\x79\xdc\x29\xc3\x98\x8a\x44\xac\xbd\x68\xc2\x12\xf6\xfb\xf0\x2c\x54\x1c\x3b\x58\x59\x23\x0e\xed\xed\xa9\x7d\x15\x32\xc4\x8b\x4c\x89\x88\xda\x57\x6f\x11\x83\x7f\x53\x22\x9a\x31\x65\x38\x46\x32\xe8\x64\x6d\x8a\x97\x87\xe2\x62\x5a\x69\x22\x84\x6b\x79\xfc\x01\xf0\xb6\x3f\x87\xc4\xc1\x0f\x90\xdd\x46\xd9\x8c\x76\x3f\xa6\x13\x83\x7a\xb4\xcb\xfb\xa7\xcd\x6a\xb7\xbd\x7b\x58\x85\x23\x69\xc6\xe8\xb8\x70\xdc\xfd\xde\xc4\x4f\x63\x3a\xb5\x50\x68\x17\x4f\x5c\x0a\x8b\x4f\x72\x33\xb3\x7f\xc6\xf7\x00\x44\xc4\x96\x47\xa4\x5c\x3f\xde\xce\x22\x29\xba\x95\x66\x00\x7c\x8c\xd5\x9c\x42\xe8\x1f\x47\x91\x20\x81\x96\x7e\xdd\x6d\x5f\x37\x55\x3d\xa0\x15\x60\x71\x14\x5b\xc2\xa6\xc3\xe0\xf1\x8d\x58\x84\xfc\x1b\x8e\x23\x21\x63\x4b\x64\xa3\x3d\xca\x1b\x57\xe2\x5d\x39\x4f\xfa\xe9\xbf\xa6\x2d\x5c\xbd\xb3\xc1\xcb\x2f\x8e\x6c\x95\x85\x9f\x87\x3c\x20\xc0\x06\x11\x9d\xc3\xd8\xfc\x42\x48\xc0\x7d\x9f\xd0\x1c\x53\x5f\x8b\x7b\x1f\x4e\xc5\x24\x37\x08\xc8\x57\xe2\xf8\x64\x2e\x08\x8d\x58\x4c\xb8\xc4\x70\x0b\xc5\x51\x9a\xfe\x53\x8d\xf0\x05\xbc\x97\x45\x31\x62\x44\xfb\x9b\xb8\xb3\x59\x90\x03\x8b\x09\x44\x98\x7e\xf9\x3f\xd5\xf9\x56\x1c\xe0\x1a\x0e\xd5\x7c\x80\x16\x53\x9a\xf9\x82\x81\xef\xed\x1e\x1b\xa3\x98\xaa\x04\x2b\x6e\x57\xd5\xe9\x8f\xc9\x77\x21\xc6\xa2\x56\x7d\x2a\xef\xca\xa7\x12\xae\x45\xb8\x61\x96\x49\x04\x14\x3e\xd7\x55\x65\x9e\xcc\x06\x31\x7e\xd8\x8c\xda\x8f\x30\x68\x26\x45\xd3\x40\xdd\xde\x0c\x63\xdc\xc1\x92\x8b\xe3\x34\xb7\x74\x49\xd5\x09\x75\xd1\xca\xf6\x59\x9c\x02\xc2\x9f\xc5\x31\x44\x48\x31\x8b\x84\xf9\xc3\x66\x1f\x3f\x20\x21\x96\x47\xd2\xb5\x5b\x56\x1f\xd3\xc8\x22\x4e\x52\x42\x2d\x9f\x82\x15\xcf\x9c\x64\x76\xe3\x94\x52\xcc\x5f\xbe\x56\x5d\x64\x7f\xfe\x05\xee\x90\xc5\xa9\x01\x99\xf7\xfe\x34\xd4\xed\xd5\x84\x10\x9d\xc5\x19\x89\x30\xa8\xfc\x2a\xea\x83\x18\x5d\x6b\xa6\xa8\xed\xe5\x76\x37\x32\xa8\x63\x0e\x27\xba\xab\x72\xb0\x38\xd3\xe0\xba\xaf\x5c\xad\xfb\x16\xb9\xcf\xf6\x4b\xed\xaa\x21\x0e\x50\xed\x86\xe7\x44\xa2\xe4\x96\x3c\x9d\x6d\xe3\xe1\xfc\xfc\xce\x63\x45\xfa\x9e\xaf\xcd\xb7\xe7\xe7\xfb\x3f\x77\x0f\x8b\xbb\x47\xdc\xeb\x06\xed\x5f\x2c\xce\x65\x1c\x8d\x48\x3a\x6d\xb9\xc9\x1f\x05\xe0\x96\x81\xa6\xae\x41\xb5\x4e\x8b\x76\x10\xd4\xc4\xdc\xe4\xb8\xe7\x3f\x54\xb2\xd8\xc3\x6d\x35\x7a\x1a\x82\xe6\x1e\xa1\xf4\x5c\xbb\x22\xe3\x7c\xbf\x17\x8b\x45\x4c\x50\x8d\xb3\x41\xb9\x10\xa7\x41\xd1\x0c\xe3\xcd\xfc\x1f\x83\x47\xf2\xeb\x3f\xfe\x9c\x4a\x63\xfc\x6d\x6c\xf9\xb2\xec\xb6\x89\xe9\xe2\x90\xc4\xc2\xbc\x0f\x45\x79\x73\x72\x1a\x58\x03\x0d\xfe\x6e\x80\x00\x13\xba\x39\xbf\x95\x4d\xb5\xd7\x1b\x61\xe0\x5e\xd4\x2f\xe1\x41\x49\x1a\xa3\xb3\x7e\x75\xaa\xeb\xa2\xad\x7c\xb4\x70\xa1\xe0\x30\xb9\x69\x99\x2a\x5c\x64\x57\x57\xd7\xbf\x14\xbe\x9f\x7e\x2d\x83\x3e\xf7\x38\xa0\xac\xf0\x8e\x73\x2c\x65\x86\x50\xb8\x55\xa9\x9b\x45\x08\x88\x27\x27\x81\x44\x06\xe5\x4d\xdb\xa8\xe3\xf8\xf6\x27\xb3\x5d\x29\x32\x58\x7f\xd7\xe2\xa2\x17\x69\x14\x5f\xc6\x3a\x07\x2c\x2f\x63\x1d\x09\xee\xda\xff\x19\x96\x91\x26\xa9\xf0\xf1\x15\x69\x4d\x4c\xe4\xd2\x66\x3f\x2e\xf8\x22\x26\x83\x21\x96\x3e\x43\x60\x29\xb2\xbe\x14\x0d\x32\x2d\x4e\x86\xe9\x88\xbb\x6c\xc6\xa6\x2a\xf6\x5b\x38\x1c\x57\x3f\x15\x1c\x87\x05\x5e\x3b\x34\x89\xd2\x14\x91\xfb\x75\x53\xbf\x6f\xab\xcd\x94\x0c\x99\x25\x84\x98\xdc\x45\x37\x98\xb4\xbc\x82\x76\x4c\xc6\x32\x7f\x5f\x09\x49\x65\xe6\x2c\x74\xe7\x08\x5d\xb6\xe1\xb3\x84\x26\xc2\xeb\x71\x3f\x40\x2b\xb4\x68\xc5\x7c\x28\x96\xd0\xd4\x52\x55\x60\x95\xa3\x3b\xcd\x43\x08\x59\x13\x9a\x6b\x3e\xe8\x54\x82\x76\x81\xd4\x89\x1e\x51\x6c\x51\x56\xce\x3a\xcf\xfc\x9d\xbf\x7a\x2a\x72\x44\x9f\x62\x7d\xee\xc9\x6c\x3f\x8a\x16\xfb\xa6\x26\x0f\x87\x25\x71\xe2\x38\x1c\x66\xa1\x54\x2c\x61\x82\x60\x37\xb9\x29\xca\xa2\x79\x9d\x7c\x3d\x89\x35\xf6\x43\x3c\x16\xb0\x79\x2d\xd4\xab\x18\x59\x92\x24\xe1\x11\x56\x8c\x9b\xce\x5f\x1e\xf0\x79\xf8\xc3\x86\x30\xde\x57\x86\x10\x93\xd9\x05\x04\x93\xc5\x9e\xa4\x09\xc7\xac\xc0\x9f\x8b\xc7\x5b\x7f\xea\x6e\x7b\x8a\x9c\x05\xbc\x1e\xf1\x66\x4e\xbe\x2b\x28\x26\x99\x85\xd6\x9b\xd5\x7a\xf1\xfc\xe5\xee\x61\x72\x15\xa9\xb0\xb5\x22\xdb\x8c\xe6\xbc\x2d\xdf\xc9\x3e\x3e\x59\x26\x04\x42\x0f\x6a\x51\x34\x40\x4b\xbd\x38\x1e\xc1\x8b\x53\xb1\x24\x33\xb6\x7f\xca\x72\xd2\x3c\x17\x3f\x61\x7f\x0f\xa6\x9d\x9e\xc3\x18\x8c\x61\x9a\x0f\x80\x23\x4e\x48\x4f\x76\x36\x98\x58\x5c\x46\x08\x11\xf9\x27\x94\xc5\x68\xab\x4a\xb8\x04\xec\x4e\xea\x51\x7f\x2b\xe7\x4d\x4f\x7e\x87\x9b\x9c\xf6\x8d\x08\xab\x2e\xda\x9a\xac\xb2\x44\x68\xc1\x1c\xe3\xca\x40\x21\x6c\xde\x61\x49\x24\xd7\xb9\x95\x0d\xd2\xb0\x98\x6c\xad\x89\x54\x26\x77\x62\x1c\xcb\xd5\x36\x76\x19\x81\xcf\x6d\xfd\x38\xd7\x36\x93\x93\x48\x54\xc6\xd0\x16\xb6\xaf\xb0\x84\xe2\x53\x1e\x7d\x96\x28\x2e\xa2\xa1\xcc\x89\xe3\x81\x99\x35\x3f\x89\x32\x9c\xb8\xe6\x1f\xa7\x91\xf7\x89\x2b\x9b\xe8\x88\x11\xcb\x01\xb4\xdf\x43\x3d\x4d\x4e\x8e\xef\x5e\xf3\x08\x89\x29\x1e\x9e\xbf\x8e\xde\x15\x50\xae\xb3\xa9\xbf\x3d\xf4\x0c\x12\x88\x73\x34\x5e\xcf\xf7\x57\xe3\x6f\xa6\x76\x7b\xbb\x7b\x7a\xbc\x5b\xa0\x3f\x30\x38\x62\x73\xe7\x8d\x6d\x32\xda\x8a\x1e\x11\xee\x86\x98\x58\x20\x9a\x0a\x7f\xf6\x57\x1b\x59\x62\xa4\xb4\x94\x07\x08\xd4\xf9\xa5\x39\x4c\xa3\x58\x62\xfc\x7b\x86\x66\xe2\xa8\xa5\x24\xce\x7d\x77\x23\x16\xf9\x50\x7d\xbf\xad\xea\xd5\xf6\x4b\x18\xe2\x18\xa4\x1f\xe6\x20\x07\x29\x11\x96\xe3\xaa\x81\x12\xb5\x89\x7f\x15\x64\xa4\x34\xd5\x91\x4b\x68\x9e\xbb\xc8\x44\x07\xef\x37\x65\x04\xa2\x28\xe4\xce\x6d\x3f\x87\x55\x82\xf4\x03\x32\x45\x5d\x8a\x61\x24\x50\xe1\x0e\x27\x91\x41\x2f\xd2\x29\x9d\xd4\xcd\xf4\xb8\x88\xb0\x6f\xf7\x80\x94\x1d\xe3\xc0\x2c\x4d\x8d\x25\x2f\x14\xfb\xfd\xa6\xd0\xd0\x3c\xef\x41\xbf\x84\x32\x4d\x18\x24\x85\xf4\xdb\xb7\xcf\x30\xfc\x37\x24\x34\xee\x3c\x59\x64\x35\xd3\xaf\x8a\x16\x79\x06\xf7\xc2\x69\xc0\xf8\x1f\xca\x08\xc1\x56\x05\xef\xd3\x6c\x4e\x88\x05\x34\xa7\x4f\x76\xe6\x34\x13\x16\xe0\xf7\xf8\x7d\xdb\xf7\xfe\xb0\x94\x27\x24\x25\xa1\x18\x32\x95\xca\x61\x29\x17\x19\x66\x91\x97\xcb\xd6\xab\x68\x4f\x5e\xae\x20\x06\xdb\x5a\x16\xf7\x5f\x17\xcb\xa7\x3b\x3f\x93\x53\xd1\xad\x5d\x7c\x14\x75\xf1\xff\x38\xfb\xb2\xee\x46\x71\xf4\xef\xaf\xd3\x17\x73\x01\x48\x02\x74\xe9\x38\x4e\x95\xa7\x93\x38\x13\xbb\x96\xfe\xcf\x99\xe3\xa3\xe5\x91\xc3\xc4\x06\x0f\x4b\x52\x9e\x4f\xff\x1e\x1e\x49\x6c\x26\xe9\x9e\xf7\xa6\xab\x4f\x90\x31\x06\x21\x3d\xcb\x6f\x79\x85\xb2\xba\x11\x15\x4c\x67\x96\x48\x2d\x68\xeb\xe9\xa5\x80\x3c\xfb\xd5\xfd\x19\x22\x7c\x09\x54\x71\x3a\xd9\x6a\x05\xc6\xbf\x7d\x3f\x2d\x16\x46\xe0\xc6\xf4\x22\xaa\xa9\x86\x21\x89\x25\x8f\xd1\x44\x49\x59\x4e\xf8\x11\xca\x3b\x91\x1d\xfb\x59\x22\x39\xd8\xe6\xce\xa0\x33\xf5\x84\xfc\x9f\x6a\x75\x14\xe7\x6a\x30\x12\xb4\x27\x87\xb5\xf9\x5e\xbf\x79\x4c\xf6\xd9\x58\x1a\xdb\x30\xf4\xe2\xc7\x7d\xa0\xb4\x7c\x69\x72\x5f\x73\x8b\x35\xb7\x50\x2c\xb7\x23\xee\x95\x38\x1e\xa5\x70\x19\x43\xea\x07\x49\xe5\x05\xd5\x7e\x64\x39\xf8\x52\xd7\x87\x68\xea\xe1\x34\x0a\xc7\x1d\x9b\x18\x02\x83\x5b\xf0\x6a\xfd\xe4\x25\x82\xfc\x11\x2e\x50\x09\x41\x62\xf8\x3c\x48\xfd\x62\xe0\x32\xb2\x7d\xee\xbc\x16\xc7\xc5\xa1\x04\xac\x03\x77\x87\x4d\x84\x4c\x72\xeb\xf2\xfd\x24\x8e\x8f\x50\xbf\x17\xe5\xeb\xb5\xf9\xf4\x47\x15\x93\xff\xcf\x7f\xdd\xf7\x9b\x00\x90\x25\x0a\xae\x31\xe9\x34\xd4\xfc\xe5\x19\xa6\xec\xfe\x5b\xa3\xc1\xe1\xb8\x1e\x33\x78\xc3\x4c\xcc\xc1\x2b\x34\xd6\x2f\xeb\x1c\x7b\x64\xee\x24\x49\x10\x1a\x24\x82\xec\x0a\xe7\xb3\xd0\x1d\x48\x42\xec\xb6\xec\x6d\x34\x81\x45\xd3\xbb\xb2\x38\xdd\x8b\x6a\xd2\xdd\x99\xbd\xf8\x24\x48\x69\xea\x74\x11\xd6\xb9\x29\x16\xb2\x3d\xc9\x79\x82\x49\x27\x49\xc8\xa9\x61\x83\x5e\x84\xf7\x88\xb1\x8b\x0d\x46\x1d\x7e\xa4\x66\x2c\xf4\xaa\x6a\xf8\xcd\xbb\x62\x29\xce\xe7\x4e\x71\x00\x26\x51\x59\x12\x81\xb5\x9e\xce\xaa\x65\x79\xd1\xe5\xf7\x0c\xde\x67\x9b\x35\x09\x89\x62\x6c\x1b\xdc\x89\xaa\x7e\x06\x71\xcc\xaa\x3a\x53\x4f\x97\x52\x9c\x3c\xaf\x96\x24\x84\x05\x89\xec\xa4\xc7\x8b\xf7\x76\x3b\x1d\x04\x3a\x09\x89\x03\xfc\x32\x30\xef\xfe\x23\x94\x0b\x6f\x25\x50\xee\xd5\x78\x41\x48\x98\xe4\xf8\xc2\xa1\x9e\xca\xb7\x6a\x68\x96\xf9\xcf\xb4\x07\x34\x79\x14\x53\x92\x30\x82\xd6\xf1\x2f\xa2\xda\x97\x80\xdc\x0b\x7f\xaa\x44\x2a\x44\xb6\x1c\xb1\x9b\x8e\x20\x15\x1f\x6b\xfb\x11\x1a\xf4\x00\x10\xf8\x98\x29\xf8\xd2\xf8\x89\x94\xa4\x86\x62\x21\xe5\x71\xb3\x79\xf6\x7f\xe3\xdc\x86\x80\x95\xd5\x3d\xb0\x6f\xe5\x16\x44\xe5\x80\xf5\xb8\xd8\x4c\x9e\x25\x97\x10\x75\xd2\x4a\x5d\xb1\x2e\x11\x5c\x4a\xbb\x97\xb5\x2f\xac\xea\xea\x8f\xdd\x1c\x14\xc6\x0c\x6c\x7b\x9d\xf8\x7e\x33\x84\x78\xba\x81\x92\x50\xab\xb0\xda\x6e\x12\xa8\x59\x33\x57\x98\x4f\x64\x2a\xb8\x23\xb7\x1d\x8b\xb9\xd4\x2f\x9d\x23\xda\x90\x44\x69\x47\xf9\x14\x47\xc8\x2d\x14\x7d\x3a\xc7\xe7\x69\x3b\xe3\xdb\xa0\x13\x86\x00\x87\xea\x7c\x7d\x02\x37\xc4\x38\x61\x2b\x07\xf3\xdc\x98\x1f\xd6\xed\x78\x2c\x6f\x65\x07\xa7\x41\x62\x50\x9d\xb2\x0d\x92\x6c\xf8\x36\xda\xb8\xd2\x00\x02\x62\x4d\x5b\xcb\x57\xa8\x6f\xc1\x88\xe6\x58\xdf\x01\xdc\x7b\x38\x36\x49\xc3\x50\x05\x93\xf4\xae\xdd\xa4\xc6\xe7\x09\x19\x97\x9e\x63\xfb\x24\xba\x70\x20\x0d\x53\x66\x95\x37\x64\x73\xf9\x99\x5d\xf7\xf5\x46\xcf\x28\x0d\xa5\x48\xbc\x0b\x40\x51\xd4\x23\xe0\x65\xff\xba\xa4\xa1\x8a\x13\x2f\xd8\x9b\xd7\x23\xad\x75\x92\x12\x63\x0d\xd4\xd1\x21\xc8\xff\x91\x06\x09\xa2\xb5\xf7\x48\x31\x9e\xfa\x63\xf8\x41\xc2\xe6\x24\x98\xb8\x9c\x8b\xb3\xe8\x3e\xad\xad\x17\xda\x8b\x78\x03\xe7\xb0\x5f\x82\xc9\x7e\x21\x0f\xf9\xff\xa0\x2c\xe6\xd3\xdd\x94\x45\x1c\xb5\x20\x5d\x00\x66\xf5\xd2\xba\x2a\xe1\x4d\x51\xbc\x76\x02\x23\x13\x21\xfb\x3f\x57\xe7\xf8\xdf\xb6\x83\x94\x11\xdb\xc6\xda\x21\x91\xcb\xdd\xb1\xb9\x19\x98\x32\x23\x30\x20\x91\xef\x5d\x6e\x9e\xc6\x01\x47\x26\x47\x93\xbf\x88\x63\x7d\xf7\xb3\xfb\x7b\x68\x45\x4d\x57\xb9\x2a\x2f\xe7\xc9\xf2\x9c\xc6\xa9\x35\x71\x6f\xf2\x76\x71\xf9\x72\x2c\xe4\x48\x1e\x81\xa4\x49\xa4\x99\x13\x92\xb9\x17\xb9\x9e\x58\xec\xf8\x41\x3c\x49\x75\x27\xdc\x73\x84\x79\x85\x00\x92\x26\x8a\x7a\xdf\x26\xc4\xaf\x4f\xa2\xe7\xf1\xa3\x4e\xa9\x22\xbd\xf4\x8a\xeb\xd4\x8d\x4b\x2a\x69\x9a\x30\x70\x01\xc6\x2d\x88\xe3\xd5\xd4\x9d\x0f\x2f\xe6\x1a\x09\x69\x0a\xd6\xb5\x1a\xe5\x39\x70\xd5\x41\x05\x29\x71\xac\xac\x2a\xd8\xf8\xe2\x78\x60\x39\x0e\xb7\xa2\x58\x8a\x2a\xcb\x8b\xcf\xcb\x6b\x93\x0f\x33\x0b\x45\xed\x20\x15\x1f\x91\x95\x48\x2a\x14\xc3\x66\xd1\x0f\x71\xb9\x99\x04\xce\xa9\xd4\x1c\xcb\x59\xb9\xf3\x08\x1a\x76\x50\x52\x09\x80\x55\xf1\xa7\xa3\x50\x80\x7b\xd9\x5f\x8c\x65\xdc\xe7\x15\x89\x10\xde\xe9\xbc\xd2\x8f\xc6\x33\xaf\xfc\x17\x28\x6a\x39\x80\xf6\xf1\xb4\x91\xc3\xe8\xdd\xb9\xcd\x2a\x61\x65\xd6\x3f\xd8\xbd\x53\x25\x05\x8a\x35\x38\x5b\x38\x8b\xe5\x73\xe8\xba\x32\x2b\x30\x12\x9a\xbf\x36\x1d\x98\x81\x0d\xd5\xf6\x7c\xcc\xa6\xd3\x1a\x98\xc0\x6e\xcb\xf0\x6a\x3a\x09\x01\x92\x82\xe4\xb8\xe2\x01\x1a\x44\x8e\x98\xad\xe3\xf3\x18\x22\xe3\xd4\xbb\xb6\x23\x1d\xb8\x97\x2f\x24\xa9\x01\x6b\x83\x87\xab\xee\x49\x5a\x59\xb8\x59\x21\x25\xc2\x83\x20\xf2\x3a\x66\x6d\x84\x85\x12\x09\x78\xf9\x3e\x00\xe1\x01\xa4\x18\x51\x6b\x7b\xad\x1e\x3e\x33\x49\x34\x78\x18\x84\x78\xdb\x9e\x37\xf7\xab\xfd\xe2\xf6\xa1\x4b\x53\x78\x28\x78\x12\x8c\x9e\xc8\xdc\x4b\x36\xfa\x81\x3c\x54\x36\xdb\xed\x42\xde\xe9\xd7\x45\x89\xe5\xb0\x94\x90\x9d\x50\x39\xbd\x3b\xa0\x98\xf7\xab\x7c\x6c\x4e\xd6\x74\x14\x81\x30\xfe\xf6\x70\x42\x42\x4c\xb6\x1f\xfe\xb8\x9f\x07\x98\xfa\x71\x2a\x4d\xc2\xa1\x5f\xee\x7c\x33\xba\x1b\xad\xc1\x76\x9a\x8b\x23\xdc\x67\x39\xfc\x28\x8b\x2e\x54\xe2\xc4\xc4\x51\xdf\x5d\xb9\x85\x53\x53\xb6\xe7\xba\x03\xb8\x56\xda\x26\x9c\x12\x9e\x78\x35\x82\x2f\xcb\x76\x2b\xab\xae\x46\x08\x49\x7d\x94\x5b\x2f\xca\x79\x7a\x47\x3b\x4e\x61\xcd\xc9\x8b\xb9\xf8\xac\xa9\x6b\x38\x73\x1a\x83\xb0\x1e\x44\x79\x23\x8e\xc7\xcb\x2a\xd7\xe3\x5d\x91\x53\x61\x51\xbc\xd6\x91\xd4\xe1\x5b\x06\x56\x7c\x84\xb3\x20\xb2\x60\x92\xf5\xcd\x7a\xb7\x5b\x2d\xbf\x76\x07\x48\x1a\xb9\x87\xb1\x7b\xc9\xc6\xc6\xf7\x84\x33\x00\x1f\x1d\xfc\xa3\xc9\xd4\xeb\x4d\x73\x79\x12\xf5\xcb\x6f\x63\xce\x09\xe1\x31\x55\x98\xfa\x15\x3e\x4b\xab\x56\xf5\xcb\x50\xc7\x99\xf0\x04\x38\xf4\xf2\x50\xe7\xa6\x06\x3b\x73\xd0\xff\xb1\xec\x46\x99\x14\x53\x71\x04\x2c\xda\xf9\xb7\x3f\xf6\xa1\x3e\x4f\x03\x8d\xbb\x38\xae\xb0\x90\x7b\x8b\xa2\xf9\xd5\xba\x27\x67\x8c\x1f\x4d\x9a\x06\x28\x70\x68\x57\x81\x87\x2c\xff\x7b\x73\x9a\x20\x67\x38\x27\x0c\x5f\x96\xdf\xff\x58\xee\xbf\x6d\x6f\xf7\xf7\x0f\xbe\x31\xc5\x85\xb0\x32\x43\xfb\xf6\x9e\xb9\x65\xe2\x0e\x60\x1e\xab\x3a\x79\xda\x32\x50\xf8\x1c\xf0\xe1\x84\x1e\x8e\xc9\x65\xa8\xe9\xb4\x6d\x3c\x47\x7d\x23\x5c\x26\xe0\x3d\xb3\x6f\x9e\x66\x73\x16\x2e\xa5\x41\x1d\xd7\x87\xc5\xcf\xfd\xfa\xf1\xfb\x6a\xbb\xeb\x82\x77\xae\x92\xd4\x8b\x50\xb8\x0f\x6f\xcc\x40\x3a\x77\x7c\x22\xc5\x05\x42\xc5\xf0\x05\xf8\xbd\x33\x13\x21\x5c\xc9\xd0\x3b\x51\xa0\x79\xd7\x7a\x82\xa2\xe6\x4a\x41\xa8\x86\xbd\xbb\xad\x38\x82\xb3\x49\x9c\xdb\x3d\xa6\x0c\x11\xae\x20\x45\xec\x94\x5b\xe2\x1f\xb2\x5f\xf0\x21\x6c\xac\xfb\x88\x55\xa3\x97\x90\xab\x97\x29\x15\xe1\x9a\x96\xc3\x75\xea\x2c\x57\x06\xaf\xcb\x3e\xde\xdf\x82\x82\x5e\xd1\x9c\x70\x0d\x31\x78\x6c\x61\x47\x9f\xef\x77\x26\x37\x0a\x68\x8c\x15\xda\xfb\xe2\xb0\x56\x85\x37\xfb\xeb\x56\x68\x90\x24\xf0\x37\x6c\x98\xc4\x0c\x4a\x1e\x1c\x24\x44\x2e\x3c\x6e\xce\x73\xc7\x55\x88\x38\x31\x4f\xdd\x02\x6b\xb6\x30\x3f\xcf\x0c\xb5\xb6\xfa\xe6\xd7\xf9\xa1\xb9\x8e\x6e\x26\x83\x19\x41\x52\xd8\x56\x18\xf8\x92\x99\x2b\x6c\xcf\x70\xcd\x15\x01\x4b\x94\x25\x58\x2d\xdb\xc0\xf7\xd0\x94\xdd\xcf\x14\x01\x4b\xb1\xa0\xbd\x68\xea\xe2\x4e\x94\xe0\x55\x60\x3a\x84\x92\x08\x74\x80\xb5\xc1\x67\x27\x2f\x34\x50\x64\x9d\x4b\xc6\xfa\xb4\x40\x44\x3a\x40\x92\x53\x1b\xb0\x89\x5a\x4c\x1b\x8b\x82\x04\xd6\x3c\x63\xa1\xea\x62\xa0\x34\x4c\x04\xe1\x71\xea\xc3\x33\xf7\xbe\xcc\x06\xf4\x82\x85\x31\xee\xed\x6f\x19\xbc\x6f\x9b\x33\x8c\x80\x25\x82\xc5\xa0\x2c\xcc\x02\x35\x54\x1d\xcd\xe4\xf3\x3b\x2b\x58\x62\xe1\xff\xd8\x03\x99\x77\xfc\xed\x46\x4a\x44\x15\x55\x2f\xc5\xfb\xb3\xfe\x51\xe4\x8f\x13\x01\x19\x22\x98\x56\x98\x2d\xaf\xfe\xf1\x6d\xbd\x7b\x5e\xdc\xae\xfc\x5b\x2d\xe2\x40\x62\x25\xd0\x0b\x94\x7c\x88\xd3\x99\xac\x8c\xe3\x75\x51\xc4\x61\xc8\xdc\xe2\xd0\xde\x62\x29\x2a\xb4\x50\x3d\x16\x42\x7f\x2b\x8f\xa3\x94\x50\xc4\x9c\xa3\x7a\xff\x13\x3c\x89\x5b\xe8\x2e\x44\x82\x15\x8f\x29\xf2\xa2\xfe\xf9\xf3\xe7\xad\x38\x9f\x87\x91\xa7\x88\x55\x84\x6d\x2e\x09\x23\xfb\x44\x22\x92\x40\x4b\xe1\xe9\xd1\x42\x63\x1b\x6f\xfc\x78\x12\x62\x5b\xe6\xa7\x42\x67\xe6\x82\xca\x47\x4b\x71\xae\xae\x26\x42\xca\x08\x52\x92\xdd\x7b\x62\x8b\x9a\x96\xfd\x54\x1c\x8f\xa0\xfa\xd7\x52\xa4\xb1\xa5\xa6\x9c\xac\x88\xcc\x4d\xd6\x1f\x49\x42\x7c\xeb\x9f\x57\xab\xfb\xd1\x0f\xe0\x61\x8a\xd9\xe9\x29\x6b\x5f\xc1\xd3\x79\xa8\x71\x34\x35\xde\x9f\xcf\x29\xfc\x89\x38\xc1\x76\xd2\xdf\x95\xa8\x5e\xbe\x9d\x0f\xa5\xd0\xd0\x61\x32\xc6\x0b\xb1\x10\x51\x64\xd9\xd4\x3e\xbd\xbc\x5f\xcc\x79\xc1\x13\x21\x52\xab\x11\xd3\x26\xea\x36\x84\x2b\x2f\xed\xaa\xe5\xaf\x5e\x81\xb0\x86\xde\x72\x46\xd8\x8b\x08\x88\xd2\x90\xda\x55\xac\x13\xb5\xf5\x54\x20\x3f\xc4\x58\xc9\xc9\xb3\x68\x2a\xf8\x96\xe3\x3f\x9d\x82\x01\x11\x86\x6a\xbc\xd2\xcf\xdf\x12\x3b\x58\x06\xda\x96\x1f\x6d\x2b\x63\x24\xe2\xe0\x46\x84\x4c\x23\x2a\xfe\x21\x1b\xcc\x15\x19\x72\x6b\xe1\xa6\xb3\xea\x98\xbd\xc2\xbe\x0d\x3b\x5f\x87\x65\x32\x37\x2e\x22\xd4\xbb\xa1\x2e\xea\xba\xf0\x06\x93\x37\x70\xd7\xbe\x8e\xdd\xab\x2d\x23\x1a\x6b\x8b\x50\xc6\xa7\xb0\x7a\xcb\x8e\x0f\x45\xd9\x95\x53\x65\xc4\x2c\xd2\x14\x49\x86\xeb\xbc\x06\x34\xb4\x72\x07\x49\x10\x41\x62\xfb\x29\xc7\xcb\x5d\x51\xf6\xf1\xfc\xe8\x85\x91\x24\x0d\xb0\x64\x6b\xad\xe5\xbf\x14\xc5\xb5\x62\xc5\xec\xbf\xd3\xad\x51\x12\x50\xca\x19\x48\x3d\xef\xfa\x68\xc1\x4f\x5d\x49\x25\x60\xf9\x70\x23\x6b\xc8\xa1\xdc\x5b\xf5\x6c\x75\xd5\xf5\x96\x8c\x04\xcc\x6d\x38\x1d\x16\x7d\x08\x5a\x9b\x0e\x8f\xb9\x1f\xee\x1d\xc0\x96\xae\x74\xff\x45\x54\xd6\x49\x78\x7c\xa5\x2c\x0d\x90\xa0\xf3\x0c\x67\x10\xd6\xdb\xf5\x34\x46\x50\x49\xa6\x02\xcc\x9d\xad\xe5\xd1\xb6\x38\x8e\x3c\x3b\x47\x6f\x8c\x64\x5a\x11\x4b\x52\x07\x85\x94\x78\x7f\x92\x98\xa6\xb1\x03\xf3\xdc\x83\xa8\xd0\x27\x64\x72\x29\x71\x1c\x23\xc5\xf6\xec\x5a\x45\xbb\xb2\x38\xbf\x5c\xa6\x83\x84\x42\x7f\x03\x0d\xa6\x0d\x2d\x1d\xf6\xfb\xe6\xb2\x6d\x64\x7d\x39\xc3\x4c\xb7\x5c\xc6\x46\x62\xf7\xff\x61\xf3\x7d\xbd\x5a\x3e\xaf\x6e\xd7\xbb\xad\xbf\xac\x84\x25\x71\xdf\x9d\xfe\x6d\xb6\x28\x26\x13\xa9\xd0\xc0\xe4\x5c\xc2\x54\x42\xa3\x3d\x68\x30\x87\x30\x16\xfe\x33\x0e\xce\x65\x02\x56\x7b\x79\xbb\x5c\x7d\xb6\x63\x4b\xc1\x19\x06\x3a\xf5\x4b\x59\xbc\x57\x3f\x5e\x20\x77\x2c\xec\x2c\x3f\xac\xcd\x63\x51\x23\xe4\xb4\xca\x7c\x2a\x24\x85\x8a\xc1\xb6\xc1\x9d\x44\x64\xc7\x7c\x1a\x02\xb0\xa5\x94\x11\x46\x02\x32\x24\xbb\x02\xe5\x14\x5c\x6d\x99\xb8\x01\x2a\xe5\x98\x4b\x7f\x81\xfa\x4b\xe3\x3b\x67\x8f\x85\xff\xbc\xe2\x42\x39\x0e\xd6\xb2\xc0\x04\xf1\x83\x5a\xea\x67\x3f\x4e\x89\xd4\x6a\xf3\x23\xa6\x77\x4e\xd3\x6b\xf2\xfa\x28\xd0\x18\x66\x75\x62\x02\xd7\xf2\xae\x44\x6a\x66\x2b\x0c\x08\x92\x6e\xb3\xbb\xa7\xb2\x38\x15\x23\x6f\x0f\x3f\x32\xb6\x95\xed\x1c\xde\x6d\x56\x7e\xc5\x7e\xf5\x03\x93\x24\x24\xde\x99\xe3\xbc\xa8\x3b\x5e\xe1\xe4\x9b\xa5\x46\xad\x3a\xd0\x59\xfd\xa7\x56\x42\x9f\xee\x30\x52\xeb\x08\x7b\x17\x59\xf5\x50\xbc\x65\xf9\x61\x95\x0f\x2a\x19\xd2\x04\x0a\xdb\xf2\x0b\xaf\xb9\x49\xa4\x81\x24\x16\xbd\x51\x27\x36\x88\xc5\x07\xcc\x7f\x15\x24\x21\x62\xdc\xdf\xa6\xb8\xa1\xd1\x45\xa8\x90\x28\x04\x84\x7d\x59\x6e\x7e\x2e\x9e\xee\x3f\x4a\xd7\xc6\xea\xf6\x44\x85\x29\xf1\x76\x83\x16\x7d\x58\xcd\x49\x51\x12\x15\xaa\x14\x99\x4b\x52\xd4\x73\x41\xbf\x1b\x45\x88\x42\x04\x50\x76\x76\x72\x50\x44\xd1\x80\x21\x63\xfb\xfb\x7a\xb7\xea\xfe\x16\x6a\x14\xb0\xba\xcb\x72\x37\x23\xdb\x00\x75\x93\xaf\xf5\xb6\x6e\xf4\x54\x1c\x96\x28\x16\x53\xa1\xbd\x3d\xce\xff\xdd\xfb\x04\x51\xb1\x38\xb1\x4c\x5f\x2c\x6a\x7e\xb7\xcc\x94\xa5\xc8\x75\xd6\x4e\x90\x9b\x8b\x35\x77\xfe\xb4\x49\xa6\x18\x08\x44\xbe\xaf\x97\x9b\xfd\xd3\xd7\xc5\x76\x45\xf6\x4f\xab\xe7\xf5\xe6\xd6\x7f\x49\x1c\xc5\x89\xdd\x1a\xc5\x29\x1b\xae\xa9\x2a\x66\x04\x5f\x89\x81\x03\xdf\xa8\x41\xaf\x62\x96\x20\xf2\xa2\x6a\x4e\xeb\xe5\x06\xaf\x86\x7e\xdb\xf6\x67\x4e\x09\xd6\x49\xee\x37\x5f\xf6\xb6\x69\x3c\xe2\x1b\x8e\xaf\x33\x16\xb1\x8e\x3d\xd8\xad\xce\xa1\x1a\x91\x34\x54\x12\x53\xe3\xb1\x57\xd9\x2f\x38\xce\x62\x43\xe7\xfb\x05\x2a\x49\x03\x9e\x78\x1c\x81\xdf\x98\xfa\xd5\x51\x25\x42\x63\xdd\xfa\xef\xd9\x49\x0c\xe4\x81\x88\x4a\x54\xe4\x3d\x9e\xb7\xcd\xf9\x3c\x70\x97\xee\x47\x08\x54\xd8\x5a\x1c\x8f\x59\xde\x03\x87\x55\xaa\x35\x0a\x0b\x3d\xa1\x2d\x4d\xf7\x57\xe0\xc8\xc6\xda\x57\x2f\xa2\x84\xdb\xac\xc2\xb5\x70\x2c\xb1\x33\x9e\x96\x5c\xe8\xd0\xaa\xa0\xdc\x2c\xee\x17\x8f\xcb\x6e\x8a\x71\x65\x7d\xf9\x0f\xde\xd6\x78\x32\xa5\x04\x00\x42\x8e\x95\x73\xa6\xdc\x15\x63\x2f\x8a\x29\x20\x6e\x00\x67\x56\x2a\xd5\x36\xe9\x3e\x8a\xec\xd4\x9b\x12\x6c\xe1\x0d\x4a\x71\x74\x25\xa3\x6a\x51\x8d\xe5\x53\x06\x8a\x87\x7d\x8a\x3c\xf9\x39\x0a\x42\xed\xb8\x6d\x9b\xa3\xf6\x85\x3e\x4c\xc3\xc6\x03\x75\x6c\xb1\xe1\x23\x86\x66\x3b\x1d\xc6\x4f\x56\x4b\x9e\xd8\x20\xb2\xb4\xca\xc0\xbb\xc2\xe6\x5a\xe3\x9b\xa1\x21\x14\xbd\xab\x8e\xb7\x65\xf8\x60\x22\x6a\xb0\xc2\x87\x5e\x6c\x78\x91\xeb\xe5\x0b\xa8\xd7\xb5\x71\xa6\x9d\xbb\x02\x3d\x8c\x7b\x7c\xdf\xf4\x04\x26\x46\xad\xb9\xae\x66\x61\xa1\xf3\xd7\x6e\x4b\x2e\x21\x57\x90\x84\xda\xf9\x25\x2e\x8b\xff\x5e\x7b\x6c\x0e\x5d\x0d\xba\x8f\x24\x98\xc3\x3b\xbe\xd1\x67\x05\x56\x05\x22\xf1\x6d\x72\x7f\xc7\xb7\x50\xbe\x41\x89\x40\x18\x54\xda\xb8\xcf\xaa\x1a\x7d\x59\xe6\x7a\x3d\x0a\x94\xa2\xda\x77\xbc\x9c\x3a\xc4\xb2\xc8\xf5\x0c\x02\x52\x81\x76\x8c\x8b\xea\x3c\x7c\x7f\x75\xe8\xea\x6d\xf8\x78\x3c\x42\x6c\xce\x2a\x9b\xe8\x30\x4d\xb1\xd9\x78\x46\xa7\xe8\xfb\x8f\x5c\x83\x88\x0e\x39\x47\x56\x89\x85\xdb\x2c\xcb\xa2\x39\x67\xd3\x02\xab\x8e\x42\xcb\x18\x42\x86\xca\xbe\x84\xde\x25\x96\x68\x92\x08\xe2\x58\xbd\x5b\x71\x84\x2b\xda\x5b\x9b\x5a\x58\x94\x79\xf1\xfc\x99\x36\xdd\xf8\x1b\x89\xa6\x5e\x66\xeb\x8b\xa8\xa7\x9e\x3b\x6e\x10\x25\x60\x44\x07\xb9\xbe\x2f\x44\x3e\xa8\xe7\xf4\x17\x40\x29\xa4\x0e\x58\x81\x2b\xde\x72\xce\xb2\x6b\xbc\xdc\x69\x46\x2d\xac\xa2\x82\xfa\x69\x39\xff\xed\x8c\x51\x2b\x52\xdc\x4b\x80\xb6\xa1\xe1\x27\x8e\x60\x44\xc7\x82\x27\xcc\xa5\x84\x3b\x8c\x00\xfd\x36\xf9\x58\xd4\x36\x24\xe8\x6e\x6c\x12\x28\xa2\x3c\x2a\x3e\x7b\x83\x23\x1c\xbc\xa7\xe5\xe4\x4a\x92\xc4\xf0\xd4\x4f\x4e\x30\x66\x50\xaf\x0a\x23\x8f\x75\x9c\x2d\xb3\xe8\x34\xb6\xb8\x8e\xac\x72\xa8\x76\x24\x1d\xfa\x83\xc2\xb2\xc1\xd6\x5f\xfa\xbf\x28\xd3\x29\x42\x3c\x5c\xdc\x3c\xb6\x59\xbd\x1f\xc3\x21\x41\x2a\x0f\x56\x6d\x06\x3b\x81\x16\x3c\x42\x75\xbb\xac\xf2\x72\x5b\x1f\x01\x1c\xb5\x10\x29\xda\x39\x20\x45\x0d\x4e\x45\xee\x05\xe1\xff\x27\x76\x8c\x96\x91\x05\x63\xdc\x7e\x5d\x6e\x87\xbb\xb2\x96\xca\x56\xb6\xd7\x48\xf0\xee\x28\x6e\x5a\xf1\x04\xcb\x15\xce\x5f\x61\xf7\xab\xea\x8e\xa8\x30\xb1\xef\xc9\x5b\xef\x32\xd8\xfe\x59\x5a\x49\xfa\xbe\x6c\xfb\x49\x3c\x75\xd5\xb4\xfb\xb0\x20\xaa\x95\x66\xa8\x89\xd0\xce\xae\x7e\xfb\x58\xd5\x13\x40\xb4\xd6\x5c\x84\x0e\x08\xfb\x20\xf2\x4b\x57\x15\x9d\x91\xff\xe9\xce\xad\x41\x62\x0e\xb2\xdd\x2d\x76\xab\xfd\xcd\x6a\xb7\xbf\x5d\x6f\x17\x37\xf7\x2b\x1f\x75\x68\x60\x29\x56\x86\x5c\x13\xeb\x0e\xd0\x51\xe3\x63\x75\x26\x0d\x60\x5d\xa7\x1e\x16\x8f\x5f\x17\xbb\xdd\xe2\xf1\xe9\x79\xf3\xf3\x8f\xe8\xf1\x76\xeb\x03\x31\x6d\x22\x1d\x38\xe5\x9e\x6f\x95\x9e\x25\x51\x40\x10\x18\xea\xd0\x8a\xa7\xf3\x4d\x56\xf6\x3f\x77\xfc\x64\x21\xe0\x1c\xa3\x63\x2f\xab\xa2\x1b\x55\x7f\x81\xbc\xc9\xf2\x3f\x49\x39\x20\xa4\x21\xa2\x68\x8e\x60\x6a\xf6\xdb\xe4\x18\x4b\xa8\x5b\xe5\xef\x8b\x89\x49\x25\x81\x28\x8c\x70\x4f\x92\x99\xee\x6a\x7b\xb3\xaf\x39\x44\xd4\x0a\x97\xed\x3d\x1c\xa1\xa7\xcd\x7e\xf0\x7b\xa2\x94\xe2\xef\xb9\x5f\x3f\xfe\x8e\x19\xb3\xfb\x3b\x89\x23\x4c\xb3\xd1\xff\xe4\x46\xa8\x57\x28\xaf\x31\x57\x10\x33\x1a\x8e\xf0\x83\x2e\xc4\x1a\xaf\x13\x10\x33\x89\x39\xb0\x6c\x2e\xbb\x4c\xbd\x42\x7d\x73\xd9\x0c\x05\x18\xae\x00\x11\xa3\xb5\x02\xe2\x58\xf0\x8e\x09\xb2\x2c\x4e\x67\xa8\xb3\x41\x82\x0c\xb1\xd6\x22\xe9\x1b\x97\xc5\x54\xbb\x92\x40\x6c\x2c\x5b\xb3\x5d\x01\x84\xbe\xec\x8a\x9b\x12\xa6\x84\x13\x48\x08\xc1\xa5\x5f\x78\x8f\x0e\x57\x20\xf2\xaf\x22\x24\xda\x0a\x7d\x58\x38\xf5\x4d\x53\x62\x77\xb4\xee\x70\xf1\x90\x46\x56\xbf\xfa\x80\x4e\x78\x4f\xd6\x97\xaa\xdd\x9c\x6e\x3a\x30\x15\xa4\x24\x51\x0e\x27\x86\x91\x49\xb5\x19\x56\xd6\x20\xa5\x29\x56\x02\xaa\x4b\x55\xc3\x69\x9c\xeb\x43\xca\xad\x04\xe7\xb9\x38\x66\x2a\x83\xc9\x7e\x03\xa9\x8c\xb0\xfd\xd0\x23\xe6\x7f\x64\xf5\x4b\x3b\xa1\x9a\xf3\x9f\x55\x99\xdc\x29\x78\x28\x70\x45\x77\xa1\xc9\xc2\x0b\xb1\x4d\xee\xa7\x20\x04\xfb\x85\xed\x76\x72\xd3\x64\x47\xfb\xd4\xb7\x78\xcd\xcb\xa2\xa3\xaa\x83\x0c\x43\xed\x54\x7f\x8a\xa6\x1e\x79\xba\x12\x90\xb1\x85\xf8\xdc\x64\x87\x9b\xa2\x90\xd5\x70\xa1\x04\x19\x9b\xd8\x9a\xdd\x7c\x29\xc4\x71\xf2\xb6\x4a\x1d\xa1\x12\x9a\xaf\x84\xde\x95\x33\x7c\xc6\xf1\x0f\x93\x86\x32\x5b\xd4\x44\x24\xb2\x15\xf5\x19\x26\x34\x56\x01\xd2\x8d\x56\x92\x23\x62\xee\xdd\x67\x8a\xa0\x03\xf0\xc2\x0e\x76\xa9\x9b\xad\x4e\x81\x56\x56\x95\x63\x8f\xed\xe5\xb9\x77\x41\x2b\xd9\xb1\xf7\x51\x6d\xb5\x28\xa7\x7d\x24\x80\x34\xc6\x6a\xe2\xe9\x24\x6c\xa9\xc9\xef\xa6\x5e\xee\x93\x00\x00\xc3\xac\xb3\x8d\x2b\xee\x8a\xf2\x56\x5c\x3e\xe0\x85\x80\x11\x96\xdf\x68\xbf\xed\xa6\xa3\xd6\x81\x91\x1a\xb7\x45\x6b\x44\xd9\x35\xee\x87\x86\x2f\x76\x17\xf9\x67\x2f\xa5\x36\xf8\x3f\x7b\x16\x13\x84\xc6\x6a\xde\xfb\xfd\xe2\x37\x7f\x80\x32\x4c\x17\xc6\x1a\xb9\x8e\x15\xf0\xf1\x3f\x57\x3f\xc0\x04\xb1\x46\x46\x51\x73\x3e\x16\x42\xdf\x65\x33\xae\xc6\x93\x75\x63\x74\xc1\xe3\x93\x85\x31\xc7\x4a\x44\x05\xf5\x2d\xbc\xcd\xd4\x2b\x4d\x98\x72\xfc\x41\xcb\xcd\xc3\xc3\xb7\xc7\xf5\xee\x8f\xfd\xe2\xf6\xf6\x79\xb5\xf5\x15\x3d\x13\x8a\x24\xed\x2b\x7a\xb7\x70\x14\x97\x2b\xb5\x6d\x62\xda\xdb\x92\x0c\x04\x2f\xaa\xda\x7a\x05\xcc\x0c\x8d\x08\x71\x96\xeb\x65\xde\x3b\x1e\x4c\x2e\x3c\xe2\x09\xbe\x4a\x98\xd7\xdd\x67\xff\x69\x32\x9d\xd5\x97\xe7\x61\x48\x6c\x22\xc9\xb1\x44\xfd\xb4\xfb\x3a\x57\x45\x1b\xf9\x9f\x12\x13\x81\xc5\x8b\x95\x4d\xde\x5e\x98\xb5\x00\x76\xc7\x88\xb4\xd3\x7d\x28\x48\x85\xc8\xd7\xff\x76\x6f\xa1\xa1\x81\xb0\xa2\x55\xbd\xfe\xee\xfc\x03\xa4\xc6\x4a\x78\xe0\xa5\xaf\x7b\xa5\xe0\x1a\x23\xab\x99\x7a\x9e\x89\x83\x38\x76\xad\x0e\x84\x1b\xdc\x88\x8f\xb8\xa4\x26\x0e\x34\x57\x43\x25\x65\xfc\x1d\x5e\x58\xc0\xc4\x22\x64\x6e\x67\xf5\xb6\xec\xb3\x21\x9b\x89\x25\xe0\x16\x71\x5f\x1c\x26\x0e\x17\x7e\x80\x22\x08\x0d\x59\x3c\x6c\x86\xd0\x4f\x7f\x54\xdb\xe2\xd2\x67\xac\xc2\xd1\x4f\x4c\x42\x50\xca\x07\x12\xeb\x6a\x93\x5f\x13\xfa\x4c\x42\xa4\xa6\x3d\xde\xad\x5c\xae\x7c\x8b\xc5\xa4\x69\xec\x73\x8b\x3b\xc4\xd0\x5f\x09\x4a\x9a\x54\x29\xa4\x16\xc2\xaf\x17\xd1\x54\x35\xaa\x2a\xdd\x35\xd5\x27\xd6\x39\xee\x83\x3c\x8a\xb0\x29\xd5\x65\x97\xfe\x4b\xb9\x14\x58\x18\x71\x7d\x9d\x4d\x0e\xcb\xe2\x24\x45\xfd\xdb\xe8\x35\xf6\x83\x8d\x22\x1d\x02\xec\xd9\x0a\xaa\x7f\x96\xea\x1a\x21\x00\x2b\xc1\x55\x61\xea\xa5\x38\xaf\xc7\x0a\x68\x46\x1a\xc2\xbd\x1a\xef\xe3\xdd\xee\xb1\xa8\xbd\xd7\xda\xdc\x4a\x6c\x14\x09\xed\x4a\x2c\xb4\x5e\xfd\xaa\x4b\x81\xba\xe7\x6f\xd3\x14\xd3\x28\x6e\xf5\xad\xae\xa8\x4b\x57\x67\xd4\x24\x44\xa2\x54\x6d\x95\xed\xf7\x1a\xda\xc8\xea\x6d\x80\xc1\x32\x9a\x03\xf6\x2f\xfd\xc6\xe4\x11\x3a\x9f\xee\x4d\x06\x42\x81\x9d\x2c\x87\x44\xb1\xc0\x83\xbf\xb4\x5f\x1b\x13\x70\xe1\x96\x33\x8c\x44\x76\xa2\x7a\xb5\xbd\xa5\xd1\x64\xa0\x41\x10\x25\x88\x74\x6c\xf7\x8b\xa2\xa9\x87\x99\x13\x0d\x42\x0d\x58\x90\x68\x13\x55\x51\x65\xea\x4a\xc9\x8a\x06\x51\x44\xc1\x6e\xb9\xd9\xe1\x00\xf6\xbe\x77\x61\x0b\x0d\x22\x69\x8d\x12\xd1\xa6\xba\xd0\xe0\xcf\x1c\x99\xd4\xa3\x7d\xf1\xfa\x3e\xe1\xac\xd1\x80\x04\x21\x46\x93\x48\xe5\xdf\x66\xff\xed\xce\x42\x38\x45\x2a\x30\xd6\x77\x17\x5a\x77\x19\x06\xe8\x0f\xaa\xbd\x34\xa0\x3a\xc6\x50\xf8\xdc\x54\x2f\x56\xed\xcb\x1f\x00\x81\xb5\xfa\x17\x51\xbd\xfc\x0e\x17\xff\x67\x26\x02\x9c\xdb\x87\x52\xe4\xf5\x7a\x2a\x67\x5e\x75\xc3\x74\x8c\x8a\x04\xa8\xe3\xd3\x7d\x38\x0e\x2d\x34\xda\xc9\x81\x55\x5b\x25\xf2\x1c\xca\xaa\x73\xef\xa3\x41\xcc\x12\x54\xbc\xb6\x35\x83\x4e\xad\xc7\xa2\xf1\xfd\x18\xa0\x98\xd4\xa1\x72\x3c\x2e\x68\x37\xbd\x4e\x0d\x0d\x12\x1d\x85\x9d\x9b\xd3\xdf\xfd\x5f\xd3\xc4\x46\xf0\x5f\xfa\x0a\x51\x4f\x6b\xa2\x41\x9a\x02\x21\x5d\x36\x7f\x2d\x07\x8e\xff\x3a\x46\x3a\x0d\x78\xa4\xb5\x2f\xdd\x6d\x36\xf7\x56\xd8\x22\xe2\xfe\x64\x5c\x58\x12\xfc\xef\xbd\xa9\x0a\x0d\xb8\xd6\xba\xcb\x99\xb3\xff\xe2\xfd\xfa\x56\x67\xc7\xee\xa7\x8b\xc4\xda\x0b\x56\x35\x9c\x43\xff\x47\xc9\x35\x52\xf7\x71\x61\xfb\x0a\xa2\xac\x25\x0c\x8d\xf1\xdc\x30\x15\x08\xb4\xdf\xaf\xc4\x1b\xb4\xf9\xef\xf6\x0c\x1f\xc8\x36\xd3\x40\x91\x20\xf5\x8d\x32\xd4\xb2\xed\xae\x40\x53\x8d\x65\x72\xb0\xca\x33\x5b\xc8\xf5\x8d\xc8\x5f\x9f\x0b\x8f\x66\xa2\x81\x56\x29\xa2\x1f\x1f\x16\x3f\x47\x0e\x9e\x34\x00\xc2\xf0\xf7\x79\x3f\xa0\x7d\xaf\x4d\x43\x03\xe0\x29\x76\x10\x34\xa8\xe2\x74\x2e\x2a\x98\xbc\x77\xc0\x25\x6e\x4f\xa5\x78\x05\xf4\x48\x40\x40\xad\xb5\xfe\x1c\x45\xf7\x34\x30\x22\x95\xed\x0e\xf4\x7f\xcf\x3f\xbb\x3f\xb5\xaf\x90\x15\x8e\x14\xe5\x65\xdb\x55\xa3\x69\x18\xf0\x04\xbb\x73\x3a\xab\xa4\xc8\xf5\x6e\xf2\xbe\x86\x6d\xca\x18\x77\x40\xc6\xf6\x71\x64\xf5\x65\x8e\x0e\x41\xc3\x36\xbd\x6c\x6f\xf1\x3e\xcb\x2b\x28\x6d\x45\xba\x23\x79\xcf\xac\x84\x34\x24\x49\x8c\x0b\x96\xef\x9e\x5d\x83\x83\x87\x09\x1c\x0d\x49\x6a\x2d\x93\xd6\xaf\x4d\x29\xc6\x1a\x1a\x9f\xad\x8c\x34\x24\x52\x23\x92\x64\x63\xcc\x31\xcb\xc1\xab\xe2\x7c\x54\x8d\x99\x44\x7b\x34\xa4\x5a\x44\xc2\xf3\x7e\xdb\xc0\x3f\x6f\x5f\xcf\xb1\x75\xf7\xf8\x52\x59\x4a\x11\x9a\x74\x5f\x1c\x96\x50\xd6\x99\xc9\xda\xcd\xab\xcd\x2b\x27\x33\x33\x8c\x15\xc7\xc6\xc4\xde\xde\x9a\x6a\xf5\x9f\x46\x8c\xe0\x31\x34\x8c\x75\x88\x6e\x55\x47\x51\xd5\x5e\x5d\xe6\x49\x64\x7a\xd3\x8c\x83\xce\x76\x24\x45\xf9\x96\x0f\xba\x97\x7e\x14\x18\x54\x96\xd7\x0e\xdb\x7b\xf5\xd4\x13\x13\xa6\xda\x37\x16\xce\x99\x7a\x14\x27\x70\xf2\x46\xd5\x62\xfa\x9d\x69\x2c\x11\x51\x8a\xab\x4d\x91\x03\x7a\x0d\xad\xfe\xb3\xce\x6b\xe2\x67\x19\x4f\x12\xa5\x07\x6a\xb5\x9d\xb4\x25\x0d\x39\x18\x8c\x97\x7e\x64\x33\x72\x60\x34\x94\x71\x8a\xf8\x6f\xc8\xeb\x4f\xad\xac\x87\xff\x25\xd1\x3f\xc3\xf0\x5f\xfe\x04\x4a\xa2\xab\xfc\xf9\x45\x54\xb0\xca\xf5\x55\xdc\x4c\x43\xa9\x01\xf3\x7e\x4b\x3e\xb8\xf2\x3c\x1d\x3f\x58\x09\xdc\x72\x0c\x50\x7b\xe0\x16\x64\xfd\x19\x68\xf4\xaf\xfe\x3b\xfe\xd1\x2a\x65\x58\x17\xde\xef\xad\x67\xa9\xbf\x57\x4a\x11\xdc\xd8\x70\x01\x70\x28\x9f\x9d\xc8\x5f\xe7\x92\xa2\xd4\x7d\x06\x48\x84\xbf\xff\xb6\x50\x0d\x82\x1f\x87\xce\x7e\x34\x0a\x02\xd3\xb9\x95\xd8\xc4\x2e\xab\x67\xa1\xe3\x34\x0a\x08\xc3\x54\xba\xee\x51\xaa\xe3\x1b\x19\x05\x60\x09\x5e\x37\x4b\x21\xb6\xdd\x37\x00\x43\x06\xf1\x4d\x73\xb1\x26\xaa\x3d\xad\x71\x2e\x16\xa1\x51\x18\x59\xf7\xd5\x76\x96\x83\xdb\x41\x51\x78\x74\xf4\x33\xc3\x81\xb4\x76\x8f\xec\xa3\x51\x48\x75\x28\x7b\x5d\xd8\x6f\xb9\x65\x89\xe9\x9b\x76\xc5\xba\x4c\x7e\x52\xc8\x42\x04\xc1\xdd\xdd\x2d\x87\x26\x01\x34\x8a\xb8\x44\xe5\x24\x71\x3e\x23\xac\x70\x34\x07\xa2\x48\x19\xdc\x4c\xf2\xe6\x74\x5f\xa8\xd7\xaa\xfb\x94\xfb\xfd\xb5\x78\x45\x69\xbc\x4f\xc2\xc0\x76\x70\x1a\x06\x03\xdb\x87\xbd\x2a\x4e\xa7\xac\x6a\xe3\xea\xfd\xfb\xa0\xc0\x41\x23\x92\xd0\xc0\x95\x7a\xea\x49\x5b\xab\x3d\xc8\x1c\xb8\x00\x8b\x56\x42\xd5\x9e\xb2\x74\x57\x16\xa7\x6b\x09\xf5\xf1\x0d\xa0\x0c\xb0\x8a\xe0\x9f\x69\x7b\x7d\x53\xb7\x11\x1a\x51\x87\x66\x77\xc8\x91\xab\x4a\x0a\x8d\x62\xce\x3d\x2c\xf2\xa9\xf9\xef\x7f\x8f\x43\xf9\x77\x1a\xc5\x32\x40\xf9\xa8\xa3\x28\x0f\x5e\xbd\xb6\x13\xac\xeb\x4e\x21\x25\xd6\x2e\x7d\xd9\xec\xae\x28\x07\x95\xaf\xc9\xaf\x4e\x02\xeb\x90\x77\x23\x6a\x4f\x72\x6e\xff\x68\xcd\xf4\x4b\xeb\xff\xea\xff\xaa\x94\x74\x42\x22\xf8\xde\x8c\x77\xcb\x28\x51\xe0\x1d\xd9\x6e\x2e\x47\xf1\x5e\x39\x49\xba\x5b\x2b\x47\xd9\xbe\x32\x03\xec\x3b\x8d\x52\x69\xb0\xa0\xb9\x85\x5a\x67\x6f\xf6\x22\xd5\xf4\xf2\x78\x08\x48\x76\xca\x9b\xd3\xfe\xa5\xa8\xea\xee\xdb\xb8\x34\x62\x08\xbb\x45\xbe\x8c\x31\x50\xf6\xb7\x52\xb0\x20\x74\xfd\xa8\x27\xa1\x5e\xfb\xd2\x42\xe8\xcf\x2e\xb8\xd5\x10\xe9\xba\xf9\xe1\xa8\x9b\x4f\x23\x21\x22\xe3\x9e\xc6\x57\x10\x47\x57\x84\x4e\xff\x19\x26\xf1\xbf\x86\x8b\x43\x24\x74\xec\xbd\x80\x1f\xb2\x7c\xd1\xe8\xcc\x06\x77\x9d\xd6\x0a\x8d\x24\x09\x25\xf2\x73\x6f\x41\xb5\x7b\xe7\x3a\xaf\x9a\xb2\xb7\xe0\xa5\x91\xd4\x29\x2e\xff\xa5\xcd\x8b\xf4\xb7\xd5\xce\xc6\xa6\xf3\xd1\x55\x24\x8d\x45\x2f\xeb\x62\x67\x73\x80\x11\xaa\x90\x46\x8a\x10\x6a\xd5\x4a\x31\x7b\x7e\x40\xe5\x80\x0f\x96\x24\xa5\x02\xb4\x20\x7c\x3a\x8a\x1c\x6a\x71\x28\x8b\xfd\x14\xb5\xea\x47\x6a\xcb\x91\x6d\x53\xe0\x1c\xd5\xe9\xda\xb9\xe8\x1c\x7b\x46\xd7\xa7\x8c\xa2\x93\x65\xee\x16\xf2\xe2\x64\xa1\x4b\xfe\x2a\x75\x64\xd1\x80\xa2\xbd\x67\x63\xb2\x0a\x8d\x34\x55\xf8\x6a\x3f\x2d\xb6\xdb\xd1\xb2\xa2\x53\x40\x93\x8e\x5a\xcc\x8b\xcf\xd2\x48\x3b\x97\x7d\x47\xc5\xea\x4b\x7a\xd3\x5d\x69\xfc\xf3\xb4\xb2\x9d\x2e\xc4\x95\x63\x31\xb0\x9a\x4c\x49\x88\x62\xdb\x28\xeb\xcc\x15\x1d\xb3\xe3\xae\xc9\x35\xca\xb3\x7c\x28\xef\x33\xb9\x44\x48\x13\x70\x95\xba\xe3\x26\xdf\x66\x87\xfc\xdb\xd9\xff\x40\xd0\x09\xae\x8c\x0f\xd9\xaf\xc9\x46\x03\x20\x91\x6a\x80\xd1\xfd\x6d\xd9\x1c\xfc\x3b\x41\x82\x20\xc2\x52\x9a\x6d\xf5\x7e\xe9\x3d\x9e\x47\x3f\x91\x04\x24\xc5\x85\xfd\x24\x2e\x45\xb9\xc4\xd4\xd3\xab\xe0\xb9\x11\x21\xe1\x94\x75\x0a\x71\xb8\x06\xae\xf3\xb7\xac\x06\x6b\xcb\x31\xed\x61\xf5\x9b\x06\x09\x65\x28\x7c\xab\x52\x34\x55\x7f\x46\x29\x52\x70\x81\x17\xa6\x50\xfb\xb7\xd4\x1f\x8b\x44\x8a\xf6\x5a\x3e\x78\x75\x75\x7e\x47\x96\x6a\xf2\xce\x88\x8c\x12\x12\xaa\xc8\xb7\x98\x1b\xb9\x2b\x9a\x12\x9d\x37\x86\x55\x3c\x9f\x39\x11\x12\x19\x84\x4d\xdb\x59\x7c\xf3\x24\x66\x7a\xb7\x94\x10\x26\x7d\x7e\xb5\x85\x37\xc8\x07\x6d\x76\x4a\x08\x08\xcc\xe4\x96\x0d\x58\xd7\x6e\x7f\x80\xc6\x41\xe8\x26\x57\x1b\x90\x76\x49\xef\x67\x9e\x8a\x9f\x4f\x06\xc2\x02\x82\x71\xee\xb6\xc9\x3b\x93\x31\x4a\x58\x12\x62\x07\xc1\x9d\x6b\x5f\x17\x4e\x3b\x66\x7f\x2e\xe1\x6d\xff\x0e\xf0\x1a\x4e\x7e\x11\x4b\x6d\xf6\x60\xf7\xb1\xc7\xcd\xb6\x5d\xfc\x06\x12\x87\x6e\x58\xcc\x24\x6e\x77\x3f\x40\xbc\xf5\x37\x38\x96\x31\x74\x92\xb0\x0b\xfd\x36\x58\x9f\x48\x12\x5a\x0f\x17\x24\xb0\x3c\x3c\x6c\x9e\x77\x8b\x7b\x1f\x9c\x90\x94\x86\x98\xde\x7c\x93\xf0\x6b\x44\x9d\xf4\xc7\x8d\xc6\x7d\xa6\xb0\x89\x43\xbb\x13\xcd\x57\x27\x29\xe1\x84\xe3\x9a\xff\xb0\x7e\xdc\x3f\x7d\x7b\x5e\xb6\x0b\xb3\xff\x1a\x4e\x53\x80\xc1\x9a\xf2\x45\x64\x39\xe8\x61\x39\x81\x70\x30\x8c\x4d\x2a\xa5\x23\x3b\x52\x4a\x44\x20\xd1\x74\xf0\xa5\xd0\xc7\x36\xef\xa9\xc5\x11\xd7\x2f\xfe\xd0\x8d\x48\x14\x02\x60\x8d\x33\xc6\x71\x1b\xe8\x5a\x75\x53\x40\x11\x29\x1d\x01\xe5\x56\xd4\x62\x4f\x82\xee\x08\x65\x72\xe8\x87\xb7\x6d\xca\x73\x99\x55\xf0\x34\x91\x05\xa4\x44\x31\x41\x1d\x42\xb6\x4d\xa5\x47\xee\x8d\xa3\xe9\xd3\x4d\x6a\x10\xd6\x8e\xfe\xd8\x6e\xaa\xbb\x77\x0b\x43\x7a\xec\x7f\x19\x98\xd8\x6e\x32\xfb\x53\x73\x3c\x15\x7a\x68\x67\x3a\x40\x25\x51\x62\x22\x2a\x7b\x6e\xa1\x53\x21\xd6\x53\xe1\xcf\xd1\xe5\xd2\x80\x50\xac\x5f\x6e\x7e\x3c\xee\x11\x68\x7f\xfd\x9c\x69\xa0\x62\xe3\x94\x82\x7f\x14\xe5\x2b\x94\x0b\x63\x40\xd5\xe2\x0a\xdc\x42\x69\x08\x02\x75\xc2\x96\x47\x10\x79\x9b\xfd\x23\x9e\xd3\x64\x43\x4b\x3a\x4a\x49\x20\x2d\xc8\xde\xcb\xf0\x6f\xf2\x43\xd1\x69\x29\x50\x4a\xc2\x84\x0c\x3c\x5e\xbe\x39\x2f\x9e\x49\x66\x3d\x8a\x18\x29\xa1\xc4\x8a\xf9\x16\xc7\x0b\x92\x82\xb2\xc1\x3c\xa7\xc4\x58\x50\xb2\xa5\x1e\x59\xa5\xd3\xfd\x53\xd9\xe3\xe9\xdb\x21\x0a\x97\x2c\xa1\x14\x9c\xeb\x2f\x8d\x28\x75\x26\xf2\xef\x30\x01\x38\x53\x4a\x03\xce\x9d\xa9\xdb\xf1\xca\x87\x65\x3c\x94\x85\x91\x85\xf7\xe2\x7a\xd5\xee\x29\x75\x36\xdd\x7d\x29\x13\x46\x5b\xbb\x4c\x78\x0d\x07\xca\x8b\x94\x32\xa5\x10\x9a\xd9\xe4\xb6\x7d\x34\x16\x8d\xa5\x34\x61\x01\x6e\x5b\x68\x1b\xb3\x3f\x0f\x3f\x9a\x46\x09\xe2\x4b\x4e\x59\xde\x06\x8b\x0f\x22\xbf\x0c\x70\x68\xe3\xfe\x12\xa5\x29\x89\x62\xd2\xb1\x1a\xb1\xb8\xff\x20\x2e\xc3\xd0\x8e\xf2\x48\xb1\x64\xac\xe1\x8a\x5e\x06\x7f\xa9\x86\x4a\x29\x4f\x6d\x5b\xf7\xa7\xcc\x6a\xf3\xae\x87\x1b\x3f\xe5\x22\x25\xb6\xc7\xa1\xb2\x93\x38\x4e\xa7\x28\x57\x80\xe5\x4d\x2f\x06\x35\x88\x07\xa9\x88\xd2\xb8\xbf\xc1\x5e\x09\x60\x9c\x67\x0e\x52\xa1\xd9\x72\x04\x15\x42\x9b\xc4\xed\xfe\xcf\x9b\x6d\x77\x6e\xb0\x24\xa0\x4c\x15\xa1\x2d\x14\xea\xbe\x26\x45\x65\x60\x9d\xd9\x87\x3a\x85\xab\xe7\x65\x12\x85\x57\x77\x64\x36\xbb\xa0\x52\x05\xa9\x2b\x67\xee\x44\xf5\xba\x9e\x4e\x33\x65\x08\x4e\x8b\xbd\x2f\x2a\xde\xf5\xe6\x0b\xd7\xf7\x57\x13\x4b\xc5\xf9\xb1\xbe\xf5\x32\x59\x94\x6a\x29\xb1\xe7\x25\xb4\xde\xe2\x2d\x69\x5f\x0c\x51\x66\x55\x2f\x7b\x38\x4e\xe4\x43\xff\x41\x1d\xa7\x96\xe0\x77\xc8\x72\xdb\x07\x1b\xa0\xe5\x29\x35\x91\x26\xda\x23\x00\x31\x64\xea\x15\x88\x6e\x3b\x90\x27\x65\x01\x89\xf1\x45\x7f\xcb\xe0\xbd\x5d\x0d\x87\xcd\x06\xca\x82\x34\xb6\x7d\xf0\x32\x7b\x83\xa5\xf0\xd3\x9a\x45\xd4\xfa\xcf\x5b\x16\x2e\x6e\x04\x9d\x3f\x83\x1f\xe2\x14\x6b\x94\x55\xe3\x59\x9c\xea\x5d\x31\x52\xe6\xa1\x8c\x84\x29\x2e\x9b\x95\x2a\xda\x9f\x3e\x36\x97\xa1\x8c\xa4\x01\x2a\xd9\xec\xe1\x94\xd5\x5f\x87\xa5\x42\x6b\xc0\x32\x09\x25\xc7\xb7\x9b\x51\xc3\x11\x33\x77\x7a\x6c\x4e\xce\x29\xd2\x1d\x61\x01\x18\x67\xd2\xb5\xca\x0f\x59\x0e\x50\xfe\xa3\x99\xba\xf3\x52\xc6\x24\x4f\xc8\x50\x6e\xe5\x00\xc3\x32\x34\x8b\x19\xc7\xcd\xca\x77\x3f\x9c\xe2\xfb\x78\x8e\xb0\x24\xb6\x25\xf1\xc7\x68\x12\x65\xb3\x34\x92\xb8\x77\x8f\xea\x2f\x57\xfd\x49\xca\x52\x9e\x12\x1b\x16\x1e\x91\x89\x93\x75\xf5\x5c\x96\x2a\x86\xf8\x83\x73\x2f\xe6\xb7\x14\xe7\x5d\xd6\x79\x33\x51\xc6\x43\x8b\x2e\xed\xc1\x10\x8b\xfb\xa5\xe3\x1b\xd6\xea\x65\x72\xb5\x9c\x09\xc4\x7d\xc9\xf6\x87\xa2\x84\xe0\xe8\x89\xf0\x98\xe1\x1a\x5d\x83\x7a\x71\x60\xe2\xee\x50\x42\xb0\x21\x50\xb7\x99\x61\xfd\xe7\x6c\x91\xf6\x13\x02\x69\xd2\xb8\xc5\x58\x6e\x15\xaa\x8c\xf4\xee\x56\x94\x89\x24\x4c\x2c\xf0\xf1\x8c\x24\xa1\xb5\x5f\x56\x98\x0c\x05\x32\xa8\xb7\xce\x79\xc2\x3b\x30\x5e\xb7\xb2\x29\x93\xcc\x24\x8e\x70\xba\x56\xc5\xb6\x86\xf3\x74\x80\x00\x8c\x02\x7d\xc7\x73\xb0\x13\x32\xa9\x04\xe2\xd7\x51\x47\xa7\x4b\x67\xe6\x60\xc2\xcd\x08\x42\x46\x99\x0a\x25\x52\x8f\xdb\x4d\x76\x54\x10\x65\x2a\xa2\xa1\x5b\xfa\x07\x6e\xc9\x94\x29\x4a\x89\x57\x79\xca\x4e\x80\x28\xac\x71\xed\x86\x41\xc0\x3d\x9c\xfe\xf3\x9d\x8d\x81\x53\x44\xb3\x4a\x1c\x88\x45\x47\x41\xa2\xd9\x50\xc7\xfd\xda\x38\x48\x02\xe4\x5e\xcb\xe6\x72\x57\x94\xab\x37\x28\x2f\xb2\xd0\xfe\x8d\x8d\x43\x16\x62\xcf\xff\xdc\x2e\x79\x28\x78\x3d\x47\xdc\xa0\x71\x18\xf3\x38\xe9\xa4\x85\x96\x85\x86\x81\x27\x24\x8d\xa3\x20\xa0\xee\x81\xdc\x65\x65\x65\x65\x5a\x9f\x6d\xc5\x6b\xf0\xf8\xe3\x88\x09\x24\x3e\xc3\x7f\x1a\xd1\xf5\x51\xe2\x88\x0b\x84\x85\x68\x6d\xea\x1e\xab\x45\x63\x12\x04\xc6\x2d\x79\x8b\xee\x6f\x61\x80\x6a\x10\x7b\x07\x9a\x1a\xe6\x35\x31\x49\x29\xa6\xf2\x45\x0e\xeb\xd3\x79\xdd\xdb\x33\xb5\x87\x0c\x56\x16\x0a\x67\x2a\xf0\x8c\x85\xcc\x1b\xf4\x79\x56\x2f\xf0\xd1\xda\x73\x1d\xf2\xc5\x44\x59\x80\xa0\xc9\x72\xbd\xad\xce\xe3\x45\x26\x26\x60\x2d\x1e\xb0\x14\x27\xba\x85\x37\xa6\x2c\x0a\xac\xa6\xda\xfb\xcf\xee\x6f\xdc\x68\xe8\x8c\x14\xc6\x28\xec\x4f\xa1\x63\x34\x66\x44\x60\xd5\x67\xf5\x73\xb8\xad\xc7\x4c\x48\x6c\x35\xe7\x45\xbd\xce\xad\x3e\xe2\xf8\xf2\x62\x11\xa0\x34\x87\xca\xea\xec\xbf\x90\x57\x13\x6d\xe8\x7e\x14\xea\x10\xdd\x17\x87\x9b\x4c\xe3\xb2\x01\x63\xc2\x6a\x3b\x46\xc6\x9d\xde\xc6\xcd\xe6\xdb\xe3\xd2\x33\x76\x69\x9c\x28\x15\x04\x23\x24\xef\x47\x8e\x34\x38\x16\xfb\xd4\xb7\x45\x23\x8f\xb0\x29\x1f\x8b\xfa\x25\xcb\x0f\xeb\xd3\xd9\x57\xcc\xe2\x94\x18\x54\x34\x58\xb4\x8b\xe2\xc7\xbe\x6c\x7e\x74\xcc\x10\x6a\x79\xff\xc7\xe3\xba\x9b\x36\x22\x08\xbc\x23\x56\xd7\xfd\x9f\x43\x5f\x4e\x2e\x4e\x30\x8d\xcb\xd5\x35\x0d\x68\x32\x4e\xc4\xa1\xd3\x07\x5f\x3b\xef\xe5\xc9\x2d\x95\x11\xc7\x58\xf9\xbe\x79\xab\x87\x4f\x4c\x72\x89\xbd\xbd\x63\x66\xe0\x71\xfa\x19\x11\xa0\x9c\x91\xf3\x03\xc8\x2a\xd0\x4f\x50\xce\x20\x96\x69\xac\x02\x43\x83\x4e\xe3\xd7\xa5\x59\xd8\x92\xeb\x85\xfd\x68\xac\xb4\xd6\xd6\xf3\xea\xec\x8a\x2d\xfe\x88\x0e\x08\x77\xf9\xc6\x23\xfc\x72\xde\x6f\xdd\xe2\x1c\xeb\x40\x44\x0e\x25\xf6\x7d\xbf\x9d\x5c\xa6\x4e\x38\xaa\x3e\xf8\x44\x6d\x71\x6c\x03\x88\xc9\x05\x6a\x69\x35\x34\x3a\x57\x1d\x4f\x2f\x76\xe0\x4b\x5c\xe5\xfd\x58\xcd\xf0\x84\xd5\x4b\xf1\xbe\xb4\x85\x49\xc7\x2e\x77\x03\x40\x50\x2c\xf1\xad\x7e\x3e\xed\xc3\xb4\xfb\xab\x0c\x71\x69\x78\x2f\x85\xaf\xff\xc4\x26\x05\xe9\xa5\x09\x50\x8b\xe3\x33\xbb\x7a\xff\x19\x13\x19\xf7\x99\xdd\x3b\x40\x5d\xdd\x66\x0e\x02\xde\xfd\xe6\x24\x08\x38\x06\xc8\x47\x51\xd5\x28\x48\x5e\xd5\x5f\x37\xb7\xf7\xdd\x2b\x90\x04\xa1\x22\x6c\x10\x4c\xec\x5f\xb3\xe3\x71\x6f\x45\xd6\x47\x7b\x47\x12\x44\x0c\x7b\xb8\x63\x66\xc6\x55\x56\x3f\x9e\x71\x49\x44\x05\xe6\x06\x23\x71\xa1\xbb\xa2\xf4\xe4\xdf\xbf\x14\x10\x27\x91\x8e\x7d\x2d\xda\x16\x44\x66\xa9\xd3\x34\x89\x8c\x40\x62\x4f\x1b\x45\xd8\x6f\x2c\x6e\x07\x82\x6d\x1f\x5d\xa3\x81\xa4\x63\x39\xd8\x5f\xb5\x5e\x6e\x7c\x24\x93\x10\xa6\xd1\xc3\xa9\xdb\xf6\x66\x4b\x89\x09\x49\x74\xd8\xf1\x21\x4e\xe7\x23\x58\xb0\x7b\x39\x59\xda\x12\x14\x84\x6b\x77\x86\x3e\xa7\xfe\x28\x4f\x1a\xdd\x7f\x1a\x48\x4f\xc6\xb3\x73\xd1\xba\x8f\xfc\x36\x00\xfd\xd0\x84\x26\x06\x51\x37\xeb\x7f\x2c\xfd\xe5\x53\x41\x10\x19\x65\xc9\xbd\x18\x49\x7e\x45\x6e\xff\x6f\xd7\xae\xf5\x34\x61\x61\x80\x04\x9e\x6f\x8f\xeb\xe5\xe6\xf9\x71\xbf\xf6\xc5\xf1\x84\xb1\x08\xdd\x81\xf3\xe6\x64\x65\xa4\xdb\x6d\xb8\xea\x8e\xca\x10\x23\x19\x6c\x17\xb2\x61\xaa\x9a\x30\x69\x65\x59\xd1\xd6\x7a\xd9\xd3\xa2\xe6\x5b\x2b\x49\x4c\x12\xe3\x15\xcb\xb2\xba\x16\x06\x6d\x33\xa0\xa7\x2f\x4d\xae\x38\x8e\xa3\xc0\xbe\xd6\xed\xab\xd7\x23\x4a\x92\x38\x61\x96\xc4\xf9\x0b\xc3\x5f\x21\x8f\x70\x55\xfb\x4c\xe2\x94\xdb\x3e\x5e\x71\xd4\x6b\x0d\xe2\x07\x64\x4f\x45\x55\xf7\x95\x9f\x24\x01\x62\x17\xa3\x17\x50\xaf\x0b\xad\x11\xf1\x3f\x79\xa6\x89\x09\x98\xe9\x50\x8d\x93\x83\x69\xc2\xb4\xe3\x44\x6d\x55\x51\x4e\xe7\x6c\x9a\x2a\x94\xb4\xf8\xfa\x65\xb7\x7f\x86\x0a\xca\xb7\xee\xe2\x52\xc3\x10\x3b\x82\x4a\x5c\xbe\xf4\x39\xf9\x38\x27\x82\xcb\x7e\x45\xfc\xd2\x40\xd5\x47\xab\x09\x4f\x49\x94\x78\x2f\x22\x6c\x42\xdd\x88\xba\x6e\xe7\xe6\xbb\x28\xb5\x63\x09\x8e\x4f\x28\x22\x5b\xec\x94\xb9\xb4\x6b\xb9\x3f\x97\xa4\x14\x2f\xf4\xae\x28\x8e\xdd\xdf\x64\xc2\x3a\x27\x09\x7b\x67\x3e\xd9\xf3\x12\x15\x18\xcc\x9b\x8b\x7c\x9d\xab\xa2\x8b\xb7\x12\xc5\xad\x6a\x0c\x88\xaa\x16\xba\x1a\x51\xb8\x69\xbb\x4b\x63\xf9\xa5\x12\x27\xe8\x8b\x5f\x89\x52\x56\xf4\x1a\x23\xac\x7d\xfd\x02\xfb\x52\xf4\xb3\x4e\x19\xe6\xb9\x31\xb7\xe2\xb2\x7b\xc9\xca\xee\x87\x68\x12\x05\x03\x0b\xcc\xf5\xe3\xc2\xad\x15\x3d\xc1\x83\x26\x9a\x29\xc4\x64\x55\xef\xa2\x3c\xed\xca\xae\xf1\x9e\x68\xce\x51\xe2\x44\x68\x8d\x1d\xd9\xeb\x2e\x5b\xa2\xa5\x06\xc7\xb7\x84\xf2\xae\x0f\x31\x67\x39\x00\x34\x81\x34\xc4\x94\x79\x5b\xc3\x1b\xf4\xc4\x19\x3c\x80\xd2\x0c\x98\x15\x6d\xd1\x80\xed\xe4\xa9\x54\x63\x2f\x0b\x9a\x80\xb4\xa5\xd2\x37\x71\xcc\x34\xfa\x1d\x8d\x42\x43\x3f\x4a\x89\xa0\xa3\x4f\xdc\x66\x6f\xdd\x37\x41\x8c\xd1\xbd\xd7\xbf\xba\xc7\x15\x42\x16\xa2\xd4\x8e\xf9\xeb\x47\x9a\x28\xe6\x0e\xab\xf6\x55\x4c\x0b\x60\x69\x90\x18\xf4\xb5\xee\xbb\x25\x03\x58\x2b\x4d\xc3\x40\x62\x2b\xfc\xe9\x79\xb5\x5f\x2f\x37\x43\x5b\x2d\x9a\x46\x61\x80\x2e\xe6\x67\x28\x6d\x7b\xa9\xfb\x3b\xc5\x1a\x10\xe4\xda\x13\x65\xfd\x5e\x9a\x52\x2e\x10\x86\x99\xc3\xfb\xaa\x7e\x41\x9e\x84\x46\xa7\xaf\xe1\xaa\x98\x52\x11\xe1\x04\xea\xbe\xf6\xfe\xcb\xe3\xfe\xbe\x83\x14\xd3\x94\x71\x0e\x0e\xa4\x85\x95\x0a\x7d\x1a\xbf\x14\x29\xe3\x1a\xaf\xed\x5b\x9e\xbd\x41\x59\x89\xe3\x9d\xb3\x0c\x41\x7f\x73\xf8\xed\xd3\x58\x78\x3e\x36\x6e\xcf\xa9\x58\xcf\xb5\x99\xf3\x94\xa5\x69\x9c\x30\xe3\x74\xe4\xbf\x14\x9e\xe9\xd0\xfe\x39\xe6\xbd\x57\x26\xea\x5c\xcc\xee\x6d\x69\x9c\x52\xdd\x0b\xaa\x8d\x92\xd4\xab\x91\xca\xb9\x51\xbd\x42\xee\x16\x22\x4d\x7c\x66\xea\x07\x69\x4b\x8f\x73\xaf\x8e\xe3\x81\x4d\xae\x39\x09\x19\xf2\x6e\x6f\x76\xcb\xfb\xa2\xae\x8b\xf9\x3c\x31\x4d\x12\x86\x1e\x4e\xa6\x28\x0f\xd9\x1b\xb8\x5e\xed\xdf\x46\x4f\x2e\x49\x15\x36\x98\xf6\xbe\x03\xb0\x7c\xc9\x8e\x57\xe4\xb1\xe9\x89\x65\x64\x41\x08\x55\x05\x75\xb5\xef\xc5\xb7\xfd\xaf\x48\xa9\xad\x80\xf8\xd6\xf6\xaa\x9f\xa1\x3c\x49\xbc\x89\xe5\x72\xb5\xa3\xeb\xdc\x14\x9d\xc8\x76\x77\x55\x5c\x04\x8e\x7b\x75\x42\x7f\xc9\x1f\x45\x79\xec\x84\x0f\xfc\x18\x99\x60\x8e\xd7\xae\x4e\xab\xfa\x65\x80\x59\x4b\xb9\x4c\x89\xd5\x87\x11\xa7\x4d\x0e\xce\xef\xce\x1f\x54\x81\x0f\x75\x6e\x9a\xcb\xcc\x02\x9d\x72\x08\x7b\x7f\x39\x5c\xd3\x9f\xda\x14\xb3\x14\x35\xdc\x43\x7e\xe8\x3a\xc2\x29\x37\x0a\x5f\x8e\x7d\x53\x81\x17\x0b\xf1\xc7\x44\x68\x9c\x01\x5d\xdd\x94\x79\xe7\x47\x33\x6c\xad\xa4\x82\x13\x0c\xd6\xb7\xe2\xcd\x35\xc4\x86\x49\x5c\x2a\x23\xc0\xb8\x68\xad\x21\xaf\x33\x73\xe9\xfe\xce\x18\x5c\x53\x78\x37\xf9\xf1\xb2\x85\xe3\x71\xa6\xed\x9f\xca\x44\x20\xb4\xd8\x7e\xc9\xc3\xe5\x47\xd1\x2d\xd6\xa9\x94\x04\x7b\x80\x39\xfc\x72\x11\x80\x7b\x8f\xfe\xc2\x3f\x74\x32\x31\xa4\x51\x22\xf1\x2e\xf9\x57\x98\xa9\x54\xd1\x10\x93\x0b\xf1\x29\xc2\x75\xbc\x78\xa7\x3a\xb0\x98\x81\x36\xab\xc8\x72\x8b\xd4\x99\xfc\x3c\x88\x49\x67\x56\x56\x82\x18\x54\x6a\xbb\x01\x02\x5b\xb4\xbb\xd5\xe2\x61\x8f\x5b\xe9\x76\xff\xb4\x7a\x5e\xae\x3a\x10\x64\x0a\x5c\x61\x51\x65\xf3\xf0\xa5\xfb\x93\x60\xdc\x4d\xd5\x1b\xc8\xc1\x64\x2a\x13\xe5\xe5\xc6\x92\x21\xe6\xdf\x0c\x13\xa4\x30\x58\x72\x9e\xe1\xe0\x84\xc1\xc6\xbf\xc9\x24\x21\xf2\x18\xf2\xe6\xf4\x15\x7b\x66\xdd\xec\x34\x32\xc5\xfd\xfe\x6e\xfd\x7d\xb5\xff\x63\xb5\x78\xde\xff\xbe\x5a\x3d\xad\x1f\xbb\x8b\x32\x10\xe1\xe4\xdc\xfc\xee\xfe\xc2\xc3\x48\x60\x6a\xb3\x7d\xdc\x61\xa2\x67\x0b\xaa\x0f\x43\x66\xf2\x07\xff\xfa\x13\xd0\x18\x5f\xe7\x2f\x79\x51\x65\xfe\x4a\x78\x14\xd9\x97\xc8\xa6\x2a\xc8\xda\xeb\x1b\xd3\x3c\x22\xd6\x78\xcd\x01\x82\xd1\x56\x67\x7c\x56\x22\xb9\x18\x72\x98\x16\xf9\xe5\x5a\x82\x6f\x7e\x81\xe1\x54\x59\xd5\xa8\x0a\xe1\x1f\x37\xcd\x65\x46\x24\x90\xf2\x38\x0a\xb0\x0d\x80\x3b\xa0\x13\x7b\x99\x90\xde\x28\x8f\x89\x85\x49\x57\xde\x9d\x92\xf2\x58\x50\x63\x2b\x6d\x15\xee\x68\x88\x1e\xec\x0e\x4a\x0d\x56\x86\x32\xc3\xf6\xd8\xa0\x6a\xc5\x63\xc3\x3b\xc6\x8f\xe5\xe9\xbb\xaf\xbb\x86\xfa\xa5\x93\x7b\x9c\x84\x31\xea\xa2\x7c\x6d\xbf\xd3\x22\xbe\xfc\x11\x96\x22\xef\xa5\xa9\x60\x2f\xf1\x88\xcd\xc0\xe6\x67\x18\x4f\x98\x4e\x7a\x6d\x5c\xac\x7f\x5f\xdd\xcc\x61\x48\xc8\xd3\x90\x23\x46\xea\x47\x51\xbe\x6e\x4a\x3d\x83\x37\xf8\xe8\xdf\x49\xa0\x39\x3f\x79\x38\x63\x9e\xee\x85\x15\x3f\x9b\xba\xdc\x36\xe0\xb7\x52\xce\x53\xeb\x22\x50\x01\x8a\x76\x6e\xbd\x29\xed\xb8\x2f\xe6\x07\xcb\xc8\xea\xcf\xbd\x4e\x5e\x72\x2e\x64\x84\xf6\x14\xeb\xe5\x66\xb0\x78\x4c\x26\x9d\xd0\xd6\xe3\xc2\x2f\x40\xb7\x50\x8b\xec\x78\x65\x35\x37\x5f\xdd\x9d\xd6\x79\xb9\x62\xa1\xf5\x24\xb4\x48\xbd\x87\xdf\x27\xdf\xa6\xc0\xca\x3a\xff\xc8\x0e\x87\xa1\xb7\x0f\xe5\x3a\xb4\x2a\x01\xc5\x19\x72\x38\xcc\x1b\xde\xb4\xa3\xe4\xe8\x15\x69\xdf\x8f\x88\x7c\xf8\x7c\x66\xe2\x4d\xae\x59\x88\xdd\xa2\x87\xc5\xcf\xee\xbb\xa5\x64\xbe\x06\x6d\xb7\xcc\x5d\x81\x02\xc7\xfe\xb8\xe6\x22\xed\x55\x1a\xa1\x30\x93\x06\x46\x3b\xc2\x96\xe0\x8b\x3c\x87\x81\xe6\x08\xe5\xa0\x25\x46\x3b\x47\x51\xd5\x4f\x65\xf6\x5f\xf8\x92\xbd\x75\xbf\x5a\x04\xc4\x20\xce\xcd\xb6\x71\x17\xba\x38\x5b\x5a\x95\x55\x47\xc3\xcb\x66\x7e\x28\x35\xd8\x55\xc8\x4e\xe7\xa2\xac\x51\x8b\x77\x26\xec\xf8\x53\x18\xb4\x7f\x54\x22\x8a\x62\xeb\x71\x81\x6f\x90\x0b\xf5\x86\x32\x5f\x93\xdf\x28\x22\x6a\xe1\xb2\x5e\x68\x71\xf8\xce\x88\x88\x5a\x6d\x51\x4b\x82\x86\xd2\xc1\x1f\xab\xee\xc3\x69\x8a\x14\x8b\xd5\x66\xbb\x9d\xe2\x45\x3d\x95\xf1\x4a\xe1\x2c\x1a\xb7\x7f\x44\x64\x88\x12\x5e\x5e\x34\x3b\x3b\x2a\xcd\x2a\xaf\xbd\xb0\xb3\x0f\x87\x04\xa1\xcc\x9a\xea\xb4\x89\x18\xc1\x97\xc7\xf2\x5b\x3c\x8e\x59\x10\x6a\x19\xc4\xb5\x9d\xf4\xb6\x97\xdb\x13\x99\xa9\x20\x60\x73\x39\x25\xce\x75\x1b\x4f\xbb\x3f\x53\x12\xe3\xbb\xb9\xc7\xee\xfe\xcd\xd5\xd6\x2a\x28\x0b\xd1\x5c\xd5\x9c\x55\xbd\x3f\xb7\xe1\x7f\xbd\xaf\xfa\x30\x47\xc4\xa1\xc6\x17\x6e\x93\x1f\xb3\x1c\xac\xd4\xf7\x60\xc2\x88\x98\xd8\xb2\x85\xbf\xfd\xf7\xc5\x01\x23\xc2\x89\x5b\xc7\x27\x39\xad\x88\x13\x4e\x02\xf7\x2e\x75\x3c\x63\x2a\x62\xa3\xf1\xca\x5e\x04\x82\x77\x2a\x71\x04\xdb\x0b\xe8\x12\x6a\x91\x6a\x2e\x2d\xb1\x41\x16\xbf\xc6\x4f\x98\x73\x1e\x9a\x1e\xe6\x70\x9b\xbd\x65\x1a\xf2\x8e\xcd\x22\x38\xb7\xbf\xcb\xd6\x51\x3b\x67\x58\x77\x54\xc4\x12\xfd\x2c\x6f\x9a\xba\x76\x2d\x92\x3f\xb1\x45\x1c\x2d\x1c\x42\x24\xb6\x63\xfc\x45\x9c\x9c\xdd\x83\x33\x3e\xe8\x77\x58\x21\x12\x8d\x9a\x4f\xcb\xa1\xce\xf7\xdc\xfd\x11\x10\xa8\xf6\x64\xaf\x50\xe6\xdd\xaa\x2b\x24\x15\x29\xb7\x55\xb0\x43\x1b\xb9\x3e\x17\xb2\xa8\xc7\xf7\x40\xc5\x02\x1b\xb9\x0f\x8b\x9f\xfb\xe7\xd5\xdd\xea\xf9\x79\x71\xef\xa2\x23\x7f\x16\x25\x0c\x12\xdb\x41\x95\x96\xe0\x86\x52\x3b\xd9\x61\xdc\xc2\xf6\x83\x8d\x08\x26\x7d\xbf\x6d\x96\xab\x51\x73\x55\xe8\x38\x49\x5d\x76\x8f\x4e\xc7\x43\xa9\x9f\xfe\x9f\xc1\x7d\x80\x30\x88\x43\x8f\xe0\x2d\x2b\x98\x2c\xe9\x6e\x54\x1b\x89\xc7\x36\xdc\x2e\x33\x78\x83\xd5\xf3\x72\xbc\x58\xcb\x80\x68\x42\xfb\x8d\xb3\x4d\x80\x6d\x8b\xae\x19\x09\x49\x8c\x4e\x2b\x83\x34\x45\xf1\xa5\x0e\xd1\x1a\x8d\xb9\x33\x32\x10\x56\x46\x60\x18\xd2\xce\x36\x11\xfd\x78\x15\x63\x80\x68\x1f\x84\x13\x94\x0b\x83\xd1\x83\x91\x01\xf0\xb8\xe7\xb6\x6c\x3b\x95\xeb\xf9\x6b\x0c\x99\x75\x9e\xbf\x2f\x0e\x56\x28\xe5\xf3\x6a\xac\x0c\x13\xa6\x1d\x21\xf0\x33\x7b\x2e\x2a\xc3\x34\xc2\x81\x58\x1d\x99\xa7\x93\xc8\x50\x50\x04\x1d\xdd\x17\x87\x9b\xa2\x39\xbc\x4c\x62\x34\x19\x2a\x8d\x0b\x4c\x56\x3d\x5b\x7f\xf8\xf2\xae\xb8\x8a\x40\xfc\x58\x1d\x72\x33\xab\xe1\xe2\xe4\xe9\xfd\x8b\x2d\x23\x4e\xb0\xcd\x6a\x41\x4c\xab\xd5\xad\xea\x2a\xfd\x32\xd2\x0c\x55\xff\xb7\xff\x78\xde\x0f\xfc\xd6\xa8\x24\x86\xc9\xd8\x7f\xa8\x03\x35\x7c\x7e\xaf\x58\x12\x21\x31\xef\x79\xb5\x5d\x3d\x7f\x5f\xf9\xdc\xc1\x3a\xba\xfa\x13\xc7\xd4\xf8\xe6\xee\x8d\xf7\x33\x79\x28\x34\x22\x19\x7f\x40\x97\x2e\xca\x24\x14\x68\x56\x75\x12\xbf\x5c\xd7\xa5\xef\x4b\xca\x84\x33\x2f\xec\xe4\x5a\x1d\x18\xd6\xae\xf2\xba\x5b\x76\x64\x4a\x38\x26\x84\x35\x42\x84\xbb\xbf\x8a\xd8\xb8\xba\xf8\x1d\xc0\x56\xbd\x80\x6e\x66\x28\xe4\xf3\x3f\x90\x03\xc5\x62\xa4\x2a\xb2\xbe\xaf\x22\x45\x68\xc9\xf7\x28\x8e\xf1\x24\xca\xcc\x83\x10\x7e\x40\x36\x2c\x3d\x4b\x91\xc4\x5c\x79\xd5\xfe\xf6\xb9\x2d\x8b\xd3\xb9\xc8\x7b\xda\xb3\x1f\xa7\x8d\xd3\x90\xab\x9b\xd3\x54\x01\x92\x4a\x19\x44\xd0\xbf\x9b\xcf\xe8\x82\x3b\x83\xae\x97\x32\xb4\xc6\x06\x77\xcb\xcd\xfa\x31\x24\x34\x1e\xbb\x4a\xcc\x52\x5d\xdc\x47\x55\xc0\x51\x26\xd0\x37\xa7\x30\x5f\x07\xab\xc6\xea\x87\xa4\x89\xa5\x71\x3b\x49\xdd\xf6\x87\x5a\x31\x28\xe7\x32\xea\xc7\x19\x83\x57\xbb\x90\xbf\x2e\xff\x2e\x2e\x83\xed\x4e\x6a\x26\x02\xed\xc5\x1e\x8f\x47\x21\x8b\x72\x98\x8e\x4e\x26\xbc\x96\xd6\xaf\xb2\xc3\xe2\x7d\x15\xd5\x1d\x6e\x38\xfd\x54\xd7\x8a\x62\xe5\x5b\x17\xef\xf9\xa8\xfb\x38\xfa\x75\x1a\x48\xe8\xb8\xc8\xe3\x32\x89\xd4\xc6\x1a\xe9\xad\x76\xcb\x8f\x12\xed\xc9\x9d\x02\x66\x10\x97\xba\xd8\xdd\xb7\x49\xf2\x7e\xb1\x7b\xf2\x27\x83\x98\x60\x5d\x47\x34\xf5\x0b\xe4\xb5\xf3\x7b\xb0\x6b\x78\xea\xc7\x24\x09\x72\x81\x64\x51\xe6\x77\xe2\x04\xba\x5d\xbb\x26\xcf\xd1\x18\x81\x5d\x58\xab\x93\xb3\x7e\x5c\xef\xd6\x8b\xfb\xfd\xcd\xfa\xf6\xb6\xcf\x74\x55\xa0\xac\x98\xce\x63\xf1\x26\xda\x7b\xfc\x39\x2a\x42\x85\x41\x8a\x75\x7a\xac\x15\x3d\x83\x2a\x4a\xfd\xdb\xc4\x8e\x66\x74\xf7\x55\x44\x35\x46\xf7\xb8\xb6\x3a\xba\xde\xb6\x6f\x85\xaa\x48\xc6\x98\x57\x57\xee\x8d\x1a\x6a\xcd\x8c\x16\xc3\x6e\x91\x67\x13\x7a\x9e\x22\x81\xf2\xce\x63\x77\x00\xe3\x27\xa3\x08\x00\x1a\x66\xd5\x1d\x5e\xd6\x1f\xa1\xb1\x41\x5a\x1d\x76\x3b\xce\xc7\x02\x15\x9a\x70\x3a\xfe\x01\xd3\x7b\xa9\x28\x0f\x2c\xfa\x2c\xab\x5f\x4a\xf1\x7e\x0b\x6f\xc3\x4c\x44\xb1\xc0\x04\xfe\x05\x7f\x82\x72\xd5\x2d\x47\x8a\x31\x83\x0f\xf3\xfd\x75\x94\xbb\xa8\x58\x73\xe1\xd0\x16\x12\xea\xd2\x5a\x4e\x8f\x56\x7d\x95\x44\x80\xca\x1a\xd8\x90\x2e\x8e\xc7\x41\x79\xc4\x9f\x25\x89\xad\x36\xd8\x83\xf8\x35\x3a\x7b\x1a\x00\xca\xc9\x59\xab\xf0\x1f\x6d\x98\xde\x4d\x76\x95\x1a\x2b\x4d\xd9\xae\x8d\xab\xbe\xd9\xed\x0f\xf3\xf6\xfd\x77\x65\x01\x91\xe5\x13\x54\xed\xe4\xf1\x8a\x38\x05\xab\x61\x76\x3e\x0a\x05\xd6\xc3\x6e\x37\xae\x95\xa6\x7e\xac\x24\x38\x77\x10\x7e\xf6\xd4\x86\x3a\xa7\x53\x56\x9f\x3e\x64\xe2\x2a\x01\x16\xd7\x7d\xe8\xfd\xa4\xbe\x3d\xdf\xcf\x35\xfc\x94\x30\x91\xf0\x44\xb6\x42\x5b\xda\xf7\x78\x84\x66\x0c\x6d\x30\x97\xcd\xb1\x6e\x4a\x71\x6c\x27\xfb\x87\x5c\xb4\x21\x95\x6e\x00\x53\xf9\x1f\x41\xf2\x93\x6b\xd4\x20\x89\xdd\xa5\xd7\xf9\x18\x10\xa0\x20\xa4\xa1\x95\xe7\xaa\xa1\xb7\x2e\x7b\x76\x56\x66\x7f\xc6\xfd\xa7\x0a\x18\xc5\x57\xbd\x14\xb9\x2e\x4e\x93\x79\x64\x82\xce\x4b\x79\xeb\x02\xa2\x6d\x76\xc0\xcd\xf9\x77\xe8\xd4\x25\x86\xe7\xd3\x81\x50\x96\xa9\xe2\xae\xe4\x49\x94\xf5\xc6\x58\x57\xf0\xcf\xa2\x19\x1d\x68\xeb\x2e\x2d\xb4\xde\x95\xcd\x75\xed\x40\x07\xc0\x49\xe8\xd5\x70\x17\xc7\xe3\xb0\x2c\xa4\x43\x99\x68\xd1\xfb\x89\xf6\xc2\x61\x8b\xfc\xd2\x5e\x6e\x7b\xd9\x02\x33\xab\xff\xdf\x27\x32\x88\xa4\x75\x14\x25\x08\x08\x7a\x1a\x7a\xc9\x52\x1d\x09\x83\x39\x6b\x05\xc7\x63\x07\x7f\xf1\xec\x2b\x1d\x41\x84\x0f\xb1\x8d\x03\xed\xcd\x1e\xf6\xaf\x34\x09\x24\xee\x6e\x5f\x4a\x80\xfc\xe7\x47\x97\xe9\x07\x13\x50\xde\x9d\x4c\x66\x65\xfd\xe2\xd4\x25\xe7\x43\x50\x4d\x92\x34\x25\xae\xc4\xb3\x6d\xca\xf3\xb1\xa9\x46\x70\x53\x4d\xa3\x98\xa5\x03\x41\xd0\x76\x8b\x1f\x96\xc2\x35\x8d\xac\xe5\xd3\x16\xea\xe6\xfc\x70\xff\xd7\xa2\x17\xcd\x34\x89\xac\x3d\x3e\x4a\xde\xf7\xec\x5d\x1d\x53\x13\x49\x2f\xb4\xff\x56\xbc\xb6\x5b\xeb\xcb\xdc\xfb\xa9\x63\xa1\x31\xf0\xda\x66\xc7\x4c\x15\xf9\xcf\xc1\x76\xae\x63\xa5\x15\xed\x4a\x25\x07\x18\x88\x61\x51\x1d\x6b\x82\x51\xfa\xc9\x2f\x00\xe5\x71\xdb\x18\xd3\xd1\xfe\x74\x6c\xac\x77\x98\x53\x80\x7c\x11\x79\x9b\x9f\x7d\x7e\xe3\x93\x20\xc4\x08\x07\x37\x85\x4e\xda\x16\x6b\x0f\xe3\xcb\x4e\xa2\x14\xdb\xa7\xeb\x6a\x69\xab\x53\xe3\x57\x4b\x27\x32\x44\xf9\x81\xac\xb2\xf5\xe0\xc9\x64\x4f\x43\x81\x01\xc3\xf2\x58\xbc\xe7\xcb\xa2\xab\x08\xe8\x34\xb2\x4b\xf0\xc3\xf2\x2e\xab\x3f\x5f\x85\xae\x02\x1a\x9d\x52\x8d\x6a\x1d\xbe\xfc\xb6\x7d\x29\xae\x84\xb9\xdc\x50\xee\xcc\x1c\x1e\xd6\x8f\xeb\x87\x6f\x0f\x1d\x33\xc5\xe5\x57\xfb\xf5\xe3\xfe\xc7\x6a\xed\xaf\x8a\x87\x52\x5b\xef\x3b\x64\x37\x6f\xce\x59\x3e\x30\x7f\xfb\xe0\x1b\x22\x19\x7a\xe1\x13\x94\x36\xc8\x3f\x50\x55\xa5\x9a\xc7\x02\x3b\x85\xe6\x28\x0e\xa3\xc0\x55\xf3\x84\xe2\x2b\xf7\x08\xa3\xde\x8c\xe6\x52\x23\x71\xdc\xad\x07\xfd\xec\xea\x1e\x00\x37\x0c\x6b\x04\x43\xa4\xd9\x42\xeb\x2d\x78\xb3\xbf\x8d\xfc\xf7\xe7\xd9\x87\x96\x24\xe1\x61\x2f\x47\x33\x58\x7c\x3f\x22\xb6\x8c\x39\xc7\x5a\xa5\x80\xef\xa5\xa5\xed\x62\x6f\x04\xb6\xb9\xf8\xa0\x97\xa9\x95\x88\x71\x1b\xac\xa7\x16\x49\x54\x2b\xa9\xb0\xb4\xa7\x2d\xd9\xb2\x53\xcd\x1e\x9f\x40\x87\x6c\xd0\x35\xbd\x17\xb9\xad\xad\x8d\x6b\x3d\xa3\xfb\xab\xa3\x18\xa5\x33\xb2\x3c\xab\x7f\xff\x63\x39\xe4\xc3\xf9\x11\x4c\x63\x17\xe6\x3e\xab\xc1\x82\x1c\x27\x4d\xd1\x3f\x5f\x59\xfb\x1b\xa2\x93\x20\x31\xbd\x07\xc2\x3e\x2f\xf4\xf5\x8a\x3d\xbe\x40\x1e\x61\xd2\xb6\x03\x71\x9d\xb8\x68\x30\xd6\x2f\xdc\x1a\xa5\x8d\xf5\x97\xa9\x36\x81\x8a\x75\xaf\xe0\xea\x9e\xfb\xa7\x61\x8b\x36\x61\x27\xb1\xb7\xda\x7d\x7d\x04\xd0\x4f\x62\xde\xe7\x8d\x6a\x13\x87\x5e\x87\xd8\xf3\x42\x26\x6e\xf7\xd3\x0f\xa4\x1c\xc3\x96\x13\x54\x95\x38\xc0\x4d\x21\x4a\x1d\x8e\x27\xbc\x11\xda\xb7\x47\x1d\x7e\x71\x72\x7d\x8a\x22\xb4\x1f\x29\x60\xe2\xf8\x20\xf2\xa6\x52\x65\x76\xae\x27\x1e\x90\x76\x38\x84\x91\x41\xb0\xbe\x7b\x4f\xba\x1f\x3d\xbc\x2c\x08\x13\xc0\xfb\x84\xc6\x96\x37\xcd\x65\x50\x06\x83\x90\x4b\x64\xd2\x7e\x5d\x3c\xef\xf6\x8f\xab\xdd\x8f\xcd\xf3\xef\x3d\x68\x0a\x48\x40\xb1\xcc\xf5\x08\xef\x7f\x14\xe5\xeb\x60\xf1\x06\x12\x71\x2c\xa0\x55\x8d\x6c\x3e\xd2\xd7\xa4\x40\x93\x10\x51\x57\xfb\x0a\xea\x41\x5f\x61\x88\x09\xf5\x23\x53\x1a\x76\xea\x88\xbb\x62\x55\x77\x4a\xec\x9b\xa6\x3e\x37\x7f\x4d\x80\x97\x42\x9c\xa4\x32\xed\xec\x40\x66\x04\x2c\xdd\xb8\x84\x11\xa4\xd7\x3c\xc2\xaf\x7a\xe4\x57\x31\x19\x96\x84\x08\x61\xda\x42\xae\xbb\x98\xe0\x4a\x78\x6e\x7c\x09\x49\x1a\x21\xc9\xe3\xb6\x67\x75\x40\x22\xb9\xea\xe3\xf2\xc5\x9b\xc8\x8e\xd6\xa7\x65\x29\xaa\x97\xa2\xf1\xd5\x06\x48\x23\x22\x48\x27\x33\xf1\xdd\xf6\xc7\xb1\x92\xf7\x3f\x85\x9c\x90\xca\x04\xad\x9b\xce\x58\xc8\x5e\xef\x36\xfb\x77\xc8\x9e\x46\xbe\x19\x14\x52\x08\x2c\x37\xaa\x4d\xd1\x90\xf2\xb4\x18\x67\x9e\xe3\xdf\xc5\x03\x88\xac\x83\xf9\xce\xa3\xf3\x80\x93\x88\x0f\xf3\xfe\x6e\xff\x06\x91\xc8\x20\xf5\x2c\x14\x14\xcd\x56\x4b\x71\x16\x12\x95\x64\x26\x92\x28\x43\xf5\x44\x0a\x42\x70\x33\x58\xfc\x17\xf9\x87\x78\x20\x90\xa1\x17\xf5\xc2\x2a\xec\xb6\x2b\xdb\x80\x8c\x42\x63\x10\x08\x9e\x6b\x28\x17\x59\xa9\xcb\xe2\x3c\xfa\xf5\x92\x86\xa9\x4b\x03\x6f\x82\x5f\x57\x14\x85\xcf\xbb\xba\x20\x29\x43\x70\xc1\xcd\xfd\x66\xf9\xfb\x6e\xfd\xb0\xda\x7c\xdb\xf5\x67\xb6\xf6\x3e\x56\xc0\xbc\x0d\xec\xbf\x16\x4d\x79\x38\x8a\x81\x6b\xd4\x20\x3f\x02\x29\xac\x5c\x9d\x5d\xd7\x6d\x42\xfe\x09\xb3\x11\xa4\x62\xf8\xdb\xde\x8a\x1a\xbe\x4d\x38\x19\xa0\x03\x49\xdd\xcf\x5a\x3e\x8b\xd9\xcf\xeb\x48\x59\x8a\x91\x77\x13\xd8\x65\xc7\x63\x47\xa0\xf7\x83\x52\xce\x83\xee\xa2\x9e\x8a\xe2\xe8\x2e\xa6\x63\xca\x8c\xbf\x17\x82\x88\x19\x1f\xdf\xfb\xa6\x94\x3f\x16\x6a\xee\xac\x42\x07\x76\x58\x14\x80\x5a\x3e\x83\xa5\x75\xde\x0c\x0b\xa1\x7e\x04\xb7\xf9\x91\xd0\xba\x03\x79\xcc\xaf\xbe\x00\xdc\xd8\xcd\xe2\x57\x56\xb9\x09\xf7\xbb\x77\xaa\xbe\x7a\x47\x41\x31\x61\x3b\x88\xf5\xa6\x7f\xfb\x8c\x32\xde\x5e\xd0\x31\x32\xd7\xb9\x29\xca\xd3\x0c\x55\xc3\x04\x34\xc2\xa5\xd1\x3b\x94\x1e\x17\xe5\xe9\x83\x9d\xc4\x04\x71\x84\x60\x3e\x67\xb9\x89\xd9\xf5\x9c\x96\x92\x09\x94\x40\x54\x40\x91\x1f\x2f\x3b\xa8\xea\xed\x90\xd0\x32\x39\x27\x48\xf0\x9e\x09\x20\xce\x45\xfe\x28\x3f\x90\x7b\x30\x61\x48\x85\xc3\x43\x6c\xcc\x0d\xb2\xd5\xcb\x9e\x0d\x65\xc2\x50\x20\xe8\xcd\x3e\x69\x24\xd2\xe5\x97\x39\xf8\xbb\x89\x20\x46\x38\x76\xa6\x3e\x00\x45\x99\xc8\x84\xbd\x98\x17\x34\xa7\x47\x91\x7b\x24\xaa\x21\x3c\x91\xae\x90\x7b\x5f\x14\xb5\x0f\xac\x67\xd7\x71\x43\x74\x2c\x7b\x93\xd5\x95\xd5\x9b\x47\x99\xfa\xf9\x5b\x4c\xb4\x46\x80\xff\xfe\xd0\xd9\x89\xfb\xef\x65\x81\x95\x19\x3f\x40\x3d\x6a\xe8\xbb\xc3\x31\xe1\xb6\x92\xd1\xe4\x91\xff\x48\x2c\x84\xff\x08\xc2\xce\x9d\x8c\x77\xdf\xd1\xe8\xbf\x38\x21\x11\xf7\x5e\x5e\xf5\x35\xc5\xd8\x24\x54\x1a\xe7\x24\x36\xf0\xc0\xf1\x5f\x94\x24\x12\x4b\xed\xff\x2e\xb2\xfc\x8b\xe8\xb0\x10\x86\xc7\x02\x8b\x16\x87\xec\x0d\xc4\xbb\xb8\x0c\x24\xd9\x8c\x48\x89\x72\x68\xbf\x6e\x4b\xdd\xfd\x9a\xfc\x2a\xc1\x03\xc4\x1d\xdd\x82\x6e\x54\xbd\xb8\xd9\x7e\x70\xdf\x84\xa2\x4c\x8f\xaa\xeb\xf3\x91\x93\x91\x81\x44\x88\xe5\x59\x5c\x36\xd7\xbb\x71\x37\x48\x63\xe7\x16\xf3\x2b\xc4\xf2\xfa\x8b\x96\xdc\x75\xaf\xac\xfa\xa1\x13\xbc\xf7\x07\xc1\x6a\x5b\x6b\x78\x1b\x04\x81\xf3\x33\x4c\x82\x0c\xf9\xc0\xae\x75\x0c\x78\x19\x46\x47\x46\x31\x6b\x4b\xda\xc6\x27\x3f\x20\x1b\x69\xbf\xb9\x21\x5a\x2a\x5c\x4a\xbf\x67\xf0\xee\xbb\x94\xed\x5a\xb7\xea\x0b\xd7\x06\x4c\x82\x78\xc0\xc5\xd3\xf2\xb3\x4e\xa1\x31\x71\x80\xd2\xcc\xdf\x9e\x6f\xfc\x47\x4d\x9a\x62\x1a\x66\xd3\xb5\x0f\x0b\x5e\xc6\xe8\x50\xf6\x66\xa2\xdb\xba\xdd\xcc\x0e\x1f\xf4\x25\x27\x80\x91\x11\xc4\x62\x98\x23\xb1\x20\x70\xd1\xe1\xc1\xa9\x27\x0e\x91\x7a\x2c\x08\x48\xe0\x0b\x91\x0f\x97\x49\x87\x96\x05\x01\xb3\xc4\x8a\xe5\x66\xfd\xf8\xfd\xb9\xfb\x2b\x67\x29\xf5\xe1\xeb\x40\xe7\x83\x05\x81\x12\x58\x08\x15\x55\x95\x1d\x72\xa7\x2b\x3b\xf7\x63\x59\x10\x68\xed\x34\xd0\xdb\x35\x26\x3f\x20\x08\xa8\x18\xcc\xa9\x2b\xcf\x0b\x16\x04\xce\xd2\x55\x36\x17\xd4\x37\xb2\xab\xd3\x28\x24\xe8\x7e\x76\xc8\x19\xe2\x91\xcf\x45\x71\x1c\xda\x6f\xb8\xc3\x51\xa0\x30\x05\xd0\xe2\x52\x3d\x64\x79\x53\x43\xb5\xcb\x8e\xc8\xbe\xba\xf4\x70\x24\x16\x44\x2c\x8e\xac\xe7\x41\x79\xea\x6e\x4b\xa4\x25\x4f\x7a\x1f\xc8\x61\x70\xcf\x02\xd2\xae\x7f\x7d\x9f\xc5\xf2\x27\x70\x2e\xdb\xe9\x3e\xcf\x7f\xf4\x1f\xd6\x04\x97\xfe\x87\x4b\x3b\xff\x46\xc5\x6c\x16\x10\xe0\x34\x1d\xd2\x7a\xac\xb2\x62\x0d\xbf\xea\xbd\xf3\x1d\xdc\xdb\x50\x6f\x72\x45\x60\xb8\x5b\x72\x97\xed\x94\x2a\xca\xcb\xea\x4d\x1c\x9b\xd9\x17\x6c\x36\xa2\x66\x01\xe5\xcc\x50\x5f\xd9\xeb\xc3\xe9\x3e\x0c\x63\x01\x55\x12\xcd\x38\x5c\x6b\xe7\x06\xba\x9b\x4d\x41\x78\xdf\x69\xcb\x93\x73\x7f\x6f\x4f\x4b\x7c\xb4\x3f\x10\x2d\x1e\x7f\x35\x53\x21\x46\xcd\xed\x79\xff\x2e\xd4\xeb\xb9\x68\xcf\xed\xd3\x13\x16\xc4\x84\x31\xe5\xcb\x50\x76\xb3\xee\x0e\xd1\x00\xed\x89\x6e\xb2\x5a\x15\x59\xfe\x7d\xe0\xf5\xc6\x82\x98\x05\xdc\x79\x54\xba\x10\x1b\xbb\x14\xb3\x02\x97\xee\x23\x49\x64\xbd\x59\x51\xf8\xc7\x4f\x58\x77\x2c\xe5\x84\x5f\x31\x92\x3f\xf4\xa5\x62\x01\x97\x21\xb6\xfd\x6b\xa8\xea\x31\xfd\x1b\x8f\x61\x4b\xfc\x98\xbd\x7e\xe8\x08\xf0\xb7\x19\xdb\x46\x16\x88\x80\xe2\x73\xd2\xa2\x16\x4f\x50\x7e\xab\xb4\x3f\xa7\x20\xd6\xad\xec\x3c\xd0\xd5\x9a\x7f\x35\x25\x09\xe2\x61\x85\x69\xba\x25\x4c\x46\xc7\xac\x67\x30\x60\xf4\xf6\x6f\xe1\xa1\x08\x2c\x90\x49\x18\x79\x35\xd2\x7b\x4f\x68\xaa\xee\x8a\x72\x67\xb7\x80\x6e\x9c\xb4\xde\x15\xed\x1c\xed\xda\x9b\x7f\x25\xcb\x61\x81\x92\x69\x6a\xcd\xfc\x32\x65\xd5\x1d\xcf\xc7\xac\x5f\x93\x34\xb5\xeb\xbf\xb5\x22\x7b\xf2\x64\xef\xab\xd4\x86\x05\x40\x52\xd5\x3e\xc1\xb5\x1c\x7a\xdc\xb3\x00\x52\xbb\xb9\x57\x50\x6f\xeb\xe2\x7c\x06\xdd\x27\xcf\x2c\x30\xb1\xc4\x5e\x78\x07\x30\x9b\x28\xa8\xb5\x23\x34\x71\x20\xa4\xf6\xeb\xa7\x16\xe0\x2c\x30\x89\x42\xb2\xfc\x40\x69\xc8\x1b\x3a\xb3\x30\x88\x92\xc0\x2b\x2c\x3e\x43\x8e\x68\x96\xae\x96\xc8\xc2\x80\x10\xed\x8a\xb0\xbb\xe6\x7c\xec\xfe\x1e\x72\xab\xfa\xf9\xf4\xed\xe6\x7e\xbd\xdc\x6f\x17\xf7\xab\xed\xde\x3b\x7f\xed\x57\x8f\xb7\xdd\x40\x09\x88\xf0\xf4\x73\x70\xbd\xdc\xac\x44\x99\x67\xb9\x17\x69\x62\x61\xa8\x14\xe6\x91\xb7\x8b\xf5\xfd\x1f\x7d\x15\xf1\x7e\xfd\xe0\x85\xe0\x59\x18\x9a\x18\x4b\xbc\x76\x1a\x34\x17\x6c\x34\x60\xa1\xe6\x4a\x0b\xbe\x7b\x74\x21\xa5\x56\xad\xd9\xee\x78\xdf\x2a\x28\x6f\xb2\x62\x46\xcc\x9b\x85\x4c\x86\x58\x2c\x47\x76\xcb\xe8\xee\x85\x4c\x02\xe1\x83\xba\xf7\xa3\xf8\x00\x3a\xcc\xc2\x38\x91\x51\xec\x29\xff\xe2\xd8\xce\xc1\x71\xa3\x88\x85\x49\x60\x10\x4c\x81\x51\x9e\x07\xbc\x2e\x0e\xc3\xe9\x38\xfe\xfa\x24\x64\x38\xc3\xa1\x69\xb3\x3c\x71\x92\xdd\xba\x17\x26\x52\x61\xdd\x43\x89\xa3\x7a\x2a\xb2\xbc\xde\xbe\x88\x53\xf6\xd7\xa4\xb6\x58\x98\x46\x12\xc5\x64\x11\x1a\x32\xc1\xdc\xb2\x30\x65\x21\xe6\x44\xa6\x28\xdb\x5d\x76\x9e\x8d\x36\x39\x23\x0f\x22\x5c\x49\x8d\x33\xdb\x1c\x85\xa1\x2c\xe4\x24\xc2\xdd\xbe\x0d\x62\xdb\x67\xe1\xc1\x85\xc3\x82\x1b\x0b\xb9\xd4\x6a\xac\x89\xb0\x7d\xb8\xbf\xde\xd2\xfc\x68\x63\xf9\x21\xe2\x58\x43\xf9\x25\x7b\x83\xdf\x45\x79\x12\x53\xf5\x48\x16\x0a\x69\x3b\x27\x4e\xbe\x5a\xfc\xda\xfd\xfa\x22\xaa\xc9\x20\x15\x59\xff\x85\xaa\x86\xf3\x26\x1f\x49\xb7\xb1\x50\x39\xbf\x03\x67\x39\xbc\x0f\xa3\xd1\x2e\x18\x62\xcc\x8c\x45\x1c\xd5\x94\x59\x9d\x41\xb5\x27\xfe\x37\x41\x68\x6d\xec\x54\x09\x30\x94\x75\xfd\x8b\xfd\x25\x7f\x16\x2d\xb0\x1d\xb0\x78\x58\xfa\x13\x1b\x26\xac\x54\xe1\xea\xe7\xc3\x27\x38\x0a\x3b\x3a\x8a\x88\x45\x99\x5d\x37\x26\x6e\x2e\x5b\xc8\xa7\x1d\x06\x16\x11\x26\x02\x3a\x90\x56\x1d\xfa\x32\xb2\x88\xc6\x56\x48\xfc\x3f\x0d\x94\x17\xd7\xae\x72\x87\x58\x40\xe2\x8e\x0f\xf8\xa3\x14\xe7\x33\x94\xe3\x68\x23\x62\x2c\xc0\x9e\x2a\x5e\x76\x1b\x8d\x7c\xda\x55\x61\x11\x13\x02\xa9\x37\xca\xfb\x82\x09\xab\x1e\x94\x0d\xa4\xaf\x59\x14\x07\xe0\x45\x07\x5d\xb3\xc6\x57\x37\x46\x77\x22\x96\xd6\x3f\x61\x8f\xac\xc1\xee\xc3\x2a\x40\x5c\x5b\xf3\xd6\xff\x85\x22\xd3\x7f\xaf\x21\xbf\x38\x53\xb6\x2d\xa8\xb2\x7b\x07\xa3\x58\x13\x12\xf9\x7c\xf3\x90\xa9\xf1\x94\x8a\x62\x10\x1e\x3d\xf0\x20\x7e\xb5\x21\xd4\x33\x08\x5d\x3d\x41\x89\x4a\x17\x6e\x54\x1a\x28\x2b\xdb\xdf\xd9\xb6\xdb\x3a\xff\xfc\x32\x13\x71\x11\x24\x8e\x3a\x37\x2d\x44\x5b\x18\xc7\x74\xbc\x06\xcb\xc1\x6e\xe4\x26\xff\x5a\x1c\x27\xef\x7a\x24\x08\x8b\x5c\xf0\xb5\x18\xc4\x5d\x03\x52\xd6\x44\x79\xf6\xe3\x25\x37\x12\xcc\xe0\x1c\x43\xad\x69\x0b\xb9\xf5\xbf\x52\x24\x56\x2c\xb3\xb3\x39\x08\x27\xd3\x4d\x24\x90\xc6\x7e\x7e\xda\xe8\x1e\xf4\xe2\x57\x06\xd5\x60\x43\x8c\x24\x49\x55\x9f\xc6\xb4\xa1\x55\x51\x2e\xce\xe7\xa3\xab\x27\xba\xa4\xef\x13\x6a\xf8\xec\xbb\x21\x99\x42\x03\xdb\xbd\xd0\xfa\x1e\x0e\x59\xfd\x2c\x26\xcc\x69\x16\xc9\xc4\xce\x9a\x9f\x3b\xbf\x2d\x45\x32\x15\x81\x83\x42\x7e\xcf\x72\xb8\x88\x52\xaf\xda\x0b\xaa\x60\xe8\x1b\x31\xba\x6f\xb3\xdf\xce\x81\x06\x03\x86\xb9\x4d\xe5\x2c\xc1\xdc\x0d\x51\xed\xec\xf4\x05\x4b\x27\xfb\xac\x06\x52\x0c\x6e\x18\xd0\x18\x6b\xc9\xa6\xa9\x9b\xd2\x12\x0b\xed\xfa\xea\xe9\x95\x6e\x9c\x49\x42\x0c\x5b\x4e\x17\x2b\xcd\xdb\xfd\x9d\xdb\x5a\x7a\xd5\x79\xd0\xf7\x0d\xc4\xd9\x17\x93\x04\x01\xb5\x74\x49\x9c\xb2\xee\x43\xd8\x4c\x9b\x83\x1b\x32\x12\x24\x32\xb0\x7a\x5d\xd9\xc0\xf7\xf3\xb7\xc9\x49\xd3\x04\xcb\x45\x7f\x5f\x3c\x7e\x73\x48\x56\x46\x42\x00\x14\xc0\xc9\x94\x35\xb8\x0d\xfd\x81\x28\x20\x41\xd0\x59\x7b\xda\x1a\xb1\x3c\x3a\x39\x82\xc5\xe3\xd3\x6a\x3b\x39\x7d\xc4\x63\xa4\x3d\xef\xd5\xcb\xeb\x16\x8e\x47\x28\xef\x4f\xf5\x3c\xea\x80\x91\x48\x1b\xef\x35\xb7\x2c\x85\xa9\xe7\x7b\x40\x7e\x30\x50\x04\xf3\xfb\x27\x69\x31\xb4\x73\x85\x38\x46\x88\x0e\x30\xb6\x72\xfa\xe7\x15\x94\xf7\x22\x3f\x2c\x6c\xf5\xfa\xb7\xf1\x5d\xa3\xa9\x85\x4b\x56\xcd\x69\x63\x7e\x40\x76\x78\xf1\xc2\xaf\x8c\x50\x1e\x07\x71\x57\xe1\xbc\x05\xa1\x77\x4d\xe9\xba\xcd\xa1\xff\x15\x2c\x8a\xb1\x0b\x7a\xf3\xed\xff\xfe\xcf\x7f\x90\x91\x84\x3b\x30\x8e\xbf\x6f\x5f\x44\x85\xe6\x48\x7d\x69\x8f\x11\x16\xcb\x44\x7b\x02\x33\xb2\xae\xf6\x9d\x09\x6b\x7b\xd4\x40\x0f\x19\x76\x5b\xff\xe7\x91\x02\x61\x3c\x40\x92\x99\x76\x0a\x35\x1e\x2a\xe8\x0e\xc7\x34\x42\x18\x87\x29\x4a\x05\xda\xca\xbb\x7c\xf0\x70\x62\x45\xb0\xd7\x8d\x52\x5b\x4f\x68\x98\xfd\x5e\x8c\xdf\x09\x92\x04\x3c\xf0\x15\xd7\xbe\x29\xf2\x3a\x52\xb6\x64\x24\x61\xc2\xe7\x79\x5f\xb3\xc3\x0b\x94\xeb\xbc\xaa\x07\x3b\x16\x49\x14\x41\x02\x2c\x06\x4c\x6d\xb2\x61\x79\x32\xdd\x61\x37\x4d\xac\xa9\xe9\x7b\x56\xd7\x50\xae\xf5\xda\x3c\xb6\x7b\xbe\xde\xbd\x40\xbe\xad\x41\x1c\x97\xa2\xd4\xed\xcd\xee\x46\x5c\x71\x45\x9a\x59\x9e\xec\xe4\x27\x41\x48\xc2\x21\x7f\xf0\x41\xd4\xea\x05\x73\xcb\x7d\x17\x2c\x85\xb4\xaf\x00\x84\xa9\x2b\xd7\xfe\x33\xfd\xd7\xdf\xae\x14\x10\xaf\xff\xeb\xbe\x27\x25\x0c\x73\x93\x65\x71\x86\xa3\xf0\x14\x50\x46\xd2\x44\x60\x94\x26\x9b\x0b\x1d\x04\x67\x1f\x96\x8b\x3e\xfc\x02\x2e\x02\xec\xf0\x6f\xb7\xb7\x6e\xd1\xf3\x30\xe0\xf6\x58\x84\xe1\xb4\xa8\x2a\x28\xeb\xd5\x7f\xc2\xc0\x41\xcd\x83\xbf\x8d\xfe\xed\x5e\x12\xc1\x25\x72\x98\xad\x1e\xe8\x13\x94\x4b\xc8\xfb\xd7\x44\x08\x40\x1a\x99\x7a\xda\x75\x7f\x92\xd6\xc4\xb6\xaa\x8b\xb3\x25\x61\xf7\x1b\x0d\x91\x51\x8c\xd0\xce\xce\x41\x65\xef\x3f\x26\xa9\x90\x36\x2e\x3a\x9d\x9a\x3c\xab\x2f\xd3\xae\x32\x23\x92\x5b\x58\xcb\xd9\xaa\x29\xf4\x3c\x0e\x46\xa4\x8c\x91\x32\xb4\xaa\x5f\x6e\xb2\x5a\x74\x7f\x56\x71\xe0\xed\x2f\x31\xcd\xf4\x19\x5f\xb7\xcc\x49\x00\xec\x1c\x64\xd5\xc6\x29\xc9\x87\xee\x88\x8a\x43\xbb\xb5\x1e\x45\xf5\x32\x31\x6d\x60\x44\x09\xa2\x7c\xe8\xea\x2c\x81\x27\x06\x2e\xe3\xca\xe6\xdf\x06\x37\x41\x01\x67\xae\xd3\xb3\x39\xbb\x9a\xf7\xfc\xca\xa7\x25\x60\xf4\x74\xb6\x61\x52\x9f\x22\x13\xe0\x31\x91\xde\x7e\xb6\xfc\xa0\xf8\x41\x4c\xa8\xa4\x2f\x12\x67\xfa\x2a\x84\x27\x26\x8d\x02\x2f\x14\x2e\xca\xcc\xdf\x37\x1a\x2a\x81\xc5\xe5\x9b\xcd\xe3\xb7\xed\xfe\x69\x89\xb8\x93\xf5\x72\xf3\xb8\xfe\x07\xa6\xa5\x7e\x5c\x14\x68\x5b\xba\x28\xc5\xfb\xae\x18\xf2\xf2\x87\x8d\xd6\xee\xfb\x68\xc4\x98\x15\x26\x13\x55\x91\xdf\x34\xc6\x4c\x85\x31\x18\x25\x86\xeb\xb8\x17\x2b\x7d\x82\xd2\x64\xb3\xed\x34\x46\x29\x89\xd1\x98\x27\xcb\xdb\x7d\xb2\xf2\x84\xe6\xd9\x9c\x8f\x52\xb0\xf2\x12\x4e\x89\xd4\x46\x85\x13\x81\x79\x46\x59\x2c\x55\x3c\x4a\xeb\x45\x48\xdb\x8d\x77\xef\xce\xea\x2f\x93\x25\x29\x96\x68\x6d\xc4\xd4\x81\xb7\x3e\x45\xae\x30\xca\x00\x22\x24\x1c\x37\x55\x5d\x9c\x66\xca\x4e\x6e\x5c\x1c\x50\xe1\x7a\x13\xfb\x81\x88\xbb\xff\xf2\x98\xc5\x9a\x75\xde\x57\x98\x11\xff\x4f\x69\x0f\x8d\x95\xb5\x85\xb5\x21\x7d\x9b\x86\x40\x69\xed\x85\xc7\x13\x84\x26\x91\x60\xe0\x2a\xf1\x36\x7a\x74\xdb\xee\x67\x3d\x87\xf6\x63\x46\xf5\x22\xf7\x1d\xce\xe7\x03\x32\x33\xa3\x49\xa2\x49\xe2\x4b\x49\x47\x67\x3a\x3b\x7e\xe3\x68\x4a\x38\xbe\x8f\x77\xab\xd5\xfe\x76\xf5\xdd\xff\x59\xc4\xd2\x38\xb1\xfd\xaf\x27\x35\x3f\x51\x84\x0a\xa8\x7b\x0d\xf6\x27\xd4\x27\x1f\x47\x02\x54\xe8\xc8\x49\xf3\xd5\xce\xbb\xc0\xa3\x6b\xdb\x63\xcc\x4b\x3f\x1d\xc4\x09\x94\x28\x75\x96\xd7\xe5\x64\x43\xa4\x32\x88\xc0\x85\x60\xbb\x62\x69\x81\x77\x37\x17\x8f\x3f\x99\x5c\x90\x0c\xe2\xae\xca\x30\xc3\xe1\x65\x54\x05\x04\xe1\x35\x8f\x9b\xcd\xf3\xb0\xb0\x45\x55\x24\xb0\xf5\x9f\x9d\xb0\xc7\xde\xee\x7c\x9f\x2a\x21\x31\xaa\x68\x12\x59\x22\xad\x38\x40\x6f\xd2\xc8\xa8\x4a\x02\x44\x10\xed\xbe\x8f\x49\x80\xed\x11\xab\xfd\xbd\x77\xae\x4f\xcb\xa2\x38\xea\xe2\x3d\x9f\x5e\x64\xaa\x50\xb3\x0b\x4e\x59\xbd\x98\x00\x59\x26\x71\xea\xf4\x9a\xc0\x9a\xb7\x29\x91\xf7\xf1\xaa\xbb\x11\xb3\x31\x09\x55\x60\xd4\x50\xe5\x7d\xbe\x78\x72\x5d\x9e\xa7\x5a\x31\xcc\x16\x9f\x57\x5f\xd6\xdb\xdd\xf3\x62\xb7\xde\x3c\xee\x97\x1b\x6f\x13\xcb\xa8\xd6\x96\xcb\x54\x1d\x33\x05\x74\x06\x0b\xc9\x28\xb0\x94\x88\xb1\xef\xe4\x87\xfa\xdb\x33\x97\x60\xa8\xc6\x25\x6d\x07\x55\xfd\x1d\x4a\x64\x46\xf8\x3a\x06\x0b\xc2\x04\x37\x35\xd4\xf8\xbe\x6c\xb3\xc3\x10\xa9\xe2\xdc\x1f\xfb\x47\x3b\xee\x9b\x4c\xef\xee\xf8\xae\xcf\x27\xfd\x2c\x20\x1a\xfb\xfd\x67\x71\x19\x97\x0f\x58\x10\xc7\x0e\x47\xdb\x2b\xe4\x7f\xf4\x0d\x93\x73\x9a\x80\x3a\x30\x37\x22\x62\xef\x0b\x25\x8e\x23\xc4\x12\x63\x61\x90\x22\x67\xe8\xef\x9b\xfb\xdb\xd5\xe2\xc1\xef\x21\x2c\x4c\x8d\x7d\x40\x16\x7a\xe0\x5e\x1d\x44\x26\x9a\xab\x7c\x91\x85\x26\xc6\x76\xe4\x5e\x34\xf5\xcb\xfe\xd4\x59\x8e\x31\x16\xa5\xd4\x5a\xf9\x66\x87\x7c\x57\x36\x70\x2c\xde\xe0\xe6\xb2\xdc\x6c\x26\x08\xac\xd1\x4a\xcb\x48\x14\x6a\x27\xe4\xf2\x65\x58\x84\xfc\x73\x7b\x98\x6b\x72\x7b\x37\x61\xda\xb8\x36\x70\x77\x12\x7d\xc1\xa6\x26\xe5\x8c\x11\xa1\xb1\x04\x6d\x30\x97\xb1\x7c\x9b\xf1\x2f\xa5\xd4\xf8\xf2\x3a\x1e\x5e\xe4\xba\x8b\xb4\xa7\x43\x13\x86\x2f\xe2\x33\xa0\xaa\xed\x5c\xd1\xaa\x19\xe8\xac\x4e\x1e\x1e\x95\x02\x4b\x04\x65\x1b\xac\xed\xe5\x1e\xc3\xfe\x7d\x2f\x2c\xcc\x18\x35\xa9\xec\x79\x48\xb7\x70\x8b\xf5\x6c\x71\x98\xb5\x49\x67\x8c\x85\x0c\x65\x4a\x96\xe2\x9c\xd5\xe2\xe8\xfc\x2f\x3f\x52\x7d\xfd\xff\xb4\xe0\xf1\xdf\x15\x33\x9c\x79\x85\x31\x9d\x9e\x3d\x63\x71\xc4\x83\xb0\x23\x98\x74\xdc\x2f\x7f\x94\x18\x1b\xe8\xdb\xec\xba\xb9\x86\x99\x31\x16\xab\xd4\x30\x2f\x37\x54\xbd\xac\x6f\xe7\x33\x6f\x96\x44\xd2\xd9\x73\x16\x15\x60\x5a\xef\xbf\x25\x8d\xa2\xc0\xef\xb1\xce\x51\x4a\x6f\xeb\x46\x43\x5e\x2f\xea\x6b\x7d\xd8\xf6\x03\xd6\x19\xbf\x0d\x9c\x1f\xb2\x2e\x89\x62\x22\x49\x22\x3d\xa2\xc0\x59\x2c\xce\x68\x1e\x0b\xc5\x51\x6b\x1e\xf7\xda\x9b\xe6\x78\x1c\xda\xea\x32\x26\x93\x04\x1d\xe6\xce\x9d\xc0\xfc\xb2\xcb\x09\x98\xe4\x06\xb7\xc7\xdb\xf5\x76\x89\x20\xe3\xa7\xe7\xf5\xf7\xc5\x6e\xb5\x7f\x7a\x5e\x0d\xa2\x3d\x26\x55\x60\x3d\xa3\x6f\x57\x3f\xbb\xbf\x69\xc5\x8c\x6f\x54\x9e\xce\x22\x3b\xe4\x98\x31\xa1\x78\xcd\xf8\x56\x29\x2a\xd0\xcb\x7d\x7f\x26\x1a\x15\x59\xfa\xd8\x6f\x7c\x23\x14\x4f\x03\xd3\x29\xc7\x59\xaa\x9f\x5d\xd1\x46\x3f\x59\x71\x95\xba\x4a\xaa\xc9\xca\xd3\x50\x02\x91\x31\xa5\x08\x42\x3a\xff\xbe\xdd\x3c\x9e\x45\xfd\xb2\x2f\xc5\xfb\x5c\xa8\xc5\x74\x68\x90\x38\xb1\xfa\xf2\x65\xbb\xdf\x6d\xf6\x5f\x17\xbb\xe5\xd7\x7d\x78\x5b\x8a\x43\x97\x79\x30\x88\x23\xd1\x07\x8f\x73\x3c\x09\xc6\x20\x89\x98\xec\x25\xa8\x06\x14\x3a\xc6\x40\xc5\x58\x05\x7f\x6f\x23\x49\xb4\xf7\x69\x06\xae\xbe\x78\x9c\x27\x3d\xfe\xb6\xfb\x98\x56\x08\xa8\x73\x4e\xbd\xf8\xf6\x55\xbb\x62\x4e\xfd\x88\x31\x03\x2c\x45\x09\xac\x6a\x51\x55\x85\xca\xae\x4c\xf5\x58\x1c\x98\x98\xc7\xbd\x8a\xd2\x73\x31\xd0\x48\x1a\x3d\xab\x38\x94\x80\x17\xec\xe1\x8c\xf8\x85\x7e\x53\x68\x53\xed\x65\x81\x99\xbc\x77\xf5\xf8\xb3\x96\xf4\xf8\xad\x8d\x43\xb0\x34\x84\x4e\xc8\xa4\x2f\x2d\x8d\xe7\x42\x1c\x89\x30\x0a\x47\xb6\xf4\xd3\x01\x1a\x02\x7b\xdb\x6d\xa4\xe5\xdc\xec\xe6\xc3\x88\x76\xb4\x67\xd6\x2c\x8c\xc9\x8e\xed\x5d\xea\xe8\x11\x2c\x26\x81\x15\x4e\x5e\x1c\xcf\x90\x2f\x45\xf5\xd2\x1d\x60\x94\x76\xbd\xce\xe6\xdc\x61\xec\xdd\x61\x16\x2b\xe5\x4e\xfb\x63\x00\xae\x88\xe3\x58\xe2\xdb\xe1\xdc\x61\x86\xd6\x54\xb3\xec\x3b\x16\xc7\x89\x4e\x07\xed\xb5\xed\xed\x8f\xd5\x7a\xf2\x8b\xe3\x54\x70\x6b\xf6\xfe\x02\xea\x75\xd0\xda\x9f\xac\xc3\x71\x12\x18\x84\xda\x7f\xcf\xaa\x46\x1c\x97\x2f\xc2\x5b\xb6\xf9\xe3\x2a\x80\xa1\xe0\x8b\x2d\x81\x4d\x4e\x92\x26\x56\x3c\xbc\x43\x2c\x6d\x51\xd8\x6e\xcc\x17\x9b\xdc\x65\x9e\xda\x90\xf3\xbe\x38\x6c\xa1\x7e\xca\x54\x51\x59\x8e\xdd\x34\xbf\x88\x45\x20\x50\xd1\x46\x66\x67\xd0\xe2\xf8\xef\xa2\x7b\x14\x82\x32\xe6\xcc\x61\xee\xb3\xbc\x73\x01\xfe\x67\xf4\x2f\x3f\x20\x8e\xfc\x3d\xf7\x08\xc3\x0f\xaa\x8d\xb1\xe0\xd6\x87\xcd\xc7\x6f\xfb\xab\xca\xd7\x68\x4d\x88\x65\x94\x22\x44\xd0\xaa\x1c\xf8\x2b\x92\x09\x4b\x10\x99\xf0\xb0\xef\x3c\x1a\xda\xbf\x26\x08\xdb\xec\x54\x35\x5d\x00\x93\x4d\xe7\x88\xd4\x21\xf5\x16\x9b\x16\x95\xe6\x97\x87\x58\xe9\x84\x3b\x0e\xd6\x23\xbc\x2f\x8b\xa6\xac\xb0\x53\xd6\x6b\x63\x7c\x52\x66\x8f\x75\x14\x21\x96\x36\x37\x13\x63\x23\x16\x6b\x88\x41\x77\x82\x61\x6d\x64\x36\x88\xf7\x62\x20\x41\x9c\x0e\x60\x46\xb7\x45\xde\x9b\xda\xb2\x18\x84\x35\x5b\x3b\x8b\xa6\x02\xa7\xf8\xd5\x1d\x33\x42\x5a\xd7\x64\xf5\xda\x95\xfe\xfc\x41\x13\x25\xdc\x21\x4a\xb3\x43\xbe\x79\xcf\x6d\x65\x04\xd5\xe2\xec\x90\x24\x48\x35\x13\xdd\x02\xf0\x59\xe4\x9f\x84\x69\x8f\xd3\xb3\x2b\xc0\xae\x58\x95\xe2\xd8\xe5\x56\xfe\x36\x26\xa1\xe0\x98\x34\x7d\x15\xef\x22\xcb\xba\xbf\x6a\xab\x26\x63\xcd\xb5\xf4\x00\x6b\x92\x84\x10\xa3\x01\x11\x6a\x17\x62\x8b\xfe\xa6\x31\xa6\x3f\xaa\xa5\xab\x80\x7b\x8c\xed\x97\xb2\x68\xce\xd5\x50\xed\x8c\x25\x51\xc0\x50\xd1\xac\x86\xaa\xee\xa5\x1b\xfc\xc1\xc8\x86\x42\x6d\x20\x98\xe5\x75\x65\xed\x9c\x47\xbf\x76\x3a\x13\xfb\x90\x39\x89\x88\x44\x49\x52\x3b\x0f\x31\x3e\x9d\x8d\x82\x92\xc8\x68\x2f\xc9\x65\x65\x13\xdb\xbc\xb0\x1a\xd2\xb3\x59\x42\xa5\xd2\xf6\xa9\xdc\x17\x42\xff\xcc\x87\x67\x1b\x2d\xfe\x09\x13\xc6\x5b\xac\x6d\x1b\x69\x69\x0c\x28\x39\x58\xbe\x65\x0a\xa6\xfb\x7a\xc2\x8c\x6d\xd7\x39\x18\xaa\x8b\x02\xc6\xcb\x48\x12\x47\x91\x55\x2b\x79\x83\x72\x5b\x8b\x57\x58\x1c\xe0\xa6\x29\xfd\x9c\x49\xe2\xc4\xa0\x0a\x01\xa2\xce\x7b\xbc\xb9\x35\x3e\x18\xa3\xcd\x07\x10\x59\x96\xc4\x5a\x21\x83\x0e\xeb\xe8\x58\x9b\x1a\x61\x1c\x92\x84\x19\x5f\x81\x76\xc1\x53\x2f\x06\xe7\x87\xa4\xb6\xf8\x70\x2e\xdb\xb8\x68\xd4\x39\x4f\x92\x14\x8c\x63\x64\x6f\xbf\x0e\x27\x79\x92\xa4\x26\x48\x86\x3a\x5e\xfa\x0d\x6d\xf0\xf4\x6e\xb1\xb9\x2f\x0e\xc5\x87\x78\x74\xff\x79\x2e\x91\x72\x93\x9d\xc4\x01\xbe\xa1\xc5\x3d\x7a\xc4\x40\x5f\x44\xfa\x67\x18\x4f\x7a\xf3\x49\x22\x2c\xc0\x40\xf8\xae\xa6\x35\x7d\x76\x8f\x66\x72\xcf\x13\x9d\xa4\x6e\x09\xfd\xfb\xd3\x1f\xcb\xc9\xd1\x34\xe6\x28\x63\x61\xb2\xdc\x33\x3f\xa7\xae\x6d\x93\x4b\x4e\x41\xc5\xaa\x33\xe4\x47\x0a\x93\x77\x6d\x09\x83\xe0\x5f\x7e\x94\xa1\x28\x28\x32\xaa\x1d\x7e\x7f\x5e\x6d\xec\xd3\x41\xb9\x90\x7d\xe4\x6f\x23\x37\x1c\x7a\x9d\xc8\x9b\x2c\x17\xe5\xd8\xcf\xbc\x1d\xa2\x71\xef\x75\xb4\x82\x47\xf8\xe5\x02\xe0\xf1\xd5\x89\xc0\x2e\xcf\x28\x66\xe7\xbe\x7c\xf5\xbc\xef\xc5\xec\x58\x22\xc2\xc8\xf8\x72\xf0\xb2\xdd\x3c\xb7\x59\x87\x98\x49\x04\x07\x2c\x7a\xdc\x2f\x76\xab\xe7\xfd\xe2\xdb\x72\xb7\xde\x3c\x6e\x3b\x16\xbe\xd3\xc5\x5b\x7c\x59\x75\x1f\xd0\x0c\xf7\xae\x17\x51\xbd\x58\x82\xee\x7e\xf2\x66\xc8\x94\xe3\x9b\x81\xd1\x96\x45\xc9\x7f\x94\xd5\xfc\x15\xe9\x4e\x96\x48\x0d\x58\x3e\x7f\xc9\x0e\x2f\x50\xd5\x37\x99\x5f\xac\x13\x15\x04\x96\x1a\x2b\x2e\x77\x45\xe9\xe6\xc3\xca\xfb\xae\xb0\x44\x85\xd6\xd8\x5f\x68\xbd\xae\xaa\x66\x12\x72\x27\x2a\x62\x18\x9b\x7f\xcb\x35\x94\x25\x4e\xe3\xe1\x64\x37\x71\x64\xfc\x5e\x8b\x68\xc5\x7b\xc4\xb7\xb8\xfa\xc1\x47\xd2\x25\x2c\x0d\x23\xeb\x70\x8e\x5a\x9e\xd8\x93\xea\xdf\xbb\x34\x24\xc4\xe2\xcc\xda\x90\x77\xb2\xa8\xa4\x24\xb6\xd9\xbc\x8b\x88\xb7\x75\x69\x17\xdd\xd1\x65\xa7\x24\xed\x84\x15\x7b\xe2\xc0\xf8\x12\x68\xa2\xb1\x79\xab\x8a\xdc\x45\x61\xcf\xa2\x86\x6a\xb2\x53\xa6\x4c\xa6\xc8\x19\xbb\x5d\x6c\x86\xbf\x3c\x8d\xa5\x15\xf4\x43\xeb\x5d\x78\x22\xb7\xdd\x01\xed\xb4\x39\xda\x3b\x70\xf4\xbc\x89\xd9\xe5\x39\x6d\x77\x5a\x5f\xee\xb3\xf2\xf1\x88\xb2\x75\x47\x13\x2d\xb1\x00\xe5\x6c\x45\xab\x33\xa8\xcc\x64\x6a\x2f\xb4\xbe\xcc\xef\x89\x69\x2a\x14\x22\x02\xb0\x2f\x66\xf3\xeb\xf1\x39\x53\x99\x5a\x49\x14\xac\xa8\x5c\x85\xd5\x69\xaa\xad\x3c\xeb\x8b\xa8\x7a\x8e\x66\x18\x0c\x97\xd6\x94\x13\x89\xfd\x62\x7c\x3e\x4e\xaf\x74\x20\x37\xc3\x52\x99\x46\x98\x71\x94\x56\x68\xf0\x6d\x20\x0a\x88\x07\xa5\x1c\x27\x86\xb7\x22\x3b\x5e\xec\x14\x18\x3f\x23\x69\x02\x6e\x35\x09\xb0\x2b\x39\xf5\x9a\x68\x77\xc4\x7f\x52\xb7\xbe\xa4\x8a\xda\x86\x54\x95\xd5\x30\x46\x43\xa5\x3a\x64\x48\x3d\xae\x1a\x59\x65\xfa\xf2\x55\x1c\xdf\xb2\xfc\x80\xa5\xa4\xb7\xae\x7a\x9e\x42\x68\x3d\x0f\x3d\x64\xe7\x0d\xca\xfa\xbe\xa8\xab\x9b\x29\xf2\xc3\x8e\xe7\x41\x12\xe0\xbb\xd1\x06\x20\xcb\xe2\x9c\xc1\xea\x17\xa8\xa6\x2e\xb2\x72\xec\x33\xcb\x78\xc0\x43\x04\xdd\x2d\xa1\x94\x50\x36\xd5\x23\xd4\xef\x45\xe9\x81\x95\x3c\x90\x06\x0f\x3b\xe2\xb3\x98\x98\x86\x33\x1e\x68\xe3\x8d\xda\x50\x34\xd0\xbe\x6b\x57\xc5\x23\x1e\x46\x51\xd8\x29\x02\x8d\x0c\xb8\x18\x0f\x49\x8a\x19\xce\x49\x94\xaf\x0e\x9f\xa0\xbb\x63\x71\x62\x62\x3f\x6d\xda\xdd\xa6\xa9\x07\x4a\x25\xe3\xb5\x86\x87\x3a\x49\x5c\xf0\x21\x3c\xb7\x14\xd9\xde\x7e\xc5\xe4\x91\x8a\x28\xda\x7b\x57\x55\x33\x87\x36\x9d\x2f\xd9\xf0\xc8\x30\xa3\x1d\xe1\xa8\x7c\x83\xbb\xe6\x78\x7c\xc8\xf2\x7a\x1a\x9e\x72\xa2\x38\xb3\xce\xf9\x6f\x90\x37\xb6\xbb\xe3\x34\x5f\x33\x28\xef\xb3\x89\x81\x11\xe3\x94\x4b\xd4\x2c\x76\x00\xee\x02\x57\x5c\xd5\xa6\x3d\xfe\x94\x4c\x11\x62\xd1\xe8\x65\xbe\x6d\xce\xe7\xe3\x64\xaf\xe1\x31\x77\xfc\xf8\x52\xe4\x63\x68\x16\x8f\x55\x1a\x5b\x9d\xe2\xc3\xe1\x08\xb6\x81\x3e\xea\x56\xf3\x24\x4e\x91\x03\x68\x03\xa1\x71\xfb\x82\x27\x32\xc6\x6d\x71\xe5\x39\x78\xed\x9f\x52\xe5\xe2\x6f\xf4\x94\x9d\xcc\xa6\x44\xc5\xf8\x06\x79\x66\x0c\x6c\xcf\x42\xf5\x9a\xcb\xe1\x64\xb1\xe5\xa9\x00\x9c\xa7\xbb\xd5\x76\x68\x8e\xcc\x78\x2a\x23\xc5\x3a\x77\x70\xc7\x13\xda\x76\xd8\xdf\x6e\x98\x12\xa8\xc1\xb5\x58\xee\xd6\xdf\x57\xfb\xfb\xcd\xe2\x71\xbf\x5c\x3c\x2e\x57\xf7\xab\xdb\xfd\xcd\x1f\xfb\xfb\xd5\xe3\xed\xea\x79\xbf\xdd\x2d\x76\x1d\x7e\x84\xa7\x3a\x12\xb6\x7a\x3b\x22\x0e\x7c\x00\x7c\x1e\xdf\xec\x54\x53\xf4\xef\xa8\x5c\xf4\xe2\xfe\xcc\x23\xb0\xce\xa7\xd5\xb6\xc9\xea\xb1\x94\xa8\x1f\x12\x33\x44\xca\xee\x5e\xe0\xe1\xfe\xe1\x16\x4e\x3e\xa4\xe7\x02\x2c\xa4\x27\x2f\x6a\xa8\x7a\x7c\xba\x3b\x2a\x59\x27\xcf\xea\xfd\xb5\xd7\xda\x95\x33\x6a\xc8\xb1\xd4\x37\xca\xda\xb8\x14\x81\x36\x5d\x9f\xd7\x76\x2a\xfa\x76\xce\x20\x58\xe7\xca\x84\x18\xd0\xfd\x80\xc5\xd3\xe6\x87\xdf\x78\x39\x90\x10\xb4\x5f\x6d\x56\xbb\xaf\xdb\xce\x42\x99\x71\x88\xa9\x97\xe5\x7c\x2e\x8a\x7a\xf2\xfc\x4d\x98\x52\x8f\x14\x84\xbc\xde\xdb\xae\x53\x77\xd0\x20\xeb\xe0\x5c\x16\xe7\xa2\x12\xc7\xea\xe6\x82\x2f\xc8\xcb\x48\xd5\x60\x72\xc3\x4d\x94\xa2\x2a\x7f\x66\x8b\x83\x36\x8a\x9a\xdd\xb9\xb9\x21\x09\x74\xd6\xa3\x97\xa5\xc8\x2d\xf3\x13\x95\x52\xa7\xc2\xd4\x8c\x1b\x0a\x71\xea\xfd\x58\xb3\xbc\x5d\x2a\x16\x65\x9d\x0d\x36\xc4\xd1\x4d\x35\x4c\x61\xca\xb4\x39\xc1\x41\x3c\xf6\x35\x7c\x6e\xb8\x52\x89\xaf\x79\x1f\x3d\xce\x10\x5f\x75\x3f\x42\x03\xe2\x72\x96\x25\xe8\x62\x7d\x4d\x67\x1b\xff\x62\x11\xb0\x18\xf7\xb9\x85\xd6\x9b\x32\x3b\x64\x93\xb4\x44\x84\x29\x50\xe5\xa5\x73\xf2\xab\xed\xf6\xe3\xa6\x8e\x88\x02\x8a\x28\xb5\xc5\xef\xce\xcd\x93\x09\x12\xda\xbe\x7e\x6f\x0c\xbe\xf8\x40\x9d\x8e\x09\x42\x35\xb6\x2d\xbf\x3f\x2d\x83\x5f\xdd\x09\x64\x42\x3c\x13\xc0\xda\xb1\x8c\x17\x11\x41\xc3\x18\x69\x21\x06\x6a\xf5\xf2\xbd\xa8\xe1\xb1\x39\xdd\x15\xe5\xd2\xf3\x41\x6f\x2e\xdb\x5c\x9c\xab\x97\xa2\x1e\x71\x32\x27\xdf\x4d\x93\x28\xb6\xd8\xc5\xd3\x7a\xb9\x89\xba\x93\x0b\xa2\x9c\x19\xa9\x7e\x06\xe5\xf8\x20\xe3\xfb\xc5\x82\x58\x07\x8e\xc4\x55\xe4\xab\x5f\x28\xeb\x37\xc4\x44\x09\x46\x34\xf6\x41\x17\x18\x3f\xef\xb7\xab\xfb\xfb\xfd\xe6\xee\xae\x0d\xa9\x97\xcb\xd5\xd3\x6e\xe5\x23\x28\xc1\xd2\x08\x41\x06\x8e\x7c\x82\xe5\xa1\x71\x47\x4a\xc4\x24\x92\x9e\x45\x6a\x61\xf8\x5b\x71\x84\x19\x8a\x23\x13\x71\x4a\x10\xcc\x2e\xb4\xee\x39\x51\xe3\xdf\x1d\x2b\x9e\x88\x09\xff\xee\xa1\xd0\xd6\xf0\x6a\x46\x00\x89\x89\x84\x18\xed\x4a\xef\xed\x0e\x08\x7a\x5c\xa9\xf0\xa3\x24\x43\xa8\x5c\x55\x18\xb4\xa3\xb3\x4d\xd3\x6e\xdb\x15\x69\x48\xa3\xd4\xe9\xd3\x60\xf8\x33\x70\xde\x62\x22\xa5\x96\x38\xd2\x6e\xfa\xa2\x51\x50\x77\x4e\xeb\x5b\x50\xd3\x9f\x90\xd2\x34\xf1\xca\x40\xff\x69\x44\x09\x3f\xb2\x6b\x2b\x9c\x6e\x2c\x07\xee\x49\x36\xed\xea\x3c\xe7\xd3\xcc\x44\xaa\x02\x2b\x80\xf3\xa2\xde\xed\x66\xd9\x7c\x8c\x77\x16\xdc\x58\xa9\x33\x0c\x3d\xe0\x74\xf6\x7d\x4c\x21\x42\x6b\x81\xd3\x7e\x5b\xd1\xd4\x56\xd0\xa9\x3f\xa6\xdc\x8d\x3f\x59\xfb\x59\xe4\x60\x8d\xaf\x43\x24\x29\xb6\x28\xb2\x0a\xf9\x87\x50\x6d\xce\xdd\x16\x26\x84\xd0\xba\xd7\x1d\x7d\xb0\x4b\x8c\x0b\xba\x51\x1b\xc7\x0f\x94\x89\xc1\x3a\x83\xf2\x08\xcb\x6d\x83\x5e\x70\xa6\x39\x76\x43\x84\xc0\x55\xf0\xef\x45\x96\xef\x5e\xe0\x6e\xea\x02\xc6\x84\x04\x89\xed\xa3\x93\xf8\xe5\xa2\x04\x77\x40\x69\xc0\x90\xd8\x7b\xde\x2f\x8b\xf2\x5c\x94\x1e\x00\xf2\xc1\xeb\xa6\x40\x08\xd5\xc9\x38\xa0\x0d\x0a\x1a\x5c\x8c\xdf\x1b\x1d\x59\x41\xba\xd3\xfe\x5d\x61\x29\xaa\x9b\x3e\x9a\x08\xed\x48\x4f\x2e\xaf\x5b\xf6\xce\x02\xe3\x0b\x87\xd0\x3a\x96\x38\x42\x7a\x9b\x29\xb7\x0b\xf6\x28\xe6\xfe\x08\x22\xe2\x4e\x61\x52\x13\xf5\x95\xff\x45\x8e\xad\x9a\xc5\xf1\x68\x67\xfe\x4d\x73\x19\x78\x57\x7d\x08\xb6\x9f\xbf\x11\x46\xc7\x68\x66\x81\xb0\x95\x0e\xf9\xe4\x7e\xa6\x0c\x42\x8a\xe1\xcb\x43\x51\xe4\xbb\x52\x64\xc7\xfe\x80\xc2\xe2\x16\xf2\xc3\xd7\x7a\xe1\x0b\x39\xdf\x6d\x3a\x37\xde\x35\x65\xa0\x02\xc4\xc6\x78\x47\x11\xaf\xa4\xea\x0e\x87\x34\x40\x4a\xd5\xf7\xac\x74\x9e\x4b\x03\x90\xa4\x8c\x88\xb5\xcc\x69\x67\xf7\x1e\xa3\x64\x8b\x29\xda\xc3\xe9\x5c\x5f\xec\x5b\xf4\x54\x14\xc7\x7d\x66\x55\x67\x54\xbb\x7a\x74\x1f\x16\x01\xea\xc5\x23\xb1\xbc\x6f\x2a\xc8\x48\x85\x41\xe4\x54\xa0\x50\x8a\xe2\x53\x18\xa2\x24\x71\x4a\x1d\xb8\xe7\x00\x64\x60\x97\xd8\x1e\x02\xb0\x7a\xfd\xa3\x5a\x94\x24\x92\x20\xd1\xf5\x64\x59\x91\x75\x2f\xc7\xc4\x24\x0d\x28\x6e\x98\x15\xfa\xbe\xdf\x15\x5e\x52\xa1\x3b\x29\x8d\x28\x16\x9f\x01\xa3\xdd\xed\x4b\xf1\x6e\x45\xf7\xfa\xd0\x46\x52\x10\x11\x9a\x33\x6d\x6f\xd5\x50\x7a\x8e\x49\xa6\x2d\xcd\x48\xd9\xa0\x72\xe4\x23\xc4\x64\x1c\x6a\x6c\x9b\x3d\x3d\xaf\x6c\xf1\xe7\x61\xfd\xb8\x5f\xed\xbe\x7a\x1b\x30\x26\x13\x1a\x73\xcb\x9a\x93\xa5\x28\x2f\xa1\x71\xf6\x26\xfe\x78\xca\x64\xe4\x1a\xe9\x37\x8b\xc5\xb7\xab\xd4\x70\x76\xa2\xc9\x94\x4b\x0c\xac\xff\x2c\x31\xf1\xc3\x45\x8a\x8d\xc4\xc5\x76\x8b\x28\xc7\xf5\x72\x33\x7e\xaf\x24\xd7\xc6\xba\xd3\xad\x16\x6d\x08\x7c\xb7\xf2\x45\x20\x29\xa8\x8e\x7a\xdd\x79\x24\x02\xcc\x7d\x59\x3a\x53\xde\x95\x82\x99\x34\xf2\x14\xee\x76\x59\x58\x0e\x42\x68\x3f\x46\x5a\x4e\xec\xaf\x61\xae\x37\x7a\xf8\x32\x31\x03\x11\x8a\x3b\x40\xb9\xb5\xc9\xbe\x21\x55\x20\xb0\x5a\x79\xff\xc7\xcd\xee\x4f\xf1\x01\xfe\x33\xa0\x84\x6b\xd2\xdd\x83\x38\x34\xf0\x5c\x54\x35\x94\xed\x92\x20\x8e\xed\xca\xb0\x03\x71\xfa\x40\xf0\x62\xbe\xe8\x29\x95\xb1\xc9\xa9\x33\xd3\x7c\x6e\xf2\x3c\xcb\x0f\xc3\xa9\xa6\x09\xc5\x9c\x32\x87\xf7\xcd\x79\x96\xec\x3a\x1c\xcc\x12\x11\xfa\x1a\x43\xa9\x2b\xaf\x81\xec\x0f\x43\x8a\x85\x5d\xcf\x38\x7f\x2a\x16\x53\xe9\xcb\x06\xa5\xe0\x5c\x78\x87\xff\xf3\x11\x7c\x13\xed\x3d\xdc\x89\x81\x86\x98\x99\x22\x59\x64\x72\xa7\x41\xa5\x98\x62\xbc\x43\xf6\x94\xfd\x82\x51\xa9\x59\x02\x70\x4c\x6d\xac\xea\xdf\x38\xb8\x93\x26\xb4\xbe\x34\xc2\x37\x26\x87\xac\x38\x3f\x26\xd2\x12\x3a\x51\xdb\x27\x51\x8a\x13\xa0\xd5\xef\x5f\x42\x4b\x48\x43\x35\xde\x30\xd8\x65\xea\xb5\x83\x4b\x48\xc3\x8c\xf2\x3a\x75\xd6\x85\xc1\x6e\x7b\xd7\x66\x25\x4c\x05\xb1\x26\xce\x82\x7a\x5c\x0e\x52\x21\x25\x3c\x9c\x40\xc2\xe7\x7a\xba\x2a\x8c\x63\x6f\xd4\xba\xfa\xa5\x5e\x0e\xcb\xe2\x94\x55\xf9\x43\x73\xbc\xb9\xec\x5e\x8a\xa6\xea\x31\xd1\x2a\x0a\x15\x35\x7d\x9f\xa8\xd1\x59\x3d\xde\xcc\xc6\x67\x8e\x74\x84\x5d\x04\xac\x01\xaf\x1f\x97\xab\xc7\x36\x95\xdd\x8e\xc4\xa9\x99\x8a\xc0\x2a\xcc\x6b\xa8\xea\xb2\xb8\x74\xa5\xc0\xe1\xec\x57\x11\x00\xbe\xd8\x2f\xa2\xba\x17\xf9\xa1\x11\x87\x3f\x59\x46\x14\xa1\x09\x76\x2c\xef\x8b\xc3\xa2\xa9\x5f\x3e\xa3\x1b\x29\x1a\x58\x99\x7d\xbb\xe8\x3e\x43\x5e\x34\xb9\x02\x4c\xc8\x06\x6d\x32\x45\x69\xca\xd3\x81\x70\x58\x55\x5f\xdb\xd8\x30\x45\x63\x8e\x3b\x67\x56\x3d\x45\xdb\xaf\x63\x04\xdb\xe4\x7b\x19\x51\x98\x53\xde\xae\x76\x1d\x86\x43\x31\x9d\x62\x95\xf6\x02\xf5\x22\x2f\xda\x30\xfc\x6e\xbc\x0c\xab\x38\x50\x88\x4f\x68\x77\x07\xb4\x26\x2a\x8a\xe3\xe0\xad\x55\x71\x48\xac\xe9\x90\xb8\x8c\xef\x62\x1c\xa6\x48\xdd\xb0\xbf\xd3\x13\x22\x8e\xdd\x79\x19\xc3\x0a\xc0\x51\x54\xd6\x71\x1c\x61\x31\xee\x60\x22\xac\xd8\xe2\x12\xca\x1a\x8d\xd6\x6f\xb1\x6e\x36\x59\x21\x55\x22\x15\x2e\xf6\xaa\xc8\x72\x2c\x6d\xeb\x55\xad\xfc\x39\xd2\x80\x62\x8d\xb9\xcd\x86\xbc\xa5\xd4\x8c\x20\x17\x53\x69\x68\xad\xcd\x2b\x64\xae\x98\x6e\xf7\x56\x3c\x96\xc4\xc5\xb5\xb6\x60\x28\x4a\x3d\x50\xa5\x65\x8a\x27\x61\xe4\x8d\x93\xda\x33\xdf\xaf\x3e\x7d\x02\x3c\xd5\xd2\xc9\x52\x3f\x95\xc5\x19\xca\xfa\xd2\xe7\xe1\xd3\x9a\x8e\xe2\xdc\x3e\x5a\xdc\x22\xf2\xff\x0c\xbe\x55\x46\x9e\x41\xbb\x38\x1e\xb7\x2f\xfd\x86\xae\xb8\x0a\xf1\x19\x6f\xdb\x45\xb6\xba\x03\x78\x86\xec\x24\x9b\xb2\x9a\x12\x52\x95\x20\x0c\x03\xb2\xf7\x3f\x51\xfd\xfe\x9c\x46\xe1\x4e\x26\xa9\xf0\x8c\x90\xa7\xde\x9e\x7b\x0e\x9e\x30\xf9\x8d\x2a\xd4\x94\x77\x6d\xa5\x79\x17\xf8\xab\x6f\x53\x69\x1a\x76\x12\x58\x59\x7e\xc0\xf7\x62\xe3\x7b\xb7\x4a\x81\x95\x57\xad\x5e\x8a\x77\xd9\x5c\x86\x8b\xb0\xd2\xc4\x96\x2d\x85\xb6\x72\x66\x9f\x86\x63\x4a\xeb\x08\x4b\x12\x4e\xde\x0c\x39\xc1\xb3\xf4\x92\xfe\x23\x40\x88\x85\x0f\x94\x1d\x7b\x53\x01\xa5\xaa\x43\x18\xaf\xea\x97\x36\xc1\xce\xde\x40\x67\x83\x54\x50\x41\x9c\xa0\x44\xca\xe2\x03\xbd\x92\xc9\x8d\x83\x58\x58\x27\xdf\xe2\xe0\xb6\x12\x0b\x40\x10\xe7\xa5\xa7\xb0\x5c\x83\x83\x47\xb3\x1e\x78\x88\xa5\xd8\xac\x7a\x76\x7b\xe4\xb0\xdb\xda\xbf\xdf\x00\x0a\x29\xa0\xab\xe7\x65\x92\x24\xb7\x70\x2a\x3e\x92\x4c\xb8\x9e\xf0\x60\xac\x12\x9b\xb3\x94\x70\x5a\xfc\xee\xa0\x61\xd6\x57\xbf\xcd\x6d\x6c\xf6\x3c\x99\xa2\x46\x70\xdc\x4e\x31\x18\xc7\x55\x60\xbc\xc0\x18\xa1\x3d\x86\xa1\x7d\x98\x3d\x89\x2f\x2b\x3a\x97\x9b\xf1\x07\x54\x80\xf4\x94\x76\x45\x70\x77\xed\xe6\xf2\x7b\xdf\x1d\x9d\xdc\x63\x03\x80\x76\x1a\x67\x6c\xab\xaf\x67\xee\x93\x1d\xa8\x83\x38\x91\x41\x97\x37\xb9\xd4\x74\x51\x3d\xb5\x1f\x5b\x8c\x14\x81\xff\xf9\xaf\xbf\x75\x55\xa5\x4f\xc0\xc3\xa3\x27\xa5\x03\x27\x0b\x94\xf5\xdc\xc1\xbb\xc6\x9b\xd7\x30\x1d\x68\x81\x8a\x96\xbf\x67\xf9\xa1\xda\x5d\xa9\x19\x31\x1d\x4a\xce\x44\xd7\x06\xab\xad\x03\x57\xb9\x2b\x6c\x4e\xf3\x89\x42\x30\xd3\x21\x24\x49\xd0\xe3\xec\xa6\x9b\x94\x8e\x42\x40\x8c\x83\xfd\xe5\x0e\x03\x33\xea\xae\xe9\xc8\x30\x57\x01\xa9\x7b\x92\xd8\x07\x75\x0b\x4d\x89\x2d\x0b\x6f\x0b\x95\x89\xe3\xcf\xa1\x2d\x14\xb3\x4a\x8c\x6d\xe8\x65\x6b\x19\x5f\xb3\xaa\x2e\xca\x8b\x43\x64\x8c\x9f\x08\x63\x56\xb8\x78\xb5\xfb\xd9\xf3\x2d\xbb\x63\x0a\x63\x2d\x8f\x1c\x5a\xda\xdf\xd6\x05\x33\xd8\x48\xf1\xb8\x81\xe5\x57\xab\xda\x12\x75\x07\x95\x45\x05\xd8\xde\x9f\x8d\x53\xad\x87\x94\x7f\xc4\xa4\x7f\x90\x83\xff\x8d\xfe\x35\x78\xa9\x34\x33\x34\xe6\x73\xc5\xe8\xf5\xd3\xdd\x56\x67\x25\xa8\xf6\xa7\x5d\x95\xa4\x75\x1c\x07\xf8\xbb\x7e\x74\x4f\x20\x61\x4a\x58\x19\x58\xcc\x42\xe6\xea\x63\x3a\x15\x09\x0b\xd1\x5b\xa5\xdd\xe0\x2e\xfb\x87\xe6\x8f\x6c\xff\x58\xf8\xfa\x8d\x16\x1c\xd2\xc8\x99\x03\xa2\xea\xc7\x5f\xc0\xba\xbb\x8f\x4a\x62\xc0\x99\x5d\xfc\x75\x32\xca\x04\x38\x3d\x75\xbc\x19\x7f\x41\x12\x61\xde\xeb\x97\xa9\x52\x4c\x0a\x1f\x5a\x72\x2b\x3a\x6c\x9f\x08\x7a\x0c\xd4\x50\x3a\x3a\xbb\x99\xc2\xce\xb4\xe4\xd6\xde\xc1\x42\x2a\x9d\xd6\x5f\x56\xe4\xd8\xc0\x1c\x5e\x65\x07\xd1\xd4\x52\x86\x78\x8f\xd1\xad\x63\x50\x18\xf5\x7b\xa2\xa7\x6f\x7f\xb0\x3d\x6a\x09\xb6\xff\x83\x64\xa5\xf6\x59\x5b\x65\xa7\x99\x26\x94\x56\x49\x88\x7b\xfb\x56\x95\xa2\x67\x2b\x6b\xa5\x62\x14\xee\xdc\xd6\x65\x91\x1f\xbe\x8a\x1e\x5f\xaa\x95\x09\x23\xc7\x46\x5b\x4c\xe1\xb4\x5a\x33\x7b\xf0\x64\x85\x9f\x1e\x8b\x7a\x0b\xf5\x3a\x5f\x9c\xbb\xf9\x03\xc4\x5a\x43\xc3\xdb\xc3\xe1\xe4\x34\x53\x9f\xca\xe2\xdf\xa0\xae\x81\x9d\x1f\xa7\x63\x1a\x92\x54\xba\x77\x06\x45\x29\x3b\xd7\x8f\xc9\xc3\x32\x89\x95\x00\x76\xdc\x5a\x37\xf7\x27\x57\x6d\xda\xb8\xce\x26\x82\x77\x45\x51\x4b\x71\x3c\x22\x1f\x73\x3c\x0c\x02\xa6\x70\xaf\xcd\xaa\xae\x3b\xf6\xcd\x42\x06\xbc\x34\xb7\xf5\xd7\x1a\x12\x29\x52\xff\x59\x19\x87\x2e\xb4\x5b\xe4\x97\x95\x35\xb9\x9d\x28\xc5\xfa\xa1\x3a\x35\x9e\xaf\x5c\x9c\xc6\x70\x86\xd9\x55\x0c\x02\xc7\x26\xc5\x0d\x7f\xa1\xdf\xb2\xaa\x28\xab\x51\x35\x11\x48\x6a\x7d\xc1\x8e\xe7\x3b\x80\x9b\x73\xf7\x67\x63\xfb\xee\x67\x71\xe9\xe3\xd0\x36\x9e\xc1\x15\xde\x7f\xf7\x9f\xbf\x97\x40\x05\x89\xad\x5a\xb9\xe3\x02\xfb\x7c\xdb\x1f\x97\x84\xda\x06\x3f\xfc\xd2\xf0\x56\xbd\x14\xe7\x1f\x22\xab\x41\x87\x7f\x80\xe8\x60\x75\xc0\xc0\x2a\xc4\x9f\x4b\x50\x59\x05\xdf\xf2\x8e\xd9\x0e\x29\xb1\x3c\x9e\xe7\xac\xca\x5e\x07\x06\x57\x0c\x38\xd7\x58\xf4\x44\x77\xd0\xa2\x4b\x72\x81\x0b\x89\x11\xc7\xa9\xa9\xea\xdf\x2f\x6a\x3c\x33\x80\x83\xc4\xf3\xad\x9f\x7c\x53\x05\x04\x89\xb1\x3c\x5e\x18\xf3\x20\xb2\xbc\x86\x7c\xd0\x20\x00\x19\x58\xfd\x83\xac\x03\x74\x3c\x41\x79\x12\x53\xa7\x15\x06\x8a\x06\xc2\xd8\x94\xbd\xdf\x1e\xe7\x85\x60\x19\xa8\x04\x50\xfc\xea\x08\xa6\x8e\xa2\xc9\x54\x50\xa9\xc6\x85\x72\x0f\x15\xb2\x54\x0e\x50\x6e\xff\x53\x4e\xcc\x91\xff\x36\xfe\x88\xb2\x2a\x71\x67\x71\x6e\xfc\x95\xeb\x28\xe5\x1e\xd5\xdf\xc6\x36\xcf\x57\xba\x03\xa0\xb9\x92\xae\x6c\x7e\x2f\x72\x3d\xeb\xeb\xce\x40\x2b\xc1\xbc\x69\xd6\x07\x5b\x2a\x40\x62\xe5\x56\x6b\xcf\x53\xec\x83\x4e\x13\xd0\x20\xe8\x0d\x9c\xdb\x4b\x99\x27\xcc\x5c\x51\xba\xae\x15\x51\x99\x09\x12\xab\xa8\x85\xd0\xe4\xb5\x41\x37\x48\x98\x14\x31\x4c\x18\xa5\xa1\x0f\xfa\xce\x70\x6d\xcc\xe4\x87\x25\xda\xd9\x5a\xa0\x88\x7d\x76\x78\xa9\xa3\x5b\x10\xb6\x59\x3b\x88\x2e\x4c\x08\xa9\x03\xb3\x94\x7a\x29\xce\x03\x01\x7d\x66\x22\x9a\x60\x3f\xf8\x50\xd4\xe2\xd5\x4f\x1b\x43\x12\x2b\xaf\x56\x65\x87\xfc\x2a\x42\x1e\x5f\x2c\xe1\x34\xb5\x0a\x6e\xe7\x63\x71\xe9\x4f\x4c\x03\xaa\xfa\xb2\xdb\xfe\x5c\xbc\x0f\x8e\x25\x02\xf7\xda\x55\xfd\x52\x0a\x63\x8e\xb0\x7f\x23\xb2\x3b\x98\x42\xd2\x6f\x55\xdb\x4b\x5e\xbf\x40\x95\xfd\x37\xcb\x0f\xb3\x4c\x14\x43\x4d\x20\xc9\x40\xda\xcb\xbf\x4a\x86\x45\x1a\xbf\xa5\xcd\xde\x6e\x4b\xf1\xfe\x30\xe1\x73\x19\x26\x13\xbc\xf4\x93\xf8\xb5\x14\xe7\x5e\x5e\xc0\x30\x6d\xa2\xce\x8d\xfb\x2e\xab\x94\x38\x8e\xab\xe8\x26\x96\x8c\xa4\x83\xd9\x69\x1d\xdb\xef\x8a\x72\xdb\xc6\x24\xae\xa6\xee\x07\x27\x91\x8c\x9c\x60\xc7\xff\xd6\x44\x35\x89\xb4\xa9\xea\x5e\x36\x65\xfe\x49\x0f\xc5\xa4\x51\x82\x21\xc6\xee\xa6\xec\x79\x49\x26\x8d\x53\x99\x74\x1b\xc9\x33\xbc\x41\x59\xc1\x90\x86\xeb\xc7\x25\x11\x2e\x74\x96\xf4\xbe\xce\x1d\xde\x77\x70\x26\x2e\x14\x25\x13\x86\xdf\x4e\xe4\x87\x4c\x1e\x61\x51\x55\x50\xcf\x19\x88\xf9\xcf\x4a\x8d\x46\x53\x36\xb2\xc5\x20\xf8\x0a\x08\xe1\x87\x42\x8c\x93\xc6\x6d\xae\x8f\x9d\x70\x28\x33\x22\x92\x41\xd0\x8b\x84\xcc\xca\xdf\xb6\xa3\xac\x93\x40\x0e\xef\x16\xf9\x39\x99\x2c\x32\x14\x28\x69\x71\x73\x69\x97\x5d\xf5\x0a\xe5\x48\x3b\xd2\x48\x08\xd0\x26\x77\x7f\x00\x74\x9f\x1e\x7d\x58\xa9\x44\xc6\xbe\x34\x01\x43\x79\x12\x37\x40\x33\x82\x33\xce\xd7\x71\x5c\xfe\xe4\xb8\x9f\xd7\xe8\x8f\x3e\x36\x30\x5a\x12\xe2\xaa\x03\x9b\x33\xa0\x64\xea\xba\x8b\x5f\x8c\x36\xd6\xe6\x1c\x15\x88\x51\xc5\xff\x63\xbc\xbb\x81\x38\x40\x20\x8e\x15\x85\x68\x2a\xfd\x54\x16\xbf\x2e\xd3\xb4\xc4\xb4\x4b\x3e\x82\xea\xa5\xee\x45\x5d\x26\x96\x83\xcc\x98\x00\x12\x39\xe2\x95\x7e\x04\x82\x1d\x43\x35\xfd\xc7\x49\xea\x88\xda\xa8\x63\x7d\x23\xaa\x4c\x21\x30\xf6\x4f\xea\xb1\xff\x7f\x6c\x37\x63\x58\x8c\xe5\x20\x94\x58\x5a\x0e\x64\x9f\xe3\x20\x88\x09\x4a\xc0\xf8\x62\xf7\x3a\xaf\xea\xac\x6e\xea\x19\x3f\x88\xe1\x1d\x68\x3f\x08\xce\x54\xb8\x9f\xe1\x73\xf6\xaf\x83\xe1\x60\xa3\x81\x6d\xdf\x5e\xfd\x4b\xd0\xaf\x38\x08\x54\x8a\x64\x89\xbf\x67\xf9\xe1\xbf\x2f\xd9\x78\x21\x8f\x83\x28\x48\x3c\xfc\xe3\xbe\x78\x87\xaa\x6e\x63\x0d\xdb\x31\xd7\xbf\xda\x57\xb2\xf3\xb9\x8c\x83\x28\x16\xca\xfb\x1f\x7a\x5d\xa3\x6d\x73\xba\xb9\x58\xcd\x89\xb9\xc5\x3c\x0e\x48\xa0\x19\x52\x38\x36\xdf\x1e\x77\x7f\xec\x97\x8b\x87\xa7\xc5\xfa\xcb\xe3\x7e\xfb\x75\xf1\xbc\xf2\x67\x26\x5c\xd0\x2e\x72\xab\x3a\x84\x70\x1c\x90\x76\x21\xb1\x31\xc4\x53\x09\x1d\x07\xa4\x3d\xa0\x23\x7f\x0b\x77\x85\x7b\x2b\x50\x90\x64\xc6\x12\x7b\x72\x4b\x68\x6c\x2d\x71\x3d\x75\x76\xc4\x9a\x8d\x03\xaa\xe3\xce\x95\xf6\x35\x3b\x1e\x9f\xc5\xff\xe2\xf1\xd0\x9d\x24\xd5\xa1\x5f\xef\xaf\x3c\x39\xe2\x80\x25\x29\xbe\x04\xa5\x8f\x0d\xe3\x20\x26\x11\x8a\xa8\xfe\x5e\xff\xfa\xd3\x56\x51\x1c\xc4\x86\x20\x5a\x57\x41\x5e\x37\x93\x08\x25\x0e\x12\x4a\xa4\x55\x0b\x17\x7a\x8f\x77\x75\x6f\xbb\xb3\xfb\xc2\xec\x9b\x0a\xca\xfd\x79\x4a\xe0\xf1\x9f\x4c\x38\x46\x0a\xcf\xcf\x43\x16\x7c\x1c\xa4\x92\x58\x68\x2a\x56\x64\x5f\x04\x2a\x39\xb8\x63\x1c\x04\x77\x95\xc1\xd7\x2c\x3f\xac\xce\x85\x7a\xb9\x6d\x86\xbd\xe6\x38\xe0\x06\x30\x03\xd9\xac\x36\x9f\xa0\x1d\xe2\x40\x1a\x4b\xdf\xd8\x41\x55\x93\xc9\xb5\xe9\xc4\x72\x9e\xdb\xa4\xbb\x1c\x4a\x87\xc4\x81\x56\x12\x91\x2d\x43\xb5\xa9\x38\xd0\x86\x61\xef\xe6\xd7\xa9\xf4\x7f\x82\x90\x52\xcc\xdb\x30\x2f\xb8\x81\xff\x3e\x16\x47\x1f\x99\xc5\x81\x09\x00\x6b\x36\xd8\x03\xee\x44\x14\xfe\x52\x1f\x3f\x0e\x4c\x04\x56\xc4\xa7\xb9\x3c\xdd\xec\x76\x8b\x83\xc8\xf2\xaa\x1e\xc4\x46\x71\x60\x62\xa5\xb9\x9b\xb6\x8e\x2b\x32\x2e\x42\x4f\xde\x1e\x23\x12\xec\x93\x7e\x2f\x32\x05\xaa\x0b\xf6\xe3\xc0\xe8\x10\x7f\xd9\xd7\xe2\x3c\xfc\x7b\x18\x10\xab\xdd\xb8\xcf\xe1\xfd\x09\x7a\x09\xf0\x7f\x46\xbe\xe1\x36\xf9\x67\xf4\x7d\x61\x10\x5b\xba\x62\xef\x51\xb0\x3f\x8a\xaa\xde\xbf\xa1\x18\x78\x37\x48\x12\xf7\x3b\xc7\x4d\xcf\x38\x0c\x23\xcb\xc8\x44\xd7\xc1\xeb\x1e\x4f\x1c\x86\xdc\xc6\xe5\xbd\x2e\xe2\xf7\x36\x32\xc8\xea\xcb\x4d\xe1\x6b\x94\x71\x18\x49\x40\x20\xac\x1e\xda\x10\xc4\x61\xa4\x0c\xf6\xf2\xce\x9d\x0f\xf2\x48\xa0\x6b\x12\x2d\xbb\x0f\x11\x61\xfd\x9c\x64\x73\x91\x42\xbd\xee\x2e\x67\xd8\xe4\x7e\x0d\x0f\x89\x04\x94\xfd\x42\x8d\x26\xbb\xbc\xfb\x0b\xef\xb7\xb7\xf1\x3d\xa2\x91\xc2\xdf\x68\x8b\x6f\x4f\x65\xf1\x96\x69\x28\x7f\xbb\x56\x45\x9b\x61\x5b\xa7\xd7\x82\xcd\x71\xc8\x38\x0b\xb4\x57\x94\xec\xc5\x4d\x26\xb7\x36\xa6\x09\xc6\xe6\xbd\xae\xb1\x3d\xef\xfe\x50\x1c\x8b\x6a\x7c\x97\x13\xa1\x13\xed\x1b\x03\x35\xe4\xe8\x47\x35\x9c\xbc\x61\xfc\x4f\xf6\x2f\x37\x38\xe5\x1c\xb1\x69\x45\xa9\xa1\x5c\xf5\x0f\x81\x47\x96\x7b\xf2\x52\xe8\xa3\x63\x10\x4d\x16\x8b\x90\xeb\x28\x1c\x79\xdd\x7a\x8e\x56\x1c\x72\x13\x4b\xdf\xe0\x5c\xe7\x3a\x7b\xcb\x74\x23\x8e\x63\x30\xd7\x55\x78\x1a\x87\x82\x5a\x11\xbf\x0a\x6a\x9d\x55\x58\xf9\x11\x33\x10\xf1\x38\x94\x3a\x35\xd2\xb7\x3e\xbd\x5c\x77\xbf\x8a\x87\xea\xff\x91\xf6\x27\xcd\x8d\xe3\xd8\xfa\x38\xfc\x5d\x7e\xab\x5a\xf4\x82\x04\x48\x00\x7c\x77\xb6\x2c\x67\xea\xa6\x6d\xf9\x5a\xca\xcc\xaa\xbe\xd1\xa1\xc0\x70\x60\xb3\x4d\x91\x6a\x92\xb2\xad\xfa\xf4\x6f\xf0\x00\xe0\x24\x39\xab\x3a\xfe\x9b\x72\xa5\x08\x4e\x20\x86\x33\x3c\xe7\x79\x24\x77\x1c\x07\x7f\x7c\x0d\x8f\xa4\xb5\xc5\xc9\xf4\x74\x75\x7d\x35\x19\x57\xc0\x09\xe6\xd2\x02\xa5\x38\x52\xef\x4d\x7b\x1f\x32\xc2\x7d\x86\xa7\x77\x1b\xfb\x21\x66\x33\x22\x3d\x5f\xc9\xff\x54\x4e\x0d\x70\x76\xba\x55\x11\x3a\xcd\xdd\xf5\x43\xa5\x14\x23\x91\xe6\x98\x47\xbb\xab\x9e\xb1\x08\xd1\xbb\xd3\x1e\x5f\xfa\x57\x90\x9f\xfe\x22\x12\xe9\xe4\x9c\xb2\x12\x5a\xd1\x20\xf7\xe1\x16\xb1\x12\xd4\x0e\x72\x55\xdf\x4e\xe6\x4c\x78\xe1\xb3\xd4\x53\xb8\x82\x16\x5c\x0c\xf4\x27\x7b\x28\x67\x35\x8f\x8c\xc4\xe0\x32\x43\xae\x6c\x61\x9c\xa2\x66\x84\x50\x8a\x35\xf9\x1e\x18\x3f\x54\x2e\xfe\xfa\xae\x24\x91\xcc\x7f\x5e\xcc\xe9\x6f\xe1\x63\x1a\xae\x62\x84\xd2\x24\x24\xbf\x1f\x65\x6e\x7e\xbb\x90\xb0\x61\x84\x32\x87\xe4\xba\x87\x36\x6f\x86\x68\x09\x23\x49\xea\x81\xf9\xb2\x18\x4b\x5e\x32\x92\x58\x83\x26\xb9\xaf\x7d\x3a\x93\xdf\x61\x24\x95\x1c\x35\x22\xae\xd1\x6f\x38\x97\x65\xf8\xb5\x69\x40\x52\x5f\x99\xee\x0d\xd8\xbb\xaa\x09\x5c\x0d\x4f\x70\xd8\x56\x3f\xf3\x72\x20\x6f\xf0\xa7\xb0\x44\x21\x79\x50\x30\x99\xaf\xe5\xa8\xae\x69\xfa\x70\xcc\x28\xee\xb1\x8d\xae\x3e\xa7\xc7\x5d\xf6\x8c\x7c\xfd\x24\x21\x3c\xe6\x84\x0f\xb2\x5e\x3e\x8c\x77\xd1\xe9\x62\x44\x40\x84\xaf\xfd\x53\xb6\xfa\x65\xe2\xf7\x76\xc7\x34\xd2\x5b\xef\x8f\x45\x9b\x63\x77\x5e\xe5\xf5\x4d\x3d\x68\xae\x9d\x4f\x75\x92\xc5\x96\x39\x3d\x81\x56\x16\xdf\x20\x58\x13\x24\x53\x1a\x2d\x90\xfc\xc1\x26\xfb\xb1\x0d\x41\x64\xb7\x98\x77\x4e\xfe\xc7\x8b\x3c\x36\x4e\x4b\x7f\xf8\xa2\x92\xbb\xa0\xeb\x33\xb4\xdd\x9e\x95\xf7\x43\x50\xea\x54\x20\x3e\xd6\x87\x04\x3d\xae\x35\x18\x99\x44\x91\x34\xf5\xa8\x9b\x49\x95\xdb\xc4\x30\x21\x8a\x59\x54\xaa\xb9\x97\xc3\x2d\x35\x73\xac\xc6\xa1\x22\x09\xa1\x58\xbf\x4a\xed\x30\x62\xa8\x63\x24\xc6\x32\x21\x87\x57\xf0\x47\x6c\x64\x49\x50\xf2\x3c\x3d\xe5\x43\xe7\xda\x38\x61\x6a\x58\x9e\x3a\x9b\xf4\xe2\x1c\xf6\x88\x3b\x46\xa3\x88\x04\x2e\x8e\x19\x59\x40\x68\xa0\x0c\xa2\x69\x0e\x05\x98\x67\x08\x44\x42\x93\x07\xa5\x91\x89\xa3\x68\x60\x2e\xb8\x32\xfb\x70\xad\xd0\x00\x6c\x88\x3d\x5f\x15\x05\xc6\xd6\x1f\xeb\x1e\x82\xca\x68\x4c\x12\x27\xf4\xdf\x99\xc0\xf7\xb9\xc9\x1f\xaa\x16\x1a\x37\xd7\x70\x2f\x0c\x23\x81\xc6\x00\xd8\x32\x58\x1d\xcb\xf6\xe5\xb6\xaa\xcf\x14\xd8\x18\x8d\x2d\xc3\x02\x4a\x07\x4b\x08\xf1\xf2\xf1\x67\xa2\x24\x89\x71\x94\xa2\xd9\xb5\x78\x81\x3e\x81\xdf\x1d\xca\x50\x05\x71\x87\x32\xac\xd7\x70\x9e\x54\x1e\xfc\x4c\x46\x89\x65\x98\x12\xd8\x8d\xa9\xe0\xfb\x63\x06\xa3\x95\x8f\xab\xc7\xf0\x53\x92\x39\xc6\xa1\x1a\x2c\xd4\xb5\x2c\x7a\x44\xf4\x2c\x16\xcf\x68\xa2\x24\x7e\x67\x25\x9b\x89\x9c\x33\xa3\x69\x9c\x50\xbf\x8f\x3c\xe5\xfa\xe5\x82\x15\x40\x53\x9a\x72\xf0\xe6\x71\xbf\x0c\x9f\xe7\x99\x19\x4d\x13\x8e\x21\xe4\x2f\xdd\x9e\x00\xb0\x18\xbe\x5b\x2a\x62\x03\x21\xe6\x90\x6b\xc0\xfc\x7a\xe3\x7d\xf5\xfe\x9b\xa4\x82\x63\xf5\xa2\xc3\x4d\x3d\x1c\xf7\xf3\x07\x51\x2c\x73\xd5\x10\xce\x82\xeb\x4c\x21\xef\x52\xcc\x5b\x5a\xcd\x68\x2f\x80\x09\x75\x9f\x82\xf1\xc7\x19\x81\xa0\x13\x71\xdf\x4f\x2d\xca\x23\x57\xd8\xb5\x83\xba\xae\xea\xab\xd2\xf8\x2c\xf6\x85\xc4\xb7\xf0\xa7\x88\xc8\x3a\x7e\xea\x50\xd4\x7b\x71\xfd\xa5\x82\x4b\x0a\xfd\xfd\xa0\x6e\xae\xda\x69\x68\x3a\xb4\x33\x19\x02\x69\x36\x79\x89\x99\xdb\xbc\x45\x9d\x21\x92\x84\x47\xcc\xa2\x28\x80\xaa\xb6\x79\x01\x77\x81\x3b\x71\x94\xf7\xf8\xcc\xb0\xa7\x59\xec\x34\x5e\x70\xda\xec\x1c\x2a\x76\xd2\x2b\x99\xb2\x18\x36\xba\xce\xdb\xa6\xad\xf4\x6b\xb3\x77\x1a\x78\xfe\xb0\x8c\x1d\xe0\xa1\xb3\x19\x6f\x01\x6e\x0b\x39\x1c\x62\xda\x31\x0b\x07\x55\x03\x46\xa5\x80\x38\x0e\x41\x8c\x59\x1e\x9d\x51\x05\x06\x2b\x32\x76\x0d\xae\x17\xde\xb4\x0e\xa2\x25\xbf\xb4\xae\xa9\x49\xa4\xf5\x15\xfb\xb8\x76\x4e\xd7\x3e\xdf\x08\x98\x46\xd2\xf1\xc0\x1a\xe8\x8a\xec\xc2\xc3\x01\xd7\x4e\x2d\x07\xa3\x0e\xbd\x8b\x4f\x41\x01\x16\x54\x6e\x5a\x38\xfc\xb7\x42\x8b\xf3\xbf\xc3\x9e\x47\x01\x24\x46\x26\xef\xaf\x7e\xdf\x3d\x7c\xbf\xbf\x5e\x3e\xed\xae\x97\xdb\xed\xf2\x69\x13\x6e\x6c\x21\xc6\x98\xc8\xf6\xea\xe9\xcb\x72\xbb\xdb\xae\xb7\x57\x77\x13\xa1\x7d\x96\xc4\x19\x0b\x05\x8a\x2e\x77\x07\xe6\x2e\xdf\x87\x2c\x0d\x4b\x62\x4b\xb1\x54\xf5\x50\xc8\xd3\x25\x12\x81\x69\x64\x2b\xf4\x66\x42\x28\xc1\x8a\x0a\xc7\x28\x1f\x47\x65\x1f\xad\x64\x09\x49\x00\x0b\x6f\x7b\xae\x54\x6f\x4b\x8f\x26\x84\x57\xd8\x65\x09\xe1\x1a\xad\x68\x37\x79\x1d\x3f\x41\xb8\x4e\x92\x41\x9c\xf6\x7b\xd6\xf6\xf7\x77\xac\xc5\x32\xd3\xc2\x4a\x96\x24\xd2\x62\xf4\x30\xac\xc9\x08\x4b\xef\x9d\x83\x04\xa5\xc1\xbb\xc3\xc7\x8f\x5c\xde\x23\xc1\xdf\x08\xf1\xc3\x92\x04\x5c\xd1\x42\x3e\xd1\x80\xfc\xa5\xff\x9c\xa4\xc6\xd8\xc0\xeb\xf1\x79\x34\x92\x25\x8c\xba\x98\xd5\xe0\x43\xfa\xc5\x76\x66\x21\x26\x9d\xd9\xe4\x77\x28\x47\x8f\xbc\xb6\x17\xd6\xd4\x84\xa7\x9a\xba\x5a\xd8\x36\xc4\xc4\x9b\xdb\xaa\xbe\xf9\x44\xed\x92\x25\x5c\x29\x5c\xc1\x1d\xa7\xe4\xc8\xfd\x4e\x38\x10\xd4\xf4\x42\x34\x7b\x03\xed\xee\x19\xda\xdd\x53\xde\xbc\x8e\x70\xa3\xbe\xa9\x88\x53\x8f\x51\xc7\x05\xfa\xcf\xbc\x7c\x9e\xd1\x33\x89\xd0\x52\x32\x0c\x59\x78\x5a\xca\x79\x19\x21\x4b\x84\xe1\xd6\xa9\xf8\x34\x97\x29\x3d\x58\x92\xa5\x0c\x53\x20\xa8\x30\xe8\xb8\x50\xfa\x52\xd5\x69\x4b\x15\x3b\x92\x97\x6e\x7e\x7c\x7f\x58\x2d\xd6\x4f\x0f\xc8\xd2\xf4\x65\x75\x1b\x1c\x97\x44\x69\x1d\xcb\xc1\x36\x98\x71\x38\xb0\x44\x93\x28\x70\x70\x3c\xc0\x47\xbb\xda\xcb\x67\xd4\x14\x99\x26\xfa\x2f\xfd\x19\x19\x88\x89\xa6\x89\xd5\x21\x36\xa9\x5f\xc7\xd2\x44\x2c\x31\x31\x45\xa5\xce\x77\x4c\xcb\xce\x55\x10\x58\x62\x58\xc6\x84\x07\x30\x74\x3b\xf2\xdc\x8a\x4f\x8c\x76\x94\x29\x2a\x37\x37\xaf\x97\x0d\xaa\x7e\x82\xce\x3a\x13\x12\xc7\xb7\xfb\xf8\x6d\x5c\xf5\xc9\x12\x00\x61\x90\x96\xa3\xc4\xcf\x33\x73\x93\x12\x9b\xc6\xa8\x1c\xb1\x2a\x67\x8f\x62\x85\x53\x05\x29\xe1\xa3\x07\x9c\xdf\x42\x67\xdf\x1c\x66\x6f\x65\x21\x0d\xc2\x00\x8e\x0f\xc0\x01\x4f\xfa\x4f\x39\xb9\x6e\x1a\x69\x97\x25\xb2\x55\xfd\x9c\xbf\xc1\x7d\x98\x9d\x29\x11\x31\x62\x61\xff\xf9\xc7\xfd\xf8\x05\x52\x22\x1c\x63\xf5\xed\xd5\x62\xbb\x7e\x0a\xca\x0f\x2c\x4d\x52\x40\x93\xe1\x45\xb5\xe3\xe6\x69\xca\x04\x1f\x3c\x99\xce\x60\xc3\x48\x7c\x38\xac\xb9\x18\xd2\x6e\x88\xd6\xe9\xd5\x8f\x71\x7c\x47\x2e\x1a\x32\x2c\xce\x29\x93\x4e\xe0\xa6\x69\xab\xc3\x6d\x55\xf7\xeb\x49\xca\x25\x60\xac\x5d\xea\xf6\x28\x8b\x31\x90\xc3\x37\x10\xc4\x44\x0e\x57\xf7\x13\xe0\x75\x34\x77\xc3\x71\x43\xb0\x34\xeb\x45\x36\x2f\xd0\x4c\x17\xbb\x54\x18\x0a\x26\xe0\xee\xcd\x33\xd4\xce\x4a\xbd\x1c\xc4\x9f\x0e\x86\x34\xcb\x52\x47\xf8\xd3\xb6\xb0\x3f\xb4\xd7\xf0\x9c\x97\x77\x95\x2c\x2f\x31\xce\xb1\x34\x93\x9e\x74\xa5\xf3\x46\x1d\xc5\xe7\x13\x48\x33\x8b\xdf\xa6\x99\x09\xa3\x77\x57\x1d\x86\x0e\x97\xb1\x1b\x28\x79\xb3\x2e\x61\xf2\xe5\x64\x12\x8b\x24\xa4\x9b\xb1\x58\x60\x54\x27\xcd\x52\x29\x9d\x22\x5d\xbb\xdb\x14\xf2\x4d\x92\xfe\x77\x95\xba\x84\x2f\xca\x9a\x0e\xbb\x4d\xaa\x12\x8e\xc1\x9f\x2f\xd5\x5b\xf7\xc1\xfa\xa2\xec\xee\x88\xc0\xc5\x26\xc0\x29\x2f\x7b\x3b\x97\x4c\xea\x54\x47\x11\x4e\x00\x4f\x08\xec\x5a\xa0\x46\x59\xf0\x51\x2f\x3b\xb5\xa9\x16\x2e\x14\x85\xf9\xa7\x9b\x5c\xee\x2b\x9f\x6f\xe8\xe3\x98\xbe\xa1\x15\xcc\x27\xb0\xdb\x3b\x80\x89\xc2\x17\x63\x51\xe2\x90\xd1\xef\xe1\x6e\x18\xe5\xed\xe6\xd1\xc4\x20\x61\x51\x4a\x30\xa3\x67\x1c\x7a\x19\x23\x5f\xbf\x9d\xa7\xa2\x18\x8b\xb4\x40\xcb\xb5\x7d\x81\xce\x5e\xef\x55\x3c\x19\x8b\x40\xd2\x29\xa9\xf1\x5b\x1c\x8e\xc5\x59\x4a\x64\xdf\x0b\x8f\x75\xfe\x96\x17\x70\x99\xd8\xb1\x6b\x6c\x31\xcc\xd5\xad\xfd\xcd\x4e\x8e\xcb\x17\x18\x8b\x0d\xc1\x7c\x5b\x20\x4c\xb9\x5d\x7f\x77\xf5\xe2\x63\x5b\x85\xc5\xc6\xe0\xa4\xbe\xff\x7e\xb7\x5d\x3d\xde\xad\x96\x4f\xbb\x9b\xd5\x8f\xd5\x66\xfd\xd4\xb7\xb0\x24\x50\xad\x3d\x55\xd5\x7e\xc8\x91\x32\x46\x19\x8d\xbc\x6e\x15\x6a\xc6\xae\xdf\x7a\x4b\xa2\xdb\x54\xb4\x8f\x32\xf6\x48\xa0\xc7\xba\x32\x47\xed\x91\x56\x55\x61\xae\x4f\xf7\x95\x81\x62\x5c\x78\xd7\x9d\xe8\x14\xea\x1c\xc0\xd7\x2f\x78\x6d\x75\xb5\x58\x5c\xde\xbd\x58\xa2\x0d\x5a\xbb\xb2\x79\x9d\x13\x5b\xb1\xae\x8f\x32\x17\xf1\x40\xc9\x1a\x07\x36\xc1\xea\xfe\x5f\x58\x8c\xe1\xdc\x84\xa5\x4e\x53\xaa\x34\x9d\x81\xbd\xad\x26\x15\xda\xbe\x15\x37\x2e\xba\xf1\x52\x1d\x1b\x58\x9a\x3e\x03\xc8\x44\x24\xd9\x00\x09\xef\x16\xb7\xa2\x3f\x44\xa2\xc8\x7b\x35\xdd\xbc\x7a\x38\xee\x37\xb9\x99\x15\x09\x31\x26\x12\x8e\xb5\xee\x83\x29\x73\xf5\x34\xd9\x53\x98\x90\xae\x60\x1d\x1a\x2d\x0f\xf0\x15\xf1\x58\xc3\x82\xc9\x04\xb8\x60\xd2\x5d\x15\x42\x48\x38\x2b\x2f\x97\xa3\x33\x96\xc5\x4e\x39\xef\xb1\x6a\x37\x87\x22\x9f\x19\x4c\x2c\x13\x59\xa6\x7d\xd0\xf6\xee\x68\x8e\xfb\x6d\xd5\x79\x3f\x43\x56\x7a\x9e\x9b\x64\x59\x66\x51\x6d\x4f\x1a\xf3\x58\x15\xb9\x3e\x8d\xa8\x03\x66\xfe\x19\xcb\x20\x46\xef\xbd\xb3\x2c\x16\x57\xc1\x73\x66\x2a\x52\x98\xe2\x7e\x9d\x2a\xad\x30\xa6\x08\xc1\x2e\x74\x92\xe6\x61\x9c\x20\x9b\xd8\xe5\xb7\x53\xc6\x05\x8f\x3d\xcd\xc5\x7c\x2e\x69\x6e\x31\x52\xba\x5a\xac\x1d\x27\x12\x1d\x13\x57\x31\xa6\x33\xad\xc9\x28\xca\xe6\xc4\x84\x1e\xe5\xa9\x99\x87\xcf\x87\x5b\x6a\xa9\xc9\xc0\x85\x38\x83\x38\x8d\x56\xa8\x7e\xec\x6b\x95\x81\xcb\xcc\x95\xf0\x8e\xbc\xaf\x25\xd4\x87\x1e\x0e\x39\xfb\x20\x26\x03\x84\xa7\x17\x20\xfb\xc5\x9c\x41\xca\x43\xdd\xef\xcf\x3a\x1f\x12\x33\xcc\xc6\x09\x33\xbd\xa0\xf7\x63\x55\xf4\xa3\xd1\x52\x89\xf0\x59\x69\xcc\x72\x8f\xa8\x9a\x33\xde\xdd\x60\x7d\xd1\xf9\x27\xb6\x26\xc6\x9d\xf5\xae\x7a\xfe\x51\xcd\x80\x1e\x8c\xc7\x49\xe6\x8a\x57\x83\x5b\x82\x52\xee\x1b\x3d\x62\xc8\xf7\x2d\x49\x1c\x45\x51\xc8\x0d\x85\x72\xfd\x6d\xe5\x69\xee\x7a\xc5\x93\xa2\x99\x04\xd7\x39\x11\x0e\x73\x33\xe4\x3d\x96\xdf\x1e\xfc\x7b\x71\xaa\x33\xe4\xe4\x6f\x70\x30\xff\xad\xf8\x2b\x4f\x22\x03\x41\xc0\x6b\x67\xab\x7a\xd7\x7a\xe7\x32\x1c\x37\x0c\x2b\xb6\x9e\xf2\xfd\xb1\x7a\xcb\x1f\xe0\xb9\xfa\x33\x97\xe5\xd9\x9b\xa7\xa9\x63\xdd\xaa\x61\x2f\x91\x0f\x68\x21\x0f\xa3\x32\x73\xc6\x53\x6e\x5d\x04\xc9\xc9\x2c\x17\xb2\xb5\x55\xbd\x9f\x9a\x1e\x3c\x05\xa7\x17\xd0\x4d\x20\xcf\x14\x3b\x23\x30\x9f\x3d\x3e\x8b\x62\x19\x4a\x7a\x9b\xa7\x70\xef\x6d\x75\x85\x6a\xa2\xe1\xde\x9c\x13\xd3\x2d\x6c\x8f\x50\x96\xa7\x71\x0a\x92\xf3\xcc\x55\x5a\xbf\xbb\x38\x73\x83\x60\xa3\x33\x86\xe3\xae\x9d\x61\x0e\xe7\xf7\x53\xd6\xb5\x2c\xdb\x13\xc6\x79\x26\x5b\x2a\x17\x9c\x24\x76\xb2\xca\x61\x05\xf0\xb2\x6c\x51\x35\x79\xfa\xe4\x82\x73\x8c\x42\x28\x47\xf0\x1b\x1e\x48\x28\xe9\x05\x3b\x71\xbb\xbd\x7b\x5a\x84\x23\x19\xe3\xc8\x1e\xe0\xe9\x0a\xb6\xf9\xf0\x16\x99\x70\x3c\x82\x9d\x8f\xa5\x2f\x71\xa5\x33\x9e\xe9\xc4\x92\xc1\x68\xf0\x82\xb5\x33\xf5\x03\xc6\x65\xc4\x71\x49\xbc\xa9\x87\xc0\x2e\x97\x71\x84\x22\x29\xd0\xf5\xdc\x0d\x14\xbd\x51\xcb\x65\x1c\x27\x3e\xe0\x81\xf2\x16\x3e\x10\x3e\x5b\x6b\xb8\x8c\x89\x09\x84\x7e\x5e\xa2\xf6\x6b\x6e\x0c\x94\x0e\x03\x35\x1d\x03\x32\x66\x81\x77\xda\x41\xef\x17\x2f\x18\x5c\x9f\xbe\x8f\xe4\x80\xcc\xa6\x3e\x0c\x9c\x3f\x97\x60\x6e\x40\x16\x0e\x28\xb6\x2a\xaf\x8f\xc5\xeb\xe7\xe1\x76\x2e\x21\x45\xca\xe1\xe5\xf7\xa7\xd9\x85\x55\x4a\xb1\xe0\x03\x29\x6c\x0b\xc7\xf7\xd3\x6d\xa3\x0b\x59\x9b\xd5\x65\x09\x71\xc6\x55\x26\x71\x4b\x5e\x3f\xdc\xfd\xc1\xa2\x68\x14\x88\xe7\xca\x3a\xdc\x76\xe7\x18\x5f\x1f\xeb\xf2\xfe\xb5\x1d\x0e\x51\x9e\x85\xca\xad\xf3\xd4\x0a\xd7\xb1\xc4\x2f\xee\x48\x07\xb0\x86\x60\x14\x77\xe5\x3a\x49\xd0\xe0\xda\xf9\xe4\xcc\x1c\x6b\x7e\x39\xd8\xc6\x35\xb7\x68\x77\x1e\x76\x1e\x3a\xb8\x7f\x42\xac\x95\x97\xc1\x9c\xef\xf7\x5c\x67\x19\x73\xfa\xcd\xcd\x7c\x0c\x6b\x05\x3a\x1b\x3c\xdf\x0b\x0b\x7e\x80\x69\x92\xc8\x9f\x62\x22\xa5\xb2\x60\xed\x60\xc8\x1f\xa3\x6b\x1f\x3d\x1d\x34\xe3\x86\x3a\x9e\xe6\x29\xb3\xd9\xe5\x97\x31\x9c\xc2\x48\x55\xc3\x45\xf4\x7e\x49\x23\xd8\x9d\xe3\xc4\xc6\xba\xa5\x37\xd0\x20\x9c\x3d\xf5\xf9\x9f\xe1\xb5\x6d\x62\xd0\xe3\xdd\xe6\x6d\x7b\xba\x95\xf5\x7e\x98\x89\xd6\x88\xa0\xfb\x59\x1d\xdb\x91\x6d\x22\xa2\xd4\x91\x6f\x95\xd5\x9b\xec\xbf\xd4\xc5\x45\x4d\x44\x59\x8c\x83\x73\x73\x77\x75\x3d\x36\x7f\x44\xcc\x5c\x70\xd0\xe6\x1f\x9b\x03\x68\x5f\x66\x34\x80\x6e\x47\xb7\x8b\xb3\x0c\xeb\x09\x9f\x51\xfc\x53\x06\xae\x57\x26\x62\x6b\xa5\x37\xc5\x6e\xc0\x22\x59\xf4\x7c\xa3\x15\x24\xe2\x28\x22\x8e\x3b\xf2\x36\xdf\xc3\x36\x84\x03\x05\xa1\x49\xea\xf7\x8b\xff\x3d\xca\x12\x5d\xc3\xfe\xda\x44\x39\x72\x7c\xd4\xba\x3d\xfb\x0a\x13\xdc\xee\xf8\x59\x69\x24\x2d\x0d\x04\x13\x6d\xb7\xfb\x6c\xaf\xd6\xab\x99\xff\x2e\x68\x9c\x80\xec\x31\x7a\x9d\x49\xe3\xf9\x82\xc7\x1b\xa4\xa0\x29\xc1\xa8\xc3\x35\x48\x57\xea\xb3\xd2\x15\x4a\x48\xc5\x18\x29\xea\x53\xb1\x82\x9a\x18\x43\xfa\x8e\xa7\xcc\x74\xde\x6a\x5e\x95\xb7\xc7\xc2\xe6\x45\x31\xa3\x03\xec\x2c\x53\x6d\xc4\x4c\x8d\xac\xe8\x7c\x56\x17\xa8\x1a\xfc\x25\x91\x12\x86\x69\xec\x10\x2a\xfc\x02\xfb\xfd\xe9\xfe\xd8\xe4\xfa\x93\xaf\x9d\xb2\x18\xf3\xe5\xbb\xdc\xb1\xb3\x9e\x8b\x1a\xcf\x4f\x10\x22\x8d\x1c\x49\xf4\x8b\x54\xa8\x95\xf0\x36\x62\x9c\xf6\xad\x38\xa1\x69\x60\x7d\xc0\x2d\xef\x5e\x96\x47\x59\x14\xa7\xbf\x87\xdf\x11\x3c\x4d\x89\x9b\x59\xb8\x65\x7c\x2f\xdf\xbb\x5d\xdf\x7c\xc9\x83\xe8\x11\x13\x5c\x66\x88\x6a\xd8\x39\x42\xb9\xe0\xb3\x4d\x7b\x8e\x2b\x97\xa3\xc9\xcb\xd6\x19\x91\x9f\x74\x43\xa6\x9d\xe4\xd8\xae\x81\x76\x51\xe4\x50\x62\x1e\xfb\xfb\x61\xfb\x89\x7d\x2b\x64\x66\x95\xff\x24\xb7\x35\xb8\x00\x40\xe3\xc2\x62\x6b\x7b\xbe\x9a\x0a\x9d\x31\xa4\xae\x91\xc6\xf4\xd5\x8a\xd7\x52\xbf\x2e\xcb\xf9\x48\x33\x19\xc3\x80\xde\xd3\xda\x51\x46\x04\x9b\x58\x40\x64\x91\x0f\xf7\x26\x14\x6e\xe7\x97\xf1\xc2\x4c\x40\xc2\x48\xa8\x6c\x7d\xb9\x40\xca\x10\x9a\x65\x0a\x15\x84\x1c\x1e\xe1\x0b\x94\xd1\x10\x92\xf5\x8e\x82\xb0\xd4\xe9\xaa\xd5\xa0\xab\xda\xdc\x57\xfb\x5f\xd0\x9d\x87\x53\x98\x63\xd3\xdc\x7c\xbd\xfa\x2b\x05\xd1\xae\xb1\xa3\x87\xe9\xf6\x80\x7a\xb6\xc2\x0b\x9b\x51\x33\x28\x93\x63\x88\x60\xb0\x64\xce\xf7\x55\x61\xa5\x46\xa3\xfb\xb5\x3c\xea\xd7\x31\x25\x24\x13\x56\x41\x1a\xc4\xab\x17\xb2\x2c\xab\xf6\x8b\xaf\xc6\x6b\x56\xe5\x43\xd5\xae\x90\xb7\xbe\x85\xf1\x1e\x97\x45\x8c\x20\x50\x3e\xcc\xa6\x45\x51\xf9\x58\xcf\xcc\xc6\xc8\xe2\x28\x73\xe2\x5c\x35\x98\x5c\xb7\xcb\x8f\x43\x51\xd5\xe0\x1f\x61\xf2\x52\x59\x9c\x90\x98\x87\x48\x78\xfd\x06\x98\x5c\x75\xf1\xa9\x8b\x9f\x29\x8b\x99\x46\xe3\x56\x4e\xd3\xf8\x23\x8c\x6a\x6f\x69\xf8\x33\xa8\xd0\xb1\xab\x95\x92\xcf\xa0\x0a\x98\x15\x00\xb2\x8c\x1a\x2d\xc9\x08\x76\xb9\x28\x9b\x4f\x17\xcc\xb3\x05\xb4\x5f\x3a\x33\x0a\x8e\xf4\x2d\xf7\xa1\x44\x9c\x60\xce\xe9\xbc\xfc\x2a\x49\xa4\x31\xfd\xbf\x73\x7c\x6a\x06\xe3\xc5\x8e\xdf\xef\x02\xd9\x45\x38\x29\x75\xb9\xbd\x06\xda\xef\xdf\x57\x37\x09\xd6\x99\x8f\x78\xa6\x59\x96\x08\x9d\xf0\xc1\x8e\xde\x82\xdc\xaf\xc2\x97\xcf\x52\x1e\x21\x78\x3e\x28\x03\xae\xad\xb3\xfb\xa6\x37\x61\x91\xd3\x20\xf0\x65\x9e\x7d\xfe\x34\x1c\x4e\xdd\xdc\x6b\x86\x52\x73\x96\x31\x21\xb0\x8c\x72\x79\xc8\xd1\x38\x3d\xeb\x66\x2e\x33\xc4\xc6\x2f\x2a\xac\x0e\xfa\xcb\xd9\x90\x65\xb4\x47\x2f\xdd\x1d\xae\x73\x33\xce\xe3\x64\x99\x76\xa5\x2a\xc1\x27\xfe\x09\xf9\xb6\xf2\xd5\x8e\xd3\x97\xc9\x2c\x50\x1f\x43\x7d\x1c\x67\x81\x7f\xed\x8d\x65\x32\x32\xa1\x96\xff\xbe\x6a\xba\x41\x0c\x65\x93\xbf\xc1\xa2\x3e\x1d\xda\xaa\x73\x2a\x82\xa5\x91\xc9\x58\x06\xe1\x8b\x07\xf8\x68\x1f\xe5\xa9\x3a\xb6\xcb\xa6\xcd\x27\x28\x91\x4c\x31\x8d\x0a\x69\x2b\x53\x15\x63\x5b\x22\xd3\xd4\xf1\x68\x94\xf0\xd1\x3e\x54\x03\x7a\x25\xd3\x19\x41\x78\x0d\x7c\xb4\xb5\xec\x39\x07\xf3\xaa\xc4\x9c\x85\x6f\x64\x44\x86\xba\x5c\x0f\xdf\xef\x77\x4f\xcb\xcd\xf2\xe9\xc7\xf2\x66\xb7\x58\xaf\x1e\xfa\x06\xca\x86\x3c\x77\x60\xc1\xc1\xd0\x5f\x67\x4d\x34\xad\xdc\x1f\xa6\xdb\x44\x66\x74\x86\x85\x05\xbe\xae\x76\x37\x9b\xdd\xc6\xc4\x41\xb2\x6e\x85\x1d\x16\xd2\xfc\xe3\xee\x93\x11\x51\xda\x83\x46\x9c\x47\xe0\xe9\xc3\xd5\x90\x69\x92\x11\xcd\x30\x47\xfb\xbf\x6a\x18\x5c\x32\x12\x31\x12\xe4\xf6\xa8\x33\x3f\xf8\x4c\xdf\xc0\x00\x52\x58\xaa\xe3\xc9\x51\x97\x5c\x9f\xd6\x63\x39\x81\xbf\xc5\x9f\xcc\x64\x9c\xba\x94\x42\xd7\x2b\x1a\x90\x0b\x7e\xb6\x8e\xc9\xd8\x32\x5c\xee\x55\x0d\xf2\x75\x65\xbe\x97\xf9\x7f\x8e\x50\x42\x73\x4e\xb1\x32\x3d\x8f\xc8\x34\x73\xc4\x84\xc1\x4d\xf8\xe5\x1e\x21\x69\x64\x55\x12\x82\xdd\xbb\xff\x1c\xf3\x3f\x77\xce\xd0\xbe\x30\x2b\x24\xcd\x1c\x15\x7d\xf7\x05\xbf\x1f\x46\x66\xad\xa4\x8a\x21\xe8\xe7\xeb\xfa\x61\xfd\x74\x75\x7d\xb7\xdc\xdd\xad\x37\x1b\xc7\x7f\xfd\x5b\xdf\x46\xc7\x9e\xd8\x4f\x06\x5c\x90\x9f\x35\xa1\x85\xa5\x08\x28\x34\xde\x31\x7d\x1a\x90\x40\x32\xa1\x0e\xa1\x30\xc9\xc7\xf7\x14\x90\xe2\xc2\xaa\x28\x93\xd4\x3d\x54\xb7\xb8\xba\x9a\xa6\x26\x00\xf1\x46\xad\x52\xe2\x40\x91\xcd\x8b\xac\x21\x04\xa4\x65\x9a\x02\x96\xe6\x36\x47\xb5\x93\xb5\xca\xdb\x5f\x2b\xa4\x33\x99\x66\x29\xee\x9f\x07\x79\x6a\x2b\xd2\x5f\x06\xd2\xc4\xa5\x18\xa1\x7e\x86\x52\x9f\x1c\x62\x63\x96\x05\x93\x2c\xce\x60\x5c\xf7\xb3\xb2\x8f\xc7\x3a\x6f\x65\x99\xeb\x01\xf3\x18\xda\x92\x04\xbd\x7c\xbf\x40\x3e\x0d\x09\xda\x79\xc1\xdc\x67\xf2\x5c\x7f\x6b\x11\x92\x5d\xcf\x44\x98\xb8\x33\xd5\xf7\xb1\x20\x0c\x93\xcc\xb8\x6f\xd1\x19\x03\x45\xaf\x7f\x30\x49\x77\x4a\x9e\xba\xfa\xc4\xf3\x90\x4a\x68\x20\x22\x24\xea\x50\xc7\xba\xec\x43\x36\xe1\xa0\xa0\x0c\xd1\x93\xde\x6b\xdc\x56\x1b\x7c\xa5\xdf\xfc\xbf\xa7\xde\xa4\xcc\x22\x85\xe9\x59\xf4\x26\xd1\x81\x6d\xf2\xe7\xe9\xd0\xca\xb4\xc0\xb8\xa9\xc7\x7c\xde\x54\xcf\x7f\x17\xf2\xf9\x8f\xe3\x65\xe2\x2c\x26\x33\x03\x69\x3c\x4e\xa5\x4f\x57\x7f\x99\x41\x86\xf5\x0e\xad\x13\x90\x9c\xc6\x58\xa4\x54\x51\x9c\x86\x00\x47\x79\x6c\x50\x28\xdd\x1f\x53\x10\xe3\xe8\xc3\x17\x9a\xd0\x49\x31\xa9\x09\xc5\xc0\xc8\x01\x97\xfa\x3e\x30\x36\xbd\xb5\x89\x22\xd4\xa0\xb8\x59\xff\x4f\x88\x1c\x49\xac\xa1\xfd\x7f\xff\xbf\xff\x77\xbf\x7a\xe8\x49\x30\x77\x3f\xae\xee\xbe\x87\x92\x13\x09\xa9\x25\x59\xcf\x62\x61\xfc\x1c\x9d\xe4\x14\x25\x58\xc5\x3c\x71\xcc\xb5\x6c\xf5\xcb\x99\x13\x7b\x56\x75\xc5\xa4\xcd\x12\x0c\x72\x3d\x55\xc7\x02\x7a\x38\xb4\xb4\x3a\x53\x01\x92\x57\x57\x36\xef\xc7\x86\x8a\x2c\xc5\x6d\x63\x7d\x38\x36\xe7\xec\x4f\xdd\xf1\x44\xb8\x85\xa2\x41\x42\x9f\x3e\x55\xe6\x8f\xc7\x06\x70\x32\x7e\xdb\xae\xe7\xb6\x80\x8a\x21\xc1\xae\x51\xc7\x93\x83\x3a\x75\x9e\xdc\x20\x0a\x13\xd2\x66\x8a\x10\x17\x2a\xf3\x3b\xab\xcb\x1d\x5e\x1f\x4f\xe1\x73\x4c\xb9\xbb\xc2\x49\xca\x95\xf8\x3d\x81\x2c\xf2\x3f\x67\xb6\x8d\x22\x40\xb0\x92\xf6\xf1\xea\x69\xb3\x5c\xec\x16\x4f\xcb\x9b\xd5\xd6\xe9\x03\x8c\xe8\xe8\x98\xa2\xd4\x29\xe6\x4c\x6e\xdd\x0d\xb1\x5f\xde\x3b\x49\x04\x9e\xd5\x78\x9d\xb1\xef\xa5\xa9\x56\x33\x8b\x44\x25\xe0\x80\xa4\x9d\xdf\x2f\xf3\xe2\x34\xb8\xb1\x63\xac\x8e\x4a\x89\x41\x2a\xf4\x83\x83\x85\x2e\xb7\x5f\x9d\x09\xdd\x4c\xf1\x8e\x2a\xa5\x31\x5a\x09\x0e\xa2\xdf\x0d\xe1\xc1\xa6\x13\xa1\x4d\x26\xd0\x08\x42\xcc\xe3\x2f\x34\x56\x98\x4a\xa5\xc2\x40\x12\x8a\x57\x3e\x56\xe5\x9f\xf9\xe5\x40\x9b\x62\x89\x63\x0c\xaa\x61\x64\x28\x87\x63\xd6\xd9\x7a\x0d\xe8\xaa\x34\xbf\x3f\xb9\x02\x86\x31\x36\x44\xf1\x44\xa0\xc4\xd9\x7b\x37\x80\x7b\x5b\x4a\x71\x2d\x10\xc1\xe8\xe2\x8d\x8e\xc4\xe9\x93\x27\x15\xcc\x21\x09\xc1\x2b\xb2\xfc\x92\x8a\x87\x29\x21\x01\xb3\x13\xff\x86\x8f\xc3\x67\xeb\x4e\x68\x0a\x9a\xf9\x32\xf7\x6e\xd4\x0e\xd5\x03\x2a\x23\x31\x22\x0b\x76\xcd\xa9\xd4\x0e\xe9\xe0\xb9\xa4\xbc\xbf\x3b\xb5\xa5\x54\x46\x0d\x16\x93\xda\xbc\x40\x11\xc4\xe0\x9c\x88\xc1\x5f\xf3\xc2\x1e\x97\xc9\x22\x98\xca\x12\x89\xe3\x75\xbb\xdd\x5e\xe0\xd8\x11\xb3\x27\x97\x5a\x45\x1e\x43\xb8\xfd\x38\x23\x92\x66\x4a\x5a\x89\x70\x85\xe5\xa2\xda\xef\xbb\x61\xe4\x31\x37\x9b\x53\xd3\x42\x00\xe7\x2b\x15\x49\x74\x32\xfa\x79\xfb\xe5\xb8\xdf\x9f\x45\x2b\x42\x63\x9a\x62\x15\xe0\xdd\x51\xbf\x9e\xae\xa5\x3a\xf5\x57\xc9\x20\x28\x45\xdc\xcb\xba\xcd\x1d\x61\xd6\xf6\x74\x80\x95\xb9\x1b\xe5\xd4\x7d\x73\x1d\x2b\x9a\x8d\xe0\x9f\xae\x6a\xe2\x1f\xf3\x46\x80\x55\x7b\xb6\xae\xf6\x3f\x21\xff\xb5\x3d\xa0\x0c\x8b\x02\x73\xcb\x27\x22\xb5\xb3\x77\x31\xcc\x21\x7b\x10\x26\xf5\x0c\xed\x0e\x3e\x0e\x79\xcf\xbf\xca\x94\x11\x3c\x40\xb9\xbf\xd7\x61\xa7\x50\x10\x73\x44\xad\xd4\xae\x48\xe3\x19\x48\x7f\x84\x29\xec\x48\x95\xd7\xed\xac\xd2\x4e\x81\xf4\xdc\xf7\xdd\xd8\xdd\x56\xa1\xba\x62\x75\x33\xeb\x17\xd0\x8e\x0c\xb7\x81\xce\x09\xe9\x9e\xe6\xaa\x34\x3f\x67\x34\x5d\xa1\x2d\x38\x95\xa0\x40\x6d\xd0\x74\x6b\xda\xa7\xe9\x27\x7c\x9e\xb0\x42\x58\x22\x10\x19\xb8\x6b\xa0\x34\xf7\x55\xe9\x91\x73\x7f\x9e\x4d\xab\xd0\x9e\xa7\x34\x48\x22\xb5\x2f\x7e\x12\x4c\x68\x0c\x99\xb2\xda\x25\x1b\xaa\xd3\x6b\x55\x35\x2f\x21\x01\xa5\x23\x0d\x52\x8d\x42\x19\xdd\x54\xbf\x01\x69\x8a\xbc\xfc\x04\x1c\xab\x63\x62\xb1\x34\xf5\x50\xe7\x3a\x2f\x9f\x1f\x0b\x19\xdc\x27\x1d\x0b\x96\xa1\xf1\x48\xe9\xa4\xf6\x4e\xc7\x99\xc5\x88\xb4\x3a\xe6\x85\xb9\xcc\xc4\x36\x7d\x29\x1d\x7b\x68\xe7\xb3\xdc\xc3\x52\xd6\x68\x34\x85\xdb\x90\x84\x98\x51\xfd\xc5\x8f\x1c\xde\x3f\xa1\x4c\xef\xda\x72\x5c\xba\x51\x2a\xa4\xb3\x79\xa7\x1d\xa3\x69\x92\xe2\xc0\x94\xc6\x74\x7b\xb7\x7e\xc1\x52\xf5\xab\xd2\x4c\x75\xed\x2e\x2f\x4f\x3a\x4d\xdc\x57\xf6\xa4\x85\x97\xf5\x6f\xe7\xe7\xc8\x04\xc3\x5b\x6d\x0e\x35\x1d\x8a\xa9\x74\x67\x21\x7a\xe7\x70\xa3\x73\xa7\xa8\x30\x29\x5b\xf6\xed\x98\x4d\x44\x90\xde\xba\x7a\x1e\x14\xcb\x98\xe6\xa9\xd3\xff\x42\x34\xa1\x9b\xb8\xd3\x64\x4f\x4c\x7a\x44\xbd\xe6\x2a\x91\x2e\x13\xec\xe0\x00\x71\x7f\x15\xc5\x42\x81\xde\x24\x91\x3e\x1f\xbb\x63\x5f\x48\x8b\x8c\xb3\x61\x1c\x0d\x74\x53\xe7\x7c\xc8\x4c\x0b\x9b\xf5\x2c\x4e\x3e\x2f\x77\x01\x07\xa5\x33\x43\xb8\x0c\xc9\xe0\x23\xea\x4d\x5e\xfe\x08\x52\x68\xd4\xb5\x36\x79\x53\xbd\x97\xbf\x4d\x8c\x61\xad\x52\xc7\x93\x72\x9b\x37\x2f\xa3\x0c\x94\x56\x99\xd3\xc8\x7f\xcb\x87\xb2\xaa\x11\xf9\x00\xd3\x5a\x39\x01\xad\xdb\xe5\xcd\x5f\xd7\xda\x6a\x6d\x79\xd0\xbc\xc1\x97\x3f\xe3\x2c\x1a\x1e\xd7\x24\x12\x51\x9d\x58\x70\x33\xf9\x7e\x36\x16\x08\x82\xf6\x65\x83\x79\x2d\xcb\x17\x39\xf1\x23\xb4\x4d\x09\xc6\x83\xaa\x5a\xea\x02\x56\xed\xa6\xb3\x89\x46\x7a\x26\x4c\x5b\xd0\x4e\xdd\xa7\x86\x11\x4d\x31\x33\x11\xd1\x8e\x98\xe2\xa5\xca\xa7\xb5\x80\x26\xa6\x12\x31\x63\x0e\xef\x71\xce\x20\xc2\x4c\x9c\xc4\x28\xc1\xe8\x65\x34\x87\x78\x45\x38\xae\x04\xaa\x62\x6c\x17\x77\x93\x9a\x60\x13\x5b\x8a\xf0\x97\x2d\x34\x6d\x32\xfd\xc0\x26\xb6\x1a\x83\x93\x9b\x6a\x33\x62\xa9\x61\x86\xc4\x06\x97\xe3\xf7\x97\xaa\xff\x89\x58\x99\xb8\x1a\x2d\x39\x69\x9a\x46\x91\xa3\x99\x2c\x9c\x54\xdc\x9d\xec\xcd\x5e\x43\x23\x47\xf8\x11\x30\xe5\xff\x23\xf5\xeb\xa1\x9a\x6d\x76\x86\x12\xc1\xdc\x68\xec\xd7\xfd\x6e\xd4\xcf\x1b\x65\x98\xa0\x6b\x5e\xf2\x43\x33\x31\x8c\x0d\x4d\x34\x22\x88\xb5\xc7\x05\x85\x9f\x21\x46\x9c\xcc\x4d\xfe\xec\x8b\x97\xba\xe7\xfe\x16\xa0\xeb\x26\x89\x29\xeb\xd9\x3e\x1e\xab\xfe\x33\xa5\x5a\xe0\x3e\x75\xb3\xbc\x7d\x5a\x6f\xb6\xbb\xfb\xf5\xc3\xf6\x6b\x08\x1a\x18\x96\x5a\x3a\x55\x9d\xbd\xcf\x8b\xce\xe3\x29\x61\xc4\xd2\xc9\x30\x3a\xe9\x04\x92\xfa\x88\xe1\x2f\x03\x1f\x86\x47\xbe\x60\x4d\x36\x28\x23\x3c\x81\x0e\x1a\xce\x20\x48\xdb\xb7\xc7\x66\x1e\x8a\xed\x1b\x59\xe4\xfd\xb8\xaa\xdb\x81\xf0\x0f\xce\xe2\xb6\xbf\xaa\x7f\xbd\x54\x9f\x67\xb8\x49\x89\xf7\x0c\xc7\xd1\x55\x23\x22\x8b\x1a\xa3\xa3\x42\xe4\xce\x3e\x3f\xed\x64\x67\x2f\xf4\x1d\x2a\x18\xc3\x98\x43\xb0\xc9\x8b\x5c\x9f\xdc\x44\x9f\xa1\x5b\xc6\x93\xdb\x9f\x9b\x45\x64\x50\x74\xda\xbe\xd4\x55\x89\xb2\x5a\x13\x21\xef\xd0\x94\x30\x26\x03\x9e\xf9\xfd\x7b\x33\xfd\x1e\x99\xb0\x68\xcd\x2c\xaa\x66\x9f\xeb\xe5\xc7\x01\xea\x1c\xca\xbe\xb0\xc6\xb7\x92\x91\x88\xd2\x11\x5b\x04\xa2\xec\xa6\x9d\x2c\x4d\x82\x6b\xdd\xf5\xe2\xd6\xd1\x3f\xff\x77\xa4\x03\x46\xf1\x18\x31\xae\x58\xe6\xe1\xeb\x65\xa6\x2f\xa2\x44\x8a\x9c\x4c\xb6\x96\xdd\x83\xfe\xbd\x18\xad\x51\x42\x22\x68\x35\xc4\xaa\x5c\xe4\x75\x96\x38\x31\xca\xc6\x21\x14\xf9\xb8\x5e\xdf\x39\x02\xbf\x2c\xbc\xbe\x89\x6d\x88\x37\x96\xa0\xdb\x3b\x90\xf6\xf2\x12\x6a\x8c\xa4\xd4\x04\x0e\xad\x7d\xde\xd7\x6a\x1b\xa3\x0c\x32\x93\x07\xea\x82\x2b\xf3\x76\xf6\x02\x17\x42\x79\xc6\x18\x82\xc9\xeb\xb7\x5e\x51\xa9\x6e\xcf\x16\x39\x10\x46\x27\x83\x9e\x23\xfa\x50\x93\xea\x2c\x63\x95\x43\xa3\x3c\x83\x43\xf6\x5e\x2c\x63\x75\x6d\x21\x52\x2e\xba\x80\xab\x46\x60\xc1\x0d\xc7\x0c\xc7\x1d\x12\xb7\xf8\xf0\x23\x89\xa4\x17\x32\xc1\x48\xd7\xb7\x99\x76\x20\x03\xa2\x34\xea\x72\x6c\xde\xab\xda\xb8\x82\x8b\x70\x2e\x25\x29\xf2\x0e\xfc\xbb\xca\xcb\x45\x71\x54\xfd\xef\x22\x46\x0d\x56\x69\xcc\x5c\x56\x84\x01\x55\x2a\xf3\x07\x91\xe3\xf9\xb2\xd7\x01\xd4\x18\xac\xc4\xf7\x41\xea\x66\xb5\x3f\x54\x75\x0b\x75\x80\x86\x43\x62\x0c\x86\x89\xab\x69\x22\xf7\x4c\x48\x91\x41\x6a\x21\xf3\x45\x01\x08\xa9\x7d\x82\xff\x1c\x73\x47\xcc\xe7\x05\x4d\x88\x08\x86\x8c\x3f\x85\x71\x12\x7b\xee\x9d\x85\xfc\xf7\x71\x80\x57\x02\x17\xa0\xa2\x40\x6b\xde\xdc\xe7\xb3\x7c\x3e\x08\x1e\xa3\x53\x54\x54\xcd\x67\xa0\x03\x10\x99\x40\x23\xa9\x1b\x17\xa4\x05\x79\x46\xee\xd6\xb7\xd3\xd6\xdf\x2b\x44\x80\x2e\xd5\x88\x83\x90\x11\x3e\x53\xcf\x37\x78\x9d\xcf\xf2\x70\x90\xa5\x96\x3b\x39\xa0\x0d\x14\xc5\x28\x44\x08\x99\x8a\xe2\x40\x4d\x99\x37\x87\x63\x0b\x23\x28\x3d\xc8\xd4\xf1\x79\x38\x0b\x0c\x19\x4e\x67\xdf\x53\xa6\x12\x3d\x52\x33\x4a\x5f\xa0\x8e\xf7\x62\x54\x35\x01\x52\xe8\x2c\x42\x93\x56\xe7\x7b\x59\xac\x8d\x69\x6e\xab\x7a\x7d\x6c\x75\xb5\x9f\x44\x32\x40\xaa\x2c\x20\xa9\xbf\x56\x0d\x12\x08\x4c\x5f\x45\xea\x04\x31\x25\x9d\xd5\x80\x53\x01\x09\x08\x9b\xfe\x4e\xd6\xe0\xe6\x1d\x22\x34\x0b\x59\x14\xd3\xed\x62\x54\x5a\xd1\xbb\xd7\x41\x73\x8e\x81\x8a\x15\x9a\xbb\x5e\x76\xf3\xac\xb8\x01\x14\x4f\x44\x4f\x60\x54\x4c\x73\x79\xd3\x96\x3a\x8a\x30\x04\xb2\xf8\x1a\x72\x35\xa0\x15\x15\x0e\x67\x54\x37\xed\x08\x88\x7e\x13\x28\xc7\x66\x57\xb0\x16\xf1\x07\xbd\x16\x5a\xb0\xeb\xc1\x08\x9b\x7a\x91\x47\xaf\xf2\x30\x21\x0c\x99\x76\x99\x51\x51\xe2\xed\xc8\x2b\x27\x67\xe2\x73\x4c\xeb\xcf\xfc\x31\xb0\x24\x35\x5e\x8e\x27\x88\x6f\x38\x03\xe5\xff\xe8\xbf\x2e\x61\xec\xc1\x52\x03\xae\x6a\xae\xd2\xaf\xfd\xd7\xb0\xdc\x95\xe9\x85\xed\xd4\x47\xb8\x3e\x79\x4e\xab\x22\x1a\x0d\x40\x8a\x73\x82\xa6\xd0\x4e\x0b\x4c\x27\xb8\xd2\xc4\xeb\xe3\x09\x6b\x3c\x9a\x69\x86\x28\xf8\x24\x60\xad\x44\xa8\xec\x6a\xb1\x7e\xef\x41\x92\x36\x52\x2e\xbc\x89\xe1\xd7\x7a\x59\x9a\xbe\x5c\x2e\x58\xa9\xb3\xf2\xa0\x7f\x7c\x92\x7e\x9a\x47\xa5\x2e\x74\x8e\x8d\x89\x64\xb2\x07\xc8\x6e\x93\x00\x73\xb0\x71\xea\x88\x61\x1b\x7c\x8d\xf3\xcc\x89\x25\x04\x02\xd2\x1b\x65\x4c\x9b\xe3\xfe\x51\xe6\xf5\x78\x72\x59\x4a\x38\xf2\x67\x36\xef\xf2\xb0\x90\xb5\xb9\xad\xea\x99\x46\xdb\x68\x82\x59\x9a\x82\x4a\x66\x7a\xcc\x98\xc4\x9a\x7c\x0b\x4b\x75\x92\xda\x01\x3d\xe6\x03\x45\x03\x76\xcc\x26\x24\x42\xde\xb8\xc7\x17\xc4\x09\x4c\x3d\x60\x9b\x24\x1c\xf7\xcc\xeb\xed\x62\xb3\x7b\x5c\x3f\xa1\x42\xd4\xfd\xd5\xef\xfd\x71\x4d\x68\x1a\xb2\x8c\x4d\x5b\x1f\x75\x5b\xd5\xf3\x22\xdb\xf1\x6e\x6a\x13\x70\xe2\xcb\xb2\x70\xd9\xd5\x66\x90\x57\x63\x36\x8d\xc0\x57\x41\x7b\xd2\xd8\xab\xc3\xe1\x5c\x5c\xd2\x2b\xd8\xfe\x2b\x9c\xc4\x33\xe2\x36\x7c\x6f\xf6\x7a\x8d\xc9\x27\x90\x66\x3e\x15\x6d\xaa\x33\x0c\x5f\xb5\x79\x58\x3a\x2d\x53\xcc\x79\x56\xdd\x62\x7f\x2b\xf3\x02\xcc\x8f\x0a\x05\xd1\x46\x01\x1c\xdf\x96\x1b\x63\x1d\x18\xef\xf0\xfd\x0c\xd5\xe0\xdb\x08\x1a\x71\x3b\xd0\x67\x77\x23\x7a\xfa\x0c\x22\x65\x88\x88\x0e\xb3\x69\x37\x04\xfa\xad\x00\x2d\x5d\x00\x60\xdf\xc7\xa7\xac\xa4\x8e\xbd\xb8\x76\x5b\x9e\xe9\xac\x8f\x6b\x68\xdf\x01\xca\x9b\x5a\xbe\xf7\x5f\x4b\xc5\x8c\xfb\xb2\x52\x64\xca\x98\xa4\x23\xac\x62\xce\x4f\xc1\xd0\xd1\x4f\x04\x8e\x07\xaf\x67\xfa\x7c\xca\x92\x88\xcc\x99\xda\xc3\x55\x34\x01\x46\x7c\x14\xcd\x57\xd0\x6f\x30\x7c\xdc\x2d\x44\xa7\x4b\x0e\xa2\x35\xb1\x45\xbb\xb2\xf1\x75\x45\x7d\xae\xdd\x1a\x21\xb0\x12\xb2\x7d\xa9\x01\xb5\x48\x3f\x59\x52\x2c\x50\x83\x28\x19\x69\x5b\xa8\x6f\xab\xfa\xf5\x09\x1a\x7d\xec\xb9\x76\xa6\x74\x12\x16\x24\xc5\xc2\x96\x77\xc8\x57\x8b\xf5\xbd\xfc\xc8\xf7\xc7\x7d\x7f\x50\x19\xd4\x2f\x56\xc7\x4f\x62\x06\x16\x40\x63\xb9\x5a\x0d\xed\xae\x08\x8e\x0e\x8f\xa2\x88\x23\xc8\x69\x9f\x97\x55\xed\x49\x20\x26\xd3\x85\x47\x11\x25\xc4\x55\xf0\xe5\xed\xa2\x0a\xde\x26\x8f\x22\x30\xd4\x73\xde\x22\xa6\xae\xc6\x14\xdf\x6c\x4f\xe2\x51\x1c\x09\xe9\x91\xf9\x8b\xbd\xd9\x69\x17\x24\x09\x17\x21\x91\x53\x12\x43\xd0\x9f\xae\x7d\xc6\xbe\x9e\x5d\x83\x44\x2a\xf2\xfb\x9a\xac\x9f\x77\x74\xb2\x1e\x74\x87\x0d\xfa\xd5\x3e\x3c\xe6\x29\x09\xbd\xe2\xd2\x2f\x4b\xd5\x78\x44\x14\x43\xcb\xda\x56\xf5\xae\xa8\xca\xe7\x16\xea\x7d\xff\x70\x46\x61\x71\xd4\xf7\x06\xea\x27\x68\xf3\x1a\xbe\x56\xa6\x98\xdf\x1c\x28\x4b\x7a\xba\xc2\xd5\x62\xdd\xcd\xfd\xa9\xe0\xc8\xec\x96\x29\x01\x04\x1e\x7d\xa9\xda\x4f\x0a\xc5\x66\xed\x3b\x9f\xd0\xb3\x6c\xfc\x2a\xa5\x3f\x3b\x8d\xa5\x5c\x4e\x23\xd0\x5f\x9d\x2a\x63\x38\xce\x9d\x95\xaa\x03\x54\xe0\x51\x1e\x7b\xac\x03\x8f\x58\x96\x62\x84\xa3\x79\x97\xf5\xfe\x09\xc6\x36\xd4\xc5\xf1\xcc\x23\x66\x2c\x5a\x1f\xd7\x79\xb5\xe9\x23\xfa\x3c\xe2\x89\x44\xff\xea\x8b\x93\xc7\x19\x03\x35\x79\xc4\xd3\x04\x75\xfa\xca\x5e\x7e\x91\x47\x3c\x03\xe0\x61\xaa\x3a\xc2\x96\x66\xb4\x09\xcc\xee\xca\x4d\x82\x09\x13\x14\x43\xdb\x56\xae\x16\xea\x93\x27\x14\x31\x44\xe3\x3c\xfb\x2f\xb2\x51\x3c\x12\x29\xa0\x73\xba\x91\x16\xc6\x88\x45\x7f\x38\x8b\x1c\xd3\xbe\xad\x01\xfe\x84\x40\xb3\xe7\xfc\xa7\xcb\x17\xcc\x48\x8a\xbb\x5b\x67\x56\x77\x26\x84\x7f\x88\x5e\x6f\x3d\x34\x4b\x04\x7a\x35\x3e\x55\xbd\x33\xf5\xf1\xf9\x6c\xbf\xb8\xdc\x17\x99\x88\xd3\xde\x7d\x9f\x44\xd0\x7d\x03\x69\x25\xc2\x43\x6e\x97\xcb\xdd\xd5\xcd\x7d\x00\xea\xf0\x48\x31\x47\xc2\xec\x8a\xf7\xfb\xac\x13\x8f\xb4\x8d\xb1\x17\xf6\xd5\x1b\x7c\x96\xc8\x98\xde\xc3\x10\x97\xec\xba\x41\x2c\xd6\xf6\x23\x5c\xc9\x50\x97\x33\x5b\x1f\x5a\x30\xab\xcb\x86\x29\x8f\x4c\x4a\xd1\x22\x3a\x38\x0e\xb1\xab\x73\x5e\x47\x11\x5a\x66\x04\x5f\x36\x6f\xae\xa1\x5d\x74\xfb\x5c\x3f\x76\x4d\xc6\x10\x5b\xd0\x8d\xea\x7e\x1d\x33\xca\x22\x01\xd8\x55\xb7\xe1\xb4\xb2\xff\x1d\x22\xeb\xec\x7f\x97\x4c\xbe\x3a\xb6\x55\x7f\x88\x39\xc6\xf7\xa2\x7a\x1f\xa5\x47\x79\xb7\xf2\xa1\xa9\xdc\x2b\x96\xfc\x95\xc1\x75\x31\xfd\x31\x80\xa0\xcf\x74\x8f\x79\x04\x56\x0a\x57\x14\x8b\x4c\xc9\xb7\xb2\x28\x96\xd6\x82\x6e\xdd\x83\x5c\xfe\xfe\x16\x5c\x75\xd8\xa8\xba\xb8\x59\x97\x5e\xc1\xea\xe2\x29\x71\x94\x65\xc8\xc9\xbc\xc9\x8b\x5c\x57\xe5\x0f\x59\x14\x2e\x72\xf7\x5b\xdf\xc0\x18\x39\x89\xc0\x75\xbd\x7a\x23\x4f\x7d\x03\x20\x36\x58\xc6\x48\x7a\x73\x2e\x8b\xdf\x35\x72\xf0\xd2\x07\x78\x9f\xea\x02\x5c\xcc\x86\xf1\x38\x16\x0c\xf7\xf5\xdb\x63\x69\x76\x53\xb8\x0c\x8f\x49\x6c\x91\xe7\xf1\x6b\x55\xe4\xaf\xd5\xa1\x9d\x48\x91\xf1\x98\x50\x63\x47\xfc\x5e\xd7\xc7\xbc\x30\x79\xf9\xd7\x80\x8f\x4f\xf2\x33\x03\x92\x81\xc7\x44\x44\x91\xdf\xae\xee\x2a\xfd\xea\x4a\xa2\x7f\x91\x27\xe0\x31\x31\x11\x33\x03\x94\x03\xb3\x26\xe7\x69\xe5\xd9\x39\xa0\x50\x80\xfb\xad\x6a\x03\xba\xdd\x1f\xa1\x11\x0b\x90\x93\x45\xde\x4e\xeb\xb9\x79\x4c\x63\x57\x0d\x33\x92\xc0\x38\x4b\x4c\x9f\x07\x83\x78\x4c\x69\x1f\xa5\x42\xe3\xdd\x91\x63\x5c\x9f\xb6\xb5\xd4\xaf\xab\x29\x08\x9e\xc7\xa9\x16\xc8\x7a\x89\xd1\x0d\xaf\x7c\x71\x2e\xee\xce\x63\x46\x08\x82\x9f\xf3\x66\x57\x7d\x2a\xf1\xcb\x63\x06\x99\x96\x41\x16\xba\x95\xc5\xaa\x7c\xab\x30\x93\xe3\x8f\x77\x63\xc7\xe9\x7e\x1c\xcb\xf6\xaa\xf5\x25\xa1\xdb\xd3\x61\xd4\x44\x45\x18\xfc\x0d\xd9\xf8\xf1\x5c\x8d\x45\xe4\x2a\x2c\x9f\x9d\xe2\xc4\x26\xff\xe8\x8f\x10\x87\xa0\xaf\x06\x92\x16\xef\x82\xf6\x2b\x49\x2c\x98\x53\xe2\xfe\xf6\xb0\xdd\x4e\x06\x99\x00\x8e\x10\x95\xdb\xbc\x94\x45\xfe\xa7\x9c\xa0\x7b\x2f\x8f\xe9\x8c\xc4\xd4\x73\xd6\x5e\x7b\x31\xa0\x38\x5c\x2e\x13\x09\xb5\x41\xe2\xd5\x53\x5a\xc0\xe1\x5c\x66\x8b\xc7\x32\x32\x18\x7e\xff\x5a\x15\xf2\xa5\x3a\x7c\x4c\x9e\x4a\xc7\x09\x96\x73\xee\xf2\xe6\x6a\xed\xd5\xa4\xbf\x37\xf2\x19\xfb\x6b\xf6\x1d\x75\x12\x21\x5d\xec\xcd\xd3\xe3\xa7\x4f\x3e\x5b\x2c\xb4\x31\x68\x8b\x23\xae\x6f\xf7\x75\xb5\xfb\xdf\xed\x1f\xfd\xad\x6d\x0c\x3e\x58\x38\x0a\x8c\x9c\xad\x84\x97\xbb\xc6\x50\x85\xf1\xbf\x1e\xb6\x38\x66\xb6\xe5\xb1\x61\xda\xe1\x2e\x0b\x28\x8d\x92\xfa\xb5\x1d\x0a\x4b\xff\xef\x5f\x83\xf3\x34\xfa\xbf\x63\x50\xd2\x9b\xbe\xb4\xc9\x00\x57\x6e\x75\x3c\xdd\x16\xd5\xfb\x0c\xb3\xc5\x63\xa3\x84\x94\x63\x54\x96\xa7\xae\x9e\x2d\x67\xc6\x72\xd4\x4c\xc0\xac\x54\xfe\x27\xec\x4a\x78\x7f\x42\x62\x99\x9b\xcd\xff\x1e\xe1\x3c\x73\x37\xeb\x48\x48\x85\x63\x50\x36\xfb\xbc\x44\x52\x94\x30\x76\x77\xf5\x08\x13\xed\xdd\x41\x1e\x83\x20\x99\xa7\x8d\x58\x4d\xdd\x37\x1e\x43\xe6\x28\x97\x3b\xb3\x22\x94\x34\xbc\x57\xfd\x51\xc5\x30\xdf\x5d\x83\x3e\xd6\x4d\xfe\x06\xbb\x6e\xc2\x4e\xa2\x09\xc3\x63\xd9\x58\xa1\xab\x7a\x57\xb5\x2d\x34\xa7\xa9\x23\x10\x5b\xad\x20\xa4\x4c\x7c\x4d\xde\xa5\x18\x08\x27\x11\x25\x18\x47\xfd\x27\xd4\xd5\xef\x83\x2d\x41\x22\x16\x07\x22\xcb\x80\x5b\xeb\x56\xd1\x21\xa6\xc0\x49\xac\xbc\x40\x82\x6c\xf5\xcb\x32\xa0\x6b\xa6\x49\xdd\x51\xc7\x90\x58\xbb\x0f\x81\x68\x1d\x57\xee\x09\x70\x57\x49\x33\xd4\xee\x4c\xd6\x3a\x42\x84\x42\xeb\xca\x54\xc8\x19\x0d\xdd\x54\x9b\x88\xcc\xf8\x76\x94\x03\xc2\x2c\xf3\xf2\x2d\x6f\xc1\x5c\x9f\x90\x32\x45\x16\xa3\x14\x23\x27\x54\x70\xcc\x79\xe5\xba\x5a\xbf\x41\x4d\xfa\xdf\x95\xe2\x74\x2c\x90\xbd\x2a\x6d\x75\x5b\xd5\xdd\xff\xd6\x7f\x47\x1d\x9b\x93\x84\x53\xac\x86\x9a\xb2\x29\xce\xd8\x37\x7a\x73\x62\xe8\xc0\x34\xa2\xca\x0f\xf0\x85\x9c\x2d\xc9\x24\x95\x0e\xf5\xdc\x9b\xfc\x72\xf2\x85\x49\x6a\x5d\x59\x73\x37\x54\x3e\x59\xc5\x08\x8b\x9c\x1c\x84\x8b\x17\x8d\x89\x9c\x42\x03\xee\xa8\x03\x3b\x8b\xf1\xb6\xa8\x66\xd8\x44\x4e\x98\x75\x54\x45\x7b\x99\x23\x57\xe1\x06\x55\x68\x46\xf5\xb8\x9c\x70\x96\x60\x49\xa4\x42\x3d\xd2\x66\x94\x67\xe4\x84\x1b\x96\xf8\xe4\xf7\xe1\x88\xfc\x0b\x6d\x01\x66\x0b\xf5\x3e\x2f\x47\x65\xa4\x33\xf8\xe6\xf4\x5f\x67\x84\xb3\x9c\x88\x4c\xa3\x71\xde\x19\x1c\x8d\x03\xd5\x7e\x82\xfe\xe2\x44\x28\x66\x54\x10\xfc\x6c\x91\x56\xc1\xa3\x0f\x42\x03\xed\xf4\xc4\xca\xea\x0d\xb3\xb7\xd3\x89\x44\xb2\x28\x76\x72\x84\xfb\x43\x7b\xfa\x59\x57\x81\xd9\x72\xfa\x44\x59\x16\x45\x99\x0f\x01\x35\x6d\xb5\x87\xfa\xab\x6c\xae\x16\x0b\xc4\x1f\xdd\x9d\x35\x06\xc4\x65\x1c\x3a\x1f\x2e\xd0\xe6\x8f\x86\x85\x34\x04\xc1\x81\xc7\xb2\x1b\x73\xf8\x92\xb3\x2b\x48\xc3\x48\x4f\x49\xe7\xd8\x81\xc6\x95\x3b\x9c\xa8\xd8\xd1\x14\xd7\xe7\xd0\x6d\x4e\x14\x33\x58\x74\xbe\x78\x5a\x5e\x61\x3c\x6d\xc4\x22\xc0\x89\x32\x1a\x29\x25\x7c\x36\xbd\xf3\x4b\x7e\x91\x8b\x9c\xf5\xb6\xf6\x92\xea\x9b\x7d\xf5\x0a\x61\x49\xe8\x7a\x75\xd8\xb5\x3e\xb3\xdc\xfe\xc2\xb2\x0b\x37\xc8\x9c\x62\xa8\xcf\x33\x8d\xb4\x02\x37\xf9\x73\x78\x05\x13\x25\xc6\x83\x44\xbe\xcc\x05\x51\x39\x31\xc2\x31\x1d\x96\xc7\xbd\xd7\x47\xc9\x87\xd1\x60\x40\x23\x85\xa1\x7b\xf2\x1f\x52\xeb\xbc\xf4\x76\xd3\xec\x32\x40\x14\xee\xaf\x4d\x55\x78\x38\x4e\xb7\xd8\x57\xc7\x76\xb2\xea\x00\x35\x08\x78\x70\x66\x9e\x1b\x1c\x0e\xab\x2b\x2f\x19\xfa\xff\x15\xee\x9b\x13\x48\x62\xc6\x83\x31\xb8\x3f\xb4\xb0\xa3\xa2\xbf\xb3\x54\xca\xc7\xe2\xf2\xbd\x1c\x57\x92\x70\x62\x79\x96\x0a\x17\x48\x69\x8f\x25\xec\xb0\x72\x61\xe7\xcb\xd4\x7d\x23\x1a\xc5\x4e\x0c\x3e\xd7\x15\x06\x8d\x6e\x7a\xfc\x09\xa7\x11\x05\x5c\xfa\xcb\x5c\x57\xc5\xf0\x6b\xa2\x70\x16\xe8\x02\x64\x79\x3c\xac\x8d\xe9\x8f\x28\xa7\xf7\xf5\x24\x95\xca\xdb\x91\xcb\x42\xe3\x38\x43\xdb\x6c\x1f\xa2\x4d\x45\xbf\x7c\xd0\x38\x35\x2c\x0a\x9c\xed\xbe\xbc\xbe\x37\xf7\x68\x2c\x39\x1f\x34\xa1\xb6\x4f\x57\xd3\x0f\x44\x89\xa4\x18\xb4\xec\xb6\xfb\x09\xc1\xff\xc4\xca\xa0\xc4\xd0\x00\x85\xfc\x22\xf7\x0a\xcb\x43\x65\xdd\x9e\xce\x80\x16\x5d\xd3\x0c\x2b\x69\x0d\x38\xcc\x46\x78\x92\x84\x3b\x0b\xe1\xd8\x74\xb6\xe9\xc3\x71\xbf\xad\xde\xcb\x69\x55\x25\xa7\x69\x9c\x44\x2e\x78\x75\xac\x5b\xc7\x8d\x19\x26\xc8\xd3\xa8\x67\x53\x4a\x11\xcc\xf2\x08\x50\xdf\xe5\x1a\xca\xa6\x87\xda\x73\x9a\x26\x2a\x09\xe5\xe7\x79\xdd\xbe\x0c\x9e\x1d\x4d\x05\x77\x04\xf2\x43\x71\xc8\xf3\x85\xc2\x10\x4e\x53\xa3\x11\xbb\x86\x54\xb7\x3e\xe7\xf3\xf9\xa6\x4d\x53\x2b\x11\xe0\xf0\xfe\x52\x15\xc8\x21\x8a\x7e\xd4\x1d\xd8\x7e\x9c\xb0\xd4\x22\xae\xae\xa7\xe4\xbf\x1f\xf1\x0d\xf9\x36\x3c\xa2\xf8\x74\x2f\x18\xd5\x6a\xdc\x14\x19\x05\x08\x28\xcf\x08\x22\xbd\x6f\x97\xcb\xdd\xcd\xf2\x61\x7d\xbf\x7a\xb8\xda\x06\x86\x9f\xee\xb0\xe3\xc8\x19\x98\xd3\x3d\xe9\xa5\xf8\xc7\xf4\x3e\x9a\x84\xb4\x6a\xb0\x77\xf0\x3b\x5e\x0c\xe1\x7b\x18\x16\xa7\xdc\x44\x6e\x97\x6b\x9e\x1d\x67\x4a\xb8\xad\x48\xa5\x53\x61\x0a\x84\xab\xe1\x8e\x6e\xdd\x9b\xdb\x64\x34\xe3\x32\x68\x53\x7e\xaf\x8b\x5f\x3a\x8e\x34\x93\x32\xe8\xb4\xa2\xb4\x49\x69\xab\xbe\x44\x66\xb8\xa2\x24\x0e\x69\xaa\x65\x79\xdd\x8b\xe1\xf6\x93\x47\x76\xdb\x93\xcf\xc1\x20\xdd\xa5\x41\x86\x93\xf1\x62\x11\xa7\xa3\x3a\x1b\x4e\x55\xa4\xad\x17\xa4\x40\xcd\x5e\xf3\x34\x22\x02\x18\x6e\xab\x62\x83\xe8\xee\x30\xd2\xb1\xe0\xf1\xaf\xe3\x49\x54\x51\xc9\xf8\x14\xf6\xd2\xd9\x94\xd3\x46\x9a\x70\xee\x18\x40\xaa\x5a\x3e\xc3\x40\xd7\xc4\xa9\x56\x1a\x91\x7a\x9d\xcf\x70\xd7\xaf\x57\xdd\xcf\x68\xc7\x18\x89\x69\xd8\xf0\x2b\x18\xf4\x16\x37\x8f\xcb\xc5\xf6\xe9\xfb\xfd\x3f\xc3\x01\xe3\xb7\xc7\x80\xad\x72\x04\xc1\xf2\xec\x83\xf8\xe6\x10\x39\x41\x38\xf4\x23\xaa\xd7\x51\x4e\x8c\x53\x1b\x29\x1c\xfe\x45\x55\xbd\x1e\x0f\x0b\xb9\x3f\xc8\xfc\x19\x73\x9e\xf1\xec\xad\x2c\x4d\x30\x61\xbc\xc9\xf7\x07\x4f\xcd\xd0\x6d\x49\xb3\x6d\xac\x9f\x57\x16\xa2\xe0\xbc\x8c\xf5\x76\x38\xb5\x36\x32\x6a\x50\x4b\xb9\xb6\x3d\xf1\x8a\x6b\x90\x44\x69\xc2\x03\xc4\x12\x27\x52\xcf\xf8\x38\xd1\xf3\x0a\xad\x39\xc3\x74\x57\xd7\xa3\x0f\x8e\xe6\xb0\x67\x22\xb2\x0f\x55\xdb\x2b\xf1\xf8\xf6\x31\x10\x4c\x30\x1d\x02\x41\x15\x4f\x68\x14\x3b\x21\x50\xdc\xc3\x50\xdb\xe8\x51\x76\xae\xc0\x34\x90\x76\xe6\xd2\xcd\x87\x7c\x42\xb5\xc4\x54\x5f\x09\xef\x2e\xfd\xf3\x19\x14\xff\xf2\x76\x97\x24\x31\x4f\xbd\xd9\xb3\x3d\x1d\x72\x2d\x8b\x55\x0b\x7b\x9c\x35\xd3\x8c\x5f\x68\x6f\x5d\x65\xe8\xbb\x2c\xdb\xfb\xd3\x39\x75\x66\xd7\x82\x52\x97\x18\x5f\x14\xf2\x0d\x16\x2f\x32\x9f\x99\x76\x49\x62\x13\x1c\xad\x6f\x9e\x25\xf8\x1e\x9a\xce\x49\xbf\x24\x0b\x7f\x19\x9b\xdf\x5d\x42\xe3\x56\x8c\x49\x97\x5b\x00\x4c\xd5\xbb\xaf\x7e\x5d\x1d\x03\x21\xc2\xf0\x54\x69\x42\x9d\xe9\x5f\xed\xf7\xc7\x32\x6f\x4f\xdd\xc6\xd2\xf4\x39\x53\x9e\x30\x9a\x72\x3a\x48\x23\x75\x6e\x51\xde\x4f\xa2\x84\x49\x2a\x54\x20\x08\xd6\x75\x75\x5f\x99\x63\x01\x5d\x37\x5d\x18\xb7\x09\x8f\x25\xd2\x2f\x94\xb0\xaf\x06\x2a\x50\x9e\x88\x48\x22\xaa\xf1\xea\xa8\xdb\x63\x83\x26\xff\xdf\x64\xb1\x0d\x17\x30\xb1\x75\xb9\xd4\xb7\xce\x18\x34\x79\x5b\xd5\x4f\xf9\xf3\x4b\x3b\xb3\x66\x13\x99\x31\xdc\x81\xaf\xbf\xdc\x6e\xff\xaa\xdc\xb7\x6b\x9d\xe1\xac\x77\xa3\xf1\x2f\xd1\xaf\x3c\x91\x90\x09\x97\x4d\x33\x00\xfb\xcd\x4b\x7e\x98\xf5\x80\xb4\x12\x09\x93\x4a\x78\xaf\x46\xde\x4b\xa2\x08\x27\x24\x20\x34\x3a\x07\x6a\x1e\x29\x4d\x14\x88\xc4\xc9\xa5\x35\xaf\x7e\xe7\x98\x36\xd0\xc2\x69\x11\xbb\x94\x19\xd2\xbb\x5d\x90\x5a\xe5\x89\xe1\x2c\x54\x4c\x7e\x5f\x74\xe6\xd1\x23\xd4\xcb\x71\xb5\x6a\xdf\x0e\xd0\xe6\xe9\xd9\xaa\x9c\xd9\x7f\x35\x1f\x41\x10\x19\x24\x35\xd9\xa0\x08\xf8\xab\xbf\x8e\x98\x1a\xd3\x09\xc8\x38\x0e\x2a\x6c\xc8\x22\xe8\x99\xac\xca\xf2\xb3\xac\x4c\x62\x05\x64\x81\xc0\x53\x36\x81\x8a\x75\xbe\xe8\x58\x01\xc6\x78\xa6\xb4\xf5\xcf\x87\xe5\xd3\x6e\x31\xa8\xe9\xf3\x34\x4a\xa8\x48\x47\x53\x6a\xc8\xfa\x4f\x9e\x2f\x8d\x84\x44\x7b\xeb\x50\xc3\x41\xd6\xe0\x0b\x43\x6f\xab\xfa\xa1\x2a\xd7\x5f\xdc\x64\xf5\x4d\x63\xae\xc3\x72\xea\x3d\x2a\x0f\x71\x0a\xc7\x95\xc0\x94\x6a\xe0\xa6\x39\x3a\x11\x91\x7f\x5d\xf2\xd2\xc7\x0b\x98\x3f\x9d\x44\x04\xb1\x5f\x1b\x68\x11\x72\xb3\xdd\xca\x8f\x69\xde\x30\x34\x24\x29\x96\x52\xf6\x58\x80\x6d\x0e\xf5\x42\x1e\x9e\x40\xea\x97\x7e\x95\x4d\x89\x31\x38\x26\xaf\x6e\x37\x63\xbe\x18\x9e\xd2\xd8\x99\x92\x2e\xc1\x3a\x32\x94\x53\x4a\x22\xe5\xd8\x36\x8e\x0a\x0d\x9b\x6e\x11\xb9\xcf\xcb\x16\x8b\x11\xa7\x4f\x41\x69\x8a\x1c\x0c\xaf\xa0\xb5\x7c\xdd\xf5\x48\xc5\xff\x23\x5e\x35\xa5\x6b\xe2\xc4\x7d\xbf\x7b\xfa\xe7\xcd\xeb\xc9\xd7\xac\xff\x6a\xf6\xa5\x34\x25\xe8\xcf\xec\x65\xfd\x9c\x97\xa3\xdd\x38\x4d\x12\x66\x21\x50\x4e\x7d\xe9\xbd\xcd\x34\x61\x06\xc1\xe7\xc8\x99\xd6\x4e\xa8\x30\x2e\x06\x2d\xd2\x44\x32\xa5\x43\xbc\xad\xf3\x95\xda\xe5\x5e\xe6\xe7\x72\x22\x93\xe7\x4a\x6c\x84\x39\x8b\xbb\xf5\xe2\xdb\xfa\xfb\x76\xf7\xb8\x7c\x5a\xad\x6f\xfa\x67\xb0\x14\x51\x48\xde\xc3\x59\xd6\x72\x04\x80\xe5\x69\x4a\x84\xf4\x20\x25\x24\xe9\x91\x9f\xd2\xe9\x86\x13\x12\xc9\xc4\x48\x0f\xfe\x17\x01\xfb\x34\xe5\xd6\x69\x5d\x17\x55\x03\xc1\x80\xe8\xef\xac\x75\xe2\x23\x40\x5f\xd6\x8f\x9f\x50\xda\x7d\xf6\x10\xe0\xf4\xbd\x3d\xe2\x13\xea\x6e\x69\xbb\xc6\x28\x4c\x6f\x48\x7a\x20\x38\x4f\x59\xe4\x62\xe3\xe8\xf4\x22\x76\xea\xfb\x1c\x92\xc6\x53\x9e\xa6\x99\x07\x83\xd5\x3b\xac\x84\x95\x75\x3b\x19\x9e\x3c\xe5\xb8\xae\xfc\xfe\xe1\x62\xd9\x03\xf1\x07\x4f\xb9\x70\xc4\x1f\x0b\xd9\xbc\x1c\xe4\xe9\xcf\xf0\xbb\x22\x0a\x3b\xa0\x95\xaf\x30\xc8\x2c\xcf\x6e\xad\x28\xc3\x98\xfa\xb1\x09\xa1\x8c\xc5\x24\xdd\x3b\x6b\x9d\x1a\x4c\x84\x3d\x5d\xdd\x2e\x1f\xfa\xaf\xac\x44\x84\xf8\x25\xb9\xcb\x4b\x5d\x3d\x97\xf9\xac\x3a\x85\xa7\x26\xa3\x96\x8d\x30\xcc\xf7\xb0\xbe\xac\x21\x39\xfd\x84\x06\x12\xe9\xc4\xa4\xfd\x3a\xb5\x2a\x87\x32\xd6\xcb\x4f\x08\x34\xc2\x32\xe7\xce\x08\xbe\x85\xbe\x8f\x80\x31\x64\x8b\x58\xbf\x41\x7d\x90\xa7\x29\xc6\x79\xf6\x7d\x81\x4b\xac\x34\xd0\x28\xc6\x70\x19\x98\xc2\x53\x10\x1c\x90\x11\x13\xea\xa6\x2a\x5d\x7d\x80\x8b\x43\x5e\x8e\xda\xfc\xf5\x9f\x70\x61\xe5\x80\x78\xff\xae\x72\xd4\x5e\x44\x31\x3d\x9f\x54\x9e\x3e\x82\x8d\x5c\x40\x65\x93\x7f\xb4\xa1\x06\x38\x1c\x92\x0a\xfd\x31\xf7\x49\x31\xfa\x76\x5e\x7c\xfc\x8b\x92\xf7\x00\xa9\xed\x6f\xc6\x48\xaa\x85\x53\x6e\x6d\xee\x1d\x6d\xf3\x6c\x14\x33\xc2\xd3\xd4\x84\xc0\xc7\x71\x8f\x7e\xa0\x07\x43\xfc\x84\xfc\xfa\xb4\x2e\x07\x8a\x42\x7f\x0a\x15\x2e\x06\x7c\xe8\xdc\x57\x32\x18\x5a\x8c\x5a\x07\xed\xba\xcd\xcb\x16\xf4\xcb\x78\xcb\x61\x09\x91\xd8\x41\x8b\xf5\xea\x61\xb7\x58\x6f\xb6\xbb\xd5\x62\xbd\xdb\xae\x96\x3d\xf1\x34\x67\x09\x75\x42\xf7\x87\xba\x6a\xab\xb1\x63\xc1\xd2\x38\x41\x3f\x1f\x45\x45\xfa\x1f\x53\x85\xdb\xcc\x7a\x9f\x7f\x5c\x30\x57\x19\xcb\x62\x04\xd9\x3e\xc0\xfb\x54\x48\x7a\xfc\xe5\x18\x97\xe0\xea\xd9\x94\x0a\x17\xe6\x00\xc8\x4f\xe6\xf8\xe3\xee\xaa\xe7\x5c\xcf\x2e\x2d\x08\x47\x57\x72\xe7\xf2\xd1\x03\x6f\xc3\x59\xc5\x58\x70\x61\x98\xe0\x24\xe8\x11\x3f\x81\x86\xb2\xbd\xc9\x65\x1d\x02\x12\x4c\x08\x47\xdb\x6b\x00\x35\xe4\x6e\xab\x63\x69\x30\xe6\x75\x03\x6f\x7d\x9b\x2c\xc1\x00\x8f\xdb\x78\x9e\xfa\x15\x99\x09\x93\x61\x5c\x1a\xf9\x27\xf2\x06\x66\x59\x65\x3c\x0e\xe3\xa0\xfd\xbd\xcc\xcb\xff\x3a\x70\xcf\x84\x31\x18\x9f\xc6\x6a\x4c\x3a\x60\x5a\xc3\x6d\x32\xe9\x88\xd2\x37\x77\x8b\x2b\xf3\xd6\x75\x8c\xf9\x4b\x03\x95\x65\x96\x22\xc2\x69\x7f\x2c\x7e\xff\xe3\xd7\x1b\x09\x93\x91\xf3\x0c\xbe\x9e\x54\x9d\x9b\x51\xe1\x33\x67\x32\xa6\xa8\xec\xe6\xca\xd5\x6e\x16\xff\xfb\xcb\x9b\x4a\x96\xe1\x60\xbc\x1d\xaf\x27\xff\x1f\xff\xf6\x1f\x5a\xb1\x08\x57\x76\x9c\x1e\xf1\x28\x5a\xc5\x94\x06\x74\x8e\x4c\x5d\x1d\x3a\x47\xff\xd3\x38\x12\x33\xcc\x0d\xca\xff\x60\xc6\x6d\xe2\x27\x91\x49\x0c\x87\x19\xed\x80\x1c\xdd\x56\x7e\x75\xdf\xd9\x8d\x21\xf3\xca\x8c\x66\x58\x65\xf0\xe5\x66\x71\xa5\x75\x44\xfa\xdf\x8d\x41\xb6\xd0\x63\xe9\x10\x3e\x23\x6f\x88\x41\xca\x59\xda\x13\x25\xd4\xab\x83\x45\xf7\x6b\x1e\x69\x61\x96\x08\xd1\x2d\xa4\x7b\x68\xe5\xf5\xb1\x9e\x4a\xf3\xfd\xfa\x2b\xda\xcc\x65\x72\xdb\x2a\x10\xbc\x39\x73\x3b\xbc\x3c\x8f\x39\x4f\x7b\x8e\x08\x37\xfb\xfc\x11\x42\x47\xf4\x32\x67\xf5\x50\xa1\x91\x31\x3a\x0a\xb0\x35\x54\xba\xaa\xea\x8b\x16\x33\xa7\x11\x41\xde\xee\xbd\xfc\x58\xb6\x2f\x4f\x32\x1f\x80\x36\x9c\x26\x22\x4d\x03\x42\xdf\x5e\xae\x5e\xe1\x9c\xf2\x18\xbf\xd3\x97\xaa\x32\x37\xf2\x34\x5e\xcd\x79\xa2\x1d\x54\x17\x43\x87\x33\xf1\xd7\xe9\x73\xa4\x46\x91\xa0\x23\xb1\x7d\xa9\xab\xf7\xa6\xb3\x14\x9c\xeb\xb3\x2a\x75\x55\xd7\xa0\xdb\xc0\xfe\x11\x2e\xcf\xa2\x14\x09\x76\x3d\x91\x41\x13\x42\x53\xe1\xb0\x27\xac\xf2\xde\xc0\xa8\xdc\x8a\x73\x4e\xb8\xd7\x04\x82\x73\x02\x6c\xce\x39\xd7\x58\xce\xe2\x50\x6a\x0e\xf9\xd7\x4d\xf9\x30\xb0\xb8\x48\x12\x34\x0c\xf2\x06\xf1\x08\x0e\xd8\x8e\x24\x81\x63\x1e\xfa\xae\x5d\x86\x91\x42\xc7\xfc\x2d\x5f\x41\xc9\xcf\x16\x17\x2e\xb8\xa5\xbe\x20\xdb\x73\xb2\xfc\x92\xe5\x92\x73\x91\x49\x54\x74\x38\x96\x0d\x4a\x2d\x57\x75\x03\x97\xa8\xe3\x42\x73\x9d\xc5\xbd\xee\x4c\xd8\x71\x78\x16\x69\xfc\xf5\x5d\xe6\x48\x6f\x33\xfa\x7c\x19\xcb\x9c\x72\xca\x0b\xe8\xd7\x10\x4b\xc4\x70\xee\xed\xef\xb3\x0e\xcb\xb4\x24\x03\x71\x89\x27\x91\xdb\x56\x0e\x94\x18\xb6\x2b\x2e\x69\x86\x51\x42\xe4\xfe\x45\xa7\x6b\x8a\x91\xfc\x54\x13\x98\x73\x29\x22\x14\xa9\x2d\x64\xd3\xde\x1e\x47\x31\x57\x2e\x05\x93\x51\xaf\x8c\x3b\x79\xf7\x60\xcd\x72\xa9\x29\xf1\x2a\x9c\x08\x35\xd9\xcc\xe4\x9d\x38\x57\x9e\xf7\xef\x15\x4e\x5e\xc8\xe0\xab\x6c\x1e\xe6\x22\x7c\x9c\x2b\x13\x23\xdc\x39\x94\x57\x5e\x16\xc4\x1b\x2f\xb5\x5c\x59\x67\xda\x2d\xd6\x0f\xb7\xab\x2f\xbb\xc7\xa7\xd5\x62\x19\x1e\x5e\x07\x5d\x9d\x6e\x3b\x5a\xac\xb7\x2f\x79\x6d\x7e\x02\xbc\x2e\x4b\x33\x5a\x93\xb8\x89\xa2\xc0\xec\xd1\xb9\xe7\x13\xa2\x0e\xce\x0d\xb5\xe8\xe4\x7f\xab\xe4\xa6\x95\xa5\x91\xf5\xe5\x5d\xe7\x3c\xd6\xc1\x8d\x4c\xec\x58\xf5\x66\x5b\xa1\x98\xe2\xf4\x9d\x81\x58\xe7\x56\x3b\x7f\x1f\xe3\x0c\xb7\x55\xbd\xa8\xab\xe3\x21\x1f\x3e\x04\x88\x4c\xb8\x39\xb1\xfc\xc8\x9b\xb6\xf9\x6f\xa0\xba\x1c\x74\x82\xd1\x23\xf8\x00\x7d\x6c\xfb\xc8\xf5\x28\x5f\x37\x7b\x28\xab\xd3\xc8\x86\xc1\xf9\x4f\xa8\xab\x41\x68\x6d\xd4\xc8\x66\x48\x28\x0a\x6f\x50\x22\x40\xf5\x49\x96\xcf\xd0\xab\x6e\x71\x11\x45\x16\x39\xfa\xc2\x42\xfa\xe4\x0d\xfd\x11\xc2\xe0\xe2\xf3\x8a\x38\x55\xf8\xbc\xc8\x2c\xe5\xb3\x14\xdd\x68\xcf\xcb\xe7\x38\x98\x34\x22\x66\x36\x19\xcb\x18\x16\x48\xec\xd1\x1f\x55\xe0\xf8\xa3\x4a\x73\x23\x5b\x68\x87\xef\x2d\x62\x13\xe1\x67\xf9\x43\x56\x7f\x69\x3f\x88\xd8\x52\x6c\x7c\x5b\x55\xed\x46\x57\xc7\x76\x46\x8b\xd3\xb5\x50\x76\xc8\x7c\x2d\x9f\x16\x84\xd0\x5f\xb2\x9a\x70\x41\x68\xaa\x3d\x18\x0e\x53\xa7\xcf\x9e\xd8\x0f\x3f\xfe\x05\xe8\x92\x20\x9c\xe9\xb1\x92\x6e\x77\x97\x68\xde\x46\xeb\x34\xe9\xcb\x4a\x9d\x1a\x05\xbc\xc1\x99\xf7\x1c\x9a\x1b\xa7\x03\xe4\x22\x77\x33\x0e\x03\xdf\x86\x72\xc7\x4f\x1c\x6e\xfb\x50\x95\xdb\x99\x8a\x0c\x17\x54\x4a\x7c\x99\x55\x2b\x8b\xc9\x0e\x25\xa8\x4a\xa9\xcf\xfc\x6e\x8e\x07\x57\xea\x37\xdd\x22\x45\xc2\x22\x87\xa2\x3f\x2d\xdb\x20\x03\xb9\xb6\x0f\xd5\xe0\xa5\x89\xc4\x24\x24\x50\xd7\xed\x0f\x05\x2e\xc2\x93\x02\x2d\xdf\x2e\x8d\x98\xc6\xa0\x52\x75\x92\x45\x7b\x6a\xd6\xef\xa3\xe8\x68\x68\xa3\x5d\xa9\xf5\x7b\x55\x17\x66\x71\x3c\x38\xb1\x7a\x17\x88\x0d\x4d\x20\xc5\x77\xde\xef\xf2\x66\x91\xd7\x18\xd8\x1b\x92\x7e\x82\x93\xc4\xb0\xc1\x80\x09\x9b\xc8\xc4\x3f\xee\x9b\x72\x1c\xa0\x5f\x8e\xfb\x49\xb7\x08\x99\xe1\xef\xbb\xbc\xb9\xab\xca\xe7\xbc\x3d\x1a\xf8\x6d\xd2\xa5\x19\x51\xbe\xe2\x1b\x0b\xf4\x40\x6a\x78\x82\x42\x22\xac\x68\x76\x93\x2c\xe1\x68\xf6\x6b\x28\xda\x5c\xef\x74\x5d\xf5\x68\x09\x91\x65\x2c\x90\xee\x7e\x6f\xf3\x22\xff\x13\xbb\xed\xaa\x34\x57\x65\x79\x94\xc5\x75\x55\xd7\xd5\xfb\x93\xfc\x44\xdb\x8e\x8b\x4c\x25\x48\x97\xdc\xfd\x7a\x2f\x3f\x66\xdf\x5d\xc5\x8e\xd9\x1e\xf6\x79\x7b\x71\xf4\xe8\x38\x35\x99\x2f\xbd\xad\xf6\xd5\x90\x2c\x16\x9a\x44\x88\x33\x7d\xab\xda\x8b\x7a\x91\x5c\x68\x15\x2b\x9f\x19\xfb\xfd\xb9\xcf\xe9\xcf\xde\xdd\xb0\x38\x52\xbd\xcb\x93\x1f\xf2\x81\x21\x81\x0b\xa3\x58\x12\xcc\x23\x2c\x53\x9f\x76\x31\xc4\x4a\xf5\x14\x63\x55\xbb\x0b\xa7\x81\x49\xa3\xa0\xd7\x3e\x28\x90\x6c\x9c\xa9\x92\x6b\xb8\x20\x41\xc2\x05\x58\x97\x68\xc3\xc7\xd3\xf5\xf1\x33\x98\x71\x16\xc5\x04\x5d\x2c\x0c\x3f\x39\xd3\xc7\xf3\xf4\xff\xd6\xb7\x70\x54\xf4\x5f\xa0\xbd\x91\x87\x43\x5e\xda\x6a\xcc\xc0\xc0\xb3\xc8\x38\xf9\x3b\x28\xcd\xda\x76\x76\xdc\xed\xb1\x28\x06\x32\xaa\x70\x9d\x58\xa4\x58\xfa\x80\x4f\xfe\xe5\x08\x4d\xb3\x7b\xef\xc9\x1c\x26\x4b\x5c\x16\x1b\x60\xb4\x47\xb8\xfc\x36\xf3\x37\xb2\x18\x0c\x56\x2a\x5f\xcb\xea\xfa\x6f\xac\x98\x19\x51\x4e\xac\xad\xeb\x59\x6c\x3d\xf2\xe4\xa6\xbd\x41\x2d\xc7\x34\xf3\x01\x3b\x42\x62\x04\x17\xd7\x2d\x47\xa5\x9e\x43\xbd\x2a\xc3\x6e\x3c\x3d\x33\x21\x11\x9a\xf0\x1b\x68\x8f\x07\x4f\xf8\xf4\x49\x97\xa7\x24\x06\xff\x41\x1f\xab\x57\xd8\x57\x3d\x2d\xdc\xac\x5d\xea\x40\x14\x1b\x59\xb6\x43\x37\xa6\x99\xc6\xc5\x3d\x3f\xd8\x30\xb2\x32\x46\x2d\x82\xf4\xdc\xec\x74\xc2\xde\xd3\x91\x99\x09\x22\x91\x29\xc2\x75\xa9\xdf\xab\xc3\xb1\x44\xe3\xe0\x5f\xc8\xc3\x01\x69\x81\x3a\xff\xe6\x4c\xc9\x38\x34\xe6\xa9\xe3\x58\x84\x73\x99\xd6\xd0\x44\xe8\xcc\x59\x39\xaf\x80\x55\xb3\x7f\xab\xce\x5f\x84\xb3\x33\xa7\xb6\x2f\xc7\x1e\x75\xe3\x12\x1e\xe1\x89\xb3\x24\x0e\xeb\x08\x42\x34\x1d\x5e\x73\x21\x8b\xa2\x33\xb8\xbf\xf4\x05\x01\x59\xc6\x12\xed\x2e\x66\x6e\xe0\x50\xc3\xf4\xab\x7f\xea\xe1\x1e\x2f\x81\x8b\x32\x95\x2a\xdc\xf3\x6e\x3c\x1d\xcf\x06\xca\xf6\xfa\xd8\x3e\x54\xed\x3d\xb2\x8f\x7d\x12\xa9\xcb\x94\x49\xb2\x6c\x24\x23\x3e\xa9\x06\xe3\x99\x8e\x2d\xef\x71\x92\x4f\x8e\x9c\xdb\x53\x34\x6d\xde\xe5\xa1\xf9\x6d\x96\x35\xec\xe7\x81\x56\x0c\x23\x80\xea\x78\xda\x68\xb9\xef\x5f\xda\xa4\x1a\xe7\xc7\x62\x7d\xff\x78\xf5\xf0\xc7\x6e\xbb\xfe\xb6\x7c\x40\x6e\xba\xc5\xb2\xcf\xb2\x64\xa8\x8c\x19\x90\x6f\xf5\x98\x16\x97\x67\x46\x00\xf3\x45\x5a\x9f\x95\x37\xfa\x96\x10\x03\x56\x62\x34\xc7\xfd\xb2\x18\x15\xbb\xf7\x52\xab\x3c\x03\xca\xd1\x9e\x6c\x9d\x84\x6e\xb5\x0f\x80\xd6\x0c\x52\x57\xea\xf6\x15\x8a\x7c\xba\x25\x65\xd0\x6d\x24\x2e\xa6\x6a\x5b\xa8\x07\x00\x71\x66\x53\x57\x44\x78\x23\xff\xfc\x33\x1f\x71\xaf\x70\x19\x89\x04\x9c\x7c\x18\x86\x5f\xef\xf2\xa6\x3d\xc7\x77\xc9\x48\xb0\x24\x0e\x96\xe4\x42\x96\xc1\x8d\x1c\xd3\x84\x4d\x3f\xa0\x8c\x23\x89\xc4\x15\x81\x25\x80\xfc\x36\x3b\x1e\xbb\x30\xe0\x66\x7b\xf5\x65\x49\x77\xdb\xd5\xfd\x72\x37\x04\x9e\x65\x9c\xc8\xa8\xef\x80\xc0\x67\xbe\x94\x75\x71\x0a\x76\x68\xd3\x37\x4d\xb3\x34\xa8\x97\xc0\xa5\xf2\xda\xd1\x4d\xb9\xe3\x90\xcb\x75\x45\xd0\x93\xef\xaf\xe1\x79\xd7\xa5\x31\xb7\x75\x7e\x56\xed\x24\x09\xb5\x41\xbb\x03\xbd\xd7\xbc\xbd\x84\xf9\x97\x09\x51\xbe\x26\x67\x89\x82\x19\xf3\xc3\x32\xc2\x6d\xde\x40\x0b\xba\xfd\x1f\x59\x1e\xa5\x87\x4a\xfb\x89\x2c\x53\xc1\x10\x45\xe6\x56\xa5\xaf\xd5\xb1\x01\x30\x13\xed\x47\x2e\x53\x69\xd1\x54\x73\x26\x75\x50\xae\x7e\xc9\x0f\x13\x0a\x52\x2e\x53\x4b\x1c\x9a\xae\x90\xcd\xcb\xaa\xc4\xcc\x60\x67\xed\x94\x3d\xcb\xc8\xac\x77\x52\x6b\x50\x0c\xf9\xe6\xcb\xa3\x13\xcc\x2a\x66\x4c\xad\x5c\x32\x06\xca\x25\x7e\xa5\xf1\xf8\xfa\x70\x88\xc7\x82\x89\x1e\x38\x73\x44\xe5\xe7\xb9\x09\x2c\xbb\x1d\x5d\xf4\x55\x63\xb3\x83\x22\x65\x91\xa3\xf1\x76\x25\x10\x9b\x56\xea\x09\x74\x44\x4a\x66\x9c\xe4\xfe\x4b\xde\x22\x09\xfa\x58\x77\x82\x4b\x29\x48\xc8\xe1\x8f\xbc\xa2\x73\xd4\x99\x94\x10\x79\xfe\x42\x74\xa5\x7a\x79\xfd\x8b\x6b\x98\x54\x84\xf3\x28\x44\x46\xbf\xe4\x6f\xa3\xdc\xc6\x64\x62\x4b\xcd\x33\x87\xa9\x41\x25\x80\xaf\x90\xcf\xec\x3c\x69\x88\xc0\x72\xbf\x2f\x1b\xdc\x1c\x2f\xef\x05\xd2\x24\x19\x06\xb0\xd4\xf1\xf4\x50\xbd\x4f\x31\x6f\x12\x28\x45\x68\xd8\x6d\xd5\xad\xcc\x4d\x8b\xf1\xf3\xf1\x32\x20\x81\x33\xa4\x66\xb9\x59\x3d\x7c\x09\xbf\x59\xc2\x02\x32\xca\x25\xb6\x9a\x5e\xa4\xc6\xb5\x50\x11\x8d\xbc\xb6\x77\xe3\x16\xb7\xe1\x88\xa4\x38\x26\x9b\x97\xfc\xf9\x39\x37\x13\xef\x40\x45\x5a\x62\x28\xb0\x90\x4d\x9b\x46\x87\xe2\xd8\xa8\xa2\x7a\x7d\x91\x7d\xd0\x55\x45\xc0\x32\x9f\xf2\xdf\x95\xf0\xbe\xc3\x1c\xe4\xb4\x5f\x54\x1c\xc7\x08\x09\x3a\xbc\x07\x16\xd2\x49\x70\x42\xc5\x24\x71\x85\x7d\xb8\xfe\x5c\x44\xdd\xab\x98\x58\x57\xf4\xfe\xb4\x5a\x2c\x77\xb8\xac\xec\xb6\x3f\xd7\x63\x12\x66\xae\xe2\x54\x0a\x31\x16\xcb\x44\x28\xf0\x9d\x6c\xda\x8d\x77\xdd\xfb\x96\x2a\x43\xf2\x17\xdb\x07\xd9\x2f\x97\xc8\xa8\xd8\x2b\xbf\x6a\x69\x24\xd6\xb7\xff\xf6\x4b\xfc\xca\x24\x30\xab\x88\x94\xc0\x06\x70\x5d\xc0\xd6\x8d\x4d\x31\x45\x2c\x65\x81\xee\xaf\xc4\xd8\x0c\xd4\x13\x52\x5c\xae\x28\xb1\xa9\xaf\x31\x7d\x9c\x4b\x93\x73\x45\xa9\xc5\x12\x51\x97\xa9\xf0\xb6\xd8\xb6\xda\xca\x57\xb8\x6a\x36\x30\x93\x7b\xc5\xf6\xb8\x8f\x3c\x3e\x2d\x31\xff\xe2\x22\xc6\xe1\x6a\x49\x14\x63\x91\x9d\x74\xd0\x81\xeb\x13\xa2\x97\xe6\xb1\x5f\x95\xf0\x34\xf2\xe5\xb7\x3e\x18\x35\x3b\x2e\x39\x86\x07\x91\x84\x76\x5d\x9e\x57\x0f\x85\x76\x9e\x25\xd7\xa1\xc5\xbe\xe5\x6d\x1b\x28\x68\x67\xa8\x1b\x95\xd2\x08\x61\xe5\x68\x96\xa3\xde\x65\x79\x7a\xef\xd1\x9c\x2a\x4d\x23\xdc\x75\x55\x67\xcc\xe9\x6e\xd6\x68\xc7\x5a\x35\x7c\x4a\x1e\xc5\x38\x73\x36\xb2\x96\x23\xf2\xb8\xee\x00\xc1\x5c\x8f\xaf\xb0\xee\x29\x04\x7c\xc4\x78\x26\x1e\xca\x15\xcf\x62\xf4\x99\xed\xac\x54\x5b\xf1\x8c\xc5\xbe\x57\x1e\x65\x5e\x4f\x02\xe2\xd3\xf7\x16\x89\xc5\xe5\x74\x5f\xbd\x21\xed\xcb\xac\x2c\x7e\x5b\xfd\xec\xbc\xdf\xf0\x80\x42\x1b\x0c\x70\xdc\x9f\x27\xe8\x1c\x01\xec\xfc\xf3\x08\x03\x51\x14\x56\xeb\x8f\x45\x55\x14\xa0\x5b\x24\x9f\x99\xb6\xcb\x62\x85\x09\xe0\x9e\xd6\x72\xb0\x2a\x54\xc6\x0c\x22\x71\x30\x66\x53\xf7\xbf\x72\xa3\x3c\x80\x72\xcc\x9b\x3f\x26\xc8\xf3\x2d\x25\x8d\x54\xa0\x1d\xb8\xf2\xa2\x12\xe1\x50\x42\xac\x67\x69\x74\xec\x02\x9e\xff\x61\x36\x38\x64\x96\x62\xf1\x1c\x86\x98\x48\x7f\xb2\x8c\xd0\x5a\x71\xb5\xd3\x77\x83\xd2\x35\x57\x2a\x8b\x31\x27\x2e\xdd\xe5\xbc\x9d\xdc\xf3\xdc\x4f\xaf\xae\x32\xb7\x9c\xeb\xd0\x9b\xfd\x8c\x52\x1a\x88\x27\xff\x5a\xd7\x0b\xa9\x5f\xe0\x06\x9a\xfc\xb9\xec\xd6\x85\x27\x38\x54\xf5\x54\x21\xd4\x9f\xa5\x09\x75\x08\x6f\x78\x1f\x69\x3f\xff\xc2\xbc\x1f\x4e\x35\xcc\x49\xd9\x4a\x63\x02\xc2\xd9\xf7\xc8\x59\x2e\x31\x9c\x21\x32\x34\x75\x30\x5d\xe0\x83\x6b\xa3\xe5\xcd\x48\x89\xb4\x04\x3f\xef\xee\x27\x95\x0c\xca\x68\x1a\x64\x01\x7f\x54\xc5\x71\x0f\x37\x3e\x20\xfc\xdb\x05\xc7\x43\x41\x1a\x61\x7f\xee\xda\xea\x15\x26\xfe\x86\x02\x1e\xb9\x72\xf8\xea\x88\xf5\x6c\x7f\xa7\x74\x7f\xf6\x0e\x20\x34\xfa\x4d\x07\xa8\x6d\x55\xef\x6f\xbb\xfd\xb7\xbf\xbc\x4c\x99\x0c\x06\xe2\xf2\x43\x43\xd3\x8c\x6e\x6e\xb5\xc0\x8a\xb9\x6b\xa9\x4e\x37\xb5\x7c\xee\xf3\x8f\x3a\x8a\x35\xf5\x30\xae\x6e\x01\x7c\x9c\xf1\x03\x72\x1d\xd1\x08\x15\x92\xcb\xe3\x7e\x6d\x17\x79\x9b\xff\x09\x65\xf3\xf3\xa5\x0a\xe2\xb6\xdd\x30\x6d\xfa\xab\xb1\x04\x49\x20\xae\xea\x99\x31\xae\x23\x96\x05\xf2\xa6\xc0\xbe\xdf\x1f\x32\x09\x9a\xbe\x3d\x61\xe6\xdf\x8d\x45\xeb\xc8\x72\xe2\x63\x25\xdb\xbc\x3d\x16\x32\xaf\x61\xe7\xcb\x14\xd2\x70\x79\x42\x53\x44\x4c\xbf\xb8\x1a\x0b\x2c\xcb\xc7\x4d\x7f\x36\xbe\xb1\xa1\x87\xdc\x6c\xf2\xe7\xb9\xcb\xf4\x8f\x73\xda\x0f\xae\x09\x93\x88\xa4\xed\x0b\xff\x5c\xfe\xac\xb2\x63\xfa\x57\xae\x89\x14\x38\xf8\xee\xaf\x1e\xae\xbe\x2c\xef\x97\x0f\xdb\xdd\xed\x72\xb9\x7b\xba\xda\x86\xb0\xbe\xa6\x29\x43\x3a\xe1\x65\xfb\xd2\xfc\xa7\xfe\x32\x04\x4f\x34\xcd\x34\xba\x8c\xf8\x65\x37\x50\x14\x79\xf9\xbc\x1a\x08\x15\x74\x22\x08\xc2\x33\x6e\xc0\xd6\xd5\xa8\x94\x66\x80\x64\xeb\x44\x80\xaf\xa2\x87\x06\x46\xe5\x0f\x3a\x01\x47\x0a\xf1\x55\xd6\xdd\xcf\x79\xb7\x54\xf6\xcb\xbc\x4e\x6c\x86\x39\xcf\x0d\x4e\xe5\x63\x0d\x2e\x75\x71\x5e\xa3\x33\x8c\x96\x54\xb9\x88\xfe\x5d\xf5\x3c\x5e\x74\xa7\xd8\xc0\xd9\x39\x2c\x06\x8e\xc5\x42\x18\xb4\xc5\x9d\xea\xed\x79\x0a\x3e\xf8\xd5\x5f\x96\x4c\xa7\x89\xe6\x71\x9a\xf9\x35\xba\xdb\x98\xbe\xfd\xb1\x40\x9e\xb0\x31\x97\xd6\x45\x10\xad\xe6\x09\xe1\x0e\x92\x7e\x28\xaa\xd3\xe2\x25\x2f\x4c\x3d\xaf\xc3\xd2\x22\x8e\x71\xb4\xf6\x7b\x5e\x51\xb8\xfa\xa9\xe9\x4b\x89\x58\xb9\x54\xa8\xdc\x43\x10\xbd\xe9\x7e\xb5\x28\xc0\x76\xbf\x59\x2c\xfe\xcb\xc4\x8b\x16\x22\xa1\x7e\xb0\x2f\x9f\x9f\x9b\x4d\xb7\x61\x77\x96\x9a\x13\xbc\x9d\x3d\x24\x64\x68\x6d\x60\x2c\x72\x0f\xa5\xd9\x9f\x85\x9b\xb4\xb0\x19\xd6\x80\xb9\x6e\x3f\xd3\x3c\x3d\x9e\x69\xdd\x85\xc8\xa0\xce\x12\xc0\xa0\x41\x0b\x72\x3f\xc4\xb4\x75\xc6\x9d\x78\x08\xd4\x9a\x93\x78\xe6\x2a\xe9\x4c\x3a\xbd\xc8\x67\x68\xef\x4f\xf7\x55\x09\xc1\x12\xd1\x32\x8a\xd5\x48\xc2\xe2\xb2\xaf\xaa\x25\x95\xc8\xcb\xb0\x80\x02\x54\x9d\xb7\xa7\x7b\xa4\xd4\x9a\xbd\xb8\xe4\xae\x34\xd8\x57\x7e\x57\xfa\x75\xd0\x62\x9b\x5d\x2f\xcb\x92\xac\x9f\x56\x43\x34\xd6\x1f\x56\x69\x8a\x69\x9e\xab\xc9\x2a\xa6\xa4\x46\x37\xdc\x55\x3c\x77\xc6\x20\x1a\xd6\xf1\xae\xb3\x0d\x37\x57\x77\xcb\xb8\x6f\xe9\x6b\x3e\x9d\xee\x31\x3a\x10\xd3\xb2\x3f\xad\x13\xea\xe8\xdb\x36\xe0\x42\xb1\xb3\x07\xd4\x82\x32\x87\xf3\xbc\x93\xdd\xae\x75\x2f\xff\x5d\xd5\xdb\x1a\x60\xbe\x32\x85\xf6\x9a\x68\x7a\x86\x9b\x0d\x77\x33\x4c\x3b\x09\x8d\x63\x5d\x76\xe3\x75\x66\x40\xcc\x3a\xdb\x70\x82\x65\x56\x25\xbc\x7f\xa9\xab\xe3\xe1\x8c\xc5\x74\x16\x4f\xd5\x40\x29\x46\xad\x6f\x40\x87\xd0\x8c\x06\x29\x90\xc9\x6f\x5f\x95\xed\xcb\xa6\x9d\x59\xbc\x1a\x80\x22\x34\x18\x25\xa3\x67\x7d\x63\x63\x83\x6a\x23\x5f\x6f\xb6\xbb\xc9\x07\xb0\x2c\xc6\x08\xb0\x6c\x1a\xa8\xbd\x9e\xcf\xf5\xe9\xba\x1a\x2a\x40\xfe\x0e\x5c\x5e\x5b\xae\x30\x1a\x13\xea\x89\x36\xd2\x7e\x12\x6a\xd5\xd6\xba\x15\xad\x39\xaa\x7d\xde\x5e\x95\xcd\x3b\x72\xb4\x04\xa0\xe9\x5f\x70\xac\xb9\x8b\x98\x48\x3a\xfe\xde\x1d\xfa\xcc\x6e\xc6\x19\x47\xc8\x71\x5b\xd5\xf7\xd0\x3d\xc5\xdc\x9a\x33\x31\x71\x5c\xc7\xad\x6c\x5e\x91\x0b\x61\x1a\xf4\x33\x71\x1a\xe1\x04\xb6\xc7\x12\x37\xd4\x51\x95\x8b\x89\x95\xa3\xfe\xeb\x36\xa4\x9f\x79\xf9\xdc\x60\xae\x33\x9e\x45\x9d\x4c\xac\x8c\xf2\xf8\xaa\xef\x65\x53\x15\x66\x5c\x5b\x6b\x08\x8d\xd3\x9e\xb8\x72\x57\xe4\xe5\x6b\x2f\x58\xc2\x0d\xc9\x28\xa6\xfa\x1d\x57\xde\xb1\x29\xce\x94\xe9\xc7\x0a\x68\xbf\xb6\xe7\x0c\x8d\x33\x64\x0b\x58\xfc\x5c\xd4\x58\x6c\xeb\xaa\xe6\xc3\x51\x9d\x20\xb6\xf6\xf0\x76\x70\x41\x16\x03\xb5\x57\x2a\x9b\xbd\x4f\x12\xa5\x4e\x78\x48\xd6\xe6\x5d\xd6\xd3\xaa\x54\x93\x50\x85\x86\xf0\x7d\x05\x46\x8e\x87\x95\x49\xb2\x14\xc9\xae\x07\x31\x7a\x99\x85\x63\xa9\xf0\x9c\xfa\x58\x64\xb0\xf1\x64\x8d\x97\xcd\x4c\xc3\x93\x84\x0c\x0a\xb4\xdb\x97\x1a\x1a\x54\xfa\x9b\x3e\x26\x57\x80\xd2\x71\xbd\xd9\xe0\x20\x4b\xe3\x7a\x8f\xff\x8b\xfd\xd4\x32\x42\x44\x28\xdc\x00\xa5\x71\x54\x2b\xbd\x69\x60\x84\x36\x81\xfa\xf0\xac\x38\xd1\x64\x91\x45\xc7\x63\x51\x80\xac\x17\x98\x35\xed\x37\xf2\x70\x81\x8c\xc9\x98\xf8\x84\xca\xa4\x43\x32\x0b\x8e\xc5\xc5\xbf\x6e\x67\x35\x5d\x42\xb9\xcd\xbe\xa3\x04\xe1\xd8\xe4\x11\xd2\xb2\x7b\xbf\xa4\x0d\xc0\x8d\x52\x22\x54\x8f\x94\xa4\xb3\x55\x1d\x23\xcd\x64\x8a\x1a\x65\x14\x78\x6c\xcb\x8f\x5c\x43\x67\xba\xe4\x06\xca\x16\x6e\xe0\x1e\x1a\x79\xc6\xb1\x33\x3d\x5b\x33\x82\xd4\x4e\x7d\x15\xc3\xaa\x6c\xa1\x86\x4f\x78\x27\xb9\xd1\x52\xa2\x79\x7a\x7d\x9c\x74\x83\xd6\x4e\x8a\x71\xd9\xbe\x6c\xc6\xfa\xd9\x73\x34\x92\x31\x44\xe2\xd3\xfe\xf0\xf5\x06\x8b\xbc\xed\xe1\x81\x2b\x2f\xc3\xf7\xc9\xad\x8d\x60\xc8\x8f\xe9\x2a\xe8\xe7\x99\x78\x63\x20\xc6\xd2\x31\xdc\x22\x8e\x87\xc9\xe3\x41\xca\xd1\x34\xd4\x2f\xdd\x38\x2f\x9f\x11\x04\x71\x7b\xec\xbe\x30\xd6\x01\x9b\xd3\xd9\xf7\x3a\xab\x9f\x1a\xd7\x54\x85\xcb\x66\x9a\x41\x70\xe7\xa4\x2e\x00\x67\xa3\xd7\x5c\x1a\xdb\x24\xc6\x72\xc0\x4c\x92\xe7\xd6\xf9\x59\x9d\x17\xa8\x18\x2b\x23\xac\xd4\x28\x46\xa0\x34\x88\xb8\xc1\x08\x8d\xe9\xdc\x31\xdc\x78\xbd\xbc\x50\xdf\x40\x31\xec\xd0\x80\xa3\x9e\x80\xe0\x27\xdf\x1a\x22\x23\x7a\x59\xbd\xfa\x6d\x66\xd5\x43\x04\x9c\xb3\x09\xef\xd9\xda\xae\xca\xa6\x1d\xad\xa4\x10\xc7\x80\x81\xe8\x2b\x63\x9c\x90\xdb\x18\xf9\x05\x24\xd5\xd4\xa1\x54\xce\xaa\x2c\x80\x58\x17\x26\x3c\xd4\x20\xfb\x8c\x60\x33\x53\x20\xe2\x40\x23\x81\xeb\xcb\x56\x96\xaf\x73\x89\xa4\xd0\x24\x36\x98\x6e\xc5\x52\x20\x44\xa7\x9f\x2b\x5c\x73\xa0\x52\x62\x8c\xe0\x07\x56\x54\xcc\xc4\xad\x3e\x5d\x6d\xfd\xc9\x09\xc4\xd6\xdf\x62\x23\xf3\x90\xee\xf5\xb6\xdd\xc8\x5f\x80\x54\xbb\xd8\x90\x7f\x25\xf8\x44\x0b\x62\xfa\x02\x2c\xd1\x51\xd4\xeb\xfc\x57\x63\xe2\x4f\xde\x39\xbf\x42\x4e\x90\x6a\x48\xfd\x3f\xeb\x03\x9e\x3a\x4a\x62\xc4\x94\xf5\xc4\x26\xd3\x97\x10\xbe\x54\xf0\xf6\xa8\x5f\xff\xa6\xe9\x0c\x22\xb1\x68\x6a\xa1\xfc\x46\xbf\xbf\x81\x48\x53\x2a\x07\xa9\x5a\x3f\x77\xab\xf9\x97\xc9\xc0\x4d\x07\xbf\xe5\x5c\x17\x52\xbf\x8e\x29\x6c\x7d\x33\x49\x33\xed\x90\xff\x16\xea\x5a\x16\x37\x55\xd9\x0f\x30\x99\x71\x74\x71\x7e\xc4\x67\xf1\xe9\xee\x18\xf8\x80\xf0\xf5\xf6\xeb\x00\x62\xbe\x54\xc5\x05\xd2\xc4\x8e\xb7\x31\x7f\x7e\x69\x79\x32\xeb\x1b\x09\x8e\x89\xa2\xeb\xe5\x12\xf9\xfb\x96\x5e\x69\x6e\x78\x12\x70\xf4\x66\x77\x5f\x26\x04\x46\xa0\x6c\xea\x64\x99\x90\x57\x09\x97\xef\x85\x6c\xda\x7e\x1d\x02\x1d\x5b\x39\xe1\xe4\x71\xd5\x19\x55\x61\xaa\x63\xff\x99\xb5\x4a\x71\xd6\xde\xaf\x1e\x56\xbb\x2f\x57\xf7\xcb\xdd\xf5\x72\xfb\x73\xb9\x7c\xc0\x84\xd6\xd0\xca\x49\xff\x94\xc7\xfd\xb5\xac\xeb\x1c\xea\xe6\x11\xea\xeb\x6a\x60\x97\x00\xad\x63\x07\xa7\x44\x7a\xcf\x4f\xe4\x7e\x39\x18\x6a\x83\x66\x18\x92\xdf\xe7\x3a\x3f\xc8\xb2\xdd\xb5\xd5\xa1\xd8\xc9\x4b\xf8\x55\x30\x3c\x49\x69\x5f\xab\xf7\xd3\xeb\xd1\xcd\x3a\xd2\x18\xa3\xc8\x08\x23\x74\x65\xf6\x79\x89\x74\xad\x6d\x55\x3b\xe7\x65\x76\x82\x15\xc2\x49\x50\x1d\x0a\x28\xf3\xe6\x65\x08\xbe\x80\x8d\x1d\x76\x40\x41\xd3\xee\xa4\xf9\xf7\xb1\xf1\xa6\xe3\x30\xe1\x6c\x22\x91\xa1\xce\x59\x86\x8b\x1a\x4c\xb5\xd2\x9f\xbd\xb4\x55\x16\xad\x07\xc4\x88\xe5\x23\x30\xb9\x8d\x04\x80\x71\x19\xfa\xbc\x69\x37\x47\x75\xc6\xa0\xcf\x6d\x64\x04\xd6\x3f\xcb\xb6\x95\xfa\xf5\x7b\xf9\x19\xac\xc3\x46\xc6\xa2\x07\x73\x0d\xad\x96\xcd\xcb\x5f\x4f\x33\x1b\xd9\x08\xb1\xec\xf6\xd8\xeb\xcd\x8e\xfe\xeb\x1b\xd1\x18\x90\xca\xcd\x56\xf5\xa5\xcc\xe4\x88\x8c\x98\x5b\xaa\x5d\xa6\xe9\x1e\x9a\x7e\x8c\xd9\x84\x00\x04\x64\xe3\xf5\x5d\xae\x02\xe9\xb3\x3f\x9c\xb2\x40\x7d\x32\x4b\x04\x4e\x5d\x0c\x9b\x66\xd6\x20\x60\xfa\x19\xbc\xbe\x78\x83\x96\x1f\x72\x3c\x0d\xca\x7c\xdc\x32\x2b\xfa\x18\xb5\x63\x21\xac\xaf\xa5\x79\x9e\x05\xe6\x2d\x4f\x1c\x52\xab\xcd\xd1\xe7\xbc\xae\xf6\xa1\x34\xc2\xf2\x54\x20\xf5\x19\xba\x9a\x0b\x79\xc8\x5b\x19\x70\x4b\x7d\x13\x4b\x11\xdf\xbd\x97\x75\xbf\x41\x5c\x66\x03\xf5\x27\x08\x19\xe1\x30\xc6\x46\x4f\x73\xe1\x5c\x6e\x33\xc3\xd0\x76\xbf\xc9\xdf\x06\xee\x11\x2b\xe3\x28\xf2\x3b\x00\xc6\xda\x2f\x7a\x47\x56\x26\x4e\x3d\x03\x61\x04\xd7\xb9\xb9\xa0\x97\xdc\xb9\xfa\x16\xe5\xd1\xc0\xe1\x4e\x03\xd6\xc8\xaa\x14\x6c\x1a\xd4\x20\xc7\xec\xbc\xdc\x2a\x9e\xa0\x66\x55\x00\x37\x3e\xc0\xfb\xa7\x6a\xd9\xdc\x2a\xe1\x20\xe9\x7b\x57\x0d\x8d\x54\xd1\xb2\xa9\xc6\x3a\xd8\xdc\xea\x58\x65\x6a\x64\x26\xcc\x82\x53\xc3\x14\xb3\x9a\x50\x74\xe8\x9d\xa5\xf2\x00\xef\x98\xa7\xf9\x55\x30\xcb\xea\x4c\xa0\x47\xdd\x04\xc1\xd8\x55\x89\xfa\x0e\x47\x59\x8c\x26\xaf\x35\x91\x23\xb5\xdf\x2e\xaf\xee\xbd\x7c\xdf\xc3\xf6\x29\x30\xa1\x59\xd3\x59\x20\x03\x57\xf2\x08\xa4\x6b\x81\x70\x2c\x4b\x46\xb4\xfb\x21\x60\x9b\x37\x53\xd8\x7b\x6f\xa7\x85\x93\x94\x56\x41\x52\xa6\xb3\x8a\xae\xf3\xf6\xb6\x90\x67\x25\xd3\xbe\xb5\x4d\x1c\xd0\xe9\xe7\xfa\x66\xb9\x58\x6e\xbe\xae\xae\x57\x7f\x63\x26\x5b\xa5\xa4\x0c\xd4\x5c\xb6\xaa\xbd\x7c\xf0\xa8\x8d\x88\x62\xaa\x13\x5f\xda\xfb\x50\xb5\xb3\xa8\x04\x89\x2e\xc0\xa8\x44\x14\x33\x97\xc7\x40\x23\x47\x57\xfb\x7d\xe7\xd4\xb8\x2a\xda\xbe\x43\x45\x14\x0b\x9d\x90\x00\x81\x43\x64\xc5\x84\x37\x39\xb4\x92\x52\x38\x70\x81\xdb\x29\x6f\xeb\x6a\x8f\x56\xe2\xe4\x8e\x24\x92\xb1\xe8\x09\xd8\x5d\x30\x68\x40\x42\x8b\x88\x12\x86\x70\xad\x1f\x50\xb6\xb2\x1c\x7b\x85\x22\xa2\x2c\xc1\x84\xc7\x5d\xf5\x1c\x50\xbe\xbf\x5d\xc0\x6b\x8b\x28\xe1\x12\xa7\xd5\x53\xa5\xaa\x76\x54\xc1\x25\xa2\x94\x08\x04\x7f\x37\xad\x0c\x28\x3e\x11\xa5\xa9\x40\xaf\xeb\xad\x6a\xa1\xb9\x01\x5d\xf4\x0a\x1e\x22\x4a\x05\xc7\x63\xdf\xcb\x5c\x57\x75\xe9\x08\x4f\x7d\x64\x7c\xd6\x01\x8c\x02\xe6\x2c\x10\x98\x54\xc0\xf3\x58\xd3\x65\x56\x99\x77\x69\x6c\x88\x88\x47\x3a\x41\x6a\x02\x5d\x8d\xa0\x3b\x22\xe2\x92\x61\x56\xf8\xfd\x30\xe2\x4f\x98\x9e\x2a\x52\x47\x3f\xbd\xcf\x43\xd6\xe8\xb6\xaa\x1d\x49\xf6\x68\xf1\xec\xda\x59\x8c\xa9\x63\x08\x61\x21\x4b\xe4\x27\x58\x8c\xd7\xfd\x79\x45\x10\xfd\xd7\xd9\xad\x2c\xf4\x93\xe4\xbe\x33\x67\x66\x68\x3e\x11\x09\xc6\x90\x94\x34\x6f\xd0\x86\xfb\xe7\x18\xc8\x28\xa2\x2c\xd2\xca\x86\x54\xbe\x07\x47\x85\xe7\xcb\x0c\x41\x40\x25\x96\x6d\x3c\xc0\x87\x43\xfb\xf8\x83\x32\xd5\x18\x71\xbd\x3f\x4d\x62\xd9\xe1\xa8\x89\xc1\xc7\x4e\x36\x87\xaa\x6c\x2a\xdc\x6b\x10\x3b\x51\x77\xed\x02\x4e\xe7\x97\x2e\xb3\x88\x24\x48\x1a\xfb\x48\x8d\x0f\x0c\xe1\x3e\xb4\x2e\x9f\xe0\x0d\x64\xd1\x4c\xa5\xc2\xcf\xa2\xfb\x22\x52\xb1\x2b\x15\xf6\xe4\x19\xa5\x59\x96\xa6\x7a\x5f\xc4\x9f\x7c\x3a\x45\xa2\x94\x4d\xe8\xc6\x46\x64\x6b\x22\xd2\x9a\x26\x0e\xf8\xd0\xca\xbc\x9c\x84\x9c\x44\x64\x68\x44\xd2\xa9\xf2\xbf\xd7\x6b\x1c\xbc\xc9\xe9\x7a\x25\x22\x93\xe9\x74\x38\xc7\x8d\x91\x66\x55\xba\x4a\xb4\xe9\xa3\x81\x20\xb1\xb3\xa2\xe0\x4d\x16\xc7\xce\x6d\x5f\xac\xcf\xda\x70\x74\x33\xfa\xe2\xf7\xe1\x7b\x59\xab\x30\x6a\x88\xa8\xee\x91\x30\x8d\x88\xa3\x04\xd0\xbd\xff\x02\xed\xfd\xc9\xcb\xe9\xf5\xc7\xac\x2b\xbc\xd7\xd5\x7e\x60\x90\xeb\x0c\x34\xff\xf9\x7c\xb3\x38\x8e\xb1\x42\xf7\x3a\x64\x7e\xfb\x03\x24\xf5\xba\xd2\xa5\x59\x95\xdd\xda\xd2\x57\xf3\x88\x38\x56\x71\xe4\xc1\x0a\x5f\x47\x71\xce\x75\x39\x6a\xc1\x31\x67\xdb\xf6\xbb\x3e\x6a\x88\x5f\x1f\x3b\x3f\xf4\x22\xb6\x43\xc4\xb1\x8d\xb0\x46\x1a\x67\x55\x37\xea\x82\xc9\x80\x24\x3a\xc1\x3b\xed\xda\x39\x59\x16\x3b\x82\x05\x89\x98\xd0\x48\x8b\x90\x25\x96\x7a\xfc\xb8\xc4\x64\x2c\x68\x18\x4b\x17\x50\x9c\xf4\x7e\x4c\x6c\xcf\x7e\xe4\xd6\x1c\x53\xdd\xc0\xb2\xd1\x47\x28\xce\x43\x32\xd3\x53\x29\xf1\x9a\xcb\xcf\x4e\xce\xc1\x65\x01\x07\x10\x72\x78\x06\x9a\x48\x42\xfb\xd2\x83\x6e\x01\x3c\x04\x28\xff\xac\x1b\xa8\x4a\x94\x97\xa4\xb8\xaa\xdb\x95\xb9\x24\x53\x2e\xe2\x24\x8d\x30\x8e\xde\xfc\xe7\x98\xd7\x35\x14\x7b\x54\x06\x7a\x82\xff\x84\x1b\x26\x22\x46\x3c\xc8\x38\x3d\x7f\x9f\x7f\x12\x1b\x17\x71\x92\xb9\x5d\x41\x75\x7e\x60\x67\x67\x77\x8e\xc6\xa9\x99\x2f\x4a\x71\x92\x59\xc4\x34\x9b\xfc\x0d\xe2\xd9\x93\x27\xa0\x70\xed\xd8\xd6\x47\xef\x0e\x0f\x58\xd9\x69\xcb\x94\x68\xa4\x2a\xf0\xe4\xc5\x6e\x3a\x86\xc8\x52\x78\x03\x16\x3b\xda\xfc\xc7\x1a\x56\xba\x1a\x07\x3d\x45\xcc\x88\x41\x59\x32\x57\x49\xf2\xbd\x6c\xf3\x62\x54\x04\x2a\x62\x9e\xc4\x88\x3a\xbe\xbf\xfa\x7d\xf7\xf8\xb4\xdc\x5c\xdd\x2d\x37\xbb\xe5\xef\xdb\xe5\xc3\x66\xb5\x7e\xe8\x5b\xa5\x31\xd6\xee\x3a\x96\x5f\xd9\x74\x4b\xb8\xa3\x21\xba\x18\x08\x15\xb1\x48\x32\xe5\x93\xa9\xb9\x5b\x0d\x07\x4b\x35\x34\x01\xe5\x38\x73\x8f\xa5\xa9\x65\xde\x5c\x28\xdc\xfe\x55\xd4\xb8\xbb\x80\x06\xe8\xa1\x15\xdd\xe4\x9d\x97\xa4\xfb\x86\x32\x73\xaa\x5f\xc1\x4d\x3c\x91\xf0\x0c\x52\x45\x3a\xf6\x18\xbb\xd7\xcf\x69\x6a\x07\xa7\x44\xc4\xd2\xb8\xae\x58\xdd\x3f\x5e\x2d\xb6\xbb\xa7\xe5\x97\xd5\x66\xfb\xf4\xc7\xee\xea\xe6\xe6\x69\xb9\xd9\x84\x2b\xab\x38\x22\x7e\xa6\xdc\x56\xb5\x3e\xab\xcc\xf3\xcd\x34\x21\x18\x19\xca\x75\x85\x0b\x3d\x41\xe1\x8b\x6e\x61\xed\x61\xe2\xc3\x76\x1a\x6b\xc6\x31\x82\xed\xe7\x86\xbb\x12\x96\xcd\x77\x67\x14\xf3\xa0\x84\x88\x8d\x1f\xfc\x35\x14\xf2\x74\x7d\x3c\xe1\x26\xac\xa1\xf8\xab\x1a\xab\x7f\x8c\x63\x43\x44\xfc\x22\x99\x22\x62\x23\x6c\x20\xb7\xda\xc8\x42\xd6\x7e\x7d\xc4\x94\xc5\x84\x12\x3b\xb4\x37\xd9\x58\x34\xf4\x8c\x33\x54\xc4\xc6\x02\x72\x26\xdd\xad\x17\xdf\x96\x37\xa3\xd8\x81\x88\x41\x24\x81\x97\xf2\x93\x91\x07\xd6\xc9\x94\xc1\xb1\xae\x16\x50\xb6\xcd\xaa\x5c\x97\x30\xde\xe3\x62\x9b\x52\x4c\x60\xe2\x8f\xab\x7e\xb9\xb4\x22\x51\x9e\xeb\x10\x8b\x52\xa6\x0f\x65\x33\x81\x0f\xe5\x72\x7f\x3f\x57\x0f\x37\xeb\x9f\x3b\xb2\x5b\x3e\x4c\x1e\x90\x44\x9c\xe2\xf0\xb8\x3f\xfd\xcc\x9b\x97\xcf\x49\x29\x27\x17\x27\x91\x54\x59\xda\xcb\x54\xa3\x09\x35\x09\x88\x0a\x12\xc7\x0a\x21\x2f\xd7\xcb\x87\x7f\x0e\x49\x7a\x41\x62\x95\x39\x30\xbf\x23\xd3\x1c\xea\x12\x66\xf6\x32\x21\xdc\x69\xef\xb8\x95\xc4\xf1\x13\x7c\x5a\xfb\x29\x08\x05\x57\x26\xd5\x79\x35\x0e\xfe\xbd\x5b\x5c\x3d\x86\xbb\xa6\x2a\x45\x49\xfa\xce\xf6\xcc\x1b\xf9\x3c\x4a\x4b\x86\x16\xa0\xf4\x24\x02\xdf\x2d\xa9\x23\xde\x75\xdf\x8c\xa5\x51\xea\x94\x6d\x96\xed\xcb\x43\xb5\x2c\xf5\xc4\x78\x23\x8c\x5b\x44\x37\x14\xd0\xae\xda\xa7\x11\x77\xd6\xb9\xa5\x41\x98\x48\x3d\xc5\x51\x51\x7c\x83\xd3\x79\xc0\x72\xbc\x28\x10\x66\x5d\x35\x36\x9a\x85\xbf\xf5\x3f\x1a\xdb\x23\xbb\x1d\x77\x06\x96\x26\x76\x93\xe6\xfa\x34\xca\x8e\x09\xc2\x23\x83\x0e\x3f\xf6\x67\x40\x74\x85\x63\x49\x8a\x5b\x6c\x88\x1f\x05\x9d\xd7\xd9\x27\x11\x89\xe3\x2c\x7c\x86\xf6\xa1\xba\x40\x7d\xe7\x9b\x75\xab\x17\xf2\xdb\x7c\x5d\xde\x6d\x16\xeb\x20\xd3\x20\x48\x96\x80\x81\x81\x87\xa2\x7b\x82\x3e\x18\x27\x48\xc6\x13\x1b\x20\x73\x2e\xbb\x17\x26\xe6\x10\x64\xec\xdb\x5a\x57\x93\x8d\x94\xda\x3f\xf3\xf6\x05\x8d\x90\x4f\xa5\x48\x66\x63\x45\x32\x93\xba\x08\xf9\xfa\xfa\x29\x5c\x52\xd1\x2c\x19\xe8\xe7\xcf\x48\xb1\x04\x51\xa0\x32\xf0\x86\x13\xd4\x3b\x18\x44\x3f\x04\xd1\xcc\x01\xf8\xf2\x12\x0d\x94\x61\xd7\x20\x1a\x44\xea\x27\xe9\xe3\xca\x29\x28\x12\x16\x0e\x02\xcd\x18\x39\x27\xaf\x9a\x75\x3b\x18\x8e\x38\xaa\x63\xf9\x1e\x02\xf5\x7e\x29\x0d\x54\xb9\xd3\xf6\x96\x49\x44\x75\xed\xe5\xc7\x4f\xc8\x47\x33\x27\x1c\xcf\x12\x24\x81\x73\x61\xe4\x6e\x9c\xcf\xa2\xfb\x82\x58\x49\x71\x5c\x99\xca\x9d\x3e\x3d\x4c\x63\x19\xa7\x83\x9b\xd4\x1e\xa7\xe0\x09\x41\x63\xc5\xe3\x71\xd1\xed\x0d\xbc\x16\x72\xae\xbf\x31\xda\xa4\x28\x31\xce\xc6\xcb\x9b\xd1\xb7\x9e\xde\x93\xa6\x59\x64\x7b\x00\x04\x06\x6a\x1e\x6b\x68\xdb\x53\xb8\x29\xd5\x1c\xf3\x1e\x6d\x9d\x1f\x0a\x78\xaa\xaa\xfd\xbd\xfc\xe8\x0f\x1a\x05\xd9\xc0\x21\x38\xda\xd7\x69\x02\x0c\x8d\xed\xfd\x20\x39\x18\xa6\x28\x4d\xac\x2b\x5c\x72\x00\xdf\xa1\x48\xf4\x17\x71\x18\x41\x53\xaa\x78\x3a\xa8\x53\xde\xc8\x16\x7a\xdd\x68\x41\x59\xcc\x30\x56\xdb\xb3\x05\xdd\x55\x7a\x48\xb2\xfc\x72\xe0\x52\x46\x28\xe6\xa6\xd0\xfd\x1b\xdb\x7f\xfd\xc5\xb9\xc0\xa8\x77\xdb\xd9\x68\xe3\xe0\x00\x65\xdc\xe0\x56\x8c\xa7\xae\x4a\x5d\x21\x34\xf0\xfc\x02\xca\xc1\x85\x9e\x07\x92\x73\xbc\xcc\x68\x6f\xbf\xb8\xfe\x52\x66\x23\x04\xf4\x79\x46\xbc\x6f\x7f\x2c\x3a\xcf\xe4\x93\x02\xa1\xae\x39\xcf\x92\x7e\xed\x53\x52\x35\xfd\x13\x58\x05\xa3\x1a\x0a\x64\x52\x6f\xb4\x3c\xa0\xde\xe0\x7c\xa0\xd2\x6e\xf3\x8d\x06\x36\x61\x97\x02\xb8\x10\x30\xea\x21\xe9\xbf\xfa\x13\xae\x99\x39\x69\xa1\x97\x51\xc8\xd1\x1f\xca\x88\xa3\x8a\xed\x96\x9c\xd1\xae\x46\x25\x21\x74\x28\x16\xc5\x31\x0c\xb5\x33\x6c\x2f\xd1\x52\x08\x2a\xb9\x0d\x3c\xc5\x33\x05\xf8\x59\x3b\x61\xe2\xd8\xe3\x40\x5d\x9d\xc3\xe0\x0a\x52\x29\x55\xa8\x67\xfa\x29\x9f\x61\x9c\xc2\x12\x54\x33\x81\xde\xc6\x63\xde\xad\x91\xdd\xf2\x08\x03\x27\xc0\xa5\x68\x17\xd5\x8a\x89\x38\xb0\x24\x7e\x40\x3d\x77\x90\x7c\x33\x43\x24\x06\xc5\x0a\xb0\x6d\xf5\x06\xf5\x4f\xc8\xa7\x91\x03\xdf\x0e\x8c\xe1\x51\x9f\x28\x1e\x71\xa1\xf8\xe3\x96\x24\x92\x7c\x12\x28\x99\xef\x95\xd4\x6a\x8b\x6b\xd6\xf6\x3e\xec\x26\x49\x4c\x04\x56\x89\x7e\x95\x7f\xfe\xe9\x02\x61\x98\xb9\xb6\xb2\xf7\xcd\x12\x12\xc5\x3e\x91\x76\x4a\x87\xdf\x80\x7a\x91\x09\x8c\xbe\xb8\x4f\xb9\xc7\x6f\x80\x66\xc8\x59\x68\xc0\x9f\x48\x19\x63\x74\xb0\x03\x57\xd7\xdb\xc5\x45\xa6\xac\xd0\x3c\x8b\xb1\xb4\xe2\xe8\x1c\xa6\xc7\xaa\x3c\xb9\x4a\xe7\x51\xaa\x61\xd4\xda\x68\xd4\xab\x5a\xde\xdd\x86\x07\xa5\x90\x44\x9e\xc0\x0f\xd9\x9a\x1f\x82\x60\x5a\x77\x88\x13\xcf\xf9\xfd\x06\x75\xbb\xad\xae\xb6\xdf\xa6\xbb\x55\x92\xc8\x08\x81\xc0\xdb\x1c\xea\xbc\x2a\xbd\xea\xf8\x78\x49\x48\x52\x99\x28\x3a\x44\x7a\x67\x17\x60\x11\x60\x8a\xe8\x1e\xca\x63\x94\x85\x73\x58\xc2\x13\x9f\x9e\x5e\x9e\xa0\x39\xa7\x24\x10\x09\x87\x04\x0d\x95\xeb\x22\xf7\xd4\xf0\x43\x35\x83\x48\x44\xea\xf4\x04\x6f\x3b\xc3\x20\x4e\xe3\xec\xaf\x8a\x59\x45\x22\xb2\x18\xc3\x65\xcb\xfb\x98\x90\xfe\x3a\x99\xc4\xc1\x7a\x2f\x3f\xfc\x3a\xe6\xf0\xe2\x6e\x67\xd8\xf5\xcd\x8c\x57\xe3\xc2\x79\x86\xd5\x90\x63\x19\x48\x91\x64\x34\x13\x5d\x27\x7c\xa9\xbb\xb1\x7c\x7d\xec\x25\x36\x45\x92\x01\xa0\xe7\xfc\x5c\xb5\xfe\xcb\xf9\x03\x52\x5b\xe2\x8b\x6d\xda\xaa\x86\xab\xa2\xd8\xc2\xfe\x70\xa1\xfe\x5a\x24\xca\x70\xda\xdd\xff\x43\xeb\x70\xb6\x56\x0c\x45\x6a\x97\xdb\xaf\xbb\x6e\x1f\xda\xdd\x4a\xdd\x33\x6f\x89\xc4\x10\x89\x9c\x00\xcd\xa1\x06\xe9\x52\xe6\x87\xa2\x27\xa1\x10\x89\xc9\xd2\x00\x6b\xb7\x79\xbd\xbf\x0f\xb1\xf8\xa1\x62\xea\xcc\x90\x0c\x67\x2a\x83\x26\xee\x1b\xd4\xb9\x3d\xf5\x8c\x5f\x93\x59\x99\xd8\x8c\x3a\xa8\x59\x9d\x6b\x58\xdb\xb5\xb5\xb9\x96\x08\x08\x1c\x54\x21\x45\x62\x8d\xba\x10\x4c\x3c\x03\xb3\x8f\xc2\x7e\x69\x44\x1c\x8a\x06\xd9\x10\x31\x0e\xd1\x86\x82\x01\x91\x46\x5c\x0a\x13\xe8\x8a\xfe\x0c\x18\x4d\x91\xc6\xa0\xd0\xe2\x54\x58\xf8\xa4\x3f\xdb\x4e\x52\x42\x2d\x6a\x00\xc9\xe6\xf5\xb6\xaa\xb1\x36\xf5\xb7\x59\x0b\xc6\x30\xad\x71\x8f\x75\xf4\x4d\x0b\x75\xd8\x73\x6b\x38\x8b\xee\x86\x73\xbc\x20\xad\x2b\xe3\xac\xaa\xc2\x69\x51\x85\x01\x92\x12\xe1\x34\x58\xa5\x0b\x63\x61\x0d\xd2\xbc\x0e\x59\xa4\x34\x71\xfe\xa3\x2e\x72\x6b\x6f\x82\x01\xe1\x0f\x26\xc4\x60\xf5\x63\xb0\x76\x27\x59\x3f\x91\xa6\x51\x8c\xe1\xf5\xc3\xb1\xdd\xa0\x9c\x6a\x38\xfe\xab\x40\x79\x9a\x6a\x87\xb4\x6b\xa0\x5d\x7e\xb4\xb5\x74\xa6\xcb\xdf\x42\x27\x0f\x17\x61\x94\x82\x0b\x6e\x62\x4a\x63\x1d\x62\x77\xe1\xd1\x18\x27\xb1\xd7\x05\xa8\x9f\xbb\x39\x30\xeb\x70\xa6\x15\xa6\x12\x56\x8b\xf5\x7d\x5e\x6e\x3d\xb2\x2c\xe0\x51\x2e\xb9\x38\x29\x4f\x20\x66\xa1\x84\xbf\x69\x6e\xc2\xad\x78\xca\x7c\xee\x4e\xaa\x02\xe6\x75\xf6\x22\xe5\xc2\xc4\x8e\xaa\xa4\x7a\xf7\xc4\x8f\xd2\xc2\x98\x3b\x7c\xf6\x6e\x1c\x54\x50\x75\xdc\xca\xe7\x19\x57\xac\x48\x3b\x13\xc0\xf3\x42\xb9\xb8\xec\xda\xfa\x4d\xba\xff\x30\x82\xbb\x58\x9e\x92\xe6\xb9\x57\xe2\x0b\xc7\x32\x07\x05\xeb\x0c\x84\xdb\x22\x3f\x1c\xfa\xc9\x9b\x0a\xe5\x1c\xad\xaa\xee\x5c\x88\x4f\x0b\xca\x45\x2a\x40\xd9\x81\xd3\xf7\x47\xde\x48\xa4\x0a\x1c\x0b\x81\x7d\x06\xe5\xbc\x84\x30\x13\x9d\xf1\x8c\x35\xe6\xba\x00\x59\xf7\x0a\xa2\x97\x10\x4a\x22\xcd\x88\x71\x9c\xba\x45\xd5\xc0\xcf\xaa\xde\xbf\xf4\x92\x06\x22\x95\x9d\x83\xe1\x08\xfc\x74\xf7\x91\x56\x3f\xfa\xef\xa4\x22\x8e\x5e\x59\xd3\x56\x87\x95\xae\x7c\x59\x7d\x7f\x94\x10\x11\x78\xb7\x5d\xe6\x00\x43\x29\x9f\x64\x40\x45\xaa\xd2\x14\xc9\x9f\xd0\x62\xdd\x40\x01\x7a\x3c\x71\x94\xe4\x99\x08\xc2\x6e\x6d\x0e\x41\xe8\x2b\x1c\x36\x29\x12\x96\xd4\xc7\x72\x14\x3c\x4f\xb5\xc8\x30\x76\xea\x44\xb3\x66\xc8\xa6\xd9\x27\x30\xd4\x60\xfa\x77\x9f\x97\xed\x24\x49\x97\x1a\x96\x32\x2f\x77\xb5\xb9\x7f\xf4\x85\x85\x38\x04\x1e\xd1\x1c\x9a\x0d\x27\xc3\x9c\xe9\x6d\xf3\x32\x6f\x5e\x3c\xc8\x3b\x3c\x11\xa4\x89\x70\xdd\x89\x6e\x63\xcf\xb4\x28\x52\x10\x02\xd1\x31\x79\x0b\x67\x20\x73\xa7\x01\x33\x7e\x61\x30\x4e\xd1\x7f\xbf\x0b\x80\xa6\xd9\x56\x94\xda\x24\xc1\xc8\x69\xe9\x87\xf4\xcf\xbc\x5f\xc9\x58\xa4\xc1\x74\x8f\xb8\x5d\x2d\x9f\xe2\xbe\x8e\x5b\xb0\x98\x50\x18\xe8\xf4\x4f\xf3\xa0\x31\x8b\x53\x40\x56\xc2\x5e\x92\xb2\x34\x8f\xf2\x13\x14\x9f\x3f\x85\x44\x44\xab\x81\xbc\xc5\x93\x7b\x78\x4a\xaa\xcb\x26\x27\x23\x3c\xc5\x0c\x6b\x5e\xb6\xb9\x9c\x64\xe9\x05\x23\x8a\xa1\x85\x0c\xdd\x4a\x87\x71\x70\x7f\x80\x12\x8a\x69\x41\x59\x14\xdd\xa2\x30\x36\x8e\x19\xf5\xf8\xc7\x26\x7f\x0e\xc5\x1e\x17\x83\x85\x8c\x5a\x8e\xf3\xf0\x26\x7f\xce\x1f\xa1\xa9\xc2\x05\x92\x2c\xb6\xda\x0f\xe6\x27\x00\x74\x7f\xfb\x47\x4a\x34\x75\x35\xa5\xe3\x4a\xaf\x8d\xe3\xf6\x9f\x6e\x0e\x2c\x01\x9e\x04\x62\xf3\xbc\x6d\xfb\x9d\x8f\xa5\x91\xf5\x78\xff\x57\x28\xbf\x40\x09\x6e\xdf\xb8\x1b\x42\xe1\x2c\x15\x19\x52\x0d\xee\x9e\x1d\x3c\xe2\x1b\x9c\xf5\x7c\x68\x29\x29\x77\xe1\x09\x27\x08\xbd\x8b\xfb\x6b\x48\x40\x40\xc2\x8b\x6c\x9e\xaa\xe2\x6c\x41\x98\xf5\x46\x6a\x74\xd2\x03\xde\x50\x26\x7a\xd2\xab\x3c\x49\xb1\xce\xb7\x1d\x73\xea\xb7\xd5\xb7\x3f\x16\x9f\x3c\x17\x57\x4e\x4b\xe0\x19\xda\xf5\xc3\x97\xa9\xaf\xc5\x84\x17\xe8\x76\x08\xeb\x6d\xbe\x1f\x69\x6c\x08\x26\x32\x22\x03\x38\x10\x6b\x84\xbe\x1c\x65\x2d\xcb\x76\xa6\x6a\x2f\x98\xd0\x3c\x1e\xcb\xd6\xdf\x0e\x8a\x84\x82\x65\x91\x26\xae\x68\xe1\xea\x4d\xe6\x28\xdf\xdf\xf5\xf0\xa6\xa8\x3e\x89\x33\xb2\x8c\xd8\x98\xfb\x90\xcd\x3d\xd4\xaf\x05\xdc\x80\x95\x9d\x71\x78\x4e\xf5\x7f\x71\x25\x66\x99\x76\x6e\x56\xde\x34\x47\x9f\x28\x9a\xa6\x2d\x59\x66\x04\xf3\xd6\x95\x5b\x56\x9a\xdb\xaa\x76\x85\xa0\x5e\x50\xf1\x93\x30\xb8\x3f\x5f\x5a\x85\xce\xc4\x73\xfe\x06\xab\x0b\xab\x87\x6f\xa6\x48\x86\xcc\xdc\x6e\x41\x68\x26\x9f\x52\x51\x1e\xa8\x94\xd5\x28\xfd\xc2\x94\xe0\x34\xeb\xe1\x68\x30\xa9\x42\x11\x4c\xe9\x18\xd3\x6d\x8e\x31\xf5\xfa\x84\x38\xb4\x79\x50\x85\x69\x1a\x83\xab\x4a\xf9\x7d\x33\xf5\xa0\xc2\xdf\xc9\x63\xea\x54\xa1\xfd\x84\x08\x9d\x9f\x2f\x00\xc5\x6d\x5e\x62\x5a\x69\xb2\x0e\x18\x4b\xe9\x10\xd5\xfa\xac\xbc\xf2\x1f\xf3\x15\x0c\x62\x27\xa3\x78\x75\x34\x79\x3b\xad\xaa\x17\x0c\x38\x0b\xd1\x90\xed\xc0\x64\x31\x26\x91\xec\xda\x64\x2e\x70\x8c\x5b\xda\x6d\xfe\x01\xc6\x15\xf0\xfc\x38\x58\x67\xd9\x9f\x2e\x29\x23\x8c\xc7\xc7\xdc\xe1\xbc\x6c\x91\x31\x50\x54\xf1\x41\xc2\xca\xf7\xfd\xd4\x62\x64\xa0\x49\xea\xa1\x30\x0f\x55\x2b\xeb\xd3\xa3\xac\x35\xcc\x8c\x33\x66\x09\x43\xd1\x93\xeb\xfc\x19\x5d\x9e\xb1\x5f\xc8\xac\xd0\x3a\x0c\x3f\xd7\x8d\x38\x27\xda\x11\x60\x23\xb4\x54\x22\x1b\x48\x74\xd1\x4b\x6d\xc6\x00\x9c\xc9\x4d\x79\x0c\x19\x72\xcb\x3a\xe1\xfb\x42\xe6\xfb\x9f\x32\x6f\x87\x82\x27\xdf\x8c\x46\x60\x3d\x9c\x06\x6b\x9b\xbd\xe2\xc3\x64\xa4\x71\xca\x4d\x50\x42\x5c\xb6\x2f\x9f\xc2\x02\x05\xa7\x36\x32\x2c\xdc\xb4\x73\x44\x7b\x6e\x3c\xc1\x93\x48\x60\x1d\xb0\x3d\x96\x26\xec\x60\xfd\x31\x6a\xd1\x4b\x7b\x87\xfc\x3e\x2f\x2f\x00\x2a\x78\x4a\x08\x1a\xb8\x28\x5a\x36\x04\xf8\x78\x9a\x70\xb4\x62\x7b\xe4\xd6\x56\x96\xaf\x5f\x8f\x81\x17\x5e\xf0\xce\xce\x45\xb7\xc1\x15\x4d\x0f\xcc\x57\x82\x33\x92\x04\xfd\xbb\x2f\x75\xbe\x7f\x02\x79\x80\xba\xb9\x7a\x96\xdd\xca\x3d\xce\x09\x71\x96\x11\x24\xf6\x6a\x87\x54\xfa\x55\x69\x90\x7e\xfe\x42\x80\x95\x33\x9d\x39\x19\xb2\xe5\x62\xfd\x70\xb3\xbb\xfa\xbe\xd8\xae\xd6\x0f\x9b\xdd\xea\x61\xb5\x5d\x5d\xdd\x05\xa6\x9c\xab\x2f\x21\x31\xc4\x39\x71\xc2\x0a\xcf\xd0\xee\xda\xc1\xb9\xdc\xe9\xd1\x32\xc1\x79\x62\x3c\xcf\x4f\x37\xc4\xf5\x08\x24\x2a\xb8\xa0\x2a\x4a\x7a\x46\x87\xfb\xef\x77\xdb\xd5\xe3\xdd\x6a\xf9\xb4\x5b\x2d\xd6\x21\x02\xce\x05\xb7\x98\x12\x28\xe1\xa3\x9d\x45\x91\xb9\x10\xc0\x44\x98\x7d\x01\xb3\x23\x8b\x91\x8d\xc4\x33\x2a\x30\xcb\xd4\xba\x54\x82\x57\x2f\x1b\x7b\x58\x3c\xcb\xe2\x24\x68\x62\xe6\xa6\xb9\x83\xf2\x39\x60\x5d\x05\xcf\xc0\x31\x86\xfe\xcf\xfa\xe9\xe6\x2a\x44\x96\xb8\x24\x8e\x33\x2f\xa0\xf4\x1e\xe4\x1e\x7e\x2f\x3d\xe3\xf7\x8d\x3c\x9c\xd7\x97\x8d\x5e\x5b\x1a\x29\xa3\xd1\xc9\x8f\x47\x35\xde\x98\xc7\x1f\x45\xa5\x8e\x84\x15\xbd\x68\xf9\x5e\x0e\x9c\x34\x53\xa2\x09\xc1\x95\x4e\x70\x4a\xfe\x5c\x7e\x59\xfc\xd6\xff\xe6\xc2\xfc\x3f\xf2\x6e\x91\xc9\x61\x52\xc1\x2c\xb8\x02\x82\xe8\xd6\x51\x8d\x50\xd2\x59\x09\x3b\x3f\x3f\x42\x3b\x4d\x8d\x03\x40\x76\x8b\xe9\x20\x43\x35\xdc\x5b\xa7\x06\x0d\x7e\x89\xfa\x94\x5e\xd8\xed\xb2\x0a\xf2\xfc\x44\xeb\x7d\x24\x5f\xc7\x80\x09\xdd\xe9\x12\xc2\x75\x96\xf0\xc0\xf5\xd6\xca\x67\xb8\x7a\x83\xce\x4c\x9a\xeb\x61\x09\xae\x21\xc2\x48\x4a\xdd\xad\x32\xf1\x68\x0c\x18\x22\xd1\xa6\x5f\x6e\xbf\xee\x16\x4f\x3f\x6f\x30\xf9\x37\x1c\x54\x18\x58\xb8\x3e\x9e\xee\xd7\x7f\x4c\xd7\x10\x93\xb9\x13\xbb\x11\xee\x19\x05\x76\xfe\x59\x77\x30\x0f\x57\x72\x63\x34\xe6\x23\x83\xfb\xb9\x7c\x83\x99\x5f\xc0\x21\x65\xa1\x6a\xe0\xeb\xcf\x85\x77\x19\x2f\x6f\xbe\xdc\x0a\x83\x0a\x0b\x6e\xab\xf4\xe8\x92\xdf\x2e\x18\xcc\x22\x22\x02\xe1\xad\x8d\x5b\x26\x97\x8e\x4c\xf3\xb7\x70\x94\xc5\x08\x4e\x97\x87\x03\x94\xe6\x1b\x9c\x5c\x48\x6e\x1a\x1f\x08\x6d\x45\x84\x51\x1b\x64\xae\x0c\xf5\xbc\x97\x43\x6f\xd3\xa7\x15\x91\x72\x98\xd1\xbb\xea\xd9\xd9\x21\x8f\x8b\x0b\x78\x7f\x21\xe2\x0c\x22\x87\x0b\xfe\xd8\xd6\x32\x2f\xa1\x76\xf4\x97\xfe\x30\x21\x1c\x5d\xaa\x85\xac\x6f\xa0\x1e\x98\x48\xa7\x37\x23\xd2\xe0\x0b\xff\x90\xae\xc6\x7b\xd0\xe0\x11\x82\x02\xc7\xe4\xfd\xa3\x3c\xa1\xff\x32\xbd\x7d\x92\x90\x24\x1e\xed\xd7\x0b\xd9\xc2\x73\x35\xa8\x19\x0a\x91\x48\x67\x9a\x2b\xdc\x5c\x26\x7e\xbb\x60\x46\x4a\xd2\x57\xce\x39\x28\xe3\xfc\x23\x4e\xef\xc7\x33\x63\xc4\x00\xe4\x9b\x94\x1c\x5d\xee\x48\x9e\xb9\x8a\x6a\x67\xa5\x5c\xe7\x41\x88\x2d\x1c\x96\x9a\xa2\x5e\x7d\xcf\x8f\xdc\xb4\x93\xf0\xa0\x10\x1c\xd0\xf1\x08\xa9\xb5\x5b\x2c\xb2\xfd\x30\xf0\xd6\xbc\xf4\xf1\x34\x91\x45\x29\x46\x7f\x1b\xe9\xa0\x41\x17\xc2\xaa\x22\x4b\x9c\x96\xac\xad\xe5\xd8\xb3\x16\x92\x4a\xcf\xa5\x7a\x11\x43\x3a\x97\xe2\x98\xf9\xef\x33\xea\xb4\x69\x7f\x49\x20\xe9\x40\xdb\xfd\x6f\xd0\x6d\x13\x16\xfd\x8b\xe9\x0f\xa1\x22\x81\x55\x9b\xc1\x67\x5d\xd4\xa7\x4d\x55\xac\x15\x9e\x1a\x1e\x58\x11\x83\xdf\x6d\x17\x9e\xf8\xc9\x97\xb4\x5c\x9e\x05\x4a\x30\xee\xa3\x4c\xdb\xfa\xd8\xb4\x30\x2f\x2e\x0e\xed\x32\x8e\x50\x97\xeb\xef\xbf\x8f\x92\xd8\x42\x59\x25\x7b\xfa\x07\xa9\xdb\x1b\x27\xbc\x3f\xa6\xaa\x17\x42\x13\x8e\x85\x78\xf9\x50\x5b\x05\x13\x61\x94\xd0\x2e\x25\xb8\xa8\xfd\x80\xf2\xd8\x8c\x12\x4a\x42\x1b\xa7\x65\xdc\x39\xde\x33\x8f\x46\x18\x1d\x7b\x22\xda\xb2\x84\x7a\x27\xcb\xb2\x3a\x96\x9f\xc6\x46\x05\x78\x4f\x69\xbd\x87\x67\xf9\x58\x57\x6d\xa5\xab\x30\x23\xb3\x28\x03\x3e\xce\xd4\xde\x9f\xc2\x88\x9f\x5c\x24\x8b\x23\xc5\xa3\x11\x37\x17\x8a\xc6\x56\x1f\xa7\x4b\xbb\x55\x16\xd3\x54\x9b\x10\x37\xbd\x76\x5a\xb4\xe1\x50\x6a\x31\xb7\x76\xb3\x40\x3c\xfb\xb5\xd4\xaf\x50\x9a\x8b\xc0\x7e\x91\xc5\x4c\xe1\x06\x82\x21\xe3\x6d\x75\x16\x59\xc9\x68\xc6\xb1\x9e\x46\xb5\xba\xb9\x3e\x9e\x7a\x02\xd2\x69\x2f\x67\x54\x65\x98\xcd\x1e\x30\x05\x81\xd0\xc4\x37\x48\x20\xa3\xc1\x99\xac\xf6\x30\x5e\x42\x43\x0b\x2b\x98\xcb\xb8\x38\x76\xee\x30\xf8\xb2\x34\xa5\x81\x28\xc9\x43\x3c\x17\xb2\x34\x58\x54\x79\x5b\xd5\x8f\x75\xfe\x67\x7f\x97\x34\x4b\xe3\x5e\xa8\xbe\x2c\xa1\x9b\xd6\xb3\xa4\xb8\x6f\xc9\x98\x34\x81\x09\xad\xda\xab\x80\xe4\x98\x35\x32\x86\x79\xae\x61\x8f\x49\x1f\x5b\xc0\x7e\xdb\xcc\x38\x75\x04\x4c\x8e\x7e\x00\x65\x1b\x67\xd7\xe1\x82\x06\xa5\xad\xcd\xa0\x12\x35\x58\x34\x99\x80\x18\x3f\xc3\xce\x0b\x8e\x8e\xed\xd0\x2c\x23\x59\xe6\x29\xe5\x8a\x00\x02\x9f\x78\x24\x59\x66\x28\xbe\xf6\x16\x9a\x36\xdf\x57\xe5\xa9\x3f\x00\x2e\xb8\xdd\xca\xfa\x19\x5a\x1a\x7e\x96\x8a\xe1\xcb\xff\x51\x1d\x3d\xb1\x51\x37\x31\xfa\xcb\xa9\x84\xa5\x3a\xd4\x80\xe7\xed\x15\xd6\x05\xad\xbc\xae\xe1\xb9\xbf\x37\x1d\x30\x4a\x44\xa9\xff\xd0\xeb\x46\xcb\x79\x97\xaa\x2c\x42\x6b\x01\xe1\x34\xdd\x67\xce\xcb\xe7\xc1\xd2\xc8\x94\x96\x58\x66\x70\x7d\xb5\x9d\xb0\x73\x8a\x4c\x7b\x1d\x3f\x67\x23\xdd\xc9\xf7\xd3\x0c\xd8\x9f\x99\x24\x41\x6b\x78\x77\x90\xa7\x73\x1d\x33\x91\x19\x1d\xe1\xb2\xe2\xbe\xd3\xfa\x30\x47\x56\x66\x20\x23\x9b\x7a\x28\xc2\x38\x86\x8b\xb9\xcb\xf2\x7c\xd0\x83\x01\x6d\xfb\xf0\x89\x0f\x4f\x16\xc7\xa6\xaf\x2c\x9e\xde\x1f\x6c\x14\x8f\x04\x9c\x86\x75\xeb\x6a\x1e\xf4\xcb\x6c\xc6\x03\x37\x0e\x72\x02\x20\xf6\xe6\xaa\x7e\x3e\xee\x07\xee\x5f\x91\x59\xe5\x18\x74\xe0\x90\x37\x95\x81\x5e\xc8\x61\x8e\x59\x9c\x3e\x86\x35\x12\x8b\xc5\x6e\xf3\xa6\xef\x5c\x0b\x1a\xd1\x26\x52\x55\xc7\x30\xc9\x1e\x7b\x8a\x3a\x21\x23\xe9\x88\x5e\x91\x5d\xd6\x65\x71\x31\xf6\x3f\xe9\x0f\x19\xc7\x19\x8e\x62\x0c\xfd\x6e\xa0\xfd\x91\x37\xb9\x2a\xe0\xd2\xd6\x28\xe3\x24\x72\x92\x8f\x30\x0c\x57\x19\x03\x47\xdb\xe6\x3d\x37\xed\x0b\x82\x5a\xde\xc2\x21\x22\x12\x11\x4a\x7a\x1d\x8f\x85\xa7\x9b\x9d\x3e\x02\x4d\x5d\x35\xe4\x0e\xb3\xfe\x18\x35\x7a\x94\x75\x9b\x5f\x80\xbf\x49\xea\xdd\x08\xe7\x45\x2e\xcb\xf6\x5c\x95\x3f\x7c\x10\x49\x6d\xa4\x7c\x3c\xda\x47\x1c\xc6\x08\x65\x99\x88\x0c\x5d\x45\x74\x54\xb7\xd5\x11\x29\x24\x7b\xb3\x47\xa6\x11\x43\xad\xf6\xf6\x25\xaf\x1d\x94\x2f\x70\x46\x3d\xba\x1c\xa0\xcf\xad\x77\xcb\x6f\x38\x85\xc4\x68\xb4\x87\x3d\xd0\x49\xad\xd6\xfd\xe1\x84\x0e\x2a\xc5\x4f\xb0\x97\xf9\x28\x06\x2f\x53\xad\x91\xb3\xfa\xd6\x2b\xd9\x7c\xb2\x6f\x49\x16\x39\x74\x7d\x8f\x34\xef\x66\xf8\x71\xa6\x3a\x2d\x24\x27\x6e\xf9\x92\xc6\x5c\x57\xd5\xeb\xc5\xef\xc9\x13\xcd\xf5\x05\x45\xe3\xcd\x71\xbf\x97\xdd\x12\x7d\x46\x32\xd9\x9d\x63\xd1\x09\x44\xb1\x8e\x65\x5d\xf7\x26\x98\xe4\x99\x41\x7a\xa4\xf7\xaa\xb0\x74\x1a\xba\x93\x82\xa5\x36\xe4\xc7\x3d\x2c\x7f\x36\xd3\xa4\x80\x08\x01\x08\xfb\x11\xe3\xf6\xd4\x44\x91\x19\xb8\x8a\x36\x57\xc3\x67\x8e\xba\xf7\x8d\xcf\x6d\x08\x29\x33\x2b\x7a\xae\xd5\xdb\xaa\x5e\x1f\x5b\x5d\xed\xc7\xa4\xa3\x42\x2a\x41\x78\xd2\x7b\x59\xbd\xbe\x92\x90\x2a\x23\x91\x18\x52\x6e\xd7\x27\x17\x86\x9f\x3e\xb1\x92\xce\xe0\x38\xc8\xba\xbd\x85\xe1\x64\x1d\x2b\x45\xc7\xec\x72\xbd\xe1\x75\x09\xd6\x2c\x35\x61\x18\x83\xb8\xad\xea\xd7\xa6\xdb\x0d\x66\x0e\xbf\xd4\x44\x60\xc6\x07\x89\xa1\x7c\x41\x71\xd2\xcf\x3f\x9d\x2a\x2c\xe0\x6a\x03\x3b\x32\xa2\x65\x77\xcf\x2d\xa4\xaf\xdf\x9b\x60\x61\x48\x13\xeb\xb0\x3f\x2c\xe4\x61\x62\xe1\x4b\x60\x31\x46\x2f\x7f\xca\x37\x68\x1e\x65\x7f\x69\x00\xe7\x03\x23\xaf\x69\x5e\x3e\xf7\x95\xf7\xb3\xae\xb6\x9a\x58\x08\x88\xdb\x7d\x5e\xfe\x90\x75\xde\x19\x7f\x7d\x8f\x58\x43\xbd\x5e\xdc\x5b\xde\x54\xf5\x69\x12\xa2\x54\x51\xe2\xbe\xfc\x75\xde\xbe\xc0\xbe\x6a\x2f\x93\x07\x0a\x15\x29\xc7\x9e\x8c\x93\xb0\xee\x4f\x8f\x63\x83\xe1\xf5\x2b\x63\x56\x2d\xec\x31\xb5\x1b\xec\xaf\x11\xfe\x79\x0e\x87\x66\xff\xb8\x64\x06\xab\x98\x38\x28\xf9\x73\x67\x61\x36\x2f\x8f\x55\x5e\xb6\xd7\x27\xac\xa1\xb8\x90\x9b\x55\x31\xa3\x58\x7f\x8a\x42\x13\x8d\x0b\xec\xfa\x43\x24\xa3\x28\x8d\xe2\x88\xb6\x7d\x8f\x8f\x8b\xf5\x7c\x3b\x4a\x63\x24\x51\x38\x20\x50\x63\x60\xdb\x98\x0c\x36\x45\xa5\x13\x3b\xca\x9b\xb5\x31\x67\xc7\x0c\x0f\x68\x0e\xd9\x62\x99\xdd\x5d\xae\xa6\x1f\x49\x51\xc3\x82\x20\xe7\x0f\x28\x4d\x55\x5f\x1d\x0e\x45\xee\x40\xc6\x1b\x5d\x75\x8f\xb5\xad\xbb\xed\xe3\x92\x83\xa6\x28\x24\x18\xdf\xff\xbe\xb9\x21\xd1\x36\xd0\x3d\x84\x57\x4d\x20\x15\x11\x06\x3c\x8b\x4a\x9a\x3e\x5c\xfc\x29\x6e\x49\xa5\x91\x64\x74\xcc\x84\x78\xf9\xae\xa9\xb6\x48\x9a\xa2\xa0\x04\x9b\xeb\x5c\xd6\xa7\xdd\xbe\x32\xb9\x9d\xad\x76\x8a\x31\xe9\x13\x72\xa5\xf9\x5c\x5a\xc6\x37\xe6\x59\x8a\x57\xbd\xfd\xf8\x98\x20\x7f\x3a\x0f\x28\xc8\x06\xe3\x0e\x7e\xae\x9c\x20\x54\xc6\x12\xe4\x36\x0d\xa4\x99\xf3\xc3\x22\x46\x7b\x61\xf1\x74\x77\x08\xca\xac\xfd\x21\x8b\x25\x42\x81\x14\x72\x76\xa2\x24\xd2\x43\xb1\x3f\x53\xff\x99\x75\x4e\x26\x39\x22\x02\x17\x77\x8b\x5f\xe1\x84\x94\x64\x4e\x9f\x6f\x24\x14\x14\x26\xa6\x92\x42\x07\x7a\x96\x07\xf8\x68\xc3\x0e\xb7\xdd\xde\xbb\xdd\xcd\xb0\xdf\xc6\x18\x40\x25\x65\x16\xf9\xcc\xd4\x55\x0d\x72\xe9\xea\xbb\x46\xa8\xd4\x8b\xac\x12\x42\x49\x93\x22\x43\xd1\xb1\x81\xfa\xae\x92\x9f\xd4\x43\x0b\xa5\x24\x44\x74\xea\x4f\x39\xdd\xa1\x39\x20\x47\x99\x84\x3b\xcf\xc3\x21\x1c\xd1\xfc\xd1\xa7\x0b\x41\x86\x19\xa4\x4c\x01\x11\x68\x93\x1e\xcb\xcd\xb1\x39\xcc\x49\xb1\x85\x02\x1a\x59\x3d\x24\x62\x83\x8a\xf3\xac\x91\x14\x99\xdf\x1f\xdc\xe2\x0e\xa6\x07\x0e\x5d\x5c\x56\x6c\x94\x62\xd0\xb6\x80\x37\x28\x62\x17\xc6\xeb\x0f\x01\x02\xbc\x5d\x1e\xbc\xf3\x0b\x07\xab\x40\xd9\x98\xf3\x09\xfe\xfe\xb1\xaa\x5e\xae\x8f\x27\x5f\xb5\x33\x7d\x35\xcb\x5c\x26\x64\xb3\xbd\x7a\xda\xee\xae\xef\xd6\x8b\x6f\xbb\x87\xef\xf7\xd7\xcb\x80\xe6\xd6\x11\x71\x2c\x8a\x5f\x10\x34\x7a\xda\xdd\x1f\xff\xc8\x77\x0f\x55\x80\x8f\xe9\x58\x53\x4d\xa6\x10\x8f\xed\x6c\xdb\xd3\xb1\x95\x98\x14\x47\x32\xd0\x55\xd8\x44\x34\x49\x1d\xff\x5b\xde\x3c\x54\xed\x48\x4e\x67\xd2\x0f\x9a\xe8\x38\x2c\xaf\xba\x02\x6b\x75\xfe\x69\xed\x82\x26\x5a\xa0\x39\xf5\x58\xc0\x07\x06\x01\x2e\x00\x58\x27\x15\xcf\x42\xd3\x88\x87\x42\xbd\xde\xed\x0c\x7e\x8a\xa6\x49\x8c\x61\xb6\xbc\xf9\x56\x56\xef\xe5\x40\xa3\x34\xbd\x44\xda\xd3\x6d\x7f\x3d\xee\x65\x39\x29\x41\xd4\x94\x83\x36\x93\x7a\x08\x74\x4c\x1e\xf3\x0f\x28\x26\xd8\x91\xff\x8b\xd9\x0c\x29\xa9\xa9\x76\xa5\xa6\x4e\xab\xf0\x4f\x58\x8d\x24\x74\x2f\x66\x69\x74\x42\x00\x13\xfc\xa6\x3a\xaa\x02\xce\xa9\xc7\x85\x4e\x58\x4f\xbd\xfb\xb0\x0a\xf8\x04\x9d\x68\x8a\x36\xc1\x37\x59\xcb\xf5\x24\xfe\xad\x13\x6d\x1c\x4d\xbf\x7c\x83\x4d\x7b\x34\x23\x46\xc1\x59\xcc\xea\xe2\x26\xac\x53\x2e\x32\x12\x10\xba\x3a\x6f\xe6\x94\x4f\x42\xa7\xda\xb1\x72\x9b\xbc\xf1\x8b\x64\x4f\x9d\xe4\x5b\xb0\xd4\xa1\x3a\x77\xcd\x08\x2e\x99\xcc\xde\x8c\x29\xc3\x7a\x9d\xa7\xfb\xbc\x9c\xbf\x79\x16\x71\x46\x26\xf1\xaa\x55\xd3\x1c\x3f\xa9\xed\xd6\x19\xc9\xa4\x98\x0c\x0c\x4c\xcb\x79\x89\xdb\xf0\x60\x19\xa5\x98\x8a\xdb\xc2\x47\x1b\x18\x86\x43\x0c\xe6\xc2\xd2\xaa\xb3\x44\x23\x73\xd7\xae\x7b\x88\xcf\x41\xaf\x3a\xe3\x23\xae\x0f\x0b\xf5\x6d\x5d\xed\x7f\x9c\x39\x9b\xff\x7f\xce\xbe\x6c\xbb\x71\x1c\x49\xfb\x75\xea\x62\x2e\xb8\x83\xb8\x94\x25\xd9\xe9\x29\x2f\x6a\x4b\xce\xac\x9a\x3e\xff\xd1\x09\x00\x01\x9b\x6d\x8a\x54\x93\x94\x9d\xea\xa7\xff\x0f\x03\x00\x37\x51\x59\x35\x73\xd1\x55\xd5\x26\x48\x71\xc1\x12\x88\xf8\x16\x09\xcc\x0f\x9d\xd5\x3f\xfd\xcc\x23\x0e\xfb\x1e\x58\x97\x6b\xe5\x00\xea\x78\xff\x8f\x9d\x2d\x94\x5f\x20\xfb\xa4\x08\x14\x15\x78\xb6\xbb\xe7\x41\x06\x4d\x8a\x08\x08\x31\x2c\x68\x0a\x1a\x7f\x5b\x11\x07\x2e\xbf\x72\x5b\x21\xbe\x80\x10\x59\x33\x0c\xa5\xba\x2c\xca\x3c\x10\x42\x0a\xf0\xc4\x90\x05\x3b\x97\x0c\x97\x02\x18\xe5\x25\xc9\x24\x32\x1c\x8c\x4f\x21\x31\x1e\xcd\x75\xab\xec\x33\x53\x58\xa8\xfa\x62\xfa\x97\x52\x79\xb4\x3b\x6b\x43\xd3\xc9\x83\x2b\x90\x54\xfc\xfa\xca\x0a\x55\x7e\x79\x44\x4d\x1d\xb0\x7a\x24\x4a\x49\x2a\x3e\x8f\x0a\x15\x81\x38\xdf\x21\x2b\x86\xaf\x48\x73\x3f\x75\xbb\x02\x42\x17\x2e\x2d\x37\xa8\x53\xc9\x4c\xa5\x56\x46\xbf\xe8\xa1\x7c\xbb\x99\xf4\x7f\xad\x4d\xa1\xf3\xe9\x66\xb1\xf3\x3d\xff\x5a\xa9\x7d\x7e\x7c\x29\x8f\x25\x94\x73\x3b\x96\x16\x04\xe7\xae\xab\xbc\xd4\xa7\x6d\x40\x7b\xab\xdf\xb3\x3c\x07\x7b\x2f\xca\x57\x31\x51\x72\xbf\x9c\xd7\x85\x0b\x20\x26\xdf\x57\xf9\xa8\xc9\x15\xad\xea\xe5\x18\x0c\x91\xdb\x5d\x29\x8c\x24\x95\x11\x8c\xd5\xc1\xaf\x81\x60\x2a\x14\x3e\xa9\x21\x12\x38\xca\x5d\x21\xf2\x0c\x99\xf3\x0d\x0e\x38\x9a\x39\x55\x14\x2b\xdf\x86\x1a\xdb\xf7\xec\x78\x9c\xa8\x90\xa5\x2a\x02\x46\xbb\xbb\xc5\xeb\x6a\xff\x7c\x28\x32\x55\xe6\x39\xf4\xa7\xa3\xf4\x02\x37\x1d\x58\x36\xc5\xe4\xf1\x62\x16\x51\xce\xf1\x8f\xc7\x87\x3f\x87\x73\x9e\x8a\x21\xb0\x7e\x91\xe7\x9b\x36\xbc\x39\x8f\x37\xe6\x8a\x85\x09\x65\x5f\xf7\x07\xf8\x40\x9b\xe8\xbd\x2d\x2b\x5b\x7f\xff\x25\x1f\x5a\x31\xc6\xa8\x2c\xbf\x37\x4a\x3c\xc3\xd1\x92\x8e\xf8\x13\x2a\xc5\x80\x5a\x36\x58\x37\xfb\x20\xdc\x1b\xf1\xcb\x3b\xa8\x5f\xdb\x00\x23\xf0\x3c\x92\x4e\x72\x73\x91\xe2\x7e\x4c\x20\x82\x63\xe5\xc9\x32\x9b\x64\x0f\x15\x84\x42\x8e\x17\xba\x4d\xd9\x6c\xfb\xac\xaa\x02\xe6\x11\xdc\xfc\x58\x61\x26\xcb\x3d\x16\x4a\xf5\xe5\x31\x25\xe2\x34\xd4\xfd\x48\xa7\x78\xbd\xda\x7e\x64\x79\x3e\xaf\xbc\x9d\x2a\x21\x22\x62\xef\xfc\xf7\xf6\xf9\xe9\x08\xcd\xfb\xbe\x9e\xa9\xea\x74\x6d\x8d\xfa\x05\x61\x33\x0d\x53\x75\x9f\xb9\x35\xc0\xce\x1f\x5d\x1e\x55\x09\x8c\x24\xef\xdd\x02\x86\x89\x93\xf1\x2d\xa8\x40\x50\xe9\x9d\x5c\xbd\xdc\x4c\x8a\x44\x5a\x7a\x25\xa4\xc5\x64\x5f\xa4\x30\x06\x43\xee\x39\x76\x7d\xb9\x9d\x79\xff\x77\xfc\x64\xa5\xa3\x88\x68\xa6\x07\xf8\xd9\xb1\x7a\xdd\x7b\xd4\xb1\x92\xbe\xa5\x65\x8f\xf6\xd4\x4a\x73\x00\xe5\xf6\x64\xe7\x1f\x1d\x83\x70\x6a\xaf\x92\xa2\xc7\x15\x58\x35\x15\xb3\x90\xcd\x88\x3f\x53\xae\x99\xa6\x56\xfc\x79\xcc\xcb\x0a\x83\x5f\x48\x49\x60\xe0\x21\x29\x15\x89\x2a\x93\x1f\xc3\x9c\x17\x06\x41\x68\x83\xb4\xfa\x84\x8f\xa8\x26\xf6\xea\x29\x06\xe8\x76\xea\x87\xac\x68\xd7\xe7\x7d\x56\xbf\xe0\xbf\x4f\x59\x85\x46\x7e\xb9\xff\x95\xd0\x33\x18\x3d\x02\xec\xaf\x97\xeb\xfb\xef\xeb\xd5\x80\x5c\x8a\xa1\xf4\x09\xd4\x2b\x4e\xe7\x0d\x19\xd5\x0d\x78\x36\x7f\x63\x31\xc1\x50\x86\xa6\x8f\x56\x99\xda\x95\xa3\x04\xcc\xf8\x0b\x61\xc4\x12\x63\xbb\x6e\xd9\xd7\x5d\xa2\xae\x63\x67\xb9\x00\x17\x23\x30\xfc\xdb\xac\xa6\xba\xcf\x24\xd5\x82\x91\x36\x39\x41\x32\x08\xfb\x72\xb0\x46\x8c\x01\x89\xc5\x45\xfb\x39\x38\x64\xaa\x3b\x20\xbd\x68\x88\xa2\x1b\x01\x4d\xe6\x6f\x36\x96\x8c\x68\xa0\xb2\x2c\x24\x4c\x95\x8b\x66\x46\x13\xc6\x98\x44\x2e\xbb\xe2\x60\x4d\xcf\xd5\xff\x60\x55\x8e\x17\x1e\x4c\xbc\x84\x16\x9e\xe7\xdb\xa7\xe7\x3b\x77\x87\x89\x08\x08\x30\xa9\xb3\x42\x6d\xca\x9a\x92\xbb\x56\x67\xa6\xac\xea\x69\x2a\x07\x99\x2f\xa8\xd2\x9a\xc9\x32\xac\xac\x36\x3c\xd5\x8c\xdd\xf5\x58\x84\xca\xca\x01\xb7\x01\xfe\xb6\xa9\x86\xc8\x11\x4c\x93\xd4\x39\x3d\x52\xc7\xbb\x64\xef\xce\xbf\x95\x94\xc5\x01\x38\x1a\xef\x6b\xdd\xfe\xa8\x82\xf3\x50\x7e\xcc\x35\x14\x3e\xe5\x3a\x32\x9b\xaf\xbf\x78\x02\x9e\x78\xa4\x92\xde\x64\xed\xdc\x33\x61\xab\x22\x4f\x42\xca\xcd\x39\x17\x90\x09\xef\x1b\x39\x03\xe2\xc0\x82\xc1\x5b\x90\x62\x51\x03\x07\x17\xa3\xa0\x08\x81\x0f\x29\xc1\x16\xa1\x30\x4e\x77\xa2\x48\x40\xf7\xea\x74\xeb\x59\x12\xae\x6b\xaa\x91\x02\x09\x7a\x1e\x50\xea\x40\xb2\x74\xbf\xee\x42\x32\x8e\x69\x23\x71\xc0\xee\xbd\xcb\x84\x53\xb4\xbc\x77\x7a\x79\xfe\xde\xa1\xa7\x50\x09\x83\x5b\xff\x9f\xa1\x56\x60\x8a\x18\x68\xc2\xf0\xee\xc5\xe9\x92\x64\xed\xda\x30\x73\x59\x6d\xa8\x7b\x9d\x4d\xcc\x20\x9e\x42\x04\xb3\xa7\x34\x82\x20\xf7\xed\x8a\xd7\x1d\x12\xca\x14\x00\x8e\x58\x34\x93\x77\x84\x3a\x48\x8d\xe8\xbe\xd5\x4f\x9e\xbf\x05\xed\xf9\x01\x65\x59\x29\x41\x9b\x63\x5d\x4f\xd0\x83\x33\x43\x46\x7b\x89\x20\x31\x56\x42\xea\x93\x6d\xd8\xa0\xde\x3c\xee\x2f\xda\xb3\x96\x38\xc6\xe3\x6f\x57\xde\xf4\xb9\xa6\xdf\x5c\x13\x69\xbc\x82\x28\x20\x6c\x4e\xc7\xde\xe7\x62\x08\x0e\xd5\x7e\x12\x82\x70\x19\x67\x93\x85\xea\xb8\xa4\x5d\xa9\x57\x07\x51\x2a\xec\xc5\x6e\xcb\xea\x6d\x12\xbd\xea\x40\x2a\x5a\x3b\xcb\x42\xe2\x16\x1b\x6b\xe1\xe7\x0e\x6a\x8f\x9b\x3d\x51\x56\xb8\xf0\x4f\x87\x9e\x31\xbb\xac\xb1\xe9\xd0\xba\x97\x7e\x7d\xa9\x0e\xa3\xc0\xd1\x22\x6f\x76\xcb\xf5\xee\xdb\xf4\x38\x33\x4c\x62\xec\xdc\x4e\x27\x6f\x2a\x0a\x4c\x02\x6b\xfb\x1f\x9c\xc5\xa7\xba\x66\xb1\x26\x80\xfe\xc3\xfd\x72\xd8\xdf\x74\xac\x3c\x1a\x3a\x16\xd2\xff\x3a\xb2\x74\xb4\x6d\x12\x15\xf3\xa4\x13\xa1\x98\xbe\x9b\x44\x49\x07\x81\xdc\x41\xfd\x41\xd5\xac\xd1\x14\xa8\x99\x9f\x92\xe2\xf9\xe3\xe2\x8f\xfd\xf2\xf9\xf1\xf1\x7e\xa0\x7e\xa2\x79\x12\x13\xa8\xdb\x8d\xdd\xe2\x22\x53\x38\xbe\x19\xae\xfc\x68\x62\xa6\x38\x9b\xdc\xd1\x1c\x63\xc2\x94\xad\x3f\xca\x1b\xc4\x6a\xb0\x97\xd0\xe0\x73\x5f\x74\xd0\x0e\x92\x1d\x34\x46\x3f\xb7\x19\xe6\xbd\xdd\x80\x25\x2e\x0c\x8c\xe7\xdc\xf9\xa8\xa5\x99\xbe\x7f\x8e\x78\xc9\x33\x99\x2d\x2d\x84\x0e\x7b\x59\x11\xb7\xb4\xb5\x11\x4f\xe7\x82\x37\x3f\x09\x69\x81\x9c\x4f\xf7\xa7\x53\xd8\xe4\x95\x33\xb5\xe6\xbd\x3c\xc0\xaa\x2a\x0b\x42\x03\x7e\x87\x9e\x17\xa8\x25\x7a\x64\x33\x77\xcc\x0a\xf9\x4e\x3b\x97\x41\x2e\x67\x7c\x39\xa9\x15\xc9\x5a\x5a\x06\xe7\x0b\xb6\x03\x29\x88\x93\xdf\x8c\x80\x89\x6d\xa5\x7c\xa4\x55\x9a\x7e\xb4\x74\xe6\x78\xee\x60\x60\x84\xb6\xdb\x2e\xf4\x71\xca\xf3\xf3\x90\xf0\xe4\xda\x30\xcb\x73\x38\x09\x83\xb2\xb1\x82\x4b\xbf\x7e\x56\xf4\x63\x9a\x06\x6e\xa0\xc6\xfb\xe5\xf3\xce\xc9\xdb\xce\xa0\x03\x35\xc6\xbe\x4f\x94\x80\xac\x79\xef\xea\x20\x1a\x55\xc8\xbb\x5a\xcd\xb6\xd4\x8d\x74\xbb\x5f\xee\x79\x41\x4c\x69\xb5\xd5\xfd\xf7\xfb\x55\xbb\x2c\xdd\xbe\xb6\xff\x78\x59\x2c\xf7\xbb\xe7\x4d\xd7\x0a\x12\x42\xd7\xbe\xbf\x35\x3d\xf1\x90\x7b\x7e\xe4\x39\x0b\x15\xa3\x6a\x3f\xf2\x60\x1a\xde\x1a\xf7\x7c\x1e\x87\xde\x80\xdf\x3a\x6c\x65\x07\x12\xf7\x7c\xc1\x53\x47\xe4\xd8\xfb\xfb\xb7\x8e\x69\xb1\x20\x1b\x5f\xa3\xb1\xb9\xcf\x2c\xbe\xc0\xfc\xdf\x9b\xb3\xef\x79\xee\x8e\x02\x90\x64\x38\x93\x15\xed\x2e\x67\xaf\xda\xe0\xd1\x1e\x0a\x59\x14\xd9\x09\x6b\xdd\xbc\xdf\x9e\x0a\x35\x81\x93\x75\xed\xe2\x20\xe8\xfa\xf3\xf7\xf2\x8a\x70\x1f\xf7\x42\x19\xc3\x50\x40\x63\xb5\x1e\x02\x93\x07\x25\x5a\xee\x45\x1e\x8f\x3a\xcd\x2d\xb3\x35\x59\x54\x87\xf3\x10\x06\x32\x7e\x5b\x31\xb3\x5a\x9b\xc6\x25\xba\xee\xc9\xd4\x23\xe8\x6a\x64\x9b\x27\x4c\x53\xa2\x3b\x2b\xb2\x76\x37\xf3\x76\x01\xde\xe2\x1e\x4b\xac\x28\x2e\x6d\xbd\xa9\xf3\x8c\xd4\x0c\xb9\xc7\xd0\x98\xf5\xec\x2d\x61\x00\x9b\xc9\x4d\xa5\x81\x11\xc8\xb0\x95\x64\xdd\x2e\xce\x5d\x5f\x48\xb9\x20\xf0\xee\xde\x51\xd1\x5c\x16\x65\x72\x11\xce\x0d\xd7\x1e\x0b\x65\xec\x7e\xa9\xc8\x1d\xba\xcb\x40\x1a\x04\xd1\x38\x15\xbc\x3d\x11\xf8\x4f\x9f\xf2\x15\x82\xf3\x69\x6b\x5b\xa6\x0e\x18\x6f\xdd\x13\x5f\xf0\x98\x67\x97\xb1\x9f\x6d\x2f\xbc\x80\xf0\x22\x39\xea\x26\xf5\x26\x77\x25\x22\x1e\x3b\x1d\xb7\x1c\xc9\xc5\xf0\x5f\x28\x9b\xd1\x3c\xcf\x3d\xe9\x33\xa2\x72\x2a\x38\x0f\x22\x07\x77\x30\x30\xa0\xa4\x45\x2e\xb0\x6a\xde\x31\xfb\x57\xe1\x6e\x55\x2a\x63\x6e\x42\x55\xd0\xe2\x13\xea\xae\xc2\xdd\x5d\x5a\xc5\xc2\xde\xc0\xf1\x5c\x0d\x59\x25\xee\x78\xca\x3c\xe1\x76\x48\x5b\x6c\xe6\x5c\x80\xb9\xef\x25\x01\xa1\x90\x88\x57\xb8\x38\x35\xef\xc3\x5c\x07\xf7\x3d\x99\x52\x1d\x85\xe4\xba\x9e\x7f\xac\x5f\x6e\x16\x0f\x0f\xa3\x5c\x3d\xf7\xfd\x28\x72\x80\x3c\x62\x61\xfc\x52\x2b\x9f\xfb\x81\xd5\x40\x74\x73\x78\xd3\x53\x53\x47\x0f\xe0\x07\x28\x44\xd0\x15\x8c\x29\x69\xaa\xee\x9d\xdf\x07\xf7\xc3\x48\x46\x46\x05\xe6\x2e\x2f\x05\xe4\xcb\x36\xd0\xaf\x20\x2b\x86\x49\xfd\xc9\xde\x73\xa6\xe6\xc3\xfd\x30\x8e\x88\x5a\xb9\x50\x9b\xb2\x81\xa6\xff\x01\x85\x94\xff\x7b\xad\x55\xbb\x75\xdf\x4e\x7b\xb7\x1f\x45\x11\x3d\x89\x93\x08\x70\x3e\x96\xd7\x12\x68\xd3\xb3\x4d\xf2\xc1\x60\x23\x89\x4f\x31\x08\x43\xb8\x1f\x49\x15\x59\xe7\xf7\x4d\x39\x51\xe3\xe4\x7e\x1c\x27\x81\x29\xb3\xf6\x3e\x56\xee\xcc\x98\xeb\xc4\xc0\x34\x21\x47\x75\x73\xee\xfe\x2e\x95\x1d\xf3\x9f\x58\x37\xd3\xea\xa7\x6d\x94\xb4\xcb\xce\xc8\xab\x92\x62\xc7\x9b\x4b\xe1\x2c\xee\x27\x28\x43\x1b\xe7\xac\x0f\x59\x5d\x67\x65\xe1\x82\x07\x37\xe8\x7c\x96\x26\x0e\xdf\xe1\xbc\xd3\x76\x58\x37\xbf\xf4\x4f\x6b\xcf\xe2\xf4\x4d\x0e\xf0\xd3\x64\xb7\xc6\xc4\x6b\xee\x33\x85\x94\x20\x20\x67\x63\x74\x7f\xe5\x81\xa9\x5c\x80\x72\xc5\xdd\xc9\x1d\xf3\x48\x59\x6d\xe4\xb7\x37\x4b\xba\xd7\x58\x91\xf3\x5e\x97\x31\x68\x5b\x69\x69\x83\xa1\xe5\xfa\x79\x06\xfb\xcf\x7d\x40\xf4\x82\x01\x54\xb9\x7d\x3b\xf5\xc6\x69\x82\x37\xfd\xc7\x90\x3c\xa5\x5c\x35\xd1\x60\xb3\xe2\x6d\x80\x33\xe5\xbe\x04\x9f\x5e\xce\xfa\xdf\xa7\xac\x28\x7f\xf6\x01\x19\xf7\x49\x7e\xcd\x1a\x7b\xcb\x72\x5d\xa8\x45\xd3\x1d\x92\x9c\x76\x0d\x4d\x76\x20\xba\xdb\xfc\xfa\xe9\xa3\x2f\xa9\x76\xdd\xd8\xfb\xeb\x81\x0e\xdc\xc7\x20\xa2\xfa\x59\xbb\xa5\xbc\x5e\x10\xe0\xbe\x0e\x35\xb1\xb2\x6e\xca\xf2\x83\x60\xe7\xeb\xe6\xfd\xbb\xbf\x42\xe9\x2e\xa4\x93\xd4\xe8\x1c\x9b\xe4\x9e\xad\x42\x0e\x33\xaa\x3c\xf0\x83\x84\x2a\x95\x4f\xf8\x45\xf0\x93\x5f\xed\xb0\x79\xe0\x47\x29\x8d\xaa\xe5\xf3\xd3\xed\xfd\xdd\xeb\xcb\x7a\x16\x5d\xda\x7e\x69\xc1\x0c\x78\xdb\x2c\x2c\xee\xd7\x02\x80\xd0\x50\x32\xab\x5f\xa3\xd5\x78\x10\x08\x93\x8f\xa9\xdb\x05\x65\xef\xef\xcd\x4c\xb3\xaf\x25\xf4\xa3\x29\x70\x1b\x9d\xfb\xa2\x6e\x67\xd9\xa9\xa2\x3e\x0f\x02\x65\x48\xe1\x3b\xfb\x39\x50\x75\x43\x72\x9c\x19\xe4\x41\xa0\x13\x2a\x1b\x6f\x4e\xd5\xb1\x74\xfe\xc7\x3c\x08\xc1\x13\x16\xc2\xf9\x50\x9e\x21\x6f\xce\x33\x05\x09\x1e\x84\xd2\x60\x35\x8d\x57\x7f\x59\xa9\x9b\xf3\x4b\x39\xc6\x5f\xf0\x20\x8a\x04\x61\xdf\x0e\xf0\xb3\x8d\x31\xbe\x95\x2a\x9f\x8c\x9d\x20\x4a\x04\x76\xb6\x29\x33\xaa\xa7\x3c\x88\x38\x32\xa4\xfb\x3c\x1e\x33\xac\x97\x65\xd5\xdd\x6b\x24\x13\x33\xb9\xbc\x67\xba\xd9\x9b\x85\xe7\x34\x34\xef\xb2\xed\x12\x2e\x69\x05\x83\x66\x7f\xc4\xea\x90\xe5\x93\x5d\x12\x0f\x58\x1a\x98\x7c\xe2\xe9\xe0\x16\xf5\xd8\xfd\x0a\x13\x31\xa8\x4e\xf0\xad\x0b\x91\x86\x4c\x33\x1e\xa4\x10\x12\x7c\x7f\xdf\x86\xd0\xf2\xdd\x78\xd5\x51\xb9\x6c\x88\xdb\xe1\x41\x8a\x21\x85\x29\xd4\x81\x6f\xa0\xce\xe4\x5f\x96\xdf\x79\xc0\x13\x8c\x3a\x58\xd6\x0f\xcc\x6e\x87\xb1\x4b\x20\x23\x4d\x88\xb4\x45\x56\x59\xe7\xd8\xbf\x67\x0e\xc1\x03\x09\xb1\xe8\x48\xb6\xf5\x0e\xe1\xe0\xae\xa9\x62\x03\xc7\x5a\xac\xb6\xa3\xfe\xa5\x98\x51\xd0\x2d\x49\xbd\x22\xf0\x8a\x4e\x33\x98\x07\x0a\x18\x85\x9e\x36\x84\x22\x10\x35\x45\xcb\xb7\x19\x34\x13\xac\xca\xb5\x34\x72\x77\xa9\x94\xca\xa1\x82\x2a\x0f\xe6\x0d\x4e\xc0\x7f\x3c\x50\x32\x24\xc6\xef\x63\x56\x34\x8b\x42\x8d\xb4\xe3\xe7\x69\xe3\x5d\x87\x40\x81\x51\xcf\xab\x5b\x2d\x9e\xaf\x25\x8f\xae\x50\x13\xfa\xe4\x1a\x0f\x50\x32\x5f\x38\x2d\xea\x81\x73\xf4\x3c\xc5\x61\x5c\x19\x75\x97\x50\x91\xf5\x59\xb2\x9c\x21\x23\x81\xeb\x66\xc8\x40\x8b\x18\xad\x27\x19\xad\xcd\xdd\x74\x16\x7a\x9e\x91\x8b\xa4\x0a\xcf\xbd\x5e\xe4\xf9\xe2\x61\x79\x91\x40\xe1\xa1\x17\x0b\x02\xee\x3f\x3c\xdf\xed\x29\xc6\x99\x83\xe6\xf3\xd0\x03\x4e\x71\x5a\xbb\x83\xb9\x85\x2c\x7f\x2c\x3b\xbf\xfd\xd5\x09\x77\xe5\x7d\x51\x9f\xb4\xce\x08\x80\x30\x80\xae\xf3\xd0\xf7\x03\xec\xe6\x77\x32\x67\x1f\x68\x61\xf3\x30\x48\x42\x2a\xd0\x6d\x32\x28\xdb\xff\x0d\xfb\x54\x18\x08\x13\x84\x19\xf7\xe0\xed\x4b\xf7\x77\x54\x94\x56\x7f\x84\xaa\xca\xe0\x0d\x97\xc6\xa4\x57\xf6\x98\x43\x1e\x86\x22\xa6\xec\xc6\xf6\x61\x71\x33\xea\xa9\x61\x28\x7d\xdd\x3e\xca\x1f\x7f\x1a\x23\x9f\x41\x09\x82\x87\xa1\x02\xd9\xde\xcf\x67\x86\x5f\x4e\x42\x8f\x87\x31\x8f\x7c\x03\x6e\x3d\x97\xa7\x86\x46\xe8\x28\x02\x0d\x63\x01\xc4\xcf\x6d\x5f\x8f\xdf\xee\xad\xba\x33\x65\x6a\x07\x52\xfb\xf8\xcd\xfb\x16\xfa\xf5\x2d\x8c\xd1\xa3\x77\x7f\x73\xb3\xbc\x00\x1d\x5d\x0e\xca\x30\x89\x23\x9a\xef\xbe\xae\x64\xdf\x78\x98\xa4\x02\x82\x1e\x6d\xf3\x7c\x6c\x46\x84\xda\x71\xf8\x12\xb2\xc4\xbc\x08\x17\xe3\x6e\x7f\x7f\x74\x77\xc6\x50\x51\xb2\xe6\xad\x82\xa2\x31\xbe\x3a\xeb\xd5\xfa\x8f\x71\x82\x9f\x87\x69\x62\x88\x52\xed\x2a\xd6\x4e\x12\xa6\xc2\xde\xa5\xfa\xdb\x06\xd2\x24\x34\x4a\x9b\xf3\xfc\xfe\xba\x59\x51\xb9\x71\x38\xd7\x87\x9c\x05\x4c\x75\x4e\xc3\xf4\xb5\xcc\xe2\xdc\xbd\x2a\x2e\x39\x4d\xe8\x9a\x60\x06\x8e\x81\x61\x0f\x82\x07\x29\x76\xa3\xa0\x36\x4e\xa6\xf3\x32\x77\x63\xf7\xc6\x5f\xff\xcb\x5d\x3d\x31\x12\x62\x86\x7f\xbc\x42\x51\x65\xf5\x15\xff\xee\xf1\xfb\x15\x51\x44\xb2\x3b\xed\x86\xa5\xac\xb2\x1a\xaf\x09\xcc\xda\xf6\x2a\x01\x42\x3f\x66\xf5\xef\x78\xfe\x46\xce\xfd\x93\xef\xab\x80\x91\x16\xd0\xcb\xf3\xeb\xd3\x6a\x1f\x3b\x6d\xe2\xa1\x7f\x39\x0f\x95\x40\x32\x0c\xea\x0a\xff\x86\x1d\x47\xbf\x6d\x6f\x35\x76\x4d\x51\x10\xe2\xc2\x71\x9a\x56\x70\x3c\xce\x71\xa4\x78\x88\x31\xa0\x70\x68\xd1\x7d\x81\x3f\x9b\xa9\x95\xcc\x78\xa2\x0e\x91\xc5\x04\xfc\x51\x59\x5d\x7e\x8d\x41\x2d\x3c\x44\x14\x04\x9f\xad\x41\x77\xe1\xed\x23\x14\xe7\x5f\xd5\x13\x9d\x27\x97\xbb\x84\x4e\x09\xe7\xb9\x79\x2f\x9b\xb2\xeb\x26\x1a\x84\x73\x26\x36\x82\x0d\xe3\xc7\x88\x3c\x16\x52\xf2\x6c\x63\xad\xca\x79\xe4\xa5\x31\x31\x2e\x6f\xb3\x42\x3d\x9e\x6f\xb3\xfa\x7d\xbf\x2e\x1a\xac\x6e\xa0\x92\xa5\x1a\x0b\xb8\xf2\xc8\xe3\x82\x6a\xdb\x3f\x6e\x97\xcb\xee\x0a\x32\xa4\x22\xbd\x5d\xdd\x36\x70\x6e\xa3\xaa\xf9\xd7\x12\xf9\x41\x28\x9c\xf0\x60\x81\xf9\x1e\x8e\x2e\x99\x12\xf9\x2c\x75\x68\xb1\xcf\x29\x37\xa8\x3d\x2a\xa8\x68\x66\xd7\x81\x1f\x65\xdd\xee\xb7\x76\xe5\x8f\xd2\xa9\xcd\x77\x0d\x15\x29\x5a\x7c\x65\x1f\x99\x71\x67\xa2\xf1\x34\x7a\xb5\x93\x7b\x92\x11\x98\xda\x38\x1e\xa1\x9a\x3e\x72\x90\xa6\x0a\x3b\xe4\x37\x12\xc6\xcb\xbd\xef\x28\x4c\x39\x6d\xd6\xf6\x7b\xf9\xee\x5c\xed\x7d\x77\x8c\xc7\xe8\xfc\x03\xad\x47\xf2\x06\x5c\xb1\x8f\x47\xa1\x4c\x49\x4b\xa6\xcc\x95\xe9\xeb\x93\x2e\x17\x45\xbe\x26\xc1\xa5\x23\x8d\xe6\xc7\x7a\x62\x48\xc4\xa3\x28\x0e\x2d\xe9\x9a\xd2\x69\x97\x71\xf4\xe8\x05\x46\x92\x51\xe9\x6e\xb1\xfa\x7e\xbf\x7d\x7e\xd9\xdf\x3e\xbf\xba\x05\x25\x8a\x19\xe7\xba\xcb\x8d\xb5\xe1\x71\xbb\x86\x4d\xee\x27\x4e\x0d\xea\x92\x40\x58\x8b\x42\xd1\x82\x6b\x1d\x74\x07\xff\xb4\xad\x93\xd4\x54\xf8\x75\x46\x13\x16\x16\xcd\xd4\x6d\xcf\x35\x04\x4d\xd0\x02\xb2\x0c\x51\x9d\xe9\xe7\x69\x2e\x0b\x10\xb1\x08\xa8\x5e\x68\x50\xd0\xa8\xdc\x46\x76\x72\x4d\xc6\x13\x5a\x20\xa5\x9d\xaf\xf7\x83\x68\x2c\x62\x32\xa5\xd4\x68\x37\xed\x7f\xe0\xc0\x2c\x77\xd2\x37\x18\x06\xc6\x95\x51\x6b\xa3\x7e\xa2\x32\x28\xbe\x63\x31\x2f\x7a\xc5\xa3\x54\x45\x84\xcc\x74\x4e\x46\xc3\x57\xc2\x03\xae\xed\x06\xa2\x53\xec\x33\x72\x0e\x9d\x7a\x47\xdc\xe3\x8b\xff\x77\xff\x69\x7f\x02\x3c\x60\x16\x14\xa8\x9e\xf0\x67\xf3\x05\x19\x99\xe8\xdf\x60\x73\xbf\xba\x92\x41\x8b\x80\xc5\x24\x27\xff\xb8\x7e\x78\x7e\xda\x2f\x9f\x9f\x76\x2f\x8b\x65\x37\x41\x80\x94\xc4\xc8\xe9\x71\x62\xdf\xb7\x4f\x97\x78\x68\xdb\x5a\xf0\x34\x32\xe1\xce\x90\x73\xea\xae\x25\x99\xe1\xe2\x5b\x27\xcc\xf2\x63\x83\x55\xdb\xdb\x2e\xbc\x8a\x78\x24\xc1\xb0\x83\x2c\xe8\x6f\x53\x65\x87\xb2\x7d\xf9\xa6\x14\x36\x2d\x27\x8c\x82\x48\x7b\x05\xe5\x85\x54\xc0\x6e\x37\xe0\x8e\xba\xf6\x5b\x77\x8c\xa5\xd6\x59\x3b\x3f\x37\x43\x11\x57\x1e\x69\xe5\x05\x89\xe3\xea\x13\x14\xd3\x80\xf7\xfe\xae\xb4\xdb\x3f\xdd\xc7\xd0\x68\x0c\xfe\x32\x35\x29\x2b\xf3\xd8\x0b\x3d\x29\xac\x31\x54\x0f\x4e\xbe\xf2\x81\x62\x2f\x91\xf1\x40\xa4\xab\x69\x72\x1c\x3a\x57\xff\x33\xe8\xed\x1a\x47\xff\xe9\x4e\x07\xa4\x24\x45\x7d\xcc\xb3\x66\xd6\xdc\x8c\xc7\x9e\x8c\xc2\x4e\x27\xf4\xb6\x42\xfc\x0f\x49\xc0\xf5\x15\xeb\x6b\x00\xf8\xf6\x54\x19\x0e\x20\xce\x1d\x04\x8f\xc7\xbe\x17\x10\xb1\xd8\x95\xc8\xea\xee\x40\x1c\x84\x83\x51\xb2\xd7\x17\x66\xd9\x3c\xf6\x55\xc8\x61\x92\x58\xbc\x2d\x2b\x8a\x56\x5f\x28\x41\xf5\x5e\x39\x04\x1d\x8f\x7d\x0c\x89\x73\x48\x40\xc4\xdb\xf2\x54\x35\xef\x3f\x10\x5d\x0a\x27\x0e\x3c\x49\x17\x83\xdc\xf4\x1f\x8a\xf4\x9f\x8d\xd1\x44\xd7\x86\x69\x8a\x46\xc5\xe9\xbc\x7d\x87\x7e\x92\x8f\x43\x16\x91\xa8\xf7\x11\x89\xab\xf8\xdf\x20\x3f\x8e\x65\x73\x5b\x56\xe4\xde\xe1\x5a\x45\x5e\x40\x22\x98\x2f\x54\xa5\xef\xff\x6a\xc2\xf0\x76\xba\xa2\x5f\x5e\xc1\xf9\xaa\x82\xb6\x3b\x27\x88\x89\x14\xb0\xfb\xe3\x8b\x64\x53\xa7\xab\x70\x1c\x85\xbe\x34\xee\x99\xe5\xc7\xe9\x68\xd7\x24\xb5\x3d\x56\x59\x83\xd3\xd7\x18\xa5\x06\x06\x99\xd5\xeb\x9f\xc7\x6c\xaa\x03\xc0\xe3\x08\x8c\xe5\x35\x69\x77\x0e\xd2\xa2\xc3\xea\xe1\xb5\xfb\x04\xed\x19\x0e\xfb\x27\x42\x7e\x93\x5d\x82\xdb\xfe\x22\xc7\x3a\xbd\x9e\x30\x18\xd3\xfb\xe5\xf3\x7e\x77\xbf\x7e\xd9\x3f\x2c\xb6\xbb\xee\x45\x4a\xe3\xce\x6c\x0a\xeb\x06\x1e\xdf\xed\xe2\xe2\xd8\x8f\x08\x90\xfb\x82\x6f\x6d\xc8\xe7\x68\x64\x3c\x8e\x51\xfa\x96\xcc\xf2\x98\x15\xd9\xe9\x70\x5f\x1c\x4f\xcd\x25\x37\x94\xc7\x49\x62\xd2\x3b\xed\x74\xf1\x54\x7e\xfd\xd6\xfd\x39\x34\x8a\xe5\x5d\xea\xb7\x5e\xb4\x2b\xda\x20\x99\x15\xb3\x50\xfa\xd4\x55\xe1\xe7\x7a\x60\x3a\x3d\x1e\xf2\x2c\x46\x19\x4f\xf5\x4e\xee\x57\xd3\xed\x7f\xf7\xde\xed\x2e\x3a\x4e\xbd\x94\x62\xde\x5e\x62\x44\xbb\xaa\x4a\x9c\x86\x11\xa1\x7f\x80\x0c\x51\x6e\x4f\xb9\xce\xf2\x7c\x68\xeb\x3e\x79\xc3\x3c\x30\xac\xfc\x23\xc8\x8f\xdf\x71\x08\x88\x71\xe5\x50\x1e\x73\xe6\xd1\xb4\x49\x33\x41\x8d\x0d\x99\xc6\x1e\xee\xa0\x1e\x01\xc6\x87\x3e\xce\xee\xc4\x34\xa4\x3d\xe0\xca\x48\xf7\xfe\xb2\xfc\xd9\xb6\x36\x32\x1e\x14\x56\xed\x8b\x72\x5f\xea\xfd\x72\xb7\x72\x4f\xc6\xa5\x50\xed\xb8\xd1\x8f\xa7\x79\xf5\x46\x1e\x73\x0c\x68\x8f\x96\xa3\x6e\x82\x78\xf2\x35\xc1\x03\x88\x9d\x0d\x48\x85\xb2\xfd\xfa\xcd\x43\x76\x98\x6e\xec\x63\x08\x14\x81\xe2\x73\x2c\xd4\x5d\xf9\x89\x55\xd1\xbe\xbf\xc7\x21\x6e\xc6\xb5\x4c\x03\x42\x34\x3c\x94\x6f\xd6\xa0\x86\x72\x72\xee\xa8\x60\x4e\xc5\xca\xec\x02\xe7\x92\x83\x31\x48\xec\x61\xe8\xc6\xa9\xfc\xca\x56\x6a\x3c\xe2\x45\x12\x32\x23\x67\xf6\x7c\x44\x32\x9c\x1c\x80\x98\x27\x1d\x4d\x26\x1e\x77\xfe\xcd\x8d\xa1\x73\xe2\xdf\xcc\x7b\xc5\xa8\x85\x15\x7c\x2c\xb0\xce\xea\xd9\xbd\x50\xac\xb5\x24\x3a\xe3\xe1\xbc\xee\xc1\x1d\xe6\x58\xe2\x25\x86\x77\xfa\xe3\xfe\x69\xfd\x0b\x1e\x11\x4f\x3c\x16\x12\x73\xba\xfe\xea\x51\x55\xe3\x0f\xdc\x3e\x46\xd4\xbe\x52\xd5\xc6\x10\xeb\x0b\x1c\xc9\xb4\x35\x2a\x4b\xda\x22\x0c\xd5\x25\xbd\x81\x27\x7e\x6c\xdc\xf0\xf1\x27\xca\x53\x83\x2f\xa7\x7c\x28\xf5\x39\x69\xab\x90\x7a\x97\x2a\x0f\x04\xe8\xb6\x52\x02\xe3\x99\x38\x09\x38\x92\xe5\x99\x84\x3a\x2b\x4a\x2a\x2f\x4c\x7e\x33\x80\x84\x80\x49\x1d\x7d\xf3\xe6\xfc\xba\x5d\x5d\x79\x86\x40\xc6\x3e\x76\x48\xaf\x9b\x73\x1b\x18\xc8\x77\x9c\xaf\xd5\xb9\x73\x94\x51\x87\x22\xc0\xeb\xe1\xd8\xe0\x3e\x0a\x47\x5b\xa7\x24\x64\x29\x05\x34\xed\x6e\x73\x5f\x9f\xc4\x95\x27\x8e\x74\x40\x23\xd2\x04\x58\xd9\x48\xcc\x7a\xb6\xa7\x25\x71\x20\x45\x27\x77\xdf\x85\x0a\xcf\xda\x55\xa1\xfb\x2c\x70\x12\x23\x38\x2a\x8d\x19\x1e\x43\x89\x28\x9e\x24\xa1\x4e\xa0\xe3\x1a\x6d\x5e\xd6\x66\x0d\x78\x5c\x6f\x77\x8b\xc7\x4d\xd7\x4a\x6a\xd9\xe5\xd2\x7a\xf4\x58\xb9\x30\x44\x50\xb7\x60\x27\x4c\x33\xeb\x9e\x5d\x34\x8f\x20\xdf\xb3\xe2\xa2\xd3\xcc\x2f\x41\x49\x1a\x73\x8a\xb4\xac\xd6\x4c\x57\x2c\x9c\xb4\x52\x20\x8c\x21\x48\x76\xbc\x60\xb1\x4e\xde\x11\x4f\x3c\x82\x30\x56\x08\xea\xbe\xd0\xe5\x1c\x6e\x66\x72\x13\xdc\x92\xfa\x69\x95\x3a\xe6\x50\x38\x2b\x12\x9e\x70\x04\xda\xbf\x53\x1a\xe2\x58\x95\x93\x1b\x03\x8f\x47\x56\xd9\x6c\x7a\x24\x08\x44\xda\xd1\x18\x8c\x49\x5b\x83\x47\xdf\x5d\x18\xd2\x84\x02\xe2\x3f\xac\xd4\x6a\xf7\x77\x44\x0a\x0f\x9c\x02\xb6\xa9\xdf\x9e\xda\xa1\xb0\xc3\xba\xbb\x2f\x21\x95\xf1\x4d\x81\x42\x95\x87\x1d\x69\x4d\x2c\x48\xa6\xa1\x6b\xa1\x85\xd5\x41\x37\x90\xcc\x6a\x7e\x99\x4c\xa4\xc7\x79\xfb\x6e\xff\x7d\xca\x08\x6c\xb4\xc8\x2a\x55\x95\xc7\xee\xdb\xca\x20\x31\xf8\xee\x93\x70\xc0\x6d\xab\xac\x33\xbb\x17\xb8\xdc\x99\x26\x32\xf4\x20\x72\x73\x30\x41\x0f\xe7\x07\xa3\x8c\x63\xda\xf8\xec\x8f\x95\xb3\x81\xee\x05\x16\xe6\xbe\x60\xea\x4e\x14\x46\xe5\x21\x93\x65\x1f\x0c\x27\x52\x1a\xb2\x63\x53\xde\x84\xc1\xc5\x5e\xc2\xdc\xe6\xf8\x55\x28\x66\x4a\xdb\x9b\x97\xf5\x7e\xfd\xc7\x7a\xf9\xba\xbb\x7f\x7e\xda\xdf\x2d\x5c\xa6\x2b\x51\x22\xa0\x12\x11\x21\xe3\x77\xe5\x0b\x42\x7e\x01\x8a\x76\x4d\xd1\xc4\xb0\xc4\x29\x5e\x55\x30\x24\xdb\xf3\x04\x7d\x4d\x71\x41\x26\x4b\xab\x4c\xe2\x0e\xc4\x31\xe9\xeb\x37\x58\x37\xc4\xd1\xaf\x5f\x90\x76\x75\xc4\xca\xa3\xff\xa2\xb2\xac\x6b\xae\x62\x7a\xc6\x43\x56\x74\x01\x83\x39\xc4\xbc\x30\xa1\xec\xce\xe2\xe5\xd1\x1f\xf6\x30\xe6\x85\x06\xb0\x4e\xf5\xb2\xba\x7c\xc4\xe6\xbd\x9b\x36\x98\x17\x71\x61\x45\xe2\x26\x13\x2b\xf3\x78\x4c\xa8\xd8\x3e\x46\x64\x9e\xf4\x8d\xf1\x2b\x64\x35\x92\x9e\xc9\x16\x51\x4d\xb4\x0f\xae\x70\x2f\x38\xf3\xbd\x80\x4a\x95\xbb\xaf\xf2\x76\x22\xd7\xc8\x99\xcf\x91\xca\x3b\xcb\x97\xe7\x1f\x2b\xca\x39\x6e\xbf\x2d\x5e\xd6\xdd\x61\x05\x04\x79\x23\x41\xf7\xd7\xed\x4a\xae\x77\xdf\xdc\xb1\x40\x48\x27\x14\xde\xce\x6a\xb3\x9e\x5f\x9c\x05\x98\x82\xea\xb9\xaa\xed\xac\x3f\xbe\xbd\x00\x81\xaa\xd0\xaa\x82\xb7\x2e\x73\xcc\x22\x2f\x24\x65\xfd\xed\xe2\xc7\x7f\xe3\x17\xa5\xfc\xce\x03\xb3\x51\xce\x22\x5f\x28\xe3\x50\x51\x3c\x8e\xaa\x0b\x2c\x66\x09\x31\x97\xf0\x21\x6b\xb0\x97\xff\xe2\x2c\xd6\x86\xf8\x69\xb6\x6d\x93\xdb\x60\x1e\x4b\x6c\x79\x93\xb8\xf1\x37\x7d\x35\x86\x31\xae\x29\x84\xb6\x65\x66\x93\xe4\x18\x16\xf9\x18\x83\x98\x8f\x85\x7c\xda\xad\xff\xcd\xa8\x26\xc2\xd2\x28\x70\x76\x5e\x46\xe1\x63\x51\xa8\xde\x99\xf8\x2f\xfd\xc9\xdc\x55\x62\x93\x7d\x6e\xe3\xf9\xaa\x33\xa9\xe1\x2c\x05\x4f\x59\xe6\x90\x91\x38\xcd\x20\x27\x01\xfe\x69\x16\x89\xf1\x58\x93\x74\xdd\xa9\xc6\xaa\x7e\xea\x62\x53\xc6\xdb\x77\x60\xa9\x53\x37\x55\x39\x7e\x42\x8e\xdc\xb3\x98\xd3\x3f\x9e\x7e\x77\xf3\x45\xd7\xa1\xb9\x8e\x9d\x89\xee\x5c\x86\x9b\x01\x97\x56\xfa\xb5\xee\xf0\x4f\x53\x1d\xfa\x59\x90\xff\x7c\x9f\x16\x1e\xd0\xd7\xfa\x51\x56\x1f\xc3\x4f\x2c\xfc\x48\x7b\x96\xe1\x6e\x57\xcf\x79\x59\x63\xce\x64\x2c\x48\x48\x36\x2f\x6b\xdc\x94\x65\xde\xd7\x19\x99\x44\x49\x9c\x0a\x97\x49\xa3\x45\x62\x0b\x4e\xdb\xe9\x4a\x8e\x88\x49\xed\x51\x6a\xb0\x2c\x72\x62\x50\x49\xac\xd6\x26\x22\xfb\x15\xe1\x61\x38\x87\x33\x15\x69\x5a\xe1\x6f\x9f\x5f\x9f\x56\xeb\x97\xed\x9e\xd8\xc9\xab\xc5\x6e\xbd\x9d\xf4\x57\x85\xd2\x9f\x48\x78\x5e\x65\xec\x5c\xfb\xe5\xf1\x27\xc2\x30\x55\xf6\x0b\x2f\x2c\x6d\x9f\x34\x17\x6f\xcb\xca\xd0\x4a\xe6\xdf\xa3\x96\x9c\x72\x5f\x06\x51\xb9\x2d\x73\xaa\x95\x7f\x9b\xda\xdf\xf0\xd4\x0b\xa5\xb0\x54\xd4\xd9\x7e\x99\x06\x21\xe7\xc9\x20\xad\x42\x4f\xec\xc7\xc1\xfc\x4e\x2b\x0d\xa2\x24\x19\x61\x85\x16\x5f\x40\xa8\x84\x42\x3d\x95\xf3\xab\x70\x1a\x70\x4e\xfa\x01\x2f\xa8\x6e\xda\x4f\xd9\xfd\xd9\x18\x4f\xd2\x5c\xdd\x5e\x65\x41\x68\xbf\x23\x54\x9d\x61\x40\xd7\x14\x52\x82\x46\xca\xac\x01\x85\xf9\x88\x70\xc6\xd3\x28\x42\xaa\x50\xbf\xe3\x4f\x77\x64\xfc\x12\xe2\x40\x92\x05\x73\x21\xac\x8b\xa3\x3b\x33\xd6\x3e\xd5\xd2\x5f\x30\x87\xf3\xae\x2c\xf3\x7a\x10\x87\xa4\x2c\x96\x3c\x74\x58\x91\x7e\x17\x9f\xa6\x36\x9b\xb8\xa1\x02\x66\x81\x3f\x9b\x6a\xb8\x83\x4f\xb9\x36\x69\x9a\xa3\x11\x82\xb1\x38\xf9\xf9\xf7\x09\x9c\x51\x8e\xb5\xfd\xdd\x1f\x65\x95\x2b\xe7\xbc\x79\x3f\x24\xa5\x0d\xda\x63\xea\x0f\xf3\xcd\x2b\xcb\x44\xf1\xa7\x2f\x5d\x78\x3c\x92\x56\xa6\x9c\xd4\x78\x4d\x08\x5d\x8f\x70\x3a\xa9\x08\xb4\xd3\x21\x7a\xfe\xc4\xea\x33\xc3\x2f\x03\xfe\x9a\x66\x34\x52\x11\x85\x9a\x75\x59\x7d\x53\xec\x9d\x7c\x07\xc1\x8d\x3c\x21\x61\x55\x6f\xb2\x79\x95\x20\x9e\x0a\x89\x54\xa5\x16\xd0\x48\xd2\x14\xa0\x8a\xf4\xc0\xc5\xc7\xb5\xd3\x31\xf5\x71\xda\x68\xef\x9c\x52\x22\x4f\xa5\x97\xd2\xcf\x2c\xab\xf3\xb1\x81\x93\xab\xb1\x97\xd5\x79\xf8\xf1\xa4\x1f\x3b\x8c\xe8\xa6\xac\x1a\x5d\xe6\x9d\x72\xe3\xa4\xb4\x98\x2a\xcf\xf7\x55\x87\xbc\x34\x4a\x70\xbf\xe3\xf9\xb2\x1a\x31\x9c\x35\x52\x85\x29\x18\xbe\xda\xb2\x3a\xab\xea\x7b\x86\x5f\x03\x14\xe2\x70\xcf\x94\xa2\x1f\x51\xb1\x63\xbb\x5b\xec\xf6\xcb\xe7\xd7\x27\x17\x64\xa4\x18\x70\x93\x73\x51\xea\x91\x50\x17\xbf\x40\x66\xa5\x3a\x62\xda\x6c\xe8\x64\x86\x9f\x68\x96\xb3\x5f\x32\x61\xdb\x73\x4c\xd8\x37\x40\xdc\xb0\x76\xcb\xe8\x0e\x27\x1e\x29\xee\x93\x62\xf8\xaa\x1d\x05\xf6\x08\xf7\x7c\x89\x24\xa3\x0f\xc7\xe3\x25\x65\x83\x73\x5f\xc6\x14\xa4\x1f\x3a\x77\x16\x77\x66\x10\x02\xe5\x7c\x2c\xde\x6f\xdf\xae\x99\x66\xa8\x8c\xa7\x1e\x1e\x00\xb0\x5e\x30\xcb\xd0\x5f\x27\x19\x2c\xd7\x19\x78\x20\x54\x2c\x3a\xf5\xfe\xfa\x94\xb7\x41\x23\x11\xcd\x6c\x83\x30\x02\x42\x85\xbf\x97\xb9\xb2\xfd\x32\xea\x8e\x25\x9c\x92\xca\x0f\xcf\xbb\xdd\x9f\x83\x95\x8b\x47\x09\x33\x23\xfc\x1d\x2a\x34\x4b\x68\xb7\x05\x5b\x34\xd7\xc3\x79\x1e\x25\x40\xbc\xa5\xcd\xfa\x65\xfb\xfc\xb4\x78\xe8\xc9\x85\x9c\x47\x29\x68\x36\x7e\xe5\x7e\xff\xca\x79\x12\x29\x1e\xf4\x21\xea\xa9\x92\xd8\xd9\x20\xbb\x78\x83\x27\xdc\x23\x9c\x30\xad\x08\xb3\x16\x0b\x9c\x33\x1f\xb9\xd9\x98\x12\x0a\xf9\x64\x7c\xd1\x86\x1d\x8f\xb3\xc0\x38\x72\x9a\x41\x3b\x55\xe8\x6d\x8f\x0b\x6e\x00\xb5\xb6\xac\xfe\x9f\x41\x7c\x3b\x04\x8f\x73\x16\x73\xca\x3c\x7c\x2b\x97\xef\xd9\x63\x56\xb8\xcd\x36\x67\xdc\x50\x21\x25\x14\x37\x15\x22\x99\x73\xd1\x6f\x44\xde\x7f\x99\x7f\xb9\x86\xe0\x53\xee\xd8\xcd\x5c\x24\x0c\x70\xaf\xf0\x70\x2c\x9b\x81\xd0\xc6\xb0\x26\xd0\x13\x47\x39\x67\x52\xd2\x96\xef\x08\xe7\x47\x37\x7f\xf3\x94\x49\x63\x8b\x6f\x0c\x07\xca\x91\xe8\xe2\xe4\x75\xa5\xca\x53\xc6\x25\xfc\x54\x7c\x3c\x75\xbd\x95\x07\x5c\x09\x47\x61\x6c\xa3\x6a\xb5\x3b\x1f\x71\x8b\xff\x3e\x61\x21\x71\x42\xcf\xe0\xed\x97\x51\xed\xe3\xae\x5e\x9f\xd6\xfb\x9b\xd7\xbb\xbb\x3f\xbb\x0b\xb1\x88\xd2\x2d\x84\xf2\xe8\x3d\x11\x87\x51\x32\xe7\xc2\x27\xd0\x49\x1f\xf8\x6f\xbe\x2d\xb6\xeb\x7d\xb8\xa7\x5c\x45\xd7\x4c\xfb\x54\x3f\x31\xf0\xaf\x15\xd6\xb2\xca\x8e\x17\xf2\xec\x9c\x43\x6a\xec\xa1\xcc\xf6\x75\x34\xe7\x70\xe0\x8a\x1c\xaf\xf6\x35\x0e\x19\xc9\x9b\xaa\x3c\x4e\xae\x22\x04\x1f\xce\xec\x63\xd7\x20\xce\x65\x22\x29\x40\xb5\x2e\x25\x93\x31\xac\xd2\xd0\x20\x92\x7e\xd6\x1b\xac\xbe\x95\xa7\xc9\xba\xc1\x95\x50\x26\x8c\xb7\x86\xee\xa5\x95\xa5\x9f\x0d\x31\xb9\x52\xa1\x1f\x59\x88\x3d\x14\x67\x87\xaf\x74\xf7\xa2\x53\x41\xf0\xbf\xef\x50\x15\xd9\xcf\xd1\xab\xd5\x18\x10\x7b\x56\xe1\x4f\x02\x1b\x9b\x60\xea\xd7\x79\x63\xf0\x44\x40\xe9\x2e\x85\x0e\x18\xb9\xec\xbd\xfb\x39\xf8\xa9\x4e\xd4\x98\x35\x67\x05\xcd\x57\xa7\xf6\x55\xdf\x2f\x9f\xfd\xae\x2d\x07\xd6\xc6\xe2\x8f\x8f\xcf\x03\x39\x6b\x92\x4e\xa2\x3d\xd5\x0e\xe1\x60\xb2\xb8\x8e\x10\x3e\x9b\xe2\x81\x40\x6b\x23\xee\x6d\xa5\xe6\x47\xf4\x0b\x08\x79\x4a\x10\xb6\x87\xf2\x6d\x53\xe6\xb9\x0b\x19\xc7\xf1\x0e\x84\xd2\xe7\xdc\x4e\x96\xed\xdd\x0e\x5f\x14\x44\xb1\x59\x45\xb0\x50\x54\x2f\x1e\x7f\x50\x88\x40\xd1\x40\xaf\xdf\xcb\x53\xae\xbe\x75\x92\x59\xd3\x66\x52\x12\x4a\x78\xef\x14\x63\x88\x13\xd7\x8f\x57\x88\x3d\x9f\xfa\xdf\x16\x8a\x6c\x00\x72\x86\x38\x00\x11\x76\x1c\xc3\x8f\xc7\xec\xcd\x20\x55\x7b\x42\x34\x4d\x53\xab\x8c\xf6\x11\xdd\x59\x09\xa7\xb7\x42\xc9\x89\x36\xf0\x1c\x0d\xf2\x21\x0d\x97\x43\xcc\xc2\xd4\x86\x5f\x47\xac\x9a\xf3\xbd\xda\x95\x56\xdc\x71\xfc\xf5\x63\x61\x10\x63\xed\x6b\xfa\x96\xbd\xbd\x63\x6d\x77\xcb\x4f\x65\xb3\xfe\xd9\x23\xb3\x20\x91\x09\xcd\x11\xb7\x20\x1b\x01\xd5\x0a\xbb\x2d\x18\x24\x52\xa7\xc3\x78\x0c\x44\x8e\x64\x81\xde\x35\xc0\x80\x10\x1f\xdf\xb7\xbb\xbf\x86\xa0\x02\x8b\x8d\x4f\x51\xd6\xc6\xfe\xbb\xf7\x0a\xa1\x03\xff\x41\x6a\xbd\xcd\xda\x50\xd3\xe9\x1f\xbb\x43\x18\x10\x60\xf9\xee\xf9\x61\xf5\x0f\xf7\x47\x9e\x18\xe7\xcb\x07\x7c\xb3\xbd\xb7\x3f\xa2\x29\xb5\x51\x43\x8e\x56\xcf\x60\x1c\xca\x01\xf8\xa9\x79\x2c\xaa\x32\x9a\x1a\x4c\xff\xd0\x10\x1b\x95\xb2\x02\xbf\x56\xa5\xbc\x48\x28\x0f\xe7\x21\x10\xbe\x71\x79\xae\x0f\x90\xe7\xcb\xe1\x4d\x0b\xe0\x72\x2c\x99\x38\xe9\x63\x02\x95\x81\xfb\xc1\x07\xee\x35\x62\xbd\xc7\xe6\x7d\xaf\x9c\x88\x27\x07\xe9\x85\xce\x14\xcc\x49\x2a\xf5\xe0\xc5\xeb\x7e\xc7\x1c\x24\x87\xd4\x12\x5d\x2d\x4b\x7a\x40\x24\xe7\x80\xc0\x3c\x43\x24\x57\x99\x3e\x2f\xb1\x9c\xdc\x98\x0e\x13\x4a\x2b\x1a\x5b\xbe\xc1\x6f\xce\x2f\x3d\xa0\x21\xa4\x31\x75\x84\x73\xcf\x78\x9a\x6d\x2a\xbc\x40\xd1\xfa\x52\x63\x63\x2c\x84\xf2\x4b\xd9\x0e\x5b\x64\x9b\x6a\x06\x0e\xfe\x15\x06\xff\x8c\xfe\xdf\xe4\xbf\x52\xf7\x0b\x71\x2a\x2c\x3c\x90\xa2\xf8\xec\x3f\x78\x07\xf5\xf1\xb2\xc2\x21\xfc\x38\xa5\xcc\x34\xd9\xb8\x38\x0d\xb1\x7a\x68\xfe\xcf\x45\x10\xa6\xa4\xdb\x42\x64\x3c\x4b\xa8\xd3\x99\x71\x78\xfe\x96\x15\x6d\x94\xb6\xcb\xde\xde\x9b\x1b\x9a\x6a\x46\x97\x0f\x62\x08\x4c\x9a\xab\xfc\x79\xbe\x71\x15\x8d\xf1\xab\x16\x61\x62\x28\x93\xbb\xff\xbe\xed\x8d\x1e\xb9\x88\x40\xd0\x7c\x70\xe8\xc9\x71\x7b\xd9\x41\xf0\xf7\x9f\x81\x6b\x18\xfb\x61\x24\x07\xa4\x0d\x47\x48\x99\x4c\x7b\x22\x4e\x7c\x1a\x5c\x24\xa3\x51\x95\x1f\x5d\x38\x2b\x62\x9e\x48\x36\x00\x46\xbd\x40\xb7\xd3\x13\xb1\x88\xa5\x55\xbe\x20\x41\xdf\x0c\xae\xd4\x17\x45\x2c\x23\xda\x2d\x14\xa5\x42\xeb\x79\xe1\x42\x6d\x91\x04\x8c\x3c\x82\x0d\xe7\x8f\xf8\x3b\xc6\x77\x61\x34\xab\x8b\x04\xd0\xb0\xc1\xf3\xbc\x77\x88\xee\xde\x48\x22\x7c\x6e\x26\xb3\xc3\xd1\x95\x30\x06\x50\x73\xc1\x94\x4f\xa5\x03\x02\xa2\xdc\x96\xd5\x0e\xea\x8f\xc9\xf7\x66\x2a\x22\x88\xb5\xf5\xc5\x29\xcb\x46\x18\x03\x5f\x7b\x1c\xc2\xc0\xc9\xcf\x75\x9c\x75\x9b\xe1\x1d\xbf\x4c\x48\x91\x92\xe2\xd6\x3e\x0d\x6a\xa3\x68\xe5\xae\x23\x62\x46\x10\x12\x13\x70\xdc\xc1\x01\x8d\xa8\x4f\x7e\x51\xe6\x75\x27\x24\x3e\x31\x6f\xbe\x21\xe4\xcd\xfb\x12\xea\xf7\xc7\x3e\x28\x10\x92\xa7\x4e\x15\xcd\x10\xe7\x36\x90\x15\x0d\x2a\x42\xdb\xd4\x43\x87\x0e\x77\x82\x4c\x62\xe1\x8c\xa8\xf0\x42\xd3\xb0\x6b\xa5\x5d\x66\xe6\x07\x54\x6d\x50\x77\x1e\x3b\xf0\xfd\xb2\xf8\x23\x94\xc7\x8c\x22\x68\x8e\x60\xe5\x7a\xba\x6f\xa5\x82\x68\x64\x93\x32\x9f\x37\x11\x4a\xfa\x4e\xa8\xdc\xe4\x5a\xbe\x41\x7d\x67\x54\x71\xae\xbc\x28\xa5\x12\x42\x6c\x5a\xe5\xc1\xd5\xe6\x01\x8d\x58\x84\x5a\xe4\xf9\x0a\x1c\x3a\x52\x20\x67\xa4\xbf\x7c\x07\x59\x71\xc0\xaa\x36\x11\xcb\x2f\x33\x55\x42\x87\x7e\xea\x84\xb8\xad\x5e\xed\xb0\x5c\x31\x5f\x6b\x16\x3a\x35\xe0\x9c\x1a\x9b\x1f\x59\x81\x83\xc4\x60\x1f\x2b\x08\x0d\x8c\xb2\xd1\xa4\xb7\xb0\x3e\x96\x72\x5e\x66\x95\x4b\xcf\x37\xe6\x2f\xed\xa6\xf3\x5e\xb5\x03\xce\xba\x0c\xfd\xe6\x1a\x70\x0f\xbc\x81\xbd\x51\x6e\xf6\x56\xa3\x2d\x8d\xbb\x37\xe9\x43\x48\x55\x59\x8b\x02\xa5\xf9\x61\x0a\xae\x92\x3e\x48\x4a\x2e\x0d\x52\x7e\x04\x59\xff\xc5\x46\x5d\x06\x11\x10\xbc\x64\xef\x90\x85\x56\x7f\x67\xd2\x2a\x09\x89\x7d\x71\xb4\x69\xdd\x76\xca\x1c\x22\x3e\xae\x7c\x8e\x61\x12\x42\xb6\xfb\x3b\x6b\x3a\xb0\xc1\x09\x9b\x52\x86\x3e\x0f\xed\x4c\xbf\x3d\x82\xc4\x36\xaa\xef\x2b\xd9\xfe\xa4\xc7\xca\x90\x33\x23\x84\x7c\x20\xd2\xc1\x6f\xdd\x9f\x8d\xb4\x42\x7b\x95\x2c\xff\xc4\xea\x57\xfe\x0f\x5c\x86\x2a\xa4\xf5\x9e\x0a\x62\x66\x5f\xe6\xae\x14\xa5\xcc\xc3\xb1\x64\xea\x38\xec\x90\x71\x60\x6a\x50\x0a\xb2\xde\xef\xbd\xfd\xb3\xf1\x75\x7c\xc3\x5e\x06\xd4\x94\x35\xd6\x16\x3b\x99\xba\x96\xb1\x44\x63\xdc\xe8\xcc\x9b\xb8\x8c\x99\xa0\x4d\x70\x76\x38\x96\x55\xe3\x16\x80\xa1\x86\xc3\xfc\xee\x40\x26\xcc\x08\xc0\x53\x99\xb9\xfa\x20\x87\xfa\x66\x08\xc2\x94\x49\x6a\x8c\x1a\x44\x59\x55\xe5\x17\x56\xe6\x79\x6f\x33\x68\x8c\xd8\xfc\xf0\x21\x12\x1e\x18\x0d\x31\x13\xba\xdd\xd7\x4f\x65\x73\x4b\xb2\xc9\xb7\xa5\x3d\x71\xf2\x2a\x13\x6b\xec\x8b\x07\xac\xde\xb0\x90\xe7\xc1\x56\x48\x32\xcf\x4c\xd6\xe5\x57\x21\x46\xa8\x09\xc9\x12\x65\x8d\x0f\xca\xfc\x5b\x9f\x21\x91\x8c\x99\x78\x6b\x2f\x4e\xe7\x4d\xb8\x9a\xf4\x46\xa6\x14\x4d\x1d\x7b\x33\x74\x6e\x4e\x55\x31\xbc\xfb\x34\xf6\xb4\x7d\x17\xf7\x0d\x1e\x7e\xcf\x8a\xa1\x91\x20\x97\x69\x8a\xb4\x71\x23\xf2\x7a\x97\xbe\x9d\x7f\xaf\x9c\x25\x34\x35\xee\xf7\x12\xf2\x5c\x80\xfc\x98\x2a\x19\x8e\xdb\x83\x27\xd8\xb0\x32\xf0\x52\x9e\x9a\xac\x78\x1b\x62\xd9\x26\xf3\x04\x40\xa8\x82\x7e\x63\x3c\x1e\xf6\x00\x40\xe6\xd4\x87\xac\xd8\x54\x78\xe9\x13\xc6\x25\xa0\xe1\xff\x7d\x4d\x9f\x63\xfe\x79\x04\xf8\x04\x53\x79\x3c\xe5\xbb\x0a\x46\xf3\x91\xd4\x09\xf9\xd2\xd6\x4d\x05\xe3\x99\x4a\x25\x1e\x71\xa3\xda\xc0\x87\x70\x9b\xdb\x7e\x57\x21\x29\x7f\x3b\xb8\x81\x15\x7e\x12\x8d\x72\xfc\x94\x18\x98\xa2\x54\x8d\xcd\x03\x82\xbe\xa8\x03\xbb\x66\x10\x3b\xf1\xff\x15\x42\x3e\xa0\x95\xff\xd7\xe9\x9a\xa5\x3e\x97\x5a\xfa\xa9\x4d\x53\xd9\xbd\x11\x4d\x1d\x8b\xe9\x2c\xa6\x35\x27\x61\xc8\x1c\xea\x66\x5f\x19\xd3\xed\xd9\xc9\x5b\x79\xc2\xa3\xa8\x79\xa1\xd4\x23\x54\xe4\xa8\x3a\x35\xc4\x9d\xbb\x7f\xe5\x47\x8a\xf2\xc5\xc5\xe9\xf0\xac\x6d\x96\x34\x3b\x74\x88\x4a\xe5\x4b\xa4\x2a\xd8\x50\x99\xba\xc3\xad\xfe\x3f\xd7\x48\x45\xa2\x57\xa1\x38\x36\xb8\x0f\xd2\xee\x02\xe8\x51\x51\xca\xe6\x21\x89\xad\x3b\x5b\x2f\x1a\xdc\xe9\xec\x6a\xa7\x7c\x1d\x2b\xde\x45\x36\x1b\x03\xf1\x5c\x1b\x59\xb4\xf9\xaf\xa3\x02\xdf\xeb\x38\x0c\x6f\xf8\x0d\xf3\xe3\x20\x83\xd5\xaf\x91\x2a\x50\x1e\x71\xff\xb7\xc7\x3c\x6b\xfa\x6c\xab\x0a\x23\x33\xe3\x65\x75\xbb\x9d\xce\x8a\x37\xa3\x17\x71\x6b\xb7\xe5\xaa\x6b\x27\x25\x33\x0b\x71\x95\x61\x6d\x65\xc3\xed\xb1\x98\xa5\x38\xc8\x39\x90\x90\xd0\x95\x32\xb7\x3d\x23\xf1\x8c\x8a\x91\x91\xe7\xc7\x4b\xa7\x41\xae\x12\x3f\x89\x9d\x53\xe8\x57\x81\x6a\x2e\xbc\x57\x89\x0f\x7e\xdb\xd1\xef\x0c\x8c\x63\x0b\x1a\x9d\xdf\xdb\xb8\x21\x0b\x53\x8a\x3e\x56\x19\x38\x79\x21\xae\x18\xf3\x8c\x58\x6b\x53\x65\x6f\x6f\x58\x6d\xbe\xaf\x0d\x08\x77\x7c\xb3\x69\x14\x87\xbe\xcb\xb8\x5a\x76\xe3\xef\x59\xf1\xa6\xca\x43\xd7\x89\x52\x11\x10\xef\x44\x5a\x3d\xcd\x3e\xc2\xee\x4b\x94\x8a\xc7\x29\x5a\x39\xbc\xd7\x76\xd1\xb9\xd0\x00\xe3\x0a\x3c\x9f\x10\x80\x46\x1e\xc3\xa6\x1d\xa8\x93\x04\x9e\x6b\x12\xb0\xb0\xff\xe2\x54\x95\xcb\xc0\xd5\xb4\xee\xf5\x13\x4a\xac\x6b\x98\xb8\x26\x70\x05\x51\x9a\x80\x95\xef\xc8\x20\x5f\xcb\x32\x2f\xdf\xce\x2e\x11\x30\xba\x07\x96\x50\xca\x61\x05\x59\x7e\xee\xfd\x75\xb9\x02\x30\x08\x4f\xe7\xdc\x66\xa1\x35\x33\xc1\x89\x02\x40\xe3\x17\xb1\xfc\xb6\xdf\x22\xb4\x2b\xa7\xb3\xa0\xe5\x0a\x24\x0f\x64\x87\x14\x6d\x97\xe4\xec\x98\xe3\x90\xc8\xe0\x1a\x2a\x63\xf6\x47\xab\xc2\xb3\xbe\x32\x04\x84\xaf\x8d\x78\xac\xb3\xfb\xbf\xae\x9f\xc5\x95\xe0\x8a\x58\x72\x6f\xa4\x00\x61\xca\xe5\x24\xa3\xd5\x27\x90\x1e\xca\xb7\xcc\xb1\xd5\x95\x50\x26\x1b\x74\xfb\xba\xfb\xc3\xfd\x4d\x32\x4d\x90\xe7\xf5\x77\xc7\xd1\x53\x0a\xb4\x30\x68\x3e\x2b\x58\xf0\xcb\xb2\x8a\x42\x1f\x09\xda\xf8\xed\x74\x3a\x1d\xa0\x70\xce\x6c\x7f\x13\x19\xa9\x50\xa7\x1c\x1c\x3a\x3c\x6b\x96\x79\x59\xf4\xf3\x99\x0e\x8c\xb6\x34\xd5\xb7\x4a\x6b\xa8\x53\x56\x13\xba\x20\x7a\xca\x20\x41\xde\xb0\x79\x28\xe5\x48\xe9\xdc\xb6\xf0\x39\x70\xa7\xbe\x65\xba\x89\x29\xa5\x0f\xa2\x3f\x97\x50\x18\xcc\xfc\x18\x46\x1e\xf5\xcf\xe7\xd5\x50\x24\x8b\x63\xc8\x31\x9e\x18\x4a\x19\xbd\xa8\xc9\xa0\xc6\x48\x43\x62\x23\xc6\xd7\x5a\x6d\xb0\xfa\x7d\x06\x22\x8d\xb1\xe7\xa7\x36\x74\xfd\x41\x8e\x9d\xd3\xe3\xb1\x66\x56\x71\xd8\x6a\x20\xed\xca\xc7\x01\xf8\xce\x35\x83\xd8\xb3\x13\xfb\xb6\x80\x0f\x3c\x80\xf1\x13\xfb\xb7\xbb\xed\x24\x15\x1d\xb2\xd7\xf7\x26\x9a\x2e\xc8\x42\x8f\x1b\x76\x33\x55\x34\x47\x0f\xcc\xb8\x64\xbd\xe0\xa4\xb2\x99\x9b\xe9\x05\x64\x2a\xfb\x2d\xd7\xcb\x40\xa5\x67\x7e\x63\x88\x0c\x91\x64\xb1\x0b\xfc\xda\xbf\x0d\x04\x36\x26\xcd\xd2\x34\xa2\xba\xca\x11\xce\x2f\x17\x1a\x2e\xc8\x23\x46\x78\xa5\x8f\x4c\x7e\x3c\x9f\x2c\x0a\x72\xf2\x66\x78\x0c\x4e\x08\xfe\xba\x40\x11\x82\x2f\x22\x2a\xa1\x80\xd6\x39\xee\x6f\x69\xcb\xde\x2d\x1b\x08\x21\x23\xd1\x91\xc3\x59\x67\x72\x00\x05\x42\xe0\x62\xb0\xd5\xbc\x69\xa4\x9d\xc0\xbe\x0d\xa4\x30\x27\xef\x61\xf4\x04\x20\x0d\x57\xf9\x11\xdf\xe0\x07\x34\xcd\xb4\x7b\x83\x0a\xe8\x87\xad\xcd\xe3\x6d\x59\x2d\xf3\xb2\x9e\xa4\xa8\x50\xc4\x91\x81\x1d\xfd\xa4\x93\x97\x0f\x4f\xba\x2a\x0f\x66\x09\x7c\x84\x8f\x6b\xe3\x17\x45\xcc\xe9\xa9\x75\x0e\x4d\x27\x9d\xcc\x51\x7a\x31\x81\x91\x3b\x84\x9a\xeb\xe8\x4f\x65\xb3\x2e\xc8\x34\xae\x6b\x1a\x1a\x5c\x9e\x09\x31\xb7\x47\x2c\xd4\x0c\x22\x1c\x25\x46\x94\x3d\x32\xb3\xca\xa3\x51\x68\x18\xc6\x9c\xc6\x72\xec\x13\x1a\xdc\x0c\xcd\x96\xec\xe9\x18\x1a\x67\x8c\x2e\x10\xcc\xb4\xc6\x0e\x0e\x35\x13\x27\xa0\xf6\x91\x0a\x32\x26\x17\x37\xe7\x5d\xc1\x51\xc7\xa6\x74\xdd\xbc\x1b\x54\xb6\x7d\x26\xed\x79\x1e\x61\xa5\xb6\x37\x77\xc3\x81\xa0\x3d\xdf\xcc\x48\x92\x5c\xd3\xf3\x47\x12\x84\xec\x0e\x06\x01\x2d\xe1\xed\xca\x2b\xa0\xb6\xaa\xf3\x64\xc3\x75\x38\x42\x0f\xda\xd4\x5e\x18\x13\x02\x5b\x9c\xb2\x5c\x3d\x66\x39\xd6\x4d\x59\xfc\xc5\x68\x69\x4f\xa2\xe0\x4e\x42\xa5\x08\xed\x3a\x39\x2c\x35\x6d\xd1\x4c\x2f\xb4\xb9\xdc\x1f\xef\x58\x6c\xe0\x54\x5f\x57\x4d\xfb\x75\xee\x46\xfb\x49\x4c\x96\x8f\x66\x2b\xe4\x44\x1d\x47\xa3\x4b\xfb\xe0\x13\xa6\x64\x43\xd6\x28\x37\x90\x0f\x0d\xc8\x67\x16\x2e\x1d\x80\x24\x44\xb4\x42\xd9\xbd\xbb\xd0\xf3\xa4\xa9\xe8\xb7\x5f\x95\x34\x87\x86\x04\x7a\x1d\xa6\xc6\x10\xdf\xca\xdc\xb6\xe1\x88\xd3\x7e\x9f\x04\xa6\xee\x04\xd0\xda\xf2\x1f\xa7\xbe\x13\x83\x08\x41\x47\x0c\x23\xdf\x15\xb6\x56\xf8\x89\x79\x79\x3c\x58\xb1\x81\x31\x06\x5f\x47\x68\x04\xf1\xdb\xf8\x7e\x53\x95\x3a\x6b\xba\x23\x3a\x26\x38\xd8\x1e\x9b\xf7\x11\x85\x45\xc7\x29\xa7\x7e\x34\xaf\xd2\x54\x41\xf7\xfc\x09\xc7\x08\x7b\x0b\xb3\x1f\xef\xe5\xcd\xe9\x2a\xd7\xe3\xff\xfa\x6f\xfb\x5b\x2c\x8e\x48\x5d\xfe\xa1\x7c\xdb\x62\xe3\xb6\xa8\x66\xcc\xce\x4e\x12\x9a\x61\x90\xc6\x9d\x1f\xdb\xfa\xa7\xc4\x91\x25\xc1\xb8\x3f\x30\x04\xa9\x07\x49\xcd\xec\x8a\x91\x08\xd7\xa9\x27\x93\xb8\x63\x11\x51\xa0\x79\xb8\x98\xe1\x75\xea\x0b\xaa\x1b\x36\xd9\x81\x32\x43\xe5\xc9\x16\x0e\xdd\xbb\x4b\x13\x5f\xf8\x53\x9d\xec\xfb\xe2\xb3\xcc\x06\x0a\x4f\xa3\xaf\x9e\xa6\x11\x81\x7d\x6e\xee\x9f\x9f\xee\x97\xbd\x43\x26\xd7\x29\x18\xb6\x4d\xfb\x91\x07\x28\xe8\x17\xab\xb2\x3b\x94\xa9\xd3\x29\x44\x18\x58\x46\xfc\x72\x80\xcd\x1c\x02\x74\x35\xf8\x26\x7c\xdc\x90\x53\xe9\x06\xaa\x1c\xff\xb3\xac\xca\x2f\xd5\x7b\x38\x72\x0d\xa9\x8c\x8d\x0b\x91\x91\xdb\x18\xfb\x14\xb8\x46\x3c\x24\xd5\xdf\xf7\xf2\x54\xe3\xef\x88\xc7\x3e\x1e\xd7\x20\x05\x1a\x8e\xff\xb3\x20\x83\xf5\x6a\x7a\xb2\x94\x64\xfe\xf3\x88\x55\x3b\x01\x37\x13\x13\xe4\x19\xc5\x4c\xae\x45\xc2\x13\x8b\xfa\x22\x05\x30\xa3\xef\xe3\x7e\x52\xb0\x88\xa4\xe2\x89\x82\x97\x1d\xf0\x01\x75\x37\x20\x64\x24\x28\xf1\x32\x24\xe2\xcf\x92\xf0\xe7\xfb\x85\x4c\x0d\x55\xf4\x0d\x1b\xe3\x40\xbd\xa8\xaa\x6b\x0a\xef\x6e\x5f\xab\x25\xb0\x84\x77\xf9\xd5\xa9\xe5\x24\xd7\x52\x84\xbe\xb6\x30\xb0\xbd\xe5\xc9\xbb\xfb\x55\xca\x8f\x0d\x82\xe9\x01\xdf\xb0\x0d\x60\xcf\x9b\xc1\xee\x69\x72\x7b\xe8\xf9\xb4\x60\xef\x5d\x1a\x66\x2f\xce\xc6\x50\xf4\xda\x78\x1d\x64\xca\x34\xfa\x5e\x64\xe2\x2c\x05\x75\x97\xc4\x1b\x2e\x32\x98\x18\xdb\x84\xd5\xee\xdb\x50\xfc\xec\xe2\xaa\xd7\xf7\x06\x1a\x45\x4a\xd3\x69\x1b\x28\x0c\x84\x33\x34\x22\x12\x3b\x5e\x67\x79\xfe\x78\x26\xff\xa4\xc9\x68\x43\x2d\xb8\xad\x21\xac\xa0\x81\x7d\x18\xfd\xd6\x1f\xd1\x36\x8a\x22\x95\xf1\x2b\x89\x81\xae\xb5\xa2\xc4\xba\x51\xd4\xa1\xe7\x6b\x7b\xc9\x40\x00\x4c\xeb\x08\x94\xd1\x1e\xaf\x66\x75\x04\x46\xaf\x4d\xa7\xc8\x6d\x0a\xd7\xf4\xdd\xe7\x53\x13\x4c\x3e\xb1\x4e\x35\x95\x65\x6e\xb0\x59\x14\x37\xdd\xcf\xf0\x48\xd8\x74\x7d\x3b\xed\x96\x45\x87\x1e\x5e\xcc\x7f\x61\xf0\xbc\x38\x25\x85\xd3\x6e\xa8\xfd\xe6\x0e\x80\xaf\x23\x57\x94\x34\xf5\x87\x2e\xe2\x00\x2f\x08\x62\xaa\x8e\x0b\xcc\xcb\xe2\xad\xde\x95\xb3\xf3\x1e\x78\x41\xc8\xc1\x96\x7d\xcc\x1e\x7c\x88\x75\x06\x2f\x88\x3d\xca\x66\x69\x37\x99\x59\xe1\x91\xe1\xc3\x82\x17\x88\x44\xda\xfe\x7c\x3c\x35\x38\xee\xf3\x57\x53\xe6\xbf\x5a\x19\xc0\x0b\xb4\x01\xff\x9b\xe5\xfe\xbe\xfe\x8e\x55\xa6\xb3\x21\x12\xaa\x7f\xd8\x30\x30\x6c\x59\x7b\xc8\xed\xda\xc0\x0b\x99\x56\x26\xeb\x5a\xe8\xac\x3a\x6c\xb0\xd2\x28\x9b\x76\x06\x3d\xf6\xa9\x45\xf0\x22\x4f\x7a\xc6\x51\x8d\xbe\x46\x56\xbc\x39\x81\x57\xd7\xc0\xe7\x04\x11\xea\x14\xbc\xc6\xf7\x1a\xe9\x34\x10\xfd\x8a\x39\xe7\x46\x00\x5e\x1c\x30\xba\xc6\xfd\xe1\x08\xb2\xe9\xca\x8d\x93\x46\x3a\xa6\x89\xd5\x2c\xdd\x34\x39\xd7\x90\xcf\x46\x3b\xe0\x25\x81\xa2\x8a\xd5\xfa\xa7\xd9\x13\xfa\xbe\xbb\xdf\x44\x71\xea\xf1\x56\x49\x6d\x57\xd2\x5e\x0f\x7b\x41\x7d\xdb\x8e\x45\xa9\xf3\x33\xec\x92\x30\xeb\xe6\xbd\x93\x85\x76\xd7\x63\x2c\x82\x0e\x8c\x99\xe7\xb7\x88\x5b\x09\x39\xcc\x4b\x70\x83\x97\xfa\x01\x05\x80\x79\xd6\x18\x83\xbf\xee\x83\xa4\x32\x86\xd0\x79\x17\x58\xcf\x17\x57\xb5\x9c\x3c\x1d\xf7\xfd\xd4\x86\x21\xf4\x74\x77\x15\x5c\x3a\x3f\x99\xfa\x7a\x30\x29\xbe\xbb\x2b\x48\x16\x18\x93\xf0\xcf\x3e\xa0\x06\x0f\x62\x23\xdf\xb6\xfe\x17\x54\xd9\xcb\x29\xef\xbb\x0b\xc4\x9a\x96\xae\xde\xaf\xee\xba\x07\x39\x78\xc2\x4b\x52\xe3\x81\xfe\x96\x15\x77\x5d\xe6\xae\x3d\x20\xc3\xa4\x53\x42\x5d\x61\x4d\xc6\x51\xa8\x5e\xf0\x58\x56\xcd\x53\xb9\x7d\x2f\xbf\xba\xdf\x14\x02\x68\xb3\x64\x13\x4f\xb6\xf8\xbf\x6c\x3b\xec\xdb\x28\x47\x4e\x4d\xb9\x83\xf4\x1b\x47\xe4\x39\x78\xde\x20\x61\x0c\x9e\x62\xc6\x5b\x49\xf4\x5e\x19\xab\xe7\x1f\x4f\xee\xc7\xd1\x37\xc9\x6a\x35\xd0\x76\xa3\xc2\xc7\x9c\x54\xc1\xe4\xf1\x51\x1b\xda\xa3\x53\xc5\x5f\x2d\x76\x6b\x77\x5d\xed\x85\xdc\xb8\xf0\xfe\xa4\x02\xde\x78\x52\xd1\x61\xca\x8c\x65\x4d\xdd\x18\x21\x82\x15\x7e\x2e\x17\xbb\x0b\xd9\x24\xf0\x74\xcc\x94\xd7\x0f\xe0\x1f\x73\x5e\x87\xe0\x69\x30\x6b\x3c\x65\x89\xc7\x7b\x56\xf0\x3d\xe6\x51\x65\xa1\xc0\xaf\xb1\x9b\xec\x7f\xcd\x15\x20\xc1\xf7\x35\x23\xce\xbb\x80\xe2\xc3\x0d\x28\x3f\x08\x8c\xcc\xe4\x6d\x56\xbf\xb7\x07\xae\x45\x0f\xae\x79\x1a\x53\x6d\xcc\xe1\xb0\x4c\x90\x68\x12\xb2\xae\x09\x72\xd4\x8e\x8b\x39\x26\x8a\x8c\x5f\xb4\x1f\x26\xa6\xe2\x5c\x11\x1e\x7f\x6a\x63\x03\x7e\x14\x99\xd9\xef\xf7\x93\x2a\xeb\x9b\xf6\xe6\xc6\xe7\x47\x4c\x11\x70\xb1\xa9\x40\x21\x59\x36\xba\x7d\x22\xf8\x91\x64\x81\x1d\x8f\x86\x05\x6e\x30\x0e\xf3\x37\x12\x61\x28\x82\x61\xd5\xb5\x50\xe6\xf3\x8d\xb3\xc8\x93\xb3\x92\xc0\xd4\xc4\x36\x39\x34\xe5\xd1\x61\x99\xc1\x67\x69\x48\x44\xcc\x5b\xac\x0e\x63\x48\x66\x7b\x4c\x52\xa9\xe5\xd8\xee\xdf\xdc\xdf\x64\x40\xd7\xa1\x8f\x4c\x59\x0f\xa2\x70\xaf\x8b\xb7\x81\xd7\xd7\x4c\x04\x02\x7e\x2a\x24\xea\xce\x70\x60\x02\x69\x07\x9f\xfb\x9c\xb2\x8c\x87\x8c\x32\x1a\x57\x1e\x03\xfc\x90\xc2\x18\x9d\x35\xf5\x08\x75\x38\xf5\x8c\x00\x1f\x00\x28\x09\xb8\x9f\x96\xaa\xec\x71\x11\x28\x1a\x1d\xb2\x3c\xac\x06\xc8\xcf\x5f\x2f\x88\xbe\x88\xc2\x98\x77\x9e\x99\x26\x25\xe4\xde\x8d\x48\x02\x97\x6f\x33\xe9\xe3\xdf\x46\x2f\x40\xf0\x98\x16\xf9\xa1\xd8\xdf\xa4\xf3\x4f\x05\xbe\xae\x74\x6c\xa1\x52\xb0\x28\x8d\xd3\x71\x6c\xfb\xef\x66\x34\x5f\x31\xe6\xf7\x4e\x8b\xdf\xb2\xcf\xae\xcf\xa3\x88\x4d\x1e\x1e\xb3\xdc\xff\xed\x32\x01\x05\x3e\x2a\x61\x90\x09\xef\x50\xe1\x43\xbb\xf1\xc1\x79\xe9\x77\xf0\xd1\x3a\x8c\x3e\x96\x9f\x68\xf8\x70\x7f\x95\xe2\x05\x5f\xfb\x11\x91\xd3\xb6\xeb\xe5\xeb\xcb\xcb\xb3\xbb\x2f\x9d\x44\x84\x9b\x5c\x34\xe5\xe1\xf5\x8f\xee\xaf\xc8\x0c\x36\x99\xe6\xe2\x53\x85\x2b\x22\x8a\x4f\xe5\x1c\xc6\x77\xa5\x75\x4c\xe1\xbb\xcc\x33\xad\x77\x08\x07\xe7\xe8\x9b\xf7\xe2\x34\x10\x04\x7e\xe2\x7a\xa4\x9b\xae\xc8\x33\xcc\x18\x65\x5c\xf8\x14\x40\x10\x44\x86\xdc\x6b\x53\x2a\xb2\xc9\x3e\xb3\xe6\x3c\xf7\xc4\x17\xb7\x14\x04\xa9\xe6\x93\xf0\xb7\xb6\xbf\xd6\xdd\x0f\x1a\xc8\x76\xdd\x90\xaf\xab\xfb\x73\x18\xfa\x81\x33\xc1\x73\xa1\xc8\x64\x7a\x0d\x42\x69\xac\xe0\x51\x65\xcd\x42\x5d\x51\x80\x1c\xff\xcb\x78\x17\x0c\xfb\xdd\x48\x1a\x21\x72\x57\x56\x3e\x2d\x30\x26\x02\x7c\x26\x31\x25\xbb\x90\x8c\x1f\x30\x0a\x22\xb0\xaa\x4b\x9b\xfb\x7d\x7b\x23\xfb\x20\x18\x8d\x80\x20\x12\x1e\x21\xc9\x86\xa9\xef\x89\x07\xd4\xe4\xad\xc5\xcc\xe8\xa6\x9a\x84\xc0\x0b\x7e\x62\x71\xc2\xc9\x0f\xc7\xd2\xa3\x99\x77\xf7\x9e\xd5\xeb\x9f\x86\x1a\xb4\xa8\x6b\x3c\x88\x6e\xb1\x0b\x62\x85\xa1\x1c\x06\xd8\xa3\x54\x0e\x04\x49\xa0\xe3\x74\x20\x19\x45\x95\xe0\x99\x59\x2c\x48\xc2\x98\x52\x55\xa7\xc2\xe9\x8b\x18\x5b\xde\xee\x42\x49\xe2\xcc\x00\x7b\x3c\x49\xd7\x81\x12\x19\x50\x72\xc9\x89\x2d\xc1\xa9\x46\x2b\x7a\xd4\x07\xd2\x41\xa2\x3c\x32\x77\x27\x09\x71\x39\x8c\x74\x47\x51\x7b\x17\x70\x05\xe9\x4c\x99\x1a\x82\x04\x85\xd3\x79\xdb\xc0\x19\x71\x00\x4a\x80\x20\xd1\x06\xd1\xb2\xbc\xbf\x7d\x71\x7f\x63\x51\xe4\xa0\x9f\x8f\x65\xd3\x75\x4b\x06\xc2\x1f\xb8\x8e\x75\x55\x99\xee\xb8\x14\x56\xaf\xa3\x69\xb0\x9a\xd2\x54\x26\x1f\x34\xf5\x34\xc6\x8e\x77\xf9\x0d\xea\xc5\xa9\x29\x7b\x1d\x4b\x08\xd2\x48\x11\x22\x05\x7f\x1e\x33\x13\xe5\xf7\xa6\x35\x10\xa4\x32\x25\x01\x18\xd3\x19\x7f\xff\x73\x39\x8c\x58\xdd\x52\x12\xf0\xd0\xa7\xc8\x8f\x5c\xb9\x47\x23\xc6\xa8\x10\x5f\xd9\x02\xd9\xb3\x81\x33\xda\x84\xde\x75\xc8\xd9\x91\x44\x24\x04\x00\x09\xa9\x2d\x81\x52\x2f\x44\xc3\xbf\xcd\xde\xde\x9b\x60\x85\xd0\xcc\xab\x9b\x41\x20\x82\x98\x2a\x73\x77\x58\xac\x7f\x36\x3f\xb0\x3d\xa1\x4b\xd9\xa6\xae\x11\x8b\x8c\x8e\x16\xd6\xcd\x4d\xd6\xd4\xed\xc2\x0e\x59\x4e\x5c\xc7\xe7\xe7\x1b\xf7\xf3\x42\x68\xc9\x06\x5d\xf5\xf5\xe5\xfe\xa6\x9d\xd4\x46\xdd\x54\x7a\x11\xc9\x58\xbe\xc1\x01\xef\x32\xdd\x3c\x17\x12\x87\x4e\x67\x10\x28\x26\x88\x61\x74\xaa\xb1\xda\x9e\x44\xc7\xa3\x98\xab\x31\x43\xa0\x52\x16\x58\x2f\x3e\x2b\xcb\x14\x74\x17\x4a\x65\x9a\xf6\xb8\x32\x6c\xef\x43\x36\xa8\xb6\x4d\x29\x3f\xb6\x58\xa8\xab\x5c\x21\x08\x94\x44\xbb\xef\x35\x24\x95\x0f\x2c\x88\xdb\x3a\xfd\xa4\xa1\x17\x18\x45\x8a\xbc\x7d\x73\xb4\x09\x7f\xc8\xc4\x6f\xee\x60\xc2\x09\x2f\x42\x6a\x52\xab\xc5\x6e\x31\x7a\x17\xa1\xa7\x22\x2a\x47\x98\xba\xf3\x2a\x73\x44\x38\x08\x7d\x3f\x76\x1d\x7e\xe8\x54\xeb\x8e\x4a\x1d\xc0\xa0\x24\x4c\xd3\xd5\x0b\x64\x1d\xcb\x18\xc2\x20\x94\xdc\x79\x4e\x1a\x75\xbb\xf1\x25\x82\x34\xa4\x18\x9b\x8a\xbc\x5b\xba\xce\x07\x2e\xcb\xc3\x01\xa7\x62\xec\x10\x86\xa1\x04\xa3\x19\x74\x7e\x3e\x35\xd3\x83\x2c\x4a\x2c\x62\x60\x83\xc5\xdb\x29\x2b\xea\x9b\xf3\x88\xd2\x63\x1b\x46\xc2\x54\xbf\xba\x54\xd4\xe4\x42\x31\x4b\xdc\x43\xb9\x59\xda\x4f\xdc\xe3\xc4\x5c\x49\x3b\x0b\xde\xb4\x6b\xc0\x00\xd0\x05\x61\xac\x62\xc2\xbd\xaf\xa0\xfc\x76\x12\x23\x94\x3d\x84\x09\x4b\xd5\x10\x87\x64\xfc\x4d\xcf\xdd\x32\x35\x97\x18\x86\x30\x51\x01\x05\x0f\x6d\x2c\x79\x3a\xee\xca\x79\xed\x76\x08\x13\xad\x48\x28\xfc\xf6\x44\xa8\x91\x05\xd5\xd6\xf1\x82\x44\x39\x39\x8b\x45\x7e\xdc\xd7\x97\x36\xe5\xf1\x94\x97\x13\x3c\x2e\x84\x29\x58\xb9\x0c\x1a\xc9\x77\x93\x1c\x2b\x84\xa9\x02\x61\xdf\xd7\x03\xea\x66\x59\x96\x6d\xf0\xdf\xee\x20\x06\x1a\x94\x10\xa6\xda\x38\x43\xec\xa0\x1e\x9a\x93\xb7\x07\x90\x00\x16\xcb\xb2\xa8\xb1\xb0\x1a\x49\xa5\x03\x38\x43\xc8\x03\xed\x19\xe7\x32\xbb\xd9\xef\xc8\xb4\x10\x72\xc6\x29\xc9\xbe\xbc\x79\x1e\x5d\x93\xa7\x09\xda\x5e\xb7\x5b\x3c\xdf\xab\x79\x39\x3b\x08\x45\x62\x5c\xe1\xa8\x94\xf1\x0d\xea\x01\xe6\x0e\x42\x19\x7a\x84\x3f\xb0\x1a\x02\x5d\xa5\x0f\x42\x29\x74\xe7\xe6\xf4\x9e\x1d\x49\xe9\x76\xb4\x8c\x85\x52\x25\x94\xb0\xb8\xc3\x66\x45\x41\xdf\xea\x79\x37\x24\x58\x0f\x52\xeb\xd0\xc6\x0f\x68\xfc\xa0\x4f\xf5\x6b\xde\x54\xe0\x7e\x47\x05\x21\x98\x49\xb1\x59\x17\xdd\x90\x52\x4c\x31\x53\x2c\xe8\x22\xbe\x2b\x8f\x87\x9e\x49\x2b\xf5\x4c\x85\xba\x33\x0d\xea\xe0\x4d\x10\x62\x18\x1a\x1e\xa9\x59\x73\x67\x75\x76\x26\x57\xd6\xa9\xa4\xf8\x77\x71\xc0\xe6\xfd\xdc\xb3\x22\x21\xd4\x22\x21\x42\x58\x1b\x45\x90\xac\x24\x34\xb8\x71\x53\x61\xe4\x31\x26\x78\x07\xee\xfe\xe6\xd8\x52\x10\x05\xbe\x22\x4c\xfe\x11\xde\xf0\x36\xcb\xaf\x78\xac\x40\x14\x20\x3a\x35\x2d\x23\x6f\x37\x23\x6e\x05\x51\xe4\x01\x91\x72\xbf\x20\xcf\xdb\x9b\x1b\x76\x8e\x28\x4a\x8c\x13\xcb\x80\x98\xd5\x89\xa3\x40\x14\xf1\x90\x96\x7d\xcb\xe9\x1a\x2f\xaf\x51\xa4\x02\x12\x0c\xf8\xcc\xf0\xcb\xa4\x0f\xeb\xee\x10\x7a\xa4\xcf\x69\x85\xf4\xbb\xbd\xd7\x6d\x59\x39\x75\x21\x88\x12\xcf\xd8\x0f\xd5\x16\x97\x00\x33\x34\x93\xc9\x13\x27\xb1\xa2\x5a\x7e\xbb\x44\x1b\x35\x40\x4a\x7b\x75\x57\x04\x16\xda\x2b\xde\xc1\x01\x9d\x28\xd7\xe4\x85\x24\x18\xa5\x36\xf4\xbc\x7b\x58\x8c\xfa\x6a\x94\x60\x22\x47\x26\x59\x88\xf7\x05\x75\xfa\x31\x5c\xa1\x6d\xa9\x9c\x23\x1b\xed\x6e\x57\x65\xb3\xca\xb4\xce\xe4\x29\x6f\xce\xd3\xb6\x1a\xc9\xca\x07\x6d\x46\x6f\x57\xda\xdd\xf7\xfc\x77\x65\xb1\x2f\xbd\x2e\x8c\xb5\x45\x6d\xda\xb6\x1a\x32\xdf\xcd\x69\xfa\x03\xcc\x8a\xf4\x2a\xcc\xe1\xfc\xad\x3c\xf5\x5f\x82\xf1\xd0\x19\x8f\x3e\xc2\xcf\x2d\xca\x53\x95\x35\x67\x92\x4c\x35\x2c\xe5\xc9\x85\x54\x1a\x27\xbd\x2d\x72\x1b\x92\x8e\x36\x35\x51\xea\x4b\x4a\xb7\xad\x90\xcc\xf1\xba\x80\xe9\x2f\xc1\xd6\xff\x97\x5a\x23\x44\x29\xef\x68\xdd\x44\x2a\x9d\x45\x44\x42\xc4\x13\x9f\x3e\x7c\xbb\x72\x2a\x7d\x2a\xe4\x20\x1f\x15\xf1\xd4\x23\xab\x67\x97\x94\x9c\x51\xf8\x80\x88\x73\x4d\x7c\xb1\xad\xb1\x80\x5a\x28\xf5\x3c\x1f\x47\xf7\xf7\xc6\xa5\x12\xb1\xc3\x0d\xd9\xe4\xe3\x64\xc1\x88\x20\x08\xa8\x00\xfe\xf8\xc7\xd3\x85\xdf\x31\x44\xc0\x12\xfa\xd0\x02\x65\x79\x20\xfe\xc6\xf6\x58\x16\x1d\x5b\xaf\x6d\xc0\xa8\x68\x9f\xd5\x2f\xd0\x64\x3a\xbb\xb8\x6d\x48\x91\x46\xe8\x16\x9b\x26\x2b\xde\xea\x2d\xfe\x5a\xc6\x0a\x22\x11\x63\xc0\xad\x08\x2f\xf4\x59\xde\x48\x79\x8c\xbe\xfc\x27\xbe\x67\x32\xc7\xf5\xcf\xa1\x22\xd6\x30\x42\x8a\x54\x60\x22\xda\xbb\xf2\x20\xfa\x5c\x4f\xa4\x83\x94\xc0\xc8\x59\xfd\x5a\x63\x75\x5f\xdc\x55\xe5\xe9\x38\x0b\x2b\x86\xd8\x0f\x13\xe1\xc8\x0c\x2e\x95\x3c\x41\xc1\x4f\xcf\x88\x3c\xaa\xcd\x74\x8a\x9d\xed\x74\x32\x3d\x65\xf6\x89\x63\x9f\x27\x68\xe1\x56\x07\x3c\x54\xf8\x6f\x65\xc1\x56\x57\x9a\x0b\x23\xcd\x93\x9f\xe4\xc7\xd9\x22\x4f\x8d\x82\x88\x6b\xa0\xfd\xc4\x86\xfc\x2b\x38\x0f\x8d\xe9\x20\x0e\x12\xee\x88\x74\x6d\xc4\xfe\xac\xed\x4a\xee\x5e\x73\x1c\x46\x3e\xa4\x9d\x39\x2f\xfc\x7c\x2a\x07\xa9\xf6\x38\x8c\x12\xca\x7e\x5b\x68\xe2\x20\x5d\xfc\xb7\xc7\xd1\x2f\x27\xd0\x38\x8c\x19\xcd\xf7\xed\x6b\x7c\x3d\xfe\x2d\x06\x0e\xc4\x11\x53\xd2\xda\x4c\xdf\xcb\xf2\x1b\x54\xaa\xb3\xb4\x83\x38\x4a\x4d\x7f\x22\xde\xdb\xba\xdb\x87\xd1\x9c\x38\x94\xc8\x80\x38\x0e\xcc\xce\xfb\x1b\x56\xe5\x53\xa9\x86\x10\x31\x88\x19\x0b\x13\xed\x24\x42\x06\x1a\xb2\x10\xf3\xd8\x08\x83\x51\x59\xe4\xa6\x3c\x39\xd3\x94\xcb\xfb\x04\x1e\x26\xbd\x04\x0c\x6d\x73\x46\x93\x57\x0c\x42\xc7\xca\x04\xcd\x07\x2c\x9a\xbd\xd9\x48\x4c\xa7\xf6\x58\xf8\x9a\x74\xe0\xc5\xe9\x1c\x7b\xee\x36\xa4\x07\xcc\x99\xe5\xad\x8c\x7a\xbc\x3b\xc2\x90\x26\xdf\x1f\x4f\x4e\x9e\x19\xe2\x36\x9e\xe2\xa3\x0f\xd9\x69\x4b\x93\x80\xef\x08\xde\xf8\x37\x3f\xa5\xbb\xb4\x60\x64\x3f\xa1\xb3\xaa\x6e\xc6\x39\xaa\x18\xa3\x28\xed\x74\x8a\xda\x0e\x38\x31\x60\x87\x18\xb9\xa4\xa5\xa8\x73\x6b\x58\xc1\xb9\x5d\x18\xda\xad\xc6\x70\x7f\x19\x23\x18\xa3\x75\x5b\x1f\x34\xbc\x8d\x6b\xf6\x64\x2e\x7c\x8a\x75\x08\xe4\x95\x7d\xb7\x78\x5c\xef\xd7\x4f\x2b\x77\x63\x3a\x0d\x89\x6e\xfd\x85\xed\x54\x36\xd8\x14\x25\x5e\xc0\x52\x63\x0a\x2c\x31\xfb\xa4\x02\xd6\xe8\x79\x13\x4f\x31\x8a\x08\x6f\x9e\x17\x2f\xab\xbd\x8b\x9e\x92\x00\x82\x28\xe9\x32\xec\xf5\x85\xaa\x15\x24\x91\x97\x24\xa9\x23\xd0\x3c\xb5\xf1\x80\x94\xa7\x63\x36\x21\x79\x43\x12\x45\xa1\xf3\xcb\xb1\x13\xca\xae\xbc\x28\x70\x8d\x3f\x42\x12\x71\x99\x74\xce\x54\xed\x57\x1d\x61\xce\xc6\xfd\x32\x89\x03\x41\xfa\x7f\xf5\xe9\x70\xb8\xc9\x72\x51\x56\x6d\x2f\x76\xb7\x19\xa7\x71\x67\x8c\xb0\xad\xe4\x3f\x06\x29\xc2\x5f\x0e\xcb\x24\x4e\x35\x69\xee\x88\xac\x6a\xde\x37\x58\x7d\x3b\x15\xaa\xea\x5f\x6c\x22\x45\x88\x9d\x05\x21\xf1\x06\x9d\xa1\x65\x6d\xc0\x3a\xb6\x21\x03\x49\x19\xde\xc7\xfb\xcd\x72\x12\x1f\x26\x69\x60\x0c\x16\xca\xe2\xef\xe8\x00\x40\x92\x86\xa9\xb6\xd9\x9f\x7b\x3d\x40\x60\xb5\x47\xcc\x1b\x1b\xd5\xe8\xc6\x1f\x22\x55\x11\x49\xf8\xe4\x99\xc4\xa2\xc6\xa7\x5b\x37\x9c\x12\xae\x8d\xcd\x38\x54\x15\x18\x71\x9a\xc9\x96\x3f\x01\x10\xce\x06\x6a\xdf\xc6\x23\x17\x3e\x10\xc3\x51\x90\x88\xd0\x17\x8e\xd7\x4f\x92\x7b\xbd\x19\xcf\xd3\x29\xcf\xad\x86\x47\xd3\x75\x25\x01\xc2\x51\xb7\x9e\xf0\x67\x33\x52\x31\x9d\xbc\x01\x19\x1b\x79\xf1\xe5\xcb\xf3\x76\x71\xff\xb2\x27\xf7\xbf\x97\xfb\xa5\xab\xb3\x25\x2a\x95\x34\x9f\xd9\x04\xd8\x0b\xca\x77\xa8\x9c\xcc\x1a\x24\x4a\x23\x38\xb8\xc1\x80\x0b\x30\x54\xf6\x9d\x14\x0e\x27\x0a\x1f\x90\xa0\xef\xd3\xbe\xc0\xee\x61\x6c\x21\x7a\xca\xce\x1c\x9d\xa1\x85\xe7\x1b\x1d\x4a\x67\x3e\xae\xdd\x0d\x69\x96\x50\x98\x63\x32\x36\xeb\x63\x56\x97\x0a\xe7\xe0\x90\xc0\x3c\x25\x68\x87\xfe\x2d\xab\xf0\x6e\x28\x6b\x07\xcc\xf7\xa2\x20\x18\x30\x35\x4d\x7a\xe9\xb6\xac\x7e\x60\x36\x9e\x7e\x99\x1f\x9b\x84\xe6\x3f\xbe\xb2\xa1\x6e\xd7\xdf\x5c\x08\xed\x45\x02\x3f\x21\xc8\x31\x0d\xfe\xdb\xbc\x84\xa6\xc7\x49\x5c\xe0\x44\xa6\x96\xbc\xc0\x02\xe9\x63\xea\x10\xcb\x17\x10\xf6\xd9\xbe\xcf\xc2\xc4\x53\xba\x5f\x5d\x3a\xdd\xa9\xc9\x9c\x39\x11\x5e\x6b\xcf\x0b\x3d\x57\x34\x47\x38\xcc\xf6\x58\x16\x6a\x23\x95\x65\x4c\x73\xeb\xac\x2c\xf6\x55\xbf\x3f\x67\x51\x2a\x7c\x93\x71\x3b\xd5\xa8\x06\xba\x09\xc0\x22\x19\xd3\x46\x45\x66\x4d\x86\x75\x6f\x28\xdb\x1e\x41\xaa\x78\xd2\xca\xba\x84\x23\x6d\xd0\x4e\x55\xf3\xfe\xd8\xee\x57\x7b\xed\x3f\x60\x71\x14\x53\x49\xb7\xc9\x9a\x7c\x94\x19\x66\x71\x62\x8c\x9a\x6e\xd6\x8b\x5d\xf7\x37\xc1\xa9\x37\x29\x3c\xe6\xe5\x79\xdb\xe0\xb1\x83\x10\x01\x4b\x54\x4c\x51\x80\xab\xb3\xcd\x79\x0d\x02\x4b\x63\x83\x39\xa8\x90\x14\xbe\x1f\x4a\x09\x79\x1b\x33\xf4\x89\x07\x96\x2a\x43\x8b\xa1\x6c\x99\xff\xfc\xbb\xfb\x3b\xf7\x7d\xb4\x1b\x7d\x02\x28\xb5\xcb\xa0\xc9\x52\x9a\x81\xd0\xb5\x03\xae\xed\xce\x68\xf7\x73\x51\x6f\x8f\x58\x34\x17\x3c\xaa\xf1\x5d\x09\x15\xa2\x65\x0a\x7c\xa7\xba\xf7\xdb\x56\xbe\xa3\x3a\xe5\xb8\x2e\x9a\x2b\x52\x7d\xc0\xa4\x67\xd4\x61\xa9\x16\x62\xdb\x5f\xa9\x60\x30\x99\x40\x14\x74\x72\xe4\x26\x94\x1a\x8b\xb0\x01\x93\x52\xa2\x9b\xbc\xf6\x65\x61\x54\x50\xd7\xff\xbe\x2f\x1a\x57\xfa\x66\xca\xf3\x08\xe6\x90\xd5\xbd\xa6\xc2\x50\x8c\x75\x7c\x41\x15\x44\xe4\x33\xf2\x5a\xb8\xcd\xac\x2d\x93\xfe\x92\xc8\x0c\x4c\xc5\x8c\xfa\x24\x2d\x82\x2f\x50\xa1\x81\xbe\x5f\x79\x34\xc5\x52\xc7\x3d\x1d\x65\x90\xe7\xfb\xbb\x4a\x13\xb2\xd2\xac\x4b\xdd\xac\x30\xc7\x66\x12\xcb\x31\xf4\x7c\x42\x84\x2c\xf2\x06\x9d\x8f\xdc\x55\x8a\x32\x30\x4c\xb4\xea\x4a\xf7\x54\xc1\x9d\x99\x4e\x5d\x5b\x50\xaa\x73\xc7\x5a\x68\x9d\xe5\x19\x34\xb8\x5a\x75\x1d\x5c\xcb\x20\xb2\xda\x12\x37\x20\x3f\x70\xa2\xfd\xd2\x36\x60\xd2\x64\x70\xce\xe5\x89\x78\x72\xed\x13\x74\x03\x4f\x2b\x5f\x9b\x1d\xc9\xe1\x70\x7e\x3c\xd5\x99\x1c\x45\x2e\x4c\x6b\xa1\xa2\x89\x52\x42\x79\xd8\x1e\x31\x37\xaa\x08\xe9\x3f\xfd\x4e\x95\xc2\x9c\x92\x7a\xbe\xa6\x94\xbb\x9d\xf3\xaf\x39\x71\x5c\xab\x24\xff\x72\x32\x4d\x7d\xe1\xf1\x0e\xba\x4c\x0c\xfc\x6d\x03\xd5\xaa\x9f\x7f\xd2\x20\x61\x04\x96\x7f\x87\xda\x25\x2d\x17\xe4\x23\x3c\x7e\x31\x69\x00\x1e\x25\x19\xeb\x2f\xc4\x23\x69\x2e\x92\xf3\xa9\xbb\x4c\xe8\x79\x44\x37\x75\xd4\xac\x02\x0f\xe7\x65\x79\x10\x63\x84\x49\x1a\x06\x01\x21\x28\xb7\x8f\x8b\x87\x87\xf5\x76\xb7\x1f\x08\x05\x41\x1a\x46\x20\xa3\xae\x92\x55\x9e\x9a\xa7\xd3\xc1\x26\x82\xc6\x8f\x15\xb6\x71\x9c\x55\xbc\x24\xc8\xd3\xa0\xac\x96\xc6\x5e\x42\x93\xd8\xe3\xef\x7f\x0e\xd9\x3b\x90\xc6\x09\x23\x32\xf1\x22\x57\xd9\xb9\xec\x15\x79\x20\x8d\x99\x0e\x4c\xd9\x50\x9d\x24\x55\xc2\x7f\x20\x7e\x98\xd0\x7a\x76\x6a\x48\xe3\x34\x49\x0d\x40\x41\x37\xef\x8e\x50\x3d\xc8\xbb\xa6\x69\x88\x89\x75\x8e\xba\x6f\xf0\x30\xd0\xf6\x1b\x2c\x27\xe3\x57\x9c\x42\x4a\x39\x64\x4b\x3f\x86\xda\x42\x3d\x0c\x91\x7a\x9a\xe2\x4f\x39\x37\x56\xc7\xef\x50\x17\x0d\x91\xfe\xba\x7e\x9a\x82\x67\x02\x09\x52\xd9\xda\xff\x58\xaf\x7f\x0f\x86\xa6\x5e\x90\x42\x64\xb6\xd6\x6d\xa4\xdc\xee\xfa\x5f\x50\x42\xdd\xd4\x23\x34\xe6\xc5\x96\xa1\x7f\xc7\xa0\x12\x91\x74\xa9\xe9\x49\x57\x91\x41\x40\x03\xbc\x57\x23\x99\x76\x26\x15\x68\xea\x4c\x4b\x83\xc6\x35\xd3\xc4\xbc\x1c\x14\xa4\x18\xa4\xdc\xd6\xa4\x9e\xb2\xf7\x2c\x3f\xb9\x74\x6b\x8a\x51\x44\x25\x3c\x57\xa2\x5d\x96\x79\x59\xcd\x06\x38\x29\x22\x23\xaa\xd5\xd0\x43\x7f\x5a\xb5\xb0\x4d\x75\xe4\x93\x4e\xb5\x53\x96\x1a\xf5\x21\x1d\x9b\x9f\x6c\xa7\xf0\x76\xfa\xbe\xd2\x3d\x34\x37\xe5\x4f\xc3\x0e\x43\x65\x2c\xfe\xe6\xcb\xf5\x83\xbd\x5b\xaa\x05\xa3\x35\x76\xb1\xdd\xfe\x3d\x22\x5d\x7b\x8a\x29\x5f\x51\x00\xf1\x98\x0d\xd8\x9a\xc0\x3d\x2e\x3c\x0b\x8d\x76\x7d\x74\x92\x87\xe2\x7e\x10\x93\x3a\xcc\xd7\x7b\xb9\x38\xdc\xbb\x13\xfd\xd4\x08\x58\x1b\x1d\xcb\x8e\x0e\x3c\xc1\xfc\xf1\x20\x65\x94\x9a\x37\x2c\xc8\x6f\x67\x51\x65\x2a\xfb\xcf\x08\xb4\x39\x7e\x31\x3c\x0c\x03\x61\xc1\x9b\x36\x27\xfa\xfa\xf2\x30\x57\x81\xe7\xa1\xf2\x94\x4d\xd3\x0e\x70\xf5\xed\xdf\x35\xe5\x34\xde\xb2\xcf\x8b\x25\x63\xdc\x73\x78\xa8\x39\xe5\xf7\x0f\xf0\x73\x71\x3c\xf6\xa6\xe8\xc0\x23\x2b\xc1\x45\xc9\x1c\x33\xca\x1c\xa4\x60\xfe\x8b\xf2\x08\x19\xd5\x51\xff\xbc\xf9\x3e\xec\x10\x3c\x0e\x23\x42\x2e\x6c\x9b\x2e\xcf\xc4\x63\x6e\xdc\x88\x40\x29\xc3\x8d\xa1\xec\xc1\x4c\x8a\x9f\xc7\x28\xac\xf0\x1c\xf9\x97\x3a\xc4\xdd\xd5\xbb\x48\x84\xa0\xfe\x71\xa4\xcb\xae\x3f\x1d\xf3\xa0\x7b\x30\xc6\x0c\x73\xf1\xb3\xcc\x4f\x07\x9a\x43\x54\xaf\x79\xd8\x5f\x87\x71\x41\xbb\xfa\xed\x11\x65\x06\xf9\xcb\x8c\xa9\xe3\xfc\x8a\xc2\xd3\x24\x8e\xd1\xc1\x2d\xf3\xb1\x0e\x2d\xf0\x94\x87\xa4\xe3\xe3\x64\x1d\xe7\xe9\x40\xe3\x0f\x0d\xc2\x68\xa2\x9b\xfe\x79\x3f\x12\x0e\x05\x0e\xca\xe3\x51\x5f\xdd\x83\x0a\x28\x7d\x3d\xa4\xef\xbb\xa5\x94\x8b\x50\x3a\xff\xf8\x3b\x38\x90\xfe\xea\xfc\x43\x08\xee\xd1\x42\x43\xab\xcf\xfe\xf6\xfe\x65\xbb\xdb\xaf\xee\xb7\xa4\x4b\xba\x7f\x7c\x7d\xd8\xdd\x6f\x1e\xee\x9d\xd7\x3b\x70\x21\x21\xf0\x0d\xfd\x9e\xc0\x40\x68\xc8\x86\xdd\x53\x0b\x25\x28\x20\x5d\xfe\x3e\x58\x54\xb8\xd0\x66\x64\x65\xb2\xa4\x1c\x83\x83\xfc\xf7\x2c\xdd\xc8\x35\x95\x01\x23\x99\x12\x53\xba\xb6\x0c\x96\xc9\x27\x6b\x03\xcc\xc4\xa1\x87\x8f\xf9\x79\x79\x41\x59\x06\x2e\x53\x66\x18\x89\xf6\x65\x9d\x2f\x8c\xc0\x80\x2b\x4f\x13\xc4\xdd\x85\xf1\x06\x89\x38\x5f\xb9\xe5\x2a\x4e\x94\x0d\xfd\x6e\x32\x75\xaf\xba\x47\x56\xdc\x78\x9c\xc9\xf2\x70\x28\x8b\x5f\xaa\x5d\x00\x57\x10\x33\x03\x65\x3c\x5b\xfb\x81\xee\x32\x2a\x15\xc6\x1f\xc2\x76\xa4\x29\xf0\xdc\xb6\x43\x3f\x84\x0e\x6e\x63\x2c\xea\x8c\xf3\xe9\xa4\x19\x18\xed\xfb\x0a\x67\x28\x4d\x03\x56\x01\x70\x44\x93\x1e\xd9\x60\x53\x95\x23\x6b\x0e\xdb\x40\x47\x9e\x4b\x74\x53\xfd\xe2\x36\xcb\xf1\x21\x2b\x3e\xc6\xbd\x53\x47\xa9\x71\xe5\x1b\x22\x33\xdd\xb1\x84\x13\x1e\xc1\xa8\x78\x67\x6f\xe3\x09\xa0\x8f\x03\x26\x2f\x4b\xb3\x98\x38\xc6\x76\x4a\x30\x11\x64\x77\xcd\x34\xb2\x40\x8a\x76\x61\xed\xb9\xcc\xdd\xe9\xe0\x81\xa0\x3d\xe9\x01\xfe\x45\x89\x90\xdb\xb2\xea\x35\xb0\x00\x3c\xcd\x68\xc7\xf0\xb0\xbe\x5b\x3c\xec\xd7\x7f\x6c\xd6\x4f\xdb\xf5\x76\xbf\x58\xad\x5e\x1c\xb9\x1d\xc0\xb7\xd4\x5a\x63\x9b\xf2\x80\x9f\x8b\x42\xdd\xa2\x91\x95\xef\xe1\xac\xe0\x33\x4f\x1a\x27\x3b\x57\x3d\x1b\xa3\xad\xc0\x67\x3a\xe2\x63\x89\xb2\xf1\x7c\x01\xbe\x62\x6a\x50\x6e\xec\x87\xc6\xb3\x5e\xc1\xb9\x1e\x05\xd7\x10\xf8\x48\x8f\x66\x81\x33\xdb\x76\x3b\x62\x42\x55\xd7\x20\x34\xde\xda\x7b\x61\x4c\xcd\x9a\xac\xec\x9e\x29\x48\x43\x4a\x44\x4d\x15\x57\x46\x73\x11\x84\xe0\x27\x66\x5d\x78\x3d\xbe\x55\xa0\x70\x80\xcb\x87\x28\x32\x3c\x98\x37\x6c\xee\x8b\x6d\x53\x21\x1c\x26\x5a\x49\x00\x51\x1c\x10\x7a\x62\x4f\x35\xab\xf9\xf1\x00\x91\xd4\x1d\x1e\xc5\x94\xe5\x69\xcf\x3e\xac\x55\x40\xec\xa1\x29\xd7\x6d\x77\xd4\x81\xea\xec\xad\x3b\xa4\x23\x82\xea\xe9\xac\x50\x62\x42\xb7\x05\x48\xb8\xa4\xe8\xeb\x23\xcb\x73\x2b\xb5\xd7\xcc\x47\x3a\x90\x68\x03\xea\x7c\x2f\xbf\x1e\x4f\xf2\xdd\xba\x71\x39\x84\xc2\x6d\x59\xb9\xa0\xa1\x8d\x96\x08\xe7\xe3\x6e\x81\x85\x8c\xb0\x60\x65\x71\x0b\x59\x7e\xaa\xba\x77\x94\x26\x81\x9f\x8c\x28\xeb\xee\xb7\xeb\x61\xf6\x01\x52\xae\x51\xbb\x05\xf8\x09\xbf\xbe\x61\xae\xc8\x61\xe2\xca\x2b\xe3\x91\xb1\x88\xd1\x24\x17\x64\x51\x29\x96\x8c\x39\xfe\x02\x3c\xf1\x0c\xc7\xf6\xbc\x29\x8b\xff\x64\x93\xa3\x10\x7b\x72\x28\x5f\xdf\xce\x5c\x66\x06\x7c\xc1\x1a\xab\xcf\xac\x78\x7b\xfa\xab\x4a\x1c\x40\x22\x62\xe5\xca\xf7\x94\xc6\x57\xbf\xac\x81\x01\x28\x65\xd8\x15\xd5\xbc\xc9\x14\x80\x48\x53\xe8\x7d\xc2\xc7\x30\x6b\xdb\x44\xfa\x3a\x31\xce\x37\xff\xd6\x5d\x32\x05\x64\xec\x53\x16\xde\xb8\x9a\x9a\x0c\xdd\x78\x8c\x49\x61\xf6\xbc\xe4\x5a\x1f\x05\x93\xab\x92\x40\x36\x6d\xd7\x65\x26\xba\xd4\x32\x20\xf3\x99\xcd\xb1\xdc\x17\xc4\xfb\x3f\x11\xeb\xf9\x02\x7f\x0d\xc8\x8c\x0e\x44\xef\x97\x34\x36\xb3\x06\xd0\xa1\x22\x27\x7a\x68\x1a\x98\xd1\x95\x19\xbf\x08\x8d\x9e\x83\x46\x5c\x02\x2b\x85\x17\x87\x03\xfe\xc6\xfe\x38\x79\x1a\xe1\x71\xce\x79\x07\x34\x7b\x3c\x5f\xba\x5c\xd9\x86\x7e\x60\x34\x49\xd5\x7d\x91\x5d\x94\x0a\x06\x3b\x1d\xe1\x07\x82\x16\x8a\xed\x01\xaa\x66\xfb\xd5\x53\xc2\x44\x10\x1a\x37\xfc\x4b\x0d\x27\xdb\x20\xf4\x12\xea\xb3\x9f\x65\x1b\x93\xf7\x09\x30\x11\x7a\x92\xc0\x8f\xa0\xd4\xd0\xda\xe9\x74\x21\x45\xd4\x4b\xcb\x8d\xfe\x9f\xbd\x4c\xe4\x73\xda\x45\xed\xca\xb2\x39\x57\xc3\xd5\x4b\x44\x21\x92\x6c\xef\xa6\x22\xf8\x41\xb8\x5a\x6c\x36\x93\x37\x10\x25\x71\x1c\x4e\xd4\xec\xbb\xd3\x65\x12\x77\x1e\xbd\xab\xf2\x6b\x90\x7b\x14\x91\x14\x24\x43\xf3\xd6\xf9\x52\xb8\x03\xca\xa7\x0a\x12\x89\x0e\x5e\x88\xac\xf9\x57\x8a\xf1\x22\x96\xa6\x08\x57\x5b\x03\x94\x6e\xcf\x2b\xa7\x8c\x60\x10\xb1\x0e\x23\x8b\xaf\xe8\x85\xc8\xba\xf7\x1d\x6b\x45\x51\xdd\xea\xf9\xc7\xd3\x9e\x6e\xbd\x37\x53\x01\x91\xa4\x9e\xb2\x52\x82\x86\x94\x4d\xd8\x5f\x7b\x90\xa5\x29\x25\x61\x68\x9f\xf6\x82\xb5\x3c\x5d\xd9\xf8\x8b\xd4\x33\x66\x1b\x5b\xa2\x19\xb5\x33\xdf\x6c\x88\xdb\xb5\x56\x89\x25\xa3\x3b\x80\xc0\xf8\x2b\xa4\x81\xc1\x11\x7f\x61\xb6\xc1\xf1\x37\x4c\x43\xc1\x4d\xe9\x22\xcf\x0d\xb3\xcc\xeb\x0e\xa5\xc6\xb6\xf7\xfb\x7d\xd2\xfd\x09\x0c\x7e\xbb\x36\x11\xfd\x35\xf1\x96\xe9\xd3\x48\x8f\x80\xb6\xff\x53\x56\x55\xe9\xf9\xe3\xdf\x47\x1d\x5a\xda\xe7\x4b\x59\x1e\xea\xd9\x8d\xb5\x48\x35\x30\xcb\x69\xd9\x80\xfc\x80\xb7\x51\x85\x21\x89\xfe\x19\xda\xe4\x9c\xe0\x3e\x52\xc7\xc9\xb3\xe2\x63\x57\x1a\xc1\xfc\xb9\x4d\x91\xe0\x21\x10\x13\x75\x53\xe6\x50\x65\xf5\x6a\xfd\xc7\xff\xad\x94\x20\x78\xec\x13\xa8\x8f\x8a\x4f\xb7\xa7\x42\x5a\x16\xc4\x3f\x7d\xaf\xbb\x29\x1e\x3a\x48\xd1\xbd\x2c\x6f\xf0\x2d\x2b\x56\x17\x31\xb3\xe0\xa0\xa9\xf2\xb3\xc3\xba\xf1\x83\xf1\xfc\x2a\xda\x49\xc9\xa6\xad\x97\xef\xd0\x2e\x75\xd3\x54\x8d\x10\xa1\x09\x73\x1e\xe0\xa3\x7e\x3f\x64\xbf\xe2\xcf\x08\x91\x04\x91\x31\x5d\x6a\x70\xbf\xde\x7d\xeb\x74\xf3\xdb\x43\x21\xa1\x7d\x8f\x5d\x98\xb4\x2f\xf5\xbe\x19\xd4\xdc\x85\x48\x18\xb1\xce\x3f\x4d\x96\xbb\x97\xdc\xee\x1a\x08\xe5\x09\xc7\xf9\xa8\x09\xd5\x37\xfa\xea\x42\x05\xa4\x8d\x6b\xf5\xbb\x68\x55\xa1\xe5\xdf\x90\xcb\x27\xcf\xa5\x12\xda\x14\x37\x08\x87\x60\x74\x19\xe9\x49\x4a\xf4\x65\xf5\x06\xea\xda\x20\x58\x67\x37\xe9\x42\x32\x2f\xe9\x35\x90\xc9\x1e\x6e\x59\x76\xd8\x5d\xa1\x02\xe6\x3b\x3f\x55\xbb\x81\x9a\xdc\x84\x0a\x50\x04\xfd\xa6\xa7\x1a\x40\x9f\x26\xfd\x41\xc5\x2a\x89\x1d\x91\xf9\x5c\x4f\xaf\x23\x7d\xf2\x2c\x31\x40\x7d\xb3\xd1\x5b\x91\xa8\xd6\xa4\x7f\xa2\x54\xb4\x79\xde\x17\xf8\x35\x70\x69\xb5\x47\x35\x33\xe0\x5a\x93\xc1\x74\x62\xc7\x6b\xa8\x7a\x26\xc5\x70\x7d\xd1\xcc\x48\xda\xbe\x1b\xd9\xb3\xf1\x2d\xe9\xd4\x94\xca\x69\xa3\xef\x38\x02\xff\x4b\x5c\x96\xb9\x94\xf4\xbc\x88\x66\xb8\x03\xfc\xfc\x06\xf9\x27\x59\x16\xbb\x43\x31\x28\x07\x90\xd8\xfb\x7b\x2c\xea\x53\x85\xdf\xcb\x06\x7f\x94\xd5\x47\xbd\xcf\xac\xd7\x33\xa5\x81\xea\x9b\xb3\xef\xb9\x79\x48\xfa\x7e\x4a\x2b\x7b\x9d\xbd\x15\x37\x37\xcf\xab\x52\x9e\x0e\x5d\x31\x66\xb8\xdf\x92\x3e\x8b\x42\xe7\xba\xda\x5e\x7a\x00\x47\x94\x3e\x8f\xb4\x13\x69\x3a\x35\xa5\xd1\x1d\xeb\x0e\x62\x4c\x99\xb4\xbd\x85\x33\x6c\xbe\x6f\x2c\x70\x67\xfe\x39\xc3\x40\x10\xda\xd4\x08\x57\x6f\xca\x3c\x93\xe7\x49\x20\x3e\x94\x2b\x03\x19\x46\x06\xe4\x6a\x2b\xc4\x84\xe5\xb2\x98\xac\xbf\xc4\x79\xfc\xbd\x57\x1f\xb6\x13\xf6\x30\xdc\x97\x67\x42\xd1\x4e\x5a\xe9\x84\x32\xe8\xff\x3e\x61\x75\xbe\x3d\xd5\x59\x59\x10\x0f\x1f\x7f\x4e\x3a\xbc\x8c\x18\x90\x79\xe9\x16\x9b\xbb\x4c\x1b\x8f\x8e\x49\x0b\x2d\x9d\xa3\xc3\x13\xda\x1d\xfe\x58\xb9\x77\xd4\xa3\x65\x1c\x29\xda\x5e\x3f\x6f\x1e\x76\x83\x77\x1f\x8b\x94\xa8\x3e\x1d\x02\xe6\xef\xc1\x8e\x64\x12\x19\x67\xfb\x37\x6c\x6e\x5e\xef\xe7\x07\xa3\x4c\x22\x4e\xe3\xe4\x69\xfd\x63\xe9\x7e\x30\x01\x4d\x71\xc7\xf6\xc7\xfd\xed\xee\xdb\xf4\x66\xa7\x09\x73\xc9\x78\xe2\x14\x0d\x9d\x36\xf7\xd4\xd3\x74\x72\x82\x4c\x09\x44\x65\xf2\x3e\xbb\x97\xc5\xd3\xf6\x76\xfd\xb2\xdf\xbc\x3c\xff\xf1\x27\xed\x81\xdd\x8d\xa4\x11\x12\xf4\xfa\x40\x48\x62\x2b\x02\xf2\x17\x65\x64\x99\x2a\x4d\x3a\xb9\xab\xf5\xf7\xf5\xc3\xf3\x66\xfd\xb2\x5f\xbe\xba\xca\x93\xe4\x5e\x44\x10\xa7\x3d\x92\x51\xe0\x68\xce\x90\x3c\x8e\x69\x43\x01\xd6\x83\x73\x5f\x0f\xa4\x74\x5c\x9b\x34\xa5\x3c\x6f\xa9\x35\xcd\xda\x66\x15\x42\x63\xac\x39\xdc\x5b\x49\x88\x0d\xd2\x93\x76\xc1\xe3\x70\xca\xb5\x40\x41\x0c\xb4\x63\x8e\xca\x72\x92\x26\xcf\x22\x53\xf4\xed\xa2\xb6\xbb\xb4\x7e\x05\xa9\xbc\x84\x52\x5e\xbf\x97\xc5\xdb\x3f\x06\xee\x06\x20\x55\x14\x51\xb2\x67\x93\xfd\x2c\x17\x15\x16\x40\x46\x20\xe3\xd8\x46\x2a\x61\xc4\x26\xcc\x2a\x63\xb7\x73\x5b\x84\x4a\x4e\x18\x29\x12\xa3\x38\xb6\xa8\x8a\xd7\xc2\x49\x8e\x4c\x6e\x06\x75\xec\x5b\x71\xf9\xac\x18\xf2\x15\xa4\xf6\x53\xc9\x3a\xe1\xcf\xe6\x7d\x78\xa3\x9a\x47\xa9\x15\xbc\x78\xbd\xb7\xc2\x70\x4b\x2a\xd2\x37\x17\x2e\xc2\xe3\xdf\xd3\xe0\x51\x54\x77\x20\xcd\xee\x55\xe7\xd2\x05\xca\xf3\x83\x54\x59\x48\xd0\x29\x87\x06\x17\xea\x5f\x44\xdb\xbc\x25\x84\x7b\x7d\xdb\xf6\x50\xf2\x9b\x77\x7d\x3a\xec\xe1\x21\x2e\x52\x52\x5e\x68\x08\xb9\x56\x75\xa7\x77\x96\x04\xe5\x87\x69\x60\xa3\xe5\xc7\xb2\xa0\xa2\x47\x0e\x75\xbd\xcd\x48\xa8\x65\x7e\x4e\x54\x41\xc0\x52\x23\x3b\xfa\xd9\x0e\x0e\xb5\x30\x95\xe5\xac\x8d\x81\x1b\xcc\xf3\xec\x0d\x0b\x89\x5b\xd0\xd8\x9c\x57\xa8\xb1\xe8\x70\x69\x2a\x88\x62\x62\xb2\x6d\x2a\xac\xc7\x36\x1a\xa0\x02\xc6\x08\x9f\xde\xce\xfe\x34\x44\x8e\xcd\x44\xf7\xcc\x36\x0c\x3d\xa9\xbb\x05\xa6\xd3\x4e\x69\x4a\xa3\x57\x0f\xb2\x21\xee\xee\x5e\xbb\x6d\x94\x3b\x2d\x0d\x28\xf5\xbb\x29\xbf\x0c\xfc\x17\xea\x77\x54\x37\x3d\x6a\x4e\x85\xdc\x27\x46\x3d\x79\x6b\x5f\xc1\x39\x5d\x96\x89\x55\x1c\x18\x55\xbb\x7d\xd6\xe0\xc1\x48\xce\x1b\xc9\xae\x49\x48\xa0\x62\x6e\xea\x54\x64\x80\xa9\xa8\x08\xe7\x56\x4d\x15\xcb\x80\x0a\xa7\x9f\xed\xf8\x5b\xd4\x4d\x55\x0e\x07\xa1\x8a\x65\x88\xd6\xf4\x25\x2b\xce\xdb\xf7\xb2\x6a\x28\x7d\x38\x0e\xfd\x5c\x63\xad\x08\x34\x41\x26\xec\xdd\xb7\x4e\x44\x44\x58\x80\x53\x4d\xba\xe7\x9b\xb2\xce\x9a\x4f\x9c\xdd\xcf\x2a\x16\x84\x04\x5e\x22\xd0\xc5\x6b\x51\xf7\x1b\x36\xc5\x40\x51\x42\x08\xb2\x9f\xdd\x9f\xa4\x91\xfc\x1b\x66\x41\xae\x23\xf9\x67\x67\x3b\xc5\x30\xa2\xf5\x6a\x01\x8e\xe9\xa1\xd2\x44\x44\xb1\x0d\x07\xdb\xc8\x95\xc6\x6b\xe8\x8e\x72\xcf\x54\x90\xbf\xba\x22\xc7\x8b\x49\x71\xd6\x7d\x0b\xdf\x18\xe5\x40\x9e\x8f\xfd\xef\x40\x71\xab\xbe\xec\x26\x7a\x92\xe9\x71\xc7\x52\x23\xc5\x6a\x47\xc4\x4d\xd6\x8c\xfa\x29\xe7\x3e\x85\x90\x4a\xe9\xfe\x4f\x9c\xe0\x96\xe2\x54\x15\xa3\xb4\x93\x3b\x0e\x91\x63\xea\xaf\x4e\x58\xdf\x4f\x38\x63\x0a\xd2\x58\xda\xe3\x36\xa3\x6d\x41\xe7\xa9\x6b\xa0\x52\x6d\xa1\x41\x4f\xf8\xb5\x6d\x2a\x44\x03\x72\x18\x7d\x77\x11\x18\x8f\x7c\x13\x72\xd2\x4d\x0f\x91\x10\xb6\x95\x4c\x39\x0a\x97\x12\xc1\x7b\x59\xb6\x3b\x94\x2b\x20\x68\x25\x85\x61\x04\x8a\xd3\xe1\xb8\x29\x07\x32\x75\xa0\x24\x1a\x49\x65\xda\x69\x3b\xb8\xaf\xcd\x3a\xd8\x26\x8a\x23\x6d\x87\xdc\x37\xda\xd7\xe5\x01\xf7\x60\x18\x85\xf3\xfd\x40\x69\x4d\x74\x6e\xea\x79\x03\xf6\xa5\x3d\x8c\x2a\x75\xc2\x22\x8f\x58\xd7\xf0\x86\xf6\xab\xcf\x8c\xd3\xe1\xbb\x41\x8f\x05\x84\xe6\x6e\x03\xb2\x1f\x97\x61\xaf\x6d\xe5\x0b\x45\x14\x81\x85\x52\xcb\xf7\x6c\x2a\xd9\xeb\x1a\x29\xa5\x3a\x48\xd9\xfe\x68\xb2\x2d\xb3\x11\x02\xfa\xda\x77\x92\x9b\xdb\xf7\xf2\x68\x36\x2e\xa3\xfb\x0a\xfc\x28\x36\x18\x13\x27\xf3\x62\x7c\xe7\xed\xd3\x8d\x1b\x87\x0c\x4c\x99\x84\x26\x99\xb6\xcf\x66\x32\x3b\x0e\x21\x11\x18\x32\x6d\x78\x1e\x47\x2c\xd4\x54\x0b\x06\x43\x6e\x44\x79\xeb\x52\x37\x96\x16\x77\x57\x3a\x9b\x16\xc0\x50\x33\x52\x22\xbb\xab\x20\x87\x9f\x59\xd9\xa1\x36\x31\xe6\x26\x6e\xee\x59\x53\x46\x17\x78\xfe\xb1\x13\xdf\xa7\x5d\x08\xa1\xcb\x69\xd8\x3e\x42\x23\xdf\xef\x36\xed\x82\x65\xa2\xe1\x99\xcd\x0b\x26\xda\x4b\x6d\xe4\xbe\x95\x15\x1c\x1f\xb3\xc2\x5a\xf9\x5f\x44\x0c\xc8\xfa\xe5\xf6\x11\x0f\x75\xf6\x9f\xee\x19\x19\x7a\x14\xfd\x98\xb4\xfd\x22\xcf\x27\x67\xa6\x69\x42\xa8\xee\xf5\xee\xdb\xfa\x65\x04\xe9\xc0\x94\x6b\xc3\xf9\x74\x7c\x3d\x42\xaf\x90\xb8\x3c\x25\xd3\x27\x17\x02\xcd\x6c\x34\x70\x8b\xf8\x83\xac\xbb\x27\xf6\x66\x80\x5c\x86\x46\x41\xa3\x2a\x4b\x6d\x97\x3d\xf7\x73\x1c\x43\x66\x61\x64\x17\x3a\x81\x80\xed\xa4\x30\x40\x6f\x8e\x47\x31\x82\x30\x7e\xd5\x94\xf1\xb6\xcb\xe5\x95\x6c\x37\x0a\x5f\x72\xc7\xa5\x1b\x3d\xaf\x48\x13\x62\xf3\x59\x24\xa1\xcd\x44\x60\x3d\x85\xbf\xd9\xe6\x32\x8a\x69\x05\xb1\x3d\x60\x5d\x4c\xcd\x9b\xfb\x9f\x94\xcc\x28\x40\x89\xd3\xf9\x8f\x4e\x49\x63\x36\x72\x47\x99\x1a\xa1\x82\x43\xe6\xaa\xcf\x06\x7f\xd8\x46\x79\x5d\xff\x93\x92\xfb\x96\xbb\xb1\xfc\xdd\x0c\xa3\xf1\x55\x54\xc2\x48\xeb\x6d\xbd\xfb\x66\x05\x7e\x3b\xf8\x0a\x62\xa4\x54\x62\x4d\xde\x97\xed\xa0\xbd\x72\xd3\xed\x07\x21\x2f\x5d\xfc\xc4\x3c\x18\xa2\x96\x11\x95\x31\x46\xaa\xa0\x41\x52\x02\xa7\x12\x8b\x03\xa1\xa3\xf6\x8c\x73\x60\xdd\x94\x47\x5b\x83\xb9\x83\x69\x60\x89\x3a\x52\x4e\xf9\x6c\x09\xd5\xd4\x37\xf8\x97\x9b\x20\xd4\x71\xc2\x8d\x8f\xd5\x20\xcb\xf2\xd0\xc6\xdb\x6e\x6e\xd4\x9e\xcf\x1c\x33\xf2\xa5\x94\x1f\x38\x32\x69\x01\xed\xc5\x5c\xf6\x35\x81\xbb\x13\x5a\x7e\xa6\xcd\xa8\x8e\x53\xc5\x0e\x93\xa1\xfd\x10\x22\x66\x99\x04\xd5\x27\x79\xc7\x9d\x5c\xce\x5a\xfb\x89\x8f\x0e\xcc\xfb\x9e\x55\xca\x80\xa7\xdc\x41\xd0\xb4\x4e\xda\xf7\xb1\x1f\x99\x2a\x80\xf6\x95\x01\x93\xb4\x1f\xe5\xdc\x7e\xf1\xa1\x28\x8a\x0e\x02\x4d\x65\x17\xaa\x37\x65\xfa\x3c\xde\xe1\xe8\x30\x08\x99\xe7\x94\xfd\x8c\x0a\x9b\x4b\xa3\x8d\x5e\x9b\x8e\x98\x00\x23\xde\x2a\xef\xb0\x78\x00\x71\x0b\xd3\xa9\x44\x47\xa9\x71\x65\xa2\xfa\x8b\xc6\xaa\xea\xa4\xaf\xa7\x0d\xb9\x51\x5c\xba\xb9\x7f\x1a\xca\xb9\x82\x8e\x74\x42\x49\xa7\xcc\x00\xea\x47\xc2\xb6\xa0\x93\x08\x20\xee\x95\xf2\xa1\x38\xaf\xc6\xc4\x23\xd7\x8e\x7b\xb4\x8b\xb9\x79\x78\x5e\xfe\xbe\xfc\xb6\xb8\x7f\xda\xaf\xd6\x9b\xe7\xed\xfd\x6e\x7f\xb3\xde\x2d\xf6\xfe\x63\x77\x45\x09\x94\xfe\x98\xd1\xf4\xd0\x09\xc6\xb4\xcb\x5e\x21\x1e\x6f\x2a\xe8\xbf\x07\x4b\x3c\xe5\x0d\x14\xf9\x92\xee\x80\xf6\x89\x27\x6d\xf7\x92\xe3\x9b\x4a\x75\x64\x44\x5d\x08\xdb\x49\x15\xdc\x1e\x11\xa4\x79\xea\x07\xba\xc7\x98\x65\x45\xfb\xd6\xb2\x4f\x5c\x57\x15\x4c\xc1\x90\x9a\x83\xd1\x47\x73\x37\x10\xb8\xc4\x8f\x06\x5f\x05\xca\xc6\x4f\xa3\x15\x4f\x43\x6c\x41\xcb\x6d\xa7\x3d\x55\xa6\xa8\xe9\x6c\x29\xc7\x77\x0a\x18\x79\x1d\xcd\x63\xf7\x5e\x61\xfd\xde\x86\xad\xe3\x46\x02\xcc\x0d\xb7\x1b\x9e\xc5\xdd\xaf\x8c\x57\x40\xcb\x38\xa1\x0b\x0e\xcc\x1e\x5f\xa0\x31\xf2\x5e\xd5\x61\x00\xdd\x9d\x9d\x4d\xb4\x4c\x22\x5a\x04\xd7\x2f\xcb\x20\x08\x1f\xb3\x82\xbc\xf8\xa9\xdf\xcc\x4a\xc2\x69\x15\x9b\x6a\xfc\xfa\x27\xac\x5f\x5d\xee\x40\x2b\x66\x4a\x8c\x2f\xeb\xed\xfa\xe5\xfb\x7a\xb5\x7f\xdd\xdd\x3f\xdc\xef\xfe\xdc\xdf\xbd\x3c\xbf\x6e\x5c\x2b\x84\xc0\x88\xc0\x1c\xe0\x67\x10\x27\x73\xfa\x3c\x5a\x7b\xa6\x7f\xb9\x7e\x8e\x73\xd1\xf9\x70\x9c\x09\xcf\x4b\x80\xc5\x5d\xe9\x7e\xf4\x2e\x85\xe7\x31\x23\x6a\xd2\x06\x37\x77\x4f\x46\x86\xc1\xaa\xe7\xb9\x16\x22\x25\x8a\x52\x1b\x24\xe9\xb2\x3a\x90\x01\x5b\x66\xfd\xed\x46\x31\x83\xf0\x3c\x65\xe4\x7f\xf7\xc7\xca\x20\x99\xdb\x57\x6d\xfc\xbb\x06\x01\x8e\xf0\x82\xd8\x47\xc7\x5b\x24\xd9\x33\x7c\xac\xdf\x06\x95\x23\xe1\x85\xb1\x41\x4a\x18\xd8\xf9\x6d\x59\x61\xf6\x56\xdc\x54\x99\x7a\x1b\x2f\xa2\xc2\x8b\x7c\x4e\x19\x5c\x4d\x86\x6a\xd8\x80\x0d\xf9\xdd\x95\xa2\x30\xa1\x62\xd2\xcb\xeb\xd3\x7a\x30\xe0\x85\x17\xb5\x93\xb9\xf5\xf2\x20\x16\xa9\xd3\xbf\xb0\xc7\x63\x3f\x89\xed\xab\xa6\xb0\xee\x16\x71\x6e\x4a\x11\x5e\x1c\xf9\x86\x20\x6d\xf4\xab\x8c\xca\x5c\x56\xbc\x75\xb1\xdd\xe5\x19\x5c\xe9\xde\x53\x6c\x5b\x5f\x92\xf7\x06\x03\x48\x78\xb1\x94\x0e\xdd\x3e\xb2\x7d\xff\xe5\x72\x23\xbc\xc4\x43\xaa\xe4\x74\xbd\x8e\x72\x5c\xdb\xfd\xed\xf3\xcb\xfe\xf6\xfe\x69\xf1\xb4\xbc\x5f\x3c\xec\xef\x9f\xb6\xbb\xfb\xdd\xeb\xee\xfe\xf9\xc9\x3d\x79\x92\x1a\x54\xc5\x00\x23\x78\x81\x1a\x12\x5e\xa2\x3d\xc3\x53\x2e\x6d\x48\xe4\x90\x86\xbf\xaa\x2f\x09\x8f\xa5\xda\xa8\x89\x97\x6f\x6f\x39\x39\x4a\x5f\x94\x58\x85\x97\x06\x8c\x3a\x08\xd4\xef\x12\xea\xf7\xd1\x77\x4b\xc3\x88\xd0\x7e\xd6\x44\xca\xe4\xc7\x06\x9d\x2b\x8d\x22\x62\x68\x35\xe5\x6b\x56\x34\xbf\xcd\xbd\xd0\x94\x81\x8a\x47\x68\x0b\x0a\x4f\x37\x58\x75\x92\xbe\xc2\x4b\xa5\x24\x5f\x0b\x2c\xfe\x95\x15\x3b\x84\xc3\xa8\xc8\x23\x3c\xf0\x52\xe6\x4c\xf4\xce\x47\xec\xad\x43\x84\x07\x60\xd8\x6a\x37\x59\xd3\x7c\x41\xd3\x74\x7f\x57\x81\x91\xbf\x2a\x65\x06\xf9\x23\xaa\x0c\x4c\x96\xe1\xd2\x4b\x5a\x78\xd2\x8f\xe9\x39\xde\xb3\x49\x11\x69\xec\x6a\x98\xba\xe6\x1c\x48\x21\xcf\x20\x6b\xb6\x38\x89\x99\x85\xa7\x62\x9f\xc5\x63\xa7\x82\xc9\x50\x52\x4c\xd2\x06\xc1\xb1\x99\x4a\x92\xc0\xc4\x91\x2f\xeb\xe8\x3d\x2a\xe1\x91\xbf\x91\x73\x01\x20\x1e\x2f\xed\x0c\x17\x56\xfc\x65\xbe\x0f\x28\xc5\x7c\xbb\x03\x5c\x88\x2c\xcf\x7a\x87\xeb\x2e\xef\x98\x5e\xfc\xf3\xf2\x32\xe8\x07\xb4\x33\x2b\x8f\x58\xac\xca\xb2\x1b\xf2\xe8\x27\x54\x3d\xe8\x2c\xa2\xa8\x86\xbb\xa2\x85\x74\x6e\x9e\x17\x1e\x4a\x4e\x1f\xac\x99\xab\x91\xfa\x2e\x4d\x24\x3c\x54\x8a\x3a\xaf\x91\x22\xfe\x06\xf5\xfb\x42\x29\x97\x1a\x0c\xbc\xd1\x07\xd1\xc2\xa7\xe9\xdc\xac\xab\x5b\xd0\xb8\xc5\x62\x4a\x56\x6f\xdb\x84\x94\xba\x5f\x21\x09\xc9\xaf\xff\x6f\x24\x29\xe1\xfb\x5e\x64\xb5\x98\xde\x5e\xf0\xcd\x64\x08\xe7\x3e\x9a\xef\x07\x9c\xb6\x3c\x9b\xaa\xfc\x17\xca\x66\xdf\x59\x1f\x0d\xae\x85\x40\x40\xdb\xb6\x2f\x5d\x5a\x41\x09\x3f\x08\x98\x72\xae\x2b\x6d\x8c\x6c\x43\xae\xf1\x46\x22\xed\x1a\x1b\xca\x8c\x2c\x0f\x87\xac\x69\x10\xff\xbb\xcc\x8a\xef\x65\x33\x81\xea\x09\x3f\x08\x85\xa9\x3c\xbf\xfc\xb1\x5f\x6c\xb7\xeb\xdd\x9e\x14\x7d\xdc\xd1\x24\x24\x0c\xb6\x3e\x15\x0a\xaa\x0c\x3a\x69\x0b\xe1\x07\x9c\x13\xa5\x01\x4c\xde\x65\xa2\x86\xd8\x27\x13\xfa\x09\xc6\x0f\x93\x84\x50\x86\xe2\x74\xbe\x84\xea\xb7\x87\x85\x8f\xbd\xdc\xdb\x48\xad\x60\xfc\xaa\xe2\xd8\x38\x2c\xef\x36\xbb\xee\x4d\x95\x6e\xcf\x23\xfc\x58\xb0\xc0\xd6\x3d\x56\xf4\xa2\x47\x6b\xb3\x9f\xc4\xc0\xfa\x78\xfe\x61\x10\x6f\x4d\x7e\x26\x51\x1e\x25\x8f\x8c\xf9\xb5\x21\xf4\xcf\xf7\x03\xe6\x07\x94\xa6\x77\xc2\x4a\xb6\xd3\x75\x47\x19\xa5\x2a\x28\xad\xa8\xc6\x33\x9a\x9f\x7a\x82\x64\x74\xdb\xd8\x75\xf1\xf8\xfc\xfa\xb4\x0b\xba\x43\x92\x53\x7e\xf4\x98\xc3\x39\xba\x72\x8f\xa9\xe6\x44\x47\xb6\x1d\xfe\x98\x67\x0d\x14\xaa\xfd\x7d\x77\x15\x1e\x30\xd2\x09\x5d\xb6\x73\x77\x27\x45\x29\x7c\x60\x3e\xc5\xbb\x6d\x20\xf7\xd1\x46\x58\xfb\x3c\xfb\xb8\xe8\x1f\xc2\x6e\x9f\x8e\x15\x7e\x66\xe5\xa9\x1e\x3f\x99\x50\xca\x37\x5a\x70\x26\x3e\xbb\x73\x07\x64\x14\x6b\xde\xe1\xcf\xda\xee\xda\x3d\xb0\x8c\x43\x34\xd4\x2a\x37\x23\x22\x09\x08\x4f\x7e\x58\x79\x9a\x96\x0b\xc8\x8f\xef\xe0\xce\x55\x49\x2a\x8c\x3a\xe1\xa9\x68\xaa\xb3\x11\x4d\xb9\x5f\xb9\xc3\x88\x82\xf6\x19\x8f\x24\x26\x9b\x75\x43\x47\x27\x09\xa5\x19\x81\x68\xa9\x6d\x97\xc1\xa2\xb9\x39\x5f\xe6\x26\x44\xe0\xf9\x09\x45\x5e\x8b\xe3\x31\x93\x75\xef\x3e\x28\x02\x5f\x4b\x6e\x97\x9e\x26\x3b\x60\x9f\x21\x17\x41\xe0\x85\x81\x11\xd1\x29\x1a\xc8\xdb\x39\xb8\x13\x16\x76\x4d\x42\x8f\x11\x53\xc3\x76\x7b\x94\x9f\xeb\xe6\xdd\x5a\x96\xf6\x43\x24\x08\xad\x9b\xd5\x67\x86\x5f\x5b\x59\x56\x93\xc0\x2b\x08\x39\xa7\x27\x94\xa2\xcf\x39\x4c\x5a\xc8\x98\x30\x29\x99\x2c\x5f\x4e\x79\xbb\xbb\xfb\x5b\x6c\x68\x82\x51\x99\x44\x3a\xfe\x87\xa8\x28\x8b\xaa\x82\xb3\xb1\xb6\xbc\xd0\xcd\x10\x41\x94\x68\x05\xa3\x2c\x72\xfb\xd8\x13\x1c\xa6\x08\xa2\xd4\x38\xad\x41\x4d\xb5\x69\xca\x0c\xcc\x76\xe4\x20\x16\x91\xc7\x2c\x13\xc6\x14\xfd\xdd\xab\x8b\x65\x48\x79\x8e\x7f\x11\xb7\xda\xe1\x8e\x67\x91\xd2\x22\x88\x31\x31\xcc\xa6\xa6\x1a\xf6\x66\xb7\x98\x04\x49\x04\x24\x56\x57\xfb\xde\x50\x52\x4a\x04\x4c\xa4\x4a\xf5\x88\x8d\x71\x40\x1e\x70\x1e\x51\x9e\xe2\xfe\xee\x76\xf9\x97\x64\x10\x11\x70\xad\xcc\xbe\xd6\xd6\xec\x57\x99\x91\x69\x5b\x96\x1f\x57\x96\xe7\x80\x6b\xf4\x03\x0b\x51\x7a\x87\x0a\xdf\x2f\x45\x56\x44\x00\x9e\x24\x29\xf5\x6f\x17\x56\x4f\x6e\x67\xe4\x1a\xca\x94\xf8\x31\x3f\xee\x9f\x28\x00\x5d\xac\x56\x2f\xeb\xed\xd6\x1d\x16\x68\x2a\x5b\x6f\x4e\xcc\xfd\x16\xb1\x43\x52\xb9\x91\x1a\xc8\x08\x03\x2b\xd9\x7a\xcc\xf1\xe7\x56\x42\x8e\xcf\xa2\xde\x4d\xbd\xf7\x45\xa0\x7c\x83\x16\xdc\x54\xe8\x28\xf2\x9b\x13\x99\xf7\xcc\x7f\x6c\x15\xa7\x54\xce\x12\xd0\xc8\x77\x27\xc1\x30\xfd\x54\x18\xf8\x94\xb4\xed\x22\x8a\x71\x2d\x42\x04\xed\xde\x0d\x87\xa4\xf6\x89\x98\xdd\xd5\xd2\x53\x7b\x6a\x4c\xc2\x31\x84\x19\x5c\xbf\x2c\xfd\x24\xb6\xc2\x35\x35\xd1\x8e\x35\xc8\x09\xab\x25\xb2\x67\x6a\x5f\x19\x17\x7d\xc8\x3f\x8c\x2f\x96\xbd\x9d\xd0\xf7\x39\x95\xc1\x0f\xd4\x75\x46\x55\xa6\xd1\xd3\x87\x7e\x9a\x1a\xc7\x7a\x94\x7f\x63\x78\xce\x0f\xd7\xd0\x57\xca\x67\x7d\xe9\xd6\xdc\xea\x6d\x55\x1e\x2e\x95\x17\x86\x5d\x33\xf4\xb5\xf0\xac\xbd\x18\xd6\xf5\x7a\x22\x3d\x28\xc2\x20\x31\x3d\x87\x40\x03\xe3\x95\x33\x0c\x84\xc1\x98\x56\x24\xd4\x7e\xbf\x7c\x76\x8f\x1e\x7a\x8c\x77\x0a\x41\xdf\xdb\x2f\x01\x7f\xa9\x8d\x32\x79\x9e\x30\xe6\xda\x00\x63\x3e\xf0\xa9\x2c\x6e\x4f\xc5\x5b\x26\x2e\x8d\x51\x6d\xeb\xd8\x0f\x89\x29\xe8\xba\x84\x21\xe6\xcd\x76\xb6\x30\x8e\x42\x6d\xa1\xac\x94\x1d\xbd\x34\x28\x13\x61\x0c\x5e\xe8\x2a\xff\x5f\xa8\xc8\x44\xa9\xcb\xa2\x8a\x76\x37\x8b\xc6\x17\x8e\xfc\xe7\x9f\x7f\x05\x92\x16\x21\x93\x48\x9b\x98\x03\xfc\x5c\x37\xef\x33\xb1\x5c\xc8\x30\xa2\x05\x83\x0a\xa6\x54\x4f\x2a\x4b\xdd\x6e\x68\x06\xf4\xc4\xc9\x70\x08\xd3\x50\x10\x2e\xea\xf1\xfc\x84\x5f\xc3\xcd\x59\x98\x0a\x23\x2d\xde\x60\xdd\xbc\xd4\x6d\x08\xe0\x8e\xf0\xd8\x40\x7e\x85\x85\xb7\xb6\xd1\xae\x91\x0c\x98\xb1\xda\x13\x21\x07\xa3\x1d\xe7\x34\x06\xdc\x02\x7d\x5f\xd4\x37\xe7\x2b\xd0\xea\xc9\xb3\x73\x89\x54\x46\x79\x74\x24\x84\x60\xb6\xd4\x21\x42\xc1\x42\x87\x8d\xd9\xe4\xd0\xe8\xb2\x3a\x0c\x76\x73\xa1\xf4\x05\xf5\xa8\x75\x73\xd8\x60\x75\xd3\x48\x77\x40\xa5\x51\xe0\x0f\x6c\xd4\x17\xc5\x1b\xe6\x4b\xa8\xd4\x96\xec\x24\x5d\x33\x64\x9a\xd0\xd6\xba\xac\xde\x7e\x25\xd5\x2d\x42\xad\x0c\xc3\xe4\x54\xa3\x32\xe0\x73\x1c\xf2\x1d\x44\xe4\x85\x8c\x32\xb9\x36\xd5\xf0\x27\xc2\x95\x9e\x16\x79\x98\x92\x94\x5f\xdd\x94\x47\x17\xe1\x76\x57\x41\x45\x1e\xf3\x3f\xf0\xae\xcc\x87\x64\x46\x11\xf9\x81\x0e\x8d\x02\x10\xa1\x84\x57\x98\x67\x9f\x78\x85\x0d\x2f\xa2\xc0\xd3\x68\x52\x24\xd5\x27\x56\xe3\x68\x32\x0a\x02\x34\xb0\x42\x2c\xac\xcd\xe5\xa2\x50\xd6\x12\x69\xf4\xfe\xa3\x88\x49\x67\x29\xec\x32\xc1\x26\xbb\xfa\x4b\x60\xb8\x88\xe2\x88\x51\xdc\x2f\xf3\xd2\x88\xe9\x16\x98\x5f\x24\xf4\xae\xa8\xdc\x0c\xa0\x68\x22\x8a\x13\x53\x05\x22\xc3\x34\x07\xed\x99\x0d\xca\xa2\x18\x42\xcf\x6e\x1c\x36\x39\x14\x38\xe9\xb7\x11\x8b\x3d\x32\xd6\xdb\x7e\xbb\xdf\xf5\xf2\x81\x22\x62\xa9\xd9\x39\x52\x5d\x62\xf7\x55\x0e\x2a\x13\x22\x62\x82\x4b\x23\xb7\xd5\x49\xdf\x94\xd5\x35\xfa\xab\x88\x52\x8f\xd1\xfb\xfa\xb6\xdc\x8d\x3e\x5e\x1a\x45\xba\x4b\x0e\x52\x45\xf5\x96\xa8\xa6\x93\x5b\xe4\xbe\x22\x0e\xce\x70\x36\x18\x2a\x5f\x51\x0b\x4a\xbf\x28\x38\xd7\xbb\xf2\xb5\x30\x5c\xa6\x2b\x77\xc3\x7d\x4c\xed\x02\xfe\x54\x36\x57\x62\x8a\x08\x14\xe7\xc6\xa2\xa4\xa8\x9b\xea\x24\x29\xae\x73\x6e\xe5\x53\xc0\xb4\xa9\x79\x4c\x55\xab\x67\xe4\x1c\xec\x1e\x33\x12\x22\x25\x28\x95\xc8\x9a\xfa\x23\x1b\xbd\x14\xa1\xcc\x20\xed\xf7\x16\x15\xca\xb2\xba\x12\x0e\x44\x32\x0e\x08\x34\xed\xc2\x25\x82\x58\x64\x65\xf1\x5c\xdc\xe0\x3b\xe4\xba\x0f\x2b\x67\x75\x25\x44\x24\xc1\xa4\x8d\x9e\x69\x19\x70\x7f\x44\x96\x18\x1b\x9f\x97\xf5\xcf\x23\x16\x75\xf6\xe9\xd8\x9f\x93\xb3\x75\x8a\x8e\x2c\x63\xaa\x96\x73\x35\x11\x11\x29\x3f\xa0\xe1\x6d\x7d\x19\xa8\x68\xb3\x9b\xf6\x55\xb4\xda\x93\x35\x36\x37\xbb\xdd\xf6\xd2\x48\x4a\x44\x28\x05\x21\xf4\x97\xcf\x4f\xbb\x97\xc5\x72\xb7\x1f\x47\x67\xb1\x9f\x2a\x31\x34\x7d\xbe\xa6\xcf\x2f\x62\x5f\x25\xb4\x79\x7c\x3e\xe2\x40\x59\x52\xc4\x01\xfa\xb6\xce\xf1\x89\x5b\xfa\x92\xc3\xea\x80\x88\x43\x2f\x20\xf8\x52\x81\x3f\x9b\xb5\xcd\x1a\xb9\x43\x89\x0a\xb4\x83\x6a\x69\x38\xe5\xcd\x20\x5d\xe8\xda\x30\x8f\x60\x17\xeb\xf5\x82\x86\xdb\xf8\x68\x14\x6a\x65\x68\x15\x9f\x59\x4d\x86\x09\x37\x24\xc2\xee\x7e\x21\xf6\x99\xc1\x3f\x14\x70\xac\xdf\xcb\x2b\xd5\x57\x11\xc7\x11\xa7\x48\xc4\x88\xdb\x0e\x4c\xc9\xff\xeb\xa2\x04\x2e\xe2\x58\x98\x4a\x88\xd9\xe2\x65\x35\x3e\xe1\x4f\xda\x47\x74\x8b\x6e\x9c\x30\x2f\x10\x4e\xf7\xeb\x07\xe2\xc7\xe4\xc9\x13\x19\x90\x43\xc1\x4d\x96\xe7\x99\x71\x8a\xeb\xb7\xba\x71\xa2\x02\x72\x97\x31\x18\x91\x5b\x23\x69\x31\x79\x72\x26\x23\x23\x0d\x48\x99\x85\x4d\x55\x1e\xca\x76\xeb\x7b\xdf\xe0\x54\x94\x66\x3e\x08\x8a\xd3\xc4\xc7\xf6\x16\x5e\xad\xac\xe6\x3c\x38\x5d\xc4\x29\xe7\x1e\x73\x64\x9f\xba\x99\x07\xa1\xb4\xcd\x8c\xa6\x13\x01\x33\x0d\xad\x7a\x55\xc1\xd7\x10\x53\x6b\x5b\x72\x9f\x53\x46\x65\xe9\x4f\x0e\x40\x60\x80\xec\xa4\xe3\xb3\x50\x06\xe1\xd8\xa9\x8e\xbb\x46\x2a\x72\xb7\x43\xce\x54\x7f\x21\x8a\x61\x66\x11\x17\xd8\xc4\x22\xf2\x29\xa2\x2e\x89\xfb\xf2\x7c\x6a\x64\x79\x70\xa5\xf4\xf1\xb4\x17\x8b\x98\x71\x8b\x42\x5f\xe6\x19\x16\xcd\xbc\x20\x91\x6b\xcd\x12\x4b\xcc\xa1\x0a\x8b\xac\x4a\x28\xea\xf3\xa6\xfc\xea\xbf\xaa\xe4\x11\xc9\xc5\xec\x5e\xee\x17\x0f\xdd\x1f\x35\x57\xf6\xb5\x6d\x8f\x20\xb1\x7e\xcf\x8e\x9b\xaa\x54\x27\xd9\x10\xca\xef\xe6\xfc\x58\x2a\xbb\xea\xf9\xee\xc7\x54\x1a\xc7\xc2\xf1\x82\x09\x55\x70\x7f\xd5\xf4\xd1\x9d\xa2\x23\x5b\x22\x56\x78\xa0\x1c\x13\x65\xc4\x97\x0e\xb4\x38\xf9\x14\x88\x3a\xb1\x18\x40\x95\x51\xcf\x36\x79\x6c\x77\xdb\x3a\xd0\x44\x80\x90\x90\xcb\x99\xfc\x5a\xac\x63\x45\xb9\xf3\x36\xd0\x59\x6c\xac\xc6\x80\x48\xbc\x84\xd3\x69\xc7\x32\x2b\x88\xce\xf3\x54\xaa\x49\xc7\x4e\xfc\x54\x9a\x8a\x1e\xd6\xcd\xe2\xa4\xb2\x4e\x05\x48\x24\x41\x28\x28\x4f\x43\xc9\xcf\xad\xf5\x19\x1f\x80\x86\x47\xcf\x90\x04\x91\x31\xcf\xfe\xd1\x9d\xae\x34\xed\xe1\xf2\xec\xc3\xd8\xb4\x4c\x67\x7a\xdb\x2e\x4c\x3d\x9a\xe1\x07\x52\x4b\x8f\x90\x15\xfd\x1e\x24\x09\x53\x8c\x7d\x27\xdd\x67\xb4\x34\xf4\xaf\x60\xc8\x22\x09\xd1\xa7\x35\x79\x7d\x38\xe6\xe5\x19\xdd\xe2\x30\xec\xda\x49\xe4\x03\x71\xd9\xdb\x71\xec\x2a\xf1\xfb\xac\xd8\x0f\x41\x88\x22\x89\x02\x41\x3e\x29\x77\xa5\x52\x24\x7f\xd7\xaf\x85\x49\x12\xa5\xd2\xb8\xf9\xe4\xed\x47\xad\x20\xcf\xea\x99\x2d\x48\x92\xa0\x76\x2e\xca\x46\xad\xe0\x77\x3c\xbb\xea\x50\xc2\x02\x46\x4b\xc6\xe1\x7c\x93\x0d\x76\x31\x3d\x51\xd7\x35\x4c\x3d\x0c\x95\x83\xf7\x34\x6d\xe8\xae\xcb\xb6\xbf\x16\x8d\x01\xba\xa7\x93\x0f\x92\xfa\x48\x19\x3c\xc2\xdb\xcb\xb2\x1a\x40\x6e\x47\xa5\xd0\xcb\xd3\x62\x47\xf1\x37\x1a\x3b\xc6\x44\x89\x34\x73\xc6\x5f\x2e\xf5\x91\x6b\x1b\x92\xda\x48\x74\x7c\x2d\xce\x19\xd8\xe1\xb6\x24\x89\xad\xa1\xbb\x9d\x9b\x25\x12\x08\x93\xd8\xe6\x47\x8c\x6d\xde\x7c\x07\x03\x34\x50\x51\x83\x95\x7b\xd6\x3f\xca\xea\x83\x7a\xf6\x3f\x4e\xd8\x55\x3a\x13\x21\x02\x4a\x08\xfe\xcf\xf9\xad\x3c\x40\xff\x57\xc3\x60\x01\xf1\xd3\x78\x88\x75\x07\x30\xa6\x62\x23\x16\x6a\xdf\xd4\xfd\x5f\x53\xe6\x04\xb1\xe9\xd7\x6e\xce\xcb\xf2\x74\x2c\x8b\xc9\x0b\x10\xa8\x02\x7b\xe7\xb6\x68\x67\x3a\x5a\x7d\xc9\x41\xef\x9e\x56\xfa\x46\x83\x86\x36\x6e\xdb\x73\xdd\xae\x20\x74\xd5\x78\xf2\xbc\x92\x79\xbc\x37\x88\x1d\x0e\xfb\x2b\x8b\x42\x22\x99\x6f\x40\x3d\xf5\xf1\x42\xd1\x6e\xda\x32\x20\xb1\x16\x83\xf5\xba\xbb\x71\x0f\x2e\xb9\x71\x4e\x58\xbc\x95\x96\x27\xe8\x8e\x68\x1f\x9d\xb5\x1a\xa5\x74\x4f\x3d\x8e\x46\x24\x9a\xc5\xa1\x85\x7d\x6d\x9e\x9f\x1f\x3a\xcf\x12\x77\x98\x2b\x82\x57\x1a\x3d\xca\x4b\x94\x80\x6b\x26\x35\xc9\x0a\x65\xf5\xde\xee\xc6\xa7\xb1\x36\xf3\x62\x46\x95\xde\xaa\x78\xbb\x77\xe1\x35\xf3\x23\xd4\xb6\x97\x19\x06\xcd\xfc\xeb\x61\xbe\x64\x2c\xe9\xe5\x03\xef\x65\x69\x92\x5a\x93\xdf\xf0\x55\x4a\xf9\xdc\xdb\xf5\x7a\xbf\x5d\x3f\xac\x97\xbb\xfd\xc3\xcb\xd2\xfd\x58\x10\x22\xb1\xf1\x8e\x58\xd5\x65\x41\x8c\xdd\x4e\xf1\x55\xb0\x20\xe2\x89\xee\xd0\x88\x43\x2d\xaf\x2b\xf7\x14\x32\xc9\x86\xfb\xf2\x4b\x0c\xa0\x60\xa1\xd0\x34\x05\xbd\xb5\x01\x47\x47\xa9\x14\x2c\xf2\x4c\x6a\xce\x56\x55\x8e\xc7\xfb\xa2\x6e\x68\x52\x9c\xd9\x94\xb1\x88\xe9\xc0\x42\x7a\x9e\x2b\xb8\x83\xfa\xd2\x49\x5a\xb0\x28\x35\x32\x93\x9d\x81\x5a\x3b\x73\x37\xbd\x9d\xc0\x65\x7f\x66\x91\x34\x55\x43\x01\xf2\xe3\x05\xd5\x26\xcb\x8d\x58\xba\xc1\xa3\xd8\x46\xb1\x52\x64\x8e\xb5\xf8\xc7\xcd\xb0\x57\xb1\x84\x71\xcf\x62\x4f\x16\x6d\x4c\x59\xce\xf1\x15\x05\x4b\x90\x3b\x06\xab\x11\x06\x79\x68\xb7\x7d\x93\x46\xcc\x0b\x29\x4e\x7c\x59\xec\xd6\xfb\xed\xe2\x61\xbd\xdd\x2d\xee\xd6\x91\xfb\xa9\x76\x27\x49\xca\x7b\xa5\x15\xcc\x9a\xdd\x6f\x30\x16\x47\xbe\x85\xf0\xee\xce\x47\x54\xd6\xa4\x63\xde\x03\xb2\x3b\x87\x51\x09\xfd\x13\xf2\x13\x0e\x25\x5c\x45\xbb\x4d\x95\xb6\x6f\x5a\x18\xf3\xa2\xd9\xda\xe8\x78\x72\xff\xa9\x8e\x89\xb0\xef\xf6\x06\x6e\x8b\x34\x97\x94\xee\x69\xcb\x73\xb0\x44\xc1\x38\x24\xb1\x1e\xae\x98\x94\x3a\x7c\xc8\xea\x66\xe8\x5d\x22\x18\xc7\x84\x85\x5d\x11\x5b\xe1\xb3\xd6\xa4\x54\x95\x1d\xdb\x10\x6c\x24\xab\x65\xcf\x00\x2f\x25\x69\xc1\xc7\xff\x19\x7d\x48\x08\x34\x45\x5b\x47\x53\x05\x5d\xbc\x61\xff\x23\x10\x25\x5e\x3c\x4c\x49\xd7\xdd\x91\xd4\xd3\xe9\xc0\x37\xca\xee\x9e\x5f\xb7\xab\xc9\xbb\x11\x29\xd3\xda\x56\x48\xe7\x55\x47\x7e\x11\x93\x1a\x7f\xa6\xf6\x1f\x93\x8b\x4a\x8f\x85\x5d\xce\xf3\xc7\x3b\x16\x4f\x65\x43\x06\xf0\x93\x8c\x0a\x93\x10\x12\xac\xe7\x0f\x38\x55\x07\xf2\xa3\x1d\x43\xcc\x04\x53\x41\x42\xb0\x99\xdb\x53\xa1\xae\x32\x83\xc7\x17\x55\xdc\x33\x5c\x49\x2a\xa0\xa0\x32\x5f\x66\x57\x2e\xcb\x92\xc4\xf9\xb3\x4f\xdc\x40\xd5\x0c\x46\x11\x2a\x8e\x03\xc5\xf7\xba\x2e\xab\x5d\x39\xf4\xb1\x75\xed\x74\x4c\x95\xc3\x7d\xb0\x1f\x8a\xc3\xb5\x07\x98\x34\x42\xe6\x55\xa6\xcf\xc6\x3e\xd0\xba\x2e\xcd\xdf\xa3\xf6\x31\xe9\xf8\x5f\xbf\xd0\x9d\x13\x4c\x23\x10\xe1\xe1\xc7\xe2\xe1\x61\xbd\xdb\xef\xd2\xf5\x1f\x7b\x87\x94\xb1\x6d\x52\x2f\x04\x5a\x75\x8e\x65\xdd\x4c\xa0\x9e\x6e\x3a\x49\xbd\xd4\x0f\xed\x8c\x30\x5e\x6c\x53\x0f\x18\x05\x98\x78\xc8\x9a\x65\x79\xaa\x1a\x67\x78\x35\xba\xe5\xd4\xd3\x42\x1a\xbf\x43\x8a\xe8\x9e\xf5\x10\x9f\x29\xd2\x80\x27\x14\x2a\x9b\x49\xf3\xb5\xce\x8a\xb7\xb1\xc1\xf0\x60\xce\x4c\x03\x9e\x1a\x0f\x18\xd9\xc9\xf1\x59\x3f\x3a\xdb\x20\x0c\x31\x74\x0c\x72\x63\xba\x30\x4f\x6b\x1a\x4f\x18\x69\x98\xf0\xc8\x16\x1c\xb7\x90\x0f\x27\xf5\x34\x64\x11\xc1\xd1\xc5\xe9\x6c\x14\x03\x6e\x1d\x97\x6d\x56\xf3\x5a\xa4\xa1\xf2\x68\x57\xff\xfd\x65\xfd\x4c\xd3\xde\x7e\xf9\xf0\xbc\xbd\x7f\xba\xdb\xef\xee\x1f\xd7\xee\xb2\x51\x10\x07\x7d\x90\xdd\x3e\x7b\x17\xe7\xa7\x71\x80\xd4\xad\x8e\x19\x4a\x24\x21\x82\x5f\x6e\x6e\xd2\x38\x61\x14\xce\x2a\x3c\x96\x75\xd6\x3c\xdb\x9c\x67\x3d\x93\xcc\x98\xdc\x6b\x9c\x68\xaa\xf7\xed\x4d\x4c\xb3\x84\x6b\x79\xa3\x34\x16\x8a\x0d\x85\xe7\x68\x76\x72\xc8\xf3\xc9\x17\x4f\x54\x4a\x7a\x3e\x0e\x6d\x72\x57\xce\xcb\xc2\x88\x94\x49\x41\xb2\x10\x77\xd8\x6c\xb0\xb2\x5f\xb4\x7e\xb8\xa6\x65\x2d\xd2\xd4\x67\x89\x4d\x99\xfc\xe3\x84\xf5\x85\x57\xae\x48\xd3\xd8\xa3\x52\xd6\x9e\x4a\x59\xf3\xab\x7c\x9a\x26\x9a\xc8\x2e\x66\x57\xd7\xd7\x8e\x53\x2e\x4d\x7a\xb3\xc2\xe3\xa9\xa1\xf1\x34\xad\xb3\xa6\x1c\x4d\xca\xe8\x26\x6b\x56\x90\xe5\xe7\x9b\xb2\xeb\x7d\x90\xf8\x04\x05\x59\x6c\x36\xfb\x9b\xc5\x76\xbd\xdd\x3f\x2d\x1e\xd7\xdb\xcd\x62\xd9\x7d\x77\x91\x48\xe9\xe4\x11\x4e\xa2\x9d\x9a\x1f\xa1\x69\xc6\x8c\x0b\x91\x0a\xa6\x1d\x60\xa0\xa8\x75\x59\x1d\x26\xf7\x20\xa4\xa1\x50\x3f\x2e\xfe\xa0\x5e\xb5\x7f\x59\x3c\xdd\xad\xf7\xa4\xe6\xe5\x7e\x49\x22\x12\xb3\x74\x3f\x56\xe6\x5c\x15\x30\x79\x63\x52\x43\xdc\x8e\x99\x6f\x8b\xef\x4d\xd9\x4e\xf5\xe3\xc3\x2a\x8e\xff\x3f\x65\x6f\xd2\xdd\x38\x8e\x65\x8f\x7f\x97\xdf\x2a\x17\xbd\x20\x40\x82\xc3\x7f\x27\xcb\xb2\x43\x95\xb6\xe5\xb2\xe4\x88\xac\xee\xd3\x47\x07\xc3\x83\xcd\x32\x45\xaa\x48\xca\x0e\xe5\xa7\xff\x1f\x3e\x0c\x1c\x44\x45\x66\x6f\x32\xf2\x98\x20\xc5\x01\x78\x78\xc3\x7d\xf7\x6a\xe2\x5b\x08\xdc\x56\x91\xaa\x44\x62\x26\x5d\xe5\x0d\x17\x85\x57\xc7\xea\x2d\x50\x0a\x59\x10\x85\xa6\x69\x77\x73\x6a\x2f\x11\x76\x29\x48\x1d\x46\x83\x39\xd5\x2b\xda\xff\x36\x9f\x1a\xbd\xb2\xa1\xf8\x3e\x9a\x91\x00\xe0\xec\xee\xdc\x9f\x31\x3d\xd7\xdd\x93\x4a\x91\x23\xd8\xb7\x03\xf1\xfd\x94\x70\x48\xa4\x00\x31\x96\xa8\xf7\x28\x24\xd0\x05\x30\xe5\xbe\x0f\x8f\x53\x1d\x84\x81\x8b\x56\x56\xed\xfb\x95\x39\xa8\xa9\x46\xbc\x1a\x82\x13\xaa\x9a\xbf\xc1\x45\x8c\x70\x09\xf1\x99\xbe\x81\x6b\xbc\x8a\x22\xd5\x8c\x63\x74\xa6\x01\x1a\x9f\x17\x34\x39\x9c\x29\x62\x22\xd5\x89\x46\xac\xc7\xb1\x9e\xa1\x6c\xb3\x83\xb2\x20\x49\x31\x3c\xc7\xee\x84\x7b\x28\xb1\xf9\x68\x18\x75\x64\x41\x16\xe0\xbb\x53\xf0\x89\x06\x68\x56\x4d\x57\x64\x24\xc8\x70\x62\x3e\x7c\xff\x63\xe8\xb2\x64\x24\x49\x22\xe9\xa5\x64\x2e\x99\xbe\x44\x46\x59\x84\x0e\xf6\x5e\x9c\x2e\x99\xb1\xc7\x43\x43\x42\x9c\x44\xa0\x89\x41\x76\xd5\x13\xfc\x6c\x11\xf3\xe7\x7e\x30\xd4\x21\x7e\x01\xc4\x8d\xe3\xad\x8c\x60\x5b\x33\xaf\x7b\x62\x45\xdd\x26\x99\x45\x31\x47\x50\xd2\x73\xc1\xcf\x5b\x63\x37\x8c\x64\xa8\x3d\xce\x52\xd3\xb4\x73\x57\x55\x23\x3d\xb6\xb9\x8c\x63\xc6\xb2\x10\x7d\xfe\xaa\x8b\xbd\xdd\x9c\xa8\x6a\x47\x15\x31\x79\x27\x71\xa2\xd0\x99\x83\x52\x6d\x34\xb2\xee\x85\xee\x57\x13\x49\xb1\x41\xe1\xf4\xe7\x9f\xa3\x9a\x41\x96\x72\xe1\x29\x3d\x77\xef\x75\xf5\x65\x40\xcc\x5b\x28\x0a\x0c\xf8\x77\x5f\x9e\x7d\x52\x64\xa9\x4a\x9c\x03\xf0\x82\x95\x85\x39\x24\xba\xc8\xb2\x34\x40\x0d\x06\x0d\xad\x7c\xb7\xa8\x4a\xbc\x58\xb7\x0d\x3d\x42\xdd\x45\xcb\x93\x8d\x22\xe3\x94\x60\x19\xdf\x0c\x7f\xf9\xef\xc7\xf9\x6d\x22\xe3\xc2\x70\x0c\xf3\xba\x9e\x6d\xfb\x11\x99\x88\x93\x84\xd9\x27\x7a\xcc\xcb\x76\xf7\x9e\x37\xbf\x8d\xae\x21\xa5\x89\x23\x86\x90\xb7\x19\x7a\x97\x6e\x60\x86\xb9\x69\xdb\x41\x64\xf1\xdd\x57\x58\xb0\x45\x26\x55\xaa\x3a\x2b\xd7\x72\xe1\xde\x98\xa2\x29\xe6\xe9\xca\xd3\xe1\x36\x7f\xcb\x27\x3d\xb6\x22\x53\x4c\x85\xa6\x39\xf9\x90\x97\x2f\x08\x2a\xb8\x52\x0a\xcb\x94\x36\x42\x67\x25\x7c\xed\x80\x1f\x36\xe5\xca\xe6\x74\x66\x3b\x62\x6c\x53\xa3\xc8\x34\x89\x51\xb9\xa5\xe5\x1f\x5d\x08\x81\x59\xf1\x91\x21\x34\xe3\x78\x40\x24\x46\xea\x7d\x78\xf9\xbc\x7a\xda\x5d\x5f\x00\xee\xb4\xc4\x90\x0a\xec\x0d\x22\xe2\xae\xae\x0e\x0f\x23\xb9\xca\xf1\x53\xf0\x00\x0c\x5c\x03\x35\xa5\xda\xaa\x85\xdb\x2e\x5c\xac\x8e\x07\x28\xdb\x21\x57\x8b\xe0\x84\x1b\x30\x9b\xa3\x05\xe8\xdc\xf7\xa6\x3f\x28\x5d\xc2\x6d\x55\xea\xaa\x96\xf0\x02\x9f\x79\xd3\xd3\x8e\xd3\xc0\x8e\xa4\x84\xa1\x63\x8b\xc5\xfe\x8d\xde\xd5\xf0\x59\x95\xff\x18\x40\xe3\x38\x25\x31\x36\xd9\xf3\xe6\xe3\xae\x9a\x21\x1b\x16\x9c\x52\x03\xdc\x71\x5e\x8c\x2d\x87\xfe\x2d\xb4\x2a\xa7\xa1\x69\x95\x7e\xde\x3c\x0f\x57\x1e\xa7\x9c\x61\x53\xd0\xbe\x3d\x95\x57\x9c\x13\x94\xa4\x64\xa6\x9e\x2e\xc1\xe5\xf1\xec\xb1\x90\x64\xc4\x24\xab\xaa\x8f\xed\x91\x7f\xcf\x9b\xe9\xe6\xc4\xc3\x50\x22\xea\xc4\x37\xaf\x37\xcb\x5e\xd4\x47\xf0\x10\x4c\x71\xd5\x58\xd9\xfc\x70\x3a\x8c\x50\x13\xe3\x6b\x45\x32\x65\xd6\x3f\xfb\x31\xe1\xc0\x1f\x7f\x61\x16\x4b\xac\xec\x8b\x93\x15\x00\x1e\xb1\x0d\xcf\xae\x6a\xce\x20\x43\x58\xcd\x16\x0a\x7d\x0b\xa6\x6a\xea\xee\x32\xd6\x09\x96\x53\x4c\x60\x64\xec\xc3\x36\xbf\x8a\xbd\x9f\xab\x7a\xf3\x84\xf2\x08\x8c\x80\xfc\xd3\xfa\x9f\xc6\x15\xdf\x3c\xaf\x9e\x26\xae\x38\xef\xa2\x30\x2c\x46\x55\xd5\x47\x7e\x25\x81\xcd\xd3\x98\x1b\x50\x21\xf6\xfc\xf2\x5a\x89\xca\x31\xb2\xb8\x55\xc7\x53\x01\xb1\x69\x80\xcf\xe5\x07\x98\xf6\xb7\x5b\x28\xe0\x6d\xe0\xdc\xf3\x2c\xcd\x90\x42\xd2\xb4\x7e\xee\xf2\x83\xeb\xd0\x13\x3c\xe3\x29\xb7\x59\x95\x5d\xbd\x3c\x4d\x3f\x6c\xa6\x38\x6a\x63\x1f\x73\xf9\x71\x93\xbf\xd9\x0c\x88\x3d\xc8\x39\x45\x4c\xdd\xe3\xfa\x69\x8f\xc5\xce\xf5\x0d\xf6\x3c\xec\x9f\x5f\x56\xdd\x93\xfb\x71\x22\x04\xe2\x34\xd6\xac\xf3\x6b\x5a\xe2\xc6\xcf\xcb\x15\x01\xaf\x58\x70\x9b\xfb\x04\x0a\x17\x54\xa3\xca\x99\x71\xaf\x07\xe0\xe3\x49\xf9\x7a\x94\xd2\x76\xe7\x26\x1a\x1b\x4d\x8d\xe8\x96\xae\x26\x41\x3b\x97\xd4\xd0\x3c\x3e\xf2\xb2\xe4\x03\x54\x29\x97\x91\x44\x38\xf3\x7d\xaf\x67\x8d\x62\xf7\xbb\x2e\x68\x28\xbb\xad\x66\x0b\xf2\xd6\x11\xd5\x09\x2e\x93\x14\xb5\x27\x0f\x79\x01\x4d\xeb\x15\x7d\x05\x97\xd2\xb0\xb1\x1b\xc8\xdf\x46\x4f\x5e\xb1\xa2\x84\xa3\xd8\x67\xf7\x01\xdb\x86\x7c\x1c\x7b\x1e\x66\xc1\x81\xc7\x08\x68\x7c\xfd\x3e\x5e\xd4\x20\x03\xe4\xff\xb7\xb5\x48\xf4\xe7\xfb\x74\xd6\xa4\x85\x72\xb8\xd5\x73\x1d\x50\xb4\x68\x0f\xd5\xdb\x40\x2b\x58\x70\x4d\x49\xc4\x66\x49\x92\xdd\x00\x26\xa1\x57\x00\xc5\x1c\x74\x9f\xae\x9c\x14\x1e\xb8\x4e\x68\x64\xb3\xc1\xe8\x55\xcd\x22\x3f\xb8\x56\x81\xa6\x03\xb4\xcf\x16\xb5\x78\xbc\xdd\xd0\x4a\x88\xd8\xe9\x08\xa0\x09\x30\xf9\xca\xd9\xb5\x2d\x82\x2c\xc2\xdc\x59\xaf\xb9\x77\x25\x10\x1d\x2f\x33\x41\x92\x50\x79\xbd\x08\xab\x85\x0c\xe7\xbd\x02\x83\x56\x78\xaa\xbe\xf5\x3d\x2f\xee\x94\x34\x74\xb9\x48\xab\x85\xf3\x27\xa8\x87\xea\x2d\x97\xbf\x6a\x9d\x13\x82\x46\x0c\xeb\x2a\xe6\x57\xb0\x1c\x78\x0b\x65\x75\x30\x3d\xd5\xe3\x97\x23\x42\x09\x98\x78\x50\x66\xe3\x82\xda\xde\xdc\xbe\x9b\x81\xcd\xbe\xd2\xfb\xc6\x4a\x10\x0e\xbf\xaf\x88\x12\x85\xc0\x1b\xb4\x1a\x86\x59\xac\x5b\xb6\x3d\x15\x95\x10\x2c\xe1\x48\x7e\xe6\xb6\x99\x4d\x39\xcf\xc3\x27\x44\x4c\xa8\xe3\xf6\xbe\x94\x43\x14\x22\xa6\x9a\x46\x7d\x65\xf8\xd1\x78\xf8\xe3\x67\x8e\xc3\x10\x63\x39\x5c\xd5\xfd\xac\xea\xd5\x11\x84\x48\xa8\x8e\x13\x74\x5e\x8a\x22\xd7\x13\x38\x82\x48\x03\xc0\xb4\x22\xb7\x49\xe5\x71\x4f\x99\x48\xa9\xa9\xca\xef\x6b\x5e\xaa\x9b\xf3\x0b\xa2\xb2\x66\x77\x39\x91\x86\xa1\x32\x19\xc4\x4f\x3b\xc3\xab\x53\xeb\x6b\x08\x22\xe5\xa1\xcb\x51\xde\x58\x1e\x89\xf1\xf9\x59\x2a\xb9\xa9\x66\x1e\xf2\x36\x71\xa7\x65\x0a\x10\x2b\xfd\x86\xde\xbe\xfb\x2b\x17\xca\x15\x24\xca\xd3\xa4\x45\x50\x08\x42\x32\x4b\x4d\x69\x18\xfa\x6c\x50\x33\xaf\x2d\x7f\x9a\xed\xdd\x19\xfe\xd7\x7a\x66\x63\xa6\x6e\x21\x04\x35\x0c\x3a\xc3\xd0\xe5\x2f\xfe\x75\x67\xc2\x58\x81\xf8\xe6\x7c\x75\x55\xd9\x33\x64\xac\x31\xad\x92\x37\xcf\xfc\xdc\x45\xe7\xa3\x6e\x5f\x21\x64\xca\x42\xe1\x92\x4f\xaf\x2f\xeb\xed\x49\x6b\x47\x95\x22\x84\x0a\x0d\xd9\x16\x57\x6a\xd9\xcd\xdb\x0b\x40\xd0\xf8\x8d\xcc\xdf\x82\x8a\xd2\xd8\xf4\xfe\x23\x0f\xdc\x4d\x5e\xab\x66\x20\xd3\x23\x84\x4a\x52\xc5\x47\x48\xa0\xa7\x5c\x7e\x94\x53\x2e\x90\x6e\x60\x86\x59\x02\x9d\x97\x6a\x08\xef\x98\x7a\x99\x42\x65\x1c\x3d\x9b\xc5\xc3\xc3\x66\x69\xb5\xac\x56\xfe\xe7\xb8\x4a\xe5\x50\xa6\xc4\x20\xa1\xcd\x24\xde\xca\x77\x38\x70\x64\x28\xbb\x92\x69\x1b\x87\x1b\x42\x71\x40\xbc\x93\x6d\x05\x01\xa4\xff\x98\xdc\x8d\x0e\xd2\x70\x90\xdc\x98\x4f\xe8\x0a\xa0\x5a\x3b\x98\x45\x5e\x23\x18\x21\xaf\x4a\x9b\xba\x1c\xd9\x12\x1d\x10\xe1\xec\x9c\xc2\x36\x8e\x4b\x80\xe8\xe5\x5c\xed\xbf\x88\x96\xca\xf5\xf3\x2d\x37\xb6\x75\x57\xc8\x80\xa6\x58\x85\xfa\x63\xf7\xdd\x72\x82\x4f\xad\xa6\x1b\x28\x83\xd4\x31\xdd\x8c\xe9\x99\x85\x24\x61\x86\xde\xda\x43\xf5\xf6\x98\xbf\xd5\x7c\x8e\xb4\xcf\x0d\xd5\x14\x39\x10\x9a\x53\x2e\xf3\x29\xf8\x41\xd2\xc4\x80\x4e\x8e\x06\xdc\xf0\x04\x5f\xc3\x80\x5d\xd2\x24\xc5\xed\xf2\xb6\x7a\xaa\xda\x5b\x6c\x9d\xed\x02\xbd\x7b\x68\x77\xef\xf0\x92\xbf\xbd\xb7\x9b\x12\x96\x55\xf3\xcc\xeb\xbc\x3d\x3f\x9f\xda\xa6\x3b\xbc\x29\x77\x8e\x7e\x5d\x48\xaa\x02\x34\x60\xb2\x2a\x9b\xd3\x61\x0a\xea\x94\x14\x0c\x7f\xb7\x01\xfb\xbd\x36\x56\x0b\x63\xef\x8e\x87\x69\x86\x74\xac\xf0\x13\xe4\xa9\x85\xdd\xcf\x89\xc7\x2c\x23\x46\x31\xa3\x5a\xc2\x97\x0f\xd8\x67\xe7\xd2\xd0\x55\x95\x51\x9a\x62\xa3\xce\x6a\x5b\x54\x6d\x73\xb1\xbc\xed\x28\x16\xca\x20\xb1\x74\x04\xe3\x4e\x49\x37\x20\xa6\x99\xdf\x6e\x2e\x96\xed\x38\x11\x3e\x1b\x47\x4b\x96\x64\xae\xd0\xbe\x96\x95\x6d\x9a\x71\xc7\x54\x10\x50\x8b\x2e\xf8\xe7\x09\x3c\x32\x69\x3e\x04\x92\x31\xd3\xa9\x4d\x2a\xdd\x9c\xce\xb8\xbf\x3a\x4f\x57\xc6\x19\x33\xa0\xc5\xaa\x9d\xc1\x6c\xcb\x34\x34\x92\x44\x39\xf2\x32\xd6\xfe\xcf\x29\x41\x47\xfd\x7e\xf3\x70\xbb\x7a\x7a\x59\xec\xd6\x2e\xe5\x26\x33\x12\x1a\xbc\x20\x46\xeb\x06\xb5\x80\xaf\x86\xa6\x7e\x04\x18\x71\x8d\x93\xb8\x0c\xfd\x27\xb7\x9e\x85\x21\xe6\x90\x8f\x7b\x97\x06\xbc\x85\xcf\x6f\x55\xa1\x06\x1b\xb7\xcc\xc0\x54\xd8\x6c\x10\xec\xb8\x2a\xbb\x2b\x45\x36\x0e\x95\x9c\x98\x96\xf7\x37\x68\x1f\x78\xd3\x6e\xc1\xdb\x60\x29\xb8\x91\xd6\xcb\x2d\xbb\x13\xd6\x1c\xc6\xdf\x5b\x88\x30\xf6\xf1\x00\x2f\x9b\x23\xd4\x2f\xa7\xe9\x84\x93\x51\xcc\x6c\xc9\x0e\x09\x9b\xdd\xf2\xbd\x39\x3b\x68\xe7\xf4\x84\x58\x72\xed\xb5\x16\xf7\xb5\x6d\x09\x99\x0c\x12\x19\x2e\x53\x9b\xc8\x19\x4b\x8b\x8f\x87\x2a\xca\x90\x00\x4e\x60\x9a\xed\x19\xea\x6f\xd5\xc9\x7f\x32\x20\xda\xaa\x7d\x68\xa8\x6b\x23\xbb\xb1\x2e\x3f\xf3\xbe\x81\x5d\x82\x08\x70\xa7\x37\x68\xfa\xf1\xb5\xb5\x25\x9a\x75\x0f\x75\x77\x2a\x0a\x9d\x63\x36\xc6\xdd\xcc\x78\x3c\xc9\xb0\xa7\xf8\xde\xd0\x23\x96\x46\x4b\xf0\xa2\x42\xa1\x02\xa2\x30\x0a\x92\xc5\x69\xd0\x4b\xaf\x02\x96\xa0\xef\xf3\x72\xb3\xf0\x7f\x02\x22\xbc\xc8\x74\xcf\xf2\x24\x14\x89\x13\xc4\x5f\xac\xef\x1f\x79\xfb\xde\x4c\x42\x19\x45\xb2\x18\x99\x45\xea\xce\x7e\xed\x81\xd7\xe5\x25\x14\x50\x11\x01\x8e\x9d\xe7\xb6\xae\x26\xf4\xe7\x42\x11\xa5\x33\xf7\xfd\xf3\xf6\x54\xf0\xbc\x86\xbd\x65\x1c\x9f\x80\x07\x15\xa5\x19\x16\x64\x91\x04\xda\xa4\x79\x47\x90\x35\x45\xb9\x44\x96\xac\x3e\xd5\xb3\x74\xe4\x73\xb3\x8b\x40\x85\x24\x08\x1c\x8a\xe3\x94\xe3\xdc\x77\xd7\x0a\x43\x82\x72\x9d\xcf\xf9\x9f\x7f\xf2\xe7\xaa\x28\xfc\x01\x19\x62\x1b\x65\xc3\x35\xe0\x26\x21\x79\x73\xd1\x8d\x7d\x4d\x14\xb2\xb7\x87\x2a\x94\x2a\x1e\xc2\x72\x9f\x8d\x4c\xe1\xe4\x99\x43\x15\xa0\x15\xe9\x3c\x83\xce\xdd\x33\x11\xcb\x6f\x23\x33\x6b\x0d\x9b\x8a\xa8\xe2\x86\xd7\xae\xfc\xf0\x8b\x50\x45\xdc\x28\x3d\x36\xe7\xb2\x7d\x87\x36\xff\x89\x51\x65\x7f\x34\x05\xee\x42\x9e\x66\xec\x6c\xc5\xd1\x00\x11\xa2\x58\x24\xdc\x4a\x35\x3e\x64\x17\x89\x4c\xe6\x1c\x63\x1a\x05\x78\x16\xcb\x01\x17\x81\x62\x59\x84\xa9\x31\x04\x9a\xf9\x36\xcd\x2b\x55\x38\xc5\x40\xc7\x96\x86\xff\x0e\x0c\xcb\xc7\xdb\xdf\xeb\x39\x54\x71\xc4\x0d\x27\x45\x51\x35\x86\x21\xdd\xdd\x42\xac\x78\x6a\xbc\xc5\xd7\x5c\x6d\x27\xa8\x3c\x15\x6b\x86\x70\x38\xee\x89\x08\xc6\x5b\xa6\x4a\x62\xa3\x89\x81\x16\x1e\xd5\x90\x6f\x4d\x49\xc8\x0f\xd0\x8a\xb8\x84\xd4\x63\x5e\xb8\x56\x4e\x95\x46\x31\xcb\xbc\x9a\xae\x71\xc5\x6e\xce\x06\x6c\xea\x0a\x8b\x13\x33\x3d\x7e\xa3\x69\x94\x62\x92\x6d\xbd\xdc\xec\x0d\xd1\x93\x3b\x90\x19\xea\x02\x47\xb6\xd8\x53\x5b\xf4\x0e\xa8\x4a\x25\x45\x48\xc6\x0d\x6f\x72\x89\x3f\xbe\x3e\x1c\xfd\x4c\xce\x48\x82\x6b\x0f\xdb\x86\x50\xaa\xdd\x1f\xe1\x91\xb2\x71\x96\x27\x10\xf4\x2f\x43\xa4\x02\x95\xc9\xa1\x6a\xee\x17\x5b\xff\xd7\xcc\x70\x74\x18\x77\x51\xed\x8f\xc8\xd1\xbb\x3f\xf2\x73\x51\x71\x7f\x61\x49\x13\xd6\xa7\x11\x1c\x04\x4c\x29\xc6\x11\x32\xcf\x65\xeb\x11\x28\xc6\x83\x38\xfd\x35\xf0\x44\x29\xa6\x0c\xd7\xef\x17\x3f\x0e\x0b\xc2\xee\xb0\x54\xc2\x09\x1d\x4a\x44\xd4\xd9\xe0\x7e\x12\x2d\x2b\x20\x59\x9a\x4e\xd4\xc4\x6c\xd0\x66\x7b\x2b\x7e\x59\xa3\x56\xa0\x03\x66\xdf\x1a\x72\x53\xe5\x7f\xc2\x10\x93\xa2\x74\x62\x30\x55\x08\x90\x41\x93\xdd\x9b\x5a\x9d\x32\x0c\x7c\xf7\x70\xc8\xdb\x1f\x55\xfd\xe1\xa4\xdf\xe6\x67\xba\xd6\x54\x5a\x1f\xc6\x94\x3c\x87\xd2\xde\x02\x02\x92\x64\x81\xef\x97\xfe\x76\x14\x4f\x95\xf2\x1f\x10\x48\xc0\x42\x65\x9d\x1c\x94\x52\x90\x1f\xbb\xca\x38\xdb\x76\x04\x0d\x88\x23\x58\x5d\x14\xc5\x4d\xae\xb0\x61\x0b\xe9\x6b\x47\xf7\x01\x54\x48\x24\xea\xdb\x37\x27\x64\xba\xb3\xf6\x78\xf4\x5e\x81\xca\x94\x09\xaf\xfd\x9a\x37\x92\x17\x28\x08\x34\x66\x93\x12\x40\xc1\x34\x44\x1c\x4f\xcd\xfb\xae\x7a\xf6\x35\x67\x08\x03\x82\x75\x97\x1f\xeb\xa7\xa7\xd5\xcb\x7e\xfb\x6d\xe1\x83\x1e\x08\x83\x04\x19\x07\x7e\xcf\x5b\xf9\xee\xf3\x55\x10\x12\xc3\xf8\xd7\xe6\x50\xd3\x5d\x7e\x80\xa6\xe5\x87\xa3\x3f\xca\x02\xe7\xb3\x58\x9f\x66\x1c\xe4\x43\x08\x19\x35\x7d\xea\xd5\x27\x94\x06\xd3\x31\x79\x2a\x16\x31\x97\x8b\xd8\x2f\x7f\x2c\xf7\xb3\x19\x18\x60\x0c\x98\x95\x5c\xc3\xa6\xb4\xb1\x61\x01\x96\x26\xa8\xad\xbb\xe4\xcd\xfb\x73\xf5\x01\xf5\x73\xed\x00\x82\x6e\x84\xe0\xc2\x26\x09\x36\x47\x28\x4d\xb9\xc9\x1f\x94\x1c\x11\x0b\xcf\x9b\xc5\xb3\xff\x9b\x86\x4c\x39\x3b\xfd\x73\x59\xe5\xe5\x36\x57\x16\xbe\x69\x1d\x45\x88\xa5\xc1\x6f\xe4\x86\xc3\x7d\x53\x6f\x8e\x56\x91\x71\x36\x3c\x87\x24\x60\xb8\x4b\xfc\xb2\xf0\x75\x73\x9e\x49\xb2\x42\x96\x51\xde\x53\x53\x19\x5d\xd6\x69\x7e\x6c\x3c\xa7\x32\x00\xa1\x1d\x75\x7c\x2e\x01\xf9\x2e\x27\xdf\x87\x33\xaa\x8c\x6e\x3e\xd2\x9c\x0c\xa4\xe4\x04\x70\x41\x93\x1e\xa2\xf8\x52\x9d\xda\xbc\x7c\x5b\x56\x0a\x26\xd3\x8d\x0b\xe5\x5a\xff\x9e\x8f\x05\x4a\x55\x8d\x6a\xbd\x20\xed\x4e\xbf\xfa\xc9\x0f\xc7\x62\xe2\xb9\x80\xd4\x02\x79\xa1\x3f\xaa\xf6\x7d\xff\x49\x5c\x65\x0c\x14\x01\xc7\x0b\x3e\xa0\x36\x1e\xbf\x14\x15\x1a\xe2\xb0\x7b\x7e\x80\xe7\xaa\x2a\x26\xb3\x42\xe9\x0c\x79\xaa\x77\x37\x01\x71\x7f\x83\x40\x81\xd1\x65\x37\x41\x7d\x7e\x40\x12\x38\x7f\x98\xa7\xe8\x8b\x61\xba\xe3\xbe\xe6\x65\x0b\x30\x71\xc5\x40\x07\xc6\x2a\x18\x5a\x09\x43\x27\x3b\xee\x65\x74\x03\x21\x41\x3c\xf3\xd3\xeb\xe3\x7e\x73\xb7\x7f\xfe\xb6\xd8\xba\xf5\xa6\x49\x44\x11\x73\x85\xf1\xd7\x36\x2f\x9c\x7c\xc0\xb4\x4a\xf7\x8b\xd2\x9d\x26\x91\x52\x86\xa7\xf5\xac\x8b\x8a\x7f\x34\x8b\x37\x9e\x97\x8d\xe1\x68\xf2\x3f\x24\x82\x40\xb8\x1f\xba\x81\xe1\x01\x6d\xd0\x4a\xdd\x76\xdd\x7a\x01\x16\xa1\x09\x28\xdc\x2b\xf7\x5d\x28\x52\xbd\xe1\xa3\xcd\x6a\x24\x09\x4d\x74\x82\x0d\x6f\xfb\x77\xde\xe0\x9c\xbc\xab\xea\xce\xeb\x84\x36\xbf\x1e\xd8\x6b\xa2\x01\xd9\x1c\x3c\x0f\x74\x5f\x07\x1a\xc8\x66\x4f\x4e\xa2\x09\x04\x3d\xa4\x7a\x59\x95\x4d\x9b\xb7\x18\x0a\xa2\x57\x39\x7a\xf3\x9a\xca\xcc\xb0\xb2\x18\x02\xf0\x5e\xf8\x7c\x32\x4c\x87\xae\xf2\xbf\xaf\x47\x5b\x93\x1d\x10\x52\xa3\xd8\x77\xbb\xba\x1d\xa6\xf1\x75\xc8\x0c\x61\x3f\xee\xf6\xb8\xf6\x9b\xf7\xfc\xe8\x5c\x32\xaf\x56\x2f\x74\x14\x31\x1c\x98\x37\x88\xe2\x9c\xb7\x0b\x3a\x62\x1c\x69\xfd\x70\x17\x29\x3f\xfc\xc9\xd2\x68\xe4\x61\x3f\xfe\x8c\x6b\x7c\xe1\x24\xdb\xf3\x58\x40\xa5\x63\x97\x84\xb2\x45\x89\xd4\xdd\x37\x77\x55\x46\x12\x2c\x1d\xed\x65\x55\x96\x20\xdb\xc7\x4a\x9d\xbc\x07\xa6\x59\xc8\xd1\x95\x1f\xd1\x18\x3c\x56\x57\x48\x26\x85\x66\x8c\x22\x39\xfe\xc3\xe6\x7e\xef\xd8\x87\xbb\x99\x30\x6a\xf0\x98\xff\xa2\x4c\x64\xc4\x32\xf7\x6e\xb9\x86\x7b\x3e\x59\x68\x9a\x81\x20\xd2\xf9\xa1\x17\x34\xfb\x76\x50\x1c\x1a\xd5\x1b\xee\xc8\x61\xb7\x9d\x83\x3e\x60\x9b\x16\x3a\x4e\x98\x81\x15\x22\x83\xaa\x39\x7b\xea\xb5\xe8\x84\x46\x32\xf1\xd8\x05\x6c\x7b\xa5\xd3\x21\xb1\x29\x97\x0a\x04\xc8\x6c\xb4\x2e\xf2\x12\x46\x45\x69\x9d\x64\x0a\x25\x28\x4d\x3a\x64\x59\xcd\x8b\xfe\xa1\x0c\x46\x20\x5d\x7d\xba\xcd\xdb\x33\x16\xc5\xad\x61\xb5\x1f\xd4\xf7\x62\xe9\x94\x48\xc4\x7e\x6a\x4b\x23\x6a\x7b\x88\x47\xd6\x4e\xa7\x8a\x6a\xee\x9a\x8c\xf3\xa3\xff\x7b\x96\xea\x98\x8f\xc3\xbd\x9b\x41\xb5\x46\x73\x96\xc6\x86\xf7\xa0\x54\x83\xec\xbe\xe6\xb1\x49\xbf\xe5\x8e\x79\xc1\x41\xd4\xa7\x9f\x89\x67\x29\x5a\x98\x6d\x51\xbd\xf1\x11\xe1\xa1\xd0\x5c\xc4\xe8\xb3\x2c\x3e\x79\x51\x95\xa3\x35\x24\x88\x11\xc2\x45\x90\x50\x73\x3a\xdc\xf2\x96\x8b\x2e\x76\xba\xaa\x86\xd9\x9d\x93\x62\x2d\xeb\xbe\x12\x45\x5e\x4e\xf5\x59\x84\x96\x49\x84\xda\xa2\x9b\x97\xc5\xf2\x61\xfd\xdf\xab\xfb\xc5\xf6\xf9\x65\xed\x21\x75\x5a\x4a\x85\x3d\x12\x88\x2e\x68\x8e\xae\x32\x62\xf7\x73\xad\x44\xec\x68\x81\xd7\xb2\xb2\x6f\x79\xd4\x92\x3f\x1f\x5e\xe8\xce\x67\x25\xd8\x89\x25\xdf\xcb\x6a\xe5\xc3\x5f\x0d\x89\x99\xe3\xd2\xb3\x2c\x8e\x36\x4f\x0d\x82\x24\xda\xdc\xd0\xbe\xef\x45\xd0\x20\x53\xf4\xb5\x97\xdf\x56\x7f\xcc\x26\x54\x26\xd3\x09\x74\xe2\xf8\x64\x6d\x7b\xe8\x0b\xfc\xe7\x94\xd7\xa0\xba\x55\x65\x07\xe9\x88\xa4\x26\xf2\x84\x19\xa2\x84\x3e\x59\x3f\xbc\xb4\x0c\x02\xae\xc0\x16\x23\x90\x94\x69\x5c\xb4\xfd\x9f\xff\xed\xff\x67\xf8\x4a\x64\x10\x88\x18\x53\x80\xab\xa2\xc8\x8f\x0d\x18\x8f\xf6\x11\x15\x12\x7f\x55\xc3\x90\x41\x00\x11\x56\x1c\x6e\x78\xc9\x4b\x7e\xc3\x1b\x9f\x99\x90\x01\xa1\x31\xce\x49\xb3\x67\x4d\x7c\x49\x19\x10\x96\x1a\xc6\xfb\x4b\xb4\x02\xc2\x9d\x22\x7f\x1d\xa1\x02\x39\x52\x22\xc0\xaf\x7c\x57\xd5\xb7\x8b\xf5\x6f\xe3\x17\x40\x49\x4c\xad\x84\x5b\x4f\x3c\x24\x03\xca\x88\x23\x6e\x43\x3c\x6a\xdb\x0e\xd4\xfc\x26\xac\x29\x9d\x9b\x18\xa1\xff\xaa\x40\x56\x0a\xbc\x2d\xef\x13\x19\x32\x88\x68\xe4\xca\x58\x4f\x08\x3f\x99\x2f\x5e\xc8\x20\x4a\xa5\x1e\x66\x3c\x26\x08\x31\x3b\x8a\xd1\x04\xdb\x25\x9f\x6e\x57\x7f\xb8\x7b\x8e\xa9\xa1\x8d\x6a\xde\xab\xaf\x1f\xef\x1c\x79\x88\x6a\x7f\x50\xa4\x18\x63\x97\xa7\xc3\xe0\x63\x35\xfe\xb0\x4a\x11\xef\x5f\x94\xc8\x34\x33\x37\x0f\x65\x10\x83\xe1\xd4\xda\x77\x56\xb4\x39\x8e\x04\xf7\xc6\x0f\x91\x04\x06\x54\x63\xaa\xd2\x37\x50\x02\x6a\x2e\x4c\x58\x44\x65\x90\x72\x63\x5c\x1a\xae\x61\x57\x2d\x94\x9a\xe1\x02\x95\x41\x2a\x62\xc4\xba\xac\xfe\x58\x2c\xdd\x0d\xa7\x40\xa5\x7d\x9f\xdf\xd7\xcf\x97\x14\xab\xdd\x08\xa6\xad\x87\x8c\xfa\x8d\x83\x4d\x43\x06\x59\x64\x3a\x8b\xef\x8d\x5c\x6e\x8f\xf3\x96\x41\x96\x65\x78\x08\x10\x84\xef\xed\xd6\x9c\xa5\x97\x41\xa6\x52\xa3\xf8\xff\x5e\x7d\xb9\x0d\xb2\x59\x56\x23\x85\x78\x19\x88\x90\xa1\x7c\xa1\x11\x2a\xf4\x2f\x5d\x44\x29\xc6\xa7\x08\x3b\x7c\x3e\x09\x84\x52\xfb\x83\xdc\xd4\x0f\x2c\xa3\xc5\x28\xd0\xf7\x13\x4f\xa8\x00\xdf\x8c\x34\x2c\xd2\xb7\xb6\x83\xa6\xff\x05\x65\x24\xbe\xf8\xb1\x8b\x3b\x6f\x41\xd6\xe7\x63\x0b\xaa\x8b\x55\x7f\x9b\x4b\xbd\x9d\xa6\xcb\xbd\xff\xbf\xd9\x51\x97\xf7\x93\x60\x2a\x65\x28\xf6\x38\x3f\x97\x24\xe1\xd4\x54\x97\xbb\x90\x7c\xa3\x1f\xf9\xbf\xab\x1a\xb5\x9e\xfc\xcd\xcb\x24\x09\x4d\xe5\xd0\x4a\xf9\x19\x27\xa1\xb7\x17\x2a\x54\xf8\x85\xb5\xa5\xdf\x1e\xff\x82\x8a\x24\x26\x6c\x0f\x50\xcb\x53\xd1\xe3\x45\xdc\xd9\x20\x08\xba\x65\xb6\xb5\x77\xf7\x0e\x77\xa7\xf6\x54\xc3\xf2\xbd\xdb\xf3\x3d\x8b\x88\x0c\x34\xd3\xda\xee\xe6\x7b\xc9\x4b\x85\x6c\xaf\xfb\x63\x2e\x07\xbb\x8b\x24\x84\x47\x59\x4f\x36\x36\x0a\xf2\xfa\x04\xa1\x24\x44\x84\x69\xec\x78\x85\xf3\xe2\x6c\xbb\x16\x66\x5f\x12\x21\x02\x4c\xf4\x7c\xe0\x45\xb1\xf5\xb4\xf1\x92\xd0\xd8\x96\x1d\x31\x76\xfa\x8e\x1c\x77\x33\x41\x8a\x24\x34\xc9\x54\xcf\x38\x82\x00\xbd\x7b\xe8\xf3\xcb\xff\x43\xff\xd7\x0d\xcc\x52\xc4\xa3\x3d\x54\x4e\x71\x57\x12\xca\x53\xb4\x59\xa8\x9e\xc9\x92\xf1\xfb\x25\x94\x0b\xe1\xd5\x2a\xb1\xc5\xf2\xba\x36\x83\x24\x21\x15\x8e\xe6\xc6\x58\xe3\x4a\x23\xb8\x64\xc0\x1d\xeb\x3e\x3c\x09\x43\x86\x72\x3f\x3b\xe0\x87\x21\x2d\x8c\x24\xa1\x4e\x99\x5d\xd3\x8f\xfc\x27\x06\xb4\x5b\xcf\x51\x2f\x49\xc4\x8d\x6c\x1f\x2a\x77\xca\x7a\x00\xb9\xb6\x03\x58\x64\xfc\xd9\x16\x1a\xf4\x4a\x3b\x8b\xe3\x0f\x19\x22\x5e\x27\xb6\xb5\xab\x4e\x75\xc9\x0f\x56\x41\x16\xa9\x89\xa6\x48\x2c\x24\x2e\x25\x36\x46\x5b\x94\x6a\x0b\xed\x6d\xfe\x39\x48\x30\xce\x85\xf0\x23\xd6\x32\x49\x98\x8c\x1d\xcf\xb4\x82\x63\x9b\x0f\x38\x2a\xc7\x1b\x03\x89\x99\x69\xc6\x35\xfe\xa9\xf9\xda\xdf\x3b\x67\xc0\x3d\x41\x92\x05\x10\xf6\x97\xaa\xe1\x3f\x6a\x4c\xdd\x3d\xb9\x60\x22\x0d\x00\xcd\x75\x38\x1a\x23\x3a\x19\x03\x69\x60\x3f\xdb\x33\xcf\x4d\x3a\x63\x0e\x35\x24\x49\x1a\xaa\xd8\x66\x7a\x0c\x7d\xb1\xe5\x45\xae\xea\x66\x7d\x38\x16\xd0\xbd\xc9\xcb\x16\x6c\x49\xd2\x08\x92\xa0\xe7\x6c\x77\xf9\x5e\x7b\x34\x0b\x02\xa7\x50\xd6\xed\x11\x87\x4a\xc1\xe4\x77\x33\x1a\x23\x9c\x02\x67\xd3\xbe\xd2\xfb\xe7\x91\x91\x25\x59\x16\x86\xcc\xe5\xd5\x06\xd4\x7a\xa3\xaf\xc0\x85\x40\xc0\xde\xe3\xe2\x8f\xfd\xe2\xf5\x76\xbd\x1b\xe0\x02\x25\x11\x59\x88\x7e\xe7\x72\xf3\xb2\xfa\xa3\x47\xa3\x49\x22\x04\x27\x36\x43\xb6\xfb\x69\xa6\xf5\xe3\xf2\xc7\xc8\x09\x94\x44\x80\x00\x4b\x7d\xa9\xf2\x76\x65\xea\xc5\x0a\xf1\xac\x0f\xd0\x34\x77\x2e\x05\x41\xe8\x7c\x53\x92\x24\x92\x84\x86\x4a\x51\x4a\x38\xb6\xd8\x09\xd8\x45\xe2\x5d\xc4\x3b\x3c\x81\x5c\x9c\x27\x22\x54\x8c\x45\xec\xda\xee\xe1\x99\xba\xfb\x56\xb1\x21\xeb\x3c\x98\x06\xed\xf1\x59\xca\x12\x8d\x1c\xcd\xa2\x46\xfe\x9e\x3e\x89\x22\x89\x4a\x43\x2c\x5f\x18\x43\xb7\x83\x02\x8e\xef\x55\x09\x93\xcf\xaa\x74\xa8\xd1\xfa\x9e\x67\xed\x12\x70\x81\xa0\x88\xc6\x06\xa2\xc3\x55\xac\x05\x33\xdd\xb3\xd5\xe1\x70\x2a\xf3\xd6\xaf\x7e\x2d\x79\x82\x20\x65\xa4\x99\x2d\xc0\x65\x7f\xdd\x61\xa5\x75\xe0\xf8\x57\x71\xff\xdd\x9e\x9c\x2d\xa3\x01\x49\xd1\x34\xfc\xf3\x94\xcb\x8f\x41\x26\x4c\xd2\x20\x06\xb4\x29\x48\x85\x91\xff\x09\x7b\x54\xa1\x9b\x07\xe6\xbb\x8d\x8e\x06\x2a\x86\x9e\xf3\x76\x94\x5d\x1e\xbd\x4d\x1a\xe8\xcc\xc2\x8b\x8d\x51\xaa\x0e\xe3\x0c\x9b\xa4\x44\x84\xe8\xca\x1d\x51\xdf\xc6\xd0\x25\xcd\xce\x03\x4a\xb9\xc4\x17\x73\x8f\x82\x27\x9d\x07\xec\xa7\x22\xa5\x52\xc4\x26\x3e\x44\x46\xae\xc9\x89\x20\xac\x74\xfa\x04\x82\xf2\x77\x2a\x46\x92\x46\x34\x72\xb4\xdc\xae\x94\x7c\xa9\x72\xd2\x0d\x83\xd0\x26\x7e\x76\x7d\x34\x3a\x19\x94\x12\x82\x21\xf4\xef\xb7\x9b\xd7\xdf\xfc\xdf\x62\x8c\x87\x16\x28\x18\x34\x68\x27\xb9\x04\x56\xb9\x33\x94\x95\xb2\x46\xc6\xb4\x6a\x96\x2c\xdc\x0e\xcd\xd2\x18\xe3\x22\x93\xe8\x5c\xf2\x16\xde\xaa\x31\x97\x8a\xa4\x19\x4f\x31\x58\x95\x55\x29\x79\x7b\xd3\x7d\x9e\xa1\x8e\xe3\xaf\xff\xeb\xae\xa1\x38\xa5\x0e\x30\xa2\x60\x88\x21\x72\x23\xc0\xe8\x82\xe2\x4d\x5b\xd6\xb3\x6b\x37\xad\x89\x32\x22\xc4\xc7\xd7\xa3\x7b\x4d\x3c\x0c\x58\xec\x50\x00\xf9\xb1\x80\x97\xaa\x3a\x3c\xf2\x89\x21\xa6\x3c\x0e\x70\xe5\xe5\xcd\x0b\x70\xb5\x29\xfd\xee\x49\xb9\x0e\x1d\xc7\xca\x72\xb5\x19\x25\x18\x24\x15\x21\x75\x84\x4c\x3f\x20\x37\xbe\xec\xa4\x85\x53\x52\xc1\x43\x66\x90\xda\xed\xe9\xf8\xcf\xdb\xc5\x6f\xb3\x38\xa3\x6b\x5d\x32\xb3\xa9\x6c\x49\x65\x46\x8d\x8c\x37\x3f\x35\x56\x75\xb5\x0f\xb5\xe6\x67\xa4\xd4\x86\x5e\xb0\xcd\x0f\xb0\x2a\xf8\xd1\xf7\x75\x4b\xaa\xa2\xd8\x75\x2e\xf7\x94\x7b\xee\x98\xce\x98\xdd\x6c\xf7\xb6\x1f\x7a\xdf\xed\xb8\xf5\x81\x5f\xe0\x23\x24\x85\x28\x41\x95\xc6\x86\x7f\x42\x34\x06\xd1\x8c\xf6\x70\x0a\x89\x30\x32\x50\xfc\x82\xc8\xcd\x8d\x10\x12\x71\x24\x5f\x8e\x27\xf2\x91\xe7\x98\xee\xb2\x1f\xe1\x91\x97\xe7\x21\x84\xda\xfb\x8b\x54\xb3\x58\x0e\x31\x7f\x8b\xb7\x1a\xa0\x17\x1a\x9d\x48\xca\x4a\xaa\x93\x34\x4e\x7c\x61\xc3\xd6\x03\xc6\x37\xa3\xd3\x04\x5b\x1b\xd1\x91\xb8\x34\x16\x3a\xe5\xce\x89\x7a\x81\xa6\xf3\x2f\xc6\xe5\xc5\x7e\x19\x86\x41\x9c\x32\xc3\x7f\xd0\x44\x83\x4c\x8d\x0c\x83\xd4\x40\x88\x9b\x23\x94\xed\x55\x75\x35\x37\x18\x28\xea\x0f\xa8\xca\x15\x04\x71\x37\x98\x7d\x93\x61\xa0\x33\x47\xd9\x8a\xbf\x98\xff\x69\x3e\xdd\xb5\xfe\x37\x19\x92\x30\x72\x54\x27\xeb\xa6\xe0\xa5\x32\x2a\x84\xdb\x96\x4f\xfa\x71\x64\x48\xb8\x02\xe8\xcb\x07\x1e\x17\x6f\xb7\x30\x37\x0a\x02\x0c\x10\x9f\x56\xbf\x6f\x96\x9b\xf5\x53\xff\xf7\x08\xbb\xd6\xab\xe3\xb8\x80\x25\x43\x4a\x53\x03\x98\x42\x1d\x9e\x01\x23\x9e\x0c\xa9\x4c\x68\x0f\xc2\xb1\x56\x61\x5c\xb7\x90\x61\x94\xc5\xc8\x2f\xcc\x8b\xa2\xb3\x2b\xbb\xf3\x71\xfa\xd5\x42\x46\x4d\x77\xb6\x0d\x17\x2f\x82\x36\x37\x8c\xc7\x28\x4f\xfa\xb0\xf9\x81\xe2\x9f\xeb\xe5\x0a\x9b\xc1\x77\xfb\xe7\xd5\xcb\x72\xf5\xb4\x5b\xdc\x3b\xb7\x27\x64\x3c\x0b\xfa\x46\x29\x74\x3b\xae\x6d\x1c\xee\x0c\xe0\x98\x80\xc3\x54\xec\xda\x64\x65\x88\xbb\x5c\x62\xe9\x6b\x14\x14\xd0\x1a\x15\x81\xd1\x46\x18\x26\x71\x88\x95\xf6\xd5\x6e\x39\xd8\xd9\xc2\x24\x89\xd0\xdf\xf0\x29\xe0\xd9\xc2\xb4\x0c\x53\x6a\x5a\x03\x9a\xd3\x61\x81\x8e\x92\xcd\xd8\xe4\xc2\x5d\x29\x23\x24\x31\x69\x9a\xce\xc8\x28\x8b\x25\xf1\x9f\x22\x63\x21\x56\x43\x17\xdf\x17\xeb\x87\xc5\xcd\xc3\x6a\x7f\xb3\x79\x7a\xdd\xd2\xfd\xf6\xf5\xf9\xf9\xe1\x5f\x7e\x98\x0a\x10\x7a\xe1\x57\x64\x69\x68\xf7\xaf\x43\xa3\x64\x98\x01\xd3\xd0\x0b\xce\x1f\x2d\x79\x8f\x67\x1f\xf5\xef\x80\x13\xc9\x6d\x5d\x72\xed\x9e\x93\xce\x85\xea\x6e\x7c\x6a\xaa\x6f\xd2\x8b\xcf\x19\x29\xc8\x4b\xb0\xa1\x3b\x21\x8b\xd0\x56\x19\x51\x09\xf4\x42\x47\x02\xa9\xa8\xd8\x1b\xc7\xce\x61\x5e\x39\xbc\xd2\xf8\x5d\x73\x09\x8e\xe4\x6c\x71\x3c\x4e\x0e\xca\x30\xc3\x20\x6b\xb7\xbc\x75\xe9\x9a\x50\x4a\xad\x86\x2f\xcd\x70\xfd\x34\x7b\x5d\x57\x07\x2f\x85\x79\xe5\x96\x15\xe1\x18\x0e\x1a\x3d\xc1\x09\x71\xd4\xbc\x49\x51\x54\x60\xbb\xd2\x63\x5e\xe6\x8f\xb0\xae\xeb\xef\xd0\xdc\xe6\x9f\xe3\x4f\x34\x4d\x50\xcc\x50\x4b\x0f\x2c\x71\xa8\x22\x8a\xf5\x01\xdf\xdc\x91\x0f\xad\xf0\x5f\x52\x5d\xcc\x70\x9a\xc8\x50\xc5\x06\xdc\xbe\x1f\xa2\x29\x16\x45\xb1\xa8\xdf\xae\x92\xbe\x4e\x1f\x95\xc7\x08\xe7\x59\xcb\xca\x5a\x9d\xed\x04\x5b\x20\x43\x90\x42\x98\xa5\x27\x4e\x6f\xfb\x2f\x27\xfd\x21\x43\xd0\x71\x6a\x7b\x83\x9f\xeb\xea\x90\x17\xde\x0b\x0f\x75\xcc\x54\xff\xb8\xea\xe6\xfc\xd8\x1f\x4a\x18\xb6\xbf\x2c\x14\x3f\x0c\xcd\x7e\x14\x70\x4d\xd0\x95\x2e\xd1\x84\xed\x4c\xf3\xcc\xf8\x66\x22\x12\x45\x46\x67\x07\x4d\xf8\x28\xfe\x9f\x0c\x64\x69\xe0\x91\x22\x4d\xb7\xb9\xfe\xc5\x4b\x76\xe7\x65\x5a\xa5\x13\x08\xe8\x85\xcc\xaf\x8c\x08\x18\x11\xb6\x75\xa9\xaa\x7f\x80\xb3\xb5\x11\x0d\xb4\x9a\x20\xce\xaa\x53\xdb\x7d\x97\x9b\x09\x89\xa5\x8c\x68\x14\x3a\xf5\xee\x2d\x2f\x78\x7d\x9e\x9f\x60\xb3\xd3\x3a\x8a\xac\x42\x01\x57\x6a\x2c\x1e\x7e\x01\xac\x9f\x7f\xcc\x48\xd8\xfa\x19\x7e\x20\x43\x19\xd2\xdd\xe6\xd5\x79\x33\x3e\x9d\x45\x12\xc1\x58\xab\xdb\x97\xcd\xb3\x7b\x78\x26\x32\x64\xcd\x90\x03\x85\x87\x25\x32\x91\xb7\x30\xcc\x9f\x46\x4c\x18\x0c\x9b\x38\x9d\x9f\x07\xc8\x41\x77\x54\x05\xa9\x35\x0f\x58\xad\x9e\x6b\x15\x94\x11\x03\x9a\xd8\x64\x0e\x6e\x89\x76\xd4\xcd\x79\x48\xca\x3c\x5e\x40\xc4\x9e\x1a\x07\x19\x5a\x31\xc3\xd0\xf2\x52\x15\x70\x01\x72\x1e\xff\x56\xcc\x93\xd8\x76\x8c\xae\x15\xf0\x66\x9b\x97\x12\x1e\x78\x63\xc1\xe3\x93\x3b\x8b\x65\x8a\xef\x66\xf7\x55\xad\x7e\xbe\x9c\x9c\xd2\x9b\x8c\x62\x95\x21\x92\xa7\x3c\x1d\x50\x5f\xc1\xf4\x04\x7b\xe7\x33\x4a\x44\x88\x19\x5d\x97\xd5\x34\x68\x32\x57\x8d\x93\x51\x02\x0c\x23\x1d\x2b\x93\xb8\x28\x15\x92\xb7\xfd\xc5\x84\xf9\xb5\x51\x19\x46\x21\x51\x9a\xc9\x4c\x8c\xc4\x59\x8f\xd3\x9c\x4e\x94\x85\x06\xe1\xc0\x0d\xaf\xd3\x79\x58\xe3\x94\x11\x0f\x83\x01\x0d\xcb\xb2\x3a\x1c\xaa\x72\x08\x69\x9e\x96\x22\x22\x11\x12\x82\xbe\xf8\x7b\x5e\x2b\x83\xfd\xf3\x04\x9f\x32\x12\x1c\xd0\xf0\xe3\x6e\x62\x01\x4d\xe3\xdb\x11\x32\x88\xa1\xe7\x2f\xf3\x11\xda\x78\x94\x8c\x0c\x38\xd8\x74\x49\x0f\xb5\x2b\x26\x5f\x5a\x51\x89\x01\xe6\x84\xbf\x60\xcc\xe1\x75\x59\x7d\x94\x11\x48\xc0\x8c\x34\x6e\xfa\xfb\x70\x7f\xbb\xf8\xd7\xd6\x3d\x05\x80\xf1\xae\xaa\x4f\xa8\x79\x51\xec\xf8\x07\x94\x03\x1c\x86\x8c\x74\x1c\x4a\x53\x72\x3a\xee\x0f\xdc\x76\xd0\x48\x16\x50\x93\x14\x83\xf6\x7d\x57\xdd\x58\x49\x02\x71\xea\x93\x16\x2c\xe0\x1a\xad\x10\x37\xe0\x0e\xf7\x67\xa2\x05\xf6\x6d\x6f\xb1\x96\xe9\xfc\x62\x7f\x16\x8d\x0d\x9b\x59\xeb\x58\x94\x8b\xb3\xe1\x48\xed\x47\x48\x86\x8a\x45\x88\x2e\x30\x60\x24\x4f\x43\x6a\x87\x84\x61\x88\xb8\xf5\xba\x73\x3d\x25\x92\xab\x1a\xe1\x7d\xe8\x73\xec\x2c\xcc\x02\xac\xd7\xe9\xce\x53\xb0\xa5\xf3\x31\xf7\x9b\x64\x51\x90\xa1\x34\xe8\xf3\xe6\x6e\xf3\xb8\x71\x67\x46\xc4\x28\x15\x7e\xe6\xf0\x15\xd2\xfe\xaf\x20\x5c\xaf\x6f\xe7\xae\x9c\x07\x99\x1f\x16\x51\x9e\x18\x7a\xe8\x47\xfe\x33\x3f\x9c\x0e\xf7\x15\x2f\x5e\x80\xcb\xf7\xfe\xc1\x22\x2a\x91\x98\x6c\xf1\xb0\x1e\xee\x3d\x2c\x4a\x0c\xd7\x46\xe3\xa5\xae\xe6\xf2\x0f\x2c\x52\x19\x66\x6c\x8b\xaa\x7c\xb3\x4e\xc8\x64\x04\x63\x01\x2e\x0f\x93\xda\x19\xcc\x65\xc6\x58\x12\xf7\x22\x36\x9e\xd4\x62\xd6\xbc\xb3\x38\x36\xa4\x48\x6d\x75\x54\xd5\x57\x89\x4b\xbd\x79\xaf\x4e\x57\xbc\x1c\x96\x04\xdc\x79\x7e\x3d\x03\xce\x6f\x93\x7e\x9e\xde\x1d\x61\x49\x42\x6d\xde\xf3\x03\xca\x9e\x0f\x72\xd4\xe0\x25\x59\x22\x89\x69\xbf\xac\x8e\x67\x4c\xe3\xff\xe5\x3a\x60\x89\x0c\x91\x12\xa7\x84\x9f\xed\xba\x3c\x9e\xda\xe7\xba\xd2\xb9\x9f\x10\x89\x62\x18\xad\xc1\xb1\x92\xef\x9d\x05\x75\x07\xd2\x30\x0d\x0c\x8d\xdb\x49\x14\x70\xae\x4e\x35\xf3\x87\x58\x42\x2c\x02\x06\xea\xce\xe7\x7c\x84\x75\xd3\x9c\x5c\x57\x7a\x5d\x7d\x29\x6d\x04\x7e\x67\xe1\x01\x7f\x3b\xaf\xf0\xf7\xce\x1a\xbf\xf7\x2c\x8c\x75\x60\x9b\xdc\x2c\xcf\xee\x00\x2f\x2e\x59\x16\x87\xe8\x85\x3c\xe5\x25\x3c\xec\x6e\x2d\xa3\x89\x7b\xb2\x2c\x11\xae\xa3\x76\x51\xe6\x07\x5e\x0c\x21\x84\x92\x71\x4a\xb0\x8d\x69\xbd\xdc\xec\x0d\xff\x96\x3b\x91\xf3\x08\x13\xdb\x05\x6f\x0c\x2f\xc9\x5e\xd3\x2e\xb6\xdb\xdb\xbb\xf3\xe3\xa4\x70\x20\xd5\x4d\x8d\x14\x1d\xa3\xd4\x15\x13\x41\x84\x10\x84\x4f\x93\x6d\xcf\xab\xf2\x99\x37\x53\x9e\xb4\x6e\x58\x1c\x53\x47\x17\xa6\xe0\xe7\xcd\x79\xeb\xd2\x6c\xfd\xab\x10\xa9\x61\xcb\xc3\x64\x3f\xf2\x9b\x0d\x44\xe7\x26\x43\x65\x84\xbc\xb8\x2f\x5c\x8d\xde\x87\x90\x1c\x69\x20\x5f\xcb\x5c\x56\x75\x79\xc9\xc4\x2d\x99\xd0\x59\x4c\x1c\x62\xc5\xf6\x8e\x62\x30\xe2\xae\x21\x43\x08\xe2\xbe\x24\x8f\x02\xf4\xd8\x62\x7c\x25\x1b\xc4\x64\x16\x27\x7d\xb5\xd9\x74\x67\x98\x9e\x2b\x50\x97\xec\x31\x92\x29\x92\x46\x96\xc8\x64\x7d\x3b\x3d\x96\x09\x8c\xd4\x0e\xae\x7d\x6d\xdb\xc2\xf4\x3d\x29\x1d\x62\xd1\x77\xf5\xf3\x08\x75\x8e\x85\x8d\xc2\xe2\x51\xff\xee\xce\x3d\xeb\xcb\x33\xa5\x35\x3a\xd6\x0f\x55\xdb\x56\xce\xef\xfa\x75\x21\x95\x69\x09\x2a\x72\xaf\xf3\x85\x7f\x78\x6b\xa5\x21\xa0\x96\x3d\x62\x04\xcb\x1e\x55\x92\xfd\xd8\x30\xca\x86\x89\x8f\xf2\xbc\x6d\xf9\x07\x0c\xab\xc4\xbf\x40\xa6\xb9\x70\x34\x0e\xa8\xc2\xbc\x0f\x1a\x56\x7c\xf5\xd8\xfc\x71\x2c\x72\xbf\x55\xc6\x41\x98\x28\x6b\xa8\x05\xc7\xb4\xc7\xdf\xe8\x5d\x18\xdf\x6f\x1c\x44\x0c\x9d\x94\x23\x92\xf6\xa2\x2d\x99\x37\xab\x71\xc0\x18\xfa\x1f\x37\x9b\xd7\xa7\xdd\xbf\xc6\x8b\x30\x26\x24\x8e\x1c\x71\xef\x79\x7b\x84\xfa\xe0\x8f\x44\x2c\x36\x8d\x03\x5d\x54\xb5\xac\xc7\x1d\x59\x32\xa6\xd4\xf0\x95\x35\xb6\x76\xd6\x0c\x56\xca\x95\x78\x6d\xe6\x75\x51\xc5\x71\x29\xa0\x73\xd4\x39\x94\x0f\xf9\x65\xd2\x35\x0e\x79\x4c\x6d\xfd\xf9\x2e\x2f\x70\xcc\x37\x70\xdd\x02\x32\x0e\x75\xe0\x62\xf1\x2d\x6f\x37\x5f\x17\xe7\x47\x71\x88\x29\x41\x28\x4d\x99\xa5\xdf\x44\xe2\x28\x61\x56\x6d\x08\xf1\x03\x8d\xad\xbe\xdd\x3a\x99\xc3\xc9\x95\x98\xa5\x40\x3f\x35\x60\x71\x85\xe3\xe3\x31\xe1\x18\xf9\x1f\x0c\x4b\xf4\xdd\x2c\xe9\xbb\x8c\xe3\x38\x55\xc2\xca\xce\xec\x79\x59\x95\xe7\x43\x75\x6a\xf6\x53\xc4\x8b\x1b\x9d\x28\x07\xa6\x33\x06\x3a\x87\x66\x18\x8b\xc4\x71\xa6\x70\x05\xac\x4a\x55\xd5\x43\x6b\x14\xa7\x99\x0a\xed\xa9\x37\xa8\xb5\x61\xbb\xfa\x7b\x68\x46\x9c\x85\x92\x27\x6e\xf9\xf8\x84\x71\xf7\x9e\x88\x1f\xc2\x29\x92\xf7\xb6\xc0\xeb\xdb\xea\x6b\x62\x0a\xe3\x8c\x73\xdc\x2f\xb7\x27\xc5\xcb\xfb\xca\xc8\xd4\xf4\x9d\x9b\x7f\x6b\xe5\xc7\x82\x48\x61\x77\xff\x39\xdf\xf6\xca\x32\x10\x89\xc6\xb8\xde\xd8\x4f\xfb\xf1\xbc\x9a\xf0\x6b\xa3\x1c\x11\xe3\x95\xd3\x33\x81\x4d\xfa\x65\xd5\xc2\x08\x3a\x2e\x63\x21\x8c\xa2\x02\xbe\x96\x21\xd2\x6a\x5d\x7a\xe5\x50\x19\x0b\x8b\xfd\x36\x20\x62\xb4\xbe\xf5\x4d\x4f\x1b\x34\x7d\x46\x6d\x00\x03\x9d\x63\x71\x83\x10\xaf\xb5\x9f\xc4\x32\x90\xb8\x4c\xb1\xdf\xd9\xff\x31\x04\x88\x7c\x2e\x7b\x67\x59\xc8\x27\xaf\x5f\x29\xc2\xa8\xc7\xd6\xbc\x54\x45\x71\x7b\x51\x9a\x8a\xbb\x50\x9f\x7a\x42\x51\x04\x68\x71\x0c\x69\x6e\xce\x28\x4e\xda\x56\xf5\x1d\x5c\x9c\x94\x49\xec\xc8\xde\x3f\xae\x9f\xd6\x8f\xaf\x8f\xfb\xdd\xe2\xe5\xbe\x37\x1e\x3a\xcc\x10\x3f\xb2\xab\xf3\xb7\x37\xa8\x97\x55\x55\x74\x8e\x9e\x3f\xac\x0d\xf4\xe6\x71\xb1\x7e\xc2\x1e\xf4\xa5\xeb\x3e\x90\x49\x10\x65\x98\xaa\xe4\x65\x79\xe2\x85\x91\x3d\xeb\xb6\x11\x0f\xd3\x96\x49\x10\x73\x8c\xc4\xbf\xe7\xb2\x1d\x09\xe1\xcb\x24\xe0\x22\x70\xdd\x80\xdd\xe7\x71\x25\xe5\x67\xa8\x6f\xf9\x79\xfe\x5b\x27\x24\x4d\x32\xd2\xf3\x84\x9c\x8a\x4b\xa4\xc6\xaf\x6d\x6e\x42\x94\x40\x16\xbf\xaf\xaa\x2e\xd4\xf2\x74\x34\xc5\x81\xce\x51\x70\xce\x7d\x42\x03\x86\x98\xa5\xc5\x5b\x9d\x23\x7c\xd3\x32\xf8\xf7\xeb\xad\xfb\x0e\x06\x53\xc2\xdb\x9e\x92\xd3\x1e\x0b\x03\x89\x74\x91\xb9\x21\x34\xdd\xe6\xe5\x5b\x01\xb3\xdc\x71\x32\x09\x21\x42\xb2\x86\xe6\x8b\x1f\x47\x6f\x27\x62\x11\xce\x24\x43\x46\x6e\xbb\xfb\x95\x3f\x1a\xc7\x0c\xdc\xbc\x7e\x00\xae\xa0\x46\xfe\x1e\x17\x14\x25\x4c\x53\x63\x9b\xfa\x76\xaf\x79\x20\xb6\x4c\xe2\x00\x90\x8e\xe1\x9d\xd7\x6a\xc9\x8f\xb8\xe4\x07\xd1\x4c\x12\x2b\x89\xfd\xb0\xbc\x0b\x43\xee\xaa\x7a\x09\x75\x9b\xeb\x5c\xce\x15\x2c\xe6\xc0\x99\x49\xac\xb9\x70\x64\xa4\xc7\xaa\x1d\x56\xad\x93\x04\x98\xa5\xef\x41\xb6\x11\xb3\x09\x0d\x05\x3b\xec\xb8\x34\x11\x82\x0f\xac\xe7\x0e\x0e\x47\xab\x02\xed\x2e\x95\x65\x1a\x7b\x31\x3a\x13\xd9\xdd\x63\x85\x9f\x6e\x02\x97\x4a\x32\x61\x92\xe7\x36\x4c\xbf\xaf\xab\xd3\x24\xf1\x9b\x64\x92\x82\xa5\xb4\x44\x23\x36\xcd\x8d\x5e\xf9\xd7\x9d\xad\x82\x38\x1b\xf4\x41\x8f\x90\x3f\x09\x17\x80\x09\xa7\xcd\xf3\xea\x69\xbb\x79\x7d\x59\xae\xac\xca\xb3\x1f\x20\x09\x3e\x68\x01\xa5\x1a\xc2\x62\x12\x91\x9a\x64\x94\xe4\x45\xf1\x90\x8b\xed\x34\x8b\x97\x08\xa1\xd0\x8a\xbd\xf3\x06\xbb\x16\x3b\x8f\x6f\x2c\x7b\x27\x13\x29\x34\xf7\x50\x8a\x51\x57\x9a\x4c\x94\xce\x7a\x12\xbd\x91\x16\xf3\x20\x33\x93\x00\x4b\x8c\x07\x8e\x84\x24\xcf\x50\xe7\x95\x9f\x95\x90\x1a\x0d\x30\x47\xa0\x7f\x53\x55\x1f\xd3\x6d\x3c\xd1\x32\x45\x21\x38\xc1\xcb\x0f\xa8\x0f\xd8\x5d\xfa\x02\xff\xb1\xd7\x48\x83\x20\x64\xae\x23\xb4\x1a\xeb\xdc\xca\x34\x20\x0a\xb1\x70\x8f\xe7\x7f\x3d\x2c\x67\x43\xc0\xd3\x05\x34\x29\x0d\x38\x07\x23\xce\x5f\xb4\x43\xca\x79\x99\x12\xa0\x48\xf2\x75\xcb\x6b\x28\xbf\x9d\xdc\x7e\x90\xd2\x38\xf3\xcc\x12\x76\xfa\x0c\xc4\xce\x65\x1a\x32\xb3\xab\x6c\xa1\x6c\xfa\x3f\xc6\x19\x36\xfc\x1d\xac\xcb\xb9\x29\x5d\x1c\x36\x7e\x86\x88\x51\x4c\xec\xd4\x16\xfb\xfc\x9b\xff\xbb\xa1\x05\x31\xa2\x66\x67\xa8\x6f\xa6\x85\x4b\x37\x30\x56\xd8\x94\xb3\xf1\x46\x3a\x8d\x20\xc1\xc2\x3f\xc6\x18\xca\xc2\x0c\x5f\xb7\xb7\xee\x38\x23\xc6\xd4\xe6\xad\xc4\x1a\x8f\xff\x3b\x8b\x89\x97\xb5\x79\xa9\xaa\xc3\xc2\x15\xa7\x26\x8d\xaa\xce\xd5\x4b\x99\xc8\x10\x1e\xf8\x95\x97\xaa\xfa\x22\x63\x8f\x28\x8d\xc1\x04\xa1\x9d\x43\xfc\x5a\xe6\x63\x82\x65\xd9\x85\x65\xb8\x5f\x38\xb2\x89\x7e\xff\x1a\xf7\x38\xdb\xe1\x29\x63\x98\xc9\x12\xd8\xc0\x74\xc8\xcb\x1e\x1d\x38\x7e\x23\x29\x18\x50\x4c\x17\x5c\x2e\x5e\xdc\xcd\xf0\x40\xc7\xcc\x6f\x15\xfb\x37\x7e\x80\xbd\x9a\x30\x1a\xc9\x54\x04\xb6\x1c\x52\x00\xf7\x45\xa7\xc5\x0c\xc7\xf6\xac\x5f\x9e\x0a\x99\xa0\xf8\x8d\x1e\x96\x7c\x47\x13\x3e\x45\x54\xb2\x31\x27\xb6\xe8\xd3\x6d\xd2\x4a\xf0\xcb\x76\x95\x69\x06\x60\x10\x83\xa7\x8a\x04\xf8\xd9\x9b\xbc\x8b\xa7\xb6\x27\x31\x25\xd7\x97\xa9\xa2\x71\x66\x9a\x21\x44\xf5\x13\x71\x96\xe3\x3b\x51\x34\xe6\xca\xbf\x91\xf5\x72\xd3\x23\x1d\xaf\x60\xb6\x52\x80\xc8\x08\x2b\x57\x85\x32\x09\x56\xe7\x4f\xa6\x9a\x72\xb0\x19\x87\xd5\xcf\x63\x91\xcb\xbc\x1d\x31\x34\x18\xf8\x7d\x1c\x79\x70\x66\xaa\x85\x88\x4c\xfd\x86\xb7\xef\xb7\xbc\xe5\x7b\x4d\xdc\xa6\x9b\x05\xa1\xc9\xa8\x71\xa5\x96\xef\xa7\xf2\x83\xed\x2a\xcf\x29\xef\xc7\x44\x80\xb6\xf5\x8b\x7f\xc2\x92\x1f\x43\xff\x77\xab\x89\x58\x5b\xd2\x5e\x50\x08\x95\x9e\x42\xef\x33\x92\xc6\xa9\xb6\x52\x02\xbb\x6a\x7a\x50\xc4\xb8\x00\x4d\xb9\xc7\xb9\x90\x19\x01\x8e\x52\xe3\xcf\xdd\x9a\x34\x82\x58\xce\x1d\x1d\x4e\xa4\x8c\x0a\xa3\xdc\x88\x5e\x5e\x79\xbe\x90\xd2\x74\x4b\x28\x0b\x75\x82\xa0\x1f\x0d\xf0\x8c\xf5\xdb\xce\xfe\x8d\x50\x34\x76\x60\x24\x22\x64\xd4\x50\xd5\x33\x3f\x5f\x2b\x1a\xb9\xb1\x10\x39\xb3\x69\xb2\xb3\xed\xc4\x76\x66\x8c\x98\x9c\xfe\x3f\x4e\x4d\x9b\xeb\x33\x32\x21\x75\xdb\xc3\x8f\xbc\x2d\x9d\x5e\x59\xea\xc7\x1a\x19\x2e\x74\x2f\x36\x9f\x50\xb7\xef\x75\xf5\xe5\x76\xda\x8c\xc5\x11\xf2\x81\x8a\xd3\x05\xbe\xec\x5a\x09\x60\xfc\x64\x2c\x0b\xd0\x4e\xec\xb7\xbb\xc5\xcb\x6e\xec\x90\x66\x31\x8b\x30\x7b\x7a\x57\x79\x3e\xbd\x61\x75\xc1\x8e\x4a\x78\xe4\x54\xa2\xd1\x7b\x7c\x2d\xf1\x65\xfa\x90\x6f\x84\x98\xc9\x12\x95\xf5\x79\xa3\x89\x59\xca\x12\x08\xe3\xd8\xc1\x1a\x0c\x26\xd4\x1e\x49\x63\x82\x5e\x94\xc9\xa1\x3e\xc2\x2d\x9f\x4e\x9a\x34\x15\xa6\xb1\xab\x28\xaa\xaf\x1f\x55\xfd\x01\xf5\xae\xf2\x81\xc6\x05\x54\x64\xf2\x1e\x32\xca\x79\x60\x5a\x41\x7a\x6b\x9d\x65\x69\x86\x19\xc8\x2d\xff\x04\xd4\xb3\xb1\x7f\xe7\x84\x39\x20\x39\xe6\x0b\xfa\xbf\x67\xd8\x0d\x97\x63\xf4\xfe\x05\xca\x00\xf0\xc7\x3f\xc5\x89\x42\xc2\xb7\x2d\xd7\xe0\x0a\xd5\xcd\xee\x65\x35\xa4\x2c\x96\x19\x97\x19\x4a\x67\xe6\xb2\x2a\xf3\xff\x74\xc6\x6c\x53\xbe\x55\x9e\x29\x43\x66\x1c\x0c\x65\x4d\x67\x93\x27\xac\xf1\xe3\xe9\x26\x62\x15\x3b\xdd\x91\xfc\x00\xbe\x50\x85\xd8\xf8\xc9\xbd\x09\x91\xe0\x6b\x2e\xab\xdf\x07\x3f\x25\x63\xc0\x82\xcc\xfe\x70\x76\x9e\xf4\xd0\x95\xca\x54\x4c\x99\x70\x0b\x2e\x2f\x5b\x9e\x97\x46\x9b\xc4\xe7\x05\x32\x05\x80\xb1\x8d\x71\x48\x9c\x56\xa5\xea\xa6\xfd\x2d\x48\x93\xe7\xec\x87\x6a\xdd\xc3\xc0\xa1\x28\x66\xb0\x81\x19\x24\x1c\xb3\xe1\xbd\xfc\xb8\xd9\x4f\x7f\xb9\x49\x64\x90\x09\xee\x27\x09\xa2\x3d\xdd\xaf\x82\xc8\x70\xf7\xd9\x89\xaa\x54\xa4\xff\xab\x21\x99\x71\x73\xdb\xa1\xd8\x86\xa5\x9a\x4c\x07\x31\x02\xf5\x5c\xc9\xfd\x91\x77\x41\xd8\xc5\x8e\x32\xb4\x51\x3c\xb0\x98\x88\xdd\x57\xf5\x8c\xf2\x32\x57\x19\xba\x47\x2b\x84\xd3\x44\x61\xb8\xd1\x40\xfb\x7d\xff\x12\x8d\x5f\x0a\x8f\x22\x11\x66\x3e\xe5\xbf\x29\xe1\x92\x7d\x56\x72\xa6\x09\x7a\xe7\xb6\xb8\xdf\xb9\x86\xf6\x49\x78\x1c\x04\x68\x78\xf3\xe6\x91\x1f\x8f\x13\xbb\xca\xe3\x80\xa5\xa6\x24\x55\x6e\xc1\x73\xaf\xf4\x7c\x1c\x92\xc7\x09\xa0\xed\xdb\xdb\x26\x70\x68\x3a\x13\xd0\xfe\x36\x53\x15\xe0\xb1\x0e\xb1\x89\xde\x25\x69\xfa\xa6\x5e\x94\xb9\xe8\xee\x39\x73\xb7\x9c\x04\xa1\x32\xbd\x04\x6f\xdb\x9e\x9e\xbf\x0b\x6e\x67\x3f\x33\x4f\x42\xaf\x65\xf1\x78\xde\xb6\x95\x97\xc3\x96\x3c\x11\xd2\x25\xb7\x7e\x54\x7d\x98\xc6\xd3\x40\x60\xcf\x24\xbe\x31\x38\x54\xe5\x0b\x2f\x3f\x0c\xb0\xeb\xd7\xa6\x83\x67\x14\x84\xa1\x2f\xb3\x8c\xa1\x0f\xf9\x7f\x4e\x36\x75\xee\xae\x9e\xb1\x88\x58\x42\x92\xea\x13\xea\x6d\xfe\x56\x0e\xc2\x99\xd1\x7b\xc9\xb4\xc2\xc5\x04\x2a\x6f\x2d\x4b\xd6\x8c\x67\x3d\x8c\xaa\xfb\xed\x82\x73\x16\xd3\x60\xc0\x5b\xf3\x03\xe0\x43\x0d\x42\xf8\x81\x53\xc7\xb9\x00\x35\x60\x90\xba\x05\x50\xbd\x3e\xf0\xe8\x96\x84\xce\x42\xed\x93\x1d\x4d\x4f\x64\x23\xb9\x8c\x19\xb5\xf3\x11\xd1\xfe\x26\xdd\x32\xff\x55\x64\x9c\x21\x0e\x3c\x2f\xdf\xa1\xce\x5b\x50\xcf\xa7\xfa\x0a\x2a\x8f\x4b\x48\x02\xbb\x4d\x18\xda\x96\xee\x16\x9f\x79\xae\x5e\xa6\x82\x8d\x92\x4b\x4d\x32\x3e\xf0\xfc\x50\x2c\x17\x5b\xa0\x26\x03\x81\x4a\x61\x1d\x7b\xcb\x95\xf9\x5c\x77\xbe\xd9\xf8\xa7\x01\x82\xd8\x56\x0b\x30\x7e\xb8\xcd\x1b\x71\xaa\x1b\xcc\xa7\xcc\x36\xa7\x71\x00\x4e\x6c\xe3\x0a\x2a\x2c\xba\x97\xa3\xc3\x8c\xf8\xdc\xc0\x22\xaf\x6f\xeb\x6a\x94\x5a\xe0\x9a\x47\xc8\x76\xb4\xe5\x3f\xab\xc9\x01\x70\xcc\xa3\xcb\xaa\x0b\x02\x4d\xc1\xf5\x7e\x4a\x56\x29\xb9\x06\xc0\xf4\xc7\x47\x5e\x14\x0e\x15\x61\x0e\x89\x80\x18\xf1\x8e\x86\x17\x70\xa1\x11\x2e\x45\x10\x52\x69\x3b\x12\x9f\x2a\x05\x26\xfe\x1e\x7e\x77\x11\x44\x0c\x6d\x62\x17\x87\x2e\x11\xc9\x6c\xe5\x04\xc2\xd0\x40\x9a\xed\x38\x42\x8d\x50\x6c\xde\x6c\x2b\xdd\x4a\x7e\xdc\x94\xfe\x90\x0c\x10\x5d\xb9\x7c\xaf\xbe\x06\xa9\x0c\x41\x93\x14\xe1\xfa\x9d\x3f\xb1\x10\x63\xc9\xde\x91\xc5\x13\x21\x11\x08\xb7\xce\x1b\x4b\x4a\xe4\xfe\xce\x54\x10\x7b\x3d\x23\x17\xbe\x98\xb8\xc1\x42\x4b\x46\x6f\x4a\x84\x71\x10\x1b\xfc\x91\xcd\xa4\x3e\xe6\x83\xa0\x5b\x84\x5a\x23\xdb\x99\xf1\x30\x9c\xf7\xe2\x5e\xe9\xb5\x02\xe1\xf8\x27\xa2\x18\x1c\xd2\xf5\x47\x55\x37\xed\x92\x37\xc8\xa0\x6b\x74\xfd\x27\xf7\x13\x25\x89\xcd\x1c\x7d\x40\x39\x92\xff\x91\x22\x4a\x8d\x18\xc9\x48\x17\xbe\x4f\x6f\x39\x0f\x56\xb0\x2c\x0c\xb8\x49\x7e\x21\xdb\xc6\x0c\xbf\xa2\x14\x31\xd7\x9e\x3f\x61\xf1\x09\xdd\x07\x5c\x2f\x37\x88\xa5\xfc\x1d\xce\x33\x9b\xab\x48\xc0\x30\x4c\xb6\x60\xf1\x58\x8d\x95\x04\x72\x97\x4c\x74\xea\xc4\x52\xdc\x4a\x42\x54\x93\xc7\x23\xe4\x55\xf9\x8d\x37\xef\x9d\x39\xbf\xab\x6a\xb7\xc1\x88\x94\x18\xf2\x5e\xdb\x0a\xe2\x5d\x73\x87\xad\x70\xe3\x32\x66\xe0\xea\xc7\x53\xf3\x7e\xa5\x76\x20\x32\x46\x1d\x26\xe8\x26\x57\x2a\x2f\xdf\x2e\x88\xee\xa4\xc8\x54\xc4\xfa\xb6\x0a\x63\x4a\x36\xba\x97\x3e\x30\xa9\xd2\xfa\x4a\x21\x50\xf0\x20\x44\x62\x88\xc7\xf5\xd3\x6a\xe1\x6e\x8e\xcb\x18\xeb\x07\x5f\x79\x89\xf6\x63\x12\x04\x0b\xae\xb2\xc4\xba\x43\xab\x52\xad\x65\xe5\x34\x2e\xc7\xc3\x24\xa1\xb8\x0f\x1f\xf6\xdb\x47\x17\x2a\x0b\x49\x24\x2e\xe7\x5b\x23\xb8\xf3\xf7\xd2\xf6\x42\xa6\x11\x37\x6d\xe3\x79\xd9\x60\xf1\x4a\x3d\x7e\xf8\x97\xa9\x78\xe0\xd4\x2f\x7c\x15\x61\xed\xba\xf4\x27\xef\x0b\x12\xa9\x2d\x43\xeb\xba\x6c\x4e\xc8\xcb\x60\x73\xae\x57\xb3\xbb\xb3\x8a\x2a\xf6\x7a\x9a\xc4\x58\x4a\x79\xaa\xea\x83\x05\xb3\xa7\xee\x10\x8f\x5c\x98\xb9\xed\xac\xd7\xe5\xec\xd6\x10\x2a\xe6\x32\x02\x56\x97\x7b\x92\xe2\x95\x81\x94\xe8\x4d\x5f\x04\x04\x32\x00\xe3\x96\xf9\x8a\xda\x5d\x55\xf7\x29\xd5\xd1\x0b\x94\x44\x2b\xdc\x6e\xba\x68\xbc\xe8\x8e\xbb\x64\x90\xa4\x61\x12\x06\x43\x14\x88\x9c\xa4\x91\x24\x4d\x32\x69\x17\xfd\x37\x5e\x74\x86\xac\xf7\x7b\x65\x18\x1a\x29\x77\x33\xff\x3c\x4e\x97\x17\xb3\x3b\x89\x8c\x28\x18\x5d\x76\x5e\xab\x66\x2f\x8a\x13\xec\x71\xf3\x70\x77\x13\x85\x99\xec\x69\x7d\x6c\x63\xda\x7d\x55\xa1\xdb\x64\x9d\xea\xf9\xdd\x57\x32\x1a\xe2\xac\xbc\x2b\x38\x26\x7e\x3b\xff\x7e\x32\x22\xf4\xc4\xc8\x8f\x03\x09\x79\x7b\x34\x0e\x08\x75\x8d\x7b\xa6\xd3\xc1\x19\x18\x19\x93\xd0\x00\x07\xdf\x41\x7e\x4c\x2c\xe6\xb4\x1d\x5d\xc6\xb1\x40\x56\x6a\xae\xd4\x0b\x18\x4e\xda\xe6\x3d\x3f\xde\xe4\x08\xd7\xf8\x91\x97\x50\x9f\xfd\x7b\xba\x88\xb5\xc7\x74\x02\xfe\x92\xd2\xf1\xb2\x58\x52\xfc\xe9\xf7\x8d\x13\x53\xf1\xfc\xf2\xc4\xd4\xc6\xa0\x79\x47\x46\xc6\x90\x70\xe5\x7d\x9c\x8b\x46\x4f\x99\x10\x53\x15\xb7\xda\x85\xcd\xa2\x54\x77\x96\x5e\xe3\xca\x0b\x4f\x62\x8e\xe8\xf3\xce\x91\xec\x83\x29\x99\xe8\x18\xc5\x1f\x3a\x47\x73\x92\x5b\x97\x29\x31\x53\xc9\x76\x8c\x2e\xcb\xb6\x36\xd1\x33\x8a\x97\xbd\x96\x47\x8e\xb0\x86\xe1\x02\x24\x43\xff\x4f\xa6\x2c\xc3\xe7\xfc\x7d\xb3\x7c\xdc\x2c\x87\x2e\x85\x4c\x39\xc3\xc6\xcb\xa3\xd9\x69\xfa\xb6\x30\x77\x6e\xc6\x8d\x7b\x8f\xbb\x7d\xef\x6e\x5c\xd7\x3f\x1a\xa7\xc8\xec\x55\x44\x20\x53\x4f\xb3\x4e\xf6\x4d\x75\x00\x24\x00\x70\x87\xc3\x04\xed\x8b\x8d\x23\x0d\x33\xdf\xc8\x6d\x91\x82\x19\xc4\x07\x72\xb2\x75\x11\xeb\x42\xa9\x6b\x15\x47\x29\x12\x23\x0c\x84\xb6\xb6\x0b\x45\x16\x45\xe1\x22\x93\x66\xb8\x10\x45\x66\x48\xa1\xb7\x47\x5e\x7f\x8c\x5e\x8c\x10\x04\x27\xe4\x91\x9f\xd1\x2a\xa2\x91\x71\xc7\xb4\x41\x8a\x1f\xf2\xd2\x85\x7e\x4b\x47\xbb\x21\xa5\x8c\x65\x66\xf8\xa3\x6b\x40\x31\x41\xc7\xcb\x3b\x0a\xad\x27\x77\x2c\x45\x44\xd4\x80\x7a\x55\xf7\x4c\xc1\xe3\xf7\x6a\xc7\xab\x28\x24\x5e\x4a\x28\x2f\xdf\x16\xfe\x5d\x2a\x99\x66\xa1\xb9\xd2\x13\x7c\xf5\x29\xba\xf1\xf9\xc0\x39\x4f\x2d\xcf\xcb\xf6\x3d\x47\x65\x94\xdd\xbc\x6a\x9a\x94\x00\x0c\x99\xa0\xbb\xcd\x47\x14\xde\x0b\x6a\xa6\xf9\x3b\xa9\x93\x44\xc2\x08\x1c\x87\x98\x23\x77\x6b\x5a\x18\xd6\xca\xca\x65\xac\x2c\x04\x2a\x34\xc7\x55\xa0\x79\x66\xf7\xee\x3d\xaf\x45\xde\x36\xfb\x43\x5e\xee\xe5\x90\xb1\x77\xf4\x83\x8a\x40\x8c\x5d\xbd\x68\x63\xc6\x24\x2b\x76\x44\x48\x03\x8c\xed\x45\x75\x2a\xe5\x79\x59\x8d\xb8\x5e\xa4\x0a\x25\x45\xb2\x96\x7f\x3e\x2c\x1e\xdc\x56\xae\xa2\x20\x0b\x84\xa3\x74\xe8\x1c\xdb\x61\x4e\x40\x45\x20\x48\xe4\xfb\x04\x4c\x36\xf2\xb7\xa9\x25\xba\xb6\x2b\xce\x05\x77\x8a\xa5\x80\xe9\xd1\xbb\xd7\xdd\xeb\xcb\x6a\xff\xb8\xda\x2f\x6e\x6f\x5f\x56\x5b\x57\x74\x52\x2e\xe5\x56\x9e\x0e\xa6\xa2\xd3\xf4\x47\x62\x9c\x37\xd2\x62\x11\x79\x61\x04\xfc\xec\xe1\x44\x29\x17\x88\xfd\xfe\xaf\xe5\x48\x34\x75\x98\xbc\x56\x69\x40\x11\xc1\x60\x56\x5e\xb7\xbf\x8f\x55\xc4\xdc\xb8\x2c\x8c\x33\x23\xc4\xdd\xd6\x39\x7c\xc2\xa6\xbc\xeb\xf6\x04\x77\x54\x1a\xe9\xe5\xce\xf7\x5a\x2c\xe6\x3b\xc7\x14\x0f\x64\xaa\x7b\xa9\x89\xdb\xfc\x58\x54\x07\x7e\x73\x7e\x9a\x78\xc2\x8a\xd3\x10\x9b\x06\xdc\x7a\xd8\x42\x51\x20\x85\xa3\x55\x2f\xbc\x62\x61\x15\xb7\x3a\x0b\x8a\xff\x39\x0a\x9f\x14\x8f\x04\x3a\x05\x87\x81\x32\xad\x54\x9c\x87\x18\x59\x1f\xf2\xd2\x52\x06\xb8\x94\xb7\x12\x31\xa5\x28\x0f\x02\x4d\xc3\xdf\x60\x7b\x95\xc6\x79\xf2\x88\x42\x00\x76\x60\x22\xe1\x9c\xeb\xb8\xb8\xd4\x46\xb4\xa3\x65\xc0\x50\x0e\x4f\x55\x37\x97\x2a\x63\x6e\x4c\x42\x2d\x88\xbf\x5b\x10\x0d\xb4\xfb\xe6\xbd\x3a\x62\x0e\x63\xc6\x53\x57\x32\x51\xca\xe6\x2d\xaf\xa8\xa5\x0e\x63\x7e\xa5\x62\xe5\xea\x33\xa6\x66\x7b\x11\x5a\xb8\x81\x19\x47\xdc\xd5\xed\xea\x8f\xff\x2b\x98\xdc\x5d\x81\x9b\x16\xb3\x2e\x86\x78\x2d\x75\x0d\xe0\xd9\x26\x14\x04\x01\x71\x0a\x7f\x26\x60\xf3\x47\xd2\x10\x83\xa2\x27\xf8\x9a\xeb\xd9\x9b\xff\x2d\x08\x44\x84\xb8\x0e\x4c\x3b\xd9\xcc\x90\x3d\x44\x88\x51\x62\x03\xa4\xdc\xa9\xfd\x9f\x55\x88\xe9\x1e\xd7\xf5\xf7\x6c\x68\xe1\x87\xb3\x08\x68\x08\x59\x32\x60\x44\x34\x95\xc7\xd1\x7b\x02\x9a\x85\xb8\xff\x1c\xf2\x72\xae\x35\x12\xa8\x88\x1c\x63\xe8\x23\xaf\x3f\x4e\xc7\xe9\x71\x6d\xc4\x75\xbe\x57\x27\xc4\x24\xcf\xc6\xc0\x10\xa6\x46\xa7\xfa\xc8\xcf\x80\x4a\xb1\xcd\xae\xea\x16\x89\xbb\xd3\x88\x47\x08\x1a\xe5\x13\xe3\x0f\x11\x07\xcc\x92\xde\xe6\x6f\xf9\x4f\x13\x3f\x9f\xea\x61\x66\x0a\x22\x11\xa2\x94\x51\x83\x65\xac\x45\xd9\x7c\x41\x7d\x73\x5e\x74\x36\x79\x4c\x4d\x39\xad\xb5\x4f\x7e\x48\x9b\x1e\x4f\xcf\x83\xe5\xae\xcf\x92\xc4\x75\xc8\xe2\x0e\x31\x42\x05\x01\x4b\x32\x84\xee\xc1\xcf\x16\x30\x54\x9a\xbc\x1e\x96\x85\x48\x47\xa3\x72\x43\x9b\xb7\x2a\x55\x0f\x84\xf2\x63\x64\x60\xab\x5f\xcf\xdd\xfb\x99\xbc\x02\x26\x19\x37\x98\xa4\xba\x81\x6e\xa7\x1e\xa2\x1e\x80\xc9\xc4\xf0\x0a\x55\x95\x7f\x9b\x4c\x53\x44\x7f\x3a\xdc\x80\x67\x4e\x1b\xdf\x5b\x1c\x99\x04\xfc\x2d\x88\xbc\xed\xb7\x9b\xab\x7d\xa3\x90\x50\xf3\xad\xdf\xa0\xfd\x47\x25\x6c\xcc\x33\xbe\x66\x92\xa8\xd4\x66\xa8\xec\xb6\x7a\x99\xef\x82\x94\x51\x6c\x8a\xc4\xbe\x85\x21\x9d\xa4\x3d\x9e\xa5\x49\x6a\x00\xc6\xf0\x75\xdf\x6f\x11\x90\xe9\x58\x1a\x5c\xd9\x11\x1b\xa2\xbb\xa0\x6e\x34\xe1\x79\xc0\xb1\xb9\x60\x71\xfb\x87\xff\x53\x42\x88\x6d\xcb\xd9\x9c\x46\x80\x11\xe0\xa9\xd1\x24\x07\x2b\x57\xbf\x5e\x6d\xfc\x21\x29\xb2\xb0\xcf\x03\x3f\xc1\xd7\x0d\x57\x97\x4d\xa4\x6e\xb4\x36\xea\x8c\xe7\xea\xb4\xa8\xa7\x0f\x2b\x42\x48\x94\x47\x00\xe8\xdc\x76\x56\x37\xf3\x7b\x0e\x08\x41\x30\xe8\x33\x13\xca\x9b\x10\xff\x5b\x92\x81\x74\x4c\x5e\x83\xde\xbf\xe7\xaa\x2a\x36\x47\x73\xe1\xf1\xcd\xc9\x84\x22\x5a\x1b\xf3\xc2\x4f\xe0\x48\x9d\x40\x51\x8d\x04\xb8\x76\x3b\x5e\xbe\xf3\xda\x83\xcf\x40\x71\x9a\x58\xb7\xe2\x05\xde\x4e\x05\xaf\x97\xbc\x9e\xeb\x1e\x00\x05\x54\xba\x14\xdb\xba\xd9\xf2\x03\x6c\xf3\x37\xff\x41\x14\x00\x28\x47\xc6\xb9\xd6\x4f\x00\x0a\xd4\xee\x1d\xca\x6d\x0b\x97\xad\xe1\x13\x56\x98\xbf\x68\x24\xb4\x3f\x01\xc0\xc1\xf4\x85\x20\xec\x67\xe9\xdb\x3e\xaf\x9a\xfd\xf1\x0b\xd7\x29\xc1\xda\x7e\xb7\x00\x6e\xf2\x5a\xf5\xf4\x61\xa0\xb9\x21\x57\xf6\xca\x6d\xbf\x2e\xce\x80\x96\x02\x13\x3a\xf0\xd3\x97\x1a\xb1\xe8\x36\xd8\xc0\x74\x10\x08\xd7\xdb\xb3\x90\x86\x00\xc5\x30\x87\xcb\x36\xff\x84\x59\x09\x47\xa9\x09\x4b\x10\xda\x85\x0d\x45\x18\xf8\x8c\x3b\x54\x35\xe1\x19\xa6\xa5\x7a\xa2\x8f\x71\x4c\xa2\x89\xd2\x46\x49\xe0\xbd\xfa\x1a\x73\x43\x8c\xde\x86\xa6\x24\xd3\x36\xe7\xf0\x50\x55\xad\xa8\x7e\x5e\xa0\x00\x75\x18\x71\xf4\xac\xb6\x56\x8a\xe4\xb5\x14\xa6\x77\x76\xa6\x20\xa7\x43\x2d\xa8\xe1\x9f\xfd\xac\x3e\xae\xfd\x2a\x0b\x13\x6c\x8c\x39\x18\x68\xf4\x39\xf9\x6d\xf4\x83\x71\xc8\x0c\x52\xaf\x3a\xd5\x1e\x25\xa3\x63\xce\x32\x93\x57\xbd\xc7\x45\x5a\xef\xde\x79\x39\x1f\x65\xe9\x84\x4a\xe4\x0b\xc4\x2f\x39\xb9\xc3\x24\x4c\x59\x3c\x90\xbf\xc1\x3c\xb2\xb3\x45\x3a\x11\xa6\x6f\xd6\x72\xbb\x18\x6e\xaa\xc9\x05\x64\x80\x2e\x0c\xce\x11\x23\xfe\x7c\x15\x8d\x71\xd5\xd9\x76\xba\xef\xfe\x9a\xd4\x88\x3d\xa2\x18\xe7\x69\xd4\x80\x3b\x98\x4d\x69\x10\x99\x14\x6c\x0e\xb5\x4b\x71\x0e\xba\xa2\x74\x4a\x8c\x1a\x81\xe4\x87\x23\xcf\xdf\x4a\xa4\x82\xdf\x9e\xa4\x84\xa6\xd1\xa7\xc2\x57\x40\x75\x1a\x33\xdc\x67\x7d\xdb\xed\xb8\x99\xd8\x8d\xd2\x24\xe4\x23\xeb\xbe\x6e\xe1\x30\xe3\xd6\xe9\x2c\x48\xd0\x80\xae\x65\x35\x6a\xa6\xd3\x19\x01\xdc\xcd\x1e\x2b\xdd\xf2\x51\x1c\xab\xb3\x28\x76\x59\x90\x45\x51\x3c\x73\xbc\xbe\x9a\x38\x76\x3a\x4b\xa2\xd0\x54\xa2\x3e\x81\x17\x7f\x5c\xf9\xe0\x59\x9a\x22\x42\xf9\x1e\xd5\x00\x26\x29\x1d\x37\x46\x08\x84\x59\xbc\xf3\x06\xdb\xf0\x72\x50\x8b\xd6\x56\xdb\x4d\xed\x7e\x76\x99\xeb\x0c\xd2\x30\x76\xf5\xdd\xaa\x0b\x30\x6b\xdb\x8c\xf1\xcb\x24\xa7\xe6\x31\x47\x65\x6a\x71\x3a\x2f\xdf\xf9\xe1\x38\x4f\x42\xa5\x79\x46\x47\xd5\xd8\x05\x7e\xad\x41\xc4\x3b\x1d\x2e\x91\xfc\xb6\x33\xc0\x46\xee\x9f\x7b\xbf\x4a\x73\x69\x90\x3e\xcb\xe7\x3f\xe6\x3b\x9c\x26\x17\x93\xa1\x88\x6c\x4d\x62\xa1\xd6\xea\xe6\x3c\x82\x5e\x8f\x1f\x47\x46\x86\x13\xf8\xad\xae\xaa\xc3\x80\x58\x51\x77\xf1\x90\xf0\x4b\xc6\xb4\xe1\x4e\x26\x92\xe2\x49\xe2\xb4\x4c\xbf\xbc\x43\x34\x9b\x52\xd4\x10\x87\x38\x63\x74\x5e\xe6\xcd\xfb\x73\x9d\x7f\x5a\xb2\xa3\xdf\xfc\x80\x08\xfb\xbd\xb7\xdf\x16\x7d\x9b\x90\x86\x14\xb0\x56\xb6\x85\x76\xfd\xfc\xf2\xdb\xbc\x30\xd7\x7c\x7b\xd4\x4c\xb5\x57\x6b\xaa\x93\xbe\xd3\x6d\x51\xaa\x7f\x54\x79\xb9\xbc\x75\x00\x66\xad\x19\x4b\x89\xf1\xfb\xef\xe0\xca\x93\x68\x4d\x12\xdb\xe7\x61\xd2\x7c\xaa\xba\x05\x8f\xb1\x19\x4e\x73\x15\x04\xc4\x84\x51\x25\x3f\xc0\xae\xb2\x5d\xb3\xc3\xea\x56\x37\x24\xc5\xf7\xac\xaa\x37\x18\x55\x4c\x54\x10\x44\x92\xa7\x96\xe3\x76\xa5\x5c\xab\x9a\x0a\x82\xcc\x54\x52\x6a\x90\xa7\xba\xc9\x3f\x61\x09\xf9\xe5\x36\x3c\xfc\xce\x2a\x08\x78\xa6\x3c\x2b\xf1\x7c\x13\xb2\x1b\x29\x62\xdc\x64\x4a\xcc\x95\x23\xcf\xad\xfb\x61\x42\x7d\x85\x71\x3d\xce\x7b\xa8\x80\xe8\x04\x5f\xdd\x5b\xb5\xab\x7e\x54\xf5\xc7\xc5\x61\xc3\x6a\xfe\x50\xbd\x19\xff\x61\x6e\x35\xab\x80\xd2\x84\xda\x60\xe7\x9e\x1f\xa6\x42\x8e\xbd\x6d\x55\x01\xcd\x18\xca\xbd\x2c\xab\x1a\x1e\xf8\xd9\xc5\x54\x2a\xa0\x10\x22\x02\xcf\xb2\x68\xef\x7e\x5a\x3e\x8c\xbb\xaa\xfe\xfd\xc7\xfb\xe4\x03\x85\x51\x84\xbd\xda\xb7\x39\x3f\x54\xa6\x95\xd1\x5d\x87\x51\x86\xd1\xa1\x4b\xd6\x76\xd6\x6c\x48\xc1\xa6\x02\xa6\x04\x56\x7c\x2d\x9a\x04\x6a\x8b\xca\x76\xc7\xe3\xd8\x93\x14\xfe\x77\x5f\x0a\x1c\x32\x3e\xa9\x20\x09\x4c\x13\x86\x63\x1d\xe3\x88\x3b\xb8\xab\xea\xbb\xba\xfa\xd3\x4a\xac\x8e\x67\xa0\x0a\xd2\x50\xd3\xc0\xc6\xb4\xcf\x3e\x51\xa4\x82\x34\x0e\x70\xbe\xac\x9b\x4b\xca\x3b\x15\xa4\xc2\xf0\x49\x7b\x3d\x7b\x05\x87\x63\x1f\x83\xa9\x20\x0b\xb2\xd4\x4e\xec\xa1\x1c\xe1\x34\x95\xe4\x46\x2b\xc0\x56\xf5\xde\xf1\xdf\x94\x5d\xe4\xe4\x0e\x03\x09\x3d\x62\xec\x05\xf9\xb9\x4c\xc4\x87\x8e\xcf\x10\x8c\xa5\x02\x4e\x4c\x1c\x9e\x37\x16\xf7\x66\xdb\x3e\xdd\x0e\xa8\x02\x2e\x53\xde\x5d\xed\x5b\x55\xa8\xbf\x6e\x41\xf9\x95\x43\xfa\x77\x9b\xd6\x54\x20\x08\xd7\x76\xb2\x3f\x9e\xdb\x77\xf8\x79\x95\x17\x56\x05\x82\xa6\x58\x62\xbf\x2c\xf7\xab\x40\x24\x5a\xdb\x94\xd8\xcd\xe9\xfc\x54\x7d\x5d\xee\xb4\x2a\x90\x24\xcd\x7a\x9e\x78\x6c\x30\x5a\xfd\xf4\xd2\xa7\xd3\xc1\x11\xe5\x7d\x35\xc7\x71\x26\xaf\x4c\x0b\x91\xe1\xdc\xf3\x43\x35\x61\x4e\xed\xa3\xe7\x01\xee\xfe\x9e\x18\x8d\x97\xb6\x3a\xde\x9f\x5c\x54\xd9\xb9\xac\xfd\x0a\x53\x49\x84\x08\x28\xac\xe4\x21\xc3\xfb\xf8\xc1\x80\x86\xc8\x0b\xf4\x59\xb5\xc3\x0c\xce\xf8\x5e\x21\xcc\x5c\x53\x07\x02\x3c\xe3\xb1\xf5\x83\x24\x0d\x87\xdb\xe4\x8f\xbc\x7d\x37\x0d\x37\x57\x6b\xdd\xd7\xbe\xe6\x3c\x81\x99\x0a\x74\xe0\xa8\x1e\x4b\xe3\xda\xba\xbf\x33\x8e\xab\xd7\x16\x81\x9f\xf3\x55\xff\x7a\x34\x8f\x23\x62\x6a\xab\x65\x5e\xbe\xed\x05\xb4\xcd\xb0\x04\xa6\x48\x10\x80\xe6\x9e\x74\x7b\x20\xce\xa3\x48\xa0\xb2\x04\x86\xc0\xed\x1f\x3c\x6f\x7d\xe9\x45\x11\x42\xa3\xc4\xe3\x31\x1c\x97\x88\x3b\x16\x49\x74\x1b\xb0\x01\x70\xa0\xd6\x78\x65\x2a\xdb\xb3\x3a\x7f\x5f\x61\xbe\xfc\x0b\xea\xed\x57\xde\xca\xf7\xbe\xe8\xa0\x08\x15\x8c\xb8\xfe\x57\xdf\x82\x3d\x34\xec\x24\x4c\x04\x4e\x93\xb6\xba\xe1\x0d\xb0\x74\x26\x17\xab\x48\x08\x14\xab\xfc\xba\xaa\xdf\xe0\x07\xf0\x63\x55\xbe\xa0\x0e\xe1\xdf\x4a\x8f\x29\x12\x6a\x85\x84\x84\x7b\xc3\xf7\xb8\x9c\xc9\xb2\xff\xd7\xdc\xef\x46\x5c\xa0\x9b\xd1\x37\xae\x1b\x39\x97\x39\xea\x19\x45\x18\x51\xc4\xd5\xec\xed\xa4\x5c\xd4\xf5\x00\x2f\x3b\x9a\xc4\x84\x31\x1d\x5e\x40\x1c\xa6\x73\xcf\x96\x82\x15\x61\x22\xc6\xf6\xc9\xc7\xf3\x8f\x7c\xc0\x6f\x31\xdb\xf3\xf2\x2b\x37\x52\x11\xa6\xb3\xcc\xe8\xed\x62\x85\xfd\x75\x7b\x3b\xeb\xa0\x29\x12\x2b\x63\x95\xf3\x66\x69\xdd\x7f\xdc\xd6\xc6\xfb\x18\x89\x35\x04\x36\x13\xde\xed\x61\x37\x5c\x7e\x6c\xc4\xbf\x61\x22\x7d\xa1\x48\x02\x84\x11\x6b\x0f\xb8\xa8\x2f\x8e\x72\x0f\x59\x36\x41\x9c\x51\x5e\x9e\x50\xfc\xf7\xf8\x7f\x45\x52\x41\x59\xe0\x08\x48\xcc\x8b\x9e\x2e\xd4\x4b\x47\x4c\x91\x8c\x2a\xe4\x99\xe4\x5a\x23\x41\x03\x8c\x75\x01\x14\xc9\x42\x48\x84\x27\x2a\xc7\x2c\xe3\x69\xc4\x05\x3a\xb0\x54\x24\x63\xa6\x98\xb9\x2e\x3b\xf7\xf2\x33\x1f\x04\x24\x8a\x70\x6a\xb8\x5f\xc4\xc9\xf6\x6d\x37\x23\x36\x99\xf9\xcf\xc3\x59\x8c\x09\xd5\x1f\x50\x14\x25\x3a\xee\xc3\x2b\x32\x8d\x1e\xc6\xfe\xad\xe6\xa5\x7a\xfe\xfe\xfc\x50\x35\xdd\xe6\xff\xe5\x04\xd3\x07\xd7\x89\x0d\x15\x76\x0d\xc7\xaa\x6e\x87\x8f\x40\xc6\x93\x9c\x73\x86\x9d\xca\xcf\x8b\x97\xdd\xd3\xea\x65\x3b\xea\xe8\x55\x44\x90\xcc\x95\xbd\x91\xbb\x60\x3b\x05\x8c\x29\x22\x62\x82\x45\x80\x6e\xe2\xcf\xc6\x53\x8a\x88\x84\x23\xc7\x44\x59\x95\x77\xa7\xf2\x2d\x17\x05\x8c\xdb\xa1\x14\x11\x69\x66\x44\x1b\x30\x53\xbe\xfa\x99\x37\x13\x36\x39\x45\x44\x26\x51\x83\xf0\x79\xb3\x79\xd8\xdf\xad\x56\xfe\x54\x11\x2a\xe2\x54\x03\x1a\xc9\x5b\x98\xe3\xc7\xe9\xc6\xc5\xb8\xb1\x1a\x77\x78\xb9\xb9\x5f\xf8\xc7\x94\x21\xc3\xce\xb0\x1a\xe4\x59\x16\xd3\x27\x94\x4a\x63\x46\xf1\x03\xce\x82\x37\xf0\x7c\x12\xaf\x2f\x0f\xa3\xfd\x84\x28\x06\xb1\x11\x9d\x94\xf7\x50\x3e\x70\x71\x97\xbf\xbd\x4f\x17\x81\x12\xd2\xb0\x01\xf1\x42\xbe\x96\x8f\xbc\xf9\x00\xb5\x9a\x13\x30\x54\x44\xc9\x00\xeb\xf1\x16\xf6\xd1\x07\x2c\x8a\x28\xad\x9d\xb2\x18\xd2\x8d\x2d\x4d\xaf\x71\xbf\x0f\x00\x8d\x19\xe9\x3b\xcb\x7e\x87\xf3\xe4\xe2\x10\x01\xa6\x95\xf7\x5e\xc8\x6b\x3a\x00\x42\x2c\x5e\x7c\xbd\x0f\xe2\x2a\x7f\x0c\xb0\x77\xc2\x88\x9a\x79\x9d\x91\x3e\x84\x53\x44\x67\x31\xc2\x38\x9e\x5f\x5f\x96\xdf\x16\xdb\xd5\x7e\xf1\xb8\x79\x7d\xda\xed\x5f\x16\xbb\xd5\xfe\x65\x75\xb7\x7a\x59\x3d\x2d\xfd\xe7\xd3\x32\x36\x72\x9f\xb6\x16\xa2\xee\x2e\x15\xa1\xc6\xf3\x89\x06\x9c\x99\xc4\x04\x86\x53\x3d\xb3\xf4\xf8\x31\x28\x61\x91\xd3\x79\x30\x9a\xfe\xcd\x25\xd1\xb2\xa2\x24\x91\x40\x5c\xd4\xaa\x4e\xbd\x22\x99\xa2\x24\xd5\xda\x92\x23\x3e\x23\x9b\xac\x03\x99\xac\x87\xb4\xd2\x93\xcb\xe9\x10\x83\xe6\x76\x1f\xd6\x6a\x8f\x65\xd5\x7e\x83\xa7\x94\x44\x69\x2f\xce\x0d\x6a\x7b\x3a\x6c\x4a\x73\x6d\x3f\x24\x4d\x1d\xf1\xca\xc2\x59\xa9\xa1\x33\x36\xf9\xbd\x30\x52\xa8\xc4\xf2\x9c\xff\x84\xe2\xa6\x3a\x0d\xa6\xdd\x45\xee\x73\x2e\x07\xa0\x68\x98\x64\xb8\x3f\x8a\x4a\x3c\xf2\x0f\xc4\x4a\x3a\xfc\xd5\x64\xef\xb2\xca\x8f\x01\x5e\xd0\x0a\x2b\x29\x1a\xa6\x71\x60\xc8\xd3\x1b\x68\x2f\xda\x4d\xec\xa0\x28\x48\x54\x68\x37\x80\x4d\x59\x9c\x91\xcf\x75\xb4\x97\xd0\x88\x6a\x6e\x7c\x43\xae\xf5\x3e\x72\xef\x83\x85\x52\x05\x63\xc4\xc0\xa3\x51\xac\x70\xc9\xc5\xd4\x8d\xcc\x22\xde\x73\x36\x1a\xb7\xd9\xcc\xa9\xc9\xf2\xa2\x09\x68\x2c\x96\xef\x8f\x5c\x7e\x3c\x7f\x7f\xee\xbb\x1b\x14\x4d\xb4\xa1\x0c\x5c\xb5\x50\x97\xbc\x40\xea\xc4\xeb\xb1\xbd\xa2\x69\x20\x13\x3e\xa8\xf3\x42\xcb\xe5\x7b\x37\x1b\x37\xe5\x33\x3f\x4d\x04\x60\x15\x4d\x53\x92\x18\x76\x4e\xac\x6a\xfe\x3a\xda\xa1\x69\xe7\x45\xfd\xbf\xff\xef\xff\xfd\xf7\xfa\x61\xfd\x74\x7f\xbf\x19\x76\x1e\xe0\x51\xcf\xb7\x00\x07\x81\x13\xdc\x00\x59\xc7\xbf\x99\x45\x04\x97\x58\xde\xcb\x40\x8d\x29\x31\x15\xe5\x41\x82\x6f\xe4\x61\xb9\xf5\x7f\x92\xd4\x76\xa8\x96\xbb\xea\xe1\x74\x45\xcf\x54\x51\xae\x4c\x95\xaa\x91\xef\xa0\x4e\x05\xca\x9f\xfe\x76\xc9\x8a\xa1\xa8\x90\xa6\x51\xeb\x16\x3e\x73\x09\xeb\xe6\x16\xb8\x6c\x31\x21\xa3\x26\xb3\x45\x46\x0a\xc5\x02\x17\xaa\xc2\x50\xd1\x9a\x41\x43\x0f\x56\x38\x5d\x18\xe6\x46\xa7\x69\x6a\xb5\xb9\xba\x01\xdf\xf2\xa6\x1d\x10\x5e\x4d\x6e\x42\x51\x8e\x90\x5c\xab\x7a\x72\xe5\x99\x54\x04\xf8\x3a\x0c\xa3\xd1\x23\x77\xa8\x66\x45\x21\xe0\x98\x31\x33\x52\x01\xa3\xde\x4f\x3b\x42\x47\x20\xec\x57\x79\xb2\xbc\x65\x48\x6e\x66\xaf\x10\x06\x81\x74\xdc\x69\x5b\x68\x11\xb9\x8a\x13\x76\x58\xe0\xb9\x44\xf0\xaa\x30\x20\x01\x16\xeb\xca\x6a\xa3\x77\x79\x6f\xa6\xc2\x20\xa4\xb8\x7b\xa1\xa4\xf7\xf2\x9b\x69\x9f\xf6\x07\x63\xe3\x84\xbb\x57\x7d\x35\x27\xa7\x42\x42\x33\xcc\x95\xf5\x3a\x2f\x45\x71\x73\x3a\x77\x4e\x9d\x67\xfe\x56\x21\xd1\x11\x82\x5b\x10\x96\x78\x0b\xc2\x6d\xe1\x21\x25\x01\x32\xfe\x17\xf0\x09\xc5\xba\x85\xc3\xb2\xe0\x7e\xdf\x08\x69\xa4\xc1\xd8\x29\x90\x30\xd2\xcb\xfa\xcb\xd6\x59\x15\xd2\x38\xd0\x1e\x62\xb7\x39\x02\x4e\xdf\xda\x5f\x3a\x65\xf8\xfd\x5d\xc6\xc4\x18\x7b\x77\x34\xe2\x02\x2d\x8f\x0b\xf5\x6e\xf3\x1a\x64\x5b\xd5\x8b\xf1\x9c\x0b\x23\x69\xf8\x07\x24\x3f\xde\x15\xae\xf5\x4a\x85\x91\xe2\xd8\x9b\x8b\x21\x76\xf7\xb3\x1b\xdd\xed\x77\x0f\x55\x1b\xf9\x21\x40\x90\xf7\xc1\x90\xb5\x79\xb8\x57\x77\x20\xc1\x6e\x0b\xd3\x3f\xfd\x4b\xcf\x2f\x8c\x99\x48\x11\x87\xe5\xba\x69\x55\x18\x0b\x96\x49\x1f\xd0\x95\xb6\xc7\x60\x32\x2b\x62\x20\x78\x9e\x73\xa8\x86\xd2\xe2\x2a\x4c\x04\x98\xd9\x5e\x29\x17\x69\x9f\x7a\x7e\x54\x15\xa6\x51\x80\xa5\x9f\xe7\x97\xf5\xf7\xc5\x6e\xf5\xfc\xb0\x58\xae\x1e\x57\x4f\xce\x31\x0a\xd3\x98\x62\xbe\xfc\x80\x4d\x3d\xc5\x79\x8b\x73\xda\xb8\x9c\x8d\x6f\xd2\xbd\xab\xea\xe5\x7b\x5e\xa8\x49\x92\x62\xf2\x84\x59\x02\x41\xe8\x89\xd9\x6d\x31\xc4\x1e\x13\x01\x89\xa4\xeb\xc6\x68\xa1\x69\xbf\x43\xdd\x0c\x10\x90\x6e\x98\x0a\x9c\x7c\xc2\x0b\x70\x75\xee\x7b\x7e\x55\x28\xa3\x00\x53\x6a\xfb\x06\xda\xc4\xff\x51\x9a\x8a\xf2\xd1\x54\xbc\xee\xaa\xfa\x1b\x14\xc7\x9e\x0e\x57\x85\x2a\x10\xd8\x95\x6d\x36\x8d\xe2\x48\xd2\xc9\xbc\x00\xa6\x11\x5d\xb0\x6f\xde\x79\x0d\x26\xb9\x37\x6f\x35\x42\xd0\x31\x8f\x47\x7d\xa5\x9f\xae\xaf\x54\x85\x9a\x1a\xbc\xda\xfe\x58\x57\xd2\xb9\xf6\xcd\x2f\x61\xab\x2a\xd4\x69\x8c\x0f\x7c\x57\x54\x1c\x33\x93\x66\xc5\xcc\xc6\x94\xa1\xce\x18\x72\xdf\xed\x7b\xf6\x5a\xff\xe3\x9c\x98\xaa\xc3\x7b\x3e\xea\x72\x50\xa1\xd6\x91\x8e\x5d\xa6\x06\x60\x57\xfd\x82\x08\x56\x45\x24\x54\x68\x17\xbf\x43\xa9\xf2\xf1\x4c\x8c\x48\x96\xea\xc8\x4b\xde\xda\xad\x2d\x1d\x6f\x68\x11\x91\x92\xda\x9c\x80\x6b\x64\x1a\x90\xcf\xa8\x88\x80\x11\x81\xad\x41\x01\x1c\x66\x23\xa6\xe1\xed\x47\x34\xd0\xa8\x5b\xc4\x4f\x2a\x6f\x51\x4e\xf1\xd0\xe7\x5a\x22\xca\x42\x6c\x60\x7b\x84\xaa\x39\x0d\x01\x71\x2a\xa2\xd2\xe8\x01\x19\xe6\x0a\xcf\xde\xeb\x0f\x6b\x8e\x67\x9a\xfe\xf2\x10\x4f\x5d\xd9\x52\xff\x8b\x07\xce\xaa\x28\x24\x11\x42\x06\x4f\x65\xfe\x9f\x13\xec\x47\x8a\x44\x2a\x8a\x42\x99\x08\x4f\x9d\x6a\xf8\xaf\x27\xbe\x48\x14\x65\x1c\xbb\x0d\xb0\x9a\xe1\xbf\x58\x14\x71\x82\xa5\x43\x2b\x0f\x0d\x3d\x88\xbb\xe7\x12\x1d\xcf\xd4\x88\x05\x0a\xc1\x2c\x43\xf2\xdb\x1b\x5e\x7e\xec\x2a\xa7\x02\x32\x9b\xba\x88\x58\x22\x13\xdd\xef\x9f\x8d\xa7\x2b\x54\x11\x03\xea\xf8\xd8\xba\x8d\xe3\x21\x6f\xda\x5e\x37\x47\x45\x31\x05\xe4\x3b\xf2\xb9\x6a\xcc\xaf\x76\xbe\xdd\x00\x5f\x3d\xf9\xb5\x38\x09\x30\x54\x42\xc0\xe4\xf8\x50\x12\x2a\xf4\x76\xdc\xe5\xf6\xbe\x18\xa5\xa2\x44\x83\xad\x01\x94\x6a\x57\x8d\x4b\xa9\x7f\x95\xab\xb3\x97\x48\x83\x74\xf8\x9c\x7d\x23\xc4\xe4\x3d\xa6\xb1\xc4\xfe\xd6\xaa\x33\xb7\x3f\x78\xd9\x3e\x9e\x07\x1d\x8f\x2a\x4a\x33\x13\x02\x35\xd0\x6e\xcf\x4d\x0b\x87\xad\x05\xa7\xe2\x06\xf0\x98\x4f\x1c\x82\x28\x55\x19\xf1\x0c\x6d\x5b\x28\x8a\xa1\x9e\xae\x8a\xb2\x84\x61\x51\xdf\xa6\x64\x66\x98\x05\x54\x94\x69\x82\xd0\xe8\x9b\xaa\x7a\x1c\x4d\x63\x1e\x30\x44\xf5\x89\xd3\xd9\xc3\x3d\xd2\xc9\xa2\xe5\x69\x18\xdb\x88\xc2\xbb\xe7\x2e\x6b\xeb\x33\x4d\x83\xbc\x46\xc4\x53\x1d\x93\x81\xcc\xb7\x6f\x14\xf1\xbf\xca\x25\x3a\xb1\xdb\xd5\xc3\xc3\xea\x65\xbf\xdd\xad\x9e\xf7\x74\x7f\xbf\xda\xed\x9f\x17\x0e\xcd\xa9\x22\x0e\xc2\x48\x7d\xe3\xc9\x8f\x79\x89\xd9\xc8\xc1\xef\x08\x49\x30\xd4\xf9\x82\x2e\x5a\x9e\xa0\x6c\x55\x24\x54\x24\x92\x11\xe6\xfe\x31\x2f\xa0\x69\xab\xd2\x48\x95\xfc\xc0\xb5\x39\xde\x22\x22\x99\x19\x47\xd6\x46\x93\x4f\xd5\xa4\x03\x59\x45\x4a\x1b\x74\xee\x07\x32\x43\xd8\x3f\x42\x6c\xf2\x62\x05\x40\x7d\xcf\xfb\x3f\xa7\x29\x92\x51\x1d\xab\xbc\xb3\x11\x27\xe7\x56\x45\x9a\x68\x03\x8d\xb6\xf9\xaa\x6f\xd5\xa1\x92\xb9\xf2\x2b\x43\x33\x8d\x29\x0f\x37\x95\x6f\x6e\x36\xfe\x50\xaa\x91\xaa\xb0\xee\xdc\xb5\xad\x73\x2b\xec\x51\x16\xc4\x26\xa3\x66\x4d\x4d\xd5\xdb\x24\x16\x80\xa9\xeb\xa0\xe7\xb5\x3d\x1d\x0e\x55\xf9\xe4\xfd\x32\x46\x02\xff\x95\x4d\x9c\x54\xd5\x07\xb3\x4c\xf6\xc7\xaa\x9a\xe7\x2f\xef\xce\x4a\x95\xed\x78\xa9\x71\x53\xc2\x46\x5f\x27\x7c\x66\xeb\x25\xa3\xf7\xc7\x48\x00\x48\x9c\x52\xc2\x57\xf7\x4e\x5e\x8f\xb3\xb5\x09\x46\x98\x54\x5e\x80\xfb\x7b\xd5\x7d\xfb\xbb\xaa\xc6\xe7\xb5\x95\x31\x7f\xe7\x9a\x73\x9b\xab\x9f\xca\x9a\x2a\x46\x43\x86\x6d\x7c\x0a\x3e\x4f\x50\xf8\x54\xe9\x6b\x73\xe2\x75\x3e\xa9\x7b\x32\x1a\x45\x58\xb6\x45\xea\x98\xfa\xec\x2b\xda\x3f\xf2\xf6\x7d\xc0\x9c\xa2\x58\x28\x0d\xbb\xe9\x21\x2f\xdb\xab\xbd\xc7\xe3\x1b\x89\xa8\x11\xa7\x6c\x1d\x6f\x96\xfb\x3b\x8f\xa9\xb6\x8b\xa5\xef\xf6\x75\x07\xa5\x51\x2e\xe5\xea\xf3\xa6\x1d\x31\x03\x2b\xc6\x82\x8c\x39\xb6\x90\xce\xd2\xcc\xe1\xec\x14\x63\x9a\xe0\xcf\x1a\x9a\xff\x65\xde\xe6\x7f\x4e\x23\x0e\xc6\xb4\xe9\xeb\x36\xf9\x90\x2d\x4a\x1f\x3c\xd7\xd5\xa1\xb2\xb9\xa1\x5c\x14\xf3\xe2\x59\x17\xd5\x27\x16\x87\x86\xc5\xfb\xbe\xca\xcb\xb7\x7b\x38\xcc\x8b\x5d\x29\x96\x28\x26\x99\x9b\x6d\xa7\x69\xb8\xcf\x52\x66\xd2\xa8\x25\x7c\xe5\x28\xd2\x53\x54\x6f\xbf\xcd\x6d\xe0\x2c\xcd\x08\x12\x11\xfd\xbb\xca\x2f\xe8\x59\xc7\x03\x35\x53\xa6\x5a\xb7\x96\xd5\x1d\x96\xf3\xdd\x9b\xcc\x28\x37\xd5\x9c\xea\xf8\x7a\x1c\xd5\xf8\x58\xc6\x42\xdc\xe6\x4f\x65\xeb\x16\xc5\xa8\x52\xc5\x32\x99\x61\xa9\xbc\x9b\x09\x37\x1c\x2b\x18\x7f\x8f\x66\x69\xf2\x42\x78\x04\x58\x0b\xe9\x9c\xb4\x17\xec\xa2\xb9\xec\xda\x98\xcc\x28\x9e\xe8\x28\x18\xd3\xfb\x2c\x2d\x84\x77\xf7\xf3\x9e\x37\xc7\x1e\x6f\xa8\x18\x97\x86\xe6\xfd\x88\x9d\x86\x2f\x80\xca\xc9\xce\x20\x33\x41\x43\x35\x94\x35\xb9\xa9\x4a\x75\x65\xc5\x0b\x9a\x09\xc3\xd0\x77\x13\xd2\x99\xd6\x68\xc5\x24\x8d\xb1\x37\xfd\x77\x7e\x3c\x9e\x7f\xef\x7d\x65\x26\x79\x9c\xd8\x96\x8b\xce\x9a\xbb\xe4\x24\x7e\xa5\xc7\x9e\x49\xee\xbf\xae\x67\x4b\x98\x14\x1c\x51\x0c\xcb\x6f\x7f\xf4\x1a\xc5\xf6\x98\x92\x0a\xa9\xe7\x74\x5e\x2a\x83\x68\x7b\x19\x8a\x6f\xb8\x51\x8a\x31\xa3\xc8\x3c\xe0\xa3\x9f\x0e\x49\x0d\x6d\x66\x7e\x80\xfb\x7e\xa5\x2a\xa5\x21\xbd\x4a\x09\x3c\xc8\x24\x31\xa5\x4d\xe4\x55\x56\x86\x96\xfa\x1a\x60\x5d\x31\x88\x02\xac\x37\x77\x73\x72\x60\xaa\x21\x35\xa9\xc7\x7f\x73\xf9\x71\xac\xda\x47\x50\x79\x6f\xa9\x81\x27\x46\x79\xee\x54\x23\x8f\x71\x55\x7e\x42\xdd\xee\xaa\x7f\xbe\x2e\x26\x0b\x5b\xc7\x86\x19\xb5\xcc\x25\xbc\x9d\xce\xa1\xbb\x82\xce\x8c\x38\xd2\x76\xb7\xdd\xad\xb6\x3b\x4b\x0c\xac\xe2\x20\xd2\xa8\xac\xb6\x7a\x3b\x1f\xdb\x9c\x97\xcf\x83\xed\x23\x0e\x44\x88\xfd\x3a\x6f\xf9\x27\xdc\x61\x9a\xfd\xf2\x2d\x8c\xfc\x80\x38\xb0\x14\x59\xc7\x81\xa8\xc0\xd0\x5b\x8f\x09\x01\xa4\x64\xdb\x42\xdb\x4e\x23\xd3\x98\xc4\x3c\xea\x4c\xc4\x7f\x43\x5d\xf5\xf6\x32\xa6\x82\x98\x4c\x13\x2f\x86\x2c\x58\x2a\xa6\xa0\x30\xab\xcb\x7f\xa9\x6f\xa3\x62\xaa\x63\x1d\x3a\x5a\xdd\xb9\xb6\x5b\x77\xc1\x90\x84\x98\x6f\xaf\x4a\x1f\x65\xcd\x14\x42\xe6\xcd\x7d\x1c\xea\x04\xd3\x8e\xfa\x54\x4a\x93\x82\x6a\x4f\x98\xaa\xbf\xc4\xc1\xab\x38\x8a\x34\x52\x9e\x09\xde\xe4\xcd\x73\x95\x97\x6d\x33\x08\x12\xe2\x98\x10\x6c\x5e\x79\xeb\x6c\x43\xf7\x49\xfa\x8c\x70\x9c\xf0\x10\xf1\x24\x38\x8f\x1f\x72\x0d\x4b\xac\x40\xd8\xa3\x29\x01\xcc\xe5\x83\xac\x1a\x74\x35\x51\x65\xdf\xe1\x15\x46\xfb\x49\x9c\x5a\x29\xcc\x41\x3f\xb8\x33\x44\x0b\xdd\x42\xbd\xfa\x79\xcc\xeb\x79\x3e\x43\x15\x67\x59\x8c\xd9\x8f\x87\xcd\x83\x9b\x65\x31\x57\x09\x7a\xea\x23\x22\xd1\x89\x73\x19\x73\xad\xb4\x11\xa6\xae\x4e\xc3\x6c\x6c\x2c\xa8\x96\x46\x37\xeb\x86\xd7\xcb\x4a\x41\x8f\x66\xf5\xef\x4d\x64\x19\xa6\xc2\xa0\xf4\x84\x39\xcf\x1e\x8a\xae\x62\x49\xcc\x8c\xbd\xe7\x7f\xc2\x88\x05\xb4\xcf\x32\xdb\x91\x10\xc7\xca\xe7\xeb\x2c\x1f\x1f\x7a\x32\x63\xcb\x10\x43\x0a\x28\xeb\xb6\x3f\xf0\xfa\xa3\x87\xa2\xdc\x9d\x0a\x9d\xf7\x89\x45\x7f\x7f\xa0\x18\xd6\xea\xf3\x32\x6f\xb7\x27\x81\x00\xfb\x0b\xec\xf5\x40\xd5\xd9\x9e\xa6\x03\x8d\xc0\x92\xc5\xf1\x58\x58\x7e\xc2\x75\xb3\x2e\x6f\xe1\x13\x8a\xea\x38\x70\x7d\x12\x92\x29\xec\x58\xe4\x86\x1e\xe1\x5a\x40\x73\x59\x00\x4d\x28\x25\x34\x71\x9d\x32\x86\xc5\x7f\xb2\x7d\xf6\x03\xd1\xea\x3d\x54\x6f\x26\x1f\xdd\x2f\xf0\x84\x26\x60\x84\xec\x4e\xe5\x3f\x8c\xa5\x72\x37\x46\x33\x23\xc5\xcf\x95\xda\x37\xef\x39\x14\x6a\xb4\x6d\x26\x94\x03\xc6\x9a\x5e\x45\x68\xbd\xdc\xec\xbf\x88\x3b\x3d\x54\xc4\x41\xc0\x5d\x48\x3e\xbb\x98\x13\x46\x42\x12\x58\x0c\x8e\x11\xd3\x03\x65\x58\x85\x2e\xea\x56\x09\x83\xc4\x29\x10\xaf\x9e\xaa\xaf\xdf\xfc\x9f\xa5\xb4\xb8\x87\xef\xd0\x60\x93\xe0\xc8\x6d\x1d\xcf\xf4\x24\xf6\xca\xef\x17\x95\xe3\xd9\x34\xff\xb4\x18\x9f\xa4\x49\x9a\x58\xd7\xe7\x74\x9c\x6d\xd3\x19\x3f\x62\x46\x24\x30\x37\x37\x6f\x41\xba\xfb\xce\x62\x11\x98\x46\x0b\x05\x3f\x37\x7a\xc9\xeb\x69\x02\xcd\x0d\x94\xd2\x6a\x11\xca\x1a\xbb\xfd\x87\x36\x38\xc9\x20\x44\xb3\xd9\x1c\x8b\xbc\xed\x05\x39\x47\x24\x26\x2a\xe1\x24\xc1\x1d\x83\x9b\x4c\xc0\x90\x21\x5c\x25\x9c\x0b\x8c\x2e\x3d\x7e\xf7\x1b\x14\xc7\x6b\x69\xe2\x44\xd8\xc6\x20\x71\xea\x8c\x6f\x63\x19\xf2\xef\xea\xea\xd0\x63\x24\xfc\x50\xa3\xc6\x60\x57\xcc\xae\x1a\x68\x01\x4e\x70\xea\x2a\x11\x5a\xa7\xd4\x43\x22\x96\x4e\x19\xd8\xc5\xc9\x89\x22\x71\xca\xbd\x0a\xca\xcd\x09\x6d\xdf\xe8\x21\x55\x2c\x84\x75\xa8\x1e\x8e\x8b\x66\xa8\x4b\xa9\x12\x25\x8c\x22\x2f\x57\xaa\xdb\xfd\xbe\xe7\x25\x9c\x07\x3c\xde\x6e\x94\x02\x6c\x78\x38\xf0\x9f\x28\x97\xdb\x27\x3b\x12\x20\x04\xb3\xb9\xd8\x26\x5b\xda\x46\x76\x1b\xca\x0c\x37\xb2\x04\x04\xc7\x8a\xd0\x77\x5e\x74\x5f\xa3\x04\x8b\x43\x73\x75\x9b\x44\x53\x8a\x54\xe2\x8f\xf9\x92\xd7\xcd\x7a\xb9\xf1\x07\xd2\x14\x9c\x22\xe7\xbe\xe9\x9b\x31\x55\x1a\x68\x8a\x2b\xf5\x7b\x2e\x6a\x5e\x4a\xcf\xff\xad\x52\x92\x64\x48\xec\x31\x60\xbe\x0f\x2e\x99\xef\x55\x4a\xb2\x84\x3a\x98\xdd\xdd\x4e\x9c\x1d\x2a\x74\x32\xe9\x7b\xeb\x90\x86\xa9\x41\x30\x41\xa9\x1e\x1d\x7d\xfb\x90\x68\x53\xa5\x21\x0f\x0d\x69\xa1\xc9\x6f\x55\x75\xfb\x36\xd0\xe9\x75\x83\x64\x8a\x4f\x2b\xb8\xfc\x00\xdf\x4e\xe4\xbf\x6b\x1a\x85\x54\x83\x4b\xea\x1e\x78\x5e\x7a\x85\xb8\x2e\x5e\xec\xfd\xc3\x34\x4a\x94\x1b\xe8\x35\xae\xf6\x87\xaa\x84\xb3\x1f\xc1\x25\xe7\x7d\x34\x0b\x8e\x88\x6c\xfc\x91\x53\x96\x25\x98\xd5\xde\x42\x3b\xd4\x52\x9f\x85\xd3\xfc\x9f\xff\x99\x33\xc2\x29\x13\x44\xd9\xb6\x67\xdb\x6a\xe2\xc0\xdf\xd3\x5b\x13\x29\x36\xb2\x76\x6e\x27\x2f\xae\x54\x53\xd3\x98\x24\x92\xdb\x8e\x38\xcc\x4c\xcd\xae\xd4\x34\xa6\x04\x91\x53\x07\x50\xbc\xd8\x9e\x0f\xc2\x6f\xad\x69\x1c\x19\x06\x1a\x2b\xaf\x6d\xf9\x26\x97\xd5\x25\x7d\xd1\xf4\x9a\x3a\xc1\xbd\x6d\xb9\x79\x7c\x7c\x7d\x5a\xef\xfe\xb5\xb7\x54\xf0\xdf\x36\x0f\xb7\xab\x17\x77\xfd\x44\x66\xc8\xac\x07\x3f\x61\x54\x91\x48\xb3\x24\x41\xf6\x74\x94\xd3\x2c\x7e\x54\x75\xa1\x0c\x5a\xcd\xe6\x87\x9c\xe0\xc6\xc9\x48\xf8\xba\xb3\x52\x8d\x29\x02\x43\x5a\x63\xfa\x41\xab\xaa\x98\x74\xc3\xa9\x34\x53\x9c\xbb\x7e\xbb\x9b\x3b\x5e\x1f\xd6\xb7\xc6\xda\xd8\x62\x75\xca\x03\x89\xfd\x1a\x9f\x5c\x4e\x5b\xcb\x54\xca\x15\xc1\xa4\x8e\xe5\x05\x5d\x1c\x8f\xc6\xeb\x1b\x7b\x05\xa9\x08\x34\xa6\xcc\xeb\x83\x15\x0b\x75\x52\xc3\xfd\xfd\x0a\x95\xa2\x23\xee\x64\xcd\xc6\xbf\x23\x34\x71\x10\x4f\xe3\xbb\xca\x36\xf8\xf9\x04\xed\x57\xe5\x9a\xf3\xc7\xe3\x91\x82\xd4\x4c\xeb\x1f\xbc\x86\xf7\xea\x74\x0d\x4b\xed\xef\x51\x11\x02\xb4\x47\x23\x6f\x4f\xa2\x91\x75\x7e\x6c\x2f\x6a\x2a\xa9\x22\x51\xa6\x7c\x5e\xc3\xbd\xd0\x81\xfb\x9a\x2a\x22\x41\xbb\xfc\xa5\xd1\x14\x32\x88\xb0\xc9\x46\x95\xaa\x48\xfa\x80\xb6\x73\x4d\x7d\x8e\x33\x85\x38\x46\x76\x85\xbb\xd7\xa7\xdb\xfd\xdd\xcb\x62\xb9\xbf\xd9\xec\xfc\x41\x88\x11\xab\x59\x54\x6f\x73\x75\xe3\x14\x74\x1c\xf7\x59\xf4\x4b\x52\x41\x95\xea\x90\x20\xe8\xe2\xdb\xf9\x08\xf5\xf2\x3d\x3f\x8e\x80\x53\xa9\x06\xc0\x4e\xf6\x1a\xbb\xd1\xda\xca\xd9\xce\x2c\x60\x01\x6e\x65\x55\xfd\xc6\xcb\xbc\x41\x0b\x37\x72\xaa\xb3\x40\x46\x41\xe8\x3b\xae\xba\xad\xf3\x0e\xe0\x22\xb4\x1e\xdf\x70\x46\xd2\x00\xf8\x58\x99\xd6\xa4\xd3\x6c\x2e\xdf\xd9\xcf\x8c\xd8\x89\xd0\x56\x6f\x6f\x05\x2c\x4e\xed\x7b\x55\x3b\x05\xce\xa9\x2b\x38\xfa\x6a\x19\x8d\x18\xba\xc6\xca\x4b\x20\x59\x7d\xaa\xdf\xae\xba\x8c\x19\xe5\xa9\x08\x1c\x50\xaa\x3e\x78\x70\x5b\x7f\xe3\x21\x95\x98\x4d\xfe\xac\x5a\x44\xad\x4c\x8e\xa6\x86\x2e\xa0\x0b\xff\xa1\xe5\x17\x30\x93\xf1\x1d\x86\x32\x89\x9c\x9f\x55\x62\xf5\x39\x6f\xcf\x16\xa9\x6e\x77\x91\xf1\xe5\xa3\x38\x40\x64\x37\xea\xea\xa4\x64\x72\x94\xd1\xc0\xf5\xdc\xef\xf8\xcf\x2e\x96\xd8\xe6\x6f\x25\x6f\x4f\x9e\xdd\x4e\x65\x2c\x8a\x05\x19\xf2\x55\x0c\xf4\x28\x55\xc6\x18\xd3\x64\x98\x92\xcd\x15\x96\x53\x2e\x53\x64\xe3\x3c\x86\x3f\x5d\xda\xac\x7f\x51\x0c\xe8\xc4\x26\x9f\x9e\x31\x85\x85\xcc\x9a\x7f\x5d\x30\xf7\x8e\xdf\x0f\x8b\xcd\xd7\x38\x98\xa6\xfb\x21\xa4\xc8\x8e\x88\xa3\x08\xf9\x34\x6f\x6f\x6f\xdd\x33\xc4\x89\xc0\x4f\x60\x78\x5a\x1e\x2a\xee\xe6\x78\x96\x12\xc6\xa9\x6b\x96\x34\x16\x75\x28\x34\xa4\xb2\x94\x0a\x4c\x11\xdd\x71\x09\x37\x55\xf5\x31\x28\x82\x66\x59\xc6\x91\x70\x4a\x16\xc0\xcb\xd7\x23\xc6\xa8\x3d\x72\x38\xe3\x49\x8c\x8e\xf7\x71\x06\x65\x39\xbf\x02\x78\x06\x18\xd7\x2c\x37\x2f\x2f\x33\x42\xf4\x2a\x13\xd2\x80\x91\x4d\x5f\xce\x7c\x70\x90\x09\x9d\x61\xfe\x81\xdb\x85\x01\xdd\xda\xef\xfc\x7b\x73\xad\x49\xaa\x34\x13\x5a\x04\x46\xa3\xeb\xc3\xd4\x77\x6e\x60\xba\xbf\x66\x52\xcb\xc8\x67\x71\x3b\xe7\xa2\xb9\x39\x2f\xb0\x4d\x6e\xfe\x7b\xaa\x38\xc5\xfb\x2c\xf9\x01\xde\x2f\x30\x4b\x59\x17\x76\x3b\x72\xb1\x6d\x5b\x1d\x87\x1e\x67\x06\x61\x8a\x29\xbb\x27\xf8\x32\x21\xe9\xe4\x5e\x20\x0a\xb2\xc8\xea\x76\x3c\xc2\xc1\xa0\x40\xc8\x55\x54\xf3\xe8\xbe\x20\x11\xc4\x68\x7e\xfc\xdc\x1b\xb6\xed\x3d\x1f\x26\x3e\x33\xe0\x34\xcb\x86\xfc\x86\x58\x5c\x72\x4d\xba\x8a\x07\x34\xc6\xd4\x0d\xaa\xb3\xdf\x40\x3b\x28\x86\xf0\x40\x12\x15\xbb\xd8\x72\x71\x30\x44\x70\x45\xd5\x3a\x08\xc1\x2f\x74\x14\x15\x0f\x20\x12\xdc\x7f\xd9\x45\x51\x0c\xc1\x2f\x3c\xd0\x44\x88\xbe\x8c\x97\x77\x2e\xa1\x3b\x46\x42\x43\x42\x7a\x5f\x15\x6a\x40\x5d\xa1\x38\x55\x19\xb5\x79\xc7\x5e\x96\x73\x7e\xce\xf0\x30\x8c\xb0\x86\xf8\x02\x26\xf6\xae\x6a\x43\x3f\xe7\x7c\x44\xde\x1d\xef\x06\x0c\xdd\xaa\x2b\x8f\x12\xa6\x61\x8a\xbd\x3e\x77\xbb\x97\xc5\xad\xbf\x80\xe0\x86\xa1\xf5\xbd\xfa\x2a\x86\x4c\x23\xf6\x78\x14\x09\xd7\x2e\xfa\x02\x32\x3f\xe6\x53\x36\x9c\x8b\xe6\x64\x77\x62\x92\x60\xb6\xef\x0b\x77\xa0\xa9\xf9\x70\x83\x34\x4f\xb5\x97\x93\x1e\x64\x81\xc6\xc3\x58\x60\x28\x9f\x4e\x0d\xd4\x5e\x30\x51\x71\x46\x22\x1a\x79\x1b\x1b\x8c\x17\x10\x67\x4c\x20\x82\xe7\xfe\xa7\x69\x44\x6d\xa6\x17\x55\x0c\xbd\x9a\x86\x57\x0d\xaf\xa8\xbf\xa8\x4a\x70\xaa\x3d\xbf\xb8\x2d\x9d\xc7\x01\x45\x3b\x65\xe0\xbc\x9d\xd7\xf6\x5a\xb6\x8e\x40\x45\xf1\x98\x18\xd2\x02\xd4\x90\xde\x82\x3c\xd5\xb9\xab\x8e\xbc\xc0\xdb\xe4\x57\xe3\x30\x64\x99\xf3\x9d\x8b\x62\xe7\xd9\x98\x07\x99\x0c\x1e\x67\x26\xe1\xca\xd5\x78\x73\xf6\x59\xbe\x41\x6a\x8a\xc7\x5c\x88\xd4\x4f\x42\x9b\x34\x98\x20\x92\x79\x2c\x43\x09\xae\x7e\x65\x69\xfe\x26\xef\x2b\xa1\x14\x0b\x9c\x46\xe2\x70\xb7\x5e\xbd\xec\xe3\xfd\xc3\xfa\x71\xed\xdf\x43\x4a\x24\x56\xad\xf1\x58\xb4\xbf\x79\xfd\x97\xd3\xb7\x56\x3c\xcd\x8c\xf4\x76\x03\xad\x43\x16\xdc\x42\xcb\xf3\xe2\x4a\x80\xcc\xb3\x28\xc4\x65\x79\xe0\x3f\xfb\x12\x3d\xcf\xb2\x10\x73\xd5\x06\x4e\x38\x49\x56\xf0\x4c\x13\xcc\xeb\x7d\xdb\xdc\x3e\x0c\xdb\xa1\xdc\xd9\xdc\x52\xb1\x5b\x02\xec\xf5\xe3\xca\x1f\x89\x24\x5a\xaf\xb7\x9a\x97\xa7\x82\xd7\xcf\x35\x38\x2c\xc2\x5f\x2c\x1b\x9e\x00\xfa\x73\xf7\xd0\x76\x0b\xbc\x8b\xa1\xc3\xc9\x9b\xe3\x5a\xdb\x7e\x3b\xd3\x71\xb5\x05\x39\xbc\x2b\x19\xc7\x58\x94\x41\x15\xb6\xd1\xcc\x51\xd4\x74\x35\x95\xf0\x75\x59\xda\xe5\x2a\x94\x9c\x38\xeb\xfe\xc8\x7f\xf6\x69\x67\x0e\x14\x0c\x38\x66\xdf\xf0\x4f\x20\x34\xfd\x6d\xe2\x1e\x71\xcd\x75\x64\x38\xd0\x70\x0f\x7d\x6a\x3f\x4f\x3d\x81\xb0\x9d\x3a\x82\x50\x8e\xd8\x00\xa3\x85\xc9\xcf\xa6\xfc\xe0\x0e\x46\x44\xd2\x3e\x7e\xf0\xe9\x94\xf1\xc3\x0b\x22\x94\xe1\x39\xc3\x06\xfe\x5f\xbf\x4c\x41\x40\x41\xe6\x9d\x5f\x50\xdd\xd6\x9d\x97\x6f\x5a\x4e\x2e\x4a\x29\x0b\x93\x81\x77\x73\x0b\x5c\xdd\xe4\x7e\xe5\x0b\xca\x14\x16\x5e\xee\x6f\x9e\x8f\x75\xf5\xd3\x99\x43\x11\x12\x89\xbe\xea\x6e\xb5\x78\xb4\x12\x20\xfb\x87\xcd\xf2\xf7\xfd\xf3\xea\x65\xbd\x71\x46\x4f\x44\x69\x86\x39\x8d\xa7\xbc\xad\xab\xce\x75\xf0\x17\x8e\x32\x8d\x9b\xf4\xf6\x98\x4b\x78\xca\xcb\x7f\x3b\x24\xad\x60\x22\xc4\xee\x39\xb3\x6a\x7b\x8e\x0e\x25\x62\x1a\x1a\x57\x0f\xb8\xda\xf1\xe6\x63\x8b\xa4\xba\xc3\x88\x19\x69\x3b\x9d\x22\x58\x7e\xe8\x82\xc8\x41\xcf\xf3\xf8\xd1\x63\x20\xc8\x08\xd2\x79\xad\xa3\x2c\xa5\x48\xa8\x21\x7b\x96\xef\x96\x7f\x16\x5b\xad\x27\x6f\x2e\xc9\xa8\x41\x0c\x20\xe7\x10\x2a\x68\xef\xaa\xfe\xdb\xfd\xb2\x2a\x2c\xd2\x38\xc4\xa4\x10\xe2\x00\x9e\x79\xdd\x9e\xb7\x50\xce\x68\xdc\xfc\xcf\xff\x0e\x4b\x6c\x22\x15\x01\x9a\xcc\xbc\x85\xc3\x13\x3f\xc0\x46\x4f\x6e\x2a\xd5\x46\x35\xf3\xbe\xa8\x04\xef\x39\xdd\x5e\x4b\x43\x96\x30\x30\x7d\x22\x0b\x8d\x64\xe1\x16\xda\x9b\x53\x5e\x74\x0e\x52\xe7\x1e\x9b\xd4\xe6\x64\x92\x8b\x2c\x89\xd1\x5a\xec\x1b\x03\x3d\x6d\x30\x47\xed\x23\x12\xc1\x53\x89\x45\x9b\x4f\x94\x96\xb5\xed\xd7\xd3\xd2\xf1\x68\xd1\x09\x11\x71\x2c\xba\xef\xad\xb5\xc2\x1f\xde\x55\xa6\x2c\x38\x61\xb5\x54\x42\xc8\x90\x99\xef\xca\x6b\xf9\x7e\x73\x7e\xea\x59\xf6\xec\x08\x29\xcc\x2e\x53\xdb\x84\xf0\xa2\xb9\x60\xe1\x19\xdf\x80\x14\x4c\x5b\x9a\x52\xdb\x6a\xe0\x9e\x46\xea\x10\xed\x01\x94\x0d\x5a\x0b\xfb\x67\xa5\x69\x64\xbb\xff\x06\x40\x1c\x01\x89\x8c\x4c\x17\xf6\x27\x72\xed\x74\x9e\xe6\xf1\xe8\x8f\x76\x9f\x64\x10\x1b\xb9\x3f\x67\xd4\x02\xdb\xdb\x9b\xca\x34\x3b\xce\x66\x71\x85\x66\x86\x29\x42\x5a\x1d\xc2\x87\xaa\x6d\xc1\xbb\x25\x42\x33\x43\x17\x86\xdb\xcd\x80\x36\x63\x32\xdf\xb4\x50\x28\x5d\xb2\xda\x7d\x5b\xbd\xfc\xfe\xfa\xe4\x4f\x57\x31\x66\x81\x17\x4a\xdd\x57\x95\x6a\xc6\x68\xcf\x91\x6d\x19\xff\x75\xfc\x4f\x7a\xb9\x5b\xca\x20\xa0\x58\x40\x30\xf5\xda\xaa\xb8\x1a\xfd\x4e\x78\x28\x94\x0c\x94\x61\x90\x33\xf9\x78\x43\x3d\x32\xe6\xde\x74\xd3\x42\x12\x6a\x7a\x71\xf7\xed\x9c\xfc\x97\x92\x34\x0c\xd0\x09\xd8\xca\x77\x38\xb8\x84\x2a\xaf\xfb\xc3\x0a\xf3\x6b\x50\x4b\x12\x33\x4f\xef\xba\x3d\x1d\x8f\xc8\xae\xbc\x7f\xaa\x96\x5c\xbe\x4f\x64\xad\x6d\x52\x48\x86\x61\x84\xcd\x64\x8f\x4f\x0f\xbb\xfb\xd7\x27\xb7\x05\xca\x90\x65\x2c\x18\xd0\x7b\xbb\x97\x3a\xfa\xb0\x32\x84\x10\x03\xc3\x3d\x92\xf5\x9f\xda\x5d\xb5\x9c\x6d\x76\xff\x65\x95\x40\x46\x9c\x4b\x2f\x41\x1c\xdd\x73\x37\x2b\x25\x0b\x25\x7a\x72\x05\x6f\xda\xbb\x1a\x60\xc0\x34\x88\xfa\xbf\xf8\xdc\xb6\x6f\x73\xea\x2d\xca\x38\x34\x42\x6d\xef\xbc\xee\xe2\xe1\xb1\x91\x91\x71\xc4\x74\x8a\xd8\xe1\xa2\xe0\x2d\xd4\xbc\x30\xf9\xae\x89\x22\xb1\x92\x31\x37\xdc\x03\x97\xa5\xd9\xc9\x38\x9d\x86\xe0\x6a\x2b\x53\x30\x8c\x8c\xb5\xc6\xec\x2c\x3a\x7c\xa0\x1e\x40\xbd\xc1\x50\x60\x50\xc9\x34\xe6\x98\x59\xb3\x1c\x38\x37\xe7\xb5\xfa\x6d\x98\x57\x93\xa9\x10\xe8\x18\x60\x9c\xb5\xd1\x24\x08\x02\xc7\xd0\xec\x85\x2b\x94\x4c\x55\x82\xc9\xf2\xbd\x29\x25\x60\xd9\x6b\xfa\x66\xb2\x34\x44\x8c\x80\xe8\x66\xe5\xaa\x54\x0d\x0b\xdc\xe9\x9c\x30\x8c\x86\x87\xa4\x40\xbd\x63\x28\x79\x18\x26\xe6\x70\xdb\xb9\x18\xef\xf0\x9f\x13\x5c\xca\xa2\x76\xe3\x34\x0a\xbc\x69\x47\xc7\xa6\xa4\x20\x3c\x8b\x7a\x95\x31\xd4\x17\x1b\x9f\x24\x74\x92\x59\xd2\xc5\x1e\x44\x7b\x61\x06\xa4\x0a\xe3\x94\x4c\x73\xe6\x75\xce\x8b\x6e\x93\xbb\x12\x1a\x49\x95\x00\xba\x12\xdd\x4c\xfa\x47\xe3\xbd\x2d\xa9\xd2\x24\x0e\xfb\x0e\x96\x9b\xd3\xb9\x73\x22\x56\xbb\x6f\xfd\x80\x14\xab\x79\x2d\x34\xed\x63\xae\x54\x81\x92\x49\xf2\xfd\xa9\x6a\x57\x3f\x07\x6f\x06\xb8\xe6\x03\x9e\x7f\x67\xdb\xa4\xe6\x94\x24\xc6\x69\x7b\xe9\xbe\x7d\x37\x27\x6e\xf2\xa2\x18\x7a\xdd\xa3\x5b\x55\xa4\x33\x3a\x56\xf2\x60\x50\x06\x51\x84\x84\xda\x0a\xc6\x3f\xf2\xba\xce\xf9\x9b\x0f\x2d\x15\x61\x86\x76\x6a\x08\x7f\x9d\x41\xcc\x2b\x22\x62\xd7\x27\x6d\x79\x68\x1e\xab\xd2\x91\xb2\x29\x15\x32\x05\xa9\x6f\xfd\x78\x86\xfa\x66\xb7\x74\xc7\x22\x02\x38\x3f\xa7\xbd\x04\x93\xbb\x67\x01\xd3\x8e\x5e\x6f\xa0\x2d\x75\xcd\x6c\x4e\xc2\xe9\x81\x9f\xa0\x58\x28\xa5\xaf\x35\xae\x97\x1b\x9c\xf7\x7f\xa9\x34\xe8\x4e\x4e\xd2\x84\x4e\x5d\xa8\xe1\x8a\x54\x0c\x88\xf0\x49\xa3\x79\xa4\x97\x62\x10\xa7\xc3\xd7\x8a\x3e\x71\xb3\xab\xe6\x5e\x6d\x1c\x11\xcc\x69\xb5\x39\xd4\x4f\x53\xb6\x7e\xa5\x62\x95\x64\xa6\x55\xca\x4e\xd9\xb1\x2c\x9c\x52\x89\x4c\xb1\xe5\x1a\xef\xe7\x07\x4c\x10\xe6\x2a\x25\xae\x42\x68\x3c\x83\xe7\x81\x23\xab\xd2\x90\xe2\x0e\xb1\x37\x04\x22\x43\x50\xc8\xfc\x22\x52\x19\x0b\x1d\xb9\xda\x6b\xa3\x56\xed\xfb\x0c\xc0\x5b\xf1\x38\x56\x3e\xe9\x59\x77\xc7\xdb\xb9\x80\x5b\x71\x49\xb0\xae\x61\x91\x8e\x98\xfc\xb8\xc2\xdb\xdb\xc5\x1a\x46\x59\xe7\x4b\x8e\xd4\x16\x3b\xff\x2c\x0d\xdd\x4a\xbb\xe3\x79\xb1\xf4\xd2\xe8\x86\xd1\xa8\xb9\xab\x6a\xc8\xdf\xca\xa7\xaa\x5d\x97\xaf\x8d\x13\x55\xed\xfc\xaa\x84\xb9\x3c\xb5\x1a\x81\x74\xba\x19\x8d\x26\x65\x59\x95\x0d\x94\xad\x99\xb3\xf9\xe7\x15\x1b\xae\x54\x68\xe6\xff\x1b\xb4\x18\x7e\xb9\xcb\xe8\x90\x60\xfa\xb4\xb3\x1e\x28\xda\x34\x71\x70\x94\x0e\x8d\x66\x7f\xa5\x35\xd4\x4b\xde\xba\xea\xdd\xfc\x2b\xd0\x82\x1a\xfb\x7b\x3a\xaf\x7c\xbc\xac\xb4\x4e\x23\x13\xcc\x9a\x06\xa1\xff\x3b\xe9\xc6\xdf\xda\x6d\x21\x60\x34\xec\x5b\x05\xbf\xe7\x4d\x8e\x4a\x13\x7f\x5b\xc3\x73\xfc\x30\x10\x30\x8e\x1f\x7f\x97\x97\x7c\x90\x57\x85\x20\x09\xdc\xbb\xc4\x57\x36\x87\xa7\x85\x40\x05\xc8\xff\x7a\xe0\xed\xfb\x34\xe9\x33\x11\xc9\x54\x40\x82\xc4\x48\x63\x74\x8b\x19\xdb\x59\xdb\xaa\xed\x6d\xcc\x24\x25\x0a\x84\x19\x7e\x8f\xdc\x11\x53\x0e\x13\x94\x40\x63\x40\x6a\x16\x83\x1b\x45\x68\xd1\xaf\xa3\x51\xa0\x09\xd0\x6c\x54\x76\x30\x97\xa5\xd7\xcb\x0e\x40\x45\x18\xd2\x71\x03\xa7\x21\x99\x19\x04\x31\x40\xb5\x21\xa0\xb8\x7d\x18\xf2\x76\x2b\x08\x93\x10\x9b\xde\x90\x17\x60\x44\x2f\x73\xf1\x6a\x42\x0e\x71\xaf\x2a\x87\x49\xdd\x19\x3e\x1a\x88\x08\xb7\x5d\x6e\x65\x55\xe6\x7f\x82\x9a\x54\xe7\x21\xa2\x01\x7e\xcc\x23\xcf\x1d\xc3\x8c\x9e\x5e\x23\x94\x98\xe3\x7c\x59\x7d\x5f\x6f\xd7\x9b\x27\x7f\x6a\x96\x19\xca\x08\x0c\xd3\xee\xa6\x1b\x03\x44\x3c\xf1\x84\xcb\x17\xd5\x17\x88\x94\xc4\x3e\xb6\xed\x7b\xf5\xb5\x77\x95\xc3\xf9\xef\x10\xe9\x88\xf0\x81\xc0\x78\xf7\x76\x3a\x2b\x81\xfd\xc6\x83\x37\x34\x49\x07\x01\xe3\x31\x33\xfe\xe2\xa4\xed\x68\x7c\x9f\x71\x0a\xb8\xfd\x5a\x3a\xf8\xdd\xb7\x5d\xb5\x3c\x35\x6d\x75\xb8\x56\x6a\x86\x58\x84\x58\xfa\xf3\xbd\x83\x0f\x15\x2f\xa1\x76\x94\xe2\x93\x27\x8d\x81\x5a\xd6\xbc\x76\xc9\xeb\xa1\xc2\x82\x4b\x76\x41\xac\x23\x24\x26\xe8\x02\x60\x5d\x95\x30\x5c\x56\xb1\x8e\xd2\xa8\x57\xdc\x72\xa5\x85\xf9\xa5\x9e\x70\x8d\xd3\xef\xab\xf3\x17\xaa\xba\xa7\x04\x55\x90\x52\x69\xe5\xba\xf3\xb2\xf1\x7e\x94\x3f\xca\x42\xa6\x87\xdd\xb5\xb6\x90\x3d\xbe\x7c\x2a\x0d\x57\x9c\xed\x90\xf9\x5e\x4d\x3a\xb5\x49\x1c\x0c\x42\x22\x48\x15\xc7\x1d\xf7\x66\xb5\x7a\x59\x6e\x7c\x32\x10\xb2\x30\x33\x75\x23\x74\xc0\x71\xde\x3a\xc7\x06\x78\x6c\x24\xd3\xf2\xe6\xdb\xe9\xc0\xcb\x99\x0a\x31\x70\x30\xb5\x33\xdc\x38\x2f\xe7\x1d\x87\x54\x1a\x21\xf1\xfa\xe3\xb6\x2a\xc7\x59\x12\x10\xcc\xd4\x21\x8e\x1e\x1e\x36\xbc\x63\x11\x87\xc2\xba\x20\x26\x1d\x30\x1b\xde\x82\xa4\x29\x16\xab\x34\xb4\xf2\x1d\x17\x9f\x31\x35\x93\x51\x71\x80\x20\x6e\xbb\x9b\xb9\x27\x94\xd2\x60\xbb\x8d\x9a\x0d\x52\x11\xf7\x2d\x11\xa0\xa2\x4c\x8a\xa1\xc0\xd0\xf8\x9a\x88\xf7\x35\xb2\x73\xdd\xd1\xbb\xaa\x1e\x0a\x05\x4d\x66\x83\xd2\x12\xe3\xcc\xdd\x3b\x3c\xe4\x6f\xef\x23\xe0\x0e\x80\x22\xd8\x81\x7e\x34\xdd\x26\xdd\x06\x0c\x63\xdc\x1b\xe8\xd8\x88\xfd\x70\xf5\x09\x65\x7b\xaa\xa7\xd1\x01\xe8\x34\x0d\xb4\x53\x63\x80\xe3\x65\x59\x0f\x74\xaa\xd1\x86\x7e\xdb\xec\x76\x1b\x7f\x9a\x12\x99\x91\xae\x2a\x8a\x4d\xfd\xfb\x80\xe5\xe5\x7f\x58\x6f\x52\xe3\xff\x1d\xd9\xe5\x2b\x85\x04\x1d\x44\x21\xb6\x24\x20\x82\xe8\xd9\xf0\x0c\xcd\xaf\x5b\x1d\xc4\xa1\xd5\x5c\xb0\x2c\x12\x2b\xef\x09\xeb\x20\x05\xe1\xbb\x6e\x97\xfc\xd8\xf2\x7c\xec\xc4\xf6\x3f\x98\x01\x16\x67\x9f\xa0\x68\x90\xe2\xa7\xdc\xa1\x78\x6f\xff\x6e\x75\x20\x03\x07\xbf\xb2\xf4\x1c\xcd\xf5\x3d\x43\x93\x34\x41\x47\x52\x55\x6f\x86\x49\xc3\xfd\x5d\x00\xb3\xd5\x8f\xf5\x7a\xbd\x7f\x99\x54\x89\x35\x65\x14\xd3\xd9\x7f\x4b\x35\xb5\x1b\x2e\xc1\x04\x2c\xe5\xea\xa7\xbb\xad\xc9\x17\xd5\x34\x31\x8e\xe5\x43\xf5\x36\x92\x9c\xbe\x15\xaf\x65\x0f\x5a\x1c\x4f\x4a\x4d\x33\xe3\x7b\xb7\xc0\x0f\x9f\x83\xce\x13\x4d\x55\x2a\x9d\x40\x26\x34\x58\xc2\xee\xb6\xa0\x63\x55\xb7\x2f\x20\x21\xff\x04\xa3\x64\x3b\xbe\xd1\xd0\x22\x61\xfb\x9e\xf3\x71\x91\xc3\x0d\x0b\x25\x76\x4f\x0e\x92\xb9\xce\x43\xd4\x61\xc4\x1d\x38\x6e\xf1\x56\x03\xa8\xa5\x49\x44\x75\x4f\xd2\xf9\xbb\x38\x85\xc8\x55\x8d\xa7\xc9\x9b\x8b\x88\xd0\xa6\x6d\xe2\xad\xe6\x2d\x38\x09\xec\xc9\x20\x1e\xa0\xe9\x35\x3b\xb2\x6d\x76\x1f\xfb\x58\x71\x74\x99\x77\x1a\x66\x9f\x74\x24\x02\x6c\x9e\xdb\xad\x1f\x57\xfb\xd7\xe7\xdb\xc5\x6e\x35\xae\xc1\x6a\x26\x25\xae\xa7\x85\xe9\x70\xcf\xab\xf2\x87\xd7\x39\xf1\x53\x8c\xf6\x73\x2c\x9d\x38\x0e\x3a\x06\x86\x09\xe0\xfb\xd5\xd3\x3e\x18\xd5\x6f\x74\x02\x84\x27\x2e\x18\xb4\x4c\x8a\xdb\x2f\x7e\x44\x32\x9c\xff\x5b\x86\x47\x67\x2a\x26\xa1\x8b\x3b\xbb\xcd\xf4\xe6\x74\xb6\xe4\x9f\xf3\xdb\xb0\xe6\x21\x8f\x1d\x9e\xa6\x3e\x37\x2d\x2f\x7e\x60\xa7\x9c\xb3\x9b\x9a\xb3\x10\xd9\x0d\xdf\x79\xad\x64\x77\x57\x5d\xcc\xe4\x8e\x69\x9e\xd9\x8d\xc9\x90\x29\xcd\x2f\x01\x91\x0a\x24\x6b\xc1\x30\x7b\xff\x9f\x53\xfe\xe7\xfe\x3f\x7f\xce\x48\x16\x2a\x2d\x59\xa0\xec\xda\xbb\x39\xfb\x09\x63\x4c\xcf\xa4\xcd\x57\xab\x84\x6a\xaf\x0a\xd4\xbc\xdf\x9c\x7f\xd4\x79\x3b\xd0\xfc\x9b\x83\x44\x40\x10\x50\x8e\x79\x9b\xe3\xa9\x79\xbf\xe0\x72\x84\x20\xc8\x4c\x87\xfe\x3b\x78\xce\xef\xe1\xfb\xea\x06\x00\x36\x78\x62\x04\xb2\xab\x96\xef\xbc\x2c\x61\xbe\xf3\x0d\x82\x80\x9b\x5d\xcf\x37\x4b\x5b\xb7\x00\x02\x42\x43\xcc\xb1\x2e\x94\x72\x74\x54\x1e\xb4\x08\x56\x0d\x78\x46\x51\x17\x02\xd2\xed\x82\x5e\x3b\xaf\x05\x83\x9a\xec\x2f\x4c\x23\x86\xd5\xc0\xdb\xd5\xe3\xce\xff\x8d\x43\x76\x1d\x22\xeb\xca\x06\xfe\x15\x51\x4d\x90\x09\xe1\x79\xf5\xb2\x5f\x2c\x97\xc8\xab\xb3\xb8\xbd\x5d\xef\xd6\x9b\xa7\xc5\xc3\x48\xc3\x1d\x82\x28\x4b\x95\x51\x87\x6a\x61\x8f\x1f\xb8\xbf\x17\x96\x05\xcc\xf0\x7f\x6e\x2d\xef\xe2\xf8\x87\x62\x91\x68\x23\xfa\xbb\xe3\x1f\x50\x8f\x5a\xf6\x20\x88\x41\xa3\x77\x86\x0c\x41\x93\x1e\x46\x08\x12\x9e\x62\x27\xc2\xed\xea\xee\x65\xb3\xdd\xed\x1f\x37\x4f\xbb\x6f\xfb\xf5\xd3\xfe\x71\xfd\xf4\xba\x5b\xf9\xfb\x4b\x83\xc8\x08\xcc\x42\xfb\x6e\x74\x08\xae\xb8\xa5\xb3\x46\x08\x82\x34\x33\x8a\xea\xa7\x06\xea\x47\xfe\x33\x3f\x9c\xbc\x0c\x94\x89\xb4\x9e\xde\x26\x33\x24\xe5\x46\x03\xfb\x00\x2d\xbf\xd8\x23\x46\x09\x98\x6b\x3f\x29\xc3\x38\x1a\xf0\xb6\x1d\xba\x40\xbf\x9d\x04\x19\x10\xa4\x56\x65\xb4\x31\x8a\x81\xdb\x16\x8e\xee\xa1\xb3\x40\x20\x1c\xf6\xa1\x92\x1f\xeb\xd2\x36\x65\xd8\x63\x9c\x48\xd6\x87\x30\xdf\x4f\xf0\xcc\xcf\xab\xdd\xb7\x5b\xac\x50\x1b\x08\xd9\x8c\xf3\x05\x01\x4f\xa4\x8c\x07\x6e\xbd\xb2\x6a\x2d\xe3\x51\x82\x98\xb6\xa8\x6e\x07\xe8\x1c\xb4\x45\xeb\xa8\x6a\x26\x0b\x4d\x30\x23\x7f\x61\xea\xda\xcb\xcd\xea\xee\xce\xdd\xa1\xd0\x1a\xe3\x4f\xac\x4b\x19\xa9\xcf\xc6\x1d\x93\x9a\xa5\x06\xa7\x57\x14\x50\x5b\xb0\x5b\x5e\x95\x38\x3f\x06\x69\x6b\x8c\x78\x9d\xbe\xa5\xb1\x68\x8b\x52\x19\x31\xeb\xc9\x2d\x2b\x16\x40\xcf\xab\x15\x58\x5f\x66\x90\xde\x80\x40\x25\x46\xad\x6f\x51\xb4\x50\xef\x1f\x41\xe5\xdd\x92\x9b\xd5\x74\x77\x4e\x2d\x04\x90\x71\x4c\x54\x9f\xca\xaf\x9a\x1f\x27\x8f\xaf\xa9\x88\x2c\xe0\xc0\x6e\xf8\x53\xdf\x7f\x78\x29\x9d\x50\xa6\x7a\xd8\xfa\x95\x66\x52\x37\x18\x32\x6a\x19\xa5\x3a\xbb\xb8\x3b\x1f\x47\xc5\x2f\x08\xb4\x4e\x24\xf3\x20\x77\x57\x5a\xee\xc2\xfe\x0c\xdb\x24\x3f\xa1\x69\x1d\xd4\xde\x1f\xd3\x01\x62\x9a\xa0\xe6\x8d\x69\x78\x1e\x17\xdd\x80\x90\x44\x23\x30\x4e\x9c\xce\x3e\x65\x39\x7a\x66\x42\x52\x8a\xbd\x52\x5d\x78\xd4\x7f\xb9\xd9\xe8\xb3\x1b\x9c\x21\xc6\x26\x6f\x1c\x64\xf1\x8a\x76\x07\x10\x22\x33\x44\x01\x6a\x03\xc2\x19\xfb\x56\x40\x28\x61\x56\xef\x45\x3d\xe4\x1f\x30\xf3\xa9\x08\x15\x8c\x4a\x27\x42\x7c\x1c\x4e\x23\x42\x45\x8a\x38\xee\x7b\x68\x9f\x73\xff\x3a\x42\x01\xd2\xd1\x50\x1f\xf3\xcb\x0a\x23\x90\x28\x8a\x31\x2d\xf3\x99\xc3\x17\x8b\xdc\x79\x91\x10\x48\xf9\x50\x23\x25\xda\x3d\x5c\x7b\xfa\x48\xa6\x88\x92\xb1\x1d\xe6\xce\x32\x4e\x06\xa9\x10\x21\x4b\x16\x6b\xb9\x28\xa6\xdc\xab\x40\x22\x60\x91\xf5\x04\x17\x16\x1e\x39\x33\xbf\x08\x0b\x94\xe1\xc8\x7c\xaf\xab\xaf\x6d\xc1\x0f\x87\xc1\x3e\x3a\xe7\xff\x03\x61\x51\xc8\xe8\x40\x75\xa4\xd9\xe5\x45\xf1\xc8\xdb\x16\xbe\x7e\xf3\x43\x12\xec\x16\x3f\x1d\xdf\x6a\xae\x60\xd4\xdf\x0f\x84\xc5\x0c\x51\x16\x5d\x74\x5d\x62\xf7\x7d\x5b\x49\x07\x1e\x07\x12\xa7\x14\x51\xd6\xcf\xbb\x87\xa5\xfb\x5b\x12\xb0\x24\x70\x3a\xdb\x3e\x78\x05\x92\xc4\x31\x56\x41\xf6\xdc\x4a\xc7\x0d\x29\xac\x80\x24\x19\xc1\x1e\x03\x5e\xa0\xf0\xa0\xf5\x49\xfd\x36\x45\x12\x65\x4a\x0a\xa8\xde\x78\x3e\xb6\xfc\x54\x5f\xc6\xbf\x40\xd2\x94\x20\x05\xb1\xe5\x56\xc9\xcb\x37\x2f\x82\x03\x24\xe5\x3a\xb3\xaf\xc3\x2a\x5e\xd4\xeb\xf2\xb3\xca\xe5\xc4\x29\x4a\xdd\x78\x3b\x81\x06\xbd\x01\x96\x1b\x76\xf2\xa3\x4a\x91\xd4\x66\x49\x1a\x43\x2a\x3e\xf1\x08\x48\x46\x39\x52\x26\x2f\x5e\x96\xef\xfc\x97\x44\x62\x40\x32\xc6\x94\xee\xf1\x27\x37\x67\x1b\x0f\xcc\x03\x48\x81\x70\x49\xb5\x1a\x90\x22\x8d\x04\x6b\xec\x18\x11\x44\xb8\x13\x3b\x54\xc8\x90\x50\xc5\x0d\xa1\x09\x62\x90\xb7\x8b\x87\xd5\x7e\xf1\xf0\xb0\x59\x2e\x76\x3e\xa5\x05\x44\x00\x10\xc7\x13\xfe\x73\xfc\xed\x24\x0d\x13\x1b\xea\xf2\xfa\x6d\x4f\xf7\x39\x7a\xc5\xee\x68\x92\xa2\x90\x9d\xe0\xad\x7c\xdf\x37\xb3\xa8\x08\x3f\x54\xbb\xb9\xb3\x9a\x3a\x75\x44\x66\x09\x22\x4f\x0c\x45\x3d\xf8\xbc\xbe\xff\xbc\x10\xc5\x80\x9b\x5f\xc1\x25\xdc\xc0\xbc\x5b\x9e\xfe\xd7\xe8\x17\x21\x35\x49\xee\xc7\xf5\xd3\xfa\x71\xf1\xb0\x5f\x3f\x7d\x5f\x6d\x77\x3d\xf3\x11\x10\x10\x14\x3b\x0a\xdd\x9b\xfb\xe7\x89\x97\x6d\xb7\x44\xed\x71\x9d\x66\xd4\xb4\x9a\xfc\xfb\xd4\xb4\xfb\xd5\xcb\x92\xd2\xd0\xbb\x14\x83\xf5\xab\x35\x89\x4d\xf6\xc6\x56\x9b\x36\xf5\x33\x6f\x1c\x9a\xfc\x05\x46\x8a\x0f\xa3\x47\xa7\x41\x98\x60\xf4\xe1\xfa\xfa\xcb\xa6\xb7\xdb\xf3\xfe\x09\x0d\x18\x73\x49\xab\xce\x94\x9b\x6d\x0b\xc3\x0d\x95\xf3\xd2\xa0\x3a\x7e\x9b\xfc\x8a\x90\xb8\x3c\x50\xee\xd9\x3e\x1e\x25\xb6\x7f\xe0\xcd\xb5\x04\x02\x25\x49\x4c\x6d\x22\x08\xdd\x87\x66\x3a\xdb\x29\x49\x23\x74\x9c\x3f\xb1\x06\x72\xa5\xad\xce\x8d\x95\x2a\xb1\x0b\x7f\xdd\x0e\x79\x06\xc6\xcf\x43\x94\x44\xa9\x5d\x7d\x2a\x07\x58\x29\x7b\x90\x86\x86\x54\xf0\x0d\xda\xef\x55\x0b\x75\x33\x94\x57\xea\x0e\xeb\x78\xc8\xfc\x85\x75\xe0\xf9\x85\x42\x23\xaa\xd1\xdd\xed\x2b\xdc\xee\x80\x0a\x31\xd5\xfb\x63\x75\xd3\xe7\xeb\x80\x32\x96\x24\x66\xed\xbb\xbd\xd2\x6a\xb0\xd8\xe3\xb1\x10\x46\x4a\xd0\x10\x4f\x0d\xba\xa2\x86\xa6\x86\x26\x04\x90\x12\xcf\x72\xbf\x2c\xca\x37\x28\x7a\xe8\xfa\xaa\x7f\x96\x84\xa6\xa1\x69\x01\x41\x2b\x8a\xdc\xd8\xf3\x81\x0d\x4d\x43\xe2\xdc\x3c\x9f\xd3\x34\x7a\x97\x7e\x80\xc0\x1c\x96\x15\xef\xf1\x50\xa7\xda\x9b\x5d\x9a\x46\x46\xd3\x14\x29\x08\x1e\x78\xd3\x5a\xef\xcc\x1d\x4e\x0c\x24\x93\xcb\xc2\xff\x49\x70\xdc\xc9\x1f\xab\xfa\xf8\x0e\x27\xd3\x80\x71\xb7\xf8\x7d\xe5\x07\x68\x89\x4d\xd0\xb9\xac\xb6\x50\x7a\xd4\x1c\xd0\x2c\x88\xb0\xdc\xbe\xe4\x47\xf3\x2b\xea\x1a\x81\xa5\x3b\x81\x26\xae\x15\xe0\x05\x9a\x53\xe1\x67\x68\x96\x45\xa8\x91\x71\x32\x82\x6b\x36\x8d\x38\xe8\x48\x04\xca\x23\x8e\xdb\xd1\xcb\xc3\xc3\x2c\xf9\xdc\x8c\xb0\x05\x50\x9e\x99\x8f\x6d\xd6\xa1\xa9\x3a\xfe\x45\x84\xf2\x57\x39\x81\xb9\xe2\x6f\x7a\xd1\x83\x07\x54\x50\xa9\xfa\x14\xca\x6d\x55\x5e\xcc\x5c\x11\x45\x8e\x94\xa1\xdb\x82\x2c\xd0\xdb\x77\xbe\x0d\xae\x25\x89\x0a\x4c\xdb\x5b\xa9\x3a\x7b\x15\xec\xaa\xdb\x5e\xa7\xc4\x0f\x02\xac\x46\x21\x35\xe6\x0f\x93\x33\x5f\x56\x87\x03\x66\x89\xf8\x95\x55\x0a\xb1\xa5\x17\x83\x52\xdd\xe7\x7a\xba\x4e\x41\x19\xea\xb3\x76\xc8\x2d\xe3\xa7\xa3\x4e\x29\xd6\xe3\x1b\xfe\x09\xcb\xf7\x2e\x70\x29\x27\x05\x17\x08\x03\xf2\xff\xb3\xf6\x27\xcd\x8d\x23\xc9\xb6\x38\xfe\x5d\xde\xaa\x16\x77\x11\x98\x81\xff\x8e\xa4\xa8\x4c\x76\x69\x60\x93\x54\x56\x75\x5f\xbb\x46\x8b\xc1\x43\xc4\x15\x08\xb0\x30\x48\xc9\xfe\xf4\x7f\x83\x7b\x04\x26\x42\xaa\x7c\xcf\x7e\x9b\x52\x16\x23\x30\xc7\xe0\xc3\xf1\x73\x20\x36\x46\xe0\xee\xb0\xc6\xd1\x8c\x9f\x0f\x99\xf5\x46\x6a\x45\xe0\xb1\xd0\x43\x18\x17\x7d\xad\xc7\x34\x87\xfb\xa2\x1c\x7f\xec\x5f\xc9\xea\x81\xe7\xf8\xb1\xdb\x95\xf1\x7c\xe7\x55\xbf\xf5\xd8\x79\xe2\x39\x31\x21\xc9\x1e\x79\x9e\xda\xdf\xdc\x50\x22\x13\x38\x41\x4f\x6a\xc8\xeb\xee\xcd\x39\xe1\x30\x27\x33\xc4\x06\x16\x45\x36\xfa\x61\xe6\x5f\xf6\xf4\x89\x87\x01\x03\x64\xa7\x22\x0c\x8a\x29\xf4\x18\xdf\xbd\xa7\x62\x74\x75\xb7\x65\xda\x01\x71\xc6\xe3\xda\xf3\x9d\x90\x8c\xc0\x1c\x43\xff\x47\xd7\x3e\x82\x1f\x72\xcc\xe6\x7c\x58\x55\x55\x1c\x2e\x93\x6f\xe2\x0b\x8e\x91\x4c\xc9\x4b\x35\x48\x2b\x82\x17\xf0\x10\xef\x10\x39\x01\xe7\xaf\x1c\x08\x20\xcd\x07\xd4\xdd\xeb\x38\xb1\x6e\x04\x8f\xc7\x8f\x14\x45\xcc\xa1\x4c\xe9\xcf\x4e\x69\xaf\x57\x01\x05\x2f\x92\xc4\xed\xf9\x78\x45\x25\x83\xfd\x99\x97\xf5\xc4\xe3\xf0\x22\x48\x50\xde\xae\x3e\xa5\xd5\xad\xfe\x2e\x78\xb1\x1f\x32\x62\xae\xf9\x89\xf3\x09\x95\x38\xfb\xc6\x04\xd1\x9e\xf8\xee\x8f\xa6\xe2\x8a\x16\xad\x91\x55\x3a\xb5\x70\xbc\x38\xf0\xbd\x78\x98\x1e\x5b\x5b\xe2\x8d\xf9\x27\x8d\x79\x80\xdb\x11\x6d\xd8\xbf\xff\x6b\xf5\xab\xac\x34\xf6\x78\x19\x59\xb1\x98\x7b\xaa\xe5\x99\x11\x8d\x05\x2f\x06\x81\x5e\xdf\xe3\xe2\x4f\xc4\x7e\x3f\xbf\x58\xfb\xc7\x4b\xe2\x04\xcd\x42\x2c\xe4\x53\x8b\xee\x67\x4e\x70\xe1\x57\xa8\x3d\x77\xa6\x5a\x0f\x3c\x1e\x07\xc4\x76\x06\xfc\xfc\x3b\xc0\x25\xcd\x5f\x47\x66\xa3\xc7\x45\xe4\x21\x28\xf3\x9d\x67\x0d\xaf\x01\xc9\x29\xfe\xd9\x40\x79\xa5\xdc\xd3\xf8\x74\x22\x60\xc6\x51\x69\xdf\xf2\xb2\xb9\xa2\xcf\x3c\x5d\x7d\xc7\x87\x84\x01\x3e\xd5\xa6\x32\xe5\x66\x83\x44\x04\x78\x42\x0a\xac\xf9\x6b\xad\x9d\x85\xe5\x97\x83\xd6\x69\xc4\x2d\x4d\xf0\x0a\x8a\xbe\xf8\x04\x3c\xc5\x5c\xcc\xcc\xbc\x7e\xd4\xbf\xc4\x56\x0a\x9e\xe2\x12\xd3\x93\x54\xfc\x30\xc9\x4e\x9a\x3e\xc0\x19\xfa\xc5\xfb\xc5\xb7\xc5\xe8\xf6\xb4\x13\xa3\xe1\x65\x24\x20\x0e\xc0\xcf\x5d\x93\x1b\x82\xc0\x6a\x45\x2e\xb3\xae\xa8\x7c\x3a\xc0\xb5\x50\x18\x14\xe3\x4a\x7d\x4a\x1b\x0d\x3e\x63\xa1\xdb\xa7\xfe\xdb\x29\x6e\xe0\x38\x66\x6f\x9e\x22\x6e\xe7\x42\xda\xe0\x3b\x6e\x20\x4c\x52\x67\x22\x5d\xbe\xce\x55\x51\x56\x70\xee\x41\x80\x63\x94\xe8\x8c\x03\xe4\x3b\x5e\xac\xc6\xc0\x2c\x8c\xa2\xda\x9a\x25\xf0\x1d\x70\x10\xce\xcb\xab\x2a\x7d\xcd\x3f\x41\x03\x4c\x6e\xd1\x55\x12\x31\x0e\x0f\x8d\x7c\x5b\xf1\xea\x74\xcb\xd8\x0b\xbe\xab\x99\xdf\x91\x48\xb6\x26\x43\xd1\xd4\x9b\x9c\x5c\x67\x7b\x6d\x2f\xf6\x31\xc8\xa2\xd3\x9f\xa0\xd6\x3f\x2f\xbf\x8d\xce\xe0\x73\x27\x82\x4e\x8c\xfa\xb1\x50\x18\x34\x1a\x2f\x98\xbe\x2f\x34\x73\x6c\x38\xbf\x7d\xed\x2f\x79\xeb\xde\x55\x40\xd9\x50\xfb\x7f\x03\xa2\x32\xf0\x83\x44\x62\x78\x1e\xb9\xd3\x5b\x17\x6d\x7f\x58\x7c\x5b\x87\xb6\x39\x4c\x18\xce\xf3\x13\xaf\x4e\x4b\xa8\x3b\x9a\x5e\xf0\xa3\x38\xf4\xad\x9e\xf9\x9e\x6b\x58\xa8\x79\x30\x12\xf8\x11\x30\x31\xa2\xaa\xe3\x15\x74\xe0\x3f\xf0\x63\xad\x31\x98\x40\x13\x90\x90\xfa\xe3\x9a\xe7\xf9\x5c\xe4\xc0\x8a\xf1\x13\xdf\x49\xd8\x88\x0e\x64\xa3\x96\xd7\xc5\x67\x77\x94\x08\x85\xb6\xe4\xb2\x93\x4e\x58\xe4\x6a\x0f\x46\xb6\xf8\xbe\x28\x9f\xe0\x03\xbf\x8e\x3c\xf1\x49\x3a\x18\x7c\x61\x20\xaf\x15\xd4\xed\x93\xdc\xaa\xde\xb4\x5d\x38\x71\x70\x83\x6e\xed\x87\x03\xfc\xb4\xb3\xc7\x17\x3e\x33\x4d\xef\x08\xe4\xef\x7e\x26\x88\xb9\x4e\x73\xd4\xc8\xdb\x91\x8f\x6e\x9b\x25\x0b\xa2\x41\x36\x6c\x61\x9d\x08\x94\x7c\x78\x80\x57\x2e\xaf\x3b\xb8\x7c\x8a\xcb\x00\x5f\xaa\x2e\x19\x41\x5c\x50\x77\x20\xd3\x33\xcf\x26\x37\xae\x02\x87\x07\xbd\xad\xd7\x2e\x85\x76\x17\xfa\x6d\x9a\x40\xeb\x10\xdd\x13\x1b\x67\x74\x42\xed\x13\xe3\x26\x5a\x66\xeb\xfa\xf4\x9d\xe7\xaa\xcf\x84\xf8\x3a\xf1\x62\x6f\x8a\xfd\x1b\x91\xb2\xce\xba\x20\x01\x63\xc4\xd4\x52\x7d\x00\x5c\x1e\x2b\x03\xa9\x80\x80\x69\xa2\x7a\xf8\xfd\x2a\x57\x19\x9a\x7b\x37\xdf\x2f\x70\x98\x83\x2c\xee\xb5\x35\xdd\x0f\xc5\xdd\x54\x8b\x08\x02\x47\x07\x76\xc2\xe1\x7c\xd9\xd7\x70\xf1\x26\x7d\x5c\x29\x71\xb7\x7e\xfa\xf6\xa7\xbd\x01\x8f\x09\x2c\xfe\x5b\x3f\x6e\xf6\xfb\xcd\xf3\xd3\xf1\xfe\x79\xd7\x4f\x2b\xbf\xeb\xe6\x47\x08\xe9\x26\xca\x96\x21\x92\x70\xfe\x79\x43\x4f\xc4\x49\x17\x03\xde\xb5\x2b\xa0\x3d\x55\xc8\x5d\x5c\x5b\x40\xa5\xed\x09\x48\x66\x95\x67\xab\x4e\x6b\x73\x72\xd3\x91\x03\xbe\x85\x8c\xd9\x9c\xfc\x90\xd2\x0e\x82\x28\xe0\x18\x3c\x57\x69\xd5\x9e\x62\x57\x4c\xf4\x1b\x20\x88\x42\x89\x4c\x29\xab\xdd\x7a\x71\x58\xdf\x1d\xf7\x87\xc5\x2e\xe8\x0e\x8f\x03\x15\x10\x2c\x79\xc4\xe0\x3c\xc6\x62\xb6\xfd\x38\xce\xd9\xc5\xa5\xa0\x6c\xdb\x64\xa3\x09\x22\x88\x85\xdf\x63\x90\x4c\xad\xc8\xdf\xa4\x91\xcd\xb1\xb1\x07\xe8\xb9\x1f\xd3\x33\x06\x51\x57\x03\x09\x93\x79\xe3\x2f\x88\xc3\x10\x45\x2d\x2b\x27\x31\x17\xb1\x0d\x09\x85\x08\xf1\x26\x1f\x8a\xfc\x75\xfd\x13\x4a\x99\x56\x7d\x4c\x7a\x26\xfb\xdb\x2d\x57\x83\xb6\xe9\x05\x95\x13\x0c\x44\xfb\xb0\x48\x78\x8e\xf1\xc3\x74\x4f\x12\x86\x18\x9b\xcd\xd3\x61\xb7\xde\x6e\xee\x8e\x3f\x9e\x5f\x56\xdf\xd7\xbb\x61\x42\x19\x82\x84\x53\x71\x0b\x06\x3b\xdb\x25\x6c\xd1\xc8\xd9\x72\xff\x2f\x33\x5f\x01\x97\x31\x61\xdd\x08\x1f\x8a\xb1\xdb\x91\x05\x18\x88\xc8\xc1\x68\x76\x8f\xd4\x33\x42\x31\x5f\x9f\x58\x24\x49\x6c\x09\x7f\xf3\xb4\xbe\x03\x0d\xb9\xc1\x97\x5d\xb2\xf4\x6f\x00\x15\xed\xe1\xe0\xb7\x93\x77\x99\xd6\x8f\xeb\x3b\x34\xc0\x87\xd6\x4d\x20\x04\x55\xa9\xe7\x6b\x95\xda\x34\x36\x04\x32\x49\x50\x88\xf4\x5f\xee\x91\xca\x9b\x0e\x44\x9c\x40\xc6\x5b\x9f\xe9\x08\xa4\x88\x50\x11\xf8\xae\xa9\xe5\xc9\xbc\xb9\x6d\x71\xd7\x35\x6b\xc3\x56\x9c\xbe\xc3\xd7\x9a\xbb\xe3\x4f\xa7\x12\x32\x18\xb3\xe2\x75\x9f\xe6\xaf\x99\x11\xf0\x1c\x2a\x7b\x8d\x1f\x53\x71\x86\xc5\x1a\xad\x93\xd0\xfa\xbb\x9d\x89\x12\x28\x19\xca\x78\xc0\x12\x7a\x81\xbe\x09\x38\x22\xc5\x4a\x50\x8d\x84\x4d\xfe\x0e\x79\x5d\x74\xd2\x69\x9f\xb9\xa3\x8e\xbd\x26\xb8\x8e\xb2\xeb\x62\x39\x00\xc5\x43\x00\x11\x49\x83\xbe\x42\xfd\xdc\xd4\xb2\x38\x4f\x02\xd5\x01\x70\xa2\x98\x56\xad\xeb\x3d\xe1\xe5\x1e\x3b\x0e\x01\x00\x29\x0c\x5f\x4a\xd8\xac\x9e\x47\xda\x2f\x10\x68\x8f\x02\xe3\xa2\xb9\x3a\x6c\xe8\xf2\x05\x3a\x08\x10\xe1\x9f\x71\x35\x19\x87\x3a\xa2\x28\xb5\xe6\x8d\x84\xee\x96\x75\x12\x87\xa1\x4d\xea\xb4\x1f\xea\x01\xb4\x6d\x0c\x99\x55\xa9\xfe\x1c\x36\xd2\xd7\x32\xd9\x63\x78\x88\x58\xee\x33\x16\x7d\x76\x72\x2a\x10\xba\x2c\x44\x15\x0b\xac\xce\x19\x30\x6a\x42\xe8\xba\x0a\x73\x8b\xf5\x2b\x8c\x73\xe3\xa1\xeb\x39\x88\x9a\xdd\xfc\xf3\x70\x5c\x3d\x3f\x1d\x76\x8b\x15\x66\xd9\x77\x6b\x4b\x6e\x0c\xa1\x1b\x28\x47\xf7\x42\x83\x84\xdc\xe9\xe0\x17\x10\xba\x31\x78\x1d\xd1\x40\xb5\x32\x7e\xdf\xe7\xf1\xdb\xf1\x08\x0b\xdd\xc4\xf5\x4c\x1e\x70\x0c\x3a\x2a\x64\xd3\xda\x4f\x8b\xfa\x73\x91\x59\x08\xbd\x88\xf0\xe5\x97\xe2\x52\xff\x9c\x47\x7e\x40\xe8\x29\xa2\xb9\xae\xa0\xde\xf2\xb2\xce\x69\x67\xdf\xd2\x87\xb7\xca\x33\x03\x9b\xe5\x33\x31\x2e\x08\x7d\x06\x08\xaa\xeb\x23\x97\xe3\x0d\x29\xf4\x5d\x11\xa0\xf2\x91\x50\xf2\xab\x1c\x48\xe8\x1b\xed\x0c\xdd\xfa\xef\xc8\x31\x5a\x34\xb9\x62\x03\x44\xe3\x4d\x6c\x24\xee\x6f\x23\x16\xb8\x76\xb5\xd6\xd1\xef\x0f\x76\xbb\x9a\xcd\x98\x87\x41\x28\xd0\x70\x5e\x42\x3b\x5f\xf6\x39\x4f\xb3\x33\xc7\x44\xbe\xed\x10\x13\x94\xf7\x48\x76\xef\xaa\x38\x5f\x78\x7e\x9d\xad\xcc\x86\x30\x48\x02\x8c\xf6\x76\xd0\x10\x50\x37\xa1\xcc\xce\x1a\x0e\x03\x45\x49\x21\x9b\xad\x47\xb8\xa2\x69\x0b\x1d\x2a\x95\xc9\x40\xd7\x51\x30\x79\x8d\x61\x04\x11\xeb\x24\x1d\xfb\xea\x8b\xb1\xcb\x13\x86\x22\xc0\xa5\xbf\xc9\x53\x4b\x07\x87\x5a\xf0\x04\x35\xb2\x9d\x40\x31\x65\xf9\x54\x4a\x0c\xa5\x62\xa9\x5c\xf9\x8d\x57\x04\x85\x37\x1d\x23\x3f\x44\x9b\x53\xb7\x5f\x62\xca\x09\x00\x61\x14\x12\xdd\xc3\xfe\x83\xe7\x65\xd1\xf9\xd3\x61\xa4\x15\xca\xb9\x12\x6f\x31\x29\xa5\x8e\x9f\x26\xf6\x78\xd4\x83\x1d\x6e\xf6\xa5\xf1\x65\x62\xe9\x7b\x24\x21\x76\x0f\x9f\xc2\x43\x4c\x5f\xee\x08\x87\xea\x9c\x72\x75\xe6\xe5\xdb\xb6\x28\xb2\x43\x2f\xa2\x08\x21\x4f\x14\xae\x87\xa8\x45\x48\x21\x64\x0a\x73\xcc\x0a\x2b\x40\xc8\x05\x95\xd8\x6f\x9e\x36\x87\xcd\xe2\x61\xff\xb2\xdd\x3e\xfc\xcb\x9e\x4c\xc4\xdc\x35\x5e\x2b\x71\x78\x52\x0e\x62\x7c\x06\x91\x44\xc8\xb6\xb1\x7d\x5e\xb8\xec\xb7\x5b\xe1\xe0\xd8\xf6\xe3\x52\x8a\x89\x2e\x25\xca\xf4\x7c\xb9\x6b\x87\x42\x51\x9d\x41\x09\xfd\x76\xbf\xae\x4f\xf7\xc5\xad\x3e\xe6\xd4\xf5\x08\xa5\xaf\x7d\x2a\xb7\xad\x7e\x81\x51\xff\x93\xbf\xf6\x5c\xdc\x43\xd6\xaf\x63\x45\x8e\x5e\x7a\x03\xca\x9e\x4c\x1c\xa9\x94\x7d\x79\xb6\xf8\x06\x11\xb3\xe3\x5e\x20\x7c\x32\xe4\x97\x8b\xe7\xa7\x87\x8d\x2d\xd0\x84\x10\x54\x84\xea\xc2\xdf\x8a\x4c\x91\x5c\x68\x53\xe6\xed\x00\x19\x2d\x2a\xa0\x19\x12\x2d\x12\x41\xca\xc1\xd6\x75\xf5\xd9\x95\x50\xbb\x7e\xc7\x4a\xf2\x48\x7c\x3c\xdd\x9b\x18\x9e\x2a\x62\x71\x88\x95\x5d\x07\x38\x5f\xb2\x2e\xea\x67\x1b\x85\x87\x2a\x8d\x3b\x54\xab\xff\x91\xc2\x07\x69\x02\xbc\x43\x06\xd3\xe4\x71\xe4\xc4\xe0\x69\x43\x2d\x9a\x22\xb0\x6f\xc7\xd3\x31\x80\x12\x22\x47\xfa\x54\x8a\xd0\x7e\x9c\xbc\x36\xd2\x8a\x03\xbb\xc4\xbe\xa2\xc8\x51\x41\x68\x2b\x0b\xa8\x76\xa6\xfd\x00\x97\x22\xff\xac\x86\x00\x22\x97\x33\x4c\xc8\x2c\x5e\xed\xa2\x10\xb9\x22\xf6\x94\xdd\xd4\x96\xed\xdb\xba\x8e\x7c\x8f\xc8\x95\x04\x22\x25\x72\x17\xaa\xe8\x1d\x30\x02\x42\xe4\x79\x1e\x46\xd7\x48\x9b\xbb\xf5\x91\x3b\x44\x7d\xdb\x18\x61\xfc\x86\x3e\xf4\x7d\x56\x4c\x61\x28\x91\x17\x7b\x98\x0f\x3b\xa1\x1f\x4a\x9f\xca\x6e\xae\xf6\x2c\xbe\x41\xed\xbf\x02\xd6\xc3\x2e\xb2\xb4\xff\x04\x7e\x1c\x23\xdf\x7a\xfb\x71\x74\x51\x9e\x5f\x28\x13\x04\x5d\x3b\x04\x91\x25\x7f\xb9\x91\xdd\x83\x28\x60\x3a\x34\xd9\xd3\xa7\x34\x87\x69\x6b\xec\x23\x61\xfb\x66\x7b\xbf\x1f\x25\x81\xfe\xfb\x13\x17\x22\x0a\xa4\x17\x42\xcf\x47\xf8\x88\x3b\xcc\x53\xa1\x6c\xd1\x22\x44\xa1\xc7\x2d\x65\x1a\x39\xd7\xd0\xfa\x62\x68\x5b\x6d\xf2\x15\xcf\x95\x0d\x9b\x46\x91\xeb\x26\xba\xa3\xc0\xa3\x0a\x81\x53\x7a\x39\x0c\x92\x77\xb3\x93\x32\x8a\x22\x1f\x3f\x6a\x0e\xa0\x2a\x31\xe0\x3b\x1c\xdf\x6b\x1c\xf9\x58\x65\x70\xc9\xae\xe5\x71\xda\x26\x48\x7c\xa3\xc8\xf7\x85\xae\x57\xfc\xb2\x03\x2e\x4f\x93\x32\x61\x88\x62\x88\xe2\x2e\x61\xf2\xc0\x9b\x1c\xfb\x74\x8d\x0a\x13\x4b\x5c\xd6\x0d\xcf\x8e\x62\x46\xa3\x11\xa2\x24\x00\xaa\x67\x2e\x8b\x77\x6e\x8f\x4c\x34\xe9\x48\xbc\xfc\x7e\xa0\xa4\x0f\xa5\x97\x27\x49\xc2\xf9\xcc\x8a\x39\x05\x0f\x12\x5b\x70\x42\xea\x50\x83\xb8\x6a\xc4\xc1\x43\x43\xc8\x7a\xc0\x96\x8a\xb8\x42\x72\xee\xe6\x52\xe4\x03\x01\x7d\x73\x8c\x70\x38\xa6\x11\x6c\x40\xa8\x23\x33\x1f\x23\x69\x22\xe1\xfa\x48\x35\xb3\x59\x3d\x0f\xca\x09\x6e\xab\x3f\x6d\xf7\x38\x41\xfb\xe7\x1b\x55\x93\xac\x7f\xd6\x25\xbf\xe3\x35\x77\xa6\x97\x07\x1e\x19\x93\xff\x70\x2a\xa1\x3a\x15\x86\xa0\xd7\x6c\x24\x91\x74\x01\xf3\x86\x88\x04\xff\xb1\xde\x1f\x36\x4f\xdf\x8e\x77\x2f\xbb\x21\xb6\x23\x92\x49\x22\xbd\xde\x83\x37\xea\xf8\x7d\x76\xed\x73\x84\x3e\x44\x52\x78\xc8\xe0\xb2\x2d\x8b\x42\xdb\x13\x2a\x5f\x5b\x4f\xa4\x35\x6a\x48\xfe\xac\x6b\x54\x01\x5a\xe2\xc8\x58\x69\x46\x38\x12\x94\x6f\x01\xab\x01\x4c\x37\x0d\x1e\x18\x0f\x74\x53\xc3\xf9\xa6\x80\x02\x62\xe6\x39\x49\xdc\x27\x37\xa0\x1c\xf8\x99\xa3\xd7\x14\x33\xcf\x27\x88\x55\x6b\xdf\xef\x6f\xb2\xf0\x9f\x9a\xdf\x31\x13\x0c\x8d\x9e\x4b\x59\x9c\xad\x2b\x11\x3b\x6e\x44\x45\x36\xe8\x74\x2f\xb9\xf8\x35\x05\x62\x88\x1d\x8f\x28\x7a\x31\x66\xf8\x1d\x32\x35\xce\x39\xc5\x4e\x00\x98\xe3\xb8\x2f\x9a\x72\x51\xfe\x3f\x6f\xc2\xbf\xb6\x49\xc7\x0e\xe7\x58\x86\x7f\x22\xa1\xb8\xae\x6e\x1e\x62\xd7\x21\x72\x1b\x63\xf3\x1a\x39\xf4\xb4\xc8\xf7\xc0\xab\x22\xbf\xcf\xf8\xeb\x1c\x8a\x21\x76\x7d\x82\xfa\xdc\xaf\xd7\xc7\xed\x7a\xf7\xb8\x79\x78\x58\x77\xe7\xf4\x35\xe6\x7e\x51\x70\xb0\x77\xf2\x62\x57\x10\xfa\x8d\x78\x6d\x3a\x62\xa7\xaa\x39\x4f\xe3\xe6\xb1\x0b\x5a\x10\x71\xfd\xb9\x33\x94\x63\xcf\x01\x1c\x26\xb4\x97\x3c\xa6\xf9\x61\x8e\x6c\x07\x62\x9f\x69\x4c\x47\x3d\xf1\xaa\xe2\xcd\x70\xbf\x8e\x03\x26\xd1\x07\x50\xf0\x57\x03\x0d\x20\x80\xb4\x75\x90\xbb\x54\x55\x1c\xb8\x5c\x53\x1d\x5c\xbb\xa3\x2f\xa4\x84\xaa\xba\x83\x4b\x56\x4c\x30\x34\x71\xe0\xb3\x10\x11\x71\x45\x59\xeb\x22\x4b\x8b\x69\x3b\xf7\x31\x46\x85\x2b\x23\x5a\x2a\xea\xf1\xad\x7b\x17\x61\xa8\x2c\x3c\x73\x12\x64\x8b\x43\xc1\x11\x52\x7e\xe4\x4a\xe1\xca\xaf\xd0\x92\xcd\xae\xcb\xeb\xb2\x4c\xd5\xad\x5e\xb9\x39\x2e\xf2\x13\x8c\x82\xaf\x9f\xf7\xc7\x7d\x9a\xbd\x77\xd3\x30\x8e\x99\x03\x41\xaf\x3f\x3e\x8c\x24\xc4\x71\x24\x04\xb7\xf5\x89\x48\x36\x3d\x05\x11\xc7\x71\xa2\x90\x13\x83\x4a\x03\x67\x4a\xa1\x21\x8e\xb9\x87\x49\xf1\x0b\xbf\x76\x4b\xa9\xbd\x42\xe2\x2b\x0c\xb5\x1c\xfb\x12\x7a\xdb\xe3\x4b\xa3\x3e\xe6\x8e\x44\x4b\xf1\xf9\x71\x33\xfa\x88\x3c\x24\x66\x58\xc1\xab\xd6\xe4\x5d\xf1\xcb\xb6\x97\x52\x31\x7d\x84\xa3\x90\x73\x86\x26\x2e\x15\x5f\xd8\xb2\xa8\xcf\x66\xf0\xff\x2b\xbe\xe3\xeb\x95\x40\x18\xa9\x4a\xb2\x4a\xf0\x41\x3a\x6e\x9f\xee\x6e\x79\xa8\xac\x20\x6d\xae\xee\x20\x1b\x5b\xc3\xb1\x10\x21\xc6\xd8\x0e\xeb\xfb\x55\x77\x8c\xf6\x44\x88\xee\x11\x3a\xcc\x8f\x69\x9e\x0e\xbc\xca\x58\xc6\x01\x66\x6d\x0b\x9b\x9e\x1b\xbd\x42\x1d\x30\x34\xcb\x0c\x3a\x6c\x5e\xd0\xbe\xed\x16\x60\x60\x5e\xf1\x34\xbb\x8e\x82\xe2\xb6\x03\xf7\x3d\x73\xe3\x3d\x6f\x36\x24\xcc\x71\x98\xa9\xd6\x7c\x78\xf8\x71\x04\x95\xd6\x47\x27\x18\x99\xe8\x89\xe3\xba\x46\x6e\xed\x02\x8b\xda\x78\x30\x96\xc2\xfc\xbf\x26\x70\xe6\xc4\x89\x12\xc4\xe3\xec\xb9\x06\x4b\x04\x5d\x1d\x76\xeb\x3f\x7b\x09\x0e\x48\x1c\xae\xa3\x2e\xb5\x81\x64\xc1\x96\x0c\x0c\x12\x47\x10\x45\xdf\x8a\x97\xea\xb1\x5d\x3f\xec\xec\x48\x5c\x4e\xde\xd0\x43\x91\xbf\x1a\x35\xdd\x99\x20\xb2\x37\xc9\xef\x27\x9e\x13\x92\x28\x26\x37\x54\x57\xf6\x7c\x9e\xef\x23\x37\x95\x31\x77\xcc\x16\x3b\x9e\x30\x89\xe7\x2b\x44\x69\x2e\x9f\x0f\xc7\xf5\x03\x0a\x30\x1e\x9d\xee\x0c\xa1\xaf\xfd\x01\x25\x40\xeb\xe2\x7c\x6b\xae\xad\xb1\x52\x34\x46\x7c\xc7\x74\xf5\x19\x55\x42\x95\x90\x17\x4d\x2e\xa1\x33\x12\xef\x8b\x12\xde\x47\x4c\x66\x90\xf8\x2e\x84\x06\x26\xd6\x7d\x96\xb0\x3b\x93\x1f\xb8\xc6\x2c\x6d\xaf\x47\x4e\x80\x65\x89\x9e\xb7\x33\x13\x3f\x0a\xd1\x76\xe3\x4a\x3d\xc1\x87\x4d\x4b\xcd\x73\x45\xce\x4f\xf2\xc4\x17\x31\xf2\x02\x0a\x3e\x57\xe6\xd6\xf7\x0b\x22\xa9\xcd\x90\x5a\x9d\x9a\xfc\xed\x46\x96\x1c\x92\x30\x70\x85\x19\x8c\xb2\x48\xf3\x7d\x81\x0a\x6d\xd9\x10\x20\x98\x84\x01\x91\x7b\x9a\x62\x8e\xb3\x68\xf7\x08\x35\x45\x58\x25\x21\x90\x08\x58\xbb\x54\xb6\xcb\x4c\x4f\x4a\x30\xee\x17\x3b\xda\x11\x63\x3d\x9f\xd1\x1b\x8f\x85\xc4\x89\xfb\x50\xbc\x1a\xb2\xeb\x7d\x5d\x0c\x22\xc4\x49\xc2\x84\xe2\xd6\x42\x32\x05\x2d\x5d\x5b\x40\x05\xa2\x28\xa0\xdc\x7d\xd7\xbf\x4d\xc5\x25\x49\xac\x10\xc7\x7a\xec\x24\xef\xb7\x65\xf1\x5a\xf2\xf3\xa6\x1a\x21\x16\x13\xee\x08\x24\xba\x78\x24\x66\xf8\xb9\x20\xc5\xe4\xd4\xc2\xf3\x74\x62\x8d\x6a\x32\x9d\x9f\x8a\xd6\xac\x19\xad\x57\x89\x48\xa8\x64\xe6\xcc\x7f\x1e\xd3\x2e\x42\x78\x84\xfe\x3b\x28\x66\x30\x67\xa8\xcc\x43\x70\x95\x5c\x9e\x8a\xf9\x62\x73\x48\x14\xd7\x89\x41\xb7\x58\x1c\xcd\x2d\xb1\x1b\x24\x4a\x04\xca\xeb\xcb\x79\xf7\x27\x5e\x76\x4f\x0b\x5c\x41\x07\x49\xdb\x90\x0f\x3e\x61\xa6\x87\x04\xc0\x21\xbb\xcd\xa2\x76\x6c\x91\x91\x81\xfc\xcf\xcf\x03\xed\xc6\x60\x8c\xe0\x7f\x14\x02\xb7\xeb\xfd\x5b\x9a\x65\x13\x67\x33\xd1\xbe\x8b\x99\x3e\x0a\xd2\xd5\x69\x7f\x5d\x1d\x10\x24\xfb\xa1\x78\x5d\x96\xc5\xdb\xd4\x20\xe2\xcc\x21\xda\x68\x93\x92\x27\x32\xa1\xf9\xbb\xe1\xcc\x11\x5e\x3f\xc6\x9f\x73\xa0\x8d\x7d\xfc\x8d\x38\x0b\xa9\x5e\xc9\x0a\x16\x63\x76\x7d\x91\x95\xc0\xd5\xf5\x31\xcd\xbb\x21\xca\x59\x02\xe8\x25\xd6\xfc\x0d\xe6\x22\x71\x5f\xc6\xa9\x38\xe3\x31\x92\x14\xee\x29\xe4\x6c\x34\x85\x5e\x76\x0f\x37\xe7\x19\xee\x0e\x9c\x49\x81\x7a\xf4\xef\x29\x7c\x3c\xf2\x9f\xdf\xf8\x90\xc6\x02\xda\x81\x1b\x26\x5d\x2e\x38\x55\x69\x3d\xf1\x6d\xb9\xeb\x84\x9c\xf2\x35\x28\xba\x8e\x02\x69\xd3\x2e\x5e\x10\x4a\x4b\x57\xdd\x0e\xd2\xa2\xfc\xc6\x27\x52\x8e\xc0\xbd\x48\x63\xfc\xe3\xbe\x28\xfb\xeb\x7b\x12\x5c\x13\x77\x5e\x67\xe9\x6b\x4a\xf9\xd4\x1d\xa4\x67\xd1\x94\x43\xc1\x15\xe0\xbe\x1b\xe2\xa6\xc4\x55\xeb\x59\xb6\x8d\x7f\xaf\x28\x60\x0e\x0d\x7c\x16\x1b\x12\xe6\x76\xf0\xb5\x4b\xde\xd2\xde\x41\xd0\xba\x2c\x6d\xdb\x89\x57\x70\xf4\x8f\x83\x9c\x19\x0f\x39\xc8\x68\x18\xe8\x1d\xa1\xb1\x78\x24\xa2\x30\xee\x90\x78\xc4\xf3\xfb\x54\x6c\xdf\x26\x03\x24\x4e\x18\x3a\xd0\xad\xa3\xf9\xc8\x7f\xda\xa3\x63\x15\xa2\xdd\x51\x93\x3a\x77\x5e\xd4\xed\xa7\x25\xd3\xca\x20\x37\x74\x0d\xc8\x03\x83\x86\xa6\x1d\xe2\x3c\x61\x44\x77\x86\x35\x19\x50\xbe\x42\x2e\xaf\xd6\x12\xda\xa7\xaf\xed\xfa\xb6\xba\xe1\x4a\x01\x9e\x04\xda\xd6\x95\xa2\xa1\xf3\xd4\x4c\x72\xdf\x3c\x89\x58\x64\xf2\xe7\x66\x29\x19\x94\x82\x55\xad\x9f\x01\xe5\x74\xa2\xf3\x44\xf8\xb8\x44\x19\x18\x76\xcf\x87\x36\xab\x98\x0a\x3c\x91\x91\x2b\x86\x72\xc5\xdb\x12\x6c\xba\xb2\x04\x18\x1d\x35\xfd\x63\x4f\x01\x12\xb3\x81\x77\xc0\xf3\x39\x8d\xf9\xe6\x06\x57\xc6\x39\x53\x28\xe7\xf0\xd1\x95\x37\x5b\x23\x81\xf3\x20\xb1\xb5\xb9\x73\x26\x39\x17\x01\xc7\xb7\x72\x58\x7f\x3b\xd8\xc8\x35\x97\x7e\x88\x90\xb7\x34\x1f\xc9\xe0\xd8\x56\x4e\xaa\xda\x15\xd4\x75\xf6\x9e\xc1\x79\x4a\x63\x3c\xdc\xc6\xe7\x06\xac\x4a\x62\x8c\x95\x5e\x78\x59\x1f\xeb\xe2\xf8\x0e\xa7\x54\x0e\x2c\xee\xb1\x65\xd0\x1d\x44\xee\x22\x25\xa5\xf8\x6d\x5d\xc0\xbc\x53\xcb\x95\xf4\x30\x12\x2c\x2d\x70\x0c\x88\x1d\x67\x79\xbd\xeb\x71\xeb\x1c\x02\xe5\x53\x28\x0c\xb5\x16\xb6\x19\x97\x70\x22\x6a\x6e\xd3\x43\x07\x3c\x18\x6a\xe8\xda\x7c\xdb\x7c\x66\x40\xb0\x50\xa2\x3b\xf3\xca\xcf\x60\xb6\xd3\xd1\xf3\x08\x16\x45\x22\x19\xc0\x49\xbb\x4c\xb1\x60\x31\xe5\x73\x91\x03\x39\xe3\xbd\x8f\x24\x18\xb0\x44\x74\x65\x0d\x69\xfe\x7a\xd7\x0c\x49\x7b\x41\xb8\x2c\xd1\x24\xad\x65\x55\x44\x46\xaa\xd4\xb6\x97\xef\xe1\x20\xfd\x0f\xc8\xfe\xaa\x2e\x30\xbc\x9f\x47\x50\x4f\x5d\x3a\x56\x78\x21\x78\xae\x8d\x93\x18\x3e\x64\xdb\xe6\x3b\x3a\x36\x65\x6a\x87\xe6\x32\xe3\x31\x8d\x16\x0a\xe1\x7b\x31\x46\xa6\xbe\x43\x99\xd6\x7c\xc0\xaa\x6f\xda\x03\x37\x42\x24\x2c\x05\xce\x2a\x40\xa4\xee\x16\x8b\x7e\x6d\x0f\x8f\xf8\x44\x07\xe5\x57\x54\x9a\x32\x39\x91\x0a\xb1\x12\x35\xcd\xdf\xd3\x1a\xca\x1d\x74\x77\x1c\xb2\x10\xd7\xe3\xc7\xd3\x40\xe9\x1b\x44\x98\x78\x18\x1b\x26\x99\xf6\x01\xf3\x38\x88\xc8\xd4\x90\x56\x35\x7f\x05\x97\x02\xdf\x7d\x5b\xd0\x53\x00\x7c\x0d\xdb\x15\x31\x73\x08\xfb\x6a\x46\xcf\x91\x7f\x4a\x2d\xdf\x76\x56\x98\x03\x37\xdf\x10\xbd\x03\xe8\xc5\x4c\x40\xc4\x9e\xa0\x3c\xb8\xb5\x37\xd7\xb9\x7a\x28\xe4\xdb\x60\x75\x17\x89\xe7\x70\x77\x20\x22\x3a\x5e\xb6\x45\xe2\x09\x92\x07\xb6\x92\xc7\xcf\xdd\xeb\x48\xa2\x04\xd9\x79\xcf\x6f\x84\xa0\x6a\xc6\x09\x4b\xd3\x8b\x07\x90\x18\xe9\x91\x4e\x91\xe9\x06\x1c\x3a\x9c\xf6\x82\x2b\x17\x67\xd0\x01\xaa\x8c\xf7\x6a\xf8\xd8\x60\xcb\xc5\x0c\xe3\x4f\x35\xbd\x58\x3b\xf6\x2d\x27\xe3\x03\xbc\x43\xe6\x6c\xa9\x7e\xa6\x43\x54\x9a\x9e\x42\x12\x14\x56\xd4\x72\x07\x19\xef\x3e\x96\x8c\x48\xcd\x5c\x34\xd7\x1d\xaf\xe1\xdf\x50\x16\x5d\xe1\xd6\xf8\x5a\x32\xf1\x11\xa2\xb6\x6c\xe4\x9b\x1c\x8c\x12\x29\x14\x6e\x4c\x97\x12\xba\x5d\x6b\x50\xfa\x22\x94\xe3\xba\x66\x59\x7c\x99\x14\x0e\x0b\x70\xa4\x35\x44\x0c\xea\x37\xcd\x5f\x3f\x59\xc6\x26\x47\x26\xb4\x0b\x9f\x53\x9b\xa0\x22\x85\x2e\xcb\x3f\xd0\x1d\x3e\x4d\xe2\x7d\x5e\x28\x20\x74\x20\x30\x61\x60\x8d\x82\xb2\x7f\x0a\xc9\xdc\x00\x73\xaf\x46\x55\xb6\x23\x54\x1f\x0e\x1e\xc9\x7c\xa2\x86\x68\x37\xb8\x4e\x6f\x0d\xa4\xc3\x88\x92\xcb\x2c\xb5\x98\xa4\x20\x2b\x77\x68\x58\x48\x27\x16\x3e\xd5\x84\xb4\xd6\xd6\xb1\xdf\xb4\xc6\x2f\x4d\xba\x2e\xc9\xa0\xe9\xd6\xa4\x5a\x13\x73\xf6\x0e\x4b\x70\x09\x13\x6e\xbb\xf9\x0e\x16\x5b\x22\xfd\x1c\xcf\xb2\x61\x21\xb0\x74\x43\x85\x02\x39\x0f\xa9\x86\x3d\xd4\x47\xc6\x3c\xdb\xe4\xb9\x1c\x53\xa3\x46\xf0\xca\x2e\xb2\xd2\x17\x3e\x95\xac\x34\x02\xeb\xe0\xdf\xe6\xa7\xb4\x0c\x22\x40\x64\xe6\x3f\x0f\x2f\x8f\xf6\xd8\x40\x6a\x24\xdb\x5b\xff\x4c\xbb\xd9\x2a\x43\x21\xd1\x29\xc1\x34\x4e\xce\x9b\xba\xda\xd2\x10\xea\x3a\x48\x17\x0b\x32\xcc\x44\xeb\xab\x49\x3e\x29\xe4\x92\x91\xcf\x91\x9d\x06\x9a\xb2\x5b\xc0\x65\x14\xf8\x6e\xcf\x5c\x37\xa3\x63\x3a\x9d\x9c\xbd\xf5\x29\x23\x00\xfa\x72\x84\x32\x75\xb7\x19\xaf\xd3\x7c\x6a\x42\xc9\x48\x73\xc7\xc8\xa8\xb4\xde\x0e\xbe\xb7\x51\x1a\x50\xc6\x3a\x70\x07\x92\x7b\x13\xf6\x1b\x90\x49\x48\xf2\xbf\xc8\x3c\x59\x37\x19\x4f\x4b\x38\xae\x8a\xf3\xa5\x86\xe3\x04\xa5\x29\x13\xc1\x11\x6b\x69\xa2\xea\xdd\xa6\x84\x34\xac\x86\x4e\x40\xe2\x50\x58\x15\xd5\x27\xb9\x4c\xc9\x43\x88\x3a\xc5\x8a\xca\xf8\x73\x58\x96\x6e\x3b\x28\x5a\x4b\xcf\x3c\xcd\xab\xba\x04\xa8\xd1\x8b\xd7\x7d\xc0\x48\x0a\x8f\x00\x8f\x1f\xe9\xe4\x69\x85\x1f\x33\x0a\x61\x5f\x06\x2b\x85\x14\xca\x09\x7b\x08\xfd\xd6\x14\x9e\x8e\x6d\x36\xa9\xe2\x28\x36\xeb\xa7\x01\xd9\xcc\xe2\x51\xa4\x8a\x39\x49\xc2\x6d\x9e\x36\xc7\x6f\x8b\xc7\xf5\x71\xbb\xdb\xfc\x7b\x7d\x5c\xed\xfe\xb5\x3f\x2c\x1e\xec\x35\x15\x44\x92\x51\x7e\x68\x05\xe5\x88\x32\x0d\xa4\xd2\x1a\xb3\xd8\x47\x38\xa7\xad\xeb\xb9\x6b\xbf\xee\xeb\xb7\xf4\x1d\x6e\x47\xc7\x4c\x18\x5f\x82\x9b\x60\xf6\x73\xb7\x3e\x1c\xef\x36\x3f\x7e\xeb\x7e\x06\x4c\x42\x9b\x2c\xd1\x7d\x93\x2b\x63\x47\x77\x3d\x3c\x2f\x20\x3d\xbb\x1c\xb6\xc5\xfe\x93\xe1\xdc\xae\xda\x66\xd0\xe0\x39\x26\x6f\x40\x3b\x10\xfa\xfd\xa8\xdb\x66\xa0\x5e\x61\xfc\x21\x34\x30\x45\x66\x7a\x55\x97\xc5\xd5\x4a\x85\x51\xab\x62\xbe\xc6\xe9\x32\xe6\xce\x7c\x82\x8f\x1d\xbc\xa7\xed\x14\x79\x2a\xea\x81\xac\x08\x28\x16\x28\x4c\xf2\x18\xdc\xc1\x8d\xb2\x88\xe9\xe6\x04\x31\xd6\x9e\xe1\xb1\x36\xd0\xf1\x35\xbc\xd0\x1e\x29\x49\xbb\x1b\xcd\xaa\xfb\xd6\xe0\xc1\x1c\x94\xb5\xda\x95\xa3\x98\x88\x87\x95\x6a\xe9\x98\xb7\x63\x7a\x3a\x30\x45\x44\x08\x5b\x41\x90\xf1\xec\x6c\x68\x3b\x62\x21\xc5\x5d\x5a\x5d\x10\xf8\x59\x15\xd9\xfb\xa8\x56\x62\xf2\x84\x10\x61\x30\x04\x33\xa3\xdf\xda\xc9\xd1\xdd\xa1\x0e\xd0\xb1\x7c\xc9\x2d\xe7\xea\x0c\x45\x81\x72\x7d\xe6\x98\xec\xea\xdd\x35\xe7\xe7\x54\xa2\x43\xb1\x36\x4e\xc3\xf8\xe6\x5c\xc5\xa8\xd2\xf6\x83\x97\xea\x8b\x20\x9f\xf2\x98\x67\x75\x36\x41\xd6\xb7\xd9\x3d\xe5\x39\x11\x37\x9b\xe6\x28\x8f\xa5\xbc\x28\xf2\xa9\x4e\xec\x2a\x60\x91\x17\xed\x8a\x7c\x43\xaa\x05\xca\x4f\xe2\x91\x46\xff\x40\x33\x6a\x28\x0b\x38\xeb\x70\xa8\xc0\xe7\xa4\x4f\x50\xa7\xb5\x3c\xdd\x1a\xc5\xfd\xdb\x09\x84\x0c\x4d\xed\xe2\x52\x5d\x36\x67\xe4\x83\x41\x5a\x98\xee\x83\x38\xe1\xff\x74\x9d\x95\x63\x22\x9b\x8b\xcb\x4d\xf4\x74\x7c\x0b\x51\xac\x08\xad\x31\x54\x44\xfb\xb4\xd0\x74\xee\xf7\xdb\xa2\x8d\xf1\x1b\x8a\xfd\xc0\x1f\xe8\x29\x5a\x72\xa2\xf1\x6d\xc4\x3a\x42\x2c\xf2\xb1\x2a\xca\x4f\xd6\x67\x95\xf8\xa4\x93\x54\x9d\x8a\x8f\xd1\x1c\x4c\x04\x8b\x0c\xce\x71\x91\x65\xa6\x78\x15\x86\x04\xb6\xa0\x38\x23\xf4\xe0\xb9\x90\x6f\xfb\xae\xe6\x77\xb8\xcc\x2a\xee\x32\x1c\xf1\xaa\xb0\x04\x40\x53\x12\xc4\xb6\x8f\x26\xa1\x3b\x62\x98\xdf\xd7\xc0\xb3\x47\x9e\x37\x3c\xcb\xae\xa3\x85\x54\x89\x08\x70\x31\x3e\xa6\x7a\xfd\x0e\xf9\xe1\x04\xf9\xb3\x52\x87\xa2\xb8\xcf\xf8\x14\x33\xa2\xa4\xef\x5b\xc2\xbf\x75\x25\x1b\xc8\x3e\x29\x92\x55\x8a\x0b\xc7\x1d\xb9\xef\x33\xb5\x48\x0a\x1c\x17\x39\x08\x71\xcd\xf8\x03\xe0\xed\x39\xb7\x16\x44\xeb\xa8\x49\x62\xfd\xd4\x50\x96\x3c\x6b\x4d\xdc\x0d\xba\x3f\x5d\x17\xed\xf8\x8e\x31\x4f\xef\x90\xf5\x6b\xfe\x5e\xb4\x08\x70\x4d\x47\xd9\x8a\xfb\x51\x9d\xda\x8d\x69\x49\x87\x00\x73\x3d\x70\x07\xbe\xcd\x22\xcb\x16\xe5\x6b\xf5\x54\x2c\x3e\xd3\xeb\x9e\x9c\xc0\x11\x1a\x51\x5c\x18\x72\x7d\xa0\xd8\xcc\x7d\xca\xeb\xd1\x1a\x0f\x8e\xd4\xc4\xe6\x28\x8b\x8e\x57\x0a\xcb\x40\x28\x7d\x6f\x7b\x69\x17\x03\x7a\x5c\xcd\x2f\x21\x93\x4b\xbb\x41\x42\x0a\x82\xb8\xd2\xf7\x00\x87\xd9\x05\x1f\x5c\xc1\x02\x13\x64\x5a\xf1\x0b\x97\x03\xe7\x61\x72\x5e\x8f\xbb\x28\x2a\x63\x51\x20\xfb\xda\x82\x05\xc0\x03\x2d\x2c\xc5\x51\x51\xbe\x41\xb9\x2d\x8a\x6c\x79\x25\xd4\xee\xf8\x2c\xbe\x70\x7d\xe3\xb4\x98\x6d\xa5\xe9\x99\xf1\xbe\xe6\x7a\x04\x08\x5c\x87\x20\x46\xad\xed\xbd\x6b\x5d\x8e\x33\x8c\xa9\x94\x46\x9f\xc3\x9c\x35\xf4\xed\xe1\xbe\x40\xc7\x83\xa2\x46\xe6\x7d\x58\xec\xea\xec\xca\x07\x41\x10\x60\xbd\x98\x4a\x2b\xa2\xb0\x68\x47\x61\x07\xb8\x86\x80\x27\x98\x98\xdf\xee\x36\xab\xf5\x11\xeb\x6a\x8e\x87\xef\xbb\xf5\xfa\x88\x74\x52\xb6\x5b\x08\x01\xf7\x3b\xe9\xc3\xdf\xff\xb5\x9a\xd9\x58\x20\xf2\x14\x5a\x34\x0b\x29\xe1\x52\x43\x9f\xf8\x98\x7c\xb1\x28\x70\x48\xab\x09\x37\xd2\xef\x45\xf6\xd5\xc6\x02\x11\x04\x09\xe5\xf8\x5e\x3f\xd9\xce\xc7\xfd\x63\x87\x23\x71\xdf\x43\x21\x3b\x0c\x29\xc4\x7e\x28\xfb\x18\xfc\x3f\x8a\x34\x87\x9e\xad\x7a\x3a\xa2\xe2\x20\x0a\xcc\x16\xf0\xd4\x9c\x97\xe9\xd4\xf3\x85\x38\x54\x5a\x18\x82\x56\xd4\x4e\xb0\xfa\x0f\x00\xb1\x50\x28\x01\x6f\xe2\x8b\x9d\x5a\x30\x40\xa2\x03\x82\x10\xaa\x89\x7c\x0c\x80\x88\x1c\xd4\xf9\x7a\xbc\x1b\x55\x97\x82\x00\x8e\xd5\x90\x76\x12\xcf\x80\x66\x40\xfa\xd2\xed\x54\x3c\x4b\x55\xdd\x22\x70\x40\x0a\x07\x91\xd6\xbf\x5f\x05\x94\x46\xb8\x74\x84\x88\x33\xfd\x94\x29\x66\x45\xb1\xd7\xd6\x4b\xbc\x37\x13\xc5\xde\x8f\x72\x05\x98\x6b\xdd\xf1\x34\xbb\x92\x70\x61\xf7\xec\xca\x17\x31\xa9\x83\x63\x98\xc8\x06\x3f\x3a\xf9\x15\x00\x48\xb8\xa5\x67\xdf\x3e\x3f\x3f\x98\xec\x32\x1b\xed\x0e\xa0\x43\x89\x6a\x3b\xff\x4e\x5f\x5f\x9b\x92\xd7\xb3\xcc\x0f\xb7\xc6\xbb\x66\x3e\x71\x1a\x1d\x4e\x40\x8c\xd5\x77\xc0\xd5\xfe\x94\xd6\x83\xb0\x92\x66\x0a\x34\x1f\x44\x60\xbe\xa7\x15\x31\x5d\x35\x79\xfd\xac\xc7\x2e\xb5\x76\x62\x87\x0d\xa8\x37\x96\x96\x5e\x1d\xb4\xc3\x5d\xcc\xfd\xbd\x4b\x8f\xe6\xa2\xbf\xed\x50\x20\xda\xf5\x63\x1c\xb1\xc6\x71\x1b\xbf\x65\xed\x8a\xae\x64\x6c\xb9\x58\x2c\x5e\x6e\x58\x16\x67\xe7\xb1\xf6\x05\xc7\xa0\x5f\x53\x97\x13\xb6\x56\xd0\x81\xa3\x30\xb8\xb6\xda\xac\xba\x9f\x92\x20\x22\xa3\xaa\xdd\x32\xaf\x0b\xa5\x76\x66\x1b\x9a\x9f\x36\x3a\x48\x80\x1b\xd7\x87\xf8\x93\xbf\xde\x1f\x74\x20\x04\x66\x2a\xab\xba\x5c\x15\xb9\xe4\x75\xf5\xcb\xc9\x11\x1d\x81\xf0\x4d\x8e\x91\xa8\x9a\x7a\xfa\x27\x1d\xfb\x1e\xca\xd7\xd2\xe2\xf0\xac\x17\xf5\x09\x83\x1e\xbc\x9c\x92\x13\x7c\x0d\xde\xd0\x71\x28\x71\x35\x3a\x17\x2a\xd5\xd7\x19\x1a\xc8\x29\xb6\x5a\xc7\x91\x83\x97\x36\xea\x53\xe3\x59\xa4\x13\x27\x0a\xa5\xa9\x94\x77\xc6\x90\x30\x9d\xb8\x14\x4a\x7a\x5c\xfc\x79\x5c\x2e\x1e\x16\x4f\xab\x75\xd7\x14\xf3\x88\x54\x10\x8c\xb8\x20\xa2\x04\xfb\x1a\x33\x9d\xc8\x08\x67\xdd\x11\xb0\x24\x0f\x83\xa7\x38\x34\x4d\xde\x72\xcd\xcb\x7c\xc8\xcf\xf3\x09\xe9\xc2\x7f\xdd\x2e\xc8\x9a\x27\x2e\x09\x94\x93\xa1\x36\x85\xf7\x68\xce\x03\xe4\x9e\x39\x8e\x2a\x46\xa1\x0f\x31\x7c\xf2\x6a\xb9\xe6\x5e\x64\x55\x0d\x5b\xa7\xbc\x9d\xe6\x18\xe1\x19\xf7\x13\x49\x80\xa5\xf5\xdb\xdd\xf3\xe3\xf3\x11\xeb\x1b\x37\xcf\x4f\xa3\x12\x3b\x2d\x24\x95\xf0\x7e\x40\xda\xc9\x65\x99\x26\x19\x47\xe1\x20\xe1\x4f\xcf\x77\x5f\x16\x67\x92\x2b\x9e\xcc\x2b\x19\x53\xfc\x65\xd9\x5c\x9f\xf5\x17\x64\xc2\x7f\x33\x6c\x24\x10\xe7\x64\x6b\x3c\xce\x1a\x1c\x1a\x5c\x12\xe3\xae\xfb\x28\x9a\x55\x25\x1d\x2f\x1f\xe0\x4a\x2c\x70\x3b\x92\x0b\x08\x12\x8b\xa9\xd5\x0c\x6f\x82\x06\x4d\xbc\xa2\x17\x7e\x45\x20\x78\xfb\x4e\xa1\x1c\x7f\x87\x21\xd3\x2e\x68\xed\x31\x19\x1a\x81\xdb\x39\x7a\x55\xad\x3d\xfa\x48\xb6\x6e\x65\x07\x08\x47\x9f\x74\xf2\x1d\x89\xc1\xa3\xe3\x90\x45\x41\xeb\x20\x0a\xa2\x51\xb1\x91\x25\x67\x98\x7c\x61\x1d\x39\x46\x9b\xb1\x75\x08\xda\x77\xb6\xe5\x69\x59\xe1\x23\xfe\xb7\xfb\x3f\xdd\xd4\xd2\x91\xc6\x38\x18\xee\xb9\x86\xe3\xa2\x1b\x86\x5a\x70\xcb\x81\xd0\x99\x0c\xab\x13\xdc\x0a\x7e\x62\x7f\xcd\x18\xd3\x08\x3f\xe2\x68\x67\x6c\x79\x99\xd6\xd7\xde\xd6\x30\x9d\x1c\x4f\x73\x61\x99\x9b\x33\x78\xe5\xaa\xb8\x03\x6b\xf2\x7f\xe2\x47\x4d\xae\xe3\xc4\x4a\xa8\x9e\xa6\xee\xd3\xec\xf9\xed\x12\xa7\x99\xeb\x4a\x64\xe3\x3e\x41\x96\x15\x8e\xbd\x29\xcf\x0f\x10\x3a\xd4\x8e\xf3\xdb\x84\x69\xdb\x2e\x71\x51\x25\x33\xa5\xec\x0f\x53\xf8\x96\xf9\x6a\xb1\x5f\xf4\x41\x7a\xcd\xbc\xc8\x47\x7e\xa4\x9a\x58\x10\xfe\xb4\xbf\xfb\xbe\x83\xf1\x33\x1a\x79\x34\xaf\x26\x97\x0a\xfc\x28\xa1\x4f\x4c\x7a\x9e\x8b\x46\xa5\xdd\x79\x83\xd8\x47\x83\x7d\x95\xa5\x67\x2c\xa7\x4a\xf3\x11\x48\x4f\xb3\x30\x50\x26\x45\xb9\x3f\x1c\xb7\x0f\x8b\x7f\x59\x31\x79\xcd\x42\xe9\xe0\x0c\xba\x64\x45\x5d\xb5\xdf\xe5\xa6\x8a\xd5\x76\xd4\x09\x0b\x49\x1e\x68\x09\x75\x77\xea\x28\x09\xb8\x91\xa2\xfe\xfd\x2a\x67\x95\xf7\x35\x8b\xa5\xc1\x43\x0d\xa4\x51\x6e\xa2\xea\x9a\xb5\x8b\x36\x99\xa4\x75\x83\xa6\xcc\x88\x60\xe0\xcb\xa5\x40\xb3\x24\x4c\x28\x4b\x99\x01\x2f\xad\x48\x73\x6b\x0e\x8d\x6f\x25\x49\x5c\x87\x6a\x43\xaa\x3a\xad\x9b\x81\x74\x78\x97\x04\xd4\x8c\xbb\x04\x16\x22\x20\xe6\xe6\x35\x2f\x4a\x20\xc5\xc7\xf1\x35\x79\x1c\x60\x6d\xba\x02\x9e\x0d\x5d\x2d\xcd\xb8\xf2\xd0\x69\x36\x1c\x90\x5c\xa4\x59\xfb\xd9\x90\x62\xdf\x74\x11\x0e\x69\x9b\xed\xe5\xe9\x0c\xf2\x2d\xeb\x71\xee\x5d\x8f\xc0\xc5\x82\xd7\x37\xb8\x4e\x3e\xa8\x90\xba\xe3\xb7\x7c\xe7\x35\x2f\x27\x37\x26\x7d\x37\x96\x7d\x5c\x71\x61\xf8\x21\x0f\xc0\xcf\xc3\x50\xbd\x66\x32\xe2\x18\x5e\xcc\xe1\x67\xdd\xbf\x6d\xa7\x3b\x8f\xf2\x30\xd8\x4c\x5b\xcd\xb9\xf8\xdf\xb4\x3b\x52\x31\xd2\x15\x58\x9f\x2f\x45\x99\x16\x58\x62\xf4\xda\xdd\xba\x72\x08\x2a\xf0\x5e\x64\xcd\x19\xc9\x14\xba\x69\xa5\xb8\x8b\x99\x28\x62\xc0\xfd\x63\xf3\x74\xf7\xfc\xc7\xd1\x39\xae\x9f\xee\x06\x1a\xa9\x9a\x81\x16\x08\xc4\x29\x79\x0d\x13\xb9\x1b\xd3\x43\xb3\x04\xcb\x40\xed\x9a\x39\xac\x96\xd1\x4c\xbb\xa1\x45\x50\x99\xfd\xbf\x7d\x87\xd3\x53\x78\x2e\xa6\x33\x6d\x16\x18\x71\xca\x93\x44\x5d\xdb\x8b\x84\x0d\x0c\xf4\x1e\xd7\x82\x5e\x40\xaf\x6d\x07\x64\x74\x4b\xab\x7b\x9e\x59\x99\x87\xe1\x02\xe3\xb0\x04\xa0\x5d\xb9\x4d\x5d\xf5\xa8\x90\x41\x3b\x4c\xa9\xb0\x93\xc3\xdd\x37\xc2\x50\x07\xe0\x90\x19\xed\x52\xda\x71\x22\xda\xa5\x0c\x3c\xa9\xb9\xe0\x28\x7f\x4f\x33\x78\x85\xf9\x6c\x98\x3d\x50\xb9\xe8\x78\x7f\xa4\x75\xde\x0e\xa4\xbf\xe3\x3c\xfa\xdc\x2f\xd6\x8e\x2b\x12\x1f\x28\x3d\x0c\xd5\x98\x22\x4c\x3b\x9e\x27\xf1\xbd\x9f\xd3\x1c\xaa\x5b\x86\x10\xed\x78\x3e\x43\x4a\xf8\x7f\x1e\x76\xc7\x81\x61\xac\x1d\x2f\x08\x31\x88\x74\xbf\x58\x1d\x9e\x77\x16\x30\xa9\x1d\x2f\xa1\xcb\x49\x9e\x65\x82\xcb\xb7\xc9\x2b\xf1\x3d\x2d\xda\x57\xf2\x9d\xcb\x37\x20\x0d\x92\xd1\x94\x77\xfc\x58\x76\x7e\x4c\x91\xff\x27\x9d\x33\x14\xb4\x13\x04\xbe\xa1\x95\xe6\x65\x3d\x4e\x05\x6b\x27\x90\x9e\xd5\x35\xa3\x1a\x97\xaa\x6b\xd1\x84\x73\xbc\x4f\x79\xbd\x43\xb1\xf0\xa9\x87\x3f\x7e\xfa\xd0\xf1\xa5\x41\x93\x3c\x40\xae\x06\x6a\x94\xb6\x43\xe4\xa1\x65\xb4\xfa\xbe\x79\x5a\xef\xd7\xc7\xf5\x9f\xab\xef\x8b\xa7\x6f\xeb\xa3\x6f\x2f\x19\x05\x90\x10\x8d\xd6\xc7\x8a\x9f\x2f\x3c\x7d\xfd\x3a\x46\xa3\xdb\x41\x23\x1c\x93\x92\x7c\xe5\x35\x58\x34\xd0\x22\x57\xad\x75\xf6\x29\x0e\x64\x04\x43\xf8\x72\x48\xc4\x4e\x8c\xf8\xe4\xaa\xe6\x5a\x5b\x80\xad\x76\x62\x2f\x1c\x44\xd5\xf0\x82\x64\x2d\x53\xea\xb9\xeb\x06\xae\xd3\x3b\xfc\xb4\x0e\x0e\x25\x97\x4d\xb7\x84\x31\xeb\x8c\x2d\xd4\xdc\xd0\x4a\x44\x84\x13\x51\xa5\xaf\x69\x7d\x28\x4c\x8d\x4c\x6f\x88\x69\x27\x51\x1a\x19\x7f\xd1\x80\xea\x18\x95\xaa\x99\xc2\x52\xed\xf0\x80\x73\x5b\xbd\x59\xbe\x1b\xe6\x84\x0a\x0b\xef\x06\x01\x33\xed\x70\xa1\x63\x2a\xf5\x21\x7e\x99\xb6\xd7\xf2\x3a\x08\xbb\x98\x7e\x22\xee\x88\x8c\x9a\xcb\xaa\xa9\x53\xba\x7d\x9f\xfd\xd7\x70\xcd\x75\xa4\x1f\x60\x40\xa3\xc9\xad\x26\xb4\x5d\xd3\x1c\xa9\x5c\xd4\x8b\xa1\x55\x15\x63\x6d\x50\xcd\xd8\x93\xda\x91\xda\x45\xac\x0f\x57\xca\xb2\x60\x34\xb7\x72\xa5\xb7\x23\x45\xf9\x81\x15\x04\xbf\x7f\x7e\x79\xba\x23\x1f\x00\xdd\xff\xc5\xdd\xdd\x6e\x72\x15\x25\x04\x86\x3c\x10\xfe\x39\x9a\xcb\x4a\xc5\x6e\xd8\xc5\xcf\xc7\xd7\x00\x2f\x44\x63\x98\x94\x9c\x4c\x5c\x7a\x8e\xcb\x4e\x3b\xc0\x55\x6c\xf8\x58\x68\xb1\xb1\xe7\x07\xe9\x21\xea\x7e\x09\x55\xaa\x80\x28\xf4\x26\x41\x87\xd1\x02\xac\x7d\x1e\x82\xa5\x50\x3e\x03\xb5\x4d\xee\x4b\xcb\x08\x89\xf3\x7e\x4f\xe5\x5b\x2a\x8b\x1b\x28\xf2\xff\x27\x35\x42\xda\x65\x0e\xa7\xe4\x7d\x7a\xbe\x74\x7b\xbd\xcb\x3c\x32\x93\x8d\xf7\x67\x2a\xc5\xbb\x56\xe1\x38\x49\x8f\x35\x59\xd7\x27\xbc\xbb\xdf\x26\x67\x96\xcc\x08\xe8\xa8\x27\xf8\x30\x12\x0d\x8b\x5c\xed\x78\xfe\x56\xe8\xa1\x50\xa7\x7d\x47\xc3\xe7\x77\x99\x22\xf8\xd0\xb2\x78\x7b\xbb\x6e\x8b\x62\xc9\x4f\x15\x6e\xfc\xe4\x36\x72\x91\x01\x59\x54\xa6\xbf\xeb\xb8\xae\xc1\x93\xfd\x01\xe9\x48\xe0\x6f\xf4\x62\x5d\xd7\x4c\x10\xc9\xf3\x97\x6a\xca\x1e\x32\xee\xea\x39\x6e\xac\x3b\xea\x5f\x92\xc2\x9c\x9e\xce\xf3\x63\x5c\x2d\x88\xfe\xa1\xe3\xd9\x59\x20\x39\x36\xaa\x62\xe5\x06\x09\x11\xcf\x8f\x72\xd7\xf7\x42\x41\xbc\xc1\xeb\x9f\x69\x55\x2f\xaf\x23\x61\x08\xdb\x29\x22\xc1\x80\x15\x2f\x01\xca\x3f\x6d\x61\xc7\x2f\x59\xa3\x6e\xe0\xb9\x5d\x21\x6d\x93\xab\x8e\x6e\xda\x36\x83\x44\xac\xe5\xdd\xfe\xd0\x01\x44\x66\x86\xad\x1b\x00\xb8\x86\x85\x17\xa3\xdb\x9b\x09\x17\xbc\xed\xa6\xa9\x36\xfc\x9c\xe6\x5b\x28\x0f\x3f\xed\x65\x42\xc9\x91\x01\x1c\xce\x69\xbd\x2e\xcb\x49\x49\xb0\x76\x63\x0e\x7a\x28\x6c\x4e\xa2\x03\xbc\x86\x6d\x51\x64\xd3\xbe\x2a\xc4\x58\xdc\x1d\xfc\x74\x27\xe3\x2e\xf1\x83\xd8\xac\xcb\xc7\x6f\x3c\xbd\xcd\xdd\x76\xfd\x24\x2a\x08\xd9\x75\xed\xa9\x38\xa7\xb9\x4d\xd5\xcc\x8f\x87\x24\x60\x18\xa5\x34\xc2\x73\xa2\xc2\x77\x35\xc9\xf1\xd9\xbe\x22\xc1\xc5\x02\x2c\xe8\xd5\x46\xa0\x47\x0c\x9b\xd3\x0b\xa8\xae\xac\xf2\x88\x5b\xff\xb1\xee\xf7\x7d\x97\xbb\xcc\x31\xa6\xc3\xfe\x5a\xd5\x70\x7e\x2e\xf9\x37\x5e\xdd\x22\xe2\xdb\xae\xa4\x12\xf9\x70\xf7\x6d\xb8\x12\xba\xdc\x4d\x14\xb7\xa2\x55\x39\x3e\xf1\xa4\x4a\x48\xbb\x3c\x24\x6a\x9f\xb7\x4a\x2e\x79\x2d\x4f\x7b\xc8\xb2\xe5\xf5\xb9\x9d\x7b\x18\x0e\x9d\xbc\xce\x39\x68\xd2\xe0\x97\xd1\x08\x12\x0e\x8d\xb4\xda\xe4\x17\xe7\x87\xab\x68\x8d\xba\xae\x38\xbd\xbd\x85\x49\x78\x55\xbb\x92\x05\x58\x66\xf7\x22\xa0\x3c\x43\x5e\xc9\xd3\x96\xdc\xa3\xdb\x38\xb7\x76\x65\xa4\xe5\xc0\xde\xed\x24\x3b\x7f\x25\xba\x33\x48\xce\x4c\x4e\xaa\x04\x28\x53\xca\xb0\x4c\x15\xd1\xe5\x8d\xec\x55\xd3\x51\x79\x1e\xd2\x70\xa5\xd5\xb2\x04\xfe\x96\xe6\xaf\xab\x89\x10\x85\x76\x95\x4f\x4e\xf3\xba\x3e\xfd\x2d\xaf\x55\xf4\x8b\xbc\x56\xda\x6d\x07\x14\xb2\x83\xad\x9f\x8f\x7b\x14\xa0\x6a\xca\x6e\x30\x29\x2d\x5c\xd2\xf1\xcb\x37\xcb\xe6\x6a\x7f\x86\x40\xb2\x01\xea\xa8\x35\x6b\xb6\x50\xbe\xe4\xa9\x2c\x26\x12\xc6\xda\xd5\x8c\xfb\xdd\x60\x92\x88\xbc\x40\xb0\xd6\xc0\xd2\xb9\xbd\x29\x2d\x38\x92\xb8\xe3\xc7\x5d\xbc\xf3\x2c\x6d\x97\xcb\x21\xa2\x4c\x7b\x8c\x11\xa2\x0c\x8b\x9e\x6f\xb5\xe5\xb5\xc7\x82\x90\x26\x22\xba\xd7\x65\x71\x29\x2a\x9e\x11\x90\x6e\xfc\xed\x3d\x06\x41\x42\x89\x09\x44\xce\xe2\xfa\x96\x8a\xa6\x2e\xca\xcd\xc4\xb1\xf2\x9c\x20\x0c\x2d\xe0\x6f\x73\xc3\x66\x69\x3b\x85\x3e\x9a\x0b\x36\xa6\x65\x7f\x16\xe4\x7b\x23\xa0\x11\xeb\xfa\xfb\xfc\x8d\xf6\x5c\x26\x4c\xb9\x56\x3b\x44\x97\x93\x68\x9f\xf6\xdc\x28\xc0\x5a\xb4\xe2\xa3\x2b\xc0\xd0\x9e\xab\x24\x5a\x5e\x76\x39\xb4\xc1\xdc\xf1\xfd\x78\x4e\x80\x08\x08\x6b\x16\x76\x56\x24\xcf\xd6\x3f\x2f\x90\x77\xd8\x77\xed\x79\x3e\x23\x2b\x0c\x63\x5f\x69\xfe\x6a\x19\xa4\x6d\x87\xd0\x73\xb0\xaa\x1f\xcc\xe6\x39\xa8\x18\xd5\x5e\x1c\xfa\x38\x8c\x6b\x04\xae\x10\x1b\xef\xf8\x56\x12\xa6\x90\x85\x1d\x72\x59\x28\xe8\xa9\x90\xdd\xc9\xc6\x47\x33\xca\x67\xf6\xb0\x80\xf8\x67\xb1\x1e\xc3\xc2\xb9\x66\x28\x32\xb5\xc7\x7d\x8d\xe5\x8b\x67\xfe\x73\xdf\x08\x95\x12\xd8\xa7\xbb\x7d\x1e\x7a\x01\xef\x62\xbe\x77\xf0\x99\xd7\xe3\xf1\x90\x8a\x02\x51\xe5\x1a\x13\x16\x0b\xa5\x40\xad\xdf\x7b\x27\xc0\xe3\x9c\xe4\x97\xee\x0f\x7f\xce\x2c\x29\x9e\x88\x02\x6d\x4f\xd1\xae\xd4\xa4\x61\x6b\xfc\x1f\x2a\x1c\x46\xf2\xa6\x5c\xbd\xf4\x83\x44\x40\x18\x1a\xed\x0a\xd5\xc8\x1a\xd7\xed\xc9\x3e\xef\x09\x48\x10\xc5\xb8\xde\xad\xee\xff\xb0\x07\x4a\x97\xe0\x45\x5d\x79\x12\x61\xf1\x06\x39\xe4\x5f\x2d\x4c\xd5\x9e\xf4\xb8\x67\x76\xe7\xfa\x61\x10\x33\xd7\x9e\x0c\x38\x56\xf3\x56\x38\x17\x37\xab\xe7\x59\xc9\x6e\xed\xc9\x38\xc4\x95\x23\x6f\xce\x47\x79\xe2\x59\x06\xf9\x6b\x3f\xca\xa4\xf4\x4c\xf9\x5a\xfd\x52\xa9\x5b\xfb\xcb\x03\xc6\x1d\xd2\xe2\x24\x05\x10\x43\x27\x38\xee\xa4\x83\x24\x22\xca\x41\xae\xb6\x8d\xc8\x52\xb9\x03\x59\x94\x6a\x96\x96\x49\x7b\x5a\x04\x09\xe2\xa0\xf6\x5b\xcb\x96\xbb\x03\x94\x89\x98\xcf\x6d\x6b\x9f\x05\xcc\x93\x43\xee\xfc\x76\x6b\xb3\x0f\xe1\x33\xce\x62\xe3\x78\xdc\x95\x7c\x2a\x84\x39\x39\x95\x13\x85\x88\x83\x96\x69\x89\x5f\x27\xcd\x5f\xe9\xcb\xdc\x97\xc5\x79\x10\x41\xf3\x9d\x58\x0b\xdd\x49\x7f\xe2\x0e\xe8\xfc\x36\xb0\x9c\x7c\x47\x11\x15\x55\x2a\x8b\xa3\xfa\x3b\x32\x4a\xed\xbb\x21\xa9\x6a\x19\xc2\x26\xbc\x28\x05\x6c\x11\x66\xef\xda\xeb\x5a\x86\x32\x53\x15\x7d\x4a\x33\x65\xe7\xd7\x6f\xfd\x46\xdd\x25\x7f\xb4\xef\x1a\x2d\x16\x43\x59\xb3\xd8\xfd\x49\xeb\xf3\x40\x76\x4e\xfb\x2e\x90\x0e\x28\xa5\x2f\xcc\x8f\x9e\x08\x93\xa4\x2b\xae\x2a\x52\x09\x2b\x2c\xfb\xcf\x6e\x3f\xc4\xe4\x61\x3c\x11\xe3\xb8\xe4\xa2\x2a\xb2\xa6\x5e\x2d\xef\xec\x39\x7d\x5f\xe9\x9e\xe6\x9d\x86\xcb\xf2\x6a\x80\x89\xf3\x27\x0b\x5d\x66\x89\x23\x9e\xe0\x67\x4d\xb4\xf6\x87\xc3\x23\xbe\xa2\x8d\x8a\x7e\x1b\x40\x23\xb4\x1f\x1a\x8e\x4a\xd1\x5c\x6d\x89\xdd\x2d\x82\x42\xfb\x11\x4f\x30\xd5\x7e\x97\xf2\xa1\xbd\xe4\xc7\x2e\x57\x54\x67\x8f\x25\xbf\xad\x85\x3d\xda\xce\xfc\xd8\x0b\xad\x16\xd4\x43\x51\xd7\x50\x5e\x07\x35\x71\x9f\x3c\x41\x1c\x51\x59\xff\x7d\x2a\x90\x60\x10\x9f\xdd\x30\x7f\x7c\xf2\x06\x63\xee\x0a\x66\x53\x6b\x7d\xfd\xe5\x6c\x80\xc9\x4f\x62\xa2\xa5\x3e\xd7\xef\xf6\x36\x13\xa5\x11\x1c\x68\xe2\x1e\x26\x2a\xf3\x48\x28\x4d\x1b\x1a\x32\x56\x8d\xcf\x5d\xa2\xee\x3b\xf1\xea\xa9\x63\xd5\xd5\x3e\xe7\x1a\x4b\xc0\x57\xcf\x9b\xa7\x23\xd1\x67\x1d\x37\xab\xe7\xe3\x61\xb3\xde\x1d\xbb\x01\xc9\x95\x48\xc6\x3c\x86\x73\x78\x19\xed\x0b\x37\xb1\x72\x31\x3b\x2e\x44\x5a\x3f\x22\xc2\x6f\x88\xe1\xd2\xbe\xf0\x3c\x84\x4d\x18\x61\x53\xf4\x11\x97\x7c\x9a\xb4\xf0\x85\xd4\x01\x89\xc7\x92\x58\x5f\x5a\xe4\x03\xc6\x77\xed\x0b\xe5\xd8\xea\x17\xb4\x7a\xd0\x53\xfd\x84\x55\x5b\xfb\x02\xb4\x91\xba\xe6\xa5\x3c\x6d\xf2\x87\x41\x7a\xd8\x74\x91\xae\x63\x61\xae\x58\x1e\x33\x0e\x9a\xfb\x32\x89\x31\x7a\x42\xa3\x7a\xd7\x7e\xa8\x46\xce\x49\x71\x7d\xbd\x9e\xfb\x52\x08\x4c\xff\x49\x64\xe1\xb2\xb6\xd0\x6f\x33\x15\x1b\xda\x57\x0e\xb1\x68\xb5\xf3\x7a\x66\x57\xf3\x95\xe6\x58\xb8\xb1\xdd\xad\xe9\xab\xa1\xc8\xe0\x71\xf1\xf8\xfc\x62\xf5\x72\xb4\x0f\x51\x82\xae\xd7\x8f\xf5\xfe\xb0\xbe\x1b\x09\x11\x6a\x1f\x84\xc2\xa8\xa9\x68\xae\x7f\x98\x72\xb7\xf1\x25\x40\xba\x24\xb9\x86\x34\xbe\xe6\x47\xcd\x18\xb9\x6c\x0d\x2f\xd5\x8f\x34\xcb\x86\x0a\x4a\xe3\xc7\xd5\xcc\xc1\xa0\x5a\x96\xca\xd6\xb8\xd9\x4c\xb3\x20\xbe\x0e\x6c\xd2\x5c\x37\xbd\xf8\x88\xf6\xb5\xf4\x30\x59\xbc\x87\x7a\xb3\xdd\xfd\x36\xab\x02\xf2\x5f\xb7\xa5\xd0\x37\x86\xbf\xaf\xa5\xc6\x72\xb9\x1c\x3e\xee\x01\xb6\x9d\xec\xcb\xa6\xda\xc3\xc4\x0d\x0b\x58\x10\x40\x87\x56\xff\xd1\xdd\x4c\xc0\x42\xaa\x02\xb9\xf0\x2b\xf2\x13\x8d\xae\x10\xb0\x30\x26\x52\x47\x2a\x2b\x38\x9c\x52\xe4\x6f\xe9\x0e\xe6\xb1\xec\x89\xf2\xdb\xe5\xa6\xe4\x69\x35\x07\xd8\x6d\xfb\x6a\xee\x77\x49\xd6\xe2\xa3\xe7\xa0\x18\x74\x72\x94\x1f\x1a\xbf\x92\xb6\x8f\x35\x2f\x91\x02\x76\xfc\x30\x2e\x03\xdd\x49\xc5\x6c\xcd\x7e\x33\xdc\x12\x02\x57\x7b\x18\xf2\x59\xa5\x79\x21\xd3\xb9\x62\xc7\xe1\x70\x0c\xbc\x90\xb4\xf9\x8f\x14\x7b\x1b\x33\xa2\xe8\xc0\x8f\x3d\x6e\x66\x24\x62\x69\xff\x48\x55\x3d\xc6\xdf\xda\x28\x65\xe0\x4b\x2a\x70\x1c\x70\x64\xdd\x1b\x16\xc3\xaf\x02\x3c\x41\x20\x48\x5d\x9d\x32\xd8\xa3\x9b\x0b\x74\x80\x36\xfb\xcb\xd3\xc3\xf3\xea\xf7\xe3\x61\xfd\x74\xdc\xae\x77\xab\xf5\xd3\xa1\xfd\xbb\x79\xb6\xdb\x53\x10\x06\x12\x0b\xb3\xca\x76\x1a\xb7\xeb\xca\xea\xc7\xbe\xa7\x6a\x32\x9d\x22\x07\x90\x51\xe8\x52\x54\xf5\xbe\xd0\x08\xa5\xeb\xda\x12\x5a\x8a\xbf\x15\x85\xd2\x29\x64\x0a\x91\xec\x35\x4f\xb3\x2f\xdf\x5e\xc4\x43\xc0\x44\xed\x2b\xb1\xf7\x98\x5a\x9a\xbb\x9c\x8f\x1f\x24\x12\x91\xdf\xa9\x04\xd1\xa6\x3f\x32\x9e\x82\xd8\x8f\x48\xaf\x27\x6f\xd7\x22\xc2\xfd\xa7\xf9\xeb\xb7\x62\x52\xc1\xa3\x83\x58\xb9\x58\x4a\xf3\x47\x7a\x01\x35\x81\x91\x4e\xde\x6c\xc2\x14\x5a\x50\xbf\xe7\xc5\xc7\xf7\xe2\x83\xf8\xbf\x6d\x9b\x03\x31\x49\x4e\xdd\x17\x25\x52\x15\xdb\x06\x29\xb0\xd8\x0b\x33\xbf\x2f\xa3\x64\x25\x81\xce\x4c\x3f\xee\xf8\xc8\x9d\x49\xc9\xe3\x3f\xac\x58\x93\x0e\x84\x41\xf0\xa3\xc9\x58\x9d\x4c\x76\x64\x2f\x8b\x12\xf0\x93\x8c\xf2\x89\x28\x27\x6c\x98\x23\xfc\x19\x85\x0b\x1d\x48\x1d\xb9\x5e\x9f\xa9\xe8\x73\xb2\x81\xf2\x48\x07\xbb\x6a\x44\xeb\x3c\x4f\xf3\x55\xe3\xf9\xac\x3c\x2a\xcc\x36\x64\xee\x6b\x53\x92\xde\x7d\x00\xa5\x1c\x8b\x9f\x7a\x46\xc5\x87\xc9\x7a\xa0\x54\x12\x93\xdd\xa8\xef\xa1\x75\x89\xec\x5d\x80\x17\x20\x76\xe8\xc4\xab\xe5\xcd\xda\xa3\x59\xc8\x28\x11\x50\x97\x29\xbc\xc3\xba\x9f\x3c\xb6\x47\xe0\x91\x61\x75\x02\xf9\x76\x2b\xa5\x3c\x5b\xea\x3f\x0f\x24\xff\x24\x11\x13\x32\x2f\x0a\xc9\xf1\x95\x45\x2e\xd3\xec\x86\xc4\xe8\xbf\xff\xe7\xbf\x46\xb1\xa3\x78\x44\x3f\x3b\x71\xfb\x43\x47\x07\xe8\x07\xd1\x9c\x26\x76\xa5\xbf\x8b\xe2\x98\x43\xbd\x28\x06\x93\x35\x35\xfb\xac\xdd\x8f\x27\xfd\x54\x82\x41\xca\xd6\xb1\xfb\xd7\xb2\xb0\x52\x88\x3a\xf4\x80\x96\x18\x2a\xa4\x5b\x64\x99\xa1\x8f\xb4\x1b\x7a\xe8\xbb\xd2\x2e\x57\x5d\xfd\xd2\xd8\xf3\xed\x5e\x4b\xa0\x08\x2d\xf6\x0a\xf5\x43\x23\xdf\x96\x05\x66\xd4\xd1\x86\x30\x3d\x42\x2d\x4d\x75\x80\x09\x69\xb5\xdb\x84\x49\x9c\x8f\x47\x47\x18\x39\xb1\x8d\xc2\xec\xe0\xaf\x26\x2d\xa1\x63\x1d\x1b\x3f\x5a\xe4\x29\x24\xfd\xda\x6f\xf6\x8b\x63\x3d\xb0\x60\xc3\x88\x83\x67\xc8\xe8\xf6\x75\xa3\xf5\xad\x35\x13\x46\x2a\xc6\x10\xf2\x39\xcd\x3b\xc9\x08\x1d\xc6\x3c\xc0\x7a\x90\x77\x0c\xe2\x1c\x2f\xa8\x40\xf4\x65\x34\xcd\x1e\x28\xa9\x9a\x55\xf2\x9e\xce\xcb\x36\x69\x85\x2e\xc4\xa5\xb8\x98\xba\x92\x76\x68\x6e\x8b\xe9\x97\xe2\x8c\x21\xaf\x6d\xc5\x35\x74\x45\x87\xd3\x3e\x21\x43\x06\x7d\x5d\x34\x65\x7d\x7a\x2c\xf2\xfa\xd4\x41\x4a\xdb\x56\xe1\x19\x32\x55\x80\xf3\x67\xe1\x82\x90\x0b\x0a\xe0\x9d\x79\x55\xcd\xab\x1b\x76\x03\x94\x0b\xe5\xf9\xe4\xc0\x7d\x27\xa5\xee\xee\x5a\x4a\xa2\xc4\xd4\x3f\xb8\x7c\xbb\x14\x26\x6f\xdb\x35\xea\xc8\x12\x41\xbd\xe4\xc8\x1d\x07\x0a\x79\x7f\x47\xe5\x53\x5f\x32\xed\xb7\x27\x01\x45\x73\x0d\x1d\xdf\x45\x89\x60\xdd\xd1\x8a\x17\x0a\x07\x10\xd8\xc8\x73\x9e\x5d\xff\x03\xab\x22\x27\xb1\x82\xa1\x69\x1f\x4a\xc7\x93\x26\xcc\xff\x98\xe6\x66\x37\xb0\xb7\x2a\x0d\x21\x8f\x09\x81\x57\x15\x9c\x45\x36\x46\xcd\x87\xbe\x79\x33\xed\x3f\xec\x61\x3a\xc1\x95\x74\xf3\xe7\x61\x24\x30\xad\x43\xe5\x71\x6d\x20\x3b\x28\x8a\x47\x02\xf3\x93\xd1\xa7\xfc\xd8\xb7\xb7\xc4\x7f\x0e\xe8\x8d\x75\xa8\x38\x21\x2b\x70\x40\xb7\x4e\x21\x06\x9e\xc6\x87\x83\xe3\x61\x3e\xb8\x1d\x21\xc8\x96\x35\xde\x57\x6d\xaf\x88\x07\x26\x19\x8e\x53\xee\xae\x5f\xf5\x67\x1d\xff\x10\x80\x30\x90\x19\x22\xf3\x86\x0b\xe0\x7c\xce\xba\x3b\x2c\x44\x88\x00\x57\xea\x97\x98\x0a\x3f\x59\xd1\x34\x73\x3d\x92\x23\x7e\x28\xb8\x5a\x15\xe5\x2f\x62\x93\x22\xc6\x58\x64\x6c\x42\xb4\x4b\xe7\x9f\x2e\x62\xa1\x46\xe2\xcb\x7f\x1c\x4a\xb0\x39\x9c\x88\xc5\xa4\x6c\x53\xb5\x1f\x22\xcd\xbf\x14\x41\xd6\x11\xe3\xc4\xbd\x6d\x2d\x8b\x6d\x51\x91\x36\x46\xbe\x84\x13\xcf\xf4\xb3\xde\x81\x44\x72\x94\xe9\xd0\x9e\xab\x52\xd2\x11\xd3\x1e\xfa\x4c\xff\x68\xce\x3c\xff\x5f\x6b\x76\x46\x8e\xc7\x85\x49\x6f\x61\xbe\xc4\x68\x0b\x1c\x2d\x63\xd8\xb1\xba\x41\x5e\x45\xbe\x1f\xa9\x5e\x57\xc1\x90\x04\x8c\xaf\xe6\x07\xb1\x34\x34\x57\x3b\x68\xdd\xf9\xb1\x4f\x35\xef\x1e\x44\x7e\xa0\xdc\xb8\x07\x3b\x61\xfa\xe2\xb7\x31\x5c\x58\x47\x81\x1b\x38\x04\xfa\x7d\xfa\xbe\x38\x1c\x16\x4f\xdb\xdd\xf3\x9f\xff\x72\xf6\x87\xbd\x75\xb3\xa2\x20\x88\x70\x59\x17\xcd\x75\x53\xc3\xd9\xeb\x7f\xe7\x09\x05\x11\xc7\xb0\x85\x28\xd0\x9e\xb6\xc0\x12\x72\x1c\xee\x9a\xf2\x76\x1b\x88\x42\x47\x63\x3d\xfc\x00\x40\x60\x63\x9f\xbf\xb4\x95\x46\xa1\xf1\x94\x77\xa6\x50\x70\xb3\x9d\xf5\x36\xa3\x28\xe0\xc4\xf0\xf1\x96\x5e\x36\x79\x5a\x2f\x41\xf2\xa6\x82\xcd\xe2\xfc\x54\xd4\xcf\xaf\xff\xb7\x20\x5b\x1a\x13\xf1\xe4\x66\xa2\x30\x44\x43\x6c\xc9\xab\x54\x6e\x6a\x23\xf9\x69\x1b\x39\x29\x7a\x3d\x2b\xa4\x78\x6d\x1f\xb2\xea\xda\x80\x66\xc1\x37\xe4\x3e\xec\x4a\x1f\xe2\x4f\x3e\x6b\x04\xc2\x19\xd2\x85\x7c\x2f\xce\xf0\x23\xe5\xc4\x49\x30\xbb\x20\x47\xb1\x74\x88\xe2\x96\x5f\x37\x93\xd4\x49\x94\xa8\x18\x57\x3d\x13\x61\xb3\x44\x44\x43\x09\x31\xb3\x1c\xe3\xde\x1c\xa3\xe1\x21\x9a\xd7\xde\xf8\x8b\x44\x3b\xbd\xfe\xcf\xff\xef\xff\x7c\x94\x69\x0d\x55\x9f\x32\x9a\xb5\x41\x23\x01\x3e\xa6\x54\x8e\x14\x1d\x7f\xba\xff\x22\xcf\x19\x09\x1d\x31\x02\xd9\xd7\xf2\x34\x54\xde\xd4\x91\x0c\x34\x62\x68\xd0\x66\x24\x8c\x5b\x2a\xbb\x46\x19\xe1\x96\x0c\xf5\xe9\x25\x47\x11\xd6\xae\x05\xa4\x1b\x77\x24\xa0\xcb\x74\x2c\x1e\xa1\x23\x25\x14\x46\x7a\x2e\xe5\x08\x11\x18\x29\x0d\x06\x88\x80\x56\xd7\x28\x40\x62\xba\x80\x06\x7c\x3f\x7f\x40\x9a\xe6\x1d\xd5\xb7\x8e\x99\xe3\x60\x5d\xd6\xf7\xe7\x3f\x1e\xba\xdf\xe2\x04\xcc\x12\x6f\x15\xfd\x6f\x35\x62\x75\xec\x38\x0a\x49\x13\x72\x43\x92\x65\x8a\x55\x36\xb9\x51\x2b\x43\x46\x22\x7b\x4e\x27\x74\x99\x49\x56\x91\x42\x48\x85\x82\xce\x84\xd8\x9f\x9e\x38\x82\xc0\xef\xde\x5e\x09\x1b\xac\x7d\xab\xad\x62\xab\x8e\x5d\x47\xe2\xf3\x2e\x37\x77\xbd\x08\xad\x8e\x3d\x8f\xa3\x9f\x4a\xab\xd5\x37\x5e\x8f\xeb\x74\x74\xec\xf9\x3e\xf2\x97\xf2\x2c\x1b\x68\x52\x15\xe5\x23\xcf\xaf\x66\x50\x55\xb7\xe5\x0b\x93\x32\x06\x1d\xfb\x31\x33\x12\xcc\xc4\x7a\xbe\x99\x16\x1c\xe9\x38\x70\x34\xf3\x4c\x2e\xe2\x69\x84\xd3\xec\xfb\x44\x8e\x07\x66\xe5\xdc\x16\x13\xbf\x24\x8e\x1d\x17\x8b\xcf\x69\x91\xde\xe4\x03\xfc\x6e\xdb\x26\x87\x5b\xe3\x8c\x96\xa1\x8e\x63\x9f\x61\x08\xe8\xf7\x34\xcb\xf8\xe9\x3a\x8c\xc5\xc6\x71\x10\xa0\x87\x9a\xff\xc4\xb8\x67\xf7\x73\xac\x11\xb4\xb7\x78\xee\x7e\xd1\x81\x45\x9f\x3f\x15\xf5\xaa\xc8\xab\x9a\x77\x6b\x69\x1c\x6b\xaa\x32\xb1\x99\xb0\xe5\x75\x3b\x23\x37\x3d\xfe\xb6\x22\x8a\xcc\x66\x47\x49\x2c\x93\xbc\xea\x9e\x4d\x08\xc7\x67\xdd\x14\xe8\xb0\x72\xa3\x79\x10\xab\x30\x04\x23\x93\xbf\x35\xcc\xe6\xd3\x1e\xd2\xc3\x99\xb2\xc3\x84\xdf\xac\x79\xd2\x7d\x4e\x65\x18\x96\xd1\xa4\x9c\x43\x66\xc5\xc0\x3c\xc4\xe2\xe1\xf2\xd9\x17\xba\xd8\xd6\xc8\xa3\x68\x5e\x5a\xff\x67\xf4\x9a\x21\x71\x91\xc7\xf8\xd8\xba\x49\xed\xf6\x64\x1b\xb4\xef\x21\x3d\x43\x3b\x3a\xf6\x87\x7f\xce\x7e\x3f\xed\x03\xda\x3f\x45\x99\xbe\x12\xe2\x62\x42\x29\xa2\x63\x1d\x25\xf8\x2e\x51\xef\x34\x83\x41\x21\xb1\x8e\x75\xcc\x63\xcb\x09\x78\x58\x3d\x14\xf2\x2d\xcd\xb1\xdc\x62\xfc\x68\x09\x63\x21\x3a\x8b\x05\xa2\x98\x47\xcb\x4a\xc2\x64\x82\x5b\x58\x2f\x7b\x4a\x85\x28\x5d\xbb\x8e\x70\x7f\x3e\x67\xf6\x91\x13\x47\xbb\xb8\xdc\xee\x5f\x5f\xfb\xa2\x30\x9d\xb8\xcc\x47\x5e\xb4\x4b\xf1\x81\x62\x3d\xfd\x5c\x4e\x5c\x37\x32\x90\x6a\x7e\xde\x43\xb7\x70\x27\xae\xab\x3d\xde\x99\xd0\x9f\xe8\x83\xe9\xc4\x93\x09\xb7\x72\xe8\x04\xe6\xb3\x27\x08\x22\x81\xcb\xf3\x51\x16\x4d\xa6\xfe\x18\x28\xbe\x8f\x8d\xe7\xf1\xaa\x9e\x04\xed\xe4\x40\x8b\xa2\xcc\xef\x8b\xf2\x1b\xaf\xe1\x63\xb0\x79\x0d\xac\x9a\x49\xe6\x23\x09\xc3\x04\x98\xd5\xe6\xef\x29\x8a\x3a\xb5\x36\x3b\x38\x93\x30\x11\xc8\x5a\xb1\xb8\xfb\xb1\xd9\x3f\xef\x8e\x87\x3f\xec\x84\x4b\x42\xee\xe1\xcc\x5c\xa6\xf5\x1b\x34\xdd\xfb\x8b\x12\xa2\x7c\xc7\x84\x11\x59\x89\x38\x1e\xfe\x20\x55\x4c\xe2\x83\xea\x63\x95\x49\x2c\x38\x12\x87\x9e\x8f\xc5\xe5\xc9\x92\x66\xea\x24\x06\xed\x79\x9d\x52\x74\xd1\x94\x96\x9c\x72\xce\x02\x4f\x12\x26\xb1\xb7\x40\x4d\x98\xe7\x8f\x91\x22\x8c\x4e\x12\xcf\x43\xe2\xe4\x3d\xd4\xdb\x8f\xc9\x4e\x95\x24\xb1\xc6\x38\x00\xc1\xa3\x3b\xc5\x9e\x79\x56\x46\x9d\x24\x3a\xc6\x9c\xdf\xa1\xe4\x6a\x04\x4a\x4c\xb8\xaf\x03\x52\x89\x22\x33\x0a\xab\x28\xa6\x5b\x51\xc2\x05\x47\x7c\x72\x75\xe6\x59\xf6\x92\xe6\xf5\x7d\x93\xcb\xb1\xa5\x62\x7a\x0a\x16\xa1\x41\xb3\xff\xe0\x97\x76\xcf\x3e\x4f\x91\xe3\x89\x70\x13\x74\x83\xee\x17\x4f\xcb\xc5\xde\x62\xdb\x13\xe1\x09\xde\x2e\x8e\xff\xbe\x4c\xca\x44\xe7\xed\xbf\x44\x04\x44\xbf\xb1\x78\xf8\x6e\xad\xd2\x44\x79\x44\x1f\xc1\x69\xaf\x59\x36\xd7\xa1\x93\x96\x80\xe7\x81\xc1\x64\x19\x86\xda\x5d\xd1\x19\x07\x89\xf6\x1c\xaf\x3d\x61\xd1\xd4\xfe\x5d\x91\xf7\xbf\x27\x2e\x5a\xb4\x7b\xc9\x67\x04\x77\xed\x2a\xc7\x99\xe4\x14\x2b\xf9\xe0\x97\x2d\x31\x80\x8e\x1f\x9c\x3b\x9e\x8f\x36\xf3\x43\x3b\xbc\xd4\x72\x58\x6e\xf6\xb5\xb5\xf9\x05\x24\x7d\xf4\x99\xb8\x13\xc4\xa8\xb8\xad\x78\xcd\x05\xd6\x38\x0c\x93\x3d\xdc\x09\x04\x26\x9f\x76\xeb\xfd\x7a\xf7\x63\x7d\x77\x7c\x3e\x7c\x5f\xef\xf6\xc7\xfd\xe6\xce\x7e\x06\xee\xba\x1a\x4c\xea\xa4\x9d\xca\xcf\x37\x21\x69\xee\xfa\x60\x88\xfa\x72\x85\x69\xae\xaf\x3f\x14\xf7\x62\x8d\xb0\xd4\xa7\xc5\xd3\x66\x3c\xac\xb8\x1f\x24\x8e\xec\xb0\x12\x0f\xc5\x6b\x2a\x7f\x40\x79\xbb\x0a\xf1\xc0\x0f\x6c\xaa\xce\xca\x8d\xec\x0a\x31\xdd\xd4\x79\xc0\x5d\x84\x27\xda\xea\x87\x55\xa1\xb5\x2d\xcc\xd4\x3c\x14\x12\x73\x32\x0f\xc5\xeb\x2b\x28\x4c\x4e\x6f\x56\xcf\x9f\x7e\x82\x39\x42\x5a\xac\x62\xe8\xd7\x01\x1e\xb9\x2e\x96\xa8\x61\x1c\x85\xec\xb3\xfb\x2c\x7d\x3d\xd5\x93\x04\xc1\xe4\x95\x44\x31\xd5\x71\x54\xfc\x3d\xed\xfc\x04\x1e\x0b\x40\xcf\xff\xc4\xe5\xdb\x5a\x35\x92\x4f\x89\x8e\x34\x4f\x3c\x15\x1a\x0d\x44\x7e\x9d\x2a\x4e\xd9\x3e\xc2\xf7\x8d\x48\xae\x69\x39\x14\x7f\xd8\x1d\x66\xea\x03\x72\xee\x91\x94\x3a\x32\x1b\x3c\xf6\x90\xb0\xae\x83\x12\x3e\x42\x14\x24\xcf\xd5\xf5\x81\xe7\x28\xed\x34\xb9\x24\x44\x4a\x12\xa3\x37\xe9\xfa\x76\xb2\x54\xdd\xb3\x01\xd7\x48\x00\x71\x38\x95\xc5\xc7\x6d\xe9\xb6\xe6\xda\x0b\x71\x6c\xca\xac\xa8\x60\xa5\x2e\x7f\x33\xa8\x74\xe4\xa1\x5f\x9a\xf1\xaa\xbe\x11\xee\xd3\x5c\x73\x4a\xbf\x51\xe0\xf2\x33\xae\x12\xdb\x59\x78\x98\x79\xf8\xe7\xcb\xe2\xa9\x0b\x2a\x72\x2d\x35\x22\xd3\xd3\xea\x31\xcd\x07\xe6\x8d\x6d\x06\x87\xe9\x9e\x68\x69\x92\x46\xa7\x4e\x82\x39\x12\x43\xe6\xcb\x95\x29\x6b\xd6\x82\x79\x64\x5a\x5f\x9a\x4f\xc2\x15\x82\x85\x24\x5c\x82\x79\xe1\xcf\x42\x1b\x5f\x12\xdf\x6a\xc1\xb4\x40\x47\x67\xf1\xf4\x6d\xfd\x30\x96\x92\xd3\xc2\x49\x1c\x0c\xd9\xd8\x68\xe5\x27\x6a\x67\xb6\x37\xa7\xcd\x74\x28\xec\x38\xc4\xfe\xcf\x6f\xf3\xc2\x91\x0c\x77\x2f\x24\x99\xf8\x7d\x42\x3b\xa2\x85\x1b\x24\x58\x0b\x86\x52\x1a\x24\x98\x35\x04\x12\x8f\xdf\x88\x1b\x87\xa1\xb2\x29\xbf\x7b\x2e\x7b\xdf\x5a\xb8\x49\x62\x44\xe5\x72\xf5\x9d\x57\xa7\xd1\x52\x25\x3c\x46\xf1\xeb\x57\xa8\x69\x72\xee\x2f\x5c\x42\x75\x4a\x2f\x8f\x85\x82\x6c\x79\x9d\xa2\xef\x84\x17\x90\x60\xcf\xf2\x69\x79\x7c\xdc\x3c\x91\x1c\xdf\x66\x69\x2f\xe7\x85\x02\xd5\xda\xdf\x5b\xa3\xdf\x00\x13\x6d\x9b\xef\x40\x24\xfb\xdd\x45\xf2\xaa\x1e\x23\x31\x27\x6f\xc8\xe7\x8e\x0b\x5d\x02\xb5\x63\x3b\xc4\x18\xc0\xf8\xf9\x7d\x0e\x68\xaa\xfd\xf1\xfd\xf9\xb1\xbb\x9a\x70\x11\xfa\xa5\x80\xab\x2c\xcd\xe1\x58\x0d\xad\x3e\x11\x24\x94\xe0\x5e\xd7\xa7\x1d\xe4\x9d\x16\x99\x16\x01\x4f\x90\x60\x11\x37\xc8\x7d\xdd\x94\xf0\x57\xd7\xa4\x7d\x44\x54\xdd\x82\xfc\xbf\x8c\xc4\x88\x30\x26\x8d\xd1\xa5\xad\x89\xd6\x22\x4c\x24\x7a\xbd\xb2\xc8\x8a\xb2\x1a\x06\x12\x44\x1c\x51\x80\x08\x69\x19\xd3\xff\xc0\xf2\x7a\x4b\x4b\xd3\xf6\x12\x60\xcd\xeb\x7c\x06\xbf\x25\x62\xee\xc5\x6a\xa0\xe8\xb8\xe5\xad\x2b\x3b\xf8\x1c\xb1\x24\xbe\x4e\xc1\xeb\x3a\x83\xc9\x5a\xb9\xe2\xf9\x12\x6c\x51\x92\x39\x20\x09\x42\xe4\xeb\x2c\xdb\xf5\xdb\xf5\x27\xd7\x4b\x84\x92\x43\x54\xe2\xaf\xe0\x8f\xcd\xa1\xdc\xa3\x67\xb9\xbc\x5f\x3a\xd0\xef\xa7\x7d\x13\xa2\x80\xa0\x1d\x71\x5f\x73\xad\xc7\x43\x9a\x27\x51\x12\x0f\x26\xef\xe3\xb5\x9e\x79\x7d\xc2\x63\xb8\xaa\xcb\x41\xa4\xa0\x1d\x58\xe5\x79\x98\x3f\x14\xc2\xa7\xe2\x08\xb4\x22\xbf\x95\xa9\x1a\x7d\x29\x11\x31\x22\xef\x48\xcf\xf0\xac\x1f\x78\xd5\xd9\xc6\xf6\x78\xe9\x29\x7c\x32\x24\x83\x31\xa4\x0b\xb6\x49\xc4\x6a\xc8\xfc\xb1\x1a\x6a\xc1\xce\x2f\x7c\x2a\x20\x0e\x82\xf5\xeb\x6b\xb5\xfb\x32\x19\x22\x54\xe8\xa0\x2a\x48\xd5\x88\x41\xd9\xb7\x16\x2a\x49\x10\x5e\x71\xe1\xad\xb7\xfc\x49\x6e\xf8\x93\x61\xac\x80\x88\x57\xef\x01\x55\x98\xec\x29\x81\x05\x46\xe5\x31\xcb\xb6\x45\xa9\x6b\x94\x5b\x99\x3f\x05\x08\x85\xdc\x92\x06\x16\xb2\xfe\x79\x49\x8d\xfe\xc5\x94\x0d\x4c\x0b\x90\x8c\x11\x37\xc0\x5f\x0d\xd2\x61\x5c\x52\x39\xfe\xd4\xa0\x42\xd7\x1b\x2c\x10\x23\xa4\x59\x6f\x84\x08\xd0\xa4\x63\x8f\x21\x17\x5b\x72\x32\xb1\xe0\x85\x0e\x3c\x34\xaf\x3f\x86\x29\x1f\xc9\xdc\x08\xb4\xcd\xd6\x5c\x17\x79\x75\x0b\x98\xb6\x1b\x81\x64\x02\x6c\xc9\xe0\xaa\x98\x16\x30\x49\x87\x01\x8f\x4d\x41\x22\x92\x35\x99\xf2\xe1\x75\xae\x06\xd4\x99\x5a\x3a\x4e\x22\x2c\x64\x75\xa7\xd3\x2e\x80\x25\xdd\x38\x44\xbf\xf0\xa9\x91\x19\x34\xd5\x0f\x44\xd5\x0e\xc0\x84\xd0\xf7\xe4\x0e\x06\x11\x9f\x77\x8b\xd5\xf3\xd3\xfc\xa7\x90\x5e\x18\x02\x65\x50\xf3\xfa\x54\x34\x15\xcf\x55\x7d\xb2\xcb\xa3\xf4\x38\xc9\x0e\xcb\xdc\x40\x6f\xbb\x16\xdf\xd5\xb8\x8a\x3f\x9f\xe1\x95\x4f\xb0\x20\xd2\x37\x89\x46\x55\x90\x36\xc5\xd7\x14\x54\x5a\x86\x5a\xa0\xf3\x6c\xb4\x6f\x96\x96\x15\x77\xfc\x6d\x64\xa8\x35\xa2\xb9\x57\x27\x44\xbc\x0c\x1c\x7b\x19\xf9\x52\x58\x35\x0e\xa4\x8f\xee\x08\x2b\xb5\x8c\x02\x91\x48\xb3\xf7\xfd\x23\x7d\x2d\x9a\x25\x91\x08\xcc\xcf\x19\x19\x85\x81\x92\x36\x7b\x55\xcb\x13\x94\xd5\x51\x5c\x8f\xe9\x2d\xe2\x4d\x46\xb1\x50\x44\x5d\x4c\x38\xae\x03\xcf\xb2\x74\x22\x2e\x3a\x3d\xbb\xf2\x6d\xbd\xcb\x80\x00\xfd\xa6\x94\x53\xc6\xa1\x42\x7f\xf3\xa5\x52\x87\x62\x4d\xd5\x1c\x44\x32\x33\xe9\x97\x84\x08\x6d\xdb\x96\x58\xcd\x96\xd7\xeb\x0c\x88\x53\xdd\x3e\x7e\x2c\xb4\xee\x01\x48\x0f\x53\xf2\x0e\x2d\xb9\x4b\xb4\xa9\x0f\x45\xf1\xb6\xa0\xcd\xa6\x3b\x98\x87\x31\xa2\xb4\x09\xf3\x63\x65\x52\x6c\x63\xac\x15\xed\x5e\x06\xa6\x0f\x18\xc3\x7c\x9b\xaa\x91\x6a\x29\x7c\x87\x68\x26\x5a\x9b\x58\xd7\xb6\x2c\x6c\x54\x75\x2d\x45\xe4\x21\x9e\xcd\x96\xf8\x3c\x22\xe9\xd2\x71\x55\x9c\xcf\x8d\x85\xc0\x75\x37\x26\x44\x84\x9e\x0e\x0a\xad\xa0\xbe\xcc\x97\xc6\xab\x14\xd2\xc5\xfd\x80\x00\xae\xcb\xe6\x8a\xa2\xa0\x37\x94\x3c\x5f\x06\x0d\xa5\xf4\x05\xb2\x3a\xac\x8a\x5c\x66\x8d\x82\x95\xc5\x53\x4f\xde\xa8\x0c\xc8\xbf\x4a\x73\x5d\x1c\xf7\x00\x87\xcd\xd3\xe2\x5c\xd4\x19\x5c\x1f\xa6\xf2\x85\x5a\x4a\x05\x3a\xe8\x11\x91\xa0\xfa\x8c\xbd\x54\x32\xd2\x04\x8f\x7b\xdd\x99\x32\xd8\xc9\x9b\x55\x0a\x02\xab\x85\x31\xa2\x11\x90\xed\x32\xdd\x07\xae\xbe\x95\x3c\xaf\x2b\x9c\xa8\xc5\x0d\xa7\x8a\x96\x10\x25\x14\xb2\x6e\xcf\x00\x25\x2a\x97\xa3\xca\x11\x15\x58\x8e\xef\x18\x62\x8e\x29\x67\x9d\x5e\xaa\x07\x78\xe5\xf2\x6a\x93\x4b\xf4\x3e\x5d\x36\xce\x0c\xda\xc3\x44\x20\x7a\x66\x84\x23\xcf\xd5\x51\xa5\xdd\x60\x02\xad\xc8\x8f\x68\xe7\x99\x89\x63\x0f\x72\xd3\x83\x85\x5c\x31\xd7\x47\x37\xca\x0e\x14\x9b\x8f\xb1\x83\x43\x31\x19\x60\xc9\xc0\x66\xf5\x6c\xd4\xd5\x4d\x83\xe3\xbb\x78\xa4\xdd\xa0\x7b\x18\xcd\x5c\xec\x53\x39\x11\xf1\x86\x63\xc0\xb9\x6c\x64\xfd\xef\x15\xaf\x4e\xab\xac\x99\x80\xb2\x94\x13\x69\xac\x81\x12\xcd\x75\x93\x53\x12\xf1\x93\x4d\x74\x6a\xc9\x28\x47\x40\x10\x0f\xa4\x31\x4d\x06\x7f\x0b\xe5\xfa\x52\x48\x9b\x1f\x51\x2e\x63\xd2\xd4\x5d\xec\x1a\x0c\xb6\x0d\xe2\x6c\xca\x55\x0a\x8c\x4a\x46\x6b\x53\xa7\xaf\x39\xa9\x90\xa1\x07\x39\x5a\xec\xcc\x01\x7e\xe4\x04\x96\x8f\x90\x98\x25\x66\x23\x25\xca\x07\xa6\xc3\x0e\x67\xdb\x4e\xfe\xd6\xad\xfd\xce\xb3\x7a\x78\xf9\x80\xe9\xc0\x2e\x04\x80\xa1\xf9\x09\xfc\x43\x05\xae\xc0\x70\xd7\xf1\x15\x6a\xc3\xe8\x6a\x9f\x2c\x50\x1e\xee\x74\xb2\x04\x95\xd6\x8f\x72\xec\x33\xab\x40\x29\x84\x3b\x96\x3c\x7f\x1b\xf2\x4f\x6a\x15\x02\x51\xbd\xd1\x29\x31\x4e\xf1\x9c\x23\x72\x0c\xee\xf8\x1c\x42\x59\xc5\x2c\x44\x39\xb8\x0f\xeb\x78\x0f\x31\xc5\x2a\xf6\xa5\xe3\x99\x7d\xe2\x5b\x0f\x80\x53\xb1\xa2\xdd\x6c\x53\x1d\x4e\x69\xd5\x15\x89\x9a\xd6\xc4\xd5\x31\x1f\x04\x06\x0d\x87\x7a\xd7\xec\xc7\xe8\x60\x50\x5d\xed\xfe\x42\x66\xc5\xf8\xb6\x12\x70\x90\x3d\x49\x95\x45\x4e\x1a\xf7\x07\xbb\x71\x4e\xfc\x2e\xc5\x95\x44\x9d\x00\x53\x20\x65\x59\x35\x7f\xeb\x9a\x49\x09\x7e\x91\x5d\x4e\x7c\xc5\xcb\x61\x08\x53\x09\x37\xc2\x6a\x42\xc4\x5a\x12\x19\x45\xff\x90\x22\xd0\x08\xd2\x53\xc5\xb2\x29\x3f\xc9\x34\x2a\xe9\xf9\x89\x71\x26\x1e\xa0\x32\x40\xfd\xc7\xe6\x86\x04\xc0\x76\x4f\x12\x8b\xa4\xfb\xfd\x52\x5c\x56\x90\x81\xf8\x44\xfe\x7b\x32\xec\x24\x44\x96\xa8\x7a\x2f\x4b\xd4\x8e\x93\x30\xce\xb4\x2a\xe5\x25\xc8\x6b\x73\xe6\x3f\xd7\x87\xef\x8b\xa6\x2e\xba\x72\xb1\xc1\xf6\xa7\x20\x08\x23\xdd\x73\xfb\x2c\x76\x93\x37\xaa\x05\x25\x47\xb8\x52\xeb\xea\xb5\x38\xfc\xf9\x4b\x85\x86\xdd\xf1\xc0\x34\x43\x87\x67\x28\x0d\xbd\x87\x5c\xfd\x0d\xaf\x9a\x06\xc7\x63\xc8\x54\xfb\xbd\x39\xf3\xdc\x44\xeb\x28\x56\xe0\xb8\xde\x14\x4b\xda\x4c\x59\xf0\x34\x38\x82\x28\x01\x8c\x4c\x22\xed\x67\xb6\x4d\x49\xdd\x21\x99\xf7\x14\x80\xac\xdb\x59\x37\xb1\xd4\xc0\xd1\x86\x34\xbe\xf5\x6c\x30\x30\xf0\xc9\x36\xfa\x37\x6f\xc1\x55\x80\xf5\x20\x02\xb5\xd9\xd0\x8c\x1f\x7d\x51\xf0\x3c\x4f\x50\x1d\xd1\x25\x85\x99\x7a\x34\xf0\xbc\x08\x09\x1a\x8c\x3c\x4d\x69\xa8\xfd\xec\x8d\x7a\x7e\x88\x84\x49\x4f\xa9\x7c\xab\x0e\xbc\xaa\x47\x99\x44\xf0\x78\x80\x0b\xf0\xea\xe5\xf0\x7c\x7f\x7f\xdc\xee\xd6\xfb\xc5\xc3\x7a\x90\xd1\x00\x0f\x22\xc3\x7b\x5f\xf7\x7a\xbf\x93\x9b\xf4\xe3\x20\xa6\x5d\x30\xaf\xea\x66\x10\x3f\x01\x5f\x9a\x51\x42\xd3\x72\x60\xba\xdd\x2c\xf4\xa3\x8f\x14\xb8\x01\x37\xc5\x24\xdf\x51\x3b\xf9\x76\x54\xcc\xa0\x85\x21\x00\x4d\x1a\x54\x55\xd5\x7c\x1a\x5e\x30\x7d\xc3\x24\xc1\xa4\xe0\x1e\xa9\x89\xb3\x54\xf2\xbc\x9e\x67\xe8\x9b\xbb\xc1\x90\x6b\x8c\xa2\xb5\xeb\x36\x06\x1d\x31\x49\x88\xf5\xfa\xfc\x5a\x34\xf5\x8a\x57\xb0\x3f\x15\x4d\xa6\x96\x70\xcf\xd3\xac\xaf\x49\x85\x50\x79\x28\x94\xf1\xca\xcf\x22\xeb\x5d\x03\x88\x1c\x27\xee\xf5\x58\x57\x77\xdb\x07\x78\x87\x92\xbf\x76\x9e\x09\x44\x8e\x8f\x76\x94\x4a\xab\xd6\x9f\x6a\x2a\x28\x15\x42\xa8\x27\x76\x23\xc4\x0e\x47\x2a\x88\x6f\x39\x2f\xb3\x2b\xb2\x2f\xd8\x73\x24\xae\x23\x49\x32\x5a\xdb\x48\x1b\x6a\x99\xf6\x3e\x14\xf0\x10\x30\xb4\x71\x31\x0e\x41\x3b\x35\x89\x97\xf7\xc6\x7b\x1b\xfd\xbd\x45\xcd\x8e\xef\x8a\xc7\x3e\xe9\xd4\xb7\xbb\x51\xd1\x74\x93\x89\x2b\xc0\x6c\xd7\x42\xc2\xfa\xaf\x26\xad\xaf\xb3\x84\x96\x37\xf2\xf2\x1a\x84\x13\x59\x92\xa0\xa7\xa2\xe6\x69\xff\x8e\x85\xa3\x95\xc9\x94\xbd\x54\x50\xfe\x28\x06\x3c\xcf\xb3\x23\x47\x78\x94\xe1\xac\x50\x09\x8c\xa7\xd9\xf3\x7b\x6b\x6d\xb7\x7d\x70\xb8\x3e\xa4\xba\x8f\xe5\x80\xf0\xa4\xdf\x5d\x18\xd5\x7e\x67\xd7\x63\x10\xc2\x47\xe2\x36\x54\xfa\x2a\x28\x94\xfc\xce\xf3\x7a\x95\xf1\xa6\xaf\x59\x05\xe9\x45\x9d\x31\xba\x6a\xca\x6d\x91\xe6\x75\x75\x8f\x40\x99\x49\xc8\x17\x94\xd6\x96\xcd\xf4\xf0\x91\x7e\x82\x4b\x07\x60\xc4\x30\x76\x36\xf0\xf2\xfd\x05\x40\x75\x31\x07\x00\x57\x20\x88\xf7\x42\xb4\x77\xc4\x57\x35\x34\x82\x01\x42\x0f\x27\xd2\xea\xf9\xf1\xf1\xe5\x69\x73\xf8\xd7\x71\xfb\xf0\xb2\x3f\x6e\x77\x9b\xe7\x5d\xfb\x7f\xb8\x4a\xac\x16\xdb\x63\x6f\x74\x83\x0e\x7c\x4e\xba\x02\xa7\xe2\xd7\x28\x49\xdb\x63\x62\xde\xa7\x07\x8d\x2c\xd0\x94\x74\x6e\xfc\x06\x74\xa0\x43\x43\x76\x44\x9a\x83\x86\x55\xb9\xbb\x0d\xae\x3d\x6d\x79\xdb\xe0\x25\xe7\x63\x57\x9a\x7a\x69\xe6\x06\xa8\x26\xa2\x0a\xe2\x06\xd8\x77\x59\x56\xcd\x02\x85\xe8\x84\x8b\xac\xef\x36\x77\x63\x7e\xb6\xf1\x49\x1c\xc7\x57\xaa\x23\x65\x1a\x10\xe6\xe2\xe3\x4f\xfd\x70\xed\xc4\x1a\x98\x51\x03\x4f\x15\x1c\x80\x9b\x54\xf6\x4c\x95\x92\x76\xb8\x70\x82\x1e\x44\x43\x8e\xf2\x30\x30\x32\xb9\x17\x57\x11\x0a\x51\xa4\x39\x2f\x27\xdc\x65\xda\xd3\x1e\x9a\x3f\xc5\x90\xf3\x7f\x5a\xf8\xa0\x3d\x1d\x1b\x6d\x3d\x24\xd8\xdf\xf1\x8f\x01\x38\x74\x16\xab\xa8\x7d\x5f\xb8\x44\x9e\xfc\xde\x4b\xc8\x69\xed\xf3\xc0\x66\x42\xdb\x39\xc4\x9b\xf2\x26\x79\xa1\x03\xcf\xc5\x3c\x6d\x56\xbc\x77\xc7\x05\x5e\x8c\x95\x44\x47\x13\x58\xbc\xb3\x52\x38\x5a\x07\x9a\xa2\xc0\x86\x85\xab\xfd\xea\x24\xb3\x34\xbe\xa1\xd0\x27\x4a\xba\xa7\xd6\x4e\x43\x0f\xee\xd6\xc3\x9d\xad\x7f\xb2\xc7\x47\x81\x74\x6d\xb5\x7f\x96\xbe\x77\x92\x2d\x5a\x47\x49\xc2\x8c\x8c\x21\x7e\xb0\x1d\xc6\x50\x3f\x09\x87\xe8\x84\x91\x54\x51\x45\x8c\x53\xdd\xa7\xe0\x51\x84\x64\x78\x47\xa4\x70\xe1\x97\x22\x47\x00\x4d\x32\x79\x0e\xc1\x84\x05\x4b\x53\x6a\x01\xf1\x02\x96\xa0\x74\xf2\x2a\x85\x20\x57\xb8\xaa\x8b\xcb\xad\x92\xad\xd6\x42\x51\x36\xc4\x92\x84\x7f\x3a\xa0\xa5\x4e\x48\x1c\xca\x18\x65\xed\x7e\xf6\x9d\xbf\xbf\xdf\x40\x6a\xb4\x0a\x48\x7b\xc5\x92\x7c\x8f\x1d\x3b\xad\x42\x16\xf4\x00\xea\xd6\x68\x9e\x2d\xd0\xd4\x2a\x72\x71\xfc\x20\x4f\xc2\x9a\x97\xdd\x2d\xab\x44\x60\x16\x78\xb5\x7e\x3e\xa2\xe8\xfb\xfe\xfb\x62\xb7\xee\x5a\x65\x84\x81\x02\x6d\x2a\x6b\x46\x6e\xf3\x7f\x0d\xc3\x48\xe6\x00\x60\x3c\xf4\xba\x04\x2f\x52\xca\x75\x5f\x04\x38\x49\x8a\x9e\x7b\xdf\x45\x6b\x57\x63\x8d\x32\x6f\xea\xc2\x96\x99\x4e\x29\xf8\xb5\xd6\x92\x34\x46\x0d\x05\xff\xd8\xeb\x00\xc6\x98\xaf\x11\xd0\x2d\x5a\xcf\xf6\x30\xe4\xa8\xde\x7f\x15\xdf\xb7\x47\x03\xc8\xde\x1e\xd8\xa6\x3f\xc1\x4c\x58\x7f\x50\x67\x01\x8c\x39\x31\x51\x87\x56\xa7\xe2\xc3\xa4\xa1\x50\xdf\x1c\x0b\x82\xfa\x9d\xc9\xee\x9b\xed\x11\x8a\x6a\x8d\xeb\x8e\x9b\xd0\x40\xfe\x7e\x33\x1d\x5c\xa6\x31\xac\x41\x74\x3f\x5b\xe4\xbd\xa5\x02\xf5\xae\xd2\xbb\xed\xe5\x73\x2c\xa5\x3d\x9e\x07\xd1\x99\xe1\x88\x6a\xfb\x70\x32\x59\x68\x20\x98\x4a\xa8\xc3\x28\x03\xd5\xf6\xd2\xc4\xc3\x2b\x2f\xb6\x02\x10\x18\xf3\x1c\xe1\x98\x7a\x8d\xbb\xe7\x83\x59\x8a\x40\xed\x50\xbc\xbc\xbc\x65\x21\x69\x0f\x09\x19\xd1\xd6\x65\x45\x35\xb6\xff\x4c\x47\x27\x71\xfb\xd8\x0a\x1e\xa0\xf0\x1a\xa4\x15\x6d\x91\xdb\xbf\x0d\xb2\xea\xf1\x00\x24\x04\x8c\xf9\x8e\x87\x85\xa8\x55\x96\xde\x80\x6f\xc6\x1f\xdf\x17\x11\x22\x00\x7b\x4d\x23\x5a\x30\xd4\xe4\xd9\x7d\x0d\xe8\x8f\xad\x78\x69\xab\xfa\x07\x71\x7a\xea\xd0\x85\xb4\x5b\xcb\xe4\x31\xcd\xeb\x6f\xcd\xf5\x8f\x13\x32\xb6\xa1\xe0\xee\xe8\xc2\x41\xc8\x1c\x53\x9d\xfe\xc0\x73\x35\x80\xd1\xc4\x43\x98\x41\x43\x85\x48\xe6\xa0\xd0\x73\xb1\xec\xfb\xbd\x68\x30\x74\x3b\xb7\xde\xb7\xdd\x62\x16\x10\x39\x18\xd1\x52\xcc\x79\xb0\xd8\x8d\x00\x7e\x25\x46\x91\xb6\x50\x62\x8c\x7e\xa2\x64\xde\xf6\x4b\x12\x8c\x86\xf3\xa6\x3e\x41\x5e\x13\xc4\x68\xa8\x92\x6d\xfa\x45\xc2\xf3\x88\x4b\x1b\xca\x34\x1b\xa8\x23\x77\xf7\x1f\x3b\x02\x6b\xe2\xec\x6e\xff\x85\x10\x48\xdb\xdb\xf5\xb1\x42\xe4\xc2\xaf\x58\x73\x6e\x1c\x96\xb6\x25\x91\x08\x26\x7c\x59\xa1\x06\xe8\x2f\x28\x59\xb6\x07\x49\x85\x2a\xb2\xfb\xe5\xbe\x8b\x0d\x00\x63\x3c\xd2\x18\x68\xb1\xab\xa9\x01\xbc\xcc\x6d\x18\x6d\x6f\x41\x7a\xd3\xa6\xc0\xbe\xdd\x1f\xce\x69\x3e\xa9\x78\x6b\xfb\xc9\x04\xcd\xac\xfa\x94\x96\x3d\x9c\x0f\x18\x13\x92\x59\x15\xe9\x0d\x46\x2c\x79\x9a\x43\x89\xa1\xe5\xf2\x0d\xfa\xc0\x13\x76\x8d\x30\x49\xfa\x5e\xd4\xfc\xd8\xe4\x47\x69\xb2\xc3\xd3\x79\x29\xc0\xe5\xc6\xce\x5d\x97\xd2\x65\xbb\xfe\xfb\x98\x1e\x52\x30\xa4\xf1\x05\x22\x2d\x43\xca\x2d\x35\x8c\x77\x03\x63\x8a\x71\xc4\xfc\x1c\x78\x56\x54\xbd\xfb\xd9\xb6\x44\x80\xec\x2f\xeb\x9f\xfc\x7c\xc9\x60\xdc\xa6\x9c\x70\xc0\x2d\x6f\x24\xc3\x80\x31\x1d\xc7\xae\x1c\xe0\x96\xd7\x3f\xe5\x69\x93\xaf\xab\x9a\xd7\xf0\xc4\xab\x45\x36\x54\x0f\x1e\xbf\x3b\x0d\x2e\x98\xe4\xf0\xc1\xd6\xf3\x03\x73\x58\xc8\x88\xb0\xc9\x7c\xa8\x9e\x2b\xb9\xf9\xbc\x5a\x6f\x6a\x9e\xda\xa1\xe8\x30\x19\xe2\x92\x97\xc3\x47\x57\xa8\x3e\x75\x97\x06\xbb\x25\x30\xc7\x71\xa8\x36\xb5\x6a\x57\xba\xa1\xec\xe1\x78\x31\x75\x9c\xc8\xf7\x1d\xcb\x7d\xd0\x1b\xcc\x37\xe0\xe4\xb6\x2b\x97\x98\x81\xe2\x68\xd6\x3f\x80\xee\x1e\xd6\xf3\x98\xb0\x32\x78\x33\x31\xa8\xf1\x1b\x73\x7c\xee\xa1\x9d\xfc\x01\x29\x51\x6d\x6e\x30\x84\x6f\xb4\x4e\x68\xdb\x90\x57\x6a\xfa\xad\x3b\x26\x46\x0b\xbc\x75\xa5\xe6\xa1\x76\xc3\x21\xe4\x04\x7e\x88\xa9\x3d\x5d\x16\xe7\xfb\xd2\x44\x07\x4c\xc7\xd1\xbd\x04\x61\x84\x3c\x9e\x50\x9f\x96\x69\xf1\xb3\x1d\x8c\x8e\xbd\x66\x20\x43\xac\x3c\xeb\xc8\x63\xbe\xe4\x31\xb6\x07\xa9\x18\xad\x82\x77\x5e\xa6\x7d\xe2\x1a\x98\x13\x86\xcc\xeb\x39\xf6\xad\x6a\xe1\xfe\x54\x7c\x54\xd3\x95\xc7\x89\x12\x08\xbb\x19\x40\x4c\x3e\xe3\xab\xc4\xcc\x21\x4b\xbe\xc9\x64\x53\xf2\x9a\x48\x24\x77\xfd\x04\x71\x62\x97\xc4\xfb\x08\x34\x7d\x4b\x15\xd3\x76\x89\x14\xea\x05\xe2\xac\x3f\x5e\x88\x73\xfc\xc8\x47\xcb\xa9\x13\x4b\x0f\x6f\x45\x34\x57\xd2\x21\xe5\xf2\xad\x5d\x74\x6e\x94\x0d\xfa\xa5\xc0\x49\x5c\x86\x50\xa6\x1d\x54\xb2\xf9\x32\xe1\xd8\x76\x0e\x38\xa6\xbc\xce\xfc\x27\xd5\x61\x4f\x77\xfd\x69\xff\xd0\x57\xfd\xba\x3d\x7d\x31\x09\x27\x7d\x7f\xe2\xb1\x5e\x11\xca\x74\x1c\x72\x07\xe6\x70\x2f\xc6\xd8\x2c\xc8\x12\x64\x6b\x70\x93\x9e\xf2\xa4\x14\x6d\x7c\x66\x2e\x49\x8d\xe5\x35\x7d\x07\x93\xc9\x98\xcb\x58\x19\xb3\xc1\x11\x8e\xb0\x79\x8f\x3b\x7e\xed\x5e\xa7\x10\x09\xbe\xf3\xae\xee\x72\x31\xe0\x6d\x1d\xdf\xa4\x90\x21\xeb\xc8\xdc\x56\x4d\x55\x17\x67\x2c\x6d\xac\x1e\xf9\xe5\x62\x0b\x0b\x81\x39\x32\x54\x86\x57\xb7\x3a\x75\x1b\x85\x23\x93\x08\x29\xcc\xbe\x35\xf9\x68\x0d\x74\xa4\xf2\x28\x17\x85\x03\x63\x0f\x59\x66\x69\x77\x26\x2f\x49\x2a\xcd\xb9\xd5\x9f\xbe\x64\xc5\x15\x10\xe8\x33\x45\x20\xb5\x3d\xb5\x8e\xfd\x41\x22\xb5\x1d\x19\xed\x6c\x2e\xca\x1b\xbe\x75\x60\x8e\x72\x34\x62\xb9\x70\x0a\xec\xd3\xd7\xb1\x1a\xf3\x2d\x15\xde\x78\x66\x2b\x45\xf2\xe0\x8b\xc7\xe5\x62\xbf\x5f\xdc\x3d\xef\x48\x3a\xc7\x3e\x1e\xb0\x10\x5f\xb0\x06\xb8\x4b\xdf\xe7\x6d\x09\x07\x12\x17\xb3\xa5\x5c\x54\xbf\x11\xd1\x96\x6d\xe0\x8c\x49\x2b\xb6\x52\xbe\xe5\x85\x02\x24\x23\xc2\xfc\xcf\x0d\x6e\x6c\x38\xe6\x41\x3b\xb8\xde\x73\xa5\x36\xf9\x3b\xe4\x75\x51\xde\xd4\xbd\xcd\xfe\x99\xbf\x43\xad\x35\x26\x40\x34\x3f\xa7\xd9\x75\x14\x2a\x06\xe6\xb6\x8f\xd9\xae\xc4\x6b\x99\xa5\x97\x0a\xba\x9f\xfd\x20\x36\x59\x98\xa3\x80\x59\xb0\x5e\xdb\x4b\xc4\xb8\xd9\x77\x45\x7e\xaa\x5f\x36\x5c\x27\xa4\xc2\x07\x30\x69\xee\xce\xef\x1b\x47\x1e\xda\x9e\x22\x26\xe7\xb9\x02\xf2\x39\x67\x8c\xc2\xc1\x7f\xff\xdb\x89\xc2\xff\xb1\x87\x2a\xc0\x42\xba\x33\x8c\x0b\x4e\x81\xb9\xae\xef\xa1\xd5\x8e\xd9\x3b\x93\xdd\x99\x5d\x07\x5c\x8f\x25\x7e\xbf\x9e\xde\x95\x45\xaf\xee\xfc\xc9\xab\x9d\x9e\x40\x27\xcc\x70\xc9\xae\xac\x7e\x95\x63\x1b\x7d\x37\x94\xc6\x57\xee\x08\x00\x31\x26\x8f\x9f\xd4\x9f\x9c\xca\x07\x19\x98\xa9\x72\x7f\x3e\x57\x77\xc4\x41\x31\xda\x90\xdd\x20\x8c\x11\xf6\x67\xb8\x5f\xab\x1b\xe6\xd7\xb6\x4f\xec\x23\xe6\x3d\x4b\xdb\x85\x36\x2d\x51\x23\x1f\xe3\xa9\xb7\x75\x9e\x16\xd6\x3b\x18\x84\x6e\xc0\xc3\x30\x1c\xda\xc8\x86\x61\xa5\xf5\xf1\xab\xce\x20\x75\x23\xe6\x21\xed\x7c\x5a\xfd\x91\xd6\xa7\x34\xdf\xac\x9f\x6d\x53\xec\xba\x46\x33\xa2\x7d\xab\x8b\xe5\xbc\xd2\x62\xdb\x51\x6b\xa4\xc6\xca\x88\x97\xe9\x5b\xfa\x0e\xdf\x9b\xbc\x46\xd2\x23\x9e\x19\x22\x43\xd3\x37\x49\x42\xc4\x6c\x7d\x5b\x6e\xbe\x08\xc3\x9a\xce\x22\x26\xca\x3f\x53\x06\x3e\x5c\xbb\x5c\xc1\x19\xda\xec\xf0\x53\x42\x55\x0d\x4a\xf1\xdb\x36\xe9\xe0\x9a\x2e\xd2\x2e\x55\x3e\xfe\x00\x42\x2a\x0f\x6c\xc6\xcc\x90\x03\x0c\x49\xcf\x81\xb9\xd2\x13\x81\xea\xa4\xf6\x5a\x0b\xe7\x01\x5e\xbb\xc6\x08\x30\xca\x52\x1b\xdd\x95\x1e\x30\x34\x4d\xa0\x0d\x5d\x69\x57\xc6\xb4\x6f\x90\x2c\x84\x79\x5d\xbf\x35\x53\xbd\xfb\xb6\x27\x48\xe4\x63\xa2\xa4\xfc\x6f\x13\x1b\xd0\x55\x8e\x64\x60\xb9\x98\x31\x58\x55\x4f\x20\x5a\x6d\x27\x8f\x85\x86\x20\xe1\xe5\xe9\xb0\xff\xe7\xa3\xbd\x7b\xa5\x7d\x04\x51\x3e\x2e\xfe\x3c\xae\x0f\xdf\xd7\xbb\xa3\xeb\x7f\xb7\x8d\x3a\x56\x58\xd6\x71\x23\x48\xd6\x75\x48\x18\x12\xec\xa7\x03\xe7\xc0\xd5\x5c\x60\xfd\x1e\xcf\x1b\x91\x8e\x8c\x70\x8f\x31\xa2\x63\x6d\x3a\x51\xcc\x41\xa4\x63\x1a\xca\xff\x7a\x9e\x7a\xcc\xe3\x56\x49\x17\x2d\x90\xc3\x47\xf1\xdc\xd4\x97\xc6\x32\x00\xda\x6e\x7e\x80\x6c\x2d\x85\xc2\x72\xd5\xdf\x06\x9b\xb1\xc7\x8c\x42\xf1\xab\xac\x2e\xbf\x4d\xce\x2e\x84\xea\x58\x88\x0f\x05\xc6\xc9\x97\xd7\x47\xa8\xf9\x23\xaf\x66\x15\x8f\xdb\x83\x94\xc6\xd8\x67\x47\x51\x3b\xb6\x1c\x1c\xd3\xcd\x89\x12\x44\x42\x3d\x14\xaf\xc3\xa5\xf4\x93\x93\x3a\x2a\xd4\xa4\xe4\xb5\x59\x3d\x77\xa8\x4b\xd3\xe8\xc6\xd2\x96\xd8\xef\xc8\x64\xb9\x0e\x9a\xb0\x82\xe4\xc4\x6f\x21\x88\xb3\x73\xd7\xf3\x9c\xc4\x35\xbb\xdc\x30\x2a\x37\x0e\x7b\xb7\xfd\xbc\x40\xd0\xd0\x1d\x59\xc0\x5b\x28\x07\x91\xa3\xee\xac\x3e\xe3\x18\xcb\x7c\xe4\x57\x7e\xdc\x1a\xaa\xf8\xee\x01\x02\x70\x50\x4b\x1d\x8d\x4d\xb4\x56\xd7\x56\x14\x09\x98\x17\x06\x2e\x29\xd5\x57\x83\x74\xde\x16\x7a\x02\x05\x60\x5e\x14\x02\xe2\x16\x1e\x9e\xbf\x1d\xd7\x53\x6e\x60\x9e\xed\x1b\x29\x01\xd4\x3c\xfe\xb2\x3d\x9c\x13\xa9\x7c\x4f\x92\x7c\x9e\xe4\x3a\xec\x68\x89\xdd\x48\x11\x3b\x81\xae\x23\x36\x79\xca\x38\xe1\x7e\xd4\xeb\x23\x11\x5c\xf3\x31\xcd\xa0\xaa\x8b\x1c\xc6\xeb\xb9\x17\xcb\x08\xf7\x85\x01\xc1\xe1\xb1\xea\xeb\xf5\x80\x79\x89\x23\x70\xbe\xb6\x3b\xf1\x1b\x52\x81\xa8\xb4\xca\xd2\xb7\xb1\x3e\x5e\xdb\x31\x71\xb5\x32\x0a\x1f\xf7\x45\xf9\xf6\x52\x66\xdd\x39\x92\x10\x23\x1e\x67\xa4\x67\xeb\xf8\xe7\xfe\xae\x4c\xdc\x1e\x0d\x3e\x77\x86\xf2\xf8\xcd\x58\xf6\xa8\xed\xa2\x29\x90\x93\x56\xed\x95\xed\x65\x85\xc7\x7c\xcb\x90\x75\xe5\x79\xdd\x6e\xc1\xf5\x5a\x16\x79\x71\x4e\xff\x6a\x3a\x31\xeb\x68\xf2\x02\x45\xbb\x8e\x52\x3d\x35\xad\x0c\x77\xf0\x3e\xf4\xae\x3f\x29\x1b\x32\x47\x4b\x27\xc0\x6a\xf2\x87\xe2\x75\x0f\xf5\xfe\x70\x43\xb5\xf9\x2b\xd5\x06\x78\x1e\xe9\x1b\x54\xc3\x43\x9a\x0f\x86\xfe\x27\xdd\x43\x0f\x71\x8b\x5c\x29\x43\x11\x30\xb6\x5a\x6d\x37\xc9\xad\x9e\x4b\x87\x47\xbb\x2f\xca\x73\x93\xf1\x39\x4a\x50\x60\x9e\x8a\x13\x34\xf2\x8f\x56\xa6\xf3\x50\x2c\xac\xb6\xd4\x3a\x6f\xce\x86\x93\x76\xf2\x0e\x81\x25\xe8\xde\x1e\xc9\xf8\xb1\xfc\x77\x7f\xf3\xe8\x93\x67\x02\xc9\x1c\x0b\x47\xe7\xe5\x2b\xd4\x73\x8f\xe4\x33\x87\x1c\x96\xfd\xe3\x6e\xb8\xc2\xfb\xcc\x55\x98\x0e\x7e\xe7\x59\xaa\xee\x8a\xde\x36\xb2\x9f\xca\x67\x89\xa7\xc2\x2e\xbb\x42\xfc\x4c\xed\x74\xb5\xa4\x77\x6d\x17\x49\x4c\x7f\x86\x4b\x22\x70\xbc\xaf\x4a\x85\xdb\x03\xb4\x47\x83\xe7\x84\x48\x8d\x11\xb6\xc3\x74\x71\x5c\x1e\x98\x61\x49\x4e\x71\xd1\xe4\xca\x1d\xbf\x40\xdf\x4d\x04\x7a\xb5\xfb\x53\x9a\x5f\xf7\x7f\x35\x69\x59\x42\x66\x57\x23\xdf\xe5\x0a\x71\x60\x85\xa5\x04\x36\x6f\xc6\x34\xfb\x1e\x24\xa6\x28\x8b\xcc\xa4\x5f\x9b\x69\xbe\x2f\x5d\x65\xf8\xef\x1e\x0a\x6e\xd2\x1b\xbf\x4c\xe2\xf0\xd9\x39\x7d\x82\xd4\x60\x90\x7e\x57\x64\xd9\x5d\xda\xd9\x33\x7e\xe0\x51\x51\xf1\x89\x57\xf7\x45\x53\xfe\x0b\x78\x97\xa9\xeb\xba\x44\xcc\x27\xd0\x7b\x53\xd5\xa0\x36\xf9\xa5\xa9\xfb\xb6\x18\xfd\x3a\x41\xb5\xa1\x59\xbf\x7b\xdd\xc6\x7e\xcd\x21\xa1\x1b\xf8\x51\x57\x04\x61\xe5\xfd\xc7\xf7\x1c\xba\x8a\x11\xb4\xa3\xc4\x84\x25\xc1\x99\xad\x88\x6f\xdb\x41\xfa\x98\x70\xbb\x43\xee\x82\xee\x57\x4d\xa6\x8d\x02\x5e\x9f\xee\x78\xcd\x8f\xdc\x86\x6a\xfc\x88\x01\xd2\x15\x9d\xd1\x50\xbf\x2b\xf9\xeb\x74\xce\xf8\x91\x0b\x18\x10\x31\xc5\x8e\xa3\x18\x9a\xed\x12\x00\x5a\x39\x27\xcc\xa0\x52\x88\xb3\xe3\xa4\xb5\x97\x8a\x15\x43\x32\xbf\xf7\xa2\x36\x14\xad\xe3\x44\x87\x9f\x04\x3c\xf4\x6d\x22\xbf\x3c\xf3\x8c\xbc\x76\xdb\xcc\x9d\x04\xed\x14\x24\x40\xd6\x45\x53\x22\x7a\x6c\xfd\xd7\x4b\xda\x9f\x82\xbb\x01\xaa\x2b\x3f\x15\xfc\x34\x97\x9f\x6b\xbb\xc4\x12\xe9\xb6\xf6\x96\x2b\xaf\xfd\x4d\x32\x24\xf3\x5d\xb6\x7b\xd2\xd5\xb0\x7c\x8d\x1f\x51\x3a\x9e\x09\x2a\xbc\x41\x7e\x1c\x46\x91\x7f\x85\x2c\x09\x4f\x40\x6c\xb3\x3a\xcd\xd5\x13\xfc\xac\xbf\x17\x4d\x8f\xe0\x20\xc8\xa9\xed\xa9\x18\x6e\x4b\xcb\xe7\x87\xc3\xf7\x99\xdc\xd4\xf8\x79\x54\xe0\xa0\xf5\xd0\x99\x1a\x7b\x40\x2a\xa7\x3d\xc9\x6b\x8c\x6f\x42\x7b\x0e\x16\xd2\x4e\x73\x75\xa3\xfb\x18\x0e\x4b\xcd\x25\xfa\xf5\xfc\x47\xaa\xa0\xe8\x24\x39\x80\x05\xcc\x4f\x30\x4e\x23\x1a\xb4\x25\x6e\x6b\xfd\xdb\x3e\x61\x84\xf0\xb0\xa3\xa2\xf4\x6d\x57\x2c\x88\x0b\xcc\xa4\xb3\xeb\x32\xc7\xb5\xea\x36\xff\x8b\x93\x6a\x5b\xd4\x8b\xea\x3e\xfd\xd9\xfe\x2b\xcd\x6b\x2c\x21\x3f\xc3\x66\x0c\x4e\xb7\x87\x73\xaa\xdd\x48\xab\xa7\xa2\xc6\x6a\x8c\x01\x88\x7d\xf4\x16\x02\x57\x33\x19\x77\x82\x81\xfc\xfc\xb5\x18\xe8\x97\x51\xb5\xc0\x73\x22\x84\x5b\xfd\xb9\xda\x66\xcd\x6b\x17\x46\x0a\xbc\xc4\x75\x89\xa2\x17\x52\x59\xf4\xd5\x4a\xc0\x02\x9f\x05\xc8\xf5\xf1\x50\xbc\x2e\x9b\xeb\xd7\x51\xbb\xc0\x67\x54\x21\xb8\xba\x2b\x81\x9f\xd3\xfc\xd5\x92\xbc\xb7\x6d\x92\xb9\x49\x97\xcf\xfb\xdf\x8b\x3b\x79\xa3\x81\x10\xa4\x83\xdc\x94\x79\x17\xb2\x0f\xc2\x24\xc6\x00\x17\xea\x4e\xda\xba\xa8\xf1\x00\x98\xdd\x43\x82\x50\x3a\x18\xb0\x4f\xab\x6f\x59\x21\x78\xd6\xd3\xad\xb4\x8d\xda\xd5\x36\xce\x5c\xde\x03\xca\xa0\xac\x7d\xdb\x1a\x85\x04\x5a\xe5\x4a\x3d\x40\x3e\xca\x5a\x04\x71\x20\x11\x9f\xb0\x84\x5a\x16\x69\x3e\x78\xbe\x58\x4a\x2b\xc6\xf3\x08\x67\x38\x18\x8a\x90\xf1\xe1\x89\xa3\xa8\xd4\x21\xfd\x0f\x94\x9b\x1a\xce\xd5\x24\xe8\x13\x24\x32\x36\x24\xe8\x94\xcc\xa1\x67\x6e\x47\xd2\x92\x97\x23\x29\x8b\xc9\xbb\xe7\x3e\xd1\x31\xf5\xce\xd8\x0f\xc8\x55\x71\x63\x20\x9a\xee\xc2\x27\x57\xe3\x1b\x0a\x8d\xa2\x11\xbf\x98\x24\x8c\x02\x11\xf8\x01\x95\x7f\x40\x3e\x0e\xc7\x4f\xce\xc5\x25\x12\x56\x52\xca\xc0\xe6\x72\x30\xa2\x66\x8b\xd2\xc6\x27\x96\x01\x8f\x3d\x53\xba\x04\xe5\x98\x43\xa5\x6d\x16\x21\xe6\xa3\x1e\xd3\xba\xe4\xef\xf6\xcd\xa8\x28\xc4\x75\x0f\xba\xe2\xa5\x3d\xc8\xa2\x77\x2f\x02\xf0\x98\x6b\xb0\x23\xb6\x84\xe1\x4a\xe2\x6d\x67\xc8\xa7\xcf\x06\x89\x03\xac\x23\x1b\x7f\xc1\x4c\xad\x81\xc0\xdb\x1e\x9c\xf8\x29\x74\x39\x58\x48\x00\x22\x1c\xa5\xbb\xc5\x61\x5d\xd4\x8d\xfd\x59\x3b\x7e\x62\x15\x8b\x8a\x9a\x67\xbb\xa6\xdb\x4a\x02\x1d\xa9\xd0\x2a\x7e\xae\x8a\x9e\x14\xec\x0b\x40\x6e\x7b\x14\x57\x09\x95\x51\xca\x42\x7d\x99\x2f\x0e\x59\x44\x34\x4e\xb2\xc8\x75\x5a\x9e\x09\xbc\x62\x98\x32\x4d\x17\x27\xf2\xc1\x98\x4b\x75\xa7\x0f\xda\xfe\x9e\xc4\x38\x68\xfb\x4f\x3f\xb6\xc4\xc3\x76\xbc\x9a\x98\xd7\x1e\xf2\xaa\x98\xe4\x61\x43\xd7\xa3\x6a\x98\x97\xa7\xfd\xf3\xc3\xdd\xa8\xa0\xb7\x6d\xe5\x5a\x77\x32\x6d\xad\xe1\x3d\x8a\x18\x85\x1e\x4b\x30\xa1\x84\xb9\x0f\x4a\x9d\x75\x4d\x51\x80\xab\xde\x51\xdf\xa5\xdd\xdb\x0f\x3d\xee\x23\x13\xc2\x51\x16\xe7\x4b\x53\x83\xad\xe2\xe9\x42\xbb\xa1\x1f\xb8\x98\x37\x58\x19\xf6\x7c\xbb\x90\x84\xbe\xa0\x31\x8a\x80\xfd\x21\xf5\x2d\x59\x7d\xfb\x8c\xbf\x4f\xfc\xba\xd0\x97\x0e\x62\xfc\x15\xe4\x57\x7a\xa9\xdd\xed\x05\xcc\xc5\xef\xbd\x2d\xde\xe0\x5c\xe4\xdb\xe2\xa3\x6b\x09\x34\x04\xbd\xc2\x7e\x73\x9d\x54\x1a\xb5\x5d\x12\xc7\x27\x05\xc2\x2d\x94\x55\x91\x93\x34\xc7\xe4\xe2\x01\x78\x58\xb6\xf4\x04\x1f\xcb\xe7\xed\xa4\x31\x02\x52\xa5\x22\xa5\xc7\xdb\x92\xf4\xd9\xd5\x39\x8c\x74\xe8\x11\x03\x4f\x0d\xe5\x3b\xcf\x8c\x3a\xbe\x69\x8d\x43\x92\x28\xb7\xc9\xd1\x65\x67\x0a\x87\x09\x73\x89\x8d\xcb\xa8\xfa\x03\x0b\x39\x4b\x40\x0e\x37\x72\x8c\xe3\x42\x55\x8f\xaa\x00\xbe\x36\x6b\x43\x1e\x32\x5c\x86\x11\x90\x9d\xd6\xd7\x95\x2d\x1c\x69\xdb\xb8\x83\xc2\x1d\x14\xc0\x6b\xca\x19\xad\xd3\xcf\xce\xaa\x5d\xa4\x7f\x59\x42\x9d\x5d\x07\x59\xf5\x50\x04\x31\x72\x22\xa0\x9e\x3b\x72\x21\xbe\xe4\xe9\xad\x4b\x39\x3e\x9b\x88\xc0\x4b\xac\xa8\x53\x5a\x3f\x97\x43\xdb\x39\x14\x71\xc0\xa4\x31\xf3\x36\x79\xbb\x41\x57\x50\x1e\x3e\x8a\x3b\x90\xe9\x99\x5b\xdf\x3d\x94\x8c\xea\xb6\xf6\xbc\x2e\xaa\x53\x3a\x74\xb1\x42\x19\xc4\x68\xe2\x21\xed\x4c\x59\x9c\x67\x78\x57\x81\x85\x2a\x56\x68\x0b\x71\xf9\x57\x93\x12\xd6\xa4\x6a\x47\xcd\x1a\x83\x27\x8b\xee\x86\x80\x31\x8c\x2e\x52\xfc\xa3\xf8\xb0\x28\x4b\x6c\x02\xc4\x14\x15\xef\x50\xf6\xec\x23\x6d\x83\x17\x47\x46\x98\xa4\xbc\x5e\xea\x69\x9e\x32\x84\x90\xa4\x70\x1e\xd2\xb7\xbf\x81\x47\x84\x10\xbb\xc2\x35\xf8\xa0\xa7\xcd\xe3\xfd\x62\xb2\x5c\x40\xa2\x2c\xd5\x3f\xe5\xba\x0c\xaa\xc9\x60\x48\xe7\x3f\x01\x48\xca\x3b\xa7\xd5\x43\x8a\x34\x0e\xf6\x6c\xda\x53\x48\x50\x8a\xe0\xc4\x45\xf7\x2b\x27\x16\x81\xf5\x61\xf5\xd0\xff\x16\xc6\x7d\x49\x3b\x16\xc4\x4d\x5e\xb0\x96\xa1\xf2\x0d\x96\xab\xe2\x19\x90\xea\x45\x7f\xb1\x88\x25\x46\xc2\x26\x4b\xf3\xb7\xa3\xe8\x4a\x47\x81\x45\x4e\xc0\xe3\x5e\x23\x6f\x50\x33\xd3\xb6\x85\xb1\xcd\xd0\x0f\xc9\xc6\x7e\x40\x99\xea\x14\x6e\xe2\xbf\x91\x23\xc7\xd5\x0d\x3f\x78\x93\xd5\x3d\xac\x60\xb4\x0e\x44\x6e\xec\xe1\xf0\xbb\x7f\x79\xba\xdb\x3c\x7d\x3b\xae\x0f\xdf\x8f\xdf\x17\xbb\xbb\xe3\x6a\xb1\xfd\xad\xeb\x43\x6c\xe9\x8b\xa7\x1f\xdd\x4f\x42\x39\x6c\x08\x11\xec\x73\x59\xe3\xf3\x7b\x40\x88\xd9\x4b\x23\x7e\x87\xeb\xa1\x58\xa6\x68\xf5\xd8\x8f\x3a\x35\xc0\x23\xdf\x71\xa8\x7a\x15\x1d\xe6\x65\x09\x80\xa3\xf3\xd7\x88\xfb\xed\x39\xdc\xc8\x0a\x0d\xe0\x63\x4f\xa9\xab\xda\x2e\x82\xe2\xd4\x27\x5e\xad\x7f\x82\x6c\xea\xa9\x03\x14\xf9\x42\x0c\xe2\x77\x3d\x90\x6a\x7a\x22\x80\xc0\xa4\xd2\xa8\x32\xb2\x3a\x14\x5b\x7e\xfd\xac\x48\xd1\x1c\x15\x04\x11\x46\x06\x06\xa7\x9d\x1c\x60\xd1\x1e\x7e\xf7\x59\x83\x40\x60\x5e\xe8\x0f\xd8\x3e\xff\x61\xbf\x43\x28\x19\x96\x3e\xff\xd5\x40\x79\x7d\xea\xf6\x90\x28\x72\x75\x88\xc2\x54\xbb\xe7\x3f\xee\xa8\xac\xe2\xf9\xf7\xf5\xd3\x71\xf3\x74\xfc\x63\xbd\xe9\x7a\x05\x54\xbd\x2f\xe7\xa3\x13\xbf\xf8\xd7\x9e\x2c\x76\x1d\x13\xaf\xcb\x80\x57\x28\xc8\xf0\xc5\x9c\x8c\x22\xc9\x11\x7b\xa6\x7f\xda\xdb\x89\x65\xd0\x21\xdb\xcd\x16\x42\x1b\xec\xa1\x40\x1f\x75\xf2\x85\x92\x20\x11\xe6\x33\xa3\x0a\xdd\x94\x49\xa1\xed\x02\x9e\x67\x5d\x6c\xf8\x68\x57\xf2\x7b\xb0\xdb\x55\x94\x40\x04\x81\xa5\xc2\x6b\xe7\xe2\xd7\xd9\xc0\x61\xa4\x33\xe2\x6e\x88\x88\xe7\xb3\x55\xba\xd8\xdb\x89\x70\x83\x20\xff\xbf\x4a\x62\x44\xdc\x73\x64\xd4\x2b\xcf\xa6\xf9\xeb\x6a\x58\xe4\x38\xed\x1d\x28\xf4\x88\x56\x0f\xbb\xc1\x36\x15\x09\x70\xfd\x7e\x12\xb5\xdb\xd4\xfa\x69\x3f\xa3\xb6\x05\x2c\x92\x31\xb3\x94\x15\xbf\xa7\xb9\x1a\x2f\xb6\x91\x94\x0a\x3a\x68\x81\x11\x9b\xb7\x81\xa1\xfd\x30\x3e\x1d\x49\x95\x60\xd4\x64\x51\xe2\xfc\xc6\x7a\xee\xd3\x98\x2b\x6d\x3c\x5c\x94\xaf\x49\x12\x81\xbf\xc3\x8a\x97\x77\xbc\xe6\xc3\x0a\x9d\xf9\x83\x34\x13\x98\xb7\xdc\x43\xae\x0c\x3b\xf8\x34\x47\x38\x3d\x80\xd2\xe3\xff\x6e\x6d\xa9\x2d\xa4\x5b\x48\xff\x1e\x53\xd7\x1e\x15\x0c\xa9\x48\x47\x9e\xcb\x2d\x5a\x36\xd2\x9e\xc2\x08\xe6\x6b\x31\xcc\x26\x45\x9a\x7b\xd2\x19\x92\xd1\x58\x4e\x4b\x60\x31\x73\x7d\xc7\x54\x7f\x3e\xdd\x1f\xee\xa0\xe6\xf2\x34\x5d\x83\x62\x26\x88\xb6\x83\x5f\xd2\x15\xcf\xb2\x6a\x8e\x15\x09\x18\x52\x3a\x06\x7d\x5c\xdf\x96\xd6\x12\x5d\x5d\xf5\x49\x7a\x3f\x76\x3c\x70\x03\x2b\xfd\x92\xab\xe2\xbc\x99\x7a\x38\x6d\x97\x00\xc6\x3a\xbd\x06\x90\xfb\x9c\x4f\x51\x5f\xb1\x13\x04\x88\x21\xdc\xac\x9e\xad\x8e\xc3\xa2\x93\x31\xc6\x76\x89\x78\x3e\x1b\x10\x7a\x4c\xf3\x66\xa0\xfe\x32\x0c\x09\xc5\x4e\x1c\xe2\xae\x91\x5d\xfa\x87\x14\xc4\xc4\x7f\x97\x4a\x78\xce\xb3\xb4\x8b\x02\xc6\x8e\x56\xc4\xcc\x69\x95\x41\x7b\x2e\x82\xd9\x59\x13\xbb\x11\x05\x9c\x8e\xed\xcf\x87\x62\x7f\x23\x0e\x0b\x2c\xf6\x5c\xaa\xc6\xa3\x79\x38\x03\x4f\x89\x3d\x1f\xd0\x8f\xfb\x83\xd7\xf2\x64\x2e\xb9\xc9\x89\x35\xcc\x76\xe1\x0e\xb2\x29\x1f\xad\xb0\x12\x4a\x18\xda\xc1\xd3\xf3\xf2\xdb\x0f\x34\x1c\x84\xb1\xa7\x7c\xf4\x5f\x94\x89\xeb\xcd\x32\x2c\x00\x8b\x7d\x1e\x23\xe4\xf6\x52\xc2\x85\x97\xd0\x33\xdc\x98\xf6\x80\x79\x63\x3b\x7b\x96\x53\xb4\xed\xe8\xfb\xc8\xe8\x74\xbf\xd9\xed\x0f\xc7\x97\xfd\x7a\x77\x5c\xbd\x1c\xba\xd3\x24\xbe\x6b\xdd\xb8\x46\xfc\x2f\xc8\xfa\x91\xd7\x35\x94\xd5\xde\x4a\xc4\xb6\x9d\x64\x60\x4d\x5d\x83\x06\x97\x13\x59\xe7\xb6\x93\x8e\x5d\xd2\x59\x6e\xcf\xb2\xba\x25\xf8\x33\xfd\x42\xc7\x47\xbb\x67\x51\x55\xe9\xeb\x8c\xf1\x6e\xbb\xb9\x5a\x45\xdd\xae\xb1\xe4\x0a\xe9\x4e\x27\x7d\x20\x80\x91\xd2\x5f\x67\xd3\xc6\x91\x27\x19\x41\x21\xb0\x70\x8f\xb4\xb6\x66\x4d\xd3\x38\x0a\x1d\x2c\x75\x50\x35\x86\x62\x79\x0d\xab\xb4\xbe\xee\x73\x7e\xa9\x4e\xc5\x27\xdb\x5c\x1c\x49\x85\x06\x82\xbd\xf4\x26\x97\x90\xd7\xe9\x7b\xe7\x09\xc6\xb1\xcb\x09\x11\x94\x96\x77\x65\x71\xf9\x7b\x74\x7e\x1c\x87\x1a\xdd\x75\x3e\x9d\xb0\x71\xe4\x23\xe8\xa9\x23\xeb\xff\x0a\xfc\x18\xc7\x3c\xc1\x25\x98\xf8\xf0\xcb\x97\xbc\xea\x1c\xb6\x98\x07\x1a\xdd\x53\xf4\xbb\xb7\xc4\xf1\x71\xd7\xfb\x7a\x31\x97\xcc\xf1\x7b\x92\x09\x34\x7d\x2c\x5b\x24\xb0\x58\x84\xa4\x2c\x83\xc1\x4d\x4a\x58\x61\xb1\x5a\xd7\x2e\x3d\x9c\xb3\x97\xd6\xdd\x69\x17\x9e\x41\x86\x3e\x56\x6e\xac\x0c\xd2\x6f\xd3\x89\x6c\xf5\x71\xb2\x58\xc5\x3e\x5a\x0e\xed\x4a\xf3\xb0\xfe\xb1\x7e\x30\xba\x57\xc0\x62\xf0\x3d\x6f\x68\xfb\x0e\xb2\xd4\x31\xa8\x00\x79\xec\xed\xcb\x59\xa6\x6a\x0c\xf5\x1c\x21\x3e\x13\xe6\x39\xb1\xad\xcf\xe7\xb2\xb6\x9f\x2b\x61\x20\x90\xa6\xf4\xc7\x8b\xbd\xa1\xc4\x31\xd5\x93\x0a\xde\x51\x45\xa2\xa9\x8b\x61\xa4\x73\xf4\x8d\x12\x47\x01\x86\xc4\x1e\xef\x16\xdd\xf1\xda\x0f\x8c\xb2\x72\x17\xc5\x1f\x1f\xe4\x26\x82\xa8\xad\xda\x4f\x75\x5f\x02\x20\xc2\x61\x48\x3c\x64\x3a\x7a\x9c\x58\x3b\xb8\x98\xd5\x7e\x05\x96\xf8\x8e\x27\xb8\xdd\xd3\xbb\x8a\x1d\x50\x8b\xb4\x54\xed\xf0\xb3\xdd\x02\x8e\x68\x81\x0f\x21\x7b\xcb\x22\x09\x98\x52\x06\x36\x32\x40\x87\x8f\x77\x96\x24\xd0\x31\x8e\x0d\xc4\x86\x1d\x8a\x1b\x0e\x2c\x60\x49\xe8\x49\x84\x65\x3f\xa4\xf9\xdb\xfa\x0a\xa3\x52\xea\xbf\xdf\xa0\x93\x30\x8a\xb5\x15\x2e\x92\xc5\x7c\xca\x34\x89\x20\x12\xc9\x50\xe1\xa3\x42\xd1\x32\xd3\x1a\x3b\x44\x5e\x8b\xdb\x5f\x89\x75\xf5\xe3\x6d\x35\x89\x23\x5f\x1a\x4e\xd6\x2d\x51\x12\xea\xf4\xf5\x53\x31\xc8\xee\x20\xf2\x84\x29\xde\xb0\xc8\x32\xf2\x02\x3b\x46\x39\xdb\x4d\x46\x48\xfb\x56\x5c\x10\xc0\x80\x24\x71\x35\xcf\x1e\xb9\x35\x86\x13\xae\x24\xb2\x65\x41\x7d\x32\xaf\x70\x80\xda\x4d\x24\x27\xcb\x80\x0a\x0d\x17\x93\xc2\x83\xf1\x2d\x49\xe0\xc8\x21\x70\xcc\xe1\xe3\x6f\x1c\x29\x7b\x84\xd6\x08\x76\xde\xa7\xf9\x6b\x93\xf1\x32\xad\xaf\x07\xa8\x6a\x27\xb6\x97\x57\x4c\x44\x81\x51\x98\xe4\x25\x3c\x00\xbf\xd9\x6b\x3f\x39\xb5\x12\x24\x97\x45\xa5\x85\xb8\x83\xe4\x28\xca\x8d\xf0\xaa\x51\xe4\x30\x51\x8a\x21\x9c\xe0\xfe\x69\x75\x18\x06\x3c\x12\x05\x0a\x07\x79\x86\x32\xfe\xcf\x9a\x48\x0d\xb6\x25\xe8\xf4\xa7\xe7\x7a\xee\x9c\x86\x25\xb0\x04\x12\x3f\x61\xbd\x70\x80\x81\x8d\x8c\xd4\x51\xda\x5e\x3c\x62\x86\xb0\x19\x1e\x8b\xbc\x28\xa1\x1e\x68\xc3\x7f\xfd\x74\x00\x01\x66\x59\xf5\x50\xb6\x6c\xf0\x51\xc1\x54\x39\x5e\xca\xe2\x5c\xac\x9a\x3a\x05\x23\x3b\x38\x74\xf8\x13\xcd\x98\x6b\x18\xc0\x56\x48\xb0\x41\xbb\xe8\xdc\x1a\x9e\x68\xcf\x61\x66\x5b\x3e\xa6\xb2\xc8\xd3\xbf\x8e\x86\x91\xe9\x58\x5c\xa6\x50\xdd\x44\x87\x9a\xb4\xe1\x1a\x89\xc4\x0a\xf5\x72\x10\x84\xe0\x2c\x91\x8e\x9e\x25\xc9\x1b\x9d\x85\x33\x1d\x30\x33\xfb\x30\xe8\x49\xf1\xcf\x21\xdf\x43\xf7\x46\xb8\xc3\xdd\xc4\x84\x6b\xda\x33\x18\x81\x1d\x3b\x0f\xb8\x23\x20\x18\x28\x22\x22\xbc\x00\xd4\x63\x91\xc3\x75\x07\x64\x12\xdb\x9e\x92\x14\xfd\x3f\x8c\x57\x74\x1a\xe0\xf1\xb8\xa3\x15\xa7\xcc\x45\xb7\x7b\x3b\xe6\xab\x73\xd7\x89\x3c\x93\x55\x59\x66\x5c\xbe\xa1\xe2\xcb\x1c\x84\x81\xbb\x91\x70\x87\x56\x82\x71\xc0\x3e\x59\x48\xb9\x9b\x90\x58\x3b\xc6\x8e\x8e\xba\x04\xf8\x0f\x90\xa6\xb8\xbd\x2d\x4f\x90\xc8\xff\xae\xc8\xb2\xe1\x17\xe6\x1e\x44\x64\x93\x51\x10\xfa\x0e\xb4\x29\x53\xb2\x1d\xfc\x44\x1b\x75\x22\x22\xb4\x32\x22\x8e\xb3\x63\x80\xfb\x9c\x23\xc2\x76\xfd\x93\xb7\x03\xa5\x5b\x0e\x27\xeb\xe8\xe8\x98\xc0\xf3\x92\x81\x8b\x98\xe6\xaf\xd3\xe4\x29\x0f\x02\x4a\x60\x63\x41\xdb\x23\x4f\x91\xe5\xbb\xdf\x86\x79\xc8\x00\xf1\xc1\xcb\xcd\xe1\xf0\x3c\x9c\x9f\x3c\x74\x3d\x6b\x06\xee\x4f\xdc\x0d\xc2\xe3\xcb\xe6\x33\x1f\x96\x87\x61\x2c\xcc\xa3\xfe\x20\x8e\xd5\xaf\xc8\x13\x80\xf1\x88\xc5\x0e\xc1\x1f\xe9\x65\x5b\xfe\xa2\x81\x09\xc1\x23\x8f\x94\x31\x2e\x25\x9c\xd3\xce\x2c\xe1\x51\xe0\x62\x2a\xd2\xd0\xce\x2d\x96\xc5\xcf\x19\x44\x3b\x6f\xc7\x81\x67\x8d\x9f\x9e\x30\xca\xb4\xc6\xcc\xc5\x0d\xb4\x92\x3c\xc7\x50\x6e\xf5\x55\x6e\x85\xc7\x6e\x44\x7a\xd6\x3f\x37\xdd\x19\xdc\x04\x0b\x5b\x5e\x91\x50\xee\x7a\xf8\x28\xfa\x16\xa2\x9a\xab\x50\x19\x68\x89\xb3\xaa\x1d\x3d\x93\x4f\x13\x1b\x0e\x58\x79\xe2\x79\x0e\xd9\xf3\x05\x72\xe3\x3c\xda\xdc\x13\x8f\x75\x48\x14\x55\x08\x3d\x98\x07\x32\x70\x1e\x84\x81\x6f\xf3\x5d\x98\x78\xe3\xea\x4a\x96\xfb\xf2\x7a\x28\xb9\x7c\xdb\xa8\xf1\xa2\xcc\x85\xd2\x61\x68\xa7\x53\x21\xdf\x90\xe0\xa1\xe6\xe7\x09\x5e\x92\x4b\x57\xe0\x2d\x7e\xe7\xdf\x39\x6a\xd3\x8d\x46\x88\x0c\x98\x14\x06\xc7\x07\xbc\x6a\x4a\x58\x16\x3f\x27\x5f\x41\x86\x0e\x06\x6d\x29\x0f\x82\x91\xbc\xfd\x89\x97\x28\x8c\x68\x68\xef\xb0\xc0\xac\xbe\xf1\xde\xb8\xe4\x12\xd7\xe1\x8f\x2e\x56\xd1\x0d\x01\xe5\x3b\xe8\x55\xf0\xd6\xd0\x1f\x21\x43\x39\x44\x81\x63\xb5\x2b\x9a\xfa\x54\x94\xe9\x7f\xa0\x67\x5f\x99\x08\x59\xf6\x31\x4b\x0e\x49\x88\x91\x75\xd5\xd9\x49\xc2\x91\x72\x50\x31\x6e\xd1\xc3\xb3\x1e\x82\x70\x24\x60\xda\x15\x43\x20\x83\x97\x24\x3c\xe6\x44\xed\x60\x78\xfe\x81\x24\xfc\x3d\x8e\xf8\x26\x87\x3e\xbb\x4e\x0b\xcf\x49\x8c\x05\x5b\xbe\x43\xb9\x2d\xba\x85\x09\x29\x24\x64\x27\x54\x7e\x80\xf2\x5c\x2d\x72\xf5\x8f\x22\xcd\xef\xfe\xbc\xef\x3b\xc9\x84\x59\x6a\x5a\xe3\x4c\xdb\x61\x20\x7c\x2f\x36\xec\x8a\x28\x76\xc2\xcf\x60\x19\xfa\x86\xcb\x8c\xf0\x03\x1f\xc3\xb9\xc7\x76\x76\x93\xd3\x54\x4c\x62\xb1\xc2\x4f\x98\x36\x0e\x9c\x89\x6d\x6f\xd4\xb4\x8b\xd4\x8c\x77\xd3\xe2\x91\xff\x5c\xde\x8a\x45\x98\xae\xa1\x54\x18\x86\x78\x78\xf8\x71\xf4\x1c\xe7\xb8\xbe\xdb\x1c\x3a\xff\x40\x44\x31\xc1\x14\xa8\x1c\xf6\x40\x58\xa6\x5f\x4a\xa7\x8a\x38\x94\x01\x19\xf9\xc4\x43\xf6\x30\xc7\x71\x3e\x3e\x24\x49\x12\x0b\x99\xfc\x2a\x14\x2a\x12\x88\xbd\x7e\x59\xfa\x55\x84\xe2\xe4\x62\x5c\x04\xb8\x1d\xe9\xa2\x3c\x12\xae\xdf\xee\xb2\x42\x24\x9e\x67\x6c\xdd\x39\xc8\x93\x90\xa1\xc4\x3c\x35\x7a\x17\x9b\xbc\x32\xaa\x46\xa3\x89\x2f\x64\xa8\xa0\x17\x7f\x3f\x0c\xf0\xc0\x33\xe5\xf5\xc0\x84\xf2\x98\x63\xe2\x4b\x28\x81\x34\x88\xcc\xd8\xfb\x52\x81\x27\xc0\x24\xf1\x8d\xa0\x77\x51\xfe\x1b\xe4\x74\xae\xcd\x7f\x69\x15\x29\xc7\xc4\x6f\x3b\xd4\x74\x31\x4b\x89\x00\x4c\x80\x82\x80\xa2\x4f\x65\x65\x22\xf5\xa3\x00\xa6\xd0\xdc\xd1\x7d\xbc\xff\xa5\x46\x4d\xcc\x5b\xa9\xb4\xb6\x27\x24\x68\x6c\x3c\x2e\xfe\xb4\xfa\xbd\x86\x75\xde\x9c\x4b\x32\x87\xc0\x21\xe7\x42\xa5\xfa\xca\x8d\x63\x35\xfb\x14\xd2\x61\x3e\x9e\xed\xee\xf9\x69\x65\x8f\x77\x85\x44\x61\xb0\xd5\xdd\xba\x17\xe5\xfb\xdc\x1d\x92\xae\x92\x18\x09\xcf\x78\x55\x1f\x3f\xd2\xfc\xf8\x61\x14\x63\x81\x49\x5f\xd2\x8e\xf2\xad\x2c\x3e\x86\xab\x8b\x0c\xb4\xc7\x0d\x97\xba\x1b\x84\x9f\xdc\x5d\xc8\x7c\xc4\x3f\x22\x55\x09\x1c\x8a\x21\xfb\xbf\xd3\x75\x72\x12\xb4\x07\xd1\xa6\x1f\x78\xdc\x32\xf4\x12\x44\xdb\x3d\xbf\x75\xbf\x44\xc4\xeb\xb9\x7b\xfe\x7d\x74\x33\x61\xac\x48\x59\xfb\x54\x0e\x4b\x1e\x62\xdb\xac\x1c\x50\x7d\x84\xf3\xbe\x28\x6d\x90\xd3\x9e\x20\x8a\x3d\xcc\xcc\xfe\xb9\xb1\xb6\xc8\xe8\xa3\xc9\x48\x3a\xc8\x95\xb6\x6b\x1d\x4d\xbb\xdd\xca\xd8\x0d\x31\xd7\xb9\xfb\x63\x74\x37\xc2\x23\x49\x08\x83\xf5\xfa\x02\x33\x23\x85\x50\x40\x8c\x66\x6f\x30\x62\x48\x19\x7d\x20\xa1\x63\xdf\x32\x36\x2d\x94\x7a\xe8\x39\x5f\x81\x49\xe9\x03\x7a\xa2\x0f\xa9\xfe\x5b\x3f\xe3\xd3\xbf\xb3\x6b\x96\x54\x9e\x6f\xa3\x98\xb8\x59\x2f\x9b\x34\x53\x37\x70\x02\xa9\x42\xaa\xb3\x12\x05\x2f\x15\x69\xb9\x99\x96\x76\xc9\x4c\x7a\x26\x36\x22\x77\x18\xed\x04\x12\x22\x17\xb7\xba\xa3\x26\x0f\xb9\x3b\x54\xb8\x48\x42\xa2\x79\x5a\xb6\x8f\xb4\x2d\x8b\x9a\x68\x4e\xbb\x1e\x32\xb1\x64\x01\x77\x3c\xcd\xae\x66\x42\x8e\xef\x0d\x80\x24\x8c\xf7\xe4\xb2\xe8\x26\xcb\xae\x76\xf1\x21\x84\xd0\xaa\x75\x42\xf3\xeb\x4d\x06\x72\x9a\x81\x31\x27\xd4\x8e\x87\xd4\x80\x1d\xa8\xd1\xe4\x6d\xbe\x4c\xe2\x4b\xed\x44\x3c\xb0\x51\x93\x7d\x5d\x94\xa0\xee\xee\x6c\x70\x54\x6a\x07\xfc\x5e\xec\xc1\xd2\xee\xde\xa4\xf4\x6c\xef\xc8\xc1\xea\x21\x8c\x15\x1f\x4a\xe8\xb2\x02\x52\x47\x2e\x26\xe4\xd6\xbb\x95\xcb\xfe\xb6\x04\x4a\x6a\xc9\x02\x39\x24\x02\xab\x76\x80\x3b\xd9\x03\x47\x0e\x62\x20\xa2\x84\xbb\x02\xaa\xbc\xfe\xce\xdf\xdb\x95\x1a\x13\xff\x3c\xb3\x6d\x55\x77\x69\x05\xae\x6b\x0b\x47\x88\x7a\x0a\x7a\xfa\xff\xf6\xa0\x15\xbf\xdc\xe6\x40\xe8\x68\xc5\x02\x2a\x49\x7a\x84\x73\x91\x96\xb0\x22\x59\x51\x73\x6e\xe5\x08\x8e\xcc\x0d\x3b\x5e\xc3\xd1\x0a\x88\x01\x53\x6e\x44\xb5\xe7\x8f\x9b\xa7\xcd\xe3\xcb\xe3\xe6\xe9\xc7\x7a\x7f\x78\x5c\x3f\x1d\x0c\x17\x5c\xd7\x2f\xa1\x2c\xfd\xfe\xb0\xd8\x1d\x36\x4f\xdf\x8e\xdb\xe7\x67\x1b\xc0\x55\x5e\x10\x60\x62\xfe\x1b\xd4\xcb\xa2\xc0\x42\x01\x5e\xf3\xf1\x28\x52\x5e\xc4\xb0\xaa\xa4\x4a\xbb\x18\x8a\xf2\x81\x5b\x30\xc7\x1e\xa6\xb9\x97\xb6\x15\xa9\xfa\xb8\x52\x77\x40\x4c\xa2\x58\xee\x6e\xec\xe8\xe1\x77\x50\x81\xdf\xa9\xe8\x6f\xf2\xae\xaf\x7d\xb5\x2a\xe0\x1a\xab\x8a\x46\x0c\x48\x8b\xcc\x62\x3b\x54\x18\x26\x2a\xb6\x05\x5b\xd5\x2d\x92\x47\x85\x2a\xf0\xac\x3a\x90\xb1\x55\xba\x93\x47\x81\xa3\x78\x87\x42\xeb\xa4\xbe\xda\x96\x48\xeb\xd0\x6a\x17\x43\xbe\x2c\x0a\x9b\xe5\xb6\x73\x41\x45\xe6\xc5\x72\xa5\xa4\x29\x81\x56\xaa\x7d\x7b\x73\xc8\x50\x73\x4c\x1c\xb9\xc2\xbe\xb6\x54\xc1\x1e\xca\xf7\x54\x76\xd1\x6c\x95\x08\x49\x34\x90\x57\x71\x2e\xba\x47\xe4\x2e\xc5\xab\x3e\x52\x75\x2b\x23\xdb\xb6\xfb\x9d\xc0\xe4\x1d\x68\xde\x64\xb5\xc5\xfd\x0d\xa2\x5e\x4a\x84\x11\x0a\x53\x15\x5a\x43\x79\xd7\x9e\x65\x34\xb5\x95\x88\x23\x2c\xab\x38\x17\x39\x5c\x31\xd8\x37\x7e\x8f\x82\x87\x4c\x0f\xde\x63\x31\x4b\x3b\xde\x76\x14\xc0\x69\x32\xf0\x72\xc0\x0b\x3b\xbe\x9a\x8c\xa9\x3a\xea\x5b\xaa\xeb\xef\xf4\x8e\xf7\x83\x41\x2f\xb5\xab\xe2\x7e\xe9\xdc\x90\x68\xd9\x0d\x45\x12\x30\xf5\xff\xe7\xec\xdd\xba\x1b\xc5\xb5\x7d\xf1\xef\x72\x9e\xfa\x61\x3d\x20\x09\x04\xfc\xdf\x1c\xc7\xa9\xf2\xaa\x24\xce\x8e\x9d\xae\xd5\x7b\x8f\x33\x3c\x74\x99\x72\x58\xc1\xe0\x05\x38\xa9\xf4\xa7\xff\x0f\xa6\x24\x6e\xc6\xe9\xde\xe7\xa5\xab\x47\x90\x31\x06\x21\xcd\xcb\xef\xa2\x99\x7d\x84\x0f\xb7\xcb\xed\xdf\xac\x80\x6a\x2d\x22\x94\x0f\xf8\xd6\x4f\x09\xf4\x73\x7b\xaa\xe0\xa1\x7c\x87\x75\x7f\x72\x21\x90\x0d\xd8\x45\x2b\xfb\x9b\x97\x3f\x9c\xef\x1d\x04\x1a\x54\xa0\x82\x01\xc9\xd7\x8a\x08\xb8\x83\x26\x22\x9d\x5c\xc3\xbe\x2c\x00\x23\xf8\x45\xa1\xd7\xc5\xbb\xc5\xa2\x8f\x2b\xa6\xda\x44\x56\xea\xeb\xde\x92\x17\x91\x51\x81\x8c\x19\xd0\xd7\x50\x3f\xe3\x5f\x65\x22\xcb\x72\xf2\x06\xb1\x2f\xcf\xeb\xf1\x9b\x66\x74\x80\x9a\x6d\xdf\xd6\x77\xbb\xce\xbe\x0f\x02\x08\x42\x9e\x38\xa9\xdd\x4d\xae\xe7\x0b\xc2\x10\x24\x44\xdb\xbd\xba\x7a\xb3\x5a\x4c\xe7\xba\x3b\x01\x50\xec\x39\x54\xbd\xb4\x80\x0b\x3e\x80\x90\x00\x67\x55\x93\x0d\x10\xdd\xe3\xf9\x0b\x84\x58\x87\xa4\x02\x3e\x7e\x2f\x3f\xd6\xfa\x2e\x17\x7f\x51\xc6\x00\x12\xa5\xcc\x62\x03\x95\xf8\x44\xdd\x12\x05\x88\xaf\xbf\x32\x9c\x1b\xb4\x52\xdf\xa1\x34\xcc\x84\xcb\x34\x19\x2a\x62\xe3\x45\x7b\xb6\xdf\x17\xcc\xff\x46\xca\x2d\xe0\xe1\x98\x15\xd9\xf1\x7c\xfc\xd9\x05\x89\x40\x53\x81\x9d\xea\xed\xfd\xc3\x7a\xb9\x99\xdc\x36\x46\xa3\xc0\xb2\xba\x6e\xc5\xe7\x36\xfb\xd5\x7c\x2e\xdb\x40\xaf\x0b\x60\x80\x85\xd0\xf9\x33\x22\x52\xda\x6a\x2f\x8b\xac\xb0\x78\x73\x68\x06\xea\xe2\xff\x98\x4b\x5e\x80\x71\x4b\xba\xc3\x10\xf2\x42\xfc\xb8\x1d\x20\x53\x7c\x76\xeb\xe3\xf1\x8c\x52\x97\x58\x0a\xe8\x1e\x1f\x93\xc2\x13\xab\xef\xcb\x1a\x6a\x3c\x3a\x3d\x85\x01\xc4\xca\xd4\x6f\xd9\x71\x71\x9f\x35\x4d\x0e\x1b\x63\x76\xaf\xb0\x2b\x27\xc5\x0b\x08\x03\x86\x75\xd2\x42\x1c\x2f\x08\x67\x7e\x48\x6c\xe5\x9e\x9e\xad\xc7\x81\xed\xe0\xb7\x9b\xde\xc6\xf9\x72\x4e\xce\x18\x33\x54\xb5\xc2\x69\xfd\xad\x6c\x37\xe0\x61\x79\x13\x42\x15\xb2\xc4\x35\x2b\x3c\xa1\x3d\xbf\x0c\x65\xc6\x27\x8d\x92\x00\x3d\xb1\x6e\xca\xf2\x2d\x2b\x0e\x4f\xe5\xf2\xeb\x28\x06\x22\x63\x8c\xd5\xf9\x41\xbe\x8d\xef\xcd\x03\x4f\x53\xe6\x00\xc6\x6e\xf9\x75\xa5\xb8\xc1\xf3\xfb\xab\x08\xb4\x5f\x3e\x81\x6b\xae\xa4\xf3\x7f\xc8\x2a\xbb\x6c\xcc\xa2\x3a\xdd\xf8\x98\xd0\x58\xf8\x32\x94\x9d\xda\x1d\x70\xab\x5f\x5e\x20\xa6\x76\xe7\x69\x97\xb2\xc5\xfd\xfd\xe6\xe7\xea\xd6\x71\x90\xbb\x29\x9e\x10\x5b\x77\x69\xcf\x64\xd9\x36\x5b\xf5\x6a\xa5\x2b\xac\x51\xc8\x6d\x37\x32\x4c\xec\xc2\xd7\xce\xb8\xce\x13\x0d\x0f\x40\x42\x86\xe6\x81\x6d\x70\x69\xeb\xc5\xb3\x89\x2e\x24\x91\x41\x40\x7f\xbb\xa0\xa0\xcb\xef\xe2\xb7\x39\x2c\x0a\x24\x09\x65\xc3\xf2\xf2\xad\xc8\xe6\x1b\x68\x90\x88\x08\x7b\xc6\x3f\x16\xf7\x6c\x98\x98\x40\x2a\x99\x47\x48\x3d\xc3\xa9\xac\x46\x52\x3c\x3d\xb4\x09\x04\xb1\xe0\xe2\x63\x9b\xc5\x8a\xea\x73\x74\x12\xc9\x02\x04\x92\x8d\x6c\xf1\xba\x68\xd5\x03\xcf\x86\xcf\x53\xf2\x00\x31\x99\xce\x78\xd3\x29\x62\x4f\x9a\xec\x20\x39\x47\xac\x8d\xeb\x16\x3f\x95\xe5\x85\x24\xc3\x34\x6e\x04\x99\x86\xf8\x83\x8e\xa2\x81\x05\x2a\x02\x5c\xcc\xb3\x99\x18\x04\xa4\xa6\x91\xad\xb8\xd5\x58\x30\x1a\xee\x5a\x20\xb5\x34\xae\x47\x89\x3f\xcd\xbd\xa1\xe5\x04\xaf\x09\x8a\x5a\x62\x88\x15\x31\xaf\x7d\xc0\xd1\xbd\x92\x3a\x4e\xb4\x57\x3c\x2a\xcf\x39\x34\x0d\x3c\x9f\xf3\x29\xe1\x16\x20\x0e\xa1\x67\xa5\x2c\x54\x73\x16\xf9\x7f\x9d\xe1\x3c\x5d\x7e\x20\xb5\xe3\x9e\xda\xe4\xaf\x19\xc0\xb5\x00\x4c\x80\xdb\xe6\xcd\x66\xf3\x63\xbd\x6a\x83\xdb\xfb\xfd\x72\xf3\xf0\xb0\xde\x6e\xd7\x9b\x6e\x8b\x33\x5a\x60\xfb\xba\x2e\x4d\xb3\x74\x7a\x07\xf5\x40\x39\x15\x02\x13\x84\x29\x96\xb7\x9d\x6c\x95\x55\xfb\x13\x39\x74\x64\x18\x13\x70\x16\x79\x52\xd9\xfa\x0a\x9e\xc8\xd0\x40\x20\x7b\x05\xfb\xb7\xf7\x7d\x57\xc2\x30\x62\x84\xf5\x0d\x6b\x5f\x18\x3b\x03\x07\xf5\x7a\x3f\x8a\x12\xb4\x6d\xa8\xce\xc5\xf6\x03\xe0\x64\x1d\x26\xfd\x41\x9e\x62\xc8\xdf\xbc\x66\xf5\x10\x2b\x63\x42\xca\x11\x21\x5e\x9c\x8f\x0f\x4b\x14\x45\xee\x9e\x84\x09\x63\xeb\x7d\xe8\xdf\x1c\xeb\xe8\x89\x1e\x2a\x73\x92\x0a\xdd\x23\x36\xa1\x20\x18\xc7\xb9\x1d\xef\xe9\x79\xb5\xbb\x5d\x0d\x29\xf6\xeb\xa2\xdf\x05\x4d\x08\x1a\x3b\x7f\x27\x51\x29\xc8\xfb\x3c\xc5\x44\x81\x14\xde\x8d\xe4\x9a\x86\x29\x04\x86\x07\xa9\xb6\x98\x88\x5a\x18\x58\xd7\x2b\x8b\x86\xee\x7f\x07\x57\x2a\xb0\x9c\x2d\xac\x88\x8f\x42\x1b\x13\x87\x0a\x59\x9f\x37\x9b\xc7\x97\xed\x7e\xb7\x7e\x58\x6d\xf7\xbf\x2f\xee\x5f\x56\xdb\xc9\xd7\xc4\x31\x41\xef\xa2\x9b\xac\x79\x3d\x1f\xe5\x57\x19\xa2\x89\x65\x88\xb1\xcb\x53\x05\xbb\x03\xac\x7e\x9d\xa0\x6a\x7c\xc9\xcb\x24\x69\x82\x94\x0e\xcc\x69\x71\xb2\xdc\x97\x75\x3d\x7c\x97\x4c\xa2\xb8\xcf\x6c\x9c\xaa\xd3\x67\xbb\xc7\x8d\xa7\x5d\xa2\x2d\x92\xb3\x3e\x95\x45\xdd\x66\xc6\x48\x77\x1b\xae\x39\x26\xa5\x04\xe9\x84\xa8\x46\x79\x3b\xb0\x5b\x1b\xd2\xf2\xae\xf9\x4c\x41\x60\x84\x09\x84\x23\xe6\x6c\xdc\x94\xee\xa6\xab\x4c\x42\x5c\x0c\x2a\x50\xf0\x0e\x7a\xd5\xbc\x8e\x78\x43\xf3\x33\x43\x41\x8a\xe9\xae\x63\xea\x7d\xbd\xd1\x1a\x1d\xa5\xd2\x4a\xcd\x5a\x5c\xab\x3e\x66\x85\xb3\xd9\xf4\x57\xa1\xb5\xf1\xa6\xb9\xe0\x54\x90\x7e\x1b\xe3\xba\xa6\xe7\x34\xd6\xae\xd5\x64\x98\x8e\x5f\xaa\x61\x43\x60\x20\x20\x26\x74\xd5\xa5\xa7\x76\x99\xea\x04\xca\xc6\xe9\x80\x81\xc0\xaa\x38\x9f\x50\x00\x1c\xdb\x38\xdd\x39\x42\x2a\x2d\xe9\x29\xab\x9b\x1a\xc3\xcc\x4d\x81\x30\xa7\x27\x91\x5d\x41\x67\x1a\x08\x05\x32\x7a\xbd\xe2\x6d\x25\x1a\x38\x7c\x2e\xdb\xff\x76\x7a\x45\x24\x9a\xfc\x22\xe0\xd6\x22\xaa\x4d\x0b\xad\x97\xc5\x74\x7f\xf3\x25\x10\x03\xa9\x42\x84\xc1\x4f\x91\x37\xce\x0a\x09\x8b\x62\xdd\xed\x34\x91\x4c\xdc\x46\xde\x46\x37\x93\x57\xc0\x44\x9a\x1a\xdf\x1e\xfd\xf5\x2c\x14\x0c\x9d\xd8\xda\x01\x22\xd0\xde\x43\x11\x2b\x5f\x7b\x43\x58\x77\x6e\x48\x50\x3b\xb4\x80\x0f\xab\xc0\xff\xa5\xd0\xd2\x2c\x4b\x12\xcf\x44\x82\x20\x8a\x10\xcb\x23\xf2\xbc\xfc\xf0\x55\xa9\xb1\xc9\x33\x90\x80\xc4\x8c\x51\x6f\xb3\xd5\xc6\x86\xda\x1f\xa1\x44\x46\x4e\x1a\xf6\xfe\xac\xde\x3e\x9f\x41\x95\x95\xee\x11\x75\x24\xa0\x49\x2a\x93\xcb\x22\xf7\xb4\xec\x37\xbc\x3d\x24\xa0\x52\x08\x39\x48\xa3\xe6\x2d\x64\xda\x81\x3a\x8d\xdc\xeb\xfd\x28\x8e\x56\xb8\xc8\x1d\x62\xdc\x20\x23\xa1\x11\xbf\xf6\xbd\x3f\x62\x77\xe5\x21\xd1\x78\x78\xbf\x6f\x5e\x2b\x8f\x3b\x27\x01\x37\x02\x37\xb9\xbc\x6c\x9a\xf2\xbe\xfc\x80\xba\x19\x12\xb6\xda\x01\xd2\xea\x29\xe0\x6d\xdc\x95\x37\xed\x4c\xfa\x6d\x74\x53\x13\xca\x98\x2d\xb5\xcd\x4a\x11\x92\x20\x49\x29\xba\x80\x2e\x6b\x5f\xec\x20\x41\xa2\xa9\xe6\x5d\x87\xc8\x7a\xcf\x5b\x58\xcc\x40\x18\x6a\x6e\xae\x93\x20\x0d\x6d\x9d\xe4\xf6\xdb\x7f\xdb\x4d\x15\xa9\xd2\xf3\x77\x36\x8d\xad\xf7\x60\x1b\x09\x61\xbe\xed\xbf\x3f\x05\x43\xc3\xc1\x2d\xdf\xa0\x24\x40\x59\xf9\x6b\xb8\xe8\x2a\x4d\x34\x99\x48\x20\xe2\x00\xa3\xdb\xfb\xf2\x60\xe5\x59\x7e\x5f\xdf\xac\xfe\x16\x61\x89\x04\x42\xa4\x98\xfe\xae\xf2\xcf\x5f\xdd\xad\x96\x3c\x0a\x64\x67\x8b\x36\xe6\xf3\x93\x40\x2a\x85\x78\x4e\xec\x71\xf7\xba\x24\x57\xf4\xcf\xff\x31\x28\x1b\x91\x40\x42\x1c\xc4\xbd\xc2\x72\x59\xea\x9b\x4f\x18\x3f\x44\x15\x4b\x84\xbe\x62\x40\x8c\xf5\x52\xff\xc5\x9a\xa6\xe0\x28\x0b\xe7\xfe\x8f\x21\xc1\xc4\x1f\x0a\xb4\x31\xb0\x16\x29\x43\xc3\x1c\x1c\xa3\x02\xdb\x33\x6e\x37\x80\xe9\x54\x06\x1a\xa3\x6b\xea\xb2\x12\x7f\x7e\xae\x44\xd5\x13\x6f\x48\x00\x91\x56\xed\x57\xee\xe5\x39\xcb\xf5\xa0\xe7\x4b\x02\xe0\x1c\x7a\x8d\xe0\x9f\x90\x3d\x79\xb8\xf7\xf8\x0e\x43\x62\x10\xb0\xa8\x4b\xa4\x45\x0e\xde\x50\x48\x23\xdc\x8e\x8d\x35\x01\x5a\xe1\x2f\xe8\xde\x13\xd0\xd6\xd1\x69\xbd\x59\xde\xa1\x51\x61\x9b\x05\xb9\x63\x86\x58\x5d\xa4\xac\xde\x95\xe7\xaa\xcd\x35\x27\x20\x63\x12\x18\x99\x22\x26\xd7\x0b\x66\xda\x3f\x93\x80\x85\xd4\x7a\x4c\x61\xfc\xf6\x3c\x6c\xf7\x11\x12\xc4\xa1\x6d\xae\x17\x59\xd3\x63\xce\x09\x09\x92\xd8\x42\x5d\x3b\x6f\x3a\x20\x84\x50\x8e\x6a\xfb\x15\x2e\x3d\xc3\x7b\x43\x48\x24\x84\x6b\xb0\xbd\xd4\x50\xf9\x6f\xf9\xaa\x0d\x49\x08\x0b\xe3\x34\xf5\xbd\xc4\x5b\x51\x62\xf4\xe7\x2a\xfb\x93\x91\x69\x02\x9e\xb6\x76\x0f\xa6\x29\xdf\x3b\xf6\x26\x21\x4c\x71\xe3\xd1\xe4\xdb\xf5\xe3\x72\xe5\x0f\x84\x21\xc3\x1f\xf7\xf2\xf3\xf1\x2b\xab\x86\xf1\x57\x45\x94\x85\xac\xdb\x1e\xc7\x8f\x96\x44\x34\xc6\xb0\x2d\xcf\x8a\x37\x18\xbb\xad\xb4\x47\x13\x86\xaf\xa5\x7d\xab\x9f\xb6\x53\x8b\x60\x20\x84\x3b\x57\x97\x03\x34\x3f\xce\xba\xac\xdb\x1f\x73\x57\x56\xbe\x57\x36\xbb\xea\x90\x38\x12\xb1\x4b\xe5\x1e\x3e\x77\x59\x9b\x13\xd4\x73\x79\x23\x21\x31\x70\x0c\xfc\x1f\xe6\xbd\x29\x86\xc5\xc1\x31\x57\xe5\xcb\x1d\xec\xab\x7f\xdc\x17\x27\x44\xc5\x56\x5b\xf0\xac\xa0\xb9\xcf\x8c\xff\xc1\x49\x0c\x5e\x69\x6b\x69\x1d\xd0\x32\x69\x35\x5b\x1e\x60\x52\x7a\x27\x24\x01\x8d\x88\x3f\x03\xa8\xb9\xa1\xb7\xa7\x2a\x6b\xa0\xbe\x47\xec\x5e\x77\x46\x23\x85\x9d\xd0\xed\xca\xe7\x2d\x92\xba\x3b\x9c\x9a\x04\x0b\x91\xae\xff\x67\x15\x37\xd6\x48\x76\x7c\xcc\x64\xde\xbf\xea\x44\x44\x22\x1c\x1a\xd2\x61\xf9\x71\x00\xad\x22\x44\x88\x88\x77\xa5\x66\xd0\x1d\x7e\xe5\xa6\x33\x2e\x98\x09\xd7\x08\x91\x81\x73\xe8\xb7\xe9\xd7\x84\x1d\x4c\xda\x8d\x5c\x98\x41\x0d\xc3\x7b\x1a\x0d\x70\x5f\x84\x68\x69\x35\x67\x8e\x96\xbb\x32\xb9\x09\xda\x24\xd8\x47\xc5\x20\xf9\xf7\xec\x84\xbd\xc7\x41\x37\x60\x14\x1f\xf7\x0b\x23\x01\x22\xb1\xb8\x0e\x28\xde\x3a\xea\xb1\x13\x02\x46\xf8\xe2\xdc\x53\x55\x1e\xaa\x29\x31\x94\x10\x13\xa6\xce\x7a\x01\xda\xa9\x5f\xa8\x4f\xff\x59\xc3\x19\x66\x72\x0f\x8b\x7f\xad\x1f\x5e\x1e\x3c\xad\xa3\x3b\x0c\x96\xc1\xfb\x2a\xea\x75\x03\xf3\x85\x4b\x42\x83\xd8\xf6\x99\xad\x56\xde\xed\xa5\x67\x4c\x3b\x26\x8d\x7d\x4f\x61\x79\xae\xaa\x5e\xe8\x9d\x50\xa2\x48\x60\x6b\x0f\x1d\x6e\x7e\x7c\x7e\x4a\xc2\x20\xf0\x37\x3e\x2b\xd0\x63\x78\x38\x8d\x29\xe5\xc4\xeb\xac\xdc\xa1\x4a\x26\x2a\x93\x8e\x2f\x80\x2a\x4b\xfc\xc7\x54\xe8\xfe\xa6\x8d\x00\xf6\xdf\x56\x8f\xab\xe7\x45\x07\x2e\x27\x94\x1a\x82\x65\x90\x6f\x65\xae\xa1\xf0\xfa\xc3\x83\x3c\x87\x50\x46\x2c\xb7\xc1\xbb\xb4\xcf\x42\x72\x09\x0d\x13\x8d\x69\xf8\xed\x1f\xf7\xcb\xfd\xa0\xd9\xe7\x0f\x03\xc3\x1e\x8a\xd0\x7a\x8f\xa1\x25\xe8\xaf\xb0\x29\x84\x86\x26\xc1\x45\xb7\x29\xb1\xea\xe2\xfe\x1a\x51\x99\x4a\x97\x3d\xec\x45\x51\x16\x9f\xc7\xf2\x5c\xef\x47\x7e\x27\xf3\xcf\x2c\x0a\x8d\x14\xfe\x1d\xb1\x1a\x89\xe3\x2f\x8c\xa2\x80\x98\x4e\x82\x70\xe0\x12\x3e\x7d\x3a\x91\x49\x30\x8e\x17\xa5\xea\x71\xe4\x84\x72\x1e\x84\xae\xdb\xb8\x13\x6f\xd0\xb1\x53\xef\x3a\xe0\xec\xf4\x44\x1c\x24\xd6\x36\x2a\xa7\x27\xbc\x2c\x35\x0c\xc9\xce\xe3\xeb\x8b\x03\x89\x68\x51\x71\x25\x04\x74\xc3\x12\x42\x13\xd7\x58\x73\xe7\x79\x59\x17\x8d\xd7\xcd\x9d\x0d\x01\x69\x12\xa6\xd2\xe9\xb6\x3c\x64\x05\x7c\x83\x02\xea\xcc\xaf\x54\x34\x89\x23\xef\x91\x33\xe4\xa1\x4c\xcf\x61\x02\xcd\xbd\xd8\xc3\x01\xeb\x2c\x3d\xb9\x82\xd0\x94\x46\xc2\x35\xc6\x5f\x8a\xf2\xa3\x00\xfd\x98\xa9\x37\x2c\x46\xcf\xb4\x4d\x08\x4d\x99\x15\xeb\x31\xe8\x1f\xde\x2d\x3f\xdd\xe2\x44\x53\x95\xa2\x09\x5c\x51\x36\xa2\xfa\x6c\x13\xaa\x41\x8e\x41\x53\x13\x23\x7d\xa1\x4d\x01\xbc\x2b\x24\xe8\xd9\xba\x37\xa1\x82\x49\x4c\x27\x33\x55\x5e\x02\xd2\xfc\x98\x24\xc5\xda\xf8\x52\xea\xff\x1d\xb2\x9f\x50\x29\x34\x26\x86\x4f\xce\x5a\x71\xea\xec\xdc\x0e\x51\x9a\xdb\x88\x05\x1b\xf7\xed\x55\xf7\x87\x00\xf9\x8a\x27\xa8\xda\x8f\xad\xfe\x73\xbe\x7c\xf4\x93\xda\x02\xa1\x4a\x4a\xac\xcb\x6e\xd7\xdf\x1e\x17\xf7\xfb\xdb\xd5\xfd\xe2\x8f\xdf\xfa\x63\x29\x0c\xb4\xc9\x34\x54\xd6\x2a\xb2\x5d\x7e\xdd\x99\x3a\x41\x76\x42\x93\x8b\xff\xc3\x83\xa3\xaf\x03\x4d\xf0\xeb\x5c\x91\x6e\xb8\x37\x51\x80\x04\xbb\x1c\xb8\x0c\xd9\x22\xcb\xb3\x78\xeb\x9f\xa3\x61\x82\x93\x09\xa6\x6a\x8c\x2c\xf3\x03\x79\x8c\x9d\xce\x5b\x2c\x90\x56\x7f\x0e\xa5\x9d\x09\x0b\xc2\xd0\xf4\xc8\xca\x55\xf3\xba\x6f\xca\xfd\xb9\x1e\xb7\xc0\x09\x0b\x38\xf5\x7e\x34\xeb\xe2\xbd\xcc\x86\x5e\x53\xdd\x46\xe4\xc6\x12\xa6\x8d\x5b\xb2\x1c\xc2\x00\x17\xe2\xf1\x09\x69\x18\x49\x32\x91\x57\xb9\x69\x17\xb8\xa6\x1e\x87\xcd\x8c\x46\x04\x4b\xa2\x68\xf8\x88\x48\xcd\x51\x6b\xec\x82\x63\xdb\x6d\x86\x8c\x6a\x19\x76\xbe\xdf\x7d\xf3\x98\x30\x46\x85\xa3\x83\xf4\x5d\xa9\xdf\x66\xc2\x1e\xc6\x92\x00\x73\xd8\xd5\x71\x99\x8b\xba\xce\x54\x77\x06\xa1\x31\x5b\x87\x5f\x0d\x14\x1a\xc5\xa1\xc6\xbf\x2f\x8c\x24\xee\x55\xdb\x87\xc5\xf3\xee\x5b\x27\xb8\x45\x58\xa8\x52\x63\x6d\x52\xce\x8d\x2e\x3f\x0a\xe7\x8a\x30\xfb\x86\xb1\x10\x18\xb3\x2b\x1d\x82\x6d\xdc\x5f\x23\xa2\x50\xf7\xea\x24\x3e\xf7\x83\x95\x94\xc5\x01\xc3\x62\x6d\xbb\xc8\xdf\x97\x87\xbb\x2c\xbf\x9a\xef\xfe\x25\xa0\xf0\xcb\x24\x93\xc5\x81\x25\x97\x3d\xaf\xb6\xab\xfb\xfb\xf5\xe3\xb7\xfd\xfd\x66\xf9\x63\xff\xf2\xd4\xc6\x05\xeb\xcd\x6d\x77\x45\x5c\x63\x2c\x67\xdf\x19\x2c\x1b\x2e\x54\xbb\x73\x7f\x43\xd3\xb9\xc9\x3d\x8b\x95\xb6\x66\xea\x5d\x11\x12\x29\x11\x0e\x6f\xe2\x06\x25\x60\xa4\xdb\x2e\xd0\x09\x7c\x6b\x81\xdf\xfd\x53\x4f\xc1\xb2\x43\xad\xf3\xbe\x82\x45\x31\xb0\xa7\x20\x4c\xc4\x31\x62\x7e\x2c\x2a\xa6\x39\x57\xdd\xed\x13\x52\x84\x89\x3b\x72\x33\xf8\xbb\xd4\x81\xeb\xce\xe6\x4b\x51\xbf\x66\x57\x78\xcc\x84\x69\x11\x20\x96\xfb\xfb\xe2\xf9\x9f\xf6\x25\xbb\xba\xb8\x31\xad\x68\xe2\xfb\xe9\xd8\x14\xf3\x25\x23\xbf\x7d\x30\xa0\xa0\xac\x76\xdd\xfb\x1e\xf9\x88\xbd\x5d\xcd\xe4\x69\x80\x22\x58\x2f\xc7\xb6\x96\x77\x9b\x9a\x0c\x31\x32\xee\xba\x45\x06\xda\x68\x05\x2e\xf4\x17\x09\x33\xc2\x68\xd9\xb5\xc5\xdb\x18\xaa\xbb\x1c\x03\x29\xb6\x65\x9f\x57\x8b\x7b\xa4\x74\x5b\x40\xe4\xc3\x20\x28\x9d\x2f\xaa\x84\x41\x28\xbd\x5d\xc4\x23\x7c\x78\x44\xd4\x5f\x4c\x40\xf7\x59\x92\x46\xa8\x4d\x83\x53\x3a\xfb\xcf\x39\xf3\xef\x51\x48\x89\x08\xfd\x64\x5f\x17\x8d\x63\xee\x4e\x72\x9f\xe1\x2d\x0f\x69\xca\x3d\x8c\x07\x57\x4c\x8f\x2e\x9c\xcd\x8c\x06\xc9\x6f\xc8\x62\x89\x61\x65\x47\x9b\x75\xfd\x44\xfb\xea\xa2\xae\xad\x25\xd1\xfa\x6d\x85\x38\xd9\x72\x12\x32\xc9\x44\x2f\xab\xf0\x08\x1f\xce\x55\xe1\xeb\x3b\x16\x86\x31\xb5\x92\x02\xa3\xfe\xf0\xec\xaf\x8a\xa9\x46\x69\x9f\xcc\x79\x22\x4f\x00\xe6\x7e\x54\x6a\xeb\xb1\x47\x38\x94\xe3\x94\x35\x8c\x53\xb0\xbb\x78\xdd\xc9\xab\xc2\x18\xe9\x4f\xc2\x84\x12\xfc\x92\xfa\xb5\xfc\x58\x7a\xa3\xeb\xae\xc9\x48\xc2\x84\x83\x48\xfa\x8c\x07\xdc\x72\xd8\x7f\x3e\x25\x88\x58\x50\xd8\xad\xa9\xfb\x1d\x3c\x4c\xa4\xad\x12\x0a\x64\xf6\x2e\xf3\x0c\x8a\x66\x6d\x1e\xcb\x66\x4a\xf5\xf5\xe3\x0d\xd0\x64\xca\xc7\xaf\xad\xbb\x04\xd6\xcd\xbf\xea\x02\x91\x30\xe5\x1a\xdf\x7e\xf4\xf2\x7a\x5c\x3c\x4c\x3a\x2a\x24\x4c\x8d\xc4\x77\x69\xfb\x2a\x4e\x50\xbf\x66\xa6\xb9\x29\x9b\x6d\x99\x8f\x13\x89\x50\x90\xd0\xcf\x25\xa7\xda\x74\x05\xa8\xec\xc7\x2b\x15\x84\x9d\x5a\xd0\x7d\x29\x8a\x61\xdf\x84\x84\x92\x32\xd4\xd2\x5b\xad\x87\xf4\x36\x12\xca\x38\x42\x71\x89\xba\x11\x07\xd8\xb3\xfd\xa9\x57\xd3\x23\xa1\x4c\x2d\x85\xec\x1e\xde\x21\x1f\x7d\x4c\x85\x1c\x49\x79\x0e\x21\xfb\x20\x06\xe2\x72\x24\x54\x11\x10\xd7\xe2\x57\xd6\x76\xe8\x42\x16\x85\x84\x4a\x10\x04\x0b\x95\xae\xc6\xb5\x14\x79\x2e\x85\x7a\xfb\x26\xea\x81\xde\x0f\x09\xb5\x49\x30\x5f\xab\xcf\xb2\xcd\x0f\x9a\x55\x73\x61\x42\xeb\x46\x02\x91\xe8\xea\xb6\x3f\xb8\xc2\xa8\xbd\x05\x6d\x6a\x8b\x6b\xd2\xa4\xe1\x9b\xf8\x8f\x45\x0a\x8b\x06\x37\x28\x41\xee\xbf\x16\x74\x10\x46\x97\x39\xf6\x84\x12\x4f\x42\xc3\x13\x87\xf3\x2a\x74\x87\xb3\x23\x11\x31\x92\x53\xe4\xfd\xe3\xce\xf4\x00\x8d\xd0\x03\xa8\xe0\xe8\x15\x8b\x58\x64\x97\xbe\x3b\x91\x55\x9f\x77\xa2\x3a\x76\x35\xec\x88\x25\x12\xeb\xf9\x07\x51\x3f\x89\x4f\xd9\x91\x4a\x49\xc4\x52\xcb\x11\xc0\xe2\xd7\xbc\xab\x83\x1f\x29\x63\x0c\x91\x51\x5f\xf3\xce\xdd\xe6\xd1\x3d\x0c\x93\xe1\x7a\x14\x85\x24\x4e\xdd\xe4\xdb\x95\x8e\xb8\x30\x9a\x9e\x51\x48\x6c\x86\xd4\xbe\x89\xb7\x99\x50\x55\xd6\x28\xff\xc2\xb7\x07\x95\xa3\x18\xef\x34\xa0\x9c\xca\xe4\xe1\x47\xa1\x26\xf8\xf9\x57\xc8\xf5\x58\xde\x72\xfc\x4c\xa3\x28\x4d\xbd\x54\xdd\x5d\x05\xb0\xac\xca\xfe\x7b\x22\xc9\x11\x30\xbe\x2c\x8b\xf7\x02\xaa\x66\x57\x6e\x41\x55\x8e\xad\x31\xde\x0e\x23\x4e\x12\x69\xd5\x39\xcf\xa3\xbe\xaa\xcc\x01\xed\x15\x43\x7f\x52\x1e\x5b\xdb\xe8\xb7\x5a\xdd\x8c\xed\xec\xac\x82\xe9\x57\x94\xf9\xe9\x1e\xf3\x3f\xff\x77\x72\x11\x89\x25\x99\x0e\x42\xee\x4d\x8f\xc3\xee\x2a\x51\xed\xc5\x95\x67\x27\xe4\xe9\x3f\x9a\x5a\x09\x93\x1e\x7e\xbb\x45\x33\x58\x07\xc2\x6d\x7f\xc7\x63\xe9\xc4\xb2\xdd\x47\xe2\x90\x63\x95\x68\xf7\xcf\xe5\xcb\xdf\x4c\x89\xa2\x38\x21\x88\x53\xe8\xbb\x30\xcb\xcd\xc3\xfa\xc7\xca\x02\xe0\xae\x64\x35\x51\x12\x0b\xec\xd5\x1f\xc5\xaf\xbb\xac\x28\xe0\xf3\x09\xb0\xae\x72\x0f\x75\xbd\x7b\x15\x7e\xd5\x88\x12\x41\x71\x22\x42\xd3\xdd\xd6\xa6\x5c\x2c\x97\xe3\x25\x32\x4a\x03\x70\xd8\xb9\xcc\x6a\x5c\x78\x8d\x46\x7f\x1e\xc1\xac\xa8\xc6\x5b\x96\xe7\x8b\x42\x3f\x5b\x6f\x02\x77\x50\x49\xeb\x09\xbc\x3f\x5d\x97\x46\x9a\x0f\x06\x22\x1d\x58\x52\x16\xda\x62\xbf\x14\x73\xfb\x43\x04\xa9\x46\xbd\x1b\x6d\x6b\x15\x7f\x09\xbe\x23\x91\x61\xd6\x66\x78\x3b\x28\xb9\xff\x63\x8c\x50\xb3\x23\x79\xc0\x03\x44\xb5\x60\x34\xb6\x84\x6a\x22\x73\xe8\x47\x09\xa2\x6d\xc8\x52\x08\xab\x90\xf2\x9b\x3f\x02\x04\x83\x19\xe7\xac\xec\xaa\xcb\xc3\x48\xd1\x0d\x24\x8a\x49\xd3\x29\x49\x39\xee\xf0\xf8\x29\x70\x4a\xa4\xdf\x51\x6e\x45\x03\x4f\x65\x3d\x15\xae\x22\x9c\xf1\x34\x11\x83\x4e\xd4\x5d\x59\x0d\xec\x13\x27\x63\x93\xc8\xd8\x28\xb7\x6e\xaa\xf2\xd3\xbd\xf5\xb3\x85\x7d\xce\x64\xec\x4c\x45\x9b\x26\x87\x1b\x98\x10\x2f\xfd\xbf\x7e\xfb\xe7\x61\x68\x9d\xb8\x3a\x35\x40\x54\x36\xdb\x95\x18\xbb\x7f\xeb\x93\x76\x1e\x0a\x15\x05\x4e\xf1\xcd\x93\x88\xdd\xa1\x28\x34\x48\x8e\xa9\x10\xbb\x35\x7d\x59\xdc\x20\x4e\xc0\xe3\x7d\x6c\x88\x77\xd1\x69\x1b\x5d\x17\x27\xc6\xa0\x2a\xb7\x68\xa6\x4b\x20\xe7\x54\x20\xbc\xb4\x16\xef\xf0\x50\x1f\x6e\x3e\x5f\xea\xf9\x24\x91\x73\x19\x63\xe7\x17\x31\xdd\x0f\xd0\xbc\x96\x7e\xb2\x73\x2e\x01\xb1\xcc\x37\xeb\xc7\x21\x2d\x96\xf0\x38\x8c\x92\xc4\x57\x7d\x2c\xba\xb5\xbf\xd9\x7d\x32\xc3\xe3\x28\xa4\x3d\x02\xed\xae\xde\xfd\x70\x74\xc4\x66\xd2\x42\xe1\xb1\x96\x28\xf5\x06\x0e\xec\x30\x14\x19\x20\x3c\x11\x16\x73\xe8\x14\xfb\xf5\xa2\x02\x31\x39\x41\x22\x00\x27\xcb\x3e\xab\x9f\xaa\x9e\xdc\x4b\x78\xa2\xac\x6a\xcc\x3b\xba\x57\xbb\x3f\xca\x94\x3a\xd9\xfa\x3c\xbf\x41\xdd\xd4\x99\xab\x97\xc2\x7a\x66\x39\xf9\xd9\x76\xd6\x11\xe7\xd1\xd2\x9d\x47\xb3\x0e\x42\x2e\xa6\x88\x2a\xc2\x55\xac\x11\xcc\x60\xdf\xf5\xc5\xd8\x43\xf9\x6f\x27\xb1\x23\xd5\xf4\xfe\xcc\x69\x32\x06\x1a\x8e\x83\x5e\xae\x92\xc0\x4b\x71\x74\xc2\x00\xb3\x4b\x08\x57\x89\xc6\x4e\x36\xfa\x6b\x7f\x3a\x38\xea\xe0\x3e\xa8\x94\x21\xda\x76\xfb\x21\xaa\xcb\x39\x39\x3e\x97\x96\xd6\xca\xd8\xb9\xbd\x65\xea\x8b\xe2\x2c\xd7\x4e\x6a\xeb\xd0\x11\xa6\xb7\x6d\xa6\x70\xbe\xc2\xd7\x27\x1c\x68\x12\xba\xdf\xe4\xc5\x84\x3c\x07\x28\xf1\x43\x52\x16\x06\x9d\x5e\x4b\xfb\xd9\x45\x55\x89\x4f\xdb\xae\x9c\xad\x61\xb7\x1f\x41\xdb\xaf\xdb\x17\x16\xfc\x45\xe2\xcb\x0d\xb3\xc2\xd8\x07\x68\xbe\x8b\x4a\x96\xd5\xfd\xb0\x70\xe8\xdc\x4e\x89\x3f\xb3\x89\x0c\xa6\x07\xb7\x20\x9a\xd7\x3b\xac\x69\xee\xb3\x77\x3f\x79\x8c\xa4\x26\xed\x1a\x96\xbd\x40\xcc\xd7\x2b\x3e\x37\x60\x31\x64\x4b\x91\xab\x3e\x09\xb6\x07\xe3\x80\x45\xd4\x65\xab\x98\xd4\x3d\x94\x15\xb4\x9b\xe4\xa6\x80\xd5\xee\xfb\xe0\xa9\xc6\x81\xd6\x08\xf3\x79\x70\x0e\xe0\x03\x95\x04\x37\x82\x46\x2a\xb5\xc8\x22\x14\xf0\xc4\xb4\xd9\xbf\x41\x31\xe5\xd6\x2b\xed\x74\xae\x3b\xc1\x76\x87\xa9\xfa\x52\x5a\x82\xc4\x34\x4e\x02\x0b\xb2\xca\xb3\xe6\xa9\x6c\xba\x33\xc6\x06\x5f\x37\x0f\xe0\xbf\x05\x04\x1f\x0d\xcb\x1f\x31\x15\x51\xdc\x57\x31\xbf\x41\xe1\xec\x0a\xb6\x4d\x79\xba\x30\xb3\x48\xfc\x87\xb4\x40\xfd\x29\x68\x5e\x37\x3a\x2b\x06\x8e\x87\x24\x66\x32\xd0\x56\x49\xc3\xa6\x5f\x5d\x8c\x1d\x87\x9c\x29\xda\xad\x5d\xf9\x29\x9a\xdc\x9d\xd0\x10\x6c\x47\x3d\x88\xe2\x2c\xf2\x07\x2f\x9f\x37\x19\x15\xc5\x02\xab\x2f\xbb\xf5\xc3\x6a\xf3\xb2\xbb\xb9\xdf\x2c\x7f\x6c\xfd\x57\x44\x89\x44\x62\x45\x21\x9a\xec\x7d\x54\xd8\x8c\x23\x95\x70\xd1\x55\x2c\xb3\x06\x8d\xe8\xfc\x41\x1e\x05\xb1\x03\xdb\x3c\x89\xe6\x75\xbc\x15\xc6\x3c\xb1\xf6\x9c\x5b\x8c\xdb\x7a\x7d\x2c\x7f\x3b\x62\x1a\x72\xf0\x10\xe9\x5c\x7c\x4e\x3e\x1e\x47\x11\x1a\x19\xfd\x59\xfd\xea\x21\x37\x7d\x1b\x39\x8e\xa3\x98\x39\x35\xa1\xef\x18\xc2\xfa\xdb\xce\xc3\xc9\x83\x8e\x79\x88\x40\x86\x76\xc4\x16\x89\xf5\xfe\x80\x24\x89\x6d\x82\x16\xcb\xb2\xac\x74\x56\x88\xc6\x3b\xe7\x75\x43\x2c\x30\xe3\x77\x91\x6b\xc8\x45\xff\x67\xdb\x08\xf2\xa9\x3e\x12\x15\x87\x2f\x68\x9c\xd2\x04\x1b\x3e\x37\x9b\x9b\x0d\xb2\x44\xfc\x47\x05\xb3\x40\xad\x13\xe2\x96\xbc\x9a\x1b\x89\x45\x94\x20\xa7\xe9\xb3\x2c\xa5\x40\xd1\xa3\x51\x81\x21\x16\xb1\x95\xaf\xc1\x1c\x96\x0d\x65\x31\x48\x2c\x69\x24\x3c\x7a\xcb\xe5\x60\xb3\x5d\x9c\x58\x32\xe7\xe4\x6d\x13\xd6\x4b\x5e\x40\x3b\x24\x02\x6b\x51\xd6\xbe\x91\xd3\x83\x26\x41\xf0\x85\x2d\xfb\x7d\x88\x4a\xdf\xdc\x8c\xd7\xfb\x58\xc9\x38\x8e\x3b\x27\xb4\x67\x68\x3e\x00\xa6\xa7\x01\x42\xd1\x50\x08\xe3\xfc\x2e\xf5\x78\x46\xf9\xb2\x7e\x67\xee\x06\x5b\x25\xd7\x2d\x34\xe7\xd3\xcf\x9f\xcb\xbf\x00\x97\x4d\x71\x36\xb3\xfb\x43\x0c\xb1\xa0\x81\x8f\xe9\x90\x80\x88\x5d\x81\xf1\x20\xa3\x62\x0c\x0e\x95\x28\x1e\xd0\x3d\xe0\x5c\xe8\x99\xee\x4c\x6c\x80\xfb\x86\xac\x33\x20\x76\x30\xcc\xee\xb8\xc2\x60\xfd\xa5\xb8\x56\x1a\x4a\x82\x84\xa4\xee\x65\xb8\x39\x7f\xee\xa6\xf6\x62\x24\x09\xd2\x14\x89\x8c\xe0\x9c\x12\x06\x85\xf8\x24\xd0\x52\xda\x47\xb6\x12\x55\xfe\x79\x93\x55\xb3\x96\xf0\xed\x48\xa0\xc8\x5b\x5f\x14\x05\xfc\x82\xfd\xf2\x69\xbb\xe7\xfe\x2c\x14\x2c\x67\xc0\x88\xda\xbe\x51\x59\x71\x18\xd8\x0e\x90\x84\x1a\x8b\xe6\x6d\x9c\xf4\x53\xf1\xe6\x04\x2c\xfd\x1c\x4d\x42\x95\xca\x4e\x0e\xde\x3f\xc0\x24\x22\x32\x71\xcb\xc4\x83\xf8\x95\x1d\xcf\x47\x54\x8c\x59\x17\xab\x73\x55\x2e\xb1\x33\xe9\x47\xa6\x04\x8b\xce\xca\xf7\x32\x86\x45\x89\xff\x3a\x97\x8d\xe8\x46\x8a\x24\x0d\x86\xf4\x37\x9b\x1e\x4d\xe6\x7b\x12\x49\x8a\xdb\x24\x1c\x4f\x8d\xdb\x7b\xc7\xc0\x49\x92\x70\x26\x91\x33\x8b\x91\x42\xed\x4d\x31\x1f\x66\x51\x02\xe3\x49\x94\xb4\x3b\x67\xec\x3b\x23\x2a\x6b\xb2\x3f\xa1\xd0\xae\x1d\xff\x37\x90\x22\xee\x2c\x71\x92\xa2\x82\x42\x56\xdf\x82\x9f\x1f\xed\x8a\x39\xf9\x29\xb1\x88\x30\xa8\xcf\xcb\xc3\x52\xe4\x17\xa8\x7e\x3f\x0a\x04\x92\xee\x85\xd6\xb8\xe5\x4e\xf7\x22\x1f\x12\x24\x09\x0b\xd1\x78\xae\x13\xf0\x43\xe8\xf8\xb9\x17\x3c\x21\x49\xaa\xa5\x20\x2e\x38\xb5\xf5\x8d\x71\x3a\xe3\x86\x89\x94\x78\x49\xd8\xfb\x52\xbd\x3d\x55\xa5\x3e\xab\x69\xb7\x39\x11\x86\x22\xec\xf2\xe9\xfb\xd3\x9c\x0f\xf7\xe8\x8e\x48\x12\x5b\xbf\xbd\x73\xf1\xb7\x79\xdb\xfe\xa3\xb1\x15\xda\xaa\x6c\x32\xdd\x17\x57\x13\x15\x51\x4c\xdf\x1b\x4f\xf7\x2a\x73\xbf\xf4\x3c\x96\xcd\x50\x7d\xa1\xfb\x44\xa2\x30\x2e\xc2\x6e\xf2\x00\xd7\x4e\x12\xcd\x12\x05\x43\x55\xc6\xc7\x01\xad\xc9\x8f\x51\x81\x71\x51\xbb\x6a\xe3\x1a\x87\xf8\x1d\xaf\xea\x09\xb0\x50\x47\xbe\x87\xf6\x59\x9e\x9b\x29\x97\x9c\x24\xa0\x23\xec\x12\xf5\x5e\x70\x3b\xf1\x6b\x32\xc6\x10\x86\xfc\x96\x1d\xd4\xcd\x75\xaa\xf3\x65\x1c\x99\x18\x99\x78\x59\xa4\xbb\xec\xd7\xa5\x88\x25\x49\x0c\xc4\x48\x89\x5a\x64\x6e\x55\xb3\xeb\xe5\x40\xea\x81\xa4\x01\xe5\x88\x11\x2a\xe0\x63\x29\x8e\x27\x91\x1d\x0a\x27\x3c\x32\x3e\x59\x1a\xa4\x96\x29\x83\x24\xcb\xe3\x09\x1a\x6c\x6d\x3e\x43\x7d\xce\xdd\x8c\x61\x74\x90\xfa\xa4\x81\xb6\x7a\x9f\x9d\x4a\xdf\xb2\x12\xd2\x7f\x2b\x21\x1a\x77\xc4\x87\xd5\x6e\x71\xbb\xd8\x2d\xf6\x2f\xcf\xf7\xdd\x31\xc6\xb1\xdc\x79\xae\x64\xe6\xb0\xab\xa3\x1b\x9f\x92\x28\x44\x49\xeb\x45\x91\x1d\x41\x89\x4a\x2f\x7b\x44\x65\x4a\x55\x88\xd0\xa4\xcc\x69\x22\xec\x47\xc5\x97\x94\x25\x12\x6f\x9a\x2f\xea\x6e\xad\xb4\x70\x57\x94\x4a\x99\x8c\x59\x67\x6d\x58\xdf\xa2\xd4\x43\xf7\xe9\x30\x81\xd0\x89\xf9\xa1\xc7\x49\x67\x9d\xd1\x0d\x00\xe6\x5b\x6f\x77\xe2\x08\x48\xf8\xbc\xf9\xc4\x29\x36\x7c\x76\x69\xe4\xf2\x21\x25\xea\xd7\x01\x08\xef\x2f\x9b\x93\x8e\x8d\xd4\x47\xeb\x69\xa4\x83\x94\xfb\xeb\x75\x1d\x80\xee\x7a\x23\x43\x2d\x28\xa9\xfc\x78\x10\xc5\xe7\x1d\x74\xc1\x77\x9a\x04\x56\x30\xc4\xee\x5a\x4e\x0a\x6f\x36\xf2\x48\x53\x19\x43\xe8\x37\x01\x24\x49\x8d\x1e\x47\xaa\x12\x6c\x7d\x6c\x85\xc9\xaa\xa1\x68\x0f\x49\x45\x2c\xad\xd9\x4e\x53\x9e\xfa\xf0\xd6\x1f\x94\x31\x8f\xc7\xda\x8b\xaa\x19\x4f\x4e\xa1\x04\x42\x79\xdb\x1d\xde\x67\x08\xd3\xab\x93\x32\x45\x44\x13\x36\x06\xd6\xb6\x07\x94\x15\x87\xe7\xf6\xbb\xfc\x79\xa4\x4a\xb0\x6e\x25\xcb\xe2\x5c\xc3\x08\x86\xd6\x1e\xc3\x47\x91\x15\x59\xe3\xfc\xf2\xd7\xaa\xfc\xdf\xad\x5d\xa9\x66\xdc\xf4\x0a\x40\x63\xdd\xd4\xf1\xe5\xb6\x8b\xbc\xd5\xbd\x2f\xd5\x9b\x2d\x07\x4d\x7e\x90\x21\x0a\x17\x04\xab\x90\xeb\x8b\xae\xfa\x6b\x98\x7b\x6a\x64\x8a\x9b\xc2\x03\x14\x8d\xc8\xbf\x83\xc8\x9b\xd7\xfb\xcc\xc0\x0c\x7e\x37\x35\x9a\x29\xd4\x6e\x85\x06\xaa\x63\x56\x74\x5f\xe2\xee\x89\x08\xa2\x20\x71\x35\x89\xf5\xf1\x24\x54\xf3\x52\x1c\xdb\xb0\x02\xb4\x25\xc4\x0c\xe7\xb2\x08\x22\x16\xf6\x7e\x74\x5b\xa1\x75\x0e\x17\x12\x2a\xff\xcf\xff\x8e\xee\x8d\x20\x4a\xe3\xab\xaf\xaa\xf2\x43\xb7\xef\xf5\xaa\xd0\x03\xb0\x90\xa0\xb1\xd0\x96\xcd\x00\xba\xc6\xb5\xa3\x47\x77\xf9\x21\x89\x75\xd8\x3b\xda\xa4\x75\xc4\x41\x10\x34\x15\xcc\x45\xe3\xbf\x7b\x2f\xfa\x2f\xd1\x66\x82\xaa\x10\x4b\x9a\xed\xe3\xf4\x8b\xec\x1b\x14\xed\xeb\x36\x8d\x57\x04\x4b\x28\x32\x58\xfe\x7b\xf7\xfd\x2b\xb8\xee\x20\xd3\x12\x0c\xa2\xc8\x39\xc9\xcf\x02\x62\x45\x18\xc6\xa1\x43\x72\x6c\x4e\x56\x69\x61\xf4\xb0\x45\xc4\xad\xfb\x8f\xf2\xd2\x6d\xa8\x30\x39\xa6\x19\x88\x28\xe6\x84\xf4\xab\x08\x6e\xc0\x55\x3d\x6a\x61\x8a\x28\x11\x18\xf9\x9b\xbc\xfc\x70\x36\xd7\x7d\x4e\x27\x38\x53\xb8\xb0\x62\x33\xf8\xa1\x2b\x6f\x09\x1e\x2b\xed\x6d\x32\xaa\x4c\xdb\xf9\x38\x96\x12\x1a\xcf\x64\xc1\x53\xdb\xcf\xcd\xe1\x1d\xf2\x3d\xd9\x8b\x61\x9f\x50\x70\xad\x95\x0d\x98\x11\x34\x30\xb2\x88\xed\x86\x58\xb9\xde\xbb\xfb\xf5\xb7\xef\xbb\xfd\xe3\xcb\xc3\x4d\xd7\x36\x13\x1c\x38\x86\x6c\xbb\x4a\x68\xdc\xdb\x45\x35\xd9\xe9\x04\x37\x56\xce\x17\x95\x15\xae\xbd\x76\x97\x4b\x73\xb7\xf5\x89\x38\xb6\xc6\x97\x07\x68\x56\xbf\xa0\x52\x59\x0d\x56\x65\xe9\x16\x84\xee\xd5\xba\x89\x48\x84\x49\x44\x2f\x70\x0f\xd5\x53\x95\xfd\x39\xd9\xc5\x45\x4a\x82\xd4\x2b\x4c\x82\xe3\xc6\x4f\x87\x08\x8a\x58\x22\x28\x34\x42\x20\xe6\x23\x4c\x91\x9a\x14\x7b\x4c\x7b\x79\xfe\x6c\x03\xd1\x5d\xb9\xcc\xcb\xfa\xaf\xe3\xb4\xf1\x8c\x13\x24\xc0\xba\xe1\xb7\xb3\xa8\xb4\x70\xa4\xdb\x71\x77\x58\x08\x22\x95\xea\x20\x91\xd3\x9f\x2d\x78\x80\xb6\x5d\x3d\x21\xe9\x9d\x75\xc7\x62\xb0\xe2\xbe\x1e\x2f\x80\x55\xe7\x91\x60\xc2\xe4\x7a\x64\x94\x70\x67\xed\x94\x8b\x0a\x6c\x7d\x1f\x0d\xce\xda\xd7\x3b\x17\x57\x4a\x87\x42\x72\x6b\x65\xbe\x78\x1c\x9a\x74\x12\x21\x63\x85\x74\xa9\x4d\x01\xcd\xef\x8f\xdd\x5f\x9d\xe5\x49\x01\x1f\x9d\xee\xc9\x98\xd2\xe6\x07\x1a\x2b\x41\xfe\xad\x8b\x2c\xa6\x3d\x9e\xd9\x8d\x41\xa8\x30\xc1\xf2\x7e\x2d\x72\x68\x43\xd9\x51\xf9\x5a\x28\xc1\x11\x52\xf6\x9f\x73\xa6\xde\xb6\x65\x35\x2f\xc1\x44\x84\x26\x04\xdb\xba\xcd\xd4\xcf\x76\x66\x9a\xea\x98\xa7\x1d\x08\xec\x33\x2f\xc5\xb8\x87\x2a\x74\x12\x62\x6e\xfc\x0d\x03\xcc\xf9\x99\xa7\xb5\x41\x30\xba\xd3\xc5\xb3\x35\x30\x61\xd7\xa1\xf1\xef\x83\x94\x48\xe6\xe2\xdc\xb1\xfb\xd9\xfc\x2f\x31\x01\xc1\x32\xa4\xa8\xeb\x52\xd9\x95\x78\xda\xdb\x16\x26\xb5\xe2\x41\x8e\x7b\x03\x85\x03\x44\x87\xc1\xf4\x64\x32\x40\xf5\x3f\xab\xd0\xed\x28\x7b\xee\xa0\x0c\x74\xe8\x01\x55\x03\xd7\x85\x7a\x61\xc1\xc6\x83\x82\xa7\xa4\x31\x60\x93\x73\xb9\xf1\xbd\x01\xc9\x0c\x43\xad\x82\x73\xa1\x4b\xef\xbd\x3c\xba\x48\x19\x06\x02\xfd\x44\xb3\x93\xa9\xc7\x91\xac\x0c\x49\x84\x71\xc9\xfd\xfa\xf7\xd5\x70\x0e\xca\xd0\x89\x06\x7c\xdf\xec\x96\xcf\x7f\x3c\xed\xba\xaf\x8b\x28\x47\x6d\x87\xa7\x73\x73\x57\x56\x5f\xf2\x3a\x89\x8c\x58\x80\x9a\x89\x47\xf1\x06\xd5\xc2\x98\x2c\xcf\x44\x33\x48\xac\x64\x14\x52\x8c\xaf\xc0\xee\xa2\x1b\xf3\x7b\x76\xc2\x1a\x6d\x2f\x58\x44\x64\x94\x26\xb8\xfe\xdc\x89\xba\x41\x0b\x56\xff\x77\x05\x08\x2c\x90\x03\x75\xef\x99\x94\x50\xc6\x11\x8b\xcc\x08\x3f\xed\x95\xca\x88\x8c\x85\xc4\x77\xed\xfb\x66\xbb\xdb\x6f\xbf\x2f\x9e\x3d\xb5\x45\x26\xcc\x02\xec\xda\x9c\x0f\x6b\x0e\x8b\xaa\xd3\xd9\xb3\x42\x7b\xa6\x81\x21\x38\x5e\x26\xa1\xc0\xae\xfe\xbe\x0d\xfb\xdb\xc0\xbe\xdd\xde\x3d\x7e\x6e\x74\x87\x92\x09\x31\x66\xce\x73\x80\xc8\x24\x0e\x90\x6e\x84\x95\x36\x0f\x2a\xfb\xb2\x9d\x26\x53\x2a\x71\xce\xde\x97\x87\xcd\x11\x0e\x62\x75\x18\x15\xc5\x27\x8f\x27\xd5\xd6\x8d\xb4\x86\xe6\x02\x5b\x32\xfb\x4e\xc8\x54\x5b\x9b\x85\x6f\x79\x29\x0f\x79\x79\x10\xf2\x20\xf2\x2e\xab\x92\x29\x68\x7c\x52\xed\xfa\x3e\x0f\x5a\x18\x15\x12\xa4\x48\x42\x84\x56\xe3\x3d\x76\x57\xb0\x7b\x85\x36\xe2\xf1\xa7\x14\x82\xe2\x1a\x60\x3d\xa1\x8a\x03\xe4\x17\x4e\xd9\xc3\xc2\x83\x14\x22\xc5\x89\xbb\x7c\xdc\xed\xad\x12\x75\x77\x26\xd0\xd8\x80\x7b\xcd\x2a\xb0\x48\x85\xef\xe7\x62\x6a\x1c\x45\xa4\x0a\x42\x5c\x67\x55\x5e\x16\x50\xef\x9b\xd2\xf9\x45\xec\xcb\x02\xf6\x99\x06\x5f\x46\x92\x8a\x05\x01\x8a\xd4\xc0\x3b\x88\xdc\xa9\xce\x8e\x1e\xa0\x52\x56\xf8\xf4\x4e\xa9\xd1\xcb\x85\x1a\x54\x83\x2e\x81\x8d\x46\x26\xaf\xa6\x56\x0c\x99\x6c\x42\x7b\xba\x81\x43\xc2\x5f\xac\xfe\xe3\xb7\x1d\xe2\x10\xb3\x1a\xd9\xfe\xc4\xac\xcb\xb7\x24\x68\x83\x14\xc3\x45\x2e\xaa\x63\xbb\x06\x4e\xe3\x7e\x69\x98\xd5\x44\xe8\x81\x5d\x3f\x8a\xf2\xa3\xb8\xa6\x6f\xf3\x8f\x4e\xa3\xc2\x7f\x3e\x34\x58\x65\x3a\x9f\x0e\x95\xd0\xf0\x10\xdd\x97\x87\x4c\x4d\xbf\x24\xb2\xf6\xa7\x9d\xe0\xdb\xf2\x55\x1c\x2f\x6c\x16\x26\xd3\xce\x28\x86\xfe\xe1\x56\x21\x75\xe3\x63\x3b\x15\x70\x9e\x3a\xf6\xd0\x3f\x4b\xb9\xb5\x8c\xf7\xfa\x35\x3b\xad\xbf\x36\xd3\x27\x2a\x48\x99\x16\x3d\x6f\x60\xa8\xf7\x4c\x14\x09\x23\x22\xba\x14\xdc\x3a\xf2\x3e\xbc\x35\xdd\xe1\x44\x79\xba\xc4\x4a\x54\x05\xe8\x3d\x4a\x5c\x8d\xe7\x91\x22\x32\x45\xd9\xe5\x77\xa8\x32\xf3\x39\x74\xd3\xb9\xc6\xea\xbc\x16\xe0\xfd\x65\x0e\xae\x18\xb3\x6a\xa3\xbf\x4e\xe2\x0e\xc3\x1d\xcb\x12\xf1\x47\x05\x60\xb4\x63\x1b\x4e\x36\x47\x40\x1b\xb2\x59\x65\x26\xa2\x98\x14\xd8\xc4\xaa\xdb\xac\xf7\x41\xfc\x5a\x74\xc4\x5a\xc5\x8c\x4c\xad\x93\xb7\xa8\x31\x74\xf3\xef\xa9\x0a\x53\xad\xad\x98\x3a\xbc\x67\xa5\x33\xf0\xae\xbb\xa3\x82\x0b\xd7\x25\x5d\xd7\x56\xee\x75\x52\xc5\x56\xa1\x4a\x8d\x25\x3e\x39\xa3\xb6\x51\x1d\x5c\x45\x54\xe3\x45\x2d\xad\x29\xe6\x78\x4d\x1d\x9f\x29\xd2\x09\xee\x88\xf6\xbd\xdd\x54\x07\x31\x06\x77\x28\x4e\x09\xaa\xcd\x38\x65\xd6\xaf\xe0\x55\x8a\x73\x2b\x99\xee\x3c\xc3\x5d\x99\x69\x7c\xc3\x78\x62\xd0\x88\xd1\x64\x85\xbe\xcb\xcb\xb2\xfa\x71\x31\x1b\xb8\x24\xa1\xf4\x80\xb1\x4d\xf3\x0a\x55\x9b\xa2\xcc\x2e\xb2\x2a\x0e\x24\x4d\x7b\xa3\x9a\xa7\xf2\xe3\x2f\x24\x58\xa7\x9f\x67\x29\xbe\xe9\x59\xd1\xcf\x81\xd8\x04\xd8\x8b\x5b\x68\x8d\xcd\x71\xed\x6b\x6c\x57\x8c\xfb\x27\xbf\x30\x09\x58\xea\x5a\xb2\xce\x53\xea\x6b\xfc\xac\x4a\x43\x82\x12\xa2\xc8\x9e\xdb\x42\xa1\x7f\x82\xfc\x96\x99\xe6\x8a\x79\x93\xff\x54\x24\x31\x3f\x70\x02\xf4\xaf\x15\xd4\xaf\x65\xae\x1f\xc1\x8a\xa5\xa2\x44\xc2\xe4\x13\x4a\x09\x0b\x16\x2d\x4f\x62\x84\xc0\x54\xc2\x21\xf0\xee\xb2\xfc\x58\xe6\xff\x3e\x9f\x54\xd6\xeb\xbc\x90\x36\x9e\xe5\x66\x04\xe4\xda\x93\x20\xd8\xdb\x77\xbe\x5d\xf6\x8f\x33\x19\xb4\x12\x89\x8c\xe2\x0e\x49\x6d\x65\xc2\xce\x85\x9a\xad\x5b\x29\x21\x02\xd5\xcb\xba\x2f\x0a\x8d\xc5\xf7\x4b\x78\xb3\x92\x01\x44\x8e\xdb\xf1\xbb\x77\x99\x24\x4a\x46\x11\x56\xc8\x0a\xf8\x58\x54\x4d\xa6\x72\x98\xb7\x8a\x1e\x7f\xa9\x14\x09\x7a\x53\xee\x5e\x6e\x56\xcb\xcd\xfa\x51\x8d\xf3\x64\xa5\x23\x83\x93\xff\xe9\x79\xf3\xcf\xd5\x72\xb7\x79\x5a\x3d\x2f\x76\xeb\xcd\xe3\x7e\xfb\xf2\xf4\x74\xff\x47\x37\x4c\x84\xbc\x7f\x89\x9c\x6a\xcf\x5d\x55\x1e\xad\x46\xc0\xf0\xea\x21\xb5\xde\xae\xf5\xb9\xdd\x6e\x49\xb0\x7d\x43\xb6\x3f\x08\x2b\x5c\x3c\x7e\x60\x26\x90\x4c\x76\x89\xd9\x22\xcf\x6d\x11\xdc\xaf\x14\x3a\x08\xac\xcf\xf3\x31\x2b\x2c\xbb\x00\xcf\x31\x3c\x85\x0e\x98\x26\xc4\x13\xb2\x72\x54\x6f\x9d\xbd\xff\x3a\x88\x83\x08\xf7\x1a\x2b\xfd\xbb\x3d\x41\xa1\x47\xd1\x8d\x1b\x47\x9c\xcd\xf5\x88\xfd\xdb\x1d\xb3\xe5\x32\x25\xf2\xfc\x5c\x43\x25\x66\xbf\x89\x80\x15\xe0\xee\x95\xae\x5e\x6c\x35\xaf\xeb\x80\x69\xaa\x19\x16\x31\xb7\x6d\x32\x91\x3f\x80\xce\x44\x77\xc8\xf0\x30\xed\x35\xf4\xff\x8e\x2d\x08\xd1\x2c\x48\xf1\xc2\x3e\xca\xfc\x6d\x5d\x78\x5a\x8c\x66\x11\xc1\xe2\xdd\x53\x55\x9e\x75\x69\xfe\x28\xcf\xd5\x60\xd6\xeb\x10\x0c\x76\xc6\xff\xf8\xee\x89\xa3\x3a\x4a\x13\x0c\x78\xbc\x7c\xd3\xff\xae\xf2\xa8\x23\x48\xf0\x81\x55\x65\x9e\xdf\x22\x2b\x69\x7a\x5c\x85\xb6\xd7\x0e\x76\xe9\xf1\xdf\xcb\x85\xb2\x76\x76\x5e\xa9\x23\x6b\x5e\xdb\x88\x6d\x0e\x3d\x32\x5c\xbe\x35\x07\xc2\xf9\x18\x37\x74\x65\xf5\xd6\x31\x57\x09\x0c\x24\x77\x6b\xa7\x8b\x7e\x0b\xb5\xfa\x9a\x3a\xaf\x63\x05\x28\x28\xb9\x6a\x5e\xb1\xcf\x38\x31\x2b\xf7\xa3\x8c\xc0\xbd\x55\x67\xf5\x7f\xce\x22\xcf\xcc\xe7\xf7\xf2\x04\xe6\x9c\x4f\xc6\x25\x24\x46\x98\x90\x63\xef\x4f\x8e\xa6\xa1\xee\x35\x49\x6d\xa4\xbf\x6d\xa3\xeb\xf1\xbe\xa5\x53\x4e\x31\x9e\x7c\x86\xd3\xb9\xb1\xac\x9c\x49\x56\xd0\xd1\x29\xfc\x66\xa8\x45\x48\xb0\x9d\x80\xe1\xe0\x67\x1b\x1d\x8c\xe3\x4c\x2d\x42\xe3\xc5\x1a\xb1\x16\x85\x42\x1a\x74\x72\x81\x22\xe2\x5e\x92\xce\x81\x02\x7f\x42\xf6\x4f\xa1\xde\x4e\xe5\xf4\x65\x12\x0a\x88\x95\x40\xfd\xc8\x60\x28\x72\x4d\xb4\xa4\x01\xc2\x91\xf3\xf6\x1d\xdc\x65\x50\x91\xee\x48\x02\x9e\xb4\xef\x3c\x58\x6c\x47\xeb\xf1\x7c\xb4\xca\x1d\x75\x3f\xd2\x02\x06\x8f\x59\x61\x71\xf5\xc3\x45\x7a\x02\x39\x4e\xbc\x7c\x5a\x2f\xa4\xd6\x87\xab\x5a\x2a\x3a\x90\x96\xbb\x11\xc5\xdb\xe4\x97\xa8\xd8\xfa\x82\x6e\x4e\x0d\xe8\xcd\xf9\x8a\x76\x80\x56\xc2\x08\x36\x92\xeb\xeb\x9f\x8f\x8b\x61\x26\xe7\x35\x0c\x43\xa5\x47\xf8\x70\x5a\x81\xb3\x59\x52\x32\x99\xcb\x10\x50\x83\xe9\x25\xfc\x9a\x32\x80\x35\xb0\x98\x19\x47\x86\xe8\x9b\x8a\xa3\xc9\x63\xc2\x08\x29\x07\x3f\xb1\x32\x3f\x35\x81\x20\xda\x44\x16\x32\xdc\x75\x0a\x2d\xfc\x7a\xfa\x3a\x9b\xd8\xf0\xc0\x2b\x95\xd4\x4d\x79\x5a\x2f\x37\x83\x0a\x05\x04\x31\x93\xbc\xf3\x8e\xc7\x6f\xb0\x01\xf4\x6f\x7e\x40\x4a\xd3\x74\xa0\x63\x51\x4e\xd2\x53\x57\x78\x46\x30\x74\x64\xe5\x88\xf7\xb7\xab\xa7\xcd\x76\xed\x57\x2c\x20\x26\x45\x98\x08\xfa\x95\xed\xfa\xb6\x7c\xd8\x23\xcd\x59\x47\xf8\x0c\xdd\xf3\x06\x9a\x46\xb8\x1b\x28\x27\x16\xb0\x13\xf5\xe4\x89\x03\x55\x4a\x7b\x6d\xa0\xdb\xea\xec\x7d\xd5\x09\x30\x93\x12\xcb\xf7\x73\x5c\xc5\xec\xcf\xae\x63\x07\x21\x67\x28\xb7\x7c\x7c\x3f\xdd\x8b\x73\xa1\x5e\xd1\x7a\xbf\x3b\x68\x1c\xa2\xdd\x01\x2f\x68\x77\x24\xb6\x3b\x5d\x3b\xf3\xb0\x0f\x30\x22\xaf\x43\xa8\x63\xff\xca\x59\xe4\x70\x55\x4e\x21\x35\x10\xb5\x79\x8c\x4f\x24\xcb\xbc\x33\xd6\x20\x10\x2b\xe6\x99\xcf\xdf\xc4\x11\x6a\x67\x23\x92\xe9\x2b\x80\x62\x48\x22\x65\xa5\x80\x10\xd1\x56\x95\x66\xba\x4b\x42\xe2\x04\x4b\x0f\xd0\x60\x1f\xef\xcb\xe5\x13\x92\x58\xd1\xa4\xdb\xe7\x77\xe5\xcd\x79\xb0\xcb\x43\x12\x1b\x44\x38\xde\x97\x87\xce\x63\xed\xcb\x6a\x5c\xfb\x09\x9c\x77\xfb\x76\x29\xcf\xfe\x6a\x74\x1a\x50\x04\x35\xf5\xa9\xec\x50\xba\x61\x76\x5b\x81\x94\x71\x44\xec\x88\xa6\x3c\x66\x0a\x8d\x7e\xf6\x3d\x9f\x6c\x30\xb7\xfc\xff\x27\xff\xc3\xff\xef\x30\x19\xbb\xfa\x5f\x3b\x98\xf6\x4b\x50\xe4\xe7\x64\x0a\x56\xc1\x08\x0a\x55\xea\x0b\xe2\xd4\xf8\x8e\x8a\x40\x60\xe8\xb9\xdb\xfc\xf8\xb1\xf0\x37\x52\x44\x10\x74\xdd\xe2\xbd\x99\x52\x57\x66\x53\x47\xf7\x51\x19\x19\xec\xb1\xf9\x38\xd6\x9f\x52\x6a\xc9\x5d\xb9\xbf\x13\xcf\x5a\x5c\xb9\x26\x45\xa8\xb2\x7a\x2c\x27\x3b\xc3\x46\x53\x58\xc7\x46\x39\x90\xfa\x8d\x38\x78\x38\xed\x35\x0c\x2f\x68\xad\xf0\x8b\xf7\x95\x98\x58\xee\x11\x80\x94\x26\x61\x87\x9e\xbe\xb0\xda\x6b\x07\x08\x66\xdb\x32\x4f\x15\xac\x55\x39\x68\xca\x81\x09\x6d\x77\x02\xd1\x07\x7b\x6f\x56\xd0\x4d\x46\xa3\x05\x7e\xaf\xc8\x2a\xb1\x1d\xce\xc4\xd9\x98\xc2\x04\xc2\x3a\x04\x3c\xc2\xaf\x72\xf8\x73\x4d\xa0\x18\xd6\x59\x0f\xe2\x08\xb7\xe7\x51\xd3\xcf\x10\x92\xa0\x46\x90\x12\x55\x71\x3e\x4e\xeb\xc8\x86\x70\x8e\xa4\xb8\xac\x78\x6f\x93\xab\x2d\xea\x45\x0e\x14\x19\x89\xa1\x44\x61\x59\x47\x5c\x01\x60\x8f\xaf\x31\x4c\xd2\xa8\xd3\x70\xf5\xe5\x6e\x7f\x4c\xa4\xd2\x85\xcf\xfb\x53\x05\xfb\xb7\x4f\xb5\xc7\xbe\xf4\x5e\x43\x51\x1e\x2d\x90\x71\x7c\xfb\x4d\x44\x04\x42\xdb\xdb\xb9\x60\x1d\xfc\x3f\x9f\xdb\x0d\xd3\x1f\x8e\x39\x4a\x1e\xbc\x96\x55\x0d\x75\x6f\xb5\x3e\x39\x49\x9c\x58\xf2\x45\x79\xdc\x1b\x00\x5b\x01\x9a\x77\x18\xfe\x9a\x93\x6a\x22\x90\xb8\xdd\xa9\xb2\x78\x47\x5a\xd3\x75\xa6\x44\x3b\x16\x7b\xcd\xfb\x93\x55\x00\x5a\xe8\x36\x9f\x9c\x8f\x17\x0d\x0f\x23\xd4\xd2\x59\x1c\x0e\xd9\xb9\x38\x64\x8f\x70\x28\xff\xcc\x44\x31\xf0\x81\xe9\xf7\x3a\xc3\xd3\x14\xd3\xb6\xf7\xb2\x81\xed\xfb\x29\xa0\x83\x8d\xd0\xc4\x3a\x40\xd0\xdd\xd3\xf3\x6a\x8f\x9e\xdf\xab\x47\x4f\xca\x36\x31\x28\xff\x78\xac\x7b\x81\x3f\x90\x50\x8d\xab\xdc\x09\x7b\x48\x1e\x4d\x31\x7a\x7c\x09\x4f\x7c\x6b\xfc\xa9\xac\x1a\x53\xe6\x59\xb9\x1b\x40\x8f\x4c\x12\xa7\x41\x67\xb3\xfd\xab\xb9\x2d\xcf\x17\x80\x30\x93\xa4\x94\x0e\x3d\x95\x87\x18\xa4\xd1\xaa\xd8\x8e\xc4\x8e\x83\x63\xf3\xac\x9a\x57\x14\x35\x19\xdf\x36\x11\x07\x60\x05\xc3\x34\x56\x85\x06\x55\x71\x23\x62\x6e\x55\xed\x9b\x46\x5c\x7a\xf4\x74\x83\x12\x2c\x3d\x2e\x0e\x55\x86\xa1\xc9\xbd\x90\x90\xaf\xbb\x1e\x80\x11\x09\x45\x8c\xb3\xbf\xe0\x36\x13\xbd\xc3\x3e\xf0\x5f\xbc\x09\x22\xb1\x2a\x00\x7d\x9a\x7f\x65\x9e\x88\x04\x70\x85\xf1\x30\xba\x71\x79\xca\xc8\xc0\xe2\xca\x1e\x9a\x9d\x90\xe5\x68\x9d\x33\x12\x04\xc2\x5e\x97\x2f\xcb\x97\x7f\xf9\x3f\x2a\xa1\xb1\xe2\xb2\x87\xff\x9c\xb3\xd3\xcb\x69\x53\x5c\x29\xc3\x1b\x25\x13\x5c\x7f\xfe\x28\xcf\xbb\xb3\xec\x6e\x9c\x66\xda\x72\xc1\x8e\x50\x1d\xa0\x50\x9f\x5b\x68\x6e\x2d\xea\x76\xb6\x48\x63\x34\x67\xc8\x5b\x58\xdd\xbe\xec\x7f\xfc\xb1\xdc\xa3\x76\x69\x77\x36\x19\xca\xb0\xdb\x8f\x07\x8e\x4d\xee\xb8\x49\x13\x43\x3d\x1d\xa6\x11\xd6\x21\xaf\x5f\x7e\x8c\x06\x25\xbb\x92\xe8\x13\x54\xbb\x36\xb9\x7f\x75\x17\x4b\x83\x20\xb2\xca\x6d\x15\x9c\x72\xa1\x60\x04\x0e\x1e\x5d\x26\x0d\x02\x05\xe0\xba\x0e\x37\x65\x5d\xff\x14\x45\x21\x96\xd5\x27\xea\x6c\x1b\x31\xe1\x4d\xd3\x80\x48\x48\x07\x86\xbc\x83\x1b\x4f\x03\xa2\x43\xcc\x04\x71\x6b\xb9\x0a\x5b\x9b\x07\x38\xf8\x9f\x4e\x03\x4a\x8c\xcf\x27\x17\x76\x92\x5e\x91\xc7\xf7\xe3\xa9\x66\x56\xac\xaf\xac\xe0\x11\x3e\xa6\x46\x79\xf3\x4d\x9d\xe9\x49\xc0\x46\x7f\xbe\x3c\xf3\x24\xaa\x66\x53\x8c\xab\x25\x34\x60\x24\xc4\x99\x85\x66\x14\xbf\x75\x01\x48\xd0\x67\x3a\x83\xb8\x84\xf7\x01\x86\x0b\x7a\x69\xc0\xc2\x04\x01\x96\xb6\xe6\xfa\x8c\x6a\xc7\x77\x65\xd5\xb1\xcf\xdc\xfc\xa6\x01\x33\x56\xe7\x31\x07\x61\x06\xe1\x00\x0d\xc2\x28\x8c\x5c\xb5\xbb\x8d\xd7\x8b\x2b\x2b\x45\x3b\x50\x46\x3e\xd7\x16\xfa\x00\x17\x92\x23\x34\x08\xe3\x28\x71\x54\x73\xa8\x9a\xd5\x7f\xbe\xec\x66\xd1\x20\x54\x40\x86\xbd\xe4\xd5\xaf\xa6\x12\x5f\x46\x7e\x34\x88\xb8\xc2\x4d\x06\xc7\xde\x8c\x4a\x82\x34\x88\x52\xa3\x8d\x23\xd1\x63\x56\x62\x05\xb0\x66\xeb\xc8\x34\xe0\x69\x8c\xf7\xce\xf1\xf1\xba\x6d\x6d\xd8\x18\xa7\x41\x12\x8b\x30\xec\x51\xa3\x5e\x62\x72\x07\xf5\x65\x19\x63\xf4\x3d\xee\xf3\xa9\x34\xd4\x79\x72\x3e\xc0\x11\x66\xf8\x6d\x34\x10\xa1\x54\xda\xb1\x6c\xde\xbb\x4e\x91\xb5\xdb\x29\x51\xdb\x32\x7b\xc7\x86\x63\x0e\xdb\xec\x50\xa0\xb4\xdb\x55\x66\xe7\xf5\x98\x90\x06\x22\x12\x48\x18\xc1\x78\xe0\xae\x3c\x57\xcd\xeb\x4f\x00\xe7\x28\xed\x7f\xb1\x48\xad\x60\xc0\x0e\xea\xb2\x2a\xbb\xbf\x2a\x15\xf7\xca\xdb\xf8\x36\xbf\xfb\x5a\x26\x0d\x64\xac\x59\x67\x29\xd0\xee\x20\xee\x37\xec\x32\xa8\x96\xae\x12\x9e\x4c\x1e\xa5\x94\x16\x6b\xf5\x6c\x7f\x35\xba\x3f\xed\xa0\x10\x7e\x57\xa0\x81\x54\xdc\x4a\x73\x9d\x9b\xd2\x96\x02\x27\x8b\x87\x54\x80\x56\x75\x79\xf9\xb1\xcb\x8e\x80\x84\xe1\x81\xa4\x32\x0d\x14\xd7\xcc\x75\x90\x1e\xac\x0c\x1c\xfa\xd5\xf8\xa3\x0a\xb0\xa3\x7b\x72\x7d\x75\xff\x67\xa3\x90\x14\x72\x12\x9f\xa0\x3b\x58\xe0\xcb\xf6\xd6\x0f\xd0\x2c\x42\x28\xc5\x12\xf2\xdc\x33\x2d\x07\xd3\x50\xab\x00\xc9\x9b\x07\xf4\x67\xf0\xe2\xa4\xdd\x51\xe0\xe0\x5a\x05\x95\xf5\xa6\xba\xeb\x5b\x29\x34\x00\xa2\xf1\x9a\x5c\x73\xa0\x2a\x7f\x7d\x5e\xa9\xa7\xd3\x00\x98\x25\x17\xf8\x36\xfd\x42\x8b\x53\x03\xd5\x8d\xa8\xe7\xd9\x69\x34\x80\x28\x14\xbe\x14\xfa\x7d\x67\x1b\x93\xf5\x50\x34\x96\x06\xc6\x70\x84\x89\x1b\x68\xd4\xab\xd7\xf5\x17\x4d\x59\xbf\x66\xdb\xa6\x8b\xba\x29\x09\x48\x14\x78\xdf\xd1\xb7\x76\xac\xe5\x6d\xcf\xb8\xb8\x51\x42\x82\x80\xe9\xde\x9e\x65\x63\x0c\x46\x01\x1d\x2c\x70\x6e\xe3\xa4\x84\xa4\x2a\x09\x7a\xe3\xd6\x67\x10\xf9\xf2\x4a\x57\x85\x12\x4a\x34\xc6\x63\x1e\xb4\xbe\x28\x3e\xfd\x95\xb2\x40\x63\x7b\xd1\x82\x33\x76\x20\x8e\xa3\x57\x9c\x30\xc2\xd1\x6c\xef\x58\x56\x4d\xdf\x77\xf5\x07\x25\x20\x7d\xb2\xeb\x67\x96\x9d\x7e\xda\x74\x24\x58\x77\x60\xd7\xd7\xc1\xb7\x7d\xb2\x3f\xcd\xff\xce\x88\x51\xec\x2f\x6d\xc5\x6b\x36\x5a\xd0\x48\x14\x59\xd0\x1b\x7a\x97\x8a\x7a\x44\xbb\x99\x9c\x84\x07\x89\xb4\x16\x19\x56\xdc\x7a\x78\x1a\x1e\xc6\x56\x5e\xc5\x3e\x4d\x5b\xb5\xea\x0c\xe4\x29\xe1\xd2\x20\xd5\x74\xeb\xca\xa8\xc3\x1d\xe4\xaf\xf0\x5a\x94\xc4\x34\xc0\xb3\xe7\x60\x1a\xce\xc6\x5b\x02\x89\x53\x69\x2b\xb4\xfe\xbb\x12\x1a\x23\x73\xe0\x5c\x1c\xb3\xa2\x19\x5b\x75\x53\x92\x44\xc4\x23\xdb\x2a\x30\xdd\x5f\x63\x40\x3a\x18\x58\xa1\x21\xfb\xd6\xd8\x0f\xb6\x4f\xb3\x1b\x96\x10\x24\x7e\x2c\x9f\x37\x3f\x6f\xf7\x3f\x17\xbf\xaf\xd8\x48\x2d\x89\x92\x54\x08\x6c\x2d\x7c\x83\xc6\xca\xc4\xac\x76\xdf\x47\x12\x8e\x94\xa4\xd2\x92\x69\x2a\x90\xa2\x81\x4d\x01\x77\x50\x1c\xcf\x7b\x7f\x58\x84\x56\xfd\xcd\x47\xf0\x68\x6e\xdd\x1d\x14\x02\x11\x2b\x7b\xf4\xe2\xcd\x4e\x23\x40\xd3\xe4\x79\x09\x95\xe0\x7d\x58\xbc\x8b\x06\xd4\xeb\xe8\x79\xc9\xc0\x1a\xd0\x3b\x0a\x21\x2e\x23\x0f\x59\x31\xc2\x22\x8e\xcf\x26\x39\xf3\x10\xa3\x47\xf8\xc0\x69\xe2\x8f\xa4\x1a\x41\x20\xc7\xbd\x5d\x23\xfa\x54\x82\x12\x09\x21\x42\x37\x97\x37\x0f\xbb\xd1\x05\xa8\xd0\x8a\xd4\x65\x6d\x28\x78\xcc\x9a\xe6\x8a\x42\x1d\x25\x40\x29\x66\xcb\xc3\x6b\x1b\xfa\x64\x4c\xde\x11\xc3\x62\x64\x47\x38\x4d\x4e\xff\x7d\x26\xb4\x17\xd2\xee\x1c\xae\x40\x3c\xde\x32\x26\x37\xcf\x24\xd6\xd6\xff\x00\xcd\xbe\x4d\xc7\xdb\x7c\xb3\x9b\x43\x46\xa7\xc8\xb3\xdf\x97\x1f\x57\xda\xbe\x94\x06\x54\xe0\x8c\xff\xb7\x05\x4a\xb8\xbf\x12\x12\x61\x45\x78\xf7\x73\xb3\xbf\x5d\xfc\xb1\xed\xfe\x1e\x13\x7c\x0d\x4d\x59\xb5\x6f\x4e\xcf\x87\xe9\x4f\x48\x62\x8d\x38\xda\x76\xcf\xf0\x7a\x04\x94\x92\x34\x46\x16\xe4\x87\xed\x8e\x6e\x0a\x85\x0d\xf7\x01\xe0\x94\x52\xa2\x23\xed\x96\xe4\xdb\xf3\x1b\x3c\x66\xea\x6d\x5a\xdd\xa5\x94\xca\x00\x55\x47\x11\xd5\xdd\x3e\x94\x27\xf1\x39\xda\xb5\x29\xa3\x76\x4f\xf2\xeb\xd4\xcd\x50\x10\x73\xf4\x10\x28\x63\xd6\xa3\xbe\x3e\x8a\xaa\xb9\x2d\x7b\x1b\x4f\x57\x3b\xa7\x94\xc9\x08\x35\x1e\x94\xc8\x15\x42\xf3\x66\x0a\xdd\x94\x32\x25\xb1\x84\xb9\xd0\xfa\x26\xbb\xa4\x1d\x5d\x42\x02\x29\x65\xa0\xbb\xec\x16\x9c\x93\xc8\xe4\xa4\xc6\xfa\x6b\xbf\x6c\x57\xcf\xfb\x6f\x8b\x87\xd5\xfe\xe7\x7a\xf7\xdd\xba\x69\x4d\x86\x7a\x95\x96\x4c\x95\x1b\x87\xfe\xf5\x77\x23\x4c\x2d\xa5\xc0\xe2\xe5\xdb\x48\xaa\x97\x65\xe8\x25\xe3\xa7\x3f\x3b\x52\x11\x26\xc3\x28\x2c\x3c\x7c\x21\x68\x04\x56\x4d\x60\xf7\xb8\x7c\xf4\x7f\xe3\x82\x48\x3e\xa2\x71\x3b\x97\xab\xf1\xdd\xe6\x4a\x83\x72\x45\xe7\x8d\x31\x88\x53\xfd\x2a\xa7\xa5\x94\x83\xc6\x90\x51\xda\x95\x69\x63\x90\xb6\x33\x9b\xd7\x52\x1a\xcb\x08\x8d\x53\x56\xbb\xef\x43\x2d\xca\xf1\xa0\x84\x87\xd8\x59\x2a\xf3\xe6\xd3\xb3\xfa\x28\x4d\x84\x45\x6e\xfb\x2d\xf3\xb7\xcb\xf6\x04\xf1\xd7\x94\x68\x8e\x7c\xb6\x02\x7e\x39\x69\xa1\x61\x9b\x89\xd2\x04\x14\xe6\x9f\x68\x7c\x39\x5a\x51\x69\xca\x12\xa4\x20\x62\x77\xf0\x41\x14\xe2\xd0\xbf\x71\x69\x14\x29\xde\x73\xf1\x3f\xaf\x82\x91\xfe\x4e\xb3\x92\xd2\x34\x89\x10\xc7\xf0\x6b\xfd\x74\xb7\xb5\x4f\xfc\x07\xf8\x38\x80\x0a\x26\x4c\x62\x39\x9b\xa8\x5d\x31\xda\x7a\xa8\xe0\x76\x17\x16\x5a\x2f\x45\xa1\xb3\x91\x3b\xf0\x4c\xd4\x4e\x45\x9a\xc4\x6e\x2e\x7f\xff\xb9\x9c\x6b\x51\x53\x2a\x44\x18\x0b\x77\x5b\x3a\xd3\xdd\xe5\xa5\x36\xdb\xe4\x53\x3a\x22\x89\x6f\xc2\x3c\xc2\xaf\xe6\xc9\x3a\xab\xf7\x75\x17\x4a\x05\x30\xf4\x76\xb9\xab\xc4\x11\xfa\x16\x70\xbb\x52\xd8\x0c\xc9\x02\x93\x66\x5f\xca\xe4\x02\x63\x44\xa9\x64\x46\x86\x63\x03\xf0\xdf\x46\xc7\xd3\x10\xd3\xfa\xbb\xb2\x52\xb0\xac\x3e\x4f\x4d\xd9\xcb\x01\x8c\xbe\x5f\x08\x5c\x9b\x8b\xb2\xf8\x6f\xa8\x26\x29\x22\x95\x5a\x60\x1e\x0a\xef\x50\x34\xbf\x43\xd1\x85\xea\x54\x71\x42\x13\x4f\x27\x47\xff\xfd\xf1\x4d\xd1\x24\xb2\x9e\x1f\x22\x87\x55\xa1\xa9\xff\x1c\x24\x41\xc8\xbd\xad\x43\xa1\xde\x3e\x07\xb2\xef\x94\x82\x4e\x07\x70\xef\x6d\x73\xd6\x50\x34\xf3\x38\x0b\x87\xfd\xb1\xd8\x5d\xf7\x71\x93\x68\x44\xe9\xc9\xf3\xe7\x3e\x2f\xdf\x01\x73\x90\xab\x9f\xee\x7f\xa6\x91\x16\x33\xbe\xfc\xe7\xbf\x46\xeb\x88\x51\x76\x37\x3e\xd7\xb0\x6e\xe0\xd8\xf1\xda\xae\x24\x6f\xf6\x53\x2c\x08\x02\x6f\x91\x7b\x23\xd4\xdb\x30\x7f\x67\x01\xd1\x58\x00\xab\xcf\xf2\xc2\x82\x61\x72\x16\x4e\x51\x6d\xa3\x24\xe3\x77\x97\x05\xda\x48\xd7\x11\x58\xed\xbe\xb7\x79\xce\xe4\x83\x40\x6d\x61\x17\x31\xc1\x7f\xf5\x6a\xba\x0f\x11\x22\x10\x1b\xfc\x24\x3e\x4f\x50\xc9\x1e\x7f\x47\x19\x61\x1a\x55\x86\xf0\x25\xdc\x54\x99\x7a\x15\xb9\xea\xa2\x51\x46\xa4\x31\x41\x27\x4f\xee\x8b\xa7\x94\x51\xea\x14\xd2\x7b\x57\xe9\x9f\x59\xa1\xcb\x8f\xee\x87\x50\x9e\x06\xa9\xf7\xef\x38\x57\xf5\x15\x40\xcd\xe5\x32\xe7\x17\xbb\xe1\x9f\xdc\x39\x19\xb1\x7e\x22\x8b\x36\x39\x18\x3e\x4b\xc6\x28\x71\x3c\x71\x55\x16\xda\xe6\xa7\xbd\x10\x04\x65\x0c\x00\x15\xc6\x6d\xa8\x78\x97\xe5\xb9\x35\x40\xb9\xd0\x53\x1d\x06\x54\x2c\xe2\x80\x5a\xfc\xaf\xa5\x17\x06\xdb\x14\x03\xf3\x0b\xca\xa2\xc4\x2e\x29\x42\xeb\x6d\x79\xae\x14\xdc\x95\x55\xfb\xb5\xb8\xb1\x4c\x9f\x89\x07\x23\x75\x3b\x30\x8b\x94\x70\x06\x3e\xef\x20\x72\x47\x55\x1b\x3f\x3a\xee\xdc\x69\xbb\x9a\x6a\x59\x59\xe6\xb3\xbf\x84\x98\x4b\x20\x4e\xf2\xed\x61\xa6\xba\x7f\xee\x11\xbb\x94\x25\xb1\xc4\x6d\xd2\xc1\x5e\xbe\x97\xe7\x2e\x60\x66\x89\x8a\x41\x0f\xa4\x46\xdb\x6d\x03\x59\x55\x5f\xef\x90\x2c\xd1\x60\x3a\xb1\x4d\x0c\xc1\xf5\x78\xd3\x61\x69\x48\xa4\x77\xeb\x75\x78\xc9\xb1\x29\x47\x3b\x84\xe2\x0a\x7a\x5f\x36\x6d\x40\x07\xe7\x0b\x51\xf5\xcb\x48\x66\xf4\xa8\x52\xa5\x50\xc7\x01\x75\x7f\xfd\x59\x05\x89\x90\x96\x9a\x97\x87\xad\x95\xcf\x1a\x02\xc2\xfc\x7e\xca\x44\x98\x12\xee\x39\x8f\x19\xfa\xf1\x9c\x4f\xdd\x39\xe2\x18\x31\x1b\xae\x19\xb4\x28\xf4\xcd\x00\x03\x7f\x51\xe0\xe9\x1f\xae\x48\x42\xdf\x78\xe8\xb9\xa3\xc3\x39\xa9\xa2\x80\xb3\xae\x16\x6a\x83\x05\x1b\x85\xcd\x86\xf7\x4c\x89\x4e\xd0\xde\xf9\x8c\x3a\x4d\xf9\xc5\x6f\xa3\x07\xa2\xa4\xd0\xde\x7c\xbf\x7a\xbb\xf0\x04\xa6\x4c\x07\x69\xea\x4e\x74\x6b\x55\x88\xd7\xb7\xb3\x5a\x37\xed\x50\x49\x6d\xd0\x0c\x6f\x74\xb4\xd6\x69\x11\x47\x43\xb5\xad\x6e\xc1\x9b\x0d\x8d\x58\xbb\x96\x18\xdb\x51\x5d\x3d\x6e\xf7\x8f\x9b\xdd\xfe\x6e\xf3\xbc\xef\xcd\x8e\x29\x03\x46\x69\x3a\x60\xf3\x0e\xf7\x0e\x06\x42\x60\xd1\x7b\x7b\x2c\x0f\xa3\x37\x1f\x64\x60\x7b\x4e\x1d\x98\xe2\x6e\xb5\xa2\xbd\xd3\x96\x1f\x67\x22\x08\x53\x5f\x15\x43\xcf\xa1\xaf\xab\x9b\xcc\x70\x62\xac\x49\x89\x2b\xbc\x6c\xaa\x27\x51\x37\xb3\xaf\x84\xff\x88\x4a\x71\x47\xd9\x23\xd1\xb6\x2a\xee\x00\x16\x72\x8c\xea\xa0\x21\x49\x14\xe2\x1b\xd0\x3e\xa8\xfe\xf9\x0a\xc5\x23\x34\x1f\x65\xf5\x86\x64\x8c\x57\x2c\xd9\xac\xeb\x1b\xe1\xd7\xda\x90\x28\x82\x42\xc1\x1a\xaa\xec\x1d\x06\x78\xd7\xf9\x0b\x0f\x09\xa4\xf6\x8e\x1c\xa0\x79\x19\xc3\x18\x68\x48\x03\xa9\x3d\xff\xe5\xa3\x4d\x26\xab\x9b\xf2\x62\x8c\x36\xd8\xfd\x7e\xc8\x2a\xa1\x72\xd8\x41\x3e\xc3\x2c\xa5\x21\x35\x52\xba\xe2\xd9\xf7\xf3\x51\x8c\x65\x90\xdc\x98\x30\x88\xb0\x7c\x67\x8b\xea\xd6\xf9\xa7\xeb\xd3\x5f\x5e\x7a\x48\x43\x14\xcf\xfd\xfd\x24\x7e\x8d\x49\x87\x34\x0c\xa3\x14\xd3\xd5\x4a\xbc\x9d\x0f\xa5\xf3\x5a\x1c\xef\x9e\x61\x98\x2a\xd2\x17\xec\xb6\xff\xb9\xce\xe8\x9b\x7c\xaf\x81\x24\xf5\x90\xe1\x4e\xa1\xfb\xcb\x04\x05\x6b\xf5\x74\x1c\xdb\x25\x53\x68\xaf\x1f\x1a\x5b\xb4\xbe\x8d\xe7\xfe\x7b\x7b\x15\x33\x30\xbe\x2a\x4e\x18\x88\xae\xbb\x88\x1b\x16\xf6\x05\xae\x7e\x7c\xfc\x18\x39\x57\xd2\x35\xba\x45\x8e\x21\xf4\xa2\x28\xca\x73\xe1\x18\x3f\x93\xef\x8a\x03\xac\x84\xae\x9a\xd7\x5d\x79\x15\x84\x47\x43\xae\x35\xae\xb3\x99\x2a\xef\xb2\x22\xab\x5f\x07\x2b\x5a\xc8\x4d\x8c\x78\x34\x6b\x06\xaa\xb5\x4f\x30\x66\xdf\x96\x30\x16\x14\x7a\xb9\xec\xdf\xcb\xfc\x3c\x51\x53\xa1\x61\x22\x43\xe6\x00\x73\xcb\xe5\xf7\x3d\xe8\xac\xd9\x93\x68\x94\x8e\x87\x29\xd7\x51\xdf\x2e\xfb\x09\xd9\xb3\xc8\x3a\xb0\x3c\x0d\xd3\x54\xa6\x89\x47\xd8\x23\x85\x14\x8a\x06\x8d\x30\xc6\xcf\x28\x15\x51\xec\xbe\x6a\x07\xd5\xd1\x17\x62\xc7\xd7\x23\x88\xad\x5e\x6a\x10\x56\xfe\xa6\x86\x07\xf1\x36\x2d\xb1\x86\x22\xb2\x26\x0f\x98\xff\x1f\xcf\x97\x77\x51\x86\x61\x60\xf1\x65\xc7\xcc\x6f\x89\x70\x09\xb4\x19\x9f\x55\xc6\x56\x27\xd9\xfd\xf5\x1e\xea\xb7\xcc\x6f\xa0\xa1\x62\x1c\x9b\xb6\x26\x3f\xd7\xaf\xab\x4a\x74\x7f\xd7\xda\x1b\x2e\x2c\x45\xd5\x38\xdf\x95\xf1\x89\x95\xa1\xa8\x7b\xa3\xf2\xb2\x06\x27\xd9\x3c\xbe\x5e\x93\x30\x7c\xaf\x84\xd6\x3d\xe0\x6e\x3e\xb4\x0d\x0d\x10\x12\xa0\x88\x99\x42\x5b\x95\x3c\xfb\xb3\x7f\x1a\x06\x34\xd6\x27\xbb\xae\xd4\x10\xbb\x33\x7c\xac\x51\xc0\xc1\x5b\xb9\xad\x1e\x16\x33\xd5\x89\x28\x00\x85\x2c\x86\x65\x79\x80\x62\x90\xdd\x7c\x5d\x22\x8d\x08\xb0\xc8\xda\x93\xc3\x5a\x95\x5b\xeb\x6a\xe3\xae\x2f\xa2\x41\x8a\xef\x0c\xea\x2e\x6e\x0a\x18\x88\xff\xd2\x88\x29\x1b\xa4\xfc\xf7\xcd\x72\xb8\x05\x45\x4c\x6b\xee\xb1\x37\x65\xe1\xf8\x18\xe1\xe4\x6a\x43\x6a\xf0\x91\xdb\xd9\xee\xab\xed\x4f\x65\x5d\x67\x32\x87\x1e\xcd\x80\x0e\x23\x98\xb4\xd5\x47\x91\xe7\x37\x79\x67\x59\x45\xa3\x88\x06\xc2\x3a\xa5\xa9\x37\x84\x0a\xd9\x1f\xe6\xcc\x19\xc7\x4f\x35\x8a\x92\x00\xf5\x98\xba\x7d\xf1\x5e\x14\xfa\x28\xaa\xb7\x4b\x6a\x27\x8d\x22\x6d\x2b\x56\x47\xf1\xeb\xe6\xfc\xf9\x2c\x1a\x58\x17\x4f\x15\xa8\xac\x57\xaf\xa6\x11\xe7\x11\xd6\xaa\x00\xd5\x8b\x84\x7a\x83\xaa\x1e\xf4\x97\xba\x61\x49\x82\x5c\x3a\x67\x9a\xb3\xf8\xb6\xda\x3f\x3d\xaf\x96\xeb\xde\xd3\x95\x46\x31\xa3\xd8\x07\xf6\xe5\x8e\xe7\x65\x77\x24\x02\xd4\xa5\xdf\x67\xb5\x2b\x44\x4c\xaf\x35\xe6\x29\xbe\xd1\x76\x35\x7d\x68\x77\x0a\x30\x4e\xe2\xe8\xae\xac\x56\x5e\x73\x7b\xfc\xa9\x84\x05\x71\xd0\x17\x72\xd6\xc7\x53\x59\x35\xb5\x77\x33\xf2\xdf\x9e\xc4\x5c\xdb\x78\x27\xdb\x95\x56\x3e\x76\x7a\x1e\x11\x60\x46\x64\xb7\x18\xb4\xff\xf9\x5a\xe1\xea\x7f\x9c\x3c\x7a\xfb\x51\x81\xe9\x61\xd7\x4e\x3a\x96\xcf\x70\x18\xbe\x49\x73\xf9\x6b\x94\x48\x60\xb4\xab\x9f\x59\x0f\x93\x43\x57\x12\x20\xd3\xf9\x9d\x46\x01\xae\x51\xaa\x77\x4d\xac\x47\x29\x43\x94\x46\x94\x39\x7b\xb3\x27\x8f\x13\x71\x59\x17\x9d\x34\x06\xa3\x54\x07\x28\x04\x00\x85\x16\x36\x69\x28\x2f\x2b\xae\x91\xa0\x22\x1d\x90\x49\x66\x70\x67\x93\xd3\x8a\xc8\xd6\xeb\x6a\x2b\x30\x83\xeb\xdf\x60\x65\x19\x55\x01\xfc\x47\x34\x20\xb5\xd4\xb9\x03\x5c\x65\x3c\x8e\xc3\xf0\x48\x46\xca\x56\xbc\x76\x8b\x1f\xab\xfd\xe2\xe9\xd9\xdf\x05\xa9\x62\x14\x1b\xef\xd9\x71\x03\xa4\xdb\x95\xcb\x96\x3a\x0c\xd2\xbe\x01\xfd\xd4\x5e\x77\x56\x16\x17\x5d\xa8\xf1\xfe\x1f\xa9\xc4\xaa\x06\xee\x5d\xd3\x67\xad\x4a\xd4\x79\x7e\xb0\xee\xbc\xfe\x8a\x54\xaa\x18\x1b\x74\xf5\x51\xe9\x7c\x3e\x30\x8f\x74\xa8\xd1\x99\xf7\x98\x15\xd6\xea\x6e\x76\x31\x8e\x4c\x20\xac\x25\xb1\x25\x95\x80\xbe\x2b\xab\x4e\x9c\x65\xd1\xcd\x08\x03\xc4\x6e\x7e\x0d\xf8\xa5\x90\x13\xce\xb0\x3c\xfc\xf0\xf4\xc7\x7c\xdb\x84\x93\x98\x63\x60\xda\x7e\xff\xb3\x45\xd6\x8e\xd7\x20\x4e\x8c\xc2\x14\x07\xd1\xc7\xa2\x98\xb4\x8c\x39\x25\x02\x57\x81\xef\x4f\x37\x23\xb2\x92\x3f\x1c\xa5\xa2\xf7\x62\x7d\xf8\xfc\x5e\xcc\x1a\xc5\x51\x1e\x92\x18\xf9\x03\xba\x12\x59\xb1\xda\x7d\xf7\x3f\x21\xa4\x14\x77\x88\x5b\xf1\x59\xef\xca\x5b\x8b\x2d\xe8\x0e\x72\x91\x3a\x1e\xc9\x7a\xb9\x19\xa6\xf5\x3c\x4c\x15\x42\x5a\xdf\xcb\x06\x76\xe5\x5d\x05\xf0\x27\xf4\x7e\x82\x94\x87\xc2\x6a\x7b\xfc\x58\x3f\xee\x9f\x56\xcf\xfb\xbe\x1d\xcd\x43\x63\x9d\x8e\xf7\xf2\xfc\x79\x97\xe1\x5b\xf7\x05\x08\x80\x47\x24\x42\xe6\x22\x52\xea\x2d\x7f\xb9\x38\x2c\x5f\x45\x51\x80\xef\xe7\xf3\x88\x85\xa8\x8f\xfc\xf1\x2a\x72\xf0\xed\xe5\x5e\x57\x8e\xf2\x28\x65\x34\xec\x5d\xe7\xf7\x70\x14\x59\x3e\xd8\x51\x78\xa4\x22\x18\x02\x8e\xf0\x66\xfb\x14\xbc\xb7\x7f\x1b\xdf\x54\x1e\xd2\xa8\xd3\xda\xb9\xcd\xde\xb3\xba\x9c\x47\x93\x52\xce\xa3\xd4\x33\x3c\x17\x79\xde\xa6\x94\x5d\x55\x99\xf3\x94\x59\x0b\x69\xab\xeb\xd3\x25\x90\x9c\x83\xdd\x72\x1e\x3e\xeb\x26\x53\x1d\x7c\x81\xc7\x31\xc7\x4c\xd1\x37\x25\xbf\xdd\xec\xba\x43\x5a\xa7\x2e\xe3\x58\x1c\xbe\x50\x0e\x9d\x4c\x8f\x84\x84\xa8\x9b\xd9\xbb\x68\x67\xd7\x9a\x51\x3c\x61\x91\x95\x0c\xeb\x14\x36\x27\xe7\x0a\x4d\xe0\xb6\xa7\xa1\x9a\x0c\xe5\x09\x08\x0c\x02\xb6\x9b\xbb\xdd\x7e\xb9\x78\xda\x77\x57\x9d\x06\x11\xf3\x61\xbc\x93\x84\xb6\xce\x3e\xdd\x00\x46\xb0\xb7\x7e\xfb\x7d\xf1\xb8\x40\x6d\x73\x7f\xc0\xa4\x34\xed\xb1\x28\xcf\xf0\x5e\xbe\x0d\x8c\x4c\xc6\xa9\x94\xfb\x8c\xe0\x09\xb6\x17\x6e\x9e\xf6\xeb\x87\x87\xcd\xf3\x6e\x71\xef\x4f\x27\x85\x8d\x08\xda\x69\x20\x2a\x2b\x15\xda\x66\x06\xd6\xd9\xa3\xf6\xcf\xd8\x8f\x56\x01\x4e\xcd\xe2\x7c\xec\xbd\xb1\x1e\x4a\x8d\x4e\xf0\x6e\x8c\xa2\x5a\x58\x78\x4a\x35\x52\x83\xa2\x5c\x45\x11\xee\x42\x58\x70\xab\x5f\x97\x65\x61\xed\x91\x46\x5a\x34\x94\xab\x24\x44\xdc\x0f\x66\xd5\xc8\x89\xb9\xad\xc4\xc7\x25\x6f\x8f\x72\x0d\x80\xa0\xc0\xb5\x2a\x57\xbf\xfc\xc2\xc5\x21\x96\xd1\xd8\xac\xa4\xca\x9a\x07\x51\xd7\x13\xcf\x4e\x3f\x3c\xd1\x08\x3c\x6c\xdf\xcc\x2d\xf8\x22\xe0\x5f\x64\x63\x5f\x17\x57\xb9\x09\x18\x06\xfb\xa8\x1b\xbc\xfb\x3c\x41\xbd\x83\xde\x20\xe9\x7f\x48\xf0\x7f\xfd\x40\x4a\xa4\xd3\x1b\xfa\x5e\xe6\xfa\x8a\xd6\x39\xe5\x46\x2b\x84\x62\x21\x98\xf1\xb6\xfc\x98\x44\x32\x71\x10\x24\x08\x1c\x72\xd8\x86\x67\x51\xc1\x57\x5b\xd7\xfc\x65\xc7\x01\xb3\x6a\xe9\x6d\x06\xf2\xcf\x52\x8e\x15\xd5\xff\x9e\xc6\xf4\x50\x03\x8e\xc6\x81\x54\x89\x6d\xd6\xd7\xe7\x23\x2a\x6a\x8f\xde\x9c\x38\x30\x09\xca\x72\xec\x9d\x7b\xc2\x9f\x70\x21\x9f\x49\x63\xc2\x88\xb5\xfc\xcc\x46\x8d\x8c\x98\x46\x04\xfd\xbf\xba\xe7\xbc\xd1\x7a\x68\x7c\x4d\x63\xca\x01\x79\x5d\xed\x3c\x3a\x1f\xfd\x8a\x1e\xf6\x4b\x73\x4c\x65\x82\x1d\x65\x54\x74\xed\x55\xb0\xfb\x5f\xc0\x42\x95\xb2\xa1\x5c\xe0\x9c\xbb\x0c\x8d\x99\x21\xc8\xee\xd9\x42\xb3\x85\xea\x3d\x53\x6d\x28\xf7\x9e\x69\xa8\xee\xe0\x0a\x7c\x26\x0e\x53\x6b\x0e\xfb\xed\x82\xfb\x44\xe3\x50\x30\x88\xb1\x3a\x7f\x82\xea\xd0\x99\x67\xd1\x38\x34\x02\x51\xa9\x37\x19\xd2\x80\xff\x75\xdf\x1f\xd0\xb8\xe0\x63\xe3\x66\x52\x27\x89\xa3\x58\xe0\x2b\xf1\x04\xa7\xa1\x7b\x07\x8d\x23\x11\x10\xee\x2b\x60\x7b\x34\x00\x19\xbe\x8b\x71\x64\xa8\x55\x97\x1b\xe0\x7e\x31\x04\xbf\x4a\xfa\xea\x7d\xd0\x68\xcc\x63\x82\xaa\x68\xaf\x59\x9e\x3b\xb7\xd9\xee\x08\xf5\xca\x01\xb6\x53\x80\xef\xf9\x34\x27\x8e\xb9\xb2\xb7\xe8\x00\x8d\xaf\xfa\xc5\x71\xa4\x3b\x88\x94\xa8\x9a\x4c\xe4\x03\x53\x09\x1a\xc7\x5c\xa0\x58\xa5\x6d\x81\x3d\xbd\x96\x50\x64\xbf\x26\xaa\xea\x34\x4e\xb8\x46\xa3\x30\x0b\xc7\xdd\x9e\xf2\xac\xf1\xb6\x4c\x7e\x84\x0a\x8c\x2b\x8a\x75\x8c\x85\xa9\xc0\x23\x8d\x13\x4d\xbd\x3e\xea\x7d\x56\xc0\xcb\xc9\x5a\xb7\xed\x4f\x65\x99\x4f\xbf\xd2\x00\x12\x9e\x31\xa3\xb6\x2a\x4d\xee\x48\x1a\x24\xd8\xf8\xd9\xfc\xab\xfb\x0b\xb5\x29\x27\xe6\xd6\xbd\x15\xf1\xac\x7d\x0a\x8d\x45\x62\xd9\x01\x42\x6b\x2c\x4d\xdd\xb7\x0b\xb3\xf6\x57\x3d\x8b\x16\x8d\x45\xaa\x62\x27\x1e\x89\xb7\xef\xf1\x8a\x9f\x22\x8d\x65\xcc\x30\xb9\xc1\x18\xbb\x0d\x10\x56\xbf\x1a\xa8\x0a\x91\x0f\x34\x75\x67\xc3\x19\x1f\xea\xc6\x2a\x92\xf8\x72\x34\x50\x37\xdb\xbc\xdf\xee\x63\x2d\x52\x2b\xd7\x6d\x43\xe0\x7d\x93\xf5\xcf\x11\x98\xc1\xac\x6b\xd9\xbe\x6d\x79\x6f\x91\x40\x63\x50\x06\xb5\xa5\xee\x4b\xab\xde\x75\x2b\x9a\x2b\x20\x9e\xd8\x04\xd4\xd2\x3e\x0f\x59\x71\xb8\xf1\xed\xfa\x2b\xef\xa3\x21\x1c\xd7\x82\x9b\xac\xa9\xcb\x42\x34\x83\xad\x2b\x36\xcc\x3e\xa2\x26\x3b\x82\x5b\xa8\xa6\x30\xb5\xd8\x40\x64\x8d\x76\x06\x24\xe2\xfa\xb7\x31\xed\x91\x26\x81\x8c\xac\x89\x75\x4f\xcd\x6b\x53\xf7\x17\x1f\x63\x27\x81\xe6\x18\x34\xd8\x08\xf7\x67\x59\x3c\x9e\x8f\xf3\xd6\x99\x34\x21\x94\x62\x59\xe0\xa1\x2c\x44\xa5\x3c\xac\x25\x21\xda\xa2\x2b\xec\x3b\xb0\xcd\xcb\xa6\x1e\xdc\xc0\x84\xb2\x10\x57\xdd\x8f\xfd\x9d\x35\x9b\xa9\xbb\x23\xb1\x65\x1b\x54\xbd\x93\x54\x77\x28\x65\x88\x06\x75\xfe\x34\xed\x35\xaf\x86\xbe\x72\xed\x08\xee\x9d\x70\x9e\xa0\xaa\x07\x0c\xea\x7e\x3d\x4d\xa8\xd2\x62\x54\x81\xb8\x39\xab\x37\x68\xfa\xd2\x5b\x77\xa3\x98\x26\xa0\x06\x84\x00\x57\x84\x9a\x79\x01\x92\x90\x6a\xef\xed\xb6\xc8\xf3\x36\xb1\xe8\x7e\x51\xc8\xac\x14\x39\x52\x7b\x57\xbb\xef\x4b\x27\xb8\x39\x7a\x37\x93\x50\x59\xcf\x2b\x7b\x82\x85\x5e\xeb\xfa\xe6\x73\x29\x26\x05\xd1\x84\x13\x65\xd5\x07\x45\xfd\xba\x39\x7b\x9a\x9e\x3f\x18\x49\x84\x2c\x1d\xaa\xf2\x03\xed\x10\xfd\xdf\x13\x85\x31\xf3\x22\xab\x74\x55\x9e\xe8\xf4\x9c\xa9\x9d\x59\xcf\x60\xd6\xb7\xb3\xbf\x8e\xa7\x26\x76\x7a\xd7\x9d\x15\xcf\xa2\xd0\x7f\x01\x7b\x77\x1f\x8e\x63\x40\x36\x4a\xb7\x80\xa3\x83\xc0\xe7\x33\xd4\xd8\x9b\x74\x50\x27\xd7\x5d\x9d\x7d\x2f\x92\x58\x68\xcc\x6c\x84\xd6\xdb\xec\x30\x9f\xce\x26\x49\xaa\x12\xdf\x43\xc8\x8e\x70\x49\xf3\xa7\x49\x1a\x0a\x8c\x2e\x36\x56\x4a\xc8\x96\x9d\x47\xdb\x4d\x92\xf2\x28\xb5\xd2\x7f\x42\x43\xd5\xb9\x51\xfb\x5b\x99\x1a\x5b\xbd\xf6\xa0\x7d\xeb\xa4\xe8\x8f\x8a\x08\x38\xf3\xec\x51\xa7\x38\x47\xba\x83\x92\xe1\x4a\xf0\xb0\xf8\xd7\x7e\xfd\xf8\xfb\x6a\x2c\x37\x45\x13\x19\x68\xf4\x15\x72\x3e\x8d\xde\xbe\x5e\x5b\x61\x9a\xf1\x0f\x91\x54\x3a\x41\xaf\xd2\x3b\xb3\x76\xa7\x89\x23\xa4\xff\x2f\xc5\x29\x6b\xa6\x22\x89\x34\xd1\x31\x89\x87\x9c\xfb\x3e\x2f\x4d\x74\x62\x09\xa0\x28\x97\x8b\x25\xc3\xd1\xea\x92\x68\xb0\xdb\x5e\xfd\x01\x70\x1a\x98\x87\xcd\x2f\x66\x09\x70\x89\x09\xc6\x11\x05\x5b\x31\xc3\x5b\x89\xaa\xe8\x51\xd4\x89\x11\x34\xd6\x5e\x84\xdf\x3a\x92\x8c\x4f\x61\xc0\xc1\x72\xd1\xee\xbe\x56\xe7\xe9\x2e\x9a\x22\xa8\xb7\x9d\xda\xb7\xbf\xaf\xb7\x9b\x67\x0b\x02\xf3\xa8\xbc\x94\x50\xc6\xbd\xdb\x19\xd6\x6a\x9f\x44\xd5\xdc\x7c\x7a\x57\x9b\xd9\x15\x2d\xa5\x2a\x0e\xdd\x64\xbf\x6f\xf3\x11\xbf\x8b\xfd\x84\x6c\x7c\x79\x29\x8b\x00\x9d\x1a\x0f\xd0\xbc\x58\xc5\xa3\x36\xe2\xbd\x1f\xb4\x65\xdc\xc0\x30\x51\xd6\x4b\x10\x53\x9a\xac\x38\x5c\x2c\xdd\x69\xc4\xa8\x22\x9d\x95\x90\xb0\xc8\xfe\xb1\x2d\x00\x4d\xa3\x50\x20\xca\xd0\xdb\x59\x6f\x11\x57\xd0\x9f\x23\x21\xc2\xa7\x74\xa5\x86\xc1\xdf\xd3\xd8\x66\xe2\x42\x77\x75\xa5\xbd\x2a\x0b\x93\x1d\xba\x31\x2a\xf5\x15\x79\x3b\xa7\x6f\xda\x6c\xbf\x5b\xc5\xd2\x98\xc6\x3e\x5d\xc4\x09\xd9\xe6\x7b\x9b\xea\x12\xbe\x93\x26\xd4\x66\x7a\x35\x14\xbd\xa4\xd5\xba\xb6\xb6\x63\xb3\x7a\x43\xed\x67\xec\xfd\x39\x59\xeb\x8d\xe9\x43\x4e\xa2\x08\x43\x40\xb4\xb0\x68\x6f\x71\x7b\x87\x26\x13\x3b\x4d\x74\x12\xa9\x81\x88\xc5\x40\xcf\x89\xa6\x29\x4f\x70\x79\xfe\x7e\x2e\x1f\xb3\x73\xf7\x57\x09\xa8\x07\xb8\xcd\x8e\xa7\x1c\x86\x8d\xdd\x54\x50\xdb\x7a\x73\x89\xa2\x63\x06\xcc\x82\x45\xfc\x27\x12\x8a\xd1\xc2\x4d\x76\xb8\xcb\xea\xd7\xe7\xd2\x9b\x70\xd0\x54\x1a\xc0\x3e\x45\x7d\x96\xc7\x1e\x64\xb0\x9b\x21\x3f\x8e\x6f\xa5\xe2\xc2\xfb\x8e\xff\x01\x62\xc8\x38\xa3\xa9\x12\x80\xc5\x13\x17\xb8\x60\x5a\x61\x67\xd4\xa0\x06\x93\xa2\x09\x6e\xc7\xc5\x7f\x82\xea\x56\x7c\xf6\xc7\x12\x54\x2d\x76\x3d\xcb\xa5\x38\x4d\xb5\x24\xc6\x57\x03\x4c\xa0\x8c\x47\x1b\xf1\xd6\x4d\xbd\xa8\xb0\x3d\x3c\x10\x32\xa6\x29\x84\x8c\xbb\xee\xfb\xcf\xb2\xca\xf5\xf2\x7c\x6a\x67\xfa\x48\x6b\x63\x74\xd3\x40\x26\x8c\x7b\x01\xe6\xce\xd4\xd2\x9f\xce\x44\x04\x57\xf4\x76\x9d\x67\x74\x57\x3a\x7f\xd1\xd1\xb2\x9f\x1a\x4e\x10\x43\x03\x85\x26\xd3\xe5\x3a\x35\x69\x8a\x91\x63\xe3\xf0\x88\xfd\xdf\x6d\x0c\xd0\x2e\x0c\x95\x28\x74\x90\x76\x47\x84\x65\xc9\xb5\x51\x69\x95\x1d\xb2\xc2\x07\xf7\xd3\x1c\x74\x3c\x45\x8d\x83\xc3\xd6\xce\xfa\x07\x75\x7e\xf0\x42\xc3\xd9\x6c\x75\x52\xd0\x16\x01\x0b\xb5\xb6\xf2\x02\x9d\x75\x3b\x5a\xf5\xfe\x36\x19\xa7\x23\x64\x0a\x22\x21\xe4\xe6\x5c\x15\xd3\x84\x45\xd0\x58\x89\xae\xdb\x5f\x56\x1a\x2a\x5c\xf9\x48\x38\x1d\x97\x24\xa8\x02\x84\x6c\xbd\x4e\x54\x7f\xec\xfd\x43\x05\x15\x5a\x59\xa0\xcf\x3b\x36\x5d\x30\x6b\x00\xfd\x72\x85\x63\x21\x18\x4b\x90\x81\x88\x80\x01\x3d\x61\x39\x53\xc1\x62\x8e\x11\x15\xc2\xaf\xba\x46\xc0\xff\xae\x46\x20\x58\x22\x42\xd9\x75\x1e\x26\x35\xf7\xd9\xb9\x2b\xc2\xc4\x16\xbb\x6a\x68\x5e\xb2\x81\xe6\xd5\x78\x54\x44\x24\x06\xc6\xc2\xd9\x0e\x8e\x7c\xf4\xfd\x18\xc5\x52\xd3\x81\xa3\x46\x99\x63\x3f\xfb\x46\x33\x54\xc4\xc4\x60\xe5\x44\x58\xc1\xad\x5b\x18\xb4\x76\x44\x42\x49\x24\x07\x4b\xfa\x95\x16\xc2\xf8\x36\xa6\x52\x04\x2e\x01\xbd\x29\xcb\x76\x7b\xed\xd8\xe6\xe3\x5f\x94\x4a\x89\xa1\x9d\x45\xcc\xdf\x88\xa6\xc9\x71\x8f\xba\xd4\x6e\xf8\xbb\xff\xf6\x81\xb4\x48\x95\x5d\x10\x5c\xa3\x0f\xaf\xbc\x93\x66\x74\x63\x04\xb5\xfe\xf1\x2e\x17\x86\xf2\x94\x43\xef\x10\x4f\x85\xe0\x56\x42\xf1\x80\x5e\xf7\xf5\x39\xbf\x5e\x3d\x45\x98\xc6\xfc\x8c\x10\x5c\xf1\xde\xd4\xef\x49\xd4\xf5\x47\x59\xe9\xa5\x97\x9b\xfe\x6d\xce\x11\x8f\x0a\x91\xa6\xb6\x97\xdb\x3e\xbe\x2e\xae\xfd\x83\x4e\xe6\xac\xe4\x29\xf6\x57\xf3\x39\xfd\x88\xf1\x75\x28\x13\xa3\x18\xac\xeb\x49\xd9\xc4\x71\x32\x1b\x74\xc0\xbd\xfa\xc9\x12\xaa\x26\x33\xde\x5d\x6c\x12\xd5\x0e\x01\xb8\xdd\x87\x21\xb0\x14\x3b\x6b\x9a\x0e\x45\xb3\xbe\x1d\xdd\xaf\xee\xbd\x85\x54\x83\x55\x24\x6e\x27\x1b\x16\x01\xaf\x4f\x7c\x19\x44\x41\x3c\x30\x80\xc3\x74\x76\xa6\x8a\x2b\x03\x25\xc0\xd6\xfc\xbb\x8d\x48\x12\x66\x10\x79\xea\x50\x15\xc8\x06\xc1\x4e\xa7\xad\x0b\x6b\x44\x5d\xcc\x56\x00\x24\x89\x13\xef\x7c\x33\xf1\xed\xa1\x92\x06\x54\x9a\xee\x07\x0c\xaf\xbd\x1b\x20\x62\x6b\x19\xd9\x06\x16\xc3\xbd\x51\xd2\x28\xc6\x82\x7c\x56\x2f\x73\x10\x93\x5a\xb9\xa4\x9c\x21\x78\x0c\x99\x66\xa0\x77\xe5\x23\x7c\xd8\x3e\xcb\xe8\xb7\xb2\x38\x12\x43\x2d\xcc\xae\x9b\x36\x99\x1f\x32\x64\x40\x3b\xf5\x1f\xec\x19\x5e\x21\x32\xcb\x50\xb2\xc0\x95\x9c\xde\xdb\x35\xf9\xdf\x65\x56\xe4\x59\xdd\xec\x4b\x3d\x59\xc5\x65\x68\x42\x87\x11\x44\x22\x13\x88\xe3\xcb\x9d\x2f\xdd\xcb\x38\x0e\x64\xdf\x81\x7a\xd9\xde\x3e\x94\x45\xf3\x9a\x7f\x6e\x45\x2e\xaa\x0c\xae\x36\x20\xbb\x8f\x13\xd4\x4e\x78\xc8\x74\xd7\xce\x91\x09\x67\xf8\xa2\x76\x59\xb1\x95\x5f\xba\x32\x61\x92\xd8\xda\xca\x5a\xd9\xd6\xec\x6b\x2f\x14\x2a\x53\xc2\xc8\x40\x8f\x11\x45\xe2\x17\x85\x7e\x69\x23\xc4\x8f\x2a\x6b\x1c\x06\x6b\x78\xd9\xbe\xe7\xdb\xfe\x3b\x06\x8d\x4e\x2e\x05\xe3\x18\xb4\x1f\x3b\xc2\xbe\xfb\x42\x60\xd4\xb1\x58\x75\xbd\x39\x37\x75\x23\x2e\x75\x91\xa9\x14\x91\x2d\x2c\x7d\xa0\x4a\xf6\x60\x5d\x92\xed\xba\x04\x7e\x6d\xc8\x8a\xc3\xfe\x90\xbd\x83\xf8\xe8\xa2\x27\x29\xb8\x02\x4b\x9a\xfa\xf1\xc7\xd2\x57\x5a\xfd\x41\x29\x09\x82\x39\x9c\x64\xc2\xfc\x5e\x29\x15\x49\x63\xd2\x29\xf4\xc8\x1c\xaa\x6f\xe2\x08\xeb\x89\xbd\x04\x95\x4a\xc4\x28\x8d\xd5\x3f\x9a\x2a\xfb\x73\x98\x37\x5f\xdd\x2a\xa5\x8e\x02\x6f\x12\xba\xcb\x9a\x73\x2e\xb2\x0a\xf6\xcb\xf2\x78\x6a\x60\x3f\x29\x03\x48\x9d\x00\xda\x12\x2e\x4b\xfd\x39\xa2\xb6\xa8\x80\x09\xec\x3e\x65\x0d\x1c\x87\xce\x15\x54\x91\x50\x6a\x4f\x9e\xb5\xda\xb4\xe3\xb7\x54\x11\x13\x50\x67\x1e\xb0\x3d\x9f\xa0\xba\xad\xc4\xa1\x83\x6e\x28\x62\x62\x74\xb1\x45\xbc\xf6\x52\x9c\x56\xf8\x90\x86\x91\xbb\xa2\x81\x8d\x10\xed\x5c\x5f\x14\xfa\x1b\x34\xdf\x4b\x9d\x63\x3e\x39\x24\xf2\x2a\x2a\x00\xa1\x9f\x59\x7d\x73\xfe\xec\xd1\x24\x7e\x49\x54\x54\xdb\x76\x6c\x0d\x4d\xb7\x33\x6c\x55\x06\x85\x82\xf9\xb4\x44\x31\x22\x11\xdd\x99\xa9\xba\x9e\x1a\x0b\x52\xc5\x42\xdb\xbe\x2c\x5d\x98\x38\x49\x48\x14\x4b\x00\xdb\xb5\x26\x2b\xb4\xb3\x35\xc2\x14\x03\x51\x5e\xa3\x5b\xaf\x58\x1a\x22\x42\xed\x76\xf3\x6d\x3f\xba\xf3\xcc\xa4\x18\xcc\x3d\x2f\x76\xab\xfd\xd3\xcb\xcd\xfd\x7a\x39\x04\xa7\xaa\x90\x68\xa9\x06\x4e\xbb\x03\x9a\xb0\x8a\x08\x97\x8e\xfb\xe4\xcd\x81\x3b\x13\xa2\xf6\x68\x82\xf5\xa6\x5c\xd4\xcd\x43\xf9\x0e\x43\xd1\x3d\x3f\x24\x0c\xb1\x9a\xa6\x5e\xdb\x7d\xec\xd1\xe3\x97\x15\x27\xc4\xbb\xfe\x58\xbc\xca\xd5\x06\x83\xe2\x3a\x44\xd7\xee\x36\xf0\x51\x99\x5f\x6c\x54\x4c\x12\x6c\x7d\x56\xd9\xe1\xb5\xe9\x79\x4b\xfe\x28\x97\xa8\x1c\xba\x3d\x81\xeb\x9e\xf5\x2d\x17\x15\x9b\xd8\xf9\x28\xff\xdb\x39\xd0\x39\xab\x4f\x77\x3c\xe1\x01\x96\x50\x33\x53\x96\xba\xc3\x4c\x76\x47\x85\x55\xb8\x1f\xa0\x50\x9e\xca\x32\x7f\xc8\x8a\x66\x60\x10\x46\x55\xa2\xb5\x25\xfe\x7b\x6a\xf7\x08\xaa\xa2\x12\xb0\xf8\x51\x9b\xe3\xae\x6b\x8f\xb8\x98\x87\x14\xaa\xc4\xc4\x28\x8f\xb9\x78\x5e\x8f\xcf\x93\x52\x11\x4d\xa4\x49\xbe\x5c\xba\x55\x2a\x03\xac\x98\xd8\x4c\xed\x26\xcb\xf3\x7b\xeb\x35\x33\x94\x5a\xf8\x22\x66\x53\xa9\x54\xf8\x4c\x51\xa8\x3e\xab\xfd\x62\x3d\x7e\xab\x45\x40\x70\x59\x14\x28\x94\xb3\xa9\x2c\xe6\xd2\xd1\xb6\x2f\x7a\x6d\x73\xd8\x52\x25\xc2\x04\x1f\x7c\xfd\x21\x4e\xf5\x38\xb4\xa1\x81\x1b\x23\x65\x8a\xbc\x69\x78\x77\x84\xce\x79\x4d\xfe\xf9\x99\xa5\x68\x80\x00\x1a\x0d\x22\x87\xea\x7b\x57\x04\x55\x2a\x16\xa8\xc5\x56\x67\x87\x02\xb5\xb2\xc1\x64\x3e\xad\x57\x5a\x87\x28\x8c\xfb\x5e\x5e\xaa\xc0\x0c\x6f\x13\xc4\xc0\x63\x5f\x31\xc9\x08\xdf\x8b\x36\x82\xf2\x67\x31\x89\x0c\x74\xb7\x9d\xdd\x9c\x0b\xdd\x6d\x75\x3a\x88\x05\xa2\x65\xfe\xeb\x8f\x1f\xc3\x37\x59\x07\x3a\x22\xa9\x9b\x32\x97\xc0\x9c\xd1\x6f\xd3\x24\x16\x92\xf8\x96\xd8\xb7\x52\xe4\x7e\x76\x6b\xa2\x05\x32\xd0\xfc\x37\x67\x79\xbb\x60\x6e\x8e\x45\x36\xa4\x09\x25\x57\xff\x7b\xf9\x53\x35\x15\x09\xca\xbc\x8a\x73\x53\x5a\xa3\xaa\x2e\x14\x9e\x49\xd1\xfc\x87\xb4\x52\xa2\x4b\xc1\x6c\xdf\x6a\xa1\xa6\x0b\xa8\xa6\x40\xf1\x47\x77\xaf\xd1\x93\x7b\x5d\xfd\xef\x61\xc4\x16\x76\x0f\xd0\xec\xac\xdd\xb4\xc9\x9a\xc5\xf1\x5c\x76\x93\x51\x87\x91\x19\x15\x2c\x3d\xfc\xae\x4d\xa3\x0e\xa2\xb9\x14\xc4\xff\xca\x6d\x7e\x0e\xed\xa2\x23\x1e\xf0\x21\x06\xaf\xf7\x6a\xa3\x3a\xd2\x84\xc8\x2e\xdd\xbb\xaa\x2d\xa0\x39\x68\xed\x58\xe9\xfb\xaa\xfc\xd8\xab\xf2\x2a\xd9\xd5\x7d\x22\x16\xb1\x72\x65\xc6\x45\xd3\x54\xcb\x73\xdd\x94\x7f\x49\x2f\xf1\x9f\x55\xdc\x66\x5e\xa2\x7a\x2b\x4a\x0d\x3d\x12\x62\x31\x7d\x04\x49\x68\xa3\x53\xdb\x1e\xf4\xdb\xaa\x16\x20\x91\x45\xff\xb8\x5e\x7a\x67\x07\xaa\xa5\x34\xbc\x37\x8b\x5d\xab\xf2\xd6\xd5\xd2\x10\xf2\x75\xa5\x03\xa4\x15\x8b\x60\x24\xcc\x74\x15\xf7\xa5\x95\x6b\x9c\x1a\xc4\x68\x3b\xcf\xde\x51\x1d\x54\xab\x38\xc6\x12\xba\xc1\x16\xd7\xa0\xc7\x3b\x98\xb2\x2a\x15\xc2\x41\x8e\x87\x45\xb4\x01\x3c\x8f\x87\xa3\x4c\x43\x83\x88\x49\x34\x10\x7b\x5f\x4f\xe8\xaf\x1a\x84\x48\xbc\x24\x5a\x05\x06\x2a\x28\x2e\x79\xf9\x93\x5f\x03\x32\xc5\xdb\xd5\xae\x34\x83\x82\xc8\x68\x21\xd4\xa0\x2d\x00\xc0\xd5\x64\xaf\xdc\x43\x13\x84\xf8\xab\x9d\x6d\xb8\x55\x56\x1a\x71\x3a\xfc\x40\x12\x69\x87\x50\xb4\x58\x12\xa7\xc1\x3e\x39\x1d\x0d\xb4\x17\xeb\x7e\x17\x59\x2e\xc6\x58\x5e\x6d\x68\x88\xb9\xd3\xe2\x5c\x75\x38\x3f\x6d\xb8\xe2\xc6\x17\x15\x8a\x73\x3d\xd1\x69\x80\x40\x05\x48\x55\xb1\xbb\xc1\x16\xf2\xdc\xa2\x9d\x46\x17\x08\x24\x32\xd4\x8a\x4c\xf4\xda\xed\x14\x88\xb1\xf2\x11\x88\x21\xcc\xf3\xb2\xa9\x1f\xcf\xc7\xc9\x27\x29\x8f\x91\x94\xbf\xcd\x9c\x6a\xe8\xe4\xfb\x69\x6a\x10\x36\x67\x41\xda\xbb\x57\x31\x44\x49\x00\x85\x08\xf3\x17\x7b\x75\x0f\x59\xe1\x51\x12\xe3\x93\xb0\x34\xc4\xf6\xce\xde\xf2\x23\x26\x5a\x39\x97\xa4\x57\x88\x08\x43\xe0\xef\x7d\x79\xf0\x01\x9e\x97\x1f\x98\x9d\xe3\x10\x85\xd4\xbb\xca\x8f\xf2\x7b\x6c\x0b\xcc\x6e\x96\x10\x49\xed\xed\x04\x6e\xda\x1b\x54\x67\x6a\x72\xd9\x91\x11\x5e\x5b\xbf\x5d\x98\xad\x4b\xbb\x3b\xc6\x09\x47\xc2\xcb\x87\x6f\xbc\x5b\x00\x40\x77\xef\x79\xc2\xf0\x61\xaf\x17\x0f\x08\x0b\x5c\xed\xbe\xef\x3b\x49\xba\x36\xb0\xec\x07\x5a\xb0\x7e\x2d\x0c\x2c\xb4\x66\x74\xb8\xa7\x74\x17\x1b\x3b\xef\xa5\xfd\xdd\x72\xc4\xb8\xbf\x6a\x13\x49\x21\x4e\x43\xc5\xbc\x9d\x37\xd2\x94\x27\x4a\x90\x49\x37\xd0\x42\x91\xd1\x77\x8b\xce\x47\x53\x10\x0b\xe9\x6b\x79\xab\xe6\xd5\x2d\xd9\xef\x65\x76\x2d\x8c\x87\x84\x11\x65\x27\xb6\xed\x34\x0f\xbf\x31\x91\x29\x72\x50\xeb\xec\x4f\xd8\x18\x2c\x33\x0c\x93\x06\x48\x81\x63\x9a\xe7\xc0\x9e\xe2\x17\x8a\x6c\x1c\x4f\x02\xf3\xdb\xab\x65\x34\xf7\x69\xc9\x6c\xcb\x6f\x7f\x82\xca\x94\xd5\xb1\x53\xb3\x99\x7e\xec\xcb\x72\x1f\xc8\x94\x38\x2b\x2b\xb4\xf6\xb3\xc7\xee\xaa\xf2\x68\x03\x89\xc9\xcf\x55\xdc\x4a\x16\xf5\xb6\x21\x50\xef\xca\xab\x8c\x21\x50\x92\x91\x3e\xa6\x70\x3d\xee\x2f\xc3\x50\x50\x60\x59\x03\xb2\xcc\xa1\xf0\x79\x01\x68\xa3\xa8\x15\xe3\xc1\x3a\xfe\x62\x20\xd7\x76\x23\xa6\x2d\x4c\x00\xd7\x61\xc9\x9c\x32\xed\xba\x18\xfb\x86\x8d\x7f\x14\xa4\x29\x52\xb0\x1a\x71\xfa\x6d\x14\x45\x82\x49\x29\x1e\xb9\x13\x1f\xc5\x20\x51\x30\x81\x08\x30\x1d\xb4\xf6\xdf\xf7\xcb\xbf\x9e\xa7\x86\x68\x6a\xa7\xb6\xd0\xfa\x5b\x55\x9e\x4f\xbb\xd2\x86\x36\xf3\x1d\x67\x43\x19\x45\xc0\x53\x56\xdb\x57\xee\xe6\xfc\xd9\x2e\x8b\xfe\x0a\x68\xcc\x30\x44\x75\xa9\xeb\xe5\x6a\x6e\x28\x58\x0b\x60\xeb\x0f\xb7\xdf\xdc\xed\x6f\x36\x9b\xed\x6e\xf5\xec\x3b\x98\x86\x91\x84\xf6\x10\x76\xa7\x1e\x31\xfb\x50\x0c\x8b\x8c\xc3\xb8\x88\xa3\xf3\x76\x18\x53\x20\x0c\xe3\x01\x0b\x87\x85\x84\x67\x78\x87\xe2\x0c\x8b\x66\xa6\xc7\x6c\xc2\x08\x90\x53\xf5\x54\x41\xd3\x7c\x7e\xcb\xaa\x7c\x7a\x0b\x47\x37\x8f\x07\x31\xf2\x40\xeb\x13\xa8\x4c\xe4\x63\x3f\xc7\xf6\xb0\x75\xb1\xb6\x3b\x70\xb3\x38\xeb\xac\xb9\x60\xa3\x8f\xef\x4e\x1c\xa7\x66\x68\x32\xec\xd4\x11\xaa\xf2\x88\xc1\x92\xbe\xa4\x4a\x5e\x3b\x8f\x00\xea\x97\x1f\x74\xe8\x5c\x39\xdd\xd6\xf1\xad\xec\x9e\x6b\x22\x02\x62\xd5\xa5\x3f\xd7\x45\xdd\x88\x3c\xbf\xa4\xa6\x99\x44\xc6\xa9\x67\xdc\xe7\xe7\xf6\xd1\x54\xab\xc3\x61\xb6\x1a\x6b\x12\x23\x3c\x95\xd7\x19\x74\xed\xc4\xaf\x81\xcc\x98\x49\x0c\xa0\x38\x4f\x56\x58\x60\xd3\xbe\xb1\xaa\x33\xa3\x6f\x4c\x03\x8e\x8c\x8b\xa2\x6c\x76\x65\x79\x5f\x16\x87\x6d\x56\x28\xf0\x8c\x38\x37\x4a\x44\x0c\x27\xf1\xc9\xbf\x72\xae\xa5\xe3\x0a\x67\x9e\x74\x6d\x44\x64\x9c\x08\xac\x2a\x0b\xed\x23\xbd\x9e\x74\x64\x04\x37\xa9\xf3\x48\xe9\xfa\x2c\xfd\xa2\x33\xec\x72\x4f\x26\xa2\x48\x01\x03\xc2\xf2\x04\xc5\xf6\xb5\x9c\x34\xf5\x8d\x30\xc1\xc0\xac\xf3\x76\xb1\xf9\x7b\x72\x01\x46\x32\xed\x92\xee\xe6\x19\xd0\x82\x2b\xdf\x1e\x45\x75\xa5\xa7\x6c\x14\xe5\x28\xf4\x71\x3e\xb5\xc9\xde\x53\x59\x4f\x0a\xc8\x46\x39\x72\xb7\xf2\xe9\x0e\xb6\x71\x06\x70\x22\xa3\x22\xed\x72\xb6\x66\x68\x3a\x53\xff\x36\xc4\x99\x0e\x02\x53\xa3\xb8\xc1\x5c\x4a\x42\x01\x26\x53\x99\xa8\x3e\xc7\xa4\x73\xa3\x99\x95\x39\xc5\xba\xa2\x2d\x8d\x77\x47\xac\x15\xd7\xe6\xf8\xfb\xd3\xe3\x30\x75\x34\x5a\x29\x9c\x8e\x60\x97\x66\xff\x57\x93\x20\xa4\xdf\x35\x8e\xa6\x7e\x7d\xd4\x80\xd2\xc6\x4a\x83\x9f\x3e\x7f\x9b\xa5\xb7\x4e\x6e\xb0\x01\x86\x1f\xa8\x9b\xb2\xc2\x6e\x32\x6e\x87\x83\x97\x9c\x05\x41\x68\xcd\x4f\x5c\xbd\x69\x9c\xb0\xf7\x61\x13\x0b\x82\x84\x08\x9f\xdd\xcc\xe0\xf8\x59\xc0\x12\x21\x7c\xbd\x19\xf1\xce\xbb\xf2\xa1\x1e\xd7\x34\xfd\x48\x91\x52\x69\x69\x14\x1f\x8e\x61\x3e\x1d\xa1\x94\xd2\x0e\x76\xf3\xe3\x5c\x4c\x8f\x42\x62\xad\xa3\x6c\x8b\xe1\x4f\xab\x86\x70\xd9\xd1\x75\x1b\x22\x0b\xc2\x90\x49\xe5\x45\xab\x47\x50\xdb\x7f\x8c\xcf\x1c\xa6\xd2\x47\xcc\x77\xd9\xe1\xb5\x99\xf8\x95\xb6\x03\x34\x8a\x17\x2c\xf2\xfc\xd3\xd1\xa9\x07\x4f\x96\x05\x51\x10\x86\xa6\xef\xa0\x39\xdc\xee\x43\xe9\x55\x8a\x58\x10\xa5\x0a\x4c\x8f\xb5\x9f\xe7\xf3\xfe\x63\x7c\x6b\x23\x45\x49\xe0\xf5\x81\x6d\x61\x0a\x6d\x5b\xb0\xfb\x27\x4b\xaf\xd2\xe4\xb5\x2c\xdc\xa7\x38\x8b\x31\xb3\x78\x5e\xdd\xdd\x8d\x60\x34\x2c\xe0\x11\xc1\x7e\xc3\x72\xf3\xf0\xf0\xf2\xb8\xde\xfd\xb1\x5f\x2e\x9e\x9e\x56\xb7\xfb\xdf\x17\xf7\x2f\xab\x6e\x54\x0a\x18\xe3\x7f\xdf\xfd\xab\xfb\x53\xbb\x86\xff\x9f\xff\xef\xff\xac\xd6\x4f\x31\xa1\xfb\xdb\xcd\xc3\x62\xfd\xb8\xff\xbe\xd8\x7e\xf7\x23\x12\xca\xb1\x20\xf3\xf6\xa9\x9e\xda\xc0\xfe\x22\x9b\xf7\xe3\x98\x91\xd1\x48\xad\xe9\xaa\xd4\x19\x0b\x92\x38\x40\x18\x64\xe3\xed\x83\x50\x8e\x0b\x01\x61\x77\x65\xb5\x05\xd0\x03\xf0\x2b\x0b\x12\x45\x49\x47\x70\x3a\x4c\xce\x95\x52\x8a\x59\x49\x86\xf8\x45\xab\x2b\x37\x99\xca\x29\x4b\xb9\x83\x69\x6c\xd5\x2b\x1c\xc5\x0c\x86\x8e\x05\x69\x92\x26\x1d\xd4\x61\x5b\xe6\x7a\xef\xbf\xbf\xcd\x66\x23\x8b\xbf\x3b\x17\x7a\x3b\xe3\x7e\xe2\x07\x3a\x3f\xf3\x26\x83\x6a\xf7\x51\xf6\x40\x0f\x16\xa4\xc6\x76\x58\xea\x13\x54\xc7\xbc\xac\xc6\x1e\x1f\x2c\x10\x5a\x7b\x58\xc3\xfe\x54\x95\x27\xa8\x9a\xcf\x7d\x6e\x5b\x3c\xb3\xbb\xfa\xf8\xe2\x65\x18\x60\x0b\xe2\x24\x3e\x7f\x66\x45\x91\x15\x87\x6f\xb9\xd0\xd9\x50\x27\x7c\x72\xad\x52\x5b\x14\x55\x05\xef\x50\xd5\x30\xb9\x65\x8a\x71\x43\x70\xf3\x94\xed\xbc\x1f\x98\x89\x76\x6f\xa1\x62\x36\x32\x77\xca\x9b\x03\x84\x35\x0b\x54\x2c\x51\x47\x71\x57\x95\xc5\xbf\x9a\x36\xac\x9f\xf7\x9b\x65\x81\x12\xb1\x92\x5d\xe2\x69\xc1\xb7\x7e\xc3\x58\x17\xdb\x3f\x85\x2c\xbb\x93\x1a\x11\x5a\x94\xf1\xea\x17\xa8\x21\x3d\x7a\x72\x4e\xad\x29\xca\xab\xac\x4e\x35\x26\xca\xfe\x04\xda\xc8\xd4\x85\x57\xf9\xa2\xd0\x77\x22\xcb\x7f\x66\xcd\x6b\x79\x6e\x9e\x41\xd4\x65\xf7\xd6\x03\x63\x18\x86\x5d\x40\xec\x58\x60\x42\xa0\x6e\x2a\xf9\x3a\xd7\xdf\x88\xe1\xdb\xcf\x99\x24\x1c\xe0\xaf\x2d\x0d\x76\x72\xd3\x4d\xac\x92\xae\xdf\xed\xb0\xa0\x57\x84\x43\x59\x60\x80\xc5\x6e\xb7\xfd\xaf\x33\x54\xb3\x6c\x2c\x46\x02\x45\x95\xa3\x6b\x60\xcf\xf7\x49\x4c\xd6\x66\x42\xc1\xbe\x8b\x53\xd5\xfa\x51\xb5\x64\x34\xd9\x48\x18\x28\xac\xe0\x3e\x2d\xbf\x2f\x3c\xeb\x88\x91\x90\x58\xf5\xca\x0a\xf3\xb0\xd3\xe4\x6b\x42\x16\x60\x35\xcd\xfa\x03\x4e\x92\x98\xd9\xb7\x89\x84\x3a\x89\x9c\x8f\x0c\x62\xb2\x1e\xe0\x58\x5e\xb1\x59\x73\x9f\x88\x58\x42\x7d\x55\x38\x2b\x0e\x7b\x25\x2a\xbd\x77\x13\x5c\xef\x1d\x56\xd7\xad\xa7\x84\x4b\x8d\xc0\xe8\x57\x51\xbf\x3e\xd4\x87\xbf\xb2\xe0\xbd\xe0\xb0\x8c\x6e\x09\x87\x14\x7f\x1e\xa2\xb5\xff\x96\x7a\x04\x23\x71\xc8\x74\x3c\xf0\x94\x35\xce\xe3\x70\xe8\x27\xcb\x48\x12\x5b\x23\xe4\x63\x7e\xdb\x26\xdd\xed\xca\xe0\x67\x23\x49\x44\x8c\x65\xc6\xe7\xc5\x72\x75\xb7\x79\xee\xa0\xa2\x8c\x24\x32\xc2\x79\x5a\x7f\x88\xd3\xac\xd2\xf7\x78\xf9\x26\x89\x86\x98\x79\xb9\xfb\x6a\x88\x19\x1e\xc6\x64\x8c\xa4\xa9\x8d\x0d\x6b\x68\xb0\xee\x8d\xa9\xe1\xc5\x7b\x78\xd9\xd8\x60\x24\x95\x01\x58\x11\x65\xa4\x8b\xd5\x9d\x2f\x98\x69\xa0\x5a\xe6\x99\x31\xfe\xda\x45\x60\xfd\xfc\x0e\xd0\x8c\x8d\x11\x18\x11\xb1\x0a\x30\xcb\xac\xb2\xc3\xc1\x2a\x9c\x8f\x7c\x46\xe7\xa7\x85\x48\x08\xe9\x53\x9b\x81\x1c\x0d\x23\x22\xd5\xf8\x5d\xb9\xa8\x9b\xf5\xad\xff\xab\x24\x02\x7b\x58\xcb\x5e\x28\x79\xc0\xcd\xfa\xea\x57\x4a\x23\x50\xa8\xa0\x80\x5f\xcd\x3e\xf3\x3b\x18\x51\x3c\x00\x8b\xe0\x46\x3e\xed\xfc\xf6\x41\x54\x4c\x10\x88\x5e\x0b\x03\xbb\x72\x7b\x96\xf3\xeb\x1b\xd1\x2c\xe4\xae\xfd\x73\x9e\xd6\x16\xdb\xa3\x29\xaa\xf9\x3f\xac\x1f\x77\xfb\xf5\xe3\x6e\xf5\xfc\xfb\xe2\x7e\xbf\x5d\x2d\xfd\xc5\x80\x53\x97\x6b\xb7\x1a\x28\xf4\x5e\x5e\xe4\x96\x8c\x00\xd5\x08\x63\x33\xe7\x42\xed\x83\x45\xca\xba\x0f\x87\x91\x6d\xad\xbc\x82\x7a\xbb\x29\xa7\x8a\x92\x8c\x18\xda\xf9\xac\xf9\xc7\xb3\x2e\x4c\x89\x61\xfb\xfc\xcf\x36\x0c\x02\xe5\x97\x3d\x87\xd3\x7d\x2a\xf3\x7c\xb2\x94\x99\x90\x62\x09\xb6\x79\x85\x65\x87\x20\x64\xc4\x18\xae\xa8\x0b\xc0\x2a\xed\x65\x89\x7b\x1d\xc5\x6b\x2f\xa3\xfd\x38\x4a\x88\xa3\xf9\x16\x34\xfb\x87\x85\x0f\x8c\x28\x09\xac\x0a\xd3\xc8\x28\xf8\x16\x4e\x15\xa8\x11\x8c\xeb\x42\x49\xfe\xab\x42\x11\xa3\x84\xa4\x7e\xfb\xf8\x02\x5d\xfa\x8f\xc9\x86\x3f\x88\xdb\x29\x49\x6c\xc7\xe6\xf6\x5c\x1c\xa0\xb4\xfe\x50\x13\x37\x3a\x3f\x52\x68\x04\xcf\xee\x95\xe8\x51\x5f\xf3\x97\x45\x9d\x2d\xf2\x29\x03\x05\x75\xbb\x5e\x4c\x42\x28\xca\x12\x4b\xbc\x7f\xab\xd5\x03\x96\x7f\x2f\xae\x79\xb8\x1c\xd2\x30\x8d\x55\xe8\xb5\xa4\x1a\x30\x42\x35\xf5\xda\x77\xbe\x19\x8d\xa8\xb5\xbb\x2e\x2b\xa1\xf2\xec\x4f\x40\x3b\x99\xf2\x78\xbb\x6d\x43\x9f\xd2\xfc\x8e\xa5\xdf\xfd\xbe\x06\xdc\xb3\x7e\xc0\x27\xfa\xf8\x67\xcd\xe7\x0c\xe8\x89\xd1\x28\xb4\x68\x1b\x0b\x5b\xf9\xab\x35\x61\xfa\x61\x1e\x62\xfd\x66\xb9\x79\x78\x5a\x3c\xfe\xb1\x7f\x5e\x6d\x57\xcf\xbf\xaf\xf6\x77\x9b\xe7\xee\x6a\x8d\x44\x38\x23\x2a\xae\x77\xf9\x37\xa3\x5c\x28\x44\x40\xb5\x27\x44\x4f\xd1\x2f\x8b\x8d\x8c\x72\xe0\xd8\xdb\xbe\x5d\xdd\x2d\x5e\xee\x77\xfb\xa7\xe7\xd5\x76\x71\xbf\xda\xee\x6f\x5f\xac\xbf\xa3\x3f\x71\x1c\x59\x53\xf5\x87\xcf\xbb\x0a\xb0\xb9\x4e\x08\xfd\xcb\xf2\x18\xa3\xb1\x08\x31\xdd\x91\x15\x88\x37\x3d\x65\x80\x32\x9a\x04\x84\x3a\xca\x98\x65\xb0\x4e\xa5\xe5\x18\x4d\x94\x8a\xd4\x10\x65\xbe\xa8\x64\xd6\xf4\x5b\x4e\xfb\x72\x63\xe3\x75\xfd\x78\xbb\x2e\x4c\x8e\x2f\x83\xa7\x99\xb8\x21\x29\xe7\x49\x38\x72\x76\x7a\xca\x60\x72\x29\x29\x24\x08\xad\x71\x72\xd0\xc4\x7f\x56\xd0\x14\x6b\xe5\xf2\x5c\x15\xb6\x73\x82\x33\xbc\x93\xf4\x18\x33\x80\x18\x15\x22\x42\x40\xb3\x0d\x2b\xee\x45\xdd\x3c\x64\x39\xd4\x4d\x59\xc0\xa8\x9a\xc0\xa8\x80\x94\xb9\x40\xf3\xbf\xce\x70\x86\xcd\x09\x8a\xc1\x45\x0b\x13\x62\x4e\xb6\xdc\xba\x86\xcd\xe0\xa6\x48\x16\x22\xf1\xe3\x9f\xcb\x1b\x3f\x5c\x72\x46\x6d\xba\x83\xd2\x75\x77\x65\xb5\x56\x17\xef\x84\x1b\xab\x22\x13\x58\x72\x41\x21\x0e\xf0\x34\x41\x04\x0e\xc6\xf1\x08\xe9\x84\x9d\x81\xc7\x4f\xc8\x48\xe4\xbf\x51\x49\xdb\x7d\xd1\xa0\xb2\xa3\xc8\x51\xf5\xcb\x1f\xd3\x94\x23\xe3\x53\x68\xed\xfc\xed\xbc\x62\xfd\xcd\xa7\x77\x01\x99\x4d\x45\xa9\x8e\x94\x71\x4e\x1f\xbe\xd8\xf7\x35\x54\x97\x51\x1d\x73\x6c\x75\x20\x07\xfc\xa6\x2f\xa4\x4c\x56\x0c\xe0\x09\xd8\xbc\xec\x11\x3e\xb6\xea\x75\x6a\x49\xc3\x28\xa4\xd6\x56\xc1\xe2\xf2\xf2\x12\xa9\x05\x33\x2a\xc5\x8c\x82\xd2\x98\x3c\xdd\xaf\xfe\xb5\xf3\xbf\x19\x0c\x53\x8e\x9e\x09\x15\x80\x03\x48\x8c\xae\x81\x05\x11\xd1\x8e\xbf\xf2\x4d\xd4\xb8\xf1\x5b\xd6\xd1\x64\x18\x17\xf8\xde\x2c\x3b\xa8\x7e\xd3\x25\x0d\x2c\x10\x9d\xc9\x5b\xdf\x77\x6f\xa7\x48\x3b\x6f\xab\xbb\x89\x0f\x13\x63\x54\x1b\x6b\xbd\xd0\x3e\xc5\x20\x0d\xc8\x17\x45\x59\xc6\x42\x16\xe1\xdc\xd8\x9f\x72\xf1\xf9\x0c\x22\xef\x08\xca\xff\x0f\xd8\x5f\x7f\xce\xd4\x3a\x41\x0a\xad\xeb\x41\x75\xef\x8b\xf4\x91\x85\x4a\xfb\x90\x6b\x51\x37\x55\x59\x3b\xc1\x27\x7f\xd8\x30\x0a\x9d\x07\x9a\x0b\x10\x47\x27\x88\x02\x1d\xbb\x92\x0c\xae\xd5\x3f\xfe\xf0\xe1\x06\x8b\x98\x61\x08\x73\x2a\x54\xd5\xbe\x2b\x18\xe3\x5a\x21\x81\x6e\x88\x8c\xf0\x9e\x89\x3c\x2f\x95\x68\x60\x7b\x3e\x9d\xf2\xcf\xee\x28\x10\xe3\x3a\x7c\x88\x9f\x1a\xe7\xf8\x57\x6e\x02\x0f\x62\x2b\x90\x2d\x72\xb0\x42\x05\xfe\x74\x1c\x02\x2c\x2b\xb6\x47\xfe\xeb\x2c\x8a\xa6\x83\x1f\x31\x16\xb3\xd0\xe8\xae\xcd\xeb\x6d\xdc\x6f\xc7\x28\x41\x3f\x56\x4b\x54\xb4\x7f\x5c\x3c\xfe\xb3\x57\x5f\x68\xff\xae\x51\x26\x67\x6b\xf3\x62\xeb\x63\x3f\x0b\xd3\x64\x2c\x06\x85\x34\x87\x9d\xc8\xdf\xc6\x03\xdd\x80\x24\x90\x98\xd7\xff\xbb\xcc\x8a\xa7\x2c\xcf\x45\xb5\x2c\xab\xf9\xbe\x77\xe2\x3f\xc2\xad\x76\x4b\x53\x9d\xeb\x66\xe4\x4c\xc5\x58\x22\x42\x2c\x19\xdf\xae\x7e\x5f\xdd\x6f\x9e\x56\xcf\xfb\xbb\xd5\x6a\x7f\xf7\xbc\x58\xee\x6f\x36\xfe\xd5\x62\x29\xb3\x6e\x6b\xef\x65\x73\xf1\xa0\x53\xae\x91\x3f\xe0\xf4\xa8\xac\x33\xf0\xb2\x9c\x74\x4e\x18\x4b\x93\x04\x01\xa8\x8b\xdb\xdb\x67\x94\xff\xbe\x7d\x5e\xfc\x5c\xdc\x93\xee\x3b\xd2\x08\xa3\xd4\x45\x95\x35\xaf\x03\x98\x20\x63\x22\x15\xb2\xb7\x64\xde\x18\x1f\xb6\x90\xe9\x23\x96\xb1\xc6\xa0\x1a\x0b\x36\x5e\x43\xd4\x9f\x45\x26\x71\xe0\xcc\xd8\x60\x62\x55\xc7\x98\x14\x11\xf2\xad\xda\xd4\xcf\xc2\x93\x07\x1a\x83\xdd\xbd\x97\xd2\x96\xbe\x6e\x9e\x6f\xfb\xbe\x15\x63\xca\x77\x2b\x1c\x93\x64\x18\xc8\x5d\x64\x06\x7d\xe4\xc6\x54\x1a\x47\x51\xbf\xb5\x96\x45\x1b\x10\x75\x05\xea\xc1\x26\xcc\x34\xb5\xdc\x5c\x6f\x83\xb9\xaf\x21\xcf\xf7\xe0\x24\x5c\x26\xbf\x45\xd3\x04\xb3\xc8\x77\xa8\x9b\x0b\xfa\xb2\x1f\x23\x0c\x46\x2a\x80\x3e\x00\x95\xab\x8f\x87\xee\x28\x44\xa9\xee\x54\x9b\xeb\x33\x5a\x42\xf7\xae\xbd\xdd\x20\xe5\xad\x83\x5c\xa5\xe1\x65\x5d\x34\xc9\x6c\xc3\x9c\x31\xc3\x6d\xf1\xf8\x00\xcd\xa6\xb8\x39\x57\x8e\x88\x38\x7c\xce\x61\x10\x53\x0c\x02\x65\x76\x78\x28\xf5\xea\x57\xb7\x50\x79\xe5\x2b\x16\x06\x8a\x1a\x8c\x06\x32\xbd\xda\x7d\x5f\xb7\x0b\xc8\xb1\xab\xc8\xb3\x30\xd0\x81\xb6\x8e\x56\x05\x7c\xdc\xc2\x85\x5d\xb0\x1b\x46\x52\x1a\xd8\x0c\x41\x67\xdd\x0f\x0a\xa9\xa2\xc0\x07\xb2\xa1\x1d\x2d\xde\x0f\x60\x06\x04\x1f\xd9\x3f\x7d\x76\x1f\x0e\x79\x80\x15\xc5\x76\x02\x35\xe2\xb0\x2c\x8f\x5e\x3d\xcc\x0f\x48\x38\xae\x59\x59\x6d\xc3\xa8\xa7\x8e\x6d\xc6\xc2\x50\xc1\x90\xbd\xed\xbf\xb7\x9e\x60\x69\x7c\x8c\x13\x46\x81\x65\xa7\xb5\x39\xaa\x7d\xe1\xfc\x99\x22\x12\x4a\xc7\xf9\xfb\x3d\xab\x9a\xb3\xc8\xe7\xa4\x27\x58\x18\x45\x04\xeb\x04\x16\x18\x61\x79\x20\xe5\x4e\xfc\x9a\x0f\x58\xc2\xc8\x58\x04\x41\xfd\x5a\x7e\xb4\x21\xd5\x4d\xa6\x75\xff\xa5\x9c\xa5\x58\xb1\x5b\xb8\xc5\x5a\x2f\xdb\x77\xac\x07\xa5\x5d\x4d\x8d\xfe\x6a\x17\xbb\x96\x4a\xcd\x5f\x24\x0f\x25\x02\xbf\x6e\xab\xf2\xd4\x5d\x9a\x64\x49\xe0\x57\x84\xa7\x6a\x60\x72\xc7\x42\x6e\xac\xd3\x80\xe5\xf8\x8d\x59\x3c\x6e\x48\x1c\x24\x48\x67\x3b\x8a\xea\x0d\xb9\x5d\x5b\xc4\xd8\x0d\xa5\xde\x58\x18\x0b\xeb\x07\x51\x5b\x54\xeb\xec\xfc\x0f\x93\x54\x84\x4e\xb3\x65\xbd\xde\x3f\x93\xf1\x3b\x1b\xa6\x51\xc4\x53\xc7\x34\xbe\x5d\x6f\x97\x9b\x97\x47\xbf\xf8\x86\x69\xca\x92\x0e\x5b\x68\x1f\xb7\x43\xfa\x8f\x2f\x36\x55\x9d\xb6\xa2\xf7\xf5\xb4\xe9\xf8\xfc\x15\xa5\x2a\xd6\xee\x8a\x9a\x1c\x5e\x0a\xd5\x07\xd3\x17\x23\x25\xe9\x41\x66\xfb\x62\x62\x64\xc1\xc2\xd4\x10\x6c\x84\xfd\xbb\x7c\xeb\xf8\xa3\xfe\xea\x45\x6a\xa5\x06\x7b\xc0\xac\xdb\xd6\xfc\x71\x95\xe0\xdd\x13\xef\xa2\x11\x5d\xfd\x66\x60\x4a\xc4\x42\xa1\x39\x52\xa2\xac\x20\xdf\x44\x4e\x69\x2e\xfb\x19\x85\x32\xa1\x8c\x53\x94\xdb\xd0\x25\x42\x59\x8a\xee\xbc\x8a\x25\x48\x52\x6d\x63\x88\x39\x91\x52\x16\xaa\x44\x4b\x33\xbc\xf8\xac\x2c\x6e\x07\x57\xa6\x45\x6c\x85\xe8\x7b\xe7\x81\xf0\x78\xb3\x5b\x5e\x79\x8d\xb4\xb6\x0b\x7e\xcf\xc8\x1f\xdf\x2b\x20\xd6\xd2\x67\xdb\x88\x2a\xcf\x0e\xaf\xa3\x52\x57\xd8\x86\xfc\x4e\xf2\x32\x3b\x5c\x4a\xc5\xf9\x51\x51\x6c\x9b\x16\x50\x37\xd8\x93\xc6\x36\x55\x23\x0a\x2d\x2a\xbd\x14\xc7\x93\xc8\x0e\x85\x9d\x3f\xbb\x72\x18\xac\xfb\xcf\xc7\x09\x82\x3c\xce\xc8\x73\xb9\x2d\x8f\x22\x2b\xc6\x4f\x1b\x62\xa5\x2d\x4b\xfc\x17\x36\x65\x6e\x21\xf7\x6d\x71\x16\x1a\x2a\xf0\xa5\x32\x96\x0c\xdf\x35\x68\x07\x1c\x4f\x16\x9a\x98\x60\x3c\xea\x41\x36\x8b\x2b\x95\xe6\xf1\x2f\x33\x69\x18\x5b\x43\xb5\x93\xc8\xaa\xa5\xf0\xba\x85\xf1\x17\xa2\xfd\xed\xa7\x34\x22\x71\xbe\x2d\x37\xff\x7a\x5a\x38\xbd\xcd\xcb\x0f\x24\xd3\x8f\x19\x25\x07\xda\x90\x59\x31\xd7\xe8\x8c\x82\x40\x86\x89\x6f\x70\xd7\x65\xfe\xde\x2d\x8a\x51\xc0\x03\xd4\xb4\x73\x05\xbe\x95\x53\x23\x77\x8c\xd9\xf1\x43\x8b\x02\x69\xa3\xb0\x83\x38\xc2\xae\xfc\x89\xdc\x96\xc9\x57\xd1\x50\x33\xaf\xbf\x6a\xb3\x12\x0f\x00\xf0\xdc\x78\x3f\x30\x09\x71\x92\xb5\x09\xf3\x53\x95\x1d\xcb\x4a\x67\x4e\xa9\xed\xae\x2a\x8f\xf3\x53\x33\x62\x01\x20\xba\xb4\x6e\x83\xa3\x4e\xb0\xa7\xce\x0e\x17\xca\xf6\xe3\x2b\x67\xee\xf6\xde\x97\x07\x4f\x59\x58\xed\xbe\x7f\x1d\x8a\x47\x21\x17\x98\xa9\x65\xf5\xb3\x68\x32\xdf\xce\x89\x42\xc1\x30\xdd\xb5\x40\x52\x07\x88\xf9\x6d\x08\x80\x1e\xbd\xd8\x51\x14\x10\xec\x2f\xb4\xa1\xd6\xbb\x68\x60\x2f\xf4\x31\x2b\xf6\x6a\xba\xf7\x46\x11\x4d\x70\x7d\x7a\x2e\x65\x79\x89\x53\x64\x51\xc4\x13\xdf\x72\xea\xc0\x97\xa3\x2e\x4f\x14\x29\x8b\x64\xd8\xbe\x8a\x0a\xad\xf0\xfc\x01\x9e\x86\xca\xe9\x86\xe5\x77\xe7\x62\xde\x18\x77\xd2\x28\x70\x1f\x8d\x63\x88\x89\x67\x06\x62\xaa\xeb\xaa\x8a\xf5\x5c\x37\x32\x8a\x53\x40\x24\xae\xe3\xb7\x4f\xe6\xf0\xfc\x53\x4d\x58\x12\x07\xbd\xc3\xe7\x2d\xa8\xd2\xdd\x9a\x69\x3d\x2f\x4a\x64\x30\xb2\x5a\x7b\xaa\x60\xbd\xdc\xac\xba\x94\x2f\x4a\x74\xec\x65\xe8\xef\x44\x56\x7d\x5a\x91\x88\x67\xf8\x8f\x1f\x90\xa6\x56\x12\xc0\x19\x5c\x79\x6d\x20\x07\x64\xff\x1f\x6f\xee\x3e\x44\xb7\xfb\x4f\x2a\x2b\x00\xfe\x2a\xea\x55\x51\x9e\x0f\xaf\x5f\x36\xf1\x23\xc9\x62\x84\x95\xee\x9e\x17\x8f\xdb\xbb\xd5\xf3\x7e\xb9\xd9\xfa\xdd\x32\x92\x49\x8c\xd0\x8b\x6f\x65\x9e\xfd\xc2\x87\x78\x3b\x58\xbc\xaf\x26\xd2\x5f\x36\x43\x22\x99\x5a\x06\xe8\xa3\x38\xc2\x9b\xff\x26\xe5\x42\xbe\x7f\x66\x87\x43\xfd\xdc\xfd\x35\xe5\x3a\xb4\x4e\xd3\xcd\xa5\xee\x1f\x8b\x94\x60\x56\x23\x19\x99\xa6\xb6\xea\x86\xf7\x22\x18\x04\xfc\x91\x66\x11\x2e\x08\x0b\xad\xb7\xa5\xca\x44\xee\xdf\x86\xaf\x38\x1c\x2c\xd2\x9e\x01\x69\x6d\xd4\x4a\xbf\xea\xec\xd9\x7c\x24\x1c\x01\x0f\xb0\x65\x8b\x1f\x78\x82\xea\xa5\xd6\xb7\x03\x43\xe9\x6e\x94\xab\xc7\x3b\x38\xd6\x98\x77\xee\x1e\xe8\x6c\x3e\x1b\x99\xc0\x8a\x3f\x16\x4e\xb0\xd0\x67\xd0\x23\xf9\x3e\x16\x99\xd0\x96\xa6\xb5\xef\x68\x59\x89\xee\x06\x7e\x35\x7b\xcb\xed\x1e\x8d\xe7\x01\xb5\xf4\x57\x3f\x5b\x2d\x03\x60\x76\xba\xf0\x20\x66\xdc\x25\x2a\xdf\xb3\x36\xb0\xff\x9c\x9c\x4b\x58\xd2\x54\x2e\xda\xed\xd2\x06\x02\xee\x97\x73\x42\x08\xb5\x0c\xb5\x27\xf1\xd9\x17\x07\x39\x21\x91\xbd\x6f\x50\x37\x77\x65\xf9\x23\xeb\x82\x79\x4e\x23\x4b\x32\xdb\x5b\x2e\x08\x14\x50\xb5\xc9\x28\x2a\x6a\x5a\xa9\x8c\x51\x8e\x3e\x7c\x11\x38\x8d\x34\x80\x45\x74\xac\x9e\x9f\x16\x7f\x0c\xf7\x7f\x4e\xa5\xc2\xa2\x23\xaa\x80\xd4\x6d\xa0\xed\xcb\x10\x7e\x00\x18\xcf\x68\x40\xae\xdd\xd3\x40\x3d\x8d\x71\x6a\x08\x22\x9d\xda\xcc\x75\x61\x5b\x6e\xd6\x75\xfd\xef\xd5\xc5\x39\x35\x0a\xa5\x4a\x96\x98\x35\x95\x13\x10\x2b\xe3\x2c\x76\x12\xeb\xe7\xd3\xa9\xac\x1a\x3f\x61\xdd\xd1\x90\x91\xce\x73\x02\xef\xf3\xfc\x84\xe4\xa1\xd4\x58\xfe\xfa\xb1\xda\x78\x30\x0b\x8f\x82\xd8\x23\xfd\xbf\x89\xfa\xae\xac\xbe\x3d\x8f\x17\x70\x1e\x11\x40\x1c\x14\xda\x5b\x3e\xa3\x5e\xf8\x16\xa3\xfa\xa6\x63\xe2\x30\x1e\xa5\x80\x31\xf6\xf2\x71\x7d\x77\x99\x9b\x5c\x5b\x10\xe6\x2f\x33\x32\xda\x49\xa6\x34\x0f\x59\x91\xb5\x3b\xc2\xaa\x9d\xb0\xc9\x78\x6a\x71\x12\x25\xdc\x3f\xb2\xea\x38\xf2\xc9\x62\x9c\xa7\xb6\x44\x66\xf1\xf5\x23\xad\xca\xbe\xa0\xcd\xe3\x98\xf3\x61\xf1\xfc\x29\x03\x35\xef\x87\xcd\x78\x12\x01\xda\x7c\x3e\xa1\x67\xf0\x43\x59\xc0\xe7\x98\xe3\xc8\x78\xc2\x25\x72\x02\x9e\xca\x53\xaf\x21\x71\xa5\x8b\x30\x3d\x7b\xa2\x63\x17\xf8\x3d\x9e\x8f\x0f\xbe\x9e\xc7\x53\x1a\xc6\x0e\x2c\xfe\x80\x95\xb8\xa1\xb8\x9a\x1f\x93\x5a\x92\xc8\xbe\xc7\x38\x4f\xe6\x8f\x08\xac\x1f\xe4\xab\xa8\x7b\x46\xfa\x30\x62\xf1\xe3\x8c\xed\x37\x4a\x68\xea\x1f\xd0\x65\xe0\x5c\x06\xd6\xb8\xae\x6e\xca\xd3\x20\xcd\xe3\x52\x90\x38\x1c\xe2\xc1\x97\xe2\xb4\x6a\x5e\x37\x53\xa6\x01\xe3\x8a\x06\x08\xbb\xb7\xb0\x4a\xf4\x1a\xea\xce\xae\x98\xd5\xd3\xba\x59\x3d\xae\xee\xd6\xbb\xb1\x6f\xf5\xdf\xaa\xc2\x72\x1d\x30\xee\x95\x96\x9d\x82\xcb\x95\xc7\xa8\x59\x82\x3d\xf5\x65\x1b\xb2\xcf\x53\x17\xae\x7d\x07\x4b\x91\x31\x7b\x0b\x79\xf6\x6e\xfb\xac\xf8\x1d\x7c\x5e\xd3\xe4\xa2\x32\xe5\xd6\x6f\x1e\x8e\x37\x16\xae\x99\x40\xa6\xf1\x76\xf5\x78\xbb\x7e\xfc\xb6\xbf\xb9\xdf\x2c\x7f\xf8\x7b\xa3\xa5\x75\xb6\x51\x6e\x65\xe8\xfe\xae\xad\x06\xa7\x5f\xa4\x45\x8e\x33\x12\x91\xe5\x6e\x08\x90\x20\x72\xaf\xb6\x12\x15\xbe\x91\xc7\xb2\xb8\x74\x26\xf1\xc3\x23\x5b\xf6\xaf\x5f\xcb\x8f\x5d\x79\xaa\x47\xc5\x0f\x6e\x18\xc1\x4d\xe1\x28\x7e\xad\xeb\xfa\xdc\xa6\x1f\xc3\xb2\x31\x37\x0c\x62\x35\xaa\x58\xdd\x42\xad\xaa\xec\x74\xe1\x69\xc9\x62\x12\x44\xb8\xe3\x6f\xa1\xf0\x6e\xa6\xc3\x37\x3b\x26\x09\x19\x33\xbc\x87\xea\x5a\xb3\x4f\x35\x26\x2a\x80\xa1\x2c\x66\x3f\xcb\xe7\x35\x84\xdb\x4f\x68\x8c\x25\xf2\xf3\xdb\x85\xeb\xec\xf8\x6a\xb4\x41\x59\xab\x36\x08\x15\xc7\x2c\xbf\xf0\x15\x72\xe3\xa8\xb6\xe6\x1c\x28\x6c\x57\x6f\xcc\xa2\x02\xf1\xb7\x08\x6c\x2c\x66\x9c\xa2\xf4\xc6\xe3\xf3\xcd\xfe\x41\x74\xc5\xcf\x38\xa4\x36\xde\xd9\x36\xe5\xa9\x5f\x55\xfd\x41\x48\xb4\x85\xdb\x3f\x7c\x5a\x1e\xad\x2d\xd5\xef\x5d\xae\xe0\xc7\x45\xda\x20\xea\xb2\x4d\x17\xa5\xa8\xa1\x3f\xd1\x6c\x3c\x16\xc7\x42\x21\xa9\x32\x87\x83\xd7\x7b\x66\x71\x12\x2b\x94\x76\xdd\x41\xdd\x23\x8c\x47\xb7\x29\x31\x01\x6a\x2b\x7d\xa0\xc3\x58\x60\x79\x06\xa8\x95\x5d\x16\x7d\x1b\x37\x16\xb1\x41\x05\xd2\x02\x3e\xdc\x04\x9b\xbf\x25\x42\x70\x9c\x8d\x7d\x69\x63\x58\xce\x8c\x85\xb2\x5a\xf6\x37\x9b\x7f\xad\x07\xed\x80\x58\xb2\x90\x6b\x57\x7d\x1c\x44\xa6\xfe\x68\x4c\x94\x8b\x56\xee\xce\x85\xde\xfd\xeb\xca\xdc\x90\xda\x59\x4a\x63\x82\xba\x9a\x56\xb4\x63\xc5\x6d\x1f\xcf\x1a\xae\xdd\x66\xb5\x78\x2f\x3f\x3a\x67\xde\xf1\xed\x54\x09\xc7\xca\x51\xe7\x4d\xe9\x21\xef\x97\xf1\x6b\xac\x94\x50\x5e\x78\xe4\x7c\x42\x1c\xd5\x34\x97\x88\x95\xb6\xf5\x55\xcf\x4b\x7b\xbe\xd8\x0f\x62\x1d\x72\x64\x5a\x1c\x3f\x6f\xb3\x77\xbf\xca\xc6\x3a\xb4\xf3\xa0\xe7\x0f\x74\x62\x93\x93\x8f\x27\x09\x32\x8a\xac\x0e\xf6\x50\xfb\x80\xc5\x40\x39\xa6\xa4\xa8\x9c\xde\x66\xb2\xb6\xd9\xd3\xad\x73\x03\x51\x1a\xff\x09\x6e\xc9\x77\x8d\x9f\x39\x65\xfe\x0c\x38\x7f\x1e\xcb\x66\x08\x63\x8c\x21\xd6\x48\xfb\xcf\x8a\xec\x02\xb3\x33\xe1\xae\xba\x98\x2e\x09\x22\x9b\x37\x39\x22\xd8\xff\xcf\xd9\x9b\x2d\x37\x8e\x63\xf9\xc3\xaf\x53\x17\x7d\xc1\x05\x00\x89\x4b\x59\x96\x9d\xaa\xb2\x2d\xb7\x25\x67\x56\xcf\xc4\x84\x02\xcb\x81\xc5\x36\x45\xaa\x49\x2a\x6d\xf5\xd3\x7f\xc1\x03\x80\x9b\xe8\xac\xfa\xfe\x1d\xd1\x93\x3d\x26\x44\x51\x24\x01\x9c\xe5\xb7\x60\xc3\xca\x3a\xcb\x0c\x68\xab\x71\x1a\x08\xe0\x0e\x83\xf3\x34\xb1\x4d\xc1\x9e\x0f\xde\xad\xee\x01\xcd\xf2\xae\xdd\xe0\x30\x4e\x45\xe4\xd1\x33\xcf\x63\x91\x22\x3f\x24\x0d\xbc\xa8\xd3\xae\x7c\x16\x17\x80\x69\xc6\xf5\xc5\xa9\x45\x8a\x45\x8d\x6d\x03\x6f\xe5\xa0\x05\x92\x46\x9c\x41\x6f\x34\xe9\x89\xbe\xe3\xd7\x22\x8d\x64\x8a\xb9\xc0\x1e\x33\x5e\x54\x49\x19\xeb\x2f\x45\xc1\xe4\xfb\x22\x15\x03\x1b\x2a\xfe\x0e\xd1\x9b\x69\x64\x00\xa7\xb3\x06\xd1\x1c\x6e\x45\x23\xf6\x3f\x89\x3f\x16\x6b\x11\xa7\xbe\xf0\xbb\x30\x26\xcb\x33\xbf\x48\xd7\xdb\xbe\x5a\x92\x92\xd8\x60\xd4\x71\xbc\x3c\x94\x35\x0c\x98\xce\xed\x16\x2c\x70\x3d\xc9\xea\x1b\x84\x65\x4f\xfc\x55\xe2\x94\xa4\x60\x0d\x83\x0e\x7d\x53\x6c\x6e\x79\x4e\xa9\x24\xb1\xf3\x94\xeb\xe6\x3b\x3a\x80\x96\xdd\x6f\xa1\x26\xd1\x91\xdb\x6f\x06\xaa\x4a\x7e\x23\x0e\x27\x08\xf2\x30\x74\x9f\x4b\x92\x18\x39\x13\xb7\xb7\xbf\xaf\x76\xdf\x86\xf3\x20\x6d\x57\x49\x44\x6c\x55\xe5\x7f\xa1\xb8\x15\x97\x36\x74\x76\x91\x7f\x37\x26\x4d\x84\x18\xb0\x58\x6e\xce\x55\x31\xaf\x67\xe5\x3f\xa0\x63\x9c\x00\xed\x63\x6b\x1c\x8b\xb9\x2b\x1e\xa6\xa9\x92\x12\xb9\x12\x1f\xa7\x3b\xac\x0c\x0e\xf3\x93\x94\x4b\x86\x2a\x36\xcd\x14\x90\x33\x0a\x41\x66\xcb\x78\xa9\x54\x56\xe0\xa0\xc9\x8e\xb0\x3b\x88\xc6\x7a\x46\xdd\x9f\x45\x25\x8a\x06\x40\x0f\x7d\x93\xe3\x54\xc5\x54\x76\x0e\x77\xed\x8b\xf6\x5a\xf7\x22\xdc\xa3\xc8\x26\x55\x84\x62\xf0\xf2\x7b\x99\x15\xcd\x7a\xb9\xf1\x3b\xc7\xb8\x34\x9b\x2a\x9e\x22\xbc\xe3\x28\x3e\xdf\x3a\xd1\x99\x38\x55\xca\xd6\x00\xd0\x91\x30\xfb\xe9\xff\xac\x03\x6b\xbe\x89\x3d\x83\x5d\x85\xd8\xd3\x95\x2a\xeb\x4b\xdd\xc0\xb1\x1b\xc4\x24\x22\x6b\x8e\xe2\x73\x88\x40\x4c\x75\x02\xb8\x6f\xec\xc7\x90\xc1\x54\x8b\x10\x39\xd4\x08\x40\xbb\x2d\xb3\xf9\x6a\x7d\x0a\x91\x32\xd2\x5b\x70\x9c\x7b\x4e\x53\x9c\x1a\x92\xda\x17\xba\xc8\xf0\xb6\xf8\x13\x1b\xa9\x8d\x43\x01\xdd\xa0\x3c\xf3\x14\xba\x91\x1a\x43\x31\xb3\xb4\x31\x74\x27\x12\x6d\x8f\xf2\x80\x45\xa6\xbd\x37\x8f\xb7\xbb\x3f\x26\x20\xe5\xf1\xbe\xcd\x03\x26\x63\xed\x42\xe0\x76\x02\x2c\x3b\xc2\x71\xcc\x03\xb0\x68\x3e\xc7\xac\xe8\xba\x60\x77\x25\xe2\x75\xfd\xb0\x90\xd8\x52\x8c\xf6\xb5\x8d\xdc\x12\x4c\x9e\xa0\xb1\x75\xd3\xc9\xe6\xc6\x43\x61\x91\x67\x15\x8a\x5b\x75\xf4\xe1\xe7\x0a\x9c\x95\xe3\x57\x16\x08\x31\x0f\x65\x6c\x49\xd9\x28\x4e\x36\x8a\x25\x78\x28\x2d\x31\xde\xbf\xcc\xeb\xe3\xe9\x8a\x15\x37\x39\x5d\x44\xed\x6a\xb6\x15\xc7\xd3\xc4\x09\xef\x6b\x0c\x17\x0a\x8e\xd8\xa7\xa6\xe1\xb3\x2f\xbf\xb8\xed\x85\x7b\xce\xdf\x29\x17\x05\x34\x0f\x99\xf9\x35\x07\x3e\xe6\x94\xdb\xad\x53\x62\x1b\xc6\x4e\xf6\x1b\xd1\xa8\xc3\x35\xb0\xdc\xe7\xa0\x9c\x05\x29\x76\x6f\x57\xbb\xd7\xaf\x0a\xe8\xd7\x5f\xc4\x42\x9b\x78\xd9\x62\xd4\x75\x9c\xc5\x19\x91\x28\x29\x8d\x4e\xd8\x7f\x59\x98\x9f\xbc\x4a\x2c\xd1\x88\xf3\x72\x6a\x9a\xed\x4e\x32\xdc\x1c\x38\x4b\x00\x43\x09\xdc\x00\xda\xe9\xef\x7c\xd8\xfc\x61\xa9\x11\x31\xfb\x50\xbe\x59\xe8\xf9\x0f\xc8\x5e\xe0\x3f\xbf\x4d\x7e\x82\x16\x49\xdc\xb5\xde\xaa\xb2\x34\xd3\x49\x37\x45\xe1\xf3\x24\x96\xb8\xdd\x3f\x65\x0d\xd4\x87\xe1\x82\xcc\x13\x6d\x74\x5f\x20\x6d\xe6\x9e\xff\xdc\xda\xc7\x53\x9e\xea\xae\x01\xd8\xa6\xb6\x08\xa8\xf1\x67\xe5\x71\x8c\x6d\x4f\x55\x66\x85\xeb\xc0\xf6\xe1\x24\xe7\x84\x73\xd7\x14\xbc\xc5\x36\xcf\xe8\xdd\xe2\xca\xca\xa2\xb4\x2b\x42\x86\x06\x6b\xb6\x75\xdb\x2e\xde\x55\x1b\xa3\x4c\xba\x10\x9c\x6b\x81\x59\xc0\x7f\xcb\xf2\x58\x09\x63\x72\xb8\x03\xbf\x70\x71\xc1\x2c\xc2\x03\xf1\xb6\xc8\x67\xd0\x16\x81\xe9\x07\xc8\x28\x42\x1c\xe0\xff\xac\x36\x4f\xcf\x15\xd6\xec\xb7\x33\x41\xfe\xaf\x6b\x2f\x5c\x92\x00\xd1\x09\xce\xb6\x02\xd7\x90\xc9\x8b\x38\x3d\x51\xbf\x69\x73\x29\x2d\xe1\xcf\x0a\x9c\xe8\x9b\x2f\x52\x4d\x2e\xb5\x11\xd2\xf7\x5b\x1a\x07\x57\x24\x81\x3b\xaa\x98\x4e\xad\x00\x49\xa3\x0e\x57\x00\xd3\xab\x80\xb0\x9b\x48\x2a\xb1\x6a\x36\x7b\x25\xf2\x73\xbb\x06\x37\xde\xba\xc2\xcf\x67\x25\x21\x0d\x06\x62\xbc\xc7\xac\x58\x14\xba\xbd\x4d\x4f\x65\xbb\xeb\x75\xf9\x0e\xd7\x91\x85\xf5\xb4\xdb\xc4\xb2\x3c\x1e\xcb\x62\xb7\x7b\xc4\x17\x6e\xed\x8d\xb4\xb1\x3b\x83\xab\x87\xcc\x85\xaf\xe4\x73\x90\x1a\xc1\x55\x77\x9b\x87\xf5\xe8\x05\x35\x22\x40\x1b\xe1\xff\x9c\xa1\xba\xbc\x20\x02\x77\x29\xf2\x5c\xb6\x09\xfb\xc4\x4b\x60\x80\x63\xe1\x46\xea\xb4\x2b\x22\xd7\xb7\x59\x7d\x82\xa2\x07\xde\x70\x63\x0c\x96\x55\x06\x81\xbe\x08\x44\x88\x8d\xb3\xb7\xec\x27\x7c\xd1\xc9\x14\x81\x06\xab\xc3\x8f\x34\xec\x59\xd3\xe7\xe1\xcb\x2c\xc2\x88\xa4\xc1\x88\x38\x34\xbc\xb1\x22\x8c\x29\xc6\x26\x7b\x99\x7d\x4d\x4f\x98\x5d\x6b\x44\xc8\xad\xd2\x72\xbb\xcb\xef\x0e\x55\xf9\x61\x8b\x32\x4f\xf0\xf1\x02\x56\x64\xf5\xa9\xb4\x85\xe3\x5e\x42\x2f\x16\x91\x88\x91\x7b\x62\x29\xaf\x59\x73\xf9\x32\xab\x9d\xdf\x2f\x44\x9c\x00\x06\xf2\x05\x7c\x58\xa5\xe3\xd1\x46\x2f\x48\x22\xb1\x5b\xdc\x29\xe5\xb9\xbf\xd3\x38\x14\xae\x1c\xd7\xbe\x36\x0e\x0b\x3e\x8d\x6b\xc6\xbf\x30\x09\x40\x59\x44\xea\xe7\xfe\xad\x14\xb9\x2f\xba\xfb\xc3\xa1\x75\x8e\xd3\xb6\xac\x34\xa4\x41\x4d\x78\x4d\x22\xa1\x04\xe3\xa9\xdd\xe6\xa5\x23\x1a\x8a\x84\x27\x26\xf4\xe6\x91\xce\x86\xdf\xf2\xf4\x87\x2a\x58\xdd\xe0\x14\x59\x5d\x56\x72\x66\x5a\x29\x9b\x8c\x35\x16\x95\x0f\xca\xd1\x2d\x7f\x54\xed\x02\x36\xf6\xe3\x9e\x77\x53\x8d\x45\x1a\x47\xd8\x64\x41\x59\x0d\x31\x8a\xf7\x44\xca\x42\x41\x3c\xc8\xf3\xa2\xab\xef\x19\x7c\xcc\x49\x62\xc6\x22\x4d\x8c\xe5\x68\x21\x2b\xdb\x2d\x6b\x0e\x7c\xd6\x53\x93\x63\x91\xca\x30\xb6\xe5\xfb\x19\xb8\xde\x3c\x76\x7e\xf2\x63\x53\x69\xa5\xa1\xe1\x78\x6a\xa6\x75\x5d\x91\x42\xc4\x95\x0f\xe2\xaa\xaa\xfc\x98\x92\xc9\x44\x0a\x34\x40\x63\xa9\xb3\xec\xab\x5e\x36\xec\x19\x51\x7b\xdc\x70\x4e\x00\x65\x73\x9d\xb9\x5f\xbd\x2b\x3d\x8a\x60\xeb\x9f\x47\x5f\xa5\x16\x3c\x21\x08\x89\x3f\x7a\x29\x98\xfa\xb7\x2f\x7e\x62\xbf\x16\x0b\x9e\xa4\x3c\x1e\xdc\x3a\x7c\xd2\xab\x8e\xe6\x29\x38\xd7\x51\x87\x8b\xba\x2a\x54\xf9\x41\x92\x62\x73\xd7\x0a\x3a\xdc\x0e\x94\x6d\x9f\xab\xf2\xf3\xd2\x9d\x4b\x4b\x4c\x5c\x1c\x0f\xba\x9e\x42\xe2\x84\x08\xc2\x14\x5c\x2f\x7f\xe0\x30\x37\xf9\x36\x11\x2b\x06\xfd\x8e\x89\x33\x21\xcf\xea\x66\x94\x5f\x0b\x11\x1b\xd9\xf1\xf6\xc6\x1e\x14\xc3\x1f\xe1\x98\xfd\xb1\x10\x2c\x92\xce\xf2\xe8\x54\x16\xb5\xf8\xe9\x55\x3e\x63\x21\xc0\xca\x59\x65\x35\x62\x29\x7a\x4b\x8e\x58\xc8\x94\xf0\xa8\xf7\xe4\xbb\xff\xb1\xb0\xe1\xe1\xe8\xf5\x94\x20\x4c\x3c\x70\x63\x07\xbd\xeb\x50\xf8\xbf\xcd\x3c\x13\x15\xa7\x6e\x67\x53\xef\xe7\x93\x11\xd5\x71\xdd\xc0\xb1\xfe\x3a\x38\x14\x8a\x6a\xec\x68\x9e\xaa\xec\xbf\xdd\xb5\xa9\x14\x42\x57\xce\xc0\x4d\x2b\xfb\x6f\x6f\x5b\x3e\xbe\xa3\x4a\x59\x2c\xbd\x12\x56\x6c\x71\x57\xe2\xaf\x58\x7d\x2a\x38\x5d\x93\x58\x84\x36\x04\xbd\x8c\x1d\x13\x6b\xb9\xb9\x2a\x7d\x09\x08\x19\x32\x12\x54\x79\x3c\x0e\x18\xb7\x02\x52\xea\xb5\x43\x87\x5a\x47\xb1\x00\x15\x63\x7f\x53\x62\x23\xc6\xbb\x0a\xf9\x83\xa0\x31\x7f\x40\xd9\x45\x34\x92\x1b\x3f\x6b\x30\x91\xec\xf8\x4f\x9e\xc3\x66\x87\xf4\x7a\x11\xb1\x30\x11\x60\xe9\x64\xf7\x63\xb8\xe5\xca\x20\x35\xd4\x75\x88\x94\x68\xfe\x05\xa2\x42\x65\xd8\x19\xba\xb7\x0c\xb8\xc0\x95\xf5\xdb\xb9\x78\xab\x06\xc5\x17\x19\x06\x04\x95\xcc\xef\x7d\x5f\xc2\xfd\x3d\xa2\x1c\x31\x67\x0e\x8b\xd3\x47\xde\x32\x62\x02\x23\x6f\xdb\x5b\x76\x3c\x77\x7f\x30\x4e\x09\x96\xc9\x6d\x07\x0d\xa3\xde\x8d\xe9\x37\xe9\xd1\x1a\x2a\x63\x1e\x47\x36\x9b\x28\xdf\xff\x00\x38\x75\x11\xb6\x24\xd4\xa2\x76\x1f\xd7\x4f\x96\x9c\xbe\x5f\x3c\x0e\x60\x6d\x92\xb0\x40\x71\xd4\x1d\x2f\xdf\x3d\x39\xa1\x3b\xc6\x05\xaa\xd5\x54\x65\x9e\x6f\x6d\xd2\x3c\x7a\xc4\x92\x52\x0b\x15\xc5\xf8\xe8\xe6\x7c\xb9\x2b\xab\x6d\x79\x84\xb2\xe8\x7a\xd3\xa3\xc9\x2d\xa9\x08\xa9\x47\x4c\xae\x4e\xa5\x3a\x74\x8c\x77\xc9\x02\x82\xba\xb1\x76\xc7\x43\xab\xa1\xa1\xb6\x62\x2c\x59\x18\xc6\x96\x57\x60\x91\xa1\x43\x07\x97\x58\xb2\xc8\x0a\xc7\xe2\x9d\xff\x2e\xce\xf9\x04\xdb\x23\x93\xd0\x2a\x0a\xd4\xd0\x3c\x3a\x33\x72\x57\x02\xba\x82\x81\x4d\x3e\x28\x19\xf3\xb2\xf0\x8f\xe2\xf3\x56\x64\xf9\x05\x5b\xf4\xd3\xa8\x5c\x8a\xd8\x0a\x88\x64\xa8\xed\x39\x57\xe2\x95\xc2\x39\x87\x7a\xd1\x72\x4c\x57\xcf\x23\xad\x91\xf1\x07\x64\x10\xa2\xdd\xe2\xcf\x0c\x3e\xac\x2a\x76\x0e\xd7\x46\x19\xb1\x94\x31\x21\x03\xde\x8b\xeb\xb8\xcc\x2e\xd5\x52\x0a\x89\x6f\x30\x62\xd3\xd0\x95\xf8\x16\x7e\x66\xb8\x30\x60\x33\xa4\xe9\xa7\x9d\x94\x92\x60\xc8\xf0\xb8\xf8\x73\x7f\xbf\xd8\xee\x9f\x5f\xd6\x4b\x1f\x4f\x48\x15\x49\xa4\xd5\x17\xf0\xe1\xa5\xc3\x7f\x9b\xdb\x32\xa5\xe6\x2c\xf6\xd2\x5e\x13\xd1\x91\xf9\xa0\x4b\x82\x88\x10\xf2\xa9\x44\x9e\x17\x65\x83\xb3\xba\xbf\x2a\xa3\xad\x55\xf4\xa9\xcc\xb1\x56\xb6\x2e\x94\x3b\xa4\x02\xa2\xe2\xc8\xcb\xc6\xf5\xbb\x95\x3f\x9a\x0a\x6d\x86\x96\x70\x0f\x0b\x63\x26\x63\xc2\x20\xf1\x2a\xad\x8f\x1d\x61\x71\x32\x26\x02\x62\xa3\x58\x0c\x4c\xb0\x35\x88\xf4\x89\x4d\x81\x90\xe3\xa6\x7e\x1e\xa9\x55\x5d\x2f\xf0\x2a\x6e\xb7\x4c\xdb\x67\x7d\x29\xf3\xf1\x6e\xa1\x62\x50\xd6\xce\x6a\xf3\xf4\xba\xdd\xbf\xac\x7e\x2c\x5e\x3c\x07\x56\xc5\xc6\xba\x4b\x62\xf9\xd6\xdb\x4e\x5b\x71\xb0\xae\xc0\x1f\x46\x6e\xb5\x52\x44\x86\x56\xf5\x75\x64\xa3\x17\x75\x36\x7a\xb1\xa2\x61\x82\x60\x95\xf6\xf2\xef\x72\xf1\xd6\xfd\x3d\x65\x91\x53\x40\x5e\x2e\x36\xff\x7f\xa9\x2f\xfe\x24\xc2\x52\xc5\xe5\xf9\xb2\xcb\xd4\x3b\xf4\xb0\x8b\x6b\x89\x49\xff\x11\x1d\x62\x84\xd0\x2e\x58\x37\xaf\xff\x1a\x2b\x6a\x28\x06\x0c\xbb\x36\xde\xac\x04\xf4\x5a\x95\xb8\x55\x0c\xc4\x8f\x63\x95\xc4\x3a\x76\x14\xf5\xec\x78\x3e\xe2\x56\x36\x5c\x4d\x54\xc2\x05\x4a\x6e\x41\xd1\x40\xb5\x29\x6e\xe0\x20\x72\xb3\x31\x33\x57\x37\x9a\x67\x2a\x8d\x2c\x80\x42\x82\x2a\x8f\x70\x7b\x7e\x87\x39\x94\x98\x12\x61\xa4\x98\x4b\x1f\x9b\xf2\x66\xf2\xf6\x08\x63\x75\x7a\xed\x7a\xbc\x5a\xbc\x3c\xfc\x6b\xfb\xfa\xfc\xbc\x79\xe9\x05\xac\x62\x25\x03\x85\xdb\xe4\x51\x7c\xee\xfa\x56\x65\xbb\x73\x9b\xaa\x8f\x3e\x94\x24\xdc\x38\xa9\x1d\xbc\x03\x16\xed\xf9\x17\x7a\xb8\xb1\x92\x29\xc5\x32\xdf\x29\x17\x97\xe1\x6e\xa5\x24\x24\x84\xcc\xf1\x48\x6e\x2e\x9b\x29\xd6\x59\xa9\x98\x62\x3b\xbe\x0d\x37\x3b\x1b\xe2\x71\xdc\x39\x3b\xbd\x95\x62\x9d\x83\x6d\xe7\xd0\x37\xa2\x36\x29\x95\x5a\x59\x75\xdf\x83\xfa\x71\x80\xc2\x56\x9b\xa7\x7d\x2e\xa5\x64\x8a\x2e\xce\x3f\xcb\x06\x36\x85\x87\x36\x0d\x5a\x04\x4a\xc7\x81\x71\x85\x68\x2f\xfd\x6a\x93\xd2\xff\x0d\x13\xf6\x7f\xd7\x08\x20\xa5\x13\x15\x78\xeb\x48\x31\xdd\x12\x14\x70\xbb\x42\x9c\xda\xc8\xd6\xbb\xd2\xcc\xde\xf0\x2f\x72\x1e\x05\x32\xc0\xd7\xf8\x5f\x50\x3f\x95\x57\x0a\x07\xbf\x02\x13\x2a\x13\x0a\xdd\x77\x1c\x5d\xe9\x1f\x6f\xbc\xe3\xc7\x7d\xf1\x31\xc6\x9c\x40\x40\xa1\xff\x38\x3e\xa3\x95\x85\x3f\x04\x86\xf9\xa2\xfe\x0b\x1c\x45\x36\xe0\x5f\x2a\x63\x18\x6a\x6e\x74\x60\x21\xff\x1b\x74\x10\x85\x9a\x0e\x0d\x38\x70\x82\xbb\xdd\xcc\x87\xa5\x3a\x88\xac\xe0\x81\xb6\xfc\xc7\x9d\x13\x08\xe8\x33\x32\x1d\x24\x1c\x53\xa6\xe7\x87\xc5\xee\x6e\xf3\xf2\x88\xd4\xa7\xe7\xd5\xcb\x3e\x0c\x82\x20\xe8\x46\x49\xc0\x32\x3d\xce\x96\xfd\xfa\xe9\xfb\x1e\x17\x47\x7f\x38\x0c\xac\x46\xf9\x7d\xf6\x13\x84\x39\x77\x2b\x81\x0e\x63\xca\x5d\xf6\xbe\x03\x75\xd8\x5a\x58\x54\x77\x14\x98\x76\x5a\x13\xa3\xba\xa2\x3b\x1c\x09\x9e\x7a\xe5\x73\x5b\xe0\x74\xee\x62\xf7\xa5\x98\xb0\x26\x75\xa4\xac\x1d\xac\x6b\x30\xee\x3c\x59\xf4\xb6\xcc\x73\xe1\x43\x2a\x1d\xc7\x46\x0d\xcd\x11\x86\x8b\x92\x8e\x0d\xc1\x56\x91\xcc\xf4\x7d\x66\xbe\x00\x30\x68\x12\x3a\x47\xe0\xf3\x95\x8e\x9b\x1b\x41\x75\x9a\xba\xa2\xd9\x16\xaa\x9f\x50\xf9\x97\x7e\xe4\x14\x79\xf5\xd6\x6b\x0a\x0c\x4b\x16\x17\x10\x55\x64\x63\x68\x7f\x69\x2c\x09\x90\xcd\x24\xe7\x78\x2c\x9a\xa9\x4e\x7d\xe5\x2e\x13\xcd\x8c\xb6\xec\xe8\xfa\x18\x10\x5f\x1a\xc1\x3e\xac\xc5\xb2\xdd\x64\xf3\x8a\x64\xb1\x4e\x08\xa1\x49\x1f\xdc\xb4\x2f\x8f\xb5\xf8\xf1\xc7\x4d\x88\x05\xb3\xbb\xf5\xcb\x76\xb7\xdf\xad\x57\x2f\x53\xf6\x86\x4e\x19\xe7\xd6\x58\x40\xe5\xa2\x82\x27\xf8\x80\xea\x3b\x54\x03\x78\xb2\xe6\x21\xe0\x03\x44\x3a\xf9\x73\x59\xe6\x57\xc9\xa9\xe6\x90\x62\xd6\xd3\xce\xf7\xc2\x31\xb0\xbf\x78\x06\x82\x58\xc9\xa1\xba\xac\x1a\xa7\xfc\xe3\xba\xe4\x6e\xe5\xa1\x7e\x86\x08\x1a\x63\x2b\x25\x07\xd3\xf0\x60\xf2\x56\x09\x6e\x52\xdf\xac\x53\x07\xb8\xbe\x24\xa1\x38\xfe\xf6\xa3\x78\x87\x9d\x38\xed\x3a\xd2\x8d\x96\x61\x22\x7b\x05\xce\x2f\x6e\xad\x64\x2c\xb1\xda\x3d\xdf\x90\x98\x70\x72\x56\x58\x20\xd4\xa1\x8b\xb7\xb4\x14\x06\xa3\x40\x5b\x5a\xdc\x9e\xfa\xce\xad\x96\x5a\x30\x47\xc3\x5d\x58\x7f\x2b\xd7\xba\xf7\xd1\xf4\x17\xc5\x60\xf7\x71\xa5\x23\x54\x78\x3f\x8a\x4f\x87\xbe\x5e\x17\xd8\x52\xf2\xe7\xd7\xa1\xa5\x50\xd7\xd0\x3c\x81\x55\x32\xb4\xda\xf9\xd3\xc2\x8a\x86\x30\x45\x29\x40\xbf\x63\x3c\x5e\x2c\x63\xdc\xb5\x3f\xfd\x72\xa7\x41\x10\xe9\xae\xf8\x51\x55\x16\x2b\x74\x57\x56\xf7\x62\x82\x6e\xd0\x20\xa5\x04\x8f\xb1\xe8\x8b\x35\x4e\x6c\x6c\x7d\x3b\x5e\x2c\x20\x60\x0a\x43\xf0\x67\x71\x79\x16\x97\x41\x66\x08\x61\x90\xb0\x68\x88\x52\x5a\x6b\x10\x37\xe7\x8b\xb5\x4f\x1b\x7f\x2b\x84\x5a\x49\xb7\xf5\xbc\x94\xe7\x06\x4d\x7f\x6e\x2e\xb6\xf2\x38\x1e\x19\xc5\x24\x72\x4a\x70\x96\x58\x60\x85\xe6\x77\x6d\x62\x53\x88\x7c\x14\x52\x42\x94\x4a\x21\x7b\x93\xc7\x99\x38\xcc\x2f\xd9\x10\xc9\x50\x3a\x4f\xda\xbd\x05\x0c\x4f\xbe\x98\x04\x41\x68\xc5\x00\x70\xf7\x73\x59\xfc\xe8\x69\x00\x89\x24\x26\xf3\xff\x03\xc5\xc2\xc7\x9a\x40\x84\xd5\x43\x93\xe7\xaa\x68\x13\xa8\xb1\x96\xa4\x1f\x24\xb9\xe9\xdc\x14\x7f\x2f\x27\xa1\x37\xd0\x20\xa1\x03\xe7\x06\x2b\xce\x66\x11\x3f\xe3\x2b\xa0\x24\xf6\x5c\x0a\x75\x3b\xb4\x0f\x68\x0f\x09\xd4\x26\x59\x8a\xea\x16\xaa\xc1\x16\x7a\x27\xf2\x29\xfb\x08\xa8\xe2\x58\x94\xed\x5a\xa1\x83\xba\xeb\xca\x65\x4b\xb3\x6b\x00\x24\x31\xe7\x8e\xfe\xef\xc8\x24\xa3\x0a\x1f\x99\x0e\xa7\x21\xef\x80\xc3\x58\x38\xcb\x14\x98\xb2\xba\x15\x27\x3f\xa9\x21\x49\x02\xa4\x95\x78\xe1\x05\x9b\xef\x3a\x9d\x87\xbf\x28\xa3\x4f\xbf\x8e\x07\x71\xcf\x18\xde\x62\x41\x74\x7c\x07\x13\x49\xd0\x32\x5e\xa1\x07\xd5\x8f\xcc\xbd\x66\xdd\xb5\x28\xc6\xa8\x5b\x7a\x10\x52\xd8\x1d\xd0\x04\xc5\xe9\xad\x15\x28\x0a\xe7\xad\xda\x2c\x0a\xa6\x8f\x3a\x4d\x13\x0c\x2e\xb6\xd9\x1b\xe6\xd3\xe3\xaf\xe7\x69\x80\x6d\xb1\xbd\x05\xe9\xa3\xc1\xbb\x41\xd9\x1a\x8b\x92\x70\xe1\xc8\x20\xab\x02\x9e\x2a\x94\xf2\x58\x6e\xb6\xdb\xd1\xb5\x72\xa9\xf0\xc7\xda\xb8\x7d\x7b\x2a\x8b\x1e\x7e\x01\x5c\x49\xa4\x61\xde\x64\x55\x73\xf8\xe2\x59\x0a\x46\x10\x18\x54\xb4\x79\x78\xe5\x6d\x49\xba\x37\x5b\xb0\xc4\xe2\xef\x76\x8b\x97\xdd\xfa\xe9\x7e\xbf\x7b\x7d\xd9\x3d\xac\x7c\x7c\x02\x52\x58\xa9\x7c\xe1\x8a\x7f\xe5\x16\xe9\xcf\xb3\x8b\x22\xa8\x20\xb2\x70\xcc\xb3\xc4\x35\xbb\xdf\xa4\x40\x05\xcc\x1a\x76\xe5\x20\xaa\xdf\x85\x7a\x3f\x95\xcd\xb5\xdb\x5a\x0c\x8a\x06\xa8\x25\x74\xbb\x5a\xae\x1f\x17\x0f\xc3\xbd\x10\x54\x42\xb1\xff\x67\xe1\x9b\xed\x6b\xfc\x5a\x58\xb2\xcf\xed\x15\x5a\x08\x94\xd4\x88\xb0\xcc\xea\x95\x75\xfc\xf7\x22\xd9\xe3\xdb\xa3\x43\xe2\x1d\x3d\x6f\x33\x71\x2c\xa7\xd5\x40\xd0\x24\x15\x64\xf0\x72\x6f\x55\x79\x9a\x2e\x7d\x5a\x5a\xdf\xe8\x37\x68\xec\xb2\x7c\x3b\x9d\xd4\x26\x88\x13\xec\x3a\xde\x21\x31\xef\x16\x72\x71\x19\x98\x21\x4d\xc6\xf2\x28\x10\xae\x25\xfb\x88\x34\x99\xdf\xfc\x11\x99\x20\x04\xe3\x03\x57\x85\xbb\xee\xcf\x5a\x13\x57\xa6\x68\xe7\xd7\x15\xcb\x63\x74\xb5\x26\x0c\xc2\xb4\xdf\x5f\xdb\xd4\x79\x24\x75\x31\x3f\xeb\x4c\xc8\x2c\x9c\xe9\xfe\x05\x95\x42\x0e\xd6\x1b\x64\xf6\x3d\x30\x91\x13\x28\xd9\x6b\x87\xe4\x32\x65\x75\xbd\xd4\x9a\x08\x08\xde\x5a\x51\x74\x45\x56\x13\x87\x01\xe2\x03\x4f\xed\x1a\xe2\xdf\xb6\xf1\x95\xc4\xa9\xc6\xd8\xf7\x1e\x9a\x6d\xf6\x56\xf8\x68\xe8\x57\xc9\x87\x21\x3c\xc6\xd8\xb3\x3c\x37\x9b\x9f\x50\x21\xf1\x70\xed\xc3\x04\x43\x8c\x65\x3e\xdc\xb7\xef\xd2\xd0\x75\x33\x36\x34\x08\xb0\x8d\x81\x3a\x88\xcd\xe1\x31\xcb\x41\xbc\xc1\x73\x99\x4d\xc9\x7c\x86\x06\x29\xc2\x58\x6a\x68\x1e\x40\x98\xf9\x1a\x96\xa1\x91\xc2\xa0\xe9\x43\x54\x55\xd6\xcd\x64\x43\x59\xec\x12\xbd\x02\x2a\x8c\x7a\x8e\xa7\xf6\x1a\x77\x50\x1d\xeb\xe9\x17\x71\x26\x3a\x7b\xe9\x21\xf4\xc7\xb0\x90\xfb\xf7\x00\x4b\x0b\xfd\xe6\xeb\x5b\x05\x86\xa5\x29\xbe\xaa\xbb\x43\x56\xbc\xd5\xea\x20\xb2\x62\x06\xa6\x69\x98\xa4\x98\x75\x1d\x61\x80\x7a\x30\x89\xe9\x25\x5c\xbd\x2f\xd5\xc4\x34\xc1\xa3\x85\x0c\xa7\x04\x83\x10\x79\xbe\xac\x97\x9b\x51\xcd\xdb\x70\x46\x82\x60\xc0\x34\xb1\xee\xcc\x96\xf1\xd1\x0f\x92\x02\x0b\xab\x15\x34\xe7\xaa\xe8\x99\x64\x86\x2b\x8d\x14\x2d\x94\xfd\x40\x5e\x62\x59\xad\xbc\x96\xc1\xf8\x67\x08\x6a\x09\xd8\x4d\xd5\xa7\xbb\xe3\x9b\xa9\x82\x18\xfd\x96\xee\xcf\x83\x0a\x6a\xb7\x01\x8d\xff\x99\x7c\x92\xc4\x18\xb6\x59\x31\xca\x7e\x2d\x37\x4a\x0a\x6f\xec\x6b\x9d\x8a\x1c\xc3\x52\x5c\x5d\x9e\x32\x21\x0a\xd6\xec\x6b\xd5\x5c\x89\x0d\xfc\xba\xa9\x6c\x20\x88\xf1\x2e\xec\x5d\x67\xc6\xe2\x36\xee\x00\xe6\x95\x41\x0c\x90\x14\xe1\x5f\x79\x29\x7a\xc7\xfe\xa1\x42\xc0\x98\x37\x62\x80\x59\x26\x6e\x0d\x87\xca\xe2\x4d\xfd\xfd\x07\x6e\x85\x3e\x33\x55\xee\xbc\xde\xea\x38\xee\x36\x26\x32\x68\x57\xf9\x01\x99\x7f\x32\x83\x4e\x8a\x31\xdc\x86\x31\x8f\x8b\xe5\x08\x73\x68\x8c\xe2\x2e\xc1\x2a\x2c\x40\x6b\x57\x0e\xf1\xb3\xc8\xaa\xc5\x0d\xba\xac\xa1\xda\x7c\x35\xc7\x0c\x18\xd4\xf1\xf8\x1f\xa8\xca\x17\x7c\x7b\x86\x35\x77\x12\x04\x91\x8c\x03\xd7\xe0\xc9\x9a\xd5\xb9\x2a\xbb\x23\x09\x47\x76\x8b\x3c\x5f\x86\x05\x0a\x7f\x38\xe4\x80\x1a\x20\x37\x9b\x1b\xff\xa7\x28\xb0\xf6\x1c\x55\x3b\x5b\x47\xe6\xf4\xed\xb1\x34\xb0\xf0\xf5\x6f\x20\xf2\xe6\x70\xe9\x0e\x90\x90\x93\xee\xd5\x46\xc2\x8b\xe8\x8e\x25\x56\x53\xeb\xb8\x3d\x1f\x5f\xc4\xc7\xf6\x04\xfe\xb6\x92\x80\x84\xd6\x3e\xd1\x29\xb1\x0c\x7b\xf2\xdd\x90\xd8\xd2\x58\x5c\x19\xcc\x6e\xf7\x73\x30\xb1\xff\x07\x39\xa0\x5f\xd6\x4c\x49\x40\x52\x6b\x17\xe2\xac\x8a\xca\x32\x1f\xc9\x66\xbb\x51\x2c\xd2\xb8\x4c\x6e\xdf\x2f\x83\xd5\xc7\x1f\x8c\x43\x12\xf4\x9e\xf8\xaa\xc9\x7e\x66\xcd\x58\x60\x94\x04\x8c\x46\xf8\x78\xf1\x7b\xda\xf0\xab\x53\x9e\x9f\x69\xb0\xb7\xc3\x15\x06\x49\x8b\x3c\x13\x75\xf7\x45\x52\xfa\x7e\xb3\xeb\xb6\x0d\x0a\x1a\x24\x48\x94\x92\x96\x7d\xed\x0c\xaa\x27\x97\x90\x86\x1c\x17\xc2\x5c\xb8\xd6\xad\xa7\xd9\xf8\xe3\xb1\xb6\x0b\x25\xfe\x79\xff\x26\x8e\xb0\xcf\x8a\x9f\x59\x73\x25\x9b\xf5\x8f\xf3\xd0\x71\x63\x50\xdb\xe8\x88\x91\x73\x1b\x1a\x09\x52\x6d\x71\x3e\xed\xf2\x5a\xb4\x6b\xdb\x22\xf7\x5a\x1d\xdd\x55\xf0\x80\x81\xf7\x60\xc1\x9e\x3e\x1a\x8d\x5c\x41\x26\x48\xc0\x53\xe6\x95\x64\x96\x22\xcf\xdb\xff\x82\xf6\x1e\x01\xc3\x64\x91\x04\x1c\xb4\xb1\x60\xb2\xb2\xac\xc1\x66\x07\xde\xf8\xde\x7f\xaf\x48\x22\x8c\x29\xf7\x1e\x16\x3c\x7a\xc6\x22\xa1\x98\x6e\x3a\xd3\x88\x9b\xf3\xa5\x5d\xb4\xe6\x16\x39\x12\x08\x4e\xad\x7a\x5c\x25\x8a\x66\x60\xa1\x3e\x1e\x25\x09\x45\xc7\x23\x4f\xe4\x1e\xb5\xd1\xfe\xe6\xcb\xab\xa2\x18\x35\xc3\xb7\x4d\x59\xc0\xe8\x7a\x75\xcc\x78\x34\x74\x90\x03\xbd\x70\x76\xc1\x93\xeb\xd0\x69\xec\x25\x6d\xbc\x0c\xf7\x1a\xc9\xf0\x4f\xe5\x94\x2d\xd6\x0e\x36\xde\xb4\xc3\x76\xa1\xaf\x58\x6f\x24\xd0\x3a\xa6\xb2\x93\xa2\x76\x32\x07\x7a\xf2\xad\x40\x19\xee\xe8\x15\xbc\x9d\x73\x51\xed\xdb\xa8\xb1\x7b\xcf\x21\xf5\x15\x28\xec\xf1\xa3\x7f\x74\x35\xc6\x7e\x90\x30\xa0\xa0\x5d\xe4\xd2\xa3\x4a\xd3\xf1\xa3\x08\x03\x11\xb8\xce\x40\x73\x1e\xdb\x98\xb9\x2d\x9f\x84\x21\xb5\x6d\xe1\xc5\x49\x55\x5a\xfc\x0f\xc8\x0c\x67\xb8\xff\x9a\x28\x88\xa2\x60\x10\x49\xef\xda\x55\x6c\xfc\x63\xc2\x28\x8d\xd2\x8e\x28\xdf\x7d\x50\xd1\x88\x75\x52\xd6\xb0\x7f\xbf\xa8\x3d\x16\xbb\xda\x2c\xdf\x75\x7e\x67\x67\x49\x48\x0d\x41\x42\xec\x5e\x68\x7d\x2b\xb2\xf9\xb7\x2c\x64\x01\x60\xd8\x64\xf9\xff\xf8\x16\xc1\xbe\x63\x9d\x75\x90\x2c\x12\x32\x0a\xa8\xdb\x8d\x91\xd7\x2d\xf8\xf7\x6d\xf8\xba\x84\x4c\x87\x88\xf9\xb4\x04\xf8\x2f\x91\x3a\xf3\xd7\xcb\x0c\x93\x96\xe2\xd0\x86\x6f\x03\xcd\xf2\xf6\x90\xf0\xd6\xb9\x37\xd0\x3c\x79\x17\x27\x12\x26\x61\x82\x19\x13\xfa\x23\xee\x4f\xa2\x6a\x0a\xa8\xc6\x78\x24\x12\x26\x11\xc7\xca\xc7\xb9\xf0\x21\xf9\xed\x62\x33\x53\xc5\x20\x61\xc2\xa8\x06\x0f\x04\x9a\x85\x7b\x91\x30\x51\x31\x3e\xe8\x71\x01\xe5\xd7\x33\x2c\x4c\x14\xc3\x4a\x37\xd6\xab\x87\x96\x61\xee\x78\x9a\x68\x64\xfd\x1c\x6d\x85\xe0\x72\x6b\x75\x09\x67\xf7\x78\x12\xa6\x86\x3a\xf0\x0a\x32\xc1\xe6\x8d\x04\x7b\x3c\x12\x09\xb9\x09\x51\x98\x04\x4f\xbf\x50\x0a\xea\x7a\x5d\x8f\x94\x8c\xdd\x40\xa1\x25\x42\xf5\x9f\xcb\x32\x77\x0f\xd1\x1d\x91\xa1\x8e\x10\x31\x59\xba\x58\x15\x74\x17\x55\xba\x21\x2a\x88\xb0\x4c\xae\xa1\x81\xaa\xdd\x5c\xb0\xde\x6b\xd9\x05\x9b\x73\xd3\xe6\xf0\x93\xfb\xad\x54\xc0\x5d\xee\xb8\x6e\xe0\xb8\x6d\x4a\xef\x4d\x15\xba\x35\x37\xd4\x01\xc7\x60\xdc\x6a\x52\xde\x96\x45\x17\x4a\x91\x50\x33\xeb\xc5\xe6\x74\xda\xa1\x7a\x14\xc5\x59\xe4\x9e\xb5\x48\x42\x10\x02\xdd\x72\x8c\x78\x87\xa7\xb2\xbb\x50\x00\x82\xf8\xe7\xc7\xc5\x9f\xfb\x7f\xbe\x2e\x9e\x76\xeb\xdd\xbf\xfc\x31\x93\x68\x0c\x60\xa1\x39\x60\x80\x3f\x36\xbb\x25\xa1\x91\x29\xb1\x2b\xa2\xf5\xda\xbc\x86\xb5\x90\x28\x88\x18\x2a\x5e\x8c\xd5\xf5\x49\x14\x08\x8e\x31\x91\xa5\x36\x0c\x26\x4e\x14\x68\x85\xaa\x1e\x58\xab\xbd\xad\x32\xd1\x1d\x09\x53\x12\x32\xc7\x45\x3b\x62\x29\xd3\x52\xd3\x27\xaf\x6e\x14\x69\x26\x7b\xd3\xe1\x17\x51\x59\x70\xef\x2f\x5f\xcb\x28\x02\x89\x68\x56\xdc\x24\xfd\x92\x18\x45\xc6\x5a\x24\x59\x68\xd9\x0f\x80\xf7\x71\x6c\x17\x45\xc6\xf2\x08\x9a\xf2\x66\x35\xb9\x0c\xd4\x00\x76\xb7\x76\xfd\xf4\xfc\xba\xdb\xbf\x6e\x57\x2f\xdb\xfd\xa0\x96\x41\x22\xc2\x84\xb6\xa5\xd5\x0e\x5a\x39\x9b\xc3\xb4\x23\xa5\x37\xd6\x70\x95\xe6\x6e\xfd\x9e\x59\xa7\x23\x1a\xc6\x2c\xf4\xab\xac\x16\x17\xdb\xa6\xec\x55\xce\x48\x44\x1d\x65\xe5\xf1\xee\x69\xf4\x00\x12\x42\x10\xe4\xe2\x5c\x67\x97\x2f\x9b\x1f\xb7\x88\x6d\xdc\x6e\xee\x76\xfb\xe5\xe2\xb9\x1b\x98\x18\x54\x2f\x90\xa2\x4d\xc0\x36\xb9\x1e\xc4\xe8\x24\x4a\x44\xc8\x6d\x06\x0f\x3f\xb3\xf2\x5c\xe3\xdb\x31\xa1\x55\x90\x28\x15\x1a\x17\x7a\x6f\xec\x32\x23\xd3\x49\xa2\xd4\x68\x8a\x4d\x04\xf1\x8e\x02\xf7\x83\x62\x1d\x89\x38\x67\x3a\xec\x18\x8a\xcb\x76\xd7\xdb\x95\x83\x25\xd7\x0f\x93\xda\xf7\x94\x5e\x11\xdb\xe7\x48\xb6\x73\x95\x0b\x12\x71\x05\xc6\x19\x0d\xa2\x61\xd1\xc4\x07\x93\x44\x82\x50\x04\x5c\xfd\x61\xcd\x3e\x9f\xc0\xcf\xa8\x48\xa4\xd2\x4e\xfd\x85\xd6\x8e\x92\x3f\xd5\xbe\x19\x5f\x99\xe0\x21\x9e\x6a\x71\x3a\xe5\x70\xaa\xca\xd1\xc3\x10\x9c\x41\x6f\x01\x33\xd9\xb1\x23\x19\x84\xb8\x68\x20\x12\x26\x2b\x6a\xa8\x9a\xbd\xc9\x0a\x5c\x8e\xbe\x39\x72\xcc\xda\xc9\x63\xea\xdf\x46\xdf\x2a\x25\xc7\x82\xe2\xb6\x11\xd5\x6b\x91\x35\x80\x70\xfb\xbf\x24\x92\x90\x48\x1a\x83\x15\xbc\x63\x56\x34\x37\x42\xbf\xcd\xcb\xab\x90\x48\x05\xb6\x88\xba\xac\x2e\xa7\xa6\x3e\x94\xa7\x53\xff\x6e\xa8\x20\xed\x15\x69\xe7\xc5\x05\x49\xa4\xc2\x38\xee\xbd\xe9\x27\xa4\x83\xf6\xb0\x44\xec\x96\xd5\x01\x5b\xb8\x3d\x78\xde\x46\x8c\x44\x4a\x72\x67\x71\x23\x1a\x18\xce\x02\x4d\x25\x78\xcf\x14\x3b\xad\xae\x2e\x44\xb3\x84\x58\xa6\xad\x39\x17\x7a\xad\xca\xee\xb3\x0c\xd0\x4a\xf9\x5c\x54\xce\x87\xb3\x4d\x43\xa6\x60\x66\x12\xe9\x24\x90\xa2\xf7\xd7\x5b\x1e\xa0\xd7\x45\x9f\xdc\x35\x0d\x06\x81\xf6\x78\xd7\xca\x6f\x9d\x20\x08\x89\x0c\x51\xca\x89\xb3\x3f\x43\x55\x97\x85\xc8\x31\x84\x9f\x34\xdd\xff\xf6\x3f\xf6\xb4\x71\xc0\x63\xcc\x65\x4d\x59\x35\x99\xb9\x2c\x73\x91\xb9\x4a\x53\x38\x44\x91\xf4\x99\x5b\x1c\x48\x49\xdd\x4c\xf2\x32\xd2\x7e\xb9\x8f\xc3\x36\x11\x76\x36\x16\x58\xb1\x54\xa2\xd2\x57\xa5\x71\x12\x87\xc2\x58\x7f\xbc\x76\xe0\xd8\x69\x6d\x74\x3f\xe2\x50\x5b\x93\x37\x14\x05\xb6\x3e\xe0\xde\xf3\x14\x2f\x75\xdc\x91\xf8\x25\x52\x9b\xc4\x51\x44\x50\x03\xe3\x51\x34\xea\x70\x63\x55\x92\xee\x84\x42\x2d\x97\xf1\xf5\x45\x34\xd2\x89\x67\xb6\x5e\xb9\x6f\xf8\x41\x26\x00\xea\x79\x0e\x9b\x4a\xa8\x31\x0c\x8a\xc4\x71\x60\x53\x1c\x7d\xf6\xa2\x65\x24\x8e\xa5\x35\x31\xfc\xb6\xf8\xee\x37\xda\x98\x04\x80\x9b\xb0\x6d\xf2\x50\xff\x67\x6a\x6c\x10\xd1\x2e\x7b\x1d\x70\xb2\x53\xac\x1e\x77\xbd\x48\xcc\x02\xa3\x52\xef\x49\x94\x5b\x3f\xc8\xdc\xbe\xea\x83\xf8\x27\x66\x34\x40\x4e\xa3\xb3\x7a\x7d\xb8\xf3\x6a\x22\x93\x1b\xe9\x87\x8b\xd8\x24\xbe\x9b\x57\x36\xd1\x3e\x64\xe3\x85\x35\x66\xd2\xba\x4d\xdd\x56\xe2\x63\xb2\x13\xa3\x52\x80\xe9\x84\xcd\x9a\x2a\x53\x6d\xd6\x34\xb0\x0b\x9e\x3c\xed\x44\x87\xa8\xf2\x77\x2e\x5e\x70\x35\x9f\x9e\x4e\xa7\xde\xcc\xf5\xb6\xce\x5c\x16\x86\x37\xe4\x4b\x5c\x31\x41\xd6\x21\xed\x7f\xf0\xd3\xc2\xb5\xd2\xc6\xcf\x92\x47\xcc\xc8\x6e\x8e\x3b\x25\x4b\x6b\xcd\xfb\xe5\xbb\xc9\x69\x80\xb9\xe2\xa2\x68\xda\x10\x6f\xb8\x6e\xc7\x3c\xd1\x32\xec\xc2\xf4\x7a\x20\x44\x48\x62\x11\x48\xac\x18\x9e\xce\x28\xf6\xa5\xbb\xd9\x23\xd2\x14\xb7\x4c\x1b\xda\xe9\x1b\x51\xf4\xfb\x69\x2c\x04\x45\x39\x81\x47\xd0\xb2\x8b\x89\x62\xa1\x2c\x68\xf7\x36\xab\x40\xb5\x11\x41\x01\xca\x36\x02\xed\x6b\xed\x87\x01\x23\x8e\x79\x01\x0d\xdc\xae\x6f\x6d\xab\xf5\xc7\xa1\x5b\x7e\xff\x07\xaa\x72\x72\x4f\x64\x12\x49\x32\xc6\xaa\x79\xac\xd3\x74\xa4\xb0\x9e\xdc\x59\xbd\x6d\x2a\xd1\xc0\x9b\x93\x1b\x0e\xa9\x1f\x20\x2d\x80\x29\xcf\x8a\xf7\x5f\x76\xd4\x49\x2c\x55\x88\x81\x98\x71\x32\x68\x4f\xe2\x08\xf1\xb8\xfa\x10\xab\xc4\x76\x0c\x6e\x5e\xca\x8b\xc8\xfb\x56\x35\x89\x95\xe6\x58\x52\x6e\xa3\xf6\xa1\x42\x24\x89\x35\x4b\x95\x35\x40\x6f\x6e\x44\xf1\x3e\x32\x20\x25\xb1\x36\x0e\x3c\x71\xae\x8a\x89\x35\x31\x89\x0d\xe3\xcc\xf5\xf0\x67\x4b\xa6\xfd\xda\x68\x52\x12\xf9\x06\xf1\x7d\x99\xeb\x5f\x90\xa0\x09\x09\x62\x8a\x4b\x6f\x63\xeb\x4e\x76\x6b\x1f\xd9\xc6\x91\x36\xad\xc3\xf7\x68\x51\x65\x85\x70\x74\x9a\xfd\xbf\xcf\xfa\xad\xab\x46\xa5\x93\xb3\x46\xc4\x1a\xbd\x2b\x4f\x2e\x9a\x55\x68\x27\xed\x1a\x67\xd9\xe4\xa2\x11\x77\x55\x79\x74\xaa\x71\xc3\xbb\x42\xe2\x98\x20\x99\x61\xf3\xb4\xb2\x38\x46\x7f\x59\x24\x10\x29\x73\x8a\xa6\xd0\x0c\x9b\xd3\x84\x10\x62\x40\xf6\xa6\xa5\xb6\x61\x38\x49\x20\x27\xd7\x42\x68\x80\xb5\x39\xe4\xa0\xe1\xb2\xde\x1d\xb0\xad\xfc\x2b\x03\x54\x44\x6c\x5f\xaf\xc9\x84\x88\x08\xf5\xe7\xf6\x32\xab\x9a\x83\xdd\x28\x67\xe8\xa0\x8c\x4c\xc4\x91\xdb\x4b\xb0\x26\x29\x59\xe1\x32\x7f\xef\x5d\x3e\xf9\x06\x4a\x7c\x93\xa8\x79\x14\x9f\x08\x47\x5d\x35\x87\xc5\x80\xe8\x44\x08\xe5\x96\x66\x9e\xd5\x4f\x65\x71\x77\x2e\xde\x90\xf3\x3f\x7e\x4e\x69\xa0\xb1\x13\xe8\x0b\x0c\xf9\xf4\x38\x00\x56\x3b\xfe\x5d\x66\xc5\xf2\xd0\xde\xe1\xa9\x46\x33\x21\x3c\x32\x08\xb8\xea\xc0\x5a\x9d\x53\x0f\x21\x9c\xca\x90\xf6\xa2\x51\x5b\x68\xd0\x43\xa8\xea\x8e\x2b\x1a\x89\xce\x99\x67\xb4\x71\x11\xae\x2d\x69\xa7\x8d\xdd\x27\x31\x27\x11\x9c\x60\x9d\xe9\x38\x30\x43\x69\x53\x31\x47\xb0\xf2\xa3\x54\x08\xce\x97\x0a\x39\xe2\x93\x90\x88\x48\x9e\x20\xa9\x00\x05\x05\x6f\x60\xf2\x2a\xff\x0d\x0c\x22\x21\x52\x11\x8c\x60\xeb\x06\x4e\x9b\x62\xd0\x58\x20\x44\xc5\xb1\x7d\xb7\x2b\x10\xc7\x1d\x88\xee\x7d\x52\x9c\xe1\x96\x2a\xb4\x5e\x5b\xea\xcd\xd8\x49\xb7\xbb\x3e\x25\xac\x48\xb3\xc3\x8b\x4d\x3c\xb1\x09\xd1\x71\x90\x7a\x58\xe1\x9d\xc8\xf2\x73\xd5\x7d\xb9\x8e\x2d\xd5\xa6\x41\x3c\x21\x66\xce\xf5\xf4\xd3\xcc\x60\xf6\x2b\x41\x60\x39\x73\x3c\x81\xb4\x94\x09\x1d\xf9\xf8\xb6\x0b\xce\x7a\x40\x5f\x98\x4c\x1f\xdd\x26\xc7\x0e\xa5\x7c\x25\xd0\x39\xbf\xf6\x98\x24\x49\x54\xdf\x55\xdb\x7d\x33\x65\xf5\x5a\xfc\xe7\x2c\xf2\xcc\x64\xa0\x6f\xce\x97\x81\x5a\xca\xf8\xb3\x34\x08\x28\x12\x74\xad\xda\x9f\xa8\x9a\xec\x8a\x60\x43\x68\x10\x6b\xcb\x7c\x43\xf9\x90\x83\xa8\xe1\x51\x7c\x66\xc7\xf3\x51\x0d\xed\xfb\xfc\x60\x62\xfd\xe7\x75\xf9\x86\x32\xf4\xee\xcf\x61\xc8\x51\x29\x6c\x53\xe9\x81\x4c\x08\xa1\x21\x28\x8c\xbb\xeb\x0f\x87\xf7\x42\xf8\xcc\x5d\x59\x2d\x9d\x14\xf7\x17\xbf\x7d\x0a\x50\x1d\xbf\x65\xa3\x7b\x4a\xa3\xd4\xda\x8a\xd7\xd0\x2c\xd6\x2f\xb7\x2f\x9b\xe7\x76\x3b\x99\x96\x6f\x69\xcc\x62\x57\x93\xc0\x05\xea\x65\x31\x5e\x2d\x68\xcc\x6c\xa7\xca\x2d\xeb\x2f\x88\x28\xf1\xbf\x23\x4e\x93\xc4\x96\x25\x6d\x49\x77\xea\xa6\xd3\x0d\x53\xcc\x71\xf2\x10\x2b\xf0\x56\x09\x7d\xc6\x7a\xe3\xaf\x83\xff\x7e\x4a\xfd\xfa\xff\x8e\x8d\xbe\x09\x25\x21\xc5\xb2\x9e\x39\x37\x67\xab\x75\x3d\x25\x84\x13\x4a\x62\x6b\x6b\x52\x43\xd3\xc9\xa7\x0f\xfa\x9b\xe3\x1f\x40\x12\x42\xe2\x31\xfe\x71\xb8\x28\xfc\x63\x3a\xda\x58\xa8\x63\xa9\xce\xed\x69\x57\x9f\x28\x62\x3e\x08\x62\x29\xe1\x16\xd2\xe4\xbb\x5b\x59\x2f\x66\x33\x3e\x17\x65\x26\xd2\x36\xe2\x3f\x57\x59\x73\xb9\x6e\x54\x0f\xcd\x5c\x07\xdb\x01\xa5\x3a\x62\x6a\x24\x94\xfb\x04\xa0\x87\x94\x1e\x42\xa9\x51\x36\x39\xff\xc4\x15\x72\xf3\x13\xaa\x3a\x7b\x3b\x34\x9d\x73\x1f\x36\xde\x87\xb8\x70\x42\x59\x10\x23\xea\xc2\x19\xd4\xf4\x1a\x58\x84\x32\x92\x22\x57\xc6\x0b\xf2\x6f\x72\x3d\x82\x78\xb6\x23\x04\x11\xdd\xac\x75\x5f\x83\x70\x2e\x2f\x31\x47\x28\xe3\x0a\x01\x87\x30\xf8\x8f\x3f\x96\xa4\x56\x0f\x74\x7b\xca\x33\x9f\xee\x3e\x8e\x96\xe7\x69\xf8\x4c\x13\x08\xc1\x85\xcf\xd5\xd5\x83\x4d\x55\x82\x52\x3c\x1f\x3e\x43\xaa\xe7\x6a\x51\x54\x10\x23\x9d\x7e\x97\xcb\x5e\xbe\xe8\xd9\x12\x2a\x78\x6c\x75\x96\xd7\xbe\x44\x46\x85\x60\x41\xcf\x0b\xbf\x2b\x2b\x4c\x55\xbb\xdf\x2b\xa4\x95\xae\xd9\x81\x3a\x14\x65\x5e\xbe\x5d\xe8\xfd\x64\x12\xca\x50\xe3\x8a\x5c\x9e\x60\x68\xfe\xe3\xcf\x20\x13\xfb\x48\x6a\x0b\x92\x94\x50\xd5\xfb\xdd\x66\xff\x6d\xb1\x5b\x7e\xdb\x87\xcb\x4a\x64\x6f\xf7\x95\xe8\x1f\xbb\x4c\xc3\x78\x28\xa5\xd8\x06\x24\xff\x1d\x9c\x4e\x05\x48\x59\xd1\x65\x9e\xab\xc1\xaa\x25\x21\x05\xd7\x6b\x1c\xa0\x35\x08\x95\x26\xc1\xad\xc6\x81\x63\x76\xbe\xbc\x40\x55\x98\x26\xae\x24\xe9\xd8\xd7\xe3\xd7\x4f\x45\x61\xa0\x7a\xff\x12\xa8\xd6\x9d\xfe\x82\x9e\xae\x0c\xe3\xbb\xac\x48\x22\xad\x2c\x5d\x33\x90\x8f\x1b\x39\x3b\x0f\xe7\x66\xea\x3f\x06\x09\xd8\x79\x6c\xb2\x3c\xdf\x7d\xde\x01\x3c\x5a\x82\x4a\x77\x49\x00\x1e\xf3\xf0\x5a\x54\x20\xf4\x23\xd4\xb5\x78\x83\x49\xc2\x40\x75\x40\x69\x30\xd2\xd0\x5b\x54\x95\xb8\xcc\xaf\x67\xfe\x33\xc4\x4a\xf2\xfa\x80\xe9\xa1\x7c\xcb\xd4\x57\xb5\xb5\xab\xf7\x58\x8b\x00\x71\x28\x4e\x15\x7a\xd4\x16\xa1\x5a\x0a\xcc\x5f\xbe\x72\xce\x9f\xec\x1f\xdd\x49\x41\x02\xef\x84\x3d\xbe\x97\x9d\x4f\xbb\x3f\x6c\x08\xa2\xf9\x64\x29\x6d\x5d\xc5\x4d\xb9\xaf\xc4\xb0\xc7\x04\x6a\x67\x74\x4f\xa8\x51\x49\x68\x86\xf2\x55\xcb\x8b\x9a\x86\x93\xed\xb2\x82\x6d\x15\x4b\xde\x73\xdb\xcd\x44\x90\xc5\x0d\x0d\x49\x80\x15\xbc\x47\xc8\xcb\x31\xea\xe7\x97\x92\x19\x84\x85\x8c\x60\x69\xfe\x43\x64\x58\x3a\x29\xab\xa1\x36\x2c\x61\x11\x53\x08\xf6\xce\xb3\xf7\x2f\xaa\x82\x2c\x52\x69\xda\xd7\xe6\x2d\xa7\xf9\xe6\x82\xe1\xc6\x17\x9f\x88\x25\x43\x80\xf8\xaa\x29\xad\xcf\xff\x6e\x28\xfb\xfa\x65\x9d\x92\xc5\x46\xa0\xa6\xd2\xc2\x39\xa3\x5e\x27\x0b\x8c\x68\x85\x25\x93\x73\x0d\xd5\x37\x51\x3f\x9c\xd5\xfb\x05\x1b\xbf\x93\x71\x34\x24\xcc\x05\x64\xab\xe6\xb0\x83\x3c\xff\xf2\x6a\x69\x64\xc5\xc7\xf7\x59\xfd\x04\xd9\xdb\x41\x96\xd5\x20\xb4\x4d\xfd\xa8\x38\xc1\xb4\xe6\xf7\x81\xc1\x0f\x61\x54\xd9\xaf\x19\xde\x3e\x77\x88\x85\x89\x64\xfd\x0e\xfa\xe8\x9a\x57\x16\x28\xd5\x2f\xde\x93\x0f\x45\x1c\xe1\xaf\xcb\x87\x9b\xe1\x7a\xc7\x58\x9c\x82\xd3\x8e\xfe\x5b\x46\x97\x84\x31\x4e\x20\x75\x38\x87\x6d\x23\xde\xed\x96\xfb\xba\x5d\x42\x07\xd4\x22\x2c\xa1\x21\xae\x0e\xf0\x79\x1a\x95\x9a\x59\x62\x12\xf0\x2c\xab\xaf\x77\x1a\x96\x46\x26\x08\x3a\x49\x6b\x44\xfc\x59\x53\xad\xf1\xb5\xa4\xb1\xc0\x55\xd1\x56\x6a\x66\xd5\xab\x08\x4b\x89\xc6\x37\x71\xf1\xe7\xd3\x6a\x37\xfa\xf1\x29\x4b\x53\xf0\x95\xbd\x46\xe4\x63\xa6\xa9\x1f\x94\x84\x56\x68\xa2\xfc\x09\x58\x0f\x78\xe8\x5a\x7b\x2c\x55\x12\x75\x48\xee\x5e\x77\x8f\xdd\xdf\xb4\xc2\x28\xb0\x7d\x35\xdb\x2f\x3b\x8a\xf7\x8e\x82\x44\x18\x0f\x04\x2a\x26\x9c\xca\x93\xf7\xe9\xf4\x47\xc2\x14\x75\x27\x6c\x1c\xf3\x02\x35\x54\x3f\xc1\x8a\xd9\x0f\x5f\x17\x1e\x03\x77\x31\x83\xe3\xef\x0c\x5a\x50\x8c\xa7\x00\x89\x8f\xb4\x29\x86\xda\x51\x10\x05\xfe\xb0\xa0\x56\xba\x05\x2d\x13\x8f\x17\x8b\x37\x9f\x24\x24\x4c\x45\x0a\x93\x5f\x79\x69\x44\x55\x45\xce\x7e\x27\x4a\xbb\x87\xa3\x43\xfb\x2e\x15\xe2\x54\xe6\x50\x16\x7f\x62\x02\x6e\x91\x51\x1e\xbe\x48\x98\x66\x0a\xab\x15\x4a\x14\x4b\x47\xef\x42\x39\x8d\xcb\x84\x4c\xe1\x87\x8b\x10\xb7\xa1\x47\xc8\x7e\xcf\xce\x7f\x4f\xc9\x8a\x30\xad\x6c\x7d\x21\x2b\xb2\x66\x5c\xcb\xfb\x82\x93\x49\x98\x06\x61\xf9\xa8\x79\xa9\xde\xb1\xd1\xf1\x2c\x7c\x61\x88\x99\x28\xe8\xf4\xae\xdd\x74\xf8\x26\xea\x2b\x1c\xf5\xdf\x92\x15\x22\xcc\x70\xc0\xbc\x01\x10\x66\xbc\x2c\x35\xac\x3e\x7b\xc6\x16\x61\x46\x82\x75\x27\x3a\x57\xc5\xb6\x3c\xc2\x80\x2c\x42\x98\x01\x89\x8b\x78\x59\xbd\x5d\x42\x33\xc3\xcc\x24\x49\xc0\x00\x53\x5b\xbc\x5b\x6d\xce\xbb\xbc\x36\x6f\x22\x49\xa0\xb5\xe9\x74\x0b\xff\xc8\x9a\x26\x83\x1a\x41\x1f\x1e\x47\x90\x84\xa1\xd5\x1b\xa8\x7b\x65\x5a\x7f\x44\x58\x85\x9b\xd3\xb9\x59\x17\x4d\xf9\x2c\xd4\xfb\x20\xa4\x9f\x85\x21\x92\x24\xd4\x49\x12\x38\xfd\xd6\xdd\x01\xee\xc4\x3b\xd4\xcf\x55\x79\xf4\xc1\x4c\x12\xb9\xac\xf8\x20\x0a\x9d\xc3\xb7\xdd\xc3\xd2\x4a\xa4\xef\x3e\xaf\x4a\xf8\xa3\xa9\x9c\x44\x71\x8a\xdd\xf6\x76\x6e\x3d\x8a\x2e\x90\x4e\x22\x2a\x11\xc8\x68\xbb\xe1\xe3\x02\x61\x42\x28\x4f\x82\xa1\x46\xe0\x7c\x06\xe8\x47\x27\x36\x0f\x13\xed\x52\xd0\xa6\x91\x50\x35\x99\xc9\x5c\xc6\x33\x4e\xaa\x06\xfe\x11\xd3\x74\x72\x7c\x4e\xc3\xbd\x8d\xf6\x73\x05\x99\x2a\xa7\x15\xb0\xf1\x03\xa3\x91\xa5\x80\xdd\x66\x6f\x59\x73\x1e\x2a\x91\xb6\xc7\xa2\xa8\x33\xa8\x40\x47\x84\xee\x59\xb1\x30\x4e\xa4\x93\xa2\x7d\x3d\x75\x7f\x15\x86\xaa\x4e\xab\x6e\xd1\xb8\x4a\xb9\x13\xaa\x1b\x45\x76\xd3\x9b\x3e\xfe\xd7\x9f\x4f\x49\xac\xf6\xed\x07\xb2\x2c\xf3\x3f\x23\x89\x04\x38\x14\x03\x0a\x0d\x5c\x9b\x27\x92\x24\xe1\x3a\x71\x40\x25\xec\xe3\xec\xcf\x57\xfd\xa1\x24\x4d\xe3\xd4\x4a\x57\xb7\x7b\x81\xf7\xa1\xfd\x3b\x50\xae\x81\x44\xf5\xe4\x94\xd2\x6a\xed\x23\xee\xa4\x34\xcb\xb2\xc0\xf7\xc6\x1d\x15\x21\xc7\x7b\x8c\x75\xf3\x23\x56\xca\xba\xa9\x22\x98\xe0\xce\xbe\x47\x9e\xab\xda\xe7\xba\x9d\x50\x24\x49\xa4\x8a\x91\x3f\xb8\x3d\x88\xe2\xdb\x79\x50\xaa\x48\x54\xa0\x10\xec\x74\x0f\xa8\xdd\x84\x08\xcf\xf1\x75\x29\xca\x11\xef\x02\xea\x27\xda\xd3\xfe\x36\xf7\x04\x94\x20\xb8\xe6\x3d\x94\x6f\x4f\xf0\xb1\x28\xea\x8f\x81\x38\xd1\xf4\xdf\xaf\x6e\x53\x9f\xdd\x26\x4a\x86\xb8\x3f\x22\x80\x7d\x76\xe1\x9d\xcb\x1b\x12\x9d\x06\xa9\x75\x5c\x71\x39\xf1\x75\x6b\x2f\xd1\x3c\xc4\x1c\xd5\x80\x3a\xb4\x21\xf1\xba\x30\xe5\x5d\x59\xb5\xff\xd3\xaf\x73\x89\x16\xd4\xd6\xa8\xcb\xa2\x3e\x1f\x3d\xf3\xf6\x57\x29\x4b\xa2\x85\x02\xea\x57\xb4\x07\x54\x35\x1b\x97\xca\x13\x0d\x22\x74\x0a\x19\x53\x4e\xb3\x1b\x01\xa1\x0a\xbc\x41\x4b\x5d\x43\xd3\x39\x07\x93\x04\x12\xc0\x98\x58\xd4\xef\x93\xa5\x14\x99\x33\xf8\x9b\xd7\xcb\x8d\xb1\x22\x34\xfd\xbb\x61\x02\x8d\x2d\xc5\x36\xba\xdc\x9f\x2c\xcc\xb6\x3b\xa9\x09\x53\x54\xcb\xb0\xcd\xdc\x5d\x59\xa9\xc3\x68\x62\x1b\x23\x99\x53\x6a\xd8\x96\xa6\xd9\x2f\x27\xee\xf6\x24\x0d\xa4\x60\xd6\x38\x02\xa7\xd3\x16\x4d\xb6\xb0\x49\x5d\xdc\x97\x7d\x88\x91\x86\xa9\xa0\xbd\x4c\x61\xe1\xc2\xc4\xf1\xc2\x9e\x86\x29\x90\x81\xc4\xd4\xf0\x0d\x4e\x43\x95\xe2\x84\x5b\x2c\xef\x46\xc5\xc8\x34\x04\x69\x5c\xa6\x86\xfe\xcd\xd6\x76\x6e\x55\x34\xd5\x24\x68\x4a\xa3\x88\x62\x83\x05\xe3\x90\x36\x4a\xcc\x8a\xb7\x45\x33\x1d\x94\xc6\x48\xb7\x94\xe7\x8b\xdd\xf9\xc6\x87\x63\x12\x7a\x1a\xce\xab\xa3\x7d\x0e\xec\x4a\xdc\xa0\x36\xf3\x45\xe8\xc2\x09\x2a\x9f\x79\xa6\x84\xcb\xd8\x9a\xbe\xe6\x93\x4a\x7a\x4a\x23\x89\x52\x15\x7e\x33\x98\x58\x02\xb9\x51\x2c\x88\xe3\xde\xf4\x64\x7a\x30\x4e\x93\x0e\xa6\x02\x85\x82\x5f\xe8\x57\xfa\x8f\xa4\x8c\x3b\xc2\x22\x4a\xad\x6a\xf1\xab\x16\x48\x9a\xb0\x08\x1f\xce\x4a\xb4\xbb\xf4\xfd\xd3\x76\x7e\x85\x4d\x13\x65\xb9\xd1\x3d\x2c\xe7\xf5\xe9\xfb\xea\x65\x7d\xb7\x5e\xdd\x22\xc0\x68\x80\xd0\x49\x13\x48\x71\x7b\xf0\x08\x45\xab\x9f\xd1\x67\xa8\x69\x02\x92\xa6\xfd\xd3\xad\x7e\x1b\x65\x9e\x69\x62\x34\xa6\x1d\xa7\x9e\xa1\x15\x6e\xc1\xef\x01\xc3\x62\x44\x9a\x86\x29\x8a\x7f\x2b\xd1\xfd\x89\x2b\xdb\xb1\x3c\x88\xbc\xe9\x51\x13\x29\xd7\x14\x4b\x87\x8f\x8b\x3f\x9d\xa2\xcf\xf6\xf5\xf9\xf9\xe1\x5f\xdd\x71\xa3\x50\xb0\xe6\x49\xc3\xe7\x50\x79\x9f\xa4\x22\xb4\x6a\x9b\xa2\xae\xa1\x6a\x3a\xbe\xad\x86\xcf\x75\xf1\x72\x1d\x05\xa5\x82\x88\xc8\x72\x8b\x2f\xff\x16\xbd\xb9\x0a\x49\x55\xc0\x0d\x74\xbd\xf2\x06\xc6\xe2\x0d\x24\x55\xb1\x75\xab\x6e\xc3\xc5\x35\x6a\x1e\x77\x47\x0c\x43\x28\x12\x0a\xa7\xe4\xa2\xae\xbf\x67\xf0\x81\xe5\xe7\x68\xf2\xe5\x3a\x0d\x91\x51\x72\x74\x0e\x58\x1f\xa3\x69\xa5\x25\x45\x6c\x34\xee\x46\xed\xda\x38\x79\xe1\x20\xd0\x08\x1e\x43\x88\xe9\x0b\x34\x55\x06\x0e\xdd\x78\x0b\x8d\xc8\xf2\xee\x82\x80\x59\x16\x64\x95\xbd\x1d\x1a\x4a\xc6\x17\xc1\x83\x30\x46\x32\xee\xbf\xb3\xb7\xf2\xdc\x9c\xb3\xc3\x59\xcc\xeb\x7d\x13\x1e\x28\x1a\xba\xad\x7b\x85\xde\xb5\xb6\x67\x3d\x9a\x7a\x3c\x64\x29\x36\xfb\x3f\x0e\x99\x3a\xa0\x02\xd2\xe4\x0b\xc3\xc4\x20\x9e\x0d\xeb\xd9\xbe\x42\xf9\x75\xc3\x94\x87\x3c\x66\xc6\xf3\xee\xea\xd3\xb9\x81\xdd\x9f\x93\x53\x46\x69\xa0\x2c\x9f\xb6\xac\xbf\x28\x2b\xf0\x28\xb5\xf5\x24\x2d\x2e\x39\xe6\x8c\xfe\xef\x5c\x60\x17\xe2\x6e\xb9\x1c\xdf\x60\x1e\x47\x02\xeb\x41\xeb\xa7\xa5\x1f\x1c\x83\xc1\xba\xf7\x3f\xfd\x1f\x48\xc4\x91\x20\xb2\x45\x25\x9d\x87\x72\xb2\x98\x71\x1a\x69\x3d\x5c\x58\xda\xdd\x7d\x5e\x86\x92\x70\x6a\x82\xd4\xdb\x07\x95\xe7\x1a\xb7\xc5\xc9\xcd\xa5\x46\x20\x62\x4a\xda\x82\xee\xb3\xb8\x74\xfb\x0c\x67\xc6\x4e\x9a\xce\xd9\x1e\x41\x27\xd3\x4d\x1b\xcf\xf7\xbf\xf1\xff\x4d\xee\x4e\x1a\x03\x4a\x48\x7e\x5b\x6d\x26\xdd\x3c\x9e\xf2\x28\x72\xf7\x7f\xe0\x94\xea\x0f\x4a\x9e\x76\xf0\x0d\x0d\x70\x74\xe9\xeb\x4c\x5a\xce\x53\x63\xf1\xc2\xb6\x16\x6a\x61\x0d\x5d\x60\x3f\xd5\xca\x27\x9c\x53\xbb\x59\x3f\x57\xa5\xdb\xa5\xfa\xe6\x21\xe7\x89\x76\x16\xdc\xc7\xf2\x27\xdc\xe4\x42\xbd\x5f\x49\x46\x11\xce\x53\x8b\xb0\x96\xed\x2c\xfd\x26\xf2\x9f\x03\x0a\xb1\x1f\x62\xa8\x85\x3d\x74\xd6\x0a\xfb\x6a\x04\x30\x9c\x5c\x95\x24\x8a\x75\x94\xba\xc7\x52\x63\x92\x7b\x2d\x6f\x47\xb8\x64\x01\x76\x07\x90\xe3\xed\xe4\x11\xea\xc9\xe3\x54\x9c\x46\xdc\x61\xad\x1d\xbf\x73\x5a\x9c\x64\xff\x37\x8c\xf2\xb8\x52\x4c\x70\x8f\x51\xec\xe2\x9b\x1a\xad\x52\xbb\xa5\x83\x6b\x05\x16\x20\xe1\x8c\xc9\xfc\x52\xc0\x0d\x03\xac\x84\x83\xb6\x4a\x14\x43\x95\xaa\x61\x6e\xc2\x8d\x16\xc2\xf9\x0d\x62\x5d\x72\xe4\x5d\x3e\x5f\x02\x12\x41\x60\x39\x47\xb6\x3a\xb3\x6a\x0e\xd6\x40\xd9\x1f\xa5\x0a\x4b\x94\xfb\x22\x93\x32\x87\x7a\x57\xee\x2a\xf1\x13\xaa\x1a\xbe\xd4\xc5\x26\x22\x50\x21\x82\x25\xfe\xb9\xdc\x8e\x6a\x34\x22\xd0\x31\xe6\x1b\xd0\x1c\x76\xe5\x0d\xe0\x35\x76\x53\x41\x84\xb1\xf1\x4c\xdc\xf5\x72\x33\xac\x2c\xa4\x7e\x84\x4e\xad\x38\xaf\xa5\xd8\xef\x9b\x2f\x6d\x0e\x88\x88\x12\x0b\xab\x45\xa3\x74\xff\x15\x91\x48\x3b\x9b\xe1\xf6\x55\x58\xe6\x19\x14\xcd\x78\xe5\x15\x91\x50\x2c\xf2\xa2\x60\xc7\x93\x50\xcd\x75\x74\x2f\x22\x65\x05\x5a\xf2\x52\xe8\x11\xfb\x4c\xc4\x41\x18\xb2\x91\x68\xf2\xfc\x4b\x29\xe2\x20\xc2\xba\xd8\xcd\xcb\xf7\xf9\x20\xdd\x8f\xa3\xd6\xb0\xf9\x0d\x33\x4e\x93\x7d\x0e\xe5\x6e\x88\x88\x99\x48\x92\xce\x4d\x43\x77\x42\x39\xed\x1d\x7e\x16\x99\xde\x74\x75\x5c\x41\x42\x95\xf4\x64\xf3\xbb\x2a\x83\x42\xd7\x48\x7b\x85\x6e\x08\xb3\xae\x24\x87\xf2\xe3\x51\x14\x36\x96\xab\xdb\x53\xb5\x9f\x18\xe2\x80\x05\x4b\x23\xc4\x39\x78\xec\xd0\xe8\x49\x33\xb0\x05\xb0\x36\x65\xda\x36\x65\x25\xde\xba\x6f\x48\x22\x69\xdd\x44\xfe\xe7\x73\x56\x4c\x9f\x88\x24\xd1\x11\xf7\x3d\x48\xbc\x89\xdf\x45\x95\xc9\x41\x75\xeb\x4b\x25\x81\xd9\x18\x4c\x24\x26\x46\x51\xa9\x27\xf8\xd8\x5e\x8e\xb2\xcc\x87\x6a\x70\xfe\xe5\x4a\x35\x20\x0a\xff\x3f\x67\xd1\x40\x15\xfa\x8b\xe1\x32\x4a\x9d\x44\x93\x93\x33\xb8\x3d\x3b\xd6\xe0\xfc\x97\x89\x20\x41\x64\xe3\xe2\x08\x55\xa6\x4a\x07\x39\x1b\xdc\x1b\x11\x11\xc4\x48\x6e\xcb\x73\x73\x58\x98\x2a\x53\xa2\x8d\x72\x74\x3d\x1e\x45\x63\x74\xc1\x7f\x43\xe2\xea\x68\x05\x12\x82\xd9\x30\xe6\xf1\xdb\xf2\x66\xd9\x7d\x20\xb5\xdc\xba\x36\xfc\xfa\xb1\x5a\xf7\x7f\xb6\x88\x47\x84\x12\x0b\xad\x17\x85\xbe\x6f\x7f\xca\xb0\xff\x28\x44\xaa\x71\x81\xc2\x7e\x07\x9a\xef\x9c\x9a\x81\xee\xd0\x98\x70\x31\x5c\xda\x84\x14\x56\xfa\xd7\x4a\x93\x5e\xa1\x74\x47\x0a\x73\x83\x85\x56\x48\x13\x20\xfb\xf7\xb5\xb0\x1b\xcb\x2c\x11\x45\xa8\x38\x42\x55\xb3\xce\xc7\xef\x9f\xbb\xf1\x4e\x20\x14\x28\x0c\x5c\xda\x88\x39\xd8\xaf\x9e\x6e\xfd\x4f\xd2\x5c\xa0\xfb\x4e\x23\xde\xe1\x57\xa5\x0d\xa1\x05\x37\xae\xa0\x73\x07\x70\x57\x56\x48\x5d\x58\x54\xcd\x8f\xb2\x7a\xf7\xd5\x4e\x5b\xdd\x9d\x7c\x50\xc5\x48\x24\x79\xbd\xd9\x76\x5f\xaa\x08\x26\x55\xb8\xcf\xf8\xa2\xe3\x0f\xc8\x76\x87\xac\xd2\x2e\xff\x1a\x9f\x04\x22\x70\x6d\x63\x21\x73\x70\x52\x06\xd3\x31\x89\xf6\x33\xbc\xb3\x91\x1d\xad\x10\x26\xe2\x46\xd9\x92\x99\xf3\x26\xeb\xe2\x77\x61\xa8\x89\x5d\x9e\xf7\x98\x15\x8f\xe2\xb3\xdf\x71\x84\x49\x63\xf4\x49\x32\xe7\x42\xed\x83\x68\xe5\x11\xaa\x32\x10\x3c\xf1\xbe\x15\x7b\x5d\x9e\x65\x0e\xdf\xd1\xdb\x7f\xf1\x26\xb2\xa2\xab\x73\xcb\x90\x90\xb8\x1d\xf7\xc7\xfa\x8f\xfd\xe2\xf6\xf6\x65\xb5\xdd\x76\x87\xb8\xad\x6d\x5b\x68\xdb\x0b\x16\xf5\xbb\xb5\x5e\x86\xc0\xf1\x27\x1d\x84\xd6\x5e\x19\xf0\x1f\xe7\x81\x42\x20\x91\xa1\xe1\xb1\x4d\x91\x51\xcf\xbe\x23\x81\xce\x2e\xa6\x32\x34\x40\x89\x4f\x94\xef\x3b\x22\xa8\x8c\x82\x18\x6c\xa8\x83\x0a\x2a\xee\xaf\x31\x89\xd0\x7b\x00\x59\xbd\xa4\x73\x21\xee\x0e\x2b\x8a\x1d\x49\xe5\x15\x38\xdb\x85\x2a\x2b\xce\xdd\x00\x12\x11\xfc\x71\x0b\x53\xdd\x49\x91\x23\x52\xf1\xcf\xe1\xf4\x95\x34\x88\xd1\x42\xa7\xb3\x06\xbe\xb9\xdc\x40\x63\x5f\xa7\x09\x0d\x42\xd2\xc0\x9a\x09\xbf\x41\x33\x83\x75\x90\x34\x00\xf0\x2e\xc2\x22\xab\x07\x7d\x84\xc1\x18\x12\xe2\x34\x70\x76\x07\xb7\xf0\xf3\x0e\xba\x6a\xa2\xa4\x94\xc6\xca\xb6\xcc\xb0\x76\x3b\xd5\x28\x22\x92\x26\x2c\x12\x03\x0b\xcf\x3b\x80\xbf\x56\x41\x9f\x2d\x34\xfa\x13\x6a\x0d\xd2\x03\xb2\xec\x06\xb1\x68\xd6\xb7\xc3\xed\x5c\x52\xa0\x48\x5e\x5c\x3e\xff\x58\x8c\x6e\x1e\x23\x76\x39\x6a\x73\x7e\xb4\x40\x9d\xac\x0b\x92\x09\xcb\xf9\xc5\x88\x3a\xc2\xe7\xd7\x23\xe4\x24\x33\x09\x1f\x1a\xcb\xdd\x8a\xac\x3f\x24\xbd\xbe\x9f\xa3\x5b\x62\x3f\x0a\xaa\x81\x35\x17\x91\x49\x2c\x10\x4d\x66\x9c\xbb\x94\x9d\xb9\x71\x77\x98\x58\xb4\x45\x1b\x7d\x8a\x42\xfd\xda\x51\x83\xc8\x44\x86\xa8\xaa\xf8\x2c\x2e\x55\x99\x5f\xb9\x80\xf8\x51\x46\x26\x5e\x5e\xc9\x6f\xe1\xa3\x2c\x59\xa6\x20\x51\x1f\xea\x54\x7e\x40\x35\x00\x20\x48\x1e\x80\x76\x5c\xb9\x36\xa2\xea\x64\x68\xc6\x5f\x20\x62\x8e\x99\xa7\x33\xe0\x7c\x01\x55\x4e\x09\x39\x52\x26\xa1\x4d\xc4\xf5\xbf\xcf\x75\xb3\x2e\x4c\x8e\x3b\xdd\x00\x82\x27\xa5\x24\xf6\xd7\x6c\xba\xcc\x5e\xaa\xc0\xca\x27\xdd\x95\xe5\x63\x56\x34\x9d\xc2\xb6\x3f\xae\x19\xe3\xb4\x6b\x0e\xcf\xba\x78\xcc\xae\xcd\x52\x73\xb0\xe2\xc9\x22\x57\xeb\xe9\xc5\x6a\x61\x15\x4b\xe4\xf9\xe2\x78\x0d\x93\x5b\x0a\x34\xec\xfd\x0a\x96\x87\x2c\xef\xe6\x3f\x24\x29\xbe\xee\xf6\x82\xb6\xa0\x10\x44\xf4\x57\xde\x25\x57\x57\x39\x5b\x91\x1d\x83\x1d\xfd\xbb\x6e\x28\xf3\x73\xfc\x59\xd4\xa8\xd3\x3d\xae\x4d\x48\xc3\x42\xde\xe3\xd9\xef\xab\xf2\x7c\x1a\x52\xb9\xff\x2e\x59\xff\xd7\x2c\x4d\x69\x0c\x45\xf4\xe8\xfe\x64\x2b\xc4\x7e\x43\x41\xfe\x05\xfe\xcf\xdf\x86\x7b\xfd\x14\x5d\xdc\x3e\x69\xe9\x0a\xd6\x5b\x68\x46\xd1\x94\x1f\x41\x45\xd2\x09\x5e\xaf\x8a\xb7\xac\x00\xa8\xfe\x89\xfb\xe7\xf8\x54\x21\x11\x08\xb7\x19\x74\x8a\xa6\xf7\x73\x74\xe2\x90\x13\xc4\x0b\x59\xe4\xa1\xf5\xa6\x9d\xfd\x91\x2a\x0a\x15\x36\xeb\x91\x90\xb3\x2d\x4d\xd3\x69\x5b\x13\x15\xa5\x31\x9e\x45\x9e\x2f\xcf\x65\xd5\x98\x32\xcf\xca\xaf\x1a\x10\xfe\x23\x5a\x7a\x73\xda\x67\x47\x7a\xbb\xcb\x72\x18\x22\xd7\x14\x49\x13\x5c\x32\x6e\xa0\xa9\x33\x25\x7d\x51\x4c\xd1\xd8\x22\x42\xbd\x1e\x6f\x56\x16\xcb\xf3\x88\xd2\xec\x07\x1a\xe3\x68\xbe\xc5\x59\xe4\x8f\x83\x96\xfa\xe4\x6a\x58\x60\x65\xdd\x5f\x16\x4f\xf7\x2b\x94\x75\xda\xa7\xfe\xdb\xd2\x28\x4d\xc3\xee\x1d\xb2\xf9\xd1\x1c\xf3\x4e\xf1\x28\xc1\x9d\xff\x6e\xe1\xad\xb1\x89\x92\x71\x20\x9c\x9c\xc0\xf2\x20\xda\xb8\xfc\x2b\x34\x84\x52\x61\xc8\x2c\x7d\xd2\x52\x64\xef\x45\x3d\x53\x3b\x50\x2a\x4c\x2d\x36\x07\xf5\x51\xf1\x37\xf9\x23\x3c\x45\x7b\x24\x8f\xc5\x1e\x15\xad\x95\x4e\x34\x6a\x5a\x6d\xfe\xdc\x6f\x5e\xee\xbb\xbf\x1a\x0b\x21\xf3\x6c\xc1\xab\x99\xf1\x37\xa8\x42\x0a\x22\x8a\x58\x3c\xab\xe7\xd1\x1c\xac\x82\x8b\xff\x0a\x60\x0a\x9b\xbc\x1a\x40\xff\x36\xf9\xa0\xb2\xca\xbd\xca\xec\xab\x71\x38\x38\xb9\x37\x26\x49\x70\x86\xdc\x97\xa5\xbe\x29\x2f\xd8\x89\xa9\x7f\x95\xe0\x29\xa3\xa4\x71\xc2\x7f\xd8\xc3\x7e\x82\xcf\xe9\x5c\x31\xc0\x71\x3b\x55\xed\x4e\x54\xf5\xb0\xcd\xf1\x7d\x33\x86\x61\x31\xe9\x54\x95\x0a\xea\x7a\x7f\x84\xea\x0d\xb0\xb9\xb7\x6f\x5f\xda\xf1\x39\x75\x60\x88\xef\xab\x2c\xce\xcd\xa1\xac\x46\xf8\xb2\xeb\xe2\x88\x0e\x63\x86\x01\xef\x49\x9c\x6b\x18\x89\x77\x78\x89\x00\x1d\xca\x08\x9f\x91\xb0\x57\x38\x06\xe4\xe9\xc8\xd8\x1e\x7a\x86\x90\x34\x40\x39\xd7\xd9\xdd\x50\x93\x38\x86\x6e\xae\xdf\x82\xc8\xef\x4a\xab\x6c\x3e\xed\x85\xfd\x75\x4f\x4c\xd3\x98\x60\x9d\xd1\x00\x8c\x6a\xb5\x9a\x0a\x4a\x7b\xa1\x2c\xb4\xd1\x31\x1d\x56\x77\x84\xb5\x9e\x2b\xc7\xb9\x93\xb0\x80\x2b\x07\xe2\x75\x69\xc2\x34\xb8\xd2\x09\x31\xd8\x83\xbc\x59\xde\xa8\x81\xfe\x22\xd1\x09\x55\xdc\x3d\x01\x97\x5b\xce\xa6\x41\x3a\x61\x1a\xc3\xec\xc5\xee\x69\x3c\xc3\x74\x22\x62\x4d\x3a\x41\x15\x5b\xce\xf0\x6f\xb3\x4e\x35\x08\xed\xdf\xab\x76\xf7\x9b\x5b\x56\x35\x0f\xe3\xc4\x36\x58\x9a\x1c\x7e\xc2\x24\x6c\xd0\x5c\x47\x61\x64\x2d\xce\xbf\x3f\xdb\xc7\xd6\xd5\x00\x34\xd7\xc0\x7d\xc9\xc6\xef\x55\xa9\x3f\x06\x61\x6c\x9b\x64\x2e\x88\x1e\xbd\x0a\x22\x4e\x31\xd2\xf8\xb3\x5d\x1b\x9a\x0b\xb6\xed\xfc\x31\x19\x45\xb1\x63\x44\xce\x12\xbc\xc7\x17\x28\x23\x65\x23\xcd\x73\x73\x18\xed\x44\x5a\x12\xcb\x73\xc7\x6d\x60\x95\x67\x6f\x99\xcc\xf2\xf6\x95\xfd\x45\x7f\x5f\x4b\x16\x60\xf5\xe7\x3e\xfb\x09\xcd\xe1\xa6\xca\x86\x4c\xd8\xaf\xde\xb6\xd9\x55\x52\x4b\x1e\xa2\x5e\x88\xca\x1a\xa1\x21\xbf\x39\xcf\xfb\xee\x12\x2d\x55\x8c\xed\x57\xdb\xff\x58\xfd\x27\x8c\xbc\x42\xc0\x3f\x46\x4a\x01\x5a\x9a\x24\xe4\x63\x95\xb9\x07\xd0\x6f\x57\x6f\x9c\x8a\x6c\x79\xbc\x19\x20\xa1\x26\x23\x62\x4b\x9b\x46\x1b\x2f\xb4\x6c\x09\x3b\xed\x75\xa2\x95\xb4\xbe\x85\xe5\xa9\x0b\x88\xdc\x11\x9d\x24\xf8\xc4\x9d\x69\xc4\x73\xbb\x14\xf8\xf5\x47\x83\x0c\x82\xc4\x6b\xa2\x7e\x5a\x7b\xa1\x37\x98\x76\xe4\x34\x28\x6b\x96\xe8\x3d\x47\x86\x74\x13\x54\x7a\x1f\x4c\x5e\xd0\xb6\x64\x75\x8b\x04\xb7\x49\x95\x5b\x9b\x88\xc6\x56\xff\xf5\x34\x6e\x1a\x43\x90\x50\xeb\xf2\xda\x29\xea\xb7\x2f\xe8\xcd\x65\x76\x82\x41\x20\x75\xd8\xb5\xcd\x9f\xdb\xf8\x7a\x30\x4d\x21\x50\x41\x1c\x38\x3d\xc9\x39\xa4\xe7\x35\xd8\x62\x3e\x1e\xec\x7f\x16\x84\x41\xac\x2d\x92\xe3\x63\x42\xa4\x1d\xbf\x43\x10\x0a\x81\x98\xbe\x1e\xe1\xb4\x3d\x94\xa7\xe1\xd5\x85\x52\x23\xad\xdf\x5b\xdb\x78\xf0\xf2\xe4\x27\x86\x26\xc2\xb6\xa5\x27\xfd\x6d\x1b\x38\x75\xa7\x30\x4c\x59\x4a\xd1\xf1\x24\x26\x6a\x9b\xed\xd1\x04\x8b\xa6\x3d\x48\x64\xca\x55\xfd\xc7\xf8\xad\xbe\xc6\x00\x42\xc4\x39\x6e\x71\xff\x85\xaa\xdc\x97\xe7\x49\xa0\x00\x91\x34\xd6\x1f\x56\x14\xce\x0e\x06\xa6\x23\x94\xa0\x83\xec\xa5\x5e\xad\x9f\xa3\x00\x33\x1d\x23\xbc\x69\x27\xf1\x63\x75\x84\x40\x6d\x1b\x05\x6d\xe7\x1c\x95\xdc\xc8\x98\x30\x6c\xc3\x2f\x86\x46\x67\xa4\x0d\xa4\x90\x92\x0d\x8f\xbb\xef\xfe\x6f\x34\x91\x4e\x2f\xcd\xa9\x8d\x5e\xab\xc9\x8d\xcf\xcd\x02\x8e\x8d\x93\x87\xf2\xed\xe6\x7c\xb1\x6c\xea\x5f\xc5\xb7\xc0\x58\xec\xbb\x04\xdb\x46\x34\x0f\x68\x5c\x99\x75\xc1\x09\x30\x0d\x61\xea\x85\x22\x4a\xd7\x08\x98\x7f\x9f\x93\x30\x46\x64\xe6\xed\x6e\xb9\xdc\xaf\x1f\x36\x3f\xf6\xcc\x9f\x25\x61\xca\x3b\xef\x58\xf8\xc2\xb6\x3c\xe7\xb3\x22\xcc\x04\x12\x1e\xc8\x21\x95\x6d\x7f\xbf\x5e\x4e\x9e\x4b\x1a\x28\x44\x51\x6c\x4f\x67\xbd\x2b\x5f\xca\x06\x43\xdb\xc9\x18\xca\xb1\xfc\xea\xc2\xd1\x36\xb9\x7d\xb6\xfc\x13\x7f\x51\x3c\xa5\xc2\x65\x47\x7f\x5c\xd4\x44\x8f\x04\xb8\x54\xca\x15\x27\x56\x53\xc9\x92\xf1\x05\x0b\x6a\xc3\xca\xae\x5e\x88\x9a\x5c\x36\x02\xde\x95\x58\x4a\xf0\x27\x15\x92\x30\xf7\x95\x3f\x44\x55\x89\xc2\x93\x48\x7e\xc1\x25\xba\x7e\xc8\x42\x69\xc4\xa3\xa9\x73\x05\x45\x63\x65\x21\xbc\xee\x24\x01\x01\x40\x9c\x4c\xbb\x95\x4b\x1b\x17\x41\x41\x8a\xc8\x16\xa7\x70\x85\x1e\x36\x38\x41\xc5\x56\x9a\xb9\x2c\xac\x7e\xc3\xf8\x77\x2a\x62\x79\x95\x0b\x1f\x1c\x83\x36\xd6\xd0\xc2\xb7\x2c\x2d\xfb\xfb\x78\xb5\xf8\x02\x04\x09\x56\x11\x5e\x9b\x7c\x1e\x22\xfe\x17\xff\xba\xd3\x98\x48\x81\xf1\xc4\xdf\xb9\x66\x14\x98\x18\xd0\x3b\x78\x0b\xcd\xea\xa7\xc8\xcf\x53\xef\x87\x11\x72\xda\x04\x51\x82\x8d\xde\x3c\xab\x9b\xfb\xbc\x94\x22\x47\x7d\x8e\x5b\xc7\x15\x42\x6e\xe8\x15\xbc\xbe\xbf\x95\x26\x60\x61\x10\x78\x8d\xa7\x2d\xa0\xdb\xee\xe8\x51\x99\x28\x30\xd2\x59\x6f\x34\x9e\xd4\x38\xbb\xe6\x9a\x88\x58\x50\x48\x3b\xc4\xfa\xa5\xf8\x03\x8c\xc5\xd8\xba\xc0\x19\x7a\x8d\x9d\xf4\xcb\x9d\x89\x93\x18\xeb\x8b\xa7\xec\x13\xf2\x7a\xd4\xaf\x31\xb1\x21\x5e\x26\xdf\x81\xad\x76\x97\x13\x6c\x8c\x0d\x81\xc6\x57\x42\x14\xc5\xaa\xa6\x9b\xe5\xb7\xd6\xab\xc0\x5f\x0e\x8b\x12\x44\x3b\xbc\xc3\x65\x84\xd9\x30\x8c\x27\x88\x1d\xb8\x59\x3f\x6f\x36\xdf\xf6\xb7\x8b\xcd\x3e\x8e\xfc\xc1\x44\x04\x89\x5b\x00\x62\x54\xa0\xba\x32\xdd\x22\x26\xd1\x96\xff\x90\xd5\x6b\x55\x2e\xcb\xe3\xa9\xdd\x7c\xfd\x09\x52\x62\xfb\xb3\x1a\xcc\xb0\x6a\x66\x52\x12\x1b\xab\x8d\x74\xaa\xa0\x0d\xfe\x77\xed\xcf\x6b\xb6\x67\xd9\x5c\x4e\x43\xb3\x45\x62\x52\xce\x30\xbc\x6f\x13\x95\x5c\x64\xc7\x45\x9e\xaf\x1d\x3d\xb7\x3b\x9b\xe4\x98\xa7\xef\x4f\x96\x8a\x30\x7a\xfd\x4c\xaa\x2c\xad\xff\x5f\xd0\x34\x02\x23\xcc\xc1\x72\x62\x38\x8d\x22\xef\xef\x2c\xea\xde\xc9\xc3\x1f\x17\x4e\x9b\xed\x20\xea\xc3\xbe\x9c\xc8\x82\x18\x21\x03\x66\x1c\xa7\xfe\xad\xcd\x61\xee\x3e\xf4\x18\xcb\xea\x07\x3a\x7a\xe6\xe2\xe1\x61\xb3\xdc\xaf\x96\x9b\xed\xbf\xb6\xbb\x95\x07\x8f\x1b\xc5\xa4\xb7\x84\x71\x4d\xea\xee\x88\x89\x7d\x83\x6b\xde\x00\x9f\x18\x48\xc1\xeb\x0c\x60\xcb\x38\x7b\xc3\xca\xad\xf5\xb0\x1d\x5f\xaf\x09\x0c\xee\x0b\x55\x89\x46\x36\x87\xec\xe4\xd4\x3a\x6f\x31\xa7\x18\xd2\xfb\x8c\x31\x56\xa5\xc2\xa6\x3c\x8f\xc2\x75\x9a\x77\xe5\x6d\x7f\x91\xc3\x0b\xa1\x41\x10\x58\x4a\xd1\x0e\xf5\xae\x44\x03\xab\xe3\x29\x2f\x2f\x30\x1f\x14\xfb\x88\xc8\x7f\x38\x8a\x89\x0b\x08\xb1\x3e\xf0\x28\x3e\x7b\x97\xcb\x99\x4d\xb0\xfd\x84\xb0\xca\xa2\x9e\xda\x31\xea\x0d\xd2\x20\x4a\xac\xff\x9c\x29\xab\xe6\x32\xd2\x6c\xc2\x63\x82\xb9\x2d\x7a\x91\xe7\xb6\xee\xfe\x2c\x2e\xab\x81\x78\xf6\xaf\x9a\xe1\x34\x88\xe3\x88\x39\x40\xbe\x95\x06\xeb\x1d\xe8\xbb\x11\x80\x91\xca\x51\x7c\xda\xdc\xe0\x1b\xb4\xa1\x78\x77\xd8\x24\x28\x0d\x5e\xc0\xc7\xa2\x6a\xb2\x5e\x39\x64\x26\xd7\xa0\x01\x89\xa2\x24\x74\xf1\x72\xa6\xde\x67\x70\xe1\x34\x20\x31\xc3\xba\xc3\x2a\x07\xd5\x54\x65\x91\x29\x2b\x36\x6a\xeb\xb7\x7f\x0f\x5b\x4f\x03\xd2\xde\x59\x87\x48\x74\xd5\x4e\x5b\xd4\x46\x6d\xd1\xe1\xfb\x44\x03\xe2\x0c\x96\x7c\x36\x12\x07\x6e\xe1\x0d\x5c\x7c\x1b\xb8\x81\x8c\x52\x94\xb7\x75\x6c\xcd\x9e\x70\x36\xbb\xae\xd2\x80\x49\x8e\x5b\xcf\xbf\xcb\x73\xde\x3d\xb4\x24\x94\xa9\x75\x4c\x74\x6c\xd3\xc1\x4a\x46\x83\x84\x1a\xa4\x93\xc3\x7f\x4f\xff\x1d\x84\x68\x34\x48\x34\xd3\xba\x33\xcc\x2a\x2c\x7a\x71\xf8\x32\x24\x90\x60\x0a\x24\x2b\x51\x68\x4f\xa9\x19\x56\x5c\x69\x90\x46\x01\x92\x48\x1b\xeb\xfd\xf2\x90\xc9\x4a\x54\x97\xd5\x4f\xe8\xbf\x9f\xa7\x80\x99\x19\xb4\x9b\x73\x21\xaa\x55\xd1\x64\x5a\xe8\x09\xcf\x82\x06\x5c\x72\x44\x1b\xd8\xa6\x7f\xd3\x33\x7e\xff\xda\x09\x9b\x06\x5c\x09\x0c\xbf\xf7\x36\x60\xc5\xdf\x39\x17\xd7\xd1\x40\xc4\x11\x86\x88\xcf\x55\x56\xb6\xcf\xf0\x9f\x67\x38\x77\xbf\x58\xc4\x12\x97\x8c\x09\x94\x68\x74\x05\x13\x3f\x6a\x1a\x08\x99\x60\x5c\xad\x5c\x04\x78\xed\x24\x4b\x03\x09\x06\x17\xdb\x9f\x96\x08\x57\x35\x93\x1f\xaf\x03\x82\x1b\xc2\xd6\x59\x63\x5e\xd7\xca\xc3\x6e\x68\xa4\x85\x7b\xe3\xb7\xe7\x53\x9b\x94\x39\xaf\xf8\xf1\xef\xd4\xa9\x48\xad\x1b\xa7\xf0\x95\xa9\xc7\xac\x68\xe6\x0b\x2c\x34\xd0\x0a\x70\x1e\x35\x50\x37\xce\xe5\x23\x87\xca\x37\x78\xa0\xa9\x31\xcd\xec\xd3\x43\x1a\x68\x1d\x59\x7b\x70\xf7\xb3\xf1\x9e\x4f\x25\xa4\xff\x31\xf9\x16\x4d\x10\x68\x9e\xd5\x77\x59\xad\xbc\xd1\x32\x0d\x20\x32\x48\xef\x42\x07\xa0\xc5\xed\xe6\xb9\x77\xcb\xa2\x81\x31\x29\x70\xc7\x72\xd8\x62\xe6\xe2\x42\x36\x1a\x06\xc4\x2a\x34\xad\x6b\x9b\xa0\x8e\x7f\x54\x18\x30\x01\xbc\xef\x7f\x3e\x95\x5a\xe4\x08\x89\xfa\xbd\x97\xbe\xf0\x43\x93\x18\x01\x66\x6d\xd8\x7b\x8b\x61\xef\x0f\xc8\xc6\x0f\x29\x0c\x78\xca\x45\xe7\x57\xe2\xbc\x47\xd0\x14\x0e\xe7\xec\x64\x74\x18\x47\xb8\xcc\xbe\x80\xca\x4e\x19\xb4\xe9\x62\xfb\x7d\x16\xbb\xab\xc7\xdf\x4e\x05\xd1\x76\xab\x2a\x82\x87\x3e\x86\xa5\x21\x55\x3a\x4e\x7b\x5b\xe0\xc9\xef\x63\x86\xe0\x0c\x7e\x28\xdf\x2c\x16\x67\x24\x8e\x37\xbe\xf7\x61\x12\x73\x04\x7c\x3d\xbf\xac\xf6\x33\x9a\x75\x34\x4c\x8c\xa6\xa4\x43\xc1\x9c\xbd\x26\xf7\x64\x9e\x86\x29\x07\x6c\xfc\x8c\x6d\xe7\xe2\xae\xf4\x41\x43\x1e\x2b\x32\xcc\x79\xee\x45\xde\x06\x26\x6a\x46\x99\x96\x86\x9c\x58\x4b\x10\xdb\x5c\xc7\x88\x15\x93\x88\xad\x67\xce\xd2\x50\xc4\x12\x61\x19\xc7\x73\x7e\x45\x18\xa4\xa1\x48\xd2\xc8\xb2\x86\x2e\xcb\x39\xe3\xdf\x49\x69\xdb\x7f\x4a\x81\x13\x27\x50\xbd\xb5\xa1\x3b\x26\x8d\x76\xcf\x39\x37\xdf\x2e\xb2\xca\xb4\xf3\x56\x1d\x70\x93\x69\xa8\xe2\x08\x5b\xaf\x59\xdd\xf3\x8d\xbc\xe8\xbb\xf6\x83\x74\xd4\x49\x57\xb6\xd1\x55\x67\xe5\x4e\x43\x4d\x15\x06\xc2\x37\x59\x53\x37\x95\xf8\xcf\x7e\xb8\x36\x87\x5a\x59\xa6\x80\x35\x2a\xbc\xc9\xf4\x6d\x66\x1c\xbc\x7a\x5d\x6c\xff\x2b\x64\x39\x79\x2a\xda\x68\x3e\x60\x08\xfa\xae\xef\x6c\xd2\x4e\x43\x88\x15\x36\x1f\x7c\xaa\xe3\xe8\x75\x77\xe7\xe2\x57\xb2\x3c\x34\x84\x34\xc5\x66\x62\xbb\x92\x64\xc5\x9b\xd3\xc7\x9a\x55\xdd\xa5\xa1\x89\x2c\x58\x79\x2c\xd9\x38\x39\xa3\xe1\xb6\xc8\xd4\xae\xfa\x7b\x35\xb5\xef\xf6\x83\x94\x41\x9b\xee\x87\x87\xef\xfb\x38\x0c\xf7\xab\xdb\xf5\x6e\x4f\xfc\xbd\x32\x26\x44\xe8\x46\xd6\xa0\x2f\xc0\xe6\x27\x54\x56\xba\xdf\x0d\x88\x02\x13\x60\xdd\xa1\x71\x81\x5a\x7b\xf5\x6b\x74\xd4\xe9\x47\x28\x64\x39\x35\x15\x88\xba\xd3\x2b\xa1\x51\x18\xd9\x16\xfc\x5e\x9e\x2f\x6b\x07\x44\x1a\xdf\xf8\x28\x8c\x69\x62\x99\xe6\x4a\xe4\x76\x9d\x19\x84\x8b\x34\x0a\xd3\x14\x9d\x5f\xfa\x10\xf6\xb9\x5d\x8b\xc7\x38\x2c\xf7\x2e\x47\x11\x8d\x6d\xf3\xc9\x0a\x3f\xfb\x73\x44\x8c\xa3\x18\xfc\xa6\xac\x40\x97\xa5\xff\x73\x9c\x50\xbc\xea\xa5\xa8\x0f\xe8\x20\x3f\x7b\x8b\x23\xa2\x19\x06\xb7\xaf\x37\xd0\xf4\x55\x2f\x1a\x51\x12\xc4\xbd\xdc\xd9\x93\x38\x82\x35\x89\x1d\x5c\x3c\x4d\x2d\xbc\x00\x5f\xc3\xb7\xf6\xee\xde\x01\xd4\xb7\x67\xd8\x95\x77\x65\xf5\xde\x57\x19\x69\x44\x85\xc1\x48\x66\xb7\x59\xdc\x74\x1f\x57\x31\xe2\xdb\xf4\xee\x65\x7d\x7f\xbf\x7a\xd9\x3f\xad\xfe\xdc\xfd\x58\xad\xfe\xd8\xef\xd6\x8f\xab\xed\x6e\xf1\xe8\x17\x9f\x88\x05\x1c\x1b\x09\xb7\x60\x2a\x71\x51\x83\xcb\x64\x5c\x4a\x9b\x26\x1f\xb3\xc6\xa5\x6f\x6d\xba\xd7\x1d\xd7\x89\x57\xfd\xdd\x81\x38\xfa\x5d\x7f\x34\xdd\xa3\x24\x0a\x11\x8d\xb3\x91\xff\x6e\xef\xeb\x4c\x94\x18\xa5\x34\x45\xf5\x66\x7c\x4b\xf6\xd2\x9f\x3e\x65\x0a\x97\x71\xfc\x73\x58\x37\xe3\xfa\x29\x8d\x78\x68\x23\x8f\x37\x68\xbe\x3f\x3e\x8b\x4a\x1c\xa1\x19\xe8\xc3\xb8\x51\x92\x09\xca\x86\xf6\x27\x36\x0b\x99\x9d\x9d\x91\x0a\x0c\x82\x3f\x95\x37\x60\x1e\x98\x60\x4e\x46\x86\x09\x16\x7d\x9c\xc8\xa5\x55\xb3\x6c\x43\xb8\x9b\x4b\x1a\xb4\xff\xd9\x37\xd9\x11\xb0\x8d\xec\xaf\x57\x31\xa6\xc2\x81\xb1\xc4\x43\x59\x77\x0a\x19\x34\x52\xdc\x06\x17\x6f\xd9\x4f\x10\x1f\xe2\xca\x85\x6e\xf4\xb6\xea\x80\x04\x4e\xc8\xa8\x1d\xb3\x31\xbd\x99\x46\x77\xe3\x75\x60\x29\xea\x1d\x2a\xa6\xac\x6e\x44\x0d\xcf\x57\x21\x50\x04\xdc\x84\x96\x40\xe5\x95\x7d\xd0\xe7\x79\xbc\x14\x44\x20\xa3\xd4\xf5\x9e\xef\xce\x93\x4e\x4b\x7b\x34\x61\xbd\xc3\xe5\xf7\xf5\xf3\x4d\xd9\x99\x50\xd3\x08\x8c\xec\x3c\xf2\xcb\xe3\xa9\x81\x6e\x0d\x89\x0c\x23\x0a\x06\x24\x72\x51\x5c\x26\xda\x00\x34\x0e\xb4\x0c\x15\x82\x47\xca\x7c\x7f\xea\x05\x5d\xdc\xe1\x50\x70\xac\xf4\x15\xe7\xe3\xc6\xbc\x16\x7e\x69\x45\x4c\xda\xec\xd6\x17\x47\x11\x47\x23\x97\xff\x8a\xfa\xb3\xfd\xef\x7f\x84\x3f\x57\x1c\x4b\xdb\xf6\xc8\xcb\x1a\xf6\x05\x7c\x36\x7b\x79\x46\x22\x98\x1b\x40\x42\x8a\xa4\x26\xe7\x31\xe3\xff\x2a\x62\xe2\x10\x43\xb8\x02\xfe\x25\xf0\x61\x34\x49\x62\xa2\x58\xc2\x3c\x7e\xc6\x64\x79\xde\x46\x00\x77\xe5\x08\x29\x47\x63\x9a\x48\xcc\x83\xac\x6d\xc4\xb2\xd4\xc3\xba\x04\x8d\x29\x68\xf4\x72\xc6\x4b\x6f\x03\x92\x02\xf2\x11\xd0\xb9\x4f\xff\x69\xcc\x22\x0b\x4e\x3c\x68\x57\x6b\x9a\x62\xd8\xda\x21\xd6\x6a\xdc\xbf\xaf\x53\x27\x02\x1a\xb3\x58\xe0\x8d\xf7\x68\xe1\x6b\x26\xc4\x5f\xfe\xfb\x65\xd6\x17\x33\x41\xb0\xad\xf1\xba\xbd\x8d\x82\x3e\xf1\xf6\x47\x55\x82\xb2\xfa\x79\xf9\xe1\xe3\xe6\x91\x7c\x13\x8d\x99\x49\x11\x32\x74\x12\xd9\x5e\x68\x3d\xb7\xf2\xc4\x09\x4b\x70\x57\xd5\x50\x64\xd7\xed\x63\x3f\x48\x58\x6c\x0b\x1a\x3f\x8a\x66\xf1\x53\x34\xa2\x7a\xad\xc6\x84\x2e\x1a\xa7\x71\xe8\xbd\xb0\xb7\xe5\xd1\x99\xa7\x8d\x87\xf0\x00\xb0\x3e\xd0\x1c\xb2\xca\xa1\x06\x36\xa6\xd3\xf0\xa6\x31\x0f\x03\xdc\x6d\xdb\x78\xfb\xa9\x7d\x15\x4e\xe7\xa6\x77\x7f\xed\x46\xc5\x06\x3b\x50\xf7\x96\xa0\xf7\x21\x2a\x18\x3d\x15\x11\x45\xc2\x35\x75\xb7\x67\xf9\x98\xe5\x6d\x92\xd2\x9b\x87\x7f\xa9\x3b\xe7\x3f\x9e\x0a\x24\x13\xdd\xbf\x2c\x9e\x57\xdd\x39\x53\x65\x86\x46\x53\xf5\x03\x98\x66\xfc\x76\x0a\x08\xb0\x15\xfb\xfc\xba\xdc\xac\x9f\x66\x35\xcf\xdd\x48\x19\x27\x88\x0e\xc6\xe5\x52\x14\xb6\x33\xe4\xbf\x49\x11\x8a\x21\xac\x9f\xc5\x23\x15\xf4\xc9\x89\x14\xb7\x97\xaa\xcc\xde\x09\xca\xcd\xaf\xeb\xb1\x12\x0a\xa5\x2d\xf2\xac\x6e\x36\xe7\xc6\x57\x81\xea\xee\x4b\x8d\x35\xb0\x47\xff\x80\xc7\xac\xc8\xee\x3b\x33\x60\x1a\x6b\xc2\x71\xe1\xfb\xf1\xf0\x30\x7a\x0e\x10\x10\x41\x3b\xe1\x99\x0e\xb6\x49\x63\x90\x34\xd6\x1d\x7a\x74\x57\x6e\x01\xf4\x13\x7c\x3a\xc9\xfc\xf9\x2b\x04\x25\x51\x40\xa2\xc3\x1e\x8c\x5a\x82\x94\x04\x29\x60\x5b\x68\xb7\x5a\x3c\xee\x5f\x56\xdb\xd5\xcb\x77\xff\x70\x48\x18\xd2\x88\x0e\x11\x9f\x1d\x26\x74\x58\xfd\x21\x61\x6c\xd1\x23\x76\x89\x1e\x5a\xdf\x4c\xf6\x4c\x12\x41\x82\x4e\x37\x6e\x64\x73\x80\x6a\x59\x4e\x20\xc4\x38\x4a\x39\xa3\xf2\xb5\x76\x6c\x68\x4b\xd2\xf2\xdf\x18\xa7\xc4\xf0\x8e\x32\x83\xf4\x4c\xab\x00\x3f\x9f\xa4\x92\x38\x35\xb8\xf8\xde\x3d\x64\x7f\xfc\x9a\xfa\x3b\xbe\x7b\x84\x70\x86\x05\xf4\x73\x71\x87\x4a\x3a\x57\x0c\x60\x4a\x88\xa4\x91\xea\xdb\xbb\x2f\xe7\x5f\x21\xf2\xc7\x67\xa7\x86\x93\x70\xa0\x14\x76\x65\x49\x45\x09\x8b\x38\x1f\x72\x1a\xd1\xdf\x78\xb4\xc6\x13\x16\x07\xde\x43\xfd\xc7\xc3\xb8\x30\x48\x98\xb4\xbe\x8e\xe2\x94\x4d\x8f\x68\xae\x48\x77\x0b\x51\x35\x70\xfc\xcd\xa9\x33\xfa\xf5\xc4\xf5\xe5\x34\x92\x9f\x56\x0b\xff\x37\xfd\x3f\xff\x51\x65\x42\xd7\x11\xd8\x14\xcb\x32\x3f\x1f\x8b\xdf\x66\x64\xc7\x28\x49\x4d\x80\x34\x82\xd5\xee\xdb\xc6\x2c\xab\xcb\xb6\xcc\x6d\x38\xd7\x5d\x26\x0f\x28\x16\xed\x17\x45\xd9\xbe\x2d\x9e\x35\x31\xbe\x54\x1e\x86\x96\xea\xdb\x6e\xde\x9b\x02\x3a\x60\x5b\x7b\x88\x83\xb3\x0c\x5e\x17\x59\xb3\x14\x95\x8e\xba\x63\x44\xa2\x7a\xe6\x19\xbd\x73\xa3\x7f\x75\x7f\xe7\x80\x1a\xba\x0f\x3f\xee\x86\xf3\x92\x70\x50\xd6\x91\x43\x18\xb8\xad\xfa\xa5\x85\x88\x88\x4b\xe9\x77\x59\x7b\xb7\xe0\x5a\x07\x9a\x12\xc1\x19\xb1\xae\x84\x93\x02\x2e\x11\x02\x3c\x1d\xf1\x11\x45\x46\x77\xe5\xe9\x01\x7e\x42\xde\x8d\x50\x84\x23\x77\x04\x0d\x2f\xb2\xe6\xe2\x00\x6c\xdd\x51\xab\x22\x67\xf7\xf9\x73\xa1\xaf\x2d\x36\x29\xd1\x24\xa0\x61\xef\x1e\xb1\x2e\x1a\x78\xf3\xe0\xa1\xd1\x1b\xea\x0b\x53\x44\xb3\x08\xab\x2d\x75\x76\xec\xf8\x1d\x83\xcd\x9e\xe8\x54\x21\x88\xe8\x51\x9c\x4e\x83\xf4\x8c\x80\x04\xd6\x2b\xd6\xf9\x15\xe7\xaa\x41\x45\x69\x48\x2c\xd6\xe7\x71\xf1\xe7\xfe\xf9\x65\x85\x45\x0c\x6b\x21\xbf\xdf\x6e\x1e\x7c\xf9\x81\x86\x94\x49\xda\xb1\x11\xe6\x17\x6d\x1a\x52\x89\x8f\xcd\x01\x97\xea\x1a\x05\x20\xb0\xfc\x30\x59\x87\x68\x98\x32\xd1\x09\x77\x75\xa5\x19\x1a\x4a\x63\xac\x9c\xee\x3b\x38\xb1\xa7\x41\x2f\x87\xd2\x28\xe4\x98\x4f\x2c\x0f\x55\x79\xcc\xba\x6a\x06\x8d\x22\xe1\x35\xc2\x91\x25\xdb\x66\xa3\x76\xe7\x1c\x06\xce\x34\x8e\x13\xee\x54\x04\x6f\x32\xad\xb3\xe2\x0d\x0d\xef\x8a\x69\x3b\x92\x52\x42\x52\xab\x81\x51\x55\xe2\x32\x2a\xcf\x52\xe2\x84\x91\x31\x18\xbb\xc9\xe6\xcd\x4c\xdb\x61\x06\xd3\xbc\x9b\xc5\xef\xeb\xdb\xcd\xcb\x5f\x17\xc3\x69\xbb\x7d\xc6\xb8\xfb\x17\xcb\x43\x76\x1a\x5f\x3a\x55\xa1\xb3\x28\xcb\xf3\xc7\xcb\x90\x88\x47\x29\x13\x01\x12\x49\xbd\x68\xf9\x78\x87\x1e\x3c\xec\x84\x70\x8b\xae\x81\xa1\x11\xca\xe4\xc2\x13\x0a\x9d\x93\xc3\x01\xec\x6f\xdf\x98\x76\x32\xd9\x15\x78\x72\xa7\x12\x11\xa6\x30\x58\x1f\xbf\xc1\x57\x1a\xfd\x94\x26\x52\xa2\x56\x20\xaa\xb0\x4e\x5f\x89\xd4\xe1\xe1\x2c\x75\x71\x86\xe3\xde\x0e\x51\x98\xf8\xc0\x27\xa8\x73\x03\xbb\xcf\x2f\x35\x3a\xfc\x07\x78\x82\x29\xe2\x2d\xc8\xf3\xdb\xaf\xac\x1a\x29\xe5\xb1\x44\xd5\x7d\xbf\x4d\x63\xde\x5b\xe8\x67\x6b\x6c\x33\xa9\xe0\x8c\x6f\x01\x17\x46\xf3\x2f\xd5\xdb\x27\x2a\x6e\x94\x72\x95\x60\x2a\x8a\x1b\xfe\xf7\xd5\x16\xfd\x4f\x9f\x57\x2f\xeb\x4d\x37\xdd\x44\x60\xf5\xb7\xd0\x7d\xb8\xcd\x7c\x3b\x9b\xbc\xbe\xa7\xfb\xb7\xff\x57\xfb\x02\x74\xff\xf4\x5f\xa0\x3a\x47\x84\xad\xc8\xc1\xea\x14\x76\xdf\xcf\x00\xf5\xb3\x7f\x22\xbb\xc6\xc6\xb3\x13\x3a\x0a\xa5\x22\x11\x58\x65\xbc\x87\x63\x27\x11\x43\xa9\x00\xab\xdd\xd5\x01\x9c\x26\x8f\x59\x12\xe1\x31\x15\x88\x4b\x28\x8b\x36\x00\xe9\x3e\x2e\xa9\x55\x75\xb0\xa0\xe6\x6d\xe7\x0c\xbf\xf8\x29\xb2\xbc\x37\x45\xa2\x54\x32\x2e\xe3\x0e\x76\x5d\xd6\xcd\x00\x77\xed\x87\xa4\xd2\x33\x26\x9f\x61\xfa\x0c\xdd\x18\xc5\x74\x90\x0c\xbc\x2b\x6f\x45\x03\x1b\xb3\x14\xc7\x93\xc8\xde\x8a\xf1\x46\x4f\xb5\xb4\xfa\xd4\x95\xf5\xf1\xdc\xfb\x6b\x01\x4d\x70\xb5\xd8\x9f\x0e\x9f\x33\x31\x04\x35\xdc\xd2\xd8\x1f\xca\xb7\xb0\x4b\xc9\x46\x73\xdf\x08\x48\x5c\x51\xe8\xd5\xb7\xad\xb2\x72\x0c\x8f\xa6\x2c\x20\x44\xd9\xac\x4c\x59\x17\x83\x1b\xa1\x5f\xe0\x34\x3f\xdb\x58\x40\x28\xce\x96\x76\xea\xbe\x9e\xde\x2a\xa1\xaf\x9d\x97\x7f\x1d\x1f\xb1\x40\x5a\x88\x68\x0d\xcd\xc6\xb5\x6f\xee\x45\x7d\x1d\x31\xb2\x30\x92\x08\x05\xb5\x90\xea\xdb\x49\x6b\xb9\x3d\xae\x03\x18\xc4\xfe\xcf\x22\xcb\xf3\xac\x6f\x44\x8d\xee\x17\x0b\x8d\xb5\xe3\x52\x59\x63\x9d\xbc\x77\x65\x57\x0f\x1d\x7f\x6f\xa4\xed\xd4\x2b\x4f\x50\x0c\x7c\xab\x28\x8b\x4c\x00\x2e\x28\xfc\xe3\x5f\xcb\x17\xf8\xcf\x39\xab\xd0\x47\xb8\xd7\x9f\xea\x17\x46\x16\x27\x1c\xd7\x89\xc7\xf5\xd3\x7e\xfd\xd4\xce\xc9\xd5\xed\xbe\xa3\xee\x50\x16\x6b\x8a\x71\xa2\x86\xfc\xae\x5a\x7d\x2a\x38\x0d\x99\x96\x6e\x10\x91\xda\xae\x20\x4a\xdd\xb5\x97\x32\xac\xfa\x31\x62\xac\x0e\x9c\xaf\x97\xa2\xe4\x4f\x7f\x50\x7b\xe4\xe1\x53\xd9\x88\xde\x1e\x62\xb0\x78\xb3\x76\x9d\xe7\xc3\x89\xb5\xbe\x9d\x5c\x00\x65\x86\xf7\x69\xc0\x63\xfd\xb6\xb5\xba\x35\x65\x71\xae\x6f\xab\xf2\x34\x59\x71\x19\x95\x71\xda\xbe\x74\x77\x9b\xd7\xa7\xdb\xc5\x6e\xbd\x79\xda\x3f\x6f\x36\x0f\x48\x99\xc3\x85\xe9\xb7\x6e\x20\x60\xc9\xb6\x2e\x4d\xf3\xd8\xa8\x2b\x15\xbf\xc9\x69\x8d\x95\x3f\xdd\xb6\x53\x6a\x14\x2d\x4e\x1e\x33\x23\x0c\x33\x9f\xed\x11\xa7\x70\xf1\xdf\xec\xb7\xee\x88\xed\x5d\x9d\x2a\x70\xab\xc0\x10\x51\x4e\x19\xa3\x92\x5a\x17\xd2\xd2\x34\xaa\x0b\x36\x19\x93\x80\x1b\xcc\xaa\x39\xbc\x40\x9e\x81\x99\xdc\x21\xa6\x0d\xc6\x0f\x7b\x2b\x0b\x66\x65\x03\xa6\x53\x60\xfe\x57\x25\x09\x65\x4e\x9c\xe0\xb6\x8d\x0b\xcb\xd3\x11\x8a\xc6\xf5\x56\xca\x63\xd9\x3e\xec\x19\xab\x07\xca\x52\x16\x20\xaa\xc3\x41\x53\x51\x89\xd8\x1f\xe2\xc2\xf4\xb0\x07\x7f\xb3\xe6\xa7\x22\x4f\x53\xec\x4b\xe5\x6d\x56\xd7\x86\x2f\x83\xa5\x98\x71\x15\x7a\xbc\x75\x1b\xfa\x0c\x08\xd1\xed\x4b\xc3\xb1\x0d\x6a\xb5\xf3\x97\x90\x77\x21\x2d\x13\x5a\x62\x96\xbd\xae\x71\xd7\x9a\x5c\xb8\x8c\x01\x7b\x0d\x47\xd0\xd9\x14\x09\x42\x99\xe4\xda\xfb\x1b\x60\xf1\x7d\x7a\x58\x5a\xaf\xd1\xce\xb3\xf7\xf1\xd2\xf5\xbe\xdc\x10\x15\x06\x58\x64\xde\x3c\xed\xae\xdd\x5a\xdb\xc3\x09\xf1\x31\xfd\x10\xa4\x35\xff\x78\x54\x1a\x62\xec\xd9\x17\xac\x1e\x9d\x10\xca\x17\x6f\xa9\x4a\x29\x22\xd3\xea\x53\x56\xec\x0e\xf0\xe3\x00\xd3\xca\x27\xd3\xb1\x01\xdb\xee\xc5\xe7\x6d\xed\xed\xbc\xc5\xdd\xde\x94\xd5\xfe\x66\xf2\x09\x20\x09\x56\xfb\xc4\xcf\xb7\xf6\xa5\xad\x77\xe5\xb0\x7e\xc3\xda\xfb\xe2\x45\x83\x96\x7f\xc3\xc2\x6e\x72\xc9\xc0\xac\xab\xc5\x36\x2b\xd0\x73\x31\x6b\x2e\x3b\xa8\x9b\x30\xea\xce\x0f\x31\xd6\xa1\x55\x27\x3d\xed\x0e\x98\x38\x75\x75\xe0\x3f\x8a\xf2\xa3\xd8\x14\x9e\xbe\x47\x93\x20\xd0\xba\x7d\x07\xfe\x2d\xd4\xfb\xfe\x23\xeb\x2d\x40\x68\x12\x44\x09\xfa\x69\x23\x74\x2d\xcf\xdb\xa7\xb0\x2e\x9e\x2b\x50\x59\x4f\xd2\xa6\x49\x40\x63\x34\x05\x10\x59\xa5\xab\xf2\xf4\x23\x2b\x06\x6f\x66\x12\x24\xb6\xcd\xd4\x80\x38\x7a\x91\x08\x7f\x48\x5a\xe0\xe8\xed\xf7\xf5\xf3\x8d\x50\xef\x5f\x19\xbc\xd3\x24\x24\x80\xc1\xaf\xb5\x9c\x5a\x3e\x3c\x35\xa5\x4d\xd2\x1e\xc5\xfb\x57\xcb\x50\x12\x2a\x6b\x8b\xf9\x02\x28\x0c\xe1\x8d\x75\xe7\x9d\x67\x68\x12\x1a\x1d\x39\x4d\xde\xe7\x0a\x6a\x55\x65\xa7\x21\xe7\x79\xb4\x5d\x27\x51\x60\x75\xbe\xdf\x90\x3e\xa5\x1d\x80\x1f\x21\xbd\x1b\x63\x1d\x25\xe6\x90\xf2\x34\x89\x34\xa0\xac\x98\x44\xaf\x90\x5f\xf5\x05\x93\x38\x94\x18\x12\xbc\x16\x27\xa1\xde\x5f\xe0\xa7\x97\x44\x1f\xe4\x7f\x49\x4c\x94\x6f\x26\x21\x24\x30\xf4\x59\xe2\xba\xf8\x56\x9e\xa7\x2d\x93\x84\x04\x21\x32\xf4\x45\xbb\x6c\x0d\x69\x9c\xed\x21\x8a\x14\xd4\xd5\xe3\x7a\xbb\x6d\xb7\x82\xbb\xcd\xcb\xbe\x0d\x51\xfd\x00\xaa\xa8\xea\xf1\x37\xed\x2b\xb4\x9b\x04\x5c\x09\xd5\x26\x89\x7a\x74\x98\xd3\x7e\x9a\xad\x08\x25\x2c\x88\x51\xec\x45\x68\xfd\x04\x1f\x5b\x71\x3c\xe5\x80\x2d\xa8\xb9\xc8\x3f\x61\x01\x45\x5d\x3b\x7b\xdf\x86\x92\x61\x34\x61\x0c\x52\xe2\xa6\xbe\xcd\x19\x77\x83\x40\x31\x61\x5c\x48\xde\xa3\xee\xda\x87\x5b\xf7\xef\x78\x42\xa9\xf7\xf8\x69\x2f\xd9\x9d\x79\xf4\xb0\x13\x1d\xa9\x68\x58\x33\xdb\xd9\xa6\x25\x36\x83\x7f\x7c\xcb\xba\x2c\xf3\x1f\x93\x6a\xbb\x87\x9e\x8d\x7e\x49\x1a\x4a\x04\x85\x6c\x45\x73\x97\x7d\x7a\x56\xe3\xe8\x1f\x3f\x32\x32\xba\xcf\xb9\xb7\x4d\x75\x56\xcd\xf9\xeb\x66\xbc\xff\x14\x37\xd4\x0c\x7b\x51\xed\xe2\x35\x4c\xa2\x13\x1e\x2a\x2c\xd2\x1e\xcf\x75\xf3\xad\xcc\xf5\x5d\xd9\xdd\x0d\xce\x12\xd7\xc1\xb7\xee\x49\x7e\xa7\xef\xee\x35\x07\x69\x09\x5f\x87\x45\x56\xb5\x31\xc5\x5d\x7d\x10\xd5\x64\xf1\x4f\x04\x4b\x35\x62\x6c\x1b\x38\x1d\xa0\xf8\x26\x3e\x7a\x7d\x5a\x9a\x08\x95\x60\x1d\xb8\xb2\xc4\x4e\xa7\xc3\xb4\xb5\x32\xc7\x73\xf1\x60\x22\x79\x84\x94\xb0\xbd\x33\x99\x39\xa3\x83\xd7\xec\x8b\x22\x55\x80\xd5\xd6\xdb\x4a\x7c\xf4\x06\xd5\x34\x51\x01\x97\xca\x21\x6b\xa0\x68\x6e\x2e\xeb\x31\x93\x8e\x26\x2a\x49\x31\x62\xec\xdd\xd5\x26\x70\x5c\x3f\x2e\xb5\xe1\x8d\x3e\x1f\x8f\x17\xcb\x23\x71\x47\x34\x11\xa8\xcf\xe4\xec\x15\xb4\xe3\x88\x8f\xbf\x46\xa7\x69\x20\xac\x88\x3f\xd2\xa1\xbf\x70\x91\xfe\xf5\x56\x90\x40\x1c\x62\xe4\xe0\xbe\x6a\x7b\x96\x1e\x30\x33\xbf\x82\xb6\x13\x1c\x41\x58\xc5\x9f\xfd\xca\x0d\x8c\xf2\xce\xd1\xda\xca\xde\x4c\x80\x61\xbf\x20\x06\xd0\x04\x44\xc8\x3a\x46\x2d\xbe\x61\xdb\x8e\x82\xe2\x25\xc5\xa7\x97\x2d\x15\x1a\x74\xdd\xbd\x3c\x0f\x0b\x7b\x89\x71\xf2\x4c\xb6\x16\x8a\xf6\x40\xcd\x79\x12\xeb\xa7\x41\x98\x62\x55\xba\x8d\xf5\xdb\xdd\x75\x0c\xb3\x4c\x83\x04\xb0\xef\x75\x2e\xac\xe6\xfa\x4d\x79\x7e\x3b\x34\x73\x49\x5f\x1a\xc8\x48\x5a\x42\x22\x3e\xe0\x55\x2f\x01\x41\xd3\xc0\x10\xec\x6a\xe7\xc8\x73\xb8\xac\x07\x07\x98\x90\xdd\xdd\xc2\x36\xc2\xa0\x47\x97\x86\x41\x60\x53\x25\xe7\x48\x25\x85\x7a\x6f\x3c\x1d\x13\x33\xf7\x3e\x87\x1f\x67\xf3\x8c\xf4\x7f\xf2\x27\xa3\xb6\x14\xf4\x7b\x79\x10\xc5\xd3\xe5\xad\xea\x6e\x55\x1a\x26\x91\xd3\x3c\xae\x34\x26\x62\xee\xef\x51\x20\x90\xca\x72\x3a\xd7\x87\xe6\x73\x7e\x4f\x49\x23\x46\x70\x4f\x74\xf8\x9a\xf6\x2e\xbe\x9c\x51\x4d\xaa\x3b\x8d\xb4\xe2\xd9\xb9\xc0\x20\x73\xe8\x33\x44\xd3\x48\x6b\xe4\x35\x59\x81\x41\xff\xd7\x38\x60\x86\x7b\x8c\xfb\x97\x0c\x61\x9a\xc6\xc4\x56\x58\x6a\x68\x90\xde\xea\x80\xd5\x7d\x8a\x93\xc6\x3c\x45\xf4\x44\xe6\x2d\x0e\xc6\x8f\x8d\x1a\x86\xc2\xa8\x16\x1b\xe4\x25\x47\xdc\xc1\xc4\x48\x0f\x5a\xdd\x39\xc4\xc9\x4d\xf9\x39\x93\x48\xa5\xa9\x88\xb0\x58\xec\x1a\xa9\x53\xf1\xce\x39\xe0\x70\xc8\xfd\x93\xe1\xb1\x92\x36\xaa\xb0\x6b\xc4\xdc\x17\x08\x46\x03\x24\x9f\x3c\xee\x4c\x9f\x92\xa6\x02\x08\xb5\x86\x0c\x88\xfa\x78\x3e\x54\xa2\x06\xd4\x70\xfa\x9b\x2d\x55\x77\x1e\x19\x58\x0c\xf6\x8f\xac\x78\x87\x7c\xf5\xb2\xf4\xe2\xdb\x34\x95\x54\xb8\x00\xb3\xb9\xc3\x4c\x1c\xf4\xee\xb3\x3b\xc8\xb8\x89\x46\xad\x7a\xd6\x1d\x12\x1c\xac\x7b\x0e\x08\x8c\x4c\xdb\x9b\xb2\x2d\x55\x26\xf2\xb5\x06\xdb\xf9\x99\xbf\x18\xc5\x52\x5c\x57\x1f\x17\x7f\xee\xef\x57\x4f\xc1\xfe\x7e\xfd\xf2\xe0\x61\x86\xa9\x4a\xad\x22\x10\x2e\x11\xcf\xbd\xaa\xa3\x8b\x0c\xc6\x8f\x57\x89\x00\xa1\x37\x58\x16\x6f\xef\x90\x1e\x18\xaf\xd2\x54\xe9\x58\xc9\x81\x5d\xf8\x52\x9c\xd6\xc5\x6b\x71\x55\x5b\x4e\x75\x18\x32\xd7\xb1\x5f\xda\xde\xe1\x20\x6e\xea\xa6\x98\x26\x09\x26\xe4\xb2\x51\xed\x3e\xf1\x7c\x96\x7f\xc0\xe5\xb5\x50\xe5\xf1\xd4\xd3\x79\xc7\x2d\xfd\x7f\x8c\xbf\x46\x53\xec\x07\x40\xa1\x51\x47\xc7\xa2\x4f\xfc\x41\xd0\x28\x92\x6e\xb9\xee\x8e\x18\xdd\xed\xb3\x29\x68\x81\x7b\xc8\xe2\x65\xf7\x63\xf3\xf2\xc7\x7e\xf1\xba\xc4\xf4\xfb\xf6\xf5\x05\xf3\xf0\x6e\x9c\x49\xb1\x58\xe6\x0b\x9e\x7f\x47\x3e\x9f\xa6\x26\x88\x52\xeb\x04\xfc\x74\x7f\xbf\xf8\x36\x70\x52\xa3\xa9\x89\x58\xe4\xfa\x1c\x96\xc9\x65\x35\x82\xfd\x51\x45\x91\xc0\xe3\x51\x86\x77\x65\x05\xd9\x5b\x31\xbb\x88\x1a\xad\x03\xeb\xb2\x82\xaa\x2c\xa3\x83\x3c\x0c\x7a\x7d\x81\xf2\x5c\x29\x4b\xab\x1a\x5d\x26\x0f\x23\x2b\xff\x62\x95\xf5\x87\x9e\xd7\x94\x87\x2c\x40\x61\xe7\xa2\x3c\x76\x5d\x1e\x1e\x1a\x11\x75\x82\x07\xe5\xbf\x41\xb5\x71\x91\x6e\x17\xda\x1f\x59\xa1\xcb\x8f\xf1\x13\xe6\x51\x20\xa4\x0b\xed\x9e\xca\xef\x65\xd3\xd5\x28\x79\x14\x26\xb8\x56\x23\xc4\xa7\xf9\x28\xd7\x05\x96\xce\x57\xff\xb1\x70\xd2\x6e\x18\xd3\x5e\xa9\xbd\xbd\xfc\x51\x1b\x80\x47\xc6\xb6\x83\xb0\xe1\xf3\x81\x53\xc6\xc9\xf2\xcd\x3e\x14\x1e\x93\xc8\x4a\x20\xbf\xbe\x2c\xbf\x2d\xb6\xab\x29\x6b\xc8\x0d\x23\x5c\x52\xed\x70\x4a\x85\x27\xe9\x0c\x0e\x0b\x8b\x04\x11\xd8\x5c\xe9\xcd\xab\x28\x67\x91\xc5\x32\x20\x16\xf7\xea\x79\x30\x9d\xa2\xb1\xb4\x8b\x17\xd0\xa8\x63\xfa\x36\xb9\xa1\x89\x88\x12\x17\x40\xda\x40\x6b\x63\x10\x26\x55\x0f\x24\xdc\x7e\xf4\x0f\x25\x31\x04\xa1\x2b\x4e\x44\xc5\xa6\x3b\x33\xb2\xde\x94\xa7\xc4\x6a\x0f\x89\x3c\x2f\x3f\x16\xe7\xa6\xb4\x28\xeb\xc9\xd7\x73\xc2\x2d\x92\xc2\x5d\xdd\xd7\x0e\x63\xf3\xf7\x99\x73\xab\x78\xf1\x06\xcd\xdd\xf1\x58\x5b\x11\xbd\xc9\x5d\xe4\x22\x41\xfc\xcb\xfd\xbd\x47\x3d\x73\x11\x71\xc1\xba\x3a\xf0\x3b\x3c\x43\x75\xdb\x19\xac\x53\x2e\x4c\x84\x6b\xb7\x3c\x5f\xf6\xf5\x29\x53\xb0\x3f\x42\x8e\x10\x4c\x37\x40\x06\x10\x7a\x83\xb6\x75\xfd\x74\xce\xf3\x61\x9e\xc6\xa5\x32\xb6\xda\x70\x96\x0f\xa5\x8b\x96\xbe\x78\x51\x14\x31\xb6\xd3\x73\x14\x79\xfe\x9a\x15\xcd\xdd\xb9\x50\xbf\x0d\xa1\x62\xd3\x0f\x50\xc0\xe2\xe5\x5d\x96\xe7\x33\x15\xde\x2f\x6e\xd7\x2f\x7d\x05\x28\x57\x5c\x68\x31\x00\x2e\x4f\xdb\x35\xe8\x58\xdd\xde\x43\xd4\x7e\xd2\x03\x5f\x51\xca\x95\xe1\x38\x4f\xb1\xae\xb8\x7a\xf1\x12\x5c\xb1\x3f\xae\x23\x89\x6f\x98\x8f\xd4\x7a\x4b\x3a\x8b\xc7\xf3\xc3\x08\x0f\xa3\x41\xf1\x19\xfb\xa5\xd5\x4f\x31\x7d\x9a\x3a\x25\xb1\x15\x4b\x3e\xe5\x99\x5d\x66\xaf\x3b\xaa\x57\x09\x28\xd7\x10\x71\x97\x5e\xad\x1b\x38\x3e\x43\xf5\xec\xab\x6f\x61\x77\x6a\x88\xad\x1e\x48\x25\x3e\x66\x0a\xfb\x1c\x42\xe5\xdf\x9a\x9b\x2a\x53\xef\x37\xe7\x2c\xd7\x57\x48\x45\x0e\x00\xb8\xde\x3c\xbf\xac\xf6\xeb\xe5\x66\xff\xb8\x7e\xda\xdf\xae\x9e\x37\x5b\xef\x3a\x45\xb9\x61\x21\x62\xa2\xd6\xc5\xe9\x3c\x23\x78\x4a\xb9\x31\xd6\x97\xc0\xce\xb3\x1e\x88\xdc\xb9\xa9\x5d\xd3\x0f\xa9\x08\x42\x60\x6e\x32\xfc\x00\x71\x2a\x0b\x97\x3a\xf9\xc3\x09\x09\xbd\xa0\xd5\x6d\x2f\x79\xa2\xa0\x68\x56\xdd\x4a\x27\x82\x24\x45\x97\x5c\x0b\x83\xf6\x75\x94\x41\x71\x5b\x84\x49\x8a\x95\x9c\x1e\x28\x3d\x90\xc4\x18\xfd\x0c\x11\x82\x50\x1d\xe3\xe7\xea\x5b\xc5\x1b\xc2\xb9\xcf\x73\xe6\x8c\xee\x04\x51\x0c\x49\xcf\xa2\xbe\xc9\xaa\xe6\xe0\xac\x44\x27\xf0\xdf\x21\xac\x52\x44\xd4\x46\xcd\x27\xac\x9c\xef\xe0\x78\x1a\xb5\xef\x45\x94\x04\xc8\x09\x78\xce\xcf\xcd\x55\xd1\x67\xa6\x59\x2b\xa2\x94\x98\xd4\xb7\x82\xee\xca\x73\x35\x7c\x75\x45\x1c\x2a\xbb\x8a\x8b\x02\xad\xbc\xbe\x43\xdd\xc0\x14\x06\x3e\x7a\x95\x44\x1c\x33\xdc\x0d\xf3\xb3\x7a\xbf\xa0\x7a\xfd\xe4\x2d\x12\x31\x31\xdc\xb5\xaa\xee\xce\x79\x5e\x0d\xda\x1d\x22\x56\x56\x24\x07\xab\x57\xd8\x87\xed\x5b\x67\xf3\xeb\x8c\x88\x55\x82\x01\x33\x7c\x9e\xb2\x0a\xd0\x36\x73\x54\x64\x17\x44\x82\x8e\xbd\x8a\x46\x03\x55\x67\x24\x43\x05\x35\x52\xa5\x43\x5c\xd2\xba\x78\xae\xca\xb7\x01\xa0\x42\xb0\xc8\x20\x82\x7c\x97\x75\xa5\x18\xc1\x64\x88\xe9\x9f\x95\x83\x53\x97\xee\xef\x46\x60\x6d\xfb\x05\xb2\xa2\x0d\xdc\xb7\xf0\x13\x2a\x91\xdf\x82\x68\x0e\xc3\x3e\x8d\x48\x02\xc0\x24\xc7\x00\x38\xb2\x7f\xd6\xbf\xcd\x49\x08\xd8\x34\x5d\x37\x08\x5a\x2f\x2b\x1e\x04\xc1\x6b\xde\x54\xa2\x1b\x41\x38\xf6\x26\x0b\x00\xbd\x3d\x57\x3f\x31\xfd\x18\xc6\x0c\x22\x91\x14\xa7\xe1\x49\x54\x50\x34\xcb\x5f\xa0\xec\x45\x1a\x19\x0c\xf1\x5e\x56\x7f\xae\x9e\xc6\xeb\x82\x48\xa9\xe5\xe4\xb8\xaa\xd2\xee\xcf\x61\x19\x58\xf0\x30\x42\x8c\xea\xa7\x1e\xdc\x52\x1e\x5b\x7f\xd6\xac\x58\x66\x15\x96\xcc\x07\x13\x8c\x6b\x26\x1d\x1e\x7b\x5f\xb9\x09\x38\xd1\xa9\xa7\x42\xc4\x1a\xe1\xde\xbe\x8b\x22\x64\x6a\xbd\xe6\xb3\x7a\x59\xe6\xb9\x90\x25\xde\x95\xcd\xaf\x80\x77\x42\x25\x11\x8a\xfa\xb6\x6f\xf3\x8c\xe3\xd3\x64\x70\x6a\x45\xa6\x6d\x78\xdf\x0b\x73\x5e\x9b\x44\x5c\x7f\x14\x3a\x88\xf7\x8f\xb2\xca\x97\xe7\xd3\xcd\xc5\xe9\xf0\xf5\x83\x20\x49\x90\xc9\x5a\x9f\xe5\xb1\x33\x10\x9c\x7e\xc5\xb5\x0b\xcf\x68\xe6\x9b\x00\x52\xde\x11\x8c\x70\x46\xbc\xbe\xac\x47\x15\x3e\x61\x5c\x65\xa1\x46\x4d\x86\xf1\x5d\x35\x31\x0d\x1c\x8a\xb9\x14\xd6\xda\xeb\xe6\xf2\x24\x26\xdc\xe4\x76\x9c\x88\x2d\x02\xb4\x2a\x3f\xea\x76\xf6\xd9\x2d\x6d\x5d\xa8\xb2\xaa\x40\x35\x5d\x3f\xc2\x7f\x80\xa4\xf6\x81\xd7\x53\xae\xc7\x7c\x64\x23\x4c\xaa\x51\x61\x2b\xcb\xb2\xa2\x1c\xb1\xf1\xfc\x00\x88\xa1\x43\xdb\xcf\x18\xc1\x52\x19\x44\x31\x56\x7c\x84\x46\x62\xf2\x24\xf4\x93\x41\x64\xdd\xbd\x4d\x56\xe8\x5d\x79\x7a\xc2\x30\xa5\x3b\xc7\xf4\x19\xca\x00\x80\xe8\x6e\x29\x76\x52\x41\x73\x8d\x6b\x19\x85\x36\x73\x77\x9b\xc7\x65\x74\xfb\x65\x94\x2a\xec\xc1\x7f\x00\xbc\x23\xa3\x7e\x55\xe8\xe7\xfc\x5c\x3f\x96\x45\xb7\x0b\xc9\x48\xd0\x54\xdb\xe6\x47\x09\x03\xca\x85\x24\x41\x80\xad\xe7\xb7\x76\x4a\x3c\x97\x65\xfe\x52\x4e\x6b\x76\x92\x06\x21\xb2\x8f\xda\x2c\xf5\x75\xfd\xe4\x77\x5d\x49\x79\x8a\xed\xe3\x83\xa8\x97\x07\x71\x3c\x6d\xcb\x23\x34\x87\xac\x78\xdb\x14\x73\x5c\x12\x49\x05\x45\x65\xf3\xb7\xec\x27\x6c\x1b\xc8\x73\x51\x8d\xf6\x11\x49\x0d\x58\xa8\xec\x84\x1a\x4e\x25\x93\xc4\xd8\xae\x28\xf2\x5c\x33\xa8\xf7\xd4\x7f\x8a\x81\x50\xc4\x35\x49\x5e\x2d\x16\xce\x1f\x4a\x62\x40\xbe\xf9\xe9\x9a\x8a\x27\x13\x6a\x4f\xe9\xcc\xeb\x7f\x19\xd0\xc9\x04\x54\xea\x64\x3a\xda\xdd\x65\x39\x11\x3b\xa1\x32\x8d\x24\x22\x69\xb5\x70\xae\xbe\x3d\x8a\x56\xa6\x9a\xe1\x4a\xe2\xf3\x42\x57\x81\x31\x03\xd4\xab\x1b\xc9\x45\x62\xb5\x25\x70\xca\xce\x4b\x1a\x8d\x76\x52\x29\x82\x14\x5b\x22\x7b\x29\x6a\xb8\x05\x79\x25\x60\xf6\xc5\x0f\x12\x81\x4c\x85\x57\xe3\x34\xe6\x9a\x97\xf5\x8f\xd9\x46\x8f\x94\x8c\x26\x5d\xa2\x34\x92\xb8\x19\xdf\x5d\xc9\x0d\xf6\x0d\x6c\x50\xb3\xfb\x1c\x56\xfb\xa4\x4a\xec\xd2\x5a\x01\x62\x99\x1e\x4b\x7d\xce\xe1\x1b\x36\x95\xa7\x4f\x49\xc9\x38\x70\xdb\xe8\x42\x29\xa8\xeb\xb2\x7a\x3e\x57\xa7\x81\xb9\x80\x1b\x68\x42\xeb\xc3\xfc\x06\x0d\xb2\xaa\xb3\xb2\x58\x8f\x59\x74\xd2\xf0\x18\xaf\xc9\xd9\x44\x5f\x5b\x9a\x50\x15\x68\xc0\xea\xfe\x83\x90\x50\x41\xb7\x85\xa8\xc0\x08\x66\xfd\x46\x2a\x75\xf0\x61\x57\xbd\x99\x74\xc8\x55\xc8\x65\xe4\x8a\x74\xbf\x8d\xce\x1b\x45\x01\x96\x0e\xf7\x5d\x47\xd7\x45\x17\xd7\x41\x57\xff\xa1\x38\xd4\x4e\x4f\xa8\xcd\xd6\xa7\x7e\xc3\xd3\xc1\xcc\x0a\x92\x36\x1d\x25\xa1\x5e\x2f\x37\x9e\x4e\xa2\xe2\x94\x2b\x2f\x1b\x56\x16\x26\xfb\x4b\x26\x86\xfb\x1c\x89\x0c\xf2\x40\xdb\x35\xaf\xcd\xec\x1c\xbd\x63\xfc\xb3\x09\xb3\x94\x82\x0a\xcc\xf3\x94\x85\xa2\x08\xe3\x28\xc1\x8d\x2b\xf8\x36\x7b\xfb\xca\x05\xce\x0d\xa7\x5a\xd8\xfa\xe2\x76\xf9\x02\x35\x56\x3f\xd0\xe6\xa9\xf2\xf1\x8e\x62\x41\x80\x9b\xec\x21\x7b\x3b\x40\xdd\xec\x65\xa6\xfb\x43\x1a\x3d\x83\x2c\x0a\xe5\x71\xf5\xb4\xdb\xdf\xbd\x3e\xdd\x76\x98\xcc\x81\x75\x09\x55\x2c\xb2\x6b\xa2\x9f\x96\x63\x4d\xb3\x2f\x02\x3f\x95\x24\x04\x15\x80\x0e\xe5\xb9\x86\x95\x7e\x83\xf6\x6d\xa8\xbb\xe2\x94\x4a\xa4\xf5\x7f\x6e\x2a\x80\x7a\x53\x5c\x57\x6e\x54\x02\xb6\xc0\xd9\x26\xbb\xbb\x76\xbf\xf3\x4f\xd6\x89\x3d\x3d\x95\xcd\x0a\x85\xa3\xbb\x9f\x95\xca\x20\xb6\x05\xfe\x02\x6d\xad\xd1\x1b\xac\xfb\xc6\x14\x24\xba\x42\x1c\xdb\x89\xda\x34\x13\x69\x72\xaa\x78\x18\xe0\xbe\x24\xb4\x7e\x84\x9b\xcb\xcb\x72\xf2\xf4\x78\x14\x60\x77\xd0\xa6\x93\xb3\x12\x79\xf3\xef\x06\x4f\xad\xd3\x18\x42\x87\xb6\x4e\xe7\x84\x91\x7f\x4c\x4e\xaf\x22\xe4\x7f\xec\x07\xda\xf9\xb3\x6b\x86\x82\xd4\x6a\xe7\x0f\xea\x67\x8f\xef\x93\x9d\x40\x99\x28\xc2\x38\xde\x92\x08\x36\x1f\xd3\x62\x8d\x32\x84\xe2\x44\xb8\xab\xce\xd9\x94\x23\xa2\x8c\x0e\xb1\xe0\x6a\x33\x99\x78\xca\x05\xd0\x41\x20\x01\x06\x94\xff\x65\x25\xe4\xb3\x05\xb6\x89\x7e\x8c\xc1\x28\x17\xe3\x36\xc7\xb9\xbe\x96\x42\xa5\x3a\x88\x14\x1a\x4a\x61\x2c\x61\xb9\x49\xa3\x49\xd7\x31\x8a\x74\x90\x84\xb8\x09\x1f\xc5\x27\x6a\xc8\x3e\xc3\x28\x21\xd2\x81\x0a\x91\x8e\xf3\xb0\x18\x5a\x2f\x50\x1d\x26\xa1\xad\xda\xbf\x7b\xde\xba\x8e\x14\x44\x0e\x68\xb3\x14\x0d\xbc\x95\x13\xe7\x27\xaa\x63\xcd\xbd\xf3\xc0\xcd\xf9\x32\x72\xf2\x75\x23\x08\xb3\x89\xc6\x1b\x14\x36\x15\xf8\x35\x64\x49\x53\x95\x72\x1b\x8b\x21\xfd\x3f\x2b\xab\xdf\x66\xba\x35\x6e\x30\x0b\x12\xab\xed\x8e\xf5\xf1\x07\xb0\x0e\x99\x7f\xd3\xd4\x8c\xea\x24\x54\x06\x3a\x8d\x35\x57\x84\x1d\x24\x39\x3a\x49\x13\xac\xd3\x1f\xcb\xca\x4e\xe4\x67\xa8\x70\xa5\xbf\x2b\x7d\x4b\x72\x08\x75\xd3\x69\x10\x7a\xbf\x5e\xaf\xdc\x83\xc1\x21\xbe\x5e\x77\x65\xb5\x29\xe0\xa6\x51\xdd\xe8\x30\x88\xc1\x97\xd1\x1b\x91\xcf\x56\x77\x74\x1a\x11\xe1\x66\xdc\xb0\x43\xe1\x8f\x9a\x50\x89\xde\x85\x7e\xd8\x23\xd2\x3c\xd0\x08\xfc\x79\x38\xab\x77\x75\x80\xe3\x65\xf4\xbc\xb9\xb6\x91\x8e\xa8\xeb\xde\xfe\xf2\x8b\x87\x22\x22\x6b\xc0\x7c\xb3\xb9\x19\x9d\x43\x68\x81\xba\x5d\xfb\xd3\xb9\x3e\xbc\x94\xe5\xf1\x09\xa5\x4e\xa6\x33\x7e\x70\x47\x65\x28\x10\xc9\xe4\x9e\x24\x16\xd4\x46\x41\x81\x96\x11\xc3\x5a\x53\x9f\x3f\xfb\xbe\xec\xd5\xd5\xcd\x2f\x25\x5a\x26\x22\xb2\x6a\x7c\x59\x51\xe0\x56\xdf\xde\x95\xdb\x4c\x4d\x27\x95\xe4\x92\xb8\x9a\xcc\xef\xa5\x5c\x17\x3f\xcb\x61\xa0\x3e\x0c\x37\xb5\x22\x89\x77\x2b\xfa\x9e\x69\x28\xdb\xa9\xe5\x1e\xf1\xc8\x59\xde\x0f\x67\x89\x76\xa8\x61\x1c\x99\x97\x45\x57\x4e\x19\x8c\x52\x69\x34\x10\xc7\x0c\xe7\x97\x32\xad\x03\x8a\xed\xce\x53\x95\x1d\x45\xe5\xf4\x1c\x6d\x1a\x3b\x0c\x49\xb4\xe6\x01\x96\xc8\xbe\x9d\x8f\xa2\xd8\x36\xa2\xd0\xe2\x6f\xeb\xbf\x68\x2d\x43\x64\x1f\xec\xd1\x0a\x13\xa1\x0a\xb6\x8d\x32\x7b\x8b\x21\x90\x98\xca\xad\xee\xef\xb7\x03\xc7\xf4\xbb\xc5\xc3\xb2\x6b\x99\x68\x88\x38\x62\x29\xad\x56\x0e\xa2\xb0\xfc\x21\x13\x6b\x1d\xb8\xba\xe3\xb0\xbd\x38\xf9\x1a\xc3\x6c\xb2\x52\x59\x33\x59\x44\x11\xfc\xb5\x86\x2f\xd5\x26\x91\x61\xe0\x4b\xa6\x83\xde\xb3\x3f\x2c\x21\x49\x07\x92\xcb\x30\xa9\x7d\x8d\x1f\x13\x04\x44\xc4\x56\xbd\x04\x25\xb0\xcf\x79\xb7\x39\xd9\x7f\xdc\xb0\x30\x8a\x8d\xf3\x4a\x80\x4a\xe4\xbf\xcd\xb5\xaa\x20\x14\x91\xf5\x7c\xb4\x1d\xf3\x4d\xe1\x43\x1b\x88\xda\x08\xcd\x6b\xe7\x8e\xae\x17\xa2\xd4\xc6\xe5\xe8\xd8\xda\xce\x54\x31\xef\x8a\x39\x28\x73\x43\x64\x34\x36\xcf\x5d\x7c\xea\x1a\xb1\x3e\xee\x81\x38\x35\x2a\x19\xf4\x5d\x76\xd5\x19\x16\x85\xbe\x13\x79\x0d\x0b\x84\x15\x75\x23\x85\x22\xa6\x5f\x61\xea\xba\x5d\x6b\x1b\xd0\x9d\xe2\x98\xd3\xc0\x9a\x4d\x99\xbf\x14\xbe\x74\x27\x27\xa1\x5d\x40\x4e\x67\x99\x67\xf5\x61\x33\x06\x7a\x4d\xc6\x52\x89\x88\x98\xa2\x6c\x32\x73\xd9\xc1\xf1\x74\x53\x81\x50\x87\xdf\xc6\xa3\xd2\x20\x31\x03\x46\xf6\xae\x1c\x29\x09\x52\xa0\xa1\xf4\x5b\x16\x96\x6e\x1d\xe3\xd6\x2a\x98\xf9\x2e\xfb\x6c\x9d\x1a\x68\x4c\xb8\xf5\x2f\x45\x95\x99\x3f\x32\x1b\x0f\x74\xc6\x5f\xf3\x6d\x9c\x36\x52\x40\x4e\xe0\x22\x6f\x06\xcc\xff\xf6\x3d\x34\x61\x97\xd5\xdc\x20\x9c\x6a\xf2\xe6\xb5\x83\xd0\x0e\xe9\x98\x35\xf7\xed\x06\x9a\xa9\xe7\xaa\x3c\x95\xb5\x18\x49\xaa\x53\x60\x22\x40\x29\xbd\x06\xfd\x34\xfd\x75\x00\xd4\xee\xf7\x8c\x2f\x28\xa1\x06\x03\x13\xd3\x1e\x13\x59\x31\xeb\xb2\x43\x21\xe1\x91\xb6\x58\xfa\xea\x4a\x00\xdd\x0f\x11\x21\xc2\x04\x96\xab\xcd\x7e\xfb\x6d\xf1\xb2\xea\x3e\xdb\x26\xb1\xd6\xc8\x69\x75\xae\x06\x60\x52\x48\x54\x94\x30\x67\x6c\xd9\xc5\x41\x90\x18\x81\x1a\xa5\x9e\x29\xcd\xed\xd3\xe7\xfe\x8b\xd2\xd4\x3a\x2a\x9c\x8b\x36\x69\xd8\x9e\xe5\x15\x2c\xd0\x0d\xe4\xc2\xf2\xcf\x3c\x72\xa8\x4d\x2b\xeb\x29\xd9\x1d\x44\x18\x05\xbd\x0c\xba\x75\x21\xdd\x79\x0d\xba\xc9\x42\xd9\x9f\x5b\x48\x83\x9d\xa5\x36\xe0\x9b\x7a\x28\x7c\xd5\xe2\x98\x9c\x42\x72\x8d\xca\x81\xdb\x2c\xff\x09\xd5\x63\xd9\x65\x85\xa0\x52\x6d\x0d\x3a\x44\xae\xda\xa5\x41\xff\xf3\x5c\x36\xe2\xe6\x82\x62\xb3\x7f\x2f\xc1\x02\x1d\x6a\x2b\x47\xd0\x88\xaa\xb9\xbf\xaa\x8c\x81\x8e\x43\x6c\xdc\x3b\x2e\x9a\x9d\x92\xb3\x46\xea\x14\x34\x21\xd8\x1e\xf8\xa3\x3c\xe5\xc2\x47\x8f\xa0\x93\x54\xba\xd6\xff\xad\x98\x15\x7b\x02\x48\x35\x62\xc9\x71\x4e\xab\x7b\x4c\xa1\xd1\xb8\x74\xb6\x32\x30\xf9\x2c\x70\xc4\x74\xe4\x65\xf1\xf6\xfb\x59\x0f\x20\xd8\xe3\x37\xd8\x04\x12\x3b\x46\x37\x59\xf3\xf2\x32\x0c\x49\x4c\xc0\x28\xb6\xe0\x4c\x96\xe7\xde\x95\xc7\xff\xc0\xb9\x87\x6a\xc2\x24\xc4\x39\x76\xf3\xb0\x59\xfe\xb1\xfc\xb6\xe8\x1b\x42\xfb\x9b\xd5\x6e\xe1\xcf\x1b\xa5\x01\xeb\x0d\x21\x06\x7c\x9a\x38\xfa\xdf\xe4\xff\xe6\x1b\x5b\x26\x66\x31\xb6\x26\xee\x76\xbb\x66\x78\x91\xb1\x8c\xb4\x65\x8f\x63\xba\x67\x21\x40\xf5\x08\x4b\x69\x62\x48\xb0\x67\x8e\x55\x8d\x1b\xf8\xcb\x5a\xcc\x78\x17\x98\x3e\x4e\x13\x1b\x6b\xd0\x2e\xf2\x4c\xd4\xfb\xd3\x00\x92\x6c\x08\xb7\x3f\x0d\xc9\xaf\xed\x95\xac\x97\x9b\xf9\xf9\x6e\x28\x87\xc4\x71\x39\xd6\xf5\xf2\x20\xaa\xb7\x4e\x27\xa7\x7d\xc4\x6d\x88\xd3\x07\x7b\x86\xea\x00\x5b\xb5\x96\x69\x61\xdb\x93\xc3\x78\xd9\xb0\x30\x45\xdc\xda\x51\x7c\x0e\xd5\x05\x7e\x40\xd6\x8d\x20\xb1\x32\x03\x0f\x31\xac\xfa\xa2\x25\xa0\x1f\x40\x15\xa6\x2d\x2e\x21\xb4\x2a\xc8\x83\x28\xd8\x30\x61\x65\x22\xdb\xc5\x6d\x59\x1e\x8f\xe7\x22\x6b\x2e\x57\xb4\x18\xc3\x64\x18\xfb\x6d\xe1\xdc\x2c\xc5\x3c\xa8\xd1\x30\x1d\xe3\xea\xe5\x79\x02\xa2\x39\xd7\xdf\x33\x31\xda\xaf\x0d\x33\x11\x1d\x80\x6f\x9f\xce\xc7\x55\xfb\xe3\xe0\x8b\x32\x80\x61\xc6\x62\x3d\x51\xb2\x00\x89\xfa\x3d\xe1\xc5\x24\x9c\x99\xf6\x1e\x2d\x37\x4f\xbb\x97\xf5\xcd\x2b\xa2\x53\x3a\x1b\xab\xf6\xb8\xcd\x32\xbd\xf0\x95\xff\x7b\xaa\x80\xbb\xf6\x9e\x0b\x6b\xa2\x2f\xbe\x9e\x47\x96\x96\xa0\xca\x42\xe5\x67\xdd\xdd\x12\x4e\xad\x31\x98\x4d\x8f\x1e\x45\x73\xb8\x87\x22\x1b\xa6\x28\xd3\x13\x09\x82\xb9\xde\xee\xe5\xdb\x98\xf8\xf8\x37\xe8\xe5\x86\x83\x42\xc9\xcb\x1c\x4c\x43\xc3\xdf\x26\x07\x9d\x09\xe6\x0d\x34\x8f\x5f\x74\x81\x8c\x0c\xac\x26\x33\xbe\x6d\x43\x1a\xc3\x63\x96\x83\xaf\xe2\x1a\xc9\xa3\x30\x74\x06\xd4\x88\xe3\x7d\x00\x61\xa6\xab\xcc\xe4\xcc\x9a\xc5\x56\x77\xa5\xc7\xa3\xe2\xda\xf6\x07\x4c\x36\x6c\xd3\xe6\x54\x8e\x2d\x53\x43\xd1\x3c\x66\x75\x9d\x15\x6f\xcb\xc3\xb9\x78\x1f\x82\x10\x0c\xc4\x76\x1b\x10\xa7\xaa\xfc\x29\x9e\xc5\x9b\x68\xa7\x4f\x39\x9c\x3c\x40\x4c\x3c\x34\xaf\xf9\x22\xd6\x35\x90\xa4\x28\x30\xfc\xb3\x1c\x73\x35\x3d\xea\xb9\xbf\x38\x13\x41\x2a\xbc\x4c\x37\x88\xe3\xf8\xa5\x35\x09\xb3\x8e\x57\xe0\xed\x53\x06\x52\x20\xc6\x80\x48\x3d\x4e\xa7\xd3\x01\x7b\x02\xd0\xa0\xb1\xa3\xd5\x60\xc8\xdb\x0f\x36\x76\x0d\xfe\x9c\x7a\xdf\x0f\xaf\x9d\x05\x81\x4a\x31\xaf\xb4\xfe\xe7\x58\x01\x1e\x84\x35\x2c\x88\x28\xc5\x1a\xfe\xf6\x20\x74\xf9\x71\x53\x3a\x00\x1d\x0b\x22\x61\x10\x61\xea\x14\x29\x6c\x77\xb0\x37\x60\x75\xa3\x88\x32\xdc\x25\x6d\x7b\x91\xe7\xfb\xfa\x3f\xe7\xde\xcb\x83\x05\x49\xa4\x11\x37\x74\xb3\x79\x7a\xdd\xee\x1f\xd7\xb7\xfb\x7f\xee\xfe\xd5\x1d\x14\x0c\xdb\xd0\x6d\x90\xd2\x2b\x06\xce\x66\x68\x2c\x48\x49\x8c\x35\x97\x0f\xc8\xee\xca\xea\x65\x88\xa2\x9a\x0c\x54\x82\x25\x43\x2e\x0e\x46\x32\x65\xaf\xa8\xfe\x0f\xab\x1f\xd2\x23\x1f\x58\x90\xea\x18\xa3\x7f\xcb\x1a\x6a\x5f\x27\xd1\xfd\x42\x1e\x46\x08\x61\xce\xda\x68\x44\xa1\x5a\xf7\x5e\x95\xc5\x4f\xe8\x77\xe5\x99\x4a\x3f\x0b\x78\x4c\x52\x4b\x77\x42\x32\xe2\xa8\x0d\xe9\x86\x88\x38\xc6\x90\xf2\x5c\x43\xb5\x2a\x74\x17\x4d\x5c\x63\xf1\xa6\xa2\xcb\xa3\x67\xed\xcf\x96\x44\x58\x2b\x43\x1b\x6d\x91\xdb\x1d\xef\xdb\x75\xfd\x97\x05\x82\x5b\xed\x9f\xba\xcd\xdc\x11\x96\x7a\x55\x46\x60\x81\x10\x46\xb8\x30\x64\xad\xca\x31\xbb\xc1\x0d\x91\x81\xc2\x3e\x7c\xa7\xd4\x8a\x42\x7e\xa1\xbf\x73\x32\x24\x98\x7b\xbb\x8b\xdf\x95\xaf\xd9\xa4\x8d\xcb\x02\x19\x29\xec\x55\x21\x15\x3f\x42\x65\x2f\x7c\x57\xba\x73\x24\x06\x7b\xe0\x72\x88\xe1\x9a\xd5\xcc\x9e\x54\xa6\x59\xa0\xc2\x10\x19\x57\xf5\x59\xfa\xe8\x7b\x2a\x0d\x30\xfe\x80\x8e\x15\x6a\xec\x3b\x29\xd5\x36\x28\xbc\x15\x97\x2b\x5d\x60\x16\x68\x29\x30\xfc\xfa\xfd\x7c\xec\x5e\x13\x13\x1a\x2f\x0d\xb5\xfa\x9c\xe0\x59\x58\x60\x64\x80\xbd\x5d\x9f\x84\xf5\x94\x35\x16\x18\x1d\x93\xa8\xa3\xd7\xb4\x2f\x2c\xda\xe1\xdc\x7d\x9e\x06\x44\x06\x16\x06\x89\xc2\xb0\x30\xab\x6f\xce\x55\xd1\x75\x51\xfd\xd1\xd4\x20\x10\xcc\x4b\x78\x3d\x94\xea\xdd\xff\xda\xb9\x15\x97\x85\x61\xc0\x8d\xf6\xe8\xd9\x5a\x89\xfc\x3b\xae\x10\x7f\x4b\xfd\x90\x85\xa1\xb0\x4e\x3c\xcb\xf2\x5c\xd5\x70\x23\x6a\xd8\x14\x6b\xbd\x6d\xce\x1a\x2c\x86\x6b\x72\x07\xc2\x28\x48\xf1\x57\x7e\x88\xaa\xc8\x8a\xb7\xd5\xcb\x62\xbb\x52\x23\x25\x34\x16\x46\x82\x48\x07\x30\xda\x97\x88\xf9\x99\x09\x10\x58\x18\x39\xf8\x47\x03\xe2\x18\xf9\xcf\xc6\x61\x12\xf4\x51\xc3\x30\x85\xff\x6a\xee\x7c\xf5\xff\x4f\x45\xa6\xda\x73\x0b\xdc\x9c\x2c\x59\xf9\x06\x0a\x30\x99\xca\x06\xcc\x55\x3f\xae\x5d\x97\xdb\x6c\xce\x26\xf2\xbd\x98\x59\x7f\xed\x31\xd3\x96\xbe\xa3\xca\x1b\x78\xcb\x8a\xa6\xc3\xf4\xb3\x30\x4e\x2d\x1a\xfd\xbd\x50\xfd\x9f\x24\x86\x4c\xbb\xd5\x76\x77\xf3\x72\xd3\xfd\x59\xc7\xd2\x73\xbd\x11\xbb\x71\xa5\xfe\xc1\x42\x1a\x5b\xe6\x46\xbb\x15\xfd\x36\xf4\xcc\x09\xc7\xcf\x76\xe2\x2e\xc6\x42\x0a\x1a\xfb\x35\x8b\x4a\xbc\xb9\x72\x7c\x07\xaf\x79\x2c\xbf\x10\x09\x64\x21\xee\x05\xa8\x4d\xf4\x9f\x33\x0a\x33\xdc\x94\x55\x55\x5e\x03\xcd\xbf\xf8\xb4\xe2\x89\x13\x83\x72\xc5\xc4\xb5\x83\xc5\x0f\x22\x4d\x16\x26\xd4\x3a\x9f\x3c\x8a\x21\xa5\x82\x85\x89\x89\x3c\x02\xb7\x0b\x5f\xc7\xfe\xd2\xe3\xdf\x98\x1a\xeb\x3a\xb4\x83\xe3\xc9\xee\xd1\x5b\xb8\xd6\x88\x98\x0d\xa3\x58\xc8\x13\x43\xc2\x01\x36\x1b\x75\x39\x1d\x00\xdd\x5f\x90\x88\x15\x06\x7c\xf7\xe7\xdb\xf3\x1d\x14\x6f\xd8\xc3\xff\xab\x12\x21\x0b\x85\x64\x38\x8d\x9d\x89\xe8\xf3\x59\x8e\x4a\x2b\x2c\x94\xcc\xea\x29\x56\x56\x6f\x73\xb8\x90\x84\x32\xb1\x9a\xd1\xb6\xda\xb1\xc8\x7b\x11\xcf\x5f\xdb\x64\xb0\x50\x72\x8a\xfa\x96\x1a\x7e\xee\xcb\x73\xb3\x6d\x2a\x10\x47\x7f\x5a\x45\x6d\xfd\xbb\x29\x4f\xaf\xa7\x7b\x31\xd9\x04\x42\xc5\x62\x2c\x05\xef\x07\x15\x44\xa8\x11\xd9\xb0\xcd\xde\x0a\x81\x2c\xae\xc1\x9c\xea\x96\x10\x25\xd2\xd0\x2e\x59\x96\xf3\xee\xc2\x98\xf1\xd9\x35\xd5\x68\x49\x60\x2d\x72\x36\x37\x2f\xfe\xaa\x8c\xb6\x7e\xdc\x37\x99\xca\x6e\xe1\xe7\x19\x72\x5f\xe9\x60\x51\xc0\x12\x0c\x40\xdb\x67\xba\x6a\x0e\x9b\xa2\x3b\x90\xb0\x30\xf4\x66\x4c\x50\x37\x63\x94\x37\x8b\xc2\x38\x44\xc4\x43\xa7\x9e\x6f\x75\x84\xa6\x83\x68\xa0\x3b\x57\x7d\x7c\x4e\x8b\x42\x0f\xf9\x85\x2c\x0a\x65\x88\x65\xef\xda\xfa\xde\x75\xd2\xb6\xed\x11\xaa\x6d\xad\x4f\x03\x1c\x6d\x4f\xdb\x1d\x8a\xb8\xc2\xda\x87\x23\x7e\xcd\xa8\xad\x5c\x3b\xfa\xce\x78\xdd\x74\x37\x2f\x8a\x84\xc4\xdc\xb8\x4d\xbb\x31\x9f\x19\x1f\x8e\x23\x29\x7a\xd9\x9c\x55\xa1\x6f\xc5\xb5\x8d\xba\x1f\x4b\x22\xb4\x8a\xd2\x5e\xb3\xd8\x07\xa4\x9b\xe2\x06\x0e\x22\x37\x7d\x6f\x7d\xb6\x0e\xc9\xa2\x58\x84\x88\x1e\x7d\x57\xea\x3d\xa2\xac\x6e\x2a\xa1\xf5\x40\xd0\x6e\x76\xa2\x46\xb1\xe0\xb1\x97\xbd\xae\xef\xca\x6a\x51\xd4\x1f\xfd\x1d\x8b\x15\xf1\x12\x71\xed\x67\xd6\xc5\xf6\x43\x9c\xe6\xa7\x7c\x44\x02\x67\x86\xea\x3c\xd3\x86\xeb\x4a\x44\xa2\x40\x73\x6f\xbb\x97\xe5\xf3\x6a\x31\x2c\x22\x84\x40\x0f\xd1\xfa\xfd\xe5\xdb\xd5\x6e\x79\xe5\x8e\x71\x05\xdb\x1a\x37\xd8\x58\x44\x64\x60\x6d\x30\x31\xc0\x46\x4d\xd9\x5f\x4e\xd6\x88\xe8\x90\x5b\x41\x40\x14\x6b\xe9\xc1\x57\x93\xb9\x13\xd1\xc8\xf2\x5f\x7d\x7f\x16\x01\x01\xbf\x5d\x57\xb2\x59\x44\x3d\x87\xe7\xf9\x69\xb8\xac\x46\x34\x0d\xac\xe0\xd2\xbf\xfe\x5e\x8f\x83\x45\x94\x1b\x2c\x32\xb6\xfb\x1a\xf6\x2a\x37\xe6\xff\xe3\xec\xcd\xba\x1b\xc7\xad\x76\xe1\xff\x72\xae\xfa\x22\x17\x1c\x01\xf0\xbb\x93\x65\xb9\x4a\x29\xdb\xf2\x2b\xa9\xba\xd2\x27\x2b\x4b\x0b\xc3\x86\xcc\x98\x22\x15\x92\x72\x95\xf2\xeb\xbf\xc5\x8d\x81\x83\x68\x77\xbf\xe7\x26\xd5\x31\x21\x8a\x22\x09\x60\x0f\xcf\x30\xb9\x2a\x16\x46\x28\x12\x8d\x20\xea\xa7\x1b\x95\x0b\x12\x31\x25\x74\x36\x28\x1c\x9e\xfe\x8a\x0e\xe5\xfc\xad\xca\x62\x40\xfe\x87\xb8\xd4\xa5\x5f\x99\xdc\x8f\xcb\x58\x4c\xe5\xff\x83\xf3\x9c\xfd\x38\x4f\x8c\x3f\x6d\x03\xed\xdd\xf7\xf5\x4d\x94\x31\xba\x0e\xae\x19\x4d\x2d\x36\xd1\x84\x3c\xb8\x70\x5b\x7d\x52\x3b\x48\xd0\x2c\x95\x8e\xc9\xd3\x45\x55\xb3\xae\x05\xe3\x7b\xdf\xf7\xcf\x48\x24\x14\xc3\xf7\xa2\xdb\xf0\xb1\x68\xe8\x02\xf1\x48\x06\x09\x86\x8e\x37\x55\xf4\xba\xef\x29\xfc\xf3\x5f\x13\xe9\x1e\x12\xc9\xc8\x28\x6c\x74\xe1\x98\xf3\x3a\xf4\xa7\xcc\x94\x76\x2f\xa1\xa5\x39\xed\x2b\x5c\xcd\x76\xe7\xa9\xc0\x14\x89\xa4\x34\xeb\xee\x6a\xff\x75\xb5\x3d\x7c\x5d\x6c\xef\x7b\xd9\x70\x12\x49\x95\xe2\x0f\xc7\x46\x49\x55\x82\x25\xa8\x60\xa3\x64\xf5\x1f\x37\x4a\x91\x44\x0f\x6d\xc8\xb9\x28\x60\x24\x2e\x48\x22\xc5\x02\x63\xe5\x77\x11\xca\x63\x7e\x7e\x0e\x0c\x0e\xdd\xb8\x2c\x30\xd4\x3a\x5e\xfb\xa0\x5b\x4d\xc6\x40\x2c\x9d\x54\xce\x20\x98\x34\x04\x8b\xe6\xb7\xe1\xe4\x01\xe0\xc6\x5f\xa3\xbb\xe7\x3b\x68\xdb\xa2\xfb\xc6\xd1\x5e\x17\x87\x22\x8d\x4d\xba\x0e\x85\x9a\xaf\x51\x91\x38\x04\x2b\xf2\x53\x15\xef\xb0\xde\xfc\xf6\x41\xb5\x71\xb6\x48\x41\xe2\x28\xa2\xa2\x87\x85\x18\xfb\x9e\xbd\xb3\x21\x73\x63\x92\x88\x5a\x6f\x4a\x9d\x17\x03\x8a\xda\x78\x0a\xc6\xdd\xa3\x8f\x1d\x38\xc9\xf5\x86\xdd\x8b\x1a\xc7\x12\x30\xcc\xcd\x5b\x38\xa1\xe3\xe0\x47\xa4\x8b\xc1\x5d\x8a\x13\xc2\x30\x2d\xcf\x4f\xfc\x17\xd6\xdf\x86\x0b\x4d\x4c\x32\x2a\x87\x82\xef\x9f\x56\x8b\xba\xe1\x80\x11\xd8\x04\x0f\x42\x62\x22\x64\xec\x8c\x20\xab\xeb\xe3\xe5\x17\xd6\x31\xff\xbc\x36\x46\x62\xca\x14\xf2\x2a\xfe\x5d\xe5\x25\x26\xe2\xe3\x8a\xb6\x1b\xa5\x4d\x3b\xf9\x8b\x93\xa5\xb9\xe7\x2d\x5f\x4c\x5e\xf7\x98\x29\x6a\x6a\xae\x86\xfb\x78\x5f\x9d\x78\x7e\x93\x87\xb8\xb1\x3a\x76\x2a\x02\xf7\xeb\xdf\xef\x0d\xa5\xdf\x35\x49\xed\x98\x2c\x61\xa1\xa5\xa7\x7c\x3f\x9f\xa1\xbe\xab\x2e\xa5\x32\x34\xa5\x3d\x4a\x76\x9e\xba\xdd\xdb\x8f\xb6\x12\xeb\xc8\x7c\xb4\x15\xdf\x0a\x9d\xf7\x1c\x37\x70\x7c\xb5\x9c\x50\xc4\x4a\x9e\x90\xee\xb4\x29\xe1\xa5\xe0\xfe\xab\x45\x10\xe1\x94\x32\x52\x47\x3b\x5e\xbc\x4f\xf5\x10\x49\x2c\x08\x0b\xa1\x0f\x69\x2c\xd5\xdb\x3c\xdf\x39\x03\xe3\xee\x13\x02\xb5\x78\xee\x73\x1b\x7d\xf7\x11\x6e\x2c\x59\x3c\x92\x97\x76\x8c\xd5\x72\x0e\xae\x44\x62\x15\x33\xb0\x06\x3f\x67\xa8\x1b\x8b\x12\xbc\xa9\x09\xb8\x45\x2d\x56\x49\x86\x01\x34\xbe\xda\x48\x3d\xf9\xbe\xbb\xff\xb1\x5a\xbb\xaf\x57\x3c\x35\x05\x87\xaa\x42\x59\xfd\x73\xd4\x1f\x61\x89\x74\x5a\x5e\x6d\x5b\xc0\x96\x97\xaa\x9a\x97\x6a\x25\xb1\xd2\x06\x53\x62\x62\xb9\xbf\x57\x62\xd5\xc8\xda\xb1\xf6\xc2\x8f\x89\x4a\x93\xd4\xec\xd2\xcb\xe2\x91\x18\x94\x46\xbf\xaf\x47\xe0\xb5\x9f\x3a\x5a\x50\xe5\xdc\xd4\xd5\x1e\x7e\x4d\xe6\x72\x12\x04\x02\xfb\x3d\xcd\xa5\x39\x83\x7f\x4b\x92\x20\x49\xb0\x94\x6b\x9c\x9d\xbe\xc1\xb5\x99\x7e\x8e\x90\x98\x8f\x58\xea\x7e\xfb\xb0\x22\xa9\xa6\x91\x71\xff\xc1\x72\x96\x04\xca\xf8\xc9\xbd\x5c\xc4\x42\x4a\x38\xdf\xac\xb1\x49\x48\x74\x02\xb6\xe9\xfe\x50\xdd\x3a\x40\x0f\xd6\x8f\x24\x14\x0a\xc2\xb1\x97\xfd\xe4\x6c\x91\x30\x32\x72\x79\xe3\x55\xe9\x36\x65\x71\xb5\x95\x2b\x3f\x28\x43\xcc\xda\xdd\xe5\xd8\x37\x8a\xf1\xcf\x78\x93\x9e\xf6\x2f\x87\x97\xd5\xf6\xb0\xda\x7f\x3d\x8c\xab\xfd\x24\x89\xc3\x0c\xdb\xfd\xfb\xed\x1f\x87\xcd\xa9\xcc\x55\x17\x03\xd7\xfe\xa8\x32\x8c\x96\x03\x76\xc5\x6d\x03\x79\x12\x2f\x7d\xb4\x90\x7f\xb6\x30\x25\x89\xed\xa3\x36\xd0\x1e\x74\x55\x8d\xaa\xb7\x49\xa2\x18\x42\xfa\x72\x59\xc5\xf8\x46\xbb\xcb\x49\x34\x09\x84\x25\x97\x43\xf3\x3a\xfe\x14\xaa\x95\x77\xbf\xe4\xcb\xea\x1e\x50\x42\xf8\x4f\xbb\x9f\x1f\xf6\x5e\xc7\xcf\x20\x25\x1c\x5d\x3a\xbb\x2d\x7e\xb9\x78\xc1\xfb\xf8\xb8\x7e\x72\xcc\x2f\x92\x90\x3e\x79\x9a\x48\xdd\x3d\x54\xf5\x20\xd1\x4d\x08\x13\xb8\x47\x9f\xba\xcc\x79\x0c\xb0\x23\x09\x0d\x34\x3e\x2e\x13\xba\x59\x49\x7f\xc7\x98\x70\x63\xc2\x34\x35\xb2\xc6\x27\x7b\xea\xe6\x0e\x74\x55\x03\x16\x29\x1f\x79\xe3\x47\xb2\x34\x46\x98\xd6\xb9\xf2\x6a\x51\x24\x61\x12\x68\xea\xa9\x5b\x43\x99\x9b\x11\xd1\x93\x60\x67\x2f\x19\x54\x03\x0c\x6e\xed\x06\x47\x4a\x12\x9e\x00\x26\x97\xee\xa2\x79\xb1\xac\x4a\x85\x98\xc7\x71\xb7\xa7\x27\xb9\x61\xf6\x39\x39\x8b\xd4\x3c\x71\x4c\x5c\x6e\xb4\x4e\xf6\xd5\x18\xae\x68\x87\x42\x1c\x25\xa1\xab\x00\x8d\x2e\xbd\x5f\x15\x6f\xab\x5d\x89\x0e\x53\x14\x31\x52\xe8\xf6\xba\xe7\xcd\xdb\x38\x98\x49\x03\x42\x23\x5b\x19\xfe\x52\x83\x43\xaf\x8e\x5e\x84\x34\x20\x0c\xeb\x1f\xa2\xaa\xde\xf2\xf2\xf8\x04\x2d\x57\xbc\xe5\x0f\x55\xfd\x0d\xae\xd3\xf3\x49\x8e\xee\x2c\x3a\xaf\x9b\xf6\x07\xc0\x1b\xa2\xa2\xd6\x65\xf7\x9f\xf6\x71\xa4\x61\x28\xa1\x27\xde\x2e\x2b\xd5\xdb\xd0\x0e\x5f\xed\x34\x8c\x00\x2f\x5e\x77\x3b\xa4\xc1\x7b\xb8\x23\x89\xc2\x33\xd8\x87\x33\x30\xc9\x21\x69\x98\x19\x3a\xcb\xb1\x37\x88\xef\xc5\x36\x48\x1a\x51\xd3\x91\xdc\x94\xf0\xa3\xaa\x0b\x65\x3c\x3b\x7b\x5a\x06\x49\x23\x96\xb8\xea\x6f\xf7\x54\x8c\xff\xcc\x19\x7c\xcc\x94\x46\x92\xe3\x44\x7d\xac\x7e\x4a\x5e\x8b\x11\xcc\x95\xa4\x91\x4e\xa4\xdd\x5a\x90\xae\x70\x03\x28\x21\x69\x1c\x88\xcc\x62\x14\x17\xb5\xc8\x3f\xb2\x85\x27\x69\xac\x52\x23\xed\x64\x2a\xc4\x2f\x75\xf5\xeb\xfa\x61\x84\x36\xdb\xf5\x1a\x85\x3c\xdd\xf9\x90\x18\x67\x22\x4a\x2b\xdb\x86\xe0\xf0\xb5\xff\x75\x31\x48\x6c\x6f\x5f\xca\xc6\xc0\x46\x04\x6e\x18\x2f\x55\xe5\x16\xa4\x34\x49\xcc\x96\xbf\x5e\x6e\xb6\xdd\x0d\x76\x7f\x4f\x83\x00\x3c\x9e\xc2\x55\xaf\xdd\x9e\xcf\x8b\x7d\x5f\x88\x4a\x49\x20\xb1\xf8\x77\x68\xf8\x3b\x8c\x4c\xf8\x26\xb7\x80\x44\x1a\x06\xfc\xef\x87\xaa\xfe\xc9\x6b\x05\xce\x81\xec\xe6\x6e\x8c\x7e\x2f\xc9\x44\x08\x3e\x7c\x5a\xbb\xc2\x4d\x4a\x59\x80\xcb\x3f\x94\x6a\x2d\xfd\xe5\x33\x15\x61\x61\x1f\x1d\x14\x5f\x8a\xaa\x75\xb6\xbc\xdd\x4f\x18\x82\x49\xff\xf9\xaf\xf9\x3c\x6e\xf4\xdd\x59\xe8\x36\xc4\xf6\x79\xf7\xf0\xc3\x35\x25\x7d\x53\x26\xe5\x41\x88\xdd\x3c\x0c\x00\xc6\x3f\x9a\x47\x80\xa8\x2c\x5d\xd5\x12\x56\xa7\x73\x3b\x9d\x66\x5c\x47\x58\x6f\x7b\x29\x2e\xcd\xf0\xdd\x15\x41\x80\xfb\xe6\x48\x3e\x62\x5a\xcb\x19\x5c\x83\x08\xb5\x0a\xfc\x0d\x6a\x40\x5e\xda\xfc\x1d\x2c\x7d\xd1\x8d\x49\x32\x5c\xe6\x0f\xb5\x57\x0b\xe8\xd3\x90\x54\xd0\x04\x51\xb9\x5d\xcc\xc6\x5b\xf9\xfa\x85\xe7\xe5\xe0\x20\x8b\x26\x00\xdf\x9a\x97\xf2\xd5\xcf\x46\x91\x11\x8c\xac\x9e\xae\xf7\xbc\xe4\xa3\x79\x24\x32\xa3\x98\x7c\x69\x90\x3a\x7d\xe9\x3f\x23\x8c\x3f\xf9\x89\xbf\xc1\x42\x55\x88\x6a\x1a\x41\x57\x52\x3b\x50\x86\x11\xb2\x1f\x0c\x6f\x02\x83\xc9\x49\x91\x30\x95\x3c\xc2\xf4\xe7\xd6\x44\xf1\x2f\xee\x99\xf6\x3c\x2a\x34\xce\x7d\xba\xae\x4e\x53\xab\xb0\xee\x68\x26\x7b\x30\x8c\x33\xe6\x5c\x99\xfd\xe2\x26\x35\xfc\xb3\x5d\x7a\xfa\xf7\xb9\xbe\x4a\xaa\x88\xc7\xea\x0e\x3c\xc9\xdc\xc1\xcc\xe0\x93\xcf\x97\xe6\xf5\x77\x28\x55\x35\x55\xaf\x1a\xbe\x22\x8a\x67\xdc\x38\x85\x6d\x9e\x36\x88\xa6\x58\x2c\x97\x9b\xef\x8e\x8a\x46\x52\x05\xf1\x00\x53\xbd\xcf\xdb\x62\xea\xd6\xe7\x07\x72\xdc\xc5\x9d\xda\xf3\x87\xf7\xfa\x93\x59\x85\x91\x33\xce\x2a\x59\x95\xf8\xc4\x64\x51\x35\x79\x79\x1c\xae\xf1\x40\x63\x30\x5e\xbf\xc0\xdf\xfd\xaa\x05\x99\x89\x61\x8d\xa5\x0f\x1f\x77\xda\xed\x18\x1d\x44\x49\xdf\x79\xc2\xb5\xbb\xbe\x9a\xbe\x6b\xb3\x1c\x41\x1d\xc7\xb7\x5b\x87\x0a\x61\xf8\x22\x3f\x3e\x56\xd5\x79\xf2\xfc\x75\xc4\x91\xf9\x0d\x65\x5d\x15\xfe\x7a\x74\x0a\xb8\xfb\xf7\x5e\x50\x61\xf0\xb4\x9f\x60\xef\x08\x09\x42\x2d\xba\x61\xef\x39\xfc\x34\x62\x05\xa3\x4b\x26\x81\xa4\xd8\x78\xb6\x08\x84\x71\x61\x8c\x04\xca\xd8\xb8\xc9\xea\x74\x1e\x02\xa6\x08\x09\x79\x86\xb2\x1e\x20\xab\xe6\xda\xb4\x70\x1a\x40\xae\x08\x09\x45\xac\x4c\xc4\xd5\x05\x23\x73\x1d\x63\x12\x09\xa3\xfd\xaa\xaa\x59\x20\x27\x21\x11\x64\x5c\x3b\x15\xe3\xba\xa9\xca\x6e\xcb\xe1\x6f\x30\x4f\x24\x27\x24\xd2\x86\x26\x3e\x54\x0a\xdf\xb5\x5d\x66\xec\xae\x2a\x4e\x4c\xad\xc0\x20\xa4\x0c\xbb\x60\xd1\x6e\x01\x45\x25\x07\xba\x91\x84\x24\x91\xb1\x4c\xb3\xfe\x08\x86\x9b\xf8\x31\x51\x75\xfc\x38\x49\x12\xa5\x28\x59\x70\x97\x23\x04\x75\x5d\xaa\xfc\x58\xf9\x53\x53\xab\xa8\x51\x86\x11\x43\x1b\x17\xb7\x2d\x24\xff\xf2\x43\x52\x1c\xe2\x4a\x20\x8b\xb6\xe5\xf2\xcd\xd7\xba\x49\xa2\x18\xd2\xb9\x9b\xd7\xea\xe7\x6b\xd5\x9c\xf3\x76\xa2\x0d\x41\x48\x02\x21\x04\x2e\x15\xc4\x6b\xdd\xff\xac\x26\x37\x38\xa5\x01\x62\xb5\x0c\x20\xb3\x59\x97\xbd\x45\x08\x21\xa9\x12\x3c\xb0\x41\x86\xf3\x7c\x54\x2e\xa1\xff\xe0\x09\x90\x28\xc6\x6e\xec\x6a\x2f\x78\xf9\xf6\xa3\x72\xf4\xd0\xee\x08\x60\x9c\xf8\xbd\x8b\x57\x66\x7b\xf6\x6e\x20\x25\x54\x0c\xc5\x7e\xef\xa0\x7d\xa8\x6a\x07\xfe\x2f\xf8\xd5\x40\xda\xc6\x9f\xa2\x4c\xc7\xbd\xbb\x07\xa2\x1e\x6a\xcb\xf0\xb8\xed\xd9\x13\x16\xa5\x28\x4c\x8b\xb0\xbc\x17\xa8\x7b\x21\x7e\x42\x18\x4f\xb1\x82\x37\x91\x1a\x65\xfd\x71\x63\xbe\x2f\x2e\xd7\xb9\xba\xb0\x1b\x05\xa1\x36\x2a\x3e\x5d\x68\x0a\xcd\x40\x3e\x9c\x90\x2c\xd0\x88\x0d\x2c\xe1\x57\x6b\xd3\xe7\xc9\x05\x66\x61\x34\x58\x7d\xcf\x2d\x38\xc6\x2c\x21\x3c\x05\xd4\x78\xfa\xc9\xdf\x61\xc9\xcf\xa1\xff\x3b\x11\xb8\x83\xe4\x0d\x32\xcc\xfc\x8d\xe7\x9c\x62\x4b\xee\x7c\xa9\x61\x02\x02\xb0\x23\x84\x4e\x10\x0e\x77\xff\xf8\xcd\x7d\x48\x26\x21\x26\x3c\x8f\xbc\x3e\x76\xdf\xe2\x15\xd0\x0d\xf2\x67\x52\xa5\x27\x92\x10\x67\x35\xf3\x54\x95\xc6\xb1\x03\x78\x5b\xd5\x73\xa6\xa9\x84\x48\x0e\xb8\x22\x9d\xf9\xf5\xa1\xaa\xdb\x4b\x39\x7d\x3e\x2a\x14\xcc\x2c\x3a\x97\x12\x85\x1a\x67\x60\xd5\x84\xa8\x84\x60\x08\x78\xbc\x9e\xc6\x36\x6a\xdd\xd5\x30\x04\x57\x6d\x57\xff\xf3\x7d\xb5\xdb\x1f\xb6\xab\xbf\xaf\x96\xfb\xd5\xfd\xe1\xee\x8f\xc3\xd7\x8d\x93\x77\x26\x44\x29\x8e\x31\xd6\x4f\xd4\xbe\xef\xeb\xef\x44\x29\x40\x38\x12\x46\xa2\xe6\x85\xeb\xb7\x34\x02\x41\xa0\x99\x9b\x5b\xa7\xbc\xbc\xe7\xcd\xab\xe8\xbd\xc1\x08\xd1\x69\x88\x78\x8a\xc5\xaf\x1c\x56\xdb\x25\x8d\x42\x97\xf4\xf4\x23\x62\xb4\xde\x95\x97\xba\x97\xc7\x22\x44\x13\x70\x4c\xd8\x75\x63\x66\xbd\x3f\x44\x0d\x4b\xb9\x32\x8a\x30\xed\xff\xa0\x99\xec\xec\x96\x67\x3e\x41\x03\x4d\xa5\x97\x29\xfc\xca\x27\x99\x3f\x0d\x13\x8d\x64\x00\x68\x5f\x0f\x5e\x6b\x8a\xd0\x90\xaa\xd8\x23\xfa\xa1\xc9\x15\x94\x5d\x86\xfa\x04\x0d\xbf\xf5\x7b\x1f\x06\x95\x34\xe4\xd2\x29\x6c\x21\x81\x1d\xf3\xe4\x69\xa1\x87\x86\x16\x5b\x58\x95\x18\x51\x61\xdd\x6c\xf5\x0b\xe4\x8d\x80\xc2\xe8\x9d\xa0\x51\x94\xc6\xa1\xfb\x31\x77\x55\xd5\xbd\x65\xb7\xcc\x3d\x42\x23\x30\x81\xcb\x17\x68\xef\x0c\xcf\xc7\x85\xb1\xe3\xf3\xc5\xda\x18\xa2\x34\xa3\xca\xe8\xcd\xfa\xee\xb3\x6e\xdb\x5f\x19\xaf\x56\x34\x49\x82\xd8\xa8\xda\x56\x05\xf0\x72\x5f\x7d\x5f\xfb\xaa\x03\x4d\x98\xe2\xae\x2b\xd4\xfd\xa6\x71\x0c\x4e\x13\x1e\x60\x6d\xd6\x78\xc0\xcc\x2f\x87\x34\x8d\x12\xd4\x44\x42\x10\xe1\x2c\xb7\x75\xfc\xcc\x53\x46\x12\x43\xe7\x7d\xaf\xde\x60\x40\xfb\x1d\x45\xf4\xe3\x5b\x41\x94\x31\xba\xf9\xb2\x5d\xb8\x0c\x87\xd2\x6e\xff\x70\x5c\xc4\xf3\x9e\x8b\xf9\xc0\x85\x52\x45\xa8\x71\x1b\x93\x95\x82\xb1\xfc\x90\x1d\x92\xc5\xc4\xe9\x87\x3b\x98\xa8\x77\xb8\x0f\x47\x92\x35\xb7\xff\x6b\x4f\xc1\x95\xe9\x13\xf2\xbc\x9e\x22\x65\xa8\x90\x1a\x53\x96\x2e\xbe\xb1\xf9\xfc\x12\x41\x0f\x05\xa8\xc7\xfc\xe6\xfd\x90\x89\xce\x48\xdf\x58\x5f\xb7\x70\xfa\xcc\x1e\x83\x50\xa9\x34\xce\xd4\x2e\x38\xdd\x14\xc6\x5b\x67\x3c\x42\xc5\x29\x66\x1a\xdf\x4f\x5d\xe0\xfa\x0e\xc5\xb3\x8f\x92\xa8\xb2\x2c\x1a\x2c\x00\x0c\x30\x62\x14\x02\xe3\x23\x85\x2b\x8c\xa9\x89\xe6\xe5\xf1\xbe\x1a\xda\xc3\x13\x0a\xb1\x42\x78\x3d\xb4\xaf\x7b\xfe\xab\xe7\x75\x10\x0a\x8c\x73\x63\xc6\x92\x6b\x3d\xee\x11\x50\x00\x95\x38\x67\x33\xdc\xda\x0d\x34\x64\xf6\x01\xea\x58\x22\xeb\x84\x8b\xa9\xa9\x3f\xa1\x5a\x2a\x9c\xaa\xe6\x56\x61\x19\xeb\x73\x8d\xd6\xf1\xb9\x59\x40\x25\xcf\xfc\x9c\x2d\xb8\x7c\x2b\x6e\x1e\x08\x0b\xa3\x68\x54\xcd\x29\x9b\x41\xcf\x70\x6e\x5d\x63\x21\x64\x08\xef\x3a\x28\x43\xba\x36\x1a\x04\x83\x05\x9a\x85\x3a\x33\xd2\x27\xfc\x1d\xba\x95\x17\x93\xef\x9b\x34\x76\x38\x1b\x59\x14\x0a\x8d\xc9\x45\xae\xa0\x9a\x84\xaa\x2c\x4a\x04\xa6\xb0\xdb\xd5\xe2\x65\xb5\x3d\xac\x9f\xf7\xdb\xd5\x8b\x2f\x07\xb0\x48\x66\x60\x82\xc5\x46\xe6\xa5\xfa\xbd\x6a\xc7\x5a\x2a\x84\x45\x10\x65\x36\x1a\xf3\x05\xe9\xb1\x14\xe4\x78\xde\x77\x1f\x40\x54\xd7\x8b\x67\xd8\xda\x03\x31\xd3\xa8\x7f\xbb\x14\xdd\x8f\xfa\xdf\xd1\x0e\x09\x4b\x38\x37\x7d\x65\xdc\x50\x17\x45\x0d\x5c\x5d\x5f\x78\xae\xee\xfa\x9d\x86\x25\x8a\x22\x24\xb4\x4b\x46\x0f\x6b\x27\x2b\x8f\xef\xe5\xa1\xad\x0e\x8f\xb9\x06\x79\x95\xbe\x3c\xcb\x52\x6d\x92\xe0\x5d\x5e\xc8\x3f\x4f\x84\x3f\x8d\x9c\x19\x11\xd6\x15\xbb\xe5\x47\x38\x44\x43\xe6\x04\x61\x2c\xe5\x18\x5e\x5a\xab\x08\xf7\x57\xce\x45\x6f\x70\x6a\x5d\x67\xdf\x27\x51\x0e\x63\x2a\x30\x35\x33\xcc\x9d\xdf\xe0\x3a\x3d\xae\x59\xa6\x9c\x0d\xd6\x04\xa9\xc7\xb2\x20\x44\x69\x3e\xae\x94\x41\x1b\x0f\x31\x85\xa3\xfa\x19\x73\x9f\x08\x33\x64\xcc\x7c\xeb\x42\xa7\x41\x85\x85\x65\xa1\x49\x62\x2f\xa5\x82\x1a\x1d\x7f\x30\xef\x98\x42\x23\x58\xc6\x38\x55\xce\xa1\xd1\x5f\xcf\x3f\xa3\x7f\xb9\xe3\x59\xc4\xcc\x02\xfd\x0e\x65\x7b\x05\x64\x02\xbb\x63\x9c\x13\xd3\xfd\x58\x38\xeb\xbd\xcc\x1d\xe3\x09\x0d\x95\x13\x05\xc7\xc8\x14\x89\xd6\xfc\xaa\xf8\x6d\x69\x70\x7c\x8b\x78\x6a\xa0\xc2\x06\xfa\xd8\x2d\x84\x2f\xab\xc7\xcd\x38\x36\x9b\x3c\x4e\x4e\x4c\x3b\xbf\x5b\xfb\xbb\xdd\xfe\x1e\x8a\x96\xf7\xfa\x2a\x5d\x34\x2d\x63\xe1\x35\x42\x8c\xe8\xd2\xfc\x9b\xc1\x33\x12\x06\x13\xc7\xba\x66\x7f\xd3\x70\xb6\xa3\x65\x1c\x61\xff\x5c\x1e\xf9\x10\xfa\x67\x8f\xaa\x98\xa3\xc8\x26\x98\x3e\xdc\x64\xde\xcc\xff\x14\x20\xc6\xa5\xa9\xaf\x45\x75\x77\xc0\x8a\xe0\x8c\xdd\xe5\x08\xd3\x41\x6a\xa6\x04\xb4\x7e\x46\x8c\x33\x6b\xa6\x03\x86\xf9\xd5\x13\x56\xbd\xa0\x6d\xfb\xb0\x7a\x54\xeb\xff\x60\xa2\x68\x11\x21\x26\xe1\xc4\xdf\xac\x26\xde\x5f\x4a\x4d\xb3\x80\xc5\x31\xf7\x52\xa2\x67\xa8\xdb\xeb\x96\x77\x5b\xcf\xfe\x72\xf6\x53\x3a\x0b\x54\x86\x36\xc9\x5b\x84\xe1\xcb\x8a\xa3\xe2\xaf\x3d\x18\x52\xc0\xf6\x7d\x9b\x43\xbd\x29\x3d\x5f\xdc\x1f\x16\xe0\x2c\x39\x0e\xbc\x4b\xf7\x3e\x58\xe3\xb2\x18\x8c\x4f\x7d\x09\x79\x5d\x95\xf9\xaf\x97\xba\xd2\xf9\x98\x15\x49\xb2\x24\x48\x31\x94\x3e\x40\xa9\xee\x2f\xad\x7c\x9d\x64\x4c\x93\x9f\x97\xc4\x91\xb4\xa1\xf9\xd3\xf5\xb9\x8b\xfd\x8a\x7b\xc4\xae\xf6\x27\x54\xa1\x03\x73\x14\xbc\x69\x3d\x17\xb9\xca\xbd\x43\x07\xc9\x12\x6d\x72\x8b\xbe\xb6\xf2\xb8\x7d\xfe\xc7\x07\xc2\x27\x24\x4b\x03\x82\x35\x14\xf3\x52\x1e\x5e\xa0\x3e\xdc\x63\x47\xf0\x70\x0f\x28\xe4\x3a\x88\xf1\xb3\x34\x55\x88\x35\xfa\xc7\x1f\xcb\xa5\xff\x1b\x4d\x11\xee\x77\x82\xfa\x08\xea\x29\x2f\xa1\xb6\xe6\xdf\xd5\x04\xaa\x94\xa5\x32\x30\xbe\x8a\x48\x1b\x5e\xfd\x27\xca\xcc\x5e\x13\x65\x7f\x1b\xfd\xeb\xf6\x9e\x8c\xa8\x10\x37\xaf\x73\x5d\x49\x68\x9a\x1b\xd9\xf5\xd9\xd7\x3d\x23\x5a\xe0\x42\x7c\x20\x07\x5d\xe7\xe0\x45\x2e\xbb\x23\x8a\xf4\xeb\xed\x21\x97\xd5\xc1\x20\x02\xc6\x2b\x58\x46\x23\x65\xa9\xa1\x5c\xad\xba\x45\xaa\xcb\x97\xbb\x4d\x4b\x74\xdf\x7e\xe9\xb9\xdc\x24\xa3\x99\xc8\xac\x27\x7f\x9b\x2f\x94\xfa\xb8\x67\x9f\x51\x91\x2a\xa3\xa1\x6f\x72\xfc\x0f\xea\xfe\x19\x4b\x23\x57\x99\x46\x52\x18\x3f\xc1\x44\xf2\x87\x64\x8c\x85\x44\x0f\x1a\x90\x6b\xb5\xd1\xcb\xed\x28\x4b\xca\xb2\x38\x02\x9b\x91\x3d\xd4\x00\x3b\x80\xfe\x4e\x64\x54\x23\xb6\xa3\xae\xaa\xf6\xfb\xfe\x1f\x9b\x27\xa8\xdf\x0a\xd8\xd7\x00\x98\x6d\xb9\x51\xc0\x64\xec\xeb\x9b\xb6\x41\x69\xb6\xa9\x69\xdf\x3a\xe3\x91\xc2\xbb\xfe\x08\x1f\xb0\xa2\x49\x26\x12\xe3\x38\x99\x37\xcd\xc5\x29\x2b\x0e\x85\x28\x48\x26\x32\x81\x1e\x42\x60\xa3\xed\x2e\x46\x32\xe3\x10\x88\xdb\x37\x56\x33\x15\x64\x52\xf7\x6b\xaa\x7a\x18\xe8\x85\xb8\x21\x91\x31\x05\x2f\x72\x6d\xc5\x7c\x0e\xef\xfe\x18\x4b\x70\xcf\x54\x5d\xd4\xfa\x01\xb7\x20\x83\x20\xc1\x95\x58\xd9\xce\xec\x60\x43\xcf\x20\x21\xd8\xed\xf3\xfc\x9c\x0f\x48\x19\xd3\x53\x66\x31\x22\xe1\x5f\x56\xdb\xdd\xe6\x79\x31\x8c\x8f\x32\xad\x4c\x89\xef\x1b\x94\x6d\xcd\xc7\x71\xd1\xf8\x2c\x5a\x4b\x2c\xa2\x59\xe6\x1a\x16\x01\x51\x42\xd5\x2f\xe3\x3c\x48\x23\x67\x29\x61\xe9\x0c\xeb\xfb\x21\xde\x8b\x87\x60\xd4\x85\x4b\xf8\xe9\x38\xa3\x36\x02\xe0\x11\x95\x7a\xc0\x4a\x5c\x19\xae\x43\x83\x20\x29\x3b\x24\x8e\x23\xc2\x7c\x31\x7a\x10\xdd\xf3\x98\x6b\x53\xe0\x43\x09\x02\xa3\x25\x30\xe4\x8f\x11\x8e\x20\x83\x91\x41\xae\x81\x17\xfb\xe3\x69\x80\x52\xb4\x1a\x5a\xf9\x8a\x6d\x6e\xa4\x20\xdc\x5d\x77\x25\x3f\x37\xaf\xd5\x8c\x03\x3c\xe1\x69\x60\x18\x09\x7d\xd1\xb0\x7b\x63\x46\xdc\x85\x61\x5e\xc6\x53\x45\x51\x86\xe9\xd0\x2d\xb7\xf8\xf2\x6f\xab\x6a\x46\xa7\xd0\x0e\x27\x81\xc1\x3b\xbf\xd4\xb0\x3f\x82\x11\x4a\x72\xd7\x4b\x54\xe2\x16\xee\x95\xd1\xfc\x1e\x06\x59\xfe\x67\x53\x12\xa3\xe3\x23\x5c\x64\x01\x2a\xe7\xe5\x7d\xde\xb4\x9f\xbd\x32\xe3\x87\xce\x99\x06\x24\x07\xc0\xfb\x57\x5e\x0f\x45\x98\x27\xe3\xb2\x20\xc2\x32\x9b\x41\xf7\x7e\xa6\x02\x31\xc4\x73\xb8\x0f\x93\xc8\xd1\x76\xd1\x26\x63\xca\xca\x1b\x4d\x68\x9e\x89\x48\xf5\xfa\xb6\xfb\xc5\xe6\x53\xac\xe7\x04\x44\x35\xb9\x6c\x1e\x85\x44\xba\xbb\x38\x75\x96\x22\x9c\x67\x04\x25\x4b\x96\xdb\x9d\xff\x13\x07\xd6\x97\xc4\x27\x2f\x11\x97\xa6\xc6\x6f\x64\x4b\xdb\x7b\x7e\xdd\xfb\x0f\x8a\x8c\x80\x29\x5f\x34\x2d\x7f\xc3\x16\x3c\x4c\x29\x5d\x5c\x70\x2e\xb8\x0d\x15\x0e\x92\x9f\x0f\x0e\x41\xc5\x65\x48\x79\xff\xbd\x87\x21\x60\x85\x4b\xc9\x11\x98\x63\xf7\x95\xbb\x89\xb3\x18\xe1\x52\x07\xd2\xb8\xd2\xb5\x50\x9f\xf2\x12\x36\x97\x56\x56\x03\xa0\x1e\xbe\xa4\x76\xf7\x60\xfe\xfd\x53\x51\x80\xe5\xbe\x77\x23\xd8\x38\x55\xf9\x9c\xdc\x4b\x95\x0a\xe9\x54\x67\x91\x7d\xd2\x23\x0c\xc7\x57\xa3\x14\xc4\x91\x63\x69\x7f\xcd\x95\x82\xf2\x09\x9a\x86\x1f\xa1\x19\x2e\x26\x10\x18\xdc\xa7\x65\x0e\x71\xf9\x36\xd5\xbf\x70\x03\x43\x9e\xd1\xc1\xb6\x34\x57\xfd\xe4\xc0\x32\x91\x8c\x4c\xf1\x4a\x5d\xad\xcb\x91\x1f\xb7\x1b\x9a\x45\x4e\x43\x15\xcb\x1d\xf3\xaf\x21\x64\xa6\xf0\x6e\x4a\xe8\x26\xa4\xf4\x71\xe8\x5f\xb2\xf8\x21\x5c\x47\x0a\x33\x84\xfd\x76\xbd\x1c\xae\xca\x5c\xc7\xa9\x1e\x2d\xf4\x0f\xe0\x5e\x4a\x11\x64\x9e\x39\xbd\x98\xb3\xb4\x27\x22\x24\x41\x64\x6b\xee\x9b\x12\xb6\x5c\x88\x29\xa9\x4e\x84\xcc\xc8\x8c\x3f\x56\xe5\x71\x0f\xf5\xc9\xca\xe4\xdb\xed\x71\x14\x41\x89\x50\x26\xb8\x6a\x2d\x4e\xfe\x95\x13\x21\xd0\x50\x5a\x33\xb0\x73\xf5\x41\x9b\x4e\xc4\x29\x73\xe5\xd9\x45\x51\x08\x68\xef\xae\x5f\xda\xeb\x19\x7e\xeb\xd7\x44\x91\xa6\x1a\x4b\xff\xf8\xd5\x2b\xdb\x39\xc5\xf8\xe7\x63\xa1\x26\x22\x88\xce\xb0\x5f\x86\x52\x90\x96\x49\x72\x6b\xd0\x37\xba\x2b\x34\x04\x24\x3f\x9b\x69\xbe\xb6\x70\x89\x8f\x43\x27\xc1\x22\x8a\xac\x0b\x01\xdd\x5c\xd9\x9d\xa1\x3e\x15\x7d\x8b\x46\x64\x69\x80\x17\x7e\x90\xd5\xe9\x7c\x69\x61\x59\x55\x85\xaa\x7e\x96\xbd\xfa\x7d\x3e\x51\xb8\x20\x22\x23\x46\x37\xd5\x1a\x2f\xf2\x5f\xcf\x97\x93\xa5\xad\xfa\x11\x1a\x62\x67\x43\x8f\xe6\xbb\x1f\xac\x60\x1f\xf2\x5a\x66\x40\xe9\xf3\x58\x15\xf7\x8d\x34\xc2\x4a\xce\xc5\x86\x7d\xe3\x89\x23\x78\x9a\xe0\xda\xd1\x9c\x01\x5d\x3e\xba\xfd\x78\xfc\xa3\x04\x49\xec\xd4\x42\x0d\x35\x40\x81\x54\x87\x71\xfc\x13\xfa\x94\x10\x8c\x09\xfb\x7b\x9f\xf2\x72\x35\x4a\x30\xdd\x10\xc8\x94\xf2\x9e\x85\xfb\xd7\x1a\x9a\xd7\xaa\xf0\xcf\x41\x46\x12\xc9\x04\x4f\xbc\x96\x50\xf0\x03\x2a\x7d\x77\xd9\xf9\x9f\x62\x46\x84\x4c\x23\x14\x73\x5c\xd6\xd7\x33\xfc\x1a\xce\x40\x21\xa9\x42\x6a\xc9\x03\xcf\x6b\x2f\xc7\x30\x96\xd8\x23\x42\x0a\x89\x91\xe3\xa9\x6a\xda\x5d\x7e\x2c\x73\x9d\x4b\x5e\xb6\x77\x37\xd3\x4d\x4a\xa3\xe4\xb7\xdb\x2f\xb6\xe8\xe2\x7b\xb7\x78\xfe\xb6\x72\x84\x2c\xa1\x02\xc0\x96\x7e\x09\x3f\x47\x3a\xa3\x73\x50\x03\xa1\xc2\x10\x4b\x5d\xdc\xa1\xff\xee\x2e\xd7\x75\x69\x88\xaf\xee\x84\x3a\xd6\x56\x4e\x13\x01\xa8\xbc\x3e\x4d\xbb\xc5\x42\x13\x89\x38\x03\x2c\x36\x1e\x14\x70\x55\xe4\xa5\x5f\x64\x34\x0d\xb0\xca\xe8\x14\x05\x7e\x1b\xda\x34\x65\x1e\x6b\x37\xa6\xe8\x38\x4e\xb8\x0c\xc2\x04\x61\xd1\x48\xc7\x38\xcd\x69\x31\x8f\x9e\x83\x0c\x92\x14\xc3\xf8\x3a\x3f\xbe\xb6\x34\x1b\xdf\x3c\x19\x00\xc1\xb9\xae\xec\x3c\x1f\xec\xd0\x32\x80\x0c\xe1\x4a\xa6\x2f\x72\xbf\x3b\x34\x80\x0b\x88\x71\x69\x69\x30\xaf\x18\x9f\x2d\x24\x01\xde\x9a\xee\x2c\x3b\x68\xfb\x3c\x5d\x86\xc2\xf6\xd9\x6a\x38\xc3\xb4\x65\x2a\x43\x45\xb5\x0d\x15\xd0\xb9\x7a\x5d\x2a\x94\x63\x1b\x8f\x8a\x42\x19\x19\xaf\x93\x25\xd4\x6d\xae\xf3\x41\x95\x62\x7c\x1d\x51\xc4\x31\x14\x36\x29\xb3\x6c\x83\x5f\xcf\xd0\xfe\xac\xea\xb7\xe1\x1b\x26\xa3\x94\xdb\x6d\xbf\xe5\x05\x1a\xf7\x45\xae\xe6\xdd\xf8\x31\x4c\x8d\xb7\xb6\xdd\x99\x4b\x68\x5e\xf3\xf3\x0c\x18\x4e\x46\x0a\x30\x54\xfe\x3d\xf7\x29\x97\x8c\x74\x62\xcb\x2f\xa5\x3a\x55\x25\x5c\x91\xd1\x39\xbe\xde\x38\x36\x68\xf6\x55\xfb\x3a\x02\x0e\xc9\x38\xe5\xc8\x26\x44\x9a\xb9\x35\x7b\xfb\x78\x55\x95\xb1\x48\x90\x1b\x8f\xe6\xa4\x26\x7d\x59\x5c\x5a\x7f\x29\x89\x75\x1e\x7f\xdc\x2c\xbf\x75\x13\xe5\xfb\x33\x32\xf0\xf6\xeb\xa7\x95\x1f\xc2\x13\x44\xcc\x1d\xb0\xbc\x28\xbb\x25\x79\xba\x46\xce\x4c\x76\x99\x48\x23\xa6\x8e\x05\x2e\x6b\xb7\xa3\xa6\xbf\x32\x0d\x8c\x40\xa8\xe4\x45\xb1\x28\x8a\x2e\x9c\x7f\x82\x1b\x4a\x85\x1b\x1c\x05\x21\x19\xc0\x57\x3f\xa2\x1c\xba\xe1\x49\x18\x67\x06\xe5\x70\xe2\x4d\xf3\x8f\xd1\x5d\x4c\x29\x47\x6c\x41\x9b\x9f\xfc\xde\xf4\x02\xb5\x33\x65\x22\x32\x85\x2c\xb1\x41\x72\x3e\xb1\xb7\x98\xbc\x59\x24\x36\x76\x18\xe8\xcc\xd5\x65\x2d\x07\x1e\xd2\x6e\x26\x1c\xec\x38\x77\x4a\x1a\x85\xc6\xcc\x09\xdd\x7f\x9d\x54\xda\x07\x71\xb7\xa4\xa9\xc4\x10\xbf\xad\xf3\xe3\x11\x6a\xb3\x45\x8f\xee\x30\x95\x09\x76\x5f\xac\xa8\xdb\x46\x4f\xfa\xcc\xb2\x5b\xeb\x43\xe7\x2a\x59\xd5\x53\x28\x96\x1b\x95\x29\xc4\x92\x60\xa9\x4e\x6b\x94\xb3\x5c\xe6\xed\xf5\xa1\xaa\x77\xd5\x09\xaa\x72\xd4\x0b\xbb\xbd\xcf\x4c\xcb\x5e\x4e\xe0\x9c\x1b\x07\x0a\x87\x58\x1b\xdf\xaa\x4c\x13\x54\xa7\x69\x5e\xa1\xd0\x73\x96\x82\xa4\x0b\xad\x51\xe8\xe8\xc0\x45\x55\x77\x61\x0c\x86\x8c\x7e\xf2\xf1\x40\x27\xd6\x57\x13\xb3\x46\x7f\x40\x64\x41\x88\x1b\x1b\xd7\x30\x78\xcf\x26\xcf\x4a\x48\xc1\x1d\xb0\x70\x53\xc2\xc0\xdb\x98\x48\xa1\x8c\x42\xb6\x21\x4a\x77\x3b\xde\x5f\xca\xd9\xa4\x80\x38\xc5\x1d\x9b\x17\xe0\xaa\x7f\xf6\x90\xe2\xa9\xd6\x0e\x29\x70\xcf\xaf\xfe\x6a\x21\x24\x91\x41\xf8\x62\xd1\xeb\x89\xd7\x6f\x68\x94\xf1\x27\x20\x39\xf3\x69\x15\x24\x0a\x25\x9f\x7f\xba\x5e\x0d\xa8\x01\x41\x6a\xd2\x1d\x52\x41\x96\x46\x16\xad\xb1\xdf\xef\x87\x5c\x52\x15\xf0\x98\x1a\x7f\x87\x6e\xdf\x7a\xa9\xaa\xc2\xd8\x97\xff\x36\x07\x37\x55\x81\xd2\x8a\x5b\xb5\x2f\xbb\x37\xdc\xc6\x5c\x2a\x0c\x32\x04\xf5\xbe\x1b\x6b\x0d\xe0\xa7\xe9\x00\x1a\x19\xf0\x82\x89\x70\x46\xb0\x2d\x15\x52\x89\xcb\xfe\xc1\x8a\x23\x7c\x5c\x20\x51\x21\xe3\xa8\x9a\x53\xe6\xaf\x79\x71\x39\xdd\xb9\x59\x30\x5e\x80\x55\x14\x70\x6c\xfb\x77\x37\xf8\x50\xe9\x83\x81\x7c\x75\xff\xa7\x79\xcd\x6b\x5f\x53\x55\x11\x11\xd2\xad\x2e\xd6\x13\x77\xa8\x82\x37\x3b\x49\x55\x24\xc1\x29\x8f\x1c\xce\x55\x55\x1c\xce\xbd\x48\xf5\xa0\x12\xa1\xe2\x40\x60\xb5\xc5\x64\x8c\x4f\x79\xd9\x22\xf1\x6e\x5c\x96\x57\x71\x62\x5c\x6d\x1c\x91\xcf\x5d\xc3\x88\x7c\xa9\x62\xc1\x52\x5b\xe9\xf7\x34\x97\x6e\xca\x16\x55\x39\xa0\x9f\xba\xc1\x9a\xd0\x78\x54\x29\xfe\x62\xc3\x46\x35\x92\x92\xb3\xc3\x93\x50\xe0\x9a\xd9\x7b\x1f\x78\xf5\xc0\x31\x88\xdb\xd5\x46\x55\x92\x84\xf8\x26\x17\xf9\x29\x6f\xc7\x0a\x00\x2a\x51\x51\xe8\x80\xe0\x16\xe4\x55\xf9\xfe\xe2\xfc\x3b\x96\x26\xc6\x10\x59\x41\xb1\x33\xef\x87\xa9\xc8\x8d\x6f\x7b\x9a\x6a\xec\x12\x88\xcb\x35\x0c\xde\x8c\xcc\xa1\x7f\x90\x24\xd4\x34\xb0\xba\x03\xad\x45\xa3\xe6\xed\xb5\x7b\x55\x6b\x3f\xc6\x46\x25\xdf\xef\xf6\x7f\xde\x96\x54\x84\x70\xe9\xcb\x5d\xb3\x5e\x31\x93\x57\x93\x12\x4e\x87\x04\xd0\xdd\xb5\x6c\x5f\xa1\xcd\x27\x8d\x3b\x45\x99\xf1\x57\xf1\x80\xbf\x1f\x90\x3b\x28\x95\xa2\x5a\xc5\x7d\xa6\x86\x6e\x82\xe3\x4f\x33\x9e\xe0\x04\xe8\xcd\xf1\x0f\x77\xdf\x9d\x64\x91\x62\x2a\x41\xec\xc7\xe2\xe9\x6e\xb1\xdb\x2d\xee\x37\xdb\xc3\xe6\xd9\x6d\xea\x2a\x4b\x2c\xe7\xcb\x26\x53\x53\xf1\x5a\x17\x5b\xaa\x2c\x05\x81\xca\x47\xbb\x1e\x66\xe7\x4f\x42\x8d\xce\x64\xed\xdc\x23\x6e\xe0\x29\xc3\x8d\x46\x65\x42\x04\xba\x07\xb7\x7e\x2f\xdb\xbc\xe8\xc9\x80\x8a\x5b\x1d\x79\xae\x94\xb5\xac\x78\xa8\xea\x19\x05\x93\xc9\xbd\xe6\x22\xc3\xa4\x00\x91\x0a\xfb\x9a\xcb\xb7\x79\xfa\xa2\xe2\xca\x10\x22\xbd\x06\x78\x5d\x4d\x97\x26\x11\x33\x69\x90\xc3\xa6\x09\xd1\x0d\x99\x59\xe2\x04\xa7\x18\xd3\xad\xfe\xe1\xae\x5d\xe8\x84\x39\xb8\xce\xe3\x72\xf2\xb6\xca\x98\x60\x4f\xf5\xe0\x90\xc1\xdf\xeb\x91\x60\x27\x51\x92\xa5\x08\xa3\xf9\x09\xf9\x7e\x50\x69\x52\x32\x33\x6b\xa9\xb8\x5c\x77\xa8\x56\xb5\x18\x21\xf2\xd8\xfc\x8e\xac\x14\xa1\x11\x56\x21\xbb\xc0\xe5\x89\xe7\xe5\x70\x52\xaa\x8c\x33\xab\x84\x74\x67\x18\x2f\x7e\xe6\x80\x88\x22\xeb\x42\x62\x22\xdb\x27\x7e\x3e\x77\x6b\xca\x5f\x60\xa5\x2a\x00\x8d\x5b\xab\x95\x5d\x18\x3d\x2d\xff\x36\x69\x1d\x63\xec\xec\x77\xae\x29\x41\x6e\xb0\x1c\x42\x90\xa6\x24\x72\x68\xb3\x82\xa3\x72\xd3\x7b\x5e\x5d\x1a\xb3\xec\x8d\x1f\x0a\x04\x4c\x20\xde\xb8\x3a\x43\x69\x24\x9e\xac\x60\xb4\xfd\x75\x10\xc6\x34\x4b\x6d\x1c\xbb\x2a\xbb\xd7\x75\xf4\x7a\x42\x44\x42\xa7\x54\xf3\x70\x29\xd5\xa2\x70\xde\x12\xfd\x77\x44\x32\xc0\xea\xbd\x55\xcd\x71\xbb\xe0\x74\x14\x84\xf8\x22\x77\x6f\xf1\xc3\xc3\x8c\x1b\x43\x3f\x34\x4e\x93\xc0\x13\xb2\x97\x55\x5e\x3e\x14\xf9\xf9\x23\xaf\x1e\xfb\x99\x24\x35\xbc\xa1\xa7\xeb\xff\x83\xb4\x33\x81\x84\x98\xed\x37\x57\xc3\x50\x00\x52\x91\x60\x99\x6b\x91\xd7\x3f\xf9\xf5\x2e\xf7\x40\x6e\x20\x51\xec\xec\xae\x4d\x68\x74\x3d\x89\xaa\x98\xd7\x70\x03\xc2\x24\xd6\x17\x4e\xfc\x3c\x57\x92\x07\x1a\xc5\x54\x3b\x12\xca\xa1\x8b\xbe\x0f\xef\xb9\xf1\x60\x18\xdf\x19\x96\x18\x41\x90\xdd\xa5\x86\x32\x1e\xc6\xee\xa8\xfe\x6a\x2b\x41\x66\x7f\x1c\xf1\x26\x81\x49\x82\xbf\xc4\x2e\x6d\x5b\x68\xce\x55\xd9\xc0\x43\x5e\x37\xed\x57\x5e\xe8\xd1\x75\xb9\x37\x13\xb2\xd0\x04\x1e\xef\x55\xae\x1e\x78\x5e\x74\x21\x95\x21\xe9\x8d\xaf\x2b\x8b\x45\x68\x39\x74\x02\xda\x7e\xf9\x02\x11\x04\x12\xac\x25\x5d\x5e\x1e\x9f\x2b\x7f\xc0\xd2\xc9\x4d\x44\xe3\x39\x65\xf6\xa8\x94\x99\xf4\x74\x2c\x14\xca\x99\x85\x93\x82\xd4\xa6\x1f\xbf\xdc\x3c\xef\x9d\xf9\x84\xfb\x06\x95\x50\x07\x16\x34\x5c\xa3\xe1\x1d\x57\x69\x28\x7a\x76\xef\xf8\x2d\x99\x0d\x6a\x40\x11\x49\x1d\x6f\x6f\xa6\x98\x09\x40\x0d\x6b\xdb\x72\x96\x4c\xf0\x88\x73\xd2\x45\xfd\x76\xa0\xd6\x02\x09\x53\xe6\xab\xdd\xca\xf5\x51\x61\xed\x83\x42\x9b\x39\x97\x0e\x22\x2b\xb5\x61\x9e\xea\x9c\x3a\x3e\xd1\x41\x12\xe2\xcd\xec\x92\xdd\xc7\x2e\xdc\x78\xe5\xee\xad\xd1\x01\x8b\x90\xf5\x6a\xb8\x82\xcf\xd5\x44\x3c\x9f\xe8\x20\x0b\xb5\x8d\x7d\x66\x39\xc0\x3a\x10\x04\xdb\x91\x79\x89\x92\x0d\x17\x5e\xa0\xd5\xad\xd7\x27\xed\x46\x00\x72\x77\x9a\xca\x2a\xee\x31\x0f\x9a\xd7\x21\x0f\x99\x39\xfd\xf2\xd2\xb4\xd5\x69\xf8\x4a\xeb\x98\x03\x5e\x5c\x09\xf9\xf1\x55\x54\xf5\xdc\xdc\xd1\x09\x49\x10\x62\xb2\xbd\x73\x8d\x79\x9d\x50\x82\x59\x0f\x76\xa6\x77\x17\xf1\xa3\xf7\xb7\xf8\x58\x2d\x43\x27\xd2\x6c\xfe\x0d\xb4\x1b\xd4\xc1\x30\x3e\x7d\x33\xba\x7f\x9a\x04\x11\x66\x30\x02\xca\x7d\x55\x39\x0c\x96\x26\x11\xc1\x9a\x40\x79\x39\x3d\x61\x7a\xdc\xf8\x23\x14\x30\xd2\x3d\xf3\xeb\xa6\x3e\xf2\x32\xff\xaf\x8f\xba\x34\x11\xd4\x59\x7e\xa1\x60\xb2\xe6\x12\xd6\xa7\xb3\x11\x04\x36\xc0\xc2\xb9\x9c\x50\x13\x08\x91\x60\x0b\xb6\x5c\xbd\xeb\x4d\x60\x88\xa6\x42\x33\x8b\xa8\xc5\x1f\x30\xae\xa6\x6b\x0a\x12\x6b\xe2\xe7\xea\x6c\xcc\x71\x72\x40\x01\x6a\x3f\x80\x45\x04\x19\x5e\x7f\x37\xa5\x75\x63\x93\x35\x38\x9a\x61\x43\xcf\x0a\x55\x21\x3a\xeb\xb1\xe2\xe5\xa2\x9d\x91\x4c\xd3\x2c\x92\xdc\xac\x4c\x05\xf0\xfa\xae\xce\xd5\x11\x9c\x67\xd3\x74\x68\x9a\x81\xd1\x6f\xf2\xda\xd5\xd3\xb7\x39\x4b\x28\xe1\x23\x75\x84\xa1\x0f\x20\xd1\x99\x8e\x30\xf2\xe1\x35\x3c\x57\xa5\x84\x06\x31\x19\x03\x90\x2b\x1a\x98\xbb\xff\xb0\x1f\xe2\x1a\xb0\xd5\x31\x54\xd8\x7d\xca\xcb\xfc\x74\x39\x99\xce\xcf\xa4\x44\xa3\x45\x2a\xb1\x3c\xb0\xfc\xfa\x38\x7a\x65\x85\x4e\x0c\x59\x65\x20\x43\xb3\xc3\xca\xc6\x0b\xbf\x36\xdd\x0f\xfe\x34\x46\xd6\x2a\xca\x58\xd4\x4b\xf5\xda\xc5\xcf\x9d\x5d\x25\x11\x56\x0a\x6c\x6b\xef\x2b\x2f\xde\xbd\x01\x70\x77\xd4\x98\x5b\x37\x0e\xf8\x3f\x54\xd6\xd0\x8a\x04\x98\xc8\xcb\x8b\x5b\x89\x34\x08\x99\x21\x2a\xc1\x09\x07\x4f\xc4\x3b\xec\x30\x1d\xb0\x34\x9e\x2a\x31\x8f\x12\x54\xad\x95\x61\x85\x6f\xfe\xf1\x65\xf3\x78\xef\xff\xaa\x13\x54\x25\xda\x43\x37\x9f\xbe\xdc\x59\xc1\x18\x1a\x04\x96\x2b\xd0\x98\xb7\x53\x2d\xe7\xd0\x68\xb7\x1d\x17\x1a\x04\xca\x68\x1a\x3c\x00\x74\x79\xe0\x3b\xd4\xed\x6d\x6d\x73\x74\x4b\x69\x10\x80\x96\x46\x72\xee\x97\xd5\xf8\xfa\xb0\xa5\x43\x83\x30\x33\x40\x9d\xfa\x06\x31\x38\x1c\xc4\x09\x32\x6a\x5f\xd1\x41\xcb\x72\xb0\x8c\xbc\x1e\x2f\xaf\x1f\x96\x1d\x69\x10\xaa\x20\xb5\x52\x00\x4f\xa8\x54\x6a\x66\xdd\x6f\xe3\x0b\x8e\x48\x8a\x09\xef\xc3\x76\x61\x7c\xb6\x51\x75\xc7\xdd\xbb\x38\x4c\x51\x4e\xc0\x36\xbd\x7e\x20\xb9\xbe\x07\x12\xd3\x20\x86\x0c\xa1\x2b\xcb\x57\x90\x6f\x38\x37\x7d\xb8\x47\x83\x24\x89\xf1\x41\x95\xd6\x2b\xd9\xe1\x14\x36\x1a\xf3\x09\x47\x9f\xa7\x41\x42\x98\xe8\x95\xf7\x37\x67\x28\xef\x72\x35\x38\x2a\x70\xbe\x34\xd0\x3e\xfc\x1a\x2d\x8e\x34\x48\x74\x98\x86\x56\xb3\x69\x80\xd2\x9f\x71\xe5\xa6\x41\xca\x00\x13\xdb\x6d\x55\x14\xc2\xa3\x59\x69\x90\xf2\x14\xa9\xae\xa8\x2a\x1a\x4e\x55\x45\x69\x40\xa2\xc8\x00\x29\xba\xdf\xb8\x2a\x55\x55\x37\xb8\x5c\xae\x7e\xe5\x4d\xdb\xcc\xaa\xb5\xd3\x80\x64\x21\x73\x32\x45\xfb\xea\x78\x2c\xe0\x2e\x6f\x77\x17\x74\x39\x73\x27\xa6\x31\xc7\x59\x62\x1e\x0f\xea\x8a\xff\x1e\x4d\x2e\x9a\x5a\x22\x3a\x1a\x06\xa3\x01\xba\xf5\xbb\x72\x27\x61\x89\x30\xa6\xaf\x45\xd5\x20\x6c\xbe\xba\xf8\xa7\x93\x45\x22\x09\x7d\x37\xb2\xfa\x39\x12\xf8\x9c\x8b\x3c\x68\x90\xa5\x80\x7d\x1b\x43\x27\xf8\xa0\x2f\x33\x79\xe9\xb3\x2c\x40\x5d\xea\xe6\x72\x3a\x55\x65\x18\xf8\xaf\xcf\xa8\xb9\x71\x45\x0e\x65\x7b\xf8\x39\x98\xc5\x34\xe0\x4a\xa1\xe5\x35\x76\x40\x18\x9d\xbc\x96\x22\x0c\xad\xf0\xdd\x7b\xf5\x06\x16\xa4\x3a\x55\xa3\xa1\x81\x48\x23\xd4\xd7\x3f\xf1\xf3\xd7\x01\xc0\x95\x06\x82\x66\xa6\x3c\x51\xf0\xf2\x4d\xd4\x00\x2a\x2f\x8f\x6a\xc0\xb0\x1e\xce\x43\x19\xa4\xd8\xf9\x82\xf6\xb5\x4b\x3b\xac\xeb\xd3\x68\x17\xa3\x81\x8c\x8d\x4d\xc2\xd7\x6b\x7e\x36\x38\x44\x7c\xc9\xf6\xc0\x4f\xd3\x91\x2a\x05\x13\xe6\x34\x6d\x5d\x5d\xd7\x2d\x9c\x1a\xcb\x84\x77\x43\x80\x64\x81\xad\xe3\x1d\x8e\x4e\xfe\xfd\x70\x9a\xc0\x8a\xbb\x71\x80\x11\xed\xdd\xe6\xfb\x76\xb7\x1a\xb8\xd5\xd3\x00\x44\x6c\x62\xec\x2e\x8c\xb7\x20\xd3\xb9\xb8\x8d\x06\x3a\x55\xde\xcd\xf9\xf7\xc3\x36\x9e\x7c\x87\x86\x14\xfb\xaf\x5f\xa0\x84\x26\x6f\x66\xeb\xfa\x66\x68\x18\xa4\x36\x7f\xab\xb9\x84\x6e\x9a\x4e\xb6\x2a\x1a\x76\xeb\x1f\x31\xf5\x88\x9d\xeb\x92\x87\xe3\x72\x37\x0d\x43\xc5\x51\xdb\x02\xc1\xcd\xfb\x6a\x7c\x6f\xc2\x88\x24\x88\x5f\xe7\x4a\x39\x57\xd2\x66\xf2\x2d\x11\x05\xac\xa7\x72\x57\xd2\xda\xd7\x3c\x9f\x46\x4e\x34\x8c\x84\xb0\x8a\xc3\x2d\xd4\x8b\x1a\x4a\x3e\x20\x52\x8e\x6f\x52\x18\x27\x44\x27\xbd\xab\x4a\x99\x9f\x78\xb1\x56\xdd\x8e\x6a\x39\xba\xb3\xe9\x23\x0d\x63\xaa\x10\x07\xeb\x4a\x1a\xab\xfd\xd7\x4f\x77\x5d\x1a\xc6\x52\x71\xe6\x89\xaf\xdf\xb1\xad\x38\xec\x88\xd3\x30\xe1\x41\xd4\x7b\x46\xf7\xf2\x06\xa3\xd8\x9e\x86\x69\x68\x6c\xaf\x15\x70\xa3\x1e\x70\x78\x0f\xfd\xb1\xc8\xc0\xf8\x5d\x68\xb0\x6b\xf9\xbc\x04\x04\x0d\xd3\x2c\xc2\x9a\x90\xaa\xee\x2e\xd7\xc9\x1d\xa4\x4a\xe0\x69\x96\xaf\x00\x2d\x7f\xed\x61\xea\xdd\x21\x89\xb6\x75\x2d\xff\x75\xd0\xde\x42\x80\x86\x14\x38\x09\x47\x28\xe8\xf1\xf4\x08\x59\x14\x27\xbe\xe2\xf6\xe8\x75\x5a\x68\xc8\x32\xc3\x46\xe3\x85\xe6\x78\xb0\xf5\x72\x0e\x34\x64\x5c\xe1\x4e\xb4\x05\x23\x9e\x80\x61\xd8\x84\x6c\x38\xf9\x61\x59\xa6\x31\xbc\x71\xf7\x60\x89\x80\xbf\xe2\x8e\x97\x6f\x53\x95\x37\x1a\xf2\x20\xc2\xb6\xea\xfd\xea\x71\xf1\xc7\xe1\x65\xb5\x5d\x6f\xee\xdd\x77\xf3\x24\x40\x8f\xf2\xd3\xa5\x38\xe8\xa2\xe2\xed\xe1\x7c\xe3\x01\x72\x4b\x4a\xa2\x21\x4f\x53\x6a\x61\x3a\xcf\x97\xd3\xcb\xc5\x1b\x60\xf8\x7b\xc1\x29\xb3\xe2\xf7\xc6\xee\xe6\xd6\xb9\xc6\x0e\x14\x49\x86\xaf\xf2\xe2\xfe\x7e\x7b\xd8\x7f\xfb\x72\xd8\x6c\xbf\xf8\x63\x34\xc3\x0c\xc4\xb8\x55\xcf\x52\xa5\x69\x28\x98\xc0\x8c\x5d\x5c\xfd\x44\x13\x42\x27\xcc\x77\x5b\xae\xa5\xca\x25\x6f\xc7\x7e\x8c\x34\x14\xca\xc8\xd7\x72\xa5\x5c\xbb\x6c\x72\x66\x19\x0b\xac\x66\x3c\x56\xc7\x1d\xb4\xdb\xbb\x01\xa3\xae\x9b\xd9\x30\x47\xf1\xa4\xa1\xcc\x08\xee\x33\x7f\xe6\xa6\x61\x87\xab\x98\xe3\x36\xb8\xfc\xe3\xc1\x05\x27\xa1\xa2\x14\x73\xa8\x97\xed\x7a\xb9\x3a\x2c\xbf\x2e\x9e\xbf\xac\xb0\x6d\x7a\xd8\xed\x57\x2f\xfd\x28\x13\x3d\xa0\x50\xbe\xd1\x8d\x77\xb7\x68\xea\xc5\x48\x43\xa5\x09\x7a\x8f\x70\x4c\x3f\x4d\x27\x06\x05\xec\x87\x53\x87\x4d\xae\x0d\xd2\x2c\x12\xbd\xe1\xe9\x4d\x57\xf1\x26\xfd\xa3\x21\x48\x4d\x8c\x08\xda\x3b\x94\x17\xa3\xe1\xbd\x74\xce\xdf\xe3\x1b\x05\x5a\xa1\x81\xfc\xd3\xb5\xf5\x85\x83\xb1\x0a\x14\xfb\xdb\x4c\xca\x46\xa3\x20\x54\xd4\x78\x79\x34\x2d\xd4\x03\xed\x5f\x1a\x05\xc2\x64\x9f\xf7\xab\xd5\x93\xff\x1b\x84\xb6\x6c\x54\x9f\xaa\x49\x0b\x87\x46\x61\x18\xc6\x89\xaf\x23\xdc\x2f\x36\x1f\xa8\x55\xb9\xe1\x11\x8d\x58\x8f\x89\x5e\xbe\xe6\xd2\xe7\x2d\x34\x8a\x52\x43\x1e\x6e\x4d\xb4\xb2\x5b\x2d\xfd\x11\x6e\x54\x2e\x3c\xd5\x0b\x8b\x4b\x66\xb2\xe7\x72\x8f\x70\xd0\x41\x29\x8d\x46\x71\x2c\x81\x3a\x3c\xea\xda\xc7\x8c\x51\x9c\x81\xd3\x39\xeb\x62\x22\xc1\x1b\x50\x3d\xd9\xdb\x0d\xe2\x4c\xdb\x64\xb8\xdb\xf7\x6b\x9e\x37\x37\x0b\x43\x94\xa4\x11\xea\x5a\x1a\xa5\xc4\xa9\x28\x4c\x1f\x45\x44\x69\x0a\xda\x54\x5f\x9b\xbc\x06\xe5\x00\x87\xf6\x68\x37\x4f\x06\xfb\x4b\x3d\x51\x13\xa6\x11\x65\x11\x76\x8a\xef\xa1\x19\x24\x79\x34\xa2\x0a\x52\xbb\x7b\xaf\x8e\xc7\x41\x7b\xc0\x1a\x4c\xd2\x28\xcb\x08\xde\xce\xfb\xba\x3a\x17\x23\x50\x0f\x8d\x32\x61\xa8\xdb\x45\x25\xdf\x30\x5d\x9e\x14\x6c\x68\x94\x81\x00\xfb\xa8\xbc\x02\xf3\x0b\xaf\xdb\xa1\x6c\x25\x8d\x44\x60\xb4\x51\x8d\xfc\xe5\xfe\xfb\xdd\x6a\x7e\x37\x89\x04\x31\xfe\xad\xf0\xab\x85\x12\x9d\xb4\x7b\x62\x3b\x8d\x64\x62\x9a\x3e\xcb\xaa\x86\x2e\x72\xc2\xca\xc5\x5f\xd3\x4c\xa0\x91\x64\x21\x16\x7f\x14\x9c\x06\xd6\x7c\xa3\x8e\xfa\xdf\x46\x2f\x87\x14\x1c\x67\xd9\x7a\xb9\x39\xbc\x7c\x5d\xec\x56\xe1\x61\xf1\xd4\x0b\x8b\xd0\x08\x12\x63\xe5\xb2\x3e\x9d\x0a\xbe\x96\x1f\x6b\x53\xce\x5f\x10\x88\x04\x5b\x75\xf7\xd5\x71\xef\x78\x52\xee\xd4\x3a\xd1\x18\x53\x36\x31\xb3\x2a\x7e\xee\x40\x6a\x48\xd5\x27\xfe\xcb\x4a\x02\xba\x03\x94\xa3\x09\x9e\x69\x50\xda\xbd\xb3\xd7\x5b\xa0\x91\xce\x32\x2e\x47\xfb\x3d\x0f\x99\x3f\xa8\x8c\xd8\xb0\x82\x77\x28\xaa\x33\xd4\x4b\x9f\x06\x44\x1a\x20\xb5\x2b\x41\x83\x77\xbd\x39\xf6\xf4\x03\x1a\x07\x51\x9a\x58\x07\x96\x2e\xc7\xdd\x14\xea\x56\xa3\x8b\xc6\x01\x30\xea\x79\x77\x9b\x12\x86\x12\xd6\x34\x0e\x13\x83\xb7\x6d\xa0\x35\x56\x2c\x08\x63\xc8\xcb\xe3\x9c\x4a\xf4\xf8\x36\xc6\x21\xe1\x26\xaa\x6c\xa0\xf5\xc9\x43\x1c\x8a\x00\x27\xcc\xd7\x2e\xf2\xe1\xdf\x72\xf9\x56\x69\x3d\x78\x97\xe2\x50\x08\x4c\xf8\xe5\x79\x4c\x57\xa6\x71\x14\xe8\xcc\x8a\x32\x75\xf7\xcf\x80\x0e\x31\x03\xbd\x9b\xea\x1e\xd3\x38\x22\x0c\xb9\xa2\x2e\x4a\xd8\x20\x7b\x7e\xf2\xe3\x23\x16\x20\xde\xf8\xd2\x58\x3f\x09\xdb\xea\x6e\xa6\xe3\x32\x30\x9e\xad\xf2\x15\xd4\xa5\x80\x25\x2f\x8a\xa1\x9c\xf9\xec\x0b\x35\xd9\x4f\xe2\x88\x53\x7c\x94\xe7\x7a\x90\xf8\x34\x2f\xc6\x4c\xd5\xfd\xfa\x38\x09\x11\x79\x62\x39\x3b\xcf\xf0\xab\xbd\x1f\xb7\x7d\xec\xc0\x84\x86\x18\x4e\x1f\xba\x8c\xee\x19\x89\x8f\x5d\x18\xd7\xdc\x5d\x57\xb5\xdc\x57\xe6\x2f\xa6\x4e\xe6\xce\x9d\x0a\x67\x46\x62\xb4\xe7\x7a\x6b\xb7\xe1\xf4\x8a\x53\x4d\x08\xed\xf3\x1c\x94\xc2\xae\x61\xfa\x30\x08\xe3\x68\xc1\x9a\x0f\xfd\x92\x2d\x92\xc5\xb6\xb0\x69\x4c\x74\x60\x94\x58\xb1\xba\xe7\xb6\xe3\x98\x52\x89\x8c\x3a\x0b\xc7\xb6\xfb\xf1\xe4\x07\xb2\x58\xe2\x8a\x63\x1c\x45\x46\x35\x9a\xd1\xe5\x32\x46\x84\x95\x2b\x79\x1c\x4b\xb5\x8c\x2f\x98\x71\x8a\x15\x11\xbb\xd5\x5d\xca\x23\xdc\x92\xc9\x3e\x2d\x95\xd3\x98\x49\x81\x30\x4b\x84\x0c\x3d\x56\xc7\x2e\x48\xbd\x91\x62\x9e\xf9\x98\xb2\x9c\xc4\x2e\xc4\xcd\xcb\xa3\xc7\x40\xd3\x38\x63\x9a\xc7\x83\x16\xd0\xf6\x23\x3e\x0d\x8d\xb3\x2c\x75\x6e\xe0\xbb\xbf\xc0\xb3\x75\x9f\xe2\x06\x11\x67\x8b\x81\x3b\xe8\x1f\x03\xcf\x42\x07\xc4\xea\x76\xfe\xf1\xe7\x04\x55\x94\x8e\xe3\x2b\xb3\x49\x3c\xc3\xcf\x2d\xbc\xe7\x4d\x5e\x95\xcf\x55\x8b\x95\xcd\x9e\xce\x41\x63\x91\x19\x2f\x63\x81\xaf\xde\x4c\xc3\x85\xc6\x32\x88\x31\xb0\x7a\xd9\xae\xb0\x36\x83\xf9\xaf\x97\x82\xa6\xb1\x8c\x25\xd6\x0a\xcf\x79\x79\xb4\xd3\x76\x7c\x27\x24\x89\x71\xc0\x0b\xbf\xa2\x2e\xd2\xa7\xfb\x4b\x2c\xb3\xcc\xf0\x2d\x57\xfb\xc5\xfd\xe6\xf1\x71\xb1\xf5\x5f\x24\x78\x3c\xa2\xcb\xdf\x82\xe8\x69\x2c\x65\x04\xc2\x4a\x85\x80\x8d\x59\xa6\x71\x54\x2c\xb5\x59\x48\x56\x4f\xeb\xe1\x76\x11\x2b\x48\xe2\x01\x77\xd5\x85\x19\x97\x1b\x45\x09\x1a\x43\x1a\x10\xfb\x26\x6c\xad\x11\x58\xc9\x8f\x50\x1b\x8d\xc2\xf1\x35\x69\x19\xc8\x78\x40\x14\xb8\xbb\x22\xde\x79\x38\x2f\x92\x40\x02\xf2\x80\xee\x77\xc3\x2b\x4a\x02\x9d\x68\x53\x76\xaf\xd5\x01\xab\xbc\x07\x94\x5c\x74\xc7\x43\xa2\x31\x21\x1b\x62\xee\xd8\x2d\xe6\x8e\x26\x51\xa4\xa2\xcc\x42\x37\x46\x12\xdc\x34\x89\x44\x96\xc4\xb8\x36\x9c\xb9\x7c\xe3\x47\xac\x6d\xee\xa0\xbd\x9c\xfd\x08\x25\x90\xa8\x6c\x8c\xcf\x87\x02\x07\x34\x89\x74\x88\xcb\xd4\x50\x74\xf2\xcf\xe4\xaf\xff\xea\xbf\xf6\x2b\x62\x66\x42\x7b\x43\x03\xee\xb1\x75\xbf\x8d\x87\x25\x41\x8a\xc3\x1e\x78\x21\xab\xd2\x82\x8f\xed\xb1\x94\xa4\x44\xf8\xc0\x6f\x7d\x32\x32\xcf\x37\xa5\xac\x84\xc4\x04\x11\xc4\x4f\xbc\x79\xe5\x75\x2e\xf6\x38\x9f\x7c\xbe\x9d\x50\xaa\x91\x7f\xe0\xca\x01\x6e\xb5\x1f\x3d\xf0\x84\x66\x86\xf4\x81\x53\xe5\xf0\xb4\x7e\xf6\x1f\xd7\x71\x68\x82\x87\x41\x37\x71\x3c\x01\x12\x16\xc4\x0a\x7d\x8d\x2f\xb8\x70\x4c\x00\x84\x93\xc1\x59\x98\x22\x7d\xb2\x87\x35\x7d\x0a\x06\xa5\x49\x96\x19\x9e\xa0\xdb\x68\xbd\x61\xe7\x84\x54\x3d\xff\x7f\xe7\x2f\x82\x87\x19\x6e\x6e\x8b\xbc\x56\x75\x65\xe5\xa1\xc7\x2e\x56\xf3\x75\xce\x84\x27\x4c\x40\x6f\x8d\x32\x05\x15\x4d\xbe\x26\x65\x89\xcd\x32\xbe\x14\x5c\xe5\xbc\xad\x6a\x47\x7e\x98\x3c\x46\xce\x12\x54\x7a\x40\xf2\xe5\x27\xb5\xb4\x84\x8b\x00\x3b\xc6\x4e\xc5\x12\x23\xfb\x43\x14\x1c\xfe\xce\xcb\x8b\x17\x2f\xa0\x09\x97\x19\x36\x7f\xb6\x28\x26\xff\x58\x5d\x79\xd1\x5e\x77\xa8\xa7\x36\x9a\xaf\x22\x63\xa1\xc5\xc1\x3d\x00\x6c\x41\xe6\xe7\x7c\xaa\xad\xdf\x8d\x52\xc6\xd3\x84\x6b\xd8\x57\xbb\x8b\x30\x68\xd5\xf9\xbb\x2b\x38\x15\x4e\xae\xc7\x89\xcb\x18\x49\xb4\xdf\xa6\x03\x01\xa5\xa6\xbf\x1b\xf7\xb2\x31\x30\xc1\x8e\x91\xca\x60\x02\xba\x7d\xa2\x8b\x56\xb6\x97\xd2\xcf\x64\x09\x02\xf7\x90\x89\x7b\xf5\xf2\xeb\x7a\xd9\x57\x3c\x13\x45\x8c\x47\xd1\x11\xda\x47\xe0\x53\xa3\x32\x9a\x00\x21\xca\x88\x75\xdf\xd9\x8a\x5a\x7f\x85\x40\x00\x43\xc2\x2f\x77\x4f\xa3\xbb\xa6\x63\x8d\x14\x64\xdc\x71\x7f\x37\x78\xc9\x01\x8b\x92\x26\x9a\x01\x76\x5f\x71\xed\xbb\xe7\x86\x63\x39\x90\x83\xa5\x89\xd6\x42\xa5\xde\x5e\xa9\x9d\x85\x3e\xd1\x34\x10\xa9\x0c\x3c\xab\xfe\xdf\xd0\xc3\x1a\x87\x8b\x71\x1a\x26\x91\x11\x3e\x6d\x6c\x39\xf6\x33\xf0\x23\x4d\xc3\x8c\xe3\x59\x0f\x2e\x2c\x18\xd2\x59\xe6\x48\x41\x34\x0d\x75\x44\x4d\x82\x86\x1c\xca\xf1\x4a\x96\x46\x71\x2a\x6c\x36\x38\xa1\x9d\xd0\x34\x0e\x0c\x36\xb2\x06\x09\x65\x3b\x52\xe9\xec\x0e\x5a\xd4\x28\x82\xe2\xe3\x43\x2e\x2b\x5c\xcc\x67\xda\x83\x34\x4d\xba\x6c\xd7\x14\xf3\xaa\x77\x98\x38\x63\xd1\x34\xe1\x09\x38\xd3\x46\x5e\x40\x64\xb6\x1f\xd5\x2f\xfd\x69\x1a\x31\x94\xc0\x15\x97\xeb\xdd\x25\x2f\xd4\x8c\xe9\x87\x1b\x19\x9b\x26\xef\x4e\xbe\xd6\x55\x37\xce\xaf\xcc\x69\x4a\x28\x32\x3d\xbf\xbc\x8c\x76\xbe\x34\xe5\x46\x38\xa7\xe5\x6f\x80\xa4\x7f\x57\x73\xb9\xe9\x1c\xa4\x29\x04\xf8\xe2\x3e\x7d\x1b\x9d\x81\x44\xb1\xb2\x7e\xe6\x46\x32\xfb\x84\x65\xd0\x53\xde\x03\x4a\x27\x3f\x99\x06\xa9\xa4\x9e\x4d\xfa\xc0\xdf\xe0\xab\x79\xc5\xdd\xf1\x28\x8a\xfd\xeb\x33\xb5\xb7\xa7\x29\x4d\x42\xac\xb7\x70\x21\x47\x17\x42\x59\x8c\x30\xe5\x3f\xaa\xb6\xe6\xfe\x8f\x99\x61\x6c\x20\xc3\xe2\xee\x72\x85\x7a\x94\xcb\xa5\x54\x86\xd4\xc8\x01\x20\x94\x74\xc0\xc7\x46\xf1\x28\x04\xd0\x77\xcf\xb5\x59\x2f\x37\x7f\x2a\xe2\xf2\xd1\xbf\xe3\xeb\x67\x2a\x49\xd2\xb1\x8c\x6b\x6e\x08\x8b\xb3\x20\x27\x9a\x66\x4a\xe3\x7b\xea\xba\xc9\xcd\x5d\xf7\xda\xed\xf2\xff\xfa\x2b\xe5\x01\x35\x32\x7d\xdd\x63\xf4\xf7\x91\x6b\xcb\x7c\x2f\x15\xca\x6e\xe8\xa9\x52\x20\x4d\x45\x42\xd0\x7b\xee\xa0\xc0\xac\xcc\xb7\xad\xb3\xf1\xc5\x0b\x95\xe0\x0a\x2d\x3d\x82\xf3\xbf\x30\x3d\xa7\xa6\xd8\xfc\x5e\xed\x56\xbf\xaf\x9e\xf7\x7f\xe0\x3f\xbf\xf9\x83\x0c\x19\x18\xf0\xcb\xf1\xd1\xdd\x16\x66\x07\x48\x65\xac\xe3\xfd\x6a\xb0\x2e\x77\xdd\xa6\x55\xcf\x37\x7c\x52\x15\x52\x94\x19\x7e\x87\xf7\x5e\xb6\x9e\xa6\x4a\x8a\x70\x62\x05\x64\xa4\x5d\x86\x0f\x18\x48\x86\x15\xd0\x7d\x7d\x1d\x44\x1f\x29\xf0\x0c\x81\xe7\x67\x84\xf5\x39\xf7\x27\x77\x50\x67\xc2\x16\xda\xe5\xdb\xee\x3c\x65\xd2\xd0\x54\x07\x11\xb6\x98\xbe\xd7\xbc\xcc\x2f\xa7\x97\xe2\xe2\xd7\x0d\x1d\x12\x0c\xad\xcf\xc0\xeb\x62\x37\x25\x21\xd1\x54\x13\x88\x3c\x1d\xe8\x49\xbb\x7b\x42\x82\x4c\x86\xd6\xfd\x6f\x86\xec\x45\x49\xc0\x43\x74\xc1\xe0\x6d\xcb\xe5\xab\x9b\x75\xb7\xa8\xe1\x4f\xa3\x04\x12\xa8\x08\xb1\x03\x77\x9b\xcd\xb7\xf5\x6a\x37\xfe\x59\x24\x50\x1c\x09\x42\xb6\x5a\xf9\xf2\x89\x26\x15\x45\x57\x47\xbc\xe0\xba\x7a\x1f\x2b\xbd\x50\xd2\x45\x31\xa6\xf3\x51\x58\x99\x89\xfe\x10\x00\x36\xd4\x0c\xed\x67\x5a\xdc\x9f\x9f\x4e\x24\x4a\x02\x04\x62\x4a\x5e\xc8\xff\xfb\x63\x69\x92\xab\xbb\xeb\xac\xaa\xe6\xf4\xa3\x24\xd4\xc2\x60\x79\x96\x03\x6c\x5f\xaf\x98\x76\x77\x7d\xe4\xa5\xea\x69\xa1\x94\xc4\x54\x20\x1a\xde\xc0\xba\x86\x74\xc9\xf1\xa4\x25\x31\xf3\xb3\x7c\xcb\xb5\x36\xa5\xc1\x47\xd0\x6e\x2b\x25\x69\x68\x5c\x78\x4b\x94\x65\xb1\xcc\x0c\x7f\x90\x9a\xf6\x7d\x8f\x0c\x20\xa9\x90\x68\x18\x8b\x3e\xcd\x08\x49\xf2\x68\x40\x4a\x52\x49\x90\x62\x27\xa0\xdd\x94\xf7\xd5\x7f\xa7\x95\x09\x92\x4a\x81\x22\x68\xdc\xa0\xe2\x9e\xf2\xd1\x4c\x20\x24\x0e\x68\x37\x5d\xaa\x9f\x25\xd4\x07\xff\x57\x45\xb3\x91\x9e\xf3\xaa\xfc\xbc\x0d\x45\xa8\x48\x29\x9b\x18\x95\x2f\x4a\xb5\x68\x9a\xfc\x38\x04\x11\xff\xb5\xff\x1d\x96\x39\x27\x2f\x2b\xcb\x52\x6c\x45\x3a\x0c\xd6\xa0\xc2\x31\x7e\x0e\x59\x92\x64\x26\xed\x3a\x20\x0a\xf8\x60\x08\x2c\xf3\x25\x55\xf7\x19\xc2\x31\x8b\x33\x35\xa1\x1f\xd0\xc5\x49\x03\x4d\xd9\x5e\x90\x28\x74\xbf\xbb\x5b\xa2\x2d\x72\xda\xfb\x64\xf9\x7a\x06\xc9\x34\xc1\xb2\xd0\xd9\x20\x84\x0f\x5e\xc8\xb6\x4f\xd3\xed\x48\x2e\xa4\xc8\xfa\x68\x00\xab\xf8\xdd\xee\x10\xb9\x53\x09\x16\x1a\x21\x0b\xa3\x31\xf3\xd7\x66\xb6\x94\x01\xc2\x6a\x34\xcf\xb1\xc3\x5a\x5d\xda\x2d\xf0\xc6\x11\x87\x28\x51\x2a\x06\xed\xdb\xb4\xae\x43\xe5\x2a\x56\x04\x62\xc3\xdb\xf9\x5a\x95\x55\x71\x29\x2e\xee\x63\x90\x02\x16\xa9\x0f\x87\xfb\xd5\xdd\xf7\x2f\x87\xbb\xc5\xa3\x3f\x94\x45\x88\x50\xb7\xf0\x6c\x67\xe8\xfc\x69\x51\x82\x00\x17\x18\x0b\x99\x1f\xf7\x52\xc3\x5a\x56\x8b\x52\x61\x5c\xe5\x95\xe5\x29\x01\x09\xce\xf7\xc3\xe0\xb9\x71\xc0\xe4\x85\x07\x15\xe0\x32\xec\x14\x8d\x86\xa1\x02\xd1\x01\x8b\xed\x82\xda\x6d\x64\xcf\x97\xd3\x46\x2f\x79\xdd\x4f\x36\x1d\x1b\x77\xe6\xed\xea\x61\xb5\xdd\xae\xee\x0d\x48\xe6\xf0\xb2\xda\x3e\xad\x1f\x9d\xf1\x09\x25\x9a\x44\xd2\x10\x9a\x30\x05\x1a\x5f\x02\x0d\x62\x23\xf5\x6e\xd6\x0a\x94\xbf\x6f\x87\x78\x58\x3b\x2c\x0c\x8c\x22\xe4\x89\xd7\x75\xce\x8f\xf0\x52\x57\x95\x1e\x36\x24\x68\x18\x71\xe3\xed\x79\xbf\xef\x15\xe5\x46\x8f\x98\x86\x2c\xcd\x7c\x9c\xb3\x40\xe4\x4d\x85\xa6\xef\xee\x38\x84\x59\xec\x96\x3a\xec\xf1\x2f\x2b\x35\xe2\x5e\x50\x1a\x45\x3a\x9b\x6c\xbd\xef\xf9\x14\x97\x4a\x69\x2c\x8d\x0c\xbd\xe8\x5e\xce\x55\xa9\x1a\xf7\x72\xd2\x58\x6b\xcc\x0e\xfe\x73\x81\xfa\x6a\x26\xff\xf7\x72\xf1\x93\xbf\xc1\xee\x2d\x2f\x8a\x6e\xa5\x37\xd1\xe5\x3f\xc3\xd0\x76\x07\x69\x12\x48\x6d\x25\x3a\x81\x17\x2f\xfc\x3c\xd6\x39\xa7\x34\x0d\x01\x3b\xb7\xd5\xc4\x63\xe7\x96\xfd\x4a\xbb\x18\xd0\x65\x4d\x2f\x08\xc0\xac\xf3\x89\xd8\x3f\xed\x36\x68\x9c\x8c\xcb\xc5\xd0\x28\x95\x52\xc2\x53\x64\x02\x9a\x92\x96\x57\x34\x77\x47\x35\xc7\x66\xdd\xa2\x38\xbf\x72\x59\x95\xfd\x73\x70\x24\xe9\xd4\xfd\x22\x4a\x8d\x00\x20\x3e\xeb\x71\x87\x99\x52\x61\x9c\x72\x1e\xab\xe3\xd6\x72\xaf\x41\xad\x87\x84\x4f\x92\x8c\xaa\xc5\x94\xaa\x80\x04\xbe\xa4\xf2\x52\x57\xdd\xeb\x5c\x2f\x6e\x64\xdc\x28\x65\xa1\x8e\x0d\xa1\xf0\x7c\x06\xf5\xdd\x25\x20\x34\xb3\x3e\x12\x67\x93\x8a\x99\xc2\xf2\x78\x53\xa6\x19\x67\x38\x93\x79\x6e\x4a\x6b\x03\xac\x3e\xa5\x9c\x28\xce\xdd\x0f\xf2\xfe\xeb\x93\xb7\x98\x67\x61\x64\xd6\x38\xd0\x79\xd1\xb7\x99\x29\xe7\x80\xdd\x6c\x04\xa6\xb8\x24\xe8\xa9\x72\x4e\xff\x94\x8a\x80\x1a\x8c\x3e\xf7\xc6\xf9\x93\x5f\x26\x98\xc2\x97\x3b\x3f\x57\x3f\x7f\xb3\x82\x1b\xc3\x7b\x24\x78\x24\xbd\xb2\xe6\x5a\x3f\xc1\x91\xff\xdd\x83\xf8\xfa\x56\x30\x95\x24\x31\x0a\x55\x68\xc7\xf5\xdb\xcc\xd2\x4f\xa5\xe6\x58\x3a\xfa\x09\xf9\xb8\x09\x41\x95\x88\x62\x23\x29\xfd\xed\x8f\xa5\x37\x99\x1e\x5f\xa8\x52\xa9\x93\x3b\xd8\xf5\xfe\xa6\xe3\x1b\xa5\xb4\x21\x75\x3c\x5e\xdf\xde\xc0\xf6\x57\x06\xfa\x63\x73\xbd\xee\xd1\x7c\x80\x20\xc2\xc5\xfc\x98\x77\xa1\xd5\x00\x38\xfa\x41\x41\x87\x82\x8e\xf0\x85\xef\x76\x1c\x2c\xe2\xd8\xbf\xeb\xcc\x08\x87\x1e\xf9\x09\x5d\x81\xa7\xf5\x5b\xaa\x75\x84\xbe\x82\xd2\x60\x49\x2c\x21\xab\xf5\x2f\xb3\xd6\x0c\xbb\xf5\x76\x5b\xdb\x99\x00\x61\xd0\xb6\x62\x41\x4c\x11\xaf\x67\x9c\x8f\xf3\xf6\xfa\x52\x55\xc5\x00\xe0\xe6\x86\x25\x89\x09\x4e\xba\xe4\xe3\xc9\x58\xc3\xf9\x63\x9a\x38\x33\xc9\x7b\x68\xda\xda\x4c\xfe\x59\x9c\x05\x0b\x83\x18\x2f\xc8\xec\xdb\x56\xab\xb3\xa7\x28\xf8\x5b\xc2\x42\xc5\xa4\x2b\x63\xb8\x7e\x3c\x8b\x28\x30\xa3\x45\x69\xda\xdf\x73\x68\x2c\x16\x65\x21\x2a\xab\x9c\xeb\xea\x04\xed\xeb\xe4\x02\x22\x11\xd2\x21\x0a\xa7\xdb\x6c\x8d\xdf\x78\x2b\x5f\xe7\xe0\xab\x73\xff\x65\xcf\x15\x0b\xa3\x8b\x6e\x56\x74\xa7\x5c\xb9\xaf\x7a\xdf\x17\xca\x92\x38\x43\x7d\xe3\xdd\x7e\xb1\x5f\x1d\x5e\x16\x7f\x6c\xbe\xef\xfd\x31\x9e\x61\x17\xbb\x7d\xcd\x9b\x9f\xde\x2f\x88\xb2\x34\xd0\x48\xf2\xda\x5d\xca\xf2\xea\xff\x48\x22\x69\x0a\x9c\x66\xb7\xdc\x62\xd9\x03\xf3\xe5\xe6\xc5\x73\x4c\xef\x6d\x92\x68\x16\x35\xff\x59\xc1\x31\x23\xf2\x51\x4d\xb7\x36\x6d\x0d\xd8\xc3\x8f\x51\xa6\xcc\xd0\x40\xfb\xbd\xec\x56\x72\xe5\x84\xf7\xac\x64\xed\x8c\xd1\x3e\x65\x24\x4c\x02\x2b\xbb\x7c\x97\x57\x76\xa5\x1d\x4e\x57\x46\x62\x13\xc1\x9b\x65\x03\x15\x14\xf6\xd5\x7a\xb9\xe9\x7e\xb0\xdb\x96\x18\x61\x04\x4c\x55\x1a\x2b\x5f\x43\x28\xfa\xe4\xf9\xd1\x28\x74\x1e\x0b\xbb\x13\xaf\xdb\xdd\x2b\xef\x66\xde\xdd\x75\x3d\x99\xc5\x8c\xc6\x22\xf5\xf6\x17\xe8\x3b\xef\x57\x3c\x46\x13\x53\xab\xcf\x9b\x1d\x56\x38\xa6\x20\x77\xca\x28\x49\xb1\xc9\x74\xd0\x55\x7d\x39\xad\x95\xf1\x78\x1e\xed\x7b\x8c\x32\x66\x12\x61\x07\x58\xff\xc9\x6b\xf5\x50\x73\x39\x9c\x39\x54\xa4\x06\xaa\xf0\xf8\x6d\xa6\x8f\xcd\x98\x48\xf1\x97\xc3\x29\x6f\x17\x35\xf0\xdd\x00\x7b\x34\xda\x15\x99\xd0\x80\x06\x09\xdc\xbe\x68\xb3\x91\x9a\x13\x3a\xea\x7f\x88\x0c\x43\x0c\xa4\x4c\x17\xec\x71\x79\x3f\xbf\x06\x31\x19\x85\x18\x5a\xb4\xfc\x0d\x06\xc8\xbb\xcf\xdb\x74\x4c\xc6\x09\x32\xf2\x04\xb4\xcd\x46\xeb\xc9\x4d\x94\xc0\x94\x93\x20\xe5\x4e\x51\x6e\x04\x2e\x64\x12\x32\x8c\x42\xbf\x6d\xbe\xfd\xe6\xff\xc4\xb1\x34\x2b\x86\x5d\x60\xa6\x48\x1c\xd8\x80\xd0\x78\x63\xb9\x28\x7e\x3a\xff\x95\x22\xa8\x3e\x70\xb2\x34\xc7\xbd\x03\xf6\xf5\x8f\x1f\x62\x8e\x13\x77\xb5\xdb\xbc\x58\xdc\xe8\xf8\x67\xe9\x34\x41\x05\x87\x2e\x21\xe9\xd2\x75\x74\xb4\x1d\x7f\x8d\x56\x19\xf6\x0f\x4c\x89\xec\x29\xff\x40\x52\x96\x32\xad\x53\x16\xf6\x02\xa6\x55\xd3\xc5\x50\xd7\xa2\xe2\x0a\x51\x0f\xb3\xf5\xd9\x2c\xe0\x1c\xf3\xba\x7f\x57\x79\xf9\xd4\xfd\xdc\xa1\x09\xe7\xe8\x5a\xb3\x50\x10\x94\x50\xfb\x01\x27\x5e\xbb\x35\x24\x8b\x02\x02\x7d\x16\xb2\x2a\x40\xde\x12\x4a\x68\x16\x85\x81\x53\xc0\x37\x35\x9e\xc7\xbc\x7c\x1b\xdf\x8b\x2c\x4a\x18\x70\xd7\xe0\x2b\x70\x57\xf0\x44\xd9\x49\x33\x30\x8b\x03\x15\x19\xd4\x50\x91\xbf\x5b\x6c\x82\xbb\xa2\x38\x26\x81\xbd\x0f\x9b\x77\xa8\x6d\xef\xed\xc7\x6a\xdd\x2b\x0c\x76\x83\x54\x6a\x4b\x95\x6b\x59\xe1\x6a\x31\xbb\x91\x64\x31\x13\x58\xb3\x3d\xe5\x25\x16\xc4\x40\x61\x65\x6d\x5d\xf6\x6b\xa1\x3b\x67\xc2\xa8\xe2\x3e\xf6\x28\xdf\x79\x9d\x73\x1f\x3a\x65\x69\x00\xa8\x27\x5e\x54\xc7\x11\xc6\x28\x4b\xa5\xb1\x41\x7f\xc8\xbd\x21\xe8\xf8\xe6\x91\x20\x03\x0b\xea\xda\xd4\x4b\x2e\x5f\xe1\x1e\x1a\xc4\x2c\x81\xda\xc2\xb9\xaa\x5b\x63\x5a\xed\x86\x27\x46\xe8\x1f\xc5\x3e\xa6\x3d\x8b\x8c\xa4\xd4\x7a\x1e\x2e\x0b\xc0\x25\x0d\xb3\x7f\x2f\xaa\x3a\xf9\xf9\x84\x85\xa8\xa6\xbc\x58\x3d\x0c\x61\xd8\x19\xc9\x52\xfc\xad\x9e\x54\x6f\x28\x3c\x33\x00\xb1\x8c\x70\xb7\xe6\xea\x41\xf7\x78\xbe\x0e\x93\x11\x99\x18\x87\xc8\x21\xed\x69\xc8\x3c\x4e\x82\xc9\xab\x80\x18\x01\x6c\x1d\x60\x5a\xf5\x80\x1b\xf6\x34\x1b\x76\x5b\x69\x46\x93\xcc\xc8\x17\xe6\xc7\x7b\x44\x57\xe0\x7b\x66\x63\xb8\x45\xa9\x10\xb9\xe2\xc6\x52\xea\x92\xcb\xc7\xaa\x6d\xa1\xbe\x6e\x06\x6c\x29\x36\x5e\x0f\x27\x09\x6c\x46\x33\xc0\x16\xdd\xe3\xe6\xcb\xe1\x0e\xda\x1f\x9f\xd0\x0f\x47\xcb\x6f\x46\x41\x86\xc6\x42\x0d\xf7\x43\x2b\xd8\x60\x0f\xb2\x84\xc7\x62\x60\xe7\x82\x1b\x41\x55\xcf\x19\x35\xcc\x75\x41\x32\x46\x12\x62\xf9\x9a\xbb\xcb\xb9\x7b\x75\x60\x8c\x7a\x1a\x3e\x38\xa6\x13\xd3\xd9\x07\x71\xbe\xb8\x35\x2d\xcb\x82\x34\x23\x23\x29\xcc\x45\xdf\xe0\x1e\x3f\x9a\x2c\x62\x58\xf8\x3a\x9b\xf0\x79\x5d\x36\x2d\x2f\x8a\x13\x78\x3d\x61\x9a\x65\x44\x23\x0d\xd9\xe2\x03\x5b\xd7\x53\x1d\xdf\x93\x4c\xc7\xc8\x0b\xed\x5e\xa0\xbc\x3c\x3e\xf1\x5f\x03\xf2\x23\xcd\x78\x68\x5e\x81\x4b\xe9\x55\xac\xdc\x11\x61\x4c\x6b\xc4\xa5\x30\x72\x4b\x86\x27\x36\x07\x51\x9d\x46\x5d\x99\x48\x62\x66\x01\xbe\x77\xb9\xc2\x26\xf8\x74\xf7\xce\x54\xc0\x48\xd0\xd7\x96\x87\xb9\x52\x06\x81\xc9\x13\x8f\x56\xe2\x7b\xba\x26\x42\x24\x54\x6f\xcd\xd3\xed\xc9\xd3\x01\x94\x22\x42\x7d\x85\xe2\xc7\xa5\xbc\xee\xb8\xf6\xb3\x5c\x73\x8e\x0b\xd8\xa5\x3c\xf3\x4b\x33\xc6\x36\x64\x5a\xa4\xb1\x45\xae\x7c\xdf\xdd\xe3\xb7\xcf\xb4\x4f\x32\xad\x8d\x32\xd5\x41\xc1\xfb\x6f\xfd\xdf\x32\xab\xd9\xe2\xb4\x08\xea\xe6\x11\xca\xa3\x53\x6e\xa2\x3c\x08\x23\xac\x48\x22\x85\x65\xd2\x71\xe4\x41\x18\x63\x54\xcc\xd5\xbf\x2f\x4d\xfb\x95\xd7\x6a\xc9\xcf\xd3\x31\x91\x19\xd3\xbd\xdc\xf7\xbc\xce\xab\xf1\x2b\x38\x57\x10\xe2\x4e\x39\x0c\x7d\x37\x5a\x5e\x54\x47\x53\x55\x98\x76\x0a\xdd\xf0\x54\xa3\xca\x92\x25\x76\xf8\xfd\x79\x32\x2c\xa4\x8a\xc5\x36\x2a\xda\xf3\xe6\xcd\xd9\x9c\xcf\x16\xa5\x78\x94\x0a\x6c\xf6\xfd\xfd\xd2\xb4\x46\xc0\x6e\x82\x56\xe0\x11\x18\xf1\x79\x9d\x37\xaf\x82\x97\x6e\x97\xe4\x71\xcc\x22\x23\xe5\xc8\x6f\xe0\x38\x6e\x48\x9a\xa0\x94\xfe\xc9\xc0\x5a\xec\xcf\x32\x08\xbe\x27\x7e\x9e\x5c\x78\x2c\x23\xcc\x6f\x5a\x68\xda\x07\x9e\x17\x08\x73\xc3\x6a\x62\x75\xc1\x8a\xc5\x81\xbb\x1c\xed\xd0\x56\x86\xaf\x8e\x92\xe5\xee\x8a\x92\xd4\xdb\x65\x2f\xf3\x1a\xf3\xf8\xbc\x2a\x47\x1d\x31\x9e\x64\x32\x32\x42\x50\x97\xa6\xed\x05\x59\x3e\x4b\x31\x79\xa2\x32\x7c\xab\x1f\xd7\xff\xf3\x7d\x7d\x3f\x26\x6d\x71\x12\x70\x67\x96\xdf\xab\x78\xcf\xf0\x59\x29\x27\x40\x91\x81\xb1\xda\x7f\x3d\x7c\xdf\xdd\x1f\x06\x79\x20\xa7\x41\x12\x5b\xb9\x8e\x97\x1a\x64\x75\x3a\xe5\xad\xe9\x34\x76\xaf\xdc\x69\x46\x50\xd2\x7e\x90\xc5\x86\x5e\xbe\x70\x99\x11\x67\x3c\x95\x16\x3d\xb0\xcf\x27\x9a\x34\x94\x67\x29\xc7\x72\xc4\x8f\xaf\x9b\x47\x0b\xc5\xfa\xba\x5d\xed\xbe\x7a\xfa\x25\xe5\x3c\xe6\x4e\x2c\xce\xf6\xb7\x87\x92\x00\x94\x73\x06\x58\x07\xf3\x45\xa2\xa7\xa5\xbf\x1b\x5c\x18\xef\x8b\x06\xda\xc3\xb8\x1f\xce\x45\x62\x50\x2f\x5d\xf6\xf1\xca\x6b\x6b\x55\xb3\xa8\x6b\xee\x1f\x8e\x4c\x14\xca\x14\x14\xfc\x52\xca\x57\x53\xfd\xbc\x51\x0d\xa0\x5c\xb2\xd0\x36\x95\x2b\x75\x91\xad\x57\x97\xb2\xc5\xa5\xb1\x40\x1f\xe5\x92\x73\xb4\xb7\xf1\x8e\xdc\x37\x8a\x6b\xf3\xb7\x56\x8a\x08\x01\x38\xff\x37\x6f\xeb\xe9\x6b\x24\x95\x34\x90\x19\xdb\x28\x79\x77\xe8\x9a\xb1\x75\x37\xe5\xa0\x43\x62\x0a\x80\xba\x86\xe6\xf5\x46\xa1\x63\xfe\xab\x41\x1b\x8a\x0c\x96\x0c\x7c\xb0\xee\x18\x0e\xfd\x7e\xc6\x75\x92\xa2\xa8\xf6\xf2\x35\xbf\x56\x97\xe5\xa5\x68\x2f\x35\x56\x48\x5f\xbb\xa0\x77\xbc\x5f\xde\xea\x57\x50\xae\x39\xe0\xb2\xf5\x83\x5f\x97\x60\x5b\x56\xf6\x37\x8a\x40\x13\x0b\xd8\x6a\xbb\xb0\x3b\x77\xdb\xa5\x08\x69\x84\x6a\xc0\x5f\x16\xbb\x83\x61\x6c\x0c\xac\x9e\xa9\x08\x33\x86\x1c\xf0\x63\xfe\x0e\x63\x36\xdb\x3f\x93\x7f\xfd\x6d\x70\x93\xd8\xdf\x06\x9a\xb3\x8e\xdb\x4f\x45\xc8\x29\xc7\xe7\xd5\x4d\x6e\xd9\x1e\x34\x8c\xb7\x02\x11\x2a\x13\x50\xb9\x94\xfc\xf7\xaa\x8b\x27\xb6\xdd\xd2\x3d\xd9\x90\x44\xa8\x88\x72\x00\x4a\xec\xb3\xda\x57\x79\x46\x9c\x92\x8a\x48\x51\x30\x72\x49\xe7\x1a\xba\x34\x71\x51\xaa\x09\x0e\xc6\x8e\x8c\x63\x46\x6f\x7c\x7b\xdd\x31\x6a\xbc\x48\xcd\x92\x72\x63\x26\x38\xfe\xca\x24\x96\x49\xaf\xaf\xff\x72\xf9\xef\x7f\x2d\xf2\xf1\x73\x97\x24\x2a\x12\x66\x4c\x24\xbb\x94\xce\x28\x70\x3d\x71\x0f\x75\x11\x09\xd3\x4e\x74\xe2\xb7\xb9\xdc\x53\x24\x90\x72\x13\x91\xb5\xf5\x8d\xca\x19\x15\x69\x18\x81\x13\xb5\xb6\x7b\xd1\x14\x5d\x77\x1b\x5c\x09\x12\xc6\xa9\xd5\x3a\x5d\x16\xd5\xcf\x49\xcc\x2f\x08\x0b\xb0\xb9\xb8\xa9\xf3\x63\x97\x17\x3c\x5d\xd7\x18\xeb\x37\xf9\xa0\x86\x2c\x08\x33\x2e\xaf\xdf\xcb\x33\x97\x6f\xab\xb2\xf5\x35\x6e\x37\x20\x03\xfc\x6d\xa8\x94\x30\x55\xc5\xa3\x02\x79\xe7\x98\x55\x63\x6f\xee\x6b\x55\xbd\x41\xdd\x78\x9d\x6b\x2a\x68\x60\x48\x4e\xdd\xf2\x66\xa3\x81\x51\xa3\xf3\x26\x94\x9d\xf1\xe7\x70\xa7\xe2\xc0\x7b\x55\xde\xe6\x3c\x61\xfc\x0a\x2a\x23\x4e\x9c\x1e\xee\x9f\xe2\x2b\xa6\x7f\x9f\xa0\xe7\xc6\xa7\x66\x81\xc9\x2c\x7b\x2f\x95\x07\x80\xa7\x4a\xe5\x3a\xbf\xc1\x55\x0b\x16\x53\x84\x9c\xb4\x03\x85\xe9\xf9\x5f\xc4\xb2\x8c\x52\x0f\x3d\xb3\x67\x9e\xfe\x2c\xa6\xcc\x20\xb0\x26\xe6\x1b\xbd\xbf\x9e\x27\x81\x98\xc8\x12\x85\x2c\x4c\x65\x15\x3f\x87\xc4\x7f\x2a\x32\xce\xb1\x25\xf7\xb0\xde\xee\xf6\x87\xdf\x37\x8f\xdf\x9f\x56\x23\xaa\xb6\xc8\x94\x40\x65\x25\x69\xbc\xcc\xec\x4b\x3e\xf9\x12\x1e\x06\x58\x6b\x68\x70\x71\x5e\x4e\x23\x02\xc1\x23\x89\x5a\x63\x77\x50\x54\x6d\x5b\xfd\x3f\x3b\xf7\xfe\xd5\x7f\xdd\xd7\x12\x99\x10\x27\x9a\x66\xb4\x18\xac\xea\xe9\xcc\xac\x11\x91\xe9\xb2\xb9\x00\x62\x59\xf0\xa6\x59\xfb\x1d\x6d\x7c\x66\x91\x46\xf1\xd8\x09\xa0\xed\xa3\x08\x21\x94\x09\x7e\x5f\xa1\xae\x96\x55\xed\xff\xae\x58\x8a\x12\xbd\x2f\x0f\x5f\x96\xd3\x4d\xc1\x91\xbe\xfa\x0b\x82\x94\x84\x4e\xd0\x04\xa1\xd8\x68\xb1\x09\x33\x84\x73\xfb\x01\x9d\x9a\xd8\xd7\x77\x7e\x1d\xab\x69\xf6\xd5\xf6\x6c\x27\xa1\xa9\xc0\xa9\xfa\xa5\xae\x2e\xe7\x61\x98\x3a\x2d\xe9\x08\x4d\xd5\x20\x24\xe9\x36\xfd\x99\xd8\x5f\x68\xa9\xd3\xee\xc2\xbf\xe6\xc7\x21\xbf\x55\x68\x25\x33\x83\xc5\x07\x5e\x3f\xc2\x3b\x78\xb9\x02\x19\x08\x85\x71\xff\x0e\x40\x3d\x56\xc7\x69\x97\x7d\x7c\x19\x32\x50\x5c\xa5\xae\x1a\x62\x12\x6c\x5e\x0c\x5c\xcd\xa9\x0c\x20\xc5\x14\xe6\xae\xaa\x4e\x50\xf3\xf2\xf8\xe8\x7a\x03\xf3\x00\x1f\x19\x46\x2c\xb6\x78\xd4\x97\xcd\xe6\xf1\xd0\xcd\xa9\x43\x94\xb8\xf3\x85\x29\xc3\xcd\xe4\x80\x12\x9d\x35\xe6\x2c\x68\xfd\x1f\xb2\xf1\x8f\x97\x21\xcd\xb0\x38\x2f\x5a\xb9\xaf\xac\x37\xcd\x64\x48\x12\x9a\xca\xad\x84\xba\x5d\xa3\xa3\x88\xfb\x9a\x54\x46\x18\x15\x76\x6f\xd4\xe6\x3c\x4d\x29\x64\xaa\x32\xcc\x68\xef\xea\x6e\x31\x1d\xc4\x1f\x92\x44\x11\xa6\x30\xe7\x11\x53\x68\x84\x79\x92\x24\xa3\x98\x40\x6c\x77\xcb\xee\xa9\xdc\xf4\x78\x27\x77\x84\x52\xc9\x9c\x99\xed\xc9\x48\x7d\xe6\xc5\x55\x5c\x7b\xb5\x71\xb3\x11\xfa\x80\x41\x32\x15\xd2\xd0\x41\xe3\x5b\x5e\xfc\xc8\x95\xad\x11\x85\x23\x5d\xaa\x6e\xa4\xc2\x16\xd9\x17\x38\x8d\xa8\x79\x92\x69\x12\x82\xaf\x50\x2c\x2e\x35\x9f\x5f\x20\x65\x96\x52\x6c\x25\x60\x61\xc6\xe9\x7c\x7c\xf4\xda\xfc\x6d\x06\x3d\x2b\x79\x18\x27\x1e\xf4\x8f\x88\x65\xac\x76\x9c\xce\x03\x0d\x10\x37\x34\x89\x99\xea\x6d\x45\xee\xf3\xe6\x5c\xf0\xe9\x20\x49\x22\xa1\x5c\x98\x76\xb8\x34\x3d\x92\x53\x4a\x46\x30\xd9\xe9\x22\x4e\x78\xad\x2e\x0d\xcc\xe4\x25\x52\x32\x05\x6a\x20\x81\xfe\x58\xc9\xb7\x8b\x05\x60\x5b\x06\x6c\x97\x46\xc9\x57\x38\x71\x2c\xbb\xce\x82\x4b\x5c\xc4\x2b\x55\xc2\x11\x8b\xc9\x95\xc2\x4a\xda\x8d\x2f\x23\x95\xc0\x8d\xd0\xa7\x91\xe6\x94\x6f\x86\xd1\x3a\x3e\x8d\x0e\xcc\x43\x35\x4f\x04\xaf\x66\x69\xb9\x34\xc3\x17\x50\xa7\x61\xa2\xbc\x04\x3b\x3a\x19\xac\xda\xd7\x19\xab\x85\x6e\x68\xc2\x64\x1f\x32\x0d\x83\x36\xa9\x89\x96\x7d\xa7\x05\xab\x0b\xfb\x5f\x33\x34\x0c\xa9\xa9\x40\x90\x1b\x12\x11\xbb\xd8\x37\xf6\xa7\xe0\x5a\x5a\xaa\x1a\xaa\xb8\xa3\x2d\xaa\x3d\xa8\x82\x20\xc5\xdc\xf6\x01\x4b\xca\xe6\xde\x7a\x19\x41\xaa\x82\x28\x31\x59\x29\xbe\xbe\x90\x2f\x4d\xe8\xeb\x27\xa8\x0a\x62\xc8\x9c\xd2\x3c\xff\x95\x5f\x4e\xeb\xf2\x7c\x31\x35\x98\xf1\x05\xaa\x40\xa6\xa9\x2d\xd1\x6c\x0d\xc2\xfc\xc5\x14\x72\x1a\x7f\x2e\x49\x81\x5a\xce\xee\xae\xe5\xa7\xf3\x46\xe3\x9c\xdc\x39\x90\xaf\x1b\x18\x86\xdc\x59\x4b\x3e\x5c\xda\x8b\x25\xa4\xdf\x5d\xd7\x6a\xf2\x0a\xa9\x30\xa6\x18\x2f\x5a\xf1\x64\x57\xc0\x18\xf2\xcd\x46\x6f\x80\x0a\x79\x80\xc0\xd5\x67\xf8\xb9\x29\xff\x04\x38\xa3\xa2\x38\xc1\xa2\xd1\x19\xab\x23\xef\xbc\xec\x96\xd3\xf1\xf9\xa2\x4c\xb1\xa1\x89\xf6\xca\x03\x30\x6f\x06\x1a\xb3\x5f\xae\x94\x59\xa5\xa6\xf1\xed\x64\xb8\x4c\x4d\x3e\xfb\x5a\xfd\x74\x73\x74\x72\x71\x3a\xc6\x1d\x04\x1f\x9d\x49\x12\x07\x74\x71\x3b\x28\xd6\xc6\xc8\xf9\x94\xdf\x46\x5e\x93\x6f\x4c\x28\xc1\x5a\xe9\xa5\x7c\xe5\x45\x7b\x08\x53\xe5\xf3\x63\x95\x50\x19\x99\x8e\x61\xa1\xbb\x30\xe7\x6a\xf9\x42\xa3\xd8\x4a\x25\x8c\x26\x36\x79\xb4\x1e\xa6\x93\xf0\x5e\x25\x5a\x65\xe1\x80\x4b\x64\x03\xa7\x21\x48\xd7\x8e\x4c\x03\xc0\x9a\xc5\x03\xaf\x4f\x98\xb5\xbb\x2f\x49\x63\x33\x61\x06\xdd\xf1\xe9\x47\xb9\x59\x7c\x90\x25\x50\xf9\xab\x63\x81\xa4\x81\xab\xfc\x2b\xef\x1e\x3d\x9e\xfd\x8a\xa5\x89\xeb\xa8\x3a\x96\xcc\xe2\x6e\x3d\x6c\xfa\xb8\x81\x24\x0a\x92\x81\xd6\xff\x1e\xf8\x69\x27\xab\xba\x27\x47\xfb\x87\xc0\xa8\xc4\xfa\x3e\xaf\x85\x51\x81\x35\xa2\x3f\xe3\x5b\xc3\x24\xc5\xb6\xdb\x53\x2e\xeb\x6a\xb8\x45\x28\x1e\xa5\xb8\x47\xbe\xe6\xc7\x57\x68\xda\xbb\x5c\x75\x57\xbf\xf4\x87\x39\x47\x4c\x15\xae\x65\xf6\xb9\xf8\x63\x32\xc3\x92\x9c\xe9\x77\xe1\x32\xf6\x57\x23\x50\x77\x06\xad\xc4\x90\xda\x6a\x24\xe0\x3f\xaf\x22\x28\x41\x28\xde\x6a\xc4\xdc\xff\xa8\xea\xb7\x69\x77\x74\x9a\xcc\xd9\xcf\x29\xc8\x8c\xf0\x5a\x03\x66\xf3\x9d\x59\x08\x15\xa4\x29\xd6\xbd\xb0\x0c\xe7\x60\x68\xb7\x37\x1d\x68\xc4\x7b\xb5\x81\x87\x82\x1f\x7f\x9b\xeb\x2d\x28\x80\x0c\xed\xb1\xbe\xe5\x6d\x7b\x1d\xc4\xae\x4a\x47\x1a\xab\x09\x2a\x6f\xc4\xa5\x36\x2d\x2d\x7b\x0c\x82\x40\xa1\xbf\x25\x47\x00\xe6\x1e\x1a\x97\xad\x0e\xcd\x78\x28\x04\x51\x82\x2b\xf3\xbf\x79\xf9\x33\x9f\x17\xc0\xa6\x10\x48\x4e\x4d\x0f\xb7\xce\xb5\xc6\x7d\xf2\xa1\xaa\xe7\x36\x12\x08\x83\x24\x0b\xbc\xa8\x4b\x2f\x07\x4b\x21\x04\x92\x19\x89\xf2\xd3\x29\xef\x5e\x91\xdf\x66\x2c\x23\x28\x44\x9c\x63\xe7\x5f\x5c\xae\x68\x95\xd4\x9d\xc6\x9d\x22\x0e\x55\x6a\x1d\x72\x9e\xf3\xf2\xdf\xfc\x5b\x5e\x5a\x9d\xb3\x41\xfa\x0f\x71\x08\xd4\x2a\xeb\x20\x4a\x7b\x0a\x9a\x86\x38\x09\xf1\xd6\x68\x90\xaf\xb6\x93\x71\x77\x9d\xd4\x95\xdd\x43\x82\x18\x42\xa4\xff\xd6\xc3\x76\xd7\xe8\x27\x27\x2c\x44\x48\xc9\xdd\xcb\x61\xf7\xb2\xd8\xee\x17\xae\x6b\x06\x69\x14\x63\x81\x0b\x59\x35\xbd\xcc\xc6\xd8\x28\x92\x02\xe1\xa0\x9c\x98\xe4\xa1\xfb\x9f\x6e\x57\x77\x6a\xab\x4b\x7e\x3a\xf3\xfc\x58\x8e\xb0\x0b\xf6\x83\x94\x10\xcc\x5d\x96\xbb\xe5\x96\xd7\x60\x45\xb1\xc7\x13\x0c\x7f\x02\x33\xa5\xd5\xd5\x76\xf5\xb4\x79\x3e\xbc\x6c\x37\xcb\xd5\x6e\xb7\x71\xc4\x4f\x60\x61\x88\x0a\x02\xba\xaa\x25\x8c\xca\xbe\x5e\xa9\xc5\x0d\xcd\x08\x4f\xe2\x9b\x98\xdc\x1f\x85\x30\x30\xc9\xdd\x4f\x5e\x1b\xff\xdf\x4f\xa7\x21\x64\x3a\x46\xe4\x4d\x59\x75\xef\x56\x33\x69\x04\x01\x8f\x15\x22\x56\xba\xc8\xad\xe4\x27\x67\x1d\xee\x62\x56\xe0\x49\x82\xdf\xb7\xcc\xdf\xf3\xff\xb8\x8b\xe0\x2c\x20\x56\x4a\xe2\x99\x9f\x4c\x86\x36\x27\xf7\xd8\x8d\x34\x92\xe2\x79\x83\xa9\xa2\xb3\xf8\xfd\x6f\xdf\x81\x03\xce\x79\xe0\xb7\xb0\x85\x73\x66\x79\xa8\xea\xe1\xab\x2d\x22\x86\xf6\x78\x4d\x0b\x67\x8c\x3b\x30\x0d\xf1\x47\x65\x8c\x30\xc6\xb2\x2a\xad\x74\x5c\x97\xf2\x7b\xb9\x23\xff\xc6\x45\x7d\x4f\x8a\x4d\x9c\x7d\x9c\xdd\x2d\x05\xc9\x42\x23\x66\x88\xc4\x3b\xe0\xa7\x11\x8f\x0b\x14\x17\xd8\x82\xb3\x13\xc7\x8b\xf5\x0f\xdf\x1a\x20\x1c\xb9\x0f\xf5\x0d\x94\x0f\x80\x19\x99\xbc\xff\x5c\x72\xf9\x76\x77\xb9\xbe\xf0\x69\x43\x19\x40\x85\x9a\x8e\x38\x2c\x2f\x7e\x03\x03\x2d\xb5\x8c\xfa\xb2\xe8\xb5\xba\xb4\x43\x4b\x46\xaa\x83\x38\x71\x22\xb4\xdf\xeb\x7c\xbe\xf0\xa7\x03\xce\xf0\x01\xba\x05\xbd\xf5\xfb\xf0\x0d\xa3\x48\x87\x61\x18\x0e\xf8\xdc\xf9\x7f\xa1\x0b\x5d\x6e\xf4\x4d\x74\xc8\x22\xec\x92\xe7\x65\x03\xf5\xb0\xc8\x3e\x1d\x27\x13\x5c\x6b\xbb\xd0\x00\x8b\xe7\x1f\x55\xa0\x66\x57\x4a\x1d\xc5\x52\x38\x59\x28\x5e\x14\xbb\x96\x4f\xbc\x05\xa9\x8e\xd3\x84\xd9\xf0\x6e\xf1\x9f\x0b\xaf\xf3\xcb\x69\x72\x0d\x49\x10\xe3\x02\xa6\xe0\x03\xb7\x7b\xe6\x07\x2a\x54\x5e\x77\x30\xd2\xbb\x6b\x8b\xf6\xf3\xee\x75\xd0\x49\x62\x40\x42\x5b\x90\x90\xbf\x83\x7a\xdc\x2f\x3f\x6d\x18\xeb\x84\x12\x6a\xb5\x6b\xbb\x7d\xcd\xaf\x22\x3a\x25\x21\x96\x4f\x70\x83\x36\x4f\xd6\x2c\xba\xff\xfc\xd7\xc0\x2c\x68\xf2\x5f\xee\xb3\x94\xa1\xd2\x83\x95\x1a\xa8\xe4\xac\x83\x93\x1d\x4c\x40\x61\xca\xf6\x6a\x1e\xe3\x9e\xff\x72\x97\x90\x41\x82\x25\x91\xa6\xad\xa6\xc2\x51\x9a\x27\x09\xee\x84\x17\x2c\x29\x2f\x79\xf3\x7a\x2e\x40\x1d\x27\xeb\x89\xe6\x84\x61\xb0\x61\xf8\x54\x0f\x55\x1d\x25\x98\x8a\x7c\x6e\x66\x45\x35\xa7\x19\x2e\xe4\xde\x6b\x36\xb5\xbe\x49\xa9\xf5\x9a\x4d\xdd\x40\x69\x14\x81\xac\x55\xec\x03\x32\xf1\x50\x8d\xe7\x05\xea\xa7\xbc\xf0\x6b\x86\xe6\x20\x41\x0e\x3a\x7a\xeb\xb2\xb9\xa0\x60\x24\x94\x28\xd3\xd3\xf4\x38\x24\xfb\x09\x91\x9a\x06\x35\xfc\xca\x47\xfe\x2c\x54\x0b\x9a\x48\xd3\xf6\x46\x19\xbe\xc9\x0b\x27\x00\x8c\xce\x9a\xc1\xc8\xa2\x28\xb0\xca\xa1\xc1\xa2\xbf\xba\xbb\xbb\x9f\xee\x79\x5a\x26\x02\x9d\x6d\xeb\x5c\xf2\x5a\xe5\xbc\xfc\xbd\xba\xc8\x41\x3a\xf5\x09\x54\xf5\x6f\x37\xfa\x0f\xee\x65\x95\x0a\xb2\x9e\xb9\x3b\xac\x8a\x7e\x70\xd3\xa5\x4e\x91\x30\x86\xf1\x4b\xb5\x85\x66\x26\x22\xb7\x43\x55\xc6\x43\xab\x27\xbf\x3a\x9d\x8b\xea\x0a\x1f\xb0\xd8\xb4\x92\xc6\x60\x58\x5c\xae\x0f\x75\x75\xfa\x9d\x5f\x8a\x3f\x11\xe5\xd2\x0a\x32\x9c\x8e\xbe\x84\xd7\x47\x74\xe3\x79\xab\x03\x93\x3f\x09\xc4\x91\x79\x73\x31\x9f\xa9\x6a\xcd\xb2\x20\x1c\x81\x44\x4b\x98\x25\xaf\xb0\x20\x60\x81\xea\xe3\xa8\x2e\x27\x9f\xf2\xd4\x07\x6f\x00\x0b\x42\x12\x60\xd5\xa0\x32\x76\x85\xa3\x53\x85\x54\x08\xbb\x62\x7f\xdd\x3f\x2e\x77\x16\x9e\x81\x09\xc3\x4c\x95\x82\x05\x21\x8f\x51\xdb\xae\xcd\x0b\x27\xb5\xd9\x73\x5b\xe7\x32\x33\x16\x44\x91\x42\xac\xee\xcb\xe3\xe2\x58\x03\x18\xcc\xc7\x5c\x0d\x8b\x05\x51\x62\x56\x58\xf4\xdb\xaa\xab\xee\x67\xe5\x35\xa8\x2f\x55\xa1\x1e\x2a\x53\x82\xfc\x3e\x46\x10\x74\x9f\x51\xa8\xfd\x04\xcf\xd5\xa9\xaf\x5e\xb2\x20\x4a\x8d\x2a\x87\x29\x4d\xd8\xfe\xd5\xf8\xa3\x31\x83\x28\xf5\xf2\x6f\x73\xf5\xed\xf1\xe5\xc5\x82\x06\x9e\xd4\xda\xf2\xbc\x98\x6d\x88\x75\xe3\x24\x56\x1f\x77\x96\xaa\xea\x7d\x07\x07\x45\x35\x16\x24\x84\xa6\x46\x2d\x4b\xe6\x27\x5e\x34\x07\xd4\xcf\x3e\x17\xb9\x5b\xba\x58\x90\xa6\x90\x49\xab\xed\xba\xfa\x85\x54\xb0\xf1\x37\x91\x0c\x70\xc3\x78\x87\x3a\xd7\xd7\x71\xb3\x69\xb6\xc8\xce\x02\x22\x49\x80\x56\xcb\x95\xa8\xda\xb6\xe6\xb8\x92\xf6\x09\x1b\x0b\x68\xa8\x63\x43\xc6\x3c\x57\x25\x94\xdd\xd6\x79\x50\x20\xf9\xbc\xfe\x23\x0b\xa8\xc5\xe1\x73\xa5\xfa\xaa\xad\x3d\xc6\x62\x86\x4a\x1d\x3a\x2f\x71\x03\x9e\x18\x93\xbb\x51\xcc\xd8\xd2\x7d\x81\x76\xf5\xce\x8b\x0b\x6f\x27\x2e\xa5\x6e\x1c\x07\x8c\x2f\xf2\x66\x2d\xab\x91\x92\x2c\x0b\x98\x22\x34\x1c\x56\xf8\x8d\x40\x70\xee\xe2\x0b\x16\x64\x41\x82\x8c\x9a\xe7\xcb\x09\x6a\x9e\xd7\xc6\x5e\xb4\x9c\x31\xd2\x9e\xfc\xc0\x2c\x34\xbe\x93\xdd\x8e\xfb\xbd\xcb\x19\x96\xfc\xa6\x2b\x65\x87\xf2\x44\xe1\x15\x3e\x57\xed\xa5\xb1\xde\x6e\xee\xfb\x45\x18\x21\x34\xa9\xad\x2e\x18\xb0\x96\x6d\xd3\x27\x65\x2c\x10\x94\x63\xaa\x8a\xd5\xf6\x41\x7b\x9f\x05\x42\xc5\xd8\x5f\xe5\x4a\x59\x83\x39\x03\x94\xbf\xaf\xe4\xa5\x3b\xcd\xbe\xda\x41\xa1\x27\x33\x5b\x26\x26\x18\xdc\xbd\xd6\x80\x09\xfe\xf0\x11\xab\x08\x34\x1b\x5a\x8d\x36\x17\xd1\xc8\x3a\xef\x92\x10\x28\x8a\xc9\xe3\x51\x09\xc5\x66\xf0\xf7\xdd\xfd\x6e\xbf\x7a\xc2\xf2\x9d\x3f\x13\x09\x90\x85\xbc\xac\xaf\xe7\xb6\x7a\xad\x4e\x7c\xfc\x45\x22\xc5\xb2\x80\xac\x6a\x18\x1b\x83\xb1\x40\x47\x71\x4f\x20\x71\x5d\x81\x2e\xf6\xf5\x22\x6c\x1f\x12\xd9\x3e\xec\x39\x0e\xdf\x7f\xf7\x35\x2a\xc3\x6c\x1e\x45\xb1\xbb\x5b\x55\xaa\x7b\x87\x71\x62\x61\x10\x11\x13\x4f\xf1\x16\x56\xb2\xda\x1a\xf1\x19\xe2\x0f\x53\xe3\xd3\x8f\x60\xd6\x2e\x1c\xfb\x6b\x06\x17\x2c\x0c\x93\x80\xdb\xa5\xc2\xf8\x80\x78\x19\x80\xf1\xcd\x0d\x43\x9d\xa2\x0e\xae\x74\xa5\x4b\xcf\x10\x64\x61\x94\x82\xe8\x19\x87\xee\xfe\x0d\xd5\xb7\xdc\xc8\x24\x08\x5d\xc5\xdb\xf7\x09\x1c\xe0\xca\x0d\x09\x35\x96\x42\x8b\xea\xf8\xbd\x9b\x15\x73\xef\x6f\x98\x24\x32\x89\xa6\xda\xe3\x4d\x2f\x51\xca\xc2\x84\xf2\xa8\xef\xdd\x3e\xe5\xe5\x40\xb9\xd2\x0d\x91\x19\x16\xd2\x2c\x39\xa9\x37\x05\x9b\x04\x13\x2c\x4c\x05\x41\x2e\xdc\x0e\xca\x21\x6b\x9f\x85\x84\x85\xb8\x78\x0f\xa4\x75\x22\x7f\x8c\xa7\xa6\x72\xc8\xdf\xe0\xa1\xe8\x25\x8f\x59\x48\x34\xc5\x19\xbe\x68\x9a\x4a\xe6\xfc\x33\xa3\x07\xfb\x89\x6e\xad\xeb\xbe\xa7\x5b\x75\x60\xa3\xb1\x58\x3f\x7d\x42\x94\x10\x4c\x92\x17\xc7\x3a\x5f\xbe\xf2\xbc\xbc\xe7\x2d\x9f\xbc\xcc\x21\xcd\xb8\xf0\x2e\xe8\xfc\x26\x1a\x1a\xbd\x1b\x59\x48\x51\x18\xcf\x21\xc6\xfc\x2f\xcb\x28\x4f\xc4\xa8\x26\x9a\x83\x5a\xe8\x16\xea\xe1\x13\xe0\x44\xa6\xcc\xa5\x79\x5b\x44\xd2\xae\xf5\x33\x74\x8b\x21\x9f\x38\x98\xb0\x50\xc4\xa6\x20\x78\x50\xa8\xc2\x30\xbd\x6c\x11\x4b\x8c\x1b\x97\xdd\xbb\xd2\x27\x63\x2c\x14\x69\x6c\x62\x0c\xe7\x73\xdb\xdc\x76\x6b\x7c\xa9\x88\x85\x82\x07\xd8\x7c\xf2\x1e\xb7\x53\xa4\x1f\x0b\x9d\x99\x75\xe3\x2c\x12\xda\x71\xab\xc9\xce\xa2\xd1\x66\x15\xca\x48\x1b\x89\x6c\x18\xfa\xb1\xba\x8b\x94\x3c\x8c\x8c\x1d\x47\xd9\x5c\x4e\x60\x84\xa9\x66\x83\x3b\x16\x4a\x1d\x25\xb2\x97\x28\x9d\x5f\xbf\x43\x95\xc6\x86\xf1\x56\xbb\x75\x39\x54\x44\x12\xdd\xcb\xe4\xfc\xe1\x9f\x96\x52\x21\x0b\xad\x6d\xe4\xc8\x13\x9c\x85\x10\x70\x14\xe6\xfb\x91\x8f\x5f\x40\x36\xf9\x3a\x08\xa5\x1c\x22\x72\x9c\xcd\xa7\x3f\x4f\x16\x63\x71\xb4\xb9\x9c\x4e\x2f\x83\x8a\xb1\x3b\x2c\x85\xfd\x4d\x26\x85\x1b\xf2\x73\x59\xa8\x83\x30\x45\x5d\x81\xfc\x6c\xfb\x57\xfe\x40\x24\xc8\xd4\x83\x6a\x36\x58\x08\x75\x9c\x6a\xdb\x26\x7a\xe4\x56\xdf\x71\xad\x26\x4f\x56\x2b\x13\x69\x75\x1b\xcd\x92\x97\xca\x6d\x5c\x51\x10\x9b\xa0\x17\x4e\xb9\x2f\x47\x7f\x6e\x98\xc9\xa2\x80\xc7\xc8\x18\x7c\x87\xb6\x1a\xe4\x92\x37\x8f\x2a\x0a\x24\x24\x0e\x05\x7a\xbb\xae\x46\x51\x6c\x42\xc9\xe6\x95\xc7\xb2\xa8\x4a\x18\x80\x61\x58\x14\x51\x12\x86\xae\x99\xc8\x8b\xbc\xc1\xdb\x7e\x00\xad\x01\x61\xe6\x93\x93\xc5\xcc\x28\x53\xb9\x34\xc3\x59\x83\x59\x1a\xe7\xf8\x17\xc4\x22\x13\x66\x9f\x5f\xe3\x39\x10\xaa\x3b\x39\x9f\xe2\x18\x83\xfd\xfe\xed\x6e\xb8\xec\x45\xb1\xe6\xc6\x89\xb4\x4b\xc7\xee\x6b\x7e\x44\x9b\x91\x41\xe0\x3a\x0c\x87\xa2\x44\x64\x98\xda\x9d\x2a\xdd\xf2\xb7\xd1\x89\x28\x31\xa8\xdf\x1a\x34\xd4\xbc\xb8\x65\xc5\xb2\x88\x8a\x18\x8c\x63\x68\x97\x66\xbe\x54\xcd\xcd\x00\x4d\xd1\xeb\xba\xb6\xc9\xc5\xb8\x24\x3b\x79\x1a\x98\xc0\xfc\x9f\xff\xef\xff\x7c\xbd\xc7\xeb\xc8\xb2\xf9\x64\x20\x62\x99\xb1\x7e\x2e\xaa\xc6\x87\xb9\x11\xe3\x11\x6e\x4d\xdd\x82\x78\x1d\xfd\x8e\x2c\x20\x38\x7c\xbd\xc3\xd0\x7e\x7c\xae\x2c\x36\xc4\x83\x22\x7f\x9b\xde\xe0\x2c\xe1\x28\x27\x81\x6c\xe4\x70\xe5\xbd\x3b\x59\x94\x51\x85\xb1\xa6\x02\xdd\xe5\x77\x8f\xa8\x0a\x7b\x7f\xa9\x87\xf3\x2e\xca\xb2\x24\xb5\xd6\x7e\x2f\x75\x75\x86\xda\xe2\x10\xc2\xe9\x4b\x98\x71\xd3\x6d\x7d\x5a\x3f\x1f\xbe\xac\xf6\x56\x5c\xf5\xf0\xb0\x7e\x7e\x5e\xfd\xe1\xcf\xa6\x98\x25\x98\x1a\x65\xbb\xe3\x30\x03\xb2\x63\x38\x55\xb8\x81\x9b\x56\xc7\xa2\x6c\x7e\xc2\xbc\x5a\x39\x8b\x38\x8f\x91\xb9\x69\xbd\x94\x06\xde\x96\x6e\x5f\x8d\x04\x95\xc2\xf2\x11\x7f\x5d\x77\xd0\x2e\xab\x2e\x51\xee\x9b\x76\xb3\x79\x65\x24\x40\xe3\x72\xda\xed\x28\x23\x26\x30\x8b\x24\x01\xea\x77\x26\x9f\x2e\x0d\x0f\x23\x42\xa2\x8b\x90\xd1\xe2\xea\x73\x1b\x70\x7f\x9d\x52\x26\x54\xf7\x6e\x67\x98\xb6\x4f\x5e\xb3\xd9\x75\x29\x52\x94\x62\x2d\xea\xe1\xeb\x72\xb2\xa5\x45\x4a\x50\xd4\x30\xbc\xe3\xed\x89\xdf\x84\x6a\xc3\x8d\x38\x02\x95\x04\xd2\xb6\x1d\x2e\x65\xde\x5e\x87\x85\xf4\x59\x77\x16\x16\x69\xaa\x30\x22\x44\x57\x8b\xd7\xba\xfa\xd9\x6c\xc1\xf8\x63\xe2\x3c\xfa\x58\xef\x91\xc5\x41\x94\x19\xa5\xad\x6e\x76\x8b\x19\x9a\x04\x8b\x83\x98\x60\x4e\x88\x05\xf9\x83\x17\x7a\x64\x71\x40\x55\x10\xf8\x7e\xbd\xef\x12\x8c\xae\x2d\x0e\x53\x8a\xd1\xdb\x89\xff\x1a\x96\x7e\x59\x1c\x32\x96\xd8\x1e\xbb\xe1\x37\xcd\x44\xa2\x71\x24\x12\x16\xd9\xc8\xae\x84\x62\x59\x95\x3a\x3f\xba\x89\x31\xdc\x59\xe2\x48\x2b\xab\xc4\x89\x40\x53\x3e\x09\x00\xe3\x58\x08\x14\x9d\x7c\x78\xfc\x76\xff\x50\xd5\x5f\xb8\xbf\x90\x58\xca\xd0\x76\xd9\x9f\xf9\x09\x9a\x33\x97\xd3\xcb\x48\x82\x40\x3b\xd2\xdd\x45\x1d\xa1\xdd\x68\xd7\xe7\x18\xa7\x38\x71\x92\x50\x8c\x51\x44\x0d\xfc\x0d\x59\x64\xee\x00\x67\x46\xaa\xbb\xe0\xf9\xc9\x95\x58\x58\x9c\x00\xc3\x6c\xfa\xa1\x80\x5f\x83\x4a\x41\x9c\x06\x1a\x81\xb3\xe7\xba\xc2\x4f\x58\xbb\xce\xa1\x79\x2a\x8b\x53\x16\x60\xdc\x9b\x37\xbe\xe9\xff\x60\x93\x5a\xff\x05\x29\x33\x22\x88\x8f\xd5\xf1\x7f\x2e\x50\x5f\x1f\x00\x76\xb7\xba\xee\x6e\xb0\x52\x91\xb5\x87\xff\xb6\x3a\x74\x0b\xc8\xe2\x8b\x4b\xab\x62\xca\x45\x9a\xf5\x8a\x6a\x36\x7e\xbe\xe9\x44\xd9\xd1\x2c\x30\x7d\xd2\xbb\xe5\x5f\x82\x2f\xb3\x98\x51\x8e\xf9\x1f\x52\x05\x26\x48\xd7\xc9\x65\x66\x69\xea\x5e\x9d\x3b\xde\xe4\x72\xd9\x2d\x5e\x58\xd5\x78\x81\x3a\x0e\x7a\x3f\x61\x16\x67\x40\x50\x6a\x0b\x85\x1e\xa2\x8f\x0b\xb9\x2c\x16\x11\x47\x6f\x93\x97\x6e\xc5\xff\x83\x97\x6f\x80\x8a\xbc\x9f\x4d\xd6\x58\xf0\x10\x05\x14\x50\x7d\xb9\x5b\x2d\xbe\x54\xbc\xd8\x02\x97\xaf\x36\xf0\x71\x4f\x4a\x06\x42\xd8\xc0\xc0\x15\xfc\x70\x36\xdc\x5a\xa8\x4c\x17\x97\x1b\xe6\x0f\x8b\x65\x64\x5c\x2c\x1b\xa3\xa2\x1e\xcd\xaf\xc9\xb1\x4c\x4c\x22\xd3\x8d\xf9\x01\xf0\xb6\x29\xfd\xac\x97\x94\x99\x05\x03\x2d\x70\x7a\x45\x21\xd4\x63\xf0\x83\xc0\xd8\xbe\xf5\x26\xb5\x8b\x22\xe7\x1f\x94\xc9\x62\xa9\x6d\x6c\x83\x7a\xa2\x6d\x5b\xc0\x27\x3c\x0c\x16\xab\x50\xe2\x73\x71\x2b\x94\x7c\xe5\xf5\x71\x20\x4a\xce\x62\x95\xb2\xcc\xe9\x0a\x3e\xfe\x3e\x06\xd3\xb1\x58\x81\x42\x20\x9a\xb7\xf8\xee\x36\x4d\xfc\xf8\xf8\xb2\x94\x06\xdc\x35\x97\x55\x29\x8b\x8b\x82\xe5\x2b\x2f\x0a\x28\x8f\x30\x5b\x97\x8c\x21\x88\x4d\xfd\xcb\x95\x4c\x0d\x12\xfd\x21\xff\x65\x08\x84\x87\x0f\x7e\x0e\xc4\x89\x30\x64\xdb\x5f\x0f\xe0\xf7\xa0\x18\xb2\x88\xcb\x5e\xf3\xb7\x99\xba\x9d\xb1\x58\x13\x16\x19\x39\xa4\x63\x8e\x95\xe2\xbc\xbc\x54\x97\x66\x10\x51\x27\x41\x60\xb4\x66\xb0\xf5\x7f\x67\x1c\xe9\x66\xf8\x09\x2c\x09\x64\x88\xe2\x5b\xbb\x2e\xd1\x2c\x9e\xab\xd6\x9f\x22\x0a\x05\x96\xc3\x5e\x0a\x3e\x8a\x65\x92\x28\x0a\xc1\xc1\x71\xee\xf2\xe3\xa6\xde\x9d\x78\x31\xef\xe7\xce\x92\x28\x4d\xb0\xb5\xfc\x7d\x77\x7f\x6f\xeb\x83\xfe\x3c\x59\x8a\x0e\x7c\xc6\xd3\xad\xaa\x3d\x37\xe2\xb3\x52\x35\x4b\x62\x92\x21\x29\xbb\x0b\x28\x1b\xab\x3a\xef\x0f\x49\x9e\x3a\x94\x54\x5e\xba\xe5\xd6\x86\x9e\x7d\x9a\x97\x24\xb1\x29\x80\xbe\xf0\xeb\x31\x2f\xe1\x2b\x6f\x8c\xb8\xdf\x84\x0c\xc7\x92\x44\x1a\xb9\x60\x97\x62\x98\xf7\x73\x5f\x39\x69\x8a\xdf\xfc\x38\x81\xf8\x2e\xc1\x5b\xde\xf2\x5e\xaa\x8d\x25\x89\x0a\x32\x6b\xdb\xdc\xe5\x14\x68\x59\x3b\xf9\x92\x34\x0c\x52\xe9\x8c\xcd\xeb\x1c\xb0\x4e\xb1\xc2\x02\xf6\xc2\x85\x03\x09\x01\x03\x3c\xec\xae\x62\xe8\x5c\xc7\x12\xa2\x43\x44\x5a\xdb\xca\x8b\xb3\xf5\x1a\x7f\x07\xd1\x59\x46\x1d\x5c\xc3\x45\x06\x03\xd8\x10\x4b\x68\xe2\x75\x09\xbf\x5e\x45\x9d\xab\xfc\xbf\x86\xb0\x7c\x29\x8a\x5b\xb4\x2d\x4b\x28\x15\xce\xc0\xfc\xee\x72\x7d\xe2\x33\x70\x39\x96\x50\x69\xd8\x51\x77\x8b\x7f\xac\xdd\x17\xb1\xd0\xf8\xcd\x15\xdd\xec\xed\xbd\xf8\x46\xcc\x63\x96\xb0\x8c\x44\xc4\x15\x9e\xaa\x5f\x9f\xdb\x21\xb3\x84\x71\xc1\xa3\x09\xea\xd0\x40\x9f\x66\xd6\xc4\xe9\xea\x98\x64\x20\x99\x31\xc7\xe1\xa5\x35\x19\x74\x0b\xdc\xad\x8f\x23\x4b\x78\x62\x84\x78\xb8\x52\xaa\x6a\xe5\x6b\x5b\x55\x5a\xc3\xcd\x8b\x6b\x47\x8b\x34\x16\x96\xdb\xb5\x46\xa9\xd7\xff\x55\xbf\x95\x25\x82\x64\x28\xd4\xd8\xad\x66\xc6\x77\x7b\x26\x05\x4f\x64\xa6\x52\xe9\x8b\x55\x9e\xc3\x7c\x2b\x30\x67\xc7\xab\xc8\x14\x7a\xf2\xd2\x79\x1a\x8f\xdf\x2a\x95\x05\xb2\x4f\xe1\xf2\x06\xa9\x47\x43\x22\x58\x37\x24\xc2\x82\xd2\xa1\xdb\x53\x51\x70\xc0\x48\xd0\xdf\xac\x58\x89\xa6\x41\x9a\x78\xbe\xf4\xd3\x75\x2d\xab\x01\xbb\xcb\x0d\x62\x11\xda\xbb\x74\x59\xf6\x5d\xb7\xb4\xd9\x03\x69\x10\x27\xf8\x6c\x8d\x76\xd1\x7e\xa4\x4b\x3b\xc9\xce\x3e\xac\xac\x1a\x77\xf8\xe1\x2b\x93\x06\x24\x44\x64\x89\x81\x15\x2e\x46\x05\xfd\x61\x7e\x9a\x06\x2c\x43\x90\x33\x96\x3e\x47\xae\xec\x2c\x0d\x38\x33\x8b\x61\xb7\x48\x4e\xeb\x82\x69\x00\x09\x7a\x08\x4e\x25\xf8\x56\xbc\x2e\xae\x7b\xa8\x4f\x39\x32\xde\xa7\x42\x7c\xdd\x07\xb5\xc3\xbf\x6d\xe1\x98\x57\xe5\xde\x1a\x8a\x85\x93\x4b\xd3\x31\x77\xfe\x08\x06\xbe\x9b\x57\xe5\x1a\xf9\xd3\xde\xaf\xc0\xff\xe0\x90\x05\xb8\xff\x2d\xbf\x2e\xb6\xeb\xfd\x1f\xbb\xd5\x62\xb9\x71\xb2\xd2\xdd\xd1\x78\x64\x41\xe9\x61\x31\x5d\x02\xf1\xb5\xfa\x39\xef\x51\xe8\x3f\x2c\x20\xe8\x73\xec\xad\x29\x4e\x8d\xe6\xce\x44\x06\xda\x7f\x50\x49\x07\xd4\xe8\xbe\xc8\xe8\xd9\xd8\x83\x51\x6c\xb4\x9d\x4e\x79\xb9\xda\x7f\xed\x5f\x88\x38\x8d\xc1\x38\x19\x9d\xf2\xf2\xd0\x40\xdb\x33\x0f\x6e\x08\x16\x2c\x8d\x49\xaa\x52\x87\x50\x12\x45\x5f\x81\x4c\xe3\x2c\x42\x80\xeb\xae\x8b\x4e\x51\x57\xde\x6a\x5d\x0c\x3f\x9d\xc5\x28\x45\xec\xd2\x28\xcf\x5c\xf6\x27\x91\x26\x89\xc0\x89\xf2\xad\x94\x8b\x5a\xe4\x6d\xcd\x8f\x70\x63\xd1\xd8\x8d\x05\x6c\x3a\xff\xbb\xca\xcb\x61\xc2\x3b\xb9\x9b\x89\x0a\x11\xf3\x60\x85\x7d\x7f\xe4\x13\x25\xbd\x6e\x84\x46\x6e\x22\x42\x28\x3f\xaf\x0d\xa7\x09\x00\xd6\x1e\xb4\xcc\x27\x5b\x70\x9a\x06\xa1\x62\xde\x9b\x6f\x64\x4a\xc6\xba\x78\x99\x09\xa7\xf1\x28\xe1\x8e\x37\xd8\x7d\x9c\xb4\xee\xd2\x94\x03\x86\x1a\x87\x11\xb8\x75\x7c\xb9\x24\x54\xb8\x67\x4b\xde\xbc\xde\x71\xf9\xf6\x50\x57\x27\xcb\x2d\x9d\x5f\x9e\x52\x92\x46\x26\x13\xbf\x14\x9e\x4d\x72\x19\xb0\x47\x58\xca\x02\x93\xc0\xee\x2e\xf5\x3b\xdc\x6a\xae\x8c\xcd\x8c\xfc\x8c\xe4\x32\x45\xeb\x08\xd4\x5b\xdb\x41\xbb\xb8\xa8\x7c\x2a\x11\xc1\x52\x11\x11\xb3\xf8\x19\x39\x50\x04\x6c\xce\x06\x71\xa9\xe4\x06\xdf\x28\xf2\xb6\xdb\xf5\x4d\xef\xb3\xc9\x8f\x87\x77\xec\xba\xdb\x51\x4a\x6a\x5c\x29\x77\xd6\x4c\x64\x68\x10\xfa\x89\x2a\x3a\x4b\x15\x30\xf0\x75\xfd\x75\xf9\x7d\x77\xef\x4e\x09\x81\x50\x36\xae\x18\xf7\x72\xe6\x4f\x04\xb1\x42\x61\x98\xc7\xaa\x3c\x2e\x8b\xaa\xf9\x80\x91\xc8\x52\xd0\x32\x0d\x06\x30\x90\x9b\xf3\x8e\xd7\x14\x1d\x0b\xd4\x4a\xd9\x6f\x76\xb6\xb0\x6b\xb1\x49\x93\x72\x46\xaa\x63\x2d\x6c\xe2\x6f\xa5\xb6\xfe\x0b\xb3\xd8\x45\x46\xc2\x24\x42\xad\x3a\x6c\xf4\x1b\xab\x91\xd9\x7e\x2b\x09\x65\x82\x72\x35\x2e\xf2\x1e\xe9\x73\x31\x12\x82\xb1\xa7\x3b\xe5\xa5\xd9\x6d\x06\x0a\x0b\x8c\x84\xda\x08\x3e\x7f\xe5\x45\x7b\x13\x21\x92\x28\x35\xc2\x74\x5d\xa6\x71\x9f\x37\xe7\x4b\x0b\x6a\x5d\xbe\xf3\x22\x57\xbb\x6e\x9a\x94\x12\x7e\xd4\x55\x79\xfc\x51\xe7\x2d\x0c\xa0\x70\x8c\xc4\x41\x8a\x3c\x67\x94\x58\x7a\xa8\xea\x11\x9d\x9e\x91\x38\x0c\x8c\x68\xd1\xaf\xf3\xa7\xb8\x41\x46\x62\x1e\x3a\xb1\x85\x3e\x3c\x5a\xfe\xf0\x27\x52\x46\x38\xbb\x86\x33\x32\xa7\x9c\xc3\xfa\x9f\x04\x17\xee\xd3\xda\x88\x66\x72\xf9\x56\x56\x3f\x11\x47\x64\xd6\x92\xf1\xb0\x24\x24\x06\x8d\xda\x1a\x8a\x4a\x0d\xbf\xcd\xe4\xb4\x24\x89\x13\xd0\x2e\xdd\x30\xad\x9c\x89\xe1\xfb\xe4\xeb\x13\x6d\x4a\xf7\x30\x91\xc4\x1b\xcf\x71\x92\x68\x53\x5b\xc0\xb5\xf5\xa6\x15\x43\x48\x4a\x2c\x18\xa5\xbc\x34\xb6\x96\x3d\x8a\x62\x08\x51\x71\x60\xd1\xb4\xbd\x66\xde\xf2\x06\xd3\xcb\x08\x0d\x42\xdc\xc0\x4c\x30\x60\xdb\x71\xc3\x6b\x0f\xfd\xc8\x48\x41\xe6\x03\xad\xad\x11\x82\x9d\xbe\x99\x34\x4b\x5d\x7d\xc8\x60\x9c\xaa\xfa\xe4\x59\xa6\x6e\xf2\x10\x0a\xd2\x85\xd0\x5d\x84\x3d\xe5\x37\x32\xc2\x52\xc1\x43\x6f\x3b\xb8\xd1\x3e\x83\x70\x2b\x38\x61\x99\x71\xf6\x3f\x74\x51\x53\x17\xf0\x6e\x79\x77\x17\xbe\xe4\xef\x7f\x02\x0f\x67\x84\x89\x34\xed\x79\xf1\x5b\x14\x29\xc7\xd7\xb9\xfe\x90\x20\x3f\x9a\xfb\x84\x49\x85\x44\xc1\x27\x5e\x7e\x2f\xf3\x16\xd4\x6e\xe9\x2e\x2b\xcb\x12\x47\x4f\x75\x85\xe7\x65\x55\x54\x96\x89\xe0\xef\x65\xa6\x92\x54\x0f\xd0\xfb\xb6\x6f\x79\xd3\xa0\xeb\xfe\x1d\x53\x21\x19\xe1\xb1\xc0\xed\xe9\xc7\x6e\x6d\x57\x9e\xd5\x7f\x2e\x79\x7b\x1d\xd0\x14\x18\xe1\x99\x40\xe8\xa4\x05\x84\xf1\xf2\x63\x90\xc4\xf4\xf4\x5a\x41\x30\xb6\x14\x1f\x15\x0f\x89\xe0\x11\x19\xf8\xd2\x61\xf6\xf3\x50\xd5\x5d\xe8\x73\xdd\x94\x4e\xae\xca\x5d\x88\xd0\x11\xe6\xc1\x2d\x7f\x83\xa5\x56\x53\x86\xa4\x1d\x25\x49\x82\xce\x71\xb9\x47\xc6\x39\xa0\xf3\x64\x1c\xa3\x46\xf2\xf6\x52\xca\x43\x40\x29\x73\x5f\x23\x75\x80\x9d\xd7\x7d\x5e\x5e\xc7\x69\xd3\xf8\xd9\xab\x28\x91\x7c\x4e\x0a\xee\x86\x62\xc1\x88\x62\x04\xb8\xaf\x99\x3b\x58\x97\x4b\x30\x9e\xf8\xf9\xec\xb1\xc4\x8c\x28\x6e\x2c\x62\xba\xed\xa3\x35\xe8\x8f\xc9\x37\x03\xc7\x76\x97\x06\x30\x00\x16\xaf\xb5\xc7\x08\xc4\xd6\x69\x0d\x3f\xba\x2e\xdb\x87\x70\xd7\xd6\x0f\xd1\x6f\x3e\x71\x1b\xad\x3a\x3a\x32\x6e\xf4\x4e\xad\x6c\x07\xb2\x2a\xd5\x30\x82\x24\x9a\x10\x94\x7e\xc9\x9b\x3e\x23\x52\x53\xca\xcf\x65\x08\x43\x1e\xbf\xe3\x34\xe0\x8c\x59\x91\xbe\xf2\x72\x7a\xf2\x51\xb8\x3b\x2c\x00\xb1\xbe\x45\x75\x3c\xde\x4c\x5f\x1a\x92\x30\xb1\x77\x79\x0b\xcd\xb9\x2a\x1b\xf8\x3e\x0c\x92\xc6\x5f\x85\x4d\x4a\x5b\x29\x30\xaa\x69\xf3\xa1\xc1\x5c\x55\x91\x46\x3c\xc0\xc9\xdc\x3d\xee\xa7\xdc\x57\xed\x68\xac\x02\x44\x97\x4b\x3e\x61\xa7\x33\xda\xed\xb2\xb6\x5a\xb2\xac\x4e\xb8\x58\x8f\x4e\x99\x06\xc6\x57\xc5\x09\xf3\x3b\x9b\x1a\x77\x38\xf5\x95\xfc\x1d\xd4\xef\xb9\x1c\xe6\x7d\xe3\xd7\x8d\xa6\x24\x40\x78\x82\x55\x54\x73\x8b\xbe\x3b\x4a\x15\xaa\xd9\x3b\xaa\x78\xe3\x0f\x08\x2d\x2c\x63\xcf\xba\xea\x23\x6a\xd4\x1d\x26\xb1\x51\x60\x43\x49\xe1\x8d\x5e\xfc\xe4\x35\x94\x7d\xb3\x87\x12\xa1\x40\x0f\xd4\x8a\xb6\x3c\x6f\x7c\xb1\x88\x12\x19\x51\x6c\xd6\xf5\xc4\xad\xdd\x14\x02\x42\xbb\x57\x32\x1c\x9a\x13\xf4\xa8\x16\x4a\xd3\x08\xeb\x2e\xb9\x1c\x72\x49\x19\xa5\x34\x44\x5c\xc3\xb1\xe6\x65\x6b\x8c\x48\xe6\x83\x5c\x4a\xc1\xd8\xf5\x09\x5e\xbe\x5d\xc6\xe7\xd0\x59\x18\xd8\xca\xe8\xbe\x9a\xe2\xc2\xc7\xb1\x98\xfd\x08\xa3\x01\x4a\x81\xac\x0a\x78\x87\xd2\xfc\xef\xe8\x9c\x2c\x53\xcc\x82\x12\x6d\xa0\xb4\xd1\xa8\xb4\x3e\xbf\x46\x50\xa6\x08\xbe\x8f\xff\xb3\xfe\x3e\x3a\x4f\x46\x8d\xe3\xf5\xd7\xaf\xdb\x07\x6e\xfd\xd7\x3f\xcd\x40\x28\x0f\xb8\xe9\x06\xad\xef\xdc\x49\x78\xa6\x10\xf0\x77\x7e\xe5\x0d\x84\x56\x68\xc0\x54\xd7\x9e\x1c\x1c\x9a\x51\xce\x29\x62\x92\x0f\x28\x1a\xd3\xad\x69\x97\x3a\x1f\xf7\x30\xfd\x54\x14\x41\x84\x4d\xa3\xc5\xfd\xef\xeb\xdd\x66\xbb\x3b\x3c\x6e\x96\xdf\x0e\xf7\x8b\xfd\x44\xec\x9f\x51\x21\x14\xf6\xaf\x9a\x33\xff\x79\xa3\x0c\x38\x79\x44\x32\x48\xad\x0b\x76\xd3\x0e\x25\x60\xba\x23\x00\xa4\xb7\x26\x1c\xa2\x4e\xa8\x0c\x13\x84\x0b\x8a\x5c\x59\x30\xc7\xf8\x0a\x14\x37\x85\xef\x6e\xaa\xbf\xe6\x85\x9a\x75\x9e\x67\x54\x69\x1a\x18\xe9\xa5\x77\x68\xf3\x93\xdf\xf5\x29\x50\x6a\x7a\x08\x3f\xf3\x56\xbe\x5a\xcb\x24\x7f\x90\x07\xa9\x67\xa9\x5b\xfe\xc2\x6e\x50\x5a\xa3\xa0\x18\xc6\xd7\xdb\xfd\x9d\x03\x81\x50\x9d\x84\x42\x4c\x04\x6d\xa6\xe6\xfb\xb7\x85\x33\xaa\x75\x90\xda\x9b\xd0\xe5\xb3\x77\xd7\x97\x6e\x89\x70\x7b\xa5\x0d\xe3\x58\x10\xc6\x18\x4c\x37\x95\x35\xa4\x6c\xf0\x6e\xf9\xc6\x39\x0b\x13\x62\x38\x2e\x88\xbe\xf3\xd6\xe5\x9f\x2c\x78\x2c\xd2\x0c\x73\xf7\xfb\xf5\xb3\x73\x77\x63\x2c\x4e\x0c\x1d\xbd\xdf\x3f\xad\xc0\x61\xef\x3f\xcd\x58\x4c\x42\xec\x32\x61\x29\x60\x00\x48\x62\x71\x16\x70\x03\x61\xcb\x51\x54\xed\x3e\xd7\x28\x7c\xd0\x9a\xf8\xfe\x4f\x9b\x2c\x2c\x56\x21\x0a\x10\x54\x97\xb6\x69\x39\x16\x70\x5f\xd0\x5e\xda\x1e\x4f\xb2\x8c\x67\xae\x9f\x67\x41\x21\xf6\x50\x1a\x64\xd4\x64\xe2\xe7\xaa\x6e\x9f\xf2\xa6\xe9\x72\xa8\xd7\x4b\xf9\x36\x55\xb9\xfc\x6c\xbb\x62\x69\x0c\xb1\x0d\x4a\xd0\x56\x34\x62\xfe\x0b\x12\xa9\x95\x13\x0f\x47\xed\x94\xf1\x3b\xc9\xd2\x2c\x44\x96\x2d\x5a\x7f\xcc\x0b\xb1\x33\x96\x0a\x86\x3d\x7b\xdc\x64\x8b\x29\xb3\x9b\x31\x12\x65\xc8\xeb\x55\xc8\xd1\x40\x77\xc6\xa6\xae\x2a\xff\x33\xbb\xf8\x00\x9c\x78\xdd\x07\x0e\x18\x33\x37\x96\xb2\x24\x34\xa2\xe3\x93\x8b\xa6\x4c\x20\xfe\xe5\x27\x7f\x83\xef\x67\x13\xf1\xd8\x43\x2c\x0c\xb4\xee\xcd\x06\x5e\xf2\xfb\xbc\x91\x83\x49\xca\x58\xc2\xa1\x3b\xe9\xe1\xd2\xc0\x43\x5d\x9d\x3e\xa0\x3a\x32\xc6\x58\xaa\x8d\x63\x4a\x2e\x21\xdc\xe8\xe9\x61\x30\x5e\x18\x56\xc3\xad\xda\x5c\xde\x73\x55\xd5\x39\xff\x93\x08\xe3\x6f\xa3\xb3\x70\x6a\x50\xb5\x47\x68\x17\x5d\xec\xb4\x56\x06\x5d\x56\xaa\xcd\x2d\x69\x9f\x31\x2e\x62\xe7\xf4\xea\x64\x12\x31\x03\x9a\x76\x08\xed\x70\x11\x04\x18\x7e\x9e\xf2\xb2\x1d\x54\x5e\x6f\xf9\x0c\x1f\x36\x50\x99\x60\x1c\x57\x42\x2b\xc8\xb2\x28\xd5\xb2\x5b\x60\x86\x70\x24\x26\xb2\x04\xeb\x3c\x4f\x7f\x6c\x0f\x9b\x53\x99\xab\xaa\x28\xb8\x7f\xfd\x85\x8c\xb0\xa1\xf9\x3b\xaf\xf3\xd9\xfe\xa5\x1d\x27\x09\x37\xb5\x9f\xea\x7d\x46\xe1\x8e\x31\x15\x51\xab\xbe\x69\xb2\x06\x0f\x6d\x99\x65\x69\xcc\x2d\x1e\x2a\x4b\x49\x8f\xa9\xb7\x81\xcd\x4d\xd9\x9a\x81\xd6\x81\xed\x41\x60\x6a\x55\x15\x23\x2b\xf0\x9e\x09\x34\x7e\x73\x99\x7f\x6f\x75\xcc\x51\xa1\x97\x2b\x13\x96\xee\x2b\x04\x81\x7e\x5e\xab\x61\x3a\x31\x8d\xb1\xc7\xfc\xe8\xf0\xce\x1f\x01\x88\xe7\x6f\xa0\x4e\x0c\xd4\xef\xd2\x80\x5a\x56\xf5\xc8\xe0\x97\x31\x9d\x51\xec\x47\x98\xf6\xf6\x41\x97\x72\x7e\xa1\x9d\x05\x48\x65\x41\x4c\x52\xd2\xd7\x26\x77\x06\x70\x7d\xbe\xad\xce\x64\x01\xe1\x91\xed\x7b\xec\x10\xb5\x33\x25\x9e\xb2\x2c\x4c\x4d\xaf\x73\xdd\xc2\xc9\xf1\xb7\x7e\x73\xc7\x08\x77\xad\xe4\xc7\x5c\x42\xd9\xc0\x1e\xea\xd3\xad\x10\xd5\x48\x9f\x69\xf8\x7f\xdc\x79\x64\x86\xd0\xed\x77\xa3\xce\x07\x3d\x2b\xf1\x16\x9f\xfd\x51\x37\xe1\x46\x03\xea\x83\xf5\x37\x8b\xa8\x89\x58\x9d\x15\xa0\xfb\x31\x11\xd3\x94\x7b\xfd\x86\x1f\x90\x4f\xee\x55\x1c\x80\xb1\xaf\x76\x71\xe6\xf8\x95\xcf\xe2\x08\xb0\x10\x20\x2e\x75\x69\xca\x77\x06\xc2\xe8\x8c\x17\xc7\x57\x11\x13\x81\x49\x58\x91\xbf\xc3\x2e\xef\xe1\xd5\x59\x12\x04\xa8\x94\xcb\x7d\x05\x6e\xb8\x3f\x65\x49\x10\xe2\xb7\x60\x11\xf3\xf5\x26\x13\xcc\x92\x38\x42\xb9\x64\xae\x94\x9d\x33\x8e\xbd\x3f\xbe\xda\x24\x49\x89\xc3\x16\x1d\x0c\x1b\xf1\xa0\xf3\x52\x61\x27\x21\x2f\xdb\x97\x1a\xde\xb7\x58\x3e\xf1\x4f\x3b\xd1\x21\xd6\x12\xf0\x67\x75\xb1\x29\xce\x93\xb9\x02\x86\x4b\xc0\xb3\x34\x13\x8e\xaf\xd1\xcd\xce\xdf\x46\x37\x94\x26\x0c\x37\xc2\x2e\x0c\x2e\xf6\x3f\xab\x5b\x9d\x7c\x96\xb1\x88\x70\xfb\x73\xbe\x4c\xbc\x54\x59\xc6\x28\x41\x06\xe9\xcb\x66\x37\xd0\x95\xfa\x5f\x75\xee\xb2\x2c\xa2\x98\x80\xbc\x57\x2d\x8a\xbc\xf8\xfe\xef\xe8\x9b\xb2\x48\x25\xd6\xcd\x18\x43\x27\x5e\x0c\x52\x92\xc9\x25\x67\xd4\x30\x07\x0d\xc1\xac\xb9\xbd\x32\x37\x0e\x18\xf2\x71\x1f\x78\xd3\x9e\x78\xfd\x06\x6d\x39\x22\x71\x64\x3c\x31\x02\xcc\xa6\xf4\xf4\xce\x5b\x40\xbf\xc1\xf1\xf3\xe6\x09\x64\x36\x9a\x78\x00\x40\xa1\xa3\x87\xaa\xfe\xfb\x6e\xf2\x65\x5c\xa6\xc8\xab\xd8\xd4\x47\x5e\xe6\xff\x85\x61\x92\x96\x71\xe0\x58\x69\x30\xae\x14\x8f\x7c\x62\x0b\xc6\x32\x11\x40\x68\x33\xd7\x89\x25\xbf\x1b\x10\x99\xb7\x69\xcb\x5b\x48\xdd\x69\x45\x0c\x72\x28\xf8\xf1\xf2\xfd\xce\x1f\x4a\x55\x22\xdc\x1c\xec\xb6\xb9\x6e\x52\x95\x08\x70\x9d\x7f\x4c\x82\x46\x08\xc2\x3b\x5d\xcd\x8d\x6f\xf9\x1b\x0c\x29\xbd\x2c\x13\x99\x46\x2c\x17\xd4\xf5\x38\x72\xcd\x84\x64\x44\x38\x69\xf5\xaa\x00\x5e\x3e\xf1\xb3\xc9\x05\x46\x0f\x59\x76\x97\x85\x39\x2e\x82\xed\x26\x07\x95\xd6\x36\x13\xef\xa2\x68\x7c\x12\x97\x19\xa8\x49\xa6\x02\x53\x71\xb3\xe1\xb6\xf1\xce\xf4\xb7\x5a\x51\x8d\xf9\xf0\x99\x5f\x1d\x7d\xef\x83\x5f\xac\x74\x14\x19\x50\x71\x8e\xd5\x1b\x9b\xc0\xbb\x13\xe9\x40\xe3\x1b\x79\xbf\xdf\xfa\x3f\xc5\x09\x56\xcb\x8f\xb5\xe3\xc9\x77\x7f\x33\x88\x20\xbb\xb5\xf5\x29\x62\xa6\xd3\xd8\x00\xda\x0d\x1b\x16\xc4\x4d\x63\x68\x72\x41\x9a\x12\x54\xaf\xd2\x58\x77\xfd\xcc\xc9\x97\x65\x3a\x63\xd8\x0e\x1e\xb5\xe9\x9d\x71\xd7\xe8\xd5\xe1\x41\xa8\x31\x3c\xbc\xe3\x47\xaf\x12\xfa\xbf\x90\x7b\x73\x67\xe1\xa0\xe2\x1e\xa8\x8a\x3f\x74\x86\x09\xea\x46\x4b\xed\x54\x73\x76\x92\xa3\xb3\xa6\x37\x81\x63\x3c\x50\x71\xe8\xb9\xed\xeb\x12\x3b\x17\x17\x0b\x45\xfd\x00\xf7\xc4\x03\x88\x91\x78\x78\x97\x1f\x45\x35\xc4\xcf\xa3\xb4\x92\x1d\x14\x46\x09\x7a\x9c\x2d\xef\x96\x7b\xff\x37\x19\x60\x4c\x59\xe6\x02\x35\x94\x96\xaf\x7c\x12\xf5\xf3\x28\xa0\x08\x30\xd6\xb5\x45\x97\x35\x5e\x00\xc0\x9d\x25\x0a\x4d\x56\xd3\x40\xfb\x5c\x95\x58\x49\xf9\x68\xdd\xe1\x51\x18\x1b\xec\xa5\x23\x64\xa1\x40\x76\xd9\xe2\x2b\x32\x51\x1e\x9c\x7c\x92\xa7\xc2\x98\xe3\x36\x55\xf1\x3e\x63\x61\x36\xdc\xe2\xed\x67\x92\x38\xc3\xbc\x12\x8a\xfc\x97\xaf\x22\xf2\x84\x32\xfc\x49\x75\x75\x29\x55\x30\x2c\x07\x22\x6e\x43\x59\x28\xc5\x7c\x95\x79\xfa\x6f\x18\x7c\xea\x2b\xcd\x78\x22\x68\x46\x7b\x55\xe6\xa9\x75\xce\xe4\x51\xa6\x11\x8b\x94\xab\xb9\x95\x3a\x3f\x8e\x57\x5c\x9e\xa6\x09\xe2\xb0\x0f\xed\x34\x39\xba\xa0\x50\xbc\x1d\x46\xc2\x38\x75\x4e\xed\x3e\x06\x18\x7f\x13\x09\x8d\xf4\xa1\x81\x5c\xa0\xd7\x89\xbb\x0b\x24\x8a\xe2\xd4\xc9\x82\x59\xdc\xc3\xf8\x61\x10\x45\x95\x34\x98\xce\xed\xfe\xb0\x5d\xec\x1d\xa0\x93\x53\xa7\xb8\x88\x95\x87\xa1\x6e\x94\xaf\x2f\x70\x1a\x45\x58\x99\x7f\xe5\xcd\xaa\xac\x2e\xc7\x57\xd4\x35\xf4\xd1\x96\x0d\xe1\x5c\xa8\x3c\x47\xad\x77\x27\x4a\x4c\xf7\xf3\xa7\xab\xdd\x6e\xca\x59\x4b\x03\xc6\xa9\x00\xbc\x21\x4f\xdb\xdf\x67\x03\x66\x37\x0c\x22\x0c\x5e\xb1\xfb\xbb\xaf\xce\xce\x46\x8a\xf1\x2c\xcd\x12\x6d\x71\x08\x1b\xbd\x3a\x75\x09\x78\x55\xbe\x40\xfd\x07\xf8\x04\x86\x67\x44\x24\x64\x68\xf9\x30\xb9\xe7\x19\x05\x24\xcb\x19\x9b\xc5\x81\x95\x20\x1b\xad\x10\x3c\xd4\x58\xab\x3d\xf1\x37\x03\x91\xb8\xcb\xdb\x13\x3f\xdf\xe5\x93\x9d\x8f\xf3\x98\x52\xaf\xdf\xf6\x95\xd7\x5d\x6c\xb8\x39\x5b\x94\xc7\xcc\x12\x64\x33\xcd\x9e\x8a\x34\xdc\x3c\x38\x4f\x19\xca\xe0\x60\x67\x7a\x5f\x59\xf4\xd7\xfc\x7b\xca\x89\xc0\x0c\xa2\xdb\x65\x90\xd7\x68\x09\x85\x0e\x4b\xc9\xb9\xd0\x08\xec\x32\x77\xd2\x35\x05\x20\x37\x35\x78\x7b\xee\xc9\x39\x15\x47\x94\xfa\xef\x39\xfc\xbc\x83\x9b\xdf\xaa\x64\xac\xb1\x92\x2e\x2d\x88\xc5\x7d\x95\x88\x12\xd4\x8d\xfd\xc1\xeb\x3a\xaf\xea\xc6\xd8\x2d\x76\x11\xb0\xc1\x8c\xea\x1c\x8a\x9b\x0a\xeb\xe4\xf7\xc8\x00\x28\x19\x1a\x89\x4c\x0a\x1b\x5c\x52\x62\x28\x6b\x3f\xab\xa7\xbc\x28\xf2\xaa\x7c\xa8\x2e\xf5\xd7\x4b\xa9\x6a\x50\xfb\xd7\xea\xd2\xf0\xd2\x5f\x91\xe4\x09\xb1\xea\x3b\xa8\xbc\x52\xf3\x62\x7a\x3a\x6e\xf6\xb3\x63\xb7\x66\x2a\x5e\x60\xad\xe9\xfb\xf6\xd1\x9f\x01\x8c\x89\x35\x76\x4a\x47\x88\x22\xae\xc2\x00\x69\x81\x87\xc3\x43\xde\x1d\x44\x94\xc4\x48\x4b\x9b\x71\x65\x45\x77\x50\x82\xa3\x81\x39\xbd\x71\xc6\x15\xc9\x42\x1b\xe2\x7d\xe1\x4d\x17\x7f\x3e\x6e\xbe\xdf\x4f\x07\x51\x21\x0d\xda\xb4\x7b\x6e\x7b\x2f\x45\xc1\xb8\xd2\x29\xcb\x1c\xfc\xa3\x85\x9d\x1c\x5c\x23\x50\xa5\xec\xcf\x5b\x2e\xbf\x5a\x9c\x6d\xe4\x8f\x32\x89\x52\x3b\x03\xf9\xb7\xb5\x8f\xa5\xb8\x8e\x4c\x53\xc4\x1a\x1f\x6c\xe1\xc4\xf3\x32\x2f\x8f\x7e\xdf\x59\x77\x7b\x8c\x1f\x0d\x4a\x65\x7d\x93\xc2\x4c\xcb\x3d\xaf\x8f\xd3\x17\x48\x04\xb6\x1f\xb7\x5e\x6e\xa2\x51\x13\x58\x84\x56\x64\xb9\xbb\xda\x57\x9e\x97\xd7\x9e\xe9\x3f\xbc\xab\x22\x54\x81\x25\x0a\x15\xfc\x8a\xf8\xa9\xd1\x16\x91\x0c\xcb\xed\x22\x8a\x09\x26\x18\xa6\x61\x6c\x7a\xde\x0b\x67\xb4\xc1\x44\xcc\x32\x8c\x6a\x2f\x4d\x3f\x3d\x30\x4b\x19\x5f\x74\x0c\x8a\x58\x4a\xf4\x47\x9a\x21\xa3\x49\x2c\x92\x2e\x76\x33\x31\x5e\x97\x4d\x0d\x0c\xdc\xc7\x4b\x9d\x48\x64\x86\xf8\x90\xcd\xcb\xea\xf9\xf0\xb2\x58\x7e\x5b\x7c\x59\x1d\x86\x94\x67\x91\x06\x0c\x7b\xe3\x2f\x5b\x23\x04\xbf\x7a\xbe\xf7\x87\x20\x0d\xb5\x6f\x7b\xb8\xbf\x92\x30\xc4\x94\x48\xf1\xbc\xb8\x8e\x6a\x0a\x82\x64\x81\xe1\x10\xa2\x32\x2a\x6e\x29\xeb\xc6\xe2\x3c\x1a\x50\x8b\x52\xa1\xb6\x85\x1f\x2e\x04\x42\x1a\x75\x17\x74\x98\x25\x63\x92\x9c\x09\xa2\x39\x32\x31\xb1\x56\xea\xa0\xfd\x73\xff\xd8\xf1\x99\x4a\x0d\x2c\x38\x2f\x8f\xd6\x1a\xf1\xd9\xb2\xdc\xdc\xb7\xf2\x48\x63\x1c\xd5\xe5\x27\x93\xd5\x6f\x7c\xef\x38\x4b\x71\x33\xb0\x0e\xa9\x38\xf4\x03\x0c\xbb\xe0\x4c\xe3\x66\xa7\xf3\x5f\xc6\xbd\x61\x67\x58\xf1\xb3\x01\xbc\x10\x3c\x71\xa4\x10\x9b\x41\x83\x9a\x38\xd3\x31\x21\x03\x9b\x10\x1a\x25\x25\x40\x8f\xfd\x2e\x98\x71\x3f\x44\x4a\x8e\x88\xae\x67\x38\x16\x30\xd3\x16\xba\xcc\xdd\x20\x15\x64\x58\x0f\xfd\x02\xad\xb9\x50\xe3\xc3\x30\x2c\xd4\x0b\x95\x4a\xc4\x2b\x3e\xef\xb7\x7f\xbc\xa0\x92\xa6\x8f\x1a\x04\x44\x80\x9d\xd0\xe7\xff\x9f\xb4\x3f\x6b\x6e\xdc\xd6\xf6\x87\xe1\xaf\x93\x8b\x73\x41\x12\x9c\x70\x29\xc9\xb2\x5b\x27\x9e\x8e\xa5\x4e\x27\x7b\xd7\x2e\xd5\x02\xb0\x20\x33\xa6\x48\x6d\x92\xb2\x5b\xf9\xf4\x6f\x71\x01\xe0\x24\xda\xc9\xf3\x7f\x6f\xd2\x29\x13\xa2\x28\x12\x04\xd6\xf0\x1b\xf0\xa3\xb3\x3e\xb7\xf2\xdc\x6e\x04\x4b\x23\x2b\x52\xf9\xa4\x35\x49\xd0\x4f\x41\x29\x7d\xf0\x26\x30\x61\x14\x63\x2c\xb1\x78\xcb\x36\xab\xa7\xc9\x4d\x40\xd4\x91\xb9\xaf\x15\xae\xdb\xfc\xed\xbe\x3c\xb0\x45\x51\x16\x97\x63\xf7\x7d\x5a\x7a\xb6\xa4\xdd\xcb\x95\x50\xa9\x66\x7c\x2a\x8d\xc6\x09\x3f\x87\x42\xb5\xc9\x30\xa1\x99\xb7\x0d\x9e\xa6\x0d\x68\xa1\x51\x10\x4d\x77\xb3\xdd\x7e\x5f\xef\x1f\xd6\xbb\x6f\x4f\xee\x9d\x90\x5e\x68\x04\xb0\x4e\x55\xa9\xb3\x7c\x9c\xc3\x4b\x8f\x9b\x4b\x21\xfd\x0a\x2b\x6b\x60\x42\x84\x9a\x9a\x07\x53\xb7\x8b\x54\x7a\xe0\x29\xed\xba\xea\x76\x2e\x8c\xc9\xf0\x32\x60\x71\xc8\x1d\xf9\xb1\x82\xfc\x71\x5a\xa4\x90\x41\xca\xa2\x91\xfe\xc1\x4d\x56\x9f\xb0\x70\xe5\xa1\xda\x90\x96\x66\xd0\xdb\x32\x90\x82\x70\xff\xf8\xdf\x33\xe4\x5f\x50\x5c\x24\x0b\x14\xc9\xce\xdc\x94\x20\xa1\xa4\x27\x51\xba\x0b\x64\x60\x3a\x84\x35\xbc\xa3\x3f\x5e\x2c\x27\x27\xb1\x48\xac\xbb\x1e\x0e\x32\xdb\xd6\xe8\xaf\x2f\xe4\x06\xda\xd5\xfe\x32\x6b\xaf\x6b\xe8\x7a\xc3\x65\x47\x86\x8a\x19\xb3\xfc\xac\xba\xa9\xca\x93\x9d\xd1\xee\xa0\x36\x42\xb4\xb2\xcc\x0a\x23\x77\x7c\x87\xc7\xe3\xe5\xe1\x5c\x67\xd2\x8d\x89\xb4\x26\xe7\x9f\x3f\x0d\x38\xe8\xbe\xdd\x58\xdc\xb1\xd8\x97\xc4\x18\x32\x38\xbd\xe5\xe4\x06\xc6\xb1\xa4\xe2\x51\xb7\x8d\x11\xab\xba\xfb\x6c\x12\x38\x4f\xf3\x76\xf3\x34\x5d\x05\x77\x0c\x15\xc9\xf3\x14\x99\xc4\xbb\x73\xf7\x5b\x92\x94\x13\xd5\x40\x19\xac\xb5\x3d\xa1\x63\xc8\xcd\x48\x87\xa7\x32\x51\x3a\x85\x0e\x07\x4b\x71\xda\x1e\xd4\x84\xc3\x20\x53\x2f\xa5\x95\xd4\x02\xa4\x6c\x00\x3d\x49\x98\xc7\xaf\x8c\x6c\x33\x15\x53\xb5\x31\x5b\xc0\x4d\xf6\x5e\x4f\x4f\x2b\x84\x51\xfd\x3e\x18\x8c\x72\xdd\x54\xdd\x6f\xe1\x0c\xa0\xcf\xff\xad\x64\x77\x56\x12\x4c\x28\xe9\x06\xc5\x26\x18\xbf\xc7\xba\x2e\x8b\xfd\x27\x94\x24\xc9\xc1\xa8\x86\xb8\x4a\x4f\x31\xce\x95\xdd\x28\xcd\xa9\xb1\x74\x5f\xca\x89\xe3\xd8\x3c\x6c\xe2\x13\x5a\xe6\xe4\x36\x80\x1f\x13\xff\x9d\x70\x6d\x8f\xf8\x61\x7a\x76\xa3\xe8\x42\x02\x13\x42\xf4\xde\xe3\xf5\x04\xf8\x28\x45\xcc\xa2\x8e\x2d\x69\x21\xb6\x7d\xe5\xd9\xbc\x2c\x7d\x42\x34\xe9\xea\x4b\xe9\x79\x94\xcc\xba\x5f\x6f\x20\xd5\xf6\xa0\xf6\x4c\x6d\xcd\xda\x50\x1b\x4b\xa6\xdb\x69\x39\x56\xea\x28\xa6\xa7\xb1\x0a\xee\xbb\x4f\xa6\x31\x6d\x06\x0f\x97\xb1\xdd\x4f\x2a\x35\x8f\x1c\xe0\x65\xf9\xf1\x40\xa5\x43\x23\x4b\x0f\xd7\xe9\xbe\xd4\x32\xa4\x65\xef\xda\x8e\x69\x98\xf0\x90\x7a\xb1\x6f\xae\x33\x2f\x2f\xcb\x12\x3a\xa0\xbb\xf2\x92\x28\xb0\x5e\xa5\x84\xbd\x26\x6a\xef\x78\xa6\x29\x0f\xb4\xb6\x74\x8b\x31\xa2\xbc\x07\xf5\xbb\x91\xa8\x98\x6f\x61\x13\x57\x56\x2b\xe3\x93\xfa\xbe\xa2\x04\xe6\x06\xde\x33\x35\xb8\x01\xca\x4f\xb9\x2f\x3a\x7c\x9f\x51\xc0\xff\xec\x1c\x9c\xa3\xd9\xc2\x9a\x86\xb2\x38\x39\x3c\x0f\xf2\xd8\x40\x83\xda\x88\x48\x5e\x63\x0e\x15\x0b\x3c\x8c\xed\x02\xb5\x74\x9c\xb4\x19\x11\xbc\x76\x64\x4a\xbd\x59\x85\xb6\xa4\x39\x7e\x0e\x8a\x85\x9a\xaa\x8b\x58\xd4\xe7\x0a\x57\x65\xde\xee\x05\x15\xe4\x6e\x43\x99\x7c\x6f\x12\x11\x7a\xe0\x03\xf1\x6d\x9f\x15\xfb\x36\x39\x71\x25\x12\xc5\x20\xa2\xc9\xf2\x67\x99\x15\x82\x9e\xd4\x70\x25\x57\x4c\x1a\x09\xfc\x3e\x80\x71\x4e\x5a\xe3\x2b\x0a\x13\xe3\xcf\xaa\x17\xea\x93\x22\xa4\x8a\xbc\x90\xc4\x03\xcc\x4a\x74\x43\xa8\xc6\x7f\x54\x57\x57\x11\x37\x44\xd7\xe7\x97\xa7\x87\x27\xe3\xc7\x64\x19\xeb\xee\x57\xc4\x31\x83\xd0\xf2\x11\x20\xcf\xf4\x44\xdb\x40\xc5\x22\xa2\x56\xff\xee\xe9\x65\x35\x8c\x11\x55\xac\x63\x2a\xd0\x9c\xae\xfa\xbc\x2a\xf1\xa2\x98\xbb\x7c\xea\xd8\x15\x22\xce\xd7\x72\x1f\x2a\x65\x8c\x20\x06\x1f\x3d\x4a\xee\xa7\x65\x3a\x8d\x0a\xcb\x2a\x4d\x85\x32\xb5\xed\x6e\xdb\x57\xed\xbe\x9a\xb8\x87\xdd\x66\x77\x56\x52\x68\x91\xe7\x8b\xea\x70\x4d\x46\x1f\x7f\x35\x57\x09\xe5\xa6\x3f\x56\x0f\x8e\xb8\xaf\x64\xea\x79\xb2\x53\x89\x68\xb7\xab\xfa\x6a\xfb\xed\xb7\x15\xd5\x26\xaf\xc6\x5b\xb7\x2a\x3f\xea\x1f\xaf\x86\x24\xbf\xa9\x1f\xcb\x91\x38\x5d\xe7\xb3\x91\x2a\xa9\x7c\x0a\x04\x1e\xf1\x5c\x41\xfe\x5c\x95\x4d\x29\x4b\x97\x0b\x29\x25\x12\x7a\x2b\x8f\x97\xfa\xb5\xfc\xc8\x28\x55\x1d\x5f\xb4\xd2\x3e\x31\x2e\x3b\xf9\xee\xe6\x75\x1c\x0b\x29\x8c\x99\x6b\x3d\x59\x59\x42\x6f\xf2\xc3\xb5\x27\xc1\xef\xd7\x59\xca\xac\xcb\x3c\xbf\xe9\xfc\x31\x52\xa5\x21\xf2\x9c\xcb\x56\x76\xf8\x27\x68\xe9\xf1\xc4\x43\xaf\x7d\x11\xe9\x3a\x0b\x55\x7e\x78\x63\xbc\x39\x7a\x3c\x8a\x0d\x1e\xad\x8f\x57\xe6\xf7\x57\xf4\x54\xe4\x64\x76\x56\x65\xf1\x8e\x55\x4d\x49\xb2\x2e\x47\x6f\x1b\x86\x61\x40\x6d\x1c\x57\x0d\x7c\xc8\x8a\xcf\xe4\x14\x30\x4a\x53\x12\x07\x27\x3c\xe7\xa9\x2c\xf3\xdf\xcc\x59\xbb\xa6\x2b\xb3\x65\x35\x4c\xc2\x80\xf2\x73\x7b\x9d\xe3\x67\x81\x89\x4c\x98\xd5\xa3\x25\xdd\xc8\xfc\xb2\x18\x0a\x94\x61\xea\x6b\xca\xdd\xa8\x59\x91\xe3\xa1\x82\xe3\xf8\xa2\x39\xa2\xe3\x24\x3d\x57\x78\xcc\xce\xc7\xcf\xb9\xd6\x08\x5e\x4c\x18\x4e\xd3\x1e\x42\x65\x3c\xe8\xc6\x55\x51\x14\x41\x40\x60\x31\xa0\x77\x67\xfa\x62\xa2\xd0\x8c\xc4\x89\xb3\xcc\x81\xfb\x51\xa2\x91\xb4\x3d\x60\xb3\x3d\x21\x51\x5b\xcf\x2e\x6f\x40\xe5\x05\xa1\x89\x15\xca\x53\xd5\xa9\xc6\x8d\xef\x82\xf2\xa5\x52\x23\x7f\x9d\xff\x3b\xc3\x30\xdb\x41\x25\x02\xad\xad\x6d\x42\x93\x49\xc8\xf3\xcb\xba\x38\x64\x05\x8e\x2d\xfe\x53\x54\x32\xa5\x58\xb0\xb6\x64\x07\xfb\xe7\x36\x47\x0f\x49\x72\x63\xdb\xff\xc9\x00\x5a\x0d\x08\xab\x6b\x17\x2e\x2f\xdb\x02\x4e\xf5\x6b\x69\x24\xa4\x3e\x79\xfe\x28\x35\x89\xe8\x1c\xe1\xe7\xee\xe7\x90\x91\x80\xa8\x8c\xd5\xe4\x2b\xd4\xaf\xa6\x87\x3e\x13\xe8\xa3\x8e\xfc\xce\x70\xd8\xd5\x74\x7c\xd7\x6f\x43\x2d\x7d\xe8\x85\x91\x94\x39\xff\xf8\x29\x69\x4c\xa9\x3a\x4a\xb5\xae\xda\xd0\xc7\xc6\x4f\x4a\x7b\x1e\xb7\xca\xd9\xb9\x34\x49\xe8\x75\x60\xa9\xbd\xd0\x68\x01\xda\x40\xd8\xfa\x94\xde\x65\xef\xf8\xad\x5f\x39\xb5\xc7\x31\x08\x5d\xf2\x47\x03\xaf\x04\xbc\xb4\x9f\x98\x45\x63\x07\x6f\xed\x5c\x46\xf7\xec\xb4\x2f\x94\xb3\x82\x78\xc4\xec\xf0\x2a\xca\x73\xf5\x5a\x96\x6a\x3a\xb5\xb4\xaf\x24\x01\xca\xf6\x67\xb2\xa3\x7a\x80\xb7\x76\xa3\x82\xc9\x28\x16\x69\x22\xd7\x9b\x9b\xf3\x7d\x8b\xff\x7d\xef\x56\x3f\xcd\xa4\x72\x12\x08\xb7\x67\x52\xdd\x1b\x50\x70\x57\x56\xd9\x61\x34\xf9\x74\x28\x8c\xba\xc4\xa6\xc8\x1a\x6b\x40\xb6\xea\x63\x26\x1d\x85\x8c\x1a\xa2\xff\xfb\xbf\x5f\x21\xe4\x74\x24\xb5\x21\x5d\xd1\xfe\xfa\x63\xb5\x0b\x3e\x6b\xdb\xe8\x38\x48\x62\x5b\x8f\xa9\xaf\x56\x77\x1d\x07\x9a\x1e\x6c\x5d\x1e\xf1\x01\x9b\xd7\x52\x05\x5f\x23\x58\x74\x1c\xc6\xb4\x4e\x3a\xbb\xcd\x41\x4c\x3a\x6b\xad\x93\xea\x58\x18\x6b\x03\x73\xb1\xf6\x95\x33\x5e\x3d\x14\x11\x8e\xaf\x37\x09\x52\x22\x29\x11\x8e\x0d\x24\x89\x32\xfd\xfe\xc7\xbf\xdc\x05\xa7\x69\xca\x0d\x76\xff\x7d\x9f\x15\xdb\xa6\xea\xd1\x7f\x3a\x05\x9f\x4a\x97\xe2\x7c\xa1\xa6\xc8\x48\x60\x44\xf3\xc8\x7a\xde\xd9\x05\xf7\xb9\x42\xc2\xae\x7c\x5a\x5f\x9e\xfd\xf7\x13\x74\x88\x06\x5f\x45\xe4\xcf\x04\x85\xca\x91\x70\x1c\x2b\x23\x52\xf2\xd9\xdd\xb9\xfa\xba\xd9\x77\x5f\x83\x0c\xc9\x43\xea\xaa\x6b\xf4\xc9\xbf\x9f\x49\x44\x6a\xd0\x46\x5a\xc4\xe8\xb6\x3c\x2c\x7e\xdf\xaf\x9e\x1e\x77\x2f\x9b\xe5\xfe\xfb\x76\xe1\x6e\x92\xf0\x02\x65\x0a\xcb\x79\x7e\x8b\x48\xf5\x72\xc7\x3a\x77\x43\x64\x9c\x28\x67\x93\x53\x67\x87\x71\xb9\xed\xd3\xaf\x97\x5e\x42\xf3\x66\x7f\x24\xa7\xf6\xc9\x6b\x26\xc3\x88\xfc\x3d\xb3\x22\xfb\xd4\x45\xe3\x9f\x6d\xe4\x5a\x72\x03\xfe\xb6\x7a\xa3\xee\xc3\xa3\xf7\x47\x72\x49\x30\xac\xef\x45\x26\xcb\xea\x4a\x9c\x7b\x3e\x65\xd4\x52\x81\x51\x27\xaf\xb1\x71\xe0\x4b\x8d\xb1\x88\x63\xb7\xdd\xab\xc9\xc2\xa9\x91\x87\x26\xde\x22\x6d\xfc\xd7\x0a\xd1\x32\xcd\xd6\xff\x1d\x28\x1c\xda\xc1\x3a\x88\x39\x76\x48\xa2\xc5\x3b\x34\x70\x5d\xc9\xe3\x9e\x17\x7b\x54\x71\xa1\xf2\xe9\x44\xe6\x7e\x78\xc1\xdc\xf3\x12\x15\xda\x13\x36\x39\xde\x0d\x4b\x97\x93\xd5\x65\x78\x0b\xb9\xe7\x33\xe9\x44\xd2\x6f\x2b\x44\x8a\xd6\xaa\x4d\xf1\x5e\x66\x12\xeb\xe5\xc5\x52\xea\xe6\x5e\x1b\x77\x8d\x41\x18\x73\xa3\xaf\x28\xcb\xf7\xc1\xbb\x36\x32\x19\x1a\x73\x7f\xbe\x7c\xac\xed\x19\x0d\x90\xe2\x58\xaa\x4c\x5f\x1e\xb0\xae\xe1\x30\x2a\x99\x71\x8f\x45\x01\x81\x07\xbb\x0e\xab\x41\x31\x7e\xd5\x3e\xe2\x1e\x4b\xb9\x83\xdd\xfc\x80\xac\x69\x63\x86\xec\x88\xcb\xf3\x90\xf5\x6f\x87\x86\x11\xd7\x4e\x2b\x6e\x5d\x55\x13\x67\x13\xee\xc5\x32\xa5\xaa\xd4\x5e\x75\xda\xc9\x86\x3b\x3f\x64\x4f\x98\xc4\xd6\x45\xe4\xdc\x8b\x31\x8e\xed\x66\xf7\x33\x78\x2e\xf3\x4c\x5e\x13\x5e\xe7\xef\x48\xc2\x39\xbd\xab\x46\x34\x3c\x74\xbe\xb8\x38\xb9\xea\x94\x01\xc1\x49\x55\x05\x59\xf1\x60\x23\x07\xee\xa5\x61\xc2\xda\xbd\x0b\x65\x59\x94\xc7\xcb\xb2\x2c\xeb\x66\x06\x7c\xcf\xbd\x34\xe2\xd4\x7f\x7d\x59\x3c\xde\xad\x4d\xd7\xd8\xef\x4e\x92\x20\x69\x33\x4b\x28\x1e\xca\x77\x9c\x4c\xbf\x14\x0c\xce\xaa\x33\x26\xc0\x7d\x1b\x19\x7c\x9f\x7b\xc7\xc7\xd7\xcc\x03\x41\xd5\x8f\x0f\xc4\xa7\x02\xd7\xcd\xeb\x0a\x8a\xa5\xab\xa7\xf1\x36\x18\x97\x96\x42\xbf\x3a\x57\x57\x28\x35\xee\x71\x14\x1a\x1c\x9a\x8d\x6c\xae\xe6\x2d\xc9\xb8\xc7\x75\x20\xfb\xfd\x7d\x45\x72\xd5\x37\x59\xdd\x90\x9d\x89\x1d\x03\x4c\x6a\x2b\x40\x41\xe5\x35\xa8\x5f\x3f\xca\x5c\x77\x87\x85\x41\xec\xe7\xe7\xa2\xf3\xfd\xea\x8e\x49\x15\x59\xb6\xc0\x54\xd9\x9a\x7b\x42\x0a\x16\x38\xeb\xfb\x6a\x57\x8e\x58\x5d\x76\x8c\x14\x5c\x70\x27\xc5\x51\x15\x53\x75\xb4\xf1\x60\x15\xf8\x81\xd1\x91\x95\x43\x01\x10\xee\x29\xc0\xb4\x33\x2e\x5d\x7c\xbf\x72\x0a\x3c\x4f\xf5\x97\xb8\xa7\x94\x41\x91\x51\xe9\x71\x60\x45\xc8\x3d\x8c\x42\xfa\x4d\x15\x5c\x83\x90\x26\xcf\x11\xa5\x31\xce\x5a\xbf\x97\xd7\x91\x38\xf7\x74\x1a\x0a\x1b\x89\xaf\x77\xdf\x6e\xab\xd2\xd9\x41\x8c\xce\xe2\x7b\x91\xa4\x82\xf1\xb9\xa0\xf8\x73\xb8\xad\x73\xdf\x4b\x23\x22\x8a\x1e\xb3\xa2\xd9\x66\xb9\x1c\xa7\x66\xe3\x13\x05\x9e\x81\x8f\x1c\xa8\xe0\x75\xb9\x2d\xcf\x95\x3b\x4d\xe0\x27\x54\x6e\x37\x95\x56\xe3\xad\x50\xef\xe1\x8a\xe5\xd6\x8e\x14\x14\xc1\xb9\x45\x66\x51\xa8\x05\x15\xae\x3f\xf9\xce\xd8\xb7\xfa\x18\xcd\xb9\x2a\xee\xcb\x09\x9f\x94\xfb\x01\x60\x68\xf3\xc5\x7b\xa8\x9b\x67\xc8\xd4\x90\x43\x6e\x47\x31\x4f\x51\x6b\xd5\x6c\x24\x1f\x65\xb7\x8d\x2c\x2f\x1d\x65\x94\xfb\xa1\x17\x50\x3a\x50\x37\xf0\x86\xbb\xc5\x53\xbb\xb1\xcd\x30\x75\xcd\xca\x9b\x7e\x5d\x3e\x9d\x47\x8e\xbb\x2f\x8a\x92\xc8\x98\xcc\xaa\x67\xf2\x07\xdc\xc8\xf2\xb6\xac\x76\x58\x77\x84\x41\xee\x87\x1c\x59\xd8\xb5\x1a\x51\x75\x0c\x6d\xee\x87\x2a\xa5\xea\x7e\xbb\xd6\x52\xf8\x3e\xa8\xd4\x70\xbf\x7d\xbd\x6d\x9a\xf9\x70\x6e\x7a\x75\x37\xf7\xe6\xf8\xb1\xf2\x48\x4f\x44\x95\x73\x56\xfe\xed\xf1\x80\x1b\x18\x46\x23\x5f\x97\xe6\xa5\x7b\xae\x50\x67\x3f\x7f\xb9\xd6\x5f\xe6\x7e\xe2\x1b\x76\xc8\x4d\x79\x18\xdb\x18\xfe\x4d\xc4\x31\xb9\x29\x89\x0f\xa6\x5c\x6c\x48\x3b\x2f\x28\xb3\x53\x86\x45\x33\xe0\x0f\x71\x3f\x09\x18\xe9\x1e\xc2\xe1\x90\x9d\x8b\x43\xb6\x97\x36\x17\x1c\xd5\x07\xb8\x9f\x24\x9a\x6a\x95\xdf\x76\xab\xd1\xbd\x49\x84\x17\x24\x9d\x78\xce\x9f\x28\x9b\x39\x1e\x29\xf7\x13\x6d\xe0\x48\x4f\x3f\x2f\x7d\x09\x94\xfb\x69\x10\xa7\xbd\x1b\xde\x4d\x05\x1f\x57\x9f\x4c\x13\xd4\xbd\xa2\x8b\x05\x11\xcd\x85\xf6\xdc\xe7\xa9\x47\xd8\x0b\x9d\xe5\xf9\xf2\x7c\x21\x9a\x39\x89\xc1\xb5\x29\xf3\xd7\x6b\x83\xcf\x25\xf8\x56\x94\xe8\xe1\x32\x26\x70\x70\x1f\x3c\x03\x04\x24\xa2\x1d\xaa\x67\xa8\x6a\x94\xab\xaa\xcd\x5c\xbb\xc9\x0e\x71\xea\x0a\x2d\x8b\x3c\x27\x65\xae\x7b\xec\x26\x9f\x60\x20\xa3\x7e\x0e\xe5\x02\x7b\xc7\x05\xee\x8b\x98\xa7\x56\x62\xe1\x11\x3f\x9e\xc4\x9f\xa3\xb7\xb7\x9b\x67\x42\x98\x72\x8a\x29\x61\xac\x0f\x87\xc9\xad\x92\x0c\x18\x76\x92\xca\xcd\xb9\x1e\x7e\x87\x94\x7e\x32\x54\xce\x35\x29\xe2\xf4\x0c\x52\x91\x1c\x05\xe4\xf9\xad\x69\x37\x3d\x57\xa5\xc4\xba\x63\x33\x72\x5f\x2a\x8f\x53\x06\xf0\x9a\xd5\x56\xdf\x6c\xbd\xfb\xe6\x8e\x2a\x1f\xc1\xbc\x0a\x1f\x45\xd3\x55\xac\xb8\xaf\xa4\xe1\x97\x3f\xdc\xdc\x77\x7f\xd2\x21\x75\xa7\x1e\xcf\xd5\x59\x0e\xe6\x84\xd2\x29\x71\xd5\xad\x12\xc3\xb6\xcc\xd5\xd3\xb9\x99\x2c\x53\xe8\x7b\x24\x5b\x03\x1d\x01\xc5\x18\x1e\xf6\xd7\x89\x3e\x33\xbd\x88\x6f\xdf\x1f\x7f\xdd\x6f\x37\xff\x5a\xbb\x23\x9a\x2b\x6e\x63\xe4\x47\xdd\xd4\xcb\xcb\xb5\xf2\x12\xf7\xb5\x4e\x68\xcf\xdf\xee\x9e\x5e\x16\x77\xeb\xfd\x8f\xc5\xfd\xfd\xda\x56\x7d\x79\xe0\x47\x01\xf5\x2e\xf0\xfd\x8a\x5b\x34\x4d\x13\x66\xd7\xe1\xc0\x17\x21\x05\x6f\x6d\x72\x38\xab\x51\xc8\x83\x20\x08\xe9\x3b\x48\x79\xac\xba\x3d\x17\x72\x7e\x4d\x0f\x82\x28\x24\x40\xa3\xb1\x0c\xa8\xd1\x3e\x39\x77\xad\x01\xa2\x95\x63\xb6\xe2\xe2\xd3\xaa\x3e\x0f\x18\x83\x38\xea\x45\x26\x37\xea\xaa\x3e\xee\x06\x86\x1e\x11\xfa\x36\xab\x27\x63\xa2\xbc\xdf\x6d\x1e\xd6\xce\xb2\x8a\x07\x4c\x32\xe5\x5c\x64\x29\xa3\xb0\x41\xf5\xe4\x2c\x98\x90\xcb\xeb\xab\xd1\x5b\xef\x17\xe2\x20\x62\x3e\x75\xea\xc8\x3b\x6b\xaf\x50\x9d\x8d\x2d\xbb\x7b\xcb\x82\x38\x50\x80\x43\x31\x75\x57\xb3\x1e\xe6\x24\x41\xcc\x34\xcd\xd1\x4c\xb7\x13\x6b\xb8\x60\x05\x71\xac\xe5\x40\x3d\xfe\xa5\x14\xe5\xa7\xe1\xdf\xfc\x52\x11\x24\x5e\x88\x69\x07\x77\xea\x36\x83\x41\x18\x1d\x24\x90\x5a\x4d\xab\xf6\x32\x5d\x42\x77\x9d\xa4\x8c\x1f\x43\x22\x3b\x43\x53\xdb\x42\xfd\x34\xbd\x9e\x4b\x94\x82\x44\x01\x21\xdb\xc4\xf9\xf2\x0c\xf2\xed\x47\xd6\xbc\x92\xcb\xdd\x2f\x93\x61\x08\x44\x11\x11\xed\xcb\x33\xb0\x95\x3f\x5f\xa9\xf6\xf1\x20\xd1\x46\x66\xb1\x0d\x07\x08\x03\x4e\x3d\x35\xaa\x4c\x4d\xae\x5d\x4b\x23\x2d\x67\x78\x1a\x23\x35\x5c\x1e\xa4\xa9\x22\x94\xda\xe9\x5c\xbf\xee\xca\x25\x14\x6f\x93\x8f\xa7\xa0\xc2\xa4\xeb\xe3\xae\x9b\xd7\x65\xa6\x26\x52\x2c\xa3\xa7\xe1\xf2\x81\x80\xa7\x82\xf7\x04\xab\x67\xac\x2c\x72\x6b\xce\xe3\x89\x07\x10\xa9\xa4\x37\x09\x6c\xb7\xfb\x1b\x94\x70\xe9\x4a\xb3\xff\x70\x22\xcc\x5a\xf6\x0c\xbf\x47\xc4\x29\xa9\xf4\xb9\x9a\xc6\xf3\xfa\x65\xf3\x74\xe3\xef\x49\xba\xd4\xdd\x14\x91\x68\x42\x02\x2e\x14\x99\xbb\x55\x23\xe8\x1d\x0f\x04\x30\x02\xcf\xda\xfd\x9b\x9e\x11\xb5\xf7\xfd\xee\x04\x22\xa6\x38\x7a\xbf\x82\x3c\x5f\x88\xb2\x1a\x12\xc0\xc7\xe0\xe2\xee\xc2\x74\x60\x5c\x16\xe0\x7d\x54\x5f\xfc\x9f\xaf\x09\x84\x5f\x51\x97\x79\x20\xbd\x40\x76\xa2\x2c\x4f\x27\x2c\x7e\x50\xd7\xe2\x93\x35\x44\x45\x7e\x92\x5a\x2e\x3a\x56\xa4\xbf\xd6\xf7\x36\x78\xa0\xb4\xa0\x7e\x1e\xfd\xd4\xb9\xb6\x22\x0f\x30\x8c\x8c\x8d\x5c\x1b\x7d\x72\x41\x2e\x7f\x77\x65\xa9\x76\x9d\x67\xe5\x2b\x16\x36\x24\xfd\xa5\xfb\x8c\x8a\x47\x66\xc8\x59\x71\xd8\x36\x78\x9a\x9e\x3a\x92\xcc\xe6\xbf\xf4\x4c\xae\x15\x5c\xda\x31\x9a\xda\x89\x0e\xce\x66\xda\x82\xdb\xef\xcf\xcf\xf7\x7f\xec\xef\x37\x0f\x9b\x6e\x9b\xd0\x01\xa7\x17\x7a\x55\x1e\x4f\x15\x74\x7f\x4d\xc2\xd0\x00\xb9\x6f\xe0\xb2\x7b\xcd\xaa\xee\x22\x75\x2a\xc9\x7d\xfc\x61\xf3\xb8\x5f\x7e\xff\x63\xb9\x58\xfd\xba\xff\x6d\x71\xff\xbd\x9b\x32\x9a\x4b\xdf\xa6\x28\x0e\xa4\xda\xe6\x29\x23\x50\xe6\xe4\x76\x6b\x85\x14\x4d\x62\xf3\xfa\x82\xf2\xeb\x28\x88\x79\xda\x8b\xb5\x93\x6d\xdf\x42\x8e\xe3\x72\x5a\x37\x8a\x41\x6c\x4e\xe9\x96\xb6\x51\x13\x8d\x33\xdf\xe7\x04\xa6\x14\x57\xcd\xe6\xd9\x2d\x8c\xf9\xda\xb7\x0a\xb4\xb2\x2c\x14\x41\xd0\x1e\xe0\xb2\x76\x40\xb4\x76\x00\xb8\xc6\xe2\x43\x59\xd4\x0d\x56\x77\x58\xa0\xd5\x49\x99\x9c\x2c\x60\x9c\x58\x14\xe5\xb9\x39\x9d\x1b\xf3\x0b\xc6\xeb\x11\x0b\xc2\x90\x5a\x22\x27\x83\x88\x1d\x26\x94\x8c\xf9\xa1\xf3\x8c\xde\x76\x7f\x63\x1a\xac\xdd\xd6\x9e\x30\x30\x93\x3b\xc2\xb8\x22\xe8\x48\x9b\x3c\x28\xf8\x7a\x99\x67\x4c\x1a\x81\xaa\x36\x47\xa4\x6a\xfb\x6c\xfc\xce\x18\xc6\xd8\xc1\x39\xa8\xa7\xf5\x69\x26\x60\x3f\x11\x26\x48\xed\xcf\x7d\x8d\x79\xfe\x2b\x5e\xae\xbb\xdc\xa3\x8c\x9f\x85\x69\x44\x19\xff\x5b\x21\x5f\xa0\x41\xea\xf9\xd4\x46\xf5\xd0\x8d\x00\x41\xb7\x7d\x21\x9b\x33\xe4\x84\x8b\x6d\x1a\xc4\x97\xb2\x3c\xba\x21\x11\x93\x22\xf9\x04\x81\xc3\x96\xd8\x40\x37\x30\x15\xe4\xd7\x55\xe0\xc7\xfa\x71\x3b\xb9\x81\xb1\xe7\xf1\xb8\x73\xe8\x6a\xdf\x17\x6c\xb2\x2b\xaa\x27\x67\xb1\xaf\xe8\xfd\xc4\xe6\x95\x04\xa0\xde\xb1\x38\xe3\x0b\x19\x64\xba\xef\x89\x53\x4f\x19\x99\xb8\xcb\x35\xb9\x61\x66\x53\x60\x31\xa6\xb4\x20\x39\xe3\x57\x97\x85\xb3\x24\x31\xa8\x97\x63\x33\xea\xbf\x72\x96\xe8\x38\x75\x6a\x11\xeb\x1c\x87\x0c\xe7\xf1\xe5\x72\x5f\x09\xbb\x7d\x2e\xb1\xc8\x74\x26\x33\x70\xe0\x25\xce\x78\x14\x13\x93\xe6\x4c\xc6\x84\x5b\x3a\xc1\xe4\xf7\x82\xcf\x89\x18\x2c\xce\x97\xd9\x02\x38\x67\x20\x38\xf1\xa5\x44\xa6\xea\x7d\x76\x28\xca\x0a\xd5\xde\x24\x4b\x5d\x30\xcc\x04\x97\x29\xb7\x9e\x9a\xbd\x7c\xd5\xf0\x34\x02\x3c\x12\xb5\xe8\x8b\x85\x34\xe5\x26\xc5\x8f\x76\x58\x6c\xb3\x9c\x4e\xe7\x66\x31\x59\x20\x99\x8c\x38\x95\x99\x8d\x2a\xb1\xf3\x24\x1b\xd0\x32\x26\xc3\x79\xea\x29\x57\xec\xa0\x72\x9c\x3d\xa0\x18\x46\x76\x35\xea\x90\xa9\x53\xee\x34\x67\x18\x18\x90\xc9\x5f\x59\x9e\x63\xef\x38\xe4\x8e\x86\x1e\x35\x1b\x49\x37\xd5\xba\x9d\x67\x03\xd3\xd1\xaf\xd7\x43\x4c\x44\x60\x25\x80\x0f\xc8\x6e\x10\x54\xde\x49\xde\x70\xa6\x03\x53\xac\x6d\xa3\x5d\xca\x33\xa9\xd1\xd6\x75\xb5\xae\xac\xbe\x2d\xdd\x84\x33\xcd\x74\xaa\x3a\x45\xdb\x6b\x38\x53\x7f\x01\x3a\x4a\x68\x02\x49\x38\x0d\xf1\x1c\x3c\xf4\xd2\x84\x22\xed\x3f\xcb\xac\x58\xd4\xcb\xaa\x7c\xeb\xe6\x6d\xe8\x6b\xa0\x09\xdd\xa5\x7a\x4e\x4a\x86\x87\x81\xe7\x69\x47\xef\x5d\xe4\xf9\x93\xa1\xa7\x0c\x2a\x58\x61\xc0\x18\x01\x87\xcb\x0a\x64\x9e\xfd\x85\x77\x50\x93\x97\x8d\x3b\x2c\x22\xdf\x32\xd5\x67\x9a\xbb\x3c\x0c\x64\xe4\x0a\xc8\x53\xf2\x31\x0f\x19\x33\x8e\x5d\x58\xa8\x9b\xb1\x04\x0f\x0f\x99\x94\xb4\x3c\x9c\xca\x0f\xac\x6e\x68\xf1\x1f\xbc\x72\x61\x18\x18\x2f\xcd\xdb\xf2\x5c\x2d\xaa\xee\x72\xc2\x48\x11\x9e\xc3\xac\x3e\xa4\xb1\xf8\xf5\x23\x0d\xc3\xc4\x48\x63\x98\xb4\xca\x91\x83\x47\xab\x51\x18\x42\x4c\x90\x76\xea\x69\xd8\xb6\xfe\x0b\xd6\xe5\xb9\x9a\xc6\x22\x61\xa8\x23\xc7\x3d\x6f\x4f\xb0\x2b\x4d\x05\xec\xcb\x1d\x20\x8c\x22\x4e\x82\xdc\xeb\xdd\x70\xae\x86\x91\x64\xdc\x7a\xac\xb8\x5f\x7f\xee\x79\xc8\x3c\x8c\xd0\xb0\xa2\x57\xab\x6f\xfb\xa7\xfb\x4d\x57\xf8\x0e\x63\xdf\x37\x10\xe6\xfc\x5c\xbf\x8e\x5d\x18\xc7\x5f\x1c\x83\x72\x3a\x51\xb6\xdd\x4b\xed\xf3\x79\x12\x19\x0f\x13\x6e\x9c\xd5\xdb\xb0\xfd\x05\xf5\xa6\x90\xe5\x44\xc3\x9c\x87\x69\x00\x14\x0c\x7c\xaf\xb3\xe2\xb0\x78\x2c\xab\x23\xe4\xdb\xa6\x3a\xcb\xee\x19\xa5\x11\xb7\x54\xbd\x62\xd9\xc1\x4c\xd5\xf2\xb2\xde\x7d\x1b\x6a\x5c\xf1\x90\x6b\x53\x24\x68\x97\x55\x37\xee\x8b\x02\x6a\x08\xa1\x12\x46\xc4\x6c\x7b\xce\xc8\x38\xe2\xee\x3a\x86\x77\x63\xa5\x26\x85\x9b\x5d\x56\x5c\x5e\xca\x73\x33\x4d\xf8\x43\x40\xa3\x05\x91\x43\xdd\x6c\x1b\x84\x9c\xb6\xc3\x21\xd0\x97\x87\x22\x06\xec\x8a\xa3\x97\xf5\xe1\x30\x55\xda\xe3\xa1\x4c\x4d\x05\xe5\xf1\xf7\xdf\xdd\xa7\x54\x02\xba\xeb\xc9\x9d\x8b\x66\x91\xe7\xcb\x73\x96\x1b\x74\xd4\xb0\x11\xe3\xc6\xcb\x28\x4e\x2d\x53\xd2\xc6\x55\xf5\x04\xba\xcf\x43\x0c\x85\xb6\x9a\xee\x24\x27\xd2\x79\x29\xf1\x10\x53\x4f\xf7\x72\xc3\x14\x1b\xee\xca\x8e\x2e\x38\xbe\x2d\x98\x32\xd2\x65\xb5\xfe\x29\xa3\x57\x59\xfb\x46\x31\xb7\x1e\xac\xf5\x1d\x07\xf0\xcb\x78\x2e\xf2\xfc\xc8\xf4\x09\x4e\xf0\x51\xd8\x80\x6d\x7e\x4a\x46\x5e\x2c\x69\xb3\xd8\x9b\xba\xec\xa2\x26\x1e\xe5\x73\x55\x12\xde\x67\xfe\xf4\x3e\x07\xe2\x42\xdf\x66\x15\xfe\x1c\xbe\x42\x91\x2f\x0d\x06\xf6\x11\x3f\x16\xa7\x93\x83\x46\xd9\x83\x01\x93\x3c\xe9\x4a\x74\x8b\x36\x8e\xab\xbb\x63\x3a\xa1\xba\xf7\x30\xdb\x72\xc7\x42\x8f\xf1\xc8\xa9\xab\xb5\xa1\xc6\x4d\x46\xa2\xec\xdd\xf1\x58\x91\xc8\xbb\xd3\x62\xf8\xd5\x1d\x88\xbc\x80\xf0\xa4\x39\x89\xfd\x92\x5e\x60\xf7\x85\x51\x1c\x92\x0a\xfa\x76\xbd\x7a\x7a\xbc\xd9\xb6\x29\xe2\xfe\x61\xf3\xf8\xdd\x31\x20\x79\x14\xf1\xd4\xb3\xee\xe0\xdb\xd7\xec\xb4\xbc\x4c\x7c\xa4\x78\x14\x21\x1a\x67\x4a\x7c\xc7\xaa\x79\x2c\x0b\x59\xc3\x95\x67\x83\x1d\x1b\x7b\x82\x89\x6b\x83\x8c\xb9\x82\x75\x14\x07\x31\x55\x2b\xef\xb3\xbf\xce\xdd\xdd\x4b\xfc\x88\x88\xf0\x16\xc1\xbe\xc5\x2e\x3a\x8f\x92\x04\x7c\xab\x1e\xf9\x2d\xab\x9b\x65\x23\xaf\x24\x89\x79\x94\x06\x8c\xda\x1d\x35\xe8\x71\x5f\x9a\x47\xa9\x45\xf5\x9d\xa0\x6a\x0a\xac\x6c\x3b\xb5\x1e\x99\x30\x4d\xa6\x4d\xaa\x7c\x2a\x04\xed\x2a\x9c\xf8\x24\xf2\x88\x07\x40\xe6\xf8\xae\x82\xd8\xa6\xa5\x9d\xd7\xd7\xff\xd8\x7f\xc6\xa7\xe3\xb1\x22\xa2\x8b\xc0\x66\xe8\xa9\x63\x8f\x42\x1c\xd2\xe4\x30\xa6\xbf\x93\x98\x34\x02\xc9\xa9\x3f\x7d\xbf\xfc\x62\xb1\x8a\x40\x7b\x54\x41\xcf\x14\x16\xcd\x10\x0a\x30\xbe\x10\x11\x08\xa2\x90\xac\x9b\xd7\x0a\xb4\xce\x71\xff\x1e\x08\xf7\xc3\x44\x08\x94\xbd\x17\x70\x9c\xc9\xa9\xdc\x20\xa9\x69\x55\xfc\xfe\xdb\xcd\x66\xf5\xd4\x7d\x54\x45\xd4\x35\x24\x17\x9e\x92\x52\xff\x41\xcf\x21\x12\x88\x84\x1d\xa2\x5f\x78\xdb\x2e\xe2\x23\x59\x01\x1e\x29\xab\xac\xf6\x00\x95\xc8\x71\x0d\x55\x0f\xc4\x9d\x7c\xbf\x4a\x7c\xda\xa5\x6e\xd7\xeb\xfd\x76\x7d\xbf\x5e\xed\xf6\x0f\x8b\x97\xbb\xcd\xe3\x7e\xfb\x7c\xdf\xe5\xc6\x91\x4a\x42\xb4\xaa\x7e\x7b\x23\x68\x6c\x84\xf7\xda\x98\x5d\x4d\x15\x09\xdd\x67\x44\x4c\xd5\x28\x71\xbe\xfc\xea\x30\x56\x3c\xd2\x81\x47\x65\xf1\x36\x6b\xfe\xb1\xde\x8c\x00\xba\xed\x51\x99\xd8\x94\xf9\x01\x7e\xde\x97\x50\x8c\xd9\xe1\x6e\x58\x6c\xaa\xd1\x0a\x2e\xcf\x65\xb3\xfe\x79\xca\x86\x06\x57\x3c\xd2\x49\x80\x64\xfe\xed\x78\x3a\x3c\xd2\x90\x70\x22\xe1\x62\x1b\xed\x75\xcd\x5a\xd2\xaf\x1f\x4f\xa0\xb8\x8d\xba\x82\xde\xd0\xca\x19\xef\x7f\x29\x26\xef\xb6\xc5\xd8\xf3\x83\xc4\xe2\x26\x02\x8a\x81\xaf\xac\x88\x78\xec\x09\x6e\x84\x14\xca\xb3\xc8\x71\x9b\x8d\x56\xc5\xd8\x13\x22\x4c\xa7\x7e\x24\xd3\xa8\x27\xf6\x63\x93\x97\x9a\x52\xda\x6d\x85\xf8\x57\xbb\xa5\x1f\x66\x69\x55\x3c\x0e\x52\x83\xbc\x59\x1a\x16\x6b\x3d\xfa\xc6\x80\x2b\xf2\xa9\x32\xaa\x7b\xfd\xe6\x14\x33\x8f\x13\xd3\xfa\x00\xcd\x2b\x56\x4f\xb9\xba\xc2\xa3\xbb\x81\x5c\xa6\x5e\x7f\xcb\x76\xaf\xf8\x54\x65\x87\x6c\xca\x3f\xe7\x31\xd3\x8c\xca\xb1\x0f\x8b\xdf\xf7\xcb\xef\x7f\x6c\x1e\xf7\x77\x8b\xed\x90\x80\xc8\xe3\x88\x19\xa3\xa6\x57\xa8\x89\x62\xf0\x6c\x99\x55\xe3\x6f\x8c\xe3\x38\x95\x03\x2b\xcf\xae\x61\x1d\xc7\xa9\x1f\xa4\xbd\xda\x9b\xe9\x85\xd6\x56\xf1\xcd\x0d\x4a\x12\x41\x9b\x52\xbb\xbe\xad\x8d\x66\xd1\x97\xa2\xe9\x96\x8b\x31\xfa\x2d\x09\x70\x4a\xa6\x15\x34\xb0\xa5\x70\x73\x65\x85\x0f\xd7\x3f\x9b\x0a\xc6\x09\x7d\x37\x41\x12\x61\x3c\x41\x2a\xc7\x0d\x1d\x40\x10\x79\x9c\x60\x4c\x39\x3c\x09\xe5\x2f\xb3\x11\xcc\x9e\xc7\x29\x08\xda\xdb\xb0\x00\x61\xb7\x4b\x57\x46\x03\x91\xe5\x1d\x0c\x95\xc7\xa9\xf2\xa8\x49\x55\xbf\x56\x59\xf1\xe6\x07\xe9\xe4\x39\xa4\xe8\xa3\x2d\xd1\x3c\xdf\x2f\x76\xd7\x5c\x30\x1e\xf3\x54\xc7\xc1\x00\x3e\x40\x2f\x62\x57\xc1\xff\x32\xa4\x88\xb9\x4c\x49\xb0\xa0\xfe\x80\xd3\xdf\xa8\x05\xf2\x18\x62\xc1\xac\x02\xa5\x51\x84\xba\xcd\xe1\x30\xe5\xab\x10\xc9\x3e\x30\x2a\x7e\x13\xba\xc7\xe8\xe5\x15\x11\x12\x31\x6d\xbb\x7e\x59\x3f\x6e\x76\x7f\xb8\x1b\x22\x52\x13\xf9\x8a\xac\xf9\x28\x2b\x55\xf7\x7a\x4f\xe3\x6a\x53\x2c\xb4\xb1\xb3\x6b\x43\xcb\x6f\x7d\x97\x3f\x96\xca\x33\x02\xde\x65\x05\xa3\xb7\x47\x79\xbe\xb2\xc8\x67\x03\x5e\x7d\x7a\xc7\xaa\xca\x14\x6e\xe6\x29\x0e\x3c\x56\xcc\x28\x0c\x75\xc6\x6c\x4e\x99\xad\xeb\x03\xc5\x2a\x36\x9d\xfd\x13\x75\xc8\xa9\x3c\xe4\x8e\x00\xe7\x68\x9d\x3e\xaf\xe8\x72\x76\x0c\x46\x3c\xb2\xfd\x51\xa2\xe6\x11\x74\xca\x1e\xd3\xe8\x3c\x47\x6b\xa7\x42\xdd\x66\x95\x04\xdd\x75\x5f\x92\x78\x2c\xa1\xfc\xae\x3d\xfd\xae\xec\x9b\x43\xbe\x3b\x9e\x44\xa1\x8d\x4f\x76\x3f\x3f\xe9\x3f\x25\x1e\x9a\x3b\xd9\xee\x62\xd7\xf1\x79\xe2\x47\x4e\x31\xdb\xf0\x18\x4d\x28\x39\x2a\x74\x24\x3e\x37\xc5\x4b\xd3\x0e\x33\xcc\xe1\xf1\xb4\x48\x7c\x19\x44\x9d\x74\xca\xe7\xb3\x2c\x09\x82\xd8\x57\x43\x52\x24\xad\x2b\xf3\x4a\xe4\x3c\x61\xa1\x4f\x3d\x10\x93\xaa\xfe\x80\x03\x81\x35\x9c\xd6\xed\x68\xca\x25\x8c\x2b\xe7\x32\x4f\x13\xe3\x3a\x9c\x4a\x98\x48\xa8\x64\x5a\x94\x0a\xf7\xaf\x38\x94\x11\x77\x23\x74\x20\xc3\x01\xb5\x6e\x2f\xcb\xfc\x6f\x4c\x8f\x78\x12\x06\x2a\xe8\x25\x68\xee\xce\x93\x60\x27\x09\x53\x8c\xcc\x5a\x53\xe0\x07\xe4\xb5\xe9\x82\x2f\xb4\xce\xf2\x0c\x1a\x24\x52\x98\x1b\x2a\x3d\xaf\x33\x76\xd9\xd4\x4f\x45\x6e\x3b\xad\xe3\xdf\x9a\x44\xa6\xb9\xde\xbc\x66\x95\x32\xf1\xb5\xe1\xbd\xad\x0b\xb5\xec\x4d\x34\x78\x92\x70\x4e\xa9\xb6\xd9\xe3\xaa\xfe\xcf\x82\xba\xfe\x96\x9b\xf6\xe4\x94\x3f\xe7\xe3\x30\x0a\x55\xa9\x0f\x0e\xef\x58\x5b\x01\xc4\xee\x54\x1a\xe8\x54\x7b\xea\x3f\x7e\x26\x1b\x39\x39\x61\x9b\xb0\xf9\x24\x29\xda\xde\x31\x7a\x2f\xce\x57\x00\xa6\x84\x73\x4e\x8e\x9d\x3f\x28\xa8\x1b\xf4\xbb\x13\x0e\x9a\xb2\x92\x36\xc9\x36\x3a\xd6\x63\x43\x47\x37\x4c\x80\xb4\x31\x36\x69\x8c\x1f\xb1\x5a\x42\xf1\x66\x54\xd8\x7f\x19\x0f\xd5\xa8\x3a\xf1\x11\x02\xdf\xb8\xef\x82\x30\xa1\x8a\x23\x5a\xd3\x78\x27\x1e\xfe\x4c\x66\xe3\x6a\xa6\xe2\x9a\x88\xc0\xe7\x56\x34\x6c\xff\xe1\xec\xb7\xfc\xee\x68\x12\x3b\xed\x06\x92\xb4\x22\xa4\x73\xf7\xce\x0b\x6e\xb0\x68\x05\x9e\x8f\x50\x75\x0f\x52\xea\x94\x48\x4b\xdd\x7b\xf3\x37\x73\x52\x6a\x10\x43\x6f\xac\x2b\x28\x3f\x4f\x54\x9a\xa8\xa8\x8f\x16\x7a\xef\x70\x77\x5c\xc4\x31\x8e\xe4\xf9\xbb\x23\x52\xd0\x9e\x84\xbd\xd8\x16\x4f\x30\xe4\xc6\xe7\x12\x8a\xf3\x44\xc1\x83\x27\x18\x2b\x2a\x0b\xc3\xe9\x94\x5f\x1c\xb5\xc5\x1d\x53\x9c\x60\xcd\xbb\x73\xd5\xe4\x78\x0b\xd5\xb1\x3f\xa9\x8e\x19\xed\x23\x96\x3e\x6b\x12\xcd\xbd\xa1\x9a\xec\x11\xe4\x6b\x37\x10\x7d\x8a\x45\x29\x12\x7e\x28\x55\xa6\xb3\x81\xa6\xe1\x38\xdc\x4e\x3d\x1e\x53\xcf\xa8\xa0\x95\xf0\x49\x93\x4b\xe4\x2f\xee\xa0\x0c\x28\xc8\xce\xb3\xa6\x01\x9d\x59\x00\x96\xa9\xe3\x4f\x7d\x43\x67\xff\xe9\xe3\xbd\xd4\x67\x46\x88\x85\xf0\xa4\x59\x61\x0d\xab\x3e\xbb\x2c\x5f\xa6\x36\x35\xfd\x13\x65\xf3\x0c\xe7\xda\xea\xd4\xfc\x32\x38\x65\xa0\x0c\x05\xf0\xca\x09\xc8\x1f\xdf\xf2\x94\x45\x48\x3e\x3c\xf7\xe5\x61\x71\xa8\x90\x2a\xee\x8b\x23\x52\x89\x7b\x06\x52\xcd\xd3\xd0\x17\x54\xd7\x90\x64\xff\x7f\xa1\xa6\xc6\xc2\x89\x01\xb7\x69\xe6\x65\x5a\x9c\x75\x1f\x0c\x4d\x73\x7f\xb9\x79\xd8\xec\x6f\x16\x4f\x7b\xe6\xef\x5d\x0b\x23\x0d\x55\xc2\xed\xbe\xfc\x02\x9d\x3e\xf4\xd5\x84\x4d\x43\x65\xda\xcc\xff\xc2\x22\xfb\x39\x24\x92\xf3\x34\x42\x46\x82\xa0\x3d\x6f\xab\x3b\xc0\x0d\xb7\xa8\x76\xa5\x9a\xdb\xb2\x5a\xe4\x57\x61\x91\x1d\x9e\x84\x3e\x35\x06\x4e\x96\xec\x64\xd5\x9f\xdd\x51\xce\xe9\xb9\x3f\xe0\x9f\x50\x77\x97\x9f\x48\x19\xda\x3a\x86\x1e\x38\x58\xdb\xa3\x69\x68\x68\x42\x76\x1d\x5d\xe5\x59\xbf\x6b\xa6\x69\xec\x51\x59\x77\x5f\x63\xa1\x9e\xab\xec\x58\x56\x2a\xb3\xfc\x67\xd2\xdc\xa0\xb2\x08\xbe\xcf\x17\x79\xd2\x94\xf3\xd4\xb0\xbc\x75\x9b\x56\xb8\xd7\x25\xe5\x41\x1a\xd8\x0a\xde\x09\x0b\xd5\x86\xa0\xb7\x55\xf9\x17\x16\x2b\x1c\xfc\xf2\xf1\xcd\xe5\x4c\xd2\x1d\x84\xf6\x2b\x47\x45\xf1\x14\x3c\x85\x16\x8d\x76\x97\x35\xdf\xce\x62\xb4\x2e\xa6\xe0\x87\x04\x32\xa6\x7b\xf6\xa4\x89\x32\x70\xea\x7b\x00\x6e\x5f\x4f\x01\x19\xe3\x5d\x33\xea\x01\xaa\x43\x56\x5c\xb9\x5c\xf1\x54\xf8\xa6\x7d\xd3\x66\xb0\xa7\x0a\xf7\x6f\x17\xb9\x27\x83\x90\xbd\xc2\xa2\x24\xc7\xad\x4f\x48\xc1\x3c\x15\x89\x0e\x6d\x56\x3a\x03\xd1\x48\x85\x66\x84\xfd\x19\xea\x5a\xfe\x85\x55\xd9\x67\xbd\xa9\x64\x71\xd4\x19\x0c\x3f\x64\x87\x0a\x1a\x24\xa0\x94\x3b\x9e\xc4\x54\x94\x3a\x96\x8a\x27\xbe\x37\xcc\xf6\x53\x09\x82\x82\x39\x71\xae\x0a\xaa\x0f\x4e\xeb\x82\xa9\xd4\x06\x91\xd6\x9c\xab\xc2\x18\xe3\xb8\xf3\x2a\xe6\x53\x2a\xfb\xf4\x41\x19\x43\x1b\xf4\xde\x2c\x9e\xba\xa3\xd2\xba\xe3\x99\x39\xbc\x9e\xba\xae\xcc\xdf\x0d\xf4\x19\x2d\xb7\x77\xd8\x74\x5c\xb4\xe7\x2a\x2b\x64\x76\x1a\x23\x7b\x52\x4c\xc1\xb5\x17\x7e\x45\x29\xe1\x6d\xf2\x4c\x50\x28\xda\x07\x8a\xf3\xd1\x19\x21\x74\x8b\xa1\x0e\xbd\xc0\x72\xb1\x56\x39\xd4\x35\xe1\xf1\x4d\x44\x32\x57\x13\x4a\x75\x64\xbc\x1b\x6f\x0e\x13\x26\x43\xaa\x31\x22\x20\xf1\xe2\x50\x65\x24\xf4\xb3\xbb\x9c\xdc\x0d\xe2\x9e\x97\xf8\xa1\xa3\x86\x2f\x1d\x5e\x72\xf6\x87\x73\x1f\x90\x14\xd4\x09\xaa\xb0\xff\xa0\x28\xae\xee\x4d\x28\x3e\xd9\x16\xdd\x44\xe5\x41\xa0\x9d\xf9\xcb\xaa\xcc\x88\xd6\x49\x70\x00\x35\xda\xa4\x79\x00\xc6\x66\x74\xf3\xb8\xfa\x7d\xb8\xe6\xf0\x40\xa5\xb4\x4a\xfe\xfa\xb8\xea\xfe\xa4\x63\x22\xf8\x9c\xca\x99\xfc\xca\x8e\x61\x51\x4a\xee\x97\x53\xcd\x2e\x07\x03\xe3\x2c\xe5\xe4\xb3\xb0\x6e\x57\xdb\x25\x36\x6d\x54\xf8\x02\x7f\x4d\x57\xcb\xee\x77\xb0\x14\x5d\xfd\xd0\x91\x37\x3b\x77\xdb\xd4\x73\x83\x78\x40\x95\xf5\x36\xaf\xc9\x6b\xc3\x47\xb9\xd2\xd4\x1f\xcd\x06\xce\x80\x0f\x60\x58\x7b\x9d\xc3\x61\x7f\xa5\x36\xcb\x39\x93\x46\x5b\x7e\x0b\x79\x59\x64\xa3\x3b\x14\x26\x11\x85\x2a\xa0\x94\x35\xf0\xda\x95\xb4\x6e\x58\x7d\x05\x23\x11\x36\xf2\x1f\x1a\x4d\x15\x1e\x79\x71\xd8\x03\xd6\x9c\xbd\xee\xd8\x21\x83\xf3\xc8\x37\xa2\x70\xb3\x62\x7c\x9f\x08\xed\x70\x1e\x85\xcc\x70\xcb\x2b\x17\x74\x0e\x8e\xa5\xcc\x0f\x5d\xcd\xda\xb8\xad\x0d\xfb\x14\x3c\xe2\xbe\x17\x75\xf6\xd8\xcd\x37\xcc\x4f\x83\xaf\x1d\x9d\x2a\x8e\x8d\x72\x63\xb7\x3b\x77\x81\xf1\x17\x8e\xe3\x9c\xc7\x89\x4f\x1f\x23\xd4\x61\x87\xcb\x9a\xfc\xf0\xc4\x13\x54\x2c\xcc\xea\x7b\xac\xeb\xdd\x2b\x7c\xd2\xbf\xe1\x89\x6f\xa6\xaa\xfd\xf8\xa0\xfa\x39\x7e\x96\x69\xac\x79\x27\x69\x44\x71\xe0\x5d\xbb\x18\x4f\x62\xb8\x76\xe7\x21\x6e\xc2\x7b\x86\x1f\x54\x97\x37\x18\xfb\xfb\xac\x6e\xae\x9a\xf0\x3c\x55\x81\x86\xce\xbc\xee\xb7\x81\xf2\xce\xf4\xac\x4a\x50\x3d\x41\x65\x15\xca\xc6\xb1\x82\xae\xb3\x01\x0e\x09\x0c\x72\xc1\x15\xe6\x28\xa6\x1e\x2c\x93\x19\xf0\xef\xf8\x3f\x83\xff\xed\x4e\x63\x22\xd1\x1c\xea\xc6\x79\xd0\x6e\x5c\x7d\x92\x0b\x0e\x2e\x89\x74\x71\xbe\xc9\x51\xd4\xd3\x67\xeb\x91\x0a\xd2\x38\x76\x56\x2b\x57\xf4\xcd\xf6\xb8\xa2\x48\xfc\x5c\x64\xef\x58\xd5\x4e\x00\xc5\x1d\x4d\x18\x23\x57\xed\x3c\x6b\xfe\x32\x0e\x0b\xee\x10\x0a\x44\x07\x2f\x30\xd6\x75\xa7\x1c\x5d\x0c\xfc\xe9\x42\x83\xca\xe7\x36\xbb\xb0\x25\x95\xfb\xec\xbf\x67\xb3\x3d\x94\x8e\xf8\xca\xc1\x53\x2a\x49\xba\xfd\x7a\x99\xf5\x2e\x17\x53\x60\x26\xf8\x51\x4a\xd9\xbf\x34\x6e\x15\xeb\xdd\x37\x53\xa7\x72\x87\xd1\xa4\x33\xcf\x15\x6e\x56\x4f\xff\x14\x70\x3f\x9e\xf8\x10\x84\x3e\x91\x78\x8c\x3e\x40\x79\x2e\x54\x6d\xca\x14\xbb\xf2\xa5\x6b\xa7\x40\x10\x1a\x5a\xf1\xb9\xc6\x2a\x37\xc2\x16\xf6\x08\x4b\x12\x66\x0b\x69\xcb\xb2\x99\xb2\x01\xdd\x20\x1d\x46\x36\x14\xed\x76\xa1\x2d\x76\x0a\x4b\x76\x54\xe4\x1b\xb5\x28\x09\x79\xee\x8f\x67\x35\x44\xb1\x47\x52\x1e\x3f\x5e\x11\xf3\x27\x7d\x5b\x56\xcd\xb9\xc0\xe9\xa0\x54\x52\x5d\x59\x9f\x3f\x79\x31\x21\xe2\x86\x36\x74\xea\x9b\x4a\xf4\x9b\x6d\x64\xf6\xe5\xc6\x0f\x91\x4c\x28\xe1\xde\x7d\x5b\x13\x8a\xce\xdd\x82\x38\x10\xf4\x98\x1e\xd6\x77\x8b\x87\xc5\xfd\x7d\x6f\x1f\xca\x21\x96\x12\xc3\x6e\x1b\xcf\x8e\xbf\xe2\xa5\x1e\xb6\xeb\x20\xd6\x4a\xb2\x7e\xa9\x58\x34\xbf\x8c\x54\x6f\xec\xa8\x24\x8e\x7a\x78\xd5\x66\xf5\x34\x74\x9c\x6d\x8f\x6a\xc7\x39\xdc\x14\xa7\x73\xf3\x38\xc3\x56\x74\x43\x53\x20\x01\x3e\xeb\x44\xf1\x58\xf6\x38\x38\xe0\x1e\x07\x5b\xf0\x7c\xb2\x78\x8a\x76\x22\x5b\xe9\xd9\x6a\x33\x79\xa8\x5c\xfa\xc2\xfe\xb4\x3d\x25\x29\xfe\x5e\x8c\x80\x75\xc0\x65\xe4\xc9\x8e\x02\x30\x42\x6e\x00\xa4\x9e\x98\x3a\x35\x8c\x2b\x91\x20\xbc\x90\x1a\x48\xaf\xd0\xc8\xd7\xf5\xe1\x30\xa7\x1d\xc7\x41\xf8\xc6\xf1\x71\x57\x9d\xbb\x2f\x16\x49\x82\x51\x6f\x42\xd6\x9d\x51\x32\x9f\xfa\x4a\xc7\xfa\xa0\xa0\x03\x7b\x81\x8c\x38\x95\xa4\x3f\x5e\xa1\xb9\xc9\xd4\xff\x42\x5d\x16\x5b\x70\xc1\x2b\x28\xdf\xd4\x67\x75\x56\x38\x93\xac\xe5\x65\x5d\xa8\x53\x99\xf5\x50\xaa\xd1\x5d\x56\x49\x40\xd7\xb4\x97\x50\x58\xa2\xfe\x6d\x85\x93\x65\x1d\x50\x70\x9a\x8c\xca\xa2\x1b\x76\xa5\x15\x86\x18\xef\xf8\xa0\x21\x21\xa4\x81\xd1\xf7\xb4\x09\xd7\x3f\x66\x5e\x9b\xe9\x34\xfe\x66\x0d\xca\x55\x9c\xa9\x10\xe2\x00\xdc\xe6\xb0\xf0\xbc\x28\xb5\x09\x2c\xd5\x26\x7e\x20\xbe\x8d\x5e\x55\xe1\x85\x18\x5b\x17\x02\x53\xf9\xbf\x2d\xab\xe5\x59\x1d\xf0\x1a\xd0\x72\x95\x9b\x0b\x2f\x11\xe2\xcb\xf8\x61\xa0\xfe\xe4\x3e\x22\xbd\xde\xda\xb6\xf3\x0c\x46\x69\x7c\x8f\x86\xfd\x9e\x29\x49\x54\xf8\xa9\x47\xba\x09\x37\x04\x66\x1b\xed\xc3\x6e\x84\xf6\x29\x40\x36\x3c\xc6\x17\x28\x54\x79\xdc\xce\xc0\x67\x44\x60\xbd\xf5\xcc\x40\x03\x31\x37\x62\x40\xb3\x6b\xab\x08\x38\x70\x8b\x9c\x5a\x3c\x4f\x5e\x1f\x11\x68\x23\x61\x75\x2e\x4c\x96\xf9\x55\x1d\x50\xb0\xc0\x80\xe5\xbf\x3d\x7d\xdf\xae\xf7\xeb\x9b\xbb\xf5\xfe\x66\x43\x86\x4e\xee\x99\x31\xad\x28\x0d\xa4\xe2\xc1\xb2\xfc\xe9\xfe\x1e\xa6\x41\x6a\xda\xfd\x6d\x5e\x36\xe6\xfe\x0e\x6f\x53\x08\x1e\x75\x8d\x4e\x70\x59\x7c\xbd\xd1\x89\x28\x4c\x43\x17\x8e\x4c\x85\x5e\xa7\x43\xd3\x20\x30\x96\xbd\xcd\x0d\xd6\x4d\x55\x5e\x96\xe5\xa4\xf2\x2b\x22\x08\x74\xe2\x8c\x88\x5d\x5b\xc2\x5d\x7e\x1c\x68\x2a\x43\xb5\x41\x03\xd5\x57\xf7\x3a\xec\x8e\xf1\x88\x40\x02\x0d\xc2\xd1\x1f\xee\xed\x22\x8d\x24\xd1\xb0\xb6\xd9\xf1\x94\x93\x98\xb0\xda\x36\x65\x35\x65\x3d\x0b\xce\x8c\x76\x11\x05\x8b\x77\x24\xe7\xef\x4e\xc1\xb9\x6f\x7d\x44\x49\x32\xa7\xeb\xd7\x0b\x08\x62\x6a\x70\xf6\xd8\xc3\x76\x5f\xfe\x65\x82\x9a\x13\x10\x20\x17\x04\xc6\x33\xdf\x3b\xfe\xcd\x90\x24\xda\xa8\x69\x91\xbb\xc7\xe8\xe2\x21\x8d\xa9\x53\xbb\x7b\x45\xdb\xad\x24\x62\x5d\xdf\xc2\x10\x20\x25\x31\xfe\x87\x98\x9b\xc9\xec\x12\x21\x50\x8b\xe5\x07\xe4\x4d\x69\x48\x25\x46\x48\xec\x93\x30\x78\xf2\xdc\x44\x1a\xca\x21\x51\x73\x3d\x68\xa0\x4f\x46\x4a\x9f\xda\x31\xeb\x9f\xd0\xde\x6b\x36\xbe\xc1\xd2\x67\x04\x10\xd8\xdb\xd8\x11\x8a\x77\xa8\xa7\xb0\x1c\x37\x36\x66\x6e\x17\x6b\xc3\xb9\x0e\xad\xd4\x7f\x97\xe4\x11\x4f\x5d\x15\xa1\x19\x34\x37\xdd\x8d\x91\x18\xd2\x8a\x7a\xc1\x66\x51\x94\xcd\x6b\x2f\x32\x7b\x6d\x2f\x6f\x3f\xa2\xc2\x94\xae\xf0\xb7\xfb\x11\xbc\x4d\x28\x6e\xb4\xbe\x3b\xcb\xa8\x6e\xda\x29\x10\x24\x25\xd5\x64\xa7\x7a\x3e\xae\x17\x28\x53\x66\xf1\xfb\x1d\x0c\x9a\xaa\x8a\x83\x7a\xa2\xf4\x3c\x46\x1c\x74\x52\x7e\x7a\xd2\xbf\x5c\x09\x7e\xdb\x71\x3e\x70\xea\x8c\x58\x72\x1b\x49\x11\x4c\x9f\xde\x95\xc1\x0b\x97\x41\xe8\xc7\x03\x47\x1a\x97\x57\x8d\xcf\x1d\xc4\x29\xb7\x17\x4a\xbd\xe6\x9b\xb3\x01\x12\x5c\xa9\xb9\x70\x19\x68\x41\xc5\x8a\x25\x14\x05\x8e\xfb\xb2\x92\xf9\xcc\xef\xbc\xd5\x96\x84\xd9\x71\xf5\xc6\x74\x9a\xed\x4e\x7e\x1d\x63\x01\xa9\x79\x3a\x9f\x9b\xe5\x6e\x35\x29\x92\xfe\xcf\xdc\xb6\x2f\x19\x53\x8e\xe7\xfa\xad\x3c\xd7\xb8\x9e\x68\x05\x8c\x2f\x9e\x45\x46\x82\xbc\x4b\x05\xa8\x42\x36\x3a\x61\x08\x8c\xde\x18\x95\xd5\xa7\x36\xe0\xb0\x8f\x5b\x46\x21\x33\xba\x3b\x25\x76\x22\x86\x9b\x76\xaa\x1b\x0f\x8d\x06\x2b\x0d\x72\x62\xce\x6a\x31\x90\x32\x66\x82\xcb\xde\xff\xfd\x19\xb1\x1a\x73\x0f\x64\x1c\x02\x45\x0a\xf8\xfe\x82\xb2\xac\xae\xf5\xfd\x47\xd7\x18\x4b\x3f\x71\xc6\x49\xb3\x8e\x49\xe3\x7b\x1b\xa3\x32\x36\x60\x76\x51\x7d\x2c\x09\x44\x36\xbe\x35\x89\x1f\x52\x4c\xb4\x07\x29\xf1\xd4\x10\xd0\xcc\x5d\x5d\x92\x98\x78\xe9\xd7\xe5\xa6\x19\xbc\x1c\x32\xf5\x7c\xf4\xbb\xc5\x71\x56\x6a\x9f\x4b\x1e\xc4\xa4\x5d\xb3\x3f\x19\x98\xfd\xfa\x67\x56\x37\xd3\x6f\xe7\x4c\x52\x11\x54\x0a\x92\x01\x1a\x99\x69\x72\xc9\x95\x20\x9e\xd6\x66\xf5\x24\x27\xfa\x3b\x5c\x72\x6d\x30\x39\x7b\x43\x25\xfc\x0b\x6f\x21\xcb\xcf\x15\x3a\x6a\xd8\xe8\xce\x01\x37\xc9\xae\x81\x78\x50\x54\x93\x15\x87\x45\xf7\x4d\x20\x19\xe5\x52\x65\x91\x5f\x06\x9e\xa8\x2b\x28\x6e\xca\xdd\x6b\x56\x77\xe3\x34\xd0\xc2\x68\xb4\xa8\x4c\x07\xcc\x1e\x12\x2c\xa6\xb2\x48\xbb\x55\xed\x7a\x3d\x91\xc9\x33\x11\x2a\x26\xb8\xf3\x9e\xfa\xcf\x76\x36\x10\x44\x6f\xbc\x1c\x4a\xa5\x04\xf5\x6b\xd7\x8b\x97\xfb\x3f\xf6\xcb\xf5\x6e\xbf\x79\x5c\xad\x1f\x77\x9b\xdf\xd6\xfb\xd5\xd3\xc3\xc3\x66\xbb\xdd\x3c\xb9\x3c\x43\x22\xea\x68\x60\xcd\x4e\xeb\xac\x3b\xa6\x83\xd4\xba\x2c\xb5\xb7\xef\xee\x0c\x44\x0c\xc6\x81\x8c\x31\x97\x1a\x12\xaa\xb6\x77\x5d\xae\x47\x63\x8c\x43\x6b\xe2\x9c\x4d\xc5\xdf\xfc\xeb\x4e\x2b\x18\xe5\xc4\xdb\xf2\x7c\x9a\x71\x08\x31\xa3\x94\x1f\x07\x94\x5d\x1e\xe1\x27\x11\x7d\xd5\x40\xa7\x8b\x2b\x5f\x9a\x55\x3f\xab\xd7\x79\x76\xb0\x70\xf8\x49\x8c\xe2\x86\xaa\xc4\xeb\x5d\xda\x6f\xcf\xc5\x50\x07\x40\xf9\x18\x92\x73\xf8\xff\xfe\x6b\xc0\xea\x56\x2c\x96\xd1\x50\xdb\xa8\x42\x9b\x0d\xee\x4a\xbb\x26\x8d\xa7\xac\x0a\x7d\x15\xda\xe0\xd9\x59\xb6\x77\x6b\xa6\x0d\x1b\xed\xc8\x28\x56\x01\xf6\x7d\xbe\x4e\x8d\x99\xf8\xd6\xf5\x6d\x59\xc9\x79\x09\x4d\xae\x22\x15\x3a\xfc\xe3\x8f\xac\x28\xb0\x5a\x5e\x6e\x2a\xf8\x18\xa2\x08\xc6\x1f\x48\x82\x10\xa3\x9e\x59\x58\xe1\x46\x96\xeb\x42\xdd\x5c\xb5\xe2\x55\xa2\x12\xd2\xee\xda\xbe\x3c\xee\xf6\x27\xac\xf6\x3d\x21\x5a\x25\x9a\x79\xdc\x29\xf8\x5b\x01\xfa\x51\xda\xa6\xd2\x38\x20\xd8\xd5\xde\xc4\xc0\x53\x6f\x94\xf1\x57\xa5\x8a\xd1\xe2\x36\x10\x4c\xfa\xbe\xdb\x3c\x3d\xee\x6f\xbe\xbf\x2c\x76\xfd\xec\x55\xa9\x12\xe4\xf3\x95\xd5\xce\x72\x67\xfc\x5c\x79\xc2\x49\x76\x6e\x95\x95\xed\xa3\x5b\xbf\xac\x02\xff\x0b\x2f\xcc\xc9\xcd\x6c\xd7\x76\x6e\x74\xaf\xc6\x3e\x5a\xee\xb8\x8a\x2c\x22\x84\x1e\xd3\x72\xb9\xfb\xe4\xa9\x80\x1f\x10\xb1\x6a\xb1\x7b\x19\xc6\x0a\x4a\x44\x8a\x7a\x2b\xdb\x06\xe1\xad\xff\xa3\x8e\xac\x8e\x8a\x05\xe5\xcf\xf9\x38\x71\x25\x92\x94\xdc\x2c\x4c\x3d\x68\xdb\x80\x9c\xb4\x09\x94\xf4\x62\xaa\x8e\xbe\x97\x0d\x0e\x3b\x23\x4a\x06\x18\xf6\x7a\xc2\x9b\x06\x8f\xff\xe8\xf5\xec\x4f\x1c\x9a\xc6\x8d\xf3\x2e\xcc\xf3\x36\xf0\xea\x9e\xb5\x4a\x4c\xb9\xf3\x80\xcd\xf7\xcd\xcd\xe4\xd9\xb6\x91\x96\xb6\x4d\x9f\x4e\x4c\xdb\x1d\x8b\xa4\x67\x35\x00\xe7\x01\x3a\x0a\x93\x94\x1e\xf8\x0e\x6b\xc3\x6a\x86\xaa\xe7\x8b\xb9\x31\x82\x13\xc2\xcd\x3a\x55\xae\xca\x42\xe6\xe7\x9e\x26\xa4\xb4\x4e\x89\x99\xe8\x76\xb7\x07\x02\x17\x0c\xeb\xc7\xdd\xf7\xa1\x17\xfa\x04\x1c\xbb\x5b\xaf\x7f\xdd\x76\x45\xc7\xf6\xcf\x9a\x0d\xf2\xe0\x1f\xd4\xd3\x40\x35\xd4\xa2\x73\x63\x83\x80\x39\x38\xd8\x8f\xac\x70\x38\x9d\x49\x73\x00\x03\xce\x09\xb9\x2f\xa0\x78\x73\xe2\x12\xee\x90\x4c\xd2\xb8\x53\x33\x19\xd6\x5b\xfb\xeb\x64\x5e\x42\x9a\x72\xee\x37\x2d\xa1\x78\x6b\x77\xbd\xf9\x09\x89\x2c\x10\x5a\xb8\xd4\x89\x64\xe1\x86\xcf\x01\x99\xf0\x65\x87\x04\x6e\xd7\x2a\x2c\x9a\x4c\x66\x9d\x25\xa4\x1d\x16\x32\xec\x88\x02\xf7\xbf\x59\x89\x43\xcf\x9d\x24\x0c\x19\x4d\xb2\x57\xa8\x5f\xbf\x72\x1c\x74\xc3\xd3\x34\xec\xb4\x6f\xf6\x46\x5f\x69\x3f\x10\x57\x68\x07\x10\x54\x72\xf9\xf4\xfd\x71\xf7\xc7\x18\xff\x8a\x51\x24\x09\x37\xe7\xd8\xaa\xf7\xeb\xdf\xd6\xf7\x1d\x75\x04\x63\x0e\x6e\xe9\xb5\x0e\xbe\xcf\x70\xc0\x6d\xd6\xf5\x68\x31\x81\x38\xb6\x49\xc4\xde\x80\x49\xc6\x97\x97\x20\xa7\x36\x19\xad\xa4\x4f\xfa\x3e\xd3\xf8\x77\xa6\xba\x1c\x79\x12\x10\x41\x54\x67\x39\xde\x67\x85\x7b\xc5\x91\xa7\xc6\x3e\xe5\xc7\xf6\xd7\x3f\x06\x5b\x0a\x72\xae\x52\xbf\x73\xd6\x28\x0a\xcc\x6f\xf1\x0b\xeb\xa6\xf1\x33\xe5\x22\x12\xb6\xa0\x4a\x56\xef\x9d\xcf\xfb\xa8\xc4\x84\x10\xc7\xb1\x70\x4d\x57\x03\x0f\xdb\xd7\x59\x71\xc8\xf1\xb1\xec\x28\x91\x08\x10\x53\x16\x5a\x7f\x20\x9e\x76\xe5\x40\x26\x9b\xa3\x40\x30\x11\x74\x85\x38\xc9\x0b\x50\x72\x4c\x4d\x7e\x5a\x94\xe7\x42\xe2\xf2\x5c\x0d\x3e\x29\xa5\x27\xb5\xab\x37\x5a\x67\xc6\x19\xf9\x71\x8e\x52\x31\xa2\xe4\xbc\xc0\x9f\xbb\xce\x31\x83\xa3\x4a\x03\x77\x7f\x6e\xb2\x22\x9b\x7f\x65\x55\x6a\x9e\xa4\xad\x29\x92\x67\xee\xe4\xf4\x8a\x8b\x38\xec\xf4\x5c\x4e\x65\x3d\x11\xc1\x76\xc3\x54\x42\x68\xf0\xd5\x6a\xa2\xaf\x80\x4a\x1b\x81\xc0\x57\xa8\xd4\x07\x54\x38\x52\x7e\x42\x8c\x91\x8a\xae\x9d\x5a\xd1\x90\x4b\x3b\x2e\xf5\xa0\x8e\x18\x95\x10\xf7\x99\x01\xed\xde\x43\xa1\xec\x9a\x99\xba\x21\x4a\x75\x9e\x78\x97\xdb\xaa\xbc\x5a\xac\xcd\x38\xed\x45\x1e\x11\x02\x2c\xf0\x65\x5a\xbe\x1f\x3d\x28\xed\x21\x46\x36\x23\x98\xc1\xb0\x6a\x3f\x30\x1e\x6d\x59\x83\xc7\x7a\x79\x99\x5a\x25\x70\xed\xcb\x90\xca\xcf\xfa\x4a\xbb\xd2\x0e\x08\xfc\x88\x59\x94\x42\x0f\x83\x1c\x90\xec\xbb\xcc\xa3\xbb\xdf\x3a\xe0\x22\x11\x8e\x97\xfd\x86\xc5\xf7\x2a\x7b\xae\x50\x8f\xbf\x38\x50\x66\xe9\x3a\xc2\x1b\x9a\x5f\x3a\xea\x4b\x7e\xc9\xe1\xd7\x4c\x70\xf2\x28\x6e\xaa\xec\x70\xc0\x8a\x18\x50\x43\x45\x88\xfe\xf2\x43\x2f\x74\x2a\x13\x33\x05\x36\xfb\x68\x74\xe4\x09\xf2\x7c\xe9\x28\xb8\x93\x0e\xe3\xec\xea\xab\xa3\x14\x08\x79\x59\x95\x0d\x34\xb8\xcf\x51\x7f\x82\xa6\xd4\x31\xe8\xd0\xae\x4a\xff\xc2\xe6\xd5\x90\x18\xbb\xb5\x7d\x32\x56\x28\x32\x23\x75\x10\xa9\x5e\x16\x98\xeb\xc4\x0b\x74\xdf\x89\xbb\xc9\xe0\x58\x16\x6a\x5a\xd1\xf9\x3b\xb7\x1c\xae\xd3\x50\x12\x1a\x63\x95\x23\x54\xc3\x17\x42\xa7\xa9\x04\x23\x99\xf2\x6d\xb1\x79\x1c\x1f\xe2\x7e\xe0\x3b\xae\x24\xbe\xe5\x17\x07\x4d\x1b\x86\x14\x3a\x95\x2a\xb1\x00\x3c\xfa\xf4\x33\x64\x9f\xde\xc6\xaf\x17\x42\xcd\x3d\x4d\x3a\xf0\x6d\x26\xf6\x5c\xbe\xe1\xb1\x9c\xae\x2f\x9a\x73\xe3\xdd\x65\xa9\x2e\x13\x3f\x4b\x37\x48\xa5\x68\xb4\xfe\x1c\x9b\x65\x40\x29\x9a\x9c\x10\xe2\x80\x9a\x73\x26\xba\x7d\x80\xfa\xed\x9f\x89\xaf\xb7\x9f\x34\xd2\xe9\xe6\x93\x8f\xf8\xd3\xf0\xf2\x3a\xf6\x43\x77\x87\x40\x25\xc4\x49\x6d\x5f\x49\xf3\xca\xfe\xcd\xed\xe9\x3e\x97\xd2\x9c\xc7\x9f\x5d\x7e\xac\x85\x97\x38\x57\x82\xdb\x0a\x71\x48\xb5\x98\x7c\x5a\x42\x60\xdc\xdd\xcf\x97\xe9\x3b\xe6\x46\xc8\x84\x40\x34\xe2\x4c\xa2\x57\xf5\xa2\xe9\x09\x39\x5a\xb1\x90\x98\xec\x2b\x54\xf8\xb3\xfb\x63\x88\xbe\x65\x3c\x13\xbb\x60\x35\x70\x79\xf8\x04\xea\x30\x5c\x26\x54\x12\xaa\x4e\x84\x05\xe7\xac\x23\xaf\x5a\x97\xe3\x99\x6e\xcf\x83\x89\x03\x84\x93\xdb\x06\x14\x8d\xe1\xc9\x4e\x1e\x2d\xa2\x6f\x95\x85\x9c\x27\xd5\xf8\x0e\x69\x15\x93\x55\x06\xe4\x86\x4c\xb9\x2a\xcb\x4a\x65\xc5\x50\x7f\xbf\x1b\xa9\xa9\x54\xbe\xae\x64\xe0\xdd\x74\x66\x93\xe0\x79\x10\x38\x7c\x29\x89\x34\x94\xba\x6b\x55\x18\xba\xbc\x1b\x27\x15\xe9\x98\xdd\x54\xf0\x17\x0e\x77\x24\xf0\x3c\x0d\x04\xa6\x97\xd0\x06\xe3\x43\xd1\xab\x61\x65\x09\x3c\xdf\x37\xbd\xed\xac\x76\xf8\xda\x6f\x50\xff\xfa\xc7\x4a\x57\xe5\xf1\xc7\xfd\xe8\xa7\x83\xe7\x87\x31\x25\xf7\xcf\xbb\x3f\xae\xe4\x0b\x07\x0b\x03\x78\x81\xa7\x69\xe5\xfe\x91\x15\x6a\x74\x59\x81\x9f\x38\xd5\xc8\xdf\x4a\x4b\xc8\xcf\xca\x31\x0e\x0b\xbc\x40\x09\x8a\xfb\x3b\x5c\xff\x73\x59\x8e\xe9\x05\xe0\x31\xee\x53\x54\xbf\xb8\xfb\xfa\x52\x98\xf4\xfd\xa8\xd3\x87\xa6\x3c\xbe\xc7\x2d\x81\x17\x46\xda\x4c\xc8\x97\xa7\xed\x76\xff\xb2\xde\xae\x5f\x7e\x5b\xef\x6f\x77\xbf\x77\x03\x52\x63\xa3\xf2\xfc\xf2\xd4\xf7\x63\xc1\x0b\x39\x27\x44\x38\xc5\x86\xc6\xbc\x6d\x6e\x71\x07\x2f\x8a\x63\x2a\x9a\x1c\xe1\x67\x76\x3c\x1f\x1d\xc3\xf7\xb6\x1a\x6a\x0b\x82\x17\x25\x1e\x15\xa1\x24\xc9\xd5\x37\x96\x51\xcd\x82\xc9\x9d\x89\x38\x97\xf6\xe5\xda\x74\xd3\x25\x92\xca\x33\x4d\x2d\xb5\x82\xca\x8a\x51\xfc\x72\x6d\x5c\xf8\xd5\x3f\xd3\x37\x1d\xbc\xd8\xc7\xa4\xd7\x18\x7a\x44\x68\x26\xb3\x21\x06\x45\x9b\xdd\xa9\xac\x9b\x65\xb7\x2d\xda\x83\x89\x0f\xd2\xeb\x71\x95\x43\x16\x28\x78\x29\x13\x69\xec\x7a\xb6\x20\x9b\xbd\xe1\xe1\xa8\xee\xb8\x10\x69\x97\x8f\x92\xe3\x86\x2b\xf8\xa5\x6e\x04\x4a\x42\xb5\x81\x49\x85\xaf\xe0\xc2\x76\x18\x67\x9e\xa9\x49\x5a\xe4\x43\x0f\x8e\x06\x0f\xa2\x80\x02\x12\x28\x4c\x68\xfa\xcb\x68\xda\x40\x62\x8a\xea\xf4\xab\xee\x1e\x56\xbb\x2f\x27\x19\x70\x46\x5b\xc3\x91\x2a\x1d\xa6\xa1\xd7\x7d\x0f\x22\x65\xdd\xcb\xf3\x65\xdb\x94\xf2\xed\xa5\x94\x6f\x96\x4e\x32\x11\xbc\x73\xff\x8c\x7f\x83\xf2\xac\x61\xa1\xc8\xf2\x7c\x0f\x79\xbe\x1f\x80\x0e\xba\x5b\xaa\x7c\x23\x49\xd8\xd5\xdd\xb6\xe7\xe3\xae\x1c\x77\xc1\xda\x51\x09\x3d\x32\xa3\xcb\x6c\xcc\x00\xdc\x7b\x3f\x0b\xe5\x6a\x3f\x92\x52\xa1\xc6\xe4\x49\xbf\x8f\xde\x66\x15\x29\x69\xf1\x9c\xdf\xeb\x36\x7c\x1a\x6a\x12\xbb\x31\x31\x58\x35\x6b\xa3\xd7\xfb\xf2\x74\xfb\x32\x28\x3e\x80\xa7\x52\x05\xbd\xfb\x80\xd5\x6e\xed\xa6\x82\xe2\x29\x6d\x87\xb6\x1e\x35\xfc\xe5\xe3\xe9\xaa\xa3\x30\xb4\x7d\xcb\x4e\xb7\xf3\x93\xe0\x6f\x7e\xc2\xfb\x5e\x12\x84\x5e\x57\x92\x7d\xc1\xc3\x5c\xff\x02\x7c\x4f\xf8\xe4\xfa\xdb\x97\x0b\xb2\xe2\x26\x7b\xb7\x6a\x6e\xe0\x7b\x2a\x70\x2e\xa6\xfb\xb2\x22\x09\xd3\x1a\xdb\x27\x77\xbc\x2a\xda\x80\xef\x7b\xa8\x60\x0c\x95\xb8\x83\xda\xf8\x59\xcd\x5f\xa5\x1f\x98\x62\x8a\x15\xcb\x75\xc5\x8e\x39\x35\x3d\xf0\xfd\x38\x08\x99\xd5\xea\x70\x50\xa9\xcf\x9c\xc1\xae\x1b\xfe\x53\xab\x37\xf0\xfd\x34\x22\x9c\xd9\x7b\xd9\xe0\xfe\x64\x52\x25\xb5\xb7\x63\x46\x2f\x90\xef\xa3\xe7\x19\x17\x88\xc3\x03\x34\xf2\x35\x2b\x0e\x6b\xfb\x96\x77\x7b\x37\xf8\x2c\x88\x04\x8e\xbd\x9f\xbf\x57\xd9\x2f\xfd\xae\x9d\x3a\xe6\xf2\xb9\xd7\x84\x00\x9f\x45\x26\xa3\x92\xe5\xf1\x74\x6e\x70\xfb\x0a\xac\xab\xa0\xf8\x03\xcc\x58\xfa\x1f\xfb\x81\x30\x8c\xa8\xd9\x8a\xc7\xac\x79\x31\x7a\xd8\x57\x5c\xe4\xc9\x6f\x0d\x39\x90\xea\x9f\x80\xe2\x2d\xf8\x0d\x72\xf7\x7c\x43\x21\xa9\x19\x22\xca\x9f\x54\xff\x8f\xdc\x81\x48\x1b\x87\x4c\x12\x77\x5f\x2f\xee\xdd\xdf\xe3\x30\xd0\xa9\xe3\xe2\x16\x97\x69\xa3\xf5\xdf\xee\x1a\x63\xe9\x87\xa6\x3e\xbd\x91\xe5\x88\x80\xda\x0d\x40\xaa\xcd\x1e\x0d\xee\xb9\xee\xf5\x9b\xc0\x4f\x12\x8f\x04\x05\x0a\xfc\xd9\x3c\x00\x79\x25\xba\x43\x29\x32\xe7\x29\xd4\x06\x77\xdb\x8f\xd2\xc9\x06\x81\xcf\x51\x8b\xc8\x89\x98\x99\x1d\x79\x94\xc1\x83\x0f\x81\x11\x16\xaa\x7b\xbc\x60\x3d\x4c\x6f\xc1\x07\x6e\x32\xbb\xcd\xd3\x72\xbb\x23\xa2\x75\xbf\x44\xf8\x22\x48\x69\x5f\x3b\xc2\xcf\x6d\xcf\xc9\x01\x5f\x08\x64\x91\x4b\xfd\xdb\x58\x70\x34\x79\x84\x66\xa9\x13\xab\x6c\x23\x60\x6a\x38\x2c\x9f\x76\xea\xfa\x75\x94\x1e\xa3\x9a\xa9\xdd\x5f\x17\x9d\x12\xc0\xb3\x95\x41\xb5\xf1\xb9\x1b\xee\xc7\x34\x83\x1b\xe7\x51\x4a\xb4\x70\xbc\x22\x17\x83\x2f\x43\x9f\xa6\xe6\xcb\xcf\xf5\xe2\x7e\x6b\x0a\x87\x03\xc2\x3d\xf8\x52\x87\x54\x0b\xdc\x1c\xe1\x50\x2a\xcc\x46\xbf\x5b\xc5\xa1\x48\xdd\x8d\x7d\x2e\xeb\x66\x23\xcb\xee\x18\xa4\xa4\x13\x61\x5e\x61\xcb\xa5\x79\xc8\x8a\xa9\x74\x0c\xf8\x4a\x1b\xec\x7e\x77\xb5\xb7\x59\xd5\x85\x89\x3e\x86\x92\xa8\x61\x83\x25\x2f\xe8\x8e\x45\x49\xe0\x4c\xbd\xda\x45\x68\x09\x75\x26\x6f\x33\xcc\x07\x2a\x97\x9f\xa5\x51\xe3\x09\x80\x49\x88\x7a\x6c\x1e\x84\xd5\xae\xdc\xe8\xe7\xb2\xae\x33\xf1\x59\xe0\xe3\x23\x20\x29\x27\x88\xf3\x85\x7c\x75\x88\x29\x7a\x67\x4b\xcb\xdd\x9b\x8c\x52\x6b\x87\x1b\x5f\x5e\xda\x5f\x22\x5f\xb1\x1e\xf4\xb0\xa7\x88\xd0\xff\x0c\x20\x37\xe0\xeb\x80\x47\xe1\xa0\xb4\xb2\x2d\xca\x0f\x9d\xc3\x9b\x83\x33\xcc\x31\xea\xc1\xd7\xa1\x47\xcc\xe8\x97\xbb\xdf\x3f\xb3\x9b\x9f\x2e\x88\xa9\xfb\x28\x17\xa4\x36\xfb\x58\xfe\x2c\x8b\x4d\x27\xdb\x04\x81\x17\xa4\xa2\x0f\x97\xda\xf9\xf2\x0d\x2a\x25\x61\xac\xb5\x07\x81\x1f\x08\x02\xce\xb9\xdb\xe9\x8a\x56\x73\x65\x19\x08\xfc\x44\x11\x63\x22\x2f\x0f\x56\xb2\xad\xfa\x64\x63\x08\x7c\x19\xd3\x7c\xd5\x59\xa1\xf6\x50\xa8\x7d\x59\xed\x4d\x2a\x83\xd5\xfe\x5c\x5f\x57\x21\xdc\xe7\x94\x4f\xb3\xc8\x6c\x7b\xdf\x8b\x76\x4d\xcd\xb1\x31\x26\x89\xd7\xbd\x7e\x08\x82\x40\x2b\xdb\x31\x5f\x1c\x45\x86\x45\x73\x9f\x1d\x5e\x1b\x2b\x01\x45\x7b\x57\x3d\xfd\x08\x22\xc5\x30\xf7\x4f\x77\xfb\xf5\x11\xab\x03\x16\xf2\xd2\x33\x87\x7f\x2b\x07\xda\xf0\xfd\xee\x10\x30\x69\x9c\x1b\x6a\xf9\x8a\xea\x9c\xa3\xc5\xb7\x4d\xfb\xfa\x0e\x84\x34\xd3\x21\x80\x20\x4c\x3c\xea\xb5\x10\xfd\xc5\x2a\x00\xd8\x43\x91\x2f\xa9\xf5\x40\x8c\xc1\xfd\xf2\x5c\x15\xdf\xfb\x66\xd4\xed\x80\x2b\x34\x39\x65\x14\x1a\x3b\x2d\x63\x5e\x84\xa7\x06\xd5\x5d\xcf\x3f\x83\x20\xd2\x01\xe9\x0d\x19\x37\xaf\x76\x67\x9b\x13\xf4\x1c\x3f\x85\x58\x44\xe4\x4d\xb4\x6e\x5e\xf7\x56\xb0\xab\xbf\xd0\x84\x99\x6a\x42\x9b\x20\x5f\xa0\x68\x6e\xaa\x32\x6b\xd6\x64\x1a\x90\xfd\xf7\x8c\xfb\x55\x79\x3c\x35\xb8\x4f\x27\x53\x2d\x09\x8d\x60\xcc\xc9\x00\x3e\x96\xe7\x79\x7d\x74\x08\x12\x48\x5d\x1d\xf5\xc1\xe8\x51\xac\x0b\x55\x7e\x1c\xe7\x64\xcb\xe7\x27\x5f\x2a\x00\xd1\x01\xef\x21\xff\x51\x56\xb9\x32\x24\xee\x97\xb2\x9d\x80\xbd\x56\xa3\x1f\xd8\x57\x29\xe0\x11\xca\xc0\x86\xac\x56\xd3\x6e\xbc\xe1\x05\x1c\x02\x92\xa7\xa6\x1b\x39\x15\x87\xfd\xfa\x82\x80\xf9\x44\x10\x7c\x7c\xf8\xf5\x97\xee\x4f\x4c\x4b\xb7\xe5\x90\x1b\xc2\xcb\xfa\x79\xc8\x53\x83\x00\x78\xc4\xb9\xcd\x9a\x77\xaf\x59\xbd\x2b\xcd\x1b\x67\x0f\x0b\x99\xd2\x0e\x5f\x92\xe9\xf6\xc0\x7f\xfb\x93\x57\x52\x06\x4c\x0d\x74\xba\x4c\xae\x32\x09\x5c\x03\x19\x18\x1f\x21\x45\x04\x5f\x6a\x91\x4f\x6e\x83\x0c\x19\xb9\x3f\x14\xf8\x61\x22\x24\x6a\x86\x4c\x3a\x47\x6e\x6c\xcc\x95\x6f\x14\x4b\xb2\x3f\xcf\x50\xa0\xf3\xe5\x82\x40\x62\x1c\x19\xda\x99\x39\x8b\x79\x99\x5c\x9e\x12\xa8\x50\x52\x98\xb2\xdf\xdf\x90\x8f\xa4\x51\x5f\x6e\x46\xaa\xb2\xf3\xd3\x47\x81\x69\xac\x3f\xde\x0f\xb7\xc0\x00\x99\x01\x84\x58\xfd\x08\x5d\x56\x47\x13\xd5\xb8\xe3\x60\xfa\x6e\x6d\x24\xb3\x7a\x6d\x43\x8a\xe2\x80\xb7\x16\x83\xe1\x06\xe9\x20\xa5\xc2\x33\xdd\xba\x1f\x88\x6f\xdd\x5b\xa6\x43\x46\x15\x67\x9b\xda\x6d\xac\x0c\x51\xbf\xaa\xec\x10\x8e\x4b\x52\xfb\xed\x3e\xc2\x51\x98\x0a\x4f\x53\x65\xf8\x4e\x70\xfa\xa9\xb4\x1e\x04\x1a\x7d\x82\x2f\x17\x5d\x08\xc5\x3c\xdf\x58\x1c\x8b\x76\x8d\x28\xce\x9d\x01\x70\x77\x3c\x8c\x7c\x7f\x98\xa5\xc0\x11\x9b\x81\x3f\xd7\x90\x46\x3f\xf7\x7f\xee\x34\x18\x50\xa5\xf2\xf7\x0c\xca\x87\xf3\xc3\x79\x78\x3b\x99\x1f\xdb\x0c\x8f\xb8\xe7\x26\x04\x6b\xb3\xae\xfb\x87\xc7\xa7\xf9\xf7\x9a\xf9\x89\x8e\x2d\x6e\x54\x65\x35\xa1\xaf\x4f\x57\xc5\x7d\x60\xbe\x08\xb8\x6b\x33\x19\x21\x63\xda\x89\xe5\xdb\x44\x7a\x09\x98\x2f\x23\x02\xe9\xef\xcb\x13\x16\xed\x9a\x77\x5f\x96\xa7\xee\x02\xa5\x24\x9d\xbb\x6a\xe0\x36\x3d\x1f\x5b\x33\x5f\x45\xb4\x32\x1d\xb3\xa2\xd9\x55\xe7\xba\xf9\x44\x8c\x0d\x58\x10\x87\xa4\xee\xf9\x88\xe7\x1c\x1c\xcf\x0f\x58\x00\xa9\xb6\xa2\xd1\xb5\x29\x2d\xcc\x2e\xab\x2c\x90\x3c\x22\x54\xe1\xc3\xf3\xee\x8f\xfd\xf3\xf7\xe5\xfd\x66\xb5\xff\x75\xfd\xc7\xde\xf5\x6e\x81\xb1\x38\x01\x83\xc3\x7c\x7f\x80\x76\xad\x5a\x1c\xbb\xaf\x61\x89\x24\x1d\x45\xd1\x66\x30\x86\xc9\xfb\xad\xcc\xd5\x5c\xd1\x8a\x31\xa5\x02\xc3\x24\x7d\xc7\xbc\x3c\x61\xb5\x77\xca\x58\xfb\xd3\x48\x54\x72\xf2\x0b\x43\xdf\x60\x25\x24\x34\xf5\x00\x2c\x61\x38\x56\xee\x42\xc2\x54\x11\x35\xe0\xf6\x2c\xdf\xd6\x2f\xe6\x05\x66\xcc\x1d\x8d\x82\x98\x8a\x58\x72\x68\x79\xf5\xff\xd1\xea\xea\x0a\x2c\x0d\x2c\xe2\x26\x4c\x5a\x17\x2a\xec\xbe\x4a\x69\xaa\x3a\x9b\x86\xec\x40\xa9\x00\x58\x84\xa9\x37\x82\xfe\x18\xc4\x89\x3b\x1c\x87\xc0\x1d\x8e\x81\xfa\x8b\x8e\xf1\xfb\x89\x9f\xca\x30\xec\x62\x31\x28\x9a\xa2\x1d\x8e\xf4\xc5\x92\xfa\xcc\x4a\x4e\x6b\xf0\x3f\x00\xa4\x02\x4b\x99\x41\xbe\x1d\xcb\xa2\x79\x65\x9e\x4d\x17\xba\xad\x96\x71\x3f\x34\xf6\x2d\x85\xda\xc8\x72\x60\x0b\x0f\x4c\x30\x18\xfa\x29\xb9\xcb\x9e\xdc\x67\xe7\x03\x09\x4c\x70\x23\xec\x67\x38\xf6\xf3\xf3\x53\xa8\x48\xe9\x81\x93\xdb\xd7\x51\x02\x93\x41\xea\xc3\x50\xd5\xbe\x99\x6a\xf8\x03\x53\x41\x6a\xcd\x29\xda\x20\xc2\x3e\x83\x61\x76\xc5\x54\xe8\xd3\x8c\x6b\x93\xc8\x4d\xbd\x6d\x20\xb7\xdd\xed\xd0\x0d\x88\xbc\x14\xba\x53\x94\xdd\x23\x54\x09\x3a\x2e\xe9\xa0\x5a\xd1\x1d\x4d\x39\xe9\x99\xbd\x9b\x8d\x9a\x76\x32\xcb\x36\xce\xfa\x69\x80\x02\xb0\xd3\x05\x2c\x74\x76\x58\x96\xe5\x98\x63\x0c\x4c\xfb\x06\xfc\xa0\xf0\xfd\x16\x71\x52\x03\x65\x3a\x96\x94\x52\xfe\x59\x66\xc5\x5d\x55\x9e\x4f\x0b\xe7\x46\xfc\xcb\x5c\x01\x2d\xf4\x62\xcb\x4c\x72\xf3\x72\x57\xde\xb6\x8f\x75\x76\x82\x84\x1e\xe7\x44\xb4\x21\x3f\xca\xf3\xf1\x39\x3b\xd0\x24\x27\xbb\xfd\x5f\xdc\x18\x69\xe4\x9c\x16\x2f\xab\x6f\xeb\xdd\x1f\xcf\x8b\xfb\x51\x5d\x2c\xf4\x43\x11\x58\xad\xfc\x1d\xfc\x9c\x51\x93\x86\xd0\x17\xa6\x41\xa6\x4a\x93\x16\x7f\x16\xd5\xcc\xae\x9f\x61\x10\xfa\xa9\xe8\x4c\xc5\x8e\xa4\x6e\x30\x4a\x4e\xc3\x36\x22\x6b\x97\xfe\xc5\xea\xfe\x8f\x1b\x99\xa9\x01\xd1\x08\x42\x16\x99\x8e\x89\x31\xc7\xb7\x68\x32\x33\x53\xea\x6e\x4c\x9c\x10\x6c\xf0\xa3\x5d\xfa\x46\x6a\x32\x10\x32\x8e\x14\x97\x0d\xa0\xd3\x2f\xf0\xe1\x54\x40\x3f\xb9\xf4\x71\x5d\xa9\x8f\xf2\x43\x26\x3c\x02\xcf\x3f\xbf\x6c\x7e\x5b\xec\xd6\x7b\x2b\x2f\xbe\xeb\x2a\x28\x21\x13\x09\x75\xb2\xcf\xc5\x2b\xe4\xcd\x0d\xf1\x0c\x07\x8a\xcd\x10\x86\x29\x4b\xac\xac\x5a\xbb\x25\xae\x8f\x90\x8d\x50\xb9\x10\x46\xa1\x22\xe0\xee\x8f\xb2\x50\x58\xdd\x94\x87\x59\xb4\xc6\x79\x4a\x5a\x84\x30\xf6\xb9\xb3\x17\xa1\xcc\x77\x84\xbb\x85\x30\x66\x8c\x76\xb2\xed\x2b\x01\x82\xff\xf1\x59\x59\x48\x26\xc4\x86\x66\x9f\x63\x5d\xf7\xb0\xa5\xf1\xa3\x8e\x95\xd1\xc2\xdd\x2d\x56\x4f\x5b\xf7\xad\x89\xa7\x08\x17\xfe\x5e\x36\x04\x62\x34\x3a\x96\xd3\x1b\x3f\xb8\xc7\x09\x8f\x05\xef\x34\x13\x37\xfa\xc5\x38\x21\x59\xf6\xe9\x43\x56\x2c\x0a\x75\x93\x75\xbf\x2a\x91\x82\xf6\x32\xca\x8c\x1c\xdc\xcc\x1e\x4b\x63\x49\x84\xab\x63\x69\xa9\xa3\xee\x00\xf7\x44\x6a\x55\xaa\xb1\xc2\xf3\xf1\xb6\xac\xde\x16\x95\xc8\x3a\x85\x11\x08\x39\x48\xd2\xc7\x80\x3c\xdf\x4a\x38\xd6\x4e\x8f\xd8\x1e\x86\xc0\x10\x82\x4d\x23\x63\x5e\xf5\x09\x42\x88\x81\xa6\xf6\x7d\x79\xe8\x4c\x63\xc7\x77\xdc\x0d\xd4\x5e\x40\x78\x8d\xb2\xd0\x58\x61\x21\x71\x45\xc2\x18\x8e\xc6\xda\x0d\x93\xd6\x1d\x8a\x4a\xcf\xf3\xda\x1e\x10\x8a\xd0\x00\x65\x88\x3a\xb4\xb7\x7d\x8d\x19\x48\x0d\x84\x82\x2b\x89\xbd\x9b\xd4\x12\x9b\xa1\x60\x13\x84\x02\x52\xb4\x00\x8e\xa7\x73\x43\xea\xb2\x83\x6d\x37\x94\x21\x23\xa6\x8d\x85\xe0\x52\xb8\xf7\x59\xcd\xc6\x7d\x44\x06\x14\xe8\x19\xfa\xe9\x33\x5c\x8e\x83\xb7\x55\xca\x84\xbe\x4e\x65\xef\xef\x97\xbf\x3b\x11\x06\xa6\xe0\xd4\xae\x0c\xc3\x47\xa3\xb4\x24\x91\x29\x81\xc5\xb8\x11\x17\x62\xac\xd0\x36\x01\xda\xd9\xf0\xa4\xdb\x94\x8a\x5c\x19\x46\x31\x72\x88\x3a\xf2\x4d\xdf\x94\xb2\x97\x36\xad\xfa\xbb\x3e\xfe\xe8\xd2\x50\x43\x64\x8c\xc3\x0a\xac\x5f\x2b\xf8\x73\xb4\xe4\x6a\x2f\x35\x72\xbb\x39\x42\xf5\x5b\x99\x9f\x8f\xe8\xfc\x8c\xdc\x15\x44\x1e\x0b\x03\xab\x84\xf1\x0e\x0d\x0e\x94\xfe\xed\x00\x9f\xc5\xd0\xb1\xc3\x4c\x2d\x60\x8b\x4d\x43\x92\xb5\xb3\x93\x22\xf2\x23\x49\xa9\xcf\xe9\x50\x9a\xac\x0c\x95\x21\xeb\x66\xcd\x65\x72\x6e\xc9\xc2\xde\x12\xf3\xbe\x84\xe2\x49\x6b\xac\x06\x19\xed\xbf\x79\x9f\x11\x24\xff\xb1\xcd\xa0\x7f\x87\xff\xf9\x9f\x6b\xbb\x2c\x88\x02\xcf\xa8\xdf\x99\x25\xbc\xea\xa2\xf0\x88\xc5\xb1\xf4\x3b\x85\x49\xb3\x29\x04\x30\x1f\x62\xd9\x8f\xc4\x10\x1a\x33\x4b\x0a\x70\x6d\x5e\x68\x62\xe1\xf1\x62\x14\x25\x89\x4f\xe8\xf7\xad\x29\x25\x3f\xfc\xba\x19\xef\xcd\x51\xa2\x8c\x05\xc8\xfa\x98\x0d\x59\xd2\x10\xa5\x7e\xa4\xa3\x8e\x06\x43\x8a\x59\xdf\xeb\xab\xf3\xa7\x21\x62\x3c\x12\x63\xfc\x57\x79\x14\x19\x7e\xf4\x8e\x14\xbe\xfb\xaa\x54\xc6\xa4\xdc\xb2\xfe\xbe\xbd\xe9\xbe\x45\x72\x52\x96\x70\x72\xda\x2f\x7d\x85\x3c\x4a\x25\xd0\xda\x73\xd3\xee\x31\x9e\xbf\xff\xdf\xef\x8f\xfb\xc0\xf3\x53\x77\x9c\x33\x8f\x28\x66\x87\xec\x1d\x7f\x85\xea\x08\x5f\x75\xfc\x22\x1e\xc5\xc9\x08\xe9\x33\x1b\xbe\xba\x88\x26\xe2\x31\x50\x84\xbe\x5e\x3a\x2d\xd0\x36\x67\x96\xd4\x59\xfb\xa8\xa6\x45\xc2\x88\x73\x29\x98\x7b\xba\x8b\x5e\xe7\x1f\x22\x0e\x46\xa9\xe7\xce\x89\xe4\xed\x6f\xab\xf2\x38\xf4\xf0\x1d\xc6\xcd\x11\xf8\x46\x2c\x41\x96\x59\xa1\xaa\xf2\x54\x8f\xde\xc9\x08\x02\xe3\xd6\xd9\xe6\x61\xf0\xd3\xfd\x55\x04\x40\xdd\x4c\x2b\x61\x66\x43\xc8\xf1\x15\x8a\x28\xa6\xb7\xf9\x70\x86\x4a\x65\x50\xf8\x54\xc3\xb3\x07\x65\xe0\x91\xaa\xdd\x03\xca\x6d\x03\x85\x82\x4a\xfd\xc3\x8d\x31\x92\x2c\x20\xf3\x10\x5d\x92\x53\x57\x3d\x94\xba\x81\x88\xb6\x3e\x43\x2e\x74\x7e\x4f\xa3\xcb\x8a\x3d\x34\x36\x16\x7f\x9c\xeb\xb3\x35\x87\x6c\xff\x98\x70\x53\x07\xc3\xcd\xea\xc9\x34\xd7\xec\x21\x3f\x88\xc2\xc8\xb1\xce\xab\xaa\xfc\xe8\x84\x96\x3e\xe1\x9f\xda\xcf\x05\x3a\x20\x37\x70\x93\x06\xed\x10\x8e\x0b\xab\x9f\x69\x83\xf2\xf1\x8d\x8e\x59\x6c\x4c\x15\x6a\x6c\x1e\xb3\xe2\x4f\x98\xe5\xb7\x43\xcc\x24\x52\x0a\x0d\x79\x5e\x7e\x4c\x60\xde\x83\xed\x3c\x0e\x41\x51\xcb\x85\xe6\x47\xfb\x1e\x39\x7a\x5a\x97\xc8\xc4\x21\x98\x66\x51\x9b\xa5\x2f\x33\xe5\x0a\x95\x7f\xbb\xe6\xda\x34\x70\xf0\x5d\xda\x5c\x3a\xd9\x02\x8f\x2b\xae\x7f\x17\xb4\xce\x26\x31\x71\xe4\xb1\x24\x1d\xc8\xfc\x6d\x6e\x5e\xd0\xa4\x8b\xcd\xeb\xee\xe7\x38\x15\x88\x23\xcf\x08\xd9\x12\x0c\x78\x57\x3a\x69\x9d\xed\x07\x9c\x9e\xc8\xe9\xe4\x9f\xca\x15\xd8\xf3\xc5\x2c\xa6\x7a\x42\x79\x32\xf8\xfd\x6a\x9d\xc3\xa9\xee\x6f\x5b\x1c\x19\x9c\x5f\x56\x3b\xd5\x92\xc9\x23\x8a\x39\xd8\xdc\xa8\xd9\x9d\x6b\xf5\x62\xc0\x42\x97\xc9\xa8\x24\x60\xd2\xb8\xfc\xab\x87\xc2\x6d\xfc\x71\xea\x79\x04\x59\x26\x98\xb5\xd5\x69\xae\x0d\xf3\x15\xfb\x41\xbe\x61\x73\x7f\x60\xf6\x83\x8c\xf7\x9e\xba\x89\x9c\x06\x06\x1b\xf6\x5b\x36\x64\x7a\x42\xcc\xa3\x88\x9e\x35\x85\x6b\xae\x00\xf6\xbd\xa8\x4f\x6d\x62\x30\x34\xec\x83\x18\x42\x8e\xf6\xf2\x97\x56\x77\xa6\x9e\x80\xcf\x21\x16\x3e\x4b\x2c\xdf\x82\xf2\x86\xed\xd3\xbd\x5b\x62\x63\x81\x9c\xe0\x4f\x6d\x92\x77\xec\x98\x1b\x93\xd7\x50\xfa\x41\x64\x13\xa0\xdb\xed\xee\xd7\x15\xb6\xb3\x3d\x9f\xdc\x23\xc9\x93\xc8\x1b\xe4\xf4\xbb\xd2\x64\x71\xfd\xad\x90\xe0\xa7\xd6\xf4\x75\x71\xb0\xae\xc0\xed\xce\x41\x32\x18\xb3\x01\x4c\x2c\x65\x8c\x86\xa3\xd1\xae\x8e\x66\xd9\xb1\x49\x7e\x97\xc7\xc6\x0a\x31\xb5\xe0\xc2\x5f\x71\x5e\x93\x1a\x62\xd4\x81\x46\xcb\x0a\x26\xf8\x8a\xfb\xb4\xf6\x12\xda\x28\xda\x17\x62\x55\x1e\x4f\xed\x4a\x75\xe5\x5e\xfd\x65\x75\x3a\xd6\xbe\xa4\x0e\x01\x69\x35\x95\x15\x21\xee\xbb\xd3\xc7\x09\x71\xe2\xb6\x59\x71\x38\xe7\x44\x80\xdc\x61\x1d\xc4\xdd\xf1\x44\x53\x42\xd2\xde\x94\x3c\x27\x90\xf0\xf6\x15\xbe\x41\xfd\xda\x75\x20\x12\xcf\xf3\x54\x3c\x42\xab\x8e\xde\xaa\xc4\x13\x21\x19\x09\x9e\x90\x16\xd1\x81\x90\x44\x7b\x4c\x51\x78\x0d\x4d\x03\xf2\x6d\x97\x11\x4d\x8a\x38\x77\x59\x71\xa0\x3d\xfb\xdc\x3b\x14\xcf\xe4\x73\x49\x10\x83\x14\xae\x17\x60\xe6\xf6\x95\xc7\x3c\x24\x41\x62\x34\xb3\xcc\xfb\x4c\xd4\xbf\x01\x76\xdb\x4d\xc5\x24\x50\x9c\x9a\x4d\xdb\xf5\xa3\x51\x8b\x5f\xef\xbe\xed\x97\x8b\xed\x7a\xff\xb2\x70\xa2\xf1\x90\xb0\x44\x44\x4e\x1d\xc3\xf4\x42\x42\xd7\x09\x4d\x42\x16\x70\xe9\x56\x90\xbe\xc2\xf6\x5c\x19\xf0\x44\x37\x2c\x65\xee\xbd\x1e\x9a\x99\x4c\x9a\xf4\x49\x14\x31\x72\x3d\x7d\x87\x73\xde\x90\x34\x64\x17\xe2\x25\x91\x62\xbe\x29\xb0\x3b\x1f\xce\xc9\x6d\x8f\x3d\xd3\x90\x79\x7b\xdb\xac\x9e\x76\x58\x37\xa9\xf7\x4b\x77\x48\xe9\xb4\x17\x83\xf7\xf7\xef\xe5\x47\xf7\x38\x63\x8e\x03\xbb\x37\xca\x7c\x8d\x79\xd3\xe0\xae\xc7\xc0\xe8\xbd\x7c\x80\xd7\x3f\xcb\xe2\xd0\x6b\x6d\x42\x92\x78\x10\x4a\xd7\x4d\xff\x20\x50\xe6\xa6\xae\xcf\xf8\xb5\x73\x30\x24\x09\x53\x04\x88\x14\x79\xc7\x55\x80\x24\x51\x1e\x95\xa0\xc4\xf9\x62\xcd\xb8\x56\xaf\x53\xd0\x3d\x24\xa9\x27\xa8\xf6\x5f\xbe\x63\x95\x97\xa0\x50\x3d\x60\xf3\x5a\x7e\x49\x4b\x85\x24\x0d\x22\xa3\x9d\x7a\xae\xaa\x7d\x31\xcc\x99\x92\x34\x4a\x29\x7e\x34\xf6\x0e\x7b\x43\x72\x1a\xba\xa9\xbb\x71\x09\x53\xb6\xef\xdd\xce\x04\x28\x5c\x0d\x3f\xe1\xa1\xb1\x54\x95\x65\x51\x93\x53\xc7\x0f\x84\x93\xa5\xb4\x6f\xd4\x6d\x59\x8d\xe3\x9c\xc9\xbd\xe0\xca\x50\xb3\xf0\xbf\x67\xc8\xaf\xc0\xeb\xa3\x5f\xc1\x35\x63\x46\x90\x21\xfb\xef\x19\x0b\xac\x6b\xd3\xfd\xb2\x87\xc1\xf3\xc3\xc0\x79\xb2\x1d\xa1\x7a\xf3\x47\x95\x8a\x04\x12\x9f\xd2\x68\x22\x44\xf5\xcc\x4e\xe1\x3e\x2f\x22\x45\x5c\xa3\x13\xca\x73\x91\x95\x16\x02\x3e\x2c\x4a\x24\x32\x30\x98\xc7\xbc\x2c\xdf\xce\x27\x92\xda\xbb\xc1\x06\xb2\xbc\x9e\xd4\xd2\x12\x09\x42\xa9\x8e\xd9\x63\xad\x71\x06\x5d\x8b\xf1\x3b\x2b\x11\x88\x59\x5f\x37\xe5\xe9\x85\xe0\xaf\xdd\x14\xd5\xa1\xa2\xaa\x63\x95\x1d\x5e\x1b\x9f\x4d\xbe\x46\x47\x8c\x40\x90\x27\x53\x47\x7a\xd2\x77\x65\x07\xa8\x49\x74\x62\x44\xf6\x1d\xfd\xd6\x0a\x9d\x4c\x4f\xc1\x83\xd0\x49\x7b\x41\xf1\xe6\xb9\xb8\x3d\xf5\xfc\x94\x30\x6d\x8b\xf7\x0c\x56\x9e\x5f\x74\x7f\x67\xc6\x2b\x88\x6a\xf7\x06\xea\xb6\x2b\xdb\x48\x6d\x76\xad\x66\x81\x7b\xc5\x53\xdf\x4f\x85\x11\x18\x3b\xd7\x0d\xbd\x47\xa3\xbb\x90\x06\x31\xa7\x89\x64\x09\x25\x5f\xd9\x81\x43\x1a\x68\xa0\x8c\xc9\x76\x2f\xb7\xb6\x93\xbd\x32\x4c\x39\xbc\x52\xfc\xf8\x47\x98\x76\x48\x19\x28\x82\xf7\xde\x94\xbb\x51\x47\xfc\xef\x8a\xfc\xe3\x8b\x0b\x03\x24\x07\x54\xd3\xfa\x6f\xef\xcd\xf8\xa6\xa7\x61\x1c\x53\xa1\xf0\x7e\xf9\x7f\x5f\x65\x43\x69\x08\x46\x3f\xef\x88\xed\x3b\x6b\x76\xcb\xc9\x99\x84\xc6\x5e\x1b\x65\x26\xa6\x4d\x23\x3f\x4d\x23\xb3\xb0\x98\x92\xe8\xf0\x98\x30\xfa\xa1\x16\xe2\xed\x3e\xfd\x55\x8d\x34\x8d\x84\x11\x9f\xb9\x41\x50\xa7\xb2\xcc\x83\x97\x76\x5e\x15\x65\x75\x5b\xa1\x93\xc0\x80\x34\x92\x09\x74\x25\x6d\xa3\xb4\xbf\x3d\xd1\x42\x70\x4d\x83\x81\x34\x66\x48\x0d\xe0\xff\x2d\xab\xc3\x28\x04\x4b\x13\xcf\x73\xf2\x55\x2f\x58\xc0\x91\x76\xd5\x29\x4d\x1d\xd2\xc4\x37\xe0\xc0\xfb\xa7\x1f\x7b\x32\xf3\x1f\x6e\x63\x69\xe2\x47\x81\xe8\x10\xe8\xbd\xc6\xc6\xe4\x1c\x3c\x66\xdd\x66\xd7\xd5\x40\xd3\x04\xbc\x01\x71\x60\xd3\xe0\xb1\x9e\x86\x77\xd3\x86\x63\x9a\x06\x61\xdc\x21\x88\x86\x78\xe4\xb4\xbd\x7d\xed\xd3\xf8\xfe\x78\xb3\x7e\xf9\xb1\xf8\x63\xbf\xdd\x2d\x76\xdf\x5d\x01\x32\xe5\x32\x26\x72\x19\xb5\x09\x57\x83\xda\x78\x0a\x1e\x90\x94\xf6\x73\x5e\x36\x3b\xac\x2a\x70\x95\x94\xcf\x5a\x1b\xf3\xb0\xa3\x14\x7c\xa0\x8d\xd6\xac\xf4\xdd\xd9\x43\x46\x3d\xa6\x7f\x65\x87\x6c\xb0\xc5\xa5\x10\xc7\x84\x8b\x06\x51\x97\xf9\xb9\xc1\x07\x63\xaf\x79\xdf\xb7\xa7\x52\x10\xc6\x6c\xef\xf7\xf5\x6f\xdd\x9f\xa4\xa0\x69\xb5\xef\x43\xd0\xab\xc5\x61\x36\xcc\x4c\x41\xa7\x94\x96\xd4\xe7\xa3\x51\x4d\xf3\xdd\x39\x85\xc7\xa4\x51\xe3\x28\xb0\xba\x3b\xb7\x2b\xc3\x3f\xca\x4c\x52\xc1\x90\x5b\x68\xfc\x6d\x0e\x87\xf9\x67\x2f\xc2\x98\x96\x59\xb3\x0d\xde\x43\xdd\x6c\x65\x59\x19\xfc\xc9\x64\x99\x12\x91\x04\x66\x90\xfd\xf6\x37\x91\xbf\x47\x97\xea\xa4\x22\x61\xd4\x7b\xea\xdc\x67\x57\x0e\x6e\xef\x04\x6e\x1f\xb2\xb1\xc5\x5f\x3a\xcb\xaa\xb0\xa7\x93\xbe\xf1\x48\xcb\xea\xa5\x29\x84\xcd\xd1\x94\x21\x55\xbe\xc7\x86\xa2\x4d\x6d\x1e\xbf\x2b\x3f\x19\x2b\x53\xe5\xd9\x30\xd6\x28\xfd\x9e\xaf\x21\x59\x29\xa6\x21\x55\xed\x1c\xae\xd3\x40\xab\x67\x28\x1e\x90\xa2\x08\x85\x89\x68\x4a\xf9\x96\x15\x07\x27\x53\xe2\x6e\x09\x22\xa6\xc9\x00\x99\x47\x75\xc2\xf5\x4f\x0a\xbb\xae\xd4\xe8\x21\x45\x1d\xf9\x03\xb3\xda\x2d\x1c\x71\x2c\x00\x37\x91\x3c\x6a\x3f\x61\x40\x5a\x07\x6c\x96\x84\x75\x73\xdf\xac\xe3\x98\x9a\x8b\xc7\xac\x68\x88\xe6\xad\x33\xb9\x82\x89\x8e\xc7\xe4\x96\x73\x8f\xc9\x24\xed\xac\xd3\x8c\x5d\xdf\x2f\x93\x21\x11\x23\x9e\xea\xbd\x01\x90\xad\xe0\xf4\x82\xd0\x6e\x42\xd3\x71\xa0\x08\x20\x7b\xbb\xf8\xee\x0a\x54\xdc\x47\x49\x8d\x99\x9d\x8d\x9c\x89\xd5\xfe\x37\x41\x23\xf7\x75\x2a\x8d\x61\x46\xf9\xf1\x70\x99\x89\x4e\x78\xe0\x09\x5a\xe5\x04\x36\xdb\xf3\xf1\xd8\x59\x43\x02\x0f\x94\x32\x3d\xa7\x36\x85\x85\x8f\xc9\x25\x32\x8b\xf5\x73\xc8\xb9\x7d\xf3\xa9\xc6\x2c\x70\x16\x07\x94\x37\x1c\xe1\x67\x3b\x8b\x6d\xf2\xe8\xbe\x88\x01\x0b\xc2\x01\xe2\x01\x69\xcb\x32\x78\x2d\xa3\x96\xed\x46\x86\x7e\x44\x0a\x67\xb4\xcd\x5a\x83\x93\xff\xb7\xdd\x96\x87\x32\xa6\x05\xa8\x17\x7c\xfa\x7a\xb2\xf0\x10\x81\x52\xa4\x55\x0f\x8e\x5e\x5e\x16\x43\xa3\xbd\xb9\x28\x9a\x47\x18\x92\x68\xe8\x92\xe4\xc0\x48\x22\xd7\x11\xb0\x80\xc7\xbe\x32\xb6\x9f\x68\xb0\x09\xe6\xd9\x52\x9b\x76\x70\x1d\x57\xa0\x4b\xf7\x69\x06\x81\x7b\xd5\x8a\x55\x59\x1c\xaa\xb9\xf5\x6d\xf4\x23\x12\x2f\x01\x4b\x8d\x5f\xc1\xa9\x81\xac\xb0\xde\x6c\x43\xfb\x6d\x37\x36\x8c\xe9\x07\xdf\x3e\xee\x3e\x75\x7d\xfd\xdb\x7f\x3f\x7b\x28\xe3\x87\x91\x32\x4d\x56\x3d\x8b\x5c\xc3\x60\x23\xe1\x69\xe4\x11\xd6\x6a\xd9\x5e\x5d\x86\x35\x19\x26\xfe\x6d\x94\xe6\x3e\x9c\x86\x44\x7b\x72\x33\x34\xe8\xce\x9a\x22\x79\x66\x1e\xb3\x02\x7d\xcf\xf3\x26\x33\x3b\x55\x66\xe9\xaf\xce\x85\xeb\xc6\x8e\x7b\x38\x3c\xc5\x88\xb8\x09\xa7\xaa\xfc\x79\x71\xc5\xbe\xdb\xaa\x3c\xee\xca\xcd\x6a\xf1\xfc\x23\x6b\x5e\x29\xd7\xc6\x62\x2a\x21\x34\x40\x80\x8c\x66\x49\xaa\xa5\xe6\x2e\x2d\xbe\x2d\x2b\xfa\xc1\xdd\x9b\xc8\x63\x4f\xa5\x43\x7d\xcb\x06\xaf\x75\xa5\xba\x69\xc1\x63\x49\x29\xb6\xd5\xbf\xb6\xc2\xe8\x46\xc3\x64\x02\x66\xe3\xdc\x8a\x8d\x0e\x6c\x3a\x07\x55\x7a\x0e\x0c\x09\x90\xbe\xb8\xfd\x31\x8c\xaf\x38\x48\x03\x32\xc7\x63\xd6\xb8\x22\xe0\x2d\xa2\x09\x2d\xa6\x8b\x19\x60\x12\x58\x3a\xe3\x73\x59\xcf\x55\xa8\x78\xbb\x11\x44\x34\x93\xa1\x52\xfd\xd7\x88\xd8\x34\x01\xc4\xb9\xa2\x00\xc2\xaa\xf7\xdb\xa3\x32\x48\x0d\x01\xdc\x40\xce\xee\x0c\x14\x48\x0e\xd0\x67\xdd\x48\x26\xa8\x80\x9f\xc9\x32\xd8\x13\x06\x5c\x0d\x7e\xa4\x4c\x31\xb6\x5a\x9d\xdb\x23\x54\xcd\x95\x55\x7e\x77\x67\x25\x1a\x7d\x8b\x81\xf2\xe5\xb0\x57\xc8\xd1\xf7\x28\xb1\x32\x9a\x4b\xb6\x18\x09\x5d\x39\xf8\x8a\x01\x33\xbe\x09\xc8\x92\x60\x08\xed\xde\x1c\x4f\xf3\xca\xfb\xc0\x51\xa4\x91\x2d\x94\xff\xb8\x7f\x98\xf1\x39\x02\xae\x3d\x49\x65\x06\x42\xdd\x43\x1e\x78\xbd\x59\x1e\x70\x1d\xf2\xd8\xb9\xb3\x66\xc5\x88\xe0\xe2\x46\x40\x42\x23\x0a\xfc\xf8\x81\x59\x5f\x83\xf9\xf4\xdd\xeb\xf3\x03\xf0\x30\x89\xa9\xa0\x77\x6e\xca\x23\x34\x99\x74\x45\x50\xc2\xa7\xcd\xbe\xac\xe0\x6b\xae\x0d\x18\xf0\xbf\x14\x6c\xdf\xb7\xff\x2d\x06\xfd\x38\x3b\x2e\x88\xb5\x37\xbc\x49\x90\xef\xa9\xb8\xf8\x8b\x3b\x2e\x02\x32\xba\x7c\xcb\xc6\x4a\x60\x00\x81\x36\x96\xe7\x4b\xcc\xcb\xa6\x21\xc5\x99\xc9\xb9\x59\xc2\x78\xef\xcc\xff\xcb\x00\x82\x65\x29\xae\x73\xff\x71\x9f\x4d\x03\x13\x68\xd6\x76\x83\x73\x32\x21\xe3\xaf\x08\x3d\x43\xd8\x35\xc5\x9f\x2e\x16\x1c\x37\x71\x21\xf4\x92\xc4\x36\xf6\x36\xab\xa7\x67\x82\x22\xfd\xc3\x8c\x74\x72\x5b\xc3\x00\x0c\x5d\xad\xc6\x66\x5b\xc0\xa9\x7e\x2d\x1b\xca\xe7\x26\xba\x4f\x5f\xc6\xd7\x10\x26\x8a\x5a\x50\x2f\x99\x7c\x6b\x03\xd1\xb2\x6a\x2e\xdb\xd7\x2a\x3b\x9e\xba\xad\x19\x22\x2e\x93\xb0\x33\xdb\xd8\xbe\x66\xa7\xd3\xa0\x21\x34\x5a\xed\x20\xf6\x95\xec\xab\x8d\x5f\xc9\x8f\x8c\x24\xf0\xae\xf5\xf0\xda\x53\x21\x45\x6a\x4b\x38\x9c\x40\xbe\x65\xb2\x1c\x2e\x54\x10\x87\x86\x6d\x43\x8d\xaf\xac\x38\x8c\xdd\xd0\xfe\xee\x9e\x8e\x2e\x3a\xc5\x98\x16\xe1\xfb\x4c\xe3\x2d\xc8\xa6\xac\xf6\x59\xe6\x78\x66\xc0\xe3\xd4\xc0\x9a\xf2\xb2\xc6\x65\x57\x85\x04\x2e\x38\x41\x4b\x3a\xce\xc8\x1e\xba\x24\x08\x40\xa5\x68\xd8\x32\xed\x94\x27\x3b\xac\xf1\x74\x11\xca\x8b\x70\xa0\xb9\xb0\xfd\x80\xea\x48\xf6\x3e\xb3\x04\x05\x90\x49\x42\xdf\x46\x10\x47\xfa\xc4\x0f\xcc\xac\x90\x74\x3f\xc4\xb4\x1c\x08\x6a\xbd\x97\xce\x16\x0f\x40\xca\x24\xea\x7b\xe2\xdf\x88\x5c\x34\x01\xf7\xdb\x91\x18\xc6\x46\x96\x2a\x47\xa8\x48\x00\xb9\x1e\x85\x0e\xa0\x83\xd0\x98\x93\xbb\xdc\x79\x35\xd0\x03\x9e\x07\xdf\x81\x4e\x53\xd7\x2a\xdf\x61\x8e\xa7\xb2\x5f\x89\x67\xe9\x74\xa0\xb5\x79\x5d\x2d\xd4\xc1\xcd\x36\x47\x66\x11\x5e\xa2\xa8\xb4\x77\x87\xcd\x0d\x5c\x56\x57\x86\x8b\x20\xfc\xc8\x4b\xed\x32\x4a\x6a\x90\x7c\xb4\x62\x08\x3f\x35\xac\xa1\xff\xbd\x5f\x0d\x27\x95\x08\x02\xc3\x18\x7a\x7e\x59\xef\x37\xab\xa7\xfd\x6e\xb3\x7e\xd9\xdf\x2f\xb6\xbb\x6e\x00\x33\x16\x47\x64\xa9\x00\x0d\x2e\x0a\x75\xd7\xbb\x92\xdd\xe2\x75\xcc\x3a\xfb\xde\x89\x20\x81\x44\x3a\x26\x00\xb1\xcc\x36\xc5\x0b\xdd\x19\xac\x06\x62\x6a\x20\x02\xc5\x5c\xea\x41\x82\x94\x0f\xa5\x1a\x56\x6c\x44\xa8\x0d\x3e\x61\xf7\x6d\xf3\x72\xb3\x7f\x5e\xbc\xec\xfe\xd8\xdf\x3f\xad\x7e\xfd\xfe\xec\xce\x10\x49\x95\xf6\x6b\xdf\xb7\xa7\xc7\xe6\x5a\xf9\x05\x44\x1c\x69\xa2\xb8\xaf\x8f\xa7\xae\x35\x3b\x1d\x93\xa6\x31\x45\xf3\x6d\x52\x67\x4c\x00\xbf\x0c\xd3\x44\xaa\x62\x0a\xd3\xba\x1e\xfa\x62\xfa\x98\x38\x8a\x40\x59\xa5\xbb\xbb\x0a\x4e\x5d\x67\x45\x08\x29\xa8\xb5\x4d\x7b\xfa\x46\x96\xff\x8c\x1f\x21\x64\x2a\x8c\x42\x16\x14\x4b\x5c\x66\x4a\x61\x31\xf9\x4a\xe5\xfb\xd4\x92\x31\xb2\xc1\x8f\xe7\xe3\x1d\x16\x58\x41\x6f\xe1\xea\xc6\x45\x8a\xca\x9a\xf5\xf9\x84\xd5\x11\xba\x29\xa2\x78\x48\x55\xcb\xa6\xba\x18\x24\x4a\x7f\x00\x69\x6f\x5c\xe6\x20\xdf\x1e\x49\x93\xb0\x3b\xa4\x22\x02\x31\x74\x16\x53\x8b\xcd\x7c\x3a\x25\xd0\xe3\xe0\x0c\xbf\x5d\xa9\x43\x68\x5f\x92\x3b\x68\xe7\xb2\xfc\xd9\x2a\x37\x9a\xe3\x3a\x34\x34\x5b\xc2\x1c\x38\xf7\xc5\xf1\x76\x24\xb4\x36\x96\xe9\x93\xaa\xe9\x8b\x7d\xb7\xff\x5f\xcb\xa6\xd2\x63\x09\xcd\xa6\x26\x43\x27\x33\xed\x8e\x84\xb1\x31\x37\xb9\xbd\x5d\x0e\x5f\x3d\xe9\xfb\xb1\xec\xa7\xe9\xaf\x59\x71\x50\xe5\xf1\x33\xac\xf1\x6c\xec\x24\xfd\x40\x12\xc2\xbc\x6e\x13\x74\x7f\x04\x0c\x90\x3e\x46\xc4\x26\x26\xe7\xce\xfd\x72\xb7\x72\x25\x36\x19\x84\xa6\x0f\xdc\x26\xf7\x50\xe5\x97\x67\xa8\x2c\x97\xb1\xd3\x95\x9c\x29\xa3\xca\x20\x32\x7a\xb3\x23\xe0\x05\x05\x76\x6e\x80\x4e\x49\x84\x8a\x72\x3e\xeb\x67\x33\x7e\xa1\x24\x0b\x8d\x9c\xb1\x89\x3a\x67\xeb\xf1\x92\xa5\x9a\x08\x4b\x7b\xa3\x5a\x43\x52\x84\xe3\x76\x97\x64\x98\x10\x9b\xa6\x81\xea\x80\x8d\x9b\x36\x32\x0c\xb9\xe2\x9d\xb1\xc4\xfc\x84\x93\x61\xe2\x03\x95\xff\x2e\x32\xc7\xfb\x81\x53\x40\x7b\x28\x20\xd9\xef\x53\x1b\x62\xdc\xe0\xfb\x84\x08\x33\x3d\x51\x1a\xd0\x42\x45\x54\x83\xf2\xd6\xc2\x4a\xdc\xb9\x22\x4f\x86\x96\x59\x65\x0d\x7f\x3e\xdf\xf9\x65\xc4\x18\x75\x66\x1d\x7e\x0c\xf3\x3c\x18\xcd\x95\x28\x0c\x62\x5b\xc2\x7b\xfa\x28\x76\xaf\x48\xbb\xc0\x1c\xd2\x43\x46\xa9\x79\xf5\x5c\x19\xec\xe6\xdc\x4e\xa8\x4d\xd1\x46\xce\x04\x0c\xfb\xe4\xbe\x44\x90\xf2\xae\x61\x33\x10\x18\xfd\x65\x06\x24\x26\x23\x10\x03\xcc\xd9\x43\xd9\xbe\x43\x73\x73\x26\xf6\x04\x55\x15\x17\x4a\xed\xe0\x30\xbb\x03\xcb\x38\x96\xca\xa2\x36\x0c\x9a\xb1\x4f\x5a\xec\x88\xd4\x33\x8b\xa6\x89\xb1\x7e\x83\x2a\x6b\xa7\xd6\x27\xb4\x07\x99\x06\x01\xf1\x20\x4f\x15\xbe\x67\xe5\xb9\x36\x96\x11\xc3\x4e\xb4\x4c\xb5\x61\xdd\x1c\xb0\x21\xcb\xc2\xc9\x0c\xe4\x8a\x53\xbe\x01\xef\x58\xc1\x01\xef\xb0\xf0\xda\x27\x38\x50\xae\x03\x09\x09\x78\xf6\x89\x2c\xbb\x6a\xc7\x7c\x8a\x23\x85\x17\xd1\x2f\x24\x05\xbf\x76\x9b\x1d\x71\xc3\xa4\x88\xa5\x37\xf0\x62\xd9\x95\xdb\xb3\xa8\x65\x95\xd1\xad\xb8\xaa\x5d\x4a\x01\xa6\x22\x5d\x63\x63\x27\xdd\x35\xde\x4d\x0a\x19\x10\xf7\xab\xcd\x6a\x7b\x85\xe9\x36\xa3\xbf\x56\x66\xfe\x22\x99\x97\x02\xb9\xec\x79\x01\x37\xe8\x5a\x94\x0e\x2c\x27\x65\x10\x11\x62\x7d\x87\x70\xdc\x8f\x80\x89\x52\x46\xa6\xa1\x5b\x8f\xe2\x05\x2b\x59\xfa\x09\x69\x54\xca\xc8\xf8\xaa\xd7\xa0\x91\xd2\xbc\x2f\x77\x5c\x29\x45\x40\xa8\xb5\xce\xf2\xee\x84\xa6\xf0\x5a\x77\xda\xaa\x93\xf3\x4b\x53\xfd\xaf\x9d\xf9\xfc\x27\xaf\x83\x0a\xfc\xd0\x14\xa4\xa0\xce\x0e\x85\x7d\xbe\x33\x75\x28\xa9\x02\xad\x59\x87\x2d\x9e\x2e\xe0\x9f\x6d\x1f\x83\x97\x44\x61\x20\x85\x2b\x98\x6c\xd4\xf2\xd2\x73\x1a\xfb\x6f\xc1\x30\x1d\xd4\xe7\xf7\x47\x78\xc3\xbd\xb0\x33\x37\x75\x63\x54\x24\xec\xcc\xd8\x96\x9d\x6f\xe7\xf8\x3c\x3a\x51\x84\x46\x78\x58\xfc\xbe\x5f\xff\xfe\xbc\x79\x59\xef\x6f\xd6\xf7\x8b\x3f\xdc\x43\xd3\x22\x49\xc1\x69\x9c\x57\xef\x58\x3d\x5e\xb5\xc2\xa5\x96\x1e\x6d\x3b\x4e\x5c\xb6\xab\xfc\x2b\x8f\x05\xce\x1d\xfc\x31\x93\x6f\x8f\x57\xcd\x03\xe5\x85\x18\x86\xfd\x64\xdf\xd4\xdb\x53\x9e\x35\x57\x80\x50\xe5\xe9\x84\xa8\xb0\x12\x4e\x8e\xb9\xd7\x7d\x8b\x9f\x68\x02\x01\x91\x3b\xdc\x8f\xac\x50\xe5\x07\x5b\x5b\x1f\x6f\x37\xa4\xbd\x17\x83\x86\x97\xab\x7a\x7d\x39\x9b\x54\x00\x86\x15\x7f\xc0\xe6\x3b\xf5\xd8\x3b\x33\x8d\xd1\x23\x19\x4f\x59\x15\x08\xed\x84\xd8\xef\xe0\xd8\x2e\x13\x7f\x4d\xee\x98\x0a\xb4\x00\x67\x2f\xf3\x89\x3b\xc6\x97\xe1\xb3\x62\xe0\x53\xd5\xf9\xff\xfe\xf8\xa4\x5f\x3a\xb9\x26\x26\x03\x92\x43\x22\x6f\x20\xea\xb6\x8c\x2f\xfd\xba\x65\xa7\x42\x6e\xec\x1e\x2c\x0b\xe9\x1e\x75\xd3\xfe\x5b\xf7\x09\x97\x0a\xb9\xef\x7a\x9a\x0f\x50\xbd\x99\x54\x63\x79\xb1\x48\x87\xc9\x94\x55\xa1\x64\x81\xd1\x2b\x37\x95\xc7\x95\xa5\xc9\x4c\x4d\x51\x41\x85\x1a\x28\x44\xdd\x36\x50\x1d\x33\xf5\xc9\x2f\x1c\x4c\x75\x15\x79\x8a\x8a\xbf\x9a\x84\xcb\x0b\xe9\x16\x53\x15\x29\x16\x0d\xab\x80\x57\x4f\xbc\x7f\xf1\x54\xe2\x7b\x14\x81\x19\x7d\xc9\xe1\xba\xa7\x52\x1f\xd3\xd8\xa1\x3d\xce\xd5\x0c\x7f\xea\x53\xf5\x3a\x50\x3c\x32\x48\x69\xa3\xd2\x32\x6f\x9b\x31\x79\xbe\x22\x08\xa9\xa7\xec\x16\xca\x7a\x3d\x12\x2e\x52\x22\x46\xca\x69\x28\x3b\x78\xc9\x9a\x73\x87\x72\x50\x22\xd6\x56\x3c\x98\x04\xbf\x2d\x17\x78\x53\x2c\xcf\xf9\xdb\xb4\xec\xa7\x44\xea\xd1\xce\x47\x80\xbe\x27\xbd\x7a\xcd\xf2\x4f\x56\x40\x25\xa3\x98\xf4\x75\x84\x01\xaa\x4f\x1e\x99\x14\x9a\x5e\x95\x87\xdb\x9d\x34\xd4\x4e\x77\x3d\x2a\xd0\x54\xc6\xe8\xba\x11\x59\x59\xec\x3e\xca\xc9\xfb\xad\x78\x48\x92\xc6\xe7\x5a\xbd\x40\xd6\xe3\x24\x95\xe2\x32\x25\xc6\x01\x88\x61\xfb\x57\x29\x25\x98\x9d\x7b\x2f\x65\x79\x1c\xee\xe7\x4a\xe9\x88\x2a\x7c\x5d\xd8\x62\xdf\x5b\x23\xb3\x36\x6f\x7e\xd2\x7e\xca\x10\x60\xac\x16\xc8\xe6\x08\x07\xdc\x74\xd7\xa1\x7d\xf3\x03\x3b\x5f\x0f\xb3\x5d\xf4\x17\xaa\x43\x03\xd4\xa6\x80\x69\x2b\xcb\xd3\xd5\x3b\xed\x06\x72\x53\x43\x9c\x0a\x54\xce\xf5\x61\xd1\xf3\xa2\xd8\xc2\xd9\x7f\x2b\x1b\xac\x5f\xb0\x3e\xe7\xee\x87\xa2\xcf\x15\x21\x44\xac\x4d\xa0\x31\x24\x70\x07\x99\x0a\x93\xff\x6f\x62\xcb\xf6\x83\x61\x18\x11\xd1\xc2\xd4\x6e\x8a\x52\xe1\x95\xb5\x05\x60\x18\x45\xb1\xad\x69\x0c\xa2\xc3\x25\x19\x11\x4c\x66\x19\x86\xd2\xa7\xb6\x83\x32\x7c\x6f\xb5\xe8\x7e\x40\x68\xad\x1e\x0f\xd8\x3c\x63\x55\x97\x05\xe4\x56\x28\x7d\xde\xe0\xca\x7e\x2c\x82\x38\x50\x43\xef\x35\x54\x03\xa5\x58\xc0\x38\x89\x08\xf6\x48\xb0\xe5\x75\xf3\x6a\x55\xfa\xfb\x7b\x93\x78\xca\x55\x9f\x4e\xb4\x3e\xcf\xce\x79\x4c\x02\x83\x75\x73\xe1\xc4\x12\x7a\x0b\x03\x3b\x24\xf5\x25\xb3\x4a\x99\x96\xce\x3e\xd2\x68\xc0\x34\x4e\x22\xd5\x23\x06\xa1\xb8\x8c\x10\xea\x6e\x14\x30\x15\x3b\xbf\x40\x2a\x87\x8c\xdf\x0f\x4c\xa5\x26\xae\xce\xbf\xb2\xa6\xea\xda\xc8\xc8\x3d\x46\x89\xb1\x69\xdc\x3d\xc3\x65\x28\xbd\xec\xc6\x28\x41\x6f\x96\x95\x9c\xbb\xd9\x2f\xbf\x6f\x37\x8f\xeb\xed\x76\x7f\xf7\xf2\xd4\x55\x49\x10\x02\xa3\x29\x4e\x1d\xeb\x36\xe2\xcc\xd4\x24\x13\x43\x91\x32\xea\x9a\xb5\xf1\xe5\xde\x11\x75\x51\x32\x2d\x53\x17\xef\x14\x4d\x59\xcc\xe3\x99\x51\x26\x06\x53\xec\xd0\x57\xcb\xf3\x45\xf4\x05\x43\x94\x5a\x42\x0f\x3d\x6c\x6f\xf4\x20\xda\xb3\x63\x54\x60\x65\x1a\x7a\x3a\xe0\x8a\x50\x1b\xf9\x0c\xde\x7c\x6e\x1f\x44\x8d\xc6\x19\x10\x94\x32\x0a\x87\x6d\x1a\x32\xa7\x0b\x0d\xda\x63\x9a\x1c\x83\xbb\xfe\x51\x55\x1e\x6f\x3b\xfb\x9a\x5f\xdc\x28\x85\x8a\xf7\x9a\xdf\x86\x81\xbd\xcf\x8a\xfd\x07\xba\x02\xaa\xf6\x63\x66\x08\x21\x5f\x8b\x19\x6a\x3f\x95\x8e\x23\xb0\xdb\x3d\x8c\xca\x15\xa3\x5f\xa1\x03\x3f\xc4\x5e\xab\x6c\xf7\xb3\xd8\xc1\x64\xb3\xd5\x41\xe8\xd1\x1b\xb2\x37\xd2\x8e\x55\xd3\x47\x2c\xae\xc2\xa3\x03\x88\x48\x70\x27\x6b\xf0\xf8\xd8\xc9\x37\x68\xc6\xc1\x3a\xac\x5a\x2b\x74\x23\x15\x31\x3e\x7f\xe8\x27\xe4\x94\x96\x39\x63\x91\x9a\xba\xfe\xed\xe4\xb1\x78\x73\xd3\xe6\xe8\xde\x49\x1d\xfa\x86\x52\x5c\x37\xe5\xe9\xb9\xac\x1a\xc8\xef\xce\x64\x6e\x9c\x75\x93\x40\x87\x21\xa3\x22\xc5\xf6\x7c\xc2\x6a\xad\xba\x86\x98\x0e\x43\x4e\x68\x7a\x63\xd7\x4f\x9c\xc2\xcf\x98\xfc\x3a\xe4\x40\x60\xee\xe2\x7c\x5c\x14\xd9\x11\xf2\xfa\xf7\x81\x10\xa3\x0e\x45\x4c\x68\x14\xb0\x8c\x6c\xf6\x5c\x95\x7f\xa2\x1c\xa9\x49\xe9\x28\x35\xca\x2b\x03\x0a\xf6\x5c\xe2\xab\x23\xce\x92\xa8\x93\x48\xff\x5e\xd4\x65\xae\xb6\xa0\xbb\x2f\x8b\x83\x98\xda\x01\x5b\xbc\x56\x18\x9d\xbf\xfa\x58\x05\x9d\xe9\x6c\x47\x22\xc4\x6d\x36\x98\x73\x09\xb2\x20\xea\x32\x64\x02\x60\xb9\x43\x6d\xb2\xcb\x3a\xd2\x73\xb7\xdf\xd6\xb7\x65\x35\x3f\x95\xd2\x80\x53\x99\x51\x9f\x0b\xd5\x35\xf3\xc6\x57\x94\xc6\xca\xb4\x18\xeb\x2d\xe6\x79\x56\x1c\xb6\x03\x3d\x30\x9d\x8a\x24\xb1\xa5\xea\x45\x9e\x0b\x6c\x96\x97\x76\x2e\x11\x88\xa4\x0f\xd0\x34\x4f\x42\xba\x51\x2a\xab\xdb\x40\x66\x71\x6e\xca\x17\xcc\x0c\x99\xda\x0d\x49\x15\x01\xba\x6e\xd7\xeb\xfd\xf3\xfa\x65\xb5\x76\x2a\xeb\xa0\x39\x0f\x85\x95\x3d\x6c\x5e\xf0\x74\x6e\xc6\x4a\x37\xb3\x9b\x84\xe6\xca\xa7\x22\xba\x15\xb8\x85\x23\x2e\x0a\xb5\xbd\x1c\x45\x99\xcf\x98\x7a\x80\x06\x69\x7c\xa9\x37\xab\x27\x2c\x54\xaf\x00\x0f\x5a\x04\xc2\xfa\x91\x34\x0f\x04\x3c\x24\x9b\xd6\xcb\xe9\x93\x6d\x43\x8b\xc4\x23\x7a\xe9\x11\xfe\x2c\x2b\x42\x09\xb5\xd9\x67\x5f\xf1\x99\x5d\x6f\x24\x37\xed\x14\x5d\x61\xf1\xd7\x65\x42\xb3\xd6\x0a\x83\xd4\xf0\x80\x3e\x2a\x38\xad\xbb\x22\x95\xc6\x08\x69\xdd\x26\x92\x3a\x1c\x89\xdc\xe2\xd6\xa8\xf1\x55\xe9\x50\xd0\x4e\x75\x7b\x2e\x54\xed\xfa\x96\x9f\xc0\x5a\xb4\x16\x4c\x9b\xda\x99\x28\x0b\x35\x3d\x93\x32\xfc\x46\xc2\x32\x1e\xa0\xc8\x6a\x18\xb8\x5a\x09\xcf\x63\x1e\xcd\x98\x67\xb8\x90\x90\xda\x2c\x00\x6f\xf4\x85\xc2\xf3\x78\x4c\x2d\x8d\x23\x9c\x3a\x89\xf6\xd1\x5c\x15\x9e\xa7\x03\x62\xeb\x9f\x9b\x2c\xcf\x9a\xcb\x88\x2e\x2c\x3c\x3f\x8e\x69\x25\xb6\x7f\x9e\xe8\x72\xcd\x3a\x33\x7d\xa2\xc3\xe5\x4e\xa8\x52\x67\x69\xb2\xcc\x46\x56\xe8\xc2\xf3\x75\x48\xcb\xeb\xaf\x4f\x9b\xa7\xad\xd1\x8d\xae\x88\xe7\xf9\x8f\x9b\x99\xe3\x9f\x16\x78\x09\x6d\xe4\xaf\xcf\x70\xa1\x7a\xe9\x36\x3b\xb8\xef\x0a\x24\xf3\x9c\x7d\x73\x1b\xc5\x4c\xf3\x25\xe1\x31\x2f\x8d\x2c\x4b\xdf\x5a\xa4\x57\xa3\x58\x50\x78\x8c\xf9\xca\x00\x70\xc9\xd3\x6e\x72\xeb\x58\xc2\x7d\x41\x9d\xc6\xba\xc1\xe1\x42\x28\x3c\xa6\x84\x51\xc6\x3a\x67\x32\x53\x48\x73\x67\xf2\x58\x18\x32\x92\xfb\x71\xd2\x12\x6a\x5f\x4f\x8a\x54\xc2\x63\x5a\x24\xc6\xd8\xa9\x28\xb2\xe2\x30\xe8\xf0\x08\x2f\x8c\x12\xea\xa8\x59\x3d\x91\x2d\x56\x19\x4e\xbf\x23\x94\x8c\xc4\x28\xb5\x21\xe3\x0d\x53\x04\xe1\x85\x4a\xfb\x56\x7d\xe6\xe5\xf1\x6e\x05\x79\xde\x06\x16\x77\x50\x1b\xdd\x87\xd9\xba\xa0\xf0\x22\xa6\xc1\x9a\xb7\x4a\xab\x4a\x71\x55\xfb\x1a\xd5\xc4\x82\xd0\x7d\x92\x9b\x79\xa8\xcf\x85\xdc\x07\xc3\x44\x51\x78\x91\xd0\x46\x8e\xd6\xac\x73\xed\x94\x30\x91\xe9\xf8\xf7\xc4\xbe\x69\x33\x1e\xb2\xe3\x11\x9f\xb3\xbf\xfe\x02\xf7\x63\xe2\x54\xd3\x91\x5b\xcf\xf3\xfc\xd1\xa3\x88\x79\x4a\x25\xc6\x73\x8d\xd5\xa2\xb9\x2e\x0a\x09\x2f\xc6\x38\x42\xc7\xea\x6b\x67\x7f\x1b\xb3\x3c\x57\xe5\xcf\xaf\x25\x28\xdb\x0f\x4a\x6a\x01\x54\x94\xd3\xec\xa0\x7e\x5b\x19\x71\xb6\x99\x55\xd6\x7e\x24\x05\x60\x96\xeb\xb8\x1d\xc8\x82\xba\xa3\x82\x11\xbb\xd2\x44\x28\x0f\x08\x6d\x9c\xde\xa6\xfd\xd3\x1b\x91\x2a\x41\x5a\x59\x78\xcc\x9a\xe5\xe7\xbb\xba\xf0\x38\x28\x02\x34\x93\x36\x42\x01\xe7\xa6\x5e\xff\x3c\xe5\x65\xd5\x4d\x23\x67\x43\x71\xfb\xfd\x71\xf5\x77\x0e\x19\xc2\x83\xc4\xa3\x9c\xfc\x15\xea\xdf\xb0\xaa\x7b\x59\x17\x7b\x5c\x68\x60\xa9\xab\x0b\x1e\xb2\xb2\xe8\x81\x28\xfe\x74\x26\x49\x6e\x0c\xe0\x4d\xf5\x7b\x9b\x1d\x0a\x12\x13\x9e\x5d\x0a\xd2\xd9\xd5\x5f\x78\x4a\xc4\x60\x61\xdd\xab\x57\x3c\x12\xd5\x6f\x6e\xc7\x16\x1e\x72\xd3\xd6\xa2\x3c\x73\xc6\x5a\x49\x78\x88\x40\xa9\x99\xb5\x1b\xcd\xb0\x76\xd1\xba\xf0\x74\xe0\x13\xf3\x85\xfc\x35\xbe\x14\x68\x4c\x87\xf8\xab\x09\x12\x4b\x78\x3a\x8c\xad\xdb\xe4\x7b\xf9\x86\x0b\x29\xb1\x26\x78\xc8\x6c\xc2\xd6\x0e\x17\xa4\x23\x51\x9c\x8f\x9d\xcf\xb9\x51\xf1\xc5\x6e\xce\xe8\xc8\xa7\x1a\xcb\x5e\x61\x83\xd5\x31\x2b\xf0\x06\x35\x4e\xf7\x31\xe1\x69\xe1\x01\x1b\x20\x07\x9c\x4b\xc8\xd5\x4b\xeb\x2a\x3b\xc2\xf7\xb8\xf1\x4c\x3c\x81\x7c\x1b\xd0\x72\x85\xef\x89\x50\x28\x57\xde\xa4\xba\xc6\x0d\x9e\x2a\x94\xd7\x55\x29\xe1\xfb\x4a\x19\x97\x88\xff\x9e\xb3\xaa\xc2\xfc\x05\xff\xeb\x4e\x13\xf8\x48\xf8\xa6\xf3\x2c\x00\xfd\xdf\xbe\xe7\xff\xc7\xdd\x39\x3f\x88\x12\xca\x2b\x2c\x14\xe7\xba\x84\x2c\xfc\x40\xc5\x3e\x3a\x05\xa3\xc3\xd5\xea\xe1\x07\x5a\xa5\x8e\xd9\x03\xcd\x50\xe1\xf5\x13\x40\x65\xfb\x11\x24\x5a\x93\xcb\x28\xee\x4b\xb7\xbf\xf8\xcc\x33\x32\x64\xa0\x9c\x42\xd2\xae\xfc\x5e\x48\x38\x9d\x3a\xc9\xa4\xe9\x7a\xec\x87\x01\x52\x3f\x61\x6f\x85\x50\xa8\x40\x30\xfc\x6e\x2b\xa4\x7b\xb5\x6e\xf8\x21\x8b\xa9\x24\x9c\xc3\xc5\x39\x24\xdb\x84\x44\xf8\xa1\x60\x91\x7d\xb2\x77\x58\x60\x9d\x5d\x7d\xad\x8e\x18\x3a\xaa\xcd\xae\xb7\xfa\xec\xef\xd0\x55\x21\x53\xf8\x91\x0a\x68\x77\xfb\xbf\xa1\x70\xaa\xf0\x63\x16\x39\x39\x09\x8b\x6b\xba\xc6\x9a\x09\x3f\x4d\xc2\xc4\xd6\xbf\xef\xda\xd8\x9e\xe6\x2c\xb1\x21\xc6\x57\x96\xa2\x30\xfa\x4a\x46\x14\xdd\xbd\x6f\x7e\xaa\x05\x26\xce\xf1\xc5\x7a\x9c\x4d\xbe\x82\x47\x31\x29\xd4\x6e\xfe\x6f\xb7\xbf\x59\xaf\x36\x0f\x8b\xfb\xad\xfb\x38\x08\xb3\x33\x2f\x9a\xf2\x98\xc9\xed\x07\x9c\xe6\x83\xa9\x89\x1a\xa5\xf0\x85\x30\xbd\xcf\xd7\x8b\xa8\x32\x65\x0d\xdf\xda\x94\xac\xf7\x1e\x12\xbe\x04\xa4\x88\x77\xfd\xfe\x88\x1f\xa3\x5f\x3f\x39\x9b\xd4\xe0\x26\xdc\x03\xfc\xbc\xa9\xca\x53\x3d\xf9\x11\x8a\xa5\x1e\x5a\x41\x43\x17\xbb\xba\x96\xcb\x72\xba\x92\x4d\x69\xdd\x9f\xc5\x4c\xd4\x1a\x1d\x8b\x6e\xba\xaf\x4b\x42\x2a\x3a\x58\x58\xa6\xf1\xfb\x9b\x81\xf6\x0b\x5f\x21\x43\x63\x10\x72\xb3\x6d\xca\x53\xdf\x14\x10\x3e\x06\x52\xd9\x30\xd6\xc2\x33\xc6\xa1\xe3\xf8\x44\x08\x56\x41\x9a\x3c\x48\x2a\x90\x4e\x21\x50\xf8\x28\x14\x99\x92\x2e\xef\xb7\x46\x4f\x68\xbf\x5a\x3c\x77\x07\x95\xa2\xd5\xb8\x4d\x6b\x16\x37\x37\x2f\xeb\x6d\xf7\x74\x35\x37\xb0\xfa\x6f\x50\xdf\x60\x8e\x07\x68\xd0\xf6\x50\x1c\x40\x56\xf8\x1a\x8c\x8e\xf0\x7f\xcf\x58\x5d\x2c\x4c\xc1\x70\x4b\x3f\x79\x56\x5a\xa7\x61\x6f\xac\xb7\xf9\x1a\x46\x2f\x82\x20\xf0\x48\x58\xe4\xb9\x2a\xef\xb0\xd8\xa1\x63\x0a\x88\x20\xe0\x9a\x56\x21\x23\xd1\x42\x2d\xca\x36\x9e\xe8\x5d\x4b\xec\x38\x66\xdb\xb1\xa2\x14\x06\x30\xe5\x3c\x31\xaf\x1c\x77\x86\x3b\x5f\xe0\xcd\xc7\x22\x01\xe3\x8a\x83\x85\x95\x2d\xd4\x9f\xe7\xba\x79\x44\xb7\x56\x05\x61\x64\xe4\xd9\xe4\xb9\x6e\x4a\x95\x41\xb1\xfb\x44\x15\xc3\x8d\xd7\x5a\x75\xd5\xb7\x73\x9b\x10\x63\x3d\x94\x5a\x77\x8b\x44\x10\x2b\xed\xf5\xa4\xa6\x5e\xd1\xa5\x1b\x37\x5d\x56\x82\x34\xf6\xa3\x5e\x51\x7c\x4c\x69\xf9\x9c\xcb\xe2\x3e\xac\x8c\x89\x2c\xd5\xfb\xea\x9a\x92\xa7\xe1\xf3\xf1\xe3\x6e\xa0\xa2\xc6\xcd\x3e\xab\x77\x8b\xa7\x2e\xb6\xb0\x2f\x14\x91\xb2\xff\x11\xe2\x4a\x04\xdc\x43\x2a\x2c\x3c\x64\x47\xc3\x68\xfa\x22\x3c\x0a\x78\x64\x1a\xf5\xbd\x21\xd8\x66\x5c\x8c\x13\x01\x57\x86\xe0\xef\x6a\xa3\x6d\x46\x39\x5a\x8a\x27\xdf\x0f\x49\xca\x1c\x32\xe9\x7c\x21\x9e\x37\x16\xcd\x75\x31\xb4\x1d\x69\x48\xeb\xba\xc2\x59\x8e\xa6\x08\x04\x33\xb5\xa4\xa6\xbc\x41\x49\x25\x9e\xe9\x80\x18\x49\x32\xfb\xf9\xfb\xe3\xcd\xc6\x4d\x1e\x01\x82\xd4\x06\x9c\x5c\xe2\xb3\x13\xec\x14\x81\x50\x02\x5c\xae\xf7\xfd\xfb\xac\x07\xa0\x08\x04\x6a\x0b\xb3\x6d\xaf\xc9\x96\xb9\xfe\xee\xee\x4f\xce\x21\xbd\x80\x8a\x1c\x67\x23\x7e\x33\x0b\xda\x10\x81\xf4\x7d\xea\xba\xae\x7f\x9a\x1b\xe4\xcc\x3c\xfe\x29\x1a\xc9\x9d\x26\x06\x9f\x3b\x67\x36\x93\x53\x7f\x01\xe9\x11\x81\x4c\x13\x6a\x4b\x5a\x6e\x78\x30\xe0\x86\x8b\x40\x6a\xb3\x50\x1c\xb0\xd9\xb7\x59\xfd\x3e\x6b\xf0\xe8\x0e\x6a\xe6\x31\xa3\x5b\x7a\x29\xcf\x57\x6d\x55\x37\x28\x4c\xfd\xa4\x37\x17\x36\x41\x63\x77\x86\xd4\x90\x56\xf6\xbd\x55\xde\x16\x65\x85\xdd\x23\xd2\x3a\x30\xfe\x0e\xa5\x6e\x56\x70\x72\xf9\xb6\x39\xca\xbc\x34\x11\xd6\x36\xeb\x56\x66\xf3\x17\xc0\x3c\x65\x7c\xbe\x9a\x11\x95\xf5\xab\x20\xf8\x33\xbe\xc7\x55\x18\x3f\x07\x97\x10\xcc\xd3\x51\x62\x3a\x29\x3f\xd7\xcd\xeb\xae\xa4\xbc\xd5\x5d\xb2\xaf\x19\x91\xce\xfe\x55\xe6\x8d\x83\xd7\x09\x16\xf8\x3e\x25\xdc\xb2\x5d\x4a\x07\x4a\xf6\x82\x05\x52\x1b\x6b\x3c\xc8\xd1\x31\x13\xda\xf0\x2f\x70\x03\x58\xaa\x43\x02\x9a\xb7\xdf\xf2\x00\x3f\x1f\xcf\x47\x27\x77\x30\x79\x3f\x58\xc8\x4c\x4d\xa1\x03\xb1\x62\x45\x4e\xf6\x9b\x9b\x71\x99\xf3\xda\x35\x6d\xb8\x0d\xb3\x90\x1b\xcf\x99\x03\x1c\xd1\xc2\x08\x3b\x92\x9b\x60\xa1\x34\x3f\x65\xa4\x42\x42\xc5\xe8\x9b\xae\x80\x28\x58\xa8\x81\xd6\x25\xfb\xd0\x77\xf7\xdb\xc7\xe7\xaa\x2c\xf5\x1c\x3a\x48\xb0\x28\x41\x82\x7a\x9d\x4c\x03\x7f\x60\xd4\x28\x58\x04\x69\xe8\xdc\x8c\x28\x6c\x16\x6e\x8f\x62\x71\x1c\x04\xa6\x99\x0d\xca\x19\xde\x8c\x7f\x4a\xac\x22\xfa\xf0\x8f\xcd\xe3\x4b\xf7\x29\x9d\xa2\xd1\xd6\xa7\x56\x81\x91\x1d\x8c\xc3\x51\xa6\xc8\x92\xc0\x77\x4c\x3b\xd3\x04\x37\x40\xec\xf1\xfd\x4e\x94\x0e\xad\x01\xe1\x5d\xa6\x9b\x7a\x79\xd9\xe1\xf1\x94\x43\x83\x13\xe9\xdb\x76\x65\x33\xc5\xb5\xe3\xa0\x4b\x3f\x7f\xf7\xdb\x1d\xc8\x96\x7d\xee\xb3\x77\xdc\xfd\x1c\xaf\x22\x8c\x0b\xc9\xbd\xde\x6d\x10\xab\xe6\xb2\x2a\x73\x07\x53\xee\xd3\xd8\x7f\x47\xff\x71\x9f\xd0\x21\xe1\xb8\xa8\xad\x6c\xa3\xe2\xe1\xb3\x82\x80\xb9\x0e\x85\x93\x45\xea\x97\x0f\x06\x09\x63\x46\x78\x8d\xe4\x46\xf0\xe9\xd4\x0c\x37\x36\x37\x2a\x35\xa0\xd8\xfb\xf2\xf0\x5b\xd9\xb3\x7d\xae\x5d\x40\xda\xa1\x29\x21\x29\xf2\x52\xbe\x59\x3b\xe6\xab\xc6\xb9\x1d\x2a\x3c\x10\x36\x75\xb8\x45\x27\xbf\x3e\xb8\x36\x61\x4d\x16\xe8\xe1\xdc\x9e\x73\x9d\x51\xd3\x68\x76\xdd\x64\x22\x4e\x8d\x08\xec\x6b\x55\x7e\xd4\x3f\x5e\xb1\x0b\x33\x0c\x95\x33\x2b\x0e\xc3\xb5\x47\xb4\xbb\x61\xfb\xdd\x59\x5e\xba\xbf\xc9\x54\x25\x3d\x46\xed\xc1\x78\x46\x50\xd9\xab\x7d\xcd\xca\x73\x43\x73\xfc\x49\xbb\xc8\x78\x7c\x01\x52\x45\x91\xad\x06\xac\xdf\xb1\xba\x2c\x33\x35\x95\x8f\x16\x4c\x79\x8c\xe6\xf4\xed\xe2\x79\xe0\x44\xee\x32\x0f\xa6\x90\x11\xb2\xe6\xc3\xad\xf8\x6e\x0b\x98\x46\xe1\xa3\xd9\xac\x7d\x41\xd1\xaa\xeb\x8e\x2c\x8a\x03\xe6\x3f\x5e\x11\xf3\xdb\xac\x68\xa3\xe2\xdd\x90\x0b\x79\x1d\x16\x31\x1d\x84\x0e\x98\x94\x15\xcf\xd0\xbd\x81\x1a\x78\x40\x7a\xb8\x86\x3c\xb2\xef\xfe\x8e\xe8\x52\x0b\xab\xa8\xe2\xc7\xa3\x17\x2c\xf4\x80\xcb\xae\x14\x23\xcb\xe3\x91\x5c\xc6\xc8\xc0\xcd\x9e\x24\xf4\xb5\x90\x83\x86\x18\xc1\x40\xe7\xf1\x80\x22\x0c\x84\x47\xf0\xaa\x13\x5c\x96\x58\xa0\xce\x64\x06\x54\x71\xb4\xc7\x43\x16\x51\x79\xe1\x2e\x6b\x5e\xcf\xa2\xff\x2b\x27\xf7\x47\x63\x20\x65\x0d\x4c\xdc\xb1\x18\x08\xcf\xf7\xe3\xdb\x66\xb7\xbe\xdf\x6c\x77\xfb\xed\xf7\xe7\xe7\xfb\xcd\xfa\xa5\x1b\x91\x44\x60\x96\x5b\x75\x96\x58\x9d\x8b\xe3\x1c\x7a\xdc\x0d\x16\xc2\x28\x93\x55\xe5\x5f\x58\x90\x04\x91\x3b\xa2\x14\xf5\x92\x6d\xcd\x2d\xba\xcd\x8a\xac\x7e\xed\x0a\xa1\x61\xa8\x95\x62\xc3\xa5\x68\x3c\x63\xc2\x28\x52\x32\x76\x1e\x18\x99\x91\x9c\x98\x41\x1d\x88\x30\x0e\x19\x51\xac\x8d\x28\xd3\xe2\x7e\xbd\x5f\xde\x2f\x56\xbf\xb6\xbf\xcd\x7d\x57\x0c\xbe\x43\xf3\xb9\x89\xd5\x87\x88\xe3\x85\x2a\x4c\x3c\x14\x76\xf5\x6b\xf3\xaf\x6d\x03\xc7\xb1\x11\xba\x08\x13\xa6\x0d\xaf\x3e\x6f\x97\xe8\x0b\x19\x74\xa3\x1a\x03\x54\xc7\x9f\xe0\x7e\x9c\x76\x9e\xae\x0d\x56\xef\x6d\x14\x38\x1b\xb8\x85\x3c\x06\x92\x61\xc2\x9f\xa7\xbc\xcc\x9a\x07\xbb\xe8\xa4\xee\x30\x37\x3a\x1b\x0d\x51\xbf\xfd\x53\x8f\xeb\x14\x21\x04\xdc\xd9\xc7\x6c\x09\x83\xd9\xcd\x93\x76\x45\x09\x06\x1d\xad\xa3\x80\xba\x06\x55\x56\x0f\x9d\x56\x82\x08\x45\xea\xd1\x4a\x72\x82\x8b\x93\xbd\x75\xaf\x4e\xe0\xf5\x2f\x4f\xe0\xfd\xc7\x7d\x00\x63\xba\xf3\x2b\x28\x96\x30\x24\xfc\x88\x50\x46\x11\x65\x99\xb7\x2f\xeb\xf5\xbf\xd6\xfb\xf5\xe3\x4d\x7f\x04\x44\x8f\xf4\xd8\xbe\xc2\x09\xb7\xaf\x99\x6e\x56\xe4\xf1\xd6\x66\x17\xcf\x65\xdd\xcc\x34\xbd\x44\x28\x39\x50\x7d\x82\xc2\x8d\x81\x2b\x85\x3b\xb5\xf2\xd0\x56\x86\x15\x1e\x69\x3d\xbf\xed\x94\xaa\x45\xa8\x54\x6a\xec\x3d\x8d\xca\xc8\xe4\x99\x2a\xd4\x52\x74\xcd\xd1\x55\x79\x3e\xf5\xe1\xf2\xbf\x83\x2b\x0d\xca\x2e\xa6\xfa\x77\xe0\xee\x86\xd2\xa9\xa3\x4f\x3f\x7d\x14\x9b\x06\x8f\xd7\x08\x58\x11\x62\x1c\x12\x78\x02\xda\x95\xa1\xd7\xd5\x1b\xfd\x4e\x44\x49\x6d\x32\xc8\x1b\xa8\x86\x3f\x41\xfb\x31\xf1\x40\x09\x11\xd0\x46\x5b\xe3\xa9\xa3\xfd\xc4\xd4\x6f\x08\xf0\x5b\x4a\x44\x55\x53\x96\x43\xeb\x8f\x91\xb4\x9e\x7c\x22\x32\xbd\x4a\xd3\xaa\xfe\xbe\xbd\xf9\x5b\x31\x42\x11\x6a\x34\x7a\x44\x79\x79\x28\x7b\x7d\x43\x11\x79\x81\xa2\xfd\xd6\xe5\x58\xf3\xb5\xfc\xb9\x80\xf5\x93\x3a\x73\xe4\xc5\xe6\x89\xe1\x4f\x27\xed\xdf\x7d\x57\x1a\x72\x0b\x89\x59\x41\x61\x64\xfc\xe6\x61\xcc\x83\x94\x21\xf2\x52\x43\x1e\xc8\xa1\x6e\x9e\xa1\x0d\xfe\x27\x7b\x59\xe4\x63\x40\x3a\xd7\xfb\x53\x79\xb2\x32\x63\xdb\x31\x84\x6c\x98\x19\x47\x3e\x1a\x7f\x12\x8b\xc2\x22\xf4\xe4\x60\x0d\x8c\x02\xe6\x91\x45\x3f\x99\x5f\xdd\x7e\x7f\xbc\x79\x58\xef\x6f\xd7\xeb\xee\x70\xca\x28\x26\x2a\xf0\xa7\xf1\x02\x1c\x14\x7c\xa2\x00\x43\x2f\x74\xb2\xab\x46\xcf\xc6\xcd\xc1\xb4\x2b\x9d\xfe\x3b\xb4\xd3\xb1\x9d\xa2\x6e\x46\x86\x76\x46\x46\xcc\xe7\xbc\x57\x15\x6f\xdf\x2e\x98\xcd\x02\xcf\x3d\x67\x4c\x44\x24\xfd\x6f\x20\x79\x8b\xa5\x1d\x31\x9a\x9e\x11\x63\x46\xa2\x0e\x7f\x36\x6d\xec\x42\xd2\x8d\xb3\x05\x81\x88\xf1\x40\xb7\xcb\xde\x3d\x96\x05\x54\xca\x05\x1c\x11\x03\xee\xe8\xef\xd6\x74\x24\xfb\x0b\x1f\xcf\xc7\x5d\x26\xdf\xea\x61\xbf\x2d\x62\x2a\x48\xd8\x08\xd2\xeb\x76\xb9\x28\x12\x01\x9d\xa4\xc2\x53\x0e\x97\x2d\xf5\x08\xae\x6a\xcb\x76\x6c\xec\x7b\x91\xc9\x6d\xda\x9d\x66\x50\x56\x8c\xe2\x20\xa2\xba\x5a\x0d\x1a\x3f\x83\xb7\x8e\xe7\x48\x1c\x31\x95\xf4\x90\xe7\x5d\xd9\x31\x7d\xc6\xe3\x12\x4f\x18\xe5\x7f\x9b\x20\x3a\x14\xfe\x86\x2c\xad\xdc\x20\x65\x7c\x0e\x76\x58\x40\xd1\xec\xa8\x95\x00\x0d\x3e\x64\x75\x85\xa7\xf1\x6d\x4f\x7d\x69\xf0\x26\xf2\xac\xca\xde\x10\x5d\x44\x69\xe2\xd1\x34\xda\x9f\xb0\xd2\x65\x75\xfc\xff\x8f\x09\x3f\xb9\x73\xdc\x0b\x65\x1f\x97\xeb\xac\xb9\x19\x40\x23\xe7\x2b\x02\x11\x47\xe9\xc2\xa4\x7b\xa8\x9b\x51\xab\x65\x7c\x8f\x20\x8c\x88\x01\x76\x2e\x5c\x72\xb7\xbc\xdc\x0f\x12\x7e\x17\xa9\x45\x10\xc7\x01\x76\xc8\x0d\xd3\x30\x9c\x7c\x2b\x24\x1e\x63\x0e\x67\x87\x3a\xfb\x89\x6a\x48\xd1\xb4\xa3\x84\x6f\xde\xb9\x66\x82\xcc\x16\x91\x88\x03\x32\x7d\x5d\x3e\x3d\xef\x3e\xd5\xd0\x10\x91\x00\x46\xc3\x4e\x65\x7e\xb9\x66\x69\xb5\xc7\xa3\xb8\x2b\xb5\x95\xd5\x9e\xe8\x5c\x4d\xbd\x9f\xa9\xf7\x46\x02\x4c\xac\xf1\xb0\xf8\xdd\x84\x61\x7f\xb8\xa2\x7a\x77\x36\x81\x3a\x1d\x92\xd1\xdb\xe8\xa1\x80\x7c\xc4\xc8\x71\x63\x95\x22\x76\x50\x17\x0e\x1b\xf1\xd5\x2f\x30\xbc\x63\x07\x41\x11\x49\xf4\x09\xc9\xbb\x85\xff\x1f\x6b\x5f\xd6\xdc\x38\x6e\x7d\xff\x75\xf2\x90\x07\x70\x03\xc1\x47\x59\x96\xdd\x9a\xf1\xf6\xb3\xe4\xee\xc9\xa4\x52\x2a\x2c\x17\x32\x63\x8a\x54\x48\xaa\x6d\xe5\xd3\xff\x8b\x17\x0b\x17\xd1\xee\x49\xd5\xff\x25\x3d\x31\x21\xae\xc0\xc5\x5d\xce\x3d\xe7\x70\xf4\x21\x43\xa2\x54\x80\xf5\xfe\xe6\xb5\x3a\x15\xea\x89\xf7\xcf\xaa\x94\xa1\x26\xb7\xb2\x8b\x7d\x77\xfa\x04\x3e\x64\x87\xa3\x30\x1d\xf6\x25\xa0\x50\x43\x55\x15\x4b\x5b\x0e\x9b\x9d\x7a\xa0\x14\x5e\x17\x51\x02\xc3\xee\x59\x91\xe8\xd0\xc8\xf2\xac\xcb\x06\xea\xd6\xd3\xa2\x8f\xd5\x5b\xd9\xdf\x07\xa1\xe3\xec\x3f\x7d\x8d\x90\x12\xc2\x42\x2b\x0b\xa5\xf3\xb6\xd9\x40\xa9\xb0\x07\xcc\x1d\x0e\x24\x72\xec\x7e\xaf\xf6\x50\xa8\x93\xe0\x5d\xd4\xa9\xda\x81\xf7\x41\x49\x62\xf8\x2a\x5e\x79\x63\x32\xf4\x3f\xba\xd8\x01\x26\xa9\x48\x4a\x52\xea\xa2\x6b\xdf\x0e\xeb\x0e\xc9\x04\x2d\xcb\x35\x57\xcd\x76\x74\x6a\x08\x5d\xdb\x0c\xfe\xc0\x9c\xbf\x59\x97\xf3\x18\x0b\x1a\xc4\xc6\x41\x35\x94\x43\x3b\xee\xe5\xff\xdc\x09\x83\x24\x45\xce\xba\x85\x28\xaa\x8f\x0f\xff\xd7\x2c\xe4\x36\x27\x71\xbf\x7d\xb9\x9a\x70\x93\x0a\x1a\x72\x82\x80\xad\x59\x4f\xf7\xc2\x9c\x8c\x76\x84\x70\xcc\xd2\x23\x68\xa8\xb4\x89\xdd\x70\xef\x36\x67\xb4\x87\xa2\x4c\x63\xae\xa9\x38\xc9\xb7\x73\x9f\xf7\xa4\x11\x04\x58\x4c\xde\x43\x7b\x75\x3a\xa3\x2d\x5d\xe8\x16\xea\x2d\xff\xe8\x87\x70\x65\xd1\x15\x66\x1b\xf9\x32\xe7\x48\xe3\x38\xea\xf7\xa1\x16\x8a\xe6\xea\x3c\x5f\xfa\xa7\x71\x16\x86\xc2\x46\x23\x5b\xe0\x87\xed\x65\x5b\xae\xa0\xb1\x8a\xc0\x2b\x73\x5d\xd7\x3c\x9f\xdf\x6a\x07\xd7\x57\x1e\x51\xfc\x52\x76\xb3\xae\x05\x5e\xe4\xe5\x7e\xc9\x8f\x5c\xe6\xed\xd7\x2d\xbb\x82\x26\xdc\x4c\x0b\x59\x57\xef\xa5\x4f\x2e\xdb\x83\x34\x92\xe8\x3c\xdd\x3d\x3e\xde\xaf\x17\xbb\xe7\xd5\xfd\x62\xfd\x70\xed\xc3\x3c\x4a\x93\x0c\x11\x67\x3b\xf2\x61\xc3\xab\xd1\x94\x4b\xd3\x4c\x39\xc2\xc5\x5d\x55\xc2\x0d\x2f\x1a\x58\x34\xdd\x72\xf3\x43\x24\x60\xc6\xc9\x11\xaa\x6f\x06\xd8\x64\x3b\x84\x91\x14\xe3\xfa\xce\xc3\x59\xbe\x82\x7c\x3b\x56\x79\x3f\xdf\x59\x92\xe0\x02\xbf\xaa\x9a\xf1\x7c\x67\x09\x43\x0a\x32\x0f\x67\xad\xea\x9b\xea\x54\xff\x03\x78\xdd\x0f\xf1\x3d\x8a\x16\xd2\xf4\x69\x45\x90\x32\x69\x12\xec\x56\xf2\xcd\x35\xcc\xbe\xcc\xc8\xff\x8d\x4d\x10\xe5\x41\x8c\xbb\x05\x7c\xe0\x13\x3e\xf1\xba\x6d\xba\x6d\xf5\x16\xca\x89\x2b\x4d\x45\x90\xf5\xba\x79\x17\x55\x44\x37\x48\x28\xc7\xf2\x8c\x95\xe8\x03\xdf\x4f\xcb\xd5\x54\xc6\x02\x53\x08\x87\xaa\x44\x91\x38\xb5\xad\x06\xe9\xca\xf1\x45\x55\x42\xd0\x0f\xde\x3a\xb2\x51\xe6\x0e\x64\x46\xc2\xd4\xf3\x7a\x76\x76\xd6\x6d\x75\x54\xc9\x14\x9b\x47\xbc\x06\x5e\xfd\xc9\x6e\x47\x41\x1a\x6d\x8a\xb6\xce\xf7\x7b\xdb\x0f\x72\x63\x41\x4b\x6b\xfd\x00\xa0\x3e\x6f\x3b\x76\xa7\x50\x61\xc6\xbd\xaf\x7e\x0b\x2d\x76\xa3\x23\x3a\xbd\xdf\xbc\xa8\x66\x44\x07\xbe\xf6\x8c\x04\xb9\xaa\x73\x99\xb6\x77\xff\x38\x42\xbd\xda\x7e\x1b\x3f\x79\x4a\x48\x14\x59\xa0\x59\xe7\x84\x1a\x5a\x86\x41\x6b\x62\x37\x22\x43\x9f\xaf\x79\xad\xde\xbf\x73\xdf\x88\x20\x52\xc2\x12\xd3\xb3\x06\xfc\x60\x95\x95\x87\xed\xc7\x22\x25\x42\x22\xb8\xc3\xb0\xff\x5c\x26\xe0\x66\x9f\x33\x25\x10\x60\xcd\x68\x77\x2a\x8f\x5c\xbe\x6d\xda\x1a\x1b\x74\x47\x76\xc8\x0f\x8d\xb1\x3c\x51\x09\xbc\xba\x9b\xd4\x69\x10\x72\x14\xbb\x45\xb1\x90\x29\xc2\xf5\xef\x13\x9f\x28\x0d\x44\x0a\xe6\x2b\xc2\x91\x9f\x4d\x6f\xc1\xd4\x66\xa7\x61\x9a\x06\x46\x0b\x14\x8b\x93\xfe\x25\x44\x19\x21\x62\xd8\x76\x32\xf9\x5d\x4c\x42\xc4\x60\x60\x13\x96\xa9\x7e\x7c\xb3\x20\x35\x64\xe8\x9c\xdd\xe1\xd3\x38\x0b\x51\x68\xaf\x45\xc5\x5b\x5f\x8a\x75\x17\x8d\x35\xc7\x8b\x5e\x2d\x17\xcb\xe2\x24\x96\xbf\xa8\xec\xa5\x49\x62\x08\x97\x0e\xbc\x3c\xf1\xc2\x64\x90\x2e\xe8\x6d\x45\x9a\xc8\x38\xb0\x1b\xc3\x68\x6b\x72\x87\x95\x99\xc3\x98\x20\xda\x3d\x3d\xaf\x30\x49\xd4\x57\xbd\x53\x4a\x89\xc9\x7f\x5a\x55\xca\xa5\x23\xe3\x10\x29\xcd\x98\xa1\x5c\xe1\x5a\x17\x60\x0d\xe5\x55\x55\xbd\xcd\xe6\xa2\xd2\x94\x28\xe2\x72\xa1\x65\x5b\x9f\x2f\x12\xa1\x29\x23\x0a\x5b\x81\x36\xf7\xeb\xbb\xc7\xdd\xcd\xe3\xcb\xc3\xf5\x62\xbb\x7e\x7c\xd8\x2d\xee\x1f\x5f\x1c\x88\x58\xa4\x2c\x54\x08\xa1\xed\x7c\x2a\xac\x2e\x5d\xe2\x0c\x53\xc6\x8d\xbe\x89\x28\xb8\x7c\x33\x40\xd9\x61\x90\xdc\x1d\xc7\xce\x34\x04\x5f\x99\x3c\xf7\xc5\x1c\xb6\x43\xb3\x58\xa1\xe7\xc1\x95\x42\x46\x84\xc9\x95\xb2\xc4\xd4\x1b\xba\x20\xe9\xa2\x88\x3d\xca\xf7\xbb\x1f\x64\x01\x56\x2f\xf7\xbc\x71\x9a\x58\xee\xae\x32\x90\x48\xa6\xe1\x6c\x3b\xca\xbf\xfb\xa5\x87\x4a\xe2\x6e\xdb\x89\xe8\x8e\xe3\x8e\x73\xcb\x9b\x97\x86\xef\x21\x24\x84\x5c\x55\xbc\x56\xfd\x78\x1a\xa7\xc1\x6c\x4f\xce\x7c\x26\x2e\xe5\x69\x88\xbd\xb1\x05\x6f\xda\xdd\xa1\xdf\x8c\xd2\xce\x60\x50\x4f\xd0\x7d\x2a\xd5\x10\x26\xe4\xc6\x08\x93\x58\xf5\x3c\x6c\xdf\x78\xad\x3e\x61\x0f\x14\xa9\x50\xa6\xdb\xc6\x3f\xa9\xae\xde\xa7\x3e\x43\x2a\x43\x23\x33\x62\x84\xd0\x93\xb7\x97\x46\xad\xcb\x25\x78\x81\x16\x91\x4a\x9a\x20\x82\xfe\x4f\xf1\xdf\xff\x4d\x37\xa2\xfb\xa9\xc6\x0e\x92\xa6\x85\x23\xf5\xe7\x53\x22\x41\x45\x42\x5e\xbe\x5d\x57\xef\x9f\x40\x33\x52\x25\x0c\x12\x49\x17\xf9\x71\x5a\x80\x4a\x51\xab\xcb\xda\xd6\x2e\xc4\xbb\x2d\x2a\xc1\x8b\xc5\x49\xe5\xed\x20\x87\x91\xea\x28\x23\x89\xab\x61\xa2\x92\x41\xde\x83\x71\xfe\x19\x90\x8b\x3c\x86\xfb\xf3\x34\x95\x91\xea\x58\x12\x35\x7c\xf3\x4f\x55\xdd\x56\x9f\x7c\x63\xcd\x85\x4a\x5d\x6a\xd9\xf5\x91\x38\xb3\xc9\x08\x61\xb1\x6d\x5f\xba\xbb\xfb\xbe\x03\x95\xb7\xbb\x80\x8d\x62\x6d\x46\xd2\xc8\x35\xd3\x3e\xe7\xcd\x54\xf2\x51\x30\x22\x22\xb4\x73\x35\x97\xd0\x05\xc4\x4b\xef\x5a\xb3\x80\x30\x6a\x9b\x84\xff\x17\x1a\x41\xc1\x82\x88\x6a\x53\xcf\x72\xfb\x59\xe3\xcf\x09\x99\x69\x28\xf6\x11\xd6\x68\xcb\x9e\x4d\x24\xb3\xd0\xca\x98\x34\x47\x28\x95\x61\x80\x71\x47\x22\x43\xb3\x60\x02\xfa\xce\xc4\xf0\xbc\x84\x7a\xa1\xf8\xb1\xfd\x95\x4b\xc4\x42\xea\x73\x90\x06\xd0\xb9\xad\xae\xcf\x25\x3f\xe4\x72\x24\x74\xe6\x46\x67\x1c\xdb\x76\xee\x9f\xb6\xe3\xa0\x7a\x6a\x3d\x3e\x9d\xc4\x2c\x82\x50\x98\xb6\x15\x84\x89\x9b\x6c\x0b\x1f\x4b\x1d\x0c\x3a\x55\x06\x66\x88\x45\x9a\x04\x46\x7c\xb1\x69\xa7\x52\xe5\x82\xc5\x89\x0c\xcc\x34\x29\x89\xad\xf8\x8e\xa9\x4f\x05\x4b\xe2\x00\xbd\x8c\x83\x68\xe5\xb6\x7a\x69\xa6\xf3\x20\x49\x03\xe9\x5b\xf8\xbf\xf6\x83\x58\x22\x0d\x50\xf2\xf6\x65\x7d\xbd\x1a\xba\xbb\x2c\x51\x19\xd6\x89\xd7\xdf\x5d\x6a\x90\xd1\x4c\xa0\x96\x9d\x23\x79\xf9\xa4\xfa\xc7\x52\x92\x46\x3d\x9c\xd7\xfa\x93\x73\x91\x18\xbb\x6c\x22\x16\x2c\x05\x89\x95\xf5\x12\xde\x0d\x58\x70\x6c\x9c\x18\x23\x11\xf3\xf0\xdd\x65\x55\x6d\x00\xd4\x90\x61\x4a\x30\x46\x4d\xf7\x6a\xe3\xc0\x3e\xe8\xe5\x43\x7d\x83\x34\x9b\xce\xe1\x64\x4c\xd1\xa1\x7a\x57\x75\x38\xe4\xed\x61\xaa\xd3\x2b\x18\x03\x86\xc6\xf0\x8e\xb7\xf9\xe9\x60\x04\xee\xdd\x29\x32\x12\x62\x06\x08\x4a\x75\xcd\x5b\x08\xdc\xdf\xb9\xcc\x42\xb7\x63\x7c\xf2\x92\x44\x10\x62\x2c\xf3\x74\xb7\xd8\xde\x3c\x3e\xdf\xef\x7e\x2c\xee\xee\x56\x6e\xaf\x65\x82\x53\xc4\xeb\xe7\x98\x4c\x40\xc2\xd8\xbf\x8d\x5f\xd9\xe4\x74\x42\x85\x5e\xaa\xa5\xe5\xc5\x4d\x4f\xf9\x2e\x98\xe4\x26\x0b\xae\xaa\x7b\x5e\xd7\x39\x77\x6d\x61\x82\x49\x91\x21\xe7\xdc\x5d\xb5\x47\x72\xa8\x3e\x9d\xc1\x54\x18\x63\x98\xd4\x19\xb6\x75\xb3\x90\x6d\xfe\xd3\xff\x4c\x45\x11\x3e\x1f\x96\xb9\x77\x56\x0e\xb0\xf3\x60\xdc\x00\x08\x28\x25\x43\x64\xa0\x29\x65\xfb\xc3\x60\xa8\xe7\x10\x19\x77\xcf\x73\x24\x74\x31\x5d\xef\x46\xee\xc0\x8e\xd3\x3c\x46\xa7\x57\x0e\x5a\xb1\xd6\xe5\x92\x9f\x0a\x55\xdb\xb8\x83\x4d\x4c\x81\x16\xa6\x49\xbe\xc1\xcd\x57\x42\xd9\xbd\xba\x6d\xf5\x7b\x5e\x14\xc3\x60\xa4\x1b\x07\xd2\xe7\xa1\x9b\xb6\x8b\x8c\x3f\x6d\x31\x33\xbf\xc9\x48\x9c\x10\x9b\x26\x41\x79\xff\xab\xd3\xb9\x57\x17\x1d\x7d\x8f\x8c\xa4\x11\x7a\xd3\x56\x04\xc7\x40\x6e\xe6\xa7\x42\x46\xb4\xc6\xc4\x11\x76\x8e\x4e\x0c\x42\x16\x44\x0c\xcd\xec\x4b\xc9\x3d\x3b\x84\x05\xfe\x8c\xac\x4b\xec\xc6\x8b\x04\x71\xf0\x8b\xbb\x97\x3f\x7e\x89\xe2\xcf\x02\x15\xa5\x36\xd8\xb7\xf0\x91\x01\x29\x8b\xc8\xc2\xd0\x48\xb2\x9b\x5c\xda\xf3\xc5\xe2\xc8\xc2\x24\xb2\x99\xd8\xcf\x7a\x80\x45\x16\x05\x24\x34\xa0\xa8\xa6\xf9\xfd\x1f\xcb\xf1\x72\xce\xa2\x04\x30\x89\x25\xf2\xbd\xa8\x2b\x84\xbf\xb9\x23\xd2\x70\x36\x8b\xb1\xdc\xfb\xe4\x0e\xe2\x18\xe2\x1e\x47\x8f\x23\x6e\x6b\xfe\x59\x72\x37\x8b\x53\x8d\x88\xae\xd5\x07\xa6\x13\x9f\xa1\x41\xee\xd3\x41\x81\x24\x8b\x01\x30\x14\xb3\x74\xdc\x76\xda\x61\x86\xd7\xcf\xcc\x2c\x09\x29\x5e\xb6\x8b\x65\x2b\xc3\xc1\x60\xfa\xd9\x9b\x91\x02\xa7\xc8\x12\x91\x62\xe3\x90\x65\x6d\x9d\x9f\x58\x89\x8a\x51\x4d\xcd\x75\x00\x8d\x99\x46\x3e\x99\x8d\x89\x26\xae\x28\xbc\x3c\xd5\xc8\xca\xb3\xf6\xf7\x47\x13\x99\x18\xb8\x46\xde\x2d\x01\x5c\x7c\x93\x16\x84\x8c\xa6\x46\xf1\xa0\x36\x02\x11\x88\x3d\xed\x9f\x90\x32\x2e\xfb\x7e\x62\x7f\xe3\xa3\xb7\x49\xb9\xe2\xa9\x85\x2f\xbd\x94\xc7\xce\x82\xb8\x9f\xa7\x49\x94\x11\x9f\xee\x33\x7d\x06\x13\x2f\xfd\x12\xfc\x90\xa5\x34\x42\x4c\xb9\xab\xd7\x89\x4f\x8b\x75\xf6\x07\x2c\xd0\x08\xa2\x1c\x36\x19\xcf\x4d\x13\x96\x9a\xee\xe8\x63\xc1\x25\x72\x30\xce\xef\xf5\x6e\xb4\x64\x8a\xf6\xa0\xf5\x06\xbb\x47\x3b\x9f\xd2\x0a\xfe\x4f\xe6\x70\x46\x24\x72\x64\xe4\xbe\x6e\xf4\xab\x12\xa3\xfb\x21\xcd\x38\xf3\x15\x84\x51\x67\xb4\xc8\x78\x12\xa2\x48\xcd\x75\x55\xe2\xf7\xbb\xe7\x2d\x3a\xf4\x5f\xbf\x10\x0e\x12\x71\xb8\x95\x0d\x71\xd6\x6a\xc4\xbf\x28\x32\xae\x59\x14\xf7\xca\xc4\x55\x91\xcb\xf3\x78\x6b\xb1\x03\x85\xa4\x58\x28\x3b\x72\xc4\x3d\x5d\x54\x0a\x32\x99\xa5\xc8\xb3\xb4\xc1\xcc\xd5\xaf\x8d\x8d\xd2\xa9\x12\xe3\xcc\x3c\x37\x49\xa0\x49\x74\x9c\x01\x31\xd6\x73\x0e\xc2\x35\x1a\xc9\x49\xc0\x62\xa3\x02\xd6\x9c\x06\xb9\x71\x4e\x92\x10\xcb\xce\xcf\xa0\x6b\x68\x5e\x97\xaf\xf9\xf1\x05\x91\x27\x58\xc9\x19\x6c\x04\x9c\x50\x26\x6d\xaf\x88\xcd\xad\x54\xf5\x37\xc3\x2c\x3e\xfb\x86\x79\xc8\x4d\x4b\x01\xf2\xfa\xdd\xe7\x65\x3b\x26\x06\x99\xce\x69\x1e\x51\x25\x6c\xfe\x17\xdb\xa0\xe7\x1f\x24\x4a\x39\xbe\xed\xb2\xbe\x07\xde\x9c\x6a\xcb\x9f\xe8\x8f\x2a\xd7\x66\xb3\x28\x0a\xc7\xf3\xd8\x5c\xe7\xcd\xf1\xd4\xc2\x55\x55\xaa\xa1\xf3\xc6\x23\x16\xa3\xd2\x8a\xc6\xec\x84\xa1\xd9\x9f\x7f\x98\x48\x2a\xe4\xd6\x15\xa7\x52\x5d\x36\x5f\xda\x41\x31\x07\x6c\x55\x7b\x80\xf7\xeb\x53\xb9\x87\xaa\xbc\x29\xaa\xea\x42\x80\x67\x58\xe7\xb8\x48\xae\xf3\x84\x46\xc4\x31\xfa\x05\xe8\xa3\xb8\xbb\xa5\x84\x62\x09\xbc\x5b\xbf\x0f\x1e\x93\xc4\x29\x55\xb2\x5b\x55\xbf\x3d\x6e\x5f\x1e\x46\x39\x1b\x4e\x79\x44\x6c\x30\xf5\x7f\xa7\xaa\x1d\x32\x89\x09\x9e\xc6\x92\x0c\xa7\x99\x82\x1f\x80\x9c\x77\x73\xd9\x11\xce\x32\x86\x05\xaa\x5d\xb7\xbd\x42\xd9\x62\xb7\xf8\xfc\xd0\x8c\xc7\xb8\x5a\xaf\x73\x7e\xa8\x4a\xd5\xbd\x75\x77\x4d\x1e\x85\x26\x4e\x3a\x89\x83\x81\xa3\xef\x90\x43\x70\x87\x7b\xfa\xae\xe9\x73\x0d\x9c\xc7\x46\x19\xd1\x40\x32\x3c\x0c\x7a\xe2\xe6\x22\x19\x2b\x36\x7c\xd6\xb9\xbf\x1f\x7b\x48\xc4\x11\xe6\xd8\xf2\xc6\x62\x78\x07\xe1\x2d\x17\x5a\xe0\xd3\xff\x44\x65\xd5\xed\xf9\x08\x2e\xc8\xe6\x8a\x52\x04\x8a\x1e\x76\xab\xed\x37\x5b\xf6\x1d\x46\xf5\x5c\x29\x40\x23\x69\xb4\x12\x1d\xf3\xcd\xb4\xee\xc9\x95\x56\x91\x67\xb6\xbb\xcd\x7f\x42\xb9\x78\xf7\x38\x35\x0e\x51\x82\x02\xf8\xd7\x8b\x47\x43\xd3\x6f\x13\x58\x4f\x43\x42\xf4\xcf\x40\x49\x1c\x62\x23\xbb\x60\x66\xae\xc3\x48\xba\x83\x69\x1c\x39\xc9\xa8\xd5\x96\x6e\xab\x69\xbc\x35\x34\x74\x1c\x52\xa1\x8d\x46\xac\xfa\x76\x14\x0f\x83\x96\xa3\x0b\xec\xf1\x28\x91\xc0\x35\x01\xec\xc8\x57\xeb\x32\x9f\x83\x79\x73\x9d\xea\x50\x7b\x5c\x8e\xa5\x3d\x1b\xcf\x15\x0d\xda\x68\x2f\xf3\x37\xe8\x4e\x33\x6e\x18\x16\x24\x4e\x74\x67\xa5\x9f\x4e\xa2\xc8\x65\xe7\x85\x14\x3f\xa7\x56\x50\x90\x44\x67\xd6\x95\x5d\xb7\x70\xb0\x25\xfd\x9b\xaa\x5e\x14\x73\xb5\x56\x41\x38\xc3\x24\x4a\x01\xbc\x69\xb1\xd5\xc9\x1d\x00\x23\xa5\xa8\xda\x5b\x68\x97\x79\x7b\xbe\x1e\x34\x95\xdb\x31\x41\x20\x11\x1c\xb5\x13\xa7\x19\x0a\xa3\x61\x04\x2b\x02\x91\xe2\x26\xcd\x8f\xf9\x94\xb1\x4c\x88\x40\x49\x0c\x0d\x56\xcf\xcb\x90\x74\xd1\x77\xaf\x7c\x23\x44\x18\x13\x8c\xbc\xad\xf7\x65\x05\x6c\x3b\xb3\x1c\x46\xb3\xf5\xed\xcf\x50\xe2\xf6\x7c\x51\x10\x23\x77\xad\x85\x90\xa1\xf4\x88\xf3\x1f\xbb\x38\x00\x99\x7f\x6e\xaa\x6a\x21\xf2\xc9\xe3\x46\x51\xe8\x40\xc7\x37\xa7\x72\xd3\xf6\xbf\xd2\x0a\xe9\x92\xde\x0c\x7f\x28\x32\xae\xd9\x43\x71\x1c\x61\x9f\xb5\x38\x15\x6f\x9d\xdd\xff\x0e\x4d\x7b\x99\x81\xbf\xdc\x01\x44\xcc\x25\xe6\x57\x6f\xaa\x1a\x29\x8f\x6a\xc3\x11\x7d\xbe\x98\x8f\xe3\x7b\x8c\x75\x8c\x1c\x55\xcf\x8f\x77\xab\xdd\xe6\xe5\x69\xf5\xfc\xb2\xf1\xb5\x32\x91\x70\x03\xa4\xc1\x06\x42\x75\xd7\x2f\xd8\xed\x6b\xb7\xe3\x55\xc5\x64\x4a\x8a\x44\x07\x81\x74\x20\xbe\x5e\xf6\x69\x06\x94\x24\x28\xcb\x10\x6e\x89\xad\x5a\xdd\x6c\x73\x7f\x17\x11\x76\x29\x48\x43\xac\x01\xca\x6a\xa8\xfa\xe3\x32\x31\xf2\x08\x9d\xbd\x4d\xc3\xc9\x0d\x50\x25\x23\xee\x97\xcd\x6a\xe0\xeb\x8b\x34\x30\x54\x13\x03\xad\x81\xb1\x12\xa2\x10\x69\x1c\x38\xb1\x42\xd7\xe8\x3e\xe5\x85\x13\x22\x4d\x38\x76\x43\x2b\x10\xa7\xfd\x5d\x35\xab\xcd\x23\x04\x4b\x12\xdc\x8a\x6e\x17\xf7\xab\xdd\x66\xbb\x78\xde\xee\xb6\xeb\x7b\x17\xbc\x0a\xc6\x44\x66\x77\x17\x8f\x36\xba\x3a\xe3\x4c\x18\xda\x61\xc1\x64\x88\xa1\xe6\x8f\xfc\x72\xde\x7e\x59\xe3\x15\x59\x4c\xd0\xdf\xbf\x3a\x61\xcd\x69\x12\xf3\x89\x8c\x0b\xcc\xae\x76\x0e\x9a\xe1\x0a\xf9\xe4\x34\x22\xa6\x18\x36\x74\x31\xc3\x2e\xd9\x0d\xf6\x01\x91\x09\x03\xd9\x94\x96\x24\x0e\x8c\x99\xba\x71\x1a\x96\x33\x1e\x9f\xe0\x41\x4c\x88\x83\xa4\xb6\xb0\x77\x4c\xd2\x93\x51\x89\x91\xbd\xfb\x71\xfa\x13\x90\x30\x73\x98\x9d\x12\x9c\x07\xf8\x05\x16\xea\x67\xe7\xcc\x8e\xfc\x12\x21\x52\x2a\x8d\xc6\x4d\xb9\xdf\x42\x7d\x18\x32\xc7\x34\x7e\x10\x98\x2a\x50\x0b\x4d\xfb\x50\x1d\x5f\xca\xba\x2a\x8a\x80\x8e\x1b\x7d\x27\x77\x2e\xe3\x0c\xd7\xba\xad\xdc\xbf\x0f\xe6\xa4\xcc\x12\x84\xe4\xef\x2e\xd3\xf1\x86\x7e\x79\xeb\xe8\xd7\xe7\xb7\x24\x01\x24\x51\xc4\xb5\x9a\x95\x3f\x20\x1f\xf3\xe3\xdb\x51\x3a\xd4\x14\x2d\x7a\xfe\x01\x05\x76\x09\xfc\x6d\x8c\xed\x18\xcd\x90\xd8\xfd\x4a\xd0\xc8\xb8\xa9\x9e\x2f\xf9\x13\x0a\x05\xff\x03\x53\x21\xc7\xcc\x8b\x29\x30\xce\x48\xaf\xb8\xc1\x52\xa3\xb9\x6d\xab\x43\x65\xd1\xed\x63\x60\x90\x24\x31\x8d\x1d\x75\xc4\x1e\xba\x6d\x41\x0c\xba\xa4\xec\xa0\x80\xca\xc4\xa6\x4a\xae\xeb\xd3\xfe\x17\xd1\x90\x0c\x44\x8c\xfb\xee\x4d\x55\xc3\xc7\x00\x13\x26\x43\x12\x1b\x04\x7b\x5e\x2e\xf9\xb1\x07\x9c\xc9\x90\x4a\xac\x85\x6f\xab\x72\xd4\x62\x2c\xa3\x48\x26\x56\x6b\xc9\xc6\xe2\xee\x48\x4c\x35\xc6\x12\x0a\x5a\x2e\x5f\x7b\x94\x4f\x77\xd1\xbe\x78\x29\x13\x2a\x11\x7f\xb5\x7b\xe5\xb5\x7a\x86\xff\x9c\xf2\xda\x90\x9f\x8f\xb7\x7c\x99\x50\x43\x02\xd3\x40\x8b\xc8\x94\xf7\x9d\x0d\x8a\x07\xe5\x60\x99\x30\x8d\x9a\x72\xf7\x9b\x3f\xdc\xec\xf6\xd7\xc9\x74\xe4\x71\xbc\xfb\x27\xab\xac\xe7\x5f\x33\xa5\x82\x1b\xc1\x8d\x73\x0d\x8e\x28\x4a\x48\x9a\xa5\xbe\x32\x69\x1f\xe1\x19\xf0\xcb\x3e\x54\xa3\x49\x2c\x29\xa7\x88\x4c\x81\x52\xad\x97\x8f\x98\x0e\x0c\xfd\x31\x88\xf0\xda\xd6\x91\x34\x54\x66\xbf\x96\x8f\x9e\x9d\x5f\x32\x8d\x8c\xd0\x60\x03\xed\x0f\x9e\x7b\x35\xa6\xd1\xbc\x92\x2c\x8c\xb1\xe1\xfd\x2d\x2f\x8a\x35\xb6\x3d\xdd\xe4\x9e\x47\x42\x32\x91\x45\xb6\xd8\xb0\x33\xec\xaa\x63\x4b\x2e\xb3\x54\x46\x86\x0b\xd2\x0a\x71\x43\x9d\x57\xaa\x79\x18\xc8\x88\x0a\x99\xb1\xc0\x26\xc2\x0d\x2a\x61\xb2\x9b\x49\x01\x80\x38\x6f\x4c\x21\x1a\x3a\x93\x21\x88\x51\x4a\xa2\x20\xb0\xa2\x0b\xae\x35\xfd\x17\xd9\x70\x29\x99\x11\xf5\x5e\x6d\xbf\x2d\x1f\x1f\x90\xcb\xfb\x2a\xaf\x95\x0b\xc0\x27\xf3\x5c\x66\x1c\xbd\xaa\xf5\xf2\xf1\x1d\xe0\x2d\x5c\xf9\x70\x40\x4a\x91\xa0\x61\xfe\xc6\x8b\x2a\xba\x7e\xaa\xda\xa7\xaa\xe5\xed\xa4\x72\x27\x15\x53\x4e\xc8\x76\xd3\xf2\xda\xa2\x4e\x67\x9a\xe8\x25\xa4\x19\x06\x87\xa6\x79\x02\xab\xa1\xc5\x0c\x22\x51\x6a\xc5\x10\x7a\xb1\xb8\x1d\xae\x3b\xad\xb2\x30\xf4\x54\xb7\xc3\x7d\x57\x91\x48\x26\x7d\xaf\xf3\x53\xc1\xdb\xfe\xf2\x53\x6f\x4b\x91\x24\x45\xa7\x15\xd1\x24\xbb\x5e\x65\xe5\x6f\x93\x61\x56\xd0\xcb\x24\x18\x4c\x8c\x33\x07\x3c\x51\x44\x27\x58\x62\xe0\xcd\xdb\x10\xb4\xa6\x22\x95\xe0\x7b\xe9\x5e\xc8\x13\xc8\x53\x91\x9f\x0e\x8b\xb9\x13\xc4\x54\x61\x59\x0b\x4a\x59\x29\x9b\x3f\xfe\xa4\x28\xa1\x62\x45\x0c\xa8\x15\xb3\xe3\x45\xc5\x5b\xc3\xe2\xed\x2e\x9a\x50\x23\x42\x29\xf2\xb6\x81\xfa\x67\x1f\x4f\xaa\x84\x65\x08\xa8\x6e\x4e\x22\xfc\xe4\xe4\x94\x72\xf4\xd4\xef\x17\x7f\xec\x16\x77\x77\x8f\x3f\x56\xd7\xbb\xa7\xe7\xd5\x6e\x90\x12\x57\xa9\x54\xd8\x1b\x2a\x07\xbb\xb4\x62\x91\x57\x58\x37\xa1\x62\xb3\xd3\xd5\xa4\xf7\x4d\x31\x1a\xa1\xf5\xb8\x96\x12\x4b\x3e\x83\x57\xc5\x54\xca\x89\x2f\x10\x5b\xe0\x88\x1a\xed\xa7\x8a\x69\x03\x59\xf4\x9e\x80\x0d\xfd\xac\x0e\xd2\xf8\x5a\x59\x96\x60\x5e\xb3\xdd\xd7\x68\x65\x90\xa9\xf3\x0e\xb4\x7f\x4f\x9c\x52\x4c\xc9\x5b\x3c\x8c\xf1\x26\xa2\x71\xd2\x53\x71\x49\x30\xf9\xa7\xcc\xa6\x83\xde\xdc\xf8\x3a\xa2\x0b\xfa\x6d\xc9\x7b\xdd\x34\xa7\x41\xe2\x4b\x89\x34\xc2\xba\xea\x3b\xe4\x4f\x46\x12\xc3\x1d\x90\x46\x28\xd6\x75\x3a\x76\x8f\x39\x34\x93\x4a\x28\xc3\xdf\x63\x42\xff\x9d\xa5\x7f\xdf\xd5\x55\x75\x18\xdb\x20\x25\x25\xc3\x77\xda\x99\xde\x5a\x8e\x36\xdd\x4f\x90\xff\x4a\x45\x1a\xf1\x03\x16\x76\xe4\x44\x0c\xed\xdc\xb6\xfa\x53\x9f\x3b\xd5\x0a\x88\xc0\x44\x13\xd6\x5e\x11\xe7\xe5\x0e\x50\x82\x7d\xa9\x77\xe7\x37\x9b\xc1\x5e\xd5\x32\x0c\xa3\xab\x61\xc3\xf2\x5c\x43\xfc\x9c\x73\xab\x34\x31\x3d\x4e\x50\xaa\x9c\x97\x06\x63\xdf\x46\xa1\x98\xc8\x38\x09\xa5\x19\xc5\x9e\x2f\xae\xd4\x5c\x67\x8b\xd2\x3c\x46\xdb\xf0\xef\x2a\x2f\x41\xf9\x22\x77\x73\xd7\x4f\x3f\xad\x52\xb4\x2c\xbe\x45\x6e\xc4\x1a\x2d\x94\x86\x04\x29\xa2\x8e\xb9\xac\x8e\xcd\x2e\x6f\x76\x58\x13\xcc\x47\xad\x85\x40\x02\xc3\xa1\xbb\x33\x86\xf0\x0d\xc6\xfa\x32\x6e\x54\x68\xa4\xee\xfb\x14\xcb\x20\x69\x0f\x24\xe3\x59\xd4\x67\x6c\x07\x04\x97\xb3\x21\x00\x04\x71\x80\x59\x98\x95\xda\x43\x01\x63\xa8\x1f\x04\xb6\xd9\xf4\xee\xee\xfb\xee\x67\x14\x78\xf2\x1f\x08\x43\x81\x19\x94\x53\xd9\xf4\xed\x8b\x10\xc6\x0a\xa5\xbf\x0c\x3b\xeb\xb2\xad\xea\x89\x43\x0f\x61\x42\x12\xa3\xb8\xf9\x83\xd7\x45\x55\xab\x4b\x25\x6e\x01\x61\x16\x61\x2d\xae\xcf\x22\x6f\xaa\xc3\x67\xa2\xc5\xe3\x6d\x1b\xa2\xd8\x78\x12\xdd\x72\xea\x3e\xc0\x8f\xde\x38\xbb\x11\x54\x0a\x62\x1b\x78\x2d\xc9\xa6\xc6\x24\x9e\x3d\x1e\x07\x86\xa7\xcc\x2e\xd9\x61\x8a\x14\x62\x49\x54\x30\x20\x9e\x6e\x36\xa7\xc3\x4d\x75\x49\x93\xdf\x8d\x4c\x30\x74\xf2\x3c\x1b\x3f\xab\xb7\xcf\x7d\x11\xfb\xa3\x24\xcb\x06\x7a\xb8\x8b\xe3\x71\xf5\x01\x72\x1e\xcc\x05\x09\x37\xcd\x41\x6d\x75\xe5\x00\x20\x93\x11\x34\xd6\x78\x0b\x28\x3c\x59\xa3\x46\xcb\x4e\xba\x04\x0d\xb3\x9d\x29\xff\x72\x83\x13\x8d\x75\x4a\xb7\x99\x19\xa8\xd6\xd4\x45\x1a\xd9\x01\xa0\x82\x63\xf2\x51\x59\xa2\x23\x23\x89\xaf\xb9\x37\x60\x40\x75\x24\xa5\xd3\x0e\x3a\x1e\xad\x5a\x65\xaf\x57\x34\x79\x69\x69\x9c\x61\xd7\x21\x6e\x82\x77\x36\x22\xf9\x9b\x3f\x28\x30\x9f\xe2\xb6\x93\x5d\x44\x76\xab\xed\x37\x7f\x38\x0d\x14\x1f\x95\x3b\x93\xf9\x24\x2e\xa4\xc0\x92\x70\x1c\x10\x22\x13\xf2\x97\x91\x2a\xb0\x54\xe2\xae\x25\xa0\x7d\x07\x98\xb8\x40\xc0\x32\xf3\xb9\x9d\x98\xd1\x05\x43\xe3\x27\x09\x37\xfb\xf3\x2c\x49\x30\xf9\xdc\xe4\x87\x1b\xcf\x3b\x3e\xc8\x34\x01\x8f\x58\xe0\x45\x98\xce\x93\x3d\x04\x78\xa4\x22\x1b\x98\xdd\xe4\x1f\xa0\x7a\x75\x42\x01\x5c\x12\x03\x58\xc5\xe6\x9a\x25\x3f\x5e\xf5\x0d\x3c\xc0\xa5\x43\x6f\x74\x26\xe2\xe7\x94\x2c\x58\x00\x57\x24\xd1\x8e\x9f\x51\x39\x6f\xde\x48\x93\xf7\x21\x9a\x1d\x2c\x08\x8b\x8c\x50\x67\x71\x53\x57\x07\x04\x2f\xde\x5d\x80\x17\x91\xc3\x8b\xd9\x82\xd8\x25\x0c\x11\x44\x20\x70\xeb\xea\x05\x8e\x91\x99\x0b\x37\x8b\x26\xdf\xcf\xc7\xa6\x20\x52\x2a\x30\x23\xda\x34\xf9\xbe\xbc\x87\x96\xcf\x9b\x3b\x99\x46\x89\xa5\x74\xfd\x9e\x2b\xa8\x9c\x73\x00\x2a\xa1\x81\x69\xcb\xdd\xe7\x25\x3c\x9f\x90\x5d\xd0\x1f\x4c\x39\xc6\x65\x87\xbc\x84\x9a\x17\xa1\x0d\x6a\xc6\xa7\x56\xa0\xb1\x8f\x95\x5b\x0c\x8c\x43\xe2\x7e\x95\x42\x04\x1d\x32\x5c\xf2\x57\xeb\x6b\x23\x97\x30\x4c\xc0\x68\x12\x67\x41\x6a\xdf\x85\x7c\xf5\x61\x94\x26\x09\x85\xa8\xd7\xa3\xb9\x98\x64\x7e\x4b\xd1\x84\x0a\x69\x70\x46\xfc\xbd\xdc\xe4\x9f\x6b\x5a\xbb\xf1\x32\x35\xcc\x1a\x95\x87\xf6\x6b\xa2\x38\x86\x42\x80\x9b\xb1\xff\x2b\x24\x18\xdd\x6e\x90\xb8\x17\x5d\xa9\x1b\x98\xa9\xca\x8d\xcf\x1f\x44\xa6\x01\xe7\x90\x97\xf7\x79\x09\x83\x66\x2f\x1d\xf0\x38\x4b\x2c\x8a\x7f\xd5\xbe\x6e\xdf\x61\xa0\x9e\x3c\x22\x70\x1a\xfc\xf7\xe8\x13\xe8\x28\x08\x13\xd7\xb6\x5c\x95\x70\x2e\xfb\x08\x5f\xc7\x34\x43\x0a\x80\xbc\x69\x4e\x97\x94\x1d\xc3\x0d\x5f\x27\x81\xa1\x48\x3d\xe4\x65\xfb\x52\xae\x97\x8f\x9d\xdf\x37\x8f\x90\x1a\x3f\x5d\x12\x86\x66\x03\x2f\xe1\xfd\xb7\x4a\xbe\xc1\xf9\x33\xab\xf2\x97\xff\x9d\x5c\x20\x02\x43\x8e\x55\x9d\xca\x76\x51\x14\xcb\x22\xbf\xae\x5d\x18\xad\x13\x69\xf6\xdf\x7f\x73\xf9\x76\xac\xda\xdb\xd3\x45\x3a\x5e\xd3\x24\x94\x8e\x08\x61\x8d\x7a\xa1\x0e\xab\xa3\x29\x64\x48\x7e\xf9\x3a\x75\x90\x74\x4a\x08\x42\x78\x8d\x6b\x77\xb1\xae\x87\xf3\x2d\x25\x01\x58\x3f\x7c\xc2\x81\x35\xb2\x15\x3a\xa5\x49\x68\xba\xd0\x0a\x7d\x6d\xa8\x44\xe7\x57\xb6\x66\x81\x31\x6e\xbb\xc1\x56\xfe\x49\x37\x8b\xfb\x05\x53\xd0\x17\x76\xbf\x41\xee\xf6\x76\xcd\x32\xa3\x68\xe0\x76\xb9\xa7\xaa\xfc\x6f\x3e\x79\xd8\x2c\x21\x98\x26\x13\xe6\xbe\x1f\x35\x2a\x39\x8e\x6d\x98\xe6\x91\x44\x6b\x71\xe0\x1f\x46\xfd\x0c\x51\x07\xee\x32\x9c\x4b\x69\x1a\xe7\x0c\xf7\x1d\xc2\x63\x2e\x2d\xa1\x16\x11\xc5\x47\xfb\x09\x75\xc9\x0f\xde\xb1\x1c\xba\x60\x5a\x85\xcc\xc9\xa6\x7c\xb7\x2e\x23\xd2\xf3\x1f\xdb\xa1\xf6\xe6\xd0\xa6\x68\xc5\x8d\x62\xdf\xdd\xe3\xe3\xd6\x9f\x46\x52\x14\x09\xd6\x56\x4d\x6a\x9c\xfe\xd2\x40\x8c\x26\xc1\x81\xbf\xc1\x10\xf8\xed\x0e\xab\x0c\xdb\x55\x0e\x55\xe7\x48\x5a\xce\x82\xf1\x10\x1d\x52\x4c\x25\xff\x98\xca\x63\xfc\x22\xfd\xe2\x7e\x1e\x07\x44\xb9\x76\xb2\xf1\xcc\x99\x04\xbb\x5a\x2b\xc3\x70\x6b\xf8\xc8\xf7\x10\x78\x44\xb8\x24\x84\x08\x91\xb8\x36\xc3\xfc\xbf\xce\x62\x4a\x42\xa2\x94\xc4\xee\x35\x1a\x85\xb6\x96\xd7\xf3\x24\x93\x92\x90\x24\x44\x8f\xbf\x9b\xd8\xdb\xaa\x0b\x8e\xc7\x52\xa6\x92\x10\x15\xf2\x9e\x5a\xa1\x0b\x81\xea\x91\x14\x94\x24\x41\xca\x42\x32\x10\xde\xd8\x56\x57\xdb\x65\xb5\x9a\x75\x4a\x24\x09\x74\x8a\x1b\x6d\xe7\xf3\x1a\xa9\xa1\x49\x6f\x9a\x24\x61\x1a\x83\xf2\x14\xfd\x46\x1f\x61\xc6\x7c\x49\x12\x05\x29\x26\x49\x16\xb9\xea\xb3\x1f\x92\x44\xb1\xc0\xdf\x2b\x9b\xc5\x19\x4d\x01\x49\xa2\x24\xca\x5c\x7a\x18\x4b\xeb\x3f\xf3\x2e\xb6\xc0\xb8\xd7\x64\xa4\x6c\x21\x22\x24\xfe\x17\x1c\x43\x47\xfc\x66\x8f\x3f\xa1\x8e\xbc\x3f\x26\x49\x94\x46\x92\xba\x0e\x69\x2f\x5b\x38\x7a\x43\x71\xc0\x7d\x4f\x7e\x7d\x5f\xa9\x5c\x9f\xad\x0e\xff\xe4\xc9\x63\x16\x63\xfa\xb6\xae\x72\xe3\x7a\x8c\x8c\x89\x24\x71\x16\x22\x96\x69\xd1\x1e\xf8\xb0\x51\xaa\x3b\x12\x61\x2b\x9d\x6d\x19\xb7\xc8\xa9\x21\x6f\xdb\xdf\xad\xea\xd4\xa4\x76\x6f\x7f\x4f\x43\x2e\x89\x07\x2b\x1b\x48\xae\x3b\x37\xa5\x3c\x36\x00\xb3\xbb\x7f\x8c\x2e\x9a\x91\x58\x1b\x76\x2a\x94\x9f\xbf\xa9\xea\xc9\xf3\x64\x54\x33\x2b\x4d\x38\x8c\xcf\x3e\xf7\x13\x24\xe1\x44\x60\x5b\xb7\xe1\xd1\xb0\xfd\xa8\xee\x82\x3c\x08\xd1\x6f\xfe\xed\xf7\xd1\x7d\x88\x48\x79\xf0\xe5\x16\x09\x68\xd6\xfa\xa9\xe0\x12\x5e\x31\xac\x5c\x37\x57\x5c\x0d\xc6\xa2\xcd\x34\x5a\x2f\x4f\xd0\x5e\x76\x2e\x4a\x22\xe2\xe0\x72\x7b\xfd\x62\x59\x77\xbf\x08\x49\x6a\xa7\x35\x7e\xfb\x61\x46\x46\x12\x91\x84\x58\x26\x43\x19\xcc\x1c\xfd\x93\x6d\x7e\xec\xe1\x8a\x7e\x1c\x37\xf0\x7f\x34\x0b\x13\xb2\x4f\x49\x04\x04\x58\x86\xbf\x1b\xf5\x51\x4a\x22\xa9\x91\x68\x30\x3b\xbe\xdb\x33\xc6\xb8\x9c\x4b\x02\x71\x49\xa4\x56\x44\xf4\x9a\x20\x50\xb7\x79\x6f\x48\x14\xcd\xc0\xf4\x5c\x0d\x89\x13\xbd\xf4\x1e\x73\xc3\x38\x91\x6a\x40\x8b\x65\x60\x9f\x4f\x3c\xbf\x6c\xcd\xf8\x2a\x26\xec\x4e\x14\xe1\x1e\xd1\x7d\xc4\x0d\xd7\xb0\x39\x89\xd9\xdc\x9b\x24\x0a\x42\x74\xad\xb4\x2f\x45\x75\xdb\x7b\xaf\xab\x29\x09\x70\x86\xa9\x62\x51\xc3\xa0\x5c\x7b\xa9\x1e\x7c\x99\x04\x91\x44\x07\x46\x66\xbc\xbb\x8f\xab\xbc\x6d\x1e\xeb\xcd\x69\x40\xbb\x26\x89\xa6\x44\x59\xd2\x7b\x39\x14\xb2\x35\x87\x03\x12\xc6\x18\x3a\x4b\x28\x9b\xaa\x06\xb5\x7c\xe5\xed\x3d\x34\x0d\x62\xa2\x47\x0f\x12\x90\x90\x61\xeb\xcc\x53\x95\x97\x6d\x01\x4d\x33\xd7\x8a\x34\xca\xff\x8c\x96\x57\x40\x32\x43\x89\x68\x3a\x45\x90\x52\xc5\x36\x5d\xab\x25\xee\xc7\x97\x4a\xfd\x7f\x71\xb3\xba\xf8\x66\x9f\xfd\x3b\x7e\xa0\x20\x8c\x31\xb8\xde\x79\x4e\x48\x8f\xa6\x74\xaf\x27\xb0\xd2\xd8\x1a\xa1\xd9\x03\x18\x8f\x0c\x02\x45\x90\xb8\xf1\x1a\x8a\x96\xfb\x3d\xd1\x1e\x0c\x75\x60\x94\x37\x6c\x16\xf3\x9e\x7f\x20\xe3\x8d\x97\x29\x6d\xe6\x5e\x5c\x7f\x6b\x51\x68\x04\x51\x4f\xa5\x63\x5e\x99\x1c\x97\x12\x39\xb6\xcc\x7d\x8d\xed\x6e\x10\x29\x4d\x2d\x6d\xd8\xea\x03\xe4\xa9\xcd\x7f\xc2\xa3\xd6\xb9\x9c\xa4\x43\x64\x10\x13\x1e\x74\xb7\x79\xb5\xdd\xfc\x36\xb4\x51\x41\x9c\x29\x54\x77\xc6\x64\x3c\x9c\x0e\xef\xaf\x95\xec\xf7\xac\x20\xd6\x19\x22\x50\xee\x17\x7f\xec\x96\x8b\xe7\x8d\xfb\x7b\x92\x98\x16\x8f\xce\x43\x1f\x8a\x94\x4f\x9e\x2e\xe1\x1a\x6b\x1f\x3a\x2f\x0e\x47\x9e\x2b\xff\x73\x49\x85\xd1\x77\x16\xe6\xad\xfc\x6d\x9e\xbf\x7f\x7e\x4d\x06\x34\xa6\xb8\x16\x76\x86\xc1\xb5\x8b\x61\x91\x37\xd6\xbc\xf0\xf9\xf6\x52\x19\xa4\x54\x01\x98\x6c\xee\xb6\xb2\xbd\x9a\xd2\xcb\x5b\xc9\x20\xe5\x29\x8f\x7a\x01\xbb\xcd\xd2\x63\xd0\x65\x90\x0a\x43\x14\x6f\x2b\x24\x9d\xff\x82\x5b\xe5\xe4\x6b\xb1\x38\x15\x16\xae\xf9\xa3\xaa\xdf\xa0\x36\xdc\xee\xe3\xfb\x60\x99\xe1\x48\xb0\xe6\xcd\x4f\x25\x26\x4d\xee\x1e\x09\x58\xba\xf1\xe0\x6f\x2d\x8b\x18\x02\xbe\x16\x4a\x3d\xc0\xfb\x06\xf6\x23\xc9\xbb\x5f\x2d\x9a\xa1\x1d\x09\xb8\x8a\xd3\xde\x39\xc7\x3c\x81\xe9\x8b\x9b\xff\x82\x22\x32\x6a\x7d\xcd\x91\xd7\xaa\x6a\xa0\xec\x71\x28\x32\x50\x99\xd0\x06\xff\x75\x5b\x15\xca\x94\x8e\xeb\xf3\xe4\x71\x21\x66\xa6\x97\x1d\x33\x03\x3f\x8c\x6c\xc0\xd4\xe4\x00\xe5\x98\xe8\x6c\x81\xd7\xd8\x76\xe5\xfe\x9e\xc6\x46\x4b\x08\x9b\x22\x7a\x40\x89\x39\x1c\x92\x58\xb3\xd4\xfa\x4c\x86\x6e\x62\xac\x18\x3f\xd8\x11\x42\x22\xe2\xc4\x76\xf1\x5d\xf0\xa7\x8d\x6e\x26\x24\x5a\x22\x53\x94\xf5\x59\x10\xea\x6f\x6b\x14\x76\x44\x40\x65\x14\x3b\xe0\x19\x26\xfe\x2f\x49\xfc\x65\x18\xf0\x2c\x88\x7a\x79\xb0\x30\xa1\x7f\x9b\x9b\xce\x61\xa8\x33\x47\x7a\xf0\x8c\xf2\xb9\x9d\xf1\xe8\xc5\x51\xbe\x57\xed\x27\xa4\x11\x32\x8c\x04\xc7\xfa\xde\xef\xfc\x98\xb7\xbc\x80\x0f\x4f\x39\x24\xc3\x98\x73\xe2\x7b\x23\x9e\xac\x00\x2d\x2f\x60\x33\xd8\xd9\xc3\x84\x1b\xdd\x31\xae\x54\x3b\x74\x0d\xc2\x34\x10\x60\xe5\xef\xeb\xbc\x3d\x9b\x49\x32\x76\x59\xc3\x34\x95\x16\xdb\xda\xe4\x45\x0e\xbe\x72\x22\xc3\x54\x18\xfe\x32\xf9\xda\xfd\xae\xdc\x63\x89\xeb\x78\x6a\xfd\x71\x6d\x75\xea\x61\xcf\xe5\xf9\x19\x8e\xe3\x44\xb5\x0c\x19\x11\x1a\x4b\xf4\x55\x0d\xf7\x79\x69\xba\x48\xc6\xaf\x8d\x05\x01\xd2\xa3\x94\xf0\xd1\x3a\x9a\x5f\xa7\xb6\xb4\x56\x81\x3b\x53\x16\x9a\xb6\x44\x95\xff\x44\x47\xd9\xff\x3d\x65\xd8\x71\xa4\xa0\xc8\x7f\x42\x7d\x5e\xfb\x59\x95\x69\xed\x15\xcd\xf9\x47\x7e\x3a\xe0\xad\x0f\xca\x95\x32\xe4\x31\xa1\x96\xc4\xe5\xf1\x08\xe5\x8c\x2d\x08\xb9\x4c\x62\x18\xe4\xb1\x3f\x03\x94\x4d\x7e\xa5\x4d\xc7\xa3\x63\x16\x40\x5e\xe0\xd5\x7f\xae\x7c\x85\x41\x86\x22\x60\x68\x27\x6e\xa1\x7d\x79\xbe\xfb\x64\x0e\x8b\xc4\x60\xf2\x2d\xab\xfb\x5d\x2e\x6a\x3e\x5d\x9a\xa1\x10\x19\xd6\xbe\xaa\x23\x52\x04\xfc\xd7\x7f\x3e\x21\x55\x18\xf6\xa6\x70\xc9\x4b\xdf\x81\x00\x93\x73\xc8\x90\x09\xbf\x14\xae\x4e\xe7\xc9\x5b\x90\x4c\xbb\xee\x96\xd5\x7e\xdf\x3c\x6a\x3d\xfd\x7d\x46\x02\x3a\x64\xba\xf3\x1f\x48\x2a\xc1\xd2\xbe\x0c\x81\xaa\x54\x46\xcb\xc2\xdf\x27\xc8\x94\x39\x0f\xfb\x86\xe7\x45\xf7\x4a\xca\x66\x24\x7c\x22\x43\xd0\x80\xcc\x18\xf7\xc8\x62\x78\xf0\xd5\x41\x19\xea\x28\x13\xc6\x7e\x19\x2c\x43\xed\x75\xe5\x64\xa8\x99\x51\xc4\x34\x4d\x59\xb7\x75\x75\xba\xe8\x9a\xf9\x5f\xff\x35\x67\x8e\x08\xd1\x98\x02\xba\x07\x95\xa3\x10\xe2\x65\x9b\x80\x8c\x48\x66\x68\x78\x25\x2f\x4d\xa0\xec\xfe\xce\x15\x26\xe9\x56\xed\x6b\xf3\x9f\x7a\xe9\x55\x33\x64\x44\x64\xec\xc2\x72\x74\xdc\x9a\x6d\xb5\x39\x82\x4b\x8a\xc8\x28\x48\x99\x76\xfc\x25\x70\x80\xe6\xea\x7c\x09\x78\x97\x51\x18\x72\xec\x45\x43\x63\x50\x40\xe9\xe4\x89\x64\x14\x2a\xc3\xd2\xf7\x51\x63\xe5\xd6\x10\x81\x4c\xd6\x64\x14\x42\x0c\xcc\x45\x9d\xbb\xbc\xc4\xb4\x36\xf4\x25\x7a\x0f\x8c\x97\x51\x14\xc6\x78\xa5\x6e\xf2\xdd\x54\xb5\x01\xa0\x1a\x2a\x2f\x3b\x22\x0e\x39\xe2\x9d\xae\x16\x9b\x95\xff\x5b\xc4\x31\xd1\xff\xcc\x5b\x88\xdd\x1f\x93\x24\x45\xcf\xfb\xd6\xd1\x30\x0d\x9a\xce\x64\x94\xa4\x46\x0f\xaf\xa9\xa4\xf4\x2b\x38\x4a\x52\x49\xed\x2e\xbc\x46\x07\xf7\x19\xf6\x43\x54\x9d\x8c\x68\x90\x51\xc3\x9a\xbe\x39\xd6\xe0\x43\xb5\x28\x8d\x23\x47\xc6\xb0\x05\x7e\xe8\x29\xe8\x64\xc4\x48\x88\x5d\x4c\xf7\x7c\x08\x37\x93\x11\x8b\x79\x04\xee\xad\x6e\x2b\xc7\xf9\xeb\x52\x13\xc6\x34\xfe\x8f\x3e\xaf\x3b\x35\xb0\xc4\xa6\xc6\xdb\x5e\x23\x79\xf2\x59\x38\x89\x11\x30\xfa\xb4\x18\x45\xca\x11\xb7\xb8\x05\x2c\x56\x56\xea\x1a\x24\xe6\x1c\xc6\x6e\x66\xc4\xa9\x4e\xad\xe4\x87\xdd\xe3\xb9\xc7\x6a\xcb\x88\x2b\x6d\xb2\xd3\x2a\x47\x53\x33\x15\xe1\x1b\xff\x1b\x90\x2f\x31\xcf\x32\xe2\x3a\x76\x34\x3b\x16\x94\xf7\xfb\x49\x55\x13\x5f\x2e\x12\xc2\x70\x56\x1e\x0c\x1d\xeb\x50\x45\x48\x46\x9d\x7b\x0a\x0e\xf9\x8b\xcf\x7b\x3f\x30\xcf\x9f\x36\xd3\xca\x2e\x5c\x47\x77\xf5\xed\x2c\x91\xc8\x69\x7c\x4d\x15\x27\xc0\x3c\xfc\xee\xa9\xf3\x02\x8d\xb8\xfe\xf4\x6d\xab\x44\xe3\x8e\xd3\xb4\x79\x51\xd8\x76\xad\x67\xe0\x6a\x38\xfb\x75\x44\x11\x7a\x84\x8c\xca\xc3\x1d\x39\xd2\x89\xc2\xad\xc5\xad\x99\x67\x68\xda\x47\x3d\x6a\xc9\x91\x91\xb6\x42\x49\x9d\x59\xfd\x38\xe6\xb5\xd7\xf7\x40\x3f\x64\x92\xb2\x93\x31\x91\x31\x46\xe8\x9b\x43\xe7\x0a\x74\x7b\xc9\x97\x26\x2a\x26\x4a\xa0\x51\xfe\x06\x6a\xef\xfb\x63\x82\x2f\xdb\xc0\x64\x1c\x84\x80\xa0\x4d\xa3\xdd\xef\x76\x64\x04\x6e\x5a\x88\x98\x8c\x43\xcd\x10\xb0\x6e\x50\xf5\x6b\x59\xb9\x03\x51\xa6\x68\x3a\x48\xac\x77\x33\xa9\xf1\x07\x01\x9c\x5b\x6d\x1f\xf3\x51\x4f\x70\x58\x32\x8e\x23\x86\xde\x16\x36\x5a\x6f\x2b\xe7\xaa\x0c\x92\x38\x71\x9c\x81\xb9\xc8\xa0\xc3\x70\x5d\xea\xea\x51\xcf\x87\xf4\x71\xcc\x0d\x4d\x50\x5b\xf3\x1e\xfe\x2f\x63\x4a\x08\x2a\xea\xaf\x9a\x96\xb7\xf0\x87\xff\x73\x6a\x82\x22\x53\x80\xf2\xa5\xef\xc9\x7d\x52\xa1\xd1\x8e\xc2\x01\xea\x3d\x94\xf2\xec\xad\xe3\x64\x60\x1a\x66\x68\x4c\x76\x4b\x5e\x14\xbd\x3a\xe6\x68\xb9\xc4\x69\x12\x63\x9a\x0f\x4a\x05\x03\xec\x92\x8c\x53\x9e\x66\x49\x4f\x01\x03\x0a\x27\xd9\x74\x62\xa4\x60\x10\xf4\xe8\xdc\x4c\x6f\x78\xf2\x7d\x19\x49\x92\xd4\x16\xee\x31\xe6\x32\x59\xc9\x47\xed\x38\xed\xfd\xf7\x62\x54\x22\x35\xfe\x03\xbc\x5f\x0d\xed\x4d\xcc\xd3\x0c\x43\x69\xd3\xd7\xc1\xe7\xc2\xb4\x98\x4b\xd3\x0c\x28\x78\x29\xab\x7a\x6b\xde\xfc\xc4\x3d\x8c\x45\xcc\xb8\x73\x93\x96\xbc\xbc\x1e\xfb\x58\x6e\x10\xe7\x88\x63\xd8\x74\x7e\xb4\x5c\xb5\xaf\x3e\x32\xf7\xa7\xd1\x0a\x7b\x9f\x7d\x29\xda\x12\x5d\x77\x7e\x46\x55\xc2\x50\x36\x22\xfb\xd7\xb8\xb7\x63\x90\x8c\x8e\xa5\x2d\x7e\x36\x9e\xb1\xf1\x0a\xd9\xf3\x3f\xa7\x5d\x92\xb1\xb4\x59\x85\xbc\xb1\x79\x1c\x7d\x72\x1e\x5e\xac\x18\x43\x8a\x86\x53\x83\x85\x89\x09\x02\x5d\xc6\x90\x18\x5c\xd2\x4e\x81\xac\x94\xc9\x56\x60\x4e\x75\x38\xd9\x41\xc4\x28\xc3\x67\xba\x75\x27\x73\x4b\x0b\x03\xd7\x42\xd0\xa2\x09\x9b\x9f\x8c\xee\xa9\xbb\x07\xad\xcc\x1c\xef\x2c\x4c\x37\x39\xae\xab\x71\xc5\x41\x26\x24\xa2\xd8\x16\xd8\x93\xc2\xb9\xcf\x93\x90\xc4\xe8\xb8\xaf\x1f\xae\x1f\x97\x8b\x8d\x4b\x4a\x27\x41\x14\x23\xd2\xc7\x52\x2b\x6d\x5a\x38\xfa\x43\x71\x84\x19\x8a\x97\xf2\x27\x9f\x41\x03\xd8\x51\x11\x51\xe0\x13\x91\xbd\xa4\x91\x3b\x1a\x26\x32\x70\xec\x71\xf5\x5b\x59\x29\x98\x67\x19\x97\x49\x94\x30\x7c\xbc\x9b\xd7\xf2\x7d\x90\xa4\x4f\x62\x1e\xd1\x1e\x02\xb2\xcd\x0f\x13\x02\x78\x99\xc4\x9a\xe3\xee\x52\xe4\x4d\xbb\x7c\xbc\x59\xbb\x5f\x26\x94\x31\xa3\x1f\x5b\x7d\x9c\xfd\x1f\xb3\x20\xb5\xbd\x11\xab\x5e\xcd\x71\xfe\x96\x28\x61\xa1\xa5\xb6\xe2\xb5\x7c\x3d\xaf\x4a\x65\x3b\x7a\xdc\x00\x1e\x19\x41\x01\xbb\x18\x26\xd3\x22\xa1\x92\x22\xb2\xc6\x1d\x87\x9f\x50\xb6\x83\x6e\x1f\x99\x50\x10\x59\xd4\x4b\x18\xe3\x14\x5f\x5e\x60\xc8\x65\x92\x42\x88\xcc\x5e\xf7\x7c\xff\xdf\x9c\xbb\x5f\xb3\x90\xa3\x81\x5f\xbf\x9d\x6a\xbe\x69\xab\xba\xdf\xb5\x12\x26\x4c\x13\x88\x41\x40\xda\xc4\xe2\xec\x2e\x13\xb8\x76\x14\x99\x30\x1d\x0b\x2b\x38\xbc\xb9\xec\x3b\x92\x49\x16\x88\xd0\xb4\x0e\x74\xc6\x6f\x03\x9d\x19\x74\xf8\x19\x37\x24\xa1\x58\xb7\xb9\xca\x4b\x5e\x9f\xcd\xf2\xfd\x1e\x7e\x59\x26\x96\x49\x96\x06\xa1\xbd\x6e\x3e\x48\x02\x26\x59\x9a\x48\xea\xb8\x0b\xba\x35\x61\x71\x8c\xee\x38\x0f\x13\x2c\xae\x9a\x60\xd8\xc5\x54\xee\xa0\x04\x6c\x51\x37\x01\x83\x91\x0e\x98\x5c\xfe\x9f\x51\xdf\x92\x93\xfc\xeb\xef\xa3\x57\x2e\xd3\x40\xb8\x4f\xf3\x9a\x17\x6a\xad\xbe\x56\x96\x97\x89\xcc\x08\xba\x10\x7d\x36\xf5\xeb\xf1\x2a\x93\x88\x44\xb1\x85\xd5\x69\x9a\x72\xfc\x8a\x54\x06\xb8\x82\xab\x81\x2a\xe8\x20\xf5\x93\x28\xcd\x11\x79\xdd\x05\x67\x06\x25\xd7\x4c\x3a\x4f\xb3\xfe\x3b\x2b\x2d\xb0\x51\x43\x88\xb1\x1b\x93\x68\xcd\xa5\x55\x83\xed\xdc\xb8\x81\x48\x86\xa4\x24\xd5\xc8\x3b\xd5\x85\xf7\x06\x98\xed\x8f\x08\x89\x3d\x8e\xe2\x54\x97\x37\x75\x75\xf8\x12\x4c\x2d\x69\x20\x63\xcc\xe0\xff\xe3\xa4\xf2\x5f\xf5\x06\x4b\x1a\x12\x70\xf2\x03\xd8\x87\x8e\xa1\xfd\x3c\x03\xbd\xa4\x61\xc8\xb2\x01\x73\xb8\xc9\x2b\x0d\x73\x73\xee\x15\xd0\x30\x49\x6c\xc9\xe9\x90\x97\x57\xa7\x7a\x2e\xe8\xa3\xa1\x08\xd1\xed\x7a\x7a\x5e\xed\xd6\xcb\xc7\xdd\xd5\xe3\xc3\xcb\xc6\x29\xe8\x2e\x6e\x5d\x10\x44\xe3\x54\xa1\x69\xff\x6d\xb5\x19\x6e\xaf\x34\xd6\x09\x7a\x57\xa2\xe6\xce\x57\xa1\x09\x49\x55\xea\x1a\x91\x76\xed\x27\x22\x4b\x93\xe7\x4a\x82\x04\xdb\x1d\x9e\xbe\x3f\x7d\xed\x29\xd2\x24\x62\x51\xe4\x36\x12\x0b\xfc\x1f\xe8\x18\x4b\x9a\xd8\x5e\x35\x74\x4e\x4c\x5f\xb3\xaf\x06\xf4\x63\x00\x83\x5d\x2e\x65\xae\xfa\x6d\x84\x26\x76\x97\xba\x59\x3f\x2c\xee\xd6\x7f\xae\xc6\xf6\x8e\xd2\x98\x62\x0b\xca\x6d\x55\xcd\xbd\xcd\x34\x94\x9a\xf6\xed\xce\xd0\x34\x8b\xba\xe6\xe7\x69\x26\xcd\x7f\xa2\x94\x0b\x2c\xc1\xdd\x3f\xde\x0f\x76\x04\x9a\x42\x84\x94\xcf\x26\x7f\xf9\xdc\x19\xd5\xd3\x84\x2d\x47\x52\x16\x64\xa9\xf5\x00\x6e\xb9\xc1\x4a\xce\xc0\x33\x24\x65\x0c\xd0\xf9\x7b\x47\x0b\xf2\x50\x59\xdf\x6c\xbc\xf8\x28\xe3\x29\xba\xeb\x46\xaf\xeb\x08\xb2\xaf\x7f\xd1\x8c\x71\xb4\x5d\x3b\xff\x2d\x31\x87\x3b\xcb\x61\x3c\x0f\xb2\x19\x1b\x43\xca\xe3\x98\x59\xae\x48\x2c\x2a\x4e\xd2\xc1\x93\xc1\xd2\xa8\x3f\xd6\x3e\x3b\xb9\x2c\x80\x4f\x85\x28\xdc\x60\x2d\x31\x8b\xe4\x18\x00\x76\xa8\x7c\x36\xbf\xfa\xfe\x19\xb9\xcf\x20\x02\x83\x06\x3e\xde\xe7\xe5\xba\xbc\x71\x0e\x02\x15\x81\x0a\x6c\x43\xae\x1a\x39\xf7\x7e\x3e\x88\x28\xc3\xd7\xd6\x9c\xc4\x0f\xc8\x6d\x4c\x38\x9e\x13\x02\x08\xb5\x79\xfc\x5e\x32\x62\xbe\x5e\x40\x65\xc0\xb0\x81\xcc\x30\xe3\x39\x3d\xbf\xdd\xfd\xcb\xdd\x76\x3d\xd0\x84\x90\x54\x46\xa1\x54\x9e\xb5\xbe\x0b\x0b\x0b\xe8\xd6\xc0\x3c\x7c\xd3\xfe\x08\xe2\x88\x03\xae\xf5\xf5\x72\xb5\x5b\x7e\x5b\x3c\xdc\xa2\x12\xc0\xfa\xe1\x76\x00\x41\x93\x14\x12\x85\xed\x02\x86\xef\xe7\x5b\xde\x8c\xfa\x35\xbf\xb4\xf8\x14\x52\xe1\xd5\x1a\x30\x28\x43\x00\xda\x5f\x01\x84\x48\x0a\x22\x0e\x4c\xd3\xf2\xbf\x4f\xcd\xac\x90\x9e\xa4\x3a\xe2\x88\xd3\xaa\xea\x7c\x9f\x97\xd6\x91\xb4\x98\x69\x37\xc4\x72\x70\xae\x65\x85\x79\xac\x1e\x51\x2a\xa9\x4e\xd3\xd0\x96\xe1\xbf\xe7\xf5\xe9\x13\x57\x2d\x25\x31\x71\x91\xcc\xfd\x79\x59\x57\xd2\xad\x85\x34\x88\x8d\x12\x49\xe3\x9e\x6f\x14\x74\xb2\xf1\xb7\x4f\x83\xc4\xb4\xc9\x58\x58\xc0\xd0\x72\xa6\x61\x60\xfa\x4c\xf7\x75\xf5\xde\xad\xa4\x9e\xf7\x72\x03\xe5\xbc\x90\xad\x4c\xc3\x94\x10\x87\xb5\xb2\x98\xc3\xeb\x2b\x77\xc6\x88\x0a\xea\x11\xa9\x4f\x50\xcb\xc9\xdd\x44\x69\x92\x9a\x04\x80\x61\xda\xbe\xcf\xcb\xf6\xc5\xc8\x61\x7f\x72\xb9\x88\x99\x02\xaf\x5b\xf7\xf7\xc8\xfb\x58\x9c\xbf\x0e\xcb\xd3\x38\x15\xc4\x25\x54\x4c\xfa\xf3\xea\xfc\x49\x73\x8a\x4c\x63\xc1\xb0\x8f\xb9\x16\x5d\x5c\x5c\x1f\x70\x89\x77\xae\x9e\xfb\x68\x69\x42\x01\x12\x07\x1a\x59\x72\xf9\x6a\x52\xd4\x79\x7b\xbe\xaa\x4a\xf5\x03\x43\x55\x8c\x53\xdd\xf8\x4c\xb0\x21\xcb\x40\x33\x74\xdf\x52\x1a\x05\x21\xb7\x98\x43\x2f\x3e\x82\xa5\x14\x37\x40\x28\xcc\x2e\xf5\x2c\x02\x89\x3b\x94\x26\x91\x29\x8d\xda\x37\x68\x39\x28\xfc\x61\x46\x4c\x0b\x30\x16\xba\x16\x4d\x03\xc8\x50\x6b\x92\x9e\xb3\xd5\x94\x34\xe5\x0c\x7f\x82\xc0\x7d\xc4\x40\x83\xda\xfb\xb9\x9c\x32\x1a\x52\x9b\x53\x7f\x7a\x7c\xbc\xb3\xe4\x78\xc1\x28\x6b\x98\x32\x96\x06\x06\x17\x3e\x32\x52\xc3\x52\x54\xca\x32\x30\x24\x0d\x50\x14\xc7\x9a\xc8\x2a\x2f\x9b\xc5\x9e\xe7\x65\x63\xab\x0c\xe3\x8f\x92\xd1\x8c\xf8\x9c\xac\xdd\xc4\x26\x23\x40\x73\x9b\x2d\x56\x88\x7f\x5e\x6d\xbf\xe1\x13\xfb\xa5\x92\xe9\xcc\x71\x7f\xd8\xf7\xe4\x8b\x69\xc8\x1f\x5c\x4f\xca\x17\x29\x8f\x38\xe6\x5c\xba\xd0\xb8\xf3\x57\xa6\x64\x9d\x32\x15\x21\x43\xa0\xde\xdb\x4f\x79\x7f\xba\xc8\x28\xb9\x41\x4c\xc6\xc4\xe3\x5a\x6e\x10\xad\x35\x2f\x45\x2b\x53\x91\x51\x4c\x65\x36\xc7\xbc\xce\xdb\x13\x2f\x76\xfb\x53\xae\x06\xfe\x62\x2a\x44\xe8\xb4\x95\x6f\xa1\x24\x03\x01\xe0\xee\x98\x44\x55\x39\x4c\x21\x2f\x54\x33\xd8\xc3\x53\xa1\x53\xf4\xbe\x36\x58\x97\x2d\xd4\xa6\xe4\xc7\xe6\xb5\x6a\xe7\x31\x18\xf3\x4f\x22\x89\x21\x84\x50\xd5\x7d\xbe\xaf\x79\x3f\xd1\x64\x08\x7a\xc8\x64\xb9\x83\x8f\x2e\xb8\xdd\x8d\xea\x69\xa9\xa4\x51\x6a\xe3\x69\x6b\x4c\xcd\xdd\x8f\x5f\x81\x52\xa9\x10\x03\xbc\xf7\x35\xb4\x3c\x9f\x68\x22\xca\x54\x41\x00\x06\x2d\x88\xd0\x16\xbd\x84\x6e\x92\x97\xe7\x27\x18\xb0\x54\xc8\x54\x69\x86\x9b\xdd\x2b\x6f\x36\xd7\xcb\xe5\xd7\x3e\x5f\xaa\xb4\x88\x6d\xb3\xd3\x6d\xe5\xda\x35\x64\x0a\x12\x64\x32\x24\x50\x1b\xf5\x81\xdb\x41\x3a\x34\xda\x33\x77\xd5\x7e\x00\xa8\xf2\xd5\x9a\x29\x3e\x7a\x66\x3f\x4c\x75\x96\x19\x88\x11\x66\xc6\x6f\x6a\x80\x45\x89\x94\xdd\xe6\x35\x4d\xae\x07\x1c\x97\xfe\x55\xfe\xc7\x69\xeb\x72\x88\xa9\x06\xc9\x4c\x2b\xae\xce\x4b\x30\x2a\x3d\xfe\x98\xa6\x81\x67\xbd\x6c\xe5\xeb\x5a\x39\x13\xc3\x48\x10\x1a\x42\xe3\xf5\xf6\xdb\xea\xee\x09\xb7\x7b\x77\x2c\x20\x94\xc5\x1e\x46\x54\xfb\x7a\xec\xbc\x89\x66\x41\x48\x64\xe6\x1c\x37\x74\x83\x6f\xaa\xba\x17\x18\x93\x2c\x88\x8d\xb0\x9f\xaa\xae\xe1\x27\x14\xd5\x71\xa6\xb0\xc9\x02\xce\x6d\x4b\xf1\xb1\xa8\xce\xbe\x8b\x6e\x32\x48\xc4\x98\xdc\xf2\x4c\xbd\x92\x05\x60\x48\x00\x0d\xad\x01\x0a\x53\x59\x9d\x85\x99\x26\x7b\xc9\xc2\x58\x62\xa6\xfd\x95\x37\xaf\x03\xf5\x71\xe6\x0e\x0b\x8d\x82\x47\xbb\x23\x3f\x9b\xb9\xbc\xc3\x2a\x3c\x76\x3c\x4d\x6e\x26\x94\xe6\xb1\x3a\xeb\x62\x52\x71\x4f\xc7\xc3\x90\xed\x49\xb2\x38\xd0\x18\x3b\x77\x53\xc4\xe4\x9b\xb0\x03\xd4\xca\xfe\x4e\xce\x17\x27\x4a\xb1\x5e\xb0\x56\x34\xb2\xce\x07\xbc\x7d\x92\xc5\xa9\x06\xc3\xb7\xf1\xf3\x75\xe8\x6f\xb0\x24\xe6\x88\x33\xbd\xb6\x97\xf1\x7f\x57\xa1\x36\xea\x47\xfb\x53\xd1\xbd\x12\x4b\xe9\xe8\x0f\xc7\x34\xf6\xaf\xce\xa0\x08\x8c\x03\xb9\xa9\x6e\xf8\xc4\x20\x33\x4a\x0d\xc7\x61\xde\x58\x2a\x94\xc7\xd2\xf5\x4f\x48\x46\x53\x23\xb8\x9a\x1b\x38\x8a\x03\x0d\x8f\x17\x3a\xa3\x10\x38\x16\xd6\x67\xeb\x8f\x9c\x8f\x30\x1d\xa4\x3d\xd9\x92\xdd\x6b\x4d\x89\xd4\x31\xd9\x2c\xab\xc6\x99\x3f\x96\x26\x86\x92\xc6\x00\x38\x97\x7f\x3e\xdf\x5f\x2a\x4c\xfb\xa1\x3a\xb3\xe9\x8f\x65\x75\xaa\x3b\x43\x3c\x8e\x0c\x5c\x48\xc4\x58\x10\x23\x82\xef\xbb\x69\xab\xa9\xea\xd1\x5e\xc7\x18\x0d\x8c\xa4\xd2\x7b\xde\xca\x57\x27\x7c\xdc\x77\xd4\x49\xc6\xb8\xa1\x6b\xdf\x3c\x7e\xff\x19\x04\xa3\x2f\x92\x91\xcc\x69\xa7\x6c\x5e\xab\x7a\x62\x09\x59\x26\x99\x36\x55\x5b\xf9\x0a\x05\xfc\x32\x70\x67\x3c\x94\x58\x4f\xcc\x7d\x10\xee\xbf\x2e\x97\xb1\xb2\x9a\xa6\x73\xc9\x0e\x26\x42\x86\xb4\x28\xfb\xfc\x17\xfa\x36\x92\x09\xab\xcc\xc9\x95\xba\xcf\x4b\xa8\x07\x6b\x93\xc6\x13\xe6\x15\x4f\xab\x2b\x99\x80\xc4\xe8\x7a\xf1\x12\xb3\x0a\x9f\x91\x2b\x0c\x4d\x22\x93\x1c\xc2\xc8\x9b\x44\xe3\x57\xcf\x64\xeb\x98\x14\x21\x56\xc1\xab\x23\x42\x6b\xbd\xb1\x51\x2c\xd4\xec\x32\xfe\x1a\x22\x2f\x7b\x8e\x18\xfb\x1b\x08\x38\xb6\x56\xe7\xae\x95\x6c\x5d\x36\x6d\xb7\x5b\x0d\x91\xc3\x0c\x94\x4e\x7b\x95\xbe\x31\x36\x64\xfc\x6a\x75\xa4\xb9\xdd\x3e\xfa\xfe\x81\x31\x8c\x84\xe9\x58\xe1\x9a\xad\xca\x5f\x68\x0c\x4d\xee\x55\xb3\x04\x71\xa2\x66\xe3\x85\x77\x7f\x3e\xc1\x10\x93\xe7\x7b\xe9\x0a\xf5\x85\xe2\xa4\x64\x1a\x08\x35\xfc\x8e\x67\x0c\xdb\x86\xa3\x26\x46\x33\x23\x01\xc1\x7d\xe4\x90\x3b\x2c\xad\x61\x6e\x3e\xc0\x15\x6f\x40\x59\x6c\xfb\xff\xc4\xc2\x22\x33\x12\xa6\x29\x32\x88\x5b\x5d\xba\xd1\x2b\xcc\x48\x68\xf4\xa0\x0e\x7e\xbe\xcd\x3f\x47\x46\x78\x9a\x19\x5a\x1b\xf9\x73\xa7\xeb\xea\xb0\x6b\x72\x05\x3b\xf9\x3a\x42\xca\xf6\x13\x2c\x0b\x42\x23\x68\x7e\xe0\xf5\xdb\xb2\xee\xdc\xd9\x4f\xce\x1c\x88\x04\xd1\xcf\x87\xbc\xcc\xcb\x7d\xe7\x39\xba\x49\x96\x85\x22\x43\xd7\xca\x94\x6b\x56\xb5\x0c\xc9\xca\x83\x06\xb2\x28\x4a\x4d\xe1\xb9\xaf\x96\x2e\xf6\xbd\xa4\xdb\xd8\xff\xce\x22\x4e\x70\x22\x7f\x83\xe2\x08\xf5\x06\x78\x2d\x5f\x87\x36\x23\x8b\x44\x84\x33\xfa\x16\x50\xd6\x06\x4d\x66\xff\x95\xd8\xd0\xc9\xce\x22\xa9\x31\xc0\xbe\xe9\x26\x2e\xcf\xcb\x47\xfd\x03\x78\xd1\xdf\x5a\x1c\x18\xf1\xa0\xab\x3f\xfe\x1c\x5d\x23\x96\x10\xf7\xfa\x90\xdd\x2a\x77\xa0\xe9\xde\xae\x65\x69\x18\x71\xeb\x4e\xa3\x74\x95\xc9\x4f\x7e\xfd\x95\xd3\xd0\xb4\x6b\x16\xbc\x69\x31\xab\xb8\xd3\x81\x0b\x66\xb2\x34\xd4\x98\xbb\x6f\xf3\x03\x3c\xea\x3b\xde\xb4\x33\x28\xd5\x2c\x8d\x28\x26\xfe\xcc\xbd\xcd\x24\x98\xb2\x34\x23\xa8\x2e\x65\xdb\x0d\x07\x8b\x36\x4b\xa5\xd6\x16\x00\xb7\x34\xb4\x49\x06\xae\x7d\x5d\xc9\xd3\x08\x4f\x38\xca\xaa\x64\x2c\x91\x99\x55\xb1\xd5\x9d\x4b\xe5\x36\xba\x8c\x51\x83\xbf\xc2\xb8\x9b\x17\x41\xff\x35\xdc\x00\x00\xdd\x43\x68\x46\xcd\xa7\x9f\xcc\xb3\x2c\xd2\x51\xaf\xb5\xea\xa2\xf9\xd1\x49\xb3\x34\x06\x31\xe0\x17\xfe\xb1\x5a\x0f\x91\x59\x59\x26\x34\x64\x5e\x2a\x03\x3f\x0e\xaf\xf9\xe1\x22\x83\xfb\xc9\x47\xca\x24\x25\x72\xe0\x27\xde\xd4\xd5\xc1\x33\x35\xf6\xc3\x38\x05\x97\x34\xbb\x06\xcd\x4f\x05\xc6\x96\xb9\xc1\x5e\x8c\xe9\x4d\x65\x26\x12\x89\xad\xc2\x47\x84\xb8\x74\xb7\xe4\x19\x3a\x64\x26\xc0\xb6\x9e\x82\xe5\xe6\x98\x41\xe5\x64\x92\xa6\xa9\x27\xba\xbb\x86\x01\x98\xe1\x64\xba\x88\x27\xdf\x4c\x45\x09\x9f\x2a\xba\x2f\x7b\xe7\x6d\xfe\xe5\xab\x54\x63\x00\x65\x5a\xc7\x4e\x07\x2c\x88\xaa\x8d\xe1\xa0\xb8\xe9\x57\xbc\xe2\x89\x93\x17\xbc\xe7\xf9\xa8\x9f\xf8\xc2\xfe\x67\x90\x66\xa9\x85\x54\x2c\xd4\xc1\x47\x64\x19\x28\x2d\x2d\xc2\x6c\x73\xe0\x45\xf1\x19\x24\x73\x7c\x8f\x9c\x90\x40\xf9\x17\xe1\xd5\x39\x7e\x41\x32\x33\xcf\xa3\x20\x39\x09\x33\xdc\x3f\x6a\xfe\xbe\x81\x76\xd1\x3a\x80\xdb\x2c\x40\xc5\xfd\x26\x61\x08\xde\x32\xc1\xdd\x4d\x55\xff\x80\x71\x03\x9b\xe4\x44\x00\x8a\xef\x6c\x57\x8b\xfb\xdd\xed\xf3\xe3\xcb\xd3\x88\x52\x5b\x72\x04\xd8\xa3\xab\xd6\xc0\x83\x23\xe1\x91\x3c\x70\x1c\xb6\x2e\xd2\x6a\x66\x36\x7b\x1e\x26\x1a\x4d\xc0\x76\xf1\x7c\xbb\xda\xee\x16\xd7\xd7\xcf\xab\x8d\xc3\x65\xf3\x90\x49\x81\xd2\x55\x05\xf0\x01\xe4\xf3\xd3\xc9\xff\x49\x2f\x84\x3b\x1b\x50\xdc\x98\x0f\xfc\x0d\x7e\x54\xf5\x5b\xcf\xfe\x7d\xf9\x65\x22\x06\xb8\x70\xa0\x7d\x1d\x54\x82\x79\x04\x80\xd4\x64\x16\x72\x61\x79\x14\x2d\x4c\xd7\x8e\x89\xd3\x38\xe4\xc3\x3c\x9a\x47\xb3\x4c\x9e\x3d\xce\x28\xca\x53\x6c\x4f\x75\x89\xdb\x2d\xca\x9d\xf4\xd6\x8f\x27\x51\x84\x55\xdd\x6e\x77\x5e\x7d\xb4\x35\x9f\x0b\x9d\x78\x22\x53\xac\x82\xb6\xd0\xb4\xab\xba\xae\xea\x21\xa5\xf5\x03\x3f\x80\x23\xc1\x72\x37\x48\x21\x0e\xad\xb5\xdf\xd9\x52\xd5\xae\x1d\x8a\x4e\xda\x71\x69\xa4\x31\x8a\xb0\x0f\x7b\x35\x80\x9b\x72\x96\xc4\xd8\x23\x65\xdb\xbb\x7c\x8d\x6f\x3c\x25\x33\xa2\xd1\x64\xde\x55\xfb\x5b\x5b\x78\xff\xaa\x55\x56\xf2\x2c\x31\x64\x14\x7b\x23\x82\x04\xa6\x1b\xf2\x13\x38\xbd\xfd\x0d\x27\x80\x2c\xec\x8f\x7f\xdc\x3e\xde\x5d\x0f\xbb\xbf\x25\xe7\xda\x10\xa3\x95\xf0\xbe\x56\x5b\x5e\xbe\x7d\x3b\x39\xd6\x3d\xc9\x45\xc0\x89\x53\xf6\x5f\x7d\x1c\x51\x54\xa7\xc6\xfd\x69\x74\x7e\xc1\x35\xf6\x95\x3d\xc0\xfb\xb7\x7c\xff\x8a\x0d\x2b\xf3\xda\x2a\x92\xcb\x54\xe3\x6e\xdb\x9c\x0f\xa2\x2a\x46\x1d\x7c\x5c\x0a\xa3\x18\x66\x85\x65\x36\x79\xf9\xca\x0b\x3e\xdc\xac\xb9\x0a\x52\xac\xf8\x7f\x3b\xd5\xa8\x61\x90\xf7\x47\x52\x86\x05\xca\x23\x3f\x2b\x23\x58\xdb\xac\xb6\xdf\xc6\xd6\x89\x03\x37\x25\xa2\xe7\xd5\x66\xf5\xfc\x7d\x75\xbd\xb3\xed\x5d\x37\x8f\xcf\xbb\xe5\x3f\x1e\x1e\xb7\xcf\x2f\x1b\xbf\x6c\x91\x77\xdd\xee\x77\x50\xb4\xfc\xbe\x2a\xdb\xd7\x4f\x56\x83\x4e\xa9\xb0\xbc\xc1\x58\x96\x19\x4d\x78\x41\x82\x80\x72\x87\xde\x42\x56\x1a\x7f\x24\x4c\xa8\x11\xda\x2d\xf8\x79\xfb\x61\x73\x87\xf6\x12\xb6\x72\xfc\xaf\xf1\xff\xff\xfb\x5f\x18\xe3\xce\x9e\x06\x88\x39\x39\x58\xa2\x7b\xcc\xc8\xab\x3e\x62\x10\x44\x30\x6a\x5f\xda\xa4\xc2\x25\x82\x38\x09\xac\x5c\xff\x6c\x27\xb6\x1b\x96\x50\x24\xeb\xbf\xe5\xcd\x4d\x5e\xf8\xb2\x95\x08\x44\x84\x9c\x8f\xdb\xe7\xc7\x87\xf5\xd2\x81\xb3\x45\x48\x14\x46\x90\x2d\x7f\x83\x2b\x1b\x9d\x8d\x4a\xe7\xc3\x92\x79\xff\x9f\x5f\x99\x75\x11\xb1\x0c\xa7\xcd\xe1\x80\xc2\x56\xc8\x73\xe1\x0e\x65\x52\x18\xf9\x56\x4c\xbe\x40\x6d\x72\xb8\x4d\x77\xf9\x5d\x8d\x60\x8b\x5d\xcd\xc7\x34\xb7\x52\x44\xca\x44\x96\x16\xc9\x8d\x73\xd4\x1b\x07\x11\x07\x11\x66\xd9\x1e\xaa\x76\x51\x22\x6f\xbc\xe9\x6a\x76\x87\x43\x83\xc3\xba\x5f\x3c\x2c\xfa\xbf\x65\x28\x3b\xb5\xd9\x2e\x6e\x57\xbb\x60\x77\xbf\xf8\xa3\x4f\xe3\x88\x98\xb2\xc4\x46\xab\xc8\xf9\xed\xfe\x9e\x30\x89\x9d\x1b\xc8\x7a\xe5\x6a\xa8\xf3\x7b\xb9\x48\xb4\xc6\x89\x7d\xbd\xba\xdb\xfa\xcb\xd2\x10\xb0\x2f\x4b\x79\x8f\x85\x1f\xa0\xbd\x00\xf1\x0a\x1a\x91\x20\xf8\x85\xa6\xc8\x74\xf3\x60\xee\xb7\x5c\x87\x56\xb9\x10\x5b\x88\xfd\xb5\x45\x82\xdb\xc3\xf3\xe2\xfb\x7a\xb2\x69\x09\x2a\x63\x53\x61\x2d\x8a\x4d\x5b\xb9\x82\x9f\x48\x09\xcf\xfa\xb4\xf7\xd5\xf9\x9a\x37\xaf\xdb\x8f\xf1\xa7\x49\x89\xc6\xfd\xee\x95\x37\xab\x52\xf9\xaa\x83\x48\x13\x82\x71\x87\xed\xc4\xc7\xee\xf0\x41\x8e\xab\x7f\x56\x16\x32\xa4\x6d\x47\xbe\x1a\xbc\xd0\x50\xf8\x41\x0a\x96\x2a\x14\x83\x93\xff\xde\x02\x3f\x0c\x25\xa4\xa4\xc8\x98\x51\x0f\xb3\xdc\x2e\x8a\x1f\x06\xdb\xa3\x1b\xa3\x28\x06\x6f\x3b\x83\x61\xd9\xbe\x95\x97\x22\x5c\x52\xf0\x80\x61\x2e\x44\x76\x2e\x41\x8f\xe7\xe8\x77\x36\x21\x08\x95\xce\xad\x45\xe7\xc0\xa8\xde\x15\x9d\xd7\xe2\xb2\x0f\xa7\x0b\x91\xcf\x31\x13\xb1\x14\x22\xc9\xd0\xf0\x5c\x83\x84\x6e\x79\xa3\xc4\x2b\x5e\xcf\x11\x1c\x7f\x52\x32\x9e\xb5\x72\x42\x48\xa5\x06\x70\x2e\xcc\x65\xae\xf5\xa2\x74\xbb\x89\x10\x2a\x30\x6a\xfe\x0e\x5f\x77\x6f\xf0\xba\x57\x3e\xc9\x36\x79\x11\x32\x88\x31\x02\xec\x7e\xf0\x7d\xfd\x64\x6a\xb4\x9f\x80\xc1\x84\x8c\x8c\x8e\x56\xf3\x6a\x10\xdf\xe3\xb4\x82\x90\x51\xc8\x7c\x15\xbd\x0b\x17\x2f\x39\x44\xa5\x90\x4c\xf3\xf4\xb3\x32\xe7\xd8\x7a\x4a\x9e\x24\xca\xe9\x8c\x3a\x39\x76\x57\x16\xf1\xaf\x58\x05\x09\x72\x40\xf0\xc2\x51\xd1\x7f\xae\x02\x21\x85\x12\xd4\xc9\xf2\x5e\xf3\x96\x4f\x90\x34\x7e\x90\x40\x5e\x45\x0b\xdc\xe9\x9b\xbc\x85\x02\xc8\x2c\xec\xe0\x07\x72\x94\x6d\x78\x5b\x35\xaf\x13\x8f\x54\x00\x64\xd9\xc8\xb3\xbc\x82\xf6\x42\xc0\x4b\x0a\x1d\xa4\x81\xad\xae\x6c\x72\xc7\xd3\xfa\xcb\xc0\xe9\xaf\xe5\x38\x84\x96\xc4\x7c\xac\x6e\xcf\x31\x39\x30\x73\x44\x12\x2a\x1d\x46\xee\xa6\xaa\xbb\xb0\x63\x7c\x5f\x92\x00\x60\x51\x52\x57\x75\x7b\x2a\x61\xd7\x40\x9b\x1f\xf6\xe5\xe1\x82\xe5\xe7\x9f\x41\x1c\x4f\x42\x21\x19\x44\x86\xeb\x7f\x0f\xad\xf1\x8d\x16\x0a\xb5\xbe\xeb\xf3\x5c\x97\x98\x0c\x58\xc2\x9c\xaa\x3a\xca\xcb\xd9\xd0\xaf\x3f\x9f\x34\x9a\x4d\x96\xc8\x61\x84\xd0\x93\x81\xd4\x7c\x98\x79\x5a\xdc\x2d\xc7\x9f\x42\x86\x01\x73\x54\x41\x06\x23\x7a\x03\x30\xe8\xb7\x9e\x0c\x4e\x98\x52\xbe\x84\xb9\x01\x59\x75\x93\x1c\xb9\x2a\xef\xaa\x89\x0e\x9d\x94\xa1\x8c\xb1\x6d\xa9\x3a\xb5\x1b\x25\x1d\x2d\xd6\xe4\x8c\x90\x98\x40\xb2\xe0\x4d\xf3\x9d\xd7\xf9\x25\x7c\x5d\x46\x01\xc1\xc4\xc9\x5b\xde\xb6\xe7\x85\x1c\xf5\x13\xfc\x7d\x32\x94\x99\xb6\xd2\xe7\xd5\xcd\xea\x79\xf5\xec\xa0\x4a\xee\x75\xc4\x24\xcc\xec\xbb\xdf\x1c\xa1\x6c\xc7\x4b\x7e\xec\x39\xc8\x98\x2a\xa4\xf4\xb8\x5e\x5d\x2d\xb6\xab\xee\x54\xeb\xc7\xeb\xdd\xfd\xfa\xe1\x65\xbb\xda\xf8\x33\x72\x2a\x43\xa7\x78\x3e\x94\x9d\xb4\xc7\x93\x98\x60\xd5\x7d\x5b\x19\xb2\xab\xab\xbe\x69\x4f\x26\x89\x49\xec\x74\xaf\xbe\xaa\x8a\x70\x60\x5e\x65\x92\x9a\x36\xb8\x9d\x86\x56\xbe\xa2\x07\x72\x75\x5e\xab\x2e\x6e\x7e\x42\xe2\xd0\xb9\x7c\x95\x4c\x38\xc7\x30\x1b\xe7\x34\x0a\x79\x8f\xea\x89\xb3\xaf\x2c\x0d\x33\xeb\xe1\xd9\xe5\x7c\xcf\xeb\xbd\x77\x5b\x65\x1a\x0a\xa7\xec\xd3\x85\x51\xa6\x1f\x66\xd6\x76\xc8\x34\x32\x3c\x4e\xd2\x90\xdf\x82\xda\xf8\x58\x52\xa6\x90\x0a\x69\xa5\x4f\x2d\x81\x53\xef\x35\xcb\x2c\x90\x0e\xff\x88\x21\xc6\x55\x5d\x59\xe8\xd6\xe8\x3b\x07\xa1\x5b\x15\x19\xa5\x89\xa5\x5b\xe9\x5e\x49\x75\x6a\x7b\x65\x4c\x37\x84\x49\x44\x4f\xad\x9e\x97\x69\x18\xec\x9e\x57\xcb\xd5\xfa\xfb\xea\xda\x1f\xce\xb8\xb6\x30\x80\x07\xd8\xaf\xfd\xdf\x39\x31\xb0\xdf\x57\xde\x7c\xaf\x2e\x0a\x41\x92\x67\xd2\x29\x9b\x63\x83\xda\xc8\x8f\x96\x9c\x33\xc7\x36\xb2\x39\x42\x51\x2c\x84\xc1\x4f\x8c\x16\xac\x08\x12\x7c\x15\x1b\xde\x7a\x41\xe8\x19\xe7\xb8\x73\x51\xb0\xdb\x88\x2b\x85\xf4\xed\xed\x7c\xc4\x22\x85\x4c\x10\xe9\x7a\xe0\x1f\x8b\xb6\xe5\xf2\x0d\x6f\x6c\xc4\x3b\x29\xa5\xd0\xb1\x94\x03\x24\x29\xfa\x8c\x17\x44\x14\x52\x46\xa6\x2a\x75\xed\xdf\x87\x0a\x8c\x94\xfb\x8d\xb1\x75\x23\x6f\x47\xaa\x80\xe3\x8e\xf6\xb0\xfa\xe1\xd7\x98\x62\x40\x7c\x27\x88\xc9\x9b\x3d\xcf\x10\x75\x4f\xe6\x0e\xa4\x40\x2d\xca\xd1\x76\xe4\x76\xee\xcd\xe4\xe5\xeb\x40\x84\xc8\xc9\x5c\x9f\x9b\x96\x17\xd7\xd5\x49\x78\xc9\x31\x29\x75\x66\x14\x97\xac\xba\xc5\x45\x4b\xff\x97\x37\xa0\x08\x13\x12\x81\x64\x9e\x3b\x46\x11\x49\xf0\x4f\xbb\x61\x1f\x83\x0a\x22\x81\x9e\x9c\xb2\xc9\xc0\xeb\x1c\xed\x9f\x3f\xcc\x59\xc4\x7b\x76\xde\x65\x55\x15\xd8\x3f\x3c\x7a\xcf\x2a\x90\x31\x56\x21\xb8\xc3\xbc\xfe\x79\xe7\x5e\xa0\x0a\xc3\x08\x17\xc3\x3b\xe4\xf8\x10\xde\xf7\x53\x61\x1a\xe0\xa5\x75\x0d\xb0\xad\x5e\x9a\x91\x10\xae\x54\x51\x4a\xb0\x3a\xe7\x8c\xfd\x12\x55\xa2\x47\xe9\xbb\xc9\x43\xc7\x20\xd0\x83\x6f\xa0\x54\x17\x54\xa4\x52\x25\x29\xc8\xc0\x37\x18\xdd\xf3\x0f\x4f\x35\x37\xca\x6c\xab\x24\x53\x68\x56\x1f\xb7\xdf\x56\xcf\xcb\xe7\x97\xb5\x27\xe3\x97\x8a\x46\x29\x36\x69\x1c\xf8\x1b\x38\x44\xff\xd8\x76\x5d\x7c\x98\x99\x62\x9a\x4a\xe3\x54\x39\x55\x82\xbc\x79\xbd\x3a\x3f\x55\xd3\xbb\x4d\x13\xa3\x35\x74\x53\x9d\xea\x1f\xfc\xbc\x39\x16\xf9\x65\x4b\xfa\xff\xf8\xaf\x3b\x75\x46\x28\xfd\xbc\x21\xda\x88\xf9\x4e\xd8\x9c\xa5\x4a\x95\xc6\xec\x84\xa5\x41\x8e\xfb\x24\xab\xca\xc2\x2c\x1d\x7e\xaa\x85\xd6\xc3\xe4\x8c\xca\xe2\x38\xf4\x29\xcd\x8f\x1f\x90\x3b\x91\xad\xf1\x23\x67\x32\x48\x92\x41\x5a\xd5\xa7\xe8\xab\xba\x79\xcd\x8f\x93\x49\xc7\x03\x82\x22\xc1\xa6\x8c\x7f\xe8\xac\x79\x0f\x7e\x53\x3c\x8c\xf1\x23\xbe\xac\x7f\xe4\xcd\xeb\xe6\x0b\xf8\xf6\x2f\xff\x9d\x7f\x89\x3c\x22\x06\x4d\x83\xd2\x78\xeb\xe5\x63\x30\x79\x1a\x9e\x30\x39\x6c\x34\xdb\x45\x0e\xb0\xe1\xdf\x1b\x4f\x34\x82\x80\x8e\x9d\x89\xeb\x5c\xec\x11\x63\x82\xe2\x94\x62\xa3\xbc\xe1\x61\xbe\x5f\x3f\xec\xee\xd6\xf7\x6b\xbf\xb2\x04\x31\xbb\x86\xc8\xdb\x87\xaa\x9d\x7c\x2d\x41\x43\xb4\x5b\x95\xd6\x45\x5e\xc2\x33\xf0\xe2\xb0\x19\x68\x45\xcc\xd7\x5f\x95\x4c\x03\xbc\x64\x17\x19\x03\xc7\x8f\xb8\xb4\xc1\xc5\xa5\x0e\x90\xfd\x8d\xca\x8c\x40\xaf\xe7\x49\x0a\x48\xef\x43\x2b\x95\x19\xd1\x1f\x97\x41\x9b\x45\xee\x7f\x06\xa5\x9d\x5b\x3b\x3a\x0e\xb0\x0c\xa7\xaa\xce\x22\xf4\x3d\x12\x4a\x27\x31\xae\x18\xfe\x8e\x1c\xf0\x1a\xea\xda\x12\x57\x7c\x5d\x74\x56\x9a\x6a\x30\x62\xdd\xbc\x86\x6b\xc7\x7d\xea\x4f\x2b\x4d\x56\xae\x75\x6d\x3c\x03\xc0\x89\xd2\x4a\x22\x1a\x01\xa5\x3b\x16\xd7\xf7\xeb\x87\xf5\x66\xfb\xbc\xd8\x3e\x3a\x8b\x01\x24\x34\x12\x91\x58\x1c\xbe\xe5\x07\x70\x18\xd3\xd1\x3d\x00\x51\x09\xd6\x0a\x97\xbc\x9b\xad\x3f\xa7\x6b\x03\x82\x20\x0b\xac\x67\x76\x05\xed\x28\xd4\x9a\xdf\x02\x20\x50\x14\x91\x84\xc8\xe1\xe6\x73\x50\x10\x28\xc0\x0c\x12\x3f\x1e\xa1\xa7\x9a\xb3\x07\x43\x62\xd4\xee\x1a\x2f\x13\x68\x1c\xf0\x91\x65\x86\x90\x68\xec\x8c\x28\x4f\x45\x91\xeb\xb3\xff\x33\x70\xc4\xa2\xa1\xde\x3e\x3f\x0e\x56\x23\x44\x89\x32\x5c\x09\x80\x15\x92\xb1\xd2\xa9\x84\x38\x16\x18\x96\x96\xa7\xc3\xd2\x79\x5b\xfe\x98\x36\xcc\x69\x77\x2f\x77\x2f\xcb\xc7\xb5\x83\x0e\x41\x22\x79\x42\xfb\xd0\x6e\x17\x45\xee\x08\x0d\x4d\x0d\xb9\xd9\x2e\xcd\xd7\x9f\x7f\x3f\x94\x46\xb1\xe9\xef\x38\x1f\xdb\x6a\xc3\xf7\xfc\x1b\xd4\x93\x98\x0d\x68\x1a\xa6\xc4\x35\x44\xa9\xea\xbd\x5c\x37\x2f\x6e\x47\x85\x54\x46\x18\xf7\x6d\x4e\xf5\x4f\x38\xf7\x22\x0d\xee\xb0\xe6\xc9\x90\x23\x69\x9c\xd7\x9b\xa5\x76\x9e\xdc\x22\x8b\x35\x6a\x0a\x4a\xb7\xfb\x1b\x15\xf2\xfe\xe5\x30\x4a\x11\xf7\x50\xf8\x3f\xf0\x00\x41\xac\x82\x8b\x73\xff\xb7\x30\x53\x43\x3c\xca\xdf\xe6\x56\xd7\x17\x4b\x0e\x32\x0e\xa6\x8f\xaf\x06\x5e\xff\x76\x82\x7d\xd5\x98\x7e\x72\x87\x0d\x03\xae\x34\xf6\x66\x3e\x3e\xac\xfe\xf0\x7f\x83\xcc\x71\x24\x58\x45\x06\xd5\x99\x15\x47\xf6\x61\x6d\xdd\xf8\x89\x45\x98\xc5\x89\x2b\x40\x39\x55\x79\x54\x16\xfa\xac\xa4\x32\xa8\x1e\x81\xc8\x00\x83\xc7\xcd\x3b\x58\xc7\xf0\xae\xda\xe7\xf2\x57\xdb\xe6\x85\x92\x8f\x04\xc1\x59\x4a\x07\xed\x42\x2f\x65\xde\x85\xb5\x13\x86\x20\x90\x3c\x09\x33\x9b\xf1\xed\xec\xf7\x53\x0d\x03\x37\x15\x14\x09\x1d\x38\xf7\xe9\xb5\x0f\x95\x40\x85\x99\x69\x94\x75\x79\x9b\x45\xa9\x5c\x51\xc4\xa8\x11\x74\xf3\x76\xea\xc0\x80\x4a\x12\xc4\x63\x6f\x96\x9e\x6e\x5e\x82\xa2\x12\x3d\x12\xe8\xeb\x31\x4f\x50\xbf\x94\x79\x7f\x17\x5c\x23\x47\xea\x06\xb5\x98\xfe\xb2\x27\x39\x5f\xb4\x02\xa5\x53\x11\x0e\xd8\xab\x9b\x91\x64\xc2\x64\x30\xc4\x20\x82\xe1\x83\x3e\x54\x8f\xda\xdc\xe4\xb6\x42\xe8\xf7\xf8\x09\x41\xc8\xc8\x4e\x19\x74\x11\x6c\x7b\xea\x20\x94\x04\x4d\x20\x41\x04\x5a\xbe\xcf\x3f\x44\xd5\x9a\x4e\xe6\xf1\x65\x35\x0d\x12\x61\x01\xc0\x8e\x04\xa0\xaf\x02\x68\xc2\x62\xec\x12\xe9\x76\x54\xab\xc8\xef\x0e\x05\x21\xa5\xe8\x75\xe5\xa3\x90\x4e\x07\x40\xb4\x5d\x43\xf7\xbc\x3c\x8f\x2e\x7a\x39\x7d\x74\xd0\x6d\x1a\x4e\x7b\x1c\x39\x13\x0a\x58\x77\x6f\xff\xe0\x45\x3a\xfd\x48\x05\x96\xd7\xf9\x38\x61\xa4\xbe\x90\x00\xfe\xff\xf5\xaf\xbd\x74\x18\x03\x46\x18\x43\xf5\xd3\x5f\x6d\xcc\xf6\xa7\x71\x20\x59\x0f\x3d\xb0\x9a\xbf\x93\x6c\x91\x1b\x1a\x02\x32\x1c\xad\xb6\xdf\x9e\xef\xd6\x0f\xbf\xcf\xcf\x14\x1d\xa7\x46\x3e\xd5\x4f\x4f\xc7\x17\x32\x1e\x96\x50\x65\xf2\x47\x5d\x5c\x6d\x69\xa6\x9a\xdd\x78\x16\xe9\x24\x13\x86\x60\x5d\x56\xd1\xbd\x8f\xfd\x35\x4d\x02\x6c\xdf\x3a\x20\x15\xe3\xce\xba\xef\x21\x5e\xe8\xfa\x02\x74\xab\x29\x03\xac\x31\x8d\x24\x4d\x27\x8e\xeb\xe4\x21\x28\x08\xcb\xfa\xda\x2e\x51\x20\x66\x8c\x51\x9f\x0c\xd6\x01\xc2\xce\x45\x3e\x82\x52\x6a\xaa\x0d\xac\xec\x2a\x6f\xf7\x35\x77\x29\x07\x9d\x06\x04\xfb\x62\xf1\xc9\x27\x22\xb3\xe3\x1b\x4f\x05\xc3\x3e\xd6\x1d\x1f\xaa\x1f\x5d\xbc\x4a\x16\xca\xcc\x86\x43\xa8\x65\x34\xf0\xb6\xa7\x23\x23\x43\x27\x66\x42\x51\x87\x58\xfb\x8c\x88\xc2\xfd\x88\x1a\x26\xde\xa6\xad\x8e\x9d\x3d\x3e\x0e\xbb\x0f\x35\x63\x41\x10\x0c\xdf\xd4\x5f\x6b\x9b\xd1\x19\x61\x58\xfb\x6c\xa1\x69\x61\xff\x49\xb3\x93\x1b\xab\x22\xc8\x5c\x41\xd1\x68\x84\x83\x32\x92\x9a\x4f\xfc\x5c\x9d\xda\x6f\xbc\x71\x70\x25\x9d\x01\x47\xc6\x07\xf8\x38\xf2\x41\xa5\x43\xf3\x28\xc4\x16\x44\x2f\xe9\x36\x85\xf1\x4c\xbe\xaa\x88\x0d\x9a\x0c\xb3\xe2\xbd\x70\x81\xd4\x22\x51\x41\x3a\x44\xea\x1f\xfa\x1c\xcf\xe4\x14\x90\x62\x2d\xc7\x05\x0e\x3d\xcf\xc6\x27\x6b\x47\x26\x19\xd6\xc5\xf3\x52\x0e\x09\xc7\xc7\x6f\x4e\xa6\x80\xdf\xc3\x08\xe3\x7a\xae\x38\x2d\x21\x15\x96\xa1\xea\xa9\xae\xd4\x49\xb6\xab\x52\x55\x75\x83\xa6\x6a\x5a\xe8\x1e\xa6\xdf\xe6\x5e\xb9\x22\xc6\x29\xb3\xe5\x29\x57\x87\xd4\x8a\x65\x21\x1b\xea\x7b\x57\x23\xaa\x54\x0d\x3a\x44\xbe\x91\xfb\xea\xdf\x79\xeb\x9c\x0a\xad\xa3\x0c\xd3\xbd\x46\xb9\xed\xc7\x6a\xf5\xfb\xce\x9f\x51\x27\x51\x6a\x13\x79\xb7\x50\x92\xe5\x23\x4e\xa2\x61\x66\x4a\xeb\x84\x29\xed\x7c\x37\x4b\x76\xd2\xf8\xdf\xa7\x09\x76\x2b\x5d\xf1\xf2\x0d\xea\x1b\x5e\x1f\x7c\xea\x45\x6b\x19\x20\x27\xf1\xf3\xa9\x69\x72\x5e\x2e\xfd\x34\x51\x84\xa4\x12\x23\xb6\xc5\x7e\x9f\x9f\xca\x7d\x8e\x20\xd5\xd1\xf7\x53\x84\x88\x14\x37\xb1\x95\xa8\x46\xe5\x74\x45\x02\x4a\xb1\xe1\x7a\x65\xac\xd7\x1b\x94\x81\x3f\x24\x74\x68\x34\x07\xd5\xde\x95\xc0\x14\x09\x79\x6a\x14\x53\x2b\xb3\xe2\xed\x8a\x9e\x5d\xf8\xdd\x68\x85\x22\x63\xa5\x25\x8e\xb8\x3d\x0d\xda\xf7\xf1\x30\x72\xfa\x3a\x5b\xd6\x85\x4f\xcd\xa7\x0d\xbe\xcc\xfd\x4a\x29\x0c\x8e\x8a\xaa\x69\xb6\xd5\xd2\xd0\x95\xcd\xda\x3f\x45\xa2\x90\x23\xc4\xa9\xe0\x4d\xdb\x8d\x7c\xa8\xfe\xec\x5c\xea\xc1\x14\x51\x24\xe2\x09\x36\x00\xcb\xa2\x2a\x61\xd4\x6c\x33\x01\xcb\x2a\x12\x29\xa2\x86\x9a\xcf\x96\x96\x7e\x7c\xcd\x38\xe1\x08\x2e\x56\x95\xe1\xc3\xfc\x32\x2a\x52\x24\x4e\xc1\x6c\xe4\xd8\x6e\x6a\x2b\xca\x98\x54\x0a\xa6\x27\xb6\xa4\xd0\x7b\x2c\x25\x78\x54\xcd\x33\x2f\xf7\xfd\x3b\x4d\x08\x73\xc8\xfc\x61\x43\x84\x22\x49\xc2\x42\x9b\x9b\x47\x33\x33\xff\xc5\x12\x0e\x4e\x16\xc8\x02\xfb\xe7\x3a\x01\x15\xa1\x84\x63\xea\x4a\xf0\x56\xbe\xde\x8f\xb2\xfc\x9f\xbd\x3c\x4a\x99\x16\xae\xad\x6f\x8b\xf8\x0d\x7f\xd7\x94\xd3\x50\x3a\x15\xb3\xfa\x70\x55\x89\xeb\xbc\x06\xd9\x99\xc5\xbf\x4d\xce\xa2\x62\x64\x95\xff\x3d\x7f\xcf\x7d\xb2\xdb\x9f\x46\x0b\xdc\x41\x9e\xba\xe5\xf9\xbc\xfa\xb1\x78\xbe\xc6\x4e\xcb\xe5\xca\x8d\x48\xc1\x10\x36\xf2\x5a\xe4\x3a\x1f\xa5\xef\xed\x08\x16\x44\x38\xef\x7f\x0e\xba\x3e\xac\x1b\xa5\x48\xa6\x4c\xa8\xbf\x87\x36\x9a\xdc\x18\x57\x51\x38\xe8\x36\x54\x8f\x7a\xf2\xca\x04\x31\x60\x8c\xfb\xf5\xc3\xea\x79\xb3\xdb\x6c\x17\xbf\xfb\xdb\x12\x81\xc4\x39\x78\x77\xf7\x7d\x17\x05\xc1\x6e\x75\xbd\xde\xee\xfc\x52\x14\x12\xb0\xee\x6c\x02\xc3\xa2\x6a\xdb\x2a\xb8\xe6\x97\x4d\xa1\x73\xc6\x58\x11\x19\x07\x61\xd4\xa7\x0b\x78\xae\x26\x37\x26\x53\x92\x99\x3b\xef\x66\xa0\x69\xda\x7b\xcd\x8f\xee\xea\x52\x86\x10\xf4\xd5\xc8\xe6\xe5\x58\x54\xdc\x6f\x48\x8a\x48\x65\x04\xf1\xee\xab\xb2\x0b\x17\x5c\x61\x61\x7e\x7e\x41\x4c\x11\x7a\xbd\xf8\xbe\x58\xdf\x2d\xae\x30\x47\xf1\x7d\xbd\x79\x7c\x1e\x31\x2c\x2b\x02\x59\x08\x89\xaf\x84\xf5\x2a\x7b\x53\x3c\xa9\x1d\xae\xc3\x10\x9d\x35\x74\x9d\xac\xec\xb0\x0a\x08\x0d\xd1\x4d\x58\xf2\xa2\x30\x7c\xa9\x03\xe0\xe0\xd0\x39\x50\x01\x81\x08\x17\xed\x09\x65\x50\xdc\x09\x02\x4e\x51\x4d\x0a\xed\x3d\x36\xea\xbe\x3c\x6f\x9d\x6f\xae\x82\x40\x19\xd0\xc1\x4d\x55\xb7\xd0\xb3\xa8\xaa\x20\xcc\x24\xe2\xc7\x8e\x75\x5e\x5a\x96\x3b\x7f\x08\x0c\x56\x7d\x0f\x2d\xa2\x55\x46\x04\x09\x2a\x88\x43\x3a\xd2\xe3\x47\x47\xe8\x6b\x0b\x12\xc4\xcc\x88\x27\x23\xbc\xad\x6c\x6e\x78\x5e\xf8\xd3\x65\x49\x10\x5b\x97\xca\x08\xa6\x5e\xa4\x9e\xdc\x48\x41\x31\x63\xde\xf9\x44\x8f\x5e\xc7\x50\x05\xb1\x0a\x52\xe8\x8b\x4e\xb6\x1d\xde\x1d\x4d\x68\x8c\x99\xb6\x6f\x50\x57\x23\x5a\xd8\x2f\xa7\x64\x90\x30\x8a\x49\x7c\x51\x55\x6f\x3f\x00\xde\xbe\xe7\xcd\xa4\xe5\x4b\x05\x89\x8c\xd0\xff\x31\xbb\x12\xf9\x58\x1c\xfa\xf7\x9b\xc8\x04\xdf\xd2\x0c\xf3\x94\xff\xf8\x89\xe2\x68\x57\xef\x86\x8c\x44\x2a\xa0\x61\x8a\x3e\x18\x22\x2f\xb6\xaf\x79\xb3\x3d\xd5\xfe\x60\xaa\x38\xa2\x4b\xcc\x52\xf1\xfe\x27\xa8\x11\x57\x8e\x0a\x52\xcd\x39\x1b\x82\x33\xae\xf9\x79\xd5\xbe\xae\xcb\xcb\xde\x35\x15\x30\x12\xc7\xb6\xe4\x3f\x66\x05\x75\xc7\x93\xc4\x60\xb0\xcc\x35\xae\x81\xab\x22\x2f\xfd\xb5\x18\x8b\x98\xcd\x80\x2d\x4e\x6d\x75\x75\x3a\xf7\x47\x34\x62\x09\xe4\x66\x70\x6b\xcc\x06\xac\x9b\xa2\x9a\x2c\x92\x80\x81\xc4\x3a\x6f\x23\x79\x39\x5e\x06\x81\x1b\xa1\x09\xce\x24\x51\xf4\x9f\x38\x23\x29\x66\xa5\x90\x0f\x1b\x73\xfe\xee\x40\x18\x21\xbd\xee\x01\x54\x7e\x3a\xf4\x19\x3d\x15\xf0\x4c\xf2\xc0\x37\x57\x35\x8f\x25\xbc\x94\x25\x3f\xc0\x7c\x13\xb2\x0a\x44\x1a\x00\x1f\xe4\xa5\x86\xf2\x4e\x9f\xcc\x20\xc1\x19\x7a\x16\x4f\x50\x22\x2a\xe3\x54\x2a\xdb\x56\x35\x08\x82\x67\xbd\x88\x4f\x10\xc3\xe3\xd3\xab\x98\x99\x2c\x9b\xa9\xaf\x19\x5c\xd4\xbc\x80\xbe\x0a\x14\x8b\x5d\x45\xce\xa8\xb2\x54\x35\xf6\xe2\x4e\xaa\xdf\xe3\x67\x06\x09\x06\x6a\x9b\x97\xb0\xf4\x88\x02\x15\x00\x00\xb5\x1b\xf0\x0d\x8c\xca\x81\x2a\xd0\x01\x4d\xbc\xf2\x24\xef\x21\xdb\xee\xb7\x3a\x0c\x43\x5b\x3a\xb3\x13\xf7\xa6\x32\x91\x59\x0e\xcd\xc2\x43\x09\x1a\x3f\x3e\xcb\xb2\xc0\x75\x8a\xfb\x7e\x0d\x6c\xc7\x9e\xc3\xe3\xaa\x90\xe8\x28\x25\x96\x5b\xa4\x54\x05\x2c\x4a\x35\x4b\x7a\xa6\xc2\x20\x60\xa9\xdd\x28\x1d\xd2\x7b\x88\xf5\x54\x61\x10\xc6\x38\xad\x1d\x93\x97\xfb\x73\xac\xb5\xbe\xb8\xa5\x3b\x5f\x77\x56\x61\xc0\x53\x44\x10\x2e\xf2\xba\xe1\x3f\x87\x66\x37\x0c\x13\x8e\x6e\x32\xfc\xe7\x94\x1f\x0f\xa6\x9a\x8e\x0d\x2c\x37\x00\x28\x67\x74\x2c\x72\x6f\xd9\xc2\x90\xa6\x81\x85\xf7\x7c\x4d\x61\xe8\xc6\x4b\x82\xd1\xfa\xe6\x76\xf5\x54\x83\xe7\x8a\x56\x61\x14\xa5\x4c\x0c\x19\x4d\x97\xa6\x09\xf3\x9e\xe7\x85\xa8\x3e\xfc\xb0\x18\x42\xe2\xb2\x9e\x87\x23\x2f\xcf\x73\x2c\x1a\x2a\x8c\x20\x11\x86\x76\xed\x3f\x27\x68\xda\x47\xd1\x85\x09\xcf\x55\x5f\x50\xf9\x0b\xa0\x48\x15\xc6\xb1\x96\x6a\xa4\x0b\x83\xe6\xd1\x7c\xd1\x60\x88\x81\x51\x61\x0c\x06\x77\x6b\xfc\x8b\xc5\xd5\xc6\xdd\x72\x22\x0c\xdf\x83\x28\xf2\x52\x1a\x99\x48\x7f\x08\x0c\x30\xc3\x84\xa7\x36\xce\xf9\x67\xec\x48\xd3\xfe\x19\x52\xeb\x33\x85\x34\x66\xca\x11\xec\x2c\xbf\xd9\x26\xfa\x78\x34\xb3\x43\x2a\x39\xb8\x70\x8c\xe7\xe5\x27\x9b\x54\xb7\x37\xe2\x4a\xbb\x85\xd6\x52\x36\xcc\x80\xca\x54\x48\xb5\x44\xbc\xfd\xa6\xac\xde\xaf\xb8\x83\x33\xab\x90\xa5\x06\x9a\x39\x24\x52\x59\x94\x6a\x08\xad\xf9\x4b\xea\x29\x2a\x64\xca\x04\x7b\x06\xbf\xea\x8d\x75\xc8\x40\x27\xc1\xa7\x59\x39\x3b\x28\x93\x01\x7a\xe2\xf7\x8e\x4b\x4c\x85\x3c\x34\xbc\x9c\x65\x85\x0a\x38\x93\xe7\x11\x36\xa2\xe8\x1c\xff\xaa\xae\xab\xf7\xe7\x19\x20\xe8\xe4\x0e\x05\x03\xaf\xa9\x50\x55\xc5\x73\x65\xb2\x7c\xd7\x50\x70\xb7\x81\x84\x32\x0b\x45\x30\x20\x54\x40\x65\x65\x7e\x38\xf2\x7c\xef\xd7\x94\x14\xa6\xc8\xba\xb3\xb4\xc9\x5f\x34\xd6\xa9\x50\x05\x0a\x3b\x45\xf6\x55\xa5\x1e\xf2\xfd\x6b\x8b\x79\xef\xa7\x3a\xef\x3d\x9c\x50\xc5\x1c\x61\x3f\x16\x43\xb8\xdb\x7b\x92\x29\xd5\x45\x76\xb8\x43\xc9\x82\xe7\x87\x45\x81\x79\x83\xce\xb7\xaa\x1d\xd1\xfb\x65\xaf\x8c\x0a\x15\x64\x49\xe8\xc8\xf8\xac\xa9\x71\x64\x65\x93\x91\x3a\xa4\x76\x4d\xdc\x22\xea\x7f\x28\x43\x67\xc7\x40\xa4\xd1\xdf\x41\xa2\xde\x2e\x16\xbf\x64\x1a\x52\x21\x24\x86\x94\x16\x59\x62\x27\x87\x84\x21\x49\xf0\xb9\x92\x11\xa4\x7f\xfe\xb5\xe9\x30\xc2\x1c\xaf\x21\xcf\xc5\xb4\x94\xb3\xd1\xa1\x4e\x44\xc0\x5d\x69\xbc\x7b\x36\x18\x4a\x98\xd8\xa6\xe6\xc9\xe9\x84\x46\xc0\x4a\x9b\x1f\xa0\x29\x6d\xf2\x42\x45\x24\x61\x40\x06\xb3\xff\xb9\xfb\x40\x63\x3f\xc0\x8d\x04\x89\xe9\xe8\x1d\x72\x99\x0c\x88\x20\xc6\xf7\x1d\x05\x59\x82\x16\x6d\xe7\x54\xf8\xcc\x67\x42\x27\x68\x72\x53\x51\x94\x26\x58\x1c\x7f\xde\x3c\xdd\x6d\x77\x6e\xe2\x47\x11\xd3\x86\x5b\xd7\x34\x49\xf5\x25\x3a\x15\x45\x19\x41\xaf\x40\xe7\xa5\xba\x1a\x88\x56\x4e\x6e\x22\x02\x82\xc9\xa9\x63\xbf\x5d\x20\xda\xd0\xf4\x37\x36\xfe\x6c\x5a\xa0\x6b\xf3\x94\xb7\xf9\x80\x2a\x42\x45\x71\x10\x60\x40\xe9\x9c\x0f\xa7\xb9\x63\x2e\xe3\x41\xb6\xbe\xc7\xcb\x20\xa5\xdc\xd5\xe3\x28\xc5\xdc\x68\x23\x79\xd1\x6d\x34\x83\x72\x79\x77\xd0\x30\xe5\xe2\x7e\x7d\x5d\x57\x47\xac\x83\x98\xdc\xe7\xd0\x29\x8d\x62\xc9\x11\x8e\xb0\x7d\x45\x25\x64\xf7\xe7\x24\x11\x6e\x0d\x77\x2f\xc0\xb7\x4c\xd9\xc3\x34\x30\x74\x58\x9a\xe7\xc5\x86\x6b\xb8\xaf\x14\xf4\xc7\x24\x26\xf7\xc4\xa9\xee\x36\xc0\x25\x3f\xa2\x2c\x87\xd9\x09\xa6\x16\x29\xa2\x71\xa4\xa8\x2b\x72\x6d\xf2\x7d\x17\x27\x5c\x9d\x91\xfe\xed\x13\xe5\xaf\xc9\x47\xa0\x9c\xa5\x5e\x59\x88\xcb\xc2\x89\x87\xda\x93\x0c\x6d\x7d\x94\x32\x86\xc8\x66\x7d\x6a\x4f\x35\x58\x5a\x84\x6e\xb7\xee\xec\xd4\x08\xd2\xab\xa2\x0c\x38\xc6\xc5\xdf\x6e\xb7\xee\x4f\x3c\x0c\xd0\x54\x1a\xab\x52\x20\x64\x1e\xca\xeb\xaa\x28\xb8\x7f\x33\x9c\x19\x35\xde\x9a\x4b\x70\x34\xef\x2a\xe2\x2a\x8e\x60\xc8\x1f\x63\x65\x34\x87\xa5\x82\x91\xc1\x88\x44\x0c\x92\x7b\x80\x8e\xd9\x6b\x02\xa3\x3c\x36\x7e\x7e\x15\x2b\x4c\x87\x3c\x3d\xfe\xb8\x77\x97\xeb\x36\x55\xd1\x4b\x02\xe3\x9b\x9f\xae\x0a\x88\x29\x1a\xbc\x36\x3f\xf6\xb9\x5f\x15\xe9\x40\x62\xb7\x21\x0a\xc2\x2f\x8c\xea\xcb\xec\x8e\x18\xe9\x38\x8e\xb4\x4b\xaa\x5c\x75\x36\x42\x56\xb5\x1a\x7a\x5a\x91\x56\x04\x99\x07\x56\xdf\xef\x37\x48\xab\xe0\x74\x1b\xcc\x64\x75\xbb\x41\x4c\x82\x34\x51\x03\x6e\xf5\xc7\xb2\xfb\x5f\x50\xcb\x7e\x07\x8d\x09\x23\xc2\x79\x8c\x35\x60\x83\xb2\x6d\x4c\xf8\x34\xe4\x8f\x09\x67\x92\x79\x8d\x0c\xf7\x35\xe2\x20\x4c\x31\x19\xba\x5c\x3c\x7c\x5f\x6c\x76\xdf\x56\xeb\xdb\x6f\xee\x23\xc7\x61\x66\xb0\xa1\x3b\x8e\xef\xdc\x56\x89\xed\xc1\x28\x30\xba\x79\xd7\xbc\xe5\xe6\x79\x37\x6d\x7d\x9a\xd2\x63\xaa\x38\x0e\x4d\xda\x04\x43\xc4\x11\x86\x42\xc5\x49\x1a\xe3\x06\xde\xd9\x88\x25\x14\x17\xbd\x0e\x6e\x98\xcc\x84\x85\x45\x2d\x8a\x62\xfb\xda\x45\x8c\xe5\xbe\x3f\x0b\x24\x2e\x5b\xb6\x68\x5b\x5b\xfc\xb9\x03\xdd\xde\x54\x75\xef\x20\xc6\x14\x04\xee\x50\x26\xd3\x8e\x74\x49\xe3\x32\xb3\x8a\x53\xc9\xb3\xd8\xb3\xf6\xa1\x56\xf1\xd9\x64\x17\xb7\x35\xc0\xc6\x2b\x0f\x5f\xa6\x26\xff\xf9\xaf\xbf\x54\x5d\x53\x71\x16\x18\x20\x2a\x37\x09\x9a\x02\xb8\xa7\xd1\x50\x71\xc6\x0c\xa1\xd0\xa9\x99\x6e\xf1\x6e\x80\x32\x45\xa0\x03\xff\x18\xfa\x10\x31\x07\x8a\x90\xcc\xbc\x41\xce\x08\x2b\x55\x37\xfe\xad\x08\x14\xba\x6d\x8d\x7c\x05\x75\x2a\x60\xa8\xc1\x35\xbe\x47\x19\x48\x04\x40\x7f\xf0\xd3\xb6\x5a\x9d\xfc\xed\xc9\x40\xe1\x86\xdb\x9c\xcb\xa1\x0c\xb9\x8a\x25\x4b\x0d\x41\x90\xd1\xbc\xc0\x94\xfa\x14\xff\x36\xfd\x77\xc0\xcf\x34\xfa\xdf\x3e\x09\x18\x2b\x15\x22\xb7\xe7\x66\xb5\x7c\x7c\xb8\xde\x6d\xd7\xab\xe7\xdd\xf5\x7a\xb3\x7c\x7c\x79\xf0\x73\x14\x68\x82\xf9\xcc\xb2\x42\xbe\xac\x75\xb3\xc0\xed\xdb\x1f\x4e\x23\xa3\x8f\xdb\x99\x53\xb5\x1d\xb8\x9c\xbf\x04\xcd\x7d\xf6\x3d\x2f\x8b\x76\x2a\xd6\x41\x80\x2c\x3e\x7d\x87\x42\xe7\x1c\x8e\x35\xc1\xdd\xd0\xd0\x70\xf9\x35\xd0\x5a\x6d\x03\xf6\xf7\x71\xeb\xb2\x8a\x75\x1c\xa0\xe5\xfc\x56\x15\xfc\xd5\xb5\xe6\xa8\x84\x24\xca\xf2\xd9\xb7\xbc\x30\x76\xf0\x51\xdb\xa4\x88\x67\x83\xb6\x48\xe1\x01\xd0\x4e\x25\x44\xa9\xd8\xb8\x53\xf9\x1c\xe4\xed\xa2\x52\xad\x92\x90\x50\x26\xbd\xd4\xea\xd5\xa9\x2e\x3d\xcf\xc8\xe8\xc9\x93\x90\x52\x62\x28\xdc\xa0\xf3\xc1\x6f\x78\xb9\x7c\x3d\xb9\x89\x91\xc4\x69\x8c\x5d\x5a\x05\x6f\x5a\x97\x92\xb4\x87\x12\x9b\x90\x41\xe2\xde\x71\xdb\x9b\x4a\x68\xa0\x6d\xe2\x11\x63\xfe\x0d\xc8\x53\x9d\xb7\xe7\x39\xc2\x69\x95\xd0\x24\x42\xe7\xec\xc8\x4f\x13\x24\x86\x4a\x28\x35\x65\x2c\xe7\x6e\x3d\xea\xa7\xea\x7d\xea\xbc\x26\x34\x4d\xb5\xf1\xd5\xa0\x46\x9a\x05\x5f\x1e\x56\x09\x55\xc0\x86\x65\xb7\x3f\x9f\xff\x18\x7f\xd1\x84\x25\x04\xd1\x36\xde\x77\x19\x67\x3a\xdc\xc7\x4d\xfe\x35\x9e\x34\x09\xa3\x11\x5e\x95\xef\x79\xde\x94\xed\xee\x67\xd5\x7a\x8f\x33\x61\x82\x2b\xe6\x13\x4e\xb6\x4b\xf6\x1e\xf9\x41\x2e\x09\x08\x54\xc2\x24\x8b\x87\x6e\xe5\xed\x69\xde\x96\x26\x4c\x59\x59\x06\x68\xef\x0c\x6f\xd5\x7c\x32\x37\xc9\xa2\x20\xe2\xbd\x94\x49\x39\xf5\x20\x92\x8c\x09\x4c\x01\x6c\xa1\xe4\x65\x7b\x5f\xfd\x84\x75\x39\x19\x01\x0a\x33\x50\x3b\xae\xd4\xe6\x74\x84\x7a\xda\x6e\x6e\xc7\x09\xc9\x0c\xa5\xdc\xa9\x54\xa0\x9e\x7a\x26\x67\x95\xc8\x84\x59\xce\xb6\x96\x7c\xa0\xcd\x31\x87\xc7\x27\x50\x61\x88\x29\xe0\x02\xb9\x03\x64\x7e\xd1\x82\xa1\x92\x6e\x3b\xc7\x49\x52\xbd\xef\x02\x32\x3d\x48\xb5\x30\x85\x0f\x44\x62\x0e\x66\xa9\xe2\x31\xca\x77\x74\x47\x4e\x2d\x3c\x63\x2e\x6d\x04\x1f\x73\x03\xa5\x89\x7f\x50\xd8\x02\x9d\x93\xc7\x9f\x17\x37\x01\xd4\x88\x81\x60\xda\x73\x51\x96\x27\x6e\x3b\xf0\xdd\xe5\x20\xa5\x98\x0b\x42\xb8\x43\xe7\x1f\xdb\x1c\xc7\x97\x69\xb8\x04\x58\x8c\x69\x38\xc3\x99\x3b\x5e\x00\xc0\x35\x36\xe4\x2e\x8b\xbc\xcc\x25\x2f\xb6\x75\x3e\xe8\x29\xfc\x4b\xb6\x6e\x9c\x81\x49\x40\x66\x81\x29\xcd\xe4\xea\xd3\x3d\x84\x12\x6e\x28\xc3\x45\xae\x1e\xcb\x4d\xde\xcd\x8a\xb9\x66\x87\xfe\x07\x41\xc0\x4c\xc7\x26\xf2\x2b\x1a\xd3\xf9\x52\xbe\x56\x85\xba\x9e\x01\xd6\xbb\x1f\xb1\x48\x18\x3a\x77\x5b\x66\x1b\xec\x24\xdd\x82\x73\xff\x61\x87\x87\x41\x82\xaf\xf7\x77\x5e\xf3\xb6\x0b\x2b\x07\x21\x08\x0d\x03\x8e\x15\x16\xcc\x1e\xfe\x00\x78\xbb\xa9\xfc\xd6\x47\xc3\x40\xe1\x5a\xc5\xda\xa9\x6d\x69\xf4\x87\x00\xab\x51\x5c\x29\x5f\xba\xff\x1a\x08\xd4\xfd\x46\x63\xbf\xc9\x3f\x5e\x1e\xa6\x58\x85\xd3\x54\x20\x43\xd1\x30\x31\x3a\x12\xa2\x6d\x9b\xe1\xbe\x4b\xc3\x8c\xa1\x33\xb1\x43\x7a\xbb\xb6\x2d\x5c\x34\x3d\xae\xcb\x8f\xff\x19\xbf\xc1\x50\xea\xc0\x42\xab\x96\xbc\x44\x2f\x73\x7e\xa7\xee\x8d\x0d\x0d\x75\x42\x0c\x81\xcd\x87\xe5\xbe\x33\xc0\x09\x67\xbc\x68\x44\x42\x74\xd8\x0a\xd0\x6d\xc6\x26\x33\x23\x8a\x93\xc4\x38\x0b\xb5\xb5\x3e\x98\x6b\xba\xc4\x0d\x28\x1a\xc7\x46\x7d\xf1\x8f\x04\x8b\xd2\x5f\xc0\x3a\x14\x8d\x45\x84\xef\xa2\xbb\x66\x90\x4c\xae\x19\x0b\xc0\x1a\xf7\x6f\xfc\x30\xfc\xe4\xb1\x24\x06\xaf\x54\x00\xaf\xaf\x4c\x89\x7d\xb4\xb4\xba\xad\xc5\x32\x94\x61\x5a\xdb\xea\xb0\x8e\x4f\x4e\x29\x64\xa6\x9a\xd9\x36\x46\xa5\x76\xe4\xfa\xd3\x54\x48\xd3\x8c\xea\x42\x1e\x77\x80\xc5\x12\x89\xcf\xdb\x3a\xdf\xef\xa7\xc6\x82\x32\x90\x38\x1f\x4b\x78\x47\x85\xf1\xd1\xd3\x32\xad\x43\x39\x02\x51\x62\xc0\xd8\x53\xf4\x56\x55\x31\xb6\x12\x94\x87\x02\x23\xbe\xbb\xbb\x31\xab\xd7\x6c\xd0\x45\x79\xa8\x10\xf1\x7d\x55\xe4\xe5\x20\xbb\x4b\x39\x33\x98\xfe\x16\xf8\xc1\xb8\xa8\x43\xe6\x59\x45\x45\xa8\x52\xe5\x70\x87\xb2\x9d\x24\xaa\xc6\xd7\x10\x31\x41\xa4\x19\x92\xf1\x3e\x1b\x21\x78\x7f\x9e\x84\x63\x2d\x11\x37\xf5\xcd\xbb\xeb\x57\x51\x54\x48\xc5\x3c\x5c\xc1\x98\x1e\x47\xc0\x38\x79\x92\x2f\x79\xac\x14\x15\x8a\x21\x31\xd0\xb1\x73\x9b\xc2\x09\x4d\xae\x42\xce\x62\xda\x2b\xb1\x6d\x8e\x5c\xc2\x68\xf1\x09\x6d\x0a\xb6\xa6\x3a\xb1\x2a\x7b\x3b\xe5\x8c\x2f\x15\x9a\x63\x8e\xb1\xad\xf6\xfb\x02\x9c\xf7\x32\x58\x49\x32\x02\x43\xd1\xde\x99\x6e\xa3\x38\x75\xea\x35\x5e\x15\x95\x22\x23\x43\xf2\xd9\x39\xb6\x17\x45\xa5\xa2\xb4\x97\x48\x7e\xf9\xfd\x76\xf5\x13\x3e\x2b\x79\x50\x15\x9b\x06\x85\xcd\xd5\xba\xb3\x80\x93\x53\x29\x96\x60\xfd\xfc\xfb\xcb\xdd\xe8\x61\x55\x16\x60\x72\xec\x78\x6a\x5e\x2d\xca\x6c\x72\xda\x8c\x3a\x2b\x68\x85\x12\x67\xa3\xd1\x4f\xbe\x85\x12\x81\xc9\x6f\x7e\x7b\x79\xb8\x7e\x76\xfd\x6b\x8a\x42\x6a\x18\xcf\x6c\x9a\xf2\xfe\xd4\x22\xf7\xee\xa2\xf3\x36\xd5\x6f\x95\xb0\xfa\x2c\xe6\x52\x4e\xd2\xf8\xaf\x6c\x6e\xec\x42\x40\x5c\x51\x60\x89\x34\xca\x67\x4d\xcb\x8b\xe2\xda\x0a\x46\xcf\xfb\x47\x14\x04\x67\xf1\x50\xe9\xa5\xb3\xf9\xf6\x13\x4f\x36\x61\xaa\x49\x8a\x68\x31\xde\xbc\x99\xc4\x8c\x7d\xbe\x94\x28\x43\x81\x87\xcb\x58\x3f\xd5\x15\x42\xfb\x46\x17\x4a\x09\x10\x04\xfb\xec\x2c\xa5\xee\x4f\xde\xf2\x89\x07\x95\x06\x91\xc2\x8f\xfa\x27\xd4\x75\xf5\xc7\xa8\xd6\x9a\x06\x52\x63\xf6\x26\x6f\xae\x1d\x93\xc2\xc8\xd9\x4e\xc3\x38\x20\x66\x80\xf1\x5b\x4a\xb8\x24\xd7\xb2\x43\x23\x92\x60\x36\x70\x55\xd6\xf9\xe9\xf0\xeb\xad\x2b\x8d\x42\x85\xb0\x04\x03\x2f\x83\x4b\xb9\xad\xf1\x68\x41\x39\x35\xbc\x65\x79\xf7\xad\xc1\xa5\x3c\xd2\x38\x4a\xb0\xe8\xf6\x8f\xf5\x66\xf3\x39\x19\x9b\x4a\x63\x05\x99\x72\x30\xa2\xaf\x93\xf3\x69\x12\x10\x44\xe3\x3a\xbf\x7d\xd9\xa3\xd0\x10\xa1\x37\x7f\x85\x24\xa6\x58\x18\xda\x61\x9a\xae\x5b\x69\x6b\xbd\xac\x0e\x87\x2b\x5e\x14\x93\x76\x1b\x95\xd2\x2c\x43\xe4\xa7\x38\x9d\x67\x19\x87\xed\x30\x16\xa6\x48\xf4\xb6\x5e\x3e\x3e\xac\xff\xcf\xd1\xa1\x3c\xac\x56\xd7\xab\xeb\xdd\xd3\xea\x79\xb7\x7e\xf8\xbe\xda\x6c\x57\xd7\xbb\x1f\xab\xb5\xff\x51\x02\x58\x67\xb4\x01\xe0\xd5\xf3\xea\xfe\xe9\x93\x7b\x66\x9d\x89\xb0\xb0\x75\xd3\xbf\xd1\xf9\x37\xf3\x3e\x55\xca\xa4\x8e\x8d\xa7\xdc\x0e\xec\x6e\x9a\x45\x46\xd3\x7a\x27\x4e\x75\xf9\x0c\x07\x53\xd3\x9b\x61\xfa\x51\x29\x0f\x12\x6c\x91\x35\x39\x37\xd3\x40\xbd\xfa\xb8\x68\x92\x74\xa3\x63\xb0\x7c\x82\x9d\x07\x37\x4e\x3d\xa6\x3c\xa3\x86\xeb\x92\x17\xb0\x2e\x71\x81\x0c\x8f\xaa\x10\x81\x65\x06\x6f\xec\xec\xeb\xc8\x79\xb5\x23\x45\x9c\xa2\x86\xf7\xd5\xcb\xdd\x9d\xfb\xb5\xe4\x1c\x99\xd4\x8c\x92\xce\x63\xdd\x79\x31\xfe\x18\xa4\x18\x2e\xfc\xfe\xe3\xd9\xa5\x1a\x52\xa5\x28\x12\x18\xa1\x98\xf8\x03\xbc\xdf\x54\x35\x48\xde\xfc\xa2\x6e\x19\xb8\xb9\x00\x5a\x87\x62\x48\x64\xd0\xce\x5b\x96\x54\x33\x05\xa6\x57\x59\x9b\x36\x9b\xbb\xe0\x09\xea\x80\x10\x7b\x23\x8c\x24\x86\x97\xac\xd2\x1a\xea\xab\x56\x5e\xcc\xf3\xd1\x24\x64\x84\x5a\x35\xf2\x66\x8d\xdd\xc5\x98\x22\x5a\x97\x34\xfe\xdb\xa0\xdb\x58\xb1\x80\x48\xe4\xa0\x84\x43\xde\x76\x01\xff\x17\x9b\x08\x0b\x88\x22\xa1\x87\x68\x6c\xa0\x44\x4e\x32\x77\x7f\x41\xa2\x10\x68\x6d\x88\x2f\x07\x9f\x81\x05\x9c\xe2\x2b\x07\xd5\x4d\x85\xd2\x35\x69\x29\x16\x58\x4e\x8b\xba\xaa\x0c\x57\xf8\xa3\xc6\x06\x8b\xcf\xae\xaf\xa9\x21\xac\x30\xb3\xf9\x9a\x9f\x1f\x35\x4e\x69\x7b\x3c\x8c\x35\x56\x89\xf1\xfe\x56\xdb\x6f\xc3\x06\x66\xc5\x42\xc9\x2d\x5f\x30\xae\xc2\xc9\xf4\x65\x11\x64\xd8\x5f\xfe\x8f\xeb\x6f\x86\x95\x78\xb6\x27\xc7\x0f\x16\xf8\x2d\x6e\xf2\x02\x46\xe2\x3c\x8a\xc5\x81\xc9\xe2\x20\x01\x5d\xf3\x0a\xb5\xd3\xe7\xb1\xc7\x93\x54\x20\x36\xe6\x2a\x6f\x0f\xbc\x69\xbc\x3c\xe1\xc0\x78\x33\x1a\x98\x36\xd9\xe6\x24\x0e\x79\xbb\x69\xb9\xbc\x58\xb6\x9f\x07\x6f\xde\xcf\x60\x34\x00\x54\x69\x3b\xf0\x92\xef\x2d\x9d\xe9\xba\x7f\x21\x54\x65\xb8\xf3\x1d\x0b\x7e\x46\xe1\x0b\x9d\xcb\x6d\x9d\x1f\x0b\x98\xef\x92\x52\x2c\xcd\x64\x9a\xf6\x71\xf1\x03\x7c\xb4\x9b\x73\xd3\xc2\x01\xb7\x8e\x5e\xc7\x5b\x31\x96\x30\xc7\x82\xb1\x35\xe0\xe7\x49\xb1\x8f\x31\x69\x26\x85\xea\x36\x5c\xff\xbb\x2c\x0b\x30\xb1\xe7\xfb\xf5\x8f\xfe\x88\x08\x39\x19\x76\x8f\xfc\xdf\x89\x97\xad\xa1\xc2\xbf\x68\x8f\x51\x2c\x03\x86\x2e\xbc\x81\x3f\x9b\xc0\xf2\x13\x0c\x0c\xe3\x71\x80\x52\x30\xbb\x1a\x3c\x33\xa0\xcf\xc9\x30\x9e\x46\xe8\xc8\x4f\x78\x8c\x5a\xf8\x68\x77\xbe\x17\x6b\xe4\xa7\x33\x9e\x49\x0c\xf4\x30\xc2\xb0\x9a\x81\x37\x35\xc0\x7f\x2f\xf2\xb3\x4c\xd0\xc4\x75\xae\xfd\x66\xf8\x73\xc6\xb3\x56\x64\x24\xb1\x5c\x34\xbd\xb2\x67\xb1\xdb\xf3\xe9\x03\x0b\xcd\x31\x19\xa9\x6a\x9e\x97\x9b\x7b\x87\x23\x60\x32\xe4\xa0\x5c\xf6\xe1\xa9\xf2\xf5\x04\xd6\x99\x08\x0c\x9d\x78\xbd\x87\xa6\xfd\xf6\x78\x7d\xb7\x7a\x1e\x1b\x62\xa6\xb4\x09\x84\x1e\xe0\x7d\x44\x65\xeb\xad\x0c\x50\x43\xeb\x67\x27\xf9\x84\x61\xfa\xef\x73\x20\x0b\x06\x2c\x35\x25\xf5\x9f\x86\x9e\xd4\xfd\x39\x33\xc1\xcd\x5d\xb5\x7f\x29\x5d\xd0\x34\x71\x45\x98\x26\xa1\x22\x6e\x89\x23\xaa\xe2\xc9\xac\xb3\x39\xaf\x64\xf0\xb3\x80\x28\xed\x80\x54\x7d\x85\x9d\xe9\x20\xc0\xd6\xeb\xd5\xcf\x81\x12\xbb\x62\x1a\x22\x2c\x29\x19\xc5\xb6\xe7\xe6\x47\x35\x38\x04\x18\x21\xdd\x6f\x3c\xb0\x35\x23\x32\x15\x3d\x9a\xdf\x02\xe7\xc7\x37\x9e\x05\x2c\xc0\x36\xc9\xa7\xbc\xd0\x50\x5f\x4e\xc5\xbf\x4f\x86\x4b\xc3\xd0\xde\xb4\xd5\xf1\xd6\x95\x91\xb3\x30\x55\x58\xb2\xb2\xdf\x60\x5b\x6d\x8c\xa0\xfb\x57\xcd\x17\x2a\x0b\xb5\xf1\x78\xae\xb6\xcb\x34\x21\xa4\x2a\xe3\xcc\x9d\x30\xe2\xa6\x1e\x78\x05\x2d\xf9\xd8\xf7\xc9\xbe\x4f\x3a\x11\x47\xdf\x31\x8b\x24\x37\x8a\x20\x2e\x88\xba\xf6\x3b\x69\x96\x10\x8a\x2a\x43\xef\x2e\x37\xe2\x05\xcb\xdd\x80\x30\x0d\x59\x2f\xcc\x5e\x35\xbc\x98\x83\x46\x0f\xb7\xf3\x2c\x89\x04\x86\x23\x6f\x70\xb6\x52\x3e\xee\x80\x4e\xcc\x26\x8b\xdc\x20\xbc\x76\x3b\x42\xc6\x02\x85\x6a\xdf\x7d\xcb\x19\x80\xea\x02\xf5\x2e\x7a\x80\x9a\x7f\x0a\xef\x9c\x4d\x9b\x64\x4c\x07\x38\x45\xbb\x0d\x84\xd7\x25\x2f\x9e\xc1\x50\x9f\x5c\xc8\x82\x5d\x22\xe0\xec\x29\x32\x9a\x20\xac\xd5\xc6\x36\x3f\x5e\xa1\xec\x79\xb8\x54\x96\xa5\x4c\x1a\xde\xda\x72\x7f\xea\x77\x8d\x2c\x63\x84\x9b\x2e\xdb\xc3\x13\x3f\x6f\xb9\xe8\x01\xdc\x19\x8f\x2c\x1e\x3c\x1f\x65\x51\x33\x1e\x29\xac\x6c\xe7\xcd\xf2\xd4\xb4\xd5\x01\xea\xbc\xbc\xba\x9b\x8f\xca\x33\x4e\xb9\xad\x97\x23\x8f\x7a\xa9\xaa\xda\x61\xa0\x33\x41\x02\x62\x8d\xf9\xae\x81\x52\x41\x6d\xd0\x4a\xa2\x8b\x24\xc7\x6f\x48\x08\xe6\xa8\xd6\xb7\xef\x00\xd3\xa2\x6b\x26\x40\x90\xc4\x02\x46\x96\x8f\x83\xa0\x38\x93\x54\x25\x4e\x93\xcd\x41\x95\xfc\x3c\x95\xa9\xc4\x0e\x21\x0f\x76\x58\x3c\x6e\xb0\x87\xe7\x54\xc3\xb4\x2d\x65\x6c\x73\xbe\x02\x6a\x65\x92\xc7\x7a\xd8\x61\x08\x6a\x5b\xb9\x92\xca\xe8\xde\x74\xe2\x70\xa0\xc3\x7d\x3a\x53\xa1\x4a\x87\x81\xfa\xd6\xa7\x47\xe6\x3d\x98\xac\x73\x27\xa3\xc1\x0f\x7a\x9e\xd8\x5b\x68\xdb\x69\x85\x22\x53\x3c\xa5\x48\xfb\x51\xe6\xff\x31\xe0\xb1\x90\xb9\x6c\x62\x06\xdd\xfa\x33\xb1\xf7\xe2\xa4\xf2\x29\x27\xec\xe4\xfb\xea\xc0\x74\x00\x98\x72\xba\x69\xbf\x9a\x53\x45\x57\x99\x8e\x49\xe0\x94\x76\x86\x22\x43\x93\x51\x9a\x20\x86\xf2\x68\x89\x4f\x7b\x55\x5d\xc5\x09\x89\x24\xf4\x84\xcd\x3d\x82\x7c\xfc\x78\x9c\x24\x29\x35\xf7\x04\x7f\x56\x07\x91\xc3\x73\x55\x4c\xe2\x04\x4e\x32\x85\x5d\xb3\x9b\xd5\xdd\xdd\xea\x79\xb7\xfc\xb6\x5a\xfe\xbe\xdb\x6c\x57\x4f\xe3\x98\x8b\x07\x41\x18\x9a\xd2\x95\x02\x38\x4c\x0f\xc6\xa1\x11\x4e\xcb\x0f\xdd\x9d\x1e\x8e\x8f\x1a\x57\xec\x88\x1e\x58\xf1\x90\x98\x5c\x99\x2d\x08\x80\xa9\xc1\xfb\xa3\x91\x0e\xed\x7b\xb9\xcb\x9b\x76\x0b\x87\xa3\xa3\x10\x73\x23\x38\xe1\xce\xda\xb8\xdc\x68\x37\x8b\xdc\x27\xe3\x11\x91\x99\x95\xc1\x47\x36\xd5\xf1\xeb\x88\x93\x0c\xeb\xe2\x9a\xbf\xc1\x6e\xda\xdc\x33\x3b\x9f\x78\x0c\x14\x43\xbc\x23\x86\xed\x03\xf1\x72\xc5\x13\x02\xf8\xcc\x5c\xa9\x6b\xe8\x35\x1d\xe6\xb6\x47\x9e\x28\x86\xbb\x38\x0a\xe1\xa3\x11\x1d\x25\xbb\x79\xa2\x20\x95\x7d\x46\xab\xee\xbd\x7e\x9e\x68\x8d\x10\x9e\x12\xde\x7f\x0c\x84\x6d\xbe\xec\x1b\x56\x9c\x42\x88\x09\x02\xec\x6f\xb6\x11\x38\x22\x7d\x8f\x9f\x6a\xf7\xdb\x5f\xa6\xc4\x60\xc4\xc0\x78\x55\xc3\x94\x2b\x4f\x03\x4d\x2d\x62\x60\xd5\xb4\xf9\x81\xb7\xf0\x28\x8a\x7c\x3f\x48\x14\xf9\xf3\x30\x4a\x1d\xb1\xf2\xa2\xad\x0e\xcb\xa9\x4e\x33\x73\xe3\xb2\x30\xb5\x7d\x83\xb6\x92\xb1\x9a\x22\x50\x38\xa7\x86\x2a\x68\x73\x2e\xa0\x47\xdb\x71\x0e\x80\x71\xea\xb5\x8b\x25\xb9\x8c\x4c\xab\xc9\xb1\x3a\xae\x3e\xba\x6f\x36\x1c\x2e\x33\x86\x7d\xca\xc3\x8a\xc2\x14\x2d\xc4\xa5\x56\x98\x1b\xcf\x4b\x67\x0a\xbb\x5d\x13\xa6\x3c\xd8\x8a\xab\x54\x23\xe5\x89\x25\xc9\x9f\x64\x7f\xb8\x62\x09\xf3\xe6\xde\xb0\x30\x3e\xd5\x70\x93\xd7\x4d\xeb\x85\xa2\x15\x57\x20\x70\x87\xcf\xcb\xbc\xed\x4c\xd5\xa9\xcc\x5b\x14\x70\x9b\xcc\x5c\x48\xd3\xd4\x36\x70\xfe\x9e\x97\x7b\x55\x1d\x9c\x6a\xc6\x0d\xc0\x94\xb4\x59\x71\x10\xd2\xad\xa4\x6d\xcd\xf3\x11\xe9\x9b\xe2\x00\x06\x14\x26\x4e\x67\xab\x4a\x73\x53\x57\x87\xcb\xe2\x1e\xd7\x90\x20\x55\xa8\x06\xd8\xbc\xf2\x6e\x5a\x5f\x1d\xdd\x5a\x14\x24\x96\x48\x91\xf1\x78\x84\xf2\x47\x5e\xaa\x3e\x7f\x3f\x3f\x25\x05\x61\x71\x64\x41\xe1\xbe\x92\x72\x31\x15\x9d\x72\x91\xbb\x59\x41\x84\x88\xfa\x6e\xd8\x59\x0d\xe2\xaf\x93\xa0\x82\xe8\x50\x9a\x6e\x47\xf9\x76\xdb\xed\x2f\x7b\x18\x24\x89\x44\x40\x52\xdc\xc4\xc5\xe9\x8c\xe2\x07\x16\x8c\x39\x6f\xe5\x45\x90\x2a\xb4\xdd\xff\xae\xf2\x72\x57\x8f\x5a\xe0\xec\x88\x30\x61\x71\x30\x10\x3d\x9a\xdf\xa8\x44\x98\x5a\x91\x19\x54\x1b\xf9\x91\xff\x97\xd7\x93\xd6\x25\x11\x0a\x86\x59\xea\x12\x3e\x10\xd2\xd9\x0b\xa4\x28\x11\xd1\xd0\x40\xa3\xaa\xc2\xc3\x2f\x3e\xb9\x52\x1c\x28\x2c\x4d\x57\x25\xe6\x21\x7b\x73\x2c\x12\x95\xc5\x46\xb5\xad\x40\x3d\x5a\xbf\x18\x58\x5f\x5a\xa3\xff\xfa\x6a\x83\x17\x34\xce\xd0\xbf\x37\x9f\x07\x69\x60\x1c\x0b\xcc\xf8\x2e\x52\x06\xe8\x9e\x23\xfa\xf5\xd7\x34\x31\x4a\x64\x89\xc1\xd0\xef\x72\xcb\x60\x31\xfa\xf6\x6e\x10\x0d\xb4\x49\x48\x7c\x83\x8f\xb1\xaf\x6e\x47\x70\x48\x25\xed\xb7\x4a\xe4\x4b\x6c\x73\xd3\x6f\x7b\x99\x35\x13\x22\x50\x08\x9f\x68\xf8\xcf\xbc\xdc\x37\xbb\xbd\x17\x8f\x52\x02\xa2\x50\xc6\x7e\x55\x29\x40\xee\xd3\x4b\x01\x29\x25\x80\x1b\x20\x59\x37\xd3\x0d\xc9\xea\xe5\xc3\xfe\x8f\xff\xba\x33\x03\x84\xae\x1c\xde\xc2\x61\x7b\x3e\xc2\x5a\x5d\x9d\xbb\x7f\x17\xa5\x5a\xab\xd9\xdd\x47\xe8\xd8\x08\xd3\x3a\x12\x89\xff\xfe\x52\x93\xe4\xeb\x25\x25\x09\x07\x23\x5c\x8d\x09\x42\xd3\x25\x84\x02\x03\xff\xdb\xd2\x94\x41\xc0\xd1\xeb\xcc\x9b\x67\xe0\xea\xbc\xad\x6e\x10\xb6\x3b\x19\x94\x71\x66\x50\xb4\x1a\xb6\x13\x95\x50\xe4\x1d\xfb\x05\xd2\xc8\x9d\x86\x0b\x64\x8b\xe5\x65\x59\x9d\x4a\x09\xbb\xce\x08\xf4\xe8\xfe\xf1\xbc\x96\x01\x18\x80\x82\x73\x5c\x79\x29\x61\xf3\x0a\xd3\x42\xa6\x74\x04\xf6\x9d\x47\xf2\x0c\xdd\x42\x9a\xfd\x04\x32\x04\x88\xc1\xf5\x80\xee\x7b\x89\x7e\x7b\x38\x0a\x0c\x9a\x0f\xbb\xdc\x4c\x33\x5f\xb7\x20\xd1\x80\x6c\x5e\xab\x53\xcf\xe3\x62\x94\x33\xc7\x8d\x75\x32\x12\xb1\xa3\x05\x5d\xbe\x72\x54\xcb\xae\x1f\x4e\xff\xe6\x93\xab\xc4\x81\x32\xaa\x64\xbc\x5c\x16\x55\x03\xdf\xab\x6e\xc9\xfe\x04\x5e\x18\xbe\x94\x51\x65\xfa\xe2\x95\xc4\x61\x04\xd4\xeb\x57\x9b\x84\xcf\xa8\xec\x22\xe3\x30\x45\xbe\xf7\xe3\xa9\x28\x30\x05\xd8\x7d\x26\xaf\xa8\xa0\x5b\xa8\x0d\xee\xc2\xb0\xd9\xf4\xbf\x12\x61\x2f\x93\x31\x90\x41\x98\xcf\xe3\xca\x98\x65\x68\x60\xc5\xe9\x7c\x75\xee\x5c\x8b\xc9\x53\xd2\x90\xa3\x93\xb8\x1b\xb3\xc8\x3f\xb9\x2a\xe0\xc5\xce\x24\x69\x9c\x60\x66\xa7\x33\x10\x26\xfc\xf8\x22\x35\x29\x69\x22\x99\xc5\xce\x3c\x5a\x2d\xa2\x25\x2f\x0a\xc1\xe5\xdb\xed\x34\x69\x24\xd3\x98\x18\x4d\x65\x68\xa1\x3e\xe4\x25\x3c\x9e\x5a\x59\x1d\x3e\xdf\xc3\xfa\xa0\x48\xa6\x42\x22\xaa\xdc\x54\xc7\x2f\xc4\x46\xa6\x4b\x77\xfc\x4c\xa9\x8a\x8d\x80\xb7\xfd\x4e\xf9\x3e\x2f\x8d\x2d\x5a\xab\x9b\xaa\x5e\xb4\xaf\x28\x66\x37\xff\xe3\x2c\x0c\x79\xe6\x73\x07\x3f\xf3\x81\x0f\x2e\xb3\xc8\x14\x70\x97\xd5\xe1\x88\x20\xce\xc0\x1f\x89\x13\x64\xe7\xda\xee\x61\x18\x26\xcb\x2e\x34\x32\xba\xd8\x46\x69\x70\x78\xe3\x31\xb1\xff\xd8\xb1\x3c\x00\x04\x5c\x89\x22\x7f\xf3\xf3\x8a\x47\xa6\x99\xe9\xea\x74\xde\x80\x8f\x17\x24\xcf\x82\xd8\xfa\x31\x96\xe3\xd2\x1e\x10\x91\x44\xae\x8f\x75\xb3\x2e\xf3\x76\x81\xbd\xe7\xfe\x58\x06\x59\xbf\x61\x99\x20\x62\x32\xc1\x20\x21\x0a\x7a\x86\xf4\x4f\x51\xe2\xf3\x76\x46\x87\x1c\xd9\x9b\x76\x5c\xa9\x3b\xd8\xe7\xed\x4c\x5b\x87\xd4\xb1\xc2\xa4\xa4\x4b\x68\xe5\x12\x0c\xc9\xd8\x78\xc9\x69\x6a\xdc\xc3\x3d\xb4\xdf\x0d\xfe\xf1\xcb\x99\xa9\x15\x49\x4c\x13\xd6\xa8\x15\x4e\x11\x12\x23\xec\xaf\x73\x24\xc6\xf3\x53\x11\x91\x48\xe1\x3b\xf2\x9e\x3b\x97\x72\x7c\xab\x8a\xa8\x0c\xf1\xad\xbb\xdd\x81\x7f\xec\x76\xf3\x19\x5e\x15\x44\x46\xf4\xda\xf4\x4b\x3a\xfe\x6d\x77\x30\x33\xa4\x06\x56\xb1\xf5\xde\x64\xcb\x5d\x2a\x73\x76\xa7\x53\x81\x22\x8e\x2b\xf5\x01\x3e\xba\x9b\xb3\x4e\xa6\x3d\x1e\x12\xf3\xac\x77\x8f\xb7\xbb\xcd\x09\x51\xe4\xfa\x54\x5c\xd7\xfc\x7d\xde\x0d\x52\x61\x60\xa0\x7c\x3e\x53\xf5\x7b\x59\xbd\x17\xa0\xf6\x68\x52\x27\xaf\x25\x4c\x05\xd3\x4e\x11\xa7\x69\xeb\xea\xec\x05\x46\x27\x23\x23\x6a\x3a\x71\x2d\x3c\xd7\x6a\xcb\x7d\xc5\xed\x73\x91\xc0\x72\x67\x62\x19\x45\x6a\xd7\xd7\xea\xfd\xc7\x2b\xf7\x6d\x06\xee\x89\x23\x05\xda\x66\x76\xb6\x87\xe3\x8f\x3a\x6f\x61\x9b\x1f\xa0\xe9\xc2\xed\xf9\x4c\x83\x8a\xb4\xc6\x62\x7a\xde\x6c\x8e\x55\xd9\x54\x35\x17\x05\xfc\x56\x09\x27\x4c\x72\x11\x0a\x4e\xa2\x21\x15\x93\x08\x0d\xc1\xf6\xf1\x29\x20\xbe\x52\xa6\x62\x22\x5d\x7d\xfd\xbe\x3c\x6f\xf3\x29\x27\x94\x52\x49\x0a\xa6\xba\xae\x40\x56\xca\x58\xd5\xf5\xf4\xdd\x25\x60\xc0\x6c\x47\xde\x34\xdb\x6a\x34\xb3\x02\x87\x9e\xbd\x70\x3c\x27\x6f\x8d\x46\x31\xf2\x06\xe9\x53\x51\x0c\x0b\x24\x8a\x46\x29\xba\xfd\x06\xbd\xb1\x7c\xde\x7c\x32\x2f\x68\x94\x62\xc2\x5b\xcc\xf9\xa4\x6e\x4c\x4a\x92\x5e\x21\xee\x2b\x66\x5a\xf7\x03\xa9\x45\xd0\x73\x5d\xb7\x27\xd5\xd3\xbb\xb8\x21\x5a\x60\x4d\x44\x9a\x1e\x00\xa4\x86\xf0\xb6\x4d\xa5\x84\xa7\x13\x8a\x00\x2e\x5b\x4c\xdf\xb8\xf7\x30\x3a\x5b\x9a\x1a\x11\x0e\xac\x9e\x1b\x9c\xfa\x4d\x55\x9b\x4d\x1a\xcd\xe6\xe4\xed\xa4\x42\xa4\x89\x7f\xa2\x01\x82\xc0\x1d\x97\x9c\x6a\xd7\xe2\xda\x42\x0d\xcd\x3c\xd3\xb5\x52\xa9\x96\xe8\x15\xef\xac\x33\xd8\x6d\x73\x63\x61\xa6\x91\x5b\x11\x4f\x7e\xce\x94\x42\x8c\xa9\xe3\xbd\xcc\xab\xd2\x18\x86\xbf\x5c\x8f\x1b\xdf\x78\x16\x6b\x61\x1d\xb7\x2b\xde\xc0\xaa\x7d\x5d\xf2\xe3\xe4\xe1\x32\x08\x70\x07\xd7\x00\xea\xa5\xcc\x65\x55\x4f\x60\x96\x4a\x10\x82\x46\xdc\xe0\x2b\x4e\x67\x13\xc9\xfd\xb5\x3b\x10\x49\x84\x00\x33\x9c\xf3\xbd\x4c\xe0\x27\xd3\x4f\x82\x49\xd1\xb9\xc6\x94\xeb\xbc\xa9\xde\xcb\x87\xaa\x75\xae\x2e\x6a\xa3\xd9\xc1\x9d\x31\x96\x3e\xc7\xd8\x4e\x55\x8c\x95\x52\xa1\x8a\x32\xdf\x50\x57\x9d\x6a\x09\xc8\x67\x34\xec\x78\x0e\xfc\xe0\xcc\xb0\x7b\xb5\x5e\xcb\xcc\xe4\x10\xdd\x61\x11\x25\xc4\x37\xd9\x42\xd3\x54\xf5\x79\x03\x75\x0e\x43\xd1\x6b\xa5\x80\xc6\x06\xc0\xe0\x52\xae\x3b\x71\x1e\x81\x89\xe7\xf7\x49\x05\x2c\x42\x76\x05\xab\x37\x51\x3a\xba\x6f\xa5\x20\x0b\x90\x95\x10\x01\x01\xde\x0d\x76\x7e\xfa\xf8\x2c\x3a\xe2\x88\x89\xb8\x32\x08\xce\xdd\x66\xfb\xe0\x4e\xa3\xa5\xd6\xdc\xb1\xbd\xf0\xa2\xb9\x83\x72\xef\x04\xf3\x14\x90\x50\x60\x46\x45\x14\xc0\x6d\xdc\x12\x84\x06\xe2\xea\x6b\xf7\x40\x12\xc6\x52\xf7\x0a\xda\x7c\xb0\x10\x6d\x27\x52\x29\xf9\x78\x59\x43\x18\x1a\xd9\x81\xeb\x47\xd7\x21\x03\x51\x4c\xc0\x76\xb8\xae\x8a\xaa\xdb\x63\x07\xd2\x14\xa3\xd5\x00\x11\x8b\x43\x5f\x17\xc3\x1c\xb2\x71\xd6\xe6\x27\x0f\x44\x2a\x53\x89\xe7\x22\xb8\x3e\x97\xfc\xe0\xfd\x6a\x88\xc3\x80\x59\xe7\x01\x4f\xb7\x1b\x6a\x23\x29\x88\x99\x11\x1b\xb1\x28\x49\x03\x4b\xb0\xc7\x12\x4e\x9c\xbc\xf3\xe6\x3f\x27\x5e\xc3\xa2\x86\x49\x30\x01\x89\xa6\xce\x42\x98\x5c\xe6\x7d\x5e\x40\xd3\x56\xe5\xb4\x52\x0c\x69\x98\x71\x4b\xf6\x05\x75\x3b\xd4\xcb\x75\xd7\x4b\x53\x86\x89\x3c\xbc\x09\x03\x3e\x1b\xa2\x9a\x9d\x3f\x04\x29\x4b\x90\x6b\x6d\x75\xbd\x0d\xdd\x6f\x19\x97\xca\x97\xa6\xdc\xaf\x46\x6e\x14\x30\xae\x49\xd0\xfb\x12\xb7\xfc\xd0\x37\xce\x01\x93\x1a\xb7\xfa\x67\x9e\x2b\xc7\x2c\xff\xab\xa0\x7c\xfc\x7c\x0c\x08\x56\x2c\x6f\xd6\x7e\xf2\x01\x03\xa1\x23\x67\x8f\xa7\x42\xa0\xd3\x9f\x1b\xba\xcf\x7b\xe8\xde\xe2\x42\xa9\xcb\x7d\xd9\x8e\xcc\x22\x23\xc8\x6c\x7d\x7a\xc7\x65\xd3\x4e\x5c\x36\xc8\x68\xa4\x4c\x58\x6d\xd7\xbd\xad\x90\x8f\x4e\xeb\xdf\x0e\x8f\x00\x5b\xe3\x8c\xfd\xbe\xc9\x4b\x69\x27\xb9\xd1\x0b\xa8\xdb\x7c\x26\xc6\x1e\xbf\x60\x11\xc5\x28\xc6\x88\xe2\x20\x8d\x37\x25\xfe\x1d\x8b\x18\x8c\x38\x73\xf5\x7e\xcf\xcb\x09\xc6\x11\x44\x9a\xa5\xd2\xcf\x24\x43\x6f\x38\x9d\x43\x42\x30\x2b\xdc\x6d\x62\x3a\xac\x8f\x35\xe7\x1e\x72\x3b\xab\x11\xa3\x40\x2a\x20\x30\xe4\xca\x2e\x30\x72\x2d\xa1\x98\x78\x2c\xa0\x12\xdb\xde\x0d\xed\xb2\x2a\x3e\xa1\x5f\x56\xa0\x44\x8a\x2c\x11\x47\x7e\xee\x5c\x52\x73\x56\xbf\x45\x4e\xc6\x82\x69\xe2\xe9\x6c\xfb\x38\x62\x07\x10\x41\x6c\x65\x50\x9f\xfa\x86\x33\xd0\x4c\x28\x07\x03\x36\xad\xd2\x46\x64\xde\x1f\xd7\x09\xee\x96\xfb\xfc\x27\xdc\xc3\xa6\x3a\xc0\xd5\xd5\xcb\xf2\x77\xe7\x23\x6a\x12\x67\x3a\xb5\x9c\xec\x4f\x50\x47\xfe\xef\xc2\x94\xe7\xb1\x61\xde\xc8\x06\x2c\x3f\x55\xaf\x50\x9a\x28\x0b\x8f\x01\xa3\xed\x79\x5d\xb5\xcb\x2a\x2f\xc5\x20\x49\xe0\x46\x76\x56\x68\xf0\x7e\xf1\x83\x8c\x28\x4e\x66\x23\x4c\x1d\x28\x8e\x51\xe4\xed\x07\x1a\xf7\xbb\x29\x2f\x9f\xd2\x01\x00\x6a\x88\x7a\xbd\xdf\x53\x03\x46\xfa\x6c\x64\x70\x75\x48\x0d\x7f\xbc\xfd\xf5\xd4\xfa\xe8\x50\x85\x3c\x74\x9c\x61\xe6\x26\x6f\x39\x12\x67\xbf\x5e\x34\xb8\xeb\x50\xa7\xb8\xf5\x94\x55\x9b\xeb\xf3\x16\x43\xf6\x8b\xfc\x9e\x8e\xa4\x40\xef\x6e\x0b\xfc\x70\x9d\x37\xff\x39\xf1\xe2\x52\x15\x5b\xe9\x98\xc7\x24\x72\x62\x2d\x2d\x4e\x96\x61\xfb\x98\x4e\x22\x86\x06\xda\xfe\x0a\x49\xf9\x27\x81\xa2\x4e\x52\x8a\x4b\xf9\x9e\x9f\x45\xe7\x5b\xe9\xaa\x3e\x60\xee\xc6\x9f\x44\x1a\xb0\xb7\x49\xfd\x74\x13\x7b\xc0\x27\xa2\x69\x6c\x20\xcc\x0f\xf0\x7e\xcf\xcf\xd5\x45\xaf\xbe\x1b\x46\x49\xe0\x74\x42\xf3\x12\xa1\xef\xd0\xb4\xe3\xfe\xfb\xbf\x8f\x5e\x01\xcd\x0c\xea\x2e\x5f\xf2\x7a\x39\x92\xe4\x9d\x69\x22\xd0\x54\x0b\x14\x2b\xc9\x9b\xab\xbc\x3a\x40\x5b\xe7\xb2\x67\x67\x1f\x99\x12\xcd\xa2\x08\x9b\x32\x86\x34\x16\x0f\x55\x69\xc0\x84\x2a\x6f\xc4\xc9\x92\x25\x62\xea\x7d\xd6\x4e\x6a\x96\x72\xcc\x0a\x1b\x8b\x66\x79\x89\x06\x15\x9c\x69\xdf\x88\x66\x99\xd1\x50\xac\xab\x93\xa9\xe5\x28\x04\x46\x8d\xef\x2c\x0b\x35\x9a\xf4\xba\x0b\x61\x2b\x35\xfa\xe2\x93\x1b\xe0\xb1\xa1\x70\xba\x85\xf6\xbe\x73\x86\x9c\x21\xd4\x5c\xc4\x5a\xf6\x0d\x78\xea\x07\xe4\x4b\x8f\xc0\xd2\x22\x0e\x52\xab\x00\xf2\x5c\x15\x85\x69\x3a\x19\x43\xc5\x86\x4d\x9d\x97\xab\x4a\xc4\x81\xe3\xbc\x71\x26\x69\x58\xbf\xd3\x42\x71\xcc\xd0\xec\xb8\x52\x0f\x37\x5f\x00\x7e\xb5\xd0\x86\x4a\xae\x81\xd6\x44\x13\x9e\xb9\x69\x3a\x2e\x43\xde\x37\xc4\xa7\xa3\xb6\xea\x24\x43\xf1\x95\xab\xac\x25\x70\x09\x3e\x0d\xb2\x69\x3b\xcb\xbe\xb7\xd0\xc6\x20\xb1\x83\x54\xa8\x31\xff\x7b\xf4\xc2\x42\xcf\x20\xf3\x63\x0e\x65\xeb\xed\x9b\x4a\x19\x16\x26\xf1\xf4\x4d\x5b\xfb\xbf\x77\x3e\x2e\x06\x59\x55\xa1\x4e\xef\xe5\xcb\xd3\xc8\xa1\xd0\x90\xc4\x18\x09\xac\xff\xef\x66\x88\x3b\xd0\x40\x53\xab\x6b\xd3\x4d\x33\x2b\x60\x8a\x19\xcc\xef\x50\x9f\xef\xaa\x72\x7f\xdb\x33\x7b\x68\xe0\x86\x42\xf4\x88\xe3\x90\x80\xd8\xbf\x72\x1d\xa6\xc4\xe8\x12\x94\xaa\x7a\x37\xc4\xa2\xa3\x00\xd2\x8d\x83\x08\x5c\x63\xa2\xf9\x22\x37\xc1\x4d\xf8\xc9\x7a\xd5\x96\xf0\xf8\x90\xff\x3f\xd6\xde\xad\xbb\x55\x1c\x6b\x17\xfe\x2f\xfb\x6a\x5d\xf4\x85\x00\x01\xe2\xbb\xb3\x1d\x27\xf1\xae\x24\x76\xd9\x4e\xad\x55\xfd\x8e\x1e\x1e\x3a\x4c\x25\xbc\xc1\xe0\x06\x9c\xc4\xfd\xeb\xbf\xc1\x94\xc4\xc9\x24\x55\x3d\xc6\xbe\xe9\xd5\x15\x09\x0c\x42\x87\x79\x78\xe6\xf3\xe4\x03\xb2\x05\x20\x24\x88\x10\xa1\x59\xd5\xe5\xbe\x58\x9f\x9a\xb3\xb2\x18\x4a\x4b\x00\x21\x31\x47\x4e\xe7\x53\x2a\xdf\xac\x8a\x54\x55\xf5\x90\x24\xa3\xba\x59\x20\x84\x2b\xa4\xdb\x59\x2d\xd6\xa8\x4b\xd7\xc5\x5b\x2e\xdf\x01\xcf\x81\x10\xa5\x1c\x3b\x18\x9a\x76\x98\xfe\x1c\xcc\x20\x20\x1e\x0d\x8d\xa5\xc4\x33\xb9\xdc\x2f\xea\x62\xb1\xde\x8e\xbb\xb0\x08\x27\xa3\x38\x5f\x9c\x20\xc0\xd4\xac\x05\xe2\x27\x0a\x5d\x2f\xb0\x03\x8c\x8b\xe0\xdd\x65\x70\x80\x50\x1a\x21\x9b\x36\x77\xc2\xac\xd7\x04\x3b\x40\x68\x14\x22\x84\x64\xde\x18\x02\x66\x93\xfa\xd1\xe6\x25\xbf\xc9\xbc\x8f\x9e\x85\x0a\x6a\xcb\x57\x2b\x79\x06\xe4\x9d\x72\x8f\x11\x25\xc4\x61\x37\x67\x59\x36\x08\x96\x01\x89\x00\x70\x4d\xac\x4f\xe7\x0c\xf2\xba\xa8\x5c\x43\x4c\x18\x22\x7b\x54\x5a\xa1\x96\x77\xfb\x77\x2f\xc4\xe8\x9a\x4b\xc1\xe5\xcb\x4f\x6b\x6c\x54\xa3\x37\x8b\x3d\x8e\x86\xf8\x2b\xaf\x5a\xe2\x7f\x2b\x98\x73\xd5\x95\x1b\xb4\xc7\x23\x7f\x83\x1b\x9e\xfe\x57\x0c\x42\x40\x62\xa1\x31\x4d\xd5\xf7\x38\x80\x30\xe2\x3b\x65\xdc\xa7\xf3\x71\x0b\x2f\xe7\x8c\x3b\xf2\x9b\xe2\xdc\xe7\x6b\x19\x3e\x0b\x0b\x98\x01\x94\xf3\x66\xeb\x1d\x11\x08\x01\x61\x5a\xea\xa0\xe5\x29\x30\xd4\x60\x95\xa3\x29\xab\x7e\x0c\xf7\x7a\x20\x89\x47\x30\x0d\xbd\x92\x85\xe3\xd6\xeb\x24\xcb\x2a\x87\x63\xed\xbf\xe7\xb5\x1e\x3b\x90\x24\x94\x68\x57\x42\xae\xb6\x5c\x6b\xe7\xa2\x03\x49\x38\x20\xcc\x1f\xea\xd7\xe6\xc3\xda\x58\x67\xdb\xaa\x7c\x34\x75\x6d\x3d\xe1\x04\x7a\x13\x08\x67\x46\xb0\xf2\xa5\x31\xa6\x4d\x81\xde\xf4\x0c\x13\x84\x8a\x96\x50\x68\xef\x24\x9c\x47\xa3\x23\x88\x31\xa3\x56\x45\xfd\x33\xd5\x69\xdd\xdf\x2c\x44\xa8\x1c\xb7\x97\xd9\xe2\x56\xb9\x2e\xe6\x97\xa9\x6a\x28\x20\x92\x18\x01\x07\xb3\xb2\xb0\xee\xd8\x68\x17\x8d\xba\x05\x60\x20\xec\x25\x57\x80\x8b\xfe\x9e\xe7\x2a\xfb\xda\x20\xbc\xfa\xef\x71\x16\x6a\xf8\xd2\x52\x18\xcd\x8c\x0f\x5b\x49\x5a\xbf\x76\xbb\x28\x10\x15\x11\x2c\x82\xe4\xe7\xfa\x15\xf2\x3a\x45\x51\xd1\x0e\xe1\x08\x44\x25\x06\x39\x55\xa0\x97\xb1\x32\x09\xd1\xe1\x34\x55\x89\x44\x6d\x10\x67\xd2\xfe\xda\xac\x46\xfb\x91\x92\x14\x99\x31\x10\xec\x0a\xf5\x32\xd7\x45\x29\x61\x0b\xef\x69\x85\xae\x8b\xed\x06\xbe\x87\xbb\xb4\xdd\x65\x86\xf7\x00\x01\x96\xd9\x47\xbe\xf1\x17\xe8\x1d\xd3\x40\xb4\xa7\x22\xd1\xca\x32\xe0\x97\x41\xd6\x9f\x2f\x98\xd0\x81\x68\x46\x12\x8b\x61\xd8\x9f\xb3\x74\x18\x0e\xf6\xdc\x4f\x6a\x29\x63\x1b\x40\xde\xc9\xa2\xfc\x6a\x13\xd5\x4a\x21\xb6\xfa\x84\xc1\xf1\x61\x25\xca\xb0\xab\x47\x38\x45\xd7\x71\xf9\x38\xe0\x90\x04\xcf\xf3\x05\x82\xaa\x67\x50\xc2\x75\x41\x53\x7f\xba\x7b\x1e\x17\x89\x8d\x35\x2c\x96\x0a\x6a\x9e\x66\xc3\x3a\x2f\xf0\x82\x20\xe0\x8e\x3b\xdd\xa6\xa3\x7e\x82\xa8\xd2\x5e\x90\x70\x70\xcb\x20\xa6\xdc\x1f\x94\xf7\xe1\x4c\xf5\xbf\x41\x0e\x82\x17\x00\xc1\x4c\xee\x1f\xe9\xa7\xc7\xba\x6a\x56\xf0\x42\xc1\xd0\x78\xc5\xab\x6f\xcf\x99\x4e\xb3\xec\xd8\xab\xe1\xf8\x1f\xbf\x33\x28\xd9\x28\x68\xdd\x6b\x73\x77\x03\x40\x26\x6c\xc7\x58\x3a\x08\xf2\x83\x17\x45\x42\x58\x7a\x00\x03\x2f\x48\xff\x33\x34\xb9\xc0\x8b\x84\x46\x09\x8a\x5b\xcb\x8c\x84\x91\x29\xcc\xa4\xb4\xb9\x43\xf0\x22\x19\x0b\x4b\x26\xb7\x4f\xe5\x5b\xff\x36\xd3\x7b\xb6\x17\xfb\x21\x6d\xf9\x17\xad\x5a\x66\x8f\x24\xd4\x3d\x60\x4c\x23\x3c\xbb\x6c\x59\x91\x4d\xa6\x77\xcd\x09\x0b\x8d\x02\xa9\xb2\xc0\xa8\x49\xc1\xd0\x2f\x9e\x81\xc5\x09\x68\xab\xf7\x65\x42\x6c\x50\x3a\x75\x3d\xf0\x92\x48\x63\xa8\x5f\x15\xad\x88\xaf\x6b\xb1\x1c\x9b\x2f\x60\xb2\x6d\xd5\xc0\xdb\x06\x2f\xe1\x26\x31\x8d\x61\x51\xac\x38\x46\xb7\x76\xb8\x75\x79\x89\xd0\x86\xed\xc5\xa6\xda\x7f\x16\x65\xa6\x16\x45\xe9\x0a\xe0\xad\x28\x6d\xfb\x8f\xbb\x4c\x46\xca\x52\x2d\xee\x61\x52\xe3\x7c\x22\x72\x09\x5e\xa2\x05\x38\xc6\xfe\x43\x65\x6d\xe7\xe1\x15\x6d\x4f\x53\x08\x7d\x4c\xf3\x1d\x26\x7d\x4e\x3d\x8d\x4d\xdb\x87\x53\x81\x19\x8a\xca\x05\xc6\xc0\xe3\x91\x8f\x95\xff\x98\xd8\x18\xd0\x8f\x81\xc7\x21\x09\x04\x1a\x4a\x88\x35\xd8\x82\xe4\x59\xb6\xe0\xa7\xb4\xfe\x22\x50\x0d\x9e\xa0\xcc\x90\xca\x37\xde\xe7\xbc\x28\xde\xda\x39\x2b\x04\x33\xdc\x91\x50\x3f\x6f\x57\xd3\x4b\x52\x32\xc6\xec\xbc\x5e\xe6\x8d\xf9\x32\x3f\x5f\x66\xb9\xc2\xd4\x5b\x6f\xda\x4a\x68\xc1\x53\xbf\xc1\xa5\xbf\x29\x7a\x8a\x04\x91\x74\xb9\x50\x9c\x59\xae\x3e\xe5\x8b\x07\x56\x3a\xc4\xc4\xe5\xa9\x28\xb2\x4e\x75\xa2\x6d\x4c\xd0\xa6\x78\xd8\xaf\xdd\x9f\x20\xf2\xd0\x38\x1c\x8a\xfb\xef\xfa\xa3\x0c\x92\xe2\x33\x98\x50\xdd\x20\xa2\x0c\x9e\x0e\x79\x6c\x73\x86\x08\x7e\xb0\xf2\xca\xc3\x39\xa6\x39\xb8\x4e\x8f\xfc\x73\xce\x6b\xf9\x6a\xf2\xd3\xb8\xa3\x0c\x5f\x40\x4b\x1f\x4c\x92\xd8\x01\xa0\xd0\xf6\x9d\xd0\x1b\x00\x4f\x83\x8f\xa6\x1d\x82\xeb\x26\xcd\x28\x9f\xc4\xe0\x40\xe6\xcd\x54\xe8\x85\x22\xc0\x27\x2c\x11\xbe\xdb\x61\xa1\x8f\xb3\xef\x00\x09\xe0\x13\xa0\xe8\x26\x2f\xb2\xe2\xac\x7e\xb5\xd7\x42\xcc\xe8\x08\x2a\xf3\x63\xf4\xd3\xda\x1c\xcb\x2e\x7a\xb7\xa9\xe0\xac\x8a\xc6\xf7\x70\x37\xf1\xfc\x18\x79\xb4\xb6\xb3\xfd\x12\x19\x89\xfc\xb6\x25\x4a\x02\x07\x79\x92\x05\x02\x55\xd6\x39\x58\xce\x92\x54\xc2\x2a\xdf\x14\x8d\x8f\x06\x68\xf0\x0e\x46\xc5\xf7\x22\xed\x52\xa6\xf6\xb5\x16\x59\x51\xa5\xf9\x0b\xae\x85\x51\x5f\xce\xb1\x12\xc7\x90\x3e\x5c\xd3\xc2\x83\xef\xd3\x98\xc4\xc3\x58\xa2\x23\x07\x73\x3d\x22\x8f\xf4\x96\xd5\x57\x34\x1e\x4d\xc7\x04\xba\xc0\xfd\xa6\x6e\xf6\xf1\x07\x5e\xb6\x33\xcd\xf7\x99\x01\xed\x99\x10\xc6\xef\x67\x38\x4f\x28\x80\x34\x4e\xc9\xd4\x1f\xdd\x3d\xb8\x42\x56\xab\x43\x09\xb6\x9e\xcc\x52\xe4\x3d\xf0\xaa\x9e\xbd\x43\xc9\x5f\x60\xfa\x4d\x03\x2f\xc2\x98\x7a\xc9\x73\xd5\x7e\x88\x80\x05\x3c\xea\x12\xaa\x8e\x4a\xf3\xdc\x51\xae\x3a\x4b\xc3\x0f\x78\x42\xed\x6a\xc7\xba\x37\x6e\x93\x8f\x5f\x9c\x02\xee\x2a\x88\x31\x78\x59\x9e\xf3\xde\x5e\xe5\xd3\x50\x84\x16\x6f\x73\x9b\x56\xaf\x62\x5c\x5d\x0f\x3e\x15\x21\xaa\xb5\xbe\x1a\xad\xb7\xf9\x58\x18\xbb\xe9\x21\x90\x01\xec\xb5\x2e\xf8\xe8\xe2\x30\x34\x8a\x4e\xb2\x4d\x80\x75\x1a\xfb\xe0\x87\x3a\x64\x46\x91\x2c\xaf\xce\x47\x78\xac\x9c\x9f\xe6\x47\x91\x51\x03\x2f\xd0\xc9\x4e\x8b\x9c\x67\xc8\x20\x3d\xd0\x4e\x05\x3f\x8a\x13\x21\x3b\x62\x32\xa7\xb3\xe3\x5a\xb9\xc0\x30\x68\x47\x6a\xbc\x6c\x3e\xe4\x6d\x51\x2e\xe7\x7f\xee\x97\x23\x74\x32\xf8\x91\xd0\x48\xa0\xfc\x50\xbc\xec\x90\xe8\xea\xfb\x11\x8d\xb9\x30\x6a\x55\xb9\x42\xd7\xfb\x86\x5f\x5a\xe6\xb6\xa6\x55\x26\x36\xe4\x70\xc8\xe1\xe3\xa0\x2c\x8f\xdc\x01\x95\xf9\x46\x23\x18\x83\x99\xfc\xe2\x7c\xe9\xb3\x6b\xd9\x56\x46\xb4\x61\x0a\x2a\xea\x1a\xca\xcb\xfc\xb2\xdc\xdf\x8f\xc6\x99\x89\x98\x5a\xf4\x24\x1a\xb3\x5d\x5e\x13\x7c\x06\x1c\x59\xc2\xb9\x94\x70\xaa\x27\xd8\x40\xc0\x4f\x42\x23\x1b\xbe\x2c\xa5\x93\x67\xb9\x86\xc2\x30\xd7\x99\x29\xe4\xd2\xf9\x30\xce\x6d\xe3\xd4\x55\xb0\x6b\xbf\x49\x22\xc1\x0b\x9d\x02\xe1\x6f\x70\xf9\x31\x05\x2d\x00\x9f\x13\x83\x70\xc6\xdd\xc3\x14\x61\xf4\x50\x19\xa3\xbe\x9e\x51\x3b\xb5\x6c\x02\xc6\x56\x2c\x8b\xe3\x9c\x97\xd3\xfc\x8b\xe0\x73\x2e\x4c\xad\x27\xcf\x51\x9b\x6b\xf4\x10\xd3\xd2\x6b\x83\x51\xe7\x3a\x70\x25\x27\x07\x6d\xf9\x0e\x87\xbf\x21\x62\xc6\x2d\x12\xd5\x95\xdd\xfc\x5e\x3b\x4f\xc7\x97\x54\xe3\x26\xb3\x99\x6d\xf7\x4f\xcb\xed\x61\x37\x7b\x70\xe2\xd4\xe0\x2b\x9f\x62\x1d\x95\x48\x95\xe6\x69\x76\x2e\xdb\xaf\xa5\x84\x32\xc8\x5c\xae\x94\xe1\xd3\x1c\xfd\xaa\x12\x1a\x03\xdb\xaf\xbc\x42\xa1\x09\xfb\x67\x88\x22\x2c\xbd\xb2\x12\x80\x59\x51\x57\x5d\x59\x97\xeb\x23\x78\xd8\xf1\x4a\xa2\x08\x6e\x33\x59\x56\xf9\xfc\x9c\xbd\x7d\xc9\xfc\x03\x3e\x80\x87\xd6\xeb\x19\x19\x48\xcd\xf0\x17\xa5\x0b\xb4\x8d\x9e\x0f\x74\x84\xef\xdd\x98\x99\x2b\x94\xde\xc6\xc9\x38\x9c\x70\xa0\x13\xd4\xf6\x3b\xa6\x8a\x3b\x8a\x87\xa1\xb1\xee\x6b\x42\x70\x57\x31\xea\x43\xf6\x80\xe9\xd9\x2c\xbe\xe6\xda\x4a\xe4\xd6\xed\x9b\xce\x0d\x9d\xd4\xdf\xc1\x12\x80\xaf\x85\x0e\x78\x57\x04\xe4\x6c\x92\xbe\xbf\x1a\x10\x16\x24\x8d\x49\xb1\x7a\x3b\x97\xfc\x31\xfd\xa2\xb8\x1c\x02\x8f\x1a\xdd\xfc\x16\x00\x85\x75\xc3\x77\xfc\x08\xa8\xf9\xec\x6e\xe7\x09\x4d\x08\x56\x99\xa7\xf2\x6d\x48\xb5\x77\xad\xe0\xe7\xae\x01\x41\xec\x7b\xce\xcb\x54\xbe\x4d\xae\x91\xc0\xd3\x89\x6e\x3d\x0c\xf3\x0e\xfb\xe3\xc9\xfd\x6e\xf3\x7c\xe8\x2d\x2b\x95\x7e\xc9\x67\x05\x41\x90\x68\xac\x7f\xdb\x94\x67\x10\x5c\x16\x69\xee\xf9\x41\x7b\x0f\x4e\x10\x65\x5b\xa2\xef\xb0\x52\xa3\x07\x08\x64\x88\xb2\xdd\x07\xab\xf2\x8c\x44\xe5\x69\xbf\xb6\x63\x1c\xfa\x0c\xa8\x8c\x4c\xc8\xec\x22\xca\x54\xa5\xff\xc1\x9d\x7e\xf9\x99\x56\xa3\xc2\x3b\x08\x42\x1a\xa3\x85\x8b\x11\x16\x43\x95\xde\x09\x52\x41\x10\x86\xc2\xd3\x2d\x7a\x76\xa8\xc9\xed\xba\x24\x49\x98\xb4\x41\xe7\xe6\xc3\x60\xc4\xf9\xa1\xc8\x5f\x56\x39\xd2\x27\xa7\xed\xda\x0d\x22\xa2\x75\x9f\x99\xce\xc9\xfc\x39\x32\x50\x17\x78\x1a\x8e\x40\xe4\x2b\xcc\xae\xcc\x16\xb3\x4e\x40\xf3\xaf\x30\xe0\xa3\x5b\x58\x60\xe9\xb7\xd0\x18\xdb\x37\xf6\x3c\x8c\x50\x0d\x2a\xf8\x21\x88\x69\x80\xb7\xc8\xe1\xb3\xee\xdb\xd7\x41\xcc\x22\xac\xae\x18\xe8\xcd\x8d\x46\x29\x06\xdf\x95\xc2\x20\x5e\xf7\x72\x02\x27\x2e\xf7\x63\x1c\xad\xbb\x06\x6d\xda\x9b\x30\x3f\x40\x97\xc5\x4c\x84\xa7\xa2\xe6\xdf\xc5\x28\x02\x16\x09\x68\x43\x00\xd5\x06\xca\xdf\xd0\xc2\x1f\x15\x63\xbb\xce\x89\x40\xb6\xd3\xfd\x40\xa7\x1e\x02\x26\x63\x13\x57\x5e\x3f\x3d\xef\x0e\xab\xc5\xfa\xb0\xdb\xcf\xee\x96\xde\x61\xb3\x5d\xe2\xd6\x1b\x76\x3d\xb9\x23\x95\xff\xf3\xf3\xa9\x57\xc7\x36\x55\xee\x0d\x41\x02\x31\xb7\x29\xc0\xdf\xdc\x2d\x38\x31\x6a\x09\xb6\x0a\x76\xbe\x5f\xf4\x8d\xd1\x8e\x24\xb4\x1f\x78\xb3\xdc\xd0\xee\x0e\x21\xe9\x21\xd0\x50\x00\xc4\xb0\x0c\xda\xec\xe0\xe8\xad\x39\x63\x08\x67\xdb\xbf\xc2\xee\x23\xd5\xf5\xeb\xcd\xec\x1b\x86\xbd\xff\xaa\xec\x01\x02\x19\x08\x5c\x85\x69\x65\xab\x48\xdb\x1a\xd2\xe9\xad\x4e\xca\x08\xa7\xf9\xe3\x6e\x33\x5a\x00\xca\xd7\xc4\x28\x8a\x57\x15\x9e\x2c\x6e\xc0\x20\x00\x9f\x77\x42\x42\x50\xae\x73\xe8\x91\xc9\x40\x00\x8c\x63\x60\x13\xd0\x7d\x6d\xa6\xde\x35\xb0\x17\x02\x90\xe6\x1c\xea\xb4\x46\xfb\xfa\x04\x98\x8f\xc8\x3b\x17\xdb\x5e\xa4\x3d\x81\x07\xa3\x39\xac\xfe\x28\xea\xbe\x92\x4d\xff\x53\x53\xe2\x1b\xa0\x3f\x66\x89\x8e\x69\x3e\x6d\xb9\x50\xc2\x3d\xc4\x67\x72\xa5\x9e\xe0\xc3\x88\xf0\xfd\x18\xde\x48\x18\xb3\x74\x0f\x55\xbd\x2d\xfe\x92\x71\x08\x28\x51\xa6\x8e\x66\xf7\x0e\x59\xdd\xb8\xe6\xd7\x29\xdf\x89\xab\x3c\x16\xa2\x9b\xcd\x95\x1a\x44\x5c\xfe\x16\x98\x0f\xa8\x07\x8a\x5a\xea\x28\x28\xeb\x45\xf3\xc1\x87\x1d\x7c\x5f\x23\x01\x87\x40\xe5\x80\x55\x0d\xc7\x71\x07\x66\x34\x82\x16\x9b\x3d\x26\x43\xdb\xb0\x1e\xf5\x85\xf1\xd5\xda\x9a\x3d\xa0\xbe\xf4\x55\x8b\x9e\xfb\xe0\xa5\x7a\xe4\x75\x99\xba\xb4\x0d\x0d\x42\x62\x84\xab\x21\xcb\xe6\x45\xae\x46\x3b\x13\x0d\x54\x80\x81\x53\x6e\xfc\x42\xd8\x42\x55\x3b\xfd\x55\x77\x0f\x2a\x62\xd5\x03\x86\x9e\xc5\x50\x61\x7f\xf8\x19\xa9\x02\xac\x45\x44\x20\xe3\x67\x35\xa2\x4a\x03\x1a\x7a\x91\x7b\x5e\x9b\xfb\x1f\x28\x9d\xe8\xe2\x8a\x26\x62\x78\xff\x30\xf0\x7c\x9b\xe4\x45\xb3\xba\xee\x27\x84\x5d\x1f\x6a\x48\x44\x91\x64\xc9\xd4\x31\xba\x9f\x8f\x88\x8c\x2c\xba\x18\xa9\xfb\xdd\xdf\x63\x69\xea\xd6\xe6\xcb\x7f\xae\x37\x87\xe5\xaf\xc5\xfd\xec\xe9\x6e\xd9\xb6\x2a\x89\xc6\xd7\x22\x3b\x8b\x3d\xf0\xe3\x43\x21\xdf\x86\xc5\x93\x40\x99\x1f\xbb\x78\xde\x82\x97\x6a\xf0\x2a\xd3\x33\x85\x05\x81\xe3\x75\x3d\x9f\xdc\x71\xf3\x45\x57\x6e\x54\xa8\x2a\x0b\xea\xc3\x23\xbd\x1f\x10\x18\xf5\xe7\xc4\xc3\x64\x96\x7c\x7d\x33\x6b\x6e\x7a\x30\x39\xd3\x48\xb5\xd3\x16\xea\x0c\xc2\x34\x5f\x3c\x36\xe7\x81\x29\x99\x30\xd4\x54\x9b\xe5\xf6\xb0\xdc\xdf\x2f\xb7\x87\x9b\xd9\x9f\x87\xf5\x53\x3b\x68\x1c\x7c\x99\x58\x5c\xcf\x63\x91\xc3\x17\x31\x2f\x2a\xc0\x67\xac\xab\xb2\x43\x42\x39\xdb\x24\x3d\x30\x87\x4a\xcd\xdf\xe0\xee\xe1\xd7\x17\xaf\x21\x79\x12\x83\x1b\x48\x4c\xa1\x5d\x33\xc3\x02\x55\xc4\x18\xc7\xb7\x59\xf1\x79\xe9\xe7\x94\xa8\xf2\x19\x0a\xb2\x89\x73\x99\xdf\x8d\xe1\xf2\x40\x55\x20\x4d\xfc\xeb\x94\x4a\x78\x3e\x4d\x06\x0b\xa9\x4a\x28\xf1\x5b\x31\x99\xe3\x04\x5f\xd2\x34\x27\x94\x8b\x98\x52\x05\xb1\xe3\x7c\xc1\x3d\xbc\xc8\x86\xdc\xfb\x40\x81\x52\x3c\xae\xd2\xea\x91\xa7\x48\x95\xd9\xa5\x60\x29\x70\x21\xbb\x1a\x11\x37\x39\x5d\xa8\x64\xf8\x42\x5a\xf8\xf8\xac\x4f\xb3\xed\x94\x46\x98\xe9\x15\x7a\x61\x1c\x5a\x70\xd9\x73\xee\xb2\xcf\xc8\x66\xba\x2f\x4e\x5e\x48\x7a\x31\xd0\xd0\x13\x0c\x0b\xa2\x25\xa4\x19\x06\x20\x2d\x2a\xc2\x36\xfb\x84\x70\x07\x2a\x5b\xbe\xbc\xac\x1c\xed\x3b\x84\xbe\x95\xc0\x72\x51\xb6\x9f\x69\x6e\x90\x99\xfb\x09\x81\x89\xef\x77\xde\x30\x20\x1e\x22\x4b\x07\xf1\xc4\x2f\x06\xdd\x99\xcd\xee\x52\x5f\x63\x86\xa3\x1e\xd5\xea\xdd\xf0\x9a\x7f\x99\x47\x1e\xdc\x20\x30\x44\x3b\xe8\xc9\xa5\x43\x18\x0e\x84\x81\xf0\xb8\xcd\x17\x2d\x3f\xd3\xfa\x16\xc0\x45\xa8\xc2\x40\xf9\x18\x62\xc0\xca\x6d\x43\xab\x3f\xf2\x41\xc2\x40\x45\x18\x19\xb0\xf9\xef\xc5\x6b\x7a\x1a\x77\xa1\x1e\xd3\xc4\xc1\xb6\x72\x55\x1c\xfb\xe7\xce\xd8\xf1\x6c\xb6\x47\x44\x9e\xcc\x1e\x7e\xf5\xf7\xe6\x90\x26\x81\x88\x6c\x69\xa3\xe1\xc1\x03\x75\x9b\x96\xc7\xc1\x31\x1c\x52\x15\x52\x43\xb4\x6b\x18\x41\x46\x8f\x12\xfa\x41\x62\x1f\xa5\x2d\xcf\x76\x79\x87\x30\x8c\x84\x91\xdd\xe6\xef\xf0\x08\x35\x1f\x8c\xef\xb7\xdc\x69\x43\xac\xa4\x3f\x41\x4c\x3c\x9c\x0c\x21\x68\x00\x17\xfa\xef\xf4\xd8\x20\x8c\x68\x88\x03\x7e\xa8\xb2\xc2\xe2\x76\x9f\xe0\xc3\xb5\xc6\x40\x11\x74\x08\xc7\x53\x7d\x31\xf8\xe9\xe6\x2d\x3a\x7c\x1a\x84\x8c\x86\xd2\x79\xe2\x98\xef\xba\x2d\xca\x85\x53\x3c\xf5\xc6\x93\x92\x31\x43\x4f\xb3\x59\x6f\x9f\x5c\x14\x2b\x4c\x28\x47\x98\xba\xe2\xe5\x5b\x5e\x28\x43\x57\x24\x7f\x83\xd1\x96\x15\x26\x8a\x53\x7f\xac\xf3\xfb\x55\xc9\xfa\xe8\x87\x65\xa0\xb0\xc8\xc7\xe8\xcd\xff\x4c\xc7\x4e\x49\x28\x93\x08\x21\x35\x0e\x76\x22\x8b\x23\x54\x18\x0e\xfc\x4b\x4f\xff\x8b\x05\x08\x5e\x88\x62\x4b\xf3\xd5\x62\xbd\x7a\x72\x2f\x0b\x7e\x82\xfb\x3b\x72\x5d\xc1\xc0\xb4\x08\x81\x19\xe8\x8f\x53\x57\x5c\x7e\x72\x59\xff\x2c\xb2\xb7\xd1\xb3\x6a\xe2\x05\xd6\x26\x33\x58\xdb\x21\x7e\x6f\xc2\xa8\x9b\x9a\x21\x6e\xa0\x46\xcb\x41\x33\xa3\xae\x53\x16\xe7\x41\xc6\x29\x22\x31\x47\xcc\x64\x56\x18\xd5\x20\x4c\x3f\x18\x45\x41\xd7\x43\xf8\x88\x96\x2d\x2c\x6a\x69\x07\xb9\x9a\x5f\x1a\xb7\x45\x0e\xf8\x17\xbe\x0a\x90\xb9\x6d\xa8\xbf\x97\x44\x44\x68\xac\xee\x59\x2c\x1f\x1e\x76\x87\xfd\xfa\xf0\x38\xfb\x6d\x79\xf0\x0e\xbb\xcd\x72\xfb\xe8\x7e\xd9\xb3\x7c\x59\x5d\x14\x16\x9f\xee\xbb\x74\x71\xe4\x93\x04\xe9\x7c\xac\xb0\x61\x2f\x66\x1c\x05\x89\x2f\xed\x66\xdf\x56\xb3\x62\xac\xc5\x75\xa0\xda\x47\xda\x64\xeb\xa3\xb7\xa0\x93\xa1\xb4\x83\xed\x1c\x12\x1f\x2b\x1c\x30\x92\xe6\xbe\x42\x17\xeb\x8c\x42\x00\x2c\xee\xde\x94\x45\x5d\xec\x4b\x9e\x66\xfd\x7d\x28\x8a\xb8\xc7\x6c\x76\xd2\xd6\x07\xa0\x0a\xf0\xd2\x88\xe3\xff\xe8\x83\x09\xdd\x15\x4a\x62\xa5\xfe\xc1\x01\x8a\x4e\x67\x43\x3a\x6b\x40\x03\x93\x27\x6e\x14\x87\x71\xa8\x7b\x9b\xfe\x4f\x10\xc1\xff\x7e\x35\x76\x31\xe7\x98\xac\x3c\xb4\xb1\xba\xef\xcd\xa4\x28\xd6\x12\x6d\x2b\x04\x52\x9f\x2f\x8f\x3c\xbf\x60\xe9\x9b\x7b\x49\x16\x28\x2c\x21\x3e\x20\x1f\xdc\x2c\xcb\x9c\x8f\xea\xda\x29\x0b\x10\xb4\x5d\x64\x19\x22\xd8\x86\x4b\x22\x62\x31\x41\xb4\xd3\xe2\x7e\xbb\x1f\x3e\xcf\x97\xae\x4d\xc4\x12\x8f\xf7\xdf\x78\x7e\xd9\xbf\xa6\xa5\x6a\x2c\xf0\x2b\xc1\xe6\xc1\x6b\x4d\x53\x29\x40\xc4\x40\x71\x53\x25\x29\xcf\xed\x54\x49\xc2\x84\xb4\xf9\xc2\x9e\xfc\xde\x0e\xea\xda\x7c\xc2\x5b\x80\x9b\xd4\x20\x71\x86\x2f\x95\x24\x86\xcc\xd1\xc5\x37\xa7\x4b\x1b\xfe\xd6\x6e\x14\xf1\x10\x42\x17\xe0\x4b\x4b\x3c\xcb\x47\x41\xd5\x88\x0b\x8a\xe9\xa1\x8f\x74\x1a\x53\x0a\x91\xf4\x35\xb5\xee\xca\x2d\xea\xbe\x1c\x8f\xc6\xf0\x36\x25\x8c\x93\x96\x53\x24\x43\xce\x44\x2b\x33\x85\x89\x5f\x9c\x8c\xc3\x0c\x7f\xa4\xfc\x88\x7a\xd6\x40\x6e\x8c\x8d\xe5\x67\x5d\xf2\x3b\x5e\x2d\x3f\xbf\xc4\x1e\xb8\x2b\x19\xb5\x95\x05\xf5\x3c\xe3\x4e\x03\x10\x22\xf0\x0c\x12\x23\xcd\xd3\x7a\x9e\x15\xc5\xf1\x36\xcd\xea\x36\x1c\x10\x81\xf6\x30\xea\xda\x34\x1f\x14\xbc\x1f\x78\xae\x0e\x76\x33\x38\xf0\x6b\xd9\xa0\xe9\xb7\xd3\xa1\x42\x85\x17\x9b\x73\x76\x9a\xd7\x69\xd5\x7a\x53\x31\xd1\x01\x56\x90\x5b\x8e\x49\x43\xfb\xca\x1d\xcf\x1b\xc4\x9e\xaf\x31\x6a\x68\x09\x1d\x57\xd5\x53\x51\xa3\x0e\xf8\x54\x00\x21\xf6\x98\x44\xc2\xab\xc5\x6c\xe1\x6e\xe0\x93\x00\x61\x15\x58\x40\x83\x2c\xfb\x03\x0d\xe4\xa6\x83\x91\x23\x6d\x36\xe4\x23\x3a\x1f\x83\x11\x8c\xfd\x80\xf8\x2d\x5d\x7e\xaa\x56\xaa\x77\xc2\xc7\x7e\xa8\xd0\x44\xa8\x0b\xeb\xa2\xae\x6e\x06\x26\x50\x1c\xc4\x26\xcb\x82\x2e\xd0\xe1\x66\xb9\xfb\xed\x80\x11\x32\x77\x83\x40\x7a\x5e\x4b\x74\x39\x56\xae\xcd\xce\xd5\xbe\x4c\xe5\x5b\x06\x37\xc5\x47\xee\x88\x2a\xed\x95\x34\x32\x52\x84\x1b\x7e\x69\xe6\x1b\x0e\x4f\xf9\x63\xf0\xe8\x34\x31\x05\xd6\xa7\x73\xbd\x2f\x90\xb7\xdb\x36\x84\x92\x63\xc5\xca\xae\xc8\xd4\x53\x31\xba\x71\xc4\x25\x89\x1d\xb9\x7f\x96\x01\x4c\x32\x15\x40\x1c\x49\xdf\xf1\x03\xaf\xf2\x77\xc8\x31\x41\xf3\xed\x42\x8b\xe3\x58\x26\x49\x2f\xe7\x3f\xa8\x31\x1d\xde\x3d\x66\xbe\x76\x72\x55\xbf\x8d\x3e\x49\x2c\x25\x5a\x0f\x07\x89\x42\x71\x93\x05\x19\xe7\x1e\xc6\x24\x8e\x35\x60\xca\xc6\xa9\x18\x0d\x14\x0b\x6c\xe1\xe6\x30\x6a\x38\xd8\xd2\xec\x5d\x58\x20\x9d\x28\x15\x26\x7c\x9f\x77\x37\x72\xb9\xbf\x77\xe3\xc6\xac\x58\x37\x72\xd7\x15\xed\x5f\x23\x86\xa5\xe3\xd7\xec\x24\xff\x43\xff\x75\x75\xc8\x7b\x1d\xa2\x6a\x42\x32\x08\x62\x26\x12\x57\x22\x69\x38\x73\x72\x9d\x5e\x69\xb1\x8c\xae\x49\x88\x12\xbe\xab\x14\xac\x90\xf6\x0e\x94\x89\x9a\xdd\x9c\x7b\x45\xd6\xb6\x3b\x6f\x9c\xa3\xc6\x50\xc9\x8c\x0b\x37\x74\x50\x62\x49\x94\x20\xfd\x09\xdb\xcc\x21\x77\xad\xf4\x62\x16\xd9\x4a\x08\x75\x9b\xe6\xad\x51\x10\x4b\x6d\x04\xf0\xdf\xd2\xfc\x65\xde\x89\x91\x42\xac\x62\x5f\x50\xf7\x46\xd5\xb5\x08\x33\xc4\x2a\xf1\x71\x05\xdf\x41\x0e\x55\x5b\xf4\x75\x45\x0b\x34\xb9\x2b\xc7\xe0\x31\xb4\xd2\x1b\x9b\x78\xa0\xfe\x36\xdc\x38\xc0\x27\x58\x59\x6a\x00\x09\x4f\xf0\xf1\x9d\xec\x08\xc4\x10\x12\x66\x23\x38\x98\x79\x6e\xfc\xf8\x02\xf1\xa9\xae\xce\x13\x62\x48\x28\x02\x77\xb3\xe2\xe5\xa5\xf3\xbe\x63\x1d\x98\x0a\xca\xff\xcb\x15\x34\x2e\x75\xdf\x9c\x89\x75\x22\x31\x22\xf8\x9e\xc2\x07\x65\xed\x5f\x65\x88\x0c\xb2\xc7\x73\xf6\x65\x51\x36\x30\xa2\x62\xe4\x3a\xb0\x9b\xad\x83\x92\xdb\x56\x2f\x34\xf2\x9c\x56\x8a\xba\xd9\x34\xa0\xc7\x51\x08\xcc\xd3\x01\xc8\x16\xb3\x81\x4f\x35\xc4\x8f\xf7\xc0\x7e\xdf\x01\x02\xdb\xdb\x85\xae\xea\xcd\x0a\x0c\x98\x4a\x64\x0b\x6a\x59\xf0\x5c\xb9\x3d\x9e\xf9\xcc\xd4\x38\x3e\xe7\xc6\xf0\xff\xfe\x48\x63\x3e\x97\x2e\xda\x80\x33\x09\x79\x3f\x47\x5d\x80\x1b\x11\x77\x53\x52\xb4\x05\xae\x5c\x16\x8d\x05\xbe\x87\xa6\x6d\xc6\xab\x7a\xa9\x75\x2a\x53\xc8\xcd\x8d\xfa\xa4\x75\x4d\xbf\x18\xbd\xa2\xdf\x4e\xc5\x69\x01\x19\x88\xb6\xc1\xea\xfe\xdc\x9c\x8f\xc7\xcb\x37\x84\x2a\xa3\xc7\x0e\x24\xb0\x76\xa7\xb7\x5c\xbd\xa3\xc7\xa6\x92\x20\xb3\xc7\xbc\x28\xaa\xfa\x98\xba\x1f\x8c\x40\x4a\x3b\x96\x0f\xbc\xaa\x71\x1a\x0f\x03\x3e\x2c\x0e\xa8\xe1\xb5\x3d\x97\xf9\x2d\x3f\x4b\xa8\xd7\x79\xdb\x26\x03\x61\x68\x9c\xcb\x97\xd4\x59\x16\x63\x9c\x39\x63\x84\x39\xa2\xba\x66\x36\x0f\x74\xb7\x80\x31\x9f\x27\xb6\xd5\x1c\xd1\x55\x4b\xe6\x3e\xdc\x1f\x18\x4b\x00\x9f\x04\x72\x35\x9a\x82\x89\x10\x38\x00\x26\x89\x8d\x79\x80\xc7\x73\x95\xca\xd1\x20\x24\x8a\x0b\xea\x8e\x15\xb7\x67\xba\x1d\x86\x71\xc2\xd1\xd6\x6d\xe6\x71\x63\xe9\x4f\x6c\x18\x8c\x53\x00\xbf\x93\x5f\x99\x65\x19\xaf\xd7\x9d\x35\xc5\x44\x60\x32\xb5\xce\x57\x6e\x66\xdd\xd0\xe0\x62\x22\x96\x18\x01\x74\xbc\x6c\x85\x4e\x33\x18\xeb\x61\x02\x13\xca\xc3\x3b\xcd\x94\x32\x39\xcf\x91\xe7\xcc\x84\xf2\xfd\xe6\x65\x0a\x51\xf3\x34\xb7\x21\xcb\xc9\x9d\x8a\x49\xdf\x50\x3d\xb8\x8d\xd5\x7e\xe1\xf6\x5c\x66\x92\x0a\xa1\x9d\x94\xf0\x95\x98\x46\xd3\x2e\x23\x27\x02\xb9\xe1\x97\x3d\xf0\x63\x7b\xa9\x90\x88\x42\xe6\x4a\xe1\x80\x81\x32\xf0\xbd\xc9\x4c\x36\x93\x56\xf8\xad\x82\xfa\x09\x3e\xae\x89\xc9\x80\xa9\x38\xd4\x26\xf6\x61\xc8\x10\x6e\xcf\xb9\xaa\xfa\xc4\xd3\xc0\x20\xf4\x0d\x87\xb5\xe1\x7e\x68\x53\x5a\x93\xa7\x3d\x83\x24\x41\x1f\xd5\x8c\x37\x1a\x24\x0e\x69\x34\xfc\x65\x1d\x78\x32\xe8\x36\xea\x73\x96\xed\x53\x9b\x1a\xf5\xda\x3e\x49\x82\x41\xfd\xf4\xd8\x9c\x71\x4e\xe9\x60\x54\x34\x32\x50\x61\x1c\x3e\x8c\xd6\x46\xd5\xdf\xa0\x18\xfb\x05\x4f\x90\x78\x2c\xc6\x7d\xed\x6c\xd5\xcd\x46\x63\x97\x78\x89\x0a\xdd\xfc\x1c\x3e\x7a\xe3\x50\x71\x5b\x8f\xd0\xcc\xa4\x3e\x5d\xb1\xeb\x21\x18\x0a\xdd\xa2\x7c\x0d\x72\xc9\x76\x4c\x52\x90\xf8\x91\x49\xae\x58\x6a\xcf\xe1\x8c\x4d\x7c\xe5\x0b\x0b\x06\x44\x00\x5c\x06\x6d\x52\xec\x1f\x13\x27\x5e\xe2\x2b\x6a\xc9\x53\xac\xcf\xd5\xde\x08\x74\xd8\x83\x74\x01\x94\x8b\x73\xfb\xfa\xbe\x36\xe2\x6c\x2f\x50\x3f\xa7\xd3\xe4\x36\x90\x04\x9e\x61\x2e\xaa\x1d\xa9\x4c\xef\x3c\xb5\x5d\x68\xcc\x71\x18\x9b\x9d\xe0\x7c\xb2\xaa\x21\xae\x4d\x28\x74\x3d\x0d\x77\xe0\xf3\xe9\xa5\xe4\x0a\x90\xea\xdb\xb2\x36\x77\xa7\x56\x42\x65\xec\x6a\x8d\x1e\xa1\x7c\xcb\x60\x5f\x02\x74\x82\xeb\x2e\xdd\x9b\x50\x15\x05\x56\xdc\x7b\x03\xf5\x4a\x3d\xf2\xd3\xa9\xcf\x53\xd0\x0f\x3d\x26\x54\xc5\xe8\x1b\x49\x5e\x16\xe7\x8a\x67\x86\x37\xc8\x35\x02\x24\x16\xa3\xd6\xe2\x55\x5c\xbd\xd8\xe8\x83\x87\xdc\xb0\x07\x3a\xa9\x90\x27\xf8\x78\x84\x66\x19\x7c\x05\x62\x4d\x42\x0d\xdc\x04\x4c\x0d\x11\xda\x68\x7e\xc4\x5c\x09\x33\x6a\x5c\x21\xf5\x69\xab\xdf\xe8\x9e\x2e\xd6\xb1\x36\x7b\x7d\xd5\x79\x73\x09\x8b\xb5\x96\x6e\x41\x7f\xd6\xae\x30\x68\xbf\xff\x69\x99\x6b\xbc\x41\xec\x35\x61\x96\x00\x0f\x72\xd5\xf2\xdc\xba\x7b\x25\x3e\xb1\x42\x5c\xfc\xed\x8a\x18\xb4\x69\xd6\x8a\xb5\x89\xe6\xb5\x5e\xf0\x53\xed\xe2\x6f\xee\x8c\x48\x12\x6a\x4a\xf4\xd6\xc7\xb4\x7a\x69\x47\x96\x87\x34\x30\xae\x60\xf9\xd6\xb2\x2d\xb4\x35\x6a\xc3\xa1\xe5\x8c\xb2\xa4\x3b\x12\x6f\x4a\xfe\x71\x7d\x84\x27\x5c\x99\x82\xb9\x23\x28\x9e\x7d\xcb\x23\x09\x8d\xa7\x24\xfa\x95\xb9\x9b\xc2\xc8\x26\xba\x66\xea\xa1\x52\xdf\xe3\xea\xe9\x70\xbf\x7e\xb8\x59\x6e\xad\xe0\x8a\xeb\x20\x09\x43\xd1\x21\x91\xd6\x7d\x92\x67\x48\xa4\x1f\x39\x37\xe9\x78\x39\x15\x55\xdd\x18\x1e\x69\x3b\xdb\x65\xac\x69\xd0\x89\xb0\xde\xa5\xaa\xc7\x3f\x02\x89\x14\x14\x7d\x8e\x87\xe2\xc5\x00\x07\xc7\x74\xa8\x90\x48\x20\x18\x46\x37\x5c\x44\xab\x5c\xa5\x25\xc8\xba\x5f\x17\x94\x48\x10\x86\xc7\x32\x4f\xeb\x65\xfd\x8a\x54\x9b\x83\x9b\x70\xe2\x45\x68\xd1\x3a\xee\xe2\xf6\xbb\x76\x8b\x8d\x13\x16\x99\x75\x61\x2c\xcc\xa6\x0b\x7c\x8e\x50\x63\x9c\x28\x0f\x31\x9c\x0a\x4e\x59\x71\x79\x4c\xf3\x7e\xb6\xdf\xcc\x02\xbb\xf5\x0e\xfe\x8f\xbd\xda\xa3\xb1\x8c\x5b\x2b\xe4\xd4\x58\x3a\xed\x93\x0c\x1f\xd8\x8b\x43\x67\x4e\x75\xee\xaf\xeb\x5b\xcd\x2f\xb6\xbc\xfb\xeb\x68\xea\x28\xd5\xc1\xbd\xc4\x63\x36\x52\xf2\xc8\x3f\x6f\xd2\xea\x94\xf1\x4b\x8f\x55\x08\xb8\xef\x49\x4c\x86\x2c\x57\x8b\xbf\x19\x46\xe3\x7e\xa0\x5c\x61\xc0\xa6\x2c\x8e\xc5\xe3\x75\x80\x81\xfb\x3c\xc0\xc3\xd4\xc6\x49\x6f\x01\x7a\x05\x10\xc3\xae\x81\x1f\x83\x21\xf4\xae\xcb\xf3\x88\x53\x00\x38\xf5\xbd\xd0\xeb\x06\xaf\x86\x03\x75\x56\x2f\xa7\x36\xaf\xd4\x3c\x08\xbf\x34\x1b\xc8\x40\xce\x76\xf0\xd0\x54\x6a\x74\x51\xaa\xb3\xb8\x81\x77\x77\x87\x90\x4b\x0c\x60\x63\x6d\x5c\x5a\x94\xf3\xf6\x50\xe4\xa1\xf2\xb0\x5c\xd0\xe2\x08\x8b\x12\x8d\x8c\xef\x44\x33\x80\x47\x71\x18\x88\x16\x14\xfb\xbd\xc9\xcf\x23\x19\xd2\x41\xd2\xca\xae\xf3\xef\x02\x91\xd7\x77\x89\xc3\x18\x1f\xf3\x85\x57\x5b\xa8\xa0\x7c\x6f\xbf\x6c\x0c\x34\x72\xc0\x93\xb4\x9c\xaa\x68\xe3\x8c\x46\x61\x87\xa0\x69\xd9\x8c\xdd\x1d\x98\xa4\xaa\xe3\xd0\x9a\xef\xf6\x56\x60\x6f\x2a\xbd\x6b\x2f\x49\x42\x8e\x8a\x31\xe7\xbc\xe2\x1a\x90\xf1\xec\x39\xcd\xa7\xb5\xf2\x81\xf3\x38\x14\x76\xc7\xdb\xf3\xea\xad\xf9\x7a\x66\x12\x0e\xcc\x6f\xce\xb5\x87\x96\x1e\xc6\xd3\x27\x23\xb1\x5c\xf8\xbe\xa3\x43\x68\x56\xce\x26\xeb\xef\x99\x5c\x84\x31\x5a\x99\xb3\x87\x87\xf5\xe2\xb0\x58\x3f\x3e\x3e\x3f\xad\xf6\x7f\xb6\xcd\x9c\x60\x49\xb9\x35\x8c\x2d\xdb\xc6\xf5\x3a\x9b\x7c\x07\x19\x29\xac\x2c\xbc\xe5\x6f\xf0\xcf\xad\x2b\xb1\xe0\x92\x51\x0c\x82\x2e\x5e\xa1\xaa\x0d\xda\x62\x34\xb3\xc1\xd3\x68\x51\xf0\x2c\x33\x05\x83\xfb\x96\xd4\xa9\x59\xed\xee\x46\x10\x02\xa6\x56\x11\xf9\x5c\xad\xf5\x4e\xbe\xc2\xb8\x12\x82\x83\xf4\x91\x04\xa3\x46\x59\x7e\x74\x30\xfc\x42\xfb\xed\x3d\x20\x40\xb4\xfd\xc3\xea\x71\xb5\x47\xc8\xc2\xf3\x6e\xb9\x75\xad\x1a\x62\xe1\xcc\xbb\xc5\xc3\xb0\x8e\xd6\x74\x11\x84\x46\xe8\x6e\xcd\x53\x35\xc3\xb9\xfd\xd5\x12\x10\x84\x1b\x58\xb9\x11\x4a\x7f\x4c\xb1\x54\xf7\xe6\x5c\xf6\x8b\x2e\x84\xaf\xfc\x48\x74\x34\x1b\x33\xb7\xe8\x44\x20\x13\xcf\x08\x91\x61\x32\x60\x0b\x0a\x8e\xa7\xeb\x62\x8c\xe6\xe0\xc2\xf4\xa6\xe0\xb5\x7c\xed\x2c\xb1\xca\x91\x42\x4d\xc9\x91\x5f\x6f\x8f\x82\x52\x0f\xb3\x3a\xe6\xc3\x3f\x20\xef\x5b\xe1\x84\x9a\xbc\x2b\xc8\x82\xbb\x2a\x8a\x02\xeb\xcc\xdd\x17\x99\x1a\xeb\xd7\x80\x08\x7d\x1f\x17\x41\xaa\x9c\x1d\x20\xc2\xd8\x0b\x7a\x49\xec\x89\x2d\x53\x84\x8c\xe2\xbb\xcf\xee\xa6\x90\x5a\xfd\xcd\x4c\x44\x54\x63\x25\xea\x66\xfd\x34\x6b\x63\xab\x7d\x81\x3e\xd7\x2f\x34\x25\x5c\xca\x0a\xf8\x55\x23\x6d\x47\x10\xb1\xcf\xb0\x9a\x21\x55\x90\xd7\xa9\xbe\xb4\x7f\xe7\x02\x7f\x01\xeb\x59\x57\x47\xfe\x02\xab\xfc\x74\xfe\x12\x92\xf0\x3f\xff\xb2\xa5\x2d\xed\xc1\x2a\x62\x01\xc2\xd0\xa8\x62\x78\xae\xbc\x87\x12\x54\x2f\xc8\x6d\xbb\x31\xce\xb8\x71\x4a\x31\x04\xb0\xba\x19\x8d\x0a\x13\x49\x60\x35\x15\x24\x3c\x9e\xb3\x3a\x3d\x65\xe9\x88\xf6\x1c\x44\xe2\xfb\x08\xe0\xec\xb8\xdb\x10\x87\x7b\x57\xf0\x6c\x0b\x5c\xbe\xb6\xbe\xb6\x48\xa2\x00\x4d\xbd\x63\x9a\xd7\x83\x64\xac\x10\xb1\x06\xc4\x40\xdd\x94\xfc\xa5\x9b\xab\x82\xfb\x08\x4c\xb9\x5f\x3f\x6f\x1f\xfe\x3c\xfc\x31\x7b\x78\x5e\x1e\x6e\x96\x8b\xd9\x9f\x87\xed\x6c\xbf\x6c\xbb\x29\x5f\x0c\x38\xd5\x6e\xcf\xb9\xfc\x3e\x8e\x27\xa4\x4f\x7a\xa2\x6d\x8b\xe2\x74\x29\x91\x4c\x79\xa4\x17\xff\x45\x9a\xf7\x6f\xc4\x67\x84\x0c\x8d\x1c\xcd\x01\x83\x7a\x79\xcf\xb7\x12\x32\xe6\x8e\x77\xce\xaa\x86\x5a\x22\xcc\x96\x85\x14\x84\x54\x34\xb6\x51\xf3\x55\x35\x3f\x5f\xba\x90\x9f\x50\x0a\xb0\x84\xb2\xb7\x44\xbf\x3d\xee\x84\xd2\x1a\x01\xe7\x07\x2c\x6e\x7c\x38\xcb\xf1\xfc\x07\x8f\x49\xed\x92\x1a\x77\xfc\x78\x37\x10\x16\x01\x01\xd4\x43\x3b\xc1\x9c\x46\x9b\x12\x34\x94\x88\x3e\x68\x8e\x8e\x6f\xb9\x8b\x40\x80\x32\xb2\x82\x1f\x37\x29\x3f\x16\x6d\x0d\x9b\xd0\x09\xc3\xe0\xd4\x26\x7d\x79\xb9\xf4\x92\x09\x92\x04\x14\x73\x20\x60\x2b\x1f\x73\x95\x75\x2f\x2f\x89\x52\x88\x68\x77\x5a\x17\x83\x1f\x93\x9e\xa7\x11\x64\x37\x9b\x2f\x06\x5b\xfa\x5f\x25\xf2\xdc\xe5\x81\xd7\xa9\xce\xec\xbb\x94\xa8\xf4\x78\x90\x58\x7f\x6f\xde\xbd\x83\xf4\x59\xe2\xe2\xb6\x5b\x0b\x43\xaf\xa6\x4e\x7b\xe9\x8b\x08\xcb\x41\x05\xe8\xa2\x04\xcb\x59\x3d\x7a\xf6\x20\x64\x78\xd4\xda\x4c\xf2\x0e\xc5\x06\xaf\xa1\x7c\xae\x37\x93\x4e\x42\xfd\x60\xe4\x69\x1b\xa7\xaa\xdb\x04\x64\xd0\x98\xfa\x7d\xd1\x4b\x23\xfd\xf1\xc5\x9b\x07\xe0\x3b\x42\x95\x87\x87\x3f\x8c\xdc\x8d\x9f\x0c\xa2\x53\x32\xd0\xd2\x18\x96\x59\x51\x41\xe7\xc8\x0d\x6f\x44\x99\xe4\x61\x2b\x26\x0a\xa5\x23\xb8\xff\x42\xc4\x0d\x24\x15\x12\x74\x2f\x3a\xd2\x96\x0e\xcd\xcf\xa3\x69\x2a\x43\x45\xe2\xa8\xa7\xe2\xf6\x8c\x18\x6b\x50\xb3\x5c\x3d\xe7\x36\x3a\xa7\x86\x38\x04\x77\xa5\x36\x22\x0e\xfc\xac\x46\xca\xfd\x20\xa3\x50\xa0\x07\xde\xd5\x06\x3c\xf2\x34\xff\x23\xe5\x5b\xc8\xf8\xe5\xaa\xb3\x0c\x59\x4f\xaf\xe0\x91\xbf\x59\xeb\x61\x10\xae\x92\x51\x62\xd4\x27\xe7\xf3\xfd\xa2\xbf\x94\x64\xa4\x42\x2c\x18\x39\x36\xfb\x29\x56\x32\x7d\x91\xf3\xbc\x3e\x33\x65\x4c\x48\xd4\xc1\x45\x5e\x4b\x80\x7e\xea\x43\xc6\x9e\x40\x1c\xe8\x43\x61\x14\x31\x2d\xfe\xf4\x6f\x19\xb3\x32\x66\xa6\xa0\x5d\x9c\x2f\x87\xe5\xa7\x7c\x7d\x39\x88\xa2\x78\x1b\xc7\x34\xfe\x12\xfc\x23\x63\xcd\x0d\xe0\xee\x7a\x4c\x18\x49\x9c\xbc\xd1\x63\x91\xd7\xaf\xee\xc4\x18\x7d\x65\xa6\x0c\x4c\x6a\xb1\x5d\xff\xbc\xd9\xcd\x1e\x96\x87\xfd\x6c\x7b\xb7\xdc\xbb\xdb\x70\xcb\x21\xbc\xd8\xec\x06\x23\xcb\x23\xa5\x7b\x1e\xdc\x1f\x69\xde\xc6\x31\xa4\xf0\x29\xae\x16\x3c\xca\x6e\xfa\xd9\x42\xd7\x81\x1a\xbd\xa9\xbb\xed\x72\x3f\xb8\xab\x88\x09\xf2\xc8\x9c\x2b\x98\x55\xcd\x36\x55\xb6\x9a\x75\x20\x65\xe0\x21\x97\x21\xa2\xf7\x5b\x6a\xaa\xe6\xef\x02\x57\x13\xcf\x32\x43\xf4\x7a\x2e\xbb\x67\x51\x7e\x6c\xaa\xff\x40\xd7\x2c\x1a\xbd\xbc\x62\x2c\x36\x5c\x58\x9f\x58\x30\x3b\x9a\x7e\xe0\x81\x11\x4a\xb7\x89\xc7\xdd\xeb\x59\xeb\xfe\xf6\x08\x3e\xc1\x12\x28\x4b\x7b\xe3\x82\x14\xa8\x55\x7c\x5d\x34\x2d\x41\x45\xf8\x76\x5c\xa9\x4d\x09\x2a\x1d\xf0\x41\x4e\x27\x2f\xaf\xbe\xff\xf0\x09\x75\xcc\x6c\x76\xe0\x0d\xbe\x0a\xd2\x0e\x2c\x2a\xa9\x45\x60\x22\x87\xd2\x64\x8e\x43\xa7\x62\x6d\xda\x15\xf1\x01\x19\x25\xfe\xb7\x48\xf3\xbb\xb2\x38\x0f\xf9\x69\x41\x11\x0a\x46\x15\xba\x6c\xb6\x0c\xf4\xb0\x83\xf6\x5a\xe9\xc5\xcd\x31\x7f\x5b\x14\x6a\xc7\x35\xd4\x17\x03\xdf\x72\xcd\x5a\x5a\xce\x39\x83\x01\xc5\x14\xe3\x54\x1d\x8d\xf2\x3c\x16\xb8\xad\xa7\x04\xd8\x75\x25\x60\x2a\x08\x3c\x9c\x77\x38\xe3\x11\xa0\x6e\x19\x3e\xf9\x67\xdb\x45\xc7\x86\x2d\x91\x1f\x61\x7b\x2d\x83\x02\x8a\x86\x92\x33\x77\xda\x23\x4f\xbc\x75\xc6\xda\xfd\x5c\xd1\xd8\xb3\xe0\xe7\xfd\xec\xe1\xf0\xb8\x7a\xba\x31\x11\xa3\xc3\xee\x79\xb3\x79\x70\x0e\x95\x0a\x09\x0f\x7c\x4b\x12\xf6\x32\x00\x55\xd8\x0e\x51\x68\xb4\xcb\x5c\x89\x6d\xef\x4d\x62\xcf\x37\xa5\x8a\x43\x2d\x00\x4c\x94\xb6\x7d\x7c\xdf\x8b\xfb\x34\x7c\x8f\x69\x9e\x1e\xcf\xc7\x3d\x7c\xd6\x4e\xac\x7a\xf4\x8b\x31\x70\x87\x4f\x9f\x99\x58\xf3\x30\x98\x62\xbb\xb1\x30\xc6\xe8\x5a\x85\xe1\xa0\xbe\x16\xcc\x24\xce\x52\x25\xbe\x11\x67\x9f\xa9\x12\x72\x9e\xa5\xf9\x5f\xd9\xee\x8a\x13\x40\xbe\x58\xe0\x25\xb2\x38\x21\x5b\x1e\x7e\xab\xb5\x5e\x40\x96\x4d\x13\x5a\xa3\x60\x57\x62\x78\x88\x4c\xe0\x75\xf4\xe0\xdc\xf7\xb1\xd8\xa3\x68\xbe\xfd\xa6\x39\x8b\xb7\x20\x11\x89\xdd\x8f\x2d\x2b\x1e\x05\x58\x5e\x2c\xc0\xd0\xcc\x1d\xdc\x90\x0a\x2f\xa6\x41\x57\xe5\xc0\xaf\x02\xb5\x4a\xc4\x26\x02\xbe\x58\x1f\x6e\xd7\xcf\x4f\x37\xcb\xed\x61\xb3\xde\xee\x57\xeb\xa7\xf6\x1e\x49\xd8\x23\x3b\xfd\xe7\x34\x7d\x77\xd3\x0d\x1c\x50\x79\x53\xc2\x31\x6d\xd3\xcb\x4a\xa8\x18\x8b\xb6\xf0\x70\xdf\xf0\xba\xd9\x2b\x06\xbe\x97\x12\x10\x78\x6a\xa0\xdf\xdc\xaf\x46\x53\x32\x89\xa2\x36\xa0\x31\x59\x28\xaf\x64\x62\x84\xa9\x56\xb9\x2a\xca\x6a\x50\x9d\xa1\xa4\x0e\x09\xc7\x7d\x23\xcd\x6f\x66\x0e\xaf\xaa\x94\x67\x14\xea\x54\x01\xd5\xa6\x2c\x0a\x8d\xd5\x84\xd3\x5f\x79\x8c\xba\xb4\xb7\x00\x1a\x7b\xb8\xf8\x8a\x7d\xb1\xcb\x00\xc6\xfb\x87\x0e\x09\x7a\xf9\xf3\x3b\xaf\xff\x44\x40\x48\x0c\x3d\x1d\x98\x5d\x9a\xbf\x64\x2d\x87\x69\xb3\xb8\x07\xb7\x01\x92\xc4\xa1\x5d\xc2\x8f\x97\xc5\xb5\xbf\xe6\xba\x89\x30\x34\xc9\x44\x8b\x87\xa9\xfa\x35\xb0\x40\x54\x82\x3f\x6a\x11\x87\x6e\xd9\x81\x47\x3d\x44\x62\x6f\xb6\xeb\xdd\x7d\xf7\x47\xaa\xf4\x20\xb5\xb9\x03\x50\xb3\xea\x36\xfd\x04\x85\x01\xe7\xdb\xa2\xb4\xfc\xbd\xc3\xa7\xf0\x98\x49\x46\x63\x9e\xa3\x59\x00\x2b\xf5\xb9\xd6\x57\x8c\x9a\x00\x9e\x0c\xd1\x28\x2d\x72\xb8\x2f\xce\x25\xba\x76\x63\x4f\x16\x3c\x88\x91\x9f\xa1\x2d\xe3\x9a\x9f\xcb\xe1\xd9\x0f\x9e\x0e\x75\xd2\x71\xce\xa8\x9f\x69\x6e\x8a\x7f\xc7\x89\x63\xf0\xa9\xef\x19\xa6\xeb\x5e\xd4\xb8\x6d\x0b\x63\xe2\x1c\xa7\x7a\x7c\xa1\x94\x68\xc1\x18\xc4\xc1\xf2\x1d\xca\x4b\xfd\xda\x1d\x8d\x10\x44\xb1\x87\x12\xdf\x5c\x1d\xd3\xbc\x55\xaf\xbd\xbd\xda\x8d\x21\x48\x7c\xd9\xc3\xd8\x7c\x1f\xe9\x87\x40\x52\x53\x6d\xd2\xac\x06\xb4\xca\x3a\x4b\x00\xa8\xcf\x90\x70\xf4\x71\xf6\xeb\x70\xfb\xfc\x74\x73\x98\xed\x76\xcb\xfd\xae\x6d\x0e\x63\xdd\xc6\xa7\xf3\x36\x98\xd0\x6c\x4c\x98\xcf\x1b\xcc\x64\x08\x23\x81\x39\x81\x9a\xbf\x41\x71\x1e\x9d\xe5\x10\x26\x12\x9d\x38\xdc\x86\x5a\x0e\xf2\xc9\x87\x77\x99\x19\x88\x24\x18\x35\xf1\xed\x12\x2d\xad\xe5\xfe\xfe\xb0\x7a\x3a\xfc\x5c\xae\x0e\xb3\xc5\x62\xb9\xd9\x2f\x6f\x9a\xa3\xc6\x3d\x6e\xcc\x42\x24\xc9\x69\xf5\x22\x51\xc8\xf3\x5b\xa8\xa4\xbd\x92\x31\x0f\x2d\xa2\x43\x55\xf3\x7c\x18\xc0\x62\x5d\x21\x71\xcf\xc2\xb8\x56\x32\xe8\xb6\x52\x48\x08\x03\xd5\xf3\x47\x53\x09\x8b\x73\xf9\x0e\x3b\xa8\x6b\xa4\xe7\xfb\xc2\xd6\x9d\xb6\x7d\x21\xf1\x03\x7c\xad\xfe\xc1\x3c\x3c\x02\x20\xa1\x86\x4e\xb0\x85\x29\x5d\xfd\x44\xff\xf1\x42\x1d\xd9\xe0\xb8\xa8\x2f\x72\xa2\x50\x0c\x92\xd8\x47\x71\x21\x55\x9c\xaf\x8a\xe9\x41\x78\x31\x18\x01\x5f\x7e\xae\x5f\x8b\x32\xfd\x0f\x20\x81\xbd\x61\xd3\xba\x5a\xa3\x82\x6a\xb4\x4d\x66\xbb\xbd\x83\x29\x82\x10\x81\x0d\x22\x39\xea\xcc\x9f\xe9\x28\x92\x07\x92\x00\x82\x09\xca\xbe\x9f\x33\x1a\x1a\xe5\xc5\x51\xec\x84\x73\x1f\xd2\xaa\x76\x75\xad\xa3\x67\x50\x9e\x81\x06\xc2\x67\x0d\x79\xe5\x4a\xc4\x5c\x63\x62\xe0\x4d\x1b\xa7\x41\xde\x78\x6b\xae\xcc\x63\x74\x23\x88\xa5\x24\x9d\x9c\xcc\x6d\xca\xbf\x97\x60\x04\xd0\x89\x0a\xc3\x81\x24\xe2\x4a\x21\x96\x63\x48\x43\x65\x7a\x6b\xe2\xc5\x7a\x98\xd4\x70\xa1\x5a\x4d\x42\x1d\x85\x3d\x59\xd5\xd5\x49\x57\x03\x11\xe0\x5e\x0a\x4c\x13\xd0\x78\xaa\x58\xb9\x74\xe0\xc7\x4d\x51\x64\xab\xbc\x99\xdf\xa3\x9d\x49\x13\xad\x44\x5b\x11\xf2\x50\xf0\x7c\x9d\xcf\xe1\x95\x67\x7a\xad\xb7\x20\xcf\x65\x75\x5d\xb2\xfc\xad\xe9\xa3\x3d\xe6\xf9\x76\x82\xe1\x7c\x5f\xc9\xeb\xe2\xc5\x6f\xa7\xbc\xf6\x3d\xa9\xfc\x4e\x31\x83\x5f\x4f\x2b\xed\xfb\x1c\x11\x3c\x18\xf9\x9b\xa5\xe5\x4d\x59\x9c\xfe\x66\x9e\x4a\xfb\x71\x82\x95\xa6\x6e\x03\xbf\x05\xf8\x36\x7d\xa3\x03\x4e\x50\x7e\x60\xb3\xd9\x2c\xfe\xc6\xfd\x03\x99\x60\x1a\xf3\xc6\x58\xb9\x8d\xd7\x3f\x7a\x7a\x4a\x13\x0c\xcb\xef\xce\xaa\xa8\xce\xb2\xe5\xdf\xd2\x34\x01\x08\xba\x09\xd6\x86\x27\x75\x48\x63\x65\x57\x5d\x76\x70\xd4\x7a\xfd\x3c\xb3\x0e\x43\x19\x5b\xe4\xe3\x9c\x67\x59\x51\xaf\xf5\xce\x58\xaa\xae\x03\xa7\x49\x07\xfb\xb3\xca\xdb\x69\x91\x3f\xe7\x69\x1d\x75\x9d\xa4\x30\x52\xf0\xa2\xd5\x41\xb5\x99\xae\x2d\x1e\x5d\x13\x6a\xdc\x93\x76\xa9\x0e\x85\x46\x10\xde\xb3\x0d\x18\xa1\x08\x5f\x2f\x94\xa6\x23\xa6\x10\xc4\xd1\xf8\x1d\xb7\x69\xde\xac\xbd\x2f\x95\xbe\x47\x1f\x24\xd2\x26\x1a\x85\x21\xc3\x1e\x0f\x94\xe7\xee\x1d\x7b\x89\xb0\x0b\xe9\xf7\x33\x2f\x6b\x28\x2d\x4d\xe7\xf0\x3e\xb1\xcf\x11\x89\xd3\xa3\xdd\x1c\xf3\xf4\xe8\x38\x00\x21\x3a\x92\x82\x2b\xa1\xc1\xa6\x87\x46\xf3\xe1\x06\xde\xab\x81\x32\x03\xe8\x58\x29\x34\x1c\xef\xa0\x9e\x43\xbd\xfa\x6a\x82\x31\x22\x84\xcd\x52\xdd\xf0\x9a\x1f\xbc\xf6\x45\x58\x62\x52\x06\x86\x8a\xe2\x4b\x46\x10\xcd\x20\x08\x6d\xf8\x02\x9d\xc8\xcb\xf3\xf6\x61\x10\x20\xd3\x09\x91\xb8\xce\xf1\x4e\x06\x6c\xd3\x83\x3a\xe8\x24\x88\xd0\xf3\xba\x83\xfa\x06\xef\xb0\x85\xf7\xe2\xad\x71\xd3\xfb\x67\xfd\x00\x69\xac\x13\x9a\x60\xcc\x7c\x31\x9b\x17\x9f\x7d\xf3\x54\x27\x94\xa3\x33\x63\xe6\xda\x3e\xf4\x82\x63\x4f\x2c\x60\x3a\x18\xab\x13\x69\x18\x55\x6d\x92\x67\xca\xd5\xd5\x3c\xb4\x70\xa7\x6a\xf0\x7b\x3c\x54\x08\xfa\xd8\xa4\xf9\xcb\x86\xb7\x80\x03\x2d\x92\x30\xb0\x76\x2f\x0e\x6c\xe0\x0f\x07\x45\x06\x26\xc3\x67\x75\x53\xb2\x62\x1c\xb4\xd5\x10\x30\x8f\xb5\x6f\xb2\x3e\x41\x3e\xcb\xd5\x43\xbf\xfe\x7d\xd4\x9f\x19\xe5\xb4\xc7\x4b\x73\x82\xa4\xe7\x63\x63\x00\x34\x86\xde\xf0\x3d\x80\x47\x98\x16\xd0\x00\x26\xbb\x59\xf3\x6c\x51\x54\x8d\x4d\x6c\x69\x06\xbe\x1d\x2c\x4d\x48\x24\xfa\x45\x4b\xa6\xca\x29\x85\x92\xfe\xb0\x1d\x3c\x1a\xf0\xc0\xe9\x07\xa4\x9f\x90\x35\xee\x30\xd6\x9d\x4c\x2a\x4c\x69\xe2\x29\x81\x19\x63\x8e\x24\x76\xab\x1a\x8e\x86\x0e\xd7\x50\xca\x0c\x7f\xdd\xe7\x8a\xf4\xf1\x7b\xab\x5c\x17\xcd\x00\xef\x4b\x2e\xdf\x5a\xb3\x56\x13\x5f\x02\x9a\xbd\x5b\xae\x79\xcd\xcb\xf6\xcf\x2a\x44\x98\x88\xb2\xf9\xbf\x11\xf0\x46\x93\x20\x36\x2e\xc0\xae\x38\xf2\xe6\xfc\xf8\xea\x04\xfa\x6e\x9b\xd0\x84\x06\x12\xd3\xd8\x4f\x50\xbf\x95\x45\xde\xde\x9d\x6a\x25\x2c\x01\x16\x86\x33\xaa\x1e\x8b\x06\xfb\xe2\x5e\xa1\x67\x52\x6b\xf3\x8c\xe7\x6f\x0b\x9e\xbf\xf3\xca\xdd\x2e\x8c\x4d\x92\x75\xb7\x5c\x3c\x6f\x97\xeb\xe7\xed\x6e\x71\xbf\x5e\x3f\xec\xfe\xf2\xa8\xd0\x24\x64\xbe\xb0\xba\x01\xcb\x53\x5a\x15\x0a\xb0\xf4\xf3\xab\x5d\x70\x74\xad\x0e\xed\x86\x7f\x57\x64\x58\x59\x3f\x51\x79\xaa\x49\x28\x34\x7e\xd7\x6d\xe3\x9c\x1f\xfc\x83\x33\xa7\x7b\xa5\x19\x9a\x84\x4a\x62\xc5\xe1\xb1\x50\xbf\x7e\x0c\xdf\x3c\xf2\xa8\x4b\xc6\x37\x93\xa2\xad\x52\xd6\x24\x4a\x38\x04\x1d\x8f\x30\xcf\xc0\xc6\x5b\x46\x77\x88\x39\xf3\xac\x2b\xd8\x46\x61\x86\x3d\x18\x25\xc4\x70\x3e\xbd\x16\x59\x2f\xc0\xa6\x49\x42\x3c\x44\x8a\x1e\x5e\xf8\x69\xad\x17\x67\x01\xbb\x1e\x0b\xed\xf0\x2e\x49\x44\x22\x74\x18\x8a\x2c\x33\x40\xec\xbf\x77\xa0\x68\xc2\x3d\x8a\xfc\x7a\xc6\xe2\x70\xac\xed\x65\x71\x1c\xd0\x04\xb8\xce\x01\xa1\x91\x5d\x59\xeb\x73\xdd\xa3\x16\xd1\x84\x2b\x2f\x72\xea\x9f\xce\xbe\x58\x97\x4f\x45\x79\x1c\x51\x85\x68\xc2\xc1\x1c\x3e\x2f\x50\xa7\x15\x2a\x87\xf4\x4d\x47\x4d\x84\x1f\x20\xb8\xc8\xfe\x75\x5f\xec\xea\x72\xdc\x85\x1a\x0e\x11\x3c\x07\xfd\x65\xde\x7d\x1a\x41\x95\xc3\x41\xbf\xcd\x2a\xab\x68\x37\x7a\x00\x11\x52\x27\x2d\xbd\xfe\x00\xe5\xe8\x86\x46\xbd\x94\x90\xee\xfc\x6b\xf5\x3f\xeb\x7e\x51\xaf\xe7\x62\xaf\x53\x1b\xa2\x26\x4a\xf9\xd4\xf2\x96\x2d\xf8\xa9\x9f\x5a\x6d\xda\x14\x82\xac\x80\x97\xd9\x45\x74\x2c\x96\x9a\x80\x1f\x24\xc2\x61\xb0\x07\x84\xaa\xb6\x83\x0e\x7d\x3c\x32\x5f\x0b\x95\x19\xa1\x9d\xbf\xb0\x31\xcd\x75\x9e\x47\x4c\xe5\xda\xde\x14\xa1\xa1\x65\xe3\x7e\xd5\xf3\xc2\xd0\x48\xc0\x66\xc0\xcb\x11\xf5\x84\x35\x08\xb4\xe7\x81\x87\x08\x8e\xac\x78\x69\x93\xba\xdf\x3a\x98\xcd\x25\x61\x68\x4e\x2d\x44\x32\xf6\xf8\x3a\x9b\x36\x8d\x04\x37\xf7\x67\x91\xa6\x4f\x50\x7f\x14\xe5\xdb\x60\x94\x3c\x3f\x0c\x22\xd2\x4e\xce\x9f\xce\xd9\x19\x79\x27\xda\xf3\xb9\xd9\x10\xb6\x00\xcd\x77\xca\xe5\xe5\xb1\x4d\xc0\x68\x2f\x88\x62\xc7\x6d\xfb\xc0\xf3\x97\x33\x7f\x69\x2b\x71\xdb\x57\xa3\x9e\x4f\xed\x42\x35\x11\x92\x7d\xd1\x53\x70\x63\xae\x17\x27\x08\x04\x5f\xcc\x57\xfd\x74\x44\xd3\xa0\x64\x6c\x59\x55\xd2\xfc\xc5\xb0\xc3\x0e\xbf\x9b\x17\xca\x10\x01\x39\x46\x27\x62\x5b\x14\xc7\xf9\xa5\xf9\xdf\x51\x82\x5f\x7b\x31\x89\x8c\xa0\x44\xc9\x6d\xe1\x48\x3b\x20\x2c\x88\x69\x9f\x23\xb8\x17\xa4\xd2\x1e\x03\x8a\xa1\x2e\x8d\x6a\x3b\x7d\x95\xe1\xbf\x2c\x98\x6c\xbd\xe4\xe6\x2e\x09\x3a\xf1\x06\xb1\x35\x20\xc6\xb2\x3d\x92\xc8\x43\x4b\xb9\xf1\x3c\x4e\x70\xc5\xf9\xe7\x7a\xc5\x09\x72\x11\x65\xa9\x84\xbc\x82\x3d\x94\xc7\x61\x91\x91\xf6\x12\x19\x18\x7d\x45\xc4\x54\x20\x0b\x9f\x9a\xcc\x72\x4c\x57\x9b\x6a\x8f\x2b\x8a\xf3\xe3\x66\xb6\xd9\x20\xa0\x68\xf0\x51\x84\x06\xb4\x4e\x8f\x86\x0b\xb2\x5d\xe6\x03\x48\xb5\xf6\x20\x8c\xa2\x0e\xeb\x34\x06\x90\x8f\xe6\x33\xc4\x80\x92\xe5\xbd\x18\xc0\xfc\x5c\xe6\xd3\x31\x00\xed\x01\x53\xe8\x0a\x64\xbc\x32\xc5\x27\x07\xee\xd9\x2c\x88\xf6\x89\x1f\x62\xd1\xb3\x70\x95\x38\x36\xfe\xee\x9a\x85\xd6\xd6\xd2\xd8\x9d\xf8\x47\xde\xd5\x40\x8c\x0d\x18\xdf\x23\x21\x26\x32\x0c\x2f\xdb\xb2\x1e\x16\xca\x68\xdf\x27\x7e\x60\x6b\xd6\xee\xca\x54\x31\xf7\x13\x3e\x03\xaf\xf9\x46\xcf\x8b\x99\x0b\x5f\x6a\xdf\x4f\xdc\x5c\xae\x77\x35\x9c\xae\x81\x39\xda\xf7\x05\x43\x02\x94\x09\x8a\xd8\x6f\xf7\x20\x3f\x08\x0c\xea\x7c\xbb\x7c\x58\xce\x76\xcb\xc3\xfe\x7e\xbb\xdc\xdd\xaf\x1f\x6e\xdc\x8f\x07\xc2\xd8\x6e\xff\x3e\x17\x35\x1f\x05\x21\xb5\x4f\x45\x1c\xf7\x23\xfe\x4f\xf0\xd1\xe3\x48\xf8\xc7\xb8\xb3\x21\xa0\x5f\xee\x16\xf3\x8e\x27\xee\xef\xa4\x4b\xb5\x1f\xc6\x01\x5a\xd5\x6d\xe8\xf4\xbe\x38\x57\xb0\x38\xd7\x13\x30\x02\xed\x47\xa1\xc2\xc0\x52\xf3\x21\xbf\x65\x2b\xd2\x7e\x04\x14\xa3\xf5\x6d\xe0\xa6\x3d\x40\x7d\x46\x15\xb2\x0e\xdc\xa4\x95\xe4\x65\x5f\x11\x45\xfb\x2c\x51\xcc\x4a\x20\xfd\xd6\x33\xa9\x47\x99\xbb\xef\x8f\x7a\x3f\xe1\x26\x1e\x0c\xc7\xb4\xfe\x59\x94\x6f\x5f\xb9\x9e\xae\xbb\xf2\xdd\xf1\xf7\x04\xe9\xcb\xab\x28\xce\xa5\x61\x94\xfa\x02\xb8\xaa\x7d\x9e\x78\x58\xd8\x66\xcb\x78\xab\xe6\x05\xad\x49\xf1\x38\x12\xb0\xd4\xbe\x20\x14\x0b\x1d\x24\xcf\xb2\x79\x2d\x7f\xa6\xf5\xeb\xae\x96\xd7\x01\xbc\x6f\xb2\x9e\x53\xfd\x06\x31\x4b\xf7\x53\xb1\x32\x2e\x03\x3a\x7f\x77\x50\xf7\x28\xa6\xbe\x78\x7b\x21\x84\xea\xc8\xf5\x5c\xee\x73\xd4\x47\x79\x4e\x6d\xed\x26\xad\xb8\xe5\x73\xbf\xd2\xaf\xd0\xbe\x0c\x19\x9e\xae\x87\xc6\x6b\x78\xcb\x3b\x9e\x05\xed\x4b\x99\x20\xa0\xe8\x71\xf6\xeb\x30\x5b\x6d\x6f\xb6\xeb\xcd\x00\x72\xae\x7d\x45\xa9\x0c\x5a\x07\xf7\x78\xba\x2d\xca\xa9\x99\xec\x7a\x87\xa6\x36\xd3\x78\x6d\x37\x57\xe9\x46\x1b\x76\x1b\x4d\x4b\xc5\x62\x42\x9c\x9d\x2a\xcf\xbd\x1c\x87\xf6\x95\x12\x61\xcf\xdf\x7a\xce\xb5\x29\xdf\x1b\xfd\x2e\x44\xb8\x5b\x15\x1f\x79\xd5\x03\x6f\x0e\x42\x35\xda\x07\x9f\x58\x76\xc8\x0a\x6a\x5b\xe9\x69\xc0\x12\xc3\xbb\x41\xa0\x5d\x58\xa0\xf5\xb2\xee\xa1\x4c\xc7\x11\x4e\xed\x43\x1c\xa0\xbf\xbd\x7a\x5a\xed\x57\xb3\x87\xbb\xd9\xee\x76\xbd\x5d\x6f\x67\x8b\x87\xd5\x3f\x97\x3f\xda\x4e\x12\x61\x1f\xab\xc7\x9b\xe5\x2f\x14\xf5\x68\x6d\x1b\xd6\x96\x05\xfd\x0f\xfd\x97\xeb\x9e\x84\x18\x72\x3a\x0b\x3c\x11\x5c\xf8\x56\xfb\xda\x37\xa0\x29\xeb\xa7\x1f\x4e\xa8\xbc\x7d\x38\x57\xad\xb4\xb8\xf6\x75\x62\x48\xcc\x75\x51\x6a\x48\x6b\xeb\x66\x0d\x5f\x4f\x73\x2f\xb2\xfa\xae\xd6\xc6\xbb\x85\x69\x1a\x40\xed\x6b\x65\x74\xdd\xdf\x53\xf8\xf8\xa3\xa8\x5d\xca\x57\x07\x24\x08\x91\x52\x9a\x1b\x15\xf4\x05\xcf\x91\x0b\x70\x40\xdd\xac\x03\xc2\x18\xae\x32\x1b\x29\xdc\x82\x02\x38\xce\x6e\xf7\xbf\xf9\xae\x87\x27\xb4\x15\x5a\x44\xb8\xdb\x0e\x4b\x87\xcf\x25\xcc\x72\xf5\x08\xf5\x6b\x71\x0d\x85\xe9\x02\xae\x3a\x68\x8e\x0b\xab\x5c\x67\xb5\x25\x3a\x5b\x3c\xf0\x03\xe5\xc0\xf6\x9b\xac\xa8\x7b\x30\x7b\x1d\xf8\x91\xa9\x63\x4b\xab\xf5\x88\xbd\x48\x07\x41\x10\x21\xe5\xf9\xc9\x68\x6d\x57\xf3\xcb\x1c\x72\x30\xec\xc0\xe3\xae\xb1\x51\x48\x56\xf0\x6e\x8a\xdd\x6c\xf5\x90\x6b\x66\x82\x99\x30\x08\xbc\xad\xd5\x17\x5b\x5d\x10\x24\x5a\xd2\xde\x74\x43\xb6\xb0\x41\xc5\x83\x0e\x02\x6d\x18\x95\x04\xd4\x1e\x21\xe4\x40\x88\x07\x8e\x37\x5f\x07\x34\x08\x19\x73\x8a\x31\xd3\x93\xcb\x66\x55\xfc\x8e\x9f\xd5\x4d\xb8\x80\x2a\xc0\xb0\x6f\x56\xd4\x75\xd1\x27\xe4\xd7\x41\x28\x4c\xa6\xef\x30\x10\x27\xac\xf6\x85\x65\xe6\x77\xdd\xa4\x12\xd6\x6b\x68\x81\x62\x01\x69\x5b\x55\x82\xfc\x5e\xa7\x12\x56\xb2\xe8\x79\x4b\x41\xa8\x25\x52\x88\xdd\xaf\xee\xee\x0f\xdb\xd9\xd3\xdd\xb2\x87\xe1\xd4\x41\xe4\x05\xb8\xf7\xf0\x2c\x5b\x76\xcf\x14\x71\x66\x62\x47\x8d\x4d\x37\xc3\xda\x0d\x43\x77\x5b\xcd\x4a\xb0\x66\xdc\x00\x33\x3d\x6d\xbe\x05\x91\x36\x80\x4b\x7d\xe2\x65\xfd\x63\xf0\x45\x62\x12\xfa\x96\x2c\xb3\x74\x71\x21\x64\x85\xb0\x52\x92\xc3\x49\x10\x4b\x03\x54\x7d\xc1\x60\xa3\x49\xdd\xce\x72\x65\xd4\xe8\x5d\x9f\xc6\x9f\x6f\xf6\x80\xcd\x5a\x16\x69\x7e\x5f\xd4\x90\xd9\xc5\x69\x7b\xb0\xd8\x90\x30\x95\xbc\x6e\x86\xa9\xfd\x33\x0f\x88\xc1\x98\xe4\xc3\x31\x67\x8a\x20\x62\xc8\xc6\x79\x21\xcb\xb0\x7c\x6d\xda\x1c\x09\x12\x0a\x9e\x13\xa9\xe7\x55\xed\xd8\xcc\xbc\x3e\x7e\x87\xb9\xbe\x1a\x10\xc0\xd4\x41\x0e\x31\xa7\xff\xc8\xf3\x33\xcf\x46\xb2\x09\x3a\xe0\x11\x09\x3a\x85\xce\x41\x02\x5f\x07\x9c\x6b\x47\x7a\x82\x36\xcc\x54\x2d\xa8\x0e\xb8\xd2\xe8\x34\xff\xda\xcc\xac\xe2\x94\x6d\x10\x31\x11\x4e\xac\xf9\x9c\xd5\xe9\xd6\xc1\xd0\x1b\x03\xac\xe4\x57\xb5\x19\xee\x32\x90\xe8\xda\x01\xaa\xdd\x4f\x6e\x6c\x81\x24\x21\x3e\xb6\x2c\xf2\x1a\xf2\xfa\xbe\xa8\xea\xf9\x65\x35\x94\x52\xd4\x81\x8c\x28\x42\x70\x56\xd2\x30\xe9\xf6\x1c\xbb\x40\x0a\x19\x18\x76\xeb\x1c\xfd\x94\x65\xfd\x6a\xec\xb3\x43\xdb\x43\x09\x4b\x91\x8b\xe5\x85\x8f\xe1\xfe\x2a\xe9\xa7\x03\x15\xf9\x48\xb1\xb1\x5c\xef\xe6\x50\xb7\x60\xb2\xe9\xcf\x08\x8c\xe1\xd6\x8d\x81\x73\x43\x84\x5f\xfe\x18\x9a\x5f\xb6\xa7\x8e\x25\x9e\x9b\xc6\xf6\xec\xb1\x08\x7e\x65\xad\x4d\xfe\x20\x25\x91\x22\xad\x12\xf7\x72\xfe\xfc\x0d\x94\x46\x53\xc2\x08\x96\xb7\x21\xa1\xcb\xa9\x84\x43\x2a\x87\x19\x18\x4d\x89\x0c\x20\x72\x81\xdf\xdd\x07\x3f\x3d\x74\x23\x4a\xbd\x88\x23\x20\x4f\xa7\x65\x65\xd0\x80\x4b\x07\xab\xd5\xd4\x03\x83\x73\x6c\xe6\xd9\xfe\xb5\x2c\x3e\x26\x64\xa3\x9e\x0a\xe3\x98\x76\xd7\x70\x64\x62\xd4\xa6\xdc\xa9\xfd\xb3\x4e\x30\x3e\x99\xc3\xc7\xa6\x2c\x4e\x45\xc5\xb3\xaf\x30\xde\x93\x59\x46\x7b\x1b\x3f\x8e\x11\x96\x97\x5a\x4a\xda\x45\x8b\x74\xc0\x38\xc3\xb7\xe6\x30\xf5\x45\x88\xb5\x3c\x7d\xc4\xc1\x38\x09\xa2\x69\x40\x38\x37\x5c\xb8\x35\xbc\x14\x8e\xb1\x46\xd3\xc0\xa3\xc8\x27\xd3\x78\x76\x37\xfc\xd2\x85\xde\x35\x0d\xb8\x61\xb2\x30\xa9\xb5\xa5\x2d\x9e\xde\x22\x70\x02\x1c\x15\xc1\x70\x0d\x53\x9a\x30\x66\xa1\x89\xc5\x47\xf5\x04\x1f\x77\xbc\xa5\x86\xd2\x34\x4c\x7c\x2d\x5a\x45\xf4\x73\xd6\x2f\xfb\xd3\x34\xa2\x80\xd0\x0c\x37\x0a\x56\x1d\x68\xf4\x0b\x11\x10\x3c\x28\xad\xcf\xf6\x35\xe3\xb5\xa6\x31\x25\x61\xa7\x92\xb6\x3e\x35\x9e\x69\xf3\x6d\x7e\x0c\xe6\x5a\x4c\x13\x5c\x36\xd5\xf9\x78\xbc\x2d\xce\xb9\x82\xd2\x60\xe4\xdc\x53\xc7\x2c\x76\x55\xc4\xab\xca\x16\xa4\xb7\x6d\x5a\x23\x7a\x50\xf4\xf8\x28\xed\xee\x47\x19\x8b\x10\x7a\x5c\x42\x5d\xa6\xf0\x0e\x7f\xf0\x3c\xad\x2f\xb7\xc5\x48\x8c\x66\xb4\x4e\x18\x98\x6a\xd6\x13\xbf\xca\xb6\xd8\x1e\x49\x18\xe1\x5c\x5c\x1e\xe6\xe9\xb4\xe8\xa9\xa6\x89\x2d\xc4\x4c\xab\xbb\x8c\xab\x94\xd7\x45\x89\xf5\x4a\xa3\xc1\xe4\xc4\xc8\xab\xa5\xb2\x38\x20\x3a\x3f\xcd\x5f\x0e\x55\x2f\x01\xa6\xa9\x08\x3c\x2c\x91\x3d\x35\xb6\x84\xd1\xb9\x70\x2d\x11\x0b\x9c\xe3\xe3\x34\x58\x6d\x3c\x6e\xf4\x33\x22\xf1\x30\xeb\xbe\x31\xf7\xe8\xa3\xef\x5c\x0f\x1e\x22\x4a\xba\xd0\x1a\x4a\xb4\xaf\xae\xbc\x7f\x2a\x94\xc6\xf8\xd7\x0e\xea\xc3\xa5\x38\x97\x87\x17\x7e\x84\x43\x8e\x08\xbb\x83\x80\xfa\x03\x20\x3f\x78\x07\x2f\x1c\x7e\x5f\xc9\x22\x34\xde\x1e\x8a\x97\x27\xf8\x98\x10\x02\xd2\x54\x45\x1e\x35\x33\xcf\x22\xbe\x9b\xdd\x77\xd4\x07\xa2\x38\x69\xb9\xaf\x9e\xea\x1e\x91\x8c\xa6\x20\x09\xb5\xa8\x45\x3b\x83\xc6\x17\x6b\x0f\x91\xa0\xc2\x6e\xca\xcb\x4f\x33\xc5\xcd\x91\xfb\x8d\xac\x9b\xa6\x9a\x48\xcc\x0b\x9a\x49\x8c\x54\x5a\xf3\x31\x73\x83\xa6\x3a\x82\xc4\x39\xfa\xcf\xf9\x23\xaf\xde\x40\x2d\x2d\x0e\xf1\xab\x1b\xdb\x0a\xc9\xe6\x12\x8c\xa5\x7e\xff\x18\xda\xb0\x54\xdc\x17\x39\x54\xf5\x0b\x3f\xb6\x8a\x21\x3a\xf4\x7c\x0f\x4f\xdd\xc6\x73\x04\x99\xa2\x9f\x86\x98\x10\x48\x5d\x17\x9f\x70\x61\x03\x7e\x3c\xcb\x0e\xaf\x45\x59\x41\x1f\x9a\xa6\x43\x9f\x2b\x74\x80\x1e\xd3\xbc\x7e\xec\x19\x9f\xd3\xbb\x5e\xe8\x0b\x82\x90\xfb\xed\x39\x1f\x18\x0a\x61\xe0\x73\xf7\x2d\xe6\xfc\x65\x96\xab\xbb\x54\xd7\xd3\xc7\x7b\x18\xb0\x10\xf1\x49\x4f\x70\xaa\xf9\xe0\x2e\x94\x11\x67\xe5\xa0\x66\x1a\xda\xed\xa9\x4c\x79\x99\xb6\xdb\x59\x48\x19\xc7\xfa\xf7\xcd\xc3\xec\xcf\xe5\xf6\xb0\x7f\xde\x3e\x1d\x76\xab\xa7\xbb\x87\xe5\x61\xb3\xdc\xae\xd6\x37\x6d\x47\xae\x31\xe0\xbc\x4f\x61\xe2\xe0\x0e\x43\x4f\x60\x8e\x73\x63\xdc\x84\x91\x69\x63\x19\x9f\x5c\xdf\x88\x20\x97\x7c\x73\x78\xdd\xf2\x2c\x13\x5c\xbe\xad\x2a\x44\x58\xa8\x75\x1b\x2c\x75\x3f\x1c\x27\x01\x86\xe6\x1e\xd6\x77\x07\x3c\xcf\x5a\x50\xfc\xe4\xb6\x11\xc6\xd2\xe8\xa0\xcd\x67\xdb\xc1\x70\xb0\x90\x98\x58\x5a\xcd\xdf\xa0\xac\x6e\x8b\x72\xd3\x98\x16\x03\x13\x27\x64\x49\x94\xd8\xe8\xdc\xee\x71\xd3\xd7\x12\x5d\xe5\xad\xd2\x8d\x0e\x93\x44\xf0\xd0\x41\x64\x5a\x86\x97\x1f\x7d\x5e\xab\xf6\x96\x89\x66\xd2\x66\x7f\x4d\x2a\x73\x3c\x36\xc3\x81\xe4\x01\xc7\xd3\xc7\x89\xe7\x54\x3d\xa5\x57\x1d\xf2\xc8\xc7\x18\xbe\x72\x2a\xe1\x97\xd1\x77\xe0\x8c\x98\xef\x69\x90\x15\x43\xf5\xff\xf1\xbf\xf6\x98\xef\x22\xce\x21\x67\xda\x72\x5a\x64\xd9\x43\x2b\xa7\xa5\x43\xc1\x4d\x24\xda\xd4\xa8\xda\xe0\x88\x6b\x94\x3e\xc1\xda\xc0\x1d\x64\x7a\xc3\x5b\x49\xdd\xbf\x8a\x12\x7d\x6b\x6b\x85\x2a\x0c\x02\xe3\x0a\xdf\xf3\xea\x15\xdd\xe1\xd1\xb7\x52\x5c\xe3\xe2\x3f\xa8\xf3\xf1\xb4\x2f\x8c\xfa\x86\xdb\xf3\x43\x9d\x04\x18\x9f\x5c\x9f\x4e\x45\x59\x5f\x06\x53\x41\x73\x85\x68\xb6\x1b\xfe\x13\xd2\x49\xc0\x4e\x7f\xf7\x0d\xb5\x20\x96\x18\xf7\x72\x0f\x59\x56\xb4\xb7\x11\x86\xe6\xab\xaa\x8b\xd3\x26\xe3\x5d\x01\x9a\x0e\xb5\x0a\xdd\xda\xfb\x0d\x2e\x2e\xf2\xd2\x97\x3c\xd7\x91\x47\xa8\x67\x64\x6f\x0c\x7f\xf3\x2c\xcb\x66\xe5\xcb\x55\xb4\x7b\x38\x2e\x91\x17\x85\xcc\x51\xa2\x39\x62\xd6\xfd\xfd\x93\x83\x29\xeb\x28\x24\x46\x6b\xcb\x30\xb5\x4d\x2f\x92\x28\x22\x26\xea\xe1\x0c\xae\x6d\x5b\xc9\xd5\xb4\x71\x23\x8b\x08\x59\xfa\x0e\xe5\x82\xe7\x2a\x55\x5f\xb1\x60\xe9\x28\xa6\x60\x8a\x34\xab\x7e\x52\xc8\x35\x4a\xce\x89\x0d\x32\x95\xef\xae\xf4\xc8\x99\x28\xae\x17\x0b\x4d\x81\x24\x57\x6a\xc1\x2b\xd9\xec\x9c\xd3\x8f\xcd\x98\xd2\xb6\x18\xa3\x31\x11\x4b\x9e\x8e\xf1\xb8\x3a\x62\x89\xd1\x2a\x50\x65\xb3\xcd\xdf\x20\x29\x42\xf7\x40\x49\x63\x98\x1b\x53\xa0\x46\xbd\xe2\xbf\xc5\x6a\xd6\x5c\x17\x23\x3d\x91\xa5\x58\xdd\x62\x16\x6c\x94\xfb\x8a\x78\x14\x63\x1c\x05\x2d\xc7\x7d\x5f\x48\xe5\x47\xdb\x43\x20\xb1\xd4\x43\xf1\x62\xb7\x81\x05\x3f\x2d\x3f\x25\x80\x9a\xa8\x43\xea\xcf\xc2\xc6\xd1\x47\x46\x89\x99\xa8\x30\xff\xf9\x7b\xd3\x0b\xaa\x0a\x72\xc7\xe2\x3f\xfd\x7d\xb8\x24\x18\x2c\x29\xcf\xc3\xca\x75\x1d\x09\x8f\x7a\x4e\x55\xcd\xca\x88\x75\x5b\x41\x24\x02\x3f\xe1\x0e\x92\x77\x50\xc5\x47\xfb\x12\x92\x0a\xdc\x24\x1d\xb7\xd1\xa4\x1f\x1b\x29\x4f\xe2\xbe\xf7\xfb\x3f\xbf\x54\xd7\x1a\x3d\xa9\x8a\x85\x11\x91\x3c\xa6\x96\xfc\x39\xfb\xba\x38\xcb\x5d\xc3\x69\x20\x5d\x59\xc8\x4f\x48\xdb\x02\xf0\xbe\xc2\xb6\xed\xab\x3d\x83\x02\x75\x38\x1c\x7f\x68\x65\x45\x9a\x01\x32\x63\x62\xd6\x3e\x75\x5c\x05\x3a\xd2\x5c\x1a\x73\xd6\x54\xde\xf5\x61\xc8\xb6\x4b\x4c\x22\xae\x3a\x35\x1e\x64\x9e\x1e\x5a\x37\x31\xe1\x80\x55\xfe\x90\xab\xc6\x3c\xe8\xf6\x8a\xd8\xe3\x1e\x12\xf5\xcd\x17\xdb\xe5\xcf\xd9\xf6\xe6\x0a\xb2\xd1\x7f\xc8\xd8\x4f\x02\x0c\x88\xee\x96\x0f\x0f\xcb\xed\x61\xb7\x5f\x6e\x0e\xd4\x42\x91\x87\xdf\x37\x0e\x12\x23\xbc\x6b\xcc\x2e\xb4\x54\x7a\x7c\x91\x86\xae\xc7\x76\x0d\x89\x91\x4b\x6c\x8e\xe4\x9f\xa8\xc4\x3a\x7a\xfc\x28\xe4\x18\x53\x86\x52\xfa\xc4\xc8\xa5\xc2\xe2\x15\xfa\x38\x9b\x38\x92\x04\x53\x80\xf7\x9b\xdf\x27\x4c\x84\x38\x66\x0a\x89\xc4\x5a\xe8\x5f\x1f\x0d\x30\xaa\x53\x18\xbe\x48\x2c\x22\x43\x84\x71\x3f\xdb\x2e\x6f\x57\x37\xcb\xa7\x85\x0b\x8b\xc5\x31\x28\x04\x14\xa6\x55\x27\xb0\xd9\x02\x37\x62\xc6\x43\xb3\x45\x63\x69\xc2\x73\x05\xe5\x2e\x7d\xc9\x9f\xa7\xc9\x61\x75\xcc\x14\xd5\x96\xc5\xae\xa5\x47\xd2\x71\xc2\x0d\xac\xcd\xe8\x8c\x63\x2d\xcc\x03\x6a\x6e\x0d\x2f\xe6\xd4\xd4\x15\x65\xc5\x4b\xb1\x6a\x2f\xe6\x61\x82\x0e\xdc\x7c\xbb\x7e\xfa\xe7\xf2\x30\x7b\x5c\x3f\x3f\xed\x0f\xbb\xdf\x1e\xba\x0e\xdc\xa9\x98\xaf\xce\x0a\x3e\x91\x15\x79\x36\x66\xcb\x6c\xc7\x82\x4b\x62\x32\x47\x79\xbf\x7a\xad\xb7\x70\x63\x19\xb7\x0c\x4d\x3b\x14\x10\x33\x78\x89\xa1\xe4\xd8\x1f\x50\xa2\xb3\x33\x7a\x07\x99\x00\x2a\xf3\x9b\xe8\xe4\xbe\x13\xd6\x72\x4f\xab\x68\xec\x8a\x57\x1f\xd3\x1c\xf3\x05\xee\x18\x5a\xe5\xeb\x1c\xee\x8a\xd1\xc4\x51\x42\x62\xd0\x2b\x4b\x91\xb4\xf1\x04\x75\xda\x15\x71\xeb\x58\x29\xe3\x80\x99\x12\xad\xc3\xed\x7a\x7b\x98\xdd\xfc\xb1\xda\xad\xb7\xbb\x76\x84\xc0\x03\x0c\xee\x9d\x8a\x0f\xf7\x27\xed\x1b\xed\xc8\xdc\x7e\x0f\x23\x82\x36\x37\x0e\x14\x3e\x71\x67\xe3\xc6\xda\x07\xcf\xaa\xd7\x34\xb6\x44\xd9\xe3\x1a\x1e\xee\x10\xb1\x0e\x98\x21\x4f\x28\x51\xf0\x04\x6b\x1b\x66\x9d\xf4\xf7\xb8\x70\x4b\x33\x42\x7c\xf4\x63\xad\x80\xeb\x21\xcd\x75\x31\xee\xe2\x03\x72\x9b\x19\x1a\x93\x96\xc4\x0f\xa3\x88\x2e\xf0\xcf\x08\x05\xae\x5a\x8a\x0c\x40\xdb\xae\xbe\xcc\x2f\x5d\x8e\x81\x11\x19\x06\x2d\x4c\xc5\xb2\xa9\xcc\xe1\x25\xed\xe1\xc8\x35\x23\xda\x43\xc6\xb3\x87\xb4\x3e\x9e\xc7\x6a\x78\x4d\xb3\xf6\x5a\xae\x28\x27\x66\x37\x0c\xae\x33\x2f\xd2\x2a\xb1\x2a\x2c\xe3\x53\x9f\xb9\x3e\xb1\xc6\x39\x8b\xa8\xa3\x7f\x72\x5e\xde\x5a\xb5\x40\xd7\x0e\x46\x27\xd2\x80\x45\x1e\x78\x85\x33\x71\x9d\x67\x97\xa7\xa2\xee\xf4\xa5\x6d\x6f\x5f\x32\x6e\xb2\xeb\x2e\x00\xd5\xf7\xaa\x98\xaf\x0d\xc0\xb3\x82\xfa\xb6\x2c\x46\xd0\x71\xcd\x02\xdf\xc7\x35\xfb\xef\x33\x94\x97\x6d\x91\x8d\x08\xe2\x34\xa3\xe0\xc7\x76\xf9\xfe\x2c\xca\xb7\x53\x91\xe6\x75\x33\x45\x8a\xd2\x9e\x32\xee\x87\xc2\xc4\xe8\xdf\x57\x96\x6d\x76\x57\xc3\x69\x58\x7d\xaa\x59\xa8\x0d\xa9\xf6\x6a\xbb\x70\xea\x2a\xa8\xb5\xe5\xee\x11\x25\xd4\x90\x4b\xa1\x1b\xde\xb8\x2a\xa6\x02\x04\xca\xd5\xf0\x28\xf3\x7c\x37\x98\x31\x31\x2b\xba\x76\x8a\xfb\x37\xf0\x0e\x59\x71\x3a\x76\xa9\x23\xc6\xc2\x18\x71\xd5\x77\x8b\xc5\x50\x67\x60\xe2\x88\x60\x09\x31\x27\x6f\x5a\xdd\xf5\x51\xcd\xae\x95\x05\xa1\xd1\xe1\x7a\x07\x9e\xdd\xa7\x4a\x41\xee\x58\x65\x7a\x76\x6a\x44\xdb\xf4\x88\xe7\x5e\x3e\x51\x11\x58\xef\x68\x56\x1e\x8b\xd2\x04\xf5\x87\x03\xc4\x7d\x9f\x5b\x0a\x0b\x68\x59\xc2\xdb\xc9\xc5\x13\x1f\xa3\xe9\xb2\x2d\x8f\xeb\x50\x16\x8c\x27\x86\xeb\xdf\xe9\x1d\xa9\x5e\xf5\x9c\x66\x82\x18\x91\x4d\xab\x40\x36\x38\x85\xbf\xb5\x11\x98\xf4\x14\x6b\xab\x0f\x9d\xf7\xb8\xe1\x65\x05\x72\x14\x83\x60\xd2\x37\xc5\xeb\xc5\x09\x72\x8c\x07\x19\xcd\xe8\x9e\xf5\xc3\x24\x4b\xa8\x8d\xe2\x9b\xe4\xea\xa8\x74\x4c\x33\x45\xb9\xe3\x25\xc7\x08\xfe\xea\xe6\xb6\x28\xf7\x97\x13\xec\xe0\xdf\xe7\xc6\x5c\xeb\x60\x46\xa3\x27\x55\x52\xfa\x60\xeb\xd3\x3b\x20\xc7\xc2\x10\x3a\x5e\xc3\x7b\xc6\x57\x2b\x82\xe1\x1d\x83\x6a\x5a\xe2\x69\x3f\x38\x3c\x18\x30\x62\x92\x9d\x47\x9e\x65\xfd\x14\x20\x03\x1e\x20\x89\x28\xca\x7b\x99\x84\xc2\x80\x8d\x77\xb8\xa4\xb4\x67\xd4\xe0\x96\x8f\xab\xdd\x6e\xb5\x7e\xc2\x7d\x1b\xd5\x3e\xf7\xb3\xbb\xa5\x43\xd5\x30\xad\x0c\x35\x5d\x1f\x6a\x96\x10\x9f\x23\x86\x75\xf7\x5a\x7c\xcc\x8b\xa2\x27\xd7\xad\x13\xd2\x4c\x31\x2b\xe4\xd7\x7f\xbc\x84\x70\x8e\x68\xc7\x97\xf4\x1d\x2c\xa9\xe7\x60\x62\x25\x9e\x4f\xb1\x34\x76\x5f\xa6\x79\x3a\x74\xf7\x12\x2f\x20\xa2\x4b\x49\xad\x6a\x38\xf6\xf7\x97\xc4\xf7\x98\x53\xad\x7a\xe4\x9f\x2d\x1b\x50\x3f\x59\x9e\xf8\x7e\x40\x4c\x19\xfb\x62\x31\xb8\xb7\x1f\x53\xfc\x62\xab\xc5\x1a\xa5\x6d\xdc\x9f\x6d\xc5\x76\xc5\xdf\xe1\x0e\xf2\x45\xf1\x95\x4b\x93\x50\x4b\x86\x7e\xe2\x17\xc5\xbf\x24\xfa\x77\x9d\x3d\x85\x81\xe3\xb4\xaa\xce\xe3\x90\x5b\x7f\x0b\x48\x68\x90\xa0\x64\x56\x5b\x4f\x34\xdc\xe4\x13\x2a\xc1\xb3\x9a\x1d\x8f\x90\x9f\x07\x76\x70\x12\xfa\x46\xfd\xfe\xae\x3c\x6b\x9d\xe6\xff\x69\x96\x5a\x5b\x62\xa8\x93\x90\xf3\xd0\x55\x46\xf2\x3c\xd5\x50\x5d\x2b\xfa\x0c\x1f\x3b\xf2\x82\x28\xee\xd1\x32\xde\x16\xa5\x33\x05\xc6\xab\xf7\x8b\xfc\x64\xc2\x7c\x10\xd6\x57\xa9\x8b\x33\x12\x81\xe6\x35\x82\xc2\x27\xbd\x8f\x84\xd1\x04\xa9\xc1\x5b\xca\x0a\xc8\xcf\x85\x95\xe0\x30\x92\xfe\xaf\xe9\x69\x7c\x8d\x02\x1e\x0c\xca\xa4\xac\xb7\x37\x1a\xbc\x44\x26\x18\x14\xbf\x99\x2d\xfe\xe8\xfc\xe6\x44\x10\xdf\x33\xc5\x62\x5c\x1d\xd2\xc0\x3f\x70\x2c\xb1\x72\xad\x61\x88\xee\xd4\xe2\xe1\x57\xfb\x27\x6d\x20\x5f\xa6\x1c\xd3\x95\x8d\xb5\x3f\x23\x83\x10\x89\xec\x35\xcf\x64\x91\x1b\x7e\xc9\x2d\xfc\xbb\x6d\xa6\xd4\x2a\x03\x36\x67\x98\x39\x39\x61\x5f\xb4\xcd\xa1\x0f\xa6\x5a\xf8\xb3\x4b\xa0\x26\x32\x4e\x54\x4b\xa3\x9d\x41\x17\x36\x48\xa4\xa0\x71\xa7\x38\xd3\x1c\x94\x50\x6e\x8a\x22\xdb\x14\x59\x2a\xbf\x64\x99\x1f\x7d\x68\xc5\xbd\x40\xb9\xea\xd3\xc6\x84\xc6\xa1\x36\x30\x80\x29\xb9\x2b\x9d\x40\xac\x13\x1b\x70\xd2\x87\x66\xe4\x2e\x3d\x73\x26\xd1\x11\xc1\xaf\xb8\x79\x9e\x3f\xac\x16\x08\x18\xef\xd7\xf2\xeb\x44\x4b\x4f\x41\xaf\xca\xc9\x95\x50\x4d\x9a\xf7\x89\x96\x21\xb1\x00\x09\x63\xc8\x7f\x11\x29\x4e\x34\x04\x5c\x3a\xb8\x31\x96\xc0\xb1\xc1\x12\xe1\x84\x31\xa3\xcf\x63\x82\x4e\xfd\x5c\x0b\x27\xdc\xc3\xe9\xb1\x83\xba\xe6\xf9\xdb\xea\xd8\x7c\x18\x35\x2e\x87\xd6\x9c\x40\x84\x00\x9c\x65\xfd\xea\xa6\x04\xf7\x64\x40\x0d\x30\xb5\xaa\xcb\xe2\x62\x25\x0e\x86\xf3\x94\xfb\xbe\xc1\x59\x68\x3c\xd9\x6d\xea\xda\xb5\x85\x5e\x12\x39\xea\x79\x1b\x41\x74\x37\x0f\x12\x03\x99\x6d\x29\xd7\x97\xef\xbd\x1a\xf6\xaf\x52\xa1\x13\x16\x06\x0f\x54\xc8\x6c\xc5\xc0\x68\xf5\x0e\x5f\x31\x50\x12\xdd\x09\x23\xb6\xe1\x22\x9a\x1b\x28\x3b\xe1\x44\xcd\x29\x31\x81\x0d\xe4\xc3\xe9\x87\x89\x1e\xd2\xaa\xb6\xa4\x5a\x1d\x85\xff\x5f\x70\xa7\xfd\xc3\x70\xf8\xb4\xb7\x96\x68\xa7\x42\xfe\x92\xe6\x30\x0a\x41\x0c\x07\x95\xea\x04\xb1\x3d\x56\xd9\xfe\x06\xb8\xca\xd2\xb6\x5a\x83\x87\xbe\xc9\xca\xa7\x35\xd2\x3e\xdc\x8d\xc4\x76\x35\x0f\x23\x8e\x3b\xea\xb9\x82\xc3\x7a\xf9\x78\xd8\xf0\xb2\xae\xbe\xe2\x09\xb1\xd7\x44\x5a\x21\xdc\xf5\x04\x65\xef\xb8\xef\x48\x57\x34\x8f\xfd\xc8\x91\x0e\x2d\x5f\x5e\x3a\xd8\xe9\x50\x20\x5f\xf3\x98\x6a\x57\xdc\x80\x63\x37\xbf\xec\x2e\x47\x51\x64\xc3\x59\x1b\x43\x88\x30\xcc\xc6\x2c\xec\x21\x4f\x38\x0b\x03\xb4\xca\x5a\x28\xc1\x61\x5d\x72\x79\xce\x46\xae\x0c\x67\x2a\x49\x8c\x2e\x80\xa9\x37\xd8\x9d\x60\x6c\x8e\xf3\x84\x02\xe6\x2e\x6c\xd1\x55\x9f\x30\x71\x72\x2a\x25\x09\x60\x4d\xf6\xee\x2c\x1e\x0b\x24\x6c\x39\x57\x27\xb8\xd2\xd4\xd1\x9c\x87\x21\x86\x12\x91\xe4\x84\x8f\x48\x06\x35\xe7\x2c\xc2\x62\x3b\x53\x45\x07\xfc\x38\xc1\x72\xa4\xb9\xf0\x20\x24\x9d\x82\x46\xb3\xdf\xde\xd8\x3a\xc6\x51\x47\x2a\x90\xce\xea\x70\xce\x4f\x5c\xbe\xad\xf2\x1a\xb2\x2c\x7d\x69\xac\xb7\x09\xab\x97\x0b\xce\xd1\x45\xad\x8a\xb2\xde\x97\xe7\x5e\x08\x94\x4b\x62\x14\xa3\x36\xc5\x07\x94\x66\xc5\xfd\x45\xe1\xd0\xdf\x8d\x98\x5f\xf1\x1f\x69\x2e\xa9\x12\x74\xb8\x30\x47\xe2\xda\x9a\x4b\x15\x63\x98\xcd\xf0\xee\xc0\xb6\x90\xf7\x67\x13\x90\x9a\x9e\xa5\x2a\x52\xc8\x70\x2c\x2f\x32\x83\x9e\xc2\x96\xe6\x8a\x33\xe2\x72\xe1\xe7\xfc\xa6\x57\x10\xda\xbb\x9a\x27\x54\x38\x1a\x54\x94\x49\x40\xa0\x5e\x9f\x18\xf0\xaa\x8e\x5f\x73\x20\x1a\xc1\x22\xb3\xd5\xf6\xe0\xb9\x9f\xd3\x0c\x50\x38\x33\xad\x4c\xfe\xb5\x13\xc2\x1b\x80\x7d\x5c\xef\x84\xa0\x17\x74\x33\xfb\x73\x77\x08\xdc\x4d\x04\x91\xca\x04\x72\x61\x5f\x14\x7d\x53\x4e\x78\x24\x51\x96\xcc\xef\x1d\x1d\x90\xf3\xf1\xaf\x83\x96\xc2\x8b\x03\x45\x5b\x6d\xc9\x53\xbf\xc0\xb0\x3f\xcf\x85\x97\x10\xa2\x5a\xe3\x7c\xff\x9a\x56\x43\xea\x06\x2d\x7c\xa2\x91\x1e\xe4\x67\x51\x66\x0a\x85\xc8\xdb\x96\x40\xc5\x41\x4f\xfc\xe2\x1e\x3e\xe7\x17\xc7\x36\xea\xb9\x4e\x42\x1b\x3d\x4e\x07\x1a\xc4\xf0\x5c\x9b\x47\x13\x41\x94\x60\xfe\xab\x47\x01\xa8\xaa\xf9\xe5\x6b\xbd\x58\x2d\x42\xc6\x80\x76\x70\xd3\x47\xfe\xd9\x87\x71\x89\xc8\x33\x80\xa4\xb4\x72\xb9\xe0\xf9\xf9\x32\x8e\xc7\x8b\x38\x22\x5e\xab\xaf\xd8\x15\xdb\x8f\x7b\x81\x25\x45\x4a\x31\x3f\x37\xac\xb5\x10\xb1\xe6\xb1\x11\x32\x78\x48\x73\x64\x62\x7d\x44\x73\xe8\x3b\x14\x82\x60\xc2\xec\x08\x5c\xd7\x50\x7a\xc4\xaa\x28\xb8\x5b\x26\xa1\xc4\x8c\x96\xb3\xab\x3e\x78\xa9\xaa\x21\x60\x53\x24\x4c\x48\xed\xb0\x1e\x36\x6e\xd3\x33\x4f\x04\x4f\x84\x2d\x11\x97\xc5\x3b\x94\x0f\xa0\xeb\xe6\xdf\xf6\x37\x44\xa8\xbd\xd8\xa2\x27\x78\x5a\xbb\x3a\x7a\x2d\x9a\xa1\xeb\x13\xaa\xed\x6a\xb1\x2f\xcc\x97\x18\xce\x2e\x21\x0c\x5a\x1a\x59\xb7\x8f\xa2\x18\x37\x83\x87\x11\x57\x2e\xd2\x1b\xe4\xa2\x6e\xf9\x77\x7a\xa0\x14\x21\x89\x51\xde\x76\xbf\x86\x3f\xb4\x7b\x4d\x4f\xfb\xc2\x92\x2b\xf6\x71\x42\x42\x86\x14\x9d\x44\xae\xd4\xdf\xae\x26\x10\x92\x1b\x92\x76\x33\xbd\x4d\x38\x6c\xad\x3b\xd2\xde\x49\x7f\x46\x48\x10\x18\xfa\x58\x8b\x6a\xb0\x14\x15\x15\xc8\x83\x86\x64\x64\xb7\x45\xb9\x05\xf9\x97\x82\xa3\xee\x52\x16\x05\xad\x35\x61\x01\x01\xc6\x95\xec\x07\x5d\x84\x62\x3c\xf1\x7b\xb1\x1e\x13\xc0\x1a\x0d\xaf\x4a\x8c\x14\x9e\x99\xb5\xa8\x42\xd5\x3a\x3a\xad\xd3\x2a\xc0\x93\x18\x5e\x84\x36\x5d\x8a\x3c\x40\x9d\xd6\xf9\x7d\x91\xa9\xb9\xc3\xb0\x9a\x74\xee\xf4\x70\x40\xc0\x12\xa3\xe3\xf7\x06\x1b\x5e\xa7\xbd\xa9\x08\xd4\xc7\x28\xe2\xc1\x09\x3d\x9f\xa0\x9c\x24\x9a\xd0\x02\x42\x46\x0d\x5e\xf3\x66\xa9\x10\xa6\x3d\x59\x15\x24\x20\x32\x84\x86\xef\x86\x59\x13\x7e\x4c\xc0\xba\x04\x30\x83\x48\xee\x1f\xe7\xdf\x51\x7c\xba\xcb\x24\x65\xd6\xab\x9d\x17\xd5\xe8\x4c\x10\x00\x09\x2e\xf6\x03\xae\xf5\xef\x9d\x47\xa1\x63\x85\x08\xd7\xbb\xb2\xf8\xb8\x3b\xa7\xd9\xa0\x1a\x43\x12\x8f\x61\x42\x4d\x16\xe7\x53\x73\x00\x8d\x4e\x01\x49\x62\x0f\x95\xf8\xb8\x0d\x3a\xb6\x50\xa2\x51\x3f\x2f\x48\xd0\x52\xdd\x1d\x79\x59\xcf\x2d\xaf\x9f\x6b\x13\x66\xae\xdc\xf2\x37\x3b\xb3\x1b\xe7\xd1\x1a\x4b\x97\xf1\x8d\x24\xc1\x08\xec\x2e\x3d\x9e\x8c\x80\x49\xdb\xd1\xf6\xf0\xb5\xf2\x3b\x4a\xcc\x34\xcb\x76\x35\xaf\x6f\x8b\x72\x60\xab\xc9\x20\xf0\x0d\x2b\x00\x0e\x7c\xcf\x52\x77\xcc\xbf\x5e\x2b\x50\xe9\x5d\xb3\x07\x6b\x19\x28\x1f\xeb\xf0\xee\xa0\x7e\x38\xcb\xb7\xcb\x03\xcf\x55\x57\x35\x2b\xa9\x14\x08\x44\xba\x4d\x0b\xd9\xd9\xe2\x92\x5a\x16\x48\xa3\x04\x61\xd1\xae\xad\x39\x2a\x43\x66\x78\xca\xaa\x13\xff\xc8\x31\xb6\xf5\xb7\xb8\x13\xb5\x0c\xa5\xc1\x55\x58\xc4\xdb\x0e\x1c\x43\xa0\x96\x51\x20\xf0\xdc\x3a\x94\xfc\xe3\x0e\xea\xbb\xac\x10\x3c\xbb\x2e\x96\x70\xbd\x43\x81\x51\xf0\x45\x9a\xab\x54\x36\x1f\xb2\xaf\x21\xae\x65\xec\xb3\x96\x41\xd7\xea\x90\xfc\x4c\xeb\xd7\xff\x5e\x2c\x5e\xcb\x38\x0a\x7d\xa7\x7a\x34\x7b\xf6\xbf\x0f\xbe\xc9\x38\xd6\x58\x8d\xf6\xb0\xbf\x1f\x4c\xd0\x98\x51\xe2\xf5\x8c\x96\x59\x96\x15\x1f\xe3\xbc\x8b\x64\x1e\x67\xdd\xd7\x76\xd7\x32\x3f\x40\xc5\x45\x3c\xf4\x9b\x83\x67\x84\x8d\x91\x4c\x05\xc8\xab\x66\xf8\xac\x9d\xf7\xb4\x05\x5d\x0d\xce\x4f\x99\xf8\x31\x46\xc0\x76\xaf\xc5\x47\x1f\x04\x39\x5c\x97\x92\xdb\x08\xc6\x7d\x51\x6f\x8a\x7a\xf0\x1a\xdc\x07\xe8\x79\x72\xad\x62\x5e\xdb\x9e\x68\x62\xf1\xbf\xe9\xf1\xdc\x8a\xcf\xf4\xcd\x45\x29\x22\xa9\x3a\x42\x18\x73\xe6\x7c\xa5\x27\x3c\x86\xa8\x4c\x05\x85\xa4\xb4\xe2\xdf\x2f\x98\x8c\x4a\x37\x45\x91\x2d\x11\x6d\xef\x7e\x51\x02\xb7\x0a\xd6\x28\xde\x86\xcc\x73\xed\x23\x2b\xcf\x28\x0e\xb5\x06\x13\xea\xeb\xf6\x4f\x4e\xa9\x7c\xa5\x3a\x16\xa5\xc6\x29\x42\xf8\xce\xe8\xe3\x29\x16\xe2\xa7\xbf\x29\x5e\xe0\x3f\x50\x6e\x4a\x58\x2d\xd6\x5d\xee\xe5\x2b\xf4\xcd\xf0\x26\x40\x22\xc6\xfa\xd9\xd1\x23\xd4\xaf\x3f\xc6\x7d\x0c\x49\xa2\x2a\x7e\x3f\x5f\x01\x21\x25\x78\x0a\x81\x18\xf3\xb4\x5e\x5e\x60\xf9\x39\xbe\x38\x82\xd8\xb0\x09\xe7\x6f\x83\xf8\xa8\x04\xe6\x33\x3c\x32\xdf\xd2\xdc\x56\xac\x77\x81\x21\x09\x60\x50\xd6\x86\xdf\xbe\x28\xb2\x81\x5d\x2b\x41\x0b\x14\x0a\x70\x48\x92\x59\x96\xf5\x8a\xae\xda\xed\x48\x13\x93\xc4\x79\x4f\xe1\xc3\x25\x51\x1f\xe1\x58\xf4\xb0\x68\x52\xfb\x14\xe9\x74\xea\x32\x1d\x59\xde\x6d\x87\x18\x33\xc8\x87\x53\x09\xc7\xaf\x68\x48\xb4\xd4\x54\x53\x27\x64\x98\x7e\x42\x36\x88\x90\x48\x1d\x29\xac\x68\xd7\x69\xce\x73\xbb\x64\x9a\xb5\xd5\xc3\x5e\x2b\x22\x99\xd3\x75\x30\xee\xca\x16\xb8\xba\xf4\xb7\x42\x45\x34\x75\x9c\x4a\x8b\xd7\x41\x1e\x43\x79\x7e\x84\xac\x51\x88\x46\xdd\x14\x55\xdd\x21\xc7\x94\xcf\x0d\x3a\xad\xad\x66\x9c\xe5\xf5\xfc\x7c\x31\xa7\xc5\xf0\x83\x2a\x5f\x0b\x8c\xe7\xdf\x40\x66\xa1\x7d\xce\x23\x50\x34\x02\x34\xaa\x97\x74\x5b\x7c\x18\x99\x92\xb6\x49\x11\x4c\x8d\x6a\x9b\xf7\xc9\x0a\xae\xba\xc3\x4c\x45\x34\xc6\x38\x64\x5b\x7f\xf7\x5c\x35\x96\xc4\x38\x6d\xa9\x22\xca\x1d\x1d\x9d\x51\x2e\x4c\xf3\x97\x9f\x29\xd6\x10\xd8\x1e\xb1\x07\xc8\xcc\x6f\x2a\x23\xfe\xe0\xe7\xac\x9e\x42\xa6\xaa\x38\x30\x41\xc1\x0a\x05\xd6\xab\x5e\x54\xa4\x33\xa2\x54\x1c\x70\x3c\x78\x1e\xd3\x17\x13\x7f\x47\xd2\x39\xd7\x18\x19\xd2\xa0\x83\x85\x57\x94\xea\x0b\xaa\x39\xad\x18\x8b\x6d\x4c\xf5\xbd\x78\x83\x69\xcb\x47\x31\x19\xe0\x44\x3b\x57\x50\xfe\xda\xee\xa7\xa8\x18\xb5\x4a\xe2\x44\x8a\x36\xd3\xdd\x6c\x6a\x18\xf3\xd8\x17\x06\x62\x32\xfa\x56\x89\x32\x3a\x21\xbf\x15\x45\x35\xcb\x04\x94\xf5\xc0\xa2\x55\x92\x9a\xd2\x01\xf8\xac\x4b\xbe\x05\x09\x69\xe3\x28\x0c\xea\x8b\x94\x0c\x05\x7a\x39\x66\xb7\x39\xe4\x85\x42\xa9\xe7\xd1\x73\x49\x11\xda\x1a\x98\xfa\xb1\x7a\xb9\xe3\xd5\x1c\x19\xb3\xdb\x9b\x48\xe2\x4a\x95\x7b\x51\x90\xe1\xc3\x4a\x95\xc4\x36\x85\x75\x0b\xe0\x9e\x66\xf4\x3b\x10\x29\x74\x7e\xb6\xf0\xbf\x08\x94\x72\x3f\x00\x89\x42\x4d\x96\x55\x8e\x82\x23\x59\x06\xbd\x1c\xb2\x5b\xf6\x1e\x99\x50\xda\x24\xff\x72\xb7\xe0\x86\xbb\xa2\x86\xaa\x3e\x04\x87\xaa\x38\x42\x47\x25\xae\x15\x48\x85\xf3\x1e\x4b\xd1\xdb\x62\x2b\xc5\x8b\xb6\x03\x24\x54\xb7\x8a\x37\xe3\xf8\xbc\xd2\x3a\x76\x05\x58\x2d\x59\x84\xe9\x71\x5d\xd4\x02\x84\xf1\xb8\xdb\xe2\xbf\xc5\x66\x02\x01\x9a\x0c\x58\x1c\xff\x40\xa8\xb5\x19\xe3\x91\x40\xca\xdf\xb2\x31\xc0\x0b\x7d\x54\x56\x6c\xb6\xc5\x5b\xc3\x82\xac\x06\x93\x02\x7c\x2f\x40\x09\x82\x43\x47\x2a\xda\x17\xef\xd2\xe0\x4b\xc6\x69\x4b\x8d\x51\x9d\x8f\xdd\x78\x0c\x9f\x3e\x88\x15\xd6\x8c\x2c\x1f\x0c\x61\xc2\xea\x78\x72\x46\x18\x04\xcd\x9e\x89\x23\x5a\x43\x79\x4c\x73\x58\xe5\x35\x94\x9a\x4b\x68\x7a\x21\xd1\xa6\x91\xec\x1e\x6a\xfc\xf4\x61\xbd\x40\x83\x20\x60\xfd\x7b\x4c\x01\x89\x80\x02\xc1\x4a\x04\x1b\x48\xdd\xbf\x96\xc5\xf9\xe5\x75\xf7\xc1\xcb\xe3\xf7\x2e\x26\x84\x9e\xc4\xb0\x77\xd5\x6c\xc3\xce\x95\x86\x48\x68\xcb\x30\x94\x99\x8d\x61\xc4\x6c\x00\x91\x34\xa9\xf3\xc7\xd9\xaf\x83\x41\x39\xef\x30\x73\x8f\xa9\x4a\x77\x97\x38\xf1\xf1\x50\xd8\x6c\x57\x8b\x65\xd3\xf4\x74\x33\xdb\xde\xb4\xad\x3c\x44\x75\x80\xe5\x53\xf7\x27\x19\x63\x7c\x10\xeb\xf4\x76\xfb\xd9\x76\x7f\x08\x5d\x1b\x8b\x14\x7a\x7f\xa8\xff\xb1\x39\xe7\xf2\x75\x7d\xae\x47\xe1\xb8\x88\xba\xa3\x11\x58\xa2\x7a\x3a\x37\x3e\x66\xa9\xc7\xdf\x8e\x49\x33\xe3\x0f\x15\xd7\xb0\x3b\x8b\xe9\x50\x1d\x24\x01\x71\x1c\xcc\x8d\xb7\xda\x6c\x00\xf3\xcb\x26\xe3\x97\xfd\xe5\x34\x3a\x5d\x20\x49\x18\xda\x84\x50\xbf\xba\xc8\x7c\x9f\x90\x54\x43\x22\x08\x16\xba\xab\xb4\xaa\x8a\xec\x7d\xb4\x3f\x42\x02\x0c\x83\xc9\x8f\x97\x4d\x9a\x5b\x98\x63\xb3\x8a\x9d\xf1\x05\x9c\x18\x66\x69\x3c\x06\x57\xb2\xe8\x25\x7a\x81\xb3\x20\xb4\xa5\xa2\x1a\xa0\x2a\xce\x35\xb2\x5e\x76\xe7\x14\x08\xca\x11\xe7\x56\xe4\xc8\x7a\xb0\xeb\x7c\x61\x10\x21\x84\x46\x2a\xa0\x0f\x68\x1f\xbe\x9d\x08\x4d\x40\x9c\x2b\x35\x75\x28\x81\x48\x4c\xf1\xff\x6a\xb1\xc6\xe7\x6b\xef\x2d\x63\xa4\xa3\xa9\x3e\xf8\x69\x99\xab\x5e\xb4\x07\x24\x17\xc8\xd1\xc8\x95\x61\x89\x9a\x3c\x80\x40\x79\x11\x82\xee\xf4\x39\x97\x07\x42\xdb\xc0\x23\xa8\x58\x20\x0b\x9b\x2e\x72\xb5\xc9\x78\xad\x8b\xf2\xd8\xb6\x69\xea\x9b\x90\xcb\x31\xcd\x0f\x47\xf4\x31\x0f\x69\x75\x85\x74\xef\x8d\x20\x48\xe1\x4c\x14\x67\x4f\x0d\x6c\x7e\xd0\x41\x82\x0b\xed\x34\xa2\x18\x77\xcd\x94\x22\xa8\xd9\x05\x85\x6e\x78\xcd\xbf\xe5\x27\xe9\xd9\xc5\x9a\xf8\x20\xc3\x36\x73\x39\x2f\xca\xb2\xf8\x00\x50\x5d\x5d\xaa\xf6\x02\x8a\x1a\x38\x83\x52\x59\x34\xf9\x4d\xa8\xad\xed\x47\x25\x5a\xa5\xd5\x59\x1c\xd3\xda\x84\x17\xf1\x97\x6c\xa0\xa6\xb1\x09\x29\xed\x54\x98\xdc\xd6\x36\x58\xe3\xda\x8f\x78\xd0\x9e\x18\x86\xff\x78\xf0\xb9\x75\x10\xea\xd8\x11\x57\xa6\xf2\x0d\x3f\xeb\x60\x3c\x74\xc0\x74\xe2\x3b\xb2\x3e\xa8\x7a\xe0\x4e\x1d\x48\x8a\x64\xa3\xc5\x09\xf2\xdb\xa2\xec\x6b\x44\x6a\x4d\xbd\xc0\xc9\x7c\xdd\x15\x99\x32\xf6\x4b\x2f\x03\x79\x65\x31\xeb\x50\xfa\x51\xe4\xca\xb4\x1f\xe1\x68\x02\x4b\x83\x2e\x11\xd1\x08\x1a\x7c\xd8\xfe\x5a\xac\x1d\xb9\xac\xd6\x51\xe0\x49\xdd\xc9\x84\x9a\x63\x60\xf8\x1a\x91\x00\xbf\xc3\x7c\xce\x79\x85\xe5\xec\xa3\x3e\xc0\x5c\x96\x16\xa3\x51\x13\xc4\x32\x3a\x06\xe5\x98\x3e\xfb\x51\xdb\x65\xe3\xdd\x3e\xef\xbe\xc0\xaf\x68\x46\x3d\xe5\x0d\x52\x79\x3f\x01\x45\x63\x46\xdd\x22\xc3\x7e\xb1\x28\xcf\xff\x81\xb4\x1c\x84\xe1\x35\x8b\x0d\xa9\xb4\xa9\xe9\x71\xd1\xbb\x55\xde\x55\xe2\x68\xc6\x02\xa3\x1c\xc8\xdf\xa0\xc4\x62\x5f\x0c\x45\x8c\x7e\x04\x62\x6a\x0a\x29\x8c\xf6\xe2\x75\xd0\x59\x27\x9e\x8c\xc1\x45\x57\x11\x7a\xd7\xce\x4b\x4e\x8c\x15\x9d\x56\xab\xdf\xf7\xd7\xfe\xae\x16\x8c\x7a\x76\x7c\x0e\x25\x48\xb4\xe6\xa6\x77\x04\x2d\x84\x99\x59\x06\xb1\x79\x63\x65\x07\xda\xda\x76\x77\x47\x49\x25\xee\x58\xf5\x6b\x59\x7c\xac\xf4\xa0\x76\x5e\x4b\x45\x91\x2d\xf4\x83\x67\x59\x55\x97\x00\xb5\x3b\x00\x1b\x93\x17\x79\xe4\xa0\x7e\xdd\x17\xbd\x41\x52\x9c\xc4\x36\x31\x61\xd1\x79\xfb\x62\xb1\x99\xb6\x6c\x34\x90\x00\xb3\x97\x27\x8e\x42\x33\xdb\x56\xc1\x41\x6b\xed\x69\x61\x8c\x6f\xa3\x0e\x35\x78\xcb\x96\x8c\xf1\x1f\x7d\xb8\x8c\xd6\xb1\x87\x47\xc7\x7c\xb5\x9f\xaf\x7e\xb5\x77\x8a\x59\x2b\x7c\x72\x6e\x25\x64\xff\x9e\xa5\xa4\xb5\x66\x38\xb1\xdf\x9b\x2d\xa2\x9b\x30\x9a\x10\x42\x8d\x7c\xf1\x66\xbb\xfa\x63\xb6\x37\xb4\x72\x48\xdb\xb1\x98\x6d\xda\x3e\x51\xec\x14\xf6\x51\xf6\xad\xd3\x60\x9f\x08\x3a\x36\xfd\x93\x04\x3d\x6d\x5b\xac\xfc\x95\x0f\x6f\x7b\xfb\x34\x8a\xe3\x2e\xb7\x83\x42\xa2\x8f\x85\x1a\x1c\xe2\x9a\x90\xc0\x0f\x11\x06\x63\x53\xcc\xb7\xbc\xec\xcb\xe8\x36\x1d\x18\x33\x5c\xd7\xe9\xfb\xe4\xf1\xd2\x74\xe1\xd4\x4a\x3a\xa3\xa4\xcd\x55\x94\xc1\x76\xa3\x24\xc6\x30\x99\x95\xe3\x9e\xc9\x31\xdd\x5d\xd3\xc7\x37\x20\x87\x5f\xbf\x7e\xb5\x21\xc0\xe6\xcf\x34\x41\xef\x75\x9e\xd6\x77\x70\x44\xe3\x61\x8a\xbd\xda\xf5\x16\x1e\x56\x9e\xe2\x83\xf4\x89\xc2\xa7\xca\x57\x34\x21\x91\x67\x24\xbd\xcc\x50\x2d\x8a\x3e\xb5\xaf\xeb\xe2\x1b\x8d\x85\x97\x33\x2f\x55\xca\xf3\xc0\x3d\x59\x44\x19\x16\xa6\xb8\x33\x65\x51\x94\xd0\xf3\x71\x6c\xaf\xd8\x8f\xd1\x48\x4f\x6b\x38\x56\xdb\x66\xe3\x9a\xda\xac\x9a\x8e\x61\x88\xd1\xa3\xd5\xe6\x97\xc9\x99\x37\x87\x64\xdb\xc6\xfc\xa4\x23\xe2\xd8\x9c\xc5\x6f\x70\xe9\x42\x43\x9a\x10\x16\xf8\x98\x49\x96\x3c\x6f\x4d\xe4\xd6\x68\xbe\x2d\xc6\x36\x78\x3f\x72\xd5\x5c\x1d\xc5\x24\xe8\xf4\x61\x5b\xf1\xd5\x2f\x1e\x95\x09\xc3\x60\x69\x61\x93\xfb\x14\x4a\x27\x29\xdb\x23\x00\xb2\x9d\x93\x80\xa2\x47\xf3\xdb\x59\x15\x95\xd9\x62\x86\x03\x9c\xb0\x04\xf1\xb6\x28\x94\xb0\x7a\xba\x3b\xec\x97\xb3\x47\x77\x35\xe7\x26\xa6\x86\xfc\xd0\xdb\x6d\xfb\x67\xe9\x29\xab\x9c\xd3\x4d\x15\x2e\x8d\x78\xfe\xa9\x84\x13\x2f\x01\x77\x8d\xe9\x17\x90\x51\x8c\x24\x4e\x06\xba\x47\x3e\x7b\x21\x8b\xa6\x35\x8e\x30\xc4\xd4\x51\x73\xbd\xfb\x6d\x5b\x02\xb8\x68\x9a\xed\x19\x79\xc5\xaa\xd6\xe9\xec\xb2\x56\x9a\x10\xe5\x33\x84\x0a\xed\x1d\x47\xed\x10\x40\xd0\xf4\xa0\x22\x54\xa3\xf0\xe3\xf4\xa4\x56\x71\xe0\x47\xbd\x98\xed\x38\xd1\xf2\x8f\x41\x74\xab\xb9\x40\xf8\x91\x51\x09\x55\x50\x7e\x34\x1b\x4c\xfb\x5c\x40\x3d\x03\x95\x3c\x42\xf9\x02\xb9\xbc\xd8\x32\x05\x5b\x19\x6e\x4b\x29\x54\xdb\x3d\x6a\xab\x01\xf6\xbc\x7c\xb1\x0c\x17\xd8\xa0\x09\xef\xd7\x9d\xb7\x1c\x9d\xcc\xf5\x60\x51\xd8\xa5\x6a\x2c\x3b\x44\xeb\x76\xf8\x13\x0e\xb9\xf7\xaf\x6b\xeb\x4e\x13\xa2\x89\xa1\x14\x2b\x4e\x60\x62\x31\x83\xbc\x68\xd3\x21\x16\xc8\x61\x96\x15\x15\xac\x55\xfb\xec\x3a\x11\xb4\x2f\xe8\x7b\x5b\x94\x8f\x46\xb0\x7e\x38\xbc\x5a\x7b\x78\x32\xbd\x43\x99\xea\x4b\x6b\xe4\x4e\xc4\x78\x35\xf1\x48\xa2\x11\x49\x89\xfb\xbe\x65\xce\xf9\xe1\xda\x44\x84\x76\xc4\x47\x7a\x82\x79\xc6\xe5\x9b\x29\x3e\xdb\x97\x67\x68\x6c\x94\xc1\xaf\x7a\x1e\x8f\xb1\x32\x12\x01\x22\x3d\x89\xf1\xa6\x09\xfc\xd8\xc4\x15\x31\xd8\x37\xf4\x5b\xbf\x3b\x97\x34\xf1\xfc\x40\x60\x8e\x50\x99\x1a\x2a\x77\xcb\x20\x06\x2c\x08\x6a\x41\xdd\xde\xb2\x7e\xdd\x04\x6d\x33\x10\xb0\x86\x12\x56\xcd\xf5\xe3\x3c\xe3\x64\x8e\x26\x1e\xf5\x94\x2b\xfa\xbb\x01\x99\x1e\x79\xe6\xb6\x3b\x8f\x52\x8e\x8e\xa8\xe2\x35\x6f\x8c\x91\xa3\x0a\xd1\x0a\xae\x6c\x04\xb7\xe9\x92\xc4\xce\x55\xc0\x8a\x8e\x1f\xc3\x11\xa6\x89\x40\x5a\x9b\x7f\x42\xde\x78\x3d\x96\xfd\xd1\x5d\x1c\x86\x46\x70\x5f\xa5\x5a\xa7\xf2\x9c\xd5\x97\x99\xfa\xdf\x73\x55\x1f\x87\x81\x88\xa6\xa7\x90\x03\xa5\x84\xd9\xcd\xcd\x76\xb9\xdb\xb9\xe6\x28\x88\x0c\x1b\x33\x2e\xbf\x9b\xe2\xc8\xd3\xab\x92\xb5\xe1\x3a\xf4\xa2\x80\x33\x6b\x93\x3f\x15\xa2\x55\x94\x77\x77\x8c\x03\xb3\x89\x6e\xd7\x0f\xcb\x03\xf2\x4c\x2d\xdb\x26\xca\xfd\xd0\x92\x6f\x3c\x42\xcd\x9b\xd1\xb1\x96\x97\xeb\xc2\x74\x4c\x4d\x62\x66\x53\x42\x85\x12\x93\x70\x03\x8f\x50\xf1\xd1\xf8\x24\x42\x61\x8c\xa6\xd5\xfc\x19\xc6\x1f\xbf\xf2\x97\xa6\xb2\xa4\xee\x8e\xd2\x8f\x8c\xbd\x60\x64\xb6\x66\x96\xae\xec\xbb\x1a\x44\xbc\xcc\xb0\x64\xc0\xe7\xa9\xe7\x44\x61\x43\x82\xaf\xb2\x7b\x98\xfd\xe1\xfe\x26\x58\x82\xd1\x1e\x7e\x14\xa9\xdb\x4c\x3d\x29\x0d\xcf\x8b\xd1\x17\xe3\xa5\x7c\xbd\x58\xe4\xc3\xf4\xbe\xed\x29\xa1\x88\x11\xde\x69\x7a\xd9\x33\x0d\xaa\x5d\xbb\x2f\x79\x0a\x98\xb4\xd8\x94\xe6\x24\x9b\xf3\xba\xce\xa0\xf5\xaf\x8c\xa8\x80\x26\x1e\x34\xa7\xf7\xff\xf9\xff\xfe\xcf\x1f\x45\x3d\x51\x90\xec\xfc\xda\xa6\x63\x40\x3d\x8b\xd1\xdc\x14\x55\xbd\xce\xfb\x92\x2b\xa3\xf9\x01\x51\x04\x96\x9a\x6c\xf6\xfe\xd2\x01\xc6\x9b\x26\xa5\x8c\x3a\x70\xb3\xda\x1f\x2f\xb3\x53\xda\xae\x18\x00\xdf\x7a\x51\xb9\xc2\x62\x8a\xfd\x07\xc0\x57\x82\x39\x53\x9f\x4f\xfb\x04\xd7\xb6\x38\x97\xf9\xd5\xf1\xeb\x69\x88\x92\x4e\x37\x73\x0a\x40\xaf\x89\xdf\x98\x59\xda\xd2\xce\x63\x3d\x8c\xbb\xdc\x6f\x36\xaa\x66\xa0\x4c\xa4\xad\x5f\xe5\xd0\xd2\xed\x34\xbd\x28\x41\x7b\xd6\x95\x4a\x5c\x87\x79\x9b\x4e\x11\x47\xc8\xd1\x8d\x33\xe1\xbe\x16\xe5\x64\xff\xe8\xd7\x4b\xfe\xbf\xfa\xd7\x3d\x47\xac\x11\x88\x73\x90\xc5\xd1\x26\x1f\xdb\xf7\x10\x1a\xf7\xc1\x47\xb9\x28\xb1\x44\xaf\x6f\xd9\xfb\x44\x91\xc4\x92\x32\x64\x97\x55\x5e\x9d\xcb\xae\xcc\xde\x2d\x4f\x9f\x68\x1f\x83\xf9\x96\xbe\xe4\x67\x9a\x6f\x8a\x22\xbb\x2d\x4a\x03\xf8\xd9\xf5\xbe\x8d\xef\x05\xa6\xcc\xd1\xa4\x2c\xf6\xa9\x7c\xb3\xf0\x8f\xd1\xc8\x79\xa1\x8f\x49\xfc\xea\x54\xe4\x55\x51\xae\x4f\x69\xde\x2f\x86\xe8\x46\xcc\xf5\x8f\x43\x19\xbb\xf8\xc3\x13\x7c\xa0\x71\x81\xc5\xdc\xdf\x8f\x8c\x17\xcb\xc0\x1f\x70\x57\x9b\x42\xb6\xbf\xbe\x0c\xcf\xbd\x13\x94\xc7\xb4\xfe\x2a\x87\x6a\x3b\xfb\x2c\x92\x46\x6e\xf0\xf4\x7c\x7a\x38\x0f\xf9\xfd\x9a\x76\x1e\x21\xe8\x64\x5f\x7c\x8a\x5a\x0e\xc6\xdf\xe7\x2c\x8a\x5b\x42\xec\xc7\xbc\x3e\x4d\x7b\x25\xbe\xaf\x12\x1d\x0d\xe9\x99\x37\xa6\xc0\x1a\xc5\xf2\xba\x81\x0a\x54\x84\xe4\x86\x2e\x28\x75\xe0\xbd\xd0\xbd\x26\x3e\x8d\x35\x86\x83\x8e\xfc\xf3\xf7\xfa\xb2\xca\x6f\xdd\x59\xef\x47\x09\xc5\x9f\xd8\xd9\x62\xe5\x3f\xa0\xaa\x47\x8c\xf6\x9a\xf8\xb1\x34\x69\x98\x66\xdf\x5f\xa3\x6e\xc4\xa6\x2c\x5e\x4a\xee\xce\x42\x3f\x56\x9e\xb6\x72\xd2\x0b\x7a\xdb\x92\x63\x7f\x6d\x0c\xfa\x2c\x14\x88\xa8\x3e\x60\x60\xb6\x57\x0d\xd9\xb4\x25\x21\x02\xe4\x56\x8b\xf5\xe8\xb8\xf3\x93\x48\x68\xde\xaa\x7c\x4e\x92\x20\xb9\x9e\xe0\x21\x23\xdc\x8e\xe7\xea\x23\x95\xaf\xbb\xd7\xd6\xc2\xf1\x79\x40\x30\xd9\x52\xa7\x47\x28\xce\xf5\x2f\xc3\x66\xac\xda\x66\x4a\x11\x40\xbc\x7b\xbb\xb8\x28\x8d\x6b\x52\x31\xe0\x8b\xa6\x03\x89\x4b\xd7\xa8\x4c\xc6\x1a\x03\x1f\xf9\xc8\x50\xf6\x81\x08\x84\x9e\xe0\x29\xbe\x7a\x3a\x6c\xb6\xeb\xbb\xfe\xab\x69\x4f\x44\x8e\x49\x9d\xa7\xd9\xe5\xa1\xa8\x6b\x28\x2f\x3d\x22\xcf\xf1\x4e\xa4\x03\x03\x8f\x2d\xc0\x12\x00\xb7\xb7\x62\x21\x06\x12\x9b\xf7\x5b\xeb\x07\x67\xff\xb7\xcd\x32\xc6\x8a\x30\x8c\xa4\x6f\xe1\xe5\x9c\xf1\xd2\x61\x20\xda\x18\x60\x27\x8e\xe4\xec\x25\x5f\x6b\x8d\x26\xcd\x6d\xcf\xb1\x0d\x48\x40\x11\x11\xd3\xd1\x2d\x8c\x67\xb3\xbb\x3e\xf0\xa8\xc2\xc1\x43\x08\x1c\xa2\x79\xc7\x32\xb9\xae\x23\xa7\x88\x00\xdc\xf3\xea\xad\xba\xe7\xb9\xca\xae\x33\x93\xdf\xef\x8e\x41\x40\x94\x29\x25\x40\xe0\xf2\x47\xda\x8c\x65\x57\x30\xd5\x74\xa0\x86\xc5\xd2\x68\x6d\xd5\xa0\xe6\x23\x87\x2e\xa0\xbe\x17\x27\x3d\x30\xdb\x73\x9e\x8e\x3f\x41\x40\x13\xe5\xb4\x39\xce\x27\xdc\x14\xdb\x1f\x08\x89\xc4\xf4\x86\xb3\xdb\xcd\x4c\x1f\x17\xc8\x34\x1d\xfd\xc4\xd1\x9f\x1a\xfc\xe5\x2d\xc0\x17\x03\x13\x46\x1c\x33\x11\x76\x57\x5e\xeb\x9e\xce\x8d\x0b\x13\x6b\x12\x44\xd4\x8b\x75\x4f\x50\xc8\xa2\xd6\x87\xe8\x0f\xd7\x37\x92\xa8\x70\x90\x1e\xf9\x0b\xd8\x4c\xf2\xf0\x1d\xa3\x24\x74\xe8\x6e\x7c\x43\xe2\x64\xc6\x9a\x36\x11\xba\xf8\x2e\x8e\xee\x10\xf0\x37\xfa\x26\x11\xa8\xd0\x86\x68\xb7\x50\x15\xe7\xb2\xcf\x42\xdd\x99\xe9\x26\xfd\xd5\xce\x9a\x38\x34\x2c\x73\xbb\xb3\xe2\xf9\x5d\x91\xa9\x45\x61\x49\xc3\xdd\x43\x30\x9e\x44\x9d\xfa\xcd\x4e\xf2\x81\xa3\xf1\xd7\xcc\xc1\xcd\x2d\xc0\xc3\xf4\xef\xe2\xb7\xd9\x7a\x3f\xb8\x79\xe2\x7b\x98\x9f\xd8\x16\xe2\xd2\xcc\xfb\x43\xe3\x32\x7b\x6d\xab\x4a\x54\xe8\x00\x3c\x9b\xd4\xc9\xfd\x68\x12\x70\x4f\x48\xfb\xb2\xf3\x6b\x40\x97\xeb\x14\x46\xcc\x40\x59\x4d\x65\x6b\xcb\xd3\xef\xda\x23\x86\xc9\x1e\x91\xd6\x47\x5e\xbd\x1d\xc6\x95\x21\xbd\x3b\x71\x83\x64\xcc\x8b\xd6\xb8\x71\x45\x4f\x9a\x04\x82\x48\x22\x7a\x24\x87\xbb\xf4\xe5\x3a\x7f\xd3\xf4\x8b\x65\x4c\x5a\xd8\x35\x96\xca\x8e\x48\xeb\xc6\x04\x10\xcd\x45\x4c\x20\x7d\xc8\x73\x31\x9f\x3d\xfe\xf3\x69\x30\x7a\x42\x9a\xb8\x87\x49\x44\xcc\xfa\x2a\xc8\x57\xfa\x6a\x9a\x04\x92\x80\x61\x88\x0e\xfe\xef\x0d\x1c\x8b\xa9\x6f\xc8\x86\xd3\x57\x86\x0c\xd3\x97\x98\xf4\xd6\x00\x8d\x95\x82\x75\x43\x87\xb4\xc2\x3d\x4d\x16\xaa\x0d\x1b\x04\x32\x96\xb8\xf1\x9f\x5a\x2f\x35\x90\x2c\x42\x6d\x3b\x5c\x9d\xd6\x99\xd9\xf0\x0b\x8c\xe2\x67\x81\xa2\x01\x42\xb5\xce\x1d\x31\xd7\x97\x96\x4e\xa0\x62\x85\x61\x55\xb7\xf6\x9d\x22\xf5\x17\x24\xb8\xcd\x15\x32\x50\xd6\xe0\x7f\xae\x40\x6d\xe1\x1d\xca\x01\x4b\x00\xf6\xa1\x40\x3b\xc6\x8c\x83\xc1\x50\x20\x04\x2b\xe3\x97\x6b\xe2\x6e\xbc\x24\xc4\xaa\x29\x83\x4b\x41\xd2\x9c\x81\x1d\x13\x28\x65\x58\x86\x3a\x15\xfd\xe5\xfe\x7e\x7c\x13\x08\x35\x18\x4d\x95\xfb\x87\xcd\xe3\xde\x3d\x0f\x84\x0a\x0d\xa6\xb4\xba\x49\xab\xd3\xb9\x1e\xda\xdc\x01\xc4\x0c\x91\xf7\xee\x64\xc8\xd5\x82\x3b\x6a\xa8\xaf\x60\x5b\x7f\x69\x03\xf7\x22\x2a\x81\x16\xa6\x9c\x01\x21\xf9\xa6\x46\xcd\xa5\x00\x6f\x33\x64\xf8\x9a\x29\x65\xa9\x55\xab\x3e\x18\x67\xda\x13\x0c\x34\x28\xac\x84\xc8\x3f\x8e\xfd\x49\x4c\x89\x4a\xb0\x50\xc0\xb8\x35\x7f\x45\xbb\x32\x1d\xcd\xa6\x5e\xe0\x61\x44\x41\x70\x65\x63\xa7\x6c\x00\xc3\x73\xdd\x98\xaf\x8c\x04\x64\x05\x65\xdd\x52\x47\x8e\x87\x67\x74\xef\xc4\x70\xf3\x96\x70\xca\x2e\xd7\xd4\x02\x9a\x50\x3f\x34\x1e\x41\xf5\xc1\x4f\xa7\x56\xab\xdc\x36\x06\x24\x80\xc0\x91\x35\xf3\x0c\x57\x40\x59\x9c\xa0\xbc\x46\x98\x4f\x5b\xc3\x34\x88\xb9\xcb\x90\x3f\x5e\x9a\x9d\x23\xc5\x48\x06\x96\xa0\x0c\xc6\x98\x06\x09\x10\xdd\x62\xb8\x97\x9f\xa7\xb4\x04\xf5\xc4\x8f\xf0\xa3\xbf\xac\x1b\x03\x0c\x3f\x6d\x56\xa4\x6f\xe9\x9b\x4a\xdd\x8e\x48\x69\x04\x68\xd6\x19\x96\xb3\x34\x7b\x4c\xf3\xfa\xa9\x98\x9d\xeb\xd7\x1f\x83\xdf\x09\xa3\x08\x87\x7b\x53\xc2\x7b\x3f\xa2\x49\xc3\x84\x52\x62\xeb\x49\x37\x8d\xa5\x8f\x9e\xd3\x64\x96\x49\x13\x1a\x05\x86\xc6\xb3\xea\x69\xa6\x8d\x12\x10\x34\xa2\x11\x2e\x8f\xb2\x25\x3e\x73\x0d\x2c\xe2\x36\xba\x8b\xc1\x0d\xa7\x5b\xf3\x6d\xda\x83\x46\x52\x39\xc9\x70\xb7\xca\x91\xd7\x76\xa9\x5e\x46\xdb\x0c\x8d\x69\x80\x27\xf3\xc9\x4e\x93\xeb\xb4\x60\xd3\x29\x09\xf0\x88\x3e\x15\x45\x36\x53\x6a\xdc\xca\x43\xdf\xb0\x1a\x6c\x0b\x13\x42\x5d\x96\x65\x51\x2e\x20\xbd\x0a\x3a\x8f\x86\x26\x56\xc4\xe0\xaa\x10\x3d\x36\x3f\x5f\x9e\x8a\x8f\x2b\x8a\x1e\x4d\x28\x0b\x03\xdf\x16\xdb\xb5\xe2\xa0\x76\xfe\x0f\x5f\x9c\x59\x4a\xba\x63\xa1\x16\xb7\xeb\x09\xb4\x4d\xd3\x47\x24\x78\x9e\x9c\x2b\x28\x1d\x1a\xf6\xe9\x7c\x7c\xe4\x23\xa3\x8a\x26\x91\xe7\x68\x05\x8d\x88\xcf\xf0\xa1\x92\xc4\x38\x2c\x56\x8c\x6f\x38\x77\x38\xf7\xd1\xe2\x68\x25\x60\x66\xef\x3c\xc5\x65\xf1\x17\x9f\x4e\x40\xc8\x5a\x52\x92\x7a\x04\x80\x1b\xf7\xd5\x44\x76\x0c\xc8\x68\x0f\x23\x47\xcd\x2a\x9f\x9f\xb3\xb7\xef\x0b\x33\xed\x2d\xa4\x60\xc4\xb1\x34\xb9\xb2\x3b\x5e\xf3\x59\xae\x10\xbd\xfd\x04\x1f\xc3\x1c\xd3\xf7\xdf\x53\x51\x23\x67\xa9\xc0\xa1\xfa\x1f\xd2\x1c\x56\x35\x38\x2f\x8f\x2a\x1e\x85\x4e\xb8\xc7\xf0\x4a\x0f\x5f\x09\x7c\x81\xa6\xe4\xa1\xb1\xa9\xc7\x6d\xd4\x97\xaa\x17\x5a\x69\x8c\xb8\xea\xeb\xd8\x2c\x85\x98\x22\xf1\xed\x7c\x37\x5f\x74\xde\x06\x05\x26\xd1\x49\x32\x21\x65\x13\x29\xed\x47\x88\x29\xa8\x04\xdd\x91\xfa\x72\x32\x62\xe9\x83\x97\x0c\x1b\x27\x26\xee\xd1\xc6\xfc\xfb\xdc\xec\x3f\xb7\x45\x39\xcb\xb2\x9f\x69\xbb\x25\x86\x5e\xc4\xc0\x6e\x68\x33\xcb\xfb\xbe\x85\x66\x7f\x74\xa8\xe6\xb6\xa7\xcf\xe3\xc8\x69\x08\x9e\x40\xa6\x7c\xc8\x53\xf5\xf7\xdc\x95\xd0\x57\x51\x68\xa7\xeb\xc2\xea\xf6\x8f\x9e\x3c\xa0\x40\x78\x1f\x7a\x63\xbc\x99\x29\x9b\x3e\x0c\x92\x08\x73\x90\x36\xb1\xb5\x76\x19\x07\xf7\xcc\x34\xf1\xd1\x9f\x3f\x20\xd9\xc0\x5b\x0f\x30\x7e\xfe\x8a\x2c\xa0\xb9\x4a\x79\x48\x46\xad\x6c\xac\xdc\xda\xfa\xb6\x35\x54\x01\x26\x38\x3f\xec\xc3\x9d\xf3\xfa\x32\x8c\x12\x84\x11\x01\xac\x35\xb5\x06\x81\xda\x36\x0f\xf5\xf7\x12\x02\x61\xc4\x4d\x2c\x48\x81\xcc\x78\x09\xdb\xdb\xc1\x79\x11\xc6\x21\xc1\xd2\x2f\x9b\xdf\xff\x36\x76\x13\xc6\x11\xc5\xe7\xb0\xc0\xbf\x9a\x57\xce\x35\x0e\x59\x40\x55\xf4\xff\xaa\x6a\xda\xdd\x33\xa4\xb8\x15\xed\x5c\xe1\x54\xfb\x63\x91\x36\xc5\x8b\x05\x92\x4d\xf7\x22\x3a\x21\x83\x08\x21\x1f\xfb\x5f\xeb\x96\x69\x48\x93\x30\xf1\x02\xa7\xcd\xf7\xd8\xae\xcb\x30\xa1\xca\xb0\x84\x22\x71\xc3\x07\x2f\xbf\x91\xcc\x72\x97\x08\x61\x05\x5d\x2c\xe3\xc7\xa6\x84\xfb\xa2\xb8\x2a\xe6\x70\xdd\xa5\x36\x4c\xc8\x27\xc8\xeb\x7d\xa1\xb8\xb3\x49\x43\xee\x5b\x0d\x45\x34\xbf\x2c\xa4\x77\x0e\x13\x32\x32\x4d\xe7\x88\x62\x69\xe3\xa9\xe8\x64\xbc\x9b\x3f\xc7\xcc\xeb\x04\x99\x5c\xa0\xaf\x6d\xe5\x41\x60\x48\x01\xb4\x21\x38\x9c\xb5\x2d\x2a\x31\x25\xb4\xae\x1e\xce\xe4\x61\x6c\xab\x60\x21\x06\x83\x1f\x8a\x97\xdd\xbf\xcf\xbc\x84\x66\x7d\x1b\x5a\xdd\x2f\xa5\xe3\xec\xa5\x52\x2a\xc4\x35\x15\xf9\xcd\x7f\x95\x4b\x08\x95\x17\x69\x0b\x88\xd8\x7f\x8e\x20\x42\x4d\x73\x18\x62\x66\x37\xe7\x47\x50\xc3\x09\xac\x22\x86\xf1\xc4\x43\x0e\x1f\xab\x5c\x16\xc7\x34\x7f\x99\xaa\x13\x9c\xce\x87\xb8\x9b\x30\xa3\xbd\xc8\xeb\x81\x01\x1b\x2a\x15\x29\x4b\x74\x6c\xb3\x70\x5f\x3c\xbe\xe2\x48\x30\xf5\x0b\x86\x1e\x76\xa8\x03\xb0\x50\x0c\xe4\x50\x82\xf2\xf0\x5e\x20\x23\x34\x32\x73\x0d\x9e\x41\xd3\xd0\xd4\x87\x1a\xf5\xa8\x0a\x19\x73\x30\x78\x35\x4a\xef\x86\x9a\x43\xe4\xe4\x9f\xea\xa2\x1c\xe5\xa1\x22\x12\xc5\xb8\x89\xb9\x43\x78\x7e\x79\xf8\x1b\xd5\x46\xee\x62\x29\x91\x71\x15\x2a\x79\x7b\xce\xd5\x6c\x10\x0f\x8d\x88\x8e\x3c\xfb\x99\x16\xe7\xb2\xfa\x2a\x0e\x15\x79\x9e\x44\x94\x5c\x56\xc8\x37\x54\xa0\x77\x1c\x83\xd3\x3f\xea\xb1\x48\xba\xa4\xfa\x16\x90\x6b\xcc\xfd\xa2\x4f\x49\xd2\x86\xb2\x31\x18\xb7\x3c\x9e\xea\x49\x1e\xef\xa6\x37\xf8\x51\x07\xd5\x56\xbc\x7c\x73\x30\x6d\x4d\x22\x4a\x0c\xd3\x54\x73\x2e\x01\x3f\x3a\x49\xd1\x49\x2b\x23\xa2\x91\x11\x22\xbc\x99\x6d\xf7\xed\x0d\x44\x12\x63\xe8\x1a\xb1\x4b\x59\x51\xb5\xac\x81\xb6\x43\x28\x03\xf4\x92\x1f\x8b\xbc\x38\x15\x19\x62\x97\xbe\x73\xc5\x47\xbf\x19\x51\x4e\x5b\x3d\xf8\x75\xde\x7e\xd0\x28\xd2\xb8\x0f\x0a\x94\x1a\x9e\xa7\x35\x86\x11\x27\x67\x62\x14\xc5\x5e\x82\x79\xb6\x52\xec\xfb\x50\xa1\xab\x8d\x96\x5d\xc7\x29\xa3\x88\x51\x8a\xa9\x45\x38\xa6\xf5\xac\x04\xbe\x7c\xe7\xd9\x79\xd2\xf4\x3e\x8f\x6b\xcf\x9b\xcb\xa5\x30\xe2\x1f\x25\xc0\xfc\x9c\x66\x93\xbc\x27\x9a\x44\x2c\x14\x68\x43\xee\x1b\x57\xe4\xdc\x06\x6d\x22\xc6\x0d\x8b\x9e\x45\xa1\x60\xed\xe3\x17\x13\x8c\x29\xc9\x7a\x8b\xe5\x3f\x0e\x5f\x70\x05\x74\xb1\xfd\x93\xc8\x4f\x4c\x6a\x2e\xc7\xf0\x80\xa9\x24\x2c\xeb\x56\x55\x53\x93\x88\x7b\x80\xa0\xb6\xdf\x9f\xd7\xfb\xa5\x91\xfd\x77\x4d\x82\x24\xa6\x6a\x2e\xc7\xe2\x6c\x5d\x42\xf5\xfa\xd0\x05\x86\x23\x11\x06\xa8\x32\x52\xf1\x77\x68\x79\x45\xda\xc6\x44\xe2\x6b\xf1\xf7\x17\x03\xec\x81\xba\xab\x5b\x6f\xda\x85\x01\x83\x2e\x7f\xed\x97\xdb\xa7\xd9\xc3\xe1\xf7\xe7\xe5\xf6\xcf\xc3\xdd\x6c\x77\x78\x58\x3d\xae\xda\x87\x90\x61\x84\x11\x07\x59\xe4\x55\x5d\x1a\x46\xa0\xde\x69\x10\xa9\x20\x30\x89\x61\x5b\xff\xfd\xfd\x04\x57\x61\xc4\x2d\x53\x54\x30\x48\x9c\x47\xc0\x23\x1c\xab\xba\x78\x46\x34\x98\x0d\x3c\x74\x72\xb0\xdd\x17\x07\x21\x9d\x94\xf0\x6f\xef\x5f\xac\x49\xd0\x11\x26\x95\xf4\x39\x57\xe8\xcd\xad\xac\x18\xc1\xf7\x47\x42\xa4\xa5\x47\x9c\x56\xef\x90\x3c\x63\x7a\xeb\x8a\x09\xd5\xe8\xe1\x7e\x00\xbc\x05\xfd\xec\x6b\x4c\x42\x1f\x19\xd0\xac\x68\x4a\x75\x9a\x89\x74\xb0\xf9\xc6\x24\x0a\xb1\x04\x18\xc1\x32\xfb\xe2\x26\xe5\x7d\x6a\xd2\xd6\xbc\x88\xbd\x30\xc4\xec\xd4\x81\x2b\x85\x32\xa8\x63\x61\xe2\xc1\x20\xc7\x9e\x08\x51\x9d\xe1\xa1\x78\x31\x10\xa3\x2d\xfc\x7b\x78\xb4\xc5\x9e\xe4\x58\xd7\xd3\xb8\xab\x8b\x2c\x05\x43\x06\x98\x5d\x07\x10\x46\x97\x29\x81\x76\xaf\x06\xa8\x16\x06\x09\xd9\xe6\x61\x62\x0f\x24\xba\x48\xb3\xdb\xfd\x72\x7b\x78\x9c\xfd\x3a\xdc\xad\x67\x0f\x87\x9b\xe7\xed\x6c\xbf\x5a\x3f\xb9\x6e\xbe\x1f\x2b\xa3\x2d\x6d\x54\x21\xba\xad\xe2\x8b\x44\x44\xec\x87\x21\x06\x3c\x72\xf8\x44\x4b\x55\xf1\xf2\xd2\x43\xe9\x6b\x12\x07\xc2\xc7\x03\x0f\xce\x65\xb1\xe5\x69\x05\x6a\x2b\x5d\x1b\x4d\x8c\xf9\x28\x32\xee\xfe\x14\xc6\x06\x2e\x82\x00\xc9\x83\x29\x77\xd8\xdf\xaf\x9f\x77\xb3\xa7\x9b\xfd\x7d\xdb\x4b\xfb\xa8\x67\xf5\xfb\x76\x9b\xb6\x76\x4a\x1c\xf9\x89\xe1\x80\x7d\x87\xbc\xae\xee\xd3\xaa\xa5\x7c\x6c\x1a\x05\xc7\x49\x0c\x8d\x0f\xdb\x8c\xbc\xd2\xdd\x4e\x13\xc7\xbc\x1f\x4c\xd9\xf1\xe3\x69\x1a\x40\xaf\x49\xcc\xbc\x84\xbb\x24\x03\x54\x7c\xf4\xf5\x98\x1f\x51\xe2\x6a\x7b\x90\x6e\x63\xd1\x1f\x8d\x24\x88\x99\xf5\xcc\x53\x7d\xb9\x2f\xca\x0a\x2e\x37\x39\xff\x31\x0a\x0a\xb9\xde\xd4\x6c\x14\x2f\x50\x6f\x0b\x89\xb6\x1c\x7a\x91\xc3\x9f\xe4\xc4\xc3\x64\x52\x61\xd0\xeb\xb8\xd4\x47\xeb\x63\x38\x09\x05\x0d\x0d\x89\x53\xfa\x6e\x0d\xf1\xb4\x35\x12\x63\x41\x23\xc2\x1c\xc3\xd3\x39\x2d\xcd\x7e\x5b\x17\x6d\x7b\xc2\x31\x19\x23\xa1\xac\x67\xe7\xfa\x15\x1d\xe4\x6a\x01\x25\x32\x90\x5e\xfb\xf5\xa3\xd3\xee\xaf\x6a\xf3\xf1\x17\x34\x96\x38\x3c\xf2\x53\x06\x3d\x97\x35\x96\x44\x20\x42\x67\xf6\x52\xa6\xa8\xbe\xfe\xc0\x05\xb4\x5f\x5f\x52\x2a\xdb\xf4\xd9\xa9\x4c\x47\xe5\xc3\x9a\xc4\x8a\x48\x5c\xf5\x0f\xc5\x04\x8b\xf9\x60\xf5\x83\x12\x58\x6e\x74\xe4\x9f\x8d\x15\x8e\x0b\x7b\x68\x54\x31\x12\x04\x58\xe4\xb1\xdf\x9d\xb8\xec\x3f\x26\x23\x9a\x21\xd8\xee\x71\xf6\xa7\x33\xb0\x99\xa7\x12\x44\x84\xdf\xf3\x92\xff\x96\x96\x69\xfb\x77\x6d\x08\x15\x9b\x25\xb9\x5f\xef\x67\x0f\x8e\x80\xf7\x6e\xb9\x3f\x2c\xdb\x09\xcf\xfc\x28\x74\x69\x87\xe6\x98\xba\xd2\xbf\x1e\xaa\x0c\x8f\x51\xcf\xb6\xa2\xc7\xfe\xe3\x6e\x99\x48\x24\xf6\xfb\x03\x4a\xde\x7f\xfc\xc0\x0b\x23\xa4\x00\xff\x73\x3e\x88\xd0\x5e\xa7\x0c\x58\x00\x0c\x99\xa1\xed\x58\x36\x47\xb7\xd3\xe6\xb0\x3d\x68\x20\xb0\x3a\xec\xdf\xe7\x54\xbe\x2d\x8a\xfc\x1d\xca\x09\x1c\xd9\x70\x02\xb0\x50\xf8\xdc\x73\x02\xc3\xf8\x0c\x7d\x7b\xd5\x76\x8a\x02\x49\x6c\x26\x1e\x99\x8b\x9e\xab\x61\x9d\x5d\xd3\x25\x89\x10\x76\x94\xa3\xb0\xf4\x01\xf5\xd6\x0e\xaa\x3b\xe0\x9b\x0e\xe1\x17\x05\xdf\x6d\x8f\x18\x17\xfb\xef\xe7\xcb\x0d\x3f\xbb\xeb\xe2\x28\x46\xef\xe3\xb7\x42\x16\xfd\xa1\x8b\x95\x8f\x01\xc7\xdd\x7e\xbb\x9c\x3d\xae\x9e\xee\x5c\x03\x53\xc6\x5d\x11\xe7\x51\x6a\x94\x25\x81\xc2\x6a\x82\x23\xff\x6c\xcc\x33\x43\xbc\x5b\xf6\x9d\x3a\x96\x08\xa3\x49\xfc\xca\xab\xd7\x9a\xbf\xb4\x7f\x56\x21\x22\x95\x71\x72\x5e\xe3\x8c\x59\x02\x3e\x38\xae\x3b\x6b\x95\x4e\x2d\x37\x96\x40\x82\x99\x31\x1b\xe2\x78\x82\x5a\x63\x00\xd3\xdd\x87\x87\x9a\xdb\x80\x0a\x1a\x60\x18\x8a\x1e\x4c\x03\xc1\x7c\x17\xe2\xe9\x8b\x9c\xd8\x56\xd9\x3c\x88\x89\x86\xd5\xaf\xc8\x6b\xae\xfd\xb6\x4d\x2a\x3c\xa1\x5d\x2c\xcb\x32\x22\x7c\x73\xba\xb7\xb3\xd8\xe4\xcf\xba\x93\x98\xa9\xb0\x83\xd4\xa5\x3c\x33\xf1\x0b\xb4\xab\xae\xf6\xc1\xff\xf6\x5f\xfb\x0b\x10\x44\x83\x5c\x94\x51\x81\x9a\x3c\xe8\x19\x70\x8a\xbc\x1f\x46\xf2\xa7\x35\x5a\x87\x43\xaf\x79\x60\x08\xa3\x1c\xb5\xe2\xc1\x6a\x1a\x5c\x6e\x46\xc5\x20\x9a\x24\x44\x02\xd2\xa1\x70\xa5\x5a\xbc\xaf\x6d\xf2\x20\xe4\x48\x0c\x5f\xa4\xf9\x23\xb4\xd8\xb7\xc4\x27\x1c\x17\xc0\xc7\x31\xfd\x12\xde\x91\xf8\x9e\x60\x04\xa7\x97\x48\xe5\x6b\x0e\x6d\x4a\x36\x09\x08\xb5\x62\x1b\x06\x39\xfe\xce\xb3\x9d\x7c\x05\x75\xce\xdc\x87\xfa\xde\xfb\x4f\x02\x5f\xa8\xb8\xb3\xdf\x71\x5a\xd9\xea\xd1\x51\xc7\x80\x0b\x03\x67\x5f\xe5\x26\xf5\xd5\x87\x45\x25\x81\x56\x18\xb1\x3b\x88\x54\xf5\x34\x8b\x46\xbf\x46\x7d\x85\x2c\x71\x2f\xfc\x08\xb6\x0e\x74\xb0\x98\x13\x1a\x47\xf8\xa6\x08\x61\xea\x2a\xe2\x35\x49\x42\x50\x86\xcc\x04\x23\xf0\xb3\x5c\x2d\x73\x35\x20\x1f\xb4\xfd\x22\x9a\xb8\x35\x85\xc5\xf6\xbd\x52\xd8\xa6\xd5\xc6\xe7\x7b\xf8\xe2\x69\x1b\x22\x89\x89\x59\xbb\x56\x79\xf5\x2d\xb3\x7c\x9e\xdf\xc7\x9a\x92\xd8\xe6\xd6\x8f\xfc\x73\x7e\xbe\xa4\xf9\x4b\xcf\x5b\x49\x18\x18\x06\xc0\xd5\x62\x3d\xc8\x1e\x26\x4c\x1b\x96\x2c\x9d\xe6\x3c\x33\x25\xf2\xbd\xed\x25\x49\xbc\xd0\x10\x84\x55\x55\xfa\x32\x29\xd2\xd0\x74\x0a\x93\xc8\x6c\xa5\x35\x6f\xbc\xab\xe9\xb2\x94\x24\x91\x06\x0c\xff\x02\x75\x4b\x64\xd3\x2b\x4e\xda\xf2\x5c\x15\x23\xf3\x25\x49\xb4\xc0\xa3\x11\xb5\x7d\x9d\xbc\xf5\x08\x39\x91\x70\x4f\x63\x7a\xbf\xd9\x03\xd1\x67\xd8\x5f\x4e\x36\xf8\xc4\xfe\x6e\xc6\xd3\xdd\x8a\x12\x2f\xb2\xfb\xc4\xb4\x81\x94\xf0\x90\x69\xd6\x53\x49\xdb\x41\x66\x36\xb5\xdb\xb2\x30\xc6\xc0\x75\x36\xaf\xdd\x88\x12\x9e\x18\x78\x12\x57\xea\xae\x68\xad\xd3\x44\x00\x47\xf2\x12\x04\x38\x2c\xd2\x3a\x6d\x23\xdf\x89\xd0\xd2\x60\xb4\xdb\xa1\xba\x4d\x3f\xe1\x0b\x86\x3c\x4d\x12\xe9\x87\x46\xf0\x01\xf9\x9d\x31\x69\xbb\x29\x8b\x77\x2e\xb2\xcb\x2d\x4f\xcb\x6b\xa2\xa4\xe6\x9a\xc0\xc3\x70\xfe\x13\x94\x6a\xf7\x9a\xd6\xbd\x73\x2b\x91\xb6\x9a\xa4\xfa\xe0\xa7\xf1\xc8\x4b\x2e\x13\x93\x11\xc5\x2a\xfc\xab\xf0\x5d\x2f\x37\x9a\xa8\xc0\x78\x68\x65\x71\xe1\x59\x7d\xd9\x97\xdc\xe8\x2f\x0c\x47\x57\xa9\x18\xf1\x1c\x2d\x23\x87\xd6\xe9\xff\xcf\xd9\x9b\x74\x37\x8e\x63\x5f\xe2\xdf\xa5\x57\xb9\xa8\x05\x01\x70\xfc\xef\x64\x59\x76\xe8\x97\x9e\x4a\x92\x23\x32\xab\x4f\x1f\x1d\x0c\x0f\x36\x2b\x24\x52\x45\x52\x76\xb8\x3e\xfd\xff\xf0\x3d\x00\x22\x29\xd9\x99\xdd\x9b\x8a\x2c\x03\xa4\x48\x10\xc3\x1b\xee\xbb\x77\x57\x62\x26\x63\xbf\x2f\x07\xe8\xcb\xc2\x98\x3c\x8e\x03\x15\xb8\xcf\x52\x11\xbc\xf9\x33\xad\xe7\x0b\x8c\x0a\x36\x2a\x40\xc4\x1e\x30\xe5\x0b\x1b\xa6\x94\x7c\x7d\xaf\x34\xb1\x0e\x7e\x3c\xeb\xea\xfd\x8d\x9c\xec\x35\xde\x76\x2a\x40\x72\x34\xcc\xeb\x51\x82\xe2\xcb\xd4\x72\x01\xda\xa2\xb7\xee\xcf\x82\xed\x30\x36\x2b\x23\x21\xd1\xd0\x58\x6e\x16\xe1\x4f\x92\x23\xab\xc4\xf7\xe5\xd3\x0d\xf8\xe5\x2a\x59\x42\xb7\xd9\x2c\x17\x2b\x7e\x12\x60\xb5\x91\xe4\x82\x98\xfe\x28\xa3\x84\x06\xf2\x99\xcc\x45\xdf\x2d\x2b\xd0\xcf\x3f\xf4\x63\xc9\x16\x98\xa9\x9c\x75\xe1\x26\x0a\xa4\xcf\x0a\xe3\xc4\x5a\xd5\x3f\xc7\x96\xaf\xe4\x3a\x16\x84\x61\xbc\x45\xf6\xa8\x01\xf2\xda\x77\x11\x1c\x32\x45\x1b\xd5\x0a\x7a\x3f\x0b\xb7\xf3\x40\x5d\xed\x7b\x25\x29\x2e\x94\x63\x0b\x0d\xea\x11\x4f\x82\x34\x52\x68\x48\xcc\x68\x5d\x5c\x97\x6f\x9f\x9c\x63\x52\x38\x6d\x0c\x92\x9c\x9e\x3d\x2d\x2f\xf0\x1c\x62\x37\x2b\x63\x2f\x1f\x40\x86\xd6\xbc\x6e\x9a\x0b\x04\x6e\xde\xc9\x95\x31\x27\x91\xa0\xad\xab\xb6\xbb\x83\x37\xd8\x7d\x61\x7e\x7f\xfd\x8f\xbf\xa9\xc8\x70\x3b\x78\xf7\xe5\x15\x98\x63\xf3\x8d\x89\xb6\xe4\x8e\x1e\xea\xa6\xdb\xa2\xe9\xf4\xc9\x6b\x67\x0c\x6c\xea\xcd\x3c\x78\x23\x78\xe2\x60\xe1\xcb\x2c\x4f\x28\x24\xe3\x8e\xee\x61\x2c\xfc\xc2\x46\x21\xb3\x22\xf3\x40\xbc\x6b\xf9\xf1\x4f\x52\x7a\x98\x7e\x19\x69\x34\xc2\xd7\x67\xcb\xfb\x01\x84\x51\x4a\x1b\x7b\xc0\x3b\xa1\x5b\xdb\x9b\xba\xb9\xaf\x8d\x1b\x2e\xbf\x7e\xa4\x52\x22\x27\xa6\xcc\x6f\x75\xf7\x39\x49\xa2\x8d\xa4\xd6\x39\x16\x0a\xfe\x73\xbe\x9e\x0f\x03\xe9\x52\x5b\x9a\xa8\x87\xb2\x91\xd5\xab\x6c\xa7\x5a\x20\x36\x92\x86\xc7\x02\xbc\x2f\x7e\x52\xd3\x24\x61\x99\xc9\x30\x1a\x0d\xa8\x4a\xe5\x08\xc0\x7e\x94\x55\x55\x56\x2f\x01\x35\xe2\x7b\x19\x22\xe3\x70\x06\xcd\x77\x68\xfa\xed\xea\x62\x84\x51\x42\x24\x14\x81\x19\x54\x3d\xdc\x6d\x65\xef\x16\xb9\xc2\xd7\x7e\xf6\x3d\x93\x9c\xc6\x0e\xcc\x35\x58\x18\xa6\xb9\xc7\x4f\x68\x93\x48\x17\x4e\xcd\xeb\x00\x54\xe2\xef\x9b\x32\x48\x93\x93\xf9\xf2\xe2\xbe\x6c\x18\x6e\xab\xa8\x46\xa9\x82\xf7\x9b\x63\x77\x6c\xc0\x21\x62\xbf\x36\xdf\xa4\x35\x04\xd9\xd8\xf2\x2d\x98\xa3\x1e\xae\x5d\x15\x31\x42\x20\x7e\x5f\x3e\x2c\xfe\x9c\xad\xae\x27\xf0\x62\x15\x25\xca\x9a\x13\xb3\x55\xfb\x68\x49\x8c\x60\x3c\x48\x2a\xca\x48\x69\x94\x0c\xa1\xd9\xe1\x00\x72\x37\x3e\x80\x54\x94\x67\x3a\x68\xd9\x55\xb6\x7c\x79\x2e\xab\x6e\x38\xc3\x55\xa4\x89\x62\xa3\x01\x69\xd6\xb5\xed\xde\x65\x03\xcb\xca\xf6\x5e\xdf\x57\x19\x1f\x77\x35\x93\x86\xbe\x93\xa3\xa6\x9c\x4a\x3a\xfa\x6e\x8a\x88\xf4\xe9\x49\x03\x8a\xbc\x7e\xff\xed\xef\xc0\x22\x15\x8f\x59\xce\xfc\xe9\x4f\xd3\xb4\xff\x82\xde\x13\x52\x3c\x61\xc8\x58\xdd\xbe\xd6\x87\xdf\xab\xd2\xfa\x6f\xab\x44\x64\x53\x1f\x49\x26\x9f\xe6\x04\x9e\x3a\x77\x6c\xc6\x3f\x2a\xb8\x4e\xbd\x90\xe1\xb6\x7b\x6d\x00\xb0\x5a\x74\xf1\x9f\x2b\x3a\x24\xc3\x6f\x64\x04\xb0\x3d\x56\x21\x7c\x3e\xf9\x4e\x42\x66\x98\x71\x78\x95\x8d\x99\xcb\xc3\x70\x25\x2a\x21\x0d\x40\x08\xa6\xd2\x79\xb0\xfa\x44\xc3\xc6\x46\x2a\x61\x69\x42\xe4\x38\x3b\xf9\xf1\x68\x89\x8d\xcc\xdf\x2b\x11\x1c\xa7\x55\xff\x19\x4f\xe0\x58\x95\x88\x58\x3b\xbc\x84\x2f\x48\x3c\xe9\xdb\xdb\x48\xa5\x3c\x92\xb4\x9f\x38\x7d\xc7\x79\xbd\x3f\xec\xa0\x9b\x02\xcb\x55\x0a\x54\x67\xfd\xb8\xba\x5e\xac\xb6\xf3\xd9\xc3\x7c\x71\xf7\x17\x83\x98\x41\x82\xe1\xea\xc0\x14\x81\x69\xfe\xcb\x7d\xf3\x28\xc2\xf2\x01\x5f\x62\x46\xc4\x2b\xd7\xa7\x43\x5a\xe5\x89\x62\x0e\x0a\x7d\x0d\x56\x1e\x77\x28\x42\xbf\xac\x46\xb2\x0e\xa7\x1b\x16\x90\xe0\xb8\xd7\xd5\x62\x35\xcf\x38\x73\x5c\x48\xe7\xaa\x63\xc3\xf5\x20\x39\xc9\x36\xef\xd1\x7e\x25\x38\xdf\xa0\xb2\x4c\xc9\x22\xc1\x02\x66\xc4\x27\x0d\x4b\x34\x95\x2c\x52\xe2\x35\xa5\xb2\x6c\xe2\x16\x0b\xa3\x2c\x81\xe3\x4a\x34\x35\x06\xfd\x26\x10\x5b\x25\x21\x43\x1b\x7d\xeb\x4c\xc5\xab\xe3\xc7\x4a\x56\x9f\x24\xc2\x95\x92\x24\xa6\xf6\x6d\xfd\x6d\x34\x9b\x14\x44\xa8\xe3\x89\xe6\x09\x51\x59\xe0\x42\xd9\x6e\xea\x53\x97\x1c\x43\xca\x41\x3b\xef\xab\x58\x9e\xd2\xa9\xc6\x90\x7b\xd9\x12\x76\xf4\x6c\x4e\xe8\x42\x3b\xb2\x10\x1a\xdb\xeb\xc5\x86\x78\x43\x3e\x79\x72\x2d\x29\x3d\xf3\xdc\xf6\x1e\xd8\xd5\xe4\x6e\xa6\x90\xe8\x34\x1f\x8e\xed\xeb\x18\x34\x74\x72\x11\x94\x65\xc4\x53\xf9\x24\xcb\x41\xaa\x80\x4c\x57\xdf\x25\x36\x36\x0e\xf4\x5e\x8b\x8a\xd0\xec\x93\xe9\x61\x53\xc6\xc6\x24\x29\xf5\xe4\x71\xac\xc9\x30\xca\xb7\x81\xb6\xeb\xbe\x56\x92\xb4\x91\x8e\x22\x66\x88\xd7\xb6\xae\x6d\xef\x62\x6d\x67\x95\x69\xea\x00\x1a\xd4\x51\x12\x63\x70\x10\x45\xf7\xcc\x30\x4e\xa4\xa3\x54\x22\x7b\x02\x1a\x6b\xc7\x76\x62\x5b\x6b\x66\x98\xce\x06\x25\x38\xae\x68\xec\xa9\xae\x77\x93\x9e\xbc\x48\x2c\x1d\xb2\xf0\xaf\x7a\xaf\x4a\x98\xd7\xbb\x7a\x02\x3b\xd3\x22\xcf\xa9\xa2\x89\x62\x8a\xf7\xb2\xac\x74\x6f\xf1\x9e\xf3\xf2\xd9\x48\xc7\x4c\x60\x04\xed\x0c\xec\xff\x35\x0a\x4d\xc7\x4c\x29\xee\x39\xf4\xe4\xfe\x30\xa5\xa3\xf6\xdd\x92\x38\x0b\x41\xfd\xf2\x63\x51\x19\x57\x43\x3d\xa5\x71\xe9\xfb\xea\x08\x33\xaa\xc8\xb3\xa6\x3b\x0a\x21\x85\x36\x21\x1c\xa5\xdd\x0d\x1a\xb1\xeb\xb2\xd2\xe0\x69\xcb\x7d\x27\x4b\xb3\x75\x7f\x6c\xbb\x4d\xdd\x7b\xa6\x44\x52\x30\xe8\x60\x22\x62\xbd\x9e\x75\xce\x6a\x26\x92\x80\xc9\x93\x24\x32\xc6\xd4\x38\x69\xc9\xf5\xdb\xf0\xe6\x71\x7b\x18\x26\xfe\x74\x22\x33\x34\xe3\x69\x67\xef\x9d\xf3\x7e\x1b\xf1\xb1\x95\x30\x9d\x75\x5a\x40\x6e\x86\xbc\x63\x01\x03\x7d\xda\x75\x74\xc6\x04\xe2\x5b\xfe\x0b\xd5\xe3\x7a\xac\xfc\x65\x23\x9d\x67\x79\x42\x63\xf8\x06\x21\xba\xcd\x78\x7e\xca\x3d\x05\xed\x84\xa9\x7d\xae\x8b\x44\x69\xef\xb6\xf5\xce\xf9\x77\xd9\x94\xfd\x2f\x7f\x5a\xa6\x76\xf9\x8c\xd6\x45\x91\x21\x08\x14\x2a\xb3\x9c\x3f\xa2\xcb\x12\xfb\xe7\x93\x29\xcb\x89\x55\xce\xc0\xbe\x2a\x5b\xdc\xac\xb7\x22\x34\x83\x44\x58\x0f\x46\x48\x57\xf5\x71\x07\x5d\x88\xcc\x68\x69\x21\x02\x0f\x95\xbb\x7d\xf0\x87\x9d\x56\x09\x45\xda\x69\x78\x89\xe1\xc5\xab\xe3\x8f\x81\x57\xfe\x82\x2c\x8e\x48\x5e\xe7\x7f\x6a\x45\x60\xbd\x51\x73\x4e\xd8\x92\xde\x54\x38\xd5\xc2\x4e\x26\xab\x82\x08\x55\x3d\x50\x6b\xdc\xd7\x2a\xdd\x34\xf5\xbe\xff\x66\xb8\x43\xc2\x05\xa8\xe5\x99\x7b\x3d\x5a\x5f\x5a\x73\x24\x35\xd4\xaf\xc7\xea\x67\xb2\x6c\x49\xd5\xd7\x35\x9a\x84\xf8\x5f\x66\xc7\xee\xb5\x7f\xa8\xc9\xf3\x98\x44\xb3\x13\xf8\x75\xf3\x2b\x5c\x96\x47\x88\xa0\x79\x9c\xcd\xe7\xfe\x6f\x90\x72\x2c\x0f\xfe\x63\x39\x7b\xfc\xd7\xb7\x65\xf8\x38\xa0\xa5\x1d\x00\x7d\xf1\xbc\xf8\x26\x1b\xa3\x83\x05\xa1\x2d\x2b\xa8\xf8\xc4\xd1\x53\x23\x08\x59\x9d\x2d\x65\xab\x25\x56\xb7\x6e\xb1\x5c\xf8\x7d\x81\x5c\x6e\x4b\xff\x2e\x26\xe2\x1a\xd3\xfa\xb3\xef\xb7\xdb\xab\xbb\xc7\xf9\xef\xeb\x6d\xc4\x7f\x84\xd6\x2c\x42\x97\x4e\xee\x76\xcb\x0e\xf6\xbd\xef\x33\xb0\xd2\x4d\x64\x8c\x70\x15\x1c\x54\x5d\x4e\x7b\xc9\x85\x0d\xcb\x30\x9d\x6b\xa0\x70\x17\x81\x36\xfc\xdf\x4d\xc4\xdd\x4c\xdf\xf6\x7e\x40\x37\x95\x57\xec\xfb\x00\x29\x66\xd3\xa6\x55\x55\xb0\x9b\xb2\x0a\xda\xc8\x70\x2e\x91\xea\xb6\x3f\x14\x0f\x84\xa5\x1e\x2e\x05\x23\xa2\x2c\xf7\x5e\xa5\xd3\x5e\x9b\xcb\xdd\x0e\x79\x48\xcb\x41\x4d\xa7\xef\x2e\x0b\xe3\x7e\x13\x29\xf6\xdb\x61\xd2\xd3\xc4\x59\x8c\x54\x9d\x98\x19\x32\xf5\xcb\xa4\x31\x41\x27\x8d\x12\xbe\x8f\x37\x37\x8b\xd5\xf2\xe1\x76\x3b\xbb\xbb\x7b\xfc\x31\xf3\x3a\x9a\x7d\x3f\x5d\x70\xe3\x19\xb2\xf6\x30\x2a\x58\xf4\x5d\x0c\xc3\xa8\xcc\xee\x42\xbd\x9f\xeb\x92\x44\x31\x28\xec\x52\xff\x3c\x1e\x7e\x2f\xbb\x13\x72\xc8\xf7\x48\x18\x73\xdb\x67\xe3\x11\x13\xcb\xf6\xa6\xa9\xff\x0b\xd5\xd5\x85\xb8\xbc\x49\x93\x04\x83\x85\xdb\xb0\xfb\xe1\xb1\x4f\x59\xf0\x59\x65\x88\x99\xdf\x40\x73\x75\x34\x2f\x30\x49\x01\x98\x54\x53\x9d\x10\xf4\x87\xc6\x6e\x87\xaf\x35\x88\xce\x9a\xd4\x5a\xac\x4b\xbf\x07\xe8\x1e\x9d\x0c\xfb\x80\x08\xc6\x64\xba\xb0\xd6\x97\xd6\xc1\x5b\x59\x1f\xdb\xf5\xb1\x39\xec\x8e\x5f\x40\x82\x4d\x66\x05\x8e\x82\xa4\xa8\x33\xd2\x0e\xfb\x1b\xe6\x89\xce\x0b\x8f\xdb\xc4\x5c\xf2\x24\x65\x65\x72\xc7\x78\x72\x57\xbf\xac\xc0\x00\xec\xa9\x7a\xe7\x2c\x0c\x36\x9a\xd1\xb9\x89\xa5\x2f\x6a\x0f\x5c\x9a\xfd\xdf\xa1\xf0\xd0\xb5\x3b\xd9\x76\x77\xe0\x99\xe0\x9c\x49\x6a\x8a\xa8\x40\x03\xe6\xd8\x9a\x11\xb0\xc0\x14\x19\xc9\x00\xf8\xd2\xbc\x50\x60\x3a\x7e\xda\x42\x29\xcc\x26\x7f\x40\x3b\xb4\x33\x8d\xcc\xe3\xc0\x43\xea\x56\x11\x9e\x56\xe3\x89\x2d\x25\xc7\x75\x60\xea\xa3\xda\xc1\x1f\x7f\x5e\x0e\xc2\x18\xa9\x24\xc2\x81\xf6\xd0\xf4\x0f\xd1\x2d\x51\xc8\xd3\xff\x94\x8e\x19\xc2\xc4\x1c\x41\xd5\xd8\x75\xbb\xf0\x79\x4c\x46\x02\x66\x0a\x79\xeb\xae\xea\xfa\xe7\xd9\xd8\x8e\xdf\xd1\xc8\x34\x90\x8a\x5f\xce\x9d\xf9\x8e\x3a\xc2\xd0\xeb\xb2\xfa\xf7\xb1\xf9\xd8\xcb\xc3\x20\x2e\x61\x2c\xa7\x4a\x11\x75\xfc\xb8\x87\xb6\x3d\xe5\x5f\x8c\x4d\x0b\x8c\x0f\x3b\x94\xf7\xb7\xe3\x5e\xfa\xab\x20\xe2\x0a\x91\x92\x3f\x16\xcb\xed\xfd\xec\x8f\xe5\xfd\xf3\xfd\x76\x31\x5b\xdd\xfd\xf9\xf4\xbc\x9a\x7f\x9b\xad\xfd\x02\x06\x16\x69\xc4\xe8\x1e\x76\xf2\xa2\xdc\x42\xdf\x45\x10\x30\x81\x50\x18\xfd\xa1\xb4\x78\x79\x79\x9a\x92\x03\xf6\x1d\xd3\x82\x39\x08\x37\xa5\x69\x2e\x65\x36\x81\x29\xc9\xb5\x57\x69\x38\x31\x7d\xf7\x2d\x96\x24\x08\x5a\xe8\xbe\x23\xfc\x92\x68\x88\x8e\x43\x15\xf4\xf1\x18\x03\x17\x4c\x91\x26\x7b\x07\x55\xa0\x06\x02\x9e\xda\xdc\xe1\x3d\x88\x5a\xe2\x82\xca\x8c\x8d\x40\x18\xe6\xe5\xe1\x16\x95\x19\x6c\xd7\x20\xac\xb5\xb9\x0f\x0c\xfc\xa8\x27\xd1\x5a\x88\xa3\x34\xe5\x83\xdc\xea\x25\x34\x30\xc4\x5c\x7a\x75\x25\xef\x94\x0d\xa2\x7c\x77\x60\xc3\x8b\xc7\x3a\xb6\x4e\x7d\xe2\x56\x76\xf0\x2e\x3f\x96\x93\x1f\x4c\x44\x8c\xeb\xbf\xf7\x1d\x5f\x9a\x13\xf0\x12\x12\x00\x44\x91\x96\xba\xe6\xdd\x00\x1e\x0c\x29\xcb\x08\x05\x49\x19\x12\x80\xff\x0e\x62\xfe\x03\xaf\x07\x52\xcd\x11\x5e\x34\x9f\xad\x87\x4b\x11\xb2\xb4\x70\xb0\xa3\xf6\xb8\x87\xf5\x7b\x38\xb5\x21\xd3\x96\x09\xcf\x3b\x89\x21\xe2\x59\xd9\x98\xa6\x3e\x9c\x03\xc8\xdd\x15\x79\x6a\x0b\x97\x05\x43\xc6\x9d\x1d\xc9\xbd\x8f\xdf\xb1\x48\x0a\x3c\x90\xa8\xa4\x57\xee\xa6\x46\x12\xc8\x88\x04\xdf\x5b\x57\xa8\xcb\xc9\xd8\x1a\x8f\xba\x8c\x85\x90\x6e\x4b\xc3\x30\xa9\x2d\xc1\xf4\x87\x4e\x05\xcd\x3c\x30\x49\x7c\x5a\xa8\x08\x32\x56\x68\xb5\xa0\x4a\xbc\x37\x31\x40\xf1\xc2\x2a\x4f\x46\x81\x58\xec\x51\x50\x13\x54\x26\x32\x5f\xdf\x40\x19\x7b\xcf\xb4\x15\x7a\x68\xf0\x15\x10\x8b\x2a\xb0\xec\x80\x8e\x84\x0c\x56\xe8\x0f\x28\xd7\xf5\x2e\xfc\xa8\xce\x62\x24\x1a\xfc\xbe\xd8\xac\x66\xe1\x8f\x45\x8c\x3c\x24\x60\x5e\xe0\x09\x9a\xa0\xc1\xea\x9b\xa5\x21\xbe\xa2\x7a\x7f\x68\x8e\xa0\xe4\x65\x2a\xb1\xbe\x1f\x66\xc2\xdf\xea\x0e\xd6\x6f\x87\x48\x0c\x67\xbf\x89\x78\x41\xfa\x78\xea\x48\x81\xbd\xf1\x18\x19\x16\x63\x7d\x45\x53\xbe\xbc\x76\x45\x32\x6d\x55\x99\xb6\x81\x96\xb4\x37\x8a\x66\xfd\x50\x6d\x11\x04\xbd\x5d\x9a\xed\xcd\xb4\xf8\x14\x20\x33\x96\x07\x31\xcd\x1f\xe5\x24\xe0\x02\x36\x23\x16\xa0\x9b\xb2\x7d\x3d\x21\x6e\x6d\x64\x01\xb3\x2e\xc4\xb1\x40\x47\xe3\x7e\x0f\x95\xc1\x08\x71\x73\x1e\xb9\xb1\x9c\x09\xca\x5d\xf5\x4f\xce\xb3\x69\x6b\x1e\x61\x10\xac\x6c\x1f\x71\x02\x4e\x9a\x85\xe5\x3a\x1f\x63\x37\xc6\x1d\xe2\x98\x08\xbd\xfa\xc3\xaf\x01\xd9\x1e\xa7\xa7\xb4\x8d\x53\x81\xd0\x8a\xf6\xb5\x3e\x7c\x83\xdd\x3e\xa0\x02\x6c\x22\x00\xdc\xe4\x26\x7d\xd3\x69\x89\x47\xf8\x3c\x36\x91\x16\x83\x31\xc1\xb4\x79\x54\x9d\x2c\x2b\x30\xb3\xfb\xe5\x7a\xf2\x48\x99\x32\x68\x9c\xdf\xf5\x66\xf5\x50\xe1\xd4\x46\x36\xcf\x48\x7d\x07\xff\xd8\x3b\x1a\xf5\xd1\xd1\x51\x5d\x28\xff\xf4\xd7\x48\xeb\x09\xde\x9f\x9c\xcc\x0e\xd2\x68\xd2\x0e\x78\x7f\xdc\xcd\xeb\xdd\x4e\x76\x54\xfa\x72\x71\x85\xd9\x5c\x91\x18\xb8\x82\xee\x8f\xc4\x3f\x4b\x91\x66\x88\xa3\xd0\x12\x4d\xda\x73\xae\x9f\x93\x47\x65\x0b\x99\xe1\xc1\x67\x3c\x84\xf7\xd1\xfa\xdb\xc8\x24\x91\xce\xfc\x58\xef\xca\xc3\x41\x4e\x6b\x0a\xad\x8a\x05\x86\x05\xfa\x27\xac\x5e\x70\x4e\x5e\x4e\x72\x58\x95\x83\xf5\x25\x5d\xef\x2e\x2c\xf8\x59\xec\xc8\x2a\x9d\xd3\x3e\x5c\x99\x65\x65\x77\xe8\x88\x3a\xed\x74\xff\x6c\x0a\x38\xc4\x27\x5c\x96\xdb\x33\x43\xab\x35\xb8\x6f\x75\xc8\xdf\xe6\x77\x0f\x44\xca\x84\x41\xd2\x2c\x16\x0e\xca\x60\xc0\x07\x53\x3f\xab\x9d\x3d\xfb\xff\x5f\x22\x55\xad\x4e\x95\x0e\xd4\x47\x93\x20\xa2\xd5\x3a\x45\x6e\xf4\xc3\xb9\x91\x30\x19\x34\xa3\xc8\x5c\xd1\xb2\xc2\xa9\xf4\xe3\x44\x0a\x66\x8d\x4e\xbd\x11\xbb\xac\xde\xf8\x64\x69\x18\x4b\x2a\xea\x13\xec\xa6\x05\x41\xca\x0b\x7b\xe8\xe4\xd5\xb1\xa9\xe6\xb2\x51\x75\x75\xdd\x4f\xb3\x73\xd2\x8c\x11\xfa\x79\xf2\x86\x00\xcc\x3a\x0b\xd9\xf1\xed\x7e\x1d\x63\xb6\x00\x16\x39\x5c\x30\xac\xe6\x45\x35\xcf\x7f\xe1\x93\x7a\xb2\xde\x45\x40\xd0\xe9\xdd\x51\xff\xd4\xaf\xb0\xff\xf8\x84\x76\xd3\xda\x54\xea\x78\x10\xcb\x3e\x25\x5b\x46\x0f\xe6\x64\xa8\x2c\x8b\x22\x66\x73\x3d\x30\x3f\xc6\x52\xa9\xc3\x9b\xb3\x88\xc5\x82\x24\x8e\xb1\xa2\x1f\x93\x54\xcf\x67\x84\x3c\xa3\x17\x67\x11\x4b\x89\x13\x62\xaa\x90\x92\xff\xe6\x3b\xb8\x32\x45\x55\x1f\x5f\x5e\x3b\x2f\xfb\xd1\x37\x28\x4e\x2a\x60\x87\x43\x8b\xdb\xfd\x80\xb7\x85\x45\x42\xc5\xc8\x00\x48\xa1\x95\x7b\xf9\xcb\x1d\xa2\xe3\x5f\x8f\x75\x2e\x5c\x7d\x01\x6e\x2d\xde\x11\xb8\x95\x97\x0d\x68\x16\x25\x5c\xda\xc4\xf9\xcd\x5e\xdc\xef\x62\x45\x02\x8b\x12\x5d\xe4\x8e\xd5\x6e\xab\x29\xe2\xb9\x95\x8d\x2a\xbb\x76\xbb\xf7\x46\x37\x8b\x12\xe0\x18\x06\x7f\xfa\xbe\xd8\xce\x1f\xef\x9f\x16\x0f\xeb\x01\x24\x9b\x45\x69\x1e\x23\xfb\xca\xc1\xc7\x60\x59\x94\x45\x91\x76\x3b\xfb\x71\x67\xfc\xe2\xbc\xf6\x95\x64\x2c\xca\x1c\x79\xe7\x0b\x74\xdf\xa1\x29\x6d\x49\xa9\xbb\x81\xc0\xfb\x00\xc0\xef\xaf\x29\x88\xd6\x4c\x1d\x3f\x36\x43\xc1\xe4\xf1\xeb\x67\x2a\x81\xcc\x4b\x2b\x23\x34\x76\x60\x56\x33\x94\x2a\x18\xa6\x4a\xbe\x72\x09\x59\x54\x24\x2c\xd3\x8e\x6a\xf5\x45\x76\x60\x36\xbf\x7a\xaf\x09\xda\xe7\x16\xc6\xf1\x0a\x16\x15\x69\x8e\x01\x73\xd9\xb6\xd0\x74\x8b\xff\xfc\x16\xd0\x7f\xff\x18\x77\x94\x31\xd1\x50\xfe\x98\xdd\xdd\x2d\x36\xdb\xa7\xd9\x6a\xf3\xb0\x58\xf9\x07\x94\x59\x56\xf8\x0a\xea\xe3\x49\xbe\xe6\x1f\xe3\x2f\x27\x8b\x1c\x7d\x6e\x8f\x88\x74\xf4\xe5\xcf\x94\xfd\x6f\xc3\xcd\x80\x48\xb8\xb6\x5b\x53\xbe\x6c\xbb\x57\xa8\xb6\x87\xe0\x46\x0c\xdf\x7a\x38\xce\x5a\x52\x4e\x15\x57\xfa\x45\x4a\x49\x16\x69\x25\x30\xb9\xfe\xa8\xfe\xed\xdd\xc5\xbf\xe4\xef\xe8\xaf\x4a\xd0\x8a\xa6\xd8\xd2\x54\x68\xf8\xf2\xf2\xd3\x90\xe9\x38\xe4\x3e\x9b\x71\xba\x74\x74\x77\xc3\x8c\x27\x84\x7c\xae\x54\x8d\xe1\xed\x01\xc1\xb7\x4b\x35\xb3\x08\x12\x0d\x2a\xd0\xbe\xfb\x2a\x79\xbf\x9d\x80\xd6\x94\xa8\x7e\x95\x65\xb5\x2b\xab\x9f\x03\x2b\x81\x45\x56\x42\xea\x6c\xb3\xbb\xbb\xef\x5b\xe8\x37\x02\xce\x7e\x1b\x3d\x87\x35\x36\xd1\x03\xed\x0c\xaf\xb0\x4f\xcd\xfd\x3c\x46\x8b\xd0\xc9\xc1\x7d\x1c\x26\x9b\x14\x8b\x94\x32\x4e\xfc\xf8\x78\xf0\x8c\x16\xfe\x6a\xc6\x01\x83\x31\x07\xf9\xf1\x27\xc8\x66\xf7\xf1\x3f\x52\xff\x3c\xd4\x93\x95\xcd\x58\x42\xb4\xdc\x3e\xfa\x76\xbf\x5e\x5e\x5e\x2f\x8c\xf7\x1e\xf7\xff\xfa\xff\xfe\xd7\xed\xff\xdc\x2f\xfd\x8f\x08\x4d\xd2\xcc\xa5\xae\x37\xaf\x0d\xb4\xaf\xf5\xce\x60\xd8\x87\x85\x1e\x36\x8b\x08\xac\xf4\x56\xb6\x75\xf3\xe1\x45\x80\x06\xb0\xda\xbe\x93\x93\x2e\x6e\x8e\x70\x5b\x9b\xf0\xf7\x38\xd6\x68\x31\x7f\x9b\x90\xfb\x30\x16\x27\x19\x77\x20\x64\x3c\x30\xa1\x79\x92\xbe\x62\x89\xb1\x38\x53\x72\x48\x88\xbf\x22\x0c\x97\x6f\x4e\x52\xed\x23\x7c\xce\xed\x20\xc7\x39\xb4\xdb\x88\xc4\x41\x5f\xcb\x0e\x09\xe3\xd7\x70\x2e\x46\x68\x19\x4b\x23\x83\x9b\xd7\x20\x38\x37\xa3\x9c\x73\xf7\xf1\xdb\x85\x22\x38\xc6\x52\x4e\x82\x05\xf3\xe6\xe3\xd0\xd5\xce\xda\xf5\x1b\x3d\x4b\x33\xc0\xa8\x82\x93\xa5\x42\x8c\xc1\xd2\x3e\x00\x98\x89\xd7\xc7\x58\x9a\x03\x63\x27\x5d\xd9\xfb\x5a\xa1\x12\xe5\x84\x96\xe7\xb3\x54\xc1\x70\x16\xb2\x4c\x14\x88\xf4\xa4\x68\xb2\xb9\x69\xea\xfd\x2d\x91\x6f\x5e\x50\xa2\xf4\xd7\xc4\x89\x63\x5c\xed\xe4\xee\x5b\xbd\x0b\x28\x79\xc6\x32\x4d\x94\xd6\xd8\x44\xe0\x5e\x30\x27\x46\x79\xcb\x58\x2e\x00\xdd\x12\xbf\xff\x45\xa3\x1a\xac\xd1\xf6\xc1\x72\x88\x53\x57\xa3\x4a\x3c\x19\xdf\x97\x57\x8b\x3f\x3e\x79\xaa\xdc\x66\xbe\x4c\xfb\x1a\x19\xeb\xf0\x15\xd0\xbd\x6e\x2f\x52\x1b\x31\x56\xc8\x38\x27\xa9\xb5\xe7\xaa\xfc\xd5\xf9\x1c\x57\xa8\x79\xff\xe4\x7f\xc3\xd5\x46\x7a\xf4\x0b\xc8\xfd\x68\x75\xb3\xc2\x6a\x49\x09\x8e\xfb\xb2\xea\xa4\xda\xc1\xc3\xcd\xc6\x8f\x81\xcc\x0b\xfc\x7e\x92\x56\xed\xe6\xd7\x38\xc8\xc2\x98\x2c\x32\xa4\xe8\xb9\x0f\x7a\x1f\xe1\x52\x2b\x90\xb5\x78\x71\x1c\x92\xf9\x5b\xc6\x54\xa1\x90\xb8\xfa\x66\xf5\x84\x01\xe8\xd3\xdf\x2d\x3a\x60\xb0\x2f\xbf\x8a\xa8\x31\xa6\x1c\x9c\x6c\xeb\x98\xb8\xbf\x9d\x88\x43\xfc\x1b\x2b\xc8\xb4\xa7\xb7\x1d\x93\xb5\x85\x45\xab\xb9\x26\xd5\xad\xcf\xa9\x9f\x27\xab\x42\xc7\x71\x3e\x20\x8b\xeb\x67\xe0\x88\x4a\xfb\xa2\xa1\xd9\x5f\x96\x5a\x52\xd0\x7b\xdf\x76\xf5\x16\x01\x02\x52\x77\x28\x62\xb4\xc5\xe4\x95\x1e\xaa\xfe\xf6\x57\xe4\x06\xdd\xa5\x7f\x2d\x1e\xc2\x97\xd0\x56\x13\xf8\xa7\xd4\x3f\xc3\x0e\x61\x92\x08\xb3\x97\x87\x9d\xd4\xb0\x7d\x1d\x4d\x70\x93\x10\x21\x33\xd1\xb4\x4e\x03\x05\x93\x67\x34\x86\x38\x17\xde\x4a\x78\xbf\x2d\xdf\xe0\x77\xd9\xec\x65\x40\x40\x32\x06\x2a\x2a\x28\x83\x05\x4b\x5d\xcf\xa8\x74\x60\x70\x06\x80\x4d\x34\x81\xe7\x70\xdb\x1c\x7d\x0b\x9b\x19\x6e\x4e\x85\x3d\x57\xa5\xf1\x7a\x87\xd4\x81\x47\x11\xc3\x6d\xb0\x37\x82\xa0\x81\xe3\xfe\x57\x68\x89\x8d\x4a\x4f\x97\xfa\xa3\xc1\xb7\xe6\x12\xc3\x78\xfd\xd6\xf9\x03\xe0\xe7\xee\xc3\xd5\x87\xfb\xf6\x22\xc3\xbc\xef\xfc\xdb\xe2\xe1\x7a\xe1\xff\xca\x12\xc3\x93\x01\x79\xca\xa5\xcd\x86\x73\x30\xce\xd7\xaf\xcc\x76\xef\x22\xb3\x97\x0e\x69\x2e\x84\xca\x8a\x01\x7d\xe8\x1e\xae\xa0\x7b\x07\x40\xa0\xe6\x64\xb5\xf0\x38\x2b\xa4\x3b\x49\x4f\x21\xd6\xdc\x37\x4a\x11\x45\x5e\x15\xfb\x83\x02\xe3\x61\x13\xe7\x31\x10\xc6\x61\xb1\xb9\xf6\x6f\x92\x24\x29\x32\x0f\x54\x75\x57\xda\x8f\xa9\x64\xd7\xe7\x62\x2d\xfd\xa5\x79\x62\x93\x01\x2b\xde\xf7\x7a\x77\xdc\x83\xab\x26\x2c\xcf\x9e\x3b\x65\xcc\x52\x12\x70\xcc\xa0\xdd\xb7\x58\xcc\x9a\x11\xed\xe8\x89\x87\xd1\x35\x67\xdc\x62\x7d\x00\x85\x06\xdb\xee\xf4\x71\x32\xc1\x73\xe9\xf7\x5f\x5c\xee\x93\x0a\x4a\xc6\xb3\x9c\x23\x14\x60\xf1\xf4\xc7\x88\xe4\x9b\xf1\x0c\x12\x44\xb1\xde\x1d\x2b\xfd\x8a\x5a\x40\xbe\x25\x8f\x34\x77\x76\xf8\x7c\xfe\x8d\xec\x19\x0f\xba\x62\x3c\xcf\x24\xee\x56\x8b\xee\x75\x5f\xff\xdb\xef\xf4\xbc\xd0\x89\xf1\x10\x7a\xa8\x60\xad\x4b\xa8\x34\x8c\xf0\xb5\x8c\x4b\x96\xe4\x43\x51\xc3\x6b\x78\x1b\x32\x2e\x63\x07\xe4\x0e\x78\x05\x79\x28\xed\xc7\x6f\x3e\x99\xee\x9b\xb5\x46\xbc\x94\x03\xb4\x3e\xd5\xd5\x47\x6f\x7a\x7f\x56\x90\xcf\xb8\x12\x54\x20\xb1\x86\xaa\xbb\x01\xd8\xd4\x41\x21\x68\xd2\x2f\x8d\x30\xbc\xb6\x59\xcc\xee\xb7\x4f\x8f\x8f\x77\xdb\xe5\x83\x2f\x58\x66\x5c\x47\x05\xd2\xde\x9c\xc8\x0f\x68\xfa\x6e\x67\xa3\x63\x80\xeb\x3c\x43\x23\xf2\xb0\x93\x95\xd3\x80\xb9\x20\x3f\x6d\x19\x37\x2c\xd1\xc2\x5b\x62\xef\x93\x8a\x1c\xdf\x47\x90\x34\x95\x43\x76\xd2\x34\x1f\xd6\xba\x0f\xfe\xeb\xab\x69\x6a\x8c\x21\xe6\x8e\x50\x7e\x7c\xf9\x99\x20\x01\x3c\xc3\xfc\xb7\x41\x4b\xe7\x44\x6a\x7e\x79\x63\xe6\x36\x89\x51\x9f\x54\x6a\xdd\x1c\xc1\x17\xf8\xb4\x7f\x03\xe6\xc7\xb8\x4d\x0b\xdc\x45\x1e\xea\x9f\xc7\x9b\x9d\xec\x9e\x76\xf2\x53\xe6\xf2\xf1\x31\x22\x22\x46\x7c\x16\xbe\xd2\xc1\xd7\xf5\x5c\xfc\x21\x11\x15\x64\xce\x7a\xc3\xf7\xeb\x2a\xec\xe9\xc5\x46\x26\xa4\x93\x0c\x50\xfd\x31\x3c\x85\x05\x8b\x18\xa6\xd5\xb7\xde\x15\x1c\x2f\x6c\xc1\x98\x44\xec\xe5\xe1\xa5\xbe\xaf\xab\xee\x75\xf7\xe1\x4b\xc6\x51\xd5\x31\xdc\x26\x13\x89\xf3\x1f\xbe\xcf\xff\xf8\x7a\xd0\x04\xcb\x34\x0e\xf8\xab\xdc\x75\x5b\x4f\xf7\xdb\x86\x5b\x15\x79\xe1\x2b\xaa\x4a\x5b\x56\xfd\x04\x1c\x3e\xb0\xcc\xf0\x94\xc0\x0a\xc5\x7e\x73\xf5\x0d\x3c\x92\x38\xff\xe1\x17\xec\x0f\x13\xc3\x49\x88\x2c\xc1\x4a\x17\x69\x8c\x47\x31\x92\x81\x75\x09\x40\xcc\x84\x28\x32\xd4\x8d\x59\xec\xa1\x91\x5e\x56\xfa\xf3\xc2\x59\x26\x84\xa4\xc2\x8a\x2d\xed\xff\x97\x97\xb2\x10\x5a\x60\x48\x07\xf5\x84\xaa\xee\x49\x36\x2d\x92\x4b\x38\xe2\x7e\xff\x26\x71\xce\x30\x02\x78\x5d\xfb\xfd\xee\xf2\x38\xc6\x05\x19\x90\xb4\xf1\x53\x4c\xb6\x7f\xde\x87\x3a\xec\xc0\x13\xa5\x8b\xfe\x9a\x02\x89\x37\xc0\xc9\xf2\x0f\x4c\xb9\xb1\x2d\x2b\x52\x99\x93\x48\x90\x1b\xaf\xcb\xa8\x16\x26\xb2\x88\xe2\xe9\x8b\xc7\xf9\xb7\xd1\x97\xca\xa2\x4c\x85\x0c\xd2\x2d\x74\x0e\x85\x3c\x7e\x9e\x2c\x07\xe4\x42\xfe\xe7\x51\x56\x7f\x8e\x2f\xd7\x1c\x23\x44\xd7\xeb\x87\x20\x74\xd5\xff\xd9\x30\x19\x22\x2c\xbd\x45\x37\x4e\xcb\x4d\x86\x28\x17\x19\x42\xf4\x67\x77\x4f\xa3\x9b\xe7\xb9\x45\xbc\xc8\xbe\x6b\x7e\x85\xbf\x59\x2d\x13\x67\xbc\x74\xbf\xd7\xbe\xb8\x8c\x89\x22\x21\xfd\xe6\x20\xd8\x70\x0d\x6f\x1d\x78\x4a\x28\x26\x8a\xdc\xe0\x8e\x7f\xaf\xd4\xe8\x47\xa4\xc8\x7d\x0d\xf9\xbc\xae\xda\x4e\x56\x61\xbd\x48\x95\x62\x55\xaa\xa9\x91\xba\xca\x41\x67\x27\x23\x2b\x8d\x50\x36\xb8\x3a\xb3\xdd\xee\x1b\x48\x73\x3a\x55\x85\x4a\x73\xf0\xa9\x0a\xb7\x8a\x7a\x73\xe1\xbe\x36\x30\x19\x65\x95\x93\xfe\x2f\x65\x77\x9f\x08\x62\x3a\x41\xe0\x30\xa1\x64\x2a\x0b\x0f\xa7\x20\xc3\xc4\xb5\x68\xc1\x10\xd8\xb6\x1d\xfa\x7a\x97\x32\xbf\x4c\xe8\xcc\x26\x59\xd0\x7f\x9b\xed\x76\xa3\x12\x96\xde\x05\xb7\x78\xf6\xbe\x43\x49\x7b\xd8\x6a\x90\x83\x63\x42\x17\x0a\xb7\xfa\x17\xa2\xbc\x19\xc0\x0e\x98\xd0\x32\x56\x2e\x84\x84\x74\x78\x93\x56\x9d\x62\x85\x9e\x3a\x7e\x3c\x3c\xae\x27\x03\x60\x18\x63\xd6\x95\x33\x35\x6d\x38\x89\x7c\x2b\xe7\xde\x4d\xb8\xaf\xcd\x71\x07\x57\x1f\x53\x36\x47\x26\x8c\xe6\x58\x2e\xfc\xde\x2f\xb2\xbd\xf4\x11\x6f\x26\xac\xa6\x38\xe2\xcd\xf2\xe1\x0f\xf7\xb7\x38\x4a\x48\xfa\x0d\x21\x71\xbb\xf0\x57\x45\xa1\xb4\xde\xdc\x82\x2a\x2c\xd2\xf1\xb3\xc6\xcc\x44\xc8\x1a\xe7\x29\x22\xb6\xd7\x8b\xf9\x6a\x31\x5b\x2f\x50\x9b\x72\xb1\xf9\x16\x82\x6a\x31\x67\x24\x45\xe6\x0f\xbc\x29\xed\x29\x8b\x45\xa6\x8c\xb3\x26\x87\x12\x7e\xbe\x15\x52\x2c\xbd\xc0\xcd\xd4\xcb\xc2\x4c\x6e\x60\x2d\x1e\x10\x4f\x4d\x6d\x87\xb3\x3b\x8e\xd3\x0c\xb3\xa5\xdf\x4b\x78\xbf\xff\x78\x22\xfc\x17\x92\xb3\x0e\x87\x2d\x8e\x73\x4a\xdf\x35\x74\xf7\x05\x9a\x02\x01\x65\xe7\x3a\x25\xae\x7c\x73\x8e\xc4\x9e\xa7\x10\xfa\xc5\x45\x1d\x27\x59\x8a\x38\x21\x0a\xa5\x18\x3c\x04\x3e\xe9\xa9\x25\x0c\xc8\x46\xba\xba\x99\x6a\xde\xf5\x9d\xac\xf5\xb6\xe2\xa0\x60\x72\x14\xf2\x89\xd3\x82\xaa\x66\x1c\xd0\x5e\x76\xe7\x08\x47\xd7\x33\x33\x80\x39\x57\x75\x6c\xb5\x6c\x66\x6d\x5b\x22\xd7\x9e\x1c\x8f\x4a\x66\xac\x70\xb1\xba\xed\xcf\xde\x0c\x93\x97\xce\xa1\xb8\x48\xa3\xcc\x41\x1c\x5c\x99\x2a\x6a\x2f\xb9\xb8\xdf\xb0\x30\x8e\xc5\x12\x18\x16\xc8\x90\x68\x89\xdc\x81\xdf\x13\x26\xf7\x54\x4c\x23\x60\xc6\x19\xa0\x4e\x00\x6e\x32\x26\xca\xe4\x88\x83\x69\xa0\x2d\x5f\xb0\xf6\xf2\xb6\xa9\x8f\xde\xf0\x8e\x15\x14\x81\x9b\x9b\x94\x71\x27\x3f\xa2\x65\xe6\x4d\x69\xc7\xc6\xef\x6a\xff\x7c\x35\xf3\xe5\x23\x2d\xd6\x32\xcf\x13\xe7\x60\xce\x1f\xf5\x19\x0b\x34\x8b\x0d\x8b\xb3\xb0\x19\xaf\xe5\x0e\x7e\x40\x79\x2f\x7f\x85\x66\xcd\xb2\x41\x50\xc5\x51\xf3\xcc\x8f\x8d\x1c\x88\x34\xb9\xbe\x50\xa4\xd6\x2d\xfb\x2b\x68\xbb\xab\x09\x4e\x97\xc5\xa0\x04\x46\xb8\xfa\x9f\x99\x23\x7f\x96\xab\x15\x76\xed\x36\xc9\xf1\x06\xb4\xad\x9e\x29\x0d\xf6\x3d\xa4\xc5\x1c\x8a\xa9\xab\x29\x29\x06\x8b\xad\x56\x18\xe9\x40\xed\x8b\x31\xae\x8f\xc5\xd6\xb9\xd2\xb8\x57\xc8\xce\xc1\x82\x9e\x9b\x71\x8d\x0e\x4b\xa2\x9c\x45\xfd\x88\x3d\xbe\x56\xe5\x5f\x87\xaa\x13\x96\xa7\x18\x89\x94\x55\xdd\x6f\xa1\x83\x42\x48\x96\x30\x88\x25\xd1\x05\xbc\x1d\x61\xf7\x36\x14\xdc\x60\x09\xe7\x26\xa1\x38\x82\x01\xd8\xf7\xe7\xcc\x5b\xb9\x6b\xcb\x89\x3a\xb8\x65\x89\x10\x05\x9e\xdb\x57\x0f\x9b\x01\xf1\x0f\x4b\x84\xa1\x2d\xf1\xea\xd8\x54\xc7\xc3\xb7\x7a\x87\xd5\x8f\x48\xa6\x8a\x41\x99\xda\x6f\x93\x49\x9c\x52\x68\xfc\x07\xec\x7a\x23\x70\x39\x7f\xfc\x7b\x26\x75\x92\xf2\x0c\xd9\x2b\xf6\x65\xd5\xd1\x42\xf9\x0c\xe9\xc5\x92\xd4\x00\x7a\x95\x7b\x94\xa1\xa2\xd5\xfe\x68\x27\xef\x92\x71\xc8\x8c\x57\xfe\xac\x71\x7b\xf3\x0f\x99\x09\x8e\x87\xd1\x6a\x31\xbb\x0b\x7f\xd3\x49\xac\x82\x3a\x56\xdd\x10\x46\xef\x0a\xb1\xbe\xfa\xf5\x4c\x72\xfc\x92\xaf\x93\x64\x20\x91\x6e\xc4\xd6\xcd\xcf\xb1\xeb\x99\xe4\x71\xe2\x33\x82\x5e\x76\xbc\x32\xf5\x3b\x5a\x0e\x17\x37\xa3\x24\xcf\x69\x7f\x77\x3f\xb8\xa9\x7d\x74\x60\x53\xbb\xe0\xcb\xfa\xd0\x94\x7f\x91\x23\xed\x6f\x43\xe6\xc3\xc0\xd0\x70\x67\xef\x27\xfd\x21\xce\x02\x91\x4d\xfd\x31\x97\xfb\x83\x2c\x5f\xaa\xf1\x0c\x4f\x0a\x50\x58\x1a\xf7\xfb\xf7\xf9\x68\xa6\x15\x56\xe4\x36\xc0\x03\xf5\xcf\xd6\xfb\xed\x89\x64\x0a\x01\xd4\x04\x77\xaa\x9b\xcd\xc9\x08\x4b\x64\x5a\x60\x14\xe4\x8d\x44\xf9\xdc\xd6\xe7\x1b\x0b\x09\x9e\xb1\xe4\xfb\x53\x3f\xdd\x50\xbc\x2d\x8c\xac\x84\x24\x75\x04\x0f\x8b\xaa\x9b\x00\x3a\x58\x22\xad\x44\x74\xba\x3d\xdc\x1f\x77\x4b\x07\xd7\xfd\xc7\xe8\x95\x15\x57\x66\xc0\x13\x7e\x5f\x56\x9d\xa3\xf1\xbc\x3c\x44\x0a\x40\x3b\x0e\xd8\x87\xde\x5e\x1b\xc6\xe3\xc2\x08\x29\x9b\xf9\xaa\x04\xac\x2c\xa6\xc8\x1e\xce\xec\x21\xfd\x01\x4b\xb4\x94\xb2\x08\x84\xdb\xd7\x67\x5b\x4d\xa2\x2d\x60\x14\xf0\xf7\xd5\x8f\xcd\x76\x34\xda\x26\xcb\x06\xd2\x77\xf7\x60\x4a\x59\x95\x53\xd3\x30\x01\x21\xfd\x56\x79\x2f\x3b\xfd\x3a\x23\x46\x89\xa5\x99\x51\x8c\xe0\x93\xf9\xd7\xef\xe8\x88\xdc\x1b\xf3\xb0\xb1\xc4\x72\xa2\x9d\x53\xc8\x22\x88\xa0\xff\xd0\x94\xa4\x32\x73\xc0\x97\xab\xb2\x7a\x71\xb5\x47\x2c\x8d\xf2\x74\x70\x06\x3f\xb7\xd0\x38\xc0\xdf\xdf\x61\x1b\x1e\xfc\x17\x95\x32\xb8\x9b\xb2\x88\x21\x46\xb5\x82\x5f\xdd\xf6\xa5\x7c\x03\xf9\x1e\xb2\xb9\x29\x4f\x12\x11\x8f\xd8\x84\xa9\xec\x66\xf4\x92\x29\xcf\x22\x8c\x84\x7c\x5f\x6e\x02\xaa\xed\xaf\x1c\xf3\xe9\x46\xf6\xbf\x79\xe4\x9f\x88\xeb\x44\x9e\xca\x15\x35\xb1\xe3\xfd\x0c\x16\x72\x2a\xb2\x54\x0c\x03\x50\x57\xfd\xf7\xf8\xed\x2c\x90\xe2\x7a\xc7\xb1\x4a\xdd\x9e\x71\x23\x8f\x1a\x42\xe0\x3b\x4d\x45\x8e\x81\xef\xe7\x16\x76\xd0\xb6\x2e\xd3\x85\x34\x89\xbe\x47\x22\x31\x19\xfb\x00\xef\x03\x35\xfb\x4f\x03\x8b\xe3\x51\x49\x8d\xc6\x83\xa6\x3f\x55\xc7\x11\xd3\x49\xc7\x8c\xa9\xc4\x6d\x2e\x44\xfd\xbd\x3a\x69\xd5\xb0\x34\xcb\x33\xa5\x5d\x81\x69\x6f\x86\xcc\x3f\x55\x24\x63\x69\x56\x44\x45\x32\xc6\x15\xbb\x1d\x74\x28\x14\xe6\x3b\x9b\x14\x3b\xb7\x52\xcb\xe6\xba\x96\xba\x0e\x21\x88\x34\x8f\x39\x02\x9f\x1f\xdf\xab\x21\x61\xb6\x6f\x4d\x39\x22\x46\xbe\xd5\xa6\x6e\x46\x66\x5d\x9a\x67\xd2\xe5\x67\xfa\x79\x80\x05\x42\x1e\x6f\xcd\xd2\x22\x56\xc2\x0c\x8a\x35\x5b\x90\x8d\x7e\xbd\xbc\x3f\xa4\x2a\xa5\x24\xc3\x8b\xdc\x03\x82\xf6\x4d\xfd\x5e\x4d\x1e\x44\x15\x31\x72\xd8\x20\xc9\x60\x63\x6e\x64\xb9\x03\xf3\xb8\x33\x78\xa8\x07\xe7\xe2\x93\xfb\x1b\x85\x9c\x6c\xb8\x5d\xf6\xfb\x05\x95\x66\x47\xd8\xad\x08\x5c\x56\xa7\x69\x75\x3c\x55\xd0\xe3\xd5\xb4\xdf\xb4\xf3\x63\xdb\xd5\x7b\x68\xca\xea\xea\x0e\x4b\x59\xce\x6a\x3a\xdd\x25\x3a\xa1\x42\x25\x14\x1d\x6a\x6e\x8f\xa5\xb7\x2f\x2e\x3f\x9f\x29\x24\x22\x95\x7e\xbe\x4a\x55\x8e\xdc\xea\xd4\x58\x85\x46\x3d\x69\x44\x4e\x98\x15\x5d\x1f\xc8\x62\xe9\x60\xd9\x7e\xef\x39\x77\x19\x53\x5b\x28\xb4\x69\x7a\x1b\x17\x7c\x60\xc8\x4b\x3c\x7c\x19\x3f\xbf\xcc\x7d\x31\x79\x65\x2b\x53\x4c\xcc\xba\x22\x23\x2a\x8d\xc0\x0a\xab\x69\xbf\x22\xa1\x6d\x46\x1d\x5f\xb6\xbd\xc9\xfd\x5f\x58\x01\x46\x04\x6d\xf9\xc9\xd6\x9a\x45\x91\x2d\x62\xaf\xd4\x6d\xeb\x1b\x36\xbe\x69\x16\x09\xc3\xe3\x70\xa4\x95\xdd\xc7\xb4\x5d\xe7\x18\x56\xb6\x72\x0f\xc8\x3e\x3e\x36\x36\xb2\xde\x3c\x76\x02\xae\xc3\x14\xf8\xc5\xaf\x95\xf5\xb6\xac\x26\x3a\x57\x12\x4e\xe8\x00\x36\xf5\xbd\x3c\xcc\x2a\x83\xc7\x15\x41\xc5\xc7\x4f\xc0\x64\x26\x86\x21\x4d\xec\xb3\x3d\x47\x7b\x85\xe4\x47\xc6\x14\xa1\xf3\xdf\xa0\x31\xa5\x76\xbe\xe4\x44\x50\xdd\x75\xe5\xbd\x6d\x3e\xae\xa2\x39\x27\x19\xeb\xbb\xe5\x18\xa1\xfe\x77\x7f\x56\x7f\x10\xbb\xc4\xf8\x29\x05\xa3\x8a\xde\x63\x45\x85\x28\x17\x03\x86\x99\x48\x0d\x16\x2b\xec\xb7\x06\x65\xaf\x06\xd0\x9c\x4c\xe4\x1c\xcd\xea\xf5\xf3\xd3\xd3\xdd\x9f\xdb\x9b\xc7\xd5\x76\xb5\x58\x2f\x56\xdf\x17\xa1\x47\xa1\xe5\x10\xd5\x80\xe9\xc4\xc7\x8b\x4a\x4b\x2c\x8b\x23\x46\xf5\x43\x55\xd9\x6d\xf7\xc7\x5d\x57\xd6\xef\xd5\xa7\x8c\x35\x2c\x8b\x93\x58\x45\xb4\xcf\x37\x54\x1d\xe6\x96\xba\x6f\x4f\x89\xe6\xe1\x3b\x66\x48\xfd\x23\xc5\x4a\xa0\xc1\x40\x6e\xec\x75\xad\x8f\xbd\x99\x59\x3f\xd5\xcd\x72\x72\xfe\x65\x09\x4b\x51\xb8\xa3\x7d\xad\xdf\x57\xc8\x9a\x41\x21\x32\xaf\x28\xc3\x42\x47\x1e\x41\x12\x4c\x8d\x20\x6e\x3a\x62\xf5\xf1\x5d\x05\xc9\x35\xb5\xc7\x43\x7f\xc3\x36\xc8\x27\x4f\xbe\x5f\x02\x14\xb2\xea\xb7\x7c\xd2\xc7\xf2\x2f\x90\x72\x22\x30\x51\x95\x22\x1e\x94\x91\x3e\x1a\xcb\xd2\x44\xe1\xe6\x49\x7c\xdd\xc3\x33\xdb\xdb\x06\x59\xc6\x34\x1a\x29\x57\xcf\xab\x87\xd9\xd5\xdd\x62\xfb\xfc\xb4\xdd\x78\x3b\x25\xcb\x20\x17\xc4\xc2\x9f\xf2\x45\xa5\x6b\x33\x95\x9c\x63\x59\x66\x35\xce\xae\xa7\xba\xa9\xd6\x1a\xaa\x91\x47\x95\xe5\x4c\x23\x48\x95\xbc\x47\xb2\x16\xb1\xfe\xe8\xf2\x1a\x2b\x64\x9e\xc2\x20\xfa\xb5\xa1\x74\xba\x4f\xa2\x0e\xe6\x7e\xa1\x53\x20\x78\x78\x65\xcb\x66\x4f\x06\xc2\xf4\xe5\x0a\x5b\xa0\x45\x77\x90\x4d\x0b\x7a\xde\x80\x29\x4f\x5c\x69\xae\x8f\x64\x16\xd3\x83\x57\xb3\xdb\xed\x66\x35\x7b\x58\xdf\x2c\x56\xdb\x9b\x45\x98\xb7\x52\x68\xf4\x77\x6e\x36\x6b\x9f\x68\xca\x14\x33\xa8\x3b\x77\x25\xf5\x5c\x36\x32\xfc\x39\x51\x38\x0b\x09\x45\x81\x36\x64\x59\xbd\xf8\xd8\xe0\xe5\x2d\x4e\xa5\xa6\x50\xc4\x89\x2a\x3f\xe6\xf7\xf3\xcd\x65\x24\x68\x98\x0c\x4a\x32\x2c\xab\x75\x36\xf8\xd5\xc7\x54\x68\xfb\xf2\xc0\x6a\xe7\xb5\x6d\xa0\xed\xee\x4a\xf5\x5b\xf8\xb3\x41\xc1\x9c\xeb\x87\xfb\xb9\xff\x9b\x61\x39\x5a\x53\x81\x3f\x69\xb7\xc3\xbc\x17\x5a\x26\x93\xc1\x83\x98\xec\x2b\x0c\x7f\x7f\x7d\x1a\x67\x96\x17\xc6\xc5\x79\x6e\xeb\x9d\xe9\xcf\x88\x35\x34\x81\x5f\x95\x65\x56\x68\x8c\x7a\xcf\x9e\xe7\x18\x12\xfc\xf1\x6d\xf1\xb0\x7d\x5a\xac\xe6\x8b\x87\xcd\xec\x76\xb1\xbd\x7b\xbc\x5d\xce\x89\xf3\x60\x1d\xae\x49\x2d\xa6\x56\xa1\xd5\xf2\x00\xfd\x99\x16\x56\x47\x1e\xa5\x92\x3b\x7b\xfe\xb9\xf2\x11\xfe\x7e\x87\x68\x43\x8f\x2c\x26\xa8\xb2\x0f\x7a\x8f\xe8\x25\xfb\x76\x10\xc9\x30\xa4\xec\xe5\x3b\x07\xb9\xec\x9c\xa5\x29\x42\x8e\x36\xab\xd9\xf5\x62\xbb\x5a\xfc\x98\xad\x7c\xda\x3a\x67\x4a\xe4\xb9\x2f\x22\xeb\xe4\xee\xc7\x67\xc8\xc5\xf1\x11\x3b\xf0\x95\x73\x66\x45\x41\x7b\x33\x72\xfa\xd3\xe1\x3e\x49\x42\xe6\xdc\x18\xa1\x4e\xcc\xba\x74\x8e\xc5\xa4\xde\x3d\xe9\x2a\xe2\x84\xeb\x49\xd7\x4b\x75\xe7\x2c\x17\x89\xc1\xca\x5a\xb2\x41\xfe\x86\xf2\x04\xcb\x45\x2e\x59\xe2\x98\xc3\x6f\x48\x1d\xe3\xda\xfb\x15\xa7\x98\x52\x2e\x72\x0b\xee\x5c\x5f\xfc\x3a\x60\x22\x9c\xc2\x8d\x93\x49\x3c\xaa\xce\x9e\x04\x37\xf2\x24\x92\xa1\xc2\x6e\xa0\x9d\xe7\x5a\xd3\x88\xb1\x80\x30\x3f\x3b\x44\xc7\x43\x92\xb2\x0c\x89\x5b\x7b\xff\xc8\xe3\xd5\x37\x9b\x7b\xbc\xeb\xd2\xa4\xe1\x96\x05\x95\x83\x2c\x4d\xbd\x3b\x15\xb6\xb1\x3c\x95\x29\xe6\x47\xfd\xc9\x46\xae\x77\x77\x3a\xdb\xa6\x21\x91\x4b\xe0\x8a\x3c\x55\x04\xae\xe8\x0f\xf3\xf2\x17\xec\x4e\x6a\x65\x63\x6a\xa7\x7e\x75\xa6\x99\x3d\xc9\x9f\x9e\x1b\x06\x79\x6a\xb2\x0c\x4e\x74\xae\x97\x11\xc4\x79\x16\x01\x26\x3c\x3c\x24\xe7\xa6\xac\xe4\xae\xfc\x6f\x38\x3e\xf2\x2c\x4d\x48\x40\x17\xda\x9f\x57\xb0\x0b\xd9\x5b\xdf\x9c\xd1\x21\xfd\x70\xfc\xb7\x24\xb8\xb2\xa7\x43\x66\x79\x1e\x31\xee\x25\x03\x36\xf7\x4f\x63\xd5\xee\xbe\x59\xa1\xe1\x86\xbc\xf9\xe7\x2c\x62\x2c\x2f\x44\x4c\x90\x09\xd8\xe1\x69\x3b\x7f\x95\xfd\x23\xba\xd9\x1c\xe6\x5b\x91\x00\xb2\xb4\x6e\xb7\x68\x72\x7f\x65\xbf\xe5\x45\x6e\x31\x7a\x41\x95\xc0\xf3\xc7\x87\xcd\xea\xf1\xee\x6e\xb1\xda\x2e\x1f\x36\x8b\xd5\xcd\xcc\xd7\x02\xb3\x5c\xaa\x04\x6b\x6b\x0e\x80\x38\xd4\xbb\xb2\x9d\x0e\x9d\x34\xa9\x55\x5e\x8d\xbe\xf7\x4b\xfc\xa5\x2a\x53\x38\x26\xeb\xc3\xae\x0c\xc5\x72\xed\x6c\x5f\x57\x2f\xad\x9b\x11\x93\xf5\xa8\x64\x81\x01\xaf\x57\x54\xcf\xc4\x28\x2c\x41\xae\x5d\x4d\xb4\x92\x13\xc9\x5a\x96\x6b\xe5\xde\xba\x9f\x58\x9b\x7a\x8d\xd3\x68\x6c\x34\xe4\x26\x12\x7a\x28\xca\xf0\x19\xde\x6b\x32\x48\x86\x47\xc8\x56\x84\x1b\x7a\xd8\xad\x7c\x63\x6c\x94\x8b\xb4\xd1\x8a\xbb\x00\x7a\xcf\x4d\x22\xb1\x42\x8e\xbe\xc5\x1a\x3e\x0b\xa0\xe5\xc6\x24\x0c\xa1\x9a\x8b\xd5\xfa\xf1\x61\x76\xb7\xbd\x59\xae\xd6\x9b\xed\xb7\xc7\xe7\xd5\x76\x3e\x7b\x0a\x3f\x6a\xa9\x62\xa3\xac\x9c\xc0\x47\x6f\x0b\xf4\x07\xea\x17\x9e\x55\x0e\x8c\x07\x19\x45\xf9\xcb\x09\xa7\x9c\x18\xea\x27\x9d\x35\xd5\x58\xa2\x1c\xd0\x45\x38\xf4\x70\xa1\x16\x91\xcc\x0a\x27\x66\x72\x90\x15\x15\x22\x39\x20\x63\xe8\xa1\x31\x5b\x4c\xf5\xb2\x67\x39\xe5\xa9\xf5\x5a\x44\x2a\x36\xc4\x72\xfe\xde\x1f\x4f\x04\xb5\x41\xe6\x12\xd7\x81\xc5\x06\x43\x4c\xeb\x4e\x76\xa5\x5e\x74\xaf\x27\x9d\xab\x23\x41\x6f\xc6\x75\x15\x05\xd3\x1c\x55\x63\xe6\x4f\xde\x66\x29\x78\x4e\x8e\x5a\x0b\xbb\xdd\xb8\xa2\xda\x77\x80\x02\x33\x4e\xb6\x6e\x2c\x4c\x43\xf5\x85\x60\x0a\x2b\xe9\xee\x66\x37\x21\x4f\x5d\x08\x29\x6c\x16\x8c\xdd\xab\x21\x1b\xcf\x68\xbd\x14\x31\x8b\x11\x07\x42\x95\x74\x65\x85\x47\x02\x6c\x7d\xdd\xd3\x6f\x93\xde\x9a\x63\x2e\x7a\x7b\x42\x03\xcf\x76\x9d\x6c\x68\xa9\x79\xba\x04\x56\x24\x3c\x46\xeb\x65\xa6\xeb\x46\x96\x46\xde\xd7\x55\xa9\xe5\x0f\x59\x75\xed\xa6\xfe\xbd\xaa\xdf\x37\xaf\xf0\x00\xef\xff\x3c\x42\x8b\xa7\xcf\xe8\x33\x26\x45\x91\x50\x21\x3e\x02\x2b\x07\xf8\xda\xc1\xe1\x5e\x24\x36\xc2\x2a\xb1\x76\x57\x6a\xe0\x17\x6a\x66\x4e\xe3\x97\x66\xa4\xd0\xfc\x24\xbb\xa6\xae\x36\xaf\x0d\x9c\x78\x4a\xc2\x97\xcc\x8a\x1c\x41\xfd\xd5\x71\xbf\xaa\x77\x61\x43\x2c\xb2\x82\x60\x90\xad\xdb\xfd\x67\x0d\xc8\x11\x2f\xcd\x97\x41\xb6\x20\xa9\xc1\x8a\x4c\x29\xe4\xa2\x31\x20\xcd\xae\xac\x20\x14\x19\xb2\xa2\x60\x92\x13\x7f\x87\x13\xa3\x20\x28\x5a\x03\xf8\xda\xab\xc0\xf5\xca\x8a\x82\x13\x87\x96\x87\xed\xb8\xf3\x73\x14\x32\xb8\x18\x1c\xf0\xd7\xdb\x04\xa7\x5f\xd3\x9b\x53\x23\xe4\x58\x21\x93\x9c\x44\x25\xdc\x94\x71\x16\xc8\xb9\x36\x27\x2b\xa4\xe2\xe8\x3b\x5f\x9d\x28\x00\x59\x21\x75\x82\x08\xcb\x0a\xde\x5d\x55\xda\xa9\x16\x76\x72\xbd\x02\x41\x35\x27\x9d\xee\xd7\xe0\xd3\x51\xfd\x0e\x1f\xfd\xe6\xda\x5c\x2e\x8c\x28\x14\x24\x38\x4b\x1d\xf6\x72\x5e\x37\x9f\x32\x10\x4f\xbe\xbd\x8e\x78\x64\x02\x20\x80\xf6\x9b\x81\xc0\xb2\xef\x95\xe5\x88\x6b\x1c\xa6\xfc\x30\x99\xec\xdb\x2d\x58\xc2\x42\x1c\xea\x7e\xc3\xe8\xdf\x89\xf4\xb9\x2e\x6f\x73\x85\xe1\x0a\x41\xfa\x8b\xc7\xf5\x58\x49\x9c\x15\x26\x23\x69\x98\xa7\xa6\x6e\x0f\xc1\xa2\x2d\x8c\xc9\x10\x22\xb7\x6b\x87\x24\x6b\xac\x00\xa1\x0b\xaf\xc1\x54\xc9\x43\xfb\x5a\x77\x5e\x04\x71\xfc\x93\x90\x11\x9d\x2f\x56\xaa\xde\x4f\x2b\x6a\xfb\x76\x02\xa2\xba\x65\x75\x75\xb6\xcd\x80\xca\xb0\x8e\x73\xf3\xbb\x0b\xd2\x23\xdf\xdc\x97\x3b\x2e\x00\x27\xcc\xc6\x8b\x2b\xa4\x0a\x4f\x6d\x75\x2c\xbc\x80\xc1\xb1\x32\x4b\x92\x3b\x1f\x0c\x83\x15\x3c\x26\x50\xc8\xbf\x41\x0f\x4c\x32\xdf\xac\x18\x02\x39\xbc\xaf\x13\x2a\xef\x59\x61\x75\x8a\x2b\xf5\xa5\xae\x96\xcb\xd1\x58\x59\x48\xd1\x65\x0b\x8c\x6d\x54\x90\xf6\xc9\xd6\x67\xc1\x62\x70\xf7\x5b\xdd\xaf\xc7\x97\xaf\xfd\x34\x19\x45\x84\x62\x3b\x56\x9e\x2f\xb0\xb7\x3e\xa0\x9a\xd2\xdc\x32\x19\xc9\x3c\x71\x2a\x0b\x97\x52\xe5\x92\x89\x1c\xa1\xd8\xae\x3a\xb3\x95\xc3\xa8\xa0\xe4\x09\x65\xf6\x10\x0d\x52\xc1\xc7\xd5\xa9\x54\x43\x0a\x03\x08\x5d\xf3\x4f\xb0\xdd\x3b\x31\xa5\xf1\x03\x24\x2c\xc1\xe2\x5d\x34\x77\x43\x50\x45\x26\x59\x84\x77\xf6\xc6\xcf\x0a\xf4\x87\xde\x7d\xae\x73\x76\x79\x45\xc9\xc4\x6a\x44\x61\xe3\x0a\xdd\xd4\xcb\x11\x27\x23\x93\xa9\xc8\x30\x74\x43\x58\x1d\x5a\x24\x5f\x18\x04\x32\x05\x83\xf3\xe0\x71\xb5\xbc\x5d\x3e\x6c\x17\x9b\x6f\xdb\xab\xd5\x66\x8b\xe0\x13\xff\xe4\x85\xb4\x54\xd5\xd9\xef\x8d\xc3\xb4\xae\x2c\x0c\x39\x08\x77\xab\xf9\x1c\x37\xa3\x2f\x66\xab\x94\x20\xd9\x90\x76\x49\x5d\x8c\xa6\x49\x25\x52\xe5\x7c\xa0\xde\xe8\x1b\x12\x4a\xba\x1e\x1a\x18\x26\x49\x90\xe3\x6f\x31\x5f\xde\xcf\xee\xbc\xdf\x2b\x8d\x20\xad\x35\xac\x4d\x0c\x42\x0e\x4c\x1a\x48\xd0\xa6\xff\x0e\x3b\x68\x07\x4e\x8a\x84\x24\x16\xa7\xa3\x7a\x23\x7f\x9e\x83\x44\x24\x64\x1c\xc1\x61\x24\x33\x03\x87\x0e\x4c\x6f\x6b\x8c\x26\x0e\xe4\x24\xf2\x8d\x83\xb4\x92\xd6\xee\xa6\x77\xb1\x9a\xce\x41\xcc\xe6\x51\x21\x8a\xcb\x7d\xef\xce\xcd\xd0\x51\xd2\xea\xef\xe6\x93\x2e\xce\x18\x15\xf1\x08\x51\x9c\x1b\xb9\xfb\xb9\xa9\x7b\xbf\xb2\xe9\x2e\x62\xce\x54\x94\x51\x39\xac\x01\xe5\x39\x1c\x3e\x89\xa2\xb8\x0b\x18\x8f\x89\xf5\x41\xd7\x9f\x52\xbb\xfd\xdf\x3d\x2c\x17\xb1\x74\x0c\x21\x5f\xf0\xd3\x32\xc5\x55\x84\x11\x6c\x1c\xee\x6d\x48\x6c\x29\x6e\x52\x8f\x10\xec\x37\x08\x24\x14\x75\x4d\x02\x24\xc2\x31\x64\xfb\x51\xe9\x6b\x50\xe5\x27\x06\xb8\x12\x36\x70\xe3\xac\xa4\x86\x45\x65\x88\xdd\x37\x34\x1b\x34\x8b\xf7\x75\x3f\x84\x9b\x72\x0f\x8f\xf6\x72\x10\x4b\xc5\xa9\x72\x7c\x02\x68\x44\x01\x11\xb1\xcf\xfb\x63\x7f\xe8\xae\xa9\xd8\x24\x71\x7e\x3a\x1c\x30\xb5\x3d\x71\xeb\x55\x12\x69\xcc\x71\x03\x86\x32\x43\x4c\xc9\xb7\xc6\x8c\x8a\x53\x71\x8d\x06\xfa\xc6\x01\x9d\x3f\x53\x89\x22\xca\x2f\x44\x48\xe0\xe4\x8d\x43\x93\xce\xb2\x6c\x78\x02\xc3\x0f\xd9\x62\xd4\xc8\x84\x2e\x26\x43\x0f\xee\xd0\xc0\x16\x99\x5d\x26\x0e\x9b\x4a\x05\x43\x55\x0f\x34\xa1\x02\x17\xdb\xc0\x68\x54\x69\x96\x4a\x57\x82\x27\x16\x95\x39\xdd\x3b\xd5\x80\xc1\xe1\xf7\xb2\x7a\xaa\xbb\xb3\x57\xcf\x62\x11\xfb\x0c\xfd\xaf\xb2\x2d\xfb\xcf\x3a\x12\x89\x3f\x0b\x8b\x4c\x83\x22\x2a\x4b\x58\xe6\xe7\x05\xbc\x48\x3d\xf1\xce\x54\x2e\x13\x65\x03\x1c\x07\xf1\x8f\xf7\x65\x35\x20\x3b\xed\xcd\x7c\xe0\xb1\x2f\x6e\x97\x03\xaa\x7f\xa6\xa4\x8a\x0a\xa7\x63\xbb\xf8\xd5\x35\xf2\x9c\x25\xab\xef\x13\xa3\x81\xb7\x97\xd5\x91\x84\xcf\x3e\x99\x7e\x4a\x26\x58\x4a\x7b\x5b\xef\x68\xe2\xb5\xe4\x96\x84\x07\x51\x32\xb5\xc5\xa9\x20\x6b\x64\xbe\x2b\xa5\x53\x0c\xc1\x06\x88\x14\xea\xe3\x99\x13\xb7\x15\x53\x5a\x8a\x81\xe8\xd2\xbd\xac\x3e\x30\x0a\x3f\xd5\x37\xec\x3b\x66\xf8\xbd\x4c\x8d\x16\xee\xf8\x31\xb5\x4a\x29\xa0\x3f\x22\xe6\xad\xcf\x1d\x6a\xac\x16\x9e\x64\x81\x47\x8f\x6c\x62\xa2\xc1\x7d\x81\xae\xb7\x30\x9f\x42\x75\x8f\x32\x49\x91\x51\x18\xc3\x5d\x2f\xb6\x5b\xdf\x06\x2c\xf5\x71\xa1\x7b\xd9\xfc\x0c\xc6\x8f\x82\x98\x63\x70\xbb\x3a\xee\x43\x74\x24\x8c\x5d\xef\x38\xa3\xab\xee\x1d\xc5\x7f\x85\xf2\x2a\x65\x55\x81\x56\x23\xb1\x82\x57\x2f\x3b\x98\x9f\x0c\x74\x1d\x25\xb9\x18\xc9\x42\xae\x2f\x09\x71\x5c\xfc\xa4\x9a\x45\x1a\xa7\x4e\x59\xd9\x7a\x1c\x8b\xf1\x1d\x52\x83\x95\x17\x63\x00\xcb\xff\xd3\x16\xaa\x39\x23\x59\xeb\xa7\xd5\xe3\xd5\xec\x6a\x79\xb7\xdc\xfc\xb9\xbd\x5e\x7e\x5f\xae\x1f\x3d\x74\x54\x73\x2e\xa3\xc4\xf3\x69\xbf\x4f\xc2\x6a\xa7\x3b\x89\x08\x34\xc1\x37\x91\x33\x62\x68\x68\x68\x91\x52\xbd\x2b\x46\x34\x51\x9e\xe1\xc2\x61\xae\x85\x31\xc8\x32\x67\x8f\xfa\xe7\x89\x7e\x8c\xe9\x98\xa9\x34\x0f\xac\xa4\x2d\x54\xed\xb1\x5d\x1d\x07\xd4\x91\xff\x3b\xfd\x3f\xbe\x6b\x4a\x04\xa6\x7b\x68\x65\xeb\x6c\xef\xef\x14\x79\xf5\x3d\x4c\x8a\xe9\x85\xeb\xc7\xdb\xed\x84\xe0\x92\xe9\x18\xb4\x72\x92\x52\x73\x79\x38\x95\x76\xea\x44\x48\x8c\x71\x3f\x07\x44\x09\x2e\xdd\x6b\xd9\x49\x36\xad\x94\xf3\x97\x24\x85\x60\xa7\x0a\x37\xaa\x7a\x19\xbf\x70\x62\x22\xa4\xee\xec\x88\xb5\xe1\x0d\x68\x05\xfb\x1f\x4d\x59\x81\xea\x55\xd7\xcb\xdb\xe5\x66\x76\x37\x9f\xad\xbf\x85\x26\x09\x18\x55\x5e\x23\xd7\xf2\xae\xd4\x72\xcc\xaf\x35\xd0\x5c\x18\x19\x59\xfe\x72\x9d\x20\x96\xa5\x39\x22\x83\xba\xa3\x98\x9b\x6c\x42\x3a\x4b\x23\x4c\x36\xda\xf2\x97\x4b\xbf\x4c\x45\x00\x43\xc7\x1c\xc3\x1a\x73\x59\x99\x8f\x81\x0b\xac\x8b\x98\x24\xb2\x77\xb2\xed\xf0\xdd\xb6\x32\xfb\x26\xdb\xd7\xad\xfb\xa1\xd0\x4f\x6b\xac\x1a\xed\xbb\xdc\x07\x73\x4b\xcb\x82\x76\xc1\x17\xa8\x22\xf7\x31\x07\xb4\x84\x4c\x6b\x99\x4b\x47\xd8\x85\x84\xcf\x67\xc6\x98\x06\x91\x99\x7e\xdd\x83\xd4\xaf\xfd\x57\x73\x92\xf1\xbe\xb5\x48\x10\xd9\xb1\x59\xde\x23\x64\x7a\xf9\x78\xbd\x5d\x3e\x6c\xd7\x8b\x79\xe8\x21\x73\x12\x10\x9b\xdf\xad\x2e\x63\x5a\xfe\xe2\x5f\x77\x1f\x9b\x28\x2f\xb9\xf8\x03\xba\x57\xbf\x01\x5e\x5e\x07\x56\xb1\x88\x56\xd2\x5e\x22\xe6\x90\x54\x08\xc7\xb1\x24\x6d\x2d\x09\xff\x74\x08\x48\xed\xda\x87\xba\x5b\x43\xb7\x3e\x22\x4e\xd2\x3d\xbf\x89\xb8\xc4\xb8\xe8\xfd\x09\xbb\x78\x81\xcb\x92\x99\x28\x57\xd6\x8d\xe4\xe3\x01\x11\x73\xb8\x61\x9d\xa2\xe1\x86\x25\x96\x39\x20\xef\x9d\xac\xcc\x68\x07\x18\xef\x29\x86\x65\x69\x7e\xb2\xdd\x5d\xbc\x1b\x15\xa5\xe5\xe1\x30\x70\x81\x06\x27\xf0\xf0\x87\x72\x19\xa3\x71\x22\x2d\x78\xb7\xec\xfc\x37\x78\x64\x90\x1c\xee\xd0\xd4\xbd\x87\x44\xe4\x9a\x5f\x7f\x04\xc3\x1d\xa9\x79\xff\x6a\x43\xf5\x1d\x66\x38\x57\xb8\x3f\x39\x59\x8a\x69\xcc\xc1\x70\x45\x5a\xfd\xe8\xfa\xb2\x70\x95\xa2\x30\x54\x0b\x27\x04\xf5\xf8\x29\x45\x94\x63\x2c\xa4\x3f\x20\x8e\x3b\xd9\x94\x1d\x12\x77\xb0\xcc\xdf\x42\x24\x81\x22\xea\xb6\x7e\x83\xa6\xf2\x5c\xdf\x93\x47\x17\x32\x47\x8f\xf6\x49\xee\x76\xe5\x71\x7f\x8e\x7b\x1f\x77\x4f\xf2\x5c\xbb\x2d\x7b\x55\xef\xfa\x53\x5b\xbe\x4c\x33\x53\x26\x29\x62\xef\xf7\x3f\xaf\x17\x9b\x33\x6d\x06\x66\x52\x96\x27\xd1\x29\x3d\x8c\x7e\x15\xf1\x49\x3c\xbe\x05\x6b\xd2\xa4\x8c\x50\xf1\x5d\xb9\xc7\xdc\xf4\x8c\x18\x11\x26\xbf\x96\x31\x85\x36\x95\x82\xee\x6a\x77\x1c\x68\xf1\x31\x93\x89\x04\x99\x71\xfe\x79\x2c\xff\x7b\x71\x76\xe6\x31\x55\x93\x0e\x5c\xaa\x91\x3f\x65\xf2\x22\xc7\x08\x84\x2b\x4c\xf0\x48\xf5\xcb\xd3\xa0\x60\x45\xcc\xbd\x69\x66\xeb\xe7\xc6\xc3\x67\x46\xbf\x29\x93\x1c\x73\x27\xae\x5c\x61\xf8\xbc\x32\x83\x54\x78\xb7\xbf\xe9\x5e\xe4\x0b\xac\xce\xea\xe1\x8c\x94\x0c\x31\x01\x28\x4e\x7a\x0d\x16\x25\xcf\x06\x9b\xec\xf8\x15\xa5\x24\x0e\xf9\x40\xe2\x45\x2f\x78\x53\x37\x67\x95\x1a\x46\x71\x61\xb4\x3f\x36\x9e\x9a\x5a\x03\x04\xbc\xa4\x51\x4e\xc5\xee\x66\xf9\x80\x42\x85\x77\xdb\xeb\xd9\x9f\xeb\x53\x2b\x55\x13\x39\x1a\xf5\x13\xda\xf2\xf2\x2a\xd3\x9c\x70\xde\x28\xc0\xde\xbe\x3e\xd5\x65\xd5\x5d\x7d\xe0\x56\x5c\x87\xef\xdf\x6f\x1e\xf1\x28\x73\xe7\x43\x89\xd3\x0a\x63\x7f\x41\xca\xbc\xd0\x1e\xd9\x37\x4b\x3d\x81\x86\x1b\xc8\x48\xb2\x94\x04\x53\x6c\xf9\x6b\x48\xc3\xeb\xfa\x58\x6d\xd0\x3a\xeb\x37\xc0\x01\x29\x10\xd2\xde\xfb\x67\xb3\x16\xbc\xb8\xd9\xd2\xd1\x67\x0d\x39\x74\x19\x44\x3c\xe5\xbe\xea\xa5\x6c\xda\xee\x8c\x0d\x9c\x41\x24\x0c\x52\xa9\x92\xed\x3a\xdc\x8b\xd9\xd7\x6c\x5a\x17\x85\x1e\x3f\x49\xfa\x02\x4f\x1c\xfd\x79\x53\xea\x9f\xcb\xf0\x3d\x81\x17\xb9\xa6\xda\x38\x73\x81\xa5\xf0\xb2\x09\x09\x5c\x6a\xcc\x0a\xc1\x9b\xdc\x3d\xc9\x46\xee\x27\xa8\xe1\xb3\xc7\x9e\x14\xf9\x7b\xa3\x1e\x38\x14\x98\xfd\x47\x1d\x24\x6f\xdd\x82\xe0\x39\xfa\x14\x3b\xb0\x5d\x9a\x4f\x86\x2b\x96\xb4\x9a\x8f\x15\xda\x6b\x75\x63\xca\x6a\x30\x5d\x20\x89\x74\x50\x5d\xbe\xf7\x1f\x0a\xd2\x22\x1a\x85\xcb\xae\xdb\x71\x2d\x63\x18\xb6\xff\x9d\xf8\x67\x4b\x95\x62\x0e\xb0\xda\xbb\x5e\x4e\xcb\x66\xf2\x34\xa9\x8d\xd1\x4c\x47\x86\xbf\x38\x9a\xb4\x66\x12\xf0\x50\x23\xa5\xd7\x7b\xd8\x2b\x68\x10\x91\xf5\xb5\x6a\x31\x83\x5c\x6a\x20\x85\x78\x5d\x1b\xb8\x2a\x77\xbb\xb2\x7a\xb9\x87\x4e\x9a\x81\xe8\xa7\xeb\x5b\x24\xb1\xc9\x07\xb9\xb7\x00\xfd\x3d\x63\x45\x80\xa2\x48\x3c\x47\xe8\x8c\xca\x51\x70\x97\x1b\xf0\x28\x85\x73\x12\x0a\x99\x60\x61\xe2\xf7\xd5\xe2\x71\x8b\x42\x16\x4f\xdf\x66\xeb\xc5\x96\x6f\x17\x0f\xd7\xdb\xde\xa4\xf1\x77\x95\xb1\xc0\x87\xdd\xcc\xd7\xf3\xc1\x3e\x06\x32\xd5\x2a\xd0\xb2\x94\x75\x75\x5f\x56\x41\xce\x83\x81\x34\xc2\xa4\xa3\x8a\xa2\xf6\x66\xba\xab\x83\x04\x4e\xa4\xb6\x75\x13\xc8\x46\xfb\xbf\xa6\xb1\xa4\xea\x06\xc4\xb6\xfa\xbf\xab\x08\x0c\x41\x04\xde\x97\x24\x00\x49\xf5\x81\x98\x33\xec\x0d\x83\x8b\x85\xb3\x9f\xcd\xf5\x7f\x0c\xa2\x05\xa0\x20\x4e\xfa\x89\x3a\x7f\xad\xeb\x16\xae\xfc\x2f\x6a\x6b\x31\xc9\x7b\x25\xdb\xae\x1e\xa3\xaa\xc0\x14\x05\x9e\x5b\x65\xbb\x08\x0c\x15\x10\x80\x0a\x00\x40\xaa\xaf\x65\xd5\x1e\x1b\x20\x91\xe7\xd1\xac\xf0\x41\x62\xb0\x45\x8e\x24\x62\xaf\xb2\x7d\x5d\x83\x6e\x82\x77\x09\xb6\x90\xf8\xf3\x87\x06\x4a\x7d\x9e\xc3\xf4\xbd\x54\x96\xba\x62\xbf\x27\xf9\xe1\x25\x34\x98\x8d\x12\x29\xfc\x6c\xe8\xba\x33\x35\x35\xdf\x4b\xf1\xc2\x0b\x26\xd2\xfb\x9d\x26\x49\xbf\x56\xd1\x7b\x87\xee\xf5\xa6\x6e\x7e\x87\x49\x24\xc3\xf2\x88\xf9\xc2\xd0\x59\xd3\xbd\xd7\xcd\xcf\xfe\x48\x9c\x74\x12\x22\x41\xae\x9a\x85\xd7\x4a\xed\xff\x54\x00\x55\x2b\xa1\xfe\x58\xf8\xb3\x04\x41\x0a\x84\x6f\x72\x6a\xe3\xba\x2e\x71\x11\x61\xcc\xd9\x80\x39\xea\xce\x73\x22\x5e\xdc\xc6\x6c\x0c\x1c\x91\x79\x8f\xba\x93\xc3\xa8\x9a\x4d\x39\xe9\xab\x95\x2d\xc5\xfd\x08\x12\xb7\x5d\x9f\x65\x41\x6d\x6a\x0a\xf4\x40\xde\x41\x4d\x1e\x24\x13\x1c\xe5\x6a\xae\x1e\x1f\x9e\xd7\x5b\xc4\x33\xac\x3d\xdc\xf2\x3a\x74\x4a\x89\x62\x11\x21\x16\xc4\x31\x36\xf9\x81\x3c\xb3\xa8\xf8\x74\x55\x76\xf7\xa5\x2f\x2e\xb3\x45\x22\x30\x13\x84\xe4\xe5\x2b\x39\xa5\xe1\xb3\x92\x65\x71\xec\xf2\xc8\x87\x13\xb3\x37\xb3\xb2\x88\x3c\x0a\xdf\x91\x8a\x3e\xc8\xe9\x89\x64\x95\x90\xc8\xa1\xb1\x2f\xab\x45\x28\xed\xb0\x2a\xe1\xac\x18\x71\x9c\x8f\xc8\xb7\x8e\x53\xfa\x1f\x3f\x7f\xad\xb2\x1c\xc3\xa0\x67\x04\xa2\xeb\xab\xcd\xe4\x97\x75\x6c\xf0\xac\x27\xd3\x7e\x7e\xec\x6a\xeb\xc2\x99\xfe\x66\xa6\x48\x59\x1c\xb8\xc5\xae\xcf\xb6\x43\x0b\x31\x25\x4d\x06\xe4\xc7\xbe\x9e\xd4\xfb\x05\xe2\x3c\x34\xc7\xd8\xff\xb9\x94\x24\xb5\x20\x89\x34\xa8\x85\x0e\x99\x2c\x90\xbf\x23\x1b\x19\x0a\x16\x34\xfd\x62\x55\x1b\x18\x66\x24\xac\x15\x26\x0e\xfe\x37\x7d\xdd\xfb\xb2\x3a\x11\x8a\x58\x1b\xcb\x34\x3b\xc1\xbc\x7e\x94\xdd\xeb\x2b\xec\xa6\xc2\xf6\x83\xf5\xd6\xcf\x2a\x07\x99\xb8\x92\xd5\xcf\xb3\xd9\x62\x0d\xe0\x74\xbc\x92\x6d\xa9\xaf\xe4\x6e\x77\xe2\x2d\xbb\x10\xed\xe2\x51\x14\x31\x8c\x56\xdc\x43\x75\x8c\x1c\xdf\x22\x8f\x58\x2a\x11\x2d\xea\x88\x13\x71\x16\x3c\x41\xf3\x50\x77\x81\x47\x70\x34\xe8\x3c\x62\x46\x46\x2e\xe1\xeb\x99\x2b\xff\x6e\xe8\x7d\xf8\x02\x3c\xe2\x11\x47\x5d\x9d\xe3\x09\x01\xc8\x23\xce\x08\x83\xfb\xcf\xfe\x9d\x51\xd3\x30\xb4\xf0\x02\x63\x47\x5d\xbd\x33\x7f\xd6\xc7\x65\xf7\xa3\x3e\xee\xcc\x89\x05\x94\x47\x22\x66\xd2\xc7\xcf\xbd\xbf\xbb\x41\xd2\xd3\xd0\x43\x5a\x9e\x0e\x4c\x83\xe5\xfe\x50\x7b\x51\x0d\x67\x16\xe4\xff\x18\xbf\xae\xd0\xa4\xb6\x8e\x4f\x39\x5a\xf7\x7d\x1b\xf9\x0a\x2f\xd0\xad\x0f\x20\xa7\xdf\x88\x47\xb1\x60\x18\x87\xbf\xff\x40\x97\xe8\xc1\xf3\xe7\xf0\x28\xc9\x18\x46\x11\x29\xfd\xb3\xac\xda\xae\xec\x8e\x27\xc0\xf8\x84\xa4\x6c\x7c\xd7\x34\x21\xbd\xec\xea\x97\x3e\x91\x3a\xf3\x28\xcd\x89\x5f\x5a\x1a\xf3\x5c\x95\xff\x39\xc2\xfa\x40\x94\x44\x93\x33\xf0\xe2\xd9\x37\xfc\x5f\x7f\x3f\x6d\x91\x8b\xe1\x7e\xf9\x40\x2c\xef\x9b\x6f\xdb\xf5\xe3\xcd\xe6\x04\x06\xe2\x51\x0a\x19\x6e\x59\x16\xf4\xeb\x6c\xb7\xeb\x8d\xa7\x15\xb4\xc7\x5d\x77\xf5\xe1\xd3\xd6\xb4\xdb\x8e\x07\x35\x63\x19\xb8\x18\xea\x83\x1a\x28\x5e\xf0\x28\x4b\xd2\x78\xa8\xce\x36\xb9\x30\x8f\x14\xd6\x9e\x3f\xd5\xd5\xcb\x6f\x83\x67\xcd\x05\x47\xdb\x9b\xc2\xe3\xb8\x1f\xf4\xd6\x54\x43\x9e\x68\x27\x7f\x5e\x0e\x7a\xf3\xa8\x60\x51\x8e\x67\x08\xb2\xbe\x7e\x5c\xcb\x21\x87\x1e\x8f\x8a\x8c\xa6\xa3\x3a\xea\x9f\xd0\x2d\x7e\x95\x6d\x37\x56\x19\xee\xbb\x28\xcc\x3e\x9b\x1a\xfc\xfc\x78\x7c\xaf\xfc\xd8\x7f\xf2\xab\x56\xa3\x71\xe6\x79\x48\x9a\x40\xa3\x37\x99\x40\x2a\x16\x18\xaf\xf4\x36\xc5\xbd\x2c\x2f\x96\x7a\xf9\xee\x85\xf0\xb5\xfe\xcb\xea\xad\x2e\xb5\xf3\xfd\x9e\x64\x69\x26\x8f\x6d\x12\x81\x45\xcf\x50\x9d\x4a\xdf\x31\xfd\xc0\x4f\x22\xc3\x7d\xaf\x02\x1d\xfb\xd6\x11\xd0\xb1\xf0\x77\xc0\x99\x7f\x52\xea\xdc\xd4\x4e\x6e\xeb\x9c\x63\xd6\x5f\x63\x60\xa0\x2e\x34\xaf\xdb\x2e\xe4\x49\x79\x64\xa0\x40\x13\xb1\xb7\xf3\x6e\x65\xef\xfd\x7b\xc6\x25\x1e\x41\x42\xa8\xdf\x93\xf9\x78\x89\x74\xbf\xef\x67\xd1\x70\xa3\xb8\x82\x67\xc4\x1c\x4e\x69\x90\x80\xdb\x77\x7d\xec\x0e\xc7\xb0\x2b\x58\x4e\x2a\x96\x78\x7a\x9e\xaa\xe9\xa8\x95\x45\x5c\xa0\x51\xd4\x4f\xfd\xf9\xec\x69\x20\xc1\xca\x59\x94\xd9\x5c\x04\x2a\xab\x9f\x65\xf5\xd2\xdb\x3c\x4f\xf2\x63\x57\x4b\x33\x08\x5b\x73\x16\xe5\x24\x34\x73\x33\x14\xdf\xe7\x8c\xc5\x19\x52\xd8\xbc\x95\xf0\xbe\x06\x5d\x57\xe6\xae\xee\x4e\x7a\x55\x28\x3a\x1d\xfa\x26\x62\xc4\xb6\xba\x86\xae\xdb\x9d\x29\x33\xff\x15\x29\xf3\xd8\x67\xbc\x40\x28\xc8\x19\xd3\xa4\x7a\xed\x8e\x2a\x24\x07\xbc\xfa\xa0\x94\xde\x38\x55\xc3\x19\x4f\x2c\xba\x68\xeb\xc5\xe2\x2e\x0c\x0b\xd7\x9c\xb9\x7a\xf8\xf5\x47\xdb\xc1\xde\x7f\xb6\x4b\xa2\x77\x9c\x09\x96\x14\xfa\xc4\x8a\x76\x8e\xdc\xf8\xc7\xa4\x7f\x21\x95\x57\x9f\x29\x5f\x9e\x9a\x7a\x5f\xe3\x26\x13\xca\xfc\x7d\x3f\x29\x71\xc0\x8c\xfc\xf0\xc0\xaf\x41\xcc\x97\xb3\x98\x91\x0a\xf9\xae\x6e\xdb\x4d\x3d\x7f\xc5\xa0\xda\xe4\xd9\x62\x51\x28\x5a\x26\x6f\xf5\x4f\x08\xc5\x0f\x43\x5f\x8b\xb3\x38\xb3\x38\xb3\x1d\x81\xec\x93\x53\xd8\x0a\xe6\x01\x67\x49\xc4\x31\x69\xf5\xaf\xcd\xb7\xcd\xef\x0f\xb3\xeb\xeb\x55\x68\x11\x16\xe3\x22\x57\x0f\xbf\x0f\x2b\x92\x39\x4b\x94\x76\x6a\xa6\xd5\xa2\xed\x7e\x87\x0f\x7c\xc7\x87\xc9\x8e\xc8\x52\xc1\x91\xa8\xb5\xd4\x35\x56\x68\x04\xc5\x40\xdf\x9e\x4a\xe4\x89\xf9\x75\x90\x95\x91\x5f\x00\x25\x38\x4b\x15\x8f\x02\x52\x74\xfd\x51\x99\xde\x00\xf8\xdb\xd9\xa0\x70\x13\x8b\x0b\xd9\x15\xcc\xf6\xe7\x2b\xfa\x01\xe3\x5f\xb2\x71\x62\x1c\xc0\x1b\xe7\x15\x25\x2e\x5d\x6b\xc6\x98\x15\xa7\xe1\x24\x3e\xf5\xd0\xe8\x12\xed\x6d\xd7\xbf\x4f\x63\xae\x27\xa5\x4f\x9c\x65\x96\x11\x10\xa7\xa6\x40\xff\x6f\xe7\xc6\x1e\x67\x79\xa4\x51\xe0\xfc\x8d\x24\x5d\xe7\x75\x38\x82\x58\xce\x80\x9c\x39\xf2\x2b\xcb\xff\xc2\xad\x6c\x9f\x82\xa6\xc8\xcd\xb1\x32\x28\xe1\x30\xfd\x12\x85\x95\x69\x7a\x9a\xc6\x04\xa3\xfa\x8b\xd5\xe8\x2e\x95\x2c\xf6\x99\xff\xc7\x63\xa7\xeb\xfd\x88\xfc\x95\x33\x29\x01\xeb\xc1\x90\xe9\x72\x68\x15\x31\x09\xd6\x90\x12\x26\x4a\x2a\x84\x3f\xdb\x08\x75\x2f\x8f\x55\xa8\x78\x1a\x9f\x2c\x4c\xc5\x1c\xad\xdd\x13\xb0\x09\xab\x2a\x4d\x29\xcf\x12\x13\xfe\x8a\x94\x20\x12\xce\xd1\x9a\x06\x13\x39\x53\x85\xc8\xbc\x94\x50\x7d\xac\x4c\x00\xc5\x8e\x31\xbc\x93\x8b\x24\xe8\x21\xe2\xeb\x09\x59\x1e\xb1\xee\x23\xbc\xbe\xe6\x19\x56\x67\xcf\x37\xb3\xfb\xd1\x1a\xd1\xc6\x31\x5d\x80\x6d\x42\xd1\x2b\x67\x26\x31\xe0\x29\xd9\xa8\x60\x26\xb4\x18\x9d\x11\x8c\x5d\xee\xaf\xbc\x3a\xe0\x64\x64\x6c\x22\x48\xf4\x97\x98\x5e\x66\xe1\xb6\x36\x8f\x3c\xad\xcd\x2d\x54\xf5\x27\x04\x30\x7d\x3f\x22\x91\x42\x3b\xd4\x7e\x02\x44\xe3\x3c\x8a\x8d\x3f\xd6\xc8\xf5\xc4\x8a\x1e\xac\x1a\xf6\x3d\x34\xe5\x12\x6e\xa1\x5b\xb6\xa8\xda\xe4\x97\x35\x67\x79\xce\x9c\x05\xe5\x8c\x8e\x59\x65\x10\xe1\x83\x33\xf5\xd1\x0e\x94\x06\x39\x67\x52\x81\x75\x34\xe6\x52\xbf\x82\x09\x4c\xc4\xa1\x87\xe2\x89\x83\x92\xaf\x0f\x75\xd5\xd6\x08\xcb\x23\x95\x65\x2a\x65\xfb\x0b\x72\xe9\xfe\x16\x59\xe2\x44\x7a\xe6\x8b\x4d\xec\xbd\xc4\xf3\x54\xe2\xf4\x1f\x7f\xbd\x35\x28\xbb\x8d\x2e\xd4\xaa\xae\xf7\x23\x52\x1f\xce\x79\x92\x60\x2e\xeb\xe6\xdb\xe0\x04\xe5\xdc\x44\xaa\x08\x4e\x22\x12\x77\x5f\x05\xcc\x02\xe7\x22\x26\x01\x4b\xc2\xeb\xbc\xf4\x0e\xf0\xb8\x6e\x66\xf0\x24\xec\xab\xb8\x50\x7f\x2b\x8b\x08\x4e\x97\xc2\xa0\x0a\x42\xdf\x96\xe7\xf8\xee\x13\x62\xcf\xb3\x2a\x19\xce\x13\x26\x10\xa5\xb7\x2b\xbb\x6e\x2e\x0f\xed\x71\x07\xb7\x30\x06\x77\x63\x27\x39\x5c\x14\x77\xb2\x2b\x8f\x63\xee\x45\xce\x93\x98\x79\xdd\x17\x27\x57\x46\x13\xfa\xd3\x12\x34\x77\x5d\x1a\x45\xc2\x67\x48\xa7\x3d\x83\xff\xc9\x79\x2a\x80\x51\xa5\x20\x7d\x7d\xa7\x71\xe9\xdf\x38\x2d\x34\x0a\x24\x3a\x76\xae\x9b\xba\xee\x14\x56\x7b\xad\x3b\xf9\x97\x20\xe9\x70\x0f\x83\x99\x0a\x49\x90\xc8\x79\x5d\xef\x4c\xfd\x5e\x2d\xaa\x30\x2d\xb3\x58\xaa\x50\xd7\x81\xc9\x6f\xb3\x6c\x89\x17\x60\xbc\x6a\x79\xa6\x18\x52\xbd\xd3\x9e\xff\x63\xb1\xb8\x6c\x22\xf3\x42\x2a\x75\x82\x33\x5d\x1d\x9b\x41\x90\x8b\x73\x19\x29\xe1\x4a\xd4\xae\xe5\xc7\xc4\xc0\xe4\x32\x29\xb0\xbe\x97\x9c\x36\x5c\x68\xcf\x81\x7a\x75\x57\x56\x30\xed\x2f\xe9\x5b\xf7\xe6\xe1\xf5\x7c\x3e\xcc\x88\xf5\x8d\x80\xa6\xdf\x76\x0f\x7b\x7d\xf8\x5a\x9b\x9b\x73\x15\xe9\x22\x88\xb8\x54\xc7\xf6\xd1\x5a\x7f\x23\xc5\x13\x2a\xcd\x21\xb2\x61\x02\xa5\x9c\xd5\xfe\x5d\x1e\x0d\x95\xe6\x82\xd8\x77\x76\xbf\x7f\x68\x52\x0f\x00\xe3\xe9\x28\x27\x43\xac\x23\xeb\xc8\x9e\x08\x2d\xf6\xcb\xa1\xf9\x6e\xea\xe6\x7e\xfe\x63\x32\x85\x35\x8b\x7c\xba\x64\x00\x3c\x6c\x3f\x2f\xb4\x3b\x7d\x04\xed\xb4\x37\xcb\x76\xd9\xc1\x7e\x4d\xfa\xe7\xbf\x85\x46\x89\x2a\x02\xeb\xcd\xe2\x42\x82\x8f\x73\x9d\x31\xb4\xb4\xac\x2b\x9e\x1a\x4a\x9f\xb3\xf4\x22\x05\x31\xe7\x3a\xb7\x98\x86\xbb\x59\x3e\xcc\x1e\xe6\x8b\x81\x87\xcb\x4d\xc4\xb9\x72\x78\x13\x84\x1b\x96\xe1\x58\xe6\x46\x59\x3c\x96\x6d\xdd\xdc\x0d\xe9\xd3\x39\xb7\x3c\xf5\x82\x63\xf7\x65\x35\x62\xa3\xe3\xdc\x5a\x83\x88\xba\xcd\xdd\x03\x05\x0b\x27\x68\x52\x2e\xa2\x28\x47\x22\x82\xb9\x6c\xae\xea\x6a\x1e\xb4\xe5\xb8\x88\x8a\x0c\x8d\x93\x16\x3a\xac\xad\xc6\x2a\x4a\x79\x1e\x82\x19\x8e\x89\x60\x29\x09\xd6\x06\x02\xfb\x8f\x91\x79\x21\x78\xc2\x31\x84\xf8\xfd\xf9\x6e\x3e\x7b\xd8\x3e\xad\x1e\xef\x17\x9b\x6f\x8b\xe7\xf5\xf6\x7e\xf6\xc7\x76\x3e\x5b\xdd\x3e\x86\xae\x79\xee\x80\xf5\xb8\x1a\x7f\xc8\x31\x4f\x3d\x17\x5c\x92\xd4\xda\x8b\x57\xee\x99\x75\x1d\xec\x0f\x67\x0b\x56\x70\x10\xe8\xad\x9d\xcc\x2c\x37\x4c\xe1\x56\x22\xe6\x26\x44\x4c\xbf\xc9\xf6\xf5\x92\xff\x2d\x44\x02\x85\x1b\xea\xd9\xdb\xcb\xad\x6c\x7f\x3b\x6d\xec\xae\x44\x8f\x8b\x98\x2b\x25\xbd\x6c\xdb\xcb\x45\xf7\x51\xc4\x5c\x63\x86\x7d\x80\xf0\xfb\x32\x0e\x23\x62\x25\x75\xe2\x21\x6f\xbe\x6c\x63\x2e\x0f\xcf\x23\x3a\x4e\xd7\x39\x51\xc6\x0b\xe4\xaf\xf0\xe7\x5d\x70\x22\xbc\xf4\xf8\xde\x89\xb2\x9e\x36\x7d\x42\x36\x71\x89\xd0\x84\x8b\x14\x38\x16\xc0\x3d\x6f\xe6\x1b\x3f\x7e\x19\xb3\xc8\x85\xf9\xd2\xc8\xaa\xbb\x2d\xdf\x90\xa8\xf1\xf7\xa3\xa9\x2f\x57\xe4\xe1\x05\x86\x51\x68\x6f\xb1\x47\xad\xed\x66\x32\xd8\x79\x9a\x63\x1e\x61\x27\xdb\xee\xf7\xd3\x69\x20\x72\xa3\xd0\xe2\xda\x13\x45\xd4\xf6\xe0\x70\xbe\xae\xb9\x10\x26\x71\xa6\xce\xef\xa0\xa4\x6a\x51\xe9\x18\x6f\xd2\xff\xdf\xc9\xbb\x17\x3a\x31\x94\x4c\x72\x71\x89\x61\x24\x95\x8b\x02\x12\x9e\x3b\x62\xde\xc7\x0a\xd0\xeb\xf9\x56\x7b\x98\x21\x17\x32\x05\x34\xed\x51\x43\x9d\xb1\x24\x39\x13\x51\xff\xd2\x35\xf6\x77\xc9\x59\x32\x64\xca\xa5\x3d\xf1\x6b\x13\x48\xc8\x5c\x7a\xf2\x4d\x8c\xe3\xdd\x95\xa7\x0a\x2c\xd7\x45\x25\x44\x61\x7c\x75\x95\x0f\x4d\x59\xa1\x52\x8b\x14\xcd\xb0\x2f\x3b\xbf\xaa\x47\x04\x16\x97\x77\x70\xa1\xf2\x0c\x73\x4b\xdd\x9b\x0e\xb7\x92\x39\x6e\x4b\xaf\x65\xf3\x49\xa0\x48\x28\x4d\x6a\x98\x44\x44\x80\x49\xb3\xdf\x06\x81\x7c\x2e\x74\xc2\xb4\x09\xb2\xa0\x98\x7a\xff\x0a\x69\xc4\x85\x96\x11\x9a\x0b\x0a\x7a\xf7\xe5\xa1\x6e\x5a\xb0\x65\x13\x3e\x0a\x70\x2e\x29\xfc\xdd\xf6\xf6\xe7\xd1\x21\x89\x29\x68\x7f\xd9\x8e\x16\x96\xa5\xf8\x1e\xf2\x70\x00\x49\xac\x36\x97\xbe\x94\xe5\x5a\x0d\x95\x2c\x7a\x5f\xff\x52\x7e\xfb\xfc\xa4\x89\xa3\x44\x20\x6a\x6b\x8d\xf5\xec\x9b\x6f\xab\xc5\x62\xbb\xd8\x7c\x1b\xb2\x83\xf2\x38\xca\x0d\x56\xf8\x3f\x2d\x1f\x2e\xbb\xcf\x5f\x5b\x39\x71\x54\x98\x34\xf1\x0c\x6a\x3b\x90\x2f\x80\xe0\x87\xcb\xd6\x59\x1c\x99\x08\xe9\x0f\x2c\x40\xeb\xa3\x16\x55\x78\x14\x9b\xe1\xe4\x31\x65\x7b\x38\x86\xc8\x50\xcc\x98\xd0\xe9\x00\x25\x55\xdb\x72\x77\x59\x6c\x86\xc7\x4c\x88\x64\xa4\xdd\x4d\x71\x8a\x21\x79\x5f\xee\xbb\xc6\x94\xd4\xfd\x73\xa4\xdf\xc8\x63\x96\x10\x98\xef\x7b\xfd\x0b\x76\xd7\x44\xb7\xe6\x03\x6d\xe7\x71\xe4\x98\x25\x0c\x83\x64\x9b\xb2\x7b\x3d\x3d\x72\x6a\x53\x2c\x5b\x6a\xa4\xde\xc1\xb2\xf3\x95\xb5\xe3\x08\x7b\xcc\x63\x97\x93\x91\x16\x86\xe2\xd5\xff\x37\x4b\x39\xe6\x05\x65\xf7\xd5\xf1\x83\x44\x45\x0e\x65\x85\xf9\xfd\xf1\xc8\x8b\xc8\xa2\xe5\xf0\xb4\x3b\xee\x7d\xfa\x8d\xc7\x42\xb3\x2c\x1a\x22\x4c\xf8\xf4\x32\x4d\x33\x1b\x4f\x01\x44\x8c\x78\xff\x2d\x8e\x73\x42\xa6\xb7\x28\x93\xfc\x5c\x11\x26\x8c\xc2\x43\x14\xed\x9b\x9c\x41\x71\x12\x09\xcf\xb7\xf1\x54\xd7\xbb\xe9\x23\x26\x4c\xc6\x0e\xc1\x81\xfb\xcb\x43\xdd\x49\x82\x2a\x0c\xcf\xfb\x38\x49\xf2\x28\x0b\x7c\x94\xe5\x4b\x25\x3b\x30\xc4\x92\x32\x4d\x51\xc4\x49\x16\xa1\x8f\xe9\xf9\x18\x08\xf0\x54\x86\x53\x38\x4e\x54\x81\xdc\x00\xd7\xdf\x97\x4f\xd3\x6b\x4d\x8e\xf3\xee\x01\xde\xbf\x41\x53\x4f\x5a\xd3\x88\x65\x8e\x29\x2a\x30\x55\x8e\xbe\xdd\xf8\xd5\xd3\x28\x8f\x9c\xfb\xf8\x06\xaf\xa5\x1e\xa8\x74\x4e\x96\xdb\x17\xff\xf8\x7b\x09\x92\x9a\x5a\xf7\xd3\xc6\x61\xc9\xfc\xfb\x64\x11\x4b\x5d\x9d\x69\xdd\xc1\x63\xf5\x52\x9f\xce\xb1\x38\xcb\x2c\x5e\x88\x62\xdf\x43\xea\x08\x1e\xe7\x2c\xc7\x24\xef\xb1\xea\xfd\xe6\x13\xae\x9d\xc7\x05\x13\x08\x7c\xee\x8d\xa5\xf5\xf2\xe1\xf6\x6e\xb1\x5d\xae\xd7\xcf\x8b\xeb\xed\xcd\xea\xf1\x7e\xfb\xb8\xf9\xb6\x58\x6d\xe7\xcf\xab\xd5\xe2\x61\xbe\x5c\xac\xc3\x65\xda\x7a\x17\x7e\x2b\x77\xbb\xad\x7e\xed\xfd\xa7\xea\xe5\x34\xf4\x32\xb2\x08\x4a\x55\x64\x23\x88\xf0\xf7\x44\x60\x92\xe4\x11\x17\x4f\xf8\x6b\x5a\x20\x79\xd2\x5e\xfe\xba\x95\x2d\x39\xed\xa1\x0d\xd2\x98\xe0\x77\xbd\x45\x36\x92\x41\xe2\xb1\x4a\xb2\xac\x08\xb8\x7c\xa7\x59\xe2\x66\xf2\x25\x7b\x32\x56\x69\x36\x20\xc5\x0b\xe9\x83\xa9\x17\x34\xf9\xc0\x86\x27\x82\x07\xef\x69\x35\x90\xa0\x5a\x77\xb2\x3b\x5e\x72\x42\x63\x88\x89\xbf\xe2\xe9\xd8\xbc\x84\x17\x85\xcc\x9a\xc2\x27\x7b\x64\x07\xbf\x97\xbb\xdd\xfa\xbd\xec\xf4\x6b\xe8\x61\xac\x57\xb9\x09\xf1\xaf\x40\x26\xfe\xd4\x0c\xc2\xd8\xc3\x1f\xb3\x85\xc4\x83\x04\xed\x25\x52\xe6\xfe\x9c\xbf\x80\xc7\xd6\x16\x5c\xff\xb5\xb8\x5e\xb8\x20\x89\x12\x8e\xd0\x64\xbf\xe7\xfd\xf3\x08\x27\x0e\xdc\x2f\xa6\x73\xc2\x04\x60\xba\x8c\x34\xf3\xc9\xc1\x6b\x7f\xbc\x42\xe5\x62\x42\xe3\x9f\x61\x79\x91\x13\x69\x6a\x89\x36\x0b\x1a\x48\xbf\xf9\x46\xa5\x73\x97\x24\x44\x35\xa8\xd3\x40\x0c\xed\xe5\x84\x59\xea\x86\xb1\x98\xf9\x19\x23\x2e\x4f\x38\x8b\x71\x57\x98\xaf\xfe\x7c\xda\x3c\x5e\x3f\xde\x85\x06\x01\x99\x0c\x0e\x4a\xa0\xa1\x38\x0d\x73\xc2\x0b\x40\xcb\xea\xa6\x44\x7d\xf4\xbf\x9b\x3c\x1e\xbf\xa4\x88\xc8\x87\xc2\x02\x81\xde\xae\x1d\x0b\x4b\xf2\x7e\x85\xc4\xa7\xfa\xba\x39\x34\x5d\xef\xda\x4e\x76\xbf\x44\x40\x8a\x47\xd9\xb5\x6c\x4a\x6f\x3f\x25\x71\x04\xc8\x80\xb9\x3d\x56\xb6\xde\xed\xea\xf7\xcb\x47\x75\x92\xa4\x1c\xeb\x13\xa1\x32\xd7\xc7\x4e\xbf\x7a\xa2\xde\xcb\x4f\x9c\x68\x8e\x39\x3f\x32\xb6\x2e\x1b\xf3\x93\x4b\x52\xb7\xdd\xa3\x94\xee\xb1\xd4\xa5\x81\xc9\xf3\xa7\x82\xa0\x7e\x1f\x20\x1b\xf6\x5c\x9d\x80\x2d\x3c\x49\x15\x13\x54\xf7\xd3\x4f\x97\xb2\x7a\xb9\x39\xed\x07\x49\xaa\xe2\x1c\xbc\x3f\xe4\xc2\xa0\xd7\x65\x3b\x89\x43\x25\x99\x0a\x8c\xd1\x41\xb5\x8b\xa8\x37\xc7\x8f\x91\x73\x40\xa3\xa5\x77\x49\xdd\x62\xbe\x2c\xb3\xe5\xfb\xcb\x18\xdd\x85\xd2\x05\x1a\xc2\x8e\x34\xee\x56\x44\x02\x57\xff\x88\x06\xf9\x4b\x73\x38\x91\x59\x8e\x97\xdc\xd7\xfa\xe7\x28\x51\x8a\x98\xb7\xbf\x98\x5b\xd3\x7f\x7d\xd0\x2e\x91\x5a\x61\xa8\x96\xcc\xe5\x6b\xf0\xf2\x1e\x61\xbd\x48\x30\xc8\xa6\xe7\x4a\xa3\x7a\xc3\x8d\xbc\xc0\x13\x47\x51\x58\x3a\x8a\x67\x18\x15\xb2\xd0\xe9\x57\xd4\x8d\x1f\xbf\x82\x12\x96\x2a\x6d\xa9\x82\x63\xdc\xa8\x99\xc0\x53\x92\xa2\x6e\x8f\xd5\x39\x37\x28\x4f\x74\x9e\x61\x9f\xfb\x8f\xc5\x6a\xce\xb9\xb8\x24\xba\x3b\x19\x36\x23\xc9\xf3\x33\x8d\x2c\xab\xd9\xf3\x7c\x72\x47\x10\xb1\x2c\xbc\x27\xfe\x3f\xc7\xe6\xa3\x3f\x3a\x27\x0e\x7d\x02\x99\x0a\x05\xb4\xdd\x80\xdd\xd1\x37\x17\x60\xb8\xaf\x9b\x6a\xcf\x0c\x91\x04\x54\xa2\x4f\xbc\xd6\x2b\xc7\x99\x1f\x1a\x8d\xf4\x3c\xe3\xf5\xaf\x8f\x4b\x28\x74\x9e\x00\x70\x64\x7b\xbc\xff\x20\xe3\x6a\x68\xb4\x26\x60\x35\x96\x0c\x5b\x0c\x95\x12\x73\xc5\x74\x70\x6d\x4c\xac\xa0\x16\x60\x48\x20\xc2\x13\xab\x00\xf3\x0c\xf7\xd0\xc9\xdb\x53\xd4\x3c\x8d\xa4\x21\x4c\x4a\xd9\x8d\x81\x03\x69\xa4\x0c\xc6\xeb\x3c\xd5\xa5\xc3\x25\x21\x82\xb6\xfd\x12\x9d\xc4\x27\xe8\xa4\xf1\x97\x4a\x99\xcc\xf5\x90\x89\x55\x7d\xec\xdd\x60\xb8\x0e\x3c\x8e\x52\x27\x46\xbb\x74\x30\xd1\xb9\x3c\x8c\xdf\x34\xed\x0f\xfd\x7e\xa8\xde\xfd\xe9\x38\x4c\x8c\xa6\xfd\xf6\x8e\x14\x72\x88\x02\x4d\xb6\x4f\xab\xa5\x27\xe3\xe1\x29\x37\xe0\x4f\x90\x6d\xdb\xc9\xb2\xd1\xbe\x58\xc1\xaf\x86\x54\xc4\x71\x9e\x78\xd5\xf9\x3d\x8c\x0a\xac\xbe\xde\xd7\x53\x91\x65\x98\x7b\xfe\x59\x76\xdd\xc7\xed\xc7\xde\xff\x6a\xcc\x4d\x44\x99\x1e\x2d\x3f\xc0\x7c\x46\x6d\x36\xde\xa1\xd3\x44\x14\x98\x92\xa3\xd5\xe2\xd8\xe0\x3f\xd9\xa6\xff\xe2\xc1\x92\x24\xc3\x60\xd4\xcc\x00\xec\xe4\x06\xfa\x21\x0b\xf1\xff\x34\x29\x14\xae\x9f\x5b\xe8\xe6\x65\xf7\x71\x27\x2b\xf3\x70\xdc\xb7\xa1\xd9\x50\xac\xab\x91\x1d\xac\xe1\xc4\x18\xc8\xd3\x54\x48\xca\xb9\x2e\x56\xeb\xc5\x6a\xe6\xf1\x10\x69\x16\x09\x2c\x30\xb9\x7a\x9c\xad\xae\xb7\x2c\xfc\x99\x53\xcc\x7f\x4b\xa0\x3e\xac\x57\xa1\x42\xcb\xc9\x07\xce\x0c\x60\x30\x8b\x72\xb9\x94\xc9\x1a\x2f\x97\x34\xe7\x04\xb8\xc5\x90\xf2\xb1\xea\x3e\x3e\x17\xa7\xe1\x69\x2e\x88\x66\x82\x98\xd9\x02\xbc\x6a\x59\x39\x4e\xf5\x49\x77\x19\x25\xb8\x14\x9f\x39\xfb\xd3\x3f\xbb\x2a\x48\x86\x79\xf1\xf0\x78\x1f\xfe\x26\x49\xb8\x60\xab\xe5\x01\x89\x30\x03\x08\x91\xa7\x4a\x25\xc2\x85\x20\xfa\x31\x45\x95\xa3\x8b\x9b\x7e\xaa\x14\x91\xb5\xfc\xf8\xf6\x78\x7f\x59\x0a\x99\xa7\x9a\x25\x08\xa3\x74\x75\x39\x17\x08\x5c\x79\xaa\x53\x09\x9f\x40\xdb\xc6\x3f\xa8\x15\x14\xd2\x4b\xf9\x93\x60\x74\x7b\x8d\x28\xd4\x49\x96\x8c\xa5\xd1\x3f\xe8\x1f\x77\xa5\xb1\x84\x37\xc2\xf0\xb4\x07\x2c\xdc\xd4\x44\x73\x74\x7b\xda\x3f\x20\x01\x5c\x42\xb7\xd0\x39\x1d\xda\x51\xfc\x63\xfc\x38\x90\xe5\x8e\x5e\xac\x32\xd7\xb0\x0b\x0b\x44\xba\x5a\x3c\xd7\xcd\x0a\x72\x2e\xef\x97\x0f\xcb\x87\xdb\x31\x1f\x28\x4f\x6d\x6c\x31\x6c\xd6\x85\xd4\xe0\x84\x26\xcd\xf7\x4b\x1d\xd3\x01\x74\xf3\x46\xda\xde\xb2\xb8\x3c\x65\xac\xca\xa2\x24\x60\x91\xeb\xa3\x67\xef\x76\x3f\x98\x45\x4a\x1b\x17\x93\xed\xa7\x70\x59\xbd\x10\xc2\x81\xa0\xb1\xa3\x37\xcc\x18\xcb\x19\x11\xe7\xef\x4e\xb8\x8b\x8c\x15\x99\x74\xe6\xc9\xb2\x3d\x51\x30\xb9\x56\x1e\x47\x18\x89\xde\x3a\xd7\xf6\xeb\xbd\x22\xe3\x45\x8c\xee\x53\xe5\xb2\x88\x37\xb2\xd9\x9f\x80\x89\x19\x2f\xcc\x40\xb9\xfa\xd8\x4d\x23\xb6\x19\x97\x69\xe4\xf6\x45\x0c\x31\xe3\x67\xb8\xfc\xc1\x32\x6e\x81\x91\xf4\x88\x23\xa9\xff\x6c\x0f\x1a\xff\x84\x48\x08\xd9\x30\xff\x50\xbd\x59\x31\xd0\x22\xbb\xe4\x36\x64\xc2\x2a\x64\x3a\x39\x90\xf4\xce\xf6\x7d\x44\x1f\xc6\xb3\x38\xe2\xe8\x56\x28\xfd\x3a\x8a\x78\x65\xb1\xcc\x31\xc2\x5a\xea\x1a\x21\x61\x82\xb4\xfb\x7d\xab\x89\xf0\x45\xef\x66\x3f\xe6\x9f\x72\x6f\x4c\x9e\x3c\x29\x00\x86\x19\x08\x12\x2d\xbe\x92\xfa\xe7\xa6\x5e\x03\x12\x51\x8c\x1e\x3d\x8d\x0c\x15\xb6\x0f\x52\x47\xa3\x23\x39\x4b\x59\x8c\x39\x8b\x7b\xd9\xbd\x3e\x77\xe5\x2e\xfc\x3d\x8d\x70\xab\xdd\xc9\xb6\xbb\x29\xab\x32\xa4\x4e\xb2\x14\xa8\xa0\xf7\x2d\x80\x14\x91\xaf\xa0\x7d\x3d\xe7\x01\xf3\x86\x5f\x96\x5a\x91\xba\x19\xd6\x9f\x64\xd7\xb2\x93\x57\x1f\x23\xf2\xf9\xd0\xd1\x20\x4b\x41\x5d\x6d\xe4\xaf\x2f\x89\x37\x79\x96\x45\x0c\x73\x28\x07\x68\xb4\xd3\xd7\x2b\xf7\xd0\xb2\x28\xf2\x8f\x9a\xb1\x64\x80\x8d\x46\x00\xd6\xba\x9c\xec\xb1\x59\x9e\x19\x84\xbf\x5b\xf0\xdb\xd9\xd0\x02\xc9\x72\x65\x22\x4e\x9b\xd9\x55\x5d\xef\x40\x56\x54\xb3\xe4\x9a\x8b\x34\xce\xd5\xa9\x12\xba\xeb\x0d\xbf\xee\xb7\x29\x46\x6c\x54\x28\xc2\xb3\xc2\x52\xc6\xc3\x07\xc5\x3f\x25\xb3\x1b\xbf\xb0\x8c\x59\xee\xe6\x13\x16\x95\x9e\x66\x9a\xcc\x04\x26\xba\xc8\x2a\x9b\xc3\x39\x9f\x95\xef\x98\xcb\xe2\x24\xaa\xe3\xb2\x13\x30\xac\x30\x18\xcf\x7d\xa9\x63\x8c\x11\x18\x20\x13\xe8\xb3\xdb\x42\x86\x29\xcd\xeb\xdb\x6b\x0c\x78\x84\x07\x53\xa9\xc9\xc9\xe2\x23\xfd\xcd\xaf\xdc\x99\x4c\xe5\x11\x8a\x4a\xbc\xe3\x0c\xfd\x01\xea\xc3\xd4\xe1\x46\x85\x88\xbd\x1a\x2c\xc8\x3d\x55\xa9\xb4\x41\xd8\x9e\x67\x9a\xc7\x10\xe0\x26\x78\x96\x0f\xd0\x87\x99\x16\x0a\xc9\x5b\xea\x0a\xfe\x04\xd9\x84\x3f\xe7\x89\xd2\x5e\x23\xa4\xd4\x3f\x11\x04\xf7\x44\xf3\xc9\xf7\x31\x91\xb4\x2e\xb7\x0b\x1d\xcc\x1a\x55\x76\xe7\x82\x34\x3c\x33\xa2\xc0\xe8\xd5\xc3\xe2\xf1\x6a\x07\xc7\x70\xb5\xca\xb5\x8b\x4e\x91\xb2\x29\xed\xe1\xbe\x19\x38\xe0\x73\x55\xf0\xab\xdf\x0f\x81\x52\x15\xbe\x31\x56\x0c\x19\x39\x30\x28\x43\x74\x4c\x83\xf3\xe8\x31\xcc\x51\x80\x0c\x63\x71\xfd\x62\x0d\xf4\x0b\xfd\x9f\x0d\x44\x9e\x49\xb4\x93\xbb\x21\x9d\xff\x78\xe4\x6d\x91\x21\xec\xfe\x5e\x36\x2f\x32\x54\xcb\xf0\x3c\x62\xd6\x0b\xd7\xf7\x3e\xe9\x72\xa0\x18\x33\xde\x99\xf2\x28\x15\x3a\xd4\x25\xee\x43\x9a\xda\xb7\x66\x89\x74\x50\xc3\xed\x01\x3f\x5d\xe0\xf5\x1a\x3d\x48\x1e\x81\xc5\x8e\xae\x75\x53\x5f\xa1\x7f\x38\x1e\xeb\x9c\x45\x05\x9a\x89\xc4\x3d\xd0\x6d\x60\x7f\xd8\xf5\x9e\xd2\xe5\x74\xc2\xe7\x11\xa1\x9c\x69\x81\xd4\xdf\x5b\xb7\x87\x7c\x8d\x1e\xc8\xb9\x4d\x12\xe6\xcf\x6c\x1f\xad\x43\xae\xaf\x5f\xdd\xdb\xf4\x21\x45\xbf\x51\x8e\x59\xd1\xd0\x9f\x1b\x49\xbe\x8c\x9e\x46\xe4\x29\x02\x32\x1f\xe0\x57\x19\x26\x76\x9e\x08\x4e\x9a\x8a\xe7\x22\xc7\xbe\x47\x2a\xb9\x3c\x5b\x1b\x93\x91\x4d\x4c\x81\xa1\x8a\x23\x46\x37\x86\x45\x51\x3c\x4f\x2c\x99\xb0\x68\x95\xfa\x9a\xb9\x73\x97\x3a\x4f\x35\xd3\x44\x77\x68\xba\xda\xb1\x7e\x5e\x9e\x0e\x59\x11\xe1\xde\x7c\x57\xbf\x8c\x4a\x5e\xfe\x9f\xa2\x54\x79\x9e\x91\x09\xdb\x7f\xa2\xf6\x09\x9a\x93\x75\x9b\xe7\x39\x71\x77\x1e\xab\x76\x08\x4f\x77\xad\x05\x23\xd9\x06\xd9\x62\x02\x8e\x42\xa5\xd5\x24\x3c\x93\x4b\x6e\xb1\x82\x62\x2b\x1d\x3c\xfc\x99\x38\x89\x11\x75\x36\x48\xca\xe7\x32\x2b\xd0\x7c\xfa\x4f\xbf\x57\xf0\xf0\x57\x9d\xa7\x81\x6d\xf9\x0b\xa5\x49\x9e\x4b\xa3\xd1\x94\x9a\x75\x5d\xe0\x25\xe3\xb9\xb4\xb4\xcc\x0f\xc7\xf6\x75\x56\xbd\x80\xcb\x91\xf6\xf3\x64\x28\x38\x30\xb9\x97\x12\x54\x89\x45\xd4\x93\x2d\x74\xdb\xf6\xb5\x3e\xa0\x4c\xda\xca\x83\xfe\xc7\x83\xa1\x32\x49\xf8\xe0\xb2\x55\xc7\xa6\xc5\x89\x38\x2c\xda\xe6\xb9\xca\x39\x06\xc4\xef\x67\x9b\xed\xe6\x71\x33\xbb\xdb\x3a\xde\xfb\xbb\xe5\xbd\x97\xa3\xe5\xb9\x8e\x32\x96\x9e\x52\x1d\xa7\x30\x4e\x18\x50\x0d\x3c\xa1\x3a\xbe\x6d\xff\x70\x2f\xb5\xdc\x6d\x1b\x42\xcc\xf9\x9b\x18\x4e\x9f\x14\x85\xdb\x30\xe4\x18\x02\xe9\x39\x24\x85\xdf\x33\xb7\xfd\x12\xdb\xd6\x17\x26\x3d\x00\x99\x4f\xc4\x16\xdc\x81\x71\xac\xd0\xae\xd9\x46\x16\x3f\x8a\x3a\xee\x7e\x12\x96\xe9\x4e\xee\x55\x7d\x31\xb4\xec\x28\xe6\xce\xe6\x5d\xc1\x62\x92\xbd\x72\x75\x5f\xdb\xe1\x12\xbc\x68\x5a\x16\xfd\x73\x11\xe2\xe4\xd0\xc9\xb2\x7a\x6a\xe0\x54\x6d\xc9\x0b\x11\xe7\xc8\xe0\xf4\x4d\xee\xe4\xee\x09\xaa\xea\x23\xb4\x28\x92\x86\x26\xab\xb9\xb6\x15\xbc\xfb\xe1\x28\x62\x29\xb1\xda\x66\x51\x99\x7a\xfd\xed\x94\x4a\x29\x12\x1e\x61\x38\x65\x7b\xac\x5a\x69\x61\x58\x6b\x37\x79\x91\x24\x21\xcf\xe6\xa5\x7c\x83\xe5\xc6\x6b\xc1\xf1\x22\x65\x19\xfa\x0e\xcd\x20\x8b\x30\x29\x00\xf4\x3d\x13\x89\x51\x7a\x52\x00\xbb\x45\x65\x93\x06\xa6\x9d\x34\x43\x19\xd7\x90\xe4\xfb\x34\x79\x3c\xdc\xf7\x8a\xac\xdf\xcf\x51\x8e\x8b\x4a\xfd\xb6\x28\x83\x7c\xf7\x38\xff\x7d\x71\xbd\x5d\x2f\xbd\xee\x37\x2f\xb2\x4c\xa3\x6f\x31\xf5\x44\x86\x76\x96\xeb\x9a\x47\xb9\x70\x76\x99\x87\x2e\x8d\x9f\x35\x8f\x48\x43\xac\x77\xab\x88\xca\xd3\xc9\x32\x8d\xbb\xc9\x8c\x23\x77\xe5\xd6\x93\x03\x6f\x6a\x54\x26\x1e\xed\x66\x17\xd1\x50\x85\xe2\x11\x26\x8b\xe0\x17\x56\x47\x8d\x3a\xe7\x7f\xaf\xbe\xc0\xdd\x49\x33\xa5\x3d\x3f\x42\x3b\x7f\x95\xcd\x8b\xa7\x0e\x09\xc9\x5c\x18\x50\x83\xf0\x42\x67\x79\x16\x79\xd8\x81\x2d\xab\x91\xd7\xeb\xfa\x18\x6e\x79\xe0\x70\xff\x09\x15\x1d\xd9\x93\xd7\xb7\x8c\xe0\x14\x2b\xd0\x25\xbc\x21\x6f\xde\xd7\xd8\x8d\xc2\xc6\x06\x29\x8a\x91\x60\xe6\xf8\x31\x48\xf0\x15\x36\x53\x4c\x85\xd0\xe4\x76\xc8\x38\xe8\x7b\x18\x95\x9f\xc2\xb2\x6b\x90\xed\xb8\x4c\x32\x90\x41\x06\x9e\xbd\xfc\xe4\x6c\xe4\x3e\xf9\xd2\xff\xd7\xa9\xdd\xdf\x1a\x88\x3b\xbc\x83\xb6\xb7\xb4\xba\xdb\xe3\xc7\x90\x77\x80\xcb\xa8\xa0\xb0\x27\xc9\x17\x1a\x5f\x63\xe1\x5b\x65\x91\xf7\x53\xef\x76\xfe\x30\x94\xba\xe5\x92\xa5\x06\x43\x49\xb7\xd0\x3d\xd4\x5e\x0f\xc1\xe5\xec\xa5\xc8\x8d\x74\xb1\xa1\xdf\xff\x9c\x8f\xc4\x32\xc6\x1b\x87\xec\x7d\x45\x04\xeb\x75\xe0\x4f\x7e\x99\xa4\x14\xa4\xa6\xaa\xc4\xe7\x43\xf8\xbb\xce\x0a\x5f\x66\x5f\xc2\x7b\x7f\x48\xf8\xcd\x42\xa6\x09\xcb\x4e\x85\x88\x4e\x94\xfd\x04\x38\x19\x7f\x5e\x99\x16\x31\xcb\x42\x46\x0c\xd1\xe2\xf8\xd6\x63\x7a\x3a\x2e\x53\x48\x31\x06\x01\x6f\x50\x5d\x97\x6d\x47\xb8\x67\xdf\x9a\xf1\x18\x6b\x23\xd6\x55\xfd\x9f\xa3\xdc\xed\x4b\xf8\xdc\xa1\xf5\x97\x24\xc4\x94\x0f\xfb\x43\x40\xfb\xc9\x0c\x52\x3e\x54\x2d\x1e\x79\xaa\xb2\x90\x39\xfa\x9d\xd2\x13\x65\x5f\x46\x66\x48\x25\x00\x09\x5c\xca\x4a\xd7\x7b\x78\xb4\x2c\xf2\x27\xad\x54\x49\x81\xde\x8c\x1e\x98\x24\x54\xd9\xb8\x0d\x5d\x0a\x81\x3e\x48\x7b\xdc\x2f\x76\x78\x44\xb6\x13\x3e\x3b\x2e\x95\x89\x30\x69\xe6\x20\x77\x57\x30\xac\xac\x90\xba\x88\x39\x89\xef\x94\x1a\xda\x4d\x4d\xa2\x3a\xd3\x8a\x1f\x69\x74\x21\x4e\xd9\x62\x27\xdb\x3f\x29\x9b\x91\x36\x02\x6e\x43\xed\x31\x85\x29\xa9\x9a\xc3\x81\x60\xc7\x9f\xd3\x26\x05\x1a\x90\xb6\x3e\x36\xdd\xeb\x80\x3c\x90\x4b\x0b\x05\x06\xc2\xee\x16\x57\xab\x47\x47\x74\xcd\x55\x24\x08\x22\xba\x7d\x81\xee\xa1\x54\x6a\x07\x24\xbd\x38\xd8\x7c\x54\x94\x68\xe6\x95\xb9\xea\x43\xa9\xe7\xe7\x11\x3f\x15\xc9\x24\x71\xa7\xf9\xd3\xae\xee\xce\x6a\x8c\xb9\x62\x59\xa2\xa3\xa1\x0c\x3c\x92\x24\x5e\x3c\xad\x14\x53\x54\x92\xdb\x42\x37\xfb\xcf\x51\x36\xe5\x71\x7f\xbe\x7f\x29\x9e\x26\xe8\xf3\xf6\xfe\xc4\x48\x46\xf6\x73\x7b\x5f\x71\xe7\x8e\xf6\xee\x16\xe6\x73\x3d\xad\x92\x6f\x2f\x8a\x42\x84\xe8\x14\x34\x72\x37\xfd\x51\x1b\x53\x74\xaa\x9f\x84\x17\x29\x86\xfa\x3e\x96\x39\x19\x7e\xd4\xfa\xa7\x82\xbe\x50\x4f\xa5\x84\x31\xd6\x07\xec\x16\x9b\x98\x70\xe6\x93\x01\x8d\x23\x8e\xe4\x1b\xab\xd9\x66\xe1\xf1\x0a\x2a\x8e\x13\x49\xf4\xd3\xef\xcd\x30\x5f\x35\x19\xbe\x38\x91\x98\x01\x22\x4f\xb8\xf7\x53\x86\xaf\x18\x27\x40\xb2\x7e\x75\xf5\xcf\x63\xf9\xab\xee\x86\x14\x0c\x5c\xc5\x99\x49\xb8\xa3\xbc\x5c\xeb\x12\x4e\x78\x5b\x15\x6b\xa6\x8a\x13\x6e\xf9\xda\xfb\x08\xa3\x65\xe8\xfa\x26\x49\x81\x1b\xdf\xa1\x29\x2b\x94\xdf\xa4\xcd\x74\xf4\x9c\x29\xe4\x2a\x75\x50\xbd\xf5\x47\xd5\xbd\x42\x57\xfe\xa2\x74\xdf\x24\xc6\xae\x32\x49\x32\x2f\x06\xda\xce\xb1\x50\x13\xd6\xdd\x3f\x5b\x1e\x33\x4d\xf4\x03\xe4\xfd\x2c\xcd\x67\xc5\x9d\x2a\x4f\x12\xe6\x9c\x98\x07\x78\xc7\x99\x33\xfe\xb1\x22\x8a\x11\x1d\x86\x59\xba\x2b\xe8\xe6\xf5\xee\xb8\xaf\xc6\x24\x50\x17\x29\x63\xb8\x2a\x92\x18\x33\x3e\x8e\x98\xa6\x7b\xed\x17\xff\xb1\x2a\x3d\x89\xef\x05\x6d\xd7\x21\xc6\x4b\x15\x2a\x26\x72\x08\x44\xd5\x0f\xb1\x1d\xfe\x45\x0b\x5b\x60\xa2\x03\x33\x17\xbd\x21\xa2\xcb\x83\xac\x90\x53\xea\x13\x5f\x4c\xe1\xa9\xea\xf4\x98\x76\x97\x29\xb7\xb9\x92\x2c\x87\x11\x9e\x6d\xc0\x9d\xc9\x95\x14\x0c\xcd\xda\x7b\xd9\x94\x55\x98\x10\x32\xce\xf0\xc4\xc4\x95\x34\x97\xed\xeb\x93\x3c\x63\x78\xfa\x5b\xb4\xc8\x5c\xc9\x9c\x45\x48\xeb\xbd\x5a\x10\x73\x8a\x88\xb6\x44\x03\x71\xbf\x0c\xbb\x95\x94\x32\x3a\xd1\xfe\x78\x0a\xee\xa9\xdd\xa5\x54\xa2\xb1\x94\x6f\x2f\x7f\xf5\x07\xfd\x53\x53\xd7\xf6\xd1\x52\xf5\xb2\xef\xa2\x89\x45\x00\x3f\xf1\xf7\x1a\xd3\xfa\x75\x43\xe6\xfd\xd5\xf1\xa3\xb7\xd9\x1d\xe9\x8c\xbf\xc0\x48\x8c\x24\x3e\xf0\xb9\xff\x93\x36\x11\xe7\x23\xdc\xca\x18\x74\xa7\x8c\xb1\x4e\xb8\xdd\xf4\xc7\x5c\x59\x57\xa3\xf8\xc9\x71\x80\x13\x55\x90\x92\xbf\x4c\xe5\x37\x1b\x59\xfd\x6c\x37\x1f\x87\xe9\xce\x02\x92\x61\x69\xfa\xfd\xec\x61\x76\xbb\x58\x39\xef\xcc\xff\x1e\x40\xe4\x13\x3d\xe4\x36\xc9\x4b\xf9\x04\x65\x33\x42\x96\x50\xaa\x64\x36\xff\xea\x9c\x56\xd6\xa6\x68\x46\x97\xba\xde\x76\x43\x5f\x58\x47\x51\x81\x68\xa7\x6d\xbf\x7c\xbd\xbd\xd0\x7c\x81\x0e\x1e\x3d\x85\x8e\xb4\x41\x90\x90\x97\x4a\x68\xc7\x51\x37\x1d\x19\x86\xa5\x7c\x15\xbc\x8f\x42\x1e\x93\xdb\x30\x43\xb4\xec\x37\xb2\x6a\x87\xfb\x98\xe6\x45\xae\x46\x05\xf0\xc3\xd7\xd2\xdc\x58\x74\x54\x3a\xa4\x26\x2b\x77\xeb\xde\x78\xeb\x56\x80\x76\x52\xbf\xf4\x1e\xea\x6e\x20\xaf\xcc\xb5\x88\x23\x4b\xa0\x2b\x3b\x77\x41\x88\xd1\xcf\x09\x48\x4d\xe1\x94\xd2\xcb\x86\xb6\xd4\x9b\x23\xf8\x3d\x5f\xc7\x11\xc7\xbd\xae\xab\x8d\xfc\xf0\x25\x38\xa1\x31\x06\x0c\x1d\xba\x0c\x95\x17\x3b\x1b\xbf\x69\xac\xa9\xd6\x73\x2f\x7f\xc2\x29\x40\xf0\x59\x32\xe6\xd3\x65\x37\xbe\x69\xc2\x2c\x7a\x5e\xd7\x0f\x33\x0f\xdb\xd1\x49\x41\x81\x05\x24\x17\xfd\xe5\x62\x25\xcc\xed\x70\x3a\x55\x12\xe9\x2f\x88\x53\xd6\x25\x99\x5c\x5b\x16\x39\x1d\x5d\x13\x4a\x5f\x96\xf6\xa1\xf6\xf5\xfe\xe3\x9f\xce\x8c\x70\x64\x9c\x97\x79\xcf\x5c\xb7\x3c\x8a\x45\xe2\xb5\x59\x9e\xab\x3d\x41\xd8\x27\x7d\x18\xa1\x8f\xa4\xf1\xd8\xb4\x4d\x7d\xe5\x19\xb0\x27\x3f\x9b\xf3\x24\x73\x71\x4a\x2d\x0f\x95\x0c\xde\x89\xce\x65\x8e\xd5\xc7\xeb\x3f\xe7\xbc\x32\x0b\xd9\xec\x3e\xc6\x52\xc4\x5c\xe7\x2a\x45\x81\xf2\x9b\xd9\x7c\xf3\xb8\xda\xe6\xe1\xef\x86\xc7\x8e\x7e\xf9\x0d\x9a\xae\x1c\xd5\x6a\xfa\x74\xbe\x2e\x20\xc2\x2d\x76\xfd\xb3\x39\xee\x43\x97\xd0\xa8\x4d\x3e\xac\xbf\xf3\x0d\x4a\xa6\x88\x85\x5f\x2d\x9e\x9e\x37\x33\x14\x10\x9b\x94\xb9\x68\x2d\x29\x49\xed\x28\xd7\xbd\xbd\x1f\x88\xaf\xc7\x23\x60\x72\xd2\x2c\xe9\x4e\x4e\x5f\x6f\xa5\x22\x43\xec\xb8\x27\x18\x89\x95\x84\x5e\x0a\xba\x1e\x90\x0c\x5f\x0e\xe1\x6b\x80\x04\xb1\x5c\x9b\xe5\x62\xc5\xbc\xc8\x99\x7f\x4e\x9b\xe6\xb8\xf3\xdc\xcf\xfe\x78\x5a\xac\x7e\x2c\x96\xa1\x01\x78\xea\x80\xb6\x8b\x43\xad\x5f\x83\xfd\xc8\x78\xee\xb2\x49\x69\x3c\xfd\x8f\x81\x45\x6e\xa2\xc4\x72\x67\x72\xf5\x87\x7f\x65\xe0\xd7\xa6\x1e\xc5\x69\x7c\xc7\x94\xa8\xd0\x5a\xe8\xae\xca\xee\x20\x49\x01\x60\xdd\xd5\xcd\xa0\x2a\x7f\xbc\x48\x0c\x4b\x74\xec\x1c\xe5\xbb\x52\xf7\x16\xd1\x06\x53\x6d\x84\xf8\x26\x74\xce\x78\x18\x0c\x67\x02\x09\x4b\xf0\x08\x5b\x5c\x6f\x9f\x9e\x57\xf3\x6f\xb3\xf5\x62\x3d\x8a\xa4\x19\x0e\x0c\x31\xcf\xff\x5c\x7f\x7b\x0e\x7f\xb3\xb2\x60\x64\x39\xbd\xf5\x3e\xb0\xdc\xc1\xbd\xfc\x85\xdf\x74\x14\xac\x33\x22\x4f\x7d\xc5\xe6\xbf\xeb\x63\x53\xc9\x1d\xae\x32\xd7\x1a\x8b\x02\xe7\xd3\x53\xfd\x73\x92\x73\x30\x49\xc4\x12\x16\xf4\xcf\x56\x2d\x3b\x59\x71\x63\x73\xc6\x24\x59\x8e\xb4\x86\xab\x6f\xc3\xb9\x6a\x92\x4c\x1a\x47\x3c\x8a\xd3\x26\x10\x06\x8c\x07\x21\xc9\x53\x54\x4b\x99\x6d\x36\xab\xed\xe2\x8f\xa7\xbb\xc7\xd5\xec\x2a\xb0\x1b\x98\xc4\x24\x98\x13\x3c\x1c\x3f\xcb\x56\x99\x34\x07\x18\x82\x74\xe6\xf5\xae\x37\x4d\x1a\xb9\xbb\x69\xea\x3d\x2a\x09\x7d\x72\xa1\x36\x18\x32\x9b\x2f\x1e\xb7\xc8\x8b\xe2\x97\x93\x49\x21\xc2\x5c\xf7\x76\x7b\x68\x6a\xe4\x65\x3d\x57\x7f\xe5\x26\x8b\xe8\xc3\x04\x51\xe9\xcf\xe2\xd4\x43\x8e\x53\x7f\xad\x30\x88\xe6\xee\x0d\xa8\x7f\x8d\x19\xce\xb8\xc9\x6c\x4a\x72\x05\xbb\xba\x05\x2f\x6e\xfa\x97\xdc\x13\x94\x3f\x3c\x99\xd7\x26\x8f\x48\xd1\xc5\x96\x4d\x4b\x95\xff\x94\x79\x5e\x56\x81\x21\x99\x9b\x22\x4a\xb5\x3e\xe5\x52\x9c\x06\xa0\x57\x64\xe7\xa6\x10\x56\xf9\x20\xd1\xb1\x7d\xdd\x94\x7b\xb8\xd9\xd5\x75\x33\x3f\xd3\x92\xe2\xa6\xb0\x31\x62\x1e\xec\xae\x3c\x3c\xc9\x8f\xb2\x7a\xb9\xae\x8f\x6a\xd7\xb4\x83\xa8\x93\x91\xcc\x62\xbc\xa2\xdc\xcb\x17\xb8\x08\x66\x30\x32\xcd\x4c\x10\xb0\xaa\x4e\xe3\x7a\x29\xf8\xc5\xa3\xb1\xb5\xed\x6f\x91\x53\xae\xd1\xc8\x4e\x3e\xda\xf5\xa7\xb9\x4e\x23\x15\x4d\x02\xd4\x59\x3d\x50\xf9\xd3\xe7\x39\x6a\x23\x8d\x41\xf3\xe9\x06\xb5\x7d\x08\x66\xe6\xd6\x20\x9c\xcb\x7c\xb8\x8b\x54\x42\x0a\x0a\xdf\x6f\xfd\x6e\x6c\x14\x44\x58\x13\x54\x3b\xf6\xc3\x4f\x54\xf2\x5c\x6f\x9d\xe7\xd9\x30\x0a\x87\x2c\x84\x9f\xeb\xf3\x73\x63\x62\x85\x20\x9d\x83\x4b\xba\x3b\xab\xed\x62\x08\xd2\x98\x34\x41\xaf\xff\x45\x36\xb2\xea\x80\x58\x44\x5c\x80\x77\x59\x79\x05\x4c\xff\xe4\x46\x67\x58\x69\xe0\x2a\xb3\x87\x51\x00\x63\x8c\xc1\x12\x9f\xab\xbb\xeb\xd9\x45\x2d\xb1\xa1\x4f\xe3\xae\x01\xc6\xad\xd7\x2f\xff\xf5\xbc\xbe\x76\xef\x75\x29\x35\x62\xac\x64\x58\xec\xbf\xde\xcc\x36\xcf\xeb\xed\xf5\x62\x76\xb7\xfd\x31\x5b\x6e\xb6\xf3\xc7\x87\x9b\xe5\xea\x1e\x4f\x3e\xff\xa0\xd6\x64\x88\x93\xa5\xb0\xd5\x0f\xd9\xf4\x6f\xf7\xf1\xdb\x17\xc8\x09\x88\x84\x44\xd2\x81\xfa\x00\x95\x0f\xa5\x8c\x41\xad\x5f\x26\x0f\xe9\xed\xce\x57\x3b\x44\x05\x31\x21\x78\x10\x3d\xd5\x24\x39\xbf\x64\xf8\x86\x10\x99\x54\x0c\x49\xb3\x1c\x3f\xc0\xb8\xef\x09\x5f\xeb\x37\x61\x60\xac\xc0\xec\xde\x7b\xbd\xfb\x39\x70\xe4\x81\x71\x29\x8a\x13\xa3\xf0\x05\x92\x62\x0e\x4c\x31\xad\x43\xf6\x79\xbd\xab\x27\xeb\x1a\x98\x02\x24\x66\xba\xbd\x7e\x1a\x55\x41\x00\xe7\x12\xb7\xde\x3d\x25\xee\xaf\x6a\xd9\x98\x91\x0d\x0d\x3c\x11\x48\xf7\x73\xf3\xbc\x79\x5e\x2d\xb6\xf7\x0b\xc7\xd8\x17\xee\x90\x29\x71\x12\xe8\xf6\x1e\x02\x9e\x35\xff\x4f\x3e\x22\xf0\x1c\x30\xef\x74\xd5\x94\xb2\x82\x5f\xc3\x7d\x15\x38\x24\x30\x28\xde\x76\x9b\xcf\xb2\xba\x7b\xde\x4c\xde\x58\xc4\x05\x46\x56\x10\x8c\xb9\x9d\x3f\x6f\x1e\x6f\x6e\xfc\x5d\x62\x6b\x45\x74\x8a\x70\x4c\x10\x8e\xae\x53\x92\x90\x9a\x0c\x1d\x9f\xae\x70\x7d\x50\x84\xf7\xd9\x66\xfe\xc9\xff\x0f\x77\xa5\xa0\xcd\x0b\xd6\x1a\x75\x65\x85\x5e\xff\x45\x90\x0c\xa4\x9c\xd6\x29\xa5\xfe\xe4\xc8\xeb\x84\x34\x89\x30\x61\xf1\x04\xcd\x01\xba\xa3\xdc\x4d\x30\x96\x90\x02\x55\x62\xb9\xeb\xa0\x25\xf6\xb6\xbf\xe2\xa5\x80\xd4\x82\x0e\xde\x3e\x3d\x5e\x88\x69\x41\x96\xb0\xd8\xd5\x86\x5d\x7d\x20\x3f\xe2\x68\xae\x64\x85\x44\x72\xfc\xc5\xe6\x1b\xc8\x5d\xc8\xde\x42\x1e\x5b\x8c\xf8\x6e\xd5\x47\x33\x2d\xfb\x87\xa2\xc8\xd1\xcc\xc0\xec\xdf\x0a\xde\x40\xee\x1e\xdf\xa0\x69\x4a\x33\xed\x29\x73\xd2\xf9\x06\xd2\x73\x5b\x81\x3e\x36\x6d\xf9\x76\x66\xd0\x85\x5d\x72\x7c\x35\x64\x41\x5b\x04\x59\x2b\x1d\x80\x73\x7f\x1e\xe8\x04\x09\x80\x68\x20\x79\x38\xec\x3e\x7e\xc8\xc0\x96\x03\x4a\x50\xe1\xb0\x34\xe6\xd1\x5a\xe4\x96\xb9\x98\xf8\xfe\x2a\x11\x06\x4a\x80\x88\x5d\x60\x99\x85\x3b\x27\xc6\x04\x45\x90\xe7\xf5\xf5\x89\xcd\x9f\x83\x32\xc4\x1f\xd6\x35\x1f\x8b\x5f\xa0\x7f\xbb\x70\x5e\x82\x4e\x23\xcc\xdc\xd9\x93\x6e\x5f\x98\x0b\x3a\xe5\x69\x50\x3d\x73\x8b\xe6\x7c\xc9\x68\xa0\xaa\xe4\x86\xb8\xe3\x97\xda\xa3\x72\xc0\x70\x16\x3b\x2f\xfd\x56\x76\xd0\x5b\x4a\xbe\x45\x65\x18\xad\xf7\xd4\x6c\x3f\xea\x33\xcd\x5e\x0e\x90\x2b\x70\x5b\xd8\xfa\xa8\x1c\xc0\xff\xf1\x00\xd3\x25\x07\x92\x30\xed\x2d\x74\xc7\xc3\x4c\x6b\x14\xbc\x0e\xab\xfc\xf2\x41\x09\xa0\x93\x6c\x28\x51\xdf\x04\x8a\xf2\xf1\x27\x05\x4d\xb2\x67\xf3\xcd\xe3\x38\x80\x63\x23\x91\x3b\x55\x1d\x8c\xe0\x1f\xc7\xa8\x2e\xdf\xa9\x48\x33\x9f\x68\x2c\xed\xb9\xe6\x2b\xb7\x2c\x97\x18\x3b\xf0\xa3\xff\xc9\x03\x5b\x9e\xc4\xda\x81\x6d\xee\xa4\x4b\x53\xd5\xcd\xa6\x01\x98\x70\x45\xfb\xfe\x32\x8a\x07\x1c\x06\x03\x92\xef\xb3\xb2\x79\x2b\x44\x1e\xfb\x40\xff\x2d\x54\xd1\xec\x12\xfa\xc6\x0a\xc9\xb0\xb6\x60\xd1\x68\x1e\x5d\x90\x26\xb8\x54\xf3\x60\x85\xa6\xe5\xd3\x3b\xfc\x13\xea\x30\x1b\xe7\x80\x7c\x82\xb4\x4b\x92\xc6\xf5\xf6\x69\xb5\xc0\x10\xdf\x66\x79\xbf\x58\x6f\x66\xf7\x4f\x93\xa7\x88\x41\xa1\xdd\xa6\xeb\x50\xf7\x6c\x93\xd4\x5a\xe7\xb6\xcf\xc7\x5f\x63\x3c\xd6\x29\x97\x38\x86\x9b\xc7\xb5\x33\xde\x96\x95\x86\xaa\x2b\xdf\x60\xac\xf1\xcd\x6d\x9a\x14\x81\xe8\xbf\x91\xda\xd5\x93\x4e\x9e\x25\xcd\x53\x8c\xe5\xff\x28\x2b\x55\x76\x27\x09\x14\x6e\x53\x1d\x60\xb7\xae\xf4\xa7\xf7\x49\x86\x41\x23\x9b\x5a\x4b\x75\x37\x8f\x77\x8f\xab\xed\xd5\xdd\x6c\xfe\xbb\x6f\xca\xa2\x04\xeb\x1a\x4c\xd9\x4a\x45\xa6\xe9\x4d\xdd\xc0\xdb\xe9\xe2\x3c\x49\x11\x68\xad\x8e\x1f\xb3\xea\x1c\xa8\x7f\x61\xa5\xdb\x3c\xb1\x88\xc1\xba\x5d\xcd\x1e\x3c\x48\xc0\x16\x9c\xe1\xde\xd8\x3a\x1e\x49\x24\xfa\xba\xad\x6b\x67\x05\x8e\xe9\x68\x6c\x91\x11\x45\x54\xff\x56\xd0\xb5\x57\x1f\x73\xd9\xc1\x4b\xdd\x7c\x8c\xf6\x73\x2b\x73\x9b\x16\x3e\x86\xf8\x54\xef\x4a\x3d\x49\x45\x59\xed\x14\x71\xde\xa1\x74\x62\xf7\xed\x55\x5d\xd5\x93\xe1\xd5\x05\xe9\x6a\xf4\x1b\xde\x27\x55\xaa\xa3\x29\x37\xc8\xf0\x5b\xc3\x25\x56\xa2\xbc\x20\x5d\xce\x07\x0a\x93\xfa\xd7\x30\xc6\x58\x07\xae\x5e\x54\xba\xf9\x38\x74\x17\xb5\xa2\xb9\x35\x40\xd4\x32\x7e\x93\x38\x29\x29\x4e\xfa\x59\xda\x99\x5d\x62\xfa\x00\xba\x84\xa9\x6e\xc0\x64\x2a\x02\x93\x8c\x42\xba\xeb\xda\x76\xef\xb2\x81\xef\x44\x92\xe6\x8a\x66\x1c\xdc\xc0\xf7\xd6\x05\x23\xf5\xdd\xdd\x0e\x74\x77\xff\xfb\x6a\x32\x54\x36\x22\xec\xd1\x0b\x74\x14\xb4\x99\x75\x17\x6c\x03\x6b\x55\x6c\x89\xa8\xa9\x3e\xdc\x05\x3d\x0d\x11\x45\x11\x09\xbe\x3e\xc0\xfb\x7c\x17\xbc\xd2\xe1\x13\x8b\x28\xd2\x96\x19\xc7\x7c\xda\x42\xb3\xa9\xef\xe1\x13\xf8\x91\x88\x98\xd4\x58\x8d\xff\x2a\xdb\xd7\x0b\xb8\xc2\xbf\xa2\xb3\x9f\xdc\x8d\xf3\x20\x13\xdb\x3f\xe0\x17\x0c\x09\x22\xe2\x49\x92\xa4\x5e\x29\xf5\x0d\x76\xf5\x61\x82\x10\x4e\xe3\xd3\x34\xe9\xbb\x13\x31\x35\xb9\x8b\x57\xc7\x8f\xe9\xed\x14\xc4\x41\x79\x0d\x47\x65\xac\xfe\x77\xd1\x5e\x13\x91\x48\x49\x12\xea\x79\xf3\xb8\x7a\xf0\x83\x2c\x8a\x1c\xf9\xc1\x7e\x94\xed\xeb\x49\xdc\x55\x44\x31\x4b\xb5\x2b\xe6\x44\xff\xee\xe8\x98\xe4\x2f\xbe\xe6\x3f\xc6\xcf\x17\x0b\xa6\x12\x1f\xdc\x24\xb9\x8d\xa1\x7f\x3e\xe9\x9d\x70\xf2\x79\xfb\x7d\xd2\xaf\xdc\xf1\x83\x27\x29\x45\xa2\x09\x20\xe0\x54\xbe\x3f\x4d\x99\x8a\x28\xe3\x11\x6e\xe1\x07\xd9\x74\x15\x34\x5b\xb6\x3d\x05\x4d\x45\x94\xc5\x0a\xd5\x78\x02\x99\xe6\xf5\xc6\x36\xf5\x5e\x8f\xf6\x5a\x11\x65\x45\x8c\xa1\xa0\x57\xd9\x98\xb9\x3c\x04\xfa\x55\xd7\x9c\x0b\x8d\x20\xf4\x5b\xe8\xee\x3f\x16\xb2\xa9\x4e\xba\x7f\x22\xca\xf3\x38\xb5\x03\xbf\x09\x8c\x27\x39\x98\xce\x8c\x22\x49\x98\xab\x1e\x3a\x89\xef\xce\x4f\xc8\x32\x11\x15\x59\x8e\x71\xc2\x3b\x68\x75\xfd\x06\xbf\x30\xf3\xea\xdb\xb4\xc4\x8f\x54\xea\x7a\x51\x19\x4c\x18\xbd\x78\xda\x7a\x11\x15\x20\x08\xfa\x78\x82\x08\x86\x02\x36\x11\xc9\x58\x66\x0e\x69\xbb\xae\x77\xc3\x8a\x39\x11\xc9\x8c\xa5\x21\x0c\xf1\x15\xf9\xc2\x49\x7c\xe7\x2c\x3a\x21\x22\x25\xf3\xe4\x54\x38\x44\x18\x48\x68\xb6\xd5\x71\x0f\xcd\x49\xcb\x41\x44\x4a\xe5\x08\xa0\xbd\xad\xe5\x6e\x35\x84\xdc\x89\x48\x47\xc4\x7e\x88\xba\x88\xd5\xcf\x28\xf1\x0d\x46\x48\x13\x7b\xa2\x98\x53\x00\x62\x58\xcc\x20\x22\x13\x1b\xa4\xac\x19\xbb\x73\xfd\x7b\x10\xdf\xfc\xff\xa5\x4f\xf7\x8f\xf3\xb0\x9b\x88\x8c\x25\xb2\x98\x90\x84\xbc\xaa\x9b\xa6\x7e\xa7\xc7\xf1\x7c\x24\xe3\xe9\x6c\xf3\x24\xca\x3d\xd2\x89\xd2\x2a\x74\xda\x0c\x59\x80\x3f\xd9\x75\xac\xb4\xa4\xe8\xe9\x64\xff\xc6\xb7\x66\x11\x63\x98\xc3\x9e\x3d\x6c\xd6\xdb\xcd\xe3\x76\xfe\x78\x77\xb7\x98\x6f\xb6\x6c\xf6\xb0\xf9\xb6\xbc\x73\xa5\xda\x82\x45\x82\x8a\x80\x1d\x41\xc3\xa7\xdc\x0c\x82\x45\x69\x86\xd2\x93\xd7\x75\x28\xb3\xfe\xca\xe5\x15\x2c\xca\xb4\xb3\xaf\x7b\xaf\x16\xe5\x50\x66\xd5\xc7\xa6\x9e\x55\x1f\x7c\xfa\xb4\x92\x08\xb6\x11\x82\x21\x3f\xa0\xf9\x2e\x8f\xbb\xae\xfd\x06\xbb\x03\x9c\x11\xc9\xb9\x6b\x58\x16\x03\x09\x2a\x60\xf8\xa2\xec\x3e\x5c\x6d\x9f\xb3\x85\x5c\x37\x9e\x48\x66\x07\xac\x7c\xd3\x51\x3d\xaf\xaf\x14\x8c\x17\x31\x11\x2f\x55\x55\x7d\xac\x34\x22\x69\x9e\x57\x4b\x7f\xcb\x7e\x42\x27\x83\xb0\x57\xdb\x2f\x9b\x65\xe5\x94\xa9\x26\xaf\x16\x67\x2a\x0a\x8c\x86\xcb\xf9\xe3\x30\x0e\x2e\x58\xac\x6c\x9c\xfa\x19\x80\x4f\x7f\x3d\x66\x42\x12\x2c\x06\x8e\xe8\x80\xde\x0d\x5e\xfc\x72\x52\xb1\x7f\x2b\x88\xd5\x5f\x5b\x60\xce\xe7\x20\x1b\x0d\xbb\xdb\xff\xa2\x13\x55\x1f\xbb\x01\xd5\xaa\x60\x09\xe4\xee\xac\xa7\x68\x2c\x0b\xdc\x7b\x82\xa5\x11\x99\xf5\x2d\x10\x2e\xc6\xff\x99\x51\xfa\xd8\xe5\x8c\x36\x44\x3b\x3b\x79\xf3\x34\x06\x4a\x1b\xba\xe5\x36\xab\x0c\x71\x14\x7e\x32\xc1\xd2\x34\xf2\x84\xe0\x8f\xcd\x8b\xac\xca\x96\x78\x4d\xd6\xe5\x7f\x21\xfc\x70\x91\x44\x14\x87\x92\x41\xaa\xf0\x92\x2d\x21\x58\x0a\x12\x63\x93\xea\xf8\xf1\xd8\x78\x16\x70\x7f\x9b\x4c\xe5\xc8\x74\x39\x74\x1d\x1d\x61\xbf\x3c\x4c\xc6\x3f\x67\x51\xc4\x08\x97\xd4\x7b\x81\xbd\x3d\x0b\x72\xbf\x86\xd3\x47\xcc\xb9\x49\x1d\x50\xee\x06\x46\xda\x4d\x9f\xac\x8c\x3c\xcf\x20\xf5\xfb\xa1\xdf\x8d\xae\x3e\xc6\x10\xbb\xc9\x25\x3a\xc3\x5a\x50\xf3\x56\x1e\x46\x9e\x5e\xdf\xa4\x63\x57\x48\x5f\x76\x9f\x8a\xa3\xbb\xce\x05\x23\x95\xae\xae\x7e\x79\xe9\x4d\xf7\x97\x11\xfb\x86\xef\x54\x40\x91\x07\xe6\xba\x1f\x50\xde\xd4\xcd\xf5\xb2\x2a\xbb\xc9\x18\x17\x32\xc7\x82\x9c\x07\xb9\x87\x69\x5c\xd2\x75\x91\x51\x8c\xa8\xf1\xde\x25\xdc\xe2\x5a\x1b\x26\x6b\x7c\x27\x96\x4b\xc7\x43\xbe\x9c\x3f\xe2\x24\xcc\xfc\xb3\xa8\x18\xf2\x41\xd1\xcf\xa1\x6c\x6b\x73\x06\x97\x1a\x3f\x96\x92\x84\x54\xa7\xd2\x93\xbb\x5a\x56\xe3\x2c\xfc\xa4\x37\x28\x3c\x74\xae\x8e\x2f\x54\x02\xfb\x58\xc1\x55\x43\x4c\xfe\xae\x8b\xb1\xc2\x52\xdd\xaf\x59\x76\xb0\x1f\x22\x37\xd8\x78\xa0\x59\xf8\x67\xb4\x0e\x41\x00\x02\xf3\x66\xf7\x61\xe3\x85\x4c\x20\x70\x5e\x12\x9c\xfe\x2b\x34\xae\x60\x60\x0a\x9c\x30\xd7\xd0\x6a\xd9\xa0\xf8\xf6\xe9\x90\x66\x16\x0a\xa4\x62\x81\xca\xdc\x36\x67\x5c\x00\x82\x47\x11\x89\x5f\xd3\xde\xb1\x6d\x3f\xf6\xaa\xde\x0d\x7d\x22\xc1\x23\x16\xa3\x45\xd8\x4c\xd0\xf7\x17\x03\xff\x82\x47\xc2\xe0\x9e\x84\x55\x69\x6d\xf9\xd2\x7a\xa2\xf5\x4f\xba\x27\xba\x20\x48\x7d\x6f\x9a\x5f\xc9\x2a\x88\x3f\x09\x1e\x99\x02\x69\x17\x65\xdb\x42\xd3\x2d\xfe\x73\x81\xd0\x51\x70\x16\xa5\x28\x7e\xe6\x8b\x65\xfe\xe6\xfe\xc7\x19\x13\xc6\xed\xd4\x57\x2f\xbf\x3e\xaf\x6d\x16\x9c\xc5\x29\x42\xc7\x1e\xbe\x0d\x79\xae\x04\x67\x69\x22\xa4\x2f\x91\x73\x70\x28\x82\xb4\xba\x25\x73\xb2\xd6\x39\xcb\x44\xec\x53\xd9\xaf\xf5\xfb\x06\x7e\x75\xe1\x36\x39\xcd\x70\xcf\xc7\x72\xce\x73\x23\x38\x67\x1a\xd1\xaf\xaf\xb2\x1d\x05\x9a\x87\x21\x1b\xc1\x79\x96\x51\xe5\x65\xfd\x12\x68\x6d\x66\xe6\x53\x1f\x26\x5c\x65\x74\x1c\x92\x0e\x58\xf5\x30\x1a\x28\x2e\x99\xc6\x45\xb0\x3b\x02\xc6\xff\x46\x83\xc0\x75\x86\xa6\x8d\x91\xf5\xfd\x90\x68\x40\x70\x11\xa5\x86\x0f\xe6\x4d\xbf\x13\xfc\xb1\xbc\xbe\x94\x26\x11\x5c\xa4\x31\x06\x2d\x30\x7f\xe8\x11\xc1\x82\x0b\x19\xa5\xc4\x45\xdb\x75\xf5\x3f\x8f\xe0\xeb\x13\x05\x4f\x0b\x2a\xd6\xf8\x08\x55\x6f\x82\xa7\x0a\x10\xcd\xdb\x9b\xc6\xf2\xd8\x84\xbe\x59\xce\x30\xf5\x7c\x75\xfc\xb8\x59\x6f\x3e\x0d\x59\x8e\x9f\x28\xcb\x49\xce\xeb\x05\xc3\x28\x5d\xd9\x1d\xcd\x80\x0b\x7a\xda\x59\x65\x96\x48\xa3\x1e\xea\xee\x5f\x03\xae\xab\xf1\x9c\xcb\x85\x55\x6e\xc6\xf8\xe5\x31\x99\x6b\x32\x89\x33\x97\xd8\xe8\x5d\xba\xf1\xaf\xc8\x8c\x63\xec\x41\x96\xcd\x75\x53\x1f\x48\x44\x6c\x3a\x5b\x65\x61\x33\x12\x28\x44\xfc\x09\x9d\xbe\x97\x9f\x5a\xe5\x09\x7a\xa7\x5d\xb9\x87\xb5\x3e\xf9\x2d\xdc\xa4\x0c\x94\x27\x08\x7b\xdb\x78\xd3\x7c\x58\x49\xe6\x7a\x42\x1e\x79\xb5\x51\xd7\xc1\x93\x4a\x7c\x7d\xd8\x70\xd0\x92\x11\x4c\xe6\xad\xfe\x09\x33\x94\x12\xbd\x54\xa1\x21\x38\x58\x83\x92\xea\x0d\xf4\xae\x4d\x83\x04\xd8\x5f\x19\xe3\x97\x65\xef\x04\xb7\xa9\x44\x6a\xd4\x7a\xf7\xb1\x3f\x84\x03\x8d\x5b\x9d\xa3\xdb\xfd\x43\x56\xfa\xc4\x9c\x2e\xb8\x85\x02\x13\x83\x3b\xb0\x5d\x91\x8e\x5f\x5b\x44\x5c\xe2\x31\x42\x7b\x9b\x3f\xa6\xcf\x96\xbd\x88\x12\x09\xae\xc0\xe1\x61\xc8\x2d\x3d\x7a\x43\xc1\x22\x8e\xeb\xf6\x76\x76\xbf\x78\x9a\x3d\xaf\xbd\x28\x54\xdf\x92\x62\x2d\x83\xf7\xce\x9c\x88\xe1\x25\x6d\x5c\x21\x58\x9c\xe2\x69\x85\xe7\x69\xf7\x5e\x6f\x9a\x23\xb2\xaa\x35\xc1\x4f\xec\x4d\x1f\x4a\x30\xf6\xa7\xd9\xba\x9f\xd2\x55\xe7\x25\x91\x7c\x97\xdc\x22\x9a\x67\xf3\xda\xd4\xef\xed\xb2\xa2\xea\xdf\x23\x4a\x68\x0f\xde\x8c\x15\x3c\x26\x71\x2d\x5d\xee\xe5\xee\xa6\xf9\x82\xaa\x51\x08\x66\x20\x76\x29\x7b\x64\xfb\xfd\x7b\x6b\x50\xf0\x84\x79\x91\xba\xcd\x2f\x5d\x4f\xf2\x23\x42\xf0\x94\x3c\x99\xb6\x37\x0b\x06\x14\x25\x42\xf0\x3c\xc2\x2a\x18\xe8\xa7\xff\x80\xfe\x5f\x08\x2e\x39\xee\xc4\xc7\x4a\x79\x4e\x96\xf1\x30\x0a\x6e\x1c\x1d\x60\x43\xed\xed\xe2\xd7\xe1\x93\xf7\x12\x02\x32\xeb\x7f\xc6\xeb\x63\xfa\x48\x86\xef\x93\xa5\xfa\x44\x32\x82\xd0\xb3\x4b\x9b\x83\x10\x16\x22\x87\x94\x72\x74\x54\x3a\xb0\xe4\xf8\x49\x2c\x92\x5c\xea\x93\xe6\xd5\x64\x38\xd2\x2c\x22\x91\xe2\x7e\x88\xc7\x62\x44\x42\xa4\x4a\x23\x40\x6c\x2f\x7f\x5d\xbb\xa2\xe7\xa7\x10\xc8\x10\x29\x10\xbb\x1e\xe2\x17\x7e\x95\xfb\xe3\x9e\xd0\xa3\x3f\xca\xca\xd4\xef\x93\xdf\xc9\x78\x8e\x36\xa0\xe9\x50\x9a\x67\xf8\x2d\xf3\x71\x5c\x73\xe4\xfa\x7b\x59\xc5\xff\xe3\x6f\x93\x12\xd3\xde\xd3\x62\xb3\x58\xf9\x07\xc9\x64\xe4\x19\xbd\xef\xee\xbe\x93\xc8\x56\x1c\x1a\x35\x89\x59\x04\x3f\xfa\xc1\xe3\xdd\xa9\x76\x7d\xfc\x98\x79\xc4\x20\xf2\xe7\xb3\xd4\xaf\x9f\x0b\x09\x0b\x91\xf3\x14\xe3\xd6\x65\x3b\x97\x7b\x7f\xfc\x88\x3c\x87\x2c\x71\x1b\xe4\xae\xd6\x3f\x31\xb2\x55\x23\x1d\x81\xef\xa1\x8b\x3c\x1e\x94\x4c\xa0\x95\x38\xf2\xe3\x44\xc1\x0a\x1c\x2d\x7f\x76\x8f\x7f\xb8\xe0\x05\x56\x42\xec\x03\x62\xeb\xc4\x66\x2d\x44\x91\x92\xa8\xd5\x0e\xf3\x77\x0f\xf5\xfb\x65\x51\x02\x21\x0a\x9d\xa0\x56\x7d\xdf\xd1\xd3\x49\x8f\x7f\x48\xca\xc2\xc3\x1f\x97\xad\xdf\xb1\x3c\x24\x73\xb0\xb0\x25\x64\x48\x44\xec\x94\xba\x1f\xed\xe4\x3e\x8a\x81\x33\x57\xde\x65\x83\xf1\xd4\x33\xd2\xee\xf3\x30\x8f\x30\x91\x15\xf2\x84\x23\x35\x57\x10\xc6\xc7\x14\xd2\x21\xf3\xbb\xad\x91\x9d\xdc\x2a\xa8\xc0\x96\xc3\xc4\xed\x68\x9d\x18\xcd\xb0\xcc\xc0\x39\x5d\x0e\x36\xef\x45\x15\xfd\x5d\x6d\x4e\x52\x5e\x2d\x74\x87\xa3\x3a\x34\xbd\xa3\x38\x7e\x11\x5b\x24\x9c\x3b\x7f\x71\x3e\x2d\xd9\x12\xc2\x5a\x4d\xd5\xa0\xc6\x60\x58\xbc\xff\xb8\xd5\xb1\x9d\xd7\x95\x71\xea\xba\x5f\x3a\x72\x71\x94\x47\xc8\xae\x7c\xbf\x7c\xd8\x2e\x1f\xbe\x2f\xd6\x9b\xfb\xc5\xc3\x66\xbb\x9c\x3f\x3a\xf5\xcc\xcd\x8f\xc7\xed\xd3\xe3\xf3\xc3\xb5\x43\x16\xf4\x97\x30\x36\xcc\xec\x4d\x99\x6a\x2f\x9e\xe2\x71\x64\x25\x3a\xa1\xe6\xd2\xe9\x19\x33\x4e\x12\xc4\x8e\x79\x0c\x49\x74\xda\x41\x78\x30\x66\x79\x8a\x90\x3e\xa8\xcc\xa2\x7b\xbd\x0d\xdf\x25\x66\x5a\xfa\xd8\xf5\x62\x0f\xcd\x0b\x54\xfa\xc3\x6f\x6d\x17\x4f\xd8\x98\x99\xff\x9f\xb2\x2f\x69\x6e\x1c\xc7\xb6\xfe\x3b\xb5\xe8\x05\x49\x0c\x24\x97\xb2\x2c\xa7\xd5\xe9\x41\x6d\xc9\x99\xdd\x5f\xc7\x0b\x05\x86\x0b\x9b\x2f\x29\x52\x45\x52\x1e\xea\xd7\x7f\xc1\x0b\x80\x93\x28\x67\xbd\x4d\x65\x85\x01\x71\x00\x31\xdc\xe1\xdc\x73\x88\xb4\x7c\x94\x85\x7e\xcf\x74\xf3\x6a\xc9\x42\xfd\x05\xdb\x31\x8d\xec\xea\xc5\x30\x67\x5f\x42\x47\x28\xe1\x49\x4c\x7c\x28\x64\xf1\x91\x41\x6d\x6b\x17\xbb\x0f\x4a\x09\x57\x08\xf9\xd9\x7d\xff\xf7\xd0\x00\xa5\x44\x59\x16\xda\x65\xf5\x59\x37\x22\xdf\xfe\x3a\xf9\xba\x54\x42\x29\x8d\x03\x47\x58\xbd\x13\xc5\x2f\x44\x9e\xfb\x26\x43\x71\x16\xdd\x2e\x9e\xae\x97\x8b\xcd\x66\x75\x3d\x42\x9d\x13\xca\x74\xe0\xa9\x3d\x76\x59\x0e\xb7\xc7\x3f\x06\x4e\x5c\xe2\x3a\x71\x12\x21\x62\xa1\xce\x5e\x8a\xd3\xf1\x06\xba\xcb\x73\x16\x26\x16\xed\x88\x28\xab\xa9\x26\x10\xa1\x9c\x4b\x1a\xfb\x40\x11\x92\x28\x62\x7e\x64\x82\x01\x26\x94\x1b\x8d\x2a\x6b\xbb\x4a\x28\x18\x48\xbb\x10\x9a\x10\x47\x16\xc0\x02\xff\xa7\x34\x4a\x43\xd6\x03\x9d\xb6\x47\x28\xb4\x3d\xfc\xc6\x17\x4d\xb9\xfd\xa9\xa3\xe3\x76\xb9\xb2\xe5\xed\x4d\x77\x21\x20\x28\x8a\x5c\xbe\x4f\x4e\x47\x2a\x1c\xf1\xd0\x3d\x54\xea\x54\x7d\x8e\x3e\x85\x4c\x99\x24\xe7\xd8\xf4\x69\xae\xc4\xf5\x56\x71\x10\x06\x5d\x16\x7a\x0b\xea\x84\xfa\x4a\x5f\xaf\x2a\x1d\x45\x3a\x98\x12\x5b\x74\x74\x53\x57\x96\x12\xcf\xf7\x35\x29\xe6\x86\x5d\x7a\xea\x02\x59\xfb\xc0\xcd\xa2\x10\xf1\x34\x75\x34\x72\x18\xb0\xbb\x71\x2a\x01\xdd\x2c\x04\x62\xf9\xf5\x9d\xf6\xd5\xc8\x53\xa2\x40\x95\x75\x62\x4e\x55\xf5\x70\x3a\x3c\x9a\x2b\xd1\x34\x39\x2c\x45\xa5\xbb\x87\x02\x4d\xd1\x5d\x7f\x12\xc5\xf5\xe2\x71\x93\x9f\x26\xf6\x3b\x35\x94\x98\x4e\x1d\xe6\x68\x15\xa5\x46\x27\x39\x35\xcc\xa0\x05\xb3\x6a\x27\x4c\xff\x62\xb6\x95\x85\x91\xb2\x00\xa7\xd6\xc1\xb8\x2b\x87\x1c\x9e\xbe\x87\xb6\x81\xfb\xbd\x57\x22\xb2\x3a\xd3\xa3\x81\x66\x51\xc4\x59\xf7\x18\xff\x0b\xea\x5c\xf1\x98\x30\x12\x06\x8e\xa9\x50\xbd\xf6\xd2\x7e\x37\x65\xb5\x14\x85\x46\x5a\xbb\x79\xc7\x83\x11\x01\x18\xfe\x7d\x29\x4b\x9d\x9f\x3c\x63\x00\x61\x34\xb0\x55\x68\xdb\x63\xbb\x29\x0f\xe7\x16\xa3\x61\x8a\x4b\xd9\x41\x61\xc6\x1e\xf0\xfc\x64\x61\x34\x51\x9a\x74\xac\xfe\x43\xfb\x90\x51\x88\x94\x2f\x37\x72\xe5\xb8\xae\x85\xc9\x34\xd2\xd6\x59\x1c\xd7\x7a\xbb\x76\xae\xb9\x87\x9e\x6d\xd6\xd6\x3e\x09\x13\xff\x63\x0e\x09\xd2\xfc\x1c\x73\xa1\xe0\x01\xde\xb7\xa7\xea\x0d\x3e\xcf\xa0\x53\xa7\xf3\xf2\x1e\xc2\x62\x2a\x30\x21\x35\xe2\x43\x99\xa9\x3b\x99\xe2\x2e\x67\xbd\x7a\x16\x73\xab\x78\xe8\x13\x58\xb9\x9f\x3e\x2c\x89\x88\x87\x05\x0d\x67\x17\x8c\x12\xb7\x84\x25\xdc\x20\x0c\x7b\x9f\xd5\x8e\xdb\xf3\xaf\x73\x28\x95\xef\x9b\x26\xd2\xf2\x09\xc0\x5b\x56\x9e\xea\x21\x2e\x9b\xb0\x44\x12\x1c\x94\xa7\xd5\xf7\x9d\xe7\x2a\x1a\x96\xc0\x12\x96\xf2\x38\x54\x13\x8a\x76\xac\x2e\xc4\x32\xbd\xe9\x8b\x8e\xa6\x7b\x2a\x03\xef\x1d\x8a\x5c\xe1\x11\x0d\xdd\xab\xa6\xda\x22\xb5\x75\x65\x09\xea\x07\x13\x40\x24\x71\xca\xbb\x32\xd5\xdb\xf2\x54\x23\xb7\xcb\x64\x86\x4b\x22\x99\x8d\x1c\xe4\x79\x56\x16\x83\xdc\x27\x93\x3c\xe0\xf6\x78\x6c\x97\xe1\xcf\xac\x68\x37\xa0\x61\x89\x03\x61\x52\x30\x9c\x7f\x96\x16\x74\x09\x65\x9f\x85\x77\x3d\x54\x68\xd9\xf9\x71\x16\xaa\xb2\xd0\xb7\xf0\x71\xf5\xe9\xad\xfe\xd0\xf5\xd2\xdc\x2a\xf5\xae\x76\x37\x23\x87\x65\x68\x67\x4d\xbe\x88\x16\x9a\xf6\x62\x49\xa0\x01\x0e\xdd\x26\xc6\x80\x58\xa5\xe2\xed\xd3\xed\x6f\x0a\x9a\x09\x03\x2a\x3c\xe3\x38\xb2\x7c\x9d\xcb\x75\x12\x1e\x44\x84\x5a\x46\x98\xc3\xb1\x75\xee\x66\x57\x23\x0f\x28\x58\x0e\x54\xfd\x96\xd5\x65\x55\x7f\x07\x07\xaa\x22\x3c\x48\x52\x50\x1e\x05\x53\x38\xcd\xb5\x1e\x0f\xd6\x76\x90\x88\x07\x6b\x97\xeb\xaa\x79\xdd\x95\xcf\xb5\x1e\x99\xf3\xbe\x9f\xb2\x5c\xf2\xf5\xb0\x68\x7d\xd0\x0c\x11\x1a\xdb\x0a\x72\x90\xed\x69\x33\x9c\x12\x3c\x0c\xe3\x30\xed\x4f\xcf\x9b\x2a\x83\x42\xe3\xd7\x1a\x8e\x08\x0f\xb9\x48\x7b\xec\xcf\xed\xe3\xdd\xf5\x85\x2a\x2e\xc2\x23\x99\xa2\x47\x8e\x23\xf7\x00\xef\x58\x7b\xeb\x6f\x17\xe9\x38\xf1\xee\xfa\x55\xd6\x3c\x94\xcd\xea\xcf\x93\xc8\x91\x01\xab\xdb\xec\x39\xa1\x56\xc4\x1a\xf3\x01\x7b\xb9\x17\x43\xdf\x82\x13\x4a\xbd\x83\x8c\x64\x20\x65\x75\x5d\x36\x23\x39\x19\xec\x93\x9a\x4e\x92\xc5\x86\xf4\x07\x4a\x43\x84\x13\x26\x10\xfb\xf7\xa6\x22\xbb\x2c\x69\xef\x18\x72\x12\x6b\x4f\x0d\xb4\x11\x9f\x78\x9e\xf4\x07\x26\xa7\x31\x4b\xe3\x0e\x6b\x54\x34\x56\x7a\x69\x75\xbd\xfa\xf7\x2c\x2e\x85\x70\x0a\x31\x02\x58\xf6\x36\xd6\xb9\xa8\xb1\x1e\x49\x66\xd5\x85\xad\x85\x73\x12\x42\x5f\x1b\x89\x34\xf2\xa7\x91\x16\x97\xef\x17\xb3\x30\xee\x2a\x9c\x9b\x7e\x98\x79\x0a\x48\xba\xf2\x5a\x1e\xc1\x9c\x26\xaa\x2e\xad\xcb\xcc\x91\xb6\x7d\xbb\x7a\xd8\x8e\x16\xd7\x97\x92\x7c\x84\xc7\xee\x6c\xb1\xb9\x07\x0f\x8d\x74\x27\xc6\xb8\xab\x08\x2d\x1f\x39\xd2\xf0\xbc\x5f\x9d\x3e\xaf\xb3\x0a\xfa\x11\x16\x54\xe2\x95\x6c\xc0\xae\xb5\xc3\xdc\xd0\xd9\x62\x3b\x67\x2c\xdf\x88\x2c\xbf\x5c\x84\xe8\x2e\x25\x43\x2b\xde\x60\x31\xc0\xab\x7f\x6f\x1e\x1f\xba\x32\x25\xc2\x55\x90\xa0\xc1\xf5\xb4\x78\xb8\x7e\xbc\xdf\x5f\xfd\x67\xb7\xda\xee\x97\x8f\xcf\x83\x1e\x09\x31\xce\xba\xda\x9c\x8e\xc7\x49\xfc\x91\xeb\x50\x62\x42\x78\x9b\xbd\x14\xad\xa3\x3a\xe6\xd4\x6e\xdb\x81\x82\xcf\x58\xbe\x8b\x01\x81\xee\x85\x41\xd4\x51\x0a\x16\xe6\x99\xbd\xbc\x40\xb5\x73\x4e\xe9\x6f\x65\x4d\x08\xd7\x32\xc5\xd4\xe9\x8b\x38\x80\xa5\x2f\xad\xfc\xd3\xb8\x38\x64\xc7\x11\x40\x38\x44\x81\x96\xc3\x2c\xe6\x80\xaf\x90\xe0\x91\x8d\xd5\x5b\xa0\x33\x25\xf2\xa5\x28\x0a\x21\xb3\x6e\x01\x9a\x88\x78\x0a\x80\x3b\xd0\x7d\x7c\x9b\x1b\x1d\x62\xbc\xa6\x35\x01\x76\x59\x93\x4f\x33\x4f\xb6\x5b\x1c\x04\x36\x99\x73\x05\xcd\x63\xb1\x98\x63\x07\x18\xbf\x5a\x1c\x84\x5a\x58\xb2\x99\x2c\x1f\x17\x4b\x92\x38\x88\x64\x12\x0d\x64\xbe\x36\xa2\x69\xa0\x2a\xfe\x38\x3b\x06\xbc\xb1\x17\x07\x44\x20\xa2\xed\xae\x7c\xc1\x15\x6a\x39\x83\xf4\xac\xc2\x3f\x89\x03\x2e\x11\xcf\xfc\x2b\xcb\xf3\x39\xec\xb7\xff\x77\xe6\xa4\x88\x03\x63\xe5\x75\xef\x4a\x4b\xe1\xd2\x15\x19\xfe\xad\x05\x15\x87\xd4\xca\x03\x7a\xbd\xa7\x6f\xe3\x5d\x2a\x0e\xc1\x12\x34\xa3\x0a\xaf\xf6\xf8\x95\x98\xc4\xc6\xb8\xb0\xc6\x75\x56\x8f\x20\x44\x33\xa3\x41\x79\x4a\x7d\xfd\xd3\x55\x56\x35\xaf\xd3\x09\xfa\xdf\x9e\x5e\xf9\xbf\x51\xff\x2b\x63\xe2\xfe\xe4\x72\x78\x0c\xff\x04\x4c\x2a\x8c\xba\x19\x5c\xa1\x48\xd5\xd8\x88\xc3\xd1\x0b\x78\xb8\x5e\x9c\x10\xc4\xa9\xd9\xd8\x6d\x67\xfa\xc4\x5c\x5b\xe1\xdf\xfb\xfb\x7f\x7f\x75\x0e\xc7\x71\xeb\x32\xba\x3c\xa8\x2a\x91\x2a\xf5\x5e\x14\x27\x91\xf7\x23\x14\x1b\x26\xdd\x66\xec\x58\x04\xac\xbc\xb5\x1d\xc6\xf1\x68\x27\x21\xc7\x8d\xfb\xf6\x24\xb3\xec\x8c\x13\xf7\xc2\x27\x4a\xa8\x86\xa1\x99\x36\xde\x93\x7c\x27\x63\x10\x57\x50\x89\x42\x97\xa3\x7c\xa8\xf7\xfc\xe2\x34\xa4\x98\xa2\x78\xbc\xbb\xb6\xb5\x15\xfe\x0d\x52\x9a\xa2\xa2\xff\x21\x2b\x1c\x09\xc0\x29\x17\x55\xfb\x7f\xb6\x0a\xe4\xbf\xf4\x7f\xc6\xdb\x7e\x2c\x62\x8d\x81\x78\x59\x96\xad\xc7\xd9\x0d\xb7\x48\x15\x5a\x94\x8b\xbb\xbb\xc7\x9f\xfb\xab\xd5\x6e\xe1\x5b\x64\x60\x69\x4c\x50\xea\xa5\x3a\xd5\x43\x56\x4c\x12\x4b\x4a\x2c\xea\xd9\xa9\x10\x2d\xc5\xa0\x0c\x6b\xd6\xd7\x98\x00\x39\xc7\x23\x26\x63\x8a\xd8\x2b\xe1\x2d\x68\x27\x89\x37\xad\x6e\xfa\x7b\x4b\x44\xa6\x61\x4f\xc8\x66\x17\xf2\x73\xa3\xda\x19\xb7\x2e\xb6\xa0\xba\x77\xd0\x02\xa3\xe2\x3e\x8c\xb4\xcd\x5e\x2e\x15\x6f\xf8\x5f\x98\x50\x82\xa7\xe2\x75\xdc\x0b\x0d\x3c\x0c\xc8\x47\x5c\x47\xa5\xec\x97\x6b\x6d\xed\x47\x2b\x92\x3d\xff\xa8\x3a\xb4\x05\x3a\x4a\x14\x7f\x47\x97\xc7\xfd\x0a\x98\xf5\xbd\x3a\xc6\xb7\xf5\x74\x76\x41\x4c\x2d\xa7\x9c\x65\x2e\xfb\x09\xd9\xcb\xeb\x24\xba\x11\x9b\xa4\xcb\xb5\x3a\xdc\x63\x73\xce\x21\xd1\x6d\x09\x46\x8b\x50\xf6\x68\xf3\x73\x77\xab\xb3\x76\xda\xae\x86\x8d\xb5\x91\x4a\x93\x35\xb3\x99\xb1\xd8\x98\x20\x9c\x06\xb2\x43\x47\x79\x42\x92\x20\x8e\xd2\x4e\x9f\xe2\x2a\xf2\x7f\x0e\x49\x88\x19\xef\x63\x55\x7e\x7c\xee\xc4\x2f\x9b\xbe\xbb\x12\x93\x62\x67\x92\x84\xb1\x8c\x88\x2f\x80\xfa\xeb\xaf\x8d\x28\xb4\x40\x63\x76\x1a\xaf\x4d\x42\x41\x30\x05\x75\x73\x82\x1c\xd9\xb5\xae\xa7\x28\x7a\x92\x84\xc6\x96\xfe\xb8\x78\xd0\x52\x78\x07\x25\x21\x11\xc1\x70\xbc\xc4\xc0\xb6\x17\xe8\x5e\x17\xa3\x48\x4b\x42\x54\x2c\xc9\x84\x3f\xd2\x9e\xb1\xe3\xfb\x10\x6d\x4b\x7b\xd1\x0f\xfa\x61\xa9\xef\xcb\x6a\x7d\x38\xfa\x88\x5d\x42\x39\xc1\xa2\x0e\x2f\x02\x5f\xb4\xd6\x31\x1e\x9a\xa7\x33\x65\x58\x5f\x42\xdd\xa7\x14\x12\x1a\x73\xf4\x44\x50\x42\x25\xfb\x0b\xf6\x7f\xa2\x86\xca\x70\xb5\x75\xdb\x7a\xc2\x02\xe3\x48\xe2\x30\x53\x3a\xb6\xdd\xc6\x33\x33\x61\x3a\x41\xa3\x5f\x15\xcd\x7e\x48\x2a\xd7\x0d\x01\x4f\x18\xe6\xc1\xcb\x4a\x23\x86\x71\x1a\xa1\x4f\xb8\x4c\xf0\xa0\xda\x79\xaa\x97\xee\xa3\xc7\xc4\x0a\xdf\x23\xdd\xb0\xb2\x31\xa3\xae\x2d\x09\xc0\x92\x71\x58\x8e\xd5\xcc\x1b\x5b\x49\x22\x03\x84\x87\x39\x15\xec\x9d\xa8\x7f\x75\x4d\x60\x10\x8e\x67\x07\xf1\xdf\x9b\x3b\x0f\xab\x9c\x7c\x8e\x34\x60\x98\xbd\xda\xd7\xd0\xdc\x97\xa7\xe6\x15\xb3\x28\x6c\xda\x2b\x11\xe9\x80\x04\xe0\xdc\xf9\x9c\x0c\x95\xe0\x76\x0e\xaf\x0b\x85\x78\xd8\x99\xe3\x27\x11\x49\xc4\x23\x2f\xa5\xd3\x6b\x60\xcc\xe3\x1a\x12\x61\xa4\x71\x07\xdb\x7d\xd9\xee\xca\x36\x6d\x31\x8b\x24\x48\x64\x60\x4b\x43\xfd\x21\xb5\xb0\x87\xf6\xa0\x20\xb4\xed\xc3\xd1\x7a\x34\x59\x65\x99\x69\xef\xca\x97\x6e\x69\xca\x08\xd0\x08\xc6\x99\xf7\x0a\x08\x4e\xbc\xb7\xa5\xb6\x59\x67\xfd\x25\x9a\x29\x1b\x1e\x79\x81\xe6\xcb\xda\xbf\xf1\x2c\xd0\x92\x68\x0f\xeb\x3c\x15\x96\x22\xdf\x25\x73\xfb\x8d\x26\x01\xa6\x84\x4b\x89\x5c\xe5\xa5\xc4\xad\xb0\xdd\x3e\x6f\x4e\x79\xde\xfe\x61\xad\xc7\x69\xc1\xc4\x48\xce\x2c\x03\x5d\xfb\x89\xf0\xd0\xb2\x2d\x69\xc0\xac\xc5\x98\x49\xd1\x41\x0e\x7c\x93\x12\xc8\x55\xb6\xb8\xbe\x7e\xda\xef\xbe\x7f\xdb\xef\x56\xcb\xdb\xfd\xcd\xb3\xaf\xb1\x20\x69\x00\xd4\x4b\x76\x3c\x41\x8d\x64\x96\xa3\x08\x47\x1a\x12\x40\xeb\x72\x84\x56\x9b\xdd\xe8\x67\x37\xfc\x34\x34\x41\x3c\xd0\x45\x59\xeb\x9b\xb2\xfa\x12\x36\x9e\x46\x91\xd2\x8e\x13\x63\xf5\xa1\xe0\x38\x8f\xd9\x49\x23\x96\x62\x9c\x78\x2f\x45\xa3\x5e\xa3\x7d\xa6\xca\x6e\x53\xea\x4c\x34\xff\x16\x44\x12\x2c\x18\xdf\x5f\x8b\x46\x3c\x75\x70\xec\xf1\x18\xa7\xc4\x58\x60\x63\xa6\x4a\xbc\xcc\xc6\xe3\x8c\x53\x1a\xc5\xcc\xc9\xae\xed\x3e\x76\x25\x0a\xa5\x1f\xa0\xea\xc4\x8d\xfe\x56\xad\x40\x4a\x99\x12\xae\x7e\x71\x55\xe8\xd2\x11\x99\xce\xa7\x5a\x52\xca\x03\xe5\x59\xf6\x5f\x41\xfd\xba\x9f\x94\xe5\xf5\x93\x29\x65\x5c\xc4\x28\xa4\x5a\xdf\xaf\x6e\xfd\x23\xf3\x28\xb1\x27\x2d\x26\x2e\x50\xd8\xf7\xf3\xc2\xad\xb8\xd2\x68\x79\xbe\x43\x66\x13\x9b\x36\x83\xef\x5b\x21\xc1\x63\x6e\xbb\xb8\x5b\x6d\xf7\xd7\xcf\x4f\x83\x82\x66\x92\xc6\x49\x82\xfc\x56\x47\xac\xae\x7b\x3c\x42\x3b\xe3\x07\x79\x9f\x34\x21\x40\xfb\xfa\x13\x7b\xfd\x76\xfe\xec\x0e\x30\x9c\x0b\x13\xb3\x65\x32\x27\x12\xad\x2c\x4a\x02\x65\x31\xab\xe7\xfa\x24\xaa\xac\x9c\x0f\x28\xa4\x89\x11\x42\x0c\xd0\xe2\xa9\x7f\x94\x94\x68\x44\xa4\xe0\x8c\xf9\x3b\x46\x8b\x3f\x75\xd2\x34\x09\x31\x2d\x2d\x4f\x55\xb1\x3d\x63\xeb\x6d\xdb\xd3\x30\xf1\x6c\x77\xc8\x7c\x61\x03\xaf\x87\x33\x42\x02\x92\xa6\x69\x84\x8b\x12\x79\x5e\xde\xcb\x0e\xac\x9c\xa6\xca\x02\x43\xb1\x9e\x63\xc8\xee\x35\x79\x3f\x61\x04\x26\xe1\xbe\x2d\x7f\xf8\x9f\xca\x10\x70\x95\x2d\xff\x75\xff\x03\xb7\xf8\x65\x56\x59\x03\x06\x45\xf7\xea\xae\x1f\x93\x58\x31\x08\xcd\xab\xab\x6d\xda\xbe\x8b\xe3\xba\xb8\x68\xe6\xa5\x32\x36\x32\xec\x73\xb7\xd9\x1e\xad\xc7\x32\x2f\x87\x48\x4e\xfb\xdf\x30\xf0\xbf\x31\xd2\xe6\x7b\x33\x4b\x0f\xd8\x5c\xe0\x54\x75\xdd\x55\x14\x8e\x74\x17\x36\xb6\x5e\xa3\x7b\x68\xa5\x00\x13\x03\xee\x78\xba\x2b\x9b\xb5\xae\xcf\x34\xce\x5d\x67\x4d\x18\xbe\x61\xeb\x64\x5e\xc3\xa1\x54\xa3\xd0\x5e\xaa\x53\x2b\xb9\xb7\xdc\xae\xb6\xa1\xbf\x01\x70\x40\x93\xf3\xd1\x01\x82\x47\x14\xa9\xbe\x4f\x6a\x84\xcb\x36\x5b\x4d\xa5\x85\x2b\x9b\x1f\xa6\xd6\x53\x50\x21\x9e\x63\x79\x59\xfe\x3a\x1d\x27\xdb\x8b\xa1\x11\xde\xe6\x66\x7d\xf5\x7d\xe1\x77\x60\x11\x50\x81\xf1\xb2\xcd\xf3\xd5\xdd\x7a\x39\xaa\x44\x27\x22\x24\x44\xa4\x83\xd8\xec\x62\x32\x99\x44\xc8\x15\xca\x77\x4f\x15\x88\x7f\x66\xcd\xeb\xe3\x18\xea\x2d\x42\x49\x65\x34\x67\xc3\x89\x42\x7b\xbb\x6f\x7e\x16\x88\x50\x47\x96\xbe\xd6\x51\xc9\x7e\x59\xf1\x36\x1c\x70\x11\x1a\xab\x24\x81\x87\xf0\x13\x7a\x8c\x36\xc8\xe2\x40\x49\x97\x8b\xb7\xdd\xd5\x46\x9f\x41\x44\x34\xc6\x60\xde\xff\x2b\xcb\x11\x0c\xd4\x37\xc7\x16\x4f\x7a\x2a\x30\x88\x70\x9f\xf5\x15\x34\x82\x08\xa9\xa6\x92\x80\x97\x8b\x13\xbb\x6f\x2a\x88\x04\x63\x01\x20\x05\x54\x5b\x55\x76\x19\x66\x41\x34\x20\x34\x6e\x75\xbf\x58\xf6\x1e\xf6\x85\x80\xd8\xe4\x45\x28\x35\xb8\xa3\x74\x9e\x76\x59\xfd\x2c\xab\x5f\xad\x5f\xe4\x2f\x4f\x53\x93\x7a\xe2\xc9\x41\x75\x26\x11\x2c\xa0\x98\x66\xb7\xb2\xfc\xdd\x5f\x89\xe5\x61\x5a\x2f\x1f\x7f\xae\xff\xdf\xe2\xe9\xfa\xb7\x15\xb0\x44\x30\x1e\x71\x57\xfb\xed\x83\x39\x17\x02\x47\x82\x71\x8b\xe5\xee\x34\x99\x57\xed\xcd\x07\x3b\xbd\x60\x29\x0b\x3c\x4f\xed\x6d\xf6\xf2\x0a\x76\x7c\xbd\x28\x23\x11\xcc\x58\x9b\xb0\x46\xa6\x7d\x09\xd5\x2e\xbb\x84\x5c\x14\x3c\x50\x56\x00\xa3\xb8\x2b\xad\x28\xec\x39\x7f\x3c\x11\x3c\x0e\x10\xc2\xd9\xe5\x3f\xbe\x74\xaf\x05\x8f\x05\x02\x56\xeb\x93\x74\x38\x07\x1f\x49\x9f\x7f\x88\x24\xb0\xc1\xf7\xdf\x86\x4f\xbe\x46\xb9\x89\x24\xa6\x48\x84\xbf\x28\x9a\xec\x46\xfc\x82\x3b\x21\x21\x1f\x2f\xa4\xc9\x0f\x5c\xc4\x69\x9f\x97\x2f\xed\x49\xf0\x2d\x33\xcd\x90\x82\xcf\x75\x4b\xa5\x09\x48\x47\xe8\xb0\x3e\x0c\x99\xa0\x46\xab\x50\x50\x8a\xb9\xc2\x7d\x6b\x8e\xeb\x1d\x92\x2e\xb5\xb6\xc7\x55\x59\x36\x97\x29\x82\xc6\xcf\x84\xa3\x37\xa4\xc8\xb6\xb4\x1b\x1b\xf1\xb9\xbe\xf4\x1a\x32\x06\xb7\x7d\x41\x0f\xa8\x17\x2a\x8a\xc9\x80\xac\x65\x0a\x88\x10\x8a\x68\x74\xc2\x11\xd2\xd3\x6b\x16\x12\xa1\x52\xc0\x93\xf3\x28\xaa\x1a\x5a\x53\x63\xd7\xc9\x10\xfe\x37\x0c\xfb\xb0\x5e\x18\x74\x6e\x23\xfd\x9f\x29\x05\x11\x11\x4a\x59\xdc\x47\x05\x4d\x25\x5a\x9f\xbd\xbb\xbe\x8b\x7d\xe0\x2e\xd7\x88\x7c\x80\x3b\x73\x3d\x74\xa0\x71\x8d\x8d\x2a\xe2\x2e\x66\xec\xfc\x8f\x94\xa2\x7c\x40\xcd\xda\x3a\x13\x4f\xad\xef\x6b\xfd\xba\x5b\x91\xbf\x75\x75\xcc\x44\x40\x44\x11\xe1\x91\xd5\x73\x1a\x77\x44\x00\x13\x38\xe5\xef\x44\x6d\x6b\xbf\x54\x33\x5c\x84\x00\xa9\xe9\xec\xf5\xda\x0a\x42\x8e\x6a\xa2\x84\x81\x30\xb2\xe9\x92\x53\xb5\x29\x9b\xd5\xc7\x31\x1b\x12\x75\x12\x61\x8c\x45\xb6\xb8\x82\xde\x2b\xf1\x62\xcb\x76\x6f\xce\x8a\x0b\x64\x10\x4b\xe9\x08\x2b\x57\xcd\xeb\x06\xaa\x61\x48\xd9\xf5\x09\x99\x8d\xdf\x22\x68\x35\x2b\x6a\xa8\x9a\xbd\x2a\x8b\x46\x64\x45\xed\xb5\xa0\x88\x0c\x79\x84\x55\xb9\x65\x71\xdd\x09\x14\x11\x49\x02\x82\x2f\xbb\xd0\x6f\xed\x32\x1d\x06\xf2\x24\x61\xb6\x02\xfb\xad\x6c\xce\xd0\x72\x92\x88\x14\xc1\x3f\x07\xf1\x31\x0e\xe6\x4a\x1a\xd9\xaa\x00\x5f\x45\x9a\x97\x42\xcf\xd9\x69\x92\x46\x8a\x5a\x4a\x95\x47\xcb\x6d\x54\x7c\x92\xaf\xb3\x1d\x92\xc6\x04\xe5\x9e\x73\xcb\xdb\xde\xe5\xdd\xa7\x57\x06\x85\x87\xd8\xd2\xeb\xfd\x0e\x26\xb9\x64\x81\x0a\xa8\xd3\x49\xcf\x06\x7f\x66\x01\x32\x88\xee\xae\x3f\x7e\x5f\xfa\x20\x19\xb7\x99\xc7\x15\x2a\x0f\xdf\x2f\xfe\xbd\x5f\x3e\x3e\xec\x9e\xd6\x57\xdd\xe5\x12\x86\xd1\xbb\x62\xdb\xc0\xb1\xee\xfe\x2a\xac\xd8\x89\x6c\xcd\x86\x9b\xb2\x5a\xbd\x41\xf5\x59\x16\xdd\xd8\xf1\x20\xc0\xf0\xf0\x7e\x8c\x56\xfe\x7a\xd7\x95\x5c\xc4\x88\x05\x71\x87\x32\x1a\xdc\xe3\x1e\x31\x03\x20\xbd\xd8\xac\xab\xb4\x68\x47\x65\x28\xfc\x4f\x64\x1c\x5b\x96\x1b\xac\x21\x38\x2f\x25\x92\x09\x4d\x51\xf5\xb7\x7b\x3e\x4f\x60\xfc\x95\xfd\x29\x13\x19\xe1\x2e\xf5\x0e\xd9\xd5\xe9\xb3\xbe\x2d\xdf\xef\x45\xf1\x39\x27\xcf\x4d\x64\x1a\x27\xc8\xe7\x81\xf4\xab\xc8\xcf\xfa\x47\x07\x7a\x9d\xc2\x5f\xa5\x08\x09\x66\xd3\xda\x55\x8f\xb0\xbc\xc9\xc5\x84\x08\x52\x4b\x51\x6f\x05\x2f\xd1\x20\x9a\xcd\x8d\xb9\x1f\xc8\x34\xa6\x61\x07\xa8\x6a\x37\xf0\x33\xfd\xb0\x91\xc9\x29\xa5\x4a\x30\x5a\xd6\x64\x50\x75\x8a\x43\x44\xea\x28\x16\xd6\xb7\x6c\xdf\x11\x33\x66\xf7\x16\x9d\xda\xf5\x10\x2c\x10\x1e\xb6\xd0\x3c\xc0\xfb\xae\x1d\xc7\xac\x98\x45\xd8\x4e\x6e\xaa\x55\x84\x26\x9f\x23\x5f\x44\x3f\xc7\x06\x67\xc6\x6f\xa3\x41\xe0\x4c\x6f\x9d\xaa\xf5\x72\xb1\x7c\xec\xe5\xf5\x5d\x0f\x08\x62\x90\x9e\x5a\xc8\x88\x53\xee\x0c\x0a\x98\x5e\x0a\x42\x40\xae\xcd\x1f\xeb\x1f\x8b\x19\xbb\x50\x82\x92\x0c\xcd\xfe\xc9\xef\x0c\x97\xb1\x8b\xc6\x1e\xcb\x5a\xe4\xe8\x69\xff\xce\x8c\x90\x26\x4e\xc0\x45\xab\xae\x16\x8b\xc5\xf3\x25\xa2\xb4\xf9\x90\x88\x34\x29\xc1\x30\x80\x29\x2b\xd5\x49\x52\x62\xf5\xdf\x78\x1c\x8d\xd6\xd2\x33\x5a\x7c\xae\x47\x1c\x56\x44\x1a\x88\x99\x4d\x3a\x0a\x1b\x6c\x5c\xab\x72\x8a\x65\x53\x01\x18\xe8\x83\x37\xe5\x48\x77\x61\x3e\xb8\x7f\xc9\x6a\x1d\x4f\x44\x15\x32\x6e\xc8\x80\x23\xe7\x3a\x7b\xc9\x1a\x91\x2f\xaa\x66\x0b\x79\x9e\x15\x2f\x5d\xa5\x5c\xf7\xda\x2a\x64\x86\xba\x0a\xcf\xbb\x4c\xc8\x2c\xcf\x3c\x7f\x3e\x51\x21\xb7\xc8\x91\x27\xa8\xcb\xfc\x6d\x02\x89\x57\xa1\x8a\xb1\xe0\x0c\x25\x79\xb2\xa2\x5e\x1d\xb2\x19\xbf\xc1\x75\x8e\x02\x2b\x1d\xd5\xf4\xc1\xde\xb0\x6b\x8b\x29\x3a\x71\x59\xbd\xe9\xc0\x4b\x8a\xc4\x12\x0f\x04\x0c\x91\xcc\x18\xa4\x43\x38\xa8\x62\x01\x53\xbd\xf0\xf9\xba\x68\x17\xab\x15\xcb\xff\x6a\x20\xbb\x07\x60\x81\x85\xee\x2d\x4b\x09\x16\x7d\xb2\xec\xa8\x62\x88\x62\xa1\x42\xa8\xf9\x7e\x55\xbc\x95\x59\xfd\x55\xb8\x5a\x31\x12\x2b\xcb\xa3\x58\x34\xc9\x1f\x83\x27\xe4\x34\x41\x5e\xb4\xd6\xbe\xd3\x30\x66\x83\xc5\x52\xd9\xe9\x71\xa4\xb8\x88\x30\xd3\x70\x95\x99\xaa\xac\x9b\x70\x78\xca\xaa\x98\x52\x44\x51\xe5\xe5\x4b\xeb\x9f\xc0\x40\x09\x6a\x38\x1f\x55\x9c\x04\x58\x81\xb5\x40\x24\x54\x56\xbc\xb8\x52\x9f\xae\x38\xb0\xf7\xa8\x54\xac\xa3\xd8\x1a\x78\x50\x9c\x8e\xb3\x14\x0e\xf3\x5a\x82\x93\x59\x18\x03\xf3\xa5\x49\xfb\xda\x82\x6a\xcc\x29\xdf\xbf\x4d\x3e\xa4\xeb\x9d\x30\xc0\xb0\x89\x2a\x0f\xc7\x39\x0e\xfa\xc9\x00\x27\x86\x20\x23\x06\x46\x63\xee\xb2\x7a\xb0\x3b\xaa\xc4\x58\x59\x7e\x28\xf4\x06\x35\x37\x06\x82\x05\x44\xa5\x2c\x46\xf7\xec\x55\xe4\x8e\xf2\xc7\x19\x60\xd3\x28\xe1\x78\x96\xa7\xcc\x62\x4b\x1d\x85\xdb\x30\x55\xe5\x7b\x08\x7b\x68\x77\xee\xc8\xa0\x5a\xe1\xc2\x7a\x9d\xdc\x43\x44\x29\xda\x6b\x58\xfa\x8c\x7c\x3a\x3f\x7b\xed\xfa\xae\x8f\xb4\x7c\x0d\xae\xc8\x08\x9f\x66\xf5\xe7\x16\xbf\x44\xd7\x89\x71\xe4\xd0\x46\xcb\x65\x12\x0c\xb8\xe4\x23\xfd\x26\x7e\x3e\x47\x26\xe1\xef\x16\xd3\x88\x59\x68\x68\xa5\xb2\x1a\xf0\x14\x9a\xe6\xc1\x94\x48\x22\xaa\x06\xc1\x92\x5e\x4a\x6f\xd2\x4f\xe8\xc0\x16\xa4\x2e\xb3\x26\xfb\x6b\x5a\x1e\xa4\x64\x98\x60\x49\x86\xcc\xf4\x63\x71\x55\x01\xe8\xac\x78\x19\x32\xea\xd1\xe0\x1f\xf6\x1f\xff\x83\x44\x21\x21\xb4\xd0\xda\xeb\x12\x4e\x2f\xa9\xac\xa0\x8e\x65\x6d\x1f\xc7\x62\xbf\x9e\x86\x12\x62\x69\x5f\xdd\x16\xf0\x0a\x4f\xbf\x5c\xb7\x76\xd4\xb6\xe9\xf4\xde\x89\x52\x11\x45\x9a\xc6\x83\xf8\xd8\x94\x65\x3e\xac\x79\x57\x8a\x27\x9e\x32\x6a\xa4\x7c\x30\x7b\x82\x2b\x25\xa8\x55\xb7\x45\x26\x6c\xc7\x18\x32\x87\x95\x55\x4a\x58\x9d\xca\x8e\x80\x63\x5b\xe6\x7a\x54\x1d\xa3\x94\x48\x98\x33\x25\x30\xd0\x38\xc6\x3a\x2b\x25\x84\xd5\x3f\x38\x0c\x96\x90\x92\x14\x43\x7e\xd7\x59\x6d\x23\xde\xe0\xf0\x0e\x2e\x4d\x03\xe7\xee\x96\xff\xa5\x8a\x9c\x90\x53\xad\x44\x75\x5d\xaa\x53\xbb\x57\x95\x9b\xb2\xfa\xd7\xfd\x78\xc7\xd2\xa1\xea\x54\x84\xdc\x99\x88\x45\x26\xef\xe3\xcd\x4a\x33\x6a\xd9\x43\xa0\xd0\x57\xe5\xe9\xe5\xb5\xf9\xca\x98\x54\x10\xd9\x28\xd3\xde\x9e\x10\xe8\x38\xbc\xbd\xdc\x66\xed\x40\x9e\x79\xda\xfe\x37\x34\xf0\xc5\x98\x5b\xf5\x6a\x0f\x50\xc4\x7f\xcc\x65\xd6\x14\xc4\x56\x6f\xe7\xae\x2c\x5e\xec\x03\x75\x83\x31\x80\xb6\xb0\xe9\xc0\x80\x73\xfb\x5e\xc0\xf2\xc3\x6f\x5b\xa7\xc8\xfb\xe4\x0a\x80\x53\x2f\xb5\x7c\x98\x78\x79\x3a\x32\x61\xec\xcd\x30\xd1\x88\x7d\xe4\x13\x9b\x3a\x32\x49\xe4\x92\x14\xff\xfe\xd7\xf3\x68\x7c\x35\x09\x98\x4f\x2d\x5d\x21\x76\x43\x6f\x9c\x95\x55\x9f\x0b\xb1\x10\x4d\x68\x80\x64\xa1\x76\x9a\xdb\xb0\xf1\x50\x8d\xe5\x1f\xe3\x8b\x27\xc2\x73\xd7\x5d\xed\xae\xfc\x94\x1a\x77\xd1\xd4\x93\x5f\xf7\xfb\xe4\x6c\xd0\x58\x13\xa3\xbc\x41\xd7\xe4\x70\x07\x85\x1e\x45\xb7\xa7\x1b\xda\x59\xe4\x7b\xe8\x84\xb4\x77\xd5\x91\xaf\xc0\xac\x3e\x87\x0a\xa5\xbe\x47\xac\xc3\x21\x75\xd7\x22\xcf\xe7\xa8\x57\xfc\xf6\xa7\x69\x6a\xd1\x6d\x4d\x47\x16\xd1\x0b\x79\x5d\xc2\x8a\x8f\x9e\x48\xda\x0a\x21\xf0\x45\x3e\x37\x28\x81\xed\x3f\x22\xa3\x14\x1f\xf8\xe6\x69\x37\x5b\x5a\x3f\x1a\x55\x2e\x99\x47\x00\xba\x25\xb9\x19\x56\x5e\x8d\x27\x9d\xe6\x4a\x46\x2e\x7e\xdd\x41\x24\x08\x1d\x7f\xa7\x38\xb5\x0a\x1d\xf5\x49\x5a\x3d\x06\x7d\x51\xa8\x79\xf4\x56\x71\x1a\x61\x62\xc9\x2a\xc7\x5a\xa0\xc6\xf5\xa0\x22\xc1\x77\x93\x96\x1a\xcc\xb3\x92\xb7\x27\x75\x4f\xdc\xe2\xc7\x20\x56\xdc\xc4\x1e\xad\xe1\xf8\xf7\xc6\xeb\xfc\x3c\xb0\xa3\x63\xa0\xc8\x41\xb9\x5a\x3c\xdd\xfd\xc7\x7b\xd8\xcf\xbb\xc7\xa7\xfd\x8f\xd5\x76\xb7\x7e\xf8\xb6\xdf\xac\x9e\xd6\x8f\x3e\xd4\xaf\x13\x92\x08\x6b\xfd\x1d\x3f\x2b\x84\xb5\xf8\x86\xd4\x22\xdf\xda\x41\x3d\x35\xa5\x8f\xe3\x9f\x71\x06\xe9\x34\x8c\x11\x91\x98\xd5\xab\x3c\x7b\xc9\x64\x0e\x37\x65\xe5\xc4\x17\x26\xef\x9d\xc6\x22\xea\x99\x86\xc7\xc3\xfa\x9b\x28\xa6\xbf\x82\xb4\x44\x69\x6e\xe7\xfb\x4d\x1a\x47\xa7\x00\x18\x1c\x58\x96\xa7\xaa\x06\x6f\xf6\xcd\x5f\x5a\x06\x29\x0a\xbb\x64\xad\xa1\xab\xce\xaa\xa6\xff\x96\xc8\x66\xa7\xa8\xe6\xaf\x49\x2d\x93\x7e\x05\x4d\x95\xc1\x1b\x6c\x32\xb0\xcc\x86\x73\xd5\x2f\x5a\x0a\x83\xb2\x25\xb6\x3a\xe0\x07\x12\xd7\xbe\x8c\x38\x58\x5c\x47\x4d\xac\xec\x77\x01\xef\x36\x60\xa7\xa6\x74\xcd\x03\xff\x40\x6b\x99\x62\xac\x4f\x42\x53\xef\x9b\xc1\x09\xac\x81\x71\x4c\x6b\xfb\x22\xe1\xf7\x6d\xa9\x32\x68\x3e\xc7\x8b\xc1\x04\x12\x71\x5a\xb5\xc3\x93\x5b\xb6\x89\x3f\xc6\x72\xcc\xe3\x30\x83\x36\x51\x8a\x54\x3b\x47\xb4\x32\xd7\xbb\xc7\x3d\x14\xc3\xc0\x3c\x84\x4a\x62\x56\xa4\xaa\xad\xe9\x61\x61\x28\x53\x1b\x60\x78\x7a\xfc\xe6\xff\xfc\x75\xc1\xa0\x68\xd7\x9b\xc5\xf9\x64\x65\xb1\xb7\x34\x34\x13\xc3\x15\x22\x62\xb7\xc4\x6d\x53\x95\xc5\xcb\x77\xf0\x26\x0b\x44\x42\x24\xc4\x15\x8d\x42\xdd\x3c\x01\xae\x3f\x8b\x64\x71\x5d\x88\xe2\xb8\x85\x20\x88\xde\xd7\xc6\xa2\x7d\x57\x2f\x2c\x11\x83\xeb\x48\x43\x2b\x10\x2d\xb4\xc6\xc3\xb3\xfb\x7b\x12\xc7\x4e\x3c\xf4\x8c\xd4\x76\x6a\x3e\x00\x55\xb6\xfa\x7a\xff\x32\x64\x62\xf3\x97\x62\x2a\x44\xa7\xbb\x56\x15\x40\x51\x37\x7d\xfd\x02\xf0\x88\xa3\x85\xe7\xa3\xe3\x5f\x93\xf0\x01\xe7\x54\xf9\xc4\x9e\x10\xf5\xe2\x98\xd9\x0d\x6c\xf6\x7c\x02\x9e\x58\xb2\xdb\x17\x68\xb6\xd9\x4b\x01\xd5\xa3\x71\x43\x31\x02\xa6\x9c\xc6\x84\x93\xfd\x5e\x09\x71\x18\x63\xad\x17\xda\x9f\xbb\x4c\xfd\xea\x73\xc2\x90\x50\x85\x66\xb3\xaf\x11\x6c\xad\x66\x3d\x68\x44\x47\xbf\x9b\xb5\x4f\xf0\x96\xd5\x67\x80\x61\xd7\x3b\xa5\x0c\x9d\xc5\xbb\xf2\xa5\x93\x0e\xfb\x32\x16\x02\x22\x8c\x68\xd8\x57\xdb\x21\x14\xc7\xdf\x5b\x50\xc5\x3b\xf7\xee\x9c\xb6\x06\x84\x0a\x2c\x13\xa9\x0d\x0d\x39\x0b\x7d\xf4\xc1\x64\x44\x6d\x1d\x4c\x76\x38\x7a\xd9\x92\x79\xb6\xf4\xf1\x80\x2b\x62\x90\x55\xe9\xdd\x27\x0a\x5d\x56\xdf\x7d\x1e\x14\x00\xe8\xa7\x50\x6f\x2d\x82\xd2\x22\x6a\xdf\x67\xbd\xdb\xde\xfb\x87\x50\x90\x1a\x5b\x16\x63\x55\x4d\xee\xa6\xda\x2e\x04\x74\xc0\xf1\x7e\x18\x78\x0d\x06\x1c\x5c\xa0\x4d\x18\x46\x9d\x59\xe4\x38\xd1\xc6\x3f\x06\x4e\x02\xd6\x6d\x65\x3d\xb3\x40\x56\x16\xde\xfe\x9d\x87\x5d\x01\x48\x0b\xde\x40\xc5\xcb\xf6\xd1\xf6\x26\x6d\x67\xd4\xde\x8d\x8a\x7f\x08\x30\x29\x66\x04\xf6\x99\xa7\x81\x9a\xb8\x40\x26\x0c\x34\xb2\xaf\xfa\x7c\xda\x57\xa3\x6b\xc2\x30\x40\xcb\x0c\x9a\x57\x37\xa0\x76\x47\xfa\x3e\x28\xa4\x1b\xfb\x25\x43\xda\x6b\x62\x42\x2e\x30\x45\xf2\x56\x0e\xc3\x40\xfd\x57\x30\x61\xc2\xc3\x9e\xe8\x7c\x67\x99\xd5\x9d\xca\xee\x85\x75\xe9\x16\xcf\xac\x6b\x6e\x42\xc9\xf0\xed\x96\x65\xf1\xd2\xfe\xa8\x35\xa0\xfd\x17\x32\xa1\xb6\xb4\xec\x15\xe6\x20\x47\xe5\x56\x73\x8f\x06\xd4\xd5\x22\x14\x2f\xb9\x98\x61\xa7\x40\x22\x74\x97\xa7\x5e\x34\xce\xfb\xc1\x55\xaf\x27\x0b\xfd\x02\x64\x7f\x86\xd3\xce\x44\x26\x40\xb5\x78\x5b\x78\xaf\x32\x51\x7d\x7a\x1b\xde\x90\x30\x61\xc4\x43\x83\x3f\x77\x88\xbb\x1b\x06\xad\x0c\x25\x31\xfa\xcb\x47\xc0\x0d\xa2\x8f\x18\x4c\xb6\x29\x43\x59\x82\x4c\x59\xea\x53\xe5\x96\xac\x63\xef\x6f\x42\x93\xc0\xea\x57\xfa\x94\xc7\x28\x27\x65\xa8\x00\x43\x06\x6a\xed\xd7\x8b\x42\xaf\xed\x51\x32\x21\xd5\x34\x2c\x4a\xb8\xc3\xfe\x6e\xa0\xaa\xcb\x42\xe4\x88\xc8\xb1\x4e\xe7\x05\x50\x99\xe1\x26\xd0\xb1\x9b\xe9\x96\x30\xce\x35\xc4\x01\x47\xe4\x0c\xe2\x49\x61\xaf\x44\x3e\x89\xd2\x9b\x98\x33\xb4\x14\x0c\x34\xea\x15\xd9\xe4\xea\x9b\xb2\xba\x87\xaa\x5d\x92\x93\x85\x6c\xe2\x54\xf8\x72\xa9\x6b\x90\x9e\x2a\x27\x2b\x5e\x5c\xa1\xfc\xf8\xd2\x69\x44\x03\x0b\x56\xb1\xa5\x52\x93\x8b\xa5\x3c\x15\x9d\x16\xae\xc7\xac\xb9\x52\xcd\x5e\x34\x62\x66\x92\xa5\x2a\x70\x39\x24\x63\x44\x8e\x6a\x33\xae\x45\x84\x16\x89\x2a\x4f\xf9\xaf\x85\x15\x2b\xed\x9c\xdf\x3f\x26\xe7\xbb\x11\x91\x22\x5e\x43\xdf\x96\xc2\x0d\xd8\x2d\xbe\x36\x1e\x8d\x50\x14\xf7\xad\x76\x44\xd5\xca\xd9\x23\xe3\x2e\x32\xb5\x55\x69\x35\x34\x43\x27\x69\x72\x21\x29\xa4\x64\x7e\x44\x35\x32\xa6\xb4\x8e\xe4\xc7\x84\x0d\xd7\x48\x63\xc3\x67\xdb\x9b\xdd\x76\xe5\x81\x51\x46\x31\xc2\x75\x47\x42\xb4\xb4\x19\x67\x31\xf4\x9c\x7c\xc7\xd8\x20\x38\xe6\xb1\xd2\x59\xcf\xee\x67\x14\x10\x7f\xf7\x25\xbd\xf1\x75\x5b\x9d\xa2\x69\xd9\x1e\x2b\x17\x36\x21\x9d\x44\xc8\xfe\xda\x0c\x80\x66\x13\x03\xfa\x3c\xf2\x35\xfd\x04\x1a\x22\xa4\xc7\x72\xc2\xb6\xd9\xcc\x93\x43\x18\xa1\x29\x81\xa6\xd3\xe8\x84\x34\xc0\xac\xfa\x32\x1a\xa2\x3f\xb3\x46\x57\xe5\x3b\x8c\xaa\xae\x0d\x18\x22\xc8\x00\x87\x32\x6f\xdc\x1b\x13\x06\x68\xea\x3d\xd7\xf0\xaf\x93\x28\x9a\x76\xfe\xf5\x05\x1f\x34\x08\x52\x9d\xa6\xdd\x31\x85\xa8\x60\x0f\xc4\x1c\x7d\x75\x1a\x04\x82\xe0\x4a\x34\x59\x91\xd5\xaf\xd7\x9d\x09\x45\x83\x40\xdb\xca\x8c\x4f\xa8\x7f\x94\x0d\x6c\x7d\xbe\x8a\x06\x81\xd1\x98\xf8\xb7\xa5\x91\xa1\xff\x73\x18\x68\xab\xe8\x06\xed\x47\xd8\x65\xe3\x8d\x8b\x06\x21\x17\x8a\xf8\x09\x86\x35\x47\x18\xbc\x1e\x4d\x9c\xb6\x97\xc4\xba\x42\x9f\xae\xda\xac\xb6\x8f\x97\xb1\x19\x34\x88\x18\xe3\x49\xaf\xf5\x3b\x64\xf2\x99\x74\x4c\x21\x75\x18\xdf\xfb\xb2\x68\x57\xef\x13\x34\x27\x57\xcb\xe5\xdc\x16\x1a\x90\x90\x9a\x8e\x1e\xd7\x4b\xe4\xf6\xe1\x64\x1a\x50\x6a\x0b\x79\x3e\xac\x88\x81\x9d\x79\x75\xd7\xaa\x43\x84\x8f\x0f\x78\x36\x47\x15\x2d\xe3\x98\xc5\x60\x76\xb4\x3f\x35\x9d\x84\xee\xea\xe3\x88\xdc\x14\x23\xfe\xca\xf9\xf7\x67\x24\xc4\xe8\xc5\xfd\xff\xc1\xa3\xfc\x3f\xe1\x65\x68\xc0\x84\x4d\x10\x60\x2e\xf4\x9f\x65\x56\x80\x76\xa0\xf9\xf9\x47\xe2\x94\x22\x00\xd6\x49\xbe\xb4\xc6\x1a\x1e\x98\xed\x7e\x95\x15\xae\x36\xe6\xf7\xc2\xe5\xe7\x09\x1f\x1a\xc4\x61\x8a\x51\xc2\x43\x56\x34\x8b\x93\xce\x1a\xbb\x6b\xfe\xc6\xb0\xa5\x41\xac\x2c\xaf\x2a\x7e\xd6\x87\x72\x1e\xae\x48\x83\x04\xac\x8e\x84\x86\xb7\x7d\x05\xb5\xaf\x1a\xa3\x41\x2a\x38\x5a\x15\x99\x03\x8f\xdf\x67\x45\x73\x9e\xd9\x6c\xfb\x49\xce\x7d\x8a\x14\x33\x2e\xa0\x07\x35\xcf\x34\x48\x81\x63\x79\xf1\x16\x9a\xd5\xc3\xb7\x6b\x78\xfb\x0a\x7d\x4d\x03\x11\x50\x2c\x5b\x69\x2a\x0c\xb3\x8e\x6f\x26\x52\x6b\x8c\xbe\xbf\x8a\x1c\x3c\x0d\xdc\x80\x7b\x8b\x06\x2a\x48\xac\xb2\xc3\x49\xd6\xaa\xca\xe4\x94\x3b\x6a\xb8\x75\xd1\x40\xc7\xa1\x19\x58\xff\x5f\x84\x17\x68\xa0\x13\x2b\x80\x6c\xe3\xaa\x8b\x4e\x4a\xdb\x35\x43\x20\xb1\x8a\x5d\x95\x59\x51\xef\x4a\x14\xd7\xf2\x4d\x51\x62\x59\x69\xd0\x87\x41\x0d\x89\xd3\x2c\x95\xd9\x97\x90\x3d\x1a\x40\xa2\x13\x1f\x60\xf8\xfc\x89\x70\xc0\xc9\xf8\x80\x60\x4a\x8e\x28\x9d\x5b\x6f\xa4\x9d\x81\x93\x7e\xd2\x7a\x55\x35\xf4\x2e\x2d\xe2\x8c\x6e\xca\x79\x3c\x1c\x0d\xc0\xc4\xa8\x99\x64\x71\xd6\xab\x42\xd7\x0b\x3f\xe8\x61\x10\x5a\x6e\x42\xe3\xf2\xbf\xf6\x6e\xd4\xb7\x8a\xc8\xc1\x9d\xb0\x08\x66\xc6\x5b\xec\x62\x09\x6d\x67\x2b\xcd\xb4\xcf\xea\xfa\x04\x5f\x05\x1a\xbf\x08\x8a\xba\x6b\x85\x9c\x24\xae\xb0\xfc\x26\xab\x95\xc8\x47\x07\x17\x0d\x43\x23\xd1\x57\x32\x18\x8d\xfc\x79\xe1\x00\xea\x8f\x54\x1a\x46\x29\xf1\x3a\x23\x68\xc4\xdd\x94\xd5\x0e\xc4\x61\xad\x67\x8a\x10\x69\x18\x09\x93\x3a\xe8\xf2\xe3\xe9\x2d\xd3\x65\x95\x89\x55\xa1\x8f\x65\x36\x31\xdb\x68\x48\xe2\xd8\xd3\xdc\xf7\x52\xf2\xb3\x2b\x36\xa4\xd4\x5a\xb2\x75\x57\x90\x3f\xbf\x92\x42\xaa\x2c\xca\xc7\x73\x6b\x03\xfc\xd5\xda\xd6\x3d\x28\x68\x9c\xe5\xa2\x21\xe3\x31\x52\x20\xb4\xaf\xd4\xda\x6c\xa3\x44\x09\x0d\x19\x68\x2c\x9d\xac\xf3\x41\x02\xc7\xb5\xf1\x88\x21\x30\xa6\x28\x35\x74\x1c\x45\x34\xe4\x84\x38\x08\x93\x2b\xe4\xf4\x7f\xd7\x11\x3e\x1a\x0a\xe0\xda\x58\x68\xd6\xaf\xa5\x30\xe6\x21\x7a\xa3\x2e\xae\x03\x8b\x42\xdb\x93\x6b\x54\x80\xe0\x3a\x27\x32\x64\x36\x84\x83\x94\x28\xf7\xa2\xfa\x05\x0d\x96\xa1\x0d\xa3\x20\xa3\x6c\x78\x94\xf8\xdf\x2a\x43\xc1\x11\x3f\x56\xce\x41\x5b\x9b\x07\x50\xed\x3e\x5e\x7d\xfa\x5b\xa4\xa9\x74\xd1\x42\x5b\x38\xfc\x17\x74\x00\xde\xb3\x41\x4c\x15\xc7\xfd\x6b\x6f\x57\xfb\xa6\x2c\x7e\x8b\x6f\x9c\x7c\x37\x11\x46\x48\x97\xb5\x6f\xbd\x8a\x33\x55\x8d\xf1\xb2\x0c\x25\x23\x1c\x7c\xfd\x8c\xca\x8e\x19\x9e\xde\x7d\xa6\x94\x86\xd2\x88\x14\xdc\x01\xf2\xc7\xe4\xc6\xc3\xe3\x38\x54\xa1\xe5\xc9\x6d\xfd\xbe\xa2\x7e\x87\x6a\x1a\xfe\xa5\xa1\xe2\x24\x05\x17\x91\xbd\xaf\xbb\x5b\xe8\x40\x06\xca\x2f\x0b\x93\x9f\xa0\x50\x63\xd9\x60\x1a\xea\x50\x60\x91\x90\xd3\x42\x18\x4a\x21\xd0\x50\xa7\xb1\x57\xbb\x73\x99\x55\x8b\x28\x29\xee\x44\xed\xc3\x2a\x93\x55\xa0\x25\x89\x5c\xb0\x6d\x36\x33\xea\x3f\xf4\x30\x4a\x40\x43\xad\x22\xe4\xb1\xb6\xf6\x28\x64\x77\x65\xdd\x3d\x04\x10\x8a\xd1\x9c\x57\xe1\x27\xeb\xf8\xdd\x81\x07\x8a\x75\x02\xe3\xbd\xd3\x32\xd8\x1e\x20\x31\xf8\xe5\x6c\x20\x74\x98\x85\xa4\xa1\xa1\x12\xa9\x11\x7c\x74\x18\xf9\x60\x76\x9d\xb0\x36\x0d\x8d\x48\xd1\x82\xdd\xf5\x52\x39\x34\x0a\x42\x45\x2c\xeb\xeb\x8f\xf5\x66\x3c\x04\x51\xc0\x63\x64\x23\xf7\x96\x33\x46\x2d\xc7\xd8\x0a\x1a\x05\xa9\x95\x7c\x2c\x4a\x37\xa8\x0b\xc7\x62\x77\x53\x56\x5b\x80\x61\xa4\x92\x46\x81\x62\xbe\xd6\x02\x95\x4e\x2c\x57\x87\xbd\x64\xe2\xfb\xe8\x54\x7b\xbe\xd1\xd3\xc1\x91\x30\x2c\xde\x44\x96\x0b\x9b\x0d\xf8\xf2\x78\x8f\xc2\x98\xfb\xa4\xd8\xc5\x35\x14\x85\x10\x60\x24\xbd\x81\xba\x59\x8a\xa2\xf1\xb8\xa2\x76\x8b\x5e\x17\xaa\xac\x2a\x50\x4d\x57\x42\x4a\xa3\x28\xe0\x48\x36\x86\x63\xba\xd2\x2f\x60\xbd\xc5\xc9\x50\x44\x49\x9c\x88\x5e\xbd\x6d\x5d\xa3\xdb\x7e\x9d\x29\xf8\x26\x0e\x30\xcb\x26\x42\x23\xc2\x98\xb0\xac\x8d\x5b\x34\x39\xfc\x06\xd0\x8d\x19\x49\x6d\xd6\x41\x18\x93\xe5\x59\xbb\xe2\x87\x6a\xdc\x34\xa2\x5c\x02\xf5\x98\xde\xab\x53\xa1\x73\x98\xad\x82\xa2\x11\x0b\x0c\x1a\x9d\x8b\x97\x2a\x43\xaa\x8f\x4d\x05\x6f\x3d\xef\x3d\x8d\x18\xb5\x35\xd4\xc7\xaa\x3c\x94\xbb\xb2\x2c\xea\x21\x3a\x91\x46\x2c\x4d\x3c\xb7\xc6\xbe\x5d\xed\x18\x49\x71\x6d\x3c\x01\x8b\x01\x0e\xe3\xa6\x77\xbf\x68\xc4\x15\xa0\x8e\x81\x68\xbf\xe3\x45\x01\xbe\x4e\x5a\xb1\x1f\x4d\xae\x13\xe1\x2b\xf5\xb3\xe2\xb6\x3c\xc0\x39\x0d\x1c\x8d\xb8\x09\x3c\x81\xf5\x0d\xc6\xd8\x0b\xf5\x39\xe9\x12\x47\x61\xa8\x3c\x0b\xde\x01\xa2\xc9\x07\x88\x53\x1d\xf6\x66\xd7\xaa\x79\x7d\xde\x5e\x0f\xf5\x16\x69\x24\x22\x45\xa3\xee\x9c\xc3\x7a\x23\x0f\x97\x19\xdf\x49\x88\x28\x89\x27\x35\x8f\x23\x8d\x6e\x1a\x09\x15\x6a\xb7\x59\xfe\xeb\x54\x56\x13\xfe\x53\x1a\xc9\xd0\x6a\x3b\x9e\x8a\x8d\x38\xd5\x38\x71\xfc\x63\xc8\xd4\xae\xdf\x4c\x95\xf7\x59\x61\x55\xbc\x7d\x9b\x0a\x18\x56\xde\xb8\x14\xa3\x45\xc3\xad\x1a\x1b\xcd\xf9\x79\xeb\x75\x2f\xfd\x7e\xe5\xff\x1d\xc7\x1d\xdb\xcb\x18\x0c\x58\xdc\x2f\x9e\xbe\xaf\x30\xbf\xb7\xbd\x5d\x3c\xad\xba\xbb\x30\x8e\xde\xb6\x92\xd5\xf4\x3b\x28\x11\x81\x7b\x80\x3d\x89\xe6\xac\x95\x48\x87\xda\x62\x5b\x51\x22\xae\xac\x7c\x3c\x6b\x7c\x21\x90\xb1\x8f\x7e\x2d\x5e\x2a\x18\x15\x10\xfa\x2e\xc6\x52\x2d\xb5\x87\x7b\xbb\x62\x31\x54\xf7\x5b\x70\x29\x8d\x4c\xa0\x70\xab\xca\x91\x24\xec\xd1\x2c\xcb\xc3\xa1\x6c\x17\x81\xc9\x3e\x48\x34\x13\xef\xa7\x24\x60\x61\xd8\x73\xca\xf6\x96\xcd\xe0\xbd\x48\x90\x5a\x59\x17\xf4\x6e\x70\xe8\x27\x1c\x59\x94\x44\x81\x09\x3c\x29\x8d\xad\xfa\x7f\x2e\x4e\xb5\x97\x43\xe9\x7a\x31\x8a\x7e\xfa\xe2\x78\x9c\x22\x8e\xe6\xce\x53\x12\x31\x8d\xd2\xdc\x96\x15\x69\x88\x1d\xa7\x84\x84\x04\x53\x66\x9e\x77\x9e\x84\xee\xfd\xc2\x7f\x8c\xff\xf5\x6f\x41\x22\x1e\xf5\xcb\xe0\xa6\x2a\x0f\x5d\xed\xa7\xef\x91\x58\xa9\x82\xf6\xcb\xe4\x79\x6b\xc3\x2d\xcb\x4e\xd5\x9a\x12\x02\x61\x64\xc9\x79\x87\xf6\xd1\x90\x24\x8d\x12\x1a\x5b\x31\xf1\x17\x68\xfe\xfd\xc7\x70\x9c\x29\x04\xe8\x84\x5a\xb0\x19\x46\xbf\xae\x4e\x9f\x17\xa0\x8a\x67\xee\x34\x61\x61\x8a\x59\x63\xb7\x7d\x62\xed\x01\xc6\x69\x66\x43\x6e\x6d\x7f\x08\xbd\x70\x93\x85\x60\x5b\x5d\x96\xda\xaf\x12\x97\xf3\x38\x2f\x10\x9f\x5e\x88\x44\xa2\xd7\x1e\xf8\x29\xde\xe0\x47\xd9\x9c\x6d\xf5\xe3\xcf\xc6\x74\x10\xba\x03\xee\xb9\xc8\x9a\x7f\x0a\x0d\xdb\x06\x04\x82\x4a\x9d\xc7\x79\x51\xca\x7d\xc6\x67\x20\xcc\xd8\xd8\xfd\x99\x9e\x3c\x25\x5c\x43\xe8\xd0\x2b\x9d\x3f\x79\x4e\x33\x4c\x49\x2c\x15\xb3\x15\x13\xdd\x96\x42\x62\xcd\x31\xa2\x5e\xca\x76\xbe\x6e\x5f\x33\xf0\x60\x02\x4a\x92\xd0\x2a\x02\x5f\x83\x15\x6f\x74\x54\x93\xff\x77\xce\x1c\x4a\x12\xd6\x69\xa7\xd9\x6f\xb0\x9e\xd8\x45\x24\x61\x80\xeb\xeb\xfb\x66\xbd\x1d\xcd\xf1\x24\xd6\x09\xce\xf1\x4a\x66\x4d\xd5\x9a\xf1\x36\x60\x75\x9f\xe5\x50\x37\x65\x31\x7d\xcb\x94\x69\x9b\x23\xc8\x9a\x43\xeb\x45\x8f\x2e\x96\xa6\x06\xab\x89\xef\xaf\xd7\xa3\xbf\x8b\x38\xf2\x4a\xdc\x28\xc4\x03\x03\x7b\x8c\x08\xa9\x7d\x54\xbf\x83\x2c\xa2\xde\x63\x67\x3a\x10\xa1\x6c\xa9\x28\x26\x26\xef\x6c\xd9\xc4\xe4\xb9\x64\xc8\xa3\xa0\xd7\x76\x5b\x9c\x9a\xd2\xff\x5a\xd2\x04\x27\xf6\x5b\x06\xef\x1b\x51\xd7\xef\x65\x35\x1d\x1e\x19\x0b\x24\xab\xc1\xd4\x3e\x38\xaa\x80\xf1\xc6\x22\x85\x42\x0f\xe6\x58\x96\xf9\x0d\xc0\xba\x40\xc2\x85\xe9\x85\x80\xd8\xea\xc9\x53\x61\xd1\x33\x8b\x3c\x9f\x4c\x27\x20\xb6\x08\xf8\x7e\x75\xe7\xeb\xa3\x29\x81\x34\x51\x76\x17\x32\x43\xbd\x42\x4a\x0c\x8b\xf0\x68\x3e\x94\xf3\x20\x09\x4a\x8c\x8e\xf1\xb0\xdb\xbf\x8a\xd6\x6c\xd9\x55\x96\x02\xb5\xb5\x8e\x4f\xe7\x1c\x7c\xe3\x1f\xd3\x30\x4a\x30\x69\xe3\xc9\x23\x90\x75\xd7\xaa\x0a\xfc\xe1\xbb\xa4\xa1\xb7\x57\x2c\x3b\x7f\x59\x7d\x7a\xd9\xde\x59\x6f\x87\x86\x32\x44\x03\xdb\x5d\x74\x64\x61\xd3\x88\x2a\xa1\x3a\xe2\x72\xac\xe4\xbd\x2b\x5f\x56\xad\xc7\xe8\xf9\x1a\x29\x25\x34\xd5\xc8\x3d\x5d\xbc\xb8\x0a\xb8\x21\x07\x14\xa5\x24\xe6\xc8\x8b\x70\xac\xe0\x26\xfb\xb8\x00\xf2\xa6\x94\x80\xc5\x0d\xdc\x67\x85\xbe\x15\xaa\x2b\x2e\xa3\x94\x2a\xbb\xf6\xac\xfb\x77\xfd\x2b\x9f\xc6\x7a\x86\x17\x0c\xa7\xa3\x46\x41\xe0\x21\x6c\x79\xdc\x84\xc7\x56\x52\xca\x42\x4b\xd3\x2f\x4f\x9f\xb7\xdb\xed\x6b\x79\x1c\xcf\x0e\xca\x28\x45\x7e\x94\xf6\x23\x6f\xca\xee\x75\x79\xa4\x31\x11\x63\x3d\x92\x4c\x75\x90\x77\x4a\x39\x89\xa5\x33\x87\xaf\x4e\xd5\xb4\xb4\xb1\x6d\x37\x88\xfe\xef\x40\x5b\x5b\xc8\xcd\x35\x58\xa6\xfe\xee\x22\x2a\x44\x12\x84\x85\xff\x43\xca\xc3\x14\xfa\xda\xad\xcd\x19\x2b\x36\xa5\x69\xca\x12\x6d\xa3\xe6\xd9\x1b\x54\xb6\xca\xec\x00\x45\x33\x03\xf0\xa4\x34\x55\x04\x43\x05\xfb\xa3\xdd\xc4\xc6\x9f\x2b\x35\x06\xdc\x0e\xea\x36\xb9\x33\x05\x57\x4a\x45\x60\x39\x61\x2c\xb1\x55\x6b\xc7\xa3\xd7\xe3\xc3\xf8\x54\x70\x25\x9c\x2f\xb9\xa9\x4a\x7d\x9a\x3a\x01\x54\x52\xab\xc0\xe3\x22\xee\xe3\x6a\xad\xf9\xf8\x2b\x95\xcc\xf2\x32\x99\x53\x81\xdf\xff\x41\x1c\x20\x1c\x5b\x4a\x54\xc6\xa9\x1c\xe6\x3e\x44\xbe\xe8\xa2\x86\x54\xea\x04\xc9\x02\x76\x4f\xcb\xd5\xd3\x32\x0a\xbe\x40\xc5\x51\xaa\x15\xc3\xca\xd6\xbd\xd0\xfa\x3b\x9c\x51\x1c\xbb\x5e\x10\x12\xcf\xb4\xe8\xa4\x8c\xe6\x4a\xfc\x28\x35\xa1\xa5\x10\xb1\xd6\x49\xe4\x9f\xc8\x74\x9a\xc3\x85\x7e\x80\x97\x27\xf8\xf3\x62\x64\x63\xf4\x70\xc6\xc4\x78\x86\xc8\xf6\x08\xbc\x85\x1e\x78\x46\x59\x10\xa4\xbc\x37\x6b\x1e\x1d\xa7\xce\x37\x31\x5f\x75\xd0\xf6\x07\x4c\x87\x61\x5d\xd9\xf2\x06\xe0\xbe\xd4\x88\xb5\xaf\xbb\x2b\x26\x01\x06\x1a\xf6\xc7\x2a\x53\xb0\x1f\x3a\x3b\x2c\x48\x0d\x1a\xc8\x77\x8f\xcb\xef\xab\xeb\x7d\xf8\x9f\xfd\xf5\x62\xb7\xea\x5a\x25\xc3\x4c\xec\xfe\x90\x7d\x74\xeb\x99\x05\xca\xa0\xe5\xec\xe4\x66\x37\x55\xf6\x96\xe5\xf0\xd2\x79\x5d\x2c\xd0\x56\xa3\x47\xe4\xb9\xf5\x53\xeb\x41\x1b\x30\x9c\x38\xb6\xa8\x7e\xbf\x7d\xbc\xbb\xde\xdf\xad\xef\xd7\x3b\xdf\x21\x0c\x28\x72\xfa\x6c\x77\xff\xb2\xb6\x55\xd4\x7a\xff\x63\x94\xc5\x04\x8d\x4e\x59\x48\x15\x56\x91\xc8\xd3\xe7\xb6\x3c\x5c\x2e\xf8\x9e\x1f\xc2\x30\x0d\xb0\x54\x49\x42\xf3\xa8\xbb\x27\x8d\x24\x4f\x55\xaf\x12\x8c\x45\xba\x83\x33\x8a\x45\x86\x44\xda\xd7\x02\xed\xe6\x73\xa5\x94\x11\xca\xb5\xfa\x42\xee\x6e\x34\xcd\x18\x49\xad\xf0\xb7\xe5\xa1\x2e\xab\x5e\x0d\xe2\xea\xd3\x86\xf1\x26\x79\xdb\x81\x59\xc5\x88\x4a\x22\x67\xab\x3a\xbb\xff\xa6\x35\x81\x88\x7f\x60\x4a\x23\x66\x41\x29\x33\xe5\xf5\xbe\x8f\xb2\x54\x50\x0d\x88\xc3\xd3\xc0\x4a\xaf\x7b\xd8\x77\x37\x40\xac\xdd\xd9\x2c\x0c\x0f\xfd\x87\x1d\x78\x76\x17\xca\x78\x40\xf1\xac\xeb\xd1\x60\x94\xf1\x30\xe0\x96\xb0\xb8\xd4\xcb\xa1\xc9\xc2\xe2\x88\x23\x98\xca\xa5\x2a\x2d\x21\x56\x27\x27\x77\x5e\x09\x4a\x59\x4c\x38\xba\x39\x47\x91\x69\x47\x5d\xdb\x5d\x8c\xd1\x18\x3d\x20\xe4\xb3\x1e\xc7\x1e\x58\xcc\x13\xdc\x69\x95\x28\xf6\xd9\xfe\x7f\x4f\xfd\x13\xc7\x71\x84\x8a\x11\x43\x3e\x7e\xca\x62\x00\x44\xca\xeb\xd2\x8a\xd4\x8f\xb7\x05\x96\x84\x21\x72\x30\xff\x28\x3f\x7b\x15\x26\xca\x12\xae\xbc\xe4\x90\x83\x31\x3e\x61\xb2\xfb\xfa\xb7\xa9\x3c\x96\x86\x96\x9c\xc7\xe6\x62\x2d\xe0\xc2\x5f\x36\x25\x14\x5d\x24\x25\x2a\x5d\xef\x5f\xca\x5c\x0f\xf1\x8c\x94\xa5\x09\xb5\x6c\x57\xed\xda\xda\x3f\x3f\xac\x77\x7b\x64\x86\xe9\xda\x41\x72\x1b\xcc\x2a\xa0\xb5\x3e\xbf\x83\x52\xe2\x57\xc4\xf8\xd0\xb3\x61\xa9\xb1\xa4\xae\xda\x51\x7b\xd6\xe7\x81\x6f\x26\xe2\xc8\xaf\x8d\x0b\x4a\x20\x94\xc9\x30\xe0\x96\x5b\xd2\xba\x08\xf7\x65\xd1\xbc\xe6\x9f\x83\x72\xe4\x1f\x65\x7e\x3a\x40\x47\xc1\x3a\xfd\x3d\xed\x74\x9b\x3c\xaa\xc4\x72\x67\x5c\x42\x22\x4f\x7e\x9e\x72\x5b\xd2\x97\x15\xad\x13\x61\xc1\x2d\xf5\x30\x0f\xc7\x54\xc2\x80\xf5\xb6\x13\x4e\xe2\x1b\x98\x84\xab\x98\x82\x44\x7b\x86\x47\x7b\xa7\xef\xff\x59\x9e\xa3\x0b\x28\xd3\x02\x30\xf0\x8c\xb5\xf0\xa8\x72\x67\x0c\x54\x96\x08\xcf\x3d\xdb\x7f\xe3\x41\x19\xbc\xfb\x19\x44\x29\xb2\xbd\xbd\x8a\xfa\x75\xd9\x71\x5d\x53\x06\x89\x95\x08\x93\xa7\xcf\x9f\xa2\xca\xcb\x4a\x2f\x5f\xa1\x9e\x2e\x04\x90\x16\xd2\xbf\xf7\x1f\xd5\x12\x7a\xb4\x17\x73\xac\x51\xc3\x83\x87\x81\xb1\xcc\xc6\x05\x7c\x34\x4f\xa0\x4f\x6a\x6c\x3d\x30\x30\x90\x24\x5e\xdc\x27\xb4\x10\x63\xdf\x66\x62\x8a\x5b\xf7\x0f\xa8\xb2\x66\x28\x42\x40\x79\x40\x63\xe4\x3c\x31\x59\x9e\x2f\xaa\xca\x2b\xf7\x53\x1e\xb0\x14\xe1\x34\xae\xf4\x02\x91\x92\x33\x63\xc7\x03\xc5\xd0\x6a\xc9\xb3\xba\x19\x16\x2a\xce\x25\x80\x79\x00\x4c\x7b\x10\x8e\x38\x40\x31\x1f\xa8\xe4\x61\x62\x65\xbd\xae\x45\xf3\x2d\xab\xfc\x2a\x69\xad\x31\xcc\x4c\x3f\x94\xbf\x4e\x96\x35\x0a\x8d\x89\x2d\x54\x6f\x99\x82\xe9\x35\xb4\x74\x04\x1a\xe2\xd0\xc9\x9d\xf4\x40\x5e\xca\x23\x02\x81\xa3\xeb\x98\x12\x57\x7c\xe9\x46\xf2\x88\xc7\x18\x00\xb3\x4c\xef\xd7\xf6\x2c\xbd\xe0\x77\x70\x42\x22\xf0\xf4\x68\x7b\x44\x95\x20\x1f\xd4\x1e\x0e\xc7\xe6\xf3\x06\x6c\x3a\xe8\x5d\x54\xba\x5d\xab\x7e\x95\x72\xc2\x2c\x90\xca\x95\x3d\xd8\x20\xcf\xa3\xe9\x9a\xe3\x00\xf7\x68\x8f\x53\x58\xbe\x66\xb9\xae\x26\xe0\x37\xca\x89\x04\xe2\xe6\xbf\x2d\xc0\x76\xab\x60\xf2\xba\xbe\x37\x68\x0c\x3c\x3b\x63\xdf\x83\x1d\xc7\xaf\x43\x81\x53\x1b\xb6\x85\x43\x76\x3a\x6c\x50\x7e\x79\xda\x25\xd6\x36\x6f\x9b\x7f\x41\xcb\x41\x39\xe3\x11\x1e\x42\x96\x7d\xf9\x69\xb1\x5b\xed\x6f\x1e\x9f\x9f\x76\xb7\xfe\x2d\x79\x60\x8c\x97\x13\x42\x15\xdb\xae\x21\x32\xb1\xd5\x35\x2a\x9e\x8b\xfa\x15\x72\xf3\xc7\x8c\xf4\x3a\xe5\xdc\x84\x81\xd3\xa4\x39\x63\xac\xbf\xf0\x6d\x63\x2a\x31\xf0\xe4\xad\xd8\x0b\x52\xa2\x93\x1b\x25\x5c\x62\xd4\xf6\xdb\x07\xf6\x7e\x3c\x82\xa7\x3b\x9c\xf4\x03\x6b\x23\x67\xc5\x7a\xe9\xf7\x76\x9e\xc6\x01\xd2\x0a\x62\x50\xfd\x5b\x99\xeb\x33\x48\x2b\xe5\x92\x91\x68\xa4\xe4\x84\x3b\xfb\xcc\xf1\xca\x65\x9a\x70\xd1\x55\xa3\xaf\x3e\x1a\x2c\x5c\xc5\xed\xb7\x75\x16\xea\x55\xc7\xeb\x47\xb9\x94\x0a\x61\x11\xcd\x6b\x56\xe9\xbe\x96\xa3\x67\x92\xa7\x5c\x05\x26\x4a\x5d\x9d\x27\x14\xf5\x99\x3f\xc2\x15\x0b\xac\x95\x54\xb6\xae\x74\xf7\xb3\x84\xf9\xf4\x84\x8b\x12\x4c\x5e\x48\x87\xa9\x67\x66\x3e\x5d\x48\x07\x72\x9d\x86\x08\xe6\xc1\x87\xba\x3a\x55\x13\xb4\x06\xd7\x22\x48\x7a\x32\x34\xa4\x5f\xfd\xaa\xec\x75\xe4\xae\x70\x0d\x14\xd3\xb2\x78\x08\x9e\x0e\x03\x2d\x3b\xca\x41\x29\xe5\x79\x75\xa7\x8a\x81\x94\x9b\xd0\x46\xa6\x6d\xe0\xda\xff\xc6\xb4\xbe\x01\x8e\x43\x9e\x8b\xca\xc9\xf8\x3e\xb5\xb3\xc0\xf5\x88\x83\x40\xe3\x4e\x9b\x1f\xef\xc5\x87\x3d\x40\xbb\x26\x62\xe5\xda\x2d\x69\x97\x3d\xea\xee\xc5\x47\xd7\x1c\x13\x43\x07\xe2\x37\xeb\x42\x95\x07\x18\x9c\x77\xa3\x71\x89\x03\xa3\x6d\x35\xfb\xdd\xb3\xbf\x42\x18\x31\x5c\x4a\x5b\xcc\xa3\xf4\x93\x2f\x0e\x81\xe3\x9d\x5b\x8f\xc0\x3a\x84\x57\x9f\xcb\xb9\x2a\x31\x1a\x47\xb1\x4d\x96\x29\x71\xec\x14\x64\xfc\x65\xa2\x24\x45\x02\xa6\x3d\xa8\xeb\xf2\x24\x2f\x13\x37\xf9\xfe\xda\x62\x8a\x6d\xfe\x71\xad\xba\x41\x8a\xc0\x46\x1c\x8c\x17\xc8\xb3\xb5\x29\x03\x8c\x57\x4c\x68\x82\x91\xa1\xfd\x80\x32\xf9\x6f\x7b\x0c\x31\xe1\x34\xea\xb1\x75\xcf\x45\xa6\xca\xaa\x78\x12\x85\x7a\x9d\x45\x28\xc4\x44\x51\x9c\x64\x57\xa2\x51\xaf\xd7\xd0\x08\xf5\xea\x58\xe0\xbc\x61\x10\x06\xce\x1e\x88\x69\xca\xb1\x80\x4f\x67\x75\xb3\x6f\xcf\xc3\x7d\x0d\x33\x04\xa0\xff\xed\xfa\x4b\x8e\x51\x30\x21\xcb\x53\x63\x0b\xc2\x27\x77\x67\x51\x82\x3b\x98\x63\x6b\x8b\x36\x50\x16\x9f\x33\xc8\xa5\x98\xc5\x02\x8b\x9e\x1c\x55\xd4\x55\xa6\x7d\x7c\xf7\x42\xd4\x27\x66\x69\x8a\xdb\xf4\xcf\xbb\xfb\xdd\x15\x6a\x73\xfb\x6f\x10\xbb\xd9\xb8\x58\x6d\xdb\x63\x5f\x34\x7d\xe6\x68\xce\x5f\x8f\x63\x1e\x60\xac\x0a\x29\x18\xbe\x89\x73\x27\xce\xf7\x4b\x19\x46\x30\x6d\x2e\xc4\x3a\x27\x43\x1a\xa8\x59\xbf\x26\x8e\x05\x97\x71\xef\x86\xb9\xc4\xb0\x6f\x54\x91\xf4\xf8\x91\x32\xd7\x97\x65\x69\x69\x9c\x50\x89\x87\x21\x02\x2b\x96\x27\xf9\x7f\x74\x35\xe3\x44\x01\xc2\xab\x72\x10\x1a\xaa\xbd\x0f\x24\xc4\x82\x5b\x41\xe2\x97\x4e\x77\x5c\x77\x4d\x22\xc4\xf9\xb0\x38\x35\xe5\xf6\x98\x67\xcd\xf2\x54\x0d\x31\x2e\xae\x9b\x8c\x63\x0b\x2c\x29\x4c\xe9\xf1\xb4\xae\x49\x25\x14\xf3\xf4\xf7\x8b\x7f\x8f\xc8\xec\x68\xac\x74\x88\xe6\xe0\xe2\xfe\x6a\xb1\xdd\x2e\xae\x1f\x9f\xf0\xf4\xec\x9a\x81\x84\x2e\x1c\xf9\x54\x96\x07\x0f\x85\x84\xe9\x5e\x01\x46\x2a\x57\x4f\x6c\x59\xc4\xee\xb2\xe2\xd7\x74\xe8\x0c\x4b\xa3\x70\x50\x31\xfe\x78\x1c\x95\xfd\x90\x7e\x66\x13\x37\xb5\x93\x20\xb6\x8a\x9f\xba\x7c\x2f\x76\x99\xfa\xb5\x83\x73\x19\x7e\xd7\x35\x8c\x40\x76\xbc\x1a\x6b\xbd\x2b\xcf\x95\x4a\x68\x12\x52\x8a\xf5\x89\xfb\xee\x60\x1e\xaa\x76\xd0\x24\xd4\x56\xe8\xea\x4a\xd4\x70\x23\x2a\x58\xba\x83\xd2\xcb\xa9\xd1\x84\x10\xc2\xdd\x88\x20\xcc\xa9\x30\xe5\xd5\xe7\xfa\x7a\x72\x1f\x42\x52\xb4\x66\x1d\x83\xcb\xaa\xe7\x84\xa3\x09\x61\x02\xab\x0d\x8e\x65\xdd\xdc\x8a\x4a\x0f\xce\xc9\x84\x24\x14\x43\xef\x79\x59\xc3\xcf\x61\x14\x6a\x36\x9b\x32\x19\x01\x0a\xd6\xfd\x47\x30\xd2\xf6\x20\xf2\xfc\xb9\x06\x24\x15\x1b\xba\x77\x09\x0b\x09\xb8\xb2\xe2\x9b\x53\xa1\x1f\x7b\xeb\xb9\x37\xc7\x13\x9e\xc6\x91\x8b\xa7\xfc\xcc\x9a\x57\x0b\xdd\x1c\xf2\x82\xfa\x7c\xec\x7c\x79\x06\x4d\x62\x1a\xe0\x41\x56\xe6\x43\x9e\x3c\x9a\xc4\xca\xc6\x05\xae\x45\x23\x6c\xb6\x79\xb8\x09\x24\x31\x58\x0f\x77\x0b\x85\x46\xab\x7c\x57\xe2\x3e\x39\x9e\x4a\x49\x12\xc8\x68\x88\xb0\x1d\xaa\xa5\xd3\x24\x35\xc2\x78\x20\x8c\xfd\xd9\xae\x44\xd3\x25\x3f\x33\x89\x12\x41\x6c\x85\xe2\x26\x17\x7f\x89\xdf\x95\xda\xd2\x44\x88\x00\x27\xd0\xc9\xd6\x77\xae\x9a\xd7\x65\x39\x75\xc9\x12\x49\x09\x82\xdc\xb6\x57\xb3\xda\x26\xbe\x17\x44\x91\x1c\x20\xa8\x6a\xe8\xf5\xea\xba\x57\x51\x21\x8b\x75\x8f\x93\x1c\x18\x27\xe3\x8a\x43\x9a\xa8\x48\x20\xbb\xd6\xe6\xc7\x0c\xef\xe1\xfc\x13\x28\x12\x20\xab\x04\xf2\x9e\x7b\x8e\xfc\x49\x17\x6a\x91\xaa\x2e\xd4\xf7\x84\x19\x93\xee\xe9\x74\x18\xba\x3c\xb2\x85\xd3\x95\x87\x1f\xeb\xcd\xdd\x0c\x7c\x25\xd1\xc4\x6a\x4d\xd9\xf7\x38\xdb\x33\xbf\x7c\x4c\xcd\x03\xdc\x5c\x5e\x45\x6d\xa7\xd2\x78\xb4\x21\x0a\x4c\x34\x50\xe3\x69\x2d\x1a\x1b\x32\x7b\x2e\xb2\x37\xa8\x6a\x18\xd0\xc5\xd1\x04\x98\xc1\x55\xd2\x6e\x93\x1e\xdf\x18\x76\x8d\xa9\xc2\xd7\x5d\xed\x36\x65\x23\x9a\xd2\x05\xd0\xbf\xe4\x1e\xa2\x09\x68\x83\x58\x2f\x07\xe4\xba\xf0\xbd\x0d\x51\xb8\xee\x6e\x6f\xd0\xc9\x9f\x99\x5d\x69\x40\x2c\x19\x71\x01\xef\xdd\xa2\x1c\xbb\x24\xff\xfd\x9f\x89\x1d\x3a\x7e\x94\x34\xa4\x69\x98\xfa\x98\x0b\x92\x51\x95\xed\x0e\x74\xca\x9a\x4f\x17\x0d\x18\x02\x1c\xd2\x90\x19\x04\x7f\x5d\xdd\xba\xca\x38\x9a\x86\xdc\x60\xe5\x1a\xc2\xfd\xdf\x8e\x41\x10\x7d\xfd\xf6\x69\xc4\x52\x3c\x59\x5d\xc9\x73\x47\x86\x31\x9e\x49\x69\x94\x72\x01\xa8\xf8\x5c\xdf\x82\xe7\xd7\x69\xff\xac\xf0\x68\x6a\x57\xc1\x46\x64\xd5\xf4\x57\x22\xc6\x1c\x7f\x9d\xbd\x14\xcf\xc7\x39\x23\x68\x3c\x82\x44\x25\x88\xa5\xf2\x1b\x83\xe3\xa6\xf8\xbc\x6c\x3e\xa5\x2c\x08\x2d\xf0\xb7\xdd\xaa\x3a\xb4\x7f\xa7\xcb\x4d\x53\x46\x49\x12\x7b\x9e\x8e\x7c\xb8\x4d\xa6\x3c\x8a\x11\x7e\xb4\x03\xf5\x5a\x94\x79\xf9\xf2\x49\xbf\xf9\x9f\xc5\x81\x0d\x33\x38\x83\x78\x40\xea\x32\x7b\x80\xa5\x71\x14\x4b\x17\x4e\xde\xfe\xca\xf2\x7c\xf5\x26\xf2\xd3\x28\xe6\xf8\xf7\xc0\x92\x69\x4c\xb9\x07\x18\xfd\x10\x55\xd6\x7e\x90\xaf\xa9\x90\xfa\x67\x48\x82\x04\x9c\xc3\xb5\x6a\x5e\x6f\xca\xca\xef\x0a\xae\x3d\x25\x12\x9f\xd1\xe9\x01\x76\x0a\xa5\x53\xc6\x1a\x9a\xa6\x82\xa0\x25\xf9\x00\xef\x16\xae\x72\x59\x07\x98\xa6\x82\x31\x9f\x92\x3b\x64\x4d\x03\xda\x42\x85\xca\xa9\xd3\x94\x0a\x27\x5e\xec\x20\x1f\x00\x56\xf3\xee\x4b\x7c\x5d\x2a\x38\xc7\xa8\xe8\xfe\x78\xaa\x5f\xef\x44\xa1\xd7\x17\xa2\x2c\xa9\x8c\xa3\x04\x3a\xf0\xc1\x13\xd4\xe5\xa9\x52\x80\xe7\xd0\x19\x44\xd8\xff\x24\x01\xb4\x90\xae\x20\x87\xbf\xc4\x03\x34\xef\x65\xe5\x33\x94\xa9\x94\x0c\x65\x66\xac\x43\xb6\x69\x3d\xee\xd5\xc7\x60\x7b\x1c\xcf\x5d\x29\x3b\x75\x09\xcc\xc8\xe7\x19\x14\xcd\x0c\x2f\x07\x4d\xa5\x31\x9e\xfc\x63\x14\xa1\x4b\x75\xa8\x71\xf9\xbf\x65\xf0\xbe\x85\x3c\xc7\x00\x64\xbd\x68\x56\x1f\xbe\x08\x48\x55\xa5\x28\xea\xcf\x99\x10\x5c\xaa\x41\xc5\xae\x5c\x7a\x03\x47\x58\x78\xf4\x9e\x9e\x1e\x23\xae\x3f\x24\x21\x19\x09\x73\x38\x0f\xfb\xd3\x56\xf6\x8e\xb7\xe9\x14\x00\x10\x32\x80\x39\x28\x5b\x79\x77\xe5\x1f\xdb\x04\x69\xdc\x1d\x44\x78\x7e\xd8\x06\x11\x84\x16\xde\x37\xd4\xe6\xb5\x59\x89\xd6\x6b\x9c\x5d\x47\x22\x60\x06\x8b\x12\xf6\x5d\xf9\x0d\x1a\x10\xd3\xa3\xb0\x7f\x71\x11\xb2\x84\xb9\x12\x81\x07\xf8\x68\x96\x9f\x3d\x92\x4e\x44\x51\x04\x0e\xc2\xf6\x24\xb2\x1a\xf4\xaa\x8b\x2c\x09\x12\x01\xc6\x43\xb1\x42\x78\xca\x5f\x41\x05\x25\x96\xec\xe4\x05\x9a\x15\xd6\xa5\x6f\xcf\x12\xbf\x82\xc6\xb6\x3a\xa1\xd9\xaf\x0f\x07\x57\x7b\xea\x6a\x46\xca\x0e\xc7\x24\xa8\xb4\x80\x05\xfc\x9c\xcf\xc5\x28\x00\xe5\x30\xfe\xad\x39\x38\xfa\x3c\x82\xc7\x04\xa5\xf4\xeb\xd7\xf2\xbd\x9f\xbd\xbe\x11\x0c\x22\xf3\xf2\xf2\xe5\xaa\xbd\xc0\x38\x0b\x2b\x92\x50\x7b\x55\xf4\xef\x27\x5d\xd6\xdf\xb2\xb7\xe9\x86\x2e\x12\x1e\x22\x21\xd1\xb1\x82\x71\xe8\x25\xf1\x1d\x84\xd5\x75\x45\xe0\x25\x5a\xdc\xfb\x53\x95\x9d\x6d\x66\xc3\x35\x20\x12\x25\x55\xcf\x14\xb7\x2b\x7f\x42\x36\xbf\x56\x45\x1a\x05\x38\x9f\x2a\xf1\xee\x40\x34\xb3\x05\xd5\x54\xa4\x71\x84\xf8\xc5\xba\x34\xa8\x62\x38\xa5\x97\x9e\x5c\x56\xd9\x03\x14\xc9\x1e\x76\xaf\x59\xf1\xab\x8f\x4f\x88\x54\x1b\x4c\x29\x8b\xa2\x38\x4d\x90\x26\xad\x93\x96\x8e\xc8\xa3\x5b\x43\xc9\x71\xa4\x7e\x4d\x5e\x48\x85\x48\x19\x6e\x6b\xb6\x90\x64\x5d\x3b\x91\x0a\x7f\x5b\xa1\x02\xe2\xb2\x63\x55\xd6\x7c\x76\xaa\xff\xae\x59\x46\xb6\x1c\x2a\xab\xbb\x5a\x48\x54\xeb\xea\xdb\x65\x98\xf6\x15\x3d\x8b\x3c\x7f\xcc\xf5\x99\xa4\xb9\x3f\x0f\x85\xa4\x1a\xab\xa4\xf6\x58\xcd\xdb\x2c\x4e\x95\x98\x4c\x5a\x99\x0a\xed\x42\x8d\xad\x95\x30\x39\xb3\x85\xe2\x0c\x5d\x24\xa4\xf4\xff\x91\x1d\x7f\x36\xd9\xeb\x58\x12\x77\x70\x7a\x0f\x96\xa1\x52\x91\x77\x4c\xfc\x8b\x8c\xa3\xa6\xa3\xbe\x5a\x74\xc2\x2f\x67\x87\xdb\xe4\x79\x20\x14\x96\xda\xae\x54\x50\xd7\xa3\x82\x89\xf9\x49\xa0\xa3\x08\xb3\xf3\x18\x25\x80\xd3\xa1\x3d\xe7\x44\xbf\xb0\x75\x62\x03\xe2\xb9\x85\xd4\xd6\xa3\xe2\x41\x01\x81\x8e\x8c\xf7\x10\xd5\x2b\x3a\x1e\xe1\x64\x04\x21\x0a\x2d\x4b\xcd\xf5\x30\x8b\x22\x80\xc7\xc2\x81\x11\x76\xa2\x7a\xe9\xc5\xd5\xd0\x82\x4d\x27\x17\x31\x69\x48\xb9\xaf\xc2\x1d\x32\x71\xfe\x31\xf1\x0d\x84\x91\xda\x0a\x62\x61\xc8\x69\x0f\x1f\xc7\xbc\xac\xa0\x42\xca\xdf\xa1\xb2\x3e\x95\x81\x02\x74\xcf\x1e\xe0\x7d\x5d\xd7\xa7\x73\xcb\x77\xe0\x49\xca\x30\x20\x9a\x76\x4c\x0e\xad\x37\x27\x5e\x26\x1b\x9c\x0c\x13\x2e\x62\x8f\x46\x29\x4d\xd6\x9c\x53\x86\x53\x19\xc5\x11\x06\x91\xf2\x4c\x41\x51\x43\x57\x62\x3f\xc9\x09\xc8\x28\x89\x51\x48\x6e\x29\x8e\x8d\x18\xa3\xe1\x64\xa4\x8d\x2d\xe2\x6f\x67\x5d\x56\xbc\xec\x6f\xb2\xa2\x80\xcf\xba\x6b\x37\x4c\x3a\x26\xb6\x01\xc6\x69\xbd\x7c\xf4\xc6\xbf\xa4\x24\xc2\x22\xd2\xe3\x6b\x25\xba\x1a\x88\xf6\xaf\x58\xe8\xf2\xd6\x11\x00\x0e\x37\x2c\x49\x13\x2b\xa6\xe8\x1c\x42\x3d\x79\x33\xaa\xe3\x18\xb1\x3f\xa7\xa9\x46\x14\x95\x4c\xc9\x4e\x4d\xc4\x53\xb5\x4d\x7e\x1e\x53\x81\xa7\x8f\xb5\x77\xae\xa0\x6e\xbc\x65\x34\x3f\x73\x65\x9c\x92\x38\xed\x32\xbc\xf9\x20\xb6\x20\x13\xae\x68\xe2\x48\xac\xab\x5f\xd0\x60\x04\xcb\x37\xa6\x8c\x23\x24\x6f\x5d\x3f\x81\xd0\x9f\xdd\x9f\x39\x43\x93\xe0\xa5\x02\x68\xf6\xe5\x41\x4c\x9c\x2f\x99\xc6\x96\xa8\xc4\x72\x48\x3f\x94\xfa\x0c\xc9\x3f\xde\x8d\x65\x6a\x04\x22\xfa\xb5\xc8\xfc\x4d\x44\x62\xe9\xb1\x01\x39\x81\xf6\x06\x60\x5f\x9c\xda\x15\xd7\x87\x5d\xa4\xd4\x4c\x53\x5f\x52\x29\xf2\xab\xa1\x37\xd3\x3f\x8d\x34\xda\x66\x2d\x86\x3a\x72\x67\x45\x70\x52\x07\x52\x19\xbf\x61\x5a\x65\x89\xfb\x2e\xe3\x2f\x75\x00\xd2\xf9\x93\x18\x6d\xfb\x7b\xa6\xb3\xd4\xdc\x62\x5a\x1d\xc9\xdc\xe6\x55\xd4\x80\x9a\x37\xdd\x75\x53\x1b\x32\x3e\x15\xa2\x6e\xdd\x99\xd1\x42\x18\x6f\x59\x12\x84\xb6\x99\xe4\x4e\x55\x73\x57\xee\xca\x06\xee\xb2\x3f\x4f\x56\xbe\x6b\x84\x52\x96\x20\x85\xea\x05\xab\xf6\x32\xeb\x7c\x74\x69\x8c\x40\xfe\x65\xcf\x1f\x7d\x2f\x86\x69\x23\x15\x70\x95\x40\x4f\x54\x62\x8b\xf1\x87\xf1\x22\x15\xd2\xc0\x4b\x54\x2c\xaa\x26\xab\x9b\x1b\x98\x2e\x4c\x15\x25\x80\x15\xeb\x79\xf9\x0e\x15\x16\x3d\xdc\x94\xd5\xae\xd4\x5d\x1e\x58\x45\x20\x75\x1f\xc8\x68\xad\xf0\x45\xa1\x27\x75\x4c\x97\x12\xfa\xe3\x91\x56\x24\x11\xb8\x4b\xb6\x2e\xe3\x9d\xe5\xbf\xf8\xfa\x7c\x55\xc4\x10\x64\x12\x43\xba\x88\x45\x9e\x5f\x8b\x46\xdc\x94\x95\x97\x0c\x1a\x2f\x3a\xc5\x22\x4e\xe9\x90\x00\xc9\x9c\x0a\x7d\x5d\x16\x83\xf9\xa8\x98\x90\x98\x5a\xf6\xe5\x78\xed\x4c\xbb\x08\xd1\x52\x3c\xb6\x41\xf2\x6f\x99\x2e\xce\x42\x50\x8a\x1b\x1a\x0d\x08\x97\x7e\x8a\xaa\x12\xc5\x39\x97\xc4\xfc\xa5\x63\x93\x22\x5e\xa7\x80\xf7\xa7\x93\x84\xfa\xb9\x68\xb2\x7c\xa8\x04\x4e\x55\x42\xad\x53\x60\x27\xe6\x5c\xe0\x41\xa5\x61\x12\xc4\x43\x53\xde\xb9\xc1\xe8\xb4\xed\xbb\x83\x3b\xee\x4f\x6e\xf7\xbf\xc9\xe8\xbf\xf3\xf4\x7b\x54\xa5\x71\x98\xf6\x4f\xd0\xda\xd8\xdf\xc4\x01\x36\xe5\x78\x81\xf9\xce\x69\x18\x7b\x26\x67\xd4\xbb\xdb\x40\xeb\x86\x3a\x72\x92\x49\x5f\x19\x1a\x8b\xe6\xb1\x94\xdb\xdb\x9e\xfe\x89\x2a\x01\x16\xca\x90\xd5\xbd\xbc\xe2\x60\xae\xb8\x5e\x32\x48\x95\x71\xd3\xfb\x20\x45\x5d\x0b\x3d\xf0\x3b\x07\x36\x87\x92\x54\x00\x99\xea\xba\xdc\x8b\x0f\x47\x4d\x37\x08\x19\xa8\x76\x67\x37\x5e\x28\xf0\x8c\x9a\x65\xbc\xd8\x15\x70\x8e\xb9\x7d\xb0\xca\x01\xcf\x99\x2f\x1f\xb9\xf0\xc9\x21\xb6\x2a\x9b\x9e\xe8\xb9\xbd\xc3\xb9\xd0\x5c\xdb\x4f\x63\x6e\x72\xf9\x2a\x8a\x02\xf2\xde\xa6\xc2\x9b\x7b\x32\xb8\x0b\xcf\x24\x35\x6e\x28\xb7\x50\x95\x3d\x1d\x32\x55\xe0\xb8\x37\xfe\x57\xd4\x4e\x25\x70\x70\x06\xeb\x40\x5a\x45\x43\xbb\x64\x3a\x27\xde\x11\xa6\x8d\xee\xa0\x03\xc9\x31\x5f\xbd\x85\x19\x46\x0a\x1d\xc6\x1c\xac\x88\xc1\xf1\x5e\xd4\x9d\xb0\x34\xd5\x51\xc8\x30\xe5\x67\xcb\x86\xfe\x75\x3a\xc3\xa6\xeb\x28\x4c\xf0\x38\xe9\x08\x94\x96\xb9\xc8\x3a\x1d\x76\xaa\xa3\x48\x06\xc3\xd8\xf1\x7d\x59\x41\xeb\xd4\xcd\x1e\xa8\x3a\xa2\xd6\xac\xa8\xa1\x87\xa5\x0c\x27\xfd\xa0\x27\x37\xa0\x3a\x4b\x60\x50\x68\xa6\xa3\x44\xc8\x5e\xbb\x7c\xbf\xdd\x2d\x9e\x76\xfb\xcd\xd3\x6a\xbd\x7c\xdc\xef\xd6\xf7\xab\xed\x6e\x71\xbf\x99\xbe\x85\xea\x78\x32\xba\xac\xfb\xa4\x0b\x81\x14\x27\xd9\x3b\x64\xd6\x35\x5d\x17\x3e\x5e\xe9\x7a\x50\x2a\x63\xaf\x68\x57\x8a\x6a\x8c\x7e\xd2\x34\x51\x48\xa2\xa3\xec\xfc\xe8\x16\x89\xcb\x04\x8f\xb9\xfc\xa8\x66\x5c\x30\xab\x68\xb6\xd6\xc8\x3f\xec\xea\xc4\xfc\xe3\x30\xcd\x95\x0d\x9e\x54\x19\xd4\x57\x23\x58\x91\xe6\x34\x46\xd2\xaf\xdb\x17\x35\x9a\x31\x31\x97\xe8\x2b\x1c\xcb\xba\x71\xd2\x94\x70\x56\x8e\x31\x7e\xed\x58\xc6\x48\xa2\xf8\x4d\xd4\x03\x5e\x31\xaa\x93\xd8\x20\x58\xe0\xe7\x4f\x32\xba\x45\x1a\x25\x58\x73\x81\xd0\x99\xfa\xf5\xd4\x5c\x97\xef\xc5\x8f\x11\x64\x50\xa7\xd4\xba\xaa\xab\x42\x97\xef\x07\x28\x9a\x27\x57\x92\xda\xcd\xbb\x94\xc5\x38\xb5\xf1\x2a\xb8\xeb\x63\xc9\x4f\xeb\xe5\x75\x1e\xa5\xeb\x2a\xb8\xc0\xb0\xfa\xe2\x79\x77\xfb\xf8\xb4\x5d\x7f\xbb\x5d\x6c\x6f\xbb\xc6\xc4\xa9\xf6\x23\x05\xa4\x3b\x00\x77\xe5\xd5\x69\x3a\x8d\x85\x48\x13\x85\x0c\xe0\x8d\x2a\xb3\xe2\xe6\xd4\x9c\xba\x65\xa8\x85\x56\x08\xe4\xb3\x7a\xa0\x93\x1f\x42\x84\xec\x13\x88\x0c\xdc\xbf\x43\xb6\x7f\x41\xef\xdd\x37\x1b\x1b\x96\xb4\x7b\xf1\xfe\xf5\xac\x70\x5d\xb7\xee\x5d\xd8\xa9\x8f\x3e\x16\x79\x56\xc0\x08\xf9\xaa\xa5\x08\x11\x76\x81\xaa\x6b\x93\x4d\xca\x3b\x1d\x5a\x82\x4c\x75\x17\x97\xd7\x4f\xa2\xf8\x55\x5f\x7d\xa2\xb8\xe8\x90\x13\x6a\xfa\x33\x15\x69\xcc\x12\x5e\xc3\xb4\xdc\x43\xeb\xc0\xf8\x58\x4c\xd8\xe3\x1a\xb4\x56\x02\x0b\x82\xeb\xd7\xb2\x6a\xa0\xb0\x12\xdd\xe8\x49\x4f\x7f\x6f\x0c\x6e\x9c\xfb\x06\xc4\x61\x7d\xed\x7f\x0f\x89\x36\x30\x40\x45\x3e\xf7\xe9\xbc\x59\x9b\xaf\x1b\x28\x30\x94\xf6\x0a\xe7\x66\x62\xdf\x6b\x13\x5a\xfa\xa2\xe6\x15\x0e\xa0\xb7\x47\xb4\xcd\xa6\x5f\xcb\x24\x81\xaf\x42\x6c\x9d\x8b\xaf\xe8\x36\x20\x30\x96\xbf\x09\x3e\x40\x5d\xe8\x12\x12\x8b\x98\xf1\x9b\xdb\xde\x42\x23\xfc\xe6\x07\x91\xe6\xc8\x97\x91\x37\x6a\x9c\xfa\x04\x42\x6d\xfa\xfd\x09\xf4\x4d\x59\x76\x7f\xe5\x02\x0f\x58\x93\x15\x7a\xf7\x5a\x95\x05\x5c\x7d\x3e\x88\xc3\x88\x75\xca\x77\x95\xe0\xe1\xd0\xdb\xa3\x78\x2f\x2c\x21\xd4\x70\xc0\x80\x46\x09\x75\x92\x02\x3d\xc1\xf3\xf0\xcc\x06\x16\xd8\x84\x6f\x7b\x91\xd3\xf1\xd8\x7e\x50\x8b\xba\xf6\x45\x30\xe3\x7b\xf2\x48\x61\x64\xe4\xb1\xca\x5e\xca\xe1\xaa\x07\x9e\xd0\xc4\xe9\x27\xae\x97\x8f\x0e\x51\xdc\x35\x8a\x18\x77\x3e\x2c\xa6\xcb\x0e\x22\xdf\x7d\x1e\x61\x9c\xd6\xf4\x3d\xb5\x15\x10\xef\x0c\xa3\xbb\x52\xfd\x82\xa1\xda\xfd\xb0\x77\x4c\x08\x6e\xda\x79\x66\x60\x80\x11\x84\x98\xc9\xb8\x53\xe0\xad\x5f\xb3\xa3\x7f\x77\xcb\xbe\x7c\xe9\x14\x86\x98\x0b\xaf\x52\x84\x5f\x4b\x9c\xd3\xb2\xba\x9e\x09\x61\x48\x54\xf0\xa3\xcc\x4f\x45\x03\x50\x35\xed\x91\x87\x20\xa2\xa6\x7d\xe2\x6e\x5c\x52\x1e\xa4\x56\x27\xb6\xc9\x0e\xad\xd5\xf2\x5a\x1e\x8f\xbf\x15\x48\xfb\x9d\x8a\xc6\x68\xcc\x52\x95\xe2\x57\xde\x3c\xad\xf6\xed\x11\x67\xcf\xbb\xf6\xa0\xf3\x0f\x21\xe2\x08\xc9\x4f\x77\xe2\x17\xec\x6b\x04\x32\xb6\x4b\x72\xbf\x58\x6d\xfb\x2e\xb1\x25\xb9\x2c\xb3\xa2\x27\x4b\xa3\x20\x52\x86\x69\x7e\x6f\x78\x3b\xb0\x84\xdf\xcf\xed\x74\xeb\x00\x04\x20\xa3\x00\xd5\x86\xb7\x0f\x4b\x7f\x05\xc9\x93\xc4\xd2\xfb\xd4\xaa\xca\x10\x83\x10\x76\x6d\xa0\xe3\x41\x31\x95\x85\x54\x8e\xc2\x3b\xa0\xc2\x04\x41\xec\xf7\x65\x59\x0c\xd0\xba\xa0\x58\x4a\xb4\x95\x7a\xbb\xac\x3b\x37\xff\x99\x75\x60\xf0\x33\x83\xf5\x45\x31\x4c\xec\x9b\x22\x9b\xf0\xb0\xee\x99\x0f\xe3\x3b\x35\x46\x1b\x23\x9a\xc5\xa9\x80\xe6\x3c\x30\xee\xbc\x5a\x9b\x55\x5e\xf7\x97\x14\x31\x77\x5b\x44\xd6\xac\xf5\xc7\xae\x3c\x93\x1c\xa7\xa0\x65\x88\x21\xf1\x42\x54\xaa\xac\xaf\x3e\x67\xa2\x36\x00\x89\x2d\xa0\xb6\x68\xf3\xed\x6a\xf9\xf8\x70\xbd\xbf\x5e\x6f\x97\x8f\xcf\x0f\xbb\xfd\xfd\xf3\xdd\x6e\xbd\xb9\x5b\xaf\x3c\x98\x04\x20\x05\x03\x03\x9d\xf9\x47\xb3\x9a\x2a\x10\xcf\x1a\xbc\x00\x26\x45\x71\x32\x0d\xc7\x06\x8b\x12\x85\xe7\x7b\x1a\x3a\x31\x60\x84\xd5\x1a\xc0\x7a\x8d\xa2\x86\xa2\x3e\xd5\xd7\xd0\x88\x6c\x42\x8a\x48\x4d\x20\x39\xb0\x8e\xe3\xaf\xac\xce\x28\xaa\xa9\x09\xb4\xdd\xf8\x76\xc1\xbf\x87\xfb\x8a\x09\x8c\xc2\xe3\xa9\x6a\x2d\xae\xa5\x38\xce\x7b\x7c\x26\x8a\xb8\x97\xd5\xbb\x8c\x5d\x4f\x7c\xe7\x38\x40\xdc\x67\x79\x3c\x07\x0b\x4c\xae\x4b\xc2\x28\xea\xb8\x88\xb7\x33\x53\xcc\xf7\x93\x69\xdc\x27\xca\xb6\x27\xac\x88\xbd\x17\x4d\x33\x88\x96\x0e\x07\x0f\x25\x82\x42\xfb\x71\x4e\x17\xdc\x58\x43\x54\x22\xa8\x93\x3a\xea\x93\x82\x86\x46\x11\xe5\xa3\x60\xc5\xf2\xd4\x37\xea\x88\x0c\x05\x73\xc6\x57\x64\x71\x84\x49\xe1\xe5\xfd\xe3\xde\x81\xc4\x3a\x23\xc7\xb0\x34\x45\xae\xb6\xc3\x5e\x14\x22\xff\x6c\x32\x55\x77\x4d\x92\xe0\xec\x3e\x15\x59\xb3\x83\xba\xf9\x06\x4d\xc7\xb7\x31\x58\xb4\xe7\xaf\xc0\x20\xc4\xd7\x44\x92\x80\xfd\x55\x3b\x53\xff\xe3\x2f\xca\x43\xc6\x3b\x6a\xba\xb7\xac\x01\x18\xe5\xde\x26\x57\xe2\x9a\xe3\x6c\x7e\x87\xec\x3e\x2b\x06\xce\x9f\x89\x23\x5b\x77\xf8\x02\x8d\x93\x9e\xa8\xfe\x59\xca\xfa\xea\xd3\xa1\x54\xe6\xbe\xb0\x9f\x0a\xb1\xb2\xa8\x50\x9d\xd5\xe2\xa5\x82\x9e\x81\x69\x7c\xf3\x84\x53\x2c\x13\x6d\xb7\xd6\xab\xf5\x6e\x26\xdf\x6e\x92\x38\xf6\xdc\x05\xad\x9d\xd7\x9c\xa3\xfd\x4c\x4a\x05\x22\xc6\x4a\xab\x3d\xe0\xa4\x40\xbf\x39\x33\xe8\x1e\x9a\xd7\xa9\xc3\x6d\x52\xae\x2d\x79\xfc\x41\x54\xcd\x28\x06\x65\xd2\x44\xa0\x66\x8f\x15\xc2\x9a\xfe\x2e\xe5\xd8\xf8\x53\x14\xba\x41\x26\x8f\x29\xcc\xe6\x34\x55\x4c\xa3\x46\x70\x85\x99\x08\x2c\x92\x7b\x1d\x16\xc9\x19\x91\x70\x8c\x53\x1b\x21\xab\xcc\xba\x14\x5b\x61\xba\x4f\x20\xa4\x95\x37\x83\x42\x47\x13\xe1\x69\x6a\x24\x8f\xf1\x00\x68\x7e\x15\xe6\x5d\x8f\x56\xb7\x8c\x35\xe2\xd2\x0f\xfb\xa2\x2c\xd0\xa7\x5e\x4e\x43\xe4\x46\x8a\x10\x6b\xb2\x5d\x0e\x7c\x2a\x38\x36\x7e\x6f\x45\x6c\x00\xd5\xe1\x67\x06\x57\x1b\x7f\x2d\xc5\x74\x48\xd0\x32\x7a\x03\x91\x5f\xc1\x48\xc9\x87\x1a\x4d\x22\x3c\x06\xb6\xa7\x23\x54\x4b\x51\x49\x7b\xf6\x8c\x9e\x5d\x83\xe5\x4f\x40\x22\xa2\xb2\x80\xcf\x21\xee\xca\x80\x52\x58\x64\x72\x57\xbe\xb4\x76\xe6\x73\x31\x50\xdc\x1e\x3f\x8a\x61\xdc\x8a\xdf\x7a\xfd\xad\xbc\x2c\xce\xeb\x12\x26\xe9\xbb\x71\x94\xd7\x98\x38\x41\x6a\x4a\x9f\x75\xae\xcf\xb2\x44\xc6\x88\x58\xa4\x9e\x89\xf1\xe4\x2a\x5d\xd7\xfa\x4c\x75\x1a\xbb\xb3\x20\x60\x96\x50\xbd\x02\x55\x16\x2a\xcb\xe1\xda\x55\x27\xfd\x31\xe9\x27\x02\x8c\x44\x62\x8d\x8a\xa8\x07\x23\xc4\x82\x30\xd2\x54\x7a\xf1\xd6\xf6\xe3\x7e\x61\x6d\xb3\x20\x64\x41\x10\x74\x44\x1a\xcb\x57\x51\x09\xd5\x74\x84\x0b\x5d\xaf\x44\xa3\x4f\xb1\xae\xca\xe2\x56\x14\xba\x8e\xba\xbb\x09\x83\x9f\xfe\xf1\x08\xc5\x5d\x59\xbc\xc0\x5b\xd6\x7c\x8e\x1c\x74\x16\x84\x3a\x91\xc9\x84\x8f\x74\xbd\x7c\xbc\xf0\x44\x11\xd1\xe8\xff\x98\xf2\x54\x68\xa8\xa2\xe1\xfa\x63\x41\x44\x53\x64\x8c\x42\xbf\xcf\x7a\xdf\x9d\x93\xc4\x82\x48\x69\x15\x0c\x19\xd7\xe1\x61\x7d\x7f\x9e\x91\x9b\xdc\x91\xc4\x32\x1a\xf0\x03\xdd\x21\x0d\xc9\xac\xb1\xca\x02\x22\x52\x24\x8b\xca\x41\xbc\xc1\x0e\xc4\x19\xa4\xda\xf5\xa3\x51\x12\xb8\x24\xd7\xa2\xb6\x91\xa2\xdf\x24\x48\x59\x40\x65\x80\x4b\xf6\x80\xe0\xd2\xef\xf0\x39\x76\xa3\x58\x40\xc1\xda\x79\x79\x29\xf4\x3e\xef\x74\xfd\xc2\xbe\xdd\x60\x74\xfe\x58\x1e\x6f\x45\xe3\xe5\x6f\x59\xc0\xa2\xc8\x93\xcc\x3d\x94\x03\x60\xda\x84\xbf\x79\xb0\x18\x59\xc0\x52\x9b\xdf\x3c\x88\x5f\xe0\xb8\x51\xa6\xdc\xda\xe3\x87\x63\x22\x4a\xbd\xca\x5a\xa7\xb8\xd1\xcd\x13\x26\xd2\x48\xf7\x9c\x28\x97\xe8\x06\x59\xc0\xc0\xd2\x29\xfe\x2c\xf3\x5f\xd7\x96\x18\xf5\x02\x2c\x9b\x05\xcc\x30\x8c\x78\xff\x79\xca\xd4\xaf\xba\x44\x79\xcf\x9e\x9f\xe0\xe2\xf7\xe6\x3a\x06\xd6\x95\xbc\x1e\x1b\xd8\x93\xd0\x3f\x27\x37\x0a\xc3\x1a\x02\xd5\xc4\x7e\x88\x1c\x8a\x26\x2b\xbc\x44\xe2\x64\x19\xc6\xd4\x20\x87\xbc\x23\x70\x5d\x14\xc8\x24\x37\xe9\x94\x24\xee\x88\x2a\x8f\x17\x09\xe1\x5c\xd7\x34\xb0\xe2\x99\x59\x7d\x53\x56\x13\xfa\x00\xdf\x85\x08\x2c\x84\xb3\x51\x36\xeb\x55\x0e\xa2\x75\xbe\x97\xe4\x08\xff\x73\x42\xb7\xe3\xe1\x8b\xa8\x73\xf0\x27\x53\x3b\x55\x0c\x5f\x7d\xb3\xde\x6c\x97\xb7\x8b\xf5\x83\x1f\x13\xe1\x52\x05\x4a\x14\x9e\x77\x78\x2e\xbd\xec\x7b\x3b\x52\x8b\xca\x6d\xbd\x73\x94\x39\xc9\x78\xae\x09\x19\x61\xc6\x73\xdb\x94\xc7\x9e\x59\xa9\xfd\x7b\x8c\x21\x45\x6b\xdf\x2d\xcb\xd3\x31\x07\xd4\x1a\x5e\x6f\x6e\xb6\x7d\x4c\xc7\xf7\x56\x06\x71\x85\x4d\xa7\x8e\xbb\x11\xd5\x0c\xeb\xd0\x39\xca\x78\x70\x11\x49\xad\xe3\xe3\x55\x18\xd6\xba\x3e\x77\xc9\x59\x20\x19\x41\xe8\x88\xad\xc7\xea\xbd\x80\x7d\x9f\x6a\x65\x81\x8c\x39\x52\x22\xe4\xa2\x6e\x56\xd6\xeb\x99\xa4\x47\x59\x20\x85\x44\x91\xa7\x7e\xc7\x5a\x3e\xed\x7e\xbf\x65\x29\x41\xb9\x43\x8b\xae\x97\x8f\x37\x58\x45\xeb\xe3\x1f\x2c\xd0\x24\x0d\xa9\x67\x3e\xea\x69\x25\x9b\x1e\x74\xc4\x02\x90\x36\x02\xf5\x78\xfb\xed\xee\x24\x8a\x97\x4d\x25\xa4\xf0\x68\x0c\x16\x80\x32\x58\xf0\x27\x45\x9d\x29\x5b\x43\x33\xa0\x5b\x65\x81\x09\x25\x1e\x6c\x7b\x84\xf2\x5b\x65\x86\xde\x06\x99\x83\x6d\xb2\xc0\xa8\x00\xcd\x7a\x93\x67\xc7\xfa\xae\xa3\xb4\x61\x61\x40\x62\x2c\x73\xb6\x74\xca\x5d\x45\xd8\x28\x62\xc7\xc2\x40\x59\xe6\xbf\x95\x15\xeb\xf1\xe5\xb5\x13\xe7\xe7\x22\x7c\x70\xae\xce\xa9\xbb\xb2\xd2\x58\x6c\x31\x0c\x57\xfa\x87\x0b\x43\x9b\xd6\x42\x9f\x0c\x89\x78\x7d\x82\x8c\x85\x61\x44\x50\xc5\xb3\xf5\x3f\x6f\xf2\x52\x34\x83\xaa\xd0\xb6\xd5\x20\xa4\xf2\x1d\xf2\x76\xfc\x06\x92\xf8\x2c\x8c\x5c\xd9\x70\xfb\x4b\x4b\xdb\xf8\x1d\x3e\x07\x10\x5e\x16\x46\x51\x84\xfe\xe0\x5d\xf9\x62\x49\x52\xa6\xc8\x9f\xb1\x36\x11\xed\x93\x38\x2c\x24\x82\x63\xf8\xb3\x2e\x73\xbd\x6e\xe0\xd0\xdd\x96\x12\x89\x07\xf9\xed\x43\x07\xbd\xf5\x2d\x60\x53\x6c\xbb\xc5\xd3\xb7\xd5\x6e\x7f\xfd\x8c\x35\xd5\x0f\xfb\xab\xd5\x0e\x09\xc7\xae\xee\x1e\x97\xdf\xbb\xce\x26\xc0\x80\xd1\x76\xb7\xf8\xb6\xda\xef\x6e\x9f\x56\x2b\x0c\x7d\xec\x57\x0f\xd7\xbe\x0f\xe3\xb6\xb0\x79\xb9\x5a\xfe\x0e\x71\xce\x42\xce\x01\x44\x7f\x3c\x38\x0e\x82\x2e\x0c\xd5\x11\xf6\xb3\x90\x83\x23\x19\x6b\x5e\xaf\x21\x6f\x84\xc3\x91\x8d\x2a\xb7\x59\x18\x93\x10\x71\x53\xd6\x6b\xbf\x59\xdf\xec\x6e\xf7\x7d\xed\xa4\xef\x95\x00\xc7\xc5\xbe\x17\x5a\x23\x27\xe0\x2b\xca\x4d\x8f\x37\xb4\x30\xa5\x02\x89\xae\xef\xc7\x60\x0c\x16\xa6\x4c\xa2\xfb\xab\xf6\x1a\x71\x81\xdd\xdf\x79\x10\xf8\x84\xc4\xe3\x66\x90\x8d\x68\x9b\xc2\xc4\x81\x8a\xbc\xa0\xdc\x2e\x83\x2a\xb2\xf5\x24\x53\x66\x56\x16\xca\x38\x25\xae\xe4\x64\x2f\x8e\xc7\x93\x5b\x18\x83\xbd\x3e\x54\x51\x8a\x59\x4d\xcf\x43\xb8\x7b\xad\xa0\x6e\x5f\xc4\x9f\xbd\xa1\x8a\x19\xeb\x58\x15\xcb\x42\x89\xe6\x1e\x0e\x65\xf5\x49\x88\x45\xc5\xf9\x6e\x52\x61\x1e\xc5\x0a\x06\xbb\x3f\xea\x40\x21\x4f\xc7\x1e\x79\x02\x6f\xca\xea\x09\xac\x63\xdc\x8e\xd3\xb0\x3c\x63\xbc\xd6\x43\x1d\x92\xd4\x69\x53\x9c\x14\xfc\xa6\x66\xd8\xff\x86\x06\xa1\xe9\x22\xcd\x2f\xd0\x13\xb9\x4f\xba\xa9\x8e\xac\xd2\x46\xb0\x7e\x3c\x6f\x7a\x0c\x08\x0b\x35\x0f\x4d\x7b\x9d\xdd\xab\x28\x44\x53\x76\x2f\xa8\x63\xcd\x3c\x66\x29\x6b\x26\x30\x14\x16\x6a\x25\xd0\x7a\x5a\xfc\xf8\xf6\xf8\xd0\xcd\x11\x08\x13\xcb\x34\xa7\x7a\x8b\x36\x34\x34\x26\x9d\xc2\x9b\x67\xe2\x1f\xac\x3f\xc3\x00\x23\x6c\x42\x6b\x4b\x9e\x35\x8f\x17\xf1\x6f\xd4\x3a\x9c\x88\x09\x13\x39\x0c\xb2\x3d\x2c\x34\x92\x0b\x5b\x47\x65\x9a\x75\xd1\xce\x14\xd7\x12\x05\xb1\x55\x7e\x94\xa7\x3a\x2b\xa0\xae\x37\xb9\x28\x0a\xbf\x56\xae\x4f\x43\x5d\x75\x16\x85\x09\xa0\xbf\xed\x39\x0a\x9e\xe0\x38\x24\xee\x44\x31\xf7\xab\xb2\xd0\x36\xa3\x3e\xb1\x3a\xa3\x08\x14\x16\x87\xef\x2d\x93\xd4\x0c\x59\x0f\x8b\x08\xb5\x55\x97\xed\xd6\xbe\x42\x97\x31\x2b\x8b\xed\x7b\xd6\xa8\xd7\x5d\x39\x18\x99\x88\x30\x1b\xec\xed\x00\x84\xd6\xca\xaf\x5b\x53\x7a\x51\xf8\x02\x58\xff\xc9\x22\x92\x30\x8b\xfe\x6a\xca\xe3\x90\x59\xb1\x6d\xe1\x3c\xf0\x8e\x40\xc7\xfd\x3b\x55\xee\x66\x11\xe5\x21\x1e\xb0\x96\xeb\x79\xf6\x94\x70\x2b\x29\x62\x61\xc4\x53\xcb\x31\xe3\xfd\xae\xee\x41\x18\x15\x26\xf1\x21\x29\xfc\x46\x37\x65\x75\x7b\xb7\xb9\xdf\x75\x3d\x12\x81\x81\xc2\x41\x06\xfa\x92\xe1\x1a\x31\x25\x2d\x08\xab\x2c\xf3\xe1\xfe\x10\x31\xad\x8c\x73\x1b\xda\xcd\x6f\x24\x72\x3a\xbe\x44\x1c\x70\xaf\xe3\x74\x9f\x15\x4f\xe8\x70\x4d\x02\xf6\x83\xce\x2a\x41\x65\x17\x47\x47\xb3\x59\x3d\xed\xbf\x23\x93\x8e\xbf\x6f\xac\x35\xba\xde\x7b\x38\x64\x16\x98\x3f\x28\x7f\x9b\x37\x98\xfc\xb9\x1c\xa5\x91\x0d\x43\xec\xeb\x76\x0b\x75\xa9\xaf\xb3\xc3\x6a\xf6\x1a\xc9\xfc\xee\x11\xa5\x89\x40\x87\x45\x9e\xaa\xaf\xc3\xa6\x2c\x4a\x9d\xd8\xa2\x53\x6f\x9c\x6c\x34\xe3\xbe\x82\xda\x22\x88\x43\x56\x34\x8f\x3f\xef\x2e\xf5\xd2\x3c\xb5\xc8\x4e\xfd\x02\xcf\xc5\x50\xb2\x90\x45\x02\x22\xda\x29\x22\x1e\x4e\xcd\xa5\x5b\xc9\xc4\xb2\x97\x62\x44\xca\x51\xcc\xe8\xd0\x1d\x56\xfe\x62\x52\x2a\x74\x8a\xce\x24\x30\x2e\xd9\x32\xe3\x45\x27\x75\xac\x1c\x29\xc3\xf6\x5d\x38\xab\x8b\xfd\x63\xf8\xcf\x74\xc7\x09\xcf\x10\x6b\xff\x18\xf2\xa0\xb2\x48\x51\x66\xf7\x7b\x1b\x51\x5b\xe6\xe5\xfb\xff\x8d\xad\x9e\x45\x26\x62\x58\x55\x37\xa9\x80\x1c\x8f\x8f\x89\x63\xd9\x53\xe3\xaf\xac\xae\xc7\xac\xcb\x1d\x19\x91\xa4\xc8\x19\xfe\x56\xe6\x6f\xe0\x02\x77\xfe\x8a\x61\x77\x41\x13\xda\x1c\xc8\xf5\x6e\xbc\x37\x91\x20\x62\xa9\xa5\xa0\x40\x41\xf8\x3c\xab\x1b\xef\x58\x56\xd3\xae\x89\x65\x22\xb5\x89\x08\x9f\xbf\xba\xeb\xa4\x6e\x19\x09\x13\x92\xb8\x65\xb7\x42\x20\xcd\xe7\xb2\xa9\xf2\xc9\x65\x42\x61\xb0\x58\x6b\x77\xbb\x7e\xf8\xbe\xdf\x2d\x1e\xbe\xef\x6f\x9e\x1f\xae\x47\x55\xa9\x8c\x84\x4a\x61\x24\xf6\xae\x7c\xb1\x25\x5d\xab\x1f\x0f\xf3\xb3\x89\x84\x5a\x62\xa4\xc9\x25\x21\x7e\x2e\x36\xbd\x81\x76\xfb\xf8\xfc\xd4\x5d\x33\x22\x1a\x83\xd7\xc7\x57\x51\xc3\x9e\xed\xe5\xc0\xe6\x24\x11\x24\x49\xd2\xe9\xa2\xfe\xba\x29\x2b\x44\x7a\x8e\x6f\x45\x78\x8c\xa1\xec\xab\x9b\x9d\xea\x12\x3f\x8c\xd0\x50\x62\xcc\x10\xd3\xb7\xd9\xf1\x08\xe7\xa2\xd2\xd3\xa8\x42\xbf\xeb\x13\x4a\x62\x16\x0d\xb4\x84\x57\xc3\x7c\x2d\x23\x54\x06\x51\xe4\x96\x7b\x7b\xd4\x0d\xad\x2c\x42\x75\x68\xc9\x7b\xb3\x2a\xbf\x6a\xbd\x91\x51\x2b\x57\x7c\xe0\x3a\x2c\xf2\xbc\xa3\xf7\x70\x1d\xe2\x20\xc1\x92\xe3\x1e\xa1\xf4\xa3\x6c\x40\x5b\x3e\xda\x69\xc6\x6a\x76\x8b\x21\x31\x07\xac\xf2\xd9\x59\x92\xa3\xf3\x92\x72\x46\xe2\x98\x68\x35\xa4\xc2\x40\xd1\x90\x73\xbe\x20\x46\x12\x62\xbc\x45\xd7\x7b\x66\xe3\x98\xb9\xef\xc9\x08\xa2\x49\x6c\x28\xa2\xcb\xaa\x62\x79\x84\x7f\xbb\x34\x65\xc6\xf8\x68\xbe\xca\x4f\x1a\x9c\xf7\x32\xa0\x27\x67\x44\xa4\x96\xc6\xee\xfe\xd3\x11\x6a\x63\x94\xb6\xcb\xdf\x8d\x6f\x2b\x03\x89\x0f\xb8\xaf\xe0\xe5\x94\x8b\xea\xda\x71\x42\xd5\x03\x59\x67\x46\x24\x49\x51\xdb\x61\xa0\x6f\xb7\x1c\x4c\x17\x99\x68\x44\xb9\x63\x16\xcc\x2a\xd8\x5d\x16\x35\x9d\xa0\x23\x18\x91\x2a\x21\xac\x0b\x4a\x4e\x51\x23\x8c\x48\x0d\x08\x8e\x41\x1e\x94\xcd\xd3\xfa\x47\x6f\xd3\x13\xc5\x94\xaf\x63\xdb\x65\x79\x4f\xf9\x7a\xea\x59\x17\x43\xaf\xb9\x36\x7e\x71\x1d\x08\x04\x89\x0a\x7d\x68\xfd\xe9\x66\x00\xcd\x65\x44\xa7\x9a\x25\xc8\xe6\xa9\x2d\x3c\xb5\xdd\xaf\xc6\x4f\xa5\x45\xea\x50\xd0\x5d\x71\x1d\xe2\x63\xfd\x25\x0c\x25\x5e\xbf\x41\x89\x63\xd1\x57\xb9\xfa\x76\x19\xe0\x76\x9e\xd5\x4b\xcb\xa1\x98\x95\x85\x93\x85\x5e\x34\x5e\x49\x66\x7c\x6c\x76\xbf\x14\xc6\x07\xc5\xf7\xab\xdd\xed\xde\x54\xe5\xc1\xe2\xde\xa7\x7c\x41\x8c\x18\x1d\x61\x64\x72\x7f\x28\x75\x66\x3e\x37\xd9\x07\xe4\xcb\x32\xf7\x12\x61\xf3\xc1\x21\x1a\x84\x21\x92\x62\x60\x96\x62\xf5\x61\xa5\x61\xc6\x98\x20\x46\x83\xd4\xa2\x83\xeb\x46\x14\x5a\x54\xfe\x9c\xa3\x21\x0d\x10\xfb\x89\x94\x3e\x2e\x73\x35\xb2\x21\x68\x98\x86\x1d\x9f\x2a\xe5\xfe\x77\x44\x13\x94\xb4\x46\xb1\x71\x93\x15\x7d\x18\xe6\x72\x30\x89\x52\x65\x2c\xb9\x08\x28\xf1\x09\xda\xe9\x0a\x2c\xc5\x84\xa0\x95\x51\x16\x86\x88\x12\xa9\x4f\xb2\x23\x01\xeb\x2b\x45\x7c\xa7\x98\x69\x3e\x4b\xce\xf2\x8f\xc9\xd5\x92\x40\x29\xc7\x5a\xb6\x97\xf9\x09\xf6\x87\xac\x10\x03\x9e\x52\x46\x59\xaa\x71\xcd\xac\x1f\x7e\xac\xb6\xbb\xc7\x27\x1f\x28\xa2\x3c\x0a\xb1\x1a\x35\xab\x6f\x30\x4e\xdc\x47\xb4\x29\x8f\x2c\xfd\x5e\xeb\x66\x9c\x1a\xb8\xff\x5c\xbd\xbc\x4c\x36\x0a\xca\x99\x4d\x21\xa2\x29\x6c\x71\x24\x33\xa4\x45\x8c\xc6\x81\xc6\x82\xba\xac\x81\x03\x62\x41\xdc\xdf\x13\x27\xd1\x5e\xc0\x87\xe5\xed\xec\x51\x1d\x8c\x26\x82\xa1\x2b\x63\x8f\xc4\xab\x53\x55\x9c\x6c\x8c\x6e\x7c\xed\x54\x6b\x74\x12\x7e\x64\x8d\x38\x74\xfb\x00\x15\x91\xd6\xca\xeb\xd2\xb4\xde\x03\x22\x06\xe7\x47\x50\x92\x84\x0e\xad\xa1\xab\x53\x96\x6b\xbf\xdf\x4e\xdf\x59\x29\xcb\x61\x70\xf0\xea\x44\x35\xea\x1a\x20\xb9\x95\x3f\xf0\x10\x93\xd8\x3e\xd4\xe3\x66\x7b\xc6\xee\xc6\xa8\xa6\xa1\xee\x49\xbb\x5a\xef\xa2\x68\x4a\xa4\x8c\x3d\x4d\xc1\x5e\xff\x18\x9a\x1a\x54\x8b\xc4\x52\xe7\x6b\xfd\x53\xd4\x0d\xe0\x58\x8e\xe6\xa0\x96\x06\x93\xf4\x97\x52\xff\xbe\x9b\x0e\xb1\x9a\xea\x26\x17\x2f\xdd\x53\x69\x5b\x25\x68\x95\x7c\xce\x4a\x33\xfd\x3e\x36\x1e\x0d\x20\x29\xa2\x89\xaf\x76\xf7\x77\xfe\x42\x10\xbb\xbc\xa7\x31\x88\x6d\xeb\x23\x66\xf3\x4f\xc3\x02\x25\xf1\xbc\xa9\x44\xf1\xeb\x42\x97\x30\xb5\xe0\x83\x06\xea\xe6\x98\xe9\x17\xe8\x7c\x4c\x16\xa6\x80\x94\x83\x3f\x45\x81\x99\xcf\xe1\x29\xcd\xa2\x80\x23\xae\xf0\xed\x02\xf8\xd1\x77\x0b\xa5\xa5\x0d\x29\x45\x31\xf1\x61\x5b\x43\x1f\xfd\xb8\xd5\xd6\x93\x68\x32\x16\xc9\x08\x43\x4c\xcd\x6b\x05\x42\x4f\xfc\x56\x16\xe9\xd4\x8a\x9d\x5b\xd6\x7d\x4b\xbe\xef\x76\xac\x75\x71\x3c\xfd\xb6\xe6\x61\x16\xc8\xc2\x18\x89\x41\xc3\x28\xce\x3c\x43\x7f\x30\x19\x38\x92\xd2\xa0\xd3\x0f\xb2\x70\x8c\x75\x61\xac\x66\xc6\xc8\x8e\x65\x94\x59\xc4\x30\x16\x56\x9d\xe5\x50\x19\xa3\x90\xe0\x3e\x53\x1a\x94\xd3\xcc\x6f\xbb\x5a\xcc\xb6\x2d\x45\xa0\x98\x35\x13\x97\x8f\xf7\x9b\xc5\xc3\x7f\xf6\x8f\x3f\x1f\x56\x3e\x2a\xc7\x58\x44\xc0\x8a\xe0\x89\xa6\x3f\x21\xba\x46\x4b\xcd\xf5\x5e\x36\xd7\x62\x72\xbc\x31\xc6\x2d\x6a\xe8\x07\xbc\x88\xba\xfb\x85\x4c\x42\x3b\x67\x1a\xf0\xf1\x26\xc6\xa3\xd8\xeb\x7a\x22\x2a\xd9\x72\x6f\xdd\x94\x15\x02\x95\x27\x97\x4d\xa2\x04\x13\x88\xcb\xd5\xc3\xce\x9b\xb1\x2c\xa5\x61\x3c\xd4\x95\x92\x42\xfd\x3a\x1d\xfb\x56\x9e\xa8\x9e\x53\x22\xff\xb4\x71\x42\x47\xf1\x35\x1e\xae\x94\x73\x64\x50\xbf\x2d\xf3\xb2\xd7\x1d\xf1\x8d\x31\x60\x0c\xdc\xf2\xff\x1e\xa1\x6a\xe6\x14\xb6\x3b\x88\xf0\x10\x29\xcc\x98\x90\x29\x1a\x1a\x47\xb0\xcf\xb8\x2e\x2c\x0f\xf9\x3f\x4f\xd5\xf9\x21\x31\x35\x71\x98\x8c\x88\x72\x70\x78\x3c\x4a\xef\x40\xbc\xf9\x3d\x97\x49\x92\x62\x7a\x77\x03\x4d\x0f\x4b\x6f\xc7\xda\x78\x97\x1f\x81\x39\x7a\x86\xd4\x8c\x31\xa9\x35\x4e\x90\x87\x9b\x9d\xb3\x05\xaf\x7a\x23\x84\x49\x30\x0e\xce\xf4\xfc\xf4\xb0\xb8\x5f\x3d\xec\xf6\x7d\x50\xa0\xfd\x06\xbe\xa3\x4a\x0d\xb7\x12\x87\x6f\x90\xb7\x63\xe3\x9c\x58\xdf\x0e\xca\x04\xae\x2e\xcf\x03\xb6\x9e\x66\x48\x2f\x5c\x6f\x43\x43\x0c\x18\x7b\x04\xdb\xa4\xea\xe3\x37\xff\xda\x8b\xf0\x20\x4e\x88\xcb\xcd\xdc\x89\xda\x55\xda\xfd\xe1\x1b\x85\x60\xde\xee\xeb\xe4\xb3\xeb\xf3\x5c\xa0\xff\x02\x3c\xd0\x34\x64\x03\x79\xfe\x49\xec\x8d\x87\x01\xe7\x1e\x25\xf7\x70\x3a\x58\x13\xa2\xee\x5a\x69\x84\xf0\x97\xd6\x65\x71\xa5\x11\x5f\x27\xf7\x78\x08\x91\x49\x3b\x3e\xf6\xc1\x76\x3c\x55\x5b\x62\x3c\x0a\xc0\x1b\x1d\xeb\xf6\xac\x2e\xff\x66\x72\xc3\xff\x5c\x4b\x2c\x73\x7b\x57\x5e\xb1\x92\x71\x12\x86\xda\x6d\x40\xf7\x45\x73\xbc\xcf\x5e\x06\x4e\x74\x7f\x67\x12\xd9\xf4\xa2\x93\x6c\xd3\xab\xe6\xb5\xbb\x02\x8d\xd0\x03\xc4\xf2\xa2\xab\x2c\x17\x0d\x0c\x55\xb6\x47\xf6\x1c\xa7\x52\x26\x9e\x92\xbd\xd4\xb0\xd6\x1f\xa3\x03\x92\x53\x6d\x99\xb7\x6b\x68\x9e\xab\xbc\x9e\x29\xd7\x61\x9c\x82\x88\x9d\xc2\xd5\x5e\x8a\xe2\xd7\x5e\x8b\x46\x8c\x97\x37\x67\x44\x20\xe6\x14\x49\xc2\xc1\x95\x90\x4e\xde\x89\x25\x6c\xb4\x5f\xcf\x80\x22\xba\x9e\x29\xe2\x77\x36\xa7\xe3\xf0\xf8\xe2\x3c\x24\x96\xb6\xb3\x54\xbf\xae\x9c\x66\xac\x6f\x22\x09\x96\x1d\x1d\xb2\x91\x46\x59\x57\x3f\xcf\x38\x57\x21\x16\x93\xec\x8b\xb2\x3a\xe0\x4e\x71\x0d\x2a\x3b\x88\x7c\x1e\x80\xc6\x78\x1c\x19\xab\xde\x29\x2a\x29\x5e\xc0\x39\x03\xfe\x72\xb1\x88\x11\xac\xd0\xee\x63\x3e\x85\x60\x53\x3c\x33\x53\x7d\x3e\x42\xc3\x93\x20\xe0\x66\x80\x05\xff\xad\xa4\xbb\xff\x5d\x68\x10\xec\xde\xe9\x3d\xfe\x2e\x60\xe5\x7f\xc7\x02\x04\xf2\xbb\xe0\x29\xac\x97\x8f\x45\xf9\xee\xdf\x28\x49\x13\x87\x4c\xf7\xe9\x78\x1a\xf4\x6d\x22\xe9\xf3\x38\xcb\xa7\xd5\x62\xb7\xba\xde\xdf\x77\xb9\x69\x9e\x86\x12\x0f\xd6\xbd\xcc\xf4\xf5\xaf\xfc\xc2\x90\xa6\x3c\xe2\x36\xc0\x5e\xec\x76\xbb\x65\x9f\x7a\xe4\xa9\x88\xcc\xd0\x71\x0f\x27\x53\x42\xb0\x30\xe6\x1e\xc0\x53\x37\x4f\xa0\xa0\xf0\xca\x64\x98\x9f\xf0\x17\x92\x89\x0d\x6c\xef\x56\x8b\xfb\xfd\xd5\xe3\xc3\xf3\x74\x47\xe5\x8a\x73\xcc\x5b\x20\x71\xee\x1a\x51\xd8\xe3\x45\xa1\x63\x81\x3c\x10\x1b\xa1\x60\xe0\x4c\x73\x08\xac\x22\xe7\xcf\xb2\xca\xf5\xf2\x74\xfc\xb2\xf8\x94\x71\x70\xf9\x11\x74\xd5\x86\x25\x0d\x8c\x43\x42\x2d\x35\xa6\x73\x51\xff\x3c\x65\x55\x05\xf9\x00\x43\xc5\x38\x48\xab\x71\xbe\xfd\xb6\x1a\x2e\x82\x38\x0c\x2c\x87\x4d\xaf\x69\xeb\xbd\x8c\xd1\x58\xc7\x21\x4f\xd1\x53\x76\xa0\xcc\x63\x9e\x35\x7f\x8f\x98\x85\xc5\xa1\x16\x68\xfb\x38\xd8\xc2\xa2\xae\x51\x1b\xc2\x3f\x41\x14\xc4\xdc\x6d\x1a\xd7\x95\x78\x9f\x9a\x46\x71\xe4\xd8\xeb\xeb\x93\xac\x85\xb9\x70\x14\xc5\x51\x1c\x2a\x6d\xc3\x6e\x96\xb1\xac\x0f\x94\xc4\x51\x6c\x98\x93\x8d\xc9\x8a\x3b\xd0\x1d\xd9\x35\x42\x38\x31\x79\xdd\x94\x2f\x2f\x39\xac\x8b\x4d\x2e\x3e\xff\x59\x0e\x88\x1d\x59\x4c\x12\x8e\x9e\xe7\xa6\x12\x85\x86\x0f\x4b\x5a\x32\x1a\x43\x92\x48\xa5\xfd\x18\x5a\x41\x05\x8c\xd5\x0c\xa7\x41\x4c\x89\xaf\x36\x76\xec\x46\x0f\xe5\x99\x2f\x17\x53\xc5\xd1\x75\xf8\x3e\x41\xc8\xb1\x98\x85\x0c\x89\xf4\x4e\x85\xc9\x3e\xfa\xa3\x70\x5d\xfc\x84\xac\xeb\xa3\x92\x30\xe8\xe8\xb7\x07\xa5\x7d\x8b\x42\x6f\xdd\x22\xdd\x7e\x41\x09\x35\x19\x52\x9e\x24\x96\xb1\xbb\x3c\x1c\x4e\x45\xd6\x7c\x3a\x3a\x70\xfa\x1f\x10\x5d\x2e\x27\xe6\x26\x8e\xa2\x51\xde\x6e\x97\x41\x35\xd8\x4c\xe3\x38\x4d\xb1\x62\xe1\x28\xea\xba\x7c\x83\xca\xb3\xc0\xfb\x66\x61\x09\x91\x8f\xa8\xd9\x3f\x9a\xd9\x71\x62\x34\x5a\x8c\xe2\x78\xcc\x3f\x6f\x9c\xd0\xca\xa0\x31\x61\x03\xd1\xa5\xe0\xac\x5c\x9a\xc5\x22\x54\x68\x36\x19\x7a\x61\xde\x08\x15\x21\x1f\x04\xae\x42\x6f\xeb\xc6\x42\xb3\x80\x78\xa8\xc5\x53\x39\x8d\xa6\xc5\x42\x73\x10\x3d\x23\xe3\x0c\x42\x95\xc5\x02\x62\x44\xfb\xcb\xd6\xe1\x5d\xeb\xe8\x6c\x57\x9d\x7e\x85\xe1\x73\x4b\x48\x98\xf6\xf0\xd6\x45\x6b\x81\x7a\x8e\x1a\xff\x88\x3a\xa6\xb8\x2c\x64\x2e\xba\x3c\x46\xac\x63\x0b\x55\x7d\x82\x76\xee\xa9\x06\x34\x52\x2d\xd7\x33\xf6\xef\xf9\x50\x68\x69\xeb\x16\xeb\xec\xa5\xb8\x2b\xc5\x04\x01\x14\x43\x44\x78\xc7\x18\xd3\x25\x1a\xfd\x9d\x81\x13\x4c\xa7\x43\xeb\x6f\x0f\x38\x03\x59\x0c\x10\x7b\xc2\x1f\xd4\xe9\x58\x77\x2d\x46\x45\x88\x96\xc8\x95\xfa\xd8\x81\x70\x6a\xe6\x6e\x96\xb9\x4e\x49\x40\x15\xe9\x8a\xd7\xea\xf2\x00\xbd\x9e\x22\x4b\xc2\x90\x22\xc4\xc8\xe6\x1b\xc6\x10\x8f\x24\x8c\x78\x12\x8f\x40\x38\x78\x03\x24\x37\xf9\xda\xb1\x4b\x42\x12\x24\xcc\xe3\x85\x7c\xf8\xa5\x9e\x17\x5d\x66\x49\x98\x68\x44\x0f\x22\xe8\xd6\x2b\x58\x6c\xda\xdd\x02\xba\x67\x01\x85\x84\x36\x37\xeb\xa7\xed\x6e\xff\xe3\xf1\xee\xf9\x7e\xb5\x5f\xfd\x7b\xf7\xb4\xb0\xa7\x4a\xd7\xcf\x84\xe0\x22\xbf\x9b\x4c\x95\xc7\xda\xc9\x81\x4f\x77\xc5\x24\x22\x12\x91\x3c\x78\xec\xa0\xee\x9c\x9b\xfd\xb3\x46\x76\x12\xe9\x28\xb5\x86\xed\xe7\x38\x4a\x9f\x44\x06\xd0\x53\xdb\x9c\x0a\x9d\x0d\xeb\x05\x58\x42\x48\x8a\x80\xf3\x8e\x9e\xfd\xdb\x49\x54\x3a\x13\xc5\x1c\x78\xff\xeb\xcd\x24\x21\x3c\x46\x63\xe1\xfa\xdb\xd5\xdd\x7f\xfc\x0d\x28\xb1\x25\xd0\xcb\xac\xc9\xfe\x9a\xa0\xc0\x59\x42\xa5\xc1\x03\x72\x5b\x9a\x46\x79\x89\x27\x96\xb0\x24\xf5\xc1\xf1\x45\x56\xe9\xaa\x3c\xab\x63\xf8\xcd\xa3\xb0\x34\x40\x28\xaa\xd3\xa0\x7d\x15\x07\x68\xfe\xfa\x3a\x1f\x99\x70\x1e\x70\xe7\x17\x59\x5c\x8f\x35\x49\xc7\x50\x4b\xdf\x37\xb1\x89\x85\x45\x17\x71\x96\xd3\x0d\x24\xe1\x8a\x6b\x07\xab\x3c\x8f\x61\x25\x5c\x1b\x54\xe5\x43\x70\x92\x03\x91\xbc\x66\xe7\x16\x82\x73\x60\x07\x1b\x47\x12\xc7\x12\xc3\x5f\x07\x91\x15\xcd\x90\xa1\x98\x25\x71\xa2\xa9\xc5\x7e\x7e\x6c\x87\xe9\xe9\x24\x56\x0c\x83\x30\xfd\x77\x06\xa7\xe6\x35\x76\x92\xcf\x87\x25\x65\xa1\x1e\xf0\xc4\xed\x2b\xf8\x5f\x50\xcd\xde\xa6\x6d\x2e\x29\xd9\xb3\x24\x55\x52\xba\x50\xdb\x26\x9b\xc6\x0e\x12\x11\x0a\xc7\x9e\xde\x9c\x2e\x7f\xdb\x2f\x61\x7f\x17\x56\x81\x60\x04\xa1\x22\x98\x47\xdb\xe0\x79\xd3\x4e\xe5\x68\x7f\x53\x95\x07\x3f\x1a\x42\x1b\xc4\x91\x2e\x2d\x63\x91\x73\x90\xeb\x61\x4d\x30\x4b\x24\xb5\xa8\xca\x53\x8d\x05\xfe\x1d\x63\x01\x4b\xa4\x0c\x94\x2d\xd1\x12\xb9\xb3\xa8\x86\x2e\x66\xa2\x22\x16\xda\xd8\x29\x42\x50\x7d\xea\x25\xd1\xc4\xf2\x9b\xb7\x57\xac\x97\xa2\xe8\x52\xd4\xbd\x21\x93\x40\x44\x10\x00\x6a\xba\x14\x13\xae\xd7\x5b\x8b\x6f\xf2\x9d\xb4\xe5\xb3\x5d\x6f\xaf\x2c\x52\xb2\x1e\x58\x9d\x89\x51\x11\x26\x31\xef\xb2\xc3\xf8\x38\x4d\x0c\x58\xf9\x7e\x97\x45\x75\x7f\x4e\x03\x21\x94\xe3\x77\xba\x3a\x75\x7f\x8d\x88\x40\x3c\xef\x40\xac\xf6\xeb\x2d\x35\x25\xc4\xe0\x0a\xb2\x41\x85\x9b\x5c\xbc\x20\xaa\xee\x8c\x57\x8c\xa5\x24\x91\xc2\x78\x3a\x61\xc7\xb2\x6d\xd9\x14\xfc\xdd\x09\xd8\x72\x75\x59\x65\x7f\x0e\xd2\x99\x29\x95\x02\x8f\x1a\x4b\x52\xd2\x2b\x51\x8d\x17\x5f\x4a\x8d\x05\x8f\xbc\x95\x56\x38\x77\xd2\xcc\x4c\x68\xdf\xd8\xf2\x73\x20\x65\xc8\xfc\x3b\x71\x22\x84\x8d\xf0\xff\xb3\xee\xc2\x1f\xbe\x8d\x69\x14\xac\x79\x47\x3a\xcf\x29\x42\x34\xe5\xb1\x40\xa6\xa5\xd7\x32\x1f\x43\xe1\x52\xae\xc3\x40\xf8\x9d\xbd\x2f\x2c\x1a\x2c\xf2\x34\x16\x14\x61\x58\xcf\x35\x54\xd7\xa2\x11\x52\xd4\xd3\x41\x8c\x75\x90\xda\xa4\x4d\x05\xe2\xe0\x6a\x41\x84\x42\x5d\xcd\x61\xfa\x22\x8d\x4d\x8a\xc9\x71\x4f\x37\x2e\xf2\xab\xd6\xb4\x1f\x5d\x2c\x89\x08\xf2\x4c\x2c\xcb\xe2\xa5\x0b\x57\x9f\x73\xa0\xfa\xde\x60\x53\x51\xd6\x0c\xed\x6a\x1d\x5c\x6b\x1a\x8a\x80\x39\x6d\x84\x76\x62\x76\x1f\x55\x40\x12\xa9\x01\x46\x77\x3e\x9a\x9c\x6a\x11\x21\x48\xeb\xfe\xea\xfa\x2b\x04\xe2\x10\x02\x94\x6a\xc9\xd1\x4c\x38\x56\x60\x2b\x7c\xda\x49\xb1\xd0\xff\x7b\xaa\x7b\x48\x51\xaa\x8d\x46\xf9\x22\x33\x2d\xde\x66\x29\x04\x49\x4a\x5d\x26\xce\xca\x48\x5c\x98\x10\x40\x12\xe4\x13\x95\x9e\xa1\xec\x32\x89\x2e\x4b\x21\x66\xd4\x65\x51\x9c\xe5\x72\x16\x33\x4a\x41\x27\x88\x26\x18\x84\xb3\xae\x7b\x4c\x5c\x6a\x18\xd8\x83\x02\xed\x9f\x9f\xaf\x00\xf9\x15\x34\xc3\x02\xe7\xf9\x8d\x3b\x35\x69\x8a\x01\x43\x27\x1c\x00\x1f\xcd\x00\x81\xe1\xfb\x08\x83\x08\x8b\x6f\xd5\x24\xf0\x2f\x02\x10\xbc\x67\xc4\x45\xd6\xaa\x79\xf3\x5a\x84\x2a\x45\x17\xbd\x80\x0f\xe4\xde\xd9\x40\x75\x9f\xe5\x79\x7f\x17\x11\x1a\xab\x01\x83\x04\x86\xef\xe7\xb5\x9a\x4c\x44\x24\x48\x88\x8f\x8d\x3c\x7a\xc7\x5b\x44\x44\x60\x1d\xd9\xe1\x13\xf3\x9c\xeb\xba\x6b\xd0\x56\xd5\xff\xba\x6c\x37\x8f\x33\x66\x2a\x26\x48\xa0\xf0\xe5\xb3\x02\x33\x84\x27\x91\xdf\x8b\x8f\x4e\x44\x92\x09\x42\x22\x4c\xbc\x42\xa1\xd7\xcb\xc7\xf1\x17\x11\x34\xe1\x88\x36\xca\xea\xfa\x04\x4f\x50\x97\xf9\x1b\xe8\x59\x43\x40\x30\x4a\x12\xf0\x64\xf8\xc2\xd9\x2a\xb3\x13\x47\x70\x1a\x0b\xe1\x66\xd8\xce\xf1\x07\x6e\x5b\x5b\xfa\x8c\xbb\xf3\xef\x46\x57\xe7\xb7\x61\x11\xa7\xb1\xd7\x84\x9d\x8b\xac\x8b\xd8\x18\x90\x56\x33\xaa\xd9\x88\x22\x53\x7e\x50\x12\x10\x81\xa7\xe7\x74\xac\x24\xbb\xd7\xac\xee\xeb\x9b\x99\x48\x83\x4e\xb0\xda\x4a\x3a\xdb\xc8\xeb\x68\x4c\xd2\x10\x4c\xec\x0b\x0c\x45\xe6\x2d\x1f\xfb\xdd\xc7\x3d\x19\xb7\x7e\xff\x7b\x5f\xa9\x7a\x09\x39\x2f\xd2\x84\x31\x9b\xcf\xb4\x8e\x4f\x56\x16\x4f\x98\xda\xd4\xdd\xc3\x41\x84\xd0\x2d\x25\x8a\x67\x57\x78\x70\x38\x8a\xe2\x73\x83\x8a\x62\x50\xa8\xde\x4b\x1a\x8f\x88\x08\xa2\xc0\x97\xcc\xe0\x8b\xfb\x2b\x8a\xd0\x92\x07\x57\x80\x19\xf0\xe7\x42\x0d\xc9\x5a\x98\x10\xd2\xaa\xbb\xb8\xb0\xcc\x5a\x95\x03\x38\xab\x90\x21\x57\xb6\x3a\xfa\x5d\x54\xb3\xf0\x4b\x21\xa9\xe2\x5e\x64\xdf\x51\x00\x95\x85\xf3\x9e\x07\x55\x81\x4c\x48\x9e\xa2\x8e\x26\xaa\x98\x6c\x72\xa1\x60\x53\x36\x5d\x63\xc2\x51\x05\xcc\xd2\x52\x7a\x93\xd9\x35\xaa\x40\x62\xf2\xfa\x4a\xd4\xbf\xa0\xb1\xd4\xa6\x67\x88\xad\xc9\x58\x2b\x9a\x84\x7a\xb6\x58\xea\x4b\x1b\x5a\x28\x4e\x70\x3c\xf6\x36\xcd\xd1\x3d\x42\xbb\x3d\xdb\x40\xae\x65\x60\xf6\x0d\x3a\xb5\xd4\x91\x5d\x8a\x4f\xbd\xe2\x8c\x1a\xa8\x6d\xf9\xb0\xbf\xd0\x42\x63\x9e\xe0\x4a\x1f\xfb\x3a\x45\xa7\xbb\x67\xc1\x15\xae\x23\xa8\xc4\x87\xb0\x3b\xce\x8a\xd9\xbc\xba\x30\x24\x46\x4c\xe0\x9c\x89\x73\x31\xff\x20\x0c\x0d\x08\x1b\x4a\xff\xd4\x37\x65\x35\xf3\x53\xdf\x9d\x47\x08\x3c\x5b\x2d\xd6\x7b\xec\xfe\x3b\x6d\xc8\xf6\x27\x3c\x0a\x3d\x35\xab\x12\xc7\xae\x8a\xe9\xd4\xd3\x55\xb4\xbd\x34\xa0\x8a\x48\x56\xd5\x16\x77\xbd\xea\xce\x60\x61\x8c\xc2\x2c\x10\x4e\xd8\xdb\x29\x8b\x0a\x93\x41\x68\x30\xad\xb0\xab\x4e\x3d\xbb\xdf\x6f\xd2\xa8\xf3\x1f\x5d\x06\x26\x46\xa4\x03\xfa\xc6\x45\x5f\x05\x24\xc3\x88\x51\x57\x06\xbc\x5b\xed\x1f\x1e\x77\x96\x6b\xa1\xcb\x69\x4a\x42\x34\xda\x41\xf7\x99\xaa\xca\x6b\xf8\xe8\xfe\x2e\x01\xd3\xc3\x8f\x6f\x50\x2d\xf2\x7c\x03\xd5\x16\xbc\xcc\x26\x93\x34\x14\x6e\x23\x6d\xf6\x99\x2a\x8b\xec\x4f\x1b\x9c\xd9\x8b\xc3\xc5\x82\x68\x26\x29\x8b\xb1\xb4\xc6\x2d\xd5\xef\xbd\xd7\x24\x69\x1a\x60\x48\xa5\x6a\x6d\xee\xbb\x52\xfd\x1a\x99\x4f\x92\x1a\x82\x3e\xf2\xcf\x9b\xe5\x4c\x90\x65\x12\x6a\x97\x8c\x40\xd8\x25\x8c\xdb\xbf\xff\xd1\x35\x18\xbc\x8c\xf5\xf8\xca\xa2\x6e\xa0\x5a\x34\x8d\x70\xce\x51\x87\x6d\x1a\x58\x35\x92\x71\x85\xf0\xdf\x57\x2f\x78\x82\xe6\xea\x55\xa6\xbb\x8b\xc6\x02\x93\xf7\x5d\x85\x26\xc0\x35\x14\x9e\x4a\x84\x49\x26\x4c\x88\x26\x79\x5e\xd6\x60\x11\xed\xdf\x3a\xc5\x85\x6e\x32\x30\x69\x30\x8e\xd5\x7a\x78\x99\xee\x6b\x57\xc7\x6f\xc6\xc3\x08\xeb\xe1\x00\xa7\xe4\xad\x95\x8a\xa9\x9b\xac\x18\x9a\x14\x32\x61\x02\xf7\x74\x0c\x04\x0d\x4d\x0a\x99\x52\x8a\xe7\xce\xd3\xe3\xdd\x6a\x7f\xbf\x78\x58\x7c\xeb\x60\xcc\x32\xe5\x14\x0d\x25\x4f\xca\x31\x28\xf6\x90\x42\x5a\x50\xa6\x93\x87\xc1\xd2\x87\x5d\x79\x65\xdf\x60\x68\x34\x4b\xa1\x81\x77\x94\xa3\x16\xb0\x3b\x7e\x05\x01\x1c\x37\x22\xf8\xf3\x24\xf2\x3f\x46\x96\xed\x68\x05\x4a\x19\x44\x88\x72\x5d\x2f\x1f\xdd\x95\x26\x65\x37\x52\x32\x81\x84\x34\xb6\xb8\xbb\x19\x94\x2f\x8e\x0f\x17\x29\x95\x0d\xd8\x65\xf5\xa2\x92\xd9\xb4\xd2\x98\x49\x4d\x13\xe4\xd9\x44\x10\xd0\x5d\xd9\x5c\x8a\x41\x49\x4d\x53\xac\x1c\xe8\xbe\x35\xd2\x19\x5e\x98\xee\x3a\xb1\xd4\xf9\xfb\xac\xde\x55\x27\x98\x5e\x0a\x14\x96\x27\x6c\xa1\xf9\x26\x6a\x5b\x1f\x36\xfe\x3d\x90\x30\x25\xfe\xa9\x90\x6b\xb5\x9b\x73\x20\x62\xa4\x57\x6a\xdd\x58\x0f\xce\xdc\x58\x47\x6a\x90\x1c\xad\xbb\xee\x40\x71\x9b\x42\x66\x6d\xbb\xd1\x97\x03\x77\x55\x1a\xae\xf9\xf8\x4e\xd5\xc8\x11\x97\x26\xa6\x21\xf1\x73\xf8\xeb\x83\x4b\x9a\x18\x88\x1e\xd4\x30\x5e\xaf\x1f\x2e\x78\x76\x2a\x64\x96\xfa\x21\xab\x37\xb9\x68\x4c\x59\x1d\xe6\xa4\x75\x99\x8a\xc2\xd8\xd6\xee\x8a\x1a\xa1\x81\xd3\xa3\x59\x45\x84\x98\xe1\x77\x59\xd8\x4d\xe4\xef\x85\xe0\x55\xc4\xb8\xf2\x66\xe1\xa6\x82\xa3\xc8\x9c\xb2\xc8\x3b\x0c\x80\xfc\xb3\xc1\x5d\x77\x05\x62\x22\x9f\xd0\x77\x54\xd3\xd5\x34\x1a\x3c\xa9\x4e\x52\xd4\x49\x1d\xbb\xfa\xe0\xeb\x9e\x6b\xc6\x1a\x4e\x7a\x5a\xfb\x39\xda\x2f\x14\x8d\xb9\x49\xfb\x29\xab\x7e\xc1\x48\x7b\x96\x29\xaa\xc0\x62\xba\x11\x64\xba\x2c\x5d\xca\xa4\xac\x6c\x99\x9d\x3f\x51\xcf\x35\x75\x98\x62\x31\xc1\xd9\xd5\x1e\x24\x53\x50\x9f\x6a\xf7\x16\x62\x21\x82\x5e\x3f\xe2\x54\x74\xf4\x7b\x4c\xf1\x80\xa0\x05\xfb\x9f\xd3\x19\x94\x49\x71\x25\x82\x64\x64\x7f\x8f\xa7\xbc\xe2\xca\x9e\x46\xdf\xf2\x52\xc2\xc7\x56\x65\x1d\x0f\x69\xdb\x66\x65\x27\x6c\x68\xc3\x06\x99\xcb\xea\x8c\xf5\x8e\xa9\x98\xd9\xd5\xfc\x02\xcd\xf7\x4f\xe5\xbe\xc7\x64\x27\x55\x09\xd7\x36\x15\x8c\x89\xaa\x33\xca\xef\xf9\xf9\x9a\xc4\x3a\x0a\xbc\xce\xe7\x21\x2b\x5c\x4c\x6a\x70\x5c\xa8\x24\x35\x38\x3c\x98\x09\xba\xb7\x51\x95\xcf\xb5\x1e\x0f\xba\x1f\xe8\x44\xc7\x88\xb2\x42\x41\xab\xfb\x21\x41\xf9\xfc\xfd\xd3\xc0\xa2\xee\x3a\x48\xbd\x4a\x43\xc3\x84\x83\xf3\xfc\x16\xe8\x30\x3f\xfb\xd3\x38\x12\xce\x41\x6e\x6d\x35\xcc\x29\x7d\x69\x6d\xa8\x34\x11\x18\x1b\xfe\x56\x01\x34\x50\x5d\x0d\x0f\x00\x95\x6a\x86\x4b\xd1\x42\x35\x36\xa2\x9a\xf8\x3e\x4a\x70\xa5\x7b\xa0\xd5\x76\x71\xb7\xda\x2f\xee\xee\x1e\x97\x88\xc8\xf7\xef\x25\x94\x12\x08\x57\x11\x96\x62\x23\xf7\x90\x09\xd7\x2e\x03\x8d\x06\xc8\x9f\x27\xa8\x3e\x7f\x8a\x0c\xb1\xe5\xd9\x01\xae\x4e\x03\x84\xb7\x92\x44\x1b\x33\x96\x3b\xae\xca\xc3\xb5\x68\xc4\xe8\x91\x65\x1a\xa2\xa9\x6d\x91\xac\xb3\xcc\xc1\x4c\x49\x63\x3d\x09\x65\x57\x52\x53\x4e\x3b\x28\x1a\xa0\xa1\x70\xb5\x75\x9a\x4e\xfe\x29\x14\x30\xc4\x66\x1e\x6d\x5e\xb0\xdd\x78\x7b\x37\x58\x41\xa0\xb1\xc0\xd0\xb9\x52\x1d\x65\xd1\x64\xcc\x0d\x8f\x89\x0b\xd7\x5a\xbf\x70\x9e\x18\x98\xe9\x20\x50\x18\x45\x7a\x80\xf7\x8d\xc0\x6a\xa2\xd1\xc6\xa1\x03\x66\x10\x19\xd2\x47\x37\x7f\x40\xdd\x80\x1e\xe9\x78\x30\x1d\xa4\x09\xeb\x73\x3e\xd7\xa7\x02\xf1\x8a\x7f\x73\x66\x4d\x1f\x29\x35\xc6\xc6\x6b\x0a\x55\x56\xab\xdd\xed\x70\x53\xd0\x61\x6c\xbc\x82\xd8\xbe\x81\xea\xb0\xf7\xe9\x3e\x28\x34\x16\x87\x76\x1d\xb5\x25\x49\xb0\x44\xe1\xed\xa7\xaa\x6c\x29\xe2\xf8\x05\x23\x1a\x62\x41\xb2\x23\xb3\xc5\xc5\x19\x8c\x16\x94\x8b\xe9\x8f\xff\xe9\x86\x5a\x13\x6e\xd1\x50\x7f\x9e\xca\xea\x74\x18\xf1\x40\x32\x4d\x54\x9c\x0a\x0f\x31\xb5\xec\x50\x83\xd8\xb1\x66\x81\x41\x52\x39\x17\x9a\x5a\xd4\x9e\xa3\xce\xcf\x49\xcd\xc0\x6a\xf6\x6a\x38\xe6\xe5\xa7\x97\x94\x9d\xe3\x6c\x63\x9a\x07\x96\x50\x53\x60\x0d\xf3\xa6\xcc\x33\xe5\x8f\xe4\xb6\x4d\x75\x26\xff\x4e\xfc\x82\x85\x69\xa0\x1a\x67\x71\x34\x8f\x05\x6e\x58\xce\xe2\xee\xcb\x16\x7c\xbb\x11\x68\x91\xbf\xbf\x66\xea\xf5\x5c\x0e\x8d\xe9\x38\x12\x51\xe2\xf9\xe6\x7f\x39\xe6\xa4\x7a\x86\x69\x97\xe9\x98\x44\x7c\x7c\x06\x7f\x7e\xc5\x9e\xa2\xe3\x84\x47\x2e\xfb\xe7\x09\xb0\x86\x7b\x8f\xeb\x95\x44\xd6\x75\x16\xfa\x42\x34\x50\xa7\x84\x61\x90\xbc\x80\xf7\xef\x95\xf0\x29\xfb\x5d\xa6\x7e\x4d\x62\x1d\x3a\x8d\x2d\xad\x8f\x2b\x77\xcb\x0a\x51\xcd\xdb\x79\x3a\xd5\xc4\x92\x1a\xa2\x4e\x1e\xe0\x3c\x14\xfb\x93\x57\x08\x66\x5a\x84\xdc\x66\xb7\x56\xcb\xf1\x6c\x16\x51\x18\x78\x8a\x31\x94\x67\xb9\x3e\x03\x5e\x69\x21\x15\x1b\x72\xba\xf4\xc2\xe9\x9b\x8f\x33\xed\x1f\x2b\xdc\x31\x7a\x0f\x49\xe2\xc0\xe5\xe6\xb6\xa2\xc8\x9a\x4f\x2b\x20\x3d\x53\x1d\xe2\x7f\x90\x48\x35\x90\x36\xb4\x12\x25\xe3\x67\x92\x69\x12\x05\xde\x93\xb5\xb4\x71\xfe\x95\x74\xcc\x59\x80\x65\x6d\x16\x47\xbf\x2b\x4f\xe8\x63\x16\xcd\x15\x14\x80\x48\xda\xea\xf3\x2c\xa8\xaa\xb5\x71\x50\x2c\x14\xaa\x3f\x35\xa2\xb7\x6d\x10\x3e\xd2\x4c\x78\x79\x99\x36\xa1\xf6\x3b\x81\xaf\xe2\x90\x39\x22\xc4\x2f\x94\x26\xfe\x63\xfa\x7b\x13\x5a\xf5\x78\x5b\xd1\x59\x96\x67\x98\xa6\xe9\x0e\xd5\x0d\x91\xe1\x1c\xc5\x3e\x0b\x78\x1f\x50\xf8\xcf\x85\x06\x20\x8c\x43\xd4\x57\x6d\xef\xb1\xaf\x7b\x6e\x4a\x06\x51\x6c\x2d\x7e\x38\x1c\xa1\xea\xb0\x37\x40\x48\xea\xb9\x9e\x9d\x0e\xe8\x37\x28\x5a\xe7\xe9\xec\xe9\x6c\x3d\x61\xf7\x33\x91\xf6\x84\xe8\x9b\x72\xc4\xf8\xc4\x80\x30\x8a\xea\x70\x79\x59\xf6\xf8\x5e\x20\xb1\x0d\xd1\xec\x75\xb9\xab\x84\x86\xf9\xb8\xc8\xbc\x7d\x01\x34\x36\x29\xf7\x45\xde\xea\x17\x5c\x74\x84\x80\xa6\x44\x08\x4f\xdd\xea\x36\x95\x5d\x06\xd5\x50\xda\x6d\x6c\xb1\x02\x73\x3a\x7a\x1d\xb7\x09\x36\xc7\xae\x35\x26\x1c\x8b\x9e\x1a\xa1\xca\xf6\xc3\x0d\x0b\xa6\x20\x96\x09\x38\xde\xb5\xad\x2a\xdb\x31\xe8\x0a\xf5\xc7\x53\x08\x62\x05\xa9\x65\xe3\x2c\x36\x50\xb5\xcb\xf7\xcc\xa4\xb2\x8c\x0f\xbe\x3f\x98\xd8\xbf\x47\x6b\xc7\x2e\xb3\x26\xeb\x6a\x20\x20\x89\x6c\xfe\xd1\x11\x79\xdd\x64\x79\x3e\xbd\xdc\x7f\x59\xbf\xdc\x92\x71\xdc\x74\x5e\xf8\x90\x41\x02\x09\xe2\x37\x1f\x16\xdb\xa7\xe1\xde\x01\x69\x9a\xe0\x39\x79\x73\x52\xbf\x06\xee\x19\x88\x90\x69\x32\x96\x3d\xe9\x57\x7b\xc8\xff\xc7\x77\x8b\x98\x09\x06\x28\xde\x05\xd6\xbe\xb5\xeb\xe6\x49\x5c\xaa\xb5\x05\xa1\x40\xf5\x29\x0a\x0f\xcd\x01\x19\x11\x74\xf8\x9e\xab\xfc\x36\xeb\xac\x02\x90\x34\xc2\x4c\xf4\xea\x03\xd4\x5d\xf9\xf2\xfb\x32\xc6\x39\x2e\x13\x90\x49\xe2\x8a\x84\x71\x55\xe3\x7a\x1b\x4f\x2f\x15\x01\xce\x06\x65\xa3\xc7\x0f\x7d\x44\x0b\x54\xc2\x11\x34\x82\x51\x35\x3c\xf3\x28\xd3\xe2\xb3\xfb\x66\x0a\x02\x74\x21\x54\xf5\x79\x6c\xca\xe5\xab\xc8\x73\x28\x5e\xba\x9f\x6b\x95\x5a\xb9\xb8\x93\x7c\x2f\x4b\x03\xd5\xb3\xd7\x60\x74\x1d\x80\x10\xea\x4e\xbc\xbb\xec\x6d\x98\x18\x06\x10\x56\xc3\xa0\x3c\x42\xe1\x28\xd3\xbf\xaa\x89\x07\xd0\x29\x46\x86\x10\x73\x55\xa3\x1d\xdb\xc7\xb4\xc0\xa4\x89\xe7\x0d\xbf\x06\xd1\xbc\xce\x00\xfc\xc1\x48\x1d\x39\x1a\xda\xfb\x52\x9f\xf2\x89\x82\xd1\xfc\x3e\x68\x02\x6e\x93\xc9\x22\xab\xae\xab\xf2\x38\xf2\x0b\x4d\x60\x42\x4b\x11\xd6\x6e\xf4\x57\xa7\xcf\x21\x6e\xdb\x44\x44\x62\xad\xe9\x41\xfc\x82\x9d\xe7\x28\x1f\xbc\x92\x89\x38\x4f\x6d\x9d\x9d\xdb\x17\x1e\xca\x66\x75\x38\xf6\xf5\xc7\xbe\x9f\xe4\x38\xcc\x05\x7c\x0c\x94\xf2\x98\x89\x34\x60\xb4\x19\x9a\xd7\x27\x07\x93\xf6\x4d\x04\x18\xd2\x7b\x38\x33\xd9\xa3\xaf\x0d\x0d\x23\x32\xa8\xaa\x5e\xbc\x89\x46\xcc\x12\x23\xf5\x03\xc0\xa4\xf0\xac\xe6\x7e\xc1\xfc\x7f\xce\xfe\xa4\xbb\x71\x1c\x4b\x1f\x87\xbf\xcb\x6f\x95\x8b\x5e\x70\x00\x01\xf0\xdd\x49\xb2\xec\x50\xa5\x6d\xa9\x25\x39\xa2\xb2\xfa\xd4\xd1\xc1\x70\x61\xb3\x4d\x91\x2a\x92\xb2\x43\xf9\xe9\xdf\xc3\x0b\x80\x93\xe4\xc8\xec\xff\xa6\xa2\xd2\x80\x38\x80\x18\xee\xf0\xdc\xe7\x19\x4c\x21\x93\x48\x89\xb6\xf4\x9b\xa8\xdf\xe6\xd9\x35\xb3\xd8\x74\x56\x7f\x51\x86\xef\xaf\xa6\x68\xe4\x88\x3c\xef\x96\x95\x8a\x82\xdb\xc6\x9c\x49\x4c\x68\x0b\xf9\x1c\xe3\xdd\xcf\xec\x78\x3e\x0e\x71\xcf\xf7\x65\x65\xd1\x12\xb6\xf2\x71\x7c\x17\x0a\x02\x0b\xc3\x97\xcd\xdb\xba\xe8\xde\x84\xc7\x62\x64\x73\x3d\x89\xe2\xf2\x28\x5a\xe7\xda\xea\x89\xfd\xd6\x45\xd0\xa7\xa1\x74\x77\x01\x19\x32\x0c\xec\x95\xad\xdb\xb4\xc9\x00\xa9\x19\xda\xe1\xbf\xda\xf8\xaf\x7e\x28\xb1\xd4\x4a\x9e\x2f\x57\xd5\x98\x46\x3a\xce\x34\x5c\xa3\x4f\xa5\x6c\xb7\xfb\xfb\x5e\x16\x34\x31\x32\x0d\x31\xf0\xa3\xcb\x42\x34\xed\x21\x0a\xfe\x00\x33\x2a\x0a\xb0\x6e\x51\x89\xe2\xe5\x6a\x14\x54\x1c\x29\x57\x85\x3d\x43\xc5\x80\xe1\xa7\xe1\x5d\x27\x4d\x6c\xd1\xb3\xaf\x86\xfe\xa5\x57\x6d\x54\x32\x8a\xfe\xd5\x4d\xf7\x98\x3a\x0c\x31\xb5\xa8\xca\xb2\xd2\x19\xca\x7b\xec\xa0\x99\xbd\x56\x80\xe7\xaa\x2f\x50\x1b\x5f\x4e\x87\x69\x6c\x01\x9d\xe7\xa2\xf9\xd7\xfe\xf7\xc5\x1b\xf4\xa0\x0a\xa3\x23\x5b\xac\x09\xcd\xdb\xbe\x9c\x43\x6f\xfa\xe9\x5d\x67\x71\x19\x9d\xc6\xc4\x72\x3d\x7a\xc1\xf2\xc4\x68\x91\x68\x4f\x7a\x74\x88\x93\x83\xc5\x63\x3e\x88\xfa\xa5\x16\xaf\x10\x92\x20\xb0\x04\xfe\x7d\x7f\x8e\xfe\x41\xdb\xdf\x4e\x2b\xdf\x62\x62\xad\x5c\xb5\x07\x26\x10\xb3\x3f\xe1\x07\x32\x8f\xb7\x0e\xf4\xda\x18\xaf\x85\xe7\xc7\xd3\x24\x0a\x61\xdc\xe2\xb5\xf7\x0f\x8d\xe1\xb6\x6a\xae\x82\xf6\xf3\xcf\x2a\xab\x6a\x78\xbe\x0e\xe4\xd2\x20\x0a\x6c\x25\xaa\x5d\xbf\xc3\xb2\xf9\x21\xec\xc9\xd5\x06\xd1\x20\x22\x14\x1d\xd4\x76\xc2\x7c\x2d\x89\xd9\x57\xc8\xd3\x20\x52\xb1\x65\x3d\x6f\x57\x9f\x8d\x03\xfb\x16\x88\xd1\xc7\x70\xd4\x48\xb3\x01\xfe\x8b\x06\x71\x20\x30\x18\x7e\xcc\xae\x33\x16\x43\xac\x05\x0d\x62\x1e\x5a\xd5\xad\xa6\x12\x91\x92\xa5\x37\x0f\x9d\xf5\x48\x83\xd8\x08\x57\x45\xfa\xfa\x9a\x03\xa6\x14\xde\x40\x2f\x0b\x53\xda\x18\xd9\x6f\x83\xa7\x25\x31\x55\xba\x63\xf7\xe9\x31\xba\x34\x20\x24\xe5\x62\xe8\x3b\xb8\x20\xec\xaf\xac\x5e\x1a\x10\x1a\x05\x62\x64\xb4\xcd\x9a\xd9\xb5\xcd\x46\x03\x02\x54\x0c\xe9\x63\xfe\xf9\xfc\xfb\xa4\x47\x42\x02\x44\x3e\xad\xee\x1f\xf7\xbb\x4c\x03\x42\xb9\xfd\xd3\xb5\x27\x96\xa5\x5c\x28\x5e\xe7\xe5\xf9\xf5\xad\xd7\xf0\x8d\x7a\x1b\x28\xf9\xf7\xd8\xf6\x19\x04\x18\xdd\x75\xa8\xa4\x23\x01\x56\x97\xbf\xab\xca\xe3\xee\x04\x2a\x13\xf9\x17\x5a\x9d\x93\xcb\x30\x42\x30\xa6\xff\x01\x55\x66\x2e\x13\x04\xcf\x0d\xce\x94\xaf\x2d\x32\x1a\x30\xe0\x38\xf0\x36\x89\xd5\x41\x62\x5c\x6b\x9a\x30\x2c\x37\xfb\x56\x7e\xb6\xef\xbe\xaa\xef\xb2\xba\xf5\x83\x76\x4d\x96\xe7\x5e\x88\x6f\xfc\x70\xa9\xb0\x13\x06\x05\x5b\x9e\xb2\xc2\x71\x9b\x8d\x9d\x0e\x1a\xa4\xd2\x2a\x2f\x15\xf0\x79\x27\xca\xed\x39\x87\xda\x73\xaa\xfe\xed\x50\xcb\x50\xd7\x71\x32\x44\xa9\x34\xc4\xeb\x54\x21\x9e\xa6\x6e\x67\x9b\x0d\x16\xff\x36\x30\x83\x69\x20\xa8\x05\x90\x1c\xb1\xb4\x09\xd7\xe8\xc0\xc2\x0c\xfc\xf3\xca\xc0\x26\xf0\x96\xa8\xc3\xb5\x98\xd4\xc8\xff\x32\x47\x49\x03\x99\x12\x8c\x91\x7f\x58\xe4\x31\x06\x48\x5f\x8a\xec\xe7\x24\x98\x4f\x03\x29\x62\x4f\x10\xb5\x3e\x41\x71\xa5\xfd\x42\x03\x29\x99\x55\x76\xb4\x26\x04\x62\xc7\x5c\x93\x12\xd4\xc2\xe0\x1d\xed\x66\xff\x67\xcc\x3a\xe9\xac\xee\x65\x33\x69\xa0\xb4\x32\x9d\x12\x86\xcd\xcd\x75\x57\xd2\x42\x20\x0f\x9c\x3e\x37\xea\xad\x93\xe1\x58\x54\xc2\x74\x57\x85\xc8\x1a\xec\x98\x4f\x6c\x07\x6d\x56\xe8\x55\x91\x35\x2b\xf3\x0c\x0a\xea\x5a\x5c\x67\xf9\xfd\x2f\xb5\xc4\x92\xef\x93\xa3\xf7\x9f\x92\x08\xd3\xc0\x84\x0a\x19\x0d\xce\x35\x7c\xc1\x06\xe9\x3b\x92\x14\x79\x7b\x37\x62\x58\x2f\x41\xc3\x20\x89\xd0\x79\x59\xa0\x21\xbc\x13\xaf\x62\xd6\x6e\xd6\xdf\xa1\x0a\xff\xcf\x28\x97\x71\x9c\x6c\xfa\x9f\xfd\xe6\x16\x06\x90\x58\x3a\x58\xf4\x3d\x2c\x49\xf6\x20\xd6\x4a\xc3\x48\xd0\x4e\x03\x42\xf4\x14\x13\xab\xda\xb2\x6b\xd4\x13\xb2\x61\x1a\xc6\x86\x09\x5f\xac\xfe\x52\xb7\x13\xa7\x5b\xea\x7f\x63\x69\x87\x24\x4a\xd1\xd7\x10\x79\x73\x55\x79\xe5\xbb\x18\x8d\xd6\xa2\xaf\x70\x88\x88\x7d\xe2\xc8\x61\x7e\x23\xb7\x4a\xc2\x24\xd0\x98\x57\x3e\x89\x4b\x57\x3f\xea\x9b\x42\x63\xe8\x74\x53\xf3\xac\x76\x34\x4c\x62\x65\x0f\xe3\x76\x9e\x8d\x88\x8c\x68\x98\x40\xec\x2a\x73\x72\xcc\x03\xe5\xd9\x07\x54\x93\xf0\x73\xdb\x4b\xe3\xd7\xac\xcf\xd2\xad\xe5\x9b\x58\x30\x1a\x52\xc9\x1c\x5e\xe6\x54\x56\xa3\x90\x01\x0d\xa9\x82\xd8\x49\xcb\x78\x05\x3f\x1a\x52\x13\xa5\x66\xf0\xe8\xcb\xe6\xed\x1e\x60\x56\x68\x4b\x3a\xf0\x57\x11\x14\x77\x15\x46\x64\x3a\x24\x10\x5d\xbc\x21\x5e\xe2\xef\xed\x0d\x21\xa3\x36\x96\xf1\x0a\x0d\x52\xf3\xe6\x93\x3a\x0f\x1a\x32\x61\xe1\xe4\xf3\x72\x67\xd9\x52\x0e\x7b\xa8\xaf\x92\x73\xe7\x29\xa5\x05\x0d\x39\x0b\x02\x6b\x7d\x38\x88\xc5\x44\x3c\x95\x86\x5c\xc5\x38\x00\x28\x6f\x24\x72\x2c\x81\x79\x45\xcf\xe4\x97\x27\x50\x98\xc6\x01\x11\x7e\x7b\xcd\x73\x2c\x0f\xb0\x34\x49\x96\x52\xcd\x5f\x5f\xc4\x60\x03\x1f\xe5\xc0\xa2\x99\xbc\x9e\x60\x06\xab\x0a\x4d\xf6\xd3\x2e\x0b\x4f\x8c\xe7\xdb\x55\x6c\x89\xf5\xdb\x9d\xc6\x32\x09\xa2\xf3\x34\xf4\xed\x68\x28\xb4\x41\x2e\xbc\x97\xa2\x9d\xe6\x46\x14\xf5\x35\xef\x3b\x6d\x0d\x77\x4c\x51\x3d\x25\x8f\xe5\xab\x37\x0b\x69\x28\x53\x01\x7a\xc2\x34\xfd\xe5\xe7\x1b\xb2\x17\xba\xdf\xab\x88\x52\xf7\x0d\x97\x3f\x4f\x59\xb7\xc9\x86\x8a\x2a\x62\x89\xc5\xad\x23\x20\xaa\x63\xd7\x24\x98\xe5\x00\x1d\xa8\x37\x6f\xce\xd5\xa9\xbc\xd6\x76\xfa\xaf\xe1\x2e\xa2\x04\x67\xa2\xcf\x59\x0d\xca\x04\xa2\xe0\x8b\x29\xa6\x34\xc3\x4a\x56\x25\xda\x5d\xd6\x06\x48\x70\x09\xcf\x9a\x6b\xcf\x9b\x86\x3a\x15\x58\xdb\xb8\xac\xaa\x8e\x52\x8f\x86\xad\x47\xdf\x1a\x1d\xbf\x67\x79\x3e\xf9\x81\x09\x42\x8c\xd6\x3d\x64\xcd\x3c\x6b\x46\x3b\xb1\x89\x13\xfc\x2c\xf7\xeb\x87\xee\x4f\x09\x41\x56\xc1\x1d\x14\xda\x46\xf0\xcb\xfb\xf3\x04\xee\x41\x43\x63\x62\x34\xb2\x67\x0a\x9d\x89\xfb\x2c\xcf\x01\x67\xd0\xb5\x52\xc4\xd4\x66\x8d\x82\xc4\x4a\x46\xb4\xe7\x9d\x45\xd4\xed\xa0\x9b\x4f\x51\x24\x2c\x6b\x8a\x4b\xef\xcc\x4e\x63\xde\x59\xbf\x7d\x46\x91\x52\xdc\x0a\x6b\xa8\x5c\x54\xe8\x27\x64\xc5\xeb\xfa\xdc\xa8\xf2\x38\x8c\x0c\xd0\x28\x8e\x12\x4c\x7f\xed\x40\x9d\xab\xac\xb9\x1c\x1e\xa0\xb1\x89\xb4\xb5\x99\x35\x0d\x1c\x4f\x4d\xbd\x2f\x17\x65\x51\x80\x6a\xe6\xa2\x78\x77\x2f\xb5\x2f\x67\x1e\x91\x3a\xaa\xcf\xa0\x51\x1c\x07\x08\x9c\xb9\x2b\x8f\x50\x0c\xb5\x7b\x68\x14\x6b\x26\x1c\x74\xaa\x6e\x72\xa8\xeb\x21\xea\xe1\xf0\x58\x4e\xec\xb1\x28\x01\x88\x3a\x06\x42\x4b\x36\xbf\x28\x4f\x17\x8c\xc7\xe8\xf2\x73\xb2\x42\xa2\xc4\x10\x3c\x11\xb0\x46\xb8\xfc\x2c\x06\xe7\xb3\xbe\x0e\xb3\x8f\x77\xc2\x88\x86\x22\x70\xb0\x0f\xd4\x2b\xf3\x2b\x1e\x21\x1e\x5f\x56\x73\xba\x1f\x33\xa7\x25\x9b\x21\x6f\xf2\x34\xd6\xf8\x6f\xdf\xcb\x80\xd3\x7c\x69\xce\x55\xb1\x2b\x8f\xd0\xbc\xf5\x1b\x5a\xc4\x43\x91\x4a\xef\x11\x40\xd5\x53\x37\x8c\xef\xc5\x09\x43\xde\xc9\x3d\x54\x55\x56\x62\xc5\x56\x77\x05\x4e\xa2\xc8\x2b\x35\xa0\x93\x7b\xa8\x2f\x75\x03\xc7\xae\x03\x70\xe8\x06\xb4\x63\xb9\xf2\xad\x22\x8d\x8c\xf7\x55\xb7\xf0\x01\x55\xb3\xff\xe9\xdb\xa4\x8a\x90\xd5\x66\xb5\xd8\xcf\xfc\xdf\x94\xb2\x51\xa1\x83\xca\x41\x20\x4b\x6a\xa5\xbf\x65\x50\x89\x4a\xbd\x5d\xa6\x8c\xeb\xff\xf3\xef\xf1\x11\x1f\x29\x50\x11\xf3\x55\x43\x5d\x91\xf4\xe4\x65\x35\x04\x28\xbc\xf4\x09\xd9\x06\xaa\x97\xdd\x9d\xbf\x37\x04\x31\x16\x3f\x7a\xae\xde\xc5\xe3\x7a\xe7\x45\x86\x68\x04\x1a\xb4\x2d\x2f\xbc\xb4\xd7\xbe\x7d\xe6\x46\x00\x21\xd6\x52\xc8\x73\x55\x8c\xb6\xcd\xd1\x5a\x02\x50\x81\x25\x31\x68\x2d\xd3\x47\x51\xfb\xc3\x1e\xa3\x6c\xe3\x77\x32\x84\x89\xf6\x13\xbe\xdc\xdd\x1f\x36\xeb\x6d\x9f\x1a\xa7\x91\x49\xb5\xec\xa8\x59\xb6\xed\xc0\x8f\x51\x14\x34\x0e\x12\xcb\xe1\x7a\xff\x4f\xcc\xb1\xdf\x8c\xe0\xd0\x38\x10\x84\x3a\x33\x7b\xd6\x94\xc7\x55\xbd\x1d\xb2\xba\x9d\xad\xd4\x95\xef\x0b\x81\xe9\x35\x15\x7f\x41\x87\x73\x2d\xf0\x39\xb9\x6b\x18\xf0\x70\xb8\xe3\xdf\x95\xea\x0a\xd8\x3a\x5a\x4f\x71\x18\x13\xaf\xbd\x9f\x8b\xea\xd5\x52\x41\xef\x9a\xf2\x74\xed\x18\xc4\x11\x35\x32\xee\x13\x5d\x1d\x93\x00\x8d\x63\x61\xd5\x6b\x30\x1b\xe5\xcc\xe9\x1b\xc1\x8a\x98\x04\x12\xe9\x0a\x9c\x46\x6f\x55\x5a\x7a\xee\xdf\x7e\x61\x09\xf7\xb7\x27\xd2\x69\x9f\x80\x3a\xb4\x3f\xf0\x37\x4f\x82\x24\xb2\xb5\xd9\x79\x59\x0d\x02\xae\x34\x4e\x74\x48\x5d\xcc\x7e\xb3\x5e\x3f\x5a\xe6\xff\x28\x18\x99\x6d\x71\x62\x12\xcc\x29\x1e\xb3\xc2\x9d\xf8\x3d\xbb\xaf\xeb\x42\x03\x1d\xb3\x5e\x21\xf6\x2e\x3b\xe5\xe5\x51\x4c\x46\x87\x52\x89\x86\x0e\x6e\xb6\xd6\x72\x98\xe5\x79\xa9\x10\x6d\x34\xe9\xca\xcd\x48\x25\xee\x8b\xef\x3c\x7a\x4c\x9a\xc6\x21\x96\xe0\x67\x05\x88\xd3\x29\x87\x4d\x99\x15\x3e\x98\x46\x63\x16\x47\x98\x5c\xc2\x2a\xe3\x1d\x34\xbd\x30\xfa\x5f\x61\x54\x68\xcc\xa4\x05\x80\x29\x9b\x16\x04\xdd\xd5\x63\xd3\x98\xe9\x34\x71\x59\xc3\x59\x5d\x3b\x86\x89\xf1\xcf\x39\x09\xf1\xa3\x1a\x40\xc7\x61\xf4\x05\x38\x51\xd2\x63\x92\xb6\x60\xa0\x12\x79\xde\x6e\x85\xbf\x62\x43\xa5\x31\x4f\x02\x2c\xa7\x7e\x10\x85\x70\x75\x34\xbe\xce\xed\x2f\x2b\x90\xc7\x57\x4a\x63\x9a\xf8\x38\xdd\x0e\x9a\x87\xce\x6e\x8c\x05\xb1\x34\x37\xf6\x4b\xf9\xa8\xc4\x38\x5c\x1d\xfe\x75\x80\x60\x7c\x3b\x91\xe8\x28\xea\xb0\x2e\x8e\x4d\x03\x81\xa2\x9b\x0a\x54\x56\xdf\xae\xfc\xa7\xb1\x0c\x0d\x6e\x93\x0f\x65\xae\xa1\x78\xcc\x5e\xdf\x1a\x4c\x51\xfd\xa5\x01\x1e\xab\xc8\xb2\x08\xe1\xa8\x2f\x9c\x4a\xde\x04\x3d\x43\x63\x95\xc4\xe8\x9a\xf4\xfc\x12\xed\xdf\x92\x38\x1a\x16\xf3\xef\x1a\x71\x45\x3c\xe5\xfb\x4a\x2e\xbc\x44\x72\x56\xf9\x1a\xe4\x3e\x41\xe3\xcf\xce\x58\x8b\x08\xb7\x13\xac\x8b\xe8\xdc\xed\x58\x9b\x08\xfd\x0b\x6b\x10\xed\x2c\x09\x9f\x1e\x87\x8f\xc7\x77\x04\xc3\x88\x2f\x57\x72\x55\x8c\xed\x7e\x33\x30\x53\x63\x13\x00\x96\x16\xb4\xa7\xf4\xda\x98\x85\x2f\x8a\xf0\xfa\xc6\xab\x22\x6b\x44\xfe\x94\x15\x73\x68\x7a\x4d\x37\x4a\x02\xc9\x71\x25\x61\xac\xb7\x2c\x60\x55\x20\xf9\xd7\xf2\x3f\x0e\x71\xfb\x04\x75\x2d\x5e\xfb\xee\x3a\x09\xae\x22\x6a\x5f\x65\x35\xdc\x6f\xc2\x18\xbc\x70\xe0\xbd\x38\x2b\x5f\xa7\x32\x60\xd1\xa7\x24\xe4\xb6\xfa\x59\x9e\x31\xa9\xe0\x52\xc9\xbe\x51\x5b\xa2\x2a\x47\x4a\x9a\x5b\xb6\x85\x81\x4e\xdc\x68\x16\x90\x28\x00\x64\xc6\x68\xbc\xbf\x81\xaa\xf9\xaa\xcf\x8e\x3d\x8a\xcf\x0b\x54\xf5\xaa\x68\x8d\xc5\x42\xe3\xda\x1b\x5d\x21\xa6\xc2\x1e\xd4\xc8\x0f\xb2\x5a\xac\x0f\x9b\xe5\x76\xb5\xbe\x3b\xec\x7f\xac\xbb\x6b\x2a\x83\xd8\xd3\xe7\xe5\xed\x31\xb8\x39\x77\x08\x09\x22\x2f\xb3\xff\x3d\x53\x70\xaa\xa0\xce\x34\x14\x0d\xdc\xc1\x13\xd4\x62\x7c\x34\x13\x42\x24\x66\xd7\xb2\xfa\x0e\x21\x3c\xbd\xe1\x45\x08\xa5\x16\x4e\x93\x35\x6f\x77\x95\xf8\xdc\x63\x2a\xdb\x56\xdd\x4c\x6e\xc9\xe3\x34\xec\x12\x19\xa3\x72\x04\xdf\x43\xa5\x98\xf0\xd9\x89\xea\x28\x2e\xf0\x26\xc4\xd0\x02\x26\x09\xa1\x18\x02\x13\x5a\x1f\x54\x57\x02\x3c\x20\xc4\x18\x0f\x7f\x42\x52\x04\xc9\xb4\x7e\xad\xf8\x14\x08\xd7\xf0\x4d\x3c\xc6\x05\x21\x7b\x30\xc7\x55\x39\x54\xd7\x55\x59\xe1\x85\xf2\x5f\xe1\x0d\x04\xa9\xeb\x45\x83\x94\x62\x3e\x05\xc4\xf1\x77\x80\x53\x56\xbc\x6e\xa0\x5a\x9e\x4a\xd5\x4d\x1e\x1a\x59\xbc\xae\x97\xad\x54\x30\x04\x11\xb6\xed\xdc\xfb\x92\x36\x2a\xb7\x7b\xcb\x4e\x38\x8e\x9d\x44\x9c\xcf\x17\x10\x9a\xc6\xe8\xe8\x1c\xda\x33\x54\xa8\x77\xd0\xe8\xcf\x39\x10\xdf\xad\x0c\x34\x25\x3c\xb2\x1a\x0c\x42\x6b\x3f\xdd\xc6\xa1\x12\xc2\xa9\x05\x20\xb6\x26\x9d\x2b\x4e\x1e\x96\xa8\xfa\x5e\x0c\x08\x74\x26\xdd\xc2\x69\x8c\xdf\x8c\xd3\x11\x6e\x22\x5c\x4d\xe2\x15\x0a\x75\x19\x2a\x33\x51\x22\x64\x14\xba\x50\xc2\xba\xc0\x78\xf1\x60\x35\x8e\x9e\x5c\x26\x2a\xf4\x81\xcc\x3b\x2f\x97\x41\x89\x34\x42\xba\x0b\xcc\xcf\x83\x28\x26\x51\x01\x47\x42\x9b\xb2\xb0\xe2\xac\xdd\xdf\x95\xc2\x64\xc0\xc9\x47\x0d\xff\xd6\x69\x45\x94\x8e\xec\x87\x51\xc7\xdb\xc2\x86\x94\x40\x48\x3d\xf5\xd4\x1e\x7e\x36\x83\x9c\x37\x25\x60\x84\xa5\x69\x55\xe5\x37\x51\xe9\x85\x38\x0d\xa8\x55\x28\x31\x4a\x44\x30\x64\xbe\x1a\x4d\x0a\x03\x56\x7d\x4f\xd4\x97\x42\x0d\xc5\x82\xbe\x78\x56\x63\x34\x38\x1c\xb0\xf3\x35\x1d\x44\xde\x0e\xeb\xe8\x4b\x26\x41\xec\xe4\x18\x85\x01\x07\x19\xfe\xf5\xe5\x93\x80\x24\xda\xf8\x98\xde\x22\x2f\x6b\xd0\x73\x2f\x19\x4c\x93\x80\x4b\xa0\x5d\x3d\xd8\x06\xaa\xf6\x35\xc7\x17\x08\xa5\xc1\x03\xe4\x58\x7e\xc0\xa1\x29\x87\x54\x86\x34\x89\x02\x86\x03\x7d\xf0\x85\xba\xf5\x98\xb0\x6e\xf2\x30\x91\xb4\xd5\xfc\x32\x6b\x76\xbb\xd9\x70\xa7\x48\xe2\x88\xa5\xaa\xe7\xaf\xbf\x5f\xbf\x3c\xdf\x2d\x3d\xeb\x35\x4d\x62\x1d\x59\xf1\x6b\x4c\x5d\x39\x9d\xbc\x1c\xd6\x45\x4f\x8e\x48\x13\xcc\x4d\x21\xef\x88\xc8\xcf\xd6\x2e\xc6\x2c\xc5\x13\x34\x55\xa6\x96\xd3\xc0\x45\x42\xa3\x04\xc9\x43\xed\xe1\x60\xb3\x8b\xc8\x8e\x8a\xb2\x73\xf7\x65\xb5\x15\x7f\x7e\xf1\x26\x8c\x31\x4c\x2c\xa3\x99\xdf\x61\x8b\x56\xc7\xd3\x5f\x62\xb9\xdc\x05\x78\x12\xe2\x0a\xc1\xa9\x73\x7f\x2e\xd4\x70\x12\x25\x5c\x86\x56\x83\xd0\xcb\xf5\x8e\xd4\x98\xc6\x8f\x92\x0a\x82\x70\x2e\x57\x54\xfa\x0b\x34\x23\x4d\x24\x68\xcc\x3b\x64\x45\xd6\x3c\xc3\xe7\x83\x3f\x08\x79\x07\xd0\xa1\x89\x34\x46\xc5\x3e\x88\x77\x53\x9d\x8e\x26\x8a\x68\xdc\xcd\x3a\xad\xf5\x09\xad\x03\x4d\x74\x48\x38\xf7\x04\xcf\x4e\xba\xc1\xd2\xf9\xdd\x82\x6a\xd1\xd6\xde\xa3\x66\xc0\xb2\x32\xef\x6a\x52\x6f\x46\xcc\x13\x4d\x35\xa2\xd5\x9e\x66\xff\x3c\x3c\xad\x9e\xf7\x87\xe7\x97\xa7\xb9\x2f\x13\xa2\x09\x44\x96\x62\xc4\x4a\x41\xda\x5d\xf6\xe1\xdc\x9e\x16\xfa\x66\xf5\x0d\x4d\x80\x6b\x8b\x7f\x2e\x1b\x2f\xd5\xe2\x5a\x4c\x02\x60\xe5\x81\xca\xb2\xee\x53\x77\x7d\x3e\x81\x86\x5c\x0a\xd9\xed\x6b\xae\x06\xcf\xab\xcc\xf9\x3e\xb2\x97\x6f\x5f\x88\x62\x4c\xac\x4c\x69\x08\xb6\x16\xf7\x23\xcb\x73\x91\x15\xa8\x48\xb5\x2f\x6f\x96\x05\x50\x1a\x85\x61\xe4\x34\x24\x76\xb9\x38\x1e\x6d\x52\x7c\x3c\xa2\x34\x8a\x93\xc4\xe5\xd5\xec\x36\x8e\x73\x75\x7a\x38\xd0\x88\x5a\xe1\x88\xc7\xfd\xde\x3f\x4b\x24\x42\x4c\x8f\x94\x2e\xef\x7e\xa8\x70\x14\xef\x76\x87\x53\x55\x96\xe6\x3b\xe6\x32\x0f\x07\x1b\xd7\x59\x94\x7a\xca\x7d\x32\x0c\x82\xd2\x48\x72\x1e\x76\x72\x9a\xad\xf9\x35\x29\xd6\xa0\x34\x32\x91\x37\x33\x56\xc3\x0a\x81\x71\xaf\x38\x88\x44\x84\xa7\x18\x2a\x25\x3f\x4d\x66\x1c\x8d\x43\x85\x07\xfa\x66\x33\x5f\x1c\x30\x5a\x79\x18\x94\xe8\xd2\xd6\x56\xc1\x22\x04\x2c\x2d\x5c\x3d\x3f\x1c\xee\x67\xab\xed\x1f\x5d\x2b\xd7\x64\x60\xe7\x3d\x65\x3f\xa1\x42\xd6\xdf\xd1\xb4\xa3\x49\xca\x30\x22\x9a\x67\x75\xb3\xaf\xca\xd3\xdb\x97\x82\x6f\xe3\x95\x47\x13\x91\x90\xd0\xe9\x40\xd7\x23\xe1\x10\xd7\x01\x21\x05\xad\xf7\x77\x2e\x34\x06\xe9\x57\x85\xe5\x0d\xbd\xbd\x94\x29\x8d\x23\xc4\x77\xbe\xbc\xac\xee\x3c\xd0\xdc\xbf\x4c\x1a\xd8\xfc\xd6\x51\xfc\xf4\x05\xe4\x4f\x1d\x3e\x8e\x52\xc1\x52\x61\xdd\x79\x55\xb6\x0e\xc4\xf8\x98\xa7\xc2\x28\x61\x4d\xc7\xfd\x1b\xcc\xd6\x5f\x79\x8a\xae\xb7\x24\x5c\xbb\x33\xfd\x5b\x59\xd5\x80\x48\xe2\xf1\xa3\x4a\x13\x45\x8e\x41\x71\x7e\xbe\x8c\x52\x52\x54\xc5\xc2\xdb\x58\x33\x6d\x3d\x19\x37\xe9\xbb\x0c\x5a\xdd\xf5\xa5\x96\x11\x0d\x05\xf2\x7d\x92\xb8\x6b\x64\x09\x24\x5d\x45\x47\x17\x66\x1f\x3f\xac\x52\x10\x58\xb2\x99\xff\x3d\xd7\xcd\xef\x9b\xd5\x17\xf9\x29\xaa\x83\xc0\x93\x02\xfa\xf0\xf0\x62\xe9\x6f\xa5\x43\x4b\xc9\xe3\x66\xe2\xbe\x5c\x8a\x2a\xbf\x78\xd6\xdf\x2f\xf6\x5e\xaa\x23\x86\x30\x9d\xd9\x6b\x95\x61\xd1\xd1\xa0\x98\x6a\xd5\x0f\x08\x70\x2a\x87\xa5\xc6\x0f\xa2\xde\x88\x8b\x14\xfd\x9b\x9a\x40\x62\xb4\xef\x29\x2b\x5e\xff\x38\x8b\xe2\x26\xf3\xc5\xb5\x8b\x4b\x4d\x64\x8f\xc7\xfd\xb7\xd9\xf3\xef\xbb\xfd\x72\xb7\x27\xdd\x25\x29\x71\x89\x5e\x78\x2d\x44\xd1\xfc\xab\xd4\x99\x50\xdd\xc0\x1b\x1e\x63\xde\xb0\x3d\x89\x5a\xff\xbf\xca\xa0\xf6\xda\x12\xb6\x0b\x0b\x22\x2e\xc1\x57\x6e\x5f\x23\x86\xcb\x32\x1f\x6c\x98\x2c\xe4\x0c\xa7\x98\x43\x05\x0f\x1f\x93\x85\x4a\x80\xf3\x73\x56\xaa\xdc\xbf\x65\x95\xfe\x01\xf0\xbe\xbd\x3a\x63\x58\x68\x12\x17\x47\xcb\xc1\x2a\x8c\x54\xf0\x90\x97\x26\xf3\x48\x3e\xca\x22\x22\x90\x79\x05\xcd\x1f\x3b\xf3\xec\x77\xea\x92\x0c\x2c\x4a\xa5\xad\x1a\x45\x5a\xeb\xe2\xd5\x43\x0f\x7c\xb3\x0a\x85\xf0\x57\xb0\x84\x7f\x43\x63\x91\x45\x60\xb9\xd7\xac\x11\x81\x05\x57\x57\x50\x51\xca\xe2\x50\x53\x1b\x24\x68\x16\x22\xcf\x7f\x64\xcd\x9b\x05\x5b\x0c\x93\xc3\xff\x43\xfe\xed\xbb\x33\x82\x7b\x15\xe8\xd2\x1a\x65\x07\x7f\x3b\xa2\x2c\x23\x91\xa3\x0d\xa3\x41\xd7\xa0\x99\x93\xe3\x6a\x2d\xb5\x27\x51\x5c\xee\xab\xf2\xd8\x47\xd5\x27\x11\x06\x96\x04\xa1\x43\x05\xa0\x12\xfb\x2f\xb4\x80\xc6\x83\x9e\x30\xe5\xab\x95\x9c\x2a\x34\x5c\xc7\xb2\x18\x0d\x43\xac\x09\xf9\x31\xd1\xbd\xf1\xcd\x3a\x89\x1d\xe5\xd5\x41\x8b\x26\x3b\xe4\x65\xd3\x94\x43\x13\x88\x31\x62\xd5\x9f\x3a\x13\xe8\xf9\x7c\xbc\x5b\xdd\xed\x4b\xac\xfc\xbc\xbd\x6c\x19\x53\xc6\xda\x37\xf5\x00\xb2\xe6\x47\x88\x87\x04\x77\x45\x68\xde\x1e\x45\x81\x59\xd6\xf5\xa9\xb3\x40\x19\x8f\x13\xc4\xd6\xff\xfe\xc7\x62\x68\x99\x32\x4e\x2c\x48\xb4\x81\xea\x58\xcf\x0a\xbd\x28\x0b\xab\xf4\x58\x77\x3d\x12\x8d\x8c\xdb\x05\x7c\x6e\xc4\x65\x7d\x6e\x7a\x95\xa6\x55\x3d\x50\x59\xf2\xdd\x95\x09\x22\x5f\x9c\x93\x0f\xe4\xde\xc6\x9b\x15\x4b\x43\x6e\x0b\x30\x86\x3a\x69\xbe\x8d\xa5\x58\x44\x70\x42\xbf\x73\x5b\xe6\xd7\x76\xe7\xf8\x62\x22\xb4\xa1\x57\xf4\x3a\x71\xfb\x99\x80\x8e\x29\x13\xcc\x96\xeb\x9e\xb0\x6e\xa6\xc3\x6f\x52\x26\x78\x88\x18\xe0\x79\xf6\x2a\x45\xf7\x47\xa9\x91\x51\x0f\x8a\xa6\xba\x78\x85\xc6\xf1\x8b\xca\x38\x20\x2e\xe5\xb1\x6a\xe0\x88\xd4\x85\xd7\x81\x47\x6f\x33\xf4\xbb\x83\x4e\x6c\xad\x7a\x0d\x85\xee\x64\xba\xda\x99\xb4\x05\x73\x3b\xa7\x38\xbe\x2f\xc4\xd6\xca\x7d\x2b\x3f\xdb\x75\xd0\x7a\xe5\xdd\xb7\x02\xae\xa5\xb3\x8a\x96\xcd\x9b\xe3\x8c\xc7\xf3\xb6\x97\xce\xa4\xcc\xf0\x58\xf4\x0c\xa7\xf7\x59\x0e\x5f\x21\x19\x98\x31\x01\x66\x55\x0e\x79\x27\x96\x71\x33\x27\x7d\xf3\x50\xe0\x41\x90\xca\x74\x40\x88\xd8\x9b\xbd\xbf\x5c\x85\x3c\x08\x29\xe2\x27\x5e\x7d\x51\xb6\xff\x7b\x4c\x11\x5d\x6f\xa3\x65\xbe\x4e\xd9\x37\xd2\x80\x91\xa1\xfc\xc2\x10\xa0\xe1\xfb\xc8\x10\x81\x08\xed\x76\xdb\xc7\xd1\x78\x48\x42\x4b\x2e\x24\xea\x66\x5f\xae\x26\x94\xe4\x94\x87\x86\xe2\x12\x50\xe2\x94\x35\x22\xdf\x0e\x58\x3d\x28\x8f\x52\x86\x34\x39\x70\x84\xea\xf5\x72\x98\x6a\x61\xb9\x5e\x71\xa4\x10\xa8\x70\xe7\xe3\x64\x3c\x76\xa2\xb1\xe5\x09\x8a\x1d\xa8\x0a\xae\x9c\x81\xd1\x01\xc7\x09\xb1\x19\xec\xe3\xc5\x03\x76\x22\x7f\xa9\x04\x6c\xe1\xcc\x41\x55\xe5\x67\xcf\xa7\x36\x7e\x89\xc4\xa4\xe8\xd5\xfc\xeb\xb9\xaf\x6b\xc0\xbf\x62\x8c\xe5\xa9\x14\x3e\x2a\xc8\x69\x90\xe2\xb1\x02\xc7\xac\x99\xc9\xb2\xea\x77\x19\x4e\x29\x09\xa4\xaf\x39\x11\xb2\x5e\x9b\x6b\x1e\x23\xca\xa9\x09\xc2\x74\xc4\x88\x9c\x76\x17\x30\x02\xeb\x8b\x2c\x64\x70\x3e\x5f\xdf\x95\xea\x7c\xec\x4a\x24\x87\xc6\x35\x67\x29\x45\xb4\xb6\xd0\xda\x1e\x4d\x4e\x7a\x65\xfc\x5e\x5c\xca\x48\x76\x2c\x89\x77\x7f\x83\x25\xd1\xfd\x30\x65\x09\xd6\x80\xa0\x47\x76\xd8\x89\x8f\xde\x2b\xe2\x42\x4a\x04\xad\x3a\xba\xbf\x7d\x79\x8f\xba\xf6\xb7\x2f\xa4\x82\x08\x4b\x88\xd1\x2c\xff\x27\x78\xda\x09\xca\x55\x22\x31\x56\x87\x3c\x0b\x2e\x6e\xec\x28\x1b\xc6\xdf\xda\xf7\x07\x3b\xba\xcd\xb9\x6a\x72\x38\x62\x8e\x7c\x0b\xff\xf1\x97\xd3\xc2\x5a\xb6\xb3\xe6\x0d\x0a\xf1\x28\x64\x3d\xc8\xb1\x76\xe8\x4f\x76\x95\x14\xef\x72\xd7\xae\xba\x9c\x72\xad\x34\x8e\xd9\xd3\xb7\xbd\xa5\xd4\x9b\x2e\x14\xa0\x31\x56\xfb\x74\xfa\xc0\xfe\x19\x4c\x28\x02\xe5\x14\xde\x3f\xa0\x5a\xee\xbf\x1d\x76\x50\x68\x79\x79\xca\x50\x3e\xaf\xeb\xc7\x01\x67\x9b\x16\x8d\xd8\xa1\x0a\xc8\x03\x34\x0f\x55\x79\x3e\x6d\xa1\x3e\xe7\x93\x15\x96\x06\xb1\x4a\x2d\xf7\x5e\xa9\xa0\xae\x97\x85\x5e\x9b\x3f\x40\x4c\x42\xb6\x69\x28\xe3\x40\x3a\x22\xf3\xad\xb5\x4f\xef\x44\x03\xf4\xa9\x2c\xba\xd5\x9c\x86\x10\xa3\x35\x82\x9f\xe3\x6e\xfd\xb0\xec\x0a\xd8\x69\x1a\xb1\x30\x71\xa5\x81\x0f\xe2\x08\x83\x67\xf1\xb1\xcc\x34\xe2\x01\xd2\x84\x16\xce\x32\x6e\xfb\xf9\x79\x91\xc6\xb1\x15\x58\xcb\xda\xa1\x77\x5b\xbe\x6b\x22\x51\x18\x2a\xa7\x74\x53\xde\xf0\xc4\xa7\xf0\x5c\xf7\x7f\x6f\x44\x8a\x53\x42\x53\x64\x8c\xf9\x5f\xa1\xde\x0f\x27\x4f\x70\x44\x53\x22\xad\xdf\xef\xab\xd1\xca\x7c\x2a\x44\xf0\x37\x13\x51\xe3\x09\x9c\x12\x45\xd0\xbc\x7d\xde\x0d\x29\xb3\x69\x9a\x04\x56\x70\xf4\x71\x75\xbf\xfc\xb1\xde\x3e\xde\x75\x0d\x61\x80\xf0\x50\x74\xf7\x2d\x23\x5b\xd6\xbc\x39\x12\xc6\xfb\xb2\x82\xec\xb5\x08\x7d\x67\xaa\x08\x82\x9a\x4c\xbb\x84\x66\xaf\xce\x1e\xf8\x35\xe1\x26\x4d\x59\x6c\x13\x4f\x58\xe7\xaf\x71\x97\xb9\x25\x62\x4e\x53\xe6\x8a\x91\xbe\x89\xfa\xad\x28\x35\xb2\xe6\x22\x38\xad\x80\x4f\xff\x08\x4c\x04\xf8\x08\xa7\x93\xbc\xbd\x86\x53\xa6\xed\xc9\x89\x25\x39\x63\x10\x4c\xca\x99\x2d\xd7\x69\xdf\x71\x44\xe2\xf0\x8a\x3b\x57\x3d\x45\x47\xf8\x9f\x71\xc9\xdc\x2e\x78\x37\x11\xa1\x40\x66\x8c\x6b\xc3\x32\xe5\x52\x81\xdb\x5e\x5b\x97\xb6\xe7\x88\xa2\x29\xd7\x02\x77\x24\x6d\xb9\xde\xe0\x24\x06\xfa\x5e\x34\xe5\x40\x31\x55\xf1\xa3\x12\xa7\x2d\x08\xeb\x6b\xa2\xb7\xea\x3a\xa4\x42\x3b\x66\xbf\xe6\x7c\xba\x3f\x63\x10\x76\xf8\x04\x93\xf1\x10\xb1\x62\xf2\xa6\x5d\x38\xab\xd0\x79\x75\x13\xfc\x0b\xcc\x67\x2a\x68\xca\x9d\x25\xf2\x3d\xab\x9a\x33\x8a\x6d\x69\xa8\x77\xe7\xe3\x71\xc0\x22\x37\xb9\xa9\x56\x60\x03\xeb\x63\xac\x51\x2a\x53\x6d\x19\xd2\x84\x81\xbe\x1e\xe1\x06\x7d\x05\x4d\xa5\x08\x90\x5c\xb1\x29\xe7\x71\x74\xdb\x59\x4d\xa5\xb4\x74\x40\xbe\x98\xcf\x85\x1e\xaf\x2d\xaf\xde\x6c\x4b\xa5\x09\x62\xe9\xd9\xf0\x36\xa2\x6a\xba\xfc\xfd\xe4\x01\x54\x7b\xb0\x0f\x6a\x2c\xd1\x7d\x76\xb7\xb9\x9d\xc2\xef\x06\x4d\xb7\xdb\x20\x0a\xb8\x2e\x6c\xd0\xc2\xae\xad\x49\x30\x25\xd5\x89\x41\x7f\x36\x53\x25\x96\x29\x4d\x9f\x40\x8b\x98\x59\xaa\x77\x4c\xa6\xfb\x41\x84\xd6\x9d\xc3\x58\xb7\xce\x0c\x3e\x11\xb2\x64\x16\xe7\x01\xd2\xfd\x56\xd6\x24\x05\x16\x23\x3d\xe2\x47\xd9\xc0\x7d\x59\x2d\x44\xa1\x33\x3d\x14\x0c\xb9\x19\x3b\x49\x81\xc7\xa8\x5c\xa8\xa0\xb4\x0c\x75\x8b\xb2\x9c\xbc\x09\xa4\x1c\xe9\xb7\x64\xf6\x85\xf2\x0a\x4d\x4d\x68\xeb\x21\x36\xdb\x25\xf2\x54\xfc\x58\xae\x0e\x0f\xeb\x99\x3f\x90\x52\x13\x72\x4c\xa2\x34\xd9\x11\xea\x55\xbd\xfe\x98\x5a\x23\xa9\x09\x53\x5f\x0e\xfe\xa3\xac\xde\xa1\xba\xa1\x56\x48\x53\x43\x89\xf1\xe6\xfc\xf5\xc2\x34\x4c\x61\x0c\xd4\xee\xbc\xf8\xdd\xbf\x0b\x7f\x74\x74\xdf\xcf\x70\x91\xa8\xde\x6a\xd0\x98\x06\xba\x2f\xab\x6b\x05\x7e\x2a\x82\x30\xea\x39\xdf\x76\x4d\x59\x0d\x54\x6f\xc7\x03\x29\x82\x18\xa4\x19\x80\xab\xa6\x57\xe2\x0a\x37\x37\xcb\x44\x38\xcf\x1a\xab\x34\xe7\x5b\x25\x60\xa8\xfa\x79\xb1\x1d\xd8\x7d\x22\x00\x8e\x60\xd6\xbb\xfd\x62\x71\x58\x3d\xae\x7f\x1c\x98\x6f\x0a\x83\xc8\x46\x52\x9c\xc1\x6f\x55\x54\x6e\xae\x24\x11\x46\x12\x0b\x49\x90\x19\xf3\x28\xde\xa1\xda\x54\xf0\x31\xd2\xb3\xff\x5b\xf9\x5f\x11\x12\xe9\xd9\x12\x7d\x48\xaa\x23\x95\xdb\xbf\x59\xf2\x3d\xdf\x95\x51\x4c\x6c\x98\xd3\xd3\xf9\xb6\x60\x06\x15\x51\x12\xe2\xac\xb1\x5c\xea\xd0\x1c\x72\x21\x3d\x03\x31\x15\x51\x2a\x31\x6a\xbb\x2c\x9a\xaa\x3c\x5d\xf6\x3f\xa7\x1a\xfc\x37\x2a\x1a\xa9\x88\x03\xc0\x98\xe4\x31\x2b\x6c\x91\x8f\xbf\x5c\x1c\xb2\xd0\x72\xd1\x7f\x94\x36\x01\xfc\xc5\x68\xc5\xa1\x44\x2b\x67\x50\x2a\xd8\x7a\x30\x63\x4e\x2d\x2a\xe2\x38\x1a\xa4\xf5\x11\x5e\x36\xf9\xe4\xb1\x0c\x75\x87\x65\xff\x26\x2a\xdd\xf1\x4d\x50\x11\x6b\xab\x73\x03\x3f\xb3\xba\x99\xcc\x72\x11\x03\xc7\xe2\xbd\xdc\x9f\x3f\xc3\x07\xf5\x26\x90\x20\x54\xe1\x4e\x51\x43\xd3\xe4\x30\x6f\xad\x2c\x8b\x92\xeb\xea\xb2\xa9\x20\x0c\x90\x84\xe3\xa9\x2c\x5e\xcb\x3c\x13\xcf\xc2\x72\xea\x0e\xf7\x6d\x91\x24\x84\x7a\x10\xe2\x3c\xcb\x33\x99\x55\x5a\x8c\x7b\x50\x89\x54\x29\xfb\x4c\x14\x8f\x99\x28\x46\x80\x96\xf1\x4b\x27\x8e\xf9\xd2\x7b\x58\x1d\x65\xf2\xb6\x03\x34\x88\x44\x5a\x5e\x80\xe3\x61\x90\x4a\xef\x1a\x8d\x40\xe6\xb6\xfa\x2c\x9d\x58\xc0\xf8\x06\x34\xd0\xdc\x06\x99\xea\xf3\x11\x26\x44\x1d\x54\x30\x02\x9a\x75\x31\xa8\x41\xb5\xc8\x78\x88\x39\x09\xc2\x8e\xc8\xeb\x69\x39\xdb\x97\xc5\x88\x52\x9b\x0a\x2e\x40\x30\xa7\x0e\x56\xa8\x4c\xe4\xbb\xa6\x12\x0d\xbc\x76\x1d\xd2\x48\xa3\xc1\x71\xbc\xa8\xae\xd6\xfc\x7c\xad\x6a\x49\x45\x4a\x00\x73\xb9\x45\xd9\x64\xe6\xb2\x36\x48\xad\x66\xb9\x6d\xbd\xb1\x34\x29\x84\x9d\x8c\xa9\x24\x11\x71\x6c\xf9\x0b\x51\x37\x5f\x93\xdd\xbb\xfe\x2a\x21\x38\xf1\x30\x7d\xb6\x85\x57\xc7\x42\x32\x3a\xc6\x84\xa2\x94\x13\xaf\x83\xdf\x2e\xa4\x7f\x41\xf5\x85\x9d\x21\x34\xa5\x68\xd1\x9b\xf8\xab\x0e\x22\x14\xba\x63\x0f\xbd\x13\x97\xfa\x11\xba\xea\x1f\xa1\x85\x44\x8b\x58\x43\x2e\x2e\x6b\xb3\x5a\xac\xbd\xd9\x29\x4c\xc8\x11\x2f\x79\x2c\x8b\x26\xbf\x1c\x4e\x5d\xa2\x5e\x98\x88\xa1\xbb\xfc\xdf\x67\x51\x34\xa2\x6e\x3a\xfc\xbd\x30\xc2\x95\xad\x42\x73\x93\x6d\x9a\x0a\x03\x1c\x41\xdb\x9b\xed\xd2\xf2\x26\x3d\x3c\x6d\x37\x07\x27\xef\x33\xdb\xb8\x0b\xc9\x20\x0d\x53\x2b\xce\x05\x99\x2a\xf7\x3e\x01\xdd\xc7\x1c\x64\x90\x72\xc3\x5d\x75\xb6\xe5\x3f\x9c\x16\x61\xc9\x30\xe0\xb6\xde\x64\x60\xf5\xcc\x3c\x01\x24\x95\x61\x64\x10\x50\xfd\x2a\x8e\x30\x50\xc0\xa1\x32\x4c\x0c\xb8\xf0\xbe\xd3\x18\xbb\x39\xb4\x32\x4c\x15\x46\x4c\x74\x25\xb2\x49\xde\x55\x46\x32\x8e\x2d\x06\xf3\xb5\xb5\xdb\xae\x25\xbc\x7c\x3f\x15\x63\x51\xd7\x77\x28\xb4\x65\x02\x1a\xb7\xc7\xa9\x74\x98\x32\x3b\x91\xd1\xd9\x7e\xca\x8a\x2e\xa4\x20\x63\x08\x50\x22\x09\x4b\x33\xd6\x05\xf4\xd4\xb1\x54\x12\xa2\x51\x9d\x04\xa1\x57\x96\xb3\xb5\xdf\x82\xa4\xd7\x90\x41\xf6\x1a\x34\x68\x17\xed\x3a\xea\x82\xf7\xa3\xb5\x22\x89\x36\x48\xbf\xac\x7a\x7d\xfb\x81\x91\x2f\x13\x42\x11\x32\xee\x77\x97\x7d\x25\xd4\xfb\xda\x8c\xa2\xf7\x32\x49\x04\xd6\x5f\xbe\x95\x2e\xeb\x38\xb9\x08\x4d\x29\x72\x91\x67\xc7\x53\x89\x20\xe8\x8f\xac\x3c\xd7\x36\xf7\x3e\x14\xb8\xba\xc2\xaf\xfb\xc0\xb5\xa4\xda\x66\x8c\x6a\xc7\x59\x34\xe1\x68\x9b\x8c\x3e\x0b\x58\x60\x39\xee\x11\x0b\x78\x3c\xe5\xf0\x73\xc4\x7b\x4b\x25\x73\x75\xb3\xf3\x32\x6f\x3c\x85\x12\x95\x9c\x25\x48\xf5\x9b\xb9\x34\xdc\x42\xe4\x6a\x4c\x04\xe9\x3a\xa6\x61\x28\xd5\x54\xc9\xfe\xf6\x54\x48\xc3\x14\xb1\x14\x9f\x38\x32\x8f\x59\x57\xc4\x4d\x65\x1a\x11\x9c\xec\xa8\x5a\xed\xc5\x4b\x7e\x0d\xe7\xbd\xbd\x01\xc9\x94\x28\xfc\x8a\x05\xbc\x96\x4d\xe6\x8d\x50\xbf\xf5\xc8\x34\x61\x08\xe2\xb1\x7b\xf4\xa1\xbc\x0e\x4e\xc9\x94\x85\xb1\x25\x47\xd3\x70\xc4\xfc\xd4\xe2\x8a\x1d\x9a\xca\x54\x07\x08\x09\x95\x18\x78\x72\x10\xdd\xac\x1f\xc0\xd4\x68\x74\xee\xba\x7c\xeb\xf7\xd5\x73\x07\x59\x97\x22\x8c\x91\x2e\x3f\x17\x75\x33\x40\x42\xad\x0a\x0c\x83\x76\xbd\x62\x89\x25\x04\x42\xeb\x3d\xd6\x0e\x8c\x09\x6f\x6e\x45\x01\xa5\x8c\x95\xa3\xae\xca\xa1\x01\xbb\xbd\x8e\xb7\x5f\xa9\x13\x9e\xc6\x3e\xc6\x31\x39\xe3\x24\x10\x86\xa9\xbf\x85\x28\x0a\x21\xb3\x3f\x87\x87\xb1\x04\x66\x45\x2e\x6a\x68\x3a\xf9\xd2\xc9\xcf\x85\x0d\x42\x3e\xae\x17\xbf\x2f\xef\xb2\xe7\xee\x97\x3a\x48\x6c\x12\xf4\x67\xbf\x0f\x99\x00\x74\xaf\x46\xaf\x44\xd1\x94\x85\xcf\xaa\x4c\x86\xdb\x18\x63\x78\x4f\x30\xb1\x2f\x8f\xb2\xdd\xf1\x86\xc4\x4d\xa3\x71\x50\x41\x62\x99\xab\x5c\x81\xc7\x80\x2e\x8e\xfb\x1e\x2c\xa6\x43\xae\x1b\x27\x5d\x74\xfb\x6a\x9a\x22\x72\xf5\xf0\x0a\xcd\xc2\x6a\x67\x21\xba\x61\xf4\xf2\x2a\x14\x4a\x5b\x76\x8c\xb2\x34\xf7\xe5\x88\xd9\x8a\xaa\x50\x4b\xcc\xb1\x3f\xb4\x97\x68\x0f\xdf\xd6\xbe\x9a\x5f\x86\x14\xf5\xae\x67\xc4\x23\xcc\x96\xcf\xcf\x97\xfb\xb2\xba\xaf\xb2\x21\x8e\xea\x6f\x99\xcb\x2a\x36\xbe\x80\x5d\xe8\x76\xaf\xf3\xc8\xe4\x59\xb3\x1a\x55\xad\x8c\x7f\x45\x22\x16\x0e\xf0\xa2\x3f\x4f\x59\x05\xfa\x9a\xf6\x94\xaa\x24\xd0\x28\x2d\x6d\x17\x50\x3d\xaa\x70\x53\x49\x4c\x5d\x82\xbd\xd0\x98\xb0\x78\x12\xc5\xe5\x4b\xe6\x2b\xaa\x12\xc5\x31\x61\xa1\x72\x10\xc5\x8b\xdf\x98\x14\x95\x2c\xb6\xc4\x6a\x4d\xf6\x01\xf7\x59\x55\x37\xc3\xd5\xa1\x18\x89\xd1\xcb\xfd\xc7\x6c\x33\x5b\x7c\x5b\x3e\xae\x3d\xfc\x45\x71\x43\xd1\x3c\xf5\x0e\xca\x5c\x7c\x4d\x33\xea\x7e\x92\x32\xaa\x23\xef\x0f\x84\x13\xe2\x86\x64\x44\xdb\x40\x55\xca\x35\x1a\x7a\x3f\xb2\xf7\x6c\xb8\x3e\x54\x9a\x6a\xb4\x45\x76\xcb\xfd\xcb\xa6\xfb\x23\xa4\x68\x55\x3a\xa7\x6f\x07\x85\xbe\x41\x62\x39\x2c\xd6\x9b\x3c\x9b\x60\x09\x06\x37\x66\xef\xe5\x40\x83\x9e\x2a\x21\x05\x8e\x73\xbb\xf5\xb6\xe7\x40\x2f\x87\x40\x95\xe4\x14\xb1\x66\x9f\x3e\x03\xea\xc7\x62\x53\x65\xc7\xb2\xd2\x99\x33\xc4\x7f\x55\x40\xe8\x2f\xa5\x84\xf4\xc5\xbd\x1b\x51\x75\x8a\x18\x1e\xdb\x3e\x5a\xa8\xaa\xdd\x01\x02\x5f\x93\x67\x75\x85\xb2\xe2\xf5\x4b\x07\x51\x29\xa6\x7d\x71\xc5\x4b\x91\x35\x77\x60\xa0\xa8\x61\x55\xb4\xeb\xfc\x16\xd7\xff\x74\xda\xf7\x11\x18\xa5\x4d\xc4\xc3\xae\xe2\x6a\xd3\xec\x84\x81\x27\xd0\x59\x17\x6f\x57\x00\x76\x73\xb4\x40\x0b\xed\x35\x2d\x6f\xd4\xc7\x7f\x41\xaf\x4f\x95\x89\x05\xd3\x9e\x11\xc8\x05\xed\x16\xe7\xe9\xfa\x30\x24\xc1\x18\xb1\xe5\x60\x18\xd5\x2e\x7e\x85\x8c\xbb\x62\xb2\xb9\x19\x37\x53\x26\x21\x61\x27\x35\xd9\x5a\x84\x9b\x0a\x56\x9e\x81\x84\xea\x40\x1a\x4c\xd7\x3e\xf4\xac\x3a\xbe\x48\xc2\xf5\x88\x40\x62\x2e\xeb\xe0\xb5\xaa\xff\xfb\x2c\xf2\xac\xb9\x2c\xca\xa2\x86\xa2\x3e\xd7\xb7\x21\x67\x3a\x32\x56\x1b\xb3\x86\xe6\xbe\x02\xc0\x6b\x7e\x31\x8d\x6f\x68\xab\xf1\x7e\xd5\x0f\xfe\xdf\x70\x7f\xd4\x71\x9c\x7a\xe4\x83\xb7\x9a\x26\xc0\xaa\xd1\x4c\xd3\x31\xb5\xe2\x34\xcb\xe7\xfd\xf6\x8f\xc3\xfd\xd2\x03\x54\x74\xac\x13\x2c\x5f\x47\xc6\x3d\x0b\x6a\xd0\xb7\x8c\x89\xee\xd5\x62\x27\x32\x85\x9b\x19\x46\x50\x7a\x50\xe3\xf8\xc3\x6a\x22\x22\xec\x2a\xb4\x7e\x14\xea\xdd\xcb\x95\x5b\xf2\x1e\x4a\x3a\x25\xf5\x8e\xcd\xa7\xfb\xfb\xe4\x3f\x71\x50\xfc\x16\xa8\x93\x90\xc6\xdc\x27\x42\xd5\x4a\xbb\xcc\xec\x6a\x92\xcb\xd2\x49\x9a\xf8\xaa\xc1\x99\x97\xe8\x6c\xce\x93\x33\x5c\x53\x6e\x90\xda\xc7\x71\x77\xfd\xc8\x8a\x4d\x59\xe6\x18\x28\xc9\x2a\x8d\x14\xf8\x7e\xac\xa8\x4e\x44\xc7\x02\x24\x64\x3e\x54\xd6\xa3\x9a\x45\xc2\xcb\x39\x7e\x2f\x9b\x01\x27\xcc\xcd\xb5\xac\x39\x0d\x86\x1a\x58\xed\xb9\xf3\xfb\x1f\x8b\x59\xa1\x77\xa8\x8e\x0f\x55\xf5\x05\x23\x2a\xd5\x3c\x75\xb8\x61\x0f\xe3\x6c\x44\xee\x44\x14\xfd\xc3\xa4\x09\xd5\xb6\x80\xef\xf2\xdb\x68\x4a\x4d\x9e\x42\x84\xca\x73\xad\x60\x39\xcb\xee\x69\xb3\x1f\x02\x7c\x7d\x37\x19\x27\xce\x09\x7a\xd8\xec\x46\x4a\x8c\x54\xcb\x48\x22\x42\xe7\x71\xfd\x70\x98\x43\xf3\x58\xd6\xb7\xf9\xf2\xa9\x96\x14\x70\xbf\x3b\x95\xc5\x9f\xd9\xbe\x1c\x20\x88\xa7\x1d\x55\x84\x80\xc4\xa7\xf5\x76\x94\x44\xd1\x4a\xc6\x91\xea\x8a\x9b\x06\x12\x18\xae\x5d\x07\x21\x77\x3e\xe7\xee\x2c\x91\x30\x63\x7c\x65\x2d\xac\x9b\x76\x76\xbc\x8d\xce\x10\xbd\x91\x38\xd2\x5a\x01\xe2\x67\x3a\x7d\xb3\x43\x3d\xd5\xf8\xa1\xda\x04\x3a\x09\xfc\x4a\x2f\xff\x44\x92\x3a\x84\x0e\x2d\xd6\x03\x8e\x1c\x6d\x22\x7b\x64\xbe\x67\xea\x7d\x7d\x6e\xbd\x0b\xab\x8d\xf9\xc5\x40\x19\x61\xc0\x39\x63\x18\x5c\x71\x52\x5d\x93\x4e\xca\xf8\x28\xdf\xa2\x2c\x73\x5d\x7e\x7a\x95\x0f\xec\x48\x02\xdb\x0f\xc2\x84\x7b\xe0\xc0\x26\x43\x6d\xf4\xba\x86\xa6\x9e\x15\x1a\x29\x2a\xb0\x8a\xba\x2f\x45\xbd\xda\x7a\xc6\x8f\x06\x51\x18\x21\xc2\x43\x68\xbd\xa8\x2e\x75\xf3\x15\xea\x10\x08\x25\xa8\x9c\x72\x72\xd6\xd4\x54\x31\x8b\x02\x11\xb1\xd6\x1e\x08\xe6\x76\xde\xeb\xb4\xc1\x57\xff\x7d\xfb\xae\x89\xa2\xa2\xe3\xbe\xfa\x01\x19\x96\xf2\x76\xfe\x31\x24\x10\x86\x91\x3f\x11\xec\x59\xeb\xab\xed\xbb\x1e\x51\xca\x3d\x35\x63\x06\x05\x16\xa2\x0c\x91\x8a\xa3\x49\x02\x94\x2a\xa4\xd0\xb0\xa8\xb1\xcf\x81\xe5\x03\x94\x87\x98\x12\x5f\xbd\x9f\x2b\x61\x91\x8a\xe2\x8a\x6e\x71\xf2\xf8\x2c\x4a\xf1\x58\x6e\xed\x87\xd6\x12\x1c\x84\x0a\xc6\x07\xc5\xb5\x69\x08\x4c\x32\xcc\xdd\x35\xda\x82\x80\xfa\xb7\x66\x86\xa6\xbe\x24\xef\x90\x15\xad\xb9\x76\x30\x99\xe5\x6e\xf8\xd6\x5a\x2a\x15\x7c\x78\xdd\x9b\xd1\xe3\x70\x66\xf0\x71\x76\xef\x59\x9e\x4f\xe9\xcf\x29\xf0\x94\x4b\x57\xa9\xb8\x52\xa0\xfb\x2a\x1b\xd7\x9e\x4a\x8e\x21\x7c\x5d\xee\xa0\x59\x88\xc2\x66\x60\x1e\x2a\x51\xf4\xb1\xd4\x81\x51\x02\x22\x14\xc8\x8c\xe7\x18\x5e\x4e\xd9\xa4\x8e\x1d\x04\x75\xfb\xc2\xea\x79\xb9\x3d\x2c\x9f\xef\x0e\x98\x53\xf7\xf7\x93\x61\x8c\xc8\x25\x2b\xcf\x32\xa2\x74\xfa\x7b\x1e\x71\x7b\x05\xc4\x09\x7e\xcf\xa0\x29\x9c\xb4\xe8\x5f\xe3\x25\x41\x26\x5c\x0f\x8d\x68\x17\x8b\xde\xc2\x47\xf9\x3e\xcd\x38\x81\x04\x12\x5a\x15\x58\x23\xce\x79\xf3\xb2\x5d\x0d\xb4\xa3\x29\xa8\xd4\x02\xfa\x3b\xad\x7d\xb7\xa3\x74\xed\xd2\x6a\x70\xbd\x42\x73\xaa\xb2\x3f\xe1\x58\x16\x70\x99\xdc\x42\x69\x86\x69\xb3\x9b\x2c\xea\xbf\x22\x94\xba\x89\xc4\xfc\xaf\xc9\xc5\xc1\xa2\x20\x1f\x41\xbc\x9e\xa1\x97\xab\xec\x13\xa8\xa0\x89\x64\x5d\x39\x54\xfd\xde\x9a\x7f\xa3\x9c\x80\xef\x96\xd8\x4a\x27\xbb\x19\x5b\x12\xa6\x61\x3e\xbb\xff\x2e\x9a\x1b\x04\x0d\xbd\xe2\xdc\x79\x29\xf2\x1e\xce\x0b\x10\x69\xc4\x80\x75\x03\xe6\x5c\xac\x11\x54\x19\x80\x58\x52\x14\xef\xc1\xe2\x26\xd8\xee\xc3\xed\xa9\x39\xfe\xc0\xb7\x12\x16\x00\x9c\x61\x59\xed\x21\xf8\xb9\xec\x34\xe3\xbb\x8b\x73\x85\x1e\x3b\x3a\x5e\x16\x77\xe6\x5b\x24\x4f\x5d\x58\x62\x9e\xe9\x2f\x04\x75\xc7\xa3\x02\xc6\x60\xb1\xe4\xe9\x5c\xbc\x3f\x97\x8f\x65\xf1\x8a\x79\xaf\x2b\x61\x00\x0a\x26\x65\x66\xc2\x74\xb3\x2f\xdd\x6b\x4f\x7a\x2a\xe9\xf9\x45\x7e\x87\x4b\x4f\x18\xff\x95\xe9\x6c\x02\xe3\x44\x60\x40\x1c\x1d\x38\xc4\x6f\x27\x26\x0c\x2c\x75\x63\x53\x9e\x5e\x4e\xed\x1e\x82\x03\x32\xf3\x12\x08\xf7\x65\xe5\x71\x30\x37\x37\x39\x13\x26\x80\x99\xd9\x47\x51\x49\x51\x9e\xb3\xee\xba\x4c\x62\xcd\x57\xaf\xbc\xbb\xa9\x60\x57\xe6\x5e\x8d\xd8\x77\x4b\x53\x2b\x72\x5c\xe4\x17\x0c\xd5\xee\xa0\xb1\x90\x26\xf7\xea\xa3\xe1\x34\x71\x48\xb0\x5a\xe3\x01\x61\x7c\xb7\x44\x9b\xa8\x89\x23\xeb\xeb\x2c\x56\x0e\xd0\x79\xc3\x1e\x30\x31\xa5\xc4\x05\x74\xbe\x1f\xb6\xc9\x78\x84\x4d\x9c\x32\xdc\xbb\xcc\xb9\xd0\xbd\x8f\x61\x48\x4a\x54\xea\x8b\xc7\xaa\x63\xdd\xf9\x50\xe3\xe1\x4e\x82\x04\x1f\x60\x2b\x8c\xc9\x61\x8c\xea\xf9\xf2\x24\xfc\xbb\xff\x5e\xf9\x1d\xe3\x5b\x13\x1e\xb7\x5b\xde\xb7\xec\xf5\xad\xb5\x1f\x5a\x5f\xf2\x5c\xc1\x62\x40\x95\x67\x92\x44\x20\x72\xdf\x02\x21\x06\x78\xd9\xdb\x1f\x38\x01\x89\xcb\xc1\xcf\xcb\xd6\x56\x9e\xe2\x52\x4d\x62\x12\x2c\x63\xd9\x3d\x6d\x66\x0a\x6b\x9c\xff\xa2\xfe\xcd\xd0\xc4\xe0\xc6\x39\xdb\xed\xb7\xcf\x36\x4d\xe0\x2f\x46\x41\xa3\x06\x03\x02\x0a\x2a\x57\x05\xde\xcd\x18\x6a\xac\xd1\xf7\x86\xd3\xb2\xd7\x8c\xf6\xed\x2c\x0e\x42\xb7\xa5\x62\x39\xe6\x90\x2a\xc2\xf0\xc8\xa6\x85\x8e\xa2\x76\x0e\x92\xe5\x5b\xb0\x21\x3d\xeb\x53\xb4\xcb\x33\xcb\x3f\x1c\x35\xc9\xe3\x08\x44\x3d\x38\xe0\x0c\x27\xc4\xbb\x6d\xeb\xd3\x64\x0a\x70\x25\x02\xe6\x22\x14\x9b\x7f\x3e\x7e\x31\xb4\x69\xc8\xf0\x88\x7b\x9a\xfd\xf3\x70\xbf\x5d\x2e\x0f\xdb\xe5\xfd\x72\xbb\x9d\x3d\x1e\x36\xb3\xc5\xef\x3e\x66\x6a\x52\x22\xd0\x16\xd8\x29\x91\x83\x8d\xf5\xf7\x4d\x12\xd3\x32\x56\xcb\xc3\x29\x7e\xfc\x7a\xe0\x53\xaa\x31\x37\xd0\x1a\xc1\x6b\x83\xab\xbd\xbb\x1a\xb7\x4c\x27\x4a\xe4\x6a\xeb\x8b\x1c\x7e\x51\xa9\xec\x7e\x26\x23\x85\x84\x34\xf2\x7c\xf1\xea\xd0\xbf\x4e\x96\x19\x49\x14\xa6\x48\x5d\x50\xf3\x3e\xcb\x8f\x5f\xe0\xb5\xfc\x0f\x28\x28\xe3\x85\xd4\xbf\x95\xe7\x8e\xff\xd0\x48\x15\x50\xe7\xf4\xfc\x80\xac\x03\xf9\xdf\x74\xb6\x8c\xe2\x96\xd0\x42\x68\xbd\xbb\x32\xff\x8d\x4a\x29\x06\xb1\x8e\x22\x2b\x06\xe9\x4d\xa3\x24\x78\x03\x1e\xc1\xfb\x2f\x59\x31\x5d\xf2\x4a\x85\x98\x5a\x16\xaf\x7b\x50\x6f\xa3\xc3\xca\x40\x2c\x02\xf7\xf3\x17\x7b\xbf\xa7\xac\x18\x99\x66\x06\x80\xc5\xd1\xa8\x18\xf4\xb9\x6c\xc6\xfb\x1a\x0b\x02\x1e\xa2\xdf\x76\x78\x13\x1f\xb0\xfc\x80\xea\x52\x16\xd0\xd3\xc6\xf9\x5e\x42\x62\x9a\xa4\x3d\xa3\xce\xfa\xf5\x1a\xdf\xef\xfb\x81\xc0\x6a\x92\x2e\xab\xd3\x7e\x68\xa4\x14\xfa\x32\x60\xc9\x82\x48\x6b\x24\xde\x78\x7b\xb7\xe4\x9b\xe7\x5b\x67\xad\xeb\x1b\x53\xbb\x0e\x6b\x61\xe0\x20\xf4\x15\x55\x9b\xef\x06\x96\x64\xcb\x46\x5e\x1f\x33\x03\xcb\x9f\x27\x50\x8d\x28\xd4\x98\x81\x9f\x05\x84\x48\x01\x57\x8e\xd4\xa0\x2a\x83\x05\x84\x87\x34\xec\xb3\xb0\xed\xfe\x3d\x66\xe4\xe3\x63\x71\x68\xff\x33\x99\x30\x8b\x74\x6f\x94\xe5\x80\xea\x2e\xa8\x24\x7a\x10\x42\x6b\xe4\x0b\x1c\x83\x18\xbe\x72\x67\x46\x03\x91\xc4\x91\x81\x31\xdf\x73\xdd\xd7\xc2\x4d\x86\x23\x31\x92\x3b\x99\xda\xd5\x62\xdd\x69\xe6\xb2\x80\x52\x5b\xfb\x97\x8b\xba\xf9\x87\x50\xef\xa7\x72\x18\x14\x66\x01\x95\x84\x39\xe4\xd6\xe1\x24\xce\x35\xbc\x2c\xf7\xbd\xd3\xda\xb6\x73\xac\xfe\xdf\xcc\xb6\xbb\xe5\xe2\xb0\xd8\x2e\xef\x56\xfb\xc3\xdd\x72\xb1\x7a\x9a\x3d\xee\xfc\x55\x58\x4c\x2c\xf9\xf9\xf9\xf2\x98\x15\xef\xdd\x9f\x49\x1a\x5a\xea\x18\x28\xbe\x41\x05\xb3\xae\x21\x25\xd0\x33\x2a\x7e\x83\xfc\x34\xf9\x66\x4c\xc4\x96\xfd\x21\x83\x6a\xff\x59\x3e\xf9\x63\x88\x05\x9c\x6a\x8c\x99\xec\x8e\xd9\x2b\xd4\x03\x0b\x8c\x05\x69\x40\xac\x1e\xac\xc8\x21\xb4\x44\xf1\x1d\x8f\x01\x0b\xd2\x44\xa3\x03\x64\x0d\xcd\x3d\x14\xed\x47\xf9\xf0\xec\x5f\x8b\xb7\x2c\xd7\x2f\x45\xf6\x01\x55\x3d\xae\xe2\x63\x41\xaa\x75\xe2\x56\x22\x62\xee\x8e\xa2\xea\x5e\x51\xe8\x04\xf3\xd2\xad\x8d\x74\x70\x15\x5e\x07\xe8\x69\x01\x58\x20\x03\xbb\xa7\xd7\xed\xaf\x51\x36\xf8\x51\x34\x80\xb5\xd5\xd5\xb5\x03\xc4\x02\x19\xc6\x2a\x71\x94\xa2\xa3\x6c\xa5\x43\x93\xb0\x40\x4a\x99\x76\x01\x1b\x5b\xb3\xbc\xfc\x69\xd3\x8e\x76\x3c\x6e\x71\x75\xb7\x3f\xd3\x58\x7a\x60\x37\xcf\x1b\x66\x68\x1c\x8d\x35\xeb\xa6\xbf\xd7\x12\x51\x16\x33\x9d\x69\x31\x50\x06\x67\x81\x4a\x23\x74\x7d\x1e\xd6\xbb\x6f\x2f\xab\xe7\xee\xcf\x4a\x21\x3f\xc3\x93\x38\x35\x5e\x7d\xd3\x35\x69\x46\xb1\xc6\xef\x60\x61\xeb\x68\xc2\xd5\x6f\xd9\xc9\x83\x94\x7e\x19\x38\x63\x81\x96\x92\x39\x8d\x35\x27\x8b\x31\xd0\xc1\x66\x81\xd6\x21\x2e\x9d\xac\xa7\x02\xa2\xbe\x0d\x84\x44\x7b\x59\x68\xdd\x1a\x01\xb3\x42\xcf\xf4\x47\x56\x97\x55\x3d\xc8\x49\xde\xbe\xab\x09\x39\xae\xa5\x4f\x80\x77\xe4\xf6\x5d\xf6\xeb\xc8\x88\x28\x1a\x14\xa5\x66\x22\xcf\xfe\x84\x85\xa8\xdf\x06\x81\x05\x16\x86\x24\xc6\x40\x63\x56\xb7\x96\xfc\x63\x07\x76\x66\x61\xa4\x9d\x19\x0f\x75\x73\x2f\xb2\xbc\x47\xc3\x0c\xcb\x44\x5a\x43\xbb\x3c\x37\x5d\x20\xc1\xff\xd8\xc4\x48\x5c\x86\xaa\x68\x88\xa0\x5d\x6e\x17\x21\x4d\xb0\x26\xd4\x08\x35\x61\xd8\x77\xf3\x28\x8c\x39\x0c\x26\x84\xa3\xbb\xf6\xc9\xe4\x5b\xd3\xc3\xfd\x8e\x90\x10\x93\xb1\x47\xf1\xf3\xa1\xec\x9f\x82\xd0\x08\x39\x3f\xdb\x57\x78\x80\xc6\xd6\x52\xdf\x55\xe2\x75\x92\xf4\x64\x21\x49\x23\xe4\xf9\xd8\x3e\x3f\x74\x3f\x16\x96\xcb\xe3\x78\x71\xe2\xba\x5d\x83\xb4\xec\x27\xe5\x07\x54\x26\x2f\x3f\x07\xc0\x0c\x16\x12\x0d\xe8\x59\xe1\x01\x34\x43\x41\x21\xdf\x44\x03\x46\xe9\xa8\x64\x22\x8c\xbb\xb6\x90\x85\xbd\x08\xf5\xbe\xab\x41\x0c\x7f\x2d\x4d\x1a\xd2\xf1\x38\x50\x12\xe0\x24\x76\x90\x8e\x4d\x05\x26\xfb\xb9\xf1\x68\x5e\xf4\x03\x87\x87\x87\xff\x95\x22\x41\x30\x51\x19\x79\x29\xb2\xff\x9c\x61\x48\x72\xc1\x42\x6a\x00\x91\x44\x75\xcc\x7e\x1b\x48\xa8\xb0\x90\x11\x5b\x98\x76\x72\x68\x08\x0c\xda\x4e\x54\xe2\x59\xc8\x54\x8c\x75\x21\x06\x4b\x57\xfc\x24\xaa\x77\x59\xa1\x6e\xb2\xd9\xb0\x90\x53\x5b\x9a\x8b\xb6\x1d\x9c\x8f\xae\x38\xc7\x3f\x4f\x1a\x59\xc5\x2f\xd5\xfa\x4e\xf9\xa4\x1a\xea\xb7\xd1\xc0\xa4\x10\x62\xce\xe5\x5c\x83\x27\x63\xef\xae\x02\x4e\x2a\xbd\x1d\x9d\x8d\xad\x9e\xf6\x6d\x42\x13\x0f\xc3\x1d\x93\x68\xb0\x50\x06\x24\x54\x5d\xb9\x2e\x82\x51\x46\x2c\xf9\x37\x0d\x46\x16\xca\xd8\x0a\xc3\x6f\x56\xcb\x7f\xee\xb7\xcb\xd9\x53\x77\x3d\xe0\x68\x42\xd7\x03\x66\x13\xd7\xa4\x68\x20\xdb\xf7\x9c\x3d\xcd\x67\xbb\xdd\xec\x6e\xbd\x3d\xdc\xaf\xbe\x2f\xfd\x2f\x95\xb2\x48\x04\xc7\xd2\x39\x86\xbe\x4e\x6e\xaf\x65\xcc\x9d\xc6\xc9\x00\x48\xb6\x98\xe0\x65\xc6\xb7\xd7\x4a\xe2\x77\x73\x48\xe5\xa7\xfd\xe6\x8b\x8b\x1b\x66\xf1\xeb\xf5\x75\x9d\x93\xef\x91\x2a\x4c\x92\x58\xb0\x9c\x4f\xec\x8c\xae\x12\x05\xc4\xee\x3b\x07\x28\x5a\x0f\xcd\xda\x3e\x93\x67\x8a\x02\x4e\x2c\x96\xbf\x93\x57\x43\x43\xea\x37\xdf\x2c\x48\x12\xbb\x80\x3c\x8e\xc8\x7b\xdf\xa4\x6d\x9a\x02\x0a\xed\x34\x69\x7f\x95\xbf\xfd\xab\x7f\xbd\x41\x19\x05\x60\x02\x3e\x54\x85\xc9\x9e\x01\x77\xaf\x6b\x6a\x58\x16\x05\x26\xb6\xa9\x6a\x57\xdb\x6e\x7d\x97\x9b\x13\x26\x0a\x0c\x0f\x2c\x28\xdd\x12\x6a\x4e\x2e\x15\xc6\x56\x70\xba\x6c\xe7\xfc\x7d\x96\xe7\xf5\xd8\x54\x88\x48\xc2\x70\x4b\x5d\x58\xf6\x22\xa8\xee\xa4\x1f\x8a\x24\x0e\x58\x38\x84\xb0\x1c\x4c\xd0\xb5\x71\x1b\x98\x3a\xb6\xfb\x98\x93\xd3\xbf\x2a\x7d\xf4\x1c\x91\xee\x37\x34\xd0\x31\xf4\x7c\xe1\x7e\x4f\x8c\xa8\xe3\x48\x75\x32\xd5\x35\xd6\x33\xae\x7c\x48\x9a\x45\x54\x18\xac\x85\x79\xca\x72\xa8\x9b\xb2\x00\x5b\x41\x38\xac\xc1\x63\x11\x35\x16\x81\xdb\x87\x61\xac\xd4\xc5\x78\xb4\x58\x92\xe0\x82\xd5\xd0\x40\x75\xcc\x0a\x18\x72\xa8\x8e\xba\x79\x4b\xd6\x83\x28\x27\xed\x1c\x5c\x12\x63\x5e\x09\xf5\x6e\xb1\x82\x4f\x99\xd6\x39\xe2\x94\x57\xee\xc6\xdc\xf5\xe7\x34\xc0\x53\xd4\xe1\xee\xcf\x75\x53\x1e\xa7\xea\x56\x5d\x57\xce\x5d\x9e\x10\x91\xfd\x0e\xd6\xe2\x5a\xd3\x90\x83\xb3\x05\x30\x5d\xf7\xfd\xca\x7b\x8a\x52\xca\xb1\x0c\xff\xf0\x26\xea\xfb\x5c\x5c\x93\xfb\xf9\x7e\x32\xc2\x0a\x88\x63\xe9\x78\xda\x2c\x38\xd1\x46\xed\x00\xf4\xd0\xe8\x8e\x52\x57\x77\xfc\x0a\xcd\x3f\x4a\x39\x99\x42\x22\xb2\xb1\xaa\x37\x51\xe8\x1c\x5a\xa3\xe4\x73\xc0\x1b\x36\xb9\xad\x00\x16\xd9\x7d\xd1\x41\x77\x47\x12\xa2\xae\x93\x64\x02\x93\x3f\x3b\x99\x97\x4a\x89\x76\xff\x29\x27\xaf\xa9\x48\x8c\x7c\x2a\x59\xfd\xed\x7c\x14\xd3\x15\xa4\x58\x22\x12\x87\x91\x7a\x15\x0d\x7c\xb7\x6c\xf7\x7e\x23\xbb\xae\x58\x64\x91\x8e\x14\x52\xf2\x59\x62\xb3\x6f\x2b\xff\x2c\x3a\x96\x38\xb1\x1e\xc5\x51\x96\xce\x78\xfb\x5b\x1c\x38\x2c\xd2\x49\x20\x7c\x0e\xab\xa3\x95\x24\xdd\x85\x93\xd8\x93\x45\x3d\x9f\x8f\x08\x9f\x87\x6e\xce\x6b\x99\x08\x87\xe0\x7a\x7c\xfc\x6e\x7f\xc9\x7d\x23\x10\xea\xf3\x9f\xf3\x97\x97\x97\xaf\xc4\x16\x7c\x6f\x9a\x7a\xe6\xce\x4d\x59\xe6\x53\x28\x03\x8b\x4c\x1c\xa0\xdb\xef\x06\x69\x32\x2e\x26\x26\xda\x25\xa4\xef\xac\xc8\xac\x9e\x8b\x3a\x53\x73\x91\xe7\x65\x53\x3f\x4f\x26\x83\xa1\x1c\xc3\xac\x76\xf3\x9e\x72\x12\xb1\xc8\xa8\x04\xcb\xf8\x0f\xc8\xbe\x51\xc1\xac\x58\x17\x0f\x65\x3b\x0f\xc4\xa9\x53\x5d\xb0\x7d\xe3\x20\x89\xd0\x4a\xc4\x34\xd5\xae\xcc\xf5\xd0\x05\x8e\x03\x96\x62\xd9\xc7\xec\xdc\x4c\xf3\x4d\xbe\x07\xb7\xc5\xc7\xed\x27\x8b\x76\x4d\x79\x3a\x75\xfb\x45\x1c\xa4\x26\xf2\xb6\xdf\x23\xaa\xcf\xbe\xb4\x67\xc1\x88\x8a\x82\xc5\xa1\x8a\xf1\x68\xcd\xcb\xa6\xb1\xd8\xf7\xa1\xd9\x10\x87\xda\xd2\x25\xce\x4e\x7f\x0e\xbc\x8b\x38\xa2\x96\xcc\xe9\x15\x9a\xd9\x76\x55\x7c\x58\xb2\x9b\xbe\x94\x8b\xc5\x51\x4a\x2c\xc1\xb0\xc5\xae\x89\xa6\xac\x66\x79\x05\x42\x5f\xda\x15\x7d\x3b\xaa\xc3\xe2\x08\xa4\xb7\x10\x6d\x04\xec\x0e\x8a\xf2\x68\x15\x71\xfc\x95\x49\xa4\x50\xa5\x6c\xf7\x70\xef\xff\x44\xa3\x30\xf1\xc8\xa7\xfd\x5b\x55\x7e\x1e\xda\xff\xd7\x3e\xce\xb0\xf4\x69\x21\x6a\x17\x91\x68\xad\xf9\x73\x77\x58\xc6\x8c\x05\x60\x5d\x97\x83\x07\xce\x5a\xc7\xbb\x1b\x4b\x66\x22\x46\x3a\x7a\xa0\x3b\x38\x8a\xe9\x67\x8f\x79\xc2\x10\xca\xa1\x41\x9c\x9b\xb7\xb2\xca\xfe\x84\x9b\xd6\x44\xcc\x21\xc1\xad\x12\x91\x1a\x7b\xf1\x0e\x0e\xbf\xec\x9a\x53\x91\x60\x8c\xa9\x2e\xc4\x69\xf7\x56\x36\x37\xeb\x65\x58\x9c\x4a\x81\x20\x99\x53\xa6\xca\x53\xdd\x55\x64\x1f\xe0\xe7\xc0\xe2\x8e\x53\x65\xb5\x32\x73\x78\x05\xe4\x89\xe9\x1a\xc0\x92\xe5\x64\xfa\x60\xca\xea\x70\xae\xa1\x6a\xfd\xbe\xa1\xcc\xd0\x78\x91\xc5\x22\xb1\x15\x46\xfd\xf1\xa3\x0f\x4d\x57\xb1\xc2\x62\x99\x58\x7a\x1c\x79\xce\xdf\xbf\xe2\xac\x60\xb1\x14\x06\xeb\x56\x4f\x55\xf9\xf3\x72\xc8\xbc\x5b\x36\x80\x9d\xb2\x58\xc5\x01\xb8\x9d\x61\xb9\x5b\x6f\xba\x3f\x73\x8d\x5a\x99\xa7\x8f\xd3\x7f\x9f\xe1\x0c\x3d\x91\x25\x8b\x95\x4a\x91\xb3\x71\xa6\xf5\xdd\x7a\x3f\x60\xa1\x60\xb1\x0e\x12\xbf\xba\x77\x6f\xc2\xff\x40\x27\x29\xbe\x3f\x32\x22\xce\x3b\x11\x16\x16\x43\x60\xc1\x9f\x5b\x68\xaa\x0c\x3e\x60\xd1\x31\x53\x77\x83\x6a\x08\xc8\x41\x1d\x6f\xcf\x17\xf5\x57\x85\xaa\x7d\x44\x81\x04\x31\xd1\xc3\x2c\xfc\x03\x14\xc1\x28\xab\xe9\xfb\xb1\x90\xb9\xc3\xf2\x20\x45\x71\x9d\x24\x61\x24\x30\x52\xf9\x75\x6e\x01\x51\x1b\xa8\x1c\xda\x9f\x91\x30\xe8\x06\x73\x9e\x35\xf5\x70\x68\x48\x28\x69\x60\x49\xd7\x8b\x8e\xfb\x66\x72\xf1\x28\x20\x08\x92\x7c\xce\x3f\x6e\x26\x5d\x87\xbb\x11\x89\xa8\xc4\x8f\x7b\xb6\x79\xc0\x91\x05\x3c\x48\x90\x7f\x49\xdd\x3c\x6e\xf3\x17\x65\x29\x26\xb3\x71\x8b\x5c\x8a\xaa\x57\x54\x60\x24\x26\x80\xc7\x8f\x18\x5a\xf2\xbe\x1e\xc4\xf7\xd1\x16\xe4\x3f\x47\x51\xe0\xf9\xd9\x2f\x01\x42\x92\xd8\x72\x54\x20\xd7\xf4\x22\x07\x51\x21\xc3\x59\x36\xf5\xcd\x27\x25\x9c\x8c\x10\x2e\x46\xea\xfc\x96\x56\xf3\xa6\x4b\x40\x12\x1a\x23\xe4\x7e\xa0\x12\x3c\xf5\xf2\x08\x85\x08\x9f\x04\x63\x9c\xea\x6d\x20\x27\xea\x3b\x98\x18\x11\x5b\x99\x2a\xf1\x90\xf0\x85\x50\x6d\x8b\xc2\xd9\x7d\xb2\xc7\xf6\x53\xeb\x36\xdf\xb2\x4a\x08\x0b\x13\x4c\x97\x38\x6a\xa6\xd1\x23\xfb\x2e\x44\xa3\x17\x7c\x12\x97\x41\x2e\x81\x91\xd6\x16\x34\x2e\xfc\xbb\x83\x42\x2f\x06\xfc\x04\xff\x35\xb9\x04\x23\x71\xd2\x51\x09\xff\x28\xab\xf6\x44\xeb\x8e\x0d\xc2\x44\x82\xa5\xbf\xc2\x06\x34\xe6\xd9\xb8\xaa\x86\x11\x26\x2d\xd7\xad\x15\x3c\xc6\xf0\xca\x75\xda\x94\x91\x34\xb0\x15\x50\xda\x52\xe8\x56\xcd\xb8\xba\x8c\x91\x34\xb6\x04\xa2\x2f\x8e\x5d\x1b\x8e\xd9\xf9\x38\x02\x01\x4f\x86\x27\x95\x96\xb6\x7b\xfe\xf2\xc7\x72\x7b\x58\x7c\x5b\x2e\x7e\x3f\xec\xf6\xcb\xcd\xe4\xf9\x52\x9d\x62\x1d\xc7\xa3\xa8\x9b\xa5\x15\xeb\xf4\x67\x04\x11\x04\x68\x3c\x62\xc7\x45\xc6\xae\xf1\x7d\x24\xa3\x54\x74\x61\x8e\xf9\x2f\x38\x7b\xa6\x72\xbc\x8c\x28\xca\x64\x3c\x52\x19\xff\xfd\x8f\xc5\xae\x11\x53\x03\x99\x28\x96\x60\xce\x53\x97\x45\x63\xe1\xab\xfe\x19\x35\x8b\x41\xf9\x7c\xdc\xae\xa3\x73\xbd\xf2\x6b\x7c\x77\x10\xb8\x79\x60\x2c\x67\x97\xbd\x8e\x13\xb9\xb7\x30\x92\x57\x73\x1b\x38\x4d\x9c\x4b\xdc\x9d\x0a\x33\x14\x78\xbb\x8e\xb3\x12\x48\x25\x06\x2d\x4f\x9f\x5f\x38\x83\xc4\x10\x5b\x0c\xe2\xca\x06\x2d\x09\xb3\x7e\x12\xff\xdb\x13\x3d\x3b\x80\xc4\x60\x0b\x30\xd2\xa6\xd6\x70\xac\xbc\xcf\x3d\xb8\x6d\x6b\xb1\x71\x47\x09\x67\x73\xda\x93\xbc\xfe\xf8\x21\x92\x40\x88\x91\xc0\x19\x66\x70\xac\x32\xc2\x68\xfc\x92\x90\x26\xa8\x48\x57\x65\xaf\x6f\x4d\x14\x8d\xe7\x42\x12\xb2\x84\x7b\x9e\x11\x0b\x13\xb4\x5e\x4a\xcf\x1a\xce\x92\x50\x46\x38\x5f\xce\x05\xa2\x1b\x5b\xa7\xe5\x22\xf2\xe6\xd2\xb5\xab\x08\x0b\xc0\x9e\x66\x8b\xfe\x4f\x1a\xf5\x2d\xfb\x02\x19\x96\x44\x94\xe0\x71\x27\x20\x37\x1d\xc8\x0d\xbf\x6a\x9d\xbd\x76\x9d\x8c\xb6\xd2\x05\x96\xb3\xfb\x8b\x97\x8f\x43\x8a\x11\xfd\x45\x29\xb3\xe2\xad\x2c\xf5\x30\xde\x9f\x10\x63\x43\x7c\xb5\x23\x2b\x1c\xa0\x1c\x47\xff\xeb\xba\x27\x71\x80\x23\xef\xaa\xae\xbd\xaf\x7a\xf3\xc6\x89\x60\xb4\x57\x90\x45\x34\xfb\x78\x75\x26\x89\x48\xb9\xd7\xae\xf7\x61\xbc\x65\xa1\xaf\x65\x57\x58\x42\x49\x80\x6b\x49\xf9\x7e\x0b\x0c\xa1\x75\xab\x39\xa1\x54\x12\xe7\xd9\xcc\x27\xd8\x05\x96\x50\x99\x78\x73\xf0\xae\x2a\x4f\x43\x3e\x3c\x96\xb0\x48\x21\x57\x4e\x01\x9f\x57\x44\xbd\xe3\x87\x40\x5b\xd6\xd3\x48\x7d\x8a\x4a\xff\x10\xf5\x0e\x8a\xe9\xdd\xb8\x31\x98\xb6\x6f\x9b\x3a\xbc\xf6\x40\x07\x7b\x72\xd5\xd4\x21\xe5\x06\x55\xc6\x38\x02\xf5\x06\xaa\xdf\xb3\xce\xf2\x4f\x44\xc4\x12\xd9\x6b\x16\xea\xc7\xcd\xde\x37\x49\xae\x63\x35\x90\xd8\x01\xfd\x75\xd1\x19\x4b\x24\x08\xcc\xe8\x7e\x3b\x8b\xfd\xb9\xf4\xd7\x50\x4a\x22\x8f\x11\xe6\xef\x9c\xba\xcd\xf8\x73\x29\xc3\x10\x51\xd5\x3a\x0f\xaa\xcc\x0a\x0b\x16\xf1\xbf\xd7\x31\x41\x16\xbd\xd5\x62\x3d\xc1\x3f\xbb\x0e\x90\x68\x6e\x77\x96\xdc\xdc\x81\x25\xac\xf8\x05\x5d\x03\x4b\x40\x46\x24\xe8\x6b\x5b\x45\x9e\xef\x4e\x18\x1e\xbb\x32\x57\xfd\x0f\x54\x12\xb9\x91\xdc\x9d\x84\xba\x66\x49\x63\x89\x11\x09\x7a\x96\x3f\xcb\x6a\x8b\x3a\x8b\xd7\x90\x4d\xdf\x53\x72\xb4\xe4\x6c\x3a\xf0\xb3\x8b\xa3\x26\x46\x2b\x0b\x5f\xc6\x19\xd8\x85\x80\xc6\x37\xa2\x81\xb6\xdc\x99\x87\x8e\xa4\x1e\x3f\x6a\xbb\xa5\xb9\x71\x75\xa1\x70\xb7\xb4\x68\xc8\xac\x5c\x63\x56\x2f\xff\x73\xce\x4e\x5f\x80\x42\x18\x0d\xb9\xc0\x51\x79\x5c\x3d\xad\xf6\x87\xcd\x76\xfd\xe4\x88\x64\x18\x8d\x02\x7b\x9a\x67\x05\x6e\xb3\x87\xfc\xba\x60\x88\xd1\x88\x69\xd1\x41\x37\x5f\x8a\xbc\x3d\x64\x41\x5f\xa1\xa2\x18\x8d\x78\x8a\x2b\x6a\x1e\xcd\x9e\xef\x54\x6f\x15\xd0\x08\x42\xdc\x9e\x85\xb6\x10\xd8\xab\x23\x71\xb0\x97\xd3\x98\x49\x3c\xc1\x5c\x72\x7d\x0b\x42\x43\xe5\x41\x92\x37\x4f\x31\x4a\x92\x18\x99\xd6\xda\x65\x8e\xd6\x82\x57\x62\xf2\xed\xcc\xa0\x90\xaa\xcd\x7c\x76\xaa\x8c\x37\x57\x17\x25\xc0\x85\x35\x92\xaa\x66\x53\xd6\xdd\x35\x40\x3a\xd1\xca\x57\x97\xc7\xbf\x2f\xab\x8e\x7a\xf7\xf6\xa5\x92\x80\xe3\x46\x6d\x8d\x14\xab\xc4\x79\xd3\x65\xa4\x09\x09\x6d\x46\xf8\x94\x77\x8e\x22\x4d\x48\x8c\x05\xd4\x6f\xa2\x5e\x9f\x60\x60\x16\xd3\x84\x03\xda\x9c\xb2\xdd\x81\xef\xc0\x96\xa1\x74\x24\xde\x8c\x26\x92\x4a\x97\x18\xc3\x62\x45\x9c\xd7\xa3\xb5\x42\x13\xa0\x40\xba\x3a\x14\xeb\x0d\x77\x3f\x07\x85\x81\xa9\x3e\x6a\x2a\xc2\xf0\x9b\xa8\xdf\x0e\xee\xfd\x7c\x47\x4a\x13\x6b\xd7\xa2\xe4\xde\x9f\xae\xcc\xa3\x2f\xf1\x61\x94\xa6\x11\x9e\xa4\xba\x41\x46\x9b\xac\xb9\xec\x0a\x71\xaa\x5b\xb7\xf7\xf6\x6c\xa5\x4a\x7b\x7e\x02\xef\xb1\xf4\xd6\x30\xa5\xa0\x30\x1d\x6a\x59\x91\x20\x6f\x1c\xbe\xf7\x36\xf6\xc5\xfd\x88\x05\x12\x1d\x5b\x6b\xa1\xcf\xce\x83\x32\x9f\x6b\x13\x85\x32\x6e\xb4\x43\xec\x3d\xc3\x67\x27\xf1\xf2\x35\x44\x91\x51\x66\x34\xee\x8f\xbf\x6f\xff\xe8\xb6\x58\xca\x0c\x60\x15\x6d\x47\xad\x3c\xeb\x74\x5c\x18\xe5\x91\xc0\xe0\xde\xe2\x65\xfb\x7d\x79\x58\xbc\xec\xd7\xf7\xf7\x87\xbb\x97\xed\xac\xd7\xe7\x61\x94\xc7\x12\xf3\x25\xcb\xfd\xde\x43\x6d\x19\xe5\x24\x88\x1c\x0c\x7c\x53\x95\xfa\xac\xae\xac\xb5\x89\xd1\x36\x34\xd6\x28\x4f\xa3\x18\xf7\x8c\xd7\x22\xeb\x3f\x92\x88\x08\x96\x5a\x67\xf5\xde\xc5\xcf\xce\x3d\x83\x38\xa3\x42\x40\xe4\x23\xb6\x50\x65\x26\xeb\x10\xc7\x93\x59\x2c\xb9\x4a\x6c\x68\xba\xbd\x0a\x7a\x6b\xd3\x14\x19\x95\x9a\x21\x94\x40\x67\xb5\x90\x39\xac\xea\xfa\xdc\x17\xfe\x30\x2a\x4d\x84\xfa\xb7\xbb\xa6\xac\x8e\x37\x12\x0b\x54\xb6\xc7\xea\x00\x4e\xba\x11\xaf\x6e\x4b\xe6\xbf\x28\x39\x65\x54\x05\x06\x51\x3f\x8e\x2e\x30\xcf\x2c\x0b\xb7\x3d\x96\xc7\x7c\x7e\xfe\x17\x21\xf8\xa4\x13\x8a\xe4\x9d\x9a\xc7\x4c\xc8\x7c\x58\x3c\x30\x7e\x34\xc5\x89\x95\x01\x46\x36\x1a\x7b\xa6\x59\x4e\xaf\xc9\x85\xd3\x00\x6b\x3a\x8f\xce\x28\xf4\x2b\x62\xe5\x6d\x13\xaa\xc0\x2a\x7c\xa3\x13\xb7\x87\xe3\x29\x1f\x2c\x29\x65\x08\x12\xa9\xcc\xb3\x7d\x59\xf9\xd3\x98\xea\x88\x61\x5a\xe0\xe0\xd3\x33\x0e\x51\x74\x7b\x49\xe8\x38\xc1\xb4\xb1\x38\xeb\xac\x29\xdb\x95\x84\x31\x66\x7f\x31\xe0\x56\x7e\xc8\x69\x98\xb4\x9b\x12\x6a\x55\x1f\x87\x66\xfd\xed\x41\x80\x34\xe4\x16\xc8\xdd\x88\x7c\xf7\xde\x1f\x02\x86\x6b\x3c\x1e\x77\x7f\x3c\xcd\xd7\x8f\xdd\x5f\x53\x9b\xcd\xc0\xc7\xab\x9b\x6a\x32\x54\xc6\x80\x85\xcf\xa2\xdc\x5a\x56\xb4\x93\xb3\xe7\x83\x62\x2c\x08\x89\x5f\xac\x0f\xdf\x97\x9e\x5e\xe2\xff\xe3\x3f\xdd\x35\xad\x33\xa1\xcb\xcf\x22\x2f\x85\x46\x73\x7d\x98\x18\x65\x41\xa8\x30\xa8\x2b\x45\xa3\xde\x7a\x54\xe6\x35\x18\xcb\xf7\x17\x1c\xbd\xfb\x7b\x51\x09\x6d\x31\xf6\xbd\x45\xcd\x02\x95\xe2\x6e\xbb\xbf\x5b\x0e\x19\x36\x18\x0b\xa5\xa2\x4e\x56\x1a\x2a\x2b\xe6\xd8\x5b\xa1\x2c\x4a\x08\x72\x5b\xb9\x9b\xee\xcb\xdd\x59\x76\x64\xc5\x5f\x24\x47\x59\x44\x19\x08\x97\x35\xf4\xb4\xd3\x96\x4e\x68\x64\xc8\xfb\xde\x3c\x12\x72\xb0\xbd\x7b\x98\x82\x6b\x8e\x45\x6c\xec\x7c\xff\x39\xab\x6b\xcc\xbf\x7b\x5e\xf5\xbe\x8b\x44\x77\x3a\xab\x37\xdf\x37\x63\x0a\x6c\xc6\x62\xc5\xb0\xfe\x70\xff\xb4\xfb\xe3\xa6\x74\x84\xeb\x47\x02\x02\x1d\x41\x70\xeb\xdc\x94\x85\x27\x92\x18\x0f\x18\x49\x0c\x26\x9e\xe6\xe7\x61\x50\x82\x11\x0a\x56\x47\x5d\x4c\x18\x02\x19\x23\x29\x20\x98\xaf\x2a\xd5\x3b\x20\x4a\xf6\xa5\x68\xb2\xfc\xa9\x9c\xc2\x27\x58\x12\x48\xb4\x65\x71\x26\x2e\x9b\xb7\x07\x18\x4a\x33\x32\x96\xa4\x0a\xe9\x42\x3c\x9f\xb7\x7d\x32\xa7\x20\xe7\xfa\x50\x9e\xe0\x68\xe0\x99\xec\xd1\x01\x33\xf5\x25\x4c\x6d\x24\x47\xcf\x18\x0b\x52\xe4\xfd\x94\xe7\xcb\x01\x0a\xe4\xe9\x54\x65\x05\xb7\xab\x06\xf1\x1f\x07\xe7\xef\xfe\xcb\x5d\x88\x9b\x38\x72\x53\x67\x96\xbf\x4e\x2c\x5e\x96\x86\x41\x38\x28\x05\xfe\x51\x65\x37\x8a\xea\x7c\x5f\x41\xd1\x00\x38\x38\x9d\xb4\x2f\xd1\x76\x03\x0b\x8f\xa5\xc2\xb2\x24\xdd\x89\xf2\xc5\xa2\x38\x26\x96\x3f\x13\x41\x8a\xfb\x1f\x62\xfc\xb2\x62\x63\xe3\xb0\xd3\xd8\x25\x13\x24\x0d\x5c\xe5\xdf\x53\xd6\xa9\x6d\xdb\xa5\x3a\x7e\x27\x21\x02\xa1\x07\x51\x05\x0b\x43\xba\x75\x88\x31\x21\xb5\x77\xfd\x30\xa1\x65\xb5\xc7\x90\xf4\x71\x9c\x87\x0c\x53\xbf\x63\xc8\x90\xfb\x2a\x3d\x4f\x90\x3e\xdc\xa4\x24\x35\xd4\x59\x63\x8b\xed\x9b\xa8\xdf\xd6\x66\xb1\xf5\xa5\x93\xb7\xd7\xa9\x0a\x35\xc6\x15\xce\xc5\x7b\x51\x7e\x16\x3d\x6f\xf9\xa4\x1b\x61\x69\xe8\xd9\x40\x06\xa2\xcf\x6d\x8b\x41\x5d\x9a\x83\xe9\x4a\xd2\x2d\xf9\xa7\x6f\x17\x11\x26\xf3\x8f\xb6\x60\x66\x55\x6f\x86\xe9\x10\xa6\x69\x64\x3a\x3a\x13\xeb\x64\x1e\xba\x36\x41\xad\xf0\x45\x2e\xb2\xe3\xea\x78\x04\x9d\x79\x36\xb1\xe9\x58\x6a\xe5\xb8\x5f\xa0\xf9\x56\x96\xef\x5d\xe9\xe6\xed\x91\xd7\xc6\xe0\xfc\xfe\xdf\xf6\x93\x67\x79\x2e\x50\xc5\xd5\x45\x84\xc7\x63\xcf\x27\xe3\x05\xc4\x96\xfa\x63\x88\xfc\x0f\x71\x59\xd5\xcf\x65\xb3\xfe\x80\x6a\x97\xfd\x6c\x2e\x8e\xeb\xd9\xbf\x00\x70\xc9\x1d\x23\xab\xd5\x04\x1a\x52\x20\x30\x66\xa2\xd4\x1b\xcf\xf7\x00\x3f\xb2\x42\x97\x9f\xbf\x75\x6d\xc6\x73\x4a\x59\xcb\x61\x02\x45\xe9\xed\x48\x1e\x04\x80\x47\xac\x39\x17\xda\xb2\xac\xf9\x86\x28\x49\xa1\x93\x0a\xaf\x06\x52\xe1\x8c\x07\x9a\x53\xe6\xc5\x98\xda\x2d\x6c\x6c\xd3\x0d\x27\x8b\xdb\x15\x78\x98\x18\x8f\xb4\x5d\x15\xcd\x7d\x06\xb9\x8e\xfc\xe5\x22\x69\x6b\x06\x0f\xaa\x2c\x4c\x56\x1d\xc7\x03\xce\x89\x12\xb8\xb1\xde\x43\xd3\x23\x82\x38\xd1\xda\xea\x72\x80\xb0\xb0\xf2\xae\x76\x80\xf1\x24\x4a\x44\x38\x14\xfb\x9a\x5f\x50\xa9\x6b\x38\x80\x3c\x01\xc3\x9c\xd4\x2b\x56\x03\x1c\xba\x5f\x9b\x20\xee\xd6\xeb\x6b\x25\xd0\xd4\x1c\x0c\x19\x0d\xa4\x74\x78\xe8\x7d\x39\x0a\x16\x70\x1a\x01\x8a\x3a\x18\xff\x45\xe6\x43\x2a\x97\xd1\x64\x40\xf8\x01\x41\x95\x5c\x2b\x50\x73\xd8\x2e\x7f\xcc\xb6\x77\xdd\xa5\xa4\x4d\x62\x7c\xcb\xfe\x4e\x8d\x59\xdb\x1f\xb0\xbe\xf8\x69\xf6\x8f\xf5\xf6\xf0\x7d\xb9\xdd\xf5\x36\x3a\xa7\x4a\xf2\xbe\x92\xea\x11\x8e\x65\x61\x21\x2f\xdb\x1e\x1c\x70\xd7\xc7\xe9\x38\x0b\x14\xc6\x64\x5c\x25\xd5\xaf\xc0\xfa\x8c\x73\x2e\xd0\x15\x76\x25\xd2\x03\x20\xf2\xf8\x3b\xa6\x11\xb7\x40\xe4\x76\xfb\x3b\x84\x87\xe1\x17\x4b\x53\x8d\xb3\xed\x20\xcf\x17\x7b\x76\xee\xf7\x4f\x5f\x56\xb8\x8c\xaf\x2b\x98\xc5\xeb\xc3\xcf\xa6\x12\x4b\x97\x25\x1b\x6f\x41\x5c\x30\xcb\xde\xef\x82\x76\x28\x72\x35\x22\x38\xbd\xe9\x88\x70\x45\x25\xee\x0c\xba\x53\x7c\xbd\x99\x89\xe1\x4a\xa5\xaa\xd3\x9c\x79\x87\xe2\x19\x7e\xda\x82\xe9\xc9\x63\xe8\xd0\xe6\x03\xec\x7e\xb6\x59\xdd\x4d\xdb\x13\x82\xc4\xa1\xee\x50\x7b\x86\xcf\xd6\x9a\xf4\x8f\xea\x3b\xe9\x00\x73\x04\x4f\xe5\x47\x06\x5f\x72\xb8\x31\x0e\x24\xc2\x13\xd2\xab\xea\x7d\xb7\x9a\x7a\x23\x1a\x25\xc6\x41\xc7\x91\x15\x43\x79\x6d\xd7\xc8\x0f\x8b\xd8\x98\xac\xe4\xf1\x80\x1b\x11\x62\x8a\x15\xfd\xec\x7d\xb9\xdb\xdc\xed\xa6\x26\x31\x37\xc2\x1e\x0d\xdf\xfe\xe9\x03\xc2\xdc\x80\x95\x34\xaf\x1b\x9f\xb5\xe6\xbd\xb6\xed\x7f\x9d\x07\x45\xfc\x2c\x0d\x62\xce\xec\xea\xfe\x18\xd6\xe2\xb0\x34\xe0\x26\xe8\x39\xad\x87\xca\xac\xbe\x43\xca\x8d\x3b\x18\x97\x96\x45\x75\x2c\x44\xec\xba\xc5\x49\x8a\xba\x08\xfb\xb7\x0a\x60\xe6\xdd\xe1\xf6\xcf\xd4\xb3\xa8\x8b\xe2\x6a\xe6\xfb\x5e\x46\xa2\x40\xcc\x87\xc8\x3b\xbd\x0d\x96\x12\x1e\x20\xaf\xce\x00\xc5\x15\xa6\x37\xe2\x11\x29\x01\x86\x15\x92\x42\x6b\xe4\xe8\x50\x60\xb9\x40\xc6\x43\x40\x40\x26\x2e\xea\x87\x21\xec\x9e\xab\x8b\xa5\x34\x06\xee\xb9\xfe\x9e\xe1\xd3\xa2\x45\x6c\xa1\xf2\xaa\xfe\x13\x3a\x7f\x2b\xa5\x14\x30\x67\xe6\x2d\x8a\xd3\x79\x52\x6f\x30\x70\x29\x52\x9a\xda\x00\x98\xb2\x0e\xdf\x1c\xb9\x50\xba\x2b\x41\x80\xf6\x7f\xa7\xa2\x80\x8a\xf9\xd6\xbb\xf5\x7a\x40\xe3\x51\x62\x61\x80\x89\x72\x5c\x97\x13\x31\xa9\xdb\xe3\xca\x84\x72\xa2\x2a\x7a\x07\x79\x9e\x15\xaf\xab\x06\x8e\xbf\xac\xfc\x61\x29\x93\x34\xb4\x85\x51\x5d\xf2\x78\x23\xa6\x81\xf6\x94\x19\x86\xf0\x3c\x24\xd1\x5e\x3d\x3c\x1f\xf6\x7f\x6c\x96\x77\x87\xbb\xd9\x7e\x76\x98\x6d\x1f\xbe\xcd\x76\xdf\xfc\x9b\xf2\x50\x6a\x2b\x6d\xa5\x7b\x09\x71\x96\xf2\xc8\xd2\xf7\x09\xad\xb7\xa0\xb2\x53\x36\xf4\x32\xc7\x37\xe3\x4c\x20\x95\x9a\x97\x7e\x7d\x12\x3f\xf1\x8c\xf6\x64\xba\xdd\x25\x85\x54\xe0\x2a\x04\x1e\x4b\xf5\x3e\x88\xbd\xa4\x69\x98\x60\xdb\xfb\xfb\x1e\xea\x66\xb5\x58\xa7\x61\xd7\x14\xd9\x88\x33\x74\xc6\x5b\x9a\xd2\x10\x93\x7e\xad\x51\x82\x38\xde\x69\x44\x23\x15\x91\xe4\xce\xc8\x41\xf8\xf1\x53\x76\x2d\xdd\xea\xbb\xc6\x0a\xe1\xa3\x2e\x1b\x72\x67\x63\x20\xfe\x56\x22\x65\xc6\xe6\xee\x76\xa7\xd6\x41\xf8\xb9\x11\x97\xd6\xe3\xbe\x2f\xab\xa7\xc5\x8f\x71\xfc\x2e\x15\x4a\xe8\xb8\xdf\xd0\x3a\x0b\x71\x55\xcc\xcf\xf9\xfb\x14\x96\x91\xca\x28\x02\x2c\x16\x81\x66\x5d\xcc\x90\x88\x74\xfc\x16\xca\x08\xb0\xd2\x4b\x8f\x37\x2a\x31\x6f\x19\x5d\xa9\x0e\x04\x1a\x5d\x4a\xe4\xf9\xae\x3c\xc2\xfd\xb9\xc0\x0d\xe3\x7b\x26\x56\x45\x01\x55\x37\xac\x9a\x52\xde\x73\x4e\xe2\xe5\xaf\x24\x97\x59\xaa\x95\x41\x5f\x02\x44\x95\x67\xed\xce\xda\xfa\x39\x4d\x7f\x94\xa5\x10\x49\xa7\xe2\xfa\x98\xd5\xcd\xec\xcb\xc2\x9c\x14\x44\x8a\x68\xbe\xef\xa5\x8b\xf2\x74\x57\x90\x9a\x19\x8f\x4a\xc5\x63\x04\xe1\x47\x5d\xb3\x4e\xc9\x20\x61\x32\xde\xcf\x53\x93\x44\xbc\xa7\xb5\x76\xbe\xf0\xb0\xd2\x20\x35\x8a\x05\xbe\xdc\x7f\x2e\x6a\xd8\x35\x1e\x98\xf8\x52\x67\xc5\xab\x55\xf9\x74\x12\xf0\x7d\x2e\x5b\x04\xa1\x0d\x2d\x63\xf6\xf2\x49\xa8\xb7\xcc\xeb\x7a\x30\x11\x50\xe1\x35\xda\xda\x85\x0b\xd5\xc3\x59\x54\xa2\x68\x00\x7e\x1b\x82\x79\x7d\x6f\x16\x22\xd5\xf9\x5d\x59\x0c\x39\x52\x98\x08\x38\x41\x05\xe0\xd9\x6a\x7b\xb7\x5d\x6f\x0e\x48\xf8\x76\xe8\x76\x67\x11\xc8\x08\xe3\x28\x4e\xac\x1a\xf2\x72\xf9\xb3\x81\xa2\x1e\x42\xa7\xc7\xc6\xa3\x08\x00\x10\x1d\x7e\x14\x3f\x9b\xe1\x41\x22\x02\x23\x3c\xb4\x0f\x73\xad\x5d\x80\xa4\xdd\x1d\x07\x7e\xa0\x88\x28\xc7\xda\x5b\x8b\x96\xf7\xd5\xf6\x23\xac\x72\x6f\x1c\x8a\x38\xb6\x39\x5c\x74\x49\x3a\x16\x42\x27\xc7\xc3\x44\x4c\x12\xe6\x61\xdf\xa3\x62\x8a\xf1\x08\x91\x00\x10\xbb\x77\xb4\x10\x09\x16\x85\x7f\x67\xff\x14\x44\x11\x24\x54\xe8\xf6\xe8\x9d\xc8\xc1\x65\xde\x6f\x6d\xa2\x93\xa5\x22\xa8\x08\x50\x39\x4c\x0a\xf5\xbe\xae\x00\x19\xb2\x86\x45\x15\x82\x91\x00\x27\xd7\xfc\x7c\x79\x84\x0f\x4f\xf2\xcb\x04\x03\x85\xbc\x19\xad\x17\x71\x40\xd5\xef\xff\x13\xc7\x1a\x13\x3c\x60\xb8\x3b\x0d\xe2\xc5\xc3\x25\xed\x7b\xc9\x98\x38\xad\x9a\x02\xc6\xe2\xbb\xb7\x2f\x9b\x86\xa9\xec\x73\xb5\xed\x71\xd5\x1f\x7d\xff\x13\xd2\x7f\xff\xdd\x9a\x69\x7f\x39\x61\xf1\x7d\x38\x05\x10\xac\xd6\x4d\x27\x41\xac\x1e\xd8\x53\xd6\xbc\x55\x59\x3e\xab\xaa\xf2\xb3\x6f\xd4\x29\xb2\x46\x8b\x23\x74\x42\xdb\xf5\x74\xf3\x13\x92\x82\x72\xfe\xf9\xda\x18\x68\xdf\x7e\x7e\xe9\x90\x9a\x37\x9c\x2a\x21\x85\x74\x3e\x5a\xbb\x57\x21\x76\x73\x18\x69\x12\x2a\xa1\x58\x6c\x71\x3a\xd7\x6f\xce\x05\xfc\x02\x2b\x31\xb8\xa8\x4a\x2d\x21\xb1\xdb\xb2\xbb\xa2\x95\xd6\x92\x19\x40\x0b\xfe\xe6\x87\xd5\xcc\xa2\x00\xac\xf0\x6f\xf9\x09\x2e\x8a\x3d\xbf\xf4\x34\xd3\x4c\xe8\xd4\x19\x17\x9e\xb9\x74\x2a\xc3\x7e\x7b\xbe\x6b\x45\xb8\xaf\x8c\x8a\xc7\xfb\xb4\x80\x88\xa0\xc3\x79\x7f\xb6\x44\x26\xee\xe4\xbd\x7d\x21\x48\x49\xd4\x15\x79\xfa\x43\xea\x16\x17\x00\x13\x00\x22\x24\xdd\x29\xf1\x90\x97\x52\xe4\x56\xa8\x40\x64\x83\x7d\xe1\x56\x1c\x4a\x98\x28\x44\x88\x9c\x4d\xb1\x4e\x48\x8f\x99\x30\xd4\x2a\x6e\x3c\x40\x33\xcf\x7c\xe4\xd3\x6d\x38\x18\x8c\xbb\x09\xbe\x95\x41\xaa\xb1\x42\xff\x35\xfb\x00\x2f\xdd\x7b\xbe\x56\x8b\x75\xbd\x43\x12\x78\x64\xc4\xf9\x2f\xd5\x5b\x6e\xef\x16\xbf\xfe\xe4\x32\xe4\x1c\x33\x12\xe7\x62\x33\x48\xd7\xc9\x28\x32\x22\x1a\xc1\x4c\xe6\x3d\x6d\x74\x9f\x3c\x93\x11\x0f\x70\x8b\x3c\x96\x39\xb4\xbb\x58\xd5\x80\x7a\x2b\xca\xbc\xf4\x9c\xcd\x4c\x46\x82\x49\xe8\x78\x8a\x47\xb0\x07\x49\x22\xed\xeb\x3f\x0e\xa7\xf6\xec\x3c\x88\x42\x1f\x6a\xb8\xd6\xb5\xf2\x3f\x88\x05\x26\x2a\x3c\xe9\x3d\x2a\x6d\xaf\xb7\x83\x14\x97\x24\xad\x47\xec\x80\xdd\xa8\x7b\xef\xd7\xa7\x23\x5e\x1a\x7d\x65\x49\x64\x60\xfd\x5c\xcf\x6c\xd4\x9a\x5b\x37\xe4\x0b\x98\x24\x06\xd0\x73\xb6\x41\x8a\x51\xc5\xaa\x4c\x62\x82\xe0\x3e\x03\x50\xef\xc5\xb0\x81\x04\x18\xa6\xc7\x48\x4a\x3b\x53\x5b\xe3\xcb\x8d\xe8\xb5\xd2\x2f\x93\x09\xe3\x48\x08\xf3\x98\x7d\xc0\x20\xde\x2c\x69\x1c\x44\x30\xbc\x4e\x59\x8d\x95\xf7\xbf\x98\x40\x2c\x89\x46\xd4\xe0\x79\xbd\xc4\xfa\x20\x6f\x28\x4b\xc6\x04\x2e\x26\x5b\x26\x53\x94\x1a\xbc\x9f\xf0\x55\xf2\x5f\xf2\x28\xd2\x0e\x31\x73\xb7\xc4\x5c\xcf\x15\x97\x76\x7f\xc6\x4a\x9e\x8a\x18\x06\x0a\xaf\x8b\xb2\x8f\xe5\x4b\x2e\xa8\x47\x0f\xce\x72\xab\xd9\x3f\x45\xed\x0f\x4e\x77\xc9\x01\xa4\x2b\x30\xf9\xf1\x76\x05\x16\x90\x69\x64\x10\xb5\x69\x75\x18\x46\x1f\x28\x4d\x74\xec\x13\x6f\xcf\x0f\x0b\x91\xe7\xed\xb1\x39\x65\x81\x65\x52\x70\x9e\x22\xf8\x0a\x8b\x1e\xbf\x8a\x69\xf8\xce\x5a\x60\xbd\x94\xed\xbc\x78\x2b\x33\x05\xf7\x55\x79\x6c\x90\x04\x1f\x55\x68\x5c\x4f\xa9\x43\x15\x76\x51\x65\x5b\xd2\x3c\x2a\x5f\x72\xfd\x54\x14\xa0\x2f\xe2\x0a\x90\xbd\xd6\xf3\xb8\x44\xee\x26\x50\x45\xaa\x38\xc5\x95\x51\x7e\x4e\x43\xa6\x52\x47\x31\x46\xdf\x1e\xcb\xf2\x7d\x36\xa6\x45\x64\x2a\x08\x78\x22\x07\x9c\xfa\xed\xab\xac\xab\xd7\xd9\x66\xf5\x3b\x5c\x46\x41\x38\x15\x04\x36\x69\xeb\x70\xa3\x3f\x20\x1b\x15\x1b\xa9\x80\x11\x5f\xb1\x64\x59\xef\x44\x7e\x75\x70\xaa\xc0\x10\x45\x87\x66\x0f\xb2\x15\x76\x97\x30\x82\x58\x9a\x62\x44\x8f\x2c\xca\xaa\x02\xe5\x73\xa5\xe3\xc1\x52\x91\x8c\xb9\xea\xf4\x4c\xeb\x43\xde\xd1\x9f\x33\x15\xd3\x00\x7d\x13\x03\x70\xb0\x20\xb8\xaa\x6b\xe2\x81\xb5\x0b\x5c\x74\xe9\x62\x0b\x1f\x6f\x9d\x90\x7c\xc0\x48\x9d\xfc\x7b\x40\x88\x40\xff\x7d\xc5\xae\x36\x08\x8f\x0c\xff\x9f\xbf\xa9\xb4\xe1\x9d\xe5\xf3\xe2\xf7\xbf\x47\x44\xc5\x54\x0c\x36\x51\x99\x1d\x8f\x65\xd5\x20\x57\xa5\x7f\x07\x12\x09\x54\x2b\x28\x0b\xa4\x76\x59\x69\x28\x9a\xac\xc9\x26\x2a\xbf\x4c\x11\x2a\x58\x47\xb9\xff\x56\xd6\xc3\x42\x50\x95\x70\x1b\xb4\xfc\x84\xcc\x17\x39\x75\x4d\x86\xc8\x8e\x28\x1d\x56\x8b\xf5\x80\x07\x89\x29\x1a\x72\x15\x76\x3b\xfa\x70\x9d\x29\xca\x8d\xb1\x75\x77\x9e\x68\x68\x3d\x98\x6b\x3c\x22\x48\x4e\xb1\x28\x8f\x32\x2b\xa0\xc3\x04\xfb\x49\xac\xb8\x08\x30\xf9\x60\xca\xca\xd7\x14\x75\x2d\x06\xf5\x34\x34\xd4\x4d\x55\x5e\x86\xa1\x06\xdf\x43\x53\x5c\xfd\x8d\x98\x54\x62\xa9\xd4\x9d\x40\xc8\x73\x01\x55\x83\x67\xd8\x84\x7b\xbc\xeb\x6a\xcf\xbd\x8e\x8f\xe8\x01\x9a\x99\xfe\x18\x32\x7a\x30\x95\x9a\xd0\x67\x88\x37\x65\xf1\x67\x86\x5e\x5f\x76\x9d\x22\x52\xa9\x61\x38\x9b\x1d\x4d\x9b\x1a\xaa\x79\xdf\xdc\x5b\x95\x90\xdc\xf3\xec\x6f\xcf\xf9\x84\xc0\x40\xc9\x84\x05\x29\x8e\x5f\x56\x58\x01\xc0\x97\x42\xe4\x8d\x25\xe5\x59\x15\x0d\xbc\xf6\x9f\x50\x32\x8e\xe4\x02\xe8\xdb\x74\xa4\xd5\xbe\x91\x03\xf5\xaa\xd4\xab\xee\xbd\xa4\x92\x7c\xc8\xf4\xde\xd9\x3c\xeb\xfa\x0d\x2a\xbc\xa9\xef\xaa\xb8\x42\xc2\xe4\xa7\x52\xee\xfe\x73\x16\xba\x8e\xfa\x16\x5b\x96\x58\xc8\xb9\x50\xef\x80\xf9\x96\xa7\xb2\x82\x75\xb5\xfc\xcf\x59\xe4\xfb\x7e\xae\x68\x43\xb0\xfe\x62\xb9\xff\xb6\xdc\x2e\x5f\x7c\x4d\xaf\x82\x28\x91\x36\x06\x50\xe9\x59\xa1\x17\xad\x99\x97\x67\x75\xb3\xd2\xf5\x7d\x59\xdd\x28\x52\x53\x40\x08\x4b\xbd\x6c\x91\x03\xaa\xde\xcc\x07\x29\x13\x08\x4c\x36\x58\xa7\xf4\x29\x2b\xe6\x53\x9c\xb8\x32\xa9\xb0\x72\x65\x96\x5e\x61\xba\x2f\xdc\xb2\xea\x94\xd1\x69\x10\x79\x3b\x53\xe4\xf3\x5c\xa8\xf7\xc7\x2b\x6c\xa0\x0e\x38\xa0\x99\xdb\x97\xc3\x38\x13\xd0\x79\x02\x37\x8f\x19\x1d\x40\x40\xa4\x4f\x10\x4d\x63\x82\xae\x0f\x51\xac\xab\xd8\xe8\x4b\x2f\x91\x13\xd2\x7f\x33\x9d\x84\x5c\x26\x36\x26\x50\x75\x32\xf0\xe3\x90\xcc\xf0\xa5\x74\x02\x04\x23\x57\x43\x85\xf9\xaf\xf0\x08\x9a\x6a\x89\x79\x9f\x17\x5f\x43\x6f\x3d\xa1\xee\xe6\x8c\x30\x84\x16\xd4\xe7\xa3\x35\x01\x07\xac\xff\xae\x0b\x27\x21\x32\x0c\x3f\xfd\xb1\x5d\xde\xfd\xf5\xfe\xa8\x39\x0b\xb1\x1c\xe6\xf9\xac\x72\x38\xd7\xdf\xb3\x3a\x2b\x0b\xa7\x74\x68\x8d\xa3\xa7\xac\xf8\x8a\xd8\x8a\x69\xae\x38\xa6\xec\x64\x05\x80\x4e\x07\x56\xcc\xdd\x34\x3b\x75\x1a\x58\x11\xe7\xa3\x8d\xa1\x9f\x40\x65\x22\x1f\xda\xed\xbe\x5f\xa8\x90\xba\x4a\x38\xba\x0a\xf7\x79\x1d\x15\xc2\x28\x38\xae\x53\x96\x30\xc7\x27\x32\xca\x3e\x4c\x6f\xcd\xb8\xe8\xc1\xeb\xcb\xa2\xa9\x2e\x03\x18\xaf\xef\x24\x12\x9c\x58\xf3\x46\x0d\xb7\x63\x2d\xb4\xf1\xa4\xcd\xf3\x73\x55\xdc\x97\xd5\xf1\x9c\x8b\xc9\x43\x0b\x97\x5b\x43\xdb\x52\xc3\xcf\xb9\x68\xd4\xdb\xfc\xf2\x52\x43\x55\xb4\x53\xc4\x69\x6a\x77\xdf\x49\xb2\x98\x38\x50\xaa\x73\x3b\x7f\x49\xcc\xe8\x31\x5f\x5a\x8a\x50\x2b\xd4\x0f\xcc\xf3\xcc\x5c\x7c\xe8\x60\xb4\xc5\x69\x15\x10\xab\xdc\xec\x9c\x4a\x47\xc2\xf1\x57\x9c\x1e\x5a\xa5\x41\xda\xeb\x50\x3d\xc3\xa7\xf5\xc1\x26\x44\xca\x37\x71\x6c\xe3\x59\xa5\x23\x40\xfc\xee\x7c\xf6\x70\xd8\x6f\x67\xcf\xbb\xfb\xe5\xf6\xf0\xb4\x7a\x5e\x3d\xbd\x3c\x1d\x66\x4f\xeb\x97\xe7\xfd\x61\x7d\x7f\x98\xbf\xfc\xe1\x59\x73\xb4\x36\x12\x17\xe8\x11\xf2\x61\x39\xad\x6f\x06\x65\x10\x9e\x26\xdb\x5d\x01\xcb\x05\x3e\xb3\xa6\xe3\x95\xd1\x60\x00\xcd\x98\x53\xa6\xde\xf7\x6f\x60\xcf\x25\xdf\x68\xb8\x41\xf7\xe4\xc3\x82\xe8\xee\xdb\xcd\x1c\xaa\x71\x14\x11\x02\xa9\x10\xe0\xb6\x58\x3f\xae\xb7\x87\xc5\xcb\x6e\xbf\x7e\xea\xda\x80\x91\xb8\xf3\x80\xef\xad\x88\x1f\xf2\xa4\x3c\x0e\x92\x85\xae\x73\x14\x53\x66\xe5\x5c\x9b\x59\xe3\x76\xa8\x2f\x0a\xa5\x21\x8a\x19\x62\xaf\xdc\x39\x7d\x55\xd2\x0a\x11\x37\x18\x7e\xfa\xf4\x66\xe2\xcc\x34\x50\xdd\x65\xb5\xc5\xe0\x96\x58\x87\xee\xfb\x82\xc6\xf3\xe8\xb8\x2e\xfe\x5e\x34\x01\x22\x63\x53\x4b\xe7\xda\x1e\x31\x36\x62\x30\x21\xa6\x63\x10\xab\x80\xfa\xa7\x6c\xb2\x57\xf0\x2c\xfb\x0c\x62\x13\x60\x0c\x68\xf3\x32\x7f\x5c\x2d\x50\xb2\x66\x77\x88\x0e\xdb\xd9\xde\xe3\x22\x81\x44\x14\x0f\x63\xc7\x34\x54\x9d\x6b\x9b\x67\x1a\x3f\x09\x49\x39\xaa\xa4\xdb\x24\xd7\xa6\x2a\x4b\x33\xa9\x62\x1b\xd5\xab\x4d\x4d\x43\x20\x82\x08\x0b\xc9\xad\xf4\x42\x9c\x36\x15\x0c\x6a\xbe\x21\x09\x22\x2c\xc1\xfa\x36\x7b\x1c\xae\x6c\x48\xd2\x04\xe9\xb5\x0e\x96\xac\xed\x28\x32\x87\x3b\xf4\x1d\xa8\x30\x08\x0c\x3a\xbc\x42\x33\x0c\x0b\x02\x23\x80\x2e\xa9\x23\xea\xf4\xb2\x13\xd3\xa5\x3b\x5c\x14\xc0\x18\x10\xd2\xfb\x25\x4f\x97\xef\x43\x52\x23\xdf\x89\x03\xce\x08\x3b\x10\x77\x20\xf2\x1b\x5a\xae\x0c\xda\xb3\x02\x75\xd7\xca\x5a\x75\x41\x25\xe0\x41\x82\x49\x6f\x4b\x5f\xd1\x6e\xc5\x5b\xb0\x05\x5d\x93\xe1\xe6\xb1\x40\x0f\xd9\xde\xe5\x4a\x1c\x97\x41\x9a\xc4\xb4\x67\x85\x7e\x38\x3f\x89\xfa\xfd\x6a\x12\x4f\x66\x53\xca\x35\x56\xb3\xff\xb1\x7c\x7c\x5c\xff\x78\x9c\x3d\xcd\x3d\xc0\x0a\x04\x13\x1e\x60\x30\x0c\xda\x8d\x7f\x2f\x74\x90\x46\x1d\x53\x71\x56\x8c\xa2\x1c\x20\x40\x11\xd3\xad\xc1\x71\x21\xd3\xf8\x3a\x92\x04\xa1\x13\xc0\xf2\x78\xd8\xf9\x65\x59\xe8\x53\x99\x4d\x99\x4d\xfd\x2f\x54\x9c\x5a\xc4\x7e\x07\xfe\xb2\x91\xbb\xbf\x58\x3f\x2a\x8a\x70\xfe\x74\x75\xc7\x7a\x5f\xde\x55\xc2\xa3\x52\x40\x45\xc6\xc2\xf8\xeb\xc9\x76\x06\x8a\xc9\xa4\xd7\x5a\x3d\x14\xf0\x79\xd0\xe0\x94\x12\x27\xd5\xf6\x7e\x57\x07\xa5\x08\x6e\xaa\xed\xf9\x89\xb2\x7f\xe3\xba\xd1\xc9\xb3\x69\x1a\xc4\xe1\x40\x1d\xdb\x43\xe2\x87\x64\x25\xa0\x59\xa8\x03\xac\x52\x36\x0d\x09\x26\xdf\x43\x4b\x89\xe8\xe3\x02\x7e\x36\x8f\xe2\xd4\xa1\x60\x01\x92\x00\xa3\x11\xa0\xb3\xc6\x6a\xd5\xdd\xc8\xfc\x83\xd1\x21\x12\x81\xab\xb1\x09\xf8\x17\x25\x6c\xff\xd7\x7f\xc7\x7b\xaf\xd1\x24\xf0\x55\x4d\xf5\xaa\x99\x86\x06\x4c\x10\x27\x48\x4c\xb1\x14\xf5\xc5\x45\x77\x07\x01\x22\x13\x26\x71\xd0\xce\xfa\xd9\x76\x71\x77\xb8\x7f\x79\xbe\xeb\x1a\x52\xab\x09\x62\xf5\x5b\x6d\x86\xa9\x76\xa7\xea\xc4\x2d\x30\x51\x14\x22\xaa\xbd\x3c\x41\x6b\x18\x5b\xc5\x14\xdf\xc6\x2c\x73\xcf\xec\x7e\x3f\xbc\x6f\x1c\xa5\xf8\x58\xaa\x3c\x9e\xce\x0e\xb2\xd5\xee\xc7\x7d\x21\x57\xff\x0a\x71\xac\x10\xa0\xb1\xa8\xb2\x53\xeb\xcf\x0a\xbb\x63\xd5\xdd\xb5\xb8\xd5\x20\x46\x46\x4d\xa8\x6e\xd8\xb9\x26\x16\x1a\x6f\x77\x9f\xfd\x9c\x43\x93\x84\xdd\x4f\xb5\x40\x11\x52\xab\x71\xeb\xe8\x2c\xba\x94\x97\x21\x32\xd5\x9e\x51\x6e\x59\xe8\xee\x67\x49\x60\x6c\x19\xcd\xdb\xb9\x78\xaf\x3d\xd7\x80\xa5\x90\xf4\x5d\x38\xc7\x0a\xb2\xae\xec\x1c\x76\xe4\x7e\x39\x79\xac\x24\x25\x2e\x76\x6f\xa3\x71\xcb\x9f\x59\xdd\xc0\x14\xfe\x6d\x92\x54\x62\x8d\xc5\x63\xf9\xea\xd9\x4e\x3c\xfa\xfd\xe6\x72\x75\x51\x7e\x43\xb5\x85\x24\x3f\x54\x00\xc5\x52\x54\xcd\xdb\x52\x95\x45\x79\xbc\xdc\xf7\x64\x24\x86\x11\x89\x88\x41\x95\x97\x35\x7c\x2f\xab\xbe\xb6\xc3\xb0\x34\x4c\xb4\xaf\x3f\xf8\xe9\xa0\x7b\x30\x52\x88\x62\x86\xc7\x56\xc7\xf5\x64\xed\xb2\xd0\x86\x61\x7d\x23\xb3\x21\x24\x57\xa7\xb2\xa9\xca\x9f\x5f\x40\xd6\x0d\x17\x02\x91\x23\xbb\xb3\x2e\x7d\xb0\xb1\x8f\x07\x9a\x54\x49\x9c\x47\x9f\x95\x38\x9d\xae\x12\x97\x46\xe8\x14\x13\xd6\xb6\xbe\xc5\x16\xaa\x8e\x07\x51\x06\xcc\x13\x95\xbb\x40\xea\x00\x6c\x61\x24\xe1\xc8\x84\xd0\x63\x14\x7f\x3c\xf5\xf4\x6e\x46\x85\x52\x53\x8c\x1f\xaf\x9f\x5a\xbf\xf3\x65\x77\xd8\x7d\x5b\x6d\x86\xd4\xe3\xcc\x28\xc6\xd0\x33\xd8\x89\xd6\x91\xf4\x8c\x77\xe3\xb7\x54\x5c\x60\xa4\xe2\x4d\x7c\xc0\xee\x0d\xf2\x91\x1e\x1a\x33\x4a\x10\xe3\x13\xf8\x00\x37\xed\x6e\xa3\x04\xd7\xb1\x63\x62\xb5\x91\xea\xc1\xc1\x6f\x14\xd8\x6f\x5e\x21\x8b\xf0\x41\xf4\x68\x03\xa3\x23\x40\x3a\xc6\xd1\x42\xd4\xb1\x0e\xc2\xfe\x88\x5e\x88\x4a\x96\xc5\x5d\x99\xe7\x62\xba\x93\x40\x64\x01\xca\x05\x20\xe2\xad\xfd\x42\xeb\x13\x14\x0e\x19\xf0\xa5\x2d\x7f\xc3\x58\x36\x10\x13\x34\x18\xad\x6c\xd0\xf2\x3f\xbf\x4d\x32\xac\x06\xa8\x89\x11\xb1\x98\x49\x0f\x73\x31\x00\xd2\xea\x1b\x1d\xa1\xd0\xe8\xd0\xfc\x36\xb1\x8d\x6e\xff\x1b\xba\xf6\x70\xfc\x9f\xd3\x48\xa8\x31\x49\x00\x91\x77\x21\x2c\xde\xe8\x30\x60\x5d\x67\xc6\x08\x81\x21\xcf\x25\xc2\xaa\x67\xdd\x9f\xa5\x45\x6a\x08\xcb\xa3\xe4\xc1\x76\x5d\xb3\x8a\xd1\x46\x05\x5b\xc2\xbd\x3d\xe7\x59\xf1\x3a\x1f\x8d\x2d\x0f\x42\x46\x85\xec\x08\xaa\x91\x7e\xed\xe6\x21\xc7\x83\x90\x0b\x8c\x59\x9c\x2a\x38\xdd\x90\xb9\xf2\xbd\x8c\x5d\x4c\x07\x63\x6b\x4d\xef\x32\x0f\x2d\xe3\x41\x14\xb0\xc4\xf4\xb1\x52\xbd\x2c\x74\xf9\x79\xec\x40\xa9\x3c\x88\x88\x0e\xdd\x4a\x79\x82\xa3\x84\xca\x8b\x60\x8d\x9f\x24\x8e\x6d\xf2\x6d\x58\x13\xd9\x1d\x0a\x3c\x88\x25\x20\x6e\xd7\x94\x95\x02\xbb\x2c\x7d\xec\x6c\x1c\xdb\xe5\x41\x6c\x52\xab\xaf\xec\x4d\x91\x97\xfd\xda\x26\xf2\x93\xab\xbe\x09\x97\xe8\xbd\x1f\x16\xdb\xf5\x8f\x3b\x4c\xe6\x6c\x66\x2f\xbb\xe5\x9d\xbf\x6f\x22\x63\xb4\xf0\xb1\x89\xfc\x58\x2e\x7f\x3f\x20\x09\x91\x6f\xa7\x09\x68\xea\xc5\x7f\xcb\x13\x02\xab\xe7\xd0\xf4\x54\xa1\x3c\xe0\xb1\xc4\xaf\x51\x67\x47\x0c\x35\xdf\xca\x2d\x8e\xc7\x9b\x27\x0a\xf3\x25\x67\xbf\xfd\xbc\x43\xd5\xda\xfc\xd3\x0d\x80\x07\x29\x4b\x35\xf5\xd4\x95\xbb\x9e\xba\x72\x3c\xb6\xa9\xb2\xbc\x3f\x0e\x13\xbd\x2f\xef\xaf\x68\xd9\x78\x20\x4c\x8a\xcc\xa2\x18\xaa\xb3\x18\xb7\x81\xfd\xc8\x03\x19\x27\xb4\xaf\xab\x9b\x6a\x04\x8d\x92\x02\xff\x13\xfd\xbb\xfb\x91\x32\xc2\x67\x49\x51\xca\xe5\xf3\x2d\x7b\x7d\x1b\x10\x70\xf1\x40\xca\x08\x4b\xdf\x50\x69\xac\x7d\xdf\xb3\xdc\x0e\xa1\x10\x5d\x37\x40\xc7\x1d\x3a\xae\xc0\x9b\x3e\x21\x0f\x34\x05\xa4\x8f\x7d\xd8\x7c\x1b\x38\x2b\x3c\xd0\x29\xe0\xa8\x6e\xbe\x2f\x0f\xf3\xd9\x7e\xff\xb8\xec\x5a\x24\x47\xf4\xd2\xcc\x98\x2c\xcf\x44\x83\x49\xaf\x09\x73\x80\xef\x6a\xb4\x72\x61\x8a\xfd\xf1\x84\x25\x04\xbd\x30\xe8\x70\x07\xe0\x01\x30\xa6\x07\x5a\x04\xfb\x6f\xcf\xff\xba\x9b\xbc\x13\x88\x24\xf4\x82\xa6\x20\x72\xa8\xb0\x9e\x71\xb0\xb9\xf1\x00\xa4\x60\xaa\xa3\x8b\x3d\x65\xe3\x92\x4c\x3f\x86\x86\x10\xac\xdc\xc6\x72\xfd\x94\x4d\x6e\x63\x08\x08\x6f\xf8\xa2\xba\xc2\xdf\xd2\x0e\xe1\x81\x49\x34\x46\x8e\x97\xed\x55\x1b\x80\x62\x34\x9e\x26\xd1\xda\x89\x31\xdd\x2e\x43\xe6\x81\x49\x29\x7a\xa5\x76\xce\x3c\x88\x42\xcc\xc1\x94\xce\xb7\x9c\x74\x95\x4c\x38\x20\xdf\x62\xb9\x27\x13\x45\xd3\x71\x29\x13\x0f\xc3\x88\xe2\x9c\x39\xe1\x74\x5f\x2d\xd6\x28\xab\xe4\x28\x39\x79\x18\x26\x96\x67\x78\xbf\xfe\x7d\xf8\xc8\xed\xdf\xbd\x24\xe9\x4e\xb8\x04\xeb\xfa\x73\x52\xa5\xc1\xc3\x28\x09\x52\x07\xb9\x39\x68\xf8\x50\x65\x71\x38\xfa\x6c\x33\x0f\xa3\x54\xe1\x77\xad\x6f\x6c\x98\x57\x74\xd5\x3c\x8c\x0c\x89\x2c\x08\xf0\xa3\xdd\x3c\x87\x82\x3a\xdd\x48\x87\x71\x64\xd9\xa3\xf2\x52\xbd\x2f\x2e\xca\x1f\xc0\x3c\x8c\x8d\xd5\x57\xaf\x2c\xa0\x77\xec\xed\xb6\xcd\x7e\x7d\x89\xe2\x15\xee\xcb\x72\x55\x58\x7a\xf0\xbb\x4b\x21\x8e\x99\x42\xa6\xa1\xf1\xad\x48\x20\x70\x7b\x44\x4c\xad\xa8\xd0\x04\xf3\x4d\x89\x45\x13\x1c\x7c\xe4\x70\xb9\xff\xe6\xeb\xd2\xfd\x69\xca\xc3\x24\x08\x11\xb4\x5a\x1f\x07\xf4\x25\xb6\x96\xac\xde\x4d\x02\xd9\x3c\x4c\xc0\x9e\x45\xef\xba\x69\x77\x1d\x67\xba\xf9\x3b\x52\x13\xa0\xe9\xfb\x2a\x8e\x8e\xc7\x20\x9f\x90\x4a\xf2\x90\x27\x22\xf4\x51\x65\x47\xc4\x36\xfe\x5c\x5c\xb3\x68\x48\x5f\xb2\x29\x3f\x27\xc1\x79\x1e\xa6\x71\x82\x51\x94\xee\x50\x28\xb4\x63\x41\xf9\x02\xce\x3d\x34\x31\x78\x28\x42\x8e\x9c\xed\xef\x59\x9e\xaf\x8b\x97\xa2\xd3\x7f\xbd\x2f\x3d\x7b\x33\x0f\x45\x9a\xe8\x2e\x44\x6e\xf5\xb6\xa6\x41\x52\x1e\xca\x30\x45\xb4\x57\x7b\x5a\x78\x67\x19\x09\xeb\xa7\x67\x53\x28\x8d\xd5\xae\x69\xef\xb9\x7f\x9b\xba\xc0\x3c\xd4\x81\xad\x28\xad\xa1\xd9\x88\xea\xba\x02\x7b\x7c\xa8\x84\x3a\xe0\x18\x85\x6d\x8f\x7a\x51\xc1\x23\xb2\xa6\x5d\xba\x8b\x45\x29\x1e\x84\x0f\xe2\x28\xc5\xd0\xa9\xe3\xa1\x56\x01\x3e\xc7\x7f\x9f\xb3\x3f\x3f\x47\x7a\x3d\x3c\xd4\x10\x79\x9e\x81\x21\x92\xb6\x9e\x7d\x88\x2c\xef\x21\xa0\x6d\x47\x08\xfc\x92\x7a\x2f\xc1\x4c\x46\x05\x38\x63\x89\x05\x28\x96\xf9\xc7\x4d\xfa\x31\x1e\x82\xb6\xca\xf2\xdd\xb1\x58\x4d\x27\x9b\xe1\x21\x9a\x9f\xbd\x9b\x34\xd0\x15\x6b\x9b\xa5\xa1\x4e\x10\x61\x90\xc4\x98\x26\x55\x46\xdb\x78\x68\x8c\xe5\x93\x74\x66\xfe\x02\xcb\xb6\x3a\x9e\x13\x1e\x05\xa1\xb0\x95\x76\x76\x85\x3e\x96\x4e\x78\x20\x8c\xf8\x15\xff\xef\x2d\xab\x96\x92\x41\xe0\x88\x47\xa1\x08\xfd\x7e\xff\xbd\x6c\xcd\x08\xc7\x45\xea\xf5\x6e\x7c\x37\x65\x77\x95\x76\x13\x72\x92\xc2\xf5\x75\x5a\xc4\xcf\xa5\x28\x8a\x19\xfa\xdf\x8f\x42\x26\x61\xeb\x9e\x0e\xbf\x62\x14\x25\x02\x55\xb3\xb1\xc4\xd6\x13\x44\x03\xcc\xe4\xd8\x77\xe6\x51\x44\x35\xa6\xf7\xf7\x8b\x5f\xb0\x69\xf1\x28\xe2\x04\xc3\x3a\x9b\xaa\x3c\x41\xd5\x5c\x76\x83\x72\xdd\x5b\xd6\x72\xfb\x0b\x83\x1b\xb6\xc0\x72\xcb\xdd\x49\x54\x8d\x28\xea\x7d\x39\x17\xcd\x54\xb4\x9a\x47\x51\x0a\xd2\x55\x8a\xcf\xce\xcd\xdb\xfc\xb2\x28\xf5\x2f\x72\x48\x3c\x22\xa1\x66\xfd\xc4\xe9\x45\xa5\xfa\x4c\xf9\x64\xed\x45\x24\x52\xb1\xc3\xdb\x2f\xde\x5a\x03\xa0\x78\x9d\x1c\x58\x11\x89\x39\x11\x1d\x29\x3f\x4e\xfd\x59\x33\x29\xcf\xe0\x11\x61\x51\xea\xaa\x03\x56\x67\x0d\x3f\x77\xaa\xac\x60\x96\x7f\x61\xf9\x45\x89\x23\xd8\x3f\xa1\x27\xb6\xb5\xab\xa1\xf2\xdf\x89\x12\xe6\x73\x24\xf6\x18\xe8\xa6\x03\x4f\x02\x04\xe8\x3a\xce\xc2\x27\xa8\x6b\xf1\x0a\x4e\x26\x77\x34\x16\x5c\xc5\x78\x62\xd4\xea\x0d\xf4\x39\x47\x32\x91\xf1\xc7\x21\x37\xb9\xc3\x78\x94\xea\x10\xf9\x23\xac\x80\x34\xd6\x4e\xbb\xfa\xb3\x4e\xd1\x90\x47\x82\x30\xc7\x4f\x8f\x70\x88\x39\x34\x9f\x00\xc5\x53\x56\x34\xdd\xb3\x0a\x46\x10\xdd\xf2\x9a\x7d\xc0\x13\x2c\xee\x36\x93\x21\x13\x32\x42\x88\xd3\x66\xbb\xfa\x3e\xdb\x3b\x1d\xf7\x81\x6b\xcc\x23\x19\xa9\xd8\x55\x07\x9a\xac\x3a\xce\x2f\xd3\xe9\xe8\xfb\x19\x23\x9c\xeb\x71\x38\x42\xf5\x9e\xc3\x01\xc5\x81\x27\x37\x54\x41\x8a\x7c\x9e\x9b\x0a\x6a\xa4\x32\x5a\x2c\xd7\xfe\x56\x2a\x8a\x9d\x43\xdb\x4e\xcc\xfb\xaa\x3c\xf6\x4a\x7b\xbe\x4b\x12\x20\x9e\x20\x2f\x5f\x27\x17\xd6\xc0\xbc\x76\x2b\x58\x22\x9b\x49\x07\x20\x02\x63\xb2\xed\xa6\xd2\x9c\xaf\xa5\x60\xff\x0e\x60\x92\x47\xa0\x62\x8c\x33\x3e\x97\xd5\xd1\x3f\x14\x68\x15\x4a\x44\xd4\xed\x86\x2c\x3e\xe3\xd9\x66\x62\x5b\xa0\x5d\xbf\x89\x1b\x7c\xb7\x3c\x32\x4c\xd8\x9c\x6f\xbb\xd5\xba\x93\x7b\xf9\x33\xbb\x22\x76\x9c\x3c\x8f\x91\x31\x56\x16\x64\xaa\xec\x89\xe7\x27\xab\xc7\x80\xc5\xc5\x6e\x1e\x67\x7f\x2c\xb7\x87\xa7\xe5\x7e\x76\x37\xdb\x3b\x2f\x98\xc7\x01\x25\x6a\x78\x5c\xe3\x04\x7a\xcb\x4e\xe3\xab\xc4\x81\x8a\xa3\x3e\x8b\xf0\x95\xd0\x12\x8f\x03\x4d\x78\x8a\xb8\x8d\xeb\x77\xb8\x91\x25\x71\xbf\x0a\x39\x45\x86\xaa\x6f\x65\x75\x29\xcf\xc3\x1d\x33\x0e\x05\xe0\x90\xb7\x2e\x99\x2e\x8f\x98\xa5\xcf\xca\xe2\x1e\x60\x55\xdc\xb7\x7e\xe9\xa5\xeb\x09\x29\x8d\xbc\x34\x8c\xb4\xa4\x37\x5d\x93\x75\x0c\x1d\xa9\xfa\x18\xae\x7d\xf3\x53\xc7\xa1\xb1\x51\x13\xb7\x93\x9d\x4e\x5f\x11\x37\xf6\xf6\x5a\x1c\x07\x14\xa7\xc2\x76\xb9\x5b\x3e\x3e\xae\x9e\x1f\x0e\x8f\xeb\xc5\xef\x2f\x9b\xc3\x66\xb9\x5d\xad\xbd\xa7\x1b\xc7\xb1\x85\x23\xcf\x2a\x71\xf4\x6a\x53\x3c\x8e\xd3\x20\x48\xbc\xc5\xac\xf5\x74\x2f\x8e\x63\x93\x22\x0a\x7b\xbd\x5b\x8e\x06\x88\x84\x56\x04\x75\x0e\x7f\x0a\xc7\x0e\x36\xda\x87\x62\xc2\x22\x84\x69\x49\x68\xea\x67\xaf\x11\xcc\x63\xa2\x25\xf1\x3a\x6f\x3d\xd6\xd3\xaa\xdf\x75\x7d\x20\x0a\x9d\xe1\xf3\x20\x8e\xb0\xa9\x06\x46\xee\x64\xbc\x92\xd0\xaa\x54\x7c\x3a\x5d\x8e\x2e\x35\xc5\xe3\x84\x08\x1e\xb9\xe8\xfc\xac\x82\x42\x0c\x2c\x85\x38\x11\x94\x7b\xb7\xde\xe5\x15\x7d\x0b\x48\x1c\xcd\x67\xf8\xfc\x0a\x19\x7d\x6b\x06\xd2\x28\x45\x28\xd8\x72\xfe\xe8\x27\xcb\xaf\x8e\xd0\x98\xd1\x10\x1c\x54\x70\x3e\x7b\x89\xae\xb0\x8d\xb7\x5f\x97\x01\x43\x4c\x94\xc4\x63\x73\xa6\x27\xa6\x74\xcc\xa5\xad\xa7\x6b\x37\x44\xe1\xb9\xa0\x0f\x80\x44\x59\x5f\xd8\x8d\x31\x07\x11\x0a\x2f\xb9\x8c\xfa\x82\x4f\xe2\xe7\x3f\xce\x47\xef\x0f\xc5\xdc\x50\x2c\x7e\xb2\x54\x09\x98\xe1\x87\x6b\xd5\x4d\xd7\x39\x8d\xe2\xa0\x57\xda\xb1\xc9\x8f\x27\x31\xd9\x38\xe3\x94\x04\xcc\x5b\xd2\xa2\x01\x0c\x07\x5c\x69\x25\xb5\xdd\x08\x2e\xa0\xc7\xf2\x75\xf9\xfa\x8a\x9a\x5f\x75\xf6\x65\x7a\x9e\xc7\x29\xe5\x14\x05\xc2\xf7\xbb\xfd\x72\xb7\x67\xfe\x0d\x52\xad\x2c\xb5\xab\x38\xd7\xf0\xa3\xb5\xe8\x27\xbf\x03\x89\x43\xe0\xf1\x84\x57\xfb\xdf\xed\x91\x13\x44\xf1\x4e\xdd\xd7\x43\x7c\x86\x44\x14\x3c\x16\xcc\xd2\x0c\x08\xad\xef\x32\x05\xdb\xf2\x0b\xcc\x31\x8f\x65\xa2\xb1\xb8\x0b\x94\x7f\x6a\x45\xcc\x20\x59\xb9\xc8\x2a\x44\x32\xf6\x31\xb3\x58\x51\x83\x11\x9b\xa7\xd5\x6c\x20\x6d\xc6\x63\x05\x41\xa2\xc7\x7c\xbf\x83\xf2\xd6\xe9\x56\x1d\xeb\x80\xa3\xb9\xd5\x13\x4f\xf1\x58\x87\x96\x58\x47\x9e\x2f\xbb\x77\x68\xd4\xdb\x64\xc4\x34\x4d\xd1\x15\xca\x8a\x66\xa2\x33\xc5\x63\x9d\x52\x9c\xa4\xab\xa2\x3e\x57\xed\x04\xb4\xb9\x48\xd7\x0a\xb1\xc1\x2a\xcb\x1d\xca\xd1\xfc\x2f\xa8\x66\x5a\x87\xcd\x63\x48\x18\xfa\xe7\x4a\xbc\x42\xb7\x30\x21\x15\x28\x03\x82\x65\x94\xa7\x81\x82\x0b\x8f\xa1\x1d\x3c\x1f\x3c\xd4\x56\x95\x60\xf2\x92\x46\x69\x10\xbf\xc0\xc1\x8c\x3f\x2d\x09\x62\xee\x4b\xe9\x9f\xb2\x22\x3b\x9e\x8f\x43\xba\xe6\xdf\x7c\x2f\x66\xc1\x80\x18\xfd\xba\xb7\xa0\x89\x49\x31\xd0\xe4\xb2\xdc\x6a\x24\xb6\x7d\xb3\xe2\xf5\xb0\xb3\x91\xc4\x83\x12\xf5\x9b\x14\xea\x1d\xab\xc6\x0e\x75\x2f\xee\xc9\x49\x9c\xd8\x02\x1e\xab\xd3\x7f\x38\x89\xcb\xc0\xed\x22\xb1\x0c\x11\x42\x59\x67\xc5\x6b\xde\x95\x13\x76\xad\x9a\x80\x4b\x75\xf9\x38\xb1\xc7\xe5\x5e\x9f\x23\x24\xd6\x02\x63\x8d\x58\x8c\xbd\xff\x2c\xfb\x4d\x91\xc4\x20\x48\xaf\x86\x84\xdc\xf8\x36\x43\x3d\xeb\x8a\x57\xc6\x13\x84\x10\x91\x1a\xd2\x7b\x4d\x03\x41\x8b\x2b\xec\xf5\xed\xa1\x4a\x82\x10\x37\xd4\x53\x55\xd6\x27\x70\xd5\xa2\x23\x48\x0a\x27\x09\x25\xe8\xef\x6d\x1f\x86\xf3\x9f\x24\x9c\x22\x82\xb8\x80\xcf\xa1\xf6\x87\x6b\xa5\x29\xc5\x8a\xa6\x3a\x1f\xd0\xe9\x7e\x21\x5e\xcc\x09\x93\x21\x6e\x29\xab\xe7\xd9\xf0\xfc\x23\x3c\x48\xc3\x6e\xed\x8f\x59\x76\x6f\xee\x4d\x84\x47\x0a\x4b\x20\x36\xe2\xd2\x1a\x4c\xdd\x75\xb4\xe5\xa6\xf6\x68\x48\xcb\x04\xeb\x1a\xd3\x80\x69\xd6\x69\x51\x1c\xda\x19\x32\x8d\x65\x91\x54\x28\x64\x33\x2f\x3f\xa0\xaa\x32\x0d\x08\xb8\x19\x7c\x55\x11\x00\xb2\x82\xcc\x77\x3f\x16\x58\x0b\xe0\x37\x12\xb0\xa2\xce\xfe\x5e\x82\x26\x98\xee\xf1\x71\xfe\xbb\xf2\xb3\x4b\xd6\xf8\x2e\x3a\x40\xd8\xad\xa3\xc3\x69\x37\xd2\x31\xaa\xf9\xaf\xfe\x3d\x0f\x64\x12\x39\x11\x86\x61\x4c\x33\xab\xf1\x49\x56\x1a\x01\x24\xeb\xca\xe1\xd1\x6f\x23\xea\x38\x91\x91\x49\x1c\x0f\xd7\x7f\xce\x22\xb7\x79\x4d\xdf\x46\x23\xe2\x1c\xd3\x76\x67\x19\x44\x39\x88\x4c\x6d\x4e\x7e\x40\x12\xde\x35\x29\x19\x86\x83\x65\xb2\x75\x1a\x19\x57\x27\xa6\x77\x1f\x89\x82\x90\xba\xd3\x7b\x59\x58\xc9\xf7\x70\xb2\x00\xb4\x92\xe8\x23\x2f\xee\x47\xf3\x46\x6b\x83\x21\xb8\x5c\x38\x1f\x7d\xd5\x3d\x86\x89\x03\xac\x2a\x3c\x64\xb5\x43\xa4\xcf\xcf\x97\xac\x98\x5c\xd7\x90\x28\x90\x5d\x39\xba\x2e\x8f\x4e\xa4\xe2\xf6\x60\x19\x05\x89\xcd\x1f\xf4\xb0\x0b\x9e\x04\x22\x8c\x1d\xf0\xfa\x90\x97\x35\x1c\x54\x09\xa6\xee\x5b\x19\x0a\x62\x1f\x84\xd6\x43\x4e\xcd\xf1\x02\x4d\x02\xc9\x30\x4c\x88\x93\xff\x8f\xdd\x10\x38\xc4\x93\x30\x08\x11\x30\x62\x05\x1d\x92\xe0\x10\x06\x41\xd7\x96\x28\xa3\x7a\x90\xb5\xd5\x9a\xbc\xf4\xad\x80\x86\x25\xe6\xe6\x65\x0e\xd3\xb0\x59\x12\x52\x45\x31\x80\x52\x95\xe7\xd3\xa6\xcc\x33\x75\x59\x15\x75\xd3\x57\x1b\xf0\x24\x14\x84\x58\x05\xc6\x63\x37\x01\x92\x88\x44\xf8\xd2\x77\x90\x43\x03\xab\x63\x6b\x70\x8e\x06\x2b\x89\x64\x8a\x5c\x86\x87\xf3\x20\x2d\xec\xda\xe2\x98\xc4\xee\x20\xc7\x7c\xcd\xec\xee\x26\x8e\x96\x27\x31\x95\xc8\xd7\x70\x12\x55\x93\xa9\xec\x84\x5a\xe2\x5f\x74\xe5\x14\xcd\x92\xd6\xac\x3a\x9f\x6e\xca\xf2\xf0\x24\x06\x40\x6e\xca\x4a\x34\xf0\xb2\xf3\xd6\x7c\x42\x22\x93\x74\x7a\x7f\x27\xb1\x28\xab\x71\xd5\x2f\x4f\x08\x97\x78\xe2\xfd\xe7\x2c\xaa\x06\x2a\x2b\x30\xd5\xb5\x59\x62\x29\xef\x7e\xfd\xda\xe1\x4b\x88\x66\xc8\xd1\xdb\x41\xb6\xbd\x8b\x7c\xdb\xa7\x71\xbf\xa2\x9a\x06\x49\xb7\x7b\x8d\xc1\xff\x3c\x61\x81\x44\xc7\xfb\x50\xc0\xe7\x12\x15\xf0\xc6\xbf\x66\x2c\x94\x1d\xd8\x19\x9c\x3c\xf6\x17\x53\x91\xa5\x02\xa7\x22\xd2\x5a\x9c\xa0\x52\x96\xfa\xc8\xdf\x8a\xf3\x24\xb5\x1b\xcd\xee\x7c\x82\x6a\x5a\x16\x3c\xb9\x58\x1a\x24\x42\xb9\x8b\x21\x98\x3c\x6b\xac\x18\xe7\xe8\xf1\x44\x64\x89\xac\x6b\x68\xf6\xcb\x9f\xe3\x3d\x39\x11\xb1\x35\x36\xac\xc4\x3b\x66\xd9\xd6\x66\x29\xaa\xfc\xe2\x0b\xa9\xea\x1e\xbd\xe2\x7f\x03\x46\x7a\xfe\x86\x79\xd6\xd4\x3b\x40\x2d\x08\x4c\xa5\xae\xd7\x73\xdf\x4d\x46\x56\x5c\xb4\x02\xd5\xee\xf8\x6d\x17\xd0\x8f\xbd\xe5\x96\x28\x2a\x11\x60\x71\xa8\x85\x81\x07\x51\x5f\xc7\x7f\x7c\x47\x19\xf4\x40\xed\xa8\xfb\xb9\x8e\x71\x9b\x6c\x0d\x91\xd6\xd2\x1a\xa5\x23\x12\x9d\x2a\xc5\x7c\x04\xfc\x23\xfb\x80\xab\xf8\x77\xa2\x85\x40\x19\x29\x67\x7a\x36\x97\xa9\x80\x95\xeb\x07\xc4\x32\x2c\xe1\xec\x58\xd5\xf5\x19\xf4\xa6\x82\x1d\x86\x95\x3a\x35\x64\x9e\x80\x21\xf8\x3a\x56\xbd\xc7\x2e\xf7\x0e\x35\x3a\x30\xb8\x27\x09\xb3\xc4\x04\x29\x86\xd2\xee\xcb\x9f\x99\x2a\x37\x03\xe2\xfa\xdb\x16\x5f\x62\x62\x89\x15\xf6\x4e\x63\x7d\xa5\xca\x3b\x10\x3a\xef\x2a\xda\x79\x62\xb8\x88\xad\x7e\xe7\x3e\x13\xa3\x30\x39\x0d\x92\x28\x76\x81\xa8\x67\xf8\xdc\x83\x38\x6e\x4a\xeb\xa9\xf8\xd2\x02\x47\x4c\x39\xa8\x9a\x74\xa4\x66\x9c\x06\xc2\x42\x15\xbb\xea\xb9\x51\xed\x14\xa7\x01\x50\x0c\x44\xfa\x88\xfe\x2f\x83\x45\x34\x4c\x74\xe4\xf5\x40\xb2\x72\x12\x96\xf5\x7d\x74\x84\x61\xde\xa7\xd5\x76\xe1\xef\x12\x71\x5b\x48\xaf\xcb\x01\x17\x79\xdd\xb5\x6a\xc6\x03\x1f\x0c\x1d\xcf\x76\x1a\x19\x6a\xac\xa0\xef\xe9\x50\x9c\xab\xb3\xff\x4d\x1c\x25\x58\xe2\x3c\x9f\xed\xc6\xf1\x3d\x1a\x27\x80\xbe\x4e\x79\x82\x62\x07\x96\x9c\xc7\x35\x91\x90\xa3\x5f\x7c\x38\x55\x36\x59\x2c\x72\x18\x6a\x1a\x8e\x0a\x33\x26\xaf\x4e\xa4\xc2\x53\x79\xc0\xfe\x9a\x5c\x93\xad\x70\x4a\x94\xad\xd7\xed\x55\x69\x6f\x50\xf9\x73\x4a\x80\x45\xce\x99\xee\xd2\x1d\x5e\x30\xe9\x8a\x6b\x9a\xd3\x24\xd4\x78\xd4\x6e\x2a\x18\xec\x73\x94\x07\x34\x74\xc4\x5b\xab\xc5\x7a\xf9\xd3\x57\xc0\x4d\x10\x47\x9c\x72\xae\xb5\x87\x80\x8a\xca\x72\x78\xd9\x6c\x7f\x07\xa0\x1b\xff\x20\x95\x21\x9a\xa0\x1a\x54\x2e\x2a\xf8\x9e\xa1\x66\xf3\xed\x59\x91\xca\x18\x85\xdb\xbc\x7a\x65\x0f\xe9\xe2\x54\xc4\x89\x55\xe3\x41\xe0\x69\x6b\xcb\xd4\x7d\x13\x20\x31\xe8\xd3\xe5\x41\x94\xaf\x67\x51\xf4\x2d\xd4\x6a\x57\xd4\xd0\x78\x2a\x71\xdc\x48\xee\x44\x03\xa8\x88\x7d\x33\xc6\x4c\x85\x34\x28\x08\x7c\x14\x59\x81\x4c\x04\xad\x3b\x41\xba\x8b\x02\xc7\x3d\xdf\xf2\x10\x22\x27\xb2\x27\xa0\xe2\x54\x06\x14\x79\x78\xe4\xb9\x2a\xa0\x1a\x40\x95\x38\x95\x89\x95\x3d\xb9\x9b\x3d\xef\x76\x65\xde\xbd\x99\x6a\xbd\xa7\xff\xf7\xff\xfb\x7f\x0f\xe5\x87\xda\x83\x7a\x2b\x32\x25\xf2\x87\x76\xfb\xed\x7a\x70\x40\x74\x94\xc4\xe8\x2d\x52\x28\x3e\xc3\xe7\xa6\x6c\xa0\x68\x32\x04\xd9\x16\xfd\xa7\x54\x4a\x93\xb0\x83\xee\x4c\x44\x91\x39\x6d\xb7\xce\xf6\x03\x16\x25\x0a\xfd\xdc\x08\xbc\xbb\x8e\x5a\x50\xd0\xde\x6d\x44\xb8\xef\xbc\x37\xc4\xa9\x96\x21\xd6\x6e\x9b\xb2\x42\xe2\xf5\xac\x79\xdb\xc2\x07\x54\xd7\x98\xa9\xc1\x6e\x4e\x81\xa7\x88\xef\x7f\x13\xf5\x53\x56\x38\x39\xc0\xf5\xaf\x45\xb5\x39\x0b\x22\x83\x1c\xe1\x4a\xe4\x0a\x83\x3a\x93\x90\xd5\xa4\x37\x27\xa9\xd3\xc5\x9f\x8b\xe2\x1d\xaa\x4d\x95\x15\xad\x89\x93\x0f\xf1\x1e\x2c\x54\x0a\xa1\xe6\x07\xd5\x6d\x7c\x5d\x13\x58\xb5\xab\xbb\x73\xa3\xde\x3c\x29\xe7\x2f\x83\x2c\x2c\x0a\x05\x9a\xf4\x16\x81\xde\x9c\x2b\xc7\x5c\x72\xfb\x85\xa2\xd0\xe0\x6a\x2b\x66\xb9\xa8\x8e\x7e\x4c\x59\x94\x10\xb4\x00\x1e\x16\xb3\xb0\xfb\x9b\x04\x64\x16\xa9\x8b\xee\x2f\x2a\xd5\x96\x7d\x65\x90\x35\xbe\x39\x12\x71\x64\xb9\x9e\x5f\xcb\x52\x3f\x9e\xaf\xe9\xd0\x7c\x37\x26\xf1\x16\x05\xfc\x6c\x2c\x6f\xda\x20\x06\xc9\xe2\x94\xa0\xbf\x7d\x57\x16\xa2\x81\xa1\x71\xc4\x62\xcd\x2c\xaf\x71\x97\xe7\xdc\x57\x67\x34\xff\xc6\x37\x20\x91\xdd\xc9\xde\xb2\x8f\x76\xaf\xe8\xed\x43\x46\x78\x64\xbf\xac\x25\xf3\x45\xd2\xba\x49\x86\x8b\x25\xca\x52\x1c\x78\xa1\x36\x0c\x7f\x39\x55\xe0\xb1\x51\xc7\xfd\x07\xa4\x61\x10\x2a\x5f\x03\x87\x56\x77\x53\xdf\xa4\x59\xe1\x8c\x46\x49\xd0\x4b\xac\x2d\xf2\xb2\x80\x7a\x55\xfc\xc8\xf2\x49\x94\x8f\x51\x03\xb8\x8f\x09\xbf\xc9\x7e\x13\x1f\x1f\x53\x4a\x46\xce\x58\x9a\x44\x8e\x0f\x64\x52\x56\x36\x98\x60\x9c\x51\x95\x8c\xd2\x39\x88\xd8\x9a\xdc\x91\xf3\x98\xdb\x78\xe0\x65\x07\xd5\xc7\x34\x1c\xd4\x57\xf2\x9c\x7b\x2a\xd2\x5f\xff\xe3\x2f\x9c\xda\x57\x71\x92\xf3\x2f\x45\x86\x72\xd5\x5f\xb0\x90\x72\xc6\x8d\x42\xb4\xd1\xd1\x92\x0a\x96\x85\x87\xd5\xbb\x76\x21\x38\x46\x32\x0e\x58\x5a\x75\xb9\x46\x91\xb7\x5d\xec\x54\xdc\x21\x9b\xc6\xc4\xfb\x67\x42\x0a\x34\x4c\x4e\xb9\x50\x7f\xa9\xe9\xe2\x7e\xa3\x18\x53\xce\x98\xf9\x9e\x55\x8d\x63\x84\x2e\x20\x1f\x07\x52\x98\x66\xd6\xa1\x12\x5a\x2f\xc4\xe9\xbe\x82\xdb\x69\x7d\x06\x8c\x60\xc0\xe5\x5b\x79\x6e\xba\x83\x9e\x81\x50\x6c\x4c\xd5\xfe\x11\x26\xbe\xd1\xc4\x21\xea\x7d\x1c\x6d\x7c\x31\x5b\x2d\xd6\xbf\x72\x35\x98\x21\x44\xba\xd2\xcc\x1f\x20\xdb\x5d\x79\x14\x50\x64\xc6\x48\x4b\x8d\x2a\x8e\xb0\xd2\x8b\xa2\xf1\x2b\x8d\x07\x41\xa8\x6d\x9c\x0a\x8d\x91\x0e\x1a\xcb\x79\x10\x52\x5f\x1f\x80\x7b\xb4\x5d\xa6\x3f\x96\x2b\xc4\x70\xf9\x4e\x34\x21\xbd\xb5\xf5\x28\x8a\xd7\x33\x9e\x9f\xa3\x11\xe0\x81\x49\x31\x74\xd9\xee\x61\x4f\xe2\xa7\xff\x71\x18\xaa\x98\x0e\x18\xc1\x9f\xe1\x73\x12\x3e\x74\x1d\xa3\x90\x63\x2c\x0c\x83\x4d\x9b\x37\x28\x8b\xec\xe7\xb4\x4b\x1c\x23\x4b\xc0\x21\xab\x1f\xb3\xfa\x2b\x19\x3b\xce\xe3\x38\xb5\xfc\xed\xf3\xf5\xe6\x9a\xa5\xbc\x6d\x07\x2b\x65\x56\x95\x52\xc8\x2c\xb7\xf5\xde\xa3\xd1\xc6\xac\x8b\x33\x8c\x7c\xd1\x44\x7d\x8b\x19\x85\xf3\x98\x85\x8e\x6f\xda\x12\xdc\xb4\xd3\x13\x74\xf8\x87\x1f\x81\x58\x1b\x99\x8c\xf6\xb9\x01\x87\x10\xe7\x24\xb0\x92\xb4\xfb\xf2\x84\xa1\xdd\x11\xb3\xe1\x57\x25\x9b\x9c\x13\x6e\xc5\x09\xf1\xa3\xe8\x95\xae\xe7\x97\x5b\xaf\x4a\x20\x41\xbb\xfa\x35\xfb\x80\x85\x70\x55\x7c\xc9\x64\xbc\x12\x16\x63\x0d\x3c\xc2\xea\xb2\xba\x19\x96\x32\x70\x9e\x80\x30\x51\x8f\x99\xb4\x8b\x77\xb0\xc7\x73\x1a\x30\x14\x2b\x40\x06\x91\xd6\x04\x8e\xba\x16\x92\x7a\x42\xd2\x47\x51\x37\x23\x4b\x83\x53\x6e\xcb\xde\xec\xee\x3d\xa9\x61\xe5\x9c\x2a\x69\x51\xdb\x20\x74\x37\x15\x29\xa4\x92\x76\x0e\xf3\x16\xf2\xeb\xca\x06\xce\x39\xb3\x0a\x85\xfb\x4e\x09\xea\x06\x7b\xf5\x57\xe9\x69\x77\x8d\x34\x51\x38\x24\xb5\x7a\x83\xa3\xf0\xb7\x4f\x29\xe0\xa0\xa3\x8a\x78\x76\xec\xfe\xcc\x52\x92\xd8\x95\xdc\xfd\x49\xd8\x02\x8d\x7f\x6c\x0e\x75\x97\x18\xe4\x22\xa0\xcc\x0c\x16\xc3\xb7\xb2\x81\x7c\xb4\x8a\xb9\x60\x24\x92\x5d\xa1\x3b\x5a\xaa\x37\x3c\xc0\x2b\xa3\x80\xcb\x80\x61\xfe\xbf\x35\x0d\x87\x6e\x1b\x97\xa1\x89\x87\xd3\x93\x4e\x26\xba\x34\x61\x22\xba\x21\x7d\xcc\xfe\x73\xce\x74\xd6\xfc\xff\x39\xfb\x97\xe6\xc6\x71\x2c\x7f\x18\xfe\x2e\xff\x55\x2d\x7a\xc1\x3b\x81\x77\x27\xc9\x72\xa6\xba\x6c\x4b\x2d\x29\x33\xab\xba\xa3\x43\x71\x00\x1c\xd8\x2c\x4b\xa4\x86\xa4\xd2\xd6\x7c\xfa\x37\x78\x00\xf0\x26\xda\x59\xf3\x44\x4c\x74\x4e\x99\x10\x45\x91\x20\x70\x2e\xbf\xcb\x87\x19\xd8\xf8\x6b\x35\x86\x6d\x89\xe6\x92\xd7\x83\xd0\x9a\x49\xc9\x52\x69\xa3\xf7\x26\xc9\x9c\xac\xfe\x30\xa9\x59\x60\x01\xa4\xdf\x31\x57\x45\x69\xf9\xac\x1f\xf6\x91\x3f\xfc\xb7\x5b\xe0\x99\x0a\x3c\x23\xea\x48\x80\xbc\xce\x91\x7b\x3c\x2c\x49\xa9\x17\xad\x6e\x36\x1d\x86\x9e\xf0\x78\x0b\x5a\xa5\x99\x44\x51\x59\x4f\x54\x8e\x31\xe4\x9a\xb2\xcc\x4f\x3c\x9b\x18\x43\x65\xde\xa0\xd3\x24\x1c\x97\x7b\x5e\x4c\xe0\x2c\xdb\xd8\x37\xc1\xb0\xc6\x12\x3b\x8f\xdb\x76\xa4\x49\x9f\x9e\x0b\x35\xac\x34\x70\x2f\x4c\x29\x1e\xdd\x5f\x4a\xdc\x97\x08\xd5\xa5\x44\x12\xb4\x68\x07\xa4\x11\xa1\x46\xb3\x6a\x51\x1c\x8f\x28\xfb\x1b\xb1\x35\x68\x30\xff\xb8\xf1\x68\x2c\x46\x8b\x12\xe4\xb1\x27\x6e\x6b\x0f\xfb\x9e\x4f\x95\x74\x1b\xdf\x52\x5a\x84\xd3\x4e\x2b\xcd\xe0\xc0\x08\xa7\x3a\xcc\x8f\x29\x17\xdd\x93\x1f\xe0\xe4\x73\xe1\x01\x22\xd5\xd5\xaa\x8b\xb8\xc3\x9f\xfb\x37\xb7\x02\xf0\x48\xf1\xd8\xd9\x94\xa3\xb2\x65\x74\x53\x7d\xf8\x9b\x80\x93\x7f\x8c\xda\xd0\xf6\xc4\x71\x14\x26\xb6\x79\x66\x8b\x10\x1b\x28\xe1\x84\x75\x4f\xda\xe2\x6f\x4c\x3c\x1e\x27\x90\xa4\x3d\xfd\xd2\xcf\x5b\x26\x3c\x89\xbd\x10\xdc\x0b\x94\xeb\xec\x79\x04\x4a\x77\xc3\x12\xe6\xb9\x82\x9d\xa5\x9c\x51\x30\x6d\xb7\xa4\xdd\x4b\x71\x39\xaa\x39\xfe\xbb\xd5\x40\x65\x3c\x8d\x25\xed\x60\xff\x86\xbc\xee\x29\x20\x31\x9e\x26\x21\xb1\x33\xb6\xc5\x6b\x7f\xa5\xe0\x29\x18\xfa\x74\x7e\x39\x2d\x4f\xe7\xfa\x4a\x65\xb9\xf6\x65\xe6\xa9\x34\xa0\xcf\x26\x98\xa1\x8a\x45\xb7\x05\xf0\x14\x85\x90\xae\xbf\x6e\x02\x6d\x45\x95\x8c\x96\x7c\x66\x07\x32\x3f\x65\x9d\xbe\xc4\xf9\x98\xdd\x6e\xa8\x9c\x45\x86\x3b\x7d\x68\x85\x6d\x6c\x7b\xf2\xdc\x83\x2c\x72\x86\xc6\x04\x2c\xcb\x65\x93\xc7\xfe\x1c\x28\x19\x76\x26\x37\x8c\x33\xcd\xa8\xc1\xbe\xac\x24\x9c\xfb\xd5\xf6\xd1\x04\xe0\x31\x67\xcd\x2c\x9d\xcd\x67\x8e\x19\xc1\xb9\x48\x08\x09\x76\xff\xae\xfa\x77\x90\x23\xa7\xae\x0e\xe4\x79\xf6\x92\x91\xe2\x20\xf9\xd6\x4d\x47\x6e\x1c\xbc\x38\x14\x4e\xfd\x90\x62\x9f\x7b\xc4\xc7\x42\x91\x1d\xfa\x2f\xd0\x32\x1c\x62\x9f\xc8\x1b\xdb\x2f\x1b\xf7\xf5\x90\xa6\xc2\x6f\x97\xec\xd6\xe0\x77\x20\xce\x68\x87\x0a\x34\x65\xe1\xaa\xd0\xb5\x6c\xe1\xdf\x5c\x82\x67\x11\x61\x3f\x11\x8e\x8f\x63\x65\xa4\xde\x5b\x62\x3f\x80\x91\xa2\x5f\x4c\x2e\x97\xd9\xf1\xf5\x83\x37\x1d\x93\x98\x50\x2d\x8b\xc7\xbb\x91\xcc\x1b\xe3\x08\xc6\x20\xe1\x50\x52\xef\x7a\x69\x9c\x72\xa7\xef\x18\x02\x12\xa7\xa0\x99\xee\xbd\xfa\x08\xd7\x01\x24\x16\xae\xef\xaa\x4c\xa3\x12\x15\xd7\x21\x0b\x6d\xb4\x6a\x6f\xf6\xe2\x85\x90\x5f\x04\x3d\x9d\x5f\x97\x79\x9d\xd5\xd7\x95\x1a\x7f\x2c\x35\xbe\x2d\x8f\xb3\xfd\xe2\xeb\x72\x77\xd8\x2c\xb7\x87\xed\xba\x65\x7f\x36\x03\x24\x59\xd6\x99\xbe\xc9\x5d\x09\x6f\x53\x34\x15\xae\x15\xd0\x9b\x60\x74\x54\xed\xbe\xf1\x79\x35\x1e\x3c\x2e\x95\xd5\x59\xab\x8f\x64\xe3\xe2\x80\xb2\xfd\xc4\x0b\x3c\xa9\xd0\xb2\x0b\xbe\x55\x58\x1a\xca\xa7\xf1\x69\xfe\xe0\x3e\x82\x9f\x1a\x49\xd5\x07\x84\xe7\xcb\xb4\xb2\x19\x83\xc0\x26\x01\x1b\x53\x8d\x6c\x26\x7a\x5f\x4f\x91\x41\x18\xf8\x78\x23\x13\xb8\x98\x90\xe0\x71\xe3\x23\x41\x54\x1d\xab\x6e\xf5\xc1\xd7\x86\xb1\x20\x5e\xf4\x09\xde\x9b\x97\xbb\x6f\x90\xd2\x7e\x31\x87\x04\x5d\xcf\xa3\x7e\x2b\xf6\xe5\x85\x3a\xba\x65\xfd\x54\x58\x78\x68\x3b\x54\x22\x0b\xac\x3a\x6c\x3d\xac\xb7\x42\xe4\x09\x42\x8d\xdb\x3e\xfd\x0e\xeb\x8e\xbd\x64\x7a\xd1\xd3\xf0\x79\xf7\xf1\x24\x26\xe5\x83\xaf\x50\xbd\xe4\x05\x29\xb2\xf4\x16\x03\x88\xd2\x80\xa0\xfd\xdf\xf3\xec\xdd\xe2\x9c\xdb\x43\x52\x52\x99\xcb\x15\x61\x37\xc5\x88\xef\xce\x20\xc2\xc4\x6b\xa9\xfe\x19\xaa\xdf\xff\x5c\x74\xd8\xde\xe1\x6d\x8d\x43\xce\xa1\x9d\x26\xcb\x56\x5e\x7a\x3c\x2c\x31\xd9\x4d\xab\x4b\xbf\x85\xb7\x9b\x53\x01\x53\xaa\x8b\x6d\xe4\x0b\x56\x16\x67\x6b\x07\x24\xbe\xc1\x5a\x97\xa6\x4d\x3c\x69\xe0\xf5\x8f\x89\x8e\x0b\x24\x32\xe6\xb1\x81\xb5\x1a\xfe\xdb\xc8\x17\x84\x41\xa2\x25\x11\x79\x2c\xf0\x75\x75\x3a\x63\xa9\xad\x34\xd9\xf9\xb6\x04\x0c\x69\x9a\x12\x82\x91\xfc\x7c\x4c\xd1\x8f\xe2\xef\x1c\x8e\xcd\x5b\x48\xee\x13\x76\x28\xd3\x2a\x71\x12\xbf\xee\x6f\x9c\xa7\x81\xb9\x6b\x4d\xd4\x63\x52\x90\xc0\x6b\x8f\x4a\x03\xc7\x7f\x2e\x8e\x99\xcb\x59\x01\x3c\x20\xc7\x47\xf3\xaa\x8b\x41\xa7\x02\x80\x85\xe4\xfb\xb3\xff\xba\x5d\xee\xbe\xae\x1f\xee\x82\xf6\x88\x10\xb6\xee\xfb\x8a\xfb\x7f\x8e\x6f\xb9\xf0\x02\x23\xaf\x5d\x6d\x51\x77\xd4\x82\xd1\xa0\x34\xa2\x8e\x27\xf9\x48\xef\x47\x8d\x4b\x37\x46\x70\x2a\xc1\xbe\x40\x45\x5e\xee\xeb\xdc\x29\x05\x39\xe0\x15\x1b\xad\x2f\xc2\x0a\xaf\xd3\x6a\x0a\xb9\x7a\xcb\xe4\xcb\x30\x22\x1e\x8e\x97\x49\x9c\x7a\x6d\x53\x73\x5e\x5c\x9e\x5f\xea\x55\x4e\xbd\x3d\x91\xb5\xe0\x43\x50\x09\xa7\x07\xf9\x95\x7a\x01\xfd\x50\x02\x94\x30\xd0\x43\x6c\x3e\x63\xd4\xab\xcc\x92\x32\xe2\x82\x32\x50\xd2\x38\x28\xab\x62\x03\x65\x9d\x63\x69\x77\xd2\xe1\x6f\x46\x65\xa2\x24\x51\xcb\x6a\x53\x94\xcd\x2c\xa1\x7a\x85\x3b\x8b\x0e\x62\xaa\x11\xae\xaa\x55\x5b\xb3\xcb\xf2\xe2\xdc\xee\x3e\xa0\xe3\x84\x04\x0f\x0f\xba\x49\x71\xdb\x79\xae\x39\x26\xb6\xc5\x39\x53\x3f\x3f\x43\x33\x0a\x8f\x27\x42\x38\x05\x51\xab\xa9\xfb\x41\x3c\xf8\x9f\xff\xfe\xa3\xd5\x7f\x66\xff\xf1\x03\xf6\x5f\x77\x0e\xe9\x39\x35\x38\xf7\x74\x77\x35\xb8\xb9\x2a\x7c\x2f\x4a\x22\x87\xe1\x3b\x58\xec\xf8\x6e\xd6\x92\xfc\x84\xef\xb3\xd8\xd2\x88\xbe\x60\x6e\x63\x2b\x6b\xaa\x38\xbc\x65\xc2\x8f\x62\x8a\x1b\x9c\x33\x44\xeb\xef\xf4\x7f\xc4\x67\xff\x63\x74\x5a\x65\x94\xcd\x9c\x35\xc4\xbc\x78\xc7\x51\xb0\x2a\x02\x26\x03\xfb\x2b\x77\x28\x4b\xac\xe7\xa4\xb3\x30\x1e\x25\x45\xa4\x1d\x25\x6a\xa2\xb0\x22\x02\x0c\xe8\x35\x3c\x16\x6f\x0b\x38\xb7\x0e\x5f\x4c\x84\x61\x40\x7e\x41\x45\x7e\x06\x83\x8b\x38\x1e\x4f\x3d\x8d\x80\xe9\x50\x5b\x84\x89\x01\x96\x4a\xa8\xf1\xb9\x30\xe2\xab\xa3\x11\x2a\xb4\x81\x15\xad\x7a\x36\xd0\xbe\xef\xf4\x75\x98\x88\x62\x41\x51\x0c\x35\x92\xaa\xce\x48\x88\x89\x08\x44\x0a\x3d\x1c\xf7\x8d\xc2\xc9\xe8\x72\x22\xa9\xa5\xa3\xcb\x0d\x53\x7c\x37\x00\x3d\xe6\xf5\xf4\x24\x6b\x5c\xeb\x5b\x93\x7a\x26\xe2\x28\xa0\x5a\xc5\xc1\x7b\x6f\x42\x92\x17\x3c\x66\xd0\x7f\x1b\x45\xe2\x31\x68\x9d\x5b\x2e\x24\x45\x95\x13\xe9\x8d\xec\x57\xc7\xcb\xba\xab\xc0\x88\xd4\x97\x96\x2c\x6b\xc4\x09\xa7\xf7\x71\x91\x46\x06\x3a\x3b\x57\x67\xa2\xa0\x13\x2e\xa1\x45\xb4\xf8\xc9\x7f\x07\x89\xa5\x60\x5c\x69\xe1\xc8\xc6\x78\xee\xb7\x4e\x04\xe7\xa6\x94\x66\x24\x07\x4c\x7c\x43\x41\x56\x6b\x23\x6c\x07\x42\x1a\xfa\xa6\x47\x0f\xc7\x47\x32\xf4\x7b\x74\xd5\xe5\x76\x08\xc3\x04\x7a\x0a\xcc\x04\xd2\x3c\xdd\x16\x1e\x85\x08\xba\x72\x7f\x59\x5c\xce\xd9\x38\xa4\x14\x82\x1b\x3c\xc2\x7e\xf5\x65\xb9\x75\xe7\x17\x12\x8c\x56\x79\x93\xd3\x37\x21\xd1\xfc\x72\xfd\x3c\x94\x17\xd2\x8b\x29\xa9\x3d\xa2\xae\xd3\x51\x1d\x46\x48\x16\x47\x96\x85\xb6\x59\xaf\x1f\x0e\xa8\xb2\xfa\x10\xba\x4e\x8e\x50\x51\x44\xd9\x97\xd5\xcd\x9a\xcf\x76\xcb\xfd\x72\xf6\xd8\x1e\x8e\x83\x04\x5d\x5e\x95\xe5\xf0\x8c\xd3\x1d\x0b\xa1\x52\x9f\xd0\x0d\x97\xbc\xea\xe2\x6a\xa1\x84\xa0\x5f\xe8\xd4\x07\x7c\xcf\x9a\xda\x7a\x56\x21\xc0\x73\x03\x6d\xfb\xe8\x19\xeb\x43\x65\x56\x6a\x7b\x44\xa7\x86\xfb\x6a\xf8\xd9\xad\x1a\x45\x35\xbd\xc7\x08\x2d\xc2\x48\xba\x34\xb9\xd9\x8b\x06\x1d\x2f\x33\x48\xfa\xd2\x67\x06\xd9\xd5\x2b\x5a\xcb\xc0\x4b\x84\xe3\x31\x1a\x09\xe1\x8f\x74\x65\x06\x5f\x29\x83\x58\x46\x5d\xc1\x91\x22\x89\x4e\xed\x7a\xf8\xc5\x01\x93\xe8\x75\x12\x10\xe3\x34\x56\x86\x81\x34\x76\xfe\x9b\x2f\xed\x9f\x22\x2f\x36\x58\x4e\x32\x24\x34\xae\xaf\xed\x41\x08\x28\x0d\x9b\xdd\x7d\x5f\xed\xd6\xdb\xdd\x61\xf6\x74\x77\xd8\xcc\xb6\xfb\xa7\xe5\xd6\xe4\x1a\x8b\xe5\xd3\xde\x8d\x8e\x42\xae\xac\x9c\xe3\x61\xf9\x6d\xdb\xfe\x39\x41\xea\x6f\xdf\x1b\xc3\xbf\xb6\x55\xff\x4b\x33\x08\x26\x23\xc6\xa9\xc7\xd2\xb2\x4b\xa7\x54\x47\x26\x57\xfe\x1b\x91\xdc\xc1\xa6\x28\x23\x10\x3c\x68\x41\x21\x8b\x0b\xa9\x03\x64\x3f\xb1\x7d\xe5\xdc\xc5\xc7\x81\x4f\x2c\x17\x85\x65\xf6\x13\x8d\xed\xaa\x7d\x04\xf7\x2d\x4b\x7f\x78\xd1\x31\x4b\x09\xa4\x74\x86\x73\x5b\x35\x96\x31\x06\x8e\x6d\xbe\xc3\xe3\x71\xdb\x3c\x16\x77\x2c\x89\x18\x6d\x79\x55\xf6\x9c\x77\x25\x23\x99\xc4\xc2\x48\xfa\x3d\xcb\xcf\x36\x78\x99\xc6\x21\x81\x2e\xdd\x4d\xfa\x9e\xc1\xf4\x7d\x9a\x5c\x07\x25\xf3\x94\xcd\x7a\x4c\x1a\xe5\x18\x12\xee\x70\xc0\xa8\xb0\xeb\xce\x7e\x68\x92\x28\x78\xc6\x43\xf1\x96\x63\x79\xcb\x0b\x92\x2c\x4d\xe2\xa1\x5c\xce\xaf\x6a\xd8\xee\x83\x0a\x49\xac\xc2\xfc\xb8\x7d\xf1\xad\x79\x8c\x83\x42\xa2\xe4\xb1\x59\xd1\x28\xc2\x73\x11\x42\xfc\x61\x80\xff\xff\xf1\xbf\xed\x97\x41\x88\x64\xb5\x64\x84\x7a\xba\xba\xc0\xaf\x8a\x6a\xd3\xbf\x0e\x78\x2b\x8d\x6c\xdf\xdd\x43\x96\x1f\x7a\x9e\x9d\x4c\x0a\x65\x9c\x1c\x0d\x27\x69\x42\xa8\x43\x4a\xdf\x1b\x68\x23\x2e\xe0\x78\x1c\x3e\x84\xd1\x6f\x90\xc2\x50\xd8\xa9\x45\xe2\x42\xb7\xf2\xa3\x0e\x94\x94\x42\x51\xd1\x9d\xe2\x78\x87\x87\xbb\x2f\x4a\xb3\x57\xb9\xeb\xc4\xd0\xa7\x0d\x16\xa4\xbc\x58\x59\x8d\x8e\xc8\x2e\x31\x66\xbc\x53\x5f\x23\x82\x10\x41\xbc\x86\xdf\xa4\x3d\x63\xf4\x71\xa1\xd6\x3b\x39\xe9\x0c\x06\x28\x8f\x9b\x0a\xd0\xef\xd9\x6b\x26\x27\x7a\x4b\xfd\x79\xa1\x7c\x1d\x6b\xa7\xf8\xee\xe2\xc5\x89\x8c\x42\x05\x3c\xf0\x9d\x7d\x5e\x96\x3f\xef\x8c\xf9\x78\xf6\xde\xc9\x48\xb4\x03\x35\xd1\x47\x5e\xa0\xda\x94\x85\xce\x8e\xb8\xc9\x64\x7d\x29\x3f\x28\xc2\xa9\x30\x48\x6d\xaa\x4e\x22\x8b\x65\x71\xba\x91\x65\x18\x7f\x02\x02\xda\xe7\xff\x75\x81\x0a\x9a\xbd\xaf\x2b\x0c\xb5\x23\x34\x61\x7d\x73\x6b\xc7\xdf\x73\xcf\xaa\xda\x31\x18\x10\xb0\xc9\x70\x56\x1f\x0a\xf9\xda\x31\x03\x54\x14\x78\xe0\xb7\xbd\x84\x2f\xce\x7f\xc3\x45\xb2\x2a\xf6\xe2\x28\x70\xf1\xd5\xcd\xf5\xde\x32\x99\x55\xec\x25\x54\x50\xd9\x2f\x9e\xfe\xec\x95\x12\x54\x9c\x32\x63\xec\x68\xfb\x43\x83\x1a\xcb\x07\xec\x29\xf7\x51\xce\x09\xc5\x04\xe7\x33\xe6\x6a\xaa\x38\x33\xfa\x40\xe2\x71\xc2\x21\x99\x2d\xff\x80\xef\xbd\x96\xba\x4a\xd2\x98\xa2\xdc\xdd\x4b\x71\x9e\xde\xc0\x55\x22\x52\xcf\x56\x23\x66\x57\xc8\xeb\xbb\xb2\xc8\x6a\x23\xa6\x95\xfd\xcf\x05\x0f\x8b\xe2\x74\xae\xf1\x10\x0f\xdf\x3c\x95\xea\x94\x84\x4d\x16\xeb\xc7\xc7\x6f\x4f\xab\xbd\x6b\x93\x2a\x96\xb4\x25\xe4\x27\x7c\x5b\xe6\x8a\xcc\x85\x7e\x91\x9c\xd8\xcf\xf2\xd0\x60\xbd\x77\xf0\xf3\xc6\x8c\xb2\x37\x2a\x8e\xa9\x43\xdd\x02\x55\x9e\xb2\xfc\x2f\x18\x0c\xf6\xdb\xb1\xa9\x49\xd4\x0c\x7c\xc9\x7a\x3c\x6f\x0d\x6d\xa0\x89\x9e\xab\x71\x2f\xab\x97\xf0\xb9\x53\x30\xa6\x4c\xa6\xe0\x66\xe4\xe8\xcd\x04\xf0\xb0\xaf\xf1\x43\x2e\xa6\x06\x76\x8c\x1f\xdc\x74\x50\x21\x65\xcb\x8f\xb3\x3f\x56\x8f\xdf\x1e\x57\x4f\xdf\x97\xbb\xfd\xe3\xf2\x69\xbf\x9b\x3d\x3c\xac\x7f\xb4\x92\x3f\x4a\xf8\x8c\x24\x43\x1f\x71\xe0\x84\xcb\x94\x88\x95\x97\xb6\xeb\xc5\xef\x57\x39\xba\x28\x91\xfa\xc2\x71\x25\xc9\x3a\x65\x3a\x8e\x54\xd2\xf7\x25\x3d\x2e\xd7\x6f\x5c\xe5\x46\x79\xab\x57\xf2\x55\x32\x56\x8a\xb7\x6f\xf3\x10\xd6\x38\x3d\x2b\xa5\x50\x6a\x9c\x1d\xf4\x8e\xca\x10\x2d\x6a\xe3\x21\xcb\x5f\xad\xb7\xcb\x64\x3f\x47\x49\xc9\xa9\x23\x76\x2e\x6a\xa8\x5d\x2c\xa0\x94\x9f\xd2\x92\xbb\x38\x22\xfc\xcd\xc6\xf0\xf0\xb4\x4a\x05\xc6\xf2\x29\xf4\x6d\x88\x6c\x0f\x60\xa0\xb4\xea\x10\xff\x46\xe3\x7b\xfa\x47\x22\xf8\x54\x95\x25\x0e\x94\x51\x25\x73\xd7\xa7\x3d\x46\x24\xa4\x7f\xb7\x61\x9f\xd2\x00\xbe\x29\xc5\xd5\x87\xec\x34\x62\x19\xa2\x27\xa5\x6f\xe3\xe8\xcd\xca\x26\x0d\xae\x22\x85\xbe\x00\x17\xad\xb7\xdb\x6e\x5f\xf7\x01\x7d\x94\x44\x22\x58\xec\xd7\xb2\x5b\x87\x9a\x10\x4b\x46\x2d\xf8\x61\x32\x3b\xc7\x80\x33\x66\x27\xca\xe1\x19\x4e\x78\x18\xd6\xc9\x30\x50\x1e\x35\xfd\x4e\xf0\x6e\xd8\x1b\x46\x38\xab\xea\x8e\x1b\x4f\xc8\xb2\x79\x33\xd6\x9a\xd0\x81\x93\xef\x2d\x86\xdc\xa7\x7e\x50\x96\xd7\x25\x9e\x33\xb5\x7b\xc9\xce\x56\x8f\xda\x8d\x00\xe0\x4e\xcd\xe6\xe9\xf2\xfc\x91\xb3\x3a\xc3\x28\x34\xa0\xa8\x4c\x16\xdb\x0b\xb1\x69\xed\x1c\x72\xc7\x63\xcf\xe1\xb9\xf6\x1d\x66\x7b\xf4\xcb\x23\x16\xd1\x14\x30\x80\x88\x3b\xfc\x89\xc7\xe2\x8c\x65\xb5\xb8\x8c\x22\x58\x8c\x50\x91\xae\x18\x56\xb2\x2c\xde\xee\x50\x66\xd5\x54\xd5\x68\x78\xfa\x38\x0e\x7c\x7b\x0d\x94\xf3\x7e\x85\xea\x65\xad\xd4\xba\x5c\xfe\x1c\xa7\xfe\x18\x33\x8f\xf0\x62\xe4\x3d\xd5\xfe\x8a\x24\x0e\xb8\x71\xc3\x2e\x4a\x5c\xd5\x83\xd0\x0f\x13\x60\xe4\xd9\x79\x86\xeb\x72\xff\x75\xf4\xd3\x12\x11\x52\x2b\xe0\xaf\x5e\x05\x15\xd3\xd8\xec\xc9\xf7\xab\x79\x7f\x29\xc1\x34\x91\x84\xa1\x3a\xe0\x7b\x56\x8d\x9c\x26\x19\x32\x5b\xa6\x24\x39\x0e\x83\xeb\x1b\x7e\x17\x43\x8f\xea\xff\x8b\xf5\xee\xeb\x6c\xf1\xf4\xe7\x44\x2d\x1b\x21\x76\xd4\x67\x57\xaf\x1f\x98\xae\x30\x04\xe9\x53\xcc\x4e\x9d\xf5\x0f\x6b\x2d\x08\x2a\x75\x46\xa5\xdf\x2a\x2c\x67\x3f\xb1\x09\xbd\x1d\xb0\x67\x7b\x03\x1b\x44\x11\x6b\xd9\x52\xc6\xdd\x4b\x33\x3c\xa7\x00\x41\xce\xb3\x87\x26\x58\xca\xde\xf1\x48\x4f\x6b\x9a\x78\x39\xfa\xa4\x0e\x58\x27\x44\xfe\x75\xd7\xec\xb2\x1f\x0b\x97\x33\x94\x91\xd0\x96\x2b\x4e\x79\xd5\x20\x80\xe9\x76\x6d\x94\x91\x24\x31\x2b\x77\xb7\xe6\x99\xba\x2f\x4a\xd7\xef\x17\xb7\x21\xb7\xfb\x5c\xc2\x89\x1b\x26\x2e\x57\x01\x6d\x91\x05\x65\x8a\x24\xde\x48\xdd\x17\x13\x85\xfe\x8e\xd7\xc3\xff\x62\x59\x3c\xe1\xdb\xef\xad\x3c\x00\x4a\x11\x3b\xcb\xce\xfb\xac\x7a\x99\x4f\x3a\x06\x30\x44\x8c\x55\x27\xa4\xb5\x81\x4c\xcd\x41\xbe\xce\xdb\xfa\x57\x77\x41\xda\x0f\x09\x6d\xbf\xac\x5f\xc4\x70\xff\x42\xcd\x8d\x88\x70\xb3\xde\x19\xe6\xde\xc3\x58\xb2\x02\x35\x68\x4a\xb5\xce\xa6\xa2\x7c\x08\x0e\xa4\xbe\xee\x8e\xea\x84\x40\x29\x35\xbc\x5a\x63\x46\x7b\x44\x7b\x29\x17\x7d\x87\xc1\x4e\x29\xdd\x0e\xf0\x83\x80\xf8\x2b\xf9\xe5\x44\xdd\x6b\xac\xc7\xa6\xfa\x4c\xfb\x3c\x24\x00\xb1\xf3\x55\x22\xd6\xe6\x61\x31\xdb\xb4\x03\x14\xa7\x54\x82\x0a\x47\x44\x2c\x6b\x81\x4a\xd9\xf3\x4b\x7d\xbc\x6e\x06\x14\xc8\x91\xca\x35\xd3\xbe\x36\x53\xbe\x26\x05\x9c\x01\x5c\xc0\x8e\x08\x54\x4c\x80\xac\x73\x89\x2b\x69\x64\xe6\xaa\x45\x4f\x06\x4f\x87\x81\xc2\xa4\x6d\xff\x9a\x8e\x9a\x5b\x98\xfc\xe0\x63\xc3\xab\xfe\x42\xa2\xa3\x44\xc4\x7a\xa0\x1e\xfa\x98\xe5\x23\x45\x75\xa6\xe3\x50\x12\xb8\x25\x27\xe1\x2f\x43\x7d\x99\xe5\xd7\x7d\x31\xcb\x47\xad\x30\x1d\x4b\xd3\xb8\x32\x53\xed\x09\xdf\xad\xd6\xe2\x2f\xe4\x34\xed\xa7\x93\x30\x24\xf5\xa5\x3f\xff\x18\xb0\xf4\x74\x92\xa6\xa1\xe8\xbb\xe4\xb8\x74\xec\x56\x57\x97\xe9\x84\x31\x2b\x31\xf4\x13\x06\x20\x1d\x9d\xd8\x62\xec\xb7\xdc\x98\xe0\xb4\x52\xca\xe3\x2e\xcd\xe8\xb2\xd2\xd0\x0f\x9a\x1f\x65\xb8\x26\xf3\x4b\x99\xcf\x49\xaf\xdd\x88\xea\x7f\xf4\x19\x46\x3d\xc1\xa1\x68\xf2\xc8\x28\x82\x69\x06\x9c\x9a\xed\x5f\x70\xe8\x44\xc4\x34\x0f\x52\x0a\x0a\x9c\xfd\xed\x73\x0b\xea\x33\xdb\xdd\x7d\x51\xee\xb2\xe3\x4f\x2c\x29\x59\xe9\xdb\x6b\xf4\xb0\x03\x9a\x47\x71\x62\xec\x3b\x6c\xe8\xe0\x58\x8c\x83\xd7\x5a\xf3\xc4\x78\x4c\xf7\x40\xae\xc9\x04\x23\x45\x73\x61\xf8\x78\x5d\x97\xbb\x7f\x61\x83\x56\xb7\x16\xbe\xf2\xb4\x73\x1c\xfc\xd6\x19\x0e\x36\x47\xb4\xd1\xe6\x39\x17\x79\x55\x94\xd5\xc8\xf0\x95\x69\x11\x1a\x71\xd1\xaa\x2e\x86\x0a\xf0\x4c\x8b\x88\xfb\xba\x13\xc4\x98\x5c\xa5\x34\xd5\xf1\xff\xdf\xff\xef\xff\x3d\xcd\x67\x7b\xcf\xf3\xff\x6f\xe1\xa1\xa6\x4a\xaa\x7d\x29\x5e\x5e\x0d\x14\xf4\x33\x54\xaf\x96\x7e\x42\x4e\xc5\x27\x72\xbd\xd9\x17\xc6\xd1\xca\x5d\xb1\x4c\x34\xed\x31\xff\x7a\x9a\xcf\x56\xed\x1f\x79\x04\x06\xb1\xd7\xa4\xdf\xbd\xcd\x80\x6c\x01\x96\xef\xe7\xec\xd6\xd8\x82\x69\x95\x06\x20\x1d\xd0\x88\x52\xb3\xc8\x71\x52\xb4\x42\x41\x88\xc9\x37\xcc\x1e\xe1\xbd\x35\xa5\x63\x1a\x03\x4d\x8b\xd9\xef\x57\x81\xe5\x17\xcc\xb1\xca\xaa\x89\x7d\x5a\x63\x12\x3a\x25\x61\xe3\xdb\xb9\xfa\x80\x0f\xaa\x75\xe2\xd3\x1b\xf6\xa3\xe5\x25\x0d\xcd\xe4\x46\xb7\x47\x63\x14\x58\x25\x85\x45\x81\x7a\x8b\x6f\x83\x9f\xc5\x3d\x2f\xe6\x34\x60\x5f\x3c\x3f\x77\x2c\xaa\xae\xfc\xd8\xce\x67\xee\x79\xc2\xec\x3f\x36\x08\xa0\x0e\x4d\xb3\x0b\x4d\x16\x16\xb8\xe7\x7b\x8a\x6a\x1c\x7f\x15\x59\x6e\xde\x56\x77\x00\x7c\xd6\x9b\x46\x93\x2f\x31\xf7\x02\x0f\x43\x87\x98\xe9\x07\x99\xdc\x0b\xb9\x0e\x3b\x24\xc9\xc1\xda\x4e\x1f\xca\x1e\x5d\xaa\xbf\xd2\x72\x2f\x12\x9c\x0a\xbf\x5f\xfe\xb8\xfb\xba\xdd\xf4\x56\x37\xee\xc5\x9c\x19\xd7\xdd\xca\x4a\xbc\xb8\xd0\x88\x7b\x89\x25\x08\x1b\x59\xbb\x22\x1b\x82\x09\xb9\x97\xf2\x84\x02\xf8\xdd\xa6\x2b\x41\x70\x8f\xf9\x82\x4c\x52\x2a\xd0\x38\x14\xeb\xe3\x1e\x0b\x83\xc4\xec\xab\x57\xd3\x9c\xb9\x2f\xca\xcf\xf4\xfa\xb8\xc7\x22\x43\x2f\x3b\xff\xac\x0f\xe7\xe3\xa9\x36\x75\xba\xc3\xb3\xe9\x5d\x76\xd7\xca\x23\xa3\xa8\x62\x9a\xb3\x46\x33\xae\x3d\x96\x44\x04\x7d\xb3\xdd\x38\x63\x0c\xdc\xf7\x66\xe6\x1e\x57\x89\xa7\x06\x4a\x16\x5f\xa0\xea\xa9\x0c\x70\x0f\x02\x1d\x5a\x93\x0b\xf5\x54\xf4\xb2\x99\xd1\x53\x13\x81\xd0\x96\x41\x4f\xb2\x65\xbf\x8d\x0f\x1b\xa1\x81\x0a\x1d\x0a\xaf\x43\xc1\x71\x4f\x86\x9a\x76\xf6\xfb\x6f\x4f\x77\xab\xa7\x2f\x03\x6d\x22\xee\x49\x34\x0d\x9e\xdd\xa9\x13\xa2\x6a\x8f\x69\x8f\x4a\x54\x0f\x30\x12\xf5\xe0\x9e\x52\x68\x34\x98\x9b\x3b\x47\xde\xe4\x65\x35\x1a\x82\x01\x0f\xa4\xc9\x27\x9f\x31\xdc\x75\xca\x1a\xdc\xd3\xbe\x4f\xab\x99\x0b\x09\x9f\xbe\xef\x75\x59\x9c\xbe\x4c\x78\xc8\xba\x4f\x84\x41\xca\x1c\x90\xa6\x75\xae\x19\xcc\x1c\x1d\xc5\xc9\x80\x70\xd1\xfe\xdd\x10\x31\x1e\xa1\xae\x5f\xf0\xad\xfd\x33\xc4\x96\xf4\xe7\xcc\x3d\x9b\xb0\xc5\x70\xf4\x6e\xac\x53\xb8\xef\x69\xa4\xe5\xad\x99\x81\xed\xe6\x6a\x8f\x05\x18\x5b\xa3\xba\x7a\x53\x62\xbb\x31\x4d\xad\xe4\xcd\x60\xe5\x39\x31\x95\x47\xf7\x90\xfc\x10\x58\xca\x5b\xe0\x3c\xc9\x36\x0d\x3f\x16\x0a\xee\x5b\x88\x22\x69\x36\x18\xb4\xfe\xa5\xa3\xb6\xb6\xf7\xca\x8f\x12\xe1\x44\x38\xb6\xa8\x37\x70\xdd\x4d\x58\x4a\x71\x3f\x0e\xb5\xe8\xb6\xe3\xaf\xc5\xa5\xc2\xf1\x88\x28\x32\xac\xfc\x43\x89\x0a\xf1\x34\xd1\xa8\xe4\x7e\x2c\x35\x95\x19\x9d\x85\xce\x7c\xb9\x3f\x7c\x9f\x3d\x7c\x5b\xba\x9f\x96\x84\x48\xc5\x8d\xe6\x07\x7f\x3b\x9b\x73\xec\xea\xb2\xe7\xc4\x3d\x3c\x61\x1a\x04\xce\x13\x75\x7d\x54\x3b\xc4\xe3\xed\xda\xce\xfd\x34\x8a\x8d\x4b\x45\x51\x98\x36\xd8\x4f\xdc\xd1\x16\xfe\x61\xff\xe8\xa3\xbf\x8f\xd5\xc9\x9a\xbc\x1e\xa8\x93\x6f\x60\x3d\xf7\xf3\x87\xe9\xd7\xd2\xe7\x9e\x36\xd5\xa6\xe6\xdd\xd9\x99\xad\x7f\x74\x99\xdc\x17\x3e\x6b\x63\xda\xef\x45\xdd\x83\x63\x8e\x6b\x75\x13\x95\xd9\x51\x8d\x96\xfb\x3c\x36\x93\x59\x15\x56\xc8\x66\xec\x80\xf4\xc1\xaf\xb6\x1f\x87\x38\x8a\xad\x84\xc5\x43\x51\x55\x3d\xd8\xb3\x7b\x5a\x90\x72\xda\x09\x15\xca\xf2\x7a\xae\xbf\x36\xaf\xfe\xe7\x7e\x18\xf6\x83\x82\x19\x38\xe9\xc5\xc0\x7e\xee\xcb\xe2\x14\xec\x8b\xd0\x9d\x57\x48\x95\x26\xed\x62\x58\xdf\x17\xe5\x16\xcf\x45\xd9\x2c\xa9\x1b\xa7\xd7\x90\xd7\xe6\x5a\x7a\x58\x76\xee\x4b\x2f\x08\x44\x2b\x7b\x48\x57\xdc\x86\x02\xdc\x97\x41\x42\xa4\x1a\xf5\x50\x3c\x3f\xb5\x7f\x0c\x43\x8e\xfd\xe0\x7a\xff\x4e\x48\x8f\xd1\x0c\x98\xb8\xbd\x52\x84\x46\x88\xc7\xda\x9b\xcd\x7e\x42\x0d\x43\x19\x1b\xee\xab\x48\xd1\xea\xe5\xc0\x94\xf2\x75\x84\x86\xe2\x3e\x32\x23\xd2\x74\x82\xf7\xc7\x22\x27\x52\x45\xbb\xac\xfa\x3a\x61\x14\xf0\xd5\x86\x6b\x5c\x16\xa7\x79\x66\x0b\x15\xed\x77\x68\x66\xc1\x51\xcd\x77\x0c\x30\xc4\x03\x4b\x0f\x1e\xf8\x71\x42\xf7\xf5\x6c\xd2\x91\x6a\x7e\x75\xce\x13\x2e\x6f\x72\x03\x39\xa7\xe8\xbb\xee\xf3\x4f\x48\x0c\x61\xad\x75\xb3\xaa\xe4\xca\xec\x4d\x93\x8f\x37\x08\x62\x8f\xea\x3f\x8b\xed\x9f\x9b\xfd\x7a\xfe\xed\xe1\xc1\x5d\x41\x90\x98\x6a\xc8\x43\xf1\xfc\xb1\xb5\xf3\xf8\x6c\xca\x28\x25\x53\x6f\xc2\xac\xbd\x8e\xcb\x3c\x49\x5f\xe6\x41\xa0\x03\x32\x06\x51\x66\x8f\x35\xba\x3f\xf6\x58\xe8\x99\xf5\xf7\x19\x9b\xad\xbc\x86\xe3\xa1\xea\x21\x45\x79\x10\x0a\x06\xb6\x29\x30\x5f\xfc\x39\x7c\x54\x41\x14\x01\x17\xed\x3e\x40\x15\xbc\x72\x3c\xc4\xd2\x29\x4c\xcf\xb3\xc6\x3d\xc2\xe9\xbb\x31\xec\x1a\xbe\xee\x41\x24\x03\x7a\x1a\x1a\xe5\x0b\x91\x4e\x8c\xe1\xda\x75\x97\xc3\xb9\x7a\x29\xea\xdb\xb2\x02\x0f\xe2\xc4\x27\x10\xf3\x11\x4e\xa2\xa8\xe6\x97\xec\xa8\x7a\x69\x31\x0f\x12\x5f\x39\xbd\x0b\xd7\xfd\x72\x40\xdc\x11\xb0\x60\xaa\xe3\x3e\xbc\xbe\x84\xf9\xce\x3b\x79\xa9\x9e\x71\x83\xa5\x53\x4b\x18\x5d\x54\x02\x32\xf0\x1c\xa0\x68\x95\xb7\x30\xa7\x26\x87\xd3\xaa\x93\x99\x6b\x56\xa1\xc9\x7d\x2e\x60\x49\x1c\xf7\x3b\xcb\xb3\x60\x3e\xbd\xe0\x07\x8c\x85\x10\x58\xca\xe1\xdf\x25\xd7\xd8\x8f\xf2\x14\x5c\x34\x69\x4a\x55\x66\x31\x1f\x8c\x81\xd0\xa4\xda\x67\xb8\xde\x17\xe5\xfa\xfc\x19\xf3\x79\x74\x7a\x48\x38\xa9\x78\x99\x94\xd7\x48\x60\x4c\x5e\xe1\xb4\x69\x2f\x0f\x20\x0d\x49\x46\x6a\xb5\x58\x3f\xad\xfe\x65\xf4\x56\x17\x0f\xeb\x5d\x13\x87\xed\x57\x8f\x6e\x8f\x0c\x20\x35\xf8\x54\xfd\x7e\x7e\xbc\x1c\x9d\x11\xd4\xe0\x9f\x76\xa4\x89\xba\x9b\x9c\x86\x54\xb6\x9d\x3b\xb3\x3b\xce\x15\x1a\x44\x03\x15\x80\x9b\x35\xa1\x87\x14\xe3\x01\x08\xa4\xe6\xc7\x17\xac\x97\x3f\xe1\x78\x71\xe1\xbd\x33\x1a\x70\xc3\x94\x69\xa5\x4e\xb4\xf9\xff\xde\x93\x11\x61\xcc\xad\x35\x6a\x5d\x5e\x9a\xcb\x78\x84\x3c\xd3\x6d\x5d\x8b\x07\x82\x2b\xc2\xfc\xec\xbf\xef\x5f\x4a\xac\x5e\x5a\xf5\x00\x1e\x08\xc1\x24\xef\xd3\x4f\x48\x05\x66\x78\x6b\x65\x18\xea\xe6\xe3\x94\x04\x3d\x5c\xe4\xeb\xd5\x14\xf4\xb7\xb4\xd3\xde\x6a\x58\x4d\xef\x88\x81\x8c\x62\x91\x76\xd5\xb5\x81\x7f\x39\x0f\x64\xd2\x26\xce\x5f\x2e\x58\x55\x36\x65\x9a\xfe\xc9\x92\x0b\x22\x77\x51\x6d\x6d\x77\xb8\xff\xb6\xff\xb6\x6d\x9f\xb0\x04\x4d\x58\xd1\x6f\xe7\x63\x01\x6a\xf5\xf8\xa5\x3d\xa0\x02\xd3\xf1\xec\xb9\x70\x56\xa4\xc6\xfe\x61\xab\x96\x07\x28\x39\xf1\xa6\xce\x25\xf6\x75\xb3\xda\x1b\xa8\xb5\xf6\x7b\xca\xd9\x4b\x03\x85\xfd\xb6\xbb\xfb\xad\x6d\x08\xde\x5c\x7f\xe8\xa5\x2c\xb4\x12\x33\x8f\xf0\x2e\x47\x38\x44\x1e\x7a\x10\x92\x3a\xbf\x05\xd0\x3f\x7e\xf2\xba\xda\x4f\xf8\x1c\xa8\x27\xb1\x5b\x2e\xd6\x4f\x77\x87\xfd\x6a\xb9\xed\x19\xf0\xf1\xd0\x47\xa0\x32\xc3\x25\xa7\x7d\x2e\xfb\x5f\x74\xba\xd6\x83\xd0\x3e\xf4\x51\x09\xd3\x1f\xa3\x22\xd7\xa8\x74\x31\xf9\xee\x86\x41\xe8\x53\x55\xf4\x4b\x13\x30\xbf\x12\xe4\xe4\x15\xf3\xc7\x4b\x9d\x9d\x8f\x59\x1b\xbb\x87\x41\xc8\x48\x9b\x75\x5b\x5c\x9b\xbc\x3b\xef\x93\x6e\x27\xc0\x08\xcd\x07\x8c\x28\x39\xd9\x27\x75\x09\x61\x18\x44\x92\x0a\x8f\x04\x48\x9e\x67\x65\xcf\x14\x89\x87\x41\x2a\xb8\x75\xd6\x6e\x32\xe2\xa1\xbe\x0d\x0f\x43\xc1\x22\xa7\xfb\xb5\x2f\x46\x5b\xcb\xa7\xc2\xa4\x3c\x8c\x63\x45\xaa\x5d\xfa\x92\x53\xb9\xe5\xbe\xb8\xb4\x3f\x2e\x66\x5c\x9a\xbc\x51\xfd\x70\xd6\xeb\xee\x10\x20\x13\xbd\x19\xd2\x57\x47\x99\xfa\xd9\xb1\x56\x84\xfb\xf8\x81\xd9\x8d\x83\xe3\xf0\x82\x52\x48\x50\x38\xca\x9a\x7c\xbd\x9c\x0f\x99\x25\x67\x7c\x4e\x2a\xe2\x21\xf3\x52\x12\x5c\x7c\xc3\x6c\x5f\x6c\x8d\xcc\x92\xb1\xa7\x1e\xee\x2d\x21\xf7\x8d\xd2\xce\xec\x78\xdc\xc0\x75\xd6\xf7\xb3\xe1\x21\x8f\x38\x37\x4c\x83\xe6\xcb\x35\x94\xa7\x1d\x49\x34\xfe\x62\xbe\xf0\x48\x3a\x33\x9d\x05\x94\x65\x51\x2f\x4a\x54\x99\xab\xa0\xf3\x10\x02\x9f\x88\x97\xb3\xbb\x7d\xfb\x27\xa6\x48\x6e\xbb\x79\xbd\xb0\x84\x5b\x0c\xd1\xf0\xaa\x41\x0a\x6b\x9c\x25\x9c\x88\x47\xa1\xb3\x7a\x02\x65\xcb\x43\xd0\x61\xdc\x59\x53\xee\xb2\xe7\x7e\x82\xfd\x8f\xde\xcc\x12\x51\x44\xd9\xd2\xc3\x45\x5d\x4e\x7f\xab\x75\x6c\x3f\x28\xc1\xf0\x47\x66\xb2\xbe\xc0\xf1\x5f\x17\x6c\x43\xee\x50\x79\x81\xa5\x74\xe4\x6a\xb5\x58\xcf\xaf\x1f\x4b\xff\xf0\x50\x61\x20\xc3\xbe\xe3\x72\x76\xba\x9c\xfe\x75\x29\x6a\x18\x2d\x1f\x18\x28\x63\x0b\xa5\x4e\x59\xbe\x54\x59\xbd\x70\x84\x5e\x7f\xac\x7a\x32\xba\x54\x4c\x52\x72\x6f\xd4\x25\x22\x09\xc5\x74\x44\x3a\x1e\x22\x06\x04\xd9\x04\xa5\xa8\xd2\x6f\x17\x07\xbb\xa7\x0d\x97\xd0\xb6\x5f\xc1\x43\xed\x87\xce\xaf\x64\x53\xbc\xe2\xa9\xc8\xe7\x48\xce\xa2\xd5\xe8\xb2\xb5\x2f\xc8\xfa\x39\xcb\xe5\xfc\xda\xe2\xf7\x78\xa8\x53\x20\x48\x42\x65\xb5\x74\x48\xe5\xed\x0e\xae\xed\x71\x0e\x14\x0a\xb6\xc8\x1b\x63\xad\xa4\xa6\x1e\xa2\x96\x9c\x44\x79\x47\x3d\xad\xcc\xe2\x35\x9f\x8a\xaf\x23\x15\x34\x1e\x79\x68\xe8\x92\xae\x84\x32\x1d\x5b\x45\x3e\xf7\x98\xf3\xa7\x79\x2a\xf2\xfb\x4b\xfe\x3c\x68\xb9\xb5\xf7\xc7\x8d\x97\x9e\x6b\xf3\xd2\x43\xef\x97\xf5\xa2\x40\x18\x54\x17\xe6\xea\x0e\xae\xeb\xbc\x47\xb6\xe4\x51\x18\x18\xc3\x1d\x17\xef\xf5\x0b\x5d\x51\xc4\x53\xed\x28\x53\x26\xab\x6e\x52\x05\xe3\xad\x51\xdd\x17\x25\x66\xcf\xb9\xd7\x0e\xd6\x46\xa1\xdc\xe0\x33\x48\xef\xc9\x1e\x89\x23\x1d\xf6\x99\xea\x9f\xaf\x27\x51\x1c\x1b\x85\xf9\x0a\xeb\xaf\xc5\xf1\xd6\x1c\x86\x47\xb1\x08\xa8\x72\xf6\x17\xc8\xd7\x73\x61\x7a\x7a\xcb\xfa\xa5\x33\x9c\x6b\x86\x00\xb5\x4a\x80\x52\xc1\x16\x09\xc7\xa3\xd8\x4a\x26\xf5\x7c\xea\xfa\xde\x4a\xa3\x6b\x49\xc2\x94\xaa\x61\x36\x38\xa0\x48\xf0\xeb\x6c\x7b\xd7\xf5\xe0\x78\x94\xa8\x84\xee\xef\xb1\x78\xee\x3c\x34\x6c\x7e\xd4\x81\xfb\x08\x15\xe8\x76\xfa\x28\x65\x9c\x72\x93\xdf\x2f\xf9\xb3\xbe\x0c\x1e\x17\x53\x26\x19\x31\x2b\xbb\x31\xd7\x9c\x7c\x87\x23\x86\x31\x3d\xf5\xec\x74\x36\x3d\x10\xfa\xe6\xc0\x9d\x88\xfb\x56\x89\x75\x71\xd7\xa5\xde\x11\x84\x81\xf1\xc9\xb8\x88\x53\x56\x2f\xca\x62\x92\x48\xdf\x8c\x33\x65\x50\x8b\x0e\xa2\x02\xd1\x6e\xf5\xef\x65\x7b\x1e\x60\xf4\x0b\xe6\xc7\x6c\x7e\xcc\x26\x39\x5d\x76\xa4\xe0\x29\x85\x85\xab\xbc\x2e\xcc\x82\x35\x3d\xe9\xa5\x6f\x3c\x75\x0d\x32\x6e\x83\x54\x28\x31\xad\x2e\xf7\xa5\x92\x19\x99\x93\x6d\x21\x8a\x7a\x5f\x82\x72\x01\xc2\x6f\xa3\x53\x71\x74\x0e\x39\x56\x8a\x85\x34\x48\xa6\xbf\x57\x05\x8a\xb6\x71\x5d\x94\x27\xa8\xad\x3a\x28\xfd\x84\x68\xf4\x4b\x54\x6a\x0c\x1f\x2e\xb9\x9b\xca\x6b\x41\xf1\xe7\xa8\x7e\x14\xa9\x14\x7c\xcf\xe1\x15\x3a\x2d\xb6\x4f\x3a\x64\x3c\x52\x3a\x26\x0a\x4b\x76\x22\x23\x9d\xb2\x6a\x76\x9b\xea\x01\xeb\xe6\x6b\xb4\xd9\xd6\x7e\x6b\xc7\x26\xa9\x6d\x92\xcf\x5a\xa7\xd8\x66\x71\x26\xe5\xe8\xaa\x1b\xc6\x0d\x63\xb3\xf8\x4c\x07\xef\x53\xc4\x2d\x8f\xd0\x63\x44\x28\xfd\x9f\x0b\x96\xd7\x1f\x90\x35\x41\x4e\x7f\x05\xc1\x28\x56\xa4\xa7\x23\xe1\x58\x67\x79\xa1\xdd\x01\xed\x45\x18\xd9\xfd\xc8\xda\x51\x7f\xd2\xbd\xe2\x91\xf6\x91\xf6\xaf\x87\x4c\xe3\x06\xaa\xea\xad\x28\x95\x6b\x54\xf1\x48\x27\x9c\x6e\xe9\x66\xbd\x7a\xda\xef\x0e\xfb\xf5\xe1\x61\xf9\x7d\xe9\xca\x19\xb1\xe7\x99\x46\x38\xd6\x2f\x07\x23\x37\x76\xf8\xeb\xa2\x9e\x5b\x26\x0f\x73\xe3\x94\x08\x8c\x0d\x84\x01\xf4\x5a\xba\x9b\x3b\x8d\x1f\xf9\x9e\x73\x66\x97\xc5\xe5\x5c\xf4\x68\xb7\x23\xcf\xe3\x66\x30\xd2\xc4\x76\xfa\xbb\xf3\x61\x37\x93\xc7\x7e\xac\x49\x1a\x1f\x94\x22\x3c\xde\xf8\xb0\x66\xb1\x4d\x53\x0c\x33\x85\xba\x48\x6d\x52\x30\xfc\xb2\x20\x48\x6d\x75\x8c\x34\x28\xb4\x1e\xe9\x34\xf3\x38\x68\x62\xb1\xb6\xfe\x49\xff\x7b\x29\x3f\x88\x6a\xe2\x90\x07\xa9\x53\x14\xdc\x16\xc5\xe9\x53\x1c\x11\x8f\xa3\xc8\x13\x56\x3a\x2f\x3b\xc1\xd1\xca\x85\x0e\xbf\x3f\x8a\x3d\x2a\x90\x11\x4e\x79\x5b\x5c\x8e\xcd\xd4\x9d\x63\x4d\xbc\xa6\x81\xd9\xb6\xfd\x40\x1c\xa5\xda\xee\x5a\x5f\xe0\x84\x7d\x3d\x35\x3b\x22\x89\x81\x32\xf9\x27\x7c\xa3\xa9\xf3\xa5\x84\x5b\xa9\xf0\xe9\x6d\x24\x4e\x92\x90\x70\x5c\x3f\x30\x7b\x7e\xa9\x51\xed\x9a\x05\xaf\x47\xe5\xe5\x71\x02\x06\x9e\xe8\xa4\xbe\x37\x59\xde\x17\x31\xe0\x71\x22\xfd\xd0\x26\xb4\xa4\x8a\x75\x8b\xfe\xe6\x71\x82\x52\x19\x64\xfd\x4f\xc3\x9d\x6f\x31\x01\xe3\x81\x5a\xc6\x81\x8b\xea\x9d\x2c\xec\xf1\x08\x35\x96\x3d\x4b\xee\xc9\x57\x23\x4e\x23\xdf\x14\xde\xac\x23\xe0\xe0\x2a\x53\xa5\xe8\xd9\xb8\x98\x62\x76\x3c\x36\x8b\xcd\x68\xb2\xb1\x38\xa4\x2e\xb8\x68\xde\x8d\xeb\xa4\x9c\xcd\x6d\xc6\x1a\xb3\x04\x5d\x0d\x6e\x67\xde\x87\x0e\xc8\x62\x3a\xf8\xa3\x5f\xc9\x52\x53\x81\xd8\x35\x73\xba\x09\xc9\x55\xf3\xf8\x17\x45\x5e\x8f\x61\x9f\x3c\x66\x1c\x89\x05\x5f\xe4\x12\xd7\x97\xba\xee\x16\x95\x98\xfb\x0c\x8d\x72\x8d\xc2\xf7\xb5\x6e\xa2\x09\x5a\xc1\x87\x5f\xc6\x43\xcf\x1b\xc0\x31\x76\x58\x5f\xce\x56\x89\x84\x42\xce\xf1\x07\x34\x46\xc2\x05\xb3\x07\x72\xb3\xb3\xc8\x8b\x89\x15\x39\x86\x38\x26\xf3\x66\x71\xb9\x42\xae\x10\xca\x51\xb9\x2d\x86\x34\xa5\xaa\xcd\xe3\xec\x61\x4a\x69\xa9\x9f\x89\xc5\x90\x32\x02\xa4\x9c\xb2\x63\x93\x55\x59\x54\xae\x05\x29\xf0\x18\x74\x42\xf1\xb0\x5b\x95\x5a\xfb\x96\xb1\x3e\x7e\xff\xfa\x34\xb3\xa2\xda\x47\xed\xa6\xd4\x00\xbc\xd1\x0c\xc1\xc0\x21\x3a\x8b\xf2\xb6\x62\x18\x8b\x28\x74\xc2\x34\x07\xc3\x6a\x46\x75\x38\x1f\xe1\xda\x86\x6f\xb1\x88\x21\x6e\x2d\xcd\xa8\xae\x34\xcb\xab\xb7\x71\xb9\x35\x16\x31\x7a\xca\xc6\xac\x5d\x95\xda\x4a\xe4\x7d\x9e\xc5\xc5\x42\x48\xde\x69\xf6\x53\x23\xa1\xa7\xf5\xcb\x63\xe9\x43\x4a\x1a\x19\xdd\xe4\x2b\xca\xe5\x6e\x31\x17\xd7\x5d\x67\xb6\xc4\x63\xf4\x20\xee\x68\x0e\x9f\x3e\x0f\x4c\x42\xcf\xf6\x0c\x24\x56\x15\xb1\xc0\x7f\x3a\x3a\x05\x8f\xb5\xd0\x49\xda\x8b\x59\xe7\x50\xca\x42\xe1\xb8\x6f\xf3\xeb\x7f\xdc\xf9\x30\x40\xc3\xf9\x50\x4f\xf8\xd6\x59\x68\xfd\x6a\x4f\xee\x1e\x77\xe2\x71\x4d\x48\x1e\x2b\xed\x33\x1d\xcd\x24\x7e\x04\xd2\x72\xe6\xc9\xea\x7a\xba\xc1\xe4\x06\x27\x82\x56\xe0\x59\xa6\x96\x3f\xa1\xd7\xba\x4f\x7c\x66\xec\xfa\xef\xbe\xdc\x89\xc3\x2f\x84\x27\x3f\x3a\x39\xf7\xa9\xb0\xb6\xca\x05\x56\x75\xbf\x1b\x32\xbd\x27\x25\x21\x57\xac\xcd\xe5\x73\x03\x5e\x99\x6a\x5e\x26\x21\x00\xb1\x5d\x17\xeb\xa7\xfb\xd5\x97\xc3\xe3\xec\x8f\x83\xb1\x4d\xda\xb9\xcb\x8f\xfd\x40\xf6\x4a\xc0\x58\x76\x29\x5e\x12\x47\x61\xca\x5c\x23\xa8\x99\xa3\x24\x7a\x92\xd5\x57\xab\xc1\xf1\x09\x03\xee\x33\x4e\x20\x4f\x62\x0c\xa9\x09\x67\x22\xf7\x5b\x0e\x22\x4f\x12\x2f\xa4\x5b\xa2\xb1\x96\x2f\xb3\xe3\xd1\x7a\x60\xb9\xa3\x81\x64\xba\xc5\x34\xd2\x8c\xc4\x71\xd0\x91\xa4\x41\x14\xd9\xd0\xf6\xd1\xea\x8f\xd8\x84\xec\x66\x20\xa3\x5e\x40\xa7\xdf\x3f\xdb\xee\xe9\x37\xcf\x6f\x14\x1e\x79\x92\x26\xa6\x56\xe7\xac\xd2\x9b\xfb\x72\x07\xd9\xdf\x8e\x19\x7b\x45\xaa\x24\x4d\x53\x65\x98\xe7\xd7\x7f\xba\x0c\xcd\xca\xb5\x4d\xcf\x94\x34\x35\xa4\x2e\xeb\x56\x6f\x78\xde\x37\x04\xec\xe1\xcd\x66\x5e\xa8\xec\x7d\xf8\x67\x21\x2c\x28\xa5\x9a\x5f\x6d\xad\x77\xb2\xdc\xef\x3e\x1a\xb2\xc0\x88\x46\x64\x39\x61\x54\x87\x57\xc3\x40\x09\x43\x3e\x7d\xdf\x60\xb9\x7f\x77\x8f\x87\x69\xa3\x89\x6a\xd8\x0e\x7d\x9d\x6f\x9e\x80\xcf\xfc\x56\xba\x6c\x62\xaf\x4b\x40\x68\x4f\x5a\xe9\xd0\xba\x03\x1b\x4c\x12\x22\x78\x22\x92\x90\x52\xb7\x2f\xab\x87\x87\xd5\xfa\xa9\x67\xd6\xc1\x13\xe9\x27\x84\xa4\xcb\xaa\x55\x6e\xc3\x6a\xf2\x17\x69\x8f\xa3\x94\x7e\x27\xb1\x37\x78\x7f\x86\xdd\x73\x17\xb9\x25\xca\x97\x54\x25\x24\x8f\xfa\xfe\x82\x9a\x28\xa5\x53\x1b\xa2\x99\x6a\xd6\xb4\xbf\xf1\xe8\x7c\x28\x3c\x2f\x6c\x55\x3a\xd1\x12\xd5\x86\x3f\x51\xfb\x11\x89\xbd\x6d\x97\x0f\xcb\xd9\x6e\x79\xf8\x32\xdb\x1d\xee\x97\xcb\xf6\x0d\xd6\x81\x26\x9e\x14\x25\xc0\x43\x5f\x83\xe1\xec\x49\xbd\xc4\x94\x61\x4b\x94\xc5\xe9\x84\xb9\xba\xbf\xe4\x6a\x5f\x6c\xcc\x26\xf6\x69\x72\x93\x7a\x42\x90\xb5\x82\x29\x5a\xdc\x65\x95\xb4\x38\x87\x8b\x1c\xbd\x78\xa9\xef\x7b\x10\x3a\x6b\xe2\xf3\xb1\xb8\xa2\x9a\x1f\x0b\xa7\x17\xc2\x53\x3f\x8e\x62\x5b\xb3\x99\xd9\x30\xad\x2f\x9e\xc7\x53\x9f\x69\xd9\x41\xfd\x07\xf3\x27\xf5\x85\x47\x1b\xd7\xae\x2e\xde\x09\xd3\x33\xf8\x64\x80\x46\x7e\x9c\x82\x02\x1b\xb9\xf5\x20\x4b\x69\x04\x3e\xb5\xe2\x36\xdf\xb6\x8b\xaf\xcd\xcd\xb4\xc4\xee\x6f\x4f\xab\x7d\x37\x06\x43\xd9\x09\xf3\x10\xc2\xeb\x23\x6d\x6d\x9e\xc6\x60\xb8\x00\x4d\x7a\x40\x10\x27\xe7\xba\xc1\xd3\x58\x9b\xbe\xdf\xea\x69\xb5\x5f\xcd\x1e\x2c\x26\x79\xf7\x6d\xb3\x79\xf8\xd3\x8d\x49\x7c\x2f\x32\x2b\xd9\xcf\xe2\x15\x9d\x8a\xd7\xcd\xfe\x31\x45\xb6\xe1\x69\x22\xc3\xb4\x79\xf2\xff\x7e\xf8\x3a\xb8\x0b\x29\x53\x14\x60\xe8\xec\xdd\x3c\x5b\xea\xb7\x96\xd7\xd5\x07\xc5\x9b\x94\xf9\x08\xad\xe2\x8f\xbc\x94\x50\xb7\xbc\x06\x9e\xb2\xc0\xa7\x4a\xa2\xce\xb4\x53\xaa\xe1\x29\x43\x46\xa8\x98\x03\x28\x45\xec\xcc\xe1\xa4\x4d\x79\x14\x11\x67\x68\xb1\x5d\xce\xf6\xee\x36\xff\xd6\x1e\x4c\x08\xc9\xa4\xc9\xee\x6e\x5f\xfc\xc0\x6c\x74\x57\x79\x0c\xdc\x6a\x3b\xee\x8e\xd9\xf9\x0c\xcf\x16\x06\xbb\xca\xe7\xe7\xf6\xca\x78\x9a\x10\x6d\x87\x24\xb6\xef\x0a\x57\x91\xb0\x47\xc1\x0b\xb4\xe9\xd0\xd1\x2c\x6b\xe7\x00\x70\xc3\x12\x15\x4d\xdc\x74\xab\x7f\xc4\x53\x11\x1a\x70\x63\x57\xbc\x58\x9e\x68\x1a\x8f\xf0\x43\xa9\x48\x62\x05\xed\x6a\xf0\x52\x94\x75\xdb\x6d\x76\x23\xd2\x90\x7b\x83\x1a\x9a\x7b\x73\xac\x00\x90\x49\x94\xdc\x68\xcd\xb1\x5d\x5d\x3e\xec\xef\xf5\x36\x90\x54\xa6\x01\x49\x67\x1c\x8a\x7c\x0e\xad\x0e\xcd\x07\xff\xfb\x9f\xf0\xbf\xf4\x7f\xfe\x7f\xdd\xa7\x51\x18\x19\x7d\x3c\x1e\x61\x67\x4d\x9d\x87\xfe\xe8\x1f\x49\xa1\xf2\x54\x79\xb1\x69\xd1\x41\x59\xf5\x8c\xcc\x87\xcf\x51\x31\x20\xb2\x1d\xb9\x9d\xcf\x8b\xfc\x06\x9f\x3a\x9a\xd1\xe8\xa7\xd4\xbd\x3d\xc3\xb5\x57\xa3\x4c\x11\x12\x2d\x5d\x60\xad\x9a\xed\xab\xd9\x75\xa9\x5b\xd6\xf2\xf1\x09\x5e\x8d\x44\x28\xfe\x7b\xdd\xef\x54\x33\x2b\x77\x06\xaf\x38\xe9\x36\xf4\x9f\xb8\xcb\xf3\xd8\x7f\xff\xf1\x37\x16\xf4\x54\x83\x2f\x88\xb5\x53\x16\xff\x6b\x4d\xcf\x0d\x8a\x75\xf2\x12\x98\x17\x32\xba\x3f\x2f\xc5\xdb\x23\xe4\xd7\xbb\xac\x0b\x72\x98\x07\x1e\xf5\x38\x07\x82\xf6\x7e\x7b\x14\x63\x2a\xdb\xca\x23\x9c\xdc\xdf\xfc\x90\x0b\xb7\xb7\x62\x5e\x5d\x4a\x54\xf3\xeb\xa2\xe5\xf8\xfb\xee\x5b\xfd\x38\x15\x56\x6d\x7d\xd4\xa9\x63\x3e\x67\xcc\x78\x67\x3c\x3f\x53\x1f\xaf\x7e\x59\x18\xc5\x28\xa3\x3b\x73\x35\xdc\x7c\x37\x1a\x40\x5a\x23\xdb\x3b\xec\x99\xdb\xdd\x06\x86\xbd\xbf\x0e\x6e\x18\xf3\xb5\x67\xe8\x4c\xcf\x78\xe3\x42\x3d\x1c\x19\x78\x66\xbb\x7e\x2a\xea\x97\xae\x2f\xc9\x42\xe9\xd1\x6b\x5e\x5e\xf2\xf6\xe6\x44\x71\x62\xfc\xf3\x73\xe3\x70\xe7\xb6\x82\xf6\xde\xc6\x91\xd9\xcd\xa4\xe9\x81\xcd\x9d\x68\xd7\xf0\x05\x67\x71\x9a\x52\xb6\x55\xd9\x94\xb5\xbd\x83\xb1\x8e\xe9\xf3\xad\x0b\x9e\xb2\xba\xdc\x64\x13\xf9\x51\xe8\x37\x3c\x79\xc2\x8d\xd3\xd3\xf2\x61\xb5\xd9\xf5\xd7\x6f\x96\x7a\xa9\x73\xce\xb4\x76\x53\xa3\xeb\x4a\x93\x98\x4a\xf3\xf3\xa2\xde\xd2\x7e\x3c\x82\xaf\x32\x16\x98\x0b\xcf\xaa\x99\xe5\x37\x31\x77\x84\x25\x8c\xd2\x35\xc8\x2a\xc4\xfa\x05\xfa\x78\x00\xc6\xb8\x4e\x99\x53\xfd\x6a\x0b\xb2\xd9\x7b\x8b\x1b\xf8\x10\x62\xe6\x4e\xa0\x20\x32\xc0\xf0\x73\xf5\x37\x57\x12\xc6\x03\x49\x51\xe6\xa6\x2c\x0a\xbd\xd6\xbb\x9a\x4c\x09\xbb\x14\x8b\x41\x64\x8c\x9b\xd0\xd8\xae\x93\x88\xfe\xf0\x6b\x85\x6f\x3c\xe1\x88\x48\x5e\xbd\x74\x71\xbb\xef\x18\xc6\xa3\x39\xd9\x33\x2d\xe1\x4c\x04\x09\x91\x56\x4d\xa5\x7f\x63\xb1\x71\x9f\x37\x5f\x98\x10\x92\x36\xb1\x26\x94\xca\x3e\x30\xa9\xfe\x3b\x4b\x06\x93\x11\x93\xb6\x8b\x73\x07\x35\x1c\xfc\x81\x6a\x04\x67\x52\x68\xd3\xe6\x68\x76\x85\xe5\x1f\xeb\xed\x8a\xea\xde\xed\x5c\x56\x01\x23\xfe\xd4\xb9\xcc\xc8\x15\xa7\xcf\xa0\xe1\x4c\xa5\x92\x08\x3a\xd4\x90\xd9\xed\x67\xbf\xbb\xbe\x04\x43\xcf\x68\x59\x1f\xb3\xaa\xde\x62\x55\x5c\x4a\x89\xed\x49\xd1\x4f\xa1\x99\x26\x1b\xa4\x45\x75\xfd\xd3\xe1\xed\xda\x8a\x17\x43\x96\x0a\x2b\x32\xf0\x82\xaa\x27\xdb\xea\x8e\x03\xd0\x1c\xa4\x65\xfa\xef\x40\x1a\x98\x8e\x85\xb3\xa5\x6f\xbb\x8a\xe3\x8e\x01\xf7\x42\x9f\xae\x2c\xab\x6e\x9a\x04\x6e\x44\x6a\x9a\x5e\x70\x3c\xde\x5a\xfb\x71\xee\x71\x4e\xdd\x56\x71\x39\xbe\xee\xea\xa2\xc4\xaf\x08\xca\xc5\xeb\xff\xe8\x6f\xb2\x03\x64\x12\xf7\x84\xc1\x59\x61\xde\xbc\xec\x03\x99\x4d\xce\x7d\x88\xa8\x73\x67\x69\x05\x7b\x50\xe7\xe2\x68\xb9\xd7\x76\x48\xc0\x9d\x77\x66\x13\x4c\x7c\xae\xd4\xc3\x79\x98\xca\x40\xb8\xb5\xbc\xac\x33\x9d\x49\xd3\x35\x6d\x7f\x47\xc8\x7c\x6e\x30\x30\x98\xab\x4b\xd7\x45\xe4\xa1\x40\x02\xdc\x9d\x8b\x6a\xbc\xbe\xf3\x50\x71\xa2\x0d\xcd\xf7\x8b\xc3\xee\xdb\x6a\xb7\x5b\x1a\xd4\x8a\xc3\xb1\xf2\x28\x34\x1e\x21\x8f\x78\xac\xb3\xfc\x79\x44\x46\xe0\x51\xec\x09\x5b\x05\x5b\xae\x77\xab\xf5\xe1\xdb\x6e\xb9\x7d\x9a\x3d\x2e\x87\x2f\x24\xf5\xed\xa0\x05\x9a\xa2\x21\x2e\x54\xb7\xf8\x49\x37\x5c\x68\x0d\x4e\xf0\xbf\x9c\xae\x2c\x4c\x14\x8b\xa8\xb3\x40\x4e\xbc\xc5\x2a\x3f\x5f\x6a\xe3\xe2\xe1\xae\x35\x0e\x90\xe8\xa7\x26\x76\x9f\x17\x30\x9e\x28\x71\x68\xb0\x64\xa0\xd4\xba\x7c\xfe\x6d\x78\xe6\x24\x20\xc9\x5c\x47\x28\x5c\x6f\x96\x4f\x23\x54\x1b\x4f\x42\x46\xe0\x5c\xb1\xef\x60\x5f\x3c\x89\x8d\xd1\xfd\x73\xf6\x13\xe7\x54\x42\xfe\x28\x1f\xe3\x89\x4c\x78\xda\x17\x35\x74\x1b\x18\x4f\x23\x45\x18\x8f\xb6\x5e\xfb\x23\xcb\xb1\x79\x11\x77\xd4\xc2\x1c\xdd\xec\x34\x0d\x89\xef\xb1\xd8\xae\x7f\xdc\xd1\xd5\x0e\xe2\xed\x26\xac\x32\x1c\x30\xd0\xe4\xec\x3b\x81\xbb\xe3\xa9\xf6\x68\x15\x3a\x9c\xb2\x9c\xb0\xf2\x4b\xd5\x26\xb7\x3c\xd5\x29\x15\x99\x8b\xbf\xb2\x23\xf6\x44\x5f\x38\x67\x21\xa7\x64\x69\x25\x8b\x9e\xb7\x68\xf3\x77\x70\x2c\xb9\xc7\xab\xe1\x7b\x9e\x30\x1f\x32\xe6\x38\xe7\xbe\xe1\xe4\xcc\x94\x72\x1b\xdd\xf4\xdb\xc0\x41\x51\x81\xd9\x74\x6c\x36\x8b\xc5\x74\x3c\xc5\x39\x22\x21\xdb\x49\x27\x0f\xf7\xc5\x5d\xf6\xb3\x7d\x5f\x44\xaa\x9d\xbd\xe1\xec\x78\xa4\x36\xc5\xb8\x8d\xc2\x25\xf8\x14\x8f\x9d\x8d\x16\x7a\x56\xe4\xe3\x98\x80\x4b\x30\x34\xc1\xba\x75\x6e\xc8\x8a\xbc\x33\x5d\x6b\x97\x50\x2e\x25\x37\x32\xaa\x84\xcb\x82\xf7\xbe\xba\x2b\xe7\xca\xd6\xed\xbf\xaf\xbe\x6d\x97\xf7\x05\x39\xbc\x56\xad\x3b\xd1\xe7\x4d\x26\xae\x78\x44\xf5\xaf\x67\x38\x21\x31\xcf\x4c\x27\xbd\x6b\x0b\x70\x8c\x53\xaa\xdf\xcf\x17\xcb\xdf\x3f\xab\xee\x72\x14\x22\x75\xbc\xd6\x7b\xc8\x8e\xa6\xa0\xfe\x00\xcd\x7f\x6f\xf1\x27\x51\xe7\x97\x39\x79\x24\xb8\xff\x6c\x7f\x21\xca\x90\x6a\xe6\x47\xa8\xea\x7b\x2a\xc7\xef\xf0\x7f\xfa\xd1\x06\x47\x64\x64\xd0\xf1\xfb\x72\x36\xa8\xfb\x0f\xef\xba\xf6\x03\xc2\x37\x9f\xe0\x15\x0f\x16\x91\x79\x70\xc5\xdb\xd1\x50\x9e\x12\x8d\xd8\x34\x67\x36\x58\x4a\xcc\xeb\xb5\xee\xc9\x52\x72\xae\xa5\x47\x5f\xaa\x5c\xbb\xea\x68\x94\xc5\x9f\xda\x5d\x91\x6b\xa5\x28\xe1\xcd\x2a\x2a\x69\x0e\xbc\x28\x47\x5f\xa8\x7d\xe6\x59\x43\x84\x47\xe8\xfa\x24\x56\xa1\xad\x1b\x16\x29\xc3\xef\x7f\xfe\x40\x90\x9d\x83\xe7\x23\x15\x8f\x4e\x59\x6e\x65\xf6\xfe\x2e\xe6\x74\x7c\xa2\xd4\x98\x12\x5b\x9d\xb4\xe5\xfe\xeb\x6f\xa3\x01\xda\x98\xe9\x6d\x7b\xf0\x48\xec\x28\x37\xc3\xd9\x04\x3e\xf7\xa9\xdc\xf2\x4c\x72\xde\x25\x12\xdd\xd4\xec\x9c\x2d\xa1\xef\xd3\xe2\x10\x04\xdc\x4f\x74\xbf\xf1\xd1\x91\xcc\x20\x90\x82\xe8\xf1\xab\xa7\xfd\x76\xb9\x59\xdd\x1d\x76\x5f\x57\x9b\xc3\xc3\xea\xb1\xad\xb8\x40\x18\x04\xf4\xc0\x0e\x75\x0f\x02\xb0\x2f\x56\x8b\xd9\x66\x28\xcb\x3f\x0e\xb2\x46\x13\x7b\xf8\xb3\xc2\xc0\xc4\x37\x75\xf1\x1d\x2e\xc7\xba\xfd\x32\xe6\xa3\xd1\xc5\x32\x3b\x75\x6f\x35\x83\x10\xbd\xd4\x32\xda\xd6\xe2\xaf\x55\xae\x0b\x7a\xaf\xcf\x83\x0e\x14\x44\x81\x20\x68\xa1\x33\xf3\x3c\x83\xc4\xea\x25\x3b\xdf\xca\x15\x70\x88\x13\x4d\x0e\x7c\x5f\xe0\x84\x65\xd5\xbc\x03\x6e\x8d\x87\x38\x05\xca\xf6\xf3\xa2\x2b\xf9\x8f\xf0\xb9\x10\x73\xa3\xf2\xd8\x76\x4c\xcb\xe2\xb9\x84\x53\xbb\x6c\xb9\x60\x0c\x12\x05\x54\x35\x3d\xb7\xf9\x23\xa4\x3c\xa2\xb5\x90\x9e\xfe\x43\xf1\xb3\x0b\xcd\x20\x85\x80\x70\xa9\x39\x9c\x9c\x11\x81\x3b\x22\x8d\x5c\x78\x65\x75\xf4\xe9\xf6\x34\x99\x27\xf1\xb1\xf6\x6f\xa3\xc6\x22\xb0\xc4\x74\xe6\x4f\xf0\xfe\x03\xb3\xdd\xe3\xee\xbb\x55\x54\x76\x5f\xc5\x52\x45\x05\x2e\x71\xb9\xce\x8e\xd6\xb1\x72\x7e\xb9\x2e\xeb\x1b\xba\xca\xe7\xe8\x0a\x60\xc2\x34\xd6\x8f\x94\x9a\x34\xef\xfb\xbd\xcc\xc6\x57\x23\x12\x92\x54\x20\x5c\x55\x5e\x15\xc7\x51\x5e\x04\x4c\xc6\x14\xbe\xd4\x08\xa7\x9d\x73\x08\xe1\xc0\x90\x91\xcc\x63\x75\x84\xea\x65\x6b\x91\xd2\x2d\x0b\x6f\x10\xca\xb7\x77\x9c\xe9\x94\x5b\x34\xb1\x59\x2d\xa7\x2b\xd4\xc0\x23\x15\x59\x92\x25\x1c\xb3\x0a\x07\xec\xe8\xe6\x30\x12\xd7\xb8\xd9\xdc\x0d\xe1\xa6\xd8\xc2\x5f\xee\xa8\x08\xcc\x64\xb5\xdd\x5d\x8b\xfa\x6b\xd1\x7e\xbd\xa6\x17\xc8\xd4\xa7\xb8\x83\xcc\xf9\x9f\x8a\xb2\x7e\xd9\x14\x06\xc4\xdc\x25\xcb\xa0\x94\x4f\xbf\xbf\xb8\x94\x63\x6b\x18\x0e\x98\xa6\x04\xbd\xaf\x2e\xe7\x26\xc1\x78\xc2\xb7\xcd\xa5\x7c\xfe\x05\xae\x14\x50\xa7\xc6\x18\xf9\x52\xe2\x97\x0e\xe3\x2e\xbc\x48\xa7\x26\x3c\x35\xf0\x58\x57\x3a\x18\xdc\x1d\xe1\xa5\x82\xd8\x29\x7b\xcc\x5e\x5f\x8a\xca\x06\x4c\xf6\xa0\x9f\x44\x44\x06\xfb\x5a\xe4\x58\xd5\x59\x65\x75\xbe\x97\xfb\xaf\x67\x83\x9a\x75\xe3\x18\xd2\x57\x6d\x31\xa7\xdc\xb1\x15\x51\x9b\xd8\xf0\x44\xe0\xa5\xe4\xec\xbd\x47\x3c\xb7\x60\x37\x11\x70\xa3\x3c\xb5\xb9\x23\x5e\x6e\x3f\xc6\x11\x81\x30\x8e\xc3\x4d\x28\xde\x6e\x7e\x22\x50\x26\x54\x10\x97\xeb\x7d\x51\xde\x97\x19\x8e\x49\xa4\x22\x40\xc9\x9a\x21\x8f\x19\xa9\x05\x53\xad\xaf\xd3\xa0\xb6\x83\xc2\x58\x52\xb5\xbc\x42\x54\xcd\x02\xa8\x9a\x7f\xfa\x5f\x1f\x62\x4a\xf2\x64\x4d\x9e\x65\x7b\xdc\x2b\x35\x08\x56\x45\xe4\xb7\xf0\x8b\x79\xf1\x7e\x5b\xf1\x11\x51\x10\xd3\xc2\x96\xe3\xdb\x1f\x12\xea\x1b\x10\xc5\x74\xa5\x66\x72\xf7\x11\x91\x4a\x08\xe9\x4f\x0a\x8a\x6b\x3d\x8a\x8f\x44\x2c\x13\x8a\xe9\x56\x8b\xf5\xd3\xe2\x08\x55\x95\xc9\xfe\x1a\x2b\x12\x61\xbc\xa8\x87\x32\x0b\x7f\x6f\xe7\x13\xa9\x8f\xd4\xde\xae\x21\x7f\x6d\xd2\xe0\x0a\x55\xeb\x7a\xd5\x04\x78\x82\x16\x23\xa3\x73\x29\x0a\x28\x55\x93\x1e\x66\xf9\xf3\xdc\x6a\xac\x4c\x4e\x61\xc1\xc2\x30\x08\x5b\x3f\x39\x52\xab\x23\x6f\x93\xf6\x59\xb3\x24\xe6\xc6\xc1\xb5\x06\x5b\x58\x08\x83\x7f\x0c\xcf\x91\xaa\xc8\x02\xd9\x28\x49\x73\x2f\xe8\x88\x03\x79\xe9\x91\xe0\x04\x53\x49\x8b\x9a\x21\xcd\x8d\x81\x75\x89\x1d\xc4\x21\x71\xb2\xce\xb4\xea\xb9\x1c\xaa\xbd\x38\xf0\x43\xaa\x82\x57\x17\x61\xdc\x70\xa7\x1b\x59\xc3\x9f\x0c\x90\x60\x8b\xa2\xc8\xf2\x67\x82\xc3\x8d\xbe\x19\xac\xc8\x15\x45\xba\xc3\xe0\x56\x88\x24\x26\x52\x3a\x25\xc2\x3b\x4b\xb6\x6f\xe7\xb4\x60\x11\x89\xc7\x43\x89\x3f\x10\x5f\x15\x5c\xab\xf5\xb9\xab\x05\x4d\x31\x40\x47\xd7\x27\xa4\x4c\x2c\xbc\xec\x31\xcb\xbf\x17\x35\x1a\x74\xd2\xef\xc3\x15\x5f\x48\x11\x51\x01\xbc\xba\x9e\x44\x71\x34\xca\x0f\xee\x2a\x14\x0f\xa9\xd0\x5f\xe4\xa6\x1a\xfb\x31\x40\x44\xa0\x17\x98\x07\x6c\xd8\x77\x6d\xf5\x61\x92\xfa\x25\x30\x0a\x53\xc3\x75\xe9\xc0\x27\xd3\x03\xb5\xa2\x7d\x96\x5e\x95\x1d\xd6\x2d\x3f\x7e\xf8\x23\x74\xb3\x76\x1b\x6d\x9a\x6f\x2b\x47\x0f\x9d\xa4\x09\x0a\xad\x25\x81\x93\xce\x2f\xab\xbb\x83\xfd\xa1\xd2\xf7\x43\xc2\x83\x6e\x11\xd4\x62\x80\x66\x70\x03\x02\x65\x1a\x15\x46\x94\x68\x76\xec\xdb\x6a\x72\xe9\x47\x61\xea\xda\x3f\xf1\xa1\x42\x28\xe5\xcb\x4c\x96\x45\x55\x3d\x15\xaa\x7d\xe6\xd2\x07\xdf\xa4\xab\x36\x4a\x5b\xd6\x2f\x46\x09\x67\xfa\xb5\x92\x01\x47\x82\xee\x37\x0b\x17\xd5\xd7\x0f\x6d\x26\x9c\x76\x33\xc0\xfe\xbf\xc3\x7e\x45\x6f\xcb\xed\xf7\x3b\x64\xc8\x90\x36\xb9\xd9\xa6\x49\xb9\x5d\x28\x25\x43\x6e\x0c\xe3\x9b\x79\xb2\xca\xd7\xe5\x33\xe4\xd9\xff\x1a\xe5\x15\xf9\x82\x6d\x56\x24\x43\x48\x98\xd5\x6b\x3e\x19\x20\xff\x84\x04\x2e\x97\x51\x64\x6c\x9d\x1c\x3e\xed\x33\x2d\x11\x2e\x63\xc6\xe9\x05\x3d\xe0\x29\xab\xff\x59\x08\x42\x1c\x6e\x8a\x6a\xc2\x9d\xfd\xf3\xd5\x4d\xc6\xe8\x41\xa7\x65\xde\x79\x51\x4f\xd6\x0d\x65\xe2\x45\xce\x3a\xe9\xbe\x28\xc9\xf7\x74\x32\x75\x1c\x7e\x47\x12\x32\x32\x10\x7f\x3e\x16\x02\x8e\x8f\x6d\x91\x55\xa6\xbe\x26\x86\x7e\x56\x2d\xff\xe7\x92\x9d\x51\xcd\xf2\x6b\xf8\xab\xe5\xd9\x7d\x96\x79\x34\x33\x5a\xd9\xa8\xc1\x6b\x20\x99\xc7\xb5\x63\xc3\xf6\xb4\x5e\x27\x67\xb8\x64\xbe\xaf\x4d\x57\xfe\xf9\xc7\x07\xc4\x74\xc9\x14\x12\xba\xf9\xf7\x3f\x17\x87\xed\xda\x09\xf5\x73\xc9\x83\x84\x8a\x18\x2f\xf0\x81\x34\x86\xe4\x61\x2c\xed\x8b\x2e\x5b\x2a\x76\xdc\x7e\x5e\x70\x82\x28\x2e\xdf\xcf\x58\x66\x04\x14\x3f\xf6\x37\x2f\x29\x7c\xe1\xe4\xc2\xf7\x86\x39\xea\x2a\x1b\xed\x88\x44\xa5\xd0\xe3\xdb\x99\xa9\x33\x2b\xb1\x17\xe3\xb7\x63\x25\x3a\xdd\x57\xeb\xe0\x36\x88\xef\xd8\x0d\xab\x43\x0a\x94\x14\x4c\xb6\x24\x04\xc8\xd5\xbe\x58\x56\xb4\xf8\x0e\xca\x3a\xa3\x3b\x26\xbd\xc4\xb5\x14\xc6\x11\x88\x94\x01\x3a\x41\x82\xcd\x11\x6a\x5d\x94\x27\x63\x10\xed\x7b\x9e\xe7\x8d\xde\x0d\x99\x68\xa2\x5c\x35\xef\xdf\x6a\xbd\x9f\xf5\xea\xf4\x52\x85\xd2\x94\x89\xc8\xbd\xac\xa3\x12\x48\x25\x24\xc5\x88\x67\xb8\x52\xcf\xbe\x0d\x95\x47\x53\xa0\xfd\x9d\x98\xa4\x94\xf7\xc8\xe2\x74\x86\x12\xf7\xc5\xea\x39\x2f\x4a\x5c\x40\x35\xc9\xde\x92\x98\x86\x54\x9b\xdd\xb4\x6e\xc7\xcd\xdf\x98\xdf\xbf\x57\xbf\xca\x37\xdc\xc7\x30\x25\xac\xab\xf1\xac\x96\x70\x3a\xa1\xfa\xd7\x05\x08\x3f\x64\x4f\xad\x3c\xee\xd3\x2b\xef\x4c\x07\xce\x99\x24\xd1\x0a\x8a\x77\xac\x40\x65\x6c\x2b\x04\xb1\xfb\x8c\x46\x15\xb9\xf8\xbc\xc9\xa9\xdb\x28\xd5\x0e\xf0\x43\x41\xb3\xc1\xe5\x7a\xed\x62\x19\xfd\x77\x7c\xc9\xff\xf1\x83\x0f\x36\x4e\xe5\xa7\x89\x88\x1c\xc9\x31\xbf\x74\xf1\x42\x8f\xae\xa7\x02\x2f\xe6\x43\xc4\xd3\x7d\x96\x43\x2e\x33\x38\xce\xa8\x2e\x61\x2e\x3d\x18\x54\xc3\x7d\xbb\xf0\xa8\x90\x31\x62\x56\x61\xdb\x08\x54\xa1\x88\x88\xfa\x55\x88\xc2\x95\x61\x54\x14\x70\x0a\x90\x9f\xd6\x87\xf9\x6c\xbf\x7f\x58\x1e\x1e\xd6\x5f\xda\x83\xdc\x64\x4f\x6f\x6e\xa7\x7d\xa4\x04\x72\xb8\x70\xa8\x38\x04\xaa\x4c\x80\x52\x1b\x92\x23\x1f\x1d\xe6\xc6\x41\xb3\xc2\xfa\x69\xf6\x7d\x00\x43\xf8\xc7\x68\xa4\x88\xa8\x47\xf2\x50\x3c\x7f\x26\xd2\x3b\x04\x41\xf5\xa1\x50\x2a\x46\x8f\xb5\x80\xd8\x6f\x55\xd9\xa7\xb0\xab\x24\x34\x52\xc5\xfb\x6f\xab\xc3\xec\xe1\x61\xbd\x98\xed\x57\xeb\xa7\xf6\xa8\x42\x5a\x34\x7e\xcc\x1e\x1e\x96\xfb\xc3\xc3\xfc\x30\x92\xe1\xe5\x2a\xf5\x02\x12\x4d\x11\x97\xeb\xa2\xbc\x56\x75\xaf\x97\x3a\x7c\xbc\x69\xac\x49\xd0\x1d\x55\x56\xdf\x41\x76\xbc\x4e\xc4\x13\x2a\xd5\x1e\x75\x27\x17\xbb\xe5\xce\x91\x5c\x14\xf3\x94\x54\xae\x46\x53\xd5\xcd\x0c\x5c\x0d\xe8\x30\x43\x90\xba\x62\x41\xe4\x9b\x22\x53\x4e\xfa\x56\x24\x36\x39\xbc\xab\x02\x63\x7a\xea\xae\x10\xd2\xda\x66\xde\x5e\xb7\xf4\x52\xee\x78\x26\x56\xbf\x61\x0e\xf9\xeb\xd3\x58\xe5\x46\xc9\x58\x39\xd4\x9e\x61\x3f\xf6\x2d\x46\xdc\x18\xe0\x54\x9b\x17\x28\x8b\xd3\xa0\xc9\xa2\x24\x1a\x31\x20\x99\xd5\xd7\x4d\x51\x1c\x17\x97\xda\x16\x09\x3b\xac\x96\xd2\x49\x4c\xeb\x54\x7e\x39\x1e\xfb\xc5\x0a\xa5\x13\xe3\x1c\xd5\x09\x6b\x98\xd5\x7b\x10\x24\xf4\xe2\x46\xa5\x99\x4f\x7b\xb0\x69\x31\xb4\x61\xa3\x83\x0e\x11\xc2\xae\x53\x44\xb1\x06\x35\xee\xb3\x10\xd9\xc4\xaf\x99\xfc\x4d\x30\x62\x69\xcc\x56\x8c\x6c\xf8\x9b\xb5\x08\x13\xbf\x63\xd8\x92\xdc\x50\xcf\x9c\x83\x2b\x2d\x8d\x58\x4b\xfd\x0b\xf7\xb3\xd1\x9b\xa1\x95\x47\x3d\x8c\x21\x2f\xe9\x57\xde\x06\x5c\x69\x34\x00\xe2\x12\x9b\x8b\x30\xa4\x8d\xf1\x08\x49\xb5\x06\x93\xab\xf7\x68\x8b\x37\xb3\x03\x3d\xcf\xa8\x96\x92\x38\xe3\x8f\x11\xe3\xcf\x6d\x0a\xe8\xc5\x86\xda\x5f\xbd\xc0\x50\xfb\x03\xfd\x50\x51\x29\x4d\x15\x9d\x21\xc9\xf4\x37\xf9\x5c\x43\xdc\x1a\x96\xf5\x72\x16\xf4\x25\x2a\x18\x28\xdc\xdb\x89\xd3\x03\xa2\x60\x10\x29\x72\xd5\x6e\x5d\xbe\x88\x92\xd9\x96\x9e\x31\x48\x7d\xcf\xb8\xab\xbb\xb8\x80\xcc\x59\x88\x12\x63\x87\x84\x69\x4a\x73\xac\x33\xf2\x96\x45\x39\x8a\x98\x30\x94\x3e\x72\x27\xcb\xfd\x5e\xdf\x08\xcc\x73\x8c\x3c\x20\x87\x75\x38\x1e\x7f\xb4\x78\x23\x8c\xb4\x20\x1b\xbe\x56\xa2\x4e\x63\xb9\xba\x85\x23\x0f\xef\x49\xec\x0b\x5f\xf5\xa9\x96\xf6\xe6\xf6\x1f\xbf\x5b\x16\x30\x8e\x8c\x8a\xaa\x2a\x8b\xf3\xb0\x42\xd6\x0e\x49\x18\x27\xfe\x86\xf9\x81\x77\x65\xd1\xb6\x1f\x31\x0d\x8d\x10\xb4\x15\x03\x30\x0a\x0f\x37\x15\xa6\x71\xa3\x0c\x59\x14\x12\x1c\xec\x92\xe3\x3b\x9e\xce\xa3\x44\x15\x59\x6c\xec\xc4\x8a\xa3\x5a\x46\x5b\x94\x57\x79\xc4\x79\x1b\x96\x20\x03\x95\x1a\x30\xc4\x86\xa4\x39\xfb\xb8\x4d\xe4\x2a\x8c\xa0\x93\xa7\xdb\xa2\x1e\x09\x2f\x0f\xdf\x17\x84\x10\x7c\x1b\x01\x7e\xdd\x3f\x2c\x76\x67\xc3\xbe\x23\xea\xce\x65\x18\x81\x0d\xef\x0a\x30\x46\xc9\xfe\xec\x78\x7e\x01\xeb\xc4\x31\xd0\xcd\xef\x7e\xfc\xe8\x1b\x85\xc7\xad\x3e\xca\xe2\x25\x93\xaf\x98\x7f\xbd\x01\x7a\xa3\x88\x8c\x5e\xd9\x6c\xb3\xd9\xae\xbf\xcf\x1e\x3e\xb8\x7a\x01\x3c\x34\xea\x19\x22\xab\x47\xba\x47\x6e\x88\x92\xb4\xd1\x65\x95\x05\xfe\xb8\x0a\x71\xaf\x5c\x34\x3c\xa9\x0c\xd0\xa8\x87\x37\x6b\xd2\x13\xbe\xcd\x8b\xb6\xd9\x8e\x28\x13\x22\xa3\xe5\xf8\x5e\xff\xf6\x7f\xa4\x02\x20\x22\x77\xfc\x56\x03\x22\x70\x32\x1a\xc3\x2b\xd6\x5e\x44\xb0\x27\x5d\xe2\x87\x2d\x02\x37\x34\x90\x54\x07\xfb\xba\x5f\xb8\x2b\xd4\x61\x48\x55\xcf\x37\x82\x4d\xac\x97\x8f\xed\x81\x24\xd1\x36\x64\x26\xe2\xeb\x8f\x8c\xa4\xab\x3f\x48\x03\xb5\x17\xc6\x54\x7c\x32\xca\x3d\x9f\xb4\xdc\xb4\x17\x7b\x44\x36\xac\xb3\x13\x9a\x8a\x45\x5f\x3c\x4e\xfb\x91\xa6\x3d\xe5\x98\x89\x12\xca\xab\x1f\x39\xe5\x83\x76\x40\x82\xa4\x9d\xd4\x3a\x2b\xf4\x01\xb2\x3a\xf0\x62\x57\x88\x32\xd9\x09\x1d\x9e\x08\x13\x74\x10\xa8\xa4\x83\xfe\x37\x5b\x71\x75\x86\x56\xaf\x70\xf8\x90\x75\xc0\x12\x6d\x57\x24\x52\x7d\xae\xb2\xe7\x47\x18\xc3\x3e\x75\x20\xfd\xc4\x3e\xb1\x2f\x85\xba\x39\x68\x7a\xc5\x15\xe4\x35\x2c\x8e\x70\xe9\xae\x19\xa5\x93\x21\x59\xbe\xd7\x68\x24\x77\x46\x9f\x0e\xb9\x81\x93\x74\x8a\x2d\x07\x01\x79\x7e\x63\xe7\xc7\x75\xe4\xfb\xd4\x73\xb9\x54\x2d\x5b\x7e\xfa\x91\x45\x91\x69\x6b\x13\x8d\xe2\x78\x6c\xde\xe1\x1b\xc7\x34\xae\xe3\x50\x18\x28\x2b\xbd\xa7\x26\x16\x98\x68\xf5\xe8\x18\x99\xec\x8c\x8e\xf6\xc6\xad\xf2\xd3\x95\x57\xa7\x7e\x44\x85\x47\x47\x84\x37\x68\xdd\xea\x4b\x51\x6c\xda\x06\xf4\xe8\x5b\xd2\xd0\x0f\x9d\x00\xfc\x0b\x8e\x35\x4c\x74\xaa\x4c\x06\xbb\x5f\xef\x67\x0f\x87\xcd\x72\xbb\xd8\x2e\x9f\xf6\x0e\x2b\xae\x99\xa5\x07\x75\x9e\xb8\x8b\xa2\x28\x55\x35\x88\xc1\x34\x4b\x04\x29\x5e\xd9\x55\x7a\x8a\xf5\xd6\x8f\x8d\x35\x13\x31\x19\x46\xfd\xf3\xb1\x9f\x2c\x93\xc1\x55\xda\x61\x62\x7a\xfb\xa8\x66\x9a\x19\xad\xf4\xb7\xac\x96\x2f\xeb\xf6\x23\xdc\x03\x02\x55\x29\xab\x02\xb6\xca\x07\xc4\x0f\xcd\x03\x41\x1b\xbd\x38\x82\x7c\x3d\xde\x40\x7f\x34\x8f\x04\xf1\x5d\x44\x56\x18\xb3\x89\xbf\x83\xc2\xd7\x80\x91\x6e\x85\x6d\x0e\x04\x59\x5e\xad\x7b\xea\xd1\x5c\x83\x16\x64\x8a\xf7\x50\x3c\xcf\x33\x45\x56\x50\x7f\xaf\x34\xa2\x85\x6f\x5c\xf3\x9a\x7c\xf9\x8f\x6d\x5f\xf4\x53\x8b\x50\xf2\xbe\x1d\xce\xd0\xb8\x7a\x74\x9a\x28\x0e\x74\x07\x4c\x58\xdd\xb5\x27\x51\x31\xc5\x61\x24\x1d\x3f\x78\x8a\xd2\x33\x9e\x13\x96\xb7\x65\x21\x38\xee\x73\x32\x62\xa4\x37\xd6\x72\x21\x69\x5e\xdf\xb4\x92\xb5\x8a\xcc\xcb\x54\x61\xbd\xc5\x9f\xc5\xf1\xd6\x79\x96\x6b\x15\x07\x64\xc2\x75\xb7\xfe\x71\x78\x6c\xf3\x1e\x8d\x3a\x14\xce\x87\xf5\x71\x64\xd9\xcb\xb5\xf6\x0d\xb9\xa8\x2a\x8e\x99\xcc\x6a\xb8\xa3\xb3\x4b\x70\x02\x14\x5a\x83\x20\xd4\xdf\x13\xbe\x7d\x9c\xda\x81\xe7\x85\x82\xb8\x44\xbb\xc5\x62\xb6\x9a\x14\x08\x71\x03\x13\xc5\x8c\x26\xf6\x5b\xf3\x9e\xed\x70\x84\x9a\x04\xcf\xe3\x46\x2b\xf9\xfd\xfd\x3d\xed\x1e\x14\x78\x3e\x37\x8a\x2f\xeb\xea\xa5\x89\xab\xb3\xdc\x24\xc9\xfd\xdf\x03\x9e\xaf\xa4\x97\xb4\x48\xfe\xf1\xa9\x7d\xa5\x68\xed\x9b\x5b\x66\x91\x3b\x75\xc0\xe3\xb8\xaf\xf8\xf0\x88\xeb\x9c\xd2\x80\xfe\xb3\x04\x2f\x90\x11\xbd\x4a\x60\x08\xd4\x9f\x2a\xd4\x80\x17\x28\x83\x94\xdd\x43\xfe\xfa\xa3\xe3\xba\xba\xef\x0c\x3d\xa4\x0a\x9b\x00\x01\xed\xdf\xa2\x28\x91\xad\xf9\xe8\x7d\x59\x98\x64\xa4\x3d\x9c\x84\xa4\xab\x36\x73\x48\x02\xfb\xf7\x28\x14\x46\x31\xfa\x05\xe5\xeb\x2e\x7b\xbe\xf1\x67\x99\x7c\xed\x46\x0f\x26\x8a\x58\xe2\xc4\x9c\xb2\x12\xd7\xaf\x7d\x8b\x0f\xf0\x22\x66\x22\x2e\x50\xea\xeb\x59\x3c\x15\xea\x76\x93\xef\xbf\xce\xe0\xc5\x5e\x12\xa1\xeb\x61\x5f\xf2\xfa\xda\x67\xd4\x4d\x76\x69\xc1\x8b\x59\x4a\xef\xe2\xb1\x78\x9e\x8d\xb6\x1e\xf0\x12\x5f\x51\x02\x9f\x55\x5b\x04\x75\xdd\x17\xbb\x6b\x5e\xbf\x60\x95\xfd\x2f\x8e\x26\x41\x92\x68\x42\x56\xdb\xc5\xd5\xd5\xfb\xb7\x08\xf2\xc5\xa5\x99\xe0\xf1\xd4\x23\xc0\xeb\x41\x5c\xca\xbc\xf5\x66\xed\x6f\xe3\xe0\x71\x29\xa8\xf7\xb9\x81\xba\x3f\x15\x39\x26\xf4\xe7\x1e\x85\x79\x74\xb1\x90\x48\x2a\xb6\xce\xee\x97\xf3\xc1\x54\x03\xa6\xa9\x68\xd5\x26\xb7\x4d\x66\x71\x6b\x80\xc0\xec\x70\x11\x63\x1c\xf7\x66\xe6\x87\x18\x19\xf0\x44\x12\xf8\xb6\xec\x4a\x91\x52\x4f\x10\x19\x3c\x01\x2a\x30\x5d\x98\x26\x74\x1b\x00\xc0\xc0\x13\x92\x91\x25\x93\xed\x25\xee\x0a\x99\xc1\x71\xa5\xd0\x54\xdb\xa6\x56\x54\xf0\x64\xe8\x51\x8e\xf3\x05\xf3\x62\xe3\xc8\x8a\xe0\xc9\x88\x33\x6c\xf5\xb9\xff\x59\x08\x2b\x58\x5a\xbd\x64\xe7\xe9\xbc\x13\x3c\x99\x26\x86\x02\x0a\x47\xd9\xfc\xbe\xbb\xec\x67\x35\x6d\x12\x0c\x9e\x54\x92\xf9\x8e\xe2\x6e\x94\xde\xe6\xd7\x95\xfa\x6d\x38\xf7\x54\x2c\x28\xf7\x99\x63\x59\x5e\x1f\xe0\x15\xfb\x0f\x4f\x31\x53\x97\xc9\x64\x71\x87\x79\x71\xca\x72\xa8\x8b\xb2\x67\x0d\x03\xbe\x17\x24\xad\x77\x0c\x01\x8b\x4f\xe3\xbe\x1c\xf8\x5e\x0a\xe4\xf1\xb2\x80\xbf\x2e\x35\x7e\x84\xba\xff\x05\x07\x62\x78\x27\x7c\x3f\x34\xee\x2a\x4d\xa8\xfd\xb8\xbf\x2f\xca\x2f\x30\xc4\xc6\x35\x43\x52\x8a\x1d\xe6\xcd\xde\xbb\xc3\x1e\x09\x16\x7c\x3f\x0e\x08\x72\xfa\x58\x94\xf8\x0c\x59\xfe\x0b\x92\x37\xf8\xbe\x8c\x08\x76\xd6\xcc\x09\x83\xc1\x7a\xc8\x24\xe6\x23\x89\x5e\xf0\x03\x95\x52\xba\x59\x9c\x31\xff\xd2\xda\x49\x80\x1f\x7a\x22\x61\x9d\x0c\x20\x96\xc6\x84\xa7\xc6\xf7\xfa\x40\x5e\x90\x83\xf5\xd3\x0f\x43\x6d\xf5\x4a\xab\x6a\xc0\xe8\xaf\x3e\x00\x67\x82\x1f\x82\xe6\x86\x94\xbb\xc3\xf2\x67\x26\xfb\x52\x02\xe0\x47\x1e\x52\xc5\xe2\x31\xab\x87\x7f\x8f\x0d\x94\xdc\xed\xe9\xbf\x6f\xd7\x6e\xc5\x59\x8f\x1d\x07\x87\x77\x24\x4a\x31\x36\xf3\x77\xb0\x1e\xcc\x72\xd5\x55\x0f\xc0\x8f\x94\x4e\x44\xa7\xd7\xf2\x8c\x5b\x94\xd9\x39\xc3\xbc\x6e\xcb\xed\xe0\x27\x1c\xa5\xcb\x51\xa1\x7a\xb9\xcb\x9e\x47\xc1\x01\xf8\x09\x08\x5a\xef\x5d\xc1\xbf\xfd\xa8\x34\x2a\xb7\x77\x59\x25\x4b\xa8\x5e\xfa\x6a\x2a\xe0\xa7\xe0\x13\x2c\x95\xe0\x80\x44\x18\x72\x47\x18\x4b\x88\x5a\xd8\xd6\x73\xe3\x1b\x3f\xf5\xff\xc4\xff\x6d\x07\x2b\x1d\xb4\x92\x56\xf5\x6d\x69\xde\x8d\xe3\x89\xb6\x86\x48\xeb\x1c\xad\xdf\x55\x2b\xd5\x09\x3e\x53\x2a\x30\xa9\x2a\xc9\x19\x3c\x16\xaa\xbd\x05\x3c\x34\x1e\xf6\xdf\x8b\xba\xdd\xc5\x7c\xce\x12\x4a\xd1\xca\xc2\x68\x0b\xdb\x02\xcf\xa7\x1d\x33\xf0\x21\xd6\x14\xfb\x55\xc5\x71\x80\xce\x02\x1f\xa4\x20\x3d\xb7\x03\x65\xbe\x1d\xfc\x12\x7c\x50\x1e\x69\x90\xf4\xeb\x30\xeb\xcb\x87\x82\x1c\xf6\x53\x22\x44\xc1\x2c\xac\xb3\x1a\x01\x4f\xc1\x17\xe0\xa3\xf1\x8b\xe9\xe4\x15\xfe\xf1\xa1\xdc\x21\xf8\x42\x21\xe3\x8e\xd4\x57\x61\x7d\x68\x52\x86\x75\x09\xb2\xc9\x9d\x9a\x7c\xa7\x73\x9d\x01\x5f\xc6\x3c\xc2\xae\x01\x6e\x3d\x22\xae\xa6\xc3\xdd\xb5\x0e\xc0\x97\x60\x7a\xc5\x2d\x56\x6f\x81\xc5\xe8\x42\x25\x62\xdc\x0b\x56\x7e\x7f\x5a\x34\xa1\xff\x16\x7a\x2c\x7e\x3b\x52\x71\xa9\xed\x44\xfd\x77\x91\xe3\x9e\xe8\x5b\x66\x45\x0d\x06\x00\x4b\xf0\x95\xf0\x49\x16\x60\x87\xb9\xda\x62\x75\x39\xd6\x16\x94\x37\x1d\x04\xf8\x18\x69\xea\x89\x37\x0b\x4c\xf1\x13\xcb\xe1\xc6\xe3\xa3\x25\x79\xe6\xf8\xb6\x93\x2f\x46\xe9\xd0\xc8\x5b\xf5\x7e\xab\xe6\xbe\x53\x35\x3c\x60\xae\x54\x9b\xc0\x40\xe0\xa5\x21\xd8\x75\xda\x68\x3c\x50\x3f\xa0\x6a\x0f\x33\x49\x1b\xcb\xef\x99\x7c\xdd\xbf\xf4\x37\x81\xc0\x43\xe3\xeb\xd4\x3c\xc6\x7a\xb0\xe7\x07\x01\x37\x1d\x93\x66\xa6\xf5\xd1\xc2\x10\x84\x5e\x40\xaf\x65\x93\xd2\xec\xe0\x88\xed\x47\xc2\x30\x21\xee\x7a\x93\xe5\xcd\x1e\x0c\xfd\xf9\x93\x75\x37\x88\x30\x25\x61\xa6\xf7\xeb\x5f\xf5\x14\x3d\x67\x30\x38\x8e\x7d\x27\xda\x4e\x78\x18\x73\xdf\x1f\xb1\xaa\xda\x02\x1a\x04\xb1\x56\x71\xda\x1a\x8c\x0c\x0d\xee\x07\x4f\x3b\x48\x94\x48\xb1\xc5\x74\x58\xf1\x11\x83\xb6\xeb\x5e\x46\x18\x4f\x92\x20\xd1\x48\x82\x94\x0a\x8f\xd9\x4f\x2c\x07\xd2\x99\x10\xa4\xe8\xa5\x5e\xcb\x4b\x26\x88\x19\x11\x01\xf3\x09\x3e\x9f\xfd\x08\x83\xa4\xe7\x32\x58\x9a\xd5\x76\x18\x08\x75\x93\x20\x60\x02\xbc\x3e\x04\x73\x6b\x40\xb7\x0f\x85\x7c\xd5\xd9\x11\xbf\x6d\x57\xc3\x0b\xe2\x7e\x64\xc0\x1c\x59\xbe\x43\x87\x78\x74\x37\x8b\x07\x92\x96\xc9\x79\x56\xcb\x22\xcb\x37\xc5\x5b\xbb\x3a\x05\x90\x30\x22\xad\xfd\xab\xbf\xa1\x04\xc0\x38\x4f\x6d\xec\x49\x5f\xac\xda\x23\x5c\x90\x9d\x50\x2b\xde\x7b\xec\x69\x07\xf9\x1f\xac\x66\x01\x48\x93\x05\x7d\xb1\xaf\x0f\x59\x85\xff\x02\x7c\xf5\x0f\xfb\xa6\x5d\x3a\x14\x2c\x04\xa0\x39\xd5\xcb\xcf\x76\x07\xe9\xd3\x8e\x20\x10\x71\x4a\x3b\x05\xd4\x87\xb3\x79\xb0\xd9\x71\xfc\x60\x45\x9a\x74\x1e\x0b\x0e\x75\x19\xb8\x33\xc8\x54\x73\x27\xe5\x6e\x9e\xe6\xf0\xd3\x12\x0c\x6b\xac\xc4\xbf\x50\xd6\xcb\xfa\xa5\x67\xc9\x62\x71\xcf\xed\xa9\xa4\x3f\xd4\x4b\xb7\x21\xc2\xf4\x1d\x52\x29\x1a\xa9\x0f\x75\x84\x6a\xf0\x2c\x14\x8b\x68\xe2\x80\x52\x73\x57\x80\xf8\xcc\x89\x03\x02\x85\x8a\x60\x56\xbb\x99\x51\xe2\x32\xea\x78\xee\x7c\xc8\x15\xad\xf7\xd5\x25\xaf\xb0\x76\x99\xda\x5d\x6f\x99\xd1\x01\x37\x53\xf5\x08\xd9\x69\xb9\xde\x49\x03\xa8\xbb\x1f\xe9\xf0\x43\xa0\x43\x23\x09\x96\x5f\x4e\x36\xf7\xa8\x48\x06\xc8\x1d\x4e\xc1\x0a\x66\xe4\xc5\x25\x97\x23\x8f\x11\x08\xbd\xd4\xac\x96\x15\xe6\xca\x9a\xba\xa1\x7d\xcf\xfb\x11\xd2\x24\xaf\xd3\x9d\x82\xc7\x14\xd1\x29\xcb\x61\xff\x82\xf5\x27\xc5\x37\x08\x3d\x11\xc4\xd6\xfe\x6c\x9f\xc9\x57\x1c\x06\x28\xa1\x1f\xc9\xc4\x66\xeb\xb3\xba\x38\x75\xd1\x4d\xe8\x8b\xb0\xfd\xa2\x1a\x8d\xfd\xe5\xef\x78\x9d\x34\xa4\x84\xd0\xc7\x84\x45\x1d\x56\xde\x5c\xd2\x8e\x04\x25\xba\xf7\x32\x0c\xd2\x44\x98\x16\xc1\x63\xa1\xa8\x25\xb8\xca\xcd\x76\x30\xb5\x63\xbb\x77\x20\x0c\x03\x9f\xa2\xfd\xe7\x4c\xd7\xcd\x92\xd3\x63\x73\x43\x18\x0a\x49\x31\x71\x56\xad\xf2\x1b\x96\x1a\x84\x91\x08\xa3\xb8\xad\x3b\x57\x2d\xf5\xbf\x3b\x4c\x92\x99\xc4\x52\xdf\x94\xf8\x33\x2b\x2e\x95\x69\x75\x7e\x1a\xae\x84\x91\x82\xd8\x92\x80\xf7\x24\xc0\x3f\xcc\xc9\xdd\xa5\xc7\x81\x99\x99\xb5\x95\xa7\x77\x1c\x81\xc3\xf4\x5b\x11\xc6\x31\xa7\x1a\x19\xd4\xc6\x01\xad\x9d\x41\x83\x48\x64\xf0\x08\xe3\x58\x51\x07\xf9\xd0\x83\x19\x1c\x0b\xa8\xcd\x4a\x31\x60\x87\xba\x4f\x30\x19\x44\x6d\x0e\xb7\x81\x4b\xb7\xdc\x85\x31\x84\xd4\x49\x68\xfb\xf7\x1f\x4b\x60\xb7\x9f\x00\xe2\x5b\x28\x84\xfa\x85\xa8\x95\xda\xf7\xdc\xe9\x92\xd0\x77\xd6\xfd\xf7\x19\xd4\x1b\x82\xb3\xdd\xe8\x3b\x40\x98\x30\x24\x20\x62\x56\xfd\x78\xec\x70\xdb\x10\x26\x16\xdc\x36\x60\xca\xfe\x36\x04\x89\x43\x98\xc6\x91\x84\x49\xfe\xff\xb6\xf7\xac\xd3\x24\xa1\xb7\xd3\x52\x88\xc7\xe0\x18\x13\x0f\x79\xed\xbf\x9f\x3f\x7f\xee\x4b\x6a\xb1\x65\x55\x6b\x96\xe7\xbe\x07\x3c\xed\xc4\x10\x0d\x91\xca\xb5\xa1\xf2\xba\x2c\x28\xf4\x72\x03\x43\x63\x5f\x70\x87\xa7\xc2\xe1\xd5\xc7\xdf\xfa\x37\xf3\xcb\xd1\xd5\x09\xa6\x89\x32\x34\x53\x3f\xb1\xac\xb3\x8a\xe0\x07\x1b\xb8\x16\x23\x17\x4f\x08\x65\x12\x52\x64\x43\x09\x02\x79\x75\x14\x87\xd2\x68\x26\xbb\xcb\x94\xcc\x2c\x21\x4d\xe4\x7d\x87\x12\xae\x2e\x6b\x5a\xe6\x3f\xb3\xb2\xc8\x6f\xa0\x03\x10\x4a\x6e\xfc\x8e\x9b\xd4\xa8\xa8\xea\x6d\x51\x9c\x1e\xfa\xc8\x86\xd1\xea\x81\x5c\x44\xb1\x4d\x8b\x4b\x83\xb9\x18\x45\xbb\x21\x2a\x2f\xb2\x91\xe0\xdd\xac\x14\x59\x5d\x42\x79\xed\x94\xfc\xdc\xf3\xb3\xa3\xb5\x8f\xdc\x05\xe5\xf3\x63\x21\x88\x80\xba\xb5\x25\x96\xee\x49\xe9\x18\xa4\x76\xeb\x71\xf5\x3c\x81\x79\x82\x50\x73\xce\x0c\x40\x43\x21\x9e\x26\xf9\x52\x10\x36\x59\x4f\xd2\x47\x05\x18\xf3\xff\xe1\x6f\x88\xbc\x08\xc3\xa8\xad\x5d\x6e\x8a\xe2\xb8\x2d\xc6\x05\x90\xc8\x4b\x25\x09\xd6\x3d\x6d\x17\xfd\x5d\x31\xf2\xa4\xf9\x30\x28\x65\x63\xba\x8e\xdb\x3a\x6c\xe1\x43\xe4\x07\xb1\x59\x45\xac\xee\xcb\x13\xbe\x0f\x55\x65\xdd\x38\xad\x28\xe6\x3b\x42\x45\xad\x19\x6b\x2b\xd7\x62\xfe\x21\x6a\x76\x3c\x52\x08\x81\xf3\xc1\x7e\xcb\x60\x03\x89\x22\x66\x04\x79\x0e\x2f\x90\xab\x23\xce\xb4\xce\x8e\xd9\xdf\x40\x9c\xdb\x8f\xc7\x2c\x66\x9d\x44\x55\x13\xc9\x6d\xd6\x9b\x8f\xed\x42\x21\x8a\x01\x3c\xaf\x23\xa9\xf7\xa8\xae\x76\x40\x62\xc9\x8e\x15\x1a\xd4\xe1\xae\xc6\x73\x30\xfa\xdd\x49\x80\x4e\xf7\x84\x9c\x98\xfb\xb5\xa1\x28\x11\x8c\xa0\x5d\xcd\xc5\x34\xcb\x87\x29\x00\x4c\xb3\xcd\x20\x4a\x03\x41\x19\xca\xee\x35\x3b\x1e\x9b\x04\xa4\x23\xa9\x42\x94\xca\x38\x31\x0e\xb6\xd4\xe2\x35\x3d\xcb\x41\x02\x15\x31\x11\x09\x6b\x91\x67\x08\x64\xf3\xd2\x85\x13\x11\x53\xc6\x20\xaf\x93\x40\xff\x2b\x43\x95\xc1\xed\x66\x3f\xba\x28\xce\x22\x82\x1a\x50\xbd\xcf\x54\xf5\xdd\x11\xf0\x89\x55\xf0\xfd\x72\x7c\x76\x8d\x41\x88\x20\x30\x15\xf9\xdd\xcb\x35\xc7\x11\x84\x64\xe2\x9d\x88\x80\x79\x54\xda\x7e\x84\xba\xcc\x8a\xea\x15\xda\x13\x49\x3f\xee\x63\x1c\x66\x5a\x1b\x56\xd8\xf0\x6c\x76\xb4\x10\xbe\xd5\x0b\x34\xb3\xb3\x2f\x75\xdb\xfe\x16\x19\x05\xa9\x01\xaa\x52\x73\x7a\x75\xbf\x1b\xbd\x30\x32\x56\x24\x6d\x01\x4a\xb9\x9c\xe9\x06\x50\xd3\x07\x99\x41\xa4\x3c\x19\x4a\x9b\xe6\x0d\x99\xdb\x10\xa9\xd0\xf3\x8c\x48\xf1\x7a\x77\x3e\xb6\x35\x99\x48\x85\x09\xb7\x95\x3b\x53\x61\xba\x79\xe9\x14\x7a\xb4\x0f\xfe\xbe\x59\x6f\x0e\xb3\xed\xf2\x69\x76\x58\xac\x9f\xf6\xdb\xd9\x62\x7f\x98\xdd\xdd\x6d\x97\x3b\x17\x91\x46\x18\x63\x0c\x86\x93\x96\xe9\xab\x95\x93\x99\xba\xd1\x3a\x8c\x28\x8f\xfc\x42\x75\x28\x23\xd1\xb7\xcf\x4e\x7d\x1f\x78\x37\x32\x8e\x7d\x63\xe3\x6f\xfc\x6f\xbe\x95\xed\x1b\xa1\x79\x42\x54\x90\x56\x05\xca\x48\xa5\x50\x24\xd1\x65\x60\x91\x16\x61\xc2\x2d\x0a\xd0\x6c\x46\x9f\x05\x96\x91\x46\x41\x0f\x2f\x73\x26\xac\xf6\xeb\x62\x2f\x90\x66\xf1\x51\x6a\x9e\xa9\x7d\xb1\xab\xbb\x02\x48\xec\x25\x06\x44\x30\xd2\x80\xf8\x2c\x23\x62\x2e\x2f\xea\xdf\x99\xd8\x63\xa1\x46\x57\x27\x26\x58\xd7\x1c\xfb\xbb\x7d\xec\x31\x45\x7a\x5e\x2a\xcf\xfb\xeb\x68\xec\x71\x03\x40\xca\xf1\xbd\x2e\x72\xac\x8b\x67\xac\xcf\x90\xa9\xee\xb8\xa6\xcb\xb7\x20\x7e\x54\x07\x74\x7a\x4c\x10\x7b\x22\xa4\xb6\xf0\x6a\x67\xf8\xfc\xed\x03\x7e\x9c\x7d\x59\x2d\x0e\x4f\xdf\x1e\xe7\xcb\xad\x1b\xec\x33\xa3\xa1\x65\xec\x18\x5a\xd4\xda\x70\xfa\xc6\x3e\x18\x2d\xad\x0a\x6b\x53\x8c\x20\xd7\xb8\xee\xb9\xc4\x3e\x20\xb5\x7d\xb7\xb3\xfd\xf2\xb0\x58\x6f\x9f\x96\xdb\xdd\x7e\xfd\xb4\x74\x5f\x13\x78\xa6\x60\xf5\x70\xb1\x22\x70\x9f\xbd\xba\x71\x10\x07\xc6\x3e\x57\xf4\x59\x69\x10\x07\x42\x0a\xc3\x27\xda\xed\x17\x65\xf1\xd6\x0b\xc2\xe2\x40\xa6\xd4\x9c\xb4\xb9\x79\x31\xf2\xe8\x6b\x06\x00\x91\xbd\xbe\x2e\xfb\xdd\x78\x7b\x30\x14\xc2\xb7\x46\x0e\x60\x7a\xed\x05\xf5\xbc\x06\xd3\x29\x8e\x22\x03\x69\x70\x8a\xf1\xa3\x93\xc4\x5e\x42\xd5\x41\x53\xec\x82\xe3\x7d\x51\x76\xad\xb6\x38\x0e\x14\xed\x22\x6e\xd9\x69\x2e\xde\x6f\x0f\x26\x9c\xf6\xe6\x26\x7c\x59\x50\xb3\xfa\x73\x23\xb2\xe1\x3c\x8f\x49\xb2\xd4\xf6\xf2\xe7\xab\xaf\x50\xbd\xdc\x17\xe5\x63\xa1\xa6\xe2\x8e\x38\xd6\x11\xa1\x8f\x4f\x4d\x7a\x73\x5d\x1e\xb3\xe7\x4c\x64\xc7\x5e\x93\xc5\x8e\x4b\x12\xa5\x0c\x81\xbe\xe3\xfe\x4e\x86\x46\x71\x92\x32\xe7\xfe\xb8\xb9\x94\x15\xf6\x71\xb5\x1f\xf4\x5b\xe2\x14\x03\xb0\x56\xcf\xc5\xf1\x27\xaa\xc9\x76\x61\x6f\xb8\xd6\xa6\xf8\x6f\xe9\x33\xff\xec\xa9\xd8\xff\xbd\x6d\x3c\x66\x3a\x76\xae\x17\xf7\x88\x8f\xf0\x3a\x8a\xef\x63\xee\x73\x68\xa6\xd0\xdd\x6c\xbd\x43\x79\x29\xb3\x4e\xaf\xe1\x46\x7d\x6d\xea\xab\x1c\x08\x11\x62\xae\x7c\x0a\xed\x4c\x25\x8a\x80\x24\x83\x09\x0e\xbe\x12\x46\x85\xe1\xe7\xe7\x24\x0d\x88\x45\x18\x51\x35\xb6\x49\xf6\x9f\xf3\xdd\x45\x18\x7a\xd8\xf4\x82\x17\x0b\xf0\x0c\x34\x67\x14\x30\xc4\x42\x48\x15\x38\x92\x16\x89\x28\x9a\xe8\x6f\xfc\x96\x08\x69\xf4\xd8\x0a\xad\xb1\x6c\x12\x94\x26\xfd\xff\x8e\x1f\x68\xfd\x43\x2c\x90\x69\xd6\x23\x09\xff\xea\xd7\x68\x49\x92\x8f\xd6\xc2\xd9\x00\x11\xbe\x16\xc5\xeb\x47\x62\x60\xa3\xcf\x4b\x4f\xa6\x5e\xe7\x0a\x3f\x28\x31\xba\x21\xca\x54\x2a\xff\x2a\xb2\xbc\x0d\x07\xc7\x43\x8c\xa0\xca\xfa\xa1\x09\x84\x76\xd7\x1c\x6a\xc7\x1c\x84\x58\x41\x44\x2d\x35\x02\xe2\x34\x69\x03\x9a\x5c\x7e\xad\xc7\x08\x65\x88\x31\x60\x14\x77\xcf\xe6\xf3\x85\xfb\x3c\xaa\x90\xd0\x98\x87\x73\x41\xa2\xbe\x5b\x33\xc1\xcb\x19\x15\xab\xc9\xd2\x74\xb2\x3c\x11\xa3\x0e\x9c\x6d\xe0\xf7\xa2\x46\xd2\x80\xbe\x99\xda\xc3\x8f\x68\x8f\x93\x8e\x05\x31\x29\x56\x0a\xc1\xa4\x3c\xbf\x80\x9d\x41\xac\x03\x23\x1a\x3b\x5b\x7f\xf9\x50\x20\xed\x17\xff\x9a\x33\x25\x5e\x1a\x91\xf8\x5f\x9d\x9d\x70\x9d\xe3\x0e\x7b\x62\xe1\x90\x78\x8c\xf1\x7e\x8b\xba\x6d\x70\x3b\x04\xca\xe0\xb9\x24\x1e\xb8\x44\x9c\xba\x6c\xb6\x9e\xd6\x73\xcf\x1c\x0d\xd7\xc2\xa9\x78\xec\xdf\xb7\x45\x31\x4a\x78\x12\x3f\xf2\x68\x01\x7b\x43\x7c\xdd\x14\xf5\x83\xd1\xf6\x71\x07\x53\xdf\x08\xed\x5f\xce\x58\x4e\xf9\x3b\xd9\x71\x01\xf8\xba\x53\x65\xa4\x38\x75\xa8\x96\x6a\xc7\x45\x5e\x14\xd8\xda\xf7\x06\x4b\x2b\x9a\x5e\xb5\xc4\x8e\xd1\x60\xa5\x9d\x88\xfb\x1d\x56\xf5\xbf\x26\x16\x9a\xc9\xf7\x27\x89\x55\x18\x5a\x1e\xdd\x7d\x89\xb8\x39\x42\x2b\xd4\x04\x49\x92\x70\xd1\x19\xe9\xd8\xda\xdf\x00\x8d\x6a\xcb\xc1\x53\x8b\x98\x3f\x04\xa9\x42\x92\xa4\x9c\x30\x43\x26\xeb\xa1\xfd\x8e\x64\x45\x37\x58\xee\x5f\x8a\x4b\x05\xb9\xba\x2f\xca\xf9\xa5\xc9\xb4\x47\x37\x3e\x11\x48\x6b\x96\x34\x5a\x93\x0f\x98\x3f\xd7\x2f\x6b\xdd\x5e\x27\xfa\x84\xeb\x47\x2b\xa5\xb8\xcb\x9e\xa9\xec\xb4\x5b\x6f\xdc\x90\xd4\xc7\x58\x0f\xea\x35\x3f\x7d\xde\x1d\x34\x8d\x4f\xda\xea\x1d\x31\x6f\x25\x8b\xd1\x55\xa4\x9c\xeb\xa0\x7d\x72\x63\xa7\xa9\xd1\x58\x30\xc1\x6e\xb3\x8c\x99\x88\xfb\x08\xd7\xf1\xf9\x04\x38\x65\x0b\xe3\xa2\x5f\xed\x5b\xd4\xe6\xfc\xba\x7f\x1f\x0d\x67\x29\x03\x3b\x21\xe6\xb3\xf9\x0d\x6e\xb6\xb7\x23\x27\x8c\x19\x13\xa2\x6f\xf9\xef\x5d\x77\x28\x61\x22\x22\x7a\xd5\xb1\x28\x5e\x2f\xe7\xd5\x6e\x1d\xfa\x7e\x72\xf0\x0f\x70\x3c\xbf\xc0\x21\xfc\xad\x7f\x06\xee\x43\x90\x38\xa6\x12\xe5\x29\xd5\x06\xaa\xae\x64\x96\xf0\x58\x91\x3b\x9f\xa9\x2b\xad\x6a\x3c\x7d\x14\x61\xb4\x21\xf7\x64\x6d\x37\xe1\x89\xa2\x1c\x63\xb6\xdd\x1f\xee\xd7\xdf\x9e\xee\x0c\x40\x6e\x98\x3c\x24\x1c\x55\x07\x5a\x7f\x6b\x42\xde\x6a\x3e\x56\xf7\x87\x04\xbc\xd4\x0f\x7a\xf9\x4a\x97\x53\xb7\x5b\x69\x02\x22\x09\xdd\x4b\x4e\x92\x38\x2d\xe2\x28\x01\x69\x60\x1e\xd4\xd5\xf4\x0e\x54\x47\x81\x2a\x93\xfb\xf7\x36\x66\x77\x23\x95\x47\x42\xf1\x9b\xed\x62\x7f\x98\xaf\xbf\x3d\x39\xba\x0d\x24\xc2\x0f\xa8\x3b\x41\xc5\xcf\x2f\xc6\x16\x3b\x2b\x86\x4a\x8d\x6e\x68\x1c\x5a\xd5\x2e\x92\x23\xb6\x92\xc5\x93\x8b\x79\x22\x94\xa0\x7d\xf1\xf0\x4b\xca\x59\xff\x31\xaa\x30\xa5\xa4\xcf\x2c\x55\x14\x37\xb8\x23\x4c\x93\x4f\x84\x84\xe3\x91\x76\x92\x66\xfd\x3c\xf8\x13\xea\x58\xdd\xed\x45\xcf\x28\xdc\xce\xb6\xfb\x41\x99\x26\xc1\x38\x4d\xcd\x2a\xf2\x13\x09\x64\x4b\x6b\x76\x7f\x87\x48\x50\xc6\x51\x5f\xca\x1d\xc7\xd6\x97\xbd\xac\x2c\xd1\x61\x4c\x52\xd4\xcb\xfa\x25\x3b\x35\x71\x2f\x49\x18\x2d\x9f\x9f\xdb\xa5\x49\x87\x9c\xd6\x2d\x2a\xaa\x63\x79\x5b\x77\x4a\xb4\xf4\x42\x03\x51\x44\x43\xf3\x9b\x97\xd8\x2b\x68\x0c\x9a\xdb\xfd\xff\x68\x3f\x2e\x09\x77\x68\xfa\xef\x73\xec\x13\x62\x20\xf5\xa2\x24\x71\x89\x98\xf1\xa8\xad\xfa\xa2\x08\x90\x7a\x3a\xa1\x84\x6b\xb7\xdf\xce\x06\xa8\xbc\xd4\x0f\x34\xa5\xf6\x59\x35\x87\xba\x3e\xa2\x95\x12\xb0\x71\x5b\x7b\x02\x3f\xf4\x08\xbe\xbb\x5a\xae\x6e\xbd\xd1\x26\xd7\xf2\x34\x88\x91\x48\x3f\x16\xeb\x46\xc8\x97\x29\xee\x38\xa4\x01\x37\x05\x77\x97\x77\x7c\xcf\xca\x4b\x65\x56\xd5\x9b\x91\x82\x9c\x48\x17\x4f\x7f\x1e\xd6\xa7\x3c\x53\xc5\xf1\x08\x6e\xcf\x4b\x03\x19\x87\x56\xd2\x8a\x76\x25\x43\xed\x5c\xb6\xa9\x63\x1a\x82\xd1\xc5\xfa\xb2\x9d\x3d\xed\x0f\xf3\xd9\x7e\xf1\xb5\xe7\x5f\x04\x69\x28\x85\x79\x48\xf5\xfb\xe0\x26\x85\xda\x23\x99\xbd\x4b\x45\x9b\xb6\xfb\x73\x22\x82\xd8\x11\xb8\xcc\x65\x36\x29\x91\xa5\xde\xf7\xa7\x5b\x9a\x72\xa1\xda\x3e\xac\xed\xcf\xef\xb3\xf1\xbe\x99\xa6\xd2\x7c\x4f\xf5\x02\xfb\x97\x12\x87\xd1\x58\xca\xe2\x20\x09\xdd\x49\x8c\x18\x26\xdd\xae\x59\xf9\xfc\x8b\xb8\x34\x65\x31\x37\x30\x3c\x63\x5e\x3d\xcf\x6e\x89\x0e\xe3\x00\xf5\x83\x7c\x65\x7c\xe2\xc4\xa3\x89\x85\x4d\x3a\xf9\x15\x4a\xd5\xba\x4a\x41\xca\x84\x9f\x1a\xfe\x0c\xbc\x99\x1d\x05\xca\xab\xc9\x78\xdd\x8b\x93\xf2\xc4\x0f\x6c\x97\xf8\xe1\x72\xc2\xbc\xea\x66\xd7\x64\x40\x96\xf2\xc4\x48\x80\x2f\xa8\x4c\xfe\xef\xe2\xc6\xc0\x69\x34\x1e\x12\x49\x92\xf0\x1d\x7a\xca\xdc\xd3\x83\x91\x51\x18\xde\x61\x40\x03\x31\xa0\x1a\x3c\x5c\x4a\xdb\xa9\xbd\xbf\xb4\xe8\x9f\x14\x74\xa2\xb1\xa5\x3d\x91\x1e\x7f\x7e\x6b\x65\x61\x07\xcb\xd0\x27\x74\xf9\x5b\xeb\xed\x72\x3a\x5d\xf2\x9b\x54\x34\x95\x10\xf1\xa0\xe5\x8f\x35\xf1\x57\x7b\x83\x54\xc2\xb4\xcd\xc9\x9d\x22\x4a\xcf\xf3\x64\xf4\x34\x30\x32\xce\x2c\xf3\xe5\xc3\x6a\xbe\x7c\x98\xb9\x93\x20\xd3\x44\x0b\x5a\x92\xe8\x8a\x69\x85\x54\x3d\xa4\x46\xaa\x13\x61\x6a\xe7\x54\x45\xb2\xda\x12\x93\xa1\x04\xf3\xb8\x4f\xa4\x19\xab\xcb\xff\x54\x28\x74\xd0\xc0\xfe\x5a\xcf\x7c\x61\x78\x9e\x27\xa8\x8c\x59\x15\x36\xd9\x62\xee\x70\x1e\x2c\x88\x7d\x16\xb7\xf0\xae\xf2\xb9\x9b\x14\x2c\x40\x4e\xe0\xc1\xc2\xa8\x1b\x60\xe9\xea\x08\x2c\x94\x9e\xab\x63\xec\xea\xe2\xbc\xc3\x5c\xfd\x40\xf1\x25\xd3\x75\xaf\x5a\xc3\x22\xa6\x85\xe7\x58\x3a\x63\x7b\x3b\x60\x11\x0f\x0c\xb3\x9c\x7a\x86\x77\x7d\x7a\x7c\xfb\x45\x4d\x20\x6a\x54\xd3\x5a\xd3\x63\x53\xf0\x77\x03\x52\x86\xd4\xc8\x32\x40\x7a\xaa\x0b\xf9\x1e\xb1\x10\x96\xcd\xd2\xb2\x7e\xfa\xe6\x82\x05\xc6\x62\xa3\x59\x58\x61\xbd\x07\x71\xc4\xdd\x0d\x98\x96\xb1\xd8\xf0\x8c\x4d\xdd\xef\x94\xe5\x9f\x6c\xa8\xa3\x4f\x32\x49\x4b\x46\xb3\x71\xae\x46\x19\x02\xe3\x91\xb1\x00\x34\x4d\xc6\xe1\x62\xc3\x78\x24\x3d\xd6\x11\xfc\x7e\x14\xd5\xa6\x28\x8e\x84\x28\x69\xde\xd5\x1e\x75\x0c\x18\x84\x46\x1f\xa5\x84\x1a\x17\xed\x1f\x79\x1a\xb7\x10\xb9\x16\xfb\xd5\x83\xe9\x0e\xdf\x06\x06\x2a\x21\x96\x24\x41\x00\x56\xd5\x16\xf3\x7a\x7e\x9d\xd5\x9d\xcf\x94\x1d\x27\xd2\x40\xeb\x3e\xa8\xd9\x3a\xc7\x18\xd4\xc5\xf0\x9c\x4a\x86\x21\x74\x6b\xa2\x2c\x4a\x65\xf9\xbb\xfd\xb9\x88\xd2\x23\x11\xe1\x5f\x47\x2b\x53\x81\x06\x43\x05\x62\xbc\x7a\xff\xcd\xc7\xa3\xa5\xc7\x48\x7f\xfa\xfd\xb6\x2a\xc7\xb4\x0a\x88\x7f\xdf\xbc\x6f\x16\xc7\xd1\x89\x15\x00\xf7\x12\x1e\x1a\xcc\x1f\x6d\xf6\x5b\x6a\x7e\x8d\x3c\xc0\x80\xfb\x41\x6a\x44\xb7\x10\xab\x5d\xdd\x3c\xa0\x67\xf7\x8e\xf1\xc0\xca\x1d\x9c\x33\xf9\x0a\xef\xed\x89\x83\x50\x51\xa5\xe8\xfe\x52\x5f\xca\x3e\x62\x8b\x07\x5a\x50\x20\xb1\xaa\xaa\x0b\x6e\x09\x6e\x72\xf3\x85\xa1\xe7\x73\xdb\x57\xb4\x8c\x95\x9b\xea\x3e\x0f\x7d\x16\x6b\xfb\xcb\x9a\x4c\xff\x3a\xd2\x6e\x9e\xbe\x5b\x3c\xd4\x8c\x39\x1f\x93\x2c\xbf\x8c\x3b\xd4\x3c\x49\x23\xd2\xb3\xcd\xf1\xbd\xb6\x26\x6d\x8f\xb4\xbc\xb8\xeb\x4f\x18\x92\xe4\xc7\x29\xcb\xe7\x58\x0f\x00\x49\x3c\x81\x88\x63\xab\x76\x40\x65\x5e\x7b\x0e\xf7\x52\xf3\x34\x69\xcd\xaa\xd7\x79\x93\x34\x9b\x33\x18\x95\x1a\x37\x86\x71\xea\x57\xd6\x25\x64\xf9\xef\x59\x3d\x5e\xcc\x39\x8b\x14\x95\xd9\x76\x97\xbf\xb2\x7e\x14\xc1\x59\x0c\x86\xd8\x62\x49\xe4\x87\xd3\x13\xbe\x6d\x8e\x45\x7d\x87\x3f\x47\xf8\x4c\xfb\x09\xee\xa5\xd4\xd8\x3a\xc3\x35\xf6\x3c\xb7\x75\x8e\xc6\xa8\x94\x18\xa1\xc4\x5d\xbf\xbb\xe4\xcf\xd8\x11\xa9\xfe\x13\xfd\xb7\x4f\x69\x05\x0e\x91\x74\x94\xaa\xcd\x7a\xfd\x60\x90\xc4\x81\x5b\xf5\x38\x48\xe1\x59\x95\xd8\x92\xfc\x8f\x66\x65\x09\x37\xb9\xbb\x1b\x8c\x52\x9b\xe9\xf9\x2d\x2f\xde\xf2\x9b\x79\x02\xda\x98\x8b\x3d\x63\xfd\xa5\x38\xaa\x3f\xe4\xcb\x73\xaf\x37\xc0\x45\x64\x78\x1e\xd6\xd3\x71\xb9\xff\x7a\xd3\xce\xe1\x02\x4c\x1b\xf0\xfe\x92\xdf\xc3\x10\x96\xcc\x25\xa6\x84\x92\x6c\xe6\xd5\xbe\xa5\x72\xec\x6a\xb2\x61\x71\x54\xd3\xd1\x25\xa9\x20\x24\x10\xcb\x0b\x54\x5b\x13\x95\x2a\x22\x46\x9b\xf6\xa2\xdb\x7f\xb8\xd2\x86\xab\xd6\xec\x32\x2f\x43\x83\x3e\xe0\x98\x68\x6a\xf2\x2c\xdf\x41\x67\x65\xfb\x73\x90\x05\x34\x2d\x2e\x64\x0a\x4e\x2c\x47\x6a\x34\xb8\x27\xe1\x7e\x92\xf6\xfd\x54\x77\x74\x67\xca\x65\x1f\xe1\xfd\xae\xc8\x8b\x9b\x47\xab\x83\x88\x40\xb7\x0b\x38\x9f\x51\x4d\xa0\x48\xb8\x56\xc6\xb8\xb4\x2d\xe6\x7d\xa0\xa6\x00\xe0\x25\x86\xb3\xf3\x05\xc9\xac\x97\x6a\x7d\x83\x1f\x06\x1e\x04\x49\x64\xd1\x9a\xfd\x3b\x0d\xbe\xa7\xa3\x5e\x20\xdf\xdb\x69\xc1\x07\xe6\x2c\xec\x9b\x50\x54\xcd\x8b\x0f\xea\x4c\x10\x72\x46\x5b\x51\xf3\xe1\x47\x3c\x15\xe5\xd5\xcc\xad\xde\xc9\xa2\x98\xe9\xa8\xed\x4b\xd5\xa8\x9a\x04\x11\xab\xb1\x72\xca\xe8\xc4\xb1\x1f\x51\x1c\x61\xf5\x4d\xf7\xcd\x0b\x5d\x4e\xe6\x19\x10\x87\x09\x57\x4e\x3b\xae\x2c\x8b\xb7\x2c\x7f\xa6\x52\xc1\xe8\x8c\xb6\x63\xdc\x5a\xd3\x7e\x1a\x5b\x43\x2c\x81\xf4\x1e\xb0\x94\x81\x37\xbf\x5c\x6f\xd6\xb8\x89\x0a\x25\xc4\xca\x43\xab\x7f\x64\x85\x22\x8b\xfc\x52\x2d\x89\xe3\xd9\x07\xe6\x42\x8c\xbe\xc3\x09\x39\x78\xe1\x6f\xed\xa1\xd4\x0a\xd0\xbf\x62\xbe\xe9\x79\x34\x7d\xb9\x40\x09\x79\x8d\x7f\x73\x93\x82\x24\x50\xa1\x6e\x6b\x7b\x16\x9a\xba\x2f\xa8\x09\x36\x1a\x99\x1a\x8b\xda\x7d\x39\x7a\x1d\x21\xd5\x32\x31\x18\xb7\xaa\xde\x76\xf6\xac\x00\x10\xa9\x20\x18\x08\xb0\x6c\x16\x7f\xde\x52\x11\x46\x97\x04\x31\xa3\xbc\xc2\xec\x1b\x04\x8f\x1a\x25\x4b\x00\x8a\xbb\xf5\xc5\xec\x43\x64\xee\xd7\xc1\x2c\xba\x61\xbe\xd1\xd7\xc9\x7f\x62\x59\xef\x8b\x4d\x99\x9d\x8a\x52\x65\x70\x1c\xfd\x38\xc1\x3c\x2a\x80\xe1\x09\xcb\x67\xcc\xe5\x95\x42\x4c\x18\xa3\x43\x40\x70\x15\x72\xc7\x13\x24\xf0\x38\x8c\xaf\x4d\x48\xdf\xb0\xf8\x69\xa1\xbf\x01\x90\x4d\xbf\x22\x92\x7b\x06\x41\x59\x17\x65\xeb\x02\xe3\xf6\x72\x90\xda\xd3\xa6\x90\xd3\x84\xcb\x03\xde\x18\xa8\x08\x22\x7b\x45\x77\xd6\xbb\xf0\x83\xbe\x14\xa8\x04\x45\x77\x65\x03\x2d\xbc\x5e\xc9\x03\x94\xf0\x23\x18\x8a\x98\xec\xdf\xad\x44\xc9\xef\x3f\x5e\xc6\xb4\x34\xfb\x29\x8c\x24\xd9\x8c\x5c\xac\x5a\x42\x65\x44\xd3\x0c\x37\x62\x34\x54\x28\x0a\x8a\xef\xb3\xe7\x97\xfa\x60\xe0\xd6\x37\x02\xf1\x83\x1b\xe5\x07\x6c\xf0\xef\x68\x45\x18\xfd\xa7\x8d\x44\x40\x7b\x41\x2a\x06\x39\x7a\xab\x3c\xbd\xba\x81\x3c\xba\xcf\xf8\x9c\x5a\x1c\xe6\x1e\x91\xf6\xdb\x02\xf3\xba\x22\x24\xca\x55\x5a\x49\x92\x36\x6c\x00\x9d\xfa\xd8\xc6\x87\xbb\x42\xd7\x0b\x38\xaf\x5f\xdb\xa3\xe0\x51\xa6\xb0\x80\x7a\x6c\x7f\x0f\xc2\x8b\x13\xea\xb0\x7c\x59\xdd\xef\xff\x9e\x89\x04\x08\x3f\x12\x56\xe3\xfc\x88\x43\xac\xbf\xf0\x99\x47\x16\x08\xf9\xe5\xf4\x50\xb4\x49\xa4\x08\x64\x94\xd8\xb8\x66\x77\x1c\xfc\xdd\x9c\xc9\x84\x44\x2f\x50\x62\x45\x91\x9f\x6a\x07\x60\x44\x1a\x3c\x5f\x66\x8f\xcb\x1d\xd9\xe9\xdd\xb5\x87\x34\x4b\x8c\x14\x42\x71\xfe\x5e\x74\xca\xab\x20\xc2\xd4\x8f\xa3\x16\xfc\x3e\x29\x2c\x08\x22\x14\x06\xc5\xfb\x63\x39\x2c\xde\x89\x10\x05\xc9\x1c\x3e\x7d\x7b\x78\x38\x2c\x9f\x16\xdb\x3f\x37\xa6\x02\xfb\xf0\x65\xbd\x5d\xed\xbf\x3e\x1e\xee\x96\xbb\xc5\x76\x65\xfe\xfa\x6d\xbb\x3a\xec\x96\xfb\xc3\xaa\xbd\xae\xc8\x63\x04\x86\x22\xb3\x9e\x7e\x16\x20\xa2\x20\xa6\x88\x01\xdf\x4d\xd2\x7e\xa8\x8b\x43\x66\x13\xf8\x03\x19\x2b\x1d\xf2\x09\xf4\x8b\x88\x42\x29\x5a\x7f\xf9\xfc\x79\xe0\xb1\x00\x22\xe2\x09\x31\x27\x8c\xbb\xc8\x16\xb2\x0a\x55\xcf\x7b\x0d\x44\x24\x85\x93\xbe\xfc\x01\x65\xb3\x30\x5f\x37\x3d\xda\xd6\xe7\x5d\x5d\x11\xc7\xe6\xd5\x6e\xee\xde\x41\x17\x65\xbb\xb0\x8a\x38\x35\xb2\x28\x75\x79\x41\x91\xd5\xa3\xcb\x8a\xa5\xb9\x68\xb3\x99\xce\x07\x04\xf1\xfe\x4d\x49\x52\x21\x6c\xc7\xe5\xa9\xa8\xfb\x74\x46\xc1\x82\x58\x5a\xb1\xb4\x05\xe4\x3f\xa1\xa2\xa0\xc1\xbe\x6b\x83\x19\xc9\x98\x59\x11\x77\xfb\xdd\xdf\x98\xbf\x4c\x1a\x66\x7b\x75\x3e\x5a\x4a\x59\x35\x47\x5d\xf4\x74\xe3\xc6\x5a\x00\x20\x78\xc8\x28\x32\x15\x70\x3c\x16\xf5\x43\xd1\xd2\x6f\xff\x13\xfc\xd7\x0d\x11\x26\xad\xcf\x2a\x13\xd6\xf7\x89\x8d\xff\x98\xe2\xa1\x09\x2e\x81\xca\x33\xff\xbc\xe4\xcf\x47\xdc\xc9\x92\xbc\x54\x86\xf3\x94\x6b\xa3\xe1\x7a\x97\x3d\x67\x3f\xb2\xe3\x71\x30\x57\xc1\xd7\xc4\x2c\x3f\x38\x62\xc2\xdb\x07\xd6\x9a\xbf\x78\xc8\xcd\xe2\xde\xac\xed\x7f\x62\xfd\xfe\xaa\xfc\xc4\xf3\xdb\x6f\xc0\x84\x77\xf2\x6b\xfa\xfd\x1e\x47\x31\xad\x10\x41\x4c\xbd\xb6\xf7\x83\x2c\xf2\x8a\x4c\xea\xc6\xc5\x67\x21\x52\x23\x53\xd3\x6c\xf0\x60\x64\x92\xdb\x67\x39\x46\x84\x09\xa1\xa4\xa9\xb1\xae\x57\x4f\x87\xc5\x7a\xb7\x3f\xac\x16\x6b\x03\xb5\x71\x8c\x05\x21\x7d\x49\xd8\xd2\x4b\x7e\x6e\xb6\xe6\xd1\x25\x49\xc9\xa8\xfd\x3a\x72\x5c\xb5\x91\x70\xa7\xe7\xd6\xfc\xbf\xfd\x2e\xc1\x44\x35\x72\xf4\xef\x7f\x42\xf7\xb4\x15\x32\x52\x01\x97\x45\x96\x8f\x52\x72\x3b\x02\xfd\xc8\x37\x24\xe0\xbc\xf3\x65\x71\x3f\x00\x65\x14\x0d\xd1\xca\xdf\xb1\xec\xb5\x76\x05\x62\x42\xa6\x53\x35\xbc\xef\x47\x38\x58\xa1\x3d\x8f\x34\x19\x9f\xf0\xed\x53\xf3\x69\x37\x3c\x46\x30\xf8\xcd\x77\x23\x53\x82\xca\x68\x94\xb8\xe3\x49\x4c\x2b\x96\x25\x91\x4d\xaf\x97\x5a\x20\x65\x5b\x47\xa8\x2c\x88\xb8\x8f\xc0\x97\x1e\x63\x54\x06\x9a\x93\x5a\x68\x2f\xa5\x97\x81\x07\x82\x75\x86\xda\x16\x71\x34\xb8\x42\x19\xc4\x11\xd5\xf4\xcc\x03\x9b\x46\x60\xdc\xa2\xde\x65\xc0\x42\x17\x76\xac\xf2\x9f\xd9\xc7\x80\x53\x37\x5e\xc4\x0e\x4c\xb1\x3c\x1f\x61\x28\x90\x0d\x32\x0c\x43\x20\x66\xc2\xb8\x71\x2e\xc3\x48\x13\xb6\xa9\x7e\x29\x8b\xb7\xfb\xc2\x81\x33\x65\x08\x11\x71\x5d\xad\x26\x99\xc3\xa1\x8a\x23\x3e\x61\xad\xb7\x38\x3e\x8d\xf4\xb5\xdd\x98\x88\x1c\x88\xfd\x2c\x68\xf8\xd3\x22\x3f\x21\xf8\x0e\xad\xd4\x54\x8b\x37\xb1\xb9\xfb\xe6\xd8\xc3\xc8\xc4\x6a\xcf\xfb\xb7\x42\x98\xe0\xdd\x49\x4e\x80\x8c\x83\x90\xde\xa1\x1a\xc1\xfa\x01\x59\x8b\xec\x76\x75\x95\x71\x20\x8c\xf7\xf3\xf5\x90\x77\x6c\x5f\x19\xa7\x9a\x4a\x10\x2f\x50\xb5\xd5\x89\xe1\x6d\x8a\x85\xb1\x0e\x22\xcb\x2c\xc7\xd1\x1a\x46\x57\x32\xd6\x82\x5c\x11\x5c\xe4\x79\x67\xb8\x8e\xa3\x14\x5d\x26\x51\x6a\x84\xd4\xb0\xaa\x1f\x8a\xfc\x19\xcb\x7f\x56\xed\x2b\x20\x93\x38\x20\x0e\xe9\x1b\xfc\xc4\x6a\x80\x2f\x94\x49\xa2\x3d\xbf\xb5\x36\x55\xd9\x27\x48\x28\x99\xa4\x52\x77\x4b\xd8\xf7\xd5\x66\x0b\xf9\xeb\xe8\x37\x25\xc0\xa8\x95\xe7\x0a\xe5\x2e\x7f\x1f\x90\x92\x64\xa2\x91\xde\xf9\x23\xfe\xc4\xe3\x21\x19\xe5\x43\x32\x65\x8a\xaa\x47\x75\x86\xa5\xe1\xb6\xd0\x13\x1b\x5e\x4d\x0a\x02\x43\xa3\xad\x8f\x55\x6d\x4d\x8c\xad\xd3\xde\x74\x38\x28\x53\x11\x78\x60\xde\xdf\x05\x9c\xad\x72\x7d\x6b\xc2\x01\x92\x01\xa3\x4a\x77\x56\x59\x56\xe7\xf0\xe3\x3c\x0e\xa4\xad\xb9\x18\x21\x7a\x2b\x3d\xe6\x0e\xa7\x7e\x30\x81\xfc\x9a\x5c\x05\x24\x57\x01\x3d\x57\xda\xcf\x5f\x8b\x3c\xc7\x96\xd8\x24\x21\x95\xda\xf8\x10\xe1\xcf\x61\x58\x28\x01\x18\xc9\x43\xaf\xaa\x65\x25\xcb\xe2\xad\xef\x12\x09\x52\x04\x26\x59\xa1\xd7\xb8\xbe\xf7\x7f\x1b\xdc\x30\xa1\x4d\x15\xd2\x48\x63\xf7\x24\x6a\x40\xca\x94\x7b\x46\xab\xac\x49\x15\x7b\x25\x76\x29\x31\x26\x11\xca\x26\xc3\xb6\xc6\x0a\x7d\x4d\x16\x90\xca\xe3\x84\xa4\xa7\x42\xf9\x21\x88\xbd\x43\xec\x79\xed\xc1\x34\xb2\x85\xcf\xef\x0e\xed\x38\xba\x0f\xe8\x85\x06\x18\x74\xce\xf2\xfd\x0b\xfe\x78\x41\x3c\x8e\x87\xb0\x34\xd4\xad\xba\xa2\xf9\xc5\x7d\x3e\xa9\x44\x8e\xd4\x5e\x7f\x81\xea\xe5\x50\xbd\x40\x10\x27\x53\x32\x61\x20\x51\x87\x64\x92\xb9\xfa\xb2\x72\x9f\xd5\x71\x8c\x89\x33\x5c\x5e\x1c\x8b\xbc\x3d\xad\xf2\x38\x10\x88\x93\x3c\xcc\xa6\xf1\x31\xca\x8f\x13\xd2\x17\xf8\x76\x7a\x35\x90\xa6\xcf\xfc\xa5\xdd\x67\x18\xa6\xa2\x57\x95\x68\xd6\xae\x3f\x9a\xd3\xde\x97\xc5\xe9\x0e\xce\xb7\x62\xc3\xfd\xb4\xae\x9f\x13\xa9\x20\xe4\xb4\xd0\x6e\xb0\x34\xab\x53\x0f\x2f\xaf\xc2\x38\xa1\x45\x9a\xb8\x4f\x3d\x93\x92\x1d\x1e\x75\x37\x86\x91\x4e\x89\x84\xa3\x34\x2b\x7f\x39\xc7\x1c\xf5\x98\x93\xa1\x42\xcd\xa8\xb3\x7b\x82\xf7\x81\x19\x04\xa8\x48\x70\xde\x09\x40\x2f\x5e\x20\xcf\xf1\xf8\x68\x94\xaa\xa7\x4b\x48\x2a\x42\x5f\xdb\x85\x6f\x75\xf7\x08\xe7\x73\x0f\x99\x33\x1a\x1a\x43\x40\x91\x5d\x56\x2d\x9a\xc7\xa0\x66\xb9\xa2\xa9\xe4\xbe\x3d\xf1\x22\x62\x5c\x0e\x6c\x58\x3e\x4f\xcf\x55\xe2\x25\x54\x7c\x26\x4a\xfd\xa6\x2c\x74\x56\xcf\xaf\x1f\x6a\x82\x83\x4a\xd3\x88\x28\xce\x66\x8a\x3f\x2c\xbf\x2f\x1f\xda\x00\x4a\xa5\xa8\x28\xef\x3b\xcc\x8c\x03\x82\xa1\xe9\x0d\x49\x4c\x8a\x05\x9e\x87\xad\xba\xd7\xd3\xe5\xb4\xc0\x23\x8a\xd1\x9a\xa0\x18\x13\x94\xd6\x7c\x5f\xaf\x76\xcb\xf6\xa3\xc2\xcc\x59\x03\x0e\x5a\x9f\xa7\x30\x09\x8a\xfb\x1e\xad\xa7\xf7\xeb\xc7\x75\xf7\xad\x9c\x07\x08\x0e\xc3\xb8\x7a\xda\x76\x15\x05\x37\x00\x04\x35\xf6\xd5\xa5\x9b\x35\x5c\x68\x2a\xae\x57\x75\x51\x22\xad\x12\xcd\x3a\x77\x8f\x48\x60\x0e\xab\xdb\x30\xf4\x9d\xeb\x47\x7e\xc3\xbf\xd9\x73\x42\x20\x69\x96\xf5\x44\xa3\x46\x1b\x98\x82\x48\x10\xd2\xe3\x7f\x2e\x50\x63\x19\xba\xab\x81\x58\x51\x93\xd8\xe2\xc7\x3b\x04\x80\x92\x5e\x4a\x6b\xb5\xf3\xee\x79\x84\xd7\xee\xd5\x95\xb1\x2f\xcd\xac\x21\xe5\xc2\x41\x8d\x45\xc9\x38\x8e\xba\x18\xe9\xa9\xc8\x9b\x99\x95\xe5\xcf\x4e\x41\xb3\x2c\x0a\xfd\x61\xfd\x62\x5c\xc2\x9c\xb0\x4e\x74\x5f\xa3\x18\xd5\xd1\xa4\x63\xad\x95\x59\x8f\x4d\xf1\xa1\x82\x20\x28\xa9\x7d\x23\x39\x47\x00\x91\x9e\xb9\x08\x28\x15\x06\xa6\xea\x0f\x27\x5c\xe6\xaa\x0f\x1d\x51\x0a\x02\x8f\xf5\x8d\x19\x66\xa6\x5e\x33\xba\xd1\x28\x62\xd7\xf4\xb1\x3e\x13\x77\xf3\xdf\xfa\x6b\x8a\x8e\xa4\x08\x1c\x49\x70\x46\x60\xde\x8f\x54\x47\xac\x36\xac\x2b\x89\x2b\x1d\x69\x5a\xee\xbf\x2c\x17\x93\x78\x67\x37\x2c\xf1\xed\x02\xf8\x13\xe1\xf8\xdb\x40\xb8\xd3\x0d\x61\xa9\x70\x0e\x5f\x5f\xb0\x9e\x67\x75\xb5\xbb\x48\xd9\xa5\xc5\x4d\x4e\x40\xc1\x93\x09\x2f\x0c\x40\x64\x92\x8b\x8f\x7e\x8a\x41\xf7\x20\xe6\xd9\x87\x7e\xbe\x9f\x17\x57\x31\xf0\xb5\x07\x56\xcc\x6f\xde\x44\x3e\xee\xef\x51\x64\x55\x65\x4f\xc5\x4f\x6c\xd6\x9f\x47\xc8\xe1\x99\xaa\xf8\x1f\xf0\x14\x30\x88\xa3\x28\x1a\xba\x77\x90\x04\x7f\xfb\xf3\x02\x8e\x68\x23\xec\x1f\x28\x08\x29\x30\x31\x57\x30\x50\x8a\xe6\xf2\xc9\xf4\x01\xec\x5f\xa3\x80\xd3\xa2\xf9\x94\xe5\x7f\x91\xe4\xcd\xd3\xa2\x3d\x04\x01\x09\x8c\x8b\xcb\xb5\x79\xaf\x6d\x70\x32\x23\x5b\x75\x39\x90\x97\xee\x33\x6f\x31\x0e\x83\xc0\xaa\x9f\x18\xbd\x3f\x03\x40\x1b\x0a\xca\xb5\x56\x21\xfd\x3d\x0a\x63\x9e\xc6\x7d\x49\xf3\x56\x52\xc6\xf1\x8b\x86\x77\x26\x41\x25\x9d\x2d\x97\x5b\x64\x31\x0d\x42\xb2\x9c\xa7\xd0\xe5\x07\x66\xa6\x38\x73\x77\x69\xee\x04\x95\x68\xc2\x76\x64\x18\x53\x26\x33\xbf\x94\x79\x7d\xe8\x07\x9d\xc8\x62\x03\x5e\x3c\xc1\xfb\xb9\x87\x38\x47\x96\x78\x94\x7b\xd4\xad\xc6\x8e\x85\x4a\x8e\xfa\xc3\xbf\xa8\x00\x7c\x30\x6b\x98\x0c\xb8\xe5\xec\x6e\xca\xe2\x54\x50\x05\xbc\xfd\x6a\xcd\x21\x70\x01\x1b\x49\x44\x6e\xa0\x49\x61\x47\xb2\xf8\x9f\xfc\x63\x4f\xc4\x83\xc4\x01\x14\x0d\x28\x64\x32\xea\x44\x1e\x43\x6a\xfd\xaf\xeb\x4c\x66\x67\x42\x10\x6e\x4a\xac\xe0\x88\x5f\xb3\x8a\xaa\xd4\xa3\x4f\xc8\x84\x82\xa0\x9e\x20\x72\x8b\x8d\x76\xbf\x82\x2b\x2f\x19\x18\x3f\xee\xfb\xd5\x8d\x61\x0c\x8e\xe0\x33\xe2\xf3\xca\xa2\x30\x2d\x81\x45\x39\xca\xca\x11\x92\x80\x52\xb2\xef\x4e\x08\xf4\x43\x86\xde\x54\x4a\x3b\xba\xff\xc0\x7d\x2a\x4f\xef\xae\x4d\x6a\xd0\xb5\x2d\x51\x79\x0c\x0c\xf5\xe1\xa1\x00\xf5\x47\xde\x2b\xa3\xb8\x11\x3e\xa7\x49\x7f\x76\x1d\x99\x97\x66\x6f\x87\x52\xb5\xa7\x48\x53\x30\xc1\xf1\xb9\xd9\x1e\xef\x3f\xd1\x72\x1d\x5d\x95\x62\x26\x2b\xad\xea\x72\x51\xe4\x12\xea\xea\xd7\x1b\x03\x2a\x4c\x68\x33\xfc\x33\x38\x1c\x69\x86\x1a\x17\x97\x7e\x6f\x1c\xd1\x0f\x85\xcd\xe4\x7f\xeb\xbd\x84\x18\x45\x5e\xd0\xf3\x98\xa4\x9f\x32\xfa\xb9\x18\x81\xef\x75\x62\xa5\xcd\x12\x57\x16\x2d\x2d\x08\x75\x00\x2a\x70\xc2\xa3\x35\x3e\x17\xe5\x95\x70\x9f\xc3\x67\xa7\x75\x42\xf0\xc6\x73\x73\xc3\x7c\xd3\xd0\x6a\x5e\xb6\x55\xde\xed\xdd\xda\xe3\x71\x20\x5c\x64\xfa\x52\x16\x6f\x5b\x34\x3a\xbc\x45\xdd\x13\x46\x07\x1d\xf8\x3e\x69\xd8\x7d\x87\x63\x51\xe2\xa9\x63\xd2\xea\x20\x4c\x28\x7d\xc2\x93\x2b\x3c\xf6\xe4\x25\x3e\x7f\x23\x75\x90\x1a\x8d\xc6\xe7\x12\xb1\x1e\x89\x16\xea\x50\xf9\x06\x20\x68\x52\x76\x23\x72\x3b\xf8\x89\x3a\x0a\xfc\xc0\x66\x59\xf4\xd5\xdf\xb6\xab\x99\xd6\xd9\x3b\x56\x53\x4b\xb4\x8e\x7d\x3f\x76\x20\x98\x5e\xbe\x3c\x7c\x2d\x34\xf3\x05\x95\x96\xe0\x7c\x3e\x5e\x27\x09\x2a\x6e\x60\x2a\x98\xa9\x8a\x5f\x8b\x4b\xbd\xbc\x77\x77\x84\x31\xcf\x50\x67\x0b\x5d\x4b\x38\x3b\xf5\xbe\xc9\x1d\x58\xf3\x20\x92\x56\x99\xb3\x70\xb9\x80\xe6\xb1\x91\x07\xdb\x80\x51\xa3\x21\x6a\xc3\x72\xff\xf5\x63\x2f\x78\xd0\x9c\x99\x68\xe2\x69\xf5\xed\xd7\xf5\x62\x32\xda\x72\xf4\xdc\x1d\xe6\x6a\x50\x8a\xd0\x5c\x87\x24\x13\x08\x52\x96\x17\xdc\xb7\x05\x97\xcf\x8b\x72\x1a\x22\x69\xc4\xbd\x51\xc3\xe5\xd8\x66\x3a\x5f\xa0\x3d\x31\x30\xb4\xe0\xa9\x66\xbd\xb9\x83\x21\xa4\x93\x3a\x72\xd6\x13\xfa\x63\xf5\xe8\xe1\x77\x8a\xc0\x5c\x2a\x95\x61\xfb\x3a\x00\xe3\x71\xa1\xa4\x82\xe0\x73\xa6\xeb\x05\x4c\x57\xe2\xdc\xd0\xb4\x15\xd1\x5b\x6b\x4d\x1b\x42\x57\x15\xd4\x82\x87\x86\xec\x5e\x1c\x8f\x87\xbc\x28\x4f\x9f\x68\xb9\x8e\xf1\x9e\xb7\xae\xde\xbd\x0b\x14\x49\x20\x3a\x63\xb3\x4f\x92\xd7\xb1\xed\xda\xf4\x34\x16\x82\x83\x73\x25\xc3\x77\x7b\x73\x7a\xf5\x04\x2d\xa4\xc1\xaa\xad\xe6\x4f\xff\xbe\x6b\x32\xa9\xf5\x66\xb9\xdd\x11\x11\xe8\xb0\x18\x1a\x54\x83\x96\x71\xa2\xb8\x03\x09\xe2\x79\xff\x56\xdc\x8a\x5d\x68\xa9\x24\xdd\x1a\x75\x13\x65\x69\x15\x98\x52\xab\x84\xea\xa5\xb8\xd4\x53\x7d\x04\x37\x32\x12\x64\xd4\xb8\x5d\xee\x96\xdb\xef\xcb\x3b\x2b\x7a\x73\xb8\x5f\x6f\x0f\xd4\xb8\x5a\x1f\x96\x7f\x2c\xbe\xce\x9e\xbe\x2c\x1d\x1a\x50\xab\x44\xc8\x91\xe8\xf8\xdc\x2a\xba\x8c\xcf\x2e\x42\x8a\xc7\x4c\xe8\xe4\xe2\x8a\xe1\xed\x1d\xfe\x28\xe7\xed\xf5\x8c\xf5\x0f\x0a\x7a\x68\x5a\x2f\x2c\xae\x88\xb5\xa3\xb8\xe7\xa4\x5c\x0e\xa6\x34\xbe\x7a\x9a\x9d\x8a\xfa\x88\xd7\x87\x2c\x1f\xdf\x29\x64\x1e\xa9\xac\xcc\x1f\xd6\x8b\xdf\x0f\x9b\xe5\xf6\xb0\xf9\x3a\x6b\x33\x4d\x8d\x8c\x91\x6e\x44\x0f\x48\xa3\xa6\x54\x36\xb5\x8e\x3d\xc2\x45\x95\x45\x51\x3f\x75\xfa\x75\x5a\x27\x89\x87\x56\xb3\x9e\xb8\xd1\xe6\x80\xf0\xbc\xd4\x27\x86\xce\x02\x08\x8b\xd5\xa1\x22\x84\xe7\x49\x23\x99\x63\x0c\xbc\x0e\x6f\x54\xd4\x3e\x88\x4c\x0d\x18\x71\xcc\x8d\xd6\x28\x6d\xb5\xc6\x70\x9b\xee\x8b\x72\x5b\x14\xf5\x8d\x02\xb6\xf0\x7c\xcf\x97\x51\xa7\x91\x4f\x86\xa7\xab\x51\x3d\x5a\x78\xbe\x80\xce\xb3\x27\xbf\x9a\xce\xa9\xbb\x6c\x5f\x1b\x9f\xb6\x16\x71\xbc\x29\xb3\xff\x35\xc4\x79\x37\x24\xf0\x39\xc1\x29\x41\xa9\x2d\x9e\x8b\x76\xd9\xe8\x2d\x30\xc2\x0b\xd3\x30\x36\x2c\x23\x53\xc3\xed\x95\xd1\xdc\x79\x42\x04\x74\x3c\xab\xac\x3a\x5f\x6a\x2a\x55\x93\x70\xfc\x7d\x51\xde\x17\xe5\xab\x1b\x19\xb1\x94\x4a\x75\x59\x8d\xa7\xb5\x1e\xfd\x9c\x48\x07\xa4\x54\x52\x11\xf0\xd3\x56\x94\xef\x5a\x2f\x03\xe1\xc5\x51\x44\xfd\x3d\x09\xf9\x1c\xa1\x6c\x52\x80\xc9\xa5\x4b\x78\x71\xcc\xc9\x03\x75\xb7\x9f\x6d\xf7\xab\xa7\x2f\x87\xdd\xd7\xed\xea\x71\xe3\x4e\x94\x04\x40\x12\x45\x44\xbf\x5c\x9f\xa9\x6c\xbc\x2f\x96\x96\x28\xb5\xce\x8f\xd7\xe5\x7b\x5d\xc2\x27\xf9\x41\xfb\xa4\x12\x4b\x56\x06\xf5\x33\xab\x8a\xd2\x15\xd8\xdb\x16\x8e\xf0\x92\xc4\xa3\x8c\xd8\x10\x81\xa7\xa9\xb4\x9f\x09\xf4\xf7\xe6\x5b\xea\x29\x6a\xd0\x2d\xa0\xbe\x87\xf2\xe4\x62\x0d\xe1\xa5\x81\xa7\xac\xce\x29\x6d\xfa\x1b\xbf\x3b\xa2\x4c\x05\x06\x72\xd5\xab\x2d\xf5\xe7\x65\x0a\x92\x19\x1d\x65\x38\x52\xb8\x63\xba\x12\xee\x0c\x2c\xd4\x4a\x3a\x57\xdb\x3b\x3c\xd6\xd0\x1e\x61\x71\xcc\xdc\xd4\x20\x4c\x4d\xf3\x48\x8a\x4b\xed\x58\x60\x6e\x1c\x0f\xd3\x56\xf9\xe8\x46\x49\xf9\xb3\x0d\x52\x78\x4c\x87\x14\x36\xb6\x32\x97\x0e\x31\xd7\x9e\x5c\x2b\x30\xfb\xe3\xf9\x08\x3d\x9d\xad\xfe\x22\x26\x3c\xce\x25\x3d\xf1\x1c\xdf\x4c\xf3\xab\x68\xef\x1d\x17\x3e\xb8\xee\xc3\xdc\xb9\x8c\x6c\x51\x1f\x51\xd6\xad\x74\x69\x3b\x58\xf2\xc4\xbe\x98\x7f\xfc\xeb\x5b\xfb\x57\x25\x7c\xdf\x89\xbc\xd7\xd9\xcf\xce\x97\xc6\x8d\x20\xbd\x67\x9a\x04\xf2\x75\x7e\xb9\xb6\x7f\x0e\x8c\x28\xa2\xb8\x5c\x9b\x7b\x2b\xb3\x13\x1c\xdb\x37\x18\x42\x96\x74\x44\xc3\xc5\x31\xc3\x7c\xd8\x5e\x17\x1e\x30\x99\xd8\xcc\xd6\x92\xaa\xba\xdf\x25\xbc\x80\x58\x04\xc5\xa5\x6e\xd2\xfa\x4d\x51\x1c\x47\x2f\x9c\xf0\x02\x69\x98\x56\x55\x5d\x16\xd7\xf9\x85\x44\xc1\x86\x2b\x91\x48\x44\xa2\x3a\xdd\x92\x9e\xe4\xdb\xfc\xfa\x88\x2a\xa3\x6f\x1c\x9e\x56\x7a\x46\x41\x56\x5c\xae\xc1\xf8\x90\xaf\xe9\x61\x3d\x20\x94\xf9\x1f\xee\x4a\xa5\x36\x99\xc8\xb3\x75\x65\xeb\x08\x6a\x6e\x8a\xaa\x14\x4d\x53\xdd\x46\xf7\x14\x62\xda\x63\x3a\xd1\xc4\x8d\xad\xfc\x7e\xa5\x4c\x78\x9a\x87\x89\xa3\xc5\x98\xfe\x4a\x35\x9a\x14\x9a\xa7\x60\x24\x6d\x49\xc8\x67\x52\xca\x7c\x34\x1d\xb5\x34\x05\xd3\xba\xcc\x9e\x9f\xb1\xdc\x56\x78\xd4\x74\xfb\x2e\xb2\xde\x1a\x78\xbb\x19\xe9\x7b\x7e\xcc\xfc\x41\x62\xbe\x78\x81\x3e\xd9\xdd\x8d\x13\x1e\x31\x43\xac\x66\xbf\x55\xb0\xd8\xc1\x11\xc7\x36\x4a\xc2\xf7\x23\x4d\xca\x8f\x85\xd5\x14\x3d\xfc\xcf\x05\xcb\xeb\x34\x07\xf9\x3f\xe1\x50\x5f\x57\xf8\x7e\xe2\x87\xd8\xb5\x60\xab\xf9\xf5\x6e\xc4\xbe\xa4\x31\x46\xa9\x9c\x2a\x77\x2d\x8b\x46\xf8\x01\xf7\xa5\xbd\x9b\x9b\xec\x1d\x8f\x43\x20\x95\xf0\x03\x44\xc2\x3f\x1a\xfc\xc9\x5a\xaf\xcf\x98\x6f\xef\xff\xe5\x9e\x92\x1f\x42\xda\xe3\xb9\xda\x05\xa2\x7d\x4d\x46\xad\x09\xe1\x87\x42\x83\xbd\x56\xe3\x73\x4f\x45\xa4\xe1\x98\x28\x65\x24\x48\x64\x05\x83\xe0\xd8\x55\x15\x87\x3f\x2a\x92\x26\x67\x22\x60\xd4\x0d\x8e\x73\x7a\x91\x1f\xea\x8a\x09\x3f\xd2\x5e\x6c\xa9\x11\xf6\xe2\x07\x12\xf9\x76\x54\x8c\x29\x31\xb7\x9a\x35\x7b\x5f\xcc\xcd\x39\x46\xf2\x2a\xc2\x4f\x22\x5f\x25\xad\x90\xe2\x97\x7e\xf7\x77\x78\xe1\x49\xc2\xa5\xe3\xcb\xf6\xe2\xae\xde\x00\x16\x91\x10\x41\xf3\xa3\xf7\xf8\x5e\xff\x8e\xd7\xa9\xe6\x91\xf0\xd3\xd0\x70\x40\x77\x56\x19\xe5\xef\x14\x0d\x85\x9f\x26\x82\x00\x5b\x67\x38\xe2\x15\x4b\xbf\x7a\x29\xde\xfa\x30\xfb\xdb\xff\x75\x1f\xe4\x1e\xa5\x8d\x77\x78\x2a\x8e\x59\xf5\x32\xbf\x1a\x31\xaf\xe9\xbc\x50\xf8\x8c\x1b\x98\x43\x13\x2b\x17\xba\x7e\x23\x6a\x62\x93\x3e\x4d\x01\xd2\x9b\xf5\xda\x08\x60\xe5\x45\x0d\x4d\x54\xd3\xc3\x57\x09\x1f\x30\x75\xe8\x7d\x83\x32\x68\x92\xb1\xd1\x09\x64\x18\xd1\xae\x7d\x68\xab\x3e\x1f\x28\x13\xbb\xf1\x68\xb4\x92\xf6\x58\xd5\xcb\xf5\xae\x03\x36\x34\x87\x4c\x9f\xe2\x89\x04\x7c\x1e\x3f\x7a\x94\x8a\x05\x9e\x89\x13\x94\x89\xc1\x2e\x7d\x00\x53\xbb\xd7\xf7\x7e\x87\xe2\x86\x44\xd0\xf6\x86\x2e\xb9\xaa\xfe\x46\x52\x29\xfc\x66\x37\xd2\x1d\x70\x10\xca\xe3\x75\xe3\x6a\x66\x13\x55\xdd\x8f\xce\x82\xdc\xf4\x63\x8b\xe3\x4f\xdc\x43\xf5\xfa\xa1\x34\xcf\xe4\x7f\xda\xb3\x60\xc8\x3c\xc2\xce\x7f\x7b\x78\x30\x79\xc9\x61\xf6\xb8\xfe\xf6\xb4\x77\xf7\x0f\x13\xdf\x09\xf6\x39\x11\xd1\xe1\xca\xa2\x23\x9f\xe6\x78\x96\xeb\xe2\x40\x15\x96\x4f\xf2\x04\xe1\x6b\x50\xff\x7f\xca\xbe\xad\xb9\x71\xdc\xda\xfa\xef\xcc\x43\x1e\x40\x80\x24\xc8\x47\x59\x96\xbb\x95\xb6\x2d\x47\x92\xa7\x27\x27\x95\x52\xe1\xb2\x21\x33\xa6\x48\x85\xa4\xec\x76\x7e\xfd\x57\xdc\x00\x78\x13\xed\x99\xaf\x4e\x25\x9d\x63\x82\x14\x2f\xc0\xc6\xbe\xac\xbd\x56\x64\xc5\xbb\xf3\xe9\xb4\x31\x5a\xa1\x70\x45\x8e\x3d\x9d\x8f\x65\xb3\xfa\xef\xa5\x0f\x45\x07\x20\xe0\xa1\x03\x4c\x49\xeb\x98\xb6\x81\xc7\x72\x63\xa5\x72\x3c\x06\x7e\x12\x53\x7e\x21\xe1\x2d\x29\x91\x9c\xe8\x01\x81\xc7\xad\x68\x60\xb2\x39\x52\xa2\x89\xa3\xb7\xb2\xa5\x55\x67\x67\x76\xea\x05\xf4\x65\x06\x44\xf6\xff\x93\xca\x6d\xaf\x9e\x26\xa6\x6b\xab\x5e\xe9\x6c\x5a\x88\x6b\x87\xa8\xc4\x27\x06\xda\x2d\xf8\xae\xac\x7e\x87\x2a\x33\x99\x12\x57\x58\x38\x49\x03\x97\xac\x76\x9e\xc1\xe2\x7c\xce\xfd\xc0\xf1\x65\x03\x16\x63\x9a\x5f\x38\xec\x09\x7d\xaa\xca\xd6\xf0\x0d\xf2\xdb\x92\x06\xa1\xc1\xb4\xe9\x19\x75\xe2\xbe\x7d\x9c\x90\x26\xb8\x73\xbc\x68\x90\x18\x9b\x88\x6a\xca\x0a\x90\x6d\x61\xf4\x91\x02\x00\x84\xb1\x98\xf7\x31\xa1\xc7\x60\x41\x51\x4a\xad\xa8\x04\xfc\x42\x0f\x11\xd9\xc8\xe6\xd7\x93\x3b\x81\xc5\x36\xae\x3e\xd8\x77\x86\x35\x8e\xc9\x4b\x60\x1c\x6c\xe7\x43\xdd\xc6\x69\xfd\x7e\xa6\x27\xef\x80\x49\x0b\x27\xb5\x55\xd8\x9f\xeb\xc7\xdb\xcd\xcf\x03\x3b\xac\x1e\x6f\x0f\xfb\xf5\xc3\xca\x3f\x65\x18\x84\xd8\x1e\xb1\x05\xfd\xd4\xbf\x9b\x48\xc6\x18\x18\xb5\xb3\x7d\xf4\xd2\xe2\x90\x21\xdf\xd9\x6d\x25\x8e\x65\xf1\x63\x48\xbc\x30\x9c\x24\xd7\x76\x3a\xf0\x82\x42\x81\x6f\x09\x91\x34\x56\x84\x58\x50\x3d\x88\xfa\x32\xc9\xa5\xb7\x87\x19\x16\xe4\x9d\x8c\xb3\xcb\xbb\xff\x84\xec\xd6\xd1\x20\xfa\x71\x40\x91\x21\xaa\x39\x56\x53\xc9\x44\x49\x79\x18\x47\x5d\xe0\xb5\xb4\x65\xd1\x4c\xe6\xed\x4c\xb3\x2c\x63\x8b\x41\xdc\xfc\x85\x89\x19\xdf\x1a\xe7\x82\x7a\x45\x9e\x36\x44\x5f\x17\xc8\x59\xf1\xdb\xe8\x4b\xf1\x34\xc6\x60\xb7\xb6\xc0\xe8\x61\xe2\xb9\x3d\x08\xc6\x62\x76\xce\x5f\x96\xdf\x25\x4d\xa8\x40\x6c\x79\xdf\x47\xd0\x11\xbb\x4f\x4e\xec\x5e\x6c\x42\x0d\x16\xfb\xd0\x90\x7e\x1b\x02\x1e\x27\x97\x66\x81\x8f\x22\xb6\x97\x62\x87\x42\x4d\x83\x6c\x03\x4d\x62\xcb\x91\xf2\xb0\x7e\xdc\x0f\x27\x4d\x92\x26\x16\xc8\xda\xbe\xee\xf6\x35\xb6\x5f\x64\x32\x4f\x13\x09\xdc\xed\xff\x97\xf3\x3f\x9e\xfe\x39\xcf\x68\x70\xf5\xef\x97\x3b\x04\x4d\x99\xc0\x6d\xb8\x7d\xfa\xf6\xb9\x6c\x86\xa8\xdd\x1c\x07\x89\x70\x49\x53\x21\x52\xde\x95\x0b\xef\xcb\x37\x24\xc6\xf0\x9e\x21\x55\x69\x84\xd0\xdf\xf6\xec\x3f\x58\xf7\x57\xc9\x90\xdc\xc4\xef\x7e\x43\x6a\x5a\x49\xb5\x11\xa1\x03\x33\xfd\xc8\x9a\x26\xeb\xd2\x1e\x14\x08\xc1\x0a\xcd\x7b\xc7\x06\x89\xfb\xe6\xf0\x3d\x02\xa3\x5e\xaf\xed\x16\x6f\xb4\x0d\x8f\xec\xa6\x3c\xc7\x32\x21\xa9\x57\xc5\x43\xa1\xca\xa6\x19\x08\x2d\x4b\x0a\xc6\x60\x94\xf5\xf4\x52\x42\x91\xfd\xea\x7b\xb4\x25\x35\x4c\x60\xb2\xfb\x61\xf1\x87\x63\xc3\x38\xec\x9e\x9f\x9e\xee\xff\xd9\x0d\x88\x88\x0f\x26\x5d\xfb\xd9\xd8\x1c\xf9\x61\xd2\x84\xe9\x60\x5f\x58\x6d\x76\x7e\x99\x0c\x6d\x20\x23\x51\x84\xde\xda\xb3\xcc\xfe\x3b\xc4\xcf\x4b\xd6\xee\x2c\xa4\xe3\x09\x59\x1c\x61\xb4\x34\x58\x20\x62\xc4\xdf\x39\x22\x4d\x6b\xe7\x46\xf7\xc0\x02\x49\x31\xd0\xfc\xfd\x02\x4f\xe2\xa3\xeb\x5d\xf0\x3f\x10\x18\xc3\xdc\x27\xbe\xbb\xe4\xb9\xed\x80\x1d\xef\xe3\x8c\x52\xe2\x35\xc9\x1f\x4b\x2d\x72\x84\xba\x5f\x59\x72\x46\x85\x06\xd6\xd3\x47\xdf\xf7\xb5\xa2\x7a\x4a\xc2\xdd\x0e\xb6\x42\x88\x6f\x65\x03\x37\xfe\x66\xa8\x09\x51\x46\x70\xb1\xfd\x71\xb8\xbb\x5f\x7c\xfb\xb6\xda\x1e\x82\x83\xc7\x75\x49\x16\x46\x89\x0e\xfa\x7d\x60\x65\x15\x79\xb1\x6f\xaf\x0d\xa2\xc7\x2b\x87\x85\x31\x88\x0e\x78\xb6\x3b\x77\x40\x3f\xc9\x42\x6d\xbb\x1c\x94\x45\x0d\x21\xc4\x67\x9f\x9d\xc0\x67\xd4\x1d\x69\xb5\x64\xa1\x51\xd8\xd1\xf3\x53\x34\xea\xe5\x11\x7e\x35\xae\x91\x76\x90\x43\x63\x11\x89\x30\x1b\xda\x39\xa4\x03\xce\xe6\xba\x1b\xc4\x38\x19\x16\x7b\x6f\x45\x95\x7d\xed\xc5\xb1\x28\x0a\x7c\x6b\xdc\xa8\xcb\xc6\x1f\xe6\x06\x2b\x46\xab\x9b\xfb\xfb\xcf\x51\x0f\x92\x45\x22\xc4\xad\xf0\xc7\x8f\xbf\xd6\x1e\x22\x59\x24\x43\xb4\x4a\xf8\xde\x6e\xe1\x9c\x97\xd8\xb5\xd3\x3f\x8b\x8e\x42\x8b\xda\x73\xf3\x00\x42\x7f\x28\x8e\x08\x6a\xbe\x1e\x2b\x21\xe7\x70\x1b\x7e\x98\xeb\x7d\x47\xa6\x20\xac\xf7\x3c\x4e\xa5\x51\x25\x8b\x41\x8a\x1e\x3f\x81\xf5\xcf\x51\x37\x8f\xa7\x65\xf2\xc3\x8d\x00\x87\xcd\xfd\xfb\xf9\x43\x39\xf6\x99\xb9\x7a\xb4\x64\x5c\x8a\x71\x6a\xaa\x75\x01\xee\xca\xca\xe7\x8c\xa6\xe3\x93\x98\x06\x3e\xff\x0b\xa2\x99\x6c\x75\x7e\x10\x28\xa4\x0e\x35\x96\xdd\xc5\xdb\x43\x96\x06\x09\x32\x0b\x99\xac\x5d\x5e\xc8\x07\xd1\x1d\xe2\xa9\x21\x53\x42\xaa\xe5\x8b\xa8\x9a\xc5\x51\x64\x45\xdd\x60\x2b\x7a\x56\x1c\x57\x56\xe4\xe9\xaf\x14\x1a\x25\x13\x81\x91\xd4\xfb\xe5\x36\x15\x2b\xfd\x2f\x0a\x66\x70\xbb\xfc\xbe\xb9\xbd\x5f\x6d\xe7\xdf\x8e\x90\x01\x75\x1c\x09\xab\x42\xef\xa6\x15\x5b\xc9\x64\x60\x59\x29\x96\x3f\x97\xc3\xd6\x1b\xc9\xa4\x48\xb1\x6a\x7f\x5f\x1e\x1f\xe1\xbd\xe3\xfd\xbf\xe6\xc6\x19\xff\xa0\x54\xa1\x65\x7a\xf8\xb0\xa8\xb8\x7a\x0b\x0a\xb2\xb7\xde\x0a\x2a\xa2\xd1\x0a\x0e\xc1\x76\xf3\x39\x9f\xf9\x35\xa0\x13\xdb\x95\xbe\xcb\xda\x69\x8e\xfc\x91\x2e\xb1\xf4\xd7\xc2\x69\xa6\x15\xb1\x0f\x66\x29\xd2\x26\xb5\xa8\xf1\xbc\x05\x11\x21\x34\x50\xa0\x34\xf5\x4d\x6b\x39\x7a\xa7\x72\x28\x6b\x2d\x19\xe8\x08\xcb\xc9\x4e\x3c\x72\xa8\x63\x22\x99\x09\x0c\xe6\x1a\x8a\xd6\xda\xb5\x73\x0a\xcd\x6e\x2d\xb1\xd3\xa5\x80\xf7\xb3\xe8\x87\x86\xb6\x17\x0e\xd3\xb4\x0b\xdb\x05\xf0\x27\xd6\xc5\xf0\xc0\xcb\xc5\x5f\xa9\x5f\xcf\x05\x53\xcc\x68\x8b\x02\x38\x1d\xe4\x1a\x09\x3e\xdc\x8f\x87\x84\x2a\xa4\xd6\xba\xb9\x78\x9e\x85\xac\x79\xf9\x3a\xda\x1d\xdf\x4b\x48\x58\x48\xb4\x37\x38\x8f\x58\x65\xdc\x0f\xd8\xa6\xba\x79\x10\x12\x45\xa9\xe8\x20\xb9\x4b\x51\x77\xde\x43\x18\x90\x40\x59\x6d\x93\xf7\xa1\xa5\x18\x7d\x9a\x90\x49\x8a\xb8\x17\xd7\x28\x81\x0c\x4a\x53\xce\xb3\x90\xb8\xc1\x61\x4c\x7c\x65\x14\x95\x91\x76\x0d\x42\xfd\x66\x5f\x67\x18\x69\x82\x01\xd8\x39\x83\x2e\x13\x3d\x5e\x56\x61\x9c\xb0\x90\x78\xa2\xae\x46\xe4\xae\x4b\xc2\x1f\xd5\x21\x82\xbc\x9b\x77\x18\xcb\x3b\xc8\x30\x36\x96\xdc\x05\x1c\x69\xde\x83\xf8\x04\x13\xe7\x13\x5f\x53\x7b\x1b\x72\x22\xf0\x0a\x77\xf9\xc5\xaa\xac\x75\xaf\x8d\x07\x0a\x33\x71\xab\xed\x92\x52\xe6\xed\xdf\x01\x5c\x1f\xb1\x1f\x25\x08\xe6\xb3\x0f\x68\x52\xde\xb2\xf6\x2e\x70\x27\x74\x64\xcf\x13\xb6\x7d\x77\x56\x12\x2b\xee\xec\xc8\xb7\xec\x0d\x8a\xcf\x3a\x86\x64\x98\x28\x81\x2d\xb6\x8f\xf0\xbe\xbb\x1c\x8f\x6d\xf4\x5c\x5e\x45\xe9\x93\x8b\x2b\x43\x60\xf0\x75\x46\x9e\x79\xf7\xc1\x53\x12\x63\x26\xe4\x58\x65\x60\x7a\x6d\x30\x19\xa6\xdc\xa2\x4a\xea\x46\x1c\xe1\x10\x1c\x9c\xd6\x45\x99\x77\xcf\x9c\x6a\x85\x0d\x3e\x8b\xd5\xdd\x9d\xd5\x0a\x72\x07\x44\x90\x78\xf0\x14\x56\x8e\xad\xfc\x02\x56\xe3\xe7\xe7\x86\x88\x15\xea\xcc\xb6\x41\x95\x14\xb5\x4b\xeb\x38\x70\x4f\x77\xd5\xc4\xaa\x6a\xd8\x2c\xec\xbe\xbc\x01\x0b\x36\x1b\x6f\x8a\xa1\x10\x04\x57\x61\xfb\xa3\xce\x4a\x76\x53\x48\xf2\x38\x65\x8e\x08\x7f\x07\x88\x59\x9e\x32\xab\xca\x50\xe9\x04\x9c\x20\xf2\x4d\xa6\x75\x07\xfd\x93\xa1\x02\x22\x5c\xa3\xe0\xa2\xae\xa1\xa9\xaf\x29\x7c\x65\xa8\x45\x84\xa4\x0b\xe7\x01\xab\xc3\xe8\xfa\x46\x2a\xed\x75\x13\xac\x0e\xb5\x40\xf9\xb0\xaa\x54\x00\xba\xfe\x29\xb2\x41\x5d\x5e\x86\x46\xa7\x4e\x72\x04\x13\x48\x4f\x7d\x4e\xf0\x4b\x1d\x5a\x19\x11\x01\xbe\x29\xe2\x77\x28\x74\x59\x0d\xb2\x18\x8e\x7f\x72\x78\x5f\x51\x20\x02\xb0\xc5\x26\xa1\x0f\x68\x68\x0e\x1e\x5f\xd5\xfe\xff\x7a\xd2\x4c\x24\x23\x4a\x6c\xa7\x7a\x53\x65\xea\x35\x87\xe7\xf3\xf4\x78\xa8\x90\x76\xff\xdb\x90\xbb\xda\x3d\x56\x14\x92\x90\xab\x61\xf7\x33\x56\x25\x47\x4a\x07\x13\xd8\x84\x3b\x31\xe2\x0a\xab\x14\x4f\x55\xa6\x47\x19\x83\x28\x4a\x52\xa4\xb2\x38\xc1\x69\x59\x9e\xaf\x04\x1f\xc7\x73\x2e\x8a\x34\x41\xa6\x02\x2c\xfd\x61\xcd\xa0\xbb\x0e\xd8\xb2\x62\x07\x8a\xce\x4b\xb5\x2f\x9f\xa7\xed\xf1\x32\x4a\x62\x8e\x62\x0d\x8f\xe7\xb2\x0b\x17\xa2\x34\x31\x09\x1f\x08\x29\xd5\x9f\xe4\x5d\x23\xc1\xac\xf6\x7d\x05\x75\x73\x97\x15\xd9\x04\xb1\x25\x23\x99\x50\xed\x22\x1b\x97\x4e\x98\xc6\x08\x91\xd4\x8c\xca\x41\x44\x78\x0b\xe3\xbe\x14\x19\xe9\x88\xd3\xb4\xef\xac\x7d\x73\x80\x05\x5b\xe6\xf2\x0d\x36\xed\xb0\x34\x4d\x3d\x9d\x28\xe6\x3c\x44\xf5\x71\xf0\x5a\xe1\x07\x65\x45\x3d\xba\xd1\x9c\x21\x26\xbc\x6e\xe0\xec\x3d\xdb\xc8\xb0\x14\x77\x83\xd2\x98\x3c\x2b\x50\xe4\x60\x7e\xb9\x47\x26\x11\x01\xeb\x8a\x1b\xce\xf3\xf9\x51\x64\xc7\x97\x89\x0b\x1f\x19\xb0\xf5\xaf\x3e\x23\xb1\xb8\x1f\x39\x54\x31\xa1\x01\x16\x53\xd6\xcb\xcd\x9f\x76\x78\xc8\x98\xa4\xac\x73\xab\x2f\xa7\x85\xab\xe7\x38\x00\xb3\xb9\xe4\xb7\xd0\xd7\x28\xe3\x80\xa5\xd2\xc1\xc9\x5a\x1f\x1c\xc9\xee\x66\x2b\x10\x71\x10\x27\x58\x66\xbd\x79\xfe\xe7\xa1\xcb\x5d\xc4\x34\x30\x41\xd8\xb1\x7d\x22\x19\xb4\xc5\x05\xce\x04\xb8\x31\x4d\xb8\x76\x36\xd3\x46\x47\x57\x8a\x87\xb3\xc0\x1e\x19\x53\x20\x58\x12\x10\x5a\x63\x8a\xee\x7e\x26\x45\x17\x33\x0a\x66\x28\x24\x59\xb5\x9b\xd7\x27\xdb\x70\xcc\x54\x88\xdc\x60\x0f\xab\xdd\x6e\xf1\x6d\x75\x78\xda\xae\x97\xdd\x43\x31\xb0\xd0\x8b\xe5\xea\xff\x16\x5f\x10\x04\xcb\x38\x24\x21\xa2\x8b\x0f\x7e\x37\xbf\x39\xa9\x5b\xf1\x51\xbb\xe4\xd4\xec\x9a\x88\xc3\x50\xe0\x2b\xbb\x2b\xab\x49\xb3\xa9\x8c\x43\x20\xdc\xae\x97\x36\x00\xff\xb4\xd4\xfe\xc9\x85\x21\xc6\xdb\xce\x54\xd9\xd3\x0b\xca\x38\x8a\xed\xb6\x7d\x84\x02\xea\xac\x5e\xb6\x6f\xbe\x1a\xd7\xa1\xe3\x28\x55\x58\x1f\x69\xad\x7e\xd5\x64\x2a\x87\x21\xa1\xc9\x30\x0b\x1b\x47\x22\x40\x90\x55\x03\xe2\x84\x53\x76\x7e\x01\xc4\x91\x60\x4a\x0e\x02\x37\xab\x65\xf0\x59\xf5\xce\x9f\xe4\xdf\xfc\x80\x1a\xdd\xdf\x23\x0f\x15\xb6\x5d\x7a\x07\x68\x35\xf2\x4e\x62\x9e\x26\x58\x8a\x37\x17\xf5\x8a\xee\xbd\xc8\x4e\xc1\x15\xa1\x9c\x8c\x13\x3e\x54\x4c\x7a\x80\xe6\xa5\xd4\x8b\x9b\xb5\xbf\x4c\x22\x44\xe2\x1a\x27\xd7\x45\xd6\xb4\x01\xa7\xc7\x62\xc4\x29\xd1\x98\x67\xb1\x38\xd6\xe9\xfc\x13\x11\xc3\xd9\x7d\xba\xe4\x4d\x76\x33\x90\x9c\xf4\x0e\x58\x2c\x40\xe2\x4a\x7f\xda\xae\x0e\x4f\xcf\x37\xf7\xeb\xe5\xe1\x7e\xb3\xfc\xf1\xfc\x74\x78\x5a\x6d\xd7\x9b\x5b\xff\x3b\x32\x48\xd0\x8b\xc5\x0d\x6a\x91\x55\xb7\x55\x79\xee\x8e\x85\xc2\x38\x7f\xf4\x27\x88\x73\x59\x3c\x94\x1a\x26\xc0\x80\x58\x4a\x89\x9c\xb8\x13\x4c\x9b\x8c\x15\x95\xb1\xcb\xc2\x9f\x2d\x54\xfb\xb7\xa1\xa7\x14\x2b\x61\x9b\xd9\x1e\xa1\x79\xcd\xda\x79\xf2\x85\x0a\xc1\xe4\x7b\x6b\x62\xa3\xf9\xf3\x25\x77\x1c\x10\x93\xf7\x03\x81\x15\xee\x16\x5e\x2e\xf8\xf7\x32\xbf\x5c\x97\x4e\xff\xb4\x3c\x32\xce\x8c\xcf\xfa\x05\x31\xc4\x16\xd9\xf2\x52\xe6\x1a\x2a\xe7\x9f\x8e\x6f\xc7\xc4\x09\x66\x7f\x6c\x6d\xe0\x7b\xd9\x4c\x5a\xff\x64\x6c\xb8\x9d\xe9\xb5\xa5\x16\xbc\x2a\xfd\xc7\x26\x65\xc2\x25\x1b\x56\xcd\xcb\x73\xad\xaf\x00\x82\xed\x98\x08\x79\xd6\xd7\x45\xbb\x10\x3a\x4f\x8f\x13\x0a\x98\xc4\xc2\xd9\xd2\x31\x16\xc0\x74\xce\x70\x12\x32\xf4\x58\xb2\xda\xc2\x13\x9e\xca\xba\xce\xba\x0e\x62\xc9\x49\xaa\xa9\x53\xdd\xa9\x32\x4c\xa4\x8e\x7e\x9f\x13\xc3\x51\xdb\x03\xf3\x11\xe8\x17\x39\x7e\xe0\x41\x90\xc9\x89\x31\x48\x0f\x90\xb9\x9b\x7c\xca\x40\x39\xb9\xb7\xf1\xd5\x82\x84\x78\xda\x29\xf4\x15\x66\xaa\x9f\x9f\xb0\xfe\xdb\xe0\x64\xc6\x88\xf2\x20\x0d\x02\x36\x11\x1d\xe3\xfe\xce\x68\x98\xa0\x15\x39\xdb\xbe\x8f\xcb\x30\x7d\x30\xc8\xfb\x70\xaa\xa9\x55\x30\x7f\xc9\x4c\x73\xa8\x70\x9b\xbd\xf4\x1a\x8c\xfd\x13\x50\xa3\x0d\x78\xfc\x74\xbb\xbc\x1c\x1f\xe3\xac\x11\xe3\x4c\x44\xe8\x4c\x5b\xec\xd7\x22\xcf\xef\xe1\x0d\xf2\xa5\xe8\xf5\xb1\x27\x2a\xc8\x92\x87\x41\x84\x05\xd3\x75\xa1\xb3\xb7\x4c\x5f\x44\x3b\xfc\x53\xb2\x5b\x7f\x52\x44\xa4\x17\x60\x6f\xd4\x28\xa9\xe1\x47\x68\xe1\xa5\x40\xf7\x50\x34\x02\x51\x4a\x59\x81\x42\x9c\x18\x76\x0c\x59\x2f\xae\x11\x89\x3c\x84\x18\x5b\x28\x17\xb7\xbf\xaf\x77\x9b\xed\x61\xb7\x5f\xfc\x58\x1d\xee\x36\xcf\x5b\xff\xaa\xa3\xd8\xca\x37\xe3\xaf\x97\xa7\x4c\xfd\xea\x8e\x48\xdb\x2e\x6c\xa3\xea\xa1\x6c\xa5\xe4\x9c\xc6\xd8\x61\x72\x86\x2a\x2b\xf5\x7a\xbf\x39\xd8\xff\xd5\x1d\x67\x1c\x93\xe8\xbb\xe5\xc6\xf3\x96\x4b\xce\x23\x19\x62\x26\x6d\x10\xb8\x70\x0e\x02\xa8\x2f\x83\xb4\xd1\xc1\x4e\xe4\x08\x48\x1b\xa2\x85\x78\x02\x12\xb7\xdc\x4d\xa1\xca\xbc\x3c\x76\x53\x38\x31\x09\x92\x9c\x9d\x8e\xd5\x40\xa7\x50\xf2\x34\xb0\xec\xf7\xde\x7b\xbc\xd6\x42\x90\x3c\x0d\xa9\x15\x2a\x17\xf5\x41\x9c\x46\x67\x03\xc7\x9a\x1a\xd2\xdf\x3f\x96\x6f\x62\xbc\x6e\x04\x55\x58\xa8\x17\x5a\xff\xe3\xe2\xe2\xd5\x4f\x2a\x32\xa3\x29\x2f\x22\x13\x3a\x17\x6d\xdc\x48\x27\xb9\x48\x48\xea\x10\x65\x88\xa5\x6a\x17\x84\x4b\xc7\xff\xc5\x7a\xf1\x64\x6a\x09\x60\x01\x8c\x28\x2a\x90\xd7\xea\x1e\x4c\xf7\x94\x52\x18\xee\x7b\x2f\x2c\x15\xd5\x03\x52\x98\xcc\xd7\x1e\xfb\x4b\x2b\x22\xb0\x37\x5a\x97\x37\x97\x09\x10\x89\x2b\x99\x44\xc4\xf7\x04\xfd\x7a\x80\xea\x38\x42\x84\x71\x65\xe2\xd4\xd2\xc4\x7d\xb8\x16\x8d\x4e\xa6\x5a\x72\x88\x42\xc0\xb2\x40\x3f\x07\x81\x87\xc8\x22\x00\x85\xde\x98\xfb\x52\xbd\xce\x14\xa1\xb9\xa1\x01\x58\xd1\xdf\xa3\x23\x77\x90\x09\xd1\x31\x6e\x79\xbb\x7f\x6c\x1d\x7e\xe1\xe1\xf9\x7e\xbf\x7e\xba\x5f\x7b\x79\x1f\x99\x10\x03\xa9\xa7\x48\x9f\xed\x1c\x92\x49\x40\xd3\xd4\xa5\x31\x16\x79\xee\xb8\x6f\xef\xb2\x42\xe4\xd9\xff\x86\x54\x6b\x32\x09\xa2\x08\xdb\xc5\xfc\x8c\xfb\xd9\x61\x4d\x92\x20\xb2\x2c\xed\x16\x0f\x7c\x3a\x5f\xf2\x1a\xac\x0c\x85\x1b\x10\x6a\x2b\x54\x6f\x9d\xa6\xdd\x2b\xb4\x9f\x61\xc6\x68\x26\x11\x31\x58\xd5\x28\xe0\xbd\x73\xad\x2e\x23\xfa\x2a\x37\x30\xa6\x81\xb6\xdb\x72\x6f\x12\x66\xd0\x2a\x49\xcc\x28\xf2\x7b\x74\xbb\xf3\xca\xb9\x59\xfe\xd6\x62\x6e\x15\xbe\x50\x53\xe4\x0d\x86\x55\x7a\x3f\x42\x84\x68\xf9\x5e\x86\xfc\xcd\x32\xe1\xd2\x60\x02\xe8\xfe\xfe\x8f\xee\x4f\x3a\xc2\x4d\x6d\x46\x80\xd6\xa7\xb4\xc2\x7f\x4f\x1d\x81\x7f\x05\xc1\xbf\xff\x36\xe3\x91\x26\x1c\xec\x12\x47\x22\xb5\x76\x8f\xac\x1d\x31\xc1\xe0\xa3\x24\xc0\x55\xcf\xc5\x75\x83\x49\x86\xf2\x54\x5e\x9a\x4f\x34\x62\x64\x92\x12\x5b\x28\xfe\xe7\xf3\xd3\xd7\x49\xe6\xd9\x90\x25\x49\x8d\x44\xaa\xec\x8f\x0c\x72\xcd\x6f\xbb\x2c\x6d\x22\x22\x4b\x79\xff\x9d\x6e\x96\xfd\xdf\x0c\xd6\xb6\xed\x67\x1f\xbc\x95\xeb\x9e\x8d\x49\x67\xc8\xf8\x47\x25\x09\xd0\x84\x63\xcf\xb5\x4d\x0c\xb5\x9f\x72\xca\x88\x29\x13\xa9\xa8\x2f\xe9\x7a\x38\xed\x93\x68\xd7\x54\xd7\x99\x28\x13\xc5\x43\xea\x04\xcb\xb6\x08\x3e\x76\x6e\x94\x3b\xac\x35\x93\xbd\x7f\xef\x74\xc8\xc6\xce\xd8\xbf\xae\xbe\xe1\xd7\xb6\x2a\x81\xd0\x60\xaf\x8c\xed\x3b\x9e\x74\x01\xf8\x31\x3c\x41\x63\x25\x2f\x1f\x3f\x40\x0a\xe9\x77\x86\x04\x12\x6a\x53\x23\xd9\x68\x29\xf8\x1d\x30\x25\x9c\x81\x9c\xb4\xdc\xcd\xf5\xa5\xc8\x34\x60\x3a\x08\x5d\x0a\xed\xe6\xa3\xfd\x1c\xea\xe5\x4a\x8e\x66\x6e\x2a\xa6\x94\x08\x6d\x21\x40\xf8\x09\x16\x85\xc6\x40\x60\x76\x86\xa5\x34\x4c\x90\x2e\xc7\x3e\xe7\x48\x29\xd1\x8f\x88\x08\x2a\x9f\x6b\xf1\xd1\x64\xa7\xab\xa3\x10\x62\x83\xc9\x21\xab\xbf\x95\xe5\x2c\x29\xbe\x4c\x19\x0d\xb0\xe5\xa5\xcf\x2e\x7c\x72\x37\x11\x89\x22\x97\x1d\xf1\xca\x8f\x57\x50\xa0\x34\x22\x82\xbb\x0d\x0f\x29\x8b\xda\xd9\x35\x40\xcc\x5f\xbd\x9a\x6e\x01\xa6\x91\xd0\xe0\xbb\xee\xee\x44\x66\x29\x40\x5e\x44\xfd\xb2\x2e\xea\x8b\x31\x19\xa8\x0c\x8a\xa6\x2f\xcc\xa7\x91\x4e\x81\x77\xa5\x09\x93\x1d\x57\x45\x53\x59\xa2\x84\xd9\x2a\x7f\x1a\x07\x56\x4e\xd9\x52\x9f\x3b\xe0\xca\xec\x1c\x4a\xe3\x54\x12\xc7\x22\xda\xd4\x4d\xd5\xd9\xaa\x94\x33\x9b\x16\x70\x98\xa8\x4e\x20\x63\x52\x48\x98\xbc\x3a\x9e\x4a\xcc\x05\x6f\x37\xcf\x8f\xb7\x87\xe0\xf0\xb4\x5d\xed\x16\xf7\xab\x21\x7d\xb7\x4c\xb9\x8c\xd1\x57\xc8\xcf\x8b\xfa\xd5\x85\x3e\xee\x50\x22\x42\x82\x9d\x46\xaf\x59\x31\xd6\x99\x96\x69\x4a\x68\x82\x94\xfb\x88\x7c\x6f\xa0\x82\xeb\x64\xdb\xff\x9f\x47\x90\x0a\xaa\x80\xfa\x9c\x4d\x9e\x3f\x95\x35\x12\xef\x7c\xb2\x18\x44\x18\x61\xf2\xfc\x5b\xd6\x7c\xbf\xc8\x21\x23\x80\x4c\x85\x0c\xd0\xf2\xae\xce\x43\x86\x1d\x99\xca\xd0\x92\x45\x59\xdb\x30\x49\x36\xa4\x52\x10\xd6\x09\x10\x38\xff\xbb\x17\x3e\x78\xb0\xc4\x62\xf3\x45\xc2\x54\x0a\x2e\x55\xd7\x4d\xb7\x50\x0a\x61\xa9\xa0\xbb\xa6\x80\xc9\x70\x09\x58\xa3\xdc\x8a\x6c\xd7\xa5\x0a\x52\xc5\x6d\x43\xb7\x72\x4c\x19\xf6\xe4\x53\x0f\x0d\x48\x95\x08\x90\x95\xf0\x41\x54\x99\x28\xc4\x0f\xb8\x02\x69\x5f\x57\xcc\x53\x25\xad\x62\x66\x71\x39\x2d\x5f\xb2\x73\xdd\x3e\x49\xff\xa3\x5a\x27\x51\xd0\xa3\xb7\xd7\x85\x29\x6f\x3e\x6c\x9b\xdd\xf8\x85\x6b\xd0\x61\xfc\x49\xbb\xf9\x7a\xb9\xf1\x15\xe5\x14\x02\xea\xbc\x36\x7f\xf7\x6b\x7d\x2f\xea\x66\xd1\x34\x70\x3a\x37\xa0\xf7\xe5\x0e\x9a\xa6\x0b\x15\x53\x50\xb6\x73\xca\x6a\xa4\x3d\x41\x55\x67\xa2\xa8\xf7\xa5\xc5\xc4\x4c\xee\x02\x8c\x32\x3e\x31\x7b\xa9\x9b\x52\x67\xa2\xb8\x2b\x2b\x68\x1d\x8d\xd1\x3b\x16\x24\x4e\x10\xde\x62\xb2\x73\x8d\xda\xe2\x35\x46\x71\x28\x8a\xee\x6b\x42\xbe\x2e\xe5\x4f\xe1\x3c\xc5\xfa\x45\x26\x9a\x41\x3d\x46\x10\x21\x2c\xdf\xd5\xaf\x3b\x80\x5d\xfb\x44\x03\xaf\x50\x10\x05\x91\x0b\x81\xee\xb3\xe2\xb5\xfd\xe8\xa3\xfc\xa2\x08\xa8\xe5\x0d\x45\xe2\xfb\xd6\x47\x1c\x4f\x3c\x11\x30\x89\xc9\x66\xd7\x2f\xf0\x49\x6e\x50\x04\x8e\x3b\xeb\x2e\xff\xf0\xef\x4e\xd0\x30\xd6\x56\xdf\x19\x4f\x5d\xed\xbf\x77\x47\x62\x4a\x9c\x80\xd1\x33\x06\x9c\xbf\x5d\x49\xff\x4b\x41\x05\xf5\x99\xcf\x27\x1b\x1e\x0d\x51\x0b\x82\x4a\x2b\x86\x70\x38\x42\x63\x23\xdd\xfa\x52\x9d\xf3\x2e\xea\x11\xd4\xc8\xd8\x56\x81\xdf\x9f\xca\x3c\x53\x1f\x9f\xe9\x00\x8e\xfe\x4d\xc6\x59\x11\xc1\x62\xc9\x6c\x03\x3e\xd2\x2f\x6c\x61\xfa\xe4\x61\x6b\xff\x86\xfc\x59\x4e\xe2\x7c\x3c\x37\x44\x28\x24\x42\x0b\x6c\x17\xb0\x7b\x8d\x4b\x04\xe7\xcf\xee\x2d\x22\xa2\xc6\xab\x4f\xf8\x85\xba\xb4\xd2\x76\x73\x80\x29\x11\x69\xb0\xee\x50\x7b\xdd\x1c\x65\xf1\x8f\xa8\x0c\xe2\x5f\x47\x04\x40\x7d\xd6\x39\x2b\xda\x9d\x0d\x0e\x60\x0c\xa8\x26\x33\xdd\x18\x13\x20\x5f\xd8\x7b\x9f\x25\x9b\xe4\x46\x44\x1c\x47\x81\xaf\xcf\x78\x49\x8d\xbd\xf8\x35\xcd\xa1\x88\x98\x87\x89\xea\x04\x4a\x5d\x7b\x61\x1b\x9d\xf6\x9d\x40\x22\x86\x28\xf0\x9f\x10\xc3\x82\x09\x3c\xa4\xf7\x85\xa6\x19\x03\xc1\x09\x4b\x5c\x0b\x1a\x14\xcd\xa5\x82\x9b\x4f\xba\xcc\xe6\xfe\x9d\xce\x34\x1e\x18\x94\x94\x72\xf1\x38\xee\x85\x47\x88\xfd\x6d\xf2\x30\x44\xa9\xb9\xa7\xb2\x86\x4c\x97\xc5\x3f\x2e\xa2\xeb\xee\x13\x9c\xa7\xf8\xca\x44\x75\xfa\xf8\x0e\x79\xa6\xca\x73\x03\x55\x3d\x93\x08\x12\x3c\xe5\x9c\xbb\xed\x3c\x50\x9d\x02\x93\x14\x5c\x05\x18\x98\x08\xad\x51\x3b\xf2\x6b\x22\xcb\xee\x24\xc5\x9d\xef\xb1\xae\x87\xac\x62\x52\x24\xa1\xc4\x42\xd5\xfd\x7f\xde\x77\x8d\x28\xb4\xa8\xf4\x70\xab\x11\x29\x89\x1d\xe8\xa1\xa3\xe3\x1f\x7c\xa0\xc1\x28\xac\x13\x7e\xcf\xaa\xf2\xe3\xf2\x9a\x0d\x1a\x00\x44\xca\x52\xab\x41\x75\x2c\xbb\x5a\x91\x48\x15\x60\x99\xde\x53\x16\xdc\xc2\xdb\xe0\x10\x56\x48\xeb\xf2\x04\x0b\x75\xed\x24\x89\x54\x4b\xeb\x19\xbf\x14\xe2\x08\xbb\x33\xa8\x4c\xe4\x77\x00\xfb\x81\x96\xe6\x9f\xbc\x90\x14\x94\x50\x7d\xfb\xcc\x8d\x28\x5e\xfb\xd9\x2f\x08\x60\x76\xf7\x1d\xe0\xd5\x77\x25\xfb\x43\x49\xaa\x1d\xf4\xe6\x26\xd3\x9f\xa8\x25\xb8\xb1\x52\x59\x16\x98\x27\x10\xed\xea\x15\x59\xf1\x67\x92\xb3\x52\x48\x2d\x11\xdf\xac\xb3\x5a\x4c\x00\x26\xe3\x8b\x2b\x96\x46\x41\x2f\x3a\x31\x4d\x96\x0b\xc5\x75\xa0\x3d\x29\xec\x27\xa5\x81\xcf\xfe\xc5\x76\x9c\xc9\xe5\x12\x3b\x73\x2d\x18\x6d\x10\xf8\x09\xa5\x42\xcf\xdf\x76\x33\x40\x8a\x08\x9d\xa4\x89\x2f\x93\x7f\xf4\x5c\x61\xee\x28\x44\x80\x8e\xb7\xb7\x56\x53\x8b\x00\xed\x2f\x5a\x7b\x6c\xb5\x93\x9e\x7c\x01\x41\x18\x92\x86\x62\xa0\x1e\x35\xb9\xb2\x09\x28\xea\xdd\x1d\xac\x07\x33\x40\x47\x5d\x17\x5f\x25\x01\x89\xfb\xc2\xc9\x91\xad\x96\x7d\xd1\x53\x06\x81\xe9\xe4\x60\x10\x26\x23\xb3\xc9\xd9\x81\x8a\xb0\x09\xf9\x8f\x9b\xe5\xe6\xe1\xe1\xf9\x71\xed\xe5\xdc\xa4\xa4\xb1\x26\xa4\x07\x69\xa2\x1e\x9c\x57\x9c\x72\x43\x58\x6a\x10\x2d\x85\x50\x6f\xa4\xc3\x9f\xcf\x5d\xca\x50\x5b\xcb\xb7\x79\x83\xaa\x06\x51\x6f\xa1\xb9\x54\x05\x40\xfd\x5c\xf4\xe9\x03\x19\x6a\x65\x79\x9e\xb1\x39\xf8\xa1\x2c\x9a\x97\x55\x07\xb5\x95\xa1\x21\x08\x1a\x7d\xbc\x0c\x17\xb7\x8c\x12\x85\x49\xbd\xae\x0d\xf8\x6e\x71\xbf\xdc\x3c\x76\x87\x75\xe4\xba\x8e\xac\x5e\x7b\xbd\x2f\xd7\xcb\xcd\xf8\x53\xc9\xc8\xc4\x58\x82\xfe\xf1\xfc\xb8\x5f\x8d\x4d\xc8\x9f\xba\x74\x32\xa6\x9c\x76\xb2\x77\xf5\xa8\x56\x22\xe3\x88\x63\x64\x65\x2a\x00\xfd\x33\x2b\x3e\x93\xbd\x91\x92\x27\x3c\x40\x9b\x6c\x0d\xd3\xa1\x86\xe6\x24\x7e\xdd\xc0\xc4\xa8\xca\x24\x65\x1e\xd8\xb4\x03\xd1\x78\x8a\xa2\xf1\x20\xc9\x23\x0f\x79\x70\x7b\xa8\x13\x31\x77\xc7\x15\x0b\x43\x07\xbd\xf8\x69\x6b\x5c\xbd\x93\x99\xf8\x31\x32\x44\x6f\xe6\x5b\x99\x15\x4d\xf9\x90\x1d\xab\x99\x60\x4f\xea\xd8\x22\x3c\xcf\x97\xfa\xe5\xfb\x90\xd3\xf8\x6f\x83\xf0\x7a\x02\xc0\x94\x5a\x5a\x26\xf2\x97\x4c\x6b\x18\xe1\xc8\xa5\x96\x06\x19\x6d\xda\xe7\xdf\x67\x3d\x18\x41\x02\xb5\x98\x13\xe9\x91\x58\xf3\x13\x0d\x78\x82\xa8\x83\x47\x78\xbf\xd9\x3c\x7d\x59\x14\x4d\x66\xf3\xae\x12\xb4\xc1\xf9\x84\x39\xb7\xbf\xc6\x98\x28\xa5\x09\x02\xcc\xfc\xdd\xec\x97\xcb\xc1\xbe\x21\x4d\xca\x04\xf1\x70\x82\x46\x64\x5d\x51\x5d\x1a\x11\xa2\xa3\xaa\xe1\x9a\xd4\x48\x4a\x03\x09\x23\x5d\x01\x12\xef\xe2\x3b\x96\xa9\xdc\xe9\x8a\x10\x89\x16\xe4\xdb\x62\xb9\xec\xfe\xc6\xac\x0e\xf4\xb7\xe5\x9d\x2a\xb3\xe2\xee\x2b\x2b\xad\x48\x2a\x11\x8b\x77\xb2\x10\x97\xd6\x1b\x47\x7c\x45\xbf\xba\x15\x0b\xb5\xa5\x0e\xa8\x9a\xac\x6e\xea\x45\xd5\xbc\x97\xd5\xab\x1d\x32\xba\x5d\xc5\x34\x01\x83\xd3\xbc\xfc\x1f\x14\x0e\xba\xba\x07\x71\x1a\xd5\x01\x54\x48\x28\x46\xce\x36\xc1\x76\x2b\xaa\xd7\xa2\xd4\x80\x5c\x7b\xb3\x3b\x44\xbb\xf9\x44\x8e\x63\xac\xd3\x7c\xba\x34\x2f\x65\x95\xfd\x4f\xcc\x34\xfb\xaa\x30\x4c\xd1\x70\xde\x65\x55\xdd\x4c\xa2\x64\x15\x72\x88\x3a\xe1\xb1\xfb\x6c\x66\x80\x49\xd1\xc7\xf2\x98\xd2\x9b\xfd\xf2\x4b\xa0\xa3\x8a\x98\xc2\x4a\xe8\xa2\x12\xb5\x12\xed\x3b\xff\xf2\x95\x47\x5a\x62\x94\xdc\x06\xb3\x75\xb3\xa8\x07\x34\xa6\x52\xc5\x8a\x60\x2c\x65\xf0\xd6\x5f\xb2\xf3\xb0\xa2\xa1\x62\x4d\x10\xe1\x7d\xdd\xa1\xdd\x3a\xe9\xbb\xec\x58\x88\xd6\x29\x1c\x0b\x98\x24\x43\xa4\x9f\xbb\x10\x17\x56\x26\xdf\x20\xd0\x06\xf4\x7d\x89\xa0\x2b\xff\x3b\x09\x89\x00\x3a\x44\x8a\x43\x2b\x0d\x0b\xed\x56\x88\x1d\x19\xcd\x26\xfb\x9d\x4a\x88\x55\x85\xbf\x13\xaf\xf0\x08\xef\xa3\x68\x5f\xa5\xa1\xd4\x0e\x77\x60\x31\x3e\x9d\x9c\xdd\xf8\x22\x69\x68\xd0\x6b\xb7\x37\xd0\xb3\x33\x4d\x87\xa5\x04\xa3\x34\xb7\x43\x8e\x69\xa4\xfd\x18\x15\x93\xa0\x07\x8c\x2d\x2c\x39\xdf\xa0\x30\x78\x95\xc0\x57\x22\x96\x02\x17\x85\x68\xc3\xf2\xe2\xba\x19\x57\x49\x45\x26\x1a\x79\x93\x5f\x55\x8c\x73\xab\x11\xf3\xf0\x61\x67\xbf\xed\x6e\x38\xec\xa0\xdb\xca\x94\x52\x54\x06\xbe\x53\xb0\xcc\xef\x82\x36\x2a\xbc\x0b\x76\x4d\x75\x47\xd7\x45\x63\xd8\x6f\x23\x91\x4e\x37\x99\x46\x37\x02\x52\x5b\xbe\x2c\xc8\xe1\x28\x1a\xd0\xdb\x6b\xe1\x35\xa9\x40\xd9\x8e\xed\x76\xff\x99\x27\x2a\xf3\x03\x8d\x05\x49\xfe\x14\xc5\xb1\xfd\xcf\x72\x66\x32\x5f\xef\x7d\xca\x04\x11\x56\x68\x9e\x1f\x91\xb1\x65\xbf\x5a\x3c\x78\xe2\x51\xa9\x8c\x20\x03\xa1\x5c\x84\xe5\x4f\x0a\x5f\x53\xf3\xdc\xfb\x64\x9a\xc4\xca\xea\xba\x87\x74\xd4\xf2\xaf\x89\x8a\xf0\xaa\x48\x63\xfa\x17\xf0\xd9\xfe\x34\xe0\x58\xe3\xd8\x42\x76\x92\x97\xaa\x2b\xb2\xeb\x20\x0a\x90\x42\xc0\x36\x8c\xba\xfd\xb4\xee\x8e\x6a\x83\xcd\x6c\x58\x07\x1e\x5a\x47\x1d\x80\xc4\x92\x85\xc6\xb6\x07\xec\xbb\x18\x59\x3b\x4d\x69\x88\x41\xbf\xe5\x41\xde\x8a\xff\x74\x07\xb8\xe5\x26\xb7\x74\x1d\xdf\x26\x41\x5c\xe2\x47\x69\x69\x05\xb9\x2a\x78\xcb\xca\x4b\x7d\xeb\x3e\xf4\x64\xd9\x69\x96\xda\xab\x21\x3b\xfe\xb5\x70\x93\xd4\x4c\x45\x98\x30\xcf\xc1\x34\x09\x9b\x1e\x74\x8e\x19\x96\xe0\xea\xe6\x4a\xce\x68\xbc\x40\x74\x48\x2d\x8d\xab\x14\x35\x58\x36\xd9\x43\x56\x1f\x6a\x80\x4e\xcb\xa1\x1d\x03\xc4\xcc\x37\xf7\x74\x43\xc0\x1a\x3b\xf5\xf2\x8a\xfd\x5b\x7a\xe2\x5b\xeb\x28\x14\xb1\xf7\xbc\x1d\x50\xea\x93\xc8\x58\x47\xa9\xd5\x0d\x59\xed\xef\x87\x16\x47\xc7\xb1\x65\xcf\xab\x5d\x40\x5e\x4e\x29\x83\xa5\x8e\x35\xe7\xe0\xd3\xc7\x65\xa5\xb3\xe2\x8a\xb9\x56\xea\xd8\x68\xf4\x83\x6c\x49\x60\x59\x56\x9f\xf8\xb8\x9a\x13\x8e\xc2\x8a\x87\xc3\xc1\x52\x29\xfe\xfa\x98\xc1\xc5\x6a\x2e\x93\x88\x0d\x7c\x72\x1b\x8f\x5a\x96\xfe\xc9\x05\x55\x84\xb6\x06\xb9\x20\xf7\x3e\xa7\xa7\xb9\x26\xb8\x4d\xd9\x42\xe5\xf7\xcd\xed\xfd\x81\x3d\xf8\x83\x49\x60\x05\xa5\xf2\xf2\x78\x1c\x33\xc7\x49\x9d\x12\x8a\x4d\xce\x87\x3e\xcf\xef\x18\xc6\x3d\xc4\xf8\x53\x14\x99\xbf\x42\x24\x9c\x1c\x51\xeb\x94\x7c\x32\x55\xa6\xe7\xa8\x98\x46\x53\x90\xe3\x93\xc8\xdb\x7d\x67\xf2\x6a\x52\x65\xd9\xa2\xde\xa0\xd0\x3e\xa3\xa7\x45\xdc\xc1\x90\x91\x85\x74\xba\x42\x85\x11\x26\x1d\xe7\x8d\x16\xcd\x4c\xce\x54\x4b\x4e\xb0\x14\xf2\x63\xfb\xd3\x37\xa6\xb7\x4b\x0c\x01\x61\xb9\x68\xdd\x01\xc7\x89\xdc\xfb\xba\x6e\x94\x22\x0c\xf1\x20\x05\x34\x6d\x88\xe5\xfd\x86\xda\x72\x32\x7f\xbe\x5a\x54\x14\x53\xd1\xa9\x9a\xd8\x32\xc3\x20\xee\xd4\x9a\xa5\x89\x65\x35\xe1\x63\x1b\xa7\x79\x82\x22\x1a\x1d\x13\xa9\xbf\x13\x9d\x44\x18\x4f\xe0\x9e\xb8\xc0\xb6\x11\xb8\x2a\xfa\xfb\xb1\x22\x88\x2c\x2a\x68\x5f\x5d\xda\xe0\xd1\xdf\xf7\x6c\x11\x48\x43\xc8\xed\xf6\xbd\x5a\x1d\xb6\x8b\xc7\x6f\x1e\xe9\xa8\x21\x92\xb6\x83\x51\x9c\xc0\x29\x25\xfb\x23\x89\xd0\xed\x91\xf3\x55\x13\xb0\x86\x44\x73\x2b\x44\x51\x5c\x44\xee\x89\xe8\xf7\x7d\x88\xd4\xdf\x27\x80\x42\xb7\xb5\x9d\x53\xd9\x09\x9e\x2a\x14\xa0\x77\x07\x0d\x61\x3c\xe9\xfb\x38\x5e\xb2\x5c\x57\x50\x8c\x71\x2b\xda\x84\x11\x76\xa8\xfc\x5f\x59\xa2\xd4\xec\xd0\x0e\x00\x21\x16\xae\x56\x59\xaf\x0e\xd3\x95\xd8\x06\x28\x4e\x30\xce\xfd\x02\x09\x6d\x4e\xb1\xfd\x44\x77\x97\x42\xf5\xa4\x1e\x83\x9d\x09\x48\x44\x2c\x3d\x4c\x79\x3c\xe6\x70\x55\x46\x06\x92\x32\xe4\x52\xb2\x9a\xaf\x96\xf7\x37\x2b\xf5\xed\xc5\x4e\x2a\x27\x78\xef\x7f\x93\x82\xe5\x6a\x14\x5a\x0f\x82\xbd\x49\x80\x32\xb8\x3a\x63\xa1\x49\xba\x46\xdb\xbb\x4b\x6e\xb2\x3c\xb7\x4d\x77\xa3\xd7\x0a\x2c\xb4\x0d\xe5\xa7\xac\xb8\xb9\x7c\x6c\x45\x03\xeb\xe2\xa9\x02\x95\x0d\x0a\xf6\xc0\xa2\x30\x75\xec\x60\x3f\x01\x01\x51\xfe\x40\x62\x1c\x31\x5d\xb1\xaa\x95\x38\xc3\xbe\xf4\x05\xd3\xc1\x1d\xfa\x2f\x00\x4c\x4a\x4c\x85\xed\x77\x7b\x24\x96\xfa\x5f\x9f\xec\x00\x06\x56\x3b\xfd\x80\xcb\xe0\x3c\xdb\xd7\x01\x61\xc0\xb0\x27\xcf\x71\x51\x8f\x65\x41\x86\x4d\x23\x3e\x89\x09\x61\x24\x31\x86\xbd\x14\x59\xf3\x74\xbf\xd8\x2f\x07\x08\x73\x37\x24\x52\x40\x7a\x5a\xc5\x91\x31\x1e\xaf\x54\x88\x74\xc2\x61\xd0\x71\xe3\x70\xe6\xdd\xa6\x06\x71\x64\xe9\xee\x4c\x56\xe8\x4d\xae\x3b\x12\x7b\x09\xb1\x48\xa5\xd5\x93\x40\xc9\xcc\xc3\x30\x41\x02\x3c\x0d\x30\xb3\x64\x97\xea\xc1\xa9\x9a\xf9\xa3\x49\x9a\x22\x5c\xe2\x5b\x1b\xda\x15\x57\x33\x37\xd1\x42\x7a\xc8\x3a\x6e\x5f\x77\x65\x35\x60\xf3\x19\x2f\x77\x48\xa5\x25\x71\x3a\x38\x29\x03\x57\x85\x40\x9f\xa5\xfa\x93\x26\x00\x10\x22\x41\x5f\xc5\x3a\x91\xbb\x21\x49\xca\xac\x55\x07\x21\x00\x8b\x15\x4e\xca\x06\xf4\xe2\x58\x01\xf6\xd8\x2e\x2d\x44\xde\x67\x49\x41\xa8\x54\x75\x12\x76\xc6\x46\x35\x9f\x5c\x13\x24\x72\xe7\x9d\x2e\x55\x1f\xe9\x82\x4c\x2c\x9c\xbe\x29\x2f\x28\xf4\x56\x4c\xe3\x36\x90\xca\x92\x49\x7b\xda\x22\x1b\x22\xce\xd5\xf7\x41\x85\x1c\xdb\xa7\x11\xbb\x74\x2e\xcb\x1c\x09\x7e\x50\x57\xaf\x67\xd5\x02\x15\x05\xae\x80\x88\x91\xc3\x16\x34\x9c\xce\xd7\xc9\x0f\x50\xb1\x41\xde\xee\x63\xdf\x0c\x04\x2a\x0d\xf0\x6f\x27\xf1\x6b\x3b\xa2\x63\xf3\xc7\x21\xb5\x1a\x5e\xb2\xac\x1a\xaf\x7d\x7f\xfd\x41\x80\x4b\x8c\x7c\x8f\x99\x69\xd6\xd8\xb6\xec\x7f\x00\x94\x0c\xb1\x96\x24\x0c\xf8\xa0\xf8\xe6\xe3\xaa\x33\x6f\xfe\x15\x03\x70\x5c\x66\x59\x6d\x8d\x92\x95\x2c\x98\xdc\xa2\x21\x56\xa4\x03\x89\x73\x2c\x19\xdc\x5f\x2a\x1a\x83\x49\x23\x6e\xf3\xfa\x9e\x3e\xce\x90\x08\xf0\x85\x7f\x13\xf5\x7d\x79\xfc\x04\xf8\xe6\xc7\x0a\x0d\x2e\x2a\xb2\x2d\xfb\x13\x01\x2a\x69\x88\xe1\x28\xd5\x28\x2f\x59\xae\x37\x97\x09\x53\x9a\x09\x92\xd0\x93\x2f\xda\x6c\xb8\x15\x04\xdf\xc2\x7f\xbb\x11\x22\x44\x9a\x92\x97\x32\xff\xb0\x65\xea\xbb\x4b\xa1\xc7\xec\x16\x26\x30\x16\x8e\x78\x29\x26\xf9\x6b\x77\x9c\x52\xed\xe0\xb6\xf5\x05\x1c\x9b\xed\x5f\xe0\x15\x33\x94\xc5\xe8\x3c\x67\xb5\xf3\x61\xc6\xe8\x74\x43\xb5\x8e\xc5\x84\xaa\x6c\x28\xf3\xff\x19\xa8\x68\xfc\x2b\x2c\x22\xe8\x2f\xe1\xe9\x37\x37\x98\xb6\xf5\xbf\xc0\x54\x92\x68\x5f\x13\x3b\x16\xa0\xb1\x16\xab\x56\x85\xfa\x01\x93\x14\x94\x09\x49\x24\x6d\x9f\x62\x21\x5e\xfb\x2d\xc3\x84\xd4\xb6\x1f\x2c\x45\xfd\xf2\x54\x66\x45\x53\x07\xdd\xa1\x50\xf8\x60\x62\xe3\xd8\xcb\xbe\x89\xc9\xbe\x64\xa2\x88\x62\x3b\xff\x4b\xd6\x19\x42\x13\xc5\x81\x81\x91\x72\xbe\xd0\x1d\xbf\xe6\xc1\x94\xd5\x61\x31\xb9\xbb\x28\x91\x6c\x48\x1d\x31\xa9\x21\xb9\x51\x71\xca\xb0\xad\xe1\xee\x92\x03\xfc\x1a\x1a\x57\xc3\x93\x44\xc7\x8e\x79\x75\xb6\x88\xf6\x09\x6c\xdc\xf0\x34\x21\xa6\x43\x7c\x67\x45\x7d\xdd\xa0\x32\x7a\x5e\x2e\x05\x1a\x79\x04\xfb\xac\x7e\x9d\xf3\xb2\x82\x2b\x25\x58\x69\x38\xa4\x18\xa9\xaf\x7e\x89\xe7\x9d\x47\xf9\x9b\x84\x70\xce\x3a\xea\x99\x6d\x59\x4e\xd2\x0d\x26\xa1\x1a\xcb\xb5\x3f\xcb\x2a\xd7\x3f\x33\x3d\x90\xd8\x96\x26\x0d\x12\xdf\xf9\x88\x45\xff\x8b\x76\x2d\x75\xe3\x6b\xa4\xa1\xc2\x75\xf7\x2d\x17\x99\x9e\xbc\xa6\x54\x0b\xe9\x40\x60\x37\xd0\x34\x7d\x0e\xd9\xa4\x5a\x21\xdb\x58\xbb\x79\xf5\x62\x03\xd2\x88\x30\x45\x04\x41\xa6\xca\xb1\xfe\x50\x7b\x48\x72\xd3\xdb\xd5\x7a\x18\x4f\x1b\xc1\x39\x52\x2f\xbf\x89\x4b\xde\xfd\x51\xf2\x18\xcb\x13\xdf\x9e\x17\xab\x3f\xbe\x4a\xae\x19\xc9\xb9\x76\x25\xf6\x45\xf5\xdf\x4b\xf6\x56\x0e\x09\xc3\x10\x1c\x8a\x8d\xe3\x08\xca\x3c\xf8\x3b\x73\x9c\x34\x93\x6f\x21\x13\x69\x79\x1a\xac\x33\x92\x15\x1d\x6b\x95\x1f\x20\x63\x04\xd4\xdf\x2c\x76\xab\xc3\xf2\xfe\xe6\xb0\xdf\x1c\x56\xfb\xef\xa8\xcd\xef\xc7\xa8\x20\xc6\x38\xef\x8f\x9b\x51\x5c\x6a\x74\xa0\x85\xab\x4b\xff\x00\xa5\xc4\x2b\x8d\xe2\xe7\xec\xb3\x4e\x20\xa3\xc3\x08\x89\x2e\x9e\xb6\xab\x03\x02\x86\xb0\xce\xd1\x25\x59\x8c\x4e\x09\x82\xdf\x6d\x42\xef\xe6\x52\x15\x59\x71\x44\x2a\xb6\xc1\x8e\x66\x0c\xa7\xd8\x78\xf1\xbd\xd4\xb2\x9c\x76\x7c\x18\xa4\x90\xf0\xec\x98\x59\x53\x23\x65\xd6\x9d\xc8\x72\x0c\xa3\x36\x1b\xc7\xba\xa1\x08\xa1\x96\xb0\xc5\x52\x90\xfa\xe2\x85\x22\xc4\xb1\x1e\x3c\x6c\x6e\xd7\xcb\xcd\xfa\xd1\xff\x3d\x08\x22\x6c\x6e\xb4\x49\xcd\xf6\x67\x1d\x83\xdf\x6d\x57\x8f\x54\x24\xe0\x21\x6e\x37\x1d\x35\xab\xe5\x6a\x5d\xfd\x82\x4a\x61\x5f\xeb\x9c\xbd\x6b\x97\xa5\x77\x8a\x15\x09\x12\x45\x6c\xb4\xf1\x0a\xd6\xa4\x75\x17\x4f\x13\xdf\x59\x8c\x60\x8f\x99\x9c\x9d\x22\x81\x90\x16\x59\x8f\x13\xaa\xe7\xf4\xbb\x9e\x67\x8a\x04\x0a\x12\x36\x68\x83\xc0\xfa\x4a\xfd\x27\x4a\xfd\xfe\x5c\x6d\xa4\x2f\xd5\x3d\x9f\x9b\x72\xd6\x0f\x52\x84\xc6\x14\xda\xb9\xba\x3c\xe3\xa3\x7c\xeb\xbc\x0b\x45\xa8\xb2\x48\x5d\x51\xd7\x50\x35\xab\x5f\x67\x50\x8d\xcb\x84\xbb\x11\x2c\x0c\x6d\xd2\x3e\xcf\xc7\x5c\xa3\xed\x21\xe9\x1b\x6e\x9f\xca\x32\x1f\x96\x84\x14\x61\xb1\xc6\x4f\xb5\x5b\x2d\x9f\xb7\x5d\x15\x50\x11\xc6\x39\xb6\x38\xba\x5f\xfc\x2f\x73\xfd\x52\x2c\x70\x76\x31\xf0\x03\x15\x07\xd5\xbf\x69\x28\x74\xf0\xdb\xf8\xb9\x98\xb1\x0c\xaa\x0f\x42\xdd\x94\xe5\xeb\x90\x81\x56\x91\x90\xd9\x8a\x07\xf2\x72\x63\xa1\xa1\xc3\xf9\xb5\x07\x95\x70\x95\xe0\xa7\x4b\x9e\xb7\x6e\x74\xc7\xea\xac\x48\xc8\x39\x26\xb8\xb6\xfb\xee\x2f\x82\xe2\xbd\x1c\x8e\xed\x4e\x94\x1d\x33\xdf\x6b\x38\xd4\x03\x98\x13\xea\x54\x24\x54\x56\x84\xf3\x2c\xaa\xa6\x80\x8e\xe7\x63\xdc\xe6\xf6\x09\xed\x7a\x7b\xb6\x35\x0c\x58\x10\x5d\xd4\x3b\xa1\x90\x5a\x0d\x35\x57\x90\x8b\x6c\x32\xf3\x22\x11\x1b\xe5\xd9\x81\xca\x73\x0e\x56\x9d\xf4\x61\x9e\x05\x5c\x91\x98\x58\x8e\x42\x5b\x41\x41\xbb\xd2\x61\xb0\xff\x8a\x8f\xa6\x48\x1c\xc5\xca\xf1\x2b\xeb\x71\x1b\xa6\x1f\x20\x12\xde\x67\x6d\x17\xe7\xf3\xd4\x69\x1b\xbd\xae\x58\x53\xcc\x98\xd7\x97\xa2\xca\xea\xee\x93\xf0\x44\x62\x66\xe0\xdb\xed\x72\xa1\x14\x89\xfc\xdf\x13\x62\xe9\x3c\x25\x34\x87\x87\xde\x4e\xa4\x81\x44\x58\xe6\x43\x36\xd0\x93\x54\x24\x35\x4e\xe9\x09\x85\x65\xe7\x20\xcf\x33\x95\xb9\x11\xbd\xc1\xb8\xfc\xa1\x88\x60\x29\x6e\x67\x59\xed\xb4\xef\x66\x01\x8d\x8a\x28\x16\xc6\xb8\x04\xab\x8f\x73\x53\xb6\x3e\xde\x6f\xdd\x91\x04\x4b\x4c\xb7\x75\xa9\x32\x8f\x05\x51\x44\x45\x96\xf8\x08\xb5\x27\xf2\xfc\xa9\xa9\xfa\x23\x21\x7a\x75\x4d\xbf\x09\x28\xa2\x49\x60\x51\x68\xe8\xa0\x0e\xf3\xc6\x8a\x68\x05\x48\xd7\xb3\xd8\xdf\x4f\x66\x0b\x30\x9d\x92\x8e\x43\xf7\xb5\x7b\xdb\x10\x5a\xe2\xa6\xc3\xe1\xb0\xc8\xf3\x51\xe3\xb3\x22\x10\xdb\x3a\x6e\xaf\xe0\xf2\x4d\xb4\x5e\xa5\xf7\xd0\x26\x8b\x14\x78\x88\x85\x9a\xfa\xe5\xd2\xe8\xf2\xbd\xbb\x63\x10\x36\x6d\x79\xae\x4a\x05\x35\x32\x77\xac\xf7\xdf\x3e\xb1\x60\x86\xa5\x58\x12\x6f\xbf\x96\x85\xd9\x18\x78\xe8\x57\x6c\x40\x88\x63\xd4\x2b\x86\xde\x86\x0a\x48\x1c\x61\x51\x54\xa8\xe6\x22\xf2\x83\xc1\x52\x6f\x77\x30\xb1\xb2\xfe\xcb\x3f\x06\x73\x24\x20\x89\xed\x4b\xf9\x26\x4e\x32\x87\xea\x69\x5e\x90\x5f\x05\x44\x87\xda\x95\xc4\xef\x00\x3a\x9d\xb0\x9b\x8f\xf5\x38\xfc\x51\x41\x60\x78\xa0\xfc\x0b\x9b\xaa\xdc\xce\x23\xbb\x83\xee\x5f\x77\x0d\x4a\x93\x94\x76\x8d\x83\x9b\x33\x14\x0e\x05\x34\x81\x3a\x0d\xd7\x52\x40\x95\x8b\x6e\xf2\x52\xbd\xda\x74\x67\x3d\x21\x50\x57\x01\xd5\x06\xfb\xac\xde\x21\xbb\x85\x3c\x7b\x83\x8e\x26\x5b\x05\x2c\x0c\x31\xc0\xf8\x0e\x22\x6f\x5e\x5c\x3f\xe2\x5f\x83\x31\xa8\x80\xc5\x29\xb6\x95\xac\xbc\x24\x7d\xa7\x71\x9a\x5b\x88\xf3\xe0\x77\x04\xb7\x53\xda\xe1\xb4\x17\x5a\x3b\xd8\x27\x26\xe8\x1e\xcb\x66\x5d\x3c\x77\xc6\x20\x08\x29\x43\x8f\xf9\x1d\x32\x0a\x97\xca\x0a\x9c\x4f\x1e\x2b\x64\x86\xda\x6a\x8a\xa9\xca\x7a\x28\xb2\xa2\x82\x50\x58\x8a\x84\xe5\xfe\x66\x34\x5b\x42\xd0\xbc\xef\xd7\x98\x73\xe5\x54\x10\x71\x19\x38\xa2\xd8\x4d\x75\x14\x45\x27\x22\x35\x19\xa6\x15\x58\xcf\xb4\x1e\x92\x06\xaa\x80\x07\x56\x08\x10\x55\xae\xba\x8e\xc1\xfe\xc4\xd6\x3f\x55\x5e\xf3\xdd\x3a\xb4\x37\x1f\x57\x28\x1d\x15\x70\x2e\x1d\x1d\x30\x3a\xa8\x95\xef\xf5\x50\x01\x4f\x0c\x26\x89\x1f\x4a\xd7\x76\x69\x9b\x7d\x3e\xf7\x75\x55\xc0\x15\x60\xed\xfe\x49\x14\xcd\x0b\x54\x6a\xb0\x1c\xb8\xa6\xc2\x4d\x5e\xff\xa8\xab\xf6\xb6\xaf\x8b\xa8\x2a\x48\x42\x63\x1c\x50\xff\xe9\x05\x8a\xf2\x04\x45\x39\x05\x3b\x0c\xe7\x8b\x3b\x2d\x25\x34\xee\x80\x9a\x0d\x54\x6f\x22\x6f\xed\xc9\xcf\xac\xd0\x8e\x39\xf8\x2b\x60\xd6\xe8\x0e\x52\xa2\x63\x9b\x58\x7f\x7f\xb6\x02\xce\x53\x3e\x7c\x15\xa4\xd4\x48\xd2\x49\xbc\x67\xa7\xcb\xa9\x9f\x98\x93\x07\x4a\x63\x65\xbc\xb6\x47\x39\xa6\x80\x57\x81\x08\x02\x14\x0f\x72\x1c\xdc\xf7\xd9\x7f\x2f\x99\x5e\x17\xb7\xd0\x19\xf1\x40\x04\xa1\x35\x5b\x1a\x5f\xd7\xf7\xf2\xd2\x9f\xcd\xac\xb4\x9a\x06\xeb\xf6\xe1\x97\x42\x6e\xa3\x59\x0b\x18\x08\x6d\xd0\x51\xb3\xc0\xeb\xbf\x44\xc7\xa5\x02\x99\xd8\xfe\xcd\x2a\x53\x2f\x50\x37\x96\x6a\xd1\xdf\x81\x4c\xa9\x63\xf0\x7f\x17\x95\xc6\xb4\x73\xd6\x7c\x74\xf8\x28\x15\x28\x12\xc8\x21\xdb\x4c\xeb\xe1\x3f\x89\x4a\x9c\xae\x99\x36\xc7\x3f\xab\x68\xe0\x29\x61\xbf\x97\x63\xd6\x85\xc9\x2c\x56\x8c\xa2\x10\x8d\xb9\x14\x5a\x54\x99\xc0\x6c\xde\xdd\xa5\xd0\x63\x1f\x22\x50\x11\x45\x39\x45\x0b\x2e\x6c\xcd\x5f\xdf\x52\xe9\x02\x69\x15\xa8\x34\xa6\x03\xa4\xf5\xa6\xea\xc2\xc5\xf1\x8f\x6a\x61\x37\xd0\xb3\xa8\x50\x10\x0c\xba\xa7\x5b\xe4\xdd\xa7\x6b\x5f\x77\xc7\xf7\x77\x2b\x1a\x11\xb4\x2e\xd7\x94\xd4\x46\x05\x10\x08\xe4\x62\x79\x84\xc6\x8c\x37\xca\x00\xa8\x82\xb4\x07\xdf\x5b\x3b\x30\xb5\x53\x20\xed\xf6\xe8\xd1\xcf\x4f\x65\xde\xad\x64\xd0\x21\x12\x24\x3a\x02\xfb\xb1\x21\x31\x54\xe0\x3e\xb5\xd0\xfa\xcb\xb5\x6d\xa8\x45\xf6\xdb\x1e\xc2\xf2\xdd\x3b\xa0\x3d\xa3\xf3\x60\x6d\x98\x48\x61\xfa\xfe\x0c\x55\x5d\x16\x22\xdf\xc1\xf1\x04\x45\x33\x78\xec\x69\x53\x58\x77\x22\x44\xcc\x9b\xa3\x7d\x76\xc2\x2a\xed\xef\x22\xbf\xc0\xe4\xe5\x1b\x1e\x63\x25\xea\x90\xd5\x37\xa5\xa8\xf4\x0c\xd2\x42\x51\x42\x04\xc6\x8f\x6d\x5c\x83\x94\x5e\xee\x82\x9f\x4d\x7b\x7f\x5a\x10\x74\x58\xaf\xeb\x4a\xa9\xa2\x24\xb4\x92\x42\x58\x04\x7e\x47\x44\xde\xbd\xa8\x9b\x8d\x17\x0b\x51\x94\x70\x65\xf9\x04\x30\x99\xb9\x98\x18\x67\x1a\x18\xe1\x79\xb4\xec\xc7\xb8\xf9\xb0\xed\xad\xea\x63\x32\x92\xb2\x30\xb0\x50\xde\x41\x11\x66\x44\x99\x75\xf5\xbf\xfc\x99\x51\x18\xa9\x4e\x22\x7b\xbd\xdc\xdc\x21\xa7\xdf\x30\xb7\xa1\x28\x15\x16\x3e\xec\x66\xc6\xba\xae\x2f\x83\x99\x47\xa9\x26\x60\xdf\xdf\xb1\x12\x7f\x22\x6d\xae\x28\x0b\xe3\x58\xf7\x82\x34\x5a\x78\xb1\x0e\x45\x59\x64\xb0\xa7\xa6\xc9\x4e\xf0\x53\x64\xcd\xe2\x7c\xce\x3f\xc2\x2d\x68\x80\xd3\xe4\xe5\xb2\x38\x48\x1c\xb4\x0a\xfb\xe9\xf9\x68\x9d\x50\x66\x22\xe9\x71\x2e\xf6\xbc\x9b\x8f\xf5\xed\xe4\xad\x85\x89\xe5\x9d\xdb\x7a\x9d\xe0\xd6\xc5\x1b\x4d\x34\x1a\x42\x84\x20\x58\x29\xf4\x11\xf6\x3d\xfe\xda\xdf\x71\x44\x23\x2f\x0b\x31\xc7\x12\xd5\x0e\x90\x88\x30\x69\x43\xb9\x1b\xd7\x07\xdc\x9d\xcc\xa5\x70\x04\x45\x1a\xaa\x7e\x5b\x40\x3c\x54\x3e\x5f\x95\x55\x34\x4a\x42\xac\x47\x99\x2c\xcf\x37\x95\x63\xb8\x18\x0f\x89\x49\x82\x35\xc3\x1f\x87\xf5\xe3\x7a\xbf\x5e\xdc\x8f\x48\x5d\x15\x8d\x83\xc8\x3b\x93\x56\x6b\xb0\x47\x72\x29\x1a\xb3\x10\x63\x0c\x25\xf2\xfc\x79\x7b\x3f\xbb\xa1\xfa\xa1\x3a\xc2\x15\xd0\x64\x67\x0b\xc3\xeb\xae\x61\x80\xb8\x54\xb8\xb0\xdc\x1e\x56\xb1\xb3\xba\xc6\x09\x28\xca\x41\x24\xac\xd7\x17\x1b\xd9\x1d\x9a\x04\x34\xe8\x3a\xf6\xd7\x85\x29\xab\xd3\x35\x8e\x53\xd1\x24\xd4\x58\x00\x02\x51\xe5\x1f\x37\x42\xbd\xc2\x04\xcf\xac\x68\x22\xed\x62\xab\x1b\x61\xcc\xb8\x06\xa3\xa8\x4c\x2c\x1a\xa6\x9d\xe1\x43\xf2\x88\xf1\x25\x64\xa2\x50\x60\xe2\xbf\x97\xac\x3f\x53\x73\x01\x6e\x95\x37\x25\x76\x04\xd9\x2d\x68\x96\xba\xce\x9d\xa4\x02\xad\x5d\x5a\x67\xdd\xc0\x69\xe1\x1b\x92\x7f\xbb\xaa\x98\x2a\xaa\x18\x78\xd9\xd9\x75\x03\xc3\xca\xbe\xa2\x9a\x5a\xf1\x83\xdd\x09\x95\x6c\x3d\xf9\x7e\x77\x38\x0e\x81\x75\x15\x38\x84\x6a\x5f\xf5\x34\x2b\xaa\x8d\xa5\x06\xf0\x7b\xc2\x7a\xb9\xe9\xa4\x04\x15\x85\x48\xa2\x07\x89\x8c\xbb\x1b\x84\x71\x8e\xee\x72\x32\x3b\x41\x24\x56\x66\xcf\x12\x3d\x8e\x3f\xa6\x89\x20\xe6\x8e\xfa\xe7\x0d\xaa\x0f\x4f\x4c\x61\x0f\x33\x42\xec\x74\x72\x41\xe8\x1d\x4c\x56\x23\x23\x0c\x4c\x30\x10\x83\x29\xfb\xd6\x2f\xc5\x48\xc2\xcd\x90\x55\x79\x91\xe7\xd4\x1f\x0b\xb8\xc2\x0c\x59\x3b\xd7\x91\x7d\xba\xcf\xdf\x31\x4a\x35\x77\x2c\x56\x79\x0e\xc5\xb1\x9d\x39\xe3\x9f\xa5\x61\x1c\xda\xf8\xd4\x26\x15\x1e\xe1\x7d\x96\x5d\xff\x2f\x65\x30\x18\x8d\xc0\xb3\xdb\xb4\xdf\x7e\xae\x41\x4e\x31\x9a\x38\x7a\x59\x68\x6e\xe1\x58\x01\xcc\x61\x42\x5a\x77\xc6\x32\x29\x3c\x58\x61\xad\xe1\xc7\x67\x2c\x00\x39\x24\xe2\x85\x4a\x51\xf2\x75\x86\x8f\xb1\x10\x12\xd5\x0b\x07\xcf\x55\x10\x14\x63\x91\x44\x3e\xad\x4d\x75\x82\x65\xd7\x16\xa3\x18\xe3\x26\x12\x7d\x43\xc7\x52\xf8\xef\xce\x42\x9a\x86\xf6\xbb\x17\xf0\x7e\x07\x88\xf5\x9c\x84\xad\x2c\x94\x29\x4e\xf3\xfd\x66\xbf\xb8\xb7\x6d\xa5\xce\x6a\x1d\xba\x4e\x34\xc5\xe2\x58\x50\x2b\x23\xb7\xff\xbf\x55\xf7\x47\xa5\x52\xdf\x68\x51\x96\xf9\x77\xa8\xca\x91\xab\xc6\x62\x08\x22\x4f\xc1\x3c\xda\x27\x18\x77\xf9\x55\x69\x21\x06\xfe\x8a\x09\xd1\x48\x16\x23\xb4\x46\x1f\x71\x0c\xfc\x98\xbc\xb4\x24\x94\x7c\x40\x4d\xbd\x6b\x84\x7a\xb5\xa4\x3c\xc3\x94\xcf\xe4\x9c\x48\x63\xef\x88\x45\x15\x39\xf2\xda\x78\xb2\xc9\xb1\x24\x21\x68\x5b\x10\x41\x35\xa1\x09\x51\x2c\x51\x80\x90\x7b\x24\x92\xf7\x10\xa8\x19\x88\x8a\x62\x89\x0e\xc5\x40\x73\x73\x71\xcc\xf2\xac\x99\x2f\xc4\x2b\x96\x46\x2a\x75\x9e\xde\x4d\x96\xe7\x0f\xa5\x9e\x51\x44\x57\x4c\x72\x86\xfd\x4c\xb9\xa8\x2d\x74\xe6\x20\x82\xc4\xdf\x9a\xa2\x89\xb0\x42\x0e\x6f\x5e\xb4\xc4\x1f\x49\xa2\xd8\xeb\x4e\x5f\x53\x02\x4d\xfa\xc7\x12\x6f\x30\x99\x4e\x0d\x96\x9d\x95\xc8\xd5\x73\xf1\x20\xea\x57\xd0\x3f\xe0\x63\x25\xb0\x5e\xf0\xd9\x97\xd1\xc2\xa0\x65\x3b\x2c\x45\xae\x6e\xb3\x37\x7f\x13\x26\xb0\xa2\x8c\x97\xc2\xf3\x95\x63\x6d\xe9\xea\x19\x8d\x0a\x10\x12\x77\xbb\xfe\x7d\x7d\xbb\x7a\xbc\xed\xce\x57\x21\xe8\x91\x6c\x13\x4a\xff\x8c\x7e\x3c\x0c\x82\x18\xd7\xdf\xf9\x60\x03\xfc\xc3\x69\x8b\x72\x04\x4f\x79\xd9\xec\xc5\xaf\x39\xd5\x18\x15\x06\x71\x10\x59\xc1\x8a\x0a\x56\x5b\x07\x8d\x57\x21\x95\x91\xe7\xbb\xf3\x0e\xf5\x1d\xcc\xf7\x25\xa9\x90\x31\x86\x92\x59\x2a\x07\xe1\xad\x41\xc8\xc2\x04\xdb\x51\x2f\x45\xe7\x89\x5f\x15\xfe\xfc\xdb\x0e\x99\x94\xc6\x6d\x4f\xd3\xd1\x9f\xfc\x66\x48\xc1\x4b\x2f\xdd\xe5\xe2\xad\x0b\x5b\xc3\x10\x42\xac\xa9\x6e\x17\x8f\xb7\x9b\x87\xbb\xc5\x72\x3f\x34\x52\x61\x68\x34\xb5\xe8\xcf\x0f\x17\xce\xec\x4b\xdb\x5c\x33\x4a\x2a\x86\x11\x11\x80\x15\x9a\xcb\xe9\xf4\xe1\xaa\x20\xe3\xf2\x9c\x0a\x23\x95\xf8\xed\xa3\x17\xe2\x9f\xf5\xa1\x42\x4e\x02\x2c\xb8\xec\xa1\x6e\xd4\x18\xb7\xa2\x42\x2e\x53\xc4\x86\xc8\xea\x92\x43\x75\xfb\xd9\x6b\xe6\x46\x61\x65\xcb\x52\x6c\x6a\xb0\xbf\xe8\x2f\x92\x48\x5b\x3e\x13\x0e\xef\x0f\x7f\xca\x74\xe7\x4e\x4c\x53\x1a\x1b\xdf\xb0\x79\x29\x30\x89\xe9\x97\x7c\x28\x48\x82\xf6\xbe\x80\xf7\x27\xa8\x7c\xe6\x7c\x92\xd3\xf7\x79\xe3\xb0\xfb\x9e\x22\x14\x81\xe7\x65\x1d\x90\x92\xaa\x50\x92\xc0\xa7\x50\xf6\x99\x7a\x85\xa6\xde\x97\xb7\xed\x2b\xbd\xc6\x71\x25\xfe\x14\x1a\xe2\x76\xb9\xb8\x5f\x1e\x96\x9b\xc7\xfd\x76\xb1\xdc\x1f\x16\xb7\xb7\xdb\xd5\x6e\xd7\x5d\x56\xa7\x58\xcc\x6c\x5e\xaa\xf2\x7d\x6d\x76\x18\x5b\xd4\x28\x9e\xd1\x5a\xa7\x85\x69\x00\x93\x5d\x78\x3f\xdd\xc3\x29\x62\x55\xf2\x0e\xe2\xd8\x1b\x8c\x50\x53\x62\x1c\xc0\xec\xa1\x2c\xda\xb5\xba\x91\xff\xf1\xe0\x98\x39\x97\x3b\xd4\x9c\xa0\xb5\x5f\x6e\xee\x37\xdb\xc3\xb7\xcd\xfd\x6d\x77\x2d\x19\x63\xfd\x6f\x77\x05\xcb\x9d\xff\x18\x11\x09\xe3\x28\xf2\x0e\xd4\x98\xc1\x47\x45\x01\x95\x98\x24\x3d\x97\x75\x9f\xb1\xe8\x26\xe5\xf8\x42\x41\xa4\x91\x64\xcb\x21\x32\x7c\xc2\x61\x97\xfd\x0f\xba\xcb\xc9\x14\x9b\x9e\x6c\x47\xb0\x4d\x38\xf8\x2f\xda\xeb\xa4\xfd\x2b\xfa\xf7\x8c\x3e\xb9\x8a\x02\x2d\xc0\x5c\x53\x20\x59\x75\x29\xff\x13\x94\x19\xee\x00\x9d\xcd\xb5\xd1\xf5\x83\x22\x85\xd0\xc7\xc5\xe9\x24\xa7\xec\x67\x83\x89\x10\x51\x69\xd1\x69\x58\x9d\x6f\xbc\x92\xf8\x0c\x53\xc6\xe4\xf2\x4a\x61\x57\x64\x56\xa8\xa7\xea\x73\x76\x51\x15\x51\x43\x91\x4d\xe3\xb6\x3c\x6e\x85\xf2\xc2\x13\xfe\x51\x18\x4f\xa4\x0b\xbc\x7c\xe1\xd5\xd1\x0d\x8c\x7b\x08\x54\xc4\x52\x11\x0a\x9f\xef\xab\x9b\xf6\xed\x4e\x1c\xbc\x88\xa9\x84\xba\x68\xd1\x26\x08\xea\x21\x50\x54\x45\xcc\xa4\x88\x66\x5a\xdc\x3e\xac\x1f\x0f\x8b\xfb\xfb\xcd\xcf\xc5\xa3\xe7\xd2\x6c\x0f\x03\x6e\xe6\x87\x6e\xb1\x7b\xa0\xdc\xf0\xc9\x02\xea\xdf\x5c\x98\x18\x74\x75\x1c\xa4\xb8\x92\x59\x33\xb3\xc3\x46\x91\xb2\x10\x0f\x79\xf9\x40\x5c\xd8\xb4\x86\xe7\x87\x81\x40\xef\xc7\xa2\x04\x2d\x09\xef\x18\x3a\xad\xa2\x98\x12\x44\x52\xfc\x7d\x79\xf7\x16\x7c\x41\x75\xe8\xef\x30\x66\x71\xd4\xa3\x34\xe5\x84\x4d\x4c\x45\x3c\x61\xb4\x0f\x2c\x90\x3f\xc4\x27\xd9\x6f\xae\xfa\xf6\xfd\x39\x46\x60\x4a\x71\x6d\xf1\x7d\xb3\x19\xba\x28\x09\x23\x4b\xf5\x27\x6a\x64\xbb\x1e\xd5\xb7\x7c\x79\x22\x4a\xc0\x22\x98\xee\x3a\xc2\x3f\xcf\xad\x81\x3a\x7c\x03\x0b\x17\x25\xad\x49\x1d\xb0\xf9\xcd\x17\x4f\x27\x53\x2f\x0d\x02\x97\xa2\xb0\x93\x7a\xff\x71\x76\x7d\x0b\x5d\x2b\xe0\xf8\x86\x04\x09\x22\xcb\x6f\xfb\x46\xa3\x78\xde\x1b\x89\x84\x0c\x10\xde\x75\xb0\x1d\xbc\x1b\xec\xf6\x1f\x3f\xbe\x8c\xb8\x88\xbb\x6f\x39\xf0\x24\xa7\xe3\xe2\xc8\x76\x8c\x97\xc7\x47\xb8\x9c\x44\xf5\x5a\xdf\x5c\xaa\xe2\xba\x0f\x7a\x72\x0b\x12\x12\xb0\x08\xe1\xe2\x52\x2b\x91\x67\x6a\xe2\xb5\x44\x8a\x58\x0a\x6f\x91\xe7\xed\x6b\xbc\xcd\x6a\x75\xd5\x1a\xaf\x22\x9d\xd2\xb0\x13\xce\x18\x7a\xc8\xee\x38\x50\xa5\x60\xa0\x14\x32\xc0\xab\x0c\xb8\x21\xe6\xb5\x99\x55\x04\x32\xc1\x1c\xa2\x4b\x75\x7f\xbf\x14\x4d\x47\x70\xe9\x86\x18\x21\x10\x7a\xfe\x54\x95\x03\x11\x92\xee\xa8\x62\x5e\x7a\xc7\x26\xa1\xd7\xba\xee\x8f\x25\xce\xa7\x86\x36\xd0\xed\xa0\xcc\x2a\x26\x81\x85\xef\x1f\xb2\xda\xea\x26\xfa\xbf\x27\x10\xf0\x0e\xc3\x8d\xf2\x60\xb6\x1f\x64\x39\xb7\x83\xf8\x93\xa4\x64\x71\xdf\xe1\xf5\xad\x2a\x2f\xe7\xbb\xaa\x3c\xcd\x41\x83\xfd\x12\x89\x09\x24\x54\x0d\x05\x56\x2c\x4b\xf8\x5f\x8a\x2b\xe3\x80\x8a\x44\xfb\x60\xc1\x96\x23\xfc\xeb\x8a\x29\x03\x8c\x8d\x5f\x44\xfd\xb2\x2f\x77\x83\x4e\x74\x37\x80\xd1\x18\x23\xb4\x87\xc7\xbf\x58\x6f\x8b\x59\xca\xb9\x18\x65\xd8\xda\xc7\x6b\xd7\x58\x31\x55\x38\x51\x31\xd3\x96\xc6\xa9\xc4\x5d\xad\x6b\x0e\xf3\xeb\xda\x5b\xc6\x98\x69\xa1\xe3\x1e\xf1\x75\x73\xf9\x80\x6a\xdc\x13\xe8\x06\x46\x41\x9c\x62\x52\xbd\x8d\x79\x42\x8f\x4d\xf7\x8f\x1b\x49\x26\x1c\x88\xe4\xd0\x80\x38\x1d\x84\xf5\x18\xbb\x4f\x1d\x01\x38\xc0\x4d\x75\xcc\x8a\xa5\xc8\xf3\x4d\x71\x03\x2f\x22\x37\x1b\xb3\x05\x85\xfd\x55\x57\xcd\x5d\x73\x95\xf6\x38\x32\x09\xc2\xc8\x0e\x6e\xb2\xce\x14\xaa\xe2\xb8\x0d\x6e\x3d\x01\x75\x9e\xcf\x0d\xe1\x4c\x21\x2b\x49\x79\xb6\xc1\xd6\x1c\xa5\xd6\xdf\xa6\x44\xbf\x2a\xe6\xb1\x4d\x6f\xaf\x4e\x52\xd4\xf5\xc7\x27\x73\x91\x0b\x83\x75\x21\x9f\x19\xe9\x88\x40\xc6\x15\x84\x38\x89\x28\x56\xa8\xc7\x94\x29\x2a\x4e\x38\x43\xe0\x8b\x84\x66\x53\xfc\x36\xf8\x0a\x49\x02\xd8\xad\x9c\x97\xc7\x29\xc8\x73\xfc\x78\x82\x28\xb4\x6b\xae\x2d\x12\xc4\x69\xe7\x27\xb6\xbf\x96\x60\x06\xc9\x3b\x1b\xeb\x87\x6e\xde\x8b\x76\x2f\xb9\x2e\x45\xc6\x92\x53\xec\xac\x93\xa8\x70\x22\x26\xa6\x29\x56\x21\x61\xce\x31\x78\xf8\x40\x89\x5a\x7c\xdd\xe3\xf9\xa8\x89\xd6\x2e\xb3\x7e\x9f\x1d\x5f\x50\xe7\x75\x52\xbd\xb9\xfa\xee\x73\xd4\x0d\xfd\x05\x03\x5b\x30\xb7\xd5\x51\x6c\x87\xcc\x20\xef\x21\x44\xde\x15\x8f\x35\x98\xc0\x52\xf2\xaa\x4c\xf7\x0b\x14\x18\xc3\xc6\xd5\x87\xc5\x1f\x16\x26\x77\xfb\xbc\x5d\xec\xd7\x9e\x07\x40\xc5\x60\x22\x11\xf5\x6a\xeb\xbe\x7e\x27\xf2\x09\x74\xcb\x0d\x37\x61\x8c\x8d\xdb\xad\x63\x0f\xc3\x8d\x66\x2e\x57\x35\x96\x53\x57\xb1\x49\xc3\xd8\x2a\xa6\x9c\xb2\x09\xbc\x26\x36\x42\xe3\x0e\x72\x5f\x1e\x8f\xa0\x9d\x3e\xd4\x17\xd6\x62\xd2\x7e\xa2\x38\x21\x1a\x89\x9f\x6d\x2a\xcd\xea\x39\xdf\x43\xa1\xe1\x8a\xf3\x6c\x16\x28\xcc\xe8\xbf\xf8\x90\x66\x66\x12\xba\x72\x22\x43\xc4\x92\xbc\x65\xf0\xbe\x85\xf3\xa5\x99\xc9\x16\x73\x4a\x25\xb5\xa9\x31\x6c\x2c\xf2\x9d\xdc\xb6\x0e\x50\xf9\xe4\x3e\xa7\x2a\x40\x9f\x1a\x2b\xda\x37\xa2\x9e\x2c\x5a\xce\x22\x40\xb2\xfd\x37\xa8\x32\xd3\x9d\xc5\xe2\xc4\xd8\xae\x8d\xf2\x0c\xc5\x94\x01\x41\x71\xa6\x92\x18\x86\x0d\x5f\xb6\xfb\x65\x7c\x87\x0c\x14\x21\xdd\x82\xf1\xe1\xec\xe4\x4a\x61\xa0\x30\xf1\x74\x12\xaf\x36\x1f\xe0\xff\x9e\x5a\xef\xec\x71\xbf\xec\xfe\xa4\xad\x0c\xbf\x6f\xb7\xc5\xf6\xbe\xf1\x2e\xe4\x47\x9a\x08\x0b\x42\x6b\xf8\x05\xea\xfb\x45\xda\xbe\xe3\xa9\x73\xca\x23\xa6\x2c\x9b\xc5\xe2\x61\x75\x58\x6c\x7f\xf8\x1f\x8a\x62\x85\x19\x69\xfb\x79\xb1\xf7\x6b\x36\xcc\xe0\x51\x1a\x23\xce\x16\xf1\xb7\xe5\x08\x47\xc3\xe3\x88\x04\xc2\xed\xd1\xaa\x0c\x90\x1d\xac\x3b\x16\x27\xf8\xd0\xff\xc9\x8a\x63\x0e\xf5\xa6\xb8\x46\x4d\x70\x4e\x62\xa2\xa7\x1c\x4f\xdf\xcb\x13\xac\x7e\xb9\xae\x6d\x3f\x90\xaa\x44\xf6\x5c\x86\x93\x67\xe4\x2c\x40\x46\xaa\x6f\x03\xc0\x0e\x4f\x64\xc8\xc8\xe0\x4d\xa2\x97\xfa\x65\x14\xc9\x53\x6a\xb9\x31\x5e\x44\x7d\x03\x50\x38\x4a\x0b\x7f\xc1\x34\x0c\x12\xe6\x8a\x5e\xb5\xb9\xa8\xd7\x6e\x26\xa5\x2a\xc1\x08\x68\x7f\x33\xbc\x01\x01\x29\x06\xc4\x67\x1b\x52\x3f\x88\x5f\x23\x26\xf9\xf1\x23\x48\x9e\xc8\x60\x2a\x69\x7d\x2d\xb2\xa6\xb8\x4c\x15\x96\xbc\x9d\x14\x9a\xf4\xf1\x37\x97\x22\xc6\xba\xbd\x70\x84\x89\x50\x2f\x2f\xcd\xe6\xd2\x94\x26\xf0\x72\x75\x8a\xab\xc0\xaa\xb2\xb6\x0e\x97\x68\xb7\xc1\x9b\xc9\x17\x51\xa1\x15\xd2\xd2\xe5\x6d\x56\xf7\xb0\x2c\xae\x24\x45\x53\xf3\x54\xee\x46\x33\x40\x13\x8e\x0e\xa4\x77\xb8\xee\xac\xd4\xd8\xc8\xcb\xe4\x9a\x4a\x44\x13\xe2\xe7\xdd\xa8\xaa\x4f\xbf\x70\x1d\x47\x81\x0b\x60\xee\x4b\xf5\xba\xd3\x1e\x51\xcb\x81\x58\x8e\x42\x55\x16\x6f\x50\x8d\x13\x13\x9f\xe2\x1c\x86\xe6\x91\x43\x68\x1b\x65\xf1\xed\x67\x85\x23\x82\x77\x07\x4d\x20\x92\x64\x80\xaf\x6d\x37\x72\xab\x53\x25\x3e\x09\x74\xb9\xe1\x69\xe4\x0b\x6e\x0f\xf0\x20\x3e\x64\x37\xd9\x8d\x12\x30\x90\x01\x44\xe5\xc6\xd1\xc9\x09\x21\xda\x38\x38\x36\x7a\x4b\xf2\x43\x4c\x12\x75\xa3\xef\x9c\x04\x49\x9c\x58\x4e\xe2\xaa\x40\x4d\x49\x5f\x08\x1b\x5f\x96\xb2\x10\x61\xd9\x87\x4b\x81\x8d\xd9\xbf\xf9\xbf\x6b\x82\xbb\xb4\xf3\x76\xba\x82\xd4\xb0\x0b\xd8\x0d\x65\x71\x84\x3d\xd0\x3b\x28\x46\xed\xd3\x2a\x09\xa3\x04\x0b\xe3\x7d\xdf\x98\x3f\x12\x13\xc0\xbc\xbb\xd7\x3f\x18\x44\x72\x49\x4c\x09\x75\x08\xf9\x47\x71\x82\xfd\x62\x73\x5f\x96\xaf\x97\xf3\x6c\x20\x99\xc4\x82\xfb\xfd\xd2\xd6\xf3\xca\x5c\xcf\x38\x5e\x09\xe7\x29\xf1\x19\x30\x04\xfc\x97\x97\x66\x90\x5a\xf5\xa3\x52\xab\xb9\x65\x97\xd1\xe1\x1c\x4c\xaf\xd2\xda\x25\x7b\x95\xf6\xac\xa5\x38\x4f\x2e\x90\x10\x89\x98\xe8\x9d\xa5\x61\xb3\x4f\x67\x01\x0b\xe3\x2b\x25\x54\x63\x46\xae\x7c\x2f\xa0\xfa\x2e\xea\x97\xce\x50\x24\x09\x00\x22\x5b\x4b\x04\x98\x7b\x7c\xf9\x84\xda\x4f\x25\x69\x20\x91\xf7\xf6\xa1\xac\x61\x54\x0e\x4c\x52\xaa\x3c\x2f\xfc\xe5\x7c\x68\x46\x87\x84\x31\x71\x07\x55\xb5\x8a\xca\x96\xae\xe9\x2a\x3b\x9c\xa4\x86\x61\x48\xbd\xd9\xfe\xdf\xe8\xf2\x42\x08\xee\x89\xb3\x64\x6b\x98\x8a\x8b\xc8\x57\x93\x24\xa5\x1f\xab\x19\x5a\x71\xfb\x42\x11\xe6\x03\xcd\xa0\x66\x3b\x1f\xe3\x24\x32\x14\x29\xf1\xb4\x9a\xb7\x17\xab\x83\x04\xd8\x0d\xb7\xfe\x93\xd8\x37\x91\xae\xc1\xd0\xcd\x97\xa6\x5c\xd4\x2a\xcb\x76\xb8\xb2\x27\xaf\x50\x51\x83\xfb\xc7\x22\x3f\xbf\x08\x5b\x61\x6f\x7d\x56\xdb\x71\xe5\x12\xd3\x57\x2e\x88\x3f\x57\x6b\xac\x97\x2e\xb6\xcb\xc5\xed\x7a\xe1\x5f\x8e\x0e\x3b\x3a\x74\x34\x18\x96\x0e\xa7\xbe\xae\x1b\x24\x5a\x00\xae\xd0\x45\x9e\x2f\x4e\x50\x65\x4a\x8c\x96\x88\x61\xa2\x03\x14\xa0\xcc\x69\x77\x20\x0e\xd0\xaf\xf8\xe3\x8f\x3f\xba\x3f\x29\x4b\x88\xff\x23\x6b\x9a\x8f\x81\x1a\x9a\x4a\x49\xcc\xa9\xc3\x4c\x59\xa9\x40\x04\xc4\x8e\x5b\xb1\xfd\xc7\x4a\x49\x9c\xe0\x8c\xb2\x64\xed\x5d\xd1\x66\x12\xc4\xfb\xc1\xa9\x05\x78\x5a\x3d\xa6\x4a\x74\x36\x39\x0d\xa8\x13\xb4\xc7\x3a\x9d\xed\xb2\x9c\x99\x5f\x69\x10\xa6\x38\xbf\x30\x4d\xe4\xed\xd3\x94\xe7\x6d\xd6\x94\xa6\x81\xa0\x3c\x1c\x23\x66\xec\x14\x9d\xb0\x82\x8f\x3e\x59\x1a\x00\x61\x9d\x84\x14\x36\x0c\xce\x67\x71\xd3\x50\x6b\xdc\x55\xac\xc3\xf7\xfd\x72\x12\xc5\x98\x6d\x6b\x7c\xdd\x28\xd5\xa9\x0b\x91\x1f\x3a\xc2\xe6\xee\x31\xe3\x20\x8e\x9d\xb2\xc6\xd3\xfa\x00\x3a\x6b\x26\x20\x96\x34\x8e\xb5\x95\x1f\xcd\x8a\x66\x5f\xee\x9a\x49\x16\x2e\xe5\x24\xc1\x62\xd1\x93\x50\x37\xa2\xc3\x92\xa5\x3c\x4e\xd0\x50\xda\x4a\xea\xb5\x9e\xbd\x4a\x39\x0f\x91\x29\x5c\x3b\xbf\x72\x46\xcb\x44\xa5\x89\xe1\xc1\xa8\xa9\xad\x97\x42\x54\x69\xca\x42\x9b\xa7\x43\x37\xef\x80\x24\xc9\xfd\x31\x8e\x70\x20\x0c\xf6\xeb\x43\x0d\x6d\x14\x3e\x40\x87\xa4\x69\x1c\xe1\x86\x77\x2c\x73\x3d\x01\x62\xa4\x69\x62\x49\x8c\x90\x97\x1a\xd7\xdb\x24\xc0\xb9\x46\x53\xa4\xd2\x08\x8c\x2e\xc1\x79\x77\x08\x1e\xc8\xc5\xd1\x5f\x53\x85\x1c\xbf\x6f\xde\x6e\x4f\x4f\xad\x27\xd8\x53\x51\xa9\x54\x25\x9a\xa5\x6e\xfb\xed\xff\xaa\x85\x8c\x9c\x20\xb6\xee\x59\x16\x55\xaa\x55\x4c\x1c\xee\x08\x13\xec\xfb\xec\x13\xad\x6c\x95\x42\xc4\xb4\xf1\x8a\xc6\xbf\x9c\xea\x40\x25\x26\x9e\x74\x0a\x1a\xe2\xa8\xcf\xa5\x42\xd5\x7c\xdc\x80\x2a\x4f\xbe\x13\x68\x98\x68\x4c\x4d\xa2\x30\x7b\x75\xc8\x6a\xa7\x7e\xa9\x9f\x44\xff\x59\x8c\x01\xe2\x4a\x60\x8e\xbc\x27\xf3\x5d\x5f\x4a\x90\x98\x22\x71\x22\xe2\xb3\x6d\xa3\x86\xe3\x74\x70\x03\x02\x62\x69\xe4\x7a\x62\x97\x2f\xad\xb1\x08\x68\x8a\xe2\x31\xc6\x49\x04\xdc\x42\xad\xaa\xec\x3c\xc8\xc4\x88\x20\x56\x3e\x1a\xef\xd0\x4f\x5f\x5f\x94\x86\x11\x95\xfd\x56\x2b\xc7\x6f\x4b\x50\x6d\xbd\xdf\x1a\x8a\xa6\x81\xfe\xe1\x28\x18\x84\x34\xdd\x96\xaa\x28\x1b\xe1\xdc\xba\x79\x27\x48\xb0\x30\x46\x6f\x14\x95\xc6\xbb\xbe\x2e\x7f\x29\x16\x87\x58\x30\xb0\xab\x7c\xc8\x50\x97\x4c\xe1\x88\xff\x0a\xff\xed\x4f\x92\x91\x10\x1d\xcc\xb7\x99\x66\x2d\x44\x98\x46\x86\xf4\x34\x0e\x9d\x28\xe2\xf8\xe1\x23\x4d\x22\xde\x23\xe9\xac\xdb\xf4\x7b\x30\xef\x38\x8a\x48\x53\x74\x65\xcf\xb9\xf8\xd8\xe5\x65\xf7\x2e\x22\x88\xed\xca\xad\x2e\xc7\x09\x14\x40\xc4\xa1\x85\x62\xb4\xf7\x09\x8d\xb8\x0a\x4f\x45\x9c\x0a\x0c\x5f\x97\xff\x5c\xde\xaf\x0e\xcb\xc5\x93\xbf\x6a\xac\x43\x6c\xcc\xbd\xc7\x64\xcf\x95\xc7\x25\x78\x6c\xd5\x51\xdb\xd9\xf5\x20\x7e\x8d\x70\x72\x82\x2b\xdb\xa2\xf7\xf0\xbc\xdb\xcf\x62\x67\xbe\xe8\xac\x6e\xcf\xd6\xa8\xec\x7c\x3e\x96\xc8\xaa\x98\x7f\xb8\xef\xfb\x7b\xdf\x6c\xa9\x44\x12\x47\x18\xe3\x8a\x9d\xab\x4a\x54\x1d\xf0\xc2\xaf\x1f\x91\x26\x96\x31\xb7\xdd\xf7\x1a\x38\x7b\x8c\xb9\xdf\x17\x45\x2a\x25\x0a\x38\xdd\x2d\x96\xfb\xcd\xf6\x10\xf8\xbf\x0b\x1e\x7b\x19\xf4\x61\xe7\xa0\x10\x69\x8c\x6f\xeb\xbd\x4f\x70\xef\x5f\x2a\x80\xf6\xe2\x7e\x8c\x0a\x14\xfa\x6d\xb7\x95\x38\x96\xc5\x8f\x19\xe2\xef\xd9\x4c\xc7\xb5\x2a\x49\xe0\xe1\x9b\x41\x67\xfb\x84\x66\xb6\x1f\x7f\xff\x02\x77\x39\x66\x77\xbf\xe6\x37\x55\x42\x27\x16\x65\xbe\x85\xa2\xd9\x18\xd3\xe3\x11\x05\x90\x04\xbc\xe4\xe6\xc8\x63\x17\x10\x86\xe8\x93\x5c\x8a\xfa\x22\xdb\x45\x2e\xfb\x93\x12\x85\x74\xa9\x8d\x78\x85\x87\xb2\x00\xff\xc9\x25\x61\x2c\x75\xcd\x96\x0f\x59\xd1\x89\x65\xb4\x07\x2c\x7d\xa2\x97\xd1\x1d\x4f\x40\x49\x04\x17\xba\xdb\x35\x11\x98\x61\xed\xc6\x68\xba\x49\x02\x36\x4f\x71\x40\xf8\xcb\x37\x28\x26\xcc\x52\x4a\x06\x31\xb3\x9e\x88\x93\x8c\x3f\x8f\x28\xf7\xfe\x36\x97\xb4\xf2\x67\x26\x24\x74\xb7\xb0\x15\x0d\x2c\xac\x99\xb7\x50\xc9\x19\xee\xc6\xf9\x59\x2b\x03\x19\x5b\x38\x7e\x25\xb3\x06\x2a\xcb\xa1\x31\xc4\xd5\xca\x40\x49\xe1\xe4\x27\xfe\x71\x29\x3b\x1c\xac\xa4\x29\x43\xd0\x44\xbb\xe3\x5e\xce\x9f\x72\x23\x8c\x5f\x08\x15\x0a\x2d\xe0\xe1\x5c\x01\xba\x4e\xa2\xe9\xcd\xcc\xac\x01\x91\x54\x09\x6c\xdf\xb3\x96\x6e\x36\x90\x92\x8c\x10\x44\x5e\x1c\x7c\x33\x94\xbf\x49\x16\x5b\x8a\x7d\x79\xf9\x58\x8a\x5c\x2d\x3e\xd3\x86\xfd\xf4\xdf\x3e\x29\x28\x99\x60\x9d\x0c\x99\xaf\xa4\xcf\x99\x51\x19\x49\x65\x19\x61\x1b\x51\x35\x48\xe3\xe7\x31\x7e\x32\x52\x80\xdb\x5b\x2d\xde\x60\x5f\x2e\x7f\x76\x7f\xd7\x21\x7e\x4c\x5d\xae\x7e\xd9\x4d\x65\x32\x4f\x62\x46\x6d\x53\x62\x31\x4a\x02\xf9\x25\x26\x79\x60\xc9\x90\xa5\xe7\x52\xff\x3e\x53\x92\x93\x3c\x22\xd8\xff\xbd\x5d\xdd\x3d\x3f\xde\x1e\x6e\xd7\xbf\xaf\x77\xeb\xcd\xe3\xa0\xa7\x5a\xc9\x84\xc4\x58\x97\x70\x0c\x93\x0e\x13\xdb\x1f\xd5\x5e\x7b\xdd\x95\xf0\xef\x8e\x6a\xb0\x6e\x92\xd4\xa2\x2a\xee\x57\xdf\x16\xf7\x87\xd5\x1f\x4f\xab\xc7\xdd\x6a\x87\xd8\x8b\x6e\x88\x0c\x70\x05\x3f\xc2\xfb\x77\xa7\x50\x33\x7e\xd6\x94\x72\xe1\x44\x10\x1d\x8f\x7d\xcf\x3d\x60\xcb\x0b\x93\xc9\x35\x82\x8e\x4f\x12\xb1\xfe\x05\xa5\x61\xe0\x29\x52\xbe\x61\x1f\xce\x27\x4c\x4d\x93\x09\x9b\x86\xda\x02\x14\x6d\xc3\xf2\x27\xa3\x54\x20\xb1\xa1\xd5\x3b\xda\x94\xa1\xd1\x78\xf8\xb4\x77\x45\x2a\x13\x62\xe9\x4d\xe5\x20\xaa\xdd\xe5\xe4\xad\x98\xd4\x24\xb6\x7b\xf4\xe5\xdc\x6e\x0e\x50\xd5\x0f\xd3\x40\x5d\x6a\xca\x91\x90\xc0\xa3\x26\xf7\xa5\x4d\x95\x8e\x7f\x02\x88\xc1\x6d\xe2\x66\xeb\xb1\x25\x12\xda\xf0\xd7\x2e\x87\x7d\xe6\x32\x92\xe3\x6a\xb1\xb7\x2e\x86\x05\x2c\x18\x53\xe5\xde\x88\xe2\x75\x7e\xf9\x19\x37\x39\x77\x2a\x03\x44\x47\xf5\x01\xb7\x22\x81\xad\xb2\x1e\xc1\xb5\x52\x83\x47\xb5\x8c\x82\x6d\x15\x90\x40\x8a\x09\x07\xfc\xd0\x57\x1b\x3d\x9b\x0a\x02\x1a\x5a\xaa\x76\x3d\x12\x12\xfb\xd3\xf5\x3c\x78\x46\x15\x44\x96\x5a\xb4\x0d\xaf\x5f\x47\x2f\x63\xcc\xa9\xdb\x8d\x57\x2a\x95\x5d\xe1\xbb\xb5\x7b\x88\xa4\x3e\xe7\x30\x5d\x8e\x8a\x06\x96\x07\xf5\xbd\x23\xe5\x6a\x63\x73\xff\x4e\x68\x2a\x20\xe9\x68\xf3\xba\xcc\x68\x39\x89\x9d\x14\x15\xb1\x65\xbc\x15\xc5\xeb\xc5\x75\x6c\xfb\x6b\xb0\x10\x10\xf4\xef\xbc\xb0\x9e\x6f\x60\xf4\x69\x14\x8b\x2d\xb4\xa0\x02\x73\xa9\xaf\x04\x36\x94\x0a\x79\x42\x58\x5f\xcc\xb7\x1c\xe9\x08\xa3\x9e\x5c\x28\x14\x91\x6f\xc2\xbb\x05\xd0\x7d\xb1\x5a\x85\x1a\x94\xfb\x89\xf2\x2a\xf7\xa7\xa2\x88\x20\xa0\x60\x69\x09\x2a\x97\x0f\xf3\x0b\x42\x45\x32\x12\xba\x6b\xe6\xea\xe8\xdf\x26\x57\x8b\x89\x8c\x2d\x2d\xcc\xba\xc8\x3a\xea\x28\xa5\xe2\x30\x31\xf1\x34\x99\xbe\x2f\x9d\x0d\xb3\xec\x90\xdd\x58\x69\x1b\x0b\x4c\x96\xe7\xfb\x17\xc8\xaa\x11\x8c\xc9\x0d\xe2\x2c\xc6\x3e\x23\x0b\x8b\xf4\x46\x79\xa8\x2b\x39\xb9\xff\x84\x5a\x3f\xf7\x08\x8d\xa9\xca\x53\x7d\xf9\x54\x36\xc0\x9f\xc0\xac\xd4\x20\xd6\x00\xb7\x99\x7a\x5d\x14\xfa\xa1\xac\xbc\xa8\x8b\x52\x49\xca\xb1\x5f\xe6\xbe\xb4\xa8\xa2\xd6\xfd\x77\xdd\xc5\x28\x75\xf6\x49\x96\xe1\x93\x9f\x4b\xa5\xd5\x4e\xc8\xea\xb5\x2a\xef\x44\x96\xf7\x2f\x4f\x84\x24\x24\xbe\x7b\x7a\x29\xce\x5b\x10\xea\x65\x70\x38\xb1\xa9\x8e\x73\x6b\x04\x6e\x3b\xb0\xec\xa1\xdd\x46\xe7\x7f\x4b\xd1\x04\x1b\x42\x6f\x9e\xb7\x8f\x13\xd8\x9d\x52\x2a\x46\x94\xe8\x7d\xf9\x06\x37\x59\xb7\x53\x2b\x20\x56\x56\x1f\x51\x0d\x1e\x86\x58\x79\x52\xed\x97\xec\x3c\x6f\x7a\x15\xd0\x18\x01\x95\x1d\x32\x7e\x51\xd4\xef\x53\x2e\x01\x3f\x16\x04\x7a\xff\xca\x1b\x98\x91\xff\xaf\x4c\x24\x30\x67\x6e\x1b\x15\xb2\xa2\x27\xed\x55\xca\xc4\xb6\x2b\xa0\x00\xab\x5c\x58\x4f\x1d\x1e\x3f\x2e\xa1\x88\x62\x06\xcb\xbf\xb1\x31\x4f\xd5\x40\x00\x41\x69\x22\x38\x86\x36\xdb\xf5\x18\x64\xaa\x03\xc2\x3b\x09\x63\xdf\x07\x31\xee\xef\x98\xff\xb0\x3a\x60\x0c\x03\xe2\x4d\xbb\x4d\x2e\xcb\xac\x70\x61\xc7\x62\x58\xf5\xec\xc6\xea\x38\xf2\x20\x74\x9f\xb3\x72\xf5\xc4\xd1\x73\xe8\x20\xb4\x32\x7f\x0d\x88\x93\xab\xc8\x3c\x0d\xf4\x24\x95\xa6\x61\x88\xc5\xbf\x1c\xf3\xdb\x5e\x3b\xe0\x49\x54\x0d\x9d\xfc\x28\x23\xdc\xb2\x3d\xd8\xae\xf6\x2d\xa0\x26\x74\xfe\x75\x96\x4c\xb3\x88\x31\xe5\x6a\x00\xf3\xd5\x39\x1d\x06\x11\xa1\x8e\xea\x26\xab\x40\x3f\x88\xff\x94\x55\xd6\x7c\x8c\xd1\xdc\x3a\x0c\xac\x38\x64\xd9\xc6\x11\x59\x2f\x08\xe2\x0f\x47\x96\x96\x2d\xb3\x79\x68\xdf\x67\x05\xfa\xe6\x63\xf7\x71\x92\x65\x3e\xca\x77\xe9\x90\x83\x97\xc8\x28\xca\x77\x25\x2a\x3d\x20\xa3\x53\x3a\x0a\x04\xa2\x37\x0f\xb5\xed\xdc\xcd\xf3\xec\xd8\xee\x89\x98\x46\x0f\xe2\xc9\xab\x89\x12\x16\xb3\x8e\x82\x7c\x89\xa0\xca\x1c\xf4\x37\xe1\xf2\x35\x1d\xb5\x9a\xdf\x58\x74\x0c\x0c\x13\x41\xc7\xec\x0d\x10\xd1\xee\xaa\xdb\xdd\x61\x85\x28\x88\xef\xab\xfb\xfb\x8d\xff\x23\x67\x36\xe6\xf4\xee\x82\xfb\x9e\x7f\xad\x61\x56\x73\x9e\xe8\x8e\x60\xb3\xd2\xf5\x97\xfe\x92\xe6\x29\xc5\x52\x4f\x01\xbf\x9a\xae\x63\x68\xda\xfe\xaf\x13\x66\x09\x40\xda\x6b\x2e\xbf\xdb\xbc\x22\x4d\xc6\x2f\x3a\x51\xa9\xb6\x39\xe4\x32\xd7\xd7\x5d\x6d\x3a\xa5\x69\xea\x24\xed\x3f\x0a\xd5\xfd\x95\x59\xed\xed\x5d\x76\x3a\xf7\xab\x2e\xd5\x22\xf4\x69\xcc\x3f\x4d\xe3\x4f\x9e\x3f\x35\xa1\x55\xf9\xf0\xe9\xd6\x49\x9a\x76\x74\xd3\x22\xd4\x08\xba\xaf\x5f\xca\x77\xf4\x97\x86\xad\x45\x5a\x52\x45\x42\x6f\xf2\xbd\xf8\x94\x3f\xa8\x35\xc1\x15\x77\x16\x1f\xeb\xce\x2a\x00\xb5\xcd\xc0\x87\xd6\x24\xf7\x40\xab\x09\xc2\x23\xf9\xdb\xe5\x5a\x72\xb2\x3d\xd9\xd6\x4b\x8e\x7d\xf2\x96\xb2\xee\xca\x71\xc2\x02\x5f\x53\x1a\xd6\x15\x47\xdc\x1e\xbd\x5b\x3d\xb9\x74\x0c\xb2\x4f\xad\xb6\x06\xae\xde\x67\xad\xf9\x29\x4c\x76\x7c\xe8\xc2\x01\x0d\xdc\xf6\x7e\xe1\x4f\xdc\x6d\xf7\x13\x2b\x03\x69\x4a\x6d\x99\xd8\xe2\x33\x6d\x87\xea\xf8\xa7\x0c\x8b\xac\xb6\xd9\xb7\x6f\xbb\xc3\x7e\x73\xf8\xbe\xd8\x2f\xbf\x1f\x82\xbb\xc5\x7a\xeb\x7b\x05\xb5\x49\x79\xd4\xe3\x35\x6e\xb3\xfa\x7c\xe9\x76\x16\x08\x42\x82\xf7\xe0\xd8\x66\x10\x09\x38\x36\x11\x10\x28\xc5\x22\x4f\x47\xd1\xfc\xe6\x5e\x2d\xbe\x59\xeb\x06\x0e\x59\x39\xfb\x73\x94\xb0\xfd\x3a\xfd\x3e\x01\x01\x30\x48\xfd\x4c\x6b\xac\x92\x5e\xaf\x3d\x94\xba\x65\x0c\x94\x04\xa9\xe3\x56\x37\x03\x9f\xe9\xeb\xa9\x08\x94\x7a\x22\x84\x02\x5a\xa7\xef\xa9\x86\x8b\x2e\xb7\xa2\xd0\x63\x67\x1a\x68\x1c\x63\x65\x54\x58\x39\x81\xfa\x4e\xa8\x2b\x01\x04\x05\x8c\x19\x32\xec\xa9\xb3\x95\xd1\xc9\x18\x99\x62\x9a\x6e\xad\xcb\x1c\x3f\xa2\xcf\x36\x01\x93\xb6\xc3\xca\x01\xc6\xda\x77\xd0\x07\xcb\x10\x86\x31\xb3\x24\x88\x18\xe6\x7f\x17\xf5\xcb\xfe\xe3\x3c\x42\x53\x41\x98\x58\x71\x70\x65\xe9\x33\xa7\x34\x1c\x10\xaa\x80\x26\xbe\x90\xd6\xbb\xae\x5b\x67\xee\xbd\xc3\x3e\xfc\x55\x93\x84\xc6\x09\x91\xec\xcb\x65\x59\xd4\x97\xd3\xb5\xb0\xe8\xe4\xad\x46\xa9\x46\x46\x8f\x07\x51\x1c\xcb\x2d\x9c\xfd\x8a\x84\x58\x47\x88\x2a\xb8\x2f\xad\x8a\xfd\xbc\xe7\x0a\x3c\xb1\x72\x68\xfb\x4b\xd5\xe4\xf0\xa7\xb9\x2d\x48\xc2\x18\x12\x1f\x11\x35\x95\x18\xf6\x4b\x41\xc2\x2d\x13\x03\xfa\x62\xcf\x55\xf6\x54\x81\xc9\x7e\x75\x47\x53\x5b\xb5\x38\x8b\x8f\x9b\xec\xba\x96\x38\xf0\x75\x20\x25\x09\xfa\xd3\xef\xbe\x37\x66\xff\x6b\xde\x64\x43\x4a\xb9\x61\x9e\x6a\xd1\x79\xcc\x7a\xae\x45\x0b\x52\x23\xb1\xee\x7b\xca\x8a\x9f\x90\x3d\xe1\x7a\xef\x42\x97\x6e\x8c\xd6\xc8\xfe\xf9\xf4\x4f\x74\xf9\x67\xe4\x28\xdd\x48\x99\x5a\x02\xe6\x76\xe3\xdd\x18\x83\x44\x7f\x9f\xb6\xfb\x80\x8a\x03\x84\x72\xaa\xb2\x30\x79\xa6\x9a\x55\xa1\xef\xb2\xae\x4b\x1d\x54\x6a\x49\xa1\x10\x0e\x76\x05\x93\x9b\xff\xf0\x4a\x84\x98\xd9\xfa\x7d\xbd\xdc\xfc\x31\xfe\x6e\xe3\x37\xa4\xa4\xf4\x6c\x1c\xa8\x5b\x71\x9e\x04\xaf\xa0\x43\x91\xc4\x1d\x95\xd1\xf7\x4b\xd1\xac\x7b\xd0\xf2\xdf\x26\x17\x9d\x5c\x5c\x47\x56\x80\xf9\x6e\xf3\xfc\x78\xbb\xda\x06\x56\x11\xdc\x3f\x97\x8e\x05\xf6\xf9\xfc\x58\x6c\x1f\x16\xc3\x6a\x38\x40\x18\x79\x50\xc5\x94\xc4\x53\x81\x21\x29\x62\x54\x6f\xf2\xec\xbc\x2c\x4f\x67\x68\xb2\x6b\xe0\x0d\x98\x28\x16\x3d\x21\xf0\x8d\xf0\x1f\xd1\x10\x6e\x45\x82\xcc\x14\xbb\xde\x0d\x30\x11\xb6\xaf\xc0\x1b\x14\x96\x87\x72\xa2\x8b\xd1\xdd\x8a\xa1\x4c\xa4\x2e\x25\x8f\xe6\xdd\x2b\x81\xce\xbe\x0d\x43\x99\x8e\x99\x97\x78\x6b\xd4\x4b\xbb\x43\xde\x67\x75\x43\xfc\xc6\x65\xa8\x49\x22\x33\xf0\xfa\x6e\xe1\x6d\xa0\xcd\xe1\x06\x31\x6a\x39\x68\x67\xa7\xc3\xbf\xc2\x51\xa7\xca\xe5\x53\x22\x4a\x65\x58\xc8\x12\x47\xf5\xb2\x3b\xd5\x4b\xa8\x9a\xcc\x64\xd3\x60\xd1\xb0\x38\xc5\x92\xab\x2e\x97\x22\xcf\xc7\x73\xc3\x84\x24\x40\x52\x0a\xec\x74\xf3\x5d\xd7\xfe\x18\x63\x03\xaa\xb1\xd6\x48\x0e\xb9\x09\xba\x41\x36\x87\x59\x43\x83\xb6\xb4\x53\x69\x99\xcb\xc5\x98\x50\x46\xdc\x6d\xfa\x58\x78\x98\x2b\x83\x98\x28\xb0\x49\xa6\xdf\x2f\x80\xe5\xf9\x7e\x5a\x99\x28\xb4\x0b\x69\x77\x39\x43\xf5\x9c\x37\x95\xc0\xff\x1a\x54\xf7\x4d\x14\x47\x9c\x7b\xb6\x61\xe4\x6c\x74\x75\xd7\xde\x12\x1b\x0e\xb6\x9c\x89\x94\xdb\x05\xa0\xe7\xdd\x6f\x40\x7f\x29\xed\x3a\xb2\x9a\x26\x09\x53\xc4\x4c\xda\x7d\x60\xa1\xb5\x55\x3a\x9e\x35\x2d\x26\x89\x62\x84\x19\x5c\x8a\xba\xcc\xf5\xb2\x7d\xf3\xcf\xde\x27\x31\x69\x10\xa0\xa0\xad\x06\x1f\x0a\x58\x8c\xcb\xf8\xb3\xa5\xca\x66\x64\xdb\x0b\x3c\xaf\xf6\xf3\xb6\xb6\x1b\x2d\xa8\x44\xd4\xca\x6e\x71\xbf\xda\x59\xfa\x48\xff\x73\x22\x66\xbe\xbf\x7d\x0b\x75\x79\xa9\x54\x47\x89\x3e\x7a\x40\xa9\xec\x03\x3e\x17\x35\x34\x93\x96\xa6\xf1\xd7\x53\x81\x7d\xff\x96\xd8\xec\xae\x98\x74\x0a\x19\x45\x49\x02\x2e\x57\xdc\x8b\x6f\x3a\xe1\xd2\xfd\xe6\x93\x95\xa7\x99\x40\xe7\xc2\x32\x6c\x4c\x26\x8c\x16\xc2\x56\x9a\x2f\x38\x9d\xcc\x25\x1f\xa0\x9e\x8c\x96\x0a\xb1\x9c\x67\xa8\x4c\x59\x9d\x0e\xef\xb3\x24\x33\x46\x2b\x93\x0c\xa8\xc2\xcf\x50\x3c\x88\x57\x18\x65\x5f\xa6\xf7\x04\x52\xf4\x4d\x48\xad\xc7\x6c\xe9\x7c\xc7\xd6\xce\x68\xc3\x95\xc3\x2b\x2f\x26\x6a\x78\xf3\xf3\x03\x28\xf5\x05\xc6\x21\x2e\xf1\x76\x28\xfd\x31\x3d\x25\x16\x66\x98\x73\xbd\x9a\x10\x5f\xa5\x63\x3e\x33\x2f\x26\xb0\xb2\xb8\x1e\x88\xf7\x4d\xd4\xbb\xf3\x50\xc0\xfb\x32\xec\x3c\x30\x26\x02\xcb\xa7\x6b\x73\x69\x2f\xa2\x28\x20\xf7\x9a\x25\xb3\x8f\x1c\xa4\xdd\x4f\xc9\x20\x04\xcf\xdb\x54\x9d\x44\xee\x0a\x21\xe3\xa7\x34\x26\x88\x1d\xc4\xdf\x2d\x77\x4d\x48\x68\x91\xf9\xeb\xed\xe6\x71\xb0\x03\x69\x12\x50\x4b\x6c\x6f\x6f\xe7\x1b\x14\xc4\xcb\xc4\xcc\xbd\x42\x4d\x02\x1d\x8a\xc0\xc3\xc6\x6e\xb3\xb7\xbe\x99\x5d\x13\x46\x63\x2b\x1a\x7e\x68\x23\xc7\x3e\x63\xa2\x09\x8b\x09\x4e\xbd\x53\xa9\x9f\x44\x7d\x1d\xb5\x7d\x4a\xfd\xa1\x09\xe3\x52\xf5\xb2\x18\xeb\xfa\x49\x7c\xa0\xa2\xfe\x90\x12\x5a\x13\xd6\x3a\x64\xbe\xae\xd3\x46\x49\x37\x65\xa1\x67\xd3\x3b\x9a\x30\x45\xb0\x90\x28\x8e\x15\xc0\xa0\x4c\xa6\x09\xd3\x3c\x76\xe1\xe8\xe5\x04\x3f\xcb\xea\xf5\xb7\xf1\xd3\x33\xe0\xd4\x4a\x25\xd9\xfc\x07\xbe\x4a\x35\x42\x96\x68\x12\xa6\x0c\x51\xb8\xbd\x7a\x48\x70\xb3\xef\x57\xa3\xf3\x86\x34\x09\x85\x6d\x03\x42\xc8\x0a\x62\xe7\xeb\xc6\xf5\xf1\xf7\x0f\x16\x69\x8d\x95\xb3\xe5\x72\xb9\xed\xed\xb7\x46\x88\x05\xb2\x43\x8b\x42\xe7\x30\x0c\x50\x66\x5d\x14\x4d\x62\x15\x63\x71\x09\x3d\x44\xfc\x08\x23\x50\xf6\xa8\xed\x45\x13\x4e\x62\x4c\x95\xf5\x64\xf2\x5b\xa8\x2f\x79\xe3\xb1\x45\xec\xdf\xff\x0a\x82\x7f\xff\x8b\x51\xff\x30\x3c\x54\xe8\xe7\x5b\xbb\xf0\x13\x75\x62\x6d\xa0\xf0\xaf\x80\xc7\xff\x1e\x96\x98\xbb\x33\xac\xde\x84\x8d\x0c\xcc\x83\x85\xef\x75\xe2\x22\xfe\x41\x13\x12\x20\x84\x48\x9c\xcf\x50\xe8\xc7\xcb\x09\x01\x4a\x6d\xa4\x32\xd3\x51\xd7\x0e\x4f\xb1\xff\xd5\xe2\x0b\xaf\x94\x7d\x87\x4b\x57\x93\x84\x71\x94\x46\xc8\xea\x6f\xa2\x76\xf7\xeb\x74\x13\x34\x49\x42\x89\x55\x32\xfc\x32\x4f\xa2\x72\xde\xd7\xe4\xe7\x22\x89\x35\x8c\x93\xa5\xfb\x18\xa6\x0a\x34\x49\x52\x1a\x38\x4c\xca\x3f\xc1\x3b\x66\x9a\xa4\x04\xd0\x70\xdd\xae\x9e\x36\xbb\xf5\xfe\xf0\xb4\xda\xae\x37\xb7\xdd\xd1\x34\xc1\xbe\x38\xcc\x96\xc8\x61\xdf\x8c\x26\xa9\x8c\x11\xdb\xf1\xf7\xc7\xdb\xfd\x70\x11\xa7\x9a\x60\xae\x76\xb9\xdd\xfc\xbc\xc5\xae\x8e\xc5\xfd\xfd\x66\x39\xe8\xeb\xd0\x44\x70\x83\x44\xe0\xc7\x4a\x14\xcd\x8c\xde\x7c\xdd\x0d\x04\x89\x51\xdf\x4a\xdb\x54\xa4\xff\xbb\x4c\xb5\xa2\x5d\x0d\xd7\xfb\x63\x8e\x8e\xee\x4f\x14\x94\xfd\x25\x24\x8f\x1c\x6a\x08\x03\x26\x2f\x20\xe7\x7f\x42\x05\x80\x6c\x35\x87\xda\x39\x3e\x93\x95\xab\xa8\x05\x7e\xf6\x85\x92\xcf\x7c\x8f\xf9\x35\xa0\x78\xa2\x68\xa7\x9b\x29\xaa\x8f\x8d\xeb\x82\xea\x6e\x40\x2b\xbc\x01\xbf\xf9\xf5\x95\xf8\xc9\x85\x8c\x40\x92\x03\x29\xea\x76\xed\xdd\x66\x6f\x59\xdd\x5f\x45\x07\x0c\xd3\xd9\x3f\x57\x7b\x2f\x3a\xa8\x89\xd6\x21\x76\x02\xc9\xa6\x18\xe6\xc0\x34\x81\x30\xf6\x2a\x02\x85\x82\xbc\xbc\xaa\xdb\x68\x02\xda\x93\x22\x5a\xd5\x09\xc4\x8f\x7d\xb5\x3b\x6a\x62\x68\xec\x54\xb7\x44\x83\x12\xe2\x87\x37\xe2\x7f\xd1\x44\x22\xe9\xf9\x20\x7f\xae\xd6\x6e\xda\x8e\xae\x10\x10\x1e\x69\x32\xe8\x4d\xb5\x49\xca\x61\xf5\xc4\x0f\x4c\x43\xb4\x2c\x7f\x17\xd9\xf7\x72\x38\x2f\x03\xaa\x02\x4c\x61\x40\xf3\x72\x57\xbc\xb6\xa7\x52\x7f\x88\x85\x0c\xb7\xe2\xd5\x6e\xf3\xb4\x68\x4d\xf5\xe9\x2c\x8a\x8f\x1d\xcc\xb7\x39\xea\x80\x25\x94\xba\x1a\x97\xfd\x22\x16\xb3\x37\x7a\x95\x01\x13\x16\xcc\x9f\xd5\x1e\x8f\xd0\x4e\x53\x8b\x09\x99\x9d\x91\x41\x18\xa6\xd8\xdf\x7a\x9b\x15\x65\x57\xa0\xf1\x97\x0b\xc1\xc2\x98\xbb\x7a\xfc\xee\x69\xe7\x8f\x45\x40\xd2\xbe\xdf\xc1\x26\x99\x1f\xc5\x69\xc4\xfa\xa2\x03\x6e\x28\x16\xf8\x1a\x10\xa7\x21\xdb\x93\x3b\x9c\xc4\x1a\x21\x0f\xbb\xa6\x9c\xd5\x45\xf0\xc3\xa4\x05\xc5\xfc\x9e\x35\x62\xf4\x7e\x53\x16\x27\xb6\x92\xb6\xd2\x68\x9d\xc6\xfc\x4e\xce\xd2\x06\xc2\xd1\xce\xfd\x7d\xfd\xf8\xad\xfd\x8f\x3f\x5d\x08\xc1\x69\xa7\x52\x85\x81\xdd\x94\x9f\x7b\xfc\xb6\xa4\x4e\xe5\x88\x27\xee\x1e\x3c\xe1\xaf\x0e\x54\x44\x80\xb8\xbc\xcd\x84\x44\x68\x72\x19\x15\xc7\xda\x97\x89\x6d\x34\xa6\x44\x03\xeb\x76\x63\xd2\xdd\xd5\x94\xc0\x84\xc6\xf7\x4c\x43\x25\x7c\xdd\xf4\xf3\x94\x8c\x0e\xb4\x0a\x98\xf3\x07\x9b\xd1\xcb\xec\x22\x1a\x1d\x40\x94\xa0\x1b\x84\xde\xcb\x67\x5e\x60\x37\x16\x7c\xdf\xe9\xa6\x5a\x0a\xf5\x02\xb7\x50\x63\x90\x0a\x7a\x0b\xe7\xb2\x6a\x1e\xcb\xdd\x4b\xf9\x8e\xb2\x9c\xee\x1c\x13\x4a\xe1\xf2\x69\x8b\x23\x14\x5a\x8c\xa7\x83\x91\x36\x13\xdc\x06\x88\x37\xdd\x39\xca\x66\x30\x1c\x7f\xd9\x35\xfc\xd4\x8e\xa3\x84\xa5\xc4\xa3\x36\x44\xb5\x6b\xc4\x98\x62\x48\x53\x92\x28\x04\x06\x40\xa1\x5d\xc5\x7f\xad\xca\x3e\x9e\xd3\x34\x08\x01\x6b\x08\xca\x8a\xf6\xb8\xed\x6e\xae\xc7\x6d\x3c\x01\x29\x0d\x88\xc5\x2a\xf8\xa4\x70\xfb\xa7\x24\x49\x7d\x13\xb0\x4d\x4d\x2e\xba\x63\x94\x23\x9c\xf8\x04\x79\x59\xb4\x2f\xaa\x3b\x10\x29\x64\xa4\x5a\x96\xed\xff\x75\x5b\x0b\xa5\x89\xc2\xf4\x70\x56\x3f\x64\x45\x73\xdd\x35\xa4\x29\x15\xb1\xf2\x3e\x6d\x1b\x42\x8c\xb3\x5a\x9a\x32\x42\x71\x1d\x6f\xaa\x52\x0d\x2e\xcc\xa8\x8c\x5c\xa1\xc7\xd6\x8f\x1d\x5f\xc2\xf4\xf4\x30\x00\x2a\x07\xc4\x8c\xf7\x23\x99\xed\xf9\xdd\x8c\x86\x91\x55\x52\xb0\xf0\x8f\xa6\xac\xc4\xb1\xdb\x08\xbd\x93\x47\x23\x66\x4b\xa2\x39\xa0\x7e\xe8\xf7\x6c\x08\xcc\xd2\x34\x8a\xe2\x84\x8d\x9a\x9b\x6d\x1c\x3b\xfa\xb0\x31\xd1\x9e\xfc\xbc\x5f\x2f\x6d\xa8\x23\xdb\x59\x70\xa9\x27\xef\x2a\x66\x2c\x75\x86\x1b\xf5\x26\xae\xd7\x01\x8d\x95\xa5\xed\xae\xa1\x39\x1c\x7b\xab\x35\x5a\x50\x94\x47\x1a\x6b\xec\x36\xef\x8f\x84\x07\xd5\xf6\x92\xc3\xf4\xf7\x38\x67\xa9\xf5\x2c\x77\x50\xbd\x4d\x7b\x60\x35\xe5\x32\x0a\x7c\x91\x1c\x5b\x1c\x7a\x32\x12\x4d\xb9\x82\x94\x79\x2f\xd0\xd1\x53\xcd\x2f\x48\xca\x75\xa0\xdd\xbb\xc2\xaa\xd9\x75\x97\x8d\xa6\x09\x15\xce\x64\x37\xea\x65\x87\x9d\x7b\x5f\xca\x22\x6a\x9a\x30\xbb\x03\x38\x43\xfe\x0e\x70\x9e\x13\x3f\xd0\x34\x49\x39\x36\x27\xb4\xfb\xf4\xee\xa3\x68\x5e\xa0\xce\xfe\x87\x1b\xcc\xef\x99\xf8\x32\x68\xa2\x89\x01\xc9\xba\x20\xcb\xd5\xff\xd7\x0d\x78\xc4\x90\xa6\x69\x1a\xda\xa6\xe4\xd6\xeb\xb3\x6a\x31\x4f\xae\x0b\xcd\x0f\x91\xa1\xc1\x1d\x70\xff\x02\x7b\xb0\x2a\x7c\xa2\xf8\xe8\x8e\xc6\x32\xb0\xed\x90\xbd\x78\x44\x67\x4d\xa9\x4c\x62\x66\x5b\xf6\x4b\x7d\x51\xf0\x5c\x64\xcd\x48\x5e\x4d\x53\xc5\x84\xc5\x48\xa1\x18\x9b\x67\x63\xc0\xc9\x98\x74\x63\x1c\x4b\x98\xf5\x1b\x3c\xa7\x71\x77\x14\x82\x04\x7c\x6b\xde\x47\x5e\x0a\x8d\x6a\x4c\xe3\x97\xa8\x00\x50\xa6\xee\x5c\xe6\xb9\xbd\xc3\xf1\x5c\x51\xc6\x36\xfb\x5b\x4a\x9d\x9b\xfb\xe7\x95\xbf\xbc\x66\x96\xb5\x06\x39\x70\xb3\xb2\x98\xb4\x23\x69\xaa\x25\xc3\x5c\x2a\xde\x38\x7a\xcf\x9d\xe0\xfc\xba\x98\x48\x79\xa0\x68\x28\x35\xc8\x2a\x56\x39\x48\x88\x3b\x00\xa9\xc2\x70\xfe\x09\x10\x3b\xd0\x51\xc2\x69\x0a\x4a\xa1\x46\x59\xeb\x9d\xde\x8b\xba\xb9\xbd\x72\x85\x28\x68\x8d\x0e\xaa\xed\x88\xb8\xdf\x2c\x7f\x78\x87\x81\x91\xd8\x5a\x67\xbf\xeb\x58\xa5\xb2\x7d\xf9\xbd\xec\xba\xde\x34\x23\x29\xc5\x46\x0e\xd7\xd9\x34\x0d\x19\x19\x8d\x43\xcb\x4e\x96\x83\x28\xee\xcb\xa3\x3f\x8f\x11\x2b\x52\x8d\x8f\x7d\x70\x14\xef\x75\x77\x34\xe1\x78\xd4\x7e\x37\x4b\x54\x61\xbd\xb9\xf9\x0a\xb0\x66\x2c\xb5\xfd\x27\x0d\xd4\x8d\x13\x92\x6e\x3e\xf6\xd5\x47\xfb\xbf\x9f\x8b\x9e\x6a\xca\xff\x42\x18\x19\xd5\x85\xb2\x8f\xe5\x29\x2b\x00\xba\x9f\x0f\x81\xba\xb4\xbe\xae\xf6\xe5\x5d\x59\x5d\x4e\x13\xee\x1c\xcd\x22\x65\x89\x50\xec\x0a\xb9\xcf\x64\x25\x7e\x9b\xa8\x13\x04\xf1\x55\x47\x86\x66\x11\xf0\xc0\x6a\x22\x36\xd5\x87\xcd\x86\xdc\x4e\x5a\xdd\x34\x8b\xb9\xe1\xba\x13\x22\xec\x68\x01\xfd\x51\xc5\x50\x17\xd3\x37\x2a\x5a\x4a\x8e\xf1\x15\xb8\x09\xbc\x2f\xbc\x2e\xde\x82\xc9\xcd\x27\xc2\x74\xb2\x30\xb7\x20\x2f\xc7\x65\xaf\xf0\xa8\x59\x2a\x43\xdc\xdc\xda\x6d\x6b\xa7\xca\xaa\x9f\xf3\x33\xfc\x4a\xed\x70\x81\x5b\x96\xb5\x04\x98\xc7\x1b\x39\x8d\x4c\x70\x8e\x31\x8a\x40\x98\xaf\x83\x76\xf6\xda\x97\x9a\x09\x49\x11\x4c\xf2\xdf\xee\x0f\x4a\x7a\xea\x5d\x6c\x25\xd9\x98\x5d\xf6\xab\x01\x14\x20\xf7\x31\x7d\x7f\x03\x92\x85\xe8\x94\x2e\xb4\x5e\x15\x4d\xd6\x7c\x0c\xf4\x81\x34\x93\xd2\x7a\x38\x25\x72\x55\xa3\x2c\x1a\xba\xcc\xfd\xe6\xc2\x54\xc0\xd0\x35\x36\xf9\xa5\x7e\xc1\x8e\x9f\x47\xf8\xe5\x77\x3c\xa6\x02\x15\xb6\x66\xec\xbd\xcc\x5f\x47\x05\x09\xcd\x54\x48\x31\x27\x7a\x23\x9a\x26\x87\xdb\xaa\x3c\x61\x16\xb3\x3b\xaa\x64\x3b\xf7\x65\xa6\xc7\xcc\xef\xe3\xdb\x57\x49\x22\x35\x12\xb8\xe5\x4d\x36\x0a\x22\xa7\x03\xd3\x00\xf1\x04\x99\xb3\x63\x7d\x32\x54\x33\x25\x24\xb6\x61\x1e\x9a\x2a\x3b\x1e\xa1\x7a\xfa\x7d\x65\xd5\xb8\x27\xef\x4a\xc9\x08\x59\xae\x75\xd9\xe1\x1d\x5b\x0f\x66\x0e\x98\x31\x3a\x4f\x13\x8d\xcf\x92\x95\xbf\xb2\xee\xf1\x75\xa2\xb4\xe5\xc4\x74\x2c\xc1\xe2\x04\x7f\xac\x6f\xaf\xa8\xde\x35\x03\xaa\xb1\x54\xb5\x3a\x8b\x79\xd9\x82\x2b\xa8\xb9\x66\x10\x11\xe1\x32\xe6\xd9\x9b\xc7\x02\x6b\x06\xb1\x20\x62\x60\x96\xbe\x56\xa9\xd5\x0c\x94\xe5\xc7\xb3\xdb\xe5\xea\x57\x03\xad\x15\x1f\x36\x27\xf9\x81\x60\x3c\x4b\x78\x17\x95\xb8\xad\x78\xe8\x65\x30\x13\x08\x12\x8e\x44\xe4\xc6\xd7\x31\xd4\xc4\xfd\x0f\x3e\x59\xc7\x76\xd4\x88\x3e\x1a\x1f\x92\x84\x63\xe6\xca\x64\x15\x60\x79\xe1\xbe\x3c\x86\xbf\xf9\x83\x22\x80\xd4\x71\xbc\xa1\x2b\x82\x02\x63\x13\x69\x8a\xde\xdc\xb8\xb3\x02\x16\x75\x24\x9d\x97\xfc\x75\x6a\x95\xc3\x20\xe4\x28\xd7\x85\x0a\xd4\x79\x76\x04\xfd\x29\xe1\x7d\x3b\x58\x20\xb0\xdc\xb6\xcb\x6d\x17\xfb\xd5\x81\x92\xc3\xd3\x6a\xbb\x5c\x3d\xee\x2d\x1d\xa9\xbf\x5b\xea\x1c\xb0\xac\x68\xbd\xc6\xf3\xb9\xfb\x6a\x21\x8d\x23\xdc\x26\x3d\x19\xcc\x40\x06\xa2\x3d\x08\x21\x19\x86\xca\xae\xbb\x67\xfd\xe4\xa7\x5a\x18\x86\x31\x46\x57\xad\x71\x59\xdc\xaf\x0e\x7f\xdf\xac\x1f\xf7\x78\x47\xdd\x8f\xc7\x84\x11\xea\x97\x47\x81\xa6\x08\x1b\x61\xfe\x1a\xee\x68\xde\x65\x0e\xe3\x30\x45\x0f\xc2\x66\x8d\x9e\x6b\xa8\x9e\x56\xf7\x9b\xcf\xb5\x2e\x75\x18\x47\xb6\x47\xca\x0a\x84\x2c\xf2\xfc\x26\x2b\xb1\x78\x96\x8f\xb2\x56\x61\xcc\x2d\x5b\x20\xb6\x1c\xdf\x5d\x70\xef\xfe\x14\xe9\xa9\xc3\x38\x11\xbe\x8b\xca\x42\xe2\xea\x61\xc4\x1c\x72\x66\xcb\xda\x7b\x91\x2d\x5f\xb2\x41\xa8\x12\xf2\x28\x41\xd2\xba\x02\xde\x5b\xf7\xa2\xaa\xaf\x25\x4f\xba\x91\x46\xd0\x81\xac\xbe\xd6\x76\x67\xf1\xa3\x87\xab\x20\xe4\x89\x12\x69\xc7\x83\x86\xd9\x46\x95\x9d\x45\xc7\x24\xa4\xc3\x44\xa9\x30\x1a\x62\x24\xa7\xa5\xda\xf1\x05\x53\x16\x08\xe7\x2c\x3f\x67\x45\xd3\xd1\x25\xcd\xdf\xab\x60\x21\xfa\x87\xd8\xfe\xff\x90\x4d\x73\x41\xa1\xd0\x91\xcb\xbe\x28\x28\x9a\xfc\x03\x5d\xb7\x99\x38\x2c\x94\xa9\xb6\x15\xb7\x93\xc8\x4b\x59\xfe\xf2\x77\x2f\x75\xc0\xe5\x90\x70\xea\x67\x56\xc0\xcd\xe5\xc3\x41\xbc\xc6\x17\x51\x91\x42\x2f\xe7\x61\xfd\x78\xb8\x5f\x2d\x6e\x57\xdb\xc3\xdd\x76\xb1\x3c\xdc\x6c\xf6\xfe\x7a\x2a\x51\x48\x8e\xd1\x3a\x33\x7f\x50\x9f\xd9\x0a\x75\x4c\x10\x70\xf8\xb4\x3b\x3c\x6d\xd7\x9e\x38\x4f\x87\x5a\x48\x24\x58\xa9\xcb\xfc\x6d\xa0\x03\x3d\x09\xd6\x42\x2d\x6d\x4b\xf5\x9e\x12\xf5\x57\x74\xfd\x75\x08\x41\x8c\xb8\x91\x2d\x46\xc1\xd5\xa9\x5f\x85\x10\x5a\x61\x67\xf7\xa2\x17\xdd\xdf\x41\x22\x76\x36\xab\x37\x0f\xeb\xce\x2d\x1d\x77\xa7\xea\xd0\x84\x56\xed\x18\xbd\x00\xcb\x2a\x62\x39\x3d\x26\x29\xd3\xd0\x08\xb0\x1a\x68\x2f\x22\xf3\xb8\x1e\x1d\x1a\x63\x15\x16\x84\xd6\x1d\xaf\xea\xd8\x74\x4d\x3d\xa9\x88\xd0\x34\x75\x0d\x1b\x77\x00\x5a\x8a\x19\x59\x82\xf1\xd4\x1d\x6e\x2f\x11\xe1\x86\x0f\xe8\xb8\x3f\x01\xd5\xeb\x88\x48\x82\x84\x58\xf2\xf2\x71\x57\xf6\x62\x0d\xdd\x03\x45\x54\x5a\x52\xd9\x32\xbf\x9c\x72\xd1\xff\xd5\xc5\xa2\xef\x00\x16\x16\xde\x47\x46\x11\x23\x0a\x79\xd3\xbc\x3c\xe9\x50\x06\xb9\x9b\x55\x11\x0b\x6c\xa4\x39\xce\x3a\x8d\x5d\xb9\x88\x45\x94\xf4\x60\x4e\x7c\xf1\xbf\x4d\x2e\x03\x1c\x8b\x5c\x88\x4a\xb0\xbd\x4a\x30\x5f\x2c\xd5\x51\x68\x04\xca\x0c\x74\xb3\x7e\xc0\x60\x37\xce\xb9\x4e\xee\x35\x0a\x29\xf5\x12\x1b\x99\xde\x98\x2d\x2a\x14\xfd\x76\x55\x44\x89\x22\x1e\xf8\x06\x32\xab\xc7\xec\x30\xbc\xf5\xcd\x87\x17\x34\x1e\xce\xd7\x28\xe2\xb6\x07\xf9\xbf\x17\xa8\x3e\x50\x09\xda\x1d\x88\x59\x80\x3e\xf2\xe2\xf1\xe1\xcd\x99\x78\x7f\xa4\x5d\x6d\xbe\xa9\x03\x9b\xe9\xd7\x85\x29\xbb\xe8\x74\x7c\xe3\x1c\x52\x74\xa6\xad\xb9\x5e\xe5\xd0\xf7\x29\xb4\x07\x01\x9d\xfc\x26\x3b\x41\xfe\x67\xb2\x17\x3a\x4a\x20\x66\xce\x46\xe3\x7b\x73\x73\x2a\xbb\xfa\x24\x22\x26\x41\xea\xfc\xef\x2b\x1e\x2f\x3c\x8c\xbd\x4a\xaf\x59\x9e\xdb\xd6\xc8\xc9\xf9\x8a\xc4\x88\x57\xe9\x0b\x76\x1d\x45\x70\x17\x42\xfa\x67\x50\x21\x41\x46\xc8\xd5\xfd\xfa\x8f\x31\x2c\x5e\x47\x2a\xb6\x28\xa0\xae\x96\x5a\xc0\xff\xb2\xda\xa3\x3d\xfd\x20\xc9\x90\x7a\x0f\x29\xd9\xcb\xcb\xf1\xe5\x2f\xf7\xb1\xb9\x0b\xe8\x80\x63\xe5\xef\x61\xf1\xc7\xe1\xf1\xf9\xe1\xb0\xf9\xbf\xfd\x61\xb4\x75\x47\x9a\x59\x51\x84\x63\x8f\x10\xb7\xe2\x7e\x7e\x00\x68\x6d\x98\xeb\x4f\xca\x3f\x66\x60\x62\x3a\x32\x01\x10\xd6\x11\xed\xf8\xdd\xc8\xe6\xc5\x3e\x61\xb4\x1d\x45\xf2\x91\xe1\x34\x8a\xfd\x3a\xd9\x42\x53\x65\xf0\xd6\x99\x39\x8b\x31\xf5\xc5\x80\xc8\xb8\xce\xf4\x53\x56\x74\x22\x2b\xa0\xbf\xa6\xca\xb1\xa7\xc6\x84\x04\x88\xfc\xb6\x3c\xee\xfb\xf5\x6a\xeb\xaf\x1a\x13\x12\x62\x07\x7d\x73\x86\xee\x4f\x3c\xc2\x2f\xd4\x2e\xdd\xf3\x50\x63\x5c\xc7\x24\x95\x18\xb5\xdc\x42\xfe\x7b\xe9\x95\xd5\x97\xa2\xd0\xd8\xdf\xf8\xdb\xe4\x57\x21\x10\x89\xc7\x83\xd8\x52\xf0\x72\xc0\xfb\xa7\xe3\x80\x31\x11\x8f\xf5\x07\xeb\x3e\x39\xef\x07\x25\x56\x92\x14\xd3\xd5\x1d\x93\xf4\x34\xb1\x11\x07\xa9\xc6\xaa\x46\x9d\xb9\xa2\xc7\x53\x55\x1e\x2b\x71\x1a\x47\x4f\x71\x20\x38\x8d\xba\x76\xd6\xec\x74\x39\xd9\x2c\x75\x56\x1c\xaf\x4a\x54\x31\x8d\x2d\xd8\xad\x86\x3c\xff\xf1\xf3\xfb\xe2\x28\xb2\xa2\x6e\x66\xec\x5d\x4c\xb9\xed\x98\xc4\x98\xeb\xc7\x8f\xa1\xe1\x8d\x59\x94\x28\x57\x75\x7f\xaa\x32\x95\x15\xc7\x5d\x53\x89\x06\x8e\x9f\xf6\x3b\x7c\x3d\xb7\x63\x16\xa7\x7e\xd3\x74\x2a\x62\xb3\x5e\x61\xcc\xb8\x41\xe7\x74\xbf\x5a\x3c\x74\xdf\x9b\x99\xd8\xab\xd8\xdc\xdf\xff\x6e\xb1\xd2\x91\x3f\x18\x46\x41\xca\x3a\x09\x16\xcb\x25\x34\xf2\x3b\xfd\x38\x50\xca\xa6\xa2\xef\xca\xea\x5d\xf4\x02\xeb\x3a\x8e\x02\x8d\x2b\xb7\x17\x13\xff\x3a\x56\x8a\xa3\x88\xa0\x4f\xea\xea\x47\x56\xfc\x6b\x6e\xa3\x88\x63\xce\x4c\x34\xa4\xc1\xdd\x18\x9b\xa6\xe9\xbe\x6e\x9c\x26\x56\x95\xab\x8d\xb8\x67\x7f\x37\x99\xfc\x3a\xd7\x32\xf1\x56\xe0\xa5\xdf\x3f\xfa\x01\x49\x1c\x10\xd7\xed\x84\x1f\xfe\xa6\xe3\x77\xd0\x71\x92\x70\xcc\x82\xfd\xf7\x02\x80\xcd\x28\x4d\x76\xec\xe6\x6d\x22\x42\x6a\x3d\xdb\xe6\x52\x15\xa7\xb2\x80\x0f\xe5\x64\x74\xfb\x1b\xf1\x88\x17\x1d\x27\x10\xa2\x79\xbd\x83\xac\x01\x99\x8d\x03\xd6\xa1\x4f\x35\x72\xad\xe2\xc4\x30\xcc\x06\x40\xf3\xf2\xd1\x3e\xb5\xff\xf5\xd4\x30\xaf\x58\x61\x63\xb8\x61\x42\x3d\x16\x42\x53\x1b\x33\x69\xf8\x75\xb5\x94\x24\xb7\xf4\xa4\xb5\x30\x30\x50\x47\xf3\x47\x45\x18\xa5\xce\x0c\x2d\x45\x35\xce\xff\x27\xff\x0a\x1c\x07\x83\x8e\xa5\x0c\x63\xe5\xa7\xa9\x1c\xed\xb0\xb1\xd6\xb6\x30\x62\x05\x94\x2d\x7d\x2b\xee\x07\xde\xc3\x89\x21\x90\x91\x8d\xcf\xda\xe5\x79\x03\x45\x76\x2c\x26\xf7\x09\x4c\x7a\x02\xa5\xc7\xbb\xfd\x57\xdd\x1a\x3a\x06\x65\x15\x65\x7a\x60\xeb\x2d\x34\x22\xcb\xeb\x61\xde\x26\x06\x03\x48\x9c\x76\x9b\xd5\x6a\x10\xcf\xc4\x26\xb4\x55\x33\x2c\x40\xbc\x95\xd7\x2e\x51\x6c\x22\x8a\xd8\xc7\x65\x79\x39\x97\x85\xf7\xb1\xbc\x5f\x47\x7b\x4f\x92\x4f\x60\x98\x83\x63\xdd\xa5\x2c\xa5\x9d\x83\x6c\x41\x97\x0b\x18\xef\x1d\x9c\x24\x01\x73\xb2\x00\x7b\xa8\x4e\x35\x16\x88\x0b\x5b\xe2\x1c\x21\xee\x34\x27\x32\x44\x06\xa5\xef\x1d\x25\xc1\xe8\xee\x39\x31\x21\x56\xcd\x54\xd6\x64\x30\x14\x9b\xd2\x3c\x90\x11\x76\x01\x61\x13\x28\xa8\x17\x51\x64\xf5\x3c\x3e\x5c\x73\x4a\x08\xd6\x54\xaa\xd6\x28\x25\xe3\x16\x20\xcd\x29\x23\x03\x4c\xd7\x4c\xdb\x9a\xe6\x54\x04\xc8\x34\xb8\x2f\xab\x4b\xbd\x1c\x06\x17\xe3\xfb\xa5\x60\x0b\x59\x96\x9f\xb5\x7d\xde\xa1\x3e\x81\xe6\x2c\x8a\xd1\xf2\x39\x0d\x90\xc7\xee\xef\x69\x88\x91\xf5\xba\x40\xae\x9d\x8b\xc8\x3b\x49\x4b\x37\xc2\x2b\x47\x2e\x4b\x2f\x88\xaa\x79\xc8\x6d\xe1\xad\xaa\xc5\xef\x96\x5b\x72\x40\xfd\x3a\x03\x49\xd7\x3c\x14\x01\x52\x90\xaf\xf6\xdf\x0f\xb6\xff\xdc\xa2\x58\xfc\x15\xa3\x98\x28\x31\xf2\xa5\xbc\x74\xc6\x8d\xa8\x41\x6f\x0a\x4c\x81\xce\x4f\x65\x1e\xc9\x04\xdb\x85\x3a\x7f\x19\x71\x2a\xcb\x2b\xc6\x44\xcd\xe3\x20\xb0\xea\x9e\x1d\xd3\xac\x75\x2c\xc6\x3e\x83\x1f\x1c\x02\xf6\x04\x36\x53\x8d\xe2\xc9\x5d\x5c\xf5\xca\x7c\xa5\x91\xab\x39\x4f\x49\xa4\xfc\x6c\xce\xcb\xea\x01\x1a\x81\x22\x63\x73\x01\x39\x4f\x88\x55\xa4\x6e\xcd\x71\x66\xc9\x42\x87\xdc\xef\x9a\x27\x54\x63\x5f\x80\x6d\x03\x77\x7f\x4c\x09\x13\x6e\x4f\xdb\x83\x38\xdd\x55\xe5\xe9\x1e\x84\x86\x4a\x96\xbe\x33\x70\xd4\xe0\xdc\x9e\x91\x62\xa8\xfe\x0a\x1f\xeb\x93\x38\xc2\x73\x0d\xda\x81\x74\xfc\xc3\x79\xd0\x16\x4f\x5d\x5d\xf7\xd8\x46\xf2\xc8\xf9\xe7\x0f\x30\x85\x75\x0c\xd9\x1c\xbb\x3f\x29\x8a\x19\x0a\xff\xa6\x11\xec\xe0\x8e\x89\x40\x62\x1f\xa1\x29\x2b\x99\xe9\x5b\x38\xe7\xe5\xc7\xe4\x1b\x08\x19\x60\x2b\x83\x7a\xc9\x2e\x3a\x3b\xbc\x95\x8d\xf8\x5f\x56\x16\x59\x77\x09\x65\x03\xaf\xbd\xe7\xf7\xef\x0e\x18\x96\x58\xd2\xc2\xae\xa3\xf4\x06\x9a\x77\x80\xc2\x92\xc6\xb9\x61\x8a\x70\xec\x1a\xf1\x3a\x37\x6d\x94\x9c\x15\xc7\x39\x7c\xb5\xe6\x2a\xb4\xb4\x9d\x2a\x93\x50\xdd\x97\x4d\x03\x55\xf7\xc6\x95\x30\x18\x51\xe5\xe5\x87\xc8\x9b\x8f\x8e\x16\x41\x73\xcd\xd3\x30\xe9\xb5\x51\x4c\x59\x9d\x40\xbb\xb6\x38\x8f\x1a\xe3\x10\x48\xe4\xd7\x35\x13\x82\x78\xcd\x4d\x1c\x04\x7d\xbb\x95\x2f\xdf\x8d\xe6\x88\x51\x16\x42\xe1\xc4\x30\x87\x71\x03\x37\x10\x20\x9f\x2f\xe2\xb7\xc6\x80\xf0\x41\x6a\x98\x1b\x90\xac\x17\x77\xf8\x59\x16\x1a\xae\xe5\x5e\x35\x37\x46\xcb\xc4\x09\x64\x55\x7a\xf7\x51\x37\x70\xb2\x0c\xa7\x33\x51\x5d\x42\xa2\x08\x1b\x18\xac\x37\x7b\xb3\xd9\xdf\x64\xd8\x2c\x34\x24\x95\xfb\xdb\xac\x62\xef\x1c\xed\xbd\x4e\x48\xca\x7d\x59\xfe\x9f\x20\xaa\xb5\xf6\x79\xa2\x24\x20\xb6\x52\x9a\x77\xdc\x3f\xe3\x4e\x3d\x3f\x2c\xb0\x1d\x5a\x58\x35\x3e\x57\xf0\x56\x5e\xc9\x22\xea\x24\xa0\xc0\x7b\x8d\x29\xd4\x7a\x9c\x7a\x9f\x56\xbe\xc4\x8f\x0f\x35\x56\x0e\xbe\x89\x13\xfc\x31\x9c\x83\x09\x8d\x6c\x4d\x41\x89\x02\x51\x2a\x9f\xd2\xea\x8c\x1f\x93\xa6\x04\xd1\x26\x0f\x50\xbe\x0f\xf6\xdc\x84\x8a\x28\xb5\x54\x90\xe8\x93\xbb\x84\xc0\x80\x62\x48\x27\x2c\x0d\x22\xe8\xa6\x73\xdf\x3f\x3d\x61\x2e\xf6\xa3\xb5\x20\x5e\x22\xa9\x53\x1d\x1b\xdf\x0b\x33\x16\xc1\xfe\x8f\x0b\x5c\x30\xf1\xfa\x20\x3e\x6e\xc0\x29\x23\x7f\xdc\x56\x65\x01\xcb\xb2\x29\xaa\xd2\x7b\x43\x49\x48\x6d\x0a\xaa\xca\x94\xa8\x74\x26\x8a\xdf\xcb\x8b\x7a\xe9\xdc\xe1\x24\x0a\x03\x5c\x0e\x56\x53\xb2\x63\x46\x1f\xff\x6c\x24\x03\xc1\x5d\xb9\xc8\x61\x9d\x27\x23\xe2\x98\x69\xd7\x19\x71\x73\x41\x45\x3d\x34\x44\xe3\x07\x8c\x21\x4c\xb5\x8f\x94\x0e\x59\xed\xf2\x2e\x93\x51\x9c\x86\xd8\x8b\xf6\xf4\x63\xec\xb9\x8d\xbd\x8b\x84\x87\xc2\x4a\x71\xe5\x36\xcc\xcc\x4e\x70\x57\x56\x36\xb4\x1a\xb2\x11\xe9\x84\x1b\x8a\xc1\xc0\xe2\xf6\x8f\xa1\x55\x4e\x12\x6a\xf9\x72\x2b\xf1\xbe\x73\x82\x2d\xb3\x8d\x33\x3a\x49\x45\x8a\x0d\x76\x80\x70\xe5\xf5\xe9\x2c\xb2\xaa\x23\xf5\x9f\xb0\xed\xf4\xab\x38\x49\x75\x80\x15\x85\xfd\xf7\xf5\xf6\x76\xa4\xa9\xa8\x13\xa1\x12\xac\x45\x2a\x71\xbe\x15\x1f\xb4\xff\xb3\x0a\x1d\x4b\xce\x04\x8c\xe0\x07\x00\x0d\x9d\x9f\x88\x31\x36\x98\x66\x5d\xfc\xc3\xa7\x0c\x13\x49\x52\x74\xab\x57\x8f\x37\xa3\xb9\x2f\x65\x8c\x61\xc4\x40\xf0\x10\xb9\xde\xc6\x17\x97\xca\xc4\xba\x4f\x76\xdb\x2e\x68\x9c\x10\x03\x13\x98\x48\xa0\xe8\x6c\x76\x69\x4f\xfb\x4b\x5f\x99\x0a\x15\x1b\x08\x31\x6e\xfb\x35\xdb\xdd\x35\x59\x09\x3a\xb4\xdd\x6d\x0f\xe5\xc7\xe6\xdc\x06\xd5\x75\x5f\x27\xb2\x43\xda\x35\x19\x78\xa8\xf8\xa5\x29\x8d\x99\xa4\x3e\x52\x12\x52\x4c\x29\x6c\x9e\xf6\xcb\xe1\xab\x48\x49\xac\x30\x60\x72\x16\x3c\x2f\x0b\xf8\x6d\xde\xdc\x4d\x6c\xe1\xe4\xfa\xb1\xe5\xda\x38\xfb\xbc\x8a\xc7\xcf\x06\xff\x8a\x7d\x88\x91\x92\xd4\x66\x2a\x32\x55\x7e\x2b\xbb\x10\x25\x25\x22\xb6\x8c\xe9\x79\x5e\xbe\x5b\xe2\xd3\x1c\x4b\x8e\xa3\x89\x9b\x06\x41\x9a\x72\x47\xd8\xfd\xd9\x1b\xfb\x92\x6f\xbe\xbf\xdb\x80\x31\xcc\x15\xdd\x6f\x96\x36\xf8\x5f\x6e\xd6\x8f\xdd\xef\xc4\x89\x48\x7d\x17\x91\x99\xbc\xc7\x80\x73\x9c\xfb\xf7\xe5\xf1\xa1\x7c\x83\x07\xa1\x61\x12\xf6\x5d\xfd\xb7\x3b\x93\x52\x11\x5a\x9b\x50\xf5\xa5\xca\x94\x32\x91\xfa\x0f\x07\x45\x53\xcf\x11\x7a\xf8\xa1\x11\x47\x4c\xed\xf9\xad\x39\x9c\xf3\x53\x73\xe8\x6a\x61\x87\xac\x38\x74\xd2\x4a\x3a\x65\x24\xc4\x6c\xf3\x29\x2b\xfa\xe6\x54\x0b\xc1\xf2\x23\x28\xc3\x36\x3a\x29\x8a\x57\xa8\x56\x8e\x88\xd1\x1f\x4c\x19\xaa\x91\x65\x45\x2f\x36\x3a\x17\xcc\xa6\x4c\x6a\x39\x94\xe1\x6b\x0f\x22\xcc\x7f\x34\x7d\xd3\x50\x25\xe8\x8f\x9f\xab\x0c\x43\xf2\x49\xb6\x3f\x8d\x12\x8b\x15\xce\x6a\x64\x8c\x7d\xbc\x20\x6f\xab\x9b\x3d\x6e\x0c\x17\x04\xd3\x5e\xe2\xd2\x94\x5d\x52\xe9\x6e\xc2\xab\xae\x53\xae\xe2\xc0\xc1\x1b\x5b\xf7\x6f\x42\x82\xa0\x53\xae\x19\xe2\xee\x8f\xd9\x1b\xd8\x96\x48\x7f\x24\xa5\x0c\xb3\x3e\xa2\x3e\xfd\x25\xa9\x31\x9d\xa6\x61\x84\xf8\x74\x17\xb4\x20\x93\xf9\xa4\xfe\x90\xa6\x82\xa3\x16\x4b\xd3\x4b\x19\x8e\xc2\xb5\x34\x55\x04\x05\x30\x9e\x77\xb7\xfb\xe7\x9b\xd5\x08\x14\x91\xa6\x2a\x1e\x0a\x0f\x2e\x45\x35\xec\xb1\xf7\xf3\x4a\x84\x10\x8f\x39\x97\xae\x33\x9f\xa9\x0c\xad\x54\xd9\x80\x1d\x2b\x83\x5c\xbb\x94\xf0\xa2\xd0\x7b\x84\x48\xf9\x5f\x96\x09\xc7\xec\xc6\x20\x3b\xed\x8f\x80\x55\x19\xed\x28\xfb\x3e\x11\xd2\xd3\xa9\x34\x04\xef\xfe\x60\xcb\x91\x8e\xc9\xf8\x2a\xe0\xef\xde\x95\x34\x0c\xab\x97\xa7\x6c\x90\x86\x1d\x5d\x11\x68\x40\x89\x9b\x98\x4f\xa2\x12\x7f\x9a\x8f\xfb\x32\xcb\x9a\x42\x64\xa4\x63\x18\x6d\xa7\xff\xae\x11\xaf\x83\x32\xda\x78\x62\x41\x62\xf5\x35\x76\x2f\x1d\xa7\x85\x4e\x4d\x40\x11\x39\x9c\xd5\xff\x84\xd6\x74\x75\x7f\x8f\x13\xcc\x12\xb7\x9e\x8b\x4b\x2d\x74\x49\xca\xd4\xb4\x2f\xd7\x96\xca\xce\x57\x9d\xaf\x5a\x10\xc2\xb1\x92\xb6\xf8\xd1\x06\x0d\xb8\x5e\x82\x3f\xf3\xcc\xe6\x9f\x4f\x10\x16\x62\xbc\x93\x5f\xd4\xeb\xc7\x0e\xde\x50\x4e\xc1\x5b\x53\x41\x12\xab\xca\x65\x01\x8e\x53\x3f\x53\x10\x15\x07\xda\x97\x9e\x7b\xf9\xf1\xf1\x20\xca\xac\x68\xec\x11\x0a\xa8\xb3\x21\x5d\xb6\x16\x34\x66\xe0\xd5\xa8\x3b\x9d\x7a\x2d\x28\x17\x58\x8d\x44\xb2\xb8\x5d\xd6\x0c\x5c\xf3\x49\xae\x4f\x84\x29\x60\x51\xaa\xa9\x40\xd4\x97\xaa\x9b\x83\x22\x4e\x8d\xe8\x34\x20\xc6\xc8\x0b\xc1\x63\xc0\xa2\xa8\x83\x82\x7d\xcb\xcc\x28\xf2\x12\x3c\x89\x10\xd7\x09\xaa\xb4\x01\xc2\x28\x13\x21\xb8\xe3\x7d\x50\xe5\xe9\x9c\x67\xb8\x36\x46\x09\x69\x91\x90\xd0\x86\x22\x87\x87\xa1\x75\xed\x0e\xc7\xca\xda\x32\x07\x30\xd8\xc2\x5b\xf9\x0a\x4b\xa8\x26\x5d\x3b\xfd\x3e\xe5\xd5\x7c\xfa\xe7\x4e\xa9\xc6\xa6\x96\x55\x55\x95\xd5\x43\x7d\x1c\x3f\x60\xea\x78\x68\xb1\x88\xfa\xcd\xbe\xf8\x2d\xa8\xec\x9c\x41\x9f\xaa\x17\xa9\xb0\x90\xd1\x9f\x1f\xff\x2b\x0b\xdb\x3c\xe6\x0f\xb5\x5f\x06\x4d\xce\x39\x2f\x85\x7e\xde\xde\xcf\x86\xf6\x42\xa4\xa1\x86\x1e\xa3\xa0\xf5\x44\x76\xc9\x0f\x53\x26\x18\xea\xe4\xa2\x57\x6f\x99\x2c\xc7\x73\x45\x06\x5d\x46\xcf\x59\x20\xe7\xd1\x8d\xe8\x29\xe7\x6d\xad\x90\x51\x8c\xa4\xcc\x07\x07\xa7\x19\xd6\x3a\xbb\xb0\xa7\xf3\x34\x85\x22\xc4\x7e\xc5\xcb\x79\xdc\x82\xaa\x85\x62\xc2\x53\x77\x1f\xa0\x99\x40\x9f\x84\x4a\xed\x32\xaf\xa1\x59\x34\x2e\xd5\x33\x12\xc6\x9f\xd5\x31\xd2\x42\x49\x50\xae\x62\x09\xcd\xcb\x24\x32\x17\x4a\xdb\xce\x67\xcc\xa9\xf8\x4e\xb0\xf1\x05\x34\x0f\xfc\x72\xbb\xcb\x0a\xdf\x03\x39\xf4\xf4\x30\xd4\x1b\x3f\x8b\x06\x8a\x21\x57\x1b\x62\x94\x65\xdd\xf4\x2b\x04\x98\xc4\xf4\xe6\xb9\x2a\x4b\xb3\x31\xbb\x0e\x93\x2b\x20\xb1\xcd\xb4\x99\xa7\xcb\x59\x17\x37\xb9\x50\xaf\xe8\xfe\xce\x34\xf5\x6a\x01\x9a\xb1\x60\xac\x9e\x6a\xb9\xed\x27\x8f\x00\x9a\x73\x0f\xaf\x5c\x96\x85\x12\x8d\x83\x8f\x33\x6a\x19\x0a\xdd\x38\x13\x44\xc8\x6a\x21\xa4\x3a\xb4\x96\x7c\x44\x1f\xa7\x85\xa1\x14\xed\xc6\x29\x2b\x2e\x4d\x97\x20\x97\x24\x24\x98\x01\xc2\x52\xc1\xef\x59\xd5\x5c\x44\xee\x63\xaf\xd9\x3e\x38\xc9\x02\x8d\xc5\x05\x27\x3b\x3d\xf2\xca\x71\x64\x34\xef\xdf\xfe\x05\x6f\x57\xb2\x88\x7b\x8a\xb4\xdf\x91\x65\xe5\xae\xac\x96\xd7\xf0\x6a\xc9\x52\x85\xd5\x9b\x4b\x6d\x91\x6f\x98\xd0\x15\x03\x4a\x75\x37\x2e\x24\x96\x16\xa5\xbc\x34\x75\x23\x10\xe7\x33\x97\xf4\x93\x21\x67\xd2\xea\xd0\xd6\xd0\x3c\x7c\x0c\xd2\x55\x32\xd4\x56\x23\xc1\x82\x2b\x8e\x3e\xc5\x25\x23\x41\xd0\x9a\x54\xe0\x12\x30\xee\xef\x5c\x92\x38\xea\x52\xfa\xb7\xa2\x11\x96\x2d\xa1\x3b\xae\xad\xa1\xdb\xaf\x96\x5f\x39\x81\x32\x61\x1c\xbf\xd7\x37\x5f\xac\xcf\x33\xf5\xda\x7d\xb6\x24\x65\x88\xc9\x7f\x12\xd5\xeb\x72\x06\x7d\x32\xba\x54\x1a\x58\x8e\x64\x25\xce\x23\x72\x32\x2d\xd3\x24\x56\xed\x9c\x79\xcc\x4a\x99\x5d\x4e\x43\x8b\x2e\x85\x8c\xb0\xcc\xf4\xf4\x7c\x73\xbf\x5e\x22\xf2\x6b\xf5\x78\xbb\x5f\x3f\xac\x76\xfb\xc5\xc3\x53\x37\xcc\x70\x4c\x8c\x7b\xcb\xec\xf9\x73\x3f\xa9\x40\x48\x19\xc4\xc6\xad\xc8\x55\xf3\x32\xa7\x37\xac\xa5\x8c\x04\xe6\xc5\xdc\x44\x7c\x84\xf7\x69\xab\xd1\x97\x1e\x88\x94\xa9\x41\xd4\xeb\xf3\xe3\xdf\x9f\x77\xfb\xf9\x90\xf1\x6f\xd7\xf6\x4d\x2a\xd7\x22\x75\x80\xa2\xdd\x18\x1f\xe1\x1d\xd7\xa3\x3f\x1a\x92\xbe\xa7\xc6\x95\x7a\x7b\x26\x73\x2d\x55\x1c\x61\xc1\xc2\x26\xbe\xaa\xf1\x06\x27\x55\xca\x50\x08\xef\x26\x87\xba\xce\x8a\xa3\x65\x3f\xc9\xed\x66\xe8\x07\x61\x0b\x48\x07\xd7\x6d\x3f\xec\xf0\x6b\xe9\x44\xeb\xa4\xcb\xf8\xad\xdd\x0b\x9f\x77\x13\xa5\x4e\x23\x0c\xb2\xcb\x76\xf6\x65\xff\x83\x03\xa2\x38\xa6\xf3\x04\x97\xcb\xb4\xcd\x41\xb6\xfb\x1c\xb7\x41\x27\x14\x8d\xa3\x63\x1f\x7f\x46\xad\x02\x74\xb0\x25\x06\xf9\xf5\xb5\x0c\xbc\x96\x86\x70\x5c\x09\x2f\x9d\x85\x75\x30\x9b\xb4\xe3\xdc\x1c\xf3\x4e\x05\xdd\x99\x01\xb7\x59\x8b\xf2\x74\xbe\x34\x80\x96\x1b\xdd\xc8\xf1\x2f\x28\xc2\x83\x4e\x55\x6d\x48\xca\x3c\x0c\x05\x54\x90\x32\xf4\x97\x5b\xfb\xc9\xee\xb0\xd6\xe5\x8e\x50\x42\xb1\xad\xd0\x8a\x0c\xcf\xb6\x08\x2b\x1a\x12\x74\x3c\x6c\xf9\xf2\x01\x09\x18\x1e\x4b\x0d\x9f\x40\x10\x15\xe5\xd4\xc0\x40\xe1\xe5\xf7\x32\xbf\x9c\x40\x8a\x1a\xac\x66\xfb\x16\x65\x83\x2a\x24\x09\x66\x93\xc7\xa1\x29\x45\xb8\x48\xf3\x79\x7b\x9f\x62\x91\x7d\xef\xf7\xe5\xf1\xe6\xf2\x29\xbd\x86\x1f\xcc\x55\x62\x3b\xcc\xd4\xa5\xca\x9a\x8f\xe5\x0b\xa8\xd7\xe7\xed\xda\xbf\x00\xa6\xff\x1f\x6b\x6f\xd6\xdb\x38\xae\xed\x8f\x7e\x97\xfb\x54\x17\xd8\x0f\x9a\x28\x8a\x8f\x9e\x92\xf2\xe9\x0c\xee\xd8\xa9\xea\x7d\x36\x0e\x0c\x0e\x8b\x8e\x76\x64\xc9\x5b\x92\x93\x72\x03\xf7\xbb\x5f\x68\x91\xd4\x64\xb9\xaa\xce\x1f\xff\x97\xee\x42\x44\xcb\x96\x44\x91\x6b\xf8\x0d\x89\xa2\x56\xbb\x6d\xc7\xab\xf7\xb5\x0b\x27\x65\xe4\x45\x08\xa4\x3d\xf2\x1f\x38\xcf\xa0\xc2\x58\x7e\xdf\x1e\xa7\xc6\x40\x9b\x2b\xf5\x02\x72\x57\x60\xa5\xf0\xc6\x2d\x89\x12\x8a\xb3\xe9\x0e\x9d\x7f\x4d\x7a\xf3\x73\x31\x40\x25\x23\x11\x86\x49\xdf\xa8\x1a\xc1\xc3\x55\x9f\x35\x33\x56\x0c\x51\x32\x92\xa1\xa9\xb4\x59\x49\xa3\xa1\x15\xb7\x92\x44\xe8\xc0\xd4\x78\x91\x39\xb4\x2b\x8c\x93\xa3\x3d\x1a\xfb\x0a\xe1\xd9\xb2\x18\xd9\xcb\x29\x19\x87\x12\x9b\x37\xfc\x54\x16\x82\x97\x8f\x90\x57\xfc\xdf\xe3\xfa\xc4\xe0\xa7\xc4\x44\x1a\x19\x99\x9a\xbf\x23\xff\x74\x64\x46\xaa\x64\xcc\x02\x66\xec\x79\xd5\xbf\xcf\x55\x6d\x33\xd4\xe9\xbb\x91\x30\x4d\x4d\x6c\xba\x29\x3e\xa1\x7c\xd6\xa8\xe6\xfe\x95\x67\x1f\x63\x4c\xa5\x64\xb1\x11\x8c\xfa\xf7\x92\x67\xd9\xa5\x57\x48\x96\x2c\x31\xcc\xab\x2e\x50\xc4\xcb\x7f\x41\x76\x0e\x26\x92\x19\x6a\xfa\xb4\xcb\xa1\x64\xcc\x8b\xa3\x81\x21\xfd\x53\x51\xf3\x91\xaa\x98\x92\x4c\x79\xc8\xa5\xd9\x41\x06\x87\xd2\x89\xde\x2a\xc9\x80\x62\x45\x7b\x5f\x7c\xe6\xd7\x30\x51\x29\x62\xcf\x54\xa7\xb0\x74\x3f\x50\x9d\x56\x52\x50\x62\xec\x2f\x8a\xbc\x2e\xcf\x18\x2f\x36\x5b\x69\xbf\x4b\x2d\x85\xf2\xd0\xf4\x6f\x6f\x42\xe9\xc7\x34\x77\xd3\xc3\x65\xf2\xff\xe8\x77\x5b\xa4\x23\xa4\xde\xf3\x1a\x3e\xf9\xc5\xd0\xe1\x4c\xb7\x4b\xf5\x2f\x5b\xc6\x02\x42\x97\x4a\x81\x9a\x90\x47\x51\x52\xea\xc8\x94\xdc\xcd\x0a\xb5\xe8\xd9\x6c\xae\x8f\xa7\xac\xdf\x6b\x6b\xbf\x5f\x79\xdc\x37\x99\xe1\x0b\x02\x06\xab\xa1\x2c\x85\x54\x71\x84\x25\xab\x55\xfd\x36\xcb\x5b\x8e\x91\x54\x49\xcc\x85\x13\xd6\xa9\x47\x71\xb7\x04\xaa\xf1\x87\xfc\x97\x35\x9e\x3b\x41\xfe\x0b\x3f\x1a\x25\x21\x31\x7e\x1c\xd8\x10\x69\x42\xa7\x2b\x2b\x87\xdf\xcb\x84\x25\x30\x12\x1b\x19\x96\xba\x99\x3f\x39\x58\x63\xef\xae\xc9\xff\xaf\x7e\xc7\xdf\x95\x24\x24\xf0\x10\x4b\x76\x3a\xfd\x61\x90\x2b\x8f\xa9\x52\x19\xe4\xbc\xe7\x5a\x32\x78\x9d\x9a\x18\xb8\x99\x0e\x7f\x14\x7f\xff\xbd\x29\x8b\x7f\x83\x1c\x64\x9f\x52\xfb\x46\xab\x78\xfb\xbc\xec\x55\x1c\xa5\x8e\xb5\xd3\x2e\xdf\x15\x27\xdb\x45\x1b\xd1\x8d\xcd\x50\xe5\x05\x0c\x09\x69\x4e\x4b\x55\xa9\x5f\x51\x3a\x95\x97\x98\x42\x8c\x93\xa0\xdf\xf6\xa1\xb9\x83\xe9\xa2\xfc\x40\xe2\x53\xba\x01\xff\x56\x3e\x8f\xb0\x45\xd5\x7a\xc5\x34\x4f\xa6\x6f\x88\x3b\x94\x41\xb7\x9f\x0a\x22\x02\xd0\x13\x18\x79\x48\xf3\x77\x8b\xe6\xfa\xe2\x86\x68\x53\x4a\x69\xc2\xb6\xfd\xe3\xeb\xc3\x6e\xbd\x79\x58\xaf\x5e\xdc\xe1\x90\x27\xd4\x20\x3c\xd3\x16\xce\xa3\x42\xae\xb1\x54\x82\x72\xc9\x25\x57\x57\xeb\xfa\xaf\x66\xc7\xb0\x91\x32\x4c\x1f\x54\x28\x7d\xee\x0f\x7a\xfe\x3b\x8b\xf0\xfc\x3d\x10\x9f\x0a\x21\xc4\x92\x9b\xf5\x30\x9e\xec\x5f\xa8\x10\x8c\x1f\x95\x51\xf6\xd8\x00\x94\x2f\xf0\x91\x82\xdb\x0a\x54\x14\x40\xd0\xca\x54\x3e\xef\xe6\x57\xb1\xf8\xf5\x9a\xae\x22\xad\x8c\xac\x24\xe4\x3c\xab\x2f\xcb\xb4\x12\xe7\xb2\x1a\xc9\xcb\x2a\x45\x92\x00\x6f\xdf\x91\x57\xd5\x86\x5f\x6e\x71\x49\x55\xcc\x9d\x10\x37\x57\xd8\x91\x6c\xcf\x10\x2b\x8d\x9b\xc7\xf1\x9c\x05\x56\xfb\x70\x74\x79\x54\x25\x56\xb0\x41\x66\x69\x7e\x03\x21\xa1\x92\x38\x71\x28\x82\x5d\xc9\x9b\xec\x61\xfa\x8e\x26\x9c\x86\xa1\xbb\x19\xcd\x96\xe1\x8a\xe5\x6e\x39\x56\x09\x28\x5c\x31\xe6\x68\x5d\x2d\xe1\x5a\xbf\x72\x72\xa5\x51\x2c\xe6\xe0\x02\xb9\x66\xd3\xec\x91\x71\x8a\x6b\x3d\x56\xfb\x21\x1e\xaa\xc4\x42\x79\xbf\xa5\x12\x4e\x25\x54\xa9\x82\xbc\x86\x25\x3c\x42\xc5\xaf\xa8\x0c\x37\xce\xa2\x4d\x2c\x8f\x1d\xac\xd3\x09\x4a\x9b\x6a\xf0\xc3\x0d\x9a\x87\x12\x91\xa1\x57\x1b\xc2\xd8\x4f\xfa\x4c\x4a\x50\x40\x69\x95\x23\x37\x01\x3a\x6e\xef\xe3\xad\x58\x09\x29\xb9\xd1\x6e\x3c\x57\xb0\x77\xb4\x22\x25\x23\x63\x5d\x79\x00\x64\xe2\xa8\x59\x55\x41\x3d\xb0\xf6\x57\x4a\x12\x82\xfc\x8d\x79\x5a\x7f\xe5\xe7\x76\x62\x34\x5b\x9e\x63\x1f\xce\x2f\x0b\x0b\xa3\x9b\xbe\xf5\x52\x9a\x8e\x6b\x5a\x0f\x54\x4b\x94\x12\x21\x16\xf9\x66\xf5\x1b\xe4\x0e\x32\xaf\xb4\xa7\x91\xc3\x06\xf5\x1b\xfa\x9a\xaa\xf6\x80\x1f\x8b\x26\x78\x5b\x3f\xed\x56\x2f\x77\xb3\xc5\x6a\xbf\x5d\xdf\x3f\xcd\x76\xaf\x2f\xab\xfd\xea\x65\x41\x03\xbf\x1d\x19\x01\x06\xe3\xfb\x13\x97\xef\x8b\xe2\x28\xd2\x1c\x14\x8a\xef\x56\x3d\x7d\xd5\x5b\xff\x73\x27\x01\x49\xdb\x96\xd5\xad\x86\x81\x19\x0b\x5e\x44\xd0\xc0\xfa\xeb\xf3\xf2\x81\x0f\xde\x41\xf0\x68\xe0\xdb\xf9\xda\x43\xa7\x83\x47\x0d\x3a\x5d\x18\x02\xbd\x69\x19\xec\xdb\xa3\x3c\x8e\x54\x0b\xd6\x4f\x73\x0b\xd7\x3f\x19\x0d\x29\x37\xca\x0f\x68\xdc\x69\x9a\xb5\x4e\xf4\xc3\x9f\xe6\x53\xf3\x46\x29\x38\xa6\x15\x2c\x56\xcf\xe3\xe3\x00\x91\xe1\x05\xa8\x19\x1a\x46\x99\x76\x78\xdf\x9c\x78\xf8\x81\xc0\x13\x08\x22\xac\xd3\x53\x37\x8f\xad\xf0\x80\x1d\x12\x46\x0a\x25\x96\x9d\xef\xd5\x34\x7e\xc1\xad\xc3\x10\x4a\x23\x13\xf3\x74\x96\x19\x9c\xab\x6f\xa9\x11\x54\x2a\xfb\x66\x0e\x0a\xa2\xc8\x13\xc2\xa9\xdb\x5e\x8a\x73\x8d\x5d\xa4\x66\x3e\x55\x03\x9f\x48\xb7\xb5\x43\x44\xc2\xc8\xc4\x8c\x68\x63\x3c\xbd\x1f\x42\x14\x0b\x5c\xfb\xf6\x15\xd4\x7e\xfb\x5d\x22\xc4\xbe\xbd\xc9\x9f\xd1\xd0\xa8\x7d\xa0\x91\x62\xae\xa7\x30\x3b\xd7\x85\xa9\x6d\xda\x63\x44\x72\xaa\x2c\x10\x6c\x09\x1f\x43\xf7\x67\x37\x06\xfc\x00\x93\xc0\xfd\x2c\x57\x25\xb4\x9d\x70\x88\x43\xe3\xed\x69\x60\x97\xd6\x0e\xc1\x04\x25\x43\x8b\xf7\x21\x6c\x76\xbc\xee\xb9\xb3\x71\xd3\xb9\x3b\x35\x8b\x64\xcf\xc5\xea\xe7\x6b\x15\x50\x69\xac\x47\x9d\x2a\xdc\x5e\x20\xbe\x60\x74\xd3\x92\x90\xe3\x28\x4c\x0f\xab\xbb\xa2\xec\x1c\x26\x14\x30\xcf\xcc\xb8\x26\xb8\xc4\xae\x7a\x9a\x1f\x56\x95\xe4\x27\xd8\x15\xfd\x98\xb8\x7d\xfe\x2c\x4e\x90\xc5\xb5\x5e\x3c\xef\x97\xb3\x7f\x6e\xdb\x13\x31\xd3\x34\xb6\x9a\x7d\x65\xcf\x02\xdb\x8d\x10\x3c\x1a\x08\xe3\x0d\x2d\x5a\x86\x97\xc6\xa4\xd1\xc7\xfe\x7c\x4b\xe5\xdb\xe4\x5e\x0d\x0c\x88\x41\x5d\x36\xcf\xcf\xf5\x20\xb7\xe7\x11\x8a\x0f\x78\x02\xb6\xdd\x09\x3d\x6e\x3e\x88\xc8\x44\xf5\xbc\x13\xa7\x1a\xac\xa5\xa0\x12\x3f\x94\xad\xb3\x75\x91\x4a\x47\xd8\x18\x5d\x16\x84\xa6\x3d\xbd\xda\x7d\xdd\xef\x1e\x96\xfb\xa7\xe7\xa5\xa3\x84\x01\x44\x5a\xdb\xd6\xb5\xf3\x34\x79\xc1\x82\xc0\xe8\x52\x80\x50\x14\xc8\x7b\x5c\x3f\xe9\x26\x14\xbe\xb4\x27\x20\x12\xdb\x7b\xbb\xaf\xb3\xef\xeb\xa7\xfb\x91\x91\xba\x02\x88\x3d\x30\xb1\x45\x56\x98\x54\xb7\x87\x42\x00\x88\x99\xb6\x50\x47\xcb\xc2\xb6\x07\x34\xf3\xf1\xd6\xbd\xf1\xaa\x6b\x05\xde\xe2\x5a\xf4\xfb\x0b\xda\x8b\x7d\xed\x8d\xf5\x52\x07\xce\xfb\x4a\x7b\x2a\x01\x8b\x27\xdc\x73\x23\x73\xb1\xb7\xf0\xf4\x7d\x7d\x0d\x9f\xd5\x3e\x8f\xc2\xa8\x7d\x81\x07\x7d\x9c\xbb\xa2\xec\x09\xe4\xb6\xe3\x8d\xd1\x14\xe6\x21\xfe\xf4\xae\xac\x43\x5f\x84\xcc\xbd\x1b\xcd\xa9\x76\xbc\x7a\xaf\xba\x7a\xff\xf0\x27\x84\x34\x40\xe4\x60\x9e\x4a\x38\x9c\xdb\xd7\x5c\x87\x82\x21\x46\xa6\x05\x8b\x7e\x83\xaa\x1e\x8b\x1e\xff\xfc\x2d\xd5\xa1\xe6\xc4\xb0\x02\x9a\x37\x63\xc1\x6b\x38\x14\xe5\x08\x27\xaf\x49\x24\x19\x5a\x4a\x14\xcd\x42\xf2\x54\xa8\xf6\x6e\x12\x62\x68\x91\xf9\xf9\xf8\x02\xda\xf4\x8e\xa6\x50\x79\x9a\xc4\x0a\xed\xf6\x3e\x0a\x24\x45\x4d\xbc\x32\x9a\x24\x89\x1f\x8d\xd8\x0b\xa1\xfb\xa2\x38\xd0\xc8\x9a\x33\xf5\xf9\x55\x7e\x68\x22\xc4\x89\xf0\xf6\xd7\x57\x1c\x87\x2c\x94\xed\x5a\xb0\xfa\x91\xe2\xb2\x32\xbd\xe7\x69\x1a\x07\xb8\x55\xec\x56\xb3\xc7\xfd\xec\x69\xb9\x9f\x3d\xdd\xaf\x1e\x86\x78\x24\x4d\x13\x8d\x0d\x94\x73\xde\x44\xfc\x53\x8a\x34\x9a\xb2\xc4\x30\xb9\xb8\x06\x17\x01\x2c\xde\xd2\xec\xb6\xff\x49\x7f\x5e\x27\xe0\xfb\xb2\xc7\x71\x9b\xe5\x07\x68\x2b\x7e\x9a\x51\x29\x82\xd6\x62\xbf\x7d\x34\x9c\x50\x27\x3a\xb3\x2c\xf9\xa7\xfd\x59\xfd\xe5\x52\x73\x99\x60\x5d\x65\xfe\xe8\x44\xda\xb4\x14\x11\x76\xc3\x5a\x0b\xb2\x5f\xa5\x45\xb8\xaf\xf7\x1e\xb4\x22\x22\x0a\xaf\xd3\xe7\x2d\x5a\x20\xb9\x6f\x01\x29\x3c\xd3\x58\x5a\xc9\xc2\x19\x8f\x2b\xbf\x9d\xd9\x3a\xf4\x41\x39\xee\x55\x5a\x6e\x21\xcb\x1e\x0c\x1a\xb5\x09\x14\xa6\x43\x27\xad\x63\x81\xa5\xea\x1a\xeb\xc8\xa8\x30\x63\xdf\xfd\xd7\x2a\xcd\x0f\x4f\xf0\x39\xe2\x98\x6a\x9d\x10\x6c\x1a\x2f\x9e\x9f\xee\xd6\xf7\xfb\x97\xd5\xee\xf5\xe5\xa9\x3d\xc8\x04\x46\x4e\x47\xab\x2f\x31\x78\xa2\xe0\x79\xa1\x87\x0a\xe1\xeb\x97\x4d\x2f\xb8\x68\xfe\x6e\xe8\xda\x76\x5b\xb8\xea\xe1\x4d\x6e\xb2\xe0\x79\x71\x82\x2b\xc2\xfa\x69\xbd\x5b\xcf\xec\x0c\x73\x53\x0c\x3c\x8f\x52\x06\xed\xa4\x35\x48\xbd\x5b\x2a\xe3\xcd\x68\xc0\x9a\x21\x5a\xc0\xbc\x14\xe7\x0c\x6a\xdb\xd3\x72\x5b\x51\x7b\x5e\x61\xb8\x4d\xef\x45\xc5\x25\xd7\x83\x2b\xf1\x23\x86\x2b\xd9\x7f\xff\xb9\x18\xfe\x1d\x6c\x74\x91\x01\x2f\x27\x98\xf0\x6e\x98\x36\x28\x12\xfc\xec\x0e\xba\x8e\x63\x73\x48\xc7\x9d\x90\xe2\xee\x47\x0f\x97\xfd\x8f\xc9\x7f\xde\x3c\xf0\xbf\xf9\xa7\xfd\xf2\x80\x86\xac\x57\x30\xfd\x2f\x2e\xdf\x4f\xce\xd0\x13\xbc\x80\xf9\x08\xc7\xa8\x3e\xf9\x95\x57\xcf\xe4\x82\x02\x5e\x98\x78\xac\xd3\x36\x6a\xe2\x97\xca\x9d\x2d\xe2\x44\x48\xab\x2f\x07\xe5\xa3\x23\x09\x80\x17\x49\xe1\x5a\xb8\xe6\xc5\xbc\x96\x72\x02\x8f\x04\x02\x4d\xa7\x8e\xa6\xfc\xd1\x6d\x3c\xeb\xbc\x05\x70\x81\x47\x20\xc1\xf0\x8c\x57\x15\x94\xf5\x5d\xcf\x60\xbe\x9f\xe9\x83\x47\x34\x45\x78\xa3\x82\xaa\x2e\x8b\x8b\x2e\xca\x71\x4b\x1b\xbc\x98\x33\xbf\x25\x5d\x3f\xee\x36\xed\xab\xe9\xbe\x2c\x09\x38\xca\xbf\x6e\xef\xfa\x6e\x54\xe0\x25\x84\x52\xd2\xab\x34\xb5\x71\xcb\x4f\xeb\x1e\xe0\x25\x40\x1c\xcd\xe7\x1e\x4d\x81\x2f\xbb\xcf\x62\xea\x5e\x30\xcf\x68\xb2\x34\x2b\x4a\xb9\x4c\xb5\x4e\xe5\x39\x73\x2e\x53\xe0\xb1\x88\x22\xe4\xeb\xf1\xb7\x9f\x1a\x4b\x42\xea\x9b\xcc\x42\xdd\x95\xc5\xdf\x90\x2f\x20\x1b\xf6\x9d\xfc\x60\x48\xe4\x02\x8f\x07\x86\x74\x6f\x1a\x27\xb3\xb2\xe4\x17\x6c\x57\xfb\x3d\xed\x04\xf0\x38\xe1\x18\xbd\xcd\x51\xfe\x68\x3f\x7f\x5d\xfc\xb1\xda\xed\xb7\xeb\xff\x5e\xb9\x9f\x2b\x78\x88\x32\xc6\x18\x52\x37\xab\x9b\x8d\x6f\x6f\x6d\xda\xf6\x63\x32\xf2\xb0\xf5\x61\xf9\xc9\x46\x3e\x6a\xb8\x8e\x28\x66\xfc\xa6\x2d\xd0\x6c\x74\x17\x15\x57\xd8\x1b\x41\x35\xc6\xcf\x02\x37\x93\x01\xcd\x0e\x3c\x1d\x68\xac\xcc\x9a\x06\x19\x32\x4f\x7e\xc6\xbe\x02\xdf\x53\x49\x18\xf7\x54\x32\xab\x5d\x31\x37\x9f\x6b\xa7\x8d\xef\x7b\xbe\x1f\x0f\xad\xfe\x0a\x87\xb3\x06\x3f\xe0\x80\x35\x6f\x34\x60\x41\xed\xbb\xd9\xe9\x54\xa4\x79\x7d\x43\x5f\x1f\xfc\x90\xf9\xd6\xb8\xd4\x58\x88\xdc\xa5\x3f\x7a\xc2\xf9\xe0\x87\x3c\x31\x00\x00\x53\xc9\x7e\x81\xea\x54\xe4\x15\xdc\xa5\x65\x55\x7f\xe5\x99\xfe\xd2\xeb\xcc\x81\x1f\x0a\xdf\x37\x19\xf4\x21\xcd\x97\xe7\xfa\x2a\xa6\x1f\x3e\x06\x3f\x14\x1c\x81\x1f\x7b\xc8\x65\xa1\xcc\xc2\xba\x56\x5f\xae\x53\x7f\xf0\xa3\x90\x09\x67\x11\xb4\x1b\x26\xcc\xe0\x47\xc2\x3c\xce\x4f\x44\x15\xbd\x56\x50\xf6\x7a\x7c\xe0\xc7\xcd\xea\x61\x3e\xdb\x62\xaa\x76\x6f\x25\x54\x6f\x45\x0b\xc6\x1b\x3e\x5f\x3f\x4e\x0c\xa0\x69\x9f\x56\x4f\xc5\x13\x80\x5a\xe7\x96\x04\x8f\xae\x28\x8b\x81\x27\xe7\xaf\xe2\xa5\xe9\x49\xe8\xc7\x90\xc4\xc1\x08\xa6\xf8\x9c\xdf\x15\xd6\xeb\xdb\x32\x6d\x26\xf7\x04\x9f\x36\x21\x2b\xd2\x6d\xaa\x5e\xb6\x0b\x3e\x65\x09\x76\xd3\x8c\x1d\xf6\xac\xae\x5b\x22\x26\xf8\x49\xc0\x84\xb3\x1c\xcf\x8d\x95\xa6\x44\x88\xbf\x8d\xd8\x56\xf9\xb5\xf8\x0e\xf8\x49\x4c\xa4\xea\x60\x34\x35\xec\x83\xb8\x8f\x8d\x02\x3f\x49\x7c\xd4\x14\xcd\x78\x55\xdb\x12\xbf\x3b\xa2\x62\xa3\xf0\x53\xe4\x1f\x50\xd6\xbb\x62\x35\x5e\x28\xfd\x44\x27\x01\xef\x51\x0e\x3f\x40\xdd\x9d\x73\x35\x0a\x12\x7c\x16\x68\x8c\xc1\x4e\xbc\xac\x60\x9d\x1b\xf1\xa9\xa9\x9e\x2c\xf8\x8c\x18\xd5\x9e\x1e\x6d\x6c\x33\x7b\x18\x6f\xed\x3e\xd3\x11\xb6\x6e\xbf\xad\xb6\xbb\x26\xe7\x5a\x3c\xac\xef\xee\x46\x99\x17\xf8\xc2\xe3\x8e\x98\xe5\xcc\x49\x87\x3f\x4c\x90\x04\xeb\xb9\xfd\xc2\x68\xfb\xe1\xd8\x73\xd7\xb6\xf9\xb6\x59\x5c\xd0\x15\xe3\xdc\x37\xf0\x6a\xc6\x98\x72\xfa\x01\xea\x6f\x90\xab\x02\x01\x2b\xe3\xef\xe0\x80\xa5\x47\xc9\xb3\x4c\x17\xe5\x1b\x64\xa7\xd1\x5d\x94\x84\xa3\x49\xeb\x76\x40\xb1\x7f\x7d\x59\x5f\xad\xe1\x83\x27\x27\x99\x8f\x22\xa2\x56\xa8\xdf\x25\x7a\x56\xb4\xb0\xef\x1a\x3c\xfc\x41\x52\x09\xa4\xfc\x3c\x16\xea\x9c\x8d\x7f\xad\x04\x62\xb4\x2c\x9b\xbc\xed\xb9\x4f\xa6\x19\x9d\x45\x05\x01\x3e\x81\x39\xcf\xdf\x7b\x0c\xda\xe9\x09\xaf\x22\xea\xa9\x7e\x8a\xb6\x4c\x25\x18\xe1\xbb\x1b\x8b\x8b\xe2\x04\x65\xc4\x4d\x41\x64\x7e\x59\x9d\xcb\xdd\x8f\xe1\xcc\x55\x52\xe0\x8e\x3f\x73\x7d\xe4\x56\xc4\xf9\x2a\x49\x76\x71\x39\xf8\xe0\x99\x08\xd2\x10\xac\x67\x79\x7a\xe4\x59\xf5\x97\x2d\x0a\x0d\xaf\x10\x84\x40\x41\x2a\x7e\x3e\x1c\x53\xd4\x3d\x87\xf2\xa3\x5b\x5c\xb5\x17\x63\x47\x7f\xfd\xe7\x7a\xf6\xf4\xcb\x16\x03\xf8\xda\xf7\xb5\xc5\x84\x3d\x89\xb4\xee\xb3\x72\xc1\xd7\x31\xc7\x02\x88\x55\x8c\x68\x66\xd1\x14\xc3\x07\x7c\xad\x42\x14\x24\x42\x0f\xea\xd5\x31\xad\xe7\x67\xad\xed\x4f\x0a\x7c\x3f\xa0\x4e\xff\x62\x53\xa6\x46\xd9\xbb\x1f\xb4\x06\x7e\x48\x2d\x76\x7a\xf5\xb2\xbf\x5f\xed\xf6\x9b\x97\x6e\x3f\x0e\x9a\x25\x06\xfb\xd6\x55\xa1\x9d\x33\xd3\x17\x93\xd9\xf4\xca\x29\xcd\x38\x4d\x8d\xab\xb0\x1c\x9c\x3d\xd0\xd2\x80\x58\xaa\xea\xdc\x2c\xcb\x0f\xbc\xaa\x1f\x0b\x95\xea\x74\xbc\x41\x07\xa1\x17\x53\x0b\x20\x79\x41\xea\xd9\xf8\x38\x31\x25\x2c\x0d\xf2\xed\x5b\x81\x7b\xd7\x39\xab\xef\x8a\x9e\x12\xc3\xe8\x03\x22\xc0\xf5\x58\xba\x76\x2d\xac\x17\xcf\x03\xd9\xf4\x66\x0c\x07\xee\xd6\x83\xea\x6d\x7e\xf9\x5e\xa6\x3d\xc7\xe7\x7f\x8c\x6e\xf9\xe8\xaa\x43\x19\x23\x88\x60\x0e\xf5\xf7\x1b\x3e\x48\x10\x44\xc4\x93\x7e\x5f\x9d\xc9\x82\x6a\x07\x1e\x65\x10\x10\xcf\xc0\xd4\xc5\xf9\x72\x57\x16\xc7\x39\xcf\x7e\x5a\xd2\x85\x80\x44\x04\x35\xe1\x4e\x56\xcf\xba\xf9\x94\x21\x8a\x0d\xbf\x9f\x80\x87\x32\x6e\xd6\x02\xdc\x7d\x5f\xec\xc5\x61\xd7\x2e\x52\x30\xcb\x55\xcb\x83\xf3\xa7\x39\x34\x10\xc4\xbe\x09\xe0\x9a\x19\xb0\x2b\x5e\xd7\x79\xfd\x65\x98\xe6\xa2\x5d\x27\xf6\x41\x66\x87\x32\x45\xd4\xd3\xb2\x90\xe7\x63\x87\xaa\x85\x20\x8e\x22\xd9\x52\xa2\x8b\x72\xaf\xa1\x7d\x1c\xb1\x54\x98\x9f\xcd\x3a\xcb\xb3\xd1\x55\xc7\x8a\x7b\xe6\xaa\x9b\xed\xee\xde\x64\x09\xdd\xe7\xad\xbf\x85\xc3\xd5\xcf\xe6\x6b\xbc\x28\x7b\x98\x92\x00\x99\xee\xdb\x34\xfb\xe8\xee\x04\xa5\x5c\x18\x99\xd7\x26\x3a\xff\x9c\x19\x99\xa2\x2f\xbd\x6b\x4a\x3c\xc3\x8f\x2e\x9b\x5d\xaa\x65\x36\x0e\x6b\xac\x10\x24\xa1\x87\x98\xe2\x0d\x3f\xa3\x44\x67\x4b\x65\x5a\x1f\x4f\x59\xf3\xc7\x89\x5c\x77\x72\x3d\x0e\x12\xe5\xe3\x5b\x83\xa2\xfd\xfb\xef\xb3\x6f\xab\xa0\x2f\xff\x06\x01\xd3\x12\x5f\x5a\x57\x96\x5a\xf0\xd3\xf6\xba\xfe\x6c\x07\xf3\x08\xf0\x3d\x40\xb3\x98\x5c\x2d\xbb\x56\xec\x4f\x1b\xb0\xa3\xb3\x88\x38\x88\x3a\xd9\x92\x47\xfe\xe3\x31\xc5\x1c\x9e\x97\xcd\xb5\xfe\x5e\x55\x0d\x02\x19\xfb\x58\x30\x43\x6d\xe8\xc1\xe2\x1d\x48\x4e\x48\xe8\xb4\x89\x8d\x2a\xc6\x8d\x0b\x92\x12\xf0\x29\x6f\xf8\x25\x83\xaa\x7a\x4c\xf3\xb4\x3a\x65\x69\xfb\x2a\x49\x90\x81\x71\x20\x2f\x44\x5a\x0f\xd6\x23\x95\x30\x2c\x9c\x9f\x4a\x58\xcb\x9e\x84\xcf\xf0\xfe\x2b\xce\xa8\x2d\x85\x36\xc1\xe7\xfc\xd2\x6a\xa4\x0d\x27\xa3\xe2\xd2\xb7\x34\xa6\x27\xf8\xfc\x13\x0b\xf1\x45\x3e\x5e\xa7\xff\x31\xda\x09\xa6\x0e\xb7\x73\xe9\xc6\x7d\x53\x32\x46\x86\x9e\x6b\xf7\x6c\xac\xa3\x62\xb7\x10\x56\x37\x5e\x18\x08\x3d\x24\x29\x9d\x9a\x0d\x2d\x98\xa7\x2e\xf5\x08\x80\x28\x8c\xc0\xb7\x9f\xfc\x74\x69\x43\x9d\xe9\xf7\x1e\x94\xf4\x4d\x95\xc5\x88\xf5\x18\xc5\xcb\x36\x8d\x09\xb4\xd2\x9e\xe8\xd7\xb6\xae\xf3\xdc\x2b\x5d\x31\x08\xb4\x8e\x64\x5b\x08\xd9\x16\xd9\x15\x04\xc3\x8c\x0b\x7d\xc5\xb1\xd7\xa8\xd2\xca\x22\xd7\xe7\x97\xf9\x64\x2e\x1f\x06\x3c\x36\x58\xc6\x73\xf5\xb6\x5e\x3c\x0f\x97\xc2\x30\x90\x11\x76\x49\xf1\x0b\x27\x1c\xf4\x21\x0c\x03\xb3\xbc\x08\x2e\xdf\x97\xb3\x97\x3b\x0c\x36\x7a\x12\x8a\x10\x86\x5c\x59\xb3\x14\xac\x90\xde\x35\x4b\xc2\xd5\x69\x48\xc8\x49\x6b\x60\xe2\x62\x21\x6c\xa1\xdd\x15\x0e\x2a\x7a\xf7\xd7\x8d\xcb\x25\xa1\xc2\x40\x67\x6f\x93\xb4\x27\xf8\x51\xdf\x43\xee\x4d\x64\xff\x21\x21\xa1\x67\xe3\xd9\x66\x8e\x76\x61\xd7\x94\x50\x35\x84\x24\xf1\xa2\x8e\x68\xee\xe8\xed\x93\x53\x2e\xa4\x3a\xf0\x3b\xf5\xeb\xec\xe4\xd3\xd1\xc9\x12\x06\x1e\x6b\x4b\x6f\xc3\x12\x22\x84\x09\x28\xc4\x14\x1a\x21\x96\x01\xe0\x0b\x42\x16\x4b\x6a\xbd\x51\xea\x15\x2f\x33\x34\x6b\x30\x76\xf8\xd3\x8b\x92\xfb\x1c\xf3\x7b\x26\x3b\x50\x3a\x01\x89\xbd\x3b\xb1\x08\x22\x43\xa6\x33\x96\x77\xf3\x67\xb7\xfb\x4c\x92\x70\x21\x94\x61\xe8\x30\xa5\x33\x6c\x00\xff\xd7\x59\x1d\x9a\xf1\xf3\x4b\x13\x78\x5f\x46\x97\x2c\x23\x92\x58\xbd\xe2\xf6\x7a\x7f\x1a\x22\x84\x92\xb4\xda\x0e\x3b\xe0\xc7\xb5\x1a\x2c\x7a\xa1\x24\x0a\x77\x24\x01\xb2\x38\xc2\x36\xe7\x69\x66\x6c\xbf\xdc\x05\xc9\x98\x2b\xdb\x3b\x96\x59\xcf\x25\xfb\xa6\x2d\x12\x84\x92\x89\xd8\xa6\xc7\x6b\x59\x4c\x66\x81\xa1\x04\x43\x5f\x31\xf6\xce\xe6\x1a\xa2\x5e\x69\x1d\x42\xe5\x79\xb8\xe7\xb9\x4a\x17\x96\xd6\xa7\xb1\xde\xa3\x7b\xaa\x3c\x8a\xbc\x5c\x05\xb6\x87\xd3\x2c\xb3\x79\x5d\xdc\x9c\x69\x2a\x08\xb0\x50\x62\xa0\xf3\x7b\x93\x8c\xf7\xed\xa8\x21\x04\x0f\x10\x47\x8e\x74\xae\x97\x45\xe0\xfd\x8a\x1e\x0c\x21\x70\x45\x5b\x95\xd2\x12\xd4\x59\xc2\xb1\xcf\xa8\x19\x0e\x8f\x7c\xe2\x63\x9d\x79\x53\x16\xbd\x5c\xfa\x8b\x3b\x4a\x3d\x5b\xaf\x74\x5c\xb4\xa1\x23\x5e\x33\x42\x63\xdc\x83\x38\xc2\x9f\x4d\xe2\xc8\x17\x81\x73\x5c\xb6\xd5\x78\xf4\xfd\xe3\xfd\x8d\xc8\xad\x91\x51\xe0\x13\x2c\xa9\x94\xc0\xd5\xbe\x04\xc9\xab\x7a\x2f\x51\x22\xcd\xfd\xb4\x80\x30\x30\xbd\xe0\xc7\xbc\x3e\x3d\xa6\x87\x92\x8f\x3b\x65\x10\x05\x52\x04\xaa\x57\x8b\x72\x7d\xcd\x09\xe2\xe1\x74\x4c\x12\x05\x8a\xfb\xa4\x65\x32\xa9\x69\x07\xbb\xd1\x95\x86\x44\xc7\x62\xdc\xb8\x0a\xdd\x0f\x0f\x05\x60\x04\x5a\xd5\xbc\xac\x97\x50\xd5\xa5\x2d\x2e\xd9\xe3\x51\x10\x21\x3a\xa4\x02\x2c\x44\x1e\xaf\x58\xf1\xd3\x5f\x1a\xf1\x38\x8e\x7a\x25\xb0\x6e\x4d\xc4\x50\x70\xd4\x12\xbb\x71\x0e\x15\xa1\x4c\xde\x63\x91\xcb\xb4\xc8\xfb\x21\x44\x44\x02\x0f\x4b\x6c\x7b\x0b\xe9\x29\x27\x38\x26\x10\x11\xc9\x98\xf1\xe5\x41\xf5\x9c\x74\x53\xf4\x8a\x98\xa3\x98\x39\x8a\xbd\xc0\xa9\xf2\x4d\x88\x1a\xb9\x41\x31\x75\xaa\xc9\x8f\xfc\xc7\x43\x51\x55\x33\x5d\x43\x39\x8d\xd9\x3b\xdf\x44\xdd\x40\x44\xb9\xe9\x9a\x1e\xcf\x59\x9d\xda\xfa\x2a\xa2\xe9\xc7\xf7\xe6\x3c\xfa\x98\x29\x45\x61\x09\xdc\xca\xe8\xba\xdf\x46\x65\x82\x9d\x69\xeb\x01\xef\x8e\xfe\xb4\xd0\x1c\x51\x15\xa2\x2e\xcb\xeb\xf6\x67\xdc\x18\x88\x18\x67\x48\x13\x82\xfa\xed\x3e\xfd\x18\xf5\xa1\x21\x62\x82\xbb\x1e\xe0\x2b\xf6\x19\xd7\x0a\x72\xeb\xe3\x39\x7e\xca\xa3\x4f\x2a\x85\x56\xa3\x6f\x3c\xfb\x80\x15\xca\xc4\xf7\x6a\x6f\x11\x03\x16\xb1\x9e\x70\x81\x71\x99\xcb\xab\x73\xd9\x04\xa7\xad\xaf\x5a\x62\x68\x0e\x93\xff\x6b\xe1\x91\xe3\xbf\xda\xaf\xe0\x21\x97\x2d\xd2\x00\xe4\xc4\x0e\x1f\xf1\x10\xb0\x62\x85\xb3\xac\x99\xcf\xaf\xa7\xab\x34\xc2\x0e\x15\x49\xa4\xb4\x65\xf6\xa6\x03\x54\x90\x1d\x20\x43\xe6\x9a\x0a\x8f\xfc\xc7\xac\x84\x9c\x3f\xe7\xb0\xe4\x97\xf1\xb8\x58\x60\xd3\x60\x6f\x15\xc1\xff\x37\x89\x42\x24\x39\x8f\x8d\x35\xf4\x4c\x34\x5b\xba\x5b\xc3\x23\x09\x80\x11\x41\xee\x64\xec\x9c\x71\x5a\x3b\xc5\x55\xc0\x11\x78\xb8\x47\xbe\x6c\x1f\x13\x04\x91\x8a\x03\xcd\x3a\x0d\xc3\xfc\xf0\x47\x6f\xfe\x29\x95\x28\xd6\xe3\x61\x18\x9b\x48\x9e\x8d\xae\x0b\x22\x8e\x95\x4d\xf8\xe1\x2c\x03\x5f\x2c\xd4\xfd\x6a\xc1\x84\x58\x68\xab\x86\x7a\x86\xc7\xf4\xda\x8a\x74\x74\xd5\x00\xc1\xb0\x90\x9f\x9e\xae\x6f\xd8\xd4\x29\xa6\x91\xb3\x10\x69\x0a\x68\xf5\xff\x47\xf3\x43\x07\x2b\x10\xf1\x7c\x89\xf9\x8f\x25\x4c\x6d\xa1\xae\xb3\x11\x17\x12\x88\x27\x25\xb5\x5a\x78\xf7\x25\x40\x07\x8c\x6b\x0e\x41\xec\xb5\x6e\x29\x85\xca\xd2\x1c\xab\x07\x1b\x24\x00\xdd\x48\x24\x88\x4f\x8d\x43\xb3\x6d\x0f\x62\x42\xeb\xce\xe8\x4b\x92\x74\x46\x9e\xd6\x8e\x7c\xa0\x69\x6d\x07\x06\x00\xd4\x6b\xdb\x7b\xa8\x40\x39\xa5\x79\x6b\x47\x87\x9e\x17\xd0\xae\x81\xdf\x32\x3c\x46\xa3\xac\x59\x3d\x4a\x4d\x9a\xc0\x10\x6d\x4e\xf0\x0b\x66\xb9\x1a\x45\x40\xff\x18\x7d\x9a\xf2\x24\xe8\xe4\x01\xfa\x0c\x7e\x20\x11\x4b\x70\xd3\x3b\x41\xc7\x26\x1c\xc0\x66\x80\x44\x82\xa0\x03\xcf\xfb\x45\xa0\x12\xb3\x2b\x36\x10\x12\x06\xa4\xc5\xdc\x38\x68\xc3\xf7\xa2\xbc\xd1\xa2\x20\x24\x96\x88\xd1\x59\xa4\x25\x56\x44\xd3\x62\x60\x09\x06\x84\xb0\x30\xb0\x71\xc3\xd3\x0d\xec\x3c\x90\x38\x00\xd3\x0e\x6c\xb2\xa4\x66\x35\x1c\x12\x6f\xcf\xd3\xe2\x1a\xa3\x7b\x12\x53\x82\x44\xc1\xba\xe8\xec\x19\x80\xc4\x10\x84\x81\x5b\x3d\x9a\x70\xfe\x68\xfc\xef\x47\xd7\x11\x6b\xc2\xed\x23\x6e\xd6\x54\xbb\x56\x8e\x06\x51\x2b\x29\x73\x80\x7a\x9b\x15\xb5\x55\xf4\x9c\x7e\x42\xcd\xd8\xce\x00\x64\xc3\xd3\x41\x29\xdb\x0d\x22\xdc\x0a\x02\x20\x11\xd7\x0a\x47\x0f\x27\x5f\xe2\x13\x6e\xf1\x53\xa3\x04\x96\x24\xca\xb4\xfb\xeb\xf4\x08\xd8\x11\xb2\x46\xb4\xf6\x30\x63\x04\x55\xa9\x4c\xf1\x63\x55\xbf\xed\x8a\xd7\x4a\xdd\x54\x19\x01\xc2\x23\x08\x94\x63\xb4\xe0\xeb\x60\x0d\x8c\x4c\x33\xc4\xd9\x09\xfc\x56\x47\x96\x70\xde\x22\xb3\x9a\x24\x0f\x09\x0d\xcf\xf9\x6d\x5b\x38\x20\x82\x87\x16\x6d\x6e\x2a\xd4\x1b\x28\x5f\xf3\x61\x29\x84\x28\x92\x20\xf4\xef\xaf\xff\x9e\xff\xd5\xfe\x8d\x1b\x0b\x87\xfd\x7f\xce\x30\xf9\x46\x82\x9f\x90\x96\x37\x3f\xef\x5e\x14\xa0\x80\xfc\x58\xc8\xd5\x7a\xf1\xec\x47\xee\xef\xda\x37\x30\xd5\xcd\xcb\x6a\x3b\x7b\x58\x6d\x1e\x5e\xb7\x9d\x13\xe5\xea\xdb\xaa\x1d\x17\x40\x92\xb4\xe2\xda\x83\x1c\x89\x68\xed\x93\xc8\x08\x92\x95\xe7\xb4\xfe\x0a\x65\x71\xd7\x96\x0c\x63\x2f\x90\xb1\xd1\x3d\xd9\x9f\x6c\x51\x64\x5f\xd9\x6c\x52\xb5\x83\x94\x6f\xb9\x60\x86\x2b\xd6\xfe\x1d\x54\xd2\x69\xaf\x34\x37\xf7\xbe\x2c\xce\xa7\xe9\xc0\x3d\xf6\x03\xa6\x88\x5b\x68\x8a\x63\x71\xdb\x9c\x00\x62\x3f\xf4\xc2\x5e\xf9\xfe\x6c\x74\xb2\xb6\x3f\x33\xa6\xfc\xe9\xb6\x1a\x07\x7e\x84\x77\xf2\x61\xb9\x1b\x39\x16\x41\x1c\x70\x8f\xf7\x37\x1f\x5c\xcc\x4b\xa8\x0f\xe6\x6e\x4e\xff\xc2\x30\x34\x75\x61\xc7\xf6\x5a\x59\x36\xca\x3c\xcd\xb2\x9b\xc2\x40\x3f\xff\x8d\x21\x05\x62\x5b\x29\xa8\xe5\x68\xdb\xaa\x13\x41\x68\x1c\x2a\xea\xf9\x6d\xf1\x00\x09\x85\x4e\x12\x7c\x78\xce\x88\x86\x2c\x72\x82\x9f\xfc\x68\x5a\x44\x53\xda\x7d\x10\x47\x2a\xd6\x9d\xd0\xdf\xf4\x18\xe2\xc5\xce\x0d\xf8\xb5\x52\x8f\x79\x39\xfa\x3a\x22\x44\x6c\x44\xf2\xaa\xb7\xaf\x69\x85\x59\xab\x3d\x14\x33\x19\x58\xaf\x0f\x24\x74\xfe\x5e\xc9\x33\xa6\xc4\xd4\xb4\x6f\x95\xd8\x6e\x8a\x2f\x4d\xe6\x61\x31\x25\xda\x0f\x3b\xc7\xa2\x14\x32\x35\x33\x90\xb4\x0e\x53\xee\x86\x72\x1f\xf5\x66\x5d\xd1\xb0\xa7\x4f\xd4\x1c\x24\x91\xb1\x47\x52\xb3\x41\xde\x15\x27\x54\x60\xe6\x5f\x03\x3f\xca\xf6\x8f\xc2\x74\xdf\x0e\x4d\xa4\x6a\xa3\x27\xd4\x39\xe4\x57\xf2\x2b\x10\x27\x10\x24\xa4\xdd\x3f\x30\x8e\x6b\xcf\xa3\xa9\x2b\xb8\x98\xad\x76\x7e\x56\x87\x5b\xa5\xeb\x98\x49\x86\xb7\xbc\xc8\x0d\x12\x65\xb8\xe6\xdd\xf8\x8c\xe2\xb8\x5d\x60\x3f\x6c\x59\xf2\xcf\x9b\x81\xab\x4b\xb2\x63\xee\x49\x65\x37\x06\xfc\xc1\x00\xd8\x0b\x99\xbb\x1f\xcd\x55\x8c\x1d\x8b\xb4\x42\x4a\x24\xda\x5b\x0d\x82\xa3\x58\x48\x6e\x04\x67\xb2\x6c\x07\x55\x4d\xdd\x27\xa5\xcf\xb0\xab\xf3\x15\xb2\xf4\x87\xd3\x29\x73\xc7\x34\x43\x42\xd7\x1f\xe5\xe5\x54\xa7\xb2\xf7\x04\x54\x14\x22\xa6\x73\xf6\xb0\xd8\x2f\x57\x8b\xf5\xe3\xec\x61\xdb\x1e\x93\x4a\x18\xda\xf0\xc9\xfd\x09\xbc\xc8\x39\x0d\xa7\x47\x9e\x7d\x87\x74\xf7\xb0\xf1\xdd\x51\xed\x29\x0c\x70\xac\xa2\x84\x49\xb3\x8b\xd2\xf8\xeb\xbb\x31\xbe\xf0\x4c\x9c\x83\x3d\x29\x03\x86\x2b\xdb\xa3\x01\x8f\x0d\x01\xa6\x96\x6f\x70\x23\x3e\x8c\x35\xe8\x28\xea\x95\x18\xfe\x3c\x17\x9d\xe0\xa9\x19\x43\x3d\x8f\x69\xb7\xed\x37\xb1\x4d\x3a\xae\x9c\x52\x2f\x92\x3e\x2a\xcf\x7c\xff\xf3\x5a\x6e\x12\xa8\xc7\x7d\xc4\xaf\xfc\x91\x66\xd9\x98\x41\xe6\x86\xe8\xc8\xb7\xb2\xc5\x4f\xf0\x79\x57\x94\xef\x2f\x70\x3a\x1b\xce\x45\xa7\x97\x06\xd4\xe7\x80\xae\x71\x0f\x69\x13\x3e\x2f\xb8\xac\x1d\xf5\x06\xa8\x2f\x00\x57\x89\x63\x91\xf3\x52\xbe\xf5\x1f\x1b\x0d\x02\x4a\x0d\x71\x04\x27\xc9\xee\x72\x1a\xb5\x05\x68\x40\x19\x16\x21\xdd\x9d\x70\xc1\xdf\x1d\x58\xf5\xd1\x09\x55\xac\xc9\x7d\x9c\x06\x5c\x22\x90\x39\x87\xcf\x89\xdc\x90\x06\x40\x7d\x93\x92\x2f\x53\xe8\x77\x8f\x69\xa0\x43\x61\x0b\x95\x46\xae\xfe\xcb\xa4\x2e\xc7\x64\xda\xfd\x8f\xa9\xc0\x92\x86\x42\x63\xe9\x55\xc1\x07\x64\xc5\x09\x4a\x53\xce\xa9\xe1\x47\xbd\x77\x2b\x42\xb5\xcf\xd2\xfc\x7d\x20\xc3\x0c\x34\x84\x10\x41\x4c\xa7\x12\xb2\xf4\x98\xe6\xbc\xbc\xdc\xf3\x23\xf4\x0c\xc6\x2c\x67\x16\x68\xa8\x29\x12\x3b\x5d\xfb\xce\xda\x4b\x16\xc7\xdd\xec\x65\x7a\x17\xa3\x51\x20\x63\xa3\x77\x95\x65\x69\x91\xaf\xf3\x45\xaf\xd5\x48\x23\xed\x21\x52\xc8\x40\x00\x57\xff\x99\xda\x8a\x28\xa1\x1a\xc5\xe8\x32\x5e\x19\x41\xe1\x7e\x15\x80\x92\x84\x63\xeb\x63\x8f\xd6\x14\x08\x16\xea\x40\x0d\x6e\x8c\xd2\xba\x59\x1f\xee\x65\x91\xe6\x9b\xb2\x70\x82\x68\x40\x89\xd6\x26\x76\x39\xe7\xa3\x6a\xbb\x1d\x10\x6b\x43\x3f\x36\x09\xd1\x01\x9e\x4f\x80\xbe\x4c\x2e\x61\x49\x06\x3d\x46\x4a\xa9\xc0\xc5\x0d\x9d\x4e\xee\x8a\xb2\x57\xa3\xa4\x94\x2b\x65\x13\xb4\x82\x2b\x23\x73\x70\xb3\x2f\xe7\x3e\xa3\x09\x10\xe7\x07\x51\xd5\x3b\x5c\xb0\x1f\x9a\x47\x3c\xfa\x9d\x89\x47\xf0\xcd\x45\x2d\xb3\x6d\x7a\xe8\x0b\x3e\x01\x4d\x62\x49\xac\xcd\x55\x93\x2a\xbd\xe6\x0a\xca\x0a\xd5\x9c\x07\x53\x81\x09\x8d\x4a\x0f\x87\x54\xd7\x8b\x42\xc1\x94\x54\x0e\x50\xc1\x35\x16\xd9\x5f\x2c\xe3\xd3\x7a\x0c\x4e\xee\xe7\x54\x68\x8f\xc0\xd0\xcc\x3a\x76\xbf\x4a\x4a\x81\xe0\x87\xc5\xe2\xa9\xfd\x93\x62\x8c\xf5\x82\x9e\xbb\xa2\x5c\xf7\xfd\xf7\x4d\x3a\x64\x07\x2b\x9f\x38\x7d\xe1\x05\xcf\xae\x45\x0c\x26\x37\x6e\x37\x97\x55\x42\x9d\xe5\xc0\x5d\x09\x80\x19\x5f\xe9\x4a\x98\x57\x5b\xd2\x75\x77\x8c\x82\x9f\x50\x23\x05\xab\xf6\xef\x17\x79\xb5\x52\x82\xe0\xad\x40\x09\x22\x1c\xe4\xc5\x52\x61\x86\x4f\x4e\x7b\x0a\xd9\x03\xcb\xed\x6e\x3f\x7f\x7e\x7d\xda\x39\xec\x74\xe2\x79\x51\xd2\xfa\x09\x36\xf9\x41\xd5\x99\x36\x43\xe2\x05\x8a\x1a\x37\xa2\xc7\xaf\xbb\xa9\x66\x59\xe2\x33\x0f\xd5\xfe\x9a\x9d\x65\xff\xe1\x36\x9c\x24\x20\x01\xca\x42\xba\xb7\x38\x1b\x30\xdf\x21\x09\xbd\xd0\xf2\x9f\x5c\x46\x32\x61\x4d\x77\x0d\xfb\x6f\xcb\xa5\x49\xe8\xfb\x4a\xd8\xc2\x30\x26\x6b\x0e\x5e\xb9\xe1\x65\x9d\x8f\x24\x95\x9a\xe1\x01\x02\x30\x3e\x4c\x95\x1d\xec\xd4\xed\x43\x81\x06\x4b\x5d\x12\xc6\x0c\xb5\x9a\x8c\x50\x73\xdf\xb8\x1f\x92\x90\x1a\x8a\xdc\x53\x9a\xff\x9b\x77\x82\x0b\x90\x44\x42\x3b\x9f\x06\xb7\xde\x0f\x38\x73\x6e\x98\x24\xb8\x1a\xea\xf4\x07\xa8\xd5\x8f\xd3\x6b\x5e\x71\x3d\x12\x97\xb0\x43\x49\x18\x13\x3b\x83\x5e\x10\xfe\xd7\x6c\x37\x30\xe0\x3b\x41\x42\x62\x8a\x54\x23\x04\x0e\xca\xf6\xaf\x2c\xc2\xe2\xcf\xa6\x99\x6c\xe9\x86\x97\x19\xfc\xdd\xdf\xc4\x92\x38\x0c\x91\x74\x6c\xb4\xa0\x91\xf7\x85\xe2\x36\x43\x89\x96\x38\x72\xb3\x31\x89\x15\x98\xb0\x13\xaa\xfa\xff\x8c\x26\x3e\x2c\x41\xdc\x52\x18\xbd\x06\x68\x25\xd4\x23\x98\x76\xd5\x6f\x65\xf1\xf9\x9c\xaf\x73\x59\x1c\x4f\xbc\x4e\xc5\xd8\x1b\x0b\x12\x0a\x80\x51\x2a\xe4\xea\x65\xe1\xfe\x98\x78\xb1\x26\x6d\xaa\xe1\x00\xc5\x93\x1b\x6e\x92\x04\x1a\x6c\x80\x82\x4f\x6f\x96\xab\x79\xf1\x63\x34\xef\x13\x2d\x51\xd3\xdc\x60\x89\xaa\xc9\x77\x83\x05\x21\x96\xae\x96\x8f\x0f\x7b\x63\xf9\xda\xa7\xc6\x34\xc7\x89\x6e\x2d\x26\xa1\xaa\xef\x00\x86\x80\xa0\x84\xf1\x18\xa7\xed\xe3\xec\xaf\xfd\xec\xe1\xe1\xf9\xfb\x6a\xb9\xdf\xee\x66\xf7\xab\x7d\xfb\xa6\x71\x6a\x54\x8d\xf7\x69\xf5\x50\x7c\x42\x29\x79\x05\x0f\xd0\x6c\x33\x7d\xdd\x4f\x48\x44\x40\x3d\x63\xf0\x88\xad\x2b\x30\xee\x55\xf7\x90\xa3\x44\xe8\x70\xf9\x1a\xdd\x10\x11\xc7\x56\x6f\xb5\x5e\x35\xf1\xbe\x84\x17\xf8\x48\x8d\x06\xe5\x20\xea\x49\x04\x08\xea\x3b\xe4\x63\xd9\x8c\x18\x2b\x8b\x42\x22\x05\x20\xa0\xf8\xa1\x38\xcc\xd3\x56\xb1\xe5\x17\x11\x7d\xa2\xe2\xc8\x35\xb9\x53\x5d\x14\xaa\x35\xd4\x9c\xdc\x12\x12\x95\x48\x6a\xe5\xe7\xb6\x6f\xc5\x39\x53\xf7\x2e\x03\xef\xf5\xeb\x12\x88\x39\x8a\x73\xfe\xe7\xcc\xcb\xf2\xb2\x40\x0f\x88\xd1\xbb\x0a\x8c\xa1\x11\xf0\x39\x3f\x71\xf9\xde\x83\x34\x0c\x2f\x5c\x47\x46\xe6\xf3\xe5\xf9\x9f\xf3\xe7\xb5\x01\x3d\x0f\x5e\x36\x1d\x09\xe1\x84\xdf\xd5\xf7\x34\xdf\x20\x7a\xea\x7b\x9a\x1b\xed\xc4\x76\x98\x30\x0e\xbe\xd6\x43\xf8\x91\xff\xe8\x88\x0d\xa3\x9f\xc6\xbc\x44\x60\x31\xf6\xc4\x2f\x57\x0d\xe8\x5b\x2f\x62\x2f\x3e\x64\x9e\x0e\xb1\x55\xf0\x7d\x33\xfb\x67\x6f\x15\x63\xbe\x0a\xa9\xf9\x0d\x47\x9e\xd7\xa9\xb4\x4f\xb2\x87\x0c\xfb\x57\x68\x97\x04\x16\x78\x46\x79\xdb\xa8\x2e\xcc\xf2\xea\x13\xca\xf9\x65\x56\x8a\xb4\x36\xa0\xcb\xf1\x3b\x3e\x78\x4c\x2c\x20\xc6\x76\xc4\x61\x11\xf8\x35\x95\xf1\x06\x80\xe6\xff\xa8\x80\xc2\x42\xaa\x79\xe4\x66\xb2\x7a\x4c\xf3\x6b\x97\x66\x60\x11\xf3\x09\xb3\x5b\xcb\x23\x54\x15\x3f\xc0\xae\x70\x0a\x79\x13\xcd\x29\x16\x01\xf1\xa2\x9e\xd3\x83\x0d\xda\x06\x63\x88\x6f\xaa\x4f\x9a\x5f\xea\x37\x17\xae\x31\xc2\x09\xee\x9e\x6f\xbc\x6e\xff\x24\x85\xb2\xec\x2e\x44\xfb\x57\xcd\x1b\xe2\x9c\xd3\x87\x3f\x94\x80\x44\xb2\xce\xa9\x38\xc9\x26\x3e\xec\xf3\xd7\x80\xc5\x09\x47\xd9\xc9\xd3\xb9\xde\xd6\xb2\x39\xcb\xbc\x2e\x6e\xe1\x09\x7f\x79\x1f\xa7\xd6\x6a\xbb\x49\x31\x1a\x78\xa4\x33\x36\x9b\xdc\xc9\x7f\x73\x83\x68\x4f\xa8\xb1\xef\xb1\xaf\x8b\xc7\x5e\x25\xca\x1d\x15\x12\x97\x4d\xb3\x21\x1a\x43\xa4\x7b\xdb\xe8\x55\x53\xbb\x28\xa3\x10\x61\x89\xef\xc8\x7f\x2c\xf8\x69\xff\xb8\x6e\x57\x58\x46\xc1\x14\x1d\xdf\x78\xb5\x79\xeb\x29\x76\xdb\xc3\x89\x9f\x20\xcf\xcd\x74\x1f\xd4\x6b\xde\x24\x6e\x15\xfc\x96\xb0\x31\xb0\x84\x48\x61\xd4\x1b\x2e\xe3\x2e\x08\x4b\xb4\x8f\xb8\xd1\xda\xe8\xa1\x1b\xb1\xca\xf4\x6f\x58\xeb\xa7\xa2\xc6\x08\xbb\x6a\xfb\xfb\x8c\x79\x11\xe3\xa3\xe2\xde\xef\x51\x79\x18\x0b\x0c\x3d\xd5\x82\x5e\x9f\xf5\x2c\x1b\xa5\x2e\x8c\xc5\x0c\x69\x5d\x9b\xc7\xd5\xee\x67\x5d\x58\xc6\x43\xd3\x56\xb7\xb5\xd5\x87\xb1\x8e\x2d\x30\x41\x75\x60\xa4\x50\x7e\x98\x98\xa9\x35\x48\x07\x26\x3a\xcc\xc3\x62\xbb\xb0\x0d\x22\xab\x28\x31\x3a\x8b\x8e\xbc\x6e\x42\x39\xdc\xd0\xe4\x6e\xcd\x64\x28\x71\xbb\x77\x10\xd8\xaf\x3c\xeb\x8a\xbe\x4c\x4a\x8a\x73\xe5\x1b\x88\xd5\x5f\xdd\x1f\x0d\x92\xed\xc8\x7f\xcc\xa1\xee\xd8\x62\x4c\x05\x89\x2b\x70\x6d\xd6\x26\xb7\xf5\xfd\xf6\x20\x35\xb8\x23\xab\xc5\x69\xcc\xd0\x6e\xac\x56\x5d\x28\x7f\xd3\x72\xb9\x39\x61\x84\x73\x4b\x9c\x2f\xf3\x73\xf6\xfe\x02\x87\x73\xc6\xcb\x05\xbf\xd2\xf7\xf8\xd7\xff\x8c\xae\x59\x31\x53\xda\x17\x3d\x3e\xfa\x60\x69\x07\xdf\x48\xd1\x0b\x27\xcd\xb8\x9f\xb4\xba\x36\x9f\x71\xbf\x47\x73\x03\x9c\xc5\xf0\xae\x89\xb3\x56\x86\x26\xb5\x85\xcc\x44\x87\xbb\xcf\x2e\x27\x66\x9a\x1b\x06\xa8\x35\x77\x83\x61\xc6\xcf\xb4\x10\x89\x51\x74\x9e\x75\x76\xf0\x83\xab\xe0\x7e\x68\x8a\x28\xaf\xdb\xe5\xfe\xeb\xec\x65\xb9\x5f\xcc\xac\xc6\x24\xf0\x20\xe0\x88\x1f\xca\xe1\xd3\xea\x1b\x4d\x88\x71\x03\x0f\x28\x55\xfd\x62\xc1\x70\x36\x5d\xad\x3a\xc3\xef\x0f\x58\xe0\x75\x40\xb8\x27\xf8\x5c\xb6\xca\x71\xc0\x23\x12\x07\x5d\x57\x60\x57\xd4\xcd\x9c\x1f\x7d\x3b\x51\x14\x6b\x3c\xc7\xc3\xb1\x46\xe3\x8f\x9e\x49\xc4\x74\xa9\x82\x13\xc5\xb0\x8d\x93\x61\x00\xbf\xfa\xcf\xb9\xeb\x4f\x5f\xcd\x19\xfb\x11\xea\x25\x58\x58\x30\x8e\xef\xd6\x8d\xd8\x1d\x4b\x94\xb6\x80\xf1\xfb\x22\x9b\x86\x16\xdf\x68\x2e\xf3\x66\x19\xb5\x2a\x63\xd8\x81\x1f\x77\xca\x79\xc2\x01\xf9\x48\x8f\xfc\xdd\xa1\x0a\xe1\xb3\x07\xbc\x9a\xbe\x42\x26\x08\xa6\x1d\xd6\x7f\x72\xee\xa4\xa7\x80\xf3\x80\x59\x31\xcb\x0a\xca\xda\x14\xf1\xbf\x42\x09\xed\xf1\x48\x62\xce\x68\x1a\x6c\x6b\x34\x00\xeb\xf3\xcc\x6e\xc3\xdd\x38\xe7\x46\xa0\x7b\x7e\x2e\x87\xf5\x61\x97\xbb\x70\x19\xc6\xc8\x60\x31\x5f\x3e\x5d\xbe\xe4\x12\xb8\x35\x6f\x55\x1b\x6b\xff\x38\x6d\x5b\x33\xb9\xd4\x72\xe5\x79\x8c\xba\x9a\x1f\xa6\xd3\x1f\xa8\x39\x30\xcb\xd5\x6b\x6e\x5b\xe6\x37\x14\xaf\xdc\x19\x24\x30\x69\x9d\x0d\x52\x39\xe8\xaf\x73\xa5\x8d\xff\x8c\x35\xe8\x30\xfd\x9d\xf4\xef\xf6\x38\x70\x92\xc4\xd6\xb3\xc7\xe1\x35\xa6\xd7\x4c\x0e\x8a\x24\xac\x6b\xe3\x5b\xb3\xf3\x4e\x2a\xd7\x0e\xd3\x5e\xe2\xe0\x03\x83\x1a\x66\x9f\x88\xc7\xb5\xaf\xc1\xef\x55\x53\x76\x45\xdb\x7c\x1d\xbd\xef\x3a\x26\xa1\xb2\x71\xd5\xaa\x7e\xbb\x21\x93\x05\x5c\x0b\xca\x10\xe7\x5c\x9c\x73\x85\xc1\x36\x6a\x66\x9b\xa3\xc2\x0b\xcd\xf7\xed\xdf\x78\xae\x32\xd8\x94\x85\x32\xad\x8b\xb5\x95\x52\x99\xbe\xb5\xc2\x4b\x12\xa4\x6e\x16\x5d\x71\xcd\xbc\x4c\xbb\x4f\x57\xa9\x13\x41\x64\xba\xeb\x58\x31\x55\x69\x9f\x35\xe4\x46\xd0\xc0\xac\x4b\xc5\xf2\x7c\xca\x50\x36\x7b\x40\xd9\x11\x01\x35\x68\x9e\x4d\x59\x14\x7a\x5f\xe8\xfd\x8e\x4b\xa7\xbd\x0c\x22\xe0\x81\x51\x6c\x3e\xa5\xc6\xbf\x68\x99\x56\xfd\xba\x88\x08\x7d\x86\x08\x44\x6e\x58\x7e\xbf\x68\x5a\x88\x90\xfa\x58\x0a\xfc\xf6\xba\x31\x26\xaf\x36\xc3\xec\x3b\x9d\x82\x88\xb8\x4a\xac\xad\x3d\x02\x6d\x37\x76\xab\x6c\x7f\x56\x24\x0d\x41\x38\x87\x1f\xb5\x41\x4e\xd5\x17\x07\x1e\xb6\x43\x88\x67\xbc\xf9\x0e\x50\x3f\xc0\x07\x3a\x94\xe5\x87\x3f\xd2\xba\x86\x2e\x09\xfc\x47\xbf\x90\x2b\x88\xf2\x5d\x6d\x6a\xbe\xe9\x4f\x19\x41\x83\xd8\x6a\x99\x59\x15\x47\x64\x24\x8d\xee\x34\x55\x01\x2e\x4f\x7f\x14\x79\x5a\x54\x43\x73\x97\x89\x25\x40\x24\x1e\xe0\x93\xa9\x6a\xfe\x8e\x2f\xc7\xb4\x8b\xce\x70\x52\x30\x16\x32\x83\xcf\xb0\x66\x69\x63\x52\xb3\xe0\x8c\xe0\xcf\x68\x19\x36\x36\xbc\x6f\x46\x0e\x7f\xb0\xf0\x34\x05\x0c\xb4\xda\xb9\x2a\xfc\xd0\x98\x72\xf1\x0a\x6b\x54\x7d\x6a\xba\x10\x24\xc2\x84\xdc\x52\x93\x1e\xd2\xff\x9c\x53\x95\x8e\xe1\xc6\x42\xfa\x06\xcd\x8c\xbc\x13\xbc\x8d\x6d\x53\x46\xc8\x80\x99\xf4\xa9\x67\x9b\x9e\x83\x55\xb9\x1a\xae\xe6\x42\x26\x12\x67\x96\x06\x98\x69\x9d\x66\x69\x47\x99\x11\x92\x29\x30\xda\xa5\xcd\x0d\xc5\x5d\xa9\x9a\xca\x74\x84\x12\xcc\xfa\x82\x7d\xf2\x52\x0d\x88\xa1\x02\x22\x86\x50\x70\x0b\xcf\x9f\xa6\x19\x0a\x48\xfc\x80\x39\xa2\xbd\x3c\xb7\x73\x02\xa4\x87\x49\xd7\x7d\xab\x55\xba\xbb\x9c\xac\xc0\xe2\xf5\xc5\x80\x56\x48\x49\x43\xd8\xa8\x6d\x5d\x56\xb3\x5c\xcd\x53\xf5\xe5\xca\x91\xcf\x7c\x46\x7a\x56\x09\xa4\xbd\x59\x3b\x9e\xdd\xd0\x5f\x05\xe9\x49\xe9\xb3\x16\x3f\x8d\xad\xde\x68\xba\x3f\x29\x7d\xce\x91\x87\x23\x0b\x05\x48\x15\x40\x6c\xc6\xae\x30\xf8\xb3\x31\x26\x4b\xfa\x32\xc2\xe6\xd6\x4c\xa9\x27\xf8\x74\x6a\xf3\xe7\x41\x53\xe2\x7f\x97\xd5\xca\x00\x02\x7c\x9f\x8c\x86\x74\x87\xcb\x19\x44\x64\x32\x0c\x8c\x68\x6b\x13\xb5\x6f\x78\x5a\x56\x77\x45\x69\xd9\x8b\x37\x93\xee\xae\x56\x22\x43\xe2\x63\x0b\xb1\x03\x1e\xfc\xaa\xd8\xf7\xd3\xe8\x4b\x86\xc0\xb0\x61\xd9\xbc\xfe\xb3\x5c\xb9\xbd\x65\x3d\x5b\x4c\x47\xa9\xed\x73\x0c\xb5\xc0\xf2\x9c\x3e\xe7\xf8\xdc\x9b\xf5\xfb\xf7\xee\x13\x89\x6c\xc1\x13\xbb\x1c\x0b\xde\x84\xb5\x46\x2a\xbb\xff\x62\x4a\x12\x1b\x9b\xc9\x5d\xc7\xe1\x1e\x0a\x95\xb8\x55\xa2\xff\x4d\x83\x5b\x4d\xa4\x01\x6c\xdf\xad\x9f\xfe\x0a\xfa\x65\x20\x49\x54\x68\xd4\x0f\x76\x8b\x97\xee\x05\x94\x31\x33\xc8\xa5\xe7\x1c\xb6\x35\xcf\x15\x2f\xd5\xe4\x8a\x77\x5d\x58\x90\xb1\x34\x60\x06\x7e\x3a\x65\xc8\x1a\xec\x3b\x3a\xfc\xac\xe1\x67\x3f\x4f\x23\x85\x85\x6e\x28\x32\xc4\x8a\x99\x7c\xda\xfd\x30\x2a\x3d\xde\xdc\xec\xbb\x97\xcd\xcb\xeb\x66\xb5\xda\xb6\x07\xb4\xc4\x06\x4d\x5a\x6d\xd3\x43\xee\x7a\xe1\xfe\xe8\x75\x97\x49\x64\x48\xcc\x0f\xc5\xe1\xb5\x42\x85\xf4\x26\x02\x42\xc6\xfe\x75\xf6\x28\x13\x25\x90\x14\xbd\x08\xf7\x3d\x67\xdc\x9f\x2d\xfb\x92\xc5\x31\x16\xb1\x70\xb3\x42\x49\x97\xed\x1b\x0a\xaf\x8c\xca\xc2\x92\x51\x89\x39\x93\x46\xd4\xd7\xdd\x39\x57\x25\x4f\xc7\xde\x0b\x20\x99\x54\x58\x38\x44\x39\x42\x63\xf2\xde\x04\x95\xd3\x81\x94\x64\xca\x74\xaa\x4d\xc8\xfa\x04\x9f\x3f\x89\xba\x24\x17\x11\x2a\xda\x7d\x94\x50\x34\x0b\xdb\x73\x7e\x28\x3a\x44\xa6\xe4\x8a\x23\xbd\xe1\x74\xae\xde\x66\x75\x71\xb4\x6d\xd1\x1b\x40\xbd\x76\xb7\xed\xff\xaf\xb7\x7d\x0d\x5a\x86\x52\x86\x31\x8a\x3d\xea\x73\xfe\x65\x70\xb9\x92\x13\xc3\x58\x78\x03\xf9\xfe\x78\x59\x16\x39\xef\xc1\x40\xa4\x0a\x23\xa7\x5c\xb9\x3b\x67\xe9\x28\x01\x92\x2a\xf1\x69\xd7\x41\x98\x9f\x1d\x4c\x46\x02\x21\xa8\x73\x74\x2c\xe4\xbb\x55\x6d\xbd\x71\x53\x34\x63\xb8\xee\x0f\xda\xbd\xd5\x15\xf6\x68\xf0\xbd\xca\x0b\x8d\x26\x45\xf3\xb3\x96\x2b\x4b\x66\xb8\x85\xc3\x53\x5e\x12\xe0\xc6\xfc\x52\x54\xd0\xab\x73\x2a\x8f\x89\xc0\x34\xb7\xee\xe0\xc8\xb3\x9e\x4d\x02\x28\x4f\x24\x74\x28\x38\x60\x29\xa1\x58\x99\xb9\xcd\x67\x53\x9e\x0a\xb8\x6f\x9d\xd3\xc7\x9e\x4f\xa0\x7c\xc9\xf0\xb4\xe8\x2d\xe8\x96\xbc\x6e\x0e\x28\x5f\x02\x42\x22\xb9\xb2\x9b\xeb\x28\xe1\x55\x81\x17\xa3\x3e\xd7\xd1\x94\x2e\xf9\xb6\x2e\x81\x5f\xb9\x12\xdf\xea\xac\xb8\x93\x84\x41\x10\xda\xdf\x88\xaa\x1f\xe3\x2f\x89\x29\xc6\xfd\x7f\x1b\x94\x5d\x67\x68\x5e\x4c\x31\xff\x47\x27\x0f\x19\xc3\x0d\xfe\x64\x02\x73\xc3\x9b\xeb\xbf\xb2\x2a\xe4\xa1\xd7\x99\x25\xb3\xd1\x97\x87\xc2\xc7\x7d\xa1\x79\x52\xa2\x87\xb0\x72\x87\xb5\x9f\x4c\x48\x76\x7e\x4e\x19\xa7\x83\x8a\x62\xdf\x50\x26\xcf\x39\x94\xdc\xfa\x9b\x0c\x3a\xff\x2a\x52\x40\x2d\xa2\xab\xad\x54\xbc\x14\xd9\xf4\xda\x69\x3f\x43\xbc\x50\xaa\x5e\x39\xae\xf9\xad\xeb\xdc\x62\xd5\x7f\xab\x2c\xa7\x68\x28\x88\xd5\x73\x33\x32\x03\x6b\xf5\xac\x07\x32\xd5\xe3\x0f\x08\xe1\x59\x48\xcb\x16\x40\x99\xea\xda\x5d\x51\xde\xf3\x23\xac\x47\x41\x86\x4a\x02\xd0\x0e\x51\xc0\xf3\xb4\xbe\xcc\x0b\xc4\x9c\x8e\x46\x71\x62\xf0\x89\x3c\xcb\x04\x97\xef\x6b\xcc\x8d\x6d\xdc\x32\x60\x09\x8f\xdf\xc7\x89\x89\x9f\x88\x10\xa1\x84\x92\xe7\x06\x8c\x6e\x84\x24\xa7\x2f\x26\xd1\x91\x67\x58\x0a\xae\x21\xfb\xc8\xd3\x51\xfd\x41\x31\x96\x38\x27\xc6\x25\x1c\x0b\x89\x58\xf2\xd5\x11\xca\x03\xe4\xf2\xaa\xe5\xe1\x3e\xa4\x22\x24\x94\xcc\x5e\xe6\xeb\xdd\xcb\xec\xe5\x9f\xfb\x6f\xb3\x87\x57\xd4\xff\xd8\xaf\x9f\xf6\x5d\x39\x52\x71\xdf\x43\xc5\xdd\x2a\xe3\x1f\x30\x80\x32\x28\x1e\x26\x8e\xe9\xd5\x86\x3b\xcf\x27\xc8\x7b\xbd\x23\xc5\x05\x47\xe2\xaa\x34\x68\x11\x38\xf1\xf4\x36\xb5\x7b\x6a\xe7\x55\x22\x56\x86\xcf\x36\x5b\xec\xd6\x8b\xd9\xc3\xe2\xe5\x75\xbd\x5d\xbd\xec\xef\x76\x0f\xfb\xed\x66\xb5\x5a\xba\x9f\x23\x24\x08\xde\x36\x81\xdf\x1f\xb8\x6d\x79\x8f\xee\x97\x0c\xb8\xe1\x8c\xf6\xa3\xf3\xea\xcb\x54\x47\xbd\x7d\x6a\x12\x8c\x3c\xd7\xee\x0d\x29\xa6\x18\x01\xb8\xaf\x55\xdc\xc0\xf4\xbe\x2e\x92\xf5\xe2\xb9\xfb\x6b\x82\x25\x0a\xbc\xee\x6f\x46\x6b\xa9\x3d\x26\x22\xa4\xe1\x9c\x40\x9e\xb3\xe7\xcc\x65\xb5\x0a\xbc\x48\x1a\x28\xf2\xbf\x41\x3a\xe3\xe2\xe1\x6b\x08\x44\x5a\x78\x5d\x75\x86\x5b\x46\x27\xbd\x78\x54\x01\x97\xc8\x22\x30\x65\x80\x3f\xcf\xa9\x7c\x5f\x64\xcd\x0a\x6f\x1b\x35\x63\x24\xe5\x6f\xb6\xaa\xed\xd9\xb5\x0f\x2a\x71\x98\x18\xa3\x90\xe3\x0a\xc1\x4a\x2b\x82\x7e\x3e\x8b\x3e\x05\x4f\x69\x30\xa6\xff\x1f\xc5\xaf\x75\x01\xdd\x47\x9a\x44\xa3\xcb\x00\x5f\xac\xa8\xfb\xb0\x07\x0c\x9e\xef\x53\xda\x4a\xda\xa7\xb2\x6a\x0f\x10\x16\xf7\xfc\x46\x6d\xbc\x33\xe1\x1c\x0d\xe0\x87\x46\xf2\x69\xf1\xc6\xcb\x03\xec\xac\x0d\xdc\x97\xf6\x28\x8b\x45\xaf\x84\xf3\x04\x9f\x56\x7d\x63\x10\x79\x83\x1f\x7b\xd8\xc3\x5c\xf0\xf2\x8e\x5b\x85\x72\x6b\x79\xe0\xe4\xa2\xc0\x8f\x13\x5c\xbe\xab\xb7\xe2\xd3\xb2\x24\x87\x6b\x32\x04\x7e\xe4\x7a\xc4\x4b\x7e\xc1\x25\x6f\x3f\x9c\xc9\x10\x44\x11\x89\x6c\xa5\xe8\xa9\xf8\x7c\xe0\x55\xdd\x2f\x20\x40\x20\x0d\x54\xb1\x2d\x71\x40\x68\xed\x00\xaa\x0e\x79\x71\x65\xb5\x37\x91\xd5\x40\x48\xb4\x36\x95\x8f\xcf\x75\xe7\xaa\x7d\x33\xf2\x80\x48\x9b\x7e\x90\xb1\xbc\x3c\x9d\xfb\x4e\x7d\x00\x31\x0b\x90\x41\x70\x30\x9a\xc5\x47\x8e\xaa\xb1\xa7\xa2\xac\x97\x69\x75\x3a\xd7\xb0\x3c\xa3\xf6\x7d\x55\xf3\xe3\xa9\xfd\x90\x0a\x30\x2b\xe1\x4a\x6d\x73\x7e\xaa\xde\x8a\x61\xe2\x06\x14\x42\xd2\xba\x1b\xbf\xbe\xac\xb7\x3d\xb0\x88\x1d\x92\x50\x8a\x18\xb7\x4d\x8f\x71\xd7\x1e\x32\x22\xdd\xf6\xaf\x75\x61\x2c\xc4\x86\x83\x18\x4b\x98\x9d\xee\x7d\x36\xe8\x78\x10\xe0\x5a\xf1\x75\x33\xfb\xcd\xe4\x04\x18\xe7\xd1\xc0\xb1\xdf\xe8\x9e\x74\x04\xf8\x5b\x5f\x25\xb9\x1f\x5a\xea\x44\x9a\x9f\xfb\xa1\x19\x70\xcf\xc7\xa6\x9a\xed\x36\xba\xbc\xc3\x86\xc1\xbd\x5a\x1c\x70\xca\x98\x68\x97\x9d\x5e\x3a\x37\xd5\x33\x01\x19\x6b\xc4\x5a\xec\xe0\x20\xdf\xf8\x4f\x0d\xb6\x00\x24\x25\xf8\xb6\x9b\xc0\xbf\x75\x0d\x1c\xdd\x56\x49\x63\x53\x9f\x31\x94\x28\x80\x6a\x12\xad\x00\x8a\x90\xd8\x77\xab\x4d\xa7\x96\x3f\x98\xf3\x8a\x24\x5a\x3b\x69\x0c\xf9\x7e\xb0\xf5\xa0\xac\x28\x5d\xfd\xcd\x2d\xea\xcd\xfe\x85\x6a\x59\x5c\xd9\xca\xee\xce\x55\x38\x01\x12\xc3\x70\x76\xad\xea\x4e\xbb\xca\x3c\xbe\xf6\x1c\xcd\xab\x6c\xc4\x26\xca\xaa\xee\x07\xd7\x03\x4e\xb6\xf6\xc2\x04\x3d\xcb\x4e\xe9\xe1\x70\x99\xf3\xfc\x7d\x78\x65\xda\xf7\x84\x71\xda\x2d\x8a\xcc\xca\x74\xbb\x23\x4a\x52\x53\x0d\x86\x77\x07\x93\xb2\x87\x82\x44\x62\xd2\xf8\xcf\xb3\x7a\xe3\xb2\x8b\xd8\x75\x20\x25\xb3\x4b\xe1\xa6\x84\xae\xb1\x64\xe1\x59\x93\x73\x49\x47\x14\x42\x23\xa4\xb2\x9a\xed\x56\xfb\xa7\xd9\xe3\x6a\xff\xf2\xfc\xe0\x68\x27\x3a\x12\x2c\x66\x2d\xed\xa4\xc9\xa0\xb7\xf0\x81\xd1\xe2\x55\xd0\x63\x3f\x41\x38\x60\x76\x03\xcd\x36\x65\xab\x55\x46\xbc\xcc\x0d\x10\x3e\x62\xdf\xcd\xec\x68\x12\xdf\x95\x3a\xcb\x81\xe2\xfb\xc4\xbb\xe3\xd6\x50\x4d\xb4\x0f\xb4\x07\x56\xb3\x70\x25\xab\xac\xef\x7e\x4d\xf4\x3f\xe3\x35\xea\x5f\x7e\x27\xe9\x69\xed\x43\x06\xcb\x84\x8e\xc3\x98\x27\xa6\x6c\x76\x80\x00\xb9\x71\xee\x27\xc7\x11\x84\xc6\x00\xcc\xd8\x72\xe0\xc1\x6b\xd1\x00\x4d\x15\xc1\x53\xe8\x34\x57\xab\xe3\xa9\xbe\xcc\x21\x07\x8d\xbd\x5c\x13\xbd\xda\x71\x49\x98\x20\x19\xe8\xc0\x8f\xf0\x7c\x3a\x15\x79\xb7\xa3\xe9\x24\x21\x48\xf1\x7c\x2b\x8e\xc7\xb4\x7d\xea\x4c\x10\xde\x79\xda\x1f\xd3\xdc\xc8\xfb\x54\x3d\xba\x8c\x1b\x29\x4d\x0b\xa0\x82\x7a\xf6\xc1\xd3\x8c\x8b\x0c\x90\x07\x6d\xae\x68\x38\x98\xc7\x46\xa8\x55\xf0\x5a\xbe\x2d\x3a\xa8\x9b\xdb\x46\x35\xa7\xca\x37\x72\xbb\x0f\x85\x7c\x3f\x8f\xc4\xe0\x34\xa7\x10\xf9\xae\xc0\xb0\x2c\xcf\x87\xee\x83\xcc\x28\x8d\xa1\x23\x96\xd1\xa2\x18\x7f\x96\x07\xac\x47\xc1\xb2\xbd\x9f\x4e\xc4\xbd\x19\x11\x23\xb9\xa1\xb9\x4d\x8e\x8f\xd6\x63\x68\x68\x2e\x01\x2f\xd5\xb5\x23\x90\x71\x6c\x8f\x09\x3f\xc4\xfe\x65\x55\x8a\xd1\x35\x8b\x44\x61\xbc\x85\x77\xb0\x7a\x43\xde\xf9\xc4\x2a\xa6\x05\x8b\x30\xfb\xdf\xdc\xcd\xfa\xfb\x98\x16\x3c\x56\xfd\xfc\x66\x96\x5f\x56\x2f\x8b\x20\x08\x7f\xd2\xf8\xd3\x32\x4c\x8c\xcd\x1f\xd6\x64\xad\x42\x72\xfb\x4a\x48\xea\x61\x0f\x62\xf6\x6d\xb6\x7e\x98\xcd\x1f\x56\xfb\x97\xd5\x76\xf5\xf2\x6d\x35\xc4\xc4\x69\x99\x88\xc8\xc1\x22\xf6\xa6\x59\xb7\x6f\xe6\xda\xf7\xb4\x7e\xfb\x9a\xe6\xf5\x53\x51\xef\x9a\xbc\x71\xde\x7f\xdf\x54\x18\xc6\xd2\xe5\x46\xe8\xff\x80\xeb\x49\x7b\xa7\x54\x64\xb6\x8c\x16\x03\xf1\x92\xca\xf1\x4a\xa5\x88\x2f\x6c\xb3\x6b\x5e\x36\x87\x87\x57\xa7\x62\x40\x04\x86\x15\x9d\x07\xd3\xba\xbd\xd1\xc2\xd2\xda\x33\x02\xf7\x5c\xa9\x07\x23\xa1\x7d\xc3\x92\x70\xf8\x1b\xb4\x8a\xf0\xc5\xd0\x50\x1b\x7d\xb3\x47\xde\x24\x96\xda\x2e\xdf\xda\xf3\x24\x61\x16\x89\xf7\x74\x3e\x5a\x11\xb1\xf6\x1d\xe8\x6d\xab\x53\xe7\xd7\x9e\xaf\x7d\x94\x73\x41\x32\xd0\x6b\x7e\x32\x7a\x54\xed\x41\xed\x25\x4e\x6d\xf6\x08\xdf\xf8\xb5\x5d\xcb\x4f\xe3\x59\x3c\x03\xef\x08\x7c\x6d\xe6\xd4\xdb\xd2\xdc\x77\x05\x61\x10\x1b\x1f\xfe\x22\x5f\x9e\xab\xba\x35\x01\x68\x07\x90\x04\xeb\xef\x8e\x27\x6e\x84\x59\x9c\xe2\xd1\x10\x76\xa8\xbd\x20\xf6\x49\xe2\xd2\xdd\x6c\xba\xf5\xa0\xbd\x28\xe2\x38\xab\x8b\x4c\x2d\x4a\x5e\x43\x85\x72\x43\xf6\x20\x89\x0d\xd1\x1f\x05\x4b\x78\x05\x63\xfb\xc9\xe1\x95\x12\xce\xb4\x03\xb1\x6f\xb2\xe2\x5a\x9a\x76\xf8\xcd\x04\x9c\x8d\xa3\x6e\x82\x20\x4b\xe9\x1d\x9e\x32\x66\x22\xb2\x73\x78\x03\xb5\xb8\xec\xd2\xcc\xe5\xf5\x7e\x1f\xcd\xa4\xbd\x58\x08\x42\x5b\x3f\x4d\xc7\x76\x18\x9e\x8d\x7a\x31\x6e\xdf\x0f\xaf\x0b\x77\x85\x89\x32\xc6\x50\x1b\x7e\x79\x4c\x3b\xf3\x21\xed\x31\x2f\x46\xde\xd2\xf6\xf1\x65\xd7\xd5\xc7\xb4\xc7\x42\x62\x4d\xe9\x41\xbe\xdf\x01\x6c\xe5\x1b\x5c\x69\x43\x36\xc3\x8c\x26\x44\x5a\xf5\xda\xd5\xda\x63\x34\x26\xcc\xbd\x93\xe5\x07\x94\xad\x66\x5a\xf7\x2b\x99\xd6\x88\xc4\x77\xcd\xb5\x45\x5a\x8f\x6f\x0b\x0f\x02\xc4\x79\xef\xab\x37\x5e\xde\x10\x87\x1c\xdd\x6d\x11\x6a\xd9\x3a\x47\x7f\xf0\xac\x0f\x96\xd6\x9e\x60\x92\x75\x90\x43\xb4\xdd\x42\x39\xdd\xf6\xb8\x96\xcc\x60\xc5\x2e\x0e\x54\xd6\xb5\x9f\xb5\x27\x09\xc7\x8a\x52\x3b\xa9\xd3\x22\x6f\x6d\xf8\x7f\x13\x85\xe9\x4e\xa5\x0c\xf9\x76\xdb\x5c\xd9\xaa\xaa\x5b\x6b\x5d\x7b\x1c\x64\x10\xda\xfa\xc7\xca\x40\x34\x5a\xca\xf7\x20\xcc\xd6\x5e\xb3\x3c\xc9\x16\x85\xb9\x4c\xab\xba\xcf\x2d\xb7\x71\x8b\xf6\x74\x40\x95\x3d\xe1\x7a\x89\xba\x7c\x93\x21\x53\x33\xd0\xc0\x32\x8d\x1c\xa6\xd9\x2e\xe7\x97\x0d\xbf\x40\xfb\x78\x75\xa0\xa9\xe3\x37\xed\x16\x53\x61\xad\xf6\xbd\x20\x61\xb1\x4b\x5c\x5e\x40\xc1\x71\xe0\xd3\x3e\xb8\x06\xdf\x53\x12\x95\x21\xd0\x98\x6c\x88\x2e\x9f\x7c\x07\x7d\x1f\x0c\x03\x40\x16\x59\x06\xd2\x18\xbc\xdb\x5f\xe7\x07\x7e\x60\x0c\xa5\x6a\x38\x7d\x19\xd7\x0e\xb4\x1f\x10\x99\xf4\xe1\x74\xa8\xf9\xf7\x0b\x13\x3d\xed\x87\xd2\x30\x00\x8d\x97\xdf\x43\xc1\xd5\xa8\xb9\xa7\xfd\xc8\xf3\x91\x34\xff\xac\x52\xb4\xd5\x1a\xdd\x90\x38\xe4\x12\xe5\xef\xe5\x7f\xce\x69\x6e\x5b\xd4\xa3\x31\x34\x4e\x30\x65\xda\xbd\xf1\xbc\xa8\xfe\xea\xcf\x08\x9f\x26\xc6\xff\xb0\x84\x4a\x9e\x61\x04\x74\x19\x55\xe4\x9a\xd1\xc6\x63\xa6\xd9\x4a\x6d\x51\xef\x7b\x9a\x65\x28\xbd\x79\x99\xb9\xfe\x46\x7b\x6e\x61\x71\x82\xe7\x32\xef\x4b\xda\xd8\xc3\x49\x24\x30\x09\x35\x0e\xbe\x83\x5f\x95\x90\x90\x89\x81\x2e\xd2\xc8\xa7\xca\x8d\x8b\x45\x60\x35\x5c\x7a\xec\x2a\xed\x33\xcf\xc3\xec\xa7\x43\x28\xe2\x62\x3f\x75\x73\x58\x20\xa4\x91\x12\xbd\x43\x5e\xc6\xf8\x30\x15\x32\xec\x0c\x63\x3a\x4d\x39\x7b\x9c\x2b\x9a\x18\xfe\x1a\x57\x22\x55\xe3\xf9\xca\x15\x45\xe9\x5c\x2c\x6d\x99\xcd\x75\x7e\x6d\xb8\x3a\x98\xb5\xc2\xf3\x91\x75\x2d\xa0\xf6\x3d\xcf\x1b\x4d\x07\x11\x85\x18\xcc\x00\xaf\x2e\x66\xef\xba\x59\x1a\x72\x9f\x88\x43\xf4\xf0\x35\xba\x19\xf6\x8f\x92\x04\xb8\x7d\x18\xcb\xd5\x71\x6d\xbf\xaf\xc4\x3a\x7c\x8f\x7d\x49\x08\xb3\xae\xca\xc7\x53\x5a\xe4\xf7\xbd\x28\xf3\x56\xa1\x63\xf4\x83\x24\xf7\xb0\xd4\x62\x21\x9f\x8b\xe2\x68\x63\xf9\xde\xc6\xd4\x8d\x56\x81\x27\x88\x5b\xf4\x65\x91\x2b\xac\x89\xf7\x8b\xab\xcd\x18\x23\x36\xfb\x61\x60\xe5\xbd\xac\x41\xfb\x2a\x31\x56\x65\x0e\x71\x74\x5f\xf2\xbc\x86\x21\xdf\x45\xfb\x8a\xf9\x08\xd3\x92\xb2\xcb\x52\xda\x43\x4a\x75\x86\x34\x9b\xa2\xc8\x26\xfd\xa8\xb4\x0f\x41\xc2\x3b\x88\xe9\x16\x0b\x32\xd3\xaf\xbd\xa6\x5e\x14\x5b\x09\xa0\xb4\x84\xca\x31\xa5\x07\xf3\x40\x2b\x46\x5d\x39\x9f\x5f\xa6\xf3\xd1\xe1\x79\x03\x8f\x86\x88\x48\x6b\x16\x93\x17\xd3\x8a\x74\x47\x12\x23\x23\x76\x33\x06\x86\x1f\xf5\xac\xde\x34\x6f\x5a\xf3\x43\x06\x67\xf5\xc3\x08\x5f\xe3\xbb\xac\xf8\x4c\xf3\xc3\x57\x9e\xb6\xa7\xf5\x59\x82\xe6\x1b\xcd\x69\xb1\xeb\x7e\xae\xdf\x46\x1f\xd6\x81\xa5\x7b\x55\x6e\x79\xf9\xad\xc8\x2f\x08\xbc\x20\x11\xdd\x3d\xc2\xf5\xc3\x08\x31\xb5\xc9\xf9\xe8\x03\x24\x91\x46\xce\x51\xeb\x7f\xc2\x44\xa8\xe9\xc6\xc5\x21\x9a\xd1\x61\x19\x02\x73\xec\xf6\x91\xf7\x8a\x68\x3a\x08\x7d\x1f\x1f\xe7\x7d\x73\xff\xeb\xb4\x4d\x36\x75\x10\x26\xc6\x3b\xc4\x14\x24\x33\x38\xf0\x1a\x1e\xab\xc3\x16\xae\x24\x1b\x75\x10\x4a\x8a\x04\x47\x33\x29\x66\x65\x8d\x99\xed\x54\x9d\xeb\xf6\xad\x08\xc1\x37\xf6\x22\x6f\x4d\xaa\xd0\x5f\x28\x83\x88\x09\xe1\xf5\x66\xf7\x86\xcb\xf7\x2e\x7a\x77\xa3\x08\xd7\x68\x5c\x76\x34\x2a\x6e\x0e\x87\x75\x8b\x2c\x35\x19\x03\x05\x04\xfc\xd8\x82\x05\x1f\x8a\xc3\xaa\x2c\x8b\x72\x56\x1e\xfa\x1a\xbc\x3a\x20\x3a\xc1\x08\xed\x8f\xf5\xd3\xfe\xee\xf9\xf5\x69\x69\xba\x24\xb3\xe5\xf2\x65\xb5\xdd\xba\x51\x71\x00\xa6\x43\xec\x68\xe3\xa3\x27\x19\xc7\x2a\x30\xaf\x47\x71\x1a\xaf\xd7\x01\x0d\x8c\x72\xe1\x7e\x5f\x17\x4b\x90\x28\xab\x3d\xfa\x3c\x4d\x22\xdc\x8b\xef\x8b\x4c\x4d\x2c\xf9\x01\x95\x06\xda\x59\xbd\xa5\xba\x9e\xa7\x75\xf5\x82\x32\x31\xd7\xe5\x8d\x66\xa8\x50\x7c\x08\xdf\x8e\xdc\x65\x24\x42\xca\xa0\x67\xb8\xd6\x2f\x46\xe9\x20\x91\x8a\x23\x15\x66\xb1\x1b\x7d\x7d\xa2\xe2\x80\x74\x50\x49\x2b\x36\x79\xbd\x08\xf7\x17\xe3\xc9\xa0\x2a\x60\xc4\xc3\x82\x97\x36\xc2\x68\xdb\xba\x38\xf5\xda\x2d\x3a\x60\xcc\x90\x91\xe6\xbb\xc5\xeb\xef\xd5\x57\x75\xc0\x84\xc4\xf2\x1a\xaf\xaa\xf4\x90\xdf\xc8\x59\x46\x77\x89\x49\xdf\x8b\x7a\x7e\x49\x0f\xc0\x15\x94\xa2\x68\x52\x49\xf7\x5b\x78\x48\xf1\xa6\xe3\x4e\x38\xcb\xb2\xd7\xbc\xea\xb6\xd1\x40\x78\x04\x63\x3f\x55\x34\xbb\x70\xe7\xd3\x3d\x48\xca\x02\x11\x44\x8e\xbb\xfa\x04\x9f\xd6\x71\x7d\xdc\xa0\xfe\xf9\xbb\x24\x42\x82\x02\xf1\x06\xd8\x74\x9f\xea\x7a\x82\xed\xaf\x03\x15\x19\xd6\x19\x57\x6a\x59\xc8\xda\x22\xf4\xc2\x60\x12\x31\x7c\x03\x4f\xd1\xff\xaf\xdd\xd6\x86\xda\xce\x3a\x00\xad\x51\x85\x64\xe1\x9c\x5d\x9a\x18\x98\x87\x76\xbf\x5b\xc2\x48\x10\x42\x87\x9e\x36\x86\x13\xc6\xc2\x02\xeb\xcf\x59\x0b\xfa\xd1\xa1\x0f\x0c\x21\x95\xa7\x32\xfd\x1b\xb7\xaa\x81\xad\xac\x0e\x7d\xcd\x20\x6e\x37\x53\xb4\x73\xb7\xf1\x95\x51\x2c\x73\xaa\x24\x3a\x0c\x03\x2e\x68\x6f\x61\x59\x42\xdd\xb9\xde\xeb\x30\x02\x8d\x33\x6f\x53\xa6\x47\xde\x5f\x91\x42\xc2\x24\xe2\xf9\x5e\x66\xbb\xd5\x7e\x3b\x7b\x58\x21\xb9\x30\x70\x87\x63\xa9\x49\xeb\xc9\x6d\x6c\x17\x76\x5f\x87\x37\x3f\xa4\x94\x7a\xa4\xcd\x15\x56\xcd\xc0\xdb\x4d\x70\xf7\x99\xc4\x44\x8c\xcd\xef\xfd\x31\x5a\x50\x42\xaa\x42\x74\xff\x01\xf4\xd0\xc1\xdb\x7a\xee\x70\xa5\x3a\x64\x91\x6f\xe4\x87\x6c\xf0\x8e\x81\x7f\xb5\x2b\x5c\x0d\xc1\xd1\x45\x86\x67\x65\x1c\x08\x31\xf1\x2b\x94\x70\x3e\xae\x7e\xd4\x25\xb4\x71\x43\xc8\x09\xa0\x06\x7c\x5a\xad\x65\xd1\xfe\x91\xf9\x4e\x51\x0e\x77\xb4\x4d\x2a\xeb\x73\x09\xa3\xa7\xcc\x95\x44\xd0\xd2\x3d\xff\x1b\xe1\x25\x23\x65\x1e\x1d\x72\xcd\xa8\xab\xdc\xb7\xae\xf0\xbf\x44\xcf\xfd\x4e\x0b\x51\x87\x42\xfb\x08\xea\xab\xd2\xda\x71\x47\xf7\xee\x7b\xa5\xcf\x9d\x0d\xc5\x2e\xad\xbb\xdf\x23\x2d\x31\x98\x2b\x75\xae\xae\x54\x21\x86\x4f\x57\xf9\x02\xf9\x0a\x55\x5d\x9c\x36\xa8\x97\xbd\x6f\x72\x2a\xdf\x9d\x4b\x85\x0c\x9b\x57\x2d\xd1\x64\x7e\x99\xf5\xda\x4b\x93\x41\x73\x08\xc4\xc7\x28\xfe\xbf\x5f\x1f\xd6\x0b\x57\x9f\x08\x21\x11\xdc\x90\xbe\xec\x83\x5d\xa6\x25\xc8\xdb\x86\x9a\xc3\xa7\x00\x3a\x42\x7d\x92\x7d\x73\x49\xcf\x9f\xf9\xf4\x5d\xb6\x83\x75\x14\x18\xdc\x92\xe1\x17\x15\xa2\xaa\x0d\xc3\xa1\x8f\x56\xf9\x25\x99\x79\x70\x4d\x5a\xd0\xd8\xc5\x6c\xc6\xe5\x65\xc1\xdb\x62\x48\xe4\x25\x1e\x6d\x25\x86\xe5\xf9\x78\xce\x3a\x83\x5e\x1d\x79\x5a\x22\xc3\x43\x9c\x2f\xf3\xf9\x62\xf8\x7e\x45\xbe\x36\x3a\x6c\x5f\x5f\x77\x61\xb4\x7f\x59\xed\x66\xce\xed\x5c\x47\x41\x18\x62\x25\xa8\x95\xba\x1f\x84\x5a\xc3\x47\x19\x05\x4c\xcb\xb6\xa5\x5d\x64\xaa\xf8\xcc\xbf\xf4\xda\x0e\x3a\x0a\xb4\x8a\xfc\xfe\xc6\xd0\x0b\xdf\x46\x4b\x6e\x14\x06\xcc\x1a\x91\x63\xe9\x63\xc1\xab\x37\xc1\x47\x35\x55\x1d\x45\x5e\x82\xa3\x9a\xd9\x83\xaf\x45\x8b\x15\xd0\x51\xac\x03\xdf\x10\x84\x5e\x73\x8d\xc2\x3e\x53\x72\xd5\x3a\xa2\x1e\x41\xdc\x0b\x12\x98\x04\xcf\xdf\xbf\x15\x2d\x53\xc1\x9d\x2b\xd1\x8a\x39\x54\xd4\x7d\x09\xb7\x9e\x7b\xc4\x44\x10\x77\x8c\x1f\xa3\x7e\x33\xf5\x74\x5b\x88\xdd\xd4\x14\x48\xda\x93\x25\xb8\xba\xff\x71\x11\xb6\xd9\x7c\x85\x68\xd4\x11\x8f\x63\x6c\x3e\xe9\xc2\xda\x1b\xab\x2b\xf7\xd4\x5b\xec\xf7\xe1\x4f\xe7\x94\xe3\x94\x9d\x67\x6d\x5e\x18\x71\x11\x58\xb6\x48\x6d\xfa\x7c\xad\x1e\x69\xf7\x39\x11\x6b\x5c\xd8\xf6\x18\x3f\xa1\xb6\xc3\x14\x28\x4c\x47\x42\xf9\xd4\x58\x13\xf2\x6c\x7e\xbe\xb4\x69\xd3\xf4\xac\xff\xe9\xcb\x10\x09\xed\x23\x36\x63\x07\xf2\x2d\xed\x61\xee\x74\x24\x99\x49\x6d\x5a\xc1\x0a\x43\x1e\xbb\x2b\xca\x6b\xa5\x1f\x1d\x49\x6d\x24\xd4\x8b\x7c\x9b\x1e\xf2\xd7\xd3\x94\x39\x90\x8e\x14\x8d\x2c\xfd\xd6\x52\x45\x93\x9f\x45\xea\x6e\xc5\x88\x94\x32\xb2\x74\xc6\x4b\x06\x11\xc0\xbd\x5a\x41\x04\x3c\xc0\xdc\xd9\x86\xe1\xc3\xc0\xc3\xd5\x58\x22\xed\x85\x9c\xf5\x14\x71\xdc\xde\x41\x3c\x0a\x58\x4b\x58\x14\x79\x75\xce\xea\x9e\x9b\xdc\xf0\xd7\x13\x2f\x51\xd4\xc4\xcf\x4d\x42\xf2\x1d\x44\x7b\x06\x2e\x94\x74\xbc\xaf\xa5\x63\xed\xb7\x47\xb5\x44\xe3\xa7\x73\x05\x6a\x2d\x8b\xbe\x4a\xa4\x26\xbe\xc7\xad\xe3\xca\x73\x6e\x4a\x69\xc3\xef\xf4\x95\x9f\xd8\x5a\xf3\x5d\xd6\x84\xd3\x8b\x22\xcf\x8d\xed\x68\x35\x58\x13\x48\x10\x1a\xd0\x7c\x61\x81\xd2\x7f\x9e\xa1\xbc\xdc\xf3\xd1\x2c\x23\xa1\x24\x3c\x6c\x2b\xff\xce\x52\x61\xf8\x2e\x10\x12\x44\x88\x20\xbf\x87\x3c\x2f\x3e\x06\x81\x08\x21\x31\x48\xd1\x85\xd9\xaf\x79\x2a\x8b\x91\xd7\xae\x26\x44\x19\x95\x5f\xa3\xe4\xf3\x9c\x67\x17\x74\x6f\xd6\x29\xa8\x05\xfa\xe3\x8d\x41\x3f\xee\x73\x10\x80\xad\x7b\x2e\x78\x95\xe6\xc5\x64\xb9\x92\xc4\x21\xc3\x09\x51\x9c\xea\x35\x2a\x0e\x2d\xb2\x26\xae\x96\xee\x37\xc6\x82\x30\xee\x1a\x5c\x31\x72\x02\x02\x2f\x20\xdd\xe1\x98\x38\xfb\xf9\x1f\x96\x3e\xf6\xc7\xf7\xb7\x61\xb4\x40\x68\x68\xac\x51\x3a\x16\x02\xd6\x39\x7e\x62\x1c\x7d\xe5\xb4\xa3\x09\x8d\x02\x84\x47\xfc\x13\xe0\xfd\xae\x28\x9b\xed\xc4\xfd\x8a\x24\x22\x8e\x83\xd6\x53\x58\x72\xaf\xbc\x3d\xe5\xe0\xae\x26\x44\x72\xdd\x43\x01\x8e\x6e\x3a\x0b\xfc\x80\xb8\x9a\x80\x7a\x3a\x1f\xdd\x37\xb1\xd8\x8b\x59\x67\x23\x67\xef\xa9\xd1\x43\x1c\xcc\x21\x46\x29\xb3\x69\xef\xb6\x47\x52\x74\x47\x13\x23\x61\x23\xec\xae\x73\xcf\x2b\x34\x06\xd9\xb7\xdf\xa3\x43\x23\x44\xfa\x06\x8b\x66\xa9\xbd\xe7\x35\xbc\x03\x9c\xda\x7a\x09\xe1\x11\x4d\xfa\xc6\x18\x3b\x27\x35\xa7\x89\x60\x89\x48\x5c\xab\xf8\x60\xb0\x38\x69\x7e\xb8\xe7\x13\x9e\x92\x9a\x08\x69\x5a\x19\x07\xd3\x47\x72\x6b\xa0\x79\xf7\x0d\xe4\x6e\x38\x65\x24\x84\x28\x4f\xbe\xe7\xca\x24\xaf\xbb\x62\x7a\xeb\x21\x2a\x30\xf4\x9b\xba\x88\x83\x55\x2e\x0b\xd5\x77\xe2\x1a\x0d\x85\x28\xb2\xc1\xc2\xb6\x2e\xe4\xfb\x38\xad\x9b\xfe\x02\x20\xbe\x68\xe6\xc4\xb7\xdd\xf3\xf6\x57\x6c\x29\x4d\x80\x2a\xc4\x31\x99\x12\x0d\x0a\x92\x9a\x82\x9d\x4b\x1a\x88\xf6\x43\x2c\x7b\xe9\x02\x1d\x66\xdb\x3f\x27\x02\x7f\x5c\xcd\xdf\x4d\x99\xa7\x7a\xeb\x60\xe1\xc3\x88\x83\x68\xa9\x51\xdf\xb1\xd3\xa2\x7e\x82\xcf\x49\xf9\xcb\xc9\x8c\x99\x68\x10\xa1\xad\x06\x7e\x2b\x6a\x28\x9b\xff\x58\x50\xcc\x68\xa0\x4e\x10\x86\xff\x80\x6e\x75\x59\x5b\xf3\x73\xf4\x8e\xf1\xad\xeb\xd0\x2e\xc3\x9b\x18\x7b\x9e\x97\xf8\x3d\xe9\x97\x0d\x94\x8f\xa9\x2c\x8b\x3f\x9c\xaf\xb7\x8e\x3d\xae\x13\x2b\xf6\xf0\x84\xe4\x64\xb7\x34\x7f\x19\x9d\x4a\x2a\x6d\xb3\x37\xdf\x14\xa2\x21\xcb\xfa\x75\xef\xd8\x27\x02\x49\x1f\xdb\xd5\xe2\xf9\x69\xb9\xdf\x7c\x9d\x6d\x57\xfb\xcd\xcb\x7a\xb1\xda\xdf\xcd\x16\xbb\xe7\x97\x76\x20\x57\x9e\xcd\x43\x5e\x0a\xb4\x85\xba\x92\x0e\xd6\x71\xa0\x02\xc4\xa3\x1a\xf0\xe7\x4c\xfd\xfb\x6c\x54\x43\xfa\x78\x1d\x1d\x87\x1e\x8d\x5c\xa7\xb4\x86\x13\xce\xe9\x1b\xb5\xb7\x66\x2c\x62\xe3\xd0\xfa\xe3\xae\x25\x63\x62\xbb\x6a\x09\x79\x71\x4c\xf3\x5e\x14\x1b\x87\x09\xe5\x96\x10\x6e\xcc\x09\xce\x25\x8e\x37\xa5\xae\xeb\xb7\x2d\x0e\x19\xc1\x9a\x9d\x29\x5e\x80\xda\x63\x49\xde\x1d\xe4\x12\x61\x6b\x7b\x4b\x77\x75\x7f\x8f\x7c\x8a\x28\xad\x13\x4f\xd5\xa8\xd9\xed\x46\x50\x2a\x5a\x01\x52\x7e\x1c\x1f\x55\x11\xae\x5a\x9f\xd0\xde\x5e\x12\x04\xb1\x65\x31\xb4\x14\x06\x1d\x13\x12\x06\x5e\x2f\xb6\x36\x40\x79\x77\x10\x8c\x8f\xb1\x6b\x5c\xce\xcb\x22\xff\xbb\xfd\x8d\x71\x22\xf1\x17\xa8\x22\xe7\x68\x1d\x00\x19\xd4\x8e\x54\xa1\xe3\x98\x1b\x65\x47\xcc\x07\xcf\x79\x7d\x19\x09\x1c\xd8\x61\x94\x50\x94\x77\xb1\x76\x9f\xfb\x96\x91\x3a\xbc\x20\x2a\x99\xd3\x9c\xb2\xde\x6c\x68\x99\x9e\x8e\x1c\x07\x75\x9c\xc4\x54\x7a\x2d\x3e\x23\x57\x5b\x5c\x5e\x4e\x57\x18\x1f\x1d\x33\x2e\xd1\x8b\xc3\xe2\x52\x8d\x9a\x7a\x4f\x01\x4b\xc7\x0c\x02\x04\x48\xf7\x63\xb8\xf6\x98\x0e\x31\x68\x33\x10\xc9\xd5\xb1\xf8\x77\xda\x3e\x55\x1e\x2b\x24\x46\x21\x33\xa2\x75\xbc\x70\x47\x65\x18\x62\xc1\xc3\x30\x59\x9f\xbf\x3f\xad\xda\x67\x24\x13\xf3\xae\x3c\x6e\xee\xdb\x1e\xa8\x3d\xa4\xac\xdd\xcb\x16\xd4\xe6\xf9\x7b\x3f\xaa\x88\x55\xac\x4d\x49\x6d\xb1\xfb\xe5\x92\x18\x6b\x4f\x21\xe8\x74\x97\x9e\x90\x47\xe4\x4e\xa2\x03\x86\xda\x69\xda\xb8\xfc\x54\x0e\x75\xd1\xe7\xc7\x6a\xea\x51\x0f\xcb\xbe\x7b\x6b\x7f\x80\x0a\x55\x69\x7e\x18\xca\x44\x0c\xee\x33\xf5\x84\x49\x5b\x36\x69\x13\x61\x76\x6a\x62\x13\xf5\xbe\xe9\xf4\x9f\x7a\x32\x52\x76\xbd\x9a\x9f\x2f\x30\x80\x7f\x0c\x91\xb9\x9a\x7a\x60\xf4\xf1\xb7\xbb\xd9\x1f\xab\xfd\xe3\xeb\xc3\x6e\xbd\x79\x58\xb7\xb7\x98\x7a\x9a\x47\xcc\xb5\xf1\xac\xbe\xe3\x70\x0a\x51\x5f\xc6\x58\xc0\xfe\x3e\x7b\x78\x58\xed\xf6\xbb\x64\xf5\xd7\x7e\xf1\xfc\xf8\xf8\xfa\xb4\x76\x8a\x72\x9a\x06\x81\x31\x0e\x68\xde\xbf\xf7\x34\xcb\x76\x97\x13\x2c\xba\x1b\x15\xc8\x04\x61\xf7\x82\xb7\x7f\x0a\x19\xa0\x4c\xde\x31\xcd\x57\x79\x8d\x1a\x99\xed\x21\x15\x38\x1c\xf6\xba\x7a\x81\x0f\xc8\xcf\xb0\xe1\xe9\xb4\x9e\xb1\xa6\x11\x33\x4c\xc8\xaa\x2e\x17\x45\x2e\xf9\x14\xec\x49\xd3\x48\x7a\x26\x28\x38\x0b\x0c\x39\xd6\xf9\x47\x91\x4a\xb8\x3a\xe9\xf8\xe4\x60\xfc\x9f\xad\x57\xfa\x88\x60\xa9\x29\x21\x86\xd6\x7c\xea\xdc\x3a\x83\x2d\xe4\xa6\x33\xbd\xe8\x4f\x16\x42\x15\xd6\xd5\xde\x91\x3f\x3d\x64\xaa\x69\x4a\x63\x4d\x48\x0b\xc7\x1e\x3d\x02\x9a\x30\x2c\x97\x3b\x60\xcc\xa2\x15\x17\x77\x2f\x19\x4d\x42\x82\x3c\x33\x9c\xc5\x58\x91\x6a\x15\xe9\x35\x4d\xa2\xd8\xa0\xdd\xf2\xb4\xee\x5b\xe0\x69\x9a\xc4\x1a\xe5\xca\x1f\x8a\x03\xe6\x0c\xd8\x34\xf8\x15\x9b\x65\x38\xc5\x92\x84\x20\x1a\x74\xcc\xc6\x99\xde\xdf\x69\xa2\x08\x1a\xd9\x1f\x55\xdd\xb9\xc8\xb5\x3f\x07\xa2\xc4\x39\x18\x55\xc6\x95\xe0\x59\x77\x04\x0c\x4d\x99\x8a\x91\x46\x34\x9f\xed\x66\xf7\xed\x66\x49\x05\xa1\x8e\xa8\xbe\x5d\xdc\xb9\xbf\x4a\x16\x06\x76\x72\x3f\x1a\xed\xf8\x8e\xd2\xd9\x0e\xa1\xb6\x5e\x7d\x4c\xf3\xbd\x72\x5e\xf0\x13\x21\x33\x05\x9f\x1a\xd7\x5d\xe3\x2a\xd0\x29\xed\x6a\x0a\x84\xa3\x4a\x83\x75\xa1\x5e\x57\xdd\xf7\x4c\x4f\x59\x4d\x34\x6a\x0e\xe0\x2c\x49\xff\xc6\x2d\xf3\xb5\x4e\xb3\xca\x55\x61\x13\x2f\x48\x30\xb2\x3b\xc2\x81\x2f\x78\xae\x2e\xfd\x35\x2e\xf1\x44\xcc\x8c\xf8\x69\xee\xfc\xc5\xfb\x4b\x75\xe2\x4b\x62\xc4\x99\x8a\x34\x7f\x34\xb6\xd1\xee\x88\x16\x88\x74\x39\xe7\x6f\x69\x5e\x7f\x99\x2a\xab\x25\x81\xf0\x5d\x5f\x13\x5d\xf0\xd2\xc3\x84\xea\xf9\xe0\xa9\x26\xa1\x04\xdf\xc8\x86\xe0\xae\xb6\x1d\xc9\x2c\xba\x51\x9a\xa0\x21\xa1\x29\xed\x77\x91\x64\xff\x8d\x4a\x22\xcf\xd8\x01\x22\xd6\x39\x6d\x7f\x78\x94\x30\xe4\x7c\x9a\xcc\xfd\xae\x28\x9d\x76\x52\x37\x00\xb8\x95\xcc\x5d\xc2\x84\x89\xe6\xe4\xfb\x9d\x44\x8c\xa1\x38\xc3\xe3\xcb\x72\xdb\xbc\x36\x83\xdb\x1c\xa9\x56\x98\xed\x31\xcd\xd3\x4d\x51\x64\x2b\xb4\x32\x1a\xfd\x62\x50\xb8\x75\x3a\x15\x85\x1b\xf7\x88\x10\x2e\xc3\x2b\xd6\xa3\x3f\xdc\x87\x13\x22\x14\xe6\x0c\x77\x65\xbb\x20\x26\x44\x0b\x24\xe4\xa2\x0c\x5f\x0f\xc1\xab\x93\x38\x30\x8d\xce\x23\xe2\x3b\xb8\x75\xb0\x1c\x9e\x31\xa1\x81\xb4\x77\x1d\xc5\x99\xea\xb7\x61\xab\xda\x0e\x63\x84\xc7\xc6\x0d\xdf\xe1\x38\xdd\x97\x30\x6a\x44\x48\xac\x03\x64\x9a\x4f\x75\x77\x13\xc6\x29\xc6\x4e\xab\xc5\xe2\x97\xfb\x6e\x22\xb4\xd6\xb2\x93\x05\xd9\x7d\x02\x8c\x5c\x92\x9c\x67\x62\xef\xdf\x53\x27\x92\xda\x00\xf8\x8d\xff\xfc\xbc\x28\xcb\xe2\x13\xca\x66\xb7\x78\x18\x93\x42\x75\x02\xca\x33\x91\x08\xbf\xd1\xf7\x4f\x00\x4c\xe1\x11\x5f\xcc\x9c\x67\x0f\xc5\x07\x98\x75\xc8\xdd\x8c\x66\xc9\xf7\x0d\xcd\xdb\xf1\xa3\x74\xa2\x99\xc0\x89\xf2\xf0\xfc\xe0\x7b\xdd\x1f\x15\x22\xba\xe7\xe7\xcb\xcb\x6e\x51\xf7\x91\x35\x89\xe6\xde\x00\x6c\x7b\x57\x16\xe8\xda\xbc\xe4\x35\xbf\xb9\xfc\x0e\xdf\x52\xe4\x63\xf7\x1d\x6c\x37\x65\x61\xd4\xbb\xa7\x74\x6e\x34\xf3\x89\x8f\x5f\x59\x42\x5d\xf2\x5e\x97\x94\xf9\xc2\xa0\x20\xf3\x22\xb7\xfe\x67\xfd\xba\x12\xf3\x85\x88\xac\x30\x3e\x66\x64\xd3\x77\x8e\x05\x20\x02\x69\x0b\x72\x30\xd2\xa2\xd5\x2c\x4c\x74\x64\x45\x56\x16\x59\x0a\x06\x87\x80\xea\xbe\xc3\x59\xc8\x42\x4e\xfc\xe0\x37\xaa\xb5\xbf\xa1\x3d\xe0\xea\x75\x2c\xa2\xc4\x56\x33\xb6\x6f\xe7\x7a\x59\x7c\xba\x17\x1c\x45\xfc\x2c\xfe\x77\xad\xe6\x97\x01\x15\xd3\x0e\x21\x1e\xb0\x16\x4a\xbe\x3d\xf1\xcf\x7c\x56\x55\xdd\xf2\xd6\x87\x60\x5d\xff\xcb\x9d\x83\x27\x0a\xbf\xa6\xe4\xb9\x33\x8e\xdc\x01\x3f\xf6\x17\x1b\x16\x8b\x28\xb6\x45\x1c\x83\x49\xdf\xcb\x1e\x2d\xe4\xe7\x61\x0a\xa3\x01\xc5\xb6\xcf\xbe\xf5\x31\x19\x5d\x46\xe2\x7b\x8c\x75\x69\x75\x35\x3e\x4c\x02\x0c\x1f\x1c\x1c\xeb\x73\x24\xdc\xa5\x59\xc2\x38\xb6\x65\x2b\xae\x61\xe9\x0c\xfe\xa6\x93\x48\xc6\xfc\x10\x43\x02\xe4\xd3\x8f\xce\xc3\x02\xc0\xd4\x85\xab\xb6\x64\xd8\x2f\xa1\x8f\xcf\x14\x06\xd8\xb6\x12\xcd\xde\xe3\x7b\xe0\xe0\xdf\xcd\x11\x8e\x74\x70\x63\x35\xd1\xbc\x63\x57\xef\x3b\xe3\x31\xc5\xf2\xf6\xd2\x09\xf0\xdf\x08\x4d\x7e\xbe\x47\x30\x11\x1a\xd6\xe7\x5b\xd1\x41\x5d\x99\xf4\x25\xb1\xea\xe6\xeb\xc5\x73\xf3\xde\xae\xdb\x8a\x47\xfb\x23\x65\x12\x85\xb4\xab\x70\x6e\x6b\xfe\x7e\x05\x54\x9e\x2e\xed\x30\xf0\x05\x36\x11\xb8\x32\xaa\xda\x87\x92\xab\xb3\xbb\xc4\xff\xdb\x6d\x6e\x06\x21\xc3\x12\xc1\xa9\x49\x6c\xf7\xe1\xbe\x84\x23\x47\xb3\xad\xfd\x60\xdd\x62\x40\x0d\x0b\xe3\x91\xff\xd8\x34\x0b\x6d\xaf\xcc\xcf\xb4\x67\x0c\xcb\xcc\x36\x31\x98\xdb\x3a\xf4\x08\xe9\x59\xf3\x2d\x73\x3e\x06\xaa\x32\x1d\x87\xe8\x0a\x68\x01\x44\xe6\xa6\x5c\x77\x15\xcd\x68\xee\x91\xd8\x91\xd7\xf6\x58\xc0\x74\x7f\x4f\xa4\x68\x4d\xeb\x37\xc6\xbd\xa9\xe7\x49\xef\x46\xb1\x08\x05\x7e\xde\xd2\xc3\x1b\x54\xf5\x3c\x55\xeb\xaa\x6d\x4a\x72\x9f\x2b\x8c\x7f\xbe\xad\x5e\xb6\xeb\x67\xd7\x78\xe3\x41\xe8\x61\x22\x84\xb5\xf9\xc5\x1b\x6f\x56\xaf\x6d\xb7\x33\xf0\x80\x18\x50\xcb\x43\xaa\x61\x0b\xf5\xde\xf3\x92\xf6\x90\x26\x32\xb0\xf1\x58\xb3\x43\x57\xdb\x9a\xb7\xae\x03\x9a\x87\x1e\x43\x19\x23\x9b\x7b\xdf\xa5\x95\xe4\xd9\x3f\xc1\x69\x0a\x69\x1e\x06\x86\xae\xb2\xdc\xee\xf6\xb3\xe5\xb7\xf5\x76\xf5\xb2\x6d\x8f\x45\xc6\x81\xdd\xc2\x23\xc7\x64\x40\xcd\x43\xa6\x50\x91\x78\x95\x81\xac\xcb\x54\xf6\x9e\x59\x73\x0c\x6f\xfa\x7e\x4a\xb2\xaf\xaf\x6b\xae\x79\xe4\xf1\xc8\x4e\xf8\x43\xce\xf3\x7a\xc3\x73\xc5\xdb\x4b\x88\x98\x91\xe3\x87\x1f\xa7\xb4\xbc\xac\x4e\x85\x74\xd9\x07\x8f\x7d\x8d\xd5\x17\x44\x9f\x6e\xcf\x28\x81\x35\x1d\x22\xf1\x38\xf2\x30\xf3\xab\x9b\x5c\x64\x94\x22\xf1\x98\xf8\x18\x80\xa3\x8e\xeb\x21\xcd\x01\x4a\xe4\x0c\x6b\x2e\x47\x65\x0f\x1e\x53\x6d\xaa\x3b\xae\x2d\x6f\x79\x0f\xed\xa9\x2c\x3e\xac\x49\x88\x96\x5d\xa4\xc3\x63\x16\xa3\x93\x37\xfc\x48\xeb\x11\xdf\x80\xc7\x1c\xac\xb8\xe1\x5a\xf5\xdc\xe3\x2c\x15\xd1\x0e\xa2\x56\x70\x19\xeb\x2d\xf3\xf3\x65\xec\x57\xa5\x79\x12\x68\x6a\xde\xeb\x8f\xb4\x2a\xac\xed\xed\x20\x7a\xe7\xcd\x52\xeb\x19\x53\x8e\x63\x5a\x55\x58\x4e\x5b\x4c\x5b\xc8\x8c\xce\xcd\x25\x62\xbd\xb7\x75\x59\xe4\x87\xaf\x5d\x63\x8b\x27\xd2\xd4\xae\x1e\xd7\x4f\x88\xf8\x68\x55\x17\x35\x67\x9e\xa6\xa6\x86\xa8\x00\x8e\x03\x91\xd1\x41\xe0\xd1\xe3\x4d\x6a\xce\xa8\x01\x35\x37\x1b\xa7\x49\xa4\xa7\xdb\x30\x9c\x87\x31\x16\x06\x3e\x8a\x1a\x65\xb4\xdc\x9f\x63\xaa\x8c\x55\xec\x29\x2b\x2e\x8e\x51\x3e\xc4\x88\x8f\x9a\x21\xed\x7f\x86\x8f\x9a\x33\x19\x58\x76\xcc\x2c\xcb\xa6\x58\x16\x9c\xab\x98\x93\x4e\x05\xfb\x56\xb9\x9e\x0b\xcf\xc8\x92\x34\xeb\x09\xd6\x7c\x9a\x1b\xd2\x2e\xe6\x5c\x84\x01\xce\xe3\x55\xfd\x66\xd0\xe0\xb7\xd2\x3b\x2e\xa8\x92\x4e\x26\x13\x75\x1e\x0c\xa9\x20\x5b\xd6\x7d\x7d\x97\xf6\x1e\x09\x66\xf8\xc5\xc6\x9b\x7c\x7e\xee\xbb\x51\x6a\x2e\xb9\x02\x5b\x7b\xbe\x4b\xb3\xfa\xda\xdc\xd2\x8d\x83\xc8\xb4\xe3\x8a\xcf\x3f\xcf\x9d\xe1\xbf\xe6\x52\x1b\xe9\x0d\x55\xb4\x28\x15\x9b\x0e\x5f\x3d\xe8\xc1\x55\xa8\xc8\x84\xd6\x18\xf9\xa0\xeb\xed\x34\xf3\x49\x73\x45\x09\x88\x56\x66\x67\xbd\x78\xee\xa5\xec\x1c\x7c\x82\x42\x06\xed\x05\x41\x20\x89\x68\x09\xd3\x36\x0a\x1c\x9e\x10\x42\x86\x7d\xd8\x0a\x65\xbc\x5f\xe0\x03\xe5\x1b\x7b\xe7\xd4\x01\xb1\x2e\x27\xcd\xce\xfb\x02\xd5\xa9\xc8\xab\xeb\xd7\xa3\x9f\x2a\x70\x4d\x13\x5c\x84\xf7\xd6\x4f\x2e\x2d\x79\xfe\xc6\x7f\x06\xfc\x48\xa6\x30\x00\xbc\xc9\xba\xb4\x23\xa4\xa2\xde\xc9\x77\x48\x11\xcc\x3b\x8a\x99\x84\xe7\x29\xed\xbb\xda\xe6\x76\xff\xf0\xbc\xf8\x63\xb5\xdc\x07\xff\x34\xc2\xf0\x5f\xdc\x28\x62\x5c\x1d\x8f\x69\x6e\x8b\xb9\x0a\x31\x82\x88\xfc\xee\x95\xc1\x85\x97\x24\x08\xc7\xc7\x34\xf0\x4a\x8d\x78\x70\x07\x85\x4f\x7d\xdc\xe1\x3e\xa0\x4c\xf5\xc5\x76\x0f\x50\x9f\x70\xfa\xed\x76\x1f\xe3\x5e\xac\x9c\x4d\xff\xba\xd9\xa6\xda\xe2\x8c\xf0\x79\x2c\xed\x73\xfb\x9e\x8e\xf1\x78\x22\x88\xa2\x28\x6e\x2d\x46\x87\xc8\x3f\x37\x44\x46\x94\x75\x66\xb1\xe3\xa3\xca\x30\xde\x31\x68\x34\x2f\x98\xfb\xe6\xd0\x33\xa8\x8b\xcf\x32\xad\xa1\x35\xf6\x3e\xf7\xc5\x8f\xae\x20\x42\xff\xfa\x9f\x9f\xa4\x8d\x22\xf4\x25\x26\xbb\x73\x14\xcd\x1f\xf8\x60\x69\x11\x46\x1e\x82\xd1\xb6\xe9\xf1\x94\x81\x3b\x38\xf9\xd6\x89\x30\x01\xec\x0c\xed\x6d\x91\xa9\xdf\x8f\x6e\xe7\xab\x08\x99\x8f\xfe\xab\x5f\x1f\x47\x17\x1d\x79\x3e\x09\x7a\x76\x81\x7b\x7c\x5e\x69\xbb\xe8\x88\x48\x26\x88\xf6\x31\xde\xcf\xe5\x71\x96\x2b\xa4\x2f\x0d\x37\x27\x11\x81\x91\x15\x6e\xc2\xa1\x5e\x29\x72\x7a\x9b\x15\x24\xe2\x98\x0c\x34\xdb\x6c\x9a\x1f\x50\xe5\xc4\x1d\x4a\x82\x08\x83\x85\xf7\x1a\x49\xd8\x93\x11\xb1\x20\x5a\x06\x9d\x45\xfc\x12\x96\xf0\x04\xf5\x67\x51\x8e\xb0\x40\x82\x46\x14\x29\x73\x26\x24\x9c\x5b\x1b\xa9\x9f\x6e\x62\x82\x0a\x8d\xeb\xc5\x67\x33\xda\x91\xff\x46\xb7\x2d\xa1\x06\xb7\x72\x4a\x7f\xc0\xa0\xbf\x26\x58\x10\xe3\xf6\x2a\x8b\xe3\x11\x33\xad\x1e\x8f\x4b\xf0\x90\x1a\x02\x7f\x6e\x1c\x3e\x06\x6c\x17\xc1\xa5\x87\x24\x9c\x3f\x52\xf9\xbe\x28\x8e\xc7\xb4\xae\x01\x45\x25\x1f\xf9\x69\x96\xab\x59\x59\xf2\x8b\x49\x48\x87\x17\xc9\xb5\xc2\x87\x6b\x2e\xb2\x89\xec\xa6\x6c\x3d\xb4\x10\xb1\x11\x8a\x70\xf5\x9f\x26\x0e\x6b\xbf\x5c\x05\xb1\x04\xc7\x2b\x4e\x8d\xe1\x82\xba\x52\xb3\x70\xc1\xb2\x50\x91\xe7\x09\xcc\x8b\x8a\x6c\x57\xbc\xae\xf3\xfe\xf2\x28\x54\xa4\x54\x2b\xf0\x75\x2d\x0d\xe7\x46\xc5\x1a\x73\xab\xea\x94\xb9\x3e\x5d\xaf\x39\x3a\x7a\x2a\x8a\x86\xe8\xe0\xf3\xbc\x7d\xcd\xd3\xd5\xf2\x75\x50\x23\x10\x2a\x91\x98\xe7\x88\xf3\x65\xfe\xf4\x34\xbc\xad\x5a\xf9\xb8\x96\x73\x29\x5f\x2b\x28\x07\x18\x6c\xa1\x55\x88\x05\xdf\xbb\xa2\xd8\xd6\xaa\x9f\x33\x48\xcf\x8b\x91\xe9\xfc\x67\x9a\x1f\xee\x20\x3f\x2c\xb8\xf8\xb8\x92\x85\x3b\x5f\xc1\xa3\xa5\x17\x25\xa8\x38\xbb\x28\x4a\x18\x82\x6b\xa5\xa7\x3c\x44\xee\xbe\x1d\xea\x16\x98\x6e\x0f\xf9\xc2\xc3\x74\x4b\x38\x1d\xdb\x69\x3c\x8b\x0c\xfd\xc0\x27\x6d\x9f\x7e\xe8\x73\xa4\x65\xc8\x69\xcc\x7a\x65\x9d\xdb\x44\x2d\x19\x6a\x1f\x69\x07\x5f\x2f\xa7\x21\xb5\x4a\x46\x01\x43\x68\x93\x81\x77\x8d\xa2\x60\x19\x25\xd2\x10\xa7\x7a\xad\x9f\x76\x2f\x18\xed\x65\xc3\x9f\x1e\x09\x81\x25\x65\x6c\x6a\xa2\xd5\xd3\xa2\x68\xbb\x9b\x92\x04\xdc\xd7\x3d\x3d\x98\xf9\xe5\x61\x30\xf1\xae\x2e\x80\x44\xc0\xfb\xb6\x6f\x86\xc0\x35\x28\xe2\xd9\x91\xb1\xd6\xa8\xe9\x24\xb3\xa2\x82\xed\x59\xd8\xa0\xd6\x7d\x33\x65\xd4\x05\x38\x68\x66\x32\x2f\x72\x35\x68\x1d\x0f\xa7\xa2\x4c\x88\x42\xaa\xa7\x43\x7e\xd8\x5e\x7c\xfb\x28\x13\x21\x15\x75\xcd\x51\xbd\x2b\xe6\x97\xf5\x2f\x58\x7e\x32\x91\x11\x6e\x6d\x26\xb5\x2b\xf2\xea\xdc\xee\xba\x92\xf9\x24\x30\xa2\x87\xe3\xa8\xcf\x0d\x08\x42\x43\x56\x38\x8b\xd5\xb1\x09\x67\x9b\xe7\x39\xd5\x61\x9a\xfe\x6e\x96\x30\xe7\x95\xdf\xbc\x1f\xfd\x0a\xa0\x1d\xc1\x03\x86\x9c\x51\x67\xd4\x89\x1e\xc7\x6f\x3c\xb4\xb8\xb7\x5b\x62\x47\xc3\xaf\xe1\x22\x74\x2e\xf2\xd8\x83\x5d\xda\x4e\xfd\x36\x3d\xe4\xbc\x3e\x97\xd0\xde\x3f\xae\xa2\x08\x9c\x81\x74\x71\x3e\xdd\xa5\x4e\x8f\x75\x30\xd7\x85\x0f\xca\xfe\x6e\x87\xc2\x36\x90\x87\xfe\xca\x20\x45\x68\xfc\x7e\xeb\x14\x4a\x6f\x74\x5d\x42\x10\x65\xcc\xc3\xd2\xbc\x6e\xd6\xcd\xf6\x27\x48\x2a\x84\xee\xee\xc9\xac\x9e\xa8\xcc\x49\x99\x44\x49\x64\x05\x8c\xb1\x59\xb0\x7a\x59\x60\xe2\x68\xe4\xe1\xda\x73\x41\x68\x20\x4b\xc6\xbb\x72\x73\xb7\x45\x53\x93\xc1\xb5\xa8\x38\x42\x37\xb4\x3d\x02\x9e\xe6\x97\xe6\x85\x92\x6f\xf0\x4b\x6e\xef\x55\x62\x24\x95\x14\x58\x1e\x9e\xbd\x15\x45\x06\x60\x71\x10\xf0\x3b\x00\x98\xdf\xad\x6f\xda\x6f\x02\xa9\x11\x20\xb2\x79\x31\x28\xfe\xfd\x76\x37\x7b\xd9\xed\x43\x77\xdd\xda\x37\x56\x20\x59\x81\xed\x9b\xb4\x02\x23\x84\x31\xe6\xaf\x4a\x1d\xf8\x08\x67\x84\x66\x6f\x43\xf4\x8c\x93\xb7\x1e\x7e\xa3\xf2\x3d\xc0\xe4\x16\x25\x50\x36\x45\x31\xb4\x94\xc0\x75\x3e\x31\x95\x88\x59\x56\x02\x57\x97\x8d\x09\xf4\xc6\xdf\xa8\x22\x4f\xa0\xf7\x84\xd5\x55\x28\xca\x11\xda\xc9\x0d\xf3\x13\x2c\x28\xfd\x79\xe6\x79\x7d\x3e\xfe\xd5\x0a\x92\x69\x15\x11\x8d\xae\xeb\x43\x44\xdd\x40\x35\x78\xf4\xe3\x23\xca\x84\x70\x52\x3a\x15\xf4\x89\xe9\x5d\x6e\xe9\xc6\x26\x82\x1a\xab\x85\xcb\x4d\x55\xb2\xd1\xd9\x13\x1d\x79\xae\x8f\x9e\xc1\x81\xab\x62\x09\x46\x4a\xaf\x2e\xbe\x61\x0c\x3e\x8c\xd8\x54\x04\x1e\x04\x3d\xe0\xf5\x5a\x16\x83\x7d\x53\x45\x40\x31\x48\xfb\xba\xfb\xaf\xfe\xf6\xa0\x22\x1d\x21\x3a\x73\xd8\x46\x42\xe8\xe2\x08\xbe\x6b\x3f\x40\xa8\x8f\xb9\x3a\x5a\x07\x56\x2d\x87\xbd\x8d\x31\x55\x9c\x44\x18\x0c\x37\xcf\x0c\x83\xcb\xa9\x82\xec\xe8\x82\x63\xee\x61\xe0\xba\xb0\x96\xbb\xc7\x34\x37\x8c\xcf\x9f\x8a\x51\x28\xea\x1b\x37\xb1\xac\xe0\xaa\xbf\x41\x8f\x46\x45\x9e\xd2\xad\x71\xd7\x53\x31\xc6\xb2\x2a\x2a\x08\x82\x46\x52\xdc\xa4\xbf\xa7\xf5\xdb\xe2\x5c\xd5\xc5\x11\xca\xde\x52\xdf\x7f\xc3\x55\x42\x44\x9c\x38\x0d\xa4\xbc\x2e\x8b\x2c\x83\xd2\x51\x03\x47\x5f\x9f\xc4\x11\x56\x81\xe4\x5b\x0a\xda\xdd\x24\x26\x39\x3e\x61\xb7\x3f\x9a\xc7\x19\x78\xff\x38\x8f\x35\xa8\xb4\xe2\xdc\x47\xac\x01\x3e\x9a\xef\xe3\xbe\xf8\xf8\xf5\x1f\x5e\x1a\x17\x46\x51\xdb\x5c\xfb\x2a\xaf\x47\xce\x91\x5a\x09\x0f\x84\x15\x1c\xfb\x0b\xc5\x99\x6c\xdf\x67\xc0\x97\x55\xcd\xea\x40\x7a\xa1\x48\xf3\x33\x9e\x78\xd9\x2c\xfa\x1f\xd7\x6c\xb1\xc1\xbd\x52\xbe\x97\x58\xf5\xb0\x61\x03\x66\x38\x8a\x48\xed\xbb\x12\x90\x2e\x46\xf7\x10\x3c\xe9\x7a\xc8\xf7\xfc\x38\x8c\x8a\xdd\x90\x04\x90\xf7\xab\xd2\xaa\x89\x08\xe6\xe7\x3c\x1f\x83\x4f\xc0\xe3\xc6\x37\xd6\xe5\x47\xdb\xcb\x51\x14\x99\xe1\x5a\x7c\xe9\xb5\x08\xdd\x70\xcd\x51\x4f\x60\xc1\xcb\x11\x5d\x0a\xfc\x84\x81\x75\xaa\xfc\x30\x1b\xa7\x67\x8f\x04\x89\xe7\x90\xc2\xd3\x76\xf4\xfd\x67\x0b\x81\xa2\xd4\xfc\xea\x12\x64\x5d\x94\x0f\x1d\x9b\x0f\x42\x2f\x50\xbe\xab\xfb\xfc\x3d\xd8\x62\x20\x8c\x4c\x63\xcb\x50\xa6\xac\x60\xe1\x68\xe2\x43\xc8\xa5\xa4\xed\x5e\x65\xab\x46\xb8\xdd\xd7\xbc\xbc\xb6\xad\xd2\x10\xca\x18\xf5\x77\xfe\xfe\x23\x6d\xe1\x9a\x10\x11\xe1\xdb\x7b\xff\x75\xf7\xb0\x58\x3b\xbd\xcd\xb4\xc8\x77\xe9\x11\x8a\x73\xdd\xd1\xf7\x86\x95\x9f\x49\xd7\x10\x0d\x51\x22\xa9\x53\xf5\x5f\x2c\x77\xcd\xa4\xbb\x2b\x26\x44\xb0\x34\x44\xcc\xc7\x3a\xe3\x9b\x81\x52\x4c\xaf\xc5\x10\xb1\x58\x07\x2d\x87\xe1\x90\xe6\xdb\x13\xe4\xa3\x4d\x02\x22\x0d\x58\x6f\xc6\xad\xfd\x6e\x0c\x81\x03\x42\x8c\x1d\x8e\xcb\xe5\x16\x25\xa8\xd4\xb8\x8f\x4f\xce\x57\x20\xd4\x28\x9b\x2c\xf9\x8f\x9e\x6a\x04\x10\x2a\x71\x27\x11\x97\x73\x71\xae\x67\xfd\xd0\x01\x62\xdf\x60\x0e\xc4\xf9\xb2\x69\x32\xcd\x5e\x5f\x3b\x1a\xae\x8b\x91\xfb\x44\x64\x64\xc4\x6d\xc3\x67\x96\x65\xcf\xb9\x84\x7e\xf1\xcc\x0d\x14\x02\x2b\xdd\xc7\x8b\x65\x97\xba\x75\x1f\x12\x00\x4c\x52\xb6\x18\x57\x5d\x23\xf5\x80\x79\x02\xe5\x07\x0a\xad\x2b\xa8\xfb\x54\x7a\x60\x11\xc7\x7c\x5b\x9c\xcb\x7c\xc3\xab\x6a\x52\x2f\x55\x03\x63\xd2\x41\x9e\x8d\xff\xdd\x16\x6f\x54\x35\xee\xc9\x00\x8f\x43\x74\x04\xef\xc0\xbc\x93\xc1\x6c\x32\x3a\xbf\xa0\x8a\x5a\xb0\xe3\xeb\xe9\xd0\x84\x64\x8f\xbc\xaa\xaf\x5e\x6e\x19\x46\x68\x81\x8b\xb7\xf5\x31\xcd\xeb\x4d\xb1\x1c\x70\xd3\x41\x6a\xe2\x5b\x49\xa5\x79\x31\xca\xbb\x41\xc5\xa0\x6c\xd2\x39\x53\x5f\x7a\x8d\x2e\x77\x5c\xa9\xc8\x3a\x60\x6c\x8a\x2c\xed\xa9\xc7\x0e\x3a\x60\x93\x6b\x20\x00\x6d\x55\xe7\xe6\x45\xf1\x3e\x58\x5b\x01\x78\x40\xfb\x99\xbc\xd9\xf9\x82\xee\xb0\x4c\x0c\xed\x58\x17\x7b\x94\x6f\x71\x07\xa4\xe6\xdc\xa0\xad\xfc\x71\xbd\x7c\xcc\xb5\x19\xd7\xc0\x3b\x5b\x47\x0d\x3a\x10\x58\xd1\xdd\x5a\x71\x06\xa8\x51\x14\x00\x27\xbf\x13\xf7\x73\x43\x13\x9d\xb4\x7a\x33\xa3\x89\xa4\x99\x40\x5d\xe9\xbd\x11\x02\xe7\x3f\x0c\xd7\x7e\xa2\x84\xae\xbd\xc8\x68\xd5\x5b\x75\x02\x5c\x50\x6c\xd0\xf6\x54\xd4\xff\x0d\xa5\xe3\xc0\x68\x8f\x06\x48\x28\x3b\x61\xe1\x7b\xf5\xe3\x0a\xcd\xa6\x7d\x8f\x3b\x65\x5b\xdc\x5e\xaa\x81\xdd\xbe\xd6\x41\xe2\xdb\xa6\x29\x32\x91\xfb\xc1\x8f\x0e\x7d\x1f\x5f\x62\x14\xa5\xde\x42\xfd\x6f\x2e\xdf\x4f\x45\x3d\xad\xf7\xa0\x43\x12\x23\x25\x29\x95\xc5\x03\x3f\xe7\xf2\x6d\x2c\x21\xa0\x43\xee\xa1\x64\xd2\x38\x61\x9f\x12\xef\x45\xda\x67\xe8\xa4\x3e\x2d\xf6\xbf\x49\xd7\x76\x25\x97\xef\x1d\xcb\x4d\x87\x32\x22\xd4\xc6\x53\xd6\x4b\x70\x54\xec\xd4\x51\x28\x30\xc7\xda\x37\xe1\x68\xf3\xb2\x36\xd1\xf4\x70\x08\xa1\x62\x50\x2e\x32\x02\xcb\xb7\x48\xe8\xed\x87\x4c\x7f\x16\xef\x1c\x17\x19\x3c\x2f\x5c\x72\x36\x5d\x0b\xd4\x31\x27\x18\xd7\x3c\x14\xf9\x61\xbe\x28\xae\x25\x30\xaf\x4b\x2c\x3a\xd6\x46\xc7\x7a\xb7\x7b\xfe\xea\x2e\x9a\x26\x1a\x71\xad\xaa\x40\x1b\xb1\xf6\xcf\x9c\x51\x5b\xd7\x1a\xd9\xef\x0e\x7f\x46\x12\x02\x2e\xb5\x16\x70\xeb\x08\x88\xc3\x5b\x92\x90\xf6\x8d\x5e\xbc\x9d\xf3\x77\xbf\xef\x2a\xe0\xc6\xa8\x08\x97\x2c\xec\x64\x1b\xb9\xc3\x34\x3f\xcc\xda\xe3\x2c\x04\x19\x3a\xb3\x4d\x6c\x0f\x6f\xf8\x61\x58\xc6\xd1\x8c\x48\x08\x1d\x00\x75\x53\x14\xed\x74\x61\x71\x60\x48\xd5\x2f\x2b\x4c\xb9\xbe\xcd\x5e\x1f\x76\x26\xf1\x6a\x87\x28\x22\x2c\x7d\x5a\xa7\xe5\x11\x4b\xee\xcf\xfa\x7b\x51\x8e\x38\x36\x9a\x33\xb3\xb6\x9a\xe7\x5b\x7c\xee\x46\x21\x94\xe6\x4c\x39\xf7\xd3\xfb\xa2\x50\x63\x0a\xdf\x68\x6e\x0a\xe2\x23\x23\xb9\xb7\x54\xff\x34\xd0\xd4\x52\x01\xf6\x8d\x57\xcf\xdb\xf5\x53\xfb\xf3\x25\x24\x28\xa5\x2d\x10\xa4\x3e\x14\xdc\xe9\x45\x5a\x5a\x91\x40\xc6\x76\x8e\xf7\xa6\xbe\xe2\x09\xbe\x71\x19\xaf\xea\xaf\x45\x59\xc1\xb6\xdd\x9c\xb4\x12\x60\xdc\x30\x91\xf8\x69\xd2\x96\x41\xb1\x40\x83\x97\x24\x06\x63\x92\x8d\x4a\x77\x1a\x84\x4d\x62\x6c\x0d\x04\xf3\x94\x6d\x7a\xc8\xe7\xcd\x9b\x33\x78\x19\x46\x33\x4b\xc7\x02\xcb\x69\x16\x9c\x39\x2d\x68\xd6\x5c\x38\xd6\xbd\xa1\xa7\x7a\x6a\x72\xe1\x2f\xff\xef\xff\xf3\xff\xfd\xff\x01\x00\x00\xff\xff\x41\xc7\x6f\x7d\x39\x03\x54\x00") - -func _4byteJsonBytes() ([]byte, error) { - return bindataRead( - __4byteJson, - "4byte.json", - ) -} - -func _4byteJson() (*asset, error) { - bytes, err := _4byteJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "4byte.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x56, 0x18, 0x15, 0x8, 0x49, 0xac, 0xa1, 0xbf, 0xc2, 0xcb, 0x21, 0x40, 0xee, 0xff, 0xc2, 0xba, 0x46, 0xc0, 0xe1, 0x85, 0xa1, 0x44, 0xe7, 0xca, 0xd6, 0xfd, 0x44, 0xf9, 0x4d, 0xf, 0x34, 0x4d}} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - canonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[canonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// AssetString returns the asset contents as a string (instead of a []byte). -func AssetString(name string) (string, error) { - data, err := Asset(name) - return string(data), err -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// MustAssetString is like AssetString but panics when Asset would return an -// error. It simplifies safe initialization of global variables. -func MustAssetString(name string) string { - return string(MustAsset(name)) -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - canonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[canonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetDigest returns the digest of the file with the given name. It returns an -// error if the asset could not be found or the digest could not be loaded. -func AssetDigest(name string) ([sha256.Size]byte, error) { - canonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[canonicalName]; ok { - a, err := f() - if err != nil { - return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err) - } - return a.digest, nil - } - return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name) -} - -// Digests returns a map of all known files and their checksums. -func Digests() (map[string][sha256.Size]byte, error) { - mp := make(map[string][sha256.Size]byte, len(_bindata)) - for name := range _bindata { - a, err := _bindata[name]() - if err != nil { - return nil, err - } - mp[name] = a.digest - } - return mp, nil -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "4byte.json": _4byteJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"}, -// AssetDir("data/img") would return []string{"a.png", "b.png"}, -// AssetDir("foo.txt") and AssetDir("notexist") would return an error, and -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - canonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(canonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "4byte.json": {_4byteJson, map[string]*bintree{}}, -}} - -// RestoreAsset restores an asset under the given directory. -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) -} - -// RestoreAssets restores an asset under the given directory recursively. -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - canonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...) -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.json b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.json deleted file mode 100644 index d23b441b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/4byte.json +++ /dev/null @@ -1 +0,0 @@ -{"00000001":"account_info_rotate_tine(uint256)","00000002":"razor_balance(bool)","0000000c":"gumXZCZ()","00000033":"matchTokenOrderByAdmin_k44j(uint256[])","00000039":"XXX_unrecognized_adapter(string)","0000003a":"good_mirror(uint256,uint32)","00000063":"math_rotate(uint256,uint256,uint64,uint64)","0000006e":"display_allow(uint256,uint256,uint256,uint32)","00000080":"conduct_auto(uint256,uint256,uint256)","00000082":"artefact_keep(bytes1)","000000a0":"tree_stream(bytes,bytes)","000000a1":"pistol_valve(uint256,uint32)","000000b6":"matchByAdmin_TwH36(uint256[])","000000c4":"festival_happy(uint256,uint256)","000000c7":"lend_during(uint256,uint256,uint64,uint32)","000000da":"muscle_teach(uint256,uint64,uint8)","000000db":"viable_print(uint256,uint256,uint64)","000000de":"pledge_future(uint256,uint32,uint8)","000000ed":"access_coconut_alarm(uint256)","000000f5":"cherry_tomorrow(uint256,uint64,bool)","000000f8":"required_strconv(string,string)","00008962":"token(string,uint8,string)","0000aeb3":"migrateByAdmin_DQV(uint256[])","00012f8b":"LatiumX()","00014502":"totalInfected()","000150a0":"DEV_TEAM_STAKE()","00020a28":"HaltTokenAllOperation()","000267a4":"getUint()","00026e13":"checkAtkBossQuest(address)","00027737":"aicontract()","0002aa37":"richtestkk(uint256,string,uint8,string)","0002c1dc":"Johnsonville()","00046c1f":"totalDragons()","000525fd":"robCoin()","0005a533":"CoalichainToken()","0005bfb7":"gemmyMusicLockTime()","000713fe":"Initiate(address,uint256,uint256,uint256,bool)","000751b8":"LogExtendSale(uint256)","00076943":"unlocker()","00076de7":"disableSellerCancel(uint16,address,address)","00085d25":"round3()","0008f8df":"changeIcoFinish(uint256)","00094161":"TERMS_AND_CONDITIONS()","00096469":"AuctionCreated(uint256,address,uint256,uint256,uint256,uint256)","0009803b":"makeProject(address,string,uint256,uint256)","00099cdf":"withdrawTokens3(uint256)","000a4a7a":"backAtIndex(uint256,uint256,uint256)","000ac1ff":"addparts(bytes32,uint256,uint256,uint256)","000adc67":"buy_the_tokens(string)","000b66d3":"setIcoStartTime(uint256)","000b9726":"MintingContract()","000be356":"expiredBlock()","000c12af":"TOTAL_TOKENs_SUPPLY()","000c65c3":"withdrawVNET(address,uint256)","000ca58e":"refundRequestTimelock()","000dae5c":"claimantConvicted(uint256)","000e02d0":"fiveHundredThousand()","000e28d3":"setLandsLimitPerBid(uint256)","000e2f3a":"totalLBSold_GENERAL_1()","000e60f8":"pendingBetsBalance()","000e7fa8":"presalePrice()","000f0ded":"doAirdrop(address,uint256)","000f71f8":"recieveNegReq(uint256,uint256,uint256,uint256,string)","00100a18":"NewPoll(string,string,uint256,uint256)","0010ed99":"getBraggerAtIndex(uint256)","00113e08":"getBalances()","00115cba":"UpdateSellAgentBounty(address)","001246eb":"availableFlg()","0012d90a":"BNB_HARD_CAP()","001339b0":"prizePoolTotal(bytes4)","00137d6e":"peculAdress()","0013da50":"delList(string,uint256,uint256)","0013eb4b":"isExist(address)","0014f956":"getResourcesInfo(address)","00152924":"setSelfContractAddress(address)","0015be71":"executiveOfficerAddress()","001667bb":"getPI_edit_34()","00173d65":"getShouldGenerateDna()","001773e6":"convertMetToEth(uint256,uint256)","0017cd8b":"PRIME()","0017e1cf":"getTeamNameForAddress(address)","0018b1d3":"pps()","0018b665":"killTokenContract()","00190f64":"getStatusLogs()","00199b79":"_updateList(address[],address,address[])","0019a46b":"gen0CutieCreatedCount()","0019c97d":"redeemPop(uint256)","001a4f5e":"createNewRevision(bytes32,bytes32)","001aa026":"withdrawMarginPreSigned(bytes,address,uint256,uint256,uint256,uint256)","001ab1cd":"setAsBurner(address,bool)","001ab993":"VTestDistribution(address,uint256,uint256)","001b1441":"Ethernext()","001b1cf0":"DualMintableToken(address,address)","001b3fe6":"card_blue_first()","001ba7ea":"signWitness()","001baa89":"createdBy(uint256)","001bc69a":"getGratitudesOf(address)","001cf577":"wcOnCrowdsaleFailure()","001d7bf6":"getInvestmentArray()","001db74d":"FreeLove()","001dbe8a":"getSoftwareExecRecordLength()","001ed012":"previousBurners()","001ee6b2":"participateGame(uint32,uint32,uint32,uint32)","001f0479":"getResultMask(uint256,uint256)","001f4701":"Examples()","001f8d11":"removePackage(bytes32,string)","001f91ce":"curatorAddress()","001f9bc0":"set_arbits_presale_open(address,bool)","00201e33":"BONUS_6_DAYS()","00203116":"endGame(address,uint8)","00203385":"getTotalBorrowingItem()","00212667":"m_Creator()","0021d364":"getNOVotesByEntity(uint256)","00226eb5":"getDepositNum()","0022771f":"numAdviserDeposits()","002338ef":"TLSC()","0023de29":"tokensReceived(address,address,address,uint256,bytes,bytes)","00245220":"HAJDToken(string,uint8,string)","0024eb4b":"getCompanyAllocation(uint256)","00277883":"TeamTokensHolder(address,address,address)","0028b91f":"Distributor(address,address)","0029514f":"PROCESSBY()","00297671":"cancelOneSell()","002a2133":"createCitizen(uint16,uint16,uint8,bytes32,bytes32,bytes32)","002a228c":"initSeed(uint256)","002a4b14":"Nine()","002a5cc9":"getTicketHolders(uint256)","002beece":"unfroze(uint256,address)","002c1a9e":"percent(uint256,uint256,uint256)","002c8456":"toOpenVote()","002ce636":"settrusteeVaultAddr(address)","002d7c9d":"concludeFirstAuction()","002dc7f1":"ChangePeriod()","002e0ae7":"transferTokenOut(address,uint256)","002e1316":"maxInvestment()","002e1d7e":"LCOpenTimeout(bytes32)","002f15ca":"isExistInvestor(address)","002f9569":"allocatedTokens()","002fd07c":"_approve(address,uint256,uint256)","003074ff":"getFrontend()","003078b0":"unlockTo(address,string)","00310e16":"sellWolk(uint256)","00319aad":"_transferadvanced(address,address,uint256)","0031a48e":"myICO()","00322bb6":"sendPlatformMaintenance()","003259ea":"voteResult()","003271d5":"checkStateProof(bytes32,bytes,uint256[],bytes,bytes)","00333375":"minimumMainSaleRaise()","003338a0":"DrawOp()","0034451c":"_buildInternalSalt(uint128,address,address,uint256,uint64)","00346b57":"setHodlerStake(address,uint256)","003495a4":"getHighestBidder()","0034b5fd":"withrawFundTeacher(uint256)","0034f529":"_requestExists(address,uint32)","003538c5":"TestRegistrar(address,bytes32)","00354975":"VRYCoin()","00359e08":"presaleFinishedAt()","0035a45c":"isAllowedToPurchase()","0035ceb1":"BrinkzToken()","0036059c":"TESTER(uint256,string,string)","00360b66":"MyMonsterIds(address,uint256)","0036242d":"Power2X()","00362509":"LogWin(address,uint256,uint256,uint256)","00362a95":"donate(address)","00364ceb":"bountyManagementWalletAddress()","0036624a":"AmountReceived(address,uint256)","003705bc":"getTotalUSDInTokens()","0037dd47":"addUniqueSaleTokens(address,uint256)","00383d0a":"maxSignup()","00387733":"setGameResult(uint256,uint8)","0039522c":"emergencyWithdrawal(uint256)","003958e2":"LogOperatorAdd(address)","00397647":"addToFreelancerTotalEarned(address,address,uint256)","0039ad6d":"ROUNDS_KEPT()","003a3d80":"GetSale()","003a5b06":"getRoundEndBlock(uint32)","003a661d":"renounceOwnedOwnership(address)","003ab1ff":"timereum()","003b0a3f":"getFreeDino()","003b9d88":"setLowerFeePercentage(uint8)","003ba1ed":"setRoot(address)","003bcb34":"Received(address,bytes,uint256)","003cdf26":"Lima()","003cee5a":"HLCToken(address,string,string,uint256,uint8)","003db783":"Purchase(uint256,uint256,uint256,uint256)","003de230":"participantClawbackEther(uint256)","003e9d5b":"FillOrder(uint256,uint256)","003ead5f":"setPVEBattleFee(uint256)","003f07fa":"isValidAddress(address)","003fd35a":"CONTINUE_MINTING()","00404930":"CryptoRiyal()","00405351":"getWarriorChestAvailable()","004056c7":"validateNameInternalET(string)","004079b6":"CheckExec(string)","0040ff6c":"changeFee()","0041edee":"preSaleTokensLimit()","004240e3":"startTransaction(address,address,uint256)","004264c3":"overflow()","0042a3be":"isPublish(bytes32)","00432cf3":"getCurrentMarginAmount(address,address,address,uint256,uint256,uint256)","0043cce7":"technologyShare()","00442a07":"getLoanConfig(uint256)","00452636":"GxManagedWallet(address)","0045626f":"returnETHByOwner()","0045a4d4":"isPointerExpired(uint8)","0047850a":"getOfferCountByToken(address)","00478f87":"TIC()","0048236b":"setOrganName(string)","0048d680":"testTransferVotes()","00498257":"maxWeiTier2()","0049f068":"onContribute(uint256,address,uint256)","004b1e75":"actionAuthorisedBy()","004bd9a5":"setRate5(uint256)","004c942e":"Request_Dividends()","004d39b1":"HavvenGold()","004d4ed9":"setRegion(uint256,uint256)","004db370":"DawnCoin()","004dcd1c":"changeBrick(uint256,string,string,string,bytes32[],uint256)","004ebaa8":"silo_timer()","004ef6c6":"book(uint256,uint256)","004f3e86":"forceCancel()","004f4042":"takeAllPossible(address[3][],uint256[3][],uint256[],uint8[],bytes32[],bytes32[],bytes4)","004f4803":"raise(uint256)","004fba00":"addAdminAddress(address)","00501553":"subHours(uint256,uint256)","005016a3":"checkReturnValue(bool)","0050945d":"referrerLevel2Ether()","0050a315":"getCreationTs(uint256)","0050b3df":"newAlex(address)","0052992e":"buyForInvestor(address,uint256,string)","00530933":"BuyAsset(uint256)","00541756":"jackPotB()","0054438d":"validateResale(address,uint256,uint256)","0055bc9c":"withdrawAtOnce(uint256)","0056c4c2":"getTokensForWei(uint256,uint256,uint256,uint32)","0056ce89":"getCryptoPicture(uint256)","005733e6":"EMISSION_FOR_SALESTAGELAST()","00573858":"setrateIco(uint256)","0057e18f":"setPlatformMaintenance(address)","0057e8d4":"restoreToColdWallet(uint256)","00599e65":"getTokenOrder(address,address)","005a7d9a":"forFund()","005ab803":"LogRegister(address,address)","005b42cb":"MainSalePrice()","005b4487":"totalPayments()","005b7ce8":"SIGMA_EXTRACTION_BASE()","005b9b48":"sellAnimal(uint32)","005bb714":"BlocksToken()","005c0541":"_totalActiveBets()","005c33e1":"receiveFunds()","005d204d":"dataIdentifiers()","005e885e":"getSigners(uint256,uint16)","005ef4ec":"setReservedTokensList(address,uint256,uint256,uint256)","005f41cc":"create(address,uint256,uint256,uint256,bool)","00601801":"setCCH_edit_4(string)","00601d6c":"board(uint256,uint8,uint8)","00603126":"computeNodeId(bytes32,bytes32)","00604854":"FreePPCoin()","0060c778":"removeCompany(bytes32)","00613e27":"register(address,uint8,uint16,address)","0061c78e":"PayoutIncreased(uint256,uint256)","0061ebed":"TransactionFeeChanged(uint256)","0062c8cb":"canCallWithNoOne()","00634064":"Lescoin(address,address)","00639319":"Milestone_BankLicenseSuccessful(string)","006409c4":"Signed(address,uint256,uint8,bytes16,bytes)","0064575f":"shiva()","0064b1f8":"gameNum()","0064d618":"add_referral(address,string,uint256)","0065318b":"dividendsOf(address)","0065d700":"getTileFromBattleboard(uint16,uint8)","0066753e":"removeCertifier(address)","0067a9fb":"BrokerImp(address,address,uint256,address,uint256)","0067ba69":"FT_TOKEN_SALE_CAP()","00686741":"registerProxyFor(address)","00691967":"SUPER_HERO_MULTIPLIER()","006932bb":"whitelistAllAddresses()","0069a132":"AshenVoid()","006a003e":"planetCordinates(uint256)","006a6ef6":"create(address,address,address,address,address,address,address,uint256)","006ac4bf":"findNextMonth(uint256,bytes2)","006ae9d5":"HopeToken()","006b1fd1":"purchasedCount()","006bcb71":"witness(bytes32,address)","006c10e8":"trackPurchase(uint256,uint256)","006c2abc":"privateSaleEndDate()","006c81d3":"isAllocated()","006cfea8":"_delegateAssetOwnerAdded(bytes32,address)","006d96e0":"hasVaultAccess(address,address)","006ddae3":"changevotePrice(uint256)","006e3a1d":"exitOverPlayer()","006f91d2":"RiskPrice(uint128,uint128,uint128,uint128)","006fbd88":"changeSellGenesPrice(uint256,uint256)","00703d48":"crearCelda(uint256,uint256,uint256,uint256,uint256,uint8)","0070c3b3":"Proxy(address)","0070c537":"increaseBid(uint256)","007188d3":"FAOC()","0072615c":"claimedBoards(uint256)","00728f76":"vestingAmount()","0072d7b5":"addressAdded(address)","00732113":"setHolderInformation(address)","00739f2a":"changeStartDate(uint256)","0073c769":"disableTime()","0074477d":"listMultipleItems(uint256[],uint256,address,bytes32)","0075a317":"mintTo(address,string)","00761731":"createContract(bytes32,uint256,uint256,uint256)","00774360":"deploy(bytes)","00797f77":"has_donated(address)","0079efb0":"withdraw1()","007aa091":"san_whitelist(address)","007aaac9":"sisterCheckPrice(uint256)","007b2a03":"GoldTokenERC20()","007bd509":"generalTerms()","007c197d":"ISE()","007cb3fb":"updateOraclizeGasPrice(uint256)","007cc224":"RESERVED_TOKENS_FOR_PLATFORM_OPERATIONS()","007d8051":"issueAndFreeze(address,uint256,uint256)","007e5d08":"updateAvailable()","007e9355":"GetAllChallengesByAUser(address)","008000d6":"configSale(uint256,uint256,uint256,uint256)","008066b6":"doftManaged()","0081d6e5":"updateGravatarImage(string)","008201e7":"TokenSold(uint256,uint256,uint256,address,address,string)","00821b81":"bonusCalculation(uint256)","00821de3":"parentAddress()","00822599":"deleteMasternode(uint256)","008250e5":"fortune_new()","00837b15":"balanceEth(address)","00849f88":"changeFundCollection(address)","0084dbf5":"ProofOfEtherDelta()","0084fe51":"Exercise(uint256,uint256)","00851303":"tokensForSiteReg()","008557d2":"Buy(uint32,bool,bool,address)","0085c647":"setPreICOEndDate(uint256)","00862c3c":"areTokensUnlocked()","00865f92":"parseJsonArrayAndGetFirstElementAsNumber(string)","0086969f":"dissalowFreezing(address)","0086bb3e":"teamUnlockedAfterCliff()","0086ce4d":"LogUpdatedLimitPerDay(uint8,uint256)","00873367":"comparisonchr(string)","00873c97":"CLPContractToken()","00882097":"EtherDeltaDeposit(uint256)","00886980":"LogClaimReward(address,uint256)","0088fca8":"start_go_quiz(string,string)","0088fed7":"addIndex(address,address)","008a3ca1":"reverseSplit(uint8,bytes6,uint8,uint32)","008a5c23":"getCurEarlyIncomeByAddressRound(address,uint256)","008a706b":"Primal()","008a745d":"claimDividendShare(uint256)","008ad306":"changeLockCostPerHour(uint256)","008bdd13":"isWithinSaleTimeLimit()","008bed3e":"getAgreementCount()","008c1b28":"POSTSALE_START()","008c3215":"addReplies(address,address[],string,string)","008c8920":"currentType()","008ca816":"isSalePaused()","008cbc8c":"oraclize_query(uint256,string,bytes[4])","008df454":"ratio(uint256)","008e0f1b":"getTeam(uint256)","008e6865":"buyTicket(uint256,uint256,address)","008e8135":"setProviderRateHistory(uint256,uint256,uint8,bool)","008f7cc2":"requestLoan(bytes8,uint128,address,address,address,uint256,uint64,bytes)","008f8b35":"currentRoundInfo()","008fcc94":"stageEndDate(uint8)","00903c69":"Kether()","0090e9c2":"transferBonuses(address)","00918c7b":"icoPeriodTime()","0091d862":"Minaxis()","00922db6":"secondWeekBonusInWeek()","00923f9e":"tokenExists(uint256)","0093703c":"bankConfirm(address,uint256)","0094151b":"setPurchasable(uint256)","0095716b":"crownBalanceOf(address)","00961320":"stringToUint()","0097130e":"_realBalanceOnEther()","00971a30":"court()","00975ba6":"_sendP3D(address,uint256)","0097b607":"validRareId(uint256)","00983401":"setAuthor(string,string,address,uint256)","00987265":"migrateThroughAllForks()","0098728f":"buyXaddrForContract(address,uint256)","009888ce":"calcNextPrize()","00988a16":"EthMinContributionUpdated(uint256,uint256)","0098fe2b":"refundWhite(uint256,uint256,uint256,uint256)","00991d8e":"setMakeFee(uint256)","0099d386":"enableTrade()","009a1faf":"getSumOfGamblingPartiesBonusPool(uint256)","009af857":"setnextRoundId(uint256)","009b38fa":"canBeFinalizedNow(uint256)","009b9369":"getVoteNumber(uint256)","009ca5e8":"maxTokenWinValue()","009e2297":"SetFreeDCT(uint256)","009f9262":"setEthPrice(uint256)","00a0190e":"BIDDING_DURATION()","00a051ca":"FiCoinFundDeposit()","00a09a7a":"devTokensToken()","00a0d28f":"batchExecute(uint256[])","00a13901":"burnRemains()","00a16cab":"checkCutoffsBatch(address[],bytes20[],uint256[])","00a18b30":"setTeamAddress(address,address,address,address,address)","00a219f4":"payForDemocracy(bytes32)","00a22ee4":"EXOToken(address,address,address,address,address)","00a3216c":"getNextDepositBlockIndex()","00a32af6":"AIRDROP_WALLET()","00a35aa2":"deleteBoolValue(bytes32)","00a470d0":"doInvite(uint256,uint256,uint256)","00a4b146":"SDCToken()","00a53598":"emergencyToggle()","00a58a2a":"Coffee()","00a5e715":"TripCoinTeamSupply()","00a626f6":"getACLRole7123909213907581092()","00a676f9":"getExists(bytes32)","00a6dec6":"setPayerPercent(uint256,uint256)","00a70e03":"priceOfTicket()","00a7d6b3":"checkTransferFromToICAP(address,bytes32,uint256)","00a7fdfc":"bids_count()","00a81ef6":"emitRoleRemoved(address,uint8)","00a8efc7":"subBalance(uint256)","00a8f276":"last_transfer_state()","00a94b6e":"oraclize_query(uint256,string,string[5],uint256)","00aa21e6":"transferFromVault(bytes32,address,address,uint256)","00aa25b2":"_isValidAddress(address)","00aac98b":"Griefing(uint256)","00ac4663":"getWarrantyQuote(string,address,uint256,uint256,uint256)","00ac77a0":"ownerSetCanBurn(bool)","00ad3a23":"RELEASE_PERIODS()","00ad800c":"name(uint256)","00ad8035":"SwingerTokenSPICO()","00ad861f":"README()","00ad8b69":"releaseVestingAllocation()","00adc382":"addressHash(address)","00aea59b":"reviewAudit(uint256)","00aec05d":"BEECASHBACKHOME()","00aeef8a":"deposit(uint256,uint256,uint256)","00af4274":"getTokensForEther(uint256,uint8)","00af9811":"checkRedemptionFulfilled(bytes32)","00afd295":"getAllCellInfoFrom_To(uint256,uint256)","00afdcef":"ELink()","00b08526":"GXCH()","00b172d7":"buyTokensForProposal(uint256,address)","00b23740":"VersusArenaToken()","00b2516d":"vetoMotion(uint256)","00b34747":"contractInitialized()","00b37044":"totalDonated()","00b3c619":"VoteSvp001(address,uint256,uint256)","00b44750":"acceptMembership(address,uint8,uint256,address,uint256)","00b5152b":"VibeXChainToken()","00b526e4":"_sendTokensManually(address,uint256,uint256)","00b5277a":"checkSell(uint256)","00b55554":"emergencyDropEth()","00b56aa7":"emitSynthRemoved(bytes4,address)","00b5988e":"lockTournament(uint256,bool)","00b5b223":"computeResponse(uint256,uint16)","00b6849f":"airDrop(address[])","00b6b707":"accept(uint256,address,uint256)","00b76307":"ChangePrivilege(address,bool,bool)","00b767fa":"EventAddAdmin(address,address)","00b79dd9":"taxlvlEconomy(string,string,string,string,string)","00b7f20a":"isDebtor()","00b8a73c":"IntegrativeWalletToken()","00b9189d":"setPreIcoContract(address)","00b9840a":"DBDHToken()","00b99f8c":"view28()","00b9eb8b":"Coinchangex(address,address,uint256)","00ba092c":"is_current()","00ba3e50":"setProductAttributes(string,uint256,uint256,string)","00badc85":"getcvotesid(string)","00baea15":"pastOneDay()","00bbec1c":"payServiceProvider()","00bc83a9":"xToken(address,string,string,uint8,uint256)","00bca785":"state_of(address)","00bcb883":"ProposalAdded(uint256,address,string,uint256)","00bd35b8":"EventAddToBattle(address,uint64)","00bd6f4c":"transferToAddress(address,uint256,bytes,bool)","00bde030":"getDurationS()","00bdfbcd":"installed()","00c023da":"revokeAttribute(address,bytes32,bytes)","00c17ee4":"setConfig(uint256,uint256,string,string,uint256,uint256)","00c1e956":"addressFundBounty()","00c2943c":"declareWinner(uint256)","00c2b78e":"voteFor(uint256,uint256)","00c33731":"prepair(address)","00c42173":"winnerDeterminedDate()","00c43503":"totalReturns()","00c4cefa":"toKeyValue(int256,string)","00c56675":"setNegativeGrowth(int256)","00c5f509":"preICOSupply()","00c721ab":"setHand(uint256)","00c822fb":"oraclize_query(string,bytes[2],uint256)","00c8bb45":"addMeleeParts(uint8[])","00c90ac8":"AutoCoinICO(uint256,uint256,uint256,address)","00c988e8":"crowdsaleConcluded()","00c99206":"setIdentifier(bytes32)","00c9c8e7":"_emitFeeSet(uint256,address)","00cab8b1":"lockAddressValue(address,uint256)","00cae5df":"solve(uint256,bytes32)","00cb1ae4":"methodThatThrows(bool)","00cb41e3":"getWithdrawableDates()","00cb527f":"miningFive()","00cc15b0":"lengthEncode(uint256)","00cc48a6":"updateNameIP(string,string)","00ccbc68":"firstRedemptionRequest()","00ccfdab":"removeForgivedChar(uint256,string)","00cdbc1f":"changeHash(bytes32)","00cde2bb":"releaseAccount(address,address)","00ce2057":"triggerPayment()","00ce4462":"register_with_node()","00ce8e3e":"getUsers()","00ce9f8a":"getPeggedTokenValue(address,address,address)","00d11245":"Mallory(address)","00d17799":"defaultCreatedCount()","00d2c31d":"getHashSignatures(uint256)","00d30eb9":"firstWeekPreICOBonusRate()","00d32a75":"TransferDFN(address,address,uint256)","00d357d1":"CustomcoinCrowdsale(address)","00d3f51a":"VirtualRealityChain()","00d4b768":"currentMideTokenTime()","00d4b959":"ico1total()","00d52342":"loseGame()","00d56d71":"StageTwoEnable()","00d5da02":"setTokenDescription(string)","00d7b3a9":"Exoso()","00d7e9cf":"landPricePrevious()","00d7f5d8":"Human1StandardToken(uint256,string,uint8,string)","00d80e07":"getGuardianSale(uint256)","00d84fd8":"remove(uint32)","00d9694c":"setBonusRound3(uint256)","00d9f24e":"UpdateNumPlayers(uint256)","00db90d1":"setCanWithdrawBeforeEnd(bool)","00dba80c":"mineableTokenStorageContract()","00dba864":"TOKENOPSPLATFORM_JOINTTOKENS()","00dbeb31":"getPromoCodeForEther(bytes16)","00de1eb4":"cofoundersSupplyRemaining()","00de8393":"SetLimit(uint256,uint256)","00dee43f":"initMinting()","00df415e":"preSaleZxcCap()","00dfafa4":"addMarket(address,uint256,uint256,uint256,uint256)","00dfd21a":"getUserDocId(address,uint32)","00dff399":"Fibonzi()","00dff60a":"partnerPreICOBonus(address)","00e063bc":"AddressQuery(address)","00e0c53f":"hold()","00e11919":"setClamTax(uint8)","00e1986d":"grantVestedTokens(address,uint256,uint64,uint64,uint64)","00e29488":"selfRegisterDINWithResolver(address)","00e31614":"modifyGuess(uint32,uint64,uint64)","00e37634":"batchRefundzFixed(address[],uint256)","00e38410":"getVotingMetadata(uint256)","00e43ee9":"setMigrationStatus(uint256,address)","00e46700":"setMinimumPassPercentage(uint8)","00e4768b":"setPrice(address,uint256)","00e4778a":"addAccessoryIdMapping(address,uint64)","00e4fc14":"withdrawNetfRevenue(uint256)","00e520d0":"_emitSkillEvaluated(address,address,uint8,uint256,uint256,uint256)","00e5fc5f":"rawVotes(address)","00e610fc":"passwordMint(address,uint256,bytes32)","00e62620":"zoDailyLimit()","00e64f6d":"regularDonations()","00e6abbe":"EggFactory(address)","00e6b9f8":"MetalToken()","00e756cc":"roleAddressAliaser()","00e7d289":"registerListening(address)","00e8516a":"buySamples(uint256,address)","00e85279":"ownerLock()","00e893ce":"crowdsaleTokenPriceDenominator()","00e97827":"percentRake()","00e9c006":"deleteTransaction(uint256)","00ea11ec":"calcCakAmount(uint256)","00ea3146":"postGood(bytes32,uint256)","00ea81c0":"mint(address,uint256,string,string,bytes32[],bytes32[])","00ea8737":"myTickets()","00ead724":"Ticket(uint256,address,bytes3)","00eaedc8":"retrieveVanityForWallet(address)","00eb52f2":"setIsActivated(bool)","00ebc96e":"setCrowdsaleEndTime(uint256)","00ed015b":"setETH(address,uint256)","00ed2592":"sendEvents(address,uint256,uint256)","00f052f6":"getBidByBidder(address,uint256,address)","00f12159":"SpectrumNetworkNetwork()","00f17754":"accountAt(int256)","00f1c7ec":"setAllocationFee(bytes32,uint256)","00f29d55":"isOrdered(address,bytes32)","00f2c41b":"calculateTotalPayoutAmountAndCommission()","00f31e76":"isPresent(bytes32)","00f380f4":"communityFund()","00f3e717":"mrate()","00f40839":"LogTowncrierCallback(uint64,uint64,bytes32)","00f43f6d":"Simple_Claimable_Temporized_Stake()","00f45438":"createTokenToMarket2019()","00f49203":"Hard_Cap()","00f545c6":"addressBelongsToAccount(address,address)","00f54f0a":"Wallet2()","00f5544f":"openGame(uint256)","00f55d9d":"destroy(address)","00f62717":"setMockedBlockTime(uint32)","00f64e66":"StakePoolICO()","00f666d4":"QueueManager()","00f6ca59":"runCredits()","00f714ce":"withdraw(uint256,address)","00f733e9":"pieceForSale()","00f784a4":"OrderAdded(address,address,uint256,uint256,uint256)","00f7c5be":"unregisterAddress(address)","00f821a7":"addMintContract(address)","00f9ac78":"setVoteFactory(address)","00fa081a":"multiplicator()","00fa7be5":"EnterToken()","00fac74a":"salesdeadline()","00faf4dd":"getTokenDivisor()","00fca46f":"initialAuctionEndTime()","00fdc73f":"currentMinPurchase()","00fdd58e":"balanceOf(address,uint256)","00fe03e3":"icoSoftCapInWei()","00fe4789":"batchFillOrKillOrders(uint256[],bytes[])","00fe9590":"getMaxInt64()","00fec4ba":"afterForkBlockNumber()","00fece08":"giveDown(address,address)","00ff2fb1":"log_2(uint256)","00ff6262":"DefensorWallet(uint256,string,string,uint8)","010066ad":"joinWhiteList(address)","01008275":"addPersonalCap(address,uint256)","0102305b":"logGameData(bytes32[],bytes32[],int256[],uint8,bytes32,bytes32)","01024700":"OnePhaseAuction()","0102fcfc":"distributeOwnership()","010342f4":"averageSalePrice()","0103c92b":"userBalance(address)","01044632":"setDevelopersTokens(uint256)","0104855f":"mctTotalSupply()","01056361":"setupFunding(uint256,uint256,address)","0106172a":"invalidEarlyPurchaseIndexes()","01061ae1":"removeArtworksByString(string,uint32)","010648ca":"setDocument(bytes32,string,bytes32)","01067543":"getParentCount(address)","01068767":"ABL(address,address)","0106bc8f":"PVE()","010731c0":"sendCryptedHand(bytes32)","0107a4eb":"XRRfrozen()","0107a8df":"withdraw_bonus()","01080c6f":"activateTokensForArbitration(uint256)","0109057e":"WIZISHOPPINGCOIN()","01090c4e":"_removeProxyManager(address)","01090c9e":"PowerOfPutin()","01095962":"oraclize_setCustomGasPrice(uint256)","0109f22e":"CrowdSale()","010a38f5":"getTokenId()","010a7d65":"tryTransfer(address,uint256)","010abbd0":"getCardOwner(uint256)","010ae545":"creditTokens()","010afc20":"claimWrappedContractAdmin()","010b66de":"mainSale_Cap()","010b8701":"hasSubstring(string,string)","010ba4e2":"balanc()","010bd255":"DPNToken(address,address)","010cc97c":"transferMarketIncentivesFund(address,uint256)","010d214e":"WithdrawProfit(address,uint256)","010d2446":"getProblem(uint256)","010d3bf6":"buyUsingRefBonus(address,address)","010dbfec":"sell(uint256,bool)","010e3964":"mintTokenForPreCrowdsale(address,uint256)","010e3c1c":"setInflationChange(uint256)","010e8209":"admin(address,uint8)","010f7735":"burnToken(uint256,string)","0110ea76":"TanterX(uint256,string,uint8,string)","01114d74":"getCCH_edit_33()","0111ae8a":"maximumValueAfterGuaranteedPeriod()","01122ddb":"BonusEnrolled(address,uint256,uint256)","011285da":"multiplication()","0112e2c4":"CotteToken()","01132b70":"setXTVNetworkEndorser(address,bool)","0113b261":"getNumberOfShareHolders(uint256)","01146844":"loadFund()","0114af17":"investment_address()","01169399":"createEthTknDelegation(address,address,address)","0116bc53":"CostChip(uint32)","0116bfc0":"BuyUpgrade(uint256)","01172005":"affiliateContract()","011721ad":"getValidation(address,uint256)","01173a74":"mintToken(address)","0117b324":"addTestimonial()","0118251c":"getHighWinPercent(uint256)","011847a2":"inviteReward()","011857d0":"bntConverter()","011879db":"createAuction(uint256,uint128,uint128,uint128)","0118895c":"reservations(address,uint256)","0118e662":"SiekechuCoin()","0118e686":"isCrowdsaleActive()","0118fa49":"create(uint256,string)","0119ada7":"eliminate(address)","011a44bf":"isAllFrozen()","011a8eb7":"DrawPrepareEvent(uint256)","011aab02":"Oculta(uint256,string,string)","011afdd7":"hello2()","011b1a7b":"setCrowdsalePrice(uint256,string)","011b29e3":"changeCourse(uint256)","011bc2e1":"calculateWinners()","011c3d06":"getCurrentStats(uint256)","011ce353":"OwnerRecall(address,uint256)","011d07c0":"getMyIdeas()","011d0b58":"buyListing(bytes5)","011d79ca":"CrowdsaleEnabled()","011db570":"calculateObtained(uint256)","011de7aa":"intervalAtTime(uint256)","011e0162":"Flercoin()","011e6492":"checkSuccess()","011eb18c":"removeAddressFromOperators(address)","01201c0b":"getTheTokens()","01209d09":"updateVaults(address,address)","0121683f":"createAuction(uint256,uint256)","01216f05":"calcEthReceived(uint256)","0121b93f":"vote(uint256)","0121be14":"_createCard(address,uint16)","01233474":"saleInProgressB()","012397ff":"firstroundprice()","01239adf":"maxPos()","0123aff4":"BurnCoinToken()","0124188d":"CAIRToken()","01250e4d":"CraigGrantEatDick()","01253fbf":"threshold1()","0125ae62":"setMeterPoint(int256,address,int256)","0125d7c8":"IPAYTOKEN()","0126b8b6":"batchAllocateTokensBeforeOffering(address[],uint256[])","01272c2c":"canExecute(uint32)","0127eb0d":"angelAdminAddress()","01281641":"OfferCanceled(uint256,bytes,address)","01281867":"keccak256calc(address)","01284ad4":"removeAddressFromPrivateWhiteList(address)","012874a3":"EthsMePresale(address,address)","01289e3a":"AvenceToken()","01293b5c":"defaultURIEnd()","012a08f8":"_vote(uint256,bool,address)","012aa25e":"releaseTokens(string,address,uint256)","012aa809":"InvalidCoinUsage(string)","012b1f73":"announceEndOfGame()","012bac23":"addCoinAllowance(address,address,uint256)","012beac9":"vendorRegistry()","012cd104":"LoveCrowdsale()","012d61e1":"buyRedirect()","012defec":"harvests(bytes32)","012ea37c":"arrangeFreePoints(uint256,uint256,uint256,uint256)","012f52ee":"escrows(uint256)","012fd089":"EscrowAccountCrowdsale()","012fec73":"KakushinToken()","0130371a":"MAX_SUPPLY_NBTOKEN()","01303778":"refreshMonarchyGamesReward()","013054c2":"redeemToken(uint256)","01307338":"dispatchRewardToken()","013130c0":"maximalInvestmentTimeTreshold()","01326c34":"clearAddresses()","0132cc82":"tokenFounderLockTime()","0133311b":"deleteLockTime(address)","01339c21":"launch()","0133db3a":"nameOf(uint256,address)","0133e1fa":"RunchuToken(uint256,string,uint8,string)","01340592":"MAX_CONTRIBUTION_USD()","01345514":"BJLToken()","013459ca":"getTokensForGraphenePower()","013512e3":"CABtoken()","0136356d":"unregisterAddresses(address[])","01365406":"deathData_f19()","01367751":"PryzeSale(address)","01372911":"throwsWhenActivatingBeforeDeployingANT()","0138aac1":"getUserBalanceOnToken(address,address)","0138e31b":"_jAdd(uint256,uint256,uint256,uint256)","013953a6":"amountForRefundIfSoftCapNotReached()","01395d33":"tokenPriceInWeiForDay(uint256)","0139caad":"payout(address,uint256,uint256,bool,uint256)","013a0e9b":"pairwiseOr(uint64)","013a83f1":"beat(uint256,bool,uint8)","013a9c50":"updateWallet(uint256,uint256)","013b490c":"updateDaoAddress(address)","013cf08b":"proposals(uint256)","013d48bd":"getGuessStatus(uint256)","013d64bd":"setCanCall(address,address,string,bool)","013dbf17":"crowdsaleProgress()","013e5415":"getGoldDataInitialized()","013e7c35":"getUrlCountOf(address,address)","013ed428":"author1()","013eebd7":"getmaxcardcount()","013efd8b":"tokenToEthSwapOutput(uint256,uint256,uint256)","013f83c9":"createTeam(address,uint32[])","013f84fa":"getAllNumberOfBets()","013fc2a3":"SmillesCoin()","0140e359":"stand(uint256,uint8[],bytes32,uint8,uint8,bytes32,bytes32)","0140ea82":"setNormalRoomMin(uint256)","0141e90a":"ICOaddress(address)","01429244":"getVendorApplicationsCount(string)","0142b8d1":"makeMerkle(bytes,uint256,uint256)","0142c8de":"currentPeriodRate()","0142c9ae":"isSoleout()","0142d43e":"notHungry(uint256)","0142d7b4":"authorizedBurnTokens(address,uint256)","0142f904":"CalculatePriceofRigs(uint256,uint256,uint256)","0143279c":"whitelistTicket(address)","014345c8":"SENDER_BALANCE()","01447eba":"disableCrowdsale()","0145e333":"init(address,address,address,uint256,uint256)","014647f4":"approve(address,bytes)","0146705b":"approvedRatio(string)","0146d0ca":"sendVote(string)","01491f09":"baseRateInCents()","01492a0b":"matchingEnabled()","0149eea0":"view_get_Treasure()","014a7453":"getPI_edit_22()","014a897d":"Token_2()","014b0732":"validateTrade(address,address,address)","014bed81":"setAmountToKoikeToken(uint256)","014c3dbc":"current_external_block()","014c8ac0":"CBToken()","014d0f68":"hardCapHighUsd()","014d36f4":"Afroin()","014e5fde":"ARKController_1_00()","014e6996":"ZTF()","014e95ba":"rateBase()","014f7f22":"joinCount()","014fc169":"setLockToAccount(address,address)","015008b1":"reLoadXaddr(address,uint256)","01500a97":"getTokenForCommunity(address,uint256)","01501347":"disableRefund()","01502460":"freezeTransfers()","0150b530":"addressesLength()","015129a1":"sellPriceEth()","01512db1":"removeIntervalCoefficient(bytes2,uint256)","01515a7b":"weiToReceive()","01518d76":"sendQuery(uint256)","0151cf1d":"setVotingWinner(address)","01538868":"_setTokenURI(uint256,string)","015493b4":"setFoundationWallet(address)","0154d3ea":"notexistdept(string)","01567739":"beneficiaries(address)","015689c6":"testControlCreateWithParentsParentSameItemId()","0156b323":"destroyTokensFrom(uint256,address)","015773b6":"set_private_sale_total(uint256)","015854f8":"quoteBid()","0159a91d":"concatenate(string,string,string,string)","015a18ed":"start(bytes32)","015a4ead":"unfollow(address)","015aeda7":"setAttribute(address,bytes32,uint256,bytes32)","015afa55":"winnerIsB()","015bf264":"depositTokens(uint256,address,uint256)","015c1c7a":"toTokenAmount(address,uint256)","015cb3ff":"pauseTime()","015cb8cf":"baxianchain()","015ccd07":"DockToken(address)","015d200f":"lockBalanceAll(address)","015def53":"priceFactorC()","015e4f3a":"getConfigUint(int256,bytes)","015e52c6":"getPool(uint32,int256)","015f32f9":"cappedSaleStartTime()","015fa6c1":"setWeiCap(uint256)","015ff39f":"GNOSIS()","0160751c":"setDepositary_function(uint256)","01608f5f":"amountOf(address)","0160e2f6":"cancelOptionOrder(address[3],uint256[3],bool)","01612def":"additionalInternal(bytes32,uint256[])","0161d5f0":"createCampaign(address,uint256,bytes32,bytes32,bytes32,bytes32)","016211b5":"bonusAllocation()","01621527":"destEthDevs()","01623ee4":"basicRate()","0162827c":"bonus02End()","0162f799":"getPrivatePresaleFundersCount()","01637ff4":"getAccessory(uint256)","0163d8ff":"MostValuableCoin()","01644ea7":"getSimple()","016474ce":"withdrawalRound(address,uint256)","01655e31":"CollectibleBidEntered(uint256,uint256,uint256,address)","01659863":"_0xBitcoincashToken()","01665393":"BLOCKRADIO()","016774e9":"donatetokens(uint256)","0167eb85":"stone()","01681a62":"sweep(address)","016899de":"depot()","0168e2e3":"JonsCoin()","0168f063":"tokenAmountOf()","016a8cf6":"topUp(address,uint32,uint192)","016aba15":"setDividendTransactionNumber(uint256)","016b0882":"Cst()","016c6601":"_receiveDeposit()","016d60b3":"buyStoreCore(uint256,uint256,uint256)","016d7c83":"pauseLottery(uint8)","016deccc":"createContractSpecial(string)","016e03b1":"getItemIdToTokenId(uint256)","016e128b":"ProfitWithdrawn(address,uint256)","016ea771":"isNotCommittee(address)","016eb8a8":"percentage(uint256,uint256)","016f34ad":"callgSoftCap()","016fa018":"getPartnerBalance(address)","01725a0b":"demo()","01738ecd":"setCurrent(uint256)","0173e3f4":"addCoins(uint256)","0174e12b":"myx()","01750152":"isNode(address)","01769b37":"sendTokensToSeven(address,address,address,address,address,address,address,uint256)","0176b596":"DreamBit()","01770e0c":"NKTToken()","01775f23":"_closeBooks()","01778b6d":"Ynfiniti()","0178090c":"toSHA256(string)","01788d1d":"Decabes()","01788d56":"balanceOfTranche(bytes32,address)","0178b8bf":"resolver(bytes32)","0178fe3f":"getData(uint256)","017945ba":"changeDollarPrice(uint256)","017972af":"getNumbersFromHash(bytes32)","017b0d00":"highestBidForEdition(uint256)","017b39a7":"getMiniPoolEdit_1()","017bef67":"addExplorationByShip(uint256,uint256,uint256)","017e322c":"getCurrentGameSteps()","017e6f5f":"reOrganizeAuthorities()","017f27fc":"saleIsClosed()","017fa10b":"returnUint128(uint128)","017fa51d":"shouldRevertPure(bool)","017fe809":"getPower(uint256)","01828e61":"Quecoin()","01836037":"foundationBoard()","01838f01":"addAnimal(uint8,address)","0183f310":"potMembers(uint256)","0184e952":"award(uint256)","0184fc35":"crowdSaleAddress()","0185f409":"getInvestorAddress(uint256)","01863f79":"thisContactsTokens()","0186aa16":"OxBioToken()","0186c36e":"getCurrentExchageETH()","0187699c":"VerixChain()","0187a677":"bbodServiceRegistry()","0187e973":"PricingStrategy(uint256,uint256,uint256,uint256)","0188c09f":"altList(uint256)","0188fdef":"setMaximumBuy(uint256)","01890840":"MilestonePricing(uint256[])","0189bd41":"getProofOfPerfBlockStateState(bytes32)","018a25e8":"getBuyPrice()","018aba3f":"createPledge(address,uint256,uint256)","018b06ff":"isWinner(address,bool)","018b64b6":"AuctionCancelled(address,uint256)","018d3490":"assignOracles(uint256,address[])","018d6f7a":"showethconf(address)","018de5c5":"distributeCBC(address[],uint256,uint256)","018dfaa0":"calcCount(uint256)","018e13d0":"numOfCurrentEpoch()","018f5472":"isAUser(address)","018fa360":"getDeposits(address,address)","018fbf9f":"hashAt(uint16)","01909317":"_storeSettingDataState(uint256,address,uint8,string,address,address,string)","0190b805":"editEarlyParicipantWhitelist(address,bool)","0190e84f":"Bitscorone()","0191903e":"setBlogregistry(address)","0191d35c":"summFounders2()","0191dc92":"numOfAdmins()","01930b6e":"darknodeDeregisteredAt(address)","01933c43":"TOWN_START_PRICE()","0194abaf":"prolong()","0194ac16":"BlockchainFUN(uint256,string,string)","0194db8e":"sum(uint256[])","01968a56":"mintAllocation(address,uint256)","01970353":"setStepOneTime(uint256,uint256)","01970c6b":"team_funds()","0197d972":"VESTING_PERIOD()","01984892":"name(address)","0198632a":"getPurchasedProducts()","0198aa74":"firstsaleOpen()","01991313":"scheduleCall(address,bytes4,uint256)","01996951":"ethPerTransactionLimit()","01998ad4":"GlobalAdminChanged(address)","0199c7b2":"numberOfHolders()","019b1576":"backupAddress()","019b32ad":"transferToSalesPartner(address)","019c3f52":"newCollectible(uint256,string,uint256,uint256,uint256,int256,string,uint256,string)","019c5675":"BatchComplete(uint256)","019d2729":"approve(bytes)","019e56fd":"findCurrentFor(address)","019f5c5b":"narcoCore()","019f64cc":"payBack()","019f80b6":"toSecond(uint256,uint256)","019f8e26":"AddedManager(address)","019fef03":"resetFine(uint16)","01a00216":"addMod(address)","01a01551":"getApprovers(string,string)","01a048c3":"mintLockTeamTokens(address)","01a08a8b":"getWorkerPool(address,uint256)","01a0dee1":"investorsSupply()","01a12fd3":"removeAlerter(address)","01a15ee9":"mintTokensLocked(uint256,int256,address,uint256,uint256)","01a1b778":"battleId()","01a2789e":"transferPreSignedBulk(address[],address[],uint256[],uint256[],uint256[],uint8[],bytes32[],bytes32[])","01a2f48a":"changeAssetPackPrice(uint256,uint256)","01a2f75c":"createContract(address,uint256,uint256,uint256)","01a340a5":"totalBoughtColor()","01a413b9":"bankrollAvailable()","01a50001":"rewardEvery100000Draw7(uint256)","01a521d6":"getSellerBalancesOfCurrentAuctions(address[],address[],address)","01a53d3b":"maximumBuyBackPriceInCents()","01a5e3fe":"isWhitelisted(bytes32)","01a682c1":"createTeam(string,string)","01a68a94":"donkeyCoin()","01a6ab93":"PassedGateway(address,uint256)","01a77625":"_subEth(uint256,address)","01a7a8c0":"batFundDeposit()","01a80669":"createInvestorWallet(uint256,address,uint256)","01a88f7d":"buySeeds()","01a8d07f":"addBidder(uint256,address,uint256,uint256)","01a93f1c":"giveAwayOwnership(address)","01a96b94":"set_stage_Discount(uint256)","01ab2a66":"getPlayer1()","01ab2f14":"Manus()","01ab9806":"BUY()","01ab9f19":"_safeCall(address,bytes)","01ad35e3":"mintTokensForCommand(address,uint256)","01ad3936":"assignedAmountToDevelopmentTeam()","01ad62a3":"getBackendWallet()","01ae19d6":"LogLOTTransfer(address,uint256,uint256,uint256,uint256)","01aef755":"setBestProbability(uint8)","01afd5f3":"allBalancesForManyAccounts(address[],address[])","01afebac":"ICOopen()","01b057b1":"isAdminSet()","01b07f75":"adjustValue()","01b0c649":"collect(address,address,uint256,uint256)","01b11792":"toggleLocked()","01b125e6":"resetTimer(string)","01b14149":"getFcontracts(address)","01b2320e":"getStartBlock(uint256)","01b2a413":"baseVerifierFee()","01b490ed":"CAIDToken()","01b54744":"setLLV_edit_24(string)","01b5990c":"getCreatedOn(address,uint256)","01b5ffcf":"addVesting(address,address,uint256,uint256,uint256,uint256,bool)","01b6b523":"viewMyContribution(bool)","01b74d73":"TEAM_SHARE_PERCENTAGE()","01b78b12":"BitcoinMoon()","01b852c9":"MetadollarCrw()","01b869f1":"release(uint32,uint32,uint32,bytes)","01b8a0b9":"createTestingEnvironment()","01b96aaf":"waveCap2()","01b98853":"assetFreeze()","01b9a397":"setDescriptor(address)","01b9fe59":"testMint(int256)","01ba2bd5":"Request_Airdrop()","01ba6805":"loseEth(address,uint256)","01baa2e7":"validateCap()","01bb4edf":"RAIOCO(uint256,string,string)","01bb67a8":"InvestCancelEvent(address,uint256)","01bb7e5a":"getLockerDetails(address,uint256)","01bb85a4":"__startBlock(string)","01bbb8fa":"verifyTimelock(bytes32,uint256,address,address,uint256,uint256,bytes32,bytes,bytes)","01bbc3f5":"stopWhitelistReservetion()","01bc237d":"researchers(address)","01bc43a0":"sha(uint128,bytes32)","01bc45c9":"_admin()","01bc757a":"getstudentInfo(uint256)","01bc9533":"totalTokensGenerated()","01bd4051":"disown(string)","01bea2bd":"Mountain()","01beb7cf":"setBadgeLevel(bytes32,uint256,string,string,bytes)","01bebf36":"updateAirdropStageState(string,bool)","01bf6648":"removeFromWhiteList(address)","01c0c6bc":"_processRefund(bytes32)","01c11d96":"MAX_PRICE()","01c1c877":"setChampion(uint256)","01c1de96":"fechVoteInfoForVoterByStage(address,uint256)","01c24a90":"minimum_balance()","01c28786":"date_end()","01c2b6f5":"commitDeadline(bytes32)","01c355df":"appSelectors(bytes4)","01c432ce":"wrongClaimerOrUnsetInManager()","01c4a07e":"convertDeposit100to70(address)","01c516b1":"crowdsale_end()","01c543c2":"claimOreOnlyFromAssetId(uint256)","01c5b2f0":"compressBoard(uint256[81])","01c64ce8":"maxTxGas()","01c69452":"brandAccounts(uint256)","01c6adc3":"transferFrom(address,uint256)","01c6f167":"auctionsRunByUser(address,address)","01c7cb58":"migrateMileageLeader(uint8,address,uint256)","01c835e5":"returnRemainRewardToken()","01c8c9d4":"getCurrentBonus(bool)","01c96df6":"ZeusShieldCoin()","01ca1d72":"getTransformRate()","01cb0261":"getWeightedVote(bytes20,uint256)","01cb3b20":"checkGoalReached()","01cb63e8":"arrayIndexOutOfBoundsDynamic(uint256)","01cceb38":"setExpiry(uint256)","01cdc371":"getCBATransactionMessageLength(address)","01ce5e75":"fundsCombinedValue()","01ce616f":"setMaxweiAmount(uint256)","01cff174":"getNumberOfAvailableStartTickets()","01cffa17":"getTokenWithBonus(uint256)","01d09a3c":"setCallbackGas(uint256)","01d0ac0b":"requestAccess(address,address)","01d1c7fd":"BTCS_ETHER_CAP()","01d223c1":"set_modified_weth_address(address)","01d2db89":"isValidKyc(address)","01d4277c":"thisisalsofind(uint256)","01d42a9c":"closeChannel(address,uint256)","01d490fd":"registerVestingSchedule(address,address,uint256,uint256,uint256,uint256)","01d4fb7c":"fundsKeeper()","01d511f1":"request(string,string)","01d5c488":"gemCriticalRateConversion()","01d6e35b":"unfreezeTeamTokens(address)","01d78a8b":"alterTotalSupply(uint256)","01d81121":"allocateCreationInvestmentingToken(address[],uint256[])","01d81a50":"slice(bytes,uint8,uint8)","01d8715f":"replaceManager(address,address)","01d8ce92":"KpopArena()","01d90bbc":"getCurrentUserMaxPurchase()","01d92dc8":"unsoldAllocatonScheduled()","01d97f08":"setMapping(bytes32,bytes32)","01d98d44":"changesDenied()","01da31ad":"_setPermission(address,address,bytes4,address,bool)","01da73ff":"isValidChannel(bytes)","01da7b31":"getBankName(address)","01db61e0":"HARD_CAP_EUR()","01dbdf44":"priceAt(uint256,uint256)","01dd91c0":"force_received()","01dda205":"updateSoftCap(uint256)","01ddc95e":"getTargetBlockLength()","01ddfa9d":"referalFundBalance()","01de7a1c":"updateVendorName(uint256,string)","01dee025":"getTombDetail(uint256)","01df6885":"getTokenDetails(uint64)","01df7f30":"validateProposedThroneConfig(uint256,uint256,uint256,uint256)","01e0ba3a":"bonusAccountIndex(uint256)","01e11c29":"SellToken()","01e1bcf7":"rateIcoPreICO()","01e1c861":"minWeiValue()","01e1d114":"totalAssets()","01e1ecb4":"releaseTokensAndEtherForEmergencyFund()","01e30a7f":"bigContributionBound()","01e33667":"withdrawToken(address,address,uint256)","01e343db":"setOffset(uint256)","01e3d346":"create(bytes1,bytes32,uint256)","01e3d718":"transto(address,uint256)","01e40f5b":"getFeeWindowBurnTargetValue()","01e4741c":"Ebets()","01e4abc1":"setWhiteList(address,address,uint32)","01e5691c":"createTransaction(uint256,address,uint256,uint256,address)","01e56c77":"stopPayouts()","01e57a37":"dth()","01e5aa3e":"getIssuerArray(bytes32)","01e68cbb":"timestamp_msg()","01e6a70e":"EthlanceInvoice(address)","01e73b73":"bulkVote(uint256[])","01e7fefe":"addParticipant(address,uint256)","01e88208":"permissions(address)","01e8b608":"TOKEN_SECOND_EXCHANGE_RATE()","01e91872":"DECToken(uint256,string,string)","01ea6270":"setTeamTokenAddress(address,address)","01eb6fdd":"max(uint32,uint32)","01ebc88e":"pingReading(uint256)","01ebccb9":"activeNameOf(address)","01ebd36b":"enable_sale()","01ebebf2":"myTulips()","01ec0793":"profitsOf(address)","01ec16ef":"RulesChangedEvent(uint256,uint256,uint256,uint256)","01eca37c":"medalDataContract()","01ecaca5":"changeOVCPerEther(uint256)","01ed7f8b":"distribute(address,address,address)","01edb1ea":"dayIdx()","01ef6cad":"addJobContractFeedback(uint256,string,uint8)","01ef74f1":"tokens_rewards_available()","01efb6c8":"getOrderInfo()","01f2a2c5":"buyForBtc(address,uint256,uint256,uint256,uint256)","01f40a85":"issuePurchase(address,uint256)","01f59d16":"maxFee()","01f5af30":"addJobSponsorship(uint256,string,string)","01f6dad0":"remaining_for_sale()","01f6e6d5":"asignarDni(uint256)","01f78f43":"getFreeCHICKEN()","01f7e49a":"removeFromPresaleWhitelist(address)","01f81649":"claimBrokerFee()","01f865c3":"setWinPercent(uint256)","01f89de0":"purchaseSharesOfArtwork(uint256)","01f99ad7":"left9(uint256)","01f9a0aa":"setOraclizeQueryMaxTime(uint256)","01fa3e53":"addSocial(address[],uint256[])","01fabd75":"addArbitrator(address)","01fae3b6":"setTokenState(uint8)","01fbaf99":"totalLareSold()","01fc59e1":"checkId(bytes32)","01fce27e":"getQueue()","01fd1b1d":"finalizationFailHook()","01fd89a4":"getFlags(bytes20)","01fe34e3":"EWCertificationCenter(string,string,string)","01feeef4":"getTitleDeeds(bytes32)","01ff62ab":"isConcerned(uint256,address)","01ff8961":"getPortfolio(uint256,address)","01ffc9a7":"supportsInterface(bytes4)","0200b10d":"collectedEthers()","0201b5d5":"transferOverBalanceFunds(address,address,uint256)","0201e253":"WhoHoldsPatentFor(bytes32)","0202f3ea":"allowTransfersTo(address)","020331dd":"getFact(bytes16)","0203596d":"purchaseKingdom(string,string,bool)","0204c163":"maxFadeoutPromille()","0204d0f8":"unlockOwnerDate()","02055186":"Alexa()","02063d93":"calcMaxDeposit()","0206432d":"FlexionCoin()","02064b42":"consul_price()","02065fb8":"isLoanFunded()","02067e6a":"add(uint8)","0206deb5":"unitsLimitForCurrentSaleStage()","0206e79d":"decodeParamId(uint256)","02072579":"controllerSet()","02078166":"unburnedTypeTokens()","0207eda6":"NOVA(uint256,string,uint8,string)","02083e27":"REET()","02093ee2":"finalize2()","02096a8e":"amountsByCurrency(uint256)","02099186":"totalRise()","0209f982":"reminder()","020a0ff5":"setClaimLimit(uint256)","020acb6a":"round1Bonus()","020bdf54":"getFreeStrippers()","020d308d":"removeDelegate(address,address)","020d4786":"OmmerToken()","020de876":"setTakerFeeRate(uint256)","020df04b":"createBarCode(bytes32)","020df957":"setAirdropReceiver(address)","020e2d48":"getArrayHashLibry(bytes32)","020eb6e1":"createWorkOrder(address,uint128)","020f899a":"hybridizationPrice(uint256)","0210d751":"getMyGames()","02114111":"allowTimelock()","0211c4bb":"MessageToken()","0212d0b9":"payByTokens(uint256)","0212fd1f":"InternationalRapidAsset()","0213443c":"changeZombieCreator(address)","02135534":"getNinja(uint256)","02138563":"buyOre()","02140adf":"CryptoHuntersToken()","0214e9cf":"preIcoFinishTimestamp()","0216f544":"transferExecutor(address)","02171e7c":"largeConstant()","02172276":"triggerEvent(string,string)","02175beb":"setOzr(address)","0218a1c3":"setString(bytes32,bytes32,string,bool)","02190a52":"allowRecurringBillingInternal(address,uint256,uint256,uint256,uint256)","021979c3":"wlcontract()","021991e7":"getBetsLocked()","021a11d0":"setContractICO(address,address)","021ba8f8":"CLAWBACK_PERIOD()","021bb947":"burnAfterIco()","021bc974":"checkPoolBalance()","021c309a":"solveBet(address,uint8,bool,uint8)","021c43b4":"NBY()","021c7bd7":"setInspectorId(address)","021da58e":"initCrowdsale(uint256,uint256,uint256,address,address)","021dc2fc":"tokenExchangeRateInWei()","021dd82c":"checkNotLocked(address,uint256)","021e7f85":"CONTRACT_ALLOWANCE()","021ea45e":"claimTilesForExistingUser(uint16[],uint256,bool)","021efe49":"getPawnOwner(uint256)","021f0376":"_addAssetTo(address,uint256)","021f36a4":"changeResource(bytes32)","021fe51f":"VUPRefundedForWei(address,uint256)","0220611a":"timeOfLastPublish()","022079d9":"ecmulVerify(uint256,uint256,uint256,uint256,uint256)","0220a5b4":"terminate(string)","0220f662":"addPolicyAttribute(uint8,uint256,uint8)","0221038a":"payOut(address,uint256)","02218ad6":"desBan(address)","0221f2fb":"Beneficial()","0222f96e":"Poppy()","02238cbd":"_activateDevice(bytes32)","02238e43":"launchnewround()","0224dc18":"TOKEN_SALE1_PRE()","0224e9a7":"devFees()","02258730":"nodeRegistration()","02259b07":"setPBTTForGas(uint256)","02262ced":"setBackendOperator(address)","0226401d":"ownerTestValue()","02264b63":"private_withdraw(uint256,address)","0226a5c9":"petOnLeaderboard(uint64)","0226ed48":"changeGlobalAdmin(address)","02285548":"FarmHopeProjectToken()","0228e05a":"walletFromData(bytes)","022914a7":"owners(address)","02299496":"updateICOStatus()","0229ae31":"CosmoCoin()","0229b23e":"pauseSALE()","0229c4eb":"TransferMinimumFeeProposalAdded(uint256,address,uint8)","0229e448":"founderMulSigAddress()","022b7433":"add(bytes32,uint8,uint8)","022b8a7f":"getIdProject()","022b9735":"GetMyBalance()","022bc71f":"getNextCallSibling(bytes32)","022bd24c":"hypes(uint256)","022c254a":"pendingChanges(address)","022cabac":"CoinViewToken()","022e1e59":"USBEEF()","022ec936":"updatePeriod(uint256,uint256)","022edd35":"getActiveContracts()","022fc88b":"approveToken(address,uint256)","02300cbb":"DepositReleased()","0230a07c":"releaseDeed(bytes32)","0230d870":"tierThreeRate()","02329a29":"pause(bool)","02337657":"documentIPFSHash()","0233d94d":"getEscrowsByTaker(address)","02340ad6":"deleteVisaOffering(uint256,uint256)","023569aa":"MoniCoin()","02356ec0":"returnCoupon(address,bytes32)","02358773":"XFL(uint256,string,string)","02359fdd":"OfferingCloses(uint256,uint256)","02361dbc":"totalAllStage()","0236bb5a":"isAdminAddress(address)","0237ef12":"contributionInWei()","0238777f":"preCrowdsaleContractAddress()","0238b5aa":"testToAddress()","0238b770":"endDateICO()","02394872":"getLastBlockHeight()","02395e9b":"lpc()","023a624a":"right11(uint256)","023bb74d":"DATE_PRESALE_START()","023c19ce":"MyWishChain()","023c23db":"getSize(uint256)","023c6042":"tokencap()","023c61ca":"price_agent()","023c8be2":"setWithdrawalAddress(address,address)","023d6c03":"REPO_APP_NAME()","023e1c34":"communityContributionPercentage()","023e36d8":"nVotesCast()","023eff9f":"airdrop(uint8,bytes32,bytes32)","023f4147":"totalContributed()","023f4a66":"issueToReserve(uint256)","023fadda":"getRedeemedList()","02400845":"publish(bytes12)","02404bee":"crowdsaleCount()","02404fcb":"buyBanana()","0240ab3f":"finishRetrieving()","0240db33":"summFounders4()","02410cf6":"isFundReleased()","0241747f":"ReceivedBTC(address,uint256)","024187a5":"window0TotalSupply()","0241fb82":"returnChildForParentNew(address)","02421ca7":"SaddleFS(uint256)","0242622b":"changeMultisigAddress(address)","0242a5fc":"testRecovery(bytes32,uint8,bytes32,bytes32)","0242ba2a":"FOToken()","0242c430":"CreateTokenToTeam(address,uint256)","0242deb8":"registerIntermediary(address)","0242f1ef":"TonCoin()","0242f351":"getVote()","0242fc62":"voteNo(string)","02431422":"addSuperPlayer(address,bytes32)","02433d0f":"num_holders()","02437982":"adjustRate(uint256,uint256,uint256)","0243aa1b":"getCurrentNbVote()","02443111":"oneTrancheAmount()","0244ba4a":"Hubble()","0244eb3f":"testFundsAreLockedDuringSale()","0245c5c8":"importSequence()","02460d1e":"_emitHolderRegistered(bytes32,uint256,uint256)","02474718":"paydayFrequencyInDays()","02474c59":"myPledgeTo(address)","0247e02a":"subFromAddressBalancesInfo(address,uint256)","024800ff":"presaleWeiSold()","024858b1":"createTrade(bytes32,uint256,uint256,address,address)","02491bd5":"CryptoLottoCoin()","0249e64a":"CodeMailStamp()","024a56a4":"testIsData(bytes)","024adb25":"LogStateSwitch(uint8)","024c4199":"addListener(address,address)","024c6def":"BONUS_ICO_WEEK_TWO()","024c764f":"setChallengeCooldownTime(uint256)","024cc06d":"updateRecipientInfo(bytes32,string,string,address)","024ddebe":"Error(bool)","024edd75":"buyHero(uint256)","024fcc6c":"enableService()","024fd650":"tokenData()","024fd912":"GoToken()","02500824":"buyDentacoinsAgainstEther()","025026d5":"updateEmployee(uint256,uint256)","02502787":"FDT(uint256,string,uint8,string)","0250bd2d":"unregisterName(string)","02521b16":"saveTxt(string)","0252607e":"bitcoinPublicKey(uint256)","0252b995":"gameStartTime()","025313a2":"proxyOwner()","0253a95a":"getMaxMerge()","0253e935":"setOrderListLengthFactor(uint256)","0253fbd1":"momFab()","025404d4":"amountRaisedUSD()","02543238":"setDiscountValueOff()","02548866":"TOTAL_CAP()","0254aa41":"CommonEth()","0254e687":"GodlyCoin()","0254ef0f":"enterMedium()","02550e4d":"profit(address)","02556de3":"updateMajorTree(bytes32)","02565633":"buriedSupply()","0256c7f5":"Afin()","0256e827":"enablePurchasing(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","02571be3":"owner(bytes32)","0257210f":"ForgeCDN()","02573fc2":"resetStellarInvestor()","0257a0c0":"onLotteryCompleted(uint32)","0257c48c":"meta(bytes32,bytes32)","02581ab3":"offerIndexedPieceForSaleByAddress(address,uint256,uint256)","02581cde":"refundExpiredBet(bytes32)","025830ac":"changedBrokerDealer(uint256,address)","025845ae":"thinkTankFundAddress()","02587586":"companyAddr()","025932fd":"bitikzikToken()","0259371c":"TTTTokenSell()","02593c2b":"_Split()","025a6f02":"OsmiumCrowdsale()","025abd58":"getTokenBalance(string)","025b22bc":"updateImplementation(address)","025b97bd":"getProviderAdmin(uint256)","025bbbe5":"newSale(bytes16,uint256,uint256)","025cce45":"AMULETS()","025cf89f":"setMigrationManager(address)","025dd017":"OnReceive(uint64)","025e029b":"buyStar(uint256,uint8,uint256)","025e56d3":"NeuroDAO()","025e7c27":"owners(uint256)","025e8095":"transferCell(address,uint256)","025ec81a":"getBytes32Value(bytes32)","025f9bc1":"updateTokenInformation(string,string)","025ff12f":"airdrop(address,address[],uint256[])","026164ad":"sunset()","026189ec":"BitRecord()","02618eb2":"AltCurrency(uint256,string,string)","0261a403":"issueDID(address,uint256)","0261edec":"getContractByID(string)","0262dc13":"claimOne(address)","0263379b":"bringBackTokens()","026345b6":"ledgerContract()","0264ba24":"sendValueToJackpot()","0265190c":"b66ReserveTokens()","026654bf":"PoolManager(address)","02667e9b":"killPay()","0266ba02":"list(address[])","0266f044":"reservePool()","02682ab3":"setNewWallets(address,address,address)","026858ea":"getRateModifierInPermilles()","0268ec43":"MyEtherTeller()","02690ef0":"setICOElePrice(uint256)","026993e0":"Midas(address,address)","026a308a":"_checkWhitelistContract(address)","026a9cdd":"getPotato(uint256)","026b1d5f":"getPool()","026c0d8f":"RHP()","026d0e1c":"grantUserLicense(address,string)","026d19d5":"WeTestToken(address,string,string,uint256,uint256)","026d6a67":"setStartStopBlocks(uint256,uint256)","026e402b":"delegate(address,uint256)","026eca12":"createTapPoll(uint8)","026f9d56":"SOT()","026fcf83":"setSaleFinish()","026ff05e":"deleteUser()","02704a4d":"COIN_SUPPLY_ICO_PHASE_3()","027116f7":"approveNewOwnersCount()","027391bf":"sendMoneyBeforeEnd(uint256)","02742425":"preFundingtokens()","027471b0":"roundActive()","0274d5ff":"soulIsOwnedBy(address)","0274ea81":"jadd(uint256,uint256,uint256,uint256,uint256,uint256)","0276650b":"individualCap()","027681ab":"setJackPotInfo(uint256,uint256)","02780677":"LN2()","0278199e":"StandardToken(uint256)","0278bde1":"ask(address,uint256,uint256,uint256)","0278fa20":"TeambrellaWallet()","027903ef":"setReservedTokens(uint256)","02795b3a":"tokenMarket(address)","027a4425":"EthereumDiamond()","027a5e3f":"getLastVersion(bytes)","027a7ccc":"calculateFirstCut(uint256)","027aa9f5":"getUnits()","027b1fb3":"SimpleStorage()","027bb838":"FLTToken()","027bd9a8":"changeColorGreen()","027bfab4":"discountedIcoTokensSold()","027c3e08":"ControllerChanged(address)","027cb7c6":"clearing()","027e7a0f":"getTotalGamePot()","027ec848":"setDurationOfLock(uint256)","027efe2b":"makeOperation(uint32,string)","0280052d":"setKing()","028118a1":"PREBUY_PORTION_MAX()","02814b86":"maxETH()","0281b752":"admin_set_ExchangeRateInWei(uint256)","02825adc":"gvOptionToken30()","02836f24":"upgrading()","0283f4b4":"addPropertyForUser(bytes32,address)","02846858":"removeBurner(address)","0285d554":"transferWithEvent(address,address,uint256)","028780e4":"ownerWithdrawZth(address)","02879f9c":"addProduct(string,uint256,string,string,string)","02884909":"authorizedLogicContractAddress()","02889f26":"getCustodianChangeReq(bytes32)","0288a39c":"withdrawDelay()","0288ab5d":"TCC()","0288c0a0":"TransferDomain(string,address)","0289e966":"newVersionReleased()","028a582e":"findEndpointByAddress(address)","028a95a0":"lockRemainingTokens()","028ab3b1":"__get(address,uint256)","028ae3b7":"setAffiliateList(address)","028af743":"getServerCurrentMatch(uint256)","028b7854":"throwsSaleWalletIncorrectBlock()","028e10ac":"BidaCoin(uint256)","028e3731":"getUsersByDocHash(bytes)","028e6c67":"intOrRevert(uint256,uint256)","028ebc44":"setRegistryContract(address)","028fb6b8":"deleteRef(bytes32)","029043a4":"removeBlacklistSpender(address)","02911cfe":"distribute(address,uint256,uint8,uint256)","02917f4a":"issuePatrons(address,uint256)","0291b9b1":"judgeIsReachDailyLimit(uint256,int256,uint256)","02927d20":"setupEventsHistory(address)","0292f88a":"setBaseDenominationAddress(address)","02931e59":"getUserPower(address)","02932f56":"totalCampaigns()","0293a772":"get_sale_owner(address,address)","0293fafc":"ADBToken()","02940dbb":"Decenturuon()","02942724":"preservedTokens()","02949bff":"CampaignToken()","0295d71b":"currentDepositLimit()","02965297":"update_height(uint256)","0296b3a8":"STARLIGHT()","02978be8":"gameHostAddress()","0297abe5":"getLimitMaxGame()","02981cfe":"transferedToPool()","02987db8":"priceInWeiPerSatoshi()","02989d9f":"SellOrder(uint256,uint256,address)","0298d557":"isValidSignatureAndData(address,address,bytes)","029a258a":"claimDonations(address[2],uint256[8],uint8,bytes32[2])","029a8bf7":"multiAsset()","029ad03e":"get_nb(address)","029bca78":"isPremium(uint256)","029c19aa":"getCreditBondAddress()","029d1ecd":"ownerApprove(address,uint256)","029d4b2d":"isTimestampInsideRange(uint256,uint256,uint256)","029da1c4":"walletFounder2()","029dc6d2":"piggyToWallet()","029deeb0":"updateUportInfoFromOracle(string,address,address)","029eabcb":"contributions()","029f1d0e":"userName(uint256)","02a10d87":"getPreSaleEndDate()","02a182d1":"setInvestmentCapIcoPhaseTwoPounds(uint32)","02a1a7a8":"isReachCapped()","02a251a3":"votingPeriod()","02a2680c":"getUserWalletByID(uint256)","02a2c88f":"kycLevelOf(address)","02a2cf02":"NOK_Omnidollar()","02a2e105":"RYANTOKEN()","02a2f06e":"GetMyBet()","02a3036d":"init1_block_height()","02a4e488":"decreaseAllowanceProxy(address,address,uint256)","02a4e849":"getMiniPoolEdit_9()","02a566bd":"Woyager()","02a59ea3":"isEntitledForCluster(address)","02a5c0be":"CryptoSagaArenaRecord(address,address,uint8,uint8)","02a63c28":"consumeMarketOrderAsk(uint256,address,address)","02a6f266":"Presale(address,address,address,address)","02a72a4c":"tokenGrantsCount(address)","02a86781":"authorAddress()","02a8a406":"setBurnPolicy(bool,bool)","02aa26f6":"buySeatForEvent(uint256)","02aa274b":"setForward(bytes4,address)","02aa6318":"getDistributions()","02aa9be2":"unvote(address,uint256)","02ab4781":"reservedCoins(address)","02abb4c5":"Miner()","02ac8168":"Launch()","02acbaa3":"CrowdsaleMinter()","02acc6b6":"GNTTokenERC20(uint256,string,string)","02acdb44":"setAnyoneCanCall(address,bytes4,bool)","02ae832f":"trashTokens(address,uint256)","02ae8cdc":"tokenProduct(uint256)","02aec20d":"PrintableToken(string,uint256,string,uint256,int256)","02af2095":"massTransfer(address[],uint256[])","02b04384":"AIRDROP_ADDRESS()","02b09ac5":"charityVault()","02b32af5":"greenToken()","02b33929":"SMTToken(uint256,uint256)","02b3b3da":"Divium()","02b4b52c":"isLogoInitied()","02b518fd":"callback(address,address,uint256,uint256,uint256)","02b5ecc8":"rateAngelsDayEnd()","02b68bbf":"getPlayersItemTickets(address)","02b6ef74":"CRofMakerByIndex(address,uint256)","02b6f286":"TokenContract(address,string,string,uint8)","02b70b41":"addConfirmation(bytes32,address)","02b7144f":"updateCheckpoint(address,address)","02b74a7e":"setupStates(uint256,uint256,uint256[])","02b857f3":"unlockMintDate1()","02b985d3":"arr(uint256,uint256,uint256,uint256)","02ba302b":"nextPrice1Of(uint256)","02ba6f8d":"getHistoryEntry(uint256,uint256)","02ba742b":"extendMembership(address,uint256)","02ba8742":"sendCoins(address,uint256)","02baaf40":"lastInitTimestamp()","02bb2929":"etherToDustPrice()","02bb5d6e":"setEOMarketToken(address)","02bb8465":"setContent(uint8,string,string)","02bc54bf":"companySite()","02be8e4e":"changeOwnerShip(address)","02beee07":"_getElement(uint8[],uint8)","02bf3165":"auctionUnpause()","02bf7fe7":"JumpCoin()","02bf9e7f":"verifySignature(address,bytes32,uint8,bytes32,bytes32)","02bfeeb8":"totalPicoUSD()","02c06bcd":"prevTokenAddress()","02c1d7cf":"iSportNews()","02c1ecbf":"returnStateChange()","02c28410":"getPublicAllocation()","02c29349":"fixWithdrawalAddress(address)","02c2a74d":"episodeManager()","02c3d7f6":"end_ICO()","02c4897b":"getAutorPicture(bytes32)","02c4960e":"InsufficientFee(address,uint256)","02c4980c":"BOC()","02c63852":"TokenVesting(address,address,uint256,uint256,uint256)","02c6d827":"getgamecardpos2(address,address)","02c6f427":"PRESALE_LEVEL_4()","02c71d92":"newClonedRepo()","02c76d45":"mintCoolDown()","02c7e7af":"sold()","02c85991":"distributeMinting(address[],uint256[])","02c90584":"userAddressExists(address)","02c95d2d":"setHaltIco(bool)","02c9972c":"TICK_TIME()","02c9e537":"cresusAddress()","02ca5994":"registerToken(address,uint256)","02ccee02":"getNoteLine(uint256)","02cd0f96":"Deadline(uint256)","02cdc1ee":"setSendGodz(uint256)","02ce5813":"whitelistActive()","02ce5fc4":"generateMintEvents(address,uint256)","02ce728f":"updateExchangeRate()","02ce8ac9":"withdrawSale(uint256)","02d0181c":"HamidToken()","02d05531":"getUriCount()","02d05d3f":"creator()","02d06d05":"bytesToUint(bytes)","02d19fe5":"testApproveWillNotModifyAllowance()","02d1c1e6":"sendOwnerBalance(address,address,uint256)","02d1d5fe":"getDesign()","02d23cef":"sendWithFreeze(address,uint256,uint256)","02d2f349":"lastPeriodChange()","02d3b339":"drawColors(uint256[],uint256[],address)","02d3bd16":"circulatingSupply_()","02d3fdc9":"burnMin()","02d44e57":"_getBetTimestamp(bytes32)","02d49d0b":"_createHiveInternal(address)","02d52fa4":"createProposal(uint256,string)","02d596d8":"getUserFromAddr(address)","02d66fc2":"hasSchema(bytes32)","02d6e7f4":"tokenXchangeRate()","02d6f730":"getFreezing(address,uint256)","02d77954":"getVoteOf(uint256)","02d7ccef":"UP_winRate()","02d800ec":"deactivateKey(string)","02d8146e":"tokensWallet()","02d947ef":"vote(uint256,address)","02d99637":"BlockClaimedEvent(address,address,uint256,uint256)","02da6d06":"lastDao()","02db2d8a":"myRefund(address)","02dbf3c8":"CGE()","02dc2e1d":"queuePayment(bytes)","02dcfc8e":"setAssetFees(address,uint256,uint256)","02dd6731":"disableApiAccess(bool)","02dd92c4":"crowdsaleOn()","02de2cf3":"isLatestPreReleaseTree(bytes32,bytes32)","02df0b61":"deprecateById(bytes32)","02df45a8":"closeActive(uint256)","02e0a2ff":"getAvailableBlance()","02e0b293":"LogVote(address,uint256,uint256,uint256,uint256)","02e0c14a":"get(bytes12)","02e0d5a5":"AquaToken()","02e1033a":"monsterFleeTime()","02e132f6":"recalcInvestorsFee(address,uint256)","02e26c38":"richest()","02e2c3b7":"setRefererPercent(uint256)","02e2f0b6":"Erc20TokenMarket()","02e32144":"precentDecimal()","02e33d25":"HydroToken()","02e49bd9":"publicityAddress()","02e4ef66":"transferWhiteList(address)","02e4f63b":"doExchange(address,address,address,uint256)","02e635e6":"AID()","02e650b6":"DigitalMoney(uint256,string,string)","02e6a5dc":"LIC(uint256,string,string,uint8)","02e6a951":"PayableContract()","02e7491e":"ERC165ID()","02e8243e":"WeiCoin(address,uint256,uint256,uint256)","02e8d8c0":"scheduleTransaction(address,uint256,uint256)","02e97770":"InfinitiEstate()","02e98e0d":"diffMinutes(uint256,uint256)","02e99e16":"SplitAmount(address,address,uint256)","02e9ad65":"dispatchTo(address,uint256)","02e9d5e4":"acceptBid(uint256,uint256)","02eb4759":"RightAndRoles(address[])","02eba8a7":"auditContract(bytes32,bool)","02ec77d2":"joinPot(string)","02ed26d1":"startTokensSale(uint256,uint256,uint256)","02ed4d2d":"Purox(uint256,string,uint8,string)","02ee3275":"setSatoShi()","02ee3a52":"getAllProducts()","02ee50e0":"EliteToken()","02ee6a6b":"RegisterEvent(address,address)","02eef456":"UK()","02eef7c3":"MassivelyMultiplayerOnlineGame()","02ef3844":"getBountiesByCreator(address)","02ef43c3":"recordPurchase(address,uint256,uint256,string,uint256)","02ef521e":"registerEtherToken(address,bool)","02ef6c86":"calculateWithdraw(address)","02efbde5":"batchApproveWhitelist(address[])","02f050e4":"getWinningDetails(uint256)","02f08568":"lockController()","02f0c937":"buyItem(uint256,address,string,string)","02f1bfad":"setupTimeWindow(uint256)","02f1ed99":"putOnInitialSale(uint256)","02f2008d":"hintURL(bytes32,string)","02f20b9c":"getReport(string,uint256)","02f41314":"continueDistribution(uint256)","02f58015":"claim_bounty()","02f65096":"executeBid(uint256,uint256,uint256)","02f652a3":"setTransferAgent(address,bool)","02f83a56":"withdrawBonusToken()","02f9fd84":"HHGTTG()","02faabb3":"fetchOrderByIdWithMerchant(string,address)","02fac967":"ownerHasCard(address,address)","02faf1e2":"revokeAccessFromAddress(address,address)","02fb0c5e":"active()","02fbe0d5":"getKittyGetOrNot(address)","02fc1f85":"ownedNumbers(address)","02fc28c4":"TAP_POLL_DURATION()","02fc2a8a":"_buy(address,uint256)","02fc3127":"tokenSaleBalanceOf(address)","02fd9dd8":"market_DeclareForSaleToAddress(uint256,uint256,address)","02ff1fac":"changeDevevoperAccont(address)","02ffc0b0":"getApprovedAddressesOfList(address[])","03015ea3":"registerArbiter(uint256,uint256)","03021c87":"setMaxInterval(uint256)","0302263a":"getPendingManager()","0302c688":"prod()","03031960":"VestingVault(address,address,uint256)","030326ad":"pushAddr(address)","0303f694":"_getBonusPercent()","030481d5":"changePreseller(address)","03048590":"ratePresale()","03048a42":"createRequest(address,uint256,string,bytes,bytes)","0304de3b":"setFeeRecieverValue(uint256,address)","03058aad":"getLatestManifest(address)","0305bdfe":"Trongold()","03060b68":"getCoreSupply()","03062183":"getVisaLeft(address,uint256,uint256)","03068d57":"setMinimumTextDonation(uint256)","0307024f":"getCreatedStatus(uint256)","03070ae7":"MANHATTANPROXYRIVDR()","03071302":"getCCH_edit_23()","030745ec":"_calculatePaymentToOwner(uint256,bool)","03075018":"getCosts()","03075ded":"emitIssuanceRatioUpdated(uint256)","03078416":"requestOfAmount(address,uint256)","0307acae":"copy(uint256[],uint256)","0307f82a":"SoldToken(address,uint256,string)","03083883":"compose(uint256[],uint256)","03090958":"_transferAct(address,address,uint256)","03096e92":"proposedMilestones()","0309922f":"icoMaxAmount()","0309c7f8":"payLastSixteenWinner(uint256)","030a78aa":"MAX_SITE_TOKEN_ID()","030b1776":"ROPE()","030ba25d":"withdraw(uint256,bytes)","030bccb0":"QLANCE2()","030c3631":"dungeonPlayerCount(uint256)","030cc118":"depositSuccessful_()","030cecc7":"decode(string,bytes32)","030d406b":"entryPayout(uint256)","030d945c":"PMHToken(uint256,string,uint8,string)","030e30df":"super_transferFrom(address,address,uint256)","030e6b98":"testFinalizingBeforeCapChangesHardCap()","030e9080":"returnAllCoke()","030eafa0":"endThisContact()","030f5702":"returnAmount(uint256)","03101f46":"setDistributionMinimum(address,uint256)","03110f23":"returnKitty(uint256)","031122ef":"exhaustChibis(uint256,uint256)","031126e1":"_approx(uint256)","0311904c":"investAmount()","0311a8f0":"getUploadNames(uint256)","03122043":"setCompte_40(string)","031324fa":"_transferDivis(address,uint256)","03137d43":"test_insert_findWithHintPrevRemovedUpdateHead(int256)","03138b31":"phase_5_remaining_tokens()","0313953d":"indexBalance()","03141fcd":"listPairForReserve(address,address,address,bool)","03145ac2":"WildFurToken()","03149252":"everyoneDisabled()","0314bcfb":"FUND_SUPPLY()","031578af":"bytes32Storage(bytes32)","0315a513":"getDigitalAsset()","0316bdb0":"CofounditToken(address)","03178d05":"getB3()","0317c06e":"isAllowedBalance(address,uint256)","0317fb71":"asmApprove(address,address,uint256)","031a36f1":"EBBToken(address,uint256)","031a8161":"convertDecimalBack(uint256)","031adff0":"whitelistingAddress()","031b3677":"funders(address)","031bd4c4":"TOKEN_LIMIT()","031d5d01":"readMessage()","031d7421":"createRegistry(address,address)","031d973e":"closeMarket(bytes32)","031e1b65":"sendFounderAndTeamToken(address,uint256)","031ee1c8":"contribute(address,bytes32,bytes32,uint8,bytes32,bytes32)","031f22e7":"PRICE_STAGE_TWO()","031f273c":"getMixerCountByType(bytes32)","031f3b1a":"remainderAmount()","031f74d4":"bugDiscovered()","031f9d7b":"buyCore(address,uint256,uint256)","031fce17":"listBackers(uint256)","0320fead":"getUsedBySoftware(uint256)","03216695":"monthlyWithdrawLimitInWei()","0321f836":"namiMultiSigWallet()","03228d0f":"changeSendingBanPeriod(uint256)","0323aa55":"isValidDeletion(uint8,bytes32,bytes32,string,address,address)","0323cc33":"getKnowledgeSinceLastUse(address)","0323e576":"INITIAL_CARD_PRICE()","0323f64a":"removeSubDivision(uint256)","03240775":"getActiveEntryById(bytes32)","0324149a":"marketGolds()","0324d0d9":"calculatVotePrice()","03251a08":"setMin(uint256,uint256)","0325be06":"biathlon_transfer(address,address,uint256)","03261030":"Time_call()","03267c60":"CITY_START_PRICE()","0326be45":"Permission()","0326c06b":"utfStringLength(string)","0327194a":"startPublicsale(uint256,uint256,uint256)","03282473":"AcceptedApplication(address,uint256,string)","03291893":"issueAndActivateTokenBounty(address,uint256,string,uint256,address,bool,address,uint256,address)","03294614":"buyPickaxes(address)","032a0af7":"adIds()","032a8838":"withdrawOnBehalfOf(address)","032aabf0":"has_presale_time_ended()","032b0824":"updateLatestRevision(bytes32,bytes32)","032b13da":"fourthChainETC()","032b3400":"end_Time()","032b642d":"changeStartAndEndDate(uint256,uint256)","032bc66b":"Locked(uint256)","032be08b":"ticketCountMax()","032c05aa":"maximalParticipationAmount()","032cbc5f":"chainStartBlock()","032ccf33":"dayPot()","032cfa5c":"comelBabyCoin()","032dbae5":"setTiers(uint256,uint256)","032e0868":"getAllStaff()","032eb997":"CCXTokenERC20(uint256,string,string)","032fa796":"SVCoin()","032fc13b":"whatRound()","03314efa":"shares()","0332c6d4":"advertisementPayment()","03335d04":"ethGoal()","03339af5":"getRobotCountForUser(address)","0333d499":"getOwnedPoints(address)","0333d4a2":"ZilleriumPresaleToken()","03347d75":"findOrderIndexForAddress(uint256,address)","0334e725":"FALCON(uint256,uint256)","0335d533":"USER_GET_CROWDSALE_TOKEN()","0335e18f":"timeComplete()","03379e7f":"Initialize(string,string,uint256,uint256)","0337aa74":"systemAuctionDuration()","0337e379":"releaseTokenOwnership()","0338e3a5":"getArrIntField2()","03395ba5":"AUCTION_TOKENS()","033988a1":"Pollen()","0339f300":"revise(uint256,bytes32)","033a010b":"adminClaimAirdropMultiple2(address[],uint256)","033a38b0":"vehreqexist(uint256,address)","033a6cab":"admin_redeem(address)","033b8675":"ICOCREED()","033ba5d1":"getWillData()","033c44c3":"m_totalInvested()","033c6ee6":"countHolders()","033c8477":"mined()","033da70b":"setLogicContractAddress(address)","033df9cb":"stepOneStartTime()","033e7ef4":"registerVoteToken(bytes32,bytes32)","033e86d4":"PurchaseLocked()","033f7bc9":"testEmergencyStop()","0340249e":"HotelloadTokenERC20(uint256,string,string)","03402a9a":"ClubTransferContract()","03406e76":"getOptionSellOrders(uint256,uint256)","034187fd":"setEthToCents(uint256)","03427656":"getDefaultSoftResolutionBlocks()","0343d550":"getApprovalCount()","0343dfa0":"checkInvariants()","03440022":"setAsSeller(address,bool)","0344a36f":"draw(address,bytes32,uint256)","03460f6c":"airdropAllowed()","0346a4ad":"MAXIMAL_PARTICIPATION()","034741a8":"patformWithdraw(uint256)","03487513":"SIGToken(uint256)","034889ff":"unFollow(address)","0348946d":"mintedTokensCap()","034a7bce":"saosao4()","034ac7a3":"ROLE_GRADE_PROVIDER()","034cb28e":"addressOf(address,bytes)","034cd0b0":"buyTokensGrowthLife()","034cf8bc":"transferClub(address,uint256)","034d0834":"NoBsCrypto()","034d3b0d":"withdrawTipForDeveloper()","034de540":"_getEthAmount(uint256)","034f55d2":"calculateSum(uint256[])","034f9774":"setWhitelistWallet(address)","034fcf55":"updCouponConsumed(string,bool)","0350bcd9":"toSendLeft()","0350d085":"Sign(string,string)","035186d6":"increasePrizePool(bytes4)","0351947f":"claimFine()","0352017b":"getInvestmentRecord(uint256)","03520535":"getPI_edit_10()","03526ff0":"LFDNetwork()","035340f1":"Bitether()","03547e53":"ownedBalance(address)","0354d6c5":"accountslength()","035502f2":"addCategory(string,uint256)","03553835":"calculateTokenAmount(uint256,uint256)","0355b70a":"getSpaceshipTotalSold()","03562dbb":"changeEmissionContractAddress(address)","0356948e":"previousstagedata()","0356fe3a":"genesisBlockNumber()","0357088b":"trancheByIndex(address,uint256)","0357371d":"release(address,uint256)","03580712":"executeDueToInactivity(bool)","03582fc5":"setReferralBonusPercent(uint256)","0358395d":"DominionCoin()","0358c295":"testInitialBalanceWithNewRGXBonus()","0358d965":"addPayout(uint256)","035ac814":"lastTimeUpdate()","035cf142":"getMinimumDeposit()","035d0880":"_requireQuePayment(uint256)","035d37a8":"setMinContribAmount(uint256)","035e898a":"getStellarInvestor()","035e902d":"Set_EmergencyCode(uint256,uint256)","035f057d":"multiIncreaseApproval(address[],uint256[])","03602e9e":"getPrivAddress()","03606b30":"setStopFunding(bool)","03611ec7":"Finside()","03612cb5":"settle(bytes32[],uint256[],uint256[])","03627e70":"countStudent()","0362d1f6":"getGamblerBet(address,uint256)","03635100":"bizcoin()","0363b1e1":"trade(address,uint256,address,address,bool)","036478c1":"GlobalAmountCapSoft()","03652c4e":"ICOStartTime()","03656d07":"exchangeMethodIsAllowed(address,bytes4)","036648b7":"TokenRateUpdated(uint256)","036723a2":"Payout_intern(uint256)","0367f96d":"setHardCapValue(uint256)","036896ab":"getERC20TokenBalance(address,address)","036a131d":"setPI_edit_28(string)","036a66eb":"GetProductionPerSecond(address)","036ae645":"deleteMessage(uint16)","036b3a81":"partnerSupply()","036bd387":"totalEthInWeiForFirstIco()","036c36eb":"relaySellerRequestCancel(bytes16,address,address,uint256,uint16,uint128,uint8,bytes32,bytes32)","036dd086":"createGame(string,string,uint256,uint256,string,string,string,string,bool)","036e05b0":"CreatePHX(address,uint256)","036e4220":"changeMinAcceptQuorumPct(uint256)","036ee850":"votingDeadline()","036f60ec":"setSupplyAdjuster(address)","037051eb":"startRound(address)","0370c0d9":"_repayLoan(uint256,uint256)","0370ca41":"contractStage()","0370e65c":"preSaleEndedAt()","037101c4":"remainingPresaleCap()","03710668":"callContract(address,bytes)","03714af7":"burnApproveReset(address,address)","0373e649":"Withdrawal(address,address,uint256,uint256,uint256)","03741040":"get_presale_arbits_total()","0374fc6f":"getBestOffer(address,address)","03750d94":"serverSeed(address,bytes32)","03771327":"HardcapGoalReached(uint256,uint256,uint256,uint256)","03771f2f":"numOfInflatableTokens()","0377ebe8":"itemKindCount()","0378f83f":"destroyFashion(uint256,uint16)","03792d52":"lastSubTokenBuyerOf(uint256)","037933dd":"calcSTQAmount(uint256,uint256)","0379565f":"EIP165Implementer()","037a417c":"testFunc()","037a9d30":"isDataSource()","037ae882":"reLoadKey(uint256,uint256)","037b5fdc":"burn_balance(address)","037c68b2":"disagreeCount()","037c983a":"resumeCrowdSale()","037c99b0":"setBonus(uint256,uint256)","037ca5fc":"HubCrowdsale(uint256,address,address)","037ca6c4":"allAgingTimesAdded()","037cf465":"has_token_sale_time_ended()","037d4ff8":"get_pre_kyc_bonus_denominator()","037e2e91":"Insureum()","037ed3e2":"executeClaim(address,address,uint256)","037ef916":"CaterToken(address,address)","037f9cf0":"rewardDistributionStarted()","0380e2f3":"getHashOfTheSignedDocument()","0380fd03":"newExchange()","0381c260":"getYearlyUSDSalary(address,address)","0381cb3b":"setRowcol(uint256,uint256[2])","03824f76":"hasSoldOut()","03828729":"coordinatesToAddresses(uint32)","0382c254":"CheckHash(uint8,uint8,uint8,uint8,bytes32)","038339ab":"publicGetDeposit(uint256)","03833bae":"ValidContributionCheck(uint256,bool)","0383966b":"testCanFinalizeOnCap()","0383a6f0":"CheckLimTransferDay(address)","038424c3":"maxEarningsClaimsRounds()","038461ea":"getCertifiedStudentsCount()","0384899b":"OwnershipChanged(address,address)","03850848":"saleAuctionContract()","03856d15":"BalanceOnlyOwner()","0386a016":"closeProposal(uint256)","03872547":"setarg_1_input(uint256)","0387b0a2":"saleCounter()","03880bab":"deal(uint256[2],bytes32,bytes32,uint8)","03894922":"allocateTokens()","038b117b":"onlyAdminAndNotFinal()","038ccee8":"createNew(uint256,address,address,address,uint256,uint256,uint256,uint256)","038d71ee":"switchOff()","038e666f":"ethereumSaleRate()","038e7577":"setConfigUint(bytes32,uint256)","038f1845":"returnFunding()","038f21a6":"mapToRange(uint16)","038f5ed6":"drawDown(uint256)","038f8b64":"batchFillOrdersNoThrow(uint256[],bytes[])","038fa9cb":"getRomms()","03901913":"DLBToken(uint256,string,uint8,string)","03905f10":"scoreKnockouts(bytes32,bytes32,bytes12)","03906217":"SaddleNotForSale(uint256)","0390d190":"YouDealToken()","0392d2b4":"isManagerAllowed(address,string)","039314b1":"VotingEnded(address,bool)","03941cc5":"onwerName()","0394b9ce":"getWeaponList()","03959bb7":"setDataContract(address)","03960631":"raindropAddress()","03969758":"SetDurationOfLock(address)","0396dcb0":"purchaseByEMONT(uint16,uint256,address)","0396ece5":"SetupReserve(address)","0396f60a":"Invested(address,uint256,uint256,uint128)","03975d1f":"_validateBetOrRefund(uint8)","03976b0e":"setBattleProviderAddress(address,address)","03980ac4":"prophetize(string,string,string,bytes32,bytes)","03985426":"getMode(bytes32)","03991aea":"getReleasableFunds()","0399247a":"isVotingProxy(uint32,int256,address)","0399321e":"set(bytes)","03995b2d":"holdingsOf(address)","03999795":"rouletteOwner()","0399c357":"assignFreeReadings(address,uint8)","0399f881":"ART_DECIMALSFACTOR()","039a21b8":"tryExecute(address,bytes,uint256)","039af9eb":"tiers(uint256)","039b267d":"mdtFoundationAddress()","039b6c34":"assign(uint16,address,uint256)","039ba6be":"getPriceETH()","039bd55a":"constrctor()","039c84c1":"Add(uint32)","039c9a21":"refundTransactionInternal(uint256)","039c9d84":"getOpenNum(bytes32)","039d0bfa":"setSelfOn()","039d8751":"GOX()","039de01d":"unregisterScheme(address,address)","039e4e2a":"situation_challenge()","039e9e00":"acceptOwnershipAPI()","039efdeb":"startMilestone()","039f0156":"withdrawNxc(address,uint256)","039f0e9c":"_createPuppy(uint256,uint256,uint256,uint256,address,uint16,uint16,uint16,uint16)","039f6b28":"QuadrantAssets()","039fb41c":"get_description_hash()","03a0d68f":"expiry_date()","03a168e0":"jackpotLastWinner()","03a19a4f":"maxDropsPerTx()","03a1b87d":"manageInvestors(address,uint256)","03a1bdc3":"walletLockBoth(address,uint256)","03a250f9":"startWork(uint256)","03a3053b":"reserveFundManager()","03a47b58":"tyms(uint256)","03a503a4":"addHorseIndex(bytes32)","03a5c8e7":"tdeActive()","03a68d1d":"REBToken()","03a6981b":"StateUpdate(uint128,int128,int256,uint256,address,uint128)","03a76fed":"createToken(uint256[],address)","03a77c7a":"setRegulator(address,address,bool)","03a7b41f":"queryPlotExists(uint8,int256[],int256[])","03a7bdd7":"testCloseContract(bytes32,bytes32,uint256,uint256,uint64,uint64,bytes32,bytes32,bytes32,uint64)","03ab614d":"testTranferOneToken()","03ac58d7":"deathData_f8()","03ac7215":"setTotalSupply(uint256,bool)","03aca792":"pendingList(uint256)","03ad4be3":"updatetoken(uint256,string)","03adaee6":"applyForCertification(string,string,string,string,address,uint128)","03adcbd2":"walkBook(uint16)","03addce2":"payout(address[],uint256,address)","03ade532":"ctrtMarketPrice()","03ae0357":"DevidendsSnapshot(address,uint256)","03ae3ded":"aproveLoan(uint256)","03ae4c1f":"buyCoke()","03aeeba6":"_setClientSupply(address,uint256)","03af2cda":"createMultiple(uint256[],uint256[],uint256[],uint256[],uint8[],uint256[],address[])","03af73d3":"sendCollectedEther(address)","03b05c73":"maxIssuedTokensPerIco()","03b0a55c":"icoPvtEnded()","03b0e428":"_unpackRarityBonusValue(uint256)","03b103ea":"Vote(uint256,string,bytes32[])","03b25050":"CGCToken()","03b4e20c":"removeAddressFromAccountFor(address,address)","03b5af0f":"incomingRandomNumber(address,uint8)","03b5d494":"takeBet()","03b62e10":"lowestDiff()","03b6eb88":"note(address,uint256)","03b718ee":"getCityBuildings(uint256,bool)","03b753dd":"tokenPurchase(address,uint256)","03b8a24e":"ritual(uint256)","03b918dc":"allow_contributions()","03b98c0e":"pauseable()","03b9b4f9":"releaseTokens(bytes32,uint256)","03b9f0b2":"referrerBonusRate()","03ba27f6":"withdrawToWallet()","03ba3a88":"notifyContract(address,address,uint256,bytes)","03bad56e":"transferERC223(address,uint256,bytes)","03bb5d8a":"openGameResultAndNewGame(uint256,string,bytes32)","03bbba93":"incentiveDistributionStarted()","03bc1e19":"changeOneBet(uint256)","03bc6d0d":"amendFee(uint256)","03bcebea":"initOneChance(address)","03bcf11d":"abortSale()","03bcf514":"finishedCrowdsourcingDisputeBond()","03bda14e":"raiseMaxNumBets(uint256)","03bdecf5":"right69(uint256)","03bec188":"ChangeMinAmount(uint256,uint256)","03bf4fb7":"setTradersContract(address)","03bf8e70":"birthKitty()","03bfee9e":"_getBidId()","03c0bfb5":"getOwnUserState()","03c13148":"setReceiver1(address)","03c175ff":"isRestrictedAddress(address)","03c1d1df":"collectERC20(address,uint256)","03c2d5b6":"nextGameDeveloperMiningPower()","03c327f0":"changingMilestones()","03c401e3":"ADDR_TKG_VC()","03c41c04":"NewUpgradedAmount(uint256,uint256,address)","03c45305":"foundersSupply()","03c49580":"priceOfElement(uint256)","03c4d93a":"payWithGold(uint256)","03c5b1dc":"setPeriod(uint256,uint256)","03c5f26a":"PublicCheckGameStart()","03c5faf4":"s12(bytes1)","03c63869":"resumePlayer(address)","03c6c8f9":"TheExcelToken()","03c7bce1":"_addMinter(address)","03c7da39":"mintMarketingTokens()","03c83302":"distributeDividends()","03c94ca6":"tokenSoftCapReached()","03ca0a95":"performSetTokenControlInfo()","03ca0eed":"requireCustomerId()","03ca0f6c":"advisors(address)","03ca30e0":"changePreMine(address)","03ca558a":"read_i8()","03ca71d6":"setSecurityCheck(string)","03ca7bcc":"debug_last_approved()","03cba01e":"bonusEndTime250()","03cbcf57":"getBetAmountAtLayer(uint16)","03cc1e32":"addFundingRound(uint256,uint256,uint256,address[])","03cc5597":"wrestle()","03cc5e4d":"setTechnicalAdmin(address)","03cc7b85":"num_tokens_auctioned()","03cc8efb":"BethingWorldCup()","03cd3e47":"transferRecovery(address,address,uint256)","03cddb2c":"capitalAllocated()","03ce6c55":"roundUp(uint256,uint256)","03ce9c00":"AcceptsTokens(address)","03cf0678":"bigBang()","03cf4fd6":"expire(uint256,uint256,uint8,bytes32,bytes32,bytes32)","03cf678b":"vitToken()","03d08f3b":"nextLotteryTTWTokenId4()","03d0b7d2":"minimumFeePlusDividends()","03d0cecd":"getLx()","03d2107f":"getSender(bytes32)","03d22885":"scheduleCall(address,uint256,bytes4,uint256,uint256,uint8,uint256)","03d231b5":"signerFlag(address)","03d258c4":"set_prices(uint256)","03d285fd":"nameok(string)","03d2e963":"zint_now()","03d37d78":"showPoolNumber(address)","03d38296":"indexSuperInvestor(uint256)","03d3a6b7":"shutForETH(uint256)","03d41eb6":"reserveSupply()","03d499ef":"totalEthereumICOReceived()","03d4e98a":"getProposalVote(uint256,uint256,uint256)","03d50703":"challengeExit(bytes32[],bytes32[],uint256,uint256)","03d51a0c":"transfer_ether_to_owner(uint256)","03d5aa0c":"PigChain()","03d5f483":"founderTokenVesting()","03d699da":"YggdrashCrowd(address,address,address,uint256,uint256,uint256,uint256)","03d6b6b4":"EpigenCareCrowdsale(uint256,uint256,uint256,address,address,address)","03d6d7b6":"getCallMaxCost(bytes32)","03d7244f":"dice_game(uint256)","03d756cb":"ethealToken()","03d75937":"setUIntValue(string,uint256)","03d76547":"addressFin()","03d83c4d":"stopTge()","03d9d253":"unlock(uint256,address,address,bytes)","03da04d7":"BRN()","03da8902":"transfearDBOwner(address)","03dc0532":"getLableRecords(bytes32)","03dc6340":"AdminTokenSent(address,uint256)","03dcead2":"directDebitOf(address,address)","03dcf6bc":"truToken()","03dd5a18":"testSimpleArray()","03dd88f8":"getAssTotal()","03ddc104":"ownerClaimOverride(uint256)","03ddcae9":"checkTradeSignature(bytes32,uint256[],bytes32[])","03dec463":"getRentOwed(address)","03df1550":"ECR20HoneycombToken()","03df6106":"setNewReleasePeriod(address,uint256,uint256,uint256)","03e07b2f":"getMinRefEthPurchase()","03e1b3c6":"sellAllAmountBuyEth(address,address,uint256,address,uint256)","03e20503":"localManualEntry(bytes32,bytes32,uint256,uint256,address)","03e28366":"playerNum()","03e2b9f5":"syncDate()","03e337d1":"SEPCToken()","03e39113":"BeggarToken()","03e3b1ed":"applicationApproved(address,address)","03e3f677":"setICOStart(uint256)","03e3fa51":"editScores(uint256[],uint256[])","03e4d9f5":"getDayIndex(uint256)","03e55f1c":"lockEscrow(bytes32,address,uint256)","03e5affd":"add(string,int256,int256)","03e6c117":"getIcoAddrListByIcoRuleId(uint256,uint256)","03e7b4e9":"getEmission(uint256)","03e83b6a":"MyToken(uint256,string,string)","03e864fa":"TestableMarketContractOraclize(string,address,address,uint256[5],string,string)","03e8837c":"getUserCount(address)","03e9287a":"Tacoin(uint256,string,string)","03e93b2e":"changeStarbitWallet(address)","03e9598c":"updateClientVersion(bytes32)","03e96fe3":"getAllTickets()","03e9e609":"getRecord(uint256)","03ec1bbe":"tokenIssuedTotal()","03ed9d21":"setMaxContribution(uint256)","03edae57":"withdrawFounderFunds(uint256)","03edf914":"placeBet(uint256,uint8)","03ee8f08":"getCoeff(uint16)","03eea024":"issueTreasury(address,address)","03eeb40e":"AngelsvsRedSox419()","03ef03b4":"buyBulkMidGradeCar(address,uint256[],address)","03ef2a2c":"tryExecuteProposal(uint256,bytes)","03efb5c4":"book(address,uint256)","03f0cc64":"affiliateCodes(address)","03f10bff":"IDMONEY()","03f11878":"casino(uint256,uint256)","03f14be9":"updateEmployeeWallet(address,address,address)","03f14e96":"currentAirdrop()","03f166de":"calculateTransferValue(uint256,uint256)","03f17336":"BOPs(uint256)","03f187ea":"registerFee()","03f21bda":"privateOfferingTokens()","03f3b07f":"setUserScore(address,uint32)","03f3cea1":"requiresHardCap()","03f3e275":"getRatioList()","03f3e7c8":"setICOWeek4Bonus(uint256)","03f4864d":"XXXXXXXX05()","03f499b8":"refundState()","03f6477d":"setBonusSetter(address,address)","03f67e1b":"changelp2(address)","03f73f08":"start_ICO2(uint256)","03f744b0":"JessieEducationToken()","03f7d4ff":"BitpaintingStorage(uint8)","03f8008c":"getUserDAOsCount(address)","03f979c8":"saleEndTokenCreationRate()","03f9b456":"LockupTokensWithdrawn()","03f9c793":"invest(address)","03fad66e":"settokenCap(uint256)","03fb3f63":"currentMigrationSource()","03fba444":"_receiveBuyNextRank(address)","03fce7ef":"approveEscrow(uint256)","03fd8c65":"withdrawBalanceHashing(address,address,uint256)","03ff20a1":"crowdfundEndTime()","03ff5e73":"stopTime()","03ff90f6":"minApproval()","03ffae3b":"FlightDelayDatabase(address)","040177b7":"previousDungeonId()","0401d897":"setVestingCliffDateTime(uint256)","04021ba8":"_increaseBalance(address,uint256)","04029f23":"_setBugFixVersion(string,uint32,bytes32,uint32)","040425d1":"protectedSupply()","040502e4":"EmmiumCoin()","04053d21":"checkCourse(uint256)","0405440c":"secureMode()","040622a9":"UNITPaymentGatewayList()","040677f1":"sentFirst()","0406870c":"SupplyManagementChainSolutions()","04072322":"GetEventData()","0407dc78":"medalBalanceOf(address)","04089c7d":"ALTnextCoin()","040a772e":"getUserDividends(address)","040c014b":"_changeName(string)","040c3a53":"maxRacers()","040cf020":"withdraw(bytes32,uint256)","040d54ce":"addFile(bytes32,string,uint256,string,string)","040d5e82":"partialFlip(bytes32)","040da8f4":"jackpotBalance()","040e33f0":"SHRToken()","040e55f5":"getTransferCount()","040ea2f4":"ownerSetPriviledgedAddress(address)","040f9a5e":"transferRemainingTokens(address)","040fa051":"isPendingRegistration(address)","04106c8b":"startGeneration()","0410ec85":"randomReward(uint256[])","0410fac7":"adminRemoveTrustedCurrencyContract(address)","04115187":"initTime()","0411bca8":"getChallengeAnswerResult(uint256)","041257ef":"setWhitelistControllerAddress(address)","04126ce5":"getHashSubmissionEnd()","04143865":"dec_multiple()","04148f7e":"createGame(uint256,uint256,string,address)","04150694":"airdropBSupply()","04153ac9":"inflateActiveSupply(uint256)","04155727":"dcntrpls(uint256,uint256,uint256,uint256,uint256,bool)","04157752":"withdrawRed_(uint256,uint256)","0415bd13":"create(uint256,uint256,int256,address)","04165443":"gatherAllOldBalanceOf(address[])","0416c10c":"_getBytes(address,bytes32)","04186c57":"getPermissionsProvider()","0418945a":"addStablecoin(address)","0418ac09":"unFreezeTransfer()","04194636":"bulkTokenSend(address[],uint256[])","04198675":"setHitPrice(uint256)","0419c814":"isExistedOwner(address)","0419eca5":"createChild(uint256)","041abd9f":"timestampEnd()","041ae880":"funder()","041b1406":"checkPoDs(address[])","041b8c3e":"group(address,uint256)","041c3ade":"punkIndexToAddress()","041d0c0b":"MyTokenLoad(uint256,string,uint8,string,address)","041d15c9":"getPurchaseTimestamp(uint32)","041d40c1":"buyOrders(bytes32)","041dad49":"incrementpostId()","041dd0f9":"ValueToken()","041dd3f6":"testControlCreateWithParentsParentNotInUse()","041e3929":"getInvitationCreatedOn(address,uint256)","041e6b8b":"rejectUpgrades()","041f173f":"blacklist(address[])","041fa8aa":"times9()","041fe13d":"onEtherandomSeed(bytes32,bytes32)","04213a59":"setServiceDuration(uint256)","0421a94c":"sendSpecialTasterPackage(address,uint256)","042228db":"adminUpdateArrayInvite(uint256,uint256,address,address)","0422ddf3":"isGamePaused()","04239743":"lastGrantedIndex()","0424b6fe":"ContentChanged(bytes32,bytes32)","0424d979":"removeDepositCreator(address)","0425b5e9":"initialLockAddress(address)","0425c357":"submitVote(uint256,bytes32,bytes)","0425c4bf":"updateProduct(address,string,string,uint256,string,bool)","0425ccba":"DoubleETH()","0425e6ff":"SEXNTestToken()","04267892":"koth()","04269bc2":"ICO_SUPPLY()","0426c697":"changePayoutAddress(address)","0426dcef":"unlockBalance(address,uint256)","04275375":"MCToken()","0428c6aa":"earlyBirds(uint256)","0428ca27":"WalletAddressUpdated(address)","04293236":"m_owner80()","0429b880":"confirmationPeriod()","0429b9ca":"totalEthAmount()","042abdf8":"PRE_ICO_MIN_CAP()","042ae62b":"killAborted()","042b5fed":"placeBet(bytes32)","042c71f5":"DevsmartCoinFour()","042cb150":"batchSend(uint256,address[])","042d65ab":"getTokenAwarded()","042e58c8":"receiveResults(string,uint256)","042e9a43":"propose(bytes32,string)","042f3b34":"DesafioStone()","04304b55":"getUSDEth()","04306d69":"MOOSToken()","0430e405":"gameStopped()","043106c0":"deleteAddressValue(bytes32)","043122bb":"minimumParticipation()","04318794":"giveTimeToDemoc(bytes32,uint256,bytes32)","0431dd86":"TokenNedCoin(uint256,string,uint8,string)","0432ff56":"START_WEEK_4()","043331ee":"addOnCount()","04336615":"hashLoop(uint256,bytes32)","04338def":"maxAmountPreICO()","04339140":"setCloneFeePercentage(uint256)","04339582":"buyAndTransfer(uint256,address,address,bytes,uint8)","04343722":"addUsers(address)","0434a44d":"codeSize()","0434e5a6":"changeWalletForETH(address)","0434fe0b":"heal()","043531b1":"setFeeDivisor(uint256)","0435a745":"stat()","04362c2d":"getEsgoTXCount()","043753ba":"makeDecision(uint256,bool)","0438ebce":"getPlayerBetForPlayRound(address,uint256)","043996c2":"setUseAmountBasedBonus(bool)","0439f7d4":"getProviderSupply(uint256,uint256,uint256)","043aea8b":"CrypthubtTokenTest()","043b743f":"investor_getShortInfo(address)","043bb5e7":"getIdentities(address[])","043c8816":"INM()","043cf01a":"addCourse(string,uint256,uint256,uint256,string)","043cf343":"CreditIDENTITY(address)","043d0258":"changePriceLimits(uint256,uint256)","043d5f1a":"ENCSToken(uint256,string,uint8,string)","043da739":"getNextBid()","043eabd0":"RUVI()","0440187e":"hostingProfitAddress()","04403b30":"TokenSaleSucceed()","0440c8e4":"_unpackRarityValue(uint256)","044166ec":"PollManagedFund(address,address,address,address,address,address,address,address,address[])","044215c6":"token(uint256)","044337ca":"setPortfolio(address)","04433bbc":"getContractAddress(string)","044431f0":"setRefundEnabled(bool)","0444c5db":"SSPRegistryReplaced(address,address)","0445154c":"PRIVATESALE_USD_PER_MSENC()","044553ae":"configureBoard(address)","04455e95":"testIsList(bytes)","04461f4d":"XaurumAmountMelted()","0446e187":"buyDonation(address,uint8)","04474181":"JixoCoin(uint256,string,uint8,string)","0448e936":"setSite(string)","0448f79f":"addOptionChain(uint256,string,uint256,uint256,bytes,address,int256[])","0449aa40":"allowedToBeSold()","044a3038":"_changeResolverAllowances(string,address[],uint256[])","044a5f97":"mgmtDistribute()","044aed7c":"removeEmployee(address,uint256)","044b1b02":"addProblem(string,string,string,string,string)","044bf6c2":"getSpinnerData(address,uint256)","044c1d4d":"clientVersion()","044c9366":"privateCrowdsale(address,uint256)","044c96e4":"startGame(string,string)","044ce308":"refundBuyer(uint256,uint256)","044d0b06":"oraclize_query(string,string[2])","044ec699":"get_mail(uint256)","044f19bd":"InfiniteCorridor()","044f53ee":"OPC(string,string,address)","044f9ac8":"findThroneCalled(bytes)","04509918":"scheduleCall(address)","04514185":"ShortBlog(string)","04517225":"transferlock()","04520116":"centsPerEther()","045236b4":"getChainyData(string)","0452396c":"subtrInvestorBalance(address,uint256)","04532035":"settleEth(address,uint32,uint32)","0453a7d2":"computeBonus()","0453e3b1":"ITIX()","04549d6f":"presaleStarted()","04550e70":"MyTestToken2()","04554443":"lockDuration()","045585a4":"priceList(uint256)","0456860a":"acceptAtCommunity(address,uint256)","04571211":"setTokenReward(address,address,uint256)","04578f90":"JTC(uint256,string,string)","0457d76b":"Mesa(bytes32[],uint256,address)","045820b3":"Player()","045894ab":"getCreate()","0458996a":"CBTSToken()","04590a28":"EtherWithdrawn(uint256)","04599012":"balanceToken(address)","045a1796":"upgraderSet()","045aceb9":"useResolver(string)","045b1a0c":"isBreakingInvestorCap(address,uint256)","045b7dca":"mintSupply()","045b9c72":"START_TIME_PRESALE()","045c123a":"sponsorDAI(uint256,uint256)","045c6ce0":"voteForProposal(uint256)","045cc8ec":"_createZodiacWithTime(uint256,uint256,uint256,uint256,address,uint256,uint256,uint256)","045ccf7b":"byte64ToString(bytes1[64])","045d0389":"exchange(address,uint256)","045d2ad9":"upgrades()","045d4503":"TeamDeleted(uint256,uint256[])","045d465f":"setDataFactory(address)","045d46c2":"getBalances(address,address)","045e240f":"getAvailableTokensToWithdraw()","045e7dd7":"ContractEdited(string,address)","045ea88a":"fishySalmonToken()","045eb3b5":"expLimited(int128,int256,int256)","045ec563":"rndInc_()","045eea7d":"changeSelfName(string)","045f2593":"getRoot2(uint256)","045f7850":"airDrop(address,uint256)","045f8aad":"CONUNToken(uint256,string,uint8,string)","045f91ea":"getCurrentWallet()","045f955b":"buyPets(uint256,uint256)","045ff49a":"TIER2END()","0460b206":"Bxcoin()","046111e9":"addVip(bytes32,string)","04612d20":"minionAdd(address)","0461ac58":"dteamVaultAddr3()","04638e1a":"getBalanceOf(address,address,address)","0463cd73":"getSuperManager()","0463e4af":"releaseDividendsRights_(address,uint256)","0464f4b2":"InitialPriceEnable()","0464f8d0":"getCatsCount()","04651a1e":"firstRoundICOEnd()","0465832e":"modifyTransFee(uint256)","04658ad8":"NonIssueDeposits()","04659819":"capUsd()","0465a76d":"airdrop_cnt()","0466450e":"getUserByAddress(address,address)","046672cc":"batchTransfer(bytes32[],uint64)","0466c7ab":"executeComputation()","04670c9d":"nextStage(uint256,uint256)","04673368":"getCurrentPrice(uint256,uint256)","04676af4":"getCompte_7()","0467c3ff":"ThirdBonus()","04684ba3":"convertTokens(address,address,uint256,uint256)","0469756a":"MintAuthority(int256,address)","04699a72":"tipbot()","0469d644":"storeSecretVote(bytes32,uint256)","046ae3c2":"YourPyramid()","046c472f":"IOU()","046c82e4":"GraceFund()","046ce030":"isFactoryApproved(address)","046d30c7":"_random(uint256)","046d5c53":"setMintAmountApproval(address,address,uint256)","046dc166":"setSignerAddress(address)","046e85f9":"getLastPendingTransaction()","046f7da2":"resume()","04706fdf":"giveContributionsBackProfitBugged()","047087cc":"getTotalTokenSupply()","04719030":"manualSendTokens(address,uint256)","04729a8d":"tokensToEthereumAtSupply_(uint256,uint256)","0472a3bf":"doCrowdsaleMinting(address,uint256,uint256)","0472f549":"ran()","0472f72c":"_allocation(address,uint256)","0473e09c":"setConfigUint(bytes,uint256)","047408aa":"getAngelByIndex(address,uint256)","0474b484":"AllyICO()","0474d4a4":"isInitialAllocated()","04751333":"getRevForecast()","047564b7":"revokeValidator(address)","0477d647":"setSalary(uint256,uint256,uint256,uint256)","04780570":"ERC223Token_STB()","04787d83":"winBidDekla(address,address,uint256,uint256)","047956cf":"assign(address,uint256,bool)","0479fcd0":"setPopNameOriginal(uint256,string)","047a7ef1":"transferrable()","047a8dcb":"JetwingToken(address)","047ba641":"LowerStartingPrice(uint256)","047c738e":"wdivfloor(uint128,uint128)","047cfed9":"hasOwnership(uint256)","047d6649":"getUpdateByID(uint256)","047da93f":"testInvariantOverflow()","047de1f3":"drawerFee()","047e2b27":"setDataStorage(address)","047f9651":"make(uint256,uint256[4])","047f993d":"_vote(bytes32,uint8)","047fc9aa":"supply()","047fe8b3":"getUnsoldTokensBack()","047febbe":"admin_renewLockedAddress(address,address,uint256)","04803c2a":"addSales(uint16,uint128,uint16,uint16,uint64,uint64,uint16,uint8)","04804ee8":"sell(string,uint256,uint256)","0480c975":"setUnicornContract(address)","0480e58b":"maximumSupply()","04812aaf":"moveAccountData(address[],bytes32[],uint256[])","0481559b":"getLockDataFromMerkleTree(bytes,uint256)","04819507":"ICO_START4()","0481cb1b":"tokensAlreadyClaimed(bytes32,address)","048259e6":"UTCToken()","04830ddd":"getVotersAt(uint256,uint256,uint256)","0483a7f6":"lockedBalances(address)","0484c7cf":"AppSupply(address,uint256)","0485066e":"addReading(uint8,uint256,uint256)","04858fef":"StartQuiz(string,string)","048641be":"updateUserInvestBalance()","0486529b":"boardMemberApply(uint256)","04865327":"PlayerBet(address,uint256,uint256)","04869083":"auctionCreated(uint256,address,uint128,uint128,uint64)","0487b7e9":"Unity3d()","0487eed2":"restrictionsAllow(uint64,uint8)","0488781a":"teamOwnerOfPlayer(uint256)","0488dbfb":"getConfirmRefund(address,address,uint256)","048911a6":"createRandomZombie_ZOB_smallpack()","048926ac":"updateMaxPhase1(uint256)","04892c9f":"BASE_MIN_CONTRIBUTION()","048957d8":"sideBetPayToken(bytes32)","048986ae":"activityCore()","0489882e":"totalAdminsMapping()","0489fa70":"removePermittedContracts(address[])","048a5fed":"getSelfBalance()","048ae1bb":"addAssetPartOwner(bytes32,address)","048b0bcc":"addCustomerNReqACC(address,address,address)","048b3918":"messageNumber()","048bbc72":"CIR_SUPPLY()","048c35ca":"debug_is_recipient()","048ca698":"trackTotalVolume(address,uint256,uint256)","048cb8e0":"CarlosMatos()","048cc4a2":"BurnToken(address,address,uint256)","048cf8ed":"serviceDecreaseBalance(address,uint256)","048de56d":"setName(bytes2)","048dec38":"changeMarketingAddress(address)","048e2e94":"getAccountSize(address,uint256)","048e8c3a":"FidgetSpinner(uint256,uint256)","048e927b":"Checked(string,bool,uint256,bool,uint256)","048eb854":"_sortTopQuestions()","048f06f2":"setRoot(uint256,bytes32)","04903592":"withdrawAirdropTokens()","04904105":"setMiniPoolEdit_9(string)","0490540b":"Parameterizer(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","0490c71c":"unclaimedDividends(address)","0491eda0":"isCertainProduct(uint256,address,uint256,uint256,uint256,bool)","0492600e":"Issue(address,address,uint256,string)","04937cf9":"DoremiXToken()","0494630f":"oraclize_query(uint256,string,string[4],uint256)","04950f45":"KWHForGas()","049540c5":"structurePreIco(uint256)","0495cad9":"motionPasses(uint256)","0496e9ae":"triggerRequireError()","0496ee77":"checkPosition(address,uint256)","049766a8":"CleariumToken()","049878f3":"join(uint256)","04990162":"newChain(address[])","04994883":"ustAddress()","049948b0":"getMyGrapes()","0499ed13":"TOKEN_PRICE_WEI()","049a2dd1":"claimPartnerTokens()","049abf89":"queryUserContractCount(address)","049ae734":"scheduleCall(address,bytes4,uint256,uint256,uint8)","049b7852":"getElevations()","049c9bf2":"addExchangeAccount(address)","049cac16":"tokensUnvested()","049cc8b1":"soldForSecond()","049e63ee":"defaultClaimPercentage()","049eb289":"submitBuyOrder(bytes32,uint256,uint256)","049efcc7":"startReleasing()","049fb520":"countTickets()","04a077a4":"MyPasswordHint()","04a0c67e":"EagorNetwork()","04a1c63c":"token_a_amount()","04a1eb6b":"lastBlock_f16Hash_uint256()","04a23be0":"isAddressInWhiteList(string,address)","04a2b2c2":"testOwnerCanBreach()","04a2eaa5":"getTimeBonusPercent(uint256)","04a3693c":"applyFee(address,uint256,uint256)","04a373cc":"s20(bytes1)","04a3c21f":"maybeNewRound()","04a3ddd2":"_addToValueHeld(address,uint256)","04a48c27":"setActivityCoreAddress(address,address)","04a4a0d4":"getPriceMoney()","04a4a0ec":"TOTAL_XB_TOKEN_FOR_PRE_SALE()","04a4b776":"updateOpeningTime(uint256)","04a5288a":"stepcode()","04a6021d":"getByTypeNameVersion(string,string,string)","04a7137e":"controlledMint(address,uint256)","04a782ee":"addRecordByAdmin(bytes32,address,address,string,string)","04a79e9a":"spendDeposit(address,address,uint256)","04a7ca0e":"BonusUpdated(uint256)","04a7ff18":"totalNum()","04a82adf":"privateReservedUFT()","04a84938":"avaliableSupply()","04ac3b80":"addReceivedTrade(address,bytes32)","04ac75b0":"withdrawMulti(uint256,address[])","04aca4bc":"getClout(address)","04af7a20":"setDividendAndPayOut(uint32,uint32,uint32)","04afd2ce":"Multisended(uint256,address)","04b02ed6":"times_()","04b07a5e":"removeUpdater(address)","04b1142c":"getGuessCount(address)","04b1af75":"buy20()","04b1c6f0":"ICO_CAP()","04b2bf99":"stateControl()","04b370ab":"icoOver4()","04b43c5a":"withdrawZOB(uint256)","04b47e21":"isSignedWithEnc(uint16)","04b4e7e5":"awardsReservations()","04b5723d":"disableNewStakes()","04b5b5b6":"pointToToken(uint256,address,uint256)","04b64260":"tmpShuffleSeed(uint256,uint256)","04b65e74":"checkSTAGE()","04b69fa0":"jockeyNotForSale(uint256)","04b6ae61":"failedVotingCount()","04b6d39e":"_transferCroupier(address)","04b70576":"resetAgent(address)","04b7dcde":"hashData(string)","04b8ca98":"MAYTotalSupply()","04b92b7d":"overdraftAllocation()","04b94ec5":"MyToken30(uint256,string,string)","04bb1e3d":"updateActive(uint256,bool)","04bb754c":"TradeFinancing()","04bb89d5":"saveNick(string)","04bbc255":"isPricingStrategy()","04bd05d5":"getPeriodicalPnL()","04bd85f0":"getCapTab(uint256)","04be2f50":"isInvalid()","04bf1ee2":"JtoA(uint256[3])","04bf2a7f":"getScriptExecutor(bytes)","04c07569":"getBlock(uint256)","04c08fbd":"borrowFunds(uint256)","04c181f5":"beneficiars(address)","04c2a0ae":"DonateToLosers()","04c2a4a0":"computeKeyConstant(uint256)","04c313f4":"setAirdropGameInterface(address)","04c49f2c":"setFeePeriodDuration(uint256)","04c64e25":"revealMyVote(address,bytes32,bytes32,uint256,uint256)","04c6a9c5":"startIcoForOptionsHolders()","04c6ff7c":"devTeamTokenAddress()","04c76899":"sellerApprove(uint256,bytes)","04c76af0":"withdrawAdmin()","04c80c3c":"TOKEN_HODL_6M()","04c8384d":"trivialThreshold()","04c97ada":"setThirdRoundPricing(uint256)","04c98a2a":"validatePurchase()","04c98b2b":"startPresale()","04ca2775":"saleActive(uint256)","04caa6dd":"pauseReason()","04cb17ad":"returnPeriodExpired()","04cbc791":"getSellerOption()","04cc734b":"VoxelTransferred(address,uint8,uint8,uint8)","04ccf60e":"WrapperLockEth(string,string,uint256,address)","04cd1819":"disableVoting()","04cd5294":"getRefundAmount(uint256)","04ce1a61":"tokensWithdrawal(address,uint256)","04cf447d":"estimatesellvalue(uint256)","04d092c7":"claimPoints()","04d0a647":"getWallet(address)","04d0ac48":"tokensPending()","04d0c98a":"distribute10MTI(address[])","04d0fefe":"HoneyPot()","04d10f1c":"isValidChainyJson(string)","04d16482":"strConcat4(string,string,string,string)","04d1809c":"validateJoinSplit()","04d1b108":"_computeOwnerCut(uint128)","04d2cdbf":"setAcceptable(address)","04d2dec6":"getWalletAddress()","04d332a2":"setRefereeRewards(uint256[])","04d41474":"totalNormalContributorIdsAllocated()","04d58b3f":"MrwToken()","04d5c2c5":"toEGR(uint256)","04d6878f":"closeMicroWallet(uint256)","04d69a11":"SoldToken(address,uint256,bytes32)","04d6db05":"startSale(address,uint256,uint256,uint256,uint256)","04d742dc":"startSale(uint256,uint256,uint256)","04d84108":"SWAP()","04d88bce":"DDJETH()","04d91c6a":"testFail()","04dbd2d3":"LogInvestorProfit(address,uint256)","04dcad85":"testDifferentTokenPrice()","04dcc44a":"getTip(address,bytes32)","04dd2dea":"getCardDivShare(uint256)","04dd69fa":"getGenerationIdForCall(address)","04de40ea":"AnnoToken()","04de76cf":"VisualChain()","04deaeb5":"retrieveEth(uint256,address)","04dee65f":"contractBatchTransfer(address[],uint256[])","04def102":"getRemainReleaseTimeOfStage(address,uint256)","04df0a1d":"kudosByMember()","04df48ef":"ICO_LEVEL_4()","04dfe14e":"LandmarkCoinTestF()","04e15de5":"issues(uint256)","04e1805a":"setFreezeForAngel(uint256,address,uint256)","04e1826c":"getNumTransactions(address,address,uint256)","04e262b8":"wlStartBlock()","04e5a069":"registerUBetCheck(address,string,string,string,string,string,uint256,string,string,int256,uint256)","04e639b6":"fetchSlot(uint256,uint256)","04e6a9a1":"teamLock(address,uint256)","04e6adf8":"serHoldTime(address,address,uint256)","04e75fda":"Contribution(uint256,address)","04e78a30":"stakingMintAmount()","04e7dfcf":"getAssetRaised(address)","04e80e90":"getMasterCopy()","04e86e15":"calctime(uint256)","04e88f2d":"SayaToken(uint256)","04e98568":"withdrawBalanceCut(uint256)","04ea23bf":"FLUXBlockToken()","04ea4a57":"getDisputedPayoutDistributionHash()","04eab1e1":"gvpe_per_Keos()","04eb7d83":"setFirstPeriodEndDate(uint256)","04ebb1d9":"commonWithdraw(address,address,uint256,uint256)","04ebfc52":"userCount_()","04ec70a7":"determineAttackingOrDefendingOutcomeForAttributes(uint256,uint256,uint256,uint256,uint256)","04ecdaac":"rateSecondRound()","04ed02f6":"getCards(uint256)","04ed3f6a":"canStartSale2()","04ed6fbc":"minCDTToParticipate()","04edad4d":"YouLose(address,uint256)","04ee54d2":"revokeInitiator(address)","04ee9748":"storeWinnerShare()","04ef1353":"setTokenWithoutFee(address,bool)","04ef161b":"findSeed(address)","04efa227":"feeMakeExporter()","04f016c9":"transferMulti(address[],uint256)","04f03b6a":"getSomeVar()","04f041b5":"BtcEthRateChange(uint256)","04f05f91":"joltToken()","04f08b55":"getPolicy(uint8)","04f08eec":"PayEth(address,uint256)","04f0aa4e":"setServiceAgent(address)","04f13e40":"HashLand()","04f14090":"setBlacklist(address,bool,string)","04f17b11":"PriceChanged(uint256,address)","04f182f4":"icoPhase1End()","04f1e4e2":"tradeEtherDelta(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,bool)","04f24897":"PlanetagroExchange(address)","04f30b37":"getFutureTransIdxByAddress(address)","04f31a47":"confirmICOSpec()","04f342f6":"_addToAging(address,address,uint256,uint256)","04f3bcec":"resolver()","04f49a3a":"addressStorage(bytes32)","04f4d425":"toEthFunction()","04f4f7ab":"KYRO()","04f5222c":"setEthMinContribution(uint256)","04f53231":"SendEth()","04f65288":"AK47Coin()","04f65590":"preSaleWeiRaised()","04f68d49":"dataSourceGetFinals()","04f6aa30":"forwardETHtoSTCcontract(uint256)","04f74b59":"make(address[],uint256[],address,bool)","04f7a69d":"baseSummonPrice()","04f7e87c":"issueBounty(address,uint256)","04f80977":"setBattleContract(address,address)","04f88d71":"testFailHardLimit()","04f8aa9b":"IoTeXNetwork(uint256)","04f92405":"icoTokensLeft()","04f9d030":"test_interface_call()","04fad28d":"instanceId()","04fb82cc":"_deliverTokens(address,uint256,uint256,uint256,address)","04fb9e81":"closeRequested()","04fc11d5":"getActual()","04fc7c6d":"updateJoinedCrowdsalesMultiple(address[])","04fcadf1":"totalZTHWagered()","04fd295c":"WOLF2()","04fd9f78":"variationsOfOwner(address)","04fda0d8":"_trade(address,uint256,address,uint256,address,uint256,bytes32)","04fe947c":"mapToNewRange(uint256,uint256,uint256)","04ffb5b9":"registerToken(address,string,string,uint256)","05009f0a":"_createBid(address,uint256,address,bytes32,bytes32,uint256,uint256)","0500de3e":"interestResolution(uint8,uint8,uint8,bool)","0500fe3e":"getRegionCurrentPixelPrice(uint256)","05010105":"stakeRequired()","05015e79":"coldAdmin()","05018d91":"objectPants()","0501b79f":"getBlocktime()","0501d556":"setEmergency(bool)","05021ce9":"_trade(address,uint256,address,uint256,address,uint256)","050225ea":"giveaway(address,uint256)","05026317":"bitcoinSaleRate()","0502ca6b":"addTime(uint256)","050394ec":"minGasPriceForDrawing()","0503a3bb":"transferCharity(address)","050414bb":"addWhitelist(address[],uint256[])","0505140c":"totalSupplyWithDecimals()","05062247":"blocknumber()","050642f2":"exchangeTokenRate()","0506689a":"omegaPerEther()","050895ff":"backEndOperator()","0508ed90":"contribute(uint256,address,address,uint256)","050906ea":"_computeDamage(uint256,uint256,uint8)","050a2eb4":"diceRollAddress()","050a3250":"ArithLib()","050b8c66":"drainStrayTokens(address,uint256)","050c09ee":"founderWithdraw(uint256)","050c0fd6":"AmmbrToken()","050c8803":"getAmountFida(uint256)","050c931d":"paymentNumber()","050d6a15":"setSellPrice()","050df9f7":"PoolJoined(uint8,address,uint256,uint256)","050e25a0":"getHash(address,uint256,address,uint256,uint256,uint256)","050eb8c0":"BuyableCourt(address[],uint256[])","050f2f3e":"updateBools(bytes32[],bool[])","051064c6":"lighthouseFee()","051097ef":"addProposal(uint256,string)","0510e186":"getSncTokenAddress()","05111c1e":"getItemHolder(uint256)","05117619":"endVesting(address,address,address,address)","05117e0d":"validateTokenPurchase(address,int256[],int256[])","0511a431":"addOns(uint16)","05120ba6":"getTokensReleased()","05128716":"sale(string)","0513fc8b":"onBurn(uint256)","0514be3b":"ownedTemplates()","0514c275":"REALPlaceHolder(address,address,address)","05160860":"initialDayWithdrawCount(uint256)","0516af06":"getMonsterId(uint256)","0516c9f0":"frozenToken(address,uint256)","0517431e":"_teamSupply()","05175786":"announceWinnerManually(uint256)","051847d5":"childTokenByIndex(address,uint256,uint256)","0518afdc":"tokenToReward(uint256)","0519b873":"heroLottery()","0519bb83":"getVoteStatus(uint256)","0519ce79":"cfoAddress()","051a2664":"nameOf(uint256)","051a65dd":"deal_cancel_rate()","051a86cc":"mintApprove(uint256,int256)","051b044f":"_sell(uint256,address)","051b4e6c":"getSurveyInfo(bytes32)","051ba270":"getLogCancelArguments()","051c4ab6":"AddPlayer(uint8,address)","051cb630":"mintRandomCards(address,uint8,uint8)","051d9955":"confirmCustodianChangeProxy(bytes32)","051e5c45":"fiatPerEth()","051f4f6f":"transferAll()","05204231":"setPermission(address,address,uint8)","0520ed4a":"LYT(uint256,string,string)","05215b2f":"createStandardToken(uint256)","0522345a":"blackListFreezeTime()","052369a6":"submitLocation(uint256,uint8)","052534e7":"VerificationEvent(address,address,uint32)","0525ca77":"packParams(address,uint16,uint32)","0526179e":"getSoilTempControlLimits(bytes32)","05261aea":"finalize(uint256)","0527da64":"_openGamePlayNos(uint256[])","0528bb57":"isSubscriptionProduct(uint256)","05297781":"MintToken(uint256)","05298d37":"setWhiteListERC20(address)","0529be17":"circulateTokensForSale(uint256)","0529de04":"getCertificateExpires()","052a076f":"disablePresale(bool)","052a6849":"tokenStartPrice()","052a829c":"notSoldTokens()","052ab49c":"bytesToUint1(bytes)","052b2aa7":"getRegistrants()","052b81c7":"releaseBadges()","052ca699":"end_()","052d5707":"JYToken()","052d9e7e":"setWhitelistEnabled(bool)","052deec5":"investorsIter(uint256)","052f1a7a":"BGXToken()","052f7d11":"freezeAccountSend(address,bool)","053011b7":"authenticate(uint256,uint256,uint256)","0530abf0":"SwingTradeToken()","0533073c":"publishingOwner()","0533f57b":"RAISED_AMOUNT()","0534ab04":"setCapsMerkleRoot(bytes32)","0535020d":"payTokens(uint256)","05354bed":"etherPricesAreClose(uint256,uint256)","0535ec77":"initialDistributionDone()","05365bb0":"presale1()","0537665d":"setOutcome()","053902f6":"DTCC_ILOW_4()","0539272a":"startDay()","05398302":"destroyFrom(address)","05398d45":"setNewMiner(address)","0539c6d6":"num_squares()","0539eba9":"setAllowBuying(bool)","053abd3c":"createShareToken(uint8)","053ae2ca":"getHairColorValue(uint256)","053b8d2f":"deleteBackgroundImage(uint256)","053c351b":"oraclize_getPrice(string)","053c5d59":"e_Purchase(address,uint256)","053db3a9":"testSetPresaleTokens()","053e3169":"openSaleStartTime()","053e3253":"window3EndTime()","053e71a6":"getTotalNumberOfTokensForWinningOption(uint256)","053f14da":"lastPrice()","053f598a":"policyActiveNum()","053f7492":"minimumPriceInDailyAuction()","05401284":"debundle(uint256,address,address)","0541b0f8":"acceptPayment(bytes8)","0542b61b":"snt_claimed()","05433a26":"GetNumbersFromHash(bytes)","054348d6":"icoIsOver()","0544587f":"getCRYPTON_CUT()","054550f3":"assertEq8(bytes8,bytes8,bytes32)","05459f42":"WeeklyLotteryB(address)","0545a03b":"getGroupManagement(uint256)","0545f8ba":"changeExchangeAdmin(address)","05468c26":"addToBond(address,uint256)","0546a746":"restrictedTokensOf(address)","054726cb":"MNTOKEN()","0547bf4d":"DEFROST_MONTHLY_PERCENT_OWNER()","054909aa":"_addNewOwnerHoldingsToToken(address,uint256,uint256)","0549f150":"getAdministrator(address)","054a8c02":"getGirl(uint256)","054a9f11":"shopGloves()","054ba658":"delete_key(uint256,uint256)","054baaf2":"jan()","054be0b7":"setIssuanceRatio(uint256)","054c3c71":"getBetsOnTimestamp(uint256)","054d2a7e":"ChuCunLingAIGO(uint256,string,uint8,string)","054dcbb5":"AdvisorsTokensHolder(address,address,address)","054ded2b":"registrazione_candidato(string)","054e9507":"lastEventId()","054f268e":"getDCategoriesN(bytes32)","054f381b":"entrepreneur()","054f7d9c":"frozen()","054fce82":"ZipperWithdrawalRight(address)","05502a62":"BONUS_PRESALE()","0550f92f":"setMintAddress(int256,address)","05514a3e":"winBonusArray(uint256)","05529d94":"addMultipleParticipants(address[])","0552ce3e":"MonthToken()","05533ce1":"setSettings(address,uint256)","0553b805":"transferStorage(address)","0553e156":"finalize(address,uint256)","0553fd5b":"incSupply(uint256)","05540534":"setMultisigAddress(address)","0554bb48":"depositToLock(bytes32)","0556369e":"tokenToReserve()","055680f0":"purchaseCounter()","0556a66f":"deliverPresale(address,uint256)","0556fcd0":"setIcoFinish(uint256)","0557b2b0":"getApprovedTransfer(uint256)","0557df99":"FundingRulesSet(address,uint256,uint256,uint256,uint256)","0558171d":"maxCharId()","05597d88":"setOwnerCut(uint8)","0559c114":"removeSellOrder(uint256)","055a7341":"USEAddr()","055ad42e":"currentPhase()","055bb725":"_approveForSale(address,address,uint256)","055c7c96":"sliceBytes32Arr(bytes32[],bytes32,uint256,uint256)","055cbb3d":"CalculatePayout(bytes32,uint256,uint256,uint8)","055cdee1":"UpdateBetOnTeams(string,address,uint256)","055cff88":"AlarmxToken()","055e0e07":"Bela()","055e6d8b":"playGameCheckBid(uint256)","055ee253":"claim_reward()","0560ff44":"tokenMetadata(uint256,string)","056129a6":"TravelShare()","0561d562":"GoldiamToken()","0561eff6":"addStoneToBoard(uint256,uint8,uint8)","0561fc18":"ICOResumed(uint256,uint256,uint256,uint256)","056265d1":"storeData(bytes32[],bytes32[],bytes32[],bytes32[])","05626694":"LABEEToken(uint256,string,string)","05626f09":"timeFundingStart(uint256)","0562b9f7":"withdrawAmount(uint256)","0563324c":"executeOrder(bytes32,uint256,address)","0563451a":"icoEnd()","056362e8":"Crowdsale(uint256,uint256,uint256,uint256,uint256,uint256,address)","0563bbf6":"USDEtherPrice()","0563d55e":"MomaSpace()","0564a9a7":"getPollResults()","0564df4a":"_addBattleSequence(uint8,uint8,uint256)","0565ac43":"get_bonus(uint256)","0565c3f4":"pushAngelInvestmentData(address,address,uint256)","05664cea":"getRevisionTimestamp(bytes32,uint256)","0566bc12":"getDebrisPrice(bytes32,uint8)","0566c02a":"discountedSaleDuration()","0566c979":"iCashToken()","05674427":"numToString(uint256)","0567e83e":"kill(address,address)","05681031":"_sendBack()","056841b0":"InsertManifesto(string,string)","056a6421":"activateInvoiced(address)","056ab62a":"TestPool(address[3])","056b01ce":"mint(string,uint256)","056b2300":"TxUserWallet()","056b8197":"tokensInVault()","056ba056":"trade(address)","056bef9e":"addRequester(address,string)","056cf6bf":"Witness()","056e1059":"oraclize_query(uint256,string,string,uint256)","056e25e3":"returnIcoInvestments(uint256)","056e4d88":"TotalInvested()","056e81a6":"TokenBooksAirdrop()","056ed205":"EstateTransactions(string,string,string,address,int256)","057101b1":"Token(uint256,string,string,string,uint8)","0571d85f":"Forwarded(address,address,uint256)","05733989":"setAttribute(address,string,bytes,uint256)","057466ea":"buyToken(uint256,uint256)","05748be2":"dropAmount()","05763ff7":"pauseProposer()","0576cb6f":"verifyTargetWallet()","05777d9b":"ReturnToken(uint256)","0577f15c":"exchangesStatus()","0577f62f":"PRE_MAX_CAP()","05785e4c":"minimumBuy()","05788701":"Ribble()","0578e3e5":"isAtMost(uint256,uint256)","0578f356":"addManagedInvestmentProposal(uint32,bytes24,uint256,uint152)","0579d25d":"price(uint256[],uint256[])","057af1c4":"exist(string)","057b0416":"getAccDetails(address,address)","057b17c0":"timeMode()","057b7105":"calculateTokenAmountICO(uint256)","057bd53f":"sameVar()","057bfcc7":"amount2()","057c3cf5":"get_flag()","057d2c17":"Jack()","057dd42d":"purchaseCompanyCard(uint256)","058026d0":"checkTransferToICAPWithReference(bytes32,uint256,string)","058029a2":"icoCoinCap()","0580d5c7":"massBurnTokens(address[],uint256[])","0581345e":"issueClaimOwnership(address)","058206d9":"ICBCCoin()","05831c62":"donateFor(address)","05839b29":"sortTopTen()","0583ae52":"IRCToken()","05860b6f":"getBidIndex(address,bytes32)","058618f8":"setAuthorizeMintToken(uint256,int256)","05862435":"testFloatKeyValue()","05862611":"CrowdsaleLimit(uint256,uint256)","0587c1ba":"requestTokensFromOtherContract(address,address,address,uint256)","05888fcd":"tradeBalances(address,uint256,address,uint256,address,uint256)","058a628f":"setAuthorizer(address)","058aace1":"divest()","058ab8c9":"EthVerifyCore()","058af982":"nameIsAdvocate(address,address)","058b316c":"MANAGEMENT_KEY()","058c5103":"safeKill()","058d4dd0":"setAssetCooldown(uint256,uint256,uint64)","058d7433":"setAlliesContract(address)","058fa067":"setGasRefundForClaimLootWithConsolationPrize(uint256)","058fcde9":"testFailTransferFrom()","058fe7d9":"setMiningRate(address,uint256)","05910b91":"canBreed(uint40)","05915147":"authType()","05917369":"populateFromOldContract(uint256[])","05917e8d":"updateWhitelistAddresses(address[],uint8)","0591eb24":"promoCreated()","059275ab":"howManyTokensForEther(uint256)","0593d244":"setSaleContract(address)","05940728":"setGGCFee(uint8)","059417da":"_getAllParentIds(bytes32)","05943a15":"TEAM_SHARE()","0595ba4c":"getRoundMinAmountByBet(uint256)","0596334f":"rewardOne()","0596bd84":"_ChallengeFailed(uint256)","05976587":"test_expiry_increaseTimeBy30000()","05978450":"tokensReleasedAdvisorsTeam()","0597f3aa":"setGasRefundForClaimConsolationPrizeLoot(uint256)","05989e9d":"getAward(uint256)","05991e56":"Freewatch(uint256,string,uint8,string)","0599c284":"setAddress(string)","059a500c":"makeDeposit(uint256)","059a7d93":"cardEmojified(uint8)","059b8140":"upgradeAllowance(address,address,uint256)","059b8c77":"computeGainsRate(address)","059c00be":"STL(uint256,string,string)","059c5c4f":"policyFeeCollector()","059caad3":"creatorSupply()","059ce95d":"getVerifier(address)","059d45da":"removeAllPVPContenders()","059d92dc":"FeefersToken()","059eb515":"crowdsaleSold()","059efd9e":"_getShipColor(uint256)","059f8b16":"MULTIPLIER()","05a0c707":"setMintAgent(address,int256)","05a10028":"burn(uint256,uint256,uint256)","05a10e6d":"withdrawStakeTokens(uint256,address)","05a17fc6":"getAccountFeed(address,uint256,uint256,uint256)","05a308fa":"setReferralSignupTokens(uint256)","05a30a7a":"lastDepositDate()","05a3823b":"colorplat()","05a3e81a":"ratePerWeiSecondPhase()","05a44292":"Train(uint64,uint64,uint64)","05a506b0":"seEnableTransfer(bool)","05a5b8c6":"verifyTx(bytes,int256,int256[],int256,bytes,int256,int256[],int256)","05a5f830":"signedApproveAndCallHash(address,address,uint256,bytes,uint256,uint256)","05a873dc":"setMetadataSize(uint256)","05a8bf98":"SEXYKITTEN(uint256,string,string)","05a955af":"holderList(address)","05a95f04":"triggerPayout()","05a9cec2":"BetOnMe()","05a9f274":"totalLockedAmount()","05aaee1f":"unlockTimeStamp()","05ab421d":"sendTokens(address,uint256)","05ac7908":"TakeBackToken(uint256)","05ace573":"commitPhaseMinSeconds()","05ae6bcc":"userPublicFundingEthCountMap(address)","05aeb1e1":"RDMGameToken()","05aebead":"plantationSize()","05aecc80":"IAmVeryPoorToken()","05af0194":"getUserQuickPromoBonus(address)","05af2a81":"AddrDevelopFunds()","05af636b":"PunkTransfer(address,address,uint256)","05afff5b":"isHandleValid(bytes32)","05b0876d":"mgrAddress(uint256)","05b09e07":"getGameNumber(address,uint256)","05b1137b":"transferEther(address,uint256)","05b2b03a":"CertificationCentre(address)","05b34410":"creationDate()","05b35924":"totalLuxCents()","05b3dcb9":"roomFree()","05b4655a":"withdrawlWinnings()","05b496bb":"penalizeSolutionSubmitter(uint256,uint256)","05b4fe5f":"DepositFrozen(address,uint256)","05b542d9":"startPortalGun()","05b5711d":"level_3_amount()","05b575a5":"addWhitelister(address,address)","05b5b0dc":"submitSolution(uint8[])","05b5da23":"setPlayerTokenAddress(address)","05b64993":"setRequestCancellationMinimumTime(uint32)","05b67c8e":"BitGuildCrowdsale(uint256,uint256,address,address,address)","05b6d298":"assertEq0(string,string)","05b6d9e2":"distributeeBitcoinCashLarge(address[])","05b74d87":"inPrivatePreSalePeriod()","05b765ea":"getCertifierStatus(address)","05b8b29e":"profitOwner()","05b95822":"enableFundingWallets(address)","05b961e6":"PayWinner(address)","05b9cb3c":"totalDelegations()","05ba2ded":"voteForCashBackInPercentOfWeight(uint256)","05bbf5db":"startDocumentPoll(uint8,bytes32)","05bc99f8":"eth_sent(address)","05bccd09":"EGGCOIN()","05bdd57b":"AVMTestSuite()","05be478b":"calulateXticket(uint256,uint256,uint256)","05bf3bf0":"FtechizTestToken()","05bf4ecc":"batchPopularitySetting(uint256[],uint8[])","05bf779f":"setFoundation(address,address)","05bf9ece":"ICOSuspended()","05c06367":"RequestDetachment(uint256)","05c06db9":"majorPartnerAddress()","05c080be":"getTotalF6()","05c091f6":"_setCEO(address)","05c0dd91":"DEPOSIT_WINDOW()","05c0e497":"CDcurrency()","05c1f502":"post()","05c1f5ff":"getWhiteListStatus(address,address)","05c24481":"reserveSlash(bytes32)","05c270e2":"getPreviousBlockNumber(uint256,uint256)","05c31491":"test_oneTrueAssertNoMessage()","05c35eb6":"MICE(uint256,string,string)","05c3cb8d":"changegp(address)","05c4af9d":"getProto(uint16)","05c4b3dc":"Snydertoken()","05c54cd6":"MUNIRAHAMID()","05c7603d":"updateGenGuVault(uint256)","05c78929":"thirdWeekTokenPrice()","05c7cd4b":"confirmAndForwardWithRevert(address,uint256,bytes,bytes32,uint256,uint8,bytes32,bytes32)","05c7f589":"BACS()","05c85c42":"icoTimeStart()","05c8a4e2":"FeuzingToken()","05ca11cf":"TIM5(uint256,string,uint8,string)","05ca3557":"makeAdoptionOffer(bytes5,uint256)","05ca3841":"getOraclizeAddr()","05caca6c":"transferOwnershipServer(address)","05cb177a":"referralPay(uint256)","05cb71d4":"firstLoos()","05cc49dd":"distributeFee(uint256)","05cc72e3":"FilmscoinToken()","05ccfddd":"invalidateCombat(uint256)","05cd4794":"ExEquity()","05ce55fc":"channelDisputeResolver(uint64)","05cf5fcd":"mediationExpiry()","05d0f15b":"tokenPriceWei()","05d1127f":"changeChanceToWinModule(uint256)","05d1afec":"ausGroup()","05d1fc5d":"AIRDROP_MAX()","05d2035b":"mintingFinished()","05d258dd":"getMixingResult(uint256,uint256)","05d26bc6":"feedme(uint256)","05d2f3e2":"ErrorReport(address,uint256,uint256)","05d2f92a":"check_depth(address,uint256)","05d35816":"ConstitutionalDNA()","05d430db":"isNameValid(string)","05d4665f":"CROWDSALE_TOKENS()","05d473da":"assinaPresenca()","05d52eeb":"OMPxContract()","05d53802":"setPreSaleTokens(uint256)","05d55093":"oraclizeRequests(bytes32)","05d56a4e":"GetDChainNumRevokableHashes(bytes32)","05d57a59":"destroy_time()","05d6671c":"m_txs()","05d67464":"getTether(address,uint256)","05d74066":"SendPreReserved5()","05d7649f":"sendPortion(uint256,address)","05d78739":"cratesMigrated(address)","05d85eda":"count(address)","05d861fa":"CommunityAdVoucher()","05d866cd":"MemberChanged(address,address)","05d87fe2":"issueLetterOfCredit(uint256,uint256,uint256)","05d8bb97":"additionalDebt()","05d8c792":"_buyHicsTokens(address,uint256)","05d9a5fb":"sgn2sga(uint256,uint256)","05dabbcd":"lockedHasEnd()","05dad1c0":"test_userSetup()","05dae1f9":"ChargeStation(address,uint256)","05db3b82":"minwei()","05dc2708":"getCardNumber()","05dd071c":"_initialTransfers(address,address[],uint256[])","05dd23f7":"_stringGas(string)","05dd686f":"MIN_TOTAL_AMOUNT_TO_RECEIVE_ETH()","05dd7303":"EthereumStack()","05ddd49f":"Rotharium()","05de4f07":"getContentParent(uint256)","05de6288":"WithdrawalDone(address,uint256,uint256)","05df5e86":"XPAToken()","05df75db":"foobar()","05dfedac":"incrementDate()","05e1bd8c":"calculateInterest(uint256,uint256,uint256)","05e1c942":"reclaimTokens(address[])","05e206f0":"_registerBid(uint32,uint256)","05e24a93":"DISTRIBUTED_STATUS()","05e2b66a":"update_eth_ratio(uint256)","05e2eee0":"getArrayString(bytes32)","05e33b6e":"calculateMask(uint256,uint256)","05e33dd0":"allParticipants(uint256)","05e43263":"AzwieToken(address)","05e437b5":"setAllSteps(uint256,uint256,uint256)","05e4438a":"applyHotFix(address)","05e4545d":"nextActionIsAuthorised()","05e45546":"promoCreatedCount()","05e49d1d":"findWinner(uint256)","05e4a75c":"setupairdrop(address,address)","05e52ea0":"numberOfBasesSold(uint256)","05e53535":"operationTokenCreated()","05e57cb1":"CommitGoodToken()","05e633e2":"bonusEnds3()","05e6b4a4":"_emitHolderAddressRemoved(bytes32,address,uint256)","05e6ee11":"btcInvestment(address,uint256,uint256,string,uint256)","05e7781e":"changeReserveWallet(address)","05e87e2a":"tracetoMultiSigContract()","05e88b69":"production()","05e992ff":"BitcoinDeuce(string,string,uint8,uint256)","05eb1877":"projectBuget(address)","05ecc085":"snapshotAt(uint256)","05ed2cd3":"settleBBDBatch(address[],int256[],uint256)","05ed76c4":"resolveTime()","05ee27a6":"RavneetToken()","05ee72b5":"playerEndGameConflictImpl(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address)","05ee8d89":"investorMinimalBalance()","05eed946":"waracoin_per_ether()","05ef6848":"getTokenPods(address)","05f04e46":"writePublicRecord(bytes32,bytes32,string,uint8,bytes32,bytes32)","05f0f662":"ComputeMyEggs()","05f203d9":"revoke(address[])","05f29b89":"smartSpeedEarning()","05f36283":"Nitrogen()","05f3a852":"tkn()","05f43bba":"calculatePreTokenAmount(uint256)","05f53b29":"getSkillCount()","05f5c0f3":"FrozenFunds(address,uint256,uint256,uint256,uint256,uint256)","05f6237f":"canClaimRefund()","05f671d9":"UUSD()","05f6d329":"limitTokenForSale()","05f766a4":"Spc(uint256,string,string)","05f8002a":"setts01(uint256,address)","05f8b0cf":"setERCContract(address)","05f8b6f5":"_rewireIdentities(bytes32[],uint256,uint256,uint32)","05f8d55d":"addOwnerBalance()","05f908e6":"ICOPERIOD()","05f9bb6b":"transfersEnabledFlag()","05f9bf10":"AuctionCreated(uint256,address,uint256,uint256,uint256)","05fa0d5f":"_createTileAt(int32,int32)","05fc0586":"buyOptions(address,uint256,string)","05fcd234":"batchTransfer(address[],uint256,uint256[])","05fd22d0":"isPopulous(address)","05fe035f":"right100(uint256)","05feb950":"SOVREN()","05fec4be":"transferAdvisorToken(address,uint256)","05fefda7":"setPrices(uint256,uint256)","05ff088c":"getVendingInfo(uint256)","05ff711b":"blackList(uint32)","05ff792e":"cancelEscape(uint32,int256)","06005754":"nameRegAddress()","0600a865":"totalWithdrawable()","0600b814":"tokenBonusPct(uint256)","06011b14":"getUnitInfo(uint256,uint256,uint256)","06021e7e":"finalizeWork(address,string,string,string)","06024287":"attemptSomeMethod(address,uint256)","06026d87":"addAddressesToBonuslist(address[])","06027876":"sendBountyProgramBalance(address,uint256)","06040618":"currentPeriod()","0604c594":"getFreeBalances(address)","0605062f":"ownerOf()","0605d0cd":"emitSkillSet(uint256,uint256,uint256,bytes32)","0607dd94":"submitChoose(uint256)","06087e5b":"setColdWallet(address)","0608a48a":"reactivate_trading()","06090738":"setAdultTime(uint256)","06096931":"bountySupplied()","0609b433":"amendRetention(uint8)","060a02b7":"_hasIcoContributorType(address)","060a1051":"isExistInWhiteList(address)","060a56dc":"publisherCut()","060b2128":"getEndPointOfCampaign(bytes32)","060ba7e9":"hackAdept(address)","060c265f":"checkMaxCap(address,uint256)","060c7f33":"AVAILABLE_FOR_EARLY_INVESTORS()","060cf4e8":"_cap()","060d15f9":"getBonusFactor(uint256,uint256,uint256)","060d206e":"modifyWhitelist(address,bool)","060d4f0d":"canDownload(address,address,bytes32)","060dac88":"setTokenBalance(address,address,uint256)","060eb520":"snt()","060f3102":"UbexToken()","060f400b":"removeFromOwnership(address)","060f58c3":"getUserFee(address)","060f919b":"getHash(address,bytes32)","060f99c4":"ZillaGDToken()","060ffb99":"getPromiseCount(address,bool)","0610e037":"isEnabled(bytes32)","0611037c":"QiiToken()","06114d36":"testChangeBet()","0611ae4a":"allocateBid(bytes32,uint256)","06122ea8":"createTokensAnySale()","061268d7":"requestFoundationTransfer(address,bytes32)","061303a7":"refundIsAvailable()","061307b0":"fixPlayerPrename(uint256,string)","06130ca6":"getTopicAtIndex(uint256)","06132b38":"_create(address,uint16,uint16,uint8)","06137c9d":"add_luck(bytes32)","0613c265":"getLockBalance(address,uint8)","0613d936":"setAttackAddress(address,address)","0614117a":"recoverETH()","06155e95":"EmployeeSignedToESOP(address)","0615b520":"isBurner(address,address)","0615f7c3":"setGasForPBTT(uint256)","0616558c":"CampaignRules(address)","06169f63":"setAirdropAgent(address,bool)","0616ae05":"GenerateChips(address,uint256,uint256,uint32[])","0616cca0":"currentMood()","06171a5d":"OpsAddressUpdated(address)","061777ed":"incrementOpenInterestFromMarket(uint256)","06177ba8":"getdepositValue()","06184a25":"monthlySubscriptionCost()","0618c0b0":"INACTIVITY()","0619978d":"raiseApprovalEvent(address,address,uint256)","061a85c7":"forwardedOracle()","061ab664":"receiverTwo()","061b3245":"withdrawToExchange(address,uint256)","061c8800":"setInt(bytes32,bytes32,int256)","061c9040":"getLockInfo(address,address)","061d5102":"LivingstonCoin()","061d8169":"_addResolvers(string,address[],uint256[])","061e494f":"getBet(uint256)","061e5844":"withdrawFor(address,uint256,uint256,uint8,bytes32,bytes32)","061e7845":"buyTokens(string,string,address,uint256)","061ea8cc":"countByOwner(address)","061f7650":"supportsToken(address)","06201ad9":"getPLATPrice()","0620b2af":"PenaQuantumLeapToken()","0621472c":"approveAll(address)","0621afe4":"Virgingold()","0621b4f6":"sellAllAmount(address,uint256,address,uint256)","06222be3":"buyIcoTokens(uint256)","06223dac":"getDRCTotal(uint256)","06228e95":"freeTransferItem(uint64,address)","0622e74b":"crowdsaleTokenPriceNumerator()","06232bb0":"openAgreement(bytes,uint8,bytes32,bytes32)","06237111":"_getFilteredBoxes(bool)","06237526":"serviceCount()","06240d7d":"getWeiInCents(uint256)","0624ac2c":"getOutcomeTokens(bytes32,uint8)","0625d365":"getRightCoordinate(bytes1)","06262f1b":"trust(address,bool)","0627586a":"splitterNames(address)","06279d72":"priceUnits()","06287693":"directDebitAllowance(address)","062907d5":"initiateVotingContractUpdateVote(string,address)","062af37d":"isVersionContract(address,bytes32)","062b01ce":"isPricingSane()","062bbe59":"setEditedTrue(address)","062d0f09":"timestep()","062d4a34":"addressAdvisoryBountyTeam()","062db578":"createtoken(string,string,string,string,string,string,address)","062e43a1":"withdrawalToken(address)","062e53f3":"intFunc(int256,int256,int256)","062fe08e":"TOKENS_AVAILABLE()","06301ce8":"delUnpausedWallet(address)","06309aa0":"SistanToken()","0630da28":"TokenDeskProxy(address,uint256)","0631a171":"DocumentAdded(uint256,string,uint256,string)","0632a2f3":"getBlockAddress(uint256,uint256)","0632f718":"RedditRegistry(bytes32,uint8,uint16)","0633cd32":"requestAddressChange(address)","06347def":"getCooldownEndTimeFromIndex(uint16)","063575de":"withinPeriod()","0635fe90":"playerLockedFunds(address)","0636d7ac":"getOrdersForSeller(address)","063925c8":"scheduleCall(bytes,uint256,uint256)","06394c9b":"changeOperator(address)","063a7400":"registerUserOnToken(address,address,uint256,uint256,string)","063b1566":"partyTo(address)","063b3b29":"getPlayerStatus(uint256,uint256)","063bac1f":"giveRightToVoteByBatch(address[])","063bde24":"MAX_VALUE()","063c67c2":"getMatchInfo()","063ca521":"setPossibleMobs(uint32[])","063cea26":"prenupAgreement()","063cfaf0":"getVestingReleaseRate(address,uint256)","063d93d8":"register(address,string,string,string)","063db820":"payFee(uint256,uint256,address,bool)","063dda8b":"preSaleBonus(uint256)","063e1b78":"setTradingTime(uint256[])","063e7451":"initialSupplyAddress()","063ec2f0":"MEDIA_SUPPORT_PERCENT()","063f4540":"LogBet(address,uint256,uint256,uint256)","06407746":"Grant(address,bool)","0640f885":"PAYCLECOIN()","0641d812":"accruedDiv(address)","064292a8":"updateDates(uint256,uint256,uint256,uint256,uint256,uint256)","06437e4f":"_getCards(uint8,address)","0643be3e":"transferFrom(uint256,uint256)","06444e91":"register(address,uint32)","06459119":"testThrowsTransferNotTransferable()","0645b5d5":"getMyShareholderID()","06463556":"validateFunction(bytes4)","064701c6":"buyChest(uint16)","06474d12":"tokenIdOf(uint256)","06477332":"getMemberAtIndex(address,uint256)","0647b106":"Store(address,uint256,uint256,bytes32)","0647f697":"Uint256Oracle(uint256)","06490f47":"lockup()","064aa0e3":"ATMToken(uint256)","064af4ee":"setCoreContractAddress(address,address)","064c4ebc":"backDevvoteOwner()","064cc7a7":"delegatesByDelegator(address)","064cd77f":"changeFreezeDate(uint256)","064cfc16":"checkIsOpen()","064d4d7c":"_minAmount()","064da5e7":"getBAAU(bytes32,address,address)","064da642":"TransferSellAgentMulti(address[],uint256)","064dcb17":"sellTokens(uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","064ddd04":"getItemsForSale()","064f4fa7":"rateAge()","064f5dcd":"decentralizedEconomy()","064f67e7":"LockRemoved(address)","064fe208":"IxiniumFundingCoin()","06502ac0":"setMemberShip(address,uint256)","06504c31":"getNeedCloseBets()","0650b590":"bulkAdd(address[])","0651844e":"activateBalance(address)","06525841":"canCashBack()","0652d7f5":"fxFee()","065361a6":"buyBkgAtExchg(address,uint256,uint256,uint256)","0654cb16":"canInvest(address,uint256)","0654fbc4":"giveEther(address,uint256)","06552ff3":"init(address,address,address,address)","0655c58b":"getIcoTokensAmount(uint256,uint256)","06562575":"isTermOver()","0656dd02":"existingContract(address)","06575c89":"currentWeek()","0657a9c5":"registerTopPlayers(uint256,uint256[],uint256[])","0657f3a1":"finishIco(address,address)","0658a429":"BlockHashStorage()","0658b574":"storeImageString(string)","0659928c":"weiPerMinToken()","065b1061":"ln(uint256,uint256,uint8)","065b3133":"getDataColla_AA_02(string)","065c6b90":"setLevelRewards(uint256,uint256)","065de1f6":"minionRemove(address)","065de950":"dropNectar(address[])","065df077":"createBondFundToken(string,string,uint256,int256,uint256,uint256,address,string,uint256)","065e5360":"currentTick()","065ec2e6":"_restriction()","065ece90":"StageTwoDisable()","065f7a98":"totalNonSaleSupply()","065fcdff":"distributionThree(address)","065fe24f":"heldTimeline(address)","0660b8b2":"updateethFee(uint256)","0661b2f4":"setOtherPCK(address)","0661f204":"generateOtherNums(uint8[4])","066208de":"setInitialDuration(uint256)","06621ff6":"AZEEMCOIN(uint256,string,string)","0662572f":"activateSale(address)","06637876":"customers()","06637cd9":"getNewPeriod()","06638e92":"GetNumbersFromHash(bytes32)","066406ad":"LootEtherCom()","0665a06f":"createVesting(address,uint256,uint256,uint256)","0665c82b":"doPurchase(address)","06661abd":"count()","066636da":"getTotalEtherOfCurrentRound()","0666a6da":"setUnlceRateAndFees(uint256)","0666c071":"getEmployeeInfoByName(string)","06673ac7":"OmnesToken(address,address)","0668f649":"lambosTuneCount()","066aa53b":"updatCokeTotal(uint256,uint16)","066aff83":"calc1RealTokenRateFromRealTokens(int128)","066b0380":"assertEq30(bytes30,bytes30,bytes32)","066b3136":"paymentSuccessful(bytes32)","066bdc1b":"Legend_Royale(uint256,string,uint8,string)","066bf18c":"checkGoal(address)","066c94ba":"minTxSize()","066cd2c6":"createOfferAssets(uint256[],string,uint256,uint256)","066cf539":"vaultSecondaryUnlocked()","066d4701":"callFirstTarget()","066d76fe":"update_ratio(uint256,uint256)","066e4748":"calculateIdeaBuy(uint256,uint256)","066e4ce3":"CancelSell(address,uint256,uint256)","066f8a7d":"_disconnectModule()","066fd899":"availableReward(address)","067002ce":"removeSellingItem(uint256)","06713c3e":"proxy(address)","0672859b":"getMonsterCP(uint64)","0672cce3":"changeMinBet(uint8[157])","0673c8be":"isZero(address)","0674763c":"assert(bool)","06748fb1":"_random()","067497e2":"LogIcoTokenSupplyUpdated(uint256)","0674fde4":"aventus()","0675cb0b":"mintBool()","0675e962":"delegateIsCurrent()","0676aade":"GetOtherCustomerInfo(bytes18)","0676bde3":"BitGuildToken()","06771000":"ownerClawbackCredits()","06772bbd":"LogStateTransition(uint8,uint8)","06780cf5":"preIcoWallet()","06784b81":"MAXWIN_inTHOUSANDTHPERCENTS()","06787b98":"setHalfLifeRate(uint256)","0678c282":"extendRound(uint16,uint256)","067903f9":"withdraw4()","067906b1":"profiterole()","0679195a":"BerryLakeToken()","06791fc8":"enterPool(address,uint256)","067969a3":"sale2Accepting()","067a1e16":"getLockedValue(address)","067a2f3e":"Goochain(uint256,string,uint8,string)","067a6b05":"myRole()","067a8eb4":"registeredFundToRegistrants(address)","067ad784":"defaultBonussRate()","067ade9f":"claimSeedOwnership()","067c2d78":"thirdStartTime()","067cf182":"generateReport(int8[],uint32[])","067e06ee":"getServerStatus(string)","067ec02e":"Xkcd()","067eeeac":"tempTokensBalanceOf(address)","067fc6dd":"isTokenHolder(address,address)","06802613":"mintForCreatorsPool(uint256)","068045c7":"crowdsaleSetup(uint256,uint256)","0680d58a":"replaceService(address)","0681ae70":"FARTCOIN()","0681ca55":"milestoneCount()","068365ec":"buyWithCustomerId(uint256)","0683751e":"_removeByValue(address)","0683d56a":"minimumParticipationAmount()","0683dc58":"checkTransferIn(address,address,uint256)","0683dfdb":"getIdentifiersCount(address)","068417d9":"_registerInterface(bytes4)","06845b9f":"setTransferAbility(bool)","06845c4a":"LogFreezerRemoval(address,uint256)","0684c12b":"distributePresaleTokens(address,uint256)","0685224c":"GraspSmartBlockchainLock()","0685b410":"submitChooseByFactory(address,uint256)","0685b42c":"maascash()","06867f7d":"accountA()","0686dc8d":"setNEW(address,uint256,uint256,uint256,uint256)","06873418":"getcoolduwn(uint32)","0687bb4a":"purchaseCarCard(uint256)","06881fd1":"setBaseTokenGetRate(uint256)","068841c6":"getNeedLockFunds()","06884fc8":"airdrop2()","06886a53":"curOpenBNumber()","06886fd0":"logRoyalty(address,uint256)","0688b135":"recipient2()","0688ec24":"preicoAndAdvisorsAmounts(uint256)","06894f59":"TakeBack()","0689d0ff":"timeToChallenge()","068aafb8":"NepExToken()","068ae02b":"DATE_LIMIT()","068aebbc":"transfer(uint8[],uint8[],uint32[])","068b7310":"maxWei()","068bcd8d":"getPool(uint256)","068c017b":"calcUnlock(address,address)","068c8e61":"GetLandData()","068c966b":"DrawDetails(uint256)","068d5363":"withdraw_bix()","068ea2aa":"getLawyerAtIndex(uint256)","06900a40":"coAdmin()","06900c41":"ZeroPonzi()","06903e3e":"offeringProposals(address,uint256)","06903ecc":"GVE()","06907e17":"block(address)","06909f69":"cancel(string,uint256)","0691d0bf":"move(address,int64)","069215c9":"icoPhaseAmount4()","06921a9c":"PRESALES()","06934753":"getLanguageCountry()","0693b1ab":"minCount()","0693e603":"tokensAmountForPurchase()","0693ee6e":"firstStartTime()","069489a2":"init2()","0694d1be":"refundsOpen()","0694f9d6":"getQtyValidators()","06961560":"DAO(address,uint256,uint256,uint256,address)","0696647a":"test_insert_findWithHintNextAtPosition()","0696ba24":"revokeTickets(address,bool)","0696eab6":"RICHCrowdsale(address,address,uint256,uint256)","0698ac9b":"decreaseWeiRaised(uint256)","06991539":"_addTokenToOwnersList(address,uint256)","06993c97":"writerAccountSupplyRemaining()","069984c9":"SmartVows(string,address,address,string,address,address,string,string,string,string,string,string,string)","0699d07d":"updateMaxVal()","0699f10a":"LightAirdrop()","069a2e73":"registerModuleHandler(address)","069a6947":"biddedico()","069b559c":"migrateThroughOneFork()","069b9232":"ChenXiangToken(uint256,string,string)","069bd974":"validateTransfer(uint256)","069c97df":"angels_lock_days()","069cff34":"getMymorties()","069d6d1c":"closeOrder(uint256)","069d92e3":"showInvestEther(address,uint256)","069e5e53":"createEscrow(address,address,uint256,uint256,uint256,uint256)","069e9dba":"activateHandbreak()","069f5f72":"getMineableTokens()","069f74c7":"zcc()","069f7e85":"getGreeksBattlePoints()","06a0ab2b":"earningsPerShare()","06a24640":"setNextPot()","06a248c6":"depositTo()","06a33300":"BITOX(address,address,address,address,uint256,uint256,uint256)","06a36aee":"getUserRoles(address)","06a46703":"pubsaleDeadline()","06a493fa":"redeemCards(address,uint8)","06a49fce":"getCandidates()","06a5312b":"GetNumber()","06a585e6":"addInvestor(bytes32[3][],address,uint256,uint256)","06a5cb3a":"ecosystemAddress()","06a5f087":"signSeller(uint256)","06a628d4":"packSize()","06a6c28f":"commitDividend(address)","06a74947":"getBigWinPot()","06a81591":"_price_token_PRE()","06a85497":"getGameBonusAdded()","06a86539":"PBTTForGas()","06a8f8a2":"admin2()","06a95b53":"blablabla()","06a98f0a":"Mine_Block()","06a9ce79":"updateTimer(uint256,uint256)","06a9d1a9":"fundraisingDeadline()","06aa4083":"icoWeek1Bonus()","06aacb14":"Broker(bool,address,address)","06ab5923":"setSubnodeOwner(bytes32,bytes32,address)","06aba0e1":"getTotalWeight()","06ac1527":"capWalletAddress()","06ac2303":"EthereumButton()","06ac5879":"perReserveListedPairs(address,bytes32)","06adb71d":"increaseEmployeeExtraOptions(address,uint32)","06ae9483":"contractExists()","06aef16a":"getAuthorizationDate(address,address)","06aef6fb":"_withdrawToken(address,uint256)","06af0650":"initializeCurve(bytes32,bytes32,int256[])","06af3c75":"get_next_user_recast_from_item(bytes32,bytes32)","06af7414":"ContestAnnouncement(address)","06b05238":"safeWithdrawAmount()","06b091f9":"withdrawTokens(address,uint256)","06b0c76d":"setReferenceHash(bytes32,bytes32)","06b16a6c":"petPresell(uint16)","06b1b479":"indCommunity()","06b1efe5":"pushData(string)","06b28cec":"createDividendWithCheckpoint(uint256,uint256,address,uint256,uint256,int256)","06b2be05":"payStyle()","06b2e607":"GetGamestatus()","06b2fe22":"remainingTokensCount()","06b2ff47":"canReverse(address)","06b3bcd1":"getIpfsAddress(bytes32)","06b4c3e9":"ABCToken(string,string,uint256)","06b5338a":"JCoinz()","06b5760d":"getCreateShareTokenOutcomeValue()","06b5ad18":"recovery(string,address)","06b5b21e":"proposeTransfer(address)","06b5f02d":"calcWinnings(uint256,uint256)","06b6689b":"nextLotteryTTMTokenId5()","06b70f62":"MULTISIG_OWNER()","06b726d6":"smartBlockAddress(address)","06b77972":"getDescriptionInfo(bytes32)","06b82a7d":"deregisterSettlement(uint64)","06b89153":"BBB()","06b8ef4a":"rewardCheckpoint()","06b96bb4":"HoloSale(uint256,uint256,uint256,uint256,uint256,address)","06ba089a":"updateWebsite(address,address,string)","06ba2987":"addSellTokensRequest(address,string,string)","06bb18c0":"NewCratePreSale()","06bbbeff":"getUserBetOf(uint256,address,address)","06bc7ef3":"deleteInvestContract()","06bced7c":"set_presale_arbits_total(uint256)","06bcf02f":"updateStartTime(uint256)","06bd7aac":"setSubdivisionEnabled(bool)","06be8e04":"_payToInviter(address,uint256)","06bee2be":"CartycoinToken(uint256,string,string)","06c01551":"setAtomDna(uint256,uint64)","06c0e841":"withdrawPayout()","06c1032c":"Created(address,address,uint256,uint256,string)","06c15206":"GTL()","06c17cd7":"sliceLengthThrow()","06c18600":"takeOwnership(uint256,uint256)","06c18ae0":"CyberVeinToken(address,address,address,uint256)","06c1b0ba":"adPriceDay()","06c1df7b":"checkBetColumn(uint8)","06c265b6":"VICCOToken()","06c270be":"HmcDistributor()","06c2b53c":"becomeTo()","06c2f050":"setSendToSafeWalletPercentage(uint256)","06c30e84":"CoVEXTokenERC223()","06c3f137":"getLastNReadingsByDeviceId(uint8,uint8)","06c45c2a":"addToTradeList(uint256[],uint256[],uint256[],uint256[])","06c4811e":"TokenOWLProxy(address)","06c5b9d0":"XiaoMuBiaoERC20()","06c6c546":"massApprove(address[],uint256[])","06c7e165":"SevenStandardToken(uint256,string,uint8,string)","06c80102":"releaseAbstractToken_(address,uint256)","06c89667":"change(string,string,uint256,uint256,bool)","06c8ffed":"removeMultipleAddressesFromWhitelist(address[])","06c91ce3":"gx()","06ca218f":"doPayout(uint256)","06ca66f0":"Indosat(address)","06ca9bba":"Start_NewRound(uint256)","06caf3e6":"extraDiscount(uint256)","06cb0ea4":"updateAd(uint256)","06cb4bcd":"sendDeposit()","06cc01bc":"setBuyCommissionBps(uint256)","06cc2035":"revokeFeeExemption(address)","06cc2cd2":"recordSoldPrice(uint256)","06cc6373":"UpdateUserExtraData3(address,bytes32)","06ccd230":"addToNumber(uint256)","06cd4728":"RublixToken(uint256,address)","06cf2280":"transferWithFee(address,address,uint256,uint256,uint256,address)","06d00b10":"doesOwn(bytes32,address)","06d0407e":"getBeneficiaryFinance()","06d0db26":"roundMoneyUpToWholeFinneyET(uint256)","06d145c9":"getFundingInfoForUser(address)","06d1772d":"TWOIoT()","06d177c1":"divPoolAmt()","06d19d68":"getHashRevealEnd()","06d19eb3":"updateSeller(address,uint256,address,uint256)","06d37817":"loanToken()","06d44278":"_emitError(uint256)","06d586bb":"maxPerUser()","06d58f2a":"claimAndWithdraw(address,address,address,uint256,uint256)","06d65af3":"preSaleStartTime()","06d6b095":"ProposalAdded(uint256,address,uint256,bytes)","06d6e513":"checkIsKYC(address,address)","06d83296":"setData_17(string)","06d832a3":"ownerStartContract()","06d8619b":"transferKing(address)","06d91eea":"getExoplanet(uint256)","06d978b2":"setMinDepartureLim(uint256)","06da3309":"Deposited(uint256,uint256)","06dafac6":"setGreyToken(address)","06db33e4":"getVotesByCandidate(uint16)","06db8af7":"toAddrString(uint256)","06dc5d7f":"total_user_eth()","06dc8949":"calculateTokenSellPrice(uint256)","06dcd5d0":"CATTOKEN()","06dd497f":"cancel(address,uint256,address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","06df6cf0":"icoTokenExchangeRate()","06e102a0":"Presale(address,uint256,uint256,uint256,uint256,uint256,address,address)","06e16a36":"currentTierId()","06e1976c":"lockAccount()","06e232c4":"getLuckyblockIds()","06e25081":"getFreeToken(uint256,address,uint256,bytes32,bytes32,uint8)","06e2f5c1":"getRoundRate(uint256)","06e31056":"FANCrowdsale(uint256,uint256,address,address)","06e34150":"filters(uint256)","06e3a700":"setStartingSeeds(uint256)","06e3d732":"getMyChest()","06e42962":"_winnerJackpot(uint256)","06e430f6":"getAcceptedOracles()","06e48538":"defaultOperators()","06e4d36f":"getSoftCapReached()","06e53e5c":"getCountHolder()","06e53f47":"whichChainIsThis()","06e5fe85":"promoPurchase(uint32,uint8,uint8,uint8,string)","06e63ff8":"insert(string,string)","06e64907":"End()","06e795e8":"sendToAddress(address,uint256,uint256)","06e7b5ad":"isDisputing(address)","06e8337f":"getTotalTickets()","06e83e2f":"send(address,address,address,uint256)","06e840ea":"incrementStatistics(uint256,uint256)","06e91d2e":"ROY()","06e99fef":"sendEth()","06ea1c02":"setArbitrationFeePerJuror(uint256)","06ea29c2":"notEqual(int256[],int256[],string)","06eb0c2f":"TokenERC20_test(uint256,string,string)","06eb6ac1":"TokenPaymentGateway()","06eb815f":"handleETH(address)","06ebe49f":"incMemberGoodRep(address,uint256)","06ec16f8":"collect(address)","06ec6272":"payCustom(address,uint256)","06ec8ca6":"setCurrency(bytes32)","06ec967b":"deleteHpbNodeBatch(address[])","06ec9b9e":"ETH_PRICE_USD()","06eca511":"unhaltICO()","06eccccb":"_getPersonalAirdrop(address,address)","06ed6908":"buyTokensFromContract()","06ed69b9":"dDeprecateCategory(bytes32,uint256)","06edcd24":"hasOpenedOldCrates(address)","06ee3b69":"startCloseSalePhase()","06ee4917":"ChainMaster()","06eeaba0":"tokensForParnter()","06ef53e0":"latestWinner()","06ef856b":"ethRelief()","06efdecd":"OwnerTransfered(address,address)","06f1117d":"REFERRAL_BONUS_LEVEL2()","06f13056":"batchCount()","06f2bf62":"getExchange(address)","06f33115":"ClaimedAmount()","06f33ae2":"setUnownedLifeRate(uint256,uint8)","06f36cc9":"helpBlue()","06f3fc8a":"Mapoc(address)","06f470e9":"purchaseEstate(uint256)","06f4b12e":"changeTenant(address)","06f4f7de":"cancelDigitalArtSellingItem(uint256)","06f57add":"getWeekNumber()","06f639fe":"tier3(address)","06f660ef":"getInitialPrice()","06f68f12":"updateFirstBuyNum(bytes32,bytes32)","06f69881":"crossForkFundDeposit()","06f70295":"answer(uint256)","06f74bcf":"pauseInternal()","06f7ec97":"preICOBonus()","06f7f3fe":"getERC20Pawn(uint256)","06f84701":"canRedeemUTXO(bytes32,bytes20,uint8,uint256,bytes)","06f8ac40":"miniumInvestment()","06fa01b1":"MasonCoin()","06fa9df9":"hashPositions(uint32,int64[],bytes16)","06faebbe":"setPromoToPartner(string)","06fbf606":"setBurnFeeProp(uint256)","06fd06f8":"Exchanger()","06fd537b":"burnMoney()","06fdde03":"name()","06fdde58":"structure_variant_confirmation(int8)","06fde169":"REQUIRED_SHARES_TO_BE_BOARD_MEMBER()","06fdf75d":"getRedeemValue(uint256,address)","06fe0c29":"finishMilestone(string)","06fe1fd7":"getPackageName(bytes32)","06fe2212":"changeWaitTime(uint256)","06ff8908":"JoyToken()","06ffce53":"getTokenValue()","07002f02":"canIssue(uint256)","07006a55":"createPromoEggs()","07016f60":"getPOOL_edit_25()","0701da46":"limitAccount(address,uint256)","07023a38":"SellerHistory(address,uint256,uint256)","07031305":"setExpiration(uint256,uint256)","0703ffd1":"getLimitedReporterMarkets()","070485a9":"setGlobalPause(address)","070494ce":"blockFundsInEscrow(address,uint256,address)","070545d8":"Extend(bytes32)","07058808":"WinTokenLock()","07062cf2":"vision()","070669e6":"Requested(address,bytes32)","07073756":"_getTokenAmountForReferral(uint256,bool)","0707873c":"getInvestorInfo(address)","0707a106":"setRateEthToToken(uint256,uint256)","070816f1":"transferTeam1Tokens(address,uint256)","07085842":"smartcontracts(uint256)","0709544e":"getColor(bytes1,bytes1,bytes1)","0709d116":"setBlackListERC223(address)","0709df45":"vaultOf(address)","070a888f":"updateRewardDuration(uint256)","070ae23b":"createContractTokenWithPrice(string,uint256)","070b91d1":"voting(uint256,uint256,bool,uint256)","070bc415":"_computeUniqueness(uint256,uint256)","070bc508":"SupremIOTToken(address)","070be532":"BSE()","070c04b1":"setFromContractAddr(address)","070c3c23":"previousPayoutBlock()","070c87f9":"enableERC20()","070caf36":"exchangeTokenToEther(address,uint256)","070cf0cb":"isAgreementFullySigned(bytes32)","070f0e96":"countTokenHolders()","070f52f4":"canExchange()","070f5c09":"pausePresale()","070f723d":"_initializeGame()","070f7926":"_sendByDefaultTranches(address,address,address,uint256,bytes,bytes)","070fdb96":"getTakerBet(uint256,address,uint256,address)","07113965":"setPOOL_edit_3(string)","07120872":"createFightAuction(uint256,uint256,uint256,uint256)","07121a7a":"_requireBidderBalance(address,uint256)","07129e67":"SimpleEthBank()","07133caf":"HCToken()","07134b8b":"tokensNeededToGetPayment()","071357bd":"concludeCampaign(uint256)","07142877":"PRE_SALE_MAX_CAP()","07144458":"forwardTokens(address[])","07146786":"userRankAddress()","0714c622":"anotherFunction()","07153d3b":"setStates(bytes32[])","07156854":"flipSwitchTo(bool)","0715b09f":"nouvelleProduction(uint256)","0715ec34":"EnchantedShop(address,string,string,uint256,uint32,uint256)","071696e0":"transferFAIDS(address[],uint256[])","0717f39e":"_isValidPerkToAdd(uint8[32],uint8)","0719d365":"TOKENS_CAP_ICO()","071a56df":"addOracle(address,string)","071a7541":"BETA()","071b7e73":"FinishIco(address,address,address,address)","071bafb5":"sin()","071bd079":"demo(uint256)","071bdfbd":"PlayCoin()","071c0306":"AvailableTokenPool()","071c802b":"saiVox()","071da02f":"totalBelaStaked()","071e1ddc":"processFunding(address,address,uint256)","071e9a76":"distributeFunds(address,uint256)","071eeeb3":"setStarNameMessage(uint256,string,string)","071fac61":"getAllMediators()","071fe9b0":"isBurnInClose()","07202460":"getMonsterObj(uint64)","07209e2b":"AllowanceCrowdsale(address)","0720fc78":"removeOWhitelist(address)","07216bda":"getBurnRequestStringMap(uint256,string)","072180ff":"buyCoinsAtExchg(address,uint256,uint256)","0721c6dd":"setCompte_29(string)","07220134":"getBetInfoByReveal(uint256)","0722559c":"endRentFlatDaily()","072419f4":"changeTeamFee(uint256)","072448f7":"midTimeBonusValue()","07256175":"SecondLevelCost()","07259d06":"limitGasPrice()","0725e898":"getTokensForOwner(address)","07260a43":"serveTx(address,uint256,bytes,bool,bytes)","07266117":"networkDevelopmentSupply()","0727adb3":"last_balance()","0728d5e3":"getDiscountedItemsForSale(uint256,uint256)","072933e9":"OWN_kill()","07293b9d":"maxStage2AllocationPerInvestor()","07298203":"GetStats()","072b3f49":"createContract(address,address,address,uint256,uint256,uint256)","072b8277":"VAPEbits()","072b9c83":"AxieERC721BaseEnumerable()","072b9cf2":"schema(bytes32)","072bdbb8":"getScripts(uint256,uint16)","072de7f3":"calculateTokenPrice(uint256)","072e28c2":"setCRManager(address)","072e4308":"detailsOf(string,string)","072ea61c":"entryFee()","073005f1":"canTransferFrom(address,address)","07304435":"getKilled()","0730a322":"FoundationTransfer(address,uint256,uint256)","073171d8":"LeaseBill(uint256,uint256,string)","0732717d":"buy_the_tokens(bytes32)","07336e35":"producedCaps()","0733b888":"getRoundsActive(address)","07342e9f":"MultiSigWalletWithDailyLimit()","073455f1":"BitDex(address,address,address,uint256,uint256,uint256)","073767fc":"changeRateFee(uint256)","073933ed":"isNotZero(int256,string)","07394d39":"TeamTokenLock(address,address)","0739cd26":"tsSucceeded()","073b3bf9":"addressToNumVillages(address)","073b423d":"mintTransfer(address,uint256,uint256,uint256)","073cc554":"newProposal(address,string,address,uint256,address,uint256,bytes)","073d5fd8":"DeadlineExtended(uint256,uint256)","073d9a28":"transferactive()","073e1fa3":"givecandyfrom()","073ede30":"addTeam1(uint64,uint64,uint64,uint16)","073f323d":"MamatToken(uint256,string,uint8,string)","07414002":"secureApprove(address,uint256)","07415ce8":"addressOfTokenUsedAsReward4()","0741dc1e":"withdrawToken(bytes8,address,uint256)","07420a41":"sendReward(address,uint256)","07433ca4":"createVesting(address,uint256,uint256,uint256,uint256,bool)","0744c56b":"getFreeHipster()","0745c160":"startProICO()","07461622":"setMinMax(uint256,string)","0746bfd9":"buySharesForProposal(uint256)","07471b18":"distributeInvest(uint256,uint256,uint256)","0747ab2a":"Winner(uint256,address,uint256,uint256)","0747e4eb":"wpr()","07489aa6":"totalFinalStage()","07489f92":"getUnsoldTokensVal(uint256)","074a1594":"addToAging(address,address,uint256,uint256)","074a1600":"percent2()","074b1e61":"referralsVault_()","074b5270":"leadingBid()","074bc101":"btcToken()","074c0836":"POMoooon()","074c09eb":"catalog()","074c32c4":"updateRatePlan(uint256,uint256,string,bytes32)","074c71e5":"SaleWallet(address,address)","074c9647":"updateEtherAmount(uint256)","074cac6c":"getFreeMinerForMiniGame(address)","074e06ee":"_addLuck(address,uint256)","074e0f36":"setMaxRefundableGasPrice(uint256)","074e6254":"blendWithYourself()","074e8940":"companyWalletAddress()","074f0a22":"DataContacts(address,address)","074fcfd5":"_blockKey(bytes32,bytes32,uint256)","07501073":"migrationGetPlayer(bytes32,uint8)","0751076d":"setBetMax(uint256)","07518c8e":"blockhashOf(uint256)","0752881a":"buyTokens(address,uint256)","075360bb":"moveRoundsToHolder(address)","07537ad4":"closeCrowdSale()","07539074":"LogInvestorRefunded(address,uint256)","0753afdf":"registration(string,string,string)","0753c30c":"deprecate(address)","0754236d":"minContributeETH()","07542576":"BayernvsRealMadrid()","07546172":"minter()","07549893":"SimpleChildToken(address,string,string,uint256,uint8)","0754e744":"icofunding()","07550f0a":"areAllBalanceNull(bytes32)","07560f13":"transferWithMessage(address,uint256,bytes)","0756f58f":"getDifficultyAsFixedPointForGameId(uint256)","0757114e":"getenddate()","075840d0":"bounty_funds()","075865c4":"getMiningWarDealine()","07587fa3":"KissMe(uint256,string,string)","075881d6":"purchasePlayer(uint256)","0758a980":"specialBonus(address)","0759a351":"getCCH_edit_30()","075a3b57":"releasedTo(address,address)","075acda7":"gasAmt()","075b1a09":"schemaId()","075bbcc7":"RESERVED_TOKENS_TIQPIT_SOLUTIONS()","075bf772":"teamTotal()","075c04ab":"dividendRewards(address,address)","075c18f7":"contributeByBitcoin(uint256,uint256,address,uint256)","075d4782":"publish()","075d7bb3":"setDontIndex(bool)","075deb95":"buyGana(address)","075e0a7c":"window3TotalSupply()","075f8ec2":"CommunityCoin()","075fe66a":"EDD()","075fe877":"scheduleCall(address,bytes,uint256,uint256)","0761923c":"TargetWalletUpdated(address)","0761a004":"step(uint256,bytes)","0761c57a":"rocketBlocksUntilAllowedToLaunch()","07621038":"getSponsorshipUser(address,uint256)","07626adb":"getApiId(string)","0762c317":"createNewPop(uint256,string)","07630eac":"sendTokensToBatch(uint256[],address[])","07632269":"_deliverPack(address,uint8)","07634cbe":"getCoupon()","0763b78b":"getPVEDuration(uint256)","0763f34e":"referrerReward()","0764a7fa":"FinderHyper()","0764ebd9":"updateExcludedAddress(address,bool)","0764f5e0":"serviceDeployCount(address)","076600ec":"ClaimDivs()","07660978":"PrepareForSale()","076736a2":"maxPurchaseSize()","07675951":"UpgradePurged(address)","0767d178":"weightOf(uint256)","076804b8":"checkAddressVerified()","0768e8fa":"payAffiliateToAddress(address)","07695379":"ControlStructure(uint256)","0769aefa":"createAnimecard(string,string,string,string,uint256)","076a1852":"zTransferLosingBets()","076a39a0":"HOUSEEDGE_inTHOUSANDTHPERCENTS()","076a6440":"setMain(address,address)","076ae31d":"BountyEscrow()","076b5fe1":"FangToken()","076c4870":"owner(address,address)","076c52b2":"betA()","076ccbe4":"testLedgerZeroCollateral()","076e18a0":"getCurrentTokenPriceWei()","076fdf3c":"getLockingTimestampTo()","076ffa3a":"___isActive()","0770a074":"adjustSupply(uint256,uint256,uint256)","077135a8":"totalNoOfTokenAlocated()","07715fd4":"BCOToken(address,string,string,uint256,uint256)","07716dd2":"hasEmployee(address)","07718a3b":"BankOwner_WithdrawDonations()","07730eb9":"BurnAllTokens()","077340c5":"transferAndFrozen(address,uint256,bytes,uint256,uint256)","0773aa85":"changeFoundersWallet(address)","0773e6ba":"addPermissions(address,address[])","0774774f":"lineageToken()","07751070":"getProperty()","07762e74":"viewMult()","0776e4fa":"set_balance(address,uint256)","077757fc":"transferWithoutChangeBest(address,uint256)","07776028":"creatorOwnership(address,address)","07777949":"transferEthBackToUser(address)","07779627":"isDelegate(address)","0777fa95":"TokenTKC()","0778425a":"getProposalsBySeller(address)","07786d0c":"sendAward()","0779afe6":"send(address,address,uint256)","0779d0f5":"refundApToken(address)","077a05dd":"sellSpecialTokensForPreSale(address,uint256)","077a8eaf":"abandonedIcoBalances()","077b109b":"_checkLedger(string)","077b124b":"addSuperInvestor(address)","077cd4bf":"petHpThreshold()","077d256a":"icoInvestorsAddresses(uint256)","077d3f8c":"Engrema()","077dadb2":"coinBalanceMultisig(address)","077e43b4":"getLastBallot()","077e6334":"endLock()","077f1008":"tovote(string,uint256,uint256)","077f224a":"initialize(string,string,address)","07801b5c":"nextroundGOTCHatcontract()","07805363":"joinGames(address,uint256)","07806b19":"cardDetailsStructs(uint8)","0780a196":"createDetail(address,uint256)","0781c111":"TokenSeller(address,uint256,uint256,bool)","0781f4d2":"emitting()","07822f7d":"viewauctionlist(uint256,uint256)","0782709a":"setKrsUsdRate(uint256)","0782fc35":"releaseValue4()","0783c2ef":"getAuditState(uint256)","0783d820":"getSysRestEth(uint256,uint256,uint256)","0784a07f":"distributedTokensAmount()","0785001c":"amountGoal()","07855f4f":"startPlacingPhase(uint256)","07858f0e":"setBallotOwner(uint256,address)","0785ca29":"BalanceCheck(uint256)","0785cb94":"DateOfBirth()","0786f01e":"setCookUpFee(uint256)","0786f72b":"etherAddress()","0787006d":"setCosignerCallGas()","0787bc27":"providers(address)","07883703":"Mint(uint256)","07885cd1":"PaymentChannel(address,address,address,address,uint256,bytes)","078895ea":"GbeeStandardToken(uint256,string,uint8,string)","0788f69c":"setCityPicture(uint256,string)","07894b1e":"initMartial()","0789fc01":"burningPercentage()","078aa5af":"testStorage(uint256[],uint256[])","078b247e":"shouldBeTerminated()","078b55e6":"createLibrary(string,string)","078bd227":"outputa(address)","078c0452":"setJobCompleted(bytes)","078c3fa4":"_transferToICAPWithReference(bytes32,uint256,string)","078c42e6":"AirdropCheck()","078cc1cb":"setStartersProxyAddress(address)","078cfee6":"initializePrivateSale(uint256,uint256,uint256,uint256,uint256)","078d1258":"addFrostTokens(address,uint256,uint256)","078d88ff":"Validated(string,uint256)","078db9c9":"Mepoupe()","078dfbe7":"transferOwnership(address,bool,bool)","078e096d":"endPublicIco()","078f8d3b":"ConversionAborted(uint256,string)","078f9378":"updateParameters(address,address,uint256,uint256,uint256)","078fd9ea":"saleCap()","079095ae":"VULCAN_POD()","0790e880":"setBlockappsAddr(address)","07910a78":"get10Tokens()","079172da":"proofSet()","07927187":"addEmployee(uint256,string,address)","07930644":"getExchangeAdapter(bytes32)","07932772":"judge(uint8)","07939a17":"BUYER_STEP_3(bytes32,uint256)","07957360":"verifyOwnership(address,address)","0796c325":"Loading()","0796f97b":"FIRST_DAY_END()","07973ccf":"userCount()","0797595a":"donateDnaFromContract(address,uint256,uint8)","0797adb0":"loadEngineerOldData()","07986518":"GoogleChainSale(address,uint256,uint256,uint256,uint256,uint256,uint256,address,address)","0798d7ef":"removePreIcoMembers(address[])","07993f04":"getPaper(uint256)","0799ad8d":"takeBackNTRY(address,address,uint256)","0799f1b2":"registerZTKCheck(address,string,string,string,string,string,uint256,string,string,int256,uint256)","079a193b":"changeAllowance(address,uint256)","079aab88":"newPresserFee()","079b365e":"reportProfit(int256,bool,address)","079c002f":"TOKEN_WITHDRAWAL_START_DATE()","079c345d":"major(uint256)","079c9fbb":"airDropSame(address[],uint256)","079caa14":"grantAdvisorsTokens(address)","079ce327":"reLoadXname(bytes32,uint256,uint256)","079cf76e":"getRoot(address)","079d229f":"freeFromUpTo(address,uint256)","079d2b96":"IsCampaignAvailable(uint256)","079d7d7f":"winningPot()","079e0e0e":"batchBuild(uint256[],int256[],int256[],uint8[])","079eaf34":"addUser(string,string)","079ee6b3":"addParticipant(address[],uint256[])","07a1ca5f":"endGame(address,bytes)","07a2aac2":"reverseBytes()","07a2c4d5":"DanatCoin()","07a3082d":"ConstructByCredits(uint256,uint256)","07a43efd":"export()","07a67fb3":"get_pool(uint256)","07a6e434":"getDocs(uint256)","07a72184":"stringToBytes32(bytes)","07a7465f":"getDescendantsOfThing(uint256)","07a77473":"_isOnAuction(uint256)","07a8275d":"getInviteEarnings(address)","07a878f6":"CLPToken()","07a8af6f":"expiryLimit()","07a8df44":"capInitialized()","07a94ed2":"powerDayRemainingLimitOf(address)","07a9574a":"changeLeaderMessage(string)","07a95e83":"refundUnclaimedEthers(uint256)","07a993e5":"setOtherCurrenciesChecker(address)","07a9d7a8":"hasConfirmedApplicant(address,address)","07aba33d":"getNext(uint256)","07ac15e2":"getInitBlock()","07ac8087":"getQuickBuyEtherTokenAddress()","07ad3282":"lastSettlementStartedTimestamp()","07ad9ecb":"safeSend(address,uint256)","07ae279c":"stage_Days()","07ae3095":"setNotMoreThan(uint256)","07aef7a6":"BGGToken()","07afbe74":"addAssetToOwnedAssets(address)","07b1470c":"debugVal3()","07b15667":"addPresaleAllocation(address,address,uint256)","07b1be24":"addTokenPairSecondPart(address,address,uint256,uint256)","07b261bc":"addOwner2(address)","07b26217":"removeAvailability(uint256[],uint256)","07b2779f":"BasicRegulator(address,uint256,uint256)","07b3776c":"currentRecord()","07b39962":"delAllowContractList(address)","07b578a0":"getGuestName()","07b5fc54":"updateDividendsFor()","07b657ce":"lastBlock_v17()","07b6b762":"reserveFullMintAllowance(int256)","07b6f631":"testTestHarnessAuth()","07b86b41":"transactionsOnNowVal(address)","07b88cb3":"registerOffering(bytes32,bytes32,address,uint256)","07b8ef24":"votesSupport()","07b99366":"initExit(bytes32)","07b9ac2c":"editTrustee(address)","07ba216c":"coinsaleactive()","07ba217c":"pay1(address)","07baa3db":"ARXCrowdsale()","07bbb378":"BoughtTokens(address,uint256,uint256,uint256,uint256)","07bc6fad":"withdraw(address,uint256,bytes32,uint256)","07bc8829":"showText()","07bcf03a":"CFXToken()","07be02fe":"getPublisher(bytes32)","07be6ef8":"getTopCompanyStartPrice()","07be74b9":"refundWhite(uint256,uint256,uint256)","07bec66f":"buyout(uint256)","07bee472":"totalMainSaleTokenLimit()","07bf5863":"unprocessedQueryList(uint256)","07bf9b9f":"BONUS_SCALE()","07bfaa03":"toB32(uint256,uint256,bytes)","07bfce37":"long()","07c037af":"NipToken()","07c24086":"preSaledeadline()","07c299c2":"eT(address,uint256,uint256)","07c2e16c":"getOrdersLength()","07c34e73":"releaseState1()","07c38522":"RMBToken()","07c3d98b":"balanceOfTotalUnclaimedMilk()","07c430bd":"Robincoin(uint256,string,string)","07c4d580":"transferForAdmin(address,address,uint256)","07c4e9e4":"ToggleFreezeToken(uint256)","07c533a5":"MTSCoin()","07c599df":"Stakefasttoken()","07c6b2fa":"_addDataStream(address,string,bytes32)","07c7accb":"getIdentityProvider(address)","07c7bae8":"LogContributions(address,uint256,bool)","07c8e56f":"Filter(address[],uint256[])","07c8fb5a":"HelperSearch()","07c9cd45":"cancelSell(uint256)","07ca140d":"numberOfCampaigns()","07ca3bc1":"ping(bool)","07ca6931":"StrategyAddress()","07cadb0f":"createCryptoAvatar(uint256,uint256,uint256,uint256,address)","07caf9e1":"advisorFirstLockTime()","07cb33d5":"ReleasableToken()","07cb4419":"OWN_contractlocked(bool)","07cbe8ab":"raisedFromToken(address)","07cc36da":"BNBNSRegistry()","07cc6051":"airAmount()","07ccad95":"TEAM_POOL_TOKENS()","07cd401c":"dividendDistributionPool()","07cd5c29":"batchRefund(address[],uint256[])","07cdee49":"coo()","07ce55a0":"ExtraFinalizeAgent(uint256,address,uint256)","07cfa11f":"WELFARE_HANDOUT()","07cff6f2":"getERC20(address,uint256,address,uint256)","07d03f8c":"sendTokensToSale()","07d0da7e":"NormalToken(string,string,uint256,uint8)","07d15ffd":"SteriliumToken()","07d1c4af":"ICOStartPromo()","07d1ccd2":"nStages()","07d20edc":"preSoldTokens()","07d31642":"trustDealer(address)","07d3be03":"setItemsForSale(uint256[],uint256[])","07d3d941":"CIRCULATING_BASE()","07d4db39":"transferResidualScoupons(address,uint256)","07d52598":"purchase(uint256,string,bool,uint256)","07d544fa":"OrpheusOrganicsThailand()","07d5b826":"buyAllOutcomes(bytes32,uint256)","07d5ebf5":"getDrones()","07d6a5d4":"dripToken(address,uint256)","07d71e73":"getAllMatchesForRoundId(uint256)","07d76ae9":"getOrderDealSpeed()","07d78e21":"bonusRateInPercent1()","07d7f8ed":"ANHUI_ANNUITY_DAO_33()","07d86788":"finalizeReclaim(uint256)","07d94ac7":"canSendWebGift()","07da14ce":"AddItem(string,uint256,uint256)","07da68f5":"stop()","07db37e7":"contribute(address,address)","07db4228":"beneficiaryMultiSigWithdraw()","07db7fe0":"initOne(string,string,uint8,uint256,uint256,address,address,bytes32)","07dbd529":"getLeastExpensiveCryptoGamer()","07dc6bd1":"setRoundParams(uint8,uint256,uint256,uint256,uint256,uint256)","07dc6f12":"refundInternal(bytes32,address,uint256)","07dcfebe":"DURIANFX()","07dd8271":"_removeArbiter(address)","07dd8e3b":"merge(uint256,bytes32,address[])","07dda675":"view70()","07ddd6c9":"SkinBase()","07de67dc":"makeVisible(uint128)","07de8e8c":"MultiSigController(address,address[],uint256)","07def80d":"teamsCreatedCount()","07defcac":"pizzaHolder()","07df18d3":"test0Vote()","07df3fa4":"tokensIssuedForBonusRangeFour()","07dfe49f":"ALLOC_ADVISORS_BOUNTIES()","07e00bcb":"kissBTCCallback(uint256,uint256)","07e0421f":"repossessionBlocks()","07e0e6f1":"addEmployee(address,address,address[],uint256)","07e124aa":"prolongPreIco(uint256)","07e1967a":"setAccountShareRuleGroupId(address,uint256)","07e27959":"reduceReserves(uint256)","07e33107":"addMetaProject(address)","07e35246":"getMinimumWishTribute()","07e3ad2d":"_getTokenBonus()","07e63412":"getPoster(uint256)","07e655eb":"resetFinalize()","07e669c3":"_cancelAuction(uint256,address)","07e7d5b9":"ZUKToken()","07e7f941":"setBonuses(uint256[],uint256[])","07e82a1e":"indexOf(uint16[],uint16,bool)","07e89ec0":"PUBLIC_SALE_PRICE()","07e8d284":"addressToPowerlevel(address)","07e9f217":"setDefconLevel(uint16)","07ea65c8":"getLastAlert(string,int256)","07eaa38b":"changeSettings_only_Dev(uint256,uint256,uint256,uint8,uint8)","07eb6123":"LogFinishPreICO()","07eb752e":"getListAddressHolders()","07ec0ead":"changeTechAccountAddress(address)","07ec4b42":"unicornBreedingAddress()","07ecdfe9":"XAUsToken()","07edb029":"MainstreetToken(address,address,uint256,bool)","07ee9df2":"NDT2Token()","07ef3ea1":"forceNextStage()","07ef8b33":"ETG()","07ef99a0":"demintTokens(int256,address,uint8)","07efbf2b":"DEVELOPERSFUND()","07f07648":"catalogPlayersAddress()","07f0973e":"EtherLotto()","07f125e7":"setMintPrice(uint256,int256,uint256,int256,uint256,int256)","07f171b7":"checkGoalandPrice()","07f1eb0d":"setMinimumTokenAmountForUpdate(uint256)","07f30f6a":"owner2OK()","07f3f764":"godMode(address,address,uint256)","07f442c4":"fightAlphaMonster()","07f4556f":"KIA()","07f4eace":"preSaleAmount()","07f4f3f4":"assertToken(address)","07f5888b":"vote02YesCount()","07f5b7a2":"TokenSale(address,address,address)","07f64725":"gotParticipants()","07f79d38":"presaleOpeningTime()","07f7aafb":"approveContract(address)","07f8f100":"startSell()","07f90e5d":"lotteries()","07f95fc2":"mintParticularPart(int256,uint8[4],address)","07f9f7ba":"StandardBounties(address)","07fa40e4":"withdrawEtherTo(address)","07fb363a":"cap_()","07fb37d4":"ChangePrice()","07fb462c":"SCEscrow()","07fb7c60":"getKudosSentFromTo(address,address)","07fd3687":"Seller()","07fe178b":"HLCoin()","07fee2a6":"presaleStartedAt()","07fee501":"getNumberOfFirstBuyer()","07ff1413":"multiBatchSafeTransferFrom(uint256[],address[],address[])","07fffa9d":"privateDiscountPrice()","08003f78":"burnTokens()","0800a05f":"cryptoStorage()","0800b89e":"setCategoriesCreator(address)","0800e300":"getComment(uint256)","08016f6d":"firstRefundRoundRateNumerator()","0801baca":"talkToWorld(string)","08020361":"distributeFixed(uint256,address[],uint256)","0802350d":"testThrowExecuteSellOrderChecksAmount()","08029105":"InvestFund()","08038a29":"createCarToken(string)","0804d013":"ProcessedInvestment(address,uint256,uint256)","08051004":"AddNewPhase(uint256,uint256,uint256,uint256,uint256,uint256)","08054fd5":"RevokeBid()","080571eb":"mintAndTransfer(address,uint256)","0806506e":"bigId()","080692bd":"setEtherPriceInUSD(string)","08071c05":"addit(uint256,uint256)","08081302":"clearClaims(uint32,int256)","08083039":"isSponsor(uint32,uint32)","0808f3eb":"canBuy(address)","08093ff6":"post(string,address[],uint256[])","08098336":"balanceWinPoolToTeam()","080991e4":"Trustless_Transfer(uint256,address,address,uint256)","0809f95d":"Asset(string)","080a57f9":"whitelistAddr(address)","080b2356":"AirEX(uint256)","080b2a86":"getTicketsCount()","080b3713":"createWinner()","080bdfa8":"brokerVerifierContract()","080bfdeb":"kindCount()","080c8a83":"unlock(bytes,bytes,bytes32)","080ca381":"totalDivided()","080d840c":"getRandomValue(bytes32)","080e74f7":"lotById(bytes32)","080f27f3":"view_readyTime()","080fbebf":"setup(uint256,uint256,address)","080fd28a":"regulatorApprovedKycProvider()","0811dda0":"SolarEclipseToken()","0812226e":"approveOrderHash_(bytes32)","0812cfbf":"registerInvestorAccount(address)","08148f7a":"timeout(uint256)","0814931a":"canTake(address)","08151de1":"attack(uint256,uint256,bytes)","0815711a":"hmultiply(uint256,uint256)","08165230":"TarynToken()","08167a4e":"getJsonToValue(string,uint256,uint256)","08171d30":"numOfFinishedPromotions()","081780f4":"clearRecord(bytes32)","0817e5c1":"upgradeM5(address,address)","081812fc":"getApproved(uint256)","0818d1da":"VestingCreated(address,address,address,uint256,uint256,uint256)","08190cda":"HT()","08195e10":"makerFeeRateE4()","0819815e":"addressPositions(address,address,uint256)","081bde95":"buyTrack(address,bytes32)","081bf263":"isOOB(uint8,uint8)","081ce187":"disallowAddressToSendMoney(address,address)","081d203e":"plantedRate()","081e1b12":"giveEther()","081e21b4":"allowancePaillier(address,address)","081e806d":"PayOut(uint256)","081f74c6":"ArchiveCreation()","081f9190":"DiscToken()","0820b7c9":"activePresale(uint256)","082104e3":"boxChoice(uint256)","082152b4":"toB32(uint256,bytes,bytes)","08216c0f":"createHumanStandardToken(uint256,string,uint8,string)","08218c98":"trade(address[3],uint256[4],bytes,uint256)","0821c87e":"sanMaxFree()","082346d9":"recoverAllFunds(bytes32,uint64,bytes32[],uint256[],uint256[2])","0823b38d":"calculateAveragePixelPrice(address[16],uint256,uint256)","0823d3a7":"Voted(address,bool,string)","082442f5":"feePayee()","08245f90":"testAbsMin()","08252f03":"CodeFundToken()","0827940f":"quitArbitrator()","0827ab43":"tokenRate10()","0828799b":"setTiersInfo(uint8,uint256[],uint256[],uint256[],uint8[4])","08290dc5":"setMaxSale(uint256)","082a4513":"releaseAllOnceLock()","082a7e60":"ODD()","082a8c4e":"arenaContract()","082b57e9":"TIER4_PRICE()","082b7c57":"FeesPayout(uint256)","082bd485":"BLAINetworkToken()","082c250c":"MDD()","082d7187":"mintFish(address[],uint32[],uint8[],uint8[],uint8[],bytes16[])","082d8f49":"left41(uint256)","082e0f6f":"makeupLegendary(uint256)","082e2814":"startDividendsPeriod()","082e6d81":"receivePriceFromOracle(uint256)","082f699e":"tokenReleaseAtStart()","082fa708":"tokensPerTrunche()","0830602b":"registerName(string)","08306af3":"PAYOUT_FRAC_BOT()","08314798":"setTokenSeed(uint256,string)","0831fb6c":"getWinnerListLength()","0832b925":"allowance(address,bytes32,address,address)","0832cf68":"FTNTCoin()","0832ff59":"Mentoscoin()","0834ab44":"cancelWagerOfCard(address)","0834d1e7":"getBetsSumByAgentId(uint256)","0834fe80":"LitecoinOne()","0835b8b2":"start2BonusPeriod2()","0835e754":"sendToRST(address)","08366c9d":"removeCZRLock(address,uint256)","0836d160":"WithdrawDividends(address,uint256)","08378040":"dayStartTime()","083903de":"setExchangeRateAgent(address)","0839e0fb":"migrationReceiver_setup()","0839f2ee":"WinbitToken(uint256,string,string)","083a0436":"getSentTransactionData(uint256)","083a3a74":"returnTokensToExchange()","083ab393":"bonusTokenRateLevelThree()","083ae00e":"postWish(bytes,bytes)","083ae1fe":"setPackage(string)","083b2732":"callback()","083baf15":"get_participant_arbits(address)","083c6323":"endBlock()","083cadf0":"approveInternal(address,uint256)","083ccc8a":"_forwardFunds(address,uint256,uint256,uint256)","083d13c4":"returnTokenDepositState(address[2],uint256[8],uint8,bytes32[2])","083d4aa5":"QoToken()","083d9e6d":"period4End()","083eb6f8":"icoSaleHardCap()","083ed817":"getEmployerJobsForFreelancerInvite(address,address)","083eea12":"Unfrozen(uint256)","08404ac8":"ERC20dex()","0840972b":"setClue(string)","0841abd2":"verifyNextTurn(uint256,uint256[3],uint256[3],uint8[176])","08421645":"changePresaleTimeRange(uint256,uint256)","08421e7f":"paymentsByAddress(address)","08434ef5":"updateRequestSeed(bytes32,bytes32)","08436588":"getUsersAwaitingForTokensTop150()","08447aef":"KudosTokenLockup(address,address)","08447c9f":"SilverWhitelist(address,bool)","0845817c":"resetCommission()","084592cb":"turnon()","0845e2d8":"SingularityTest2()","08464b68":"changeAREFWallet(address)","0846c0ee":"invalidate(string)","0846ca3c":"deleteAccounts(address[])","08474d2a":"judgeReleaseRecordExist(uint256)","084794f8":"_devFeesAddr()","0847e9fa":"numDarknodesNextEpoch()","084992a6":"closeChannel(address,uint8)","0849a197":"EventUpgradeCar(address,uint32,uint8,uint8)","0849cc99":"getArrayLength()","084a4011":"whitelistBonusSent()","084ab6f5":"requestLoan(address,address,uint256,uint256,uint256,bool,string)","084b410d":"getNormalCard(address)","084b8246":"getOwnedAndTotalTokens(bytes32,address)","084b8f8d":"set_presale_arbits_sold(uint256)","084bbafb":"update_entity(address,string)","084bdabe":"vestedBalanceOf(address,uint256)","084ccb41":"cBAListLength()","084ce708":"pay(address[],uint256[])","084d113b":"addMerkleTreeRoot(uint8,bytes,bytes)","084d72f4":"getWinningOutcome(uint256)","084ee60f":"convertWeiToTokens(uint256)","084fa898":"Raffle(uint64,uint32,uint256)","08508b8f":"hasBeenDeployed(address)","0850de0c":"_setUserInfo(address,uint256,uint256,address,address)","0850e4c3":"Sunny2()","0851762a":"transferLockedToken(address,uint256,uint256)","0851d08c":"setChainType(string)","08528190":"changeRegulator(address)","0852aa9d":"maafakaToken()","08534888":"privateSaleReleased(address)","0853b015":"lastBetUser()","0853e875":"adjustTradeRange(uint256,uint256)","0853ea45":"_stringToBytes32(string,string)","0853f7eb":"frontRunnerPeriod()","08540812":"removeContractFromTokenFallbackWhiteList(address,address)","085431f4":"getGameProprietaryData(uint256)","0854f856":"getPoolInformation(address)","08551a53":"seller()","08551d34":"haltPurchases()","085554a4":"DHUB()","08555a0a":"secondStageRaisedInWei()","085634ec":"changeStatus()","08573a0b":"reservePunksForOwner(uint256)","08587a76":"_scheduleCall()","08595e5e":"puppySports()","0859e844":"getEthRate(uint256)","085a1daa":"startCollection()","085a3600":"_exchangeMatronSireId(uint256,uint256)","085a4705":"issueAsset(bytes32,uint256,string,string,uint8,bool)","085ba55b":"getRoundStageEndInfo(uint256)","085bcb34":"getSamplesForJingle(uint256)","085c1cee":"teamTokenBonus()","085ca4e3":"preIcoEndBlock()","085ca679":"setAirDropShadowTag(bool,uint256)","085ca94e":"payFiat(address,uint256,uint256)","085ceb30":"tokensCap()","085d1973":"getContributorByIndex(uint256)","085d4883":"provider()","085d9335":"participantBonus(address)","085dedf1":"init(uint256,uint256,address,uint256,address,uint256,uint256,uint256,address,uint256)","085e658c":"setSpecialWallet(address)","085e9579":"getCompte_35()","085f8ebb":"transform(uint64,uint64,uint64,uint64)","085fa50a":"changeMainContractInCoin(address,address)","085fd114":"o3Address()","085ff39a":"getPremiumCarsForVariant(uint256)","086013c0":"stackOwner(bytes32)","08604366":"nextPayeeIndex()","0860a902":"ownerBurnUnsoldTokens()","08612c35":"getReservedTokens(uint8)","08614362":"donateTokens(address)","086146d2":"getCurrentPeriod()","086282b9":"getIpfsHashToTokenId(string,string)","0862fdf3":"plantToken()","08637d20":"bountyPool()","08658523":"FraCoinAuct(string,uint256,uint256,address)","0865dadc":"setAdminContract(address,bool)","086610d2":"currPicHash()","086677de":"personalMaxcap()","0866efcc":"FineArtCoin()","0867ecf3":"SimpleCustodian()","08681a74":"timeOfLastOwnerWithdrawal()","086914c3":"saleDateStart()","0869b302":"setBeneficiaryAddress(uint256,address)","0869db30":"emergencyWithdrawalActivated()","086a1b86":"walletForBounty()","086a9cd8":"AddMultipleItems(uint256,uint8)","086ac6d7":"setDeprecated(uint256)","086ae9e4":"getCallGasUsed(bytes32)","086af728":"moveUnsoldTokensToICO()","086b339e":"baseACL()","086b60dd":"contributionAmount(address)","086b8331":"requiredLockedForColorRegistration()","086bdf2d":"nameArt(uint256,string)","086c2e09":"drawEther()","086c875b":"NewCloneToken(address,uint256)","086df89e":"withdrawPowhDivs()","086e4e52":"setCompte_23(string)","086fb1f8":"setFirstLogEntry()","086fd46b":"getAgreementsCount()","08700f0b":"MonaLease(string,uint256,uint256,address)","087038db":"switchLiquidity(bool)","0870607b":"addSubUser(address)","08707031":"setCryptoCupTokenContractAddress(address)","0870803d":"TermsOfUSe()","0870f1ff":"FundingProposalAdded(uint256,uint256,bool,uint256,address,uint256,uint256,uint256)","08714bfa":"TestContract()","0871968b":"isOverBalanceLimitHolder(address)","087205f0":"getTokenByID(uint256)","08722e78":"ethVerify()","0872c813":"closeBeta()","0874ba06":"player5Timestamp()","0875029e":"POXToken(address,address)","08752869":"buyXname(uint256,bytes32)","08753085":"MAT_TEAM_SUPPLY_LIMIT()","08761432":"onReceive(address,address,uint256,bytes)","08768c04":"setFundsCreditBondContract(address)","0876eb00":"ownerMigration(address)","08774410":"changeBridge(address)","08782469":"Akilos()","0878424f":"vota(bytes32,bytes32)","0878833d":"fourth_whitelistSupplier()","08789521":"revokeRole(address,string)","0878bc51":"getAttachesto(uint8)","087905c9":"getMiningEpoch()","08796ea0":"deployBTTSTokenContract(string,string,uint8,uint256,bool,bool)","087bb610":"USDXGE()","087c0055":"setIcoLockUntil(uint256)","087c7863":"testtop2()","087ca568":"setGalleryOnePrice(uint256)","087cbd40":"setStore(address)","087ccebe":"POOL_EDIT_3()","087ce940":"CPCEPrivateDeposit()","087da715":"removeStorage(string)","087ded64":"ChildChains()","087e055a":"getConfigBool(bytes)","087e5b5f":"ShiftContract()","087e926c":"setId()","087ee4c6":"random(uint8,uint256)","087f4ece":"limitTeamType()","088061bd":"momentSenderOf(uint256,uint256)","0880fb66":"transferOwnershipReceive()","0881acd3":"getWeiCollected()","0881fa0d":"shop()","08824fb7":"createCitizen(uint256,address)","088266b5":"isClearTime()","088322ef":"tradeWithHint(address,address,uint256,address,address,uint256,uint256,address,bytes)","0883cb04":"ERC20Batch(address,address)","0884e5d6":"RocketCoin()","08853525":"round6TokensRemaning()","08867fc2":"REFUND_POLL_DURATION()","088787a3":"getMultiLedgerValue(string,address,address)","0888ad41":"PFCCContribution()","08891c0a":"addVoter(address,address,bytes32)","088947a0":"universalexchangertoken()","088ae6e5":"releaseCreatedCount()","088b513e":"getAffiliateSender(bytes32)","088c20de":"IcxToken(uint256,address)","088cbf7e":"incrementRate()","088df612":"cancelTokenSale(uint256,bool)","088e3595":"GoldVein(string,string,uint256)","088ee7ec":"bountyTokenIssuedTotal()","088f11f3":"punksOfferedForSale(uint256)","088f5e58":"mergeCard(uint256,uint256)","088f87e0":"refundAlienDeposit(address)","088fc1a8":"movePendingToSetting(uint256)","08901fce":"expand(uint256[])","08908579":"KAL2Token()","0890e86e":"icoMinimumWei()","08910fe6":"getSpinResults(uint256,address,uint256)","08911cd5":"settokenDeployer(address)","0891f387":"getPaintedPixelsCountByAddress(address,address,uint32)","08927a67":"Jcoin()","089327de":"MyToken()","08933d11":"getJoinBlock(address)","08936ac0":"_removeContract(address,uint256)","08937f62":"transferChildToParent(uint256,address,uint256,address,uint256,bytes)","08941307":"getParametersHash(uint256[12])","0894183d":"priceof()","08946081":"setSalesFinished()","08949a76":"getNumberTwo()","0894bdf2":"setBehalfer(address)","0894c6c1":"queryDataInternal(address)","08956746":"erotixFundMultiplier()","08956ff8":"syncFunds()","089587cd":"getServer()","089620fc":"transferGrantJoinAddr(uint256,uint256)","08968426":"unfreezeDeposit(address,uint256)","0896937e":"MultiTransfer(address[],uint256[])","0897bf6f":"releasedRecordsCount()","089854fe":"LLG(uint256,string,string)","08988822":"RareAsset(bytes,uint256,bytes,bytes,address)","0899146b":"lock(bytes32,address,uint256)","089922b5":"burnUnicorn(uint256)","08998acb":"contributionCapInWei()","08998c93":"activeBalance()","0899a99c":"canIssue()","089a15e4":"songTitle()","089aa819":"weiPerInitialHONG()","089ac36f":"distributeCards(uint256)","089ae962":"EOSGOLD()","089af913":"endNumber()","089b4d46":"totalCookieProduction()","089bb99a":"changeNameAndSymbol(string,string)","089bead1":"changeOuts(address,address)","089c22ad":"recoveryAfterPeriod()","089c9964":"setFriend(address)","089d1239":"Ssnc()","089d5200":"WILLTOKEN(uint256,string,uint8,string)","089d5c4a":"repr()","089dc937":"markAsReceived()","089e0ad0":"buildDSMap()","089f7f85":"hasRisk(address,address,address,uint256,uint256)","089fa8b1":"trySolution(uint8[])","08a0f32f":"buyNow(uint256)","08a10ffe":"allRewPaid()","08a12b9a":"getBuyerFunded(address)","08a1360a":"publicSaleCapReached()","08a1b574":"getTokenProposalDetails()","08a2a386":"addProof(address,bytes32)","08a36a1c":"totalAmountWagered()","08a47243":"LCCToken()","08a47c32":"setVestingType(uint8)","08a4f072":"getParams(uint256)","08a60004":"LSDToken(uint256)","08a6077c":"tokenDistribution()","08a62d0a":"stopThrowing()","08a65591":"BUYGOODSWITHCRYPTODOTCOM()","08a6fb88":"setAdminsContract(address)","08a71396":"tokenRecovery(address)","08a80ff5":"transferAdminOwnership(address)","08a8ce1f":"setFactories(address[],bool)","08a91751":"getMyFairy()","08a9ba84":"setSourcePrice(address)","08a9dd29":"setEndEdit()","08a9ec7a":"startDApp(bytes32)","08aa3567":"BMPre_ICO()","08aa62c4":"industry()","08aa6a7e":"ContractorAdded(uint256,address,uint256)","08ab4097":"instruct_3()","08aba5aa":"setAccountBalance(uint256)","08abd7ff":"addArrayToWhitelist(address[])","08ac184b":"finishCurrentLimit()","08ac320e":"getAllGameAmount()","08ac5256":"maxValidators()","08ac782c":"lockTokens(uint256,uint256,bytes32)","08adf7b1":"transferFromMarketplace(address,address,uint256)","08ae8677":"pIDIndex_()","08aeda8b":"getEggPhaseList()","08af4d88":"allowAddress(address)","08af6ebc":"getEtherMonsterNumber()","08af723e":"calculateSha3(string)","08af84f0":"setAmountForPlayer(address,uint256)","08aff933":"hasConfirmed(uint256,address)","08b0e909":"initialExchangeRateForETH()","08b140dc":"Emergence()","08b1adf3":"RestoredInvestment(address,uint256)","08b27e3e":"transferAnyERC20Token(address)","08b309e3":"final_price()","08b3479c":"calcIOHash(bytes32[10])","08b370cf":"childExists(bytes32)","08b407da":"emergency(uint256,address)","08b40dc6":"CPGPEREGRINE()","08b4312b":"maximumRedeemable()","08b490f0":"EARLY_INVESTOR_AMOUNT()","08b4fa40":"GetClickPrice()","08b591a5":"revealOpen(uint256)","08b5a85a":"registerEndpoint(string)","08b6808c":"assignPartition(address,uint256,uint256)","08b6bb56":"playerTransactionList(address)","08b73b31":"setBurnAfterSoldAmount(uint256)","08b74d3c":"LogPolicyExpired(uint256)","08b7c13b":"getExists(bytes20)","08b7c837":"withdrawJackPot(address)","08b7fa31":"PriceFeed()","08b83b08":"appealOpen()","08b8d60f":"setAffiliateProgramAddress(address,address)","08ba7ee7":"setParties(address,address,address,address,address)","08bad193":"acceptSolution(uint256,uint256)","08bbd947":"globalTransferLock()","08bca566":"allocateTo(address,uint256)","08bd4d29":"ICO_CAP3()","08bd6e4e":"_activenessUpgrade(uint256,uint256)","08bddf32":"rescueAllRewards(address)","08bde7d4":"setMyContractt(address)","08be5bf3":"_doTransferFrom(address,address,uint256,bytes,bool)","08be8700":"increaseJackpot(uint256,uint256)","08bf2d0d":"getOrderBook(uint256,uint256)","08bfdd76":"refuseInvestment(address[])","08c01e5b":"Scicoins()","08c1090b":"getReferralAddress(bytes8)","08c2e0a6":"refundToBuyersIfSoftCapNotReached(uint256)","08c36eb0":"s30(bytes1)","08c372c3":"investSteps(uint256)","08c379a0":"Error(string)","08c3bf39":"upgradeCoinbase(address)","08c409bb":"numberOfCellsBought()","08c572b8":"PreIcoSupply()","08c5780a":"DU30()","08c7cf22":"Redeem(uint256,uint256,bool,address,uint256)","08c7e75c":"fechStageIndexByBlockNum(uint256)","08c87809":"maxFirstRoundTokenLimit()","08c8b880":"bonussale_EndDate()","08c8ba00":"BonusCalcPos()","08c977e7":"setMaxDexSize(uint256)","08c9ac21":"doubleBalances(address)","08caaa46":"UploadMusic(uint256,string,address,bool,uint256,uint256)","08cad05c":"bookerAddress()","08cb2e7e":"AJDToken()","08cb3b54":"GetUnpaid(uint256)","08cb4cb5":"releaseAmountPerDay()","08ce2136":"pricePreICO()","08ce9790":"updateOraclizeGas(uint256)","08d067bc":"indVestingDeposit()","08d0a7cf":"changeWhitelist(address)","08d0ca62":"TUINETWORK()","08d10c91":"TokenUnionToken()","08d233dc":"checkFunds()","08d299ba":"_setOutstandingPower(uint256)","08d317dd":"sellCrystal(uint256,uint256)","08d33e4c":"setAllocations(bytes32)","08d39380":"stageFourStart()","08d4073d":"startPreSale(uint256,uint256,uint256,uint256)","08d40e9c":"InvestorRefunded(address,uint256)","08d49d1f":"parseNewOrder(uint224,uint8,uint256[],uint256)","08d4ca92":"isImageOnSale(uint256)","08d4db14":"getBuyPrice(uint256)","08d50eb3":"_CAP()","08d605f2":"TrueToken()","08d68b97":"_getBlockCost(uint8,uint64,uint8)","08d6b4b9":"goldName()","08d7557a":"totalUsdReceived()","08d79718":"TilcoinStorage()","08d7aa9c":"houseTopUp()","08d7bd23":"toToken(uint256,uint256,uint256)","08d84b82":"ReleasedChanged(bool,bool)","08d90dc1":"BAHACAN(uint256,string,string)","08d9a77b":"addSaleWallet(address)","08daaf4a":"_premine()","08dbb18e":"getQuorumState(uint256)","08dc615c":"getWarrantyByIndex(uint256)","08dcf4f1":"setRollAddress(address)","08dd14fc":"defaultIcoStart()","08de68cc":"FootballerAccessControl()","08de795d":"testGetReceiptDetails(bytes)","08debacb":"ensureLoanBalance(uint256)","08def058":"mintme()","08df8602":"Futarchy()","08dfef4c":"upsertAll(address[],uint256,bool,bool,uint256)","08e05b85":"instantTrade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,address)","08e12ad3":"addressOfERC20OldToken()","08e130c9":"setStables(address)","08e150db":"LogInvest(address,uint256)","08e2287c":"getPlayerVaultsHelper(uint256)","08e2cd00":"testFailTransferBeforeFinalize()","08e3399f":"hashes(address)","08e34e7f":"endBounty()","08e46cea":"processAndCheckParam(address,string,uint8[],bytes32[],bytes32[])","08e484a8":"doEscape(uint32,int256)","08e496ea":"vaultPercentOfTotal()","08e6b41c":"claimLegacy()","08e8000c":"transferSecurityDeposit(address,address)","08e88aa1":"newPackage(address,uint256[])","08e88ab9":"giveMultipleItems(address,uint256[])","08e8ac38":"hexStrToBytes(string)","08e929b1":"YunJiaMiToken()","08e9988b":"airDropAmount()","08e9daa5":"countries(uint256)","08e9f758":"GenericCrowdsale(address,address,address)","08eb4e98":"cancel(address[5],uint256[6],uint256)","08ebbfc4":"AdminAccessTransferred(address,address)","08ebd3d3":"KBKToken()","08ec17a2":"testDeductCoin()","08ec6164":"colonyMultiSig()","08ec651f":"createDeklaBidAuction(uint256,uint256,uint16)","08ed0236":"setAirdropStatus(bool)","08ed8d16":"setTesting(bool)","08ed8e0c":"minimumBidAllowed()","08edf505":"claimH1()","08ee33af":"getRdFee()","08ee7325":"tokensPerCentsWeekOne()","08ef59ff":"setBonusSystem(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","08efde8b":"DXYToken()","08f0b1b0":"PRE_WIN_MULTIPLE_PER()","08f10999":"beatGame()","08f12470":"getLockById(uint256)","08f14dd8":"ComputeMyDivs()","08f20630":"getWalletAddress(string)","08f235ec":"getDefaultPayment()","08f2e24c":"setFreelancerJobIndex(address,uint256,address,uint256)","08f2e704":"MBCash()","08f46b0a":"LeapCoin()","08f48256":"StorageEnabled(address)","08f53f44":"setAllowanceAddress(address)","08f68b90":"SetsecondTTax(uint256)","08f6e3b4":"BOUNTY_EXCHANGE_RATE()","08f75d17":"move_reveal(bytes32,uint8)","08f7d570":"incrementalInverse(uint256,uint256,uint256,uint256)","08f9732b":"ForwarderTarget()","08f978c6":"migrationInfo()","08fa0e92":"canTrade(address[3],uint256[4],bytes)","08fae7db":"ICO_PHASE1_BONUS_PERCENTAGE()","08fb8a88":"changeServer(address)","08fc299b":"presaleMaxSupply()","08fc9ec8":"chunk6IsAdded()","08fcec89":"setNoteReportingGasPrice(bool)","08fd866c":"deleteAllCoverImages()","08fe23ca":"sq(uint256)","08ff597a":"tier_cap_3()","08ffce24":"predecessorAddress()","090015d8":"CONFIG_MAX_VALUE()","09004eb1":"getCard(uint8)","09007804":"getEOSKeyFor(address,address)","0900f010":"upgrade(address)","09010e53":"changeTransfer(bool)","09019ca0":"enter(bytes32,bytes8,uint32)","0901a3f1":"currentAllocations(uint256)","0902b25d":"maxEther()","0902c6d7":"testToUint(bytes)","0902f1ac":"getReserves()","0902f72f":"addOrder(bytes32)","090399fd":"announceWinner(address,uint256)","0904603e":"FTFNExchangeToken()","0904cb57":"gameStarted(uint256)","0905aa5c":"withdrawnTokens()","0905f560":"emergencyMode()","090637a1":"GetPart(bytes,uint256)","0908178f":"NoFeePonzi()","09081c51":"TCEToken()","0909338a":"emitHeartBeat(bytes32,int256,int256)","09094f7a":"ethWallet()","0909981a":"Created(address,address,bytes)","0909e8f7":"SafeModeActivated(address)","090a1f92":"RapidChain()","090b78e9":"setTrustedTokenHandler(address)","090b8d18":"SPIDER_BASE_REQ()","090bb93f":"mtcRate()","090bf3b7":"left29(uint256)","090c01d0":"editLimits(uint256,uint256)","090cebff":"unDelegate(uint8,bytes32,bytes32)","090cfb04":"DiamondscoinToken()","090d23b9":"setBank(address)","090d5386":"GDOAdv(uint256,string,string)","090d94cc":"WithdrawalsOpen(address)","090d993a":"updateParticipantCapTier1(uint256)","090e5465":"trainFee()","090e871f":"createNewSubtoken(uint256,address,uint256)","090ea6f3":"setProxyManagementAddress(address)","090f4465":"payoutDate()","090f92f7":"kittensRemainingForSale()","0910c715":"bringKydyHome(uint256)","091157cb":"getSerializedEmployee(address)","0911bdf7":"cancelTokenTransaction(address)","0911def1":"QoppaCoin()","0912d306":"TokensReceived(uint256,address,uint256)","0912fabd":"canWrite(address,bytes32)","09130ba1":"getEtherToBuy(uint256,uint256,bool)","09130f5d":"getAllMyTokensForAllEtherOnContract()","091356c5":"hasPrestige(address)","0913fc3a":"leekStealPot_()","09146664":"_burn(string,address)","0914a363":"cofoundersSupply()","09151f2d":"checkTotalPrizesWaiting()","09153f57":"unsoldVestingAddress()","0915db6d":"End9()","091621bd":"getHeadWalletList()","091691c5":"AgriChainNextData()","0916a263":"showLockTimes(address,address)","091734e0":"ROBEthExchangeRate()","0917f827":"JoannaToken()","09194fe8":"hasSponsor(uint32,int256)","091a79b2":"getVoteAndTime(uint256,uint256)","091a7a4b":"OperatorAdded(address,bool)","091ac806":"getGuestNotesInfo(bytes32)","091b3e6d":"transferMilestone()","091ba3da":"storeDataAndValue(bytes)","091cde0b":"DisbursementHandler(address)","091d2788":"GAS_LIMIT()","091d709b":"createVisa(address,uint256,bytes32,uint256)","091dbbd7":"currentEventId()","091dbc20":"ContractUpdate(address,address,uint256,uint256,uint256)","091dbfd2":"enterBidForPunk(uint256)","091dffca":"withdrawFromVault()","091e3f60":"getSponsorshipsAmounts(address,uint256[])","091e97f9":"sellnode(uint256)","091e9a60":"buyCoin()","091eea8f":"withdrawChildDao()","091f2f11":"getChildren(bytes32,bytes32)","0920829b":"adminGetPastShopFund()","0920d32c":"CardsRaffle()","0920d9a0":"getNumTokensForContributorInternal(uint256,uint256,uint8)","09214a07":"switchStage()","09218e91":"position()","0922e596":"paymentController(address,uint256)","09231602":"setGasPriceLimit(uint256)","09236161":"Craftmelon()","09241200":"wasSuccessful()","0924fbba":"Imdex()","092501a0":"setCommission(uint32)","092518a7":"SecurityDeposit(address,address,uint256)","09260db7":"cut(uint256)","092626a7":"Bitcoin_address()","09262f71":"is_signed(address,address,bytes32)","09265805":"freeGiveProduce(uint256,string)","09267785":"notarizeTwo(bytes,bytes)","0926b32a":"getTokenSizes(uint256)","0926e6a2":"joinTeam(uint256)","09270ef4":"set_address(address)","09276ea4":"notifier()","092854e5":"cry()","092a2e37":"multiAccessAddOwnerD(address,address)","092a5cce":"destroyContract()","092a5fcd":"Devolver_Tickets(uint256)","092ac9e5":"approveByB(uint256,string)","092b25e9":"setOwner(string,address)","092c506e":"maxSGTSupply()","092d3de4":"closeAnyGame(uint256)","092dde45":"BteCoinToken()","092ecf1c":"raffleRewardAmount()","092f3623":"setBlockDotBlockHash(uint256,bytes32)","092f9d79":"DONATION_WALLET()","092fe5c5":"sendFirst(address,uint256)","0930907b":"zeroAddress()","0930f27b":"QVT(address)","0930f6db":"getFunderContribution(address)","09310c61":"MinutemanToken()","0931ce67":"getAnimalsCount()","0932c3c6":"setPriceLocked(bool)","093376fe":"getOrders(address)","09339f2e":"lastSignedTimestamp()","0933a670":"offerOff(uint256)","0933b939":"renewMembership()","0933e3a7":"setRandomContract(address)","09357344":"setBuyExchangeRate(uint256)","09358584":"stageSupply()","0935fced":"Bhinneka(address)","09362a6a":"changeOwnerTwo(address)","09366ed2":"downdoot(uint256)","0937be1a":"createFixedPeriodVpfFactory(string,bytes32,uint256,int256[],uint256,uint256,uint256)","0937e68a":"paymentCount()","0937fb36":"getEventOutcome(uint256,uint256)","09386cc6":"leggiMsg(uint256)","0938be6e":"RockScissorPaper(address)","09390af1":"getPercentageAmount(uint256,uint256)","0939e863":"shareholder()","0939f6f4":"ContractFunded(address,uint256)","093a86d3":"gateways()","093ac512":"MINCAP_TOKENS_ICO()","093ae918":"ETH_EURCENT()","093c4ee6":"getChannelBalance(bytes32)","093c5284":"migrateFrom()","093d11a1":"getLocksAmount(address,uint256)","093d5fd4":"getOperationsLength()","093e9633":"getNewDefaultPrice(address)","093f5198":"make(address,address,uint128,uint128)","09405164":"getOpenCandidates()","094111be":"FCMCOIN(uint256,string,string)","09412b53":"delBot(address,address)","09417110":"signatureBurnStatus(bytes32)","0942adbd":"getPetCardSeries(uint64)","09442d66":"getCurrentInvestments()","094455c4":"addProduct(string,uint256,uint256,uint256)","094493b9":"getAPAddresses()","0944e35d":"TimedCrowdsale(uint256,uint256)","09453628":"TokenERC20(uint256,uint8,string,string)","09478fb7":"_totalEtherDonated()","09491490":"smsVerifiedBonusBps()","0949fcfe":"setInviteCollateralizer(address)","094b94c7":"BROKER_RESERVE_SUPPLY()","094c2919":"performWrite2()","094c491b":"rewardFiboken()","094c6f98":"TokenSaleFail()","094c8bee":"unlockSales()","094ca5f2":"RemoveAuthority(address)","094cd5ee":"deletePost(uint256)","094d583b":"_newGame(string,string,uint256,uint256,uint256,uint256,uint256,uint256)","094db54b":"private_setMaxMultiRolls(uint256)","094fb864":"getCampaignBudgetById(bytes32)","09508ce4":"getReportedMatches()","0950e4ad":"_getNextPrice(uint256)","0950fe78":"setSoftCapCHF(uint256)","09518753":"calculateTokenBuyPrice(uint256)","0951b3ac":"receivedDividends()","095228b5":"unfrozenType(string)","09522d7f":"reservedAllocation()","0952c504":"requestOwnershipTransfer(address)","09533303":"setWhitelistedUser(address)","095408a7":"addCustomSecurityToken(string,string,address,address,string,bytes32)","09541d48":"disqualifyBid(address)","0954896e":"MultivestUnset(address)","09553b28":"addressDev()","0955ae99":"getAds()","09574810":"getOperationsNumber()","0957c807":"setToForking()","0957de9a":"unsoldTokensWallet()","0958ab50":"isInvestAllowed()","0958f83d":"registerName(bytes32,address,uint16)","09598dfd":"finalizeBet(uint8)","0959bd1a":"redeem(uint256,address[])","095a9983":"ETUex()","095b697b":"setClearingPriceCode(bytes)","095bbe59":"findContractByModText(string)","095bcdb6":"transfer(address,uint256,uint256)","095c075e":"guessAnswer(uint256)","095cf5c6":"setTeam(address)","095d5a70":"approveRound(address)","095daeb1":"getVoterProposal(address,uint256)","095dc5cf":"removeVIP(address)","095e360e":"getMiningWarRound()","095e596f":"AccountVoid(address)","095e89ac":"setTranslatorRate(uint256)","095ea7b3":"approve(address,uint256)","095f2f16":"tech()","0960002f":"registerAff()","09603109":"Vote_Customly(address)","09607679":"changeTest(uint256)","0960db7c":"finalizeExit(bytes32)","096191dd":"executeBeneficiary(uint256)","0962f869":"_getList()","0963415c":"getSPBalance(address)","09639373":"createZombie(string,uint256)","0963b12d":"tokenChanged(address,uint256)","0963d4b7":"mintMonster(uint32,address,string)","096437bc":"TokenTes()","09648181":"refundDeadlineTime()","09648a9d":"getState(bytes32)","0965b0b7":"fechAllForCandidateByStage(uint256)","0965be64":"managerETHbonus()","0965bf7d":"processProposals()","0965c4b2":"collectedNDAO()","0965f6ac":"superPrivilegeCost()","0965fd36":"LaxmiCoin(uint256,string,uint8,string)","09660513":"getGameById(uint256)","09663cef":"getTotalPetCardSeries()","09671f79":"tokensCount(uint256)","0967417b":"getExpectedRate(uint256)","0967cff0":"setCrowdsaleStartTime(uint256)","096835e3":"NewOraclizeQuery(string)","09688000":"makePurchaseForClient(address,address,uint32)","0968f264":"withdraw(bytes)","096908f9":"_adeptToken()","09696f1a":"tokenHardCapReached()","09699581":"setPI_edit_13(string)","0969a71f":"POCG()","096a113d":"getCipher(uint256,address)","096a3778":"placeBet(bool)","096a8ab7":"setTransactionFee(uint256)","096aadce":"ownershipTransferCounter()","096ac348":"guagua()","096b4039":"bitlumensDelivered()","096c0c27":"amountOfLovers()","096c45b1":"setGasUsed(uint256)","096c9d6f":"getStartHourglass(bytes32)","096cf33f":"onlyDeves()","096d740b":"stopWork()","096e27d9":"isBeneficiary(address,address)","096e47ca":"SetConfirmRound(address,uint8,bool)","096f4090":"minecoin()","096f4a49":"CrowdSaleFinished(address,string)","097284b2":"maxSupply_()","09738d25":"preSaleHardCap()","09745c5b":"ShariqCoin()","0974f94c":"initialize(address,address,address,address,address,address,address,uint256,uint256,uint256)","0975c338":"DKK_Omnidollar()","097694e1":"getFileByIndex(uint256)","0976e9a7":"catchMonster(uint256,uint32,string)","09772f8f":"getMembersCount()","097788d7":"ADPOWER()","09779838":"changeKeeper(address)","09787a2c":"newComment(uint256,string)","09798e2f":"currentpreicobonus()","09799c01":"stopDate()","09799ead":"recoveryToString(uint256)","0979f7f2":"wagerCardForAmount(address,uint256)","097b36dd":"createUser(bytes32,string)","097b4eea":"addToReferrals(address,address)","097b557f":"cancelAuction(uint64)","097b94d1":"mediaTokensInitialSupply(address)","097bcf7b":"getEtherOrdersLength()","097c3ead":"AddGift(string,uint256,uint32[],uint256[])","097cf31c":"MengToken()","097d44a8":"setNFTAddress(address,uint256)","097d5155":"holdTime()","097dced0":"updateLawyer(uint256,address)","097dfa2f":"placePurchaseOrder(bytes32)","097e8fad":"getTheInvestor()","097f1192":"Miners()","0980150f":"payInternal(address,address,uint256,address)","09801707":"DOWN_winRate()","09821095":"setDailyVolumeCap(uint256)","09824a80":"registerToken(address)","09828a47":"promoPause()","098300bb":"goldDecimals()","09838bd9":"maxTokensRaised()","0984f0c1":"sendMessage(bytes,bytes,bytes,bytes)","09850495":"minusFreezeEndTime(uint256,uint256)","09861b81":"flooredSub(uint256,uint256)","0986e647":"getLength(uint256)","09879962":"namehash(string)","09886649":"transfer(address,string)","0988ca8c":"checkRole(address,string)","09894422":"TokensIssuedOwner(address,uint256,bool)","098956a8":"getOldRecordInHistoryRecord(uint256)","098a7259":"addAfterValidId(address,uint32,uint128,uint128,uint32)","098a7321":"firstDueDate()","098ab6a1":"snapshotCount()","098ae858":"ReverseConfirmed(string,address)","098b939a":"isEnoughConfirmed(bytes,uint256)","098bf5de":"requestTransferOfETH(address,uint256)","098c83fe":"notContractPred(address,address[],uint256)","098dbf5c":"executeTransfer(address,uint256,address)","098deeb5":"startScoring()","098e349a":"currentRoundParameters()","098e652b":"batchCreateAsset(uint8[],uint256[],uint256[],uint256[],address[])","098e8fc4":"setOffer(address,uint256,uint256)","098eb040":"contributeFiat(address,uint256)","098ed807":"productAccountsLength()","098f076e":"isRejected(uint256)","098fb45c":"setFeeDistributionsAndStatusThresholds()","098fc010":"LylToken(uint256,string,string)","099015d9":"totalBurnedOfType(uint256)","09904c00":"depositWallet()","09905bdb":"priceForVerificationInWei()","0991bb09":"makeSperm(address)","0991f5a6":"closingTimeForCloning()","099224e9":"TrexToken()","09929628":"Contractbalance()","0992e4c3":"contributorMaxCap(address,uint256)","09931e00":"QWoodDAOToken(uint256,uint256,uint256)","09936cd6":"FLescoin(address,address)","0993e87f":"setSellingPrice(uint256)","0994257a":"BitcoinSamaritanSupply()","0994a0a0":"DSTokenTest()","09957e69":"newSale(bytes,uint256,uint256)","099583de":"PRESALE_TOKEN_IN_WEI()","09959439":"check_rhash(bytes32,bytes32)","09959a95":"JCWCToken(uint256,string,string)","0995efb5":"isChainCode(uint32)","0996a625":"MSPPlaceholderMock(address,address,address,address)","0996b4cc":"BitChordCrowdsale(address)","0996e0e5":"periodITO_mainCapInWei()","09987f3c":"checkAllRewPaid()","09989c8b":"getCfiEstimation(address)","09990611":"weiPerBtc()","09999404":"subLoan(address,uint256)","099a019d":"getBid()","099a5ab8":"lastBlock_v2Hash_uint256()","099ae6bc":"flowerAuction()","099aea0a":"isWorking()","099b9531":"contractownsthismanyP3D()","099c4c7e":"setCaps(address[],uint256[])","099c7ab2":"freePeriodEndTime()","099dccc8":"getTeamMemberAddres()","099dde07":"maxTarget()","099e0a26":"listPairs()","099e4133":"backend()","099f40a9":"throwsWhenFinalizingNotEndedSale()","09a00fb1":"IcoToken()","09a02562":"getCensored(address,uint256)","09a0307d":"tipLockCheck(bytes32)","09a0cfe4":"changeChampsName(uint256,string,address)","09a14f2e":"linkSelf()","09a2b4ad":"asmSymbol(address)","09a38873":"purchaseTokens(uint256,address,uint256)","09a38f26":"feed100AndPay(uint256)","09a39777":"projectWorkStarted()","09a399a7":"personAdd(string,int256,int256,string)","09a3beef":"setTokenURI(string,uint256)","09a44334":"changeElection(uint256,uint256,uint256)","09a547bd":"approveAndCall(address,uint256,bytes,string)","09a555c0":"setIcoStart(uint256,uint256)","09a55b65":"votePreProposal(uint256)","09a69f57":"getRewardAmount()","09a71a00":"addTask(bytes,uint256,uint256,address,uint256,uint256,uint256)","09a71ffb":"feesProfitDeposit()","09a7dbb4":"CollectReturns()","09a7dd17":"PRE_ICO_SINCE()","09a8d3f5":"oneEth()","09a94a3d":"_initiateClaim(string,bytes32)","09a97b6f":"_getCategoryIdx(uint256)","09aa3dcf":"maxTokenPurchase()","09aa69c2":"cancelFlight()","09aa7b67":"_mint(address)","09ab5008":"ISeeVoiceToken()","09ab8a03":"privateEndTime()","09ab8bba":"delegateAllowance(address,address)","09aba9ab":"ETHWalletCreated(address)","09ac3b00":"remainderWallet()","09ad1c47":"getUserPayoutBalance(address)","09ad8eef":"TBSTK1()","09ad8f7e":"getNumChildOperation(bytes32,uint8)","09ad9dd3":"BASE_PRICE_IN_WEI()","09ae2943":"stage_3_TokensSold()","09ae9452":"PreICOProxyBuyer(address,uint256,uint256,uint256,uint256)","09aea85f":"getMaxTradeAmount()","09af014f":"refillBalance()","09af4b1e":"IoexCoin()","09af8ffe":"guessAnswer(bytes32)","09b0245f":"Long()","09b0ce3c":"DCVToken()","09b13db0":"fundraisingReservation()","09b17085":"___proxyOwner()","09b22a4d":"allowAirdrop()","09b230cd":"getPriceSpeedTokenBlock()","09b258f7":"exchangeRateIco()","09b2996a":"originalRate()","09b30ed5":"afterExecute(address)","09b481b0":"LIABILITIES()","09b565f3":"updateTicketSum(address,uint256)","09b5e4ad":"ProxyBuy(bytes32,address,uint256)","09b637bc":"_founder()","09b70ad0":"sellGenes(uint256,uint256)","09b7c704":"addIdArrayItem(address,uint256,string,string,address)","09b86f84":"getPonziFriend(address)","09b8e3cc":"ValidateExec(string)","09b8f77a":"proposedRecoveryKey()","09ba4a4a":"registerEmail(string)","09bb03b4":"isChemistry()","09bb317d":"FredToken()","09bb7162":"createGateway()","09bb9267":"getDev()","09bb9b04":"isEtherSpaceBattle()","09bc1812":"setVerificationPeriod(uint256)","09bc4096":"developersTokensPercent()","09bc4933":"freezeof(address)","09bc90a4":"PerlToken()","09bd1d41":"testF1(uint256)","09bd3894":"SendTokens(address,uint256)","09bd5a60":"hash()","09bd98a4":"getNumAds()","09beb01b":"feed50(uint256)","09bf284c":"unanchor()","09bf6e42":"futureSaleVault()","09c0f771":"getScoringMask(bytes8)","09c110a1":"gzeFromEth(uint256,uint256)","09c12ccb":"getNextPaymentDate()","09c1a4b9":"totalIssuanceData()","09c25e6c":"FinishedExporting()","09c2b7f8":"MINCONTRIBUTION()","09c38bc8":"isAuctionManager()","09c4a273":"isVetted(address)","09c4bb2b":"releaseTime(uint256)","09c4f8be":"GetContractStateTerminatedOK()","09c51b4e":"assertSaneHTLC(uint256,int256)","09c5eabe":"execute(bytes)","09c5eb76":"getBalanceOfLogicContract()","09c62a1b":"ONECToken()","09c62c5c":"vanbexTeamAddress()","09c71690":"tokenFallbackBuyer(address,uint256,address)","09c72b26":"bonusInPhase6()","09c76571":"operationAt(uint256)","09c922e6":"setOracleGasLimit(uint256)","09c975df":"getCallContractAddress(bytes32)","09c99d10":"_stalemateTransfer()","09ca4b76":"getCurrentPriceAuction(uint32)","09ca60c1":"createLambo(uint256,address,uint64)","09cb22d5":"betFeePerMil()","09cc4f95":"increaseTS(uint256)","09cc5551":"topUp(string)","09ce4a91":"RLCPerSATOSHI()","09ceb7be":"icoAmountBonus2()","09cf0329":"StarterKit(address,address,address,address,address)","09cf8766":"grantPrivatePurchaserToken()","09d02b74":"getRamdomness()","09d03d90":"FounderUnlock(address,uint256)","09d0b12e":"ViewMyTokens(address)","09d0bb66":"NeodiumNetwork()","09d11c1d":"ZhangToken()","09d2100d":"ADEToken(uint256,uint256)","09d256fe":"getPresaleRate()","09d2d0b9":"setServiceAccount(address,bool)","09d31d8d":"addPerson(bytes32,address)","09d33f1d":"addRequest(address,uint256)","09d37704":"pushIssuer(address)","09d3cbda":"setUpdateDelay(uint256)","09d451ab":"calculateEthersAmount(uint256)","09d45f1d":"_deleteString(bytes32)","09d46057":"IcoStageStarted(uint256)","09d54b21":"checkAddressTransfer(address,uint256,address)","09d60069":"trade(int256,int256)","09d60db1":"claimedTokensWallet()","09d64774":"DevForceOpen()","09d6796f":"our_transferFrom(address,address,uint256)","09d6b0a3":"transfer(address,uint256[],uint256[])","09d6d33a":"NewCup(address,bytes32)","09d74cc5":"createJockey(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","09d77ad3":"Next(bool)","09d78e32":"ETCLocking(address,address)","09d78fba":"assertEq4(bytes4,bytes4)","09d7ab7a":"convertGene(uint8[7])","09d7e9ca":"decodedAsset()","09d84fc4":"bindingSmartIdentity(bytes32)","09d87ab5":"isAddressAuthorized(address,address)","09d89784":"TradeNetCoin()","09d8da2e":"isLock()","09d929d6":"releaseLockFounders1()","09da52a2":"greet(address,string)","09da56c1":"getBoardBalance(uint256)","09db5d29":"notUsedToken()","09dba083":"GC()","09dc66af":"GT(uint256,string,string)","09dd0e81":"getBlockchainHead()","09dd1761":"attachPreOrder(address)","09dd7b3e":"paySize()","09ddc583":"getPropertyData(uint16)","09de4148":"getWinPercent()","09de92d0":"RENEE()","09df06b7":"TIE()","09df3248":"publicGetParticipants(uint256)","09df5060":"logoutUser(address)","09dfdc71":"currentPyramidBalanceApproximately()","09dfe330":"_checkItemId(uint256)","09e0a77c":"totalIco()","09e0a9eb":"batchBid(uint256[])","09e1a1f7":"PresalePurchase(address,address,uint256)","09e1c751":"CDPer()","09e24516":"ZepCloud()","09e25141":"bidInAuction()","09e2f193":"addVerificatorAddress(address)","09e419d1":"withdrawLongTermFoundationBudget()","09e587a5":"homicide()","09e6a0ed":"EASTADScredits()","09e76161":"getVideoGameDetails(uint256)","09e785e1":"payoutInterval()","09e7d837":"reachGoal()","09e7ec7a":"getInt256Max()","09e8046a":"fullfillAdvisors()","09e91cfb":"tokenUnits()","09e979e6":"getSquarePriceAuction()","09e9976d":"MetadataUpdated(address,uint256,string)","09e9c325":"createBooking(uint128,uint128,uint32,uint32,uint256,address)","09e9d7e2":"removeCandidate(uint256)","09e9e85b":"readAllUsers()","09ea63e3":"recoverPreSigned(bytes,bytes4,address,uint256,bytes,uint256,uint256)","09ebcd64":"getLockedUserInfo(address,address)","09ec6cc7":"cancelTrade(uint256)","09ece618":"initiatable(bytes32)","09ecf413":"updateFoundAddress(address)","09ed1782":"withdrawCredits(uint256)","09ed4607":"clone()","09ed5022":"checkFileNamespace(string,bytes32)","09ed5673":"getScouponTransferCost()","09edf3ca":"x_Header()","09ee3e2a":"Global_Currency_Reserve()","09ee75a2":"documentIt(uint128,uint64,bytes32[],string,string,string)","09eecdd7":"isValidBet(uint8,uint256,uint256)","09eef43e":"hasVoted(address)","09ef7085":"is_name_used(bytes32)","09efcb8d":"fiatDeposits()","09f03da2":"getCurrentTimeRate()","09f0fe0d":"lamdenTau()","09f14a20":"addBuyerSig(string,string)","09f14e7e":"ownerSetExchangeRateInWei(uint256)","09f28927":"Crowdsale(address,address,address,address,uint256,uint256,uint256)","09f29d1b":"retrieveTokens(uint256)","09f2b6a9":"TokenBCC(uint256,string,string)","09f30eac":"unitTestSetRewardLevels()","09f32957":"lastCreditorPayedOut()","09f3ad26":"calcBonus(uint256)","09f4614d":"product1()","09f4fc61":"addReferral(address,uint256)","09f580b0":"Bolivar()","09f5ca99":"GLBToken()","09f64d2e":"isIcoPaused()","09f68e96":"setPrivateSale(address)","09f6c607":"currentEthBlock()","09f70d2e":"getRequestHash(bytes,address[],uint256)","09f767e0":"deathFactor_iv()","09f80dd9":"feerate()","09f8477a":"getRandom(uint128,uint256)","09f8cc58":"upgradeAgentLocked()","09f90127":"fallback(address,bytes)","09f92a6a":"wordSize(string)","09f9630f":"BETHToken(address)","09f9b3c5":"getGrantBalance()","09fa6f96":"wpTokensBaskets()","09fa90b3":"globalLocked()","09fb1668":"changeMaxBetCoinDice(uint256)","09fba360":"alreadyHarvestedTokens()","09fbb22c":"decreaseGlobalInterestAmount(uint256)","09fc1ae0":"getCallTable(uint256)","09fc3c53":"burnWarrior(uint256)","09fc7046":"bytesToBytes2(bytes)","09fc8f6d":"isTokenUpgraded(bytes32)","09fc93c1":"getBalanceOfWei(address)","09fca951":"accumulated_from()","09fcda87":"PayPerView()","09fd018e":"setClaimer(uint256,address,uint256)","09fd8212":"isInWhitelist(address)","09fe5fbd":"CoinPaws()","09fe89c8":"privateBuyer()","09ff453a":"PFS()","09ff4b75":"Redenom()","09fffec0":"transferToAdmin(uint256)","0a0078bc":"unSet(address,address)","0a00840c":"challenge_period()","0a0092bf":"LakersvsRockets()","0a00ee41":"INNOToken()","0a0155e5":"passed(uint256)","0a01ad4d":"processWinner()","0a01ae41":"Supernova()","0a01bc2f":"WhitelistAddressisListed(address)","0a02037b":"girlOps()","0a0209d0":"soldTokensOnPreIco()","0a027825":"currentUnit()","0a0279f8":"determineDiscountTranche()","0a0313a9":"iterateValid(uint256)","0a0352d5":"_getOwnerNFTCount(address)","0a04dde8":"ThanosXToken(uint256,string,uint8,string)","0a0513da":"IEOEnded()","0a06f35e":"setBonusesForAmounts(uint128[],uint32[])","0a075a32":"spawnNewZeroCard()","0a07eadd":"systemWalletsMint(uint256)","0a07f3d8":"contains(uint8,uint8)","0a084473":"tokenPerEth()","0a08de75":"isContruibuteOpen()","0a0900a1":"buyXname(bytes32,uint256,bytes32)","0a09284a":"endsAt()","0a09815c":"presaleTokens()","0a0a2876":"killVesting()","0a0a876f":"stopSetPrice()","0a0b3139":"testFailOnFailedTransfer()","0a0c5e0d":"addSignature(string,string)","0a0c75aa":"setEmployeeSalary(uint256,uint256)","0a0cd8c8":"setupDone()","0a0d5509":"computeTimeBonus(uint256)","0a0e3c76":"nextMintFeeProp(uint256)","0a0e7883":"nDelegations(bytes32)","0a0e78e3":"addNOSPackage(uint256,uint256)","0a0f8168":"ceoAddress()","0a0fac2b":"isProxyOrSender(address)","0a0fb66b":"transferPreSignedHashing(address,address,uint256,uint256,uint256,uint256)","0a10376f":"newReplyEvent(uint256,uint256,string,string,uint256)","0a107ac3":"setPI_edit_19(string)","0a10df7c":"bookingId()","0a114a70":"extendExpiration(uint256)","0a12a7a0":"LogContribute(address,uint256)","0a12c89e":"BTImint(address,uint256)","0a12c90f":"AddNewChallenge(uint256,uint256,uint256,uint256,bool,string)","0a1432f7":"openResult(uint256,uint8[])","0a14504c":"participate(bytes32)","0a14849e":"setOpenBetIndex(uint256)","0a15299b":"TourCash(uint256,string,string)","0a15a07f":"removeUnicorn(address,uint256)","0a15d3a8":"ETFT(uint256,string,string)","0a16605e":"receiveSpendingDeposit(address,uint256)","0a16697a":"targetBlock()","0a16916a":"RESERVE_POOL_TOKENS()","0a16a53f":"setCitizen(address)","0a16e225":"getrestrict(address)","0a16efc0":"_addCommittedValidator(uint256,address)","0a17d422":"isZero(uint256,string)","0a1856db":"Billing(address,address)","0a18c334":"Denar()","0a18edfa":"returnCouponProportion(address[3],bytes32)","0a18f6c1":"playForcibly()","0a19283c":"_createCryptsy(uint32,uint32,uint32,address)","0a1930b7":"LogDonation(address,uint256,uint256)","0a193612":"setCountry(address)","0a19b14a":"trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256)","0a1a677e":"searchtickets()","0a1a802e":"MatchPay()","0a1ab7fc":"arrayOfAccountsThatHaveClaimed(uint256)","0a1ceb0e":"usableBalances(address)","0a1dfb5a":"nextNextBid()","0a1e3a2c":"publishExecution(string,string,string,string,string,string)","0a1e71de":"isIco(uint256)","0a1e7701":"AtraOwner()","0a1e7a89":"getStudentRequest()","0a1e9f5e":"TokensOut()","0a1f0d9b":"reCap(uint256)","0a1f194f":"removeTrader(address)","0a1f5862":"minedTokenCap()","0a1f868c":"fuint256a(uint256[])","0a20aba4":"investOtherCrypto(address,uint256)","0a213e5b":"TWIMToken()","0a2282ae":"JackPot()","0a22ee73":"accountExists(address,uint8)","0a24c5bb":"yearlyMintCap()","0a262f48":"setPreActiveTime(uint256)","0a276680":"transferOwnership(address,uint256)","0a27813d":"finalizedHoldingsAndTeamTokens()","0a28c664":"tokensOfWithData(address,uint256)","0a298034":"getFreeBulls()","0a29f508":"uploadSignedString(string)","0a2a9a01":"addWallet(address,uint256)","0a2ad0f3":"resetState(address)","0a2c0c65":"getAvailableVolume(bytes)","0a2cafac":"BPRchain()","0a2d31ad":"addToOptionChain(uint256,uint256[],uint256[],bytes32[],address[])","0a2d7629":"month12Unlock()","0a2d967b":"stopThisIco(bool)","0a2df1ed":"callSender(bytes4)","0a2eb301":"isAdministrator(address)","0a2ebc39":"NVISIONCASH()","0a2fd551":"ValidateKey(address,bytes32)","0a323fd0":"Boardcoin()","0a33cd41":"seIcoAddress(address)","0a35a7b1":"saleTierList()","0a36645f":"getShopOwnerProductList(string)","0a377f3a":"reserveKNCWallet(address)","0a384665":"maxTokensAmount()","0a38b400":"intermediadorAprovaDevolucao(bool)","0a394245":"doesReferralCodeValid(string)","0a39e222":"transferFromReserve(uint256,address)","0a3a0531":"manualContribution(address,uint256)","0a3b0a4f":"add(address)","0a3b1cd2":"setHotwallet(address)","0a3b7d9b":"TokenMacroansy()","0a3c000d":"buyerSymbol()","0a3c3088":"ARIZONE()","0a3c34fb":"successfulTransactions_()","0a3c4dbe":"merculetPrice()","0a3cb663":"freezePeriod()","0a3d7cce":"assertEq27(bytes27,bytes27,bytes32)","0a3dfba7":"giftCharacter(address,uint8)","0a3dfd10":"KittenTalked(string)","0a3e5712":"revokeWithdrawConfirmation(uint256)","0a3ecdfe":"drawNumbers(uint32)","0a3f013f":"releaseTimestamp()","0a3f5897":"placeBetEth()","0a401086":"operational()","0a402742":"allocateNormalTimeMints(address,uint256,uint256,uint256,uint256)","0a402a32":"LadaToken(uint256,string,string,uint8,address)","0a40878a":"EXSCoinSeller()","0a40f15f":"fundDeal(string,address)","0a40fb8c":"permissionMarker(address,bool)","0a412ae4":"aboveMinimumPurchase()","0a41442f":"setNewWallet1(address)","0a41dfee":"cancel_face_proof_request()","0a425a33":"getTreeIds(address)","0a42f86f":"getFrequency()","0a44b9cf":"amountIAmOwed()","0a4543ec":"MonoretoToken(uint256)","0a4625af":"totalEthers()","0a4655dd":"insert(bytes32,address)","0a46706b":"toCom(uint256)","0a47185d":"calcNav(uint256,uint256)","0a4740ff":"disableSale()","0a47a7a6":"mutiTransfer(address,address[],uint256[])","0a48dcb3":"appendUint8ToString(string,uint8)","0a49646b":"CreationRate()","0a49dece":"getDevelopmentFundBalance()","0a49e536":"getPoolAmounts(uint256)","0a4a3f0a":"GetConfirmRound(uint32,uint8)","0a4a57bc":"contain(uint256[],uint256)","0a4bb260":"buyItemAndApply(string,uint256)","0a4bfa6d":"IMDEXwithdrawToken(address,uint256)","0a4c374a":"birthPerTen()","0a4c6a45":"TEAM_UNFREEZE()","0a4caed0":"getChannelByRank(address,uint256)","0a4d564c":"TieUpLooseEnds()","0a4d7cd7":"setUserIdentityDocs(string)","0a4da2d4":"MyAdvancedTokenV2(uint256,string,string)","0a4dea01":"VETRI(uint256,string,string)","0a4fa201":"View_TrustlessTransaction_Status(uint256)","0a50e361":"generateNumberWinner()","0a513bc7":"CMBUpgradeableToken(address)","0a518754":"periodICOStage4()","0a52d194":"payCommission(address,uint256,uint256)","0a55fbfe":"getMember(address,address)","0a56094d":"AriesToken()","0a56293d":"lockTokens()","0a564a03":"rateRound2()","0a569e8a":"currShares(address)","0a56a5f3":"nfsPoolLeft()","0a597da7":"impl_additionalRewards()","0a5988a8":"Term()","0a59b81b":"mesasCreated()","0a59bf2d":"setPersonalisationCost(uint256)","0a59c66e":"AuctusTokenVesting(address,uint256,uint256,uint256)","0a5a00c1":"recovery(address,address,uint256)","0a5a1e9a":"withDrawTips()","0a5a4e17":"AMBASSADOR_STAKE()","0a5a5b11":"releaseSecond()","0a5ab11d":"vestingWallet()","0a5ccb2a":"reclear(address,uint256,uint256,uint256,uint256,bool)","0a5cced2":"bookRoom(string,uint256[],uint256,address,bytes32,uint256,bool)","0a5cf9bb":"NeuralControl()","0a5dc24d":"getAuthorisationStatus(address)","0a5dc5a9":"blockMessagesFrom(address)","0a5de7bb":"midOf(uint256)","0a5ee9b0":"StakeReleased(uint256,uint256,address,bytes32,uint256)","0a5f558e":"mintInitialSupply(uint256[],address,address,address)","0a5f80f4":"publicAddDeposit(address,uint256)","0a6076b3":"SellableFund(uint256)","0a612095":"replaceToken(address[])","0a6184ce":"oneHundred()","0a623a11":"determineOutcome(uint8[],uint8[],uint8[],bool[],uint256)","0a62db33":"YToken(uint256,string,string)","0a639726":"oldPriceChangeBlock()","0a639ed1":"safeDiv_dec(uint256,uint256)","0a63ae38":"NukeContract(address)","0a64143a":"totalWithdrawn(address)","0a642d00":"retrait_3()","0a64bdb1":"_verifyOptionPoolDefray(address)","0a66d698":"isSealed(address)","0a67d2c7":"withDraw(address)","0a67dfbb":"setTeamTokenHolder(address)","0a681f7f":"NEXT_POT_FRAC_BOT()","0a68f374":"getATitty(uint256)","0a692347":"withdrawBack()","0a6a3f00":"B3nsToken()","0a6aec63":"cloneActiveToPlayed()","0a6b378c":"pushTokenId(uint256)","0a6be0e7":"BalancedPonzi()","0a6bea46":"principle(string)","0a6c0642":"frozenPortions(uint256)","0a6ee71a":"VISTACrowdSaleP1(address,address)","0a6ee947":"lockupContract()","0a6f2fbb":"setAllowDrawETH(bool)","0a6f5d8e":"_jackpotTax(uint256)","0a6fbb05":"SetPass(bytes32)","0a703549":"__forward(uint256)","0a70c0fd":"getTogglePrice(uint256)","0a70cae0":"getBalance2()","0a71943f":"PresaleToken(address)","0a71d020":"adjustFeaturePrice(uint256)","0a720fa9":"MemberSoldToken(address,uint256,uint256,uint256,uint256,uint256)","0a7258d8":"setNameWriterId(address,bytes32,bytes32)","0a728b85":"MakeSellOrder(bytes32,address,uint256,uint256,address)","0a732dac":"getCrowdsaleAddress()","0a7354d9":"getOwnedShipsByAddress(address)","0a738326":"Whitelist(uint256,address,bool)","0a738559":"AitasChain()","0a73f7c4":"GNNM(uint256,string,string)","0a740f74":"checkDatesPayment(address,uint256)","0a7493b4":"Etheropt(uint256,string,uint256,uint256,bytes,address,int256[])","0a74a181":"updatefundendtime(uint256)","0a756f09":"StorageFund()","0a762b42":"PROMETHEUS_VOUCHER_PRICE()","0a766cfa":"sellCommission()","0a77b078":"Exchange()","0a77c3ed":"saleDuringRefundPeriod()","0a781bf4":"iCASH()","0a78e560":"PlayerNeedRefresh(address,uint256)","0a790e19":"MAX_ATHENIANS()","0a790eb7":"services(bytes32)","0a798f24":"openChannel(address,address,uint256)","0a799557":"setStartRefund(bool)","0a7a0807":"evaluateBet()","0a7a1c4d":"action()","0a7a2fef":"emitCapabilityRemoved(address,bytes4,uint8)","0a7a37bc":"setMonkey(string)","0a7a783a":"addOrg(address,address,string,string,string,string,uint8)","0a7a8c0a":"ItemMarket()","0a7c1922":"bitexlive()","0a7c1c35":"mItems(uint256)","0a7c1e9f":"NebeusToken()","0a7cf2aa":"weiHardCap()","0a7d29aa":"checkFunding()","0a7ead50":"_processPresalePurchase(address)","0a7f4239":"getAccountFundContract(address)","0a7f565f":"Intermediary()","0a7f734e":"_processTx(address,uint256)","0a7fb746":"removeMilestoneFrom(address,uint8)","0a7fc3df":"Sentivate()","0a80e725":"isReserveSupplyAssigned()","0a80ef45":"getIsClosed()","0a811fcc":"DigitalPesoCoin()","0a82f06b":"deleteCoverImage(uint256)","0a82fd1c":"deletePortfolio(uint256)","0a834ac0":"START_TGE()","0a85107a":"LogTransfer(address,address,uint256)","0a85bb25":"isAuthorized(address,address,bytes)","0a864240":"TMBCStandardToken(uint256,string,uint8,string)","0a866f3a":"addThing(string,bytes32,bytes32,string)","0a86f644":"test_0_testBasicTxExecution()","0a87391c":"investorsAccounts()","0a874df6":"lookup(uint256)","0a87557c":"ICO_END_TIME()","0a883790":"payrollCount()","0a888a63":"operation_address(uint256)","0a8972f9":"LoveAirCoffee(uint256)","0a898428":"nodesVars()","0a89e0aa":"switchModeSoOnlyEmergencyStopsAndEscapeHatchesCanBeUsed()","0a8a2485":"invite(address,bytes)","0a8b88f6":"SECOND_VOLUME_BONUS()","0a8bcdb9":"withdrawFromReserve(uint256)","0a8c138e":"NAABHAToken()","0a8c1551":"EtherAsset()","0a8d032d":"QuantumToken()","0a8d5fb8":"techProvider()","0a8e891f":"Medcash()","0a8e8e01":"test3()","0a8ed3db":"grantPermission(address,address,bytes32)","0a8f8fb9":"advisersReserve()","0a8fed89":"setup(uint256,uint256)","0a90011f":"setStatus(address,uint256,uint8)","0a90c704":"createCommunity(string,string,string,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)","0a9110b2":"NewDataRequest(uint256,bool,string)","0a919e3c":"QUEENTEN()","0a91cad0":"nextReleaseDate()","0a91f2a5":"get_owner_of(address)","0a9254e4":"setUp()","0a92b264":"getRandom(address,uint256,uint256,uint256)","0a934b9d":"mainSaleAllocations(address)","0a94031c":"GigaProfitIn(uint256,string,string)","0a94ece7":"nextUpgradeAgent()","0a95011e":"getCreateMarketNumTicksValue()","0a95c49d":"closeOutSweeps()","0a95dbfa":"approveUser(address,bytes32)","0a9626ba":"setLiqPrice(uint256)","0a968d5e":"issueFirstRoundToken()","0a979511":"gcExchangeRate()","0a9848ac":"setAdminlist(address,bool)","0a986540":"chinainc()","0a988892":"saveCurrentArbitrationFees(address,bytes32)","0a9a70c0":"changeDevFeesAddr(address)","0a9a7842":"logAllStop()","0a9aa521":"callAMethod1(uint256,uint256,uint256,uint256)","0a9ac3d0":"getMarketerAddress(bytes32)","0a9ae69d":"bb()","0a9d4e95":"_buy(uint8,bytes6,uint32,uint32)","0a9de288":"distributeTokens(address,address,address,address,address,address)","0a9e24c1":"addBurnWallet(address)","0a9ef927":"newTimeLockedWallet(address,uint256)","0a9fc06f":"verifyProposal(bytes32,address,address,uint256,bytes32,string)","0a9fec36":"sPeriodSoldTokensLimit()","0a9ff623":"voteUID()","0a9ffbf9":"confirmDividend(uint256)","0a9ffdb7":"allocateToken(address,uint256)","0aa0903c":"MINIMUM_PRESALE_PURCHASE_AMOUNT_IN_WEI()","0aa0bd00":"getPartyB(bytes)","0aa0fbe5":"netContractBalance()","0aa1ae29":"SMCT()","0aa1ee4c":"membersWhiteList()","0aa20e73":"multiTransfer(address,address[],uint256)","0aa24f50":"adjustInvestorCount(address,address,uint256)","0aa28f09":"splitInService()","0aa2b673":"cumReqMarbles()","0aa2bbaa":"lastWillAccount()","0aa2bf7f":"test_26_assertGasUsage2000Boards()","0aa34c7c":"updateJMAmount(uint256)","0aa3ae7e":"refill(address,uint256)","0aa46c12":"testClearBitFailIndexOOB()","0aa5418f":"IrfanFr()","0aa56368":"claimSocialNetworkIdentity(uint256,uint256,address,uint8,bytes32,bytes32)","0aa59fe3":"miningFivePlat()","0aa5aa2d":"transferAndNotify(address,uint256,uint256)","0aa6d45d":"oraclize_randomDS_proofVerify__main(bytes,bytes32,bytes,string)","0aa7881a":"MintableToken(int256,uint256)","0aa79fc6":"refundParticipant(address)","0aa83f5a":"consume(uint32,uint32)","0aa86791":"NujaBattle()","0aa93fff":"updateBytes32s(bytes32[],bytes32[])","0aa9a4fb":"payPrize(address,uint256,uint8,uint256,uint256,uint256)","0aa9c58b":"fillOrKillOrder(uint256,bytes)","0aaa9e46":"TNT()","0aaba432":"salesVolume()","0aac1073":"getSwapOutgoing(uint256)","0aac5dfd":"getAssetsCount()","0aac8034":"prizeWinners()","0aad1f3b":"fechSumNumForCandidateByStage(address,uint256)","0aae7a6b":"info(address)","0aaef916":"addManyWhitelist(address[])","0aafa40e":"IOVOToken()","0aafefb8":"QPay()","0ab03e1b":"testControlRegisterContractAgain()","0ab0c6c8":"getWinnablePot(uint256)","0ab174a3":"untrack(uint256)","0ab21db7":"sencEthRate()","0ab2a9b8":"modifyJurySize(uint256)","0ab3bb1b":"totalFundingGoalInIBC()","0ab41690":"_forfeitShares(address,uint256)","0ab44f74":"AllNewsCash()","0ab4846c":"rewardLast7Draw(uint256)","0ab4c065":"subdomainOwner(string,string,string)","0ab4ca55":"registerNameXaddr(string,address,bool,uint8)","0ab4debd":"shortBuy()","0ab51bac":"aum()","0ab58ead":"SingularDTVFund()","0ab5bed4":"platformWithdrawAccount()","0ab66be3":"paySubscription(address)","0ab68776":"addDiscount(uint256,uint256)","0ab6ead5":"Ended(address,uint256)","0ab6fb36":"capitalPoolOf(address)","0ab6ff19":"addFullFundTX(uint256,uint256)","0ab757df":"withdrawEIP777(address,address,uint256)","0ab763d0":"polyCustomersAddress()","0ab77095":"assignUnitRafflePrize(address)","0ab7ec3a":"rejectProject(address)","0ab84ed9":"pivx()","0ab85a10":"getTotalRewards(uint32)","0ab880e5":"resumeBuy()","0ab8afac":"auctionContract()","0ab9059c":"OrphanToken(address)","0ab93971":"GetCount()","0ab9419d":"addint256(int256,int256)","0ab9db5b":"banker()","0aba73d7":"getDealById(uint256)","0aba8ec2":"brokerImp()","0aba980f":"unblockFundsInEscrow(address,uint256,address)","0abb691b":"buynode(uint256)","0abb8409":"getPoolETHBalance()","0abbf2de":"TeamLocker(address,address[],uint256[],uint256)","0abcbbcd":"makeShitClone(address)","0abd171b":"setinfo(string,string,string,address)","0abd2ba8":"tokenPause()","0abe293d":"addRefiller(address)","0ac0b31f":"calculateMultiplierAndBonus(uint256)","0ac10c0d":"createVesting(address,address,uint256,uint64,uint64,uint64)","0ac153ac":"lockMax()","0ac168a1":"blockReward()","0ac1a281":"CapRevealed(uint256,uint256,address)","0ac25e1a":"createPromoClown(uint256,address,bool)","0ac28725":"requestTradeDeal(uint256,uint256,string)","0ac298dc":"get_owner()","0ac2a1c7":"bonusDeliverTime()","0ac2ae27":"MarketContractOraclize(string,address,address,uint256[5],string,string)","0ac2ffc5":"getMiniByOwner(address)","0ac313e0":"setPlatAuction(address)","0ac3ccc4":"calcBUYoffer(uint256,uint256)","0ac42534":"isCancellable(address)","0ac50a6e":"CPCToken(uint256,string,uint8,string)","0ac51bd7":"getTimestampsFromPublishers(address[],string[],int256[],int256)","0ac5a67f":"paymentGateways()","0ac5f441":"paySellerForBuyer(uint256,address)","0ac62e02":"emergencyStop(bool)","0ac67e2f":"getLowPrice()","0ac7366b":"IRONtokenSale(uint256,uint256)","0ac799ff":"_transferXToken(address,address,uint256)","0ac7c7ba":"getBalanceMessage(address,uint32,uint192)","0ac8dc61":"GetLandId(uint256,uint256)","0ac924a0":"Minter(uint256,address)","0ac94000":"executeRequest(uint32)","0ac96103":"getBaseUrl()","0ac9bb29":"nextSeedHashed()","0ac9d35f":"_getRandomNumber(uint256)","0aca08ca":"closeGiveAway()","0aca7403":"process_swap(address,address,uint256)","0aca9de0":"placeLong(address[2],uint256[7],uint8,bytes32[2])","0acaad4c":"getWeiContributed(address)","0acae9a7":"publicEnd()","0acb4c28":"activateOracle()","0acc4382":"getMinDailyWithdrawLimit()","0acdc3ef":"_Doihave(uint8)","0acdd69f":"TOTAL_SOLD_TOKEN_SUPPLY_LIMIT()","0ace8c9a":"addPackage(string)","0ace9469":"setmaxContribution(uint256)","0acf0b8e":"admin_add_modify(address,uint8)","0acf473b":"AdminCloseContract()","0acf4b0b":"createPromoToken(address,string,uint256)","0ad0a0f3":"setPurchaseValues(uint256,uint256,address,bool)","0ad137c4":"Provide(address,address,address,address)","0ad182bc":"getTickets(address)","0ad1c2fa":"getContract(address)","0ad2074c":"logFailedSweep(address,address,uint256)","0ad20914":"getRequestByRequesterAddress(address)","0ad23aad":"getNumberOfRatingForAddress(address)","0ad24528":"end(uint256)","0ad27798":"depositPresale(address,uint256)","0ad40377":"KYCPresale(address,uint256,uint256,uint256)","0ad40df1":"setConfiguration(uint256)","0ad4b97b":"fibonacciIndex()","0ad50c02":"buyPropertyInETH(uint16)","0ad54c03":"playerRefundBet(bytes32)","0ad59fa2":"CocaCola()","0ad63730":"virtuePlayerPoints()","0ad65128":"logPresaleResults(uint256,uint256)","0ad6aa28":"currentstagedata()","0ad6ac85":"pay(uint256,uint256,address)","0ad7f29f":"CampaignManagerContract(address,address)","0ad80f41":"WorldTrade(uint256,string,string)","0ad95b44":"bribery()","0ad98d71":"showTotal()","0ad9cf6f":"_resetTransferredCoinFees(address,address,uint256)","0ad9d052":"model()","0adaa7bf":"expireAssociate(address)","0adae972":"detailsOf(address)","0adb1354":"RimuoviProfessore(address)","0adcaddc":"iterate_valid(uint256)","0adcdbaa":"redeemRate()","0add0baa":"maxInvestments()","0add8140":"pendingProxyOwner()","0adde487":"getPurchaseLimit()","0ade4942":"tokenPriceProvider()","0ade7142":"terminateDirectDebit(address)","0ade9429":"getNext(uint256,address,uint256,uint256,uint256)","0adeb700":"changeQuarterlyRate(bytes32,uint256)","0adf331b":"stateSuccess(uint256)","0adf7912":"TokenDestroyed(uint256,address)","0adfb4e2":"Elemental()","0adfba60":"callSelf()","0adfdc4b":"setAwardedInitialWaitSeconds(uint256)","0ae08793":"confirmAndCheck(bytes32)","0ae100d8":"addOrganFunction(address,string)","0ae1b13d":"post(string,string)","0ae1fac0":"startICOStage4()","0ae25ca3":"withdrawToTeamStep4(uint256)","0ae31fbd":"setDistrictAddress(address,address)","0ae32e72":"ZhangHongBinToken()","0ae50a39":"GetOwner()","0ae5e739":"grantAccess(address)","0ae66820":"getBuyCost(uint256)","0ae75eb8":"amountOfBRAsold()","0ae7a310":"tokenMeta(uint256)","0ae80c37":"kickStartMiniICO(address)","0ae870bd":"Mjolnir()","0ae8f28f":"getProposalTextArrayLength()","0aea47bc":"getTimer(uint256)","0aeacb5e":"getTotalRecords()","0aeb0f79":"UserCategorySet(address,uint256)","0aeb1552":"insertStrategy(bytes15,address,uint256,string)","0aeb4b26":"WorldCupControl()","0aeb6b40":"register(address,bytes,uint256)","0aebeb4e":"close(uint256)","0aeccc9c":"setScribe(address,address,string,string)","0aece23c":"getFeeAmount(int256)","0aed3c36":"testIsCase()","0aed3ca1":"getLoans(uint256)","0aed5a21":"NamiExchange(address)","0aed80f2":"secondSellPrice()","0aed8e72":"rotate(uint256,bool)","0aed9c45":"TicketsSoldForThisGame()","0aef8500":"amountFundAirdrop()","0aef8655":"PXLProperty(address)","0aefc573":"KyberHandler(address,address)","0aeffa65":"ETH_MIN_GOAL()","0af15f6e":"stopSellingGenes(uint256)","0af179d7":"setDNSRecords(bytes32,bytes)","0af1fe11":"getAllPRS()","0af23be2":"ETHERREDSupply()","0af39032":"testMintThis()","0af3e660":"getHolderId(address)","0af4187d":"getAllowance(address,address)","0af4626d":"testRetract()","0af4cd61":"setHalted(uint256)","0af658ca":"personUpdateActivity(uint256,bool)","0af6c9ff":"setColdWallet(address,uint256,uint256)","0af6f6fe":"changeAgentPermission(address,uint8)","0af72ad0":"isStrategy()","0af825da":"_transferInternal(address,address,uint256,bytes)","0af8bd95":"TIDAChain()","0af95750":"deactivateProject(address)","0af9d89c":"getPaintingGeneration(uint256)","0afa371d":"XMAX()","0afa6dde":"getAddressLost(address)","0afa9fb9":"contains(int256,address)","0afb9f1f":"getProposalByIdIteration(uint256,uint256)","0afc0a59":"computeTokens(uint256,uint256)","0afd21d2":"failSale(uint256)","0afd2778":"changeFundOwnerWalletAddress(address)","0afd548d":"setOperationContracts(address,address,address)","0afdca95":"impl_batchTransferMSM(address,address[],uint256[])","0aff2076":"getLastAuctionId()","0b009517":"YourToken()","0b00a111":"WhitelistUpdated(address,address)","0b00de8d":"unregisterWorkerAffectation(address,address)","0b00fd54":"TEAM_ADDR()","0b01517c":"getPlayerBalance()","0b01856d":"startPreICOTimestamp()","0b02177f":"testnetWithdrawn(uint256)","0b03ad11":"unregisterToken(address,string)","0b0608db":"LolaCoin()","0b070845":"Dagt()","0b073865":"share3()","0b0740ae":"getItemIndexToOwner(uint256)","0b077fe7":"Whales()","0b0788dc":"assertEq27(bytes27,bytes27)","0b0a4b17":"askHash()","0b0b6d5b":"supportImpeachment()","0b0bbd65":"addrToAsciiString(address)","0b0c2e80":"test_basicWithTwoAssertThrow()","0b0c564d":"Enter(uint256,uint256,bool,address)","0b0c8f1f":"initSmartToken(address,address,uint256)","0b0c92bd":"_isOperatorFor(address,address,bool)","0b0d031a":"fetchCreatedOrdersForPayer()","0b0d0eb7":"transferToBeneficiaries()","0b0e13d6":"closeStageTwo()","0b0edad3":"getBooking(address,uint256)","0b0f7743":"issuedCount()","0b100a5a":"policiesCount()","0b107904":"authorizeOne(address)","0b10bd1b":"HiroyukiCoinDark()","0b11a6e3":"ERGOIN()","0b11ed63":"getGenerationForWindow(uint256,uint256)","0b1200da":"setWalletContractAddress(address)","0b121c04":"createIssue(uint256,uint256,uint256)","0b12a148":"_distributeNewSaleInput(address)","0b12e7e2":"soowhat()","0b1350cf":"assetProxy()","0b1414c1":"oneStaIsStb()","0b14331f":"getExpiration(uint256,uint256)","0b151811":"getBonusByDate(uint256,uint256)","0b15650b":"randInt(uint256,uint256)","0b1573b8":"setRoundLockAmount(uint256)","0b181567":"exceed()","0b1851a9":"Billionscoin()","0b1a3144":"pushToApproved(address,uint8)","0b1a8e1e":"setMasterServer(uint32)","0b1a94e7":"validPurchasePresale()","0b1aff48":"extendTDE(uint256)","0b1b62fa":"transferBackMANAMany(address[],uint256[])","0b1b92dd":"FACTOR_11()","0b1b9aa5":"getluckyuser()","0b1ba852":"changeDepositCell(address,uint256)","0b1bf3e2":"Galleass(string)","0b1c45c9":"getPhiladelphiaBets(address)","0b1c4a75":"subFees(uint256,uint256)","0b1c5b76":"fetchVoteMainInfoBySnapshotBlock(uint256)","0b1ca49a":"removeMember(address)","0b1d366d":"getLastAwardInfo(uint256)","0b1dcc88":"buyCountry(uint8)","0b1dfa26":"fxpDiv(uint256,uint256,uint256)","0b1e400a":"_transferFromToICAPWithReference(address,bytes32,uint256,string)","0b1e5acc":"roleHas(string,address,address)","0b1e7f83":"posts(uint256)","0b1ec92e":"RoundCreated(uint256,uint256,uint256,uint256)","0b1f3850":"num_hosts_revealed()","0b1fc3c0":"getVendingAmountLeft(uint256)","0b210a72":"getDrugInfo(uint256)","0b2140ab":"buyUSD(address,uint256)","0b21d446":"setValidBwCaller(address)","0b225b42":"PHASE4_START_TIME()","0b2478b3":"getSaleIsOn()","0b247b1b":"CreateACI(address,uint256)","0b25cbb2":"Ftechiz()","0b261340":"marbleBalance(address)","0b269898":"setPricing(uint256[])","0b27fa51":"noOfTokenAlocatedForPresaleRound()","0b280a29":"isBatchActive(uint256)","0b2909e6":"addOwed(address,uint256)","0b294bdf":"GetPlayerDetails(address,address)","0b299630":"addItem(string,address,uint256,address,uint128)","0b2a6c70":"marketWine()","0b2acb3f":"add(address,bytes)","0b2accb2":"getPercentage()","0b2c588c":"setAdventureHandler(address)","0b2d25ca":"calculateCharityFee(uint256)","0b2e02c7":"migrateAgent()","0b2e7423":"maxSecurityGuardDelay()","0b2ee7e9":"create(uint256,uint256,uint256,bool)","0b2f6a7e":"_mintPlayer(uint32,uint32,address)","0b2f6cef":"m_hodlers()","0b2fce74":"addGardener(uint256,uint256)","0b305c62":"playerEndGameConflict(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address,bytes,bytes32)","0b305ce9":"destFoundation()","0b309c93":"Timer()","0b30ab4f":"bubbleSort()","0b30fc7b":"pastValues(uint256)","0b317697":"investorToken(address)","0b31fc3a":"DiamondToken()","0b341245":"activityAddress()","0b3464c3":"activeHeroGenome(address)","0b34f78c":"MintProposalAdded(uint256,address,uint256)","0b3532b3":"balanceSellingOf(address)","0b354090":"SimpleConstructorBool(bool,bool)","0b3598c6":"_sealDataStream(address,address,uint256,bytes32,uint256,bytes32)","0b35ea61":"stopGuess(uint256,bool)","0b35fe44":"VerifyEd25519(bytes32,bytes,bytes)","0b368627":"releaseOldData()","0b377a8f":"setNumIncorrectDesignatedReportMarkets(uint256)","0b38bae2":"_totalSupplyLeft()","0b393a9d":"MANHATTANPROXY1STAVE()","0b395d1e":"_addUserExperience(address,int32)","0b39aaa9":"privateEquityClaimed()","0b39c3e1":"requestLoan(address,address,bytes16,uint256,uint128,uint128,uint16,uint64,uint64,string)","0b39f18e":"setCardTokenAddress(address)","0b3a2ffd":"setRoyaltyInformationContract(address)","0b3af901":"proposePlatformWithdrawal(address)","0b3b2222":"TokenDistribution(address,address)","0b3bb024":"getTenant()","0b3bc259":"funderCount()","0b3cd070":"multiBet(uint256[],uint256[],uint256[])","0b3d7174":"prev_week_ID()","0b3e9c7b":"userEndGameConflictImpl(uint32,uint8,uint256,uint256,int256,bytes32,bytes32,uint256,address)","0b3ed536":"claimDonations(uint256)","0b3f191a":"disableChanging(bool)","0b3fe32d":"setHalfTimeAtkBoss(uint256)","0b407022":"migrateV1Upgrades(address[],uint256[],uint256[])","0b40ab43":"setBankAddress(address,address)","0b4130f2":"GenomaToken()","0b424b66":"HHDCToken(uint256,string,string)","0b42d1de":"BejonesStandardToken(uint256,string,uint8,string)","0b43c6e6":"CryptonCoin()","0b440f33":"initCrowdsale(uint256,uint256,uint256,address)","0b4438e5":"spinAll()","0b45e8db":"SALE_CAP()","0b464bf6":"blocksSinceLastBid()","0b4650a0":"FiatContract()","0b467b9b":"revoke(bytes)","0b47459b":"LAARToken()","0b480095":"teamAddressThreeTokens()","0b483f6e":"toAllow()","0b48af0b":"interestOf(address,address)","0b4964a8":"addDungeonNewFloor(uint256,uint256,uint256)","0b4a1ece":"VisibilityDerived()","0b4aca45":"__formatDecimals(uint256)","0b4b5d5e":"GamityToken()","0b4bb61f":"burnPercentage1000m()","0b4c72a9":"rejectProvider(address)","0b4ca1cd":"doResult(uint256,bytes32,bytes32,uint256)","0b4cf825":"getRandomColorType()","0b4da628":"IsPlayer()","0b4db63a":"Tratok()","0b4dfc77":"contractMint(address,string,bytes32,bytes32,uint256)","0b4e0513":"reserveTokenFund()","0b4efd9a":"RobotBTC(uint256,string,string)","0b4f12f6":"updateUser(string)","0b4f3f3d":"cancel(string)","0b4f79a1":"RejekiKita()","0b509e1d":"getCountOfCell()","0b513828":"parseChannel(bytes)","0b513ce9":"PonziBet()","0b51989a":"setData(address,string)","0b520ad5":"freePeriodDuration()","0b522abf":"closeCrowdsale(address)","0b549884":"matingPrice(uint256)","0b54cbfb":"setType(uint8)","0b5608f2":"PackageCoinPresaleOne(uint256,uint256)","0b566f33":"unlockedCollateral(address)","0b56d4c6":"airdropNum()","0b56f01c":"createAmountFromEXORForAddress(uint256,address)","0b573638":"ethToTokenTransferOutput(uint256,uint256,address)","0b57adc0":"Transwave()","0b57c487":"COVERCOINToken(string,string,uint8,uint256)","0b583982":"getUserProductCount(bytes32)","0b586f1a":"_emitWorkResumed(uint256,uint256)","0b58dc38":"SetNewBlockchainEnabled()","0b590c6b":"SingularDTVToken()","0b591195":"largestPenis()","0b5945ec":"setTokenURL(address,string)","0b597135":"onHardCapReached(uint256)","0b5982f0":"payOutDividend()","0b59a5c4":"purchasedCoins()","0b59df68":"withdrawEscrow(uint64)","0b5a006b":"currentYear()","0b5ab3d5":"destroyDeed()","0b5ad1c1":"UpdateSellAgentCreators(address)","0b5adfff":"getNumTickets()","0b5ba082":"stagesManager()","0b5c2307":"globChanceOwner(uint256)","0b5c3f87":"addReferral(address,address)","0b5ca8db":"issuedBounty()","0b5d1c3d":"testLessThanOrEqual()","0b5d69ab":"UpdateMaxBalance(uint256)","0b5d94f6":"getOrderPrice(address,address,uint256,uint256)","0b5e19b0":"getInvestSum()","0b5e2232":"HunxuHappyToken()","0b5e89f4":"icoStarted()","0b5ee006":"setContractName(string)","0b5f2efd":"setCurrentRate(uint256)","0b5f5ef1":"setAvatar(uint256,bytes)","0b5faf97":"claimWin(bytes32)","0b5fcf81":"enableAutoDividends(uint256)","0b605fcd":"tokensTo0xbtc_(uint256)","0b60ca88":"raisedSale2USD()","0b611241":"ieoStorageVault()","0b6142fc":"breach()","0b620b81":"withdraw(address,address,address,uint256)","0b6386d4":"KyberNetworkCrystal(uint256,uint256,uint256,address)","0b63b114":"freeTokens(address)","0b63fe95":"processPayment(address,uint256)","0b642d72":"recoverLostEth(address,uint256)","0b65108b":"merge()","0b654e7d":"finishedRaceCount()","0b663e63":"promoCount()","0b66c247":"scoreTeams(uint32,uint32[],int32[],uint32[],uint32,uint32)","0b66f3f5":"multisendToken(address,address[],uint256[])","0b6700d6":"getLogo()","0b6780aa":"extendSaleEndDate(uint256)","0b679d2c":"REQUEST_CANCELED_BY_CREATOR()","0b6826ca":"payDividend()","0b682cb8":"Quhabitat()","0b684de6":"CitizenOneCoin(uint256)","0b695449":"MiningUpgrade(address,uint256,uint256)","0b697362":"withdrawFromSubRound(uint256)","0b6b80b2":"sampleRegistry()","0b6bf29f":"partner1_will()","0b6c754b":"isSuccess()","0b6c9ac7":"airdroppedAmount()","0b6d3017":"overflow_upper()","0b6d715b":"createGame(string,uint256,uint256)","0b6d8d52":"createDAO(address,uint256,uint256)","0b6e01db":"total_bet_available()","0b6e46fe":"enableController(address)","0b6e6511":"convertToELIX(uint256,address)","0b6ebf86":"KWHTokenAddress()","0b6f0530":"test_twoInvalidEqBytes32Message()","0b6f2fad":"HashCoin(uint256,string,string)","0b6f46ed":"isPresaled(address)","0b6f5b3d":"ShrimpFarmer()","0b6f6e0d":"CanYaCoinToken()","0b6fc163":"claimSignerAddress()","0b6fcdb0":"getEnforceRevisions(bytes32)","0b70ce55":"Betfunding()","0b714b17":"AddHash()","0b71ff6a":"MTDCERC20()","0b72396c":"validateContractWithCode(address,string)","0b730fae":"ICOadvisor2()","0b731652":"Ethbet(address,address,address,uint256,uint256)","0b7373d6":"giveAllBack()","0b73aad0":"msgsWaitingDone(uint256)","0b74074b":"startPayouts()","0b743021":"TOKENS_TOTAL()","0b745a01":"setLockup(address)","0b747d91":"randomSeed()","0b74b620":"getChannelsParticipants()","0b74edc6":"testFinalHash()","0b74f633":"getTradeParameters(uint256,address,address,uint256,uint256,uint256,uint256)","0b7507ae":"getTaskAtIndex(uint256)","0b7623ba":"abs(int8)","0b779363":"checkVotingForChangeAdminAddress()","0b77fa28":"generateThemedSpinners(uint256,uint256,uint256)","0b781385":"nextCampaignBalance()","0b78f9c0":"setFees(uint256,uint256)","0b7abf77":"TOTAL_TOKENS()","0b7ad54c":"getContent(uint256)","0b7d1de1":"proofOfSMS()","0b7d6320":"crowdsaleAgent()","0b7d796e":"loop(uint256)","0b7ddd25":"setRaisedAmount(uint256)","0b7e4e7f":"substractNumber(uint256)","0b7e9c44":"payout(address)","0b7ef89b":"contributeToCampaign(uint256)","0b8021c4":"getPublishedTokens(address)","0b803b6b":"transferApprovedBalance(address)","0b80b4f9":"QuantaloopToken()","0b80f8d3":"invmod(uint256,uint256)","0b811cb6":"executeProposal(uint256,bytes32)","0b816045":"getRequestInfo(uint256)","0b81e216":"setAllowTransfer(bool)","0b82a541":"setIcoEndTime()","0b82d33d":"withdrawBalanceDifference()","0b83284e":"MinterFunction(address,uint256)","0b834864":"publicTransfers(address,address,uint256)","0b83de20":"ABI(bytes32)","0b841433":"agentApproval(address,uint256)","0b8440ec":"bonusTokenRateLevelTwo()","0b84cc4a":"Committees(uint256)","0b851937":"year4Unlock()","0b85877f":"isICAP(address,address)","0b85881c":"ceilLog2(uint256,uint256)","0b869824":"CeoAddress()","0b87572b":"communityDevelopmentSupply()","0b8762d1":"Block18Token()","0b87cf10":"crowdsaleActive()","0b88e06b":"testTokenBalance()","0b892e3f":"celebs(uint256)","0b8a7bf8":"coinbaseWallet()","0b8b709d":"_createDroneInternal(address)","0b8ba87d":"UnilotBonusTailEther(address)","0b8bbd5b":"webGiftEtherAmount()","0b8d0a28":"wallet2()","0b8d9d94":"createSportsBet(string,uint256)","0b8e845a":"burnFeeFlat()","0b8eebde":"gameEnd()","0b8f0b61":"sendCoinsToBeneficiary()","0b8f0e0a":"LIWUC()","0b901c82":"totalRepaidQuantity()","0b910f86":"PRESALE_MIN_INVEST()","0b91eaf9":"isValidated(address)","0b926ecd":"validStoreVal()","0b927666":"order(address,uint256,address,uint256,uint256,uint256)","0b93381b":"success()","0b936a77":"DuanZiToken(address)","0b93bf0d":"setRecruitHeroFee(uint256)","0b948684":"delegatedTransfer(bytes,address,uint256,uint256,uint256)","0b95c8ae":"aggiungiMsg(string)","0b962e8f":"AlphaChainConstructor()","0b96406a":"vestingMappingSize(address)","0b96740c":"changeMinimumContributionForAllPhases(uint256)","0b967584":"voteForCandidate(uint256,address)","0b967fd2":"remove_master(address)","0b967fe7":"assertEq18(bytes18,bytes18)","0b96e72e":"setBAS(bytes32,address,string)","0b972ff6":"weiPreCollected()","0b97bc86":"startDate()","0b97fc8d":"WeiPerTicket()","0b98107c":"dateFrom()","0b9830ba":"tokensIndexOf(address,bool)","0b9849ab":"WEChainCommunity()","0b98f975":"setBonus(uint256)","0b9902d0":"WithdrawPerformed(uint256)","0b99ccee":"ico2Ended()","0b9aa067":"isVerified(address,address)","0b9ac851":"getCurveUnset(address,bytes32,int256)","0b9adc57":"deleteBytes32(bytes32)","0b9b0e7d":"highRate()","0b9b8130":"registerMintedToken(address,string)","0b9b9602":"SalesWalletUpdated(address,address)","0b9bfa6c":"inCommunity(address,address)","0b9cae77":"KinetiQ()","0b9d5847":"getExchange(uint256)","0b9d98e9":"getTotalVolume()","0b9e9817":"CanaryV7FastTestnet()","0b9ea6c8":"getCurrentSold()","0b9ea95d":"configureSaleClockAuction(address,uint256)","0b9f1e76":"wphcToken()","0b9f2816":"nowwww()","0b9f2ca6":"getCountBuildings(uint256,uint256,bool)","0b9f6108":"divsm(uint256,uint256)","0b9fc8fb":"checkerSign(bool)","0ba0a3a1":"TakerSoldAsset(address,uint256,uint256,uint256)","0ba12c83":"commitUpgrade()","0ba1772d":"callDistributed()","0ba1f7ad":"getImpactCount(string)","0ba234d6":"cancelRecovery()","0ba24e4c":"customers(address,address)","0ba27775":"fondToken()","0ba2e8a8":"allowFunding()","0ba46624":"setBountyAgent(address,bool)","0ba4d242":"s43(bytes1)","0ba5890a":"noteBallotDeployed(bytes32)","0ba6d271":"updateFunds(address,uint256)","0ba7ebe2":"changeAll(address)","0ba8916f":"updateMeterKey(address)","0ba8d735":"purch(address,uint256)","0ba8ebec":"lockance(address)","0ba92878":"delOrganizationCertificate(string)","0ba95909":"getMaxAmount()","0baaaed9":"setConfigBytes(bytes,bytes)","0bab4d84":"setClearingPriceSubmissionDeposit(uint256)","0bab718f":"updateCurs(uint256)","0bab7ff6":"messiCommunity()","0bac0312":"TryUnLockBalance(address)","0bac15ae":"PUBLICSALE()","0bac2850":"setFunctionFourPrice(uint256)","0bac3c01":"isDeferred(address)","0bac9fe7":"getUsernameByIndex(uint256)","0bad342a":"EscrowContract(address,address,address,address,uint256,uint256,uint256,uint256)","0bad4481":"setupRegion(address[16],uint256,uint256,uint256[],bool,uint8[128])","0bae2129":"affiliateTree()","0bae3288":"getSale()","0bae461c":"KomicaToken()","0baf0bcc":"lockDateTimeOf(address)","0bb0482f":"concatBytes(bytes,bytes)","0bb0e827":"add_addys(address[],uint256[])","0bb15acc":"GoldeaToken(uint256)","0bb18da2":"saveRefundJoinId(uint256,uint256)","0bb24375":"ITX_Token()","0bb25901":"freezeSupply(uint256)","0bb2cd6b":"mintAndFreeze(address,uint256,uint64)","0bb3a066":"unsetAdministrator(address[])","0bb4bbaf":"testInitialNumberOfVoters()","0bb4e6f4":"getTotalWei()","0bb536a2":"fightMix(uint256,uint256)","0bb563d6":"logString(string)","0bb5e62b":"EGC()","0bb700dc":"getStats(bytes32)","0bb7a81a":"ZhuhuaToken()","0bb8b9c3":"zint_convert(string)","0bb954c9":"WithdrawAndTransferToBankroll()","0bb9ee71":"createRepository(bytes32,bytes)","0bb9f21e":"SCAMERC20()","0bba3065":"AuthorityFilter()","0bba662d":"oneCoin()","0bbaa27a":"seedSourceB()","0bbad618":"setupReclaim()","0bbd4e38":"defrostReserveAndTeamTokens()","0bbd501e":"NewEtherPrice(uint256)","0bbdb469":"getLuckyblockSpend(bytes32)","0bbe0ee3":"transferAllFrom(address,address,uint256[])","0bbed2b7":"secondsaleopeningTime()","0bbf2768":"infrastruct(uint256)","0bbf709a":"validHolder(address)","0bbf8f38":"setMinBid()","0bbfdbec":"setUsdAmount(uint256)","0bc09cfe":"buy(uint256[6][])","0bc0c61f":"destroyOwner(address,uint256)","0bc1236e":"getTokenAmount(uint256,uint256)","0bc16f1b":"presell()","0bc1734c":"addPermissions(address[])","0bc217d9":"setCastleSale(uint256,uint256)","0bc23901":"WalletAddressesSet(address,address,address)","0bc2a3b7":"Showercoin()","0bc30aa0":"getTicketWinnings(uint256,uint256)","0bc311ea":"addFound(address)","0bc32ab6":"tokenToPointBySkcContract(uint256,address,uint256)","0bc33b22":"addressJenkins()","0bc3a268":"KelvinToken()","0bc4ec45":"FirstDropToken()","0bc59a8e":"date15Nov2018()","0bc5b2c5":"stage_2_tokens_scaled()","0bc5e51e":"endTimeSale3()","0bc5f216":"kgtToken()","0bc69912":"createICO(bytes,bytes)","0bc6b708":"placeBetTESTONLY(uint256)","0bc6b89c":"dailySpent()","0bc6c96e":"failSafe()","0bc7760c":"crowdsaleSet()","0bc785df":"ACTToken()","0bc7fd93":"toTuis(uint256)","0bc8982f":"getBQL()","0bc8b4c2":"getMintRequestUintMap(uint256,int256,string)","0bc954dc":"addEgg(uint64,uint32,address,uint256)","0bc9c89c":"removeMessage()","0bca1704":"setHardcupTrue()","0bca441b":"BETHERTokenSale(uint256,address)","0bca5903":"claimMedals(uint16)","0bcab28a":"verifyReceiverAddress(address,address,address,uint8,bytes32,bytes32)","0bcb8a23":"getBondDivShare(uint256)","0bcbad90":"WLMTPrice()","0bcbbd21":"r2()","0bcbe35b":"lastBlock_f19()","0bcbfe1c":"withdraw_Eth(uint256)","0bcd0694":"getUserCities(address)","0bcd3b33":"getBytes()","0bcd87ed":"dashboardAddress()","0bce62ea":"isPreICOPublicOpened()","0bce8cdf":"getContributorInfo(address)","0bcef54c":"Eticket4Sale(address,address,uint256,uint256,uint256)","0bcf963b":"getDocumentsCount()","0bd089ab":"MyAdvancedToken(uint256,string,uint8,string,address)","0bd11894":"addBuilder(uint256,address)","0bd12120":"MMCC()","0bd18d7a":"investment(address)","0bd263ff":"registerPID(address)","0bd2ae1c":"ERW()","0bd38767":"testCanClone()","0bd3ae61":"EARLY_BIRD_SUPPLY()","0bd3cf7e":"Timebomb()","0bd58493":"sellMyApple(uint256)","0bd5b493":"payPostDrawRef(address,address,uint256)","0bd601df":"setLockEndTime(uint256)","0bd61e79":"_finalRoundLosersFight()","0bd62ad5":"FantasySportsCoin()","0bd64dbf":"BsToken(string,string,uint256,address)","0bd6a40f":"setWorkerAdress(address)","0bd6c769":"Load(address,uint256,uint256)","0bd7b6b8":"computed_fundraise()","0bd85158":"setUInt8Value(bytes32,uint8)","0bd8599e":"countUp()","0bd8a1d0":"auctionFinalized()","0bd8a3eb":"SaleEnded()","0bd934c3":"UPEXCoin()","0bd93738":"updateShareTimeGap(uint256)","0bd9c534":"right43(uint256)","0bda4dbf":"refundCount()","0bdab855":"distributeHNC(address[],uint256,uint256)","0bdc0031":"STARTBLOCKTM()","0bdc7953":"multiBuy(address[],bytes32[])","0bdc9c35":"CalculateReward(uint256,uint256,uint256)","0bddb83b":"bonusPresale()","0bdddb73":"stampOut(address,uint256,uint256)","0bdde107":"balanceOfme()","0bde1d36":"changeAllowanceToMint(address,address,int256)","0bdf3dae":"CryptoRoboticsToken()","0bdf5300":"TOKEN_ADDRESS()","0be0453b":"StringDemo()","0be0713d":"gcSupply()","0be0f677":"log(bytes32,string)","0be21ea9":"MAX_TIME_EXPLORE()","0be23ace":"RealMoney()","0be2858e":"multipleTransfer(address[],uint256[])","0be48491":"personalMax()","0be5430f":"DroneTokenSale(address,address)","0be560be":"NarniaUSDT()","0be5ca05":"privatePresaleTokenReservation(address,uint256,uint256)","0be5efa6":"year2LockAddress()","0be6ba2b":"addRestricedAccount(address,uint256)","0be702bf":"_v4()","0be72b6d":"allOfferingQuota()","0be76f80":"memberData(uint256)","0be77485":"Unlock(address)","0be77f56":"log(bytes)","0be80f39":"setComission(uint256)","0be80fa9":"changeVisitLengths(uint256,uint256,uint256,uint256,uint256,uint256)","0be8287e":"getJackpotInfo()","0be9189d":"showInvestorVault(address,uint256)","0be924ef":"tier_rate_4()","0be96fbd":"MAX_TOKENS_SALE()","0be9f930":"REL(uint256,string,uint8,string)","0beb90d3":"icoLimit()","0bebd0f9":"addAddressToGeneration(address,uint256)","0bec3231":"GalaxyChain()","0bece492":"setPhaseBonusAddress(address,address)","0bed63c7":"_isActive(uint256)","0bee1c3e":"availableICO_w2()","0beeb0af":"getValue(address,bytes32,address)","0beedbd4":"AdoptionRequested(bytes5,uint256,address)","0befe82b":"AddBankerPrincipal(uint8,uint256)","0befeeb0":"lastCreatedGame()","0bf05c99":"DraftPlayer(address,uint256)","0bf09985":"openRound(uint256,uint256)","0bf0e4e4":"myProfit(address)","0bf1c747":"destructed()","0bf2c50d":"setCFO(address,bytes)","0bf2ee8d":"addPerson(string)","0bf318a3":"finalizeCrowdsale()","0bf34d54":"CVToken()","0bf36806":"Bivacoin()","0bf474a9":"claimDonations(address[2],uint256[7],uint8,bytes32[2])","0bf5035d":"secondYearEnd()","0bf51f36":"updateTime(uint64)","0bf53613":"getBonusNow(address,uint256)","0bf53668":"consumers(address)","0bf61fd4":"t_Slava()","0bf63c60":"setBasicCentsPricePer30Days(uint256)","0bf6898e":"DPSToken(uint256,string,string)","0bf6dbfd":"VanityToken(address)","0bf75567":"voteSuperQuorum(uint256,bool)","0bf757e5":"HopiumToken()","0bf77989":"debug_coinbaseTxSha(bytes,uint256)","0bf7fb57":"getUserMilestone(address)","0bf82810":"removePartnerAddress(address)","0bf84797":"RATE_FOR_WEEK1()","0bf867c2":"Zemana()","0bf9236a":"KillContracts()","0bf9c50f":"calcNextNBonuses(uint256)","0bf9fd52":"wasPaid(bytes32)","0bfa1191":"setPriceStorageInternal(address,uint256)","0bfd1271":"confirmErc20TransactionRequest()","0bfd7b62":"getBonusesAmountAvailable(bytes32,uint256)","0bfefed4":"createUser(address,string,bool,bool,bool)","0bff2ac2":"NewBatch()","0bffa8b4":"changeMigrationInfoSetter(address)","0c0075a3":"getBallotOptions()","0c0078e8":"RESERVED_TOKENS_ANGLE()","0c012834":"ARS()","0c01b2ae":"setConfiguration(string,string,uint256,address[],uint256)","0c02159f":"HavEtherToken(uint256,string,uint8,string)","0c022933":"highTimeBonusValue()","0c031f45":"TokenBuy(address,uint256)","0c03348d":"getIntel(uint256)","0c0399a4":"iteration()","0c03f24a":"parseDate(string)","0c03fbd7":"getNumPassingTokens(address,uint256)","0c0615a7":"evaluate(address,string,string)","0c0662a8":"getLastWithdrawal()","0c06c3ee":"viewHouseFee()","0c06fda1":"AVINCOIN()","0c07fa56":"ICO_END()","0c087782":"PXLProperty()","0c087bc5":"stage1Start()","0c08bf88":"terminate()","0c08ec49":"importTokensToSidechain(address,address,uint256,bytes32)","0c099133":"ERC20TokenFactory()","0c0a5c55":"cancelAuth(address,address)","0c0a7a68":"Stars()","0c0ad299":"removeProject(address)","0c0b86ca":"currentAuctionId()","0c0bea5c":"FinalTokenToken()","0c0c13c8":"query2_fnc()","0c0cde7c":"ZIBToken(uint256,string,string)","0c0e5f0d":"calculateGrapeBuy(uint256,uint256)","0c0e6dea":"publicAllocationEnabled()","0c0ef2b0":"isGameActive()","0c103837":"votedHarvest(address)","0c112598":"fun(bytes32)","0c119354":"rateMain()","0c11dedd":"pay(address)","0c11f32e":"milestoneShares(uint256)","0c131629":"RDFToken()","0c14080b":"bonusSale()","0c15b963":"againAttack(address,uint256)","0c15f601":"meltTokens(address,uint256)","0c16683e":"SCLToken()","0c1688f7":"IstriumToken(address,address)","0c17d023":"dungeonTokenContract()","0c17d42c":"setAlpha(uint256)","0c1838e9":"importAmountForAddresses(uint256[],address[])","0c18e1c9":"balanceInSpecificTranche(uint256)","0c1925f3":"stock(string,string,uint256,string)","0c192fe5":"RBCToken()","0c195d99":"totalAllocatedTokens()","0c196a74":"getInterestRate(uint256)","0c19f80e":"checkReferral(address)","0c1a8b05":"toSPool(uint256)","0c1a972e":"newAccount(string,bytes)","0c1b33d2":"setRemainingSupply(uint256)","0c1be377":"removeSupport(address,address)","0c1c0974":"littPoolIDExists(uint256)","0c1c3c14":"registerNameXID(string)","0c1c972a":"startPublicSale()","0c1ca1ba":"withdrawOwnerEth()","0c1cd8cd":"endPvtSale()","0c1d4af7":"LogTokenAssigned(address,address)","0c1db532":"getPI_edit_28()","0c1e3fd4":"submitWithdrawTransaction(address,uint256,bytes)","0c1e3fea":"previousState()","0c1e517f":"bytes16ToStr(bytes16,bytes16,uint8,uint8)","0c1f679f":"WithdrawalTokensAfterDeadLine()","0c1fad51":"setSeedSourceA(address)","0c1fe4b1":"showTransaction()","0c204dbc":"getF()","0c2073e4":"LemonSelfDrop2()","0c21a2f1":"nextGameMinBlock()","0c21e754":"setLLV_edit_9(string)","0c237dde":"servusTokensAllocated()","0c23cf4b":"buyCardXid(uint256,uint256)","0c250dcd":"logUnsigned(bytes32)","0c255c94":"max256(uint256,uint256)","0c25c6c1":"getBonusUsersCount()","0c26a816":"pvpMaxIncentiveCut()","0c26ac30":"closeEarlyAdopters()","0c26e42e":"getReleaseHashForNameHash(bytes32,uint256)","0c270f44":"recleared(address)","0c2737d2":"incrementCounters(uint256,uint256)","0c27677a":"getCRaddress()","0c28e291":"Prout()","0c294f51":"getAllCounts()","0c29e589":"createMyEntity(uint256,bytes32,bool,uint256,uint256)","0c2a48e2":"realitycheck()","0c2ab324":"SAN()","0c2ad9e3":"battle(uint64,uint64)","0c2b14fe":"buyCostume(uint256,uint256)","0c2b3eda":"TeacherCoin()","0c2b4b85":"addGames(bytes32[],bytes32[])","0c2b663c":"SDR22(uint256,string,string)","0c2bc34d":"indexOf(uint256[],uint256,bool)","0c2c5add":"contribute(address,uint256,uint8,bytes32,bytes32)","0c2c81ed":"platformFundingSupply()","0c2cb820":"setDebug(bool)","0c2d71b1":"docStore()","0c2e4bf4":"icoStartAt()","0c2ec050":"isCurrentRoundFinishing()","0c2edc1c":"setExchangeAddresss(address,address)","0c2f6f48":"crowdSalePeriodInit()","0c31309e":"getPrivatePurchaserStatus(address)","0c316d6a":"DTOToken(address)","0c319d80":"BidiumToken(address,address,address,address)","0c3257d0":"changeUserClass(address,uint256)","0c326330":"_isICO()","0c3304d1":"mintMAN()","0c333556":"Vault(address[],address,address[],address[])","0c340a24":"governor()","0c345385":"RenaS()","0c34644c":"getInstructor(address,address)","0c3499ca":"_setSkills(address,uint256,uint256,uint256)","0c34f8a5":"addAddressesToWhitelist(bool,address[])","0c367f63":"DAEXToken(address)","0c36add8":"issue(uint256,uint256,address,address,uint256,address)","0c37348d":"buyPreSaleTokens(address,uint256,uint256,string)","0c376ee6":"setPvtTokens(uint256)","0c38708b":"get_all_project_information(uint256)","0c3890b7":"addThing(string,string,string,bytes32)","0c3980ef":"NextRewardHalving()","0c3a9658":"MTUV1()","0c3b3b70":"Unihorns(uint256,string,string)","0c3b7b96":"minTokensToCreate()","0c3c450e":"icoHashedPass()","0c3c92a3":"finishHardcap()","0c3cebfa":"issueTo(bytes32,uint256)","0c3d5157":"contractStartTime()","0c3dbf43":"removeMarket()","0c3dfa0e":"SLoader()","0c3e2d2d":"getTotalFundsRaised()","0c3e3c58":"getAdministerList()","0c3e4004":"GraceCoin()","0c3e564a":"airDeliverMulti(address[],uint256)","0c3f08c6":"newGame(uint8,string,string,bytes32,uint256)","0c3f0cac":"getLastPlayer(string)","0c3f1f14":"updateSupply()","0c3f64bf":"isDev(address)","0c3f6acf":"currentState()","0c402ed8":"confirmMinting(uint256)","0c424284":"setWhitelistStatus(address,bool)","0c4326a0":"getMajorMinorPatch(bytes32)","0c432c8d":"calcJadeReceived(uint256,uint256)","0c432f1f":"handleLastRef(address)","0c433edf":"receiptUsed(address,address,uint256)","0c437aa7":"setMandateInBlocks(uint256)","0c44ba40":"getMyTicketAddresses(address)","0c45361f":"creators_count()","0c45453c":"_feed(uint256,bytes32)","0c45e8d7":"roomsAvailable(string,uint256[])","0c4641d3":"BJCToken()","0c46fc92":"deliverLastMilestone(bytes32)","0c486a96":"requestPayment(uint256,uint256)","0c486c00":"CNRToken()","0c48ae9e":"createAdSlot(string,uint256,uint256,uint256[])","0c48c6bd":"getBonusMultiplierAt(uint256)","0c48e582":"updateVendor(address,address)","0c497094":"createAngel(uint8)","0c49c0a2":"MIN_CONTRIBUTION_AMOUNT()","0c49c36c":"sayHi()","0c4a3338":"CheckTime(uint256)","0c4a5153":"commitStageActive(uint256)","0c4a8d94":"STAGE_3_FINISH()","0c4a9869":"unregisterContract(bytes32)","0c4ada17":"cards_gold(uint256)","0c4ae1ca":"cancelBooking(address,address)","0c4bfa94":"left13(uint256)","0c4c4285":"setHash(bytes32)","0c4d6bdf":"EarlyBirdsFinalized(uint256)","0c4dd1d9":"totalUsdAmount()","0c4ecab4":"confirmations(bytes32,address)","0c4f65bd":"getOwnerAddress()","0c4f8f6f":"regularTransfer(bytes32,bytes32)","0c50b116":"BTHPoint()","0c51015d":"adjustTap(uint256)","0c51171d":"getTokensSold(address,bytes32)","0c516283":"freezeHybridizationsCount(uint256)","0c5241fa":"LOL6()","0c525571":"arraySum(uint16[])","0c52780d":"unCertifyDelegate(address)","0c52bb4c":"auditorsList(uint256)","0c547097":"goldenTicketOwner()","0c549dd9":"getCET6ByAddr(address)","0c54ce44":"ProofOfRipple()","0c5532bf":"singleValueAirdrop(address,address,address[],uint256)","0c55699c":"x()","0c5589b8":"DecreaseWithdrawalAmount(uint256)","0c559757":"setHouseEdge(uint8)","0c55d925":"deleteBytesValue(bytes32)","0c55d9a4":"confirmStaking()","0c55f818":"CTU_ADDRESS()","0c560c64":"USD(uint256)","0c58062b":"teamLockPeriodInSec()","0c584803":"SGTMock(address)","0c58bcb8":"EthLendToken(address,address,address)","0c58e23c":"ZClassicGold()","0c59b556":"viewCoinsKarmaBySymbol(string)","0c59c570":"CashTron()","0c5a534e":"allowBuying()","0c5a97a6":"getProviderName(uint256)","0c5c2ca3":"getIndexName(bytes)","0c5ce593":"open(address,bytes32,uint256,uint256)","0c5d919d":"totalsuplly()","0c5e3f11":"nestedFirstManyToSome(uint256,uint256)","0c5ebb1a":"userForceGameEnd(uint8,uint256,uint256,int256,uint256,uint256)","0c5ed9d5":"REB()","0c5f9a60":"allocationFee(bytes32)","0c5fd414":"preOrder(address,address,address,address,bytes32,uint256,uint256,uint256)","0c5fd4b2":"minttoken(address,uint256)","0c60223e":"withdrawAuctionBalance(address)","0c61257e":"WartegToken()","0c620494":"changeAllowTransferWallet(address)","0c62b816":"minableSupply()","0c62bfbb":"_calcNextRate()","0c636091":"adoptAxies(uint256,uint256,uint256,address)","0c646fbd":"get_entity_count()","0c64a739":"price_exponent()","0c64a7f2":"remainingTime(uint256)","0c657eb0":"bankroll()","0c65829b":"_setSkills(address,uint256,uint256[],uint256[])","0c65e229":"startICOPhaseThree()","0c662943":"_lockup(address,uint256,uint256)","0c66adf8":"getCurrentRoundInfo(uint256)","0c68194f":"getCourseIdOfStudent(address)","0c68a104":"fundingMaxInEth()","0c68ba21":"isGuardian(address)","0c68f917":"cancelOfferingProposal(address,uint256)","0c693110":"getVoted(address,uint256)","0c6940ea":"addMeToAllGames()","0c69b189":"claimCrystal()","0c6a3161":"RESERVE_ADDRESS()","0c6a5be4":"Arexium(uint256,string,uint8,string)","0c6a62dd":"updateCurator(address)","0c6b1324":"Etherboard()","0c6bfdd0":"openTheRabbitHole()","0c6cbf92":"lastPayOut()","0c6cd73a":"issueCard(uint256,uint256,uint256)","0c6d1efb":"releaseEachTokens()","0c6ddc0d":"getUserAllowance(address)","0c6de527":"addToBonusSeed()","0c6df351":"doBondBonusTransfer(address,address)","0c6e29e3":"subscribeToPool()","0c6fc9b2":"processTakerOrder(uint256,uint256,uint256,uint256,bool,address,address,bytes32)","0c6fe674":"getPresaleTotal(uint256)","0c700183":"listGlobalAuditDocuments(uint256,bool)","0c7013c1":"send(address,address[],address,uint256[])","0c70f055":"getRandomRarity(uint32,uint256)","0c71614c":"divsforall()","0c717036":"colourID(uint8,uint8,uint8)","0c71b48c":"BTCTransactions(bytes16)","0c72bf39":"ArtToujourToken()","0c72fe56":"_payBidAllocationFee(bytes32)","0c736e04":"refundForValidPartners(uint256)","0c73a392":"getLogSize()","0c740736":"addPicture(string,uint32,uint32,uint32,uint32,string,string,string)","0c7452b8":"viewPetitionSignerWithAddress(address,uint256)","0c74be3d":"TIME_TO_MAKE_TOMATOES()","0c7516fd":"numPurse()","0c754b9f":"BuyOptions(address,uint256,string,uint8)","0c75941a":"setContractMessage(string)","0c76316d":"withdrawPot()","0c763fef":"showContractMsgSender(address)","0c77a697":"claimFounders()","0c77b44e":"setLedger(address,address)","0c790369":"maxMessageChars()","0c798c81":"SCCToken(address,address)","0c79af3d":"witrhdraw(uint256)","0c79e3e6":"setCrydrStorage(address)","0c7ac7b6":"arbitratorExtraData()","0c7b5616":"Time_Start_Crowdsale()","0c7befb2":"_tokenLayersExist(uint256)","0c7ca61e":"ArrAccountIsFrozenByDate(uint256)","0c7caded":"destroyMe()","0c7d8c20":"_register(bytes32,address)","0c7de59d":"edit(address,bytes,bool)","0c7e30b7":"getUsdCentsFromWei(uint256)","0c7eca6e":"setCurs(uint8)","0c7ef39b":"HUBTToken()","0c7f076e":"advisoryReserveTokensDistributed()","0c7f27ba":"COE()","0c8004b5":"buyTokens_Address(address,uint256,bytes8)","0c80d6dd":"view_last_result(address,address)","0c8114d3":"_forwardFunds(address,uint256)","0c8135a7":"getTeamOwner(uint256)","0c8209b6":"manualWithdrawEtherAll()","0c823abe":"importedTokens()","0c82b942":"whitelistRemove(address[])","0c832ef0":"restoreOwner()","0c8367fb":"HALAL()","0c83700a":"divCutPool()","0c8496cc":"getReturnByPath(address[],uint256)","0c857b25":"getLoveLock(uint64)","0c85b18c":"SetBuildingData(address,uint256,uint256,uint256,uint256,uint256)","0c85feea":"matchOrders(uint64,uint64)","0c861d4b":"Aeron()","0c87355e":"BANCOR_CONVERTER_UPGRADER()","0c875c8d":"Withdrawn(uint256,uint256)","0c89a0df":"transferTokens(address)","0c89b766":"randomSource()","0c89ef35":"hasEnoughAllowance(address,address,uint256)","0c89ef67":"PXMCCoin(uint256,string,uint8,string)","0c8a611f":"getInvestorsETH(address)","0c8ac6f7":"transferAnyTokens(address,address,uint256)","0c8b29ae":"hodlTillBlock()","0c8b494d":"RadarSpeedChain()","0c8bae5c":"sellTokensForBtc(string,address,uint256,uint256)","0c8bd2c5":"Issue(address,address,address,address)","0c8bdcfa":"GetPolicy(address,string,string)","0c8c0392":"listAsset(uint256,uint256,uint256,uint256)","0c8c085f":"getNumContents()","0c8dfeda":"maxLinkedWalletCount()","0c8e3166":"assignAtheniansToBattle(uint256)","0c8e9977":"whitelist_pool(address,address,uint256)","0c8f167e":"TOKENS_SOLD()","0c8f78fb":"setGasAmount(uint256)","0c9066dd":"getZodiac(uint256)","0c90da51":"End2()","0c915c74":"releaseWithStage(address,address)","0c91af81":"IGTUSD()","0c91e624":"Winner(string,address)","0c91f2d0":"rewardForWork(address,address,uint256,bool)","0c92b17b":"checkBurnTokens()","0c932e77":"ritualFee()","0c938c3f":"changeSubscriptionFee(uint256)","0c939ae1":"KYROInv()","0c93c981":"playBatch(uint256[],uint256[])","0c96526b":"getRateUsd()","0c96c4ea":"triggerRelease()","0c97200a":"getLoansCount()","0c975447":"lowBonusRate()","0c97bb77":"curConfig()","0c98048d":"transferFromAdmin(address,uint256)","0c981d58":"closeGame(address)","0c987501":"EtheraffleFreeLOT(address,uint256)","0c990004":"createToken(uint256,address,bytes32,uint256,uint256,bytes32)","0c99d807":"_isValidBlock(uint8)","0c9a6c24":"getUserCoinMarketValue(uint16,uint256)","0c9b016c":"expItemClass()","0c9b5777":"Erc20()","0c9bb7d2":"denyByPassword(bytes8,bytes)","0c9bc2c0":"calculateNonVestedTokens(uint256,uint256,uint256,uint256,uint256)","0c9be46d":"setCharityAddress(address)","0c9c1c58":"setAltFundAddress(address)","0c9cbfee":"moveProduct(address,address,uint256)","0c9daf45":"vcxWallet()","0c9dc2b8":"checkEthFundDepositAddress()","0c9dd381":"RewardTransfered(uint256,address,uint256,uint256,uint256)","0c9f6ed8":"ZEXCoin()","0c9f88c0":"Zignal()","0c9f980f":"isCSO(address)","0c9fcec9":"setApproval(address,address,uint256)","0c9fd581":"assertTrue(bool)","0c9fe5eb":"PIXEL_COUNT()","0c9ff620":"listINF()","0ca09e1e":"XoudCoin()","0ca1988b":"getnum(address)","0ca1c5c9":"getTotalMinted()","0ca2bda2":"isAllowedTransferDuringICO()","0ca2f2fd":"MultiBonusCrowdsaleMock()","0ca35682":"recover(uint256)","0ca35c22":"setScouponTransferCost(uint256)","0ca36263":"exit(bytes32)","0ca40865":"capRound2()","0ca413a4":"getDateRanges()","0ca435a6":"grabBooty()","0ca4f838":"BetCommunity()","0ca5bdb4":"novaBurn()","0ca5f72f":"rewardPercentageDecimals()","0ca621a8":"updateSplitandEmit()","0ca6afa7":"EtfToken()","0ca6d310":"setNamePiture(uint256,string)","0ca72e82":"testGetLawyerCount()","0ca7395f":"returnFund(address,uint256)","0ca78923":"updateConnector(address,uint32,bool,uint256)","0ca8fe1e":"burnCoins()","0ca9183c":"icoFundingRatePredictionBonusInPercentage()","0ca97903":"emergency(address,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","0ca9897c":"citePaper(address)","0ca99ca8":"hardCapInWei()","0ca9c14e":"PryvCn()","0caa1d84":"isUserGranted(address,string)","0caa5d91":"UserDestroy(address,address)","0caa8605":"getStage3End()","0caaa284":"PresaleClosed(uint256,uint256)","0caab83a":"poolBounty()","0cab068c":"isVestingRevoked()","0cac54ed":"claimTransfer(address,address)","0cacbf21":"getSponsorshipsSortedByAmount(address,uint256)","0cadc5b3":"deliverBonus()","0cae3cbb":"checkStageCondition()","0caeb350":"upgradeValue(uint256)","0caee2ca":"calculatePayout(uint256,uint256,uint256)","0caf10b2":"GreenEnergy()","0caf9d39":"testFailTooManyMembers()","0cafabd8":"getTPrice()","0cafef9c":"Clen(uint256,string,uint8,string)","0cb08716":"airdropDynamic(address[],uint256[])","0cb08e3b":"_finalizeICO()","0cb09309":"ArysumToken()","0cb0a44b":"enableInvestment()","0cb0c7f0":"forceOwnerChange(address)","0cb1982b":"updateNAV(uint256)","0cb1d243":"ICT(uint256,string,string)","0cb1d6b4":"fourthWeek()","0cb296ae":"Gemstones()","0cb335c4":"setMissedVerificationSlashAmount(uint256)","0cb5f653":"newUser(address)","0cb60443":"minRate()","0cb61d7a":"setCurrentBonusPercent(uint256)","0cb6aaf1":"keys(uint256)","0cb6b577":"TOKEN_DECIMAL()","0cb743a5":"buyOld(uint256)","0cb749b6":"FutureBlockCall(address,uint256,uint8,address,bytes,bytes,uint256,uint256,uint16,uint256,uint256)","0cb795e8":"getDividendInfo(uint256)","0cb7eb4c":"getReleaseTime(address)","0cb812d3":"openWithoutCounterparty(address[4],uint256[3],uint32[4])","0cb9208a":"JorgeCoin()","0cb97f57":"advisorsTotal()","0cb9da1b":"RedemptionContract(address,uint256)","0cb9ec43":"TemperatureMeasurementB(address,uint32,uint64)","0cb9ee4b":"getAllPlayerObjectLen()","0cba5853":"angelCollection(uint64)","0cba6d27":"getSocialAccountsLength()","0cbb0f83":"entryCount()","0cbc9ce7":"sendToToteLiquidatorWallet()","0cbe1eb8":"USDDOWNLOADPRICE()","0cbf0601":"numMessagesSigned(bytes32)","0cbf54c8":"auctionDuration()","0cbf711a":"LogClosed()","0cbf7ec0":"startPrivateIco()","0cbfe979":"updatePrivateSaleWithMonthlyLockupByIndex(address,uint256,uint256,uint256)","0cc00bc9":"MarketPlace(address,uint256)","0cc03e7a":"claimShare(uint256)","0cc04b55":"adminUnregister(string)","0cc06221":"getUserAccountInfo(address)","0cc10550":"BIToken()","0cc2001c":"TastToken()","0cc20a0c":"getHoldEarningsInRound(address,uint256)","0cc3ad77":"verdictExecuted(address,bool,uint256)","0cc3db97":"_createToken(uint256,uint256,uint256,uint256,address)","0cc4330c":"visit()","0cc4fb87":"changeGeneralSaleEndDate(uint256)","0cc6373f":"tokenExchangeRateMile3()","0cc69a27":"Marketplace(address,address)","0cc69b5b":"NOKIA()","0cc7086b":"canBurnUtility(address,uint256)","0cc73b6a":"BLOCKS_PER_ROUND()","0cc79a85":"getEnded()","0cc8299b":"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww()","0cc87b1c":"soldPreSaleTokens()","0cc88021":"hasPlayer(address)","0cc8c9af":"getOrCreateNextFeeWindow()","0cc91bb9":"setEarlyParicipantWhitelist(address,bool,uint256,uint256)","0cc966fa":"buy(address,address,uint256,uint256,uint256,bool)","0ccc642e":"emergencyFlagAndHiddenCap()","0ccc68bb":"_create_mineral(bytes32,address,uint256,uint256)","0ccc88b1":"BurnupGameBase()","0cccfc58":"auctionPeriod()","0ccde0b1":"initialSupplyPerAddress()","0ccec396":"getNumReleases()","0ccf30f1":"setRentTime(uint256)","0ccf5af4":"_prizeAmount()","0ccfdd8b":"potentiallyCirculatingPop()","0cd0563b":"broadcast(string)","0cd0c3d7":"resetRental()","0cd1812f":"sendFundsTo(address,uint256)","0cd205bb":"CrowdsaleContract(uint256,uint256,address,uint256,uint256)","0cd28e9d":"getRoundPlayerList(uint256)","0cd2b327":"approveSponsorableJob(address,uint256,address)","0cd30783":"getcompany(uint256)","0cd3c7f7":"ransom()","0cd3fad2":"_base64decode(bytes)","0cd4700a":"NT()","0cd522da":"returnStartBlock(uint256)","0cd55abf":"nextNonce(address)","0cd5ea83":"earlyBirdDuration()","0cd641b2":"tokenForComunity()","0cd64ad0":"changeEthDailyLimit(uint256)","0cd6ceb3":"Boldman()","0cd74cd9":"etherWallet()","0cd7d0f2":"DestlerDoubloons()","0cd865ec":"recover(address)","0cd8dd0b":"setXPTokenAddress(address)","0cd9aec6":"testFailTrustWhenStopped()","0cd9f271":"buy10()","0cda88ce":"mul256By256(uint256,uint256)","0cdbf3dd":"setReferralsMap(address[],address[])","0cdc92ea":"canBeCanceled(uint256)","0cdd4234":"mainAddress()","0cddb437":"CNDTPrivate()","0cde0e7d":"solve(int256,int256,int256,int256)","0cde6009":"KinTokenSale(address,uint256)","0cded5f0":"migratePool()","0ce08a49":"refundAmount(uint256)","0ce10cbd":"changeOwnerToZero()","0ce11049":"setBCoinContractAddress(address,address)","0ce11a77":"registrarAddress()","0ce11ded":"updateMthEthRate(uint256)","0ce18afc":"TabToken()","0ce1f4b7":"toB32(bytes,uint256,bytes)","0ce3151c":"personUpdateRelation(uint256,string)","0ce38276":"setColorYellow()","0ce3d998":"fetchCancelledOrdersForMerchant()","0ce46c43":"scheduleCall(address,bytes4,bytes,uint16,uint8,uint256[5])","0ce4c990":"minRevenueToDeliver()","0ce4e104":"bnbTokenWallet()","0ce52e25":"time_on_trademarket()","0ce5a098":"getWordCount()","0ce64868":"setPendingValue(uint256,string)","0ce6bd26":"EtherCarbon()","0ce71356":"canPropose(address,uint256)","0ce84479":"Wallet10()","0ce8544a":"Ethlyte()","0ce90ec2":"levelUp(uint256)","0ce96e71":"removeAddressFromQueue(uint256)","0cea64a0":"callSomeFunctionViaOuter()","0cea7534":"withdrawMargin(uint256)","0ceaeb5a":"ecosystemSupplyRemaining()","0cec1ecd":"getPixelDistributor()","0cecf728":"ListingCancelled(bytes5,uint256)","0ced5b02":"buyTokens(uint128)","0cedd0bd":"_getDestinationPartition(bytes32,bytes)","0cee1725":"withdrawFund(uint256)","0cee22e9":"testSetBalanceSetsSupply()","0cef7d5a":"WBW(uint256,string,uint8,string)","0cef9a27":"add2MarketPlace(uint256,uint256,uint256)","0cefa4de":"minPersonalCap()","0ceff204":"withdrawRevenue(uint256)","0cf01051":"startFunding()","0cf039e3":"setBuyRequestLimitInterval(uint256)","0cf044ee":"enable_exploration()","0cf1d050":"withdrawAllToExchange(address,uint256)","0cf1dafc":"refreshRate(uint256)","0cf1dd6e":"BattleOfThermopylae(uint256,uint256,uint8,address,address,address,address)","0cf20cc9":"withdrawBalance(address,uint256)","0cf3da77":"ELCToken()","0cf45ba5":"updateFirstDuel2(uint256)","0cf56f3f":"addBetWithReferrer(uint256,address,address)","0cf59cc6":"changeScientistForElement(uint256,uint256)","0cf6d879":"getARInvTable()","0cf79e0a":"transfer(uint256,uint256)","0cf7f3b5":"changePrice(uint256,uint64)","0cf820e0":"lengthOfRecord(uint256)","0cf838e1":"Test2(address)","0cf85c4c":"stateMask()","0cf868bf":"_airdropLimit()","0cf8bcab":"setItemTransferable(uint256,bool)","0cf935c0":"getDegreeCount()","0cf93a60":"ICOweek1End()","0cf94990":"checkMD(address)","0cf94cda":"calcInvitationAmount(uint256)","0cfa0318":"approveBurn(address,uint256)","0cfa1d12":"rndExtra_()","0cfa8af4":"deleteCandidateByStage(address,uint256)","0cfb37a7":"revealProofOfPerfBlock(uint32,bytes32,bytes32,bytes16,bytes32,bytes16,bytes32,bytes32)","0cfbf6c6":"lockConfiguration()","0cfccc83":"SUPPLY_CAP()","0cfd0a0d":"INDI()","0cfd2c6a":"RecreationCultureMassMediaCoin()","0cfed2a2":"pauseSale(bool)","0cff4058":"AacharyaToken()","0d009297":"initOwner(address)","0d011088":"convert2(string,string,address)","0d015e4b":"get_depositLock()","0d02369b":"takeSellOrder(address,uint256,uint256,address)","0d024f83":"DownStats(uint256,uint256,uint256,uint256)","0d02e05c":"setBuyStatus(bool)","0d032623":"getRemainingCompanyTokensAllocation()","0d043a60":"getRewardsWithdrawn(uint32,address,address)","0d047c5b":"NewFounderAddress(address,address)","0d047d49":"getFashionsAttrs(uint256[])","0d051c52":"clearCrowdsaleCloseTimer()","0d052f39":"getBurnAdminApproval(address,address)","0d055d1e":"sendBill(uint256)","0d0567ae":"latestAddress()","0d058fe3":"create(uint256,string,address)","0d062959":"FXTOKEN(address,uint256,uint256)","0d06a2ee":"setBenefeciar(address)","0d0a1901":"secondReserveAllocation()","0d0a6bf2":"investor_clearRefBonus(address)","0d0abf52":"matureBalanceOf(address)","0d0b0c74":"loadN(uint8[],uint256,uint256)","0d0b86c6":"CryptaurDepository()","0d0b8825":"weiPerRtc()","0d0bfb2f":"ba2cbor(bytes[])","0d0c0c51":"LogParticipation(address,uint256,uint256)","0d0c2008":"TwoAndAHalfPonzi()","0d0c2c62":"MOTDiscount()","0d0c529a":"getacttslen()","0d0cd4f4":"allWalletBalances(address)","0d0d0554":"ARMYToken()","0d0d7dc9":"raiseEvent2()","0d1017d6":"EnterRentCrowdsale()","0d10e842":"weiAmount()","0d1118ce":"burnTokens(address,uint256)","0d117d16":"chunk1IsAdded()","0d11dd70":"currentRefundInvestorsBallot()","0d121337":"transferOperatorRole(address)","0d1352cf":"marketAnts()","0d13bec6":"SellAcorns(uint256)","0d13d85e":"transferMintTokens(address,uint256)","0d13ea7d":"BONUS_2_DAYS()","0d145d16":"RegisteredPlayer(address,uint256)","0d14ed4f":"midgradeOpen()","0d157352":"ForkiToken()","0d15fd77":"totalVotes()","0d16b6ca":"setBTCRate(uint256)","0d16cba5":"addMessage(address,address,address,string)","0d172a01":"transferTokenTo(address,address,uint256)","0d174c24":"setWithdrawer(address)","0d17ace0":"currentDiscountPercentage()","0d17bc2e":"_disallow()","0d17c576":"_deliverBonusTokens(address)","0d18952b":"UpdateReleasePrice(uint32,uint256)","0d1946df":"MasterToken()","0d1a0c62":"setPackSize(uint256)","0d1a0d5e":"TokensPurchased(address,uint256,uint256,uint256)","0d1a94de":"SeriesCreated(uint256)","0d1cf200":"muscFund()","0d1d38aa":"info(uint256,bytes32)","0d1d8d6d":"listTeams()","0d1dcd74":"foundersRewardsMinted()","0d1edad1":"Start8()","0d1ee029":"add(string,int256)","0d1efd7d":"getDistrictCode()","0d1f3471":"deleteRecord(address)","0d1f9bb6":"isBetLocked()","0d1fce42":"getBankroll()","0d20a889":"getRegistrantId(address)","0d213d31":"migrateTo(address,uint256)","0d2218d6":"millRaised()","0d229be7":"priceTokenWei()","0d24317d":"_getTotalHp(int256,int256,int256,int256)","0d244d68":"setNotRetractable(bytes32)","0d25320c":"distributedAmount()","0d2560ee":"addMe()","0d25b6f2":"getMonsterName(uint64)","0d260b60":"_sendTranche(bytes32,address,address,uint256,bytes,bytes)","0d26c879":"getTotalFundationTokens()","0d271720":"transferFromAdmin(address,address,uint256)","0d274929":"getChannelName(uint256)","0d27864f":"TokenSwapOver()","0d278a8b":"Technology3GCrowdsale(uint256,address,address)","0d2806ad":"TOKEN_PRICE_D()","0d285d8c":"ETH_TO_QST_TOKEN_RATE()","0d28f8d1":"importIsland(bytes32,address[3],uint256[7],uint256[8])","0d290220":"getAllCardsType()","0d290deb":"SumToken()","0d294629":"splitProfits()","0d298318":"heapSort(uint128[])","0d2a1fa7":"mintAfterIcoPeriod()","0d2a246e":"tokenDividend()","0d2a25bb":"tentimes()","0d2bd1ac":"changeFact(string)","0d2be064":"buyToken(address,uint256,uint256,bool)","0d2cbe13":"settleBet(uint256,uint256)","0d2cc54a":"rebirthAxie(uint256,uint256)","0d2ce376":"submitVote(bytes32,bytes32)","0d2e017b":"getGamers()","0d2e677a":"getHotels()","0d2f2971":"authorized_recordFailedOldOwnerTransfer(address)","0d2f99d0":"removeChild(address,bytes32,bytes32)","0d2fc226":"createTokenUri(uint8,uint8,uint64,uint64,uint64)","0d3016bf":"_getIPFSHash(address,bytes32)","0d301c75":"removeFromGoldList(address)","0d30afb0":"CONFIG_DICE_SIDES()","0d310998":"DataContacts(address,address,address,address)","0d3167da":"BarmatzTestToken()","0d325b29":"setTokenApproval(uint256,address,bool)","0d329d14":"ICOtotalSupply()","0d334130":"m_callbackGas()","0d33cfa0":"meltAddress(address)","0d342cab":"autoTransfer()","0d3471f9":"sumHardCapICOStage5()","0d349aea":"updatePaid(address,address,uint256)","0d35f64c":"teamReservedBalanceOf(address)","0d3665b5":"IloveYou()","0d368fee":"deverify(address)","0d36c02c":"BACKUP_TWO()","0d3737b0":"mintAgent()","0d37ac7f":"toggleFunding(bool)","0d381a28":"tokensByOwner(address)","0d381cad":"addJobContract(uint256,string,bool)","0d38a077":"affRegister()","0d38ea48":"ethreceived()","0d38ffcd":"donationRate()","0d392cd9":"updateWhitelist(address,bool)","0d39820c":"preInvestStart()","0d39968c":"funderSmartToken()","0d3a557e":"_allowance(uint256,uint256,bytes32)","0d3ade73":"adjustNextTranche(uint8,uint8)","0d3b7901":"withdrawBonus(address[])","0d3c1b45":"addLayer(address,uint256,string,string)","0d3c7519":"distribute_NRT()","0d3cb409":"getAdjudicatorAddress()","0d3e4044":"binary_search(uint256,bytes32)","0d3f5cb5":"findCliPendTAndSetPrfm(address,address)","0d3fbdf8":"getPI_edit_8()","0d40022a":"_buildShip(uint16,uint16,uint8,bytes32)","0d40e8d6":"supportHarvestQuorum()","0d41117f":"calculateFee(uint256,uint256,uint256,bytes32,bool,bool)","0d42240a":"isWhiteListedAddress(address)","0d425559":"ownerSetMiningProfit(uint256)","0d441f8c":"totalNacInPool()","0d465263":"assessFees()","0d469483":"fiatToWei(uint256)","0d46f410":"getProposalParent(bytes32,bytes32)","0d46f877":"irucoin()","0d46f91a":"kycCertifier()","0d472f5f":"airdrop_byadmin(address,uint256)","0d4766a3":"STARTING_SHITCLONE()","0d480993":"getFoundersTokens(uint256)","0d483442":"NO()","0d4891ad":"signalDoneDistributing(uint256)","0d48a771":"claim(address,uint256,uint256,uint8,bytes32,bytes32)","0d48e8d0":"doBalance()","0d494a05":"isICOUp()","0d498b1e":"setTokenSPUsdCentPrice(uint256)","0d49a0f0":"addProofOfPerfBlock(uint32,bytes32,bytes32,bytes32,bytes32)","0d4a464f":"_newHorseShoe(uint256,uint256,uint256,bool,bool,address)","0d4a690a":"KopiToken()","0d4a8b3b":"wadmin_freezeAccount(address,bool)","0d4b8208":"convertCarbonDollar(address,uint256)","0d4c8f62":"setPayouts(uint256,uint256,uint256)","0d4d1513":"mint(address,uint256,address)","0d4d389f":"POOL_EDIT_4()","0d4e03e1":"changeTargetWallet(address)","0d4ea316":"buyLandWithTokens(bytes32,int256[],int256[])","0d4faa05":"acheter()","0d50266c":"TEAM_PERCENT_GZE()","0d505d54":"GDX()","0d5260e7":"setGasReserve(uint256)","0d5269ab":"distributeInviteReward(uint256,uint256,uint256,uint256,uint256)","0d5302c4":"DEVCLASS_EXTRACTION_BASE()","0d533e99":"UnlockEvent(address)","0d53b406":"recordEscrowOnBid(uint64,uint64)","0d543862":"sigBountyProgramEDUSupply()","0d54c49e":"processEndGame(uint256)","0d550b75":"allowance(uint256,address,address)","0d55af64":"AFRIHUBcredits()","0d5624b3":"preSaleStart()","0d567f38":"setStartRound(uint256)","0d571742":"setGenesisAddress(address,uint256)","0d57a47f":"setTokenCountFromPreIco(uint256)","0d582f13":"addOwnerWithThreshold(address,uint256)","0d5866e2":"setDeprecated(address)","0d59b564":"submitTransaction(address,uint256,bytes,uint256)","0d59c736":"Gavsino()","0d5a13f4":"BitdealCoin(address)","0d5a5c32":"CROWDSALE_OPENING_TIME()","0d5a621b":"childContractByIndex(uint256,uint256)","0d5be2df":"ballotLog(address,uint256)","0d5d6f7a":"BitEyeExchange(address)","0d5defa4":"escrowAddress()","0d5dfdd8":"debugVal4()","0d5e1e82":"redeemReputation(bytes32,address)","0d5e4c8d":"initialPrizeWeiValue()","0d5e87f4":"calcTokenAmountByZWC(address,address,uint256)","0d5f8f17":"setXWinContractAddress(address)","0d5fced3":"CHAJING()","0d605c4a":"NUM_RESERVED_AXIE()","0d60889c":"Thanks(address,address,uint8,uint8)","0d609939":"setParameters(uint256,uint256,uint256,uint256,address,address)","0d60e231":"migrationRewardTotal()","0d6103a1":"unsoldTokensBack()","0d616d20":"withdrawContribution()","0d61a4ff":"HUT34_VEST_ADDR()","0d61b519":"executeProposal(uint256)","0d61cd5d":"mintICD(address,uint256)","0d623e10":"oracleType()","0d63e87d":"setIntervalTime(uint256)","0d63fdbe":"parseOutputScript(bytes,uint256,uint256)","0d6495ef":"View_MediatedTransaction_Status(uint256)","0d649f90":"getVisaIdentifier(address,uint256,uint256)","0d65d50b":"TIER3()","0d65e3e7":"IS_SIGNATORY(address)","0d66343c":"getPaintingOwner(uint256)","0d668087":"lockTime()","0d668818":"dataContract()","0d66a3ec":"ApisCrowdSale(uint256,uint256,uint256,address,address,address,address)","0d679531":"soldedSupply()","0d6798e2":"userFinalize()","0d67d01b":"GradeBook()","0d68ddeb":"setBUUU(bytes32,uint256,uint256,uint256)","0d694114":"addressPremineBounty()","0d6c66a1":"safesub(uint256,uint256)","0d6d1437":"changeMemberName(address,string)","0d6d1e64":"EricToken(uint256,string,uint8,string)","0d6dcab3":"getProofOfStakeReward(address)","0d6e548e":"getAgentsNum()","0d6ec16f":"isMyDrone(uint256)","0d6f6f0b":"summTeam()","0d6f72aa":"DLXV()","0d6f7ca3":"maxgas()","0d6f849b":"minAmountPresale()","0d6f8563":"withdrawWei(uint256)","0d6fef5f":"MoonBook()","0d70e29c":"isAuthorizedToTransfer(address,address)","0d70e7e3":"getRate(uint256,uint256)","0d71212f":"robotLiabilityLib()","0d7128d8":"setGoalETH(uint256)","0d7172f4":"canMakeUnrefusableOffer()","0d71aba5":"getRace(uint256)","0d729abc":"setStopDay(uint256)","0d72d57f":"backendAddress()","0d730a1a":"updateMerchant(string,string)","0d73a44a":"_collectFee(address,uint256)","0d73c10e":"totalWeiRaisedDuringICO2()","0d7519a9":"initialTokenSupply(address,uint256,bool)","0d7548f7":"seeEthPrice()","0d75d68e":"_canDownload(bytes32,uint8,bytes32,bytes32)","0d75f659":"TemperatureMeasurementA2(address,int8,int8,uint16,string)","0d7714e2":"PiedPiperCoin(uint256,string,uint8,string)","0d78573e":"releaseManager()","0d78bc17":"importCustomer(address,address,uint256)","0d7982ad":"lockMinting()","0d799734":"setMinSet(uint256)","0d7a90c8":"maxSeedStage()","0d7af726":"addGame(address,string,string)","0d7b4ac4":"setLLV_edit_27(string)","0d7b69e2":"fiatCurrency()","0d7bca61":"withdrawSuccessful(bytes32)","0d7bf53c":"getBlockHash(uint256,uint256)","0d7c064f":"setMinStandingBalance(uint256)","0d7cffb0":"PrizePool()","0d7dc36a":"setManagement(address,address,bool)","0d7eaa8b":"FudgeCucks()","0d7f7eff":"TokenDestructible()","0d8053ca":"getBetLength()","0d806df7":"setXaurCoined(uint256)","0d80b84b":"crowdSaleTime()","0d80bf64":"whitelist(string)","0d80fcdb":"distributeBonuses(uint256)","0d81057e":"multiplierOnWin()","0d81a570":"migrationDone()","0d826264":"phaseThreeLimit()","0d82cb3a":"setHeir(address,uint8,uint256)","0d830190":"getCharacterInfo(uint256)","0d831d09":"forwardUpdateFeesTo()","0d83304c":"getSales()","0d83a371":"unprocessedQueryBytes32s(uint256)","0d83dd8a":"recordNewAddress(address)","0d854646":"magic()","0d85ef17":"ZombiewCreator()","0d8693bd":"sBitcoin()","0d869ada":"immortals()","0d873644":"addToken(uint256,uint256,uint256,uint256,bytes)","0d87a7c0":"WLBDrawsDB()","0d8814ae":"cardOwnerOf(uint256)","0d882848":"BTNSold()","0d88fb04":"removePatternUserIndex(address,bytes32)","0d895ee1":"setBurner(address,bool)","0d8b2708":"functionFour(uint256,uint256,uint256,uint256)","0d8b5fa2":"testControllerValidTransferFrom()","0d8b70bf":"grantAccessMint(address,address)","0d8c1a62":"toogleActive()","0d8c1c17":"read_supply()","0d8c2f67":"_logSendWebGiftAndSendEther(address,uint256)","0d8c3c2f":"calculator(address,uint256,uint256)","0d8cba74":"PublicMiningSupply()","0d8e6e2c":"getVersion()","0d8f9cee":"disableToken(address,address)","0d8fbe23":"getDigitFromUint(uint256,uint256,uint8)","0d8fd836":"ExeniumToken()","0d9019e1":"RECIPIENT()","0d9029ea":"Cryptodraw()","0d9049f2":"createOffer(uint256,uint256,string,uint256[])","0d927924":"XPCoin()","0d92b691":"transferDefaultPercentsOfInvested(uint256)","0d92d381":"ElectricQueue()","0d92ddac":"LockEvent(address,uint256,uint256)","0d92e3e8":"claimedTokens()","0d93afef":"revokePermissionBatch(address[],string)","0d9543c5":"donateAs(address)","0d955209":"ARTWORK_STARTING_PRICE()","0d95ccc9":"setPreSale(bool)","0d963235":"setGrowthBump(uint256)","0d973d2e":"getTimestampProposal(bytes32)","0d97f395":"redeem(string,bytes32)","0d98dcb1":"getTransferPreSignedHash(address,address,uint256,uint256,uint256)","0d997dc3":"setdivsforall(bool)","0d99bbec":"calculateUSDWithBonus(uint256)","0d99edbf":"presaleWeiLimit()","0d99f40a":"setInvestors(address)","0d9b2730":"FireXToken()","0d9b71cc":"setParter(address,uint256)","0d9d19b9":"joinMatch(uint256,uint256,string)","0d9db3f1":"VertesCoin()","0d9e16d1":"Alphonic()","0d9e8cab":"winnerLast(uint256,uint256)","0d9ec228":"_price_token_ICO3()","0d9f2817":"getJobSkillsCategory(uint256)","0d9f5aed":"mixGenes(uint256,uint256,uint256)","0d9f5faa":"oasisDirect()","0d9fcb03":"juegoSillaConsensys01(address)","0da03197":"_build(uint256,int256,int256,uint8)","0da04fa6":"Smrtoken()","0da072a8":"newMediaTokenCreated(string,address,string)","0da108ff":"JointICOBonusAmount()","0da1eb03":"deleteHiddenPosition(uint32,int64,bytes16)","0da24421":"bytesMemoryArray(bytes)","0da2c5f0":"setBuyLimits(uint256,uint256)","0da2e088":"upgradedContractAddress()","0da2ee2f":"init_register_contract(bytes32,address,address)","0da30317":"ExchangerPoint(address,address)","0da304b0":"AssetToken()","0da3bec6":"addToCategorie1(address,address)","0da3e613":"EthFactory()","0da4f991":"createContinuousSaleContract()","0da4fc46":"unMutex()","0da590d4":"withdrawDevFees()","0da5f845":"unBlacklistAccount(address)","0da719ec":"onERC998Removed(address,address,uint256,bytes)","0da76f1c":"externalDecline(uint256,bytes32)","0da84bc1":"newIntegrityFeeProposal(uint256,string)","0da86f7f":"JUSTed()","0da8ba5d":"checkRecentInvestments(address)","0da95761":"upgrade(string)","0da97716":"isSignedByAlex()","0da9e3d7":"tokenIcoAllocated()","0daa431a":"currentstageplayer1()","0daa5703":"set(bytes32,bool)","0dab6e08":"getallowedContracts(uint256)","0dac3d99":"deadlineTwo()","0dae2a63":"DTXToken()","0daf233b":"agingTimeByStage(uint256)","0daf37e6":"Sales(address,uint256,string,uint8,string,uint256,uint256,uint256,uint256,uint256)","0daf7a8c":"setBlacklistInternal(address,bool)","0daf96f9":"ThaiBahtDigital()","0daf999a":"heroContract()","0dafc58f":"Compound_now_Accrued_interest()","0db02622":"ownerCount()","0db03955":"fundingProcessed()","0db0624a":"z_Determinations()","0db1b335":"getNextMaximumPlayers()","0db293cb":"depositDekla(uint256,uint256,bytes,uint256)","0db38253":"DEFAULT_CLIFF()","0db38f66":"BetChampion(uint256)","0db3be6a":"decrementOpenInterestFromMarket(uint256)","0db49c84":"TokensSold(address,uint256,uint256,uint256,uint256,uint256)","0db4bad0":"claimDate()","0db5db26":"weiToOwner(address,uint256)","0db6a786":"SALES_DEADLINE()","0db6ba9b":"debugGetNumPendingSubmissions()","0db71d53":"createCrowdsale(uint256,uint256,uint256,uint256)","0db73c72":"noevent()","0db74aaa":"getInvestorBalance(uint256)","0db75ab9":"UsingAVirtualStruct()","0db79003":"addWineryOperationByRegulator(string,string,string,string,uint256,uint16,string)","0db81580":"purchaseAd(uint256,string,string)","0db9d891":"icoEndOfStageA()","0dba2400":"addToMidnightPrize()","0dbb78ce":"showPoolMembers(uint256)","0dbbc14c":"endOfROSCARetrieveSurplus()","0dbce4dd":"registerCandidate(string,string)","0dbd5270":"numberOfBackers()","0dbd5e81":"Send_Data(uint16)","0dbda70b":"angelOnLeaderboards(uint64)","0dbe671f":"a()","0dbea6d0":"robotRefund(address)","0dbedee7":"getNFTbyTokenId(uint256)","0dbf19cb":"PRICE_RATE_LAST()","0dbf23f4":"vehicleregistration(address,string,string,string)","0dbf2a3f":"isNewWeek()","0dbf527e":"MintedToken(address,uint256)","0dc03ec7":"INFLIV(uint256,string,uint8,string)","0dc06e50":"postTX(address,uint256,uint256)","0dc081c5":"tokenTransferOwnership(address)","0dc10a60":"advisorsAddress()","0dc115c8":"coinanxtemp()","0dc16a56":"getDepotEth(address)","0dc174bd":"track(address)","0dc1819f":"purchase_tokens()","0dc193f5":"getEtherReceived()","0dc1d357":"isAfterEnd()","0dc224ec":"partnersMintLockEnd()","0dc26492":"bankPercent()","0dc2e439":"setBZxAddresses(address,address,address,address)","0dc30397":"counterAppeal(uint256)","0dc3279d":"maxnumber()","0dc32b72":"EtherStopLoss()","0dc36f2a":"migrationAgentCandidate()","0dc5bffb":"crowdsaleTokenAmount()","0dc6bae5":"allowFreezeBypass(address)","0dc6c392":"Puttu()","0dc7bd07":"testBurnAuth()","0dc8b5a8":"shortenPreIco(uint256)","0dc8f435":"Party(address,uint256)","0dc96015":"getVotes()","0dc9c838":"changeSaleTimes(uint256,uint256)","0dc9ebfe":"FoundationAddr_()","0dca59c1":"debt()","0dca7ed8":"winningOption(uint256)","0dcad340":"getCitizenLocation(address)","0dcaf3e2":"test_setupSucceeded()","0dcb4627":"_addPendingRequestId(uint32)","0dcc59e6":"DEFROST_INITIAL_PERCENT_OWNER()","0dccca72":"showFPLocktime()","0dccfde4":"WithdrawProfitFunds(uint256,address)","0dcd772c":"AmountSent(address,uint256)","0dcd7a6c":"sendMultiSigToken(address,uint256,address,uint256,uint256,bytes)","0dcd9759":"PPToken(uint256,string,string)","0dcdefa8":"playThreeDiceTotal(uint256,uint256)","0dce06c1":"goalOfState(uint256)","0dcec63d":"updateEtherPrice(uint256)","0dcf298b":"pollExists(bytes32)","0dcf38a9":"FirstPaySend(uint256,address)","0dcf4b8f":"totalContribution()","0dd0a042":"lock(bool)","0dd0cf9e":"founderAdress()","0dd12d38":"moderatorTransferFrom(address,address,uint256)","0dd1d147":"ActionCompose(address)","0dd27120":"exchangeState()","0dd2d96c":"doFinalize()","0dd2d9c0":"Rookcont()","0dd30c81":"toB32(uint256,bytes,uint256)","0dd327fe":"FundsKeeper(address)","0dd32910":"welcomeMsg()","0dd3e1b1":"CNT_Crowdsale()","0dd3fd03":"buySpins(uint256)","0dd5db48":"startPreSale1()","0dd5e582":"masterTransferFrom(address,address,uint256)","0dd5ee1b":"verify(address,bytes32)","0dd636ef":"setBuyDividendPercentageFee(uint8)","0dd63ba3":"setIntArrayIndex(bytes32,uint256,int256)","0dd6a4ad":"addOversight(address)","0dd6eae1":"setCourse(uint256)","0dd84392":"setAllowance(address,address,uint256,uint256)","0dd8cdbb":"initRegistryData(address,address,address)","0dd93b56":"restartAuction()","0dda20d1":"sellCrystalDemand(uint256,uint256,string,string)","0dda350f":"dumpdivs()","0dda507e":"manualFinish()","0ddc4a94":"WHOLESALE_TOKENS()","0ddcc528":"Testable(bool)","0ddcfe8e":"checkAddress(address)","0ddd0824":"checkHash(bytes32,bytes32,uint256)","0ddeb632":"buy(bytes32,uint256)","0ddeeb4f":"tokenSaleUpperLimit()","0ddef58d":"isUnfrozen(address)","0ddf0bfd":"Cryptogs()","0ddf0c41":"updateCandidate(address,string,string)","0ddf78c2":"divForEthertoteDevelopmentWallet()","0de0271e":"paymentReceived(address,uint256)","0de04691":"testCreateWithParentForeign()","0de0b1bc":"giveBirthByUser()","0de1f4c1":"CreateCodeToken(uint256,string,string)","0de2b2d8":"openPosition(address[11],uint256[10],uint32[4],bool,bytes,bytes)","0de3513a":"test_validRuleChange()","0de39733":"activateFlat(address,uint256)","0de3b100":"VoteForProposal(uint256)","0de41aa4":"checkIfAddressIsWhitelisted(address,address)","0de41e45":"lockBegunAtBlock()","0de54c08":"setUpgradeController(address)","0de607c3":"makeSubscriptionID(address,uint256)","0de6aa7f":"getOneTimeCostsPaid()","0de94e4a":"HodlEth(address,uint256)","0de96dff":"giveBack()","0de9b825":"sellShip(uint256,bytes32)","0de9cacd":"reCalc()","0dea35bf":"playerBet(uint256)","0dea38b6":"VESTING_TIME()","0dec1c23":"requestDetachment(uint256)","0dec5d85":"initializeCrowdsale()","0ded195e":"freezeTokensOfOneUser(address)","0ded7f62":"secondBonusEnds()","0dedffb8":"feedAndMultiply(uint256,uint256)","0dee302e":"transferToRef(address,uint256)","0dee34ed":"tokensaleStageAt(uint256)","0dee3863":"nameEntriesCount(bytes32,uint16,bytes32)","0dee4af0":"doThrow(uint256)","0def3866":"updateChamp(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)","0df04802":"_7_russkayaRuletka()","0df07980":"secondLevelPrice()","0df0de11":"ownerChangeBuyerfee(uint256)","0df104d7":"EtheeraToken(address)","0df12532":"setpricefactor(uint256)","0df18942":"hsub(uint128,uint128)","0df19d35":"lockup(address)","0df22268":"CryptoSanguoToken()","0df23e5b":"saleCounterThisPhase()","0df2dcd2":"OdinToken()","0df3a342":"_coldStorage()","0df4135a":"CMCT()","0df428f0":"GoldenFleeceToken(uint256)","0df62a33":"Lilbank()","0df63210":"DOMAIN_SEPERATOR()","0df71602":"setWinner(uint256)","0df76370":"createInvoicingAddress(string,string)","0df8cbfe":"isCluster()","0df8e481":"setassetPrice(uint256)","0df9178f":"LimeEyes()","0df9d568":"CentraWhiteList()","0dfa1140":"_RaffleDraw()","0dfa71ae":"salesAgent()","0dfad849":"TokenSale(address,address,address,address)","0dfb0297":"changePriceSelectFight2Death(uint256)","0dfb6615":"user(bytes32)","0dfbdcc5":"lethalBonusAtHits()","0dfc2bcd":"originalFunds()","0dfce266":"setCovman(address)","0dfd085a":"ICOBeginsAt()","0dfd45f9":"removeHelper(address)","0dfd799c":"SponsoredLink(string)","0dfdcb76":"setAuctionWinnerMessageHash(bytes32)","0dff5cb9":"bop()","0e001ec0":"balanceOfContractFeeToken()","0e011262":"mockWhiteList()","0e014cf8":"viewBalance(address,address)","0e0280d0":"bookRoom(string,uint256[],uint256,address,bytes32)","0e0290a4":"_3_orientation()","0e037cc0":"bulkRemove(address[])","0e03f276":"setLLV_edit_7(string)","0e04a7d8":"isGameOver()","0e05a512":"superVoteAgree(address)","0e0643ae":"EvTokenAdd(uint256,uint256)","0e06e7ef":"NFOCoin(uint256,string,string)","0e0701be":"test_oneValidEqStringUint(int256)","0e07419c":"ConversionStarted(uint256)","0e07658b":"eliminate(uint256)","0e07ef81":"registerNameXname(string,bytes32)","0e0a0d74":"getAmount(bytes32)","0e0a6f0c":"getHours()","0e0ac84c":"QBASE()","0e0afb86":"getKYCVerificationContractAddress()","0e0b3519":"rateTierHigher()","0e0bc104":"computeNextGen0Price()","0e0c3f58":"super_transfer(address,uint256)","0e0c8241":"MAXIMUM_LOOP_BOUND()","0e0d3567":"highestAddressReserving()","0e0d946b":"CyberPayToken()","0e0dbd72":"updateToSendFromStorage(address)","0e0e26da":"getRemainShareAmount()","0e0e4acc":"LIANG(uint256,string,string)","0e0e73a8":"next_round_players()","0e0f05a5":"executeRaiseCapital(uint256)","0e0f1f00":"allocationAddressPreICO()","0e0f55d0":"RewardOrder(uint256,uint256)","0e0fec9f":"Arbitrage()","0e1087c3":"getMarketMakerFunds()","0e10e99d":"Vault(bytes32)","0e10f1ae":"X2()","0e114c89":"setBonusAffiliate(uint256,uint256)","0e11624b":"crowdsaleBalances(address)","0e136b19":"deprecated()","0e137368":"getBorrowInfo(uint256)","0e13af5d":"lockedTokensWallet()","0e13b9af":"getValue(uint8,uint8)","0e1456c0":"maxPreSale2Token()","0e149b52":"RBRToken()","0e14a376":"deleteAddress(bytes32)","0e14f955":"readyTobreed(uint256,bool,uint256,bool)","0e153d48":"MarketStake(address,address,address,address)","0e15561a":"totalRewards()","0e1565c2":"getClaims(string)","0e15dc89":"sizeOf()","0e169119":"grantAccess(bytes32,address,string)","0e18d11e":"changeFunder(address,address)","0e18ea3c":"fuoco()","0e19bac1":"MOBILINK()","0e19f74f":"makeDeposit(uint256,address,address,address)","0e1a0217":"boolOrRevert(bool,uint256)","0e1a0399":"calculateWithdrawalAmount(uint256)","0e1a9e3f":"getJobSkillsArea(uint256)","0e1ac81f":"natecoin(uint256,string,string)","0e1ae0e4":"RateUpdated(uint32)","0e1af57b":"getScore(uint256)","0e1b39fb":"Wallet()","0e1c0188":"errorTickerQueryError(string,bytes32)","0e1c2d46":"deliveryVSpayment(bytes32,uint8,bytes32,bytes32)","0e1c6491":"getTotalBettersForFighter(address,address)","0e1ca8a5":"Oraclize()","0e1cdd2d":"getStandardComponent(uint256)","0e1cfd97":"tokensub(address,uint256)","0e1d2ec8":"isUpdatable()","0e1d88fc":"addTender(uint256,uint256,address,uint256)","0e1da6c3":"claimTimeout()","0e1e1d0f":"removeAuthorized(address,address)","0e1e3914":"coreSupply()","0e1e56f7":"Tix()","0e1f6d3b":"DIGC(address[],uint256[])","0e1fa28f":"containMinValueFromOther(uint256,address)","0e1fd315":"changeWhitelistStatus(address[],uint256[])","0e20ebe2":"right96(uint256)","0e213129":"ZestCoin()","0e216954":"ReturnEthToEtherhero()","0e21750f":"setFund(address)","0e219339":"getContractHash(string)","0e21a6a6":"ADD_TIERS(bytes32)","0e21c886":"OWNERS_TOKENS_AMOUNT()","0e21f784":"getCoverImage(address,uint256)","0e21fce3":"Suggest(string)","0e2286d3":"rdiv(uint256,uint256)","0e22dc5b":"getAllCommentIdsByAd(uint256)","0e2318cb":"BonumFinancialTokenPreSale(uint256,uint256,address,address,uint256)","0e234cd4":"countBonus(uint256)","0e2350ba":"TopCoinSaleClosed()","0e239679":"SputnikToken(address)","0e2451c7":"Lilith()","0e24c52c":"register(string,string,string,string)","0e24c810":"calcAmountWithBonus(uint256,uint8)","0e2562d9":"getAccountAddress()","0e25b620":"addFreeze(address)","0e263906":"transferToBranch(address,uint256)","0e26fb41":"SeniumSupply()","0e27324d":"approveKYC(address)","0e274eab":"pullTokens()","0e275b49":"artworkSaleCount()","0e27e3df":"removeConsumer(address)","0e2833eb":"random(uint8,uint8)","0e288064":"setManyBonusExtra(address[],uint256)","0e28bc4a":"CanceledAuctionEvent(address,address,uint256,uint256)","0e2916e1":"requestClosingChannel(uint256)","0e2984d1":"Cancel(uint64,address,address,uint256,int256)","0e29df22":"sendEther()","0e2a05c8":"delayOfICO2()","0e2a273f":"getCandidateIndexArrayLength()","0e2a9237":"r15Backers()","0e2b75cc":"setWhitelistedMemberTypes(uint256[])","0e2cfe93":"getPercent(uint8,uint256)","0e2d1a2a":"vestedBalanceOf(address)","0e2d27cd":"claimUnsoldCoins()","0e2dc949":"TIER_3_BUYIN()","0e2dce69":"Play()","0e2df9aa":"Withdraw(address,uint256,int256)","0e2e4037":"removeOwnersConfirmations(address)","0e2e4ce8":"maximumLockYears()","0e2ebe6c":"GetPoolInformation(address)","0e2f0a0f":"weiReceive()","0e2f5fb3":"getThree()","0e2f8058":"setBCFContractAddress(address,address)","0e2f94a6":"RegionsToken()","0e30643f":"MemberChanged(address,uint256)","0e30cda7":"getTotalCoinsAvailable()","0e316ab7":"removeSigner(address)","0e32a720":"sendMarketByOwner(address,uint256)","0e336f00":"getSeedsSinceLastHatch(address)","0e33e181":"get_modulo_value(bytes32,uint32,uint32)","0e3484c1":"DelGift(string)","0e34df82":"openTicket()","0e351605":"transfer_token(address[],uint256)","0e3589d9":"DAILY_FUNDS_RELEASE()","0e366cbf":"ourLastJackpotWinner()","0e3802e9":"addRewardToken(address,uint256)","0e388774":"setContractorImpl(address)","0e38901a":"unvault(uint256)","0e39b210":"founders_1()","0e3a04a7":"digitalcashToken()","0e3a23db":"mineMany(address[],uint8[],bytes32[],bytes32[])","0e3a997e":"countPartnerPlayers()","0e3ab61d":"startSale(uint256)","0e3b70fd":"month48Allocated()","0e3bc6ca":"BLOCKLAND()","0e3be37d":"ToggleTransferAllowanceFor(address,bool)","0e3c8068":"BotpyToken(uint256,string,string)","0e3c9563":"privateIssue(address,uint256)","0e3d2202":"feeFixed()","0e3db9f2":"startNow()","0e3e9a67":"FundsMigrated(address)","0e3f732a":"TheGame()","0e3fd8c2":"getSolid(uint256)","0e407bdd":"soldTokensMainSale()","0e414500":"setClaimingStart(uint256)","0e417055":"address5()","0e41c63b":"addHistory(uint256,address,uint8)","0e420f42":"setEventResult(string,uint64,uint8)","0e429ecc":"providerValue()","0e4355d4":"validFactories(address)","0e43806a":"Rental(address)","0e438ee5":"withdrawTeamToken()","0e43d7c3":"getUserRoleBitmask(address)","0e449cf9":"foundersTokens()","0e4649fd":"LogProcessedInterval(uint64,uint64)","0e46695e":"sumHardCapICO2()","0e468245":"pledgeEth(uint256)","0e473722":"volumeType4()","0e4739b1":"_refulshFrozenInfo(address)","0e476e27":"getten(string)","0e479dc7":"getShop(address)","0e47c259":"evolveByAtom(uint256)","0e47c76f":"rotate(uint64,uint256)","0e496d25":"VICETOKEN_ICO_IS_FAKE()","0e4983ff":"setSecondsAfter(uint256)","0e4a4e8c":"fechVoteNumForCandidateByStage(address,uint256)","0e4aed3f":"yearlyRewardPercentage()","0e4b0ba8":"account2Address()","0e4b10b6":"totalETHLimit()","0e4b8389":"getEstKeyBlockNr(uint256)","0e4c3aa6":"OrangeCirculateChain()","0e4d5919":"PHASE1_START_TIME()","0e4debbc":"SHIT()","0e4e0054":"isIcoFinshed()","0e4e47cb":"claimAfter90days()","0e4e5d93":"_bidERC20(address,address,uint256,uint256)","0e5004e6":"_calcPhasesPassed()","0e501834":"emergencyTransfer(address)","0e51574f":"endGameRound()","0e51c00d":"getPawnStatus(uint256)","0e5229b0":"addOwner(address,uint8)","0e5263fa":"discountedTokensPerDollar()","0e5356ec":"testEvents()","0e536ff4":"ratifyMint(uint256,address,uint256)","0e5376d6":"vars()","0e53aae9":"connectors(address)","0e53bf67":"producedDiamondCaps()","0e541185":"pauseBet(uint256)","0e542f82":"refundOptions(address)","0e54316f":"setSantaClaus(address)","0e54a883":"setPublicSaleDate(uint256)","0e54b872":"registerUser(string,address)","0e54d1fc":"pruneShareholders(address,uint256)","0e554bd8":"scheduleCall(bytes,uint256,uint256,uint8)","0e5689bc":"getBidsNum(address,uint256)","0e56f529":"guardarDocumento(string,bytes32,bytes32)","0e58369f":"registrator(address)","0e583df0":"GEN0_STARTING_PRICE()","0e587aee":"set_presale_arbits_per_ether(address,uint256)","0e58d08c":"setInvestmentGateway(address)","0e597ed9":"PreCrowdsale(address,address)","0e5a6c70":"peep()","0e5aaace":"initIcoRule()","0e5aaffc":"getSellingItemByObjId(uint64)","0e5c011e":"harvest(address)","0e5c6a3d":"_withdrawTo(address)","0e5ceb47":"register(bytes32,bytes32,string)","0e5d095d":"codepointsOf(uint256)","0e5d4b99":"fechVoteMainInfoForVoter(address)","0e5e36fb":"TCH(uint256,string,uint8,string)","0e5e4d72":"createAndExecuteTransaction(address[],uint256[],uint256)","0e5fc721":"addUserBalance(uint32,uint64)","0e5fdad4":"releaseTeamTokenTransfer()","0e5ffb3c":"hashVersion(uint32,uint32,uint32,string,string)","0e60de7a":"rinkeby3()","0e620d70":"MultiSend()","0e62fde6":"getAttributeTypeID(uint256)","0e6436d2":"TokenChange(address)","0e64780d":"distribute(address,uint256,uint256,uint256,uint256,uint256,uint256)","0e64ff0e":"tradeWalletTokens(address,uint256)","0e655432":"adventureItemContract()","0e65e5d9":"ETBSToken(address)","0e662cf0":"buyTokens(uint16)","0e662ff9":"oddEven(uint8,address)","0e666e49":"userExists(address)","0e67cf6c":"GetWageredWei(bytes32)","0e67f4bb":"ReferrerRegistered(address,address)","0e6848cc":"massNotify(address[])","0e686170":"changeTotalAirdrop(uint256)","0e687501":"OpticalNetwork(address)","0e68c2f0":"finishPurse(uint256)","0e69782b":"BCTT()","0e698493":"transferFounderTokens(address,uint256)","0e69890f":"withdrawATN()","0e69d16b":"testToSliceB32()","0e6ae3fb":"bid(string,string,uint256)","0e6b0afc":"adminContractSettings(uint32,address,uint256)","0e6b5823":"changeMaxBet(uint8[157])","0e6bc36c":"OkeToken()","0e6c04db":"icoThreshold1()","0e6c5f93":"changeAddr(address)","0e6ce30d":"createNew(uint256)","0e6d1de9":"getLatestVersion()","0e6d3a89":"mintingState()","0e6dfcd5":"redeem(address,address,uint256)","0e6e1b3e":"addSubject(bytes32)","0e6e4f3e":"lockPlayerFunds(address)","0e6f21f2":"sendBatches(address[],uint256)","0e6f2cf8":"game_withdraw()","0e708203":"rewardAccount()","0e70ab11":"addEthBonusToBuy(address,uint256,uint256)","0e70f147":"immediateRefund()","0e713a50":"_preValidatePreICOPurchase(address,uint256)","0e714202":"returnContributionsToTheSponsors()","0e7238f1":"setNormalRoomMax(uint256)","0e741a36":"generateVoteSecret(string,uint256)","0e7470cb":"getFullProfit(uint256,uint256,uint256)","0e757191":"finalizeRound(bytes32,uint8,bytes4)","0e757a2e":"testSetAndGet()","0e78501f":"ChangeStart(uint256)","0e787cce":"predict(bytes32)","0e792536":"removeGlobalConstraint(int256,address,int256,address)","0e7938ec":"tokenCreateFunction()","0e79964c":"getBoolField3()","0e7a2d4e":"isInAssetList(address)","0e7a967a":"_distributeBountyToken(uint256)","0e7b592a":"Halo()","0e7b8e07":"Sleipnir()","0e7b9f10":"hasBuyerLotteryBonusWon(address)","0e7bda18":"addAddressListItem(bool,address,address,uint256,address)","0e7c0f80":"masterCopyCountdown()","0e7c1cb5":"originalToken()","0e7c5d2b":"test_validEmptyEqEmpty256()","0e7ce976":"owner_bonusSend()","0e7d490d":"numberOfVotes()","0e7ebce4":"min_bid()","0e7f2be7":"DecreaseAllowance(address,uint256)","0e7f756a":"totalAssetUnits()","0e801d7a":"ticket(address,bool,uint256)","0e80d8b9":"PRICE_SALE()","0e816f66":"payForYourGladiator(uint256)","0e830e49":"setEngine(address)","0e8354b9":"CreateOOG(address,uint256)","0e83afbb":"approveTokens(bytes32,address,uint256)","0e83d92b":"playerPull()","0e840284":"LMDA()","0e848c1d":"NeoBitToken()","0e850239":"scheduleCall(bytes4,bytes)","0e856588":"getScheduledTimelockCount(address)","0e858b64":"setBridgeValidatorsOwner(address)","0e8670e0":"highestPrice()","0e86b63e":"calcLevel2Bonus(uint256)","0e86ec01":"doConfirmDeath()","0e870871":"rateOfZLT()","0e87457b":"ZincElement()","0e887cda":"getUserMoney(address)","0e88aace":"contractErc20Token()","0e88c4a4":"RegisterMine(string,uint256,address)","0e89341c":"uri(uint256)","0e89439b":"stake(uint256,bytes)","0e8a4ac7":"getPositionPrincipal(bytes32)","0e8b3971":"mintTap()","0e8bf00e":"ReleaseOfAccount(address,uint256)","0e8c0cdd":"_mineableSupply()","0e8ca718":"transferCurationRights(address)","0e8da019":"getInitRound(uint256)","0e8de473":"getDividendBalance(address,address)","0e8ef0c1":"systemOnSaleCount()","0e8f0a95":"commonDiscount()","0e91f4b3":"removeBadToken(address)","0e923d3b":"submitEther(address)","0e9279a0":"BountyManager()","0e929611":"AdminRemoval(address)","0e92eb6d":"sellMyTokens(uint256)","0e934447":"createPromoPlayer(address,string,uint256,uint256)","0e940fd8":"CELL_ADD_SPACE()","0e94869e":"ArJoust(uint256,uint256)","0e94a0ee":"proofToken()","0e95e127":"readpriceXname(string)","0e96127a":"transferEther(address,address,uint256)","0e96938c":"matchExistingBids(bool,bytes32)","0e972421":"isSpawningAllowed(uint256,address)","0e975f73":"FirstPeriodEndDateUpdated(uint256,uint256)","0e978e81":"AgriChainDocumentContract()","0e97cfdf":"placeOrder(uint256,uint256,uint256)","0e97e3d3":"validateAuthentication(address,uint256,uint256)","0e97fa7a":"setEarlyParticipantsWhitelist(address[],bool[],uint256[],uint256[])","0e98f811":"reservedTotalSupply()","0e995ff5":"cd()","0e997ce3":"IPMCoin()","0e99b380":"getCoinAddress(bytes4)","0e99f5e6":"claimBonus(address)","0e9a9dbb":"signature(string,address,bytes32)","0e9aa208":"getAddressAdmixture()","0e9b6281":"setSubsidy(uint256)","0e9cbbad":"PurchaseFailed(address,uint8)","0e9ccb94":"Boboho()","0e9d02cc":"setTokensPerKEther(uint256)","0e9d56a2":"getTotalEth()","0e9e543a":"collectableTokenOf(address)","0e9ecedd":"mEtherInvalid()","0e9ef902":"join_voter()","0e9f0816":"getContractHash(uint256)","0e9f9f86":"isMinimalReached()","0e9fb0ed":"getOptionAddress(address,uint256,address,uint256,uint256,bool)","0e9fd199":"licenseAffiliate(uint256)","0ea008c8":"bonuscalpre()","0ea04562":"requestRandom(uint256)","0ea12558":"girlIdToOwner(uint256)","0ea126f9":"registerUser(address,string)","0ea17a76":"safe_mul(uint256,uint256)","0ea1f459":"DVCToken()","0ea227e7":"StarTravelLane()","0ea317a9":"SUNCOIN()","0ea37c64":"repost(uint256)","0ea412ab":"_setPrice(uint256)","0ea49bc1":"changeRental(address)","0ea51122":"decreaseMarketCreatorSettlementFeeInAttoethPerEth(uint256)","0ea5edea":"payTodayReward(address,uint256)","0ea662ea":"hourPot()","0ea733bf":"setmyPrice(uint256,uint256)","0ea7a110":"getEmployee(address,uint256)","0ea7c8cd":"airDeliver(address,uint256)","0ea7ee82":"testRegisterAndVerified()","0ea81cf9":"initialPokemonInfo()","0ea8e5ac":"tokenPriceIncremental_()","0ea9e4f1":"doInitialReport(uint256[],bool)","0eaac106":"TokensAdded(address,uint256)","0eaadd04":"_addBurner(address)","0eaaf4c8":"withdrawBid(uint256)","0eaaf5ac":"auction_start_time()","0eab31b1":"initAuctions(uint256,uint256,uint256,uint256)","0eaba26a":"getCurrentValidatorsLength()","0eabdab6":"removeOracles(bytes4[],address[])","0eabeffe":"sendMessage(string,string,string)","0eac6ae7":"getClientAtIndex(uint256)","0eac7a0e":"transferToAnotherAddr(address,address,uint256,string)","0eacecd2":"getEquipTokens(address)","0eacf634":"BKCToken()","0ead3ec8":"payeePricePerPart()","0eada49f":"standingOrdersByPayee(address,uint256)","0eae2f86":"initAccount(address,uint256)","0eae73dd":"stringToAddr(string)","0eaee52c":"setGrantsUnlock(uint256,bool)","0eaf94c3":"secondDueDate()","0eafb6da":"getCapInWei()","0eafe473":"balanceOfCoin(address)","0eb05d49":"viewGoldList(address)","0eb0afa6":"createDebt(address,address,uint256)","0eb14edb":"Mondo()","0eb15f0f":"claimRewardWithBlockData(uint256,bytes)","0eb1947f":"changeGatewayAddr(address)","0eb288f1":"executeTransaction()","0eb34740":"lockedTokens()","0eb3f5a0":"sweepCommission(uint256)","0eb3f993":"getAreaQualityByDay(uint32,uint32)","0eb40426":"IncPreSupply(uint256)","0eb40916":"EthernautsStorage()","0eb43fe3":"SaleClockAuctionERC20(address,uint256)","0eb495c2":"pushCity()","0eb4c7d6":"checkTeamUnlockedTokens(address)","0eb4d170":"setLockup_dakehus(address,uint256,uint256)","0eb51018":"getProductOperation(string,address,uint256,uint256)","0eb523ac":"PRIVATE_STAGE_FINISH()","0eb524d4":"block1()","0eb5a167":"XCloudRoc()","0eb6f543":"hodlerTotalValue6M()","0eb82c13":"updateHpbNode(address,bytes32,bytes32,bytes32)","0eb8d153":"AICoreCoin()","0eb8ed07":"transferEnable(bytes32)","0eb8fe7a":"getChannelCount()","0eb944d5":"PiperToken()","0eba6b06":"getChannelInfo(address,address,uint32)","0eba7f2d":"SomeCoin(string,string,uint8,uint256)","0ebb0d30":"getSummaryReferralProfit(address)","0ebb172a":"WITHDRAWAL_DELAY()","0ebbe5d6":"firstPrivateLockTime()","0ebbf213":"AddPauser(address)","0ebc1568":"viewTokenName(uint8)","0ebdc43a":"IsSaleEnabled()","0ebe0f32":"HacToken()","0ebe31c8":"getCountTrack()","0ebe4acb":"EtherModifierMonstro()","0ebf0bcb":"FAID(uint256,string,uint8,string)","0ebf3886":"CryptoLandmarks()","0ebf5f27":"Reservation2(address,uint256)","0ec0692a":"prizeEth()","0ec0786d":"tb()","0ec08b29":"getLoopLimit(uint256,uint256)","0ec0fce5":"setPercentage(uint256,uint256,uint256,uint256)","0ec1268c":"_freezeFunds(address,address,uint256,uint256)","0ec12782":"internet()","0ec173d0":"changeTreshold(uint16)","0ec1b057":"verify(bytes32,string,string)","0ec1ce16":"_getCurrentRate()","0ec1e7ac":"claimBalanceByOwner(address)","0ec2c379":"_getJYPCBonus(uint256)","0ec2c5d7":"loik()","0ec3b247":"testControlSetEnforceRevisionsNotOwner()","0ec3f62e":"NITRONEUMERC20(uint256,string,string)","0ec48a42":"quater4()","0ec4fb0a":"WHITELIST_PERIOD()","0ec52541":"unshelf(string)","0ec59606":"addPlayerTxHistory(address,uint256,uint256,uint256,uint256)","0ec5c49a":"changeEthToTokenRation(uint8)","0ec6688d":"intrepidSoldCount()","0ec66924":"getStudentRequestsLength()","0ec6b08d":"validIdentifier(uint256)","0ec78d9e":"setup(address[],uint256,address,bytes)","0ec843d1":"setMinAmount3Round(uint256)","0ec852f2":"QuranToken()","0ec89f2b":"requiredProgressOfPreviousDungeon()","0ec8c387":"getContractRates(bytes32)","0ec8e2b4":"Moneyplant()","0eca4c92":"CryptoPunksMarket()","0ecae7d3":"wager(bool,uint256,uint256,uint8,bytes32,bytes32)","0ecaea73":"create(address,uint256)","0ecb93c0":"addBlackList(address)","0ecba3f8":"BusinessAutomationUnion()","0ecd0424":"decompressPoint(uint256,uint8)","0ecda113":"freezeEndTime(uint256)","0ecdbfd4":"DesingCoin()","0ecdd94f":"goldFeeDataUpdatedAtBlock()","0ecea92c":"allowInvestor(address)","0ecf19e5":"balanceWithoutFreezedBonus(address)","0ed0b19f":"resetBonusPool(uint256,uint8)","0ed15d23":"dInit(address)","0ed21029":"getIssueAssignee(uint256,bytes32)","0ed2fc95":"exchange(address,address,uint256,uint256)","0ed387c1":"getSpinsContainer(bytes32)","0ed3909c":"startBonusCompaign(uint256)","0ed3d5b9":"passed(address[])","0ed40dff":"resetAppendDecryptedBids(uint256)","0ed469b8":"houseFee()","0ed5410a":"endOfRewards(bool)","0ed59a60":"releaseProof(bytes32,string)","0ed5a933":"isCanceled()","0ed61407":"makePick(uint8,uint256)","0ed659b4":"getLLV_edit_18()","0ed68aa5":"getPlanetOwners(uint256,uint256)","0ed6b171":"LogStartICO()","0ed74c08":"func_0C2C()","0ed7a0f2":"Predatex()","0ed7c905":"FantomToken()","0ed86f04":"withdrawDivis()","0ed9b97b":"buy_fromContract()","0edaf441":"lockAddressRegistration(address)","0edc1923":"changeMaximumHodlDuration(uint256)","0edc4737":"SEED()","0edc54a8":"holdTokens(address)","0edd2ffc":"penalty()","0edddd3e":"lstFunc(uint256[])","0ede050b":"ico3Max()","0edf2134":"deathData_a17()","0edfb0f7":"withdrawCollectedInterest()","0edfe7ec":"setBackendWallet(address)","0ee02d9d":"getHash(address,address,uint256,bytes,address,uint256)","0ee07836":"adjustDifficulty(uint256)","0ee21ddc":"setEtherPriceUSDWEI(uint256)","0ee2b0e6":"commissionToWithdraw()","0ee2cb10":"getCreator()","0ee2ce58":"VKNToEth()","0ee33128":"RequestRefund()","0ee33c70":"claimed_blocks()","0ee36dbc":"setParamsStopSale(bool)","0ee3c31d":"getUserIndexOnEther(address)","0ee4229c":"grantReservedToken(address,uint256)","0ee454dc":"getBUB(bytes32,uint256)","0ee526e0":"enableMintToken()","0ee5ca1f":"secondsLeftPublic()","0ee62c77":"getStageVolumeBonuses(uint256)","0ee75f6b":"TOKEN_THIRD_PRICE_RATE()","0ee7968e":"REWARD_NUM()","0ee79fb3":"closeReferendums()","0ee7c858":"beatMartialOwner()","0ee7f045":"TransferSellAgent(address,uint256)","0ee85800":"getCFOHashing(address,uint256)","0ee8e338":"testFailCreateWithParentsForeignNotInUse0()","0ee95ecf":"getNextPrice(bytes32)","0eea10b1":"sysPer()","0eeb63b9":"getUserAccountTokenBalance(address,address)","0eebd59b":"log_recast(address,uint256)","0eebdb04":"AprilAirdrop(address,address)","0eecae21":"draw()","0eecc2a3":"updateRequiredTimeBetweenDraws(uint256)","0eeccb84":"removeAdvisor(address)","0eedc7b5":"voteDescription(uint256)","0eedc9d9":"payAffiliate1Address(address)","0eefdbad":"tokenTransferProxy()","0ef12aa9":"getUserID(address)","0ef14b98":"viewFirstLotOfClauses()","0ef25f8b":"TicTacToeRules(address,address,address,address,uint256)","0ef26743":"height()","0ef270d5":"CreateNewAccount()","0ef2d7af":"bonusDeadline()","0ef43cbd":"confirmerNouveauProprio()","0ef486d1":"revisions(uint256)","0ef504ae":"preSaleHalted()","0ef524ff":"setDefaultMint(uint256)","0ef5a7e0":"allocateToCrowdsalePurchaser(address,uint256)","0ef60e48":"setRubusOrangeAddress(address,address)","0ef67887":"Balance()","0ef6eb9c":"getCompte_33()","0ef71d79":"privatized(bytes32,bytes32)","0ef72880":"DADXChainERC20()","0ef76243":"withdraw_Arina(uint256)","0ef7cc8e":"metadataOf(uint256)","0ef845df":"propose(address,string,string,string,string,string,uint256,uint256,uint256,uint256)","0ef96356":"stakeFor(address,uint256,bytes)","0efafc03":"SaleClockAuction(address,uint256)","0efafd01":"getPlayerGainLossOnLastFlip()","0efc9d03":"minEthToRaise()","0efcf295":"deleteAnyProposal(bytes32)","0efd0973":"club()","0efd2cca":"postICO()","0efd3d5b":"getPrice(string,string,uint256)","0efd4989":"numAdmins()","0efe5fb7":"addToCart(uint256,string)","0efe6a8b":"deposit(address,uint256,uint256)","0efe7f62":"objectShoes()","0f00dfdb":"NonOperationalWithdrawManager(address)","0f027c67":"membersLength()","0f0308fb":"upgradeGems()","0f03be37":"mimax(uint64,uint64)","0f03e4c3":"numberOfAccounts()","0f041cef":"KitFutureToken()","0f0433c4":"_getDroneAbility(uint256)","0f050dce":"getBitcoinAddress(bytes32,int256,bytes32,int256)","0f052173":"invest2017()","0f059913":"vested(address,uint256)","0f06670a":"didWin(bytes32)","0f092c44":"MIDGRADE_TYPE3()","0f096163":"Chainy()","0f0ba766":"removeChild(uint256,address,uint256)","0f0c27ad":"HashRegistered(bytes32,address,uint256,uint256)","0f0ed39e":"EthealPromoToken(address)","0f0f3f24":"addOwnerAddress(address)","0f106e0a":"encodePacketCommit(uint256,uint256)","0f120fc3":"toggleTrading()","0f122a6c":"_setSealableProperty(uint256,bytes32,bytes32)","0f12354d":"updateStateBasedOnContributions()","0f12b32a":"Garcut()","0f12d8f8":"RoundWinner(uint256,uint256,address,uint256)","0f12ffac":"weiToFNU(uint256)","0f134bee":"payPreviousOwner(address,uint256)","0f1354f3":"burnFrom(bytes32,uint256)","0f136527":"getShareIndex(address)","0f13af83":"setCurrentCoin(address)","0f13dbde":"inRankList(address)","0f14212b":"transferFromOwner(address,uint256,uint256)","0f145dca":"Ethbet(address,address)","0f149d0a":"changeBurnPaused(uint256)","0f14a7e4":"ModeratorRemoved(address,address,bool)","0f14b900":"setTimeStampStatus(uint256,uint256,string)","0f15573b":"setLLV_edit_2(string)","0f15f4c0":"activate()","0f166ad4":"local()","0f183119":"vote_for_candidate_D_for_Free()","0f188e1d":"studioLevel(address)","0f18a530":"chemistry()","0f18ac07":"transferFromOwner(address,uint256)","0f191524":"fillOrder(uint256,bytes)","0f19f92a":"isIcoOver()","0f1a6444":"cliffTime()","0f1bf454":"getGameStatus(uint256)","0f1df574":"WithdrawETH()","0f1e3b5b":"getHousePayout()","0f1e8c24":"commitTeam(address,uint256,uint256[])","0f1ed0c6":"setOwner(address,bytes32,address)","0f1fd654":"ELearningCoinERC()","0f2004a1":"Bob(address)","0f201ca6":"reportConvertTokens(uint256,address)","0f20b9df":"crowdsaleContracts(address)","0f215afb":"paySeller(uint256,uint256)","0f21a046":"WithdrawMonethaBuyerUtility()","0f226a31":"getServiceUpdateAddress(address,uint32)","0f228087":"transferTokens(address[],address)","0f2284cc":"SbuyToken(address,address)","0f22a95d":"deleteCountry(uint256)","0f23a104":"burnAssetOperator(uint256)","0f23b047":"getPlayNumber()","0f23cbaa":"recycle()","0f246780":"ZJF()","0f24f5c8":"doTransfer(address,uint256)","0f250780":"AKCToken()","0f2636bd":"getStockSellOrderPrices(uint256)","0f264e1a":"farmerRequestCertificate(address,uint256,string,string,string,uint256)","0f2905f7":"verifyStage()","0f29eb73":"revokeStaking(address)","0f2bc56d":"fixTokenCalcBug()","0f2c9329":"split(address,address)","0f2da195":"LimitSet(uint256,uint256,uint256,uint256,uint256)","0f2dabca":"punchIn(address,uint64)","0f2e5b6c":"Locked()","0f2f9bb7":"getNextWhitelistedNode(address)","0f2fa473":"test_already_paid()","0f3092fb":"EasyHomes()","0f30c971":"TheGambler()","0f3554ad":"addBoolListItem(bool,address,address,uint256,bool)","0f36f691":"getLockStatus(address)","0f37e79a":"transferClockmaker(address)","0f37fd4a":"HexelErc20Token(string,string)","0f391236":"ethRateMax()","0f39c6ab":"removeVotersVote(address)","0f3a00d5":"CreateCOR(address,uint256)","0f3a0533":"extraReceiverAmount(address)","0f3a1412":"getArrlist(uint256,uint256)","0f3a31d6":"SymbolChange(string)","0f3a9f65":"setPeriod(uint256)","0f3ae419":"PreferentialRateChange(address,uint256)","0f3afeec":"Nodelist()","0f3b305e":"getPawnPackageId(uint256)","0f3bd3fd":"teamJust()","0f3c92f3":"calculateFLCCore(address,uint256)","0f3cb8bc":"setCardUpgradeLevels(uint256,uint256,uint256)","0f3d7c3e":"release(string,uint32[3],string,string,string)","0f3d8803":"getMinPurchase()","0f3de489":"newAuction(uint256,uint64)","0f3e7027":"clearTransferValueby(address)","0f3e9438":"frontRunner()","0f3eb785":"add(string,uint256,uint256,uint256)","0f3f0e42":"allowTotalMintAmount()","0f3f53c1":"dappsBonusCalc(address,uint256)","0f3fb52a":"LogSetState(uint256,uint8,uint256,bytes32)","0f3fc29e":"setChestProduct(uint16,uint256,uint16,bool,uint32,uint24,uint24,uint8,uint8)","0f40593e":"ViewMyBet()","0f40988e":"contributorsShare()","0f40d645":"demander(uint256)","0f4170f2":"BaseICO(address,address,uint256,uint256,uint256,uint256)","0f41ba4b":"bid(address,uint256,uint256)","0f420113":"_calculateCurrentRate()","0f42fdfb":"recoveryModeTriggerTime()","0f4391f5":"setPauseMaster(address)","0f43a677":"validatorCount()","0f43c196":"setTournamentAddress(address,address)","0f45368c":"checkTransferHash(address,uint256,address,address,uint256,uint256,bytes)","0f45c3e1":"transferFromAny(address,address,uint256)","0f45f528":"getTknOfferor(uint256)","0f4665aa":"getOrderHash(address,uint256,address,uint256,address,uint256,uint256,address,address,uint256)","0f47165e":"managePlayer(address)","0f473d72":"_calculateDiscount(uint8,address)","0f47435b":"pvt_inv_Pool()","0f481bf7":"postTransfer(address,address,address,uint256)","0f482da1":"unblockSpending(address)","0f482e64":"LikeCoin(uint256,address,address)","0f4acfcd":"charToByte(bytes1)","0f4b1cfc":"setGovernment(address)","0f4bbdf2":"registerBuyer(string,string,string,string,address,string)","0f4cf692":"numMessages()","0f4d14e9":"depositEth(uint256)","0f4df754":"Gladiethers()","0f4dfc17":"ICOTokenDelivery(address,uint256)","0f4ef8a6":"rewardManager()","0f4f8184":"bancorRegistry()","0f4fd9cc":"log_event(string)","0f4ff474":"_openGameResult(uint256,uint256,uint256,string)","0f501d07":"saveInfoAboutInvestors(address,address,uint256,uint256,bool)","0f505a01":"sealDataStream(address,uint256,bytes32,uint256,bytes32)","0f5137f9":"sellOrderBalances(bytes32)","0f522614":"Shufflix()","0f527200":"SimpleCoin()","0f529ba2":"D()","0f52fb0a":"searchFreelancers(address,uint256,uint256[],uint256[],uint8,uint256,uint256[],uint256[],uint256[],uint256)","0f5381f1":"testUserCanIncreaseVersionNumber()","0f53a470":"getProfile(address)","0f53b7ee":"communityTokensAddress()","0f53ba51":"appWasMade(string)","0f53e2a8":"NewToken(address)","0f555b46":"MicroCoins()","0f560cd7":"list()","0f56e460":"Shitcoin()","0f574ba7":"subscribe(uint256)","0f577d97":"getCompte_16()","0f57b9d9":"removeFromPrivileged(address)","0f57eb79":"minboc()","0f581aed":"MinimumBitcoinInvestmentUpdated(uint256,uint256)","0f58d28f":"weightOf(string)","0f590c36":"emergencyFixGameResult(uint64,uint256)","0f59a638":"totalWeiCommitted()","0f59eb95":"ownerUpdateOthers(uint256,bool,uint256,uint256,bool)","0f59f83a":"go()","0f5a5466":"claimWithResolver(address,address)","0f5a8d9c":"raiseDollarsFunded(address,uint160,int160)","0f5aa9f3":"setAuthorization(address,address)","0f5ad969":"node_index(address)","0f5b807d":"cuddleData()","0f5bab7c":"countManagers()","0f5c8c0a":"balancesDB()","0f5e7348":"getCommunityBallotCentsPrice()","0f5ea100":"price(address,uint256,uint8)","0f5eacf6":"EndStage()","0f5ed9e9":"escrowAllowed(address)","0f5ee138":"userSignupCount()","0f5f0151":"GxTradersProxy(address)","0f5f1dbc":"operationsAccount()","0f5f4c53":"unpause2()","0f5f8593":"MetaBall(uint256,string,string)","0f601679":"balanceOwner(address)","0f60e3d9":"resetAddTokenData()","0f610c06":"getValidatedLiability()","0f61280e":"nutzAddr()","0f62562f":"pregnantNinjas()","0f632fd3":"onMint(address,uint256)","0f63d864":"addOwners(address[],uint256[],uint256[])","0f6413b7":"batchAssignStopped()","0f64864d":"transferTokensAndDividends(address,address)","0f6521e2":"FROZEN_TOKENS()","0f66791c":"setHTML(string)","0f66acd1":"EcosystemEthereum()","0f670da6":"destroyLogicContract()","0f6798a5":"Mint(address,uint256)","0f67f3f7":"distributeToDev(address,uint256)","0f683fd1":"Token(string,string,address)","0f69cdbe":"approvespender(address,uint256)","0f6a1734":"Crowdsale(address,uint256)","0f6b6756":"tokenSaleIsPaused()","0f6bb3c3":"doSpawn(uint32,int256,address,bool,address)","0f6c2a33":"setMaxStage2AllocationPerInvestor(uint256)","0f6d37d6":"supportAddress()","0f6d6236":"setIssueDividendReward(uint256)","0f6d9f00":"ERA_PERIOD()","0f6e40c3":"startRound(bytes32,bytes32)","0f6ea4fc":"MISCELLANEOUS_TOKENS_SUPPLY()","0f6f5f98":"setAndFixTokenPriceInWei(uint256)","0f6f72a8":"getClosingTimeValue()","0f710616":"TRSToken()","0f710e32":"CryptoFinexToken()","0f71590c":"setPOLYUSD(uint256)","0f732bdc":"getEncryptionAlgorithmCount()","0f73b4f4":"setStartingPrice(uint256)","0f73d212":"addLog(string,string,bytes32)","0f74a5cc":"cancelCenturionSale(uint256)","0f74e527":"RenmiCoin()","0f74e689":"registerNewPubKeyForHash(bytes28,string)","0f7503c9":"baseStartTime()","0f75806f":"GraphenePowerCrowdsale()","0f75c82e":"getObjClassExp(uint64)","0f75e81f":"issue(bytes32)","0f762cfe":"emission(address,address,uint256,uint256,uint256)","0f76496a":"returnTokens3(address,uint256,uint256)","0f76b651":"unlockDate5()","0f76c114":"getCurrentValue()","0f76de0d":"left45(uint256)","0f76f489":"getPoolName(uint256)","0f774287":"Burnt(address,uint256,uint256)","0f774931":"administrativePayouts(address,uint256)","0f776fb2":"PutDiv(address)","0f77c1d3":"addUsersWhitelistB(address[])","0f784943":"mintable(uint256)","0f78628e":"allowedToBurn()","0f7875c6":"startblock()","0f78d408":"JuvToken()","0f78ee7c":"payoutLockedToken()","0f79cfa2":"addReferrer(bytes32)","0f79e120":"nrFailures()","0f79e1c7":"createRandomDeveloper(string,uint256)","0f7a4590":"goalAchieved()","0f7a8971":"buildBoolMapping()","0f7bd1dd":"enterRaffle(uint256[],uint256)","0f7bff76":"getHeroDBZHeroAddress(uint256)","0f7c9085":"addToAdmin(address,bool)","0f7c932a":"getReservedTokensListValInPercentageDecimals(address)","0f7d6673":"Channel()","0f7e1653":"OpenGame()","0f7f97c8":"calcNewSkinAppearance(uint128,uint128,uint128)","0f7fa72f":"addOperator(address,uint256)","0f809adb":"changeTokenOwner(address)","0f80fc58":"exponent(uint256)","0f8143f6":"discardRejectedProposal()","0f819fe8":"disableTuneOption(uint256)","0f81d248":"endPeriodC()","0f822b78":"admin_transfer(address,uint256)","0f825673":"deleteCoupon(string)","0f82b42f":"userAccountTokenBalances(address)","0f832bc6":"testIsLawyer()","0f83f112":"CanTransferChecked(bool,address,bool,bool)","0f8410e3":"getPresellToKenAmount()","0f85751e":"change_p5(uint256)","0f861127":"argl(uint256,uint256)","0f861ca3":"ownerUnpause()","0f86abc1":"modifyStakerLimit(uint256)","0f86e3eb":"denaToken()","0f86f702":"compatible223()","0f87a044":"withdraw1(uint256)","0f88aa81":"emitRecord(bytes32,uint256,uint256,uint256)","0f88f1a5":"collectBounty(address,uint256,uint256)","0f89fa28":"OrganizationRegister()","0f8a771e":"skr()","0f8a8887":"rocketSetResourcePrice(uint256,uint256,uint256)","0f8b70c9":"getBotContract()","0f8bca8c":"getStage0Start()","0f8c04e2":"create(address[],uint256[],uint256[],address,address,bytes)","0f8d4030":"totalShareholders()","0f8d598a":"decayedPriceOfSocialIdentity(uint256,uint256)","0f8dc272":"ComputeAcornPrice()","0f8ea4f3":"addSomeOfManyLine(uint256,string,uint256,string)","0f8eaa74":"addToPreSaleRefunds(address,uint256)","0f8ef9f8":"getBoosterRaiseValue(uint256)","0f8f8b83":"spendableBalanceOf(address)","0f8fcb74":"_setInt(bytes32,int256)","0f8fd363":"getRepPriceInAttoEth()","0f900587":"addBonusPerShare()","0f902bc2":"delayedTransferFrom(address,address,uint256)","0f907ba3":"failCar(string)","0f90b83a":"deployTokenContract(uint256)","0f917e31":"transferAndDonateTo(address,uint256,address)","0f917f9e":"totalSupplyTeamTokens()","0f91c8a5":"setCap(string,uint256)","0f91cce1":"releaseVanbexTeamTokens()","0f92f38f":"changeMartial(uint256)","0f9302c8":"LogEvent(string)","0f95378f":"MerchantWallet(address,string)","0f953b97":"getCmcAddress()","0f960644":"addClaim(address,bytes32,string,string,uint256)","0f96dd39":"maxTokenCap()","0f973874":"MiniMeTokenSimple(address,address,uint256,string,uint8,string,bool)","0f974ef2":"PasserBy(address)","0f977561":"getUserEvents()","0f97f2f1":"managePlayer(uint256,uint256)","0f98a9cc":"lockTokens(address,uint256,address,uint256)","0f98c91a":"TOKENS_PER_ETHER_EARLYSALE()","0f99da4a":"getBoosterAmount(uint256)","0f99fab2":"allowWrite(uint256,uint256)","0f9aea56":"last_release_date()","0f9b481a":"TokenFinalized()","0f9b5129":"maxSellRateInPrecision()","0f9b87be":"transferToDestination(bytes32)","0f9bac2d":"ADVISORS_ADDRESS()","0f9bb8b3":"getCurrentUserQuickPromoBonus()","0f9c95da":"GDCAcc04()","0f9ce471":"Ether2Gen()","0f9e144d":"changeMaxMin(uint256,uint256)","0f9e39bf":"minBidMultiplier()","0f9e42da":"drawToken()","0f9e5bbd":"createShares(address,uint256)","0f9fb983":"lastBetTimeSEC()","0fa01949":"yearOfProduction()","0fa2b5d4":"Interestv3(address,address)","0fa2d864":"block4()","0fa48688":"calculateItemId(bytes32)","0fa53db8":"divideDecimalRound(uint256,uint256)","0fa6002e":"sellCharacter(uint32)","0fa6e84d":"SouYingToken()","0fa7a798":"getOpenRequestPublicKey(uint256,uint256)","0fa7b7b3":"totalRefunded(uint256)","0fa803e8":"SetCategoryName(string)","0fa85ab0":"claimTokensForUser(address)","0fa87b15":"closeMyGame(uint256)","0fa8beb3":"claimBonus(address,uint256)","0fa8f516":"getPosition(address,bytes32)","0fa95aee":"etherToTokens(uint256,uint256)","0fa9ced4":"emergencyFuneral()","0fa9e486":"registerCoin(string,string,address)","0faa2aae":"amountOfBSTRequired(address)","0faaa357":"nCanOpenRewardMinEth()","0fab0f6a":"minimumWitcoins()","0fab14e8":"agencyOwner()","0fab459c":"transferSoldTokens(address,uint256)","0fab7539":"getIssuanceCount(bool,bool,bool,bool)","0fac20e1":"dev1Wallet2Pct()","0fac8dc5":"update(string,string,bool,string,address,uint256,uint256)","0fac960e":"sellTokensForWaves(string,address,uint256,uint256)","0fadb5c7":"getWHaddress()","0fae42cd":"pricePreSale()","0faf2775":"newGame(string,string,uint256,uint256,uint256,uint256,uint256,uint256)","0fb0a8d3":"manageOperable(address,bool)","0fb0cf2d":"changeLockupDuration(uint64)","0fb125ac":"transferTokens(uint256,address[])","0fb26f0b":"switchTransfers()","0fb2e692":"buyMCTTokenProxy(address,uint256,uint256)","0fb35574":"SCC()","0fb3844c":"_status()","0fb411e8":"evc()","0fb4b070":"tokensMintedForSale()","0fb4ecdf":"complained(address,address)","0fb524ce":"castVote()","0fb54f3a":"AuthenticationManager()","0fb553ba":"FLC()","0fb59f95":"buy(uint256,string,uint256,uint16)","0fb5a6b4":"duration()","0fb65f10":"authorizeMintRequester(address)","0fb66557":"trustedTransfer(address,address,uint256)","0fb66da3":"getMessageOfVisit(address)","0fb7657f":"isAllocationLocked(address)","0fb792d0":"ONE_HUNDRED_PERCRENTS()","0fb7a5e6":"getCensuredBy(uint16)","0fb7cb1d":"addToKycTeam(address)","0fb7e602":"startEmergency()","0fb9398f":"getProductBuyers(uint256)","0fb9d85e":"buyIndex(uint256,address,bool)","0fb9dcd5":"getTokensAtCurrentRate(uint256)","0fba34a4":"has(bytes12)","0fba4ca1":"accept(string)","0fba80de":"pickValues(bytes32)","0fbad611":"setTimeFrame(uint256)","0fbb3b6b":"shittyRandom()","0fbbeceb":"PostCompleted(address,address)","0fbc0cd1":"bounty_solve(address,bytes32)","0fbc0f82":"LotterySymbol()","0fbe333a":"getLastBidder()","0fbe3e40":"returnLast()","0fbed9fe":"EFAFCOIN()","0fbf7151":"startsWith()","0fc03687":"Booko()","0fc0e9a8":"_addWithdrawal(address,address,uint256)","0fc10026":"CALLER_EXCHANGE_RATE()","0fc12b1a":"isGetWhiteList()","0fc1b08b":"setValue(string,string,string)","0fc1c83d":"minimumTokenCommission()","0fc24c03":"ZarFundsToken()","0fc33bb7":"lrcBalance()","0fc3866f":"isSoftCapGoalReached()","0fc38daa":"CSToken()","0fc4af53":"cloneTokens(uint256,uint256)","0fc4f262":"updateSubdivsFor(address)","0fc55d1e":"ENTS()","0fc55fd1":"bid(uint256,string)","0fc63d10":"tokenA()","0fc66f45":"PO24()","0fc69407":"BidPlaced(uint256,uint256)","0fc6ed30":"Satum()","0fc709e5":"setDistribution(uint256,uint256,uint256,uint256)","0fc72f4e":"purchaseCallback(string)","0fc783d1":"SacToken(address)","0fc7c15e":"getUnapprovedUsersTop150()","0fc81bdc":"editEventResult(string,uint64,uint8)","0fc85c7f":"INAYCOIN()","0fc8a393":"transferUpdater(address)","0fc8afbd":"getFreeSnake()","0fc958dd":"tMemberSolId(uint256,address)","0fcac452":"addToRakePool()","0fcaed94":"restartLottery()","0fcb5984":"getprice()","0fcb83f2":"SancojTokenContract()","0fcbb5b9":"getSubscriberType()","0fcbbc8e":"_lookupOwnerIdentityCount(address)","0fcc0c28":"deprecate()","0fccf22e":"ban_user(address)","0fcd1cab":"killInstance(address,address)","0fcda174":"getAccountTokenBalance(address,address)","0fcddd06":"CreateCRC(address,uint256)","0fce00ed":"calculatedPaymentInterval()","0fce349e":"popularitySetting(uint256,uint8)","0fce887b":"transferLockedFrom(address,address,uint256[],uint256[])","0fd02fc1":"isValidUnbondingLock(address,uint256)","0fd0aa67":"Parties()","0fd0ae10":"insert(address,uint256)","0fd0e440":"uniq(uint8[])","0fd1ed1f":"setMarginForVictoryPercent(uint8)","0fd1ed78":"LOG_EmergencyWithdrawalFailed(address)","0fd1f94e":"firstClaimBlock()","0fd2ce17":"funcArrayInArguments(address[])","0fd3d758":"WWAMPricingStrategy(uint256,uint256,uint256)","0fd3ee83":"__redeemTokens(address,uint256)","0fd4d286":"BlueSkyDragon()","0fd5084a":"validOrigins(uint256)","0fd548ef":"myShareToken()","0fd56202":"addressToNumCities(address)","0fd57f3e":"seatPrice()","0fd58d07":"expectedWinnersCount()","0fd62f57":"adminCharge_p2()","0fd68e3f":"newRaffle()","0fd6fc49":"IntelliShareEco()","0fd7410c":"in_finalization_phase()","0fd7b03d":"HackDivs()","0fd8a8fb":"setAnonymousCap(uint256)","0fd9d5bf":"Matrexcoin(uint256,string,uint8,string)","0fda890e":"changeGenRNGcontractAddress(address)","0fdb1c10":"withDraw()","0fdb468f":"fee(uint64)","0fdc3609":"changeDeposit(address)","0fdc7956":"unlockAllTokens(bool)","0fde0f8e":"ROLE_VENDOR()","0fde5686":"setBUB(bytes32,uint256,bytes)","0fdfa5ee":"preBuy3()","0fe1dfa8":"lastRoundLengthUpdateRound()","0fe1f548":"getTokenSCADARequiresHardCap()","0fe234ed":"testSetController()","0fe2abcf":"exchange(uint256,address)","0fe2c5d1":"BTSMToken()","0fe3152e":"airdropEnd()","0fe3c10d":"MANHATTANPROXY4THST()","0fe41fd5":"acquisitionsTokens()","0fe433db":"reallocate(uint256)","0fe43e1f":"foundersAdvisorsPartnersTokensVault()","0fe4ea72":"killDragonDeathContract(address,uint256,uint256)","0fe793aa":"studioHandler(address,uint256)","0fe7c250":"DaoRulesProposals()","0fe7db9c":"MedSupplyToken()","0fe83bb8":"preSaleTokens()","0fe8c788":"addCertificate(string,address)","0fe961da":"_getCurrentRoundTeamCos()","0fea657f":"totalExch()","0fea81fe":"setComisionInETH()","0fea9be6":"ChinhCoin(uint256,string,uint8,string)","0feacc42":"CommonToken(address,address)","0feb10ff":"Register(uint256,string,string)","0feb172f":"buyTeam(uint256)","0feb376b":"AMOUNT_ICO()","0febb8b7":"setSaleInfo(uint8,uint256,uint256,uint256,uint256)","0feca6d5":"releaseAdvisorsTokensForPercentage(uint256)","0fecef48":"getProductsByOwner(address)","0fed240b":"dAdd(bytes32,address,bool)","0fed5dc8":"setSendAllow(bool)","0fee32bb":"setAuctionIndex(address,address)","0fee5a40":"getProviderCurve(address,bytes32,int256)","0ff0a4df":"reFund()","0ff188c7":"transferPixel(uint16,uint16,address)","0ff244b2":"transferByAddress(address,uint256,address)","0ff2e4b2":"assignCEO(address)","0ff3687b":"remainingGenesisCats()","0ff39daa":"generateDepositAddress()","0ff3d57e":"addMasterWallet(address)","0ff3d5ea":"getCastleSale(uint256)","0ff4009c":"getLotteryInfo(address)","0ff42eab":"setProofAddr(string)","0ff43cfd":"IFCNBToken()","0ff4c916":"getValue(uint256)","0ff4d239":"HashRushICO()","0ff4f160":"oraclize_query(uint256,string,string[1])","0ff58f40":"month24Allocated()","0ff7bb07":"refundClient(address,uint32)","0ff88a8d":"getChar(uint256)","0ff88baa":"RoyalTransfer()","0ff89c2b":"divide(int256,int256,uint256)","0ff8cf9b":"dividend()","0ff92e7b":"burnDead(address,uint256)","0ff9aafe":"updateMinimumBond(uint256)","0ffb1d8b":"whitelistToken(address,bool)","0ffbe43b":"initializeOfferChannel(uint128,address,address,uint256)","0ffdbd42":"feePoolShare(uint256,bool)","0fff6e06":"totalAvailableGames()","0fffbb54":"changeRankingSize(uint256)","10001fdd":"setPublicSaleParams(uint256,uint256,uint256,bool)","10002f39":"WorthlessEthereumTokens()","100153b6":"blocksByDay()","1001c39c":"tokensReleasedToIco()","100278d8":"startPreSale2()","100349fa":"Good_Bye_World()","10038099":"isPuppySports()","1003ac0c":"customFallback(address,uint256,bytes)","1003e2d2":"add(uint256)","10042e10":"remainingPublicSupply()","100565f4":"setTurnover(uint256)","10059be0":"do_redemption()","1006a41f":"auctionStarts(address,address)","10072af7":"SetupRaffle(string,uint256)","1007f753":"erase(uint256)","10082bff":"getActorBillXdetail(address,uint256,bool)","1008737d":"test_oneValidEqBytes32()","1008a2a5":"getTotalLendingItem(address)","10096c84":"exchangeBalanceOf(address,address)","10098ad5":"available(address)","100a0ed1":"receiveCreateAuction(address,address,uint256,uint256,uint256)","100a1099":"getTransactionIdsOf(address,address)","100a5ec5":"mintedCrowdsale()","100ac510":"addRx(address,address,uint256,uint256,bool)","100aca47":"totalFund()","100acefc":"_storeProof(string)","100af203":"reserveETH()","100b815d":"loadData()","100bce92":"toHex(string)","100be094":"setRefundRate(uint256)","100c6cfd":"ipoPlatformPercentage()","100c8ada":"setCAmodulus(bytes)","100c98fe":"SaleFailed()","100cdd91":"burnAll(uint256[])","100d7e30":"FuckFacebookCoin()","100e187a":"transferHolds(address,address,uint256)","100e4b94":"every_day_im_shufflin()","100ed0fc":"preallocateFirstStage(address,uint256,uint256)","100f23fd":"cancelWhitelistAddition(bytes32)","100f2e78":"determineSalaryTokens(address)","100f759f":"EDU_PER_ETH_SALE()","100f7a79":"registerBounty(address,uint256)","100fd02f":"isAbove(int256,int256,string)","101005bd":"releaseReserve(uint256)","10103122":"totalDurationInDays()","101175e8":"BONUS_DATES(uint256)","10119521":"TokenBurnt(address,uint256)","1011a635":"changeCommissionFeeRate(uint256)","1013ad53":"KairosToken()","10142785":"assign(bytes,uint256,bytes1)","1014a29e":"firstRefundRoundRateDenominator()","1015295c":"ClaimMyBet()","1016774e":"period3End()","1016ad94":"Baliv()","1016eadb":"Epilepsy()","10174967":"God()","1017a357":"HeirOwnershipClaimed(address,address)","101817ba":"getLastEmissionNum()","1018f294":"getRandom16(uint16,uint16)","1019635d":"assignReserved(address,uint8,uint256)","10196bf7":"pendingRefs(uint256)","1019dc59":"setSale(address,bool)","101a3fec":"setIsTokenTransactionOpen(bool)","101a889b":"LogBeneficiaryPaid(address)","101a917e":"makeTradeDetail(address,address,uint256,uint256,address,uint256)","101af16b":"countriesTokens()","101b6106":"RevokeEntity(bytes32,bytes)","101b7e7c":"vbtToken()","101b94f1":"setRightOfGroup(string,string,bool)","101ca1b9":"YoobaBatchTransfer()","101d52d2":"checkStoredFileName(string)","101d990c":"hmul(uint128,uint128)","101e1f2c":"initLottery(uint256,uint256,uint256,uint256,int256)","101e359b":"reviveFee()","101e5a32":"setSoftcap(uint256)","101e652e":"presaleUnlimitedStartTime()","101e8952":"forward(address)","101f13e2":"verifyProof(bytes,bytes32,bytes32)","102046db":"townPrice()","1021688f":"changeAdminAddress(address)","1022b30b":"proposalResult(uint256)","1023d597":"priceDecraseTime2Action()","102455a5":"sanity_check()","10253fec":"election(string,string,string,string)","10258bfd":"Payment(address,address,uint256,uint256)","10271334":"receiveICOcoins(uint256,uint256)","1027853f":"withdrawShare(address)","10278bc8":"setBytes32Value(string,bytes32)","1027e242":"getBoosterStrength(uint256)","10282b61":"payoutcount()","10286952":"parseKeys(bytes32[])","10288c4b":"startIco(uint256,uint256,uint256)","1028e4a8":"theCyberMemberUtilities()","10290e51":"computeProfit(uint256,uint256,uint256)","102accc1":"fireEventLog2()","102b61f7":"setMinimumWeiAmount(uint256)","102c920a":"allRefunded()","102ce658":"setRule(address,string)","102deb9c":"changeMonethaVault(address)","102e58d0":"timeoutAt()","102e8b94":"sellnow()","102ff0b3":"amountToken()","10309781":"createdTimestamp()","1030adea":"change_king_name(string)","1030c539":"setCreditbit(address)","1030e227":"TroyToken(address,address)","1030f288":"releaseState2()","10314b07":"GOX(uint256,string,string)","10316eec":"getActionParametersCountByIndex(uint256)","10319417":"returnHost(uint256)","1031e34e":"raisedFromToken()","1031e36e":"pauseTrading()","10328e89":"CoinhiToken()","103359ce":"sendToIco()","10340069":"tokenDistributionPool()","10342d02":"endSaleCarProduct(uint32)","10347a2c":"lockSymbol()","10348938":"setRankDynamic(uint256)","10361bf2":"transferLog(address,address)","10369540":"icoPhaseAmount2()","1036bbe2":"MAX_PERCENT()","1036cde8":"allocateCustomer(address,uint256)","103728a3":"FundingFueled(uint256,uint256)","10375a67":"getRemainingTokens(address)","1037706d":"uploadSignedString(string,int256,bytes20,int256,string)","1037a5f4":"getPrev(uint256)","10388809":"setTransferPrice(uint256)","1039cf3c":"isIcoStopped()","103aeda7":"isContractAuthorized(address)","103b0506":"preter(uint256)","103b5dad":"computeIndexId(address,bytes32)","103bf0bd":"tSLDToken(address,address,address,address)","103cbb7f":"ethpyramid()","103cfacf":"CryptovationX(address)","103d26ac":"getRareItemsPrice(uint256)","103e8154":"sellComissionUnits()","103ed140":"_getSkill(uint16)","103ef9e1":"authorizeOperatorByPartition(bytes32,address)","103f3a83":"getAuraColor(uint64)","103f9251":"transferFrom(address,address)","10400446":"setMaxAppeals(uint256)","10402040":"createSaiCollectorsEdition(uint256,address)","1040233f":"LevelUp(address,uint256,uint32)","1040762d":"setExchangeRates(uint256)","1040dc27":"getSTODetails()","1040e5a5":"showBal()","10422c24":"releaseAngelVested()","1042604f":"isTrue(bool,string)","1042876d":"getDisplayName(address)","1042ca73":"getWeekIdx()","1043dcdf":"LastIsMe(uint256,uint256)","10442a1b":"GetMainAddress()","10443ab3":"setLotteryTokensWallet(address)","10445a16":"_joinGame(address,uint256)","1044bbe6":"unLockTokens()","1045290e":"Boocoin()","10458684":"GBCCoin()","1045a889":"buildContract(string,string)","1045de72":"isEndOffer()","1046bc68":"deleteContact(address)","1046d078":"transferItemFrom(uint256,address,uint256,uint256)","1046e2ab":"Flood_Standard_Ethereum_Coin(uint256,string,string,uint256)","1047456e":"userTransfer(address,address,uint256)","1047d79e":"freezTime()","10482f57":"getWhitelistedResolvers()","1048a25c":"view_random(address,address)","1049334f":"tokenBalance(address,address)","1049f742":"terminateEscrow(address)","104a5963":"targetDiscountValue9()","104a5e75":"getRareItemsPLATPrice(uint256)","104ace02":"register(string,string,string,string,string,string)","104b6704":"currentManager()","104b78bd":"amountRaised(bytes32)","104bb708":"GetStatusCount(string)","104bc708":"LamboCrowdsale(uint256,uint256,address,address,address[])","104bf512":"createBATokenContract(address,address,uint256,uint256)","104bff92":"HasBooster(address,uint256)","104c9cff":"releaseDividendsRights(uint256)","104ce199":"Launcher()","104d5fdd":"getPriceProxy()","104d7bbb":"LuzCoin()","104de5a1":"setPromoted(bool)","104e81ff":"_approve(address,address,uint256)","104e9929":"tokenPool()","104f2d8f":"_approve(uint256,uint256,bytes32,uint256)","104fea4c":"activeCrowdsalePhase2(uint256)","10510ec1":"payToken(address,uint256)","10518aeb":"removeOldFirst(address)","10519ff4":"WestCoin()","1051db34":"implementsERC721()","10523af3":"getPokemonCD(uint256)","1052506f":"isSignedBy(bytes32,string,address)","10525660":"setConsumeToken(address)","10549874":"tokenRate1()","1054d657":"divestETH()","105541ae":"returnPtSafeSmall()","105689a0":"doLockdown()","10570116":"newGroup(string,uint32,uint256,uint32,uint32,uint32,uint32,uint32,uint8)","1057ce8c":"create3DoggiesTokens()","10594e19":"JPGProject()","1059c492":"CROWDSALE_WALLET()","105a6356":"minimalSuccessUSD()","105ae3bf":"getRoundIsEnded(uint32)","105b2645":"CheToken()","105b6f00":"Fructus()","105c287b":"lockPeriod1()","105d3e0f":"cryptogs()","105d9e37":"disputeLength()","105e029f":"JSONpath_string(string,string,string)","105e68f0":"allBankers()","105ea540":"minimumToRaise()","105edd83":"toTheTop()","105ee9a7":"endFight(uint256,uint256,bool)","105fc4e8":"REQUEST_FOUNDATION_AMOUNT()","105ff033":"redeemReward(address,uint256)","10609902":"sendFundsToBorrower()","1060c965":"ZILLION()","106109c9":"RandiveBhToken()","10618776":"setETHUSDdemon(address)","10619300":"lockAccount(bytes32)","106233e8":"addAltOracle(address)","106259c8":"getNonEtherController()","10639ea0":"cancelMigration()","106524a5":"multisendEth(address[],uint256[])","106639ba":"getOwnAssets()","1066cd3c":"voteFor(uint16,address,bytes32,bytes)","1067f077":"setCompte_41(string)","1067f361":"totalTokenToSale()","10680b84":"getShareTokenAddress()","106812c9":"setPI_edit_18(string)","106858cb":"getRemainingPreSalesAmount()","1068d056":"getaddress0()","106a182b":"getLambosCount()","106b291f":"ethUsdRateInCent()","106bd2da":"initiateEscrow(uint64,uint256,address,address,address,address)","106be310":"getNameByNumber(uint256)","106c0a45":"collectOriginalBetERC20(address)","106c5511":"create(address,string,string,uint8,uint256)","106c6441":"removeReinforcedWhitelist(address[])","106d2813":"setCreditGameAddress(address)","106e6290":"withdraw(address,uint256,bytes32)","106f6a3d":"TOKEN_FIRST_EXCHANGE_RATE()","106f6f33":"bountyTokensCount()","106f77a7":"multiMint(uint256,uint256[],uint256)","106f923f":"RewardClaimed(address,uint256)","106fcb7a":"changeAsset(bytes32,string,string,uint8)","106fd2d5":"setSaleAddress(address,address)","106ffbd3":"withdrawBatchTokenToInvestor()","107046bd":"projects(uint256)","1070eb4f":"calculateInterestDue()","1070f410":"convertToBytes(uint8[],bytes1)","10711911":"BONUS_TIER_5_LIMIT()","107169c5":"allLinesWrong()","10717a2e":"switchCompatible223(bool)","10718655":"contributeFor(address)","1072cbea":"transferToken(address,uint256)","10731a65":"claimTokenOwnership()","10735089":"readteamXaddr(address)","1073c4a9":"exploreBuilding(uint8,uint8[176])","1073d1f8":"releaseTprFund()","10745f7e":"getMinAmountToWager(uint256)","1074c619":"flushEthers()","1075153f":"multiPartySend(address[],uint256[])","1075f186":"fundingPoCEndTime()","10764268":"salvageOtherTokensFromContract(address,address,address,uint256)","10768bdd":"myUsingOracalize()","10769e01":"POOL_EDIT_2()","1076c2d7":"StreamXOnline()","1077135a":"oraclizeSetWinner(uint256)","1077666e":"unmined()","1077f06c":"makeClaim(uint256)","10780cce":"grantsStartTimestamp()","107853a9":"Spacoin()","10787d58":"checkfriend(address)","1078ad80":"makeContractPermanent(string)","107925bb":"viewCustomer(string)","10793b50":"m_contributionHistory()","10796a47":"staticCall(address,bytes,bytes)","10797bab":"runtoeth(uint256)","1079b859":"finalRewardPeriodPercent()","1079ed67":"getChildByAddress(address)","107a2c5e":"betEvents(uint256)","107a69e8":"WithdrawResult(uint256,bytes32,uint256)","107a77d0":"finalizeVestingAllocation(uint256)","107a83e2":"prizesAwarded()","107b1f8c":"debug_verifyShare(bytes,uint256[],uint256[],bytes,uint256,uint256)","107bf304":"withdrawEthToOwner(uint256)","107d1d55":"startPeriod(uint256,uint256)","107d4b23":"Bitcan()","107d8a90":"COBA()","107e1a29":"setEndTimeIco(uint256)","107e7b1f":"setBroker(address,uint256)","107e8b24":"setTimeSale(uint256,uint256)","107f3f6a":"setExeStatus(uint64,uint64)","107f587c":"deactivateEmergencyProtectedMode()","107f76c5":"cancelOrder(bytes32,uint64)","10802749":"maxPlayerNum()","1080b7b1":"token4DivsOwing(address)","1080f251":"ownerOfLand(int256,int256)","10814c37":"bot()","10816757":"crowdsaleClosingTime()","1081dc8a":"contractIndex(uint256)","10828bcc":"noOpenGameResult()","1082a128":"SaveRickAndMorty()","1082cda1":"Register(bytes32,address)","1082d51e":"COINESIA()","1083d2fe":"technicalAmount()","1083f761":"assetToken()","108456b4":"FIRST_AUCTIONS_MINIMUM_RAISE()","10848ddf":"getDaysInMonth(uint256)","1084a1fb":"transferToAccount(bytes32,uint256)","1084bc90":"farmSingle(address,address,uint256)","1084cc51":"canDoubleDown()","10855269":"setProxyStorage(address)","10861f40":"wasDelegate(address,address,uint256)","108623f2":"checkProofOfWork(uint256,uint256,uint256)","10867877":"eatUnicornWithoutCorn()","1086a9aa":"approve(address,uint64)","1087452c":"signatureOwner()","10875ac0":"getMembershipExpiryDate(address)","10878ea1":"REGISTRY_INTERFACE_REQUIREMENT()","10888f2f":"admin_exFeeRate(uint256)","1088996b":"_newOutgoingTransaction(address,address,uint256,string)","1088f03f":"crowdsaleCompleted()","10895087":"DDJXRP()","1089843c":"OAKTokenCrowdsale(uint256,uint256,uint256,address)","10898a3e":"currentStateStartTime()","1089b16e":"setPod(address,uint8)","108a101b":"hasEmptyEditionSlots(uint256)","108a936b":"_initGame(uint256,bytes32,bytes32,bytes32,uint256)","108afb9f":"getBonusAmount(address,uint256,uint256,uint32)","108b77ad":"tokenPresaleSold()","108c3708":"paoContactAddress()","108c8ae4":"completeTask(uint256,uint256)","108caf79":"whitelistTokens()","108d0c84":"enableDefinedGame(uint256,bool,bool)","108d40f8":"PutGift(address)","108d6f94":"ProjectOwner()","108d995b":"getContinuityNumber(uint32)","108e161b":"isBallotSealed(uint32)","108e4bdb":"isKycTeam(address)","108eaa4e":"resolver(uint256)","108f69f8":"verifyTetherLoss(address,uint256,uint256)","108fa161":"newEnglandBets()","108fe10c":"advisers(uint256)","109050bc":"jackpotLastQualified()","1090a638":"presaleGoalReached()","10922cc1":"testTransferCost()","1092735d":"Created(address,uint256,uint8,uint256,string)","10937b5a":"adminAddMoney()","1094252e":"reconciliationDate()","109447e1":"createHash(uint8[5],bytes32)","10947164":"changeCEO(address)","1094d009":"LowGasAmount()","10950708":"setInvoicePaid(address,address,uint256,uint256)","109538ca":"transferAdeptTokenOwnership(address)","10953c22":"ChangeChallengeAdditionFee(uint256)","1095b6d7":"withdrawFee(address,address,uint256)","1095f211":"PushInvestorList(address)","10961935":"Bionic()","10970fbb":"convertTransferredTokensToMny(uint256,address,address,uint256)","10971bee":"bonusDayPercent()","10972704":"getCurrentAward()","10978594":"depositSoul(uint256)","1097b9ee":"sellingPrice(bool)","1097c929":"episodePurchase(address,uint256)","1097d54a":"addMaster(address)","1097e579":"Enter()","1099107b":"apSaleIssue(address,uint256)","1099d3ec":"scheduleTransaction(uint256,uint256,uint256,bytes)","1099f6fa":"disablePOSReward(address,bool)","109a9dbc":"bulletAddress(address)","109ac462":"safebalance(uint256)","109b678a":"immortals(address,uint256)","109c2032":"LotteryToken()","109d42d3":"addTokenSale(uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)","109df68e":"rotateBitsRight(bytes,uint256)","109e591a":"SchmecklelToken()","109e8b21":"addOldMayors(uint256[],uint256[],address[])","109e94cf":"client()","109e9de6":"getMaxBuy(uint256)","109ef276":"newDutchPriceRate(uint256,uint256)","10a03b22":"PHASE1_SUPPLY()","10a0d2f1":"startOfCrowdsale()","10a101df":"getKeyData(bytes32,bytes32)","10a20b4c":"testMintGuy()","10a2f7cb":"createOption(uint256,string)","10a31091":"createRadar(uint256)","10a37c26":"getWinnerAddress()","10a3ec4f":"test_fiveAssertTrue()","10a4fd08":"Platinum()","10a5bbdb":"changeCharPrice(uint256,uint256)","10a64976":"ARLCToken(uint256,string,string)","10a6fdc2":"updateEtherPrice(uint256,uint256)","10a73f5e":"jackpotrate()","10a78f4a":"playerTwoReveal(bytes32,bytes32)","10a7a5f5":"secondStageWallet()","10a80397":"addBudget(uint256,uint256,uint256)","10a82579":"lockTokensAddress()","10a86088":"getIntField3()","10a942b4":"withdrawCoindropsToken()","10a9de60":"getOracle(uint256)","10aa3d8c":"VirsymCoin(string,string,uint256,address)","10ab96e1":"LYNDO()","10abda2b":"leaderAddress()","10abdb0a":"Dealer_HitOrStand(uint256,bool)","10acec5d":"_save(address,uint256,uint256,uint256,string,string,address,uint256,uint256)","10adb0ea":"sanMaxLength()","10adda0e":"feesAvailable(address,bytes4)","10ae4a73":"presaleAllocation(address,uint256,uint8)","10ae4ce2":"setReleaseValidator(address)","10af92ba":"eachCandy()","10b0a4cb":"updateServiceMaxCreditsPerProvision(address,uint32,uint256)","10b0b5d5":"add(uint256[])","10b1bf2c":"LongPlace(address[2],uint256[8],uint256,uint256)","10b23ceb":"isAdjacent(uint8,uint8,uint8,uint8)","10b3d502":"ICO_BONUS2_RATE()","10b44094":"LogUserRegistered(address,address)","10b60e65":"SimpleTrade(address,address,uint256,uint256)","10b787d1":"evaluate_model(uint256)","10b798d9":"countRef(address)","10b7d9ae":"view_get_maintenanceMode()","10b8b441":"PrediksiToken()","10b9e583":"shutDown()","10bc044f":"setUserLanguages(address,address,uint256[])","10bc3c75":"getCurrentMiner()","10bd0d9e":"LegendsToken(address,address,uint256,bool)","10bd6d2b":"__address2__()","10bdc6cc":"joingames(uint256)","10be3808":"receivedWei(address,uint256)","10beb070":"getRaffleStats()","10bebe64":"OneExchangeToken()","10c067d2":"setPriceForProtectedCrypton(uint256,uint256)","10c0afaa":"balanceForReward()","10c1181d":"memberId()","10c12917":"calculateWinnings(uint256,uint256)","10c193b9":"total_tokenwei()","10c19421":"born()","10c1952f":"setLocked()","10c1b414":"moveTokens(address,uint256)","10c1de19":"GeneratedNumber(uint256)","10c1ff21":"crowdsaleSuccess()","10c2a365":"PreICO()","10c2c1c1":"setArbiter(uint256,address)","10c36365":"SetExchanger(address,bool)","10c3b15f":"calculateAmountToRelease()","10c452ef":"deactivate_trading()","10c4610b":"exporterBanker()","10c49b78":"CarlosCoin()","10c4b19a":"minMakerBetFund()","10c4e8b0":"all()","10c5b269":"orderMatchSell(uint256,uint256,uint256,uint256,uint256)","10c5b328":"mintTokens(uint256,address)","10c70801":"setMaxAddresses(uint256)","10c74fc6":"setGlobal(uint256,uint256)","10c7868f":"sessionNumber()","10c9135e":"getTime3(address)","10c9ab39":"makeTrans(address,uint256)","10c9c76d":"updatePokecoinAndPokemarketAddresses(address,address)","10cad61f":"combinedGoalReached()","10cad69c":"getBrickIds(uint256,uint256,bytes32[],uint256,uint256,uint256)","10cb4302":"DstTokensIssued(uint256,uint256,uint256,uint256)","10cb4d64":"rejectCurrentPlayerDraw(bytes32)","10cb5628":"isPartOf(uint256)","10cb954c":"members_push(address,address)","10cbe445":"applyMC()","10cc6e21":"Dappster()","10cc969b":"sumbitForElection()","10ccbbdb":"_checkVotes(address)","10ccbe66":"setAltCapitalization(uint256)","10ce0516":"canSwap()","10ce2f3f":"buy3(address[],address[],uint256[],bytes,bytes,bytes)","10ce6452":"set_deposit_fee(uint256)","10cf5d47":"awaitingPayout()","10cfcc19":"left17(uint256)","10d0059c":"removeLock(uint256)","10d07e27":"_lotteryCard(uint256,address)","10d08ef4":"_check_winner()","10d0ffdd":"calculateTokensReceived(uint256)","10d26354":"greaterThan(bytes32,bytes32)","10d2f2e5":"set_whitelist_enabled(bool)","10d3bd2a":"transferMoneyMoney(address,uint256)","10d426f2":"_remove(address)","10d48cd3":"verificationAddressOn(address)","10d5105d":"offlineTransfer(address,address[],uint256[],uint8[],bytes32[],bytes32[])","10d58506":"transFeeCut()","10d5e276":"maxAttempt()","10d6a13a":"tokenSaleClosingTime()","10d72742":"removeFailedGame()","10d7b903":"DIALSSPUN()","10d89d37":"isExchangeUser()","10d8d74d":"setPrice(bytes32,uint256)","10d92060":"requiredGasPrice()","10d979f6":"tokenDivsOwing(address)","10da9f75":"StayBitContractFactory()","10dc0e3c":"decimalOfPrice()","10ddaa87":"_setCurve(uint256[],uint256[])","10ddd6fc":"_onPromo(address,uint256)","10debdf8":"isAuditFinished(uint256)","10e04dcb":"BONUS_500()","10e0ebb3":"callStoWithBtc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","10e1c5e5":"getKrsFromApproved(address,uint256)","10e1d6db":"payoutEscrow(uint256)","10e22d41":"receivedWei()","10e2b914":"setTargetDiscountValue6(uint256)","10e56973":"keyPrice()","10e5bff8":"setSuccessor(address)","10e6913e":"upDate()","10e6a223":"allocateSurvivorWinnings(address)","10e6be35":"getRewarder(int256)","10e6d3c9":"teamReservation()","10e6d746":"_mint(address,string)","10e6e06c":"vote(bool,uint256)","10e776ed":"lockBalanceOf(address)","10e7a9ce":"countMonths()","10e7e89f":"getLockingTimestampfrom()","10e80ded":"accumulate_to()","10e82384":"airdropAdmins(address)","10e89b22":"remove_deal(uint32)","10e96b3c":"createMorePaymentChannels(uint256)","10ea13df":"totalInvestment()","10ea6b34":"setReadOnly(bool)","10eae945":"wdToken(address,address,uint256)","10eaf707":"getWarehouseByAddress(address)","10eb3a32":"getContinuityNumber(uint32,int256)","10eb5a8c":"transferAndCallFST(address,uint256,bytes)","10ebb38d":"ASFBToken()","10ebf103":"getPokemonBet(uint256)","10ec5d2c":"funeralAndBirth(bytes32,int256,bytes32)","10eca945":"SetupMultipliers(uint256,uint256,uint256,uint256,uint256)","10ece9c6":"correctedHeroContract()","10ed5dfe":"_emitActiveChanged(bool)","10ee1910":"submitGameResultAndTriggerPayout(uint256)","10ee51ca":"GXVCSentByEther(uint256,address,uint256)","10eeb69a":"arbitrate(uint256,bool)","10ef0ac7":"endTimeICO()","10ef1976":"getEpmBalance(address)","10f01eba":"pIDxAddr_(address)","10f0c4da":"maximalInvestment()","10f13a8c":"setText(bytes32,string,string)","10f169e8":"disputeStatus(uint256)","10f1726d":"isDayTokenActivated()","10f1a274":"setMinWei(uint256)","10f226df":"addAction(bytes32,int256,int256,bytes32[],bytes32[],bool)","10f2bf3e":"closeSale2()","10f2e11c":"PrometheusX(address,address)","10f32982":"GetQueueLength()","10f3ac24":"EmergencyWithdrawNoAccountedTokens()","10f40804":"alottMainSaleToken(address[])","10f41715":"updateMintingData(uint256,uint256)","10f444ac":"ChinaInvestmentToken(uint256,string,uint8,string)","10f5f1b3":"get_participant_arbits_kyc_whitelist(address)","10f5f6b6":"free_vote_for_candidate_A()","10f66c54":"AirdropOne(address,uint256)","10f6e2a6":"setCountWinnerByPlace(uint256,uint256,uint256)","10f6fd02":"GetAllChallengeIDs()","10f74467":"kycRegisteredContributors(address)","10f7cf32":"statuses(bytes32)","10f85f44":"EAACoin()","10f88546":"declareCheater(address)","10f91e39":"walesaDawajMojeStoMilionow()","10f945c7":"withdrawToPoolOwner(uint256)","10fa01e6":"isBattleCreator(string,address)","10fa85c6":"HybridToken(string,string,uint8)","10fab6c7":"addReceivedMessage(address,address,uint256)","10fae6f4":"futureFundingWalletAddress()","10fb3c85":"addDelayedBonus(address,uint256,uint256)","10fb52bf":"createSaiFoundersEdition(uint256,address)","10fc0a6e":"RigCraftPresalePackageManager()","10fc0d39":"transferToMultisig()","10fc31ce":"balancesForPreICO(address)","10fccbf0":"presaleBurnPaused()","10fcda55":"DDFToken(uint256,string,uint8,string)","10fcdecc":"fechVoteInfoForVoter(address,uint256)","10fe42b8":"getBdpControllerHelper(address[16])","10fe5a2a":"rateEarlyStage3()","10fe7c48":"placeBet(uint256)","10fe9ae8":"getTokenAddress()","10feb0e5":"setPowerToken(address)","10ff4a1b":"lockedTokenBalance()","1100482d":"attach()","1100a9d8":"endGame(uint256,uint256,address)","1101a0fd":"claimWinnings(bytes32,bytes32[],address[],uint256[],bytes32[])","1101eaaf":"purchaserCount()","1101fa06":"WhaleChain(uint256,string,uint8,string)","1102610e":"setMarketplaceContract(address)","110466ed":"setOperatingStatus(bool)","110496e5":"allow(address,bool)","1104e09e":"SaddleShopSaleFee()","110506f0":"createCard(uint256,uint256)","11056874":"finishDApp(bytes32)","1105efe2":"_setExtraReceiverAmount(uint256,address)","11063eb1":"updateUnlockDate(uint256)","11071cb3":"CratesPurchased(address,uint8)","1107c3f7":"orderConfirmer(bytes32)","1107e77c":"removeRequester(address)","1107fa00":"thirdStageMintingDate()","1109a0a8":"blocksProducers(uint256)","1109ef92":"transferFromCrowdsale(address,uint256)","110ae711":"checkReferral(bytes8)","110b5f76":"ApprovalDenied(address,address)","110b8a6d":"changePlatformFlag()","110c478b":"uintRound(uint256,uint256,uint256)","110cee6b":"FlightDelayPayout(address)","110d35b8":"buyAsset(uint256)","110d9e68":"insert(bytes32,uint256,uint256,address,address)","110dc7a6":"doInvest(address[3])","110df916":"getChannelID(uint256)","110f8874":"withdrawRefund()","110fd65f":"toBeRaised()","111002aa":"createTask(string)","11102d4d":"devRatio()","11103599":"Token_Offer(address,address,uint16)","1110b13a":"getWinningPosition(uint32)","11115e38":"controlTime()","1111cd24":"getBuyReturn(uint256)","11125497":"setCodename(string)","1112b124":"setBuyPrice(address,uint256)","11136747":"_init(uint256)","1113ed0d":"KERNEL_APP_ID()","1113f2e6":"_addEth(uint256,address)","1114811a":"FACTOR_9()","111485ef":"individual_cap()","11149ada":"getProof(uint256)","1114fce5":"clearAdmins()","1116cba9":"WWNCoin()","1116f631":"setFunctionSevenPrice(uint256)","111723ed":"getShipDetails(uint256,uint256)","1118069c":"enforceKyc(bool,address)","111839d5":"rushTimeFloorCount()","11184392":"registrationDeadline()","111878f6":"addBonus(uint256)","11191186":"setReservingPercentage(uint256)","11196117":"setGameStateFCF(bool)","11196cc2":"tournamentFinished(uint256[])","11199872":"setSignatureChecker(address)","1119e8a6":"increaseNumber(uint256)","111a1fe9":"dividendsBuffer()","111a7427":"setNewAttributes(string,string)","111b30a7":"setFundariaTokenBuyAddress(address)","111b63ab":"CoinparkToken()","111b72c3":"accountCreated(address,bytes32,int256)","111bc51a":"VibeCoin()","111cf909":"setIntegerVaule(uint256)","111d7241":"tournaments()","111d8171":"getNews()","111da3a7":"popFirstFromArray(address[])","111e73ff":"SetAlias(uint256,bytes32)","111eaba0":"updateOwners(address,address[],uint256,uint8[],bytes32[],bytes32[])","111fba02":"NETM()","1120ba47":"ApolloSeptemCrowdsaleExtended(address,address)","112227ae":"TIER3_BONUS()","11223a2f":"phasePublicSale1_From()","1123adb1":"currentDividendPeriodNo()","1123cdd9":"decideSplit(uint256,uint256,string)","1123e608":"LogMigrate(address,uint256)","1123efd5":"getNumGamesStarted()","1123fcce":"getEmployeeCount(address)","11247233":"changeArrangerFeeRecipient(address)","1124c05a":"getLogs(uint256)","1124e9ea":"setfocuscardid(address,address,uint256)","11262105":"getLog(address,uint256,uint256)","11269de6":"setFreezeForCoreTeam(uint256,address,uint256)","1127be97":"recomputeLastAverageBalance()","1128798f":"isCrowdSale()","1128b59e":"bonusStage2FirstDay()","1128bbfd":"getProposalAddress(uint256)","112940f9":"addConsumer(address)","1129f644":"STAKE_START_TIME()","112a19af":"Enlisted(address)","112b3c52":"MuxeToken()","112b4495":"_appendTagged(string,string,string)","112b466e":"btcraised()","112c7075":"ManualDeposit()","112cc015":"ROLE_CRO()","112d6b34":"getRefBalSended()","112d761c":"addAnimal(uint8,address,uint32)","112dd4fd":"foundation_coins()","112e39a8":"scheduleCall(uint256)","112e40b5":"setBalanceOfETH(address,uint256)","112ea262":"authorizeProvider(address)","112ed3f5":"resetWeiBalance(address)","112f5eb8":"airdropCall(address,address,uint256)","112fb7c9":"finishGenerating(bool)","112fbe9b":"transferMinimumFee(address)","11302818":"addRefBonus(address,uint256)","11308d66":"freeLandsOf(address)","1132fae4":"_utoa(uint8)","113353a8":"changeMember(uint256,address,address)","1133f89d":"sendToGrowthContract()","11340c21":"getEGTTotalSupply()","1134269a":"convertForPrioritized(address[],uint256,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","11349a6d":"dispute_end()","1134b7da":"emptyBody(uint256)","11355585":"setBlockLimit(uint256)","1135b3ac":"allocateInternalWallets()","113642e5":"getConfirmationCount(bytes32)","11367b26":"destroyer()","1136aa64":"rocketTravelTime(uint256)","1138001c":"lenghtenFrozenState(uint256,uint256)","113990b8":"PRICE_MULTIPLIER()","1139a355":"releaseForTransfer()","113a8ed5":"Film()","113b2eff":"_userRefund(address)","113b5cf2":"checkBonus(address)","113bb8db":"EventTransfer(address,address,uint32)","113c589f":"SmartBillions()","113ca356":"ticket(address,bool)","113ce458":"winnerBidValue()","113d1975":"totalTokensForSaleDuringICO4()","113d32d0":"TournamentCreated(uint256)","113d8938":"addBytesSetting(string,bytes32,address,address,string)","113e2088":"votingData()","113e5b93":"dayToDate()","113e6b66":"fipsAddToLedger(bytes20,address)","113e9d4f":"DigitalKeyCoin()","113ee583":"aliceClaimsPayment(bytes32,uint256,bytes32,address,address)","11400d8e":"priv_fastGetBlockHash__(int256,int256)","1141d7de":"URI()","11420f90":"MYINITIALSUPPLY()","11424eac":"implementInterface(string)","11428ce8":"DTXToken(address)","1142d47f":"spentFunds()","114385a0":"AddReward(uint256,string,string,string,uint256)","1143c026":"disableICOSwapLock()","11448a56":"scuttle()","11456b47":"addName(string)","1145a20f":"scheduleCall(address,bytes4,bytes32,uint256,uint8)","1145a49c":"test_oneTrueAssert()","1146015e":"setData_6(uint256)","11461614":"pushRatePlan(uint256,string,bytes32,bool)","114630e1":"ADVISORS_TOKENS_SUPPLY()","11463a01":"getChampion()","11466110":"Pretorian(string,string,string)","11467d7c":"deactivateUser(address,uint256)","114719c5":"getLongGap()","11471e17":"tokensPerEther2()","1147b142":"MercatusDeals()","1148d93e":"initializedRatify()","1148da2f":"proposeWrittenContract(string)","11497c69":"PlayChapToken()","1149b5f5":"PendingManager(address)","1149f736":"unpackPrice(uint16)","114b4f1c":"howManyGuaranteed()","114beab3":"availableTokensforPreICO()","114d081d":"markHours(bytes32,bytes32,int256)","114d38a0":"notExceedingSaleCap(uint256)","114d69b2":"setCRLaddr(address)","114d8be1":"addNewOwner(address)","114da3e3":"mintWithEvent(address,uint256)","114de05e":"addMultipleRecords(uint256[])","114e4802":"congratulationsText()","114e6b37":"setDependencies(address,address,address,address,address,address)","114f0e49":"player4()","114f9511":"pay(bytes32,uint256,address,bytes)","11506970":"freezeTokensAmount()","11506d4b":"forgiveThis(address)","11513ba5":"setTTWTokenAddress(address)","11552212":"Hodl(address,uint256)","1155d042":"accumulateFee()","1155f60f":"RoundBetStarted(uint256,uint256)","11563b04":"ETokenAirdrop()","11566dd7":"fundingMax()","11567f95":"readnameXaddress(address)","115793d4":"newClockmaker()","1158183a":"isPreIcoActive()","11589260":"_createProxy(address,address)","1158f696":"createMarriage(bytes32,bytes32,uint256,bytes32,bytes32)","115976c4":"admin1()","1159f39b":"transferFromCroupier(address,uint256)","1159fd53":"isAContract(address)","115a43e9":"getWarriorOwners(uint256[])","115b7fa8":"setOverBalanceLimitHolder(address,bool)","115bd3f8":"rejectInvestmentWithdrawal()","115bdfe7":"currencyMap(address)","115ce332":"isAddressMember(address)","115e397e":"getTotalchannels()","115e9375":"getUint256Min()","115ecc58":"fundStorageVault()","115ece4c":"getTokenAmount(address,uint256)","115f2be2":"customBuyerLimit(address)","115f2f2f":"tokensPerUSD()","115f6795":"cratesSold()","115fd072":"PowerStandardToken(uint256,string,uint8,string)","1160a807":"addWinTickets(uint256,uint256)","1160b93b":"calculatePayrollRunwayInMonths()","11610c25":"bet()","116134ee":"mask()","11613fc9":"godBank()","116191b6":"gateway()","1161a5c8":"registMyHns(string,address)","1161d226":"_participateIsAllowed(uint256)","1162247e":"lastTwoAmbassadorsAdded()","11642134":"produceEmeralds(address,uint256)","1164e11e":"getPurchaserAddressCount()","1165214d":"NotToRent(uint256,uint256,address)","1165dce2":"getTeamList()","11667335":"adminRetrieveContractConfig3()","1167ecb2":"finishPreICO()","116877cc":"changeAuthority(address)","116a6f6c":"BONUS_TIER_7_LIMIT()","116a8221":"airFropTracker_()","116b556b":"founder1()","116b7aa9":"setGameGiftOnceAmount(uint256)","116c347a":"_withdrawTokensTo(address)","116c6eab":"getProfitShare(address)","116c92b7":"addAccount(address,uint8,bool,address)","116d816b":"assetManagement(address)","116e8726":"crowdsaleDasTokensChangeBeneficiary()","116ea900":"createETHCardCollectible(uint8,uint8,uint256,address,uint256,uint256,uint256)","116fb2a8":"setTokensPerETH(uint256)","116fe01b":"ClipperCoin(uint256,string,uint8,string)","11704f52":"tradingLive()","1170a759":"withdrawalCoolingPeriod()","11715316":"CorpCoin(address,uint256)","11715c94":"getBonusRateForAmountBased(uint256)","11717501":"IEFBR14Contract()","11719d7e":"getCrowdsalesForUser(address)","11728ecf":"toKey(address,uint256)","117328b9":"LogBidReturned(address,uint256,uint256)","11737d7b":"getFreeTime()","11738735":"bnbWithdrawEnabled()","1173ca7d":"CashBackToken()","11746e5e":"getSpaceshipProductCount()","1174ca26":"totalLossValue()","117546c5":"lastParentBlock()","1176205e":"setMaxRequestQuota(uint256)","1177275e":"ZferToken(address,uint256,uint256)","117735f0":"NewQuest(string,bytes32)","1177645b":"set_devContract(address)","11776737":"CrowdServe(address,uint256,uint256)","11777af7":"refundVault()","1177892f":"getBalanceByAdress(address)","1177dc34":"nullFace(address)","117803e3":"OWNER()","11780a01":"erc20tk()","11789bec":"njbToken()","1178f51a":"ubiatarPlayVault()","11791368":"removeCurrentIcoRound()","1179778b":"setBasePremium(uint256)","1179cf71":"lowEtherBonusValue()","117a0a22":"CosmoToken()","117a4425":"setII_S(uint256)","117a5b90":"games(uint256)","117b198e":"soldTokensLimit()","117b4705":"retract(bytes32)","117b652b":"rewardinterval()","117cae9a":"editStartlist(uint256[],uint256[])","117d4128":"getOrder(uint128)","117d82d6":"playCount1()","117d94f5":"sendFundsToWallet()","117ddaf9":"weiRaisedInPreICO()","117de2fd":"payout(address,uint256)","117df088":"withdrawDeposit()","117e62fd":"getLastAuctionsWinningBid()","117f8684":"changeBZxVault(address)","1180788e":"searchString()","1180d67e":"angelFoundationShareNumerator()","1180f83b":"changeFMPcontractAddress(address)","1181324b":"updater(address)","11815312":"grantTeamAdvisorSupply()","1181a459":"freezeAdministrationContract()","11822cb7":"UTPL()","11823d43":"OCMarket()","11823e04":"advisorAllocation()","1182c796":"debug_is_dry()","11831234":"testFailPullWhenStopped()","1183429a":"removeAddressesFromWhitelist(uint256,address[])","11844aae":"period2End()","11851b5e":"BOARD_3()","11857ed7":"spendAdvertising(uint256,uint256)","1185a6b9":"getBBFarm(uint8)","118644f6":"OxBtcDex(address,address,address,uint256,uint256,uint256)","118654f1":"XinXianToken(address,uint256)","1186560e":"increaseEthRaised(uint256)","11873ee7":"SetGuestName(string)","1187497e":"updateContractState(uint256,uint8)","1187648b":"testInstant(uint256[3])","11878333":"InitialToken(string,address,uint256)","1187d66e":"votedNo()","1188189e":"storeSomething()","1188324b":"soldCWC(address,uint256,bytes32)","11883c6d":"make_hash(uint256,uint256,address,address,uint256,uint256)","11886bd4":"view36()","118934cc":"ownerCommission()","118a0aae":"addHero(string,address,address,uint256,uint256)","118a9db3":"revenueShare(uint256)","118aa5a1":"convertToRate(bytes32)","118b0f04":"santToken()","118b53ec":"LogTeamTokensTransferred(address,uint256)","118cbccb":"etherWeiRate()","118ceab6":"lastAdjust()","118da6fb":"getGameCompleted(uint256)","118dd8fc":"bonusesAfterClose(uint256)","118e1f2e":"globalOrderSerial()","118e31b7":"getBorrowBalance(address,address)","1190516d":"GetByte(uint256,uint256)","1190647c":"buyerHistory(address,address,uint256,uint256)","11916ce7":"moveIcoTokens(address,address,uint256)","11933e4b":"Transmuted(address,address,address,uint256,uint256)","11937ccd":"adminUpdateStartEndTime(uint256,uint256)","1193e38e":"setPercent3(address,uint256)","1194ed46":"payerString()","11952369":"onRemove()","1196004f":"newCycle()","1196245b":"registerDIN()","1196493c":"getJobContracts(uint256,uint8)","119669cb":"GiveChipGitf()","1196deda":"sendTeamTokens(address,uint256)","1196fb60":"contributeToPrizePool(string,string,string)","119739ff":"privatesaleEnds()","11997dc6":"BASE_DURATION()","119aa5c8":"checkForward(bytes)","119b22b3":"roundNum()","119c1c23":"tokenAllowance(address,address)","119cb2ff":"tokenPriceDivides(uint256)","119cbed6":"rtm_contract()","119cc328":"setFoundersWallet(address)","119ce91b":"voteInfo(bytes32,address)","119d0cb5":"DumbCoin()","119d97ee":"team4Address()","119d9bfe":"KudosTokenFactory()","119dd1b0":"presaleLimitReached()","119e045b":"checkMaintenanceTime()","119e5cdf":"creationUnit()","119ebe89":"getExternalCurrencyProcessor()","119ecb35":"tokensaleStageNow()","119ee4ab":"batchCancelAuctions(uint256[])","119eeb9c":"darx()","119f118d":"ethToCash()","119f1edb":"claimPlatinum(uint64)","119f2546":"distributeEBTC(address[])","119f2c9f":"transferCard(address,uint256,uint256)","119f32dd":"adminIsDead()","119f8747":"support()","119fdee2":"sha256ofString(string,string)","11a00327":"deleteOrder(uint256)","11a09ae7":"airDropTracker_()","11a0c16c":"dsquare(uint256,uint256)","11a10508":"switchToNextSale(address)","11a10698":"ERC223Token(uint256,string,uint8,string)","11a153df":"getBlockNumSinceInit()","11a1b31e":"commandGetBonusTime()","11a4c710":"buyRecipient(address)","11a5a793":"percentageToKill()","11a5b9bc":"migrateBlock(string,uint256,uint256,uint256,address)","11a76729":"transferFromInBatch(address,address,uint256[])","11a800bc":"addressOf(uint256)","11a881e8":"setFee(uint256,uint16,uint256)","11a88e05":"preSale2()","11a8f413":"latestRoundId()","11a98193":"ETHfund()","11a9c3c2":"sellDOTCH(uint256)","11a9f10a":"noToken()","11aa7e26":"setKevin(uint256)","11aaf884":"HCPToken()","11ab19f8":"addTokenToTotalSupply(uint256)","11ab27d2":"HydroCoinPresale()","11ab31ed":"rejectProposal(bytes32)","11ac20c0":"cancelLottery(uint32)","11adbaad":"getListOfAddresses()","11ae40b2":"Presale(uint256,uint256,uint256,uint256)","11ae6aee":"_mint(int256,uint256,uint256,uint256)","11aee380":"memberCount()","11af07e2":"create_event(string)","11af3c68":"divest(address)","11af6564":"getCurrentGasPrice()","11affa5c":"setEggTable(uint16,uint32[])","11b059c6":"mintableProperties(uint256,bytes32)","11b2b22a":"FRKT()","11b35c48":"AGSCoin()","11b4bbdb":"mintTokens2(int256,address,uint256,uint256)","11b546f6":"firstWeekTokenPrice()","11b639d9":"currentTokenCount()","11b63a17":"CROWDSALE_TOKENS_NUMS()","11b70018":"bookingList(address,uint256)","11b7702a":"ImportTestA()","11b7d483":"addressGains(address,address)","11b8f957":"dayAfterDeadline()","11b97324":"participateCrowdsaleSelected(address[])","11b98e12":"isMainSaleTokenRaised(uint256)","11b9fee8":"ForkChecker(uint256,bytes32)","11ba65e5":"_setUpgradeabilityOwner(address)","11baae84":"Contribution(address,address,uint256,uint256)","11bab044":"getCreditFundAddress()","11bb20da":"withdrawBattleValue(address,uint256)","11bbb155":"goLong()","11bbdf53":"maxOpenAttacks()","11bc0a34":"BuyOrder(uint256,address,uint256,uint256,uint256,uint256)","11bc5315":"drawer()","11bcd573":"SetTest(address)","11bcd830":"MinDeposit()","11bd85ad":"Owned2()","11bdfe19":"revertBet(uint256)","11be40e0":"transfer(address,address,address[],uint256[])","11bec062":"EVT()","11bed352":"eip20Approve(address,address,uint256)","11bf68cf":"_issue(bytes32,address,address,uint256,bytes,bytes)","11bfe017":"playerWinItems(address)","11c07649":"getMainAccount(uint256)","11c09100":"calculateNumWeiToIssue(uint256,uint256)","11c0b024":"_setDamgeValue22(uint256)","11c0f931":"bindSmartIdentity(string,string)","11c12715":"LCToken()","11c134e1":"sumPreICO()","11c15dcc":"purchaseBalances(address)","11c19d3c":"SpiderFarm()","11c1dc82":"monakojima001()","11c1ddd9":"addMedalBurned(uint16)","11c28e1a":"initial_tokens()","11c33625":"royaltyInformationContract()","11c3a62f":"GetLuckyResults()","11c3fec5":"CreateLand(uint256,address)","11c4d4f4":"communityAddr()","11c4dbf4":"auctionReputationReward()","11c4e123":"rootHashOf(bytes32)","11c52ec0":"setMaxWagerWei(uint256)","11c57757":"tixPromoDeposit()","11c5a234":"logResult(int8,string)","11c60418":"remAdmin(address)","11c7d6bd":"issueNewSeries()","11c8efac":"lifeA(uint256)","11c911d9":"unreserve(address,uint256)","11c91914":"isUnderLimit(uint256)","11c93d03":"crowdsale_eth_refund()","11c94362":"COMMUNITY_RESERVE()","11c98718":"getMsgDataBefore()","11c99f3b":"FundsWallet()","11c9ccf6":"deleteCustomer(address)","11ca3c63":"satoshiRaised()","11cb0bcf":"getParticipantOriginWithIndex(uint256)","11ccf822":"beneficial()","11cd98ed":"convertToAllTable(uint256,string)","11cda415":"peer()","11cdf27a":"addVersion(address)","11ce0267":"storageContract()","11ce3d24":"postMonForMon(uint64,uint64)","11ce3d2c":"GQHToken(uint256,string,uint8,string)","11ce4556":"TOKEN_TO_CREATOR()","11ceb21c":"ZigZagSupply()","11cec8f0":"getTradeByIndex(uint256)","11cfb19d":"freezedTokenOf(address)","11d12402":"testEasyPropose()","11d15e17":"freeReadings(address)","11d17e78":"Blocker_destroy()","11d295bf":"_getShipName(uint256)","11d36bf5":"reservedSaleEther()","11d36c4f":"setBoolF1F2F3(bool,bool,bool)","11d40001":"EthernautsVendingMachine()","11d414af":"changeIcoStatus(uint8)","11d4f314":"setBounties(address[],uint256[])","11d62de9":"ownerShip(address,address)","11d634ac":"HamsterMarketplaceToken()","11d7b2fe":"unlockAccount()","11d817f2":"getUsers(address,bytes32)","11d8657a":"finalizeAndPayoutForHopeful(uint256,uint256,uint256,uint256)","11d87c4e":"initGame(uint256,bytes32,bytes32,bytes32)","11d89f3a":"setResearchAndDevelopment(address)","11da60b4":"settle()","11da9598":"add2MarketPlace(address,uint256,uint256,uint256)","11daa2d0":"jpPercentage()","11daa7a0":"gamessage(address,address)","11daca81":"joinPot()","11daea9c":"removeExchangeTestAccounts(address,address)","11daf56a":"MainFabric()","11db0176":"unLockFreeze(uint256)","11db3be7":"invokeVerification(uint256,uint256,uint256,string,bytes32[2])","11db6e0e":"ownsSouls(address)","11db8d1b":"burner(uint256)","11dbb12e":"removePolicyRule(bytes4,address,bytes32)","11dc273d":"currentBalances(address)","11dc45c9":"withdrawPrize(address)","11dc4703":"removeUser(uint256)","11dc6816":"getAllowanceOwnerValue()","11dcee2f":"priceCallback(bytes32,uint256,bool)","11dd2837":"_updateCurrentStage()","11dd39b4":"cancelApprove(bytes32)","11dd576d":"userCheck(bytes32)","11dd8845":"getRecord(string)","11ddf693":"debug_changeOwner(address)","11df19f7":"_medalTotalSupply()","11df9995":"coin()","11e0de8b":"tickets10kprice()","11e13c32":"BONUS_ICO_STAGE1_PRE_SALE4()","11e14b2e":"employees()","11e21245":"weiSoftCap()","11e3655f":"updateInstantToken(address)","11e38468":"MarketboardListingComplete(address,uint256,uint256,uint256,uint256)","11e3d606":"min_investment_eth()","11e48cdf":"tokensAllocatedTotal()","11e5b955":"Order_sell(address,uint256,uint256)","11e5ea57":"teamsWallet()","11e67c57":"totalBuyOrders()","11e6a0fd":"getProviderDetails(uint256)","11e847b6":"HATCHBACK()","11e84c71":"claim(bytes32,string)","11e956c8":"isMasterNode()","11e96ab6":"LockCredits(address,uint256,uint256)","11e99c22":"arrival()","11eb6d4b":"GxAuth()","11ebbf24":"createWallet()","11ec76cb":"LogClaimHalvingSubsidy(address,uint256,uint256,uint256)","11ec7b4a":"balancePrivateSale()","11ed1bf6":"artworkIndex()","11ed7b42":"thirdItemWrong()","11ee0ec5":"getZone(uint256)","11ef8d4b":"delegateBonusTokens(address,uint88)","11efbf61":"getFeePercentage()","11efec9b":"shareHolderByNumber(uint256)","11efff1f":"unlockRecordAdd(uint256,bytes32,string,string,uint256)","11f02c87":"createHybridization(uint256,uint256)","11f03b83":"GiftCrowdsale(uint256,uint256,uint256,uint256)","11f0b806":"getDutchAuctionToCraftAddress()","11f1507e":"getAssetToken(uint256)","11f15380":"clientKeysCount(uint256)","11f1fc99":"withdrawTreasury(uint256)","11f217c7":"getNodeAddress(address)","11f29729":"setsymbol(string)","11f2a395":"finalWithdraw()","11f2eed1":"convertEthToMet(uint256,int256)","11f37ceb":"get_price()","11f3eecd":"sellTokens(uint8)","11f43157":"openCrates()","11f45f23":"buyVIBET()","11f48166":"IntroToken()","11f4a9ce":"KernelProxy(address)","11f4ba60":"importBalanceOf(address)","11f54545":"SmatrOCrowdsale(uint256,uint256,uint256,address)","11f58e99":"maxTokensSold()","11f598cd":"editPersonalNote(string,uint256)","11f6649b":"authorizers(uint256)","11f6ad2b":"lastWinnerId()","11f72496":"testT()","11f82a2b":"_getPolishingPrice(uint256)","11fa3d14":"LeekCoinCrowdsale(uint256,uint256,address,address)","11fa3f4f":"weiUsdExchangeRate()","11fa7da2":"getInvestmentsInfo(address)","11facae2":"setValidatorCount(uint256)","11fb57e2":"TokenManager(address[],uint256)","11fb584a":"BloccaConto(address)","11fbad62":"_rejectTransfer(uint256,uint256)","11fdff0c":"advisorPool()","11fe12b3":"isRecovery(address,address)","11fe773d":"memcpy(uint256,uint256,uint256)","11ffb1d4":"deleteMember(address)","11ffe7c9":"getUserDocCount(address)","12005e53":"alexToken()","1200617f":"auction(uint256)","12007984":"addBalanceToGame(uint256)","120149a1":"readCube(bytes32)","120184fa":"gvCF()","1202be01":"eth2mnt()","12032e52":"getSecondaryRecord(string)","12035ca6":"setData_3(uint256)","12038a01":"totalDevelopmentFundEarned()","12039fed":"mintMedal(uint256)","12045d3f":"VKTToken(uint256,address)","1204bab4":"popcount(uint64)","1204ce91":"Debug(bytes32,uint256)","1204d27c":"coinIssuedBurn()","12055758":"checkOwner(address,uint32[11])","12058764":"lockBalanceGroup(address,uint256)","12059f68":"LoversAdded(string,string)","12065fe0":"getBalance()","1206dc5f":"transferMarketplaceOwnership(address)","12074a46":"getUserBets()","1207bb8e":"crowdsalePrice()","1207f0c1":"issueTo(address,uint256)","1208a256":"getLock(address,uint256)","1209073c":"updateBalances(uint256)","120960de":"depositInPot()","1209b1f6":"ticketPrice()","1209f7ed":"withdrawPledge()","120bd501":"approves(address,uint256)","120bd8f5":"setMinimumBetValue(uint256)","120c5194":"getCollectReporterAddress()","120c52ef":"calculateDemurrage(uint256,uint256)","120c7efd":"certifier()","120cc993":"isEmptyOwner()","120dae83":"setMinimalContribution(uint256)","120e6c16":"_finneyToWei(uint32)","120e8f05":"calculateMintAmount()","120fe731":"Tropycoin()","120fe89b":"getPolls()","121114e1":"SuperTicketCoin(uint256,string,string)","1211540c":"withdrawPartial(uint256)","121166ef":"clearTrade(bytes,address,bytes32,address,uint256,int256,string)","1212c12f":"RecordManager()","12136918":"setMaxTranferLimit(uint256,uint256,uint256)","12136e57":"ERC777ERC20BaseToken(string,string,uint256,address[])","12146222":"highSupport(address)","1214ab82":"Lightning()","121557a3":"Avatarium()","121563ae":"Axioms()","12156c66":"snowflakeCall(address,string,string,uint256,bytes,bytes)","1215f8ef":"releaseValue3()","1216e771":"expiration(uint64)","12179a2d":"pendingReferals(address)","1217b6ff":"TransactionConfirmedByMediator(uint256,uint256)","121839f6":"addConfirmationNode(string)","1218d6bf":"decree()","12192649":"countOfParticipants()","12192b00":"getInitialHP(uint64,uint64,uint64)","1219bcfc":"MolToken()","1219d5c8":"APM_APP_NAME()","121a47ac":"nonceForPublicKeyX(uint256)","121a496b":"Lupecoin(address,address)","121ab65b":"LogChangeSponseeAddress(address)","121af083":"DFSCrowdsale(uint256,uint256,uint256)","121b5a25":"calculateCompensation()","121b68c1":"ERC223Received(address,uint256)","121c2b35":"burnPXLRewardPXLx2(address,uint256,address,uint256,address,uint256)","121c5e91":"putOnSale(uint256,uint256,uint256)","121d6426":"senderWeiBalance()","121dbc31":"changeMax(uint256)","121e0d4e":"godPause()","121e6832":"frozenDaysForPartner()","121e8122":"unQuarantineAddress(address)","121eb9e2":"createMintRequest(address,uint256,string)","121ef243":"createUser(string,uint256)","121f0a10":"resolve(uint256,uint256,string,bool)","121f2081":"testCreateWithForeignParent()","1220c6ed":"registerOwner(address)","12217378":"oldTokenTotalSupply()","1221a071":"cmctcybermovie()","1222c25a":"redeem(string)","1222e789":"isPublicSaleWithBonus()","122366fd":"PACCOIN(uint256,string,string)","1223716a":"masterHas()","1223f208":"withdrawadm(address,uint256,uint256)","12243b67":"deletePlayer(address)","12247a57":"IncentCoffeeToken()","12253a6c":"stopContract()","12263017":"setBool82(bool,bool)","122636b1":"getRemainingDaysToThirdPhase()","12267abc":"PRICE_6()","1226afde":"numtickets()","1226be3e":"NotifyMe(address,address)","1226cd98":"allocate(uint128,uint256)","1226f5f8":"wei_per_token()","12278825":"Git(uint256)","1227d0f4":"gameListOf()","122809dc":"deposits_refunded()","12285576":"Donated()","12286715":"SimpleSavingsWallet(uint256)","12287629":"consultantsKey()","1229987d":"collectProfitERC20(address)","1229af09":"FreshROI(uint256,uint256)","122a1949":"Group_1()","122a7723":"GetPriceMultiple()","122b0e85":"getVerificationLevel()","122bdc32":"ThemKhoaHoc(string,uint256,string,string,string,string)","122d34d9":"returnToken(string,uint256)","122d9a8d":"piEndTime()","122e04a8":"WITHDRAW_ADDRESS()","122e74f4":"getWeiLeft()","122fe685":"presaleAddress()","122ff73a":"_getStrengthDexterityVitality(uint256,uint256,uint256)","12302932":"reinvestAffiliate()","123119cd":"payer()","12317402":"betMinAmount()","123180a2":"testInitialBalanceWithNew()","12333b32":"StartGame(uint256)","123398aa":"johnnycoin()","1233f543":"distribute55M(address[])","12342248":"CreditleetToken()","12360151":"dayPotLeader()","123702e2":"profitAddress()","123731c4":"addressPositions(address,uint256)","1237b2a6":"TotalPot()","123802e1":"forceRefundState()","123807b2":"markParticipantIdentifiend(address)","123841cf":"MintedGreen(address,uint256)","12386471":"sumExpOffset(int256,int256[],uint256,uint8)","1239ec8c":"batchTransfer(address,address[],uint256[])","123b06d5":"currentPendingParticipants()","123b1dae":"accountOfP(address)","123b5e98":"setAttributeSigned(address,uint8,bytes32,bytes32,bytes32,bytes,uint256)","123ba3e2":"changePrizeSplits(uint256,uint256,uint256,uint256,uint256)","123c3a4f":"maxTokenSupplyICO2()","123c3ada":"getMedalInfo(uint256)","123cc082":"setJoinedCrowdsales(address)","123d997a":"removeAllowCnsContract(address,bytes32,address,bytes32)","123e4112":"arrayToCrabPartData(uint256[])","123f513c":"testDeadChickenCnt()","12407f98":"toSaleWallet()","1240adc8":"stoppCrowdsale(uint256)","1240b381":"PermarektToken()","1240de76":"testUnexpiredBalance()","124135c9":"exit(bytes,bytes,uint256,bytes,bytes,uint256,bytes)","1241d7a7":"setEnableRecord(bool)","1241ee7d":"profit(uint256)","1242031a":"ZhaoGuCoin()","12424e3f":"approve()","124279a7":"activeSignersCount()","1242e96d":"updateMarketPhase()","12432fee":"canSendWebGifAmount()","124442be":"approveIncrease(address,uint256)","1244861e":"addTokenData(uint256,string,string)","1245c653":"currentDrop()","1245e347":"teamWalletAddress()","1245f45e":"getRunningAuctions()","12460fdd":"confirmCeilingRaise(bytes32)","12468cc5":"getWifiPwd(string)","12474435":"unfreezeAwardedTokens(address)","1247caf4":"ChangeFounderMulSigAddress(address,uint256)","1248b101":"claimDay(uint256)","12491ad9":"ReverseRemoved(string,address)","1249209e":"returnExcess(address)","12494160":"isHolder()","12495a5d":"ContributionWallet(address,uint256,address)","1249c58b":"mint()","1249d3b8":"isEcoAllocated3()","124abb0a":"_checkAndCallSafeTransfer(address,address,uint256,uint256,bytes)","124b0939":"afterCallBack()","124c27a9":"addPrize(uint16,address,uint256,uint256,uint256)","124c2dde":"executeBet(address,address,uint256)","124c32a1":"enter(bytes32,bytes8)","124cf830":"isSecondaryOperator(address)","124cfc8c":"beneficiaryOf(uint256)","124d3396":"releaseICO()","124eaee6":"Identity()","124f0b31":"rewardDecimalPercentByTime(uint256)","124f2418":"deleteBytes32Value(bytes32)","124fc7e0":"increaseSupply(uint256,address)","124ff29b":"getAyantDroitEconomique_Compte_5()","12504109":"getLast24hSendingValue(address)","12508ea4":"play(uint256,bool)","1250ca3d":"getUserPaybackRate()","12511c14":"transferEnable(bytes20)","12514bba":"transfer(uint256)","12529d22":"getRank10()","1252aadb":"EightBitToken()","1252cc33":"processTickets()","125385f2":"COLOR_GREEN()","1253b82f":"travelPrice()","1254e64d":"transferEthers(address,uint256)","1254f0dc":"startRate()","12555df2":"zasxzasxqaqq()","12568c24":"blanceOf(address)","125716d6":"getContractStatus(address)","12571a33":"migrateInternal(address)","12582c1a":"setAdminMode(bool)","12592381":"incomeAllocation()","12599d3f":"GlobalEnergyDigitalChain()","1259c00d":"stampIndextodissolved(uint256)","125b8f06":"isInNextGeneration()","125bfb66":"claimToken(address,address,uint256)","125d5d71":"startEpochTimestamp()","125e527e":"Ether()","125f67e7":"SunriseCoin()","126004b8":"deleteRole()","12600aa3":"concatStrings(string,string)","1260c19a":"showInterval()","12610b5b":"pendingEditionsOf(address)","1261795d":"withdrawGas()","126262a3":"init(address,address,address,address,address,address,address,address,address,address,address,address,address,address)","1262d6be":"fortnightsFromLast()","1262eb73":"queryPlayer(uint32)","12630012":"LEOToken()","1264299a":"endPresaleTime()","126596e7":"ownerSetCallbackGasPrice(uint256)","12660306":"getLogos()","1266cae2":"setCrowdsale()","1266d5f9":"getWitnessesCount()","126702a0":"DOW_TUE()","12671fb4":"balanceAirDropToken(address,address)","12675713":"getTestekTokenIssuance(uint256,uint256)","1267961b":"ERC777BaseToken(string,string,uint256,address[])","12686aae":"transferLocked()","1268cb71":"XBPToken()","1269359a":"enableWallet(address)","126a710e":"dnsrr(bytes32)","126af4af":"tokensContractBalance()","126b12e7":"initICO()","126b6e17":"downX(uint256)","126b85e7":"addLevelQuest(address,uint256)","126c13c8":"toldYouSo(bytes32)","126c27b5":"setETHAssets(address)","126d20f1":"getBestPromouter()","126d5b83":"getPoolAmounts()","126d9882":"updateLogoFee(uint256)","126eac43":"getContribution(address,address)","126f992c":"forceOff()","126fbb3a":"removeFunds(uint256,uint256,uint256,uint256)","127043c3":"feesRate()","12706ccd":"NIGIZ()","12709b90":"SuddenDecayingTokenFunction()","1270a4d3":"setMinSale(uint256)","12711ae3":"wtech2()","127157c3":"activateDevice(address)","1271bd53":"upgradeContract(string,address)","1271f09a":"approve(address,uint256,address)","12724689":"addToTokenTransferDisallowedList(address)","1273f6e7":"BIGSELL()","12746e9f":"changeParam(uint256,uint256,uint256)","1274c3f3":"announcementHash()","127616f9":"releaseMultiWithStage(address[],address)","127714c7":"getBudget()","12778e8d":"addDistributionContract(address)","1277b0c9":"createBid(bytes32,uint256)","1277b4f1":"createCandy(string,uint256)","1277e24f":"payOneTimeFee()","127810bc":"getCompany()","12783f2f":"VESTING_TIMES()","12788f97":"B0xPresale(address,address,address)","1278cec4":"WinnerPaidEvent(address,string)","12795d7f":"putSaveData(string)","127a0dd9":"setJypcBonus(uint256)","127afec6":"MakerTransferredAsset(address,uint256)","127b0901":"delayAutorelease()","127b4da5":"getAmountForCharger(uint256)","127c3d45":"getUserLibrary()","127cc6bf":"medalTotalSupply()","127cf0b9":"multiInvokeWith3Args(address,string,address[],address[],uint256[])","127dd730":"donationNum()","127e499c":"firstBonus()","127eca3f":"totalDividendPayments()","127ecfa9":"getMinReward(string)","127effb2":"operatorAddress()","127f0b3f":"roundCount()","127f1068":"pieceprice()","127f2d2c":"shutForDai(uint256)","127f3374":"calculateselfOdd()","127f902f":"addressFundReserve()","12800751":"determineWinner(uint256,uint256)","12806653":"setMaxContributionPhase2(uint256)","1280db73":"donate(address,string,string)","12810fd8":"Lesson_6(address,uint256)","1281311d":"buy(uint256,uint256,uint256,uint256)","1281619b":"SeeleTokenLock(address,address,address)","12818f0c":"withdrawNac(uint256)","12819817":"setXauForGasCurrator(address)","1281d056":"test_threeValidEqBool()","12821b5e":"sellingPrice()","1282467d":"checkTip(uint8)","12826f30":"isEthereumBased(address)","1282cc2a":"getNumContributionsDID(address,address)","1283c377":"FixedCapSampleCoin()","1283e328":"bonusOf(address)","128424a7":"sort(address[])","1284c8f5":"transferSafety()","1286d9e8":"setRowColors(uint16,uint8,uint256,uint256)","1286e393":"removePartOwner(address)","12874688":"setMinBid(uint256)","12883df0":"lcSold()","12889639":"settleFeePub(address,address,uint256,address,uint256)","1288c42a":"Prism()","12892b7f":"setblnpereth(uint256)","128952e4":"addElements(bytes32[])","128a0b2c":"approveFund(address,bytes)","128a1c74":"createUpdateRisk(bytes32,bytes32,uint256)","128a3765":"clearTransferInsToken(address)","128b265f":"addBridgeTokenFeeReceivers(uint256)","128b3bc0":"_withdrawFunds(address,uint256)","128bad8d":"MFL()","128bfcae":"startStake(uint256,uint256)","128c785f":"ICACOIN()","128cf7c5":"SEC_PER_ETHER()","128d7215":"addRequest(string)","128d9281":"checkTransferFunction(address,address,uint256)","128e0423":"getSenders()","128e1329":"offerHelpUsingBalance(address,address,uint256)","128e1af0":"withdrawFromPot(uint256)","128e3761":"firstTeamContributorId()","128e87e0":"tokensAfterCrowdsale()","128eb401":"expiredCrates(address)","128ef181":"ticketMag()","128f04e7":"importPresaleBalances(address[],uint256[])","128f8e04":"admin_active_payable()","12901f26":"purchaseTokens(uint256,address,address,address,address,address)","12907e08":"lastBlock_f6Hash_uint256()","1290a2b4":"rightSharePriceRateOfIncrease()","1290aed9":"AcornPotSplit(uint256)","12919d90":"setMoneyManager(address)","1291ebdd":"getAllowedTokenAt(uint256)","1292de0b":"sendTokensTo(uint256,address)","129441cf":"_cMoney(uint256,uint256,uint256,uint256)","129484b6":"changeFeeRecipient(int256,int256,int256,int256,int256,int256)","1294d4db":"assignReferral(address,address)","12950877":"setOrCacheValidityBond(uint256)","12958f1c":"getUserName()","1296830d":"transferPreSigned(bytes,address,uint256,uint256,uint256)","1296aef3":"timeInvestInMinute()","1296d47d":"signedApproveHash(address,address,uint256,uint256,uint256)","1296ee62":"transferAndCall(address,uint256)","12973afd":"isNotDuplicateTreasure(bytes32)","12974218":"tokensRemainingForSale()","12975687":"mediaTokensDecimalUnits(address)","12987c98":"large()","129893dc":"ParameterizedToken(string,string,uint256,uint256)","129932d5":"_spto(uint256,uint256,uint256,uint256,address)","1299c8fe":"GetAccountIsFrozenByDateCount()","1299f11e":"updateNextWindowAdjustmentRatio(int256,bool)","129a1a37":"Dissolved(address,uint256)","129a5b99":"getPropertyStatus(bytes32,address)","129a8d25":"LogKYCConfirmation(address)","129a9e99":"enterEvent(uint256[12])","129b873b":"addVote(uint256,address)","129bc044":"unlockAccount(bytes32)","129caa18":"haltICO()","129cf7cb":"ForeignBridge(uint256,address[],uint256)","129ed395":"accountLock(address)","129f80fb":"rewardAirdropMany(address[],uint256[])","12a00b21":"calculate_base_mining_reward(uint256)","12a0421c":"safeWithdrawal2(address)","12a06c35":"NFF()","12a0b32c":"transferRestrictedStock(address,uint256,uint256)","12a0b3ba":"VOLOP(uint256,string,string)","12a12106":"setPayoutAmount()","12a15b91":"BlocktorialTestToken()","12a187f3":"toggleTransfer(bool)","12a1c2f2":"Mether()","12a203c3":"getFinalAnswerIfMatches(bytes32,bytes32,address,uint32,uint256)","12a2716d":"affirmations()","12a3234c":"unlockAdvertisement(uint256)","12a3bbaf":"_addHorse(bytes32)","12a3cda2":"TokenOMG(uint256)","12a3ff95":"endPrivatesale()","12a49007":"p_setInvestorFundPercent(uint256,uint256)","12a4b899":"claimPresaleTokens()","12a63964":"Releaseable(address,uint256)","12a71ee0":"setBiddingAuctionAddress(address,address)","12a77dbd":"getLockedToken(address,uint256)","12a7b914":"getBool()","12a837b4":"transfer(address,address,uint256,bytes)","12a8c1ed":"testAllocatesTokensInSale()","12a916f9":"getPlayerWallet()","12aa2c0d":"getMinBal()","12aa5360":"addAlpha(string,string,bytes32)","12aaac70":"getKey(bytes32)","12aaafa7":"amount_milestone()","12ab7242":"setupStackDepthLib(address)","12abbaaf":"WhosItGonnaBe()","12ac18ff":"About()","12ac4a2e":"bonuscal()","12ac5bad":"GetContractStateCancelledByTenant()","12ac9b46":"_escrow(address,uint256)","12ad8bfc":"registerSecret(bytes32)","12ad8d20":"CryptoElections()","12addb94":"saleEnd4()","12ade015":"oneTokenInFiatWei()","12aef8c3":"tokensForSale()","12afbc78":"getOwnedPointCount(address)","12afef2e":"Reservation(address,address,address,uint256,uint256,uint256,uint256)","12b0b3ca":"transferFromToICAPCallGas()","12b0b627":"splitStr(string,string)","12b0d309":"restrictTokenTransfer(address)","12b1cc95":"createHash(uint256)","12b1f8a9":"removeLand(address,uint256)","12b27e3e":"miningActive()","12b2ecc6":"init_bounty_program(address)","12b392ee":"admin_profit()","12b3a445":"getERC721Nfts(uint256,address)","12b48d3c":"CountryCoin()","12b495a8":"delta()","12b4ba71":"emitTokenStateUpdated(address)","12b58349":"getTotalBalance()","12b62a07":"playerWinHeroes(address)","12b68263":"creditDragon(address,uint256)","12b68286":"whitelistMinTok(uint256,address)","12b6ef5c":"Decision(uint256,address,address[],uint256[])","12b706a7":"buyPreSale(uint256)","12b8ca5e":"_isDiamondOutside(string)","12b93ec6":"ChallengeContract(uint256,string,uint256,address,address)","12b97812":"addOffering(address,bytes32,address,uint256)","12bae48d":"StartDate()","12bb05ff":"claim1Ply(uint64,uint64,uint64,uint64,uint64)","12bb65ca":"MANHATTANPROXY7THAVE()","12bb6df7":"LogRewardPicked(uint256,address,uint256,uint256)","12bb9d3e":"RefundableCrowdsaleWithCommission(uint256,address)","12bc74e2":"withdrawBondReward(address)","12bcc858":"claimTokensInBulk(address[],uint256[])","12bd2cea":"setImageDataCloud(uint256,uint256,string)","12bdc81b":"freedWinPoolForThirdStage()","12bddc9c":"changeRules(bool,bool,bool,bool,bool)","12be78d1":"freeze_pool(bool)","12bea6eb":"kickStartICO(address,uint256,int256)","12bff72f":"doTransferOwnership(address)","12c0af96":"getVoterOnElection(address,address,uint256,address,address)","12c0d1ea":"changeLuck(uint32)","12c1083d":"distributing()","12c2302e":"DocumentRegistered(uint256,string)","12c24128":"FootStarCrowdsale()","12c27c64":"contrp3d()","12c3ee37":"setStorageControllerContractAddress(address,address)","12c3f754":"modificationFee()","12c3f757":"soldiersinfo(address)","12c45f64":"maximumTokenSupply()","12c55a9b":"openDeposit()","12c59488":"setAddress(address,address,address,address,address)","12c61a20":"initambassadorsbags()","12c6651c":"MoralityAI()","12c6ac16":"Reconcile(address,uint256,uint256)","12c723e1":"createDeposit(uint256,uint256,bytes)","12c77207":"getLLV_edit_1()","12c7df73":"rewardValue()","12c8052f":"won()","12c82894":"compute(string,string,uint256,uint256)","12c82bcc":"sendRobust(address,uint256)","12c85095":"getRestrictedTokens(uint8)","12c89869":"getHeroCurrentPrice(uint256)","12c96f5f":"ZAYAToken()","12c99005":"startPREICO()","12cacbb5":"inPresaleMode()","12cc08f2":"getPackageReleaseHashes(string,uint256,uint256)","12cc1abc":"set_exchange_rate_in_eth(uint256)","12cc9dd3":"usdId()","12ccb421":"payPlatformIncomingTransactionCommission(address)","12cd2101":"transfered(address,uint256,bytes32[])","12cd24be":"funder(address)","12cd57c9":"inputauction(uint256,address,uint256,string)","12cdc37a":"OrderTake(uint256)","12ce73dc":"callFor(address,uint256,bytes)","12cef27a":"secondWallet()","12cf0ec8":"balanceOfAt(address,uint256,int256)","12cf85c8":"s26(bytes1)","12cf8a10":"getType(uint32)","12d00c2e":"soloWithdraw(uint256)","12d0e65a":"changeBeneficiaryAddress(address)","12d1456f":"requiredExpIncreaseFactor()","12d1612a":"closeContest(string)","12d1b19a":"poissonData()","12d2c9a5":"isWhitelistedInvestor(address)","12d43a51":"gov()","12d60f86":"fillUpAllowance()","12d6468d":"mathTransfer(address[],uint256[])","12d67c5f":"getLastDataLength()","12d69389":"maxUint32()","12d6c704":"getTMul(uint256)","12d72e99":"deregisterProduct(uint256)","12d96887":"getRollUnder()","12da6e2b":"fourthTime()","12dc006a":"racer_index()","12dc34a0":"disableSetTransferable()","12dc5ca0":"CrowdsaleToken(address,string,string,uint8,uint256,bool)","12dc6449":"test_remove_head()","12dc8c4b":"InitialTokensAllocated(uint256)","12dc9a5b":"assert(bool,bytes)","12dcb676":"remainPackage()","12dd4763":"_transItem(address,address,uint256)","12dd8700":"CevacFund()","12dd9b94":"addBet(address,address)","12de10fd":"setMinimumFundingLimit(uint256)","12de8a12":"addReferenceParentWineryOperationByRegulator(string,string,uint256,string,string,int256)","12df172d":"setScale(uint256,uint256)","12df2f49":"serviceStation()","12df9b63":"AddContact(bytes32,address)","12e135a0":"setBuyCommission(uint256)","12e228fd":"investorAddress()","12e26673":"maxMSC()","12e36530":"addMerkleTreeRoot(bytes32,bytes)","12e43d92":"AVAILABLE_PRESALE_SUPPLY()","12e43da5":"kycConfirmer()","12e530aa":"Hacksig(uint256)","12e56faf":"activeTransfer()","12e57fdc":"MONEYTREETOKEN()","12e5b7fa":"GetOwnertName()","12e6414e":"getCampaignStartDateById(bytes32)","12e753e1":"modifyContact(address,string)","12e7b2ba":"vanilAddress()","12e8e2c3":"setPlatformFee(uint256)","12e8ebdf":"unpauseWithdrawal(address,address)","12e905b0":"selfAddress()","12e9db2d":"get_deposit_balance(address,uint256)","12ea0b0e":"INV()","12ea7d20":"BoSToken()","12ea965d":"icoStartBlock()","12eabe7e":"approuver(address,uint256)","12eacf4b":"fundInsurance()","12eba773":"isAdvisorsTokensFirstReleased()","12ebca9c":"get_admin_list()","12ecaa62":"freezeAccountOf(address)","12ef900b":"getMaxLoanAmountAllowedByLtd()","12ef934b":"nCryptClubShare(address,address,address,address)","12efe5ad":"minDonationInWei()","12effc32":"rejectTransfer(uint256)","12f05418":"campaignCanceled()","12f0f9df":"createBountyContract(address)","12f11ed3":"getDenyPremium(bytes32)","12f20e2a":"withdrawFundsToOwner(uint256)","12f26140":"setWhitelistContract(address)","12f2b838":"updateReservedWei()","12f31b5f":"firstTeamWithdrawal()","12f3d1e0":"discoverResources(uint256)","12f4cbd9":"Vote(uint8)","12f53950":"refunded()","12f58b43":"RATE_CHANGE_THRESHOLD()","12f62bd6":"updateProperties(uint256,bytes)","12f63d96":"lockedByUser(address,address)","12f6e641":"okamiMaxPurchase_()","12f7cf74":"approve(address,uint8,uint8)","12f7fb6f":"RocketCoins()","12f8ae31":"getRedeemEst(address,uint256)","12f8b3db":"createCrowdsale(uint256,uint256,uint256,uint256,address,address,address,address)","12f95b16":"GIC()","12fa6feb":"ended()","12fa769f":"paidAmount()","12fb5b67":"purchaseTokensInICO(uint256,address)","12fc41a1":"MyScheme()","12fc848e":"_randomLucyAddr()","12fca967":"contract6function2()","12fd67ba":"getValidations()","12fdf767":"FuseaNetwork()","12ff2ad9":"Consent(address,address)","12ff658f":"DmitryCoin()","12ffb59b":"checkIcoStatus()","12ffe4df":"_decreaseApprovalAllArgs(address,uint256,address)","130067ca":"updateCostContract(address)","1300a6d1":"timeLeft()","1300cc41":"freezeTransferToken()","13012a3b":"doMap(address,string)","13019a5e":"EtherTool()","1301b876":"EmbiggenToken(uint256,uint256,string,string,uint8)","1301c4aa":"CryptoniumCoin()","1301ee02":"transferringETC(address)","1302188c":"getLastDataHash()","13028f44":"addUserRewardPayouts(address,address,uint256)","1302d03a":"setWhitelist(address,uint256)","130346d2":"icostart()","13037d22":"xioniCoin()","1303a484":"commitment()","13040bc1":"tokensFinalized()","13045155":"MONTHLY_INTERNAL_VAULT_CAP()","130497ac":"getCountryList()","1305413e":"BetMade()","1305d2de":"changeAllCosigners2(uint256,address[],bytes,bytes,bytes,bytes)","13063180":"doEscape(uint32)","13065fed":"MoneroClassic()","130766c5":"enterLarge()","1307d2d7":"EARLY_CONTRIBUTOR_STAKE()","1308c324":"setAddrForPrivilege(address)","1308e82d":"L19_PALToken()","1308e9e0":"startSweepStake()","130985f4":"GetcrowdsaleContract()","1309a563":"IsPaused()","1309d3bd":"RAVI_ALLOCATION()","130a39b1":"removePersonalTokenLock(address)","130bcaa2":"removePersonalLockMultiple(address[])","130c0e88":"advisoryVUPDestination()","130d04d0":"companyHolding2y()","130d7906":"register(uint32)","130d993d":"lifeFactor_iii()","130e54a1":"prizeshow(address)","130fbba4":"setPixelToken(uint24,uint256,uint24)","13110199":"twentyEndTime()","13110874":"preSaleFirstEtherCap()","1311457c":"transferToken(address[],address,address,uint256)","13114a9d":"totalFees()","1311b45e":"setGasForCMT(uint256)","1311c860":"KCoin()","131284c8":"FUNDING_START_TIMESTAMP()","13137731":"testThrowsUpdateLatestRevisionNotUpdatable()","1313c739":"getBidForAuctionByIdx(uint256,uint256)","1313f631":"Register(bytes4,bytes32,bytes32[8])","1314e272":"addAddressesToOperators(address[])","13151981":"to()","13155455":"legacyToken()","13163d53":"CTO_Signature()","13169ab7":"rewardManual(address,uint256)","131719e1":"testtop()","13174093":"bountyAccount()","13175b40":"_emitUserCreated(address,address,address,address,uint8[],uint256,uint256[],uint256[])","13178704":"ContributeToPool()","1317b559":"buyshares()","1318b88c":"GetPlayer_FromID(uint32,uint8)","1318cd2d":"NameInt()","13193936":"GEMERAToken(address[50])","13194658":"MossCoin(uint256)","131a0680":"store(string)","131ad146":"getWorksStatus(bytes32)","131b0563":"EITARD()","131b81ad":"transferExecutorOwnership(address)","131b9c04":"getEarnings(address)","131bb0d6":"ethCostTotal()","131be36c":"preICOregulations()","131c4305":"SoundcoinsAddress()","131d2873":"isContractFrozen()","131de517":"getKeyBlockNr(uint256)","131e03ba":"withdrawOtherEDEX(address)","131e1816":"setRetiro(address)","131fa183":"createBoard(address)","132002fc":"votingDuration()","1320f614":"callServer(string,uint256)","1320f838":"modify_ICOStartDate(uint256)","1321d291":"enact_liquidation_greater_equal(address,uint256,uint256)","1321ea19":"mulTransfer(uint256,address[])","13220305":"doTransferOther(address,address,address,uint256)","13222d0a":"payoutsETH(address)","1322311b":"LoanBit()","13224fc5":"missingTokensFallback()","1322e9d0":"checkPayoutReadyState()","13233cd9":"appointAgent(address)","13242733":"getRoundOfSixteenTeams(uint256)","1325c502":"debugSetNow(uint256)","13270bb8":"authorizedCount()","1327290d":"isAddressActivated(address)","1327487f":"activation(uint256,address)","1327d383":"hybridizations(uint256)","1327d3d8":"setValidator(address)","1327fbe5":"getPanda(uint256)","1328ec9b":"getAvatar(uint256)","1328fd8f":"getDetails(string)","13299604":"getWallet()","132ac1dd":"itemsForSaleCount()","132ae5e9":"numInvestors()","132c3bea":"setContractPrice(uint256)","132c8641":"given()","132d05e5":"_distributeJackpot()","132df661":"isPrePreSale()","132e4f3c":"fail(uint256)","132e63ba":"PRICE_8()","132e8bee":"batchWithdraw(uint16[])","132ff514":"SQUAD_SIZE()","133086a5":"SphereTokenFactory()","1330a21f":"calulateRate()","1332143c":"getGoldTransactionsCount(string)","133252a6":"grantToken(uint256,address)","13326f43":"transferTokenToSender(address,uint256)","1332dd07":"_isFreezeList()","13331391":"buyPreIco()","133323c8":"setLevToken(address)","13332c6c":"myVoteFactory()","133369c6":"GetRigData(uint256)","1334a5e2":"eventCallback(uint8,address,address,uint256)","13352334":"payOwners()","1335461c":"joinGameWithBalance(uint256,address)","13357914":"from(uint256)","1335b56b":"GasSell()","1335b598":"get_ptc_count(address)","1335ff36":"createEventAndMarketMaker(uint256,uint256,uint8,uint32,address,uint256,uint8,uint16,uint256)","1336a756":"previousPeriodRate()","1336cff6":"isAccountFreeze(address)","13373786":"powerBalanceOf(address)","1337d6ed":"sendFlower(address,bytes32,string,bytes16,uint256)","13381fbf":"registrantsPaid(address)","1338c9e9":"SspStandardToken(uint256,string,uint8,string)","1338f493":"isClose()","13390cf2":"VASTToken(uint256,string,string)","133922ad":"setCompanyURI(string)","13392662":"totalTokensOfThisContract()","1339305f":"createRandomZombie_FreeZombie()","1339870e":"GetOrderBookScreen(address,uint256)","13399d10":"INCRYPT(uint256,string,string)","1339cba2":"getRemainingDaysToSecondPhase()","133a473e":"sleep()","133ae30b":"transferFunds(uint256)","133af8b3":"getIcoTokenHoldersAddressesCount()","133b5ba9":"honestisFort()","133c5ff5":"getAdminAccounts()","133cbe3a":"setLatestToNow(address)","133d10e6":"HPCToken()","133d27e1":"partner1_address()","133d2afe":"myfast(address,uint256)","133d5d4e":"setMultisignWallet(address)","133d8555":"withdrawTokenFromElc(address,uint256)","133e3f71":"getOld_BalanceOfr(address)","133f44dc":"removeVerifiedInvestor(address)","133f50f5":"checkUserExists(address)","133f6ac0":"earlyExchangeRate()","133f8a2f":"getStockReleaseTime(address,uint256)","133fe629":"calculateCuts(uint256,uint256)","134000c0":"getGrid()","134087a2":"gameLogic()","1340d09a":"isPoint(uint256,uint256)","13413858":"isFreelancerAvailable(address,address)","13414a4e":"doDisputeMemoryWrite(uint256,bytes32,uint256)","13419be3":"LifeFactor_v()","1341b33c":"releasableViewOrSend(address,bool)","13424bf0":"unpause_4()","13426d87":"addEmitter(bytes4,address)","13429e31":"newPrice(uint256,uint256)","1342c0e8":"VZT_WALLET()","1343a35f":"sendLoan(address,uint256)","1343ed05":"isStoreSet(string)","134538f3":"testRemoveGains()","134562a6":"SimpleToken(uint256)","13463751":"ThroneClaimedEvent(uint256)","13468929":"signedApproveCheck(address,address,address,uint256,uint256,uint256,bytes,address)","1346c20e":"canBuy(address,uint256)","134741f7":"SimpleERC20Token(uint256)","1347b972":"setICOWeek2Bonus(uint256)","1347b9ae":"CommonToken(address)","1348ab3a":"setRequiredTotal(uint256)","1348fdcc":"changeStarttime(uint256)","1349c273":"ClearExpiredFreezingEvent(address)","1349f5ec":"_provideChars(address,address,uint32)","134a04ea":"breedingDB()","134a5330":"updateTokenPrice(int128)","134abf66":"sendVesting(uint256)","134b684f":"SafeGiftTokens(uint256,string,string)","134c021b":"divForTransfer()","134c1a28":"L2Cash(address,address)","134c91be":"setFile(string,string,uint256,string,string)","134ccdfb":"IBIZACASH()","134dc5ad":"setManagerAddress(address,address)","134e3917":"setM2(address)","134f1893":"goWiner()","134fd7d0":"_convertToWei(uint256)","134ff97e":"startGame(uint32,bytes32)","1350a997":"AccessGrant(address)","1350acbd":"PRESALE_MAX_ETH()","135128c2":"CounterPartyDeposit()","13517fea":"maxCost()","1351cf51":"setAuthorizedAddress(address,bool)","135217e7":"requires_depth()","1352faec":"setReleaseDate(uint256)","1353e7b3":"purchaseMetal(uint256,uint256)","1356c5dd":"raceBet(uint8)","13574cd2":"calculateKnowledgeBuy(uint256,uint256)","1357b862":"contractSolidStamp()","1357e1dc":"totalPaidOut()","13582b6e":"HIDDEN_CAP()","135859c0":"distributeICOTokens(address,uint256)","135892bf":"FundUpdated(address)","1358937f":"TEAM_HOLDER()","13590153":"ManualChangeEndDate(uint256,uint256)","1359844a":"winNetworkFeeBasisPoints()","13598b71":"LightningEthereum()","1359cb2c":"getCommissionWithdrawn(uint32)","1359fc91":"setPublicKey(bytes32,bytes32,bytes32,bytes32)","135a2474":"joysoWallet()","135bada6":"setDungeonStatus(uint256,uint256)","135bf431":"gamerun()","135c0701":"purgeAccount(address)","135da3c2":"getBal(bytes32,address)","135da767":"LennartCoin()","135e9ad6":"fulFillTX(uint256)","135ec4bd":"AddAppraise(address,string)","135ed7bd":"priceRound1()","135f01df":"addDocument(bytes16,bytes32,uint8,bytes32,bytes32)","135fae64":"getOwnerProprietaryData(uint256)","135fc676":"loseHandler(address,uint8)","13601234":"checkRejectionRatio()","136047ab":"ticketTransferers(address,uint256)","13612119":"distribToken(address)","136125a7":"GoldFiatFee(string)","13618756":"readnationnameXteam()","1362180e":"setItemName(uint256,bytes32)","13622274":"prealocateCoins()","1362dd32":"testinx()","1364326c":"countVotes(uint256,uint256)","13643605":"crowdsaleTarget()","136439dd":"pause(uint256)","13651124":"WithdrawAmountFromBankAccount(uint256)","136512c9":"_checkPixelRight(uint256)","13653b24":"RECFToken(uint256)","1365e6a3":"REBELCOINSupply()","1366b970":"test_transfer_token_to_contract()","1367641e":"releaseAdvisorTokens()","1367944b":"getIdByName(string)","13683532":"getAccountCap(uint256)","1369f6fd":"getCurrentOwnerBallence()","136aa762":"Remmittance(uint256,uint256)","136ac4bf":"WillTestament()","136af582":"next(bytes,bytes,bytes,bytes,bytes,bytes,bytes)","136b4fea":"getActiveFish(uint256,uint256)","136bcbab":"Windlord()","136c545c":"transferToProjectWallet()","136c8744":"WBSToken()","136cf5c1":"deleteVestingFromStorage(address)","136d1057":"accountBalanceCount()","136d5a59":"giveKudos(bytes32,uint256)","136d6a39":"getBalanceByAddress(address)","136dbbab":"revenueFraction()","136e1949":"buyFunderSmartToken(string,string)","136e1c45":"suspendGame()","136ede68":"verifyCopieExecutoire(bytes32)","136ef18a":"allowTransfers(address[])","136f1016":"hasBet(address)","136f5b5a":"ordersCanMatch_(address[14],uint256[14],uint8[6],bytes,bytes,bytes,bytes,bytes,bytes)","136fa2d7":"rateSeedStage()","1370128e":"free()","13711a31":"presale_allocation()","13714545":"GATEL()","137157c0":"changeBlock(bool)","1371dab9":"whitelisters(address)","13730838":"getCanvasPainters(uint32)","13734a9f":"setClaimDividendPercentage(uint256)","13737db2":"TiValueToken()","13740cf3":"isTrigger()","13748a40":"Withdraw_2()","1374b22d":"proposalExists(uint256)","1374eb6f":"getLockByIndex(address,uint256)","1375111e":"returnrandom()","13754f9a":"notUpgradableInStore()","13765838":"deposit(uint64)","13767204":"AirDropRedeemAFTK()","1376f2ce":"setCrowdsaleStartDate(uint32)","137759df":"ammendReceivedLand(uint256,uint256)","13776ba1":"buyPLATCards(address,uint256,uint256,uint256)","1377900b":"PreICODayOneCents()","1377ae65":"_getEarnings(address,address,uint256,uint256,uint256)","13788651":"test_oneValidEqBytesNoLog()","137935d5":"totalGuaranteedCollected()","1379c6e0":"getICOEndDate()","137a1464":"ifEmergencyStop()","137a3fa7":"transferPayment(uint256,address)","137b3bcd":"getBounsByAmount(uint256,uint256)","137b763d":"SetReferrer(address,address)","137b8721":"getTierWhitelist(address,bytes32,uint256)","137baa2a":"BigToken()","137c1feb":"buyCommonTTMByETH(uint256,address)","137c638b":"getExtraGas()","137ce088":"TokenReserveMinted(uint256)","137ce8e3":"HARD_CAP_USD()","137d7026":"abiEncode(bytes,bytes,address[])","137db23c":"updateWhitelist(address,address,bool)","137e37d9":"accountGet(address)","13801995":"getHopefulId(address)","13819313":"OTTToken()","1381e400":"cancel(uint32)","13823365":"setOneTokenInWei(uint256)","13827950":"getShareholderDB()","1382a652":"isTrustedShop(address)","1382e75e":"addUser(uint256,string,string,uint256)","13831693":"getLevitatingUnicorns(bytes32,uint64)","13844e60":"totalOVCSold()","13845d2f":"creation()","138495de":"SimpleToken(string,string,uint256,uint256)","1384dc12":"endTx(uint256,uint256,uint256)","1385053e":"FlyCareTokenSale(address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint64[5])","1385625d":"MintTimelocked(address,uint256)","13857c1a":"foundersFundMultiplier()","13859f46":"_metadata(uint256)","1385d24c":"toggleContractActive()","138665ff":"testJoin()","13869333":"RealityCheck()","1386a244":"getSettingAddress(string)","1386dc2d":"orgName()","138716e8":"root_domain()","13872f8d":"test_againstFor()","13877deb":"FBLFund()","1387c80b":"test_invalidRuleChange()","1388483d":"BLING()","13887592":"multilocked()","13888565":"surplus()","138a7084":"_4_owner()","138a886e":"testGetTransactionDetails(bytes)","138acb80":"View_MediatedTransaction_Info(uint256)","138b3ab1":"numPlots()","138b806c":"addMultipleAddresseseToWhitelist(address[])","138bdf1b":"simpleTest(address)","138cc941":"testErrorTransferToRejectAuthority()","138e2317":"IcoTokenMock(address)","138e8da1":"getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256)","138efd00":"_createTot(string,address,uint256)","139020d1":"deedByIndex(uint256)","13902e9f":"initBonusPeriod(uint256,uint256,uint256,uint256)","13905905":"addWhiteListedAddressesInBatch(address[])","13907d22":"abrirDoacoes()","1390b247":"getNbSellOrder()","1390df6c":"oldXPAAssets()","1391697d":"weiRound1()","13916c2e":"bidOnCraftAuction(uint256,uint256)","1391c5f8":"EnddateICO()","1391ff43":"fetchVoteInfoForVoter(address)","1392c495":"updateItemPrice(bytes32,uint256)","13930cf6":"setCurrentVersion(string)","13932337":"highTimeBonusLimit()","13943033":"RBOC()","1394f216":"addProjectManager(address)","139654e0":"window2StartTime()","13966db5":"mintFee()","1397d7ae":"setPI_edit_24(string)","1397fdbd":"getShares(address,bytes,int256[])","139818a1":"setFrozen(address,uint256)","1398bbf7":"getRanking()","1398e076":"lotteries(uint256)","139949fa":"sAssert(bool)","1399cc5b":"UWC()","139a667a":"_calcNextPrice(uint256)","139b3752":"_batch1_rate()","139c7048":"generateTokenAmount(uint256)","139ccd1e":"stopCollectSignatures()","139cd9d3":"drawnTokens(address,uint256,uint256)","139ddefe":"ProposeProposal(bytes32,bytes32,uint256,uint256,uint256)","139df200":"getAllMarketsInfo()","139e23b5":"getDividendInfo()","139f1838":"NoBonustimer()","13a070b7":"add_admin(address)","13a0c990":"BearTrap()","13a110b4":"getMin(uint64[])","13a19e1b":"initialCoach(uint256,uint256,uint8,uint256)","13a1da40":"tgrSettingsMinimalContribution()","13a22af9":"latest_buy_time()","13a24744":"BurnupGameAccessControl()","13a2852d":"setICOEndTime(uint256)","13a30010":"refund2(address)","13a396d8":"getRequiredDeposit(bytes)","13a3d9a1":"registerDocument(string,string,string)","13a460b7":"tourisToken()","13a46425":"getNumberOfDisputedStepsProDoctor()","13a46827":"fund(address,address,uint256,uint256,uint256)","13a4b3bc":"OwnershipRequested(address,address)","13a4fd37":"soldTokensIco()","13a517bf":"eighthTeamWithdrawal()","13a5aac7":"paymentRegularTokensPriority(uint256,uint256)","13a5d9e4":"remaingNTRY()","13a666a6":"hasReachedSoftCap()","13a7070f":"withdrawDeveloperCut()","13a8a080":"TokenDemo(uint256,address,address,address,address)","13a91cc8":"getVlsTokenAddress()","13a927c7":"toggleMatchStartEnd(uint256,uint256)","13a92f02":"frozenAccountForLogic(address)","13a931dc":"gasForOraclizedQuery()","13a9589c":"getSalt()","13a9cd8d":"lastDETCWC()","13aa48bf":"minePepe(uint256,address)","13aa7b6f":"viewUnclaimedDepositDividends()","13abdd75":"ecosystemSupply()","13ac2bdb":"addNetworkMember(address,bool,bool,bool,bytes32)","13ac58bb":"increaseCredits(string,uint256,uint8,address)","13acb45b":"calcDoubleBindedBlindHash3(string,address,address)","13ad41d8":"getSkill(uint32)","13ad9ce1":"getRepMarketCapInAttoeth()","13adc129":"MIGG()","13ae4522":"token3MstepCAP()","13ae457d":"mainCapInUSD()","13af4035":"setOwner(address)","13afa97a":"readMarketplaceConfigs()","13b15b24":"setRoundGap(uint256)","13b18640":"participate(uint256,address)","13b222ba":"getMyPoohs()","13b2663b":"cash_received(string)","13b2807e":"setCampaignEndPointById(bytes32,string,int256)","13b2e657":"unfreezeAccount(uint256)","13b37a83":"getRandomUuid()","13b39b9c":"approveMint(address,uint256)","13b3cd91":"collectForREQBurning(uint256)","13b3cdf6":"ownersLUT(uint256)","13b3fffc":"updateChannelManagerContract(address,string)","13b4312f":"transferCollectedFees(string,address,uint256,bytes)","13b499ce":"PRE_ICO_TIER_FIRST()","13b53153":"isFunding()","13b57686":"self_last_result()","13b5a19e":"GBPsToken()","13b5d420":"returnWebsiteData()","13b63f60":"updateBuildingPrivacy(uint256,bool)","13b6c8a8":"setListingFeeInWei(uint256)","13b6f213":"ContributionReceived(address,uint256,uint256,uint256)","13b7423a":"setFundraiserCallData(string)","13b796f4":"getMilestoneTimeAndRate(uint256)","13b84004":"gameTokenAmount(address)","13b96a9e":"numOfSamples()","13ba350a":"Whales_group()","13bac8f2":"updateStorage(string,string)","13baf1e6":"removeToken(address,uint256)","13bb7b0d":"PreICO(address,uint256,address)","13bbae9b":"addProxyManager(address)","13bc33ca":"CryptonHotels()","13bc4bda":"operatorSendTo(address,address,uint256,bytes,bytes)","13bd05e4":"silo_addr()","13bd4e2c":"_prepareAndSendReward()","13bd53e6":"applySettings(uint8,uint256,uint256,uint256,uint256)","13bd9e3c":"fundFoundation()","13bdbb19":"getCustomer(address,address)","13bdfacd":"print()","13be31ae":"preSaleDeposit()","13bfabf0":"isCurrentOrPastAccountReader(address)","13bfcd2c":"growthContract()","13c03159":"payPlayers(uint256,uint256)","13c04769":"submitBallot(bytes32,bytes32)","13c10e44":"attackerExpAdjustment()","13c13d6b":"updateMarketContract(address)","13c1629c":"_getBlockIndexAtYear(uint256,uint256,uint256)","13c1e906":"RentaCoin()","13c25ba6":"subtr(uint256,uint256)","13c2beff":"processWithdrawalForAccount(address)","13c32148":"_computeFee(uint256)","13c3922f":"Aborted(address)","13c42ca1":"getPrice(bytes1)","13c4f953":"getTime(address,address)","13c52111":"amountOfTokens()","13c58cbb":"countNoClients()","13c667d1":"calculateAmountBoughtICO(uint256,uint256)","13c68344":"Verto()","13c709d4":"transferToGame(address,address)","13c7db1a":"limitOfBranch()","13c82b0b":"setIsForkingMarketFinalized(bool)","13c89a8f":"getAllowedTime(bytes32)","13c8a376":"recovered(uint256)","13c8e60d":"getCurrentDebt(uint256)","13c9134b":"setcoinfee(uint256)","13ca1464":"getDHandRank(uint32)","13ca18ac":"WatermelonBlockToken(address,address,address)","13ca43a0":"teamWallet1()","13cc22ea":"createController(address)","13ccca96":"limitbreak_RELEASE()","13cceb21":"getHolderWithdrawIndex()","13cd528a":"miadd(uint64,uint64)","13ce15a9":"left67(uint256)","13ce401b":"getPlayerRecommond(address)","13ceb89b":"getCopaMarketAddress()","13cfed7f":"deposits_until_jackpot()","13d033c0":"cliff()","13d073d0":"Sign(uint256,address,uint256,uint8,uint256,string)","13d19950":"stringsEqual(string,string)","13d1aa2e":"f(uint256,uint256)","13d1bdfb":"priceForMateAdvertisement()","13d40e71":"RefundableCrowdsaleImpl(uint256,uint256,uint256,address,uint256)","13d4bc24":"buyTokenProxy(address)","13d4c63a":"_purchaseWhaleCard()","13d53ca9":"check(bytes32,uint256,uint256,uint256)","13d5469d":"periodICOStage7()","13d557bc":"operatorRedeemByPartition(bytes32,address,uint256,bytes,bytes)","13d567ca":"isApprovedTAAddress(address)","13d59ca9":"upgradeAddr()","13d5d4fe":"test_insert_findWithHintNextRemoved()","13d5ee74":"accPartner()","13d5f1fe":"durationOfStatusSell()","13d65cd9":"test_34_assertGasUsage700Boards()","13d73a08":"AMOUNTWAGERED()","13d769de":"auctionCreated(uint256,uint256,uint256)","13d8867c":"mint(string,uint256,string,uint8,string)","13d8c840":"tail()","13d9028b":"Remain_burn(uint256)","13dc01bb":"BKBK()","13dce04f":"updateRoutingPreference(string,string)","13dcfa08":"AmountClaimed(address,uint256)","13ddb69a":"CROWDSALE_START()","13ddd3ae":"getTokePerWei()","13ddecd5":"withdrawICOReserve()","13de214e":"minimalSuccessUSDWEI()","13debf7c":"_getPersonalAirdropAmount(address,address)","13defbd9":"getMyCrabs()","13df20fd":"createTimeBasedVesting(address,uint256)","13df35d1":"publicTGEStartBlockTimeStamp()","13df7091":"mintAll(int256)","13e003dd":"ASStoken(string,string,uint8,uint256,uint256)","13e0e70d":"ownerRegistry(address)","13e1d1d2":"multiCancelVoteForCandidate(address[],uint256[])","13e1f2b0":"DATToken(address)","13e26d58":"minRequired()","13e2cae1":"revealBid(bytes32,address,uint256,address,bytes32,bytes32,uint256,uint256)","13e2dfc1":"depositDividend(uint256)","13e3151b":"MyEPPToken()","13e33fb6":"calculateBonus(uint96)","13e41971":"setup(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","13e468b3":"getVotingToChangeProxy()","13e4b51f":"putHash()","13e50ca4":"totalFiatValue()","13e5a3b1":"SetUp(uint256,address)","13e5d8b6":"icoStartsAt()","13e5e26e":"recirculateLateFees(uint256)","13e60074":"OwnerRetireHodl(uint256)","13e7323e":"fundingEnd()","13e75206":"getParentOf(uint256)","13e7a234":"getAccessor(bytes32,uint256)","13e7d076":"STERNIUMHUGEELLIGENCECOIN()","13e81119":"purchaseTicketsWithReferral(uint256[],uint256)","13e8360d":"commissionerAuctionComplete(uint32,uint128)","13e8e5d2":"address2a()","13e8e74b":"IexecHub()","13e8fdea":"TxExecuted(uint32)","13ecfbfa":"lastBuyer()","13ed0846":"calculateReward(uint256,uint256)","13ed5f31":"getTransactionConfirmerInfo(uint256,address,address)","13ee4bc5":"pay(bytes32,address[],uint256[])","13f06abc":"balanceFrozenTokens(address)","13f0790c":"tokensSoldWithBonus()","13f07f6f":"Object()","13f0ec1f":"withdrawDekla(uint256,bytes)","13f20d76":"fundDigitalMarket()","13f233c2":"ethReceiveMainSale()","13f25eb6":"NinjaToken(address,address)","13f29768":"addUnsoldAllocationOrder(bytes32)","13f4318e":"SetSubscriptionTo(address,int256)","13f44d10":"isAddressWhitelisted(address)","13f46d3e":"SponBToken(address,uint256)","13f47f24":"lockedDelegatingTokens(address)","13f4b42c":"pixelsPerCell()","13f4c7a5":"INVESTOR_LOCK_DURATION()","13f4e977":"minimumFundingGoal()","13f52533":"capitalLedger()","13f56f73":"changeMinInvestment(uint256)","13f5ef00":"Main(string,bytes)","13f652fe":"getText(string)","13f6ee53":"cliffAdvisorsTokens()","13f73570":"manualyAddReferralPayer(address,address,uint256)","13f94a43":"getSiteTokenIds(uint256)","13f9cf76":"disableBundlingMultitoken(uint256)","13fa095f":"setDestinationWallet(address)","13fac256":"xem()","13faede6":"cost()","13fb2324":"EndEvent()","13fc5ace":"depositForMySelf(uint256)","13fc6ac2":"getEventData(bytes32)","13fcaf54":"getDepositCount(address)","13fdcbec":"developer_Coin_Character(string)","13fdd2b4":"TilexSupply()","13ff962a":"privatesaleSupply()","13ffdbfc":"gameCountOf(address)","13fff718":"doBet()","14001f4c":"setSiringAuctionAddress(address)","14004ef3":"multimint(address[],uint256[])","14007c6d":"nextState()","1400d1e4":"checkName(string)","14012549":"isMainSaleTime()","14025dcd":"cancelFee()","14029756":"setaddress(address)","1402c310":"NEWSOKUCOIN()","1402f031":"triggerAttackManually(uint32)","1402f80d":"selectTemplate(uint8)","1403041b":"PegasusToken()","14036f62":"Vboom()","1403835f":"_isExpired(uint256)","140420a9":"isRateValid(uint256)","140575af":"LogTokenPriceChange(uint256,string)","140604cc":"getInitialState(uint256)","14061862":"setIcoMin(uint256)","14069b12":"MXMPDMToken()","1406b921":"vent()","1406d3be":"lowestGameWithoutQuorum()","14074135":"dividendsRightsOf(address)","140758a9":"disableServiceProvider(address,bytes)","1408073e":"GangnamToken()","14081570":"addEpisode(string,uint256)","14081e39":"setEscrowFee(uint256)","14082cd2":"findProductById(uint256)","1409b88f":"getManualByAddress(address)","140a681a":"_getVersion()","140a7ac6":"getFinalScore(int256[])","140ad293":"spitnetwork()","140aee46":"_0xDogecoinToken()","140b1706":"maxHLPMTMarkup()","140b2cdd":"calculateMyRewardDecreased(uint256,uint256)","140b4465":"executeSpendingRequests()","140cc562":"isCollectSignatureCorrect(address,address,uint256,bytes32,bytes32,uint8)","140cd7af":"issueToken(address,address,uint256,uint256,uint256)","140d3e95":"changeFiatFeeContract(address)","140da6b7":"getAddressField1()","140dcec4":"right23(uint256)","140f64b4":"GoyanToken()","140f7f8d":"Staged()","14102159":"presaleLimit(address)","14106b49":"JustifyClaim(address)","14107f3c":"buy(uint8)","14111a43":"isValidService(bytes32)","1411539d":"multiSend(address[],uint256[],address[])","14116c3c":"SetPeriodPreITO_startTime(uint256)","14117228":"getNoteKeyByIndex(uint256)","1411d713":"licenseIssuedTime(uint256)","1412409a":"whitelistSetterAddress()","14127f13":"setOrderFill_(bytes32,uint256)","141283f1":"setNewWallets(address,address)","14131611":"setChibiForFusion(uint256,uint256)","14133a7c":"setSaleAgent(address)","14139904":"directorB()","14143c91":"TotalSpecialFeeTakes()","1414a506":"falangiToken()","1414ef78":"createInvoice(uint256)","14162e8d":"IouRootsReservationToken(string,string,uint8)","14163a83":"setCrowdsaleContractAddress(address)","14167bf0":"oraclize_query(string,string[])","14174f33":"withDraw(uint256)","14177dbf":"setLockTokensAddress(address)","14179865":"logos(uint256)","1417b946":"adminOwner()","1417c845":"Mortal()","14189a7e":"outstandingValue()","141926fa":"updateAccount(string)","14193456":"MainSaleEnd(uint256)","141961bc":"campaigns(uint256)","1419c3f3":"grand_factory()","141a8dd8":"approver()","141bd92a":"getBallotInfo(uint256)","141c4306":"AbroToken()","141c4e60":"challenge(uint256,address)","141c9422":"listingDate()","141ca2c7":"reservedIcoCrowdsale()","141d717b":"OC()","141dbe66":"distributeBTCB(uint256,address[])","141e26a5":"setEditionMaxSales(uint8,uint256)","141edaa1":"manufacture(address,address,address)","141f211c":"snapshotStakeAmount(uint256,address,address)","141f6800":"fundingMinimumTargetInUsd()","141fd3cf":"channelResultTimeout(uint64)","14204ca9":"QZG001TOKEN()","1420765a":"isBuyLocked(address)","14211803":"hasBuyTotal()","14219ff9":"sq(uint64)","1421c1a4":"vote_for_candidate_C_for_free()","14225b9b":"token_ratio1()","1423113a":"fluxFeed(uint256,bool,bool)","142359f4":"fillOrder(bytes32[],bytes32[])","1423649b":"cofounderApproveSwitchRequest(address,bytes32)","1423c40e":"setBudgetOfCampaign(bytes32,uint256)","1424c182":"recordDeposit(uint256)","14253887":"certify(address)","1425d2fa":"getBalanceToken()","14263f0c":"Dadice()","1427407f":"NINECOINTOKEN()","142769aa":"requestNumber(address,uint256,uint8)","14279086":"getIndividualCount(uint32)","1427f168":"log2Bounds(uint256)","14280bb8":"getBodyColorValue(uint256)","14287a07":"playerPrizeClaim()","1429a36b":"getOrCreateFeeWindowByMarketEndTime(uint256)","1429e26c":"User()","142b353d":"MultiTransferETH(address[],uint256[])","142bc2ae":"latestData()","142d239a":"canPurchaseAmount(address,uint256)","142dc95d":"testAmount(uint256)","142e0bdf":"LogAllocate(address,uint256,uint256)","142e133f":"totalBalanceDown()","142e8e25":"setAdmin(uint256,address)","142e9ab8":"setTrade(bool)","142e9bc9":"weaponToOwner(uint256)","142f328e":"fundDao()","142f53c2":"sendInitialTokens(address)","143085c3":"updateRankBoard(uint256,uint256)","1430990a":"bidTransfer(uint256,address,uint256)","1431b23a":"getData(bytes)","143211ec":"newDaoRulesProposal(uint256,uint256,uint256,uint256,uint256,bool,uint256)","14325458":"calculateTokensFrom(uint256,uint256)","1432621a":"getPeakSupply()","14332c93":"SetConfirmRound(uint32,uint8,bool)","14350c24":"changeMinimumMakerProtocolFee(uint256)","143551e4":"timeExtension()","143580d0":"PGDA()","14359466":"NBTV()","1435e397":"setAllocation(address,uint256,uint8)","14361fd1":"singleWithdrawMin()","14363e65":"setPeriod(uint256[])","14367652":"revealStageActive(uint256)","1436fb39":"_isVotingAddress(address)","14371c33":"someMethod5(uint256,uint256,uint256)","14373817":"rateSoft()","1437f9a3":"Set_your_game_number(uint16)","143a1a2f":"pilfer(uint256)","143bb3e6":"StartRollDice(uint32)","143c56cf":"disprove()","143c6d4f":"TokenTransferTo(address,uint256)","143c7a3f":"OPAY()","143e55e0":"era()","143e6209":"setImagePartsCount(uint256,uint16)","143f68c9":"getRedemptionBalance()","143f9d1f":"week4Price()","143fb46d":"setRemainingTokensWallet(address)","143fcbbe":"cancelBooking(string,uint256[],uint256,bytes32,bool)","14404eb2":"roundOver()","144052b6":"C4coin()","1440f2bf":"PRE_SALE_PERCENT()","144136a1":"restartCrowdsale()","144138c8":"removeGlobalConstraintPre(address,int256,address)","1441a5a9":"referral()","1441c288":"showUnpaidInterest(address)","14423381":"GameConfig()","144267e0":"refundSecurity(address,uint256,uint256)","1442b548":"ZTST()","14432f6e":"Received(address,address,uint256,uint256)","144344b9":"setEth(uint256)","14442f54":"VERSION_NAME()","14447e11":"checkGamesReadyForSpinning()","14449c92":"finishRoundB()","14459309":"price_constant2()","1445c6da":"increasePosition(bytes32,address[7],uint256[8],uint32[2],bool,bytes,bytes)","1445f713":"hexstrToBytes(string)","14462b93":"findWhichCTD(address)","14468d32":"nextBidExpireBlockLength()","1447431e":"setCCH_edit_24(string)","1448b3ca":"tokenSaleAddress()","1449757d":"annulCertificate(address,address)","1449c321":"view_get_gameStates()","1449c6dd":"Staked(address,uint256,uint256)","144a2752":"getBuyAmount(address,address,uint256)","144a3260":"createWithDeposit(address,address,uint256)","144a3472":"inMaintenance()","144a88a0":"updatePlayerPoint(uint32,uint32,uint32,uint32,int256)","144b2a82":"transferICO(address,uint256)","144be7eb":"totalNumberOfCards()","144c7e40":"CRYPTOKEN(uint256,string,uint8,string)","144cbdfd":"NobeToken()","144f2f94":"_burn()","144fa6d7":"setToken(address)","145000ab":"PRICE_2()","14525b6b":"auctionFee()","14525bce":"INITIAL_BALANCE()","14526f8c":"Buy(string,address,uint256,uint256)","14534ad0":"LogCertifierAdded(address)","14534ba7":"ballotEncryptionPubkey()","1453671d":"changeWithdrawAddress(address)","1453bfb3":"visitingUnicorns()","1453d756":"bytes64ToString(bytes32,bytes32)","145538ea":"phase1StartBlock()","145671aa":"getValidations(address,bytes32)","14567b8b":"setSelfAsContributor(string)","1456974f":"setNameReaderId(address,bytes32,bytes32)","1456979f":"setNewValidator(address)","14572dff":"incrementUniquenessIndex()","14576a49":"NewSophonToken(address)","14577c55":"accountLevels(address)","14584a9d":"getAuctionIndex(address,address)","1458ffb3":"VREO_SALE_PHASE_1_END_TIME()","1459457a":"initialize(address,address,address,address,address)","1459cef4":"balanceOfMine()","1459ecc4":"lastrecordindex()","145a0adc":"setDataLink(uint256,string)","145a7f92":"social(address)","145af145":"getAllCardsLowestPrice()","145b2ab2":"CocoToken()","145ba84c":"_payAwardOwner(uint256)","145c03f2":"TransferFromCompanyInventory(address,uint256,bytes32)","145ca0b3":"UnLockTokens(address,uint256,string)","145cb459":"showCertificate()","145cf0c2":"decrementTokenIdsLength()","145d82d6":"setKingdomFactoryRP()","145e1944":"buy(bytes,int256)","145e6701":"SteemitFund()","145e818f":"BALVINDER()","145e8f5e":"HVB()","145eb4ee":"HuaTuoToken()","145ee04c":"pendingFeesWithdrawals()","145f3143":"releaseTime1()","145f8ba2":"getPainting(uint256)","145fa890":"setWhiteListDuration(uint256)","145fd87a":"getTotalHashRateOf(address)","145ff9cb":"terminateShortPosition()","146008e3":"grid(uint256,uint256)","14606109":"cap1(address)","14607fc2":"dispute(bool,address)","146091f1":"removeFromAllocationList(address)","1460b505":"setWeights(uint256[])","1460e603":"numDarknodes()","146124f9":"totalDistributedr()","146155bf":"createUserByEmailVerify(bytes32,bytes32,uint256)","14619c7f":"setContractAdmin(address,bool,uint256)","14627834":"GOVERNANCE()","14633039":"VanityToken_v3()","146483f9":"setCreateUnicornPrice(uint256,uint256)","1464bc45":"walletFacebook()","1464f516":"votosTotales()","14653f87":"SHIP(uint256,uint256,uint256)","14656957":"PeculiumToken()","1465aa97":"testingContract()","1466724a":"subUserBattleValue(address,uint256,bool)","14670850":"test_33_assertGasUsage200Boards()","14673d31":"setReserveAddress(address)","146740ee":"bulkAddMake(address[],uint256[],uint256[])","14679957":"GenesMarket()","14686ac2":"puntAmount()","1468d9cb":"Latium()","1468fc26":"changeSharedExpenseAllocation(uint256)","146901db":"setFailed()","14690be7":"TransactionSucceededICAP(bytes32,uint256,string,address)","14697cc8":"claimHalvingsSubsidies(uint256)","14698895":"Certification()","146b4955":"RICHERC20(uint256,string,string)","146b58df":"getInvestment(address)","146bea7b":"nextYear()","146c8710":"addressOf(address,uint256)","146ca531":"round()","146d2148":"setReaderId(address,bytes32,bytes32)","146dd227":"BLTToken()","146dd8e0":"BestEther()","146e3cb5":"getDroidsIds()","146e7eea":"soulsForSale()","146e91b5":"signContract(bytes32,string,bool)","146e9329":"summJenkins()","146ee571":"requestFreeDistribution()","146ef27d":"balancePreSale2()","147035ba":"processPublicPurchase(uint256,address)","14704d91":"getCCH_edit_26()","14709544":"BetCoin()","1470dfa8":"closeWindow(uint8)","1470fc6f":"approveRejectOrg(string,string,string,string,string)","14712e2f":"proxyApprove(address,uint256,bytes32,address)","147180ab":"feesA()","147288fb":"test_insert_findWithHint(int256)","1472d56a":"assertEq1(bytes1,bytes1)","1473248d":"SampleContract()","14743e7e":"activateRound(uint256)","1474b789":"burnXPTokens(address,uint256)","1475e751":"game_token()","1476e40f":"multiCall(address[],uint256[])","1478b6af":"abortUpdate()","1479290e":"removeBouncer(address)","14793058":"createPhoenixes()","14794702":"withdrawWinnings(uint256)","147a5640":"_getAllRevisionIpfsHashes(bytes20)","147aaa8d":"giveTokensTo(address,uint256)","147bfd66":"GuardedBeercoinICO()","147c9f6d":"updateWallets(address,address,address)","147d57b0":"send_bounty_token(address,uint256)","147d959a":"setUSDPrice(uint256)","147da3c9":"newSpaceshipProduct(uint16,bytes2,bytes2,bytes2,bytes2,uint256)","147e14a4":"retrieveTokens(address,address,address)","147e51f4":"freezeTheMoment()","14807045":"flipCapSwitchTo(bool)","148105ab":"addBankroll()","148174cd":"ownerSetCasino(address)","1481c04a":"getTXSValue(uint256)","1481d439":"deleteUserClaimInBulk(address[])","148222cf":"donateSkin(uint128,address)","1482bd40":"bountyBalanceMap(address)","14838617":"DEV_PORTION()","1483fc8c":"addBlockData(uint256,bytes)","14841164":"extraBalanceWallet()","1484abf4":"whitelistApplication(uint256)","1484cd32":"getWinners(uint16,uint8)","1484e9ad":"startICOStage2()","14852606":"setAccompliceBContract(address)","1485ffc4":"finalizeTDE()","14870a57":"setMonthClose(uint256,bool)","14870d2c":"withdrawAllToken()","14887c58":"isEntity(address)","1488f983":"LogFinalized(address)","148ab04e":"balance_in()","148ab078":"MEW_RESERVE_FUND()","148bea6b":"gamblerlist(uint256)","148cd939":"transferBecauseOf(address,uint256,address,uint32,uint256)","148ce4a4":"test_claimShare_isTranscoder()","148d3e7b":"FQCoin()","148da7f6":"disableInvestment()","148dd101":"thirdChangeBlock()","148f2e5e":"sendWei(address)","148fa780":"just10Send()","14900396":"changeRaceOwnership(address,address)","149148e0":"getCityPlanAddres()","1491858e":"calculateSetupAllowedUntil(address[16],uint256)","14918f5e":"performInitialWithdrawal()","14930d7e":"transferResidualBcoupons(address,uint256)","14941e80":"getFreeAmount()","14946a97":"CoreToken(uint256,string,string,uint8)","1494ecfc":"SentosaX()","14950f64":"RevokeAddressChanged(address)","14959741":"UserMessage(address,string)","149607d3":"EtherollToken()","149679b9":"GOE()","1496fc4c":"Telcoin()","14975cc7":"hardCapPrice()","14986f5b":"setCooldowns(uint32[100])","1498970a":"getDeployedblockbytesMarriages()","149947fd":"finding(address,bytes8,uint8[])","1499c592":"setParent(address)","149acf9a":"daoCreator()","149b8690":"supplyInCirculation()","149c5066":"ChanceOfWinning(uint256)","149cc1f6":"_finalizeBet(bytes32,address,uint256,uint256)","149cd0be":"alterCreatePetitionFee(uint256)","149dffc8":"numCancelledRequests()","149e6788":"heroClasses(uint32)","149e685a":"getFundById(uint256)","149eead5":"master_contract()","149f2fdb":"sellExchangeRate()","14a0069a":"getVoter(string)","14a03e7c":"concludedGameIndex()","14a06710":"TokenRelease(address,uint256)","14a091a9":"createLockTokenHistory(address,uint256)","14a1231f":"guardian2Vote()","14a26806":"setPreUri1(string)","14a2d99f":"Grant(address)","14a34ebd":"getMilestones(uint256,uint256)","14a3557b":"intrepidVoucherSoldCount()","14a3b19a":"transferIndexedByAddress(address,uint256,address)","14a47046":"add_blockedAddress(address,address)","14a4a273":"penalizationOpen()","14a528f2":"HasGift(string)","14a54912":"token_a()","14a57db7":"LogPreparePreContribution(address,uint256,uint256,uint256)","14a59e9d":"getStakeholderConfirmationCount(uint256)","14a5cd29":"getAssetEmitter(uint256)","14a6a1a5":"REQUESTED_STATUS()","14a7945a":"redeemAllOwnedAssets(uint256)","14a7c57d":"getData_26()","14a89904":"rollDie(address,uint256)","14a8bd0d":"EXCHANGE_RATE()","14a8ca20":"fromPercentage(uint256,uint256)","14aa0eaa":"claimBountyToken()","14ab260e":"retrieveCompletedProof(bytes32)","14ab9038":"setTTL(bytes32,uint64)","14aba0db":"MineAD(address,uint256)","14ac1102":"get_total_items_in_state(bytes32)","14ad47eb":"SwapToken()","14ae1229":"setRightForInterest(uint256,uint256,bool)","14aedbee":"TokenFactoryAirdrop()","14af0908":"XdacTokenCrowdsale(address,uint256[],uint256[],uint256,uint256)","14af1e92":"MinterGaveCWC(address,address,uint256)","14af35c3":"MyToken(string,string,uint256)","14afd79e":"ownerOf(address)","14b0519d":"AltExtraHolderContract(address)","14b08b4d":"getAllDepositors(uint256)","14b0e266":"addBid(uint256)","14b11606":"BONUS_ICO_STAGE2()","14b11651":"setPoolAndAmount(address,uint256)","14b11875":"verifyProposal(address,address,uint256,string)","14b1e1f8":"setRefer50x50(address)","14b24209":"multiGuess(int256[])","14b2cd55":"LightPool()","14b2d6dc":"isValidDate(uint256,uint256,uint256)","14b419c9":"getAllUsers(address)","14b49c36":"Police_5()","14b5202c":"stage_Discount()","14b546b4":"FreePublicity()","14b577ab":"addIdArrayItem(address,address,string,string,uint256)","14b72000":"txFeeCapInWei()","14b77798":"unsetMany(address[])","14b78abb":"cloneProposal(uint256,string,bytes32,uint256,uint256,uint256,uint256)","14b79e21":"_depositTransferCredits(uint256,uint256)","14b7c684":"DGD()","14b80402":"isStateDestructed()","14b85c1b":"removeSalesAgent()","14b87862":"getParticipant()","14b8e9a4":"checkpointLevel()","14b92721":"loveMessage()","14b933e1":"getWeiPerSatoshi()","14ba5c09":"getDay()","14bafeab":"getMessage2()","14bb4dd9":"WavesTransfer(address,string,uint256)","14bba4b8":"setDiscount(uint256,uint256,uint256,uint256,uint256)","14bba8a2":"updateRequestExpired()","14bbe21c":"transferBeneficiary(address)","14bc3efc":"endBorrowAgreement(string,string,uint256,uint256)","14bd0c21":"getServiceAddress(bytes)","14bd3d87":"acceptOffer(string)","14bd8acd":"massApproval(bool,uint256,uint256)","14be5169":"releaseLockAgencyLock2()","14be7793":"isPrivateSale()","14beb3a3":"latestParams()","14befc70":"parkingOff(address)","14bfd6d0":"admins(uint256)","14c01fb4":"_checkPixelAbove(uint256)","14c0a37a":"stateBorrowerDefaulted(uint256)","14c0bc27":"EtherBalanceOf(address)","14c0ffdc":"formula(uint256)","14c15569":"getAccountOutputSdcslength()","14c16f41":"updateStageWithInvested()","14c239a9":"_cappedReward(uint256)","14c259eb":"white_duration()","14c292ca":"finishITO()","14c2d2e0":"handleRef(address,uint256,uint256,uint256)","14c33c24":"setSystemEndingPrice(uint256)","14c3512d":"adminSetFeeUsdDialNumber(uint256)","14c3e29f":"NONEC()","14c411c7":"releaseTeamTokens()","14c44e09":"registrationFee()","14c485c9":"getMartialListInfo()","14c588de":"setPromoGen0(uint256)","14c5f158":"callModifiedTransfer(address,uint256)","14c65687":"_getWeightUntil(uint256,uint256)","14c72e9e":"_getFirstIndex(uint256,uint256[])","14c74834":"setHeir(address,uint256)","14c7763b":"MINTING_LIMIT()","14c78333":"batchResolveAquarium(uint256[])","14c7bddf":"manualRefund()","14c888da":"setFeeParams(uint16,uint256,uint256)","14c8e5f4":"requestHangingDividends()","14c9035e":"quickConvertPrioritized(address[],uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","14c9b8a5":"closeEarly(uint256)","14c9eed0":"onlyadmin()","14ca5200":"MiningRewardTransfer(address,address,uint256)","14ca5398":"submitFullBlock(bytes,uint256[],uint256[],bytes,bytes,bytes,bytes,bytes,bytes,uint256)","14ca6e01":"setBleachPrice(uint256)","14ca8e01":"validPlayer2(uint256,address)","14cabddb":"joinProof(uint256)","14cba002":"_forwardTransferFromWithReference(address,address,uint256,string,address)","14cbb90d":"yea()","14cbd993":"getRegisteredTokens()","14cbdb54":"EspCoin()","14cc3cf9":"FOUNDERS_LOCK_PERIOD()","14cd70bc":"FakeOwner(address)","14cddf9e":"whiteListMinAmount()","14ce2f61":"MappingDone(address,uint256)","14ce4059":"owner_fee()","14cf12d5":"softCapTime()","14cf19fe":"TIER1_PRICE()","14cf588f":"LBA()","14cf6983":"getBalanceCell(address)","14cfb977":"minFinneyPerSaleMoreThan()","14cffda2":"synertreeToken()","14d03ea6":"TrivialToken(string,string,uint256,uint256,address,address,uint256,uint256,uint256)","14d04e06":"FooozCrowdsale(address,address)","14d066d5":"addCertificator(address)","14d07a3e":"left28(uint256)","14d0f1ba":"moderators(address)","14d10920":"BetstreakToken()","14d140b0":"communityPool()","14d20606":"devTeamPrecent()","14d23c8b":"MaliciousSeller()","14d296f4":"getPremiums()","14d2d59d":"_approve(uint40,address)","14d30335":"assignInitialDays(address,uint256,uint256)","14d33a30":"addCandidateBatch(address[])","14d36f53":"checkVerifyAccess()","14d3df67":"getSMPTokensAmountPerEthInternal(uint256)","14d47bc9":"registerBeneficiaries(address[])","14d4ecd9":"defineCurrentPeriod(uint256,uint256)","14d5d892":"changeMemberAddress(uint256,address)","14d67848":"setClass(uint256,uint256)","14d6c2b1":"_maint_updateOwner(address)","14d72106":"nextNumberOfWagersToFinalTimeout()","14d75e9d":"createProduct()","14d8c981":"getItem(address)","14d9d2e5":"getCostForUprade(uint256,uint256,uint256)","14dacf5b":"disableWhiteUserList()","14db6d58":"hasUserPermission(address,bytes4)","14db8c7d":"getGladiatorPower(address)","14dba3ba":"PPToken(uint256,uint256)","14dbb508":"Project(string)","14dcd58f":"derpcoin()","14dcfd55":"vendorWallet()","14de9cc2":"tokenGenerated()","14dea8e7":"onCancel(bytes32,uint256,address)","14deb0ac":"addressAt(address,bytes,uint256)","14df96ee":"isRoundingError(uint256,uint256,uint256)","14dfad27":"_emergencyLoop()","14e0246a":"setMintSigner(address,int256)","14e2bc2a":"finishMinting(uint256)","14e3fad3":"extra_bonus_amount()","14e4a723":"SafePromo()","14e580ab":"LogIdentityCreated(address,address,address,address)","14e604b6":"EXPLOSION_DENOMINATOR()","14e6a86d":"doCheckBounds(bytes32)","14e8093f":"clientWithdrawAll()","14e887e8":"transactionCounter()","14e904e8":"LogBidCompleted(uint256,bytes32,bytes32)","14eaa43b":"withdrawToken(address,uint256,string)","14eb75bb":"assignRoles()","14eb76ac":"updateTeamAddress(address)","14eba026":"removeTeamMember(address)","14eba5d8":"affiliateList()","14eda32c":"COZE()","14eea0dc":"IND()","14efaf86":"ChangedPaymentDestination(address,address)","14f0ff32":"FUNK()","14f1586a":"objective()","14f1dcac":"setFreeCoins(uint256)","14f2979f":"getTickets(uint256)","14f36e17":"getTokenIssued()","14f3f491":"preICOContract()","14f52c07":"Blogcoin()","14f60881":"getJobClient(uint256)","14f64d6c":"PRESALE_START_WEEK1()","14f685a8":"Etherumble()","14f6c3be":"getETH()","14f72e50":"EightStandardToken(uint256,string,uint8,string)","14f7731b":"getAllowedAmount(uint256)","14f7789d":"GRAChain(uint256,string,string,string)","14f796ca":"changeStageAndReleaseETH()","14f80083":"setMultisigVault(address)","14f8917a":"initialSupplyPreSale()","14f8b424":"roundID()","14f8f160":"hasIssue(address,bytes32)","14f99533":"changeAuthorisedContract(address)","14f9e35b":"groom()","14fa0b45":"NenasChain()","14fa274c":"MigrationInfoSet(string)","14fbc22b":"createHero(uint256,address)","14fc2812":"setAuthorized(address)","14fc7b9d":"AscToken(address)","14fcb95c":"ubiatarPlayWallet()","14fd0c14":"deadlineVoting()","14fd24f0":"updateIndividualCap(uint256)","14fddb71":"devTeamBalance()","14fdecca":"getPromotion(uint256)","14fefca1":"set_hp(uint256)","14ff5ea3":"getTokenId(uint256)","14ff5f99":"punterAddress()","14ff89cd":"getContactByIndex(uint256)","14ffbafc":"startEthGet()","1500214e":"calcPercent(uint256,uint256)","15003368":"withdrawEMONT()","1500c257":"startTimePre()","1501bf03":"transferFunds(address,address,uint256)","15020cb0":"commandTookAway()","1502906d":"timeStep()","15036fa2":"update_dividend(address,uint256,uint256,uint256)","1504460f":"poke(bytes32)","150455a4":"HOTCASH()","15045c3e":"GenieToken()","1504ce95":"payout(string)","1504d8f0":"createSnapshot()","1504e40b":"RoundEnded(address,uint256)","150627bb":"minimumInWei()","15067c4e":"p_setRoundDuration(uint256)","15070401":"getSymbol()","150727ff":"getSecondAddressBalance()","15087f7d":"cancelBet(uint256,bool,uint256)","15093e03":"minimumAllowedWei()","1509c42a":"pr()","150a5655":"giveVote(string,uint8)","150a6480":"allowMinter(address)","150aaf74":"BHB(uint256,string,string,uint8)","150ad2a8":"owner_transfer_ownership(address)","150b52db":"removeAddressFromPartnerWhiteList(address)","150b6885":"genaroDevMultisig()","150b7a02":"onERC721Received(address,address,uint256,bytes)","150bc419":"unitMythGrowth()","150c3e8b":"getIdxArray(uint256)","150d6277":"setMinBetPerSpin(uint256)","150d7163":"UnfreezeTokensOfOneUser(address)","150eb4d9":"releaseTeam(uint32)","150f16ac":"stoppedPresale()","1510ca79":"MAX_CROWDSALE_TIME()","151110b0":"releaseLockedBalance(uint256)","1512cfc1":"_preValidateInvest(address,uint256)","15136fb5":"ChiTrader()","15139f09":"ExaGBP()","15142ed4":"shutDownVersion(uint256)","15143d6a":"buyOx()","1514617e":"vestingDuration()","15148649":"getAllowedTokensCount()","1514b9cb":"RKCToken()","1514bc48":"tokensForPurchase(address,uint256)","1514ea54":"getLossesShare(address)","15154aff":"ITO()","15158a10":"numberOfTokensToAvail25percentDiscount()","1515bc2b":"hasClosed()","151682a5":"HASH_RATE_MULTIPLIER()","1516bbc4":"setTeamVault(address)","1516db09":"allOwners(uint256)","1516def7":"multiSigAddress()","1517d107":"totalNormalCollected()","15183e2f":"twitterBotAddress()","15191c98":"hibernate(uint256)","15194a9f":"init(uint256,string,string,uint8)","151b0bed":"getSponsorshipsBalance(address,uint256)","151b2342":"getOraclizeCallbackFee()","151bc167":"Control()","151bcc06":"massAdvertiseTransfer(address[],uint256)","151c0d40":"crowdsaleEther()","151c3b12":"store(address,bytes)","151c61b6":"setUSDExchangeRate(uint256)","151d7d32":"flushDividends()","151e2a0a":"check_ptc_num(address)","151eeb55":"transferAllowed(address)","151fa6be":"delegateIsDeleted()","15226b54":"getReserveBalance(address)","1522f110":"preregvills(address)","15248362":"buy_bounty()","152583de":"getAttributes()","152592b0":"WALLET_ALLOCATION()","1525b4f5":"mintLockedTokens(address,uint256,uint256)","1525d680":"MainToken(address)","1525ff7d":"setTeamWallet(address)","15263ef7":"VHW()","15270ace":"distribute(address,address[],uint256[])","152713b3":"sumAcceptedVirtualContrib()","152744ea":"BondInfoById(uint32)","1527d657":"returnHowMuchMoreETHNeeded(uint256)","152826e9":"cashoutable()","15285aa3":"EventBid(uint256,address)","1528f43c":"getPOOL_edit_10()","152993a8":"addContract(string,bytes)","1529a639":"getCollateralBalance()","152a3f28":"getSponsorships(address,uint256)","152af8f9":"acceptFoundationTransfer()","152afab4":"adicionarAssinatura(string,string)","152b6f9a":"hasDNN(address)","152cf9db":"getDataPoint(int256,uint256,uint256)","152e84a7":"tokensDistributed()","152fb125":"SimpleMixer()","152fb5fd":"period_count()","15303771":"updateUnsold(string,uint256,uint256)","1531076c":"getAgonArray(uint64,uint64)","15312b50":"SimpleTokenVesting(address,uint256)","153154fd":"getRecommender(address)","1531c267":"fipsRegisterMulti(uint256,address,bytes)","1531dfdb":"ethtosend()","15328109":"parentAddr()","153345ce":"changePrice(uint256,uint256,uint256,uint256)","15334b77":"setGameStarterDividendPercentage(uint256)","15334fa7":"SOCToken(uint256)","15336f80":"setProof(string)","15338724":"mediaTokens(address)","1533ba50":"EMBCToken()","1534180f":"_transfer(address,uint256,bytes,string)","15347380":"priceInWeiToken(uint256)","1534b1fc":"getPlayerDepositData(address)","1534b392":"getNumLockers(address)","1534e8d2":"multiVesting(address[],uint256[],uint256[],uint256[])","1535884e":"notarizeHash(bytes32)","153677b7":"deployOtherVesting(address,uint256,uint256)","1536a614":"EphesusToken()","1536cabf":"addCertAdmin(address)","1536fec6":"get_end_time()","15370598":"getCurrentMode()","153737f5":"OWN_DistributeTokenAdmin_Multi(address[],uint256,bool)","15373e3d":"castVote(uint256,bool)","1537671c":"qtdePokemonsMapping(address)","15382559":"LogDepositReceived(address)","153913e3":"ICO_Live()","15398afe":"compareNumericStrings(string,string)","153a1f3e":"bulkTransfer(address[],uint256[])","153a6bd3":"test_sendFundsToContract()","153a79c9":"buySaleTokens(address)","153aa771":"totalSupplyBonus()","153b0d1e":"setBlacklist(address,bool)","153b31fd":"sign(string,uint256,uint256)","153cc53d":"hasCrowdsaleStarted()","153d3572":"deletePawn(uint256)","153debee":"FOUNDERS()","153e66e6":"buy(address,address,uint256)","153e6d70":"setPercentFrozenWhenAwarded(uint256)","153faf2c":"FOUNDER_WALLET()","153fbb81":"setCAPAddress(address)","153fe583":"getAddressFromSig(bytes32,uint8,bytes32,bytes32)","153fe6aa":"STATUS_INITIAL()","15408734":"addMake(string,address,uint256,uint256,bool)","15409c1d":"TradingAccount()","1540fe22":"weiMinimumLimit()","1541eb12":"JournetToken()","15420b71":"transferPreSignedHashing(address,address,uint256,uint256,uint256)","1542b365":"phase_4_remaining_tokens()","1543136c":"getDeployedLength(address)","1543d99f":"bonus_calculation()","1544fc67":"delegatorStatus(address)","15454cd2":"registerNameCore(uint256,bytes32)","15480c63":"createDefaultCobeFriend(uint256,uint256,uint256,address,uint256,uint256)","15490ebb":"transferReward(address,uint256)","154920b0":"firstEmptyId()","15497d2c":"lockStatus(address)","1549be43":"getOutstanding(address)","1549c1e2":"usePlayerToken()","154a7d71":"DATE_31_DEC_2019()","154ad3f7":"ChangeMemberName(address,string,string)","154af6b1":"sendShares(uint256,uint8,uint256,address)","154b3f4c":"executeSigned(address,uint256,uint256,address,bytes)","154d56db":"callHotel(address,bytes)","154d6e12":"buyPack(uint8,uint128)","154d7944":"newCarID()","154e3f61":"enroll(address,address,uint256)","154e45a4":"privateSold()","154e8152":"withdrawnBalance()","154e95f1":"changeNamespaceOwner(string,address)","154e9bd5":"PumaPayToken()","154f78dc":"FREETOKENTEST(uint256,uint256)","154faf5d":"getTodayIndex()","15502d73":"changeTokenFreezeDate(uint256)","15506bf1":"RemoveParticipant(address,address)","15519af1":"RANGESTART_PRESALE()","1551e636":"tokensReceived(bytes32,address,address,address,uint256,bytes,bytes)","15525991":"getMaxAmount(address)","15527006":"icoPhaseDiscountPercentage3()","1552cb04":"addBaseWhitelist(address[])","15544fc2":"Teaeum(uint256,string,string)","1554611f":"escapeHatch()","1554c243":"_setApp(address)","1555e337":"ConferenceCertificate()","1555fe7e":"RecordableRefundableCrowdsale(uint256)","1556195c":"LowRiskBag()","15574634":"requestTransferFundToSupplier()","1558687a":"DepositContract()","155897cc":"changeDeDeAddress(address)","1558ab7e":"sendEthBack(uint256)","1558ae4d":"Etheroll()","155949ca":"buyStores()","15598339":"GetPurchaseInfo(address)","155ac95f":"switchname(bytes32)","155bdaa0":"SEGFAULTCOIN()","155ce432":"Restitution_Historique_Transactions(address)","155dcb47":"ZJFTokenDeposit()","155dd5ee":"withdrawFunds(uint256)","155f0ebc":"dividends(bool)","155f1861":"claimBonusCard()","156014e8":"addAddressToPartnerWhiteList(address,uint256)","15613495":"earlyBackersWallet()","15613d9f":"chainIdValue()","15616d2b":"getCurrentResult()","1564d706":"lockIn()","15659dde":"getBidCount(bytes32)","1565b0b6":"PRICE_ICO4()","1565c3c8":"takeEther()","1565f12f":"createVote(bytes32,address,address,uint256,bool,string,string,uint256)","156773ca":"setAllStopper(address)","1567d7a7":"transferPromotionalShares(uint256,address,uint256)","1568a1a1":"vinciSold()","15691522":"AltSocialAccountPw(bytes32,bytes32,bytes32,bytes32)","15698812":"redeemExcluded(bytes32)","156a0528":"getBalancesPayer(uint256)","156a2f36":"bid(address,uint128)","156bf4c1":"getKtcAddress()","156c0ed4":"Scanetchain()","156c2e82":"withdrawGxTokens(address)","156c6baf":"isAllowCnsContract(address,bytes32,bytes32)","156cacc3":"Etheroneum()","156e29f6":"mint(address,uint256,uint256)","156e5039":"safeadd(uint256,uint256)","156e9507":"mineTotalBalance()","156f985c":"getFundsStatus()","157003d9":"tierCaps(uint256)","157024b3":"producerStatement(string)","15728a73":"GoBlockSupply()","1574126a":"preSaleEndBlock()","15748250":"freeze(address,address)","15752ac5":"bonusTokensAllocated()","15764334":"Hybrid()","15770d99":"disapprove(address)","15781c80":"checkPurchaseValid(address,uint256,uint256)","15786590":"lotteryTotalEarning()","1578a123":"Send_MediatedTransaction(address,uint256)","1579e5c5":"getAllCardAddressesOfOwner(address)","157a18b4":"ADMOToken()","157a68df":"createIssue(uint256,address,uint256[],address[],string)","157ad5a1":"canWithdrawBond(address,uint256)","157bbbf5":"winJackPot(address,string,uint256)","157cb62c":"getPlayerDnas(address)","157d5956":"isGetFreeZombiew(address)","157daf2e":"returnChange(uint256)","157db359":"airdroper()","157ddf8f":"bonusTotalSupply()","157e2063":"ASTBToken()","157f33f5":"coinIssuedTotal()","157f5610":"showGameEnd()","157f67e8":"withdraw_my_tokens()","157f8f51":"feePaid(int256,int256,int256,int256)","157fbd8d":"emitAccessBlocked(address,bytes32)","1580391c":"set(bool,string)","158048a0":"settlePut(uint256,uint256,address)","158059e2":"changeVotingRules(uint256,uint256)","1580beb7":"HOPEtoken()","158163c8":"setMerculetPrice(uint256)","15817881":"saleStageStartDates(uint256)","1581b600":"withdrawAddress()","15830662":"assignTokens(address[],uint256[])","1583deb2":"businessAddress()","15843245":"PeoplesToken()","158495df":"tokenIds(uint8)","15862aff":"lookupIndex(uint256,uint256)","158641f5":"getArtistId(bytes32)","158686b5":"change_admin(address)","15875f54":"getVestingEndTime(address)","158859f7":"disableTokenTrade(address)","1588ce09":"closeManualyMining()","158952da":"tipUser(bytes32)","15899670":"todaysBidTotal()","158a1184":"operation_amount(uint256)","158a4988":"distributeTokens(address,uint256)","158b8e54":"LastTokenId()","158be5a2":"WTF()","158d1fd4":"crowdsaleEndedSuccessfully()","158dec25":"maxSubmissions()","158e7986":"addBallotAndVoterWithPk(bytes32,bytes32)","158e7e53":"maxPreIcoAmount()","158ee887":"emergencySetOwner(address)","158ef412":"forceUpdateName(string)","158ef93e":"initialized()","158f7f5c":"reservedFounder()","15902a09":"removeOpenOrderFromBook(uint128)","159090bd":"take()","15910e5c":"logPurchaseViaToken(address,address,uint256,uint256,bytes32)","15915ddd":"directMintTokens(address,uint256)","15917977":"changeUniqueOwnership(string,uint256,address,address)","15919eed":"Arena()","1591bf51":"getPubKeyArr50(bytes32,uint256,uint256[])","1591dc6a":"BuyLoan(address,uint256,uint256)","159218d2":"setStagesManager(address)","1592aa2e":"registHns(string,address)","1592c087":"transferTusdProxyOwnership(address)","1593796e":"didReveal(bytes32,address)","1593a8c7":"endLottery()","1593ecb8":"LOG_IncreaseInvestment(uint256)","1594060a":"HalvingInfo()","15945790":"_supply()","15949ed7":"getPermissionParamsLength(address,address,bytes32)","1594afd1":"setExchangeRateShift(uint256)","1595f207":"TKT(address)","15969c4e":"minimumStageDuration()","1596b2bf":"getServiceFeeNumerator()","1596facb":"saleTime()","15977d45":"ledger(bytes32)","1597ee44":"encode(uint8[])","15980795":"freezeOf(uint8,uint8)","15981650":"setTicketPrice(uint256)","15983796":"getNextSnapshotBlock()","1598653d":"firstThousandUsers()","159887d1":"calculateFactor(uint256,uint256)","1598b2e0":"getSeatClaim(uint256)","15992cda":"uniq(uint16[])","1599a096":"mixStringAddressFunc(string,address)","159a3c33":"AWAXToken()","159a6475":"getFingerprint(uint256)","159ad680":"updateuser()","159b4e91":"sendTempTokens(address,uint256,uint256)","159bd2f3":"earnedFunds()","159c18bc":"removeWhitelistOperator(address)","159c2d9f":"BuyKeys(uint256,uint256)","159c60e8":"ZDMCoin()","159ce057":"getReturn()","159d3c24":"sellZone(uint256,uint256)","159d526f":"calcStateHash(bytes32[10],uint256[4])","159d8562":"ediv(uint256,uint256)","159da82d":"getInvitationValidPeriod()","159dbef7":"_0xDiaryToken()","159de07a":"FundariaBonusFund()","159e1e14":"EthereumPrivate()","159f82fc":"getEventResult(uint64)","159fb416":"transferCreditBotAddress()","15a03930":"TossMyCoin()","15a090c0":"getMiningWarRoundNumber()","15a0df43":"testThrowCreateNewRevisionNotOwner()","15a0ea6a":"claimFees(address)","15a269f7":"withdrawBalance(address,address)","15a29035":"getTask(bytes32)","15a2bd76":"allowOrRestrictMethod(bytes4,bool)","15a38bda":"isOldVersion()","15a3c611":"project_registry(uint256)","15a4806c":"EtherButton()","15a4d313":"NovaChain()","15a50aff":"getInvalidKeys()","15a51595":"TeamMembersAddress()","15a52302":"getService(address)","15a529b6":"getAllSalesByAddress(address)","15a55347":"reservedTokens()","15a5d9d8":"contractAddr()","15a60b76":"_calFrozenAccountCoin(address)","15a653a0":"numberOfSupportedTokens()","15a686f3":"PixelOperationsContract()","15a6a11c":"mintLeftOverZCOToWallet()","15a6a38d":"RedeemMTU(bool)","15a6f5c1":"setLatestTokenPayday(address,address,address,uint256)","15a75f9f":"playFor(address,bytes32)","15a9a145":"numRewardsAvailable(address)","15aaa09b":"PRECOE()","15aaefd5":"_transferPrimordialToken(address,address,uint256)","15ab250d":"setCresus(address)","15ab8302":"RoundASold()","15abc160":"createValidatedRequest(address[3],address,uint256[11],uint256,bytes)","15ac4c90":"setDayEthInLimit(uint256)","15ac534d":"closeBetting()","15aca0c4":"LogError(uint256)","15acce5e":"arpDeposited()","15ad1be3":"unrestrict(address)","15ae0629":"getHash(bytes,uint256)","15ae1972":"stageRate()","15aec1fb":"airdropadd()","15aec7ee":"BlockChainCourse()","15aee408":"FinaliseSale(address,address,uint256)","15af64e7":"JACToken()","15afa98e":"totalEth_()","15b02a4c":"totalICOable()","15b03fde":"getaddresstotal(uint256)","15b07f69":"nextCourse()","15b0821f":"mintDRSCoin(address,uint256)","15b21082":"requestCustodianChange(address)","15b23e47":"OncoToken()","15b2b1ae":"SaleStatus(string,uint256)","15b3433b":"dexjartoken()","15b37899":"setKyberNetworkAddress(address)","15b40ec0":"deployed(uint256)","15b4bc22":"getMinerHalving()","15b53beb":"TournamentOver()","15b556df":"getSellPriceAfterTax()","15b56b44":"checkReward(uint256[])","15b66fef":"calculateClaimableRewardTillRound(address,address,uint64)","15b73a1d":"ICOSupply()","15b7ab02":"setAgriChainProduction(address)","15b8003b":"buyChance(uint32,uint32,bytes32,uint256)","15b88b35":"PeaceToken(uint256,string,string)","15b9a8b8":"controllerCount()","15ba9ea2":"register(address,bytes32[5],address)","15bbc15d":"approveMP(address,int256,uint8)","15bc9441":"convertToDEF(uint256)","15bd73f1":"offerchangeprice(uint256,uint256)","15bd8bb2":"getTimestampByHash(string)","15bddfbe":"__setParameters(uint32,uint256,address)","15be2e7c":"totalSaleLimit()","15bef9cd":"changeMembers(address[],bool)","15bf2b51":"last10()","15bf430d":"Project()","15bf7cd7":"deployedPresaleContract()","15bf7ed2":"publicFundingPersonalEthLimit()","15c0251c":"getCoinWallet(bytes4)","15c12d4d":"totalWeiWon()","15c1c5b8":"EternaCoinContract()","15c2eed8":"RedlineFinancialLabCoin()","15c30006":"_payoutReferr(address,address)","15c32297":"setCanTrade(address,bool)","15c3cd94":"canTransferUST(bool,bool)","15c43aaf":"contractInfo()","15c560c7":"addTotalInvoiced(address,uint256,uint256)","15c5c950":"isProcessedTx(bytes32)","15c6b117":"CRPA()","15c6b40a":"cloneFeePercentage()","15c73afd":"resolveEmergency()","15c7ff34":"isPaidUntil(address)","15c8276d":"_supportsInterface(bytes4)","15c83cac":"getNewItemId(address,bytes32)","15c8d628":"normalBuyLimit()","15c91115":"pbkdf2(bytes,bytes,uint256)","15c98193":"getCampaignCreator()","15ca41c3":"notarizeHash(uint256,bytes32)","15ca65f0":"purchase(uint256,uint256,uint256,address,bytes)","15cab9c0":"pre_active_time()","15cb75e3":"replaceChiphash(uint256,bytes32)","15cbfdc1":"SpendingBlockedEvent(address)","15cce224":"setFeeToken(address)","15cd8e0b":"SECOND_PHASE_MAX_SPAN()","15ce09ad":"winningTimestamp()","15cec355":"_escrow(address,uint40)","15cf4a5f":"createElection(string)","15cf59b6":"getCreatefeeWindowIdValue()","15cf7a35":"fechVoteResultForCandidateBySnapshotBlock(address,uint256)","15cff546":"isOperationBlocked()","15d10f38":"decreaseICOcap(uint256)","15d28e11":"totalLendingAmount()","15d2fc8a":"setPreIcoEndsAt(uint256)","15d3b5d8":"getTotalAllocation()","15d3cfe2":"EtherCashPay()","15d3e0a3":"transferToSafe()","15d3f614":"Bet4Land()","15d42327":"testMulMod(uint256,uint256,uint256,uint256)","15d44202":"resultsValidationStep()","15d494c4":"test_chain2_1_increaseTimeBy5000()","15d4c5d5":"proposeMint(address,uint256)","15d4f2df":"_internalTransfer(address,address,uint256,uint256)","15d51761":"partner2_will()","15d5219f":"calLoanAmount()","15d53d7d":"_existPublicKey(address)","15d655c9":"claimPrice()","15d6af8f":"winnerList()","15d707af":"KD0Token()","15d7085f":"calcRankFundsFee(uint256)","15d7811e":"findYforX(uint256)","15d7b2c4":"setVestingManager(address)","15d7bf44":"register(bytes32,bytes32,address)","15d85401":"QbaseTalk()","15d87dc4":"vendorVerify(address)","15d887a7":"confirmedTotalToken(bytes32,uint256)","15d99a77":"CleanSweap()","15d9a9ee":"registerBarcode(bytes32,bytes32,string,bytes32,string,bytes32,bytes32)","15d9ad50":"illiquidBalance()","15d9aefd":"TeaToken()","15da0b02":"setCommunity(address)","15da42dc":"airdropSEEDSinWei(address[],uint256)","15da63a0":"thirdStagePriceOfTokenInWei()","15da65a5":"currentQuestionId()","15dacbea":"transferFrom(address,address,address,uint256)","15dae03e":"getType()","15dbfe28":"fromReal(int128)","15dc806e":"getStageBonus()","15ddf344":"getWhitelistStatus(address,bytes32,uint256,address)","15de4607":"getOwnFashions(address)","15de8027":"getAquaTokenAudCentsPrice()","15deaa3f":"INTARO()","15df1a09":"_fromToken(uint256,uint256,uint256)","15dff3b3":"RoleLookup()","15e04206":"Strings(string,string,uint8,uint256)","15e1146b":"deadlinePreIcoTwo()","15e1c65c":"added_to_the_bank()","15e28700":"addTokenPairWhitelist(address,address)","15e3187d":"amIBeneficiary(address)","15e33901":"digest(bytes,uint256)","15e3ab3a":"nccToken()","15e3d37d":"getAllCardsForClaim()","15e5ae1e":"Killer()","15e5c69e":"_purchase(address,uint256)","15e70102":"myTarif()","15e812ad":"getBaseFee()","15e82e87":"Free_vote_for_candidate_B()","15e839c1":"setHeroGenes(uint256,uint256)","15e9c2d4":"PainPoints()","15e9fc28":"setBets(uint256,bytes32[])","15ea426d":"hasUserWon(uint8,uint256,bytes32,bytes32)","15eaef6b":"tokenTransfer(address,address,uint256)","15eaf224":"getlastJadeProductionUpdate(address)","15ed6d06":"totalBondSupply()","15ed97c5":"_preValidateAssign(address,uint256)","15ee1255":"overrideCharPrice(uint256,uint256)","15ee3726":"createMesa(uint256,address)","15eec1b6":"setPayerString(string,string)","15ef29c3":"configureTokenParams(string,string,uint256)","15efc893":"confirmAdminTx()","15eff89b":"DiamondToken(string,string,uint8,uint256)","15f063f7":"totalStores()","15f06ede":"placeBuyOrders(uint256[],uint256[])","15f0c220":"marketingAllocation()","15f17902":"updateCeleb(uint256,string,uint256[6],uint256[6])","15f2226e":"removeAccessor(address,address,address,string,uint32,string,string,bytes32,bytes32,uint8)","15f28c5f":"walletB()","15f2e1bf":"getFunderCount(bytes32,string)","15f2e2f7":"LOCK_START_TIME()","15f2eb87":"getNumEndableGames()","15f2fe4f":"setDelegadoDeDistrito(bytes32,bytes32,uint8)","15f3161f":"issue(address,uint256,uint32,uint32)","15f3223c":"assertHash(bytes32,bytes32)","15f570dc":"burn(address,uint256,string)","15f59033":"setPropertyLastUpdaterLastUpdate(uint16,address,uint256)","15f5ea17":"stop_auction()","15f647fc":"setLoanProductActiveState(uint32,bool)","15f667ca":"phase2TokenSold()","15f73331":"invalidateName(string)","15f78c0c":"GetBank()","15f84d25":"isActiveContributor(address)","15f903a3":"setNameValue(uint256)","15f92e3b":"getBeat(uint256)","15fa168a":"setVerificationRate(uint64)","15fb1a65":"slashPower(address,uint256,bytes32)","15fb2185":"adminSetAdmin(address)","15fbba7a":"delPokemonFromMaster(address,uint256)","15fdf660":"mPerSellData()","15fe3b6c":"testTransferAfterFinalize()","15ff8f3c":"RESERVE_PORTION()","16002f4a":"totalAuctions()","16011bf1":"addReader(string,address)","1602a124":"allowMinting()","1602c424":"purchaseRect(uint256,uint256,uint256,uint256,uint256[])","160344e2":"startLottery()","16035ba0":"getTotalVolumeEth()","16038be8":"mintVestedTokens(address,uint256,uint64,uint64,uint64,bool,bool,address)","1603c521":"opensourceFundManager()","1604901b":"getGameByID(uint32)","1604c449":"numTilesClaimed()","1604f9ea":"requestPrice()","1604fa4d":"checkIfProjectExists(bytes32)","1605750d":"addToWhiteList(address,address)","1605782b":"sha1(bytes)","16059170":"onSubCanceled(uint256,address)","1605a889":"DecenterHackathon()","1605bc07":"SVDelegationV0101(address)","1605dd61":"getAddressBySymbol(string)","1606a1c9":"getAuditReportIPFS(address,bytes32)","1607dd9d":"distributeSpecial(address,uint256)","160849a7":"participateICONow(address,uint256)","1608e93f":"dice(uint256,uint16)","1608f18f":"disableTransfers(bool)","16090250":"getPolicyDetails(bytes4,address)","1609a397":"unhaltsTrades()","1609b182":"ReputationToken()","1609bbbf":"BarimCoin()","1609bdf2":"EEMWallet()","1609be1d":"sweepTokens(address,address)","1609e43b":"levelStartupTimestamp()","160a453e":"queryTokens()","160a7925":"getPermissions(address)","160abc9d":"tier1Rate()","160b01a1":"childTokenByIndex(uint256,address,uint256)","160b313d":"addAssociatedAddress(uint256,address,address)","160c5239":"read_total_global_purchased_today()","160d5240":"_toNanoNIL(uint256)","160d66ae":"voteToken()","160dc0ac":"buyItem(uint256,address,string,string,string)","160e3f3d":"grant(uint256)","160e915f":"canAcceptPayment()","160fc374":"cancelOrder(address[3],uint256[3],uint8,bytes32,bytes32)","160fe0e2":"getWtotalEth(uint8)","1610b59b":"infoFields(bytes32)","1610c734":"bonusLimit5()","16114acd":"recoverTokens(address)","161181ea":"getUserLengthOnToken(address)","1612ec4f":"applyToken(address)","1613520f":"priceTLP1()","1613ec9d":"getInitFunction()","161448df":"BossContract()","16145311":"ISAO()","161593a3":"landmarkToApproved(uint256)","1615d035":"airdropWallet5Pct()","1615e11d":"DARK()","16164467":"findRequiredSubscriberIndex(address)","16164b33":"icoTarget()","16164e15":"setInvestorData(address,uint256,uint256,uint256)","161666eb":"calculateAddress(uint8)","1616f54a":"FOURTH_TIER_SALE_START_TIME()","16173f39":"sin(int256)","1617adf7":"periodITO_softCapInUSD()","16180e8e":"reallocation(uint256)","16181a48":"insert(address,string)","16181bb7":"shortSellShares(bytes32,uint8,uint256,uint256)","16188c79":"isBadToken(address)","161895eb":"startBuy()","16192d2a":"accountInformation(address)","161965d9":"getRN()","1619fc14":"initOraclize()","161b5e46":"transferOwner(address,address,uint256)","161b75b2":"returnRemainingTokens()","161b9f5e":"ControllerManager()","161c389a":"NewImage(uint256)","161c8594":"setKpopArenaContractAddress(address,address)","161d2a59":"approveCertificate(bytes32,bytes32,bytes32,bool)","161dc300":"mintForSampleRegitry(address,uint32)","161fc5b3":"StartNewMiner(address)","161ff662":"proxyTransferFromWithReference(address,address,uint256,bytes32,string,address)","16201c24":"updateLastActive(address)","16205a7c":"RateDelivered(uint256,uint256,uint256)","162094c4":"setTokenURI(uint256,string)","16210e25":"verificationHoldersVerifierAddressMap(address)","16212265":"closeAirdrop()","16216f39":"return13()","16220188":"AddToWhiteList(address)","16222950":"golemFactory()","162255e1":"m_frozen()","1622dbe4":"buy(address,uint256,uint256,uint256)","16233f3f":"withdrawMortgageTokens(address)","1624288d":"balanceOfTokens()","16243356":"end_time()","16244907":"changeAnimal(uint256,uint256,bytes32,uint8)","1624f6c6":"initialize(string,string,uint8)","16260713":"isFrozenByAddress(address)","1626315c":"purchaseNew(uint256,string,string,uint256)","16265694":"validRateDurationInBlocks()","16265b4e":"isDatasetRegistred(address)","1626ba7e":"isValidSignature(bytes32,bytes)","16270f7d":"ownerIndexBit(address)","1627540c":"nominateNewOwner(address)","16277952":"userLoveLocks(address)","16279055":"isContract(address)","1627c3c1":"divForTeamEthContract()","1627d3f2":"createToken(string,string,address,address,uint8)","16281405":"buyXaddr(address,uint256,bytes32)","162856f5":"_emitOracleRemoved(bytes4,address)","162897c0":"sendUnsoldTokenToRewardSupply()","16291032":"setQualifiedPartner(address,uint256,uint256)","162927b6":"approve(uint256,address,uint256,uint256,address)","162a8e5f":"distributeTokensAfterIcoByOwner()","162bb373":"disableERC721()","162bc80c":"WithdrawTokens(uint256)","162bf1ee":"getBurnRequestAddressMap(uint256,string)","162cbefe":"AVAILABLE_AIRDROP_SUPPLY()","162d563d":"withdrawGNO()","162d7daf":"buyQST()","162dd6da":"takeEtherProfits()","162e2f6c":"reservationFromEthereum(address,uint256,uint256)","162e4fd0":"getFinalOutcomeByEntity(uint256)","16317946":"notifyTestimonial(address)","16317e7e":"setLiquidationThresholdPercent(uint256)","1631eb07":"unlockReward(address,uint256)","1632070c":"setRewardDivisor(uint256)","1632612a":"TrustEURO()","16328378":"precrowdsale(address)","16330c55":"setRafEnd(uint256)","163317c6":"fundAdvisor()","16339604":"_FIVETHOUSAND()","1635717c":"getInstruments()","1635e13c":"initBuilding(uint256,uint256,uint256,uint256,uint256,uint256)","16367c63":"earlyParticipantWhitelist()","163687ab":"defaultOperatorsByTranche(bytes32)","1636ed74":"gatewayOpened()","163740d1":"HieToken()","16381382":"getBetUint(int8,int8)","1638e70d":"DIETSweets()","1638f628":"calculatePayout(uint256,int256)","163935a8":"BlokTokenSale(address,uint256)","163aa00d":"lastRewardEthBlockNumber()","163aa631":"isIssued(bytes32)","163aba3c":"getQueryFee()","163c0351":"reserveTeam(uint256)","163c17b1":"goldFreeze(address,uint256,uint256)","163c4e3c":"CryptoGripInitiative(uint256,uint256,uint256,address)","163db71b":"totalDistributions()","163dba92":"setBlocks(uint256)","163ebd3a":"MainExchangeNM()","163ef5cb":"tgrSettingsPartProject()","163f6691":"getAttribute(address,bytes32)","163f7522":"isUserRegistered(address)","163f9b4f":"withdrawalOwner()","163fa64a":"setSkillPointCost(uint256)","163fa8af":"addInvestmentPackage(string,uint256)","164116f8":"_getPrice(uint256)","16413515":"tokenIdToData(uint256)","16419aa7":"slice16(bytes,uint256)","1641bced":"jackPotGameLockedToken(address,uint256)","1642fcca":"SZ(uint256,string,string,uint8)","16431c5b":"CreateANM(address,uint256)","16443801":"Zigilua()","16448c99":"allocateTokens(address,address,uint256)","1644b20b":"Bhinnekamint(address,uint256,uint256)","1644ed01":"isVolumeReached()","16450092":"totalCap()","16458d74":"show_Candidate_Victorious_in_Election()","1645f0cb":"_mintIdentityToken(address,address)","16468fe2":"mintEndYear()","164745c5":"presaleendTime()","1648371d":"bboBalance()","1648be60":"lockSupplierAndLockPosition(address,address)","1648f38e":"createExchange(address)","16496a15":"onceAddTime()","1649b76d":"maxDexSize()","1649cdcd":"testGetItemStore()","1649d72b":"proposeNewNotary(address)","164a009e":"WHITELISTING_DURATION()","164ba24b":"Payments()","164c9bf0":"Trust()","164ce703":"useless(uint256)","164ceb70":"getTradeByReferenceCode(bytes32)","164d3f3a":"Redeem(string,string,address)","164e68de":"withdrawFees(address)","164f81c3":"confirmAddress(address)","164fa4ef":"withdraw_token(uint256)","1650533f":"distroyIssuerToken(uint256)","16511a67":"removeHodler(address)","16512624":"setAgonValues(uint256[5])","16514052":"setPropertyDAppContract(address,bool)","1651f29a":"redeemForAllFeeWindows()","16521a2b":"getGameJackpot(uint256)","1652a9d3":"StartPeriod(uint256,uint256,uint256)","1652b365":"Xenith()","1652e7b7":"getAssetData(address)","16534bfc":"SKRToken()","16537a85":"makeschoolToken()","1654474b":"submitSellOrderWithPosition(bytes32,uint256,uint256,uint64,bool)","16552393":"creatorAddr()","1655a451":"PotPayout()","1656df0a":"_5_avto(uint256)","1658d496":"TamasCoin()","16597742":"announceWinner(uint8)","1659aecc":"timeoutYEnabled()","165a0e03":"channelsLimit()","165b22c1":"claimNxc()","165b2644":"getDepositN(address,address,uint256)","165b9ad0":"MOMO_FOUNDATION_WALLET()","165c4a16":"multiply(uint256,uint256)","165c86df":"rewardsWithdrawalRecipient()","165ca484":"USDDigital()","165cfea3":"TheImmortals()","165db404":"AdvisorsAndPartnersMinted(address,address,uint256,uint256)","165e2eea":"setFund(address,string)","165f7d38":"buyIntoSyndicate()","165ffd10":"restart(bytes32,bytes32)","16603758":"setUserCategory(address,uint256)","16618e61":"ICOweek3End()","16628014":"setBitcoinRate(uint256)","1662da6a":"setWhitelisterAddress(address)","1663f4ee":"SplitEqual(uint256)","166428c0":"PoolSubmitted(address,uint256)","16643430":"setRateEarlyStage4(uint256)","1664b9cf":"create(uint8,uint8,uint64,uint64,uint64)","16654268":"getName(address,address)","1665e6b3":"approveOrder_(address[7],uint256[7],uint8,uint8,uint8,bytes,bytes,bytes,bool)","1666b514":"RipeXToken()","16670bcd":"resolveDispute(uint256,uint256,uint256,uint256)","16671990":"minCapMain()","166728cb":"feesend()","1667504e":"updateTitleTransfer(string,string,string)","1667590d":"GenesisRewardPerBlock(address,address)","1667d763":"changeRegulatorStatus(uint8)","16685890":"huntingPrice()","1668603f":"PFXTestCoin()","16687369":"chargeProtocolFee(address,address,uint256)","16691869":"addClient(address,address)","16694dd9":"isReportingActive()","166a3952":"createVoter(address)","166bf1b0":"createC1(uint256)","166c4b85":"len(bytes32)","166d3bbf":"payOutJob(address,bytes32)","166d561a":"FatPeople()","166d91fd":"FOUNDATION_RESERVE()","166dc43e":"setManagementProxy(uint32,int256,address)","166e55d9":"computeStablecoinFee(uint256,address)","166eb4cb":"Put(bytes32,uint256)","166ee1de":"newIdentityL1(address,bytes32,bytes32,bytes32,bytes32,uint256)","16706514":"MyDice75()","16708bc6":"metadataSize()","1670cb6f":"oracleA()","1671055d":"etherollBeneficiaryAmount()","16713b37":"receivedTotal()","1671719d":"MINIMUM_LOCK_AMOUNT()","16730131":"addHpbNodeWithString(address,string,string)","16735925":"setAllowErc20OwnerClaim(bool)","1673f758":"FundTransfer(address,uint256,bool,uint256)","1674bade":"setMinDuration(uint256)","16754c55":"createArea()","1675f455":"tokenUri(uint256)","1676503e":"updateParameters(address,uint256,uint256,uint256,uint256,uint256)","16772492":"HngCoinSale(uint256,string,string)","16772b6a":"SentPrizeToWinner(address,uint256,uint256,uint256,uint256,uint256)","1677496d":"withdrawART(uint256)","16783ba7":"assertEq18(bytes18,bytes18,bytes32)","16786ae2":"createMineral(bytes32,uint256)","1679657a":"isTrustedBy(uint256,address)","167aee44":"rewardPoolShare(uint256,bool)","167d219e":"ROLEX()","167d3e9c":"SetOwner(address)","167ddf6e":"getArtwork(uint256)","167e7921":"setTotumAllocation(address)","167f66c0":"startOfDay(uint256)","167ff46f":"openSale()","16801d17":"getBattle(string)","1680a070":"setPlotDataMultiple(uint256[],string,string,string,string)","1680f70d":"transferlottery(address,uint256,bytes)","168110f3":"Tokens_For_Sale()","16812d5b":"retreiveFinalResult()","16815137":"Poge(uint256,string,string)","168179e2":"ESCBCoin(address)","16821349":"ETH_RECEIVED_MIN()","16829de5":"changeEthPrice(uint256)","1682fa59":"GetMaximumBet_Ether()","16831877":"BMICOAffiliateProgramm()","16842582":"createLottery(string)","1684844b":"registerNameXaddr(string,bool)","1684c715":"TaskCompletedEvent(uint256)","168656e1":"OwnerWithdrewERC20Token(address,uint256)","16868752":"buyTicketWithRef(address)","16870257":"getTileDescription(uint8,uint8)","16876976":"addrTeam()","16878b07":"activeVerifiers()","16879344":"commitPeriodActive(bytes32)","1687f112":"left54(uint256)","168936a0":"Remain()","1689eb38":"batchSendTokens(address[],uint256[])","168a80d3":"deleteAllTopics()","168b3c69":"CertificationDeleted(string,address,uint256)","168b4a53":"changeColorBlack()","168b6231":"getCoinIds()","168b912d":"numOfDeclaredPublicOfferingPlans()","168bb279":"insertAllowedTokenInternal(address)","168c8120":"COMMISSION_DIV()","168cd7ae":"tokenQuota()","168d71e5":"mediaTokensSymbol(address)","168e41e8":"getHash(bytes32,uint256)","168ecec5":"revokeOperatorByPartition(bytes32,address)","168f3260":"calculateMinPriceForNextRound(uint256,uint256)","168f788e":"reRollMove(uint256,uint256,uint256)","168fb79d":"RANGESTART_7()","16907c12":"updatePlanetLiason(uint256,uint256,uint256,string)","1691473c":"getProducts(address)","16915743":"proofLink()","16925ee2":"changeTradingEnabled(bool)","1692823d":"getViewDatasCount()","16928a44":"updateProjectDescription(string,bytes32)","16937d56":"addressMoneyBalance()","1693b85d":"allowDelegate()","16948e9b":"changeSettings(uint256,uint256,uint256,uint256,uint256)","169509b6":"getOraclizedIndices()","1695533d":"signLease(string,string)","16958c79":"registerBid(int256,int256,int256)","1695d97c":"removeRange(uint256)","16962849":"changeBalanceReplenishmentStorage(address)","16962bc1":"setAllocationClosed(uint256)","16962d7f":"_createKittyToken(address,uint256,uint32)","16963872":"tokenPriceInitial()","16967407":"getAdministrator()","1697283a":"getRequesterLock()","169742f6":"ebyteBalance()","16985349":"standardGrowthRate()","1698755f":"claimToken(address,uint256)","1698933d":"myStrongHand()","1698c7ff":"removeOrc(address)","16993811":"ptxHead()","16996713":"WXGToken()","169a7c3a":"eventWebsite()","169b15fa":"TechZU()","169b9890":"signByGroom()","169bd52d":"MyTestToken(uint256,string,uint8,string)","169bf233":"reportDoubleSpend(bytes32[],bytes32[])","169c13ed":"pendingTransaction(address)","169d16f4":"authorizerTwo()","169dc72c":"MBEToken(address,address,address)","169e18d9":"currentHitTotal()","169e2633":"tokenOwnerAdd(address)","169ea2f8":"dropCoins(address[],uint256)","169f66df":"monetarySupervisor()","169fab66":"TIXToken(address)","169ff375":"RANGEEND_2()","16a0390b":"BountyAmount()","16a0ea3c":"totalLockedSupply()","16a11ae5":"testFailPullWithoutTrust()","16a124e8":"setKeys(uint32,int256,bytes32,bytes32,uint32)","16a25cbd":"ttl(bytes32)","16a27019":"allowedAddr()","16a2a0cc":"setBountyFactory(address)","16a3feca":"_canOperate(address)","16a50228":"minLimitPublicFirstSale()","16a5290c":"purchaseWeapons(uint256,uint256,uint256,uint256)","16a54085":"setSideBetPercentage(uint256)","16a5410c":"Joined(address,uint256,uint256)","16a558d0":"_generateRandomhashNumber(uint256)","16a69a9a":"getDiscountStage()","16a7859b":"listService(uint32,string,uint256,uint256,address,address)","16a8e046":"setLuckThreshold(uint256)","16a92f39":"getDocByIndex(string,uint256)","16aa8508":"_leftSupply()","16aab1bf":"fundingEndTimestamp()","16aabcbd":"onlyAdvisorsCanDoThis()","16ab2b03":"getBid(address,uint256)","16ab4b17":"checkPoolsEnd()","16abdf7d":"setB(uint8)","16ad42ad":"holderList(uint256)","16ada547":"time()","16ae10f5":"USD_SOFT_CAP()","16ae4ec4":"FT_OPERATIONAL_FUND()","16ae5607":"KakToken(address,uint256)","16ae7944":"UpdateRateAgent(address,address)","16aee925":"saleDuringRestrictedPeriod()","16af001c":"calcBonusAt(uint256)","16af87a9":"getSavedReferral(address)","16afdf8e":"release(address,address,uint256,uint256)","16afe218":"setarg_1(uint256)","16b07323":"winsReported()","16b08755":"minorEditsAddr()","16b0c11e":"upgradePrefixPreSignedSecond(uint8,bytes)","16b0cc2d":"Extend(uint256,uint256)","16b0dc06":"getCitizenLevel(address,address)","16b0fc55":"removeAdmin(address,string)","16b14e19":"SingularityTest34()","16b15135":"getEscrowCount()","16b1f6b3":"CROWDSALE_PHASE_1_START()","16b208eb":"_clearApprovalAndTransfer(address,address,uint256)","16b21dfb":"getLockAccount(address)","16b2cd34":"airdroptotal()","16b3299d":"printListOfBooks()","16b33e74":"shuffleNDecks(uint256)","16b3d4ae":"_approved(address,uint256)","16b40451":"changeRandao(address)","16b4e79c":"setCampaignPriceById(bytes32,uint256)","16b57509":"killBounty(uint256)","16b60f2c":"mintMAYToken(address,uint256)","16b64898":"GEN0_TOTAL_COUNT()","16b65fac":"BITXOXO()","16b66016":"tier1Timestamp()","16b6824c":"CryptoWarriorCore()","16b6c75b":"changePeriods(uint256,uint256,uint256,uint256,uint256)","16b6c7bd":"withdrawUnallocatedRestrictedToken(uint256,bytes32)","16b78191":"decrementValue()","16b7d8f2":"VIP_MINIMUM()","16b86ed8":"amountOfMeatInUnicorn()","16b87739":"setCrowdsaleActive(bool)","16b8aa6b":"secondStageDatetime()","16b96f05":"addTotalDividendPoints(uint256)","16ba7197":"WITHDRAW()","16baa937":"AddMinter(address)","16bac350":"overthrow(string)","16bac7e5":"lockBet()","16bb1f6a":"isOriginalRoundContributor()","16bb6c13":"setBaseToken(address)","16bdb7b6":"stage3_price()","16bf3537":"SocialMediaIncomeCrowdsale(uint256,uint256,uint256,uint256,uint256,uint256,address)","16bf4657":"getNumPayments()","16bfe25c":"emergencyRefund()","16c05aa2":"depositMoney()","16c0acde":"CryptoStars()","16c12746":"getAllOwners()","16c19739":"getPosition(address)","16c1df06":"WorkerPool(address,string,uint256,uint256,uint256,address)","16c24739":"uintInArray(uint256,int256,uint256[],uint256)","16c27c4a":"UNITSimplePaymentGateway(address)","16c3002e":"allowanceForContract(address)","16c38b3c":"setPaused(bool)","16c393a6":"oraclizeBytes()","16c45c7a":"areStringsEqual(bytes32,bytes32)","16c4fcbb":"gotransfer(uint256)","16c519ee":"hasRecentPrices(address[])","16c5792d":"transferCurator(address)","16c6ec92":"ChangeTarget(bytes32,address)","16c6f470":"addNewRaz(uint256,uint256,uint256,uint256)","16c72721":"forked()","16c72861":"nextFrontWindowAdjustmentRatio()","16c7f79f":"testTransferTokenAllowanceAndReturnFunds()","16c85710":"buyMasternode()","16c9b08d":"WenWanCoin()","16ca3b63":"increaseApproval(address,uint256,bytes)","16cac8c7":"Why(string)","16cb9100":"ETHER_MIN_CONTRIB()","16cb9a01":"assertFalse(bool,bytes)","16cba9d3":"checkEtherBalance()","16cbf987":"changeMemberGroup(uint256,string)","16cc7699":"getHistoryRecord(uint256)","16cc9022":"_newWallet(address)","16cd84c1":"AltCrowdsalePhaseOne(address,address,address,address)","16cdf170":"CoinTransfer(address,address,uint256)","16ce8a69":"setBuilding(uint256,uint256)","16ce8c98":"changeBiteCost(uint256)","16ceaa95":"getStageCount()","16cf1651":"setArbiters(address,address[])","16cf8f77":"createDroid(uint256)","16cff09c":"ETHER_MAX_CONTRIB_PRIVATE()","16cff511":"setFunctionFivePrice(uint256)","16d05042":"finalLoser()","16d061a5":"gettime()","16d0ba10":"putOwner(bytes32,uint256,address,bool,string)","16d190e3":"maxWin()","16d2bc5c":"getPlayerRoundInfoByID(uint256,uint256)","16d390bf":"addOwner(address,address)","16d3aa92":"removeTransferRate(address[])","16d41a5a":"setNFTContractInfo(string,string,string)","16d45615":"test_0_ensureDefaultRulesSetToFalse()","16d4c77c":"removeBlockeddUser(address)","16d4db19":"teamCompanyLock()","16d544f1":"resetActive()","16d63f17":"simFirstObligation(bytes)","16d64127":"_setReserveHolders()","16d6be4c":"buyOfferedStakes(address,address)","16d873cf":"TransferOddEther(address,uint256)","16d8b5a2":"ferromContract(uint256,string)","16d8f16c":"updateTentativeWinningPayoutDistributionHash(bytes32)","16d9356f":"oraclize_query(string,string[4])","16d93f3d":"getAddressAnswerKeccak256(uint256)","16d960b5":"createThing(bytes32[],bytes32[],uint88)","16d99cb0":"NewContribution(address,uint256,uint256)","16da1d50":"transferdissolvedFrom(address,address,uint256)","16da7d91":"reorganize(uint256,address)","16dabbf6":"getWalletSetting()","16db5172":"getStaker(bytes32,address)","16dc9704":"numberOfVestedContracts()","16dd68b1":"getFirstAuctionsEndDate()","16ddcef5":"WillCoin()","16de035a":"EtherBB()","16dfae3c":"setGenaroDevMultisig(address)","16e02e2a":"inventoryLocked()","16e10d6a":"ICOInvestorsAmount()","16e1286d":"BEXToken()","16e17852":"TAO()","16e1aed4":"setPartitionControllers(bytes32,address[])","16e242ca":"burnTotalSupply(uint256)","16e27349":"getFeeRecipient(int256,int256)","16e32d82":"_burnPlayerTokensFrom(address,uint256)","16e33aa2":"getData_27()","16e3cad0":"HAYATO_MAX_CARGO()","16e3cfc7":"testStoresUser()","16e457f0":"sellAll()","16e4822b":"calculateEarning(address,bytes32,uint256,uint256,uint256,uint256,address,address,bool)","16e4f677":"UpdateICOAddress(address)","16e55626":"getDogName(address)","16e58a1b":"detach(uint32,uint32)","16e7371f":"LiquidDemocracyController(address,address,address,uint256,uint256,uint256,uint256,uint256)","16e74f09":"getWinner(uint256[])","16e7c80d":"getTierStartAndEndDates(address,bytes32,uint256)","16e807c4":"addBid(address,uint256,uint256)","16e82dcf":"MMaker()","16e85b2e":"scapeHatch()","16e8f2c4":"Rectangle(address,address)","16e93702":"addTeam(bytes32,bytes32,address,bytes32)","16e9fe81":"resetValue()","16ea0728":"totalBuriedValue()","16eb6603":"right50(uint256)","16ebd6d5":"devResWithdrawal()","16ebf77d":"revealConsensus(address,bytes32)","16ecc686":"setup(address,address,uint256,uint256)","16ece9db":"GetContributionInfo(uint16,uint16)","16ed2ae4":"ONE_TOKENS()","16ed36fb":"EscapeHatch()","16ee94bf":"giveArraywords(string)","16eea70f":"RaffleResult(uint256,uint256,address)","16eebd1e":"launcher()","16ef376b":"getPhase(uint256)","16eff85d":"sendRefund(address,uint256,uint256,uint256)","16f0115b":"pool()","16f0e221":"configTimeMax()","16f25d16":"LindaCrowdsale(uint256,uint256,uint256,uint256,uint256,address,address,address,address,uint64,uint64)","16f33fc2":"getLockupCell(address)","16f36d74":"withdrawEtherHomeLocal(address)","16f38b63":"heroAsset()","16f3cb5e":"__kill()","16f4acf8":"changeHolder(uint256,address)","16f4d022":"tier()","16f573e6":"addtoblacklist(address)","16f60f5f":"SPIKE()","16f898fe":"LogCompanyTokensTransferred(address,uint256)","16f8e09b":"privateSaleEtherCap()","16f9ce49":"_slotCommitNew(address)","16fa2f7f":"getUsernameByAddress(address,address)","16fa99be":"totalSuplay()","16fc1a0b":"FaFengToken()","16fc1e64":"resetCreateShareToken()","16fc68cb":"PrivateSaleBuy(address)","16fcdb84":"minBuyPrice()","16fd381a":"settleBet(uint256)","16fd48a1":"ThreesigWallet()","16fd9869":"DepositProjectProfit()","16fed3e2":"receiverAddress()","16fef995":"sundown()","16ff1c76":"appreciateTokenPrice()","16ff5b87":"getNumProjects()","17011011":"BookERC20EthV1()","17019fb4":"givePoint(uint32,int256,address,bool)","1701feaa":"GobizToken()","1702ef0c":"getProposalOrganization(bytes32)","17031f9c":"advisersPeriodLength()","170381fe":"setIcoContractAddress(address)","17038cb2":"partialForwardFunds(uint256)","1703a018":"quorum()","1703b7fd":"eth4DivsOwing(address)","1703c11a":"setFundManagementContract(address)","17040713":"WithdrawRequest(address,uint256)","1704c271":"getShipCount()","170594c6":"totalTeamSupply()","1705a3bd":"migration()","17075992":"lastThreads(uint256)","1707e05a":"loanRequested(bytes32[8],bytes,bool,uint256)","17089563":"rand(uint256,int256,int256)","1708a723":"setRootAddress(address,address)","1708d725":"unregisterFromPool(address)","1708f617":"gasPriceForOraclize()","170ab405":"setSize(uint256)","170ad53c":"totalUnclaimedTokens()","170b0782":"setSystemAddress(address,address)","170b99d9":"trivial()","170bdb36":"inPermissions(address)","170c28a2":"burnlvlToken(address,uint256)","170e1dcb":"bountyVault()","170e2070":"unfreezeAccounts(address[])","170e6d4c":"getLuckynumber()","170eb245":"secondTeamWithdrawal()","170eeb0f":"investmentRefunded(address)","170ff3e1":"addExtension(address)","171060ec":"setLocker(address)","17111edb":"DevvotePrefundClosed()","1712193f":"_requireERC721(address)","17124ed9":"LogCratePurchase(address,uint256,uint32)","1712649b":"rlc_reserve()","17126586":"getOwnerPercentage(address)","1712a72f":"ProofPresaleToken()","1712c489":"setDates(uint256,uint256,uint256)","17135b7b":"transferTokents(address,uint256)","17140bcf":"isSecond(bytes32,uint8)","17154004":"checkIfRefundAvailable(bytes32)","17155659":"createBadge(string,string,string)","17158228":"signupUserWhitelist(address[],uint256)","1716b7f0":"longTermBudgetAllocation()","1716f47e":"getCurrAmount()","171755b1":"getQuote()","1717bb12":"VoxelPlaced(address,uint8,uint8,uint8,uint8)","17183ca3":"maxCallFrequency()","17186ca3":"GetLastBetUser(address)","17191704":"refundToken(uint256)","17193854":"SetAngelCardDataContact(address)","1719b727":"_getTokenAmount(uint256,uint256)","1719d726":"stopBallot()","171c0077":"compare(uint8,uint256)","171d833c":"test_twoValidEqAddress()","171d9243":"TokenOfEightSilver()","171da314":"showPendingAdmin()","171dde3f":"devsTokens()","171dfb4f":"target_hit()","171ef0b2":"exchange_rate()","171efc3f":"refreshWaitPairBetIDsByCancelBet(uint256)","171fc143":"controllerLocked()","171fcb5a":"revealNumber(address)","17203e1d":"makeProfit()","1720684a":"whitelistBonusClosingTime()","1720ce1f":"addTxToRegistry(bytes32,uint256,uint256,uint256)","1721117b":"UpgradeabilityProxy()","17214a8a":"GenesisInitialSupply(address)","17216484":"genericSender()","17219f03":"Ehfirst()","1721ebba":"mokenNameExists(string)","1722a8b0":"rateAngelDayEnd()","172325c7":"refundDuration()","17235779":"Tutorial()","1723934d":"setAvailableSupply(uint256)","17241962":"Zerk()","172419a8":"getCapByStage(uint256)","1724cf8a":"isCARegistered(address)","17255086":"blackjack(uint256,uint256)","1725b847":"voteAgree()","1725d8aa":"getOwnedShipAtIndex(address,uint256)","1726cbc8":"releasableAmount(address)","1726d2c5":"getRefPercents(uint256)","172727c0":"lastCheckBlockNo()","17274abd":"setBtcTokenBoughtAddress(address,address)","172775ef":"generateOrderWithPayeeByAdmin(address,address,address,uint256,string,string,string)","172820de":"KaliToken()","1728ac68":"SPTOKEN()","1728dd43":"GameFinished(address)","1728fb46":"ROLE_LOCKUP()","172960d4":"LogWhitelistAdd(address)","17299c04":"setDisputeFee(uint256)","172a735c":"updateDocumentPoll(bytes32)","172a9438":"ArsenalvsManCity()","172ab60c":"getPositionFromHolding(uint256)","172ac1ea":"isInvoice(bytes32)","172b319d":"GOOLA_UNIT()","172b95e1":"get_transaction_by_row(uint256)","172c61e6":"totalAdoptedAxies(uint8,bool)","172c9a0e":"inspire(address,uint256)","172cf717":"left55(uint256)","172d8a30":"setDirectorLock(uint256,uint256)","172e0456":"set_property_contact(uint256,string,string,string)","172e1e52":"priceView()","173029d7":"derivePayoutDistributionHash(uint256[])","173067a3":"priceStart()","1730e216":"setStartLockPeriod(uint256)","17324249":"playNumber(uint256[])","17324543":"nationalitiesOf(address)","1733043f":"getAllChildIds(bytes32)","1733cbb5":"ConfirmationNeeded(bytes32,address,uint256,address,bytes)","1733fea0":"SKYST()","17342859":"batchSetApprovalForAll(address[],bool)","17342d36":"init(address,address[],uint256[],address,string)","17349ad5":"TokenDecimals(uint256)","17356c22":"getVirusLength()","17367bc8":"VDN(uint256,string,uint8,string)","173817b6":"checkSellerOffer(address)","173825d9":"removeOwner(address)","1738c3ff":"removeVendorById(uint256)","17393f04":"PURCHASE_DIVIDER()","173975aa":"SetENGCommunityAddress(address,address)","173a0615":"Dealer()","173a21f8":"changeWethContract(address)","173a2b5c":"proposalAmount()","173a48a4":"distributeFUDD(address[],uint256,uint256)","173a4b70":"newProposal(address,uint256,bytes32,string)","173a705f":"transmitStatus()","173c9d27":"batchTransferForDifferentValues(address[],uint256[])","173cb7de":"getNumReleasesForNameHash(bytes32)","173d2795":"train1(uint256)","173d6ca2":"tier1Reached()","173dbd4e":"GoCryptobotCoinCore()","173dc741":"addBonusToUser(address,uint256,uint256,uint256)","173e49b7":"BoomstarterToken(address[],uint256)","173ea238":"changeBtcOracle(address)","173ea341":"isPrivilegeAddress(address)","173f22f0":"rmin(uint128,uint128)","173fc012":"preSignedCheck(bytes8,address,address,uint256,uint256,uint256,uint8,bytes)","173febeb":"Send69Wei()","1740b479":"gameManagerSecondary()","1741526f":"getContractPayout()","17415d50":"_deleteRequest(address,address)","17421c8c":"withdrawAmountToken(address,uint256)","17431634":"LevelUp(uint256,uint32)","17436b1e":"RoundOpen(uint256,uint256,uint256)","1744215a":"EIP20()","1744cfe4":"GetLoansLenght(bool)","1744d5a5":"StageBonusUpdated(uint256,uint256)","17453358":"date01Oct2018()","1745422c":"addTx(address,uint256,string)","174609f8":"UNC()","17462891":"proofOfShit()","1746bd1b":"getGameInfo()","17473975":"breakDurationBetweenPresaleAndICO()","1747af0d":"AdminOwnershipTransferred(address,address)","1747b48b":"Reveal(uint256)","1747dfd4":"ContractPlay()","17484b0c":"RSOC()","17490da8":"modifyTrialDeadline(uint256)","1749bdf1":"getClassRank(uint32)","1749c16f":"isEnded(uint16)","1749e462":"getOwnersTokenList(address)","174a6277":"getTxDataBlockNumber(address,bytes32)","174a84d8":"BetComplete(bool,uint256,uint256,uint256,address)","174b0093":"createDefaultGen0Zodiac(uint256,address,uint256,uint256,uint256)","174b9fa4":"getCurrentDayDepositLimit()","174c2002":"burnAndDist()","174cd9b3":"lastBlock_a19()","174dcea8":"getBalanceAndHolderByIndex(uint256,address)","174e7d55":"isReadyToAction(uint256)","174efd12":"minBidValue()","174f51eb":"winOdd()","174fa48e":"distributeBTCG(uint256,address[])","1750f564":"newProposal(bytes32,address,uint256,uint8,uint256,bytes)","1751dc90":"createMultiplePhoenixes(uint256[],uint256[],uint256[])","175207b7":"_readBlockBeneficiary(uint256,bytes)","17528c7f":"ReceiverAddressSet(address)","175323a8":"contributeETH()","1753a655":"singBy(address)","1753d61c":"AirdropToken()","175466ee":"proofVerifyFailed()","17548962":"SPTI()","17549ff0":"lovelock_price_LOV()","1754bd8e":"minerState(uint256)","1754de57":"sendleftmoney(address,uint256)","1755ff21":"poolAddress()","1756ffd9":"addMonsterClassBasic(uint32,uint8,uint256,uint256,uint8,uint8,uint8,uint8,uint8,uint8)","1758078b":"trader()","175892b4":"previligedSubApproval(address,address,uint256)","17597b0f":"getLockedAmount_contributors(address)","175a0061":"install()","175a8bf4":"MigrationAgent(address)","175b0284":"closeChannel(uint256)","175b859d":"Bitwincoins(uint256,string,string)","175baaf1":"accrual(uint256,address)","175beead":"advisoryTokens()","175c6709":"TransferStatus(address,bool)","175c8640":"ZEEX()","175c9885":"POSSCOIN()","175d27e0":"MONTH_IN_SEC()","175ebfc7":"AdoptionOffered(bytes5,uint256,address)","175f6d9c":"JustAnIndex1()","17602ddf":"isFlowerAuction()","1760705f":"setAssetContract(address)","1761af6d":"upgrade(address,address,address,address,address)","1761eab4":"buyLong(address[2],uint256[5],uint8,bytes32[3])","17623c41":"isAllowedToParticipateNow()","17623e5b":"unauthorizeManager(address)","17634514":"creationBlock()","17634ec8":"freezeAccounts(address,bool)","176416ed":"getVotesBetween(uint256,uint256,uint256)","1764250a":"verifyWithdrawSignatures(uint256,address,address,uint256,bytes,bytes)","17645315":"migrate_participant(address)","1764dc3d":"GiveTokenPerm(address,address,bytes32)","17653b6e":"setChainRoot(address)","17655f6c":"transferOtherERC20Assets(address,uint256)","17659a1d":"Undelegate(address,uint256)","1766f424":"unsoldAllocationDelay()","17671962":"calcTotalWinnerKeys(uint256)","17674544":"deleteEntry(string)","17676e4c":"valueSet(string,bytes)","1767da08":"addBalanceForOraclize()","176854f6":"setLastJadeSaveTime(address)","176898c9":"setRefundStatus(bool)","1768b436":"ETCSurvey()","1768fd6f":"getMaxLockAmountAllowedByLtd()","1769511c":"fidaTokenAddress()","1769af29":"removeFromOwnerlist(address)","1769f049":"fee_balance()","176b0eac":"gcStartTime()","176b63f4":"seedSourceA()","176b6742":"EtherFlip()","176b866f":"alterBankBalance(address,uint256,bool)","176cd40a":"PUBLIC_OFFER_SUPPLY()","176d0780":"createMicroWallet(uint256,uint256)","176e5f32":"withDrawMoney()","17700f01":"disableTrading()","17701ee6":"mission()","1770616c":"tier3LOT()","17711a46":"setTokenTimelockFactory(address)","1771b7dc":"bids_burned_count()","1771d4d4":"setAliasPrice(uint256)","1771ece6":"updateHouseFee(uint8)","17727a00":"withdrawCapital()","1773234b":"kscBatchBurnWhenUseInSidechain(address[],uint256[],string)","17733eac":"yank(address[],address[])","177378f0":"testRegularBuy()","17738cef":"placeEMONTBid(address,uint8,uint256)","177413da":"bet(bytes32)","1774218e":"CRAToken(address)","17743338":"MakeClaim(address)","17749a16":"adminRefund(address,address)","1774df3e":"distributeMAGGIE(address[],uint256,uint256)","1774e646":"setUint8(uint8)","1774f6c6":"confirmPurchase(uint256,address,address)","17753c44":"DIGTREX()","17759493":"TotalPoSRequests()","1776683e":"payDev(address)","1776b437":"countInvestorsRefundedInCrowdsale()","177766e6":"getOptionChain(uint256)","17776b86":"ExhibitToken()","1778f1df":"ICOStartDate()","177a9e9d":"refundFor(uint256)","177b3010":"registerProject(string,string)","177b979e":"initiatecontract()","177bd86e":"syncSubscriptions(address[],string[],uint256[])","177c75ae":"offerIndexedPieceForSale(uint256,uint256)","177cf218":"UNIX_DAY()","177cfaa2":"teamTwoShares()","177d8ee4":"emitSkillsSet(address,uint256,uint256,uint256)","177dc9e5":"getCompte_15()","177dcde9":"_transferTokens(address,uint256)","177e0f71":"setLockedWalletReleased(address,bool)","177e6ae4":"ETHERFLEXCrowdsale(address,address)","177ea52d":"buyTokensSigned(address,bytes,uint256,uint8,bytes32,bytes32)","178003e1":"BCTopCraftCannabis()","178021e3":"saleFee()","1780eb18":"charityFundations(uint256)","17813d37":"BitGCoin(uint256,string,uint8,string)","17834d36":"isReachedHardCap(uint256)","178394bd":"LockedUnsoldTokens(uint256,address)","178407ca":"Board(address)","178450bd":"EbocoinToken()","1785478c":"_preValidatePurchase(address)","1785f53c":"removeAdmin(address)","1785f8dd":"PreTgeDisable()","1786351b":"AllbesticoContract()","1786e362":"orderTokensOf(address)","1787119c":"spendlarge(uint256,uint256,uint256)","17880b67":"getTotalBorrowingMonsters()","17888efc":"projectTokens()","1788de80":"enableTokenTransfers()","17897fcd":"RedRabbitToken()","178a8c8d":"accountsHolding(uint256)","178a8f34":"lotIdsByAddress(address)","178a9e2e":"tixGenerationContract()","178a9ffb":"HarborCrowdsale(uint256,uint256,address,uint256,uint256)","178ab6bb":"startICOStage8()","178af534":"createTokensWithoutReffer()","178afb39":"setSalesState(bool)","178b6de6":"getAllTokens(address)","178b8baf":"printCoins(uint256)","178b9d1a":"closeTicket()","178c02e9":"prometheusSoldCount()","178c17f0":"_createRandomNumber(bytes32,uint256)","178c4e40":"proof_of_public_key1()","178cec5c":"setBAU(bytes32,address,uint256)","178e6079":"APP_ADDR_NAMESPACE()","178ef307":"numberOfTokenHolders()","17904743":"bitpaintingStorage()","17905b2a":"Taur()","1790bd17":"contributorIndexes(uint256)","179101a6":"DECoin()","17916537":"clearDistributionDetail()","179194e1":"Bitnova()","1791cf01":"arr(uint256,uint256,uint256,uint256,uint256)","1791db21":"tokenMult()","1792b0bc":"transferTokens()","1792cc61":"tokenDecimalPlaces()","1793140a":"setO1(address)","179381d8":"setICOController(address)","1793b0f2":"addRecord(bytes32,string)","1793c314":"lastChance(address,address)","1794164b":"killcontract()","1794a463":"changeDevFees(address)","1794bb3c":"initialize(address,address,uint256)","17958e75":"omegaToken()","17961d0f":"ord()","17968fc9":"doPurchase(address,uint256)","1796b2ca":"unspent_supply()","17974399":"changeWithRef(address,address,uint256,uint256,address)","1797552b":"approveansCall(address,uint256,bytes)","1797814e":"IADOWR()","1797ec8a":"totalCrabTraded()","17986d83":"setRefferalFee(uint256)","17993e2f":"IREC()","17997878":"totalOwned()","179a5480":"masterresellercontract()","179ac197":"setOraclizeContract(address,address)","179b1b70":"LogFinalize(uint256)","179b51b1":"lotteries(int256)","179b73da":"killBoardProposal(uint256,address)","179c537e":"setSaleContractDepositAddressVerified(address)","179d375c":"addToken(uint256)","179dd216":"calculateMarketPixelPrice(uint256)","179dfbf3":"getBettingStatus()","179e91f1":"tokensLockedAtTime(address,bytes32,uint256)","179ef331":"nameRegistered(bytes32,address,uint256)","179fc99f":"etherBalanceOf(address)","179ffe76":"getMovie(uint256)","17a081bf":"queryTimestamp(uint40)","17a23ec6":"TOKEN_scaleDown(uint256,uint256)","17a2aaa4":"WithdrawalPremature(address,uint256)","17a2c026":"setCampaignEndDateById(bytes32,uint256)","17a3a329":"GLBX()","17a40e92":"updateAsset(address,bytes32,bytes8,uint256,string,string,address[2],uint256[],bytes4[])","17a432f5":"getActualPriceOfCardOnCraftAuction(uint256)","17a523c1":"useInsurance(uint256)","17a5d4df":"minTransactionAmount()","17a5f8cc":"createRatePlan(string,bytes32)","17a601b5":"MAX_STACK_DEPTH_REQUIREMENT()","17a650cc":"enter_square(uint256)","17a66006":"stageBaseRate()","17a689f3":"SuperSkyNet()","17a7cd10":"weeksFromCreation()","17a7eb4c":"vote02NoCount()","17a7f4cc":"feedOnKitty(uint256,uint256)","17a7f53e":"PriceHKGChange(uint256,uint256,uint256)","17a7f9b2":"countOfAddresses()","17a87b80":"changeInitialPrice(uint256,uint256)","17a950ac":"actualBalanceOf(address)","17a96982":"pullBounty(uint256)","17aa2899":"toB32(address,bytes)","17aaaea7":"BaseAltCrowdsale(address,address,address,address,bool,uint256,uint256,uint256,uint256,uint256)","17aad447":"FOUNDERS_LOCK_START_TIME()","17ab6cbb":"getRedCards()","17ac195a":"devTokensWallet()","17ac410f":"mintedtokens()","17ac896c":"GlobalBusinessSystemToken()","17adeb7c":"setClientProviderUID(address,uint256)","17adfa08":"confirmOneBuy()","17ae1f6c":"commission1()","17ae1fc5":"getIsActive(address)","17ae5d88":"unPreIco()","17af4d8a":"removeRoleAll(string)","17afa8a3":"set_refererPercent(uint256)","17afd19a":"decrementDID(address,address,uint256)","17b2e350":"deletePermissions(address,address[])","17b3a34b":"_addIdentities(uint256,bytes32[])","17b4c4d3":"META()","17b591e5":"closeContract(bytes32,bytes8,uint256,uint32,string,uint32,uint32,uint64,uint64,bytes32)","17b5f729":"_getAuctionIdArray(uint64,uint64)","17b65ae6":"hasEmployerMinRating(address,address,uint256)","17b75be6":"setBigICOStopped(bool)","17b7c328":"OpenPollCoin()","17b83aa6":"getSaleContractDepositEtherMax(address)","17b88dd7":"NEC(address,address)","17b98723":"isAuraSet(uint256,uint256)","17b9a28e":"calcWinner(uint256,uint256,uint256,uint256)","17b9e89c":"sumHardCapPreICO3()","17ba169a":"HybridEXToken(address,uint256)","17ba86af":"OpenContentIndex()","17bb0532":"AdminAddressChanged(address)","17bbcb6f":"newInvest(address,uint256)","17bd1251":"txsThreshold(uint256)","17bd927c":"testNewCounterValueAfterADecrease()","17be3fa5":"lockToken(address,uint256)","17be85c3":"getEntries()","17be89f0":"createTradeContract(address,uint256,uint256,bool)","17bf2671":"PDOne()","17bf8f50":"sendTokenFromDex(address,uint256)","17c0b0f9":"Escrow(address,uint256,address)","17c163e9":"ROLE_STATE_LOCK_PROVIDER()","17c201a1":"getRemainingMineSupply()","17c208a0":"EtherGirls()","17c24891":"completeInternal()","17c2d98b":"minSizeInvest()","17c2f390":"getNumberOfSuccessfulSteps()","17c3119b":"TeamAndAdvisors()","17c32a58":"latestPhaseNumber()","17c35e88":"deedName(uint256)","17c3925f":"encodeBillingMetadata(uint256,uint256,uint256,uint256)","17c39286":"getCars()","17c4c7bb":"getShipPriceById(uint256)","17c4f0a0":"autoReleaseTokenSaleJM()","17c4fcbf":"getExpectedGameSize()","17c51080":"getMyLockedFundsReleaseTime()","17c520f9":"CerttifyToken(uint256)","17c5838a":"stopMinting(string)","17c5fed8":"emergencyWithdrawalRatio()","17c63141":"getCountSenderCities(address)","17c65aa7":"getMaxLossAfterTrade(address,uint256,int256,int256)","17c6ee4f":"PaidOut(address,address)","17c70de4":"initiationTime()","17c73612":"ItlyCoin()","17c73ff0":"COMMISSION_WALLET()","17c83ed4":"getBindAddressAccount(address)","17ca1a6d":"getCrystalsSummary(address)","17ca2e41":"addBlacklist(address,bool)","17ca7f63":"getMintMarketMakerApproval(address,address)","17cacc1e":"_beingVIP(address)","17cb6426":"totalPaidOut(address)","17cbe981":"ChangeShipSellMaster(address)","17cc4138":"lastUETCWC()","17cc67b9":"firstRoundICOStart()","17ccf6a0":"rate5()","17cd4d5a":"setEtherPriceInEuroCent(uint256)","17cd802d":"repayment()","17cdb812":"TEAM_VESTING_AMOUNT()","17ce42bd":"addEntry(string)","17ce9aae":"getIsSecondPhaseByTime()","17ce9d68":"getMeshPointByName(string)","17cfd0d6":"house_edge()","17cfde55":"onSubUnHold(uint256,address,bool)","17d01716":"unregisterPair(address,address)","17d077af":"NamiPool(address,address,address)","17d0aa13":"TXOtoken(address)","17d18cd6":"_capOwO()","17d28620":"toggleTransferFor(address)","17d2e4e4":"realDevRewardWeight()","17d35f47":"setLocked(uint256)","17d3953f":"tmed()","17d48fc7":"getMigrationAccount(address)","17d4e24c":"EXT_COMPANY_STAKE_THREE()","17d51877":"cancelLine(uint256)","17d55d13":"timeLeftToBid(address)","17d5e4be":"testDrip(address,address,uint256)","17d60394":"Briant2Token()","17d6de15":"setSnapshotBalanceBatch(address[],uint256[])","17d70f7c":"tokenId()","17d7a154":"getShipTotalEarned(uint32)","17d7a47d":"sendOtherTokens(uint8,address,uint256)","17d7de7c":"getName()","17d8405a":"setUserAccount(bytes32,address)","17d86154":"setStartPrice(uint256)","17d8fd7a":"acceptedBookingfc(uint256)","17d928a7":"ClaimNFT(uint256,uint256,uint256)","17d94ad3":"isMinterAllowed(address)","17d9adb7":"stage_3_tokens_scaled()","17d9b4ab":"checkPromo(string)","17d9bfcb":"withdrawAndTransfer(uint256,address)","17d9c090":"isCharged()","17da485f":"getMiningDifficulty()","17db59a4":"dEthereumlotteryNet(address,address,address)","17dba48c":"GRAC2Coin()","17dbaf9b":"unlockFirst()","17dbe4f1":"burnPassportToken(address,uint256)","17dc86c5":"minWeiContribution()","17dc92f5":"cash(uint256)","17dd0873":"Winner(address,uint256,uint256,int256,string)","17dd4cc1":"getPreviousPrice(bytes32)","17de15ad":"GreHackCoin()","17de2f1f":"defaultOwner()","17dec7af":"distributionFixed()","17df1773":"StopIco()","17df5696":"finishPreSale4()","17df74f9":"availablePercent(uint256)","17df9a73":"findBid(address,uint256,bytes32)","17e01c95":"isClientBlocked(address)","17e04e55":"PoSatoshi()","17e0aeb8":"setPropertyEarnUntil(uint16,uint256)","17e0dfb2":"backAtIndex(uint256,uint256)","17e139a7":"lockedTokenHolder()","17e1b09b":"minimumDeposit(uint256)","17e1bfb7":"addInstitution(address,string)","17e22621":"joinGameWithInviterID(uint256)","17e2912f":"Amount_of_AOC_for_One_ETH()","17e30f6b":"TimeChainToken(uint256,string,string,address)","17e398a5":"seizedTokensWallet()","17e3f5fa":"callModifiedContractBalance()","17e49dc9":"ETH033()","17e50791":"FundsReceived(address,uint256,uint256,uint256,uint256)","17e51f21":"CrowdsaleController(address,uint256)","17e5259e":"ETH_MAX_LIMIT()","17e63b79":"centsPerMonth()","17e63bff":"setupICOPeriod(uint256,uint256)","17e6a087":"markFunding(address,uint256)","17e72721":"VLToken()","17e760bb":"votingAllowed()","17e7dd22":"getBooleanValue(bytes32)","17e875e3":"Transparancy()","17e95fbc":"releaseAdvisorsAccount()","17e9884d":"OG()","17ea4a79":"Took(address,uint256,uint256,uint256)","17eb85e3":"contractBoost(uint256)","17eba34d":"MIN_PRICE_IN_CENTS()","17ed31f4":"TIACOIN()","17edfb06":"trade(uint256,uint256,string)","17eef4cd":"setTotalTokensForPublicSale(uint256)","17ef67c6":"setContract1(address)","17efa370":"SmartTokenController()","17f143e1":"supplyExponent()","17f19efb":"ZoarToken()","17f1d65b":"hasIcoPhaseOneEnded(uint256)","17f1ee05":"paySecurityPool()","17f46c15":"getVoucher()","17f5de95":"MAX_TOKENS_SOLD()","17f5f53a":"XYTTEST()","17f6252f":"PRESALE_PERCENTAGE_4()","17f6c712":"ObjectPurchase(address,address,uint256,uint256)","17f708fb":"removeWhitelist()","17f7a530":"_computeNextMinerPrice()","17f80c13":"releaseJoyToken()","17f8252e":"tokenOwnerNumber()","17f95eac":"approveCloser(address,bool)","17f992ab":"SECOND_VOLUME_EXTRA_BONUS()","17fa664f":"callerDel(address)","17faa66f":"transferOwnershipWithBalance(address)","17fab0a0":"info(string)","17face84":"withdrawCommission(uint256)","17fad7fc":"batchTransferFrom(address,address,uint256[],uint256[])","17fb44c1":"returnAmountPaidBackSoFar(uint256)","17fb4d66":"Destroy(address,uint256,address)","17fb6c6e":"approveRequest(uint256,bool,string)","17fc01bf":"LegendsCrowdfund(address,uint256,uint256)","17fc3f55":"angelGoal()","17fc91f8":"holdAmount()","17fccb47":"erc20TokensContractAddress()","17fe375f":"getComments(address)","17fe5b79":"apolloSpecialTransfer(address,uint256)","17fe6185":"log(address,address,uint256)","17fe72bb":"setEnabled(address,bool)","17ff0caa":"WeatherBet(uint256,address,address,address)","17ffa830":"tixFounders()","17ffc320":"reclaimToken(address)","17ffd225":"KittyTrained(uint256,uint256,uint256,uint256[5])","17ffe171":"lock(address,address)","18004bba":"transferArrayBalanceForPreSale(address[],uint256[])","18005d93":"JinuToken()","1800c0fe":"extraTime()","1800e68e":"calculateTokens()","1800ed8e":"manager_address()","18015191":"transactions()","1801db43":"ExaCHF()","1801f00f":"newProposal(uint256,uint256)","1801f38e":"restart(uint256)","1801fbe5":"mint(uint256,bytes32)","1801ff10":"getAllContact(bytes32)","18024acc":"voteStartTime()","1802f969":"PokeCentral(address,address)","18037b78":"issuerJurisdiction()","18039230":"getPlayerGoodList(address)","180489ed":"Withdrawal(address,uint256,bytes)","18051c4a":"targetWei()","18054275":"executeSpins(bytes32,bytes)","180603eb":"registrationFee_()","1806874a":"amountLockedInVestings()","1806be68":"CompanyReserve(address,address)","1806cb4e":"getGiftSoldFromType(uint256)","180773de":"MAXIMUM_CONTRIBUTION_WHITELIST_PERIOD_USD()","1808c6b6":"setDividendsDistributor(address)","1808eeb8":"pending(bytes32)","180941f0":"setPredictions(int16,string)","1809549f":"updateAllComponents()","1809ced7":"sendEther(string)","180a3277":"sendDiary(address,bytes)","180a351b":"getByteFromByte8(bytes8,uint8)","180a42a3":"LifeSet_006()","180aadb7":"underLimit(uint256)","180afbf6":"DaxtherCrowdsale()","180b0d7e":"feeDenominator()","180b2607":"lastRelease()","180c0da6":"GlobalAssentToken()","180c0dfe":"maxBuyTokenAmount()","180c9309":"hasOracle(address)","180ca180":"CooperativeToken()","180cb47f":"GOV()","180da450":"addTierRateAndTokens(uint256,uint256,uint256)","180db1b4":"getErrno()","180dc318":"owners(uint32)","180ee30d":"forgivedChars(uint256)","180eebba":"accumulatedGasFees()","180f4c2c":"submitTotalBuyOrder(bytes32,uint256,uint256)","180f8f4f":"nextPrice2Of(uint256)","18117abb":"changeOwnerWallet(address)","18126325":"getOrganBlog()","18128ec7":"buyMorty()","1812982c":"fechAllForCandidate(uint256)","1812d2aa":"setBonusToken(address,uint256,uint256)","1812d996":"signature(bytes32,uint256)","1813b684":"preIcoEnded()","18158e6b":"BdpController(bytes8)","18159bf3":"_addSGCUsers(address)","1815ce7d":"setBackendAddress(address)","18160ddd":"totalSupply()","181670e6":"isApprovedOnceFor(address,address)","18167416":"officialGameUrl()","1816e794":"getMainsale()","18178358":"poke()","1817c5a7":"revokeGrant(address)","181a916b":"getKeys(address,uint256,uint256)","181aa1fd":"takeFee()","181b3bb3":"functionOne()","181b591a":"phase_4_bonus()","181be00d":"getValue(uint8)","181c8ef9":"enter(bytes8,address)","181d85eb":"internalRedeem(address,uint256)","181da773":"EosPizzaSliceDonationraiser(address)","181dcbcd":"setMaxConfig(uint256,uint256)","181e0124":"getRemainingTime(uint256)","181f1437":"permissibleWithdrawal(uint256)","181f1965":"fillSellOrderPartially(uint256,uint256,uint256)","181f4456":"setAuctionStart(uint256)","181f4477":"getLockedStructStartTime(address,address,uint256)","181fd85b":"cancelSale(address,bytes32)","181ffc5f":"GetGift(bytes)","182092a8":"ChangeSymbol(string)","1820b575":"Team(uint256,address,uint256)","1821cd93":"jackPotFunds()","1821e7c6":"acceptOffer(address,address,uint256)","1822b886":"createTradeOffer(bytes32,bytes32)","1822cbc5":"mintingIsAllowed()","1822f8db":"finishSafe(address)","18237476":"getAccountTotal(address)","18237e0c":"enableBuyback(uint256)","182439de":"claim_PreICOTokens(address)","1824461d":"administror()","18248f2a":"sendToken(address,uint256,address)","182493f2":"plantedOf(address)","182499fe":"ico_address()","1824a46b":"onUpgrade()","18253234":"ticketsAvailable()","182575f1":"authorizeFloor(uint32,address)","1825d0e8":"_mintCUSD(address,uint256)","18264f33":"startMigration()","1826fb35":"_calculateShards(int256,uint256)","1827caf4":"getInfoB(uint256)","1827edbc":"Reaper11()","18285e6b":"secondPlay(bytes32,uint8,bytes32,bytes32,uint256)","18287ef2":"executeOption(address,uint256)","18289482":"currentIcoPeriodStartDate()","1828983a":"authorizedUsers(address)","1828b254":"nextTicketPrice()","1828db82":"ownerPayout(address)","182930ce":"AddedToWhiteList(address,uint256,uint8,uint8)","1829b73f":"buyoutAmount()","182a7506":"setMinimumFee(uint256)","182ae5f2":"getVotesForItem(uint256)","182af96b":"regularEndGame(address,uint32,int256,uint256,address)","182b0b00":"checkChangeToReceive()","182b144c":"incrementBatch(address[])","182b434b":"newRequest(address,uint256,bytes32)","182d326e":"getTeamAddress()","182d709a":"scaleWeights(uint256)","182db370":"getWhatHappened()","182e0c49":"totalUnrestrictedAssignments()","182e7533":"getBetResult(bytes32,bytes32,bytes32,uint256)","182e8a67":"changeGroupActiveStatus(bytes32,bool)","182e9a1e":"getOwnerVehicleDetails(address)","182ee07f":"setDistributionMinimum(uint256)","182ef78e":"getTMul()","182f67a3":"reservedWei()","18300c1a":"CappedMintableToken(uint256)","1830d69d":"IsGot(uint256[],uint256[])","1830f493":"getPermission(bytes4)","1832425f":"registerAddress()","1833198f":"makeMemChange2(uint256,uint256,uint256,int256)","1833b7c6":"changeMyAddress(address)","1833fa4c":"update(uint256,string,uint256,uint256,uint256,uint256)","18342c9c":"BettingCore()","1834906c":"thisContractAddress()","1834ef4e":"addMoneyToContract()","1835e57d":"VESTING_DURATION_4Y()","183651d9":"tokenApprovalWithSignature(bool,address,address,address,uint256,uint256,uint256,bytes32,bytes)","18369a2a":"initialBalance()","183718d1":"getCheckoutTime()","18384df2":"getMetadataOf(uint256)","1838daab":"getRealmSale(uint256)","1839a417":"_cancelEthOffer(address)","1839babf":"zGetGameBalance()","183a7947":"pregnantKitties()","183abe66":"testRewardSB(string)","183b3159":"getAssetBalance()","183bfb4f":"AddBankerProfit(uint8,uint256)","183c5901":"DigitalGold()","183d255e":"SetWhat(uint256)","183d4cf7":"CNT_address()","183df5ef":"test_invalidSuicide()","183f9bcf":"isQuorum(address[3])","183ff085":"checkIn()","184018c6":"awardHighScore()","1840f0ca":"countVotes(uint256)","184188f2":"setStopTransfer(address,bool)","18423074":"ShowerToken()","18433bb7":"DrawPrepare()","18456048":"auctusTokenAddress()","18469491":"lastPlayerPaid()","18469dfe":"canStartDispute(bytes32)","1846d125":"isGroupExists(bytes32)","18476db4":"newRandomValue(uint256,address,uint256,uint256)","18477799":"Touch()","1847c06b":"ids(address)","18489f50":"thingExist(bytes32[])","18494108":"doPayout()","1849bd6a":"ExecuteTrade(address,address,address,uint256,uint256)","1849cb5a":"get(uint80)","184a9ce1":"Log2_fnc(address,bytes32,uint256,string,string,string,uint256,bytes1,uint256,uint256)","184ad5ff":"VjuCoin()","184b1912":"minimum_goal()","184b9559":"init(address,address,address)","184bd394":"changeSaleAddress(address)","184c703d":"LogVoteInitiate(uint256,uint256,uint256,uint256,uint256,uint256)","184d009b":"teamNameIndex(string)","184d1a77":"acceptBid(int256,int256,int256,int256)","184d69ab":"isWhitelistEnabled()","184db3bf":"initErc20Deal(bytes32,uint256,address,bytes20,bytes20,address)","184e8549":"getPI_edit_31()","184fb2bd":"signOwnerCount(uint256)","184fd65e":"addMomRelation(address)","184ffd9d":"RATE_CROWDSALE_S2()","18501714":"clearJackpotParticipantsAfterDistribution()","185061da":"undoIt()","18507210":"templatesOfOwner(address)","185190f6":"addCustomerwithETH(address,uint256,uint256)","1851e59e":"Omnidollar()","18520be5":"EventBid(uint32)","18520de3":"sendFrom(address,address,address,uint256,uint256)","1852e8d9":"calculateReward(address,uint256)","1853d033":"GetAskingTokenBought()","1854229a":"REFERRAL_BONUS_LEVEL1()","1855e405":"managerOff(address)","1856a6df":"coupleImageIPFShash()","1856bc0f":"BuyGenesis(address)","1856c1dc":"main_sale()","1856e01b":"setVotingController(address)","18573bf9":"calculeReward(uint256,uint256)","18577f8d":"calVote(address)","18579ece":"clearances(address)","18584a5d":"hasAlreadyPlayed(address)","185870f9":"developerWallet()","1858cb5b":"verifyProof(bytes,bytes32)","185917c5":"distributeToFound(address,uint256)","1859b2d7":"getDStructData(address,uint256)","1859c8e2":"getUserTicket(uint256)","185a5671":"setTransferAddress(address)","185a6284":"discountedMiningTarget(address)","185a7daf":"FundingRules(uint256)","185b9067":"QuadCoin()","185c4279":"hardCapCHF()","185cc751":"loan(address,uint256)","185d1af6":"setUncirculatedSupplyCount(uint256)","185d9e79":"AOL(uint256,string,uint8,string)","185e00fd":"getDisputeStateText(uint256)","185e4a00":"getCurrCanRefund()","185e9969":"getContractDetails(bytes32)","185f23c4":"_arbitrationPercent()","1861355b":"transferMintOwnership(address)","1861cb28":"getNowVestingType()","1861e523":"testOwnerToken()","1862c10b":"withdrawBalancesToLogic()","1862caec":"firstStageMinting()","186415c0":"releasesollidaTeamTokens()","18643d37":"raffleLimit()","1864db71":"getCompetitionInfo(uint256)","18656a1e":"founderAmount()","18659adb":"starbitWallet()","1865c57d":"getState()","186601ca":"activated()","1866191a":"editDiscount(uint256,uint256,uint256)","186690b0":"broadcastMessage(string)","1866ae7d":"PayRollHistory(address)","1866f761":"ConstantaToken()","18671d23":"Auditor(address,address,address)","1867b937":"_bytesToBytes32(bytes)","1868291f":"getIp(string)","1868516d":"KMEToken()","1868c2a1":"computeSeed(uint64,address)","18695c4d":"DSToken(bytes32,uint256)","1869a084":"releaseLockedBalance(address,uint256)","186b6f05":"updateFallbackDeposit()","186b79c9":"isProviderInitiated(address)","186ba9de":"lastUnlockMineBalanceTime()","186bbb05":"getAppCode(bytes32)","186bcaf0":"ontology()","186c9b11":"issueTokens(uint256,address,uint256,uint8[],bytes32[],bytes32[])","186cd7d2":"card_black_first()","186d9ce8":"allowAvatarCreation()","186d9d88":"unblockAddress(address)","186db237":"ecosystemBuildingTokens()","186e378a":"CCH_EDIT_4()","186e4297":"charityCut()","186e7047":"forceAdvance()","186eb86b":"cnt_per_eos()","186f0354":"safe()","1870082d":"inviteCollateralizer()","187047b5":"LogUserAdded(address)","1870a73a":"totalNTD()","1870ad14":"setAddress(string,address,bool)","1870c10f":"donateAndCreateGiver(address,uint64,address,uint256)","18714bc8":"purchaseWithFiat(uint256)","18718656":"XENCToken()","1873355e":"Emoji()","18737e07":"Redeemed(uint256,address,address,uint256)","18758480":"worldContract()","1875aa22":"transferWhiteList()","1875ccf3":"setGlobalCompositionFee(uint256)","18760eb3":"RequiringAuthorization()","18764471":"ANTDToken()","1876d0a9":"astutelandToken()","1877fc8a":"quickSort(address[21],int256,int256)","1878265a":"Rent()","1878d1f1":"ETH_TOKEN_ADDRESS()","187958ac":"VOCToken()","18797499":"ENTERED_MASK()","18797c35":"emitAccountFrozen(address,uint256)","1879c2da":"NewSale(address,uint256)","1879dcf3":"MIN_TOKEN_PRICE()","187a62d5":"voteEmergencyWithdrawal(bool)","187ac4cb":"migrationManager()","187adf2e":"failsafe_subtract(uint256,uint256)","187b1f2a":"VOZToken()","187cba25":"issueNomins(uint256)","187cbdd2":"subWallets()","187d2371":"LOG_MaxInvestorsChanged(uint256)","187d3954":"getClaimableBalanceFor(address)","187d8803":"updateKoCommissionAccount(address)","187ecd37":"Open(bytes)","187ed86e":"ROE()","187f707b":"AdvertisementFinance(address)","187fac20":"setStartStage1(uint256)","187fd079":"MINI_GAME_TIME_DEFAULT()","18804b0d":"setDescriptionHash(bytes32)","1880692f":"getPublicKeyCount()","1881656b":"canSpend(address,uint256)","1881b0f0":"kycVerify(address)","1881f980":"read_i64()","18821400":"TOKEN_NAME()","1882d267":"liquidityFundAddress()","18836994":"get_allowance(address,address)","1883d2a4":"IUPToken()","1884c517":"registerWorkerAffectation(address,address)","18856694":"deny(bytes8)","1887af2b":"LogicBase(address,address)","18886657":"purchaseLimit()","1889500c":"marketplaceManager()","18896972":"isBuyFull()","18898452":"saleMinimum()","18899745":"AffiliateMarketing(address,uint256)","1889fc0a":"_preValidateReserve(address,uint256,address)","188a1d68":"getOuverture_des_droits()","188b5372":"generateToken(address,uint256)","188b81b4":"getGameEnd(uint256)","188c668c":"recordDealRefundReason(uint256,address,uint32,uint32,uint256,string)","188cad26":"referralTokensAllocated()","188d0aae":"buyAndCreateGame(uint256,uint256,address)","188dbc1a":"setAccountIsFrozen(address,bool)","188ec356":"getTimestamp()","188f1fee":"notifyObservers(address,address,int256)","188fdbdc":"commission_rate()","189048fc":"getAccountLevel(address)","189052ac":"_setFreezingPeriod(address,bool,uint256)","18911bbe":"ProdFToken()","1891381d":"setROI(uint256)","1891c701":"AssignOwnerToProject(int256,address)","18921de4":"addSignature(string,uint256[],uint256[],uint256[],bool[],uint256[])","1892c15a":"fwdPayment(address)","18940084":"_getDestinationTranche(bytes)","18942a33":"new_record(address,address,uint256)","18946e8f":"voteOnParameter(bytes32,int256)","18954b3e":"collectEstimation(int256)","18955b1e":"willThrow()","1895687d":"issueLoan(address,uint256)","18958959":"individualClaim()","1895e858":"resetWallet()","1896367e":"setBlockSze(uint256)","18968a03":"finalize(uint256,address,address)","1896f70a":"setResolver(bytes32,address)","18976fa2":"closeVault()","1897bcf3":"sellToken(uint256,uint256)","1898a1c7":"addVendor(address,string)","189959de":"EXPC()","1899f1ad":"setChargerAddress(uint256,address)","189a5a17":"nodes(address)","189ae13c":"numArbiters()","189af42f":"powsm(uint256,uint256)","189aff3a":"authorizedSupply()","189b11fc":"AddSeed(address[])","189b600c":"setNameHashByWriter(bytes32,address,bytes32)","189c94ae":"testFallbackStaticSig()","189ca316":"setVoteWeight(uint256)","189d165e":"setBurnRate(uint256)","189e688a":"ClaimDividend(address,address,uint256,uint256,uint256)","189eeebe":"isMembershipAllowed(address)","189f0197":"getPlayersPick(string)","189f4d34":"setMinUCCoinSellingValue(uint256)","189f9041":"mintCoreToken(address[])","18a08d2d":"TheTokenH()","18a0e773":"UnlockGrant(address,uint256)","18a17df1":"DataDump()","18a24b5b":"unlockToken()","18a30d16":"getResponse()","18a39c54":"payForward()","18a3aad2":"ReserveCoin()","18a4155e":"calculatePrice(uint256,uint256,uint256,address,uint256)","18a45c41":"_receiveFundsUpTo(uint256)","18a51621":"getReadableSupply()","18a54ecd":"mintTokenForPrivateInvestors(address,uint256)","18a6217d":"comments1()","18a66563":"AQI()","18a689aa":"getNamePicture(bytes32)","18a6bc32":"tokenDistributor()","18a6d58b":"addTokenTeller(address,uint256)","18a6d765":"BANKROLL_LOCK_PERIOD()","18a6dec5":"getCountTokensByGame(uint32)","18a7bad6":"setFreezeAdmin(address)","18a8fac9":"icoInvestment(address,uint256,uint256)","18a94030":"putStoWithBtc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","18a991f7":"setEmeraldPrice(uint256)","18a9cc1b":"isUser(uint256)","18a9f29f":"setMetadata(uint128,string)","18aaaa51":"registerTickets(uint256)","18ab8888":"paymentSortId()","18ab8c37":"timeToCalm()","18abb75c":"createLibraryBounty(string,string,address,uint256)","18abfdfc":"totalSupplyFromCrowdsale()","18ad052b":"safeTransferByContract(uint256,address)","18ad28af":"icoWasSuccessful()","18ae15e4":"DBC(uint256,string,uint8,string)","18ae19c2":"get(bytes32,uint256)","18ae21e8":"NuoYiLian(uint256,string,uint8,string)","18af26fe":"setRestrictedWallet(address)","18af4099":"PARALLELNETWORK()","18af5e74":"addressesDeposited(address)","18af7021":"force_refund(address)","18b03ceb":"remainderPurchaser()","18b0bdf7":"getMensaje(uint256)","18b0efb6":"isEmptyName(string)","18b123d5":"hasBeenApproved(address,uint256)","18b15e2a":"Ongo()","18b20071":"setCurrentPrice(uint256)","18b2739d":"giveEthJackpotAddress()","18b31f94":"registerLengthFunction(string,string,address)","18b322a4":"update_instant()","18b38777":"fuzexAccount()","18b3a119":"getCrowdsaleMaxRaise()","18b3b58b":"Hamza__Coin()","18b3c724":"forceRecoverCollateralOnBehalfOfRecurse(address,address,bytes32,address)","18b3cd45":"qwecoin()","18b40adf":"maximumCirculation()","18b437aa":"COMMERCIALPOINTCHAINSYSTEM()","18b49ba4":"AMPIToken()","18b4a702":"EPACOIN()","18b4a924":"week_max()","18b64d5b":"unmint(int256,uint256)","18b749c4":"payEther(uint256)","18b7bb11":"EthRoi()","18b7fed8":"deliverPresaleTokens(address[],uint256[])","18b8275a":"addUser(string)","18b919e9":"ROLE_WHITELISTED()","18ba4218":"countAssetEvents(bytes32)","18ba5cdc":"ownerAddToWhitelist(address,uint256)","18ba6973":"setTrainingFormulaContract(address)","18bb2edb":"maxRegistrants()","18bb7c08":"_setNameToAddress(address,string)","18bbedf4":"Bulletin()","18bcd3d0":"transferOwnership(address[])","18bd21f9":"_purchase(uint256,uint256)","18bd387a":"level_referrals_count_by_address(address,uint256)","18bd5108":"stopCrowdsaleTime()","18bd710b":"NewGirl(address,uint256,uint256,uint256,uint256)","18bd8dcb":"ufoodoToken()","18bdb1b0":"StartdateICO()","18bdc79a":"payOwnerOnly()","18bdffbb":"verifierAddress()","18bee97e":"Creator()","18bf0225":"etherFundsOf(address,address)","18bffce9":"voteToResult(uint256)","18c0e04f":"purchaseStake()","18c10ad0":"disabled(uint256,uint256)","18c1d9b2":"bonusWallet()","18c1fc68":"buyOne(address,address,uint256,bytes)","18c20f44":"entrarAJuego(uint256)","18c26389":"multivestMint(address,address,uint256,uint8,bytes32,bytes32)","18c2d4c9":"initialSingleWithdrawMin(uint256)","18c306bd":"checkSignatures2(bytes32,bytes,bytes,bytes)","18c3cf34":"EthPriceProvider()","18c41a80":"mint(bool)","18c48e96":"bitRegisters(address)","18c53aca":"tokenIsComponent(address)","18c5bddc":"PRESALE_THIRD_DAY_START()","18c5e3af":"addInvestmentProposal(uint32,bytes24,uint256)","18c5e502":"GetTime()","18c8bda5":"Procare()","18c93884":"_setCrowdsaleStage(uint8)","18c9ef97":"mintETHRewards(address,uint256)","18caa857":"emitJobBinded(uint256,uint256,bool)","18cc4c65":"startEngines()","18cd55f3":"canCreateGrants(address)","18cda1e7":"lockInternalAccount(address,bool)","18ce1a23":"BailOutToken()","18cee8a4":"setPlatformCommissionRate(uint256)","18cf1c25":"lookupDonation(uint256,uint256)","18cf85d1":"adminSetCityData(address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","18cfa483":"invalidate(address,uint256)","18d0073e":"startNextMilestone()","18d0122a":"upgradeAgentStatus()","18d0376c":"getFastGap()","18d0a7cc":"incentFundAddress()","18d0c322":"EtherLambosCore()","18d0eb93":"finalizeAndDistributeToken()","18d30bfa":"setLastMoveTime(uint16)","18d32128":"CLVRCrowdsale()","18d43f0d":"userTokensValues(address,address)","18d4b4b3":"COCCToken()","18d4e834":"getPrivilegeState()","18d62bc6":"PHXFlip()","18d6676c":"entityStructs(uint256)","18d69faa":"StopDistrib()","18d74c37":"deleteShare(address)","18d760be":"LogFinalize(bytes32,bytes32)","18d76b78":"CCIToken()","18d78358":"ICOCENTRAL()","18d80168":"startUnitRaffle(uint256,uint256)","18d80d4a":"check_prize()","18d84553":"calculatePayout(bytes32)","18d8ec5b":"validateWinnersCount(uint32,uint32,uint32)","18d8f9c9":"erc677token()","18d92a5d":"getRegistryDataCustodian()","18d95092":"domainOwner(string)","18d97731":"setPriceStep7(uint256)","18da0011":"treasuryContract()","18da650d":"WithdrawalInterCrypto(uint256)","18da754a":"setBuyMinLimit(uint256)","18dad1cd":"multiTransferFromValues(address[],address[],uint256[])","18db02e1":"etherToLEONRate()","18db0750":"contributionReward()","18db62fb":"checkValue(uint256)","18dcdfbe":"isRetirementAllowed(uint256,bool)","18dd97f0":"secondStageTokensForSale()","18de0afd":"getEnabled()","18deb066":"init(uint8,uint256,uint256,uint256,address[2],address[],uint256)","18debd27":"addWalletAddressAndTokens(uint256,address,uint256)","18def2a1":"DistributedCreditChain()","18df02dc":"Migrate(address,address,uint256)","18df11ee":"SpendingApproved(address,address,uint256)","18df6090":"mintBountytokens(address)","18dfcf7b":"_investorCount()","18e01199":"burn(uint256,bytes,bytes)","18e02bd9":"setTokenOwner(address)","18e0d683":"getBAI(bytes32,address)","18e124e4":"upgradePackageCountOf(address)","18e146f9":"InvestmentPolicyChanged(bool)","18e2d679":"describeTile(int32,int32)","18e2e4be":"getInvestor(address,address)","18e37cdd":"ITGToken()","18e3b44c":"setMemory(uint256,uint256)","18e3d998":"crowdSaleEndTime()","18e45427":"whitelistedContract()","18e4ac35":"isConfirmed(address)","18e4c3f3":"GMOON()","18e4d2db":"_AIExchangeSupply()","18e536bc":"comissionList()","18e6ab9c":"funding(address,uint256,uint256)","18e75a1c":"PresaleEDUSupply()","18e7eb4b":"PRE_SALE_1WEEK_BONUS()","18e857ab":"queried(uint256)","18e9e7ab":"listSimpleService(uint32,string,uint256,address[],address)","18eacb96":"GetDivs(address)","18ebcc8c":"takeOrder(uint256,uint256[5],uint256[3],bytes32[3])","18ecc6f4":"getTotalDividendsRounds()","18ece632":"superApprove(address,address,uint256)","18edf434":"_revokeConfirmation(uint256,address)","18ee00b6":"_changeRate(uint256)","18ee1b9f":"WithdrawEther()","18ee9d5e":"EtherIncognito()","18eeef80":"Wallet1()","18ef7adb":"transferAdvisorTokens(address,uint256)","18f0db29":"remainingBettingFor(uint256)","18f11de2":"BSSCoin()","18f2217a":"EPXtokenSupply()","18f2a0bb":"ownersConfirmedTransactions(address)","18f303a1":"SetInternalValues(uint8,uint256)","18f3a50d":"cooAddress2()","18f3fae1":"setOversight(address)","18f61c0d":"configRunTime()","18f729da":"founderLockance(address)","18f76a2c":"getCCH_edit_3()","18f7d5ad":"lastBlock_f13Hash_uint256()","18f80bb9":"createContract(string)","18f839bd":"Expensive()","18f873df":"chAllowTransfer(bool)","18f889c2":"setOracleGasPrice(uint256)","18f9266c":"talks(bytes32)","18f95486":"openPendingPartCrates()","18f96441":"getShipDetails(uint256)","18f96857":"Lazadex()","18f9b023":"addPayee(address,uint256)","18f9bdee":"allocationOpen(uint256)","18fa11ab":"revokeRequestorAddress(address)","18fa223a":"GGCT()","18fb75f4":"callDeposit()","18fc6513":"companyCurrentPeriod()","18fd3474":"HumaniqICO(address,address)","18fd8903":"refund(address,uint256,uint256)","18fdcaba":"getSumAmountOfDisputedDealsProDoctor()","18fe1a8d":"banToken(address)","18fed50a":"getLast4Bytes(bytes32)","18ff1361":"manualyMintTokens(uint256,address,uint256,int256)","18ff318d":"thorToken()","190038dc":"supplyAdjuster()","190042b8":"CARA()","19006185":"getNumRefundTransactions()","1900aabf":"CollectChips(uint256)","190108b5":"getAyantDroitEconomique_Compte_3()","190151c6":"_createNumber(uint256,uint256)","19018557":"COCToken()","19022f20":"TTT()","1902e902":"adjustEntitlement(address,address,uint256)","190377a5":"getCategory(string)","1903bbe0":"_getQueryStr(uint256,uint256)","1903c10e":"setPI_edit_3(string)","190406b3":"customExchangeSecure(address,address,uint256)","19045a25":"recover(bytes32,bytes)","19055df2":"preSaleTokenExchangeRate()","19058903":"NewPassProject(address,address,string,string,bytes32)","1905fbf6":"setNewWallet(address)","19062b8f":"settleTransaction(uint256)","190663e4":"setGreeter(string)","1906ff98":"getVotePrice()","19077dca":"resetOwnership()","1908c425":"m_leeway()","1909773f":"get_milestone_information(uint256)","1909787f":"NextMint(uint256)","1909d314":"GCPrightToken()","190a2688":"changePrices(uint256[3],uint8)","190a597b":"restartCrowdsale(address,uint256,uint256,uint256,uint256,string)","190a6aa9":"burn(address,uint256,bytes,bytes)","190a8613":"getNodeLeftChild(bytes32)","190a867e":"testThrowNoPartialTokens()","190bc9d4":"w_Advisers()","190bfa4d":"singleDVIPQty()","190bfcd0":"initialTokenValue()","190bfea8":"sellWei()","190c23c4":"adminSetTxFeePaidGame(uint256)","190c69a2":"unWhitelistUser(address)","190d9253":"testInitialContract()","190e4c77":"numOfProperties()","190e8266":"makeProduct(string,string,uint256,uint256)","190eaaba":"getDenominator()","190ef61d":"readAnalyticsMap()","190f4cfc":"doCalculate(uint256,uint256,uint256,bytes32)","190fe712":"payoutETH(uint256)","19110d05":"DTCC_ILOW_8()","19113b4a":"changeStatement(string)","19123c1f":"magnitude()","1912f84f":"BONUS2_LIMIT()","191313ae":"EndOfPayments(address,uint256)","191347df":"setStr(string)","1913742f":"appendSchellingSupplyChanges(uint256,uint256,bool)","191384d1":"viewMessage()","19141100":"bankRollDivest(uint256)","1914427f":"MultiSigWalletWithDailyLimit(address[],uint256,uint256)","19154616":"FART()","1916037d":"withReferrer(address)","19162a30":"getYumWithETH(uint256)","19165587":"release(address)","1916fcb7":"Galaxy100()","191723ed":"lockBalance(uint256,uint256)","191797df":"isStoped()","1917ab5c":"activate(string)","1917e6d1":"addDoctor(uint32,string,uint16,string,uint8,uint8,uint8,uint8,uint8,uint16,uint64,uint64)","19190495":"SimulateCurrentDate(uint256,string)","1919cf62":"allEthShares()","1919fed7":"setSalePrice(uint256)","191ad190":"open_free()","191af4bc":"thirdroundprice()","191b548e":"VIVACrowdsaleRound(bool,uint256,uint256,bool)","191b8260":"_createScene(string,uint256[],address,uint256)","191be7b7":"getQueryResults(bytes32)","191d7a7a":"TVToken()","191d8cd7":"passToken(address)","191e39b3":"setOwnerCut(uint256,uint256)","191e521f":"moken(uint256)","191e8daa":"_getRand(uint256)","191f06e7":"setEscrowFactoryContractAddress(address)","192014f4":"buyKeyWithReff(string)","1920b2a6":"BitOnBayToken(uint256,string,string,uint256)","1920ed48":"isOwner(uint32,address,address)","19213471":"addFRA(address)","192159a6":"ListingCreated(uint256,uint256,uint256,uint256,address)","19216c4d":"getPreIcoInvestorsCount()","19216e8d":"freezeForOwner(uint256,uint256)","19218eda":"secondTokenExchangeRate()","192193b9":"transferFrom(address,address,int256)","1921c454":"priceChangeBlock()","19220c69":"TAKLIMAKAN()","1922936d":"RegisterTransferBeneficiaryContract(address)","1922e9b4":"getJobApprovals(uint256)","1922ff39":"payOut(address)","1923350f":"ADVISORS_TOKENS()","19236b4e":"getSanTimeAlive(uint256)","192399d1":"vestingBalance(address)","1923a4a3":"issuePercentToReserve(address,uint256)","1923e5d4":"noActiveBallotExists()","19240661":"setTrusted(address)","19245155":"StartedSafeUnlock(uint256)","1924f74a":"PVP_INTERVAL()","1925259b":"ShroomFarmer()","19254e2e":"getInsuranceStatus(address)","19261e6f":"setERC20ApproveChecking(bool)","1926b63d":"savePost(bytes32)","1926de89":"readInt256(bytes32)","1927a754":"drainEther()","1927a8ea":"listFiles(uint256,uint256)","19287f3a":"withdrawBalanceAll()","1928b3cb":"getPosition(bytes32)","19291c74":"getGoldStatusLastauditid(address)","192a4422":"safeWithdrawalAmount(uint256)","192b3092":"mintPreAllocatedTokens()","192b3608":"Bond(uint256,string,string,string,uint128,uint128,uint128,uint128,uint16,string,string,address)","192b663d":"vestSupply()","192b7700":"CitrusCrowdsale(address,address)","192d65c9":"getRoundByRId(uint256)","192e571d":"getPlayerByName(string)","192e7a7b":"releaseFunds(address)","192ecd68":"getDistrito(uint256)","192f1076":"crowdsaleEndDate()","193080cb":"getLockedContract(address)","1930fc01":"FastmarketNetwork()","193115b4":"changeHiddenOwner(address)","193118fa":"CPCCrowdsale()","193237f5":"_isValidSignature(address,address,bytes)","1932bb33":"lastBlock_a12()","19337d6c":"setLink(string)","193402bb":"PRE_SALE_PRICE()","1934d55a":"isPermanentlyApproved(address,address)","19350aea":"nameFor(address)","19354750":"setRegistryLogic(address)","1935f8d2":"Instacocoa(uint256,string,string,address)","19362921":"CONTRIBUTORS_SHARE()","1936a8cd":"getSeedByWinner(uint256)","1936dd8f":"writeMessage(string,string,string,string,string)","1936e4be":"advisor()","19375602":"challengeOwner()","1937714b":"confirmDeployment(uint256,address,bytes32)","1937b7fa":"Burnfrom(address,uint256)","1938a238":"softcapInTokens()","19397ed0":"Transfer(address,address,address,address,uint256,bool)","1939805f":"TPPC2018Token(uint256,string,string,uint256)","1939c1ff":"transfer(address[],uint256)","193a4249":"minFunding()","193a824e":"_escrow(uint256)","193a8a83":"getCCH_edit_28()","193c114b":"transferTokensOut(address,address,uint256)","193c8da4":"AkikToken()","193c9be1":"getCreateShareToken(uint256)","193ccc20":"depositTokenToUser(address,address,uint256)","193d5b77":"getGiffBlock(uint32)","193df7ea":"addBlacklist(address,address)","193e06c4":"CalcPeriod(address,uint256)","193e6679":"MarginBanc()","193f69a1":"getPhaseBonus()","193fc711":"_getBeginIndexKey(uint256)","19404c2f":"replayAnserWithReferrer(uint256,uint256[],string)","1940a936":"isPregnant(uint256)","19424222":"approveAndCall(address,uint256,bytes32)","1942c3ce":"_transfer(uint256,address)","194307bf":"terminated()","19447eb6":"userStructs(address)","19449cb2":"changeAuthorizedCaller(address)","1944bc3d":"priceThresholds(uint256)","1946283a":"CarRegistrationFailed(uint256)","19465953":"changeInfo(string)","1946fdf4":"logicVersion()","19476244":"icoNumeratorPrice()","1947bd2f":"getMap(address)","194809a6":"finalistTeamFIFAIdsSet()","19483cd1":"checkHash()","19498426":"BOUNTY_REWARD_SHARE()","194a7adc":"CONNECT(uint256,string,string)","194b546b":"_addRec(uint256)","194b81d0":"TGxToken()","194c78d0":"setApp(string,uint256)","194c8e15":"Update_START_ICO_TIMESTAMP(uint256)","194d0de2":"createOrder(address,uint256,uint256,address,uint256)","194d297f":"canSend(bytes32,address,uint256,bytes)","194dee32":"setTokenForSale(uint256,address)","194e10ce":"run(bytes,uint256)","194e4acd":"reqvehreg(address,string,string,string,string)","194eb01c":"CimbomCoin()","194f4795":"getItemsLength()","194f8806":"setMigrationHost(address,address)","194f97ba":"setColorGreen()","194fe9a4":"transferWithBonuses(address,uint256,uint256)","195055f1":"isTransferable(address)","19507d2c":"allowedToTransfer()","19509649":"ImpactRegistry(address,uint256)","1950c218":"checkWhitelist(address)","195199f6":"setDeadline(uint256)","1951f9ba":"isRequestPending(address)","19530f76":"multiTransferFixed(address[],uint256)","19547404":"sendTokens(uint256,uint256,address)","1954f39e":"EndDate()","195629de":"initMETToken(address,address,uint256,uint256)","195743fc":"claimSMRforAll(uint256)","19583b05":"modifyCollectorAddress(address)","1958623f":"BitcoinPluse()","1958ccb1":"setParams(address[],uint256)","195977a6":"emit(uint256)","1959a002":"userInfo(address)","195aa377":"SportsChainToken()","195ad926":"authenticate(uint256)","195b616c":"_unmountSameSocketItem(address,uint256,address,uint256)","195d06ff":"addBigPromoBonus()","195de8a1":"CapReached(address,uint256)","195e38b2":"EnergyModulationProject()","195e8688":"Osiris()","195ec9ee":"getAllParticipants()","195f4807":"getTotalPayouts()","195fa903":"ownersNum()","195fd221":"issueAmount()","19608123":"Vetricoin()","1960d761":"AccommodationCoin()","19617fe4":"coinBurnIco()","19618a9b":"testDivideFractional()","196198fa":"getDepositWithdrawCount(address)","1962d041":"SayadyToken()","1962df71":"_performTransferWithReference(address,uint256,string,address)","19638ca5":"CryptolifeToken()","1963a0d1":"OWN_freezeAddress(address,bool)","1963a693":"IncreaseAllowance(address,uint256)","1963df66":"dtGetWorldData()","1964569b":"Aktium()","1964dcbf":"SCCCOIN()","19656b46":"teansferFrom(address,address,uint256)","1965e183":"MIN_TOKENS()","19663f7f":"TransferAmountFromBankAccountToAddress(uint256,address)","196667e4":"start_amount()","1966cdbe":"pickWinner(bytes32,uint256)","19677635":"TEAM_SALE_MULTIPLIER()","19679680":"emptyInactiveToken(uint256)","19682b09":"DonationDeposited4Doubling(address,uint256)","19689e76":"paySemiFinalWinner(uint256)","1968bf4f":"getPersonalStakeUnlockedTimestamps(address,address)","1968c160":"addPaymentDetail(address,bytes32,uint256)","1969c21a":"removePixelsFromMarket(bytes32)","196be409":"DLTESTToken(uint256,string,uint8,string)","196c16cb":"tokenPriceInEth()","196c9909":"_bounty()","196cd388":"isRangeInsideRange(uint256,uint256,uint256,uint256)","196e5c46":"sellSeeds()","196ecd25":"getOwnedCount(address,uint256)","196ee9c7":"remainingCats()","196f5851":"transferAgents()","196f9aa5":"getLedger(uint8)","196fa707":"GAMEMAGICERC20(uint256,string,string)","19711d67":"campaignDurationDays()","1972172b":"satLimit()","19726b4e":"TheGoDigital()","1972b464":"emitJobOfferPosted(uint256,address,uint256,uint256,uint256)","1972c8dc":"Eggfrenzy()","19739117":"checkSignatures(bytes32,uint256[3],bytes,bytes,bytes)","1973c5de":"icoPreEnded()","1973cae7":"nextPriceDate()","1973e795":"setWorkpointSupportCancel(uint256)","197425c4":"testSupplyOf()","1974a003":"_startAuction()","1974a540":"RoundIndex()","1975a9e7":"o_deus(bytes32,bytes32)","1976804a":"TTCoin(address)","19774b86":"bulkWhitelistInvestor(address[])","19774d43":"orderFills(address,bytes32)","19775795":"aquariumCost()","1977bd68":"pepePremine(uint256)","1977f5c6":"Anubis()","197828b1":"bucketHolding(bytes32,address)","1978658b":"setCaps(uint32[],uint256[])","1978a87b":"TokenERC20()","197a1976":"setInvested(address)","197a2820":"depositarLucro()","197a9187":"NodeAction()","197b9454":"paintingsCount()","197bc336":"holderAt(uint256)","197c0f3d":"createPool(address,address,uint256,uint256,uint256,uint256,uint256,uint256)","197c3555":"getPlace(uint256)","197c418f":"MyAdvancedToken7(uint256,string,uint8,string)","197cb5bc":"balanceLockedUp(address)","197d24ad":"changeModuleOwner(string,string,address)","197ea97e":"mintAsideTokens()","197f3c29":"notLike(address)","197f8a82":"claimReveralTokens(address,uint256)","197f9508":"_getExchgAddr()","19806d8e":"s11(bytes1)","19810f3c":"withdrawShares(uint256)","19811fc9":"TPOMZ()","1981d521":"participate(uint8)","19825187":"changeMinToken(uint256)","1982640c":"walletOf(address)","1982c626":"withdrawOverpay()","1982ed58":"ChangeReuseCashInHarware(bool,uint16,uint16)","1983111d":"getTotalCompositionPrice(uint256[])","1983f4c2":"getDivsBalance()","1984a063":"StarbaseEarlyPurchaseAmendment()","1984a906":"preallocatedTokenAmount()","1984d419":"getProvisionBalance(uint256)","1985a440":"ContractRegistry()","1985acf0":"checkLimit(address)","1985f54a":"getScribe(address,address)","19863bb7":"ReDraw()","19869555":"evacuateToVault()","1986bc55":"stopBatchAssign()","1986f704":"setTrigger(address,bool)","1986fd4d":"getAccountWhitelist(uint256)","1987b887":"setTokenPorter(address)","1987da04":"secondPreSaleDate()","1987e50c":"getSellerAddressPayment(address,uint256)","1988f6fd":"didWithdrawProfit(bytes32,address,uint256,uint256)","1989a5ba":"canDoLoop(uint256,uint256,uint256)","1989d175":"YEAR_THREE_SUPPLY()","198a2085":"isATrustedContract(address)","198a5423":"presaleFundingGoalReached()","198ae785":"payTrnsTax(address,uint256)","198b5d0d":"MinimumPoStokens()","198c1f97":"getKeysfromETH(uint256,uint256,uint256)","198c548b":"supplyTokensSaved()","198df3b9":"LoginCheck(bytes32)","198e2b8a":"create(string,string)","198fa9a3":"isSigned(address,address,bytes32,uint8,bytes32,bytes32)","19901f1d":"TokenSale(uint256,uint256)","19901f20":"removeMultipleAllowedAddresses(address[])","19902b40":"changeCardAttr(uint256,uint16[5],uint16[5],uint16)","199099dc":"updateAccountState(address,uint256,bool)","1990ad6b":"private_delPermittedRoll(uint256)","1990f521":"fundings()","199156e4":"generatePresaleHouse()","1991d34a":"getDataColla_AB_02(string)","1991d6ac":"moveTokensFromSaleToExchange(uint256)","19921ad2":"AuthStart()","199317cf":"mining_uncle(bytes,bytes,uint256)","199326cb":"lastBlock_a2Hash_uint256()","1993584b":"countSecondWinners()","1994ad1e":"founderEggSupply()","19950c5b":"withdrawUnprotectedFunds(address,address,uint256,bool)","1995333b":"burnFunds(uint256)","1995b86d":"changeServerState(uint256)","199676c7":"TOKEN_RATE_40_PERCENT_BONUS()","19973261":"assigner()","19978a49":"rejectRequestUnpause()","1998524c":"updatePriceBottomInteger(uint256)","1998a5c4":"RHC()","1998aeef":"bid()","1998fb75":"addCar(uint80)","19996d50":"DinosaurFarmer()","1999cf37":"CHINESE_EXCHANGE_BUYIN()","1999eca8":"attack(uint8)","199a620a":"acceptNegotiationOwner(address)","199ba9e8":"basicFunctionReturn()","199c8b74":"SecvaultTest()","199cbc54":"totalVested()","199d70f4":"forceWithdrawRejected(address)","199d743a":"bountyTransfers()","199ed01b":"weightOf(uint256,uint256)","199f0791":"withdrawCntr(uint256)","199f4045":"NewRisk()","19a04a33":"SetDraftOrder()","19a08058":"setDelay(uint256,uint8,uint256)","19a0e572":"unverifyAddresses(address[])","19a17468":"ENS(address)","19a1b54f":"WEI_PER_ETHER()","19a1c691":"_removeChild(uint256,address,uint256)","19a1f592":"BONUS_AMOUNTS(uint256)","19a231eb":"getMilestoneDisputes(bytes32)","19a278b9":"getBAddress()","19a2bfd8":"unreadMessageCount(address)","19a32f66":"setHashByProvider(address,bytes32,bytes32)","19a3d0bb":"getMyStrippers()","19a3e3c0":"getAllRevenue()","19a50f49":"numUsers()","19a51554":"scheduleNextAuction(address,address)","19a523b0":"Violated(string,address)","19a5ce51":"oraclizeGasExtraArtwork()","19a64104":"Lockup6m(address)","19a6b356":"updateStrategyLabel(bytes15,string)","19a72fef":"DroneEmployeeROS(address,int256,address,address)","19a7e59d":"assertEq4(bytes4,bytes4,bytes32)","19a876c2":"stopPubTrade()","19a9119f":"prolongedDuration()","19a96e72":"setCarrotsMultiplier(uint8)","19a9c2f1":"generateId(string)","19aaff86":"claimAllDividends(address)","19ab453c":"init(address)","19ac2756":"TIER1_RATE()","19ac74bd":"userCampaigns(address,uint256)","19ac8c0f":"payComission()","19adda2c":"fairsaleProtectionOFF()","19ae8994":"test1(uint256)","19aec48a":"endTimeNumber()","19aec6a9":"newThreadEvent(uint256,string,string,uint256)","19af1bd9":"WeiRaised()","19af6f48":"crowdsaleTokenSold()","19afa824":"setFactoryInterface(address)","19afdfe1":"showMigrationAmount(address)","19b0297d":"info_BalanceOf(address)","19b05f49":"accept(uint256)","19b09f9b":"payWinner(address)","19b1f94b":"getLastAuditPass(address)","19b24684":"updateEntity(uint256,address,uint256)","19b35f3d":"organisationIndex(address)","19b36162":"updateParams(uint256,uint256,uint256,uint256,uint256,uint256)","19b3fa4b":"removeEmitter(address)","19b500ef":"deposit_internal(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256,uint256)","19b5176e":"memberGroupNameHash(address)","19b587ad":"putCompanyOnsale(bytes32,uint256)","19b61c09":"createSaddle1(uint256,uint256,uint256,address)","19b64015":"connectorTokens(uint256)","19b667da":"setFinalizeAgent(address)","19b6eabe":"setBounty(bytes32)","19b7b0b4":"acceptBid(uint256,uint256,bytes32)","19b7d7bd":"getBudget(address)","19b97530":"setFundariaPoolAddress(address)","19b985b3":"fixamt()","19ba0b63":"getNumberOfProjects()","19ba567c":"cancelAddOwnerRequest()","19bad1b2":"Stage1MEI()","19bb3c3d":"Reddit(uint256,uint256,bytes,bytes)","19bba58b":"_updateInventories(uint256,uint256,uint16)","19bdfc7f":"returnTokensFromHoldProjectAddress(uint256)","19be28ec":"CurrencySwap()","19be65f0":"GetBalance(address,address)","19bece1b":"buytoken(uint256)","19bee474":"totalFundsDistributed()","19bf01c0":"firstLockTime()","19c02b27":"allowTransfer(address,uint256)","19c039bc":"airDropJoin(bytes32)","19c0737f":"WineChainToken()","19c2a5b5":"auctionClose()","19c2b4c3":"getLastRequestId()","19c2f201":"GEN0_AUCTION_DURATION()","19c32e0b":"hmacsha256(bytes,bytes)","19c38c66":"inPermission(address,bytes4)","19c46f51":"kscBatchBurnWhenMoveToMainnet(address[],uint256[],string)","19c47214":"getBlockVersion(bytes)","19c4e40f":"envelopeTypes(uint256)","19c54359":"createData(uint256,uint256)","19c55a31":"SearchByGit(bytes)","19c55cea":"cancelBid(bytes32,uint256,uint256,uint256,uint256,uint8,bytes32,bytes32,uint8)","19c5ab4b":"addAccountReader(address,address)","19c5b887":"bonusSize()","19c5b89c":"DToken()","19c5ef1b":"oneStepRate()","19c61b6f":"dealEndOffer(bool)","19c6c6cd":"THRD()","19c6eeb8":"getIPFS(address,string)","19c76700":"withdrawBankroll(uint256)","19c85a4d":"RakugoCrowdsale(uint256,uint256,address,address,address[])","19c87f1f":"toAddress()","19c8b591":"ChangeCurrencyAdditionFee(uint256)","19c97154":"getLastTicketTime()","19c9a4f3":"platformTokensAddress()","19ca6feb":"_appendSchellingSupplyChanges(uint256,uint256,bool)","19ca964c":"_isOperatorForTranche(bytes32,address,address)","19cae462":"difficulty()","19cb355d":"requiredStake()","19cbe072":"contractFallback(address,uint256,uint256,uint256,uint256,uint256,bytes32)","19cc02aa":"airdropped()","19cc1ec4":"maxContributionAmount()","19cddd4b":"hackoin(string,string)","19ce4432":"DMPhuongToken()","19ceb660":"Ticket_Price()","19d0f54d":"allowRecovery()","19d152fa":"vestingToken()","19d1997a":"supplyLimit()","19d1b6c6":"getRegistrationRight(address)","19d1d967":"MOAC()","19d2993e":"phase1DurationInHours()","19d2fe85":"_iD()","19d3237c":"setDataColla_001_002(string,string)","19d375f1":"isLeagueRosterContract()","19d3be48":"_getPartId(string,uint8,uint8,uint8)","19d40b08":"approved()","19d41c69":"ticket_price()","19d45925":"isJobHasFreelancer(bytes)","19d45a08":"launchContract()","19d46f71":"makeWeeklyInvest(uint256)","19d4c380":"setBestGuessSecondPlaceTentativeWinningPayoutDistributionHash(bytes32)","19d56f84":"BuyChestSuccess(uint256)","19d70e0b":"createSaleAuction(uint256,uint256)","19d7943a":"reLoadXid(uint256)","19d8ac61":"lastTimestamp()","19d9217c":"midTermHolding()","19d9c8df":"ScaleObs(address,bytes32)","19da8c99":"getICOStatus()","19dacbf8":"Deposit(address,bytes32,uint256)","19dad16d":"setOwnerCutPerMillion(uint256)","19dba3d2":"getBountyToken(uint256)","19dc2525":"closeChannelEcrecover(bytes32,uint8,bytes32,bytes32,uint256)","19dc831a":"withdrawHavvens(uint256)","19dd9455":"getContractTimestamp()","19ddd5a3":"_buyXname(bytes32,uint256,bytes32)","19de029a":"setBountyDuration(uint256)","19dec62a":"approveAgreement()","19e044f8":"MockToken(uint256)","19e06f20":"mintIssuerToken(address,uint256)","19e072ef":"updateStatus(bool)","19e0a0cf":"sendTokensWithLock(address,uint256,bool)","19e0eb0e":"currentBlockHash()","19e13c93":"winningTeamName()","19e1568c":"pause_1()","19e1d8d4":"Luckblocks()","19e1fca4":"allowed()","19e3897a":"UpdateUserExtraData2(address,bytes32)","19e3a1d8":"BoomstarterICO(address[],address,uint256,bool)","19e4540b":"getBankAccount()","19e5221a":"getBonusFee(uint256)","19e5bf3a":"Register()","19e5d0cb":"mintInPeriodCount(uint256)","19e66508":"ztToken()","19e6ab23":"icoDiscountLevel1()","19e6e158":"totalVotes(uint256)","19e740c0":"getNextVestingIndex(address)","19e77c34":"startSlotAt()","19e7998c":"votingInfo()","19e7fbc2":"totalEthPos()","19e82d86":"cfi_whitelist(address)","19e82e6f":"BrokerBank(address,uint256,address,address)","19e858e5":"processCollateral(address,address,uint256,uint256,uint256,uint256,bool)","19e860c1":"secondPrivateLockedAmount()","19e9e5de":"getGooProduction(address)","19ea61db":"testFailTransferDisabled()","19ea809b":"intercrypto_convert(uint256,string,string,address)","19ea8a98":"setPackSaleAddress(address,address)","19eae36b":"setMaxBlockPurchaseInOneGo(uint256)","19eaeccb":"getInfoCellLockup()","19eb4a90":"getValues()","19eb5dc6":"transferToken(address[])","19eb691a":"curUserId()","19eb8d48":"canVote(address,uint256)","19ecb310":"allocateTicket(address,address)","19eced6d":"mCURRENT_STATE()","19edc0aa":"minimalInvestment()","19ede85a":"Hydron(uint256,string,string)","19ee1f1c":"getPrizeFund()","19ee5bca":"BountyManagerEntity()","19f02ceb":"set(address,address,uint256)","19f1cded":"getStakedTeller(address)","19f1d7b0":"Kentkoin()","19f2b931":"removerAssinatura(string)","19f30aaa":"hire(uint64,address[])","19f353bb":"protectionPrice()","19f37361":"isToken(address)","19f3edec":"_released(uint256,uint256)","19f4ff2f":"setFeeRatio(uint256)","19f577b3":"placeBuyOrder(uint256)","19f8dee9":"isEthWithEnc(uint16)","19f97a46":"createContractPlace(string,string)","19fa55bd":"MinasAlbarit()","19fa8f50":"InterfaceId_ERC165()","19fa9f72":"DNNToken()","19fac8fd":"setCommissionRate(uint256)","19fb361f":"transferTo(address,address,uint256,bytes)","19fb52db":"mainPoolCutPercentage()","19fc36ed":"MIN_TRANSFER_TIMESPAN()","19fc3b9d":"getMyHolding()","19fc5b88":"minEthAmount()","19fc5dfa":"LogBeneficiarySet(address,address)","19fc9e54":"cashInvestment(address,uint256)","19fce740":"capCommitment()","19fd93f1":"unregisterSsp(address)","19feda7e":"addEmployee(address,address,uint256,uint256)","19ff1d21":"hello()","19ff7096":"cost_of_transfers()","1a000513":"getLotteryResultTotal(address)","1a0058f5":"getBatchInfo(uint256)","1a006503":"hasAlreadyClaimed()","1a009265":"setArrBoolField1(bool[])","1a013939":"gameStarted(string,uint256,uint256,uint256)","1a017f3f":"transferPrivileged(address,uint256)","1a026c96":"wallet1()","1a02af40":"tokensInAuctionsOfOwner(address)","1a038873":"FREEZE_TIME()","1a041463":"retryOraclizeSetProof(uint256)","1a04d5c5":"startingFeeBalance()","1a053713":"unblockTokenFunds(address,uint256)","1a05619b":"infoTier()","1a05ba8d":"setPI_edit_12(string)","1a06008a":"dividendFund()","1a069c72":"contribute(uint256,uint256,uint8,bytes32,bytes32)","1a0725ce":"wagerIndex()","1a0726df":"getHatValue(uint256)","1a080a7a":"placeBet(uint8,int8,uint256,uint256)","1a081330":"isSaleOpen()","1a08a7bf":"ConfigAction()","1a08b189":"setFounderAddress(address)","1a0919dc":"unregister(bytes32)","1a092541":"getDescription()","1a09510a":"index(address[],address)","1a0a8fae":"creditJackpotTokens(address,uint256,uint256)","1a0a9ac7":"KNOXV()","1a0abd34":"getMyDepositAmount()","1a0b1b86":"crowdPrice()","1a0b4656":"LiveStarsToken()","1a0bc596":"pandora()","1a0be73f":"DispatchHub()","1a0c3479":"decreaseApproval(address,uint256,bytes,string)","1a0c83f8":"buyerLastPaidAt(uint256,address)","1a0d77b9":"ClaimAmount()","1a0ddce9":"setRewards(address[],uint256[],uint256[])","1a0e722b":"LogDeliverEVN(address,uint256)","1a0f0bf1":"unrestrictedMintToPool(uint128,uint256,uint128)","1a0f2f5f":"BroToken()","1a0f518d":"updatePlayerBalance(address,int128,int128,uint256)","1a0faecf":"addNewMeme(uint32,string,string,string,string)","1a0fb847":"disperseRewards(address,uint256)","1a10cfc3":"delete_entry(uint256,uint256,uint256)","1a11415e":"PRIVATESALE_BASE_PRICE_IN_WEI()","1a120481":"enlist()","1a12e7a9":"setCreationFee(uint64)","1a144940":"codetokenIndexToOwner(uint256)","1a145c34":"getNumEthTweets()","1a148644":"newDocument(string,string)","1a14e94a":"buyAnimal(uint256)","1a14f128":"EventCreateAccessory(address,uint256)","1a14ff7a":"getD()","1a1542e6":"checkGameResult()","1a15b206":"holdTokens(address,uint256)","1a160fe9":"checkPermission(address,address)","1a170aa1":"buyTickets(bytes32)","1a1773f4":"otherchainstotalset()","1a182801":"createNewCertifier()","1a18e707":"setBlockReward(uint256)","1a197588":"availableAmount(address[3],uint256[4])","1a19b0da":"confirmEngineerQuest(address)","1a1a0d65":"distributeSRNT(address[],uint256)","1a1a0d76":"updateTopicDescription(bytes15,string)","1a1a4ed7":"HALVING_DELAY()","1a1a7993":"random(uint64)","1a1a8da8":"WebPay()","1a1aab46":"unlock_times(uint256)","1a1abe3d":"sizes(uint8)","1a1b8d08":"CompleteInit()","1a1c59e2":"setBidSubmissionProofsAdd(address)","1a1ceb11":"cloneProposal(uint256,string,bytes32,uint256,uint256,uint256,bool)","1a1dca07":"setLockFunds(address[],uint256)","1a1df394":"Play(bool)","1a1e01d5":"pushAllRemainToken(address)","1a1eea7d":"ProposalRequestSubmitted(bytes32,uint256,uint256,string,address)","1a1feae1":"txGasPriceLimit()","1a2084f1":"updateCreator(address)","1a209776":"isVerified(address,uint256)","1a21bb22":"PREVIPdeadline()","1a21c229":"gracePeriodMaxTarget()","1a2309f0":"CONTRIBUTION_MAX()","1a23bee3":"endOfROSCARetrieveFees()","1a24b91a":"setPriceFee()","1a24befc":"clearSaleSharesSold(uint256)","1a254884":"Coffeecoin(uint256,string,uint8,string)","1a256090":"sawan()","1a25e513":"upgradeProvider(address,address)","1a261fda":"scoreUp(address)","1a26ed1c":"validateReservedWindowSize(uint256,uint256)","1a2a4ab5":"withdrawDeadFund(address)","1a2a627c":"nextroundtotalsupplyGOTCH()","1a2ad007":"GetCurRoundInfo()","1a2b3431":"completeBooking(uint256)","1a2b3adf":"signedTransferFromHash(address,address,address,uint256,uint256,uint256)","1a2b4cd8":"airDropPool_()","1a2b6250":"canPerform(address,address,bytes32)","1a2c4334":"FortuneGodToken(address)","1a2c752a":"testLimiting()","1a2d3be8":"masterNodable()","1a2d72fb":"_api_PlaceBet(bool)","1a2d8629":"getinfo()","1a2e2b2c":"getHolderIndex()","1a2eaaeb":"Unicoin()","1a2f1640":"amountSecond()","1a300a98":"_setCooldownEndTime(uint256,uint256)","1a3057f3":"performAddToken()","1a30ec13":"ETHWallet()","1a311968":"roundICO()","1a3142bd":"depositAndWithdraw(uint256)","1a314552":"isUsernameExists(string)","1a31752a":"masternodes(uint256)","1a31e733":"WinningsClaimed(address,uint256)","1a327d97":"bitmask_rm(address,uint256)","1a3480b5":"rateDecimals()","1a34b59d":"OjtToken()","1a34fe81":"max_amount()","1a3538f3":"closeFailedInstallationAndWithdraw()","1a360f5f":"EWM()","1a363bf1":"giveMeTokens()","1a365f2b":"stampIndexToOwner(uint256)","1a3722b2":"grantPermission(uint8,address)","1a372eaa":"allPiranhasInfo(uint256)","1a3739ec":"getInitialReporter()","1a389eb9":"exploreFastenEMONTFee()","1a38fa06":"distributeBounty(address[],uint256[])","1a399698":"genDailySecondPrizeKey(uint8[4])","1a39d8ef":"totalAmount()","1a39e1cf":"addAffiliate()","1a3a67d8":"zGetGameID()","1a3ae67a":"getPlatBalance()","1a3b8bad":"CABoxCrowdsale()","1a3cb4f5":"getBalanceA(bytes)","1a3cd59a":"getInfo(uint256)","1a3d069b":"totalEuroUlps()","1a3d96ff":"IdentityManager(bytes32)","1a3dc39c":"getRewardPotSetting()","1a3de5c3":"_pay()","1a3e42d0":"setSignUpOnOff(bool)","1a3e5457":"validDestination(address)","1a3e91b9":"getTitle(bytes32)","1a421103":"getProperty(address,bytes32)","1a426550":"claimBounty(uint256,string)","1a429a0e":"SCND_CRWDSALE_RATIO()","1a433daf":"withdrawProposedAction()","1a437780":"orderOnFightAuction(uint256,uint256,uint256)","1a43c338":"compute()","1a44731c":"statePhase()","1a454ea6":"COMMISSION_RATE()","1a45fac7":"removeOwner(address,address,address)","1a463a7d":"amountReceived(uint256)","1a464fa1":"claimProductOwnership(bytes32)","1a470b6a":"SweepBalances()","1a476260":"indiFundAndSocialVaultDeposit()","1a4813d7":"setBaseRate(address[],uint256[],uint256[],bytes14[],bytes14[],uint256,uint256[])","1a488a60":"zpzToken(uint256,string,uint8,string)","1a48fb3a":"testDeleteLawyer()","1a49803b":"investWithSignedAddress(address,uint128,uint8,bytes32,bytes32)","1a4a1a6c":"benefactorsBalance()","1a4b746f":"CharacterRegistry()","1a4bcc4a":"validTokenBalance(address)","1a4be5d8":"HITSCoin()","1a4be6ff":"ConstantConfig(uint256,bool,bool)","1a4c24f9":"purchaseInternal(address,uint256,address)","1a4e0afd":"countBit(uint8)","1a4e1e78":"tips()","1a4e9a6c":"getWithdrawConfirmations(uint256)","1a4f5b67":"isFrontRunnerPeriodOver()","1a4fb653":"getGDemoc(uint256)","1a4fbee1":"committeesArrayIndexCounter()","1a514d97":"reActivate()","1a51a28c":"contributorsAllocation()","1a52691b":"refundForAll(uint256,uint256)","1a534fd1":"calcCanAcceptAmount(address,bool,uint256)","1a5375e1":"passTurn(uint256)","1a53cd90":"presaleBalancesLocked()","1a555b0c":"NewClonedToken(address)","1a55ad28":"_verifyProof(string,bytes,bytes,uint256)","1a55b8f7":"BACKUP_ONE()","1a582962":"isMintingFinished()","1a58349a":"fetchCreatedOrdersForPayerByAdmin(address)","1a5834aa":"start_game(string,string)","1a592bc1":"saasPayUser()","1a5ab391":"Wallet7()","1a5b189d":"NCASHTOKEN()","1a5b72c3":"endStage3()","1a5b8f96":"MAX_SITE_ID()","1a5bd7fc":"getTournament(uint256)","1a5d3b75":"getAssetIdOwner(uint256)","1a5d60bd":"removeBoard(address,address)","1a5dbe98":"iflea()","1a5e2110":"tokensPerEthPrice()","1a5e6f7d":"getOneBet()","1a5e7852":"kaliSupply()","1a5eba21":"invest(uint256,string)","1a5f9613":"DevMiningRewardPerETHBlock()","1a5f9bed":"exploreUsingETH(uint256,uint256)","1a620a3e":"AgriChainMasterContract()","1a6253ed":"ownerTransferPHX(address,uint256)","1a629b00":"AddTokensToMember(address,uint256)","1a62c928":"approveAllocation(address,address)","1a62f6f7":"escrowReturn(address,uint256,uint256)","1a63aa4d":"prolong(uint256)","1a64937b":"cleanupAbandonedGame(address)","1a64adae":"vestedTokens(address,uint256)","1a65569b":"placeBid(uint256,uint256,uint256,uint256,bytes32)","1a65d3c2":"SnakeFarmer()","1a65e283":"buyCountry(uint256)","1a668c42":"finishAirdrop()","1a67456e":"getNumberOfItemsByTypeAndOwner(string,address)","1a67d6e5":"MainSaleClosed()","1a68b1a1":"setRetirementManager(address)","1a690752":"UDCC()","1a695230":"transfer(address)","1a699085":"view64()","1a6a3c03":"GetEscrowOwner()","1a6af7b7":"currTime()","1a6b0e73":"addArts(address)","1a6b13e2":"changeMinimumTakerProtocolFee(uint256)","1a6becd6":"getAllDividends()","1a6c0983":"getShipSell(uint32)","1a6c6e38":"MagicStore(address)","1a6c9c0d":"withdrawStart(uint256[],uint256,uint256,uint256)","1a6d7561":"getFundingInfoOfPhase(uint8)","1a6dafa6":"getJackpotRoundEndTime()","1a6e2445":"changeRelease(uint256)","1a6ea411":"MANHATTANPROXY5THAVE()","1a6f1974":"disableNodeRegistration()","1a6f56a0":"balancesLocked2Y(address)","1a6fb342":"getTransferStatus()","1a700013":"inWhiteList(address,address)","1a700a95":"QWHappy()","1a701609":"HEAD()","1a70388f":"shareToWei(uint256)","1a70d015":"exchangesTokens()","1a715bcf":"lauToken(address,address)","1a71733c":"determineAllocation(address,address[],uint256[])","1a71d3db":"freezingBalanceNumberOf(address)","1a7303de":"eddToken()","1a73293d":"updateWhitelist(address,uint256)","1a750945":"vote03YesCount()","1a751b2c":"makeMonthlyInvest(uint256)","1a7626e7":"minimumFee()","1a76e30c":"BONUS_DAY2_DURATION()","1a776b3c":"reclaimSurplusEth(address)","1a787915":"startConditions(bytes32)","1a790a2c":"_setPowerPool(uint256)","1a79464e":"setFeeBurner(address)","1a799617":"revokeRound(uint256)","1a79bbef":"addAddressToMaster(address)","1a79c5de":"setTimeWindow(uint256,uint256)","1a7a98e2":"getDomain(uint256)","1a7ae0ba":"updateCostUSD(uint256)","1a7aed0e":"_checkMyAging(address)","1a7b11f5":"epoch_fund()","1a7b9fe7":"setCouponRatio(uint32)","1a7c6eb0":"getHalvingBlocks()","1a7c7105":"__load128(bytes)","1a7cecb2":"recoverAddressFromCooperativeSettleSignature(uint256,address,uint256,address,uint256,bytes)","1a7cf619":"round0StartTime()","1a7e0c50":"totalBaseLareSoldInPreSale()","1a7f8588":"IRE()","1a7facff":"rcn()","1a7fae47":"pubkeys2(uint256)","1a8012e4":"is_active()","1a809b02":"unpauseRefund()","1a81284b":"CCH_FGRE_1()","1a81a01f":"configContract(uint256,address[],uint256[],uint256[],uint256[],uint256[])","1a81c3a2":"getUserContract(address,uint256)","1a81e7b4":"getExtender()","1a82844c":"getERC721AmountPawn(uint256,address)","1a82eeb4":"ocpTokenContract()","1a833d3f":"trancheNumerator()","1a83690d":"Work()","1a841b1b":"configureFromStorage()","1a8432ea":"isUnLockedAccount(address)","1a844205":"SaintCoinWorld()","1a859db8":"rewardsAccounts(uint256)","1a85bd57":"_find(uint256)","1a85c6cb":"RandomNumber(uint8)","1a85f4fb":"UrlHint(int256)","1a85f7d2":"applySettings(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","1a860d91":"AddUser(string,address,uint256)","1a861d26":"maxLimit()","1a86430e":"calcTotalShareRewardFee(uint256)","1a86535a":"GetWhoSignedAVersion(string)","1a86ac4f":"initialAddressSet()","1a86d5b6":"sendToOtherBlockchain1(string,string)","1a871a2c":"playerCharacter(uint256,uint8)","1a88bc66":"slot()","1a88cc31":"getCommissions(uint256)","1a88f306":"transferFromContract(address,uint256)","1a8932d9":"allocated2Year()","1a8943dd":"overflowResistantFraction(uint256,uint256,uint256)","1a895266":"unBlacklist(address)","1a8a5de1":"citizensAmounts()","1a8a85f3":"checksum(address)","1a8af7a8":"restartMint()","1a8b1874":"endprivate()","1a8c7243":"presale_finish()","1a8dc392":"checkAddressTeamTwo(address)","1a8f8f3e":"MJCCToken()","1a8fc985":"INITIAL_TOKENS_PER_ETHER()","1a9069cf":"signDate(bytes32)","1a90f0c4":"numTurnsToRevolve()","1a918bdd":"addTraps(uint256,bytes,uint256[])","1a92e6da":"Veegotoken(uint256,uint256)","1a9360dd":"checkDate()","1a93d1c3":"getGasLimit()","1a93fa4b":"reorganizeSubUsers()","1a9425c1":"verified(uint256)","1a94d49b":"BASE_BET_ETHER()","1a955061":"numToWei(uint256,uint256)","1a95bc99":"GreatHarmon()","1a95f15f":"TICKET_PRICE()","1a968069":"multiSig(bytes32)","1a974bb5":"KOCMOC()","1a97d1fa":"CLASSYToken()","1a98d0de":"whitelistedParticipantsLength()","1a991f0d":"approveSpenderDecimalAmount(address,uint256)","1a9938aa":"activateAddress(address,bool)","1a994fd2":"addVideoGame(string,address,uint256)","1a99bed2":"VestingSent(address,address,uint256,uint256,uint256)","1a9a01fb":"removeGame()","1a9a0426":"setDecimal(uint8)","1a9aa710":"ownerAuctionCount(address)","1a9aea0a":"lockTransfer()","1a9b0b7c":"isWinner()","1a9b26a2":"decode(bytes,uint256,uint256,uint256)","1a9b70f2":"destroyBlockFunds(address)","1a9be331":"getFastExtra()","1a9bf9cf":"bountyTokens()","1a9c4571":"listEggsIds()","1a9caab9":"createGen0(uint256)","1a9d64c8":"publicsale_address()","1a9df17b":"OrderPaid(uint256,address,uint256,uint256)","1a9e3e18":"ownerBuyCut()","1a9f170d":"buyIcoToken1()","1a9f66c4":"StrimTeam()","1a9faa80":"setUpdateAddress(address)","1aa022bf":"UacToken()","1aa02d59":"set_fee(uint256)","1aa05ab6":"testSellTwoTokens()","1aa19567":"interruptLastRound()","1aa260c0":"withdrawAsSupporter(uint256)","1aa359ff":"newTokenContractAddress()","1aa37733":"AudCoinToken()","1aa3a008":"register()","1aa43078":"minTime()","1aa44efd":"createNamedDistrict(uint256,string,bool)","1aa49291":"Getter()","1aa57ec5":"TokenLab(address,uint256,uint256)","1aa58bd3":"isAetherClockAuction()","1aa5b55c":"stageTwoStart()","1aa5c70e":"getDAI(uint256)","1aa6e29f":"hasOneYearWithdraw()","1aa7655c":"START_TOKENS()","1aa7e54c":"dungeonDifficulty()","1aa859d0":"remTokenPairWhitelist(address,address)","1aa86370":"updateXIPFSPublicKey(string)","1aab7bb5":"setParamsPreSale(bool)","1aab9a9f":"holderCount()","1aabaffe":"WhaleToken()","1aac38c8":"addPhase(uint256)","1aacd03c":"checkNewPlayer(address)","1aad5bc2":"_getRarity(uint256)","1aad8b82":"calculatemortiesell(uint256)","1aadadaa":"getRegistrantFund(address)","1aadcc34":"convertGreyGreen(uint8,uint8)","1aadddea":"investorGiven()","1aae3460":"investedAmountOf(address)","1aaf39ff":"check_dividend(address)","1ab06ee5":"set(uint256,uint256)","1ab08c61":"albosAddress()","1ab1025c":"tokensOutInMarket()","1ab12b10":"CurrentDevFee()","1ab268d6":"getCompleteSetCostInAttotokens()","1ab27060":"Unapproved(address,address)","1ab2935c":"VestingScheduleRegistered(address,address,uint256,uint256,uint256,uint256,uint256)","1ab30817":"gasLimitForOraclize()","1ab3a6c8":"getParentsForTokenId(uint256)","1ab3c515":"balanceOfLocked1Y(address)","1ab3d055":"removeAdminWhitelist(address[])","1ab46d4e":"referralBonusCalculate(uint256,uint256)","1ab51aec":"buyEPU()","1ab59612":"setAllowPriceLower(bool)","1ab5c5b8":"adduser(address,uint256,uint256)","1ab5d260":"transferTo()","1ab681e8":"withdrawEth(uint256,address,bytes32)","1ab733a3":"getTotalProfits(address)","1ab7df5f":"addUserTokens(address,uint256)","1ab86572":"calculateRoom(uint256,uint256,bool,uint256)","1ab8bc44":"_setMilestoneTo(address,uint256,uint8)","1ab8ff3b":"_finalization()","1ab961a1":"BSDB()","1ab971ab":"setFee(uint32)","1abb0ba9":"getTotalCurrentSaled()","1abb10e8":"chipSpeed()","1abb7192":"YCCToken(uint256,string,uint8,string)","1abca540":"Toptech()","1abd409d":"champsForSaleCount()","1abe8385":"InvestmentToken()","1abebea8":"LogSetAuthority(address)","1ac10d11":"testGreatherThanOrEqual()","1ac10f1f":"setPixelRate(uint256)","1ac14219":"testEns()","1ac25a81":"RegisterDrupal()","1ac25e99":"extractBalanceProofSignature(address,uint32,uint192,bytes)","1ac33b3d":"createTrack(bytes32)","1ac39336":"GelatoCoin()","1ac3ddeb":"withdrawFee(address)","1ac46290":"setProviderInfo(uint256,string)","1ac4754b":"redeemInternal(address,bool)","1ac47963":"functionSeven()","1ac589b4":"setJoiningFee(uint256)","1ac58dd5":"kimsCreated()","1ac5c96f":"test_4_someTest()","1ac61e8c":"testBlobCreate()","1ac68a12":"HavvenGoldSupply()","1ac7e1f9":"CollectedAllFees(address,uint256)","1ac8a9b2":"teamlock()","1ac8aa4e":"minimowea()","1ac9180e":"tokenReinvest(uint256)","1ac96124":"numOfCommon()","1ac975ed":"UcCoinPriceChanged(uint256,uint256)","1ac9f70d":"multiplicate(address)","1aca00fd":"variable(uint256)","1aca120b":"updateAnimalSpecial(uint256,bool)","1acb2719":"getNextRequest(address,address)","1acb7077":"setCentsPerToken(uint256)","1acbf6e0":"alfatokenFee()","1acc26bc":"disableLimit()","1acc478a":"getContentMetrics(address,address,bytes32)","1acc57b8":"AGENCY_TOKEN_CAP()","1acd8237":"LEK(string,string,uint256,uint8)","1ace02a3":"RaptorsvsWizards425()","1ace4d05":"bigAmount()","1ace88a4":"realWorldPlayerTokenForPlayerTokenId(uint32)","1acf6485":"requestWithdrawalFromLimit(uint256,string)","1acfd02a":"changeAdmin(address,address)","1ad065f1":"prepare(uint256,address,address,uint256)","1ad11fd1":"TrieToken()","1ad2ad1a":"stopPresale()","1ad50586":"safePower(uint256,uint256)","1ad509f0":"MUIcoin()","1ad6037f":"LEXInContract()","1ad607da":"_addUserCity(address,uint256)","1ad614c3":"setRequireAuthorisation(bool)","1ad66d21":"earlyPurchasesLoaded()","1ad781b4":"PennyGrab()","1ad7c199":"callVote()","1ad874b4":"presaleOn()","1ad8f65b":"distribute_for_founders()","1ad8fde6":"changeSymbol(bytes32)","1ad95744":"START_ICO()","1ad9f190":"getUserHotGoldBalance(string)","1ada70a8":"lockupDuration()","1adadda8":"claimLockedTokens(address)","1adb4842":"setLockup_jishis(address,uint256,uint256)","1adb631b":"distributePuppyCoinMedium(address[])","1adbdfab":"SimpleApproveTransfer(address)","1adc36b9":"doesUserOwnCeleb(address,uint256)","1add5486":"Multiownable()","1add6bcf":"getDoubleKeccak256(uint256)","1adda83a":"calculateTokens(address,uint256,uint256)","1adf2bec":"CancelOrder()","1adf2d1a":"Offer(address,address,bytes,uint256,uint256,uint128,uint256)","1adf42fb":"setPreICO(bool)","1adf692f":"_changeSquarePrice(uint8,uint256)","1ae0a693":"SetApplicant(bytes32[])","1ae0b4d0":"master5invest()","1ae0c787":"getControlInfoMaxTotalImbalanceList()","1ae2379c":"excess()","1ae32b82":"disallowReceiver(address)","1ae3a94a":"devFeeRate()","1ae3d8d0":"protectedBalance(address,address)","1ae460e5":"isInPool()","1ae4dfb7":"getcardPrice(uint256)","1ae638f7":"times6()","1ae6b6ee":"cancelAuctionWhenPaused(address,uint256)","1ae6c09c":"showMyAnimalBalance()","1ae6d375":"AirSwapToken(address,address,uint256)","1ae7341f":"OneledgerToken()","1ae743ad":"withdraw_token_and_eth()","1ae7b7fb":"jackpotSmall()","1ae7b8e1":"newOffer(address,string)","1ae7ef0a":"QISHENG(uint256,string,string)","1ae8494e":"purchaseTopCompany(bytes32,bool)","1ae879e8":"walletOwner()","1ae8ab81":"setNickname(bytes32)","1ae8fc87":"addContract(address,address,uint256,string)","1ae97bd9":"updateName(bytes32)","1ae9fe6a":"cutOffBidID()","1aea4d0f":"setMaxSend(uint256)","1aea558a":"auditReport(address,uint256,uint256)","1aeb10a6":"testApprove()","1aebcb89":"getProfitPerShare()","1aec2cf9":"Subscribe(address)","1aece0db":"PRE_SALE_END_TIME()","1aed001e":"_miningOneSelf(address)","1aed8e1e":"GigERC20(uint256,string,uint8,string,bool,bool)","1aedefda":"includes(address)","1aedf542":"ercOwnerClaim()","1aee3f91":"PRESALE_LIMIT()","1aef8058":"DECIMAL_MULTIPLIER()","1aefce3b":"ratioVote(bool,uint8)","1af11767":"CauldronsMinigamePresale(uint32,address)","1af217ab":"maxTokenPurchase(address)","1af26fc2":"isJobExpired(bytes)","1af2c9fd":"numberOfInvestors()","1af31d7b":"GetPoolEntranceFee(string)","1af32223":"get_owner(bytes32)","1af36a78":"level1(address,bytes32,uint256)","1af39907":"_inMoney(uint256,address)","1af476a6":"setEggTotal(uint8,uint256)","1af47cc7":"addSellTokensRequest(string,uint256,uint256)","1af48c85":"checkCertificates(uint256)","1af50c5e":"setDisbursementAmount(uint256)","1af5163f":"TokenBurned(address,uint256)","1af5205c":"period3Numerator()","1af526b0":"getSell()","1af5dd41":"balanceOfComision(address)","1af62808":"getLicensePrice()","1af6b60f":"ScamSealToken()","1af716ba":"transferFrom(address,address,uint256,string)","1af77842":"setE93ContractAddress(address)","1af82fbf":"viewDividendCooldown()","1af855f8":"Funding(address,uint256)","1af88bc1":"GetPatientFromAddress(address)","1af8c18a":"InitBalanceFrom961e593b36920a767dad75f9fda07723231d9b77(address,uint256)","1af97fb7":"getBabyGen(uint16,uint16)","1afa6542":"AirCoin(uint256,string,uint8,string)","1afaa8bf":"crowdfundPercentOfTotal()","1afc540d":"set_saleAddress(address)","1afcc95b":"getCCH_edit_21()","1afccfa5":"Proposal(address,address,address,bytes,bool)","1afd08a2":"setConfirmationTime(uint256,uint256)","1afd96dc":"withdrawForThreeYear()","1afe3e10":"getCurrentPhaseDivisor()","1afe56aa":"markRead(uint256)","1aff30dd":"getGameStats()","1affa814":"getProviderPriv(uint256)","1affcd7e":"createCollectible(uint256,address,uint256,uint256)","1b005a38":"authorizerOne()","1b00fe51":"testHypothesis()","1b011bd9":"test_insert_findWithHint()","1b027b44":"getBuyPosition(bytes32,uint256)","1b03316f":"getSecond()","1b044be7":"setFundScheme(uint256,uint256)","1b04803e":"contractModifierAddress()","1b04a435":"durationSecondsIco()","1b0569b2":"IPToken()","1b05aeb5":"WinMatrix()","1b05c594":"newGame(uint256,uint256)","1b05ea8c":"CheckPrepare()","1b06128b":"burnLeftoverTokens(uint8)","1b06ec3b":"getAllTransactionIdsByEntityId(address)","1b0710b5":"TOZToken()","1b073c67":"XGEToken()","1b0762bb":"remunerationBalance()","1b076edc":"dataSource()","1b07fcc1":"linkImpact(string)","1b082009":"getCrowdsaleBalance()","1b088f70":"computeLeaf(uint256)","1b08d96f":"ret()","1b0a102c":"getPrediction(uint256,uint256)","1b0a5d4e":"totalPartnerSupply()","1b0a68f2":"decreaseMintApproval(address,uint256)","1b0b906b":"getMyPlayedAmount(address)","1b0ba14d":"InvestmentFailed()","1b0c72dc":"isRecipientActive(address,address)","1b0cb61f":"_whitelistAddress(address)","1b0d320f":"FriendsCoin()","1b0db7fe":"getAllValuesSum(uint256[])","1b0dbdaf":"manualReserve(address,uint256)","1b0dc452":"isAnOwner(address)","1b0e25e2":"onInitialized()","1b0e3061":"BCW(uint256,string,string)","1b0eaf78":"stop_or_resume_Contract(bool)","1b0f5395":"ChargeNetwork()","1b0f7ba9":"proxy(address,uint8,bytes)","1b0fa385":"transfeFrom(address,address,uint256)","1b0fc106":"acceptChallenge(uint256)","1b107f7b":"storeUnlockData(uint256,address,address,uint256,bytes32)","1b112541":"getPTicketSumByRound(uint256,address)","1b118984":"TOKEN_ICO1_LIMIT()","1b12b60f":"canBuyTokens(uint256)","1b130063":"sendPrize(address,uint256,string)","1b131bbd":"_split(uint256)","1b136c6f":"getPlayerRounds(uint256)","1b13756a":"getFirstBorrowAgreement(address,address)","1b14cd05":"verifyLockSignature(bytes32,uint256,address,address,uint256,uint256,bytes32,bytes)","1b1665ca":"updateLimitPerMonth(bytes32,uint256)","1b1686b6":"currentEthInvested()","1b17595f":"registerTrack(bytes32,uint256,bytes32,bytes32,bytes32)","1b181e58":"getOverTokens()","1b189efb":"EURsToken()","1b18f952":"test01()","1b18ffac":"random(uint256,int256,int256)","1b195a7c":"buildAddition(uint256)","1b19f6a3":"removeReferrer(bytes32)","1b1a7a58":"multiSendToken()","1b1b6069":"initEachPUST()","1b1c15d5":"tokensForInvestors()","1b1c6acf":"getUintField3()","1b1ccc47":"getDSTName()","1b1d6af8":"_PLUTOToken()","1b1d95ff":"getPow(uint256)","1b1da1af":"updateSharePrice(uint256,uint256)","1b1e5d5d":"rejectMany(address[])","1b1ef88d":"authorizedByUser(address,address)","1b1f2fb8":"preTGE()","1b203b9d":"checkAndCloseRound(bool)","1b2051f6":"tempTokensPeriodOf(address)","1b208786":"delegatedTransfer(address,address,uint256,uint256)","1b2212f5":"forbidDirectDebit()","1b23cfd2":"AceguyToken()","1b258d50":"withdraw(bytes32,address)","1b25d0e6":"POST_ICO()","1b26fa6a":"priceStep1()","1b27274b":"testPure()","1b27c873":"advisorsTokensFirstReleaseTime()","1b27c8f2":"takeBountyTokens()","1b27ca21":"MonthsProfit()","1b27e705":"_forwardFunds(uint256)","1b28591c":"escapeFunds(address,uint256)","1b28985e":"MotorToken()","1b29d70a":"weiRefund()","1b2a8715":"notIn(bytes32[],bytes32)","1b2ace9d":"lockedProvider(address)","1b2ae899":"removeModule(uint8,uint8)","1b2ae964":"BuyPriceChanged(uint256)","1b2bd803":"issueAtIco(address,uint256,uint256)","1b2be5f8":"transferredAtSupplyValue(address)","1b2bf378":"BLM()","1b2d26e9":"OwOWorldToken()","1b2d515f":"setA(bytes32)","1b2d93a0":"load(address,bool,address,address,address,address,address)","1b2dba8c":"setCertifierId(address,string)","1b2e4002":"LIZAToken(string,string,uint8,uint256)","1b2f1109":"sntController()","1b302a16":"tokenUnpause()","1b31abda":"getGameDetails(uint256)","1b31c5c2":"RESERVED_TOKENS_OPERATIONAL_EXPENSES()","1b328100":"valueToBeSent()","1b33157a":"buyTickets(uint256[],uint256,bytes)","1b33a497":"tranferToReserve()","1b33d412":"offer(uint256,address,uint256,address,uint256)","1b346a63":"testMoveWithTrust()","1b34737f":"setSCoinContractAddress(address,address)","1b347aae":"retrieveToken()","1b354a30":"kscIncreaseApproval(address,uint256,string)","1b357750":"setLegacyNFTAddress(address)","1b35f56f":"getCurrentlyRunningPhase()","1b360912":"transferTokensFromPartnersAddress(address,uint256)","1b369fad":"removeBlockListed(address)","1b36cbfc":"EtheremonDataEvent(address)","1b370abb":"getPreviousNode(bytes)","1b37cb3e":"VOCOToken()","1b3821e8":"addSentMessage(address,address,uint256)","1b385f34":"buyOmegaEgg()","1b3878f5":"addToEmployerTotalPaid(address,address,uint256)","1b391d09":"benefeciar()","1b393b9a":"emergencyRelease()","1b394dce":"_chkBuyerLmts(address,uint256)","1b397d79":"OurBank(address,address)","1b39f3d7":"timeset()","1b3a8e6f":"directionCount(int256,int256,int256,int256)","1b3a91ac":"addTiers(uint16,uint256[],uint256[])","1b3aaf06":"setRspTokenAddress(address)","1b3b5742":"PayJackpot()","1b3c72aa":"getAddressLevel()","1b3ca096":"MarketBase()","1b3d36de":"calculateToken(uint256)","1b3d803f":"TokenRegulatorService()","1b3e100d":"PRE_ICO_PRICE()","1b3e2002":"giftRock(uint256,address)","1b3e704a":"supplyICO(address)","1b3e8cda":"isEthPayable()","1b3ed722":"multiplier()","1b3efd15":"claimrefund(address)","1b3f2fd3":"checkAvailableTokens(address)","1b3f8a67":"addToSyncList(address)","1b3fddb8":"PRESALE_BONUS()","1b3ff96f":"getForecastCount(uint256,uint256,bool)","1b4032f5":"lastBlock_f7Hash_uint256()","1b40ee88":"sellArtwork(uint32)","1b411fc8":"createRound()","1b413d27":"getLuck()","1b414708":"hasDisclosureAgreement(uint256)","1b41c096":"setStartsAtUTC(uint256)","1b41c134":"UsernameDoesNotMatch(bytes32,bytes32)","1b426d8d":"LOG_ProofFailure(bytes32,address)","1b42b7ab":"decreaseSalesBalance(address,uint256)","1b42f904":"LogFreezerAddition(address,uint256)","1b437d0c":"compareLastCalldata(bytes)","1b44a5ef":"handleSingleItem(address,uint256,uint256,uint256,uint256)","1b44f449":"Chain3()","1b45c301":"assetManager(bytes32)","1b4646bf":"setReferalsMinInvestLimit(uint256)","1b464764":"withdrawAdvisor(address,uint256)","1b468ed8":"addHandlerToWhitelist(address)","1b476945":"devTokensIco1()","1b477633":"determinePlayer(bytes32[],bytes32[],int256[],uint8,bytes32,bytes32)","1b47dbbe":"IdentityVerifier(address)","1b482452":"getWinnerUrl(uint256)","1b49d82b":"joinClub(address)","1b4a2001":"minReserve()","1b4a93aa":"SetupFuseaNetwork(string,string,uint256,uint256,uint256,address,address)","1b4b1cfa":"isICOPeriod()","1b4b546f":"ChooseA()","1b4c19ac":"startSale(uint256,uint256,uint256,address,uint256,uint256)","1b4c5a10":"SupportFund()","1b4c84d2":"isTradeable()","1b4cd2de":"ICO_START_TIME()","1b4cd4ef":"depositPAXTR(uint256)","1b4d02c2":"cryptoAgent()","1b4d18c1":"rateOfSpecificTranche(uint256)","1b4f4285":"notifyNewAccount(address,address)","1b4f6c46":"acceptOwnership(bytes32)","1b4fa639":"ownerFinishContract()","1b4fa6ab":"getDefaultStackCheck()","1b503a09":"LogRmUser(address)","1b50ad09":"updateDuration(uint256)","1b5171f0":"BountyKilled(uint256,address)","1b517663":"mintPriceOffset()","1b520b68":"lethalBonusAtHitsLead(uint256)","1b52abde":"redeemRestore(address,uint256)","1b531d4b":"settings_added()","1b538bcc":"getCurrentVotes(uint256)","1b542aa7":"Swob()","1b55ba3a":"Start()","1b55c148":"BidPlaced(bytes32,uint8,address,uint256,bool,int32)","1b55ec45":"getTokenToBurn()","1b55fe4e":"setFourthAddressBalance(address)","1b561fe7":"getSeniorContract()","1b5631de":"ManualChangeStartDate(uint256,uint256)","1b5710ed":"_deleteAllPackedRevisionTimestamps(bytes32)","1b580620":"setOwner1(address)","1b58c88f":"restoreOwner(address)","1b58c943":"getNBallots()","1b5a8da6":"giveEthBankrollAddress()","1b5ac4b5":"abs(int256)","1b5ae2f7":"day0x1(address,address)","1b5c16bf":"setTargetRepMarketCapInAttoeth(uint256)","1b5c9ae3":"get_etc_balance(address)","1b5df453":"addUserWhoSell(address,address,uint256,uint256,uint256,uint256,uint256,uint256)","1b5e42f5":"amountOfUnitsOutsideAdminWallet()","1b5e75be":"evalParams(bytes32,address,address,bytes32,uint256[])","1b5ee6ae":"mintToken(int256,address,uint256)","1b5f03a6":"getRoute(string)","1b5f6cea":"P3DtoTokens_(uint256)","1b61a179":"mulbonus()","1b61f340":"finishADrop()","1b6282e3":"issuerDelegate()","1b64b172":"core(uint256,address)","1b65144d":"burnTokensForSale()","1b6527b4":"GetAssignedAddress(uint256)","1b655054":"dataAddress()","1b660f15":"EthIdentity(bytes32)","1b66303d":"request(bytes32,uint256,uint8)","1b66cb00":"setTargetToken(address)","1b672154":"setMEAAttributes(uint256,uint256)","1b677b08":"total_snt_claimed()","1b67ab2b":"StreamNetworkToken()","1b688565":"PUBLIC_RESERVED_PERSENTAGE()","1b697bb2":"setBuyerAddress(address)","1b6aa580":"developer_new_address_for_funds(address)","1b6ad60a":"transferFromWithReserving(address,address,uint256)","1b6aed05":"grant_token_from_offchain(address,uint256,string)","1b6b405c":"UnableToAcceptPayment(address,bytes8,uint256)","1b6b6d23":"LINK()","1b6b8656":"setBureau(address,address,address)","1b6bb739":"getThreeLastInvestors()","1b6bc433":"addMemberAcct(address)","1b6c104e":"marketingAllocationTokenSend(address,uint256)","1b6caad9":"setPersonaAttributes(bytes)","1b6e37ee":"thirdWeekBonusInWeek()","1b6e66aa":"rescueInvestor(address,uint256)","1b7035ea":"getAccountStatus()","1b709561":"UnlockCredits(address,uint256)","1b70a2e1":"TerpCoin()","1b72194f":"getUserDivs(address,uint256)","1b72410b":"EladCrowdsale()","1b728ed4":"getAssetRawMeta(uint256)","1b748399":"TeamCoin()","1b753dad":"Mithril()","1b75738a":"enable(address[])","1b760719":"addMember(address,string,uint256)","1b7623be":"payInterest(address,uint256)","1b76929c":"getActiveGames()","1b769e74":"testThrowsRestartNotUpdatable()","1b76dd7c":"disapprove(uint256,string)","1b773df1":"withdrawAll(string,uint256)","1b775638":"ContributionReceived(address,bool,uint8,uint256,uint256)","1b776808":"_updatePixelMapping(address,uint256,uint256,uint256,bytes32,bytes32)","1b78240f":"Fixie()","1b78e3c4":"processHunting(uint256,uint256,uint256[])","1b7949e2":"supply_increased()","1b79a2f3":"lastStageSubmitted()","1b79d406":"getWhoPiad(uint256,address,address,address,address,address,address,address)","1b7aad1b":"AMOUNT_TOKENS_FOR_SELL()","1b7b7b0d":"latiumBalance()","1b7b7c3d":"Partnership(address[],uint256)","1b7bbecb":"challengeExists(bytes32)","1b7be47e":"STQToken(address[])","1b7c058e":"getLicensePrice(address)","1b7ccc3d":"_registerLockedDeposits(bytes32,uint256,uint256)","1b7ce6f3":"disableTokens(uint256[])","1b7cf899":"recentActivity(uint256)","1b7d5f8c":"release18m()","1b7d83e5":"addDefaultOperator(address)","1b7d8aaf":"End8()","1b7db340":"sysAdmin()","1b7e0902":"getcardOwner(uint256)","1b7e78f6":"updateFirstChangeBlock(uint256)","1b7f00c1":"purchaseBundle(uint8,string)","1b800a3d":"watchPreferersTasks(address,uint256)","1b814f02":"splitFunds()","1b8202a7":"LegalContractManager()","1b825e89":"detachmentTime()","1b82f68f":"kingdomFactory()","1b83b823":"notifyPlayer(uint256)","1b841fea":"nextDerivativeTokenTime()","1b848606":"blacklistEscapeToken(address)","1b84e72d":"_createEscrow(address,address,uint256,uint256)","1b851e10":"LogDeposit(address,uint256)","1b855044":"getHash(uint256,uint256)","1b85aa49":"MIN_INVEST()","1b862027":"save(uint256)","1b8689b6":"getInvestorTokensPurchasesLength(address)","1b878f71":"setUpgrader(address)","1b87945e":"buyPointer(bytes32,bytes1[64])","1b87ccae":"getAssetIdItemType(uint256)","1b87d58a":"bonusMin()","1b88094d":"getRecipient()","1b880bcf":"KareToken()","1b89ee31":"closeBridge()","1b8a0b46":"WowDiaondToken(address)","1b8a9031":"BetPlaced(uint256,address,uint256,uint256)","1b8ab64d":"testTodo()","1b8b13a7":"getRewardPool()","1b8b3605":"setInvestorList(address)","1b8b4787":"TOKEN_SALE2()","1b8b921d":"call(address,bytes)","1b8bd57c":"getCardInfo(uint32)","1b8beafe":"BLOCK_DURATION()","1b8ca217":"getProperties(uint256)","1b8d0e60":"getMyBanker()","1b8db774":"_deadline()","1b8de48c":"distributeTCASH(address[])","1b8e61c7":"setEndTimePreIco(uint256)","1b8e94a1":"Rate()","1b8ef0bb":"getRemainingCapacity(uint256)","1b8f2610":"quickCloseChannel(bytes32,uint256,address,uint256,address,uint256,bytes,bytes)","1b8f3d23":"krakenTicker()","1b8f5d50":"multi()","1b8f66a4":"watchedURL(string,string)","1b8fc2f0":"setAllowedAddress(address)","1b8fc6e4":"marketorsTotalBalance()","1b900c27":"anotherOwner1()","1b924b7e":"enableInterface(string,address)","1b9265b8":"pay()","1b929940":"pushIntArray(bytes32,int256)","1b92ce6b":"WOCC()","1b93aa8d":"getPackage()","1b93f66d":"claimedAirdrop(address)","1b9414ae":"itemBid(uint256)","1b94198d":"sellingAccepted()","1b94413f":"transferEth(bytes32,address,uint256)","1b949f85":"lockContractOwner()","1b953909":"authorizeOperatorTranche(bytes32,address)","1b955df4":"changeRefund(uint8,uint256,uint8)","1b962c65":"decodeCurrency(bytes32)","1b963742":"AwesomeToken()","1b968160":"wipeAndFree(address,bytes32,uint256,uint256,address)","1b96b2f9":"masterMint(address,uint256)","1b97429d":"EthToUsdChanged(address,uint256,uint256)","1b981d7f":"packedToSubmissionBits(uint256)","1b987c41":"retrieveExternalTokens(address,address)","1b98c54f":"getProviderCurveLength(address,bytes32,int256)","1b98cd68":"updateAffiliate(address,uint8)","1b98f6ac":"setProviders(address[])","1b9900b8":"userRollDice(uint256)","1b995aa7":"BitCompare(uint256,uint256)","1b998dac":"updateMCs()","1b9a91a4":"withdrawEth(address,uint256)","1b9b0b23":"KruhftsToken()","1b9bfa3a":"_oldOwnersOf(uint256)","1b9c7f31":"Werbecoin()","1b9cbdfb":"priceOfToken()","1b9ceef1":"purchaseTokenInPublicSale()","1b9d1bed":"setPOOL_edit_18(string)","1b9d4c8e":"setBudget(address,address,uint256)","1b9db2ef":"getParticipant(uint256)","1b9dbcaf":"kittensIssued()","1b9e16ad":"getAccountInfo()","1b9e9a27":"createComponent(string)","1b9f9647":"accessMyWallet(address)","1b9fec58":"getBlockToHashForResults(uint256)","1ba1648a":"changeTokensOwner()","1ba1f10b":"updateTaxPercentages(uint256,uint256)","1ba22084":"ecadd(uint256[3],uint256[3])","1ba23f1e":"setAllowedMultivest(address,address)","1ba326c4":"calcShare(uint256,uint256,uint256)","1ba39a4c":"calcMult(uint256,bool)","1ba3afd3":"getLocalGame(uint16)","1ba46cfd":"assetAddress()","1ba527d6":"gkAddress()","1ba54100":"distributeEbyteForEBYTE(address[],address,uint256,uint256)","1ba5b3e8":"currentTotalAirdrop()","1ba5e63f":"tournamentQueueSize()","1ba5eec0":"nextTurn()","1ba60f9b":"availableDgxNg()","1ba6e1bd":"externalPurchase(address,string,string,uint256,uint256,uint256)","1ba7013b":"distributedBountyTotal()","1ba83c3c":"ChargingGas(uint256)","1ba88666":"isBiometricLockedOnlyOwner(address)","1ba8ef21":"electrolightTestnet()","1ba9146e":"PethToken(uint256,string,string,uint256)","1ba91c20":"foundationMultisig()","1ba9998b":"advanceRound()","1baaeb91":"getSignature(bytes4,uint256)","1bab0908":"hasValidParam(address,uint64,uint64,uint64,uint64,uint64,uint64)","1bab8148":"fulfillMintRequest(uint256,string)","1bacbf4e":"secureTransfer(uint256)","1bacfd66":"Vote(address,bytes)","1bad1d2e":"monitorWallet(address)","1bad3903":"stakeWithCurrentPeriod(uint256)","1bad5558":"withdraw3(address)","1bad9e8f":"getUserTokenInfos(address,uint256)","1bada3c0":"closeKYC()","1badbd5c":"increaseAssuranvePayments(address,uint256)","1badfbae":"setWhitelistBallot(address,bool)","1baf1494":"QToken(address,uint256)","1baf7122":"custodyStorage()","1baf823f":"NewUsername(address,string)","1bafc373":"confirmNewHash(uint256)","1baffe38":"withdrawEtherTo(address,uint256)","1bb00447":"CryptonomicaVerification()","1bb02ffb":"MWAV()","1bb0b762":"A2ABToken()","1bb0c665":"toHexString(address)","1bb1151a":"Error(uint64)","1bb1bf2e":"team1Query()","1bb2921b":"getProjectedPayout(uint16)","1bb3fb67":"operatorSendTranche(bytes32,address,address,uint256,bytes,bytes)","1bb4067b":"checkPoolDone(uint256)","1bb409c4":"QueryBonus()","1bb460cc":"ContributionReceived(address,uint256)","1bb47b44":"appendVestingEntry(address,uint256,uint256)","1bb534ba":"fundingRecipient()","1bb58beb":"RECToken(uint256,string,uint8,string)","1bb5f0a2":"registerBarcode(bytes9,string,string,string,string,string,string)","1bb63d0c":"Nova()","1bb6cb47":"getPlayer2()","1bb73a2a":"batchCreateAuthorDrawings()","1bb797da":"isIcoStage()","1bb7c3c2":"UpdatedDonationAddress(address)","1bb7cc99":"WHITELIST()","1bb8365f":"calculateGoldBuy(uint256,uint256)","1bb96dff":"AuctionStarted(uint256)","1bbb4f63":"LogMoneyline(int256,int256)","1bbb696a":"swapContracts(address)","1bbb9a99":"claimEthers(uint256)","1bbc4b83":"ERC20Interface()","1bbc7952":"getPropertySalePrice(uint16)","1bbc99c6":"UpdateDividendPartners(address[],uint256[])","1bbce9a2":"bidState(bytes32)","1bbe1813":"getTotalSpecials()","1bbe2ff3":"TransferEtherInitiationEvent(uint256,address,address,uint256)","1bbe9d8c":"addFunder(address)","1bbec4e7":"coldWallet2()","1bbef399":"isVoting()","1bbfb029":"addTx(address,address,uint256,string)","1bbfce0e":"bidOnBreedingAuctionTutorial(uint40)","1bbfdaaf":"selectElf(uint8,uint16)","1bc0585f":"stopTokenSale()","1bc08834":"stsc()","1bc125f3":"finishMintingSTO()","1bc2dd5a":"doesContractExist(address,address)","1bc390dd":"reconfig(string,string)","1bc3c855":"setWhiteListERC223(address)","1bc41284":"uncleRate()","1bc44200":"Dasabi_ioToken()","1bc44213":"MAX_BID_FRAC_BOT()","1bc4c81b":"QuizQuestion()","1bc4cdb9":"ReceiveFund(address,uint256)","1bc4d6b2":"XXXXToken()","1bc50b05":"canUpdateNextGamePotSplit()","1bc59aa6":"bountyAllocated()","1bc5ee1a":"transfer_eth_to_contract()","1bc84458":"getAddOnSupport(uint16)","1bca179b":"RentedBlock(uint256,uint256,uint256,uint256,address)","1bca5689":"havvensReceivedForEther(uint256)","1bca7d6d":"NigelFundSum()","1bca989e":"setTokenInfoMaxPerBlockImbalanceList(uint256[])","1bcad37a":"getTotalCost()","1bcb6fa2":"snapshotValidators(uint256)","1bcbce52":"isEarlyInvestorsTokenRaised(uint256)","1bcc9b1a":"TruPreSale(uint256,uint256,address,address)","1bcd57c7":"ContributionAmount()","1bcdb8e0":"responder(uint256,uint256,uint256,bytes5,bytes14,bytes5,uint256,uint256,uint256,uint256,uint256,uint256)","1bcdd57d":"writeNextId(uint256)","1bce6ff3":"begin()","1bceeaa7":"resell(address,string)","1bcf468b":"costOfToken()","1bcf5241":"countCliTasks()","1bcf5758":"getOccupies(uint8)","1bcf659d":"getMinTalent(uint256)","1bd0c431":"updateETH()","1bd13df1":"GetSummFee(uint256)","1bd16dbf":"preSaleDuration()","1bd2511a":"addEarlyAccessAddress(address,address)","1bd27296":"_fetchCancelledOrdersForMerchant(address)","1bd2b37c":"isMasterRecruitment()","1bd2c21c":"playBigger(uint256[])","1bd2d4cc":"getNextIndex(uint8)","1bd3553e":"TheTokenA()","1bd5363c":"getBPaddress()","1bd5d127":"NaviToken()","1bd60ae9":"buyerBalance(address)","1bd61eee":"updateHeartBeat()","1bd6f596":"right56(uint256)","1bd6fb9f":"LockedFunds(address,uint256)","1bd72647":"round0Target()","1bd8b041":"PRICE_INCREASE_SCALE()","1bd8f9ca":"challengeFee()","1bd95155":"stringToUint(string)","1bd983a4":"PlaceSellOrder(uint256,uint256)","1bd9a7e7":"LogNewWhitelistUser(address,uint256)","1bd9c46e":"setImporter()","1bda6d55":"publicSaleSoldTokens()","1bda84b3":"getOfferIdsByToken(address)","1bda8781":"Taouaf(uint256,string,uint8,string)","1bdb3f65":"ZoomToken()","1bdbabdd":"registerProduct(uint256,bytes32,bytes32,uint256,uint256)","1bdbce49":"setWhitelist(address,address,bool)","1bdc4038":"_updatePurchasingState(address,uint256)","1bdd193a":"placeStar(uint8,uint8,uint16,uint256)","1bddcf48":"_asyncTransfer(address,uint256)","1bde9998":"getWhitelistStatus(address,bytes32,address)","1bde9bc1":"rebatelvlEconomy(string,string,string,string,string)","1be05289":"DURATION()","1be0717f":"_reward()","1be0f1ad":"getSpinOutput(uint256,uint256,uint256,address)","1be0f793":"USDExchange(address)","1be16003":"Answer()","1be1bf7f":"TessrX()","1be20ca1":"TokenCAP()","1be22528":"TechnicalRise()","1be3175e":"mortgage(uint256)","1be35b0c":"statusOperation()","1be4aaa1":"getTokenInfoHeritor(address,address)","1be4da5b":"MateriaPrima()","1be64997":"BucketCreated(bytes32,uint256,uint64)","1be6ce57":"decreaseOwnershipTokenCount(address)","1be6dd64":"points()","1be70510":"acceptAdoptionOffer(bytes5)","1be73e2b":"_fhMoney(uint256,uint256,uint256,uint256,uint256,uint256)","1be7c5ef":"fullfillFounder()","1be863bf":"PushData()","1be88614":"onetimeLaunch(uint256)","1be8dbfd":"dsMul(uint256,uint256)","1bea4a61":"getObjIndex(uint64)","1bea67b7":"BFDToken()","1bea69e3":"isAdmin(address,string)","1bea8006":"tokenBalanceOf(address,address)","1beafada":"PROMETHEUS_PRICE_THRESHOLD()","1beb2615":"destruct(address)","1beb375d":"proxyManagementAddress()","1beb4b5e":"fetchAllVoteResultBySnapshotBlock(uint256)","1bebf13c":"sendOrderEvent(address,uint256,uint256,uint256,address,uint256)","1bef9059":"ProtocolToken()","1befcbaf":"buyRareEgg(uint8,uint256,address)","1befd26a":"setDesignatedReporterWasCorrect(bool)","1bf028b1":"OddMoney(address,uint256)","1bf049b9":"Prediction(uint24,uint24,bool)","1bf0635b":"setGoldFeeAddress(address)","1bf1de9b":"COMMISSION_PERCENTAGE()","1bf20668":"testAdminTransfer()","1bf219de":"Faucet(uint256,address)","1bf2a90a":"totalPostIcoContributorIdsAllocated()","1bf38b28":"addAccessor(address,address,uint8,address,string,uint32,string,string,bytes32,bytes32,uint8)","1bf426ba":"Spendelotto()","1bf498b6":"registAgent(address)","1bf57f41":"salesAddress(address)","1bf5b38a":"finalizeDonation(address)","1bf5f736":"endOfDay()","1bf651ff":"YBHY()","1bf678cf":"setOtherNTech3D(address)","1bf6ba7e":"_transferFromOwner(address,uint256)","1bf6c21b":"USD()","1bf6e00d":"frozenOf(address)","1bf6e939":"accManager()","1bf703b2":"addCategory(string,string)","1bf7628b":"firstHolder()","1bf7d749":"curves(uint256)","1bf831cf":"initialOperatorValue(address)","1bf8c094":"setOwnedToken(address,uint256,uint256)","1bf983a6":"getTokenInfoMaxTotalImbalanceList()","1bf9b325":"deletePublicKey(address)","1bf9b387":"setIcoRate(uint256)","1bf9def0":"Transferable()","1bfa5d8a":"hash_pubkey_to_pubkey(uint256,uint256)","1bfa90bf":"getIntField1()","1bfaf155":"foundersWallet()","1bfb7245":"tToken(address,uint256)","1bfba595":"incrementTotalIssuerCount()","1bfc596b":"presaleBonusAddressColdStorage()","1bfc8bd1":"setRequestIdToMultiRequestId(uint256,uint256)","1bfce853":"vestedAmount(uint256)","1bfd4858":"hash_db(bytes32)","1bfd6814":"TRANSFERABLE()","1bfe0308":"removeRole(address,string)","1bfe3508":"triggerRecoveryAddressChange(address)","1bfe7831":"AllLockAccounts(uint256)","1bfe783e":"MaxDropReward()","1bfea87f":"by(bytes32)","1bff4786":"etherDeltaInfo()","1bff4bfa":"beneficiaryTwo()","1bff4c07":"LukaCoin()","1c0019c4":"getCostForTrait(uint8)","1c014c60":"casinoBalance()","1c0183e3":"TweedentityRegistry()","1c02708d":"killContract()","1c02a63d":"SetEcosystemContract()","1c0463de":"isUpgradeAllowed()","1c05123d":"LicenseIssuer(string,string,string,uint256,uint256,address)","1c054b14":"bonusRangeCount()","1c057493":"withdrawERC721(uint256,uint256,address,uint256)","1c07f0a3":"getAccountKeys(uint256)","1c080404":"contributed3(address)","1c08366b":"tokenPCT(string,string,uint8)","1c084385":"WhitehatWithdraw(address,address,address,address)","1c085a21":"totalRaiseWei()","1c088897":"MINER_AUCTION_DURATION()","1c08c08e":"claimBond(uint256)","1c09496a":"transferWithSignature(address,uint256,uint256,bytes,uint256,bytes)","1c09c194":"testInsertMultipleProductsIntoCart()","1c0acbd5":"bidOnDklSiringAuction(uint256,uint256,uint8,bytes,uint256,uint256,bytes,uint256)","1c0ad646":"coreAddress()","1c0b6367":"processTransaction(bytes,uint256)","1c0bbe26":"createAccountForUser(address)","1c0c3d33":"mintAuthorizedBatchWithBalances(address[],uint256[])","1c0ce15f":"TUBE()","1c0d1274":"setCCH_edit_21(string)","1c0de1b3":"LogResult(bytes32,uint8,bytes,bytes)","1c0e0225":"minDonation()","1c0e7109":"addFreelancer(address,uint256[],address)","1c0f12b6":"transferFrom(uint256,address,address,uint256)","1c0f96bb":"ManagerProxyTargetMockV1(address)","1c0f9a7c":"requestEURPrice(string)","1c114b38":"canReadInDataObject(address,bytes32[])","1c11fce2":"requestToken(address,uint256)","1c135881":"testHardCap()","1c1401e7":"OWNER_TRANSFER_TOKENS()","1c140bdd":"addCampaign(string,string,string,address,address,address,string)","1c14179a":"GavCoin()","1c14b340":"passMessage(address,string)","1c152982":"addEditwalletContractAddress(bytes8,address)","1c15b285":"getAmbientHumidityControlLimits(bytes32)","1c1697ae":"get_presale_arbits_per_ether(address)","1c169ba5":"closed_()","1c16c3ad":"calcAirDropAmount(uint256)","1c177502":"LogCollectEth(uint256,uint256)","1c1935ce":"getHistoricPrice(uint256)","1c196d77":"returnSubscriptionDesposit(uint256)","1c1b8772":"update(address)","1c1bc850":"changePayee(address)","1c1bd814":"TIMEOUT_TIME()","1c1c2289":"userKey()","1c1d7517":"dedeNetwork()","1c1f6a3f":"removeTokenFrom(address,uint256)","1c20be7e":"getVestingBalance(address,address,address)","1c226164":"isAddressVoted(address,address)","1c22ac19":"aprovaDevolucao(bool)","1c22b196":"TransferTRAC()","1c22f765":"zhoudayiToken(uint256,string,uint8,string)","1c232194":"refundPreSale()","1c23281c":"GZSToken(uint256,string,uint8,string)","1c2353e1":"isCertifier(address)","1c235f5f":"getHipstermasterReq()","1c238e1f":"Signum(address,address)","1c23e280":"buyTicketsFor(address,uint256)","1c249494":"setStarted()","1c24f0bd":"applyForCertification(string,string,string,uint256,uint256,uint256,uint256,uint8,uint8,uint16)","1c25331d":"setMaximumNonWhitelistAmount(uint256)","1c25f452":"topupSupply(uint256)","1c27e291":"refundCoin(address)","1c27f30b":"Lover()","1c28b99e":"pressFee()","1c296b34":"cryptiblesAuctionContract()","1c2ac59d":"sosoToken()","1c2ac5ac":"IcoStatus()","1c2b1e54":"SalesManagerUpgradable()","1c2bbd18":"exchangeTemplate()","1c2d6356":"getActivityName(uint256)","1c2e2796":"ContractCallerProxy(address)","1c2f2f9f":"recoverAndSetSecretHash(string,bytes32)","1c2f38ff":"paid(uint64)","1c30549f":"set_rand_addr(address,uint256)","1c3101d3":"addRecipient(address)","1c3122ba":"BuyStartingSnails()","1c31f710":"setBeneficiary(address)","1c321f62":"executeLottery()","1c3274ff":"PlayX10()","1c338601":"setProviderInfoFields(uint256,string,string,uint256,string,address,uint8)","1c338644":"withdrawERC20Balance(address,address)","1c350d6b":"TRLToken()","1c35b76f":"VOLUME_BONUS_CONDITION()","1c35e7ba":"manualFinalizeRound()","1c363e14":"DeathFactor_v()","1c38f800":"currentIcoSupply()","1c398075":"sellClimateCoinsAgainstEther(uint256)","1c39b5c4":"Administrated()","1c39c375":"buyUninitializedPixelBlocks(uint256[],uint256[],uint256[],bytes32[])","1c3a36d0":"addComment(bytes3,string)","1c3a5713":"getProposalExternalTokenReward(bytes32,address)","1c3a8892":"closeRoom(uint256)","1c3ad417":"getBAS(bytes32,address)","1c3b093f":"Track(address,bytes,uint256,uint256)","1c3b3b9f":"expandPeriod(uint8)","1c3bc31f":"firstPreSaleEndDate1()","1c3c050c":"genTime()","1c3c0ea8":"setExecutor(address)","1c3c295e":"registerInstitutionAsset(string,string,address,address)","1c3cbf07":"TokenTest123()","1c3cf5d0":"setEditionPackPriceIncrease(uint8,uint256)","1c3d4f20":"ChangeBalance(address,uint256,address,uint256,uint256)","1c3db16d":"currentRuling(uint256)","1c3db9a8":"approveFlower(address,uint256)","1c3de07a":"calculateCoinSell(uint256)","1c3f2f8c":"dealsNumber()","1c3f7637":"isAllowedHICAddress(address)","1c3fe22d":"GaillardCrowdSale()","1c40baf5":"EUROCASH()","1c41d143":"KPTLToken()","1c41e2db":"getEducation()","1c423713":"addPromoCode(string,bytes32,uint256,uint8)","1c4261f4":"createGift(bytes32)","1c429165":"tryRollRoom(address,uint256,uint256)","1c42959c":"maximumCap()","1c42daf7":"winMeta(address,bytes32)","1c435872":"setInterRefreshLock(bool)","1c43814f":"registerAsSlaven(string)","1c43b4a6":"initAddressAsMultiOwner(address,string)","1c43d8b1":"EndEvent(bool)","1c442754":"participated(address,uint256)","1c448231":"SDToken()","1c44bac7":"tournamentBankCut()","1c465538":"DoFee(uint256)","1c465e87":"getTopOnce()","1c467dec":"HODLrSellWin(uint256)","1c47624b":"getUserProductContracts(address)","1c480cb6":"remove(int256,int256)","1c481767":"sendfrozen()","1c484766":"aloha()","1c484a34":"enableSuperDragon(bool)","1c488825":"MintTokens()","1c490883":"MelonBitIndex_Erc223Token()","1c49b101":"_preValidatePurchase(address,uint256,uint256,uint256)","1c49d19f":"finishRoundC()","1c4ad465":"custodyFactory()","1c4b0da6":"setMinSalePrice(uint256)","1c4b1ff7":"setGood(bytes32,uint256)","1c4b774b":"getReward(uint256)","1c4b8659":"getBoardSingleSpaceDetails(uint256,uint8,uint8)","1c4bcbb0":"distributePowerToAddress(address,uint256)","1c4be509":"forkTransfer(address,address,address,uint256)","1c4bfcfe":"BoxChange(address,uint256)","1c4c710b":"getAreaIndex(string)","1c4d5608":"getSchemeParameters(address,address)","1c4d749b":"GetContractStateActive()","1c4e6cd0":"NameReg()","1c4ef6c2":"ethPriceInEuroCent()","1c4fda10":"tokenSafe()","1c50e880":"cancelAuctionHashing(uint256,uint64)","1c51a8e0":"setConfigString(string)","1c533a09":"Trupee()","1c53faf8":"backSggCoinOwner()","1c5412f7":"_computeCut(uint256)","1c54220d":"c_centsPerTokenSecond()","1c545049":"maxPresaleEDUSupply()","1c548c78":"foreignBridgeProxyOwner()","1c54e565":"getNextUserId()","1c54fbab":"getShip(uint16,uint16,address,address)","1c558b71":"ORIUMCOIN()","1c560f68":"CreatePreSale(address,uint256)","1c5633d7":"setPeriodLength(uint256)","1c566ef2":"setOperationAttributes(string,uint256,string)","1c568925":"addPendingUserListArr(address)","1c572f8c":"getICOPercentage(uint8)","1c5736ee":"add_record(string)","1c575f7f":"sendDivsToBankroll()","1c57a386":"oraclize_query(string,bytes[1],uint256)","1c581205":"targetAmount(address)","1c58c3ff":"totalMineSupply()","1c58d0d2":"_unsafeDecodeTokenId(uint256)","1c5992ff":"Zandar()","1c59a667":"disableBlacklist(address[])","1c59c177":"FCCContribution()","1c5a3942":"BPPOL()","1c5a5a58":"getRandomNum(address,uint256)","1c5a5bc4":"createShip(uint256,string,uint256,uint256,uint256)","1c5a9005":"HashRemoved(address,string)","1c5a9d9c":"activate(address)","1c5be3d7":"updateTimestamp()","1c5ca530":"IprontoToken()","1c5caa6b":"Rate9()","1c5d3c60":"stateIsWaitingProofs(uint256)","1c5d9faa":"setNickname(string)","1c5daad7":"_maint_withdrawFromPool(uint256)","1c5eaa23":"findByModuleText(string)","1c5ef50b":"Rasper()","1c5f2810":"setnewowner(address)","1c5f3176":"someMethod4(uint256,uint256,uint256)","1c5f8675":"getMyTuple()","1c5fe1a4":"TeamAmount()","1c606dd3":"GetConstructCost(uint256,uint256)","1c607f14":"setDynamicArraySize(uint256)","1c60a158":"TEAM_TOKEN_AMOUNT()","1c60f3bb":"buyEthCards(uint256,uint256)","1c61babe":"CelsiusToken(uint256)","1c61bd38":"showValue()","1c61f2bc":"fuckingClaim2(bytes,bytes)","1c623ddd":"reward(bytes32,uint8,bytes32,bytes32,bytes32,uint256)","1c624a60":"qtyInitiators()","1c624d19":"mintObizcoinTokens(address,uint256)","1c637987":"_setAuctionStatus(bytes32,uint8)","1c638376":"setProductAttributesByRegulator(string,string,uint256,uint256,string)","1c63c6c3":"setPartData(uint256,uint256,uint256[])","1c64065d":"myInfraList(address,uint256)","1c6416ad":"pubaddr()","1c65706e":"allowInvest(address,address)","1c657c63":"setEtherInUSDInternal(string)","1c668855":"getGenotype(uint256)","1c674fba":"createRandomBox(string,address,uint64,uint256,uint128)","1c67a7aa":"TransCompleted()","1c67e9a6":"setTokenStatus(bool)","1c68571d":"bonusLimit1()","1c6868c8":"adjustBonusPrice()","1c68fe82":"listProperty()","1c69ad00":"balance0()","1c6a0cf8":"GuangPengChain()","1c6a866c":"Collect_accrued_interest_and_transfer(address,uint256)","1c6b69b7":"rateCent()","1c6b7c1d":"EtherTransfer(address,address,uint256)","1c6ba386":"_claimReward(address,uint256)","1c6ce9a3":"executeSendCapital(address,uint256)","1c6d31f7":"xxx()","1c6d4575":"getTokensAmountAllowedToWithdraw(uint256)","1c6d6483":"approveMappingProposal(address)","1c6debbb":"UnionChainSupply()","1c6e3899":"getTierId(uint256)","1c6ef374":"recordingResultsOfBet(bytes32,bytes32[],uint8[])","1c6f609b":"cooperativeClose(address,uint32,uint192,bytes,bytes)","1c6f634e":"oracleItQuery(string,string)","1c70362c":"setSettingValues(uint8,uint8,uint16,uint16,uint16,uint16,uint16,uint8,uint8,uint32,uint32,uint8)","1c7040cc":"setProxyCurator(address)","1c7106e6":"setOracleAPIAddress(address)","1c7276f5":"updateLuck(uint256,uint8)","1c72e225":"transformSeedToFlower(address,uint256)","1c7307f4":"get_topl_address(address,address)","1c732d83":"centsToWei(uint256)","1c73561f":"jobCompleted(bytes16,address,address,uint256,uint256)","1c73601e":"getUncorrelatedRN(uint256)","1c74d5c8":"Successor(address,address)","1c7564cb":"DWMP()","1c75b6b2":"setDevFee(uint256)","1c75f085":"teamAddress()","1c761245":"buyDOTCH(uint256)","1c762a27":"show_Balance_of_interest_bearing_deposit(address)","1c77a4ec":"Lemmon()","1c77c58c":"collectRoundLength()","1c7a08ef":"isActivate(uint256)","1c7a39e2":"_distributeRewards(address,address,uint256)","1c7a3c9d":"setExchangeContractAddress(address)","1c7a3d31":"updateNextOrderUser(address,address,uint256,address,address)","1c7b10aa":"merkleTreeRoots(uint256)","1c7b530a":"secondTotalSupply()","1c7bfdce":"test_votingWhenCertified()","1c7d5334":"DORCoin(address)","1c7f3a96":"getMarketCreatorSettlementFeeDivisor()","1c7f578a":"mintC()","1c7f6942":"getPlayerSpaceshipModelByIndex(address,uint256)","1c7f98ca":"getRunInfo()","1c800d64":"insert_helper(uint256,bool,uint256)","1c81525c":"NitinToken()","1c81bcfb":"dividendPathways()","1c81ed15":"raiseSupply(uint256)","1c8293c4":"PriceChanged(uint256,uint64)","1c82a013":"onOffCrowdSale(bool)","1c844171":"bakkaToken()","1c8499e5":"greeter()","1c857765":"sumElements(uint128[])","1c85d890":"productListing(bytes32)","1c85ee51":"getBasicIncome()","1c8670fc":"endEarlyStage4()","1c8685e0":"WXSLToken(uint256,string,string)","1c87055f":"Fund(address,address,address,address,address,address,address,address[])","1c870eee":"setUserPermission(address,bytes4)","1c878c97":"releaseLockAgencyLock1()","1c879c47":"getMarketHashes(bytes)","1c87deec":"returnTokenDepositState(address,bytes32)","1c895915":"getNumberOfPayments(uint256)","1c89f174":"calculateUserBid()","1c8a1e20":"membershipAddress()","1c8a3821":"AllocateFounderTokens(address)","1c8a7795":"archiveText(string)","1c8c4509":"addSiteSet(uint256,uint256)","1c8ca56d":"stopSelling(bool)","1c8cba3b":"getSubjectClaimSetSize(address,uint256,uint256)","1c8ce890":"disburse(address)","1c8d25bc":"proposed_beneficiary()","1c8d51e6":"getSentAmount()","1c8d5d38":"allowance(address,address,bytes32)","1c8dddbd":"editContributors(address[],uint256[])","1c8e9a6f":"commitWork(uint256)","1c8eac0f":"endFunding()","1c8f7570":"depositLogic(address,uint256,uint256,uint256)","1c90e9cf":"testwallet8()","1c9193c0":"TakeOut(uint256)","1c91a6b9":"startExit(uint256,bytes,bytes,bytes)","1c921e16":"claimHeirOwnership()","1c92b497":"crowdsaleInitialSupply()","1c92cab2":"auto_transfect(address[])","1c931313":"setDesignatedReportDueTimestamp(uint256)","1c931439":"getLockedContractAddress(address)","1c933e2f":"multiplyDecimalRoundPrecise(uint256,uint256)","1c946642":"intellisys()","1c949bdf":"setEtherollAddress(address)","1c95b42e":"payBonus()","1c95c89d":"authorizeForToken(address,address)","1c96b242":"balanceOfReal(address)","1c96ef03":"Presale(address,address,address)","1c9713bd":"transferTobucketOneContract(address)","1c973c57":"getSpecialityValue(uint256)","1c982066":"refreshGameTime()","1c983347":"maxBidPercent()","1c98680f":"_redeemByDefaultTranches(address,address,uint256,bytes,bytes)","1c990670":"realDividends(address)","1c991783":"mintUniqueTokenTo(address,string,uint256)","1c997344":"createBid(bytes32,address,uint256)","1c9981f8":"donate(address,address,bytes4)","1c99d341":"removeParty(uint256)","1c9a5ddf":"returnBox()","1c9ab3ad":"getBlockData(uint256)","1c9ad79d":"newCampaign(string,address,uint256,uint256,address)","1c9b612e":"ledTokensAllocated()","1c9c549d":"buyEggPrice()","1c9cae74":"removeScore(uint256,uint256)","1c9cafd7":"tan(int256)","1c9cf54c":"getStockAmount(address,uint256)","1c9e9999":"migrateDungeon(uint256,uint256,uint256,uint256,uint256,uint256,address)","1c9f289d":"setCCH_edit_6(string)","1c9fbb11":"finishPreSale3()","1c9fe5d7":"BRONZE_AMOUNT_TPT()","1c9feaa5":"isExecuted()","1ca0076c":"multisend2(address,address,address[],uint256[])","1ca03b8e":"senderHasRole(string)","1ca0a28d":"multiTransfer(address,address[],uint256[])","1ca19ece":"IsaDalawa()","1ca2d6b7":"WalletChange(address,uint256)","1ca2e94a":"setPresalePhase(uint8)","1ca3630a":"updateComponent(string)","1ca3d4b7":"icoPhase4End()","1ca4399b":"DEV_TEAM_HOLDER()","1ca43cef":"ADMISSION_TIME()","1ca46d61":"bigChicken()","1ca5df03":"multiVesting(address[],address,uint256[],uint256[],uint256[])","1ca60aeb":"setMeltingContract(address)","1ca750f4":"privateSaleTokensSold()","1ca7bcc7":"toBytes32(bytes,uint8)","1ca84592":"RA(address)","1ca84efc":"secondTTaxAmount()","1ca8b6cb":"totalTokenSupply()","1ca9ad47":"createLockingTokenVaults()","1ca9fb9d":"updateContract(uint256,uint256,uint256,uint256)","1caa0c6d":"saleExchangeRate5()","1caa5ccb":"startDapp(address,address)","1caba41f":"decimalUnits()","1cabc5ed":"userVoteFor(address,uint256,uint256)","1cabc785":"getPlayerDefend(uint256)","1cabe3ef":"pethPEReth(uint256)","1cac31d7":"setAdvisorsTokensWallet(address)","1cac7b7f":"MINERTA()","1cad5a40":"depositERC20(address,address,uint256)","1cadd93e":"initPlayers()","1cae7c2f":"TransferCoinsEther()","1cae947a":"firstPrivateLockedAmount()","1caf1752":"Coinvilla()","1cafc144":"distruggi()","1cb07902":"mintMore(address)","1cb08889":"MERIDIANERC20(string,string)","1cb0d481":"transferTokens(address,uint256[],uint256[])","1cb120d6":"ENSRegistry()","1cb1778a":"setup(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[])","1cb20fe6":"Devcoin()","1cb252fe":"investorsTotal()","1cb2dbf6":"Reduction(string,address,uint256,uint256)","1cb3bbc0":"updateGlobalUnlockTime(uint256)","1cb3d9be":"grantEditorRights(address)","1cb5bfc4":"LogBet(bytes32,address,uint256,uint256,uint256,uint256)","1cb64196":"ethStore()","1cb6adec":"tubFab()","1cb78879":"TitleDelisted(uint256)","1cb82d79":"registrarOwner()","1cb9a02a":"calculateScore(uint256,uint256)","1cb9ce63":"makeCall(address,bytes)","1cba6f79":"_isERC721Contract(address,address,uint256,bytes)","1cbaaea7":"set_payment_details(uint256,string)","1cbaee2d":"saleStartTime()","1cbb67c4":"FooUser(address)","1cbc5ab1":"Buy(address,uint256,uint256)","1cbcb9b9":"BellaBluToken()","1cbcc77c":"test_suicide()","1cbd0519":"accountLevel(address)","1cbda93d":"p_update_mResalePlotDevPercent(uint256)","1cbea83d":"proposalReason(uint256)","1cbea99b":"getAddress(address[],bool,bool)","1cbeae5e":"winner(uint256)","1cbfbe47":"assignTokensToMultipleInvestors(address[],uint256[])","1cc0eb83":"kickcityWallet()","1cc13dff":"totalplayers()","1cc1cf46":"paymentInterval()","1cc1e7bc":"appendPacket(bytes)","1cc2502e":"auctionList()","1cc48f08":"getResolverAllowance(string,address)","1cc54204":"totalGenesisAddresses()","1cc69ac1":"assignNewParcel(int256,int256,address)","1cc6ba74":"testWIP()","1cc6ea05":"populateStringMember()","1cc6f13d":"setComplianceService(address,address)","1cc70934":"getPolicyLockedPercentage(uint8)","1cc72c04":"CheckPoolOwnership(string,address)","1cc78eb6":"RANGEEND_1()","1cc8092f":"FOURTH_TIER_DISCOUNT()","1cca13d3":"is_watched(address)","1ccb2601":"FoodWithdrawEvent(address,address,bool,uint256,uint256,uint256)","1ccc7013":"setPriceAt(uint16,uint16,uint8,uint256)","1ccd2706":"CatholicCoin()","1cce70d4":"getHowManyWinners()","1ccf6955":"getBets(uint256)","1ccf8abe":"phiWon()","1cd01e3a":"collectPercent()","1cd07895":"DmlToken(address,uint256)","1cd0b87f":"B33RToken()","1cd23711":"nouveauContrat(address,address[],uint256[])","1cd30149":"paybackRequired()","1cd3072b":"transferSub(address,address,uint256)","1cd30a3a":"randomGen(bytes32,uint256)","1cd3b754":"preICOcoinsLeft(uint256)","1cd45773":"getruns(address)","1cd58891":"requestRedemption(uint256,uint256,bool)","1cd60a85":"setFiscal(bytes32,bytes32,bytes32,uint256,uint256,uint256)","1cd732c1":"currentEthPrice()","1cd73845":"updatePremiumCalculator(address)","1cd76498":"crossForkFund()","1cd8b96c":"poolDLock()","1cd8d8a9":"checkTeam(address)","1cd95d2a":"_freeze(address,uint256,uint8)","1cda37f2":"eraseRecords(bytes32)","1cdadfae":"balanceNotEqual(address,uint256,string)","1cdb0989":"getMaxEmpruntable(address)","1cdb8571":"left2(uint256)","1cdc3f8a":"STQPreICO(address,address)","1cdc51e7":"requestRates()","1cdce200":"walletOne()","1cde0ff0":"withdrawScamEarnings()","1cde3cde":"BDIToken()","1cdeae52":"setSynopsis(string)","1cdef3ed":"agree(uint256,address)","1ce00c50":"registerUnlock()","1ce10a9d":"get_Sponsored_Amount_in_Job_By_Address(uint256,address)","1ce1e1b8":"White(address,uint256)","1ce26ecd":"addOwner()","1ce26faa":"fundingEndsAt()","1ce28e72":"getLimit(address)","1ce30927":"getOption(uint256,uint256)","1ce477d8":"createTransferEvent(bool,address,address,uint256)","1ce5e9a6":"getOption(uint256)","1ce62383":"expected()","1ce624d6":"Crypted_RPS()","1ce6717d":"CouponDeposit(address[2],uint256[8],uint256)","1ce6a810":"KBKJToken()","1ce7d9da":"ico_finish()","1ce7eff3":"bytecodeAt(address)","1ce817ab":"NoWinner(address,uint256,int256,string)","1ceb1b87":"setCanAcceptTokens(address,address)","1ceba89b":"getH3Bidder()","1cecb935":"isSignedNoEnc(uint16)","1ced2c75":"SpritzCoin()","1cedf8a3":"getDarknodeOwner(address)","1ceea715":"GetMyInvestFee()","1cef2b4e":"TokenCreated(address,uint256)","1cef3c13":"StandardTokenFreezer(address)","1cef92b1":"getRewardStatus(address)","1cf081f6":"changeProductionFee(uint256)","1cf196df":"changeCommissionFee(uint256)","1cf19ad7":"Mundo()","1cf1bb72":"releasedAmount(address)","1cf25dc9":"incentivisingAddress()","1cf28a65":"expand()","1cf28ae3":"_bonusTime1()","1cf2de25":"MinterUpdated(address,address)","1cf3d16d":"LogRegularityConfirmation(address,bool,bytes32)","1cf41a81":"deployContract(uint256)","1cf43b63":"extractExportFeeChargeLength()","1cf52f2b":"isActiveRegistrant(address)","1cf57f67":"future_round_coins()","1cf67724":"getImplChangeReq(bytes32)","1cf73c13":"setStake(uint256,uint256)","1cf74ece":"left56(uint256)","1cf91bf2":"setOwnerAtomsCount(address,uint256)","1cf9c88a":"addAction(string)","1cfa42d0":"isReleaseRecordExist(uint256)","1cfac68e":"BitSelectModerado()","1cfb4e1b":"InsureShares()","1cfb7c9a":"ifAllowed(string,address)","1cfbc7d0":"finalRewardPeriodEndBlock()","1cfc832e":"invalidateProposal(bytes32,bytes32)","1cfcc5bb":"checkGameSideAmount(uint256,uint256)","1cfce386":"calculateTarget()","1cfd11d5":"getDungeonDetails(uint256)","1cfdf90e":"updateWinnersList()","1cfe04a7":"canPay()","1cfe699e":"getFreezingSummaryOf(address)","1cfef64c":"SEELE_TOTAL_SUPPLY()","1cff272e":"show_Accrued_Interest(address)","1cff3e09":"testCreateBallotContract()","1cff79cd":"execute(address,bytes)","1cff87db":"burnMyQUATransferAndSendQUAToSomeone(uint256,address)","1d000b61":"BNT_TOKEN()","1d007f5f":"changeDAO(address)","1d010815":"createSaleAuctionERC20(uint256,address,address,uint256,uint256,uint256)","1d012c8e":"gameIsOver()","1d017b28":"setUnownedNumOfExoTokensBonus(uint256,uint32)","1d0192e1":"editEntity(address,bool,bytes32)","1d01ee9d":"BPX_per_ETH()","1d0205b8":"months(uint256)","1d029641":"rntTokenVault()","1d02fb06":"nCryptToken()","1d03842f":"onePlus(uint256)","1d048136":"setBaseStamina(uint256)","1d04c92b":"appendKeyValue(string,int256)","1d05bcb3":"dividendsRound()","1d05c57e":"_createCobeFriendWithTime(uint256,uint256,uint256,uint256,address,uint256,uint256)","1d05d1d8":"refundContributorEnd()","1d065dde":"_transferWithReward(address,address,uint256)","1d075862":"getUpgradeProposals()","1d079c20":"IETToken(address)","1d07b797":"destroyTheUniverse()","1d0806ae":"initialPrice()","1d08837b":"setBaseRate(uint256)","1d09ba2c":"right15(uint256)","1d0a3cb8":"suspendedPayments()","1d0ba36e":"transferToPartner(address)","1d0cc1e7":"fullfillTeamAddress()","1d0ced55":"IonicCoin()","1d0d35f5":"isContributor(address)","1d0d5992":"transferBetweenUsers()","1d0e8a4d":"isShop(address)","1d0f2c99":"setTarget(uint256,uint256)","1d103139":"commissionCheck()","1d107603":"totalInitialBalance()","1d111d13":"withdrawBNB()","1d121dfe":"communityGrantsAmount()","1d123801":"airDropNum()","1d124fe4":"setUtils2(address)","1d128687":"myDividendsNo()","1d12b52f":"AKBToken()","1d130935":"isSuspended()","1d143848":"issuer()","1d14e5ff":"crowdSaleDonate()","1d153624":"CIBNLiveInteractiveToken()","1d15f317":"SUFFICIENT_STATUS()","1d16d1bb":"setComponent(string,address)","1d16d9a0":"sendETH()","1d184872":"lastrandom()","1d18ee83":"getCurrentHardcap()","1d1997a0":"lengthNotEqual(int256[],uint256,string)","1d19a56d":"claimFeeRebate(uint256,bytes32,bytes32,bytes32,uint8)","1d19a78e":"deactivateHedge(address,uint256)","1d19ffc3":"uniqueIds(uint256)","1d1a696d":"contains(bytes32)","1d1a7c32":"concat(bytes,bytes1,bytes,bytes1)","1d1ac66a":"signOut(address)","1d1ada90":"manuallyAssignTokens(address,uint256)","1d1ca65b":"BROKER_RESERVE_ADDRESS()","1d1cc622":"CurrentDistribPublicSupply_()","1d1ce884":"VoteCommitted(address,uint256,uint256)","1d1eda5e":"setBonusesForTimes(uint32[],uint32[])","1d1eff42":"AccessRevoke(address)","1d1fe108":"burnInvestorTokens(address,uint256)","1d209605":"Controllable()","1d20a9c9":"setCardActive(bool)","1d211d74":"tokensToSale()","1d21f252":"getInvertedPrice(address)","1d231b2c":"_blackListed(address)","1d24190c":"GetGiftInfo(string)","1d24310d":"setTransferMode(bool)","1d2531f3":"is_alive()","1d25a5eb":"CGToken()","1d25bba2":"addSomeCWCsTo(address,uint256)","1d25c1a5":"get_remaining_quantity()","1d2627bb":"setEidooWallet(address)","1d263b53":"callSecondTarget()","1d263f67":"flip(bool)","1d27769f":"participate(string)","1d289e57":"regulationsFulfilled()","1d291990":"getNumberOfBid()","1d293500":"gamePayOutWinner(address)","1d296e8d":"geneLabAddress()","1d29de63":"clearAllCandidates()","1d2a6dcf":"getNumArchers()","1d2aa5b3":"skip()","1d2aabcb":"MicroBitcoinToken()","1d2af28b":"pay055loyal(address)","1d2b63bf":"GetNumber(address,uint256)","1d2b7155":"activateImportFeeChargeRecord(address)","1d2b8d96":"MintICO(address,address,uint256)","1d2bca17":"MyToken(uint256,string,uint8,string)","1d2bf543":"fetchCoinAge(address,address)","1d2c1b59":"query(uint256,bytes32,string,string,uint256,uint256)","1d2d4c34":"test_assert()","1d2d8400":"delegateToNewContract(address)","1d2d86dc":"setChecksum(bytes32)","1d2d9b06":"raiseEvent(string)","1d2dbb22":"CancelMyInvest()","1d2e18cd":"stageOneStart()","1d2e2cc4":"ENS()","1d2e5a3a":"setSale(bool)","1d2eda60":"DIUToken()","1d2ee278":"Angel()","1d2fd267":"getCarCurrentPriceAuction(uint32)","1d2fed16":"updateRates(bytes4[],uint256[],uint256)","1d300421":"NuruToken(uint256,uint256,string,string,uint8)","1d30d3db":"Transfer(address,address,string,uint256)","1d3231d4":"totalCommitted()","1d32a70c":"upgradeMining(uint256,uint256)","1d32ab99":"originTransfer(address,uint256)","1d32f106":"openZoneTeller(bytes2)","1d32f29a":"SetDescript(string)","1d33267a":"revokeGrant(uint256)","1d333265":"_removeCryptantFragments(address,uint256)","1d3390a1":"carefulSendWithFixedGas(address,uint256,uint256)","1d34be47":"updateRefund(uint256,uint256,uint256,bytes32)","1d34cf60":"getNumSuppliers()","1d351f53":"decreaseAllowanceToken(address,uint256)","1d356eef":"getDepositEtherForAddressValue()","1d3639ec":"preDGZTokensSold()","1d365669":"transferDirectoryToken(uint256,address,uint256)","1d36e06c":"tokenIndexToOwner(uint256)","1d36ee16":"RBC(uint256,string,string)","1d376a44":"PriceOracle(uint256)","1d3795e8":"startFreeGet()","1d37c8a6":"setPurchaseRate(uint256)","1d381240":"addKey(bytes32,uint256,uint256)","1d38869b":"ShopiBlock()","1d38bebd":"isInitialAuctionEnded()","1d38e433":"gasForIAD()","1d38fcda":"freeze(address[])","1d3a5dbe":"requiredPrefix()","1d3b9edf":"times(uint256,uint256)","1d3ce58d":"currentMintable()","1d3d4c0b":"make_contact(bytes32[])","1d3d93d4":"activateCurrency(address)","1d3e2d1b":"changeFriend(address,address)","1d3e43c8":"VCcoin()","1d3e904e":"BasicSPIKE()","1d3f6f1b":"setFounderMultiSigAddress(address)","1d3f864b":"campaignCaptain(uint256)","1d3f90c6":"bonusUnlockTime()","1d40bbcf":"_addMember(address)","1d411612":"EthernetCashAddress()","1d4233b9":"flushEth()","1d42cf72":"nochange()","1d433d52":"_getbonusRate()","1d43776e":"rngAddress()","1d43b653":"submitTransaction(address,uint256)","1d43cc98":"increaseTotalSupply(uint256)","1d4494f1":"changeApiUrl(string)","1d45e9e1":"notEqual(uint256[],uint256[],string)","1d461b83":"airdropMDL(address[],uint256)","1d47ae34":"YShare()","1d47f8c1":"getApprovals(address,uint256)","1d480d8b":"addRefBonusWithRefs(address,uint256)","1d49e081":"EXECUTE_EXTRA_GAS()","1d4a48b7":"Start7()","1d4a9209":"initializeTokenSale(uint256,uint256,uint256,uint256,address)","1d4ac2b6":"yearteam()","1d4b0796":"updateTxStats()","1d4b11e4":"ownerOfLandMany(int256[],int256[])","1d4be3df":"getFoundAddress()","1d4c8e5d":"removeAddressesFromBonuslist(address[])","1d4cecaa":"setInfo(uint256,bytes32,string)","1d4d691d":"fill(address,uint256,address,address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","1d4d8656":"donateAuthor()","1d4d8808":"_getFeeHistory(uint32)","1d4eaf06":"StoreFile(uint256,bytes32,string,string,string,string,string,uint256,bytes)","1d4f2c6d":"setMythicalGravatar()","1d4f3e8b":"getCLottery()","1d4f9bbf":"NewTTL(bytes32,uint64)","1d50169c":"sendToken(address,uint256,uint256,uint256)","1d511879":"buyTokensPresale()","1d523047":"COMMUNITY_TOKENS()","1d523107":"SOFT_CAP_IN_TOKEN()","1d52573f":"set_address_B(address,address)","1d532a97":"increaseAssetsCertified(uint256)","1d5407aa":"helpCoinAddress()","1d5459f7":"updateFundAddress(address)","1d545d09":"crowdsaleEndTime()","1d54ab74":"_getRateIndex(uint256)","1d570166":"previligedAddApproval(address,address,uint256)","1d57bcf7":"ProofLibInterface()","1d590771":"TeuToken()","1d598d10":"BitcoinBlue()","1d59cde3":"retrieveEarnings(address)","1d5a9f3f":"object_types(uint256)","1d5aca61":"ZITRON()","1d5b26b1":"presaleMarket()","1d5b9efe":"mintAfterSale()","1d5c7ef5":"getPaymentToAddRemoveCountry(string,bool)","1d5de3fb":"ECOToken()","1d5e3350":"transferReservedTokens(uint256)","1d5e3f6d":"sumOfN(uint256,uint256,uint256,uint256)","1d5ea379":"newUserFrom(address,string,string,string)","1d5f624a":"unPaidBurnTokens(uint256)","1d5fe710":"finalizeCurrentStage()","1d60208a":"TrezorMultiSig2of3(address,address,address)","1d60993b":"stakeScale(uint256)","1d62a312":"thirdPreSaleDate()","1d62a40f":"DungeonChallenged(uint256,address,uint256,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)","1d62c5bf":"PublicSold()","1d6456c4":"_transfer(address,address,uint256,uint256)","1d645b12":"getEventInfo(uint256)","1d6477e1":"reclaimableLand()","1d64976b":"HBCM()","1d65551d":"updateRenExSettlementContract(address)","1d659153":"CanObtainChip(uint32)","1d65d60e":"PRE_ICO_MAX_TOKENS()","1d66105b":"buyDrangon()","1d66ff8e":"getInvestorDividends(address)","1d68463e":"CreateSWP(address,uint256)","1d68b449":"crowdClosed()","1d6916ab":"buyTicket(uint256,uint256,string)","1d693910":"Piezochain()","1d69ccdc":"SuccessfulVote(address,bytes32,bytes32)","1d6a8bda":"enableTokenTrade(address)","1d6b5d2c":"setDnaMixerAddress(address)","1d6b867c":"getGamePlayer(uint256)","1d6c0dfa":"setActiveHero(uint256)","1d6c263c":"Election()","1d6ca15d":"Presale(uint256,address,address,address,uint256,uint256,uint256,uint256)","1d6d8d60":"modifyMilestoneTo(address,uint8,uint8)","1d6f5e03":"PubkeyChanged(bytes32,bytes32,bytes32)","1d6f757d":"withdraw(uint256,uint8,bytes32,bytes32,uint256)","1d6fe151":"ROSCtoken(uint256,string,string)","1d704684":"setBinanceCoinPrice(uint256)","1d706777":"getCertifier(address)","1d7099d3":"payFromAllowance(address,address,address,uint256)","1d709ab4":"set_transfer_gas(uint256)","1d718288":"referralTokensAvailable()","1d71929d":"MIAMIcoin()","1d71a1cd":"newIncome(string)","1d724a7a":"getFounderStatus(address)","1d731345":"calculateRoom(uint256,uint256,uint256)","1d7315cc":"storedAmount()","1d732304":"generateRand(uint256)","1d73268a":"PHDToken(uint256,string,string)","1d733337":"participantRegistered(address)","1d73fb93":"autoTransfer(address,uint256)","1d747131":"getTotalApprovers()","1d74c1a8":"_addToFund(uint256,bool)","1d74f3a5":"DIRT()","1d75493a":"setWinnerPlaceDistribution(uint256,uint256)","1d755c8d":"recieveVote(address,bytes32)","1d759214":"minMinBuyETH()","1d75a4b9":"viewAuthorized()","1d7630f0":"signedTransferFromCheck(address,address,address,uint256,uint256,uint256,bytes32,address)","1d7747d1":"addAuthByCode(string,string)","1d777856":"tokensForBurn()","1d7786e3":"numToksSwitchedOver()","1d77d696":"setMockUint256(bytes4,uint256)","1d780960":"pauseGame(uint256,bool)","1d786cd0":"widthdrawEtherDelta(uint256)","1d7876e7":"transferBack()","1d78ca63":"AuctionClosed(address,uint256)","1d790c99":"parseData(bytes,uint256)","1d7915ad":"setSeed(uint256,uint256)","1d793e9a":"batchChangeChannel(address[],uint256[],uint256,uint256)","1d7add35":"appendPricePoints(uint64[])","1d7b46b2":"tokensPurchasedTotal()","1d7b5baf":"setUint(int256,bytes32,string,uint256)","1d7b6d58":"forkAndRedeem()","1d7bb2db":"CasinoCoin()","1d7bc449":"getCeleb(uint256)","1d7c5cd1":"userServicesLength(address)","1d7c8894":"issueGoldTokens(address,uint256)","1d7ca2be":"subAddressToWhiteList(address[])","1d7d1f17":"BFX()","1d7d8d2e":"EthereumPoint()","1d7e1f68":"getContentRank(address,uint256)","1d7f2e0c":"SecondNode(address,string,string)","1d7f8039":"mineMany(bytes32[])","1d7fb62f":"initVote(uint256)","1d80009a":"rootHash()","1d80e62a":"changeTransfersPaused(uint256)","1d814480":"provideInfoCourseBaseOnIdStudent(uint256)","1d81564d":"minutesInPeriod()","1d819ef0":"testEqualityAddr()","1d82e9c7":"EXTRA_GAS()","1d833aae":"drop(address,address[],uint256)","1d834409":"totalOrders()","1d834a1b":"insert(uint256,uint256)","1d836ae9":"EQUIEX()","1d83e3a9":"withdraw_(address)","1d846f5c":"currentCancellationResults()","1d849220":"getTokenSaleTime()","1d84f303":"ETPC()","1d8557d7":"updateState()","1d862a81":"getPop(uint256)","1d87614a":"OPTION_POOL_PERIOD()","1d87a65c":"createBattleboard(uint8)","1d88c05b":"successorAddress()","1d898f52":"IM()","1d89dbc9":"updateExchangeRate(uint8,uint256,uint256)","1d8a8db9":"ethRaisedAddress()","1d8aa5ec":"currentSettlementPhase()","1d8acf1b":"getBoolValues(bytes32)","1d8adb7a":"setMaxUserPayment(uint256)","1d8ae626":"Security(string,string)","1d8b13a6":"setPersonal(address)","1d8b4dd1":"createContractExoplanet(string,uint256,uint32,string,uint32,uint8,string)","1d8b70da":"order_received(string)","1d8bab91":"RDN()","1d8c61c0":"setTMEXAddress(address)","1d8c7c20":"internalSellTokenFromAdmin(address,uint256,bool,uint256)","1d8ceb44":"extractClosingSignature(address,uint32,uint192,bytes)","1d902fe9":"currentBonusRate()","1d9046ce":"transferShip(uint32,address,bool)","1d90824b":"getMinPrivateSaleCompanyBuy()","1d90c509":"cardPresale(uint16)","1d91bd9f":"transferPaymentAddress(address)","1d927f21":"userDraw(uint256)","1d93d8d9":"WaboToken()","1d9400c2":"ManagerProxyTargetMockV3(address)","1d9680a7":"oldWriteMessage(string)","1d96d4c9":"VIRES()","1d976e05":"transferMultiple(address,uint256[])","1d978f9e":"ContributionRegistered(bytes32,address,uint256)","1d981758":"__signatureIsValid__(address,bytes32,uint8,bytes32,bytes32)","1d98532f":"_computeTournamentCut(uint256)","1d98f3c5":"safeTransferChild(uint256,address,address,uint256)","1d991ffe":"IsBoilerValid(address,uint256)","1d9976e9":"LedgerRandomProofVerifier()","1d9b0783":"withdraw(uint128,address)","1d9b1d6f":"schedule(uint256,uint256)","1d9b1d85":"ReFund()","1d9bd2b9":"totalSoldOnICO()","1d9becf5":"CatAdopted(bytes5,uint256,address,address)","1d9caa69":"sendMessage(address,string,string,uint256)","1d9cfd6d":"setSale()","1d9d1bdc":"buyTradeConfir()","1d9e6c34":"compose(string,address,uint256[])","1d9f3cb5":"changeSaddleShopPrice(uint256,uint256)","1d9f68ad":"updateMaxBonusTickets(uint256)","1da05199":"hasAvailableCard()","1da09dd5":"getUserActionOnStory(bytes12,address)","1da0fb1b":"updateSettings(uint256,uint256,uint256,uint256,uint256,bool)","1da16e8b":"FirstSaudiToken()","1da26a8b":"setToken(address,address)","1da2d92b":"IDRT()","1da3f151":"presaleVolumeBonus(uint256)","1da4eb7a":"_secondUnlockAmmount()","1da4ed85":"setRewardPool(uint256)","1da55b9f":"YeedToken(uint256,address)","1da5f94d":"acceptableAddress()","1da6822c":"testThrowsTransferEnableNotTransferable()","1da74e77":"wtToken()","1da790a1":"showTopWinners()","1da83550":"setWinner(address,uint256,uint256,uint256)","1da83eab":"canDefrostReserveAndTeam()","1da88cbe":"getNew(address,bytes32)","1da93873":"baseTokenPrice()","1da97544":"ETHtoZWeirate()","1da97f36":"HunterCoin()","1da98538":"totalMEATonsClaimed()","1da9ea0c":"hardCapInTokens()","1daae314":"secondStagePriceOfTokenInWei()","1dab2271":"setSuggestedAdPrice(uint256,uint256)","1dacad8a":"CentralizedOracle(address,bytes)","1dacd8fd":"buyDisciple(uint256,uint256,uint256)","1dad202f":"ctz64(uint64)","1dad57fa":"notifyCollateralNotReturned(uint256)","1dad63e4":"ERC20Standard(uint256,string,bool)","1daee82d":"secondLockAmount()","1daf779f":"SDpay(uint256,string,uint8,string)","1db021c0":"mintedCoins()","1db046ad":"OneToken()","1db05ab8":"FXNOW()","1db087db":"_setAllocation(address,uint256)","1db0ad5a":"firstUnlockTime()","1db0ffe9":"ECHARGE()","1db19959":"RATE_SALESTAGELAST()","1db1c805":"setDefaultReputationForManufacturer(bytes32,bytes32)","1db256e4":"WCCCOIN()","1db29a20":"getPlotInfo(uint256)","1db2ea77":"_91_MR()","1db38da2":"ClaimExecuted(uint256,uint256,address)","1db4012d":"newProject(string,string,uint8,address[],address)","1db4b07f":"rntToken()","1db4d7a2":"returnBalance(address[2],uint256[8],uint8,bytes32[2])","1db580fa":"foundersAllocation()","1db5ca3b":"becomeAgent(uint256,uint256)","1db5f974":"highBonus()","1db625c3":"newInvestCommission(uint256)","1db71ffb":"doLoops(uint256)","1db834f0":"NextDouble(address,uint256)","1db87be8":"receivingAddress()","1db890a6":"getCassetteSize_()","1db894fc":"signToApproveTokenControlInfo()","1db93968":"transferProperty(uint16,address)","1db9ec2c":"ENDDATE()","1dba92ab":"setKeys(address,uint256)","1dbb0bff":"buyBlock(uint256,uint256,bytes32,bytes32,bytes32,bytes32)","1dbb9867":"buyEggFee()","1dbbda4d":"bytesToUint(bytes20)","1dbc04ae":"setVestingToken(address)","1dbcc5ad":"RiesGraham()","1dbd21c3":"Daereum()","1dbdd617":"LILITHCOIN()","1dbdd792":"MIDGRADE_TYPE_COUNT()","1dbde6c7":"maxTokenSupplyICOEND()","1dbe342d":"TRND()","1dbe6508":"bobClaimsDeposit(bytes32,uint256,uint256,address,address,bytes)","1dbf3bc7":"spend(uint256)","1dbf79a3":"TicketGlobalChain(uint256,string,string)","1dc05f17":"subtract(uint256)","1dc0819e":"_isBreedingPermitted(uint40,uint40)","1dc1166f":"horseSold(uint256)","1dc17cce":"VALUE_DISTRIBUTION_KEY_OWNERS()","1dc18c45":"editNode(uint256,address,bool,address,uint8,bool)","1dc18f7a":"hashAmount(uint256,uint256)","1dc1c5e3":"payMoney()","1dc30bdb":"payJackpot5()","1dc3ac22":"setOwnerNickName(address,string)","1dc436cd":"getIDChildRelationshipCountOperationParentProductPositionReferenceBinding(string,address,uint256,uint256)","1dc45248":"getMoveCount()","1dc45c6d":"spenderDecreaseApproval(address,uint256)","1dc55c2d":"GetDividends(address,uint256)","1dc615bc":"checkIfAllARTDistributed()","1dc76e78":"buyPlayerDataRecord(uint256,uint256,uint256)","1dc7f1b4":"getaddressname()","1dc82285":"oldBalance()","1dc8a3bb":"B123Token()","1dc9186a":"updateWeiAmountShare()","1dc9a3b9":"transferDomainOwnership(bytes32,address)","1dc9bb48":"hasDividends()","1dcb0d36":"goBackToPreSale()","1dcb304b":"fipsGenerate()","1dcb66ff":"coordinatesOf(uint256)","1dcd0305":"toStr(bytes32)","1dcd5312":"editMessage(string)","1dcd9b55":"substring(string,uint256,uint256)","1dcdf215":"getCoursesCount()","1dce0b5c":"getNoteKeysCount()","1dce77b8":"Linkmanagement()","1dce79cf":"blockchainExchange(uint256,int256,bytes32)","1dcea427":"erc20token()","1dd0c71b":"myPendingPayment()","1dd1349d":"getNameHash(bytes32)","1dd14317":"setProtocolVersion(address,bytes32)","1dd14a96":"totalSupplyPaillier()","1dd15fca":"tokenInWhiteList(address)","1dd16db6":"customBonus()","1dd17e7d":"setPreSaleParameters(uint256,uint256,uint256,uint256,uint256)","1dd300ce":"lastWithdrawal()","1dd46c1e":"getTxCount()","1dd4914b":"withdrawEtherOrThrow(uint256)","1dd49208":"getFeed(uint256,uint256,uint256)","1dd49cae":"remWhitelist(address[])","1dd5301a":"PRICE_PREBUY()","1dd572a0":"fortune_sell(uint256,uint256,uint256)","1dd637d8":"emergencyProtectedMode()","1dd6f85e":"CreateLOK(address,uint256)","1dd72454":"TransferManual(address,address,uint256,string)","1dd7335c":"allocateDividendsToWinners(uint256,address[],uint256[])","1dd7cf6d":"getHumanInfo(uint256)","1dd80586":"getPlayerSpaceshipBattleStakePaidById(uint256)","1dd85687":"adminSetEnviroment(uint256)","1dd8f053":"minPriceInWeiForIco()","1dd95a98":"AIRDROPS_COUNT()","1dd9a3cf":"_sendEthereum(uint256)","1dda5c7d":"testFailSubBalanceBelowZero()","1ddabf7a":"friends(address)","1ddb9105":"creditVault(uint256,address,uint256)","1ddc0ef0":"audit()","1ddd303d":"setV_R3(uint256)","1ddd39cc":"addcoinslimit()","1dddbf07":"confirmExchange(address,uint256)","1ddde716":"advisorsAccount()","1ddf147f":"assignedDoublrContract()","1ddf9729":"IncomeTaxCalc()","1ddfd7db":"supportsTradingPair(address,address,bytes32)","1de012cd":"TRUST()","1de032a5":"setIsStudio(address,address,bool)","1de0e877":"proposedControllerPendingUntil()","1de14175":"setDelegadoDeEscuelaVerify(bytes32)","1de1441f":"remainingEPXSupply()","1de1ee7b":"addPublicKey(bytes32,address)","1de21b76":"P1()","1de22867":"BeatTokenPurchased(address,address,uint256,uint256)","1de250bf":"bless(string,uint256)","1de26e16":"deposit(bytes32,uint256)","1de271a4":"cap_tmx()","1de28857":"getShareBalance()","1de38038":"makercoin(uint256)","1de3d4b9":"ReleaselockAddress(address)","1de4334a":"get_time_locked_contract(uint256)","1de46a78":"admin3()","1de473ea":"setC4FContractStatus(address,uint8)","1de54fcd":"unlockedNowBalanceOf(address)","1de7f3e3":"setBankrollpercentage(uint256)","1de95d74":"AREFWallet()","1de98d93":"deleteUserByEmail(bytes32)","1dea0c57":"getRealBet(uint256)","1dea157f":"getPaintingArtist(uint256)","1dea3f0c":"recordOffchainPurchase(address,uint256,uint256,string)","1dead827":"_percentSoldInICO()","1deb0a8f":"changeState(bool)","1deb112b":"initialSupplyPublicPreICO()","1deb9b9e":"EventBid(address,uint32)","1debbe2f":"addExp(uint256,uint32)","1dec8585":"getCurrentStageByTime()","1ded2d87":"Transaction(address[2],bytes,uint256,bytes32[2],uint256[3],bytes32[3],bytes,bytes)","1ded319d":"numberOfClaimed(address)","1ded587c":"Hotlist()","1dedc6f7":"consume()","1def4c9d":"TransferToBTCoE(uint256)","1def5033":"taskArray()","1df0187b":"BONUS_AMOUNTS_VALUES(uint256)","1df025d6":"updateGoalCheck()","1df0e359":"createForecasting(uint256,uint256,uint256)","1df13f28":"ICOBonusPercent2week()","1df19259":"Khabayan()","1df1ec82":"getProviderOwner(uint256)","1df224c1":"privateToken()","1df2bcbc":"setPresaleCont(address)","1df36e63":"delInvestor(address)","1df3e8a9":"GuardaProva(string,string,string,string)","1df411a6":"setOfferTime(uint256)","1df4241f":"StatEvent(string)","1df473bc":"newContract(bytes)","1df47aad":"ReplayProtection()","1df4ccfc":"totalFee()","1df4f144":"multiply(int256)","1df5a8f4":"GlobalBTC()","1df5e755":"Etherandom()","1df68102":"createSellOrder(uint256,uint256)","1df6d86e":"_buyLeader(uint256,uint256)","1df73f51":"getFreeSperm()","1df87cad":"raiseBuyOrderCancelled(address,uint256,uint256,uint256,uint256,uint256,int160)","1df8eaa2":"showAuthorizerTwoAmount()","1df93558":"fundingStartTime()","1df95786":"envelopes(uint256)","1dfa0cf6":"ConfirmDispose()","1dfa3ca8":"thirdPartyInvestments(address,uint256)","1dfbf227":"makeInvestment(address,string,uint256,uint256)","1dfc91d4":"TokenPresalePurchase(address,uint256,uint256)","1dfd04b9":"buyEmptyPixel(uint256)","1dfd1ddd":"ListNotValSince(uint256)","1dfde4a5":"test_insert_findWithHintPrevAtPosition()","1dffa3dc":"cancelJob(uint256)","1dffd012":"getUserManager()","1dffdbe6":"trade(string,uint256,uint256)","1e0018d6":"investor()","1e010439":"getBalance(uint256)","1e0197e2":"tournament()","1e01a0e6":"doit(address)","1e01a172":"issueDescription(uint256)","1e021b2b":"getproductstatus()","1e02bf62":"checkOutstandingQueries()","1e02f805":"newInvestment(address,uint256)","1e031a00":"QuickFlip()","1e0419d4":"finalWinner()","1e04e856":"depositEth(address,address)","1e04eee9":"mintChipUnsafely(uint256,bytes32)","1e0582e9":"_daysFromDate(uint256,uint256,uint256)","1e05e0c8":"bonusesForTimesCount()","1e0610f6":"getRealty(address,uint256)","1e063d98":"MRDSTSCoinToken()","1e06c41f":"saleStartUnixTime()","1e06e25e":"Zoo721(address)","1e075aba":"batchUnlockVestedTokens(address[])","1e08045d":"getOwnedTanks(address)","1e084558":"licenseInfo(uint256)","1e095eb3":"GHPToken()","1e0976f3":"receiveVerification(uint256,uint256,uint256,bool)","1e09e67b":"Rasthen()","1e0a0f60":"info_CanBeClaimed(uint256)","1e0a24b1":"revertIfReturnLessThanMin()","1e0b760c":"Cancel(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","1e0b8c87":"hasSkills(address,uint256,uint256,uint256)","1e0c60e2":"SGem()","1e0c7ed4":"setConfigBool(bytes32,bool)","1e0e17a2":"claimMistake(bytes32)","1e0e3925":"numElements()","1e0efae1":"claim_devidend()","1e0f6ed8":"TokenSaleFinished(uint256,uint256,uint256,uint256)","1e0f9795":"getNewFib(uint256)","1e11764e":"GameFinished(uint256,uint256,string,uint256,address)","1e120efb":"showEducationDetails(uint256)","1e1401f8":"getReturn(address,address,uint256)","1e141bb0":"releaseTime4()","1e14d823":"addMarketplaceContract(address)","1e16521b":"fulfillBurnRequest(uint256,string)","1e16980c":"setUnburnableWallet(address)","1e171d7c":"hasFunded()","1e172e90":"TransferHappened(uint256,bytes32,address,address)","1e1781af":"unfreezeAccount(address,bool)","1e179ae0":"getToken(bytes32,uint256)","1e17f292":"getAPRTx(uint256)","1e185b2a":"BTEcoin()","1e186e4c":"TestERC20()","1e18c404":"huroc()","1e191c0f":"goalSale()","1e1a48cf":"transferMethodId()","1e1a4eef":"setShareTokenAddress(address)","1e1a90a6":"onPayout(address,uint256)","1e1ad51c":"getFunding_Old(uint256)","1e1b13c0":"coinAge()","1e1b2e0f":"getLotteryPrizesLength(uint256)","1e1c72f4":"requestFreezeAccount(address,string)","1e1c86b7":"CCProject()","1e1d237e":"getSortedArray(uint256[])","1e1d696a":"changeLibAddress(address)","1e1ddacc":"saleController()","1e1e0a5e":"doHash(string,uint32,string,string)","1e1e3e0f":"vaultBalance(string)","1e20363a":"setTokenMetadataBaseURI(string)","1e204acf":"HODLrSoldWin(address,uint256,uint256,uint256)","1e20b4b9":"allocateAllUnsoldTokens(address)","1e215f70":"gbtAddress()","1e217bf8":"releaseUnclaimedFunds()","1e223143":"getFirst()","1e22648a":"setSnapshotBalance(address,uint256)","1e2273a7":"convert256ToReal(uint256)","1e22ffa5":"ClickRUB(uint256,string,string)","1e23300b":"createDiamond(string,address,string,string,string,string,string)","1e2466c6":"ICOTerminated()","1e24e029":"createRequestAsPayer(address[],int256[],address,uint256[],uint256[],string)","1e25dc54":"transFee()","1e2629e1":"initiateMigration(address,address,address)","1e26fd33":"setBool(bool)","1e273649":"getCountPartipants()","1e275d5f":"mock_getUInt(address,address)","1e279a37":"get_balance(address)","1e27a965":"JullarCrowdsale()","1e27ae4d":"getRecordHolder(uint256)","1e28a3a5":"attachCrowdsale(address,address)","1e28ba20":"YeojinToken()","1e28f29b":"initialTiers()","1e2a9d4c":"topup(address,address,uint256)","1e2aebf9":"ETHERCREDIT()","1e2b6db2":"getBdpEntryPoint(address[16])","1e2bdfdf":"setAdvPrice(uint256)","1e2c23b3":"toEth(uint256)","1e2c74f6":"kill(bool)","1e2ca0f3":"updateLeftLottery(address)","1e2d5651":"totalContrib()","1e2da3e9":"PawsCoin()","1e2def3a":"saleStopTimestamp()","1e2e35a4":"sellPoohs()","1e2e3a6b":"getExchanges()","1e2e7a06":"registrationTime()","1e2ed152":"ECO_SYSTEM_BONUS()","1e2f48da":"assertOwnersAreConsistent()","1e2fc4f7":"test_mint()","1e2fee94":"CatDestinity()","1e2ff94f":"currentTimestamp()","1e2ffcef":"Show_All_Company()","1e30397f":"isValidName(string)","1e30b599":"Processables()","1e31264d":"_premiumPricePer30Days()","1e3339f0":"MTT()","1e335962":"token_multiplier()","1e33a6d5":"setGasUsage(bytes4[5],uint256[5])","1e34c585":"setConfig(uint256,uint256)","1e35e567":"fetchOrderByIdWithMerchant(string)","1e36d755":"sendTokenToOwner()","1e372dd3":"Advanced_Anemoi(uint256,string,string)","1e375ab9":"claimReferralBonus()","1e38046c":"address3()","1e38a011":"setRoutePrice(uint256)","1e391738":"minimumGoalInWei()","1e39499d":"scheduleCall(address,bytes,uint256)","1e3a5831":"Claimable(address)","1e3b92b4":"getGalaxy(uint256)","1e3b9de5":"getClaimant(address)","1e3ba116":"_supportsAllInterfaces(address,bytes4[])","1e3ba941":"StexTalk()","1e3c73bd":"BdpPriceStorage(bytes8)","1e3c9352":"grant(address[])","1e3d9c04":"removeLink(address,bytes)","1e3e6369":"GetMySnail()","1e3ea569":"SentTokens(address,uint256,uint256,uint256)","1e3f11ee":"getPlayerGeneralAttr(uint64,uint8)","1e3faf22":"airdropNum1()","1e40375f":"killTo(address,bytes32)","1e4092e5":"FOUNDER_AMOUNT()","1e4146b0":"generateCombinationKey(uint8[4])","1e41583b":"reclaimElement()","1e41be58":"deleteApplication(string,bool)","1e41f63e":"viewAll(string)","1e42698b":"setScrapAuctionDuration(uint256)","1e440e02":"TKCDStandardToken(uint256,string,uint8,string)","1e442919":"getAccessoryLockStatus(uint64)","1e4433c4":"getVar(string)","1e44b919":"KAPAYcoin(uint256,string,string)","1e44c112":"find_strike(uint64,uint32,uint32)","1e44e6af":"setPI_edit_10(string)","1e4532f1":"balances_bonus(address)","1e45de61":"GetWinningAddress()","1e4623e1":"segmentHash(string,uint256,bytes32)","1e464460":"AscendGod()","1e466eee":"triggerVolcanoEruption()","1e49d5ab":"getUserInfoAndConfig(address)","1e4a126e":"BeforeChipObtain(uint32)","1e4adcf7":"weiDonated(address)","1e4b5652":"setKNCRate(uint256)","1e4ba4d4":"swap(uint256,address,address,uint256,uint256,uint256,uint256)","1e4bb033":"HcoinToken()","1e4bd42c":"claimAllTokens()","1e4bdf27":"TransferActive()","1e4bffde":"_getBegin(int256)","1e4c6e7e":"gatito()","1e4c6f7c":"base_token_seed_amount()","1e4c7736":"updateManyLandData(int256[],int256[],string)","1e4ccdc4":"resultDraw()","1e4d17c5":"setFundraiserAddress(address)","1e4df315":"HRChainERC20()","1e4df938":"referralPool()","1e4f95c7":"pipeMoney()","1e504c9c":"setRegisterPrice(uint256)","1e5140dd":"closeTradeProfile(bytes,bytes32)","1e516c32":"OMIVIATEST()","1e519c4c":"getCurrentModifier()","1e51a907":"getServiceNames(bytes32,address[],address)","1e51cb10":"_MineId()","1e5253a4":"RegisterShareholder(address)","1e5296ef":"getMySellOrdersBlackMarketComplete()","1e52aa52":"startBetRed()","1e52ca35":"ROLE_SUPER()","1e52f7b5":"accoutToPayLevel(address)","1e5330ca":"checkBetResult(uint8,address,bytes32,bytes32)","1e5393cf":"setDividendAndPayOut(uint32,uint32)","1e53a3a0":"SetContracts(address,address)","1e53efe0":"getBonusAmount(uint256)","1e542fd4":"AddLock(address,uint256,uint256,uint256,uint256)","1e550ca2":"carTaxiTokenAddress()","1e552efc":"MarnieCoin()","1e5571bc":"getTankSell(uint32)","1e561d5e":"createSellingProposition(address,uint256,uint256,uint256)","1e566dae":"_moveToken(address,address,uint256,bytes,address,bool)","1e567582":"gxc()","1e57e3bb":"EtherReceived(address,uint256)","1e580615":"cashIn()","1e5890c4":"saveResult(uint256)","1e59b53f":"Medallion()","1e59c529":"register(string,address)","1e5a652b":"MDICOStage1(address,address,uint256,uint256,uint256,uint256)","1e5b433b":"testTransferControl()","1e5bd14a":"setRegulator(address,bool)","1e5c6176":"BitChordCrowdsale(address,address)","1e5d1a4c":"End(string)","1e5d2e41":"geneCore(uint256,uint256,uint256)","1e5d2e78":"_updatePools(uint8,uint256)","1e5e668f":"fetchDataMain()","1e5e8aa9":"token_rate()","1e5f34af":"sub(uint8,uint8)","1e5f3569":"createEIP20(uint256,string,uint8,string)","1e5f35f3":"Prover()","1e5f9149":"getWinner(bytes32)","1e5fc8e7":"bonusThirdWeek()","1e5ff41a":"tier5()","1e6000c2":"AffiliateReceived(address,address,bool)","1e6090f4":"isContractDeprecated()","1e60ab84":"PalaceResidence()","1e625935":"SelfPayPreSale(uint256,uint256,uint256,uint256,uint256,address)","1e626456":"tokenFallbackData()","1e6288fa":"soldTokenValue()","1e629a75":"StartNextStage()","1e62a511":"cHWCtoEth()","1e62a915":"set_participant_topl_address(address,uint256)","1e62be25":"Bytes32Passer()","1e639798":"reset(address,address,address,address,address,address)","1e63b3d3":"bancorConverterAddress()","1e658b74":"_userSignUp(string,address)","1e659135":"PVBToken()","1e65dc88":"EtherMemes()","1e6704bd":"maintenanceSetAccountsList(address[])","1e688c14":"fulfillBounty(uint256,string)","1e6b0e44":"finderFee()","1e6b4c6f":"setStakePeriod(uint256)","1e6bd462":"getAllGamesCount()","1e6c3d0e":"BLACKCOIS()","1e6c593c":"checkClaim(string,string)","1e6d4180":"stageBonus()","1e6d58ce":"AHA_Token()","1e6efc83":"setRestartGamePeriod(uint256,string)","1e6f01a7":"setPI_edit_23(string)","1e6f9c1e":"adjust_Transfer_data(bool)","1e701780":"MICRODAO(address,uint256,uint256,uint256,address)","1e70a239":"getAllGiftTemplateIds()","1e711ec0":"plan_active_time()","1e7230c5":"benReady()","1e7231b6":"disablePhenomenon(bytes32)","1e724447":"icoTill()","1e725589":"getAddressesFromUsernames(string[])","1e72a7fc":"calculateVariation(uint64,uint64,int64)","1e72d642":"BezantToken()","1e737709":"getSourceValue(uint256,uint256,uint256)","1e73b362":"withdrawContractEther(uint256)","1e7401d9":"ArconaToken(uint256,uint256,address,address,address,address,address,address,address)","1e745e61":"createContest(string,uint256)","1e74a2d3":"getMinimumEndowment()","1e74c414":"WashExchange()","1e7527b0":"setOwner(uint32,int256,address)","1e75c12d":"ETLTokenPresale(address)","1e7769de":"tryForcePublic(uint16)","1e77933e":"change(address)","1e77b2e0":"updateRate(string,uint256)","1e78cfe1":"minimumPayout()","1e79933f":"removeTagByModuleType(uint8,bytes32[])","1e7a505f":"register(address,bytes32)","1e7a5bf7":"testMintAuth()","1e7ae71f":"owner1Of(uint256)","1e7be210":"whitelists(address)","1e7bef65":"setIncubatorContract(address)","1e7c20ac":"getCompte_24()","1e7c27cb":"ADMIN_CONTRACT()","1e7c402b":"test_percOf2()","1e7cedb7":"TKTToken()","1e7d84cb":"getproduuct(uint256)","1e7de8cc":"setChibiGEN0Price(uint256)","1e7e2064":"addPeers(address[])","1e7e4b5e":"PREISSUED_AMOUNT()","1e7ea8d5":"getFreelancerCategories(address,address)","1e801c8c":"sealForChanges(uint256)","1e81086d":"setDirectMintAgent(address,int256)","1e815fcd":"isBuyOpen()","1e81ccb2":"pings()","1e820325":"finalizeRound()","1e822140":"transferToLockedBalance(address,uint256)","1e829230":"createGrant(bytes32)","1e82965e":"DCTR()","1e83409a":"claim(address)","1e83bab7":"singleInvokeWith2Args(address,string,address,uint256)","1e83cdab":"extract()","1e83ce17":"houseFeeThreshold()","1e83e697":"setTokenOptions(bool,bool,bool)","1e841271":"setTestFee(uint256)","1e84c725":"emergencyTransfer(address,address,uint256)","1e85107c":"bonusPercentages(uint256)","1e8551e3":"voteRewardPerUnit(uint256)","1e85e8f0":"TLN_TOKEN_SYMBOL()","1e860d43":"setNewInvestorsList(address)","1e86ccf5":"setOperatorCommission(uint256)","1e871309":"rewards_id(uint256)","1e872f55":"setPlayerLastUpdateTime(address)","1e8784c9":"SabrinaToken()","1e87fe1d":"setSmallCapWhitelistParticipant(address,uint256)","1e8812f3":"BonusCrowdsale(uint256)","1e891c0a":"setTimelock(uint256)","1e892c21":"returnForRedemption(uint256,uint256,uint256)","1e893437":"stageClose()","1e8997ec":"PUNCToken()","1e89c83b":"read_where_gadget(uint256)","1e89d545":"multiTransfer(address[],uint256[])","1e8a98cf":"UP_totalBets()","1e8b0d03":"EventBankrupt()","1e8bf006":"getNumbersFromString(string,string,uint16)","1e8bf1f9":"readInt256s(bytes32[])","1e8c72b4":"incrUserAvailBal(address,uint256,bool)","1e8d1510":"KeyFund(uint256,uint256)","1e8d15f8":"LasVegas()","1e8f11ab":"candleCost()","1e8fba36":"fortifyClaim(address,uint16,uint256)","1e909841":"getEmployerContracts(address,address)","1e912334":"maxDonors()","1e923f1b":"myAddr_test()","1e924bf8":"tokensReleasedPerPeriod()","1e92a65c":"teamAmounts()","1e935ab1":"requestPause()","1e93c209":"powerPool()","1e93d358":"multiStake(uint256,uint256,uint256,uint256,uint256)","1e9447f3":"hasDuplicate(string)","1e9493d8":"ETH_MAX_GOAL()","1e962e62":"F0002Token()","1e96bf0e":"separate(address,uint256)","1e9824ee":"setExchangeRates(uint8,uint8)","1e982b40":"saleOverInTime()","1e98d334":"initRace(uint8[4])","1e98d54a":"addGlobalConstraint(address,int256,bytes32,address)","1e9a04a7":"secondRoundICOStart()","1e9a6272":"onDelivery()","1e9a6950":"redeem(address,uint256)","1e9b1312":"accountAddress()","1e9b91db":"VictorieumNewICO2Token()","1e9be6a1":"usdEthPrice()","1e9bf0da":"disown()","1e9cefa3":"updateEmployeeWallet(uint256,address)","1e9d2d28":"NewGame(uint256,bytes32,bytes32,bytes32,address,uint256)","1e9d3bc9":"LZXToken()","1e9d48cf":"checkUser(address)","1e9d8232":"TheGame(address)","1e9da16a":"n_domains()","1e9dd927":"kycVerify(address,bool)","1e9e541c":"TEAM_TOKENS2()","1e9e6949":"ActiveChanged(address,bool)","1e9e928e":"GBPValue()","1e9ea66a":"balanceEther10000000(uint256)","1e9eb554":"deathData_v14()","1e9f3c24":"ETH888CrowdsaleS1(address)","1e9f6dcb":"ticketsFaceToFaceSold()","1e9fcc77":"activateAllowance(address,address)","1ea06b9e":"_allowManualTokensGeneration()","1ea0d0de":"endRace()","1ea103d0":"Registra()","1ea134b9":"PeculiumOld()","1ea1380c":"getScores()","1ea1e522":"claimF()","1ea333ea":"_generateDutchAuction(uint256,uint256)","1ea3cae9":"addressToAccountMap()","1ea48870":"isFunder(address)","1ea5a292":"endorse(uint256,uint256)","1ea5efc4":"partner1_voted_update_marriage_status()","1ea6af82":"reward9()","1ea7b0f9":"Bilibit()","1ea82655":"generatePartnerTokens(uint256)","1ea8b099":"endMark()","1ea906b5":"leftTokens()","1ea90acd":"fetchOrdersForPayer()","1ea92826":"currentTierIndex()","1eaa6c4b":"firstTokenExchangeRate()","1eab0a95":"testingContracts()","1eabc116":"buy(uint16)","1eabef31":"YKToken()","1eada765":"getConditions(uint256)","1eae5ff9":"getWaitPreselled()","1eae85cb":"priceOfDate(uint256,uint256,uint256,uint256)","1eaec76f":"FENIX(uint256)","1eafe00c":"isAmendedEarlyPurchase(uint256)","1eb02078":"getUIntTypesCount(uint8[])","1eb21875":"artistManifestoFundAddress()","1eb22b45":"sellerDatabase(address,uint256)","1eb25d13":"InitialSupply()","1eb25e0a":"configure(uint256)","1eb3957b":"requestDelegatedFrom(address)","1eb42523":"update(address,address,address)","1eb4dac6":"endSecondWeekICO()","1eb55c51":"CEI()","1eb5cb66":"resume(string)","1eb5de94":"privateExchangeRate()","1eb5ea2e":"returnFunds()","1eb726af":"contractAddress(string)","1eb79e44":"gasForGR()","1eb8befb":"setNewMediator(address)","1eb92366":"setRecommenderMulti(address[],address[])","1eb96a5c":"cancelOwnershipOffer()","1eb96f7c":"MahalaToken()","1eba7c7a":"setDefaultClaim(string)","1ebb24bc":"_postTransferHook(address,address,uint256)","1ebbc515":"MakerWithdrewAsset(uint256)","1ebbe681":"getWinningById(uint256)","1ebcbc93":"transferAdminShip(address)","1ebcdba4":"getWactive(uint8)","1ebcf2fb":"reclaimParsecCredit()","1ebd8263":"setMinimumBuyAmount(uint256)","1ebd8e6d":"XEVENUE()","1ebdaf8b":"testNewAccountHasZeroBalance()","1ebdd39a":"getWithdrawalData(uint256)","1ebde78b":"getSecondsTimeLockedByString(string)","1ebe1827":"EthLongExercised(address[2],uint256[8],uint8,bytes32[2],uint256,uint256)","1ebe5051":"StarzToken()","1ebe5c0f":"sendWithAllOurGasExcept(address,uint256,uint256)","1ebe8105":"tokenPriceUSDWEI()","1ebeb80b":"getBools()","1ebebb9b":"_checkAndSub(bytes32,bytes32)","1ebedded":"setAllRates(uint256,uint256,uint256)","1ebeec82":"_withdrawNAC(address,uint256)","1ebf0d11":"sellAllAmount(address,address,uint256,address,uint256)","1ebf1f5b":"hasSellerGuarantee()","1ebf42e5":"TokenAFL(uint256,string,uint8,string)","1ebfa2df":"getDiscountsAmount()","1ebfa358":"dateToTimestamp(uint16,uint8,uint8)","1ebfdca0":"servicesLength()","1ec29a5f":"getPurchasedAmount()","1ec32d15":"companyWallet()","1ec41163":"lastWinnerAddress()","1ec42d50":"_createWarrior(uint256,address,uint256,uint256,uint256,uint256)","1ec68b92":"saveMetaData(address,bytes,bytes32,bytes32,bytes32,bytes,uint32,uint256,uint256,bytes,uint256)","1ec6b60a":"startVoting()","1ec6dba6":"SimpleSaleToken()","1ec75025":"developerWithdraw()","1ec762a4":"setlvlWebsite(string)","1ec7cda4":"addTokenInternal(address,address,uint256)","1ec7e345":"tokenValue()","1ec87b86":"getTravelPrice(uint256)","1ec8a460":"AdifyToken()","1ec8bb8c":"distributeReward(address,uint256)","1ec8d5f7":"initialReleaseDone()","1ec8f9ba":"purchaseTickets(uint256[])","1ec9c2c0":"Sub(uint256,uint256)","1ec9f7b5":"longTimeLock()","1ec9fc84":"pendingFeesWithdrawals(address)","1eca98ce":"transferToAdvisors(address,uint256)","1ecb3889":"EurocoinB()","1ecb450e":"Devpr()","1ecc05f2":"validDelegate(address,string,address)","1ecc56f2":"initTimeOf(uint256)","1ecc644f":"vestStage()","1ecca316":"nextFreeTier()","1ecd0d03":"PoSPerCent()","1ecd3f30":"tokenReserved4()","1ecd9f21":"calculateDrugBuy(uint256,uint256)","1ecdfd2f":"setIEIAddress(address)","1ecfd4c3":"takeToken()","1ecfe64d":"_jSub(uint256,uint256,uint256,uint256)","1ed01f61":"maxWagerWei()","1ed0c2cc":"LifeSet_004()","1ed0e01c":"ltdParams()","1ed113ae":"getSignature(bytes)","1ed1d0f7":"KryptoGiftsMessages()","1ed1f196":"pf(address)","1ed20347":"cfo()","1ed24195":"getPeriod()","1ed2730a":"createInvoice(uint256,address,address)","1ed358e6":"recycleAppearance(uint128[5],uint256,uint128)","1ed378a1":"getHybridizationPrice(uint256)","1ed454a5":"memberLevel(address)","1ed5336b":"changeExerciseprice(uint256[],uint256[],uint256[])","1ed5da2f":"Controller_Address1()","1ed64f7b":"is_king_for_sale()","1ed692c0":"finalizeCrowdfunding()","1ed6a6ab":"emitFeeAuthorityUpdated(address)","1ed6f423":"changeDescription(address,string)","1ed77dc8":"presaleWallet()","1ed7830e":"partnerWallet()","1ed83fd4":"setHash(string)","1ed8f023":"BlockableContract()","1ed96e32":"disableTransmit()","1eda49be":"AheVotingBrainfood2()","1eda61d4":"customBonuses(address)","1edb0e73":"GILToken()","1edc44ed":"GameCoinToken()","1edc5ce0":"SUPPLY_FOR_MARKETING()","1edc8f03":"withdrawalEth(uint256)","1edc8f91":"openAuction(uint256)","1edd19e1":"bidExpireBlockLength()","1edf0c1e":"lockAndDraw(address,bytes32,uint256)","1edf0c3d":"TESTTOKEN()","1edf49ff":"myFirstToken()","1edfdb48":"addjoinlist_odd(address,uint256)","1ee04a3d":"TLTContract()","1ee13d0a":"creditDao()","1ee1665d":"WAMToken()","1ee17afd":"Thief()","1ee185ad":"roleRemove(address,string)","1ee284b1":"rockOwners(address,uint256)","1ee2e3cf":"unsetBlacklist(address)","1ee2fe6a":"defreeze(address,uint256)","1ee392c6":"getMaxProfitAsPercentOfHouse()","1ee426e1":"Eth2preNSP(uint256)","1ee44a5e":"listRequire(string,uint256,uint256,uint256)","1ee45da0":"sellEndTime()","1ee53e56":"presaleRate(address)","1ee55080":"getMotherCount(uint32)","1ee5f936":"stopTeamTokenTransfer()","1ee7c4bc":"LogNewAllocation(address,uint8,uint256,uint256)","1ee7ccc7":"preIcoInvestorsAddresses(uint256)","1ee9f029":"PREICO_HARDCAP()","1eea92c1":"levelExpAdjustment()","1eeaa389":"lockSupply(bool)","1eeac5d5":"TradelizeToken(uint256)","1eeccead":"tokensAlreadyMinted()","1eed0347":"applicationNameHashTaken(bytes32,bool)","1eed0f27":"setPriceUSD(uint256)","1eed1192":"newUser(string)","1eed4e09":"getVoteBy(address)","1eee993a":"addChild(address)","1eef94bd":"setAwardedUnfreezePeriodSeconds(uint256)","1eefddb1":"grace()","1ef0625b":"player_2(uint256)","1ef085db":"price3rdWeek(uint256)","1ef09ccf":"executeDelegateCall(address,uint256,bytes)","1ef17972":"ChangeOwner(bytes32,address)","1ef2c6d1":"closeTurnByHand(uint256)","1ef31b0d":"erotixFund()","1ef3755d":"restart()","1ef410e2":"addAudit(uint256,bool)","1ef5b90f":"release_(address,uint256[],uint256[])","1ef60485":"returnAccounts()","1ef741fd":"interestPeriod_()","1ef75084":"getCompoundPlan(uint256)","1ef75b1a":"GGToken(address,string,string,uint256,uint256)","1ef7b68a":"purchaseReceiptById(bytes32)","1ef987c1":"getInvestedAmount(address)","1efad671":"isPreSaleReady()","1efb06e0":"LogNewWallet(uint256,address)","1efb17ee":"changeHouseAddress(address)","1efba6c2":"fixedPrice()","1efdebb2":"hodlersCount()","1efe3abf":"getNumTasks()","1eff2b2f":"advisorIssueVesting(address,uint256)","1effc0d8":"createPerRound()","1f00c55b":"TOKENS_CAP()","1f0276fc":"_getKey(bytes32,uint256)","1f03bc1b":"setNewUserBonusCardTradable(bool)","1f049a49":"tokensBank()","1f04b54c":"test_ConsensysReached()","1f04becc":"ppFinishTime()","1f05ff29":"fromWeiToFp(uint256)","1f065f56":"KangGuo()","1f06c859":"promises(uint256)","1f078962":"setFlowerContract(address)","1f078f56":"winTokens(uint256,address)","1f0815ce":"togglePromo(bool)","1f09b0a2":"getDisplayGenVault(uint256)","1f0a21ad":"setAdvisers(address[],uint256[])","1f0b2561":"getCurrentBonusPercentage()","1f0b5553":"setBalances()","1f0ba6c9":"trade()","1f0c03f4":"forwardEndTime(uint256)","1f0c1e0c":"getEventTokenAddress(bytes32,uint256)","1f0c5f26":"CashMove(uint256,bytes32,address,address)","1f0da298":"transferTokensAndEtherValue(address,address,uint256,uint256)","1f0de21c":"addrunmoney(address,uint256,uint256)","1f0f2ce4":"withdrawOrderRefund(uint256)","1f0f711f":"discontinue()","1f0fd191":"test_threeValidEqUint()","1f0fd905":"getAssetIdCargo(uint32)","1f101520":"preIcoMin()","1f107635":"ownerSetAdmin(address[])","1f1144dc":"ViewOffer(address,uint8)","1f11d503":"GameSicBo(string,uint256,uint256,uint256)","1f124116":"approveSettingUpdate(uint256,bool)","1f12da06":"getPropertyPrivateModeLastUpdateEarnUntil(uint16)","1f130761":"tokensSent()","1f130d1f":"insertAddress(address)","1f13b5ae":"NokuMasterToken(uint256,uint256)","1f13de92":"inEther(uint256)","1f13f165":"NecromeunToken()","1f14df69":"balances(address,bytes32)","1f150322":"LogUserUnregistered(address,address)","1f15bc1b":"disallowTransfersTo(address)","1f15e163":"LaunchRocket(uint32,uint32,uint32,uint32,uint32,uint32)","1f161533":"distributeXYZ(address[],uint256)","1f167829":"nextDraw()","1f16c8b9":"getEndDateOfCampaign(bytes32)","1f16fda4":"multiTransfer(address[],address,uint256[])","1f1836fa":"isPresalePurchase()","1f1886e4":"extendSale(uint256)","1f18e56e":"removeOwnersWithHowMany(address[],uint256)","1f194b9f":"getFreeKilo()","1f1953ad":"addPokemonToMaster(address,uint256)","1f1aea6e":"initSale3(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","1f1b11cc":"buyMinerFromSale(uint256)","1f1bd005":"getRocCoreAddress()","1f1bd692":"text()","1f1c827f":"StartGame(string,string)","1f1c84b7":"decreasePresetTransfer(address,uint256)","1f1cb62b":"peg()","1f1dc61b":"checkPayLoan()","1f1de456":"regName()","1f1e1295":"isApprove(uint256)","1f1e2cfa":"calcUnMaskedEarnings(address,uint256)","1f1e6c4e":"createCollectible(uint256,uint256,address)","1f1ea554":"HolahopToken()","1f1ec029":"updateKeyPrice(uint256)","1f1eef6b":"getContributionHashByIndex(uint256)","1f1f5e76":"addValueToContribution(uint256)","1f1f8240":"_parseIntScientific(string)","1f201d7e":"level_judgment(address,address)","1f201e39":"etherandomExecWithGasLimit(bytes32,bytes32,uint256,uint256)","1f20f762":"losingAmount(address,uint256)","1f212106":"startICOStage7()","1f218cf1":"ICO_PERIOD()","1f21f9af":"marketMaker()","1f220be0":"unlock(string,bytes32,address,address,uint256)","1f221d4c":"updatePublicityBalance(address,uint256)","1f227fc8":"importTokensFromSourceToken(address)","1f23a9bc":"getAcceptedAndRejectedVotes(uint256,uint256)","1f23c22b":"getOpenBids(bytes32)","1f25cfaf":"changeBot(address)","1f261939":"payBid(bytes32,uint256)","1f2698ab":"started()","1f275713":"prefixed(bytes32)","1f278d32":"MyartPoint()","1f27a8b5":"set_transferrable(bool)","1f28c821":"tokensPreMinted()","1f296600":"brickETHPrice()","1f299c1a":"updateRegistry(bytes32,address)","1f29bdcf":"setAStore(string,address,address)","1f2a3e06":"scissors()","1f2c6414":"getAddressBatchByUsername(bytes20[])","1f2d62bc":"gameStartedAtBlock()","1f2d8d66":"getNumberVote(uint256)","1f2dc5ef":"divisor()","1f2e5461":"LOUDEX()","1f2e886c":"testControllerTransferTriggersEvent()","1f2e97c8":"slaveWalletPercentInitialized()","1f2ea6e0":"dealership(address)","1f2ec9c9":"setHoldAmount(address,uint256,uint256)","1f2efa83":"allocateIntoHolding(address,uint256,uint256)","1f2f7fc3":"dispute(uint256,uint256)","1f305ec7":"removeFromKycTeam(address)","1f30edc7":"CTOSignature()","1f312375":"referralBonusRate()","1f32768e":"getSubscription(bytes32)","1f32c18f":"getDrink(uint256)","1f34556a":"changeMaxReward(uint256)","1f34563c":"newUser(string,string)","1f34d1d3":"registerAppVersion(bytes32,bytes32,address,bytes4[],address[])","1f35bc40":"setCrowdsaleAddress(address)","1f3634ed":"ink(bytes32)","1f368fa6":"ExtrabitToken()","1f378b8a":"refundEther(address)","1f38034c":"removeEmailAddress(string)","1f38c358":"allocateIds(uint32)","1f390975":"MAX_TOTAL_CONTRIBUTIONS()","1f3943df":"SURT(uint256)","1f39716c":"aggregateBet(uint256,uint256)","1f39a141":"getTokenAmount(uint256,address)","1f3a3a53":"mint(int256,uint256)","1f3a4c14":"addFreezableAddress(address)","1f3a7c0b":"FOUR_YEAR_KEEPING()","1f3a98d1":"getReferralRates()","1f3b3148":"endEpochTimestamp()","1f3bec3b":"secondarySaleReserveWallet()","1f3c99c3":"logout()","1f3ce938":"increasePresaleEndTime(uint256)","1f3ceb51":"getGameById(bytes32)","1f3d3261":"JustForward(uint256)","1f3dcc8d":"maxGasPricePenalty()","1f3e1c8d":"LogTokensPurchased(address,uint256,uint256,uint256)","1f3e50f6":"withdrawBCEO()","1f3e64e6":"getTXwithCode(address)","1f3ee21f":"setUsdEthValue(uint256)","1f3fd5ca":"PI_EDIT_1()","1f3fe8d1":"ICO_BONUS1_SLGN_LESS()","1f3fed8f":"tokensForMarketing()","1f400477":"inLendingMode()","1f402356":"markContractAsInited()","1f417317":"WalletSimple(address[])","1f42103c":"AworkerToken(uint256)","1f4356e4":"emissionFunds()","1f43f396":"startICOStage5()","1f4425f3":"checkCloseTimer()","1f44a40f":"airDropSame(address,address[],uint256)","1f44b1de":"ValithToken()","1f45006c":"checkEthRaised()","1f455922":"removeToken(string)","1f45ad5c":"modifyContentAccess(bytes32,bool,uint256)","1f461f0d":"withdrawableAmountFor(address)","1f468245":"calculateObtainedBUB(uint256)","1f46eb98":"agentPermission(address)","1f470b14":"lockUpAmountOf(address)","1f471ad0":"proxyMint(address,uint256)","1f47b50d":"MineablePOWCoin()","1f47ba29":"safeToMul(int256,int256)","1f4848ef":"setTakeFee(uint256)","1f48af0a":"updateWeapon(uint256,string,string,string)","1f48ff7c":"mintMarketMakerApproval()","1f49aff4":"ACLYDcid()","1f49caac":"canUseLock()","1f4a5c32":"confirmTransactionAfterExpiry(uint256)","1f4a6d32":"removeEth()","1f4ab41e":"createUser(bytes32,bytes32,uint256)","1f4ae468":"returnETHforNormalBuyers()","1f4b8e41":"getLastUpdateId()","1f4ca28f":"isAdvisorsTokensSecondReleased()","1f4d7ec4":"newParameterizerWithToken(uint256,string,uint8,string,uint256[])","1f4dba8e":"OPTinToken()","1f4dde9f":"Jade()","1f4e01d9":"absoluteEndBlock()","1f4e1504":"upgradeContract()","1f4e996b":"challenge(bool)","1f4f77b2":"timestampFromDate(uint256,uint256,uint256)","1f4f9ab1":"supervisorVote(uint256,bool)","1f4fc29c":"refShare()","1f502a13":"volumeDiscounts(uint256,string)","1f513660":"ctoAddress()","1f522595":"donationsCount()","1f52692b":"vaultOwner()","1f52cc35":"removeTrustedContracts(address[])","1f532b39":"getRelation(address)","1f534715":"ComplexChildToken(address,string,string,uint256,uint8,bool,int256,bool)","1f535833":"referralCodeAt(address,uint256)","1f53ac02":"setDevWallet(address)","1f54d80d":"verifyCustomer(address,bytes32,bytes32,uint8,bool,uint256)","1f5623f3":"ZebiToken()","1f572504":"JackToken()","1f57256f":"transferEth(uint256)","1f583087":"ClickGemTokenERC20(uint256,string,string)","1f59653c":"setprices(uint256,uint256)","1f59d30e":"unlockEarnings(address,uint256)","1f5a0bbe":"addExecutor(address)","1f5a177f":"registerVestingScheduleWithPercentage(address,address,address,uint256,uint256,uint256,uint256,uint256)","1f5a2a52":"getDamageValue(uint256)","1f5bb9f8":"Refund_TrustlessTransaction(uint256)","1f5bdf5d":"isRegisteredUser(address)","1f5c3a3c":"approveMultiple(address,uint256[])","1f5c6f67":"getOpeningTimeByStage(uint256)","1f5d0b4c":"address(address,address,uint256)","1f5dddab":"WithdrawContribution(uint256)","1f5dfcd5":"lastBlock_a7()","1f5e881f":"_buyTokens(address)","1f5e8f4c":"isRestricted()","1f5e9a2a":"CyberMilesToken()","1f5eeb13":"tokenSendFailuresCount()","1f6034fd":"getInt8FromByte(bytes14,uint256,bytes1)","1f60d9f7":"crowdfunding_allocation()","1f617a60":"setReceivable(address,bool)","1f6275bb":"issueTokenAndTransfer(uint256,uint256,address)","1f63a350":"settle(bytes32,bytes32,uint8,bytes32,bytes32)","1f64c1f2":"getInvestorInforValue(uint16)","1f66531d":"getEsgoTX(uint256)","1f67298d":"Daq()","1f677d8d":"ownershipLength()","1f68f20a":"baseRate()","1f69565f":"getTokenInfo(address)","1f69aa51":"left77(uint256)","1f69d230":"setMultiLedgerValue(string,address,address,uint256)","1f69f929":"teamVestingCounter()","1f6a1bf7":"lastDifficultyAdjustmentEthereumBlock()","1f6a1eb9":"execute(bytes,bytes)","1f6a3943":"icoBackend()","1f6b0a9d":"getReleaseLockfileURI(string,uint32,uint32,uint32,string,string)","1f6b28bf":"valueOf(string)","1f6b5b7d":"setRefundState()","1f6b9b97":"placeBet(uint8,int8,uint8,uint256)","1f6c0a9b":"ReleaseLockedBalance(address,uint256,uint256)","1f6c76f4":"reserveDeveloperTokens(address,uint256)","1f6ce1d3":"setDaySellAmount(uint256,uint256)","1f6d2086":"setCooldownIndex(uint256)","1f6d3d13":"AddrDevelopGroup()","1f6dc06c":"SetSaleStep(uint256)","1f6de588":"PiedPiperNetworkCoin()","1f6e5117":"getCallbackAddress()","1f6e6f3a":"DigitalThothToken()","1f6eb6e7":"escapeHatchCaller()","1f6ee77a":"setInitialData(address)","1f6eeb68":"canMintBurn()","1f6f3c0f":"getShipProductAmountByModel(uint16)","1f706c64":"EndTimeUpdated()","1f71f250":"updateTopicAddress(bytes15,address)","1f720e71":"testThrowTranferTooManyTokens()","1f7266e8":"owner_TransferFromTo(address,address,uint256)","1f7299c1":"processSell(address,uint256,uint256)","1f72d7d8":"increaseCap(int256)","1f7334e2":"TransferFlower(address,address,uint256)","1f74de51":"getAuditOutcome(address,bytes32)","1f772a34":"token_symbol()","1f77aac0":"queryUserContract(address,uint256)","1f790a94":"BananaGame()","1f794436":"getBlockHeader(int256)","1f7a41f1":"rawNameOf(address,address)","1f7a72f7":"bobClaimsDeposit(bytes32,uint256,bytes32,address,address)","1f7ab15d":"setdecimals(uint256)","1f7af1df":"canReceiveMintWhiteList()","1f7b4f30":"roll(uint256)","1f7b5318":"getBlocklancerToken()","1f7b6d32":"length()","1f7b8622":"getVotingDeadline()","1f7c4bf3":"AccessControl()","1f7ccc09":"initAssetFile(string,string,string,string,string,string)","1f7cdd9b":"unicornsGifted()","1f7d16f7":"managementWalletAddress()","1f7df96f":"registLogo(address,address,string)","1f7e3e72":"test_oneValidEqStringUint()","1f7e495b":"systemSupply()","1f7fe78b":"balanceAtSnapshot()","1f800e8e":"releaseVested()","1f803ac3":"getUnlockedTokens(address)","1f807736":"withdrawFreeAuctionBalances()","1f81582c":"returns()","1f816c6d":"hodlerReward()","1f820f52":"migrateEuroTokenOwner(address,uint256)","1f83bcd7":"withdrawlDeadline()","1f83d11a":"addMilestonesAndSeal(uint256[],uint256[],uint256[],uint256[])","1f83d75e":"updateProfileDetails(string)","1f83f440":"getPaymentByAddress(address)","1f86ab51":"confirmCollection()","1f86ffda":"UpdateBid(address,uint256,uint256)","1f8712af":"isValidPurchase(address)","1f871726":"getCategoryWorkClockTimeRef(uint256)","1f879433":"setSolver(address)","1f8814ad":"ElyERC20(uint256,string,uint8,string,bool,bool)","1f8864ac":"setStorageOwner(address)","1f887d56":"CryptoSagaDungeonVer1(address,address,address,address,address,uint32,uint256,uint256,uint32,uint256,uint32,uint32,uint32[4],bool)","1f8947c1":"extractUint(int256,bytes,uint256,uint256)","1f89e911":"getCompositionPrice(uint256)","1f8ac604":"mul0()","1f8ae3f0":"proofFailed(bool)","1f8c07b0":"startPhase(uint256,uint256,uint256)","1f8d1d50":"setTotal(uint256)","1f8d99a9":"assetIsRegistered(address)","1f8df2cd":"setGeneScientist(address,bool)","1f8e6fb3":"transferSale(address,uint256,uint256,uint256)","1f8e728c":"addMilestone(uint8,uint256[],uint8[])","1f8e9143":"AcceptsKDI(address)","1f8ea5e8":"EternalChainToken()","1f8eac47":"spentByTeam()","1f8f1d21":"addMember(uint256,address,bytes32)","1f8f69e3":"fechAllVoteResultForCurrent()","1f8f8100":"Tspace()","1f8fcc45":"Vantador(address)","1f903037":"getBytes32()","1f903b5d":"preSaleSpenderTxDetails(uint256)","1f90b2a5":"snapshotBlock()","1f90ffc8":"AddSupply(uint256)","1f91666d":"newOrganisation(string,string,string,uint8,bool)","1f91e309":"getBuyBackPrice(uint256)","1f922d06":"duplicate()","1f92f6b7":"setBtcUsdRate(uint256)","1f934299":"calcConfirmsNeeded(uint256,uint256)","1f960571":"picops_balances(address)","1f963f80":"getReportingWindowId(uint256)","1f96938d":"deliverSale(address,uint256)","1f96add4":"ChronoMint(address,address,address)","1f974fe4":"NExT()","1f979e23":"GetRigData(uint8)","1f97a238":"rejectCertificate(uint256)","1f97c00e":"tokenCreationMax()","1f97ea5d":"EDU_PER_ETH_PRE_SALE()","1f97f2ef":"issuedTokensForCommand()","1f98394d":"basicReward()","1f994137":"booleanStorage(bytes32)","1f995ef1":"HDCTestToken()","1f9988c9":"transferTokens(bytes32,address,uint256)","1f99c458":"listNamesLen()","1f99d862":"test_method_increaseTimeBy30000()","1f9a08ca":"reelIn(uint16,uint16,bytes32,bytes32)","1f9a391c":"setCanCreateGrants(address,bool)","1f9ab193":"place(uint8)","1f9c5580":"AMIS(address)","1f9c564f":"rubusOrangeAddress()","1f9c649f":"HashInvalidated(bytes32,string,uint256,uint256)","1f9d7ab8":"addTokens(uint256,string)","1f9ea25d":"_setDepositAccount(address)","1f9eba17":"bitcoinInvest(address,uint256,uint256)","1f9ecab1":"TowerImagesCoin()","1f9ef7fa":"getPayoutNumerator(uint8)","1f9f168e":"startNewRound(address)","1f9fed62":"checkMySellerOffer(address)","1fa03a2b":"isApprovedFor(address,address)","1fa08755":"upgradeDexterity(uint256)","1fa08ad8":"EtchReward(uint256)","1fa0914e":"buyStamps()","1fa096e6":"isInversor(address)","1fa0dc70":"saveReturnSatoshi(address,uint256)","1fa13a61":"longTermTokens()","1fa24aa7":"makePermanantlyTradable(uint8)","1fa30523":"doMint(address,uint256)","1fa3c372":"redeemTokens(bytes32)","1fa3cfaa":"bmc(uint256,uint256,address)","1fa4070c":"TestCoinVN()","1fa422a2":"earliestNextSettlementTimestamp()","1fa45291":"arrayOfClones(address)","1fa498ce":"messagetodovie()","1fa4c486":"PublicResolver()","1fa4d9de":"completedAddingParsels()","1fa4ea66":"reservationAddress()","1fa5e43b":"freezedBalanceOf(address)","1fa62fb7":"setCountrySlogan(uint256,string)","1fa6f19b":"getAddressForQuery(bytes32)","1fa96b96":"currentProposalResults(uint256)","1fa98406":"fundType()","1fa9d21f":"DASABI_IO_Contract()","1faae8b3":"getTypeValue(uint256)","1fab0265":"messiDev()","1fab3fd4":"setFinishedTx(address)","1fabb318":"MAX_ALLOWED_BY_STAGE_1()","1fabe6cf":"getActualCompletionDate(bytes16,address,address,uint256,uint256)","1fad4d46":"getShipOwner(uint32)","1fad4e79":"sevenWinnerWithdraw()","1fae75eb":"Xandra()","1fae9361":"changeTimes(uint8,uint8)","1faec182":"getBet(uint8,uint256)","1faf1ed4":"unlockTip()","1faf8995":"fillOrder(address,bytes32,uint256,bytes32)","1fafc2c8":"updateBusinessReserveAddress(address)","1fb00cdc":"investWithId(uint128)","1fb150c4":"_batch1_icosaleEndTimestamp()","1fb156ef":"ecmul(uint256[3],uint256)","1fb168ac":"setStopStatus(bool)","1fb1f18b":"getWinnings(address,uint256)","1fb25f07":"getCertification(bytes32)","1fb291cb":"registerInt(address,int256)","1fb2de2c":"sendTokensToTwo(address,address,uint256)","1fb2f2a0":"testUpdateLatestRevision()","1fb384cb":"RemoveRocketForSaleEvent(address,uint32)","1fb47fe8":"CulturePhilosophyFaithChain()","1fb4bcf8":"SetSaltPassword(bytes32,bytes32)","1fb4d1e7":"TheMutualCurrency()","1fb59f9d":"swapProxyTokens()","1fb6e99d":"paymentNeeded(uint64)","1fb82d26":"storeProof(string)","1fb8875d":"referralSent()","1fb8c0ed":"releaseEQUIWihtoutKYC()","1fb8d5de":"vaultUnlocked()","1fb97c34":"updateFirstAmount(bytes32,bytes32,uint256)","1fbab493":"checkPrice(address,address,bool,uint256,uint256)","1fbb408a":"RacingToken()","1fbb4def":"CalculateDividents(uint256)","1fbbf4bb":"setKillingGap(uint256)","1fbcf2c1":"_lotterySupply()","1fbd3564":"getContentsManager()","1fbd7771":"didSoftCapReached()","1fbd9a0b":"REFUNDSACTIVE()","1fbda78f":"LibraryToken()","1fbe1979":"rescue()","1fbe480e":"shipToMe(string,uint256)","1fbe7475":"findEndpointByAddress(address,address)","1fbeaa83":"PublicBatchTransfer(address,uint256)","1fbee6ed":"CNYTokenPlus(uint256,string,uint8,string)","1fbf7c3e":"increaseReserve(uint256)","1fbfe6f3":"auditReport(address,bool,bytes32,bytes32)","1fc03aa0":"getTypeByNumber(uint256)","1fc05f86":"minimalWei()","1fc06f0d":"niceGuys(uint256)","1fc083cf":"OurBit()","1fc0e5e9":"StartPaymens()","1fc1e25f":"listToken(address)","1fc242b9":"onVote(address,int256)","1fc24caa":"changeMaxTransactions(uint256)","1fc27ef2":"isIcoActive()","1fc2e0fb":"MinedThisYear()","1fc3a519":"computeReturn(uint256)","1fc5b4ee":"balancesByIndex(uint256,address)","1fc5c9b7":"setNextPeriod(uint256,uint256)","1fc62fce":"Trillionereum(address,address)","1fc6e13a":"getRoundKeyPrice(uint256)","1fc75e41":"preSaleWallet()","1fc7d658":"purchase(address[16],uint256)","1fc82e83":"allocateUnclaimedFees()","1fc86532":"endBlockBonus2()","1fc87587":"get_CountProfitsToken()","1fc928ae":"taxToken()","1fc97e34":"Genius()","1fc983fb":"ChelseavsArsenal()","1fca5278":"highScore()","1fca5fda":"IsRazRunning(uint256)","1fcafd8f":"FomoMasterCoin()","1fcb292d":"getTokenFunction(uint8)","1fcbbefa":"sendBooty(address,uint256)","1fcc02e8":"EthereumTestToken()","1fcc2515":"ChangeCrowner(address)","1fccc158":"tCampaignEnd()","1fcd08f0":"AaadharDemo()","1fcd7ea6":"getPOOL_edit_33()","1fcdfe14":"icoTokenAmount()","1fcf25be":"getTransactionSuccess(bytes32,uint256)","1fcf55ff":"withdrawApplication()","1fd01085":"_sellPresale(uint256)","1fd01de1":"_checkOnERC721Received(address,address,uint256,bytes)","1fd023ab":"FFCryptoCoinToken()","1fd22140":"CountCourses()","1fd2676f":"jackPotPercents()","1fd2e006":"changeClassFee(uint256,uint256)","1fd3dd97":"OneEtherEqualsInWei()","1fd41949":"setMaxInvestedLimit(uint256)","1fd476bd":"AutonomousSoftwareOrg(bytes32,uint8,uint8,bytes32)","1fd4b40c":"saleEtherCap()","1fd55a8a":"crowdsaleOpened()","1fd7b802":"ModifyMine(uint256,bool,string,uint256)","1fd7f431":"setCCH_edit_7(string)","1fd8088d":"minLimit()","1fd8291a":"endpresale()","1fd86a6a":"FundICO(uint256)","1fd96b69":"ManagedAccount(address,bool)","1fd97c12":"CNotesICO()","1fd982a5":"releaseForEarlyInvestor(address,uint256)","1fd9b2a4":"createValidatedRequest(address[3],address,uint256[12],uint256,bytes)","1fd9f187":"catNoLongerForSale(uint256)","1fda4271":"MindToken()","1fda5b45":"receivePlayerInfo(uint256,address,bytes32)","1fda8278":"drawCoach(uint256,address,address)","1fdaedf2":"BoomstarterPresale(address[],address,address,bool)","1fdaf3f2":"ServiceAgreement(string,string,uint8,uint256,uint256,uint256,address,address,uint256)","1fdb5a2b":"addInvestmentPreIco(address,uint256)","1fdba848":"BiekensToken()","1fdcf5a7":"lockEthBalance(address,uint256)","1fdd7695":"getbuyprice(uint256)","1fddbba4":"totalVUP()","1fde4607":"setCreditDaoFund(address)","1fde8469":"setExchangeRate(uint32)","1fdf071c":"approveMintAgent(address,bool)","1fdf6e0c":"protectKingdom()","1fdfa40d":"test_setupBoardRoomAndAssert()","1fdfec35":"calculateTotalDue(uint256,uint256)","1fe00a15":"individualMaxCapTokens()","1fe07274":"SDEToken(uint256,string,string)","1fe08e28":"how_many_arbits_do_i_have()","1fe0ff58":"finishRound(uint256)","1fe1516d":"sendToTeamEthContract()","1fe15db5":"MarketboardListingComplete(address,uint256,uint256,uint256)","1fe1b208":"totalavl()","1fe26e9d":"componentCount()","1fe2a6f2":"updateJugada(uint256,bool)","1fe2c933":"UpgradeByCredits(uint256,uint256)","1fe2d046":"assignRafflePrize(address)","1fe2e229":"getTotalTrust(address)","1fe3aec7":"CGCGToken()","1fe4ee7f":"getVoteItemDetails(uint256)","1fe51f82":"persistLimit()","1fe55867":"rew()","1fe6189e":"PARTNERS_ADDRESS()","1fe64f19":"MaximumHodlDurationChanged(uint256,uint256)","1fe74895":"Etherchicks()","1fe7b624":"resumeMint()","1fe7ff2c":"SpriteToken()","1fe8149e":"createTokenByHWC(address,uint256)","1fe8500e":"setItemRegistry(address)","1fe8629a":"giveMultipleItemsAndDestroyMultipleItems(address,uint256[],uint256[])","1fe93774":"totaleFrasi()","1fe97e45":"whoIsConcerned(address)","1fe9eabc":"setMax(uint256)","1fea96cd":"removeUserFromBlackList(address[])","1feac75b":"setCommissions(uint256,uint256)","1feaee17":"getSetupParametersByIndex(uint256)","1feb0c4f":"PreICOProxyBuyer(address,uint256,uint256)","1feb19d6":"initialize(uint256[],uint256[],uint256,address,uint256,address,address)","1feb3569":"transferToken_toBalance(address,uint256)","1fec0e96":"LogCampaignAdded(uint256,address,uint32,uint96,uint16,uint16,uint256)","1fec5a11":"Coin77()","1fec6dce":"createVestingPeriod(address,uint256,uint256,uint256,address,address)","1fedbc03":"getSharesPercentForPeriod(bytes32,uint256)","1fedd70b":"snipCoinToEtherExchangeRate()","1fee37c8":"ADDR_TKG_NODE()","1fee5c51":"set_min_max_FinneyPerSale(uint256,uint256)","1feef08e":"getTotal(uint256)","1ff13086":"size(int256)","1ff14311":"totalOutcomeAmounts(int256)","1ff1a378":"maxSalesAllowed()","1ff2c22b":"setCharityFund(address)","1ff42195":"minimum_cash_proof_amount()","1ff517ff":"totalDebt(address)","1ff5668c":"depositForDividends()","1ff5e17c":"_itemLength(uint256)","1ff6536c":"setCrowdSaleStart(uint256)","1ff6a54b":"cancelFavor()","1ff6ad55":"tokensForPeriod(uint256)","1ff6c241":"collectedUSD()","1ff75851":"updateICODate(uint256,uint256)","1ff76f86":"ROBReserveAllocation()","1ff7a278":"ownerNegTokens()","1ff858d0":"activateNextStage()","1ff8ac8a":"getFinalval()","1ff8d507":"toggleSwap()","1ff96c74":"getHonour(uint256)","1ffa27f9":"hasPermissions(address)","1ffa451c":"serviceTransfer(address,address,uint256)","1ffb6ca6":"unlockTransfer(address,uint256)","1ffbb064":"isAgent(address)","1ffbf32b":"MUSPRA()","1ffc973a":"HedgeCash()","1ffcb18c":"numQuestions()","1ffd3aef":"log10Floor(int256)","1ffd42ab":"getVotingScriptAction(uint256,uint256)","1ffd99f4":"saler()","1ffe3c9b":"UECToken(address,uint256)","1ffe4cca":"startline()","1fff2d8a":"payToPresale(address)","1fff5c2f":"bindEthereumAddress(address,bytes32)","1fff7a97":"CompositionPart(uint256,address)","1fffbe7a":"getJobSponsorships(uint256)","200138b9":"CrowdTmoney()","20020a3a":"createAsset(bytes,uint256,bytes,bytes,address)","20027275":"saleStartBlock()","2002c2f6":"slogans(uint64)","20033848":"MagixRecordsCoin()","20035e36":"icoEth()","200373c9":"fees_()","2004b6a6":"TheWhaleWins()","2004dff6":"Basics()","2004ffd9":"mintToken()","200538c6":"DTE()","200576b5":"TchainToken()","2005db6d":"preIco(uint256,uint256,uint256,uint256[],uint256[])","2007474e":"theRelayer(address)","20076659":"Arbitrator()","2008c2ca":"destPercent(address)","2009a059":"setLandProductionMultiplier(address)","200a252a":"PhanToken()","200aa519":"addCustomerwithToken(address,uint256,address)","200aac9f":"burnAZLTEST(uint256)","200b0fa6":"initVote(uint8)","200b894d":"assertEq(int256,int256,bytes32)","200b8951":"_distribute(address,uint256,uint256,uint256)","200c1f19":"premiumPacks()","200c7295":"whitelistAddress(address,uint256)","200c7770":"bountyDuration()","200cdf8e":"becomePickleRick()","200d10dc":"OrpheusOrganicsLaos()","200d2ed2":"status()","200deb8b":"MessageSent(string,string,string,uint256)","200ebe34":"addTokensToGive(address)","200ef97e":"payNTS()","200f29e3":"advisorAccount()","200fbcf0":"getFullyVestedAmount(address,address)","201035ed":"getGunsIds()","20104dca":"engCommunityAddress()","2010bdce":"removeSupervisor(address,address)","20120dce":"ADMIN_SET_TEST_RANDOM(string)","20130753":"testThrowSetNotRetractableNotOwner()","20145328":"changeMelonportAddress(address)","2014c515":"tgrNextPartInvestor()","2014d703":"approveAllArgs(address,uint256,address)","2014e1fb":"W0keAFCrowdsale(uint256,uint256,address,address,address[])","2014e5d1":"isRunning()","20150e21":"sendDividends(uint256)","20153d38":"EarlyAdoptersAmount()","20154e78":"unpausePVP()","20158c44":"fills(bytes32)","201745d5":"disown(bytes32,address)","2017af61":"initialTokensHolder()","2017ee03":"nextDealIndex()","20183926":"EngagementToken()","20185aa2":"liquidityWithdraw(uint256)","20188d4f":"getAdjustedContribution(address)","20190ccd":"startCirculation()","201bafee":"TroneriumSupply()","201dcd7a":"newChallenge(uint256,uint256)","201de654":"mnemonicsCount()","201e8f0e":"changeWhitelistCornerstoneStatuses(address[],bool)","201e908e":"blockDuration()","201f1506":"EthereumEra()","201f6e02":"oldAppreciationRateWei()","201f96e5":"setRepMarketCapInAttoeth(uint256)","20202965":"expired(bytes12)","20204fb7":"genericCall(address,bytes,address)","2020e9ea":"bid(uint16,uint16)","2021dfcb":"BONUS_DURATION_3()","20226e17":"valueOnContract()","2022936f":"BalanceClaim(address)","202329cb":"get_all_activityn(uint256)","2024617e":"initialize(string,string,uint256,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","20250264":"setData_5(uint256)","2025867b":"qualifiesAsCommunityBallot(uint16)","2025e52c":"createSaleTokensVault()","20260697":"createWallet(uint256,address[],bytes32)","20263e87":"incentiveTokenAddress()","2026a0a7":"change_sale_address(address,string)","20277ed7":"GWGFPLUS(uint256,string,string)","2027d2c6":"ETHLottery(address,uint256,uint256,uint256,address)","2027d746":"getCustomerCount()","2027e1d3":"COCO()","20281990":"ProposalAddedEvent(uint256,address,uint256,string)","20283da9":"trustedWithdrawETH(address,uint256)","202920ef":"FST()","2029e599":"addCode(string,string)","202a46cf":"limitEther()","202a6ce0":"NFXCoin()","202ac3bc":"withdraw(bytes,bytes,bytes32)","202b876a":"allocateToMarketingSupporter(address,uint256)","202bb36d":"JTBlockchain()","202bc7e7":"getIntervalCoefficientMultiplier(uint256,uint256,uint256,uint256)","202c413d":"setNickname(uint256,bytes32)","202ca027":"setPayrollAddress(address)","202d5123":"STRTToEth()","202d6eaf":"addInvestorsValue(uint256)","202e3924":"getOperation(uint256)","202ece74":"sendToWinner(uint16)","202feb77":"test_2_assertGasUsage100Boards()","2030762a":"PoolICO()","2030f721":"num_objects()","20323763":"addPerformance(string,uint32,uint8,uint8,uint8,uint16,bool)","2032677f":"roundOpen()","20334668":"verify(uint256,uint256,uint256[],uint256,uint256,uint256[],uint256[])","20339891":"addGridMember(address)","2033d9ae":"switchToDistributionMode(uint256)","2033de43":"setNewRatesCustom(uint256,uint256,uint256,uint256,uint256,uint256)","20352a6e":"ChildDeposit()","2035d6b4":"addAccountData(string,bytes)","20364306":"setMaxLinkedWalletCount(uint8)","2036e2f7":"getCurrentExchangeRate(uint256)","20375692":"initVesting()","2037fcbf":"withdrawInvestment(uint256)","2038d1e5":"setTokenMintFeeAbs(address,address,uint256)","2038e2e6":"timestampLast()","2038e80a":"mixFormula()","20392160":"round1Sold()","20396553":"safeMul(int256,int256)","203967a5":"toDie(bytes32)","203985d6":"getWeeklyTickets(address)","20398971":"abiOf(uint256)","20398b83":"sendPrepaidEthTweet(uint256,string,uint256)","2039b386":"isHashSigned(uint256)","2039d9fd":"depositERC20Token(address,uint256)","203a318f":"ico_startdate()","203a79f6":"cutoffTimestamp()","203ab888":"collectOriginalBet()","203b2352":"_checkOpenings(uint256)","203c03fa":"Coinflip()","203cbee2":"ownerPetTransfer(address,uint64)","203d39ff":"getOrderBook(address,address)","203dacb9":"PrivatePreSale()","203e0dc9":"SupbToken()","203e3204":"goldIfFreeze(address)","203faa89":"lastState(address)","203fb521":"addTransaction(address,uint256,bytes,uint256)","203fec23":"LogTransfer(address,address,uint256,string)","204009d2":"transferForMultiAddresses(address[],uint256[])","20409b47":"updateContent(string,uint256)","2041518d":"calculatePrice(uint256[],address)","2041b997":"tokenizeProperty(string,address)","20422fd9":"setAutoInvestByAdmin(address,bool)","204241cb":"leaveTeam(uint256)","2042495b":"changeUsed(address,int256)","2042e5c2":"removeWhiteList(address)","2043285d":"getMarketMakers()","2044b21b":"exceedsSaleCap(uint256)","204525e6":"mul256()","204605ad":"ngrzicoToken()","2047e4af":"updateTokensState(uint256,uint256)","2048cba4":"inGroup(address)","2048e5f7":"PaytherToken()","20495427":"setBreedingAuctionAddress(address,address)","204a88c5":"hasAgreement(bytes32)","204b21d1":"AVAILABLE_BONUS3_SUPPLY()","204b676a":"numVestingEntries(address)","204d3d65":"getCountPlayersOfTeam(uint256)","204e6749":"rewardToken(address,uint256,uint256)","2050c26e":"preSaleFourthCap()","205140c7":"totalClaimableTokens()","20514abf":"tktotal()","20522347":"changeEndDate(uint256,uint256)","20523d0d":"closeAgreementWithTimeout(bytes,uint8[2],bytes32[2],bytes32[2])","2052de16":"checkContinuousPurchase(uint256)","2053480e":"ActionMiningPlat(address,uint16,address)","205360e0":"setReward(uint64,uint256)","2053e690":"turnOffOraclize()","20544010":"getWinningsForRecordId(uint256,bool,bool)","20547a42":"increaseDailyTransactionVolumeReceiving(uint256)","2054b2c6":"assert(address,address)","2055c2ff":"SerchUserPurchase(address,address)","20566ae8":"initMonsterClassSiteSet()","2056ab36":"NewNodePriceTicker(string)","20572943":"SignedMessageOracle(bytes32,uint8,bytes32,bytes32)","205730fd":"SELL()","2057420b":"withdrawVault(uint256,address)","2058308d":"_addPropertyValue(bytes32,address)","20592076":"HeyToken()","2059c548":"exerciseOptionsDeadline()","205b1946":"hasContributed(address)","205b931e":"addOracles(address[])","205ba186":"DSJL()","205c2878":"withdrawTo(address,uint256)","205c7cf5":"issueCenturion(address)","205c9cc7":"w()","205d0063":"feeTakeExporter()","205d6c86":"purchaseEgg(uint64,uint16)","205dc0ee":"poolAddressCapTier1()","205e0e26":"advisersCliff()","205f3b58":"calculateOwnerCut(uint256)","2060a150":"props()","20610779":"deathData_a2()","20614514":"HHDToken()","20620f37":"onAuctionEnd(string)","206288d3":"deployBlockNumber()","2062e457":"setDirectPaymentThreshold(uint256)","2063165d":"union(uint256[],uint256[])","206369fa":"AthleteToken()","206465f7":"_getPendingOwner()","20647eb7":"externalFailure()","20651d5d":"batchTransferToken(address,address[],uint256[])","20654277":"ArtsCoinV1()","206545c2":"DIAMOND()","206607f2":"updateCanFetch(bool)","20675504":"hyperInterface()","2067c85c":"transferTokensFromMarketingAddress(address,uint256)","20688582":"saleIsRunning()","20689f29":"preSalePeriod()","2069381a":"multiPresaleMint(address[],uint256[])","20694db0":"addIssuer(address)","2069de94":"TonalQuantum()","2069f66c":"isPresalesNotEndedInAdvance()","2069fc46":"excludeAmbassadors(uint256,address)","206a44f3":"getNum(bytes,uint256)","206b64b4":"generateName(bytes16,uint256,uint256)","206cfd24":"cleanFinishedOperations(uint256)","206d0125":"getWithdrawnFromBatch(address,uint8)","206d1fde":"setMegaAddress(address)","206d468f":"PriceOracleInterface(address,address)","206ec7a1":"multisend(address,bytes32,address[],uint256[])","20701967":"confirmPlatformWithdrawal()","2070748c":"XeroBest()","20709b35":"jackpotPaused()","2070b6de":"donationPhase()","20714f88":"setSelfDestructBeneficiary(address)","2072343e":"MeowToken()","2072863b":"setCMO(address)","20729b83":"DistributeButtonIncome()","2072cde2":"NewsCash()","207368fc":"startSelling(uint256,uint256)","20745669":"ClaimedSignature(address,string)","2074cc86":"MikCoinToken()","2075281c":"Marko()","2075eec6":"tokenQuantities()","20768ee8":"getProposalID()","20770caf":"GRUCoin()","2079405b":"AmountToDistribute()","20799608":"convertDecimal(uint256)","2079fb9a":"signers(uint256)","207a6c33":"calculateCurrentVirus(address)","207a6d80":"TukBuk()","207aba24":"Migrate()","207acb53":"_calculateRequiredTokenBalance(uint256,uint256)","207b89e2":"purchaseLand()","207bd99d":"ableTransfer()","207beb59":"getRateIcoWithBonus()","207c64fb":"validate(address)","207cb710":"grantInvestorTokens(address)","207e6467":"pieBalances(address)","207f4f38":"contTransfer(address,uint256)","2080d8dc":"EVTCTLToken(address,uint256)","20813154":"deregister(bytes32)","2081e911":"Set()","208318bd":"Total_Amount()","20832219":"setOps(address,bool)","2083250d":"Atriark(uint256,string,uint8,string)","20834ed0":"AddPlayers(address,address)","20835e8c":"getBet()","2083c730":"_hatchEggs(address)","2083cbd8":"execAirDrop(address,address[],uint256[])","2083f44f":"lastFell()","20857295":"setErc20TokensContract(address)","2085f554":"approveAndCall(address,uint8)","2086ad60":"MiewGold()","20871322":"ForecastingFactory(address)","208838c8":"tokenPerWai()","20885d9e":"PGE02CH()","208904c7":"startFrom()","208972b4":"PartialPayment(uint256,address,address,uint256)","2089d0c9":"Swachhcoin(address)","208a099c":"createKitty(uint256,uint256,uint256,uint256,address)","208a9e37":"tweakRefundStatus()","208af09f":"setIsForking(bool)","208b080f":"changeExpiryLimit(uint256)","208b3116":"next(uint256,uint256)","208b7427":"AgriChainContext()","208c1019":"BLOCK_BASIC_PRICE()","208c8692":"mint(bytes,uint256,bytes,bytes)","208ca719":"SellIPG(uint256)","208df65f":"getValueByNumber(uint256)","208e1cc3":"writeConditions(uint256,string)","208e8914":"atFundDeposit()","208eba04":"_withdraw(address,uint256,address)","208ebf16":"lpBidVolume()","20907d9a":"BlockClout()","20909455":"triggerAirDrop(address[],uint256)","20909fa0":"communityCurrency()","2090b0a8":"m_allowPrivileged()","2090cf8b":"consultBalance(address)","2090d5e9":"lookupByProject(uint256)","2090d8a6":"trackOdd(uint256)","2090f3e3":"lethalBonusAtHitsLead()","209164d5":"_processPurchase(address,uint256,uint256)","20917902":"globalether()","2091f2d9":"ICOoverTimeStamp()","2092970f":"StartDistrib()","20940b13":"btcTransactionClaimed(uint256)","2094e9d8":"newJob(bytes32,bytes32)","20956341":"slice2(bytes,uint256)","2095f2d4":"endCrowdsale()","20965255":"getValue()","20968dc7":"rewardHistoryLengthOf(address)","2096b768":"getCoreAddress()","2096c958":"GEXAirDrop(address)","2096f2ff":"issueTokensMultiple(uint256[],uint256[])","2097dd04":"getLatestAuthorizedAddresses(uint256)","2097e5f0":"VaultbankToken()","209878b9":"lockReleaseTime()","20987e64":"addInvestment(address,uint256)","2098e37a":"LogBoonReleased(address,uint256,uint256,uint256)","2099940e":"freezOne()","209a5b8a":"moneySumAtSettlement(address,uint256,int256,uint256)","209ab711":"registerReferral(address)","209b7067":"CALLGToken(uint256,string,string)","209b80ce":"previousstageloser()","209bb163":"Ethex(address,address,uint256,uint256)","209cccd7":"channelCloseTimestamp(uint64)","209ebc08":"isPaid()","209f3c9c":"MINIMAL_PARTICIPATION()","20a0045a":"SALE_END_TIME()","20a0128e":"ICOEndDate()","20a09dec":"COMM_SUPPLY()","20a168b1":"coinsPerEth()","20a17b24":"dexWallet()","20a2b135":"forkThis()","20a3952b":"MyTestGameToken()","20a4e8f8":"_clearSnapshotDelegators(uint256,address)","20a60ace":"TokenBurner()","20a733df":"countPerformers()","20a7b2d7":"_setMintFeeProp(uint256)","20a7d5c3":"lend(uint256,bytes,address,bytes)","20a99bd0":"templates(address)","20aac36f":"getstopBlockNumber()","20aba08b":"rho()","20abf417":"stageFourCap()","20acbc83":"withdrawTokensFromWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","20ad3874":"vestingBonusMultiplierPrecision()","20ad8a81":"setTeamTokensPercent(uint256)","20ae2059":"setMaximumBet(uint256)","20af0841":"_payPayee(bytes32,address,uint256)","20af2042":"setCountPerStep(uint256)","20b023c8":"disavow()","20b0554e":"payoutBalance()","20b0747f":"start1stRound()","20b0961c":"pE(uint256,uint256,uint256,uint256)","20b0eafb":"PoWH4D()","20b0fe2c":"setGlobalParams(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint32)","20b1b0ab":"getStuckCoin(address,uint256)","20b1d054":"TAAS_VAULT()","20b27291":"setFinalized(bool)","20b28ade":"getIPFSHash()","20b2af52":"Author()","20b2d97b":"LiquidDemocracyRules(address,address[],uint256)","20b3c9c9":"InfinixSupply()","20b431aa":"dividendDivisor()","20b44b29":"lockTransfer(bool)","20b4577e":"numBonuses()","20b4fc29":"setBbAddress(string)","20b519bb":"setBarrierAsOpen(bool)","20b652ba":"chainedFunctions()","20b748f4":"REGULAR_TYPE3()","20b7ceb8":"R2Xtoken()","20ba5b60":"insert(bytes,bytes)","20bacfbd":"addDoc(string)","20bb0ef6":"originalHash(uint256)","20bb280b":"buy5(address[],address[],uint256[],bytes,bytes,bytes,bytes,bytes)","20bb2adf":"setAllowedTransferFrom(address,bool)","20bc4425":"getHost()","20bcbee5":"EarlyTokenSale(address,address)","20bd0475":"resetLotteryBalance()","20bd46b7":"drawTertiaryAWinners(uint256)","20bf0c52":"Derived(uint256)","20bf2f47":"_setAddresses(address,address,address)","20bf92ca":"oldSeeleToken()","20bfa95c":"bookAndCalcRemainingPremium()","20bfde8b":"s24(bytes1)","20bfec70":"WatchFees()","20c0b493":"getWarriorChestPrice()","20c12f16":"penalizeInactiveJuries(address[],uint256[])","20c21ba5":"_setTypeValue3(uint256)","20c28b85":"schelling(address)","20c2d5e4":"withdrawAffiliatePot(address)","20c2f40b":"doCalculate(uint256,bytes32)","20c381af":"cityPoolTotal()","20c3be47":"_createZombie(string,uint256)","20c5429b":"revoke(uint256)","20c5478f":"RtBCoin()","20c55a8a":"AirDropAFTK5May()","20c58794":"PHN()","20c5b497":"recoverAddressFromBalanceProof(bytes32,bytes32,uint256,bytes32,bytes)","20c5e29a":"increaseDailyTransactionVolumeSending(uint256)","20c726b4":"view_product(uint256)","20c8580f":"getBalanceEthContract()","20c8651b":"makeFee()","20c90167":"distributeCDD(address[],uint256,uint256)","20c93c62":"trackFee(uint256)","20c9d73c":"validCountryId(uint256)","20c9f377":"OneUpToken(address)","20ca0418":"getEscrowById(uint256)","20ca292e":"AUFBToken()","20cad613":"isVersionLogic(address,bytes32)","20caea39":"surprisePanda()","20cb27fb":"requireWhitelistingBeforeDeposit()","20cb7bce":"takeFee(address,address,uint256)","20cc6889":"getAvatarByNickname(string)","20cc7b4e":"changeToken(address,address)","20cd2141":"advisorLockUp_address()","20ce4c66":"getInteractive()","20ceb1bb":"SetCoinManager(address)","20ceb536":"grantToSetUnpausedWallet(address,bool)","20cf3e1f":"maintenance_mode()","20d00018":"jackpotTime()","20d01a7f":"ContestClosed(uint256,address[],address[])","20d0c13c":"getStatusModerator(address)","20d19181":"crowdsaleEndedBlock()","20d3a0b4":"unlockPeriod()","20d3fc20":"totalSeedStage()","20d615c2":"testControlTransferDisableNotEnabled()","20d71dad":"_repopTransaction(address,uint256,uint256)","20d76113":"admin_tokenBurn(uint256)","20d786b5":"withdrawalCounter()","20d7d367":"allowRegistryUpdate()","20d7d860":"ahmadToken(uint256)","20d8741f":"Feed()","20d8dad0":"checkWhitelisted(address)","20d95f90":"removeInt256(bytes32)","20d9822e":"setAnyoneCanCall(address,string,bool)","20d9a9e2":"getChallengeType(uint64,uint256)","20db0c7e":"B21Token(address,address,address,address,address)","20db31d6":"totalFortunes()","20db91e2":"createPartner(address,uint256,uint256,uint256)","20dc3d06":"bpLockUp(address)","20dc407a":"creditOwner()","20dc4677":"minPublicContribAmount()","20dcce99":"PRE_CROWDSALE_CAP()","20dce978":"setExchanger(address,address)","20dd60f5":"setEnvelopeType(uint256,uint256[2])","20df7f35":"DATE_TOKENS_UNLOCKED()","20dfcd27":"purchaseCountry(uint256)","20dffb08":"testCancelSellOrder()","20e07e7f":"changeCardCost(uint256)","20e0dc9f":"RTCoin(string,string,uint8)","20e1063e":"toekensForBTCandBonus()","20e12a43":"createRound(bytes32,bytes32)","20e25965":"timestampRelease()","20e33b13":"GoodBit()","20e3dbd4":"setConfig(address)","20e537c7":"isTransactionAlreadySettled(address,bytes32)","20e561f3":"BecomePharaoh(uint256)","20e57371":"ownerVault()","20e59116":"startChampionGame()","20e62bbc":"StreamityEscrow()","20e647e1":"checkBetColor(uint8,address,bytes32,bytes32)","20e65a42":"stakeForAirdrop(address,uint256,bytes)","20e6a2cb":"getStrField1()","20e6e921":"transfer(address,uint8)","20e76d31":"_solveGame(uint256,uint256,uint256)","20e87093":"getDSTSymbolBytes()","20e89790":"POWR()","20e979b1":"assignBank(address)","20e98bf4":"setNick(string)","20e9aac3":"playerTimestamp(address)","20ea2533":"authorizePayment(string,bytes32,address,uint256,uint256)","20ea31f8":"giveTo(uint256,address)","20ea8d86":"revokeConfirmation(uint256)","20eb2a87":"setContract(address,address,address,address,address)","20eb6dec":"frozenControl(address,uint256,uint256)","20eba3f2":"gamesLength()","20ec0f01":"lastBlock_v12Hash_uint256()","20ec75c2":"searchStartIndex()","20ed1a52":"badge(address,address,uint8)","20ed9451":"set_active_contract()","20edae5a":"createChallenge(uint256,string,uint256)","20ee0c94":"setUrl(bytes32)","20ee5445":"addToPrivileged(address)","20eea675":"ESOPOffered(address,address,uint32,uint32)","20eeba1f":"testConstructorUsingNewContract()","20ef57ed":"bumpCounter(uint256)","20f067a8":"PRETDESupply()","20f06c9b":"start_LOCKUP(uint256)","20f0751d":"turnOn(address)","20f0c28f":"MainContract(string,address,address,string)","20f0db91":"VerifCert(uint32,bool,bytes,bytes)","20f10ae7":"_supportsERC165Interface(address,bytes4)","20f10fdd":"tokenSupplyLimit()","20f1895c":"fechVoteSumNumForCandidate(address)","20f1d85b":"removeApprovedAddress(address)","20f317fb":"districtContractAddress()","20f320d0":"setBonusExtra(address,uint256)","20f361b3":"optionExercise(uint256)","20f3d413":"getTargetBlockNumber()","20f4014a":"ApolTestToken()","20f4914a":"changeMyString(string)","20f4d7aa":"redeemPayout()","20f541fa":"purchaseAsQualifiedPartner()","20f5a0b9":"readTeamByIndex(uint256)","20f5afdf":"OwnershipTransferInitiated(address)","20f5e8dd":"resetBalance()","20f65816":"extractToken(address,address)","20f71018":"Aqo()","20f727e2":"Caller(address)","20f756bd":"getArmySoldiersCount(uint256)","20f801d4":"payout(address,address,uint256)","20f86e9f":"_isBonusAvailable()","20fa6fd9":"ethSendSameValue(address[],uint256)","20fa70b0":"getAvailableWithdrawableCount(address,uint256)","20fb2bc2":"AllowClaimBTC(bool)","20fb36af":"Test8J()","20fb9bad":"LogSortedOffer(uint256)","20fc4881":"getCheckpoint(uint256)","20fcf2e5":"Castor()","20fd8861":"customerWallet()","20fea5cf":"getUserTaskAtIndex(uint256)","20fee8f1":"_timePer()","2100bf7a":"lolaToken()","21015328":"getLLV_edit_28()","21027354":"buyerHistory(address,uint256,uint256)","21029f47":"chickenHunt()","2102df31":"_totalDonations()","2104c2bb":"fundTeamInstant()","2104cdd2":"totalNumberOfScammers()","2104d832":"AddHelenium(address,uint256)","2104ebf1":"executeWithdraw(uint256)","2104fa0b":"skinIdToOwner(uint256)","21059e63":"createProposalAndPublish(bytes32,string)","2105c049":"setCSO(address)","21065f10":"mintInternal(address,address,uint256)","21067b3f":"startRoundWithFirstBet(uint256,uint256,uint256,bytes32)","210790c8":"signWholeConfiguration()","2107a796":"createGame(string,string,uint256,uint256,string,string,string,string,bool,string)","2108292e":"mint_(address,uint256)","210846ae":"is_kyced(address)","21090b31":"_decrementInventory(uint256,uint256)","210970c5":"update_count(uint256)","2109b408":"bitsMask()","2109cf80":"depositEth(address,uint256,bytes)","210a6eec":"sendMultipleAddress(address[],uint256[])","210a854b":"preIcoTokenHoldersAddresses(uint256)","210a8d0e":"changeGranularity(uint256)","210ab6af":"numOfJingles()","210ae4d5":"setTransferDisabled(uint256,bool)","210b7e0b":"tokenAllocation(address,uint256)","210ba961":"demurringFeeOwner()","210bc472":"ownerTokensMinted()","210bd306":"getCurrentHunterLicencePrice()","210c1f29":"closeBoard(uint256)","210c5a56":"_removeMinter(address)","210c5ff6":"getBlockNumber(bytes)","210d14b8":"burnPREICOTokens()","210d2bba":"PRICE_MULTIPLIER_PREICO2()","210dee2f":"setMigrateOut(bool)","210e2484":"icoDiscountPercentageLevel3()","210e734c":"isBoxItemId(uint256)","210e9a34":"getPendingReferals(address)","210f5dda":"createToken(string,string,uint8,uint256)","210fcbf6":"createPromoCutie(uint256,address)","210fd271":"sizeLimit()","210fe93b":"catIndexToAddress(uint256)","2110273d":"addToShareHoldersProfit(string,string)","21105d35":"addressForNonce(uint8)","21106109":"finalRate()","2110a57c":"User(address,bytes32)","2111006f":"create(address,address,bool)","21114904":"balanceOfEther(address)","2111871c":"endPreICOStage2()","2111c0f9":"freezeDeliverMuti(address[],uint256,uint256,uint256,uint256)","2111d1e2":"OnUpdateMessage()","21129137":"saleover()","2112e7fe":"getListGames()","2113342d":"totalDividendPoints()","2113aab4":"BTL_IMMORTAL()","21141c38":"updateInvestorFunds(uint256,uint256,address,uint128)","21141de0":"ReturnEthToEthero()","2114fd0f":"AxpireToken()","2115d328":"getSemiResult(uint256)","2115fd55":"RecievedEther(address,uint256)","21166476":"ARC()","2116b530":"ChangeOwner2(address)","21180138":"isCA(address,address)","21180722":"init(int256)","21187172":"Gate(address)","21188011":"maxIssuedWithAmountBasedBonus()","2119249f":"getNumTokens(uint256)","21194bc0":"devCutPercentage()","211a048a":"getFastestSpaceship()","211a04db":"totalToDistribute()","211a0f39":"ERC20TokenComplete(uint256)","211a1ba8":"changeTokenController()","211b2758":"changeBlockedTimeForInvestedTokens(uint256)","211b4f54":"startUpdate(uint256)","211b72a3":"sub1(uint256,uint256)","211db50d":"allowNewStakes()","211e28b6":"setLocked(bool)","211ed6c1":"freeTransfer()","211f0b93":"getCreateReputationTokenUniverse()","211f0ef9":"SaleOfChametz()","211f390e":"ECO_SYSTEM_HOLDER()","211feec5":"executeEtherDeltaSell(uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,bytes32,uint256)","211ff90c":"SpiceControlled(address)","2120e527":"stakingBonus(uint256,uint256,uint256)","21217668":"getDrawBlockNumberByWinner(uint256)","2121dc75":"isTransferable()","212257de":"changeCap(uint256,uint256,uint256)","2123015e":"test_insert_findWithHintNextIncreased()","2123476b":"startConstitutionPoll(address)","21235083":"cancelSubscription(uint256)","21241e44":"addressOfTokenUsedAsReward3()","2125b65b":"transfer(uint32,address,uint224)","2126a923":"reverse(address,uint256)","2127c30a":"setBlockHash(bytes32)","2127fe90":"addOnStage(address,uint256)","21288400":"lastPurchaseTick()","21289506":"MichaelCoin()","2128a580":"total_claim_codes()","212954dc":"setAddBonus(uint256,uint256)","2129e25a":"finalBalance()","212a6fd3":"CloseEntry()","212a850c":"showMyNumber()","212ac4b5":"UnicornChain()","212ac7d1":"mintNewSpinner(uint256,uint256,uint256)","212bf316":"setCaps(uint256,uint256)","212c3fce":"returnTokensToAirdropper(address)","212c5fea":"close(bool)","212c8157":"disallowTransfers()","212d6723":"payRoyalty()","212e2596":"sellOrderTotal()","212ebbd6":"addTokenLock(address,uint256,uint256)","212f6066":"enableInvestment(address[])","21309ae3":"setTimeBonuses(uint256[],uint256[])","2131c68c":"daoAddress()","2132626f":"_removeByIndex(uint256)","21326768":"finishGame(bytes32)","213294cd":"crowdsaleHasEnded()","2132ce0a":"BASE_AMO_TO_ETH_RATE()","2132eb23":"TreasurerToken()","21335ad5":"getDepositAggregate(address,uint256)","21338d1b":"rewardsWithdrawalProposed()","2133ddeb":"settleBetV1(uint256,uint8)","2133e3b9":"calculatePercentage(uint256,uint256)","213408da":"sendCreatorReward()","2134214b":"getPreorders(bytes32)","21346edd":"savedBalanceToken()","2134927e":"setAuctionParms(uint256,uint256,uint256)","21355869":"getAuctionTimeLimits(bytes32)","2135810e":"curRequestId()","2135d2e4":"lasttokencount()","213671bf":"mainSale_TokenCap()","213681cd":"getRecord(bytes32)","21370942":"updateEthPrice(uint256)","21376d07":"scheduledPayout()","2139c2aa":"setwinnerLimit(uint8)","213a2622":"offerAsSacrificeFromVault()","213a72a7":"LightofGalaxy()","213ac932":"addUser(address,uint256,uint8,bytes32,bytes32)","213ad495":"TimeWeekTwo()","213ae9ec":"newGame(uint256,bytes8,uint256,uint256,string)","213aedb8":"getAllGames(bool,uint256,uint256)","213b9eb8":"setAddr(string,address)","213c3375":"callCustomTokenFallback(address,address,uint256,string,bytes)","213d6771":"editionData(uint256)","213d8f4a":"setCurrentRewardNum(uint256)","213db226":"move(address,address,uint8,uint256)","213e609f":"getTknOfferAmount(uint256)","213e84d3":"maxIssueTokenLimit()","213ea6bb":"donationReceiver()","213f44ab":"getUserAddressList()","213f9ad4":"generateWinners(uint256)","213fe044":"getInstanceAddress(address)","213fe2b7":"getContracts(address)","21420a3d":"_depositTokens(address,uint256)","21424e7d":"ETHcollected()","2142adc9":"changeMargin(uint256)","21435e07":"setTokensWallet(address)","2143da91":"GameOfThrones()","214405fc":"addToWhitelist(address,uint256)","21446cfe":"unitDefense(uint256)","2145465a":"SOUNDBOY()","2145a455":"getRebackRate()","2145e36c":"testBitSetFailIndexOOB()","21462191":"bid3(address,uint8[],uint8[])","21464e71":"inOneYear()","2147783f":"smitToken()","21479265":"addToBlackList(address,address)","21484786":"notificationFee()","21486833":"maxRewardUnitsAvailable()","21491e82":"secondCurrentAmount()","214958ba":"BLOCKCURRICO()","214962d1":"identifierHash(string)","21499737":"setIco2Tokens(uint256)","2149c619":"functionThree(uint256,uint256,uint256,uint256)","214af6b9":"acceptTokensFromUsers(address,uint256)","214b146f":"storeName(uint256,string)","214bb60f":"finalised()","214c2a4b":"getServiceURI(address)","214c9d50":"WritedrawStatus()","214cdb80":"registerInterface(bytes4)","214dda84":"regularPhase()","214e52ca":"transferAllowed(address,address)","214e5f3a":"setForwardUpdateFeesTo(address)","214e8a47":"getSingleLocker(address)","214f71fe":"tokenFulfillmentDeposit(address[2],uint256,uint256[7],uint8,bytes32[2])","2150097f":"timerInfo()","2150c518":"getKeys()","2150c75d":"newItem(uint256,string,uint256)","2150cd56":"setRateAdmin(address)","2151f9a0":"TCT(string)","21520c5f":"calculatePayout(uint8,bool,uint256)","2152b483":"OWN_SmartContract_Allowed(address,bool)","2152c649":"LOVEYOUToken()","2152ebac":"getContributionAmount(uint256)","21537caf":"setRequiredBlockQueueTime(uint256)","21538acb":"approveCallGas()","2153bade":"ZJZJToken()","2153bf23":"x3Token()","21542702":"MakeBet(address,uint256)","215458b0":"salvageNotAllowedTokensSentToContract(address,uint256)","2154dc39":"maxMintable()","21554dca":"GetCurrentBonusStageTokenBalance()","2155af2f":"execute(address,uint256,bytes1[])","2156a96c":"getTotalSales()","2157320e":"votedAddress()","21575889":"distributionSupply()","2157ab24":"GetBankerRound(uint8)","21592a2b":"YaoMaoCoin(uint256,string,uint8,string)","21594110":"createProductionUnit1Beta()","215a3bcc":"setStatus(bytes32)","215a4862":"eligibleForBonus(uint256,address)","215a6ce4":"createBet(uint64,uint256)","215ac4be":"fillContract()","215ae66d":"mintForWebsites(address[],uint256[])","215afc5f":"totalTokenDistribution()","215b3e32":"fromBytes(bytes)","215b5411":"purchaseCallbackOnAccept(uint256,address[],uint256[])","215bad32":"TPTTransfer()","215bd303":"createWorkerPool(string,uint256,uint256,uint256,address)","215bf604":"addFreelancerFeedback(address,uint256,address,string,uint8)","215cb8df":"createIlliquidToken(address,uint256)","215cc031":"getAvatarByAddress(address)","215d6b61":"getTierOfMember(address)","215d902c":"extractString(bytes,uint8,uint256)","215de48a":"getParentCount(bytes32)","215de791":"getTankName(uint32)","215e25ea":"upgradeReferrer()","215f1cd1":"oraclizeSetWinner(uint256,uint256)","215f865e":"resetDropAddress(address)","215fce93":"changeExchangeRate(uint256)","216093aa":"getIsThirdPhase()","21614f62":"randomSkinAppearance()","2161d0e9":"tokensToP3D_(uint256)","21627dad":"getCart()","2163d49a":"lockedCore()","2163ef1a":"GangnamTokene(address,address)","216481d6":"icocontract()","21650145":"Revoked(bool)","2165e1aa":"withdrawRemainingBalanceForManualRecovery()","2165fef9":"allocateStrategicTokens()","21667940":"issueTokenAndApprove(uint256,address)","21670f22":"reward(address,uint256)","216716af":"ExoMiniumToken(address,address)","21687444":"newDAO(address)","2168c988":"transferToInternalLedger(uint256,bytes32)","2168ca06":"numberOfIndex()","216903f9":"confirmTx(bytes32)","216974cc":"refundNonCompliant(address)","216986b0":"entradaJugador(uint256)","216a5543":"getAllForSaleStatus()","216aa0ba":"proposalBlock()","216be181":"hodls(uint256)","216c1606":"_claimExistingCard(uint256,address)","216ced43":"setPenaltyDisbursal(address)","216d93d6":"pricers(uint256)","216de17a":"priceStage1()","216e2a97":"totalOrder()","216e3449":"changeToken(string,string)","216ea239":"miningResolve(uint256,uint256)","216ea5ec":"remainder(uint256,uint256)","216ec69b":"getColour()","216ecfa7":"Tbaol()","216ef940":"proxyUpgrade(address,address,bytes)","2170ebf7":"makerWithdrawEther(uint256)","2171454a":"bountiesKey(uint256)","2171526e":"Chewbaka()","21717ebf":"siringAuction()","2171dc73":"buyXaddr(address,address,uint256,string)","2172ac5a":"_requestExistsReverse(address,address)","217311ac":"getWords(uint64)","21733f6a":"sendDv(string)","2173a10f":"INITIAL_POLL_NONCE()","21745c15":"numberOfSales()","217477f6":"ICO_PERCENTAGE_3()","2174b88f":"transferBanker(address)","2174dcec":"ConfigPromoter(uint256)","21751df9":"BugBountyOne()","21752974":"compromiseContract()","21765510":"getLockedAvailable(address,string)","21765d23":"addLockedTime(address,uint256,uint256,uint256)","217720d7":"getHeldCoin(address,address)","21774f4b":"CUSTOMER_PERCENTAGE()","2177885d":"isOnAuction(uint40)","2177a36f":"getCountProof()","2178139d":"acceptAbstractToken_(uint256)","21795635":"TOTOAirdrop(address,address)","217987ad":"delBlackList(address)","2179f0f7":"EtherToken()","217aab68":"_updateCommission(uint256)","217ad35a":"minimalEther()","217af162":"whitelistKyberAddress(address)","217b97e4":"hatchMaxTime()","217bd046":"computePoolAmount()","217cab2b":"GetWhitelist(uint256)","217d9bbe":"depositExit(uint256,bytes)","217db8e8":"toBase(uint256,uint256,bytes8)","217f2d23":"CRVToken()","217fe6c6":"hasRole(address,string)","21815a1a":"updateHolderShareInfo(uint256)","21819e5c":"computeArtistTxFee(bytes32,uint256)","2181c11f":"batchNewAuctions(uint128[],uint256[],uint256[])","2182e6d8":"buy_lovelock(bytes32,string,string,string,uint256)","2182ebbf":"use(address,uint256,uint256,uint256,uint256,uint256,string)","2182f7b4":"MINIMUM_PURCHASE()","2182ff7e":"sellMNC(uint256)","21835af6":"__dig(uint256)","2183e390":"setTotle(address)","21842be3":"unlockTransfers()","218444ab":"Test2()","21844b08":"drWinChances(uint256)","21848580":"lastBlock_a14()","2184f977":"TRANSITION_WINDOW()","2184fe2c":"transferTechSupport(address)","2185072f":"SerpenSegmentCount()","21853009":"participantRoundRewarded(address,address,uint256)","21856b36":"interestOwed()","2185810b":"allowTransfers()","21858521":"tickets()","21860a05":"airdrop(address)","21861cce":"AUDITED_AND_APPROVED()","2187a833":"setGreenToken()","2187bdca":"getAllETH(address)","21887c3d":"has(address)","21895086":"RL(uint256,string,string,bool)","218a51e8":"UnFrozenTokenEvent(address,uint256)","218a7667":"addToBalances(address,uint256)","218a9640":"setTeamStatus(bool,uint256)","218bc5ec":"createBid(uint256,address,bytes32,bytes32,uint256,uint256)","218bd577":"enterGame()","218cd7a1":"POOPOO()","218d5637":"realSupplyWeight()","218d6ca2":"calcPurchase(uint256,uint256)","218d984b":"registryProxy()","218dd3dd":"checkIdentity(bytes32)","218e4562":"updateBalanceOf(uint256)","218e4a15":"getCooldown()","218e6877":"setDelegate(bool)","218e767d":"TokenFactory(address,address)","218eee82":"addAd(uint32,uint32,string,string,uint256)","218fbdec":"callWithdraw(address)","218fd1c4":"CompanyName()","218fe479":"generateRenown()","218ffb4c":"Fund(address,bytes32,address,uint256,uint256,address,address,address,address[],address[])","21901fa8":"WithdrawFunds(address,uint256)","219047f7":"MasternodeRewardSend(uint256)","2191207a":"setTAOFactoryAddress(address)","21914e29":"day2Start()","2191f4a9":"storjPrice()","219285d2":"presaleClosedManually()","2192b99d":"mintContributors(address[])","219356bc":"GxConstants()","21937192":"finishedSTOMinting()","21938610":"set0xExchange(address)","2193cdba":"send_all()","2194f3a2":"fundsWallet()","21956036":"SmartRouletteDividend()","2195845f":"withdrawAltcoinTokens(address)","21958a50":"AddressSeries(address)","2196ae0d":"hint(bytes32,string,bytes20)","2196feac":"createMarketItem(bytes16,bytes16[],bytes16[],uint256[])","2197021b":"proxyVotingContract()","21970c0c":"pay_royalty()","21974a74":"EtherNetworkConfig()","21978e58":"_removeSale(uint256)","2197b236":"Goldjunge()","21981514":"totalUnclaimedBidsAmount()","219862d0":"marketKebabs()","2198e780":"addDollarAmount(address,int160)","21998504":"setCompte_7(string)","2199d5cd":"registerUser(address)","219a6ead":"MICRO_DOLLARS_PER_BNTY_PRESALE()","219a6f04":"getFounderMember(uint256)","219bc76c":"currentRoundInitialized()","219c7ad1":"getwinningaddress10()","219caaa9":"reclaimChildOwnership(address)","219d0ece":"transferAdminship2(address)","219da4ac":"ResumeTokenContract()","219dabeb":"registerDeposit(address,uint256)","219dc688":"technicalPercent()","219df7ee":"ZTHTKN()","219f5052":"updatePokeMarketAddress(address)","219f72c9":"startICOStage3()","219fd010":"accredited()","21a19b2d":"neverdieSigner()","21a2ad3a":"nextSlasher()","21a2c72d":"BitcoinDublicate()","21a32e5c":"VanityCrowdsale(uint256,uint256,address)","21a33743":"DroidEIP20Token(uint256)","21a33e00":"gasReq()","21a389cc":"PRE_SALE_3WEEK_BONUS()","21a3fb85":"addValidator(address,bool)","21a49ec2":"LCoin()","21a4a5bb":"endDateOfSaleStageLast()","21a4c6c3":"openMarket(address)","21a4cdaf":"HDCToken()","21a5065e":"returnableTokens(address)","21a5c1c3":"buyItem2()","21a5dcfe":"multivestBuy(address,uint256)","21a638d8":"addTerminal(address,uint256,address)","21a6c649":"privatePresaleWallet()","21a6c7aa":"megabossCutPercentage()","21a78f68":"ref()","21a7d652":"EQUIPMENT_REWARD_TOKENS_NUMS()","21a804fc":"SphereToken()","21a83738":"getDragonPriceNo(uint256)","21a8a771":"setPort(uint16)","21a91d2b":"PrcntRate()","21a9cf34":"setTradeAddress(address)","21aa1706":"startPresaleTrading()","21aace42":"setTokenForSP(uint256)","21ab13ab":"maxBet(uint256)","21ab3074":"transferOwnershipOfStorage(address)","21ab561d":"MIN_BID_FRAC_BOT()","21ab7fb4":"marketplace_admin_controller()","21ab9177":"fixPlayerGraphic(uint256,string)","21abf58b":"feesB()","21ac01d8":"ClaimedTokens(address,uint256,uint256,uint256)","21ac5aba":"cityIndexToOwner(uint256)","21ac64af":"declareRCV(string)","21ac8967":"setPatentFee(uint256)","21b12a4b":"clearTransaction()","21b133ed":"icoTotalAmount()","21b1e5f8":"sendETH(address)","21b288d8":"endSecondBonus()","21b36a08":"setFee(uint64,uint256)","21b43777":"advisorCount()","21b48008":"getInvestorsETH(address,address)","21b4b3dc":"proposalsCnt()","21b55c42":"testConcat()","21b5b8dd":"extraBalance()","21b68d2b":"DyginoteToken()","21b6ac62":"lockGate()","21b6c321":"StoreProduct(bytes32,bytes1)","21b6fcbf":"SendFund(uint256,bytes32)","21b8092e":"setWithdrawalAddress(address)","21b8151e":"Mixer()","21b8b11e":"_addToDebtRegister(bytes4,uint256)","21b8d973":"returnHash(address[2],uint256[8])","21b920eb":"upgradeTank(uint32,uint8)","21bacf28":"getDefaultFee()","21bb79fe":"luckyDogInfo()","21bb86ab":"setExchange(uint256,uint256,uint256,uint256)","21bc84fd":"canCompose(string,uint256[],address,uint256)","21bc9a55":"buyTokens(address,address)","21bcc5e5":"multiBatchTransferFrom(uint256[],address[],address[])","21bdb26e":"maxPresaleSupply()","21bded12":"capitalPctBips()","21be2244":"PrivatePlacement(address,address,address,address,address)","21be26ed":"deauthorizeContractById(uint256)","21beba94":"lastTxBlockNum()","21beedf4":"BlocklancerToken()","21c0183e":"centralAdmin()","21c02472":"numberOfResolutions()","21c03a97":"setTradingOpen(bool)","21c0b342":"claim(address,address)","21c0e95d":"setBountyPool(address)","21c17ab8":"unproposeMilestones()","21c24081":"GDC(uint256,string,uint8,string)","21c26195":"distAirdrop(address,uint256)","21c4d650":"priceForBasePart()","21c5fb20":"Deposit_double_sum_paid_from_the_balance(uint256)","21c60ac6":"div(uint8,uint8)","21c60c74":"createMobster(string,uint256,uint256,uint256,string)","21c63a47":"getTicketCount()","21c6b951":"BetherCryptocurrency()","21c6d7b6":"BitbabeToken()","21c87627":"getUnlockedPercentage()","21c87ee8":"setMaxLevel(uint8)","21c882ef":"testGetCaseAtIndex()","21c88358":"anyTokenWithdrawal(address,uint256)","21c9a6b1":"localCheck(uint256,string,bytes32,bytes32,string,bytes32)","21cb1568":"registerArtwork(address,bytes32,uint256,string,string,uint256,address,bool,bool)","21cb18cd":"assignVested(address,uint256,uint64,uint64,uint64,bool)","21cbed35":"setOperationAttributesByRegulator(string,string,uint256,string)","21cda790":"tokensOwned(address)","21cdb03c":"shopShield()","21cde824":"fighterIndexToTeam(uint256)","21ce14a9":"injectTokens(address,uint256)","21cefec0":"tokenBuyRate()","21cf3514":"priceStalePeriod()","21cf5132":"setManualBonus(uint256,bool)","21cf9f22":"updPool(int8,uint256)","21d148ab":"weiForXau()","21d1a303":"checkRemained(uint256)","21d1b7a4":"TJ2()","21d269dc":"fastCashBank()","21d2daa0":"unFreezeToken(uint256)","21d3523c":"voteToHarvestFund()","21d36529":"feePercentage(uint256)","21d365af":"_processVestingRules(address,address)","21d376ce":"tokensOfOwner(bytes32)","21d3d2ee":"isMigrationFinished()","21d41bc2":"IRobo()","21d45bec":"getReverseFee(address,uint256)","21d4b08c":"numTicksTillAuctionStart(uint256)","21d50273":"createParty()","21d53fb9":"withdrawLockupTokens()","21d5c0f6":"finalizeAgent()","21d5cb51":"verifiedUser(bytes32)","21d65d80":"blockPart(uint64,uint64,uint64)","21d67daa":"internalFinishMinting()","21d6cdb6":"newPeriod(uint256)","21d739f1":"TokensIssued(address,uint256)","21d7bdff":"startCountDown()","21d800ec":"relayedMessages(bytes32)","21d80111":"getHero(uint256)","21d8ad4c":"getContractName(uint256)","21d9d5ba":"testRemoveLocked()","21da1719":"impl_unlock4Circulate(address,uint256)","21da94e7":"getSEScore()","21daae34":"getQuoteToBaseReturn(uint256)","21daf0f8":"TransferToReferrer(address,address,uint256,uint256,uint256)","21db06bc":"wolf4Balance()","21db087e":"getLevelCitizenById(uint256,uint256)","21db0f0d":"getImmortalsOnTheBattlefield(address)","21db2aa0":"getArtwork(uint32)","21dc04f4":"Vibranium()","21dc512e":"replaceSSPRegistry(address)","21dc74fa":"addWhiteLister(address,address)","21dcbbae":"HighJackpotHolder()","21de6b01":"setKtcAddress(address,bool)","21df0da7":"getToken()","21df2ea5":"getNewInstance(address)","21df8b9b":"addTotalBondValue(uint256,uint256)","21e01596":"logCall(uint256,uint256,uint256)","21e0f228":"winningNumbers()","21e2933a":"setBasicIncomeLimit(uint256)","21e38e81":"ownerCheck()","21e3cdd0":"voteDn(uint256)","21e5383a":"addBalance(address,uint256)","21e53d77":"_buyTokens(address,address)","21e5d0e4":"PRESALE_START_WEEK2()","21e5e2c4":"shareOf(address)","21e69b42":"dataMerkle(bytes32[],uint256,uint256)","21e6b53d":"transferTokenOwnership(address)","21e76826":"Gamblr()","21e866be":"getCompanyCreationCost()","21e88888":"setColor8(uint256,uint8)","21e92d49":"transferByOwner(address,uint256)","21e96b88":"setProxyManagementCurator(address)","21e9b296":"ExtractedTokens(address,address,uint256)","21ea2b8d":"delayOfICOEND()","21ec0129":"HAUZ()","21ec5981":"Jekyll_Island_Inc()","21ed0f64":"removeEmployee(uint256)","21ed46ad":"Dollars()","21ed47b3":"annualPos()","21edbe24":"pricesAndInventoriesOfDate(uint256,uint256,uint256[],uint256)","21ee102b":"removeExtension(address)","21ee6457":"set_sale_arbits_total(uint256)","21eeb9a7":"LogSaleCapReached(uint256,uint256)","21ef10f0":"revokeSelf()","21ef8368":"DataSentToAnotherContract(address,address,bytes)","21eff7fc":"getContribution(address)","21f032d3":"BitDAOToken()","21f0a727":"node_right_child(uint256)","21f0b382":"unblockClient(address)","21f118a6":"createByCOO(string,uint256,uint256)","21f1a18c":"battleRemove(uint256)","21f1b677":"updateTime(uint256,uint256)","21f222dd":"minWeiAmount()","21f2a9a9":"_getUnlockedTokensPercentage()","21f2ca3b":"unregisterUser(address)","21f2ed2e":"dividendDistributionEndTime()","21f35609":"CAT_FIRST()","21f38c6e":"bundlingEnabled()","21f3f338":"proposalCensorshipFee()","21f3ff41":"maxMultiRolls()","21f408be":"tk()","21f4911a":"addFiveParticipants(address,address,address,address,address)","21f4d29f":"getPoolHistory(uint256)","21f610d3":"endEarlyStage3()","21f6b513":"Airdropper(address,uint256)","21f72d82":"YODCToken()","21f7ac0d":"codeExportCost()","21f8a721":"getAddress(bytes32)","21f8dab6":"THRESHOLD4()","21f9a878":"NewHashnodeTestCoin()","21f9caef":"cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32,address)","21fa1730":"Ballot(string,string,string,uint256,address[],uint256[],uint256[])","21faf403":"getStatusLogCount()","21fb39d4":"WithdrawEvent(address,address,bool,uint256,uint256)","21fb9869":"getAdminLog(uint256)","21fc2cd1":"NounToken()","21fda809":"payment(address,address,uint256,address)","2200919f":"addVersion(string,address)","22009af6":"BASE_REWARD()","2200cdec":"finishPVE(uint256)","22017c5f":"DSTokenBase(uint256)","2202dcad":"FACTOR_7()","22039f89":"isServiceContract(address)","2203ab56":"ABI(bytes32,uint256)","2204ef4b":"getMeTokens(uint256)","22054fe0":"updInvestorEnabled(address,bool)","22057bc7":"getAllRevisionBlockNumbers(bytes20)","2206e837":"undisapprove(uint256)","220772a9":"starUpZero(uint256,uint256,uint256)","2207a93a":"etherInUSD()","22081c12":"processPayment()","22082c72":"getDoneSelfDropAmount(address)","2208ee1d":"_releaseTime()","2209e991":"sendBet(address,uint256)","220a0e36":"LoggedERC20(uint256,string,uint8,string,bool,bool)","220a2247":"givePermission(address,string)","220b4a73":"TCPC()","220c166c":"hatchingSpeed()","220c773a":"changeMarketingRecipient(address)","220d5d8d":"YioCoin()","220d7a7f":"NoteToken(uint256)","220d8707":"BONUS_DAY3_DURATION()","220d9944":"MailHustleCrowdsale()","220e44d0":"_buy(uint256,uint256,address)","220e5d06":"qshdrop(address[],uint256[])","220e693f":"ALLOC_ADVISORS()","220eb9b6":"run(uint256,bytes)","220ee9ec":"purchase_dates(address)","220eeab4":"BonumPreSale(uint256,uint256,address,address,uint256)","220f1202":"lowestAskAddress()","220f1aee":"createVoting(string,string,uint256,bytes32,address)","220f52c5":"whoIsTheOwner()","220f9dfd":"getFighterInfo(uint32,uint32)","220fde2e":"setSellPrice(uint16,uint256)","221067a1":"JULIAN_ALLOCATION()","221086af":"buyerBonus()","2210d525":"getRareAddress()","2210e0f7":"MassPay()","2211218a":"ARMtest()","2211944a":"ActiveAdmin()","2211c3b3":"eraseContribution(address)","22122cb3":"blockTokenFunds(address,uint256)","2212dbc3":"get_timestamp()","22132598":"numArtworks()","221353ca":"finalizeByAdmin()","22137935":"productsExported()","2213c7db":"tokenPreSaleRate()","2214f65d":"toWei(address,address,uint256)","221538f4":"BurnupHoldingCore(address,address)","22156bb2":"WerderCoin(uint256,string,uint8,string)","22159d89":"ticketsOwned(uint256)","2215fc82":"getONETIMESOLD()","2216573d":"internalIncreaseGoldKeyCounter(uint256)","22169ab3":"START_PRESALE_TIMESTAMP()","22174ebf":"TokenSBT()","2217bf78":"getReputationRewards(address,address,bytes32)","2219a95b":"DWBTPreICO(address,address,uint256,uint256,uint256,uint256)","221a66d9":"presaleFee()","221ab8e2":"setBlockResult(uint64,uint64,bytes32)","221b1c4a":"_NumOfStudentsPass()","221b30df":"btcPurchase(address,uint256)","221b5ec2":"setTimeBegin(uint256)","221b5fad":"getCardsCount()","221b850c":"changeInstallerEscrowAddress(address,string,address)","221d4dff":"create(string,uint256,string,string,uint8)","221e5da9":"GetContractStateEarlyTerminatedByTenant()","221e9370":"recordedCoinSupplyForRound(uint256)","221ed3cc":"CONSTELLATION()","221ed748":"shareCycle()","221ef94d":"userMigration(uint256)","222101d1":"vestingMappingSize()","222160c0":"isProposalExecutable(bytes32,uint256,address,bytes)","2221fb3e":"hasActiveBet()","22230fc4":"countFishAtBase()","22239e8e":"loanActivation()","2223a5da":"reserveCap()","2224044c":"calcWeiForTokensAmount(uint256)","22242382":"checkPriceAmount(uint256)","22245b64":"MAXCAP_TOKENS_ICO()","22246200":"deleteElementWithValue(uint256)","22250809":"BoardClaimed(uint256,uint256,address)","222594c5":"findModuleNameByAddress(address)","2226549e":"fixedLog2(uint256)","22284872":"Escrow(address)","22287914":"icoWallet()","2229d348":"attackMonster(uint256)","222a5343":"BOWTERC20()","222a95ee":"LastMsg()","222af991":"stringToUint(int256,string)","222b0d7d":"massRevoke(address[])","222b8947":"depositTokens(bytes32,uint256)","222c1390":"maxPublicSaleStage()","222cfe94":"myEtherBrosCount(address)","222d777a":"createEvent(string,uint256,uint8,uint256,uint256,uint64)","222d7e34":"currentRoundStart()","222f51e9":"getDailyHash()","222f5be0":"transferInternal(address,address,uint256)","22305fb7":"ShowSegmentation(address,uint256,uint256)","2231454f":"updateCampaignManagerContract(address,string)","223162e7":"WithdrawSharedExpense(address,address,uint256,uint256)","2231f72c":"setownership(uint16,uint16)","223208af":"walletName(address)","22326584":"WBE()","2233db62":"InvestorRegistry()","2233dbf4":"wantNewMinter(address)","22347d5b":"confirmTrade(address,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","22351b6b":"VibeToken()","22366844":"isRegistered()","223699c1":"units30percentExtra()","22372795":"HIT()","2237d55c":"setTargetDiscountValue1(uint256)","22384945":"checkPresaleBalance()","22393ef4":"bundleFirstTokens(address,uint256,uint256[])","223964bc":"queryAccounts(address)","2239c48a":"startUpgrade()","2239d43b":"uintMinimalSize(uint256)","2239e688":"getUrlFromKey(bytes32)","223a6399":"newAssociate(address)","223ab941":"transferForProjectTeam(address,uint256)","223b01db":"decimalsETHToUSD()","223b530e":"antiques()","223c217b":"withdrawTokenTo(address,address,uint256)","223c5939":"UnilotBonusTailToken(address)","223cd20e":"shareHolderByAddress(address)","223dad70":"sendMsgSndr(address,address)","223db315":"allow_refunds()","223dcc74":"left14(uint256)","223e5a9d":"pls()","223e97be":"setParent(uint256,uint256)","223e9f17":"_redeemSameClassAdoptedAxies(address,uint8,uint256)","223fcbc9":"_locked()","223ff4cc":"getShipsIds()","224076d4":"pegIsSetup()","22408401":"ArtSale(address,address,uint256,uint256,uint256,uint256,uint8,uint256)","2240b645":"GetClientCategory(address)","22412ded":"MyProducts(address,uint256)","2241a733":"GOLD_AMOUNT_XPER()","22425fa4":"feePeriodDuration()","22427047":"Payout(uint256)","22429085":"updateFees(uint256,uint256,uint256)","2242cf7f":"getConBal()","22434836":"setTimes(uint256,uint256)","2243fb15":"getHashratePerDay(address)","22446093":"editPerson(address,address,string,uint256)","2245675f":"setCustomerSignature(address,uint256)","22471e16":"identityApproved(address)","2247328c":"vote01YesCount()","224846de":"deletePaymentContract(uint8)","224854f7":"Trie()","224993c2":"setTimeBlock(uint256)","224a1775":"transferByOwner(address,uint256,uint256)","224a6ac3":"nextPE()","224a8174":"TESTER()","224a967c":"CTSCoin()","224b4bfd":"TYCOONCoin(uint256,string,string)","224b5c72":"consume(address,uint256)","224bed07":"transferIndexed(address,uint256)","224c1c9b":"getNonVestedBalanceOf(address)","224c4657":"createOrder(address[3],uint256[3])","224ccc49":"chainLastMessageHash(bytes32)","224d5d54":"wylouToken()","224dc278":"dis()","224e5efd":"DNACoin(address,address)","224e7462":"removeToken(bytes32)","224f127d":"LogNewWhitelistedAddress(address,address,uint8)","224f143a":"setme()","22500af0":"OwnershipTransfer(address,address)","22518a75":"getVotersCandidateVote()","2251a8a9":"isSubscribed(address,address,string)","22526635":"payOut(uint256,uint8,uint256)","22529fff":"getReferral(address,address)","2252d5c1":"exemptMeFromFees()","225386fe":"SimpleERC20()","2253fff1":"initialCongress(address)","22542fb6":"collectTokenPhaseStartTime()","225435c0":"detach()","22547931":"registerOperation(uint256,string)","22551da7":"double(address,bytes32,uint8,uint256)","22554f34":"getT()","22555bea":"UNITv2(address)","22556bd7":"createRound(string,bytes32[],uint256)","2255ad10":"RefugeCoin()","225640ab":"getOrCreatePreviousFeeWindow()","225682d1":"test_contractBalance()","2257406e":"getMemory(uint256)","2257defa":"removeCustomerFromBL(address,address)","2259315d":"TokenFactoryCN()","22593300":"Small(address)","2259d221":"LifeSet_005()","225a1d46":"PODH()","225a905f":"NewSubscription(address,address,uint256,uint256)","225b6574":"hasBase(address,uint64)","225c4011":"cyberEntry(address)","225c5567":"withdrawLeftTokens()","225ce00f":"_createAuction(uint256,string)","225cf990":"setAgriChainContext(address)","225cfd59":"addPromille(uint256,uint256)","225da7e5":"transferManagerFactory()","225f406a":"buyInSaturday()","225f9d7d":"stopIt()","225fce8d":"getGameByPlayer(address)","22609373":"calculateEthereumReceived(uint256)","2260b98b":"finalizeVoting()","226187dc":"maxPreICOTokenAmount()","2261c6d9":"AllowedAddressAdded(address)","2262cd94":"wroom()","22636e65":"setContractValue(address,string,uint256)","2263ae04":"POHD31()","2263e8b7":"routingCodes(uint256)","2263f2c5":"createTokens1()","22643a47":"JokerCoin()","226454c1":"getGoldDataDocumentation()","22657697":"priceForStage(uint256)","2265931d":"transferToken(address,uint256,uint8)","2265a94b":"ValyutaTestCoin()","22665bc9":"setICO(address,uint256)","22666da6":"makeGuess(uint256)","226685ee":"Visit()","22673030":"SALE_START()","2267b2e3":"veredictum()","2267b30d":"removeFounder(address)","22686250":"index(int256,uint256)","2268a358":"changeMultisig(address)","226942e6":"RollEvent(address,uint256,uint256,uint256,uint256)","2269d2ec":"addNewPotatoCoinsForSale(uint256)","2269f1c9":"voteA(uint256)","226ac321":"updateTokenRate(address,uint256)","226bf449":"addPackage(string,address)","226d2f86":"keyEmployeeAllocation()","226dd769":"howManyEtherInWeiToChangeSymbolName()","226e2b91":"setPaycarnita(uint256)","226e2d10":"manual()","226ee47c":"set_validator(address)","227185d6":"Send1Get2()","2272b0af":"csoAddress()","2272df67":"changeFounderAddress(address)","2272f879":"walletThree()","227326b1":"proposalPassed()","22734c0c":"createRawDeposit(address,uint256,uint256,uint256)","22742564":"quickConvertPrioritized(address[],uint256,uint256,uint256,uint8,bytes32,bytes32)","2274346b":"vaultContract()","22758a4a":"whitelister()","22760877":"getCurrentHeroOwners()","22763ae1":"stopInEmergency()","22766696":"bidEnd(uint256)","2276774c":"finalizeRemainders()","2277466b":"voteToClose()","22776478":"getDistrict(uint256)","2279295d":"resetPhoenixes()","22798c10":"MANHATTANPROXYACPBLVD()","2279fa4c":"numPayments()","227a7911":"etherGetBase()","227ac0cf":"GetPerSellInfo(uint16)","227ada37":"placeBet(uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","227bf6b8":"ethorseOracle(address,bytes32,string,bool)","227c74a7":"giveEntity(uint256,address)","227cade5":"maximumBet()","227d111e":"GetExistsCardList()","227d3fb4":"checkTxProof(bytes,uint256,bytes,bytes)","227d535f":"Wolk()","227dd788":"isFinal(bytes32[])","227e14e9":"currentDateTime()","227e26c4":"deleteChild(uint256)","227f592c":"TIXGeneration(address,address,address,address,address,uint256,uint256)","227f9633":"addOption(string,address,uint256)","227fb30b":"MosaiCoinContract()","227fda27":"BitcoinSamaritan()","2281411b":"allocateAndFreeze(address,uint256)","22817359":"_transferTokenToOwner()","22824bbd":"checkFind(address,address)","2282d9f2":"transferIsEnabled()","22848a0c":"TCTToken(uint256,string,string)","2284a6fa":"interest(uint8,bool,uint8)","2284b051":"gameRandon1()","2284e8fe":"push_or_update_key(uint256)","22855bf0":"CheckBest(uint256,address,address)","22855ef9":"registerTransfer(address,address,uint256)","22867d78":"repay(address,uint256)","2286b7de":"BONUS_ICO_STAGE1_PRE_SALE2()","2287d2ec":"donealready(uint256,address,bool)","2287dad2":"getTicketByHolderId(bytes32)","2287e96a":"withdrawEnabled()","2288193b":"testFundACampaign()","22888f35":"depositPremium(address[2],uint256[7],uint8,bytes32[2])","2288fad6":"earlyPurchases(uint256)","2289115b":"createPlanet(string,uint256)","228acf2f":"tokenTeam()","228b70d3":"registerNewPubKeyForHash(string,string)","228b7bf8":"Vasacoin()","228bbf45":"getItemsForSale(uint256,uint256)","228bff5a":"secToDays(uint256)","228c2df1":"hodl(address,uint256,uint256,uint256)","228c790c":"RudysToken()","228cb733":"reward()","228cc2aa":"maxQuanValues()","228ce144":"getKingdomType(string)","228d2820":"disableConversions(bool)","228d477f":"tokTakers(uint256,address)","228dff13":"setPepeName(uint256,bytes32)","228e41bd":"getdeptcount(uint256,address)","228e554a":"_refundBond(uint256,address)","228e892e":"icoStages(uint256)","228e92cf":"YuanLianToken()","229063fc":"discoveryCooldown(uint256)","2290d6e2":"entryFee_()","2290db50":"buyEnergy(address,address,uint256)","2290e106":"mintBuyerToken(address,uint256)","22923160":"updateWithdrawals(address,address,uint256,uint256)","229233b6":"FOR_FOUNDER()","22928b4d":"isIpoPeriodOver()","22928d6b":"removeUser(address,address)","22935caa":"setInitialAllocationUnlock(address)","22937ea9":"returnInt256(int256)","229460e7":"AdminstratorRemoved(address)","2294795d":"deuseth()","22949fb1":"TicketBought(address)","2294c48a":"initUsers()","2295115b":"adminWithdraw(address,uint256,address,uint256,uint8,bytes32,bytes32,uint256)","2295ee5b":"updateTokenBaseURI(string)","22968885":"getBalanceOfContract()","22969eac":"changeAuth(address)","22978e57":"unlockedAfter()","229824c4":"calculateTrade(uint256,uint256,uint256)","2298b9ce":"icoOver1()","229906b3":"updateStringSetting(uint256,string,address,string,string)","2299219d":"unlockTemporary(bytes32,address,bytes)","229a336b":"BodyMassIndex()","229a4978":"batFund()","229b04bf":"pauseMode()","229b5223":"weiScale()","229b9bc5":"buildingToUnitCount(uint256)","229cfc32":"calculateViralRewards(uint256)","229ddd9a":"foreignBuy(address,uint256,string)","229df5c6":"getSig(bytes)","229eb105":"payaFinished()","229f3e29":"presaleEnd()","229f4caf":"minBetPrice()","22a036dd":"ico2Bonus()","22a15848":"btcOracle()","22a1ec8f":"setSomething(address[])","22a27f3b":"getDeveloperAddress()","22a3eab5":"withdrawn_balances(bytes32)","22a4381d":"fromTokenDecimals(uint256)","22a47143":"Tokensale(address,address)","22a4993c":"getReferedCount(address)","22a635c4":"Hodl(address)","22a7118d":"buyTokensFor(uint256,address,uint256,bool)","22a7533b":"deathData_a19()","22a7906f":"getOwnedPointAtIndex(address,uint256)","22a7ac34":"rake()","22a7ba2b":"totalSupplyCrowdsale()","22a8fb18":"freezelvlAccount(address,bool)","22a90082":"setInterval(uint256)","22a92c45":"sendTokensToHold()","22a993ca":"getKun()","22aa7196":"refund_window_end_block()","22aab53a":"temperatureRange()","22aacad5":"incCounter()","22aaea91":"setCurrentAuctionId(uint256)","22ab9433":"getPrecomputedEToTheHalfToThe(uint256)","22abb147":"ResolutionAdded(address,uint256,string,string)","22ac5f40":"fulfillEscrow()","22ad3b76":"fiatFee()","22ae634f":"getInvestment(uint256)","22aef13c":"requestChangeRequirement(uint256,string)","22af00fa":"bets(uint256)","22af1b27":"UnpackAccessDChain(bytes)","22af47e3":"tokensIssuedAir()","22b01343":"initializeAssetsToThisApplication()","22b05ed2":"getStatus(string)","22b08180":"purchaseVideoGame(uint256)","22b0e99a":"EARTHToken()","22b0f6ee":"getStatusOfPayout(uint256)","22b11169":"setWalletOwnerAddress(address,address)","22b152a3":"liquidateLosing()","22b19192":"imAlive()","22b1a226":"withdrawPaymentsRegistrar(address,uint256)","22b1f39c":"currentInvoice()","22b263b2":"nextPlayerID()","22b2678a":"hasBalance(address)","22b28aa4":"resetTimes(uint256,uint256)","22b2ea22":"registerHWCDep(string)","22b2f178":"minimumDifficultyThresholdWei()","22b36d88":"stopTde(bool)","22b45ddc":"EarlyBackerDeposit(address,uint256)","22b4891d":"capICO()","22b524fe":"getFreelancer(address,uint256)","22b53192":"arr(bytes32)","22b53b4b":"accruedLiq(address)","22b6fe9e":"getAgreementSetCount()","22b6ffca":"isSignedUp(address)","22b79623":"resetEpocum(address)","22b87601":"testRemovePending()","22b930f7":"VESTING_1_DATE()","22b954f8":"poolFeeRate()","22b96b63":"getIPFSHash(address,bytes32)","22b9b712":"BETTING_OPENS()","22b9bd35":"adjustPrizePoolAfterWin(uint256,uint256)","22bac568":"grantAdditionalShares(address,uint256)","22bae392":"setBenecifiary(address)","22bb06d8":"marketting()","22bb4f53":"retentionMax()","22bbad0b":"instruments(uint256)","22bc0d6c":"appendEncryptedBid(bytes32,uint256)","22bc3b8e":"getArgument(uint256)","22bc98b1":"basicPresaleRate()","22bcabcd":"TOKENS_ACCELERATOR()","22bd6d3f":"hired()","22bdf293":"grantVestedEDEX(address,uint256)","22be9342":"resolve(uint256,uint256,bool)","22beb9b9":"scheduleDoIt(uint256)","22bf1a2a":"addrLockUp()","22bf2e24":"ROLE_STAFF()","22bf9d7c":"slashTranscoder(address,address,uint256,uint256)","22bfba59":"drawRandomUnitWinner()","22bfdcbb":"RaffleStrangeLoop(bytes32)","22c07ad3":"indFutureDeposit()","22c1d0d2":"_withdrawAmount(address,uint256)","22c21e6c":"ZHIHUIGUO()","22c25c50":"Addr7()","22c25d8f":"set_presale_arbits_total(address,uint256)","22c30931":"calculateStep(uint256)","22c4d98f":"hasAllowanceToRecieveTokens(address)","22c4f168":"setTransferFeeProp(uint256)","22c51659":"getWhitelistedZone(address)","22c5b279":"addLayer(address,uint256,bytes32)","22c61e73":"createContractPoo(string)","22c66ae7":"decimal_precission_difference_factor()","22c69b15":"tradeDAI(uint256,uint256)","22c6aad9":"pigcoin(uint256,string,string)","22c6ae15":"mul(uint64,uint64)","22c83245":"clearBlackAccount(address)","22c9427e":"recycleDividend(uint256)","22cacd6b":"setUSDBtc(uint256)","22cb1ec8":"teamTokensMinted()","22ccd000":"Blocksale(uint256,string,uint8,string)","22cd5ea8":"claimBet(bytes32)","22ce1f8f":"VixcoreToken2(uint256,string,string)","22ce61b2":"globalMetSupply()","22ce9bac":"numberOfVotesCast()","22ced0bd":"BTrustToken()","22cf1745":"USTToken(address,string,string,uint8)","22cf5011":"privilegedTransfer(address,uint256,bytes)","22cf981d":"proposeMintLocked(address,uint256)","22cfadc7":"isFundingNow()","22d0d31f":"OD1Coin(uint256)","22d122a9":"MyTestWallet7()","22d1bd32":"currentlyActive(bool)","22d2cfac":"getNextElement(uint256)","22d310f9":"setMarket2(address)","22d34212":"get_eth()","22d40b96":"defcon()","22d4e0fd":"pay2(address,uint256,address)","22d60d17":"tokensPerWei()","22d6eb87":"getInfo2(address,address,uint256)","22d7642e":"getScene(uint256)","22d85334":"isValidBicoinAddressPrefix(bytes)","22d8c8a8":"AddMaterial(address,uint256,uint256)","22d8cf5b":"CheckUserVote(uint8,uint8)","22d9f13e":"changeCUSD(address)","22da10b0":"checkPermissions(address)","22da3368":"IoMTToken()","22da5d04":"tokenCreationMaxPreICO()","22db2f7b":"processOffchainPayment(address,uint256)","22db4143":"BONUS_THRESHOLD()","22db61ab":"setunitDefenseMultiplier(address,address,uint256,uint256,bool)","22dbaf75":"test_oneInvalidEqBytes32()","22dbd0e4":"payComisionSponsor(address)","22dbf6d2":"reserveFeeToWallet(address,address)","22dc36e2":"processed(uint64)","22dc5a85":"ERC20address()","22dc8e71":"setIV_R1(uint256)","22dce86c":"getEscuelas()","22dd0d2c":"TEAM_KEEPING()","22dd9b8c":"templateSupply()","22ddde5b":"getLRCAmount(address)","22dde4cd":"secToNextMiningInterval()","22de2457":"clientVerifyKeyHash(bytes32,bytes32,bytes32,bytes32)","22df1caf":"grantPresaleTokens(address[],uint256[])","22e01192":"setPrice(string,uint256)","22e02b22":"ClaimEth()","22e113a3":"freezeTokens(address,bool,uint256)","22e12720":"MAX_HOLDERS()","22e256e2":"Addr5()","22e2b31f":"unlockAmount(address,uint256)","22e37189":"tklosses()","22e3989b":"multNumerator()","22e412ce":"strikePut()","22e465ee":"tolerantSub(uint256,uint256)","22e58557":"getFreeEggs()","22e5aa3a":"totalProportion()","22e62038":"close_bank()","22e63356":"setValueAgent(address)","22e67e71":"maxTime()","22e6f1d0":"giveGoldenTicket(address)","22e77ff3":"plz(address)","22e78480":"getGoldDataSku()","22e803c2":"transferBounty()","22e84682":"isValidContributorAddress(address,address)","22e8571d":"legalsAddress()","22e8c87d":"getUserData()","22e8c8fc":"gamble(uint256,uint256)","22e8df23":"ICO_MINIMUM_CONTRIBUTION()","22e91248":"getLeaf(uint256)","22e95f6c":"payout_normalizer()","22e9afca":"cofoundersSupplyVestingTranches()","22ea2231":"purchaseTokens(address,uint256)","22ea2d96":"getBookInfo()","22eb2c02":"viewPreSaleRefunds(address)","22ebb3ac":"DieselPricePeg()","22ebc4a0":"fpartSigned(int256)","22ec1244":"shaBid(bytes32,address,uint256,bytes32)","22ed6302":"setCrowdsale(address,uint256)","22ed96a0":"getInvestorsFee()","22ee1db4":"uint32At(uint32,bytes,uint256)","22ee46db":"VapeToken()","22ef83ef":"AuthInit(address)","22efee2d":"get_participant_num_of_pro_rata_tokens_alloted(address)","22f0e6ae":"MarketingMethodAddress()","22f0f2f9":"unlockContract()","22f16c8d":"checkDividends(address)","22f256f8":"buyIOD()","22f2f89a":"allOperationsCount()","22f3e2d4":"isActive()","22f43bb5":"seedGame()","22f4596f":"_maxSupply()","22f48627":"SIACASHCOIN()","22f4afb5":"relayKingContract()","22f4e916":"GdprCrowdsale(uint256,uint256,address)","22f607f6":"Escrow()","22f6af6e":"TokensBought(address,uint256,uint256,uint256)","22f6fa7a":"contractorTransfer_Bcoupon(address,uint256)","22f709dd":"getEther(address,address)","22f77d2a":"Refundable()","22f7be85":"setFlight(uint16,uint16,uint256,uint256)","22f7d1f8":"normalFunc()","22f85eaa":"buyOrder(uint256)","22f872a7":"allocateBounty()","22f8a2b8":"getDayOfWeek(uint256)","22f905ec":"GetPartNum(uint8)","22f93f16":"updatingViaOracle(string)","22fa1ff4":"MAX_PROMO_GIRLS()","22fa85ca":"testFailRegisterContractAgain()","22faa5db":"removeURL(string,uint256)","22faf03a":"setInstructor(string,uint256)","22fb5303":"_transferFromWithReference(address,address,uint256,string,address)","22fb71f1":"getGoldStatusVendorverify(address)","22fb730b":"claimerOfTwitterId(uint256)","22fbde38":"qtdePokemons(address)","22fbf1e8":"addDeveloper(address)","22fc3149":"setWhitelistThresholdBalanceInternal(uint256)","22fec5e7":"VEToken()","22fefe31":"devuelvePuntuaciones(bytes32)","22ff1110":"CancelSellOrder(bytes32,address,uint256,uint256,address)","22ff79d8":"USA()","23017a3a":"rewardVaultContract()","2301e7b7":"isInPreSaleState()","23020be5":"SetfirstTTax(uint256)","23023aa4":"_doCatchFish(uint16,uint16,bytes32)","23024408":"fund(address)","2302c948":"EtherDank()","2303084b":"hasTransfers(address)","23037a85":"setNextPrice(uint256)","23040327":"oraclize_query(string,bytes[4])","230434d2":"Technology5GCrowdsale(uint256,address,address)","2304ede4":"ADSToken(address,address)","230614fb":"batchTransferToken(address[])","23063da2":"Hellina()","230662f8":"changeSaleManager(address,address)","23087c04":"_isWinnerOf(address,address,address)","230894f8":"transferTileFromOwner(uint16,address)","2308a41c":"amountRaisedBy(uint256)","23098a9a":"burnAssessor(address)","230a1074":"getRegionCurrentImageId(uint256)","230a14c0":"RISK_LEVEL()","230a3c05":"constructWeaponTokenId(uint256,uint256,uint256)","230a8020":"getAddressValue(uint256)","230b1eb5":"totalReservedTokenAllocation()","230b9667":"getProviderInfoFields(uint256)","230b9da3":"parentContract()","230bd25d":"requestBounty()","230c50fe":"AuthorizePayments(bool)","230c96b9":"BuyTokensWithAffiliate(address)","230cf412":"test(uint256,int256,uint256,uint256,uint256)","230d3469":"canExchangeNum()","230d6ed8":"addCandidate(bytes32)","230dff66":"theclub()","230f49d9":"buy_token(address[])","230f6e83":"getCrydrViewStandardNameHash()","2310b384":"finalizeStake()","2311542e":"SSOrgToken(string,string,uint256)","2311bdb2":"isForgiven(string)","2311d39c":"dot()","2311dc0b":"postProduct(bytes32,bytes32,bytes1)","2311e345":"SaleFinalized(address,uint256)","23133115":"changeIncreaseStep(uint256)","23141fd0":"sendP(address,uint256)","23145ca0":"forceCheck()","23146c20":"getBuyerAddressPayment(address,uint256)","2314a5c8":"getReput(address)","2314aad6":"setExtensions(address)","2315550e":"add(address[],uint256[])","23158cae":"addBet(uint256,uint256)","23165b75":"acceptBidForPunk(uint256,uint256)","23169ec4":"medalName()","23169fca":"EDU_PER_ETH_EARLY_PRE_SALE()","2316d0cd":"deathData_a16()","2317880c":"requestArbitration(bytes32)","2317c28e":"mediaTokenIndex(uint256)","2317cd54":"_endRound()","2317ef67":"removeAsset(address,uint256)","2317f9f3":"setSanMaxAmount(uint256)","2318ffc7":"setRokBalance(address,uint256)","23191bf1":"finalizeByArbitrator(bytes32,bytes32)","231944e2":"moveUnits(uint256,uint256,uint256[])","23198b98":"setTokenHolderTribunal(address)","231a00cc":"changeBonusRate(uint256)","231a2be3":"minimumContributionPhase6()","231a439e":"setBlacklistDestroyer(address)","231ace68":"MiningRewardPerETHBlock()","231b0268":"firstBlock()","231b48aa":"settingsSetWeiPerMinToken(uint256)","231c1ce8":"unusedMethod(address)","231c1d43":"generate(uint256,string)","231cb6ab":"ENS_SUB_APP_NAME()","231d87e1":"competitorTeam(uint256)","231da56e":"getSenderValue()","231e0750":"register(bytes32,bytes32,bytes32,bytes32)","231e18a9":"pureFunc()","231fa805":"IsControledAddress(address)","23210c1a":"StfuToken()","23214fab":"maxProfitAsPercentOfHouse()","2321e625":"publicSaleSencPerMEth()","23221f1e":"getNbVersions(string,string)","2322f484":"balancesQuantity()","232397e2":"addAccount(uint256,uint16,bytes32,uint256)","2323a00e":"WagaToken()","23240d81":"getDailyTransactionVolumeReceiving()","23245216":"removeWhitelist(address[])","2324c67c":"getAllSignatureHashes(bytes4)","232523e8":"forceDivestOfAllInvestors()","23260a8b":"getPreviousPrice(bytes10)","23262615":"claimVaultOwnership()","23266dfe":"getOrganizersAddresses()","2326df93":"site_url()","2326ef22":"CreateDMSContract(address,bytes32,uint32)","2326faf9":"getResearchPerDay(address)","23285480":"RefundDeposit(address,uint256)","2329b4f7":"CryptDash()","232a2c1d":"executeSignatures(uint8[],bytes32[],bytes32[],bytes)","232a3060":"setFundManager(address)","232a6b9d":"signed()","232c4d24":"sub_fCode(string,uint256)","232c6bab":"delIndividualCertificate(string,bytes32)","232cae0b":"last_offer_id()","232db034":"abortFunding()","232e57c1":"optionSupply()","232e7e91":"getproduct(uint256,uint256)","232e9051":"gunsFund()","232fd216":"getPoolDone(uint256)","233023de":"setCertifierInfo(address,bool,string)","23306ed6":"getMinimumBond()","2330f247":"isAuthority(address)","233104d6":"setPresidenteDeMesa(bytes32)","233120aa":"getChainyURL()","2331af61":"transferActive()","23338b88":"delMinter(address)","23343af3":"setConfigAddress(address,address)","2334623f":"totalETM()","23350e4a":"regainEther()","23355749":"IkokoToken()","2335d307":"IFSActive(address,uint256,uint256)","2337d9f1":"endOfferingImpl()","23385089":"emitApprove(address,address,uint256)","23389c5a":"docs(uint256)","2338c002":"_applyShare(address,address,uint256)","233907a3":"signedApproveAndCallSig()","23394e46":"TripAlly()","2339dd43":"HcftSale(address,address)","233a04ec":"setEditionSales(uint8,uint256)","233a74c9":"currentTokenDistribution()","233aacf9":"Announce_winner(address,address,uint256)","233ab10d":"setBaseEthCapPerAddress(uint256)","233b39c9":"_initCardDetails(uint8,uint256)","233b7451":"lastStakedFor(address)","233bf71e":"FOCToken()","233d264a":"startTicker()","233de126":"odds()","233dedf1":"averageBlockTime()","233e0877":"Purchase(address)","233e3220":"renounceSuperInvestor()","233e5d00":"WorldStage()","233ff4b2":"_fund(uint256)","23400cf6":"getLOCCount()","2340903d":"EEZcoin(address)","23412ede":"StorageEnabled(bool)","2341a1af":"receivePlayerInfo(uint256,address,bytes32,uint256,uint8)","2341d778":"giveTix(uint256,address)","2342293d":"collectionFees()","23437d50":"discountICO()","23447982":"replaceManager(address)","2344acdf":"pauseOffset()","2344b0e5":"url_white_paper()","2344e4ec":"getHint(uint256)","23452b9c":"cancelOwnershipTransfer()","2345fe81":"xperToken()","234638df":"PreICOHardcap()","23471d18":"setStakeAddress(address)","2348238c":"transferPrimary(address)","23483e45":"delRosenCertAdmin(address)","2348f1ee":"lockAttemp()","234917d4":"getCallTargetBlock(bytes32)","2349748d":"MenoroCashSupply()","2349e719":"processStepsByStep(uint256,uint256)","234a0ee7":"appHub()","234a6ed8":"initializeToken(address)","234ae1a0":"WallDirectory()","234b2cb4":"whitelistApplication(string)","234c0ae5":"combine(uint256[],uint256)","234c4bd9":"deployStepThree()","234e0056":"COIN_SUPPLY_ICO_PHASE_1()","234e5273":"tittyContract()","234e5f16":"TIMETHRESHOLD()","234ea19c":"lockRate()","234f1eb6":"JVToken(address,address,address,uint256)","234f9db2":"getBalanceIco()","235029ee":"SQT()","23509e69":"donkeysEligibleForFees()","2350e762":"participantWithdrawIfMinimumFundingNotReached(uint256)","2351299a":"createTokensToOwner(uint256)","2351baca":"fechVoteNum(address)","2351c2f8":"get_tokenReward()","2352551f":"bbPublicSaleWallet()","23525826":"maxNumbPerSubscr()","23526a34":"turnOffSale()","235304b2":"updateNextGameInitalMinBetSize(uint256)","23533138":"seedMarket(uint256,uint256)","23537880":"TestSale()","23539cd4":"mintResource(uint16,uint256)","235422fb":"_medalUnFreeze()","23548b8b":"maxCap()","2354b3ed":"requestSatsPrice(string)","2354bda7":"auditGuess(uint256,string,uint8,uint256,uint8,uint256)","2354ecf7":"balanceOfOnUpdate(bool)","2355300f":"unspentCreditsWithdrawn()","2355c602":"queryToAddress(bytes32)","2356f46a":"Kontlo()","23571ac9":"seenHereA(uint256)","2357cd3b":"invadeAddress()","23584a21":"initStats(string,address,uint256)","23586685":"recordSale(uint256,uint256)","23587733":"DEVELOPER_BONUS()","2359116d":"refill(address,uint256,string)","23594797":"createContractRegion(string)","235977ca":"ParadiseTokenSale(address,uint256,uint256,uint256,uint256,uint256,uint256,address,address)","2359bd08":"reinvestTokens(address)","235b1eb7":"getOverRate(uint8)","235bd895":"_getGameInfoPart1(address,uint256)","235c002d":"transferOther(address,address,uint256)","235c279f":"addEmitter(address)","235c9603":"getNextTranscoderInPool(address)","235e5d47":"isRoundEnd(uint32)","2360f5a1":"openSaleSupply()","2362189a":"defaultExchangeRate()","23624a10":"tokenFee(uint256)","23626067":"thirdCheckpointPrice()","23626df7":"setContractAddress(address,address)","2362b26d":"Awards(uint256)","23637e60":"votePrice(uint256,bool)","23647398":"testThrowRetractNotOwner()","23655d7b":"Fantom()","236571e2":"determineWinnerEven(string)","2365ceb3":"SetWagerData(bytes32,bytes15)","2367e1ae":"getLengthOfMatches()","2367f35d":"crowdsaleEnded()","23685b97":"bpToken()","2368d215":"multipleAddToWhitelist(address[])","236a160e":"isValidIssuance(uint256,uint256,uint256,uint256)","236a8d9d":"registerNode(uint256,uint256)","236ae025":"distributionThreshold()","236be3e2":"BlockcloudToken()","236dd0e8":"paidBidAllocationFee(bytes32)","236e06f6":"exchange(address,uint256,uint256)","236e1a15":"PromotionCoinMintFinished()","236ebbae":"setAuditNodePrice(uint256)","236ed5a6":"getVoterProposalsCount(address)","236ed8f3":"closeAuction(uint256)","236f86a1":"remainingTokens(address)","236ffad4":"initOwned(address)","237032da":"isBacker()","237082bd":"getCertifiedDocCount(address)","2371bb4b":"SetNumber(uint64)","23724ffd":"TransferManagerApproved(address)","237297a4":"claimWinner()","2372996a":"CUSTOM_ERC20_CREATE_SERVICE_NAME()","23732ad8":"OSTestToken()","2373f091":"_setMinter(address)","23749f69":"donationsEndedTime()","23751e95":"addRedbullQuest(address)","237548fa":"seriesFactory()","2375766a":"unlatchContract()","2375da83":"setIntArr(uint256,address)","2376fe70":"approveProxy(address,address,uint256)","23773f81":"calcTapAmount()","2378fe2d":"FAPFundDeposit2()","23797ed9":"getAppByIndex(uint256)","237a35b2":"professionalName()","237a4a7f":"requestOneUUID(address,uint256)","237b5e96":"child()","237c2b22":"MCTCrowdsale(uint256,uint256,uint256)","237d2628":"issueTokens(address,uint256,uint8)","237e9492":"executeProposal(uint256,bytes)","237f142a":"ownersLen()","237f1a21":"hasIdentity(address)","23807da8":"getInvoicingAddressCount(string)","2380c39d":"backUtcoinOwner()","2382534a":"STR()","2383b074":"getSurplus()","23845e4b":"getPoolSize()","2384c058":"account3()","23855c18":"updateDeposit(bytes32,uint256,address,uint256,address,uint256,bytes,bytes)","23855cd3":"setBalanceForUser(bytes32,uint256)","23858314":"sizeOfProviders()","238604f0":"SuperContract()","23866438":"joinChannel(bytes32,uint256[2])","23867979":"getHealBalance()","2386d33e":"_tenuousToken()","2387c87d":"setTokensSold(uint256)","2387e75e":"RequestBitcoinNodesValidation(address,address)","23898138":"MoneyCoin()","2389a290":"joinGame(address)","238a3fe1":"transferDistribution(address,uint256)","238ac933":"signer()","238bf375":"PROMETHEUS_MAX_PRICE()","238bfba2":"getChannelWith(address)","238c5b06":"icoDiscountPercentageLevel1()","238d3590":"getTotalTheoreticalSupply()","238dafe0":"enabled()","238e5b14":"burnAmount(address)","238e9de7":"StopFuseaNetworkDistribution()","238f7743":"unlockSecondTokens()","238fcbf8":"DISCOUNT_TOKEN_AMOUNT_T2()","2390507b":"COMMUNITY_ADVISERS_STAKE()","239131af":"NEXUS()","2391ddf3":"handleLuckyPending(uint256)","2391f0b3":"isProtect(bytes32,uint8)","23924cff":"TeamLockingPeriod6Months()","23926732":"ifDestory(address)","23949cd1":"setNFTContractAddress(address)","2394a797":"makeHybridization(uint256,uint256)","2394cc40":"transferInternally(address,address,uint256)","2395e9b6":"specialAllowed(address)","23967d78":"FOUNDATION_HOLDER()","2397e4d7":"sellToken(uint256)","2397f92b":"KNDToken()","23985742":"STANToken()","23987690":"indFuture()","2398a6a6":"sendPrize(uint256)","2398b8fc":"SCHEMA_HASH()","2399a5af":"balanceAdd(address,address,uint256)","2399e1f2":"addPromotionalCompany(string,uint256,uint256,uint256)","2399f870":"updateFlipAndMDT(address,uint256,address,uint256)","239a2545":"totalNights()","239ab208":"notifyAssessors(uint256,uint256)","239aee06":"execute(address,address,address,uint256)","239b6dd1":"QUINToken(uint256,string,string,uint256)","239bb5a6":"getConstructorString()","239c02ba":"OPSToken()","239d339b":"updateStageByTime()","239da1a3":"SportStarMaster()","239da7de":"getServiceFeeDenominator()","239e7881":"GEBEC()","239e83df":"guardedArrayReplace(bytes,bytes,bytes)","239f26ee":"BethereumERC223()","239f29dd":"setConsensusPercent(uint256)","239fcf0f":"Balance(address)","239fd68f":"setCurrentPricePerWei(uint256)","23a08d97":"totalPreICOavailible()","23a1b159":"maxTimeBonusPercent()","23a1bd8f":"Dancoin()","23a1c271":"setPongval(int8)","23a1e00e":"openLeaderboard(uint8,string)","23a24a33":"setBAA(bytes32,address,address)","23a2725a":"LeS3coin()","23a31463":"setBlockLock(bool)","23a3335c":"BuufmanToken()","23a36d2b":"mintToken(address,uint256,uint256)","23a37c09":"addRNTBContribution(address,uint256)","23a3ad72":"checkRole(address,uint8)","23a50727":"endStage(uint256,uint256)","23a52674":"expandX()","23a58576":"zeroBool()","23a6b8ca":"currentBeneficiaryCap()","23a8792e":"ChangeTokenPrice(uint256)","23a8edb5":"LociBackend()","23a90e5e":"getCustomerTxTimestampPaymentMCW(address,bytes32)","23a9a156":"SNL()","23aa6a17":"issueTokenAndApprove(uint256,uint256,address)","23aa7e12":"controllerDelegate()","23aba14f":"iCapToken()","23abea43":"getPlayerKeys(uint256,uint256)","23ac3fd4":"getPOOL_edit_32()","23ac4b03":"addQuickPromoBonus(uint256)","23ac9ae2":"CcStandardToken(uint256,string,uint8,string)","23add736":"claim(uint256,uint256,uint8,bytes,bytes)","23adeb05":"OneChance(address,address,address)","23ae4438":"getLastRoundInfo(uint256)","23aea69d":"isNextBudgetPlanMade()","23aed228":"selling()","23aedc62":"startSale(uint256[],uint256[],uint256,uint256)","23afba86":"Lancer()","23b0abeb":"showPhaseInfo(uint256)","23b0bbea":"getBullsmasterReq()","23b0db47":"delegate_2x(address,uint256[],address[],bytes32[])","23b1131c":"unlockDate2()","23b11bb1":"getPropertyLastUpdate(uint16)","23b11d8d":"addProxy(address)","23b17715":"AddressDescriptionAdded(address,string)","23b1ed54":"getConstantName()","23b1f8e4":"lastPriceUpdateTimestamp()","23b2b48f":"addressToAccountMap(address)","23b364ab":"getAvailableTicketCount()","23b37bb6":"sqrt(uint64)","23b3af89":"addHolder(address,address)","23b3b704":"calculateUntaxedEthereumReceived(uint256)","23b3c771":"getFreeShrimp()","23b44cfc":"assignNewParcel(int256,int256,address,string)","23b493fe":"getUserFiatBalance(string)","23b5aa8d":"STAT()","23b5b257":"tokenHasFreeTrial(address,address)","23b62b75":"mainWallet()","23b6ce11":"buyDiscipleItem(uint256,uint256,uint256,uint256)","23b6fc8b":"verifyUrl()","23b715cb":"updateShare(address[],address,uint256[],uint256)","23b7b140":"setFreezTime(uint256)","23b7ec3b":"ownerOf(uint32)","23b7fc86":"count_token_holders()","23b80995":"saleOver()","23b872dd":"transferFrom(address,address,uint256)","23b8feb0":"safeMul_dec(uint256,uint256)","23b98f92":"getPOOL_edit_6()","23ba3420":"t_Michail()","23ba467a":"isLastRound()","23bb1f69":"prepareToScore(uint32)","23bb8022":"getCurrentRateByTokenSold()","23bb81ae":"transferSoldToken(address,address,uint256)","23bba494":"setContribPeriod(uint256,uint256,uint256,uint256,uint256)","23bc29a0":"systemEndingPrice()","23bcaae9":"newPost(string)","23bd4d7a":"organization()","23bd9914":"_calcReward()","23bda0ee":"MyCurrency()","23be45e2":"matchOrders(bytes,bytes)","23bef5dd":"storeWelfare(address,string)","23bf0425":"fastEnd()","23bf2973":"tgeSettingsPartFounders()","23bfc777":"changeRoundDelay(uint256)","23c0889a":"initMinerData()","23c105a2":"eliminateFrom(address,uint256)","23c1236a":"burnFromByAddress(address,uint256,address)","23c2460d":"rate(uint16,uint256)","23c2b4ea":"finishPREICO()","23c2de55":"SmartContractCasino()","23c32d74":"cstToMicro()","23c3dae7":"NewTranch(uint256)","23c4841e":"ToggleFreezeBuying()","23c4948c":"getDonator(address)","23c5a088":"updateCost(uint256)","23c5c55a":"buyImagePriv(uint256)","23c5e967":"mul2Throw(uint256)","23c639fe":"getback(uint256,uint256)","23c69d2a":"currentDividend()","23c6bc39":"addressThreshold()","23c6c98b":"activeShareholdersArray(uint256)","23c731f5":"isCanList()","23c79ab3":"CoinFuns()","23c850db":"registerGold()","23c860a8":"INTREPID_SHIP_PRICE()","23c89a00":"requestSignature(bytes32[8],bytes)","23c94353":"currentTokenBalance()","23c99826":"getDictJob(address,uint32)","23cadd34":"move(address)","23cafc3d":"voteNoLockByAdminBatch(address[],address[],uint256[])","23cb7b19":"_influenceAlgorithm(uint8,uint256)","23cba56f":"bonusProgramEnded()","23cc16be":"burnInvestorTokens(address,address)","23cc3496":"_setRunesValue11(uint256)","23cc75a8":"finalizeICO()","23cc7615":"userIdIndex()","23cc9a90":"addParticipant(address,address,address)","23cd5090":"registerToProvider(address)","23cd7cd5":"Model()","23cdd8e8":"log(string,bytes)","23ceb6d8":"mintTokenEscrow(address,uint256)","23d0601d":"getAccountIdFromSignature(bytes32,bytes)","23d17a40":"addrBRXPay()","23d1ab35":"donationReceiverLocked()","23d1b8eb":"etherPayout()","23d1c95e":"addProposal(string,string)","23d1fe56":"s22(bytes1)","23d24f24":"LogEscrowEth(uint256)","23d2691b":"addAuditRequest(address,string,uint256)","23d27633":"EtherLite()","23d2b3aa":"HaoCoin()","23d32d6a":"generatedBytes()","23d34f84":"setGuessAnswer(string)","23d44dee":"collectedSignatures(address)","23d533c8":"EBCBToken()","23d5a686":"getSpaceshipUpgradeCount()","23d669db":"setValidationClosed(uint256)","23d6b008":"assignedAmountToTheFoundation()","23d6c92f":"setFreelancerParams(uint256)","23d71b26":"mtrTokenFallBack(address,uint256)","23d73ca5":"test_invalidEmptyNotOne()","23d7caee":"BitMineToken()","23d7e089":"getPotCost()","23d808da":"getMatch(uint8)","23d80d3a":"IfContractRegist(address)","23d862ed":"getAddressLockedLength(address,address)","23d88efd":"preIcoTokenSupply()","23d9ea80":"getOfferPriceCandy(uint256)","23da9c4b":"WhiteListAccess()","23db3e50":"_checkAreaAndCategory(uint256,uint256,uint256)","23dbf825":"distributionComplete()","23dc1314":"failSafeLimit()","23dc14c0":"AdAgency()","23dc210f":"transferToAddress(address,address,uint256)","23dc33b9":"reward6()","23dc3f72":"_checkGrid(uint256,uint256,uint256)","23dc42e7":"query1(uint256,string,string)","23dca40f":"Submit(uint256,bytes32,uint16)","23dccbd6":"LogFollow(uint256,address,uint256)","23dd03c3":"getLLV_edit_23()","23dd523d":"unregisterMember(uint256)","23dd797b":"setESOP(address,address)","23dddaba":"simpleVotingDapp(bytes32[])","23de1915":"NewTicket(address,bool)","23de6651":"emitTransfer(address,address,uint256)","23defc77":"setHeir(address)","23df9df5":"_refund(uint256)","23dfed97":"emitCategoryEvaluated(address,address,uint8,uint256,uint256)","23e1d351":"buyKeyUseBalance(uint256)","23e1d8d0":"failedTimestampLength()","23e1f881":"PendingOwnershipTransfer(address,address)","23e25f7d":"sendReserveBalance(address,uint256)","23e26c43":"datestart()","23e375dd":"_computePrice(uint256,uint256,uint256,uint256)","23e3d7a9":"updateDescriptiveInformation(address,string,string,string,string,bytes20)","23e3fbd5":"depositOf(address)","23e4172d":"testValidationOfDecrease()","23e44848":"DPToken()","23e4d669":"getPlayerPortfolio()","23e53b2e":"setSiringAuctionAddress(address,address)","23e5942a":"initWallets(address,address,address,address)","23e5d13c":"declareWinner(address,bool)","23e5e822":"mintToken(int256,address,uint256,address)","23e5f1c5":"hour()","23e798e6":"getDocumentIdWithName(string)","23e7a900":"setIcoEnd(uint256)","23e7d9b2":"createInvoice(bytes32,address,uint256,string)","23e8cefc":"encodeIfElse(uint256,uint256,uint256)","23e957b6":"calculateScore(address)","23e9637f":"setSoftCapInCents(uint256)","23e9c216":"setBounty(address,string,uint256)","23eac4bd":"setTokenOwner(uint256,address)","23eb0197":"giveMemberAllowance(address,uint256)","23eb3831":"PurchaseCapChanged(uint256)","23eb861c":"unchainedMultisigVersionMajor()","23ec5939":"returnInvestoramount(address,uint256)","23ec8f62":"ownerUnlockFund()","23ecb66f":"getPreviousDate(bytes32)","23ecc4a1":"claimAmountSet()","23ecf108":"MartinKoToken()","23ed0a2e":"registerWorker(uint256,uint256,bytes32,bytes32)","23ed476f":"treasurySent()","23edfb89":"cancelSaleWhenPaused(uint256)","23ef2e4f":"stopPreIcoMint()","23ef2e56":"setBAI(bytes32,address,int256)","23ef604f":"removeOwnedNote(address,uint256,uint256)","23f02f56":"crowdEther()","23f0b2b6":"getProfile(address,string)","23f14e86":"setAutoAddress(address,address)","23f1dbe0":"minBidPercentage()","23f2cbb0":"sponsorGas()","23f3ad03":"ParminderToken()","23f4c025":"Cherrio()","23f5c64f":"get_data_owner(address,address,string)","23f614dd":"TinyOracleLookup()","23f64051":"setClaimToken(bool)","23f64140":"depositAgent(uint256,uint256,uint256[],uint256[],uint256)","23f685dd":"getUnclaimedHalvingSubsidy(uint256)","23f6e4fb":"Registered(address,address,uint256,uint256,uint256)","23f7dc66":"hasReadership(address,uint256)","23f806b7":"tokenAdvisoryBountyTeam()","23f809f6":"generateAddAddressSchemaHash(address,bytes32)","23f907d9":"MAXIMUM_ETHER_SPEND()","23f938ee":"isTransferLock(address,address)","23fa370d":"suspendedUntil()","23fa495a":"setFlatFee(uint256)","23fcdb20":"getRequiredSigs()","23fd0176":"destroyCredits(uint256)","23fd4524":"OMT()","23fe073e":"BancorQuickConverter()","23fe1da1":"purchaseWithETH(address)","23fe5b90":"hardCapFundingGoalInCents()","23fe6146":"pushIssuers(address[])","23fed09e":"hasEnoughFund()","23ff2af0":"setAttrs(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","23ffcc3e":"PenchantICO()","2400b582":"_issue(address,address,uint256,bytes,bytes)","2401db10":"sendFunding(address,uint256)","24021127":"_setOriginationFee(uint256)","2402598c":"BNSToken()","24026bfb":"getMarketOrderTrust(uint256)","2402ae57":"YudizCoin()","24032866":"checkExecutionAuthorization(address,uint256)","24038339":"updatePriceAndDenominator(uint256,uint256)","24038d2e":"purchaseArmy(uint256)","2404608f":"getSignatures(string)","240557b8":"cleanTokensAmount(address,uint256)","2405b1a3":"SwissBit(uint256)","2405d03e":"refundTokensPurchase(address,uint256)","2405e3c6":"initial_supply()","24064617":"getMom(address)","2406cedb":"setPackageOwner(bytes32,address)","2406e626":"createPool(address,uint256,uint256,uint256,uint256,uint256,uint256)","2406e9fa":"playRandom(address)","240705eb":"withdrawWithFee(address,uint256,uint256)","24070feb":"_create(address,uint8,uint8)","240860f1":"setHasCommissionerAuction(uint32)","2408771e":"validateInvestmentGroups(address[])","240961db":"showPoolOwner(uint256)","2409dfa2":"drawback()","240ad8bd":"applyAsProvider(string,string,string,string)","240bd9e6":"DcorpProxyCreated(address,address)","240c2709":"toReserved(address,uint256)","240cf1fa":"changeOwnerSigned(address,uint8,bytes32,bytes32,address)","240dfd6e":"stopEnrollment()","240e07e0":"impl_apply4Redeem(address,uint256)","240e0b2e":"JinKuangLian()","240ecad5":"transferViaProxy(address,address,uint256)","24108475":"vote(uint256,string)","2411ca69":"startPrivatesaleDate()","2411e6a3":"NonEmissiveToken(address,string,uint8,string,string,uint256)","2412bdb8":"exchange(address)","2413372d":"TestETCCoin()","24141f14":"CRYPTOHEDGECoin(uint256,string,string)","2414b63e":"CasinoBank(uint256,address)","2414e134":"NEWCICO(address)","24153b73":"Tosh(uint256,string,uint8,string)","241673e8":"withdrawTokenToFounders()","24167745":"ShamelessUETRipoff()","2417f31d":"maxPresaleTokens()","2419217e":"teamAddresses(uint256)","2419ef4d":"Coverage()","241a2305":"MultiTransfer(address,address[],uint256[])","241b701f":"openPot()","241b88b6":"threeMillionTwoHundredThousand()","241d1108":"nextDerivativeToken()","241d2c76":"getCount(address,string)","241d7aea":"BeautyCoinToken()","241de9e9":"proxy(address,address,uint256,uint256)","241e0fa0":"updateBytes20inBytes(bytes,uint256,bytes20)","241ea03c":"Pregnant(address,uint256,uint256,uint256)","241f675d":"CMO_SHARE()","24206c2e":"updateTokenAddress(address,address)","2420703e":"transfer_tokens_through_proxy_to_contract(address,address,uint256)","2421101f":"returnAddress(address)","2422224e":"signatures(bytes32)","24223a3c":"allowanceItem(uint256,uint256,uint256,address)","2422d991":"getADR()","2423a088":"UNKNOWN_TYPE()","24241ebc":"challengeWithPastCustody(address,uint256,bytes32[],uint256[],bytes32[])","2424276c":"freezeMultiAccounts(address[],bool)","24248168":"getBracketScore(bytes8,bytes8,uint64)","24250852":"mintToPublic(address,string)","2425ce3e":"upgradeTank(uint256,uint8)","24263f77":"mintICOTokens(address,uint256)","24265000":"canCollect(uint16,uint16,uint8)","24265408":"FaucetManager(address,address[])","242654a2":"transferEnable()","242655d4":"prefixedEncode(address)","24270d1e":"get_arbits_max_contribution(address)","24272479":"_finishBet(uint256)","24280cc4":"createPuppySaleAuction(uint256,uint256,uint256,uint256)","24285ade":"AlpineMegalith(uint256,string,uint8,string)","24294b1f":"startFirstRound()","2429b755":"isPrivateSaleRunning()","2429ee2a":"isBountyPayStage()","242a60b5":"withdrawValue(bool)","242a7450":"validateTenant(address,bytes32,uint256)","242aa460":"presaleInvestors(address)","242aeac1":"DiscoverCoin()","242b0a73":"rewardPayedOf(address)","242be01a":"_setAppIfNew(bytes32,bytes32,address)","242c721e":"testSetOrganiserUsingDeployedContract()","242c9ce9":"_burnFrom(address,address,uint256)","242ce07b":"frozensTotal(address)","242d1259":"WeiWeiToken(address,uint256)","242d7dba":"totalAmountRaised()","242d9f69":"getOraclizeWinnerGasFee()","242db433":"getMarketManagerAddress()","242ddf37":"NewBook(bytes32,address,uint256)","242de145":"TokenCreationContract()","242ed69f":"setActiveTranscoders()","242fc36e":"cashback()","243056d6":"writeMerchandises(uint256,string)","2430731f":"cancelRecurringBillingInternal(uint256)","2430d881":"getLastAction(address)","2431676c":"getTotalWinsCount()","24318b5c":"numberOfHosting(address)","2431f164":"process_payment()","243222c0":"processFailedVerification(bytes32)","2432282d":"getLoanCountForAddress(address)","24323110":"McFlyCrowd(uint256,uint256,address,address,address,address,address,address,address,address,address,address,address,address,address)","2432eb23":"testThrowRetractLatestRevisionNotUpdatable()","2433c978":"setupOwners(address[])","2433f617":"getIIPTotalSupply()","24349551":"deleteContract(uint256,uint8[],bytes32[],bytes32[])","2434cf10":"UseBySoftware(address)","2434ec3e":"declareLost(address,bytes32)","243527a2":"addID(address,bytes32)","24355ea6":"isA(address)","24359879":"ownerAt(uint256)","24361cec":"picops_block()","2436219c":"doubleEntryPrice()","243669ad":"totalOwners()","2436b1d2":"NUM_COUNTRIES()","2436d4e3":"TwoStandardToken(uint256,string,uint8,string)","2436d5f8":"StorageBase(address)","2437160f":"TFTOKEN()","24372fa3":"SignCurrentVersion(string)","24378482":"bnOf(bytes32,bytes32)","2437e1c2":"setPresaleParams(uint256,uint32,uint32,uint256,uint256,uint256)","24386b3e":"testMultitransfer3()","243870bd":"createChannel(string,bytes,address,address,address[],uint256[],address,uint32[])","2438b674":"window2TokenExchangeRate()","2438db59":"setServices(address,address)","243a28eb":"returnedWei(address,uint256)","243af82d":"stageBuys(address)","243b22cf":"setGameResult(uint256)","243b2a39":"createDispute(bytes32,address,address,bytes32)","243c33a1":"testCreateShortId()","243d230c":"dateTo()","243d3827":"getRewardInfo(uint256)","243d51b4":"betD()","243dc8da":"getFoo()","243e280b":"publish(string)","243eb89f":"endIcoMainSale()","243f6b58":"removeKYC(address)","243f6e0c":"change_active(uint256)","243feeb0":"ADDR_TKG_ASSOCIATION()","24415953":"lengthEqual(int256[],uint256,string)","244159af":"getPriceOneToken()","24417f39":"getCostForHealth(uint8)","24425cbf":"TEST_CONTRIBUTION()","24429e34":"OliveGardensResort()","2442cfec":"putBtoWithStc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","2442e1cb":"getMilestone(uint256)","24434852":"buyOnBehalfWithCustomerId(address,uint128)","2443a30e":"ChangeInsurerOperationEvent(address,uint256)","2443f0ae":"derivePayoutDistributionHash(uint256[],bool)","24444749":"NUM_POTATOES()","2444d352":"setWhitelistOff()","24452f44":"tryBuy(uint256,uint256)","24453ed6":"getCustomerTxAmountMCW(address,bytes32)","24454fc4":"getTranscoderEarningsPoolForRound(address,uint256)","24455e7d":"createNetwork(string,string,uint256,uint256,uint256,uint256,uint8)","24457036":"LockChainFundDeposit()","2445caf1":"ERC20Token(uint256,string,string,uint8)","24463cbe":"AddressDailyReward(address)","2446e1de":"icoClose()","2447fe10":"initBridge()","2448fe2f":"redTeamSupply()","24496026":"removeQuoter(address)","244967b3":"start_game()","24497829":"ethFundAddress()","2449dd55":"sendCommission()","244b252a":"SaturnToken()","244b34c5":"Stage2Deadline()","244bfa6b":"buyCelebrity(uint256)","244c23ee":"Token(uint256,string,uint8,string)","244c757a":"getCurrentIcoNumber()","244c91d4":"setMaxIssuers(uint256)","244c96a1":"compareOrders(uint128,uint128,uint128,uint128)","244cb924":"EnableSelling(uint256)","244cee6d":"helloWorldWeb()","244d04f5":"finalizeTokensale()","244dad09":"createdUser(bytes32)","244ded7a":"ChangeOwnership(address)","244e0c87":"balanceOF(address)","244eab9e":"lovelock_price()","244eba55":"frozenDaysForBounty()","244f4894":"getWithdrawed(address)","244f828a":"SetHFee(uint16)","244fcd03":"removeRelease(bytes32,string)","24500e05":"tokenAdvisorPartners()","24503ab0":"setDefaultTransferGas(uint256)","24506e2a":"KoalaChain()","24516000":"getPOOL_edit_26()","24519a6a":"takeFee(address,address,uint256,uint256)","2451a899":"isSuccess(uint256)","2451b3d8":"accessProvider()","24528499":"_getSettingVariables()","24534192":"addMutagenFight(uint256,uint256)","2453ffa8":"orderCount()","24541f78":"getTransferProxy(uint32)","24545f82":"LULUToken()","2454d1f0":"incFightWin(uint256)","24562747":"tokensPerETH()","245678d6":"MINBET()","24571783":"NESTFAME()","2457d765":"CHSC()","2458d472":"getCurrentStage(uint256)","2458d606":"exchange(address,uint256,string,uint256)","2458f2a8":"swarmTree(uint256)","2458f679":"instContWallet()","245a03ec":"scheduleSetIt(uint256,uint256)","245a30ec":"setDataAuction(address)","245a367c":"GetParticipant(address,address)","245a6f74":"isProxyLegit(address)","245a810b":"addMetaData(bytes32,bytes32,bytes32,bytes32[],bytes32[])","245ae4a0":"slashUsername(bytes,uint256)","245b565d":"ballotEncryptionSeckey()","245ba519":"addVerifier(address,address)","245ccdb7":"setFeePrice(uint256)","245d1314":"signUserChange(address)","245d5556":"_deleteEntry(bytes32)","245e22de":"transferDirectly(address,address,uint256)","245e70f0":"_commitBallot(bytes32,bytes32,bytes32,address,uint64)","245f57a9":"asyncSendSilently(address,uint256)","245fa2ab":"newBankManager(address)","24600157":"CUBES()","2460053e":"LegionToken(uint256,string,string)","24600fc3":"withdrawFunds()","2460f09d":"MarketContract(string,address,address,uint256[5])","24612b5d":"GenbbyToken()","24619da7":"RechargeMain(address)","24627547":"vestingFunc(uint256,uint256,uint256,uint256,uint256,uint256)","2462a0d5":"funcFromC1()","2462f6f1":"setFadeoutStarts(address,uint32)","2463de5a":"getPastWinnerTimestamps()","24642510":"rechallengePossible()","24645254":"getBalance(uint8,address)","24645c5a":"totalTokenSale()","24646ce4":"getBuySellSum()","2464a69f":"_computePublisherCut(uint128)","24652ba2":"PeerBudsToken()","24664106":"mintRep(int256,address,uint256)","24667568":"ORGANIC(uint256,string,uint8,string)","24675116":"PK(uint8,bytes32)","24676ae3":"SmzdmToken()","246982c4":"getPerson(uint256)","2469a846":"terminateCrowdSale()","2469c14e":"setState(address,uint256)","246a3234":"getEthChfPrice()","246a44f8":"isNeedCloseCurrentGame()","246c01cd":"tryUpgrade(uint32,uint8)","246c02e6":"check_depth(uint16)","246cbacc":"test_twoInvalidEqAddress()","246d4098":"openToThePublic()","246d41a9":"incrementTotalVoters()","246eb968":"deleteUri(uint256)","246f02bb":"tickets_bought(string,uint256)","246f0ca4":"KuaiKanToken(uint256,string,uint8,string)","246f1e17":"createGuess(uint256,uint256,string,uint8,uint256,uint256,uint256[],bytes32[],uint8)","246f8b96":"removeOwner()","247121e3":"MakeAdministrator(address)","2471fa1c":"_building(uint256)","24724b5b":"changeAmisWallet(address)","24743d40":"f1(bytes32)","24749b59":"bonus(uint256)","2474a21c":"collectedEther()","2474e236":"TOKENS_MAXIMUM_SUPPLY()","247534cf":"WrapperLock(address,string,string,uint256,address,bool)","2475a9b3":"UTXORedeemed(bytes32,uint8,uint256,bytes,bytes,uint8,bytes32,bytes32,address,uint256)","24788429":"removeExecutor(address)","24788ed9":"ledgerContractAddr()","247956f1":"withdrawEtherInBatch(address[],uint256[])","24797d1b":"decreaseThreshold(uint256)","247ab51f":"markAsProcessed(uint256)","247aebbb":"tokensup(uint256)","247b127d":"MiIToken(uint256,string,uint8,string)","247b188b":"icoTotalSupply()","247b3bd6":"BitCronus()","247baa3e":"ALH2()","247bb39c":"privateOfferingCap()","247bb432":"test_addAndRemovePermissions()","247c6c70":"priceLC()","247cf1aa":"lengthNotEqual(bytes32[],uint256,string)","247cff43":"freezingManager()","247ecab5":"bonusDrop(address,uint256)","24804cef":"Deed()","24806d4a":"getBounsInRound(uint256)","2480d9e6":"saleAirdrop(address,uint256)","2481325a":"ExtremeCoin()","2481851a":"finalizeName(address,string)","24819384":"btycaddmoney(address,uint256)","2481f92c":"setClockAuction(address,uint256)","2483761f":"buy1ktickets()","24841bbd":"interfaceBurnTokens(address,uint256)","24845131":"proclaimDeath()","2484a023":"verifyTetherCurrency(address,uint256,string)","24850e10":"releaseFunds(bool)","24851914":"isTeam(address)","2485484d":"clearGenVaultAndMask(address,uint256,uint256,uint256)","24854bd8":"updateThirdExhangeRate(uint256)","248582b0":"receivePaymentForGoodsSoldEarly()","24860443":"toBytes2(bytes,bytes,uint256)","24863354":"saleOverReachMaxETH()","24876434":"addPriceTier(uint256)","24884fc2":"startPeTime()","24887c04":"SieChain()","24888154":"Buy(uint64)","24888b4a":"isVoterLocked(address)","24889e37":"removeAmountForAddresses(uint256[],address[])","2488fd55":"countPlayersInPosition()","24896a47":"signPA(uint32)","248b0dba":"toBytes16(bytes,bytes,uint256)","248baabd":"FUND_ADDR()","248c4439":"setFunctionOnePrice(uint256)","248c6380":"_tokenBankrollBuyIn(uint8)","248d14eb":"allowPriceUpdate()","248e150a":"getFirstAuctionsExtendableStartDate()","248e1993":"setMinTarget(uint256)","248e4dd4":"pank13()","248e86e6":"ProjectToken(uint256,string,uint8,string)","248ec326":"DAILY_LIMIT()","248fcccc":"CRSAccount()","24900d7c":"initializeAddresses(address,address,address,address,address)","24902e24":"LOG2_E()","2490be24":"exchangeEurToEth(uint256)","2490e13f":"editPieceData(uint256,string,string)","2490e16e":"getDirectBoughtTokens()","24924bf7":"maxParticipants()","249292b9":"testUnlockedDay()","2493097b":"finalizeDestruction()","24932186":"enterOrder(uint128)","24937124":"fetchPaidOrdersForMerchant()","2493a2f2":"setBonusTokenRateLevelOne(uint256)","2493d006":"openWeek()","2493d669":"AllowanceGranted(address,uint256)","24941147":"cancelProject(uint256)","24943c7d":"resolveDispute(bytes16,address,address,uint256,uint16,uint8,bytes32,bytes32,uint8)","2494aef9":"TOKEN_AMOUNT_ICO_STAGE1_PRE_SALE2()","2494e267":"CXLExchangeRate()","24953eaa":"removeAddressesFromWhitelist(address[])","249559ad":"computeVoteOutcome(uint256)","249586f2":"editPayoutSetting(uint8,uint16)","2495c0ce":"stopVote()","24968a70":"getHomePost(uint256)","2496a431":"robPantry(address,uint256)","2496b796":"sellMyTokensElixir()","249830d8":"setUnclaimedPlotPrice(uint256)","24992680":"SelfKeyCrowdsale(uint64,uint64,uint256)","24999c9c":"bonusSignalValue()","2499a533":"Purchase(address,uint256)","249a1120":"licenseTermsMaxCostPerSec(bytes32,bytes32)","249aa292":"preIcoPrice()","249b4d0b":"removeTrustedIssuer(address,bytes)","249b4d4f":"transferContractUser(address)","249b7c19":"presaleEndTime()","249bc291":"transferMintMaster(address)","249cb3fa":"canImplementInterfaceForAddress(bytes32,address)","249eae4d":"addInvestors(address[],uint256[])","249f1f22":"insertNodeSorted(uint256,address)","249f77ef":"CancelSimpleOffer(uint256)","249f7aa0":"exchangeRateChangesBlock()","249ff838":"getAddressByNames(bytes32[])","24a039c7":"CBToken(address,uint256)","24a084df":"sendValue(address,uint256)","24a12edf":"getAuctionIdForUserAndIdx(address,uint256)","24a1871e":"LOL2()","24a1c1e0":"addCertificateAndBind2Wallet(address,uint256,bytes32,bytes32)","24a1cd1e":"currentCoefficient()","24a20a25":"feed10(uint256)","24a23361":"getTeamAttribute(uint8,uint8,uint8,uint32[11])","24a27bd2":"tokensForAdvisory()","24a30e46":"m_claimingIsActive()","24a38383":"WhitelistedSmallCap(address,uint256)","24a3b013":"attachToToken(address)","24a434eb":"openCarousel()","24a43c51":"releaseMultiple(address[])","24a4411d":"DecoderTester(address,address,address,address,uint256)","24a47aeb":"merge(uint256)","24a4aff6":"adaCoin()","24a684e1":"get_perms(bytes32)","24a69051":"allowClaim(address)","24a6a409":"MINTY()","24a6ab0c":"freeSupply()","24a73e5f":"decreaseAllowance(address,uint256,bool)","24a779ca":"PELOMemberMap(address)","24a7d277":"removeAddressFromBlacklist(address,address)","24a80b31":"BusinessUnion(uint256,string,uint8,string)","24a852c6":"unset(bytes)","24a8e11d":"isAuthorized(address,address,bytes32)","24a9d3d9":"callAndReward(string,string,uint256)","24a9d853":"feeBps()","24aa62fe":"setObjectionPercent(uint256)","24aa6dd1":"ProxyManagementContract()","24aa93b9":"getVestedAdvisorTokens()","24abfc02":"getTournamentThresholdFee()","24ac4df1":"cancelNewOwnersCountRequest()","24ac4e65":"getServerUserNumber(address)","24accfa3":"refundMoney(uint256)","24acec2b":"PayeeWithdrawInterest(address,uint256,uint256)","24ad35e1":"PisangChain()","24addfc0":"swapMe()","24ae84cc":"participateCrowdsaleInvestor(address)","24aee933":"usePower(uint256,uint8,uint8,uint8,uint8[176])","24af4cdb":"setNewUserState(string,bytes,string)","24aff74d":"Debit(address,address)","24b04905":"gift()","24b06a96":"getAllElectionsOfOrganiser(address,address)","24b07165":"get_property_facility(uint256)","24b0ff0f":"approveTokensFromKingWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","24b1905b":"sendFirstBatch(address[],uint256[])","24b19da5":"TokenDistribution(address)","24b1a2fa":"disableArbiter(address)","24b1babf":"claimEarnings(uint256)","24b1bfdf":"resetToken()","24b27fc8":"CoquiToken()","24b2c2f6":"GYUToken()","24b33f5d":"_auction(uint256,address)","24b35ef2":"mintTokens(address,uint256,uint8,bytes32)","24b3940a":"sayGoodBye()","24b492d7":"SetInitData(uint256,uint256,uint256,uint256,uint256)","24b4cee0":"openBatch(uint256)","24b4ec3d":"buyOwn(address,uint256)","24b4fc8e":"closeChannelWithoutReceipt()","24b508a3":"listByGroup(string)","24b50e43":"getMsgHash(address)","24b51369":"tgrSettingsPartFounders()","24b570a9":"totalPot()","24b5c134":"numCities()","24b5efa6":"RewardClaimed(uint256,address,uint256)","24b6b8c0":"_safeTransfer(address,address,uint256,bytes)","24b6f7d3":"TestBathTx(uint256,uint8,string,string)","24b72667":"buyprices()","24b77f05":"acceptCounterStack(bytes32,bytes32)","24b79a1c":"ICO_PHASE3_BONUS_PERCENTAGE()","24b82a76":"voterReward(address,bytes32,uint256)","24b89fa7":"unlockStepLong()","24b8fbf6":"register(address,bytes)","24b94ac6":"atto()","24ba1a46":"isSpawnProxy(uint32,address)","24ba506d":"getNumberOfTransactions()","24baeb12":"initCrowdsaleToken(bytes32,bytes32,uint256)","24bb49d6":"balanceMinusFeesOutstanding()","24bb7734":"mainSaleDuration()","24bb7c26":"pausedPublic()","24bbd049":"mintOpen()","24bc4e92":"QueenXChain()","24bcdfbd":"tradeFee()","24bce60c":"freeze(address,uint256)","24bdaf95":"about(uint256)","24bdf96a":"getUserRefBalance(address)","24c034a7":"ERC721Auction(address)","24c05c72":"requestLoans(uint256)","24c0db84":"ico1receivedTotal()","24c12bf6":"code()","24c1f9c7":"stage_3_add()","24c2362b":"buyCrySolObject(uint256)","24c30182":"BleedFomo()","24c31975":"increaseJackpot(uint256,uint256,uint256)","24c33d33":"round_(uint256)","24c37507":"getMinBet()","24c4c9e4":"getCurrentPRETDEBonus()","24c4e3b9":"getPatientHealthData(address)","24c55380":"TicketPurchase(uint256,address,uint256)","24c65927":"createNewAuction(string,uint256)","24c65f35":"updateRefundGas()","24c6ef60":"SafeTokenTransfer()","24c74c1d":"LogClaim(address,uint256,uint256,uint256)","24c74c78":"certify(bytes32)","24c91c1b":"isDataResponseValid(address,address,address,string,bytes)","24c93343":"error(string)","24c9bf5e":"Prizes()","24ca77e5":"teamNum()","24ca984e":"addRouter(address)","24caf5e1":"sale_address()","24cb015a":"_ONE()","24cb57dc":"whitelistEntries(uint256,uint256)","24cc35a6":"_isTeam()","24cd2ae4":"beneficiaryUserIds(uint256)","24ce2562":"updateGameSpecifics(uint256,uint256,uint256,uint256)","24ce2917":"create(address,uint256,uint256,address,address)","24ce9d27":"sellOrder(address,uint256,uint256)","24cee3d6":"Change(address,address,address,uint256,uint256)","24d0cc0f":"getPayouts(address)","24d16a4d":"makeUnderlier(bytes32,address,int256)","24d1c28b":"changeVoteRules(uint256)","24d29cfb":"_removeSigner(address)","24d3048d":"cancelNode(string)","24d30d54":"enableMerge(bool)","24d3eaf3":"bonusEndTime333()","24d427a9":"print(address)","24d4e90a":"ln(uint256)","24d5336a":"deicmals()","24d6169c":"startLockPeriod()","24d6d601":"voteFor(address,uint256)","24d70dea":"hasEntered(address)","24d7378a":"m_totalTokens()","24d7806c":"isAdmin(address)","24d86f00":"decreaseStake(uint256,uint256)","24d89171":"changeNeedFightToAdult(uint256)","24d97a4a":"killme()","24da48a3":"updateMaxAllocation(uint256)","24da569a":"AGToken()","24daddc5":"setRestricted(bool)","24db1f50":"masFreezedTokens(address[],uint256[],uint256[])","24dbb91d":"BusinessCard(string,uint256,string,address)","24dc793f":"getKydy(uint256)","24dcd0ef":"transferFounders(address,uint256)","24dd24ed":"allowingClaimBTC()","24ddb58c":"performStepVerification(uint256,bytes,bytes,bytes)","24de30f1":"distributeEarlyBackerTokens(address,uint256)","24de3c0e":"gwei()","24de908d":"wins()","24df2d5b":"Filmpass()","24df75d9":"withdrawFromTicker(uint256)","24dfc9d7":"getBytes32(uint256)","24e04871":"horseForSale(uint256,uint256)","24e0be2e":"EVenToken()","24e1c3f3":"PRCT_ETH_OP()","24e1fa3a":"FIRST_WITHDRAW_RATE()","24e21cde":"sendTradeOffer(address,uint256[],uint256[])","24e2ca92":"withdrawSharedExpense(uint256,address)","24e2cda7":"TestOrder2(address)","24e2dbd3":"linkRecipientName(bytes32)","24e34476":"myStoredDividends()","24e5355e":"JerryToken()","24e581be":"transferAllToOwner()","24e5bdb9":"getEventsCount(string)","24e5eeaa":"slogan()","24e65e14":"Addr6()","24e7a38a":"setGeneScienceAddress(address)","24e7c824":"performTransfers(address[],uint256[])","24e846c7":"confirmedSaleEther()","24e8b3ec":"getClaimableRewards(bytes32)","24e998c3":"Ethershift()","24e9dad8":"_safeCall(address,uint256)","24ea8d1a":"Fortnitecoin()","24eaf1ea":"SendBadge(address,address,uint256)","24ec6f66":"cancelContest(uint32)","24ec7590":"minFee()","24ed1486":"getPeriodAliasFor(uint256,address)","24ed2d8b":"initOwnership(address,address)","24ed3dc0":"PolyAnalytixProjectToken()","24ed3e78":"BACKUP_THREE()","24eda713":"teamTwoWin()","24edc2a1":"WINT()","24ee0097":"myMethod(uint256,string)","24ee62ee":"secondWavePrice()","24ee9be4":"getVirtualBalance(address,address)","24eebc47":"SWAPCOINZ()","24efe4c3":"_addToClaimList(address,uint256)","24f07356":"batchIncreaseApproval(address[],uint256[])","24f073ad":"getTimeOfLastBid()","24f12f1e":"ProfitSharingMock(address)","24f159c2":"extensions()","24f1ec37":"multiAccessRecipient()","24f2cc02":"preIcoLimit()","24f32f82":"changeHardCap(uint256)","24f35549":"setup(uint256[])","24f3c639":"buyApprenticeChest(uint256)","24f481c8":"oracleItQuery(string,string,string,uint256,uint256)","24f48bc5":"setWatcher(address)","24f5445b":"transferFundToAccount()","24f55e29":"hasCompany(string)","24f618b6":"GetDOTRevokableHash(bytes32,uint32)","24f65ee7":"getTokenDecimals()","24f690ac":"cryptowars()","24f696fd":"LogFundTransfer(address,address,uint256,uint8)","24f731d5":"PlaceBet(uint256,bytes)","24f743dc":"freeSpaceOf(address)","24f74697":"callbackGasLimit()","24f7a980":"WaitStarted(uint256)","24f82526":"closeLong()","24f8fe9c":"EdgelessCasino(address,address,uint256,uint256)","24f91d83":"init(address,address,address,string)","24f9702e":"allocateArrayOfTokens(uint256,address[])","24f99ba4":"ChiMarket()","24fa6f3b":"requiredBlocksElapsedForVictory()","24fabb87":"setImageOwner(uint256,address)","24fad665":"enableMasterTransfers()","24fb563f":"PlayerTickets(address,uint256,uint256)","24fc253e":"eraIndex()","24fc65ed":"getId(uint256,uint256)","24fc70ff":"setBonusOn(bool)","24fcb80c":"parseAddress(bytes32)","24fcbc1c":"withdrowErc20(address,address,uint256)","24fd0a5c":"isAvailableForTransfer(uint64)","24fd2be1":"NationalCoin()","24fd5585":"fixedExp(uint256,uint8)","24fd6ec9":"zeroBonus()","24fe722e":"requestUnpause()","24fe73fe":"isRegularOrBoardMember(address)","24fe8e68":"MyToken(uint256,uint256,string,string,uint256,uint256)","24fef683":"OwnershipGranted(address)","24ffca71":"visitCost(uint8)","24ffea1a":"presaleToken()","25005498":"updateEntityNew(uint256,bool)","2500ec4a":"getDHand(uint32)","25010816":"get_length(uint256,uint256)","25012699":"KERNEL_APP()","25017e10":"transferSubscription(bytes32,address)","2501faa5":"triggerRecoveryAddressChangeFor(uint256,address)","2502c19c":"setRBInformationStoreAddress(address)","250312ce":"bleachAppearance(uint128,uint128)","2503dce8":"updatePublisherFee(address,uint16,address)","25052d02":"getMyTokensReturns()","250537fc":"_createCollectible(bytes32,address)","250540cf":"calcMaxWithdraw(address)","25059052":"WhitelistedLargeCap(address,uint256)","2505c445":"finalizedEthFundAddress()","2505f349":"setTokenMinter(uint256,address)","25062287":"_ownerDist()","25068a28":"freezeAllowance(address)","2506bfe7":"validateBySymbol(string)","25074d73":"Registered(string,uint256,address,string)","25084b04":"manualOverrideEditionHighestBidder(uint256,address)","25096f28":"KryptopyTokenMock()","2509f1b9":"SLP()","250a1c1d":"Validate(string,string,string,bool)","250a8dc2":"isAccountAddress(address)","250a93cb":"POEXToken(address,address)","250ac096":"BuyRoseCoin()","250b1154":"tokenRate3()","250b35e8":"BidSaved()","250bc504":"Ambassador()","250c95fe":"setMaxBuy(uint256,uint256)","250ccce4":"getOutStreamOf(address)","250d5bc8":"LineToken3()","250de298":"EthlanceSearchJobs(address)","250dea06":"modifyBalance(address,uint256)","250e7d61":"CROWDSALE_CLOSING_TIME()","250e816b":"getPeriodSealedPurchaseOrderFor(uint256,address)","250e87c9":"pyramid()","250ef961":"checkCorrectPurchase()","250fe144":"setInvoice(uint256,bool,string,string,string,string)","25100b4d":"placeBet(bytes32,string)","25102f27":"PRESALE_START_TIME()","25107a47":"TransactionRefundedAfterEscalation(uint256)","25112004":"XCNTToken()","25112743":"getSaleContractStartBlock(address)","251139f6":"setPrevContract(address)","25119b5f":"channelManagerByToken(address)","2511b182":"minBuyableAmount()","25128b02":"CampaignResumed(uint256)","25137f46":"setSalesPipeAllowance(address,uint256)","251481c8":"testDecodeTransfer(bytes)","2514a6b4":"withdrawDividends(uint256)","251506fa":"SendFart(string)","25161e70":"HKDHToken(uint256,string,string)","2516a18f":"setMintableToken(address)","2516af82":"createLottery(bytes32,uint256,uint256)","2516c6c6":"min_tokens()","2516d738":"secureAddOrderFunds(address,bool,uint128,uint128)","25174f0e":"getOwnerIndex(address)","25182e79":"winAmount4()","25185d3e":"freeBalance()","25192fca":"issuanceDraft(address)","2519a378":"finalizeReplaceTrueUSD()","251a8096":"total_wins_wei()","251aaf67":"dividendsPaidPerShare()","251b5f8e":"team_fund()","251c1aa3":"unlockTime()","251c7182":"seed_multiplier()","251d3589":"setUseEIP712(bool)","251d8ffb":"setNav(uint256)","251e3d7d":"registerMember(address,bytes,uint256)","251ed995":"walletSetWallet(address)","251fa3b1":"testFailRetractLatestRevisionNotOwner()","251fbe37":"get_training_index()","25200718":"requestAudit(string,uint256)","25209260":"PrepareRoll(uint256)","2520bf04":"shuffle()","2520d2e1":"readvalidrollsXaddr(address)","25221a4f":"addToBlacklistMulti(address[])","25223bd4":"donor()","25233782":"magicnumsig()","252348dc":"ratePerEth()","2524380f":"buy_Exchg_BkgChk(address,uint256,uint256,address,uint256)","25245b26":"sendEth(address[],uint256[])","25248587":"indexview(address)","252498a2":"setUrl(string)","25250519":"addGlobalAdmin(address,address)","2525aa78":"mintStart5()","2525f5c1":"cancelBid(address,bytes32)","25266f96":"isNewPlayerInBattle(string,address)","2526d960":"clawback()","2527331b":"transferToSimpleService(address,uint32,uint256,uint256,uint256)","252733f0":"registrantsPaid()","252786e4":"WatchBlockSizeInEther()","25280163":"RedFundCrowdsale(uint256,uint256,uint256,address,uint256)","25287c0e":"bonusesGiven()","2529b907":"setVaultDeposit(uint256)","2529d1a3":"fused()","252ba7a0":"userDeployCount(address)","252bb9c3":"PHOENIX_CORSAIR_EXTRACTION_BASE()","252cb4fe":"registerProposal(uint256,uint256[])","252ccac3":"getTotalActiveBets()","252cedc3":"sendERC20Tweet(uint256,string,string)","252d1578":"init(address[],uint256,uint256,uint256,uint256)","252d7eb3":"getCurrentPayoutIndex()","252dbc36":"setTokenPoolReward(uint256)","252e40b1":"secondsPerYear()","252edb76":"setUInt8(bytes32,bytes32,uint8)","252f14ba":"_addArbiter(address)","252f34a7":"loserOne()","252f4977":"destroyTokensInBntyTokenContract(address,uint256)","252fb38d":"bytes32string(bytes32)","253089b5":"smxTeamAddress()","2530c905":"rand(uint256)","25316ff5":"getBetUint(uint8,int8)","2531a36a":"getDesignatedReportDisputeDueTimestamp()","25327b75":"latestErc20TxRequest()","2533bb9d":"dataCentreAddr()","2533ff94":"LogPersonUpdate(address,uint256,uint256,string)","2534076e":"cancelRemoveOwnerRequest()","253459e3":"feesSeperateFromBalanceApproximately()","253515d5":"accruedBuyout(address)","2535b150":"cryptoJingles()","2535dd53":"getAvailableWithdrawInvestmentsForBeneficiary()","2535f762":"transferWithData(address,uint256,bytes)","25361060":"getReferralStatus(address)","2536d7f1":"endOfCrowdsale()","25384770":"reserveAllocated()","25387eed":"tallyTheVotes()","253abf4a":"processSalesForAllBuyers(uint256)","253bc579":"companyClaimed()","253bd7b7":"check(address,bytes32)","253c8bd4":"change_owner(address)","253caf94":"setTasksAddress(address)","253d8195":"SavingsBank()","253e3447":"numberOfSpritesOwnedByUser(address)","253e7fdf":"becomePacifistmaster()","253ebd92":"isTierJoined(address)","253f029c":"performUpdatePC()","253f055b":"getStage2End()","253f2809":"offerCollectibleForSale(uint256,uint256,int256,uint256)","253f5c38":"addtoLeaderboard(uint64,uint64,uint64)","253f89b0":"minContributionUSDc()","25400abc":"buyPuzzle(uint8)","25402e6c":"vcxCount()","2540424b":"isDefIndexInRange(uint8)","25406480":"extendPeriod(uint256)","2540c420":"phaseOneRate()","2541edcc":"oferta()","25435704":"updateTokenSupply(uint256)","254439fe":"addTokenList(address,uint32)","25449c54":"ArteumToken()","2545686d":"is_slot_in_bid(uint8,uint8,uint8)","2545a07a":"MOEToken()","25461328":"MSPMock(address)","25464902":"AUCC()","2546559c":"Demo()","2546de10":"vest(address,uint256,uint256)","254747a5":"checkAvailableAmount(address,uint256)","25476ed8":"settleAndWithdrawCfd(uint128)","254800d4":"vestingStart()","2548bbbd":"WithdrawalCreatedEvent(uint256,uint256,bytes)","25495998":"getMinimumConsumerDeposit()","25498152":"setBuyDividendPercentageFee(uint8,uint256,uint256)","2549ad8f":"MANHATTANPROXYCNVNTAVE()","2549e0b1":"getLockedBalance()","254a46f4":"cycleMintSupply()","254b302d":"revokeAllMyId()","254bd326":"getUserAddr(uint256)","254c70ac":"getPlayerData(uint32)","254c91b3":"testBitNotSetSuccess()","254d2e12":"GetDemolishCost(uint256,uint256)","254dacba":"BurnTokens(address,uint256,string)","254dcfe2":"lastActiveTransaction(address)","254fd745":"transferUCASH(address,uint256)","255016c8":"checkIfExploded()","255074a9":"addManualContributor(address,uint256)","2550c435":"CRYPTO_USD()","2551858e":"getFlags(bytes32)","2552317c":"lastBlockNumber()","25534a1e":"saleEtherReceived()","2553795a":"AragonSupply()","2553ac0d":"getPlayeds(uint256,address)","2553e0cb":"OwnedMortal()","2554a358":"queryCurrentTradablePrice()","2554b9b3":"kkkTokenSale(uint256,address)","2555611a":"AOKPAY()","25568fd7":"__setBeneficiaryForDasTokensChange(address)","2556befa":"feeBank(address)","255706f5":"start_service2(uint256,address)","25575a04":"peBalance()","25579702":"calculateDrugBuySimple(uint256)","25580656":"dataSourceGetRoundOfSixteenResult(uint256)","25583590":"_cancelAuction(uint256)","25585ee8":"diamondIndexToApproved(uint256)","255884ae":"discoveryPrice(uint256)","2559e0dd":"rateInSpecificTier(uint256)","255bd903":"signByBride()","255c8244":"amountRaisedPreSale()","255c8fee":"TestyTest()","255e2f81":"adjustDollarToEtherRatio(uint256)","255e444e":"scientists()","255e4685":"mintStart()","255eac5c":"newRegistration(address,uint256)","255f82e2":"sealed(uint256,bytes32)","25605c6a":"balanceOfSC()","2560a8c0":"houseedge()","2560baeb":"calculatePayrollBurnrate()","25616007":"getLandplayerFirstDefenderID(uint8,uint32)","25618ca8":"setBattleContractAddress(address,address)","2561ee35":"estimateBuyOrder(uint256,bool)","25625608":"FoundWinner(address,uint256)","2562b427":"declineKyc(address)","25630c9f":"fwithdrawal(uint256)","25635b68":"updateBaseInventory(uint256,uint256,uint16)","2564e1c4":"PaymentAddressFactory()","256540cd":"turnover()","256697df":"ibcDistributed()","25672ee6":"OpenBids(address,uint256,address,address,uint256,uint256)","256738d1":"AGT()","25686e15":"getMarketsRocId(uint256)","25687e28":"tuneLastStageStartAt(uint256)","256919c6":"fixSale()","25696308":"lastBlock_a10Hash_uint256()","25697337":"getLittAdminCount()","25698d89":"isLottery()","2569cd6c":"assistant()","256a9f81":"extendedTime()","256b8dfe":"Travelcash()","256bcaa0":"addToJackpot()","256bdaa4":"setEtherRate(uint16)","256c0926":"RocketPoolCrowdsale(address)","256c10a1":"market2021TokenCreated()","256c3232":"getPreICOBonusAmount(uint256,uint256)","256c5fc6":"LooisToken(uint256,string,uint8,string)","256df407":"test_spamFreeze()","256f992b":"organizers_percent()","256fa241":"distributeTokens(address[],uint256)","256fec88":"lastSender()","2570c13d":"GBCoin()","2570e31e":"getTokens(uint256,address)","2571a4ab":"MaxBetAmountChanged(uint256)","25731e97":"quitBanker()","257341a8":"vestingCountOf(address)","2573aa7d":"newShare(address)","2573ce27":"validateUserByHash(bytes32)","25746251":"canVote(uint256)","25750995":"updateChfCentsPerEth(uint256)","25756d90":"getWeaponRarityFromTokenId(uint256)","2575d47e":"EmitAccountChartDetails(address,uint256,uint256,uint256)","2576a779":"updateServiceFee(bytes32,uint256)","257714db":"getTransferRate(address)","257781e7":"deleteIPFSHash(bytes32)","2577929b":"settleContract(uint256)","257793f9":"getConstructorTouches()","2578117b":"getPotAsFixedPointForGameId(uint256)","25787747":"icoDuration()","2578e943":"RHYNOTE()","25799b18":"getUnapprovedArtists()","2579dd3c":"registrantToHopefulIds(address)","257bcd6a":"placeBet(uint256,bytes32,bytes32)","257c360d":"getCurrentBalanceForCampaign(bytes32)","257c88b5":"curQuater()","257d3db5":"setNumNumbers(uint256)","257d5995":"updateSinglePayout(address,uint256)","257d849f":"ZegartToken(uint256,string,string,string)","257d9bb8":"MINIMUM_AMOUNT()","257e0523":"addLockedTokeD(address)","257e1f8f":"endUpgrade()","257e5c69":"matchStake()","257ef522":"approveBountyTransfer(address)","257ef70b":"fillSellOrder(address,address,uint256,uint256)","257f9abf":"removeFromList(address)","257fc838":"setResolveValueGasLimit(uint256)","258072e5":"display_rate()","2580ce84":"totalAndRemainOf(uint256,address)","2581021c":"depositCollateralOnBehalfOfRecurse(address,address,bytes32,uint256)","258108da":"slaveWalletPercent()","25818751":"test_oneValidEqUint3()","2581c674":"testBitsOrFailIndexOOB()","2581f5a4":"distributeAirdrop(uint256,address[],uint256[])","2582bf2a":"updateDelegateKey(address)","258315b3":"ATC(uint256,string,uint8,string)","2583373c":"distributeAndUnlockTokens()","2583a1d9":"oraclizeQueryId()","2583b2e4":"totalWithdrawTokenAll()","2584295e":"userWhiteListContracts(address,address)","2587eb4e":"setRate(int256)","2588f9a5":"ReleaseAgentSet(address)","25892f92":"ApprovedBy(uint256,address)","2589af4a":"getProjectKudosByUsers(bytes32,address[])","258a61d6":"coordinateToIdentifier(uint256,uint256)","258a6ca6":"getStoryExpiry(bytes12)","258ae582":"verify(bytes32,bytes)","258b5a35":"challengeSettle(bytes,uint8[2],bytes32[2],bytes32[2])","258b5c06":"finalizeCrowdsale(uint256,uint256,uint256)","258b5da6":"recoverWETH()","258b85d4":"verifyHash(string,string)","258c047e":"getStatusEventClosed(bytes16)","258c0f1e":"deleteCaller(address)","258c2a2d":"Charity()","258c4f63":"channelManagerByToken(address,address)","258c5ddd":"softWithdraw()","258d3d6e":"PlayHallToken()","258da4b4":"seedStarted()","258dd544":"estimateSellOrder(uint256,bool)","258e60b6":"start(string)","258f6b8f":"GiveReferralRocket(uint16,address)","258fd4f3":"Stage1Allocation()","25910753":"addCourse(string,string,bytes32)","2591432d":"canary()","25925806":"tokensAllocatedForCs(address,address,address)","2592e921":"verifyParams()","2593ed21":"setICO1Phase()","2594b343":"walletTwo()","259653b8":"distributionClosed()","2596c93b":"manualBonusActive()","2596e62c":"test_oneValidEqBytesUint()","25973ef7":"CIFRCOINTOKEN()","25979983":"sendToAll(uint256)","25981559":"bluceTestCoin(uint256,string,string)","25982586":"AddressDemo()","259852f8":"updateGenVault(uint256)","2598ab9d":"createPromoSeedAuction(uint8,uint8,uint256,uint256,uint256,uint256,uint256,uint256)","25990d4d":"TokenFulfillment(address[2],uint256[8],uint256)","2599c661":"getgamecardsalemoneyuint256(uint256)","259a28cf":"UNLOCK_PERIOD()","259b2ce0":"whitelistRegistrants(address)","259b5181":"_batch2_rate()","259b5605":"PTL()","259bc6f5":"getWhiteUsers()","259c05f5":"DEV_TAX_DIVISOR()","259c29e8":"replaceShorter()","259c95c4":"_sendWebGiftToken(address,uint256)","259ceee5":"contractTokensTotal()","259d1cb4":"eth_decimal_num()","259d33c1":"roundStats(uint256)","259eb959":"privilegedTransfer(address,uint256,bytes,string)","259fddaf":"stakeCommunityTokens()","259fefcb":"angelAddress()","25a10a70":"getChild(address)","25a190c9":"inicializaStatusPossiveis()","25a2219f":"promotionsUsed()","25a30145":"preSaleTime()","25a31135":"Disable()","25a34aca":"returnMargin()","25a3ba49":"getCertKey(string)","25a42081":"setPriceStep3(uint256)","25a43ea5":"setts10(uint256,address)","25a50636":"completeBountyAddresses(address[])","25a52d9d":"curentWinner()","25a583a3":"_reAdjustDifficulty(uint256)","25a6c545":"generalInfo()","25a7650a":"beginGame(uint256)","25a78057":"DeClubToken(uint256,string,string)","25a86d56":"ETH_USD_EXCHANGE_CENTS()","25a8e6f9":"addNewEditor(address)","25a9d450":"getClientBalance()","25ab2d03":"getReturnSize(uint256)","25ab526d":"MITPurchase(address,address,uint256,uint256)","25ab9f43":"addDoubleChanceLine(uint256,string,uint256)","25abc312":"changeICOPrice(uint256)","25ac29da":"generateUrl(string,uint256)","25ace2a7":"checkExpired()","25ad7f2e":"OneStep()","25ad91ce":"createUser()","25adfc8f":"SetMaxMinersXblock(uint256)","25aeb4a2":"addPayment(uint256,string,int256,bool)","25aef744":"ValuePlaced(address,address,uint256)","25b05c88":"playerGameId(address)","25b10186":"INITIAL_PRICE_INCREMENT()","25b198eb":"inList(address)","25b1a072":"setGOPCreator(address)","25b29d84":"getEtherValue()","25b2ac77":"privateOfferingWallet()","25b31a97":"purchase(address)","25b3b5a8":"_totalMinedSupply()","25b3bfb8":"transferFrom0(address,address,uint256)","25b3edd9":"updateTraits(uint256)","25b5160c":"setICOPrice(uint256)","25b56727":"createProxy(address,address)","25b56dd4":"averageScrapPrice()","25b634c0":"approveDisbursement()","25b64bba":"signerConsumerNonce(address,address)","25b6ae80":"incSALESTATE()","25b72273":"SGT(address)","25b75b7b":"deregistrationDate()","25b825ab":"newMediaToken(uint256,uint8,string,string)","25b886eb":"constructors()","25b89c52":"AirDropToken()","25b901c8":"Refundlineinfo()","25ba0824":"grantOwners(address)","25ba0f51":"initContract(address,address)","25ba2d2e":"minimalPrice()","25bae118":"earlyPurchaseClosedAt()","25bb8e93":"_badgeUnFreeze(uint256)","25bccea2":"setFreeze(address)","25bd4639":"paymentId()","25bd713f":"tokensForPlatform()","25bdb2a8":"getSaleState()","25bdb73d":"benefitPercents()","25bdc110":"Resolve(bool,uint256)","25bddc18":"DGXCrowdsale(address,address)","25be124e":"token2()","25be53e7":"kickStartICO(address,uint256)","25c065b1":"minStakingAmount()","25c10247":"buyIPC()","25c2052f":"last_random()","25c24bc3":"folioToken()","25c302e4":"totalDonors()","25c48f30":"MYDECIMAL()","25c50f97":"enablePhenomenon(bytes32)","25c54456":"existsContract(address)","25c5ce04":"availableOnStage()","25c5d4d4":"tileDrop(address[])","25c62d5a":"MAX_TOKENS_AIRDROPS_BOUNTIES()","25c70a44":"moveToArea(uint16)","25c782d7":"addStageCrowdsale(address)","25c7cd17":"getCurrentLeaderOwners()","25c843b9":"comments()","25c9307d":"lastBetBlockNumber()","25c93df3":"rewardTokenAmount(uint256)","25c95538":"isRepeated(string)","25c972ff":"JoinGameAsBanker(uint8,uint256)","25ca5cc6":"candidateTillETHAssets()","25ca953d":"resetAirDrop(uint256,uint256)","25caa262":"getBal()","25caaa37":"getMyChicken()","25cb2bc6":"getBrokerAddress(uint256,uint256)","25cb366d":"manualMigrate(address)","25cb4f2c":"profitContainerAddress()","25cb5bc0":"getExpiryTime()","25cb6303":"isItIco()","25cb98d5":"removeVerifiedUser(address)","25cbd68e":"fifthTeamWithdrawal()","25cbe702":"tokenSupportLimit()","25cbeb0a":"DICIMALS()","25cbeb7e":"creatorsAddress()","25cc348f":"testDeployedValues()","25ccdb4c":"currentspudinfo()","25ccf381":"create_forwarder()","25ccf688":"KEO()","25cdca8d":"CommonWhitelist()","25cde42c":"addPayerRefundAddressAction(bytes32,bytes)","25ce77a0":"devuelveEncuestados(bytes32)","25ceb4b2":"submitBlock()","25cf512d":"setBytes32Value(bytes32,bytes32)","25cf98e5":"EduCloud()","25cfa566":"StartingPrice()","25d00041":"registrantIndex()","25d04034":"KT07Coin(uint256,string,uint8,string)","25d0b4ef":"minFundingGoal()","25d104d4":"returnVestingSchedule()","25d1da84":"revokeAll(bytes32,address)","25d30d8e":"cnt_per_Keos()","25d3a09d":"getProposal(string)","25d3b2c6":"check_array_add(address)","25d3bcd1":"saleHardcap()","25d3d0e3":"purchaseTimestamp()","25d4bdeb":"LookAtCollectedFees()","25d5971f":"withdrawStake(uint256)","25d5eafa":"total_points()","25d76e6d":"setCompte_27(string)","25d78d3b":"IcoPhaseManagement(address)","25d83bb3":"authorized_setCardPerkText(uint256,string)","25d85e12":"totalPopulation()","25d8a4b2":"SpiceToken()","25d8dcf2":"betAndFlip()","25d8f6a5":"dividendForHistory()","25d91125":"earlyWhitelistBeginTime()","25d92ee2":"updateFeeWallet(address,address)","25d988bb":"buy_token(address[],uint256,uint256)","25d998bb":"availableBalanceOf(address)","25d9d57d":"highTokensToSellGoal()","25d9ec83":"requestBuywithETH(address)","25dac5e3":"DocumentStored(uint256,uint256)","25db4dd0":"jackpotBlance()","25db6699":"tgrSettingsBlocksPerStage()","25dbe054":"setDonationUnlockTs(uint32)","25dccaf9":"postMessage(address,uint256,string)","25dd0ee6":"checkTotalBalance(uint256[])","25dd495a":"Recycle()","25ddda76":"changeMixEnable(bool)","25dfbfba":"addProduct(string,string,string,string,uint256)","25dfcf84":"saleAllocated()","25e023b3":"unlockOwnerBalance()","25e0671f":"areReservedTokensDistributed()","25e0c876":"sosTransfer(address,address,uint256)","25e11811":"addFunctions(address)","25e1350f":"insert_candidate(string,uint8,string,string)","25e16063":"withdrawEth(address)","25e1b5e4":"pricePerMessage()","25e1c6f7":"batchTransferORS(address[],uint256)","25e3172b":"AdminClaimAirdropMultiple(address[],uint256)","25e330fb":"_increaseRarity(uint256,bytes32)","25e37b2b":"delTournament(address)","25e3d3ba":"blockResult(uint64,uint64,uint64)","25e3d7b4":"assignSharedOwnership(address,uint256)","25e41da1":"getRandomValue(uint256)","25e524d3":"right8(uint256)","25e629f2":"fundraisingDelta()","25e65584":"getPlayerBossWannaCryData(address)","25e6c304":"totalPrizes()","25e6f516":"tokenDescription()","25e7514b":"remainAmount()","25e7c9ad":"getTotalAmountOfFirstInvestors(uint256)","25e7e3cf":"recoverAllEth()","25e89283":"mainSaleActive()","25e8f38c":"logUI(string,uint256)","25ea269e":"Scissors()","25eafb45":"AikcoinSupply()","25ede147":"depositSecretBid(bytes32,bytes)","25ee8abb":"winningTeamSet()","25eeecbc":"divisionByZero()","25ef9afa":"LOG_newSpinsContainer(bytes32,address,uint256,uint256)","25f08fc4":"decayedPriceOfTwitterId(uint256)","25f0f467":"updateTransferFeeRate(address,uint256)","25f0fd23":"_revoke(bytes32,address)","25f262c7":"draw(address[])","25f281b4":"changePriceSetter(address)","25f39a63":"div(int128,int128)","25f3da52":"GetBankAccountNumber()","25f3f2ef":"joinBuyRequest(uint256)","25f43ed5":"setMemsize(uint256)","25f4c703":"setFoundersPercent(uint256)","25f5cb1e":"getAllowedForTransferTokens(address)","25f5ec45":"getCheapestCardWager(address)","25f673f5":"Love(address,address,uint256)","25f731c8":"transferOwnershipBack()","25f885d0":"CashOut(bytes)","25f96b73":"ownerSupply()","25f9bfef":"CONTRACT_REGISTRY()","25f9f1e6":"lockOwnerBalance(uint256,uint256)","25fa0131":"isZero(address,string)","25fa5ae1":"createShapeShiftTransactionPost(string,string)","25fa8a4f":"_firstTokenId(address)","25fad06a":"clearances()","25fb439c":"POW33()","25fb66b9":"getHeroItems(uint256)","25fc575a":"deregisterToken(uint32)","25fc5f02":"HIPHOP()","25fc790f":"te()","25fcdad8":"complaint(address)","25fced01":"sellTokensPreIco()","25fd1e29":"REFUND_TIME_FRAME()","25fda176":"notify(address,uint256)","25fdb725":"MIN_CONTRIBUTION_ETH()","25feb519":"fifthTime()","25ff68dd":"Initialized(address,uint256)","25ffba04":"updateTokenStatus()","26000ba2":"updateBalanceOnFunding(uint256)","2601d1bc":"checkGameState()","2602bc8f":"_transfer(uint256,uint256,uint256,bytes32,string,uint256)","26030a34":"report(bytes32)","2603ace6":"unRegOwn(address,string,address)","2603f70c":"ownerDeclareRefundFinish()","26044feb":"fetchdivs()","26046743":"assetOwnerRemoved(bytes32,address,address)","2604b767":"getEggsSinceLastHatch(address,address)","2604f424":"FUTURE_DISTRIBUTE_LIMIT()","26052ef6":"getCurrentSolver(address)","2605b3c7":"participant(address)","26066ad5":"offer(uint256,bytes,uint256,bytes)","2606a10b":"report()","26070774":"Token(address)","26073003":"congratulationFromNoel()","26086c70":"triggerVersion(address)","2609037c":"requestArbitration(address,bytes32)","26091cbe":"OwnersBySpinner(uint256,uint256)","26093bbc":"safeIncrement(uint256,uint256)","26094c60":"setUnsoldTokensWallet(address)","260958a5":"getTransfer(bytes32)","260993f9":"registerSister(address)","260a5227":"buyOnBehalfWithSignedAddress(address,uint128,uint8,bytes32,bytes32)","260a54d3":"getCA(address,address)","260a818e":"unregister(bytes8)","260abfa5":"EnableMember(address)","260b0bc8":"payToOracle(uint256,uint256)","260b8f6e":"GetEvaluate(address,uint8)","260bf85a":"updateAmountToTakeAsRake(uint256)","260c2214":"setValid(uint256,bool)","260c3af1":"IcapTransfer(bytes32,address,bytes32,uint256)","260d387b":"blacklistUserForTransfers(address)","260e6885":"BazraCoinToken()","260e9640":"lock(uint256,uint256,uint256,uint256)","260ea6c9":"myDividendBalance()","260edaaa":"surplusTokens()","260f836d":"intercrypto_getInterCryptoPrice()","26109699":"Withdrew()","26111ab2":"addToSet(uint256,uint256)","2611341b":"submitApplication(address)","26119a0b":"changeFeeETH(uint256)","26121ff0":"f()","26134334":"getProjectKudos(bytes32)","2613ba9a":"PlatformDeposit(address,address)","2614195f":"getNameFee()","2614d4a4":"spendCredits(address,uint256)","2614fff6":"lengthOfCommonPrefix(bytes32,bytes32)","26161670":"donkeyRanking(uint256)","2616501d":"defaultRate()","261669ba":"HeroesToken()","26168eed":"getTestimonial(uint256)","261775f6":"BlokGrup()","2617fc13":"resetcardPrice()","26180224":"newChallenge(uint64,uint64)","261879ed":"addKitty(uint256,uint256,uint256[5])","26188437":"tokenReserved(address,uint256)","2618a571":"DEVELOPMENT_TEAM_CAP()","26195901":"numAnimals()","2619ba7f":"ETHFee()","261a323e":"exists(string)","261aa1c5":"additionalBonusPercent()","261ac279":"getApiByIdWithoutDynamics(uint256)","261b2c5e":"stepVestingDuration()","261b4205":"equalBytesToBytes(bytes,bytes)","261bd0f1":"BUY_BACK_BONUS()","261c085e":"registerChallenge(bytes32,uint256)","261c42dd":"getAllRevisionTimestamps(bytes20)","261cb08a":"burnPausedTime()","261de7c4":"right33(uint256)","261e9693":"balances4(uint256)","261eafc8":"addMasterTo(address,string,string,string,uint8,uint8,uint8,uint8,uint8,uint8,uint32,uint32)","261ed1d8":"farmCities(uint256)","262006e9":"getFirstDocumentIdBetweenDatesValidFrom(uint256,uint256)","262007c0":"getBetter()","26207bd1":"indices(int128)","26208591":"payDividendsTo(address)","2620f61c":"storeClaim(uint16,address,uint256)","2620fb2b":"getNextTime(address)","2620fd4a":"setupICO(uint256,uint256,uint256,uint256)","262199c3":"changeTokenOwner()","2621b6e3":"finalStageRefund()","2623297e":"zt()","26232a2e":"platformFee()","2623f687":"getRevenue(uint256)","2624597c":"createTokensForEvent(address,uint256,uint256,string)","2624b2d9":"EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH()","2624c4eb":"EtheremonEnergy(address)","2625e2e1":"post(address,address,bytes32)","26278f86":"unrestricted()","262799f7":"PaquariumTokenTest2(uint256,string,uint8,string)","262834da":"_addOperator(address)","2628803f":"migrateREP()","262933cb":"responseFromWS(address,uint256,bytes32)","26295b52":"createGalaxy(uint8,address)","262aa9fc":"DOGToken(uint256)","262af333":"sponseeAddress()","262af3dd":"getClassViewValue(uint256)","262b9f8c":"finishRoundA()","262bcb68":"mintBooster(address,uint32,uint8,uint8,uint32,uint24)","262c0b72":"getPayoutFreezePeriod()","262c3666":"forward(bytes32[],uint8,bytes32,bytes32)","262da6df":"TransferOwnershipOperationEvent(address,uint256)","262f8244":"HGSOCIAL(uint256,string,string)","262f8c0e":"addTimelock(address,uint256)","262fe547":"testCheckSavecEthBalance()","2630271d":"setlockaddress(address,bool)","2630c12f":"priceOracle()","2630d97d":"setAtomLev(uint256,uint8)","2630ee9f":"revealBid(bytes32,address,uint256,address,address,address,uint256,uint256)","2630ef36":"setNumOfTimesSteal(uint8)","263164b9":"getSalaryTokensTotalCount()","26316e58":"setMigrationMaster(address)","26324eff":"producers(address)","26325bd3":"allowEveryone()","2632924d":"left30(uint256)","2632bf20":"unblockMe()","2632fc3c":"MichiganvsLoyola()","2634592a":"logReportsDisputedCalled()","26345de2":"VendingMachine()","26348325":"smartContactForSale()","263570c0":"addStorage(string,address)","2635f4de":"registerLibrary(bytes,address)","2635f59f":"InterfaceToken()","263631b4":"euroCents2wei(uint256)","2637bb2e":"isTransferProxy(uint32,int256,address)","26381b05":"canReceiveTokens()","26387b07":"Fortune()","2638b25c":"seedEndTime()","263a6d79":"initiateTransaction(address,uint256,bytes)","263b694a":"MIMIMUM_CONTRIBUTION_AMOUNT_ICO()","263c0a8d":"_setLagParams(string,uint16,uint8)","263c493a":"enable_deposits(bool)","263c6ec0":"usdToTokens(uint256,uint8)","263ce6a0":"getWinningPrediction(address)","263d4878":"triggerRefund()","263d5ad0":"vaultPercentage()","263dffba":"_releaseVouchers(address,uint256,uint16)","263e3d5d":"terminateContract(uint256)","263e6d0d":"INDOPAY()","263e74e6":"computeBonus(uint16)","263e79b5":"addCreditScore(uint256,string)","263eb5b6":"assertEq8(bytes8,bytes8)","263ef0cf":"needRefoundETH(address,uint256)","263f6a42":"rateFeesNumerator()","263fa1ad":"XYZToken()","263fbd45":"getContractUpdatedTimeById(bytes32)","263fbef2":"District0xNetworkToken(address,address)","263ff8b9":"buildTokenId(uint256,uint256,uint256)","26407e36":"calculateSharesInTheRevenue(uint256,uint256)","26409047":"BDACoin()","2640b401":"SetRate(uint256)","2640f62c":"getTokenToEthOutputPrice(uint256)","26413760":"reducePlayersGooProduction(address,uint256)","2641d381":"totalNumberTokenSold()","26423259":"viewCoinSupplyAndFunding(bool)","2642567e":"coinData(address)","264282f2":"markTokens(address,uint256)","26428430":"_deleteInt(bytes32)","2643fc13":"spermlordReq()","2644f9f8":"getAssetsOwners(uint256)","26452036":"InitCountry(uint256,uint256)","264534be":"OMC(uint256,string,string)","26458beb":"firstPreSaleDate()","2646754d":"TestTokenA()","2646b176":"getPaimentStatus(address,uint256)","2646bce6":"LogWinner(uint8)","2646bfcb":"pay(uint256,uint128,address,bytes)","26470ae4":"getBonusFactor(uint256)","26476204":"stake(address)","26483bcd":"tokenMultiTransfer(address)","26484a44":"start3XPhase()","26487265":"contractExecuted()","26488531":"banMember(address,string)","2648a7e2":"EtherRedeemAccepted(address,uint256)","26493a6f":"setAllocateAgent(address,bool)","26496cab":"Milestone_IcoSuccessful(string)","2649cb10":"pNumberOfLockedTokens(address)","2649d62e":"multiMint(address,uint256)","264a3edc":"setPolls(address,address)","264a6d10":"get_next_asset_document_from_document(bytes32,bytes32)","264ae918":"withdrawChannel(address,uint256)","264b2b8e":"returnBalance(address)","264c22bb":"getAmountOfGene(uint256)","264c2cdc":"generateRandomNumber(address,uint8)","264c8e9a":"whatWasTheVal()","264caf14":"addVestor(address,uint256,uint256,uint256)","264d26e1":"ICO_CAP1()","264d7797":"tokensBought(address)","264dac0f":"endBorrowAgreement(string,uint256,uint256)","264e3018":"EtherDeltaHandler(address)","264f28fe":"getOwnerDeposit()","264f5718":"rondaSilla()","264f630d":"DonationReceived(address,uint256)","264faeb8":"getReportsCounter(uint256)","26500c84":"ResolverNode()","265028c2":"GetMaxBuyIn()","2650a47c":"withdrawEther(uint256,uint256)","26529836":"ADVISER_STAKE()","2652b4a5":"UDA()","2652c0f4":"hasVerifiedAttributeValue(address,uint256)","2652c757":"submitBracket(bytes32)","26532df8":"subZero(uint256,uint256)","2653ab19":"getMC(uint256)","2654e624":"ResumePayment()","265580f5":"setRegistryExecID(bytes32)","2655dd0b":"storeId(address,address,uint256)","26563b40":"whitelistManager()","2656455f":"claimEthFor(address)","2656b77d":"addToBattle(uint64)","26571388":"xpaExchange()","26591e79":"BONES()","2659d8ef":"setExchangeFormula(address)","265a3afd":"registerBase(bytes32)","265a8636":"_mintFish(address,uint32,uint8,uint8,uint8,bytes16)","265af6d1":"withdrawFundsAndPayRoyalties(uint256)","265b3e6c":"calculateIssueGoldFee(uint256,uint256,bool)","265b5d93":"getMaxLockAmount(uint256,uint256)","265c920f":"setBonusParams(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","265cdd88":"Bet(address,string,uint256)","265cfbbc":"Emitter()","265d900b":"wtech()","265dcbd3":"StandardTokenWrapper(address)","265f0393":"KryptopyCrowdsale(uint256,uint256,uint256,uint256,uint256,address)","265ffe2b":"ethMin()","26602470":"hashEIP712Message(bytes32)","2660316e":"plyrNames_(uint256,bytes32)","26605772":"renameTulip(uint256,bytes32)","2660b56c":"setData_2(string)","26617c28":"_setPaused(bool)","26625e46":"formatDecimals(uint256)","26627d80":"third_whitelistSupplier()","266361f5":"getLottoData(uint8)","26637579":"_removePlayer(uint256,uint256)","26638a38":"spin(int256)","2663a4ed":"byteToLower(bytes1)","26654d57":"refundParticipant(address,uint256,uint256,uint256,uint256)","266578d0":"_isRateActual(uint256)","26657c77":"Validate(string,string,string)","26663203":"withdrawFromEscrow(address,bytes32)","266710ca":"manualUpdateBalances_only_Dev()","266716f6":"GTSToken()","2667f407":"__proxy(address,bytes)","2668748d":"applyAuditorsCheckUpdate(address,address,uint64)","2669268b":"FUC(uint256,string,string)","266987ef":"p2pLocker(address)","26699576":"playSystem(uint256,address)","266b059e":"setSendAmount(uint256)","266b2eb5":"Conserve()","266bd375":"MyPizzaPieToken()","266c2132":"_prand()","266cc170":"Y2J()","266ce248":"createPlayer(uint16)","266cf109":"record()","266d7bda":"lockupEndTime()","266d8299":"DriveholicToken()","266fc436":"producedSilverCaps()","266fc5d5":"totalContributorsProfit()","2670bdf0":"setERC777(address)","2670cc14":"transfekbolPlutocrat(address)","267127ec":"getTokenSettings()","267177eb":"sendPayout(bytes32,uint256)","2671b61d":"OfferRouting(bytes32,bytes32,uint256,bytes)","2671e253":"resetTraps(uint256)","26728b14":"rewardPXL(address,uint256)","2672b3e2":"SplitterEtcToEth()","2672c952":"seed_coins()","26735c06":"TOTAL_POOL_COMMISSION()","26736363":"APRInflationToken(uint256)","26741c88":"IcoMessage()","26744071":"WLCoin()","26745909":"PRNG_Challenge()","26746f5f":"updateGenerationRatio(uint256,address)","26748804":"BlockPoints()","2674899b":"getSaleHour(uint256)","267490aa":"turnOnPresale()","26749ad7":"approvedContracts(address)","267502c9":"setAquarium(address)","2675c123":"CloseContract()","26760d1d":"setMaxTms(uint256)","26767298":"RimuoviMiner(address)","26767cfe":"shareProfits()","26768b83":"_emitDestruction()","2677ef1b":"_seal(address,address,uint256)","26782247":"pendingAdmin()","267822c1":"finalizeChangeBurnBounds()","267835a4":"_removeBurner(address)","26798494":"EusdContract(address,address,address,uint256,uint256,uint256)","26798680":"toReal(int216)","267acd6c":"getPricesPerInterval(uint8)","267b6922":"entries(bytes32)","267c4ae4":"exists()","267c8507":"authorizeManager(address)","267f20a2":"_transferTo(address,uint256)","267ff78c":"approveRequestUnpause()","26811c09":"NVBToken()","26815de3":"updateGoldPrice()","2682644f":"PURCHASE(address,uint256)","26826bf8":"setImage(bytes)","2682a0ac":"CrowdsaleTokenExt(string,string,uint256,uint256,bool,uint256)","26834988":"numListed()","26839e53":"getUintValues(bytes32)","26839f17":"depositEther(uint256)","26843251":"presale1_startdate()","268451a2":"testFail_set_price_unauth()","26848a86":"setPicture(string)","26848b68":"checkCrowdsaleBalance()","26866160":"secondsBetweenReadings()","2687c645":"contributeInternal(address,uint256)","26881518":"setupFee(address)","2688454a":"U()","268855a4":"ParsecCrowdsale(address,address,address)","26887303":"TourCashStandardToken(uint256,string,uint8,string)","268959e5":"removeAdmin(address,address)","268a4559":"competitionStatus()","268b0459":"getRecordBalance(address)","268b5344":"PlanetOfOwner(address)","268b946c":"toUint8Throw()","268bb78e":"propose(address,bytes,uint256,uint256)","268bc65d":"signatureDropMultipleAmount(address[],uint256[])","268c969a":"emergencyDrawingReset()","268cb5f7":"queryCost(address[])","268d50fe":"ownerSetHouseEdge(uint256)","268da061":"CRFtoken()","268e7075":"toBytes2(bytes)","268ea7f6":"ReInvest(uint256)","268eb055":"setDescription(uint64,bytes)","268ef7e8":"holdAddress1()","268efdaf":"StdInt64(int64)","268f1153":"changeState(uint8)","268fe426":"dailyReset()","2690f0d5":"foundationLock()","269106e9":"dayCycle()","2692281d":"requestChangeBurnBounds(uint256,uint256)","2692de22":"sendAllFunds(address)","2693c150":"getPlayersTickets(address)","2693eca0":"devSFTDestination()","2693ed9b":"calcTokenSold(uint256)","2693ee80":"bonusPool()","269445db":"phase_6_rate()","26949220":"withdrawWonCosFromGame(uint256,uint256,uint256)","2694f6bb":"Log1_fnc(address,bytes32,uint256,string,string,uint256,bytes1,uint256,uint256)","26961b8c":"Token99chain(uint256,string,uint8,string)","26965dad":"deployStepOne()","269695fe":"groomVow()","269714dd":"maximumTarget()","269724ef":"assertEq6(bytes6,bytes6)","26976e3f":"upgradedAddress()","26987b60":"currentIndex()","269975d0":"GameDetails(uint256)","2699a7e7":"setPOOL_edit_31(string)","2699c808":"tradeOption(address[3],uint256[3],uint256[2],bool,uint256,bool)","269a7c3f":"buyAndTransfer(address,address)","269aacc8":"getDividendPayout(uint256,uint256,uint256)","269b0737":"DaoCasinoToken()","269c4bca":"viewFoundersTokens()","269c6ece":"lockedTwoHasEnd()","269cdaac":"withdrawLockedTokens()","269de5a0":"EpicExchange()","269e4f3c":"refundWei()","269eb58c":"setFeeFromPayer()","269ecc6d":"backersAddresses(uint256)","269ecf28":"submitBuyOrderWithPosition(bytes32,uint256,uint256,uint64,bool)","269f4663":"approveMintTokens(address,uint256)","269f96c9":"presaleSoldTokens()","269fe82e":"calcBurnAmountFromFeeBurner(uint256)","26a09392":"addSecondaryAddress(address,address)","26a1529e":"amountOfStakeReturnedOnCancellation(uint256)","26a18375":"setAvailability(bool)","26a21575":"tokenRaised()","26a26f71":"TgeTeamReleasingScheduleContract()","26a3bd4e":"subtractBalance(address,address,uint256)","26a3f45d":"initOwner1(address)","26a4861c":"CROWDFUNDING_PERIOD()","26a49e37":"price(uint256)","26a4c847":"maxLendingItem()","26a4e8d2":"setTokenAddress(address)","26a52019":"agentMakeOrder(address,address,uint256,uint256,address)","26a65c10":"createDigitalArtFee()","26a6dfed":"toogleTransfers()","26a7985a":"getMaximumCallGas()","26a82e8b":"autoPreSaleSuccess(address,uint256)","26a8d1e5":"_changeManagerImpl(address)","26a934f5":"minResalePercentage()","26a9408c":"returnTokensFromHoldBountyAddress(uint256)","26a9de53":"verifiedTransferFrom(address,address,uint256)","26aa101f":"isTokenRegistered(address)","26aa7c58":"addBuyer(address,uint256)","26ab378b":"addMood(string)","26abc9ab":"CmctSale(address)","26abfe09":"burnUndistributed()","26ad3abc":"startTimeStage3()","26ad7b40":"_doesEveryTokenHaveLockupPeriod()","26ad8d1b":"getPositionStartTimestamp(bytes32)","26ae27d6":"lonmemay()","26aeba91":"FarziTokenSale()","26aebfac":"delPack(uint8,uint128)","26afe980":"queryOracle()","26b238d8":"doom()","26b3293f":"deposit(address,uint256,bytes32)","26b387bb":"pendingReturns(address)","26b3a6f8":"SelfKeyToken(uint256)","26b41613":"processFunding(address,address,uint256,uint256)","26b45b09":"rateTier4()","26b4ce7f":"NP(uint256,string,string)","26b51c8c":"finalBlock()","26b52faf":"firstWithdrawAmount()","26b66cb7":"amendedEarlyPurchases()","26b6c0b4":"settingsSwitchTransferAccess()","26b7d803":"getTotalBuyCount()","26b7fe35":"GainStuff(address,uint32,uint256)","26b85ee1":"myAddress()","26b85f0d":"mininumContributeUSD()","26b916b4":"Set_Interest_Rate(uint256)","26b92a0e":"SomniumToken()","26b93939":"Jokercoin()","26b9ce13":"setTransfersEnabled(bool)","26ba1c19":"addBagAndGiftAtTime(uint256,address,uint256)","26ba2e47":"paidETH(address)","26ba4319":"setDirector(address)","26baca1c":"getStats2()","26bca0f8":"get_my_info()","26bceb59":"mul256(uint256,uint256)","26bd4d96":"adPriceMultiple()","26bd78b9":"LogEvent(uint256,address,bytes4,bytes,uint256,uint256)","26bdd20b":"getNominatedMediator()","26bdd814":"refundPresale()","26bf02cf":"getBaseLevelUpFee()","26bf2051":"KickCommitteeVoteEvent(address,address)","26bfcde0":"GMCToken()","26bfd35c":"rewardAD()","26c009cb":"privateIcoSold()","26c0ad3a":"allowRefunding(bool)","26c19eba":"readValue(bytes32,uint8)","26c1e750":"planets(uint256)","26c21722":"getwithdrawEtherToAddressValue()","26c2bcb4":"checkBenefit(address)","26c30b50":"BITS(uint256,string,uint8,string)","26c32ff5":"demi(uint256,string,string)","26c387fa":"testFail_mint_without_add_authority_to_controller(int256)","26c3d6f8":"get_deposit_term(address,uint256)","26c435a9":"totalUsdFunding()","26c43d8f":"hodlerTotalCount()","26c47909":"SXCToken()","26c4b863":"XIOToken()","26c4fa3d":"setOfficialGameUrl(string)","26c5c154":"employeeAddress()","26c6d361":"FanCoin()","26c7edaa":"flip4(bytes)","26c81320":"lastgamewinner()","26c93389":"removeFreezableAddress(address)","26c989df":"holdBalance()","26c9959f":"LoveToken()","26c9bc42":"setTokenInformation(string,string,uint256)","26c9e547":"bestow(bytes32,uint256,address)","26cb2257":"outRate()","26cb83b9":"setDescrutionContractAddress(address)","26cbb8ff":"inviterRegister()","26cbe6f5":"getHeroAvailableAt(uint256)","26cc2256":"blockRewardAmount()","26ccd77a":"withdrawStuckEther(address)","26ce3da0":"collectRefund()","26cee3a7":"getPlayerId(bytes32,bytes32,address)","26cf53b9":"BTL_PERSIAN()","26cf660d":"trustedOrderbook()","26cf9165":"pixelgrid()","26cfc76f":"TriPinCoin()","26d0d75a":"ResolutionProposals(uint256)","26d111f5":"note()","26d29ce0":"refundBid(uint256)","26d2b840":"addDadRelation(address)","26d2cba5":"updateMetaData(bytes32,bytes32,bytes32,uint256,bytes32,bytes32)","26d2eb11":"stopPostIcoAndBurn()","26d312f7":"sendWebGiftToken(address,uint256)","26d3325d":"getExpectedPayment(uint256)","26d3bde5":"execCUSEOption()","26d3df61":"deedsOf(address)","26d3e7e8":"inititalSupply()","26d3e889":"testCreateWithParentsForeign2()","26d3ed0a":"isSpentCustomerTxPaymentForMCW(address,bytes32)","26d541b0":"totalPlayerCount()","26d64f3b":"readTeam(bytes32)","26d6eca3":"retrieveReward(uint256)","26d7b3b4":"unRegister()","26d83db8":"LoveYToken(uint256,string,uint8,string)","26da8e17":"ownerUpdateCostToCallOraclize(uint256)","26db3c0a":"tokenIssue(address,uint256)","26db7648":"proposedVersion()","26dcbcfc":"catPaymentCollector()","26dd1510":"pixelblockPrice(uint24,uint24,uint24,uint24)","26dd860a":"mintUniqueTokenTo(address,uint256,string)","26ddaebc":"getPriceWithBonus()","26dec45e":"getUserUsername(address)","26defa73":"addAuthority(address)","26df61f6":"permittedContractsCount()","26dfb6b4":"advteamPool()","26dfe583":"partialDivest(uint256)","26e010c8":"minInitialMarginAmount()","26e137c2":"getInterfaceImplementationStatus(address,bytes4)","26e23485":"renamingCostsPerChar()","26e33670":"NewQuiz(string,bytes32)","26e41a3e":"airdropTokens(bytes32,address[],uint256)","26e43db5":"TransferSell(address,address,uint256,string)","26e501a8":"BitonlineStore()","26e56c05":"SaleCapReached()","26e5ab38":"changeMaxWithdraw(uint256)","26e5afdf":"Yinfiniti()","26e5b0be":"stopMulti()","26e6050d":"setParamsIco(bool)","26e6074b":"frozenBalance()","26e683fb":"NotitiaToken()","26e72d31":"resetCurrentRoundSales()","26e770e9":"Information()","26e77179":"PaymentRefunding(uint256,address,uint256,string)","26e80650":"upPlayerRound(address,uint256,uint256,uint256,uint256,uint256,uint256)","26e89689":"applyForCertifition(address,string,uint256,string,uint256,bool)","26e8cd23":"bobMakesEthDeposit(bytes32,address,bytes20,bytes20,uint64)","26e90775":"calculatePrize(uint256,uint256,uint256)","26e97fce":"allowMint(address,uint256)","26e9fd9e":"remove(bytes20)","26ea66bf":"Mortal(address)","26ea74e2":"approvedDividendsOf(address)","26ea7ab8":"changeadmin(address)","26ea9268":"FEE_SELECT_MAX_VALUE()","26eaee92":"devReward()","26ebc8af":"UserAuthorizedForToken(address,address,address)","26ebe0bf":"totalCentsGathered()","26eca77c":"HelloGoldRound1Point5()","26ed274e":"decreaseBurnApproval(address,uint256)","26ed794b":"mobilinkTeamAddress()","26eda1ac":"putMessage(string)","26ef8ba1":"putEth()","26f08aec":"setotherchainstotalsupply(uint256)","26f09042":"testThrowNoFreeTokens()","26f1069f":"approvePresale(address)","26f21080":"allowedToTransferOf(address)","26f2458a":"RequestP(bytes32,bytes32)","26f35ff2":"activenessUpgrade(uint256,uint256)","26f3ceaf":"TSToken()","26f4739e":"LogBuyTokens(address,uint256,uint256)","26f489f6":"_updateCardPerkText(uint256,string)","26f4b3de":"userTakeOrder(address,address,uint256,uint256,address)","26f590f6":"setAttribute(string,string,bytes)","26f59b8b":"ProICOHardcap()","26f6ec3b":"getCities(uint256[])","26f743d0":"createGuess(uint256,uint256,uint256,uint256)","26f78835":"XXXChain()","26f86791":"_indexOf(string,string,uint256)","26f8abf9":"getRankOnePlayer(address)","26fa9082":"Enumivo()","26faae42":"addChild(address,bytes32,bytes32)","26facdb1":"TeamTokenDistribution(address)","26fae0d3":"setMaster(address)","26faf1e9":"SVLightIndex()","26faf9c2":"EatMeCoin(address)","26fc4c7f":"returnTokens(address,uint256)","26fd8422":"calculateEggBuy(uint256,uint256)","26fdb484":"OwnershipRevoked(address,address)","26fe18e2":"setMintingOracle(address,address)","26fe2024":"newRate(string)","26fe7cf2":"createStar(uint8,uint16,string,string)","26fe9951":"delegatedFrom()","26feba74":"MaorTestCoin()","26fed988":"addCancelledOrFilled(bytes32,uint256)","26ffa189":"setEnableWhiteList(bool)","2700615c":"_getShipInfo(uint256)","27018631":"icoBonus()","2701d40f":"ForSale()","2701ebd8":"NDT3()","27028aae":"voteOnBounty(uint128,uint256,bool)","27029e83":"BurnToken(address)","2703506f":"CouponDeposit(address[2],uint256[8],uint8,bytes32[2],uint256)","2703e545":"projectInfoPublic(address)","2704355c":"setGenesisCallerAddress(address)","2704e8e9":"addRemovableIdArrayItem(address,uint256[],string,string,string,address)","2704ead4":"_isValidSkin(address,uint256,uint256)","27053417":"_updateSeed()","270537c0":"lockReserveTokens(address)","2705ce6a":"setAuditorDelegate(address)","27066ebb":"getOwnedTokensIds(address)","27071f6a":"_tokenOfOwnerByIndex(address,uint256)","270835d0":"allocateBid4a(bytes32)","2708a710":"MintHelper(address,address,address)","2708db73":"requestLeave(uint256,string)","270a3856":"startDist()","270a5420":"buyFST()","270a8ef7":"existingMarketOrder(uint256)","270abf36":"getChickenAmount()","270ba309":"getRegistryDataInitialized()","270bb8ad":"setImmigration(address)","270bfc07":"fundingAccount()","270cf206":"ENSReverseRegister(address,string)","270cfee1":"getTokenAccount()","270d13fb":"isCoinIdUnique(uint16)","270dc9fd":"changeName(string,uint256)","270e4cf0":"buyerAddressTransfer(uint256,address,address)","270ef385":"CLAIM_AMOUNT()","270f611f":"burnBalances()","270f7219":"getJntController()","270f9359":"Exploit(address)","270fdd1a":"GricCoin()","27120de9":"numberOfStarsReserved()","27121069":"verify(bytes,uint8,bytes,bytes)","27121b76":"claimDailyLoot(uint256)","2712d916":"setSanTTTCost(uint256)","27132be6":"getCustomBuyerMappingCount(address)","27136e46":"changeTransactionService(address)","2713a1b4":"getUserWithdrawnBalance(address)","27150f01":"devFeeSize()","27151526":"nextBid()","27158b7b":"MFToken()","271619fb":"CreateContract(int256,int256,uint256,uint256,int256,address,string,uint256,int256,string,uint256)","27164f15":"getBuyOrdersInfo()","2716783d":"distributeERG(address[],uint256,uint256)","2716baa6":"startContruibute()","271761c0":"EventSuccessfulTraining(uint64,uint64,uint64)","271781ad":"getRestSumStageICO()","2717cc7c":"ParticipatedInVoting(address,address,bytes32,uint256)","27180e42":"wantItMoreThanYou(uint256)","27187991":"setEtherPrice(uint256)","271a50db":"setAgonFight(address)","271af8c1":"tokenCollector()","271b3e8a":"snakemasterReq()","271b5311":"getValidateSignatureAddress(address,string,uint256,uint8,bytes32,bytes32)","271bac4a":"setBonusPhase(bool)","271c34d7":"denyProposal(uint256)","271cacbf":"batchAddToWhitelist(uint256,address[])","271cd760":"getPackageDb()","271d9090":"HenryToken()","271dd15b":"getWinNumberAddress(uint256,uint256)","271dec50":"Invested(uint256,address,uint256,uint256)","271df6e5":"canLotteryFree()","271f88b4":"setAmount(uint256)","271fe8be":"buyNormal(address)","2720e4f6":"LC()","27213345":"totalSupplyToken()","2721a114":"queryWinner(string)","2722692c":"lastBlockSet()","2722c043":"raiseEventIfMinted(address,uint256)","27234ecc":"takeBalance(address,address,uint256,address)","2723639b":"getPixelAreaColor(uint256,uint256,uint256,uint256)","2724312a":"Micropayment(address)","27243160":"bookmark(string)","2724e032":"manualEndDay()","27258b22":"isRegistered(bytes32)","2726403a":"testCanTrade(address,address)","2726a530":"getHodlHasBeenWithdrawn(uint256)","2726b506":"getDeposit(address,uint256)","2726f061":"commitVotes(address[],bytes32[],bytes32[],bytes32[])","27270550":"swapAble(bool)","27275a35":"SuretlyToken()","2727d018":"PlusPayLite()","272870ac":"pausable(bool)","27295d7c":"updateMaxPhase2(uint256)","2729f44e":"addTxToRegistry(bytes32,bytes32,uint256,uint256,uint256)","272a33e8":"allocateBid2(bytes32)","272a3e16":"PlayerWon(uint256)","272a847f":"HAICrowdsale(uint256,uint256,uint256,address,uint256,uint256)","272ae0b5":"MIMIMUM_CONTRIBUTION_AMOUNT_PREICO()","272caf69":"stakeContractAddress()","272cda88":"EternalDB()","272d20e7":"amount_direct()","272e20fa":"__abort__()","272edeac":"currentMineTokenAmount()","27301964":"withdrawDevTokens(address,uint256)","2730e4a2":"_arrangeMasternodeFlow()","273123b7":"delBot(address)","27315b5f":"Settlement(address,address,uint256,string,string)","27329380":"getRecentPlayersCount()","27329b05":"enableBot(address)","27332624":"_lottery(uint256,address,address)","27341c8a":"isEmpty(string)","2734242b":"BunnyToken()","273696cd":"SetImplementation(address,address)","2736a558":"removeBackdoor()","2736f6d9":"setTokenAndRate(uint256,uint256)","2737033f":"initialize(address,uint256,uint256,uint256,uint256,uint256,address,address)","27374015":"functionFive()","27378684":"price4()","27380c2c":"updateAngelCardSeries(uint8,uint64,uint64)","2738154e":"checkRokBounty()","2738bf4d":"addLeaderboard(string,string,uint256)","2738ed25":"Player_Bettings(uint256,uint256)","27393390":"setTokensMultiplier(uint256)","273a041c":"_self()","273a5729":"eligibleTokens()","273afe15":"ParisToken()","273b1dd3":"RealMadridvsLiverpool()","273b1fb3":"betbucketOne()","273b465b":"verifiedAgeOver(address,uint256)","273ba6bb":"ICO()","273bc3c9":"numberOfThrones()","273ca81c":"getMegaBalance()","273cb593":"isMasterOfCeremonyRemovedPending()","273cbaa0":"getTokenList()","273cc2a5":"depositOpen()","273dd51f":"_distributeHorse()","273e2c78":"F2UPay()","273ea3e3":"incrementNumber()","273f1de7":"paySellerFee(bytes32,address,uint256)","273f4940":"set(bytes32,uint256)","273f9ace":"getNumbers(bytes32[])","273f9bed":"signedTransferFromCheck(address,address,address,address,uint256,uint256,uint256,bytes,address)","273fd520":"EthlanceFeedback(address)","2740509d":"urbitTeamTokensVault()","2740e64b":"getInitializeParentPayoutDistributionHashValue()","27413437":"grantFounderToken()","2741876a":"totalPresses()","2742d511":"setWhitelistedStatus(address,address,uint256)","27436b59":"getCarCount()","274465b4":"payForMyself(uint128)","27457b3b":"getMyInventory()","27458664":"enableTokenMinting()","274748e6":"setInactivityReleasePeriodForToken(address,bool,uint256)","2748503f":"ChangedOwner(address,address)","27486a7c":"combineCards(uint256[])","2748d7e4":"claimPlotWithData(uint256,string,string,string,string)","2749bd81":"getTimestamp(address,uint256)","274a1f29":"setNextLotteryTTMTokenId4(uint64)","274a9b1c":"addressToEtherContributed(address)","274acb35":"add(uint96,uint96)","274b1615":"keyValidations(address)","274b3df4":"deposit_eth()","274b9bc5":"ETHx2()","274bc107":"test_threeValidEqBytes()","274c343a":"HTCCToken()","274c7922":"privilegedAddress(uint256)","274db4d6":"_price_tokn_PRE()","274ed288":"debtBalanceOf(address,bytes4)","274f97bb":"buyReply(uint256,uint256)","274faa9f":"minContributionUnits()","274fadf6":"updateServiceDescription(address,uint32,string)","274ff7ce":"burnFrom(uint256)","27506099":"getCountPlayersOfOwner(uint256,address)","27507458":"isLive(uint256)","2750fc78":"setIsActive(bool)","275103fd":"hault()","27521702":"mint(int256,address,uint256,bool)","2752808a":"CAPcoin()","27538e90":"getCapabilityRoles(address,bytes4)","2753d7f2":"artworksFactory()","2753f254":"workedTodayInSeconds()","2754ff69":"test_2_ensureProposalExecution_increaseBlocksBy100()","2755a13b":"forceClose(uint256)","2755cd2d":"tip()","275601f6":"getAllProviderParams(address)","27566b80":"transferCollectedEther(address)","275676cf":"ClassicVolkswagen()","27567c4c":"setIsPoop(string)","2756d38a":"IonChain()","27571087":"getBonus(bytes32,uint8)","2757a07c":"SSDDTT(uint256,string,string)","2757e976":"transferredIndex()","2758743c":"LATINOToken()","27589224":"minBuyingRequestInterval()","275893a9":"updateMaintenanceAddress(address)","27593eee":"ChangedName(address,string)","27597f0a":"costForProductCycles(uint256,uint256)","2759ea4a":"lookupSprite(uint256)","275a1334":"buySellPrices()","275a329a":"BCASToken(uint256,string,string)","275a92cf":"TokenPurchase(uint256,uint256,address,address,uint256,uint256)","275acbe3":"ln(uint256,uint256,uint256)","275b6eb0":"calculateSeedSell(uint256)","275babee":"getRareInfo(uint256)","275be02c":"MRBLToken()","275bf230":"addAddressToAccount(address,address)","275c82ca":"GasUsed(uint256)","275cb687":"setNextPoolPercentage(uint256)","275ccb13":"computeLeaf(uint256[],uint256)","275d60bc":"getReturnAddress(address)","275e2d3f":"st4ckCount()","275e2f86":"MORCoin(uint256,uint256,uint256,address)","275e5da5":"probe(address)","275f3d92":"view_readyTime(address,address)","27608c24":"unsoldToken()","2760c57e":"lastPing()","276184ae":"erc20Address()","2762484a":"SBIToken()","2762cf10":"contract_transfer(uint256)","2763d8fb":"FabCoin()","2765faae":"MaximalInvestmentTimeTresholdChanged(uint256)","276605bc":"updateFundingStartBlock(uint256)","27669781":"emitInfo(uint256,uint256,address,uint256,uint256)","27678dca":"getHWCAddressCount()","27687d34":"advisersTokenTimelock()","276927c5":"sellSpaceship(uint256,uint256)","2769b96b":"updateItemPrice(uint256,uint256)","2769c89a":"setGameStartTime(uint256)","276a28a3":"isTokenLocked(uint256)","276b94e1":"copypaste()","276bf637":"isTimedout(uint256,uint256,uint256)","276c9d0a":"balanceOfOld(address)","276cd2e8":"BTTPERETH()","276e3968":"bits(uint256,uint256,uint256)","276e6472":"deleteById(string)","276ebc6a":"ChargeTest()","2770a488":"transferWithIndex(address,uint256,uint256)","2771083f":"setSpreadPercent(uint256)","27729e93":"openLottery(uint8)","2772dffd":"votes(bytes8)","27731e77":"setCCH_edit_9(string)","27734225":"getCommitteesNumber()","2774d052":"mintPresell(address,string)","277576ca":"theTurn()","27757c49":"isVariation()","2776a859":"computeResponseSecondHalf(uint16)","2776b163":"setstoredaddress(address)","27773ba2":"addrAirDrop()","27782e42":"refreshActiveShareholdersArray()","27783050":"getEntryHash(address,uint256,bytes32)","27793f87":"outcome()","277942db":"marriageLicenceImageIPFShash()","27796092":"t4tToken()","2779ea96":"addPostOnBoard(address,address,address)","2779eb52":"setUserRank(address)","277a6889":"calculateInterest(uint32,uint256)","277ad1f6":"amountSellForOneEth()","277ad5d8":"secondRoundMayDiscount()","277ad6d4":"PreSaleResumed()","277b2db6":"getPlayerVaults()","277b6527":"targetCrowdsale()","277b8ffc":"getBeneficialAddress()","277ccada":"unlistTrophy(uint256)","277ccde2":"getHKGPrice()","277d4725":"getEthereumToken()","277e1b16":"changeMaxDonationLimit(uint256)","277e1de7":"transferAccessory(address,address,uint64)","277e268e":"testFail_set_label_unauth()","277ea83d":"getTrustPlatform()","277f6331":"ETVRToken()","277fc0e9":"getSignature(address)","277fc17d":"daysToSeconds(uint256)","277fef99":"transferPoint(uint32,int256,address,bool)","27806a16":"DoxCoin()","2780d22b":"getMigrateMarketInFromNiblingCalled()","27810b6e":"burner()","27815883":"_setHairValue6(uint256)","27816235":"onSaleEnded()","27816932":"AdaptableToken(uint256,uint256)","2781c3d1":"ownerSetdiceRollAddress(address)","2782ca8d":"MINIMUM_PURCHASE_IN_USD()","27836f77":"setImageData(uint256)","2784ad48":"computePayment(uint256,uint256)","2784d868":"getMiniPoolEdit_2()","2784e3f3":"refundVotingTokens(address,address)","27854452":"allocateAgents(address)","2785ed21":"LogCertificationDocumentAdded(address,bytes32)","2785fb98":"getContributionETH(address)","27860587":"TXToken()","27869c57":"gluon()","2787fac2":"LordCoinPreICO(address,address,uint256,uint256,uint256,uint256)","27880e1f":"KyberNetwork(address)","2788f4f3":"OraclizeCallback(bytes32,string)","2789192f":"isConfirmedSettingsRequest(uint256)","27895f13":"_advanceClock(bytes32,uint256)","27899ce2":"allowNewReceiver(address)","27899d9b":"LGOToken()","278a3684":"advisorAmount()","278a4c4f":"setMasterToReferral(address,address)","278a5e7c":"cancelScript(address)","278ab692":"startDispute(address)","278af72c":"isSaleClockAuctionStorage()","278b8c0e":"cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","278bb4a2":"EthealDeposit(address,address)","278bee92":"_receiveMakePlant(address,uint256,uint256)","278c284c":"CrowdsaleToken(string,string,uint256,uint8)","278c3030":"phase_2_Time()","278c688e":"getBackToken(uint256)","278cc714":"getUsablePlayerFibokens(address)","278d6e5b":"funcArrayInArguments(address[],address[])","278d818c":"setMaxRankingSpots(uint8)","278d9637":"limitTransfer()","278e07ce":"setStatus(address,uint8)","278e72da":"_destroy(uint256)","278e9d03":"testMemoryIntegrityCheck33Bytes()","278ecde1":"refund(uint256)","278f05ba":"SolomexCrowdSale()","278f2ab8":"deposit(bytes32,uint256,uint256)","278f49b9":"SetupRaffle(string,string)","278fcffa":"accountsLastClearTime(address)","278ffa13":"confirmTopUpLimit(uint256)","279029b3":"remainingARXSupply()","27904ee0":"getRabbitMotherSumm(uint32)","2791cb17":"setClientLastSupplyID(address,uint256)","2792949d":"BTC()","2792e765":"transferCroupier(address)","27939ea2":"issuerReservedMaximumPercentage()","2795348d":"KittenSelfDrop2()","279586f3":"AltBuy(address,uint256,string)","27960c5f":"validateEndowment(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","279616fe":"TransferDissolved(address,address,uint256)","27962fc1":"tokensAmount(uint256)","27970ea1":"updatePlayerRecommendFund(address,uint256,uint256)","27972584":"MintRestarted()","27972b99":"StarterToken()","27972e8f":"GRVToken()","27979b35":"genLevelExpGain()","2797e0c3":"getInitBlockNum()","27987533":"defaultResolverChanged(address,address)","2798cecd":"requestData(address,uint256,uint256,bytes32,address,bytes4,bytes32,bytes)","2798d1b2":"my_token_balance()","2799276d":"totalItems()","279a34f1":"switchSaleStage()","279a475f":"TJToken(uint256,string,uint8,string)","279aa01f":"getManualAddress(uint256)","279b4e76":"createAuction(uint256,uint256,uint64,uint256)","279b9562":"initIntervals()","279b9c7b":"HJToken()","279bad16":"fuel()","279c7425":"getTokensOwed(address,uint16)","279c94c0":"admin_add(address)","279cea35":"execScript(bytes,bytes,address[])","279ddc64":"SetBankerCandidate(uint8,address)","279e02a0":"getMemberDividendsAmount(address)","279e0912":"getDownloadPrice()","279e1c43":"_createCollectible(uint256,uint256)","279e79b5":"ZebiCoinCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","279f5d31":"pop1()","279fdf6d":"trustedVault()","279fdf96":"setPresaleMarketAddress(address,address)","279fe967":"maxEthCapSellInFp()","27a030eb":"getRandomLotteryTicket()","27a06733":"setKycRequirement(address,bool)","27a099d8":"getOperators()","27a0d669":"getImplementation(string,string)","27a1a414":"allowedLocks(uint256)","27a1d948":"doubleDown(uint256)","27a1f35a":"setOpenStatusEgg(uint256,bool)","27a21061":"to_start_ico()","27a2aee2":"Commission()","27a3181d":"price2()","27a3fe41":"getMintLimit(address)","27a49cbe":"BankrollLending(address,address)","27a5428b":"setLevel(uint256)","27a5b3bc":"transitivePath(bytes32,bytes32,bytes32)","27a5c7c6":"voteDecline(uint256)","27a5e952":"testDecimalsUsingDeployedContract()","27a69644":"checkTransferDelegated(address,address,uint256,uint256,uint256,bytes)","27a6a7de":"newMinimalEthers(uint256)","27a75474":"salvageNotAllowedTokensSentToContract(address,address,uint256)","27a7b827":"updateExistingMember(address,uint256)","27a7c883":"transferWithExtra(address,uint256,bytes32,bytes32)","27a822df":"smart()","27a82833":"_supportsInterface(address,bytes4)","27a8890e":"withdrawedCoummunityCounter()","27a910dc":"ownerWithdrawETH()","27a936d7":"BlockchainBattleground()","27a93cce":"playerGetPendingTxByAddress(address,address)","27a9ec0f":"IDice()","27ab9f20":"botIndexToOwner(uint256)","27ac36c4":"reserveTokens()","27ac4b70":"getNamespace()","27ac7934":"transferPAIReceiptOwnership(address)","27ac9e5f":"periodNow()","27acfff9":"badgeFreeze(address,uint256,uint256)","27add9fb":"VoxelRepainted(uint8,uint8,uint8,uint8)","27ae587c":"MAX_TOKEN_REWARDS()","27ae949f":"buyFST0(address)","27aeafb7":"AuditorUnregistered(address)","27aedd10":"Founders()","27aeeaa8":"AxiePresaleExtended()","27af1d98":"disToken(address)","27af7d9c":"assertEqDecimal(uint256,uint256,uint256)","27af9e38":"space()","27b00b3e":"setUpdateState(bool)","27b022af":"MembershipChanged(address,bool)","27b075a7":"FlCToken()","27b0c674":"updateEtherBalance()","27b37367":"parseLoanOffering(address[9],uint256[7],uint32[4],bytes)","27b380f3":"withdrawalRequests(address)","27b3a83c":"buyAtIndex(uint256)","27b3bf11":"claimTime()","27b44a6c":"pendingWeiAmount()","27b4634e":"transmuteTransfer(address,uint256,address,string,string)","27b4e228":"setPoolFeeRate(uint256)","27b55475":"review(string,bool)","27b57aee":"emissionContractAddress()","27b5985b":"addToException(address)","27b5aaf8":"RESERVE_TOKEN_AMOUNT()","27b5db8a":"addPlayer()","27b752b8":"sha3HexAddress(address)","27b7a2f5":"nameRegistryAddress()","27b7cf85":"log(bytes32)","27b7d0a6":"EditDomain(string,string)","27b96df7":"pausePayment()","27b972f9":"getNameOwner(string)","27b9c257":"setRequestProcessed(uint256)","27bb020a":"altarCut()","27bb1db7":"SOPToken(string,string,uint256)","27bb2d82":"_checkPixelIdExists(uint256)","27bb3d0f":"eth_price()","27bb6d8e":"buyoutCost(uint256)","27bbea3a":"setWhiteListAddress(address)","27bc39c0":"submitCanonicalCandidate(bytes,bytes,bytes,bytes)","27bcc9ca":"finalizeConfig()","27bce91b":"betId()","27bd56d9":"sendAuctionQuery(uint256,uint256)","27be1b35":"promoCode()","27bf6568":"authorityBalance()","27bfeaf5":"setGemPrice(uint256)","27c16605":"getBidByProducerAndDay(address,uint32)","27c1f423":"preBuy1()","27c36a47":"specialAllowance(address,address)","27c39749":"test_oneValidEqBytesUint(int256)","27c42050":"buildIdentifier(address,address,address,bytes32,uint128,uint128,uint256,uint32,uint64,uint64,string)","27c4a208":"GSCoin()","27c4bde8":"Planethereum(address,address)","27c5cdea":"test2(address[5],uint256[5])","27c5e534":"mixDNK(uint256,uint256,uint256)","27c67440":"getWarranty(string,string,address)","27c6c720":"privateWallet()","27c725e1":"applyforCetification(string,string,string,string,string,string,bool)","27c78c42":"request(address)","27c7ff61":"noShares()","27c81eb8":"TestDRMK()","27c830a9":"emergencyPaused()","27c8dae5":"getAmountOfLinkerBuy(uint256)","27c96207":"WinnerAnnounced(uint8)","27c97fa5":"deauthorize(address)","27cadd13":"getSides(uint256,uint256)","27cc1fd8":"party_b()","27cca148":"lastClaimedBlock()","27ccdbc5":"setWalletContract(address)","27ccdd0a":"changeServiceReceiptAddress(uint32,address)","27cd0d96":"getLockedAmount_simus(address)","27cd933a":"RequestEvent(address,address,uint32)","27cda9d5":"AcceptsEtheropoly(address)","27cdab06":"fee(bytes32)","27ce5b8c":"getNumberOfOutcomes()","27ce6fa9":"unlockup(address)","27cef820":"hasForgivedChar(string)","27cfe856":"DAY()","27d120fe":"updateTransfer(uint64,uint256,bytes32,bytes32,bytes)","27d1913c":"buyerCancel(uint16,address,address)","27d1c3a6":"transferChamp(address,address,uint256)","27d1f39e":"mastery()","27d21602":"buildings_total()","27d23b86":"receive(address,uint256,bytes)","27d26d6e":"testCannotRedeployANT()","27d272c5":"getFirstBuyersFee()","27d3a8ad":"LogUpdatedComplianceProof(bytes32,bytes32)","27d42fc0":"setReservedWallet(address)","27d511ae":"activateCommunityFund()","27d51979":"getTokenTransferSetCount()","27d6ba21":"getDistributedToken()","27d6c032":"unregister(bytes)","27d6d6e0":"ownership(address)","27d6dfbf":"BITNT()","27d741df":"SALE_END_DATE()","27d7874c":"setCEO(address)","27d795d7":"start_date()","27d8455c":"setMainSaleStartAndEndTime(uint256,uint256)","27d87924":"registerNameXaddr(string,address)","27d8a9e5":"CofounditICO(uint256,uint256,address)","27d8fb97":"removeLaureato(string)","27d93a70":"addFighter(address,address)","27d94182":"MAX_PRIVATE()","27d95c8c":"getContaOuvidoria(uint256)","27d9ac67":"NewMarketMaker(address,string)","27da0078":"SpindleToken()","27da5ca5":"batlordReq()","27dad426":"init(address,string,string,uint8,uint256,bool,bool)","27db9e82":"reevaluateETHPrice(uint256)","27dba183":"getProcessablesSize()","27dba807":"buyWithBonus(address)","27dc297e":"__callback(bytes32,string)","27dd16e5":"paymentAction(bytes32,uint256[],uint256[])","27dd3873":"plantedTime()","27dd941e":"unlockDates(uint256)","27ddbb16":"mnyLeftInCurrent()","27de1a4d":"mintToAddressesAndAmounts(address[],uint256[])","27de1fc9":"fixPlayerCountryString(uint256,string)","27de2459":"HungerCoin()","27de2765":"Assert(bool)","27de9e32":"unbond(uint256)","27defa1f":"onlyAmbassadors()","27df664b":"minPrivateContribution()","27dffba6":"startRegularPhase()","27e056a5":"addMinter(int256,address)","27e07647":"setFundingFueled(uint256)","27e0feaf":"_allocateTokens()","27e10295":"storedProfit(address)","27e152bb":"maxCoinSides()","27e1f7df":"deleteAdmin(address)","27e235e3":"balances(address)","27e2dd48":"getRandomSeed(string)","27e44059":"VReetUp()","27e584d4":"TOTAL_PARSEC_CREDIT_SUPPLY()","27e65007":"min_investment_presale_eth()","27e728ec":"enableCodeExport(address)","27e72e41":"defaultDelay()","27e7c023":"sendTokensToFounders()","27e7e21e":"air()","27e7fe5a":"ONEPERCENT_TOKENS_PER_ETH()","27e8c2d8":"burnUnicornShares()","27e90a7e":"offerBorrowingItem(uint256,uint256,uint256)","27e95f87":"pubkeys2()","27e9a0b6":"files(bytes32,uint256)","27e9b1a0":"getArrLength()","27e9f294":"addItem(string)","27ea06b8":"numberOfTokensLeft()","27ea6f2b":"setLimit(uint256)","27eac914":"cancelAuction(uint32)","27eb95cf":"deathData_v13()","27ebcf0e":"sharesTokenAddress()","27ebe40a":"createAuction(uint256,uint256,uint256,uint256,address)","27ec2c03":"getAvgPps()","27ed31ff":"localityCode()","27ed810d":"setMaxBlockDrift(uint256)","27edf097":"burnPerTransaction()","27eea9cd":"CCCCCToken(address)","27eeefa6":"paymentOnTime(uint256)","27ef89bc":"DEV_TEAM_PORTION()","27ef986d":"ExternalToken(address)","27efc086":"TOTAL()","27f02f74":"core(uint256,uint256,uint256)","27f05e06":"distributeTokensPreIco(uint256)","27f06a6e":"permitChildContract(address[])","27f06fff":"requestFillUp(uint256)","27f12c8e":"registerAsImportingAuthority(address)","27f1bb7f":"prefixedHash2(address)","27f1f521":"Kurecoin()","27f2402b":"acceptSacrifice(uint256)","27f2db32":"finalizeChangeStaker()","27f397a9":"borrowerReturnFiatAmount()","27f39abf":"tokenOwnerWallet()","27f3a72a":"thisBalance()","27f3fb69":"setMachine(bytes32,bytes32,uint256,uint256,uint256,uint256)","27f498c9":"changeTokenSender(address)","27f4b056":"getDemocInfo(bytes32)","27f50a2d":"getDocuments(address)","27f576d1":"withdrawFromReserve(address,uint256)","27f69c37":"roundInvestorInfoByIndex(uint32,uint32,uint32)","27f6e676":"addApprovedGame(address)","27f7be99":"boosterContract()","27f85c13":"setUsdEth(uint256)","27f8ce38":"gamePause()","27f8d7ba":"setEndPreICO(uint256)","27f93e59":"createContractMeme(uint256,string)","27fa35c3":"getMarketsCount()","27fb1da7":"ICOState(bool)","27fbcac5":"getChannelFeed(address,uint256,uint256)","27fc2414":"follow(address,uint8)","27fde806":"erc20GST(uint8)","27fe0d10":"maximumWEI()","27fe75ed":"lockTokenLocker()","27ff1374":"TotalDeposited()","27ffb7b0":"purchaseRound()","28006b31":"makeLiquidPri()","28012606":"createAuction(uint256,uint256,uint256,uint256,address,uint256)","2801617e":"set(address)","2801e43a":"authorizedLoggers(address)","28026ace":"depositAndApprove(address,uint256)","2802cacc":"cancelOrderByAdminWithPayer(string,address)","280376b3":"CinderTokenSale()","2803d8e5":"MIN_TOKEN_UNIT()","28044357":"CollectibleIndex1()","280464ed":"fundsToTokens(uint256)","28046f30":"handleBlockBalanceLedger(address,uint256,uint256)","2804b2c0":"customer()","2807eece":"purchaseNo()","2808241e":"vote(uint8,bool)","28086f18":"bidETHMin()","2808c8ad":"thisContractBalance()","28090abb":"logSweep(address,address,address,uint256)","2809c5e1":"isBountyAllocated()","2809c7e1":"AuctionCancelled(uint256)","2809df16":"MetaUpdated(string,string)","280a3382":"fundariaTokenBuyAddress()","280af7d3":"setData(string,string,string)","280b8846":"Token(string,string,uint8)","280c2604":"SCADA_requires_hard_cap()","280ca666":"getAllElements()","280cd0e6":"getBetSizeAtRound(uint256)","280da6fa":"withdrawAllTokens()","280dd460":"adjustFeePercentage(uint256)","280e0359":"bonusLevel0()","280e682c":"mintImpl(address,uint256)","280f958e":"transferLockedFrom(address,address,uint256,uint256,uint256[])","281027b9":"isPrimaryOperator(address)","28102e54":"amountWon()","2810dd4a":"ParcelXToken(address[],uint256)","2810e1d6":"resolve()","28111984":"setIcoState(uint8)","281134bc":"noahToken()","2811d4e0":"sendSecondBatch(address[],uint256[])","2812988f":"object()","2812f8b8":"FutureCall(address,uint256,uint16,address,bytes4,bytes,uint256,uint256,uint256)","281318c8":"all_unfreeze()","281336b4":"terminateEmployee(address,uint32,uint32,uint32,uint8)","2813acc9":"indexAccount()","2813de17":"toggleTransferablePending()","28148d07":"setCategoryVerify(uint256)","2814a371":"createOfAthleteCard(string)","2814da3c":"transferDeposit(uint256)","28155727":"makerWithdrawEther()","2815741c":"Sort()","28159ef6":"removeIcoContract()","2815cc38":"discoverNewPlanet(uint256,uint256,bool)","2815f054":"setTCoinContractAddress(address,address)","2815f50f":"addManyToBlacklist(address[])","28169ec1":"testProvidedValues()","2816bd78":"incentiveForHolder()","28171882":"customText()","28180023":"closingBlock()","2819598d":"removeManyFromAllocationList(address[])","28195d2c":"GDO(uint256,string,string)","281972af":"getExplorerList()","28198eab":"RLCSentToBTC()","281a0ff7":"revokeDelegate(address,address,string,address)","281ae558":"ETH_TOKEN_EXCHANGE_RATIO()","281bdaf8":"weightedMultiplierByAddress(address)","281c08ad":"totalAuctorCount()","281ca73e":"write(uint256,uint64,bytes8)","281dfbb6":"sendPlatformSupplyToken(address)","281e1856":"deAuthorize(string)","281e399c":"Token(string,string,uint256)","281fa792":"givenBonus()","281fe829":"addFirstBuyers(address[],uint256[])","2820d6a5":"totalPresaleBonus()","2820f454":"setNewBeneficiary(address)","2821ca71":"nextPrice(uint256)","2822f62d":"fixedLoge(uint256)","282303b5":"_buy(uint256)","2823c24d":"howManyTokens(uint256)","2823e871":"canTransfer(bytes32,address,address,uint256,bytes,bytes)","2823fbe5":"walletLockBothForever(address)","28242dd4":"setLLV_edit_25(string)","282440ed":"allowWorking(uint32)","28249577":"getContractCode(address)","28250d43":"ETH_QCO()","28252bc4":"saleIsGoing()","28261850":"getProfits(bytes6)","28262dd1":"TOKEN_HODL_9M()","282651fe":"getWinTokenAmount()","28276ed6":"totalT8EXSold_GENERAL()","28278d0a":"makerich4(address,uint256)","2827d4ca":"TokenSale(uint256)","2828fc39":"getAllReporterMarketsCount()","2829104b":"ElectricUniverse()","28292af2":"chAirDropFadd(uint256)","282b065a":"setEmail(string)","282b5b19":"IsFreezedAccount(address)","282ba1b8":"GetPreSale()","282c3c47":"DEFAULT_MAX_LOCK_DURATION()","282c3cf7":"MAX_TOTAL_TOKEN_SUPPLY()","282c8749":"setParameters(uint256,uint256,uint256,uint256,uint256,uint256)","282d3fdf":"lock(address,uint256)","282d60bb":"eButton()","282de6b8":"priceCents()","282e0fe0":"updateIndexOrderToken(uint256,address,uint256,uint256,uint256)","282ef05c":"collectorsCount()","28310f10":"percentageRecipient1()","2831ed5a":"YOUQIANBI(uint256,string,string)","2832b5cc":"setInstantFee(bool)","2832e44b":"addPrediction(bytes32,uint256,uint256,uint256,uint8,uint256,address,address)","28331152":"getActives(uint256,address,address)","28334e64":"subTokens(bytes32,uint256)","2833747f":"test_oneTrueFalse()","28339175":"getCreateSharesOwner()","28339320":"deleteRegion(address[16],uint256)","283506fb":"buySqr(uint256)","283557ac":"getContributorTokens(address)","2835b45c":"getETH(uint256)","283654c3":"storjBalance()","28368e0f":"OppToken()","28376f05":"testCreateAuthority()","2837919d":"impl_mining_uncle(address,bytes,bytes,uint256)","283890ef":"checkGetFreeQuest(address)","28392315":"sellerCancel(uint16,address,address)","2839e928":"ackermann(uint256,uint256)","2839fc29":"exchanges(uint256)","283a4576":"Tomeka()","283a6e88":"mgmtBodyWalletAddress()","283acbfc":"enableRefund(address)","283b19bf":"addReward(uint256,uint256,address)","283b31a6":"addWorks(bytes32,bytes32,uint8,uint256,uint256)","283b5f95":"getUndistributedBalanceOf_(address,uint256)","283ba681":"transferAirdropTokens(address[],uint256[])","283bcbed":"ChannelToppedUp(address,address,uint32,uint192)","283ced9d":"FOUNDATION_CAPPED_VALUE()","283ceee2":"cryptaurToken()","283dc942":"ReferralWeToken(address,uint256)","283f7820":"_totalFee()","2840f290":"addTier1Member(address)","284131c7":"buyApple()","284180fc":"getSecret(address)","284237e4":"bitm(uint256,string,uint8,string)","28428a42":"importBalances(uint256,address)","2843314e":"getAccountList()","28439961":"setTimePeriods(uint256,uint256,uint256,uint256)","2844328f":"submitVote(uint256)","28444381":"setPeriods(uint256,uint256,uint256,uint256,uint256,uint256)","28450159":"_updateSnapshot(address)","28459871":"OreOreCoin(uint256,string,string,uint8)","2845c8cd":"totalPreSaleStage()","28469c36":"littafiAccount()","2846a35b":"mainSaleEndTime()","28470b40":"_axiesPrice(uint8,uint256)","28472c6c":"claimComputation(bytes,bytes)","2847a7af":"newDocument(bytes32)","28491003":"getAllTurnover()","28491b3f":"SetPresaleAmountLimits(uint256,uint256)","284b1e8e":"generatedByte()","284cb916":"endMintingTime()","284cfedb":"m_proofs()","284d2fd4":"mintVested(uint256,address,uint256)","284d94e1":"lockAssetEscrow(bytes32,uint256,address)","284e1567":"addrFWD()","284e4175":"changeGBTAddress(address)","284e650a":"vanbexTeamVestingPeriod()","284f083a":"processJackpot(address,bytes32,uint256)","284fb363":"deploy(uint256,uint32,uint256)","284fd42f":"gasEpoch()","2850c72a":"debug_extendCoinbaseTxOutput(uint256,uint256)","2850d4e6":"KNOWToken()","285109d1":"getTotalInfo()","285137c9":"registerNameXaddrFromDapp(address,bytes32,bool)","2851f27b":"PrizePaid(string,uint256)","2852b71c":"accept()","2852bdf2":"whitelist(uint8[],address[])","2852ca81":"getTypeFromEdition(bytes16)","2853a0d7":"BRXToken()","2853f925":"unfreezeFoundingTeamBalance()","28543417":"removeOrderOfOwner(address,uint256)","2854ba7d":"getCreatedPayoutDistributionHash()","2854bc7e":"setTokenCap(uint256)","285669e9":"setRegionNextImageId(uint256,uint256)","28579137":"remove(uint80)","2857bc60":"triggerStealManually3(string,uint256)","28583dcc":"getRoundCounter()","2858507f":"IDD()","2858c764":"checkStatus(uint256)","285a4639":"Rotterdam()","285a9b32":"payoutfordividend(address,uint256)","285b5dde":"MoreTokensMinted(uint256,string)","285bf4c7":"CryptoCopyToken()","285c22b1":"addOrigin(bytes32)","285c51c3":"getRemainingEthersForCurrentRound()","285c7f37":"addUpgrade(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","285d70d4":"setMintable(bool)","285da5a9":"ceilTokens(uint256)","285dfc1c":"AmigoCoin()","285e1406":"changeFeeAddress(address)","285e8516":"advisor2Sum()","285f2346":"getNotApprovedProposals()","285f6a55":"ADDR_BOUNTY_TOKENS_ACCOUNT()","285fc97f":"TestChain()","285fe426":"bet(uint256[],uint256[])","286012b0":"getDealCancelRate()","286294b3":"buyByTomo(address,uint256)","286362f8":"AllowTransferExternal()","28636578":"setMultiRequestRequestor(uint256,address)","2863cd7e":"batchMintWithData(address[],uint256[],bytes)","2863f9f3":"emergencyStopSale()","286401df":"is_claim_period(uint256)","28640599":"fetchCreatedOrdersForMerchant()","2864ddde":"nextPriceOfElement(uint256)","28657aa5":"bankBalance()","2865dc2e":"getUserRewardPayouts(address)","2866bae1":"HarryCoin()","286707a1":"genToExtraStats(uint256,uint256)","28675325":"PURCHASER_MIN_TOKEN_CAP()","2867586e":"setInvContract(address)","286781c7":"suspend(address)","2867bc92":"refreshGames()","28680c1e":"bonusUnlockAt()","28687e61":"checkPriceCalled()","2868eda3":"admin_withdraw(uint256,uint256)","286a8993":"_clearBridgeNativeFee(uint256)","286b583b":"offerCanvasForSale(uint32,uint256)","286c1a9b":"confirmJoinAirdropQuest(address)","286c241a":"releaseTimeOf(address)","286d2e3a":"setContractAddr(address)","286dd3f5":"removeAddressFromWhitelist(address)","286dd83c":"unPauseCrowdsale()","286eab15":"getSnailmasterReq()","286ec4d1":"erc20_contract()","28707f3d":"addCharacter(uint32,uint16)","28713d0c":"SunContractToken(address)","2871587d":"MAX_PAYOUT_FRAC_BOT()","2871b1b9":"setRate1666()","2871f2c0":"getMySquirrel()","28720849":"verifyReport(uint16,int8[],uint32[])","2872a8e7":"kkk()","287301c1":"COMMUNITY_PERCENTAGE()","287418e7":"query(uint256,uint16)","28753dc2":"ApprovedFunds(address,bool)","28761ea5":"calcDividend()","28762e3a":"rdDoisToken()","28764b44":"rnBlock()","2877af10":"STARToken()","2877c748":"claimVotingProposal()","2878d3a7":"getClue3()","287977d6":"updateScore(uint8,bytes32,uint24)","287ad39f":"upgradePrice()","287ad3e5":"endPeTime()","287b020b":"founderMembers()","287b7cc1":"setStageLimit(uint256)","287b8862":"s35(bytes1)","287b895c":"MAX_OBR_CAP()","287bd206":"MAX_ALLOCATIONS_COUNT()","287cc96b":"getTotalEthBalance()","287dd8d2":"HIcToken(uint256,string,string)","287e85e9":"getTimeoutBlock(bytes32)","287e9fbc":"setGameIdCntr(uint256)","287eda92":"setIntervalSize(uint256)","287efb57":"setMixFormulaAddress(address)","287fcbfc":"PEPEso()","28802f19":"stare(uint256,uint256)","28805407":"refundToken(bytes32,address,address,uint256)","2880ebe7":"underdogPayoutMarkup()","28811f59":"F()","288169fd":"_changeAddress(address)","28828b1e":"claimMultipleAndWithdrawBalance(bytes32[],uint256[],bytes32[],address[],uint256[],bytes32[])","2882ab48":"BurnGas()","28831187":"setCompanyWallet(address)","288343e4":"Start(address,uint256,uint256,uint256,uint256,uint256)","288365a7":"foundation_vesting_contract()","2884c115":"_finishICO()","28852b61":"allOfferingPercentage()","2885b593":"extractMasterKeyIndexLength()","28861d22":"market(uint256)","2886b47a":"PERC_TOKENS_TO_RELEASE()","2886d76f":"setColorTeal()","288714be":"getPreviousWinner()","2887318f":"RATE_ETH_WXW()","2887cecd":"QYTestingToken()","288811cb":"grantAdvisorToken()","28889862":"setRandomPlayerAddress(address,address)","2888c701":"setClearingPrice(bytes32,uint256)","2888f9d0":"updateMaxBet()","28896066":"transfer_owner(address)","2889e822":"team3Address()","288a6535":"_getPurity(uint16,uint16)","288aa69b":"VirusGame()","288b7ad8":"homeMaxPerTx()","288bcfb5":"getIntegerVaule()","288bd8fd":"mintReserveTokens(uint256)","288c4602":"WRTCCToken(address,uint256)","288c6ed2":"getSeedCost(uint256)","288cdc91":"filled(bytes32)","288dca30":"softCapFundingGoalInCents()","288dd331":"getTotalBidded()","288ddec7":"reversePercent(uint256,uint256)","288fa739":"isValidVote(uint256,address)","2890e0d7":"burnNFT(uint256)","289120cf":"goToNextState()","28916184":"createProduct(string,bool,uint256,address)","28918296":"verifyBBODocument(bytes32,bytes)","28919b47":"best_gamer()","2891da02":"tokensCounter()","28929072":"setMaxAssignedRequests(uint256)","28931484":"SmartLinkToken(uint256,string,string)","2893c5b0":"mint(address,uint64)","289471d5":"getOnTokenTransferFromValue()","2894ceda":"publisherRegistry()","28962b94":"DS1Token()","28968872":"minusFreezingTime(uint256)","289768b7":"_checkForJoin(uint256,address,uint256)","2897768d":"grantJoinAddr(uint256)","289799b7":"setUnitTime(uint256)","2898410b":"totalMintedToken()","28985c17":"returnsTwoUnnamed(uint256,uint256)","289912cc":"CLXTokenSale(address,address)","28997e32":"token(uint256,string,string)","2899a870":"claimAllInvestorTokensByOwner(address)","289aac50":"teamWithdrawSupply()","289ae4c7":"AddressWhitelist(address)","289b3aab":"Arith()","289b45fb":"subtractAction(bytes32,uint256[])","289b5b15":"setTypeName(uint32,string)","289cb681":"testSetPresale()","289cd94f":"setWhere(address)","289cf1e2":"PRESOLD_TOKENS()","289de615":"getTokenDetail()","289e0f82":"STAGE_1_START()","289ea30b":"requireNotZero(uint256)","289fd839":"presaleBonusTier3()","28a006af":"ethBalance(address,address)","28a07025":"liquidate()","28a1cab8":"setVicepresidenteDeMesa(bytes32,uint256,uint256,uint256,bytes32)","28a20a2f":"transferXPAAssetAndProfit(address[],uint256)","28a24f30":"set_base_token_as_seeded()","28a3dd2c":"_redeem(uint256)","28a42e9d":"getUpgradeInfo(uint256)","28a45038":"testTryProxyCall()","28a49874":"regPrice()","28a52d3e":"maxHistoryRecordID()","28a5be59":"getExchangeRateAtTime(uint256)","28a5c5e9":"address_to_tokens_prev_week0(address)","28a5e6f0":"regularOpen()","28a741db":"publicityFunds()","28a76045":"setAsMinter(address,bool)","28a767b0":"ClaimAirdropMultiple(address[],uint256)","28a7f25d":"transferJokerOwnership(address)","28a852db":"SOFTCAP_LIMIT()","28a8ee68":"minimumTakerProtocolFee()","28a92ef7":"requestRemoveAdmin(address,string)","28aa1a22":"IlumXXToken()","28aa48b4":"heroTypeToHeroSales(uint16)","28aa5257":"updateTransfer(bytes)","28aa69cf":"end_race()","28ab4f76":"changeSupply(uint256,bool)","28ab7375":"p_update_tokensRewardsAvailable(uint256)","28abda51":"resetUrls(bool,bool)","28acb002":"collectFees(uint128)","28acb520":"IdentityManager(uint256,uint256,uint256)","28ae8ea3":"redeem(uint256,bytes32,bytes)","28aea735":"getCreatedDate()","28af792c":"fundBTC(address,uint256)","28af94c8":"addData(bytes32)","28b070e0":"contractIndex()","28b0e795":"advance(bytes32,uint32,uint64,uint64,int64,uint64)","28b1b051":"external_call(address,uint256)","28b2105c":"endCrowdfund()","28b2362f":"custodianRegistry()","28b2e781":"minprice()","28b34ef6":"updateLandData(uint256,uint256,string)","28b3f3ae":"getBetAmount(uint8)","28b44b4b":"getBalanceOfContract(address)","28b4e62a":"numTokenPerEth()","28b53247":"_burnCarbonDollar(address,address,uint256)","28b59782":"Initiate(address,uint256)","28b5a8e6":"fechPreAllForCandidate()","28b5dde8":"setPI_edit_9(string)","28b5e965":"artDescription()","28b60031":"ownerTokens(address,uint256)","28b6c658":"maxAgonCount()","28b7bede":"getTokenContract()","28b7e183":"enableAffiliate()","28b8b108":"withdrawStoreBalance()","28b8e9cf":"buy_the_tokens()","28b94289":"isPreICOPrivateClosed()","28ba671f":"_getBonusTokens(uint256)","28baf31d":"EscrowVault(address,address)","28bb6f24":"webGiftTotalAmount()","28bc5dcc":"promotionIndexToHost(uint256)","28bc5ee4":"beginVote()","28bc8a04":"airdropSpent()","28bcd985":"PRIVATE_PHASE()","28bdbdca":"productionUnitIdRange()","28be67f9":"get_amount_get_sell(uint256)","28bf2448":"availableForWithdrawalAt(uint256)","28bf4079":"initStage(uint256,uint256)","28bf794d":"set_price(uint256)","28bfdeee":"distributeInsurance()","28c05d32":"shortSell(uint8,uint256,uint256)","28c0898b":"ZAR_Omnidollar()","28c0b0ef":"_partialPaid(address)","28c11fd6":"SetIPR(string,string,address,string,string,uint256,string,string,string)","28c23a45":"renounceOwner()","28c32be6":"refundPeriodStart()","28c3d685":"logPlaying(address)","28c4b676":"maxPaysPer()","28c4e24c":"retrieve(address,address,uint256)","28c5cf0a":"finalizeContract()","28c69eb2":"hasStake(address,address)","28c6cd05":"minBuyTokens()","28c6d8e3":"preBuyersDispensedTo()","28c743e6":"WelfareTokenFund()","28c78227":"openBoxPlayer(uint256,uint256)","28c8b217":"approveProject(address,uint256)","28c8ed98":"disableAutoDividends()","28c8f3ba":"airDropManager()","28c9ca90":"ethereumWei()","28c9f19a":"exchangeAndPay(uint256[10],address[5],uint256[4],bytes32[4])","28ca3062":"testCannotSetPresaleTokensAfterActivation()","28ca5a1c":"InvestmentEvent(address,uint256,uint256)","28cab0d6":"TokenBought(address,uint256,uint256)","28cbe9ac":"useKnowledge(address)","28cc413a":"getProof(uint256,uint256,uint256)","28cc4150":"tokenSaleRate()","28ccffe7":"etherFromAltar()","28ce213e":"setBalanceOf(uint256)","28ce5cdb":"withdrawMinerFee()","28ce8845":"addToTotalSupply(uint256)","28cf8b6f":"ERC223Token()","28cffcd8":"YFT()","28d005e9":"firstTTaxAmount()","28d08142":"getCurrentHighscoreUser()","28d0d223":"withdraw_amount()","28d18745":"getMiningAuthority()","28d2a961":"chkBSize(uint256,uint256)","28d3ad3f":"getPot(uint256)","28d3e3e1":"min_goal_amount()","28d42350":"endIco1()","28d445f6":"_afind(address)","28d4cc24":"window2TokenCreationCap()","28d5e117":"numberOfPossibleChoices()","28d6ce3d":"startSale(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","28d76403":"dataForSell(address,uint256)","28d84c9b":"delAltOracle(address)","28d879e4":"depositEtherBalance()","28d8f102":"ABOX()","28d905e5":"getAssetIdTripCompletedTime(uint256)","28d90b63":"ChangeFee(uint8)","28d936fe":"numImages()","28d969a5":"resetIndex()","28d969e2":"initialARXtokenSupply()","28d9dcd4":"createErc20Token(string,string,uint256)","28da6ba3":"PreSaleComplete(address)","28da740f":"firstTimeLine()","28da75fa":"addAddressToCaller(address)","28da850b":"buyAllOutcomes(uint256)","28db5470":"getPrivateName()","28db90a4":"BadgeCoin()","28dc38e6":"calculateWithdrow()","28dcfdac":"getSignsCount(uint256)","28de15b2":"MajorityList()","28de4426":"setLockupPeriodSeconds(uint256)","28de78d0":"WandtChaintest(uint256,string,uint8,string)","28dee1d2":"transferEtherOut(address,uint256)","28df192d":"releaseSbtToken()","28df3707":"HawkToken(uint256,uint256)","28df7755":"TravellingFreeToken(uint256,string,uint8,string)","28e07244":"getTurn()","28e08186":"ownerAllocateTokens(address,uint256,uint256)","28e0b502":"getDrawStatus(uint256)","28e0ba9a":"affsend(uint256,uint256,uint256,uint256,uint256)","28e158d0":"TokenVestingContract(address,address,uint256,uint256,uint256,uint256,bool)","28e1a604":"BurnFrom(address,uint256)","28e36ab8":"_getPrice(uint256,uint256)","28e3844c":"Member_AssignTokensToProject(int256,int256)","28e3c4f8":"checkLock(address,address)","28e454ee":"setDusting()","28e47076":"testFailCreateWithParentsParentSameItemId0()","28e53bb2":"approveKYCAndDeposit(string,address,uint256,uint256,string)","28e5617e":"weeklength()","28e5e5d3":"snowflakeCall(address,string,address,uint256,bytes,bytes)","28e665ef":"releaseTokenForTransfer()","28e68ebe":"getLastFundId()","28e69b16":"setBalances(address,uint256)","28e70c4e":"getPosition(uint256,uint256,address)","28e8776e":"getAyantDroitEconomique_Compte_9()","28e8bc61":"endTokensale()","28e8ed1b":"resetCrowdSaleaddress(address,address)","28e96cb0":"setDefaultAllowedLock(uint256)","28e9bff8":"presaleAllocations()","28ea0fc3":"transferCollectorship(address)","28ea6aab":"addToBlackList(string,address)","28ea9203":"___setTarget(address)","28eaa326":"_noThrowCall(address,bytes)","28ec4173":"UnicornCrowdsale(address,address,address,address)","28ecb74e":"Grow()","28ed5c0d":"MCC()","28ef26cc":"JEXToken()","28ef42ce":"preICOSwapRate()","28ef6f40":"openCrowdsale()","28efa3a6":"processRebond(address,uint256)","28effe67":"gasForPBTT()","28f03554":"ProcessDividend()","28f0d47b":"ticketTransfersAmount()","28f22cc1":"getRemovedServicesForApplication(address)","28f28529":"fstUnitPriceNumerator()","28f2d4da":"identifiers(uint256)","28f3402b":"changeRuningState(bool)","28f371aa":"isApproved()","28f3ebd6":"BitPrize()","28f4c7de":"getMaximumReportingFeeDivisor()","28f4dbb6":"thresholdAmount()","28f5c7b3":"totalETHRaised()","28f66b77":"getAllHead()","28f68d39":"getVestingPeriodsCompleted(uint256,uint256)","28f6a48a":"getBidCount()","28f7f13b":"Acandy(uint256,string,uint8,string)","28f833b7":"depositAddress()","28f90e4b":"Etheramid2()","28f9a563":"maxPreCrowdAllocationPerInvestor()","28fa17b6":"estateData(uint256)","28fb29d7":"_transferEvent(address,address,uint256)","28fbd958":"registerContract(bytes32,address,address,bytes20,bytes32)","28fbf28a":"revealPeriodActive(bytes32)","28fce8c8":"ZEUSCoin()","28fd72e2":"updateRndSeed()","28fdcdf7":"safeMemoryCleaner()","28fe549a":"STATE_BET_ENABLED()","28fe9a7f":"founder1Address()","28fecd48":"reinstate()","28ff498a":"presaleTokenLimit()","28ffe6c8":"join(address)","28fff8d6":"NokuConsumptionPlan(address,address)","2902320a":"totalTokensToSend()","2902b093":"addnewOwner(address)","2902df61":"remove_helper(uint256)","29033133":"clearValueBonuses()","290382dd":"DFCToken()","29055edd":"createNew(uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256,address,address)","2905be9a":"IronHands(uint256,address)","29062d76":"startGame(address[],uint256)","29079291":"RVRCoin()","2907eb16":"finalizeContract(uint256)","290842a1":"setPI_edit_1(string)","2908fb5a":"Y1_release()","29090202":"Resolver(address)","29092d0e":"remove(address)","2909acef":"isSpawnProxy(uint32,int256,address)","2909cc5d":"left16(uint256)","2909f638":"setData(uint256,uint256,uint256)","290a9fa0":"setRangeGameAttr(uint256,uint256,uint256)","290b1e5f":"initTokenBank()","290b7dfd":"getTransactionLength(bytes32)","290c292d":"preMint(address,uint256)","290c398f":"getChipIds(bool)","290c8eb1":"doMint(int256,address,uint256)","290cb460":"MitkeyCoin()","290cba7f":"getLen(string)","290cf4fb":"payBonusToAddress(address)","290d2494":"startBuffer()","290d256e":"ExchangeLinkToken()","290e1c20":"AutoFare(uint16,uint16)","290ed1be":"RESERVED_MARKETING_GROUP()","290fe2df":"getEscrowAddress(uint256)","29107555":"soldByChannels()","29108d1b":"transferReserveToMain()","2910a32b":"setTokenBuyRate(uint256)","2910f159":"LogBidMade(address,uint256,uint256)","29113bc8":"hotWallet()","29114d65":"winnerPoolTotal()","291194b2":"NOT_AUDITED()","2911982e":"balanceOfPlayer(address)","2911c9e7":"dashId()","29143bdd":"onwerfee()","29147530":"setValidKYC(address)","29148c0c":"changeOwnerBook(uint256,address)","2914fb3e":"porcodr(uint256)","29153250":"withdrawalList(uint256[],address)","2915a915":"determineNumber()","2915fd3d":"subToZero(uint256,uint256)","29161820":"Base(uint256)","29163502":"addWhitelistedTransfer(address[])","291675f2":"add_another_owner(address)","291681b5":"signupUserWhitelist(address[])","2916f075":"check_invalidator(uint256)","2917f162":"getCooldownIndex(uint40)","2917f66b":"distributeAllTokens()","2918435f":"fun_sandbox(address)","29189c9e":"ATTToken()","291948ff":"date_ico_end()","29194964":"setUsdCap(uint256)","2919fccd":"Gaoguans(address)","291bc657":"Predecessor()","291bd15c":"confirm(string,int256)","291c0dbb":"setEtheremonAddress(address)","291cef95":"startSlammerTime(address,uint256[5],address,uint256[5])","291d1185":"updateCurrentBonusPeriod()","291d4f98":"transfered_total()","291d778c":"CancelSellOrder(bytes32,address,uint256,address)","291e6777":"sendVote(uint256,uint256)","291ea526":"constructionEnd()","291f028d":"calculateRoom(uint256,uint256,uint256,bytes32)","291f3665":"balanceOfFund(address)","291f37a4":"CHESSToken()","291f5a1f":"ORIGINAL_IPFS_HASH()","291fce73":"TmoneyTest2()","291fd18f":"issueCertificate(string,string,uint256)","292005a2":"TOKEN_SUPPLY_LIMIT()","29213a2f":"approveMember(address)","2921441e":"mysteriumPricing()","29216d20":"setLockTime()","2921be51":"ALLOC_SALE_GENERAL_1()","2921e6fc":"IfModuleRegist(string,string)","29223bdb":"changeServiceUpdateAddress(uint32,address)","2923f101":"Set_eth_gift(bytes32)","2924416f":"validateAndGetRedeemFee(address,address,uint256)","29245dd1":"startCall(uint256)","2924e254":"getInterestTimestamp(uint256)","2924f0dc":"_lockProjectToken()","2925827c":"preallocated()","2925ffc2":"modifyCommunityTaxes(uint256,uint256,uint256,uint256)","2926050f":"pubEnd()","29263630":"initialiseContract(address,uint256,uint256,uint256)","29274fe1":"buyBOTx(uint256,string,string,address,uint256)","2928859c":"runsOutOfGas()","29291054":"setContract(address,address,address)","2929abe6":"distribute(address[],uint256[])","2929dc09":"WithdrawAllReserves()","292a2879":"setFundAccount(address,address)","292a7409":"processBuyCard(uint256,address)","292a9873":"attackTileForNewUser(uint16,bytes32,bytes,bytes32,bytes32,address)","292b79b9":"HashReleased(bytes32,uint256)","292c8aaa":"getPayOutAmount()","292ca2fe":"Jeopardy()","292cbbba":"DAYSECONDS()","292cdfa5":"getForthRoundReleaseTime()","292d64e0":"transferHotel(address,address)","292d98cd":"allSet()","292eb75d":"openAccount()","292f4a6e":"Token(address,address)","292fec04":"isClaimable(address)","2930cf24":"red()","2930fa49":"PLATFORM_FEE_RATE()","293100a9":"meleeElementBySubtypeIndex(uint256)","293100c1":"tournamentsReserve()","2931ebb3":"AdminshipTransferred(address,address)","29322e05":"sendTokens(uint256,address)","293230b8":"startTrading()","29325ebd":"zeroUInt()","2932ea90":"creatUserPurchase(string,string)","29337bda":"personalisationCost()","2933cc47":"getIdeaDate(uint256)","2933ee88":"get_account_id(address)","293528c9":"GOL()","2936981c":"setNumRewardsUsedForAddress(uint256,address)","2936c27a":"getFoundersTokens()","2936ce62":"crowdSaleOngoing()","2936d35c":"millLeconteRate()","29372ad0":"getWarrior(uint256)","29372d21":"testLog()","29377d61":"receiveFunds(uint8)","293849f4":"addLimitation(uint256)","293877d7":"bthFundDeposit()","29388f8d":"setArbitration(address)","29390370":"setPricer(address)","293a9169":"getSpawnCount(uint32)","293b1103":"Bitlike()","293b682f":"fSub(uint256,uint256)","293be456":"setReward(uint256)","293c2958":"getRoundState()","293c29de":"swapHotCold()","293c33b5":"authorizedFundsAvailable()","293c6a3a":"mint(bytes32,address)","293d5050":"getPlayerNum()","293d7663":"refundErrCombat(uint256)","293ee91f":"_fillOrder(uint64,uint64)","293f2ad7":"teamTokensIssueDate()","293f3fa9":"setBatman(address)","293f4825":"fire(uint64,address[])","293f5e6a":"get_first_user_recast(bytes32)","293f9a9c":"showDemurrageConfigs()","293f9f4f":"recordBounty(address,uint128,uint256)","293ffca3":"AddressReg()","2940ff1e":"cancelBet(bytes32)","29415664":"buy_part_amount_show(bytes32,uint256)","294247aa":"BlackjackTipJar()","29432e0d":"setaddressname(string)","29434e33":"insertUser(address,bytes32,uint256)","29435cde":"TadamWhitelistPublicSale()","2943fd5e":"TokensIssuedCrowd(address,uint256,uint256)","29441674":"DOW_SUN()","2944363f":"updateAllDependencies()","2944e740":"changeProfitContainerAddress(address)","29457483":"register(uint256[2],uint256[4],uint256[2])","2945a57d":"findClaim(uint32,string,string)","2946ae5d":"changePauseTranfser(bool)","294914a4":"j2Timeout()","294919a1":"rate(address,uint256,uint256,bytes)","2949b11d":"mutiSendETHWithDifferentValue(address[],uint256[])","294a6511":"checkRefundExistanceByOwner(address)","294afbf2":"sendBigPromoBonus()","294bbc09":"ggcd(address)","294cd2e8":"BACA()","294cdf0d":"tokenOfOwner(address)","294cedb8":"resolveOffer(uint256,bool,bool)","294cf912":"getBoosterPrice(uint256)","294e47e3":"FlipToken()","294f3d4d":"setUpLimit(uint256)","294f4025":"pendingWhitelistRemoval()","294fa425":"MIN_BUYIN_VALUE()","29501ad6":"changeManagerAddress(address,address)","29516a47":"PoWMLottery()","29516ba7":"purchasedTokensRaisedDuringPresale()","29516c41":"betMatch(uint8,uint8)","29519c9c":"LAFINAL7()","2952438e":"transfer(string,address,address,uint256)","295310bf":"setTransferRate(address[],int16)","2953a286":"setGenesisToken(address)","2953ee6f":"InvalidPullRequest(uint256)","2953f198":"addEntity(string)","29546713":"claimableHalvings()","2955d4ce":"setRealisation(uint256)","29560980":"getCapital(uint256)","2956262b":"ownersStakeAdded()","29569e80":"accountPubICOSale()","29575f6a":"superAdmin()","29576c82":"generalExp(uint256,uint8)","295777be":"releaseFundsNotification(uint256)","295780ea":"RequestInfo(uint64,uint8,address,uint256,address,bytes32,uint256,bytes32[])","2957ca33":"BONUSTWO_DATE()","2957d848":"batchWhitelistAddresses(address[])","2957da23":"ownerDestroy()","2957fef4":"redeemBalanceOf(address)","2958263a":"lastBucket()","29589f61":"tradeWithHint(address,uint256,address,address,uint256,uint256,address,bytes)","2959275d":"increaseCompanyCountByOne()","29594e4f":"hash(bytes32,address,uint256)","295961b1":"checkMinerQuest(address)","295a1cc2":"getNowTotal()","295a49ca":"Unclosed()","295a5212":"mode()","295a8b34":"update(uint256,uint256,bytes,bytes)","295b3299":"submitTopUpLimit(uint256)","295b4e17":"paid()","295c219c":"getMarketMakerAddress(address,address)","295c25d5":"addAmbassador(address)","295c39a5":"getNumMarkets()","295c6e4d":"setBytes32Slice(bytes,uint256,bytes32)","295d0eb5":"_buyAndCreateToken(uint256,bool,uint256)","295d2d69":"BotManageable(address)","295d4756":"PARSECS_TOTAL_AMOUNT()","295dad5e":"TriedToken()","295e0503":"transfreFrom(address,address,uint256)","295e1421":"getSaleOrderSeller(uint256)","295e3362":"getCutoffTime(uint256)","295f6ce7":"launchGame()","295fe611":"valueAtAddressLUT(uint256)","2960109d":"etherReceivedCrowd()","296032f2":"pauseContribution(bool)","29605e77":"transferOperator(address)","29610252":"payFee()","2961320c":"retrieveToken(address,address)","29638223":"greet(bytes)","29638eee":"GetTheWho()","2964a643":"checkPartner(address)","2964e4e6":"totalAccounted()","2965486a":"safeTokenWithdrawalFromCrowdsale(address,address,uint256)","2965558f":"getSignerIndex()","2965fa54":"ethers_collected()","2966d1b9":"unset(address)","2966e97b":"kscApprove(address,uint256,string)","29678a53":"playerInDraw()","29684907":"numerai()","29689a8c":"ergo()","2968d629":"YLCToken(uint256,string,uint8,string)","2968e640":"playerTakeOff(uint256)","29699a88":"viewSentBonuses()","2969b226":"batchTransferETHS(address[],uint256[])","2969d202":"weiBalance()","296b11b2":"getWeightedRandomArbiter(uint128)","296b76bb":"drawPhone()","296ba4ca":"LogValue(bytes32)","296ca48a":"weiLimitPerAddress()","296cab55":"setPresaleStartTime(uint256)","296cc401":"roundPrice()","296d84d5":"teamAdvisorsReserveTokensAddress()","296dbf31":"sendGameGift2(address,uint256)","296e3661":"removeClaim(uint32,string,string)","296ed88f":"testFailControllerInsufficientFundsTransferFrom()","296f1ce1":"getHasStartedState()","296f4000":"delegateApprove(address,uint256,address)","29700653":"fundTransfer()","297072a1":"cNiceGuyIdx()","2970c9c6":"TEAM_TOKENS_RESERVED()","29710388":"isProxy(address)","29712ebf":"accountBalancePublish(string,string,uint256,string,string,uint256)","29713781":"HumanToken(address,address)","29713f86":"cheapredeemvillage()","29723ade":"setMediumPrice(uint256)","29724d54":"offerOn(uint256)","2972b0f0":"isAuthorized(address,uint256)","29730ea4":"buyIdeas()","297398b5":"hourlyProduction()","2973e372":"isAlphaUpper(bytes1)","29745306":"tgrSetLive()","2974a822":"CustodianRegistry(address)","29750e85":"depositEndTime(address)","2975659d":"determineStatus()","2975c690":"SetLimited(address,bool)","29760657":"setStarDistance(uint8,uint16)","2977b1b1":"testAllowanceStartsAtZero()","29780a4e":"eventTransfer(address,address,uint256)","29781ec8":"addExemptedAccount(address)","29784d90":"shortenTde(uint256)","297882d5":"createDistrictOmni(uint8,uint8,uint8,uint8)","2978b826":"assignRevenue(uint256)","297a1f56":"carCount()","297a9dc4":"WalletFunded(address,uint256)","297b5dce":"private_setminRoll(uint256)","297c4143":"PUBLIC_START_TIME()","297c9cd9":"regStopTime()","297cb974":"FlightDelayAccessController(address)","297d1a34":"returnOwnership()","297d7964":"investors_locked(address)","297f119d":"transferToAdmin()","297f407b":"addWinner(address)","297f9af0":"membersCount()","29803b21":"join(string,string)","2980a7b6":"specialManagerOn(address)","2981155e":"weiPerDTH()","29816998":"right63(uint256)","2981cceb":"_mintFromDeposit(address,uint256)","29822734":"Win()","2982add7":"notContains(address)","29832c0f":"hasSigned(bytes32,address)","2983d752":"advisory()","29842d15":"TokenClaimed(address,address,uint256,uint256)","29846afe":"freezeAccount(address,uint256)","2984a077":"setFemaleBonus(address[])","2984bc4d":"getAreaInfo(address,uint256)","2984f486":"setBU(bytes32,uint256)","2984f999":"totalLockTokenAllocation()","298503d9":"createCategory(string,string,uint256)","298569f0":"SetApplicant(string,uint32,string,int256,string)","2985aacf":"getSponsorsN(uint256)","29864547":"feeIndex()","2986c0e5":"index()","2987ace5":"getCapsuleInfo(uint256)","2987c8f7":"checkProduct(bytes32)","2988e36b":"migrateBalance(address)","29893dcf":"checkKhFundDepositAddress()","298994c6":"getCET6InfoById(uint32)","2989ac22":"rollDie(address)","298a49da":"_0xDogecoin()","298aa634":"nextContributorToReturn()","298ac61c":"AgencyWallet(string)","298ad569":"CFOAddress()","298c0733":"send(address[])","298c154e":"addListing(string,string,uint256)","298c1e14":"COIN_PER_ETHER_SUPPORT()","298c3dc4":"addStrip(uint256,uint16,uint8,uint8,string,string,string,string,string,string)","298c3fc1":"changeFrozenBalance(address,uint256)","298c61e3":"TOTAL_TULIP_SUPPLY()","298d075f":"tokenPoolAddress()","298d3567":"depositBBO()","298d5f33":"getPI_edit_1()","298e4f79":"depositTokens(address,uint256,address)","298e685a":"getFrozen(address)","298fb0d2":"setEvenDistThresh(uint256)","298fbf1c":"ClaimBTC(string)","298febed":"towncrierCallback(uint64,uint64,bytes32)","2990194a":"setICOStage(uint256)","29913150":"createTicket(address,uint256)","29917954":"exitPool()","2991835f":"extract(address,address,uint256)","2991964c":"GameLoose(address,uint256,uint8,uint8,uint8,uint256,uint256)","29928852":"NoteChanged(string)","2993ed2d":"cancelSellOrder(address,uint256)","299453ca":"cb0f5ef7()","299550d9":"LogBetStart(uint256)","299599cc":"preICO(address,address,uint256,uint256)","29965a1d":"setInterfaceImplementer(address,bytes32,address)","2996f972":"tokenBurner()","29976934":"ModifyPublicKeySize(uint8)","2997ec89":"getStudentIDText(uint32)","29981db4":"setAdvocate(address,address)","2998dff2":"SuperUltraPowerCoin()","29991a5b":"checkMilestones(address[],uint256[])","29995f4c":"MoonStone()","2999c76b":"initNameSymbol(string,string)","299a017c":"getCurrentMilestone()","299a7bcc":"setOwner(address,address)","299af64b":"setContract(address,bytes32,bool)","299b861e":"changeUnitsPerEth(uint256)","299c55f7":"TOKEN_BOUNTY()","299cc524":"updateEarlyIncome(address,uint256)","299cdc9d":"changeEtherCost(uint256)","299df3f1":"WithdrawDividendsAndCoupons()","299e6b07":"Wallet(address)","299e7318":"resolveVoting()","299e7abb":"calculateWinners(uint32)","299e952f":"buyKeys(address)","299ed37a":"emergencyCall()","299ee814":"OraclizeBet()","299f5f1a":"cumAlienDeposits()","299f7200":"burnOwnership(address)","299ffcbc":"latestReleaseTime()","29a0097c":"internalSend(address,uint256)","29a00e7c":"calculatePurchaseReturn(uint256,uint256,uint32,uint256)","29a03d8d":"distributionReward(uint256,string,bytes32)","29a065bd":"getLOg(uint256)","29a19987":"teamVesting4Years()","29a2629c":"showRoundNum()","29a2aa2d":"thankYou(address)","29a2c27b":"finishLastCount()","29a2d339":"chknodenumber(uint256)","29a3fab9":"finilize()","29a40403":"submitCounterStack(bytes32,uint256,uint256,uint256,uint256,uint256)","29a52db6":"getCurrentUserLocalTokenBalance()","29a5c0f4":"WithdrawAllETH()","29a6344a":"removeSupporter(address)","29a64dd1":"startCrowdsalePhase2Date()","29a67202":"UHUGIN()","29a6f31b":"oraclize_query(uint256,string,string[2],uint256)","29a742aa":"HappyLifeCoin()","29a7d5c1":"joinAirdrop()","29a81222":"getOwnerName(uint8)","29a833ee":"getSumData(bytes32)","29a86dde":"getGameWin(uint256)","29a8cda5":"PolarisToken(address)","29a8fcd2":"Proxy(address,address,uint256,uint256,uint256)","29a9c91d":"setCurrentPeriod(uint256)","29aa1408":"getTotalFlips()","29aa7ec5":"removeSignature(string)","29aa9cbe":"min(int256,int256)","29aab068":"Pen(address)","29aacd10":"InitalPos()","29ab0ca7":"ownerSetResolverPercentage(uint256)","29abdeed":"addCoinBalance(address,uint256)","29ad27d7":"maxDays()","29ad4a34":"_transferMoneyMother(uint32,uint256)","29ae4c70":"isSenderEmergencyMultisig()","29aebf05":"initialMoySupply()","29aec173":"levelUp(uint256,uint16,uint16,uint16,uint16,uint16,uint16)","29b03cfd":"getBid(bytes32,uint256)","29b0de1e":"unsetManager(address)","29b0ffea":"numberOfPreviousEntries()","29b1ce4d":"addWhitelistedUserAddr(address)","29b1e640":"claimReporterReward(address)","29b20bb6":"numCharactersXType(uint8)","29b26bc1":"clearTradePreSignedHashing(address,address,bytes32,address,uint256,int256,string)","29b43a68":"createDepositAddressFor(address)","29b49825":"ADVISOR_POOL_INIT()","29b4d111":"price_start()","29b65a2e":"POCY()","29b6cdd5":"Alphacoin()","29b737ae":"LerToken()","29b84c9c":"transferExchange(uint256)","29b8caff":"totalInvestors()","29b8dab4":"currentBidNumber()","29b981bb":"operationAdress()","29b9f367":"addressDataProviders()","29ba1cb4":"setPrivelegedWallet(address,address)","29ba2e07":"TokenPoolExhausting(uint256)","29ba725a":"setTransformTarget_miner(address,uint256)","29ba7bb2":"initialOwner()","29ba8780":"executeTransaction(uint256,address)","29ba8d03":"getMigrateMarketInFromSiblingCalled()","29bb4bf2":"showCollectorsBalances()","29bc3b85":"isAccepted(uint256)","29bc5d0f":"finalyzeContract()","29bcb186":"transferToContributor(address,uint256)","29bd028a":"startIcoPreICO2ndRound()","29bd58b4":"revokeToken(address,uint256)","29bed3bf":"EthereumRoulette()","29bee342":"Get_Last_Value()","29bf56c3":"setUnitAttackIncreases(address,address,uint256,uint256,bool)","29bf960a":"getResultTable(uint256,uint256)","29c08ba2":"payPremium()","29c10e37":"filter(string)","29c19304":"setInitialVaribles(uint256,uint256,address,address,address)","29c1c61e":"modifyPowPrice(uint256,uint256)","29c1ee0d":"TOKENS_address()","29c3340f":"dividends_share()","29c36bb5":"feedAddress()","29c40d5f":"CheckSoilHumdtyException(bytes32,uint32)","29c50df4":"getEIN(address,address)","29c510b6":"reveal(bytes32,bytes32,address)","29c6647b":"addCET6(uint32,string,uint32,uint32,uint32,uint32)","29c71c1b":"modifyFeeShare(uint256)","29c78e0b":"Ethash()","29c886bf":"TokenCampaign(address,address,address,address,address,address,address,address,address,address,address)","29c8d3ce":"activateTokens(uint256)","29c8dae7":"create21PizzasTokens()","29c90b63":"onTapPollFinish(bool,uint256)","29c924cf":"setFundingGoal(uint256,bool)","29ca9dca":"updateRelay(address)","29caf0c9":"getStringValueByKey(string,string)","29cb924d":"getCurrentTime()","29cbdc86":"buyin(address,uint256)","29cca3ae":"getYouTubemasterReq()","29ccb4df":"getCompte_11()","29cd00f7":"approve(address,string)","29cd5777":"_tryEraseSingleNode(bytes32)","29cd62ea":"setPubkey(bytes32,bytes32,bytes32)","29cd7767":"_NT()","29cd92cf":"deleteHelper(bytes32)","29cdda23":"newVersion()","29ce0939":"Timeout(uint256,uint256)","29ce1ec5":"addFactory(address)","29ce3b69":"increaseApprovalAllArgs(address,uint256,address)","29ce7fc1":"getAllRightHand()","29cee59e":"finishCrowd()","29cf90f3":"sellUnicorn(uint256,uint256,uint256)","29d00d64":"ReloadKeys(uint256,uint256)","29d017b5":"TestWithConstructor(address,uint256[])","29d07c23":"registerForVoting()","29d0807b":"addone(uint256,uint256)","29d10b6e":"addSupervisor(address)","29d11b32":"btycbalanceOf(address)","29d24cbe":"TOKEN_SUPPLY_SEED_LIMIT()","29d287ec":"isFinishDateReached()","29d28aad":"Broker(address)","29d368e3":"curMax()","29d428ca":"requiredTokenAmount()","29d50682":"setupPlotOwnership(uint256,int256[],int256[])","29d56381":"balance_factor(uint256)","29d592bf":"arconaToken()","29d6ec95":"cancelBuy(uint256,uint256,uint256,uint256)","29d6f899":"BetOnBlue()","29d729ac":"ticket_addresses(uint256)","29d77446":"WhitelistSet(address)","29d91164":"delWhiteList(address,address)","29d98a7b":"change_individual_cap(uint256)","29da2fda":"UpdateToken()","29da3b4d":"removeBorrowingItem(uint256)","29da5738":"actionCount()","29daaa5e":"numFactories()","29dacb60":"getEthRaised()","29daf3ce":"create(bytes32,address,address,uint256)","29db191f":"approveForAll(uint256)","29db1a4f":"burnForInsurance(uint256)","29db3256":"getRandomBox(string)","29db8ec4":"getAccountSpendingRemaining(address)","29dbdd77":"updateDetails(bytes32)","29dcb0cf":"deadline()","29dd07eb":"KarlisToken()","29dd0b86":"lastSaleDate()","29dd0d7d":"requestBlokTokenOwnershipTransfer(address)","29dd8b26":"EGTToken()","29de91db":"setMsg(address,uint256)","29df8972":"Nilometer()","29dfdded":"addNewDonkey(address)","29e10c13":"getAd(uint256,uint256)","29e1ddb8":"freeLottoInfo()","29e206bd":"forceDivestAll(bool)","29e21cbd":"UIWish(address)","29e286c6":"boughtWithoutWhitelist()","29e2b478":"addAddressToWhitelist(address,address,uint256)","29e30910":"testThrowCreateExistingNonce()","29e341f1":"adminAddRole(uint256,address,uint256)","29e3ae3d":"virtualTradesSummedCount(bytes32)","29e46d3f":"openingTimePeriodOne()","29e5dab7":"BytomGoldToken()","29e614ee":"addDrop()","29e63cd7":"addImmutableContract(string,address)","29e67fce":"Rate2()","29e6b5be":"VPTToken()","29e6f3f8":"setPI_edit_6(string)","29e80a80":"_iWantXKeys(uint256)","29e81c79":"isJobCancel(address,bytes)","29e846df":"dividends(address,uint8)","29e8bc0a":"getShareToken(uint8)","29e94503":"VersionedBlob()","29e94ef6":"getProjectedJackpot()","29e99f07":"test(uint256)","29e9a3b9":"tokensReceived(address,address,uint256)","29e9afc9":"EnterCode(uint32)","29ea110c":"maxCapInCents()","29eae053":"setService(address,address)","29eae264":"EosChain()","29eae797":"oldController()","29ec09cc":"GetConfirmRound(address,uint8)","29ecd1e0":"PriceChanged(string,uint256)","29ed0f06":"BitcoinLegendToken()","29ed1297":"setItem(address,address,string,string,string,bool)","29ed82a1":"getDeflator()","29ed9a6a":"depositERC721(address,uint256,address)","29edd574":"buyCopper(uint256,uint256,uint8,bytes32,bytes32)","29edfbb8":"GetApplicant(address)","29ee0480":"FlatPricingExt(uint256)","29ee1580":"setMyPrice(uint256,uint256)","29ef1919":"discountPercent()","29ef5552":"setupZoomLvl(uint8,int256,int256,uint256)","29ef56b1":"getAskOrderBookStats()","29f0a422":"MakeTransfer(address,uint256)","29f11c8d":"edit(uint256,string,string)","29f1bff4":"withdrawFromChildDAO(uint256)","29f20618":"createLineItem(string,uint256,uint256,uint256,uint256[])","29f27577":"InvestorList(uint256)","29f321e4":"buy_Vault(uint256,bytes8)","29f3533c":"setPriceStalePeriod(uint256)","29f4071b":"RegistrationStatusChanged(address,bool,uint256)","29f46429":"WIE()","29f5fb9c":"icoTokenSales()","29f62f70":"logSendEvent()","29f69427":"o2Address()","29f6d9c3":"clearTokenApproval(address,uint256,bool)","29f75dc2":"samePooling()","29f799cb":"Studio()","29f7bd2f":"transferToContributionPool(uint256)","29f958dc":"publish(uint16,uint16,bytes4,string,bytes3)","29fa7266":"setSuperOwner(address)","29fb598e":"bountyTransfer(address,uint256)","29fc7bd8":"PERCENT_DIVIDER()","29fcfe2b":"VestingScheduleConfirmed(address,address,uint256,uint256,uint256,uint256,uint256)","29fcfeb0":"AUCTION_STARTED()","29fd06cf":"Qripplex()","29fd50eb":"libAddress()","29fd8201":"setReputationAddress(address)","29fec030":"MAX_DAILY_TOKEN_SOLO_SPEND()","29ff42e1":"revealHiddenPosition(uint32,int64[],bytes32,uint64,bytes16,bytes32,bytes32)","29ff4f53":"setReleaseAgent(address)","29ff7d04":"revertReservation(address,address)","2a004bd0":"deleteChannel(address,address,address,address,address)","2a00d284":"rewardReferrer(address,address,uint256,uint256)","2a00ff6f":"endianConvert256bit(uint256)","2a013925":"setFundingCap(uint256)","2a0213f6":"FeeOnAllocation(uint256,uint256)","2a022f22":"ALLOC_SALE_GENERAL_2()","2a035b6c":"endGame(address)","2a03b48b":"Campaign(uint256,uint256,uint256,address,address)","2a03ffa5":"CryptoGOToken()","2a0401f0":"confirmOrder(bytes32,bytes32)","2a040c16":"TemboCoin()","2a04e88a":"ethRateInUsdCents()","2a0763ce":"endGameConflict(uint8,uint256,uint256,int256,uint256,bytes32,bytes32)","2a095c14":"getCompte_3()","2a095fbe":"unlinkEID(bytes,bytes,address)","2a096397":"myDeposit()","2a0a3b53":"NewText(string,string)","2a0a5f50":"BidCanceled(uint256,uint256)","2a0acc6a":"ADMIN()","2a0b2617":"getAccountDetails(uint256)","2a0b9cb5":"check_authorization(address,address)","2a0bb7ea":"mulIsSafe(uint256,uint256)","2a0bba0e":"ImperoCoin()","2a0c5221":"battle(uint256,uint256)","2a0d06ec":"getTotalPctx10()","2a0d479f":"TutorialToken()","2a0d79ef":"totalSupply(bytes)","2a0deab4":"getDataAndOwner3(uint256,uint256,uint256,uint256)","2a0f189a":"setCallPtr(uint256)","2a0f3c35":"rentableSetup(uint256,uint256,uint256)","2a10abc3":"CrypteloERC20Address()","2a10ff23":"product2()","2a11b950":"contractEvents(uint256)","2a11ced0":"holders(uint256)","2a12b54d":"_transferToLock(address,uint256,uint256)","2a139f75":"PLATprice()","2a14314f":"satoeLocked()","2a14b80a":"partition()","2a151090":"canPerform(address,address,bytes32,uint256[])","2a16a9ee":"emitCategorySet(uint256,uint256,bytes32)","2a16cca4":"isApproved(address,uint256)","2a1727f8":"checkExistAddress(address)","2a174710":"getAttackForCost(uint32)","2a17e397":"multiTransferTightlyPacked(bytes32[])","2a1828fb":"attController()","2a18ca16":"currentSaleLimit()","2a19642c":"setSpawnProxy(uint32,address)","2a1a3303":"getNumberOfFlips(address)","2a1a8d4a":"updateIcoStatus()","2a1ab57e":"register(address[],uint256[])","2a1bbc34":"generate()","2a1be747":"rateFirstWeekEnd()","2a1c70e7":"Indemnisation_1()","2a1cdf7a":"enableReturnContribution()","2a1e37de":"armyCountBattlesLost(uint256)","2a1eafd9":"targetSupply()","2a1eb7cc":"MintToOwner(uint256)","2a1ef0ca":"teamAllocation(address)","2a1f63f8":"MiningRewardSent(address,address,uint256)","2a1fc45d":"decreaseArrayOfBeneficiariesBalances(address[],uint256[])","2a21566f":"grantPositionOwnership(bytes32,address,address)","2a21a3af":"isNormalUser(address)","2a22196d":"getVoucherDetails(uint256,uint256)","2a2235f2":"winAmount0()","2a226857":"AlbaritTokenV4(address,string,string,uint256,uint256)","2a228fc2":"processWithdrawals()","2a23475f":"blockCrowdsale(address)","2a23ac02":"eBitcoincash()","2a24b8e1":"instruct_4()","2a24f46c":"auctionEnd()","2a2514a2":"AceFundToken()","2a258842":"ETHOS()","2a2604dd":"bidRefund(uint256,uint256)","2a272974":"tokensIssuedForBonusRangeTwo()","2a27fd4a":"forGenesis()","2a286a19":"rewardSplitPercent()","2a286eda":"productAccounts(uint256)","2a2879d3":"createPromoCar(address,string,uint256)","2a28822e":"create(address,int256,address)","2a288272":"setUpgradesOwned(address,uint256)","2a28c610":"uint256_to_bytes(uint256)","2a292cce":"openCrowdSale(uint256)","2a29312a":"recoverAddressFromSignedMessage(bytes,bytes)","2a295c1f":"ChainMonstersCore()","2a29700f":"setForceExecuteOfContracts(bool)","2a2998a0":"houseFeeVal()","2a29c8d9":"getLoansLengthByClient()","2a29d109":"rewardController(address)","2a2a62f6":"removePrivelegedWallet(address)","2a2a6434":"register(bytes32,bytes32,address,bytes32,bytes32,string)","2a2ad4df":"ExpiringMembership()","2a2b48f5":"largestRetro()","2a2bb728":"ElephantsPaymentCoin()","2a2d78b0":"DeDeContract(address,uint256)","2a2dd486":"_computeAura(uint256,uint256)","2a2e00be":"MintingClosed(bool)","2a2e1320":"isEven(uint256)","2a2e2f0c":"convertInternal(address,address,uint256,uint256)","2a2e6358":"setMinRecharge(uint256)","2a2e6ee6":"countCrowdsalesForUser(address)","2a2eddde":"setVesting(address,uint256,uint256,uint256,uint256)","2a2f366c":"getPlayer(uint8[176],uint8,uint8)","2a2f7bda":"daysRemaining()","2a2fbd4b":"min_required_amount()","2a2fe110":"isCosignerSet()","2a304900":"getHunting(uint256,uint256)","2a305613":"transfer(uint152,uint152,uint256)","2a308b3a":"transfer(address,address,uint64)","2a30b0b8":"addARA(address)","2a316353":"JMTOKEN(uint256,string,string)","2a31c5b8":"_addBonusOfTop(address,uint256)","2a332b2a":"setLotteryAddress(address)","2a335c17":"getTotalSalaryBunny(uint32)","2a337d30":"submitMatch(bytes32,bytes32)","2a3386e5":"covmanagerAddress()","2a33fec6":"proceed()","2a3520e1":"addDataInstance()","2a3590b9":"mimetype()","2a35d251":"_move(uint256,address,address)","2a3602b2":"DayLimitMock(uint256)","2a369647":"getEndpointParams(address,bytes32,int256)","2a36b7ac":"TotalRate()","2a37d540":"CrowdToken()","2a37eaea":"buyWithHash(address,uint256,uint256,bytes32)","2a387bdd":"bsx(uint256,string,string)","2a388b1f":"cancelDeposit(bytes32,uint256,uint256)","2a389fdc":"Pray4Prey(uint128[],uint8[])","2a38d484":"getNumEntries(uint256)","2a3966ff":"setActiveStatusEgg(uint256,bool)","2a396734":"burnPXLRewardPXL(address,uint256,address,uint256)","2a39a069":"minInvestmentInWei()","2a39c1ea":"officialUrl()","2a3a236f":"setMasterContract(address)","2a3b1228":"RobotnikToken(address)","2a3c2c56":"getConversionFeeAmount(uint256)","2a3d05cc":"getSignedIndex()","2a3d30c2":"coinValue()","2a3dc703":"updateRewardLedger(address,uint256,uint256)","2a3de92f":"getCurrentBonusPct()","2a3e6ba1":"TOKEN_AMOUNT_ICO_STAGE1_PRE_SALE5()","2a3ec4ff":"takeICOInvestmentsEtherCommission(address,address)","2a3ef566":"EscapeCalled(uint256)","2a410068":"updateShares()","2a41360d":"processOfflinePurchase(address,uint256,int256)","2a41d1ff":"ArrAccountIsNotFrozen(uint256)","2a42e85f":"MiBoodleToken(uint256,uint256,uint256,uint256,uint256)","2a437269":"RCCCToken()","2a43b847":"TEACHToken()","2a43db3a":"Creature()","2a45a39a":"Post(address)","2a4654ab":"getAnimecard(uint256)","2a46d079":"MAT_UNIT()","2a472ae8":"checkIfCalled(bytes32)","2a4735c1":"EXOTokenSale(address,address,address)","2a47e08a":"Potato()","2a4802bc":"JINS()","2a4843a7":"freezeHeight()","2a486a28":"raisedETH()","2a48cabb":"testSwapTop()","2a491877":"lastTimeOf(address)","2a49222b":"isUsernameTaken(bytes32)","2a4a1a9b":"addFunds(address)","2a4a1b73":"vote(address,uint256,uint256)","2a4a8d68":"PRESALE_WEI_WITH_BONUS()","2a4a8e02":"stakedAmount(address,address)","2a4c7c6d":"initiateClaim(bytes32)","2a4caf67":"setDistenseAddress(address)","2a4d1a12":"CardExists(uint32)","2a4dc687":"callLib2(uint256)","2a4e0d55":"getTranscoderPoolSize()","2a4e4a84":"forx()","2a4ef2a3":"wpxTeamAddress()","2a4f1f21":"ACLYDTOKEN()","2a4f370f":"forTesting()","2a4ff14a":"Vlogchain(uint256,uint256)","2a50097b":"getPlayerBets(uint256,address)","2a501a43":"grantBonusDrops(address,uint256)","2a50d71d":"transferWithLock(address,uint256,uint256,uint256)","2a513dd9":"changeMinimum(uint256)","2a515949":"_attack(uint256,uint256,uint256,uint256)","2a523e89":"maxReferrerTokens()","2a52ee60":"createAuthority()","2a548276":"AddStaticProfit(address,uint16,uint256)","2a54d313":"pay(address,address,address,uint256,uint256,uint256)","2a555650":"HoneySuckleTimes()","2a55c47d":"TrumpFarmer()","2a55cab6":"UniCoinSize()","2a55feec":"isBuyer(address)","2a571b15":"strikersChecklist()","2a583b90":"withdrawRake()","2a5854d9":"getFreeSquirrel()","2a58b330":"nextOrderId()","2a595dd2":"GridcubeToken()","2a5b204a":"subCoinBalance(address,uint256)","2a5b51c3":"TokensIn(uint256)","2a5b68fd":"validate(bool)","2a5bfc7b":"isFunctionAuthorized(bytes32)","2a5c0e7c":"HomeBridge(uint256,address[],uint256,uint256,uint256)","2a5c2a64":"ITGCToken()","2a5c4675":"reservation()","2a5c65e4":"lookupInterest(uint256,uint256)","2a5c792a":"getAllTokens()","2a5cd45e":"getModuleIDByName(string)","2a5da7cd":"AnimatixToken()","2a5e695e":"Clean()","2a5eb26a":"BITCOINGAME()","2a5ed678":"currentContributionLimit()","2a5f6239":"_addReferrer(address,address)","2a5f6a0f":"setVariationCycle(uint256)","2a607962":"minCutValue()","2a608c0c":"VicoOwner()","2a60cf07":"FUTURE_DEVELOPMENT_FUND()","2a61ae19":"LockBalance(address)","2a61d47b":"getResourceSetCount()","2a62738b":"icoEndDate()","2a62b7fa":"IcoContract()","2a632eb5":"setUsdTokenPrice(uint256)","2a6389dc":"IsTransferFromOldContractDone()","2a649d6a":"returnFixed()","2a64e635":"simpleToken()","2a64fb63":"getSaleDate(bytes)","2a663686":"fpartSigned(int128)","2a666e01":"_fight(uint32,uint32)","2a66ede5":"giveMeETH()","2a677fb9":"getTokensForValue(uint256)","2a6852bf":"KOKOCoin()","2a6865e3":"PibbleToken()","2a69d486":"changeCraneStatus(bool)","2a69e1c6":"onlyWhitelistedCanDo()","2a69e7d9":"transfer(address,uint48)","2a6a5394":"TokenCappedCrowdsale(uint256)","2a6b157a":"CrowdsaleClosed(address)","2a6c703b":"RATING_EXPAND_INTERVAL()","2a6c7757":"kjhcoin()","2a6cc9bf":"QRReal()","2a6d474d":"usdPerEthMin()","2a6d6c08":"ReleasableAmount(address,uint256)","2a6dd48f":"approvedFor(uint256)","2a6dd8c9":"getPercent()","2a6dd9cb":"getInfoA(uint256)","2a6e3803":"getSoldAreasCount()","2a6e3e5e":"correct_check_match(uint256[39])","2a6efd76":"additionalRewards()","2a6f39ed":"deleteAllParents()","2a70214a":"TWD_Omnidollar()","2a707d2c":"personal_withdraw(string,uint256)","2a709b14":"tokenManager()","2a70d1e7":"registerInit(address)","2a711ab4":"voteTeam(bool)","2a714078":"triggerAuth()","2a71e729":"NAGACOIN()","2a724f2a":"reclaimAllAndBurn(address)","2a729061":"IDXToken()","2a7292d0":"createToken(uint256,address,uint256)","2a7318ac":"changePresaleEndDate(uint256)","2a73db5c":"GetContributorInformation(address)","2a741385":"subTokens(uint256,string)","2a745971":"BlockKing()","2a745ae6":"flowerAllowed(address,address)","2a74833d":"getUserSupportInTournament(uint256)","2a7575ee":"availableBalanceOf(address,address)","2a75a2ac":"addressFundAdministration()","2a75cb71":"removeOwnerRequest2(address)","2a764406":"CreateLRP(address,uint256)","2a76a169":"freezeMultipleAccounts(address[],bool[])","2a76ffae":"depositEtherForRefund()","2a774c27":"totAllocation()","2a776e3d":"setKYCLimited(address[])","2a7781cc":"postData(address,string,bytes32)","2a77b4af":"FEE_MUL()","2a77f2b7":"minMaxBuyETH()","2a7806e4":"noTokenLocked()","2a7813a4":"BitcoinBlackPearl()","2a781f78":"getKYCPresalePayload(bytes)","2a782802":"creatorBalances(address)","2a792f57":"buyAKeyWithAmount(uint256,address,uint256)","2a795d79":"bounty_allocation()","2a79fa0e":"TakePrize(uint256)","2a7a50a5":"Intro(string,string,string,string)","2a7a80a4":"trade(address,address,uint256,address,address,uint256,uint256,address,bytes)","2a7b0172":"dontSellRock(uint256)","2a7b2c93":"split(string)","2a7b3d4d":"resumeWhitelist()","2a7c24f1":"power(int256,int256)","2a7ca11f":"getMemeData(uint256)","2a7caaec":"FOUNDATION_WALLET()","2a7e0cc0":"createtoken(string,string,string,string,string,uint256)","2a7e5018":"timeVault(address)","2a7e60b6":"setRevealClosed(uint256)","2a7ef0cc":"IDEA()","2a7f26c4":"GetAllCurrencyIDs()","2a8014ca":"escrowAmount(address,uint256)","2a804835":"setCooldownEndBlock(uint256,uint64)","2a805069":"createToken(uint256,uint256)","2a808899":"getSkillCount(address)","2a8092df":"isMinting()","2a812941":"getInitializeDesignatedReporterAddressValue()","2a816e65":"factorWeight()","2a8219e2":"setFundingBlock(uint256,uint256,uint256)","2a827f99":"getTokenOwnerReward()","2a82fdbd":"approveAdd(uint256,address,bool)","2a835d67":"changePreIcoStartTime(uint256)","2a83cd70":"MrReaperToken()","2a845b9f":"ADPay()","2a8565b4":"GACT()","2a856fcf":"debit(bytes32[],uint256[],uint64[],uint8[],bytes32[],bytes32[])","2a858126":"tickerRegistry()","2a8587f9":"unAuthorized(address,address)","2a85a45d":"right38(uint256)","2a85b7dd":"getBackEtherFor(address)","2a862f1a":"notLessThan()","2a86eef3":"countDiscount(uint256)","2a874f34":"finishCampaign(bytes32)","2a87a86f":"shift(address,uint256,bool)","2a882d1d":"TokenHolderSnapshotter(address,address)","2a887299":"bid_threshold()","2a89d1bc":"TranchorToken(uint256,uint256,address,address)","2a89d6fd":"registerForGetTogether(address)","2a8a8b19":"bonusList()","2a8a8ebb":"unitStake()","2a8ab73c":"getProductOrderPayer(uint256)","2a8ade3a":"TotalCapacity()","2a8d1c61":"maxMask()","2a8d7baa":"claimCompanyReserve()","2a8de0ca":"DranMe()","2a8e251f":"BitcoinNature()","2a8e391d":"OperationsFund()","2a8eb9a3":"arpToken()","2a8ec8cc":"numberOfPledges()","2a8f368b":"RESERVED_COMPANY_GROUP()","2a8f6aa8":"TOKENS_FOR_OPERATIONS()","2a8faf95":"secondaryGasLimit()","2a8fd223":"Flagged(address,bool)","2a9043e4":"sellValue()","2a9046d8":"disableGeneration()","2a905318":"TOKEN_SYMBOL()","2a905ccc":"getAdminFee()","2a9078d6":"OWNERS()","2a909257":"MultiCappedCrowdsale(uint256,bytes32,uint256)","2a9121c7":"ethereumToTokens_(uint256)","2a91ab16":"doAirDrop(address[],address,uint256[],uint256)","2a922d54":"collectedAddresses(uint256)","2a92362c":"getPaid(uint256)","2a9278c5":"optionPoolLockTotal()","2a92bb17":"OPRAH()","2a92bffa":"setEditionPackPrice(uint8,uint256)","2a93b5bb":"pausePreIco()","2a943be1":"LIRAX(string,string,uint256,string)","2a952b2d":"process(bytes32)","2a952b4b":"setParents(uint256,uint256,uint256)","2a970043":"create(string,uint256,uint256,uint256)","2a98e802":"setPerformanceBonus(uint256)","2a9a86c1":"createBucket(bytes32[])","2a9b4921":"testManager(address)","2a9b6975":"SuperNanoCoin()","2a9b6dee":"pastFiveMinutes()","2a9ba092":"resizeIssuersArray(uint256)","2a9d04f0":"TOKEN_PRIVATE_SALE_CAP()","2a9e97f1":"matured_block_number()","2a9edf6f":"ownerSetStakeStartTime(uint256)","2a9f0fb2":"getPriceWithInterests(uint256)","2a9f1a79":"acceptPayment(address)","2a9fabd2":"betMatch(uint256,uint256)","2a9fb933":"MintExecuted(uint256,address,uint256)","2a9fb9b2":"userTransfer()","2aa0426c":"getAllBlocksByOwner(address)","2aa056cd":"shares_holders_count()","2aa073c5":"icoActive()","2aa0da47":"paymentSettings(string)","2aa1e848":"getPlayerAffT2(uint256)","2aa2b7eb":"T8CToken(address,uint256)","2aa2f7a4":"getOwnOrderByIndex(uint256)","2aa3177a":"self_store()","2aa37a41":"substractBalance(address,uint256)","2aa49dd7":"Pixiu()","2aa4c051":"setifoodDevAddress(address)","2aa531d9":"getPlayerData(address)","2aa5411f":"jadeRec(uint256,uint256)","2aa5ed61":"DayLimit(uint256)","2aa6f98b":"ledToken()","2aa71e24":"init(bytes32,address)","2aa852b3":"removeListener(address,address)","2aa8be8d":"createPermission(address,address,bytes4,address)","2aa9466b":"updateMyWorks(bytes32,address,address,bytes32,uint256,uint256)","2aaa308e":"finalize(address,address,address,address)","2aaa49f5":"percentageQuarter3()","2aaa9de1":"AlicToken()","2aab1351":"receiveFromSigned(address,bytes,uint256,uint8,bytes32,bytes32)","2aab22ff":"BonusReferrerCrowdsale(uint256)","2aab80dd":"optionPool()","2aabb48e":"nextContributionCap()","2aabffdf":"disableSaleAgent(address)","2aac6911":"poolBLock()","2aac8ad4":"getFirstAndSecondItem()","2aad292e":"setOperatingOfficer(address)","2aadafe8":"refundAdvertiser(address,uint256)","2aae7f26":"Arcturus()","2aae88f6":"removeFromGeneration(uint256,address)","2aaee1a5":"Drawer()","2aaef20c":"sixth_withdrawal(uint256)","2aaefa9f":"centsExchangeRate()","2aaf1685":"testControlCreateWithParentSameItemId()","2aafbf7c":"Getether()","2aafe9e7":"metToken()","2ab0252d":"getERC721AddrPawn(uint256)","2ab08396":"OwnersDb()","2ab0be77":"getTicketCode(uint256)","2ab0bf3c":"GetContributorData(address,uint256)","2ab13037":"votesNo()","2ab19a7e":"GoalMaximumReached(address,uint256,uint256)","2ab2174e":"subOnOneStage(address,uint256,uint256)","2ab22592":"updateWinnerBid(bool,bytes,uint256,bytes,bytes,bytes)","2ab24e3b":"commitVote(address,bytes32,bytes32,bytes32)","2ab26831":"getRateIco()","2ab28ce4":"buyTree(uint256,address)","2ab290fc":"updatejingzhi(uint256,string,uint256)","2ab34a91":"claimEnergy()","2ab4672a":"BatchCreateSaleAvgPrice(uint256[],uint256,uint256,uint256,uint64,address)","2ab4d052":"maxTotalSupply()","2ab4ebfa":"AddItem(address,address)","2ab6a50e":"payoutBigBonus(address)","2ab6f3f0":"BteamBets(uint256)","2ab6f8db":"renounceOperator()","2ab7173b":"lockup_startdate()","2ab72d2f":"assetIdOfToken(uint256)","2ab76377":"icoEndTimestampStage3()","2ab7961e":"aDeleteMessage(uint256,string,string)","2ab7d104":"_getAllRevisionIpfsHashes(bytes32)","2ab8de9b":"hash_ripemd160(string,uint256)","2ab8fc2d":"reservesPerTokenSrc(address,uint256)","2ab90d66":"ownerrestart()","2ab924d2":"HRCoin()","2abaa0c9":"picosCap()","2abaca23":"participate_in_arbits_presale_fiat(address,uint256)","2abd7fc8":"withdrawDao()","2abdbeb8":"forceOverStage()","2abdf1ef":"_update(string,uint256,string,uint256,uint256,uint256)","2abe4f60":"getInStake(uint256)","2abe5a2d":"getCandidate(uint32)","2abf2aae":"payMaxAuctionEther()","2abfab4d":"donationCount()","2abfaf1f":"setFreeTransfer(bool)","2abfbd28":"mintCommunityRewards()","2ac016ad":"addBackend(address)","2ac025ab":"removeAddressFromRole(address,string)","2ac08739":"getCurrentDuke(string)","2ac110c5":"icoPhase2Start()","2ac12622":"cancelled(bytes32)","2ac197c4":"IPMCOIN()","2ac1a995":"HiBTCToken()","2ac1db5a":"getEthToTokenUpdateOrderHint(uint32,uint128,uint128)","2ac20ed4":"createInitialDays(uint256)","2ac2af53":"updateParameters(bytes32)","2ac306b0":"BitCoin()","2ac364b4":"PalavraCoin()","2ac394a4":"durationBetweenRewardMints()","2ac48524":"getTokensCount(address)","2ac4a51d":"OVALExchangeToken()","2ac50df1":"tokenPriceOracle()","2ac68b78":"acceptPayment(address,uint256)","2ac69167":"StockLocation(string)","2ac6f15f":"exchangePreDGZTokens()","2ac71c16":"maxUSD()","2ac7f8ce":"CrowdSaleChanged(address)","2ac85e46":"isValidNode(uint256)","2ac87112":"ETHRaised()","2ac9bf09":"bid(uint256,uint256,uint256)","2aca2b16":"setInvestxPlatform(address)","2acada4d":"getAllAssets()","2acc204c":"killMeshPoint(int256,address,address,string,address)","2accf2f7":"splitFunds(address,address)","2acd1a95":"sling(string,string,string,string,uint256)","2acd2000":"removeFreezer(address)","2acd7e41":"transferOwnerToTest()","2acefd0f":"setCitySlogan(uint256,string)","2acf3908":"StealthGridToken(uint256,string,string)","2acf8551":"playMeta(address,address,uint256)","2ad02172":"MAX_PREICO_SUPPLY()","2ad0a4e9":"pauseNotice()","2ad11b9e":"getMinerals()","2ad12937":"OwnableToken()","2ad1bc09":"steal(int128,string,address)","2ad2a9f8":"transfer(bytes32,uint256,address)","2ad2ae2e":"collectLocalBounty(uint16,uint256)","2ad3274f":"UpgradeScheme()","2ad3509b":"ExcreteumToken()","2ad389e3":"constructHashRs1Rs2(bytes,bytes)","2ad3e8bc":"GreenChain()","2ad3ef70":"randContract()","2ad45312":"WEI_MINIMUM_PURCHASE()","2ad4d818":"userCreate(string,string)","2ad64a4d":"MAXCAP_TOKENS_PRE_ICO()","2ad8016e":"changeDiscount(uint256,uint256,uint256)","2ad8aaa6":"bonusAmmount(uint256)","2ad8d875":"getPayeeExpectedAmount(bytes32,uint8)","2ad8fbd2":"MerrierToken(string,string,uint256,uint256,bool)","2ad92740":"tokensPurchased(address)","2ad9527e":"h_pwd()","2ad95786":"winner(address)","2ad9618c":"startCrowdsale(uint256,uint256,uint256,uint256[],uint256[])","2ad99825":"setOwnerCutPercentage(uint256)","2ad9efc0":"UbayToken(address,uint256)","2ada2596":"getMember(address)","2adbb84d":"onFreezing()","2adbc396":"BurnableCrowdsaleToken(string,string,uint256,uint256,bool)","2adc2cd2":"COIN_PER_ETHER_ACTIVE()","2adc7da3":"setCentralBanker(address)","2add5a50":"cofounders(uint256)","2add78bb":"StartQ(string,string)","2addeab6":"getSolver(uint256)","2ade6c36":"getNodeAddress(bytes32)","2adf68bb":"UTPLToken()","2adf7d2f":"tenZero()","2ae1158d":"votingWeightOf(address,uint256,uint256,uint256)","2ae26d8e":"tenDecimalPlaces()","2ae3594a":"hit()","2ae418a4":"getPrivatePreSaleTokenBalance(address)","2ae4b85f":"MAX_HOST_PERCENT()","2ae524c2":"mintRiskTokens(address,uint256)","2ae6218d":"getBurnPrice()","2ae67563":"GameSicBo(string,uint256,uint256,uint256,address)","2ae72544":"length(int256)","2ae7c2df":"Ethernite()","2ae7c313":"Injected(address,uint256,uint256)","2ae8284a":"_newGame(uint256)","2ae8636d":"withdrawPRSTokens(address)","2ae87a70":"getNumContents(address,uint256)","2ae8a2d2":"sendFunds(address,uint256,uint256)","2ae8a7e3":"checkRole(address,bytes32)","2ae8b4a3":"actualGotETH(address)","2ae9782c":"MARRON()","2ae9c600":"protocolVersion()","2aea4d21":"sealer()","2aeaa291":"checkRewards()","2aeabfbf":"getLiquidityAndPositions(bytes32,address)","2aeacd4a":"exchangeTokensFromOtherContract(address,address,uint256)","2aebcbb6":"finishVote()","2aec3a71":"ProofOfHumanityAddOn()","2aec9466":"updateInfo(uint256,uint256,uint256)","2aed1390":"kyberContract()","2aed1905":"setMatchingEnabled(bool)","2aed256e":"inRangeToDisembark(uint16,uint16,address)","2aed7f3f":"reclaimContract(address)","2aee19c7":"testCreateWithNonce()","2aef3898":"ChangeMinSaleAmount(uint256)","2aef6ff6":"serviceTrasferFromDist(bytes32,address,uint256)","2aefb7c5":"funds_claimed()","2af004e7":"setReferralAddress(address,address)","2af05c4e":"lastMintingTime()","2af05d07":"unlockCurrentAvailableFunds()","2af0ac71":"getAmountSoldAfterPowerDay()","2af123b8":"diffHours(uint256,uint256)","2af1616d":"MissionToken(uint256,string,uint8,string)","2af1b5a2":"protectedUnlock(address,uint256,string)","2af1c247":"mint(string,uint256,uint8,string)","2af22e3b":"getJobs(address,uint256)","2af37ba0":"Donate(string)","2af38eab":"totalBspAmount()","2af39bab":"AssetBackedTokens(string,uint8,address)","2af3b7f8":"updateState(bytes32,uint256,bytes,bytes,bytes)","2af4c31e":"changeOwnership(address)","2af52312":"TRAToken(address)","2af5356a":"claimTeamTokens()","2af5cfdd":"priceOfEthOnEUR()","2af5e6b2":"setPriceEther(uint256)","2af6fb10":"ERC20TokenImpl()","2af7ac0a":"rtu(uint256)","2af7c4d7":"Certifiers()","2af7ceff":"testPrice(uint256)","2af7ecc7":"addRosenCertAdmin(address)","2af8afca":"dgt()","2af8b645":"release(bytes32,bytes32)","2af8fd94":"ISmartCert()","2afaca20":"buy(uint256,address,uint256)","2afb21bc":"InvestWithdraw()","2afb9fb1":"isCardTradeable(uint64)","2afbbacb":"canStake(address,uint256)","2afbc38f":"Annexe_SO_DIVA_SAS()","2afbe339":"QQQToken()","2afcdfbc":"createGen0Auction(uint256,uint256,uint256,uint256,uint256)","2afcf433":"PriceTwoEnable()","2afcf480":"invest(uint256)","2afd1a7d":"getReleasableAmount(address)","2afe4c37":"tokensleft()","2afe9f1e":"TestTokenContract()","2afed67e":"amountFundBounty()","2aff101c":"LinearDecayingTokenFunction()","2aff2843":"servusMultiSig()","2aff49d7":"setSizeAndRate(uint256,uint256)","2b000f00":"calculate_next_expected_wei(uint256,uint256,uint256,uint256)","2b00c6fd":"createHorseShoe1(uint256,uint256,address)","2b019692":"RYNote()","2b01bf51":"isValidMember(address)","2b028bbb":"LKCExchangeRate()","2b02d9af":"NIMBUS()","2b03b8d4":"IMDEXdeposit()","2b03d70e":"undisputeFavor()","2b04451a":"totalExtraOptions()","2b048f77":"getMyDeployAt(uint32,uint32)","2b04b478":"removeUsersFromGroup(bytes32,address[])","2b04d8f7":"takeOffer(uint256,address)","2b04e840":"getBalance(address,uint256)","2b05d346":"CallScheduled(address)","2b069816":"getJobValue(uint256)","2b071e47":"spread(address[],uint256[])","2b07682a":"withdrawFoundersTokens()","2b086b92":"convertToTMEX(uint256,address)","2b08fef7":"buy_token(address[],uint256)","2b093fe9":"TOKEN_MULTIPLIER()","2b0999f3":"initialYear()","2b09e707":"amountHives()","2b0aa1ed":"updateEthFee(uint256)","2b0ac7c4":"_createToken(uint256,uint256,uint256,uint256,uint256,address)","2b0cb194":"mintRawTokens(address,uint256)","2b0d0180":"luckyBuy()","2b0d0c6a":"afterFirstRefundRoundFundsReleaseNumerator()","2b0e16bf":"PRESALE_BALANCES()","2b0e64b3":"determineCommissions()","2b0ebfe9":"activatedJuryTokens(address)","2b0fbf72":"getMobster(uint256)","2b0fd89e":"ARcoin()","2b0fdb72":"MINIMUM_MANUAL_SIGN_PERIOD()","2b0ff02d":"listCard(uint64,uint128,uint128,uint24)","2b100a31":"setStatsSumHours(uint256,uint256)","2b1071c9":"testTransferToNullAuthority()","2b112e49":"getCirculatingSupply()","2b11e7f6":"SILVER_AMOUNT_SKL()","2b124245":"selfRegisterDINsWithResolver(address,uint256)","2b12553b":"saleExchangeRate()","2b13d799":"redeemedList(uint256)","2b1453dd":"addSwap(string)","2b146407":"PrivateSale()","2b14b712":"addClient(address,address,uint256)","2b14ca56":"sellFee()","2b151096":"placeSaleOrder(bytes8,bytes8,uint256,uint256,uint256)","2b15eb9b":"TongTong(string,string,uint256)","2b16b56a":"setIndex(uint256,uint256)","2b16f1ef":"nextPoolPercentage()","2b17355e":"balancesPrivate(address)","2b17b6a9":"bnbToken()","2b1841d2":"openCdp(uint256,uint256,uint256,address)","2b1857a5":"dividendPathways(address,uint256)","2b190f18":"getFreeTokens()","2b193ac4":"INITIAL_AC_SUPPLY()","2b198366":"addCertifier(address)","2b198808":"BloccaConto(address,bool)","2b1c511f":"getAvailability(address)","2b1c6982":"testTemp2()","2b1dd8da":"refundFees()","2b1e27f1":"migrateDomain(uint256,bytes32)","2b1e5016":"releaseTheHodl()","2b1ed01a":"warehouses()","2b1f7660":"PRZTToken(uint256,string,uint8,string)","2b1fcc10":"impl_cancelOrder(address,uint256,bool)","2b1fd58a":"acceptBid(uint256)","2b20e397":"registrar()","2b214618":"listAllBuyBalance(address,uint256,uint256)","2b21502f":"totalEthRcvd()","2b21d01b":"rateBTCxETH()","2b223264":"BitcoinBrand()","2b22a18c":"allocate8ProjectToken()","2b232741":"pullFromCirculation(uint8)","2b2443db":"canRaiseUsing(uint256)","2b2449b5":"setMaxCAP(uint256)","2b24aa6e":"rateA()","2b252d17":"_randomize(uint256,uint256)","2b25303b":"USDTUBE()","2b25a7e4":"giveKudos(address,uint256)","2b28d2d0":"totalFrozenAccountsMapping()","2b291eb6":"UserAddTicket(bytes)","2b29532b":"distributeLCASH(address[],uint256,uint256)","2b297f9e":"registerDao(address)","2b29908d":"BGB_address()","2b29fbfa":"testFail_voterNotCertified()","2b2b2882":"mintIcoTokenMultiple(address[],uint256[])","2b2badb3":"getAuditor(address)","2b2c71af":"doTradeofCollateral(address,address,uint256,uint256,uint256,uint256)","2b2c91b9":"refundApprove(address,uint256)","2b2dc12e":"RECEIVER_PAYOUT_THRESHOLD()","2b2e7159":"typeB()","2b2e76f3":"LA_wallet()","2b2f4d84":"setVestingParams(uint256,uint256,uint256)","2b2f88a8":"quantidadeDeAutorizacoes(address)","2b2fbd68":"minTicketEur()","2b302b60":"fairymasterReq()","2b30a84e":"rollTwo(address,uint8,uint8)","2b30d2b8":"invoke(uint256)","2b318568":"AddDynamicProfit(address,uint32,uint256)","2b321633":"testCloseChannel()","2b3297f9":"swapper()","2b337152":"totalissue()","2b343100":"newPlayerFee()","2b359e6b":"fundingTokens()","2b35d08a":"_computePrice(uint256)","2b36316e":"updateStageCap(uint256)","2b36a657":"profits()","2b379218":"globalDailySupply()","2b37d313":"tdeIssuer()","2b38ee56":"exitFee_()","2b3a4ae3":"adjustFeeEntitlement(address,uint256)","2b3b885d":"BGJC(uint256,string,string)","2b3c7562":"tierThreePurchase()","2b3da717":"BOBOTOKEN2()","2b3eae40":"MatchmasterTakeover(address,address,uint256)","2b3eb76c":"awardAmountPrime()","2b3ed526":"setFiatContract(address)","2b3ede1c":"WithdrawAll(address)","2b3f9f01":"_setSpendAvailable(uint256)","2b3fbbbb":"setPixelColor(uint16,uint16,uint24)","2b3ff9e9":"DLVO()","2b4143bd":"BasketRegistry()","2b4158cb":"buyFreePixels(uint256,uint256,uint256,uint256)","2b41a901":"grandTotalAllocated()","2b423b05":"changeRequiredMinor(uint256,bool,bytes)","2b42a89a":"setWhitelistOnlyPermission(bool)","2b42f4b2":"TokensCreated(address,uint256,uint256)","2b435366":"fund(address,bool)","2b4353f2":"payoutRate()","2b44d05f":"LISA()","2b44e5be":"distributeTokenToAddress(address,address,address,uint256)","2b44fd38":"dayLimit_()","2b455ac6":"insertMilestone(uint8,uint256,uint256,uint256)","2b459e81":"SpermLabsReborn()","2b45bcf9":"minimumHydroStakeUser()","2b4656c8":"initialize(address,address,address,uint256,uint256,uint256,uint256)","2b46e7f8":"SLUTZToken()","2b47571a":"resetWithdrawTimer(uint256)","2b47cb17":"TopToken()","2b49c9c2":"updateBanqueAddress(address)","2b49d425":"currentProposal()","2b49d9e5":"setFighters(uint32,uint32,uint256[])","2b4a27cb":"fechPreAllSumNumForCandidate()","2b4a2d0a":"getInfoFromCreateAuction(bytes)","2b4a3b31":"doTransferFrom(address,address,uint256)","2b4a964b":"networkGrowthAmount()","2b4bdf76":"getBdpController(address[16])","2b4ca103":"TXQToken(address,uint256)","2b4cbcc3":"getCombat(uint256)","2b4d0450":"BaseToken(string,string)","2b4d7c3e":"getPositionLender(bytes32)","2b4e8413":"userNumber()","2b4f79b3":"buyMessage(bytes32,uint256,string)","2b5129f5":"WaterMeterAcorn(bytes32,uint8,uint256,uint256,uint256)","2b513549":"mokenNameBytes32(uint256)","2b514749":"getTeamPrice(uint256[])","2b5184a6":"addSponsorship(address,address,uint256)","2b5187fd":"STCC()","2b521416":"features()","2b549b82":"createAuction(uint256,uint256,uint256,uint256,uint256,uint256,address)","2b54c3ce":"addToken(uint256,string)","2b554142":"redeemMany(address[],uint256[])","2b556813":"twitterDropMultipleAmount(address[],uint256[])","2b5570ad":"PatientFactory()","2b5630c2":"displayvehicledetails(address,uint256)","2b57298b":"getDate(uint256)","2b577ec4":"PREMINE_RELEASE(address,uint256,uint256)","2b58072f":"getDatasetsCount(address)","2b58150b":"setLotteryDuration(uint256)","2b587555":"privateTransfer(address,uint256)","2b58e202":"tokensOfOwnerFromIndex(address,uint256,uint256)","2b5914fe":"setUserName(string)","2b596a23":"balanceOfShares()","2b597e4d":"updateBool(bytes32,bool)","2b59d1fc":"borrar()","2b5ad2ad":"secondTimer()","2b5af004":"appendDecryptedBid(uint256,uint256,uint256,address,address,uint256,uint256,uint256)","2b5b6872":"AIRDROP_AMOUNT()","2b5da915":"Property(string,string,uint256,uint256)","2b5daa86":"newModule(string,address,bool,bool)","2b5f227e":"encodeBytes(bytes,uint8)","2b5faebd":"_calcTokens(uint256,uint256)","2b5fc4ce":"RSUNToken()","2b603c71":"allowances(address)","2b6133f5":"checkTierCap(uint8,uint256)","2b625874":"distributePeerTokens()","2b62ef2a":"CryptoCurrencyToken()","2b633f77":"ballotCancelingThreshold()","2b644ac8":"_setAvatarIfNoAvatarIsSet(address,uint256)","2b65d18a":"wireLimit()","2b65e040":"ownerPool()","2b664d8a":"getUsersByDocHash(bytes32)","2b680932":"ANNOUNCE_WINNER_DEADLINE()","2b68b9c6":"destruct()","2b68bb2d":"cancelContract()","2b68fc21":"guarenteedPaybackTime()","2b69f40d":"PaymentServ(address,address,address,address)","2b6a8b46":"addSpace(uint256,uint256,bytes,uint256,uint256,uint256,uint256,string,string,uint256)","2b6aa69d":"NewFunds(address,uint256)","2b6ada6d":"WalletWithDailyLimit(address[],uint256,uint256)","2b6b7c69":"airdropIndividual(address[],uint256[],uint256,uint256)","2b6bbc31":"testingOnly()","2b6bc920":"answerRequest()","2b6bd13a":"ChainInfo()","2b6c750f":"loseSponsor(uint32,int256)","2b6d7706":"transferTokensManuallyToMany(address[],uint256[],uint256)","2b6d7a66":"hasActivePass(address)","2b708fc9":"usageFee(bytes32,uint256)","2b70faf1":"game_paused()","2b711051":"investorsCount()","2b713d71":"rankToAddress(uint256)","2b71b0e5":"getStat()","2b7216e5":"donateToCampaign(uint256,uint256)","2b726758":"ETIC()","2b72c5fc":"FANCY(uint256,string,string)","2b73a83b":"CBS(string,string,uint8,uint256,uint256,uint256,bool,bool)","2b741ed6":"claimedFees(uint256,address)","2b7423ab":"average(uint256,uint256)","2b747a29":"buy_tickey(address)","2b750f4f":"DIVISOR_PRICE()","2b75289b":"placeBet(uint8,uint8,uint8,int256)","2b7568d9":"admin_withdraw_all(address)","2b7582c0":"sendEthForReward()","2b76823c":"ICOBuyer(address,address,uint256,uint256,uint256)","2b770ee9":"Ddjtab(uint256,string,string)","2b774d46":"XWALLET()","2b78194f":"GAS_REFUND()","2b7832b3":"adminCount()","2b783bc8":"addCredentials(bytes32,bool)","2b785960":"testBitAndSuccess()","2b788e33":"MAX_BOUNTYTOKENS_AMOUNT()","2b790ee4":"calcProfitFromTotalWon(uint256,uint256)","2b791053":"getDailyLimitRemaining()","2b791d6e":"storedDividendsOf(address)","2b79d7ba":"testFailMoveWithoutTrust()","2b7ac3f3":"verifier()","2b7b3a6c":"createBuildingAuction(uint32,uint8,uint8,uint8,uint8,uint8,bool)","2b7be84b":"AfterSchoolCrowdsaleToken()","2b7c3138":"MANETokenPartnerCrowdsale(uint256,uint256,address,address,address,address,address)","2b7ce9cd":"updateThresold(uint256)","2b7d13cc":"withdrawRemainingToken(uint256,address)","2b7d177b":"isvalidOrg(address,address)","2b7dd488":"totalLBSold_GENERAL_3()","2b7e063e":"GenOutChipsNum(uint256,uint256,uint256)","2b7e2169":"getTotalSell(uint256)","2b7e4295":"invadePlanets(uint256,uint256[],uint256[])","2b7ec7fe":"getLotInvested(uint256,address)","2b81b8a4":"alreadyRegisteredMessage()","2b82714f":"deliverAngelsREDAccounts(address[],uint256[])","2b828e4a":"addTx(bytes32,bytes4,address)","2b82aed6":"setPayerAddr(address)","2b82cf1f":"unFroze(address,uint256)","2b84aabe":"trust(uint8)","2b84fe83":"reserveFeeToBurn(address)","2b85ed9c":"purchaseCount()","2b860e6d":"transferToThroughVariable(address,uint256)","2b861629":"storeBlockHeader(bytes)","2b865dea":"airdropTokenDistributionMulti(address[],uint256[])","2b86d48a":"MDKToken(address)","2b876784":"ZHOUToken()","2b877dfd":"sendCoin(bytes4,bytes32,bytes32,uint256)","2b878c7c":"KYCValid(address)","2b88c42d":"buyItem1()","2b88cbbf":"getExcludes(uint256)","2b8a1c00":"t2tokenExchangeRate()","2b8a1c5a":"setGuardian(address,bool)","2b8a36e0":"freezeTransferTime()","2b8a789b":"ChangeGameHidden(address)","2b8af65b":"INTERFACE_SIGNATURE_ERC165()","2b8b09d4":"REDGIL()","2b8b1bc4":"transferAndFrostTokens(address,uint256,uint256)","2b8b6667":"deregister(address[])","2b8bbbe8":"add(uint256,address)","2b8c8a20":"Sale(address,uint256,uint256,uint256,string,uint256)","2b8cc346":"acceptRequest(address)","2b8cd2f7":"withdrawUncommittedTokens(uint256)","2b8cd5c6":"getComponentSupport(uint16)","2b8d0cd7":"setIcostart(bool)","2b8e4df1":"vest(bool)","2b8f2042":"withdraw_funds()","2b8f7a49":"depositMoney(string)","2b8f899e":"OzoneToken()","2b901a0a":"getOwnerByName(bytes32)","2b90557c":"minSet()","2b905bf6":"TEAM_WALLET()","2b90bb3a":"distributeGoTokens(address,address)","2b9122df":"getTimeTillEnd()","2b913151":"secondCapEndingBlock()","2b919aa6":"validPurchaseSize()","2b920a6b":"CampaignAccountFactory(address)","2b925b25":"minimumInvestment()","2b92b8e5":"hashValue()","2b92c776":"cancelBuyOrder(address,uint256,uint256,uint256,uint256)","2b9530d8":"transferTokens(address,uint256[])","2b956ff7":"getUserId(address)","2b968958":"revokeOwnership()","2b96a0a1":"getGamesMeta(uint256[])","2b96c00e":"abortGame(address,uint256)","2b97c6e4":"Cilox()","2b98222e":"getInstitutionByAddress(address)","2b985942":"LittleStoreERC20Token()","2b985f7c":"testNegatives(int256)","2b9897fb":"smallCapLimitOf(address)","2b991746":"approveFor(address,address,uint256)","2b99a087":"getLpIsWorking(int256)","2b99db6a":"tokensApproved()","2b99f359":"carOfByIndex(address,uint256)","2b99f3e1":"setIsTurnDataSaved(bool)","2b9a5c34":"_getTileAt(int32,int32)","2b9a7fae":"_updatePlayerOverrideId(uint256,uint256)","2b9b7573":"MAX_TRANSFERS()","2b9be92e":"GanaTokenAirdropper(address)","2b9cb4f8":"uniq(uint64[])","2b9cd08b":"submitAddOwnerTransaction(address)","2b9ce01e":"currentIcoTokenPrice()","2b9e05d1":"Betportchain(uint256,uint256)","2b9e5088":"filterTransactions(bool)","2b9e98b1":"changeFundingPercentages(uint256,uint256,address)","2b9edee9":"softCapReached()","2b9fd446":"isHatchOnCooldown()","2ba00198":"setBaseCap(uint256)","2ba0ab78":"EyeToken()","2ba0b09f":"AddNewCategory(bytes4,uint8,uint8,address)","2ba11f2a":"CONVERSION_DECIMAL_FACTOR()","2ba1e439":"createOraclizeCallback(bytes32,uint256,uint8,uint256)","2ba25366":"mintInBatches(address[],uint256[])","2ba29217":"canExecute(uint256,uint256)","2ba2d714":"LordXChain()","2ba2ed98":"setMagicNumber(uint256)","2ba5390f":"isFirstPartReleased()","2ba5b90d":"get_number_of_DBs()","2ba665e5":"getDoc(uint256)","2ba6d8fe":"PRESALE_WEI_CAP()","2ba73c15":"setCOO(address)","2ba7910a":"provider1()","2ba7fc87":"tgeIssuer()","2ba8b7e4":"getMinimumAuctionPrice(uint256)","2ba8f526":"OfferToGuardian(uint256,uint256)","2ba96462":"supportsERC165Interface(address,bytes4)","2ba996a5":"getListedTokens()","2baa2c58":"disqualifyBid(address,bool)","2baab935":"Fuschain(address,uint256)","2baabbf7":"finalSupply()","2babd014":"sellSecond(uint256)","2bac0b3b":"vendingCreateCollectible(uint256,uint256,address)","2bac276b":"badgeTransfer(address,uint256)","2baeceb7":"decrement()","2baf2acb":"mintTo(address,uint256,uint256)","2baf4f22":"_safeFalse()","2bafc817":"EpietherToken()","2bb03ab9":"earlyPresaleEDUSupply()","2bb03f6d":"ValidateCitySnapshot(address,uint256)","2bb0e10b":"serviceAccount()","2bb14104":"myData()","2bb20f4a":"soulsSold()","2bb22480":"calculateDrugSell(uint256)","2bb3dcc8":"totalInvocations()","2bb4c7d5":"STribeToken()","2bb51a05":"EDEX(address,uint256,uint256,uint256)","2bb685bc":"kill2()","2bb6ccf1":"delAuditAddress(address,address)","2bb70e54":"lockMasterTransfers()","2bb768f0":"adminGetCityData(address)","2bb81546":"getClaim(string)","2bb9cb1d":"buyXid(uint256,uint256,bytes32)","2bb9ffef":"startBalance()","2bba2d6d":"changeInvitedReward(uint256)","2bbb44b8":"adminCreat(address)","2bbc50b5":"getTotalInvestedEur()","2bbc9396":"periodICOStage2()","2bbd3c93":"ART_CONTRACT_ADDRESS()","2bbd59ca":"messages(bytes32)","2bbd84e8":"totalPurchaseValueInWei()","2bbd88f3":"LOBO()","2bbd9530":"unregisterAddress(bytes32)","2bbdb18a":"hasEnoughApproval(uint256,uint256)","2bbe62d6":"createSetup(address,uint256,uint256,bool,address,uint256)","2bbeac91":"lockTokenHolder()","2bbf532a":"isUnlocked(address)","2bbf54e8":"isBuyStopped()","2bc06a92":"canSend(address)","2bc0fe34":"infoMining(address)","2bc24d52":"IXTPaymentContract(address)","2bc31ca4":"developers()","2bc3217d":"forbid(address,address,bytes32)","2bc3656c":"buyTokensPreSale(address,uint256)","2bc38531":"setup(string)","2bc3a349":"GWTCrowdsale()","2bc402fa":"TOTAL_PREALLOCATION()","2bc40f9a":"setAddressUInt8(bytes32,bytes32,address,uint8)","2bc43fd9":"claim(address,uint256,uint256)","2bc46f27":"getQuestionIndex(uint256)","2bc4aa1a":"showInvestEther(uint256)","2bc53254":"priceFci()","2bc542a4":"votePublic(address,bool)","2bc57d73":"_doTransferFrom(address,address,uint256,bytes,address,bool)","2bc588ee":"release(uint256[],uint256[])","2bc5ca7a":"fullCycleSellBonds(uint256)","2bc5f9cb":"updateRateInWei()","2bc6597c":"depositsTillNow()","2bc67bde":"MIN_TASK_VALUE()","2bc80f3a":"T()","2bc85d5d":"updateTokenPriceProvider(address)","2bc86dc0":"AddBankerRound(uint8)","2bc89ff6":"REV()","2bc8ba53":"solicitaPagamento(uint256)","2bcb849c":"updateFeeProvider(address)","2bcbdf7f":"s29(bytes1)","2bcbe1b5":"getCelebrity(uint256)","2bcc79a7":"MockDeed(address)","2bccf04e":"createSale1()","2bce9e7b":"updateToken(address,uint256)","2bcef221":"signOne()","2bcf300e":"LC(uint256,string,string)","2bcf5760":"addToken(address,address,uint256,uint256,uint256,uint256)","2bcf892c":"div32(uint32,uint32)","2bcfcd7b":"getBonusAmount()","2bcfe0a6":"FitToken()","2bd00610":"numberOfCyclePlayers()","2bd0bb05":"totalSpentPerDay(uint256)","2bd0ce0f":"cancelBuyTokenOrder(uint64)","2bd152f0":"_getCollectibleDetails(uint256)","2bd185e5":"appendTokenHolders(address)","2bd21738":"CAIDCrowdsale(address,address)","2bd2523e":"cooAddReviewer(address)","2bd2a965":"openNextSale(uint256,bytes24,uint256,bytes24,uint256)","2bd30ca3":"costContract()","2bd4aa40":"total_amount(string,uint256,uint256)","2bd543c7":"calcTimedQuota(uint256,uint256,uint256,uint256)","2bd55918":"confirm_token_deposit()","2bd57604":"claimPlotMultiple(uint256[],uint256)","2bd579fc":"ico(uint256,uint256,uint256,uint256,uint256[],uint256[])","2bd5a48d":"finishMintingToken(uint256)","2bd5e353":"phase3Duration()","2bd71875":"hasMissedCheckpointSubmission()","2bd75c3c":"sendMarketingAndRNR()","2bd7cd17":"killToken()","2bd928e4":"commonDeposit(address,uint256)","2bd9530a":"editGas(uint256,uint256)","2bd97c6d":"getDawexSignature(string)","2bda04c5":"autoFreeze()","2bda1a55":"frozenReserveTeamRecipient()","2bda2a49":"BHIMToken()","2bda4eee":"getBridgeValidatorsInterfacesVersion()","2bdad637":"tokensSupply()","2bdb0d92":"getShareToken()","2bdb33c3":"getNumberOfDisputedDealsProPatient()","2bdb7097":"setRate(address,uint256)","2bdbc0ce":"ContractTokensReclaimed(uint256)","2bdc05c5":"assertEq26(bytes26,bytes26,bytes32)","2bdcd90d":"claimChip(uint256,string)","2bdd2290":"setBlockNum(uint256)","2bdd530b":"holderReferalTokens()","2bdd5958":"Purchased(address,uint256,uint256,uint256)","2bddb9b5":"canTransferIfLocked(address)","2bddc31c":"coauthor()","2bde41e1":"submitRing(address[3][],address,uint256[7][],uint256,uint8[1][],uint8,bool[],uint8[],bytes32[],bytes32[],uint256,uint16)","2bde8e96":"getGPShashRandomValue()","2bdf66d5":"SmartToken(string,string,uint8)","2bdfbd39":"finaliseCrowdsale()","2be09561":"startMint()","2be10384":"_removeKey(address)","2be29d71":"addressPartnerships()","2be2ad3c":"logUniverseForkedCalled()","2be2d95e":"amountOfInvestments()","2be2f085":"getCostForRace(uint8)","2be32dbb":"categoryCount()","2be3d1c9":"_getDroneDefaultAbility(uint256)","2be4a903":"removeUsers(address[])","2be4f3f5":"boardCost()","2be4fd9c":"getRemainManus()","2be51660":"calcTime()","2be521b2":"increaseBalance(address,address,uint256)","2be52293":"setExchangeOracle(address)","2be596ee":"unpauseInternal()","2be5e93a":"TOTAL_SUPPLY_UPPER_BOUND()","2be64f51":"RegisteredCampaign(address,uint256,address)","2be65e2a":"getFree()","2be65e45":"setMarketingRates(uint256,uint256,uint256)","2be6d43c":"ARKTagger_1_00()","2be6ec1f":"NULL_ENCRYPTION_ALGORITHM_ID()","2be79833":"nonFungibleRegistry()","2be86e01":"jcrUsdRate()","2be8c2a5":"transferTokensTo(address,uint256)","2be8f373":"changeWLMWallet(address)","2be90846":"enableBonus()","2be98d38":"HourglassV2()","2be9da97":"getBestAngel()","2beaead0":"lastDivideRewardTime()","2beaf416":"ShareXERC20()","2bec76fd":"maxBetCoinDice()","2becb6f7":"STARTING_SPERM()","2bed55b0":"buildDSEasyMultisig(uint256,uint256,uint256)","2bed69e0":"founderPercent()","2beea5c5":"testhash(uint256,uint256)","2beeaca4":"whitelist(address,string)","2bef4595":"authorize(address,address)","2bf04304":"whitelistAddresses(address[])","2bf0aeda":"DigiToken()","2bf1aa1d":"EthHodler(string,uint8,string)","2bf1f9da":"restart(bytes32,bytes)","2bf29ddb":"EventRedeemRisk(address,uint128,uint256,uint256)","2bf34551":"setRate340()","2bf34e60":"getUuid(uint256)","2bf37c42":"addFunds(uint256,address)","2bf435f9":"myMethod(string)","2bf4760b":"getEthPerfit(address)","2bf4d812":"AumentaToken(uint256,address)","2bf4e53d":"getCurrentShareholders()","2bf59135":"addLootbox(address,uint256)","2bf5a2ea":"mintForFounders()","2bf6e0a5":"setContract(address,address)","2bf7299b":"setMaxParticipants(uint256)","2bf79c94":"getTokenByOwner(address)","2bf7d279":"shouldRevertWithReturn(bool)","2bf7f6ba":"privateSell1LockEndTime()","2bf81dd3":"NPTToken()","2bf82843":"pay(address,uint128,string,uint32)","2bf885f0":"addNote(bytes32,bytes20,string)","2bf8faba":"AimiToken(address,uint256)","2bf9ab0b":"getPresellUpToTime()","2bfacd62":"calculateLockedBalance(address)","2bfaf3da":"Oracle(bytes32)","2bfc33ee":"KDI()","2bfc4c69":"getStringValue()","2bfd2a13":"calculate_dividend(uint256,uint256)","2bfd2e06":"buyBasicUnit(uint256,uint256)","2bfd91d4":"getMessageSigner(bytes32,uint8,bytes32,bytes32)","2bfda313":"getFile(uint256)","2bfe243f":"minStartPriceForCommishAuctions(uint128[])","2bfea0e4":"unpauseTransfer()","2bfefd5c":"calcMultiStage()","2bff4b66":"reapFarm(address,address)","2bff5630":"coachTakeOff(uint256)","2bff5fc4":"Incomplete()","2bffc7ed":"add(string,address)","2c011e7b":"winning_month()","2c01bb1c":"LogNewOwner(address)","2c01d52b":"_createRegion(string,address,uint256)","2c027eb9":"getDeployArrayLength(uint256)","2c02d622":"precalculate()","2c035157":"calculate_minimum_contribution()","2c044779":"getPublic()","2c04bf0c":"transferIXT(address,address,string)","2c052031":"getInsertPointForNumTokens(address,uint256,uint256)","2c0657c2":"additionalBonusAmounts(uint256)","2c06862b":"setCanBuy(bool)","2c07398d":"registerObserver(address)","2c0784ce":"send_DividendToAddress(address,uint256)","2c089048":"tokenCreationInit()","2c08ab0c":"ENJCrowdfund(uint256,address)","2c08eb0b":"changeTokensPerEther(uint256)","2c0994c1":"getMicroWalletAddress(uint256)","2c09bef7":"priceSetter()","2c0a036b":"resetICO()","2c0a33ef":"BethereumToken()","2c0a3f89":"castVote(uint256,uint256)","2c0a5c08":"BuyIn()","2c0a7e33":"pendingEthWithdrawal()","2c0aadc1":"nextGameInitialMinBetSize()","2c0b9685":"distributeeBTG(address[])","2c0bec2f":"sendCurrentPayment()","2c0c6488":"AirTrafficController(string,address[],address,address)","2c0c8563":"SetCoin(address,address)","2c0d0dbe":"AddProduct(uint256)","2c0d4e70":"RYNOTE()","2c0e0054":"lockInGuess(uint8)","2c0e3850":"storeInContract(address,address)","2c0f13a7":"icoStartTimestampStage3()","2c0f7b6f":"numCampaigns()","2c0fc8cb":"registerHandle(bytes32)","2c10e90c":"update(address[],uint256[])","2c1169ac":"ELOT()","2c12cc79":"HuumanStandardToken(uint256,string,uint8,string)","2c1352cf":"contacts(address)","2c135b93":"marketCap()","2c138236":"reservedTokensWallet()","2c142511":"_offlineHash(bytes32,bytes32,bytes32)","2c145eef":"DutchAuction(address,address,address,address,uint256,uint256,uint32)","2c154345":"getParticipantStake()","2c16c6ca":"addPrivilegeAddress(address)","2c16cd8a":"record(uint256)","2c174073":"PeriodSale(uint256,uint256)","2c181929":"getChainWork()","2c183fad":"mintTokenWithUnit(address,uint256)","2c197985":"VirtualExchange(address,address)","2c199889":"request(string)","2c19d480":"emitAccessGiven(address,bytes32)","2c19fbbb":"getUserTX(address,uint256)","2c1b17e4":"BonBonToken(address)","2c1b38ee":"isValidTokenId(uint256)","2c1bcb4f":"ContractLocked(uint256,string)","2c1cf6f6":"updateTradeStatus(bool)","2c1cf78b":"ETHinvested()","2c1d68d4":"countStakeHolders()","2c1e064b":"_translateWSIC(uint256)","2c1e6e48":"getADminFromDutchProxy(address)","2c1e816d":"setAdminAddress(address)","2c1ea461":"nextController()","2c1eed5f":"isPlayer(address,address)","2c1f1f8f":"getFreeBalances()","2c1fecfe":"isRefundable()","2c1ff9f8":"mInviteAddr()","2c203edd":"getOrderDetails(uint256,uint256)","2c2146aa":"verify(address,address)","2c215998":"updateStatus(string)","2c21ec94":"ethUpdates(uint256)","2c2206e4":"setAuditReportHash(uint256,string)","2c22af02":"cidTokenSupply()","2c22f2e2":"burnSplitPercent()","2c237912":"processSellRequestFiat(uint256,uint256)","2c244618":"calculateVestedOptions(uint256,uint256,uint256)","2c24909c":"getVotedTokensPerc()","2c24ecc7":"BecToken()","2c2622db":"LOCK_SLOTS()","2c2689b5":"getModuleAddress(string,string)","2c270617":"TempleDonationTrackingNote()","2c270c7e":"tokensFor1EthP2()","2c276699":"CheckOut(uint256)","2c27e581":"publicEndTime()","2c28aa1b":"RATE_FOR_WEEK3()","2c28f579":"goLive()","2c296656":"changeRequiredDevSignatures(uint256)","2c297478":"prolongH(uint256)","2c29eedd":"startPrivateSale(address,uint256,uint256)","2c2aa66c":"PokeCentral()","2c2aecf5":"isProcessNeeds()","2c2b4358":"setPercentOfPool(uint256[])","2c2bc50b":"LOWIQ()","2c2ccdfb":"kittyCoreAddress()","2c2da3cf":"expPercentage()","2c2de40a":"setMaximumSellableTokens(uint256)","2c2e3abe":"allocateFoundersTokens()","2c2fdc35":"getBalanceFromRound(address)","2c305abf":"updatePlayedNum(address,address,uint256)","2c308714":"returnBetAndOffer(uint64)","2c321ea1":"abToken()","2c327538":"ProofOfDiligenceToken()","2c329e99":"Last_block_number_and_bloctime_used()","2c344d14":"tokenRewardPreDGZ()","2c349627":"pauseToken()","2c34ce05":"increasedPrice()","2c34e6b9":"addDepositQuest(address)","2c354067":"executionBlockOf(uint256)","2c3599a5":"VINToken()","2c3788b1":"registerUserIfNeeded(uint256)","2c37a512":"bountyLockEndTime()","2c39d855":"confirmAndForward(address,uint256,bytes,bytes32,uint256,uint8,bytes32,bytes32)","2c39da94":"batchSend(address,uint160,uint256[])","2c3a15a0":"EidosToken(address,address)","2c3a1d5d":"Nerotoken()","2c3af973":"GStarToken()","2c3ba9e1":"addManyRegistered(address[])","2c3c42b2":"WLM()","2c3ca924":"handleProductionIncrease(address,uint256)","2c3ccb98":"levelUpByPenguinId(uint256)","2c3d3453":"csale()","2c3d38f0":"mintTokens(int256,uint256,address,address)","2c3dcdcf":"issueDuringICO(address,uint256)","2c3dfca7":"getPhException(bytes32)","2c3ee88c":"getRedeemAmount(uint256)","2c3f1304":"getSlotLength()","2c3f6a4f":"getMineCooldown(uint256)","2c3f9b80":"getActiveFlagRate(uint16)","2c408059":"getFallbackAddress()","2c409871":"MobileTokenAlert()","2c416754":"doBurn(address,address,uint256,bytes,bytes)","2c420201":"getDataCounterForSubject(uint256)","2c421074":"exploreETHFee()","2c425687":"EthTeamContract(string,string,address,uint64,uint64,address)","2c42f2e8":"toSendFromStorage()","2c4449ab":"_rankByNumber(uint256)","2c445273":"_payEthereumAndDistribute(uint256)","2c4464d4":"Dryad()","2c4482c5":"_assignCountry(uint256)","2c44a261":"updatePrivateSaleCloseTime(uint256)","2c45f068":"transfer(uint128,bytes16,uint32)","2c4617d7":"getMethodState(string)","2c46b205":"query()","2c46d8d5":"EndRound(uint256)","2c47413f":"ERC20PGEToken()","2c4806d8":"ordersFor()","2c4879d1":"AFWBurn(uint256)","2c4881ff":"withdrawMoneyByAdmin(uint256)","2c48e7db":"confirmTransfer(uint256)","2c4a84f7":"StaxToken()","2c4ab666":"enact_withdrawal_greater_equal(address,uint256,uint256)","2c4ac770":"sendMessage(address,bytes,bytes32)","2c4aecc1":"sampleBoolRetFalse()","2c4b2334":"setTeamWalletAddress(address)","2c4b27ae":"burnAirDrop(address[],address)","2c4bca2c":"crowdsaleDeadline()","2c4bf8bc":"increasePresetTransfer(address,uint256)","2c4c2719":"MAXIMUM_CAP()","2c4cb4be":"removeRegistryFromNameIndex(address)","2c4d25f5":"DeathFactor_ii()","2c4d4d18":"changeMinter(address)","2c4e55c5":"killedContract()","2c4e591b":"totalGames()","2c4e722e":"rate()","2c4e8885":"unLinkFromMasterWalletInternal(address,address)","2c4e9d2b":"AuctionWon(uint64,uint64,address,uint256)","2c4ee4d4":"ObirumTalk()","2c4fa8b2":"assignAnotherOwner(address)","2c5104f5":"MTC()","2c511788":"addToWhitelistAllocation(bool,address,uint8)","2c512d6e":"getTokens(address,uint256)","2c526196":"_mint(uint256)","2c52d930":"feeForArtWorkChangeRequest()","2c532a71":"ChangeCrowdSaleDate(uint8,uint256)","2c5337dd":"winnerAnnounced(address,uint256)","2c53f31b":"bonusWindow2EndTime()","2c54357f":"lifeReserveAllocation()","2c54de4f":"transferToken(address,address,address,uint256)","2c54e6d9":"getCanvasCount()","2c560ec0":"queryInfo()","2c56462f":"addAllowedContract(address)","2c566ae5":"length(address)","2c572eb5":"_isFuture(uint256)","2c574a94":"next_tower_index()","2c577347":"changeMakeFee(uint256)","2c57fdf4":"create(uint8,uint8,uint64,uint64)","2c580a35":"revokeAndReclaim()","2c58139c":"teamRelease(address)","2c5a736f":"distributeInitialFunds()","2c5af544":"isAllocatedLending()","2c5b3b5b":"UniverseChain()","2c5c8f7c":"getDailyProfitSumForAllUsers()","2c5c9dc5":"BeldenCoin(address)","2c5cb666":"setCollectFeeWindowReportingFees(uint256)","2c5d0546":"KuaiToken(address,uint256)","2c5d690d":"getBlocksUntilReset(address)","2c5e52d1":"CandyDropIsOpen()","2c5f5234":"collateralisationRatio()","2c5fac89":"isIcoSucceeded()","2c6009a6":"viewPeerToPeerMarketplaceTransactionFee()","2c60a055":"MapTest()","2c6105f9":"setElectedMediator()","2c6127c7":"availableBets()","2c629299":"allOperations()","2c62fa10":"assetsOf(address)","2c62ff2d":"deleteBool(bytes32)","2c638806":"totalPaymentsHeld()","2c63b326":"memoryArray(uint256)","2c642950":"createBallot(string,bytes32[],uint256)","2c642f51":"sendDividends(address,uint256)","2c64b05f":"LockEDUTeam()","2c664701":"profit_per_token()","2c66a604":"Blizzard()","2c678c64":"migrated()","2c67a8e5":"getItemsByOwner(address)","2c684eb6":"afterVoteNoCashBackTime()","2c684f30":"postListed(address,string,string,uint256,string,string,string)","2c68fcd4":"determineBonus(uint256,uint256,address)","2c69e64e":"refundBet(address)","2c69ed89":"BerryLake()","2c6a0140":"cutoffBlock()","2c6b2c92":"checkProfitLossSinceInvestorChange()","2c6b77e1":"admin_isPayable(bool)","2c6c1108":"autoTearDownAndDestruct()","2c6e38d0":"modifyNextPremiumSale(uint8,uint256)","2c6e4aea":"withdrawFundBeneficiary()","2c6e7598":"toAsciiString(address)","2c6e879f":"settingsSwitchState()","2c6ed612":"stringToBytes5(string)","2c6f11b8":"listApproval()","2c6f39fd":"setLicenseSalesContractAddress(address)","2c6fa230":"getServiceInformation(address,uint32)","2c6fa84c":"Pausable()","2c7077c0":"enableFeatures(uint256,bool)","2c70b7ca":"emitEntityResolution(address,address)","2c70d64e":"unVote()","2c710cc8":"closeInvest(uint256)","2c71d524":"IcoBonus(uint256)","2c71e60a":"grants(address,uint256)","2c71ecb6":"_startBlock()","2c72fdfc":"getProposals(uint256)","2c735ef8":"tradeStartTime()","2c757eed":"startPhase3(uint256)","2c7622b0":"txorigin()","2c767201":"admin_account()","2c76d586":"zint_bytes32ToString(bytes32)","2c78ba6f":"ArbTokFromHGame(uint256)","2c78bfdc":"burnCrown(uint256)","2c791826":"moiTestToken()","2c792276":"endRound(uint8)","2c79aea3":"minedTotalSupply()","2c7a64c7":"isOperationActive(bytes32)","2c7a8559":"setMaxGift(uint256)","2c7b0085":"PocketChain()","2c7ba564":"setTransferProxy(uint32,address)","2c7c4549":"PurchasableToken(uint256)","2c7cc1f0":"emergencyEthDrain(uint256)","2c7cce9e":"auctionMinPriceIncrease()","2c7e06a4":"rateEarlyStage1()","2c7ec2c2":"_fulfillPayment(address,address,uint256,uint256,address)","2c7ee894":"B2Lab_TokenPlus(address)","2c7ee946":"setting(uint256,uint256)","2c8082a6":"PiBetaSupply()","2c828e46":"TransferToken(address,uint256,uint256)","2c837334":"getPlot(uint256,uint256)","2c83d77e":"goforit()","2c84bfa6":"generate(address,bytes)","2c84d560":"OwnerWithdraw()","2c84e31f":"addAccounts(address,address,address[])","2c85448d":"isInt256ValidIn64(int256)","2c854d13":"AUTH_REMOVEOWNER()","2c8595bc":"updatePartnerMap(address,uint256,uint256,uint256)","2c85f8e0":"oraclize_query(string,string,string,uint256)","2c86033e":"checkAddressTeamOne(address)","2c8668d4":"withdrawNoLimit(address,uint256,uint256)","2c868287":"withdrawToTeamStep3(uint256)","2c86d091":"buyTokens(address,bytes32)","2c86d98e":"leverage()","2c86e3b4":"setContributor(string)","2c873761":"getMyDragons()","2c87aecc":"orders_sell_list(uint256)","2c87ba12":"getTitulaire_Compte_2()","2c882333":"vota_un_candidato(uint256)","2c887399":"confirm(bytes32,bytes32,bytes32,uint8,bytes32,bytes32)","2c88837e":"VotingRightsWithdrawn(address,uint256)","2c88fad9":"addWhitelistedAddr(address)","2c890550":"toPower2(uint256)","2c899ab6":"CecCoin()","2c89a84c":"ChronosAccessControl()","2c8ab429":"registerMeDao(address)","2c8ace6c":"TokenERC20(uint32,string,uint8,string,address)","2c8af2d8":"s_rand(address,uint256)","2c8b2ad7":"calculatePaymentGoal(uint256,uint256,uint256)","2c8b8b94":"addAccreditedInvestor(address,uint64,uint64,bool,bool,uint256,uint256)","2c8bcd1a":"createBid(uint256,address,address,bytes32,uint256,uint256)","2c8be60e":"ONO()","2c8c047a":"ownerOperationsAt(address,uint256)","2c8c28a7":"loadNewTickets(bytes32[])","2c8c892b":"allocateSalesTokens(address,uint256)","2c8ca0ea":"isFinish()","2c8cbe40":"setFreeze()","2c8df693":"ServiceProviderEnabled(address,bytes)","2c8e3ebb":"secondRefundRoundRateDenominator()","2c8ed4c4":"_toToken(uint256,uint256,uint256)","2c8ee2ec":"checkWin(uint256,address)","2c8f1b71":"socialIdentityOfClaimerAddress(uint256,address)","2c906ba2":"finishLottery()","2c90ccba":"getNextAuditByPrice(uint256,uint256)","2c91324c":"usersAddress(uint256)","2c915aa3":"assetAddresses()","2c92a2bc":"minWithdrawalThreshold()","2c92c071":"_addPayTable(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint16)","2c92e5b7":"BlockspacesToken()","2c92fb99":"getFilter(uint256)","2c948034":"longTermbudgetAllocAddress()","2c94a235":"profitTransferTimeSpan()","2c95ad52":"addItem(bytes32)","2c960569":"updatePriceOraclize()","2c9619ce":"FCOIN1036Token(uint256,string,string,uint256)","2c96bee2":"MultiSigTokenWallet(address[],uint256)","2c9868df":"approveAndCall(address,uint32,bytes)","2c98bf4a":"WelcomeMsg(string)","2c995e1b":"AllowTransferGlobal()","2c9a0a95":"getPricingStartsAt()","2c9a86d2":"payCarnita(uint256,uint256)","2c9afb18":"addrFabricContract()","2c9b1625":"FUTMOTO()","2c9c0fb5":"modifyTransferableHash(address,bool)","2c9cdfd9":"Provider(string,string)","2c9d6989":"withdrawDklBalance()","2c9ea1b7":"nextSkinId()","2c9f092f":"refundToOwner(address)","2c9f4f62":"isPurchased(uint256)","2c9f6792":"emaPeriods()","2c9f9fed":"tokenInit()","2c9fcd8c":"Donator()","2ca0228a":"initialTokenPrice()","2ca0c835":"referrerBonusCalculate(uint256)","2ca0d7ca":"batchTransfer1(address[],uint256)","2ca126f8":"endtime()","2ca15122":"sign()","2ca16a37":"publish(bytes32,string,uint256)","2ca1aa16":"currentSaleLimitPerAddress()","2ca1b7da":"CROWDSALE_ETH_WALLET()","2ca23c4f":"KapelaToken()","2ca2537e":"changeNotSoldTokens(address)","2ca26866":"Tccchain(uint256,string,string)","2ca33e70":"YoutubersCoin()","2ca36da0":"left39(uint256)","2ca38363":"priceEth()","2ca59abf":"changeCollateralTaker(address)","2ca5a623":"change_flag(uint256)","2ca5e3f5":"replyAlice(uint256)","2ca5e626":"getOrder(uint32[8])","2ca60d85":"versionIdent()","2ca6d2c0":"getAccountSize(address)","2ca76003":"checkWinner(uint32)","2ca781f1":"firstPay()","2ca8c6d3":"numberOfBets()","2ca8cbd0":"minePhx()","2ca9cbe8":"distributeToken(address,uint256)","2caafb54":"totalFreezeTokens()","2cab00de":"buildPrice()","2cab6c6a":"editTile(uint16,uint16,uint8,uint16,address)","2cacb97c":"GetProfitEarnedByPartner(address)","2cacd13a":"takeOrder(uint256,uint256,uint256)","2cad9404":"salvageFinished()","2cae0c76":"crowdSaleIsOver()","2cae249a":"rvDepositAddress()","2cae66d8":"encodeRequest(uint128,address,address,address,uint256,uint64,address,bytes)","2cae8ae4":"getPayload()","2cae9add":"rawTokenSupply()","2cae9ca1":"spendWithGas(address,uint256,uint256)","2caeb8fc":"checkMyUndistributedBalance(uint256)","2caef765":"setBoardController(address)","2caf1f15":"set_tickerQuery(string)","2cb0d48a":"setEditable(bool)","2cb0de18":"setFeeAccountToken(address)","2cb15864":"initialBlock()","2cb2f52e":"updateTokenMetadata(uint256,string)","2cb3ce8c":"TIER3_RATE()","2cb44156":"minterGivesCWC(address,uint256)","2cb4f63e":"price_target()","2cb51970":"_batch4_icosaleStartTimestamp()","2cb58378":"getStateRoot(bytes32)","2cb676be":"NVBSupply()","2cb6a435":"oneTimePrice()","2cb71af3":"startBuyback(uint256,uint256)","2cb8460c":"PlutusDex()","2cb856f3":"dgxContract()","2cb86824":"preIcoStartAt()","2cb8f2e9":"executeBet(uint256,bool)","2cba85c6":"popcontract()","2cbb827f":"withdrawToSelf(uint8)","2cbbbd2d":"SHIPToken(address,address)","2cbbd738":"getPoll(bytes32)","2cbcaba9":"SimpleICO()","2cbdb5fb":"addChunk3ToWhiteList()","2cbe679b":"Travelerscash()","2cbef0f3":"getAffiliateCommission()","2cbf1b12":"CirclePay()","2cbf1f0d":"left62(uint256)","2cbf4e27":"removeParticipant(address,address)","2cbf9cf6":"MintableToken()","2cbfd034":"intCallWithArray(uint8[4])","2cc0a28c":"_matchedTags(bytes32[],bytes32[])","2cc0b254":"init(address,bytes32)","2cc138be":"rewardStartTime()","2cc1b92a":"addr_communityBuildingToken()","2cc205d9":"totalStakedFor(address,address)","2cc27341":"setMinMargin(uint256)","2cc361a6":"removeTank(address)","2cc53743":"GxEvents(address)","2cc5cfd6":"withdrawDevelopersFund(address)","2cc5d662":"arawWallet()","2cc63332":"returnCoupon(address[2],uint256[8],uint8,bytes32[2])","2cc689f9":"markRewardsSet()","2cc695de":"addCertification(address)","2cc6cf4a":"BABI()","2cc6d768":"RecordingRefundVault(address)","2cc75331":"getTeamsOnLeaderboard()","2cc763e7":"milliPercent()","2cc7c475":"TokenSaleCreation(uint256,address)","2cc7fc36":"ICOPurchased(uint256)","2cc82225":"setPriceCreatingChannel(uint256)","2cc82655":"setPhase(uint256)","2cc88401":"wirePurchase(address,uint256)","2cc8b455":"recoverAddressFromWithdrawMessage(bytes32,address,uint256,bytes)","2cc92b2b":"isICOOpened()","2cc9636c":"buyerCancel(bytes16,address,address,uint256,uint16)","2cc9c151":"verifyOwnership(address)","2cca179d":"addPoll(uint256,uint256,bytes,uint8)","2cca23f1":"Timeless()","2cca5ce3":"setEngine(address,bool)","2cca664b":"totalPlayerWinnings()","2cca75d3":"StupidCoin()","2ccaa3e9":"getPropertyOwner(uint16)","2ccb1b30":"transferTo(address,uint256)","2ccbd053":"set(uint256,string,string,string,string,string)","2ccc452d":"pushByte(bytes32)","2ccc9057":"RATE_CROWDSALE_S3()","2ccce58a":"cancelGame(string)","2ccd0991":"extraData1FromHash(string,string,string,string,string)","2ccd9623":"referralManager()","2ccdbc25":"prometheusVouchersMinted()","2ccde4bd":"withdrawAllUncommittedTokens()","2cce0c60":"eth_to_usd()","2cce4abe":"_finishNoCallback()","2cce753a":"batchAddAddresses(address[])","2cce81aa":"getBlockHash(int256)","2ccf16f9":"CashPoints()","2ccf27bb":"PatrickHuynhToken()","2ccf8d40":"HVAL()","2ccfc58c":"FeesReceived(address,uint256)","2cd046eb":"countMembers()","2cd05122":"ZENOSEarlyPurchase()","2cd05248":"lastBlock_f3Hash_uint256()","2cd11849":"depositAdvisor(address,uint256)","2cd1bab2":"partnerID()","2cd2338f":"thawAddress(address)","2cd33a54":"eth_amount()","2cd3fd70":"BurnTokens(uint256)","2cd44064":"UNHCToken(uint256,string,string)","2cd53cfe":"addEducation(string)","2cd6305f":"unsellpause()","2cd64f65":"TokenMintGeneral()","2cd78450":"activateExportFeeChargeRecord(address)","2cd8c9ae":"fillPhase(uint8,uint256,uint256)","2cd9e233":"Quarters(address,uint256)","2cda1bf7":"titles(uint256)","2cdad41c":"isInspector(address)","2cdb0213":"dailyHourLimit()","2cdb8eec":"updateTokenValue(address,uint256)","2cdba70e":"_getMaxPooling()","2cdc1c74":"lister()","2cdcb1fc":"wrongManagerOrUnsetInClaimer()","2cddc488":"transferTaxes(address,bool)","2cde15d1":"weiTotalRaised()","2cdedd5c":"StateChannel(address,address,address,address,uint256,bytes)","2cdf2bfd":"sellPatent(uint16,uint256)","2cdf37d4":"_admin(uint256,uint256)","2cdf55af":"RC()","2ce04b20":"tokenLockoutPeriod()","2ce0a6ee":"setBalanceLimit(uint256)","2ce0b4f6":"ICO_FINISH()","2ce0ca6b":"setChainFees(uint256[10])","2ce14d90":"_willFallback()","2ce1ec67":"HelloCoin(uint256,string,uint8,string)","2ce20579":"mutagen2Face(uint256,uint256)","2ce21999":"fees_(uint256)","2ce2907b":"CryptoCourt(uint256,string,string)","2ce2d7c0":"completeRegionAuction(uint16)","2ce37b10":"getListCount()","2ce3d440":"updateAccount(address)","2ce47de4":"payWinners(uint32,uint32,uint256,bool,uint32,uint32)","2ce52d9b":"shareCycleSessionSize()","2ce5c284":"processed()","2ce5fb75":"getHorseShoe(uint256)","2ce68269":"registerByList(address[],bool)","2ce78fc0":"getDemande(uint256)","2ce7900b":"getTokenTimelockCount(address)","2ce82189":"balanceTransferred(address,uint256,bytes)","2ce90c11":"killTokens()","2ce91d08":"TokensWorld()","2ce92dfd":"updateMinGasForDrawing(uint32)","2ce946a5":"teame()","2cea0654":"setStateClosedIfClosed()","2cea53bd":"returnChametz()","2cea70e4":"isAds()","2cea905a":"IAMEPrivateSale()","2cea9442":"totalUsdRaised()","2cead42c":"_createIntention(address)","2cead658":"Companion()","2ceae552":"AVAILABLE_BONUS1_SUPPLY()","2ceb1bb3":"addPreEntranceMembers(address[],uint256,uint256)","2ced7cef":"log(string,string,string)","2cedc5ec":"enableTokenAiTransfers()","2ceee12e":"seeBidders()","2cef4dac":"updateMasterCopy()","2cefc429":"sellCard(uint8,uint256)","2cefeb07":"setname(string)","2cf033a0":"setNewTokenAddress(address)","2cf0be44":"transferToService(address,uint32,uint256,uint256,uint256)","2cf0d6ca":"PLAT()","2cf1a5fb":"airdropStatus()","2cf2f1d1":"rndReduceThreshold_()","2cf32bc9":"PayoutEarnings(address,uint256,uint8)","2cf3f1f3":"setTokenPerEther(uint256)","2cf42a6c":"cancelHybridization(uint256)","2cf45905":"addHpbNodeBatch(address[],bytes32[],bytes32[],bytes32[])","2cf4db51":"amountVote(bool,uint8)","2cf4e56f":"withdrawBounty()","2cf5346a":"totalSupplyAt(uint256,int256)","2cf5fe89":"maxChildCount()","2cf65a06":"logite(string)","2cf6b532":"STARL()","2cf6e740":"adminSum()","2cf75c11":"_generateLog(uint32,uint8,uint32,uint8,uint8,uint8)","2cf86006":"calculateDividends(uint256)","2cf8a1d6":"CCRToken()","2cf91024":"getFlightInfo(uint16,uint16)","2cf9185c":"getMyPlayedCount(address)","2cf975af":"isPreferredTokensAccount(address)","2cf99422":"publish(address)","2cfa606d":"tvcEthFund()","2cfa74da":"buyKeys(uint256,string)","2cfac6ec":"teamSupply()","2cfbb031":"claimReward(bytes)","2cfbd0b9":"addNewBlock(bytes32,bytes32,bytes32[])","2cfc1f4c":"updateGift(uint256,uint256,string,string)","2cfc42f5":"blacklistParty(address,address,bool)","2cfd10a0":"CrowdsaleMain()","2cfd3005":"mint(address,bytes32)","2cfd35bb":"employeeMigratesToNewESOP(address)","2cfdd7df":"newReward()","2cfed9f0":"setSpeaker(address,address)","2d0041c5":"setAmbassador(address,bool)","2d00b442":"_createBid(bytes32,address,uint256)","2d0104a5":"updateFirstDuel1(uint256)","2d014833":"e93Contract()","2d01564c":"littContentExists(bytes32)","2d019a71":"get_asset_info(bytes32)","2d021624":"BTBToken()","2d02a5b2":"setGoldPrice(uint256)","2d0335ab":"getNonce(address)","2d03c4eb":"nxcPerBcy()","2d040add":"updateRegistrationState(bool,uint256)","2d042a7f":"PonziRevolutionBeam()","2d045780":"isAllowedToBuyByAddressWithoutVerification(address)","2d04d07d":"goTokenCollection()","2d04f820":"DEV_WALLET()","2d06177a":"addManager(address)","2d062140":"SiringClockAuction()","2d067d4c":"isBurn()","2d06a1fa":"ALFA()","2d06fd13":"getTotalDeveloperCut()","2d077ad0":"Latch()","2d07bf2f":"CryptoHarborExchange()","2d087944":"hasBuyNowOffer(uint256)","2d08d408":"Send(address[],uint256[])","2d09839f":"tokens_push(address)","2d0a8809":"testAddVoters()","2d0b1451":"DevotteToken()","2d0b7d53":"registerVariation(uint256,address)","2d0cc13c":"MoonMinerToken(string,string,uint8,uint256)","2d0d4827":"startIco1(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","2d0d9c2a":"getCompletedGamesStatistics()","2d0d9e0f":"getUserProductsKeys(bytes32)","2d0daca8":"assertEq25(bytes25,bytes25,bytes32)","2d0e6636":"tokenToEtherAllowed()","2d0f5573":"right35(uint256)","2d0ff779":"claimEOSclassic()","2d103ed4":"addAllowedHICAddress(address)","2d10d4d1":"getCityActiveBuildings(uint256,uint256)","2d116186":"deityBalance()","2d118bbf":"getUserPaybackPool()","2d11fa16":"throwsWhenTransferingPresaleTokensBeforeCliff(address)","2d123aa4":"useDefaultRegistry()","2d126239":"calcAndGet()","2d126d2b":"indCommunityDeposit()","2d132467":"buyPreIcoTokens()","2d133eee":"KYC_THRESHOLD()","2d136dd6":"TrillionToken()","2d139417":"migrateToNewNewControllerContract()","2d13c164":"_computePayMoney(uint256,address)","2d144e6b":"totalPlayerSupply()","2d1608db":"YouLongToken()","2d162c70":"distrust(address,uint256,bytes)","2d171243":"getUnitsProduction(address,uint256,uint256)","2d17d956":"buildRequest(string)","2d19413c":"setJackpotToken(address,uint256,uint256,address,uint256,uint256,uint256)","2d1a330b":"marketmorties()","2d1a6477":"lengthEqual(address[],uint256,string)","2d1a67e1":"Ledger(address,uint256,uint256)","2d1b42f5":"encryptCounter(uint256)","2d1babed":"setRates(uint256)","2d1c56a9":"totalTxVolume()","2d1ced82":"priceBox1()","2d1d744a":"isPass()","2d1d9627":"changeAddress(bytes32,address)","2d1d9feb":"removeRRA(address)","2d1e0516":"setBal(bytes32,address,uint256)","2d1f0021":"NextItemID()","2d1f0097":"getData_18()","2d1fb389":"authorize(address,bool)","2d1fdef6":"extendDeadline(uint256,uint256)","2d202d24":"setNextOwner(address)","2d20fbf3":"ownedBonus(address)","2d215518":"pause(uint256,uint256)","2d217d43":"AntasCoin()","2d21ca88":"ICOTokenHardCap()","2d226a10":"allocateServusTokens()","2d22a4e3":"isPrivateInvestmentPhase()","2d22b464":"createEgg(string,bytes32)","2d241248":"getFeeBurnerAddress()","2d24447a":"LBCoinJ()","2d247cc6":"coinPriceInWei()","2d278518":"EtherReceived(uint256,address,uint256)","2d278e9e":"picosPerEther()","2d27c8cd":"ALLOC_SALE_GENERAL()","2d2800f1":"react()","2d287e43":"insert(bytes32)","2d2899b6":"getIntArray(bytes32)","2d28bb02":"setTokenStart(uint256)","2d28d4cf":"transferIfTokenAvailable(uint256,uint256,address)","2d28e89d":"MINIMUM_DURATION()","2d290d8b":"MAX_CROWD_SALE_TOKENS()","2d2925c7":"transferInitialTokens()","2d296bf1":"buyToken(uint256)","2d29842c":"upgradePhoenixStats(uint256)","2d29953f":"withdrawByFoundation(address,uint256)","2d29b29b":"migrateSome(address[])","2d29c72d":"stopUpgrading()","2d2bb154":"kycWallet()","2d2bcd37":"setRelayContractAddress(address)","2d2c44f2":"Vault()","2d2c5565":"TREASURY()","2d2c9ed8":"softcapReachedCallabck()","2d2d23f7":"Cordbank()","2d2e3bb2":"deleteFincontract(bytes32)","2d2f7e4d":"withdrawBidForStar(uint256)","2d2f8f9b":"getAddListSize()","2d2fa531":"hank()","2d2fe9d4":"stakeWaived_Eth()","2d30ae45":"distributeCrowdsaleTokens(address,uint256)","2d31908f":"PRICE_7()","2d31d9c9":"sales(bytes16)","2d31f270":"UNTToken()","2d328551":"numberOfHalvings()","2d345670":"revokeAdmin(address)","2d345799":"balanceOfPretty(address)","2d349a1f":"icoLtc()","2d34ba79":"setup(address,address)","2d354cf8":"_isContract(address,address)","2d358710":"HARJToken(address,string,uint8,string)","2d35a8a2":"candidatesCount()","2d364687":"toLucky()","2d36ad42":"cleanUp(address)","2d370378":"switchSaleAuctionERC20For(address,address,uint256)","2d3727bf":"CloseDiv()","2d37329a":"lastBlock_v4Hash_uint256()","2d37e6dc":"getCrowdsaleInfo()","2d381f84":"ATTR_GOLDENGOOSE()","2d38bf7a":"rewardEra()","2d3a926a":"computeCut(uint256)","2d3b3141":"ERC20Standard(uint256,string,string,bool)","2d3b4643":"coresale()","2d3b634c":"Crowdsale(uint256,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","2d3b9e59":"isFinished(uint8)","2d3c5d28":"DonatedEthPayout(address,uint256)","2d3cb6bd":"mulX(uint256,uint256)","2d3d165d":"parameterizerFactory()","2d3d403a":"challengeContract(address,address,address)","2d3e2065":"minBetWei()","2d3e474a":"marketing()","2d3e579a":"hasRole(address,bytes32,address)","2d3e9efe":"mint(int256,bytes32,bytes,uint256[],bytes,bytes)","2d3ec656":"setMinimumIcoRate(uint256)","2d3ed075":"Certificate(bytes32,string)","2d3fb0d5":"getCrowdsaleState()","2d3fb721":"secondRoundICODiscount()","2d3fcc23":"beingVIP()","2d405b43":"Win(address,uint8,uint256,bytes32,bytes32,uint256)","2d40957f":"TheWinner()","2d4147e3":"bountyToken()","2d416b4d":"bindCertificate2Wallet(address,bytes32)","2d41777f":"SnapshotUpdated(address,uint256,uint256,string)","2d4194c7":"getAuditRequestBlockNumber(uint256)","2d41bc9b":"store(uint8[],uint256,uint256,uint256,uint256)","2d41c7a4":"Nikone()","2d434139":"addCustomerNReqAcc(address,address,address)","2d43573d":"landmarks(uint256)","2d4364ae":"placeTokens(address,uint256)","2d448c49":"setO2(address)","2d449b5e":"Etokenchain()","2d44c049":"modifyCreator(address,bool)","2d459dd6":"transfer(address,uint48,bytes)","2d45c78d":"requireAuthorisation()","2d46253f":"CommunityWithDraw()","2d462dbb":"rollLo()","2d467358":"LAPTOPTOKEN()","2d46a9ce":"getVestingCreatedAt(address,uint256)","2d46b54e":"hashMsg(bytes32,address,bytes32,address,uint256,bytes32,string,string)","2d46f5df":"registerProduct(address)","2d475386":"ownerWithdrawUnclaimedCredits()","2d47adcb":"BancorNetworkToken()","2d47c29e":"otherchainstotalsupply()","2d480a80":"thankYou()","2d483bec":"setNewRate(uint256)","2d48bcec":"pool_drain(address)","2d493910":"_computeNextPrice()","2d49f5fc":"verifyERC20(address)","2d49ffcd":"getLocked()","2d4a170a":"calculateBid(uint256)","2d4c4aea":"GOTGCOIN()","2d4d671f":"startRevealingPhase()","2d4e4472":"LandClaimExecuted(address,uint256,bytes)","2d4ede93":"deleteNode(address)","2d4f40c6":"setBotAddress(address)","2d4fd9dd":"rejectDispute(uint256)","2d501611":"PERCENT_BONUS()","2d50e2d5":"getSupercedesRegistryInterfaceID()","2d5132cd":"getOuvidoriaEnteNome(address)","2d5134f7":"setApplication(address,address)","2d52164b":"stopsell()","2d5216a5":"PHASE_CHALLENGE()","2d52d1a2":"rewardDistributionEnded()","2d54ab45":"initTokenSale(address,address,address,uint256,uint256,uint256)","2d54f04d":"changeVotingBlocks(uint256,uint256,uint256,uint256)","2d5505b6":"_setAreas(address,uint256)","2d550c0b":"optionality()","2d56acce":"setMinAcceptedInPublicSale(uint256,uint256)","2d56af6c":"burnCoin()","2d56d572":"releaseMany(address[],uint256[])","2d571013":"getFeedBackFeeAward(string)","2d571cc4":"createToken(uint256)","2d578304":"update(address,uint16,bool)","2d57b6c8":"getInvestorDeposit(address)","2d57ea40":"FundariaTokenBuy(address)","2d580ef6":"add(address,bytes32)","2d581e71":"add_user(address)","2d5858a3":"publicSoftCapReached()","2d58c9a2":"gy()","2d58fab1":"pauseCWC()","2d592a34":"sellKissBTC(uint256)","2d5949a0":"setNumMarkets(uint256)","2d596330":"bmcPlatform()","2d59680d":"pool_name()","2d598d7b":"isAccredited(address)","2d599750":"updateUrl(bytes32,string)","2d59dc12":"displayMessage()","2d59ea6c":"oscarGuindzbergAddress()","2d5a5d34":"blacklistAccount(address,bool)","2d5a858c":"checkCompanyNameAvailability(bytes32)","2d5b2e15":"CLIForGas()","2d5b778b":"refundingDeadline()","2d5b8d99":"paymentsOf()","2d5bbf60":"subscriptions(uint256)","2d5c3ed1":"KWHToken(address,uint256)","2d5cb5d5":"CryptoKitties()","2d5cd1d6":"getPrize(address)","2d5ea8e3":"numplayers()","2d5fd89f":"getClaimData1(uint256)","2d60a72c":"DEPOSITS_KEPT()","2d614ad2":"Webpuddg()","2d620e1e":"deedsOfOwner(address)","2d62ce38":"collectAirdrop(bytes32)","2d62f428":"coinIssuedSale()","2d63e9f4":"Registration(uint256,uint256,uint256,uint256,uint8,uint8,uint8,uint8,string)","2d63f728":"mintWithMetadata(address,uint256,string)","2d646742":"executeGameProposal(uint256,bytes)","2d658888":"RobotarTestToken(address)","2d6653a9":"seed_coins_vault1()","2d668da4":"returnAmountOfTmexAddressCanProduce(address)","2d66acf1":"fortune_open(uint256)","2d67a79e":"verifyAccount(address,string,string)","2d67bb91":"World()","2d6842b5":"admin_MinimalPayValue(uint256,uint256)","2d685f15":"takeSell(address,uint256,uint256,address)","2d68bad7":"withdrawForTo(address,address,uint256)","2d68bc6e":"saleProceedsEther(uint256)","2d68de95":"currentStageTokensCap()","2d690f28":"LogSetTokenPrice(uint256)","2d6a3482":"TradeListing(bytes32,address,address)","2d6acb3a":"RESERVE_POOL_ADDR()","2d6afbd0":"unlockWithSpend(uint256,address)","2d6b113a":"in_sharing_phase()","2d6c17a3":"rewind(uint256)","2d6c25fa":"recommendedPrice(uint16)","2d6c5a84":"reverter(uint256)","2d6d1646":"untokenize()","2d6d4caa":"addtoContributos(address,address,uint256,uint256)","2d6ddfda":"closeModifyCountdown()","2d6df368":"borrarRegistro(bytes32,bytes32)","2d6e2bb0":"regularHold()","2d6ef310":"closeGame(uint256)","2d6f70f7":"transferViaTokenTransferProxy(address,address,address,uint256)","2d6f8049":"setBountyTokensReserve(uint256)","2d6fc906":"setBonuses(uint256,uint256,uint256)","2d706a34":"isName(address)","2d710551":"UlleToken()","2d7243ef":"payTodayReward(address)","2d740722":"close_pre_ico()","2d75c39a":"_removeClearingPriceValidator(address)","2d762b0d":"changeTokenContractAddress(address)","2d76a85a":"PundiXCash()","2d76be2d":"player_getPendingTxByAddress(address,address)","2d76d7b0":"releaseTokensByAddress(address)","2d774da2":"isSetFund()","2d776793":"downvoteComment(bytes32,bytes32,bytes32)","2d7788db":"rejectRequest(uint256)","2d78737b":"CreateUpgradeCards(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","2d78b7fc":"_withdrawInvestorTokens(address)","2d7aa82b":"initialize(uint256,uint256,uint256,uint256,uint256,uint256)","2d7ae086":"MarkHours(bytes32,bytes32,int256,bool)","2d7af0f4":"transferLoan(bytes32,address)","2d7b299d":"setNote(string)","2d7b8c98":"returnInvestmentsTo(address)","2d7bf927":"Migrations2()","2d7c597f":"whois(bytes32)","2d7c93e9":"register_claim(string)","2d7cd4cd":"rand1()","2d7cdeb1":"withdraw(string,uint256,address,bytes)","2d7da889":"ruleA(uint256)","2d7dc81c":"sendAfterIco(uint256)","2d7deae2":"testDeployMultiSigWallet()","2d7e92a5":"CWCCTokenIssue(address)","2d7eba3f":"ganaBalance()","2d7ed15c":"BNB_TOKEN_PRICE_DENOM()","2d804ca2":"amountFilled(address,uint256,address,uint256,uint256,uint256,address)","2d806bfd":"createProduct(bytes32,bytes32,address[],int256,int256,address)","2d806cdd":"setRefund(address)","2d80bc86":"getNumberOfParticipantsOrigins()","2d80f13c":"EthlanceSponsor(address)","2d817a91":"withdraw(uint32[])","2d81844e":"_createPrecious(address,uint256,string)","2d81e877":"Gocc9()","2d826eda":"updatetoken(uint256,string,string,string,string,string,uint256,bool)","2d829146":"buyshares(address)","2d83549c":"escrows(bytes32)","2d839989":"clearingPriceCode()","2d83f5a3":"divAmt()","2d84c3e8":"_getSigner(bytes32,bytes)","2d852552":"CreditDAO()","2d85db6b":"ChangeEndByManager(uint256)","2d873f21":"CrowdDevAllocation(address)","2d87cdd6":"DmlContribution(address,uint256)","2d883a73":"getByIndex(uint256)","2d884a51":"icoOpeningTime()","2d888869":"toAddress(bytes)","2d88af4a":"setPauser(address)","2d88df6f":"lvePay(string,string,uint256)","2d89560a":"TOKEN_INFORMATION_ADDRESS()","2d897146":"changeBonusIncreasePercentage(uint256)","2d8a08b6":"DepositEvent(address,uint256)","2d8a4dca":"committeeKickVotes(address)","2d8aa855":"playerInput(address)","2d8c1c35":"level_up()","2d8d488c":"getProductContractCommissionWei(address)","2d8d96fa":"stockSellCertainOrder(uint256,uint256,uint256,uint256)","2d8df871":"alimtoken()","2d8e3250":"Version(string)","2d8e3278":"grantPermission(address)","2d8ebff1":"joinAndDeposit(uint256,uint256)","2d8ed84a":"getExpiryDate()","2d8f0981":"setPI_edit_14(string)","2d9029ca":"earlyResolve(bytes32,uint256,bytes32,bytes)","2d9068ed":"matchpoolAddress()","2d906a19":"Solario()","2d90ae94":"transferToOwner()","2d910376":"valueFromPercent(uint256,uint256)","2d91657b":"giveConsent(string,string)","2d91ad22":"Group_5()","2d91bf11":"foxcoin(uint256,string,string)","2d923561":"sellItem(uint256,uint256)","2d9240f3":"pauseCrowdSale(bool)","2d92b1c0":"setupPhases(uint256,uint256[],uint256[],uint256[],bool[])","2d92b371":"addVal(address,bytes32,address)","2d9346ab":"setAgentVerificationByAdmin(address,address,bytes32)","2d935d11":"calculateTokenOnlyBuyPrice(uint256)","2d936763":"hasTeamKeepingWithdraw()","2d937fe8":"isBeginnerQuestContract()","2d93a44e":"getEndClaimDate()","2d93d3ac":"getFirstStageWallet()","2d94d41e":"DEVCLASS_FTL_SPEED()","2d9525d6":"YankeesOrioles48()","2d957790":"testRemoteWithdraw(uint256,uint256,uint256,uint256,address,address,uint8,bytes32,bytes32,address)","2d958dfc":"Payout(address,address,uint256,uint256,bool)","2d95fdb5":"_isApprovedForAll(address,address)","2d962d0f":"burnLeftTokens()","2d969204":"KingJamesToken()","2d96a297":"addStore(uint256,uint256)","2d976404":"upgrade_token(address,address,string)","2d978678":"left23(uint256)","2d97fc5d":"rand(uint256,address)","2d980646":"allowanceEliminate(address,address)","2d985cfb":"testControlRestartNotUpdatable()","2d98d251":"ArtaoToken(uint256,string,string)","2d992bde":"applyAffiliate(address,uint256,uint256)","2d9a37d3":"getMaxPayout()","2d9abaed":"Purchase(uint256,address,address)","2d9b1530":"Electrocoin(uint256,uint256)","2d9b4ab7":"blnpereth()","2d9c3052":"createPaper(string,uint256,uint256)","2d9c6001":"prometheusVoucherSoldCount()","2d9d5ab7":"withdrawByAdmin(address,uint256,address,uint256,uint8,bytes32,bytes32)","2d9de472":"setVerified(uint256)","2d9e84b4":"userCampaignID(address,uint256)","2d9e87c5":"setRefundable(bool)","2d9e8ed6":"addEntryInYears(address,uint256,uint256)","2d9ec349":"TOKETH_PRESALE_THREE()","2d9eceb5":"BETHERcoin()","2d9f669d":"sendProportion(address,uint256)","2d9fab98":"suscribeTrial(uint256)","2d9ff1d0":"m_Owner2()","2da03409":"flushForwarderTokens(address,address)","2da09fac":"sellBkgAtExchg(uint256,uint256)","2da0c25c":"priceChanger()","2da0d1ea":"etherSold()","2da11b2e":"biddingClosed()","2da13d5e":"CONTRIBUTIONS_MIN()","2da1670f":"deAuthoriseSale(uint256,uint256)","2da2440c":"registerAuditor(address,address)","2da39239":"updateUserShares()","2da40888":"TaskUpdated(uint256,uint8)","2da40ac7":"emitTokens(address,uint256,uint256)","2da4dddd":"createSystemSaleAuction(uint32,bytes,uint16)","2da5a444":"deleteSire(uint32)","2da5b88e":"remoteSetWinner(uint256,uint256,uint256)","2da5deb4":"addBuyTokensRequest(string,string)","2da64861":"bulkReserveTokensForAddresses(address[],uint256[],bool[])","2da6a0d8":"getBomb(uint8)","2da6b8f8":"_getMinersAt(uint32,uint32)","2da7293e":"isSuperseded(address)","2da758b0":"ResearchAndDevelopment()","2da80893":"phase_3_rate()","2da8b2be":"TokenSubtracted(address,uint256,uint256)","2da8d3e6":"woe()","2da8f764":"submitVideo(string,string)","2da92e05":"setEmissionCap(uint256)","2da9b51e":"setBuilding(uint8[176],uint8,uint8,uint8)","2da9d048":"startQueue(address)","2dab0374":"sendFutureFundingBalance(address[],uint256[])","2dab3e7a":"setTransferPlan(address,uint256,bool)","2dab7ee2":"convertToBytes(uint8[])","2dabbeed":"reclaim(uint256)","2dac17cd":"getBattleKuns(uint256)","2dacdaf7":"_createGirl(string,address,uint256)","2dad2f97":"getLeastExpensiveShare(uint256,uint256)","2dad5872":"newAttack()","2dad6b6a":"_distributeToken(address)","2daddb32":"VVToken()","2dadf781":"KudosOrganisations(address)","2dae35c4":"RGXBonus(string,string,uint256,uint8)","2dae9878":"BankOwner_EnableConnectBankAccountToNewOwnerAddress()","2daeb49a":"fundPuppets()","2daedd52":"stake(bytes32,uint256,uint256)","2daf0e1c":"presaleLevel()","2db0d129":"VIDALCOIN()","2db237bb":"MARGIN_SPLIT_PERCENTAGE_BASE()","2db25e05":"getTrade(uint256)","2db26de1":"checkBalances(address[])","2db2caef":"rmExchangeAccount(address)","2db3dc12":"FrozenAccount_event(address,uint256)","2db4f279":"createRoom(string,uint256)","2db579f2":"ETHPToken()","2db59e2b":"MyOwned()","2db6ad32":"testEmpty()","2db6e0fe":"fixPlayerFlag(uint256,string)","2db6fa36":"batchAddToWhitelist(address[])","2db78d88":"adminSealBallot(uint32)","2db8069f":"makeMemberOfCommunity(address,uint256)","2db89533":"Auth(uint8,address)","2db9395a":"availableTo(address)","2db93fc7":"buyBag(uint256)","2db95aa9":"getTomatoCount()","2dba1a44":"stockCancelSellOrder(uint256,uint256,uint256)","2dba3614":"app_address()","2dba5cfa":"transferCoins(address,uint256)","2dba9e63":"EMACToken(uint256)","2dbacf5f":"premiumOpen()","2dbb9050":"setSecurityTokensPercent(uint256)","2dbc62cc":"BlindCroupierTokenDistribution(address[16],uint256[16])","2dbcc104":"getAddressFromList(uint256)","2dbce390":"setDepositary_function_control(uint256)","2dbd606e":"set_sale_address(address,bytes32)","2dbe713d":"EOSPlusToken()","2dbede89":"next(bytes2,bytes2,bytes2,bytes2,bytes2,bytes2,bytes2)","2dbf7b98":"certificate()","2dbf8bf0":"getRolled()","2dbffa6a":"executeBuyRequest(uint256)","2dc03259":"registerUser(bytes32)","2dc03b22":"createNTVU()","2dc0562d":"taxWallet()","2dc09c39":"protectedReclaim(address,uint256)","2dc26661":"unlockOutcome(string,uint256)","2dc2dbf2":"makeSimpleDeal(address,address,uint256,bytes32)","2dc47153":"datafeed()","2dc62c4d":"MintProofOfStake()","2dc70b2a":"getCorrectedTotalBPOfTokens(uint256[])","2dc7a2e5":"testSetupMultisig()","2dc88138":"submitCoin(address,string)","2dc8b9de":"f1(address)","2dc8be64":"buyoutWallet()","2dc8d88d":"privatesale_beneficiary()","2dc95548":"adjustTokenExchangeRate(uint256)","2dc9ad7f":"multisend(address[],uint256)","2dc9b8f7":"createGuess(uint256,uint256,uint256,uint256,uint256)","2dc9d3e5":"placeSellTokenOrder(uint32,uint256)","2dca374f":"FBToken()","2dcac811":"TTNCoin(uint256)","2dcb4691":"EventBuyTank(address,uint256,uint256,uint256)","2dcb5c8d":"xaurumProxyWorking()","2dcbac97":"getGen(uint256)","2dcbfdfa":"endEarlyBird()","2dcca1f9":"TokenRetriever()","2dccba89":"MAX_DEPARTURE_LIM()","2dcd4e41":"getGain(uint256)","2dcdcd0c":"minChild(uint256)","2dce6a1f":"KHT(uint256,string,string)","2dcebd16":"setWorldTreasuryAddress(address)","2dd02e92":"weGotAWinner(address,uint256)","2dd0e79e":"getMarket_CommunitUsedTokens()","2dd117e0":"RESERVED_TOKENS_BOUNTIES_ADVISORS()","2dd1a932":"WE3TOKEN()","2dd1cc27":"MichCoin(uint256,uint256,uint256,uint256,uint256,uint256,address,address)","2dd28736":"view50()","2dd2995a":"ETHERCOINSupply()","2dd2f86b":"maxTokenSale()","2dd306f7":"getTearBalance()","2dd31807":"unlistOpenProposals(bytes32)","2dd34f0f":"Whitelistable(address)","2dd395ae":"SUN()","2dd3ed9a":"addWorkRecord(uint256,bytes16)","2dd40301":"amountJurors(uint256)","2dd407f9":"Vag()","2dd4f8d4":"totalSupplyYear()","2dd522c6":"ATN()","2dd5b58e":"setNewGameLogic(address)","2dd608ce":"setPreICOLimit(uint256)","2dd694ff":"EntryExistAlready(bytes32,uint256)","2dd6ba7e":"release_remain()","2dd7030b":"removeAuction(uint256)","2dd78759":"affAddr_()","2dd7ab99":"BlackSnail(uint256,string,uint8,string)","2dd81ed3":"CROWDSALE_REWARD_TOKENS_NUMS()","2dd854d4":"addLoanToPortfolio(uint256,uint256)","2dd8a25e":"MakeTransaction(address,uint256,uint256)","2dd96c84":"presaleGranteesMap(address)","2dda04fa":"enterContest(uint32,uint32[])","2dda30a7":"transferAndFreeze(address,uint256,uint256,uint256)","2ddae32d":"UTCoin()","2ddbc04a":"play2(address,uint256)","2ddbc97e":"addAuthor(address)","2ddbd13a":"total()","2ddc36ba":"BRC()","2ddcac03":"_checkLimit(uint256)","2ddcb21f":"limitSupply()","2ddd196f":"bookGuest(string)","2ddd6fa5":"incomingRandomNumberError(address)","2dddd8e0":"CROWDSALE_HARDCAP()","2dddf3e1":"request_withdrawal(uint256,uint256)","2dde1911":"balancesImporter2()","2dde7241":"priceWithDiscount(uint256,uint256)","2dde7dbc":"MAX_DTH()","2dde9aca":"deployment()","2dde9f81":"getLockWFee()","2ddea5fc":"enableEscapeHatch()","2ddeac16":"getForeignTokenBalance(address,address)","2de02bfa":"allocate(address,address,uint256)","2de16fdb":"fetchDayTokens()","2de1e234":"requestUSDPrice(string)","2de22cdb":"currentMintedTokens()","2de39dbe":"DifficultyOracle(uint256)","2de3ad02":"getUserWalletByUsername(string)","2de3cddc":"setCostToCreate(uint256)","2de40ce3":"registered()","2de4ca59":"Check()","2de4fbd8":"DaoRulesProposalAdded(uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool,address)","2de541e0":"updateAvatarInfo(address,uint256,string,uint256)","2de5aaf7":"getAgent(uint256)","2de61d1f":"changeIcoTimeRange(uint256,uint256)","2de6fac6":"delKYC(address)","2de86c5b":"transferPlayerBudget(address)","2de896f6":"MaxTokensPerAccountUpdated(uint256)","2de90801":"hashtagToken()","2de954af":"fixedLog2(uint256,uint8)","2de9a13a":"ToGoConcert()","2dea5f6d":"markCombatStarted(uint256)","2dea82b4":"checkActualPrice()","2deb65c7":"GetPoolInformation()","2deb7571":"queryByAddr(address)","2deb79b6":"getStockShares(uint256)","2ded516e":"giftIsTo()","2dee466d":"getAllActiveAuctions()","2def6620":"unstake()","2df056bd":"ServiceProvider(string,string,string)","2df05a3e":"payoutIndex()","2df33eee":"ShareEstateTokenCrowdsale(address,address,uint256,uint256)","2df38460":"unFreeze(address,uint256)","2df39546":"_generateRandom(bytes32,uint32,uint32)","2df3f82a":"setClaim(string,string)","2df456d4":"SetAllPaymentsSent(uint256)","2df56bb2":"unitBattleEthCost(uint256)","2df5a559":"year4LockAddress()","2df5ce67":"WorkOrderCompleted(uint128,uint256,string)","2df6e80a":"cancelTradeOffer(bytes32)","2df7c637":"ensureCurrentStage()","2df80280":"lastState()","2df80c87":"privilegedMintLock()","2df8e00d":"becomeMortal(uint256)","2df939cd":"Banglatoken()","2df9feaa":"stopElection()","2dfaf204":"executeContract(uint128,uint128)","2dfd27e8":"fecharDoacoes()","2dfdaf59":"CheckSoilTempException(bytes32,uint32)","2dfdf0b5":"depositCount()","2dff0d0d":"getById(bytes32)","2dff3498":"Relay()","2dff692d":"orderStatus(bytes32)","2dff6941":"content(bytes32)","2dff7a2b":"authoriseMaker(address)","2e0025c1":"ROLE_BACKEND()","2e011136":"deployTokens(address[],uint256[])","2e012698":"validate(bytes32)","2e01783d":"calcprice()","2e0179b5":"increaseApprovalWithSender(address,address,uint256)","2e01d229":"Attacker(address)","2e02583c":"wordlist()","2e028287":"test_oneInvalidAssertFalse()","2e029c65":"HARDCAP_TOKENS_ICO()","2e02b24c":"PMCToken(address,uint256)","2e038aaf":"randaoAddress()","2e04d730":"BuyGoods(uint32)","2e05177f":"OpenTransferToken()","2e055bcc":"preSaleSupply()","2e05b37b":"settleFee(address,address,uint256,uint256)","2e06c756":"post(string,string,string,uint256,uint256,address)","2e071db3":"updateUserAge(address,uint256)","2e081f31":"pause_3()","2e08c3d1":"checkUserWhiteList(address)","2e08eb77":"InitialTreeICO()","2e09c32f":"playRound(address,uint256)","2e0a020e":"refunduingStartDate()","2e0b1834":"periodByDate()","2e0bee7b":"createCampaign(string,string,uint256[],uint256,uint256,uint256,uint256)","2e0c6c36":"RANGEEND_3()","2e0ca1ee":"first_pay()","2e0cb498":"hashValue(bytes32)","2e0de515":"setTip(uint256)","2e0dfafc":"addBlockListed(address)","2e0e11b2":"OrderMatchFailure(address,int256,address,int256,uint256,uint256)","2e0e5ce8":"getBonusNames()","2e0eb6fd":"Lucy()","2e0eb943":"doSend(address,address,uint256)","2e0ef395":"voteOnNewEntryFees_only_VIP(uint8)","2e0f2625":"DECIMALS()","2e0fb349":"mainSaleSecondEndDate()","2e0fc7a6":"updateContributor(address,uint256,uint256)","2e102ee4":"setGasPrice(uint8)","2e108133":"qshdrop(address[],uint256)","2e10870f":"makeAnotherContractOwnerOfToken(address)","2e10feff":"addSigByProvider(bytes32)","2e13bd10":"not()","2e14ef92":"mutiSendCoinWithSameValue(address,address[],uint256)","2e15ba63":"forwardData(bytes32,address)","2e16cf54":"retrieveWallet(address)","2e16e82e":"BitcoinCityCoin()","2e17de78":"unstake(uint256)","2e18270f":"receiveBTC(address,string,uint256,string)","2e18762c":"LogUpdateInvestorProfitSum(uint256)","2e18cead":"PrivateSale(address,uint256,uint256,uint256,uint256)","2e18d8a9":"becomeBullsmaster()","2e190d03":"IncreasingPriceCrowdsale(uint256,uint256)","2e19599c":"getTargetRepMarketCapMultiplier()","2e19d31b":"proposalText()","2e19ebdc":"pIDxName_(bytes32)","2e1a348e":"TicTacToeGame()","2e1a37ee":"TCToken()","2e1a7d4d":"withdraw(uint256)","2e1a9ffe":"getPepe(uint256)","2e1b2098":"PlayerCreated(uint8,address,uint256)","2e1b7f08":"SetClaimRate(uint256)","2e1bbe98":"setLimitEth(uint256)","2e1c1d63":"BoardMeetingClosed(uint256,uint256,bool)","2e1c49d9":"testInitalBalanceUsingNewContract()","2e1d22b6":"getPlayerDividend(address)","2e1dc4b8":"setTokenReward(address)","2e1dea6b":"updateHours()","2e1e786d":"setWhitelist(address[],address[],uint256[])","2e1eb7fe":"slice32(bytes,uint256)","2e1ef07a":"getAmountOfTokens(uint256,uint256)","2e1faf75":"transferToken(address,uint256,uint256)","2e1fbfcd":"getProposalObjectionByIndex(uint256)","2e20255e":"MasterToken(uint256,string,uint8,string)","2e20b66a":"setThings(address[],uint256[],uint256)","2e217405":"limitedWallets(address)","2e21b085":"lastPriceOf(uint256)","2e226c84":"rewardForDrawing()","2e23062d":"increaseBase()","2e2326d5":"isPrivileged(address)","2e247e4f":"SRGToken()","2e25aa96":"setCharPrice(uint256)","2e25d2a6":"marketPlace()","2e26328d":"RaiToken()","2e271ff3":"getEmail(address,address)","2e276499":"minPayment()","2e279344":"getLunckyInfo()","2e27c10a":"setPI_edit_25(string)","2e283b94":"TokenClaim4BTC(address,address,uint256,uint256,uint256,uint256)","2e28b3f5":"SGX_ADDRESS()","2e28d084":"setBytes(bytes32,bytes)","2e28fd42":"complete(uint256,string)","2e293e58":"setClientPaidUpTo(address,uint256)","2e297a44":"getSmartContractsLength()","2e298f75":"setPositiveGrowth(int256)","2e2a51bd":"WitdrawTokenToHolder(address,address,uint256)","2e2a6488":"evaluation_stage_block_size()","2e2aad44":"NIMFAToken(address,address,address,address,uint256,uint256)","2e2b3f61":"TokenCreated(address)","2e2b5809":"Insurechain(address,address)","2e2bac04":"addControllerContract(address)","2e2bec5c":"getMinerLevel(uint256)","2e2cce55":"icoRound5()","2e2d6ab1":"DelayedPayment(address,uint256,address,uint256)","2e2e4149":"minTomoContribution()","2e2ed6a7":"PALToken(uint256,address)","2e2fe8a9":"ZYL()","2e2ff7c6":"transferPreSaleTokens(address,uint256)","2e3196a5":"set(string,bytes32)","2e323f5d":"Update(uint256,uint256,string)","2e325020":"getStage(uint256)","2e33178a":"zRefundAllPlayers()","2e334452":"getPublicKey()","2e336eea":"testDieIfMinReturn0()","2e338df5":"transferInner(address,uint256)","2e33cd7a":"distructVault(bool)","2e340599":"info(uint256)","2e340823":"cancel(uint256[])","2e35d7a8":"companyTokensCurrent()","2e368e03":"beneficiariesPercentage(address[],uint256[])","2e36a709":"Error(uint256)","2e3712c4":"Bitelectroneum()","2e376ada":"whitelistIndexMap(address)","2e379264":"AIRDROP_CLAIM_AMMOUNT()","2e37fa97":"doneOptions()","2e39c2b1":"Prize(string,uint256,string)","2e39ff84":"isGeneSynthesis()","2e3a0a7c":"destroyMultipleItems(uint256[])","2e3a4d12":"handleRSMCUpdateTx(address,bytes32,uint256,address,uint256,address,uint256)","2e3a4def":"isTier2(address)","2e3a5611":"create(string,string,string,uint256,string,string,uint256,string)","2e3a71d5":"futureFundingBalance()","2e3acf6b":"contractPreICO()","2e3aff3b":"getSpinnerPrice(uint256)","2e3b3123":"_multiSet(address[],uint256[])","2e3b96bf":"developersTokens()","2e3be78d":"setPrecisionDirect(uint8)","2e3c2259":"playingNTVU()","2e3c9e99":"managerAddr()","2e3ca08c":"WALLET_MARKETING()","2e3cbb3b":"sellPop(address,uint256,uint256)","2e3ced61":"periodPreITO_startTime()","2e3db828":"getAddressForUsername(bytes32)","2e3edd0f":"ntsDepositAddress()","2e3fa349":"isLpStart()","2e4040b0":"releaseTeamTokensAfter6Months()","2e404c0f":"_setDOwner(bytes32,address)","2e4054cf":"vest2advisors(address,address)","2e4099bd":"transferAirdrop(address[],uint256,bytes)","2e414890":"challenge(uint256,uint256)","2e415444":"transferUniqueId(bytes32)","2e416162":"tkstest()","2e4176cf":"chairperson()","2e4216c1":"setMinInvestmentInWei(uint256)","2e42b012":"LockAccount(address)","2e42f80c":"CDC()","2e42f860":"toUint32(bytes)","2e430824":"trackable(address,address)","2e43bdfd":"approveDecrease(address,uint256)","2e440403":"rounding()","2e448f4b":"transferAngel(address,address,uint64)","2e450881":"PRESALETOKENMAXSALES()","2e465465":"provideIndex(string,uint256)","2e466373":"resumePlaying()","2e46cb09":"AddChipTempTime(uint32,uint256)","2e46ed94":"uint8ToString(uint8)","2e471d47":"addInvest()","2e478dd8":"provideCertificate(uint256,uint256)","2e4837ea":"pickUp()","2e48f65d":"UpdateMoney()","2e49d78b":"setStatus(uint8)","2e4a3657":"returnToken()","2e4ab29e":"technicalContract()","2e4b3d59":"setSecurityPercent(uint256)","2e4bd18a":"ApproveFinishMintingRequest()","2e4c4a9f":"lunyrPercentOfTotal()","2e4c697f":"pow(uint256,uint256)","2e4d2a09":"DMC()","2e4d3189":"withdrawal(address,uint256,uint256)","2e4d59c4":"CheckBalance(address)","2e4d8c8f":"exerciseToken()","2e4eaa15":"destroyToken()","2e4f43bf":"allOf(uint256)","2e4fd0ca":"addReferrer(uint256)","2e502569":"emitTransferred(address,address,uint256,address)","2e504bdb":"distributeTokens(uint256,uint256,uint256)","2e50e3ff":"simulateOptions(uint32,uint32,uint32,uint32,uint32,uint8,uint32)","2e5113b7":"benefit()","2e519ad5":"joinGameReferred(bytes32,address,uint8)","2e519dd5":"updateLottoParams(uint256,uint256,uint256)","2e51cdf6":"getAddressFromBytes(uint8,bytes)","2e52d606":"n()","2e532ba2":"getBackgroundImage(address,uint256)","2e533630":"sendBatches(address[],uint256[])","2e541234":"AllThingsTokens()","2e558a2d":"ETTToken()","2e56fd7a":"currentDelayOnNewLevel()","2e574191":"NEURAL()","2e58e65a":"getTokenInitialPrice()","2e597ada":"ChenToken()","2e599054":"depositETH(address,uint256)","2e5a6f17":"releaseAdvisorsTokens()","2e5a79fc":"_withdraw(string,address,uint256)","2e5ab94f":"BLOCKS_PER_PHASE()","2e5ac9b1":"createToken(address,address,address)","2e5b02ae":"setCrcWithdrawAccount(address)","2e5b2168":"maxBet()","2e5b4c43":"allowTrading()","2e5b604e":"lockBonus(address,uint256)","2e5c4cef":"RRRR_Token()","2e5cc103":"createDefaultEtherDog(uint256,uint256,uint256,address,uint256,uint256)","2e5d1042":"requestPayout(uint256,uint256,bytes32,uint256,uint256)","2e5d89bd":"BlockmoXyz()","2e5df0fe":"signUpDelegatedUser(string,address,uint8,bytes32,bytes32)","2e5e00e1":"_FIFTY()","2e5ec035":"_ApplicationRemoved(bytes32)","2e5fe746":"communityTokens()","2e609c10":"presaleStartsAt()","2e61319d":"getNumberOfAddresses()","2e617512":"getAddressFromName(bytes32)","2e62190c":"valueWithFee(uint256)","2e6245c6":"internalBalance()","2e62efbb":"getOpenOrderInfo(address,address)","2e63046d":"mybUSDPrice()","2e63756f":"PriIcoSale(address,uint256,uint256,address,address)","2e639fd5":"GetPlayerInfo()","2e63cfe1":"Twoandtwo()","2e63dc80":"get_description_url()","2e64bcf1":"weiWantedOf(address)","2e64cec1":"retrieve()","2e65280d":"ListNotValidated()","2e660475":"PonziTokenV3()","2e66ee1b":"currentStateToString()","2e69e69b":"getQuantity(address)","2e69e8c5":"CarolToken()","2e6aa830":"testInitialBalanceWithNewMetaCoin()","2e6b2662":"sponsoredBonusMin()","2e6b921c":"claimTokensByAdmin(address)","2e6bbde5":"_updateCurrentAnswer(bytes32,bytes32,uint32)","2e6ccbf6":"getFactorybyIndex(uint256)","2e6d18ec":"getRoomData(uint256)","2e6d561b":"sendUnsoldTokensToTreasury(address)","2e6e190e":"Play(uint256,uint256)","2e6e504a":"trusteeWithdraw()","2e6e795c":"shareHoldersOf(uint256)","2e6f2136":"emitToken(address,uint256)","2e6f3e4a":"PERCENT_RATE()","2e6f456c":"updateCrowd(uint256,uint256,uint256,uint8)","2e70bd4f":"mintOperationCount()","2e712cc1":"getAdminComission()","2e71e68f":"IDX()","2e72057e":"GetLiasonURL(uint256,uint256,uint256)","2e722561":"CrowdsaleController(uint256,address)","2e7248bf":"MINIMUM_SELLING_UCCOIN()","2e729daf":"totalTRsWagered()","2e73dba0":"FeneroToken()","2e76a6d4":"allocateMarketingTokens(address,uint256)","2e771b17":"Spent(address,uint256,string)","2e77b3d0":"annual_circulating_supply()","2e788443":"resolve(string,address,uint256)","2e788faf":"HOLODECKS()","2e78f9a7":"getCardValue(uint256)","2e79477f":"SGD()","2e799a77":"GainChip(address,uint32,bool)","2e79d702":"addPolicyRule(bytes4,address,bytes32,uint256,uint256)","2e7a26d6":"Delineto()","2e7a9409":"_winJackPot(address,string)","2e7bcc55":"put(bytes32,bytes32,bytes32)","2e7ceb0f":"THIRD_TIER_RATE()","2e7d6253":"Sale(address,address,address)","2e7db440":"prepurchase(uint32)","2e7dc6af":"src()","2e7e33df":"sendFunds(address,uint256,bytes)","2e7e9af8":"addDistributee(address,uint256)","2e7e9d82":"ModerateBill(uint256,bool)","2e7f5107":"_processCredit(address,uint256)","2e7f9127":"setSize(uint8,string)","2e7fa0bb":"ReyNetMax()","2e80a85d":"last_jack()","2e80cc56":"crowdSaleMin()","2e80d9b6":"QUORUM()","2e80e77c":"minimumWeiAmount()","2e817963":"set_sdl(address)","2e81cdda":"setItemOptions(address,uint256,uint256,uint8)","2e82aaf2":"lock(bytes32,uint256,uint256)","2e831cd1":"update_bitcoin_ratio(uint256)","2e834576":"tokensForEth(uint256)","2e83faee":"CustodianUpgradeable(address)","2e84a374":"reclaimEtherTo(address,uint256)","2e84bed8":"VESTING_2_AMOUNT()","2e84e8ca":"ItsComingHomeToken()","2e8511f0":"getReg1()","2e85dd54":"getGPSMaxEth()","2e860fc2":"setRaiseLimit(uint256)","2e867c77":"PRESALE_BONUS_PERCENT()","2e86cb13":"publicGetAsset(uint256,uint256)","2e875a9f":"RnMmasterReq()","2e87b461":"getPlayerFrontDataForMarketPlaceCards(uint256)","2e87edd9":"MINIMUM_PARTICIPATION_AMOUNT()","2e87f4a5":"_emitRoleAdded(address,uint8)","2e881918":"setVariantCount(uint256,uint256)","2e894203":"delLitAddress(address)","2e898ddc":"validateTemporalUnit(uint256)","2e8a34a7":"addTo(bytes32,uint256)","2e8ac384":"SmartIdentityRegistry()","2e8ac517":"TokensMinted(address,uint256,uint256)","2e8c0ac2":"balancing(int256,int256,uint256)","2e8c5793":"BonumPromoToken()","2e8cbf7d":"_determineAttack(uint256)","2e8e66b9":"newRequest(address)","2e8e9bb9":"Venuscoins()","2e90610d":"auditActivity(uint256,string,uint256,uint256)","2e9066b2":"lastBlock_v6()","2e90aae8":"cuck()","2e913118":"txTaskMap(uint256)","2e91812b":"setSmallCapWhitelistParticipants(address[],uint256)","2e92abdd":"withdrawDividends()","2e932961":"setTimeEnd(uint256)","2e93497e":"ownerRandomHash()","2e9392bb":"marketEggs()","2e9453c2":"stateOfICO()","2e94afe0":"EDN()","2e94c0df":"_withdrawTokens(address)","2e9501d6":"maxThreshold()","2e963adc":"timelocksContracts(address)","2e97766d":"getBlock()","2e97c5a5":"ethToLoveyRate()","2e97f1bb":"setCustomerTxAsSpent(address,bytes32)","2e984745":"partnerID(address)","2e9868f8":"issuerName()","2e986b54":"TransferMinimumFeeConfirmed(uint256,address,uint8)","2e98a401":"preCheckAndPay(string,uint256,address)","2e993994":"changeUnforked(address)","2e995fd7":"setOraclizeAllowance(uint256)","2e99df84":"InitiateTeams()","2e9a06fd":"isValidIPFSMultihash(bytes)","2e9a3869":"MORCO()","2e9b4414":"getSpawnLimit(uint32,int256,uint256)","2e9b50bd":"addPeer(address)","2e9bbbb8":"transferOwnershipUpdateToken(address)","2e9be9d5":"signWithdraw(address,address)","2e9c135b":"proxydeposit()","2e9c5e77":"doStackExtension(uint256)","2e9c91a8":"getStartParams(bytes32)","2e9efb8e":"commitToWeek(uint256,uint256)","2e9f86cd":"create0(uint256,bytes)","2ea0dfe1":"transferFrom(address,address,uint64)","2ea1f9aa":"getEpisodeLength()","2ea23b11":"testTransferFromDoesNotAllowTransferByAddressThatHasNotBeenApproved()","2ea38693":"testCreatePrizeUsingNewContract()","2ea3ad74":"finishPreIco()","2ea3f9fc":"gelerCompte(address,bool)","2ea459b8":"claimThrone(bytes)","2ea60e35":"fourthWeekBonus()","2ea68d4b":"LazyCoderCoin()","2ea6d6da":"absMin(int256,int256)","2ea7e0d2":"Test5(uint256)","2eaa7be9":"PoolSegregationCrowdsale(uint256)","2eaad0b0":"_getAllChildren(bytes32)","2eac3a7d":"divCashCoin()","2eac5a77":"Getscoins()","2eac5ca2":"deleteUsername(bytes20)","2eacfd0f":"admin_withdraw(uint256)","2ead28fa":"BBTToken(address)","2eadda54":"number_to_hash(uint256)","2eae0018":"setMaxChildCount(uint256)","2eae0d0a":"SetTimes(uint256,uint256)","2eaf7fe0":"buyTokenPostIco(address,uint256)","2eaf81f9":"concludeTournament(uint256,uint256)","2eafb9fa":"setMintTokenOwner(address,address)","2eafc2aa":"installWinner(uint256)","2eb0111c":"currentPhaseAddress()","2eb0b45a":"setGlobalsSize(uint256)","2eb1482a":"isHorseInStud(uint256)","2eb1ee9e":"CandyLand(address)","2eb255ec":"divpaid()","2eb2c2d6":"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)","2eb37466":"removeWhitelistedAddress(address,address)","2eb3a797":"getBetKey(uint256)","2eb44efc":"ICOSaleType()","2eb4a7ab":"merkleRoot()","2eb51417":"isWithinSaleLimit(uint256)","2eb516b8":"setGNR(address,address,address)","2eb56ad4":"getUserTokensByGame(address,uint32)","2eb5c61f":"testThrowsUpdateLatestRevisionEnforceRevisions()","2eb61d15":"getAdvisorStatus(address)","2eb67f53":"isERC20()","2eb73307":"internalRefund(address,uint256)","2eb9526e":"GetBoilersInfo()","2eb95fd4":"doHijack(uint256,uint256,uint256,uint256)","2eb96988":"getMetBalance()","2eb98d34":"hosp_count()","2eb9a518":"ChangeRateOfToken(uint256,uint256)","2eb9f831":"markAsFounder()","2eba1c40":"deleteName(address)","2eba9ca9":"liquidateUser(address,uint256)","2ebabea0":"preSaleRaise()","2ebba2cf":"unitsPerEthAt(uint256)","2ebbac6c":"ico4Cap()","2ebbc58c":"getAllRouter()","2ebc4293":"getEthereum()","2ebc760b":"AvPresale()","2ebd1e28":"setTokenAddr(address)","2ebd632a":"addSystem(address,address)","2ebd9242":"TOTAL_TOKENS_ICO()","2ebe14b0":"timeoutBlocks()","2ebec916":"withdrawalProfit()","2ebeee0f":"increaseMinPurchaseQty(uint256)","2ebfa208":"checkFreeze(uint256)","2ebfeaac":"setCCH_edit_33(string)","2ec0090a":"withdrawEtherBalance()","2ec0faad":"createPassport()","2ec19f0f":"itemTransfer(address)","2ec21efd":"OuCoin()","2ec29c59":"ICOSALE_BONUSJOINTTOKENS()","2ec2c246":"unregister(address)","2ec40ac8":"reached()","2ec449d7":"MedexTestToken()","2ec47069":"assignFoundationSupply(address)","2ec6b4f6":"getUnitCoinProductionMultiplier(address,address,uint256)","2ec6ea30":"Hodl()","2ec82b8f":"balanceOfInt(address)","2ec86103":"booleanToUInt(bool)","2ec90e34":"decrementOwnedArea(address,uint256)","2ec9322d":"returnStartTime(uint256)","2ec9ad44":"removeAccessor(address)","2ec9c537":"MyFiChain()","2eca51e2":"elements(uint256,uint256,uint256)","2ecb0d64":"getNumber(bytes32)","2ecb20d3":"fromHexChar(uint8)","2ecb9279":"yesHash()","2ecbd6d8":"allowedForWithdrawn()","2ecc8703":"guardInterval()","2ecca4e6":"_destroyNinja(uint256)","2ecd071e":"Freezed(address,uint64,uint256)","2ecd7020":"getTotalTokenSold()","2ecde40e":"getRefWallet(address,address)","2ece07c3":"setUserAirDropRate(uint32)","2ecf307e":"_addrNotNull(address)","2ecf66e4":"softCapToken()","2ed028da":"addGift(address,uint8)","2ed196bd":"ccLockedUpBalances(address)","2ed1a7f6":"setProposalTTL(uint256)","2ed1e521":"generateWinMatrix(uint16)","2ed1f26e":"unlockBatchOfAddresses(address[])","2ed20ec7":"Yiha()","2ed23a73":"_releaseTo(address)","2ed252cb":"toERC20(uint256,uint256,uint256)","2ed42bf7":"_config()","2ed44309":"setIcoParameters(uint256,uint256,uint256,uint256)","2ed4595a":"participantContributionInEth(address)","2ed4a2c7":"changeState(address,uint8)","2ed4b68a":"creditFundNIMFAAddress()","2ed5016a":"SolidStampRegisterAddress()","2ed5ca29":"recordFillOrder(bytes32,uint256,uint256)","2ed604c8":"secondsLive()","2ed73df6":"starterPackCardLevel()","2ed94f6c":"bulkWithdraw(address[])","2ed9859f":"hasSongWriterSigned(address)","2edb5389":"replenishTokens(address,uint256)","2edcc661":"crowdsaleStartDate()","2edcedc6":"parkingSwitches(address)","2edefc26":"founderMultiSigAddress()","2edf8042":"collectProvisions(uint256)","2ee01240":"getUnitJadeStealingMultiplier(address,address,uint256)","2ee057ca":"deallocateItem(uint256,uint256)","2ee07c00":"closeEvent(uint256)","2ee07cbf":"AxieClockAuction(uint256)","2ee119cb":"demint(address,uint256)","2ee1e64c":"toRLPItem(bytes,bool)","2ee3cf83":"cancelOrderByAdminWithMerchant(string,address)","2ee40908":"stakeFor(address,uint256)","2ee551bf":"RESERVED_BOUNTY_GROUP()","2ee5d2e3":"last_forwarder_created()","2ee6807a":"raiseCoinsDeducted(address,uint32,uint256)","2ee6f8b6":"changerType()","2ee6fe55":"_addOwnerPlayerToTeam(uint256,address,uint256,uint256)","2ee79ded":"change()","2ee86973":"resolveHTLC(uint256,uint256,uint256,bytes32,int256,bytes32,uint8,bytes32,bytes32)","2ee8dda9":"allocateFoundationToken()","2ee92639":"purchaseCancel(address)","2ee94319":"RecievedEth(address,uint256)","2eea1efe":"getCCH_edit_20()","2eebdeb8":"_setStakeHolder(address,uint256)","2eebe94f":"weiRaisedAmount()","2eecbc7f":"deployMeDao(string)","2eecc46c":"sendTokensToInvestor()","2eed0079":"createMicroModule(uint256,string,uint256,uint256,uint256,uint256,uint256)","2eee5a3e":"totalPresaleTokensYetToAllocate()","2eef13cd":"changeArt(bytes32,string,string,string,string,string,address)","2eef3d65":"query(bytes32,string)","2ef01862":"subscriptionDetails(uint256)","2ef0a28d":"seraphims(address)","2ef140ef":"send(address,uint256,uint256,uint256)","2ef22b34":"setExpRewards(uint256,uint256)","2ef2b51d":"OWNER_TAKE_SHARE()","2ef2d55e":"channelTimeout()","2ef2edb8":"endICOStage1()","2ef345e4":"DAppSky()","2ef35214":"setVestingRate(uint256)","2ef3a7e1":"setBalancePercentageLimit(uint256)","2ef3accc":"getPrice(string,uint256)","2ef4940f":"withdrawalsVotes()","2ef4d922":"revertMe()","2ef5c784":"allTimePlayers()","2ef6d6c0":"countWebsite(address)","2ef70523":"SVDelegation()","2ef75ebc":"STAGES_PERCENT_RATE()","2ef761d3":"buyTile(uint8,uint8)","2ef771ae":"hodlFor(uint256)","2ef875fb":"div10(uint256,uint8)","2ef8c22b":"FunWorldCoinToken()","2ef9b4aa":"EngkusTechResearch()","2ef9b5a7":"changeBonusMultiplier(uint256)","2efa3c87":"TokensSpent(address,uint256)","2efa79d3":"tokensFrozen()","2efaa460":"testActivateSale()","2efad59d":"EmployeeServ(address)","2efb3f04":"getNumberOfScams()","2efb77c4":"changeDates(uint256,uint256)","2efbb80c":"addMeaningToCovfefe(uint256,string)","2efc5013":"Ask(uint256,uint256,address)","2efcb5e0":"TransferCommissionToken(uint256)","2efd08df":"totalPaintingsCount()","2efd5632":"candyLandAddress()","2efeb4e5":"LogSale(address,uint256,uint256)","2effbada":"eligibleTestAndIncrement(address,uint256)","2f002511":"viewTotalPaid()","2f004218":"PERCENT_COMMISSION()","2f00b84a":"SECToken(uint256,string,string)","2f0160e7":"fromOtherCurrencies(uint256,address)","2f034f35":"PerformingMonthlyMinting(uint256)","2f038fd5":"enable(uint8)","2f0573d9":"DSToken(bytes32)","2f0579db":"_isBreedingPermitted(uint256,uint256)","2f0746bf":"unsetWildCardToken(uint256)","2f078b12":"HashGenerator()","2f087a28":"getTokenCap()","2f08acfa":"Extreme()","2f0989ec":"release12m()","2f0ae513":"calculateTotalWithdrawableTokenAmount(address,address)","2f0b0222":"numberOfRound()","2f0b15f6":"testGetUnset()","2f0b5cb5":"setTokenTransferPercentage(uint256,uint256)","2f0b9dcb":"getArray2()","2f0c2c7c":"getReward(uint32)","2f0c59e7":"DISTRIBUTION_INVESTORS()","2f0c9387":"TestCitySnapshot(address,uint256)","2f0cca79":"dataMerkle(uint256[],uint256,uint256)","2f0d2079":"getEventBanks(uint256)","2f0d8962":"ChangeFeed(bytes32,uint256)","2f0dbae1":"MaxICOpublicSupply()","2f0ddcb2":"getTechBonus2(uint256)","2f0e23fb":"purchaseEndTime()","2f0e3a6c":"status(address,address)","2f1017cb":"getwinnerloser()","2f109d2b":"afterWhtelisted(address)","2f113f27":"LOCK_STAKE()","2f12bc02":"LiquexPrivateSale()","2f1335cf":"splitFunds(uint256)","2f13b60c":"isExpired()","2f148f55":"showMoseEvent(uint32)","2f156f69":"deployTgeTeamVesting(address,uint256)","2f158162":"setHKHcoinAddress(address,address)","2f16753c":"ShellToken(uint256,string,uint8,string)","2f1766c5":"addCA(address,address,string,string,string,string,string,string)","2f17a466":"terminateSchedule(address)","2f186785":"showProfit(address)","2f18a920":"setDeputy(address)","2f1927cb":"prepareRoll(uint256,uint256,uint256)","2f194e40":"isMintDone()","2f1a2e72":"allocate(address,int64)","2f1a332a":"OwnerRandomNumber(uint256)","2f1a8177":"weiToBnty(uint256)","2f1a8b63":"modify_ICOEndDate(uint256)","2f1af169":"EscrowMyEther()","2f1afbac":"doAirdrop(address,address[],uint256[])","2f1c34ef":"buyStar(uint256)","2f1c6494":"tgeSettingsAmount()","2f1c935e":"setSkinContract(address)","2f1cae85":"isIssuable()","2f1cc35b":"getRoundBetNumber(uint256,uint256)","2f1d29fd":"HarjFarmer()","2f1d3e28":"sendAwardToLastWinner()","2f1d5a60":"setOperatorAddress(address)","2f1ddbe3":"nodalblockShortLink(uint256,string)","2f1de784":"getPoolsAllot(bytes32)","2f1e4968":"makeNewProposal(string,uint256)","2f1ee5e1":"recycleUnreceivedBonus(address,address)","2f1f1d43":"getownership2(uint16,uint256,uint256)","2f20270a":"addNewUrl(string)","2f2035ed":"test_feePoolShare_notTranscoder()","2f204237":"setupSaleContract(address)","2f212780":"KYCbit4()","2f220d7a":"executeEscrow(uint256,address)","2f237e82":"create(string,string,bytes)","2f24bdc7":"is_transaction(bytes32)","2f254d09":"UGVCToken()","2f262471":"GetPlayerCards(address)","2f265cf7":"totalVotesFor(bytes32)","2f26b5d1":"delayIcoEnd(uint256)","2f26f6f5":"getIsCompany(address)","2f2712f8":"getStat(bytes32,address)","2f274d91":"buyVotes(uint8)","2f2769d1":"assertEq(address,address,string)","2f2770db":"disable()","2f278ecb":"reverseBytes(bytes)","2f27b556":"card_start_minamount()","2f29d8c5":"elapsed()","2f2b348d":"setBeneficiary1(address)","2f2bd5ac":"testTransferCorrectlySendsTokens()","2f2c00f3":"PTMCrowdFund()","2f2d783e":"rewardRoto(address,bytes32,uint256)","2f2d9109":"changeAirdropTotalQty(uint256)","2f2dc6e2":"setCardsCount(uint256)","2f2e2d7f":"fstUnitPriceDenominator()","2f2e3cea":"userDividendsWei(address,address)","2f2ebe41":"setToken4Gas(uint256)","2f2f010c":"OCLotteryContract()","2f2f20c1":"INCH()","2f2f4859":"helloworld()","2f2f4a63":"buyWorldCupTeamToken(uint256)","2f30283e":"testSomething()","2f3085d6":"LEGAL_EXPENSES_TOKENS()","2f30c6f6":"set(uint256,address)","2f30cd5f":"addLockAddress(address,uint256)","2f310bad":"redeemToken()","2f318039":"isTransferable(address,address,uint256)","2f32013d":"Kolidat()","2f330041":"transfers(address,uint256[])","2f334131":"lastAddYear()","2f334652":"teamClaimed()","2f335a6a":"getTitulaire_Compte_9()","2f3423b8":"grantTokenStartNow(address,uint256,uint256,uint256)","2f347e48":"DigitalTicks()","2f34adb4":"airdropNum2()","2f34c645":"endBounty(address)","2f35a71e":"Blockchain()","2f366637":"buyTickets(uint256)","2f377902":"CandyDropOpen(bool)","2f379fc8":"isInStage2()","2f381df0":"London()","2f38262a":"GetBankBalance()","2f384523":"removeFunds(uint256)","2f386a8e":"sellingDisable()","2f38b55a":"_checkDetail(uint256,uint8)","2f39bf80":"LirkToken()","2f39f5cd":"PresaleMarket(address)","2f3a212e":"test_oneValidEqUint2()","2f3a26ee":"TransferTimeSet(uint256)","2f3b24d2":"GenesisManager(address,address,address,address)","2f3b5603":"setPayoutLimit(bool)","2f3c8bd1":"returnTokenBalance(address,bytes32)","2f3d8035":"grantVestedTokens(address,uint256,uint256,uint256)","2f3e5408":"takerFeePercent()","2f3e9bc5":"canSelfDestruct()","2f3f2092":"ARIONTOKEN()","2f3f234a":"RLCSentToETH()","2f3fecaa":"startOffering()","2f3ff501":"getDynamicElementAt(uint256)","2f401300":"EPAchain()","2f405bb7":"getCoversForPacks(uint256[])","2f408990":"testAccessPermissions()","2f430e17":"approveTx(uint8)","2f434748":"setMintAndBurnOwner(address)","2f443315":"get_liquidity_account(address)","2f455d51":"changeRate(uint8)","2f45aa21":"getblockRevenuePerTicket(uint256)","2f4675cd":"OranguSale(uint256,uint256,uint256,uint256,uint256,address,address,uint256,uint256)","2f46b3cc":"getMyReport(bytes32,bytes32)","2f46ba70":"DAOToken(string,string,uint256)","2f4736da":"_canTransferBatch(uint256)","2f47571f":"isCapabilityPublic(address,bytes4)","2f475c32":"withdrawPart(address,uint256)","2f482935":"SFTToken()","2f48ab7d":"usdt()","2f48c4aa":"setFoundersTokensWallet(address)","2f48f151":"addFee()","2f4a81df":"howManyOwnersDecide()","2f4c0b08":"joinGreatHarmon(string,string)","2f4c3a84":"transferPlayer(uint256)","2f4cf60f":"MultiSigWalletWithTimeLock(address[],uint256,uint256)","2f4e32f5":"FlexiERC20Token()","2f4e4c27":"ErrorContract()","2f4ea4ee":"release_1()","2f4ee5d4":"registerThrone(bytes,uint256,address,uint256,uint256)","2f4f3316":"isInstantiation(address)","2f4fda30":"BIG_NUMBER()","2f512b6b":"LomeliMultilpleTokens()","2f520081":"setPurchaseTimestamp(uint32,uint64)","2f53cc96":"CHINESE_EXCHANGE_3()","2f540d94":"BONUS_MID()","2f54a61e":"setClaimerForTile(uint16,address)","2f54bf6e":"isOwner(address)","2f553d31":"isCreated(bytes32)","2f554288":"listPrycto2()","2f554d53":"agreeFromPod()","2f5552f5":"KAL6Token()","2f55745b":"getPendingCrateForUserByIndex(address,uint256)","2f558ba0":"setFinish(uint256)","2f55f125":"decreaseAllowanceOrEmtpy(address,uint256)","2f56dc5f":"prepareContinuousPurchase()","2f570a23":"test(bytes)","2f576f20":"doNothing()","2f581480":"CandyCoinBigBang()","2f5867b3":"changeRates(uint8,uint256)","2f58768f":"contractors()","2f591a6a":"setRateForTransaction(uint256,address,uint256)","2f593404":"payoutCycleInDays()","2f597e71":"testLongInput()","2f598404":"getCatDetails(bytes5)","2f599242":"getEvaluationByStudentID(uint32,uint64)","2f5a5c5b":"timegame()","2f5bb661":"getNextVestingEntry(address)","2f5c3102":"Make_Deposit()","2f5c5a08":"setEthealToken(address,address)","2f5d3916":"testControllerApproveTriggersEvent()","2f5e80c3":"withdrawToken(address,uint16)","2f5e8d29":"setDAIRate(uint256,uint256)","2f5ebbaa":"marketState(address,uint256)","2f5f3b3c":"pointer()","2f605106":"getSponsor(uint256,uint256)","2f6113dc":"assignICOState(address,uint256,uint256,uint8)","2f6174ef":"getSig(bytes,uint8,bytes32,bytes32)","2f62a6ff":"fipsRegister(uint256,address,bytes)","2f634a90":"getOwner(address,uint256)","2f635c6a":"VolumeImbalanceRecorder(address)","2f63e2fa":"_incrementTokenBalance(uint16,uint16,uint8,address,uint256)","2f640a09":"setConfirmer(address)","2f646bd5":"ArmMoneyliFe()","2f65142c":"getTransfers()","2f653279":"getReceivedTrade(address,uint256)","2f658c3f":"Raffle(uint256)","2f65be54":"transferBonusEarnings()","2f661946":"cliffPeriod()","2f668c5c":"etherFeeMin()","2f66d5a7":"KPOP_ITEM_CONTRACT_ADDRESS()","2f6701b0":"withdrawalList(bytes32[],address)","2f674ab9":"maybeUpdate()","2f677038":"grantUserRole(bytes32,string,address)","2f67cf56":"eth_fallback(address,bytes)","2f684b83":"addDecimals(uint256,uint256)","2f695053":"getCertifierAtIndex(uint256)","2f69ca13":"createCounts(bytes32,address)","2f69f161":"getGameResultPrice(uint256)","2f6a638b":"GetMaxEther()","2f6a6e20":"calculateMaxEggG0(uint64)","2f6ae467":"transferDocument(bytes,address)","2f6b7bbd":"Gubberment()","2f6b8143":"wethBalance()","2f6b9099":"completeOrder(address,address,address,address,bytes32,uint256)","2f6c493c":"unlock(address)","2f6dc6b3":"removeBorrowingOfferItem(uint256)","2f6e2711":"Int256Oracle(int256)","2f6e931f":"changeBurnPausedTime(uint256)","2f6f1c68":"speciesSymbol(uint256)","2f700fb6":"autoJudge()","2f70197c":"_getBalanceFactor(bytes32)","2f7146cc":"setLockingTimestampFromTo(uint256,uint256)","2f71d022":"updateTokenInfo(string,string)","2f723c7f":"RewardHoDLers()","2f72d697":"GCOXOWNToken(string,string,uint8,uint256)","2f72ffaf":"getEmployerContractsByStatus(address,address,uint256[],uint256[])","2f73010a":"ratePerWeiFirstPhase()","2f7359a3":"TOKEN_STANDARD_ERC223()","2f73ef91":"getFundsWalletBalance()","2f743591":"burnFinished()","2f7442bb":"transferBounty(address,uint256)","2f745c59":"tokenOfOwnerByIndex(address,uint256)","2f75a929":"extractRepository(string)","2f76c31d":"roundTwoLimit()","2f77428e":"collectdustatcontract()","2f774e44":"getMsgSigner(bytes32,bytes)","2f77688b":"TestingUseCoin(uint256,string,string)","2f77dba4":"tokenPerEther()","2f781228":"IjasCoin()","2f781393":"setDiscountStep(uint256)","2f782b32":"weiContributed()","2f78bab1":"LockDiv(address,uint256)","2f78dc14":"ErrMsg(address,string)","2f7907e4":"calculateBestPrecision(uint256,uint256,uint256,uint256)","2f7981c2":"getWealthOfUser(address,address)","2f798500":"clockAuctionStorage()","2f7a163b":"nearestKnownBlockHash()","2f7a407b":"exchangeFormula()","2f7a7192":"capFiat()","2f7b3677":"getMetadataUrl(uint256)","2f7cdb0e":"DEV_DECIMALS()","2f7dbc9b":"fromInt256(int256)","2f7f3ecf":"findNextHour(uint256,bytes)","2f7f7f55":"approveFee()","2f80324c":"EURO()","2f8061d4":"repayment(address,uint256,address)","2f815ed1":"transferToContractCustom(address,address,uint256,bytes,string)","2f81bc71":"multiMint(address[],uint256[])","2f83e16d":"_allocateTokens(address)","2f83f781":"fetchSuccessfulSaleProceed()","2f851184":"H4DAddress()","2f85577f":"changeACAddress(address)","2f85f092":"destTokensAdvisors()","2f86282e":"CheckGameStart(bool)","2f865568":"liquidate(address)","2f869d26":"getAssetPoolAddress(address)","2f86f2ee":"MAX_OPEN_SOLD()","2f8803bb":"addressCOO()","2f885f79":"trakToken()","2f88ae5f":"setIco3Tokens(uint256)","2f899fec":"Pharmatron(uint256)","2f8a12fe":"setMsg2(string)","2f8abfbe":"roundIt(uint256)","2f8b023d":"allowedTransferFrom(address)","2f8b0250":"setEndTimeIcoStage1(uint256)","2f8bd891":"directMint(address,uint256)","2f8c239f":"giveAdvisers(address,uint256)","2f8c98c2":"flipMovingSwitchTo(bool)","2f8cfe0e":"deleteResources(address[],bytes4[])","2f8d2d19":"BurnAssignedFees(address,address,uint256)","2f8de810":"tokenPriceInWei()","2f8e7133":"lockBBK(uint256)","2f8f0c92":"canDeposit(bytes32,address)","2f8f175c":"seal(address,address,uint256)","2f8f8c0b":"approveCertificate(address)","2f8ffce8":"allItemsWrong()","2f9021fd":"withdrawToCooperate(address,uint256)","2f90daf4":"raisedForEther()","2f91822c":"ETHCollector()","2f91b591":"RemoveMinter(address)","2f923c59":"tokenCapForFirstMainStage()","2f926732":"register(bytes32,bytes32)","2f92acc5":"test_4_accessRestriction_execute_shouldThrow()","2f92b151":"HotLove()","2f92f5a0":"query1_fnc(uint256,string,string,uint256)","2f94afba":"cao()","2f94e335":"_createLambo(uint256,address,uint64)","2f95055e":"deleteHiddenPosition(uint32,int64[2],bytes16)","2f95b833":"requiredStackDepth()","2f969d43":"MAX_UNSOLD_RATIO()","2f977b3f":"newTask(string,string,uint256,uint256)","2f978ec0":"getProviderInfo(address,uint256)","2f98511c":"createHistory(bytes32,address,address)","2f991b5a":"hasMemberAccess(address)","2f99c6cc":"BENEFICIARY()","2f9a7c22":"TransferToWaves(uint256,string)","2f9a8bf2":"StreamerContractChanged(address,uint256)","2f9b3126":"founderShare()","2f9b4096":"removeExternalController(address)","2f9c1df6":"createDeposit(address,uint256,uint256)","2f9cb9aa":"getClosingTime()","2f9ffab9":"Airstayz()","2fa00e58":"fipsTransfer(bytes20,address)","2fa05208":"minimalGoalReached()","2fa06ff1":"exchangesLockEndingAt()","2fa07bfc":"_increaseApproval(address,uint256,address)","2fa146d8":"officialEmail()","2fa1df4f":"RIG()","2fa241fc":"playerBook()","2fa267fc":"ReadBible(uint16,uint16,uint16,uint16)","2fa26aaa":"minimalEthers()","2fa30d33":"calcResolve(address,uint256,uint256)","2fa3a41e":"testLowestTranch()","2fa3e006":"CreatedToken()","2fa49c06":"SetTxFee(uint256,uint256)","2fa4f694":"setAssessorPool(uint256,address,uint256)","2fa553d3":"sendMinerByOwner(address,uint256)","2fa5620a":"Mpay(uint256,string,string)","2fa61cd8":"generate(address)","2fa6512f":"clearWalletPending()","2fa69585":"strikeCall()","2fa78393":"returnUserBalance(address,address[2],uint256[7],uint8,bytes32[2])","2fa7cbfb":"getExecCost(uint256)","2fa80164":"AgruCoin()","2fa8591e":"TACTICALCRUISER()","2fa92dde":"jackpotConditionPercent()","2fa94fb3":"teamTrustAccount()","2fa975c5":"seatsList(address,uint256)","2fa99791":"completeOrderBySafePeriod()","2faa2998":"startICO_20_December()","2faa3014":"uintFunc(uint256,uint256)","2faa5e3c":"changeMerchantAccount(uint256,address)","2faa9bbb":"LockClaimed(address,uint256)","2faad46f":"addAllowedTransactor(address)","2fab662a":"_decreaseMintApprovalAfterMint(address,uint256)","2fabc174":"multFracCeiling(uint256,uint256,uint256)","2fac1a54":"newOrder(bool,uint256,uint256,uint256,uint256)","2fac1d36":"isReadyFor(address)","2facc4e8":"depositGovernance(uint256,address)","2faccbeb":"changerProprio(address)","2fad380d":"burnWithDecimals(uint256,uint256)","2fae43dc":"m_ETHPriceLowerBound()","2faebb20":"getBettersArrayLength()","2faef47a":"AbcToken()","2faef4e5":"getGranteesSize()","2faf1895":"saveContractEvent(string,string)","2faf9a93":"checkUnsold()","2fafb11d":"get_profit_by_roll_under(uint256,uint256)","2fb07482":"restoreWebGift(address)","2fb131d4":"preicoClosed()","2fb1746d":"turnOnTradable()","2fb1b25f":"sign(uint256)","2fb22cfa":"ECO_SYSTEM_STAKE()","2fb260f6":"EthertokenDelta(address,address,address,uint256,uint256,uint256)","2fb27669":"preSaleComplete()","2fb2a061":"rateForDays(uint256)","2fb2bcf4":"postTwit(string)","2fb2f3dd":"updateFrozenToken(address)","2fb556f7":"tokenNeedForBonusLevel0()","2fb565e8":"update(uint256,uint256)","2fb5b5f6":"setNextSnapshotBalance(address,uint256)","2fb61f7d":"dispute(address,bool,uint256)","2fb767c5":"failSubtractWhenALessThanB()","2fb840f5":"transferFrom(bytes32,bytes32,uint256)","2fb88284":"parseRLPHeader(bytes)","2fb9d203":"VoteSubmitted(address,bytes8)","2fbaba26":"setHash(uint256,string)","2fbac05c":"transferManagment1(address)","2fbbc9c9":"calcCoinsReceived(uint256)","2fbbde2d":"buyDrago()","2fbc0bf1":"getSalePrice()","2fbc2449":"COLETOKEN()","2fbc8353":"ownerCanBurn(bool)","2fbcf568":"getCurrentCryptantFragmentPrice()","2fbd2134":"_migrateExpiredCrates()","2fbd2432":"transferExternalToken(address,address,uint256)","2fbebd38":"foo(uint256)","2fbf6f73":"TRNDToken()","2fbfbc85":"PETTCOIN()","2fbfc252":"changeTeamETHAddress(address)","2fbfc376":"HRY(uint256,string,string)","2fbfe951":"change_min_amount(uint256)","2fbfeba9":"getTokenAddressByName(string)","2fc0aad3":"isNumericString(string)","2fc15517":"kelly()","2fc17e40":"TdeStopped(uint256)","2fc17f8b":"setCompte_3(string)","2fc35948":"SCWhitelist()","2fc3f13f":"WindowPeriodClosed(address,uint256)","2fc4eea0":"removeName(bytes32)","2fc516e3":"COMMON_BUDGET_AMOUNT()","2fc52220":"setPOOL_edit_19(string)","2fc5a8ec":"Joules()","2fc60405":"TANK_TYPE()","2fc64ff7":"organizer8()","2fc6e8b7":"isEnd()","2fc71565":"setMarketplaceAddress(address,address)","2fc761a6":"createItem(uint256,string,address,uint256,uint256,uint256,uint256)","2fc77d85":"TotalETHGivenToNorthPole()","2fc8124d":"setSecondWallet(address)","2fc84de8":"XCTToken()","2fc8c39d":"TADPOLE_BASE_REQ()","2fc94ba6":"getAddressArrayLength(bytes32)","2fc9a415":"_emitAccessGiven(address,bytes32)","2fca3b0d":"TBECrowdsale()","2fca5414":"isTAO(address)","2fcaa8fa":"removePresaleHolder(address)","2fcb20e9":"changeReserveTeamRecipient(address)","2fcb6628":"_stringGas(string,string)","2fcd410a":"MiniPoolEdit_2()","2fcd6075":"BlocktekUniversity(address)","2fcdeba1":"fund_owner()","2fce1291":"EcroContract(uint256,uint256,uint256,uint256,uint256)","2fcf84bf":"getEthereumFromPreIco()","2fd0f37e":"claimConsolationPrizeLoot(uint256,address)","2fd23817":"MFTU()","2fd3bd2e":"passFoundation()","2fd3dee8":"testDisputedValidMemoryAccessSequence()","2fd3fc9d":"bthFoundationWallet()","2fd463e1":"STARTMETADOLLAR()","2fd47643":"getRoundIssued()","2fd4ec28":"terminateIco()","2fd4f2f9":"changePreICODates(uint256,uint256)","2fd55265":"depositToken(address)","2fd5a13d":"GetClientCategory()","2fd5ecda":"b66AdvisorFundDepositAmt()","2fd6d40b":"getBetValueByGamble(uint8)","2fd949ca":"terminateContract()","2fd95a6f":"createGen0(uint256,uint256,uint16,bool)","2fd97c7d":"AllotAward()","2fda7166":"stopReceiveTicket()","2fdadc21":"sendtoA(uint256)","2fdae3c5":"addProposal(string)","2fdaf6af":"claim_tokens(address,uint256)","2fdb3e6c":"getBalanceETH(address)","2fdbb3d4":"cumAcceptedDeposits()","2fdc505e":"mine(bytes32)","2fdcfbd2":"sendToken(address,address,uint256)","2fdd653e":"getFortune(uint256)","2fdde1d4":"setUseTimeBasedBonus(bool)","2fddf859":"getLockedTokens_(address)","2fdeca37":"DEFAULT_TEXT()","2fdf15d5":"usernameToAddress(bytes32)","2fdf795a":"BOUNTY_TOKENS_PERCENT()","2fdfd2ae":"checkSecret()","2fe045fa":"initiateClaimDelegated(string,bytes32,uint8,bytes32,bytes32)","2fe1c0f8":"tokenTransfer(address,uint256,address[])","2fe20e94":"totalRestrictedTokens()","2fe29c78":"auctionIdToSeller(uint256)","2fe45a8d":"RetailSale(address,address,address,uint256,uint256,uint256,uint256)","2fe4b2d9":"submitSteak(address,address,bytes32)","2fe55632":"NexxusToken()","2fe69430":"TokenERC20(uint256,string,uint8,string)","2fe6a47c":"largestPro()","2fe6ecb2":"PHASE3_SUPPLY()","2fe71915":"request(uint256,address,address,bool)","2fe7a0bd":"burritoData(uint256)","2fe8ace3":"changeSuperOwnership(address)","2fe9541f":"addIssueBounty(string,uint256)","2fe97e3a":"approveAndCall(address,uint256,string)","2fe9950e":"adminSetDuel(uint256,uint256)","2fe99bdc":"insert(string,string,string)","2fe9e1a9":"change_address(uint256,address,address)","2fe9f821":"startRefunds()","2fea0c40":"revealBid(bytes32,uint256,address,address,bytes32,uint256,uint256)","2fea6915":"weiReqFund()","2fea7b22":"GetIndex(uint256,uint256,uint256)","2fea7b81":"getIdentity(address)","2fea9624":"DepositorsQty()","2feceb46":"extend_end_block(uint256)","2fed3c9e":"VoteCast(address,uint16)","2fed7da0":"getNextBackUserId()","2feda2fa":"POI()","2fee26ce":"addApp(address,uint32,uint32,string)","2feee782":"YWBToken()","2feef2ec":"expectedAmount()","2ff077be":"updateBettingOpensTime(bytes32,uint256)","2ff284c2":"computeFee(uint256,uint256)","2ff2e9dc":"INITIAL_SUPPLY()","2ff36e9b":"BTHBCoin()","2ff420ef":"CHF_CENT_PER_TOKEN()","2ff42757":"approveAndCall(address,address,address,uint256,bytes)","2ff4f24e":"createLoveStory(bytes16,bytes32,bytes32,uint256)","2ff50b51":"modifyEscrowPrice(uint256,uint256)","2ff59dec":"getEthartRevenueReward()","2ff59ee7":"miningIncentiveWallet()","2ff5e00c":"setAttaccContract(address)","2ff5ec3f":"armyTanksCount(uint256)","2ff6c55f":"DEVELOPMENT_FUND_LOCK_TIMESPAN()","2ff6fe76":"priceToken()","2ff76163":"getAdres(uint16)","2ff7a81f":"getAvgReportingGasPrice()","2ff92323":"oraclize_query(uint256,string,string[4])","2ff98d53":"getStageClosingTime(uint256)","2ff9b03a":"hackDecisive(address,uint256)","2ff9f017":"exchangeNominsForHavvensAtRate(uint256,uint256)","2ffa815b":"changeHouse_and_Owner_Addresses(address,address)","2ffb054e":"setMarketplaceManager(address)","2ffb8631":"getReleaseLockfileURI(bytes32)","2ffb9e64":"updateGasForXaurData(uint256,uint256)","2ffbf988":"packedBytes(uint256)","2ffc7b7e":"firstDiscountPrice()","2ffda1e0":"setBlackflag(uint256,bool)","2ffda952":"walletWithdrawTokens(uint256)","2ffdaa44":"BDToken()","2fff7bb3":"assignMultirequest(uint256)","2fffaa00":"Kingdom()","2fffb3f9":"getLockFundsReleaseTime(address)","2fffe0dd":"rocketArrivalTime(uint256)","2fffee92":"setContingencyFunds(address)","30007ed3":"tgeStartBlock()","30008b48":"pullDividendPayment(uint256)","30012940":"checkTeamFreezePeriodOver(address,address)","300182b8":"sale1(address,uint256)","30021bae":"SubDiv(uint256)","300240d6":"MAX_REGULAR()","300309f0":"setUserPaybackRate(uint256)","30043d4e":"AddedToHolder(address,uint256,uint256)","3004ea88":"EOSDRAM()","30067bc8":"setRegistrationOpen(bool)","3006f513":"coinSendDifferentValue(address[],uint256[])","30073514":"_allocation(address,address,address,address,address)","30074c6c":"publicSaleRaised()","30092ded":"changeVoteWeight(address,int256)","30093319":"_setRevealsCount(uint256,uint256)","3009a265":"isReg(address)","3009bc01":"claimFreeDragon()","300a1a7f":"mixWithStringFunc(int256,string,bool,string)","300a246f":"can_get(address,bytes12)","300a411e":"getRecording(address,uint256)","300abd61":"m_numMembers()","300ac0e9":"priceTimeToExpiration()","300b59da":"initTokens(address[],uint256[],bool,bool)","300ba0ec":"prevTweetTime()","300ba8ab":"_decode()","300c229f":"changeMaxDepositAmount(uint256)","300c3091":"setMigrationContractAddress(address)","300c7063":"SbToken()","300cc37a":"paySomeRewards(uint32,uint32)","300d55a5":"transferAdvisor1Tokens(address,uint256)","300d9e90":"icoOver3()","300e4b3c":"setminprice(uint256)","300e7b2d":"firstAuctionsExtendedDuration()","301058c9":"DURATION_PRESALE()","30106b17":"calckeys(uint256)","3010b5cd":"clearWizzType(uint256[2])","3010f39d":"playersToBetIndices(address,uint256)","3011b4c2":"CreateARTL(address,uint256)","30124349":"balanceLoc(address)","301249eb":"setPercentWeiMC(uint256)","3013ad89":"RangeToken()","3013ce29":"paymentToken()","30140053":"burnIcoTokens()","3015394c":"cancelRequest(uint256)","30155f5e":"setzAddress(address)","3015a521":"totalSignatures()","3016a439":"getImageBlurredAt(uint256)","3016e108":"removeGameMachine(address)","3017fe24":"callAPIVersion()","3018205f":"getController()","30183a2c":"GemstoneToken()","30184635":"getMinCap(address)","3018579e":"TokenSampleG()","30188fdf":"BFreeContract()","3018c90a":"getSubOrderStatus(uint256,address)","301997ae":"fundEscrow(address,uint256,uint256,uint256)","301a9b09":"startPhase(uint256,uint256,uint256,uint256)","301b9307":"getABsort()","301c42d7":"issueRateDecDuringICO()","301cbcb3":"STARTING_RICE()","301cf6e7":"payoutsPaused()","301d5209":"delegatecall_selfdestruct(address)","301d5eda":"change_start_block(uint256)","301dd027":"TIER_2_CAP()","301df7ab":"_create(address,uint256)","301ea971":"lockReleaseDate1Year()","301ecf82":"_createEtherBro(uint16,address)","301f0464":"ratePerEthPhase3()","301f2dac":"getRegionPrice(uint16)","301f93e0":"calculateEthereum(uint256)","301fbdef":"totalWeiToBeDistributed()","301fdb54":"getPayouts(int32,int32)","30203994":"stage2_price()","3020a18e":"setSaleEnabled(bool)","3020ea8a":"retrieveEarnings()","302155e5":"CHAToken()","30223c12":"del_product(uint256)","30226121":"CCXCrowdsale(address,address)","30228a12":"YouAreRichToken()","30230796":"setTradeABIHash(bytes32)","30231ea4":"canRenounce()","30232cb0":"buySeele(address)","3023641d":"removeTokenGrant(address)","30238687":"ALLOC_NEW_USERS()","3023d0c4":"Ethstick()","302579c6":"getWarlordChestPrice()","30257bf7":"getByAddress(address)","3026a128":"LOG_InvestorExit(address,uint256)","3026aedf":"getTopBidders()","30288f03":"setFile(string,string,uint256,string)","30289c61":"getDetails(address)","3029300f":"nextSellTime(address)","3029948a":"phase_2_bonus()","3029ba69":"withdrawBountyTokens(address,uint256)","302a4100":"decayedTransferFrom(address,address,uint256,address)","302a7ff3":"getDAdmin(bytes32)","302bcc57":"playerCount()","302bda24":"getSell(uint256,address,address)","302c46ba":"ReleaseTokenForTeamAdvisersPartners()","302d350e":"firstChainedCallback(uint256)","302dfe97":"commissionPer()","302eb389":"transferFund()","302f3915":"LockFunds(address,uint256)","302f4303":"setRandomGenerateMethod(uint8)","30311898":"Account(address)","3032236f":"depositAndVest(address,uint256,uint256,uint256,uint256)","30322b12":"weiForMcr()","30323542":"_delOwner(address)","30324370":"fetchOrderByIdWithPayer(string)","30324f55":"DutchAuctionToBuy(address,address,address)","30326c17":"proposal(uint256)","3032f951":"advisorsBalanceMap(address)","30332aea":"P2()","3033f4d3":"pastOneHour()","30347537":"STARTING_CAT()","30366d5f":"getEventsCount()","3036d769":"minGasPriceGwei()","3037408d":"balanceOfAtTime(address,uint256)","3037801e":"recordNum()","3037cea3":"knownRoleNames(bytes32,bytes32)","3037e694":"disburseDividends(uint256)","30381f5f":"getHistoricalDelegation(uint64)","30389c45":"round1BonusSteps()","3039b1ce":"changeETHLockingAddr(address)","3039e6f9":"CHARITY()","303a2372":"getDSP(address)","303a36e2":"getRow(uint256)","303a88b4":"convertRate(address,bytes32,bytes,uint256)","303b069f":"enableEmergencyWithdrawals()","303b5d3b":"toInt(string)","303b8144":"MobilinkToken()","303b9379":"SetLogFile(address)","303bef74":"deleteAllMessages(address)","303c2569":"payRakeInternal(address,uint256)","303d0870":"limitForChecklistId(uint8)","303e74df":"descriptor()","303ed73a":"setSkills(address,uint256,uint256[])","303ee989":"isPendingDeregistration(address)","303f5f51":"LEGEND()","303ff1d8":"YDTC()","30406423":"payJackpot()","30411a27":"testAddGains()","3041ba2a":"setForecasting(address)","3042b17d":"setUmkaAddress(string)","304318d3":"editDuration(uint256)","3043cbc5":"newTankType(uint256,uint256,uint32,uint32,uint32,uint32)","30443062":"penultimateFeePeriodStartTime()","3045a299":"Society(string,address)","3045aaf3":"Symbol()","3046868d":"AccountStructs(address)","3046fe26":"XulToken()","30473c2f":"getSelectedName()","30490e91":"processProposal(bytes32)","304a45c2":"getvalues()","304a87b7":"setOpenGroup(uint256)","304ab76a":"DebtTokenCreated(address,address,uint256)","304bac6f":"func_0A6E()","304c69ed":"_packItemData(address,uint256)","304cb3d8":"setTrusted(address,address,bool)","304d50b2":"addStar(address,uint8,uint8,uint16,uint8,uint8,uint8,uint256)","304d95a6":"RefundPoll(address,address,uint256,uint256,uint256,bool)","304dd754":"IsActive()","304ddebe":"eventSetWinner(uint256,address,uint256)","304de747":"MARKET_CAP_PER_ROUND()","304dfd33":"_onRandomFailed(bytes32)","304e48bb":"LogFundingReceived(address,uint256,uint256)","304f34a0":"splitBid(uint256)","304f5027":"myUserWallet(address)","304f8af4":"sendBountyTokens()","30500684":"addEarlyBird(address,uint256)","3050226a":"addTransferableAddresses(address[])","30507451":"receiveBonus()","305075db":"NormalizeRanks()","305094ab":"ispackagesaleClosed()","30509bca":"claimBalance()","3050caa4":"calculateStake(bytes8,bytes5)","3050f769":"transactionsClaimed(uint256)","3052b75e":"changeEndTime(uint256)","3053aedc":"capDoublingTimestamp()","3054c79a":"transform()","30573dfa":"auditGuess(uint256,string,uint8,bytes,uint256)","305788fa":"newTransferProposal(address,string)","3057d5e0":"residualAmountPromille()","305876a7":"isRoundOver()","305939b0":"setReceiptAsset(address,address)","305997c8":"addIsSafe(uint256,uint256)","30599ba7":"SOSBOTTOM()","30599fc5":"recoverTokens(uint256)","3059ac30":"Escrow(address,address)","305a67a8":"cancelListing(uint256)","305a762a":"getTicketsCountByBuyer(uint256,address)","305a99c1":"Kemonocoin()","305b73d9":"configure(address,address,uint256,uint8,bytes32,bytes32)","305bcfab":"TrustlessTransaction_Protection_Seconds()","305d6d31":"stopFundRaising()","305e3552":"eggPrice()","305eae79":"updateBusinessWallet(address,address)","305ec69e":"finish(address)","305ed015":"giveReward(address)","305f17d5":"setCrydrController(address)","305fcef3":"decide()","306023a3":"allocateTeamTokens()","3061d568":"GOC()","3061e0ef":"changeRecovery(address,address,address)","3062cd8a":"purchaseETH()","30630699":"testDisputedWriteDifferentValueInState()","306387a4":"dealStatus(uint256)","3064061b":"checkNotSmartContract(address)","3064448e":"ASCCToken()","30659e74":"moneyBack()","3065a575":"setAElfDevMultisig(address)","3065d22c":"setVariationProbably(uint256)","30677b83":"multiplierFactor()","306781c1":"getCurrentPayoutBlock()","3068bffd":"grantIssuer(address)","30690468":"atleastZero(int256)","306a2ea8":"disapproveUser(address,bytes32)","306a401d":"delMarketMakerAddress(address,address)","306a8589":"p_update_mNewPlotTaxPercent(uint256)","306ab1ba":"forwardFundsAmount(uint256)","306ae57b":"standAndRebet(uint256,uint8[],bytes32,uint8,uint8,bytes32,bytes32,uint256,bytes32,bytes32,bytes32)","306b031d":"getGenerationEndAt(uint256)","306b0d84":"SetSharedStorage(address,address)","306b4dea":"addQuantityListItem(bool,address,address,uint256,uint256)","306c4ebe":"getCurrentTrancheVolume(uint256)","306c7290":"eth_balance()","306d4ed9":"userHasWithdrawn(address)","306df22d":"GPSDestination(int256,int256,uint256)","306e3e99":"COMPANY_SHARE()","3070352b":"buyAMI(string)","3070c38b":"checkTermination()","30710f01":"Crack(address,uint256,uint256)","30725c46":"_ownerOfPopInAnyPlatform(uint256)","3072cf60":"_initialized()","3073530b":"release_2()","3073c916":"cancelEscrowByProvider(uint256)","3073ef42":"calculateOperationFee(uint32)","307482cf":"POINT_ROOTNODE_ROLE()","3074cca7":"change_data(bytes32)","3074f556":"Compra_Ticket(uint256,uint256)","307540f6":"keys()","30756ab6":"MyTestToken()","3075f552":"getMax()","30762e2e":"allowManuallyBurnTokens()","30765517":"fechAllSumNumForCandidateByStage(uint256)","3076dc42":"intervalDuration()","3076e56a":"tankOut()","3077fdf1":"startNewICORound(uint256,uint256)","3078db6c":"transferAuthority(address)","3079ddc3":"isCanBuy()","307a1f46":"paramsValid()","307c6f8e":"job(string,string,uint256,uint256)","307c7a0d":"withdrawExcessBalance(address,address)","307ca045":"get_amount_minus_fee(uint256)","307d2a90":"priceEUR()","307e38ca":"isICAP(address)","307e8614":"returnUserBalance(address[2],bytes32)","307edff8":"endTokenSale()","307f35e6":"AobcToken()","307f6244":"changeMedia(address)","307f6b12":"findWinners(uint256)","30807e8e":"updateCSV(string,uint256)","3080b9c7":"SocialBlock()","30818189":"bonus1()","3082538f":"decimalMultiplier()","30835cc5":"BDCC()","3083a4f9":"withdraw_2()","3083ab1f":"closeContest(uint32)","30840c31":"testControlCreateWithParentForeignNotInUse()","3084e3ac":"nDEX(address,address,address,address,uint256,uint256,uint256)","30852db8":"newGame(uint256,uint256,uint256)","30859963":"getAttrVal(uint64,uint8)","3085c91d":"SellOrderCanceled(uint32,address)","30865362":"withdrawRemainingRewards()","308655b1":"A2AToken()","3086719a":"_setTokenUri(uint256,string)","3087110a":"donors()","30880441":"borrowFor(address,address,uint256)","308879bf":"setVoteCost(uint256)","308a9717":"_distribute(address)","308af165":"lastProcessedDay()","308b2fdc":"getProposalValueByIndex(uint256)","308b7fea":"rakeToken()","308c0065":"currentPrice(uint32)","308d6613":"getSignData(uint256,uint8)","308dc720":"DissolveBusiness()","308dccac":"EtherMinerals()","308e1b2f":"ltcId()","308e25ac":"InvestorsToken()","308e63f4":"TigerToken(uint256,string,string)","308f505b":"sellSupply()","308fb3ee":"GrapeToken()","3090bef7":"releaseLockedBalance(address)","3091bc8b":"acceptAndPay(bytes32,uint256[],uint256[],uint256)","30920505":"createInvestContract(address,uint256,uint256)","3092afd5":"removeMinter(address)","3092e73f":"getNoOfTokensTransfer(uint32,uint256)","30935e4b":"LogOrderCancel(address,uint256,uint256)","309424fe":"get_all_names()","30943fcf":"ownerCounter()","30945443":"update(address,string,string)","309593ee":"emergencyThaw()","30962d4d":"KyberContirbutorWhitelist()","309652ec":"getPoolMoney()","3097324c":"saleShare()","3097f94c":"blok()","30982855":"setPublisherStake(bytes32,uint256)","30986dea":"timeToFinishPresale()","3098d33a":"payoutPartners()","309945ba":"collectedFees(uint256)","30996897":"placeBet(address)","309ab7e1":"getIsParticipate(address,uint256)","309b40b2":"liquidityStatus()","309b7ed3":"deleteParent(uint256)","309ba120":"upgradeClass(uint256)","309c1769":"ProspectorsObligationToken()","309c315d":"calcTokenPriceFactor()","309c3ee2":"_grandPVPWinnerReward(uint256)","309d094b":"RELEASE_DATE()","309d6669":"addVerification(address,string,string)","309d8210":"ICOPart()","309d9358":"XENTToken()","309e078a":"destTokensBounties()","309e21a9":"rewardPromille()","309e36ef":"getNumberOfAccounts()","309e6005":"batchTransferEther(address[],uint256)","309e63e5":"SimpleConstructorInt(uint256,uint256)","309f7421":"buildTeamMapping(string,string,string)","309f955a":"updateTopicDescription(bytes15,bytes32)","309fcbdd":"MakeTradable(bool)","30a0b231":"oraclize_query(uint256,string,bytes[])","30a1d746":"shareholdersWalletAddress()","30a24abd":"create(bytes4,bytes)","30a3160d":"approveInternal()","30a35ce2":"getPOOL_edit_20()","30a39d5d":"preCoinSentToEther()","30a3ce81":"getNumChips()","30a55316":"smsCertifier()","30a69955":"setFeeInfo(string)","30a69b53":"PlutocracyAchieved(string,string)","30a7351c":"removeFromApprovedAddress(address)","30a7a11c":"setRateEarlyStage1(uint256)","30a8b2c9":"NUM_TEAMS()","30a95aa7":"payService(address,uint256,uint32,string,uint64,uint64,uint64,uint64,uint64,uint64)","30a95e67":"withdraw_eth(uint256)","30a9ef5b":"checkTokBalance(address)","30aa311a":"QMQCoin()","30aa81c6":"getPayer()","30aacc0a":"setProjectAgent(address)","30ab0a16":"setInstructor(address,address,string,string)","30abac7b":"randomNext(uint256,uint256)","30abf433":"signBBODocument(bytes32,bytes)","30ac3052":"sendText(string,string)","30ac324b":"apply(uint256,uint256)","30acd249":"oneEtherInKicks()","30aceb89":"validateRequestParams(address[3],address,uint256[11],uint256,bytes,uint256)","30acedf1":"ownerFreezeTokens()","30ad12a6":"initializeFundraiserToken(address)","30adce0e":"etherReceived()","30ae8d0c":"Xinfin()","30af41b3":"getValidatorByIndex(uint256)","30b0e001":"airdropTokenDistribution(address,uint256)","30b0faab":"changeSettings(uint256,address,uint256)","30b2b8aa":"mintPresaleTokens(address,uint256)","30b3409e":"getInitialDeposit()","30b39a62":"withdraw(string,uint256)","30b3a90c":"_setCurrentPassportLogic(string)","30b4429e":"submitBlock(uint256,bytes)","30b5198f":"blockNumberUpdated()","30b57b1e":"player(bytes32)","30b66475":"VerifSignature(bytes,bytes)","30b66cee":"claimProxy()","30b69426":"calculate_eligible_token_balance(address,uint256)","30b7222f":"mintcoin()","30b751d9":"rivetzRelease(uint256)","30b823f7":"userGrowthAddress()","30b8f85d":"HSB()","30b9af98":"withdrawFunding()","30ba040a":"TOKENOMICX()","30ba2d4d":"eidooSigner()","30bb7499":"_batchActivenessUpgrade(uint256[],uint256[])","30bbb55e":"instructions()","30bd2ba9":"MassivelyMultiPlayerOnlineVideoGames()","30bd3eeb":"tokenRewards(address)","30bd60ef":"marginCall(bytes32,uint256)","30bdd344":"getPossibleWinAmount(uint256,uint256)","30bdf202":"RobinHood()","30be5990":"updateThirdChangeBlock(uint256)","30bf2d3e":"whaleBalance()","30bfeded":"EffectAdded(uint256,uint256[])","30c0f8d6":"scheduleTransaction(address,bytes)","30c2927d":"concludeUFT()","30c2fb04":"UserAuthManager(address)","30c308d8":"testInsertCase()","30c30a50":"authorizeMintFulfiller(address)","30c33da7":"_addPresale(uint256,uint256)","30c3eaa8":"grant()","30c47f77":"getEtherCoinPrice()","30c5375e":"ConstructHuntStart()","30c5a614":"ethereumToTokens_(uint256,uint256)","30c74e04":"tokenWithdraw()","30c8a488":"ERCToken()","30c8f372":"getTrustedShopCount()","30c93307":"GetPermissionIdx(uint256)","30c97068":"plockFlag()","30ca0a53":"DELEGATION_HASH_EIP712()","30cb14d2":"pop(bool)","30cc1d18":"airDropShadowTag()","30cc248e":"increaseProfit()","30ccc891":"testTransferHandlesNegativeAmountRequest()","30ccebb5":"getStatus(address)","30cd90b8":"transferToAddress(address,address,uint256,bytes)","30cd9ac6":"TokenAuctionCompleted(uint256,address,address,uint256)","30cdc195":"xclusivecoinSupply()","30cdcc63":"MAX_ISSUED_FROM_OTHER_CURRENCIES()","30cddc83":"checkIfCustodiesServedETH(address[])","30ce7b5d":"generateWinNumber()","30ce8bd5":"_rightChild(uint8)","30ced655":"EventRandomLedgerRevealed(address,uint256,uint256,uint256,address)","30cf7af6":"FreeZombieCount()","30cfac6c":"assignTo(uint256,address,uint256)","30d02d83":"batchWithdraw(uint256,uint256)","30d07d61":"getParticipantName(uint256,uint256)","30d12640":"disableWithdrawal()","30d15b0a":"lockInQuarterFinalPrize()","30d1c191":"MetaPoc(address)","30d2219b":"add(string,string,string,string,string,bytes32)","30d2474f":"buy1ticket()","30d281e0":"getChannelInfo()","30d323ae":"NHC()","30d4b967":"Octogram()","30d4d8d0":"_verifyHistoryInputOrRevert(bytes32,bytes32,bytes32,uint256,address)","30d500bf":"CFO()","30d636a0":"SmartVerifying()","30d65b72":"getPaymentsFor(address)","30d68214":"transactionReplay(address,uint256)","30d86516":"verifyTransferSignature(bytes32,address,uint8,bytes32,bytes32)","30d88a9e":"DISPLAY_VIDEO()","30d9161d":"cancelCreatorAuction(uint40)","30da4684":"buyPriceFinal()","30db7654":"activeBuy()","30dbb4e4":"isUnlocked(address,uint256)","30dcf0e8":"calculatedTokens(address,uint256)","30dd6a42":"totalSoldToken()","30dd9ee4":"confirmMinerQuest(address)","30de7e88":"FINXToken()","30df2c47":"currentSeller()","30df7727":"canRemove()","30dfc62f":"fundValueCount()","30dfe1da":"getTransactionCount(bool)","30e0789e":"_transfer(address,address,uint256)","30e07be0":"getMaxAmountToWager(uint256)","30e08a6e":"adjustMinter(address,bool,int256)","30e1e4e5":"freeze(address,uint256,uint256)","30e1f16f":"claimDividendAll()","30e26cb8":"disableBundling()","30e290e4":"Twitter()","30e34360":"setValue(bytes32,bytes15)","30e44278":"howVotesHasDispute(uint256)","30e45c14":"preSaleHasEnded()","30e4f9aa":"contractbalance()","30e57b67":"getNumberOfCrySolObjects()","30e5be52":"Prototype()","30e656d8":"addAnimal(uint256,bytes32,uint8)","30e6570b":"BucketSell(bytes32,uint256,address,uint256)","30e664f6":"getBuy()","30e6c333":"producedGoldCaps()","30e6d8d3":"addInitialInvestor(address)","30e7002c":"POCN()","30e76dae":"getContractEtherBalance()","30e77c75":"EthTranchePricing(uint256[])","30e804d1":"withdrawFromProject(address,address,uint256)","30e80864":"setTrustedAddr(address)","30e82803":"balanceOfByPartition(bytes32,address)","30e8b963":"reserveMember()","30e9c341":"updateTimeLock(uint256)","30e9f6ed":"STATUS_NO_DEAL()","30ea55a0":"updateEventStartsTime(bytes32,uint256)","30eaa9b5":"priceIncrease_20_February()","30eb4ba8":"setHoldDuration(uint256)","30ec0e2b":"setHolder(address,address,address)","30ec98a1":"OKFToken()","30ece116":"setOpeningTime()","30ed54ed":"setVestingToken(address,address)","30ee776c":"StopTransferToken()","30ef3d56":"takeNumber(uint256)","30efac4e":"changeCardPrice(uint256)","30efb8d3":"doUnpause()","30f1154f":"updateNodeIPFSHash(bytes)","30f12642":"createContractPreciousForEdition(address,uint256,string)","30f1fe82":"checkLength(string)","30f20847":"CandyBox()","30f24455":"_getProductShopInfo(uint256)","30f3f0db":"increase(uint256)","30f46b70":"power(uint8,uint8,uint8,uint8[176])","30f4f396":"UTBTokenTest(uint256,string,string)","30f4f4bb":"getMarketData(bytes32)","30f56d21":"RoundEndTime()","30f59c1b":"lastTicketBought(uint256)","30f6716f":"HFCoin()","30f6eb16":"mintedForAccountInBlock(address,uint256)","30f75890":"MilestonesEntity()","30f7cf80":"stox()","30f7f148":"ONEPAY()","30f857f3":"addPrivateSaleWithMonthlyLockup(address,uint256[],uint256)","30fa27cc":"_BTC()","30fa9ef3":"SantimentWhiteList()","30faa3e9":"compareHands(uint8,uint8)","30fb641b":"PurchaseFailed(address,uint256,uint8)","30fb6bfb":"setMessage(uint16,string)","30fb7541":"_createSkull(uint256,uint256,uint256,uint256,address)","30fba22f":"changeManipulatorAddress(address,bool)","30fbe411":"endIco3()","30fd300f":"registerBytes32(address,bytes32)","30fd7696":"createLoveStoryWithData(bytes16,bytes32,bytes32,uint256,string)","30fe86b7":"declarePulicOfferingPlan(uint256,uint256)","30fee9b1":"setICOtime(uint256,uint256)","30ff2ad5":"needVerifiedAccount(bool)","31002556":"getAmountToGive(bytes,uint256)","310092b9":"REFUND_TIME()","3100ef7b":"Fulcrum()","3101170b":"addPixelPayable(uint256,uint256,uint256,uint256,uint256)","31014853":"buySWL()","3101ab7f":"confirmEjectment()","3102b21a":"setAllocation(address[],uint256[])","3102be4c":"ownerHistoryOf(uint256)","3102deb7":"SetPlayerBetInfo(uint8,address,uint256,uint8)","3103fa26":"firePaidProposalEvent(address,uint256)","310441fa":"payees(address)","31047973":"lightpool()","3104b21a":"unApprove(address,uint256)","3106aa80":"getLLV_edit_21()","3106fea0":"voteOnProposal(uint256,bool,uint256)","31076417":"setTokenUSDRate(uint256)","310774a3":"setContractPreICO(address,address)","310781e7":"LogCertificationDbRegistered(address)","310815ee":"setDesignatedReporterShowed(bool)","31085c5f":"getAddressByNickname(string)","31088032":"MTOKEN()","310883a8":"player2Timestamp()","3108bd87":"voteNoLockBatch(address[],uint256[])","3108f0d7":"isNotZero(uint256,string)","310b065b":"cerotest()","310bc5fc":"newAsset(uint256,uint256,uint256,bytes32,bytes32,uint256,bytes32)","310bd74b":"reset(uint256)","310c0c1e":"minRollUnder()","310c87cc":"NFTAddress()","310ce4e2":"execute(bytes32,address,int256)","310d3f69":"token_description()","310e5ce7":"isBreedingMarket()","310ec4a7":"setAllowance(address,uint256)","310efb48":"setResult(uint256,uint256)","310eff5d":"pageByGroup(string,uint256)","310f4cdd":"mint(uint256,string,uint256,uint256,address)","3110235a":"maxInvest()","311028af":"initialTotalSupply()","311104f3":"getMintRequestsLength()","31119b4d":"changeDeveloper(address)","3111dcfd":"_nextAmount(uint8,uint256,uint256,uint256,uint256,uint256)","311277c1":"PHASE3_RATE()","3112fb6e":"BackToLife()","311325bd":"totalPledgedFees()","31134651":"donateToLovers(bytes32)","311385f4":"oraclize_query(string,bytes[3],uint256)","3113b8fa":"initDebris(bytes32,uint256,uint8)","311515a3":"disableInterface(string)","311551ad":"_getCalculationStartDate(bytes32)","311551d7":"MasternodeMinedTokens(address,uint256)","31159923":"isAllocatedICO()","3115b4c4":"bulkStoreHeader(bytes,uint256)","3115c3ee":"exploreEMONTFee()","3115d2ce":"ZitKOIN()","31170c0e":"Joyso(address,address)","3117d6bb":"request(bytes32,string,string)","31184dc3":"get2(uint256)","3118879a":"removeSurvey(bytes32)","3118dc71":"aSites(uint256)","3119255c":"setMinBetPerTx(uint256)","31198d19":"transferEthFromContract(address,uint256)","311a6c56":"rule(uint256,uint256)","311a985f":"testNotEnoughMemory()","311b2e98":"totalBetsMade()","311bcda6":"stage1Sale()","311c2644":"ironTokensaleRunning()","311d5a2a":"recordBalance(address)","311fb64f":"countInvestorsRefunded()","3120cefa":"NickoinToken()","31212a6b":"unicornRanchAddress()","3121369d":"validateRequiredStackDepth(uint256)","3121c7c0":"buyMultiplier()","312212c1":"stoptransfer()","312220bc":"payoutQuickBonus(address)","312253ae":"newOption(uint256,uint256,bytes32,bytes32)","31225ad1":"icoThreshold3()","31226f71":"writeMerchandises(uint8,string)","3123016d":"calcCostLevel(int256,int256[],uint256)","31230e23":"createWithParent(bytes32,bytes32,bytes32)","31232cd3":"pre_amount_stages(uint256)","312386b7":"techDevelopmentEthWallet()","3123bd9d":"memberProfitShare()","3124167b":"_getTokenAmount(uint256,bool,address,address)","312452b3":"mLoadAndReturn(uint256)","3125443d":"secondChangeBlock()","31277306":"buyByEth(address,uint256)","31288397":"payWithoutChecksum(uint128,address)","3128d1be":"buyName(string)","312975a6":"setReservedHolder(address,address,address)","312983dc":"LogForkAnnounced(string,string,uint256)","3129be35":"calculateCoinsPerWeiAndUpdateAvailableIcoCoins(uint256)","3129e6d4":"RATE_SALESTAGE3()","3129e773":"getItem(uint256)","312ad4b9":"banThreshold()","312c0684":"Organicco()","312cba69":"EternalStorageProxyForPayinMultisender(address)","312dae8a":"changeCrowdsaleClosingTime(uint256)","312defb4":"INITIAL_ENDTIME()","312df321":"p_update_mRefPercent(uint256)","312f8b19":"blockedTime(uint256)","31302244":"approveAsInvestor(address,int256)","3130e89d":"EtherShot()","313138e1":"tuneLambo(uint256,uint256)","313186e7":"_calculateTotalLockedBalance(address)","3131d8de":"etherflipContract()","31324b0a":"IOXOwned()","3132605d":"DinoToken(uint256)","313354dc":"maxSellable()","3133f2a7":"outstandingBalance()","31347482":"CSELToken(uint256,string,string)","3134e2e1":"_setCollectRoundLength(uint256)","3134e9be":"verifyLinkPrivateKey(address,address,address,address,uint8,bytes32,bytes32)","3134f4f1":"SpecialRatedCrowdsale()","3135471d":"privateEtherFunded()","3135ed16":"race_start_block()","313602d4":"claimRemainingTokens()","31361399":"setICODate(uint256)","31363c86":"esteem(bytes32,string,address)","3136fa86":"NeuroProtect()","3136fbb8":"totalBaseLareSoldInMainSale()","31375242":"ownerSetTreasury(address)","31378811":"updateUserDetailsInBulk(address[],uint256[],uint256[],uint256[])","3137f3d4":"FhnwToken()","31380c89":"TokenSale()","3138d328":"gameMining(address,uint256)","3138d8d5":"Bid(uint256,address,uint256,uint256)","3138ee5c":"getPermittedContracts()","31391828":"_computeTournamentIncentiveReward(uint256,uint256)","31399b4d":"indexOfOperator(address)","3139c691":"_isInWhiteAddresses(address)","313a9204":"addPurchased(address,address,uint256)","313aaf96":"Double(bytes32,uint8)","313b7b19":"finance()","313c4093":"newExit(address,uint256)","313ce567":"decimals()","313dab20":"treasuryBalance()","313f5a57":"tradeAirswap(address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","313f944f":"externalPurchase(address,uint256)","313fc3fc":"getMyRevenue(uint256)","314094c2":"devfee()","3140b09e":"distributeBonusTokens()","314312d3":"setEtherDeltaExecutor(address)","31434041":"burnSTCDR(uint256,uint256)","3143d97c":"setTimeLock(uint256,uint256)","3143fd60":"dev_allocation()","314475b2":"TokenEntity()","31447a32":"KeplerTokenCrowdsale(uint256,address,address)","3144c859":"executeCode(bytes)","31462b96":"the_nominal_annual_interest_rate()","3146a6bb":"transferTeam(address,uint256)","3146d282":"HyperTestToken()","31477b9b":"getString(bytes32,bytes32)","31483bdc":"PushToken()","314848fa":"CICoin()","3148ac62":"InitialRateChange(uint256)","3148f14f":"modExp(uint256,uint256,uint256)","3149694a":"burnHackingAmount(address,string)","314989b2":"SimplePHXSalesContract()","3149c440":"transferDomain(bytes8,string,address)","314a05db":"ownerRetrieveContractConfig2()","314a522e":"getTermsContractParameters(bytes32)","314aabb5":"EthDice50()","314cd12c":"createPromoToken(uint256,address)","314dd783":"GoldiamICO()","314e0fb6":"scheduleTransaction(address,bytes,uint256[3],uint256)","314e39c3":"trustContract(address)","314e99a2":"abdicate()","314ec2e5":"set_sale_owner(address,bool)","314ef8cb":"Besiktas()","31503ec4":"setFeeWalletAddress(address)","3150456e":"GenChipIndex(uint256,uint8,uint256[],uint256[],uint256[])","3150a7da":"HarvestedBabyBrain()","3150efbd":"beneficiaryMultisig()","31511e61":"getAffiliateCount()","31513039":"transferTokensFromAnyWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","3151609e":"setMetadata(uint256,bytes32)","3151ecfc":"myDividends()","3152dd00":"fundingActive()","31543cf4":"getTemplate(uint256)","3154d790":"rentByAtom(uint256,uint256)","3155625c":"setCleide(uint256)","3155c856":"getTotalF5()","3156560e":"setApprover(address)","31577cc0":"getModuleIDByAddress(address)","3157be49":"imageVerified()","3157d347":"nonVestedTokens(uint64)","31580446":"acceptDividends(uint256)","3158f643":"ico1Ended()","315a095d":"withdrawTokens(uint256)","315a0a09":"BasicForecasting(address,uint256,address,address,address)","315a6001":"purchaseUniqueSpinner(string)","315a6d65":"withdrawTeamToken(address)","315ad5ce":"resetGroupInfo(uint256)","315b86da":"MNPYToken()","315ccd21":"MAX_ETHER()","315d142d":"GayCoin()","315d758f":"_setERC20compatibility(bool)","315e2f1b":"setTestString(string)","315e3124":"pack(bytes4,address)","315e6c0a":"UpgradedContract(uint256,address,address)","315ebe81":"LockedOutTokens(address,address,uint256,uint8,uint256,uint256)","315f81c5":"useVaults(uint256,uint256)","315fd022":"MyToken(uint256,uint256,string,string)","315fdea3":"TreasureChest()","315fe684":"getMyPrize()","31601d09":"AuctionCreated(uint256,uint256,uint256,address)","31606828":"registrationDeposit()","3160d63b":"removeSupport(address)","31616395":"crowdsaleContract()","3162360d":"_emitBoardRatingGiven(address,uint256,uint8)","31629388":"setPendingValue(uint256,bytes32)","31638ced":"getDatasetByIndex(uint256)","3163b41a":"AdjustableRoundsManager(address)","31641629":"releaseSomeKims(uint256)","31649233":"allocatedTotal()","316524e5":"setGene(uint256,bytes)","31657926":"ticketsOf(address)","3165b26e":"transferOnBehalf(address,uint256,uint256,uint8,bytes32,bytes32)","31666144":"BTCproxy()","31666156":"latestReferenceBlockNumber()","3166e133":"Metropolis()","3166f49f":"balances_for_refund(address)","31670619":"GROWCHAIN()","31670ea7":"resetWithdrawEtherToValues()","31671a02":"TokenClaim(address,address,uint256,uint256)","31671f57":"Litecoinprivate()","31677980":"migrationCompleted()","3167e9d2":"infoUrl()","316866bf":"getRatingsForAddress(address)","316943cc":"transferExtOwnership(address)","31694d6f":"TEAM_TOKENS_SUPPLY()","3169ff3e":"LooneyLottery()","316a0131":"viewWinningOption()","316b08a0":"scheduleTransaction(address,bytes,uint256[7],uint256)","316b13b4":"setMemberContract(address)","316b8cab":"Oogroll()","316bc682":"setKYCLockupIgnoring(bool)","316cb1b4":"withdrawKittenCoins()","316db7f2":"updateInfo(uint256)","316e539e":"currentStanding()","316f2f06":"requestUnclaimed()","316fb7c4":"updateGoal(uint256)","316fda0f":"cycleCount()","317053f8":"setStringMember(string)","31707a05":"initOwner(address,address)","31711884":"tokenRate()","31711abe":"bookkeep(address,uint256,uint256)","31719c69":"lastPriceSetDate()","31723abd":"DMTokenC()","31729a45":"setCommission(address,uint256)","31748401":"_investorAddresses(uint256)","3174cc87":"refundToBuyersIfSoftCapNotReached()","31757f2e":"collisionCount()","3176bd18":"MyTestingToken()","3176d373":"updatePriceFci(uint256,uint256)","3176e734":"addHiddenPosition(uint32,bytes32)","3176f912":"getPlayersBattlePower(address,address)","3177029f":"approveAndCall(address,uint256)","3177b83a":"isCustomerHasACC(address)","317830b4":"crowdsalePaused()","31787b91":"maxIcoDuration()","31798893":"DistributedSoFar()","317a71ea":"_removePendingRequestId(uint32)","317ab6dc":"getChampsCount()","317b4b76":"setPreIcoMin(uint256)","317c00be":"maxTokensPerArticle()","317c0ae9":"tokensByZecTx(string)","317c1291":"isCrowdFundActive()","317d5d9b":"rand(uint32)","317d7a2b":"depositInfo(uint256)","317d9453":"getContractTokenBalance()","317ebc79":"scoreTeams(uint32[],int32[],uint32[])","317ec08b":"removeMaliciousValidator(address)","317ed7dc":"rebateTwoFenzi_()","317ffcf2":"getCreateUnicornPrice()","31806aaf":"unlockBalanceByKey(uint256,uint256)","318077a1":"Logo(address,address,string)","31809eac":"dayAfterInMinutes()","3182c3aa":"createSale(uint256,uint256,uint256,string,uint256)","31836cb9":"testMiddleTranch()","31839753":"getVolumeBonusAmount(uint256,uint256)","3183a55c":"Alchemy(uint256,uint256)","3183ef3d":"_release(address)","31845f7d":"setPublic(uint256)","31852177":"ConsToken()","31852a02":"allocate6ProjectToken()","31859556":"startPreico()","3185a61e":"getSellOrder(uint80)","31861423":"_deleteAllPackedRevisionTimestamps(bytes20)","3186f390":"tokensToPartner()","3187878b":"Follor()","31885119":"mintSelf()","3188949a":"DIT()","3188c5b1":"updateTotalChild(address,address)","3188da5f":"meltCoin(address,uint256)","3188ed13":"UNSOLD_ALLOCATION_SIZE()","3189418f":"connect_to_nodelist()","318992d0":"RewireToken()","318a3fee":"relayTx(bytes,int256,int256[],int256,int256)","318b526c":"AIGInvestment()","318cbe20":"BountyBG()","318dbcae":"releaseFundsBuyer()","318e6c78":"getAdminAddress(address,address)","318f0fe9":"acceptRequest(address,address)","318fd7e4":"HomeChainToken(address)","318fd93d":"registerSeller(string,string)","31906ebd":"airdropTotal(address)","3190abc0":"addCustomer(string,string)","3192164f":"idle()","31921cad":"headerColor()","319288d8":"setNVTface(address)","3192b995":"developer_crowdsale_text(string)","3192cccb":"queryTokenGrant(address)","31933916":"getMessageCount()","3193c749":"placeBet(uint256,uint256,uint256,int256)","31950032":"createContract(bytes32,uint16,bytes8,uint256,uint32,string,uint32,uint64[],bytes8[],uint32,bytes32)","319609fa":"EtherPiggyBank()","31970bd8":"nextRangeID()","31978b99":"changeBoardMetadata(bytes32,bytes32,string)","3197cbb6":"endTime()","31985b51":"sendGiftCard(address,address)","3198a38f":"findAllCliWithPendingTask(address)","3198acad":"Billionsgame()","319983f8":"FoundationSupply()","31999749":"getTimePeriodsUsed(uint256)","319a2494":"getBlockOf(address)","319a30d4":"setConfiguration(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","319a9395":"setGlobalLock(bool)","319ae4b2":"spaceCount()","319af333":"log(string,address)","319b0cd2":"calculateRate(uint256)","319b0e75":"getTotalInvested(address)","319c068c":"current_round()","319c33cc":"setOrganization(string)","319c7748":"_KiwiToken()","319dac48":"polishRoughStone(uint256)","319db3be":"advisorWallet()","319df3bf":"icoManager()","319f0852":"MSCTToken(uint256,string,string)","319f21b6":"placeGame(uint8,uint256,uint256,uint8,bytes32,bytes32)","319f3930":"mintFraCoins(uint256)","319f7700":"SealCrowdsale()","319f9887":"SnowdenAffect()","31a02bce":"requestMint(address,uint256)","31a06772":"scrap(uint256)","31a079ca":"ArtexToken()","31a2aba8":"create(address,uint256,uint256,address,address,address)","31a360b4":"LUVITOKEN()","31a36424":"getAllAdmin()","31a38c89":"executed()","31a3a506":"closeFunding()","31a3b36f":"blockDotTimestamp()","31a3b873":"ICO_MIN_CAP()","31a40b62":"delAuthorized(address)","31a51f46":"getTransactionConfirms(bytes32,uint256)","31a642db":"getTransferInfoValue(address,uint256)","31a73991":"GetUserIdByAddress(address)","31a76bca":"FOUNDERS_VESTING_CLIFF()","31a7d4c2":"LogPause(uint256,bool)","31a83ca2":"oraclize_randomDS_setCommitment(bytes32,bytes32)","31a8aeb3":"stakeFrom(address,uint256)","31a95c7a":"redeemTokens(address,address,uint256)","31a97ff0":"noteInitialReportingGasPrice()","31a9b2f2":"maximumPurchase()","31aa01c4":"contributed2(address)","31aa91fc":"completeContribution(address)","31aaa74a":"accountParent(address)","31ab4066":"testAuthorityTryAuth()","31ab6055":"TMCoin()","31abdd2a":"calculateEthValueFromTokens(uint256,uint256)","31ac7253":"releaseState3()","31ac76c7":"getSiteTokenLength(uint256)","31ad6b62":"sendToEthertoteDevelopmentWallet()","31ad836e":"Flabba()","31ae0019":"KissBTC()","31ae450b":"getAdmins()","31ae6b6e":"isFactProviderInWhitelist(address,address)","31af56ed":"transTo(address,address,uint256)","31afa55f":"decreaseMonsterExp(uint64,uint32)","31b0795c":"registerAddress(address,address)","31b259cf":"setUser(address,address,string,string,string,bytes32)","31b27c44":"DeusMarketplace(address,address)","31b28664":"PAGE_SIZE()","31b29629":"ownerAddBankroll()","31b2d49c":"cancelOrder(address,address[5],uint256[8],bytes32,uint8,bytes32,bytes32)","31b31b88":"setTokenFee(uint256)","31b36c45":"CHECKgamberTwo()","31b39a56":"addWalletConfig(uint256,uint256,uint256,uint256)","31b3eb94":"withdrawPayments(address)","31b4784e":"lastUpdateOverall()","31b48f86":"setPeriods(uint32,uint256)","31b57b46":"initialize(address,address,bytes32,address,int256,bytes32,address,int256,bytes32,uint256)","31b59508":"LDIT()","31b5da2a":"numMC()","31b61ece":"getAllLeftHand()","31b62fae":"GetCardInfo(uint32)","31b6421e":"Approve(uint256,bool)","31b77da4":"getEmptyIndex()","31b7a196":"emitGenericLog(string,string)","31b7c458":"claimedAirdropTokens()","31b8b100":"Static()","31b93ae6":"MIN_PRESALE2()","31b97e45":"addGame(bytes32,bytes32)","31b9d81d":"kscBatchTransferToEcosystem(address,address[],uint256[],uint256,uint256[],string)","31ba7ede":"create(address,bytes32,address,bytes32,bytes32,address,bytes32)","31baa8ae":"getCitizenCharacteristics(uint256)","31bab608":"getVersionSelectors(bytes32,bytes32,bytes32)","31bac434":"unpauseMint(uint256)","31bae156":"getPartialAmountRoundedUp(uint256,uint256,uint256)","31bbb695":"takeCapital()","31bcce1c":"CryptoAtoms()","31bcd2b7":"sendTokens(uint256,uint256)","31bd1fa5":"levAddress()","31be23e4":"getLotteriesLength()","31be6985":"testBitXorSuccess()","31be6a17":"addNewGroup(bytes32,uint256,uint256)","31beedd9":"setOWhitelist(address[])","31bf0667":"tokensaleWallet()","31bf0b42":"setSB(uint256,uint16)","31c0018b":"listApi(uint256,bytes32,bytes32,string,string)","31c05b8f":"getWalletAddress(bytes8)","31c15301":"maxRandom(uint256,address,uint8)","31c1eea4":"delCEx(address)","31c29c25":"newContribution(address,uint256)","31c2b6e6":"animator()","31c2bd0b":"propose(address,bytes,uint256)","31c33669":"GetChequeInfo(string)","31c359fa":"getReferralAddress()","31c3e2c9":"VotingProxy(address,address)","31c3e456":"update(string,string,string)","31c420d4":"unfreezeTransfers()","31c42ca6":"testSell()","31c571f5":"setLastStellar(address,uint256,uint256,uint256)","31c5e407":"PaymentSubmitted(address,bytes8,uint256)","31c5e56b":"init(address,uint256,uint256,uint256,uint256,uint256,uint8)","31c6c4cf":"transferFromWithReference(address,address,uint256,bytes32,string)","31c78498":"Metadollar()","31c89d3e":"FromQueue(address,address)","31c91117":"withdrawAllEther()","31c9472a":"constantname()","31ca0bae":"DAO(address,uint256)","31ca208c":"greylist(address)","31ca4340":"GetTokenData(uint256)","31ca6b67":"setWinnerManually(uint256)","31cb27d7":"processHandEndSplit(uint256,uint256)","31cba838":"BOUNTY_ADDRESS()","31cbf288":"createContract(string,address,address,string)","31cbf5e3":"pay(uint256,address)","31ce6b47":"getTicketCounter()","31cfcf84":"IDAGToken()","31d03594":"getOfferPrice(uint256)","31d1c995":"_batch1_icosaleStartTimestamp()","31d29af1":"getMyWallet(address)","31d2f891":"crowdsaleAddress()","31d31647":"hasSenderVoted(uint256)","31d3518a":"IvoryToken()","31d35cb2":"getDayEthIn(uint256)","31d36cf0":"relaySellerCancel(bytes16,address,address,uint256,uint16,uint128,uint8,bytes32,bytes32)","31d397ef":"initialWallet()","31d4116f":"nextsize()","31d41325":"isMonethaAddress(address)","31d42bf2":"addBlackAccount(address)","31d4ac45":"bookWithLif(uint256,uint256,bytes,string,uint256[],bytes32)","31d4ed2e":"_isUnderLimit()","31d4fad4":"refundPayment(uint256,address,string)","31d6183b":"tokensToEth(uint256,uint256)","31d67353":"transfer_data(address,uint256,string)","31d694a0":"NEBC()","31d78a50":"signedApproveAndCall(address,address,address,uint256,bytes,uint256,uint256,bytes,address)","31d87de2":"setRBACAddress(address)","31d90e04":"canClaimPayout()","31d98b3f":"getPrice(bytes32)","31d9931f":"setOwnedTokensIndex(uint256,uint256)","31daabb7":"updateOwner(uint256)","31db4b95":"doTriggerAuth()","31db6c48":"TYPE_EXPLORER()","31db9efd":"right88(uint256)","31dbd8a5":"feeAuthority()","31de13e8":"tBonusStageEnd()","31de7e72":"iceFund()","31deb7e1":"nodeCost()","31e12c20":"setowner()","31e19cfa":"getStrategyCount()","31e396c8":"calculateYourValue1(uint256)","31e3e2fe":"WithDraw()","31e41fba":"_localFight(uint32,uint32)","31e5144c":"isAvailable(uint32)","31e574a5":"addProduct(address,uint256,string,string)","31e5f055":"one_card()","31e63199":"codename()","31e6a707":"getWalletInfoByIndex(uint256)","31e7b060":"constructProof(bytes32,bytes32[],bytes1[])","31e7bf9d":"Multivest(address)","31e88fee":"claimedPartnerPreICO(address)","31e8c7ba":"CertID()","31e8ebbb":"DenToken()","31e92f32":"blocksPerMonth()","31e99e2b":"getCurrentSmartSpeedPrice()","31e9e9c0":"unlockToken(address,uint256)","31e9ea8a":"PlaceBet(address,uint256,uint256,bool)","31e9ee7c":"currentIcoWallet()","31ea1a39":"cancelDeal(uint256)","31eaa5c9":"erc20CTH()","31ebd13f":"logAllStart()","31ee080d":"setComisionInvesorInTokens(address,bool)","31ee8277":"_createship(uint256,address)","31ef107f":"SetProfitAddr(address)","31ef916a":"approve_timed(address,uint256,uint256)","31f01140":"getUserInfoById(uint256)","31f0528e":"updateNextGameMinAndMaxBlockUntilGameEnd(uint256,uint256)","31f070d9":"getSet()","31f09265":"withdraw(address,uint256,bytes)","31f0fca1":"_addTokenToTranche(address,bytes32,uint256)","31f170c2":"coinSupply()","31f1fd2b":"setCriterionTime(uint256)","31f25330":"initialRound()","31f27c96":"isWarriorChest(uint256)","31f2c8a5":"whitelistedSenderAddresses()","31f2d72d":"TelegaSend(address)","31f3af90":"removeAuditorFromMultiRequestAssignment(uint256,address)","31f4a23f":"EtherDeltaWithdrawToken(address,uint256)","31f4f682":"investmentMin()","31f53447":"operatorProductCommissionInPerc()","31f607a5":"Coin_Character()","31f6eac8":"availableVolumeEtherDelta(address,uint256,address,uint256,uint256,uint256,address,uint256)","31f72b44":"NewPhase(uint8)","31f76043":"resetSymbol(string)","31f850e6":"create(address,uint256,uint256,uint256,bool,string)","31f9a211":"getOrderState(uint128)","31f9a8f2":"accessToken(address,uint256)","31f9c919":"mintingActive()","31fa0a45":"withdrawAdamcoins()","31fa76db":"short_tokens(uint256)","31fa7c84":"cancelRent(uint256,uint256)","31fa8e73":"payrolls()","31fa90d8":"stopIssuingIndividualTokens()","31fb4c1d":"preIcoFinishTime()","31fb67c2":"withdraw(string)","31fc5b18":"MIN_BID_FRAC_TOP()","31fd725a":"PassHasBeenSet(bytes32)","31fdb712":"getFlight()","31fea236":"testFailTransferFromWhenStopped()","31ff1ed9":"linkDirectly(string,uint256,uint256)","31ffc9fa":"DentacoinTimeLock()","3200aa7a":"startRoundB()","32013ac3":"preallocate(address,uint256,uint256)","320228ca":"minimunEth()","32033229":"writeAddr()","32035ca6":"madeOperatorForTokens(address,address,address,uint256,bytes,bytes)","3203fe4b":"softcap1Reached()","3204dbc5":"distributeELTC(address[])","3205c5c1":"intunderflow(uint256)","3205f5fc":"division()","3206163f":"Drawcolor(uint256,address,uint256,uint256)","32064946":"start_buyer(address,address,uint32)","32064db7":"left20(uint256)","320665a6":"BCCB()","3206b2c6":"getLog(uint256)","3207230d":"purchaseVehicleSpace(address,uint256,uint256)","3207408f":"PrivateSaleCents()","32075c49":"buySCTK(address,uint256)","3207b544":"BRI()","32083c44":"payoutForWagerAndOutcome(uint256,uint8)","320878d5":"BFYToken()","32089b74":"LEGLToken(uint256)","32098d4c":"setCalculateFloatingValue(uint256)","3209943e":"proceedsAddress()","3209c6de":"iterate_start()","3209e9e6":"setMinimum(uint256)","320a352a":"ExposureCollected(bytes32,address,uint256)","320a5018":"MilestoneInput()","320a6c73":"transferFor_(address,address,uint256)","320a98fd":"lock(string)","320b2ad9":"_pause()","320bebaa":"setPromoMinPurchaseEth(uint256)","320cffcd":"getCostForCards(uint256,uint256,uint256)","320d2800":"finalizeSale(address,uint256)","320d2fa0":"liquidationThresholdPercent()","320d4534":"setMinSwapAmount(uint256)","320d46d4":"canRegister(address)","320dc63a":"TotalSTC(uint256,uint256)","320e028d":"setCountryToken(address)","320e6c01":"set_default_approval_duration(uint256)","320ea024":"isVerificator(address)","320fdc75":"one(uint256,uint256)","321022a5":"updateSettlementInstitution(address)","3210318e":"PotaosBucks()","3211bb90":"OwnerAddFunds()","32121896":"GDK()","32139a0e":"platformOperatorNeumarkRewardShare()","32145dd2":"gamePlayerNumber()","321489d4":"getDataByIndex(uint256)","3214e6ba":"cpow2(address,uint256)","3215b483":"getTokensByMerkleProof(bytes32[],address,uint256)","3216255b":"setCertificate(string,string,string,string,string,string,string)","3217e44e":"RGHTC()","3218b99d":"gameStart()","3218ebcc":"SUBMISSIONREWARD()","32191017":"updateFeeForCurrentStakingInterval()","3219ac2a":"showMyVote()","3219e73f":"addScore(string)","321a7c8c":"createVestingByDurationAndSplits(address,uint256,uint256,uint256,uint256)","321b3157":"firstPartOfTeamTokensClaimed()","321bbc1c":"test_insert_findWithHintNextUpdateHead(int256)","321c48f2":"getTemplate()","321cb98a":"creationMaxCap()","321db4d4":"getQueryAddress()","321de1d4":"BuyToken(address,uint256,string)","321f4584":"DataRegistered(bytes32)","321f63a2":"HMToken()","322062b8":"FixBet31()","3220ad89":"refundSuccessful(address,bytes32)","3220b95a":"getEscrowOrder_seller(uint256)","32214874":"verifyAmount(address,uint256,uint256,bool)","3221e125":"addBag(uint256)","32227425":"stopReceiveTicket(uint256)","3222ae71":"airdropFinished()","322370ff":"BetexStorage()","32246e9f":"auctionEnd(uint256)","322471cf":"createAffiliate(uint256,uint64,uint64,address,address)","32254992":"getPrevHash(int256)","32255d90":"confirmShipping(uint256)","32258794":"removeAddressesFromBlacklist(address[])","322671cd":"_checkLockUp(address)","32268c01":"artistsArtworks(address,uint256)","3226a94e":"TRNCoin()","3227563a":"logPriceAfter()","3227bd8b":"DragonCoin()","3228556f":"setPOOL_edit_8(string)","3228afcb":"HyperIslandCoin()","32293954":"LogTokenPreissued(address,uint256)","322a5e5f":"balanceContract()","322a7050":"addHospital(uint256,string)","322a8957":"teamTokenTimelock()","322b1bc0":"getarray_length()","322b8c7e":"dKERNEL_PANIC()","322e5021":"Penalty(address,uint256)","322eccdc":"withdraw_all_admin(address)","323046b1":"date()","32307c67":"LCASH()","323082d7":"Vote(string)","3230d486":"getHeroRequiredExpForLevelUp(uint256)","323162a9":"getDisputeParticipants(uint256)","3231a2b9":"voteSnapshotBalanceAutoBatch(address[],uint256[])","32326b44":"Invested(address,uint256,uint128)","3232f204":"SPAMed()","32331418":"ExchangeTokenToZWC(address,address,uint256)","3233b455":"appFundDeposit()","3233c686":"claimerDeposit()","3233c791":"nextlotnumber()","32347487":"forwardFundsToWallet()","32353fbd":"resumeAuction()","323560b5":"ZebraToken(uint256,string,uint8,string)","32363b47":"period1End()","32363e0a":"calculateMultiplierAfterBurn(uint256,uint256,uint256)","323661f6":"releaseLockedBalance()","32366ea5":"isOMITokenContract()","32366fb9":"makeTomatoes(address)","32369e38":"GetPlayerDynamicRatio(address,uint256)","32373e25":"CREATED_STAR4()","323772ee":"unlocktime()","3237d63c":"tgeLive()","32383a69":"WashCrowdsale()","3238c832":"updateDBZHeroDetails(uint256,string,address,address,uint256)","32395c2b":"addPayee(address,address,uint256)","3239825c":"edCoreContract()","3239d232":"weekProcessed(uint256)","323a5e0b":"deposits()","323a73d9":"generateId(uint256,uint256,uint256)","323a7acb":"Joyreum()","323aca70":"InterCryptoNode()","323b1b87":"FreezeTokenTransfers(address,bool)","323b2c26":"MAX_RELEASE_DATE()","323bc818":"_createTeam(string,string,uint256,address)","323be1c5":"canPause()","323bf0b8":"icoPhase2EndTime()","323c20fa":"tokenPtx()","323c59c4":"Common()","323cb59b":"uncooperativeClose(address,uint32,uint192)","323d5c68":"sendPer()","323dc51a":"MomoToken(address,uint256)","323ded4d":"_getLegendaryPlusRarity(uint32)","323df879":"MILLION_TOKENS()","323e71fd":"turnOffCanUpdateFrontWindowAdjustmentRatio()","323ea3f9":"photoText()","323efacd":"checkAndCallSafeTransfer(address,address,uint256,bytes)","323f6fe0":"VESTING_OFFSET()","323fe92c":"setPriceAttr(uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","32414926":"CarTaxiToken(address)","32418558":"stakeTokensManually(address,uint256,uint256)","32424aa3":"_decimals()","324298ff":"ArrayDemo()","32434a2e":"register(address,string)","324365b1":"createCollectible(uint256,uint256,address,address)","3243c791":"distributeDividends(uint256)","32443d7d":"developmentFundUnlockTime()","324536eb":"totalSupply_()","3245a55f":"mintFull(address,uint256)","3246887d":"setLedger(address)","3246bac5":"getGameIpfs(uint256)","3247dd8b":"ySignToken()","32484dab":"totalContributedUnits()","3248687a":"getLockSize(address)","32492f96":"getStellarBalance()","32495c58":"requiredEntries()","3249759c":"TAToken()","324a5562":"setMaxNumber(uint8)","324ab080":"MIN_BONUS()","324b0085":"createBlogger()","324b8ad2":"totalBurnLotsByAddress(address)","324b8d6e":"oracleConfig()","324c6add":"KBV01()","324cb3cb":"contractLocked()","324cf51a":"setPurchaseParamCount(uint256)","324da66f":"removePromoCode(bytes32)","324dd3b0":"getFighterArray(uint256[])","324ecd96":"power10(uint256)","3250e151":"PakEKO()","32513ce5":"newContractAddr()","32519e0e":"roundEth()","32525f09":"testTransferFromDoesNotAllowTransferOfMoreThanAllowedByDelegate()","325294e5":"calculateEthers(uint256)","3252b8fb":"returnGrantedToken(uint256)","3253277c":"badge(address,uint256)","3253ccdf":"burnNomins(uint256)","32546f7e":"HammerChain()","3254de48":"ITSEndTime()","32555f06":"dissBlock(uint256)","325586dc":"checkStateProof(bytes,uint256,bytes,bytes)","32564d82":"identifierToIndex(bytes32)","325654ae":"secondPrivateLockTime()","3257bd32":"getDepositorMultiplier(address)","3257d818":"hasResponded(bytes32)","32581fb0":"getArtefactById(uint256)","3258e255":"setWithdrawBeforeTime(uint256)","325a19f1":"created()","325ab9ac":"buildCharging()","325ad39b":"UltraNote()","325add98":"sellDaiForEth(uint256,uint256)","325c25a2":"auctionLength()","325c35c5":"setFightsAddress(address)","325cf9e6":"splitPayment()","325da1c0":"LogAllocateTicket(uint256,address,string)","325dfddf":"waittokens()","325ecf99":"addMarketingToken(uint256,uint128)","325f33e0":"checkUserByWallet()","325f9f41":"processShares(uint256)","32606387":"_draw3()","32608243":"Iou()","3260db59":"UnityToken(address,uint256)","32611e2b":"stage2_start()","32615457":"FullAssetRegistry()","32617353":"GoldBlockTickets()","32619375":"ChangeMiningReward(uint256)","3262207c":"isTransferProxy(uint32,address)","32624053":"blocksToWaitShort()","32624114":"isValidAccessMessage(address,uint8,bytes32,bytes32)","3262fd9a":"getMoney(uint256)","326360fe":"uncommittedTokenBalance()","32643513":"_computeContendersTotalHp(uint256,uint256,uint256,uint256,uint256,uint256)","32644829":"removePlayerFromBoard(bytes32,bytes32)","3264a34b":"getBoard()","3264a844":"hundredtimes()","3265bf5b":"registerPlayerToBoard(uint256)","3265c436":"btcsAddress()","32665ffb":"getProperty(uint256)","32666a31":"setMonsterObj(uint64,string,uint32,uint32,uint32)","326687b9":"onSale()","3266c856":"WanToken(address,uint256,uint256)","3266fb05":"lockedTime(address)","32670d10":"contributors_locked(address)","3267a2c5":"returnedToOwners()","3267db34":"setCurrentBadge(bytes32)","3268215c":"getPuppyAttributes(uint256)","3268419f":"PreSale(uint256,uint256,address,address,uint256)","32691d18":"updateLastTransactionTime(address)","326959cc":"MMMToken()","32696a92":"totalpatient()","326a794d":"safeMathSub(uint256,uint256)","326a7d77":"LEVEL_MAX_VALUE()","326abfce":"curent_mul()","326b0c7e":"BuyPresalePackage(uint8,address)","326b1001":"crowdSaleHardCap()","326b7a14":"WthdrawTo(address,uint256)","326cf61c":"toBytes(bytes32)","326dd62d":"migrationStartedTime()","326e8d60":"getTurnover(bytes32)","326fac6e":"getCurrentGames()","326fd584":"maxEtherCap()","32708966":"setMonsterIndexToApproved(uint256,address)","3270f753":"depositHouseTakeout()","327107f7":"targetToken()","32715bf2":"userContentByIndex(uint256)","32716063":"calcTotalFee(uint256,bool)","3272b28c":"allowedSenders()","32733a08":"balanceB()","32736fb0":"RoundsManager(address)","3273b110":"setMinDuration(uint32)","327419b7":"NeedsCoin()","327428b1":"Lockable(uint256)","32750350":"setcardaddress(address,address,uint256)","3276249f":"vrcWallet()","327683bb":"setIII_R3(uint256)","3276eaa9":"incrementContinuityNumber(uint32,int256)","32773ba3":"challengeExit(uint256,uint256,bytes,bytes,bytes,bytes)","3277bbda":"setUintF1IntF3AddressF3(uint256,int256,address)","32780d05":"closeChannel(bytes32,uint256,address,uint256,address,uint256,bytes32,bytes32,bytes,bytes)","3278ba2f":"getNumBounties()","3278c960":"terminateSelfDestruct()","3278dc67":"Founder()","327942a2":"move(bytes32,uint256)","32794823":"withdrawToOwnerCheck()","32797f44":"failedTimestampSecondsAt(uint16)","327a765a":"_getString(address,bytes32)","327a943a":"getUserAmount(address)","327b95b5":"USDXCoin()","327c0dd9":"resetLotteryManually()","327cc732":"registrantIndex(address)","327e36dc":"RefundVault(address,address[])","327efb0c":"supplylimitset()","327f0b6b":"pollTitle(uint256)","327fc33c":"isUpcoin()","32807be0":"PrymexPreICOCrowdsale(uint256,uint256,uint256,address)","3280922b":"TOKENS_SALE()","3280a836":"getPayment(uint256)","328175cd":"editorSignUp(address)","3281c4e1":"salesAllocation()","3281c4fa":"upRound(uint256,address,uint256,uint256,bool,uint256,uint256,uint256,uint256,uint256,uint256)","3281d576":"isContractMiniGame()","32820d5f":"setupWeiCaps(uint256,uint256)","328243d5":"changeSale(uint256,uint256,uint256,uint256)","32828d9e":"BbbToken(uint256,string,uint8,string)","32829a23":"OpenBankAccount()","3282aa8a":"individualMaxCapWei()","32833d51":"power(uint256,uint256,uint32,uint32)","3283f641":"task()","32846270":"goldSaleLimit()","3284d75c":"sendRefTVs(address)","3284fd79":"issue(address,uint32)","32859392":"dividendDecreaseFactor()","3285ecde":"tokensMintedDuringPreICO()","3285f406":"GetWithdrawalFunds(address)","3286b611":"Generate(address,address,uint256,uint256)","3286fb75":"addressNotSet(address,address)","3287c399":"isSignedBy(bytes32,address,bytes)","3287d0dc":"ownerLocked()","3287d0f6":"switchReserve(address)","3287db4b":"lockFunds(uint256,uint256)","3288eb0b":"ChineseCookies()","32892177":"TOKEN_VERSION()","328929e0":"Offer(address,address,bytes32,uint256,uint256,uint128)","32895c2a":"ERH()","3289e004":"redeemPackage(uint256,address,uint256,bytes32[])","3289fba6":"getSanPrevOwner(uint256)","328a2c2d":"updateStartDate(uint256,uint256)","328a8cc4":"addRestaurant(address)","328b10d7":"vestingStarts()","328c0ec0":"endPreICOTime()","328d15f4":"_getCurrentWeek()","328d8f72":"setEnabled(bool)","328db985":"getPotCnt(string)","328ede54":"DAFZOToken(address,address,address,address)","32902924":"signSendDiamond(bytes32,string,string,address,string,bytes16,uint256)","3290bd90":"getInfoFromBidding(bytes,bytes32)","3290ce29":"purchaseTokens()","3290f515":"addInterest(uint256)","32911111":"getroundinfo(uint32)","3291b39a":"addReserve(address,uint32,bool)","32921690":"checkDepth(address,uint256)","3292b71f":"transferCrowdSale(bool)","3292cd37":"payWithDailyFreePoint()","32931fbb":"left1(uint256)","329350ea":"storeOwnership(address,address)","3293d007":"isValidDateTime(uint256,uint256,uint256,uint256,uint256,uint256)","329430ca":"teamAllocated()","32947122":"updAirDropTokenDestroy(bool)","32948515":"QLinkToken()","3294ab00":"withdrawBtc(bytes,uint256)","3294c2d7":"updateDocument(uint256,uint256)","32958fcb":"boolToBytes32(bool)","3295feb3":"numAuthorities()","32967ea0":"isOlderOwner(address,address)","3296a373":"createPromoPerson(uint256,address,uint256)","3297ef5b":"voting_started()","32985244":"joyTokenContract()","3298caa3":"getDoneRegistrationAmount(address)","3298e6c8":"GanaPublicSale(address,address,address)","32990ad2":"rewardTokensForClient(address,uint256)","3299ad23":"PapushaToken()","329a23b8":"Wallet(address[])","329a27e7":"getWalletBalance()","329a88d5":"UBIATARPLAY_CAP()","329b1c92":"getReferral()","329b59d1":"fallback(uint256)","329b8f38":"yesCount(uint256)","329bfc33":"getCurrentWinner()","329c095b":"getLatestReading(string)","329ccce1":"vmaxEtherPerPurchase()","329cd958":"get_next_item_in_state_from_item(bytes32,bytes32)","329ce1b7":"delOwner(address,address)","329ce29e":"buyTile(uint256)","329d1a35":"testReentracyGuard()","329d1a8b":"depositIndex(uint256)","329d3346":"closeVote()","329d5f0f":"setApprovedUser(address)","329da011":"addNewToken(string,address,address)","329daf90":"onlyPauserMock()","329eac15":"phase2Price()","329f36b5":"BONUS_TIER_2_LIMIT()","329f5b21":"DiatomAirdrop(address,address)","32a16f4e":"isLocked(bytes32)","32a21a28":"registerInvitor(address,address)","32a2c5d0":"getContractAddress()","32a2fda7":"isPermissionGranted(address,string)","32a36e53":"enterRound(bool)","32a3869a":"getBonusPercentage(uint256)","32a3abbb":"LALATokenAddress()","32a42882":"buyPropertyInPXL(uint16,uint256)","32a45ac5":"addMessage(address,uint256,uint256)","32a521c1":"disallowToLock(address,address)","32a52fcd":"FOR_ICO()","32a54712":"DecalinxCoin()","32a55bb4":"swapActivity()","32a58dc2":"change_client_manager(address)","32a6baf6":"isTimePassed()","32a71b36":"AleaCoin()","32a7ae95":"deleteClaim(address)","32a7d7c2":"AddressOwnershipVerification()","32a7e45a":"eosBlanceOf()","32a80329":"getTokenTransferable()","32a8589a":"FercCoin()","32a89e50":"NextBabyIs(address,uint256)","32a8bb33":"getParticipantIds(string,uint256,uint256)","32a8d49e":"ADV_TEAM_TOKENS()","32a8e74c":"participateBuyback()","32a92229":"creditBalanceOf(address)","32a9df46":"setSecondBonus(uint256)","32aa952f":"UpdateSellAgentCreators(address,address)","32aae34d":"LogVoteToFreeze(address,uint256,uint8,bool)","32aaf9d7":"addCommissionAmount(uint256,address)","32ab6af0":"newRepoWithVersion(string,address,uint16[3],address,bytes)","32aba656":"stillAvailable()","32abff8e":"lastBlock_v5Hash_uint256()","32ac752b":"matches(string)","32ace499":"getNextOrderPrice(address,address,uint256)","32aeaddf":"lockingPeriodInMonths()","32af5858":"behalfBet(address,uint256,uint256)","32afa2f9":"claimEtherOwner(uint256)","32b12eac":"setFallback(address)","32b182c3":"eligible(address,uint256)","32b1ad5a":"checkContructIsLocked()","32b28b95":"edoPerWeiDecimals_()","32b30b64":"calculateUnsoldTokens()","32b3c323":"anyoneEndICO()","32b431da":"setPlanetAuctionAddress(address)","32b45055":"EREEBERRY()","32b4623a":"shareCertificate(string,string,string,address,address,string)","32b4b5ed":"openProvider(bool,string,string,uint256,string,uint8,bool,address)","32b4d74c":"getNumRemainingSeats()","32b525bb":"beginMotion(address)","32b5b2d1":"missedVerificationSlashAmount()","32b65a95":"getSplitCount(string)","32b680d6":"payReceiver(address)","32b693b0":"PetCoin()","32b6f97a":"UXDToken()","32b7214e":"setNextSnapshotTime(uint256)","32b734b7":"awardsEnd()","32b85a44":"currentWeight()","32b8c086":"testSuperUser(address)","32b98616":"updateCardDetail(uint256,uint256,bytes32)","32ba36d6":"EtherShare()","32ba4b8b":"RANGEEND_5()","32ba65aa":"clearBalance(address)","32baa8d9":"existingCategory(uint256)","32bafb2c":"withdrawMln(address,uint256)","32bb2c0d":"calc(uint256,uint256)","32bbb8cc":"mgrVotes(uint256)","32bbc1c8":"WEI_PER_USD()","32bc873d":"AZExchange(address,address,address,uint256,uint256,uint256)","32bc934c":"MILLION()","32bd8644":"MPYRefund(address,uint256)","32be9502":"getOwnerInAnyPlatformById(uint256)","32bf1def":"FACTOR_2()","32bf775d":"testControlTransferDisabled()","32bf9e5b":"AfricacoinToken()","32bfaa23":"initializeRefundableFundraiser(uint256)","32bfdc38":"ROC()","32c0c583":"setDenyPremium(bytes32,bool)","32c0f801":"tokenFacebook()","32c0fba5":"airDrop(address,address,uint256)","32c1eb82":"getActualRate()","32c22154":"livepeerToken()","32c26957":"isTimeout()","32c2ed9a":"inquire(uint256,uint256)","32c35352":"marketSale(uint256,string,address,address)","32c3de5d":"listCreatedTokens()","32c442d6":"Super87Coin()","32c468fa":"setPreFundingStartTime(uint256)","32c4903d":"getAllParents(bytes32)","32c514d5":"getJobDetailsIPFSHash(uint256)","32c66a9d":"Nome_vincitore()","32c6f294":"deadline120()","32c6f315":"exchangeIsRunning()","32c716b6":"dividendsAcc(address)","32c7de60":"_RamenCoin()","32c862ed":"inSalePeriod()","32c896d4":"REFERRAL_BONUS_LEVEL4()","32c9635b":"_getEthUsdPrice()","32c990b4":"getUserKeys(address)","32ca5587":"isWoidRegistred(address)","32ca966e":"toTileId(int32,int32)","32cae0a8":"userPoolFund()","32cb46e0":"totalContributedWei()","32cb6b0c":"MAX_SUPPLY()","32cb93d9":"getPaintingName(uint256)","32cc0105":"setAmountForDeal(uint256)","32cc6a9f":"modifyNextCap(uint256,uint256)","32cce1e4":"_unlockTokenByIndex(uint256)","32cd0487":"delist(address[])","32cd0b3d":"totalRemainSupply()","32cd3148":"CashmoneyToken()","32cd724a":"getStateStartTime(bytes32)","32ce92cb":"setFIRST_STEP_MULTIPLIER(uint16)","32cea83e":"birth(bytes)","32cee2eb":"getMinableSupply()","32cfbe90":"initialBalance(address)","32d05a53":"IdToAdress(uint256)","32d05c6d":"withdrawXPA(uint256,address)","32d17917":"SPECIALIST_THREE()","32d1ae2e":"RepairCenter(address,address)","32d2e55c":"subSafe(uint256,uint256)","32d2fb9f":"getRefRemainingTime(uint256)","32d33cd0":"isRedeemed(uint256)","32d3725b":"burnStage(uint256)","32d3b711":"getPI_edit_29()","32d540af":"_clearExtraReceivers()","32d5fe98":"revealCampaign(uint256,uint256)","32d68fd5":"transferFeeNum()","32d69342":"terminateServer(uint256,uint8)","32d6eeb5":"changeQueryDelay(uint256)","32d72694":"updateGameTimes(uint256,uint8)","32d79689":"currentNiceGuyIdx()","32d80490":"Dandy()","32d8a3bd":"initCommunityReputation(address)","32d8eee5":"testFailSetNotUpdatableNotOwner()","32da1329":"setStartEndTime(uint256,uint256)","32da3fe3":"upgradeComponent(uint256,address,address)","32da57cf":"getTheStocksTokens()","32da7448":"amout()","32da7840":"isWhitelistAgent(address)","32dae2a5":"maxAmountICO()","32db8e2b":"MAX_RECEIVED_PER_PERIOD()","32dbc7d4":"NECPToken()","32dbeb21":"GoalMinimumReached(address,uint256,uint256)","32dc04aa":"changeBlockTimeAverage(uint256)","32dc2a01":"setmsgprcnt(uint256)","32dc9e81":"functionFive(uint256,uint256,uint256,uint256)","32dcb01c":"createBytes32s(bytes32[],bytes32[])","32dea130":"finishCrowdsaleMinting()","32deac1b":"setThirdBonusPercent(uint256)","32df3068":"clearKeys(uint256)","32df52aa":"LigmaToken()","32e07a20":"howManyEthersToKillContract()","32e12734":"addSpecialOffer(address,uint8)","32e1ed24":"updateAccountOwner(bytes32)","32e26d24":"CROWD_WAVE1_BONUS()","32e30e84":"INTERFACE()","32e43a11":"dummy()","32e43b5b":"PlayerTransported(uint256,address,uint256,uint256)","32e459b4":"LogFinalized(uint256)","32e45b8b":"guessTotalBeanOf(uint256)","32e54f72":"proxyPayable(address,string,string)","32e5535a":"ticketString(uint256)","32e5645d":"_computeNextArtworkPrice()","32e5905b":"film()","32e5d676":"c_priceRiseTokenAmount()","32e5e595":"getTimestamp(string)","32e62358":"_platformSupply()","32e70029":"MGCGameToken()","32e7179a":"MintedLocked(address,uint256)","32e7c5bf":"B()","32e7ecd8":"tierMin(uint256)","32e7f81f":"allocateLiquid(address,uint256)","32e94e81":"setPlayerEngineersCount(address,uint256,uint256)","32e991cf":"sellScale()","32e99708":"getMiningTarget()","32eb2314":"OraclizeQueryTest()","32eb2564":"initGame()","32eb5e44":"getaddtime(address)","32ec39a4":"mntpMigrationsCount()","32ec7a4e":"_emitDayLimitChanged(bytes32,uint256,uint256)","32ec991c":"ballotOf(uint256,address)","32ed3d60":"startPoll(uint256,uint256,uint256)","32ef78c4":"remove_scribe(address)","32ef8dfa":"previousDistribution()","32f04209":"evReleaseFund(address,uint256)","32f05fd1":"releaseAndUnlock(address,uint256)","32f07d01":"LogRedeemNET(address,uint256,bytes32)","32f16c74":"claimPepe()","32f2129a":"getBetArr()","32f23601":"setSubTourFreezingPrice(uint256)","32f289cf":"claimToken(address)","32f2bb50":"HouseInfoListing(address)","32f402c5":"createGrant(address,uint256,uint256,bool,bool)","32f46374":"create(string,address[],address,address)","32f58fc8":"retrieveRemainingCoinsPostSale()","32f5ea27":"UbiRewardToken()","32f637db":"createVesting(address,address,uint256,uint256,uint256,uint256)","32f6438b":"setCFO(address,bool)","32f72c27":"remove(int256)","32f72e39":"setSubmissionDeposit(uint256)","32f7470b":"DATE_31_DEC_2018()","32f76c11":"didTradePosition(bytes32,address,address,uint256,uint256)","32f7b41b":"setCCH_edit_29(string)","32f8290c":"returnMachine()","32f896af":"getSettingIdByTAOName(address,string)","32f8d1e4":"RockCoin()","32f8db38":"mainSaleMinEth()","32f8e034":"finalizeIcoDate()","32fac3a3":"listAddresses(bool,bool,bool,bool,address[])","32fb082f":"hasOrderedRobotParts(uint256[])","32fb5833":"AutomatedExchange()","32fbe8d3":"setSavedBalance(uint256)","32fd8478":"artistCommission(uint256)","32fe334b":"totalEtherPaid()","32fe5afc":"setICOEthPrice(uint256)","32fefb4c":"add_account(address,address)","32ff6e21":"setAirDropToken(address)","32ffe442":"getExpectedPrice(address,address,uint256)","33007cdf":"deposit(address,uint152)","33012507":"addMemberInternal(address)","33016c6a":"FOUNDER_FUND_3()","3302363b":"_nextMonth1stDayTimestamp(uint256,uint256)","33026bb6":"addDeposit(address,uint256)","330278e0":"betPlaced(address,address,uint256,uint256)","3302ece0":"setStopDate(uint256)","33039d3d":"MAX_TOTAL_SUPPLY()","3305cf85":"weiToCap()","33065ac5":"firstTokenId(address)","330696c8":"PREMINER_CHANGED(address,address,address)","330738a3":"KetherHomepage(address,address)","3308ecf1":"coinanx()","3308f42d":"getPlayer()","33091bd2":"returnTokenBalance(address[2],uint256[7],uint8,bytes32[2])","33099beb":"theCyber()","330a4822":"_createOrder(address,uint256,uint256,uint256)","330aa207":"frozenAccountCoinByTime(address,uint256,uint256)","330ae38f":"disableAmbassadorPhase()","330ae7b3":"addUserBattleValue(address,uint256)","330c3fe5":"finalise(address)","330c4ce0":"burnedToken()","330ca427":"removeValidationPreSigned(address,bytes32,uint8,bytes32,bytes32,uint256)","330cbc75":"createEdition(uint256)","330d57f9":"maxbuyinQuantity()","330f412b":"MorphToken()","330f9588":"xrt()","330fb148":"setETHRateAgent(address,bool)","330fb4a3":"putEther()","330fd319":"MMTOKEN()","33102ff9":"openRoom(uint256,uint256)","33105218":"isVerifier(address)","331172f3":"getDisputeRoundDurationInSeconds()","33132860":"EcRecover(bytes32,bytes)","331350ee":"finishAllocation()","3313d27e":"verifyAllSigned(uint256,uint256[3],uint256[3],uint8[176])","3313d9bf":"bytesToString(bytes,bytes1)","3313e95d":"strcpy(string,uint256,string)","33140016":"feesByPeriod(address)","331450dc":"minerPreTime()","3314b33a":"BoardMeetings(uint256)","3314b62d":"AuPetitCoinToken()","3314c351":"Trade(address,uint256,address,uint256,address,address,uint256)","33158ba4":"openNetfRevenueRound(uint256)","331670c5":"getIsEnabled(uint256)","3316d122":"log(uint32,address,address,uint256,uint256,uint256)","331725b5":"callAndReward_0(string,string,uint256)","3317bbcc":"getLockedTokens()","3318d4a5":"incomeFees()","33195fca":"getApprobation(uint256,address,address)","3319bf1a":"upgradeGalleass(address)","331a6bf5":"setOwnerAddress(address)","331a72bb":"s7(bytes1)","331a72d1":"getRetractable(bytes32)","331a9d73":"availableSTCTokens()","331b6f66":"sizeOfAddress()","331c4594":"TalentICO()","331c55b4":"addTeamTimeMints(address,uint256,uint256,bool)","331c5d60":"LogSetName(string)","331d03d1":"BubToken(address)","331d8e5d":"unlock(address,address,bytes)","331e58a1":"adjustedRaised()","331e6b78":"setToNotForking()","331eac01":"SendPreReserved1()","331fbc1d":"tokensCreationMin()","331fef86":"bonusStrategy()","33210356":"setDelegadoDeDistrito(bytes32,uint256)","332129a7":"getJYPCBonus(uint256)","3321c76c":"RITUAL_COMPENSATION()","33223f1b":"materializeBalanceIfNeeded(address,uint256)","33228b9b":"E_AuctionFinished(address,uint256,address,uint256,uint256)","33232609":"blake2b(uint64[],uint64[],uint64)","33242b60":"getODEMClaim(address,bytes32)","332514d8":"totalT8EXSold_PRIVATE()","332559d3":"getcanuse(address)","33260fe7":"getInteractionPrice(address)","332659e0":"getBountyAddres()","33267961":"run2(uint256,bytes32[],uint256[],uint256,uint256,uint256,uint256)","3327057c":"Arina_judgment()","33271a3b":"getTokensPerWave(uint256)","33278aae":"setUntradeable()","3327f4fa":"setInstrumentRegistry(address)","33281815":"getRate(address,uint256,uint256)","33283e59":"usedReveralSupply()","33285fb4":"confirmAtkPlayerQuest(address)","33287446":"setMinTokensRequiredForMessage(uint256)","33289a46":"withdrawDeposit(uint256)","3328bd24":"lockAddress(address,uint256)","3328d3f0":"numberOfDates()","3328f396":"totalLevBlocks()","33291126":"_tavern(uint256)","332954c0":"YumeriumTeamWallet()","3329578b":"SpectrumNetwork()","33298e25":"invoke(uint256,uint256)","332a2219":"_goodAddress(address)","332ad859":"buyTokensBonus(uint256,uint256)","332ae26c":"test_insert_findNoHintUpdateHead()","332b0b34":"oraclize_randomDS_getSessionPubKeyHash()","332b3177":"totalTimelockedBeneficiaries()","332b9f06":"consumeNextOrderId()","332bb4c1":"approvalCallback(address,uint256,bytes)","332c26d6":"getSecretAtLevel(uint256)","332e1a81":"getContributors(bool,bool)","332e25be":"getCCH_edit_19()","332ea814":"amIAgent()","332ea9ed":"VRCoinCrowdsale(address)","332eb83e":"steal_reveal(address,uint256)","332ec5f9":"unblockMember(address)","332efa80":"clearNewOwnerBid(address,uint256)","332f7acf":"amountCollected()","332f7d6e":"Lpktransfer()","332f93a9":"nextPayoutGoal()","332fa285":"nextGameMaxBlock()","332fa5bb":"ownerCountInt()","332ff6f9":"Buyin(address,uint256,uint256,uint256)","3330a6bd":"set_min_max_CWCsPerReturn(uint256,uint256)","3331f391":"giftAsset(address,uint256)","33324445":"changeClientCategory(address,uint256)","3332baa3":"PreSaleDeadline()","3332f720":"transfer_remaining_funds_to_project()","333432fe":"_withdrawBonuses(bytes32,uint256)","3334f1f8":"getAmountWithBonus(uint256)","3335aa78":"eRefund(address,uint256,string)","33360632":"getNumParameters()","33360978":"EndTime()","3336d5e5":"addABaddress(address,address)","33377f32":"turnOnFurnace(bytes32,bytes32,bytes32,bytes32)","33379137":"transferCoinToUser(address,address,uint256)","333885a0":"createBill(address)","3339451b":"fireDeliveryProposalEvent(address,uint256)","33397816":"withdrawAccountBalance(address)","3339f96d":"floaksAddress()","333a653e":"PeakAssetCoin()","333ab570":"WeiSent(address,uint256)","333abd90":"acceptKinTokenOwnership()","333aed82":"nextGameSettings()","333bfec5":"delegatedSignedEscrow(bytes,address,address,address,uint256,uint256,uint256)","333cfa14":"checkBlockMature(uint256,uint256)","333dbda8":"paymentsInOtherCurrency(uint256,uint256)","333e1a72":"investorsLoses()","333e5180":"setOperatorPrivileges(uint256,address,bool)","333e99db":"isBlacklist(address)","333f55ed":"managerSelfRemove()","333f57b3":"contractStarted()","333f7f70":"changeFrozenStatus(address,address,bool)","33403a81":"_calculateWinner(uint256)","334191f7":"donatorReward()","3341b445":"proposals(address)","334249a7":"getProviderCountry(uint256)","334340d2":"EthCoin(address)","3343c18c":"AddBTCTransaction(address,uint256,uint256,bytes4)","334460a4":"createMetadata(bytes32,bytes32,bytes32,string,bytes32,bytes32,uint256)","3344e0b3":"WWW()","33455dd0":"PRICE_5()","3345854d":"NewGame(bytes32,bytes32,bytes32,address,uint256)","3345b65f":"listNextFourCards(uint128)","3345b784":"tokenSaleWeiMin()","33465c5f":"auctionStartTime(uint256)","3347d025":"teamUnlock3()","3348904b":"amountOfBets()","3348cad7":"_breedWith(uint40,uint40)","3348f537":"massClaimLimited(uint256,uint256)","33492138":"joinFraction(uint256,uint256,int16)","3349bc19":"nonActivationWithdrawal(address[2],uint256[7],uint8,bytes32[2])","334b8771":"AIRDROPBounce()","334b9f14":"initializeArray(uint256)","334c5997":"JavaSwapTest(uint256,string,string)","334cc3e5":"TimeDecayingTokenFactory(bool,address)","334d86bf":"getPI_edit_7()","334dc700":"CanaryV7Testnet()","334df120":"getBeneficiaryById(address,uint256)","334ef224":"testThrowsUpdateLatestRevisionNotOwner()","334ef43d":"tokensToCounter(uint256)","334f0611":"cnd()","334f22c7":"getUrl(bytes32)","334f45ec":"currentStepIndex()","334fe638":"getProvisionCreditsRemaining(address,uint32,uint256)","33500e26":"bid(uint8)","33506115":"setPauseSave()","335094c2":"setPreICOEnd(uint256)","3350ae36":"fitCollectedValueIntoRange(uint256)","3350b915":"setDungeonPreparationTime(uint256)","3350c3ba":"BlockEstateToken()","33512aa9":"getUserReward(address,bool,bool)","33513739":"lowerCeiling(uint256)","335154ed":"setRateSteps(uint256[],uint256[])","3351886e":"getFilm(uint256)","3351ee19":"donatePurchase(uint32)","33533e84":"NeterContract()","33545d48":"setIdentity(address,address,string)","3354741a":"eveFromEth(uint256,uint256)","335494a4":"getMintingPowerById(uint256)","3354d682":"destroyVoxel(uint8,uint8,uint8)","335611d9":"makeOrder(uint256,address,address,uint256,uint256)","3356294b":"setAyantDroitEconomique_Compte_3(uint256)","335665c4":"canBuyCompany(bytes32)","3357162b":"initialize(string,string,string,uint8,address,address,address,address)","335721b0":"NewResolver(bytes32,address)","33575f64":"buyRank(uint256)","3357db75":"SALE_ENDED()","33580959":"poolFees()","33588dfa":"doCalculateRoom(uint256,bytes32)","3358d2d3":"buildDSTokenFrontend()","33592a1f":"getProviderById(uint256)","335a6b7d":"Wicflight()","335aa61a":"setMaxPrizeOneDay(uint256)","335ae0cb":"GetEscrowBalance()","335b496e":"totalTransfersInSchedule()","335b52f2":"initGameAt()","335b61e8":"enableArea(string)","335b7c13":"phase5EndBlock()","335b942a":"arbitrateC4FContract(address,uint8)","335c8b63":"packPrice()","335d43a3":"Kubera()","335e8067":"tricklingSum()","335eb60f":"getCoursesLength()","335f463d":"DVChain(uint256,string,string)","335f5642":"getinfowin(address,uint256)","335f9303":"PunchToken()","335fba7e":"calculateRedeemReturn(uint256,uint256,uint32,uint256)","336077c3":"getApprovedBuyer(address,address)","3360ac90":"transferByOwner(uint256)","3360caa0":"publicSaleStart()","336120fe":"removeTokenList(address,uint32)","336137c8":"updateMember(address,uint256)","33613cbe":"getBondBalance(address)","33637d5a":"getPendingBlock(uint256)","33641775":"change_sale_address(address)","336481d4":"dSetCommunityBallotsEnabled(bytes32,bool)","3365aa3b":"description2()","3365d358":"addContractAddress(address,address)","336634bb":"MASIKIToken()","3366eeb2":"getLockedToken()","33670c1c":"SupportsInterfaceWithLookup()","33677c30":"recycling(address,uint256)","3367aeb2":"maxPVB()","33683ec6":"safeHolderOf(uint256)","3368a120":"dividendBalance()","3368db4f":"DCE_Coin()","3368e968":"init(bytes32[])","336989ae":"customers(address)","3369c33d":"pregnantDogs()","3369c3b6":"ReturnEthersFor(address,uint256)","3369dace":"flipTheCoinAndWin()","336abddc":"allocateCash()","336b739a":"setCovmanager(address)","336b9f80":"updatePublisherFee(address,uint16)","336c6d39":"setPrizePool(address)","336c9b97":"_updateEditionTypeLookupData(uint256,uint256)","336ce69e":"CyberyTokenSale()","336da059":"MAX_TOTAL_TOKEN_AMOUNT_OFFERED_TO_PUBLIC()","336e24aa":"getQuestionAnswerCount(uint256)","336fa72c":"addTransferableAddress(address)","3370204e":"enter(bytes8)","33705526":"p5()","337176cd":"getVideoGameItemOwner(uint256)","337188d9":"secSaleSpenderTxDetails(uint256)","33722c47":"testGetLawyerAtIndex()","33731c04":"plxToken()","3373739b":"usedTokens()","33739483":"etlContract()","33751fec":"WeatherToken()","33756534":"LogVote(address,bool,uint256)","33759ee1":"CrowdSaleTokenPurchase(address,address,uint256,uint256)","3375e38a":"CreatedBlock(uint256,uint256,uint256,address,bytes32,bytes32,bytes32,bytes32)","3376887a":"test_oneValidEqInt2()","3376e2dc":"callDividendAndUserRefund()","33771860":"setGoldContract(address)","337748b8":"StartFuseaNetworkDistribution()","3377f212":"set4RoundTime(uint256)","33783b9e":"PapaToken()","3378eb29":"ElectricQueue(address)","33791c36":"Fundraiser(address,address)","3379d7a3":"greedyowner()","337a693c":"AkiCoin(address)","337a8cdb":"allowMoveTokens()","337b1cf9":"setIpfsHash(bytes)","337b5988":"testSimpleNameRegister()","337b68ba":"takenProfit()","337bd656":"HashSolved(address,string,bytes32)","337c1e28":"getIndexRoot(bytes)","337c445d":"increaseWordSize(string)","337cc706":"transferContract(string,string,string,string,string)","337d2aea":"PHASE3_START_TIME()","337f4c46":"gameDeveloper()","3380104a":"Streamity()","3380c0d8":"cancelTransaction(uint256)","338116b0":"checkContract()","3381ffe0":"transferTrusteeOwnership(address)","338246e2":"minSwapAmount()","3382ac57":"customCreateTokens(address,uint256)","3382ddab":"tokenBurnAddress()","33833037":"allBalance()","33835161":"setConfig(uint256,uint256,uint256,uint256,uint256,uint256)","3383e335":"LogTake(bytes32,bytes32,address,address,address,address,uint128,uint128,uint64)","33840712":"checkImageInput(address[16],uint256,uint256,uint256[],bool,bool)","338410f2":"setUnicornBreeding(address)","33848008":"newDepositWallet(address)","33849e55":"voteOnSolution(uint256,uint256,bool)","3384d2af":"PARKToken()","3384e128":"soldSS()","33862708":"changeServiceAddress(address)","33862914":"SOYA()","33863ed9":"order(uint256,uint256)","3387e52f":"LLV_311_EDIT_3()","33882479":"multiplyDecimalRound(uint256,uint256)","3388e429":"ecrecoverDecode(bytes32,uint8,bytes32,bytes32)","3388fa72":"Duranium()","33893071":"checkMyWithdraw(address)","3389f273":"setManyAllocations(address[],uint256)","338a0261":"rhi()","338a1379":"_setPackedBlockNumber(bytes20,uint256)","338a63a4":"_createKitty(uint256,uint256,uint256,uint256,address)","338b5dea":"depositToken(address,uint256)","338bfcd6":"refundTokensPresale(address[])","338cdca1":"request()","338d43f6":"_decrementTokenBalance(uint16,uint16,uint8,address,uint256)","338dbf59":"startPrivateSale()","338dfafa":"HVNToken()","338e22ff":"ProcessablesMock()","338e4fd6":"setTokenForSale(uint256,uint256,bool)","338e579e":"tryFinalize()","338e93d1":"active_dividend(address)","338ed326":"createCustomCrowdsale(uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,address)","338ef191":"GetBetGamblers(uint256)","338f3039":"amountAvailableToWithdraw()","338f43a0":"getReservedTokensListValInTokens(address)","338f4ad6":"withdrawMineralTo(address,uint256)","338f4dd9":"limitTier2()","338ff5e3":"updateInvested(uint256)","33902973":"createReserveTokensVault()","33904cb1":"MasterNet(uint256,string,string)","33905d41":"highFunding()","3390e6c7":"getIsSecondPhaseBySoldedTokens()","33911763":"greenshoeActive()","3391c265":"transferManagment2(address)","33920f65":"getEarliestPosition(address)","33921b2c":"DEXHIGH_V1()","339282b7":"isRegisteredAuthority(address)","3392f927":"hasConverted(address)","3392ffc8":"testExp(int256,int256,uint256)","3393385f":"disableUpdates()","3393780f":"DdosMitigation()","3393b069":"nothingLib2()","3395dc70":"acceptTransfer(address,address,uint256)","33966cb6":"_bid(uint256,address,uint256)","33967c74":"isZero(bytes32,string)","3396c405":"tokensAreLiquid()","3396c780":"b21TeamTokensAddress()","3397ca17":"numBalanceRecords(address)","3397d5d5":"setTokenPrice(uint8)","33985caf":"Exera()","33989396":"requestNewEtherRealID(string,string,string)","339a7670":"mineToken(uint256)","339a95f6":"secondCrowdSaleEndDate()","339ab6f2":"getPurchaseAmount(address)","339ac174":"playerSurrender()","339b6b39":"isRevokedBefore(bytes32,uint256)","339cfb9a":"isHolderAddress(address,address)","339e23d1":"ownerVote(bytes32,uint256,address)","339e2604":"setPayBackRate(uint256)","339e2c45":"isRegisteredToFirm(string,address)","339e9550":"_sendReward(uint256)","339f890d":"setMinBlockPurchase(uint256)","339fd959":"getLockAmount(address,address)","339ff96d":"transferCommitment(address)","33a02a6d":"openLandEthSale()","33a02c22":"betAdded(uint256,uint256,address,uint256)","33a263e6":"peggedSymbol()","33a27f75":"estimateNextPotSeedAmount()","33a3b654":"managementAmount()","33a3d023":"finalizationCrowdsale()","33a3e669":"setClientLastPaidRate(address,uint8)","33a4ec8d":"NCMToken(uint256,string,string)","33a581cd":"createPeerWallet(address,address[],address[],uint256[])","33a581d2":"MAX_UINT256()","33a5ec7e":"changeTokenAmount(uint256)","33a7d2e3":"BONUS_DURATION_2()","33a8319e":"EtherJob()","33a87ade":"gasInTokens()","33a8c45a":"contact()","33a8dc1d":"nextPack(uint256)","33a9824a":"PopulStayToken()","33a99e04":"selectWinner()","33aac4aa":"BaseModule()","33ab0541":"setBaseLevelUpFee(uint256)","33ac2009":"countValidations()","33ac67c3":"ShowChargeCount(address)","33ac7256":"getParent(bytes32,uint256)","33ad9495":"WithdrawPotShare()","33adb264":"invokeTop()","33ae6e19":"distributeTimelockedTokens(address,uint256)","33ae7166":"tier4()","33ae88ad":"numberOfKingdoms()","33af060f":"accountInGoodStanding(bytes32)","33b0f7f7":"paidCreateWikiPage(string,string,string,uint256)","33b1503d":"PostWish(address,uint256,bytes,bytes,uint256,uint256)","33b16d93":"determineWinner()","33b186c1":"AdvisorsPartnersAmount()","33b19417":"NodeManager(address[])","33b1f812":"totalPromotions()","33b37915":"setOrderEnd()","33b3dc04":"castVote(string,uint8)","33b416db":"BaseICOToken(uint256)","33b56638":"testGetAllLawyers()","33b58484":"WEEKS_104()","33b5b62e":"minPurchase()","33b5fa75":"buyTokensWithRef(address)","33b6baf5":"developerAddr()","33b7d187":"getDCategory(bytes32,uint256)","33b85b73":"modifyCommunityRates(uint256,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)","33b8b1c1":"transferInt(address,address,uint256,bool)","33b8c29d":"updatePriceOfEth(uint256)","33b91db5":"GetTocPrice()","33b9d3f4":"_buyCoins(address,uint256)","33ba2ef9":"hipstermasterReq()","33bb70ee":"getCoinAge()","33bbae93":"end_date()","33bc1c5c":"publicSale()","33bc6283":"TruReputationToken()","33bd8036":"addressPayableFunc(address)","33bd943e":"abandonListingService(uint256)","33bebb77":"forceTransfer(address,address,uint256)","33bfaf4e":"MickeyToken()","33bffccc":"openPreSale()","33c023ef":"doInvestment(uint256,address,string,uint256,bool)","33c1420a":"raffle()","33c24bd3":"accountIds(uint256)","33c4a1d6":"SetScndOwner(address)","33c5da42":"setGaspriceMax(uint256)","33c6c1af":"setCentralAccount(address)","33c6cdd3":"modifyRatePlan(uint256,string,bytes32)","33c724ee":"setLosers()","33c74e79":"participantContribution(address)","33c77a6d":"pauseICO()","33c7b38f":"withdraw_to_eti()","33c7c026":"feePayment()","33c7d1cc":"restart(bool)","33c84990":"setNewClaimer(address,address)","33c8adce":"enterLeague(uint256[],uint256,bytes)","33c90632":"createTransferAuction(uint256,uint256,uint256,uint256)","33c91611":"safePay(uint256,uint256,address,bytes)","33c9b83c":"preIcoSoldTokens()","33c9ccf5":"isKeyOwner(bytes32,address)","33ca4773":"getBrandData(address)","33ca55d7":"requestTransferChildrenOwnership(address)","33caaa43":"tokenRewardContract()","33cbee23":"teamTwoDivsTotal()","33cc4f9f":"FIDAToken()","33cc9c3e":"getLuckyPendingSize()","33cd3383":"investmentsOf(address)","33cd7ede":"totalJackpotOdd()","33cdfc76":"accountOf()","33ce1cda":"JSJC()","33ce724a":"sendSoldTokens(address,uint256)","33ce7787":"transferInvestorAccount(address,address)","33ced321":"genLevelExp()","33cf3ca0":"icoDeadline()","33cf58f9":"Accepted()","33cfc5e3":"DEFToken()","33d020ae":"getManifestId(address,bytes32,bytes32)","33d072e2":"processFunds(address,uint256,uint256,bool)","33d0a56b":"Melt(address)","33d14097":"DoRollEvent(address,uint256,uint256,bool,bool,bool,bool,uint256,uint256,uint256)","33d1e5b9":"lockupAccount(address,address,uint256)","33d24dc4":"setTypeAdvantages()","33d2cea2":"getDiceWinAmount(uint256,uint256,uint256)","33d34bad":"nextlotnr()","33d52c71":"ico3Cap()","33d58ca6":"F2UToken()","33d59f0a":"setJobStatus(uint256,uint8)","33d5d29b":"containsOperator(address)","33d5e4ca":"LogErrorMsg(string)","33d634df":"getSpinResults(uint256,uint256,uint256,address)","33d63869":"icoReserveSupply()","33d64a6f":"Start_Resume_ICO()","33d6c065":"PenCrowdsale(uint256,address,address)","33d764a2":"transferPreSigned(bytes,address,uint256,uint256)","33d9529a":"Totalbalance(address[])","33d97457":"GRAPE_SECS_TO_GROW_VINE()","33da67a0":"setForceNsfw(uint16[],bool)","33daaa5e":"setMakerFeeRate(uint256)","33db82fd":"outToken()","33dd1b8a":"setAllowed(address,address,uint256)","33dd5fb8":"TransferAntique(bytes32,address,address)","33dddc3a":"openLootbox(address)","33de06d5":"changeEscapeHatchCaller(address)","33de61fb":"Marvin()","33de96c6":"cancelTransaction(address)","33decdc6":"returnVolAdjuster(uint256)","33df4155":"setSPARCAddress(address)","33dfc93c":"untokenizePosition(bytes32,address)","33dfe91d":"isDefValueInRange(uint8)","33e06ee7":"buyTokensAtRate(address,uint256)","33e11ec4":"getBcouponTransferCost()","33e13ecb":"Execution(uint256)","33e2df5c":"newTeamCreated(bytes32,bytes3,bytes3,bytes3,bytes3,bytes3,bytes3)","33e2df5d":"isTokenValid(string)","33e335a0":"fromPaymentGateway(address)","33e364cb":"resumeSale()","33e36c50":"FundsLoaded(uint256,address)","33e3e86a":"isValidSan(string)","33e5bce1":"allow_spend(address)","33e663a4":"BonusEarned(address,uint256)","33e665eb":"setMonsterAuctionAddress(address,address)","33e67012":"disableChain(uint256)","33e712fe":"functionEight()","33e747b3":"setCapAtWei(uint256)","33e7ed61":"submitPool(uint256)","33e7fb97":"modifyExecutorAddr(address)","33e85eac":"get_king_price()","33e8b084":"dePesoToken()","33e8b8ac":"setFounderAllocation(address,uint256)","33e8df7e":"get_property_address(uint256)","33e90f98":"migrateMntp(string)","33e9698c":"tokenIssueDeadline()","33ea3dc8":"getTransaction(uint256)","33ea7a2b":"setBundinha(string)","33ea80cb":"getProposalUint(int256,uint256)","33eb5564":"mid(uint256,uint256,uint256)","33eb647f":"ECNcoin()","33ee2297":"MintedGrey(address,uint256)","33eeb147":"isFrozen()","33ef5698":"setShareTradingEnabled(uint256,bool)","33f08327":"generate_paymentID(uint256)","33f1da25":"BiQToken(address,address,address,address)","33f1dfb5":"withdrawTokenByAdmin(address,uint256)","33f2da95":"test_insert_findWithHintNextUpdateTail(int256)","33f2e7f8":"takeOffer(uint256)","33f30a43":"getNarco(uint256)","33f3197e":"Bet(uint256,string)","33f327be":"FeemCoin()","33f3344c":"readQuantity(address,uint256)","33f35c40":"webdToken()","33f37304":"tTokens()","33f44026":"mintFoundingTeamTokens(address,uint256)","33f4406a":"addressCommunity()","33f472b9":"MPO()","33f50b1c":"extendICO()","33f707d1":"ownerWithdraw(uint256)","33f7c9fe":"UsersList()","33f8845d":"GetTotalRigCount()","33f88d22":"mintOwner(uint256)","33f8e8c7":"getUserTokenInfosLength()","33f9942b":"awardPoint(bytes32)","33f9b36f":"getIcoStartDate()","33fa59f0":"creationProfit()","33fb1e05":"withdrawChamp(uint256)","33fb9e35":"killSelf(uint256)","33fba1ed":"_getFightData(uint32)","33fbff32":"setSaler(address)","33fc56d9":"withdrawUnclaimed()","33fc5f47":"proposePurge(address,bytes32)","33fc6367":"updateRefundState()","33fcffa8":"Option(uint256,uint256,string,string,string,string,string,string,bytes32,address,string,address,uint256)","33fd066d":"doBalanceFor(address)","33fd40ec":"oraclize_query(string,bytes[4],uint256)","33fd9397":"buyBackPriceWei()","33fdb097":"BTSC()","33fdbbe5":"DECIMAL_FACTOR()","33ff588d":"ownerChangeRunning(bool)","3400a6dd":"crowdsale(uint256,uint256,uint256)","3400d00d":"PayTokens(address,uint256,uint256)","3401c277":"subtractAmount(address,uint256,uint256,uint256)","3402b841":"closeVoteCommitPhaseIfAllowed(address,bytes32,bytes32)","34032f4f":"teamSupply12Months()","3404ab6a":"calcEthersToTokens(uint256,uint8)","3405321d":"_setPrice(uint256,uint256)","34057a45":"rollAddress()","3405ae40":"setMaxSubscribers(uint256)","3405deed":"alwaysReverts(uint256)","34065b66":"getSmallBonus()","3406784d":"arbitrateC4FContract(uint8)","3406956a":"bountyTokenFund()","340695c0":"PRESALE_RATE()","3406e3fb":"singleTransGasCost()","340700e5":"Satochi4()","34075cbd":"proposalStatuses(uint256)","34083a28":"HoneyToken()","34085549":"buildAt(uint256,uint256,uint256)","340867a0":"setMiniPoolEdit_1(string)","3408f73a":"getStorage()","340955fc":"isNotDuplicateMembers(bytes32)","3409952b":"setStorageInterface(address)","340a247c":"getQueryCost(string)","340a773a":"LockedToken(uint256,string,string)","340adb29":"getExportingParty()","340dc485":"addEmailHash(uint256,address)","340ddda6":"MeatConversionCalculator(uint256,uint256)","340df28f":"finishUpgrade()","340e47f8":"activateStore(string,bool)","340e4fd5":"totalRequestsAmount()","340ea558":"isFavorEscrow(uint256,address)","340f4fea":"setBetExpirationBlocks(uint256)","340f5920":"winningTicketNumber(uint256)","340f5e4e":"get_all_num_levels()","340fef94":"MMMbCoinCrowdsale(uint256,uint256,uint256,address,address,address,address)","34100027":"withdrawLegalContingencyFunds()","34103ee4":"setCrowdsaleAgent(address)","3410452a":"getRequestsCount()","34106c89":"updateRenExTokens(address)","34107282":"signer1()","3410cbd5":"layersRec(uint256,uint256)","3410eb5b":"userRefundTo(address)","3410fe6e":"DIVISOR()","3411231c":"ANXToken()","341176d6":"crowdsaleManager()","34119d15":"setSellFeeBps(uint256)","3411c81c":"confirmations(uint256,address)","3411cb08":"getFreelanceAgent(address)","34122952":"build(uint256,int256,int256,uint8)","34127649":"JvaToken(address)","3412a15c":"testConnection()","3412a4ac":"setFundingEndTime(uint256)","34133df9":"TR()","341367ec":"getMaxCAP()","34140748":"_upgradeTo(address)","34145808":"totalRewardToken()","3415650e":"buyStatus()","3415bdd4":"buyAKeyWithDeposit(uint256,address,uint256)","3416f9d4":"subtractSafely(uint256,uint256)","34174331":"selfHybridization(uint256,uint256)","3417f8d3":"addHolder(address,uint256,uint256)","341855bf":"HappyBirthdayToken()","341881e6":"endPreIco()","34190567":"DebugInt(int256)","341912ad":"SOCIALXBOUNTY()","341b96c2":"WalletAddressChanged(address)","341b9cc2":"ValueToken(uint256,string,string)","341bcbc1":"endIco2()","341c3304":"presaleTokensSold()","341cc817":"preicobrandingWallet1Pct()","341ceb42":"updateAmountOfEachChoice(uint256,uint256)","341f13f2":"authorizeDeploy(address)","341f5ee2":"omsairam18()","341f6623":"toAddress(bytes32)","3422e048":"getFirstTokens()","3422ede1":"Vault(address,address,uint256,uint256,address,uint256)","3422f709":"totalSencCollected()","34231e72":"getMyTransferredWine()","342368e4":"SubFromDividends(uint256)","3423a768":"finalizePreICO(uint256)","342442bd":"lockTeamAndReserve()","342454c7":"isDigit(bytes1)","34247b9b":"changeDBAddress(address)","34253af5":"isICORunning()","34256ab2":"createQuote(uint256,bytes32,bytes32)","34265c48":"releaseTime(address)","34273351":"withdraw2(uint256)","34289460":"cleanupTo(address)","3428e7ba":"checkForNewDay()","342930aa":"peekHatch()","342b7e71":"setTokenList(address[])","342b88ba":"setIcoTier(uint256)","342ba8de":"getGen0IVs()","342bd327":"GenesisRewardPerBlock(address)","342c17cd":"finalReserveAllocation()","342ca5d6":"pricePointsLength()","342d9185":"pricePerTokenAtCurrentTier()","342d9a04":"challengeClearing(bytes32)","342e0260":"gettruelevel(address)","342e515c":"Electrium(uint256,string,uint8,string)","34302882":"ETY(address)","34302d82":"midTimeBonusLimit()","34306cb8":"placeMessage(string,bool)","34309e97":"tokensOwner()","3430f7b1":"TitleAdded(uint256,address,uint256,string,string,string,uint256)","3431024f":"disApproveUsers(address[])","3431a0be":"RegisterSeller(address,string,string,string,string)","3432000c":"kittiesContract()","343214ae":"isFundFreezePeriodEnded()","34334e9e":"removeBlacklistedUser(address)","34335c01":"getPresale2()","34354f93":"ABC()","3435dea2":"PoolJoined(uint8,uint8,uint256,uint256)","3435e5f3":"newChief(address,uint256)","3435ea80":"adduser(address,uint256)","34376542":"OwnerUpdate(address,address)","34376ca0":"authorizeBurner(address)","3438c758":"DelayedPayments(uint256,uint256,uint256)","34399ea8":"considerCurrentInterest()","3439b433":"RSPLT_E()","343a875d":"getUint8()","343a8d56":"Lucky888Token()","343aad82":"flow()","343ab4cd":"getMiningPoolAddres()","343ab68b":"getFreelancerContractsCount(address,address)","343bd7eb":"insertOwner(address)","343c018b":"GarudaToken()","343dbeb6":"isServiceRemoved(address,uint32)","343dfb7e":"referralPercent()","343efc6c":"WorthlessToken()","343f3acb":"GetAllBetIDs()","343f40a0":"testFailCreateSameItemId()","343ff8c7":"deductshares(uint256,address)","3440465e":"addElement(bytes32)","34406f33":"sha3Docs(bytes32)","344090f2":"Ownable1()","34409e38":"_generateNewSaddle(uint256,uint256,uint256,address)","3441ecf2":"Calculator()","34428440":"tokenExchangeRateMile1()","3442a868":"getBtcForkCoins()","3443c64a":"changeEEMWallet(address)","3444189b":"newKudosPoll(string,string,uint8,uint256,uint256,uint256)","34452f38":"disableMint()","3445679a":"USDto1ETH()","34457cbe":"ExponentialDecayingTokenFunction()","344605f4":"ETFloorPresale(address)","344615ab":"unSell()","3446bac4":"retirarDividendos()","34475d8d":"getERC721Addrs(uint256)","3447a7ef":"addInWhiteList(address)","3448348d":"getEventSize()","34484b47":"functionSix()","34486434":"ConsentFactory()","3448c7d6":"createHistory(bytes,address,address)","3448ec4a":"checkMatchBatch(address,uint256[16])","344929e4":"CTS(uint256,string,string)","3449387b":"GetFileLocation(bytes32)","3449f61c":"_getBonus(uint256,uint256)","344b8386":"firstYearPeriods()","344bcc7d":"signedTransferFrom(address,address,address,uint256,uint256,uint256,bytes,address)","344bcd7d":"allCrowdSaleTokens()","344c0dd5":"newChamp(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool,address)","344c5ea1":"Mino()","344c5fd6":"firstPeriodOfICO()","344cc2b8":"getAllBidsByAdunit(uint256)","344d1ef2":"getCarSelling(uint32)","344d9576":"ReinvestWallet()","344e23cf":"previligedBalanceOf(address)","344eca75":"amountRaisedICO()","345006b6":"getGenerationForCall(address)","34501134":"get_pre_kyc_bonus_denominator(address)","34516038":"getSellCount()","34523cbc":"numberOfWhitelists()","3452f51d":"push(address,uint128)","345393f0":"getOuLianPublicAddress()","34552a0a":"RegisteredContract(string,address)","34553a44":"getRequiredSubscribers()","34556035":"icoCompleteB()","345591ec":"inDistributionMode()","345607ab":"StoreProofOfUplinePaid(address,address,address,address,address,address,address,uint256)","34574ff3":"XFMSold()","345899fe":"addRoles(bytes32[],address,address)","34592491":"infoWithdraw2()","345942c8":"revealBet(address,string)","3459b1af":"SaleNew()","3459d2ba":"getTilePriceAuction()","3459fb6f":"unpack_data_groups(int256[],bool)","345a1ae4":"LASTTRIAL123()","345a3899":"Insurence()","345a4423":"win(uint8)","345a5fe4":"addRecoveryAddress(address,uint8)","345a8e5b":"uint2bytes(uint256)","345ac602":"fixAmount()","345b256a":"projectStorageVault()","345b3d3a":"newOrder(address,address,string,string,uint256,uint256,uint256)","345bc544":"maxAllowedBetInTokens()","345c8fca":"setFreezeTx(address)","345cad7e":"useItem(address,uint256,uint256)","345d116f":"LotteryRoundWinner(address,bytes4)","345da007":"setClassName(uint8,string)","345e2f91":"transferEarningsToOwner()","345e3416":"adminRetrieveDonations()","345efa4e":"CurrenseeCrowdsale(uint256,address,address)","345f342e":"concludeVoting(uint256)","345f58b2":"AcceessoryWrapper721()","34610182":"getFuelsIds()","34615bef":"_discipleVendPrice(uint256,uint256)","3461a5e8":"ARCO()","346223f5":"Cocoon(address[],address,address)","3462f32d":"execWithGasLimit(bytes32,bytes32,uint256,uint256)","3463934b":"Bqt_Token()","3463c5c7":"patentValidTime()","3463d76d":"databaseDownloadUrl()","34646163":"getDataset(address,uint256)","3464af6a":"testCopyAddress(address)","3464e4da":"grantTokensCommonPool(address,uint256)","3465d6d5":"record(address)","346692b7":"tokenKeys(uint256)","3466f07f":"DRAKE()","34686b73":"numberOfAddress()","346896c0":"getMinerLv1(address)","3468b4a8":"OxTokenInitialized(address)","3469a55b":"getDepositID(address)","3469acbb":"initCard2()","3469f6e2":"finalizeRound(uint256)","346a2f9e":"percentBank()","346a37d2":"markComplete(bytes32)","346b306a":"oraclize_query(string,string,string)","346b783c":"refundToPlayer(address)","346b7939":"icoReservedSupply()","346bfd9f":"eventBurn(address,uint256)","346c1aac":"getNextAvailableBond()","346c95df":"SuNFT()","346c96e9":"addFund(uint256)","346cabbc":"scheduleCall(address,bytes4,uint256,bytes,uint256)","346cf356":"tradeCards(address,uint256)","346e8cea":"allCarsInfo()","346f2eb7":"set_bonus_received(bool)","346f5991":"sendTokensToTeamLock(address)","346f8827":"addWineryOperation(bytes32,address,string,string,string,uint256,uint16,string)","346f9f95":"collectAddr()","346fc0dd":"maxCrowdsaleSupplyInWholeTokens()","346ff6b3":"getNumRounds()","346ffa4b":"changeValues1(bool,bool,bool,bool,bool,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","34701db8":"totalTicketsSold()","34705c2f":"validateTransferAmount(address,uint256)","3470b833":"blackListERC223(address)","34716f67":"post(string,bytes20[])","3471728a":"masterContractAddress()","3471aef0":"handbreak()","3471b034":"Submission(uint256,string,address,address,uint256,string)","34721e08":"test0Alice()","3473bf30":"setEndingTime(uint256)","3473f5e4":"HashOfDB()","34746d86":"killTokensForGPower()","347518c7":"validPurchaseTime(uint256)","34757fa9":"correctPreICOPeriod(uint256)","34758cb3":"currentEggPrice(uint256)","3475c1e7":"attemptPublishOfArticle(uint256)","34762a94":"ethHandleIsRegistered(bytes32)","347632e8":"getShareholderAdressByID(uint256)","34763586":"FoundersAndPartnersTokensIssued(address,uint256,address,uint256)","34766ecc":"PauseOff(uint8)","3476aeb0":"signer2_proposal()","34771f81":"setData_5(string)","34776c6e":"DEAToken()","347820eb":"previousUpdateTime()","34785e79":"setEthRelief(address)","34786d1d":"totalTokensToTransfer()","3478ab86":"HYToken()","3478ac2b":"createShow(uint256)","3478dc44":"getRecordOffers(bytes32)","3479101f":"setProviderSupply(uint256,uint256,uint256)","34791ae5":"POPPToken()","3479f017":"ServiceContract(uint256,uint256[],uint256[],string,uint256,uint256,uint256[],uint256[],address,address,address,address,address)","347aa903":"SDOGE(uint256,string,uint8,string)","347aba23":"evePerEth()","347acf2f":"mintingFactories(uint256)","347b3923":"putProfit()","347b5193":"LiquexPrivateInvestment(address)","347caeb4":"PhxHell(address)","347cda88":"needsBlockFinalization()","347d5bc2":"setPayoutOdds(uint256)","347e26c0":"icoEtherContributed(address)","347f5f00":"TokenPurchase(address,uint256,uint256,uint256)","347f8f54":"_setDiscount(uint256,uint256)","347ff187":"changeAirAmount(uint256)","34805e7c":"targetBlockNumber(uint256)","34809ee7":"doge()","34810336":"discountEndTime()","34814e58":"transferBalanceWithFee(address,address,address,uint256,uint256,address)","34825a23":"playGame(uint256,uint256)","3482e0c9":"cancelAuthorization(address,address)","34831b79":"VENSale()","34833a6d":"icoBalanceOf(address,address)","34835560":"innerlockStartTime()","348378d0":"Whitelisted(address,uint256,uint256,uint32)","348508cf":"thirdDueDate()","34854101":"ETH_TO_WEI()","3486645f":"forkReceive(address,uint256)","3486fb30":"mintLockPeriodBatch(address[],uint256[],uint256)","3487d97c":"setPriceCredentialItemId(bytes32,bytes32)","348a653a":"CONFIG_DURATION()","348b1b7d":"temperatureMin()","348be311":"LogBidOpened(uint256,address,uint256,bytes32,uint256,uint256,uint256,bytes32)","348e9779":"Restart(uint256)","349136af":"BonusScheme()","3491a19d":"TokenDemo(string,string,uint8,uint256)","3491d0f1":"processTransactionFee(address,uint256)","349221be":"ColorCoin(address,address)","349296a5":"SaleAuction()","3493075e":"getLevelCitizenLength(uint256)","3494ab3d":"validEAContract(uint32,address)","3494f222":"issueSuperMetal(address,uint256)","3495015a":"UnlimitedIPToken()","349501b7":"checkDepth(uint256)","34950dcf":"approvedSubmissions(uint256)","34954a99":"updateBalance(address,address,uint256)","34955a2b":"setTavernContract(address)","3495b21e":"setNewReleaseEndTime(address,uint256,uint256)","349718ed":"MarketCoin()","34971dd6":"totalEtherCap()","34984add":"signedTransferFrom(address,address,address,uint256,uint256,uint256,bytes32,address)","34988b95":"ExToke()","3498aaaf":"LogAllowedFromAddress(address,bool)","3498b00f":"getSectionIndexFromIdentifier(uint256,uint256)","3498c518":"StageClosed(uint256)","349a1f03":"getNumSums()","349a373b":"batchcreatevillage(uint256)","349a6edb":"_purchaseTokens(uint256,address)","349aa97e":"ethereumToTokens2_(uint256)","349ab992":"divCutAdmin()","349ae23b":"collectFor(address)","349b586c":"isCrowdsaleFinalized()","349b6486":"revokeGrant(address,uint256)","349c1ee3":"enableCrowdsale()","349c3d75":"changeSaleBonusRate(uint256,uint8)","349c870c":"initChainLedger(address,address)","349ca600":"Tags()","349cdcac":"reLoadXid(uint256,uint256,uint256)","349d1661":"BuyToken(address,uint256,bytes32)","349d3dc5":"breedTimeout()","349d8b4e":"communityMultisig()","349dc329":"miner()","349eb329":"jsonCat(string,string)","349f7173":"lastOraclePrice()","349f939a":"SaleEnded(address,uint256)","349fcf85":"UpdateAddressPayForService(address,address)","349fdb09":"setUnPaused()","34a014dc":"lastWithdrawalTime()","34a042d8":"bountyPoolAddress()","34a2b766":"getMarketData(address,address)","34a3312e":"setStore(string,address,address)","34a3b820":"getNewFallbackDepositPeriod()","34a4a527":"getCountHolders()","34a4b10b":"allocatetokensAndWL(address,uint256,uint256)","34a503e8":"_utfStringLength(string)","34a5eaa9":"_createPerson(string,address,uint256)","34a6074e":"buyWithBalance()","34a6301e":"setmessager(string)","34a6d832":"canPurchase()","34a6e514":"updateTaskState(string,string)","34a7ed17":"wikiAddTokenTo(address,uint256)","34a814a3":"setMyEthBalance(address,uint256)","34a8c392":"webSite()","34a8eb53":"getarg_1_input()","34a8f866":"setMatured(uint32)","34a90d02":"lockAddress(address)","34a9918e":"DEWCOIN()","34a991db":"enableManager(address,bool)","34a9a1ae":"getTokenDefaultPartitions()","34a9bb34":"getCurrentPublicBracket()","34aa0e7f":"dividendRegistration()","34aa982a":"getInfoForDisputeAndValidate(bytes32,address,address,address)","34ab32e1":"minerTotalYears()","34ab8256":"RUDAWORLD()","34abd1b1":"updateMaxPhase3(uint256)","34ac6f5e":"AVAILABLE_FOUNDER_SUPPLY()","34acc716":"projectDone()","34ad1e53":"giveBalance(uint256,uint256,uint256)","34ad324c":"sendToOwners(uint256)","34ad6f00":"TimePassBy(string,uint256)","34ae6984":"view66()","34aeefd5":"RemovePlayer(address)","34af370f":"lockTime(address,uint256)","34b0e5ed":"icoPrice()","34b122cb":"addTokensToReturn(address,address,uint256,bool)","34b20591":"createERC20Token(uint256,string,uint8,string)","34b3ae71":"_distribute()","34b3b014":"resolveSupply()","34b4eef2":"setStartIcoPreICO2ndRound(uint256)","34b55235":"registerAffiliate(address,string)","34b63592":"addre(address)","34b73591":"DevMiningRewardTransfer(address,address,uint256)","34b768c7":"summonHero(address,uint8,int256)","34b7ac9b":"END_MINTING()","34b88e04":"claimCoreTokens(address,uint256)","34b8b690":"Yuri()","34b98747":"onlyOwnerGetTeamWallet()","34bafed3":"date_string(int8,int8,int16)","34bb1a9e":"founderTimeLock()","34bb3ee1":"updateEthICOVariables(uint256,uint256)","34bb447f":"getDiceWinAmount(uint256,uint256,bool)","34bbabbd":"RaffleTshirt(string,uint256)","34bc5156":"Crowdsale(uint256,address)","34bc98b7":"latestPing(uint256)","34bd08c4":"getLargeAmountBonus(uint256)","34bdcd0a":"getLedgerValue(string,address,address)","34bdea85":"setICO2Phase()","34bdf2c4":"setReference(address)","34be5fab":"mintParcelTokens(address,uint256)","34beb204":"ZZC(uint256,string,string)","34bed16c":"bountyRefund(address,uint256)","34bf97ea":"setBonuses(uint256[])","34c05ca8":"modifyMetadataHashes(uint256,bytes32,bytes32,bytes32[],bytes)","34c0c9c6":"RemoveApprovedAddress(address,address)","34c0d654":"setPackageDb(address)","34c19b93":"getCallGracePeriod(bytes32)","34c1b4ba":"sha(bytes)","34c1ef77":"publicSaleTokensAvailable()","34c2904b":"giveDividend(uint64)","34c2b620":"getNickname(uint256)","34c31392":"breakParentsHaveGreaterPriority(uint256,address)","34c3236a":"signatureDropSingleAmount(address[],uint256)","34c39d1c":"ThreeDLTokenDeposit()","34c42106":"BOXT()","34c5c059":"addEtherToSphere()","34c6766f":"getImportingAuthority()","34c6a9ae":"getTokenTimelockDetails(address,uint256)","34c721a9":"getExploreResult(uint256,uint256)","34c73884":"Mint()","34c757cf":"NBAT102(address,address,address,address,address)","34c7b8e8":"getReadMessages(address)","34c7dcf8":"proposedUserKey()","34c8e114":"reservedDestinations()","34c8ea26":"SetupiBird(string,string,uint256,uint256,uint256,address,address,uint256)","34caa999":"setMinimumFundingAmount(uint256)","34cac67e":"investorsArray(uint256)","34cad6b8":"retreiveTokens()","34cad836":"coinsaleDeadline()","34cbbef9":"EndRateChange(uint256)","34cc182b":"updateDiamond(string,string,uint256)","34cc4b8f":"ratePerWeiInPrivateSale()","34cdb15f":"addressToTimestamps(address,uint256)","34cdf78d":"blockHashes(uint256)","34cec84d":"maxCapCompanyInventory()","34d05b1f":"freezeDeliver(address,uint256,uint256,uint256,uint256)","34d09ff1":"DemoraCash()","34d0cb6d":"CNYToken()","34d2485c":"tribeTokens(address)","34d24bff":"no(uint256,string,uint256)","34d2c4cb":"mintProxyWithoutCap(address,uint256)","34d31de3":"length(uint8)","34d33f9f":"kycRefuse(address)","34d40382":"nextSection(bytes32)","34d4776b":"removeApprovalStatus(address)","34d4cd82":"getTokenForTeam(address,uint256)","34d55cd9":"SerpentCountDown()","34d56b0a":"Currentproposal()","34d5751a":"approveContractCall(address)","34d5f37b":"round(uint256)","34d5fc4b":"transferInitialAllocationWithTimedLock(address,uint256,uint256)","34d609ac":"auditorHasStaked(uint256,address)","34d64e50":"getDoneAirdropAmount(address)","34d71238":"sencBalance()","34d722c9":"minterAddress()","34d83dab":"PhaseICO()","34d8521b":"quarterlyWithdrawable()","34d8c24d":"init(uint256,uint256,address,address,address,address,uint256,uint256,address,uint256,uint256,bool,bool)","34d92490":"changeFuckyou()","34d95bf0":"ShitCloneslordAddress()","34d9aee3":"assertEq7(bytes7,bytes7)","34dbe44d":"getLastBlockNumberUsed()","34dc2176":"inventoryProduct(bytes32)","34dc3c32":"pricePerWei()","34dc864c":"YYYToken()","34dcfec4":"minimalETH()","34df4222":"hasBeenLinked(uint32,int256)","34df8b63":"PER_USER_MAX_AVATAR_COUNT()","34df9b60":"getCow(uint256)","34e19907":"setSwapFee(uint256)","34e1ad21":"EmontFrenzyTool(address)","34e22921":"Call()","34e23416":"lastcombo()","34e24640":"distr(address,uint256)","34e24853":"encode(address)","34e255a4":"WTechTestCoin()","34e415db":"growWeed(uint256)","34e41bbf":"RATE_DAY_1()","34e4c06d":"maxSupplyGenerable()","34e5a5f8":"getPlayerInfoWithRoundID(uint256)","34e5a692":"distribute(uint128)","34e5e97a":"assignProduct(uint256,uint256,uint256,uint256)","34e70cc2":"tub()","34e73122":"calculateFee(uint256,uint256)","34e73f6c":"getAuctionCost(bytes32,uint256)","34e7a57a":"nonWLBalanceOf(address)","34e80c34":"getKeys(address)","34e8980f":"bootUpHangouts()","34e8c679":"retrieveTokens(address,uint256)","34e8ecea":"FindTheCureCoin()","34e8f247":"setStartTimeIcoStage3(uint256)","34e98037":"batchAssignment(address[],uint256[])","34e9d146":"EstateToken(uint256)","34ea5fe5":"setNumeratorDenominator(uint256,uint256)","34eaa923":"moveEther(address,uint256)","34eac76f":"withdrawalDeployed()","34eaf154":"investorAmount(address)","34eafb11":"totalCount()","34eb0cf5":"isUserBlacklisted()","34eb3200":"setRequiredProgressOfPreviousDungeon(uint32)","34ebb615":"maxTokenToBuy()","34ec514b":"setInitialPrize()","34ec96bf":"dAddCategory(bytes32,bytes32,bool,uint256)","34ed557f":"setTokenIpfsHash(address,bytes32)","34eea4a2":"executeRoom(uint256)","34ef39f1":"owner_withdraw()","34ef801e":"wcOnCrowdsaleSuccess()","34efcb8e":"getPlanet(uint256)","34f00e83":"setCrowdsaleStart()","34f03321":"PCM(uint256)","34f0e39e":"addCurator(address)","34f10c39":"chkcan(address,uint256,uint256)","34f1f9b1":"lbToken()","34f20f31":"setExchangeRateAuth(address)","34f245c2":"hasSecondUnionIds(bytes32,bytes32)","34f25146":"numOfReleased()","34f2d1ec":"scheduleUnsoldAllocation()","34f361a4":"bonusSecondWeek()","34f50813":"PreICOToken(address)","34f64dfd":"bobMakesErc20Payment(bytes32,uint256,address,bytes20,address)","34f682e2":"GetPriceOfRigs(uint256,uint256,uint256)","34f6bef3":"allTokensDecimalsBalances()","34f6d0b3":"Congress(address)","34f732e8":"withdrawalLockTime()","34f8cc6d":"DrAgentToken()","34f9445e":"consumeEnergy(address,uint256)","34f96971":"lockedBalanceCount()","34fa0606":"getControlInfoTokenlist()","34fa17cb":"getTeamBet(string)","34fa37da":"grantTokens()","34fb032e":"getAddr(string,string)","34fb11ed":"setMintingFeeEnabled(bool)","34fc2591":"toggleFreeze()","34fc62ff":"_badgeOwnerChange(uint256,address)","34fcc3e7":"getBetting(uint256,address)","34fcf437":"setRate(uint256)","34fe00b1":"getDocumentMajorities()","34fe0cf5":"payFee(address,address,address,bytes32,address,address,bool)","34fe5473":"largestDonation()","34fec467":"transferAllowed()","34fee3e4":"AuctionSuccessful(uint256,uint256,address,uint256)","34ff37f3":"returnLongCouponAmount(address[3],bytes32,uint256)","34ffea2c":"token_iso_price()","35001a1a":"internalMint(address,uint256)","350078b8":"staticblock()","3500a48d":"transferCommunityCommune(uint256,address)","35013592":"getStageCap(uint256)","35020cb9":"getReferenceType(bytes32)","35021991":"PresaleStarted(uint256)","350279c6":"getStage3Cap()","3502be27":"TaxTillNow(uint256,uint256)","35039525":"isBarCode(bytes32)","350460f8":"basicTokensPerEth()","35046722":"getAddressBalance(address)","350486da":"AgiCrowdsaleMock(address,address,uint256,uint256,uint256,uint256,uint256)","35058a2a":"approveOperatorTo(address,address,bool)","3505e844":"userExists(address,address)","350604f1":"rakesOwing(address)","3506b32c":"FailedTransfer(address,uint256)","35082933":"setAdminWallet(address)","350845f5":"maxStage3AllocationPerInvestor()","35085b58":"weekThreeStart()","350896f7":"setEtherPriceManually(uint256)","3508eddb":"AnkitToken()","3508f2e8":"Monday(uint256,string,string)","350a6429":"minAmountETH()","350b4c6f":"setWLMTBounce(uint256)","350b4cb6":"BaseAirdrop(address,address)","350bb144":"createContractGirl(string)","350c0acf":"checkWithrawStock(address)","350c35e9":"withdrawCollateral(address,uint256)","350cf91c":"createManufacturer(address,address,string,string)","350d141e":"getWasApprovedBeforeDeadline()","350d9b96":"walletWithdraw(uint256)","350dbcc5":"get_Sponsors_list_by_Job(uint256)","350dd4a4":"Nettekcoin()","350ee628":"addVerifiedInfo(address,address,string,uint8,string,string)","350f4270":"specificTransfer(address,uint256)","350f9e01":"swypes()","350fbe2e":"calcNextDrawTime()","35100acc":"credit_token(address[],uint256)","35101d8e":"balancesForOutcome(uint8,address)","35105e3b":"executeChildDaoProposal()","35109cc6":"PRE_SALE_TOTAL_TOKENS()","3510b66c":"reduceTotalSupply(uint256)","3511c1af":"getMySnake()","3511ca9c":"Freezing(address,uint256,uint256)","351210b3":"BpxToken()","35126330":"GanaTokenLocker(address,address)","35130678":"additionalPreMine(uint256)","351314a5":"oIDIndex_()","3513651c":"Spin(address,int256,uint256)","35139014":"preICOstart()","3513cab2":"getWeeklyBuyVolume()","3513d339":"ForceSendTokens(address)","351509a8":"TEAM_ADDRESS()","3515519c":"getInitialval()","3516df21":"supplyBurn(uint256)","3517a740":"getNodeParent(bytes)","35181711":"SetStartTimeIco(uint256)","3519786f":"setAvailableFlat()","35197d6b":"sendData(address,uint256,uint256,bytes)","3519932e":"authorized_recordStashedPayout(uint256)","3519a2f8":"fundContract(uint256)","351a97f8":"accountKind(address)","351adcb0":"SocialPay()","351b68db":"SWAP_LENGTH()","351be6ad":"releaseProduct(address)","351bf518":"transferFeeRate()","351c2576":"completeFavor()","351c9133":"userkeys_push(address,uint64,uint64,uint64)","351dadf4":"support_ban_of(address)","351e46de":"setBLInterface(address)","351f42c3":"msgs(address,uint256)","351f98d9":"icnq()","35209715":"burritoPoolTotal()","35209821":"metadataContract()","35213a69":"abandonedFundWithdrawal()","35216bba":"enableTokenTransfer(bool)","3521d7da":"prvd()","3522e868":"changeLogicContractAddress(address)","35259f1a":"ThriveToken()","3525d66d":"CanvasFrag()","35269662":"importerBanker()","3527cae0":"_deleteUint(bytes32)","3528351d":"bouleDevMultisig()","3528a0c8":"GlobalTransfersLocked(bool)","3528c022":"days_interval()","3528f564":"allowancePerYear()","352a482f":"havedDistFoundCoin()","352a950c":"updateCnyBtcRate(uint256)","352bbdff":"referralContracts(address)","352c93b7":"getFess()","352d2790":"UUID4()","352d5cd0":"setPhaseSupply(uint256,uint256)","352e0891":"_isValidSignatureAndMethod(address,bytes)","352e1dff":"getWorkflowActivity(uint256,uint256)","352f43a8":"RongWQToken(uint256,string,uint8,string)","352f64f9":"getOwnerFee(uint256)","352fd696":"PERCENTAGE_OF_TOKENS_SOLD_IN_SALE()","352ff2bd":"setPreSaleRate(uint256)","352ffb9a":"Trident()","35300990":"propExists(bytes32)","353086e2":"MAX_BET_VALUE()","3530e895":"getClaimEst(address)","3531f0de":"LogWeiWithdrawn(address,uint256)","35347560":"getLamboAttributes(uint256)","35353b03":"parseAndRound(string,uint8)","353559cb":"Controller_Address3()","35359a3f":"tokenHolderAddress()","3535ab2a":"btcUsdRate()","3535cd52":"setDailyCosts(uint256)","3536046a":"getUInt(string)","35361909":"withdrawStart()","35371218":"closePositionDirectly(bytes32,uint256,address)","3538b13a":"MAX_TOKENS_FOUNDERS()","3538b9db":"test_twoValidEqBytes32()","35390714":"maximumFee()","353928d8":"helpRed()","35393197":"setReferer(address)","35396c1c":"createItem(uint256,uint256,uint256,uint256,uint256,uint256)","3539c468":"remainingTokenAmount()","353a3475":"setTargetAddress(address,address)","353ba8e9":"vvc(uint256,string,string)","353be218":"ToorToken()","353c0573":"burnInternal(address,uint256)","353d90ec":"numTickets()","353db436":"setCosts(uint128[])","353e65e9":"wallets(address,uint256)","353edf58":"presaleEndtime()","353f0e40":"getCurrGameInfoPart1()","353f1bc7":"setIsAllocatingInterest(bool)","353fe553":"BNDToken()","35400daf":"setTier2Participants(address[])","3540233b":"set_status_user(address,address,bool)","3540b529":"readIncUpdatedOn(string)","3540e96c":"tokenOWL()","35410f85":"KPCoin()","3541d365":"GPUMining()","3541fd53":"setStake(bytes32,uint256)","3541fe94":"teamVestingAddress()","354211c9":"TriwerToken()","35423643":"totalmoneyearned()","354271b4":"test_7_accessRestriction_UnderscoreRemoveMember_shouldThrow()","3542758f":"addOwner(address,string)","354284f2":"party()","3542aee2":"mintByOwner(address,uint256)","3542d0f6":"msgQPut(string)","35436725":"CoinMovement(address,address,int64)","3543b23c":"assign(address,string)","35446c78":"setAirDropPayableTag(bool,uint256)","3544a864":"whiteList()","354537da":"safeCloseSale()","3545acb0":"after_test_1_method()","354685fb":"setSellDividendPercent(uint256)","35468963":"rentModified(address,uint256,uint256)","354709dd":"trade(address,address,uint256,uint256,uint256,address,uint256)","3547800a":"lockTokens(address[],uint256[])","354836b9":"setIsReportingActive(bool)","3548fcd7":"getCardAttrs(uint256[])","35490ee9":"setPublicOfferPrice(uint256,uint256)","3549345e":"setPresalePrice(uint256)","35493e98":"icoEtherReceivedPreSecondSale()","35496d82":"POWHclone()","354a5137":"setWinnerTimeStatus(bool)","354b2735":"testDeploy()","354b7b1d":"updateVerified(address,bytes32)","354d68f2":"validate(address,address,bytes32,address,uint256,bytes32,address,uint256,bytes32,uint256,uint256)","354d7e40":"Payout()","354d89ee":"setTokenSaleContract(address)","354e1063":"setExtraConfig(uint256,uint256)","354e6ca7":"HippieCoinv2()","354eb40b":"emojisan()","354f1651":"completeBountyDistribution()","354f6398":"insert_candidate(string,uint8,string,string,string,string)","35509937":"changeWithdrawal(address,address)","3550b6d9":"getTokenAddressBySymbol(string)","3550e2e2":"changeBlockedTimeForBountyTokens(uint256)","3551a6ca":"nullifyFrom(address)","3551c8b9":"tokenesia()","355255f5":"totalSyndicateShares()","35527354":"submitNewHash(bytes32,uint256,uint256)","355274ea":"cap()","3552f552":"_random(uint256,uint256,uint256)","3552f9f6":"GetBetReadyTime()","3553f60d":"getPoolAdmin(uint256)","355421a8":"create(uint256,uint256,uint256,address,address)","355473d0":"setuped()","355474d2":"commitReading(address)","35548c02":"WINNERTAX_PRECENT()","35552dbc":"transferDSPRecord(address,address)","35554e58":"SearchUserPurchase(address,string)","3555fa90":"contractSpend(address,uint256)","35566ff0":"rewardSources(uint256)","3556afd8":"m_exchangeRate()","355784cb":"settleToken(bytes32,address,uint256,uint256)","35579f0c":"withdraw_token(address,address,uint256)","3557c1f6":"labAddress()","3557c70a":"removeMintingFactory(address)","3557d0e9":"testThrowIfNotExist()","35593bcf":"vestedAmountAvailable()","35595c95":"getSkillName(uint256)","355ae09c":"Fluzcoin()","355ba211":"emergencyOverwrite(bytes32,uint8,uint8)","355c6457":"tryToRecord(address,uint256)","355d59aa":"publicTokensAvailable()","355d7d03":"batchAllocate(address[],uint256[],uint256[])","355d7e05":"withdrawByMint(address,uint256)","355d8c64":"Uptrennd()","355dd1b3":"Donate_LuGoddess()","355e0c5d":"tokenUri()","355e1b84":"Mstcoin()","355e56b9":"Assembly(address)","355e6b43":"setCommission(uint256)","355eb2c0":"canWrite(string,address)","355f41a9":"pay(uint256,uint256,address,bytes)","355f51a0":"right49(uint256)","355f7ea7":"canUpdateNextGameMinAndMaxBlockUntilGameEnd()","355fd8db":"thirdTimeLine()","35603440":"sections(uint256)","3560f05e":"AsX()","356282db":"changeMinBidMultiplier(uint256)","3562a1db":"CoderForge()","3562fd20":"setUIntValue(bytes32,uint256)","35639e11":"updateMinGasPriceForDrawing(uint32)","356442b9":"lockPercentage()","356594ab":"EtherTransfer()","35671214":"prev(uint256)","3567950c":"blockchainExchange(uint256,uint256,bytes32)","3567d5ef":"BuyGoods(address,uint32)","3567d637":"getTransactionListLength()","3568bd39":"mintStart2()","3568fb04":"createUint256(bytes32,uint256)","356c22ec":"teamOne()","356ca551":"ZhkCoin(uint256,string,uint8,string)","356d414c":"transferFrom(address,address,address,uint256,uint256,bool,bool)","356d4a3a":"createJaroSleep(address,uint256)","356d6b24":"fifthBonusSalesEnds()","356e2927":"icoFinished()","356e7e9d":"mintToAccount(address,uint256)","356eeaab":"payAndReset()","356f056f":"releaseTime3()","356f083e":"_bytes32ToString(bytes32,bytes32)","356f55b7":"adminDropETH()","356f8964":"transferMed(address,uint256)","356f9865":"tokenPerWei()","356fefb3":"developer_edit_text_crowdsale(string,string)","357006c4":"Propellerhead()","3570c2ee":"PosRewards()","3570f217":"CarbonTOKEN()","3571e567":"PausableCappedDividendToken(uint256)","3572a28e":"EPT()","35734ba5":"ExternalSale(uint8,string,address,uint256,uint256)","35735226":"returnBonus()","3573df50":"CreateMND(address,uint256)","357401f5":"cancelBet(uint256)","35743ac9":"proposalActive(uint256)","3574da8c":"deployShop(address)","35759333":"checkList(uint256,address)","3575ecc6":"BreakbitsToken()","35765828":"addSystemUserEarnings(uint256)","3576a32f":"setBackupOwner(address)","3577d94e":"loanTerm()","35785e09":"sweepsState()","3578abf4":"QuintessenceToken()","3578b7b3":"setBuyPrice(uint256,string)","3578bb7f":"calculateScore(uint8[])","35796635":"numEndedGames()","3579c0df":"newAward()","357a0333":"initWithdrawal(address,uint256)","357a05cd":"cram(address,uint256,string)","357a05f1":"Crowdsale(address,address,address,address)","357a0ba2":"sgt()","357af806":"Restart()","357bd7d6":"ROHH()","357be177":"DemSoKhoaHoc()","357d0173":"removeArbiter(address,uint256)","357d4d1a":"ICloudSecAddress()","357ee486":"createDonationsBank()","357fe12a":"createPromoMonsterWithTokenId(uint32,bytes,address,uint256)","3580031a":"consumesGas()","358049ea":"setDiscountTime(uint64)","35804a88":"returnBook(uint256,address,address)","35815b95":"FACTOR()","35817773":"getContract(string)","3581b257":"_addDividendsForAddress(address,address)","35828c8d":"TransactionInitiated(uint256,address,address,address,address,address,uint256,bytes32)","358373bd":"withdrawalInterCrypto(string,string)","35842f74":"depositDai(uint256)","358455b4":"testDefaultWallet()","3584fa38":"setDelegate(uint8,address)","358507d7":"claimRefundOnUnsuccessfulEvent()","3585609b":"getJobCanCancelAfter(bytes16,address,address,uint256,uint256)","358564ee":"allocateLoyaltySpend(uint256)","358592ce":"_freeze(address,bool)","3585e500":"nTransfers()","35862824":"isIcoOpen()","35866368":"transferFromWithCustomReservingNet(address,address,uint256,uint256)","35875623":"get_list_deposit_key(address)","35876476":"initialize(address,address,address,address,address,address,address)","3587904b":"limitOfTeam()","3587b26c":"setAutoBuy(uint256)","3588aa0b":"BMV()","358a074c":"admin_isRequireData(bool)","358a08cb":"activate(address,uint256,address,uint256,uint256,uint256,bool,bool)","358a11b4":"change_data(string)","358a18b2":"ThePatriotCoin()","358a2a84":"toHorse(uint256)","358c24b1":"CONFIG_MIN_PLAYERS()","358cc6f6":"acceptKyc(address)","358cfa25":"setTotalEtherPool(uint256,uint8,bool)","358d1e26":"HitToken(string,string,uint8,uint256,address,address)","358d5dc2":"getIsCashed(uint256,uint256)","358dff07":"minEthPerTransaction()","358f7f3a":"numberRange()","358fa6c6":"calcBuyout(uint256)","358fcee9":"fetchdivs(address)","358ffd79":"Controller(address,address,uint256)","3590699d":"_newSchellingRoundEvent(uint256,uint256)","359170e6":"setTransfersEnabled()","3591a1a9":"canDrip(address,address)","3591f5bd":"removeSomeDETsFrom(address,uint256)","3591fadc":"STAGE_2_FINISH()","3592336c":"getRetailerStatus(address,address)","3592c3b5":"uintToString(uint256,uint256)","3592dfea":"updatePackage(uint256,string,address)","3592f369":"disableTokenSwapLock()","35930e13":"setMinimalRewardedBalance(uint256)","359320de":"getCurrentVelocity()","35953108":"removeAddressesFromWhitelist(address[],string)","359531f4":"allowCnsContracts(bytes32,address,bytes32)","35956083":"Parabola()","35956c42":"ABCPresale(uint256,uint256,address,address)","35958196":"getGamesPool(uint256[])","359582ca":"downstream()","3595b570":"copyBalance(address)","35960028":"payMeFor(uint16)","359627e5":"canPay(address,uint256)","35967501":"setManualOverride(bool)","35972f46":"techAccount()","35975a37":"setStart()","3597727c":"EtherDLT()","359803cd":"pauseMinting(bool)","359819cc":"Group(address,bytes32,address[])","359829db":"numOfBackers()","3598ac34":"Cider()","35995022":"getPhaseCount(uint256)","359976a7":"getCheckSum(bytes20)","359ae0f3":"set_Shops(address[],address[])","359bc19e":"finalize(uint64)","359c1912":"setUintF1(uint256)","359c1f72":"getGravatar(address)","359c8a93":"claimD()","359cc28e":"changeIcoDeadLine(uint256)","359cf2b7":"requestTokens()","359d04a2":"voteRuling(uint256,bool)","359d393d":"votes_against()","359d9277":"XXXXXXXX01(address,uint256)","359db8c8":"partialDistributeDivident(uint256,address[],address)","359dbafe":"validatorWrotePart(uint256,address)","359ef75b":"init(address,address,address,address,address)","359f517e":"confirmWithdrawal()","359fe132":"getSharesByShareOwner(address)","359fe780":"increaseMintApproval(address,uint256)","35a063b4":"abort()","35a07291":"makeAssessment(uint256,uint256,uint256,uint256)","35a1529b":"dripAmount()","35a1bf6e":"test_insert_findWithHintNextRemovedUpdateTail(int256)","35a1d95d":"requestSnapshots(uint256)","35a21728":"multiERC20Transfer(address,address[],uint256[])","35a23659":"miningTimePerTrip()","35a26787":"AuthAddr(address,address,address)","35a374dc":"issueLottery(uint8)","35a3a96f":"marketingRecipient()","35a3cfa0":"transferMarketallocationTokens(address,uint256)","35a3e83c":"getCurrencyDecimals(uint256)","35a3fbb0":"_triggerStashedPayoutTransfer(uint256)","35a4015d":"numberOfBudgetPlan()","35a49063":"personalityTypes()","35a4fa30":"createPromoWhale(address,string,uint256)","35a53379":"_increaseWinPotChance()","35a568b9":"setLockPostion(address,uint256,uint256,uint256)","35a5c43a":"get_FTVTOKEN_EURCENT(uint256)","35a5e06d":"getRoots()","35a5e8bf":"SectorUpdated(uint16,address,string,string,string,bool)","35a66ef8":"arrayOfAccountsThatHaveClaimed()","35a6861a":"login(address)","35a6c1e0":"totalPausedSeconds()","35a6ed92":"calculateBonusAmount(address,uint256,bytes32)","35a8076b":"Accounts(address,address)","35a951b8":"endTime(bytes32)","35a9731b":"approveRefund()","35a9a5c7":"setWithdrawAccount(address)","35a9c82f":"setSecret(bytes32)","35a9d051":"ETH_address()","35aa6bec":"checkExpectedTokens(uint256[],uint256)","35aa6c31":"getMoney(address,uint256)","35acac4e":"abort(string)","35acbcab":"makeStudentID(bytes)","35ad84f9":"buyFromValue(uint8)","35ad9581":"saleRateSecondDay()","35adc0c5":"sellerCancel(bytes16,address,address,uint256,uint16)","35ae20bb":"AddEthBalance(address,uint256)","35ae41c9":"godAutomaticCollectFee()","35aed70f":"getNumAnimalsXPlayerXType(address,uint8)","35af1986":"div27(uint256,uint256)","35af2c4f":"unsetIdentity(uint256,address,address)","35af5a9c":"MOTCToken(uint256,string,string)","35b05d1e":"purchaseRequest(uint256,uint256)","35b09a6e":"someFunction()","35b1097e":"communityTokensHolder()","35b1114a":"REQUEST_CANCELED_BY_BORROWER_STATUS()","35b11b72":"setColors(uint16,uint256[5],uint256)","35b21ceb":"totalChildTokens(uint256,address)","35b28153":"addAuthorization(address)","35b3caf0":"cancelOrderWithPayerByAdmin(string,address)","35b3ee0e":"NGA()","35b46459":"distribute(uint256,address[],uint256[],uint256)","35b4a6d9":"updateBTCPrice()","35b4a93e":"HSDJCoin()","35b55d98":"SUBSCRIPTION_MODULE()","35b643d4":"getBalanceTimestamp(uint256)","35b6a6c6":"tokensForAdvisors()","35b6cc03":"RankingBallGoldCrowdsale(bytes32[5])","35b6df5d":"BurnableCrowdsaleToken(string,string,uint256,uint256)","35b6eaea":"isPayed(address)","35b75391":"test_validProposalExecution()","35b7588f":"allowedMinting()","35b8e820":"getCandidate(uint256)","35b94b5d":"MIOTToken(uint256,string,string)","35ba1d0a":"closeOnBehalfOf(address,address,bytes32,uint256)","35ba66de":"ACATokenSale(address,address,uint256,uint256,uint256)","35ba9af8":"availableForWithdrawal()","35bb0398":"didSign(address,bytes32,uint8,bytes32,bytes32,uint8)","35bb3e16":"grantAdmin(address)","35bb5fd2":"isToonInterface()","35bbe70e":"getAllVoters()","35bce6e4":"transferMulti(address[],uint256[])","35bd8b94":"Noblebit(uint256,uint256)","35be7bf3":"getSecondRoundReleaseTime()","35bf82f6":"setChallengeFee(uint256)","35bf90ca":"getContributorByNumber(uint256)","35bfe158":"changeGoldIssueBurnFeeContract(address)","35c019e2":"LogFundTransfer(address,uint256)","35c05ab0":"hodlFor3y()","35c1d349":"participants(uint256)","35c23200":"computeNextPrice(uint256)","35c2d49d":"minInvestETH()","35c40fe3":"testParamOutOfBoundsFail()","35c42d7f":"getPetByIndex(address,uint256)","35c4de7a":"OracleRequest(address)","35c5b475":"getExpectedReturn()","35c648c5":"POMDA()","35c6511b":"endMiniGame()","35c699c4":"getUnclaimedEtherIfAny(uint256)","35c72df0":"bryan()","35c7421b":"testMinReturn32WithReturn()","35c77e6f":"configurer()","35c80c8c":"isCustodian(address)","35c8518b":"setCloseBlock(uint256)","35c914c2":"finishPayaning()","35c969ea":"Presale(address,address,address,uint256,uint256,uint256,uint256)","35c990d4":"getGameCalculationProgress(uint256)","35ca8ce1":"setPriceToRegSale()","35caecc3":"getPeriod(uint256,uint256)","35caf648":"DonationMatched(address,uint256)","35cb1f07":"wethDeposit()","35cb27b5":"minedToken(uint16)","35cbdc25":"AcceptsProofofHumanity(address)","35cbe716":"getRemainingAirdropSurplusAddressesLength()","35cc2d80":"isInState()","35cc59a9":"createSchema(bytes)","35cd2358":"setAffiliation(address,uint256)","35cd4cc4":"getLastKicker()","35cd78b3":"saveMetaData(address,bytes32,bytes32,bytes32,bytes,uint32,uint256,uint256,bytes,uint256)","35cf60df":"enableFreezePriceRateRecalc(uint256)","35d0b444":"LogRedeemToken(address,uint256)","35d129f6":"untag(string)","35d13969":"SendAllMoney()","35d1f606":"destroyCard(uint256)","35d1f869":"setAtomOwner(uint256,address)","35d357ac":"logCeiling(int256,uint8)","35d37dbb":"mgmtFeePercentage()","35d4a49a":"setSubFreezingPrice(uint256)","35d65132":"canClaimPayout(address)","35d6d214":"getBids(uint256[])","35d6d611":"DAY_LENGTH()","35d79fad":"CertificationDb(address,uint256,address)","35d7a052":"freeze(uint256,uint256)","35d7d09a":"next_diary_id()","35d7f149":"takeBuyOrder(address[3],uint256[3],uint256,uint8,bytes32,bytes32)","35d82d16":"setGeneralInfo(bool)","35d91b85":"cancelOrder_(address[7],uint256[7],uint8,uint8,uint8,bytes,bytes,bytes,uint8,bytes32,bytes32)","35d94797":"verifyBetMask(uint256)","35d97405":"dividends()","35d99f35":"masterMinter()","35d9ba1f":"getTill()","35d9ceee":"uintMax()","35da3c1a":"createNewGalaxy(string,uint256)","35daa731":"ordersCount()","35db2829":"sendStableReward(address,address,uint256,uint256)","35db2b72":"Winchain()","35de5e89":"setPixelBlockPrices(uint256[],uint256[],uint256[])","35de74b8":"PBC()","35decc5f":"updateTargetToken(address,uint256)","35dfcc92":"totalCastle()","35dffde5":"updateReleaseAmount(uint256)","35e04fab":"prePayment()","35e09095":"decTotalSupply(uint256)","35e0f450":"stageMaxBonusPercentage()","35e24a6b":"preICOstate()","35e49e5f":"sellBlocks(uint8,uint8,uint8,uint8,uint256)","35e4d30f":"nonzeroAddressesElementForApi(uint256,uint256)","35e5f617":"transfer_erc20(address,address,address,uint256)","35e608be":"addUpgrade(address,address,bytes)","35e60bd4":"setTransferLocked(bool)","35e64aaa":"transferLand(int256,int256,address)","35e6a7af":"addab()","35e6e5b6":"removedSalesAgent()","35e82f3a":"removeAddressFromBlacklist(address)","35e83446":"testInitialBalanceWithNewMySale()","35e9d83b":"transferToAddress(address,uint256,bytes)","35ea6821":"masternodeTransferOwnership(address)","35ea94ad":"TokenSold(address,uint256,uint256)","35eb5208":"registerAgent()","35eb702f":"getPlayerWinning(address,uint256)","35eb8479":"showBidder()","35ebbfd1":"weekTwoStart()","35ec6dab":"earlyWallet()","35ed3fd6":"BONUS_PERCENTAGE()","35ed548f":"getPositionRequiredDeposit(bytes32)","35ed64c3":"CZToken(string,string,uint8,uint256)","35ed663d":"ENJToken(address,address,address,address)","35ee2783":"Alarm()","35ee2f8a":"initCanOffsetTime()","35ee72c7":"ISSToken()","35eead41":"addNote(bytes32,string,string)","35eec76a":"privatePreSaleSoldTokens()","35f067cf":"updateTokenURIPrefix(string)","35f097f3":"isOnBattle(uint64)","35f0d665":"reloadStoreByName(uint256)","35f10cc3":"sendWinnings(address[],uint256[])","35f1bd11":"EcoCrypto()","35f21f0a":"GladiethersOraclize()","35f2507f":"recoverUser(address)","35f27b20":"collectAirDropTokenBack()","35f2fbaf":"_bid(address,uint256,uint256)","35f3cf85":"setSaleManagerAddress(address)","35f46994":"die()","35f4de27":"HumaniqICO(address)","35f64a30":"albosWallet()","35f6806b":"addNewAccount(string,address,uint256,uint256,uint256)","35f68424":"getTokensByBTC(uint256)","35f6c161":"createWallet(uint8)","35f79b83":"LordCoin()","35f7ff63":"stringStorage(bytes32)","35f80a1b":"UbiatarPlayVault(address,address,uint256)","35f82876":"fillOrderNoThrow(uint256,bytes)","35f84393":"contructor(string,string)","35f88860":"listScam(uint256,string,uint256)","35f8a2c6":"RefundableCrowdsale(uint32,uint32,uint256,address,uint256)","35f931cb":"AmberToken(uint256)","35f96a7d":"goldBought(uint256,address,bytes32,string,string,string,string,string)","35fa3128":"BTTSToken(address,string,string,uint8,uint256,bool,bool)","35fa3843":"setend()","35faa416":"sweep()","35facf78":"createProposal(string,uint256)","35fb2125":"onlyBouncerTransferOwnership(address)","35fb337c":"finalCap()","35fb8e36":"triggerTestEvent()","35fc3e90":"claimRefundEther(address)","35fc7506":"StatsSold()","35fd8877":"isCashBack(address)","35fe3660":"MID_GRADE_CATEGORY()","35ff058a":"pushArray(bytes32,uint256)","35ff217d":"CrowdfundFinalized(uint256)","35ff3a51":"getRaisedEther()","35ffa20d":"handleWithdraw(address,bytes32,address,address,uint256,uint256,bytes32,bytes32)","35ffbe74":"verifyClaim(bytes,uint256,uint256,uint256[],uint256[],uint256[],uint256[])","35ffd687":"getStageLimit(uint8)","360035c6":"RepoToken()","360038b5":"CheckOver()","3600af8b":"updateProfileImgurl(string)","3600e1e2":"controlLimits(address)","36013189":"randomness()","360184e9":"Fouracoin()","3601dd87":"TNTToken(uint256,string,uint8,string)","36025bf8":"licenseTermsHasMaxCost(bytes32,bytes32)","3602627d":"BdpImageStorage(bytes8)","3603b0b0":"MULTISIG_WALLET_ADDRESS()","36044ecc":"changeTokenReward(address)","3604caa1":"lockAddress(address[])","36054f51":"affiliatThreshold4()","360583c6":"getUsersGunsIds()","36066f71":"Token(address,string,uint8,string,address,address)","36067543":"FirstEtherLimit()","3606c983":"createClaimMsg(bytes32,string,string,address)","36080694":"deleteRate(bytes4)","360821e8":"setMinimumBitcoinToInvest(uint256)","3608672c":"liveBetexICO()","3608c9eb":"MULT_FACTOR()","360998e6":"Cryptex(address,address,address,uint256,uint256,uint256)","3609ac8f":"START_PRICE()","3609bf09":"updateBusiness(uint256,uint256)","360aa28b":"isVersionContract()","360aac67":"accountGameResult(address,uint256)","360b3b31":"setAirdropEnabled(bool)","360b8115":"VipMigration(address,uint256)","360c97dd":"frozenAnnually()","360c9ed0":"deprecateBodySubtype(uint8)","360cdf5e":"AsOyToken()","360e5f54":"TokenGift(address,uint256)","360ec1b8":"processPurchase(bytes32,int256[],int256[])","360ed9c2":"receiversCount()","360f1d07":"bonusRatePrivateSale()","360f6b21":"chargingSwitches(address)","360ff695":"timeTier3()","3610724e":"buyTokens(uint256)","361228ea":"weiForToken()","36127d7e":"updateEMA(uint256)","36134a4b":"shouldBeStarted()","3613b781":"revokeVesting(address,address)","36144c9a":"getUserReferrer(address)","3614ac6f":"test4_searchSameNode()","361698ff":"adminSetWorldSnapshot(uint256,bool,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","36169d90":"sweep(address,uint256,uint8[],bytes32[],bytes32[])","36170ae5":"startingDateFunding()","36173764":"frozen(address,uint256)","3617653e":"powerContract()","3617d5c6":"viewIndexNumber()","36181026":"tryToFinalize()","361819e8":"RANGEEND_4()","36186868":"icoWeek2Bonus()","361893f7":"getBrand(address)","3618b290":"hodlFor2y()","3618c2a2":"removeAddressesSet(address)","36199817":"setFinalTimestampOfBonusPeriod(uint256)","3619cd99":"myHalfDividends()","361a4eb8":"Party()","361a5468":"testFailMoveWhenStopped()","361ae621":"LifMarketValidationMechanism(address,uint256,uint256,uint8,address)","361b5eaa":"token(bytes12)","361b94be":"contributorMinCap(address)","361bb340":"left48(uint256)","361bfc5b":"ETH_per_BRA()","361c14b0":"teamUnlock4()","361cac82":"marketStores()","361cc3ab":"getUserTotalPromoBonus(address,address)","361d004f":"changeBank(address)","361d292e":"getCarAuctionID(uint32)","361d4e53":"usedTokenBalance(address)","361d55be":"callback_ForUnderwriting(uint256,string,bytes)","361f10e5":"setSiteAccountAddress(address,address)","361fab25":"setSupplyLimit(uint256)","361fd603":"First_pay_clientmanager()","3620f56d":"addQuest(address)","3622b5ef":"PIGGY_BANK(address)","36234138":"registerPair(address,address)","362344b8":"MAX_YAYS()","3623c225":"bid(uint16,uint256)","3623f548":"getAllWinner()","36249140":"third_withdrawal(uint256)","36261907":"setting(address,address)","36262665":"getOwnershipTokenCount(address,address)","362698a2":"Unlocked(string,bytes32,address)","3626aae7":"getMedalType(uint256)","36274669":"Poll()","3627d195":"FuckToken()","3627d3a1":"mintPrivate(address,uint256)","36281b38":"uppercaseOf(string)","36285df7":"bonusWindow1EndTime()","3628731c":"addAddresses(address[])","3628ca60":"getEpisodeList()","3628e6f3":"BMTToken()","3629c8de":"activation()","362a0c27":"_withdrawWonCosFromGame(uint256,uint256,uint256)","362a198d":"nextBurnFeeAbs(uint256)","362a36b4":"bidFeePercents()","362af076":"createRequest(address[3],address,uint256[11],uint256,bytes)","362bd679":"updateFreeStorage(address,uint256)","362c160e":"changeWithdrawalDate(address,uint256)","362c78b9":"invitedReward()","362cb8ff":"icoSucceeded()","362cba6f":"PlotSale(uint256,uint256,address,address,uint256,bool)","362e2565":"returnDeposits()","362e4945":"lengthAddresses()","362e669a":"BarrosTest()","362ec5e2":"createProductionUnit5()","362f04c0":"participantCount()","362f5fb2":"getDogInfo(uint256)","362f74e7":"updateBatchSupport(bool)","362f8833":"stakeRoto(address,bytes32,uint256)","362fe943":"MainBridge(address,uint256,address[])","36304e91":"allFactories()","3631826a":"multiline(uint256,uint256)","3631ecd9":"privateStart()","36321001":"will()","363210c9":"_delegatecall(bytes32,uint256)","363221fe":"advisorTokens()","3632803f":"calculateGrapeSell(uint256)","3632b4d9":"withdrawCoin(bytes32,uint256)","36330b0c":"updateInitialZero(uint256)","363349be":"fillOrdersUpTo(address[5][],uint256[6][],uint256,bool,uint8[],bytes32[],bytes32[])","36335e19":"contributePublic()","3633b1ad":"createRealmSale(uint256,uint256,uint256)","3633c522":"GiftPoolContribution(address,uint256)","36344022":"testAuthorizedTransfer()","363487bc":"currentInterval()","3634a1b7":"createSeries(bytes32,string,bytes32,uint256)","3634b376":"GATcoin(uint256,string,string,uint8)","3634dcd8":"sub0(uint256,uint256)","36351c7c":"recharge(address,uint256)","36354b2f":"updateEtherAndtokenAmount(address,uint256,uint256)","3635e329":"getCurrentPeriodByEntity(uint256)","363626ad":"addressesToTotalWeiPlaced(address)","36371722":"chunk4IsAdded()","36382941":"changeTokenOwnerWalletAddress(address)","3638ae05":"transferETHtoProviders(address,address,uint256,address,uint256)","3638fb00":"transferOwnership(address,bytes32[3],bytes32[3],uint8[3])","3639dda5":"monthly_token_growth()","363a0903":"Creatable()","363a4708":"setMintFeeReceiver(address,address)","363ad06f":"getFrozenAmData(address,uint256)","363bc3a2":"alreadyAutoAirdropAmount()","363bf964":"setAddresses(address,address,address)","363c3747":"TestBalance(address)","363c51dc":"set_savings_goal(uint256)","363c6b81":"MAX_PENDING_REQUESTS()","363c76f3":"HLChain()","363c9bca":"runTimeAfterSoftCapReached()","363db35d":"IcoTotalSupply()","363dc725":"_unpackProtectionParams(uint256)","363dd19e":"summon()","363df59a":"UNGTToken(uint256,string,string)","363ef9dc":"APB()","363f7746":"validSignature(uint8,bytes32,bytes32)","363fa6b2":"renameChibi(uint256,string)","36400cd2":"ALM()","3640599c":"getPI_edit_6()","364083f4":"makeSale(uint256)","3640ca5b":"SupermarketKontrak()","3640e413":"YunPengToken(uint256,string,uint8,string)","3640f613":"cancelMatch(uint8)","3640f910":"LogEndSale(bool,uint256,uint256)","36422e49":"_createEtherDogWithTime(uint256,uint256,uint256,uint256,address,uint256,uint256)","3643d14b":"withdraw_to(address,uint256,uint256,uint256)","3645ebfb":"indFundDeposit()","36470665":"battleboardDataContract()","36471908":"ownerPerThousandShareForMating()","36475668":"getCommunityData(string)","3647b084":"setAmountBonuses(uint256[],uint256[])","3647b87a":"buildFactory()","364832cd":"isStrongHand()","36484ea0":"PHASE2_START_TIME()","36489775":"USDZAR(uint256)","364aa98d":"createDate(uint256,uint256,uint256,uint256)","364c7815":"addCredit(uint256,address)","364cc73e":"isEatingAndDrinking(address)","364d0b53":"getAddress(bytes32,uint8,bytes32,bytes32)","364d279a":"phase2Duration()","364d2a06":"queryCreatureOwner()","364ddb0e":"left52(uint256)","364ddc2d":"getmemberposition(uint256,address)","364deeef":"Sceatt()","364e022f":"buyProduct(string)","364e0af3":"_createEdition(string,uint256,uint256)","364e1c59":"publicsalesendTime()","364e69b7":"canBet(uint256)","364e74eb":"releaseTokenTime()","364ea9e7":"set(uint256,uint256,bool[],uint256[])","364ee75d":"getRoundEnd()","364f4896":"emission(address,address,uint256,uint16,uint16)","364f6695":"earlybird_coins()","365044a8":"priceDivider()","36516a8a":"publisherAddress()","3651b401":"commissionGetter()","3651b5df":"setTargetWallet(address,address)","36525c4e":"resetStorage()","36527357":"getUint(int256,address,string)","3653cf9f":"getOldESOP()","36540b3b":"amountFundPlatform()","36548b58":"arrayIndexOutOfBounds(uint256)","36555b85":"add(string,uint256)","36566f06":"togglePaused()","3656de21":"getProposalById(uint256)","3656eec2":"balanceOf(uint256,address)","36579ff6":"Burnable()","3657ba36":"getSharedAccountPw(bytes32,bytes32,bytes32)","36585cd3":"getBatchStartTimesLength()","3658964c":"totalBal(address)","3659078c":"DailyDivs()","3659467b":"registerName(uint256,bytes32)","3659887c":"isAlreadyUser(address,address)","3659a8b2":"bonusEnds1()","3659cfe6":"upgradeTo(address)","3659d90f":"month12Allocated()","365a5306":"loan(uint256)","365a86fc":"hub()","365af466":"failedWhitelist(address)","365b1b15":"upgradeKiOS()","365b29e8":"WEBPOUND()","365b5055":"isAccountFreezed(address,address)","365b94ad":"saleFinished()","365b98b2":"users(uint256)","365c2e95":"hasEnough(address,uint256)","365c81fb":"pubsaleRate()","365ccbef":"didTakeOrder(bytes32,address,uint256)","365ce233":"removeAccountReader(address,address)","365e304d":"DATE_31_DEC_2021()","365e808d":"transferFromHyperstakingdisbursementfund(address,uint256)","365ede48":"setReport(string,uint256,string)","365f6e9f":"getCellsSinceLastEvent(address)","365fe9fd":"isDistributionTransferred()","36600999":"fundRepository()","366077ee":"addToPot(uint256)","3660943d":"checkState(bytes)","3660a084":"transferSigner(address)","3660fcd0":"setGuestName(string)","36610cb9":"storeOptions(address,uint256)","36645e01":"Election(uint256,uint256,uint256,address)","3664a0ea":"getLastCallKey()","3664b12d":"erc223Activated()","36651d2a":"setDestoryAddress(address)","3665708e":"nextMinPlay()","3666750e":"fillHeldData(address[],uint256[])","3667551c":"Partial8Send()","36682d5d":"Transtoken()","366859c4":"job(address,address[],uint256)","3669acad":"_newChallenge(uint64,uint64,address,uint256)","366a4120":"release(uint256,uint256)","366a68dc":"setBlockLock(uint256)","366ac8e0":"LGCCoin()","366b6e9e":"secureUnapprove(bytes32)","366ba691":"CBX()","366bb03c":"totaTeamRemaining()","366bc343":"AssignFeeToWallet(address,address,uint256)","366bc401":"collectedUSDWEI()","366d2b4e":"CancelledBySeller(bytes32)","366df51d":"initializeMintableTokenFundraiser(string,string,uint8)","366dff9c":"walletAllowances(address,address,address[])","366e81d6":"TokenSold(uint256,uint256,uint256,address,address)","366e881a":"commitScores(uint256[],uint256[])","366f2d86":"paymentDue(address)","366f77b7":"checkChoice(uint8)","3670e072":"gettoday()","3672404e":"getServiceCount()","367265fb":"transferTokensManual(address,uint256)","36730467":"split(uint256,uint8,uint256,address[],address,uint256[])","36733fa0":"addRange(address,uint256)","36738b41":"Crowdsale(address,address,address,uint256,uint256,uint256,uint256,address,uint256)","36746413":"PrivateInvestment()","367488ce":"roulette(uint256)","36751a6b":"uploadCode(string,bytes)","36756935":"FinalConfirmation(address,bytes32)","36756a23":"constructor(address[],uint256)","3676049b":"setFundFeeAddress(address)","367605ca":"setApprovalForAll(address,address,bool)","36760fd2":"HULKtoken()","36767205":"increaseTokenLock(address,uint256)","3676b342":"createAddOn(string,uint256)","3677b5f2":"LATokenMinter(address,address)","3677c333":"authorizeBurnRequester(address)","3678933c":"isEpochDataSet()","3678f179":"crosairShipMinted()","367a0f97":"getReputationProblems(address,string)","367ad6ea":"redeemPack(uint256)","367afa7a":"_nextPrice(uint256)","367ba52c":"submitOrder(uint8,uint8,uint64,uint64,uint16,uint16,uint16,uint16,uint16,uint16,uint256)","367bbd78":"strlen(string)","367bc8d3":"TransmutedTransfer(address,address,uint256,address,string,string)","367bf2f9":"currentBlockHeight()","367c574f":"DIP_Pool()","367cad89":"alternative_Exchanges_links()","367ebb99":"deathData_a12()","367edd32":"enableContract()","367f0708":"ico1Raise()","367f20f6":"_unpackBaseDamageValue(uint256)","367f34de":"performALU()","36805961":"setStr(string,string)","368186ef":"DigiberyToken()","3682905e":"RICOStandardPoD()","36829419":"AddrInvestor()","3683b44a":"checkPrizeAlreadyReceived(address,uint256,uint256)","3683ec67":"CavsvsPacers425()","3683ef8e":"preSign(bytes32,address,bytes)","36840423":"AddAdrJullarTeam(address,address)","36842110":"wasCrowdsaleStoped()","36851957":"CustodianInterface(address)","36865384":"BuyShare(uint32,uint32,address,address)","3686ca3e":"beneficiaryWithdrawal()","3686d52a":"ppsBase()","3686edc7":"_getBmcDaysAmountForUser(bytes32,uint256,uint256)","3687e257":"TenantTerminate(string)","3687e921":"readInfo(address,uint256)","3687f24a":"setFee(uint128)","36880b82":"recordOwnerOf(bytes32)","368818aa":"FrozenMediaTokenFunds(address,address,bool)","3688632e":"setAvgSalesCount(uint256)","3688c272":"getTokenPriceListByIds(uint256[])","3688fa2c":"issue(address,uint64)","3689a651":"paymentFrom(uint256,bytes,address,address)","368a5773":"SpermLab()","368a5e34":"AIRDROPPER()","368aa9ca":"p_update_priceUpdateAmount(uint256)","368af7f3":"availablePonzi()","368b069d":"deployEscrowClone(address)","368b2842":"safeBatchTransfer(address,uint256[],uint256[],bytes)","368b3c81":"PTTYC(uint256,string,string)","368b8772":"setMessage(string)","368bf74e":"TEAM_LIMIT()","368d09d8":"requestOracleValue()","368d6b25":"setRushTimeChallengeRewardsPercent(uint256)","368daf8f":"goldMigrationsCount()","368dde4b":"currentCost()","368e5d4e":"BTC_SUISSE_TIER_4()","368e85ff":"IICO(uint256,uint256,uint256,uint256,uint256,address)","368f3492":"AnemoiSaleContract()","368f76a9":"bossCutPercentage()","36909ddd":"isATMHolder(address)","3690fd03":"CPLPrivate()","3691125a":"LianPaiToken()","36917dfa":"getPony(uint256)","3691dd11":"userApprove(address,uint256,uint256)","3692d61a":"log(string,bytes32)","3693396a":"getLastSignedTime()","36937781":"initialize_proposal()","369388cc":"EMISSION_FOR_BOUNTY()","3693db0a":"FOUNDER_ONE()","36944e49":"secondRefundRoundRateNumerator()","36945328":"setAddrContractCaller(address)","3694566e":"getRate(uint256,bytes32)","3694569e":"IHateEos(string)","3694629a":"getQuestionFinalizable(uint256)","3695507b":"IRC_PER_ETH_PRE_SALE()","3695672b":"newBurnableOpenPayment(address,uint256,bool,uint256,string)","36958413":"weaponEntities(uint256)","36965e3a":"SetAElfDevMultisig(address,address)","3697d0a7":"renderLandingHash()","3697efb2":"MinerEdgeCommunity()","3697f055":"withdrawFunding(uint256)","36988bc4":"currentLoanPerson()","3698de0a":"soliditySha3(bytes32)","369ac28f":"deltaTime()","369b1ce5":"initialBuy(address[])","369badf1":"getCreditsAtIndex(uint256)","369bcd64":"_checkPixelUnder(uint256)","369cbbb4":"checkMonthlyLimit(address)","369cd460":"totalPilfered()","369d32f1":"Items()","369d8138":"createAsset(string,string,string,uint256)","369de07d":"PDTX()","369e2422":"updateTokenPricePerUSD(uint256)","369e8c1d":"commit(address)","369f927f":"initBlockEpoch()","369fe962":"getDisputeMemorySize(uint256)","36a013c8":"LogInvestment(address,address,uint256)","36a09eae":"SetPriceMultiple(uint256)","36a0f511":"getPeriodMinting(uint256)","36a128c2":"MyJioCoin()","36a1bbfd":"baseTargetReached()","36a1c184":"IsArt()","36a1fb5f":"changeUserStatus(address,bool)","36a23dbf":"freezing(bool)","36a26b99":"END_TIME_PRESALE()","36a26fd9":"TokenDeactivated()","36a2f0f1":"changeLocked()","36a31de5":"getRequestOwner(uint256,uint256)","36a33f99":"isLimitMint()","36a3668a":"teamTokensPerPeriod()","36a36f7c":"betexStorage()","36a39882":"_proceedStage()","36a42675":"combineInterest(uint8,uint8)","36a4f2ba":"createBtcAddress(uint256,int256,uint256,int256)","36a60891":"setTrainingFeeMultiplier(uint256)","36a6412b":"buyMicroKeysWithHandle(string,bytes32)","36a6ad58":"mintPartnershipTokens()","36a716da":"createOrderHash(address,address[3],uint256[5],int256)","36a7cf1f":"setBallotFactory(address)","36a9f2f7":"xactionFeeNumerator()","36aa972e":"FullPayChain()","36ab0f15":"getNewAllowancesEffectuation()","36ab753e":"startRefunding()","36abffd4":"_receiveFunds()","36ac732e":"updateSecondChangeBlock(uint256)","36ad6e46":"SendTokensToFounders(uint256,uint256,uint256)","36add1df":"interestDistribution()","36ae22f0":"emitFeePeriodRollover(uint256)","36ae31ec":"getCatOwners()","36ae5040":"isMinted()","36aec5a3":"amountContributed(address)","36af1954":"withdrawnReadable()","36af50fd":"setSale(address)","36af8151":"setSpareRecommAddr(address)","36b024ab":"setTransferableDate(uint64)","36b09474":"winningNumbersPicked()","36b1315c":"min64(uint64,uint64)","36b19cd7":"adminWallet()","36b222b3":"fillOptionOrder(address[3],uint256[3],uint256[2],bool,uint8,bytes32[2])","36b2e0f9":"acceptBidForCollectible(uint256,uint256,uint256)","36b2fe94":"setPurchaseAdmin(address)","36b324ff":"unMap(address)","36b33415":"modifyMemberInfo(string,string,string,string)","36b3da05":"chargeBalance()","36b40bb6":"leftOnLastMint()","36b61e3c":"otc()","36b641c2":"MakeMyToken(string,string,uint256)","36b69367":"parentFees(address)","36b77107":"lastDeposit()","36b81feb":"Deed(address)","36b97fd5":"TestToken5(address,address,address,address,address,address,address,address)","36b9856d":"newOraclizeSetProof(string)","36bacc7c":"getTentativeWinningPayoutDistributionHash()","36bb9ffa":"MANHATTANPROXYPARKAVE()","36bc32a2":"expectedPayout(address)","36bcb4c9":"changeAge(uint8)","36bcb4cd":"ViteToken()","36bdee74":"totalETH()","36be2a73":"setLedger(uint8,int256)","36bee178":"add_to_withdraw_bounty()","36bf094b":"BonusPeriodsCount()","36bf2e15":"ERC20ImplUpgradeable(address)","36bf392b":"distributeInvestorsFee(uint256,uint256)","36bffe1e":"nextCommonTTMTokenId7()","36c0aada":"setValueAll(uint256)","36c0c834":"buySignature(bytes16)","36c1a50f":"notZeroNotSender(address)","36c28466":"Panel()","36c2a922":"KryptopyToken()","36c2d72d":"getTotalSlaves(address)","36c35f94":"finalize1()","36c4a520":"Volks()","36c4ad0c":"getEthFromKeys(uint256,uint256)","36c4db09":"setCOO(address,bytes)","36c4ff7a":"payoutAddr()","36c5787e":"setTokensWave(uint256,uint256[10])","36c5bf8c":"_ownerReleaseLimit()","36c5d724":"removeToken(uint256)","36c5ff5d":"addToTransactionDisallowedList(address)","36c61b60":"_buyToken(uint256,uint256,uint256)","36c63b8d":"AbstractVirtualToken()","36c6a410":"BatanCoin()","36c7d4bd":"processReinvest(uint256,uint256,uint256)","36c802a0":"priceStage2()","36c84de5":"getPlayerDataByAddress(address)","36c8af5d":"_getId()","36c8c0e9":"addBonusBatch(uint256[],address[])","36c8c5ee":"voteForCandidate(uint256)","36c8e831":"PhillionToken()","36c92c3f":"setRoundDuration(uint256)","36c9c62d":"transfer_opt(address,address,uint256)","36ca97d6":"tokenFeePercent()","36cb4c48":"log256(uint256)","36cb8098":"BouCrowdsale(uint256,address,address)","36cb8740":"test_3_accessRestriction_vote_shouldThrow()","36cbee23":"bountyFunds()","36cc17a7":"clientClaim(uint256,uint64)","36cc18b5":"setPriceIdv(bytes32,address)","36cc1ebb":"setCCH_edit_13(string)","36cc6a10":"modifyTokenFee()","36cd24aa":"prepareVote(bytes32,uint256)","36ce94bf":"bytesToAddress1(bytes)","36cf7c87":"dead()","36cfe3eb":"starbaseEarlyPurchase()","36d0288c":"CL()","36d02c94":"changeSettings(uint256,uint256)","36d03356":"setAdvisorsTeamAddress(address)","36d10e45":"LemonsRemainingToDrop()","36d1535d":"getEbola()","36d15f2a":"_validateSettleSignatures(bytes32,bytes,bytes,bytes,bytes)","36d18b67":"RED()","36d1f54b":"UnitedfansTokenCrowdsale(address)","36d22de7":"pokerbox(uint256,uint256)","36d300b3":"addAction(uint256,uint256,uint256)","36d373c0":"writeDefinitions(uint8,string)","36d38bd4":"scs()","36d43c24":"withdrawId()","36d505cf":"_breedWith(uint256,uint256,uint256)","36d61112":"getVendingStepQty(uint256)","36d647cf":"bonusLine()","36d81f07":"getUser1()","36d90c2d":"Dillionworldcoin()","36d9377e":"GetAllNode()","36d938d8":"Transaction(uint256,uint256,address,uint256,uint8,uint256,uint256,bytes)","36d95f56":"MIN_FUNDING_GOAL()","36da1471":"crowdSaleCheck()","36da4468":"supplier()","36da5cd8":"atomToken()","36da9ec9":"roundTwoRate()","36dac2cc":"getMeta(uint256)","36dc1dd2":"createBSMHash(string)","36dc58f6":"total_SDCC_supply()","36dd20a7":"getJobWorker(uint256)","36dd58f2":"dispatch(address,uint256,string)","36de44e0":"GFC(uint256,string,string,uint8,address)","36df05bc":"wholesaleLeft()","36df99b6":"blackswanToken()","36dfe260":"payOneTimeReward()","36e0004a":"multiSig()","36e05d94":"fundariaShare()","36e0e824":"asset(uint256,bytes)","36e0f6cc":"allowSell()","36e4e8fd":"tulipToOwner(uint256)","36e4f915":"claimToken(bytes32,string,address)","36e520bc":"verifyAddresses(address[])","36e61cf7":"decTap(uint256)","36e685f5":"setCLevelAddresses(address,address,address,address)","36e6b92e":"taskProcessedWithCosting(uint256,uint256)","36e73918":"getRegionNextImageId(uint256)","36e9f43f":"SMRDistributionVault()","36ea76e2":"Hyperion()","36ea8189":"DetailsUpdated(bytes32,bytes32,uint256)","36ea8702":"makeMetaPublic(uint256,bool)","36eb3aa9":"LGBT()","36eb5b47":"getResoSCParams()","36ebc4dc":"__allocateTokens(address)","36eda23f":"setRST(address)","36edbe17":"createPlayer(address,uint256)","36ee1f2b":"SDTToken()","36ee46f5":"killAnimal(uint8,uint16)","36ee7773":"getBallotsStorage()","36ee83f9":"getOrderPriceTotal(uint256)","36ee8812":"updateReleasedBalance()","36eec28e":"allocated4Year()","36ef0cea":"createStartingColors()","36ef1abb":"disburseDividends()","36ef6c82":"addEmbassyOfCountry(address,uint256)","36ef80db":"getId(address,address)","36f00e8a":"setFeeFlat(uint256)","36f19b77":"getPurchasedBlockhash(uint256)","36f2393e":"changeTokenURIPrefix(string)","36f26095":"minimalCap()","36f2b803":"Oceans8RT()","36f3dc2d":"STAGE_FOUR_ETHRaised()","36f54767":"VitaminToken(uint256,string,string)","36f656d8":"assertEq(string,string,string)","36f66528":"EtherDelta(address,uint256,uint256)","36f78d77":"newGroup(address[],uint256,uint256)","36f7992b":"putOnSale(uint256,uint256)","36f7ab5e":"contactInformation()","36f7cd70":"setPricePerStake(uint256)","36f8edc2":"getPlayerShipBattleLossesById(uint64)","36f93a99":"cofoundersSupplyVestingStartDate()","36f9825f":"accountIndex(uint256)","36f9f49c":"etherandomSeed()","36faa509":"ssps(uint64)","36fbedd3":"existsAuditorFromMultiRequestAssignment(uint256,address)","36fc75ee":"setRegsitrarAddress(address)","36ff37f4":"UpdateEvent()","36ffa905":"getMyProposals()","370014f2":"sendFundHome()","370097ac":"donotUSBDappToken()","370099d4":"airSwap()","370158ea":"info()","37016a5f":"getAuctionStartedAt(uint256)","3701fada":"PFC()","370292eb":"clearApproval(address[16],address,uint256)","3702ab03":"buyBasicCards(uint256,uint256)","37033be6":"processReservationFundContribution(address,uint256,uint256)","37034853":"ownerHistoryCount()","3703d911":"createItem(string,uint256,uint256,address,uint32,string,uint32)","370419e5":"arm()","37048f8f":"_newValidatorSetCallable()","37049b06":"getTier(uint32,uint256)","3705f69e":"canRelease()","37072ec7":"getHealthCitizens(uint256)","37074dae":"receivedEther(address)","37077409":"_updatePurchasingState(address)","3707a967":"putForExchange(uint256)","3707cfc1":"update(uint256,uint256,address)","3707ed7e":"gettops(address)","37086c8e":"airdropWithLockup(address,address,uint256,bytes)","3708c99e":"openWhitelistEndTime()","370943e3":"ZionToken()","370b6939":"AdminSetDrawer(address)","370b8c90":"info(bytes)","370c6001":"abortTransaction()","370d4c6e":"setGameOn(bool)","370d62ad":"anyRateIsStale(bytes4[])","370e052b":"addPreSaleTokensMulti(address[],uint256[])","370e9161":"rollDice(uint256,uint256)","370ec1c5":"_fillOrder(address,uint256)","370f2827":"finishJackpot(uint256,uint256)","370f388e":"MegaCandy(address)","370fb47b":"triggerTime()","370fc812":"set_stopsell(bool)","370fed6e":"setProfile(string,string,string,uint32)","37110967":"eTokensToSend(address,uint256)","371115d1":"LamboToken(uint256,string,uint8,string)","3711d9fb":"saleDuration()","3711e829":"withdrawnAmountForSalePromotion()","37126b38":"getTime5(address)","3712880c":"changeTokenExchangeRate(uint256)","37128a12":"initBoostData()","371303c0":"inc()","3713513a":"TOKENO()","3713ab41":"WPXSold()","37142391":"GetPartManager(uint8,uint256)","3714ae13":"newTokenPrice()","3714e274":"mintAllBonuses()","3715ae53":"sendApprovedTokensToInvestor(address,uint256)","37164433":"withdrawConfirm(uint256,address)","3716b8b4":"DonatorSetBanner(string)","3716bd22":"showCertificationDetails(uint256)","3716ca33":"updateGenerationRatio(uint256)","3716f65d":"withdrawDthShop(address)","3717798b":"auctionStarted(string)","3717a7a7":"Omnic(string,string,uint256,uint256)","3717f34c":"divRemain(uint256,uint256)","37180750":"getTaskKeyAtIndex(uint256)","3718766b":"EventQuitBattle(address,uint256)","37189157":"checkWithdrawalAvailability(address,address)","3718a923":"canShelf(string)","3719427e":"acceptDividends(uint256,uint32)","371a4ea8":"getProposalById(uint32)","371aa158":"init(address[],uint256[])","371ab702":"getMicroModuleByIdPart2(uint256)","371be589":"getconfig()","371c7dba":"setAllowPriceUpdate(bool)","371db7af":"BlockPaymentSystem()","371dd5ed":"initRound()","371e8e27":"gameResultsLogged()","371ecfde":"_directTransfer(address,uint256)","371f468c":"GlobalSuperGameToken(uint256,string,string)","371fe247":"_checkHashAndTransferExecutorFee(bytes32,bytes,address,uint256,uint256)","37205d76":"isCrowdSaleSetup()","3720e5b6":"E_AuctionStarted(address,uint256,uint256)","3721ee15":"ownerAccessoryCollection(address,uint256)","372210d1":"addGenesis(address,bool)","3723100d":"mutiEthTransfer(address[],uint256[])","37235758":"currentEndsAt()","3723bc0e":"shareholders()","3723f149":"FOUNDATION_SHARE()","37247af5":"_recalculateAvailable(address)","3724fb24":"tradeSpreadInvert()","372500ab":"claimRewards()","37253e35":"defrostTokens(uint256,uint256)","37254184":"jvCoin()","3725814a":"getMaxAddresses()","37258302":"SubwooferToken()","37268dbb":"_internalExchange(address,bytes4,uint256,bytes4,address,bool)","37270069":"maxWeiRaised()","37270936":"commander()","37271cc7":"withdrawBid()","37273b86":"PRICE_STAGE_PRESALE()","3727ae2d":"AthTokenBase()","3728aa4c":"saleCapReached()","3728bec2":"getCharacter(uint32)","3728f1f7":"EthereumOne()","37292eeb":"AVAILABLE_COMPANY_SUPPLY()","3729847b":"processSalesForSingleBuyer(uint256,address)","372a2a36":"DigitalArtChain()","372a49bd":"mspController()","372c1aff":"getPublicKeys(uint256)","372c6533":"START_DATE()","372c66e3":"updateAsset(uint256,string,string,string,uint256,address)","372cb1d9":"CallCount()","372cd183":"addAdmin(address,bytes32,bool)","372cd7ad":"clearAuthOfPermission(address)","372cfcc3":"noteSaleLocked(address,uint256,uint256,uint256)","372d6b27":"getStatistics()","372e80c3":"FLIPPINESS()","372ea717":"test_oneInvalidEmptyAddress()","372ed8cc":"setOraclizeDelay(uint256)","372f6bfe":"_refererUpdate(address,address)","372f88b6":"ICC()","372fc8d3":"HTSupply()","372ff945":"isInPhase(uint256)","37305e2a":"withdrawFromCustody(uint256,address,address)","37306299":"BurnableToken()","3730bb40":"yxkTOKEN()","37321bd7":"callstoredaddress(address)","37323d19":"LuckyETH()","3732c86b":"doubleTransferWithBurn(address,address,uint256,uint256)","3732e153":"ETHPrice()","37334878":"SHORTADDRTOKEN()","37339506":"restrictedPercent()","3733b378":"transferStackAndCall(address,uint256,uint256,uint256,uint256,uint256,bytes32)","3733faba":"forceStopCycle()","3733ffca":"convertTo(uint256,string,string)","37354a68":"luckyNumberOfAddress(address)","3735ab75":"buyCastle(address)","3735d57d":"PRESALE_BONUS_LIMIT()","3736d853":"setAverageBlockTime(uint256)","37371bc5":"getRandomRouter()","37375a43":"createContractEditionForCollection(string,uint256,uint256)","37376ca8":"cancelProposal(bytes32)","37383c2d":"getEventStart()","3738aa19":"ReleaseFundsToInvestor()","3738eb8a":"GolfCoin()","37391ce2":"testUnescapedQuoteInString()","373a1bc3":"scheduleCall(address,bytes4)","373a3af8":"intersect(uint256[],uint256[])","373a7c01":"fundTotalSupply()","373ae230":"checkLimit(address,address,uint256)","373c1df9":"test_3_destoryTokensAccrossBlocks_increaseBlocksBy1000()","373c98a2":"authCall(address,bytes32)","373d46b0":"IPOI(uint256)","373dde4f":"countPurchasedPixels()","373e0c80":"setFreezeAccount(address,bool)","373e441c":"addUserRole(string)","373eef4b":"ABsCoins(address,uint256)","373f5ff0":"COLOR_GREY()","3740eee9":"SetFund(address)","37411dc3":"createRandomZombie_Ether()","3741b92b":"jrecover_y(uint256,uint256)","3741c90b":"setAuthorizedWithdrawalAmount(uint256)","3743f0bf":"teamReserveAllocation()","3746010d":"createPrizeFighter(uint16,uint256,uint8,uint8,uint8,uint8,address)","3746b446":"Predictor()","37472c4b":"setDepository(address)","3749ea8e":"contribute(address,address,uint256,uint256)","374abace":"contractstarttime()","374aed97":"getCells()","374b8cda":"getTrade(uint256,address,address)","374b94c8":"MEC()","374ba203":"get_hosp1(uint256,uint256,uint256)","374bb090":"isAddressSet(address,address)","374bfba7":"claimFreeReferralPack()","374e164c":"addVirusDef(address,uint256)","374e9aa1":"stageForBlock(uint256)","374f7b7e":"checkLoanStatus(address,uint256)","375023f2":"total0xbtcReceived()","3750e05a":"TOKENS_BOUGHT()","37516ead":"microTip()","375188dc":"nextTask()","3751e6bc":"get_last_global_audit_document()","37525ff0":"listItemFromRegistry(uint256)","37531b45":"StudentCoin()","37542d10":"addReferrer()","37548549":"setRecipientString(string,string)","37567d49":"maintenanceDeactivateUser(address)","3756b62b":"toB32(uint256,address)","3756bb45":"noOfTicketsOwned(address)","3756e207":"ExtremiumToken()","37574b3d":"TOKEN_FOR_TEAM()","37593f46":"queryN_fnc(uint256,string,bytes,uint256)","375a8131":"addStudent(string,bytes32,string)","375b3c0a":"minStake()","375b74c3":"custodian()","375c0117":"BurnTokens(address,uint256,bool)","375c21b0":"random(bytes32,uint32)","375c405d":"canIssueIndividual()","375c4627":"supplyPICO(address)","375c86dd":"m_pools()","375d6d90":"received_ethers(address)","375d9dc6":"isLimited(address,address,uint256)","375dce69":"getIssuable()","375e3ea8":"payoutForBudget(uint256,uint256)","375e88bd":"increaseBTCRaised(uint256)","375f2b96":"getCost(uint8)","375f3a9d":"PERC_TOKENS_TO_INVESTOR()","375f4498":"SetEditMode()","3760153c":"ETHero()","37603132":"RollLottery(uint64)","3760ceb0":"WAITTIMEUNTILWITHDRAWORTRANSFER()","37612672":"producer()","3761a3d6":"buyUcCoins()","3761d23f":"setFeeDistributionAndStatusThreshold(uint8,uint8,uint256)","3761dea8":"MarketPlace(address,address,uint256,uint256,address)","37621da0":"setMinChildCount(uint256)","3762346b":"externalPurchaseTokens(address,uint256,uint256)","37624204":"endPreIcoDate()","37629dda":"getArticleItem(uint256,uint256)","3762f0fe":"initMembers()","37632065":"claimUnderlying(address[2],uint256[7],uint8,bytes32[2])","37633f29":"TokensGate(uint256,uint256,uint256,address)","37638119":"getHouseEdgeAmount(uint256,uint256)","3763965f":"private_profits()","3763d4b4":"generalSaleEndDate()","3764cf3f":"NUMUS()","3764e2be":"setup(string,string,uint256,uint256)","37664643":"retractLatestRevision(bytes32)","376678e3":"BABYT()","37668a8b":"create(bytes32,address,bytes32,address,bytes32)","3766baba":"transferAllFromForcibly(address,address)","3767aec6":"handleTimedTransitions()","3767ea7e":"setTotalCapacity(uint256)","37680f18":"ERC20Standard(uint256,string,string)","37681083":"incrementReputation(uint256)","3768304c":"autoMint()","37689317":"generateLockedTokens(uint256)","3768bd09":"mulToFraction(uint256,uint256,uint256)","3769862f":"isAllowedUser(address,uint256,address)","376a4ce0":"setstring(uint256,string)","376b9c25":"depositProvider()","376c7374":"w_Bounty()","376d1555":"sendAuto(address)","376d567c":"setMod(address)","376db394":"setFreeze(address,uint256)","376ed9c6":"totalHedgelyWinnings()","376edf93":"getBidsByAdslot(uint256,uint256)","376ef9b8":"fromContractAddr()","376fc790":"fullTransfer(address)","376fc952":"setMaxReferrerBonusRequirement(uint256)","376fe102":"userId(address)","376ff7f0":"isRefundAllowed()","377002fb":"beArbitrator()","37714274":"FrancevsArgentina()","37717342":"breedOwn(uint256,uint256)","3771ab97":"payDividents()","37721ab7":"getDougName(string)","377272b3":"createValue(address,uint256)","3772c371":"getprize()","3773930e":"ConfigureFunction(address,uint256,uint16,uint16,uint16)","377481ca":"unlockedAddress()","3774e6f5":"starbaseMarketingCampaign()","37751b35":"doTransfer(address,address,uint256)","3777261d":"approvedFactories(address)","37775807":"buyerBalances(address,address,uint256,address)","3777f5d0":"tokensPerWeiBonus333()","3778e5b2":"groupInfo(uint32)","37790454":"PrintWinningInfo(bytes32,uint256,uint256)","3779a3b6":"saleRunning()","377a0f53":"bankAccount()","377ab651":"nextTurn(uint256,uint256[3],uint8[176])","377b2009":"isCanSell()","377b47a3":"logIn()","377c6a3e":"eth(uint256,uint256)","377d54ce":"assertOnlyParticipants(uint256)","377d78ce":"defineProjectWallet(address)","377dda1a":"NamiCrowdSale(address,address,address)","37800bde":"calculateTransferFee(uint256)","37806f07":"galleryOne()","3781afbc":"_isCorrectFullBuyin(uint256)","3781d882":"setRate347()","3781e576":"isOperatorForTranche(bytes32,address,address)","37820c57":"bulkMint(address,string,uint256)","378252f2":"closeAuction()","37828c52":"OTHER_STAKE()","3782cae2":"set_max_contribution(uint256)","37831b97":"payReward(address,address,uint256,uint256)","37848b6b":"getOwnedShipCount(address)","3784f000":"setEndDate(uint256)","378525bd":"bestAngel()","378544df":"timeAfterSoftCap()","378652d2":"MultiTransper(address[],uint256)","3787a30a":"ownerWithdrawEth(address)","3787b748":"WalletChange(address)","3788036f":"isAgreementSigned(bytes32)","37881299":"getCompare()","37881810":"setCallbackAddress(address)","3788e371":"BaldcoinCore(string,string,uint8,uint64,uint64,uint16,uint256,address[])","37890f94":"maliceReported(address)","378a2178":"tallyVotes()","378aa701":"getCurrentState()","378afddb":"withdrawMYB()","378b6a89":"canContribute(address,uint256)","378bc89d":"findAddress(bytes32,bytes32)","378c0605":"buyTickets(address)","378c4c1c":"computeMerkleRoot(bytes,bytes)","378c7cd9":"logCheck(uint256,string,uint256)","378c93ad":"setClaimable(bool)","378ca888":"setMaxFinalizationTime(uint256)","378cdb62":"proxyList(uint256)","378dc3dc":"initialSupply()","378e061e":"inactive_payable()","378e0fc1":"checkKwhDeployerAddress()","378e25f2":"withdraw_2Completed()","378ebf93":"setTokenToEtherAllowed(bool)","378efa37":"divider()","37900d5a":"issuedFromOtherCurrencies()","3790613f":"minChildCount()","379080da":"PRICE_MULTIPLIER_PREICO1()","379119af":"SJT()","3791759c":"migrateFeesDueToFork()","3791792a":"mintPack(uint256,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","37918bcb":"declareMvpLaunched(uint256)","3792a018":"left8(uint256)","3792a865":"MacroTokenContract()","3792e117":"GaiaToken()","37930615":"extend(bytes16[],uint64)","3793c1e8":"get_num_of_uses(address,address)","3793ccb3":"isPlayerOnBoard(uint256,address)","37941589":"test123token(uint256,string,string)","3795ad25":"lockStartDate()","379607f5":"claim(uint256)","37960cd5":"publicKeySize()","379698c1":"calculatePie()","37970dbe":"shouldAirdrop()","379725ee":"queryName()","3797528e":"IllusionDust()","3797b4de":"forwardRemaining()","37981c32":"pre_maxGoal()","37983aed":"getMyCards(address)","37986d2b":"freezeAndConfiscate(address)","37989eb6":"setOwnerBurner(address)","379930f7":"WHEEL_SIZE()","379986d9":"executeBurnProposal(uint256)","379995c3":"getDealerAndLuckyInfo(uint256)","3799bbd3":"privatePresaleAllocatingToken()","3799c5eb":"test_insert_findWithHintPrevRemovedUpdateHead()","379abed8":"ANPlaceholder(address,address)","379b7589":"signedTransfer(address,address,uint256,uint256,uint256,bytes32,address)","379ba1d9":"setTradingStatus(bool)","379ba2ab":"exchangeForQIU()","379ba3b7":"currSaleActive()","379c1bd9":"createHorseShoe4(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","379c5131":"getByOwner(address)","379c5d3f":"ModuleToken(uint256)","379c8f6c":"_keepLastTransaction()","379ca09e":"priceStep5()","379dbdeb":"accessAllowance(address,address)","379e00d4":"maxTextLength()","379e2919":"setDevFeePercent(uint256)","379e9957":"fiveMatchPayoutInPercent()","379f946a":"initGeneralAttr(uint32,uint64)","379fed9a":"isMasterOfCeremonyRemoved()","37a0b958":"DATAToken()","37a14b52":"changeICODates(uint256,uint256,uint256)","37a1c540":"founder1Wallet()","37a1c84f":"registerNameResolver(string,address)","37a2890d":"eraByIndex(uint256)","37a28979":"setSettings(uint256,uint256)","37a30d3b":"current_price_atto_tokens_per_wei()","37a31079":"pointsLimit()","37a31895":"withdrawSelect(address)","37a366d8":"loggedBalances(address,uint256)","37a38bb1":"StateChanged(uint8,uint256,string)","37a3931f":"invalidate(address)","37a47106":"create(uint256,bytes32,uint256,uint256,uint256)","37a58bb4":"KudosPollFactory()","37a59139":"estimate(string)","37a5ae1f":"withdrawSingleBucket(address,uint256,uint256,uint256)","37a5fbab":"SaleStart()","37a66d85":"setPaused()","37a6b9f8":"recordCallback(address,uint256,bytes,bytes)","37a6d42b":"participant()","37a7095b":"LeviathanToken()","37a74f7e":"p_update_currentPlotEmpireScore(uint256)","37a7983b":"changeminContribAmount(uint256)","37a7b7d8":"feed()","37a7f2b7":"MIN()","37a87dfa":"updateList(address,address,bool)","37a91776":"OSATOKEN()","37a920f1":"Universe()","37aa1689":"getIcoDiscount()","37aa7f91":"isAuthorisedMaker(address)","37ab8f20":"notifyPlayer(uint256,uint256,uint256,uint256)","37ab9dcf":"getCPFee()","37ac8236":"getPunchCardsOf(address)","37ac9153":"Retrieve(string,address)","37adf3a3":"hasRefBonus()","37ae31c7":"DemSinhVienRequests()","37ae43a3":"BetOnHashV81()","37af5c32":"ANYtoken()","37aff76d":"getSystemAvaliableState()","37b0574a":"isClassic()","37b0786a":"icoInvestmentWei(address,uint256)","37b0ac71":"confirmTeamWithdrawal()","37b0f257":"setConfirmAddr(address)","37b34974":"reverse(bytes32)","37b475d4":"SOFT_CAPACITY()","37b4d863":"maxbet()","37b4f299":"IMTERC20()","37b54140":"buyTokensForAddress(address)","37b5dce4":"PDP()","37b6efeb":"engraveDefault(bytes32,string,string)","37b7bf11":"Tile(int256,int256)","37b89705":"getAgilityValue(uint256)","37b8cade":"raisedEthAmt()","37b8db1a":"executeVerdict(uint256,bool)","37b9756b":"totalIssuanceDebt_limitedSum()","37ba1b4d":"Fpgcchain(uint256,string,string)","37ba682d":"END_TIME()","37bb223e":"CUC()","37bb25bc":"withdrawalLimit(address)","37bd0d28":"howManyFucksGiven(uint256,bool)","37bd1868":"setHatchedEgg(uint64,uint64)","37bd78a0":"secondsTimeLocked()","37bdc146":"weiFounded()","37bdc99b":"release(uint256)","37be04b4":"EZStandardToken(uint256,string,uint8,string)","37be827d":"Sum()","37c08923":"totalContributions()","37c0a5ef":"Finished(uint256,uint8,uint8,uint8,uint8,uint8)","37c30a98":"round_()","37c345cd":"specialManagerAddressMap(address)","37c35157":"updateTerm(uint256)","37c390e3":"allow_move(uint16)","37c3d50d":"buyAlt(address,uint256,string)","37c43088":"hashesSize()","37c44802":"initMonsterClassConfig()","37c57718":"ListingBought(bytes32,address,uint256,uint256,uint256,address)","37c62ed6":"createUnicornPriceInCandy()","37c6fcba":"LandlordTerminate(uint256,string)","37c74948":"getPropertyPrivateMode(uint16)","37c75992":"mintingIsFinished()","37c8d21f":"echo(string,string)","37c8f1d1":"AIgathaToken(address,uint256,uint256,uint256,uint256,uint256)","37caa8b6":"getTop(uint256)","37cb3c86":"distributeSlotBuy(address,uint256,uint256)","37cc7761":"contractReservedBalance()","37cc7cc0":"bannedCycles(uint256)","37ceb05b":"getFixtures()","37cef791":"getRate(address)","37d004b3":"bulkRelayCMCT(address[],uint256[],bytes32)","37d0208c":"bribe()","37d044cd":"tokenCreationPreSaleCap()","37d05434":"getCurrentRoundIssued()","37d1eb35":"setOffChainManagerAddress(address)","37d2649a":"Ownedfunction()","37d2d350":"setBOPSAddress(address)","37d33438":"totalHedgelyInvested()","37d3433f":"calculateAmountBoughtPreICO(uint256)","37d35507":"tokenCreationMinConversion()","37d365de":"admin_set_shopStoreRegister(address,address)","37d3ec7a":"ZBillionaire()","37d45088":"transferAllowed_(uint256,address,address,uint256)","37d48628":"totalSaleCapUnits()","37d4fc84":"Alpha()","37d76636":"item(uint256,uint256,bytes)","37d876b6":"GVTTeamAllocator()","37d9d7fc":"getBytes32(bytes32,bytes32)","37d9ffd1":"registerClient(address,uint32,uint256)","37da8058":"in_top_n(uint256,uint256)","37daa09e":"getUpCount()","37dac676":"getPOOL_edit_8()","37daf0ed":"getETHBalanceInfo()","37db0703":"isClean(string)","37db12c4":"PausePayment()","37dbbac4":"deleteMyEntity(uint256)","37dc414b":"balanceOfTarget(address)","37dc4b14":"setSpeedBump(bool)","37dd186b":"removePermission(address,string)","37dd5dd6":"poicoin()","37dda1ae":"setTktPrice(uint256)","37de1334":"rand16(uint256,uint16,uint16)","37de84d0":"createGame(string,string,bytes32[],string,uint256,uint256,uint256,uint256,uint256)","37df00c9":"receiveToken(uint256)","37df4828":"buy_planet()","37df6c03":"setAccountC(address)","37dfc70c":"getInvitationMultiple()","37e05590":"setKYCManager(address)","37e0e290":"numTokensSold()","37e12ab7":"checkGoalReach(uint256)","37e15240":"addRecord(uint256)","37e16f40":"currentAfterIcoPeriod()","37e246ad":"isOnAuction(uint256)","37e29e93":"BlueHillMining()","37e50f39":"awardPrizes()","37e531c0":"fechVoteNumForCandidate(address,uint256)","37e582b9":"LogRefundsEnabled(address)","37e58bd8":"GlowEther()","37e6b280":"verifyCommit(uint256,uint256,uint8,bytes32,bytes32)","37e6e03b":"setMultisigPre(address)","37e7a739":"Token3G()","37e822b8":"addRank(uint256,uint256,uint256,string)","37e87c7d":"OwnerManage(uint256,uint256,uint256,uint256)","37e8c09e":"getBet(bytes32)","37e922d7":"TERMS_AND_CONDITION()","37e94529":"setHardCapDividends(uint256)","37e94853":"TakerBoughtAsset(address,uint256,uint256,uint256)","37e9af0c":"IsAdmin(address,address)","37e9ebb5":"getExists(bytes32[])","37ea010a":"transferWithRef(address,uint256,uint256)","37ea1f63":"getWithdrawalCounter()","37eb6f91":"LiquidSwapToken()","37ebd0e0":"whitelist(address,uint256,uint32)","37ec33b7":"startDateOfUseTeamTokens()","37ec757f":"getStrFromId(uint256)","37ed2bef":"tokensToLock()","37ed89b2":"BitcoinPro()","37ede426":"WhaleWater()","37ee1837":"isCrowdSaleRunning()","37ee3edb":"buyTokensWithReferrer(address)","37efa397":"cryptoRomeWallet()","37f03888":"panicButton(bool)","37f0fa43":"PricingDay(uint256)","37f1353f":"PayPoolEntranceFee(string)","37f13fd6":"prova2()","37f1a470":"appoint(address)","37f1e7f2":"getPrice(uint8)","37f26746":"Remainder(uint256)","37f2beed":"getProposalVoterList(uint256)","37f2eaf6":"addTransaction(address,uint256,bytes,bytes)","37f33bd5":"EvenCoin()","37f344ff":"WhitelistedEarlyParticipant(address,bool)","37f3cb24":"testInitialBalanceUsingDeployedContract()","37f42841":"queryBalance(address)","37f4494b":"castLine(uint16,uint16,bytes32)","37f46e7e":"mintTokensByETH(address,uint256)","37f4c00e":"anchorGasPrice()","37f4dfea":"unsafeWriteBytes(uint256,bytes)","37f50f57":"wishes()","37f50f5b":"leggiFrase(uint256)","37f531ea":"_addHolding(bytes12)","37f534b6":"Blocform(address)","37f57d05":"StarterTokenBase()","37f7151b":"MTPToken()","37f7c4d4":"pow2()","37f80a58":"INVESTMENT_CAP_ICO_PHASE_ONE_POUNDS()","37f83291":"monuments(uint256)","37f86dce":"giveupBid(uint256)","37f9034d":"getAnimal(uint32)","37f944cc":"raiseBy()","37fa33fe":"EVATOKEN()","37fb217a":"valueForTranches(uint256)","37fb7e21":"distributionAddress()","37fbd30f":"etherHolder()","37fbec96":"totalTaxed()","37fc55bf":"give(string,uint256,string)","37fc91e3":"balanceWosPoolToTeam()","37fcb747":"TestERC20Token()","37fcb779":"sendAllFeesToAddress(address)","37fd25c7":"balanceOf(address[],address)","37fd6128":"tokenRate15()","37fd686f":"balanceOf(string,address,address)","37ff2506":"PRESALE_CONTRACT()","37ff65da":"Bugis_Crowdsale()","3800a119":"closeGateway()","3800d0a3":"get_proposal_count()","38014395":"originalAuction()","3801cde7":"Foodiecoin()","3801e6b6":"Cloud(uint256,uint256,string,string,address)","3802a4a2":"getEthDealRange()","3802d3ef":"totalTokensEmitted()","38039479":"setCandidate(uint256,string,string)","3803b7d3":"readAddressList(address,uint256,uint256)","3803f80e":"cancelCall(bytes32,address)","3804482a":"setMaxDistributions(uint256)","3804ab8d":"getTokensOnAuction()","3804c73d":"gameStartBlock()","380547c0":"addCompany(string,address,uint256,bool)","3806153e":"tier2()","3806422a":"stagesCount()","38075446":"shouldStopCoinSelling()","3807aabd":"generate(address,uint256)","3807ba1b":"poi()","380862b2":"getSynthesizeApproved(uint256)","3808ac11":"DXN()","38095a4a":"fccController()","3809b240":"settlementContract(uint64)","3809c0bf":"doInfinite()","380b5450":"getPrecomputedEToThe(uint256)","380ba30c":"confirmPrint(bytes32)","380bbf78":"getTokenIdOfAddressAndIndex(address,address,uint256)","380bf002":"mintCountByTemplate(uint256)","380c686d":"setTokenPriceByOwner(uint256,uint256)","380c7a67":"authenticate()","380d831b":"endSale()","380e5e44":"makeProposal(string,string,uint256)","380e809e":"batchTransferFromMany(address[],address,uint256[])","380f3087":"addHashes(uint256)","380f3771":"viewRand()","3811264a":"ErrorLog(address,string)","38116187":"buySpike()","38118614":"sigTeamAndAdvisersEDUSupply()","3812783e":"getDeployedEvents()","38131bc5":"redeemOrSellCoinsToICO(uint256,uint256)","38132838":"setProviderSupply(uint256,uint256)","3813a7f2":"getWineIdentifierAt(address,uint256)","3813be76":"currentGameBalance()","3814253f":"grantFoundersTokens(address)","3814a7a3":"CardsBase()","3814b764":"setBridgeWidth(uint256)","381501e6":"SwapManager()","38151862":"SHSToken()","38151930":"isTokensPreIcoDistributed()","38158549":"NENCToken(uint256)","3815c742":"Koyo()","38164d41":"SGDsToken()","381656e2":"declineAll()","3816d4ee":"iICO()","381731be":"approveAndCall(address,uint256,uint256,bytes)","38178fbe":"addString(string,string)","3817ffda":"_limitedTotalIssuingCollateral(uint256)","3818657b":"isActiveFreelancer(address,address)","3818d907":"addPrecommitment(address,uint256)","38194aab":"_addNewCompanyTraders(uint256)","38198c65":"totalEtherGooResearchPool()","3819986e":"createNewPoll(string,uint256,uint256,uint256)","3819ea68":"SimpleMarket()","381a0161":"TRONIXGOLD()","381a730e":"withdraw_3()","381abeb5":"RonaldoChain()","381ae69a":"createReferee(address,address)","381c215f":"SEXYCOIN()","381cec91":"isVestingStarted()","381d5441":"roger()","381db641":"distributeTokenAndLock(address,uint256,uint256)","381ee645":"lastBlock_v0()","381f4b9e":"RRROToken()","381fe9ca":"DgxDemurrageCalculator(address,address,address,address)","38200801":"getExtensionPublication(string)","3820a686":"canBurn(address)","3821891e":"requestRegistration(string,address)","38218aa1":"getBettorInfo(uint256,uint256,address)","38219832":"spendEther(address,uint256)","38222858":"setThrowOnIncompatibleContract(bool)","3822de0f":"kvtToken()","38235781":"checkICO()","382396ee":"getGameStatus()","3823d66c":"withdrawn(bytes32)","3823df95":"testPop()","38241c16":"setKYC(address[],address[])","3824d8ee":"buy100DaoFor1Eth()","3824ea31":"getHighScore()","38266b22":"getData(address)","3827d0bf":"_createDank(string,address,uint256)","38280e6b":"setTokenDistributor(address)","38284f36":"release(uint256,uint256,uint256,uint8[],uint256,uint256,uint256,string,string)","38285534":"gameDeveloperSupply()","3828b522":"serviceApprovedBy(address,address)","3828becc":"setBountyAmount(uint256)","3829111f":"BuyNowEvent(address,address,uint256,uint256)","382964a5":"withdrawForTeam(address)","38299afd":"recommendPaused()","3829dd22":"tokensForOneEth()","382b6f69":"test_oneInvalidEqBytes()","382c52cd":"transferableTokens(address,uint256,uint256)","382cbc79":"userDelete(address)","382cf0a6":"gamesPlayed(uint256)","382d39bb":"planCount()","382d606b":"CROSAIR_VOUCHER_PRICE()","382db937":"finishContributionPeriod(uint256)","382df05d":"getInvestmentByAddress(address)","382e5272":"addGameRecord(address,uint256,uint256,uint256,uint256)","382ef945":"Contributed(address,uint256,uint256,uint256,uint256,uint256)","382f431b":"open(bytes)","382f8411":"_createPassport(address)","382faa6a":"cancelToken(uint256)","382fc09f":"CoinVilaStart()","382fd819":"kyc(address,address)","38300f19":"setCAORatio(uint256[])","38302989":"getUsernameForAddress(address)","3830901a":"assignImmortalsToBattle(uint256)","3830ceeb":"totalriskcoinsSupplys()","38310f49":"weiMinimumAmount()","3831a8d5":"BurgerKapija()","3832677d":"partsMinted()","38331353":"MoreAI()","38350541":"_ownerOf(uint256)","38353104":"setBlockDotTimestamp(uint256)","38360ed8":"balance(bytes32,string)","3836a6d2":"setKYCLevelsBulk(address[],uint8[])","3836d3f4":"JapanvsPoland()","3836fe6e":"addPermittedContract(address)","38376154":"setGasForOraclize(uint256)","3837e9bd":"getGooCostForUnit(uint256,uint256,uint256)","3838a099":"aboutItem(uint256)","383a194c":"buyUnicornWithEth(uint256)","383bb22a":"setMinorEditsAddr(address)","383cf18f":"getGovtApplicationsCount(string)","383e3a5d":"buyPriceAt(uint256)","383e4b27":"submitRing(address[4][],address,uint256[6][],uint256,uint8[1][],uint8,bool[],uint8[],bytes32[],bytes32[],address,uint16)","383e9a3a":"claimTokensFromTokenDistrict0xNetworkToken(address)","383eea0e":"transferDevship(address)","383f61b3":"refundPlayersInRoom(uint256)","383fcd3a":"getLastPlayDateTime(address,address)","383fe467":"transferTokenOwnership(address,address)","383fe6d3":"setCentsPerMonth(uint256)","3840369b":"triggerEvent(int256)","3840d63d":"unknownReserved()","38416341":"getbetData(uint8,int8,address)","38419800":"taylorToken()","38421476":"changePaused(bool)","3842c57c":"petCollection(uint256)","38436c60":"transferEgg(uint256,address)","38439bb6":"update_tree()","3844426c":"EST(uint256,string,string)","3844e1c4":"getClientBalance(address)","38453f29":"registerCat(uint256,uint256,uint256,uint256,uint256,uint256)","384711cc":"vestedAmount(address)","38471dd6":"athenians()","3847807a":"stopGamGetToken()","38478ae7":"setMinterContract(address)","38495d66":"updateVault(uint256)","3849794f":"setDataSourceAddress(address,address)","384a6494":"setStartPreSale(uint256)","384af0de":"setMinimumprice(uint256)","384b1393":"follow(uint256)","384b93f2":"pullTheLever()","384baa8a":"round1StartTime()","384bb70b":"getData_17()","384bfacb":"cofounderIndices(address)","384c3335":"requiredToAddress()","384c440b":"DISTRIBUTION_TEAM()","384c4d2f":"reserveFeesInBps(address)","384d0b12":"claimByProof(bytes32[],bytes32[],uint256)","384db9fc":"WithdrawEther(uint256)","384ddc32":"JM_ETH_ExchangeRate()","384e04c9":"setarg_2(uint256)","384e2bf5":"MNLTOKEN()","384e5018":"etherandomCallbackAddress()","384f58eb":"contract_owner()","384fae3b":"hashDataStream(address,string,bytes32)","38503f55":"AdjustDifficulty(uint256)","38516064":"getFeePool()","3852c53f":"battlesTillBattleCooldown()","3853682c":"Try(string)","38536878":"getOwed(address,address)","3854bc2e":"setUSD(uint256)","3855323f":"updateKey(address,uint256,address,address)","38556c3a":"contract8function2()","38557648":"executeSellOrder(address)","3855b3dc":"GetEscrowNotifierAddress()","3855cf0e":"Proxyable(address)","3855dcd6":"getContrarians_by_index(uint256)","3855f32e":"keysRec(uint256)","385794c4":"MAGENDAVID()","38597911":"appendKeyValue(string,uint256)","3859d609":"raccoltaMessaggi()","385ab2d7":"allowSelling()","385ae665":"getNumberOfAnnotations(address)","385af1c3":"setChainPrev(address)","385c0ecf":"whitelistMaxWei(uint256,address)","385cd083":"tgeActive()","385d8590":"Committed(address)","385df389":"tokenURIEdition(uint256)","385e27ed":"testSubtract()","385e9e2e":"MintNFT(address)","385fae43":"setBetclose(uint256)","385fb8a6":"STAGE_3_MAXCAP()","385fbe24":"ListingContractEntity()","385fea5c":"countCliManagers()","38613690":"agentAddress()","38616105":"LogDestroy(uint256)","3861ee08":"EventBuyCar(address,uint32,uint32)","3862822d":"buyHo(uint256)","3862e6ee":"getEvaluationCountByRecorderID(uint32)","3862ea9d":"lockedBitmask()","386304e4":"receiveFromGame()","38634337":"CrowdsaleToken(uint256,uint8,address,address)","386381db":"fundariaTokenAddress()","38644538":"setAdditionPrice(uint256)","38649b2a":"isConstructedOwned()","3865bf3a":"joinNetwork(address[6])","3866ecdd":"forceWithdrawToken(address)","38670cb4":"founders_address()","386741fa":"onSubNew(uint256,uint256)","386762fb":"withdrawSnowflakeBalanceFromVia(string,address,address,uint256,bytes,bytes)","386892d8":"endICOStage3()","38689772":"FixBet16()","38692ca6":"setRegistrationPeriod(uint8)","3869416b":"getDisputeStartTime()","3869eaff":"USEaddress()","3869ffd0":"newIteration()","386a646e":"QDToken()","386b5fe7":"aelfDevMultisig()","386c5a74":"LogFeeTopUp(uint256)","386c69f2":"setCanBurn(bool)","386ca47e":"minCompanyValue()","386dd46e":"BTK()","386e0d75":"setPopName(uint256,string)","386e2b29":"registHnsBatch(bytes32[],address[])","386e3441":"tokensIssuedPrivate()","386e69dc":"nextRoundStartsAt()","386ee512":"Crowdsale(uint256,uint256,uint256)","386f36f3":"Deployed(uint256,uint256,uint32)","386fcda8":"testCreateCostToken()","387008c2":"updateStatus(uint256,bool)","3871b694":"LogSell(address,uint256,uint256,uint256)","3871bdd7":"depositPresaleWithBonus(address,uint256,uint256,uint256)","38721fa4":"getOperationCost(uint256)","3872b3ec":"setCoolDungeon(uint32)","387349fc":"numberOfTokensToAvail50PercentDiscount()","38734c33":"OnContribution(address,bool,uint256,uint256,uint256)","3873eeb8":"approveForBurn(address,uint256)","38742685":"pegglebot()","38743904":"moderator()","38752e58":"batchApprove(uint256[],address)","38756a89":"getLevelsCount()","38759ce9":"getFhMoney(uint256,uint256,uint256,uint256)","38760f13":"NewAccreditedInvestor(address,address)","387621fb":"cleanupDelay()","3876c137":"FRAC_TOP()","3876df0e":"ProjectWithBonds(string,uint256,uint256)","3876e05e":"appWallet()","3876e6d3":"securityTokenVersion()","3876f81d":"getPeriodBounus()","38771242":"completedAt()","387787ed":"setProperty(address,bytes32,bytes32)","38785014":"lastBlock_f4Hash_uint256()","3878f423":"remainingInvocations()","3879aa23":"firstCheckpoint()","3879c9f3":"teamCliff()","387a54d9":"callInternalTransfer(address,address,uint256)","387a76ce":"tokenChanger()","387b6c2f":"OwnedResolver()","387be94f":"minimumAmountRequired()","387bef56":"nodeAllocation()","387c0cb4":"hashRegistrar()","387d3821":"increaseMarketValue(uint256,uint256)","387d49d4":"setBountyBeneficiariesCount(uint256)","387da66c":"MCoinToken()","387dd9e9":"slots(uint256)","387e01fd":"ITO_TOKENS_PERCENT()","387e7bb4":"SingularityTest4()","387eaedb":"jypcBonus()","387ed59b":"hardCapTxWei()","387f4172":"GorillaSale(uint256,uint256,uint256,address)","388085be":"module(address)","38811792":"disallowWrite(uint256,uint256)","38812e58":"setStartTime(uint64)","38813ee0":"allEther()","3882f333":"partnerSaleTokenValue()","3882f742":"exitStake()","3883aee2":"checkGoalsReached()","388415e5":"Exchange(address,uint256,address,uint256,uint256,address)","38848911":"AmountRaised(address,uint256)","3884d635":"airdrop()","3884f307":"withdrawTo(address,uint256,address,bytes)","38856ecb":"assertEq5(bytes5,bytes5,bytes32)","38857786":"presaledeadline()","3885ce81":"avgEtherBetValue()","3885fd3d":"sendEther(address,address,uint256)","3886b116":"chkConsul(address,uint256,bytes32)","3886c957":"tokenLedger()","38874945":"developersWallet()","388777f1":"setlimits(bytes32,uint32[],uint32[],uint8[])","38879da8":"Transfer(address,address,uint256,uint256,uint256,uint256)","3887abb7":"checkPeriod()","3888188d":"releaseLockFoundation()","3888624b":"trueOrFalse()","3888dca0":"q_test(string)","388911dc":"sudoEnabled()","3889c8dc":"Payiza()","388a1526":"defaultTreesPower()","388a74ab":"validPurchaseSize(address)","388aef5c":"WAIT_TIME()","388b5786":"econReserveTimeLock()","388b9f37":"LogTokenDistribution(address,uint256)","388ba4b5":"COIN_SUPPLY_MKT_TOTAL()","388e28f9":"stop_all()","388f2c39":"recover(bytes32,bytes32,bytes32,uint8)","388f3cd3":"cashin(address,uint256)","388f58cd":"addMarket(bytes6)","388fb0af":"reservedTokensPercent()","388fe911":"new_tablet_created(address,bytes32,address)","38905bea":"lulaToken()","38906dbd":"Token(uint8,uint256,string,string)","38909b68":"getBonusUnlockAt()","3890d77f":"esopState()","3891c320":"vote(int256)","3892be14":"payoutPreviousRoll()","3893966d":"distribute(address[],uint256[],uint8)","389435e8":"calculateTotalWithdrawableAmount(address)","389439bb":"OwnerSigneture(address[])","389441b2":"getvaluejoinlist_even(uint256)","38948c53":"finalizeable()","3894ca57":"catOwners(bytes5)","3894e516":"generateToken(string,uint256)","38953534":"BTCEX()","3895f466":"buyoutWithData(uint256,string,string,string,string)","38960027":"aliveSince()","38969d64":"changeZipper(address)","389755a7":"setDefaultTransferRate(uint16)","3898ee61":"generateTicketData(uint256,uint8,uint8)","3899ad41":"unlockSecondary()","389aa67c":"addOrder(string,address,uint256,uint256,string,address)","389ab31c":"networkDevelopmentWallet()","389ae4d1":"foundersKey()","389b5bd2":"CryptobullsCoin()","389b7533":"extendDeadline(uint256)","389b75d6":"resetPool(uint32)","389cabee":"ceoWallet()","389cd1ae":"setGasPrice(uint256,uint256,uint256)","389d9636":"buyDiamond(uint256)","389db4f1":"_adjustDifficulty()","389e40d2":"PACOIN(uint256,string,string)","389e4839":"setState(bytes32,bytes32)","389eb9f9":"withdrawalTime()","389ece2f":"changeTelephoneOwner(address)","389f0846":"balanceUpdate(address,address,int256)","38a003e0":"getOrderAddressesForDay(uint256)","38a0615f":"TabooToken()","38a0fc9a":"registerPool(string,uint256,uint256,uint256,uint256)","38a0fdde":"setSnapshot()","38a1187d":"calculateEthAmount(address,uint256,uint256,uint256)","38a18cbe":"createTradeContract(address,uint256,uint256,uint256)","38a211b7":"lockTopLevelDomainOwnershipTransfers()","38a21db8":"create(bytes32,bytes32[3],bytes32,bytes32)","38a2cd0f":"setData_3(string)","38a2fb4f":"TransferBaseContract(address)","38a326e4":"activatedSalesTotalCount()","38a332eb":"EndGame(address,uint8,uint256)","38a4045e":"despoit(uint256)","38a4ba0b":"getAdPriceHalfDay()","38a52fb1":"setEthPlan(address,uint256,uint256,bool)","38a57d0c":"buildShip(uint16,uint16,uint8,bytes32)","38a5e016":"acceptTokenOwnership()","38a699a4":"exists(bytes32)","38a6e813":"updateAllowedAddressesList(address,bool)","38a74bbf":"endGameInternal()","38a7543e":"issuers(address)","38a8a0ca":"DeadCow(address,uint256)","38a964d6":"getFeeValue(address)","38a9a6f8":"bonusPreset()","38a9f25a":"PlayerLab()","38aa156c":"getKeccak256Address(address,address)","38ab0287":"nextMintPossibleTime()","38ab8ef4":"RelentlessConscienceToken()","38abdf41":"CraigGrantShrimper()","38af3eed":"beneficiary()","38af4eff":"tokenCents()","38b025b2":"parseInt16Char(string)","38b09889":"VictorieumNewToken()","38b0ea85":"startRedemption(uint256)","38b15dab":"setMyTokenBalance(address,uint256)","38b3e983":"Better(uint256,uint256,uint256)","38b52627":"supportsInterfaces(address,bytes4[])","38b5491b":"getInvestmentProposal(uint256)","38b56ead":"setURIToken(string)","38b59359":"ChangeEthPrice(uint256)","38b59be6":"addPercents(uint256,uint256)","38b5e0fe":"numElementsEven()","38b6e407":"endGrantAuthentication(address)","38b7a530":"addToAvgRating(address,address,string,string,uint8)","38b88052":"staleTime()","38b90333":"CONTRACT_VERSION()","38b93440":"replaceModule(string,address,bool)","38b9499b":"circulationStartTime()","38b9d61e":"bonusLimit4()","38b9ef9c":"betWithRound(uint256,bytes32)","38bb3977":"JuventusvsRealMadrid()","38bbbceb":"test_failed_payment_nonthrowing_token()","38bbfa50":"__callback(bytes32,string,bytes)","38bbfc51":"FCOIN1050Token(uint256,string,string,uint256)","38bc01b5":"getAddresses(bytes32[])","38bc1b96":"_airdrop(address,uint256)","38bcdc1c":"getURL()","38bd44f3":"createSDCC(address,address,uint256)","38bd8357":"next_week_timestamp()","38bde636":"GoodBoyPoints()","38be706d":"__callback(uint256)","38beb446":"PlayerToken()","38beb67f":"getCertificateHash(address,address,uint256)","38bef35c":"CFCdistrubution()","38bf77c3":"setFeesPerTenThousand(uint256)","38c0ac5f":"signer2()","38c1b824":"transferBookKeeping(address,address)","38c20499":"accMinterTwo()","38c33862":"wineries(bytes32,uint256)","38c3d4ed":"PORNCASH()","38c4090b":"getMarketOrderValue(uint256)","38c4d4a6":"pairTransfer(address,uint256)","38c59de9":"getNumberInvestors()","38c5a3dc":"changeRealUnicornAddress(address)","38c67b73":"setCurrentStage(uint256)","38c68f8f":"right84(uint256)","38c72883":"DealFullyFunded(uint256)","38c73f9f":"by(bytes32,uint256)","38c7db75":"getUnredeemedBalance(address,address)","38c80857":"unlock1Y()","38c80fc3":"getWhitelistStatus(uint256,address)","38c8e611":"getPreorderInfo()","38c8ec85":"convert1(string,string)","38c9027a":"calc(uint256)","38c92ef0":"propose(bytes,address,string)","38c97949":"StandardGame()","38c9dbf3":"TEAM_STAKE()","38ca59cf":"createTargetedValentineRequest(string,string,string,address)","38ca60a2":"IBST()","38ca683b":"MARKTY()","38ca830c":"updateWhiteList(bool)","38caa2c6":"MaxCapReached(uint256)","38cb252f":"getBonusPercent()","38cb583d":"checkAndUpdateTokenForManual(uint256)","38cc17ee":"setGameState(bool)","38cc4831":"getAddress()","38cc639d":"_setUserAttribution(bytes32,address,uint256)","38cd2c1a":"TransferSellAgentSiteRegMulti(address[],uint256)","38cdaab1":"changeICOState(bool,bool)","38cde380":"changeWeight(uint256)","38ce1df8":"sideServicesCount()","38ce4d51":"canRedeemUTXO(bytes20,uint256,bytes32[])","38ce61b2":"transferAndFreeze(address,string,address,address,uint256,uint256,uint256)","38ceaf1b":"LicenseManager(address,string)","38cef1ab":"ESCBCoinPlaceholder(address,address)","38cf2087":"parametersAreSet()","38cf22e3":"getHoldingsSupply()","38d084b5":"address4a()","38d0e36f":"SBSEducationToken()","38d16011":"verifyKYC(address)","38d1ed57":"getTotalFeesDistributedCount()","38d28d4c":"setTicketCountMax(uint256)","38d28de3":"getGoldInfoWeight(address)","38d2b172":"lowCapTxWei()","38d33337":"RoundAHardCap()","38d335ef":"ShowTestB(bool)","38d40ced":"changelp15(address)","38d44ad5":"recall(uint256,string)","38d480a6":"bulletAddress()","38d4d73e":"isVotedGood(uint256)","38d52e0f":"asset()","38d560b6":"gmtAddress()","38d65020":"JackpotAccessControl()","38d67d88":"changeContractName(string,string)","38d762ef":"LogBurn(address,uint256)","38d7be3c":"WXBET()","38d888a6":"impToken()","38d93280":"ProfitContainer(address)","38dacaab":"teamTimeLock()","38db6dd3":"registerVoter(address)","38dbb74a":"initialize(uint256[],uint256[],uint256,address,uint256,address)","38dbdae1":"player3()","38dc25d1":"KMCToken()","38dc92bc":"NCP()","38dca34a":"AddStudent()","38dd22f0":"isOwnerOrAdmin(address,address)","38dea895":"auction(address)","38dec0fa":"RefundAdded(address,uint256)","38df6fb2":"CollateralPosted(address,uint64,uint256)","38dfe2f5":"getString2()","38e078b4":"FixBet76()","38e11779":"OriginalAddress(address,address)","38e1294c":"updateBuyStatus(bool)","38e288f1":"airdrop(address[],uint256,uint16)","38e29ef0":"ICO_BONUS_TIME_1()","38e2c296":"processJackpotDeposit(uint256,uint256,address)","38e3aaf1":"Error(uint256,uint256)","38e43840":"collected(address)","38e45c65":"endCall()","38e47639":"getHighWater()","38e48f06":"save(string)","38e48f70":"getDonation(address,uint256)","38e4b06b":"releasedTeam()","38e55e89":"SigmaToken()","38e586fd":"right5(uint256)","38e64f9e":"milestoneReached()","38e771ab":"refundAll()","38e7920a":"setTokenRate(uint256,uint256)","38e7a375":"textaaaToken(address,uint256)","38e8feed":"TokensTransfer(address,address,uint256)","38e91e41":"devHolder()","38e95d55":"amountToRaiseInUsdCents()","38e998a7":"buyLand(int32,int32)","38e9e6b5":"setClaimingCosts(uint256)","38ea1c4d":"setTransferCreditBot(address)","38eada1c":"addAddress(address)","38eaf913":"setDirectorNode(string)","38ec18c3":"changeAccountModifiers(address)","38ec6ba8":"getAddressOfName(string)","38ec8672":"newAvto(string)","38ec8736":"assertEq11(bytes11,bytes11)","38ecadac":"bountymanagerShare()","38ecdca9":"claimProduct(address,uint256)","38ed85b0":"_claim(address)","38eda0e5":"createCalcFunc()","38ededc9":"getNoteOwner(uint256,uint256)","38ee95ab":"_emitCapabilityRemoved(address,bytes4,uint8)","38eee93e":"scheduleCall(address,bytes,bytes,uint16,uint8,uint256[5])","38ef2dc0":"testSign2of3()","38eff6c6":"backETH(uint256)","38f0de1f":"_fFinish()","38f14845":"deleteUser(uint256)","38f196b2":"COR()","38f22b42":"viewSpecific(string,uint256)","38f41711":"updateCapAndExchangeRate()","38f42d41":"GameWin(address,uint256,uint8,uint8,uint8,uint256,uint256)","38f46240":"StartRefund()","38f4b734":"getShit()","38f4cc7a":"QtumToken()","38f50b6f":"modifyAuth(bytes8,bytes8,bool)","38f55e59":"doVote(bytes32)","38f736c5":"step(uint256,bool)","38f77d69":"getDistributeProfitsInfo()","38f817c5":"getUsersEnginesIds()","38f84614":"useGoldenTicket(string)","38f88ee0":"tokenOwnerRemove(address)","38f8f3cc":"quarter1()","38f98d09":"getWeaponValue(uint256)","38fa1570":"showDevCut()","38fa4029":"currentStageIndex()","38fab8c5":"lifToken()","38fdba18":"doSplit()","38fe48b8":"batchReturnUNT(uint256)","38fff2d0":"getPoolId()","390063f0":"fundsToMSF(uint256)","39009094":"Cooperium()","39009482":"returnTuple()","3900f8f6":"minusFreezingTime(uint256,uint256)","390209c1":"getMetadata(uint128)","390246b2":"bid(bytes32,uint8,bool,int32)","3902b9fc":"getBbAddress(address)","3902bf72":"donate(bytes32,bytes32,bytes)","3902cb92":"TERATO()","3902d417":"resumeAirdrop()","39035d56":"record(address,address)","39048f02":"setSchellingRoundReward(uint256)","3904c5c1":"sweepFunds(address,uint256)","3904e1bf":"userBuys(uint256,address)","39055172":"UpgradeTokens()","390576d9":"Sogan()","3905910e":"MultiEventsHistory(address)","3905cab8":"drpsToken()","39069d8c":"setRegistryAdmin(address)","3906f560":"SUPPLY_LIMIT()","39074f59":"getDelayedBonusAmount(address)","390a05a8":"getParticipantBalances()","390b4f0c":"NaGeBi()","390b8482":"fillWithHashes()","390c0ddd":"purchaseCollectible(uint256)","390c3434":"nextrafflenr()","390c5874":"getCashbackRate(address)","390ce0d3":"getSellOrder(uint256)","390d70f5":"getTransformTarget_miner(address)","390e16c1":"EXTENDED_SLACK_PERIOD()","390e4855":"MilestoneTracker(address,address,address)","390eca6b":"finish(string)","390ff134":"isApprovedFor(address,uint256)","39106821":"memberId(address)","3910814b":"diamondAuction()","391193ae":"getTotalF2()","3911e1e1":"totalEthxCollected()","3912253e":"betConditions()","39125215":"sendMultiSig(address,uint256,bytes,uint256,uint256,bytes)","3912572d":"TokenCLC(uint256,string,string)","3912657a":"lastBlock_f11Hash_uint256()","3912b99f":"FOUNDERS_SHARE()","391363b5":"reducetime()","3913848e":"changeMerchantChargingAccount(uint256,address,bool)","3913a0fe":"getPlayerAward(address)","3913d6e0":"burnEnergyAttributionToken(address,uint256)","3913f487":"RIPAC(uint256,string,uint8,string)","3914010a":"getPartnerCash(uint8,bool,address,bool,uint256)","3915111e":"getRoundPrize(uint256)","39166ee9":"holding(address)","391687e3":"raiseTraderRegistered(address)","3916a402":"ShowInfoStr(string)","391714f8":"closeSale(bool)","39179ef9":"BitcoinFast()","3917b761":"product2_sell()","39181e6c":"Monthprofitstart()","39192fd7":"mintReserveTokens(address,uint256)","391b11ce":"updatePartner2_vows(string)","391c44b2":"addToWhiteList(address,uint256,uint256)","391c918e":"transferFromOwner(address,address,uint256,uint256)","391d2eb4":"MottoCoin()","391ecc2c":"_setOwners(address[])","391efaf2":"getEscrowFullInfo(address)","391f2e96":"InvestCancel()","391f3b2d":"_nextPotJackpot(uint256)","39203874":"ALpay(uint256,string,string)","392087fd":"changeSoftCap(uint256)","392114b7":"sellingAccept(bool)","39221913":"_forwardT4T(uint256)","392327b5":"owner_set_fraction(uint256)","392338f5":"createPost(string,string)","39236bef":"claimGame(uint256)","3923afee":"allocateToEarlyContributor(address,uint256)","39246290":"getB2()","39246d75":"VersionModel()","3924b718":"m_tokenPrice()","3924f089":"getRunning()","392542fb":"unFreeze(bytes32)","39255494":"setAdminAccounts(address[3])","3925ad8a":"getRank07()","392603d3":"_getCsAddr()","3926384d":"setMaxWithdrawal(uint256)","392664e5":"GenesisAddressSale(address,address,uint256,uint256)","39269596":"endPrivateIco()","3927010d":"ownerPauseGame()","392752b9":"lifeFactor_iv()","3928bc8b":"setBoostData(uint256,address,uint256,uint256)","39293113":"earlyBirdCap()","39298633":"forceTransferFrom(address,address,uint256)","39298f4a":"listAssets(uint256,uint256,bool)","3929e43f":"proposalExpireAt(bytes32,uint256)","392a2cb6":"withdrawFromFailedLottery(uint32)","392aa4d5":"openRefund()","392c00a2":"mint(int256,address,uint256,bytes)","392c6238":"currentNiceGuyIndex()","392c623e":"docIndex()","392cb9ed":"DhaCoin(uint256,string,string)","392d42ae":"left38(uint256)","392da9b4":"fetchCancelledOrdersForMerchant(address)","392db91e":"genuine(address)","392e53cd":"isInitialized()","392e6678":"validCandidate(bytes32)","392eaafa":"HackDao()","392ec230":"PaymentForwarder(address,address)","392ec66b":"bobClaimsPayment(bytes32,uint256,address,address,bytes20,bytes)","392ecfa6":"buyWithTokens(bytes32)","392ee145":"jackPotA()","392f37e9":"metadata()","392f5f64":"roles()","392ffcfb":"test_twoValidAndInvalidEqAddress()","39300836":"fundCrowdfund()","3930d3dd":"minBuyETH()","3931845d":"registraAluno(address)","3931c9a8":"purchaseWithToken(uint256)","39332b05":"foreignBridgeErcToErcImplementation()","39333bbe":"tokenBankrollBuyIn()","39341dde":"unseatKing(address,uint256)","39347d52":"setMarketers(address)","39354244":"percentAllocationFeeNumerator()","3935ae8f":"POKERCOIN()","39363923":"invalidationBounty()","3936dbe4":"decimals(address,bytes32)","3936e99a":"releaseAssets(uint256)","39384126":"getCampaignValidById(bytes32)","3938bd78":"updatePayment(uint256,address)","3938faa1":"_emitErrorCode(uint256)","393a1955":"crowdfundingTarget()","393a4d34":"getStorageAddress()","393b011c":"setOwnerPercentage(uint256)","393b9b0f":"TransferPreAllocatedFunds(uint256,address,uint256)","393bb56e":"setApprovalStatus(address)","393bbbf8":"mokenName(uint256)","393cb7e3":"feesPerMillion()","393e0c63":"maxPreICOandICOSupply()","393e77c9":"minMonsterHit()","393eec7b":"setSafeToken(address)","393eefb8":"withdrawMyDividend()","393f4605":"getProviderWebsite(uint256)","393f7cd4":"init_dev_and_presale_allocation(address,address)","393fb37b":"gettruelevel(uint256,uint256)","39408c83":"icoFinishedDate()","3940e9ee":"total_supply()","3941456c":"frontendAddress()","39419d60":"grandConsolationRewards()","394218b1":"electNewMayor(address)","3942a979":"s6(bytes1)","39431308":"commissionPercentForCreator()","3943380c":"key()","3943807b":"insert(bytes,bytes,int256)","3943909e":"ScamStamp()","39443b8e":"canDeposit(uint256)","3944615c":"getCompanyAddress()","3944750d":"ACCEPT_EXCHANGE()","394479c5":"TestKeiosToken()","39451a88":"tokenBurn(uint256)","394580d2":"distributeManyTokens(address[])","394610cf":"tokensTotal()","39464884":"entryInfo(uint256)","3947050f":"randomTicket()","39478568":"isFounder()","39495f8e":"RealTract(uint256,string,string)","3949630e":"before_test_method()","3949b636":"doDaysFollowEachOther(uint256[])","394a0926":"addUnicorn(address,uint256)","394a3f61":"updateFollower(uint256,bool)","394a8698":"getTotalBondValue()","394b0ba9":"RetengoToken()","394bcb49":"updateClient(address)","394c21e7":"cancelOrder(address[5],uint256[6],uint256)","394cd121":"qryModuleDetail(string,string)","394d57a2":"EtherPriceUpdate(uint256)","394da86b":"WEECoin()","394dfffb":"GFCI(uint256,string,uint8,string)","394e0cdd":"standingOrdersByOwner(address,uint256)","394f4ec6":"User(bytes32,bytes32,bytes32,bytes32,bytes32)","394fc3a6":"MaecenasToken()","39500019":"voteWithSpecifiedAmounts(bytes32,uint256,uint256,uint256,address)","39500105":"egcd(int256,int256)","39509351":"increaseAllowance(address,uint256)","3950d1b2":"p1_duration()","3950f3a2":"disavowTokens()","39515e3c":"bonusOver30ETH()","39518b5e":"startingTime()","39527ed6":"withdrawTatAmount(uint256)","395382ee":"squareWins(uint256,uint256)","3953ca8b":"setPropertyRowColor(uint16,uint8,uint256)","3953f4a1":"setLastEditionOf(uint256,uint256)","3954a389":"c_MaximumFunds()","3954b4ee":"pricePerEther()","3955b070":"unhold(uint256)","3955b6af":"_createToken(uint256,address)","3955c147":"MatchmasterPrevails(address,address,uint256,uint256,uint256)","3955f0fe":"sellEggs()","3955f12e":"crowdSaleOn()","39564561":"isCapper(address)","3956e963":"Mydo()","39575795":"getBalances1()","395764ff":"OilToken(string,string,uint256)","3957f093":"calculateTokensAmountToSale(uint256,uint256)","39580054":"getOpponent()","3958884b":"unblock(bytes32)","3959b945":"getSolver(bytes32,string)","395a9ab3":"Success()","395acdeb":"lockedCounts()","395b6f71":"getOrderBookInfo(address)","395b9467":"totalSUM()","395c22c9":"submitNewPolicy(string,string,string,string,string,string,string,string)","395deefa":"RefreshDayBonus()","395ea0c9":"Medikia()","395eda08":"MINIPOOLS_LLV_FIFA_1()","395ede4d":"collectToken(address)","395eec79":"studInfo(uint256)","3960c001":"buy(uint32,uint16,uint32,bytes16,bytes32)","3960eddf":"SupeciesToken(uint256,string,uint8,string)","3960f787":"decrypt(uint256[])","39612b0e":"refundingIndex()","39614759":"toBase58Checked(uint256,bytes1)","39614e4f":"bytesToString(bytes)","39624847":"getNumWinners()","39625faf":"pokerbox()","3962c4ff":"TimeStart()","3962d9f1":"User(bytes32,bytes32,uint256)","3962f82d":"getTokensCount()","39631849":"transferOutBalance()","39633cee":"getCompte_39()","39635d13":"withdrawToTeamStep1(uint256)","39636504":"teamPool()","39637616":"setTimedCrowdsale(uint256,uint256)","39639fbd":"trackToken(address)","3963d0c1":"MonthlyPaySend(uint256,address)","39658245":"ChannelTimeout()","3965e75d":"cancelEnter(address)","3966291e":"StaticEthAvailables(address[])","396724c3":"getCCH_edit_1()","39673345":"EPCToken(string,string,string)","396773b7":"getHeader(uint256)","39681333":"get_last_global_audit_time()","396876bd":"mintAllowance()","39688256":"tokenHardCap()","39694f47":"totalUnClaimed()","396bf78a":"WalchainToken()","396c8228":"purchase(uint16,address)","396d1ddf":"totalAdvisor()","396e70e0":"reducePlayersJadeProduction(address,uint256)","396ed0ab":"Burn()","396ff799":"setFoundersTokensWalletMaster(address)","3970f698":"tokenForSale()","39714adb":"trackHolder(address)","397182ef":"buyInSharePrice()","3971ee42":"promo(address[])","3971eea1":"bidReferral(uint256,uint256)","3972323a":"lockedBalances(uint256)","39737ea4":"proposalData(string,address,uint256,bytes)","3973e87e":"betSizeFINNEY()","397412cb":"setMinPrivateSaleBuy(uint256)","39745791":"removeWhiteList(address[])","3974874b":"drop(address[],uint256)","3975e32b":"RequestTest(bytes32,bytes32)","3976304e":"topupEnergy(uint256)","397656c6":"enableTuneOption(uint256)","3976b022":"LOG_SuccessfulSend(address,uint256,uint256)","3976be0b":"DCToken(uint256,string,uint8,string)","39774576":"isMiBoodleToken()","39785281":"winAmount3()","39785550":"withdrawAnyERC20(address,address,uint256)","39787fbd":"payeeArray(uint256)","39788bc8":"approval()","397895f3":"HoldChanged(address,uint256,uint256)","397986a1":"setUpAllowance()","39799e5d":"test_updateKey_missingId()","397a6b3d":"PrizeResultCalculated(uint256,uint256[])","397ab649":"Bet(address,uint256,address,uint256,uint256,uint256,address,uint256)","397b3378":"rewardPoolSupply()","397b8b17":"buyTokensForFiat(address,uint256)","397b90a5":"issueReserveToken(uint256)","397de27f":"changeServicePercent(uint256)","397e0287":"setIdentityExtended(bool,bool,bool)","397e8091":"betFeeMin()","397e953f":"ERC721Contract()","397eb91b":"closeLoanOnBehalfOf(address,address,bytes32,uint256)","397edab9":"ChangeOperatorAccount(address)","397efdbc":"CodeMailStampSale()","397f2a71":"getNbNamespaces()","397fa015":"updateCrowdsaleInfo(address,string)","397fe617":"CROSAIR_PRICE_THRESHOLD()","3980b680":"isHolidayToday()","3982b10d":"read_collectors_addresses()","3982b55d":"XCareToken(uint256,string,string)","3983af00":"setYearTwoMultiplier(uint256)","3983d5c4":"calcBaseFee(uint256)","398427e6":"sendByCheque(address,uint256,bytes,uint256,uint8,bytes32,bytes32)","39846a67":"sol_clean(uint256,uint256)","39849771":"maxBetDivisor()","39849a67":"isSpaceExist(uint256)","3984a89b":"updateFamedStarOwner(uint256,address)","3984ae12":"bountiesMinted()","3985a4ab":"crowdsaleEndDeclarationTime()","398712b5":"clearTheSeason(uint32)","3987fcb4":"setGasForFLKD(uint256)","39882a2d":"setUseWhitelistFlag(bool)","39885b23":"finishPreSale()","3988bad8":"pendingRewardsOf(address)","39895801":"allowPublicTransfer()","3989c666":"setRate(uint256,uint256,uint256)","398ab9a7":"totalPrizePool()","398af892":"Jimtoken()","398b35b1":"setShouldBlockPublicTrade(bool)","398bd6b2":"Cancelled(address)","398c1a89":"migrateOutByPayout(uint256[],bool,uint256)","398c7424":"getBalanceTokenContract()","398d07f0":"LightLemonUnicorn()","398d3c37":"getAyantDroitEconomique_Compte_1()","398d92bb":"withdrawTokens(uint256,address)","398e92a5":"updatePlotPrice(uint256,uint256)","398eb93c":"NardoT2()","398f0970":"secondsInBlock()","398f2648":"change_max_amount(uint256)","39900dcc":"totalBuriedCapsules()","39901be8":"getBoosterData(uint256)","39903398":"test_twoFalseAsserts()","399075da":"RES(address,uint256,string,string,uint8)","39907af1":"getSecurityValue()","39909f0b":"withdrawFundToOwner()","3990b7c7":"registerGold(address,address,bytes32)","39918c4f":"crowdsaleAllocation()","3991c09d":"addMatch(uint256,uint256)","3992503d":"TRIPAGO()","39927ebe":"registerGame(address,bool)","3992b494":"energyContract()","3994789d":"onICO(address,uint256)","3994b883":"SoccerBet(address,address)","3994bce4":"SALE_CAP_USD()","3995943b":"FUND_FRAC_TOP()","39960940":"registryRequestWeight()","39965233":"awardPrizes(uint256)","3998e2a9":"EBCoin()","39995511":"freezeAllTransactions()","3999968c":"mintRefCredits(address,uint256)","3999bbce":"SmartBitcoin()","399a24b1":"invokeFallback()","399ae724":"init(address,uint256)","399c0425":"buyingPrice()","399c6f55":"NewStage(uint256,string,string,uint256)","399cd55f":"ReferralRewarded(address,address,address,uint256,uint256,uint256)","399d6465":"getLockAmount(address)","399d7bf5":"against_ban_of(address)","399e3ca8":"PrivateSaleFinished()","399e7195":"CentraAsiaWhiteList()","399f6248":"ContractOwnershipBurn()","399fa840":"removeItem(address)","399fd8d9":"getDiaryLength()","399fdb86":"testFailNormalWhitelistReset()","39a12c3b":"Trade(uint256,uint256,bytes32,address,address)","39a13fb3":"enableTokenSale()","39a1e9ff":"SmallProject()","39a1ec37":"getInvestorDatePayout(address)","39a248f3":"feecounter()","39a26069":"housePercent()","39a2616c":"_removeDefaultOperator(address)","39a2a7bd":"confirmDeposit(uint64)","39a2b580":"_initialDistribution()","39a2bc8d":"SynchroCoin(uint256,uint256,uint256,address)","39a2eb2a":"selectWinners(uint256)","39a3f168":"secondPeriodWindows()","39a45a5c":"createGun(uint256,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","39a5a400":"TOKEN_SOFT_CAP()","39a5fdda":"earlyBackerSupply()","39a6ea72":"getEndICO()","39a73978":"unpackInvestment(bytes32)","39a7919f":"changeSupply(uint256)","39a7c3d9":"onMint(address,address,uint256)","39a7cb16":"retrieveCurrentTokensToOwner()","39a87bd9":"left31(uint256)","39a897fc":"Builded(address,address)","39a89c1a":"getNumberOfCapsules()","39a90f7a":"IS_MAINNET()","39a9144b":"_isTokenDiscounted(uint256)","39a9e6c5":"clearRequests()","39aa7599":"ITDollar(uint256,string,uint8,string)","39aaba25":"get_status()","39ac2d9b":"SuperTroopersRTscore()","39ac3300":"EtalonTokenPresale(address,address)","39ac7a08":"isMember(address,address)","39ad0212":"purchasers(address)","39ad8847":"fifth_withdrawal(uint256)","39ade9aa":"dDeployBallot(bytes32,bytes32,bytes32,uint256)","39ae662c":"setFactors(uint256,uint256,uint256,string)","39aee3b1":"CCCoin()","39af0513":"backlog()","39af0a81":"OPENCUKUR()","39b09ed8":"is_owned(uint256)","39b0b6c2":"updatePosition(address,int256,uint256)","39b0bc59":"getNonce(address,uint256,bytes)","39b0bde9":"Constrctor()","39b21937":"issue(address,bytes32)","39b22120":"contractBurn(address,uint256)","39b2447e":"addCutie(uint40,uint256)","39b25269":"makeOrder(address,address,uint256,uint256,address,uint256)","39b25ad1":"XcelToken(address)","39b26735":"TicTokenERC20()","39b333d9":"Play(uint8,uint8,uint8,uint8)","39b35753":"authCancel(address)","39b37ab0":"fee(uint256)","39b3fba8":"setRabbitData(uint256,uint32,uint32,uint32,uint256,uint8,bytes32,bytes32)","39b50688":"cancelSellOrder()","39b55e74":"developReserveAllocation()","39b57835":"multWee(uint256,uint256)","39b5ca6d":"MintFinished(address)","39b61914":"DescriptionPublished(string,address)","39b651c6":"paymentContractAddress()","39b6b1e5":"cancelBid(address,uint256)","39b73122":"createDataset(string,uint256,string)","39b73771":"_b3(string,uint256)","39b7e62f":"GENPCoin()","39b80e1b":"recoverAddressFromCommonSignature(bytes32,uint256,address,address,uint256,address,address,uint256,bytes)","39b83b68":"allowBank(string,address,bool)","39b8ce98":"weiCollected()","39b8dc40":"sunsetWithdrawalPeriod()","39b8e0ff":"proposeAllocation(address,address,uint256)","39b8e63c":"getPI_edit_9()","39ba645b":"revokeKYC(address)","39bbaed2":"SNOOP()","39bc91fa":"OwnerICOsupply()","39bea1f0":"coindropsWallet()","39bef274":"setRegionCoordinates(uint256,uint256,uint256,uint256,uint256)","39bf03b4":"NBAOnlineLaunchPromotion()","39bf5462":"MANHATTANPROXYWSHWY()","39c0c415":"toB32(uint256,uint256)","39c0ea6e":"rateProperty(uint256)","39c1852d":"withdrawal_party_b_gets()","39c2697c":"DELIVERED_FEE_FLAG()","39c27bd4":"substr(string,uint256,uint256)","39c28e82":"SSPParametersChanged(address)","39c294be":"minMargin()","39c2f6a0":"setConfiguration(uint256,uint256,uint256,int256)","39c38266":"manualBuy(address,uint256)","39c480c9":"endDate2()","39c5a13e":"secondVestAmount()","39c5dde6":"setInitialOwners(address[],uint256[])","39c5f3fc":"getNetworkId()","39c64f1b":"setPOOL_edit_5(string)","39c670f0":"claimedAirdropTokens(address)","39c73169":"totalSupplySale1()","39c7967d":"vote(address,uint256,uint256,string)","39c79cfc":"HJHToken(uint256,uint256)","39c79e0c":"close(bytes32)","39c7a376":"LogCreate(address,uint256,uint256)","39c7b6fc":"getMaxSend()","39c98a1b":"getCarOwner(uint32)","39c9ffe3":"deleteTeam(bytes32)","39ca6e86":"registryBase()","39cace6d":"PradxToken()","39caf7bb":"makeSwap(address,uint256,bytes32)","39cc8a8e":"GorToken()","39ccdd49":"createRef(bytes32,string)","39cd9dba":"KiwiCoin()","39cdde32":"ecverify(bytes32,bytes,address)","39ce3983":"debatingPeriod()","39ce743e":"replaceCharacter(uint16,uint16)","39cef0b7":"issueTokensForAssets(uint256)","39cfc56a":"ETHERanate()","39d00f12":"transferTokens(uint256,address[],address)","39d05fdd":"cetokToken()","39d08c2a":"saleOngoing()","39d1f908":"actualBalance()","39d2036d":"_validateMaxSellAmount(uint256)","39d20a5f":"read_user(address)","39d216f2":"chefOwner()","39d26051":"getOrCacheTargetReporterGasCosts()","39d2be30":"setDistributedAutonomousExchange(address,address)","39d319e5":"unblockUser(address)","39d31e14":"CoroToken()","39d34323":"product3_sell()","39d428ea":"AddToken(address,address,uint256,bool,uint256)","39d4e21a":"addToSellList(uint256,uint256,uint256)","39d51cc0":"get_testing_index()","39d66fc0":"effectiveValue(bytes4,uint256,bytes4)","39d8db86":"setICOPhase()","39d8dc9b":"BEST()","39dad8f5":"minusTourFreezingTime(uint256,uint256)","39dba209":"keysRec(uint256,uint256,uint256)","39dc5ef2":"depositTokens(address,address,uint256)","39dd134c":"advisoryPool()","39dd437b":"isWithinICOLimit(uint256)","39dea537":"registerNickname(string)","39df1608":"setPongAddress(address)","39e028ba":"AdviserTimeLock(address,address)","39e0c751":"setDiscountStage(uint256,uint256,uint256,uint256)","39e1038f":"getaddressfocuscardid()","39e1e859":"exchangeRateFUTX()","39e20523":"setWriter(address)","39e22509":"isCustomerHasKYC(address)","39e2637f":"TokenERC20(uint256,string,string,address)","39e301ff":"numWinnersToPay(uint32)","39e31ceb":"addressNotUpgradable()","39e33636":"EKK()","39e3407b":"isInFinalState()","39e395e2":"bidOnSynthesizingAuction(uint256,uint256)","39e3af9b":"isCanceled(uint256)","39e3ea83":"checkNotConfirmed(bytes32,uint256)","39e44ca4":"oraclize_network_name()","39e46ebe":"Quotation(uint256,string)","39e4dc18":"sendETH(bytes32,bytes32)","39e525f9":"resolveCallback(uint256)","39e53ca3":"updateUsersIndex(bytes32,uint256)","39e54c34":"_takeOffItem(uint256,uint8)","39e5a487":"BETSQUARE()","39e613d9":"mintVested(address,uint256,uint256,uint256)","39e65b46":"setIsRentByAtom(uint256,uint128)","39e7fddc":"feeAddr()","39e84cef":"EXT_COMPANY_STAKE_TWO()","39e851a3":"_isApproved(address,uint256)","39e899ee":"setWhiteList(address)","39e8bd48":"killMeshPoint(address,address,string,address)","39e8d1a4":"round1EndTime()","39e9eda1":"BackupChanged(address,address)","39ea68ba":"transferEntityOwnerPush(address,address)","39eabf7f":"bar(string,string)","39eb3491":"getMaximumPlayers()","39eb54d2":"bookExtendedVisit(uint256)","39eba5f9":"XXXXXXXX02(address[],uint256)","39ec68a3":"getRound(uint256,uint256)","39ecacac":"addContribution(address,uint256)","39ecc94f":"scamStampTokenAddress()","39eda73b":"jsonUpdate(string,string,string)","39edb660":"priceForDate(uint256)","39ede2b1":"SubmitNote(string)","39ef16f2":"Test2J()","39ef9105":"PhenixToken(uint256,string,uint8,string)","39efa270":"setClout(address)","39f05521":"withdrawVestedTokens()","39f165c6":"ParticipantAdded(address,uint256,uint256)","39f36220":"addThing(string,bytes32,string,string)","39f47875":"totalAmountOfWeiPaidToUsers()","39f4da78":"setSucessor(address)","39f4debc":"fillOrderAuto()","39f5b6b6":"fundsTreasury()","39f636ab":"changeRequiredSignatures(uint256)","39f64289":"quarter2()","39f64b52":"calcTokenPrice()","39f663ec":"isFundingFailState()","39f73a48":"fee2()","39f8e560":"setRewardAddress(address,address)","39f931b2":"placesSold()","39f95e63":"finaliseICO()","39fb1043":"_callRecipient(address,address,address,uint256,bytes,bytes,bool)","39fb435d":"initSiteSet(uint256)","39fc04f4":"setGftFundWallet(address,address,uint256)","39fc978d":"createCeleb(string,uint256,uint256[6],uint256[6])","39fd2003":"QPSEToken()","39fd615c":"complexityForBtcAddressPrefixWithLength(bytes,uint256)","39fdc5b7":"setExpectedStart(uint256)","39fded47":"Swap(address)","39fdf2fd":"OVERALLSOLD()","39ff8ff9":"CreatedBallot(address,uint256,uint256,bytes32)","39ffb234":"createContractScientist(string)","39ffd774":"getNamelessTouches()","39ffe67c":"withdrawOld(address)","3a000f23":"preallocate()","3a0046a3":"preIcoTokenHolders(address)","3a015ef9":"transferpoints(address,uint256)","3a01e53a":"getActivity(uint16)","3a02263c":"newController()","3a024d1c":"withdrawRewardedTokens(address,uint256)","3a027b26":"countDownToEndCrowdsale()","3a02a2cc":"addValidated(address)","3a03171c":"HARD_CAP()","3a035edf":"sendWinnerPriceToAll(uint256,uint8)","3a03ce87":"lockBatch(address[],uint256[],uint256[],uint256[])","3a051334":"adjustMOTFeeDiscount(uint256)","3a05369f":"getMax(uint32[])","3a060bc9":"isOnLent(uint256)","3a062acd":"LogEscrow(uint256)","3a067e64":"transferJackpot(address)","3a079bda":"AmethystCoin()","3a07e78a":"icoIsFinishedDate()","3a080e93":"rebondFromUnbonded(address,uint256)","3a089d17":"addressLength(address)","3a0936ce":"contributeMsgValue(uint256[])","3a0a377b":"new_id()","3a0aec6c":"distributeDEXT(address[],uint256,uint256)","3a0d6350":"batchTransfer()","3a0d649a":"fundsToBank()","3a0e0418":"Prepare()","3a0e2475":"etherDonation(bool)","3a0f12dc":"grantTokensByShare(address,uint256,uint256)","3a0f5500":"lastBlock_a6Hash_uint256()","3a1053a1":"TokenBlockPay()","3a10a614":"get_hidden_layers(uint256[])","3a11aa20":"mutiSendETHWithSameValue(address[],uint256)","3a11b6cf":"AnotherParticipant(address,uint256,uint256)","3a122e65":"SPECTRUM()","3a12e933":"startPublicSale(uint256,uint256)","3a134c00":"isFreeTransferAllowed()","3a1460ac":"mint(address[16],address,uint256)","3a14bf4c":"binomial(uint256,uint256)","3a15021a":"confirmAndForwardOnBehalf(address,uint256,bytes,bytes32,uint256[2],uint8[2],bytes32[2],bytes32[2])","3a157860":"freezeBlock()","3a15bbee":"changeInvestmentFee(uint16)","3a15e7ca":"migrateFromLegacyRepContract()","3a16c51e":"readyOracles()","3a16e81e":"determinePID(address)","3a16f2ef":"crowdsaleStop(bool)","3a1767e5":"callerAdd(address,address)","3a178d99":"isAvailable(uint256)","3a180fee":"sellQuantity()","3a190e60":"LeeroyPoints()","3a1a635e":"createNewRevision(bytes20,bytes32)","3a1ca19e":"get_property_layout(uint256)","3a1d9a7d":"secondPriceTime()","3a1e08e0":"setAllowedTokens(address,uint256,address[])","3a1e7130":"teamBonuses(uint256)","3a20bade":"registerIncome(address,uint256)","3a20e9df":"getProduct(bytes32)","3a21cb9d":"vestingAgent()","3a21ec8d":"bleachPrice()","3a22a593":"advisorAllocatedTime()","3a22a94d":"lockedTokensOf(address)","3a232c2d":"getCurrentBonusInPercent()","3a23399c":"getBidCountByToken(address)","3a237322":"superchain()","3a23a483":"approveTransferManager(address)","3a24d701":"doSuicide()","3a2524c1":"enableAllowBuy()","3a253cee":"removeOwnerRequest(address)","3a256daa":"getProposalExecutionTime(bytes32,address)","3a257fdc":"checkFwdAddressUpgrade()","3a2647cf":"addMessageToQueue(string,string,uint256)","3a283d7d":"templates()","3a289d1b":"updateEscrowGoalReached()","3a2960e1":"numAllocations()","3a29c32e":"MCBA(uint256,string,string,address)","3a29ff34":"tokenClaims(bytes32,address)","3a2a0af2":"MCSToken()","3a2b4cdf":"addAgree(bytes32)","3a2b9c37":"GxCallableByDeploymentAdmin(address)","3a2bc42b":"fundPrize()","3a2c7a37":"ICOstate()","3a2d8784":"getDepositMultiplier()","3a2f1289":"BitQuickpay()","3a2f6e57":"transferAnyERC20Token(address,int256)","3a300490":"MarkRead()","3a300d6b":"updateAccountAmount(uint256,uint256)","3a30452a":"withdrawOverflow(address)","3a306682":"GSContract(uint256)","3a30cdec":"postWalletPayment(uint256)","3a311b84":"SimpleNameService()","3a31427b":"AcceptTxTaskEvent(address,uint256)","3a314b24":"SendETH(address)","3a319eff":"NZToken()","3a323bdf":"internalBurn(address,uint256)","3a32a387":"lockAmount(bytes32,bytes32,bytes32)","3a333d30":"TelewaveCoin()","3a338256":"getarg_1()","3a344ab8":"DragonToken(address)","3a349d20":"getOpenBidsByLine(bytes32)","3a34f09a":"getRandom(uint8,uint8,address)","3a357b1d":"isCrowdSaleStateICO()","3a36399e":"address1()","3a3650cf":"eurRaised()","3a365403":"maxWeis()","3a373db7":"batchTransferToken(address,address,uint8,bytes32[])","3a375a92":"allowsAllowance()","3a377c82":"_magic(uint256)","3a37a917":"KHCToken()","3a38a08c":"verifyOperation(address,uint32)","3a38b90f":"fusionChibis(uint256,uint256,uint256,string,string,uint8)","3a3ab672":"isOnWhitelist(address)","3a3af53f":"getMasterNodes(address,uint256)","3a3b0382":"PLATFORM_FUNDING_SUPPLY()","3a3b955b":"enableExchange(uint256)","3a3bc0cb":"feeCoownerAddress()","3a3bdf56":"claimOwnerFee(address)","3a3cd062":"clientWithdraw(uint256)","3a3d12d4":"numberOfItemsForSale()","3a3d523f":"setTokenLogic(address)","3a3e49fe":"referalAirdropsTokensAddress()","3a3e8e84":"getAuthorizer(uint256)","3a3eda84":"blockNumberForVictory()","3a3f7279":"getProductRetailer(uint256)","3a3f8239":"claimOrder(uint256)","3a3fdf05":"remainAirdrop()","3a4027bb":"createWithReward(string,bool,uint256,address)","3a40c544":"exchangeERC20(address,address,uint256)","3a4148de":"setPreSalesSpecialUser(address,uint256)","3a4268e7":"doCall(bytes32,address)","3a42f7de":"changeShop(address)","3a447341":"SplendSale(uint128,uint128,uint128,uint128,uint256,uint256,uint128,uint128,uint128,uint128,address,address,address,address,address,address)","3a45268b":"LocklistAddressenable(address)","3a45af86":"modifyProductLimit(bytes32,uint256)","3a45d3ef":"setAllowanceBeforeWithdrawal(address,address,uint256)","3a4634e4":"changeCrytiblesAddress(address)","3a470b9e":"removeAccountMinter(address)","3a47de24":"Match()","3a47e629":"nCurves()","3a48f8c1":"removeFreelancer(address,uint256[],address)","3a49b95a":"getMyInvestment()","3a4a4233":"how()","3a4a921e":"revokeVested()","3a4ac98a":"tokensToEth(uint256,bool)","3a4b3664":"ownerBurn(uint256)","3a4b4532":"comission()","3a4b5e6d":"disallowOwner()","3a4b66f1":"stake()","3a4b948f":"hardBurnSMS(address,uint256)","3a4bece2":"CollectFromTransaction(address,uint256)","3a4c11b0":"setHydroStakingMinimum(uint256)","3a4cb854":"BrehonContractFactory()","3a4cba05":"SetCustomerInfo(uint64,bytes18,bytes32,bytes11)","3a4dcc88":"TronToken(address,address,uint256,string,uint8,string)","3a4de190":"repost(bytes32)","3a4e3342":"rate_BTCUSD()","3a4f6999":"maxNumber()","3a4faf7f":"max64(uint64,uint64)","3a50083d":"getRealXaurCoined()","3a500ae7":"JOYToken()","3a501155":"crowdSaleBalance()","3a50ccb7":"getMilestoneBonus()","3a5167e9":"forwardCollectedEther()","3a518b95":"functionName4(bytes32)","3a51d246":"getBalance(string)","3a525983":"TotalICOSupply()","3a531998":"getDisputeRoundDurationSeconds()","3a537b0c":"deliver(address,uint256)","3a5381b5":"validator()","3a551c6d":"HarborPresale(address,uint256,uint256,uint256,address,uint256,uint256,uint256)","3a559de6":"iGniter()","3a55f1f1":"BitcoinBravado()","3a562b78":"getOwnTokens(address)","3a573e02":"_badgeTotalSupply()","3a579abc":"withdrawTokensForEtheeraTeam(uint256,address[])","3a57e698":"registerGuide(address)","3a5860c4":"ETHERCExchange()","3a5b2080":"updateEducation(uint256,string,uint16)","3a5b5bde":"encrypt(string)","3a5d73d1":"airdrppReward()","3a5dd603":"chunk2IsAdded()","3a5e2576":"updateOwnerPercentage(uint256)","3a5ec2f8":"lemonsDroppedToTheWorld()","3a5eefc0":"EOSpace()","3a5f32cd":"updatePriceFreq()","3a600ce7":"sendToken(address,address)","3a60703b":"_transfer(uint256,address,address,uint256)","3a6120c5":"stopThinking(uint256)","3a6128db":"setLLV_edit_5(string)","3a6157cf":"richDatabase(uint256)","3a61738d":"calcReward(address)","3a618d26":"triggerRsclearRefund()","3a61dbfe":"ownerAddWorkRecord(address,uint256,bytes16)","3a621018":"unFreezeAccounts(address[])","3a62244f":"activateTransfers()","3a62a9d7":"AddressRegistered(address,string)","3a62cd2e":"currentCapEther()","3a62f663":"getAllPelvic()","3a63d886":"resource()","3a645c6d":"getLastTranche()","3a6514c8":"OddCoin()","3a669dd9":"TokenVesting(address,uint256,uint256,uint256,bool)","3a66caef":"ColuLocalCurrency(string,string,uint8,uint256,string)","3a672722":"ccSupply()","3a674500":"finalizeApprovedContracts()","3a677696":"setMigrateFrom(address)","3a67a0f6":"disableTransfers()","3a689082":"withrawFee()","3a693759":"changeRescueAccount(address)","3a699294":"Schmeckle()","3a69ab39":"getItemId(bytes4)","3a69db94":"multiDynamic(uint256[2][])","3a6a0474":"VisualTechnologyToken()","3a6a2a69":"lockAssetHolder()","3a6a43f4":"marketingTokenAllocation()","3a6a4d2e":"distributeFunds()","3a6ab569":"setMemberInfo(address,bytes32)","3a6ddf70":"sendit(address,uint256)","3a6e3d98":"calcCommission(uint256)","3a6eb318":"getMiningReward(uint256)","3a6f85b1":"TIER2_BONUS()","3a6fbacb":"currentAmountReceivedDeposit1Ether18Decimals()","3a6ffc92":"GetBetResult()","3a70491e":"incrementBattles(uint256,bool)","3a70eabd":"GetMinerUnclaimedICOShare(address)","3a7104d1":"updateFlag()","3a71386f":"functionName2(bytes32)","3a7221e0":"bestInvestorInfo()","3a72cd49":"preSaleFinishedProcess(uint256)","3a7327a3":"setAccessLevel(address,uint256)","3a7343ba":"setBeneficiary(address,uint256,uint256,uint256)","3a73b0ad":"HypeToken()","3a740a63":"getBonus(address)","3a74a767":"_setAdmin(address)","3a74b05b":"changeDesigner(address)","3a74c05b":"updateMasternode(uint256)","3a750183":"_commitHash(bytes32)","3a752c31":"HARDCAP_TOKENS_PRE_ICO()","3a7562ee":"addLegitRaceAddress(address)","3a762f73":"getRunningRazInstance(uint256)","3a764462":"enableTokenTransfer()","3a76a282":"getBlocksTillMatthew()","3a76abff":"_eraseNode(uint256,bytes32[],bytes32)","3a7749c0":"bonusRatePeriodTwo()","3a774b48":"register(address,uint256,uint256,uint256)","3a777ce0":"_C_sendToToteLiquidatorWallet()","3a77c91a":"setNotes(string)","3a789ffb":"setMinAndMaxEthersForPublicSale(uint256,uint256)","3a78e324":"updateIsAttached(uint256,uint256)","3a79311f":"Ploutos()","3a79a55c":"needsLotteryFinalization()","3a7a1ba9":"EscapeHatchCalled(uint256)","3a7a302c":"LogCrowdsaleStarted()","3a7a52d2":"HasCard(address,uint32)","3a7bd7b5":"isMixGen()","3a7befc6":"checkUserTokenBalance(address)","3a7c92af":"LogWeekRate(uint32,uint256)","3a7d22bc":"getElement(uint256)","3a7d280c":"login(string)","3a7d8df3":"ClubToken()","3a7e6854":"setnewPlayerFee(uint256)","3a7f5e2c":"LogFundsUnlocked(address,uint256,uint256)","3a7fb796":"mintGreen(int256,address,uint256)","3a80bd25":"CoinVillaTalk()","3a830a96":"Leimen()","3a8343ee":"confirmCustodianChange(bytes32)","3a838636":"withdrawTeam(address)","3a842044":"getDeviceById(uint8)","3a8468f7":"isToOffChainAddress(address)","3a84f002":"commitDispute(uint256)","3a8504b5":"NewSale(address,uint256,uint256,bool)","3a876e88":"setMDAPPSale(address)","3a878528":"setlvlNominalValue(string)","3a88594d":"isOptionPairRegistered(address,uint256,address,uint256,uint256)","3a8a0a5c":"prizeMoneyAsset()","3a8a7907":"getbetData(int8,int8,address)","3a8ac516":"toKiwi(uint256)","3a8b069e":"depositCreator()","3a8ba4f6":"removeResolvers(address[],bool)","3a8bcc91":"startPrice(uint256)","3a8c5065":"developer_add_Exchanges(string)","3a8d1eb1":"creditWinner()","3a8d6e5e":"viewKYCAccepted(address)","3a8ed5c4":"deathFactor_v()","3a8f1585":"createChannel(uint256,address,address)","3a8fdd7d":"getExchangeCost(address,address,uint256,bytes)","3a903dfa":"LEYBAERT()","3a911d30":"getAppsCount(address)","3a9143e6":"CCHToken(uint256,string,string)","3a91db97":"onNewCampaign(uint256,address)","3a920766":"WALLET_TEAM()","3a9214d2":"AsiaPropertyCoin()","3a9253a3":"BurnMe(address)","3a92a590":"YuanTaiToken(uint256,string,uint8,string)","3a9407ec":"abstractFunc()","3a94ab31":"_upgradeTo(uint256,address)","3a95152d":"getEvaluationCountByStudentID(uint32)","3a9588ba":"changeOwnerWithTokens(address)","3a95a332":"left57(uint256)","3a95a3c8":"init(uint8,uint256)","3a963033":"_addIndexGame(address)","3a96d16d":"setInitialAllocationTimelock(address,uint32)","3a96df81":"bbwallet()","3a96fdd7":"compare(string,string)","3a98c533":"getElementOwners(uint256[])","3a98ef39":"totalShares()","3a9c0ae7":"issueDividendReward()","3a9c7d3d":"maxMultiplierByAddress(address)","3a9c9ffc":"historyCount()","3a9d8be8":"moveAccountOut()","3a9db5a7":"_withdrawBonus(address)","3a9e7433":"scheduleCall(bytes4,uint256,uint256,uint8)","3a9e9d0d":"prizeCooldowns(uint256)","3a9ebefd":"decrement(uint256)","3a9eea12":"Impressio()","3a9f967e":"TOKENS_SOFT_CAP()","3aa0145a":"getFinalAmount(uint256,uint8)","3aa0396a":"mintFromICO(address,uint256)","3aa0eafb":"registrarUsuario(bytes32,bytes32,bytes32,bytes32)","3aa2ad63":"_setPlayerId(uint256,uint256)","3aa36dd4":"GetSaleInfo_Presale(uint8)","3aa3f154":"TokenSale(address,address,uint256,uint256)","3aa3f75a":"isOpenForSale()","3aa435a5":"DST_TEAM()","3aa4868a":"computeCacheRoot(uint256,uint256,uint256[],uint256[],uint256)","3aa49656":"phase2MaxEtherCap()","3aa51e41":"vaultFunds()","3aa5f4f7":"changeTokenSettings(uint16,uint256,uint256)","3aa5fe59":"hashAddress(address)","3aa612b9":"FT_TEAM_FUND()","3aa6608e":"processOrder(uint128,uint256)","3aa6c4f9":"withdrawableBalanceOf(address)","3aa6f0ee":"getRedemptionRequest(uint256)","3aa718d5":"changeDeveloperCATDestinationAddress(address)","3aa7429c":"TestX()","3aa89e83":"preICOActive()","3aa90889":"frozenPauseTime()","3aa935cb":"setDonationProportion(uint256,uint256)","3aa9376c":"releaseTokenSaleJM(address,uint256)","3aa94b1d":"getCoinStats(uint256)","3aaa36e6":"Fees()","3aaa3f24":"setPhaseSold(uint256,uint256)","3aaa74b2":"withdrawTips()","3aab3306":"SmartController(address)","3aab47b2":"UnpackDOT(bytes)","3aac430c":"TAKE()","3aac7661":"changeMonsterNickname(uint256,string)","3aaec03d":"kingGladiator()","3aaec5c5":"addToWhiteList(address[],uint256)","3aaf1898":"supplement(uint256)","3aaf3232":"maxRoundDelay()","3ab1a494":"setWithdrawAddress(address)","3ab1b765":"MainstreetCrowdfund(uint256,uint256,uint256,uint256,uint256,address,address,address,address)","3ab1e703":"roundMoneyDown3SF(uint256)","3ab207a3":"Flash()","3ab2dcec":"countCows()","3ab337b9":"addData(uint8,string,string,string)","3ab3bfc1":"splitFunds(string)","3ab4c395":"STARTING_SQUIRREL()","3ab50a9c":"getVersion(string)","3ab55c44":"getCurrentTokenPriceICO(uint256)","3ab562f2":"nextTarget()","3ab5657d":"getSourceConstraint(uint256,uint256,uint256)","3ab58703":"coldStorageYears()","3ab64c33":"beneficiaryMultiSig()","3ab71189":"_detailsLength()","3ab81062":"GOGO()","3ab89b78":"testFailHitPresaleCapPreDistribute()","3ab8e61a":"querybalance2()","3ab8ee2f":"HonestisnetworkICOregulations()","3ab966f4":"lastTokenPriceWei()","3aba9e9b":"WiredToken()","3abbf56a":"_setHourlyValueDecayRate(uint128)","3abc2106":"suicideContract()","3abcf3e7":"checkAssetListLength()","3abd0136":"totalBuyers()","3abd3a68":"summPartnershipsAndExchanges()","3abd8e4e":"getother()","3abdad4e":"totalCascadingPercentage()","3abdf792":"BATTLE_POINT_DECIMALS()","3abe2280":"updateTemperature(uint8)","3abee034":"emitRLC(uint256)","3abf30fc":"hash(bytes32,uint256)","3ac07183":"setDeprecated(bytes32)","3ac0feac":"getApprovedProposals()","3ac14078":"SEEDWhitelist()","3ac140e8":"distributorCount()","3ac163a7":"RepToken(address,uint256,address)","3ac19acf":"GenChipLevel_General(uint256,uint256,uint256)","3ac256d8":"getCurrentMilestonePostponingProposalDuration()","3ac2f3cc":"YinchengToken(address,address)","3ac31e02":"icoBalance()","3ac39d4b":"updateDarknodeDeregisteredAt(address,uint256)","3ac3a2fe":"teamPrizeClaim(uint256)","3ac4217c":"setJackpot(address,uint256)","3ac46b25":"getWithdrawableAmountPES(address)","3ac46e6b":"Irb()","3ac4aeeb":"amountFunded(bytes32,string,address,address)","3ac5cb73":"GeometricPonzi()","3ac6dd9d":"createPromotionalPurchase(uint256,uint256,address,uint256)","3ac70266":"setType(uint256,uint256)","3ac7d6fe":"pendingAddress()","3ac7fe84":"TestUtils()","3ac87121":"currentWorkStagePercent()","3ac8858b":"setMinimalBet(uint256)","3ac8b026":"storeShip(uint16,uint16,uint8,uint256,bytes32)","3ac8ca63":"beginContrib()","3ac9a77a":"createGen0Auction(uint256,uint16,uint16,uint16,uint16,uint16)","3ac9dfa3":"AgrolotToken()","3aca3788":"UCCoinSaleIsOn(uint256)","3aca9ffd":"createNewMsgAwaitingAudit(string,uint256)","3acab680":"SafeMath()","3acacfbe":"capitalFundable()","3acbd9eb":"doesOwnBase(bytes32,address)","3acbe450":"sow(uint256)","3acc2712":"partialUnlockAngelsAccounts(address[])","3accb428":"distributionMinter()","3acce2b2":"addRecord(string,address,string,address)","3acd8b80":"initExAlice(address,uint256)","3acddfc1":"marker()","3ace049e":"allowedSenders(uint256)","3acf4f9f":"ownershipUnits(bytes32,address)","3acf597c":"globalParams()","3acfad2b":"toB32(uint256,address,bytes)","3acfc185":"moduleAddress(string)","3acfd909":"getOption(string)","3ad0486b":"Token_1()","3ad04d8f":"setupFundingTime(uint256,uint256)","3ad06d16":"upgradeTo(uint256,address)","3ad075ea":"maximumSellableTokens()","3ad0d840":"setAvailableSeats(uint256)","3ad10beb":"cup()","3ad10ef6":"devAddress()","3ad14af3":"add(uint32,uint32)","3ad15258":"getProfits()","3ad17019":"changeDepositStopTimeFromNow(uint256)","3ad213e0":"connectOrderUser(address,address,uint256,address)","3ad359cf":"setDelegateWallet(address)","3ad389f2":"SanJaviercoinforwe()","3ad49222":"getMinimumAmount(address)","3ad520d8":"interestArray(uint256)","3ad55b83":"Tyzon()","3ad5b3a2":"createFunding(address,uint256,uint256,uint256)","3ad6f8ac":"getMaxClaimableWeiAmount()","3ad7c15c":"setDefaultClaimPercentage(uint256)","3ad84c89":"TXOsaleTwo()","3ad9248c":"fillInvestorAccountWithBonus(address)","3ad9801d":"importReward(address,uint256)","3ad9a928":"setFeePercent(uint256,address)","3ad9f722":"sendPoolMoney(uint256)","3ada121c":"Ballot(address)","3adb2de7":"bet_this_spin()","3adb3ad5":"querySeed(uint256)","3adbb3a4":"mint(uint32,uint32,uint32)","3add5a99":"getContractCreationGas()","3adda69a":"doBuy()","3addedd3":"getCostForAttack(uint8)","3adf7280":"getTotalHashRate()","3adf96d7":"_createProxy(address)","3ae01f84":"USDOracle()","3ae033a0":"payBounties(address[],uint256[])","3ae0e63f":"BtradeWhiteList()","3ae15692":"EEFcoin(address)","3ae1786f":"returnTokens(uint256)","3ae192bd":"changeFactorySubscriptionFee(uint256)","3ae2119b":"selfKill()","3ae24412":"addAddWhitelist(address)","3ae25075":"_getBonusAmount(uint256,uint256)","3ae26afa":"getRate(bytes32,bytes)","3ae34403":"stage1Bonus()","3ae46aed":"UruguayvsPortugal()","3ae49204":"setWaracoinPerEther(uint256)","3ae4b008":"createBounty(string,address[],uint256)","3ae50ce7":"createPresaleUnicorns(uint256,address)","3ae69708":"cryptaurBackend()","3ae7cdfa":"fipsLegacyRegister(bytes20[],address)","3ae7f938":"hash(uint256,uint256,uint256,uint256)","3ae83bd4":"transferFreeze()","3ae9133d":"coupon(uint256,uint16,uint8,bytes32,bytes32)","3ae983a8":"OriginalMyAccessControl()","3ae9b510":"getLatestMajorTree(bytes32)","3ae9de9b":"StatusSecurity()","3aeac4e1":"withdrawToken(address,address)","3aeaccf5":"Address()","3aeb512c":"updateTranscoderWithFees(address,uint256,uint256)","3aeb6c71":"vestingPercent()","3aeb850a":"DaysTillUnlock()","3aebe2a3":"GluuTokenCrowdSale(uint256,uint256,uint256,uint256,uint256,uint256,address,address,uint256,address,address,address)","3aec4439":"NSCBurnToken()","3aec5458":"callEmitter(uint256)","3aecca37":"newManuscript(bytes32,string,address[])","3aecd0e3":"getTokenBalance(address)","3aedded5":"PUBLIC_SALES_3_RATE()","3aedf90a":"wei_raised()","3aedfb8b":"withdrawl()","3aee0254":"addWinner(uint256)","3aee69bb":"changeTeamAddress(address)","3aef157b":"wingsTokensReward()","3aef3900":"proposalContract()","3aefaa75":"computeHash(string)","3aefaeb8":"setTransferRate(uint256)","3af05903":"deleteApprovedWalletAddress(address)","3af0dbc1":"contributionsOf(address)","3af1e17e":"createCelebrity(string,address,address,uint256,uint256,bool,uint256[])","3af242fd":"_createTrainer(string,uint16,address)","3af2b770":"BOBOTOKEN3()","3af32abf":"isWhitelisted(address)","3af34254":"LogChangeAccountAddressForSponseeAddress(address)","3af39c21":"undefined()","3af3c72d":"changeBonusUntilDate(uint32)","3af3db55":"channelValidator(uint64,uint64)","3af3f24f":"totalCalls()","3af41dc2":"adminDeleteRegistry()","3af5b3aa":"month48Unlock()","3af5dbb6":"mandateInBlocks()","3af6486e":"testStartNewCampaign()","3af690c2":"claimId(bytes32,uint256)","3af74940":"setRemainingTokenHolder(address)","3af75ee1":"storeBlockWithFee(bytes,int256,bytes,int256)","3af76638":"deployAndSetANT(address)","3af7d71c":"LogN(address,bytes32,uint256,string,bytes,uint256,bytes1,uint256)","3af826a4":"auctionCancel(uint256)","3af8286f":"ContractFPC()","3af8470d":"Rate6()","3af88261":"deleteTokens(address,uint256)","3af8e4ab":"backupOwner()","3af90f35":"requiresAuction(bytes32)","3af91491":"convertMinimalToSignal(uint256)","3af923ff":"CreateRCN(address,uint256)","3af946d2":"testnetWithdrawn(address,uint256)","3af94817":"getPongvalRemote()","3af9e169":"setStartIcoMainICO(uint256)","3af9f8ac":"ArrowCOin()","3afa476c":"unstash(uint256)","3afa895f":"deleteSecondaryAddress(address,address)","3afb01d4":"testGetProgress()","3afbf039":"pastTenMinutes()","3afc7282":"getVoting(uint256)","3afd4b5e":"coef()","3afd716f":"setVIPLibraryAddress(address)","3afdbd83":"Activate(bytes32,string,string)","3afdce53":"newCrowdSale(string,string,string,uint256)","3afe3a8a":"GetEntityDelegatedRevoker(bytes32,uint8)","3b0007eb":"MinterChanged(address,address)","3b0107fc":"calculatePerformanceBonus(uint256)","3b011b30":"getSeedForTokenId(uint256)","3b016d83":"getAllBonus(uint256,uint256)","3b01788a":"throwIfSetPresaleTokensAfterActivation()","3b0363fa":"summFutureInvest()","3b039176":"CreateEvidence(bytes32,string)","3b040fb8":"failedKycCount()","3b048123":"onlyInEmergency()","3b048284":"totalCoinCap()","3b0506f7":"getVoteByAddress(address,uint256)","3b05a861":"setEthDepositAddress(address,address)","3b066dd7":"BunkToken()","3b06903e":"reassignModerator(address)","3b06a6fc":"toggleAuthorization(address,bytes32)","3b0732a4":"interaddtoken(address,uint256,uint256)","3b078de3":"changeIsPayableEnabledForAll()","3b079e10":"manualTransferToken()","3b0819b8":"create(uint256,uint256,address,address,uint256,uint256,address,uint256,bool)","3b08d35e":"setAuditReportBlockNumber(uint256,uint256)","3b098c8c":"assertEq13(bytes13,bytes13,bytes32)","3b0a895d":"setUsdEthRate(uint256)","3b0a9555":"_callReturn(address,bytes,uint256)","3b0ad68a":"InitializedToken(address)","3b0b037a":"getPriceChange(uint256)","3b0c197e":"getBook()","3b0d2764":"SNT(address)","3b0da260":"revokeVesting(address)","3b0da3b8":"updatePolicy2(bytes32,string,uint256,uint32,string)","3b0f0f2f":"getReferral(address)","3b0f343b":"getDividendAmount(address,address)","3b0f3ed3":"attend(uint32,string)","3b1019ef":"getAdvisersConsultantsTokens()","3b102248":"withdrawFromBalance(address,uint256)","3b107682":"DualIndex()","3b111bf3":"EtherTwitter()","3b116370":"GalacticX(uint256,string,string)","3b11b577":"CampaignOpen(uint256)","3b130649":"div256_128By256(uint256,uint256,uint256)","3b13873c":"addValidationPreSigned(address,bytes32,uint8,bytes32,bytes32,uint256)","3b13f8a6":"setDealerCut(uint8)","3b143184":"Congress(uint256,uint256,int256,address)","3b143b51":"untrustedProposals(uint256)","3b14ab12":"GetAquiredAssetBalance()","3b15a398":"rewardContributor(address,uint256)","3b161361":"VoidAccount(address,address,uint256)","3b1663be":"changeAdvisor(address)","3b16c27a":"ta()","3b16f5f6":"releaseMultiWithStage(address[])","3b172a32":"bancorToken()","3b172fb9":"AuctusToken()","3b17ebb1":"adminAddWinner()","3b192105":"_getLastDate()","3b19a17d":"resetOrderIdTo(uint256)","3b19c868":"BookingUpdate(address,uint256,uint8,uint256)","3b19d67a":"dateICO()","3b19e84a":"getTreasury()","3b1a4170":"cmulpow2(uint256)","3b1a520d":"testSimpleBurning()","3b1b69f9":"Upgradable(string)","3b1b8ca0":"trustedClients(address)","3b1bebd1":"referee()","3b1cbad8":"getArraySize()","3b1cda49":"GetBaseN(uint256)","3b1d21a2":"getCash()","3b1e2542":"updateToken(uint256,address,uint8)","3b1ecef0":"private_getGameState()","3b1ede9a":"LOOMIA2_ADDR()","3b1ef91c":"NeyrosNetwork()","3b1fe51b":"changeTimestamp(address,uint256,uint256)","3b20c3f3":"rocketLaunch(uint256)","3b215823":"taxFeeBps()","3b22263c":"move(uint16,uint8,uint8)","3b2269cf":"systemAcc()","3b22c8e3":"resolveGameByHand(uint32,uint32)","3b23a5ca":"switchStatus(bool)","3b242439":"ratioDenominator()","3b25a6b9":"processDeposits(address,uint256)","3b25cf37":"PintOd()","3b265d35":"MatchingEngine()","3b270710":"ico1stPrice()","3b278f2a":"icoPaused()","3b2812ad":"newWindow(uint8,uint256)","3b283ff9":"TransferAllowanceFor(address,bool)","3b29c470":"calcTokensAvailableToBuyback()","3b29fe55":"isSecondLockTimeEnd()","3b2aa8cd":"getWeaponEntity(uint256)","3b2b7fec":"setCompte_21(string)","3b2b8ce9":"setAirdropped(address)","3b2dbb7f":"token2Player(address,uint256)","3b2f3d4d":"BitCoin(address,uint256,uint256,uint256,address,address)","3b2fd34d":"backProjectXOwner()","3b2fe781":"sendEth(address[])","3b304147":"draw(uint256)","3b305964":"accBonusTokens()","3b30ba59":"ZRX_TOKEN_CONTRACT()","3b31cbad":"ContractFunded(address,uint256,uint256)","3b33175b":"setWhitelistIn(address,bool)","3b338da0":"getActionsCount(bytes)","3b33fe73":"setAuctionPrice(uint256)","3b340ceb":"DWEToken()","3b343a13":"getNodeAddress(bytes)","3b3493d3":"lost()","3b355af6":"baseData()","3b3561ea":"PresaleCapUpdated(uint256)","3b356d71":"playerKiller()","3b3571f1":"setMinHouseClassic(uint256)","3b357f4e":"determineInviter(uint256,bytes32)","3b35cde5":"Genesis(address)","3b360c7f":"getInvestorsAndTheirBalances()","3b3672bd":"getAddressLength()","3b37044d":"WWWToken(uint256,string,string)","3b3783e7":"ETHLotteryManager()","3b393b03":"Zorro02Token()","3b39becd":"isMainSaleRunning()","3b3a1a7a":"tokenIdPointer()","3b3ae670":"getBaseRandom()","3b3b57de":"addr(bytes32)","3b3c0717":"switchRecycleAllowed(bool)","3b3c594b":"updateOldToken(address)","3b3c5aed":"addSpecialRateConditions(address,uint256)","3b3d5b88":"completeUnlock(bytes32,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","3b3d9485":"calcRandomNumber()","3b3dca76":"rand()","3b3df3d5":"tradeIn(address,uint256)","3b3e672f":"transferBatch(address[],uint256[])","3b3fa917":"setStartTimePreIco(uint256)","3b3fb38b":"rebuySum(address)","3b404266":"getDeployAt(uint32,uint32)","3b4159da":"voteProposal(address,address,uint256,string,bytes)","3b41b5f2":"setTotalProjectEscrow(uint256)","3b421f9e":"greeter(bytes32)","3b424f09":"setPermission(address,bytes32,bool)","3b427b20":"changeWhitelistCornerstoneStatus(address,bool)","3b428c9b":"tokenForWei(uint256)","3b42dfad":"saleWeiLimitWithoutKYC()","3b434169":"setUsdPerHundredEth(uint256)","3b43fa0a":"DSAuth()","3b441344":"setOtherRich3D(address)","3b442edf":"deathData_a14()","3b44383f":"TokenERC20(uint256,string,string,uint8)","3b462d5b":"bounty(address[],uint256[])","3b46321f":"setMultisendLimit(uint256)","3b4656a1":"removeAssociatedAddress()","3b4664f0":"addToResult(int256)","3b46a7df":"ivote(bool)","3b46aca3":"fetchSnapshotBlockByIndex(uint256)","3b4700fa":"releaseLockToken()","3b470582":"getOverall()","3b4719d0":"getJockey(uint256)","3b47513b":"onlyWhitelisted(bytes,address,uint256,uint256,uint256)","3b478fc5":"ethUsdRate()","3b4793fc":"sendGift(address,uint256,string)","3b47d37a":"RealTimeRayTracing()","3b47dab6":"setSaleMinter(address,uint256)","3b4920b8":"batchMintPresaleTokens(address[],uint256[])","3b495d6b":"Petcoin()","3b496f53":"IssueAccepted(uint256)","3b49a77b":"hasConfirmed(bytes,address)","3b49c216":"_createSchedule(address,uint256,uint256,uint256,uint256,uint256)","3b49f84b":"TokenD(uint256,string,uint8,string)","3b4a00b4":"unPauseBuy()","3b4a20f2":"getExternalFundsRaised(string)","3b4a40cc":"ManagerAdded(address)","3b4b7808":"returnEthReceived()","3b4c4b25":"setSupply(uint256)","3b4cb5e5":"GoldFees()","3b4cc7a3":"totalCompanies()","3b4d75d8":"withdrawRemainPrivateCoin(uint256)","3b4d900a":"NANO()","3b4dbf8b":"setSecret(uint256)","3b4e06e6":"getTokenAmounts(uint256)","3b4e8dbf":"tokenDev()","3b4fb68f":"LXKToken()","3b52147f":"LogFundsCommitted(address,address,uint256,uint256,uint256,address)","3b5251b7":"getPlayerVoteRewards(address,uint256)","3b52f2be":"winnersLength()","3b53f274":"LogInt(string,uint256)","3b540814":"transferFundWallet(address)","3b545d2f":"etherToSendCharity()","3b5535b9":"getLastWeekStake(address)","3b55d26f":"workDone(address)","3b561709":"initTransferArr(address[],uint256[],uint256[])","3b563137":"transferBeer(address,uint256)","3b574beb":"minTokensToBuy()","3b57aa90":"setHash(address,uint16,bytes32)","3b57fdff":"emitMint(address,uint256)","3b58524d":"setAddress(address,address)","3b58d5d7":"getPremiumCarSupply(uint256)","3b58f49a":"setMinBounty(uint256)","3b591ea7":"AmountToForgeTheNextBlock()","3b594cd0":"_delegateAssetOwnerRemoved(bytes32,address)","3b599b18":"ChainclubToken()","3b5a3357":"transferForFinanceTeam(address,uint256)","3b5a938a":"kick(uint32)","3b5adcef":"reservedFundsCharging(address)","3b5ae589":"Bitcash()","3b5b64f4":"conversionsCount()","3b5c020d":"BOT_ELEMENT_4()","3b5dd70b":"bigBonusPercent()","3b5e295c":"maxmoneypercent()","3b5e5376":"baseComparable()","3b5f24eb":"percentile(uint256)","3b5f30db":"EKKChain()","3b5fdb83":"buyP3D()","3b615624":"getEndorsements(bytes32)","3b61db4c":"stopIco(address)","3b61f5f5":"ChangeAuctionMaster(address)","3b623c19":"StripperToken()","3b626b83":"getWidthrawStatFor(string)","3b630493":"DAPPToken()","3b632a74":"getInterMixed()","3b64e77e":"enableCrowdsaleRefund()","3b653755":"seedMarket(uint256)","3b663195":"init(bytes32)","3b664dc7":"addRoleForUser(address,string)","3b666e48":"getCurHash()","3b668059":"ContractBalance()","3b66c415":"EmergencyWithdrawalFailed(address)","3b66d02b":"tokenFallback(address,uint256)","3b68f8aa":"deleteDonator(address)","3b69eed4":"updatePlanetName(uint256,uint256,uint256,string)","3b6b639c":"luckyStoneEarning()","3b6b9a5e":"fuckingkill()","3b6c35c3":"MubsToken()","3b6c6c72":"SALE_MIN_CAP()","3b6cbaeb":"OverseasReturneesToken()","3b6d05c7":"mdtTeamAddress()","3b6d2544":"Found(uint8)","3b6dde13":"getRandomNumber(address)","3b6e2970":"ContractStakeToken(address)","3b6e31bb":"isAllowedToUpdateProxy(address)","3b6e750f":"isAcceptedToken(address)","3b6e8ec3":"doProvideMemoryAccesses(uint256,bytes32,uint256[],uint256[])","3b6ea083":"startTimeIco()","3b6ed0a7":"processSteps(uint256,uint256)","3b6ed992":"STBToken()","3b6eeb23":"HighestBidChanged(address,uint256)","3b704588":"BCT()","3b709e8d":"WeiN()","3b70b171":"saveBlock(string)","3b70cf44":"firstRoundCosmosEnd()","3b7104f2":"checkStatus()","3b7169fb":"setopVaultAddr(address)","3b72a1b6":"approveDeliverable(bytes32)","3b7404bc":"createDepositProxy(address)","3b746963":"minLimitPrivateSale()","3b750f86":"DDJDTCoin()","3b751f7f":"claimThroneRP(string)","3b7616ff":"fwdToResolver(bytes)","3b76594d":"depositFunds(uint256)","3b768433":"getByReferenceCode(bytes32)","3b77227c":"_addIndex(address)","3b7773cd":"WanchainContribution(address,uint256)","3b784e9e":"SafeOwnable()","3b789750":"transferAllFunds(address)","3b7a3b7f":"thisVotersName()","3b7a8ff5":"addInvestors(address[],uint256[],bool[])","3b7b9d83":"marketToken2021()","3b7bfda0":"boolStorage(bytes32)","3b7cbfcf":"depositPercents()","3b7d0946":"removePool(address)","3b7da659":"changeLocalCryptoContract(address,string)","3b7dc55e":"onMintCalled()","3b7e9825":"appendArray(uint8[],uint8)","3b7f7cfa":"getValidity()","3b7f9649":"localsTruth(address,uint256)","3b7ff404":"getVotersPartyVote()","3b809273":"unlockedReserveAndTeamFunds()","3b80938e":"setDeposit(address)","3b80fac0":"updateVisa(address,uint256,uint256,bytes32,uint256,uint256,uint256,uint256)","3b80fc5f":"elc()","3b81a5a4":"assertEq23(bytes23,bytes23,bytes32)","3b81b785":"showVotes(address)","3b81caf7":"TransferAdminPending(address)","3b825302":"deleteTokenGrant(address)","3b82fe0e":"sellItem(string,string,uint256,string)","3b84333e":"FaucetToken()","3b84bec7":"setTIME_TO_MAKE_TOMATOES(uint256)","3b84edbd":"setRNG(address)","3b85746f":"existsCountsByName(bytes32)","3b86758a":"window3TokenCreationCap()","3b8678de":"setDefenceBoss(uint256)","3b871b4a":"awards(uint256,uint256)","3b874521":"withdrow()","3b87ec2d":"ecoSystemFund()","3b882832":"updateIsReverted(bool)","3b8908f2":"investmentsCount()","3b89332e":"verify_signature(uint256[4],bytes32,uint256[2])","3b893c2d":"icoTotalBalance()","3b895f28":"stageTwo()","3b89a83a":"adminRefund()","3b89be73":"registerUser(address,string,uint256,uint256)","3b8a3d5e":"setPI_edit_4(string)","3b8b4a61":"createRefund()","3b8dbf6d":"operatorSendByTranche(bytes32,address,address,uint256,bytes,bytes)","3b8e2a26":"weiCapReached()","3b8e603c":"outputb(bytes32)","3b8e6f2e":"balanceAt(address,uint256)","3b8ea9e7":"getValuePayment(address,uint256)","3b8ecdf9":"right3(uint256)","3b8eee6d":"checkDistance(uint256,uint256)","3b8f0ef4":"counterRequest(uint256)","3b8ff7be":"getBB0()","3b8ffa5e":"addVoters(address[],bytes32[])","3b90176f":"getTotalNormalTokensByAddress(address)","3b903521":"setModel(address,uint256)","3b9056bf":"userWithdraw(uint256)","3b9178f7":"transferEntireStake(address)","3b91c253":"getSkillNames(uint256,uint256)","3b91ceef":"setMax(uint256,uint256)","3b91ee26":"agency()","3b92015e":"setTokenDiscountThreshold(uint256)","3b92d384":"barrierStrength()","3b92f3df":"payment(address)","3b930294":"voteTokenBalance(address)","3b932584":"buyTokens(address,string,string)","3b942742":"totalCoinSupply()","3b947d2b":"removeStablecoin(address)","3b949785":"raiseDollarsWithdrawalCancelled(address,uint160,int160)","3b94b012":"restartMinting(string)","3b957b67":"getSumAmountOfDisputedStepsProDoctor()","3b95f23e":"deactivatePackage(uint256)","3b968963":"shortAirdropTime()","3b971f9f":"_tokenPrice()","3b97e856":"tokenDecimals()","3b9855ea":"experienceToLevel(uint256)","3b9901cc":"getChannelsByRanks(address,uint256,uint256)","3b9927df":"HVZSupply()","3b996f40":"quarter(uint32,uint32,uint32,uint32)","3b99915d":"getMarketWallet()","3b9aa6f8":"getRare(string)","3b9aaae4":"avt()","3b9bbb2f":"withdrawTotalBalanceCommissionWei(address)","3b9bd54d":"ClientsHandler()","3b9c0fdc":"deleteRound(uint256)","3b9c67e1":"Press(uint256,uint256)","3b9c7ac2":"claimLockedTokens()","3b9ca2d0":"migrate(address,uint256,address)","3b9e1497":"updateVirus(address)","3b9e9c91":"testSettle()","3b9ed710":"caculateFill(uint256,uint256,uint256,uint256)","3b9f7d6b":"m_unclaimedHolderIdx()","3b9f87a5":"setNeedToReserve(uint256)","3b9ff58e":"Academicon(uint256,uint256)","3ba04463":"p_setInvestorsPercent(uint256,uint256)","3ba0b9a9":"exchangeRate()","3ba1356c":"earnedOf(address)","3ba15036":"getWei()","3ba2a67e":"lockFund(uint256)","3ba2aaf2":"setOwnerToken(address)","3ba2cfc1":"createBitcoinAddressPrefixTask(bytes,uint256,uint256,int256,uint256,int256)","3ba308dd":"preSaleTokenBalances()","3ba72b88":"checkAvailability(address,address)","3ba7ecc0":"BuzFinancialStrategy()","3ba86465":"oraclizeQueryCost()","3ba87e3e":"setMultiRequestFirstRequestId(uint256,uint256)","3ba8b0a8":"setPendingSignatureStatus(address,uint256)","3ba8c9a7":"mintingFinish()","3ba8f108":"SetOwner(string,address)","3ba93114":"getEtherMonsterInfo(uint256)","3baa8170":"setName(string,uint256)","3baad248":"delWhitelist(address,address[])","3bab3088":"DOCTokenSale()","3baba4d7":"milestonesLength()","3bac2837":"SSAToken()","3bacf5ed":"changeTokenHolder(address,address)","3badca25":"batchTransfers(address[],uint256[])","3bae15df":"deleteOwner()","3bae795e":"ActionAuction(address)","3baf35fb":"nPayments()","3baf4e1e":"newPayment(uint256,uint256)","3baf6e3f":"setReferral(address,address,uint256)","3baf77aa":"increaseClaimsBalance(address,uint256)","3bafc5c0":"removeBankroll(uint256)","3bb0cc55":"tokensReceived()","3bb168a1":"isPresaleFull(uint256)","3bb197cf":"icoPhaseAmount3()","3bb1a882":"TradeListing(address,address,address,uint256,uint256,uint256)","3bb28957":"p2_start()","3bb2dead":"resolveAddressLight(address)","3bb33d56":"checkAtkPlayerQuest(address)","3bb3a24d":"getTokenURI(uint256)","3bb4218a":"requireContractExists(uint256,bool)","3bb4497c":"getAllProviders()","3bb54b4c":"LOG_ContractStopped()","3bb5a02c":"unsetAllowedMultivest(address)","3bb5d604":"ExchangeWhitelist(address,address)","3bb66a7b":"getETHBalance(address)","3bb735e7":"Arrholders(uint256)","3bb81b60":"total_bet_purchased()","3bb8a87f":"getConsideredTokens()","3bb8bd85":"TICDist(uint256)","3bb8da29":"GetWorldData()","3bb91c77":"calculatePayout(uint256)","3bb9f133":"listSimpleService(uint32,string,uint256,address,address)","3bba16da":"ifClaimedNow(address)","3bba21dc":"swapTokenToEther(address,uint256,uint256)","3bba340c":"dateMainEnd()","3bba72c3":"TzTToken()","3bbac579":"isBot(address)","3bbacb55":"STVCOIN(uint256,string,string)","3bbb0025":"ownerOfRobot(uint256)","3bbb11a1":"getImageMetadata(uint256)","3bbb44ca":"eth_is_seeded()","3bbca7b4":"ImpToken(string,string,uint256,uint256)","3bbe0b5c":"OKFCrowdsale()","3bbed4a0":"setRecipient(address)","3bbf41d9":"GameState()","3bc0461a":"devFee(uint256)","3bc058c7":"setBS(bytes32,string)","3bc17b28":"round3TokensRemaning()","3bc17fc3":"CreateNewPool(address,address,uint256,uint256,uint256,bool,address[],uint256,uint256)","3bc19bba":"webGiftSentAmount()","3bc1e0f1":"depositCoin(bytes32,uint256)","3bc261bb":"balanceTokenContract()","3bc273b0":"changeWelcome(string)","3bc2859e":"blockOffset(uint256)","3bc2b866":"getBla()","3bc2bc42":"AddSubscriber(address,string,string)","3bc325ee":"withdrawTokenToInvestor()","3bc3c7f9":"ERC20Token(string,string,uint256,uint256)","3bc45598":"update_SRNT_price(uint256)","3bc47fbe":"campaignEnded()","3bc4be52":"ownersTokenIndex(address,uint256)","3bc518ea":"getTokenBySelf()","3bc578fe":"getClosingTimeByStage(uint256)","3bc58532":"hodler()","3bc5a0b7":"updateBytesSetting(uint256,bytes32,address,string,string)","3bc5b73e":"_saleSupply()","3bc5de30":"getData()","3bc5f48a":"addBook(string)","3bc6db30":"settleAndClose()","3bc70184":"getPurchase(uint256,uint256)","3bc756d0":"NACToken(uint256,string,uint8,string)","3bc764f7":"depositCPT(address,uint256,bytes32)","3bc7ebac":"pinnedCode()","3bc834fc":"usersAddress(address)","3bc867f5":"getLockedEth()","3bc91e28":"setCurrentRound(uint256)","3bc983d3":"decreaseAssuranvePayments(address,uint256)","3bca915f":"NickSterBate()","3bcb1edb":"_payoutDividends(address,address,uint256)","3bcbb6d8":"Zarina()","3bccbbbc":"phase3TokenSold()","3bcd6624":"approveTokensAndCall(address,uint256,uint256,bytes)","3bcdbd22":"TweedentityClaimer()","3bce14c8":"numberOfRecentPlayers()","3bceb170":"raisedByAddress(address)","3bced141":"transcodeReceiptHash(string,uint256,bytes32,bytes32,bytes)","3bcf7d22":"newBribedCitizen(address)","3bcff3b0":"getProjectCount()","3bd04d69":"addWhiteList(bytes32)","3bd099d3":"ICO_RATE()","3bd0a6e5":"clickButton()","3bd0aa47":"modifyItem(string,address,uint256,address,uint128)","3bd0dd47":"getBackEther()","3bd0f412":"changeMin(uint256)","3bd10bf1":"_seekOdd(uint256,uint256)","3bd137e0":"makerDAOMedianizer()","3bd3593f":"_PurchaseInsurance()","3bd4aab7":"_thirdLevelEth()","3bd575fa":"acceptTrustSC(address)","3bd5aceb":"nProposals()","3bd5c209":"getContractCreationData()","3bd6695e":"testCoin()","3bd74880":"HARDCAP()","3bd756b6":"addPrivateFund(address,uint256)","3bd794d0":"solveDispute(address,bytes32,address,bool)","3bd797b0":"Tasks(address,address)","3bd7a51a":"IfContractRegist(string,string,string,string)","3bd87ebd":"hardCapTime()","3bd89deb":"DAX()","3bdc5173":"disallowNorthPoleMinting()","3bdcaab9":"getEndpointBroker(address,bytes32,int256)","3bdd504a":"rateOfZNT()","3bde045f":"numberOfRounds()","3bde3072":"onAssetReceived(uint256,address,address,bytes,address,bytes)","3bde5ba8":"targetReached()","3bdebbe1":"withdrawERC20Token(address)","3bdf157a":"setoraclegasprice(uint256)","3bdf2c0c":"setBaseValue(uint256,uint256)","3bdfafac":"randomJackpot()","3bdff827":"StaticArbiter(address[])","3be08dab":"setAddress(address,address,address)","3be1212b":"approveValidDurationData(uint256)","3be1c410":"dev2Wallet2Pct()","3be1e952":"freezeTo(address,uint256,uint64)","3be272aa":"createRoom()","3be2b60c":"joinwithreferral(address)","3be31d63":"updateVerificationStatuses(address[],bool)","3be3a3f5":"setCloseTime(uint256)","3be3bdd9":"offTimeLock()","3be46378":"getAffiliate(uint256)","3be4ee30":"getUserTokenLocalBalance(address,address)","3be52c2c":"setStatusBurn(bool,bool)","3be546a2":"raiseDollarsAdded(address,uint160,int160)","3be554d4":"setCostPerDay(uint256)","3be59443":"_setOracle(address)","3be64ed7":"addPeriod(uint256,uint256,uint256)","3be6ccd9":"freezeWithdraw(address,uint256,uint256,bool)","3be746b6":"lockState(string)","3be75aa3":"shareLimit()","3be86ba1":"setIcoAgent(address,bool)","3be8fd6a":"setContent(string)","3be924fa":"hasAuth(string)","3be92863":"burnLotById(bytes32)","3be93b98":"createCountry(string,string,string,uint256)","3be94219":"purchaseAttack()","3be9cfb7":"changeDropper(address)","3bea92a3":"addToTipperQueue(uint256,address)","3bead271":"sale3(address,uint256)","3beb0044":"hminus(uint256,uint256)","3beb26c4":"setTime(uint256)","3beb4db1":"setIcoStage(uint256)","3bed33ce":"withdrawEther(uint256)","3bed93f2":"MAX_COLLECTORS()","3bee0613":"updateExchangeStatus(bool)","3bee8726":"getMaxContenders()","3beea695":"corruptElite()","3beedf6d":"lotteryAddress()","3befedea":"getPersonParents(uint256,bool)","3bf03e9e":"HelloWorldContract()","3bf11a6c":"initToken(address,address,uint256,uint256)","3bf12c88":"Rate1()","3bf13ded":"changERC20(address)","3bf17f75":"initializeCompanyTokens(uint256)","3bf2313d":"__transferToICAPWithReference(bytes32,uint256,string)","3bf2a861":"cancelOrder(bool,uint32)","3bf2b4cd":"approveDisband()","3bf2cade":"justPureFunction(int256)","3bf30f85":"execute(address[],bytes)","3bf329bf":"fraction(int216,int216)","3bf3d531":"miningThreePlat()","3bf47720":"totalTransfers()","3bf48672":"BattleToken(address)","3bf4ac5c":"day3Start()","3bf53a89":"unVoteAll()","3bf5b9c0":"getNumberByChoice(uint256)","3bf5f781":"Trendercoin()","3bf6de96":"max(uint256[])","3bf81b91":"testAddVoter()","3bf8f34a":"designatedReporterShowed()","3bf99b3f":"buyTokensByBTC(address,uint256)","3bf9b801":"_Hit()","3bfa0de9":"changeFundWallet2(address)","3bfa4449":"createFreeToken(string,address)","3bfb3246":"_detectInvestorGroup(uint256,address)","3bfb3c35":"fourthBonusEnds()","3bfca20f":"TokenToken(address)","3bfd7fd3":"incrementValue()","3bfdd7de":"transferManagment(address)","3bfecbf0":"setNeverdieSignerAddress(address)","3bfed5dc":"DolyToken2()","3bffb839":"Cryptolotto1Hour(address,address,address,address)","3bffd31e":"depositaPagamento()","3bfffc49":"getSumOfValues(uint256[])","3c0093a6":"MithrilToken()","3c01a9fa":"getEscapeRequests(uint32)","3c027d4f":"isTokenSelling(uint256)","3c0359a4":"certifications(uint256)","3c03d8be":"judgeAddress()","3c0471a2":"pregnantLinglongCats()","3c05187b":"execute(uint8,bytes32,bytes32,address,address,uint256,bytes,address,uint256)","3c067945":"fundBalance()","3c06ae68":"raiseBuyOrderMatched(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int160)","3c070b60":"dataSourceCallbackFinals(uint256,uint8[4])","3c077a48":"getAll(uint256)","3c0870ae":"challenge(uint256,uint256,uint256,bool)","3c096005":"managerAmount()","3c09ee26":"Token(address[],uint256)","3c0ab650":"buyAllAmount(address,address,uint256,address,uint256)","3c0afb59":"changeStartDate(uint256,uint256)","3c0b0279":"KhawCoin(uint256,string,string)","3c0b1c41":"AFTBToken()","3c0b8577":"getUserApproval(address)","3c0b9db2":"PolyDistribution(uint256)","3c0ba651":"getDutchAuctionToBuyAddress()","3c0cd36b":"manualPurchaseTokens(address,uint256)","3c0ce567":"fetchConfirm(address,bytes32)","3c0cfb3d":"mintMigrationTokens(address,uint256)","3c0dabdb":"getMidgradeCarSupply(uint256)","3c0dde1c":"_addPools(address,address)","3c0de47c":"probabilities()","3c0e1cc2":"revealPhaseMinSecondsWaitForClearMajority()","3c0e5d74":"frozenCheck(address,address)","3c0e6adc":"reset_individual_shares(address)","3c0f60ad":"setSecondaryStorage(address)","3c0f92e3":"supportAddOn(uint16,uint256)","3c0fc6ea":"kill(address[])","3c0fcdd1":"depositEgereg(uint256)","3c1008bb":"internal_transferFrom(address,address,uint256)","3c107402":"LongPlace(address[2],uint256[7],uint8,bytes32[2],uint256)","3c10d7cd":"bonusInPhase2()","3c11845e":"ContractConstructor(string)","3c11f969":"sentSecond()","3c121ef5":"is_empty()","3c126795":"OMIVIA()","3c130d90":"tokenURI()","3c133818":"winningVote(bytes32)","3c13ec32":"team1LockEndTime()","3c13fc33":"transferBase(uint256)","3c1593ab":"endFirstWeek()","3c15d28f":"createQuestion(string,address,uint128,uint256)","3c1650ff":"getData_23()","3c16761f":"SUM()","3c168093":"addOrder(uint256,uint256,address,address,uint256)","3c173bf0":"ZarfundsToken()","3c17494d":"set(uint16[],string,string,string,bool)","3c17622a":"setFreelancerSkills(address,address,uint256[])","3c17b656":"investmentGateway()","3c1800cd":"isPresaleEnd()","3c1853e7":"etherBack()","3c18d318":"sweeperOf(address)","3c198047":"RollToken()","3c19df06":"stakeCreativeCommonsContent(uint256,uint256,bytes8,uint256,string,string,string,string,uint256)","3c19fc06":"Holder()","3c1a7c6f":"getCountApplyForCertification()","3c1a7e2d":"adminWithdrawBCEO(uint8)","3c1a7eda":"certificate(bytes32,bytes32)","3c1a88d7":"blockTokens(address,uint256)","3c1ab2a3":"URL()","3c1b81a5":"getInstructor()","3c1b87f9":"setSettings(uint256,uint64,uint64,uint256)","3c1c423c":"getInfoLibra(bytes32)","3c1c5931":"promoCodeToContractAddress(bytes16)","3c1cc14e":"stopTokenSwap()","3c1ce6a5":"mintDigm(uint256)","3c1d28a3":"redeemLevAndFee(address)","3c1d7078":"BookCreated(address)","3c1e60a6":"tokenParametersSet()","3c1f1cb7":"ethSaver()","3c20307b":"CTWtoken()","3c203d44":"PreCrowdAllocation()","3c2040c1":"setInviteAdmin(address)","3c20485e":"limitIcoTokens()","3c205b05":"currAdminEpoch()","3c206900":"disableEmergencyBlock()","3c2087c9":"Withdrawal(address,uint16,uint256)","3c20d1a5":"getStageCap(uint8)","3c20ee6e":"_end()","3c21001d":"getMySentTradeOfferId()","3c21acc6":"extraMintArrayPending(address[])","3c21b968":"loadBalances(uint256[])","3c21db0a":"theGames(uint256)","3c21f0a1":"GHIToken(address)","3c21fa2e":"setELHeroTokenAddr(address)","3c226cd9":"ChangeDeadLine(uint256,bool,uint256)","3c22c935":"processMilestoneFinished()","3c232bb6":"set_traded_token_as_seeded()","3c237167":"getProductivityCitizens(uint256)","3c240a63":"updateFourthExhangeRate(uint256)","3c24550c":"isRefundTime()","3c263cf4":"savingPoints()","3c264820":"getWinningPayoutNumerator(uint256)","3c26777b":"StartedGame(address,uint256,uint256,uint256)","3c2698d5":"YUNLAI()","3c269b96":"setExchange(bool)","3c26cfe3":"drawLottery(string)","3c275e24":"getInfo(address,uint256,uint256)","3c276d86":"saleStartTimestamp()","3c278bd5":"lift(address)","3c279f1f":"submitWithdrawTokenTransaction(uint256,address,uint256)","3c28308a":"rndNo()","3c287a3f":"BitcoinDiamondToken()","3c28b9c0":"expirationInSeconds()","3c2aba9f":"manageApprovedTransferModule(address,bool)","3c2b0725":"delegateContract()","3c2b2508":"PREMINER_ADDED(address,address,uint256)","3c2c21a0":"scheduleCall(address,uint256,bytes4)","3c2c4b5e":"MASTER_WALLET()","3c2cf368":"BIGTTokenDeposit()","3c2d55e6":"GetSubscribers()","3c2d6447":"setIcoPercent(uint256)","3c2d70e9":"start(address,uint256)","3c2dba23":"stakedForPollID(address,bytes32)","3c2e2624":"transferManyDirect(address[],uint256)","3c2e2a75":"depositTokenForUser(address,uint256,address)","3c2e671e":"founder3Wallet()","3c2e6b32":"AquaSale(address,uint256,uint256,uint256,uint256,address,address,address,address,address,address,uint256)","3c2e7d54":"priv_inMainChain__(int256,int256)","3c2efb22":"isContributionRegistered(bytes32)","3c2f24af":"loopFor(uint256,uint256,uint256)","3c2f7df5":"incGen0Limit()","3c306250":"mybalance(address)","3c311f3c":"previous(uint256)","3c314a91":"playerGetPendingTxByAddress(address)","3c31762c":"setMinPurchaseValue(uint256)","3c31fa62":"setFeeRates(uint16,uint16,uint16)","3c324c2e":"totalCollectableToken()","3c32673f":"BTTSTokenUpdated(address,address)","3c329dc4":"delModule(string)","3c32d8ef":"getOffChainIdentity(address,address)","3c3313a8":"registerLoan(address)","3c335b0e":"getRetractable(bytes20)","3c33808d":"preallocateSecondStage(address,uint256,uint256)","3c33863c":"computeGroupPhasePoints(uint8,uint8)","3c33d473":"setLargeCapDelay(uint256)","3c345335":"addSignature(uint256)","3c347cbd":"_0xTestToken()","3c358483":"setData_10(string)","3c35a858":"processProcessableAllocations()","3c35c88a":"sendFundHome2()","3c37a88b":"stage4_start()","3c37b640":"commitHash(bytes32)","3c3861b6":"getRace(uint32)","3c389cc4":"erc20Impl()","3c391c95":"preSaleBonus2Time()","3c3a8c39":"UpcToken()","3c3ad016":"forceUpgrade(address[])","3c3b4b31":"getHouseTraits(uint256)","3c3b7995":"privateLimit()","3c3bdb7a":"changeExchange(address)","3c3be494":"dtCreateCityData(address,uint256,uint256)","3c3c22b3":"oldest()","3c3c88b1":"initializeOnTransfer()","3c3c9c23":"totalEth()","3c3ccc44":"startNextRound()","3c3ce17d":"insure()","3c3d1385":"tinhtong(uint256,uint256)","3c3d3af6":"amountInvested(address)","3c3d9ada":"_bctc(uint256,uint256,uint256,uint256,address)","3c3deb54":"contractCreatedTimestamp()","3c3e1662":"ctf_challenge_add_authorized_sender(address)","3c3e2447":"MINIMUM_BUY_AMOUNT()","3c3e6af4":"QTX()","3c3efdc9":"calculateEarnings(uint256)","3c3f4c63":"maxSpend()","3c3ff394":"IRECToken()","3c40066d":"investByLegalTender(address,uint256,uint256)","3c402bd1":"AMTBToken()","3c41c816":"EthlanceUser(address)","3c4293d8":"refund_my_ether()","3c42f95a":"setMetadata(string,uint256,bytes)","3c43b91d":"setStage2Ends(uint256)","3c444637":"setSaleBonus(uint256)","3c454d7f":"getper()","3c45b373":"addVoting(address,uint256)","3c46f604":"testDeleteCase()","3c473336":"isEndedTrack(bytes32)","3c4857a7":"_approve(uint256,address,address)","3c489238":"HappyFutureToken()","3c48d7de":"shapeshiftTransfer(uint256,string,string)","3c490a70":"getGlobal(uint256)","3c4961ff":"_processAirdrop(address,uint256)","3c49dde4":"registerDonation(address,uint256)","3c49ec88":"getMyKebabs()","3c49ff0c":"StarCoinPreSale(uint256,uint256,address,address,address,uint256,uint256,uint256)","3c4a2989":"POPCHAINCASH()","3c4a4b1e":"createTokenTimelock(address,uint256)","3c4b07de":"extUnlockBot(uint256,uint16)","3c4b303d":"token_decimals()","3c4b40b8":"fundingWallet()","3c4b5e2b":"setInviteeAccumulator(address,uint256)","3c4c51c9":"getClue()","3c4dbb17":"PriceWeekOne()","3c4e7d9f":"setESCBDevMultisig(address)","3c4ec769":"VCT()","3c4f3c12":"issueTokensSale(address,uint256)","3c4f5a66":"getActivePlayers()","3c4f5be3":"registrantOfToken(uint256)","3c50afe1":"_icoSupply()","3c50edbd":"getSidesById(uint256,uint256)","3c5192b7":"EscrowEscalation(uint256,uint256)","3c520944":"getPromoCodeForFish(bytes16)","3c526ef1":"_divideDecimalRound(uint256,uint256,uint256)","3c530ace":"registerProducer(address)","3c536938":"executeTransaction(uint256,uint256)","3c5395b2":"revokeAdmin(address,address)","3c53cb96":"lastBlock_v0Hash_uint256()","3c53dabe":"BeggarBetting()","3c540687":"txCount()","3c54ca8c":"trade(address,address)","3c54caa5":"reclaimTokens()","3c5524d8":"listContractByModuleName(string,string)","3c552556":"verify_signature(bytes32,uint8,bytes32,bytes32,address,address)","3c55563e":"cards_metal_total()","3c560064":"mintPartner(address,uint256)","3c566f0f":"shopStoreAddress(uint256)","3c56d236":"HashLotto()","3c56e2ae":"register(address,uint8,bytes32,bytes32)","3c56eae3":"setForceReadyTime(uint256)","3c5746dd":"recipientExtraMIT(address)","3c580e92":"setLocalGame(uint16,address)","3c584d86":"convertWT(uint256)","3c58795d":"hasFetchedProfit(address)","3c58d378":"lockChanges()","3c58ef44":"getWishIdxesAt(address)","3c594844":"leftToday()","3c5972ff":"multiSetWhiteList(uint256[])","3c59c17a":"AgentWallet()","3c5a12cb":"getVal(string)","3c5ad147":"Debug(string,uint256)","3c5b7d3f":"buyTkn(uint256)","3c5bd949":"mine_jade()","3c5bdcc4":"FCOIN0939Token(uint256,string,string,uint256)","3c5c6331":"addAddressToUniqueMap(address)","3c5d1812":"totalPhases()","3c5e270f":"teamSupplyAddress()","3c5e28d6":"setClientIdentRejectList(address[],uint8)","3c5e417e":"_mintApproveClear(address,address)","3c5e57e4":"_getRarity(uint8)","3c5e94dd":"bulkRegisterPoA(bytes32,bytes32,bytes32,uint256)","3c5f10a3":"winning_ticket()","3c5f2bf2":"getFullRace(uint256)","3c5fc608":"preDGZtoDGZExchangeRate()","3c617685":"SocialMediaPay()","3c61d003":"advertisingDeposit(uint256)","3c6251bd":"test_oneValidEqUint1()","3c627c9b":"releaseAndDistribute()","3c630356":"AirCrash()","3c63d000":"setBurnRequestStringMap(uint256,string,string)","3c6403b4":"GetAccountIsNotFrozenCount()","3c647fbd":"angelMaxAmount()","3c648ddd":"voteSvp01(bool)","3c64f9aa":"ClusterToken()","3c65c506":"adjust_difficulty()","3c6677d6":"promoBun(address,address)","3c667b13":"rentalsContract()","3c671e53":"collectPayout(address)","3c673470":"createGroup(address,bytes32,address[])","3c673c19":"deleteTopic(uint256)","3c67b6b7":"getClaimLeft(address)","3c67c51e":"testLogs()","3c67dad5":"revertLuckyCoin(address)","3c6806b8":"getDiary(uint256)","3c681da0":"getCandy(string)","3c6867c3":"CallBack(string,bytes32)","3c68eb81":"transferFunds()","3c695d4e":"authorityAddress()","3c69a5e6":"mintPresaleBonuses()","3c6a2929":"setArrIntF2ArrUintF3ArrBoolF1(int256[],uint256[],bool[])","3c6a71f7":"exchangeRatePreIco()","3c6aa9f1":"decimalsValue()","3c6b97c9":"TokenContribution()","3c6b9d8c":"captains()","3c6bb436":"val()","3c6bc24b":"getBrickDetail(uint256)","3c6bf582":"ElementBought(uint256,uint256,uint256,address,uint256,uint256,uint256)","3c6c67e2":"etherAllowance()","3c6d2610":"TalentToken(address)","3c6d2e19":"contributionsETH(address)","3c6d736d":"ZZZCoinERC20Token()","3c6d7b47":"setDebugNumber(uint256)","3c6dfba1":"buy(uint8,bytes6,uint32,uint32)","3c6e03d7":"thewhalegame()","3c6e5927":"getMonsterCurrentStats(uint64)","3c6ea2a5":"HooyToken()","3c6eab08":"KICKICOCrowdsale(address,address,address,address,address,address,address)","3c6ee392":"createTokens(uint256,uint256)","3c6f2cc4":"sendICOTokens(address,uint256)","3c704089":"DigitalCash()","3c7045fe":"takeEtherBack()","3c7066d1":"feeCMT(uint256)","3c7097a3":"setMaxCharId(uint32)","3c70bd42":"sell_(uint256)","3c716e08":"updateAuthority(address)","3c71b186":"ElementeumToken(uint256,address[],address[])","3c71b7b6":"validDelegateSignature(address,string,uint8,bytes32,bytes32,bytes32)","3c71faf2":"BMToken()","3c72751e":"lerp(uint256,uint256,uint256,uint256,uint256)","3c72a83e":"getKyberNetworkAddress()","3c72e9bf":"IMDEXadminWithdraw(address,uint256,address,uint256)","3c72f070":"initialTokensBalance()","3c73db77":"RecycleToken()","3c745371":"finalAddress()","3c745ad5":"nextProfile()","3c74db0f":"expirations(address)","3c76aa19":"CWCreturnQueryData()","3c771309":"setSiringRate(uint256,uint256)","3c774dbb":"buyChickenParkCoin(address)","3c775b08":"airdropLimit()","3c77b95c":"testExpUnroll16(int256,int256,uint256)","3c77e474":"_updateKeyPrice(uint256)","3c7818a1":"startRoundD()","3c78929e":"lockUntil()","3c78fe07":"getReceiver(uint32)","3c796430":"getOneTimePayment()","3c799547":"amountAvailable()","3c7a337a":"InDeepToken()","3c7a3aff":"commit()","3c7b3d90":"rewardAirdrop(address,uint256)","3c7b682d":"PunkOffered(uint256,uint256,address)","3c7b6869":"finishPresale(uint256)","3c7c2563":"createtoken(string,string,string,string)","3c7cc806":"validateOrderAuthorization_(bytes32,address,uint8,bytes32,bytes32)","3c7d6f30":"publicStartRegularPhase()","3c7e03c1":"getRelayingKing()","3c7e31f0":"addCutie(uint32,uint128,uint128,uint128,uint128)","3c7fdc70":"fibonacciNotify(uint256)","3c807878":"stageOne()","3c811ee0":"putSellOrder(address,uint256,uint256,uint256)","3c8161c5":"KVC(uint256,string,uint8,string)","3c816217":"killBoard(uint16)","3c81df21":"getMultisig()","3c8259b4":"SACoin()","3c837b7d":"changeSettings_only_Dev(uint256,uint256,uint8,uint8,uint256)","3c8394ac":"ICORaised()","3c83f7aa":"rateForPhase2()","3c842a26":"_Test_Oraclize()","3c847e52":"withdrawVested(address)","3c84f868":"set(int256,address,uint256)","3c8515b1":"_createCrypton(string,address,uint256,uint256,bool,uint8)","3c86063c":"insertInfo(string,uint256,uint256)","3c8766c6":"sendProfitsReward(address)","3c876c6f":"newIdShipProduct()","3c87b8ef":"get_player_state()","3c889e6f":"getBid(uint256)","3c889fe1":"masterCalculator(uint256)","3c890e4c":"getVoteStake(uint256,uint256,uint256,bool)","3c893718":"transferCity(address,address,uint256)","3c894475":"scheduleTransaction(address,bytes,uint8,uint256[6],uint256)","3c89f9d4":"accept(uint256,address[],uint256[])","3c8a072e":"temporalUnit()","3c8a321c":"setPaymentGatewayList(address)","3c8ac88e":"createIdentityWithCall(address,address,address,bytes)","3c8b0c55":"set_arbits_min_contribution(address,uint256)","3c8b6597":"addPrivateSaleTokensMulti(address[],uint256[])","3c8bb3e6":"wmultiply(uint256,uint256)","3c8bccd9":"getCommission(uint256)","3c8c681a":"RoundCSold()","3c8c6a1e":"sendToken(address,address,address,uint256)","3c8ca83d":"gameBeginTime()","3c8cd434":"getCabCoinsAmount()","3c8d284b":"receiveBtcPrice(uint256)","3c8da588":"priceInWei()","3c8e3b52":"getTotalPercent()","3c8e66fb":"calculateTotalDirectDebitAmount(uint256,uint256,uint256)","3c8eac87":"getTransactionState(uint256)","3c8f202e":"Dashicoin(uint256,string,uint8,string)","3c8f3278":"hmax(uint128,uint128)","3c8f96f1":"bonusTokens(uint256)","3c9046c9":"yearTwoClaimed()","3c9070b5":"ConsultaProva(address)","3c90861c":"Enigma()","3c90ee6a":"DNARtoGoldXchgRate()","3c918bae":"wallet3()","3c920d0d":"liquidityPoolTotal()","3c925f16":"getAccountHolder()","3c9266e0":"sendSalary(address)","3c9340ae":"orderForDays(bool[])","3c936e97":"lockBonusTokens(address,uint256,bytes1)","3c93d8be":"uint2hexstr(uint256)","3c941423":"getDesignatedCaller(bytes32,uint256)","3c959aca":"CheckTickets()","3c960be9":"transferFromSenderPaysFee(address,address,uint256,bytes)","3c961202":"getHighscore()","3c96a7a8":"withdrawOwnerFee()","3c96d048":"setnow(uint256)","3c9719a7":"getReleasableFunds(address)","3c984f4a":"sellTokensForEur(string,address,uint256,uint256)","3c993482":"_payfee()","3c9a4baa":"requestOutput(bytes)","3c9a5d59":"getAuditAuditor(uint256)","3c9ad41b":"tokenIssuedToday()","3c9af31c":"getSponsor(uint32,int256)","3c9c4001":"whitehat()","3c9c97f0":"setBlocksPerRound(uint64)","3c9d377d":"f5()","3c9d93b8":"removeAllowedAddress(address)","3c9ee04c":"previousstageplayer2()","3c9f861d":"totalBurn()","3c9ff012":"timeRangeCreateGen0()","3ca1595a":"addNewRaz(uint256,uint256,uint256,uint256,string)","3ca19952":"getBookingCount(address)","3ca22916":"dollarPerEtherRatio()","3ca520f5":"LaunchPartnersAmount()","3ca5c69c":"AllMake()","3ca5c8b8":"createFilmToken(string,uint256)","3ca6268e":"log(string,int256)","3ca63675":"getNumberOfVotes(uint128)","3ca65e77":"JMJToken()","3ca6a437":"assignedGameContract()","3ca6b228":"getEmployee(address,address)","3ca6c07a":"setTokenAdd(address)","3ca6d100":"create(string,string,uint256)","3ca6d5a9":"initialBuyPrice()","3ca7aad7":"xorReduce(uint8[],uint256)","3ca805ba":"pwrFloat(uint256,uint256,uint256,uint256)","3ca88a2f":"canBuy(uint256)","3ca8b002":"isDeploymentAdmin(address)","3ca95c89":"getCompte_26()","3ca967f3":"getCurrentExchangeRate()","3ca96e0e":"teamBonusAllocatedTokens()","3cab648a":"getModuleAddressByName(string)","3cac14c8":"returnArray()","3cac2387":"trustedTokens(address)","3cac38e4":"advanceStep()","3cacf895":"doPayments()","3cad71cf":"RetStatic(uint128)","3cad7c4e":"setLockQtyToAllowTrading(uint256)","3cae09ac":"silencePeriod()","3caebce4":"BRFToken()","3caed876":"submitTransaction()","3cb00fd2":"get_presale_iconiq_arbits_per_ether(address)","3cb025e2":"SimpleSafeToken()","3cb0b51b":"Redeem200AFTK16SeptSandbox()","3cb21103":"isAllowedFactProvider(address,address)","3cb260b2":"set_dimensions(uint256,uint256)","3cb27169":"receiverVestings(address,address)","3cb32f77":"currentHolders()","3cb3d027":"getTokenBankrollAddressFromTier(uint8)","3cb3ea68":"LAMBO_TYPE()","3cb40e16":"withdrawToOwner()","3cb4986a":"ZeusToken()","3cb4ff3c":"getActiveCards()","3cb579c1":"setValueParam(uint256)","3cb5bc74":"setMintLimits(uint256,uint256,uint256)","3cb5d100":"contributors(uint256)","3cb5d170":"sendTokenReleasedToBalanceInternal(address,address,address)","3cb5d1df":"TicTacPotato()","3cb6465e":"numOfWinner()","3cb6e20c":"LeadcoinSmartToken()","3cb802b9":"unclaimedDividends()","3cb83751":"getCofounderCount()","3cb8cfc8":"acceptTokens(address,uint256)","3cb8cfcd":"totalEthInWeiForPreIco()","3cb9032e":"getInvoicesCount(address,uint256)","3cb94596":"addressOf(bytes)","3cb960a6":"calcCORtoETC(uint256)","3cba3c77":"OperationalSplit(uint256)","3cba41bf":"store(bytes,address)","3cbcf9a4":"RatingToken(address,uint256)","3cbd4285":"addWinnigs(address[],uint256[])","3cbd6429":"playerId(address)","3cbdfcd9":"bountyTokensToAddress(address)","3cbe7309":"AgriChainDistribution()","3cbeb49a":"setColorBlue()","3cbec314":"FRUT()","3cbf41d2":"completeCrowdsale()","3cbfed74":"getBondBalance()","3cc0be9a":"setCompte_37(string)","3cc0fb45":"testFailRetractNotOwner()","3cc12603":"ABCToken(uint256)","3cc136e0":"destroyRoto(address,bytes32)","3cc1429c":"createEthAuction(uint256,address,uint256)","3cc15011":"_calculateExcessTokens(uint256,uint256)","3cc1635c":"deleteBooleanValue(bytes32)","3cc228fd":"minVotes()","3cc26b71":"admin_active_dividend(address)","3cc3c3b5":"terraformReserve()","3cc45596":"updateCar(uint256,bytes32,uint256,uint256,uint256,uint16,uint8,uint8,uint8,uint8,uint8)","3cc4c6ce":"resumeGame()","3cc54aae":"updateGenGuVault(uint256,uint256)","3cc626b6":"PotoToken()","3cc6441d":"Smile()","3cc71c3f":"COMMUNITY_ALLOWANCE_LIST()","3cc7508f":"uncooperativeClose(address,uint8,uint256)","3cc75749":"volumeType2()","3cc7790a":"GSI()","3cc7fd84":"infoTokenSilverRatio()","3cc86b80":"GetMoney(uint256,address)","3cc86b9a":"takeAllNotClaimedForRefundMoney()","3cc8daf7":"setNameOwner(bytes,address)","3cca2420":"contractData()","3cca779b":"gameOpen()","3ccad6fc":"getNamedAddresses()","3ccaf593":"createReport(string,string,string,string,uint8)","3ccb25a2":"setRequiredBlocksElapsedForVictory(uint256)","3ccb47cb":"roundPot()","3ccb4ae4":"initLocalNodeReputation(address)","3ccb6c31":"setWallet2(address)","3ccb7dc9":"CrowdFund(uint256,uint256)","3ccbad50":"initialize(address,address,address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256)","3ccc5e2c":"icoSale()","3ccc8193":"lastWiningTicketNumber()","3cccfc1b":"promotionCommisionPercent()","3ccd1c7f":"getFactoryProfit(uint256,address)","3ccdbb28":"withdrawToken(address,uint256,address)","3ccf127e":"raisePreSale()","3ccf5861":"TOSInstitutionsIncentiveContract()","3ccf5c8f":"setDelegadoDeEscuelaVerify(bytes32,bytes32,uint256,uint256)","3ccfd60b":"withdraw()","3cd109cb":"addAuthorizedOwners(address)","3cd17060":"getProposalHash(string)","3cd1b6b1":"isSponsorable(address,uint256)","3cd21d88":"ClosePeriodEvent(uint256,uint256,uint256,uint256)","3cd260e6":"doWorkAndPayEBT()","3cd2df82":"calculateTokensWithoutBonus(uint256)","3cd35429":"DQCoin()","3cd36358":"_getApproved(address,uint256)","3cd510ee":"getWinNumbers(string,uint256,uint256)","3cd5d5fc":"Sacar_BlackList(address)","3cd5f8ea":"addCourse(address)","3cd78a2b":"addToSpecialRatesMapping(address,address,uint256)","3cd8045e":"splitter()","3cd99b70":"setMaxDepartureLim(uint256)","3cd9a0fa":"stage_2_maxcap()","3cda0103":"supplyOf(string)","3cda0b45":"contribute(bytes8)","3cda6524":"addUnlockedAddress(address,address)","3cdb01ae":"atxChangeAddrCount()","3cdb3aa6":"activateRefund()","3cdb9762":"getTokenBalance(string,address)","3cdb982b":"getNumeroDeOuvidorias()","3cdbd414":"multivestBuy(bytes32,uint8,bytes32,bytes32)","3cdd37e1":"WatchedWallet(address,address)","3cdd9262":"peMaxPerPerson()","3cde5627":"SendEtherToDex(uint256)","3cdf60e2":"TurkCoin()","3cdf6783":"withdrawDeferred()","3ce0a093":"getHash(bytes8)","3ce0c432":"TokenPurchased(address,address,uint256,uint256,bytes)","3ce123dc":"highBidder()","3ce1314f":"setUnlockStart(uint256)","3ce17f24":"_createPlayer(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","3ce1f4e7":"testFailUpdateLatestRevisionNotUpdatable()","3ce24239":"AddSharedAccount(bytes32,address,bytes32,bytes32,bytes32)","3ce276f5":"setFreezeTransfer(bool)","3ce32c0a":"AWAToken()","3ce3480a":"closeStageOne()","3ce39a3d":"proposeTx(address,uint256)","3ce54ac3":"testFailCreateWithParentParentSameItemId()","3ce5facd":"HeyfanToken()","3ce6d89b":"approveTaxData(uint256)","3ce70aac":"getDocumentSequence(bytes16,bytes32)","3ce716f9":"WalletChanged(address)","3ce7da3d":"setTokenSymbolName(string)","3ce819e2":"captcha()","3ce948c8":"Token_3()","3ce97eb9":"GetManifestoById(uint256)","3ce9d22e":"setupFinal(uint256)","3cea6965":"gasMin()","3ceb7783":"rankNumbers_()","3cebb4d7":"setOpGas(uint256,uint256,uint256)","3cebb823":"changeController(address)","3cebff9c":"airdropPool()","3cec21c8":"register_(uint256)","3cec475a":"connectTest()","3cec9309":"segmentSize()","3cecd719":"cleanup()","3cece78b":"__getEthPrice(uint256)","3cecf2e6":"exchangeRateArray(uint256)","3ced516c":"descriptionHashes(bytes32)","3ced842b":"make_offer()","3cedd004":"setMinimumInitialBudgetForAudits(uint256)","3cee32e3":"set_allow_withdraw_amount(uint256)","3ceeafa7":"amountOfTokensPoolA()","3cef162a":"allocatetokensAndWL(address,uint256)","3cef51c5":"maxWeiTier3()","3cefc1e0":"hasTokens(address)","3ceffd41":"TokenPurchased(address,uint256,uint256)","3cf0659a":"right25(uint256)","3cf26a33":"transferAssetOwner(address)","3cf274a5":"bighype()","3cf2eb85":"dispossess(address,uint256)","3cf39ed3":"ini_supply()","3cf3a338":"WithdrawTithes()","3cf3d6d8":"getAllCellInfo()","3cf3ecd7":"StartGuess_tw(string,string)","3cf3f105":"checkInvarience()","3cf43e08":"revertTokens(address,address)","3cf43e2c":"btcId()","3cf46fee":"RoundClose(uint256,uint256,uint8)","3cf5040a":"getHash(bytes32)","3cf52ffb":"proposedTimestamp()","3cf572a7":"setNotice(string)","3cf5da75":"getTokenInvocations()","3cf679a5":"lastBlock_v19Hash_uint256()","3cf682b8":"CikkaCoin()","3cf6ed95":"stageForDate(uint256)","3cf7cbdb":"showTimeLockValue(address)","3cf7d47b":"IncreaseInvestedWeiAmount(uint256,uint256)","3cf885c4":"isBitSet(uint256,uint8)","3cf8acec":"allocateBid5(bytes32)","3cf9db41":"drawWinner(uint256,uint8)","3cfa92de":"BAToken(address,address,uint256,uint256)","3cfaa9ed":"mintedWallets()","3cfaaca0":"DMRToken()","3cfac38e":"validatePrediction(bytes32,uint256,uint8)","3cfb35aa":"ensSubdomainRegistrarBase()","3cfba0e3":"ethBalances(address)","3cfc47ea":"getPostPoster(uint256)","3cfc83f5":"addGame(string,address)","3cfd1f80":"VirginToken()","3cfd78f3":"onlyBouncerAddExtension(address)","3cfd86f1":"CashPokerProToken()","3cfe25cf":"cap_ACE()","3cfe6731":"claimfordividend()","3cff5b66":"getIsAuth(address)","3d00b8e3":"buyTokens(uint256,uint256,bytes)","3d0141f6":"whatProposal(bytes32)","3d01bdec":"CTO()","3d02c85b":"rejectTokens(address,uint256)","3d03582f":"collectBack()","3d0383c2":"getthismuchethforyourspud(uint256)","3d03886a":"setRobotAddr(address)","3d03a284":"getMyBat()","3d03ec29":"createCoin()","3d05d0e6":"MintFToken()","3d06242a":"setVIPFee(uint256)","3d062adf":"deleteMember(address,address)","3d0673d4":"getTotalToken()","3d080bd9":"dateRelease3()","3d089bf6":"GlobalBusinessSystem(uint256,uint256,uint256,uint256,address)","3d092b3d":"getMatch(uint256)","3d0977e1":"CROWD_WEEK2_PERIOD()","3d0a8dab":"endExclusive()","3d0ab170":"feePerUnitOfCoin(uint256)","3d0ab7e8":"PresaleContribution(address,uint256)","3d0acdaa":"getReservedPercentageUnit(address)","3d0c3836":"emergencyERC20Drain(uint256)","3d0c46d0":"getMessagesCount()","3d0c4924":"MAXIMUM_SUPPLY()","3d0c7eb6":"purchaseTicket(uint256,address)","3d0c9cc4":"PACK_SIZE()","3d0e6afc":"crownFreeze(address,uint256,uint256)","3d0ed048":"delBlacklist(address)","3d0ef823":"DepositReturn(address,uint256)","3d0f963e":"updateWhitelist(address)","3d11fa43":"delUnicornContract(address)","3d124c9d":"PointGameParticipate(address,uint256,uint256)","3d125f03":"buyTokens(address,address,address,uint256)","3d126a45":"devTokensPercent()","3d126e57":"SparkChainToken()","3d13341c":"_bytes32(string)","3d13aec8":"save(address,uint256,uint256,uint256,string,string,uint256)","3d140d21":"approve(address,bool)","3d14263a":"FailedSend(address,uint256)","3d147789":"UpgradeCommited(address)","3d160de9":"pricesAreStale()","3d160e0b":"UNLOCK_PHASES()","3d1657ff":"getIncreaseBalance(uint256,uint256)","3d1678f4":"redeemEnableTime()","3d16991a":"getStep(bytes16)","3d17a2d8":"merchantHistory()","3d182c42":"private_SetPause(bool)","3d1843c3":"callAndFail()","3d18678e":"setFees(uint256)","3d18b912":"getReward()","3d18bb7f":"HP()","3d18c615":"LastProposalID()","3d18e7b5":"amIH1()","3d1930ac":"mintBounties(address)","3d19481f":"balancePreSale5()","3d1a653f":"Ticket_Ganador(uint256,uint256)","3d1aa963":"chargeFee(address,address,uint256)","3d1aac95":"setWalletToClientAccount(bytes32,address,bytes32)","3d1b9d00":"TRCToken()","3d1bd1bf":"totalLockedHavvens_byAvailableHavvens_limitedSum()","3d1ced2b":"candyuser(address,address,uint256)","3d1cefc4":"SurveyToken(uint256)","3d1d2202":"getMinersOnSale()","3d1d4703":"newTribe(string,string)","3d1e215d":"redistributeTokens(address,address)","3d1e40a7":"changeTimeWithoutUpdate(uint256)","3d1ea04a":"getUnitCoinProductionIncreases(address,address,uint256)","3d201fcf":"MatchEnd(uint256,string)","3d20d9b0":"BONUS_ICO_ROUND2()","3d20e09e":"lpBidPrice()","3d20e3d7":"SetMemberLevel(address,address,uint8)","3d21aa42":"sendApproval(address,uint256,address)","3d226146":"createEvent(bytes32,bytes32[],bytes16[],uint256[])","3d2271fd":"setBytesRaw(string)","3d228ce8":"presaleTokenCreationRate()","3d22d571":"userBanning(address)","3d235d88":"KPRToken()","3d23af26":"newRegistryWithToken(uint256,string,uint8,string,uint256[],string)","3d24081c":"randomSkinAppearance(uint256)","3d249031":"Multicoin()","3d26851a":"_transferFrom_byProxy(address,address,address,uint256)","3d2796f5":"Forwarder(address)","3d289a76":"irbg(address,uint256)","3d28bab2":"SetGasBuy(uint256)","3d28ce75":"ChooChooCoin()","3d28e2ac":"totalDividendPayOuts()","3d2a9b9b":"getPartIndexes(uint256)","3d2c8d18":"lastEvidenceCheck()","3d2ce522":"setdaily(uint256)","3d2d812f":"MultiTransferValues(address[],uint256[])","3d2d8263":"tokenFund()","3d2dea63":"transferAny(address,address,uint256)","3d2e7538":"IPv6Token()","3d2f5bda":"startVoting(uint256)","3d2fbd0a":"usdEstimateInContract()","3d30276b":"Presale(uint256,address)","3d30dbe9":"updateBonusEligibity(address)","3d316134":"maxTokensToSale()","3d31e97b":"appendDebtLedgerValue(uint256)","3d32cb63":"updateReputationScore(bytes32,bytes32)","3d330c49":"findElevenPmUtc(uint256)","3d34a3e7":"setStage2()","3d34f921":"HexelErc20Token(string,string,uint256,address)","3d35d7ba":"getBuyRate()","3d36f7dd":"assertCorrectAllocations()","3d37542b":"launchOutcome()","3d37ef8c":"RESERVED_PARTNERS_LOCKED_SIDE()","3d380ff3":"releaseBatch()","3d389faf":"buyEnable()","3d38abd9":"MercadoMoeda()","3d3984bf":"ironProcessed(address)","3d39c260":"managers(uint256)","3d3b1c02":"SendEtherToBoard(uint256)","3d3b1fdf":"STRAToken()","3d3b2056":"getReadableTime(uint256)","3d3b26a6":"inflate(address,uint256)","3d3b4738":"GXVCReplay(uint256,address)","3d3bc43e":"getMessageRequestHashUsingProviderAddress(address,uint256,address)","3d3c3f2d":"snapshotUpdate(address,uint256,string)","3d3c5c9f":"trustedFillOrderTransfer(address,address,uint256)","3d3cba10":"decrementIncome(address,uint256)","3d3da831":"valueAfterAddingPremium(uint256)","3d3eb22a":"desapprove(address)","3d3f5114":"MEW_CROWDSALE_FUND()","3d405342":"fechAllCandidatesBySnapshotBlock(uint256)","3d40c266":"takeSellTokenOrder(address[3],uint256[3],uint256,uint8,bytes32,bytes32)","3d412396":"JBXPERETH()","3d4197f0":"setVal(uint256)","3d424dc0":"ViewtBet(address)","3d4311e2":"getRoundCasteValues(uint256)","3d432808":"destroyTokens(uint256,address,uint256,uint8[],bytes32[],bytes32[])","3d436ea1":"getEthBullet()","3d438c1e":"TheHumanFund(uint256,string,uint8,string)","3d43bd1e":"replaceDSPRegistry(address)","3d44c476":"getLinkDigest(bytes32,address)","3d456aa5":"extendFreezeBy(uint256)","3d45b9ef":"TokenCLCC(uint256,string,string)","3d46b819":"getNonce(uint256)","3d472d4d":"devGiveBlockReward()","3d488c52":"getPackageNameOfCampaign(bytes32)","3d48c067":"testSmartContract(string)","3d493572":"setSoftCapReached()","3d49ba0f":"updateMemeUrl(uint256,string)","3d4a7c1e":"setStage1Ends(uint256)","3d4a8b4e":"ScholarToken()","3d4af864":"CatToken()","3d4b2c2c":"totalTokenBalance()","3d4ba37a":"setMajorityThreshold(uint256)","3d4d8d4f":"withdrawEarnings(address)","3d4ee7a0":"FundariaToken()","3d4ef007":"vestingCount(address)","3d509c97":"removeRewardToken(address)","3d532ac5":"SWEET(uint256,string,string)","3d532bde":"removeSchedules(uint256,uint256[])","3d536a2e":"joinGame(string)","3d54b48a":"CreaEther()","3d561f73":"getBattleboard(uint16)","3d565121":"lockup_enddate()","3d568185":"createSpecialCards(uint32,uint16,uint16)","3d56dca3":"getBecomeHostSignatureAddress(address,string,uint8,bytes32,bytes32)","3d582391":"setEndsAtUTC(uint256)","3d584063":"getManager(address)","3d58650a":"BreakCoinToken()","3d58d0c3":"DROP()","3d5905a9":"setHolderAddress(address,uint256)","3d595134":"changeDubiAddress(address)","3d59995c":"remoteSetWinner(uint256,string,uint256,uint256)","3d59cd60":"changeRoot(bytes32)","3d5a3016":"canGotoState(uint8)","3d5aed1d":"_subGene(uint256,uint256,uint256)","3d5b0124":"RCR()","3d5b2b4e":"GxDeploymentAdmins()","3d5bb7f4":"setDaVinci(address)","3d5d0720":"totalContributedETH()","3d5db1c2":"incrUserOnholdBal(address,uint256,bool)","3d5dfb63":"_Approval(address,address)","3d5dff53":"tokensOwed(address)","3d608572":"testControlCreateWithParentsSameItemId()","3d619212":"basePublicPlacement()","3d62fa80":"getByFromAndTo(uint256,uint256,uint256)","3d637ebe":"tokensCreationVIPsCap()","3d639d84":"_getItemPrice(uint256)","3d64125b":"balanceof(address)","3d6571e5":"blub()","3d65a59d":"ICG()","3d65cf9c":"initParams(address)","3d65ecdf":"payToProvider(address)","3d662cff":"tokenDestroy()","3d66da8e":"claimRefund(address,address)","3d6759ec":"_createAsset(address,uint256,uint256,uint256,address)","3d677067":"buyProp(uint256,uint256,uint256)","3d68011a":"PRCT_TEAM()","3d6839c6":"REAL(address)","3d6859f2":"investorInfo(address,uint256)","3d68d33f":"BTCP()","3d694f30":"approveSettingCreation(uint256,bool)","3d695002":"_addressNotNull(address)","3d69b403":"isOutcomeSet(bytes)","3d69f4d6":"outsourceDelivery(uint256,uint256,int256,int256,int256,int256)","3d6a2231":"DrepToken()","3d6a32bd":"createTradeContract(address,uint256,uint256,uint256,bool,bool)","3d6a3664":"setNewOracle(address)","3d6a58ea":"convertSgnToSga(uint256)","3d6a71e4":"endedAt()","3d6a9750":"ShowTickets(uint256,uint256,uint256)","3d6ab68f":"CREATE_PERMISSIONS_ROLE()","3d6ad962":"claimPrizes()","3d6b0cb7":"testFailCreateWithParentForeignNotInUse()","3d6b6c70":"increaseJackpot(uint256,bytes32,address,address,uint256)","3d6b7301":"readAddresses(bytes32[])","3d6bc807":"cancelEtherBroAuction(uint256)","3d6bcaef":"GetWagerData(bytes32)","3d6c4df7":"updateWallet(address,string)","3d6df0d5":"docHash()","3d6e38b8":"changedp1(address)","3d6e87c1":"cancelSaleByAddress(address)","3d6ea8b2":"confirmMany(bytes32[],address[],uint256[],uint8[],bytes32[],bytes32[])","3d6eec6b":"RootNo3(uint256,string,uint8,string)","3d6f3366":"TokenCrowdsale()","3d6fc91d":"SetDestination(address,address)","3d6fda19":"stopIssue()","3d709ff1":"getRemixCount(uint256)","3d724027":"setLock(address[],uint256[])","3d725831":"getFundedTokensByIndex(bytes32,string,uint256)","3d72c71b":"SimpleToken()","3d72f40f":"getUserP3DInfo()","3d73c2de":"reserveCATDestination()","3d73ddfc":"SGNL()","3d7403a3":"update(string)","3d741994":"preIcoStart()","3d747f67":"invalidateToken(address)","3d74e856":"setMinJackpotBet(uint256)","3d750b28":"found()","3d756973":"getWrapperData()","3d75c49e":"OEBCBank()","3d75e106":"ImportTestC()","3d7646f7":"getRok()","3d769e3d":"EXT_COMPANY_ONE()","3d76b7a3":"checkHash(uint256)","3d79c332":"ALU()","3d79d1c8":"bal()","3d7a8baf":"setQuoteKey(uint256)","3d7a8c0e":"POPKOIN()","3d7bed99":"addProxyForSender(address,address)","3d7c9f8c":"THB_Omnidollar()","3d7d3f5a":"createSaleAuction(uint256,uint256,uint256,uint256)","3d7daab3":"_isValidSignatureAndData(address,bytes)","3d7e1048":"TransferredUnlockedTokens(address,uint256,bytes32)","3d7f09a3":"editEtherLimit(uint256)","3d7f6536":"getGraffiti(uint256)","3d80b532":"balance(string)","3d80ea28":"claimUSInvestorTokens()","3d813d8b":"setBountyAmounts()","3d814377":"window3StartTime()","3d820a90":"TOKEN_RATE_PRESALE()","3d8270f5":"getContributor(address)","3d82cf5a":"maxBattleRounds()","3d82e1b1":"assertEq3(bytes3,bytes3,bytes32)","3d82f71e":"distributeEGOX(address[])","3d832080":"ownerSetJackpotOfHouseEdge(uint16)","3d83230f":"auctionSuccessful(uint256,uint128,address,address)","3d83ed36":"increaseQuota(uint256,uint256,address)","3d84b8c1":"mintedForAccount(address)","3d856c9b":"getCmasByOwner(address)","3d8731ac":"LOCK_MAX()","3d8807f8":"cardsOfOwner(address)","3d888aa5":"PerformAirDrop()","3d8a03af":"getMatch()","3d8a63e4":"scam()","3d8b41f3":"createBurnRequest()","3d8c3dc9":"addTotalSupply()","3d8c5af4":"oddsSingle(uint256)","3d8c9b8c":"purchaseWolk(address)","3d8d020a":"withdraw(address,address,address,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","3d8d0db4":"totalBuyPrice(uint256,uint256)","3d8e0f4e":"checkRevert2(uint256)","3d8e1b7c":"sumICOStage6()","3d8e2947":"getFileAddress(bytes)","3d8f89d7":"setBooleanValue(string,bool)","3d908c82":"distributeTokensToAllUsers()","3d90d44d":"addPowerSource(address,uint256,uint256)","3d90eeb9":"getCartSubtotal(address)","3d91eec0":"NebbexToken(uint256,address)","3d922f90":"depositar()","3d9277f0":"unlockTip(bytes32)","3d9287fa":"whitelisted()","3d937410":"CokecoinTokenTest()","3d937824":"setCompte_35(string)","3d93a355":"InTokenTest12(uint256,string,uint8,string)","3d944953":"withdrawCollectedResources()","3d946410":"isPreSalePeriod()","3d946c53":"restartElection()","3d94e23b":"viewXCAT(address,address,bytes32)","3d955aa3":"poll(uint256)","3d956691":"tokensToSell()","3d957b0b":"third_bonus_amount()","3d960ec3":"round2Sold()","3d96c758":"TreeLim()","3d96fa3c":"getAllDelegatorAddress()","3d972839":"withdraw(uint16)","3d9aa932":"oraclize()","3d9ad7ce":"SENIUM()","3d9aeef0":"isBetStorage()","3d9af4d1":"setMigrateDueToNoReports(bool)","3d9ce89b":"scheduleCall(bytes4,bytes,uint256)","3d9dcb07":"getFamedStarByID(uint256)","3d9e23ca":"PartnersFund()","3d9e4233":"registerAlbum(bytes32[],bytes32[],bytes32[],bytes32[],bytes32,bytes32)","3d9f01fb":"renterOf(uint256)","3d9f923b":"updateDenomination(bytes8,address)","3da01325":"blockUser(address)","3da04e4a":"getUserGroups(address)","3da06d6c":"getTemporaryWinningFaction()","3da09d40":"Ripple()","3da0ac79":"compare()","3da1c0c3":"isVerifiedUser(address)","3da1eff5":"claimOwnerSupply()","3da1f79a":"revokeSignature(uint256)","3da216da":"LuckyMoneyToken(uint256,string,uint8,string)","3da32dc5":"FcsCoin()","3da368c0":"ETHcomeback820()","3da4ba4a":"AiboCoin(address,uint256)","3da55aba":"setZlotsAddress(address)","3da5c3ce":"puzzle(address,bytes32)","3da5d173":"ZeroExExchange(address,address)","3da611cd":"ContractEthLimitChanged(uint256,uint256)","3da64a06":"issueTokenToGuaranteedAddress(address,uint256,bytes)","3da69ff4":"Salome()","3da76788":"getDataLength()","3da79946":"allEthOUT()","3da80d66":"contains(address[],address)","3da98498":"Crowdtes()","3daa33d5":"buyAndSellPrice()","3daad222":"asmTransferFrom(address,address,address,uint256)","3dab45b6":"setMtdPreAmount(uint256)","3dabb0f6":"verifySignature(address,address,uint8,bytes32,bytes32)","3dac68b7":"setAddressAdv(address)","3daceda1":"createSyndicate(address,uint256,uint256,uint256,uint256)","3dad1583":"getAyes(uint256)","3dae94f0":"cumulativeIndexOf(uint256[],uint256)","3daee1b8":"weekThreeRate()","3daefe4b":"Election1()","3daf099f":"transferEthereum(uint256,address)","3daf31b5":"withDecimals(uint256,uint256)","3dafbf92":"SNPToken()","3db05068":"toForecastData(uint8,uint8,bool,uint8,uint8)","3db08826":"isProofValid(bytes32[],bytes32)","3db13fec":"PalletOneToken()","3db1c253":"projectFailed()","3db1f00a":"TOSMidHoldingContract()","3db2254b":"deleteAllReports()","3db2a12a":"Empty()","3db36b5f":"transferTokensFromTeamAddress(address,uint256)","3db3f2cf":"submitBid(address,bytes32)","3db62953":"currentExchangeSystem()","3db7a118":"blockDotDifficulty()","3db7c149":"SmartCityCrowdsale(address,address,address,uint256,uint256,uint256)","3db7e347":"contributorAt(uint256,uint256)","3db80346":"closeGroup(uint32)","3db8352d":"setEvaluator(uint256)","3db8433c":"setLeagueRosterAndCoreAndContestContractAddress(address,address,address)","3db8493a":"put(uint256,string,string)","3db9c4aa":"createIntention(address)","3dba0b57":"MCTTokenAddress()","3dba6197":"etherAccumulator()","3dbad089":"Contribute(address,address,uint256)","3dbae017":"EasyToken()","3dbae9f9":"startIcoTwo()","3dbb07ac":"s28(bytes1)","3dbb270d":"AshCashToken()","3dbb7f46":"setPrizeFundFactor(uint256)","3dbb874e":"getPetClaims(uint64)","3dbba05c":"callDefaultRelease()","3dbc7c69":"totalApproval(address)","3dbe56f0":"getUnfreezedTokens(address)","3dbe6469":"ChangeBuyer(address)","3dbedbd4":"StopICO()","3dc02266":"fipsRegister(uint256)","3dc09a70":"OwOToken()","3dc0d600":"nome_vincitore()","3dc11dd1":"ethSwapRate()","3dc1579a":"RELEASE_TIME()","3dc19db8":"addAdministator(address)","3dc1a6bc":"getSkillLength()","3dc1ef34":"limitMaxSupply()","3dc23486":"_addBalance(address,uint256,address)","3dc268a6":"oraclize_query(uint256,string,bytes[2],uint256)","3dc286ae":"getEncSeckey()","3dc37539":"reveal_test_data(int256[],int256)","3dc38fc1":"addCourse(uint256,uint256)","3dc4cac9":"Mycryptonline()","3dc58149":"getDepositRecord(address)","3dc5bf97":"acceptRegistrarTransfer(bytes32,uint256)","3dc60e52":"getKittyCount(address)","3dc6e9b0":"changeMaxLockDuration(uint256)","3dc7426e":"setMaximumMintableQuantity(address,uint256)","3dc7c549":"sumHardCapICO()","3dc7ea7f":"recently_added_address()","3dc9124e":"numOfLoadedCrowdsalePurchases()","3dcb0b81":"PollManagedFund(address,address,address,address,address,address,address,address[])","3dcb66db":"Storer()","3dcbab40":"UnFrozenFunds(address,uint256)","3dcbf7eb":"addAddressToAccountFor(address,bytes,bytes,address,bytes32)","3dcd351f":"getAllReceipt()","3dcd6176":"returnTokenBalance(address[2],bytes32)","3dce1ea9":"curPayoutId()","3dced193":"getPI_edit_33()","3dcf59ca":"initiateMigration(address,address)","3dcfbdd0":"getBrickAddress()","3dd00c42":"getMyMinersAt(uint32,uint32)","3dd02f06":"setCoinStorage(address,address)","3dd16673":"teamETHAddress()","3dd287d4":"monsterNFTContract()","3dd297da":"safeMultiply(uint256,uint256)","3dd2b811":"CSNO()","3dd2e0f0":"optionTotalTimes()","3dd35279":"memberIndex(address)","3dd5b2da":"withdrawContractETH()","3dd5e0ec":"NewSouth21Token()","3dd7609a":"ETHER_AMOUNT()","3dd7b14b":"optionPoolBalance()","3dd7c1b9":"newProduct(string,string,uint256,uint256)","3dd82637":"Transformers()","3dd83fe1":"newPlayer(address,uint256,uint256)","3dd86478":"isFromState(address,address,uint256)","3dd93a8a":"getUsersGeneratorsIds()","3dda1aff":"Football()","3dda37dc":"flags(address,address)","3dda7b1d":"fuddToken()","3ddac459":"changeminpresale(uint256)","3ddb77bd":"_distDay()","3ddc3277":"charityFoundationIdx()","3ddc8e9c":"fixedLoge(uint256,uint8)","3ddcbace":"Escrow(address,address,address)","3ddd4698":"registerNameXaddr(string,address,bool)","3ddd5313":"acceptPayments()","3dde1598":"redeemBattleCrates()","3dde3918":"removeAdministrators(address)","3de035bf":"endWork(uint256)","3de1a4bc":"getDepositPool()","3de24c17":"refundInvoice(address,address)","3de33a32":"doIssueTokens(address,uint256)","3de377ec":"mock(uint256)","3de39c11":"maxGasPrice()","3de3ebf8":"getPlayerEnergy(address)","3de3fbd9":"totalTokenRewards()","3de4ca9e":"Karma(address,address)","3de4eb17":"getAdopters()","3de696d3":"percentFeeTimes5()","3de6a03f":"checkStatusICAP(bytes32,uint256,string,address)","3de7dfb1":"Amount_of_Chi_for_One_ETH()","3de8c792":"BUYER_STEP_4(bytes32,uint256,bytes1,address)","3de8d340":"dividendsBlocks()","3de9c8e6":"haltFundraising()","3de9e4c6":"__transferFromWithReference(address,address,uint256,string)","3dea6b9a":"getMeme(uint256)","3deaa297":"transferAllDividends()","3deaa323":"minPurchaseLimit()","3dead9e8":"Mythereum()","3deaf6d4":"MAXIMUM_FIRST_DAY_CONTRIBUTION()","3deb23d2":"STANDARD_RATE()","3deb91c7":"setMinReserve(uint256)","3debd2d8":"sendToAddress(address,uint256)","3dec4cb3":"pre_ico_start()","3dedc36e":"getGunByIdPart2(uint256)","3dee7237":"amountOfBPs(address)","3def449b":"FipsNotary()","3defb962":"heartbeat()","3df08c6a":"privateSalesTokensSold()","3df16377":"make_move_and_claim_victory(uint256,uint8,uint8,uint8,uint8,uint8,uint8,uint8)","3df18d2a":"model(address)","3df18e0a":"bytes32ToHex(bytes32)","3df19507":"intToDec(uint256)","3df2b29d":"powerDown(address,address,uint256)","3df2b723":"adminClaimAirdropMultiple(address[],uint256[])","3df2d6fd":"FIGHTMONEY()","3df40c7a":"startPreIcoDate()","3df4a282":"setCurrentSaleDayAndBonus(uint8)","3df4ddf4":"first()","3df5140c":"setIsTokenCanBeSell(bool)","3df5958f":"VillanovavsRadford()","3df6b23c":"angelRound()","3df76482":"fipsPublishData(bytes20,bytes)","3df77c0e":"testBalanceOf()","3df7c86d":"mom()","3df86f79":"split32_20_12(bytes32)","3df91162":"getUpdatable(bytes20)","3df95fc9":"HAYATO()","3df96853":"carIdToRenter(uint256)","3dfa0384":"messageSenderAddress()","3dfa1c46":"LLV_v31_5()","3dfb4843":"renewDeed(bytes32)","3dfc42c8":"TdeFinalized(uint256)","3dfc6980":"set_verifiedUsersOnlyMode(bool)","3dfca2ad":"finishVoting(address,uint256)","3dfcdf2b":"CoinVila(address)","3dfd288a":"checkVotingForTransferWeiFromExchangeToPayment()","3dfd83c6":"SPARCToken()","3dfeac48":"MaximalInvestmentChanged(uint256)","3e00b910":"buyTokenPreIco(address,uint256)","3e011b11":"getTokensBackAFterCorwdsale()","3e032a3b":"slippage()","3e03c84f":"tokenIsLocked(address)","3e03d50f":"isTeam(uint256)","3e0448c2":"ChangedId(address,string)","3e045845":"issueSecurityTokens(address,uint256,uint256)","3e04bf23":"upgradeShip(uint32,uint8)","3e058664":"getBonusPercentRate()","3e05c964":"withdrawnByBeneficiary()","3e05ca7c":"get_PendingGains(address,address,uint256,bool)","3e05e01b":"ethReward()","3e0663e0":"AdminDrawProcess()","3e06be20":"downgradeToBasic(bytes32)","3e07905e":"endBuffer()","3e0807ca":"numberBtcUpdates()","3e0831e2":"putStoWithBto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","3e083f7d":"deals(uint256,uint256)","3e085c3d":"airDropToOldTokenHolders(address[])","3e085d0e":"transfer(address,uint48,bytes,string)","3e087d01":"addEligibleBurner(address)","3e0912ec":"KangEOS()","3e093f38":"testPullWithTrust()","3e09876a":"vehicleFound(address,uint256)","3e0a322d":"setStartTime(uint256)","3e0a51b4":"TweetAccount()","3e0a7ab5":"addONG_AUDIT(bytes32,string,string)","3e0aba92":"fourth_release(uint256)","3e0ad2d4":"TPC(uint256,string,string)","3e0aedaf":"TreePlusToken()","3e0b7eb2":"updateTranscoderWithRewards(address,uint256,uint256)","3e0c1f2a":"fetchNextSnapshotBlock()","3e0d4f4a":"ApproveContractorProposal()","3e0dfbdf":"getInvestorByAddress(address)","3e0efe67":"putBtcWithSto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","3e0fddbd":"ClaimHodlToken(address,uint256,uint256)","3e1092f2":"changeModuleRegisterOwner(string,string,address)","3e109a19":"minBid()","3e112bf3":"calcResult(uint256,uint256,uint256)","3e112ed7":"reserveCoins(address,uint256)","3e11456f":"PRIVATE_SALE_ACCOUNT()","3e11741f":"sellToken(address,uint256,uint256)","3e118dbe":"_version()","3e118f1f":"weiMinSaleIco()","3e11b765":"batchApprove(address[],uint256[])","3e11e378":"changeController(address,address)","3e127ab7":"maxPoly()","3e127e76":"safe_add(uint256)","3e129967":"SpaceWar()","3e1457a1":"initRates(uint256[],uint256[])","3e152d8e":"maxBonusTickets()","3e15346d":"removeGlobalConstraintPost(address,int256,address)","3e156601":"p_setMinInvestment(uint256)","3e15ef90":"GetDataPoint(uint256,uint256,bool,string)","3e165810":"initBMC(address,uint256,uint256,uint256,uint256)","3e175c0b":"goldUnFreeze()","3e17b882":"mutateCrabPart(uint256,uint256,uint256)","3e18117a":"AhooleeToken()","3e182d3f":"addSelctFight2Death(address,uint256,uint256,uint256,uint256)","3e18e78e":"endTimeinMinutes()","3e1a3376":"updateInvestorsComission(uint256)","3e1a420f":"publishRewardlessTaskListing(string,address,uint256,uint256)","3e1a9300":"getLastIndex()","3e1b0d29":"fechAllVotersBySnapshotBlock(uint256)","3e1b4645":"qualifiedAddress(address)","3e1b5b3e":"rateEarlyStage4()","3e1ba676":"subBountySupply(uint256)","3e1c01b5":"capitalAllocation()","3e1c2d5a":"RegisterKey(address,string)","3e1cc152":"fundWallet2()","3e1d8156":"Issue(uint256,address,uint256)","3e1da046":"isDelegateOf(address,bytes8)","3e1e292a":"testCopy(bytes)","3e1eab35":"VUTEST2()","3e1fd0da":"checkAccess(bytes32,address)","3e20f7fb":"HashnodeTestCoin()","3e214e96":"changeAirDroper(address)","3e2153bf":"viewBeneficiaryDetails(address)","3e21b00f":"C40Coin()","3e239e1a":"getHour(uint256)","3e23ee7e":"executeTrade(address,address,uint256,uint256,uint256)","3e23ee9c":"BlackHorseWallet()","3e24fcbf":"capHicsToken()","3e254a0c":"YTCOMMUNITY()","3e2557c5":"_price_tokn_ICO_second()","3e25e837":"withdrawCommission()","3e25fdd4":"getLastStellar()","3e260a2c":"allocateReserveTokens()","3e262e46":"getTradeOfferSender(uint256)","3e2640d6":"extendClosingTime(uint256)","3e2729bf":"isRevocated(bytes)","3e27e1be":"validateResetDeadTokens(uint256)","3e28912f":"getStrField3()","3e2d6cf6":"_emitWithdrawn(address,uint256,address)","3e2d7004":"getTokenRate()","3e2d7de1":"mintTokensWithIncludingInJackpot(address,uint256)","3e2ddb60":"changeMajorThreshold(address,uint256,bool,bytes)","3e2e806d":"rewardTokensFloor(address,uint256,uint32)","3e2ee39e":"debug_resetuser()","3e2fce37":"updAutoFreeze(bool)","3e2fe149":"getNewOwner()","3e30046a":"maxSale()","3e30838d":"delOperator(address)","3e313f28":"_changeColour(uint256,uint8,uint8,uint8)","3e31c77f":"setZoPrice(uint256)","3e321249":"PdexToken(address)","3e32224a":"BF1Token()","3e325589":"init(address,address,uint256,int8)","3e326048":"initWallet()","3e32bea2":"priceIncreasePerPurchase()","3e33c37b":"gameContext(uint256)","3e345bd8":"FatherToken()","3e34f34e":"isUserHasPermissonToModify(address,string)","3e351a45":"lotteryWinner()","3e352d49":"updateTokensForEtheeraTeam(uint256)","3e361281":"betsWon()","3e362c96":"bountyCount()","3e363696":"BuyWithPathwayFromBeneficiary(address,uint256)","3e3657a5":"addConfigEntryInt(bytes32,uint256)","3e3756db":"PauseOn(uint8)","3e379d64":"setBonus()","3e38a2b7":"delegateCount()","3e38dab8":"refundFlip(bytes32)","3e3926e4":"whitelist(address,uint256,uint256,uint32)","3e3b429a":"canPurchase(address)","3e3bc743":"AmazingDex(address)","3e3c9eae":"qsize()","3e3cba8f":"changeBalancesDB(address)","3e3ce4f3":"GSEN()","3e3d64e2":"hatchingsNeeded()","3e3dae41":"maximumSaleLimitUnits()","3e3deb8b":"MyMonsterCount(address)","3e3dff65":"GainsCalculated(address,uint256,uint256,uint256,uint256)","3e3e0b12":"stopMinting()","3e3ee859":"NewQuestion(string,bytes32)","3e3f4e24":"RealEstateCryptoFundAirdrop(address)","3e40aab4":"returnActions(uint256[8],uint256)","3e412533":"Easy()","3e415358":"transfer(address,uint256,address,address,uint256,uint8,bytes32,bytes32,uint256)","3e41d5eb":"addOwnersWithHowMany(address[],uint256)","3e427e89":"returnHostAndCreatorCut(uint256)","3e42ad79":"Instantium()","3e42ed80":"ProgressiveToken(string,uint8,string,uint256,uint256,uint256,address)","3e43b652":"betValueOf(address)","3e43e8b4":"AnimeToken(address,uint256)","3e441ef4":"SetItem(address,uint256,address)","3e445446":"STARTING_KILOS()","3e445506":"successfulPreSale()","3e44694f":"DID()","3e4476a3":"addAddressToJackpotParticipants(address,uint256)","3e450fff":"adminDeleteAccount()","3e4565d2":"testErrorUnauthorizedNameRegister2()","3e4604b3":"robotAddr()","3e460a84":"distributeBooking(uint256)","3e46eb60":"fortune_endauction(uint256)","3e476053":"moveFunds(address,uint256)","3e4852bd":"getGroupData(uint256)","3e4882fc":"AddressChangeConfirmed(address,address)","3e49077a":"createSaflokKey(bytes32,bytes32,bytes32,bytes32)","3e49776b":"VOLUME_5()","3e49820d":"changeTicketCap(uint256)","3e499dff":"addKYC(address)","3e49bed0":"setInt(bytes32,int256)","3e4a9263":"enforceSecondLock(address,address)","3e4b20cf":"updateGameSpecifics(uint256,uint256)","3e4b2570":"investorsAllocation()","3e4bdce4":"hasAccountPendingOrders(address)","3e4bee38":"GOLD()","3e4c0c82":"player_1(uint256)","3e4c9534":"getInvestmentMin()","3e4d914e":"lastBlock_f12Hash_uint256()","3e4e0432":"notifyOfArbitrationRequest(bytes32,address)","3e4f49e6":"state(uint256)","3e4ffa9b":"getImage(uint256,bytes32[],uint256,uint256)","3e5087cc":"testBasicThing()","3e50b0b8":"sendOwnerEther(address)","3e50de30":"calculateRewards()","3e510870":"transferOPSPool()","3e52d5c6":"openBoxes(uint256[])","3e531e0d":"queryGameStatus(uint256)","3e53ccee":"actualPriceDivisor(uint256)","3e5442bd":"getBitsoAddress()","3e546675":"DelegateDualOwnable(address,address)","3e55eab0":"parcipateCrowdsaleInvestor(address)","3e5615bc":"FourToken()","3e568fe7":"GetDaysInOffice()","3e56f9f9":"getPayout(uint256)","3e57324e":"EmergencyPause()","3e586a81":"BeatTokenEthPriceChanged(uint256)","3e589050":"changeKeys(string,bytes1[])","3e58a465":"getShareList()","3e58c58c":"send(address)","3e592d50":"ResourcesOwner(uint8,address)","3e5933fe":"removeAll(address[])","3e5a2024":"MyActive()","3e5ac28f":"toggleTransfers()","3e5b15e1":"addCoin(bytes4,address)","3e5b5e39":"addPrecommitment(address,uint256,bool)","3e5b7fec":"TwoPhaseAuction()","3e5beab9":"allowance(address)","3e5cee05":"issueIOU(string,uint256,address)","3e5d5cee":"sellPriceAtIndex(uint256)","3e5d901e":"autoTokenSent()","3e5daf02":"startRoundC()","3e5edb1d":"REFUND_LOCK_DURATION()","3e5efd92":"clearProcessedBet(uint256)","3e5fbedd":"NOTNCoin()","3e5fd9b5":"dEthereumlotteryNet(address,address,bool,address)","3e604f48":"registerAadharDetails(string,string,string)","3e6075a4":"battleCountOf()","3e60c83a":"acceptMediation(uint256)","3e62d835":"setNumberOfOutcomes(uint256)","3e650c15":"withdrawalUser()","3e65a153":"longMul(uint256,uint256)","3e675cb0":"changeMaxValueBetForEmission(uint256)","3e6784b8":"ATLToken()","3e68119b":"setDebugNumber2(uint256,uint256)","3e681375":"totalDropAmount()","3e68680a":"create(address,address)","3e68aa3a":"getTopWinners(uint256)","3e68dea3":"BaseAccountService(address,address)","3e693ffd":"AppSet(address)","3e6968b6":"getCurrentDay()","3e6a569a":"claimReward(address,string)","3e6a6a31":"beneficiarySend()","3e6b16d9":"setShowInterval(uint256)","3e6c0637":"getFirstStartableIndex()","3e6d4e12":"getOptional(uint40)","3e6d6a6b":"setAdvisorAddress(address)","3e6d6d0b":"removeMastercardUser(address)","3e6d6d26":"withdrawAllTokens(uint256)","3e6d9770":"investments(address,uint256)","3e6e0adf":"whiteListPeriod()","3e6e2a73":"_mintEstate(address,string)","3e6eaa03":"mint(uint32,address)","3e6f118a":"blastOff(address)","3e6f4160":"roundParameters(uint256)","3e709982":"isDefValid(uint8,uint8,uint8,uint8,uint8)","3e715da2":"logPromiseFulfilled(uint256)","3e721015":"getFunds(uint256)","3e72b2bb":"addMembers(address[],uint256[])","3e72df41":"ff(string)","3e76018b":"getNextMinimumBet()","3e7614cd":"TIER3_PRICE()","3e764fdb":"_getNewFloorGene(uint256)","3e774409":"_mint(address,address,uint256,bytes,bytes)","3e77dcfb":"setPercentages(uint8,uint8,uint8,uint8,uint8,uint8)","3e786d80":"DickheadCash()","3e788ba3":"getRequestState(address,address)","3e78afd8":"ReferrerBonusTokensTaken(address,uint256)","3e78cf7a":"transactionFeeMin()","3e798e83":"calculateUserCommission(uint256)","3e799335":"RefundManager()","3e79e4c2":"customerPolicies(address,uint256)","3e7b684d":"NBAT(address,address,address,address,address)","3e7bb43c":"transferKycOwnerShip(address,address)","3e7cb0d3":"verify(uint256,bool)","3e7d081a":"emitBoardClosed(uint256,bool)","3e7d1acc":"currentAllocationLength()","3e7e250e":"GetDynamicCardAmount(uint32,uint256)","3e7e30ba":"poolPercentage()","3e7e42fa":"initialCreatorAccount(uint8)","3e7e70a4":"tokenBuyerWallet()","3e7e730d":"addressToReceiverToAmountAllowed(address,address)","3e7f26a5":"heroIdToBuyer(uint256)","3e7f54a9":"updateAppInstance()","3e803343":"subIsSafe(uint256,uint256)","3e80cbc6":"adminUpdateWallet(address)","3e81ba66":"preBountyAdded()","3e81d56e":"calculateProviderFee(uint256)","3e82055a":"addSignature(uint256,bytes16,bytes)","3e82eca7":"getAddressOne(address)","3e83f6cd":"Nickelcoin()","3e83fe36":"getMyShares()","3e84b266":"priorityPassContractAddress()","3e853128":"getGasForXau(address)","3e85713d":"marketingReserve()","3e85755a":"bonusInPreSalePhase2()","3e859fcb":"updateCap(uint256,uint256)","3e8616c8":"setBullAmount(uint256)","3e867089":"setDelegadoDeEscuela(bytes32,bytes32,uint256)","3e8686cc":"getSubmission(uint256)","3e86a2e5":"transferToAddress(address,uint256,bool,bytes)","3e870d63":"subHashrate(address,uint256)","3e8786a1":"reclaimFund(address)","3e87d301":"tokenPriceInEuroCents()","3e8817aa":"getPaymentAmount()","3e88d93b":"getRecorderID(address)","3e89340f":"lockStatus()","3e8a0585":"Bidding()","3e8a0bc9":"lockdown()","3e8a76e4":"CommerceBlockToken(address)","3e8a9439":"proposalDestination()","3e8b1dd7":"claim(bytes32,uint256,uint256,uint8,bytes32,bytes32)","3e8be2e1":"reTweetRewardPool()","3e8c34e5":"cardboardUnicornTokenAddress()","3e8cc273":"doBlockContract()","3e8ce607":"successfully_closed()","3e8cee07":"getPOOL_edit_5()","3e8cfa26":"Nut(uint256,string,uint8,string)","3e8d6e9f":"multyTx(address[100],uint256[100])","3e8d97e7":"underwriteToken()","3e8eca23":"plusFreezingTime(uint256)","3e8f5b90":"setConfig(string,uint256)","3e8f682f":"setETHFee(uint256)","3e8ff43f":"converterType()","3e904876":"devexit()","3e9196b4":"NokuTokenBurner(address)","3e91a622":"LOCToken()","3e92128c":"gettruelevel(address,uint256)","3e92fa26":"claimComputation(bytes,bytes,uint256)","3e9491a2":"revenue()","3e94c904":"collectionOf(address)","3e955225":"getN()","3e95c9b6":"MOONTRAIL()","3e95f06d":"_handleProductionDecrease(address,uint256)","3e96c107":"People(uint256,string,uint8,string)","3e96d28e":"setReleaseAgent()","3e96e868":"addRole(string)","3e9744da":"walletBountyAndAdvisors()","3e9761b4":"projectIndex(uint256)","3e97db0d":"changeMainWallet(address)","3e97ee6c":"isOwnerOfAllPlayerCards(uint256[],address)","3e98039a":"multiOwnerSides()","3e9836c6":"oraclizeGas()","3e98b93a":"getAvatarCount(address)","3e99633f":"haltIEO()","3e997e71":"isPeronalLock(address)","3e99a35e":"BitMantas()","3e99c395":"isValidPublicKey(uint256,uint256)","3e99d2c9":"Foo(string,string)","3e99e26a":"SellableToken(address,address,address,uint256,uint256,uint256,uint256)","3e9b4c24":"CNToken()","3e9bee1b":"getBalanceDivis(address)","3e9c77f9":"ListingRegistry(uint8,uint8,uint8,uint8)","3e9e9f26":"distributeCallback(uint256,uint256,address[])","3e9eb6c1":"recursive_read(uint256)","3e9ed7e4":"burnSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","3e9f9664":"withdrawItem(address,uint256)","3ea053eb":"deactivate(address)","3ea0fb3e":"getCurrentPrice(uint32)","3ea11222":"createGame(uint256,address)","3ea14a4f":"escFund()","3ea252eb":"finalOptions()","3ea2cde5":"addFiatCurrencyRaised(uint256)","3ea376fc":"changeAdmin(address,address,bytes32[3],bytes32[3],uint8[3])","3ea3c2bb":"_updateFundingGoal()","3ea3e42f":"AgriChainRootData()","3ea3f6c5":"activateRegistrar()","3ea51dc2":"ZIRC()","3ea556da":"getEtherForTokens(uint256,uint8)","3ea5cdba":"MIN_INVESTMENT_ICO_PHASE_ONE_POUNDS()","3ea69d76":"setEmployee(address,bytes32,bool)","3ea6c986":"ltcRaised()","3ea75e3d":"addJobContractMessage(address,address,address,string,uint256)","3ea79cb1":"MSCToken()","3ea89fd1":"popQueue()","3ea97009":"initialToken()","3eaa7643":"eligibilityRate()","3eaa8128":"buyCovfefe(uint256)","3eaab2dc":"FabotCoin()","3eaaf86b":"_totalSupply()","3eac48a0":"getTotalVoter(address,address)","3eac5cac":"PayingBackContract()","3ead67b5":"changeContractOwner(address)","3eadb6db":"nextPhase()","3eae396f":"GodzSwapGodzEtherCompliance()","3eae8ac8":"SkillChainPresale(uint256,uint256,uint256,address,uint256,address,address)","3eaf5d9f":"tick()","3eaf7591":"makeVote(uint256)","3eaf9923":"right68(uint256)","3eafec21":"sellTokens(address,address,uint256)","3eb10ab3":"FundAccount()","3eb1d777":"setStage(uint256)","3eb1eb1a":"issuingBody()","3eb2a37d":"priceCreatingChannelChanged(uint256,uint256)","3eb2b5ad":"addTeamMember(address)","3eb2cb02":"totalSquareStakesByUser(address,uint256,uint256)","3eb34e09":"AlterContactName(bytes32,address,bytes32)","3eb3aaad":"_getClosingObligation(bytes32)","3eb51dc4":"releaseForTeamAndAdvisor(address,uint256)","3eb54d80":"Pele()","3eb578bf":"ADVISER_STAKE2()","3eb5caca":"setProductType(uint8,string)","3eb610f5":"_requestContractApprove(bytes32,address)","3eb76b9c":"castVote(uint256)","3eb78420":"mainFundAccount()","3eb7dbc0":"FoxTradingToken()","3eb96aed":"DrunkCoin()","3eba223c":"CopyTokens()","3eba9ed2":"setBooleanValue(bytes32,bool)","3ebb047f":"allowanceTransfer()","3ebb2a17":"CreateTokenToMarket(address,uint256)","3ebb2d6b":"instructOracleToDistribute(uint256)","3ebbf394":"BergCoin()","3ebc2ab3":"isCompromised(address)","3ebc457a":"closeCurrentFeePeriod()","3ebd6092":"checkPermission(uint8,address)","3ebdc754":"setDiscipleSale(uint256,uint256)","3ebfc934":"transferFrom(address,address,string)","3ebfdaaf":"Swap()","3ebfde04":"proceedPreIcoTransactions(address[],uint256[])","3ec045a6":"auditor()","3ec16194":"calculateShares(uint256)","3ec1d668":"Vendor(bytes,uint256)","3ec27341":"getConfigAddress()","3ec27c4a":"setTimeRangeGen0(uint256)","3ec36b99":"commitVotes(uint256[],bytes32[],uint256[],uint256[])","3ec3aedc":"executeSell(address,uint256,uint256)","3ec414c8":"editMeta(string,uint256)","3ec48a2e":"move()","3ec548b6":"initLottery(uint16,uint256,uint8,bytes32)","3ec6a4c4":"getContributorsCount(address)","3ec6dac2":"getSize(bytes32)","3ec862a8":"hatchEggs(address)","3ec8d571":"TronToken(address,address)","3ec8ec5a":"getFinish()","3eca264e":"getWithdraw(address)","3eca443b":"generatedTokensSale()","3eca48db":"BonusesAllMinted(address)","3ecae564":"canSend(address,address,bytes32,uint256,bytes)","3ecafef5":"isIcoStart()","3ecb9884":"frozensDetail(address)","3ecbbf39":"list(address,address)","3ecbf72a":"_find(address)","3eccca1e":"transferAllTokens(address,address)","3eccd456":"initializeSale(address[5],uint256[6],uint8,bytes32,bytes32,uint256,uint256)","3ece9c61":"teamHoldAmount()","3ecf965f":"rateETH_BCDT()","3ed01e02":"takerDispute(uint256,uint256,uint256)","3ed03798":"addToStat(uint256,uint256)","3ed0619b":"stabilityBoardProxy()","3ed08dc9":"balanceOfEthFee()","3ed0a373":"getDepositAtIndex(uint256)","3ed0f52c":"setCustomBonus(address,bool,bool,address)","3ed10b92":"allowances()","3ed23f91":"BlockPayeeToken(uint256,string,string)","3ed28f39":"getUniCoinSize()","3ed2d908":"buyerTokenName()","3ed35855":"removePayee(address)","3ed38181":"setInvalid()","3ed3d6a6":"getthird(uint256[])","3ed4006b":"OwnerCashout()","3ed4c4c8":"phaseAddtlInfo(uint256)","3ed58536":"record_human_readable_blockhash()","3ed5d456":"finishReplayPhase(uint256)","3ed620a4":"updatePrices(uint256,uint256,uint256)","3ed66d3d":"sellMintingAddress(uint256,uint256)","3ed70628":"SCPSToken(uint256,string,string)","3ed72caf":"icoTokenAddress()","3ed731bc":"makeCollectibleUnavailableToSale(address,uint256,uint256,uint256)","3ed7530d":"amountOfPerRelease()","3ed8ff25":"TotalFeesReceived()","3ed9bc86":"initializeToken()","3eda009b":"rewardRound(uint256)","3eda062c":"updateTap(uint256)","3eda7b88":"contractorTransferFrom_Scoupon(address,address,uint256)","3edab9d0":"AuctionCanceled()","3edaf264":"stopBounty()","3edbd76e":"GetChallengeCreator(uint256)","3edc65d3":"recordWithdraw(address)","3edc69b8":"maxAbsKindness()","3edcd61f":"times8()","3edd1128":"deposit(address,uint256,bool)","3edd90e7":"NewOwner(address)","3edddc0a":"incrementWrite()","3edef04b":"limitPreIcoTokens()","3edfd954":"mint(address,uint256,uint256,uint256,string)","3edfe35e":"ethPriceInCents()","3ee066e5":"sspRegistry()","3ee0c627":"currentBadge()","3ee2dd16":"FunGame()","3ee39cee":"testCannotActivateBeforeDeployingANT()","3ee3f499":"validateHash(bytes32)","3ee5313f":"SetState(uint256)","3ee58d13":"testBurnGuyAuth()","3ee5f2e4":"BreakToken()","3ee6d933":"rndInit_()","3ee6de34":"work(bytes32[])","3ee71e85":"NortontokenERC20(uint256,string,string)","3ee788e1":"_updateLoveStory(bytes16,bytes32,bytes32,uint256,string)","3ee7ab85":"airdropUpdateToken(address[],uint256[])","3ee822f4":"setAllLocations(uint256[])","3ee8747a":"isOrganisationExits(address)","3ee89a63":"withcom()","3ee90a29":"FOUNDER_STAKE()","3ee9d648":"lastGameId()","3eea5150":"milkTotalSupply()","3eeafccc":"getCountryStats(uint256)","3eeb3235":"geCompoundTimestampsFor24Months(uint256)","3eebc589":"isMarketManager()","3eed3822":"bigPrice()","3eed5d17":"Cipher()","3eeda7d3":"deliverTokens(address,uint256,string,bool)","3eedabcf":"getMelonAsset()","3eedf7d8":"getCurrentAuctionPrices(uint128[])","3eee36c6":"_split(uint256,uint256,uint256)","3eee83f1":"addAcceptedToken(address)","3eeeb1c3":"fastEscape()","3eefe239":"mintReservedTokens()","3eefef7b":"testFailTransferFromSelfNonArbitrarySize()","3ef06b6b":"previousprice()","3ef0784e":"configurationGenericCrowdsale(address,uint256,uint256)","3ef13367":"flushTokens(address)","3ef37e30":"REFUND_PERCENT()","3ef39571":"isRequireData()","3ef4691f":"MyFreeCoin(uint256,string,uint8,string)","3ef4c16b":"withdrawVPC0xTokens(address)","3ef4f4ca":"world(uint256)","3ef5aee9":"maxProportion()","3ef5d325":"getBaseValue(uint256)","3ef5e445":"subtract(uint256,uint256)","3ef5f368":"payMultiple(uint256)","3ef7c687":"getExpiringUnitList()","3ef84fcb":"withdrawCommonCoin(uint256)","3ef87414":"getRevisionCount(bytes20)","3ef8e872":"numberOfTokensOfOwner(address)","3ef8ec78":"announce_numbers(uint8,uint8,uint8,uint8,uint32,bytes32)","3ef92150":"ICO(uint256)","3efa31b0":"initialAddress(address)","3efa8d51":"feesD()","3efab21b":"icoTokensIssued()","3efb537e":"getPastGameResults(uint256)","3efb760d":"nextLevel()","3efcad6d":"EMPR()","3efcd2e0":"transferPreSigned(address,uint256,uint256,uint256,uint8,bytes)","3efd1403":"createGame(uint8,bytes32)","3efe54d4":"percentWeiDividend()","3efe6441":"getRemainingToken()","3efea4d1":"buy(uint256,uint256,uint256,uint256,string,string,string)","3eff1ef3":"DYBToken()","3f001dd7":"MIC(uint256,string,string)","3f003d59":"removeAddressFromGrantAccess(address)","3f00f5aa":"HAOToken()","3f01dc99":"ETHFINEX_FEE()","3f01e642":"roundCount(uint256,uint256)","3f0218ac":"startThirdPhase()","3f021e2e":"oracalize_gaslimit()","3f02e4f0":"getTotalValidTk()","3f03aab4":"communityAddr_()","3f045e61":"inArray(address[],address)","3f047053":"songTokenExchange()","3f04b06d":"shareLove(address,address,uint256)","3f050f02":"subdomainSale()","3f056d2a":"StrongHoldTEST()","3f06e17c":"changeDonation(address)","3f073031":"addCredits()","3f07618d":"createDragon(address,uint256,uint256,uint256,uint256,uint240)","3f08882f":"assertIsWhitelisted(address)","3f089de9":"GameRefunded(uint256)","3f09ba9c":"TupleDemo()","3f0a0797":"exchangeContract()","3f0a9f65":"requiredBlockConfirmations()","3f0adce9":"setSmallWalletAddress(address)","3f0b67e9":"_addIndex(address,address)","3f0b70b6":"itgTokenTransfer(uint256,bool)","3f0cea3f":"withdrawOwner(address)","3f0cf183":"MockSale(uint256,uint256,address,address)","3f0d9ad5":"contractBalance_()","3f0ec70b":"RequestFactory(address)","3f0ed0df":"setContract(string,address)","3f0f7248":"SpaCoin()","3f109205":"setFoundationInterface(address)","3f10dea6":"canUse(address,uint256)","3f10f08a":"nextCommonTTMTokenId3()","3f117b85":"setPaymentContractAddress(address)","3f1199e6":"buried(address)","3f11e43d":"newEtherdelta(address)","3f124f1d":"totalMintContracts()","3f13d339":"getTxnNum(address,uint256)","3f14710d":"GameEnded(address,address,uint256,uint256,uint8)","3f14e2db":"withdrawfund()","3f152d11":"Coin(address)","3f15457f":"ens()","3f174064":"crowdsalePause()","3f181ef2":"getTotalUniqueCards()","3f18400e":"owlmasterReq()","3f1887e9":"Gamblers_Until_Jackpot()","3f18acb4":"CarRoute(string)","3f19bfbf":"allocateLedTokens()","3f19d043":"getContributions(address)","3f1a1cac":"useSingleItem(uint256,uint256,uint256)","3f1a3d9e":"dropEnabled()","3f1ae30f":"ReverseConfirmTransaction(uint256)","3f1b1267":"icoSince()","3f1bfdee":"testFailCreateShortIdAlreadyExists()","3f1da980":"lastBlock_v11Hash_uint256()","3f1e600a":"PHASE_3_PRICE()","3f1f59a4":"ICO_START2()","3f1f8f68":"seventh_withdrawal(uint256)","3f202951":"SampleCrowdsale(uint256,uint256,uint256,uint256,address)","3f20fa9e":"requestDispute(bytes16,address,address,uint256,uint256)","3f2266c2":"ownerAngelCollection(address,uint256)","3f22b0fb":"last50plushacker()","3f23503d":"minBtcValue()","3f23a566":"mintingCap()","3f242990":"tokenHardcap()","3f24ef7c":"setGidMax(uint8)","3f250493":"Crowdsaled()","3f257776":"getN2ControlLimits(bytes32)","3f265ddd":"FructusToken()","3f266242":"getSubjectCountByAddress(address)","3f26c5ee":"addMilestone(uint256,uint256,uint256,uint256,string,string)","3f26fa01":"InvestmentPolicyChanged(bool,bool,bool,address,address)","3f27e9e1":"recoverAddressFromBalanceProofUpdateMessage(bytes32,bytes32,uint256,bytes32,bytes,bytes)","3f27f105":"batchTransferSame(address[],uint256)","3f2885cb":"publish(string,string,address,bytes32)","3f288f05":"addPubKeyHash(bytes20,uint8,bytes,bytes)","3f28b20e":"Bemo()","3f28e9fb":"createBounty(uint256)","3f28f24c":"claim_rest_of_tokens_and_selfdestruct()","3f2965f0":"registerSeller(address)","3f29cd27":"set(bytes12,bytes32,uint40)","3f2b1040":"enableTokenWithdrawals()","3f2c0e35":"getNumberOfRequest()","3f2cb5d4":"popEducation()","3f2cba2b":"airdropMVP(address[],uint256)","3f2cdb53":"setETHPriceLowerBound(uint256)","3f2e0564":"setIcoWallet(address)","3f2e907c":"resumeTransferToken()","3f2e917c":"changeLimits(uint256)","3f2eed3b":"publicPresale()","3f2f1596":"setupTreasury(address,uint256)","3f2f46b4":"revealRock(string)","3f31281a":"changeUserKey(address)","3f3173f3":"MyTokenyy()","3f31b3ac":"extCustomerPolicies(bytes32,uint256)","3f3246a0":"getLastBuyer()","3f32aa70":"removeFromWhiteList(bytes32,address)","3f32af65":"calculateFare(string,string)","3f33252d":"changeDisown(uint256)","3f332792":"getGiftsCounter()","3f34dd5c":"setVestingAmoundAndApproveCrowdsale(address,address,address)","3f35d033":"transferToContract(address,uint256,bytes)","3f36d33d":"getpotReward()","3f37c9d4":"servicePercentage()","3f384026":"setStatusBuySell(bool,bool)","3f392b42":"trade(address[5],uint256[11],uint8[3],bytes32[6])","3f3935d1":"confirmReverse(string)","3f395781":"Capsule(uint256,address)","3f3a1ed2":"alottTokensExchange(address,uint256)","3f3a279d":"getBetResult()","3f3a4966":"getVotingPower(uint256,uint256,address)","3f3a78d5":"rateAngelDay()","3f3bdc6c":"upgradeAllowance(address,address)","3f3c212d":"kittenTalk()","3f3c51c3":"Setmyadress(address)","3f3c594c":"TestingToken()","3f3cde05":"whitelistFilteringSwitch()","3f3d83c3":"purchasable()","3f3e4c11":"setMaxTotalSupply(uint256)","3f3edfa4":"RootCoin()","3f3f43a8":"setPreDGZtoDgzRate(uint256)","3f402dfc":"CreateGameIco(address,uint256)","3f40adb8":"createPetition(string,string,uint256,bool,string)","3f415772":"releaseExists(bytes32)","3f419c40":"getMessageMaxCharacters()","3f423afe":"DIVISOR_STAKE()","3f4263ef":"x(uint256)","3f430616":"getThirdRoundReleaseTime()","3f43c7cf":"open(uint256,uint256,uint256,string)","3f444db1":"internalDoRoll(bytes32,bytes32,uint256,uint256,uint256)","3f44d89f":"NigerianNairaToken()","3f450915":"_mateWith(uint256,uint256,uint8)","3f4628c1":"disputeLimitedReporters()","3f46a2ea":"DucLongToken()","3f478372":"newDeposit(uint256)","3f479562":"kingGladiatorFounder()","3f47e662":"decimals(uint256)","3f487b8b":"securityGuardLastCheckin()","3f48ae1a":"initInsecure(address)","3f493a1d":"Playforfreetoken()","3f497d52":"batchAirDrop(address,address,address[],uint256)","3f4a6484":"removeCapper(address)","3f4acbe8":"_teamTax(uint256,bool)","3f4ad13d":"LOTE(uint256,string,string)","3f4b1401":"releaseDragonTokens()","3f4ba83a":"unpause()","3f4be889":"callContractAddress()","3f4c0733":"batchTransferEtherWithSameAmount(address[],uint256)","3f4c89ca":"show_minimum_amount()","3f4d2fc2":"addConnector(address,uint32,bool)","3f4d97f0":"TOTAL_TEAM_TOKENS()","3f4dd268":"releaseTokens(uint256,uint256)","3f4e5ab9":"getB1()","3f4e6d66":"CryptoFamous(address)","3f4e95d7":"investorsAccounts(address)","3f4eb701":"updateUnderlying(string,uint256)","3f4f057f":"candidateBlockNumberHash()","3f4f070c":"newSpaceshipUpgrade(bytes1,uint8,uint256)","3f4f3075":"setRenewable(uint256,bool)","3f4f50c8":"EvtUnlock(address,uint256)","3f50331d":"batchTransferPaidTokens(address[],uint256[])","3f516018":"setCreator(address)","3f5174df":"numberOfEarlyPurchases()","3f5228c7":"fifishICO()","3f52c660":"TokenPerETH()","3f52e589":"setStartingTime(uint256)","3f541d08":"burnTokens(address,address)","3f541ffc":"exchangeEtherForHavvens()","3f549d87":"contributeByOracle(address,uint256)","3f55b895":"delegate(uint8,bytes32,bytes32)","3f572432":"investment(uint256,address,string,uint256)","3f5750c6":"distributeCoins()","3f576af0":"GoodDayTokens()","3f579f42":"executeTransaction(address,uint256,bytes)","3f58774b":"ecbuy(uint256)","3f58a043":"ceoEtherBalance()","3f58f8c0":"voteRuling(uint256,uint256,uint256[])","3f590062":"getTokenCreationTime(string)","3f59b1ab":"TokenImpl(string,string,uint256)","3f59e45a":"bincentiveLogger()","3f5a0bdd":"selfDestruct(address)","3f5a9e22":"getAmountOfTitties()","3f5ab2fe":"seed_eth()","3f5adb8e":"LIRAX()","3f5b7675":"periodTwo()","3f5bc9b6":"makeACall(address,uint256)","3f5c6a50":"MinimumDonation()","3f5cbdb6":"returnWei()","3f5cd055":"advisorsVesting()","3f5d0203":"getCreationWeiCost()","3f5d2b79":"CrowdsaleFinished(uint256,uint256)","3f5d8056":"currRound()","3f5e268f":"convictInitial(uint256,uint256)","3f5e3ec1":"changeTransactionStorage(address)","3f5ea068":"addLockAccount(address,uint256)","3f5f5217":"sellAth(uint256)","3f601972":"TotalToken()","3f606cfc":"enableAutoSeller()","3f60efa2":"HANDLE()","3f615272":"sendICO(address,uint256,address)","3f61dcf6":"enableTransfering()","3f62c084":"collectMessage(address,address,uint256)","3f635e30":"ethTransfer(uint256,address,uint256)","3f64a7ab":"devFeePercent()","3f64b318":"initSale(address,address,address,address)","3f651bab":"TOURNAMENT_ENDS()","3f65d97f":"removeEndorsement(bytes32,bytes32)","3f67364a":"PayValsToList(address[],uint256[])","3f67a94e":"getOffChainAddresses()","3f683b6a":"isStopped()","3f6849eb":"listedMonForMon(uint64)","3f686170":"freezeAll(bool)","3f69034f":"enableGeneration()","3f697ce9":"startBlock(address)","3f69babd":"cancelEvent(uint256)","3f6a2c97":"calculatePoints()","3f6a6792":"Bribed(uint256,uint256)","3f6b33c4":"ping(address,uint256,uint256)","3f6b5fde":"generate(address,string)","3f6b6f2e":"Airdrop()","3f6c0696":"superMint(address,uint256,uint256)","3f6c0c60":"isTransferNotExpired(uint256,uint256)","3f6c3567":"listSales(uint256)","3f6c4a1b":"getTeamA(uint256)","3f6c4cfd":"withdrawBountyAndAdvisory()","3f6c71c5":"edgePigmentR()","3f6c95fe":"increaseLotteryBalance(uint256)","3f6d8256":"validatorFee()","3f6dd911":"multisig_owner()","3f6ddb75":"Allocated(address,uint256,bool)","3f6ea2a8":"MIN_LEADER_FRAC_TOP()","3f6ec73a":"itemVoteUp(address,uint256)","3f6f7ed6":"updateEthRate(uint256)","3f6fa655":"resolved()","3f6fff4e":"closeCycle(uint256)","3f70c2b4":"getProductById(uint256)","3f720922":"setConfig(uint256,uint256,uint256,uint256,uint256)","3f723c62":"addRecord(string,string,string)","3f73365f":"getOneFree(address)","3f738402":"goalIncrement()","3f74a3b7":"MINIMUM_VESTING_PERIOD()","3f74a8be":"totalEthJackpotCollected()","3f74fecb":"DSTrueFallbackTest()","3f751ad0":"addTxToCustomerRegistry(address,uint256,uint256)","3f7525bf":"getAddressesSet()","3f76fbd3":"dhopakcoin()","3f77b560":"newDocument(bytes)","3f77e1e9":"testFee()","3f79a0a9":"NewGame(bytes32,bytes32,bytes32,bytes32,address,uint256)","3f7a0270":"setN(uint256)","3f7aea39":"getCET4ById(uint32)","3f7b2ea9":"testMintInvalid()","3f7b54f9":"DevChangeMiningReward(uint256)","3f7b6be8":"createProductionUnit2()","3f7c42a7":"setJob(address,uint256,address,string,string,uint256[],uint256,uint256,uint8[],uint8,bool,address[])","3f7ca612":"FMWL()","3f7d5361":"changeSafetyLimit(uint256)","3f7d72d8":"rSetE(address)","3f7da39a":"whitelisterAddress()","3f7e2120":"CloseGift()","3f7eabc9":"setRobot(address)","3f7eb0fe":"func_1()","3f7f2eda":"Order(address,uint256,address,uint256,uint256,uint256,address)","3f7f4f17":"getUserAccountBalance(address)","3f7f6d23":"BuyWithBonus(address,address,uint256,uint256,uint256)","3f7f8b24":"getAllocationProposal(uint256)","3f7f9faf":"attachTicker(address)","3f80135f":"test_threeInvalidEqAddress()","3f801f91":"proxyAssert(address,uint8,bytes)","3f802220":"ProposalAdded(uint256)","3f802ca0":"singleValueBatchTransfer(address[],uint256)","3f806783":"potSizeChanged(uint256)","3f807199":"changeParticipants(address[])","3f80a82b":"getbuyPrice()","3f80db69":"_totalTokenSold()","3f811b80":"createContract(bytes32)","3f8126d5":"GetStatus(uint256)","3f817449":"tokenSmartcontract()","3f81e4be":"lastBlock_a9Hash_uint256()","3f82065b":"setDiscipleVend(uint256,uint256)","3f82e2c6":"PUBLIC_RESOLVER_NODE()","3f836dcf":"addAsAddress(bytes32,address)","3f83acff":"get_contract(bytes32)","3f8416fb":"doUpgrade(address)","3f85be9c":"calcChanges(uint256,uint256,uint256)","3f85f916":"founderContract()","3f862a19":"remainUserTokenBalance(address)","3f87f870":"checkRequest(string,string,string)","3f883dfb":"transferExternalValue(bytes32[])","3f887fad":"buyShares(uint256,uint8,uint256,uint256)","3f89b09c":"update_fee(uint256,uint256)","3f8a04aa":"getCurrentUserPromoBonus()","3f8a4c13":"previousSnailPot()","3f8a92b3":"setmangeruser(address,bool)","3f8ae6d9":"GetUserExpire(address)","3f8af40c":"amendedEarlyPurchases(uint256)","3f8b0a1d":"getIssuedBy()","3f8c2582":"ethSale(address)","3f8c75a6":"_createLicense(uint256,uint256,address,uint256,address)","3f8cfba6":"lifeVestingStages()","3f8d9568":"buyins(address)","3f8d95bd":"_delete(address)","3f8df98d":"calculateMyReward(uint256)","3f8e0298":"parseTicket(uint256)","3f8f0714":"SimpleLife()","3f900962":"manualRaffle()","3f914aef":"setWhitelistAddress(address,bool)","3f923f9d":"NIZIGEN()","3f92edaf":"getMaxDropsPerTx()","3f935379":"_isSingleFlag(uint256)","3f94904a":"bankValReserve()","3f95c0c2":"timeboundTest(address,uint256,uint256)","3f9628e8":"addOldWithdrawals(address[],uint256[])","3f966082":"exchangesOwner()","3f96f3a3":"toInt()","3f97b106":"GetSuspend()","3f97d995":"VALIDITY()","3f982b74":"createInitialAllotment(string,uint256)","3f9942ff":"canceled()","3f9945d2":"ByThePeople(address)","3f99a12b":"saleEndBlock()","3f99fa54":"addInitialMember(address,uint256)","3f9a3886":"OWNERS_ALLOCATED_TOKENS()","3f9af464":"AK4Token()","3f9b250a":"getDocument(uint256)","3f9b8fdc":"updateAllowedTransfers(address,address,bool)","3f9c7822":"print(int256,uint256)","3f9cbd65":"mainSaleTokenWallet()","3f9ce517":"getRefAddress()","3f9d0954":"FarChainToken()","3f9d95ed":"addAcceptedToken(address,uint256,uint256)","3f9e0eb7":"_getDaysInMonth(uint256,uint256)","3f9e23e5":"migrationFinished()","3f9e3494":"ReleaseSupply(address,uint256,uint256)","3f9e50fd":"LitToken()","3f9e9a37":"getBonusesAmount(uint256)","3f9e9df2":"removeInWhiteList(address)","3f9f5b68":"setPreviousID(uint256,int256)","3f9f7779":"BitCronus1()","3fa10e0a":"CountryJackpot()","3fa1436e":"updateTokenSaleState()","3fa1930d":"getPlayerBet(uint256)","3fa19804":"updateTeller(int8,bytes16,int8,int16,bool)","3fa21806":"lastHash()","3fa2dd2a":"getStage2Cap()","3fa2fe7a":"getActiveUserCount()","3fa40f94":"mintTokens(address[])","3fa4687b":"bytesToAddres(bytes)","3fa4ed06":"updateValue(bytes32,uint256)","3fa4f245":"value()","3fa54ed8":"setTileTypeAt(uint16,uint16,uint8,uint16)","3fa58b61":"Whitelistable()","3fa6010f":"setGallerySixPrice(uint256)","3fa615b0":"minCap()","3fa6497f":"AdminAddFunds()","3fa68836":"removeParticipant(uint8)","3fa69faa":"testtoken()","3fa8543a":"IMEXToken()","3fa8a7b8":"releaseTokenOwnership(address)","3fa911ae":"refundAllowed()","3fa9fcf8":"createPlayer()","3faaef28":"BurnFSATokens(uint256)","3faaffdb":"SCToken()","3fab8fb0":"EatToken()","3fabf8c0":"developmentAuditPromotionTokensPercent()","3fac68d5":"payOff()","3facd57c":"registerBill(uint256,address,address,uint256,uint256,uint256)","3facdfb6":"gatFund()","3fad1834":"getRequestCount()","3fad9ae0":"question()","3fadbd3e":"minTokenPurchase()","3fadc388":"current_plot_price()","3fae1928":"timenow()","3faed436":"setXTVTokenAirdropStatus(bool)","3faf511f":"vouch(bytes32)","3faff9d5":"purchaseTokens(uint256,address,bool)","3fb0b2c9":"CancelRoundAndRefundAll()","3fb18aec":"contains(string,string)","3fb1ab52":"_getUserSupportForTeamInTournament(uint256,uint256)","3fb1fed4":"startingExchangePrice()","3fb23166":"TeamVesting()","3fb23865":"fundingStatus()","3fb27b85":"seal()","3fb326ba":"MAX_ETHER_CONTR()","3fb39b8b":"rewardBeneficiary(address,uint256)","3fb3bec2":"deactivateTime()","3fb3ec28":"delegatedAmountsByDelegate(address)","3fb48c4c":"AAACoin()","3fb51a76":"frozenDaysforTestExchange()","3fb58819":"getMinGasPrice()","3fb5c1cb":"setNumber(uint256)","3fb64e75":"gameInProgress()","3fb655a3":"CPLTokenDeposit()","3fb8b692":"affiliateAddresses(uint256)","3fb92b10":"gameNbr()","3fb97857":"getCouponMulFactor()","3fbb539d":"scheduleCall(address,bytes,uint256,bytes)","3fbb8f98":"drawTertiaryDWinners(uint256)","3fbc2a1e":"preSaleTLYperETH()","3fbc6345":"Token_Remaining()","3fbd40fd":"ProcessDraw()","3fbda23f":"CharityToken()","3fbfdefc":"checkMyAging(address)","3fbffca6":"getTeamB(uint256)","3fbffcef":"bidsCount()","3fc0234d":"train1(uint256,uint256)","3fc15f15":"mainToken()","3fc22c51":"buyPreSaleTokens(address)","3fc3e53f":"Funding()","3fc44ab3":"setCustomEvent(uint256,uint256,bool,string,uint256)","3fc499b2":"ihomekey()","3fc4caa1":"levelThreeBonus(uint256)","3fc4e866":"RudiantoToken()","3fc50b92":"agingTime()","3fc523c7":"test_fourInvalidEqUint()","3fc5b69b":"set_sale_arbits_per_ether(uint256)","3fc5ed50":"_openGameResult(uint256,string)","3fc6a97a":"sellNow()","3fc6bc94":"payDAO()","3fc6d75a":"crowdsaleTokenPrice()","3fc7e3d5":"volumeType3()","3fc821ee":"getStackholderConfirmationCount(uint256)","3fc86d32":"newInvestor(uint16,address,uint256,uint256)","3fc8b029":"testSaleHasOwnerOnCreation()","3fc8ca58":"JetherToken()","3fc8cef3":"weth()","3fc90f7c":"addresses1(uint256)","3fc98bd5":"robotInfo(uint256)","3fcb21d3":"ecoFundingSupply()","3fcce626":"setDeprecated(address,string,string)","3fcd06fa":"checkMinimalGoal()","3fcdd2d3":"transfertoken(uint256,address)","3fce1b82":"addAnimal(uint8)","3fcead58":"TKRPToken()","3fd01a77":"is_purchase_allowed()","3fd0f727":"isIcoTrue()","3fd1f232":"LookAtAllTheseTastyFees()","3fd2300d":"curveIntegral(uint256)","3fd2799d":"newShortPosition(address[7],uint256[4],uint32[3])","3fd29369":"offer(string,string,string,uint256)","3fd3370a":"FooTime()","3fd3a371":"stageThreeEnd()","3fd3c997":"assetProxies(bytes4)","3fd68ca7":"lastCheckedToken()","3fd6b1db":"InoCoin(uint256,string,string)","3fd76a98":"MANAGEMENT_LOCKED_ALLOC()","3fd8b02f":"lockPeriod()","3fd8cc4e":"isPermitted(address)","3fd8cd9b":"ETHReturn(address,uint256)","3fd94686":"changeEligibleDonkeys(uint256)","3fd97621":"testTransferHandlesTooLargeRequest()","3fd9c56d":"checkDoubledProfit(uint256,uint256)","3fda1281":"get_keys()","3fda417a":"LADCoin(uint256,string,string)","3fda5389":"fill(uint256)","3fda926e":"addGame(address,string)","3fdb3628":"aggregateCDPValues(bytes32)","3fdb372a":"buildWinery()","3fdb571f":"reGround(uint256)","3fdb705b":"platformTokenSupply()","3fdb8cbd":"dt()","3fdbb6c7":"RATE_THRESHOLD_PERCENTAGE()","3fdccd8d":"setDCNForGas(uint256)","3fdcef0d":"PRICE_BEFORE_SOFTCAP()","3fdcefe0":"doSelfdestruct()","3fddd97d":"XCoin(uint256,string,string)","3fdddf01":"EGGS_TO_HATCH_1PACIFIST()","3fdde728":"MTP_PER_ETH_SALE()","3fddee64":"isAgency(address)","3fded490":"referralDiscountPercentage(address)","3fdeef90":"fstSold()","3fe0522c":"setTravelCore(address)","3fe14e03":"setAuthor(string)","3fe3347a":"assetType()","3fe3df76":"leaf_from_address_and_num_tokens(address,uint256)","3fe3f427":"depositTokens(address,address,uint256,uint256,bytes32)","3fe43020":"decreaseRepAvailableForExtraBondPayouts(uint256)","3fe43822":"Collect(uint256)","3fe75b8d":"Unity()","3fe97ead":"left49(uint256)","3fe9bf0e":"createContract(bytes,uint256)","3fe9f2a4":"EventCentsPerEtherChanged(uint256,uint256)","3fe9f2b2":"totalPublicFundingSupply()","3fea1c2b":"getIHand(uint32)","3fea2313":"ProposalAdded(address,address,uint256)","3feab517":"DreamCoin(uint256,string,uint8,string)","3feb1bd8":"transfer(bytes32,address,uint256)","3feb4f83":"BankeraToken(uint256,uint64)","3feb5f2b":"investors(uint256)","3febb070":"backlogAmount()","3febe823":"ClapClapToken()","3fec0561":"addclip(address)","3fec156b":"timeLockTeam(address)","3fec1a75":"setIcoDiscount(uint256)","3fec4a4c":"queryjingzhi(uint256,string)","3fec91a4":"addProposal(uint256)","3fecde21":"setTilePrice(uint8,uint256,address)","3feced03":"minAmountWei()","3fed491f":"testStoreBalanceAfterCheckout()","3fedcc31":"transfer(uint256,address,address,address,uint256,bytes,bytes)","3fee28b1":"logEthTx(bytes32)","3fefc25d":"getFundByManager(address)","3fefdb01":"setStageGenomes(uint8,string,string,string,string,string)","3feff510":"showMainERC20()","3feff76d":"tokenaddress()","3ff00ba5":"airdropMinting(address[],uint256[])","3ff0a1e5":"FoundToken()","3ff0ab0b":"updateUserDetails(bytes32)","3ff11c8b":"right85(uint256)","3ff1a578":"IsCheckNeeded(uint256,uint256)","3ff1d68f":"_totalXT()","3ff1dcf6":"PermianICO()","3ff1e05b":"viewBalance()","3ff20c8a":"setPause(uint8)","3ff26c01":"catches(address)","3ff33185":"newCaller(address)","3ff42b92":"marketingAddr()","3ff4d491":"checkFile(bytes32)","3ff5481d":"cancelSellBlock(uint256,uint256)","3ff54c71":"issueTokens(address)","3ff66381":"ACCC()","3ff69113":"myEntityCount()","3ff7f21c":"mulFactor()","3ff8c954":"addAnimals(uint8)","3ff8da5f":"recipient3()","3ff98455":"set_participant(address,address,uint256,uint256,uint256,bool,uint8)","3ff9a877":"makeXID(uint256)","3ffa274a":"transfersAllowedTo(address)","3ffb8f27":"changeMinter(address,int256,address)","3ffbd47f":"register(string,string)","3ffc2832":"_buyIcsTokens(address,uint256)","3ffc813f":"toCompare(uint256,uint256)","3ffd2798":"distributeAdviserBounty(address,uint256,bool)","3ffdabda":"poi_token()","3ffe5eb7":"claimWork(uint256,uint256[2],bytes32)","3fffebbd":"setBonusUser(address)","400002c4":"modifyOpenStatus(bool)","4000164d":"getClaimData2(uint256)","4000601f":"sellStakes(address,address,uint256,uint256)","4000aea0":"transferAndCall(address,uint256,bytes)","4000d5c3":"BACTest1Token(uint256,string,uint8,string)","4001261e":"activeTier()","40015d99":"getProviderInfo(uint256)","4001cee6":"getPeerOwnership(address)","4001e364":"SendEthOff()","4002d3fd":"LargeFunction()","4002eda6":"nextRoundId()","4002f0b0":"CheckCourse(uint256)","400351cb":"applyForCandidate(string,uint256,string,string,string,uint256,bool)","4004b6da":"getAmbassador(address)","40058f61":"TIER2()","40066733":"getTotalVotersCount()","40067c91":"VoteFactory()","4006ccc5":"exchangeRatio()","400718ea":"expressBuyNumSec(uint256,uint256[],uint256[])","40079df0":"getDividendIndex(uint256,int256)","40086158":"calculateHash()","40086aa0":"directDebit(address,address)","400a44b2":"EE(uint256,string,uint8,string)","400a4deb":"sendPresaleTokens()","400aaab7":"CTOC()","400aae08":"isInCurrentGeneration(address)","400adee3":"releaseByCount(address,uint256)","400b56e5":"setReg2(uint256)","400b8bf8":"releaseMintTokens()","400ba069":"calculateFee(uint256,address)","400bb308":"SimpleTGE(address,uint256,uint256,uint256,uint256)","400bbbd8":"rebalanceGetTokensToSellAndBuy()","400d1f45":"dtGetEthBalance(address)","400e3949":"numProposals()","400eb4f5":"ParaType()","400ee783":"TOKENS_LOCKED_1Y_TOTAL()","400f7a1e":"getPairInfo(address,address)","400ff9a4":"BuyGold()","4010a018":"fundAvailable(address)","40111f6d":"RESERVED_TOKENS_BACE_TEAM()","40117f50":"CanalToken()","4011baf9":"MARKETING_POOL_TOKENS()","401214a7":"updateParams(uint256,uint256,uint256,uint256,uint256)","40128db3":"registerAsDelegate(bytes32)","40129a40":"updateAddress(bytes32,address)","4012e02e":"Info()","401356f1":"Salt()","40135913":"releaseImpl(uint256)","4014c1c7":"changeMutagen2FaceContract(address)","4015e83b":"renExTokensContract()","401611ed":"acceptEndorsement(bytes32,bytes32)","4016535a":"parseBlock(bytes,uint256)","4016e969":"allowOwner()","4018e263":"stageTwoCap()","40193883":"goal()","40193d17":"getPongvalConstant()","40194596":"RealBloq()","4019fc54":"masterTokenBalanceHolder()","401b57b5":"transferLockedToken(uint256)","401bd3fe":"distributeEth(address[],uint256[])","401c3ba1":"LogClaimRefund(address,uint256)","401d7175":"_buyShip(uint256,address)","401dc09f":"setGeneSynthesisAddress(address,address)","401e3367":"transferFrom(address,address,uint256,bytes32)","401e77de":"GameCreated(bytes32,address,string,string,uint16,uint64)","401f2be5":"collectRemainingFunds()","40202f9d":"LogTransaction(address,uint256)","4021581a":"dollarBalance(address)","40217452":"ProdBToken()","40217786":"setRatePerOneEther(uint256)","4021d93c":"Alibabacoin()","40220b03":"previousVersion(bytes32,bytes32)","40222b64":"allocationsIndex(uint256)","40229e14":"B_Com()","4023da38":"Bacini(uint256,string,uint8,string)","40243ecd":"SimplePaymentChannel(address,uint256)","402456c0":"bank1Val()","4024a33e":"stageBonusPercentage(uint256)","4024db80":"license(bytes32)","4024eb2a":"approveAndCallN(address,uint256,uint256)","4025005a":"SmartIdentity()","4025b22d":"getShip(uint256)","4025b293":"redeemAllOutcomes(bytes32,uint256)","4025b5a8":"ownerUpdateContractBalance(uint256)","40267e53":"updateWhitelistBatch(address[],uint8)","4026b261":"PlatoToken()","4026c101":"deathFactor_iii()","4026eb92":"endround()","4027522c":"DanetonToken()","40275f73":"addMapping(string)","40275f85":"getPersonalDepositAddress(address)","40277604":"collectedFeesInTwei()","40278124":"setListedTime(uint256)","4027d4d8":"spendFromSwap(bytes32,uint256,address)","4028354b":"PlaceADiceBet(uint8)","40285ad5":"setfees(uint256)","4028db79":"isFrozenAccount(address)","402914f5":"claimable(address)","402962bc":"deleteAddressesFromWhitelist(address[])","4029a3ce":"mintMany(address[],uint256[])","402a1533":"angelAmountRemaining()","402b2bca":"IcoStartDate()","402bf0ab":"_delHolder(address)","402c5644":"XNON()","402c569c":"unlockBonusTokensClaim()","402caccd":"RANGESTART_6()","402d1c9c":"CONFIG_MAX_EXPOSURE_MUL()","402d5f2e":"unlockTokenPriceChange()","402d8883":"repay()","402e46b9":"finito()","402e6230":"getTotalGambles()","402e912f":"issuedInsurance()","402eb694":"reliabilityPercentage()","40307cdd":"setCOMMUNITY_POOL_ADDR(address)","4030bc19":"sendRTB(address,uint256)","4030ddc0":"blockVContractAddr()","4031f60d":"INMCOIN()","40326686":"paymentsFinished(uint256)","4032b72b":"addKeeper(address)","4033236e":"getProofOfStakeReward(address,address)","4033c268":"isFullInvest(address,bytes5)","4033cd77":"applyForCertification(string,string,string,uint256,bool)","403446bd":"getPlayersFibokens()","4034af00":"setWhitelistInternal(address,bool)","4034b817":"loadVersion(address)","4034cfed":"fundWallet1()","403575f7":"setMaxMessagesTop(int32)","4035d16a":"createPromoCovfefe(address,string,string,uint16,uint256)","403639d5":"StartSale(address,uint256,uint256,address,address,uint256,uint256,uint256)","40365852":"roundStart()","4036778f":"reveal(uint256,bytes32)","4036ab78":"getType(uint256)","4036ff30":"changeHouseCutPercentage(uint256)","403911a6":"tokenSaleStart()","40394dcc":"freezeAccountByTime(address,uint256)","403988c6":"setCustodianName(address,bytes32)","403a0a78":"placeBet(uint256,uint256,uint256,uint256,bytes32,bytes32,uint256)","403a734a":"MMMbCoin(uint256)","403a8f53":"registerForRaffle2()","403abbc7":"updateFirstActiveGamble()","403b0cfd":"LogErr(uint256)","403b3757":"getValueTip(uint256)","403b7d9b":"secondRoundICOEnd()","403bb94e":"StatsEthereumRaised()","403c617e":"Hydrogen()","403c9fa8":"getPot()","403d8a6a":"initialMartialTimes()","403dca55":"totalIssuedSynths(bytes4)","403de107":"executeDecision(uint256)","403e73ea":"_DemSinhVienDat()","403f6cff":"putInWinnerPool(uint256)","403fbf54":"initiateEthUsdOracleUpdate(address)","40400fa7":"getBurnedItemCount()","404239f6":"validateLegalRate(uint256,uint256,bool)","40426fb0":"stopIssuing(uint256)","4042b66f":"weiRaised()","40440891":"Donate_some_amount_and_save_your_stake_rewards(uint256)","40441eec":"balance2()","40445a4f":"numTiers()","4044856a":"preIcoEthers()","4044e8ec":"cancelOrderWithPayer(string,address)","4045c846":"setAccreditationActive(bytes32,bytes32,bool)","404635db":"_canBreedViaAuction(uint256,uint256)","404704b9":"sendBounty(address,uint256)","40477126":"exchangeTokens(uint256)","404823d1":"wagerPool()","40482475":"startTokenSwap()","4048c449":"getParent(bytes32)","40490a90":"getMultiplier()","40496aef":"SecuredWithRoles(string,address)","404983fb":"addsm(uint256,uint256)","40499ae8":"approvedTill()","404a9272":"promoEndTime()","404ae80c":"_randomCardSetIndex(uint256,uint256)","404cbffb":"entityList(uint256)","404cf932":"mintStart3()","404d0e3e":"gen0CreationLimit()","404ed1fa":"_founder_two()","404ef602":"disapproveToSell(uint256)","404efc53":"left26(uint256)","404f8dc8":"KRW_Omnidollar()","404fdfdf":"_setTempHeroPower()","4050a394":"getWishName(uint256)","40510399":"miningKing()","40512dcc":"TotalDividendsPerShare()","405136fa":"multiSendEth()","40517083":"dig(uint256)","4051ddac":"getSummary()","4051ed26":"BONUS_SLAB()","40520f85":"tokenToEtherRate()","40523946":"spectreTeam()","40528f98":"ownerUnlock(address,uint256)","4052c02a":"ProToken(uint256,string,uint8,string)","405353b5":"NPToken()","4053873c":"_safeTransferTkn(address,address,uint256)","4053c797":"save(bytes32)","40543538":"get_asset_events_count(bytes32)","4054f5de":"EthVentures3()","40556191":"getCrowdsaleWhitelist()","40557cf1":"saleRate()","40557e87":"totalBondSupply_BEAR()","405665fb":"isMeInWhiteList()","4056675e":"transferTokenOwnership()","4056f8a8":"minimumTokens()","4056fe06":"MAX_GOAL_EBC()","405710a8":"sentTokensToCompany()","40582f13":"getWeiRaised()","405871e5":"SealPrivateCrowdsale()","4059240c":"intervalNow()","405a66da":"claimOtherTokens(address)","405abb41":"updateRate(uint256,uint256)","405b8816":"testIsContractZero()","405bd7bb":"getCurrentNumberOfVoters()","405c649c":"timeLeft(address)","405c6f6e":"addDelegate(string)","405cae3b":"LOG_SpinExecuted(bytes32,address,uint256,uint256,uint256)","405cb7f6":"KimJCoin()","405d3adf":"exchange(bytes4,uint256,bytes4,address)","405dd87c":"EAT()","405df338":"start_PREICO()","405f63e7":"MANHATTANPROXY9THCOLAVE()","405f8006":"BlocToken()","405fea2f":"setTokenAudit(address,address,address,address)","4060d9f5":"isCarSpecial(uint256)","40621412":"BetexICO(uint256,uint256,uint256,address,address,address)","4063d563":"advertise(address)","406499d2":"Redhorse()","40650c91":"MIN_CONTRIBUTION()","40652435":"BURENCY()","40654e14":"balanceOfEth(address)","40656963":"contribute(bool)","40664496":"getTransferFee(address,address,uint256)","4066fdea":"feeProvider()","4067ffda":"transactionsOnForHolder(address)","406838b3":"etoken2()","40684172":"getICORaisedAmount()","406843ee":"recommendProportion()","4068665d":"TokenVesting(address,uint256,uint256,uint256,bool,address)","40695363":"floor()","40695625":"testRetractLatestRevision()","40698729":"withdrawERC20s(address,uint256)","4069925a":"releaseVested(address)","4069de8b":"MultiSender(address,address)","406a0e61":"VOLUME_50()","406a1180":"FATRANSOM()","406a318e":"getCitationRecordsLength(bytes32)","406a6f60":"attachToken(address)","406af848":"ArenplayToken()","406b0593":"tokenHoldersByIndex()","406b9394":"level0(address,bytes32,uint256)","406c22d3":"getLocalNodeReputation(address)","406c52d5":"changeElectorate(address)","406c5590":"FILO()","406c6633":"moveToNextCeiling()","406c92b5":"PRIVATE_SALE_MAX_ETHER()","406d7e98":"isAllowingTransfers()","406d81c7":"safeSendFunds(address,uint256)","406f1d22":"crowdSaleApprove(address,uint256)","406f390c":"_unsafeCall(address,uint256)","407001c6":"TruSale(uint256,uint256,address,address)","4070372d":"earlyInvestorsMintedTokens()","40710587":"usersCanSell(bool)","407167b6":"cantEntidades()","40716fc7":"DunderBet()","4071f89b":"payCharity()","40722e3e":"getNameReaderId(bytes32)","407235ba":"LogStop()","407255b5":"getWhitelistByIndex(uint256,address)","4072eee2":"getTopic(address,uint256)","4073002e":"AssetCollectionNum()","40731c24":"getPost(uint256)","40732c89":"makeDeposit()","40734387":"termination()","407456d1":"fundsOf()","407489ff":"concat_nodes(address[])","4074c648":"createPromoCollectibleWithMining(uint256,address,uint256,uint256,uint256,uint256)","407532bb":"presaleFundingTargetInEther()","40753a76":"addSupply(uint256)","40754714":"blockClient(address)","407617e5":"updateAmountIncrease(uint256)","4076a248":"BetPower()","40773279":"pay_Bounty(address,uint256)","407787e6":"Division(uint256,uint256)","4077aa14":"coreStaffAmount()","4077aaf8":"totalBountyTokens()","4077ef5d":"getMiniPoolEdit_4()","40784ebd":"slashInvalidUsername(string,uint256,uint256)","40786dec":"mint(bytes32,uint256,bytes32)","4078fca8":"feeETH()","40799f4c":"currentDayRate10000()","407a5c92":"getAdminLogN()","407a6727":"totalVIP()","407b899b":"returnInt64(int64)","407c554a":"getTSTTokenAddress()","407ca6f8":"BsktToken(address[],uint256[],uint256,string,string)","407cba67":"buyKNOW()","407cfe5e":"get_all_players()","407d0cd0":"addGame(string,uint256,bytes32[])","407d1a0c":"unstoreHorsey(uint256)","407d552a":"jackpotTokenWinRewardRate()","407e5e5d":"newVoting(bytes,string)","407e9588":"rejectMintRequest(uint256,string)","407e9e2c":"setcommissionCompany(uint256)","407ea214":"getPortion(uint256,address)","407ed2e2":"ComputeSell(uint256)","407f56e5":"HEAL()","407f8001":"secondsPerPeriod()","407fb687":"exchangeEtherForNomins()","407fc2e8":"eggsSold()","407fcc31":"tokenPriceUSD()","407fce7b":"left12(uint256)","4080277f":"guhb(address)","408056e4":"weiMinInvestment()","408057c4":"getStockCount(address)","40806f7c":"getAvailableFees()","40807049":"transferManyLands(uint256,uint256[],address)","40809acd":"stake(uint256,uint256,address,address)","40809f9d":"calcEma(uint256,uint256,uint32,uint256)","4080c884":"XstarToken()","40811e90":"transferDataAuthority(address)","4081c065":"massGrant(address[])","4081d916":"checkPlayerExists(address)","408275bb":"transferToVault(bytes32,address,address,uint256)","40828698":"s(address,address,uint256)","4082b499":"totalNumberOfPurchases()","4082defb":"isBasicAccount(address)","408318ae":"addAllowCnsContract(bytes32,address,bytes32)","4083c555":"Oasis(uint256,string,uint8,string)","4083cdbb":"changeTokensLimit(uint256)","4083e2af":"getFinalRoundPoints(uint160)","4083e935":"transferEthersInternal()","40844a8d":"safeDeduct(uint256,uint256)","40848af5":"markMyWord(bytes32,uint32)","4084c3ab":"finalizedBlock()","40857e02":"create(address,address,uint256,bytes32,int256)","4086b620":"sweepsCreationTime()","408760b8":"setAngelLastVsBattleTime(uint64)","40876f6e":"getMaxMakerAmount(address,address,bytes)","4087908f":"RicoToken()","40884c52":"getOracles()","40890bc2":"getCurrentProvider()","408938d0":"testUpdatePackageDb()","4089462d":"registerPackage(bytes32,string)","40896550":"bountyTotal()","4089b170":"totalPayouts()","4089d22a":"buyDepo(address)","408a2ac9":"addNewSupplier(address,address,uint256)","408a8094":"releaseTeamTokensAfter24Months()","408aee81":"removeVendorByAddress(address)","408b9945":"getBuyerNumber()","408bcbda":"getBalancesLength()","408bf4c3":"getAllCompanies()","408c1932":"distributeDisputeFunds(address,address,address,address,uint8,bool,address,uint256,uint256,uint8)","408cfe24":"iToken()","408d407d":"getClaimData(uint256,uint256,uint256)","408d5773":"createContractCovfefe(string,string,uint16)","408d947e":"SmartToken(string,string)","408d9e35":"ExecutorChanged(address)","408e097c":"createDestructibleCloneToken(address,uint256,string,uint8,string,bool)","408e2727":"votingActive()","408e2eb4":"ico2Tokens()","408ee7fe":"addAlerter(address)","408fef2e":"requiredMessageLength()","40901b08":"p_setLimitedReferralsMode(bool)","40908298":"allowedAddress(address)","4090cb64":"getWToken()","4090e696":"GetMinCost(uint256,uint256,uint256)","4091adf5":"onlyOwnerGetCompanyWallet()","4091ca4c":"gettopuser(address)","4091f4c6":"refreshMonarchyGames()","409242fc":"citation(uint256)","4092a611":"upVote(bytes12,bytes12)","4092acdd":"tokenFulfillmentDeposit(address[2],uint256[8],uint8,bytes32[2])","4092e2c2":"addMember(bytes32,address)","409315ce":"executePure()","4093b49c":"votes_for()","4094ac75":"ProofOfWeakHandsClassic()","4094ef5e":"addDataRequest(string)","40953102":"scheduleCall(address,uint256,bytes,uint256,uint256,uint8,uint256)","40954254":"addPublicSalesSpecialUser(address)","4095fbba":"SubmitTransaction(bytes32)","40966a97":"CMCEthereumTicker(address,uint256)","40976b60":"setNewAgent(address)","4097d865":"increaseRound()","40980953":"setWhitelistOff(bool)","40992e9d":"getTotalAirDroppedAmount()","40998845":"_recordName(address)","409a3d8f":"ALLANCOIN()","409b479c":"GetTotalPlayers()","409bc43c":"changePersonalMaxcap(uint256)","409bd95b":"getProductionTimeBusiness(uint256)","409c7baf":"BONUS_MIN_DURATION()","409c962e":"view34()","409dba83":"calcKeysReceived(uint256)","409e81a4":"Create(uint256,uint256,uint256,uint256,bool)","409ed1db":"setCCH_edit_5(string)","409f2607":"ESCOToken()","409f33c1":"sumPublicSale()","409fb4c0":"configMaxKeys()","409fc358":"canGiveMoneyBack()","40a0dd4b":"updateStateBasedOnTime()","40a141ff":"removeValidator(address)","40a19a71":"BLOCKSUNTILCLEANUPSTACK()","40a1b96e":"getTickets(uint8)","40a1f4d5":"invalidateStage(uint256)","40a1f87d":"getTotalLockedTokensPerUser(address)","40a203c4":"CoinVillaIssued()","40a2bfc1":"setXPAAssets(address)","40a3a9c7":"createTokenLocker(address,address)","40a3d246":"toggle()","40a401d0":"setMonsterIndexToOwner(uint256,address)","40a45440":"getPlayerBetNumbers(address)","40a49a96":"searchSmallestInvestor()","40a4c3cc":"loanCreator()","40a4c580":"validateTransfer(address,address,uint256,bytes,bytes)","40a50a5e":"setNormalBuyLimit(uint256)","40a51199":"PubPresale(address,address,address)","40a53017":"FeedEgg()","40a53ab9":"replaceAuditorRegistry(address)","40a5737f":"setIndex(uint256)","40a57cb8":"makeAdmin(address,bool)","40a5bfc5":"PentacoreToken()","40a72363":"sigTeamAndAdvisersAddress()","40a7ed8b":"uintFunc(uint256,uint256,uint256)","40a8a96c":"KingdomCreatedEvent(uint256)","40a915a5":"setTokensLocked(bool)","40a92f0f":"setMinSign(uint40)","40aab81b":"UpdatedBlock(uint256,uint256,bytes32,bytes32,bytes32,bytes32,address)","40aad0fe":"getUserPair(address)","40ab2634":"lastBlock_f8()","40ab4879":"pePrice()","40ab7b8c":"bnt()","40ac40b2":"setInvitationMultiple(uint256)","40ac89a2":"returnInvestment()","40acbee3":"TokenFactoryAirdropToken()","40acf805":"setCompanyInfo(bytes32,string)","40ad654c":"transferForVote(address,uint256)","40adf94e":"setOraclizeGasPrice(uint256,uint256)","40ae0851":"withdrawEtc(address,uint256)","40aec640":"bonusState()","40aee1a9":"numHashTypes()","40af1a45":"PrivateSaleDays()","40b00033":"deposit(string,uint256,bytes,uint8,bytes32,bytes32)","40b0a77f":"updateInstantTrade(address)","40b0c3d1":"DiligenceToken()","40b12b40":"testIsTrue()","40b14606":"getOverPLayer()","40b1ad52":"slashReservedUsername(string,bytes32[],uint256)","40b31937":"pledgeDecline(uint256)","40b359f5":"markTaskCompleted(address,bytes32)","40b43701":"getSetting(uint256)","40b5336d":"_updateDepositCountry(uint256,uint256,uint256)","40b5886b":"getHotWalletAddress()","40b5ce01":"fightStartTime()","40b60b85":"forceBuyback(address)","40b61fe9":"removeOperator(address,address)","40b6290f":"acceptSale()","40b6c71f":"EthLyteToken()","40b73897":"getFeeWindow(uint256)","40b74c91":"dislikeArtist(address)","40b7802d":"GiveUpTheDough(address)","40b7b240":"calculateAmount(address)","40b80684":"TOKEN_AMOUNT_ICO_STAGE1_PRE_SALE4()","40b8783d":"raiseSlammer(bytes32,bytes32,bytes32)","40b8d53a":"startFeeExit(address,uint256)","40b98253":"canContribute()","40ba0e94":"getRegion(uint256)","40bb28e8":"watchVideoB(address)","40bb8474":"RENEETOKEN()","40bbf5b9":"ChunksToken()","40bc9308":"startTimeRound1()","40bcff15":"bet1000_01eth()","40bd8720":"_changeOslikiFoundation(address)","40bdd3e9":"bytesEqual(bytes,bytes)","40bea8d2":"lockedEndTimeOf(address)","40beafc9":"depositToTWI(uint256)","40beee2b":"setPermanentPlatinumLevel(address,string)","40bf6424":"removalPrice()","40bff23d":"_createCard(uint256,address)","40c05401":"getWithdrawableAmountFIIT(address)","40c0bcb9":"checkBetNumber(uint8,address,bytes32,bytes32)","40c0c5ff":"PityToken()","40c0ece3":"updateMyReturns(uint256)","40c10f19":"mint(address,uint256)","40c243c9":"totalEthRefunded()","40c2dc4a":"getCCH_edit_6()","40c3198e":"getBenzByOwner(address)","40c3418c":"sendCrowdsaleBalance(address,uint256)","40c36524":"getFreeHatchCnt()","40c37ed2":"sellGameLockedToken(uint256)","40c3a6db":"MaxNumberOfBetsChanged(uint256)","40c3b187":"left37(uint256)","40c3b18e":"approveTransferableToggle()","40c44c5b":"DivisibleFirstCommonsForumToken()","40c44f6a":"setNewCFO(address)","40c48c8d":"setNewPriceInFinney(uint256)","40c48dfa":"Entropy()","40c558b2":"releaseCatIndexUpperBound(uint256)","40c58b2b":"get_foreign_balance(address)","40c5b34e":"currentPhaseId()","40c65003":"bonusEnds()","40c657c7":"buyTokens(address,uint256,uint256,uint256,uint256)","40c73d17":"changeAnimator(address)","40c7535b":"TangToken()","40c7e279":"requiredPlayers()","40c7e707":"contributeBTC(address,uint256)","40c85a59":"getLestCommonMulArray(uint256)","40c87214":"_startNewMiningEpoch()","40c8a90a":"GetLastMsg()","40c91c05":"submod(uint256,uint256,uint256)","40c92ae6":"multisigwallet(address[],uint256)","40c97617":"getReferralAddressShare()","40c9adcf":"_cancelOffer(uint256)","40c9e804":"SanityRates(address)","40ca0f05":"W0keAFPresale(uint256,uint256,uint256,address)","40ca925d":"ChannelManagerContract(address,address)","40caae06":"setOwner()","40cc1239":"TokenEmission(string,string,uint8,uint256)","40cc35ce":"teamWithdrawalProposed()","40cc8854":"bite(bytes32)","40cd988d":"refundBroadcaster(uint256)","40cde403":"exchangeBalanceOf(address)","40ce1d43":"EWWCOIN()","40ce5062":"isPublicSaleNoBonus()","40ceb451":"increasePromoCreatedCount()","40d0a103":"MarketOrderEvent(uint256,uint128,uint8,uint16,uint256,uint256)","40d113da":"sqrtAsm(uint256)","40d1d255":"claimEndTime()","40d21e6a":"getRelations(uint256)","40d22cf8":"completedTasks(uint256)","40d2e73c":"VanHardwareResourcesChain()","40d32df9":"MetaIdentityManager(uint256,uint256,uint256,address)","40d3d25a":"playersStorage(address)","40d40a72":"MANAGE_CAP()","40d48958":"_endTime()","40d67116":"setTokensPerOneETH(uint256)","40d681cb":"setupPresaleClaim()","40d699b7":"deathData_a4()","40d75432":"provideExchangeRate(uint256,uint256,uint256)","40d7b7b8":"dollarPrice()","40d7f7e8":"Staked(address,bytes32,uint256,uint256,uint256,uint256)","40d815cf":"Cyberium()","40d84b52":"updateCase(address,uint256)","40d8c74f":"checkForPayout()","40d96e6c":"finalizeSale3()","40da948f":"updateUnit(uint256)","40db4b09":"tokensOwedByInterval(uint256,uint256,uint256)","40dca307":"buyCoinsUpdateState(uint256)","40dda9af":"USER_LOCK_BLOCKS()","40de2784":"buildICOStageTwo()","40debefd":"SomeCoin(string,string,uint8)","40dee0c5":"LogRedeem(address,uint256,bytes32)","40df280e":"alliesContract()","40df78b6":"bankBurnFrom(address,uint256)","40e0653c":"_getLevel(uint256)","40e099ac":"makePromise(uint256)","40e15134":"presaleDist()","40e1e62b":"RedSoxYankees412()","40e2ad58":"buyOwnedPixels(bytes32)","40e31490":"killAnimal(uint16)","40e40765":"setTokenSaleHardCap(uint256)","40e424ee":"chooseWinner(bytes32)","40e4ebf4":"GenDayRatio(uint256)","40e50d00":"gcsc(uint256)","40e58ee5":"cancel(uint256)","40e5f3cb":"getEtherBalanceOnCrowdsale()","40e63ef3":"getPubKeyByHash(string)","40e687a9":"blockno()","40e6b00a":"createRefundPoll()","40e7261d":"Golem()","40e87f13":"dropTokenV2(address[])","40ebe5bc":"SHARD()","40ec0b6a":"isCurioAuction()","40ecb7f2":"isTransferValid(address,address,uint256)","40ed79f4":"hashimoto(bytes32,bytes8,uint256[],uint256[],uint256)","40eddc4e":"getCollectedEther()","40ee2485":"CryptoCovfefes()","40eedabb":"leader()","40ef4704":"getState(bytes10)","40ef78a7":"getExploreData(uint256)","40f03605":"existingContribution(address,address)","40f04616":"_buyDiscountTTW(uint256,uint256,address,address)","40f0a21f":"ceil(uint256)","40f10af2":"revokeAttribute(address,address,string,bytes)","40f12a02":"getPureWeaponDamageFromTokenId(uint256)","40f13c0f":"mintingFoundersFinish()","40f13db5":"addWhitelisted(address,address)","40f19da7":"isFinish(bytes32,bytes32)","40f29da3":"testReturnsProductInformation()","40f2a50b":"findDsp(address)","40f313b9":"ImportRemappingTestA()","40f354f3":"insertTopic(bytes15,address,string,string)","40f3633e":"icoMin()","40f3b6f1":"yourShares(address)","40f3c364":"ProjectTag()","40f47d41":"registerNameByCOO(string,address)","40f523f9":"TourMEToken()","40f54c08":"TrumpCoins()","40f56cfb":"PYPToken()","40f5c954":"sumICOStage8USD()","40f5ed88":"XPS()","40f702b4":"userInfo(string,uint256)","40f81cb5":"providerAllowance(address,bool)","40f828a2":"setLiquid(bool)","40f9b34c":"BetrTokenPurchase(address,address,uint256,uint256)","40f9c62c":"setLargeWalletAddress(address)","40f9cdf9":"get_tokens_count(uint256)","40fa368c":"getOrderHash(bytes32,uint256[2],address,bool,uint96)","40fa61f7":"upgradeFee()","40fc5e7a":"upgradeableTarget()","40fdef80":"administration(uint256,string,uint256,uint256,address)","40fdf515":"issuetender(address,uint256,uint256)","40fe90d0":"setFreezeOut(address[],bool)","40ff26ba":"adminAdd(address,string)","40ff38b2":"rootDomain()","40fff80c":"setCommissionAddress(address)","41002439":"amIReady(address,address)","410085df":"refund(address,uint256)","410090db":"ChangeEmissionGrowthCoefficient(uint8)","410158cd":"Winsshar(address)","4102bf5c":"getAvailableAmount(address[8],uint256[6],uint256,uint8,bytes32,bytes32)","4102f4e8":"mToken(address,uint256)","41031b1d":"NutzEnabled(address,address)","4103257e":"ReceivedETH(address,uint256)","410366c1":"settleDispute(bytes32,uint256,uint256)","4103c4c4":"OwnedHelper()","410453ae":"serverEndGame(uint32,int256,bytes32,bytes32,uint256,address,address,bytes)","4104df21":"cardsMinted()","4105048d":"Revealed(uint256,uint8)","410520f7":"PrivateReserveCoin()","4105e02f":"remark1()","41061c04":"addVestingMember(address,address,uint256,uint256,uint256)","410646e0":"getUnclaimedAmount(address,uint16)","41068ae2":"LicenseCore()","41080cfa":"getLLV_edit_7()","41095b60":"voteForUltimateOutcome(bytes,uint16)","410968d8":"MajLastNotVal()","41097886":"LogAirDrop(address,uint256)","4109a71a":"CerttifyCrowdsale(address,address,address)","410a1d32":"getDonation(address)","410a1db1":"setCommunityPool(address)","410a6734":"setAllBlockHashes()","410a68b5":"setOraclizeCallbackGasPrice(uint256)","410ace1f":"EOSBetSlots()","410af6b6":"allowAddressDelegate(address,address)","410b1da8":"currentTotalSupply()","410bf4bf":"CloudMoolah()","410c2601":"testGetAccountBalance()","410c47a0":"bb(uint256)","410c8005":"SetReciver(address)","410c83a3":"get_amount_get_buy(uint256)","410cbcc6":"YaoToken(uint256)","410da27d":"surveyEndAt()","410dbad6":"setaddress(address,address,address,address)","410dcc42":"setSeedHash(uint256,bytes32)","410e05b3":"bdevIssue(address,uint256)","410e7b42":"TestCoin()","410e8340":"checkAndConfirm(address,bytes32)","41104ef9":"GlobalOperatorChanged(address,address)","41107bee":"parseSums(bytes)","4110a489":"validatorsState(address)","4110b2c9":"addCapital()","411273d8":"getTokenToEthAddOrderHint(uint128,uint128)","4112987c":"strConcat(string,string,string)","4112b7f1":"tryGetNameOwner(bytes)","4112ea75":"SongTokenExchangeContractSet(address,address,bool)","41130267":"fxxkicotestToken()","4113d05b":"createGen0TokenWithDna(uint256)","41161aac":"X(uint256,string,string)","41163f7c":"deedCount()","4116dfc3":"getMetaDataCount(address,bytes32)","411735ee":"getAddressGains(address)","41179685":"finalizeContruibute()","4118cbc9":"setTokenExchangeRate(address,uint256)","41192788":"refund(address,address[],uint256[])","41193c18":"blockPlaylist(string)","411a1714":"setOperational(address[],bool)","411a1ac1":"BitcoinEye()","411a3dcf":"forward(address,uint256,uint256)","411a42ea":"ConeTest()","411a492e":"getNumOfLotteryTickets()","411ae567":"setSlogan(uint256,bytes)","411b007e":"founders()","411b65ef":"setPropertyLastUpdate(uint16,uint256)","411c4e72":"ModifyFeeFraction(uint256)","411cc791":"transferWithParams(address,uint256,uint256,uint256,uint256)","411d3021":"MahalaCoin()","411d6e19":"USDETH()","411dddb2":"TrueVeganCoinPresale()","411e6832":"tokenObj()","411f93d1":"transferTicket(address,address)","411fcce5":"BitcoinSoft()","41203243":"dateOfBonusRelease()","4120a236":"FreeNapkins()","4120a800":"PrepareRollEvent(address,uint256)","4120bcec":"forceRecoverCollateralOnBehalfOf(address,bytes32,address)","41215aff":"NewUpgradeMaster(address)","4121b9f8":"SBECoin()","41224405":"get_planet_price()","41225b0e":"broadcastSchellingRound(uint256,uint256)","412282cd":"addOwnerAccount(address)","41228803":"updateBalance(address,uint256,bool)","4123057e":"update_oraclize()","41237fd5":"levBlocks(address)","4123a0ac":"deleteToken()","4123a482":"transferTx(address,uint256)","4123cb6b":"m_numOwners()","41240314":"teamTwoSharePrice()","4124a6a7":"getLockedFunds()","41252b55":"FreezeTransfers(address,bool)","41264107":"TEChain()","412648bf":"setAvatarIndex(uint256)","412661c4":"_setAuth(address,address)","412664ae":"sendToken(address,uint256)","41266ae8":"Composed(uint256,address,uint32[5],uint32[5],string,string,uint8[20])","4126d29e":"justFailRequire()","412740c5":"balanceWithInterest(address)","41275358":"feeAddress()","4127d54a":"tokensForPresale1()","41282fe0":"usersCanUnfreeze()","41288e76":"sendEtherToMultisig()","412956ce":"goBackToPrivateSale()","412988e7":"subSupply(uint256)","4129912c":"misub(uint64,uint64)","4129a9d5":"newIcoRound(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4129b2c9":"getWinner(uint256)","4129b8ed":"remainingTokenHolder()","4129d7d1":"MessageSent(address,address,uint256,string,string,uint256)","412a5a6d":"createContract()","412a7be0":"athlete()","412b2ee0":"forkMe()","412c0b58":"initiate(bytes32,address,bytes32,uint256)","412c0c2d":"getWin(uint256)","412c7dfb":"FOUNDER_WALET()","412cbc06":"assetsCount(address)","412e829f":"LoveTracker()","412ec94f":"updateTokenPoolAddress(address)","412edecd":"setDAOAndMultiSig(address,address)","412eee05":"enactProp(uint256)","412f83b6":"getDelegatorUnbondingLock(address,uint256)","41300d03":"secondBonusRate()","41304fac":"log(string)","413100e0":"getLeftoverWei(address)","4131775e":"_removeUserCity(address,uint256)","4131f609":"verifyWining(uint256,uint256,uint256,bytes,bytes,bool,bytes32,bytes32)","41326679":"inVaults()","4132bae8":"calculateRAUS()","4133e7a1":"GxCancelOrders(address)","41348053":"ratePlanOfVendor(uint256,uint256)","413499f1":"deleteVoters()","4134a92a":"registerResource(bytes32,uint256,bytes32,string)","41354590":"setAtomIsBuy(uint256,uint128)","413699de":"setOwnerName(address,string)","4136aa35":"isAlive()","41388aed":"TokenHash(string,string,uint8,uint256)","41388c71":"DolyToken()","41395efa":"dgxBalance()","41398b15":"ethAddress()","413992b3":"createWarranty(string,string,address,uint256,uint256,uint256)","413a7f9a":"MethNSupply()","413ab4a8":"_reserve()","413abc3d":"min_share_price()","413bac7a":"jackpotinfo()","413bba97":"withdraw(uint256,bytes,address[])","413bc8eb":"TableDeRapprochement_322()","413c6d13":"setAddressValue(string,address)","413d18cb":"currentMessage(uint256)","413d7b08":"mainSaleTLYperETH()","413d9c3a":"LOCK_TIME()","413dc451":"countPerfClients(address)","413e31a8":"Testita()","413e4aaf":"calculateOwnerFee(uint256)","413e90e7":"putHashes(uint256)","413e920d":"oneMillion()","413ed292":"logState(string,uint8)","413f50da":"addAddressToWhitelist(uint256,address)","413f7d4c":"SECONDS_BETWEEN_ROUNDS()","414053be":"best_adjustment_for(bool,uint128)","41409437":"publishMetaData(bytes32,bytes1)","4141a121":"ETHERlemon()","4142f460":"segundos()","4143125f":"dusttorafflepot()","41431908":"setManagerAddress(address)","41434351":"oneday()","41445fd2":"c4c()","41446e0a":"bankersAcceptanceOfDeal()","4145aa9d":"grantMythexTokens(address,uint256)","41461bad":"gracePeriodStartBlock()","414689ff":"unlockAmount()","4146e099":"getCurRoundInfo()","4147060a":"LogRequirementChange(uint256)","41470877":"returnVesting()","4147e15e":"verifyOptionPoolMembers(address)","4147ffe5":"bitfwdToken()","41481372":"Fight(uint256,uint256,bool,bool)","4149953d":"transferRestore(address,address,uint256)","414b49a2":"setFreeLOT(address)","414b7ad6":"updateAff(uint256,uint256,uint256,uint256)","414b85e4":"isPreIco(uint256)","414bbda2":"declineCoins(address,uint256)","414c2aab":"MemberHandler(string,address)","414c377b":"updateSaleLimit(uint256)","414c4a8d":"maxAmountToSell()","414ceac0":"investorAddFee(uint256)","414d784e":"DECIMAL_ZEROS()","414db054":"Loss(address,uint8,uint256,bytes32,bytes32,uint256,uint256)","414db89e":"tokenForSale(uint256)","414e2e9e":"walkTowardsBlock(uint256)","414ee145":"lastBlock_f18Hash_uint256()","415016f4":"getBalance(uint16)","4150f4cd":"setSysAcc(address)","415194fb":"referral_ledger(address)","41522e41":"setHighWater(uint256)","41524433":"sellKissBTCWithCallback(uint256,address,uint256)","4153090e":"startFavorEscrow(uint256,uint256,uint256)","41533ba7":"getRateByTime()","4153d65b":"securePay(uint256)","4153d751":"onTransferOwnership(address,address)","41541318":"createPromoNinja(uint256,address)","4154aede":"refund(address,uint256,address)","415510df":"addressPreSale()","41554a2e":"issua(uint256)","41555acd":"storeOwner(address)","41562e69":"insertNodeBatch(bytes32,bytes32[2][5])","41566585":"whitelistAddress(address)","4156fdb7":"createSwap(uint256)","41583c4b":"_updateCardClaimerAddress(uint256,address)","4158506a":"participantsLength()","41585a0c":"increaseCount(bytes32)","41587b08":"addWeapon(uint8[176],uint8,uint8)","4158d848":"fundChecking()","41595f04":"ALLOC_RESERVED()","4159712a":"LogOwnerEthWithdrawn(address,uint256,string)","415a0d46":"_preValidateTokenTransfer(address,uint256)","415bc701":"HCPTToken()","415bd3fa":"_report(bool,string)","415c7593":"autoRentByAtom(uint256,uint256)","415dd7d8":"newRandomValue(bytes,address,uint256)","415eea1b":"vaultNum()","415ef37c":"weiSold()","415efb15":"setup(string,string,string,uint256,string,string,uint256)","415f1240":"liquidate(uint256)","415f47ea":"decodeOrderUserId(uint256)","415f9498":"commission2()","415fad10":"test_threeInvalidEqInt()","415ffba7":"close(uint256,bytes)","416108e2":"ERRLCoin()","4162169f":"dao()","416232af":"CampaignContract(address,address,address,address,uint256,string)","4163afb6":"MANHATTANPROXY8THAVE()","4163b5a4":"weiUsdRate()","4163d75d":"delPokemonFromSellingList(address,uint256)","4165295a":"getMixParticipantIdByAddress(bytes32,uint256,address,address)","416608a9":"updateTemplate(uint256,uint256,uint256,string,string)","4166c1fd":"getElevation(uint8,uint8)","4166eab4":"zeastadscredits()","41676f15":"isOrganizer(address)","4167c2fd":"setVaults(address,address,address,address,address)","416851a0":"testOracleQuery(string,string)","4168614a":"volumeBonus(uint256)","4168de57":"teamIssueVesting(address,uint256)","41696fa8":"updateMyEntity(uint256,bytes32,bytes32,bool,address,uint256,uint256)","416a1b62":"Liquet()","416ae768":"getUserState(address)","416bc7f6":"createSplitter(address[],string)","416c0d38":"adminRetrieveContractConfig()","416c3f16":"eligibleAmount(address,uint256)","416c6383":"testConcatMemory31Bytes()","416c8701":"beyond()","416c9627":"updatePresaleBonus(uint256)","416ccd02":"limitVIP()","416cf34e":"ULCToken(address,uint256)","416da702":"TOKEN_USDCENT_PRICE()","416dc762":"endThirdPeriodTimestamp()","416dffb0":"cleanupURLs()","416e517e":"setOutcome(uint256)","416e6d5e":"balanceManager()","416e70f6":"linkToMasterWallet(address,address)","416f222a":"submitBid(uint256,uint256,uint256)","416f5483":"changeEthAddress(address)","41709748":"getTotalDrone()","4170a419":"setCCH_edit_34(string)","4170e191":"MiniMeBaseCrowdsale(address)","4170ee08":"reVote(uint256)","41713a37":"directTradeAllowed()","41718066":"hitFoundationPrecent()","417297a0":"issueTokensSale(address[])","4172d080":"tokenExchangeRate()","41733f7a":"fooToken()","4173b181":"setWeiPrice(uint256)","4173c27a":"REEFToken()","4173ffbc":"getRand(uint256,uint256)","41744dd4":"feeRatio()","4174a943":"Deposited(address,address,address,uint256)","4174f1a5":"TOKEN_RATE()","4175b307":"addAddresses(address[],string)","41760afc":"_setEventsHistory(address)","41763225":"createRewardCollectible(uint8,uint8,uint256,address,uint256,uint256,uint256)","4176368f":"paymentSizeE()","4176ce68":"IsAuthority(address)","41771b62":"changeFees(uint8)","4177340d":"openGamePlayNo(uint256)","4177afa6":"TIER_2_BUYIN()","4178617f":"addAllowedToken(address)","41796bea":"OfferCreated(uint256,bytes,address)","41799883":"decreaseSoldSaleSupply(uint256)","417a2909":"getUpdateTimes()","417a767e":"getBetsBlock()","417a7d60":"checkMessageData(address)","417b3409":"DownloadMusic(uint256,address,uint256)","417b86fb":"getPolicyDetailsByHash(bytes32)","417ba840":"checkMemberLevel(address)","417c73a7":"addToBlackList(address)","417c8d40":"SEK_Omnidollar()","417cb353":"totalDecimals()","417d5fb4":"advisersPeriodsNumber()","417de5b5":"mintAirdropToken(uint256)","417e8e67":"getCompoundedInterest(uint256,uint256,uint256)","417ea2dc":"platformSupplyRemaining()","417f204e":"GATC(uint256,string,string)","417fd6b6":"setMinBidAmount(uint256)","41808d4a":"test_remove_tail()","4180b70d":"KKday()","4180c2d5":"payout(address[])","4180f6ec":"RESERVED_TOKENS_FOUNDERS_TEAM()","4181641b":"engrave(string,bytes32)","41829445":"createNewCE(bytes32)","4182e5eb":"deleteContract(uint256,address,uint8[],bytes32[],bytes32[])","4182fa46":"getHouseAddressShare()","41831218":"maxPerPersion()","41832bed":"generateOrderHashes(address[4],uint256[8])","4183689f":"initSignetures()","4183f0b3":"startCardSale()","41843aa5":"subusermoney(address,uint256)","4184907e":"ESPlatts()","41852eb2":"BuyToken()","418599cb":"SerenityTeamAllocator()","4185f8eb":"receiveEth()","4185fdc5":"decreaseFrozen(address,uint256)","41863a7d":"victorieumICO1Token()","41867384":"new_bonus_for_next_period()","41868769":"CallAborted(address,bytes)","4187a193":"stageThreeStart()","41883b78":"withdrawHouseEarnings()","4188d79c":"releaseExists(string,uint32,uint32,uint32,string,string)","418939c0":"fillBid()","4189a68e":"sell(uint256,address)","418ae602":"verificationAddressHoldersListCountMap(address)","418bc2ee":"updateHatchingRange(uint16,uint16)","418bc76c":"gasForKWH()","418c7de1":"currentFulfillment(string)","418ca0c7":"subOnStage(address,uint256,uint256)","418cb077":"CustomToken()","418cf199":"setEstimateCost(uint256,uint256)","418d4dcc":"collectPayoutForAddress(address,address)","418d75b6":"getBuyerOption()","418f1487":"confirmDividendsFromPot()","418f3a9b":"Invest(address,uint32,uint32,uint256)","4190af2e":"walletTokenReservation()","4190cfc1":"getAllQuestionAddresses()","4190f365":"PUBLIC_MAX_CONTRIBUTION()","41910104":"returnSuspendedPayments(address)","41910112":"DecentBetToken(address,address,address,uint256,uint256,uint256)","41910f90":"BASE_RATE()","41923c0c":"PRICE_ICO1()","419259ef":"reissueCert(bytes32,bytes,bytes32,uint256,bytes32,bytes,uint256)","4192610e":"callThisToStop()","419308f7":"getPreviousNode(bytes32)","4193b8b7":"bytesToUint(int256,bytes)","4193e15f":"OrbusToken()","419469fe":"calculateCellSell(uint256)","41953e90":"CoinTel()","4196cd4a":"stateIndexToApproved(uint256)","4196fad9":"mop()","419759f5":"depositAmount()","41976e09":"getPrice(address)","4198d24a":"mintAllocations()","4198e94d":"setbounty(uint256)","419945f8":"ExpiringMarket(uint256)","4199dbe6":"avvia_votazioni()","419a3de6":"allotItem(uint256,uint256)","419a88b6":"XPA()","419ab31e":"USERS_address()","419bd6c0":"Nairotex()","419ce264":"ercToNativeBridgesAllowed()","419db07b":"generousFee()","419e6e5c":"getTotalNamesCount()","419e7589":"setProviderDetails(uint256,string,string,uint256,string,uint8,address)","419eafdc":"winPercent(uint256)","419ef898":"IBRToken()","419f6a3a":"isAirdropOver()","419ffa03":"fipsRegister(address)","41a0894d":"getReferrals(address)","41a08aaf":"judge(uint256,bool)","41a0be7b":"renameHorsey(uint256,string)","41a1053f":"strRemoveLastCharacter(string)","41a1a582":"getOwnerPayout(uint256)","41a1d66c":"sendTokensToExchange(uint256)","41a2625f":"endPreico()","41a28df6":"setAdminAddr(address)","41a292be":"calcPriceAt(uint256)","41a41523":"TIMEDEX()","41a42ba2":"updateNetworkConnection(string,string,address)","41a461fb":"SDAToken()","41a49409":"setWhitelistManager(address)","41a494c5":"award()","41a4c309":"_burnApproveClear(address,address)","41a4c5bf":"changeBonus(uint256,uint256,uint256,uint256,uint256)","41a51d00":"total0xbtcBalance()","41a5518f":"getMineInfoInDay(address,uint256,uint256)","41a59cef":"SDGT(uint256,string,uint8,string)","41a5b33d":"withdrawFromToken(address,address,uint256)","41a6cfda":"ROSCcoin(uint256,string,string)","41a6f46e":"FIESTA()","41a70b4c":"addArgumentToRequestString(uint256,bytes32,bytes32)","41a76287":"updateUintSetting(uint256,uint256,address,string,string)","41a7726a":"subscribe(address)","41a806ca":"addFamily(address)","41a82cc1":"ruleB(uint256)","41a84a0d":"getTokensForContribution(address,uint16)","41a928fe":"downTick(uint256,uint256)","41a943e2":"addAdmin(address,address,bool,bool,bytes32)","41aaccb0":"claim_eth_by_address()","41abe705":"doCount(address)","41ac59b7":"massTransfer(address[])","41ac5dd0":"updateFulfillment(uint256,uint256,string)","41ad3f57":"chickenToAltar(uint256)","41ad5c72":"createGroup(bytes32,uint256)","41ad785e":"payAndDonate(address,address)","41adb3f5":"saveInfo(string)","41ade6b7":"setRegisteredFirm(string,bool)","41aeaea7":"restWei()","41aed7cb":"isActiveEmployer(address,address)","41af1524":"verificationCodeHash()","41affe19":"publicSaleWallets(uint256)","41b0b4cd":"distributedTeamStakes()","41b2485b":"fiatContract()","41b280d2":"getTXwithCode(bytes32)","41b3203c":"PlaySimpleGame(uint8,bool)","41b3a0d9":"contractEnabled()","41b3d185":"minDeposit()","41b44392":"removeDarknode(address)","41b4a626":"cashSale(address,uint256)","41b4be87":"getPoolbyGtype(uint8)","41b5467a":"getUnpaidPerfit(uint32,uint32,uint256)","41b6f6ce":"getStatusDeal(bytes32)","41b6fcf7":"paymentDigest(bytes32,uint256)","41b80184":"lastProfitTransferTimestamp()","41b8547c":"Dev_Supply()","41b94f10":"_toTaxed(uint256)","41b989d0":"CashDeposit(address,uint256)","41b9c14c":"getShipsByOwner()","41b9dc2b":"has(bytes32,bytes32)","41ba4738":"GOLD_AMOUNT_NDC()","41ba9a17":"removeMilestones(uint8)","41bb0559":"symbol(string)","41bb26d3":"handlePayment(address)","41bb50f7":"eachIssuedAmount()","41bc0b6a":"LivepeerVerifier(address,address,string)","41bc2bea":"setProviderOwner(uint256,address)","41bc7b1f":"getOracleDetails()","41bcd712":"RTPToken()","41bd84aa":"_removeAffiliate(uint256)","41be0a14":"SPOT9()","41be44d5":"XAUDToken()","41be84cf":"getWingsValue(uint256)","41becaef":"tokenIssueIndex()","41beef9d":"getSpareRecommAddr()","41c06b2a":"_reached(uint256)","41c0aa0e":"lockUnsoldTokens(address)","41c0dc59":"PAYOUT_FRAC_TOP()","41c0e1b5":"kill()","41c12a70":"voteNo()","41c14eb4":"BrokerImp(address,address,uint256,address)","41c173e2":"preICO(address,uint256)","41c1f017":"CONFIG_MAX_EXPOSURE_DIV()","41c1f5b4":"dreamToken()","41c1f60e":"instruct_5()","41c2c8f6":"FutaToken()","41c3e7c7":"report(address,bytes32,uint256[],bool)","41c41025":"updateFunders(address,bytes32,string,uint256)","41c41923":"freeze_contract()","41c46ff7":"PALToken8(uint256,address)","41c5cf5c":"ICOend()","41c61383":"totalClaims()","41c6f609":"registerNewMember(address,uint256)","41c7eb41":"populateTrancheRates()","41c8146c":"changeTimeBonuses(uint256,uint256,uint256,uint256,uint256,uint256)","41c838cb":"getSANitized(string)","41c8b1de":"lendingInterestRatePercentage()","41c8ba1e":"MIN_CONTRIBUTION_CHF()","41c9692b":"phase1Duration()","41c96964":"getInvestorInfo(uint256)","41c9c72d":"updateDelegatorRewards(address[],uint256[])","41ca641e":"getShareholders()","41ca7242":"maxCapPre()","41caea7d":"EventWithdraw(address,uint256)","41cbd6ea":"getTrustedPartner(address)","41cbfc7b":"getKeysByType(uint256)","41cc0aa5":"RET_MUL()","41cc8912":"renameToken(string,string)","41ccf987":"ownedPool()","41cd47bf":"FEE_NUMERATOR()","41cdd253":"TestFMA(uint256,string,string)","41ce7f23":"BACToken(uint256,string,uint8,string)","41ce909f":"Bitroneum()","41ce979d":"VanityReleased(string)","41ce9f0e":"setBZRxTokenContractAddress(address)","41cfbb96":"test_someOtherFalseTest()","41d003cb":"setBonusCreationRate(uint256)","41d00774":"CoefRew()","41d00b1d":"EBIToken()","41d03085":"NEWONE()","41d09fbe":"sendWinnings()","41d0fcb6":"setSanctuaryAddress(address,address)","41d15b54":"createProductionUnitTokenContract(uint8,uint8,uint8,uint256,uint256,uint256,uint256)","41d1a4d6":"getStrategyAtIndex(uint256)","41d1da19":"Cloudeb()","41d20767":"ethMinContribution()","41d2c748":"applyCoeff(uint256,address)","41d31feb":"get_read_only_keys()","41d45f4a":"UNEK()","41d4a1ab":"bonusToken()","41d4a39e":"setCrowdsaleClosed(bool,bool)","41d5da6b":"getMyStatus(bytes32,bytes32)","41d5e10c":"BittwattToken(uint256)","41d5f7ac":"eligibleAmountCheck(address,uint256)","41d76a9c":"firstTime()","41d80050":"FundsGot(address,uint256)","41d875dc":"setStr(uint256,string)","41d8bc5f":"setExchangeRateOracle(address)","41d9cc43":"forgeItems(uint256,uint256)","41da7538":"getJadeProduction(address)","41da7555":"ownerPercentage()","41db1875":"makeBuyOrder(address,uint256)","41db61e1":"toGMT(uint256)","41db7e16":"RGN()","41db8c93":"_startCrowdsale(address,uint256)","41dbb51e":"IsFrozen()","41dbbb61":"SmartexFundsManager()","41dbe546":"HedeCoin()","41dc02cf":"changePatentSale(uint16,uint256)","41dcf454":"tokenURI(uint256,string)","41de2164":"getPhaseStartTime(uint256)","41de4181":"fireDepositToChildEvent(uint256)","41de4f16":"queenchUSBToken()","41dedc58":"gradeinfo()","41defd82":"cancelJobByAdmin(bytes32,uint256,address,uint256)","41df696e":"start_play_quiz(string,string)","41dfed3a":"viewCurrentPrice()","41e0b5d4":"Fenerbahce()","41e0c407":"getStudentCount()","41e1234e":"presaleFemaleStart()","41e14251":"devuelveUsers()","41e18398":"batchTransferFromManyToMany(address[],address[],uint256[])","41e34be9":"unitSellable(uint256)","41e3a6b5":"updateSplitBalances()","41e50814":"DEVCoin(uint256,uint256)","41e62be6":"VRToken()","41e6fd4b":"hasSecret(uint256)","41e7a787":"ERC223StandardToken(string,string,uint8,address,uint256)","41e7c47e":"FBR2()","41e884d4":"viewLastClaimedDividend(address,address)","41e8b94c":"isThereABlockAtCoordinates(uint16,uint16)","41e8da52":"makeBet(uint256,uint256,address,uint256,uint256)","41e8fe9f":"EventRandomLedgerRevealed(address,uint256,uint256,address)","41e906e5":"getExercised(address)","41ea5127":"BaseAuction()","41ea59a9":"isFoundationSupplyAssigned()","41eb1a4a":"setUintCoinProduction(address,address,uint256,uint256,bool)","41eb24bb":"renouncePauser(address)","41ebb063":"KRHCoin(uint256,string,uint8,string)","41ebe9c6":"ScarcecoinStart()","41ecd1cd":"withdrawOwnerUnrevealed(uint256,address)","41ece976":"updateMinInvestmentForPreIco(uint256)","41ecf95b":"ParticipantJoined(uint8,uint16,uint32,address)","41ed2c12":"marketManager()","41eddf00":"checkIfCurrentlyActive(uint256)","41ee903e":"clear(uint256,uint256)","41eeb105":"doRelease(bytes16,address,address,uint256,uint16,uint128)","41ef3879":"stage1_price()","41ef6bb7":"uncirculatedSupplyCount()","41ef858f":"whitelistAddress(address,address,uint256)","41ef9184":"Pretorian()","41f18b43":"claimEarlyIncomebyAddress(address)","41f1d4dd":"whitelistControl()","41f1e76c":"minFundingGoalReached()","41f1f3e5":"getPayeeIndex(bytes32,address,address)","41f2ce14":"setABalance(address,uint256)","41f31724":"Tzedakah()","41f36984":"collectGamePayout(uint256,uint256)","41f4793a":"getCurrentImpeachmentVotesSupporting()","41f48ebf":"currentIco()","41f4ab98":"addManyToPresaleWhitelist(address[])","41f4fcaf":"isDrop(uint256,address)","41f51941":"doActivateSale(address)","41f59e81":"initBonuses()","41f64b85":"deleteBag(uint256)","41f65507":"pendingOracleA()","41f6e77e":"FindTheCureCoin2()","41f70465":"startCoinOffering(uint256,uint256,uint256,uint256)","41f77260":"withdrawSyndicateTokens()","41f8a524":"Verificator()","41f99b69":"setWithdrawalCoolingPeriod(uint256)","41f99e2f":"getPostDonationAmount(address,uint256)","41fa4876":"multiBlockRandomGen(uint256,uint256)","41fade8f":"getconfig(address)","41fb55c6":"mMaxAppCode()","41fbb050":"foundation()","41fcb0f7":"buyNapkins(address)","41fd32cf":"SafecontractsTREXCrowdfunding()","41fe0a24":"buyCrystalDemand(uint256,uint256,string,string)","41fee898":"refundPercent()","41ff4275":"_calculateUnlockedTokens(uint256,uint256,uint256,uint256,uint8)","41ffbc1f":"ringIndex()","42007fd3":"MarkRazAsComplete(uint256)","4202d214":"isActiveUser(address)","4203ea57":"minInvestmentPreICO()","4204f7d5":"deployMinersTest(uint32,address,uint32[],uint32[],uint32[])","4205875f":"ROUND_6_PRESALE_BONUS()","4205e5af":"pauseClosingTime()","4206311b":"TimeLockSend(address,address,uint256)","420714bd":"requestIndex()","42071a73":"bltRetained()","4207d648":"directorJurisdication()","42091137":"addStringSetting(string,string,address,address,string)","42091e76":"saltoken(address,address)","42095679":"lindyhanCoin()","420977d8":"viewStudent(uint256)","4209fff1":"isUser(address)","420a83e7":"tokenHolder()","420a8ac8":"NanoPyramid()","420a8b76":"Dancer()","420aa07d":"serviceTrasferToDist(bytes32,uint256)","420aadb8":"_execute()","420ae446":"allocatetokensAndWLExp(address,uint256,uint256)","420b5fe0":"initializeVestingFor(address)","420b81f6":"peekData()","420b9921":"ecsubtract(uint256,uint256,uint256,uint256,uint256,uint256)","420c96ea":"newArtwork(bytes32,uint256,string,string,string,uint256)","420d0ba4":"nobodyCanDoThis()","420d23fd":"POOL_EDIT_1()","420d4a02":"getUnlockedAmount(address)","420d4bdd":"CRYPTAU()","420dd15a":"getLast(string)","420ddaa6":"encodeKYCFlag(bool)","420e1f51":"tokenExchanges()","420e7ea6":"tokenAmountRasied()","420ef2b3":"TargetHash()","4210ad0e":"newBurnableOpenPayment(address,uint256)","42111339":"contributeLocal()","42118f51":"manualLCs()","4212616b":"localsUser()","4214352d":"write_what_where_gadget(uint256,uint256)","4214d52f":"updateIndex(address,address)","421521b1":"finalizeOpenSale()","42154e9c":"countAddress()","42159ca3":"getMaxDelayDays()","4215a39b":"getCreateMarketNumOutcomesValue()","4215da7d":"investorsStorage()","4216503c":"setFunStr(string)","42170736":"secondPhaseStartTime()","421715c2":"canBorrow()","42173c98":"purchaseCompany(bytes32,bool)","42193473":"DUST_LIMIT()","421a5727":"stealPot()","421ae949":"thawTokenTransfers()","421aeba2":"setEditedFalse(address)","421aeda6":"Set_your_game_number(string)","421b2395":"UltiCoinICO()","421b2d8b":"addUser(address)","421c0d9c":"unregisterDsp(address)","421d72e2":"isPaymentForked(uint256)","421db384":"leftICOTokens()","421e2dc2":"getPartnerAmount(address)","421e52e3":"card_gold_minamount()","421ed7dd":"balancesInitialized()","4220324b":"mainSaleStart()","42207083":"getGameRoundOpen(uint256,uint256)","4221115c":"SfomoToken(uint256,string,string)","42226e02":"setMaxEth(uint256)","42235da6":"minimumTarget()","4223ac0f":"ABCToken()","4223ad89":"NewRefundTransaction(uint256,uint88)","4224f2ca":"HzxhcToken(address,address)","42261ea4":"cancelSale(address[])","422624d2":"destroycontract(address)","422627c3":"getDna(uint256)","42263aa2":"set_token_address(address)","422752bf":"getPartialAmountFloor(uint256,uint256,uint256)","42279e82":"removeFromPreSaleRefunds(address,uint256)","422810ea":"transData(address,uint256,bytes)","42285bc5":"_ensureRef(address)","42287b66":"createPromoPerson(address,string,uint256)","4228974c":"Videos()","4229616d":"collectPercentOfFees(uint256)","4229c35e":"setItemPrice(uint256,uint256)","422b00bb":"dataentryclerk()","422b1c70":"setMinweiAmount(uint256)","422b423e":"getCheatWarrant()","422b7964":"_approve(uint256,address)","422c29a4":"getWallets(address)","422c3ad9":"changeEndTime(address,uint256,uint256)","422cbb48":"MarkosToken()","422d3374":"tbitfwdToken()","422d37c4":"mintWithEvent(int256,address,uint256)","422d4cd6":"increasePayout(uint256,uint256,uint256)","422dabac":"allocateEther(uint256,address)","422e33f3":"migrationNewAddress(address)","422e82a7":"EthToCoins1()","422f1043":"addLiquidity(uint256,uint256,uint256)","422f3a2c":"nestedFirstAnyToSome(uint256,uint256)","422fcbd5":"MCST()","4230bb10":"badgeLedger()","42317bbc":"flipRefundSwitchTo(bool)","42318e3d":"percent(uint256,uint256)","4231a2c3":"getLastRound()","4231e2d7":"transferFreezership(address)","4231ee16":"addInBountyProgramMap(address)","42320732":"allSupply()","423252f9":"buscarDocumentoPorTitulo(bytes32)","4232a399":"XC()","42340458":"disable(uint8)","42346c5e":"parseInt(string)","423592ce":"startTde()","4235e336":"BetDirectory()","4235e98e":"Buy(uint8,string,string)","42367389":"test_twoValidEqInt2()","4236b312":"dealContract(uint256,string,uint256,uint256,string)","4236da98":"INTREPID_PRICE_INCREMENT()","42382353":"restartTheQueue()","4238b84c":"DMBToken()","423948fd":"changeCollateralAmount(uint256)","42399220":"setCampaignOwnerById(bytes32,address)","423a7954":"developerfee()","423a968d":"_setRSPScienceAddress(address)","423b1ca3":"battleContract()","423c3a48":"burnTokens(address,address,uint256)","423c485a":"depositFee(uint256)","423d4ef2":"createChannel()","423da88e":"Unix_Timestamp_Binary_Trading(uint256)","423dcf29":"dustToEtherPrice()","423e1298":"setDoNotAutoRefundTo(bool)","423e7e79":"_dispatchEarnings()","423f0b6e":"replaceModule(address)","423f6cef":"safeTransfer(address,uint256)","423fb140":"CrowdsaleToken(string,string,uint256,uint256)","423fcd5e":"_promo()","42402c2c":"fipsTransferMulti(bytes20[],address)","4240a978":"ICO_TILL()","42419336":"ICO_BONUS_RATE()","42427bf8":"upgradeController(address,address)","4243cb36":"payConversionFromTransaction(uint256,address,uint256)","4244e09f":"getBetterBettingInfo(address)","4245508a":"getRoundMaxNumberOfBets(uint256)","424592ca":"calculateDistributedIntervalEarning(uint256,uint256)","424599c4":"seedSaleTokenLeft(address)","4245b0f7":"Lottery()","4245d48e":"getHashes()","4245f3da":"tokenOfOwnerByIndex(uint256)","42465a1e":"getTokenUnits(address)","42469e97":"_setBonusRate(uint256)","4246ad24":"calculateMinedCoinsForTX(uint256,uint256)","4247f52d":"DoRoll()","4248083b":"approveUser(address,uint256)","4248afe8":"addCrowdSaleTokensMulti(address[],uint256[])","424976f9":"registryRead(bytes32,bytes32)","42498389":"transferLimitedFundToAccount(address,uint256)","424a8993":"selectOfferingProposal(uint8)","424a8c0d":"constructorReconToken(address,string,string,uint8,uint256,bool,bool)","424aa0e5":"StockusToken()","424b828f":"CharityReservesWallet()","424bc2e9":"newGame(string,string)","424d6bb1":"changeApi(address,address)","424ddaac":"get_available_interest_amount()","424e418f":"setMinSecondaryAmount(uint256)","424e94da":"VoteHub(address)","424ea3b2":"refund_deposits(string)","424ea872":"startTimestampIco()","424eb9fe":"getInitBalance(address)","424f9947":"privateIcoBonus()","424fa9ec":"Prismacoin()","424fed48":"EBPtandardToken(uint256,string,uint8,string)","424fffda":"updateContact(string)","4251447a":"WhiteListSet(address,uint256)","42516f1d":"startAirdropBy0Eth()","425189e0":"getFashion(uint256)","4251a7a4":"totalNihilum()","4251ecb4":"nMsg()","42526e4e":"bytesToAddress(bytes)","425432b1":"tokensPerAddress(address)","42545825":"hasVoted(address,uint256)","4254704f":"TOKEN_CLAIM_WAIT_PERIOD()","4254b155":"register(bytes32,string,address,address,address)","425543f1":"CreateDummyPlayer(bytes32,uint8,uint256,address)","4255e808":"jackpotContract()","42565405":"setNeuroChainAddress(string)","42569ff3":"limitedPrinter()","4256dbe3":"setReserve(uint256)","4256fa5a":"timeToBorn()","4256fa9f":"exchangeTokens(address,uint256)","4257347e":"freezeAccountToken(address,uint256,uint256)","42577935":"createPanda(uint256,uint256)","4257d3e0":"currentGameBlockNumber()","42585b34":"getSnap(uint256)","42587795":"deploySimpleContract(string,string,uint256)","4258cb76":"Ultracash()","4258d771":"funding_ended()","425946e3":"setCurrentMember(address)","4259701b":"getSocialAccountPw(bytes32,bytes32)","4259b52e":"configurationCrowdsale(address,uint256,uint256,address,uint256[],uint256,uint256,uint8)","425adae7":"isBonusEnabled()","425d4980":"mintAddress()","425d512a":"setDAOContract(address)","425e0d3c":"BasicToken(uint256,string,uint256,string)","425f7857":"taxTokenCreated()","4260c779":"start_ico()","42616d21":"goldTotalSupply()","42618b91":"buyRoundKey(uint256)","426201ef":"lastBlock_v19()","42623360":"stakeOf(address)","426365ad":"setForceOffsetAmount(uint256,uint256)","42636c09":"existIdAfterVersion(bytes32)","4263ed83":"hasNextSeedHashA()","4264b4e0":"ownerPayout()","4266806b":"cf1Wallet2Pct()","4266873f":"setAicPrice(uint256)","426695c6":"getDeedId(bytes32,uint256)","4267e19c":"getOwnedTokensIndex(uint256)","42686bbe":"GetPartLimit(uint8,uint256)","4268a257":"updateRoundInformation()","4268db7d":"cite(string,string)","4269d8ef":"_safeSend(address,uint256)","426a0af3":"updateManyLandData(uint256,uint256[],string)","426a8493":"approve(address,uint256,uint256)","426aa87f":"deleteRecording(uint256)","426ad3f5":"getChainName(uint32)","426b7113":"tokensSoldPre()","426bc60c":"Educoin(uint256,string,uint8,string)","426d4f22":"expandNegative128BitCast(uint256)","426d5ef1":"oraclizeCallbacks(bytes32)","426d70fa":"isPrivateIcoActive()","426e0b20":"daoStakeClaimed()","426e5ae6":"senderTokenBalance()","426e6f8e":"updateValueAndMint(uint256,uint256)","426eae45":"bondingManager()","426eb017":"uri(address)","426f5531":"maxAllProfit()","426fa499":"isIcoStarted()","426fe411":"contributorDeposit()","4270d48a":"nextmarketoffer()","42714978":"removeInvestor(address)","427163dc":"refundBid(bytes32)","4272f2d5":"heroTokenContract()","4273601c":"factoryOwner()","4273bc59":"bids_sorted_refunded()","42740286":"maxMintPoS()","42750020":"tokensCreated()","42753e7e":"isInSale()","4276016f":"oversightAddress()","427654da":"getDailyLimitUsed()","42767018":"smallRate()","4276d082":"FrozenEther()","42772947":"callEndRoundControl()","4277b5b1":"check(address,address,address,uint256)","4277e497":"PaymentRejected(address,bytes8,uint256)","4277e823":"TravelHelperToken(address,address,address,address,address,address)","42787798":"grantedContracts(address)","4278ff31":"setTangibleAssetAddress(address)","427913f2":"getClaimedFinancialData()","4279523e":"serviceChangeOwner(address)","427982f2":"tokenSaleMax()","427a2fc2":"getClaim(uint256,uint256)","427ac5e4":"checkForUpdates()","427b59d3":"HiPrecious()","427b72fc":"proofFailed(address,uint256)","427c854d":"_createSkull(uint256,uint256,uint256,address)","427c9aca":"LogPayoutFailed(address,uint256,uint256)","427d5f2e":"tierAmountCaps(uint256)","427da275":"redeemUTXO(uint256,bytes32[],bytes,bool,uint8,bytes32,bytes32)","427e024a":"AdministratorRemoved(address,address)","427e332f":"lastBlock_a8()","427eebfc":"returnOwnershipOfToken()","427f0b00":"roundInfo(uint256)","427f56ff":"bonusAllocAddress()","427f9614":"getReference(bytes32)","427fa1d2":"getLastNode(address)","427fc2df":"preIcoPeriod()","4280606b":"addCondition(bytes32,bytes32,address,int256,bytes32,address,int256,bytes32)","4281267b":"buyLCARS()","4281a651":"SponsoredItemGooRaffle()","4281b13f":"getAllbetByNum(uint8,int8)","4281b34b":"play(uint256,uint256[])","42836c2e":"hasAddress(address,address)","4283fbe5":"dummyGasBurner()","42842e0e":"safeTransferFrom(address,address,uint256)","42846c09":"Bonus(address)","42849570":"myReward()","4285d477":"teamTokensFreeze(address)","428657f7":"storeNewVesting(address,string,uint256)","4286ed3e":"callBtoWithStc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","4287eef9":"fechStageBlockByIndex(uint256)","4287f14a":"teamReserve()","428840f6":"fadd()","4288d759":"betOf(address)","4289c781":"setSellPrice(uint256,string)","428a2ece":"createTokenVault(uint256)","428a8120":"tier0Total()","428afcd1":"setUpgraded(uint256)","428be33f":"ReleaseFundsAndTokens()","428c91ae":"genAddressFromGTIN13date(string,string)","428d475a":"beConstant()","428d5630":"mintOnDemand(address,uint256)","428d64bd":"getShares(address,bytes32[])","428e2d64":"getMsg(address)","428e357b":"getUInt8(bytes32,bytes32)","428e5aaa":"addToPrize()","428eb006":"batchAirdropWithLock(address[],uint256,bool)","428eb5cf":"getRandomNumber(int256,int256)","428f180c":"minimumSpend()","428f4146":"SimplePHXExchange()","42906029":"newManager()","42909a9e":"create_game()","4290a5b9":"uninject(address)","4290bd4d":"isTokenOfferedToken(address)","4290db52":"burnFromAnotherAccount(address,uint256)","4290e6b6":"setTokenName(address,uint256,string)","42915914":"test_dispersal()","4292327c":"_isMyLeague(uint8)","42923409":"ArinToken()","4292a797":"ZAZA()","4293253c":"tokenSaleLowerLimit()","429374f3":"ScorpioCoin(address)","42946d88":"getIGOAccoountByAddr(address)","4294857f":"isRevoked(bytes32)","42948e18":"getSenderAddress()","4294bea0":"BarcelonavsRoma()","4294cdb2":"BixcPro(uint256,string,uint8,string)","42958b54":"issue(address[],uint256)","42966c68":"burn(uint256)","4296a9cb":"getNodeRightChild(bytes)","4296b4a7":"freezePlayer(address)","42974b1e":"freeReferralPacksClaimed()","42980e20":"LifeToken()","429838e0":"Allow_Entries()","42992dd5":"icoStartTimestampStage2()","4299431e":"REALMock(address)","42995e12":"canReceiveMintWhitelist()","4299c213":"lastReading(address)","4299f706":"PonziScheme(uint256)","429a2591":"convertAmountToTokens(uint256)","429aa0a4":"DAILYC()","429adcb9":"minSumICOStage7USD()","429b62e5":"admins(address)","429b92bf":"getProposalName(uint256)","429c1561":"setReputationProblems(address,string)","429c6e5b":"getClaimedAmount(uint256)","429cddca":"selectOwnerAddressForTransactionFee(address)","429d15ba":"testCorrectFunctionIsCalledOnTransfer()","429d6a69":"walletBeneficiary()","429f3b48":"blockAccount(uint256)","42a04fea":"getBadges()","42a1928b":"initSale(uint256,uint256,uint256)","42a19c71":"giveProjectTokens(address,uint256)","42a1f3eb":"ProvToken()","42a37176":"showMyEtherBalance()","42a38a00":"mediatorWallet()","42a4af66":"updateCatReleasePrice(uint32,uint256)","42a5000d":"startPRESALE()","42a63361":"updateTribeProducts(address)","42a657fd":"primaryListing()","42a6617d":"stepTwoRate()","42a66f68":"totalRate()","42a6739b":"acceptRandom(bytes32,bytes)","42a6b21a":"getContributionLimit(address)","42a6c4dd":"getBidByToken(address,uint256,uint256)","42a745cb":"testBitEqualSuccess()","42a787fa":"determinePlayer(int128,uint128,uint8,bytes32,bytes32)","42a7a8e0":"SmartzToken()","42a7c40e":"ThiccCoin()","42a7cfd5":"naturalUnit()","42a8f2f4":"internalTransfer()","42abfde8":"getLunckyIndex(uint256)","42ad2c6f":"maxPreIcoDuration()","42ae07c0":"RateRemove(address)","42ae0a16":"crowdsaleBalance()","42aeba30":"Shipment(address,address,string,string,int256,int256,uint256,uint256)","42af2478":"PartialFundsTransfer(uint256)","42af4821":"TUDOR()","42af8f0c":"buy(uint256,uint256,address,address,address)","42b07d6d":"cashBackFromProject(address)","42b1295a":"addMultipleAllowedAddresses(address[])","42b2106c":"FoundationTransferred(address,address)","42b222bd":"showTokenValue(address)","42b31b1f":"Elythrium()","42b38674":"isValidValidatorSignature(address,bytes32,address,bytes)","42b41aa4":"sendCoin(address,address,address,uint256)","42b4632e":"canPropose(address)","42b4807a":"getRegionCoordinates(uint256)","42b4ef95":"Helper()","42b50a7a":"getOrderById(uint256)","42b594cb":"buyTicketByEth(uint256,bytes32,bytes32,bytes32)","42b5a2a9":"maxTxGasPrice()","42b614a9":"round_after()","42b64a59":"VisionX()","42b8c415":"balanceTotal()","42bb5709":"FundsTransfer()","42bb66c4":"setInvest(uint256,uint256)","42bd0959":"setIsBuyByAtom(uint256,uint128)","42be5eea":"thing(string,string,uint8,string)","42be9307":"changeSale(bool)","42beb58b":"setPreSaleOff()","42bf1270":"cslToken()","42bf41ae":"drainStrayEther(uint256)","42bf4431":"orderMatchTest(uint256,uint256,uint256,int256,uint256,uint256,address,address,int256)","42bf5347":"getUserFreezeInfo(address,uint256)","42bf8db3":"getRate(string,uint64)","42bff0d0":"setExchangeAdapterManager(address)","42c01f66":"setRateEarlyStage3(uint256)","42c1867b":"mintAgents(address)","42c1ea29":"evidenceInterval()","42c23db5":"AddToDividends(uint256)","42c2d31a":"EtheremonToken(address,address,address,address)","42c304be":"accountsListLength()","42c3301a":"showJackpotThisRd()","42c469e0":"GameSpiritCoin()","42c501a1":"LogOwnerTransfer(address,uint256)","42c50f75":"TeamMembersAmount()","42c549c0":"getMilestones(uint256)","42c5d7ad":"sendAdvisorsBalance(address,uint256)","42c62865":"withdrawsCount()","42c6498a":"genesisTime()","42c65ae5":"eUSD()","42c69566":"get_address(address,string)","42c71f1d":"getApp(bytes32)","42c74c73":"EPVToken()","42c7551e":"tokenRemain()","42c7ea5f":"totalNumberAvailable()","42c80fc9":"isUpgraded()","42c81f45":"MLB_Legal()","42c8705b":"Mine()","42c87205":"VirgoContract()","42c96767":"EtherHiLo()","42ca08cf":"applyFadeoutToOptions(uint32,uint32,uint32,uint256,uint256)","42ca2fe3":"FCOIN1110Token(uint256,string,string,uint256)","42cb1fbc":"ETHER()","42cbb15c":"getBlockNumber()","42cc6b04":"addAuthorizedEditAgent(address)","42cde4e8":"threshold()","42cdfe37":"tokenWithdrawEther(address)","42ce0555":"DisableSuicide()","42ce0aff":"registerAndValidateToken(address,string,string,uint256,uint256)","42ce0f30":"testThrowUpdateLatestRevisionNotOwner()","42ce1488":"upload(string)","42cf0a4b":"increaseEthBalance(address,uint256)","42cf0e72":"searchByOwner(address)","42cf2f81":"getSequence(bytes)","42cfd792":"postJob(uint256,uint256,uint256,bytes32)","42cffda9":"TREETOKEN()","42d01878":"keyRequired()","42d02b30":"HARD_CAP_IN_TOKENS()","42d16748":"getMinDailyWithdrawalLimit()","42d1b202":"_adoptSameClassAxies(address,uint8,uint256,address)","42d1f17f":"bankrollerTable()","42d2c127":"getStagesBeginEnd()","42d46a9a":"castVote(uint256,uint256,bytes32,string,bytes32)","42d544fb":"disallowSale()","42d596e0":"isPoint(int256,uint256,uint256)","42d64601":"pacifistmasterReq()","42d7cc8e":"Tx(address,uint256,string)","42d8f5be":"customPayment(address,uint256)","42d928fc":"SWIFTSCO(address)","42d9643c":"KYCLimitValue()","42da3b6b":"getAmount(uint256,address)","42daf6ee":"icoStartP6()","42dbad44":"makerOf(string)","42dbcdba":"weiRaised(address)","42dca9ea":"getManifestIdsByRegistrant(address)","42dd519c":"getClients(uint256)","42dd96f7":"killswitch()","42df7085":"ROLE_EXCHANGER()","42dfb036":"calcRateFromQty(uint256,uint256,uint256,uint256)","42e06ee7":"HotCold()","42e11316":"claimReadership(uint256,string)","42e1452a":"PolarisUniversalToken()","42e15c74":"managedTokenLedger()","42e16015":"AddedBlackList(address)","42e296d3":"soundEffects(uint256,uint256)","42e2d18c":"presaleIsRunning()","42e2da09":"QuantorPreSale(uint256,uint256,address,address,address,uint256,uint256,uint256)","42e2f54c":"shutDownFund(address)","42e35f63":"addGoal(string)","42e3b919":"NMFToken()","42e49d5a":"FUNDING_GOAL()","42e4d72b":"oxen()","42e5033e":"mainSaleEndDate()","42e59afa":"reloadRound(address,uint256)","42e5b9f1":"totalDistributedDividends()","42e5d5c8":"getPI_edit_17()","42e5da0d":"UpdatePlatformContract(string,address)","42e6377f":"LabtorumToken()","42e6c88a":"approveObjectReception(uint256)","42e7ba7b":"hasManagerAccess(address)","42e8051c":"testExternal()","42e81b0c":"dislikeCelebrity(uint256,uint256)","42e86d27":"callData(address,bytes)","42e90c33":"Store()","42e9555e":"getProviderLastSupplyID(uint256)","42e956f6":"addtoMarketingBusinessDev(address,address,uint256,uint256)","42e9c6ce":"pullTokens(address)","42ea74c0":"getTokenPriceInWEI()","42eabc29":"posibleRedemptionOf(address)","42ead91f":"getMegabox(uint256)","42eafaf5":"showFPInfoAll()","42ec38e2":"tokenOf(address)","42ed00da":"getSenderArmyDetails()","42ed567c":"tmpQuerySeed(uint256,uint256)","42ed5816":"ethDailyLimit()","42ed6072":"publicBattlepm2()","42ee4e0b":"ICO_PRICE5()","42ef4c1a":"hodlerTime6M()","42ef8c76":"alsToken()","42efdebf":"exchangeAdmin()","42f030e4":"minusTourFreezingTime(uint256)","42f0b07e":"BountyFund()","42f0ca0d":"setPreSaleEndDate(uint256)","42f1181e":"addAuthorizedAddress(address)","42f362aa":"registerNameCore(uint256,address,uint256,bytes32,bool,bool)","42f39381":"presaleRate()","42f39a6f":"ARXPackageSale()","42f3f7e0":"activate_reserve()","42f45790":"testAddress(address)","42f57e4c":"enableUser(address,bool)","42f5d95d":"AllUnLock()","42f6208e":"lock(address[])","42f6487a":"payment()","42f6e389":"isModule(address)","42f81580":"CLAIM_DEADLINE()","42f85ce5":"pay(address,uint256,uint256[])","42f88548":"updateRegionPixelPrice(address[16],uint256,uint256)","42f88699":"ExShellToken()","42f9192a":"nameFilter(string)","42f91e9e":"BcxssToken()","42f989e2":"setUnlockTimeStamp(uint256)","42f98b14":"buyIssuerTokens()","42f9b306":"teamLockTransfer(address,uint256)","42fa3967":"toSlice(bytes,uint32)","42fa98e0":"Orange()","42fba0f5":"grantedTokensHardCap()","42fbbc9c":"managerPercentage(bytes32)","42fc63be":"DebugHash(bytes)","42fd6acc":"checkProof(bytes32[],bytes32)","42fd7d4c":"_buy(address)","42fdbed7":"isDeDeContract(address)","42fea02b":"confirmPayer(uint256,uint256)","42feba84":"arbiterResponseRate(address)","42ff1c1a":"getMetadataURL()","42ffb76b":"getWorkflowName()","4300705d":"withdrawGTO()","4300e8ef":"addContract(address,string)","4301b55b":"MintOpened()","4301cbe5":"getAllNames(string)","43021054":"BTestToken(address,string,string,uint256,uint256)","43021202":"fundValuePublish(uint256,uint256,uint256)","4302b3c8":"myTotalSupply()","43031e9b":"getSumOfPlayers()","4303707e":"generateRandomNumber(uint256)","43039433":"handleReturnData()","43046844":"placeBet(uint8)","4304a43f":"updatedBalance()","4304a6b9":"setUnfreezeStartTime(uint256)","430558c2":"buyGifto()","43062ea7":"changePurchaseCap(uint256)","4306cc3f":"queryEarnings(address)","4307d081":"jazzxToken()","4308a36b":"getIcoPrice()","43090357":"readUserPurchasedToday(address)","4309b4b2":"getPollIdentifier(address,bytes32,bytes32)","430a74b7":"CrypcenToken()","430ab56a":"sendAllLocalEthers(address)","430ae7a2":"AvtcToken()","430bf08a":"vaultAddress()","430c2081":"isApprovedOrOwner(address,uint256)","430c2a69":"crdjetToken()","430c73c5":"setMarketAddress(address,address)","430ca46f":"finishAuction()","430d2803":"getTotalPossibleTokens()","430d6eb2":"ParadiseToken(address)","430de98a":"GetCardNumber(uint8,uint8)","430e484a":"setupNetwork()","430ecff8":"blksze()","430fe5f0":"changeWorkerPrice(uint256)","430fe9c1":"getDate()","4310033d":"Gotoken()","43102eab":"isItConstantinopleYet()","43104d92":"addMultipleRecordsStrict(uint256[])","43107290":"createRequest(address,address[],int256[],address,string)","43114842":"acceptChallenge(uint256,uint256,uint256)","4311de8f":"ownerWithdraw()","43128a4c":"feeUSD()","4312f19c":"setTransferEmittables(address,bool,bool)","4312fece":"addAddressToIndex(address,address)","43133b07":"gameBeginPlayNo()","4313b9e5":"setup(uint256)","4313de82":"closeBidOrder()","4314162d":"untsqm()","431454fb":"totalMintedBountyTokens()","43146f36":"resetBet()","431562b9":"countWithdraws()","43156db6":"withdrawOldToken(address,uint256)","4315f545":"proofType_NONE()","43160e3d":"rootOfTrust()","4316abbb":"newJester(address)","4316fae5":"NABC()","43171485":"tokensHasSoldOut()","4317f04a":"Transfer(address,string,address)","431851ad":"NenoToken()","431993b9":"endPrivate()","4319dfd9":"defence(address,uint256,uint16,bytes,uint256[])","431a4d46":"getContractSample(string)","431ab1f2":"xmasFundWallet()","431ab233":"allOperations(uint256)","431adcb1":"isSellOpen()","431bff74":"MINING_POOL_AMOUNT()","431cc3dd":"batchWithdraw(address[])","431d6256":"Conversion(address,address,address,uint256,uint256,uint256,uint256)","431dac16":"registerUser(address,string,uint256,uint256,uint256,string,bool)","431dbd9e":"getLatestRaffleInfo()","431dc4b6":"current_period()","431dc892":"OwnedProxy(address)","431e0a48":"AnteilToken()","431e83ce":"absMaxFee()","431ef9b5":"OptionsConversionOffered(address,address,uint32,uint32)","431f188c":"set_presale_arbits_per_ether(uint256)","431f21da":"createAuction(uint256,uint256,uint256,uint256)","431f63c9":"setTokenPrice(address,uint256)","4320ea1c":"CrowdsaleBase(uint256,uint256,uint256,address,address[])","43212413":"Addr2()","43212c3c":"getHighestMilesAt(uint256)","43214675":"setMintAgent(address,bool)","43216a11":"MAX_NUM_AVAIL()","43226631":"CURRENTLY_ISSUED()","4322b73b":"getAdd(uint256)","43235a24":"_transferProperty(uint16,address,uint256,uint256,uint8,address)","43243797":"fundsOf(address)","43245816":"tokensToEther_(uint256)","43245953":"CoinToken(uint256,string,uint8,string)","4324aa21":"classOf(uint256)","4324ae4f":"PhoenixExchangeDeposit()","4325f6bb":"OfferToCastle(uint256,uint256)","432607fc":"cancel(address,address,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","4326e22b":"getMerkleTreeRoot(bytes20,uint8)","4326f3f6":"setMinimumPriceCount(uint256)","4327115b":"_AddedToGeneration(address,uint256)","4327979a":"getPaymentParams(uint8)","4327acda":"addDeal(address,address,address,uint256,uint256,uint256,uint256,string,uint256)","4328894f":"showReportForMonth(uint16,uint8)","4329db46":"transferETH(uint256)","432a042b":"makeRegistration(bytes32)","432a3dfb":"roundState(uint256,uint256)","432a805b":"changeDailyRate(bytes32,uint256)","432a84d9":"ownerDepositInterest()","432a89aa":"GetBuildingParam(uint256)","432af6e9":"calculateTokensForMonth(address)","432b3f85":"fetchVoteResultForCandidateBySnapshotBlock(address,uint256)","432ba8be":"voterToBallotID(address)","432c4209":"IQT_DECIMALSFACTOR()","432c685f":"trustClient(address)","432ce549":"sendToUser(address,address,uint256)","432ced04":"reserve(bytes32)","432d7a1e":"_dividendsOutstanding(address)","432e83c5":"resetReferedCount(address)","432e8946":"disableTransfer(address)","432f0d20":"EVA(uint256)","432f3223":"AceFund()","432f3c22":"request_until()","43302ff3":"getMaintainFee()","4330301f":"_ratio()","4331576f":"BITVM()","4331e00f":"pay_claimed(address)","4331e8dd":"setLeader(address)","433288a2":"setCurrency(string,address,address,uint8,bool)","4334614a":"isBurner(address)","4334a8a5":"CHAD()","433503f6":"ChangeEmissionSumm(uint256)","4335b046":"CRAWDSALE_EARLYBIRD_END_DAY()","4335dfc0":"getPurchaseTimestamp()","43361a6e":"MineralBase()","4336a5a8":"EtherGold()","433740f8":"Purchase(address,uint256,uint32)","4337b391":"PriceDiscovery(address,address)","433836dc":"scheduleTransaction(address,bytes,uint8,uint256[3],uint256)","43386ea9":"getUniqueValue(uint256)","433900db":"presaleTokensLimit()","433914c9":"VeChainX()","43398685":"BancorFormula()","4339bc30":"changePool(address)","433a8323":"UnityCoin()","433adb05":"tokensReserved()","433b409f":"BTTSTokenListing(address,address,string,string,uint8,uint256,bool,bool)","433b64b1":"eventId(uint256)","433b77c7":"getCampaignOwnerById(bytes32)","433bb0e4":"fillOrder(address,address,address,bytes32,address,address,uint256)","433bd924":"getBreed(uint32)","433c39ff":"transferVoteController(address)","433cdc26":"PriceAdjusted(uint256,uint256)","433d0f33":"canUserCancelArtwork(address,address)","433d4aab":"resolve(uint8,uint8)","433d7110":"provas(address)","433e852d":"flushDividends(uint256)","433fc1da":"Bandit()","43406182":"enableLotteryGiveHunt()","43409bc5":"linkData(bytes)","4341274f":"_sameClassAxiesPrice(uint8,uint256)","4341aebc":"distributeTokensToRank(uint256[],uint256)","43428e45":"minimumNumberOfBlocksToEndGame()","4342e966":"approve(address,uint8)","4342ffe5":"changeMinimumContributionForPrivatePhase(uint256)","4343ede6":"currentStageNumber()","43441a2c":"totalGivenBountyTokens()","4344f73d":"AssToken()","4345c7c9":"_upgradeTo(string,address)","434622fe":"additionalMint()","43463b98":"getconf()","43463c3a":"UnityToken(uint256)","4346aa58":"ITTM()","4346ea77":"PrimasToken()","43471101":"getSenderFunds(address)","434786f4":"getBalacne()","434847e0":"withDrawFees()","4349168e":"GenesisSalesPriceCount()","434a55eb":"bonusFirstTwoDaysPeriod()","434afdfc":"totalObol()","434b1208":"rescueOrder(uint256)","434b14e7":"randomGen(uint256)","434b349c":"LCEToken()","434b635e":"getMaxBetAmount(uint256)","434c4498":"EthperPoe()","434cb64c":"startNextGeneration()","434d16f5":"rotate_left(uint32,uint32)","434d185c":"getKingdomOwner(string)","434df07e":"NewSerpent(uint256)","434e0618":"addMedicalProviderReply(address,string,string)","434e6a55":"addWebsite(address,string)","434ea7d3":"_lottery5(uint256,address,address)","434ec416":"EXT_COMPANY_STAKE_ONE()","434f5f27":"checked_in(address)","434f811b":"partIndexToApproved(uint256)","434fb2ae":"PRICE_MULTIPLIER_ICO3()","435010d8":"SrcToken()","43503fac":"getWord(uint256)","43509138":"div(int256,int256)","43516832":"getSuppliers()","43525d73":"MAX_FUNDING_SUPPLY()","435263ef":"ecosystemWallet()","4352e407":"RozetkaCoins()","4352fa9f":"setPrices(address[],uint256[])","4353401f":"NetkillerAdvancedTokenAirDrop(uint256,string,string,uint256)","43543242":"isSignatureOkay(address,bytes32,uint256[3])","4355644d":"addMonths(uint256,uint256)","43558826":"exchangequeue(address)","43559743":"edgePigment(uint8)","43562bd0":"NextRewardBonus()","4356f35b":"addIntermediary(address)","43574d9e":"owner2Of(uint256)","4357855e":"fulfill(bytes32,uint256)","43579fe8":"deleteShop()","4357b3de":"getCrowdsaleTier(address,bytes32,uint256)","4357da58":"pausePreSale()","4357e20f":"MinSlippageFactorSet(uint256,uint256,address)","4357e289":"Multiplexer(address,address[])","43581c80":"tdeFundsRaisedInWei()","4358630f":"Certificate(address,address,address,address,address)","4358c156":"isBonus()","43596b8b":"getLLV_edit_25()","435a0803":"testNowClock()","435a1220":"createERC20TokenNetwork(address,address)","435ad5c1":"getMixedStack(bytes32)","435adacc":"EtherrateUpd(uint256,uint256)","435ae547":"ResumeTokenAllOperation()","435afa54":"changeRepoSettings(uint256,uint8,uint8)","435bb6b9":"nextJackpotTime()","435c35b6":"startGeneralSale()","435ce40a":"isAccount(address,address)","435cebda":"createMember(address,address,bool,bool)","435cf753":"winCount(bytes32,address,address)","435dc3fb":"setGenesisAddress(address,address,uint256)","435e119e":"SetupRaffle(uint256)","435e33a5":"TokenRewardsAdded(address,uint256)","435f02f9":"ACIFToken()","435ffe94":"setHello(string)","4360617b":"Sell(bytes32,address,uint256,uint256,address,address)","4360f90f":"getOfferState(bytes)","436108ce":"changePasswd(bytes32,address,uint8,bytes32,bytes32)","4361443f":"getClaim(address,bytes32)","43614f8b":"endFinalStage1()","4361b3f9":"TokensCreated(address,uint256)","43620f24":"startWork(uint256,bytes32,bytes32)","43626c52":"AllInvestorsRefunded(uint256)","4362c088":"affiliateLevel()","4362c116":"transfert(address,uint256)","43634c39":"useSuperPowers()","436393ab":"AlrzshTest()","4363e888":"withdrawERC20Tokens(address,address,address,uint256)","43655fd3":"votesItem(address,uint8)","436577ae":"createIssuance(uint256,uint256,uint256,uint256,string,string,uint8,uint256)","4365e11e":"BingoLight()","43668efa":"ProposalAdd(uint256,address,string)","4366af55":"RTC(uint256,string,string)","43677ca7":"checkInternalBalance()","4367aa3c":"_isReserveUnlocked()","4368600c":"initDeposit()","436962b4":"_setTarget(address)","4369a2c2":"charityAmtToCharity(address)","4369c250":"rewardsFactor()","436a66e7":"length(string)","436a88c1":"DEV_FEE()","436b6158":"card2PowerConverter(uint256[])","436b8fa5":"Salman_nomaniTestCoin()","436d4ff5":"hash(string,address)","436d796c":"startPreIco(uint256)","436d8fd6":"setGameBanker(address)","436da5fe":"transferLog(uint256)","436e1e2e":"computeAirdrop(address)","436e388d":"enterWallet()","436ee4af":"SEEDS_TO_HATCH_1RICE()","436f64ac":"rInFp()","436fdc0e":"getBattleCardsInfo(uint256)","436fedc3":"getRegionUpdatedAt(uint256)","43700afe":"strConcat(string,string,string,string,string,string)","43703b0e":"getEventData(bytes)","437159de":"SYCPrivateEarlyPurchase()","4371c465":"isWeekEnd(uint256)","4371e46e":"blockCount(uint64)","43722993":"NPSTToken(address)","43722b09":"extOwner()","437257bd":"handlePointer(uint256,int256,uint256)","4372df99":"getNotaryForSeller(address)","4373f3b4":"setFunding(uint256,uint256,uint256,uint256,uint256,bool,uint256)","4374356b":"DRUGS_TO_PRODUCE_1KILO()","437583a9":"updateReserveToken()","4376890e":"egcToken()","437764df":"getBridgeMode()","43777117":"getMarketOptions()","4377cf65":"numberOfContributors()","4377d12c":"ChooseWHGReturnAddress(uint256)","437852b6":"getRefererAddress(bytes)","4378a6e3":"getAttributes(uint256)","437933cc":"setDataFeedHash(string)","437a8ae6":"multiple()","437b1a1d":"KITTY_BURN_LIMIT()","437c58a8":"YourtekToken()","437c9162":"pre_mined_supply()","437cfa4a":"setContractICOAddress(address)","437d07d5":"mktCoinCap()","437dbf49":"_isAuctionAble(uint256)","437f5b65":"isLUNVault()","437f6a4b":"userMakeOrder(address,address,uint256,uint256,address)","437fa667":"appAccountsLength()","4380ab6d":"clock(bytes32)","438195f9":"MAX_WHITELISTED_COUNT()","4381a07b":"setCustomDisputeFee(bytes32,uint256)","4381e1c5":"verificationAddressHoldersListNumberMap(address,uint256)","4383603b":"setAllowHalfLife(bool)","43846074":"getPreviousDarknodes(address,uint256)","43846fc8":"shortLock()","4384d53a":"BunnyCoin()","43859632":"hasVoted(uint256,address)","43863045":"addUintSetting(string,uint256,address,address,string)","438652e0":"addTransferWhiteList(address)","4386fe0d":"changeMinTokenSale(uint256)","43876776":"setPubKey(uint256,uint256)","4387d35a":"lockedWallet()","43886946":"getPlayerTeam(uint256)","43894ac3":"setMintMarketMakerApproval(address,address,address)","438af924":"buy(uint256,bool,uint256)","438b2aed":"setSettings(uint256,uint256,uint256)","438b7b99":"setProfitRatio(uint256)","438b9ff2":"payForUrl(address,string)","438c3585":"releaseTokensBlock()","438c3aff":"contractIds(uint256)","438c9068":"ownersProductCommissionInPerc()","438c9509":"test_invalidTokenFreeze()","438cd2d3":"UnPause()","438d1bd7":"storeBubbleSort(uint256[])","438d359e":"buyXname(bytes32)","438e1316":"next(uint80)","438e15fc":"contains(uint256,uint256)","438f1eee":"PowZoneToken()","4390921e":"distributeOne(address,uint256)","43909d76":"EthCannabis(address)","4390a4f8":"batchTransferToken(address,address,address,uint8,bytes32[])","439198af":"timeLeftToContestStart()","4392281e":"SCTX()","43923258":"addAddressToAccessControl(address,uint8)","43925cc3":"getRoomPlayers(uint256)","43927707":"NehalCoin()","43928cfd":"addClient(address)","439370b1":"depositEth()","4394cc96":"versionBase(bytes32,bytes32)","43951999":"getReportingWindowForForkEndTime()","4395dc06":"getTokenInfoTokenList()","43973140":"check_lock_period(address,address)","439766ce":"pauseContract()","43977911":"addFreezeList(address)","4398da85":"tokensPercentageForKeyHolder()","4398fbd6":"treeWater(uint256,uint256)","439abc5b":"getLockByIdx(address,address,uint32)","439b91c4":"addBlockeddUser(address)","439be05c":"getLoanFilledAmount(bytes32)","439d4265":"recordToTransfer(address,uint256,uint256)","439d7275":"issuerSymbol()","439e10e5":"createUniqueSpinner(string,address,uint256)","439e97c4":"alertCreators(uint256)","439f5ac2":"getEndTime()","439f7d3c":"getSponsor(uint32)","439fab91":"initialize(bytes)","43a085c2":"ProsperPresaleToken(address,string,string,uint256,uint8)","43a335d6":"CreditCarToken()","43a4344f":"calcNetworkFee(uint256)","43a44f1e":"bonusTimes(address)","43a468c8":"delegateBalanceOf(address)","43a47345":"floatHolder()","43a47ae2":"EthTermDeposits()","43a61a8e":"rootOwnerOf(uint256)","43a68f3a":"NegToken(uint256,string,uint8,string)","43a6e680":"DonationSentButNotDoubled(address,uint256)","43a77530":"serviceAgent()","43a78b50":"MyAddress()","43a7f749":"getInitialPriceOfToken(uint256)","43a8775a":"amountOfBagTypes()","43a886ea":"filterBrick(uint256,bytes32[],uint256,uint256,uint256)","43a88da6":"buyOpen()","43a8d9d5":"authorizeWithdrawal()","43a92f24":"getAvatarInfo(uint256)","43aa8784":"endedGameCount()","43ab599f":"EPSCoin()","43ab850b":"setDividends(uint32)","43abab26":"whitelist_addys(address[])","43acb067":"ChefICO()","43acd7bc":"Bailout()","43ae2695":"propertyToken()","43aefca0":"withdrawThetokens(address)","43af755a":"blockedDeadLine()","43b03d37":"i(address,address,uint256)","43b0e8df":"set(uint256,uint256,uint256)","43b114fd":"getMyCoins()","43b12e95":"BCEToken()","43b1938d":"getPhaseSale(uint256,uint256)","43b1c529":"getSig(string,bytes4)","43b25452":"createPortfolio(uint256)","43b3181c":"AIOS()","43b3769e":"checkStatus(address,uint256,string,address)","43b3aa46":"getTokenAmountOf(address)","43b50d8e":"evKickoff(address,uint256,uint256)","43b5126d":"getVendingPrice(uint256)","43b6c7d0":"setClaimedFlag(bool)","43b6caf3":"setMintPerBlock(uint256)","43b7d9c8":"ITToken()","43b7fd58":"RoomRoundAdd(uint8)","43b812ef":"r2VaultAddr()","43b89c62":"getTransactionAtIndex(address,uint256)","43b8aedf":"gimmeTendies(address,uint256)","43b978b3":"playerNames(address)","43ba2cf5":"transferPreSaleTokens(uint256,address)","43bb6a63":"getmemreqscount(uint256)","43bc1612":"artist()","43bc867e":"claimStupidFluffyPink(uint64)","43bcf52a":"bbdToken()","43bd262e":"injectAvatarService(address)","43bd6e6f":"changeColorYellow()","43bdaacb":"getPlayerInternalWallet()","43bddf40":"horses()","43bdfb72":"updatedTime()","43bf63e8":"priceInWeiEdition(uint256)","43bf718e":"getHashOfTheProposalDocument()","43bf74ef":"setKYC(address,uint256,uint8,uint256)","43bff765":"tokensPerMicroEther()","43c09e77":"updateNote(uint64,uint16,bytes12,bytes)","43c0d38c":"getSlotId(address,uint256)","43c14b22":"revokeVote()","43c1598d":"maxProfitDivisor()","43c1f0ed":"timeBeforeJackpot()","43c238db":"POMCOIN()","43c273c7":"DevSupply_Released()","43c29522":"PUBLICSALE_USD_PER_MSENC()","43c33ac9":"submitShares(uint256,uint256)","43c35651":"completeCrowdSale()","43c3658e":"EmporeumToken()","43c37393":"solveTask(uint256,uint256)","43c569f4":"TotalWin()","43c5d889":"locationOf(bytes,uint256)","43c639e7":"ownerResetLockedShares()","43c6b1f2":"_transferAsset(address,address,uint256)","43c6d558":"SportsBet(string,uint256)","43c6e10d":"getAffiliateCommision()","43c6eff1":"submitClaim(uint256,uint256,uint256,uint256,bool)","43c8124d":"PoolAdvisors()","43c885ba":"inited()","43c8c30e":"removeModeratorship()","43c9a189":"allocate1ProjectToken()","43ca46dd":"_ownsToken(address,uint256)","43ca57bc":"getRetailerStatus(address)","43ca78a2":"getNotaryInfo(address)","43ca86c6":"nukeApps()","43ca9d26":"onNewCampaign(uint256,address,uint256)","43cade1c":"reStartPreIco()","43caf0dc":"distroyToken(address)","43cb0af7":"getBytesArrayLength(bytes32)","43cb2b03":"getCurrentTokenCost()","43cb3189":"ETHZToken()","43cbbce6":"icoRound2()","43cc113b":"holdersBonus(address)","43cd1638":"deposit3()","43cd2c40":"UpdateForecast(bytes32,bytes32,bytes32,bytes12)","43cd5ea1":"sendBussinessByOwner(address,uint256)","43cd9655":"XBTexToken()","43cdaad2":"modelId()","43cdc49e":"unlockTokens(address,uint64)","43ce179e":"issueOwnerMore(uint256)","43ce7422":"getMyEggs()","43cf5f0c":"PunaniSupply()","43cfbd65":"getCompanyName()","43cfd44c":"recover_unclaimed_bets()","43cffefe":"challenge(bytes32,string)","43d018a0":"whitelistMaxTok(address)","43d0ee54":"userRounds(address)","43d111ae":"binScan(uint256,address)","43d1498b":"setCoAuthor(address)","43d1be7b":"setPresalePhase()","43d24a5e":"addUpdater(address)","43d32e9c":"getSellPrice()","43d3a4c1":"getTotalVoters(uint256)","43d42780":"icoSoldTokens()","43d4759f":"HuuuumanStandardToken(uint256,string,uint8,string)","43d47f82":"ProjectFund()","43d4b78b":"stateIsWaitingReplay(uint256)","43d5773b":"SpaceCraftCore()","43d64976":"OwnershipDeleted(address,address)","43d6add1":"accessoryOnLeaderboards(uint64)","43d6cac5":"removeTokenMetadata(uint256)","43d6ec16":"LIFEFORM()","43d6fab6":"RegularContract()","43d726d6":"close()","43d77c7b":"platContract()","43d7bfcb":"mintBountyTokens(address[],uint256)","43d7cce6":"getToken(address,uint256)","43d84d49":"updateCrowdsaleInfo(string)","43d8b570":"isTeamVestingInitiated()","43d9e070":"sencSold()","43db053e":"withdrawDevShare()","43db24ad":"EthereumWings()","43db5324":"ownerSetCanMining(bool)","43db7821":"BINKEY()","43dbb2de":"MAX_ETH_FUND()","43dc3ab2":"register(address[])","43dc7233":"getTokenCreationRate()","43dcbc86":"hasNotaryBeenAdded(address)","43dd8b30":"updateWhitelistMapping(address[],address,bool)","43ddc1b0":"callETH(address)","43de34dc":"impl_cancelRedeem(address,uint256)","43de6f90":"createHero(string,uint16,uint16)","43de82f3":"revealVote(uint256,uint8,bytes32,bytes32,uint32,bytes32)","43deb064":"LemonSelfDrop()","43deb8e5":"START_SKO1_UNITS()","43ded8e3":"MyGlobeToken(uint256,string,string)","43defc10":"getVendorByAddress(address)","43defdac":"AudtStandardToken(uint256,string,uint8,string)","43e08ad1":"addHash(bytes32)","43e09695":"deactivatePass(bytes32)","43e0c65a":"allowToBurn(address)","43e0dfdd":"Leverage()","43e1b94f":"AnyName()","43e1eb82":"setSiftContractAddress(address)","43e204b3":"isTokenLock(address,address)","43e20f97":"getPoolbyGtype(int8)","43e271ad":"woodworksCities(uint256)","43e2e504":"GetBalance(address)","43e332c5":"Last_block_number_and_blockhash_used()","43e3e527":"Weko()","43e41c44":"Kotlind()","43e4cef1":"processPrivatePurchase(uint256,address)","43e6125d":"Badge(address)","43e6cc40":"issueTokens(uint256[])","43e6cc64":"StopToken()","43e72c5a":"totalPotHomeTeam()","43e74f46":"sendPrepaidEthTweet(uint256,string,string,string)","43e76a26":"SellerRequestedCancel(bytes32)","43e7aa1d":"commitPhaseLength()","43e91384":"setICOEndDate(uint256)","43e92866":"reservingPercentage()","43ea0313":"setRitualFee(uint256)","43ea8d7b":"newWithdraWallet(address)","43eb37e2":"initChargeJNT(address,string)","43eb5ac7":"getData_21()","43ec31e2":"TdToken(address)","43ec3f38":"toSliceB32(bytes32)","43ed2863":"StandardToken(string,string,uint8)","43ee67cf":"_transferFallback(address,uint256,bytes)","43f0179b":"takerFee()","43f29372":"redeemWinningTokens()","43f294a6":"setCrowdsaleStop()","43f3d27c":"setPrPercent(uint256)","43f415d0":"executeDecayFunction(uint256,int256,int256,uint256,uint256)","43f46a5c":"getPolicyState(uint256)","43f48fbd":"rates()","43f4cb4b":"GetCurrentTypeDuration(uint256)","43f58f9f":"createNetwork(string,uint256,uint256,uint256,uint256)","43f6c643":"purchaseRequest(uint256)","43f6c741":"HGToken()","43f70917":"create(address,address,address,address,address,address)","43f70f60":"dna5(uint256)","43f73a3d":"UpdateCurrency(uint256,string,string,string,string)","43f76b98":"generateLuckyNumbers(uint256)","43f8c639":"tickets100kprice()","43f97628":"EcosystemFund()","43f98345":"calculateAllReclaimedNow()","43f98a56":"tradingDate()","43f99e68":"refundExternalPurchase(address,uint256,uint256)","43fb86d2":"getGameLength()","43fce818":"createAngelCardSeries(uint8,uint256,uint64,uint8,uint16,uint64)","43fd377a":"ChannelNew(address,address,address,address,uint256,uint256,uint256)","43fd6b21":"revokeStackholderConfirmation(uint256)","43fe32fc":"activateProvider(address)","43fedd01":"setDisputeData(uint256[3])","44004cc1":"withdrawERC20(address,address,uint256)","44013585":"setPaymentTime(address,uint256)","44017cd6":"test_BondPostedButNoMajority()","44019db3":"testCreateWithParents()","4401a6e4":"safeSend(address)","4401c905":"INTREPID_PRICE_THRESHOLD()","4401ff5c":"sellShares(bytes,uint8,uint256,uint256)","440208c3":"right12(uint256)","440235c0":"changeTrade(address,address)","44030e71":"getIsBlockRevenueCalculated(uint256)","44036b6f":"setFeePercentTenths(uint256)","44036c41":"getTrustedTransferDestinationValue()","4403e2ab":"nextLotteryTTWTokenId3()","4403ee2b":"setIFS(address,uint256)","44048aa5":"getContributorUSD(address)","440574eb":"adminUpdatePayout(uint256,uint256,uint256,bool)","4406face":"lock(string,string)","4406fbab":"NectarCrowdsale(uint256,uint256,uint256,address,address)","44074cc7":"MaxCoin()","4407a75d":"BasicCrowdsale(address,address,address,string,string,address,uint256,uint256)","440878c4":"store(bytes,address,uint256,uint8)","4408c38a":"HIKEN(uint256,string,uint8,string)","4408f3f9":"place_bet(uint8)","44090448":"to(bytes32,uint256)","440961c3":"adjustPointsDecayFactor(uint256)","44097d70":"costWei()","440991bd":"freezeDuration()","440a16c4":"SEC(uint256,string,string)","440a7a0c":"unblockFirstStake()","440a926a":"home(uint256)","440adb38":"BullsFundToken()","440d2437":"designatedReport()","440d2ad0":"PRICELESS()","440f19ba":"draw(bytes32,uint256)","440f807e":"loadMesa(bytes32,bytes32[],uint8[])","4410121f":"test_voteSpammingFor()","441156cf":"Plutaneum()","4411b8f8":"disputeFavor()","4411c36f":"avgTokenlossValue()","441230e4":"registerHandle(bytes32,bytes32,address)","4412e104":"getZombiesByOwner(address)","4413a688":"setPreallocations()","4414356b":"sale3Accepting()","44146c26":"setExpectedTimes(uint256,uint256)","441478c3":"prepareToRewardProcess()","4414a5c8":"totalLose()","4414d940":"napkinPrice()","4415516b":"getType(uint16)","4415a0bf":"preSaleDiscountPrice()","441628f1":"sendTokensToBountyWallet(address)","441666c5":"SimpleContract()","441691f2":"LexitToken()","44169752":"WALLET_ADDR()","4417bc66":"VESTED_TEAM_ADVISORS_SHARE()","4417f4db":"burnOWL(address,uint256)","44187d45":"HerdiusToken()","44188b72":"openPreICOPublic()","44191d9d":"TokensCreated(address,address,uint256)","44195fd2":"ApolloSeptemFinalized()","4419cd81":"isContractNodeOwner()","4419da33":"changeInvestorAddress(address,address)","4419f969":"QuaLed()","441a174c":"multiCallTightlyPacked(bytes32[],address)","441a2ee3":"Mangocoin()","441a3e70":"withdraw(uint256,uint256)","441b09d9":"allShares()","441b1b44":"getPartialValue(uint256,uint256,uint256)","441b4f01":"investContractDeposited()","441c3499":"getRefers()","441c77c0":"revealPeriodActive(uint256)","441d6a61":"timeWait()","441deede":"getSafeContract(address)","441e354c":"_checkoutCost()","441ea478":"GetLandId(uint256)","442085b2":"contributorCap(address)","4420e486":"register(address)","44210bbd":"claimPlotWithData(uint256,uint256,string,string,string,string)","44219b05":"getGamePlayingStatus()","442484ff":"ExtTokenPurchase(address,address,uint256)","44249f04":"tokensForCharity()","4425c0eb":"claimWhitelistPack(bool)","4425d66d":"backup_exchangeEthStb(uint256,uint256)","44261964":"claimFullPrize(address)","44268655":"addCroupier(address)","4426cdc9":"changeEtherContract(address)","44276733":"getRole(address)","442890d5":"getContractOwner()","4428b072":"getReply(bytes32,uint256,uint256)","44292e88":"setZRXToken(address)","442a494f":"NewRegistrar(address)","442b7ffb":"pow2(uint256)","442b8c79":"addYears(uint256,uint256)","442bc74f":"placeQuestion(uint256,uint8,uint256,string)","442cbcb3":"addParticipant(address,uint8)","442cf0ee":"sellTokensForLtc(string,address,uint256,uint256)","442d0927":"isSellPossible()","442d1759":"GIRLToken()","442d27dc":"getLoanTuple(uint256)","442d31ca":"ChefToken()","442dfae2":"mktSupply()","442e1079":"MIN_ICO_GOAL()","442e501d":"createDeposit(address,uint256)","442eb683":"YouthToken()","442edd03":"listItem(uint256,uint256,address)","442efdc1":"MigrateController(address)","442f52ab":"bilateralCancel(address,address,address,address,bytes32)","44304edf":"TGCTokenBase(uint256,string,string,uint8)","44314116":"totalRollsByUser()","44326354":"pauseITO()","4432ce5f":"setTradersProxyContract(address)","44337ea1":"addToBlacklist(address)","4433a440":"ADXSold()","44346e3b":"cancelOngoingTxByAdmin(bytes32)","44348a78":"referralIndex(uint256)","44350d5f":"neo()","4435947c":"CoinyMcCoinface(uint256,string,uint8,string)","4435f1c3":"SlashToken()","4437152a":"setPool(address)","44377ebb":"getTokenAmount(uint256,uint8)","4437e7a0":"FlogmallAirdropper(address,uint256)","4438744b":"unlockGrant()","44389678":"isAcceptedExportingAuthority(address)","4438c8ab":"ExchangeRate()","4438cf6f":"burnRestTokens()","4438d222":"userHasKYC(address)","4439ab32":"addRecordEntry(address)","4439defa":"getNonce(bytes32[])","443ace5b":"InitiateWhaleCard()","443af072":"percentToPresalersFromICO()","443afe2b":"bssTotalSuply()","443b22e6":"ActiveSalesPhase()","443bd56f":"getHandleOwner(bytes32)","443bdc43":"setStepOneRate(uint256)","443d4c9c":"sendPayout()","443d8967":"batchWithdraw(uint128[],address[],uint256[],uint128[])","443de10c":"getCurrentStaked(address)","443e1cf7":"isFightClockAuction()","443f19f4":"numberOfTokens(uint256,uint256)","443f41d5":"tokenDeposit(address,uint256)","443f45a4":"awardprize(uint256)","443f577e":"getTotalBalance(bytes4)","443f95dc":"allStart()","444115f6":"acceptOffer(uint256,string)","444195a3":"partnersFundAddress()","4441bbd9":"schemaRegistry()","444257a3":"_includes(string[3],string)","4442bf02":"closeArea(uint256)","444316e8":"MiniMeToken(address,uint256,string,uint8,string)","44431e52":"minOVC()","44440a59":"isDistributionReady()","44447f47":"lockTokenSupply()","4444c51f":"_recalculateTopQuestionsOnVote(uint256,uint256,uint256)","4444e3cd":"totalSupply(address,bytes32)","444581da":"createCloneToken(string,uint8,string,uint256,bool,address)","4445b569":"voteWeightOf(uint256,uint256)","4446bb11":"verify_signature(bytes32,uint8,bytes32,bytes32,address)","4446c98c":"foundersFundTimelock1Address()","4447e48c":"configureKeys(uint32,bytes32,bytes32,uint32,bool)","44482ab8":"w0keAFPresaleAddress()","4448604b":"testFailPreDistribute()","4448f5fb":"getEscapeRequestsCount(uint32)","4449307b":"addKycAddress(address,bool)","44495d7e":"migrateGold(string)","444b0c90":"bonusThirdWeekPeriod()","444b6048":"setMerchantDealsHistory(address)","444bb28d":"TownCrier()","444c3d9a":"isCompetitionActive()","444c8daf":"tipoCongelamento()","444cef88":"sentToken()","444d95b0":"proofs(bytes32)","444da733":"isRoundEnd()","444da951":"extractWei(uint256)","444dd6f3":"Elcoin()","444e8b43":"pubkeys1(uint256)","444e984b":"triggerAttack(uint32)","444fda82":"subYears(uint256,uint256)","44501404":"goldPrice()","445045cc":"_bid(uint256,uint256,address)","4451967c":"FOUNDATION_POOL_ADDR()","4451cfd9":"DeductFees(address,uint256)","4451d89f":"claimToken()","44525ace":"roundLatLng(uint8,int256)","445264db":"adventurePresale()","44536d27":"Create_AutoGame(uint256)","44539c72":"setManyWhitelist(address[],bool)","44540e57":"ownerBurnOccurred()","44554cef":"getRedbulls()","44558192":"FMT_Crowdsale()","44559f80":"start_token_time()","44566fe0":"HumanStandardToken()","4456eda2":"isOperator()","44578558":"addPlayerMapping(string,string,uint256,uint256,uint256)","4457ce5b":"CCH_LLV_303()","4457d5f0":"createProject(string,string,uint256,address)","44587e3e":"_setNumber(uint256)","4458ddca":"ChristCoin()","44598c11":"hasOfferingStarted()","445a7a23":"isOracleProxy()","445b8477":"transferAuditor(address)","445cb2df":"getVoting(bytes32)","445d1397":"maxTransfers()","445d1eff":"_getMyDividents(bool)","445d60d3":"placeBuyRequest(uint256,uint256,uint256)","445d688b":"COTTToken()","445d9936":"setTempHeroPower()","445df0ac":"last_completed_migration()","445df9d6":"getAllPrices()","445e4979":"_rejectCertificate(uint256,bool)","445f153a":"showBlockmaticsCertificate()","44602a7d":"testFallbackReturn()","44605ea0":"phase_1_remaining_tokens()","4460fb6d":"burn(address,bytes32,uint256)","4461550b":"devETHDestination()","44621145":"goodsOK(uint256)","446294ad":"multiAccessGetOwners()","446298e2":"Rubid()","446303f3":"preSaleCap()","4464aec7":"testTryGet()","4464c35e":"GNTAllocation(address)","4465e38c":"EligmaTokenContract()","4466862a":"randomtest()","44669e40":"purgeVoter(address,uint256)","44673b2d":"NextOwner()","44691f2b":"Dispute()","44691f7e":"hasStarted()","4469981f":"arrayInfoForDeposit(uint256)","446a7974":"Fokitol()","446b512e":"orderedTokens(address)","446bffba":"add(bytes32)","446c0955":"addWifi(string,string)","446d5aa4":"getAttributes(address)","446da9c2":"xper()","446dba8f":"getBonus(uint256,address)","446dde9b":"MilestoneCashBackTime()","446e0b40":"onSubExecuted(uint256)","446e5079":"SendDividend(address,uint256,uint256)","446f608c":"EscrowEscalation(uint256,uint256,address)","446f6c1f":"sellStorj(uint256)","446fbcd1":"CredSign()","446fcf22":"refundPlayer(address)","44708f7d":"change_time_stamp_status(uint256,uint256,string)","4470da90":"register(bytes32,bytes32,address,bytes32,bytes32)","44710181":"parseChannelCompatible(bytes)","44720ed5":"TigerCash()","4472287e":"numDistributions()","4472d3bc":"getShopOwnerAllProductList(string)","447400bf":"mutate(uint256,uint256)","4474809f":"tournamentEndBlock()","4474e057":"ICOSwapRate()","44751760":"read(bytes,uint256)","44751e3c":"starCoinAddress()","447615df":"Whitelist(address,uint256)","44767548":"rectangle(uint256,uint256)","4476d66a":"mintedInBlock(uint256)","4476e9a9":"epcwallet(address)","44772899":"round6StartTime()","44773a6c":"sendToMultipleAccount(address[],uint256[])","4477c5da":"stopFunding()","44781a00":"notEqual(bool,bool,string)","447843cf":"approveChild(address,address)","447885f0":"get(bytes32,address,address)","4478fbb2":"chOwner(address,bool)","44795c13":"RecoverySha256(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","447a64c4":"usdContribution(address,uint256)","447cd682":"scheduleTransaction(address,uint256)","447d7a1d":"_toLower(string)","447e2dc6":"c(address,address)","447e52a0":"answerQuestion(uint256,string)","447e6967":"endPublicSaleStage()","447ee48f":"maxUserCreatedPerformance()","447fa561":"CAST()","447fa8b7":"setDex(address)","447fbbe3":"manualSendEther(address,address,uint256)","447ffa91":"MineCooldown(uint256)","44804664":"OriginSportToken(address)","44816e2d":"readhistoricalrounds()","4481a486":"transferECOMTokenToContract(uint256)","448246c3":"updateReferralMasks(uint256)","44830788":"estimateTokensWithActualPayment(uint256)","44831edf":"developmentTeamTokensMinted()","44834aca":"buyerAddress()","44845c28":"MediaCash()","4484780b":"checkRecentInvestment(address)","4484a2a6":"forceBuyback(address,uint256)","4484d92b":"getTotalCommission(uint32)","4485cece":"EndTimeChanged(uint256)","4485d32c":"storePortfolio(uint256,uint256[],uint256[],uint256[])","4486598e":"zeeshanabbc()","44866955":"champion()","4487b392":"removeVerified(address)","448883d7":"claimTax()","4488ca9b":"hasApproval(address,address)","4488cc43":"_addExcluded(address)","44890014":"setFxBpsRate(string,uint256,string)","4489b2ec":"getABaddressByIndex(uint256)","448a064f":"YunMint(address)","448a0ceb":"setRoughSupply(uint256)","448a5e11":"mintForDisputeCrowdsourcer(int256,uint256)","448a5f0b":"getTestimonialCount()","448a627c":"SetConfirmRound(bytes32,uint8,bool)","448a9915":"oneBillion()","448b1f29":"tokensForTrivial()","448c0341":"FXRATE()","448c6656":"nodePhases()","448d76a3":"grantReserveSupply()","448d8910":"solve(int8)","448f1ec1":"tranferPresaleTokens(address,uint256)","448f30a3":"nothing()","448f8c86":"Acentiex()","44909c99":"Doftcoin()","4490efe3":"EthernetCashWebsite()","449106ac":"stageCap()","4491fe8f":"onlyPay()","44938e94":"checkPartner(address,address)","4493b8a4":"addrDevTeam()","4493ff1c":"vestedBalanceOf(address,address)","44947b9d":"getOutcomeOfSecondPeriodByEntity(uint256)","4494fd9f":"getGame()","4495147b":"RtcCoin(uint256)","4495bbf7":"DOXYCOIN()","44964dcb":"theList()","4496a7ea":"_getCurrentRoundInfo()","4497ce22":"getLicenseReimbursement(address)","4498acba":"provenAddress(address,bool)","44997a58":"MinusToken()","4499af81":"setChainLedger(address)","4499e043":"UNSOLD_ALLOCATION_EXPONENT()","449a058d":"getParentsLength()","449a09a4":"interfaceAddr(address,string)","449a52f8":"mintTo(address,uint256)","449c198d":"setSealed()","449c7ad3":"withdrawHouseCutFromGame(uint256)","449d0eb1":"checkAccountSchedule(address)","449d0f29":"disavowCrowdsourcers()","449d1ba4":"fundBountyAndTeam()","449d2712":"LEF()","449daa9a":"setCostPerEnergy(uint256)","449de356":"isIncluded(uint256)","449e815d":"getPrice(address,uint256)","449ed7e0":"callback(bytes32,string)","44a08b36":"checkAccess(string,address)","44a0d68a":"setCost(uint256)","44a17516":"Configurable()","44a2542a":"initiateRefund(bytes32)","44a2d0d2":"contributorsKeys(uint256)","44a3982d":"getTokenPriceForPeriod(uint256)","44a3bb82":"getGameIndex()","44a5450f":"PRESALE_WALLET()","44a5b69c":"Reederem(uint256)","44a60878":"DCXToken(string,string,uint256,string)","44a6a8f0":"getDonationLength()","44a71bc6":"fundingMaxCapInWei()","44a7a992":"ParametersChanged(uint256,uint256,uint256)","44a926f9":"assigned_shares()","44a9ff76":"getLastHatchPrice(address)","44aa470a":"addressVerified(address,string)","44aa5782":"LagToken()","44aa768f":"getLLV_edit_26()","44aa8b0e":"createAgreement(string,string,uint8,uint256,uint256,uint256,address,address,uint256)","44ab1c2f":"calcHouseEdge(uint256)","44ab6970":"redeemBool()","44ab6efa":"comB_()","44abc212":"adminWithdrawEIP777(address,uint256,address,address,bool,uint256,uint8,bytes32,bytes32,uint256)","44abd790":"makePlant(uint256,uint256)","44ac423a":"Collect(uint256,uint256)","44ac9d81":"resumePreSale()","44acb8da":"crowdsaleTokenSupply()","44ace7c3":"Tribe(address,string,string,address)","44ad5535":"ProofOfContractSnipers()","44ae0567":"advisorsReleased()","44ae2c03":"getAppNickname()","44ae58f6":"Bittrees(uint256,string,string)","44af11a3":"startBuyBackOne()","44af18c2":"goolaTeamAddress()","44af1f4b":"replaceOfficials(address[])","44af24d6":"getCurrentPercentage(address)","44af946f":"calculateEndTime()","44afda9c":"_isValidBaseLayersOnly(uint256[],uint256)","44b0245d":"addPurchased(uint256,uint256,uint256)","44b07838":"setPaidPackage(uint256,uint256,uint256,uint256)","44b07a3e":"newProposal(uint256,string,bytes32)","44b11f26":"Registry(bytes32,uint16)","44b1231f":"vestedAmount()","44b1d6e3":"DEXLITE()","44b1e09d":"checkTargetReached()","44b1e61a":"isFirstInit()","44b20e7a":"drawNum_()","44b28d59":"enableMint()","44b2a172":"cards_metal(uint256)","44b49958":"presaleEtherRaised()","44b4d279":"payoutDividends()","44b55187":"DollarToken()","44b55c3a":"setParking(uint32)","44b70d79":"LiquidityNetwork()","44b76b9e":"ICOTimer()","44b77680":"init(address,address,uint256[])","44b786a1":"setRate_BTCUSD(uint256)","44b7a3b7":"_createScrapPartAuction(uint256)","44b8074c":"changeTotalAmount()","44b81854":"STSTEST1()","44b81a77":"BitcoinToken()","44b88a6d":"scannedBronzeCaps()","44b8ccda":"EthLongExercised(address[2],uint256[8],uint256)","44b9cab5":"roundBlockCount_()","44b9efb2":"setInputData(uint256,uint256,uint256)","44ba16a2":"COLOR_PINK()","44bb3b2f":"stopBlock()","44bb60cf":"sigDestinationApprove()","44bc3e27":"BetWEA(address,uint256)","44bd7186":"GestiToken()","44bd7b71":"setBountyPercent(uint256)","44bec848":"thirdRoundPercent()","44bee639":"distributeSupply(address,uint256)","44bfa56e":"getBytesValue(bytes32)","44c010c6":"_getReferralBonus(uint256)","44c040a6":"MyAdvancedToken(uint256,string,string,address)","44c11fe4":"currentTransferableTokens(address)","44c18aa7":"setPayout(uint256)","44c20957":"setPhase(uint8,uint256,uint256,uint256)","44c20e6f":"retrieveExcessEther()","44c2dd71":"HSCToken(uint256,string,string,address)","44c3cb29":"validPlayer(uint256,address)","44c3cc68":"BasePoll(address,address,uint256,uint256,bool)","44c47561":"whiteListed()","44c4bf10":"setBlacklist(bool)","44c4dc31":"totalContributedAmount()","44c4dcc1":"purchasedAmount(address)","44c526c1":"devRewardClaimed()","44c55801":"setVaribles(string,string,uint256)","44c5bbf8":"updateStatus(address,uint8)","44c5e758":"getCustomerPolicyCount(address)","44c63eec":"vesting()","44c71ef2":"changeSaleSettings(address,address,uint256,uint256,uint256)","44c73459":"weiPerBlock()","44c7d6ef":"claimStake(uint256)","44c9716a":"BVA()","44c9af28":"getState(uint256)","44c9e83d":"purchaseAuthorizer()","44ca361f":"Log1(string,uint256)","44caa8d6":"isArrAccountIsFrozen(address)","44cb1c33":"lastTokens(address)","44cc129e":"count_bytes(uint256)","44cc5f7e":"m_externalMintingEnabled()","44cc7f5e":"validWithdrawToken(address,address,uint256)","44ccbed0":"getAssetCollectedOreBallances(uint256)","44cef69b":"CreateTokenToOperation(address,uint256)","44cf262a":"addressChangeBlock(address)","44cff104":"setMarketManagerAddress(address,address)","44d02c2a":"infoICO()","44d03ac6":"BlockhashFetch(address)","44d0afbc":"signingLogic()","44d15446":"setDevelopmentAuditPromotionTokensPercent(uint256)","44d19d2b":"reservedSupply()","44d1a074":"marketsubscribers()","44d1a9ae":"setCardDrawPrice(uint256)","44d345f9":"UnclaimedRewardTransfer(uint256,uint256)","44d4fd19":"Now()","44d60e67":"TransferAssets(address,uint256,address)","44d6d259":"AdminAdded(address)","44d75fa9":"updateMinorTree(bytes32)","44d7e4ed":"stopIssuing()","44d9bc5f":"gameEndTime()","44daf94a":"showEthBalance()","44dbb571":"SALE_START_TIME()","44dbc282":"processCallback(bool,address,address,uint256)","44dc028d":"lockedtokensOf(address)","44dc4dec":"registerForRace(uint256)","44dd4b3b":"lookupGeneration(uint256)","44dd4b5e":"scheduleTransaction(address,uint256,bytes)","44dedf4d":"returnFundsForUsers(address[])","44defdfd":"paidInstallments()","44df8e70":"burn()","44dfdce0":"getNameOwner(bytes)","44e02dbc":"returnCollateral(uint256)","44e14e59":"lockReferralTokens(uint256,address,uint256)","44e191fa":"increaseApproveAndCall(address,uint256,bytes)","44e2024f":"createNewFreelanceContract(string)","44e20fd2":"EasyPocketCoin(uint256,string,uint8,string)","44e2651c":"whiteListOf(address)","44e2adeb":"claimedFlag()","44e2cc24":"JackpotTimer()","44e2f9ad":"buyerInfoOf(address)","44e43cb8":"depositRevenue()","44e44e0d":"Profeee()","44e4c366":"rmTrusted(address)","44e4d226":"alreadyVoted(string)","44e52420":"TRADERSCOIN()","44e5d154":"GenesisGlobalTestToken()","44e63717":"LaboToken()","44e66ee2":"updateMeterValue(uint256,uint8,uint256)","44e780b7":"PrepareRollEvent(address,uint256,uint256,uint256)","44e78d93":"wipeDAI(uint256,uint256)","44e796de":"doubleBonusArray(address[])","44e7faa4":"limitedWalletsManager()","44e86b2f":"left71(uint256)","44e880c1":"gasAfter_()","44ea4a7c":"TokenCreated(uint8,uint8)","44ea54fe":"changeSoundcoinsContract(address)","44ec1a0d":"getContestStatusForDateAdmin(uint32)","44ec2c03":"addTransaction(uint256,uint256,uint256,uint16,bytes32,uint256)","44eccf16":"PSTBCoin()","44ed9039":"FLTTToken()","44edf6b2":"preIcoEndDate()","44ee398b":"secondThawDate()","44ee3a1c":"extendLock(uint256)","44eef96c":"sellShip(uint32,uint256,uint256,uint256)","44ef231b":"argumentCount()","44f04404":"forging(uint256,uint256)","44f06bc7":"getChampStats(uint256)","44f09d2a":"createDungeon(uint256,uint256,address)","44f0a4a8":"tdeStartTime()","44f0c3ce":"totalLost(address)","44f11e7e":"tokenBoughtPerTime(uint256)","44f1bbad":"giftRatioOf(address)","44f1beed":"Marble()","44f1ee5b":"Proof(address)","44f2428a":"adjustL(uint256)","44f252a0":"confiscate(address)","44f26d89":"forceUnstake(address)","44f27e30":"getAuctionData(uint256)","44f34576":"setTokensBought(uint256)","44f38756":"icoState()","44f396fa":"startStage2()","44f39803":"setBubbled(address)","44f5e447":"operatorFeeAcct()","44f6d70c":"giftOwnerByIndex(address,uint256)","44f7335b":"_verifyAvailability(uint256)","44f75cbd":"isAffiliate()","44f7636c":"publicOfferingWallet()","44f7787f":"ln(uint256,uint256)","44f7d03d":"valueOf(uint8,bool)","44f84579":"JP_winner()","44f96b36":"getRemainingPartnerTokensAllocation()","44f96bc6":"matured_timestamp()","44f977de":"setStore(string,address,uint256)","44f9ac5c":"getPendingWithdrawals(uint256)","44f9d060":"_getMinimum(bytes32)","44fa961d":"deleteLawyer(address)","44fa9ca6":"oracleIsUpdating()","44faa139":"Withdraw(uint32)","44fb5a1a":"Category(string)","44fbaf08":"bountyAmountLeft()","44fbc1ef":"Dollar()","44fbe5f5":"NewBiggestDick(string,string,uint256)","44fc2a9b":"NOLLYCOINCrowdFund()","44fc364c":"setMarket3(address)","44fc709e":"set_property_facility(uint256,bool,bool,string)","44fc83dd":"LogTokenReward(address,uint256)","44fc9361":"maximumInvestmentInWei()","44fcbd79":"getLocksForAddress(address,uint256)","44fd1557":"ERC20Token(string)","44fd584d":"cancelLeaseOffer(uint8)","44fdbf5b":"releaseAllTokens()","44fddeb7":"BLOCKAPPS()","44fe2eb0":"totalPaidDividends()","44fe7cd5":"Eliminated(address)","44ff5a3e":"CWC_Address()","44fff35c":"openCrowdfund()","4500054f":"isCancellable()","45004310":"signUpUser(string)","4500e64f":"showLockValues(address,address)","4504169a":"_createFlower(uint256,uint256,uint256,uint256,address)","45044611":"TimeCapsule()","45048ced":"Presale(uint256,uint256,uint256,uint256,address)","450531e7":"aidPoolTokens()","4505d53f":"unclaimedPoolsPresent()","45061bf8":"tsc()","4506e64d":"putOn(uint256,uint256)","45078531":"PRESALE_LEVEL_5()","4507a545":"shouldBeTrusted(address,address)","4507fccf":"addDeal(uint256,bytes32,bytes32,uint256,bytes32,bytes32)","45083f73":"appendTranch(uint256,uint256)","4509052f":"scannedCaps()","4509fd81":"partnersPercent()","450a03dd":"getKunsNum()","450a9105":"setYctContractAddress(address)","450b6079":"RetRisk(uint128)","450c4b7b":"LogTokensBought(address,uint256,uint256,uint256,uint256)","450c99d3":"etherRealID(address,address,string,string,bool)","450cabcb":"publicGetExchangeRate()","450d94ef":"TransactionConfirmedAfterEscalation(uint256)","450db8da":"ContractUpgrade(address)","450dccf6":"cancelOrderWithMerchantByAdmin(string,address)","450e2ed3":"startNextCycle()","450eefae":"execute(address,uint256,string)","450efe21":"getTokens(address)","45102ca7":"generateCarId(uint256)","451048e2":"isALCDistributed()","45104b16":"EXECUTION_GAS_OVERHEAD()","45115a17":"PUBG()","4511cc7d":"Transfer_nodata_enabled()","45126711":"createRandomNumber(string)","4512b39b":"sendAndFreeze(address,uint256,uint64)","4513a44e":"Saturn()","4513a7f4":"IsTransferTempFromOldContractDone()","451450ec":"upgrade(uint256,uint256)","45145281":"CurrencyFactory(address,address)","451512ed":"forceDispute(uint256)","451515db":"addProduct(uint256,uint256,bytes32,address)","45152b14":"makeUnicTaskHashId(address)","45164b3e":"TRANSFER_PROXY_VEFX()","451659d9":"exchange(uint256,bytes8,bytes8)","45166351":"FRB()","4516b707":"DCOIN()","45176f8d":"CloutToken(uint256,address)","4517a273":"releasePremine()","4517bd42":"RetractRoutingDR(bytes32,bytes32,uint256,bytes)","4518982c":"firstBonusTokensLimit()","45190584":"remainPantry()","45199e0a":"getPendingList()","4519a069":"toUint32(bytes,bytes,uint256)","4519c454":"tokenFallbackExpanded(address,uint256,bytes,address)","4519ef8e":"getMinutes(address,address)","451b5f47":"preMaxContribution()","451bd752":"currentUniqueSpinnerPrice()","451bedb3":"getSettingsChangeConfirmationCount(uint256)","451beefc":"addressToSplittersCreated(address,uint256)","451c3d80":"acceptedToken()","451cd22d":"clnAddress()","451d65d3":"Debug(uint256,address,string)","451df00f":"SongTokenRemoved(address,bool)","451e3ec5":"_createName(bytes32,address)","451e422e":"windowPeriod()","451f0601":"advisersPartners()","451f7763":"admin_set_payable(bool)","451febcc":"equal(bytes32[],bytes32[],string)","452030c4":"end_PRIVATESALE()","4520d416":"getReserveminted()","45232370":"fechVoteMainInfo()","45239b90":"setBeneficiary()","4523be0d":"Daily()","4524c70b":"addEmployee(address,bytes32,bytes32,uint256,uint256)","4525f804":"constructor(address,address)","45261106":"maxBetsPerBlock()","4526196e":"addressB()","45262b05":"setDefaultExecuteTime(uint256)","45266d7e":"BrandAdded(address,address,string,bool)","452757f6":"changeContainer(address)","452766a5":"EGGS_TO_HATCH_1Cat()","45278394":"updateDemurrageReporter()","45279c81":"effectiveMaxBet()","4527b4b6":"HGUATToken()","4528f3ec":"lastPurchase()","45293f0e":"Luckybuy()","4529cae7":"getTotalPlayers()","4529cd71":"SOFT_CAP_IN_ETHER()","4529cd8a":"AdvertisementStorage()","452a33f0":"grantTrophy(address,bytes32)","452a344f":"MintStarted()","452ae331":"attack(address,uint256,uint256)","452af6c6":"ForegroundPaymentResult(bool,uint256,address,uint256)","452b7757":"AirDropPayBitsR3(address[])","452ccadb":"changeBountyFulfillmentAmount(uint256,uint256)","452d44dc":"checkBothNotNull()","452ddecc":"startBallot()","452e0d25":"sURL()","452e880b":"readArticle(string)","452e9acb":"setMsgHash(bytes32)","452fa483":"TOXToken()","452fbc41":"USN(address,address,bytes,uint256,uint256,uint128)","45301024":"ownerDispute(uint256,uint256,uint256)","4530a6c6":"getWishTribute(uint256)","4531aaa3":"EverydayTokenStandardToken(uint256,string,uint8,string)","45327fef":"calcSharePriceAndAllocateFees()","45334894":"setTeleportPrice(uint256)","4533f779":"determineWinnerOdd(string)","45350759":"addTier(uint256,uint256)","45350b6b":"readFromStorageView()","45362978":"query1(string,string)","4536be70":"periodITO_hardCapInWei()","4537544c":"makeAccountIterable(address)","4537b7de":"developingFund()","45385448":"BEERS()","45387d2c":"_getTournamentSupportAmount(uint256)","4538b7ec":"CallExecuted(address,uint256,uint256,uint256,bool)","453920cb":"changeTokenName(string,string)","45395b03":"tokensIssuedOwner()","4539bf18":"date01Feb2019()","453a6e0d":"getAmountConverted()","453aa450":"vote_proposed_address(string,string)","453b7eab":"totalControlledBalance()","453c2310":"maxPerWallet()","453ca7ee":"RewAddr()","453cbb11":"canConvertTokens()","453cddaf":"performPhase()","453dc243":"setWoodAddress(address)","453dd97f":"getDevWallet()","453dfcae":"payExtraTokens(uint256)","453e5a2c":"registerMarket(bytes32,address,address)","453e6fa0":"schedulableAmount()","453eca78":"getRealmNum()","453fe8cb":"calcUnMaskedEarnings(address)","453fef69":"setPrepaid(address,uint256,uint256,string,uint256)","454052ea":"relent()","45406101":"TTCToken(address)","45408a8a":"minCashout()","4540a396":"importBalancesOf(address[])","45411c8d":"checkAllowedTier(address,address,uint8)","45414df1":"b2s(bytes)","4541c39c":"to_end_ico()","4541e154":"sumICOStage4()","45426082":"countdownDecrement()","4543754f":"totalUserStakes(address)","4543f79e":"withdrawERC20ToOwner(address)","454431c1":"RangeGameWithITG(address,uint256)","454481dd":"nextLotteryTTMTokenId4()","45448a28":"approveAddOwnerRequest()","4544ad22":"allByAuthor(address,uint256)","4544c48c":"distributeWinnings(uint256)","454584e6":"_setProviderInvitedUser(uint256,address,bool)","45458643":"setPI_edit_16(string)","45461e78":"MToken()","4546ad06":"sendProposal(string)","4548821c":"ExBatallionCoin()","45488ac1":"buyStake()","45493057":"validateClaimTokens(address)","454a2266":"dhopakexchange(address,address,address,uint256,uint256,uint256)","454a2958":"foundersTokenTimelock()","454a2ab3":"bid(uint256)","454aa6cf":"getPhoenix(uint256)","454b0172":"Created(address,address,address)","454b0608":"migrate(uint256)","454bccd0":"mininumContributeWei()","454bf426":"sysFeePermillage()","454c57ee":"getStockBuyOrderPrices(uint256)","454c5d34":"allocateBalance(uint256,address)","454c87b3":"matured()","454ca9fd":"get_my_tokens()","454ccc2f":"totalAngels()","454d3e24":"investorsBalance()","454d9bb4":"MerkleMine(address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256)","454dd6d2":"GetMinimumBet_Ether()","454dfaaf":"claimSale()","454f7b8f":"totalPayout()","455052b9":"getInstanceMetadata(uint256)","4550fa72":"isConsensusObtained(uint256)","4551b1d7":"ProxyPayment(address,address)","4551dd59":"isCrowdsale()","455259cb":"getGasPrice()","45528aa8":"addItemToInternal(address,uint256,uint256,uint256,uint256,uint256,uint256)","4553c343":"getEarningMetrics(address,bytes32)","4553fd4d":"token_ratio2()","455501d3":"Submission(address,uint8[])","45550a51":"recoverAddressFromSignature(bytes32,bytes)","455530a6":"TestRandomNumber()","45556969":"DealerSocketCoin()","4555d5c9":"proxyType()","4555db10":"tokenRecovery(address,address,uint256)","4556611e":"weiToShare(uint256)","45576f94":"createToken(string)","455770a4":"setIcoPhase1(uint256,uint256)","455778ed":"advisorsTokensSecondReleaseTime()","45579b1f":"transferShares(uint256,address)","4557a579":"addWeapon(uint256,string,string,string,address)","4557b4bb":"init(uint256,address,address)","4557c70d":"CrowdWallet(address,address,uint256)","45585afe":"manageInvitations(uint256,address[],address[])","4558850c":"apps(bytes32,bytes32)","4558d717":"changePaymentToken(address)","45590ec8":"addTag(uint256,string)","45596e2e":"setFeeRate(uint256)","45598b4a":"cancelCampaign(uint256)","45599136":"tokenFee()","4559b2e8":"holderAdvisorsTokens()","455a2a37":"MyAdvancedToken(uint256,string,uint8,string)","455a380d":"getTotalAmoutStageAddress(address)","455b33ab":"gambler2()","455bf142":"refundeesListLength()","455c06e4":"mintTokens(address,int256,uint256)","455c7050":"EscrowManager()","455ca9bd":"refundTokens(address)","455d4077":"_startLockup()","455d86b8":"revenueShareOwnerAddress()","455dc46d":"nextMinimumEpochInterval()","455df579":"left84(uint256)","455ea98c":"getInUse(bytes32)","455eb777":"canStake(address,uint256,uint256,bytes8,uint256,string,string,string,string,uint256,uint256)","455ef8f9":"coinsCount()","455f1725":"getTotalAmountOfBlocks()","455f6f31":"totalTokensBurnt()","455fd623":"totalWithdraw()","455fea46":"getTankDetails(uint32)","455ff9a4":"lastBlock_v16Hash_uint256()","456176eb":"PCDStartTime()","45622c31":"setContractAllowance(address,uint256)","45624260":"getNumPositionOperation(string,address,string)","45626ecb":"removeStages()","45629402":"changeDefaultWithdraw(address,address)","4563b743":"getPAAttributes(uint32)","4563f30a":"transfersPaused()","45644fd6":"removeOracles(address[])","45645572":"presale(address,uint256,uint256)","4564ea36":"forceVoidExternal()","45653a6d":"creater()","45656757":"p1_start()","45668923":"Aikcoin()","45668f2b":"ORACLIZE_GAS()","45669c8d":"protectedTransferToMint(uint256,bytes32)","4567a6a7":"getXCPlugin()","4567c5f7":"buySharePriv(uint256)","45680e09":"createPixels(uint256)","4568fb50":"finishRoundAndStartNew()","4569db8a":"getCustomerTxAmountKWh(address,bytes32)","456a09c8":"withdraw(uint256[],uint256[],address)","456c2892":"finalizeLottery()","456c64e0":"getGamesOdds(uint256[])","456c8cac":"saleStopped()","456cb7c6":"authorized()","456cbafc":"AddressWarsBeta()","456cee82":"setAmountPerEther(uint256)","456f3c3b":"internalIcoFinished(uint256)","456fe579":"notate(address,uint256,uint256,uint256[])","4570160e":"MotionToken()","45705906":"isLeading4FF(address)","45705d93":"BwinToken()","457094cc":"fire()","45710074":"sell()","45714c7b":"TOKEN_CLAIM_WAITING_PERIOD()","4571a7f1":"maxStage()","4571d4c4":"FutureCall(address,uint256,uint16,address,bytes,bytes,uint256,uint256,uint256)","45734d2b":"sizeOfInt(uint16)","45737b1e":"changeEndDate(uint256)","457391e5":"createGame(bytes32)","4573a421":"ico4Sold()","4574dea5":"setBreedingFee(uint256)","45751137":"newDeposit(address,uint256,uint256)","457556c2":"getUBetChecks()","45755dd6":"returnFunds(uint256)","457610e5":"cancelTransaction(bytes32,string,bytes32,bytes32,uint256,uint256,uint256,uint256,uint256)","4576a635":"setCategoryCap(uint256,uint256)","457750a4":"marketIncentivesAllocation()","457770d8":"PreICO(address,address,uint256,uint256)","4577942c":"lastTransactionTime()","45787fed":"WolframExchangeTimes()","45788ce2":"prev(address)","4579268a":"getOffer(uint256)","45798593":"Certification(string,string,string,string,string,string,string)","4579c805":"createDistritoVerify(uint256)","457a21bc":"GullitCoin()","457a893f":"upPlayer(address,bytes32,uint256,uint256,uint256,uint256)","457b4e1b":"_setMoreDetails(uint256,uint256,uint256,uint256,uint256,address)","457bb613":"initializeUsers()","457c600c":"getItemAllowanceAmount(uint256,address,address)","457ce032":"getTokensFromExchange(address,uint256)","457cf77a":"couponToken()","457d13ca":"getPlayerBet(string,address)","457dd8b3":"setMasterKey(address)","457e5521":"getAllPolicies()","457e8fc7":"calculateReward(uint32,address,address)","457eff2f":"GetMySnails()","457f4d41":"hammer()","457f55fb":"updateRightLottery()","4580a950":"setDecreaseRepAvailableForExtraBondPayouts(bool)","4580cc5e":"setFinished(uint256,uint256)","458284fb":"setACLRole7123909213907581092(address)","45837e5f":"updateLandData(uint256,string)","4584117e":"mintParts(uint16,address)","4584afe5":"buyLambo()","45850658":"closeAssignmentsIfOpen()","4585ad02":"delayDefaultAction()","4586a517":"addTotalSponsored(address,address,uint256)","4586e4ab":"balanceInPlay()","45871918":"raceToBaseStats(uint256)","4587327a":"doAirdrop(address[],uint256)","45874c93":"PersonaIdentity()","4587501e":"baseIcoPrice()","4588c1ef":"setPI_edit_2(string)","45895620":"getAvatar(address,uint256)","458a645d":"resolveDeposit()","458b1471":"mintingFinishedTime()","458c9ca4":"year3Unlock()","458d5968":"getMyTokensEmits()","458d96bb":"transferLockedMultiply(address[],uint256[],uint256[],uint256[])","458da775":"_makePlant(address,uint256,uint256)","458e18d7":"AMLOveCoinVoting(address)","458e78d5":"getSchellingRound(uint256)","458efde3":"vest()","458f837f":"minSumICOStage1USD()","458fa428":"summDividendReserve()","458ff74f":"authorizeBurnFulfiller(address)","45906baf":"Restrictable()","45909a6f":"getBalanceOfUser(address)","4591a980":"verifyStep(uint256,bytes,bytes,bytes)","4591b7c6":"fillBonds(address)","4591c060":"fork()","4592282e":"LBC()","4592cd1d":"claimContractOwnership()","4592fec8":"returnBids(uint256,address)","459348dc":"BISTEXToken()","45934d0b":"getIdentityName()","45941a38":"lastTimeOfNewCredit()","45945a45":"isRoundActive()","459469e0":"FundsRegistry(address[],uint256,address)","4594762a":"getSkill(uint256,uint256,uint256)","459497fc":"ownerAddressInLUT(uint256)","4594d06a":"delMinter(int256,address)","45950cd4":"selfairdrop()","4595343f":"dividendsRightsOf_(address)","459659a4":"Exchange(address)","45967555":"deployedContracts(address,uint256)","45977d03":"upgrade(uint256)","45977ebb":"LINCToken()","4597dc8e":"CooldownThreshold()","45983b24":"isReferralSupported()","4599308f":"buyCow()","459a2192":"cardDetailsList(uint256)","459a585a":"testCreateToken()","459a6589":"transferInGame(address,address,uint256)","459ae9b3":"addMembers(address,bytes32,address[])","459b0d97":"SimpleConstructorBytes(bytes32,bytes32)","459b2cd6":"OwnableWithRecovery(address[],uint8)","459b3926":"Airdrop_Limit()","459c7d0b":"tokenIcoUsdCentPrice()","459cb2be":"agreedTermination(uint256)","459ccde6":"modifyRandomNumber2(uint256)","459ebb8c":"BCMtest()","459ec508":"betOnColumn(uint8)","459f93f7":"getBuyers(uint256,address)","45a132d4":"LemonSelfDrop1()","45a15388":"marketPrice()","45a1b92c":"onBurn(address,uint256)","45a1d72a":"_tobuy(uint256,address,uint256,uint256)","45a1f1b9":"getInitials()","45a2556c":"getBucketOwedAmount(uint256)","45a2a3df":"withdrawTeamPerfit()","45a37bd6":"kycManagerWallet()","45a3816c":"forfietCollat()","45a3b0bf":"resolveFailPledge()","45a3c7c6":"_createReleaseAuction(uint256,uint256,uint256,uint256,uint256)","45a40478":"downs(address)","45a45695":"baseTargetInWei()","45a48de6":"getBigPromoRemainingBlocks()","45a4a39c":"completePost(address,address)","45a727de":"checkForUpdaterUpdate()","45a743d1":"TOTAL_AIRDROPPED_TOKENS()","45a7b991":"getContributionHashes()","45a88ff6":"claimPlotMultiple(uint256[])","45a8d80e":"PiPiCoin()","45aa257a":"VICCoin()","45aa324c":"start_service(address,uint32)","45aa6e98":"tokensCreated(uint256,uint256)","45aa7f69":"OffMenuMorselToken()","45aa83d8":"blockoptions()","45ab17bf":"setRefunding()","45ab63b9":"walletFeesInBps(address)","45ab8e07":"CoinsdomCoin(uint256)","45abc063":"totalLoadedRefund()","45abe20a":"investorsIndex(uint256)","45acc490":"executeAmendmentMandate(uint256)","45ad35bc":"lastCallAddress()","45ad55cc":"PRE_ICO_DURATION()","45ade051":"getUtilizationRate(uint256,uint256)","45ae47fd":"CardFactory()","45aeff61":"getStockKey(bytes6,bytes6)","45af4bc2":"JJToken()","45af7ceb":"invalidateHash(bytes32)","45b0f6d2":"sealBurner(bytes32)","45b17abb":"distribute_private_sale_fund(address,uint256,uint256)","45b1c336":"icoWeek3Bonus()","45b21736":"getCBAStatusMessageLength(address)","45b26383":"contributeFund(string)","45b30e7a":"GTBToken()","45b35f56":"getAllRewards()","45b3fe42":"Y()","45b426f2":"option30symbol()","45b50255":"getBooking(string,uint256,uint256)","45b5143b":"TUMITOKEN(uint256,string,uint8,string)","45b581a2":"getPotentialProfit(address,string)","45b5a47a":"GetEther()","45b64133":"HHRLocker()","45b660bd":"IssueTokensToInvestors(address,uint256)","45b6ccfd":"MAX_MIDGRADE()","45b727f3":"getShop(uint256)","45b748ab":"SSPUnregistered(address)","45b7d5da":"setFrozenAccount(address,bool)","45b7fdd4":"TheGreatWishOfChina()","45b8bafc":"floorLog2(uint256)","45b8c0c2":"parcelGzeWithBonusOffList()","45b8fa03":"TokenLongExercised(address[2],uint256[8],uint256,uint256)","45b9ca21":"getEther(uint128)","45bae1eb":"carAccts(uint256)","45bae539":"getContributeParticipant()","45bbee71":"rmAsset(address)","45bbf9b5":"TotalPayment(uint256)","45bcd68f":"BitVideoCoin()","45bd3752":"intMemoryArray(int256)","45bd7f03":"addBountyAddresses(address[])","45bda564":"SPECIALIST_STAKE_THREE()","45bddbb8":"thanksAllGenesisUsers()","45bdfedb":"getAdrByIndex(uint256)","45be66eb":"SportsBet()","45beb6e0":"matchAgainstBook(uint128,uint256,uint256,uint256)","45bf5cb2":"testInitialBoardUsingDeployedContract()","45bfdca6":"addWalletAddresses(uint256,address)","45c08718":"updateCredit(address)","45c1234c":"Sent(address,uint256,string,string)","45c12560":"LogMoneyToPreICO(address,uint256,string)","45c1523a":"OzsToken()","45c16a22":"getSaleStage()","45c1c9fc":"setBuyEnable(bool)","45c35fd5":"publicOfferingTokens()","45c38053":"tankAllowance()","45c41132":"_emitPaymentReleased(uint256)","45c41478":"getMarkets(bytes,address)","45c46619":"addWhitelistedBurn(address)","45c531f3":"secondDiscountPrice()","45c5904f":"malangtoken()","45c5b8ac":"set_game(address)","45c5de81":"listTeamTokens(uint256)","45c654eb":"TravelToken()","45c6a874":"adminMultiSig()","45c7a092":"isValidSignature(address,uint40,uint40,uint128,uint256,uint8,bytes32,bytes32)","45c8b1a6":"unfreeze(address)","45c8e118":"view44()","45c917ec":"closeDeposit()","45c9a11a":"maxProfitPercentage()","45c9a558":"getPeriods()","45ca25ed":"changeName(address,string)","45cb3dde":"withdrawTime()","45cb3f4d":"highestBidPrice()","45cb4559":"gameGiftUserTotalTimes()","45cb9994":"Lookup()","45cbf879":"getStageByBlockNumber(uint256)","45cc13c3":"tokenize()","45cc50ce":"endTimeIco()","45ccd426":"ObokContract()","45cd4820":"participate(address,uint256,bytes32,address)","45cdb714":"changeColorWhite()","45ce0dc1":"addLambo(string,uint256,bool)","45ce691a":"buy(uint256,uint256,uint256,uint256,uint256,uint256)","45ce86eb":"whitelistApplication(bytes32)","45cf093a":"sumDividend()","45cf8467":"getSqr(uint256)","45cfad3e":"TOKEN_PRICE_N()","45cfcc42":"getKeyVotes(string,string)","45d0695f":"arr(uint256,uint256)","45d1b657":"PRE_SALE_3000_ETH()","45d27edf":"forward_method(bytes,address,uint256,bytes)","45d30a17":"releasedAmount()","45d3292b":"receiveDonation()","45d3b8db":"superAddress()","45d3cc81":"getAnimal(uint256)","45d4cf2b":"createPrivilege(string,address,address)","45d5149f":"minContributionAmount()","45d53788":"numOrders()","45d58a4e":"getWalletOut()","45d607fe":"referralFee_()","45d63b07":"BrokerNekoNetwork()","45d63b66":"recommit(uint256)","45d6c9db":"PVP_BATTLE()","45d78d08":"getTokenAllocations()","45d7fd3e":"setCreationAddress(address)","45d8a232":"targetTime()","45d8a6df":"tablePrices(uint256)","45d9a1ce":"withdrawBalance(address,address,uint256)","45d9bd15":"getBookmarks()","45da75d3":"setPresidenteDeMesaVerify(bytes32,uint256,uint256,uint256)","45dafed2":"Marcellocoin()","45db72ff":"lastLoveLetter()","45dc16ca":"trade(uint256[12],address[4],uint8[2],bytes32[4])","45dc3dd8":"setMin(uint256)","45dcb788":"dataSourceGetRoundOfSixteen(uint256)","45ddc85d":"voteOf(uint256,address)","45ddcf99":"unlockUntradeableCards(address)","45de2567":"transferTokens(uint256,uint256)","45df30d2":"transferPlusFee(uint256)","45df925f":"ratingList()","45dfe7f3":"restrictedWallet()","45e05f43":"affiliate()","45e09e54":"getBoard(uint256)","45e0e324":"FoodStore()","45e0e412":"forwardTokens(address,uint256)","45e231a6":"XCONToken()","45e26105":"updateMaintenanceMode(bool)","45e29057":"_myLuckyNumber()","45e3553e":"setMaxProtoId(uint16)","45e373ed":"getCertificateById(string)","45e381a9":"set_minFinneyPerHedgeTransfer(uint256)","45e39705":"addMember(string,address)","45e3b8c0":"SHOP()","45e41468":"placeSell(address,uint256,uint256)","45e479f6":"GetDiv()","45e4c361":"rteamVaultAddr()","45e4db40":"addTxInBuffer(address,uint256,uint256,uint256,uint256)","45e4fd6e":"listItem(uint256,address,string)","45e5da07":"ETHAssets()","45e5fd8b":"nonActivationShortWithdrawal(address[2],uint256[7],uint8,bytes32[2])","45e7e140":"getReservedPercentageDecimals(address)","45e7e14b":"ReputationUpdated(string,uint256,uint256,string,string,address)","45e82175":"level_5_percent()","45e8baa7":"checkSignatures(bytes,bytes,bytes,address)","45e93903":"SpooksterCoin()","45e965cd":"strConcat(string,string,string,string)","45ea375f":"viewPot()","45eada10":"setProvider2(address)","45eb4b28":"destinationAddress20()","45eb7c8e":"CompleteAddOn(uint256,address)","45ebc145":"publish(uint256,string,string,string,bool)","45ebe153":"moveIcoEndDateByOneMonth(uint256)","45ec26ac":"distributedCount()","45ec7670":"WallStreetCoin()","45ec9e87":"Eurovision()","45ecd02f":"isActiveMember(address)","45ed68e8":"defaultSalePrice()","45ede900":"setPropertyOwnerSalePrice(uint16,address,uint256)","45ee49b9":"getUltimateOutcomes(bytes)","45ee9151":"BountyTransfer(address,address,uint256)","45ef8217":"clear_market()","45f00b06":"setNewTalentsAndPartnerships(address)","45f03f31":"EthereumLottery(address,address,address)","45f09140":"chargebackCoins(uint256,address)","45f0db24":"get_coin(uint256)","45f11fc8":"trancheAmountPct()","45f23f10":"crowdsaleFundsWallet()","45f28e77":"genToStartPrice(uint256)","45f32b02":"currentModifier()","45f32b6d":"totalCirculating()","45f32e77":"currBlock()","45f45449":"EtherCash()","45f472fc":"saltNHash()","45f4c1ba":"pay(uint128,address)","45f536f7":"sendPer2()","45f63927":"increaseGame()","45f67eb4":"setTolerance(bytes32,uint256)","45f6ee41":"setPrice(uint16,uint16,uint8,uint256)","45f7f249":"totalAllocated()","45f826da":"setMinimumInvestment(uint256)","45f8567c":"paySmartContract(bytes32,address[],uint256[])","45f8f1e8":"RajTestICO(address)","45f9072b":"setColorOrange()","45f988a4":"priceT2()","45f99d51":"claimFailed()","45fa4045":"getVestingPeriodNumber()","45fa53e7":"pieAccounts(uint256)","45fb0cd6":"addMultipleAddressesToCappedAddresses(address[])","45fbe9cb":"spawnChild(string)","45fbfbca":"investment()","45fc916c":"setPricingPlan(address)","45fcceb4":"foundersTokensReserve()","45fd2478":"_getShipType(uint256)","45fd3666":"isTurnDataSaved()","45fd4040":"addAllowCnsContract(address,bytes32,address,bytes32)","45fd865a":"HazzaToken()","45fd9e23":"claimOwnership1()","45fdef65":"addCandidate(address,bytes32,bytes32)","45fe5850":"OrganFunction(string,string)","45fe5a83":"deliveryTime()","45fe5aea":"useKey(address,uint256)","45fe6e2a":"Scheduler()","45febc32":"BugisNet()","45ff59b2":"createTokensForCrypton()","45ff8b75":"get_HoldersProfit(uint256,address)","45ff8fde":"request(bytes32,uint256,uint8,uint256)","460123cf":"findAddressByEndpoint(string)","4601cded":"getNumSides()","46021deb":"getLastAuctionedShipId()","4603032a":"withdrawByTeam(address,uint256)","46032178":"MigrateAgentSet(address)","460485e0":"fundsWithdrawnByOwners()","46051eb7":"getProductHistoryUser(bytes32)","46054144":"ASIEX()","46055acd":"Decline(address)","46057b70":"timeOver()","46061579":"check1(uint256)","4606ccd1":"spinAllTokens()","4607c26e":"periodsPassed()","4607ef57":"preICOTokenRewardRemaining()","46080a94":"subResearch(address,uint256)","46082aaf":"approveDeprecation(uint256,address,bool)","460885ab":"_createNewLottery()","46091499":"transferFrom(address,address[],uint256[])","46093b0e":"setOracleAddress(address,address)","460a6507":"giveReward(address,address,uint256)","460ab47b":"proposeChangeOwner(address,address)","460ad570":"newOraclizeResult(bytes32,string)","460b4a45":"getTotalBonusesAmountAvailable(bytes32)","460c1a7a":"cancelOrders()","460c3be5":"owner_LockUpdateTokenAccount(address,bool)","460d674b":"keyFromIndex(uint256)","460e2049":"getPlayers(uint256)","460f740e":"createData(string,string,string)","460fce3b":"milestoneStarted(uint256)","4610a448":"vestingBeneficiaryForIndex(uint256)","461105c7":"withdrawBoth(uint256,uint256)","4611636e":"erc20VGC(uint8)","46116e6f":"sireAllowedToAddress(uint256)","4611a5e3":"calcRefund(address,address)","4611efde":"changeTBrate(uint256)","4611fb0e":"RSC()","4612b88d":"deleteDiniRequest(uint256)","46134e33":"getPrivateSaleEndDate()","46141657":"SetdivForTank(uint256)","4614185a":"IkuraTransfer(address,address,uint256)","46143a39":"setMessageSpan(uint16)","4614689c":"showWinners(uint256)","4614874e":"createEscrow(address,uint256)","46156ea0":"odds(uint256)","461645bf":"window()","4616caa9":"pushCoin(uint256,address,string)","4616fc3f":"setSystemSaleAddress(address)","46172c04":"calculateRewardForAddressAt(address,address,uint256)","461751e6":"resetMistCallLoad()","46183d06":"getTktPrice()","46190e16":"getSpecId(bytes)","46190ec4":"nextId(address)","461998fc":"cancelRecurringPayment(address)","4619aa19":"pvpOwnerCut()","4619c0ca":"insertBeneficiaries(address,address,uint256,uint256,uint256)","461a2df9":"PretherICO()","461a4478":"resolve(string)","461ac019":"deployedTime()","461ad9e9":"saveGenCode(address,uint256,string)","461c89b3":"massMint(uint8[],address[],uint256[])","461db9ad":"GoCryptoCoin()","461df016":"getQuantities(address)","461e0be5":"ElphToken()","461efbf8":"testEtherFundMeCrowdfunding()","461f48cb":"setUsersBounty(address[],uint256[])","461fd83b":"myEtherBros(address)","46203efe":"frozenAccountCoinByHour(address,uint256,uint256)","46205ac3":"hodlFor1y()","4620adbb":"tokenPricePerUSD()","4621a5d9":"activateRevenueShareReference(uint256)","4621e552":"decreaseRemainLockedOf(address,uint256,uint256)","462219f8":"batchTransfer(bytes32,address[],address,uint256[])","46226514":"isPresidenteDeMesa()","46238c69":"nextRedemptionRequest(uint256)","4623beb6":"InterestTest(address,address)","4623c81e":"TIMELOCK_DURATION()","4623c91d":"setValidator(address,bool)","4624321e":"decreaseApprovalWithData(address,uint256,bytes)","46256be7":"getAgentAdressById(uint256)","46272a6d":"mySavings()","4627de42":"getIncrease()","46280a80":"sell(uint8,uint256,uint256)","46285e45":"checkBalanceAt(address,uint256)","46286c18":"_validateUserActive(address)","46287ddb":"rateLastWeekEnd()","4628b375":"TokenLeft()","4628bc22":"teamTokensVesting()","4628e45e":"ABAToken()","4629e619":"raceNum()","4629ffea":"newToken(string,string)","462a8e05":"setRabbitSirePrice(uint32,uint256)","462aa19e":"setToken(address,bytes)","462b2fca":"isRedeemLocked(address)","462c1bff":"H4D()","462c6070":"getLockedAmount_jishis(address)","462c6edb":"highBonusRate()","462dcfa0":"newMaster(address)","462e91ec":"addCandidate(string)","462f9a28":"get(bytes32,bytes32,uint256)","463079b5":"resetFactories()","4630a0ee":"changeTicketPrice(uint256)","4630d82e":"upgradeTokens(uint256)","4630f1d5":"toggleKillSwitch()","463107d4":"buyerfeeDivide()","46315237":"fiveHours()","46317712":"lastDebtLedgerEntry()","463193c7":"startselfdrop()","4631db54":"_burnTokens(uint256)","4631e15b":"assertEq15(bytes15,bytes15)","46325b48":"CTCoin()","46336cd3":"read(uint256,uint64)","4634009a":"getIdx(string,string,uint256)","46340b37":"RakugoPresale(uint256,uint256,uint256,address)","46348e0b":"calculateArea(uint256)","4634d81c":"getDividends(address)","4634ea79":"countCurrentPayment()","46352ad9":"transferToGrowthReserve()","4635b449":"raisedUSD()","4635ecd5":"lastTicketNumber()","4636a159":"newPhoneToAddr(address,uint256)","4636db04":"changeBid(bytes32,uint8,uint8)","4636e095":"acceptBet(uint32)","4637c85d":"wildcardTokenId()","4637d827":"trust(address)","4637de3c":"removeMod(address)","4637fd1a":"_transferEther(address,uint256)","463959fa":"minJackpotBet()","4639888b":"jockeyForSale(uint256,uint256)","463ac31b":"buyStore()","463c3347":"getMyLandMultiplier()","463c75b3":"GreenworldFarmToken()","463cde9e":"PUBGtoken(uint256,string,string)","463cf730":"maxEthCapBuyInFp()","463d3cda":"acceptExternalTransfer(string,uint256,string,uint256)","463d50b8":"transferFromVault(address,address,uint256)","463d5ce1":"isUserWithdrawalTime()","463dcf0a":"merge(address,uint256,uint256)","463dfae6":"setTrg(address)","463ee88a":"createBusiness(uint256,uint256,uint256)","463f2c21":"giveCredits(address,uint256)","463f7a7d":"_updateDependencies()","463f7a89":"getProperty(bytes32)","463fb5f1":"Bogotcoin()","463fbb76":"setTransportationFeeMultiplier(uint256)","46405ffc":"OhNoToken()","464066f5":"vote03NoCount()","4640f28d":"createPlayerToken()","4641257d":"harvest()","464299f9":"getReturnFromMonster(uint64)","46435fa1":"createPiranhaToken(string,address,uint256,uint8,uint8)","4643db5b":"DonationClaimed(address[2],uint256[8],uint256,uint256)","4644d17e":"getAirDropTokens()","4646939e":"updateWhitelistMapping(address[],bool)","464695b3":"tokensSoldTo(address)","4646f62a":"setAvatarFrom(address,string)","46478e91":"increaseGlobalInterestAmount(uint256)","46479541":"setWalletId(address)","4647d0c6":"CUNCoin()","464858c6":"NVT()","46488459":"getTopMigrationDestination()","4649bfee":"setCCH_edit_25(string)","464ae89f":"SponsoredLink()","464bb7a3":"findAccess(address)","464cccc8":"round4Cap()","464cecb8":"getHyper(address)","464d1208":"claimReward(address,address,uint256,address,uint256)","464da87e":"cofoundersSupplyVestingTranchesIssued()","464deba6":"TridentToken(uint256,string,uint8,string)","464e1d46":"setBalanceOfAddr(address,uint256)","464e47b4":"wasSoftCapMet()","464f37c9":"trustedChildRefund()","46503676":"_useCitizenAsLumberjack(address,uint16,uint16,uint8,uint256)","46503c01":"KansasvsClemson()","4650c308":"genericCall(address,bytes)","465105f0":"releaseAllETH()","46517145":"createNewCardType(uint256,uint256,uint256,uint256)","4651f716":"assertEq14(bytes14,bytes14)","4651ff39":"setopen()","4652e9fe":"getStartDateOfPlan()","46530c34":"activityExist(uint256)","46533d60":"setNewReleasePeriod(address,uint256,uint256)","46534649":"referralBalanceOf(address)","46538e07":"checkExistsOwnedMedal(uint64)","4653a1fa":"setAttackBoostCap(uint256)","4654b6e2":"addMonsterObj(uint64,uint256,uint32,address,string,string)","46567a07":"getTotal(address[],uint256[],uint256)","46570653":"_share(uint256)","4657681b":"set_num_of_uses(address,address,uint8)","4657ad8e":"payTxFees(bytes32,uint256)","4657d848":"getVendorIds(uint256,uint256)","46581235":"unlockToken(address,uint16)","465941e5":"ATMHolders(uint256)","4659f42a":"withdrawAfter(address)","465a092d":"PRESALE_ETH_CAP()","465aaeb7":"windowBonusMax()","465af554":"setLockJackpots(address)","465b43d0":"joy()","465c2cec":"SmartBonds()","465c8ce0":"getRobot(uint256,uint256,uint256)","465ce877":"HashnodeTenaraCoin()","465d1cbe":"getDepositsAmountLeft(uint256)","465d5c27":"_tokenIsApproved(address,uint256)","465d6e1a":"CAUSE()","465e759b":"testRestart()","465e920e":"getLineData(uint256)","465f1d07":"CrowdTmoney5()","465f41b1":"multiOwner(address[])","465fa408":"calculatePriceForTokens(uint256)","465fe311":"KEP()","46601278":"TotalTOkenSupply()","46602ce7":"FOUNDERS_POOL_ADDR()","4661bb98":"setClassWhitelist(uint32,bool)","46621234":"tmpAddr2contractAddr(address)","4662299a":"issuanceFinished()","4662fbdf":"promotorSale()","466339fb":"_rewards(uint256,uint256)","46642921":"changeModerator(address)","4664611e":"winningNumber()","4664b235":"bytes32_to_bytes(bytes,bytes,bytes)","4664fe1b":"changeMinFunds(uint256)","4665096d":"expiration()","46653287":"createInitialTokens(address,uint256)","466551f1":"LinqToken()","466559e2":"S26ICO()","46656c46":"OxToken()","4665975d":"registerCustodian(address,address)","46682cab":"canFinishTournament()","46683308":"freezeAccountForLogic(address,bool)","46689c64":"startPlaceOrder(uint256,address)","4668b43b":"updateTelegram(uint256,string)","4668f372":"MaxMiningReward()","466916ca":"pauseStatus()","466985f3":"escape(uint256)","4669e680":"getPreEntranceMemberCount()","466a3443":"getIndividualPercent()","466ae314":"forwardedOutcomeSetTimestamp()","466bb312":"getDeposited(address)","466bc3bd":"GOXX(uint256,string,string)","466bf275":"getFreeToad()","466c35fc":"MINT_ADDRESS()","466c3a2b":"getChecksumAlgorithmCount()","466ccac0":"forSale()","466cf98f":"giftBalance(address)","466df592":"votingPeriodBlockNumber()","466e37e7":"newTapProposalFromTokenHolders(uint256)","466e561f":"updateReserve(address,uint8,bool,uint256)","466ebdf6":"setAddressOut(address)","466f0004":"getData_10()","466f8870":"Solar()","4671e65e":"proposeEmergencyWithdrawal(address)","4672f555":"pow(int128,int128)","46743691":"transferPublisherRecord(address,address)","467523fa":"setBuyerRate(address,uint256)","46755c68":"setEndingBlock(uint256)","46758d0b":"setAgentRate(address,uint256)","4676b897":"balanceOfUnclaimed(address)","467730fb":"toFound()","4677b540":"ATOToken()","4677fe53":"validUnitId(uint256)","467aeec9":"addShareholderAddress(address)","467d7289":"clearRound(uint256,uint256,bytes32,bool,uint256,uint256,uint256,uint256)","467de087":"withdrawAdvisorsTokens(address,uint256)","467eb43f":"verifyIdentity(address,bytes32,uint256)","467ed261":"getDSTNameBytes()","467f0b7b":"del_rank(uint256)","467f85e4":"DividendPayment(uint256,uint256)","468014e1":"startTimeSale1()","46804137":"bonusStep()","46807803":"_payoutMining(uint256,address)","4681067d":"incAdminEpoch()","468129a5":"setUnit(uint256,uint256,uint256)","46817362":"importersBanksDraftMaturityDate()","46822869":"BTFM()","4682ff71":"redeemMarketingToken(string)","4683ef63":"delayedOwner()","46848114":"startOffering(uint256,uint256,uint256,uint256,bool)","4686030f":"promethExecute()","468628e1":"getActivityById(uint256,uint256)","46862c8f":"mintOnce(string,address,uint256)","4686753d":"Crowdfunding()","46875458":"ARM()","4688a372":"withdraw(address,bytes8)","4689ab4d":"right21(uint256)","468a0413":"parseResult(bytes32,string,address)","468ae69d":"multiMint(address[],uint256[],string)","468b0c1d":"AllPay()","468b0fcd":"preSaleGoalReached()","468b0fe2":"setBridgeNode(address,address,bool)","468b3b33":"unlockedBalanceOf(address,uint256)","468c17d7":"_sendMsgSndr(address,address)","468e1b53":"DEC15Contract()","468e4509":"setAutoridadElectoral(bytes32)","468ed002":"INITIAL_VUP_TOKEN_SUPPLY()","468eeece":"revertGame(address)","468f02d2":"getUnderlyingPrice()","468f3dcd":"getTokenHoldersCount()","46904840":"feeRecipient()","46906982":"amountRaisedEth()","46911b64":"testDisputedWriteValid()","46912a4d":"PERC_TOKENS_TO_BIZDEV()","4691a998":"addVesting(address,uint256,uint256)","4692a481":"WilliamCoin()","4692d7e3":"BitQ()","4693667a":"changeMdtFoundationAddress(address)","469450cc":"disableLockDown()","4694fe85":"isUseContractFreeze()","469506bf":"getFinalSeed(uint256,uint256)","469507c6":"transferReward(uint256,address)","4695cf7a":"getSteakPrize()","4696890e":"ethworld()","469737d5":"forceRejectVotes(bytes32,address)","46975b9a":"swypeCode()","4697f05d":"setAllowed(address,bool)","4698ad05":"transferWhileLocked(address,uint256)","4698d110":"numMembers()","4698d920":"setMintAuditApproval(address,address,address)","4698da9d":"releaseVestedTokens(address,address)","469912d7":"Crowdsale(uint256,address,address)","46999ee5":"addNamespaceMember(string,address)","469a6947":"unlockTimeOf(address)","469aaa98":"BitSTDLogic(address)","469ab1e3":"contractNameHash()","469bb426":"failedDonations(address)","469c62a6":"buy_tokens()","469c7f4d":"transferOwner2(address)","469c8110":"sendMessage(string)","469c8dbb":"ExternalSale(uint8,bytes32,address,uint256,uint256)","469e2d5c":"submitPresetTransferes()","469e9067":"records(address)","469ef000":"hasValue(address[],address)","469f4c41":"setPreIcoStatus(uint256)","46a06ddb":"getPreviligedallowed(address,address)","46a06eb9":"LogTimedTransition(uint256,uint8)","46a1749a":"AgingTransfer(address,address,uint256,uint256)","46a1cd08":"getAvailableReward(address)","46a1d95f":"closeMarket(bytes)","46a1fabf":"Withdraw(address,uint256,uint256,bool,bool,string)","46a2679a":"getSubpotsCount(uint256)","46a2b53e":"GAS_REQUIREMENT()","46a3e290":"Defreeze(address,address,uint256)","46a3ec67":"TheAnswerIs(string)","46a54e15":"privatesale_start_time()","46a5b318":"DutchAuction(address,uint256)","46a5bf0c":"airDropStage()","46a60e99":"buyRoseGRLC(bytes32,string,uint256)","46a672bd":"createCard(string)","46a6c499":"freezeMyFunds(uint256,uint256)","46a7551d":"isOnBattle(address,uint64)","46a79a4e":"changeGameSettings(uint256,uint256,uint256,uint256,uint256,uint8,bool,uint256)","46a9d680":"EthereumGold()","46aa6644":"sendAllFeeToAddress(address)","46aaf139":"getSignersCount(bytes32)","46ab3d5e":"evaluateProposalMarket(uint256)","46abf8a8":"setVariables(uint8,uint16,uint16,uint16)","46ace8fd":"removeServer(string)","46ad5859":"getTokensRemaining()","46ade2de":"RESERVED_TOKENS_FOR_PRE_ICO()","46ae38a8":"getHexSymbol(string)","46aee903":"changeminBuy(uint256)","46af23f5":"InstantLottery(address,address,bool,address)","46afb963":"CrowdsaleState()","46b04e53":"PlayerInfoPerZone(uint256,uint256)","46b1d3be":"endTimePreICO()","46b207b8":"checkExpiry()","46b249b9":"tokenSaleOnHold()","46b305d6":"lockBetsForWithdraw()","46b33bc2":"getDonebountyAmount(address)","46b33e05":"getFreeTurtle()","46b4320c":"showUserBalance(address)","46b45af7":"isMintable()","46b55416":"subBuy(bytes32,bytes32,bytes32,address)","46b56bf6":"contract_sha256()","46b5d107":"testFailMintGuyNoAuth(int256)","46b5e202":"set_num_levels(uint256,uint256)","46b61083":"GoDigit(uint256,string,string)","46b65ffd":"getModule(uint8,uint256)","46b7068c":"returneth(bytes32)","46b753a2":"setChargeFeePool(address)","46b77d9f":"areFundsReleasedToBudget()","46b84cad":"getPackageById(uint256)","46b8c49e":"setReserveData(address,uint256,address)","46b98d0c":"startContract(bytes32,uint64)","46ba6f61":"setSuppressedGame(uint256,bool)","46ba7783":"setDistributionMinter(address)","46bb2833":"founderAddress()","46bbb6cf":"removeSshKey(string)","46bc29bf":"getGoldMigration(uint256)","46bdca9a":"equal(string,string)","46be2310":"export(bytes8,address,address,uint256,uint256,bytes)","46be2e0c":"left32(uint256)","46be6f87":"newGame(uint8,string,string,bytes32)","46be96c3":"amountFilled(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","46be9c48":"lockState()","46bf3df3":"_setWallets(address,address,address,address)","46bf5864":"ERC223Token_STA()","46c017b5":"zhuchu(uint256)","46c068c3":"testEndsWith()","46c092b2":"presaleGuaranteedLimit(address)","46c13d28":"changeAccessTokenFee(address,string,uint256,uint256)","46c2997a":"notMoreThan()","46c3166f":"testThrowRetractLatestRevisionNotOwner()","46c34832":"WinnerProvidedHash()","46c49c58":"CustomToken(string,string,uint8,uint256)","46c4e533":"withdrawUpdate(bytes32,uint256,address,address,uint256,uint256,bytes32,bytes,bytes)","46c52b1a":"blockHexCoordsValid(int8,int8)","46c59373":"ethManagementPropagate()","46c66b27":"_transferAll(address,uint256)","46c6f325":"TEACHTokenToken()","46c715fa":"original()","46c797e2":"updateMarriageLicenceImageIPFShash(bytes)","46c7c126":"getChallenges()","46c968db":"blocktubeClip(string,uint256,uint256,uint256)","46c9b457":"privatePreSalePrice()","46ca48a2":"freeAmount(address)","46caf5e8":"BTB()","46cc3179":"getComponent(string,string)","46cc43fb":"decodedSecret()","46cd9b23":"_triggerNewPVPContender(address,uint256,uint256)","46cdb099":"shareholderID(address)","46ce33d4":"clearLockBalance(address)","46cee8f7":"TemporaryPyramid()","46cf1bb5":"lockState(address,uint256)","46cf6d2e":"_validate(uint256,uint256,uint256,uint256,uint256)","46cffffd":"NewAreaStatus(uint256,uint8,uint8,uint8,uint8,uint256)","46d0a022":"transfer(address,address,address,address[],uint256[])","46d0e892":"makeOptions(uint256,address,uint256)","46d0eb60":"addAlias(address,string)","46d0fb60":"isUserLicenseValid(address,string)","46d1501a":"PoP()","46d17bfd":"LongBought(address[2],uint256[2],uint8,bytes32[3],uint256)","46d17c3a":"Unregister(address,uint256)","46d1c605":"balanceOfButter(address)","46d22c70":"canBreedWith(uint256,uint256)","46d24cbb":"refundedWei()","46d36fa0":"ChristopherRobinRT()","46d46a6a":"CashTelex()","46d47cdf":"testFailCreateWithParentsParentNotInUse0()","46d5688e":"RATE_CROWDSALE_S1()","46d64aa2":"Kuberand()","46d667db":"setBytes32(bytes)","46d6b1e8":"getChampsForSale()","46d6c93b":"addFeed()","46d7195d":"vote_until()","46d73def":"hasHalted()","46d7df42":"setTokenContactInformation(string)","46d89444":"getCrowdsaleTierList()","46d95146":"anvlTechToken()","46db63d7":"rewardUser(uint256,address,uint256)","46dbf9b0":"pickupProduct(uint256)","46ddb7db":"setAccountBalance(address,uint256)","46de0fb1":"isFrozen(address,address)","46deb279":"ElementUpgraded(uint256,uint256,uint256,address,uint256,uint256,uint256)","46df1578":"refferBonus()","46df2ccb":"setRate(uint256,uint256)","46e04a2f":"claimTokens(uint256)","46e06634":"approveKYC(address,bool,uint256,string)","46e0c223":"_createOfAthlete(address,string,address,uint256,uint256,uint256)","46e184da":"Olife()","46e1bfbb":"acceptAtGroup(address,uint256)","46e1f732":"investorsProcessed()","46e1fa55":"_removeDefaultOperatorByTranche(bytes32,address)","46e2577a":"addProvider(address)","46e2a174":"preIcoTokensSold()","46e33afc":"getFACTOR()","46e34823":"tan(uint256,string,string)","46e36060":"subBalances(address[],uint256[])","46e3cb1a":"sellTradeConfir()","46e44f63":"getCheckRecordTS(bytes)","46e4959d":"mintMulti(address[],uint256[])","46e4d35d":"numOfLoadedEarlyPurchases()","46e5500f":"LogFinalized(address,uint256)","46e5c323":"largestHODLERBalance()","46e6ffdd":"OwnableStorage()","46e767bc":"Log2(address,bytes32,uint256,string,string,string,uint256,bytes1,uint256,uint256)","46e780b0":"getLinkHash(address)","46e7ccac":"isAuthorizer(address)","46e87b1e":"RgiftTokenSale()","46e93dbc":"maturityProcess(string,bool,uint256,uint256)","46e9ab22":"Gateway()","46e9e3c2":"reclaimPeriod()","46ea2552":"transferManager()","46eac50e":"superTransfer(address,uint256)","46eba0c1":"fundWithdraw(address,uint256)","46ebb5e2":"TimedPresaleCrowdsale(uint256,uint256,uint256,uint256)","46ec56c5":"getNumInvestments()","46ed24a3":"setAirdropToken(uint256)","46ed3199":"ATCToken()","46edef6c":"accICO()","46eea9a1":"secondStageRaised()","46eeed5f":"rolloverFee(address,uint256,uint256)","46ef6660":"createTokenContract(address,bytes32)","46f02832":"queryPermissions()","46f04694":"periodICOStage8()","46f0975a":"signers()","46f19888":"get_total_info()","46f24c6a":"functionSix(uint256,uint256,uint256,uint256)","46f25cad":"setAuthor(string,string,address)","46f2e880":"payForMyselfWithChecksum(uint128,bytes1)","46f42dff":"Win(uint256,uint256,uint256,address,uint256)","46f43f15":"StierBitToken()","46f74c6d":"setArbitrationPercentage(uint8)","46f76648":"getTotalEthSended()","46f7a883":"BuyTicket(uint8,uint8,uint8)","46f7cf87":"insert(address,uint256,address,address)","46f84dc4":"grantPermission(address,address,bytes4,address)","46f8e5ec":"getBlocksUntilStart()","46f92818":"setCreditDaoAddress(address)","46f99063":"totalSent()","46f9bedf":"costPerTicket()","46fa14e5":"MyFeed2Token()","46fa2574":"preIcoMembers(address)","46fae630":"getAllCardsAttack()","46fbf68e":"isPauser(address)","46fc9037":"__beneficiaryTransfer(uint256)","46fcafe2":"etherContributions(address)","46fcff4c":"availableFunds()","46fd9446":"setUsdEtherPrice(uint256)","46fde171":"closeCdp(address,uint256,uint256,address)","46fe2edb":"reserveIAMDestination()","46fec37b":"LogBounty256(address,uint256,string)","46ff099d":"cancelOrderByPayer(string)","46ff43dc":"totalInCents()","46ff4ce6":"betRedCoin()","46ff64f3":"setOraclizeRoundGasFee(uint256)","46ff7eac":"depositContrac(uint256)","46ffb216":"m_startTimestamp()","46ffdfbc":"getMax(uint16[])","47002c6d":"TOTAL_RECEIVED_ETH()","47006460":"maximumInitialBuyoutPrice(uint256)","4700d305":"panic()","4700dc57":"setFirstBonusTokensLimit(uint256)","4700fada":"GVToken(address,address)","47021780":"QSBH()","47026d90":"Volkstest3()","47028fcf":"getSponsorshipAmount(address,uint256)","4702d115":"dataCalc(uint256,uint256)","4702fa12":"_getCurrentRound()","47040cb4":"getStateProofAndHash(bytes,uint256)","47048c7b":"getMemberBoss(address)","47055321":"deduct(address,uint256)","4705b55b":"XCOIN()","4705d888":"getlastmoney()","47062402":"buyFee()","47064d6a":"setData(string)","4706840e":"destroykill()","4706c375":"_withdrawEquity(address,uint256)","4707f44f":"tokensOfOwnerByIndex(address,uint256)","47085958":"SetIndustry(string)","47089f62":"addVerified(address,bytes32)","470905b1":"Founder3()","470a5f4e":"reinvest(uint256,bytes32)","470b1984":"investedBTC()","470b1f7c":"AnetCoin()","470b2867":"tablet_owner()","470b6e0e":"addStackholderTransaction(address,bool)","470bb62b":"record(string,string)","470ca291":"referrerLevel3Ether()","470d7722":"batchAddAddresses(address[],uint256[])","470e872c":"transferBill(address)","47102a5d":"ETC(address,uint256)","4710411d":"twenty_percent_of_amount()","4710c5bf":"preSale3()","4710c63c":"excavation()","4710cfd7":"nContract()","47115192":"voteCut()","4711748d":"setNDCContractAddress(address)","4711dbe1":"registrationBounty()","4713f29b":"setBuyingCostumeRate(uint256)","47146b28":"setFiscal(uint256,uint256,bytes32)","4714c0aa":"proxyAccountingCreation(address,uint256,uint256)","47156810":"scheduleNewDerivativeToken(address,address,uint256)","4715b308":"decreaseApprovalPreSignedCheck(address,address,uint256,uint256,uint256,uint8,bytes)","47166f62":"Quarkchain(uint256,uint256)","47170eb8":"LogEtherTransfer(address,uint256,uint256)","4717dea9":"getTicket(address)","4717f25a":"charonsBoat()","4717f97c":"getResults()","4718d108":"_transfer(address,address,string)","4718dc4d":"payOutVoterById(uint256)","47198cd1":"get_baseAmount(uint256)","471a20e7":"getResponses(uint256,uint256)","471a2270":"Lottery(uint8)","471a23c8":"burnMe(uint256)","471ab294":"handleTokensFromOtherContracts(address,address,uint256)","471ad963":"redeemProposalFunds(bytes32)","471b37cf":"VESTING_ADVISOR_DURATION()","471c95db":"TransferFees(address,uint256)","471d0481":"randomB()","471d4118":"releaseTimeFund()","471d66cb":"exceedsMaxInvocations()","471eab5c":"removeAllowedSender(address)","471efce5":"tokensForPreICO()","471efe66":"set_addresses(address,address)","471f11ec":"purchaseTown(uint256)","471f4722":"setOnSaleAmount(uint256)","471f7cdf":"favoriteNumber()","471fabfd":"eexploitOwnn()","472016da":"playersAddresses(uint256)","47202819":"unregisterInit(address)","4721ed6f":"enableRedemption()","47220f25":"maxPremiumDragonsCount()","4722361c":"canStartSettling(bytes32,address)","4722b4a5":"getFeeParameters()","47237f47":"freeStorage(uint256)","47241a27":"setAdditionalBonusPercent(uint8)","47244212":"Product(string)","472457cb":"addDragonName(uint256,string)","47249b1a":"GetEventInfo()","4725211b":"recordNameCount()","47255591":"setOuverture_des_droits(uint256)","4725d544":"_utoa(uint256,uint8)","47274dbe":"disableUser(address,address)","4727925a":"KEKEcon()","4728537c":"lockupBalanceOf(address)","4728d3ae":"CreatedEDU(address,uint256)","472905ca":"makeAdmin(address)","47293d15":"getAddressesCount()","472aa7df":"createProduct(bytes32,uint128,uint256)","472ad331":"InvestmentsCount()","472b6492":"AddEth()","472b6efa":"getWinRate(uint8)","472c681f":"addPack(address[],uint24[],uint24[],uint16)","472ca5e4":"allocateBid3(bytes32)","472d35b9":"setFeeManager(address)","472e1910":"verifyOpenSignature(address,bytes,bytes32)","472eb03d":"payLoan()","472f36e2":"Allocated(address,uint256)","472fdb67":"totalTokensReserve()","4730725d":"addToTimeLockedList(address)","4730bf06":"STAGE_1()","4732a7dc":"setMigrationAddress(address)","47337aab":"Btencoin()","4733a341":"SubmitClaim(address,string,string)","4733dc8f":"transferProxy(address,address,uint256)","4734922a":"generateOrderByAdmin(address,address,uint256,string,string,string)","473528b2":"_updatePurchasingState(address,uint256,uint256)","473533e6":"estimatedWeight()","47355ba5":"PiplToken()","47356bd9":"show_automated_Buy_price()","47356dd8":"getServiceUpdateAddresses(address,uint32)","4735b35f":"createDiamondAuction(uint256,uint256,uint256,uint256)","4735c747":"CrowdsaleToken(string,string,uint256,uint8,address,bool)","4735e00a":"CollectibleBought(uint256,uint256,uint256,address,address)","4736786b":"EthereumUnionToken()","47369a7c":"getPositionDeedHolder(bytes32)","4736b531":"TdeStarted(uint256)","47372325":"getChannelSize(address)","47373033":"enableStartBattle(string)","473753cb":"batchCancel()","47378145":"getBlockNumber(bytes32)","4737e852":"viewContractHoldingToken()","47387404":"_getGameStartAuctionMoney()","47395ced":"append(string,string,string)","473a223d":"getClosingTime(bytes32)","473aa2a5":"getFile(bytes32)","473ae9fe":"testCreateWithParent()","473b0d46":"setMinContribution(uint256)","473b4c53":"BrehonContract(address,address,uint256,bytes32,address,uint256,uint256,address,uint256,uint256,address,uint256,uint256)","473bc223":"gameName()","473bca32":"secondAllocation()","473ca96c":"win()","473e9408":"_getAttributesOfToken(uint256)","473edf73":"Award(address,uint256)","473f0117":"contributionID(uint256,address,uint256)","473f1803":"claimRewardForUser(uint256,address)","4740a08b":"getEggData(uint256)","474154bc":"divIsSafe(uint256,uint256)","47416aec":"setTokenContract()","4741b95c":"setPercentFrozenWhenBought(uint256)","47428855":"assertEq32(bytes32,bytes32)","47430b36":"parnter()","474448c4":"finishResolveFund(bytes32,string)","47448e8a":"set(bytes32,string,bytes32)","4746041f":"burnIndexedFrom(address,uint256)","4746cef8":"_confirmAndCheck(address,bytes32)","47471183":"freeOf(uint256)","474740b1":"batchLimit()","4748f7c2":"icoPhase1TimeBonusInPercentage()","47492352":"ROLE_PAUSE_ADMIN()","474a5a09":"AssetBackedToken(uint256,string,uint8,string)","474a88cb":"failsafe()","474b2541":"setRevision(address)","474bbab2":"calculateTokensToSend(uint256,uint256)","474c0868":"getActiveBuySize(bytes32)","474cdca2":"countTotalInvestors()","474ce368":"Computer()","474ce872":"promisee()","474ceb4d":"setCrowdsaleDate(uint256,uint256,uint256,uint256)","474d904b":"totalTokensWithoutBonuses(address)","474da79a":"contracts(uint256)","474e9e74":"MaxICOSellSupply()","474ea7e9":"Cyrus()","474f067f":"setType(bytes32,string)","474fa131":"extraMintArrayPendingProcess(uint256)","47516910":"FileHash()","4751757a":"Metronome()","475289da":"numberOfMoods()","475297bc":"closeBets(bytes16,bytes16,uint256,uint256)","4752a3ce":"StdUInt32(uint32)","47535d7b":"isOpen()","47540b31":"setTeamAddress(address,address,address)","4754a311":"StatusContract()","4754d136":"rerollFee()","47556b73":"isSuperInvestor(address)","4757ace4":"milestoneCompleted(uint256)","4757f1d2":"redeemAllOutcomes(uint256,uint256)","47582291":"totalstakeamount()","4758871d":"FOUNDER_EXCHANGE_RATE()","4758b9cd":"checkNumber()","47593ae7":"oldPrice()","475a2ac6":"mainSale(address,uint256)","475a9fa9":"issueTokens(address,uint256)","475abbb7":"PLATAMOUNT()","475b54c9":"AdvancedOwnable()","475b723a":"setRate362()","475c051d":"grantPermissionBatch(address[],string)","475c3001":"FinishTokenSale()","475c420c":"setHelpMeTokenParts(address[])","475c578c":"walletPercentage()","475c5ed1":"contributedToSTO(address)","475c7605":"ImpeachmentSupport(address,uint256)","475ca435":"get_record_by_row(uint256)","475d41f9":"SISKCoin()","475d599b":"wolf2Balance()","475e0062":"RoundEnd()","475e4c0f":"buscarDocumentoPorHash(bytes32)","475ec95a":"PRESALE_MINIMUM_FUNDING()","475fd055":"supplyLeftAtOrigin()","4760eee3":"getStartersProxyAddress()","47615fa1":"RankScore(address)","47625694":"getPerformance(uint256)","476343ee":"withdrawFees()","47635dac":"transferContract(address)","4763e3fe":"LOG_ZeroSend()","4766551d":"getExCoins()","47665ae8":"setMaxEthPerAddress(uint256)","4766ae68":"RareToken()","476711cb":"currentPeriodEtherCollected()","4767aeec":"_getaward(uint256)","4767d305":"EventCreateRisk(address,uint128,uint256,uint256)","476810b5":"ico1Min()","4768136e":"MelonWallet()","47683f00":"isInTier2(address)","47688c74":"userAmount()","47695e60":"MENTORS()","4769ed8f":"buyFromRC(address,uint256,uint256)","476a29e2":"pauseStateSwithcer()","476a4558":"DigitalMaterai(uint256)","476a73ec":"transferEthToMultisig()","476aa607":"saleHardCapReached()","476b7e3b":"readyToFulfill()","476c089a":"finalyze()","476c494c":"newAnswer(uint256,uint256)","476c9f41":"SecurityToken(string,string)","476d7c13":"userToNumCities(bytes32)","476e04c7":"NewMessage(string)","476e4aa4":"Remove(uint256)","476e6172":"getCurrentPlayer()","476fe919":"setReleaseTime(address,uint256)","4770ca3c":"AddBTCTransactionFromArray(address[],uint256[],uint256[],bytes4[])","47722218":"setKycAdmin(address)","4772eb77":"callDisableCallback(string)","47734892":"getUserBalance(address)","4773e0be":"didCloseLoan(bytes32,address,bool,uint256)","4774027c":"changeOffchainUploaderAddress(address)","477492dc":"MAIN_COIN_PER_ETHER_ICO()","4774ef06":"forwardGas(address,uint256)","47751b98":"validUpgradeId(uint256)","477523c2":"flushERC20(address)","47767c5d":"CRYPTOZOLToken()","4776ed69":"AngelTokensHolder(address,address,address)","477721e9":"FrozenContract(bool)","4777338c":"lastPricePaid()","4777c1f4":"setUnownedPriceInEth(uint256,uint256)","4777dbcf":"EternalStorageProxyForStormMultisender(address)","477801b1":"getLastRoundResults_by_index(uint256)","47786d37":"setCap(uint256)","47786f51":"HODL()","4778a5be":"orderSubmitted(bytes32)","4778dfb8":"balanceById(uint256)","47799da8":"last()","4779fad9":"setMentorsTokensPercent(uint256)","477a0eb3":"removeAtIndex(bytes32[],uint256)","477a7042":"getCanvasState(uint32)","477adb83":"eggtracker()","477af741":"firstMaxAmount()","477bda31":"qnt10k()","477bddaa":"setContractAddress(address)","477cdbb5":"create(uint256,uint256,uint256,address)","477ce277":"cost(address,uint256,bytes,bytes)","477d47b5":"viewPreSaleRefundsInMainSale(address)","477d6c6c":"_emitBoardCreated(uint256,bytes32,bytes32,address,uint256,uint256,uint256,bool)","477eab0a":"taxman()","477fe4e6":"payForTask(uint256)","477ff120":"addTokenAddress(address,address)","47803e97":"tokensOnHold()","4780eac1":"wethContract()","47810b3e":"LTY()","47816131":"EphronTestCoin(uint256,uint256,uint256,string,string,uint256)","4782f6fc":"removeOwners()","4783c35b":"multisig()","478573ca":"getMainWallets()","47858c79":"finalizedUpgrade()","478609f7":"mintTokens(int256,address,uint256,uint256)","4786cfea":"_estimateSupply(uint256,uint256,uint256,uint256)","47872b42":"unsealBid(bytes32,uint256,bytes32)","4787513a":"tokenHoldersCount()","4787e261":"calcQuickPromoBonus(uint256)","47883fd9":"product4_luckybuyTracker()","4788cabf":"getContractId()","4789aaef":"EthereumDice()","478aa69e":"unauthorizeUser(address)","478ae93c":"playToWin(uint256)","478b2f8b":"trieValue(bytes,bytes,bytes,bytes32)","478bdce2":"WinningNumbersEvent(uint256,string)","478c4238":"p_update_mResalePlotOwnerPercent(uint256)","478c4e0e":"resetData()","478cd032":"getLevelAmount(uint256)","478d2136":"proposalsByShareholder()","478db7e7":"getDataTrackingParameters(uint256)","478e25bf":"resetAction(bytes32)","478e7d7f":"getSponsorableJobs()","478f0735":"Jamatoken()","478f796a":"ownersWallet()","478f7b52":"mainSaleMinPaymentWei()","478f7eca":"CnytCoin()","47913dfe":"staticArrayChangeValue(int8,uint256)","47923d6f":"_addDividendsForAddress(address)","479245bb":"_transferOwnership(address,address)","4793017d":"stageLending()","47930567":"hashPosition(uint32,int64[2],bytes16)","4793504e":"Divider(uint256)","4793cebe":"allocateRemainingTokens()","479487e3":"getCar(string)","479564d5":"getAssociatedTAOSettingDeprecation(bytes32)","4795ac60":"collectPayment(uint256)","47963cf8":"COINEIUM()","47966bc2":"spam()","4797debe":"approveAmountAndSetFirstUseTime(uint256,address,uint256,uint256)","4797f21b":"setLog(address)","479834ca":"generateRandomMonster(uint8[14],uint32)","4798a2e3":"limorico()","47992b25":"DST_RESERVE()","479a4ae9":"isSHA256HashRegistered(bytes32)","479a5d53":"setOtherMigrationSources(address[])","479ad4c3":"removeListing(uint256)","479b321e":"CyberCash()","479ba3a5":"_resetPlayRound()","479ba7ae":"rewardsOf(address)","479d29f4":"BiyuleCoin(uint256,string,string)","479e24e6":"setNewInvestCommission(uint256)","479e393c":"getBettingStastics()","479e840f":"playValue()","479ed225":"getMyGameCompleted(address,uint256)","479f8d33":"threeHotHoursDuration()","479fb784":"approveBalancesWaitingKYC(address[])","47a08955":"_Deposit(address,address,uint256)","47a0fd7e":"shieldsUp()","47a11f26":"lIKETOKEN(uint256,string,string)","47a1a2d6":"usdCollected()","47a21679":"sellKeys(uint256,uint256,bytes32)","47a21eda":"buySharesFor(address)","47a22ca4":"devChangeMiningReward(uint256)","47a34bcb":"getBlockMaxVotes(uint256,uint256)","47a36afd":"totalFeeFlows()","47a42ff7":"buy_sale()","47a5046a":"isKYCRequiredToReceiveFunds()","47a5b1b3":"addApprovedContractAddress(address)","47a64f44":"lockAccount(address)","47a66b57":"addUserEndorsement(address,bool,string,string)","47a68cd4":"EOSBetDice()","47a69105":"NewSmartSharingContract(string,uint256,uint256,string,string,string,string)","47a69dfd":"Vegetoken(uint256,string,uint8,string)","47a6e601":"getATMHoldersNumber()","47a7aad5":"_vest(address,uint256,uint256,bool)","47a8205f":"privateWeiRaised()","47a90325":"maxCapEcosystem()","47a98ed2":"WithdrawFailed(address,uint256,bool)","47a99264":"setBwServiceValidCaller(address)","47a9fd81":"rob(address)","47aa7cd4":"setPoolStatus()","47aaf4eb":"resetOldAndSetNewDiscounts(uint256[],uint256[])","47ab58ec":"valuationAndCutOff()","47ac704f":"oldTokenSale()","47ad396b":"setFundingRules(address,uint256,uint256,uint256,uint256,uint256)","47aee603":"DIW(address,uint256)","47aef0a9":"battles()","47af954d":"creationAddress()","47af9957":"pauseTransfers()","47afa4e4":"change_pre_ico_start(uint256)","47b24f15":"LavaWallet(address)","47b272c0":"startMining(uint256)","47b27b8b":"unblockTokens(address,address,uint256)","47b27fd0":"testIsComplete()","47b3aff8":"bundles(uint8)","47b40ba2":"betFreeGame(uint256,uint8)","47b47102":"bakeCookie(string)","47b4e272":"depositBTC(address,uint256,uint256,bytes32)","47b4f943":"canmint()","47b55a9d":"pendingWhitelistAddition()","47b5acfd":"getProposalPublishedAt(bytes32,bytes32)","47b5dd54":"burnedTokens()","47b60ec0":"investorsGrantsAmount()","47b64eb0":"setServerAddress(address)","47b6ab59":"Token(address,uint256,string,string,uint8)","47b7142b":"safeSubtrZJF(uint256,uint256)","47b72b89":"getdeptmembershipstatus(uint256,address)","47b79a31":"remainingTransfered()","47b79a40":"manVault(uint256)","47b82bec":"FUTURAX()","47b84579":"getCompte_30()","47b87e48":"GetSaleInfo(uint8)","47b8b30b":"toCancel()","47b950b6":"setWorkerDtPort(uint256)","47b989af":"MyReferrer()","47b98c2e":"RDWToken()","47ba65d2":"get(bytes8)","47bafa82":"refundingComplete()","47bb0613":"deactivateContract(address,address)","47bb159d":"getByFromAndToCount(uint256,uint256)","47bb1883":"computeReward(uint256)","47bb89f0":"balance(uint256)","47bba01d":"inactivateSelf()","47bbe867":"purchaseMembership()","47bc1f94":"tokenSaleSupplyRemaining()","47bc3e51":"mintBounty(address[],uint256[])","47bc7093":"removeIssuer(address)","47bda66d":"createAMIS(address)","47bdb7f4":"transferDisable(bytes20)","47bdc8b4":"oraclize_query(string,bytes[5],uint256)","47bdeedf":"getPlayerUsableTokensCount()","47be11ae":"addArrayItem(address,string,string,uint256)","47be7bce":"formulaPrecision()","47bf7924":"ClaimSHIT(address,uint256)","47c05c22":"massSending(address[])","47c0ea6b":"_invest(address,uint256)","47c1303a":"MeetsOne()","47c14648":"claimTokenReserveLife()","47c17bac":"getMonsterDexSize(address)","47c1b5cf":"setGGEFee(uint8)","47c1caff":"getDividendsOf_(address,bool)","47c23bff":"setproduct(string,string,uint256,uint256)","47c3114e":"OpenContract()","47c35910":"authorize(address,address,uint256)","47c3ebf3":"is_presale_open()","47c421b5":"changeOracle(address)","47c51f73":"VisibilityDemo()","47c55045":"transferTokensFromTeamAddress1(address,uint256)","47c66140":"getProposalVotes(uint256)","47c6ecc0":"TokenFrozen(bool,string)","47c705b9":"Update(uint256,address,address,string)","47c7b6e2":"initEthDeal(bytes32,address,bytes20,bytes20)","47c7e6a8":"getAssetPackName(uint256)","47c81699":"set(string,string,uint256)","47c81f22":"TTT(uint256,string,uint8,string)","47c848e4":"_toPct(uint256,uint256)","47c85634":"setEmergencyWithdrawAddress(address)","47c8771c":"rsVerifyPoint(uint256,uint256)","47c8cc69":"getCurrentTDEBonus()","47c8efa7":"name1()","47c9301f":"erc20MRL(uint8)","47c98521":"rewardTheWinner(uint8)","47c9f9e8":"getNextTimeAirdropJoin(address)","47ca16a2":"setMaximumClaimPriceWeiRP(uint256)","47ca78d7":"paymentFallBack(address,uint256)","47cade2b":"unlockPublic()","47cb1b35":"getDailyJackpot(uint32)","47cb7a68":"timeLeft(uint256)","47cbc4f1":"HasNoElement()","47ccca02":"nft()","47cd3fda":"removeTransferRate(address)","47cda525":"TribeProducts()","47ce07d7":"NewPassManager(address,address,address,address)","47cf6f76":"isVotingActive()","47cf7e1d":"calcDoubleBindedBlindHash256(string,address,address)","47cfbaf4":"DMDPangea()","47d01637":"ProofOfCommunity()","47d04c71":"getWithdrawCount()","47d0dd3c":"COPIthereum(uint256,string,string)","47d1045f":"setNextSeedHash(uint256)","47d137c5":"unFrozen()","47d1d135":"setPixelColor(uint256,uint32)","47d20373":"stages()","47d289a9":"setDapCarToken(address)","47d3856a":"awardPot(string,uint256)","47d38af4":"NaNoDigitalToken()","47d3def9":"listAddress(address,uint256)","47d3ed10":"newDepositContract(address,address)","47d4106f":"CryptoSagaArenaRecord(address,uint8,uint8)","47d42c73":"PaymentStatusBlockNum(address,address)","47d52d86":"getMessageValue()","47d54bff":"finishedAt()","47d5d5b5":"ERC721TokenMock(string,string)","47d690b4":"limitDateCrowdWave1()","47d6cd6b":"_airdropAmount()","47d70f74":"icoEndBlock()","47d8167d":"buyBack(uint256,uint256)","47d83127":"sendFrom(bytes32,address,uint256)","47d84bab":"MultiSigStub(address[],uint256)","47d8fcb3":"emergencySetABackend(bytes32,address)","47d98eb4":"QUASI()","47d9b0aa":"FXTOKEN()","47da115a":"changeETH2Token(uint256)","47daf09c":"SmthToken()","47db0a24":"buyCreditsAndSpend(string,uint256,uint8,address,uint256)","47dd33fb":"VerumToken()","47dd5138":"EPSBets()","47dd5172":"perAddressCap()","47ddb165":"HODLIT()","47ddf87e":"allTimeJackpot()","47de074f":"getNodes(uint256)","47de3b76":"addSubmittal(bytes,address)","47df1cff":"callTokenTransferFrom(address,uint256)","47e0d54a":"winningTickets()","47e122dc":"earlyBirdTokenRate()","47e17101":"PRIZE_TOKENS()","47e17349":"addBonuses(uint256)","47e1d550":"getGameInfo(uint256)","47e20183":"point(address)","47e2688d":"getFinalSupply()","47e271b8":"getWeeklyLotteryParticipants(uint256)","47e2a6f9":"GetSellingTokenSymbol()","47e2b978":"RESERVED_COMPANY_UNLOCK_AT()","47e2d3f5":"zeroInt()","47e40553":"nextRound()","47e46806":"toString()","47e4ddf2":"createFreeze(uint256,uint256)","47e4e65e":"INFLIV()","47e51d38":"getConfigs(bytes32[])","47e57351":"withdrawTokensFromKingWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","47e5912a":"decreaseTokens(address,uint256)","47e5bec3":"closeTransaction(uint256)","47e60236":"setICOaddr(address,bool)","47e621b7":"backingToken()","47e6924f":"sanityRatesContract()","47e74409":"leadingGang()","47e7bce6":"roundStartedTimestamp()","47e7ef24":"deposit(address,uint256)","47e81c5f":"setBuildingContract(address)","47e87fcd":"maxSaleBalance()","47e9633c":"PaymentAuthorized(uint256,address,uint256)","47e99232":"doRebuy()","47ea13df":"setCurrentOwnerFeePercent(uint256)","47eacc78":"rateAngel()","47eafefc":"mainStartTime()","47eb86f1":"changeTokenPrice(uint256,uint256,uint256)","47ec8138":"transferWithLock(address,uint256,uint32)","47ec8d82":"AltSocialAccountPw(bytes32,bytes32,bytes32)","47ec8e21":"be()","47ecb665":"telegram()","47ed0112":"setAddressFundReferal(address)","47ee0394":"addToWhiteList(address)","47ee0a69":"decreaseApprovalInternal(address,uint256)","47ee2992":"COINS_PER_ETH()","47eeb75f":"claimMethodABI()","47eed11e":"test_fourInvalidFalseEqLog()","47eef00a":"issueUnsoldToken()","47ef01a1":"deleteRegion(uint256)","47ef55fe":"buyCore(uint256,uint256,uint256)","47f03d0b":"getFallbackDeposit()","47f07880":"ChatLinkToken()","47f1d8d7":"minBalanceForAccounts()","47f2748a":"getMixerTypes()","47f280aa":"DefaultToken(string,string,uint256,address)","47f3d794":"configure(uint256,uint8,uint256,uint256,uint256,uint256)","47f3dde5":"rewards(address,address,uint256,uint256)","47f4034a":"getUnitJadeStealingIncreases(address,address,uint256)","47f5666f":"getSanIdFromName(string)","47f57b32":"retract()","47f61a47":"Habits()","47f66790":"addThing(string,string,bytes32,bytes32)","47f66d15":"bestPromouterInfo()","47f67eab":"setActionPrice(string,uint256)","47f710a7":"free_transfer()","47f7af67":"sealdate()","47f7b304":"ownerApproves(uint256)","47f7d412":"withdrawFrozen()","47f8b863":"getNextCutoffTime()","47f95923":"alterPeerToPeerMarketplaceTransactionFee(uint256)","47f980e5":"claimTokenAddress(address)","47f9aa9f":"auditors(address)","47f9c371":"Proof_of_Stake()","47fa061e":"deposited(uint8,address)","47fa15e2":"ICOSuccess()","47fa1cbd":"evIssueManagementFee(address,uint256,uint256,bool)","47fa5648":"Minewar()","47fafe7d":"setAccountProvider(uint8,address)","47fb0bed":"checkSender()","47fc216e":"getEventsLength()","47fc4306":"contractWithdraw()","47fc822f":"setTargetContract(address)","47fdbfb7":"StageChanged(string)","47fee755":"getGeneralAttr(uint32,uint8)","47ff6d7b":"buildId(address,uint256)","480111b0":"potShare(address)","4801206e":"OodlebitToken()","480140ca":"checkSidePledge(uint256)","48016c04":"assertEqDecimal(int256,int256,uint256)","480184a9":"getNewToken(uint256)","48025070":"setGivenReadings(bytes32,bool,bool)","48027610":"transferPaidOut(address,address,uint256)","4803724e":"removeLock()","4803b482":"UpdatedBlockingState(address,uint256,uint256,uint256)","480443b7":"validateBSM(string,address,uint8,bytes32,bytes32)","4804a623":"getflag()","4804e06f":"firstStageMintingDate()","4804e1a2":"transferBlocked()","4804e2a5":"WalletConnector(uint256,address)","4805b069":"NCRToken()","4806249e":"badgerWallet()","4806a0bd":"declineTradeOffer(uint256)","4806b2d2":"getPoolPrices()","4807270b":"cancelOffer(uint16)","480744e0":"setOwnerAsAdmin()","4808bf1c":"paymentsByCustomer()","480a434d":"baseprice()","480b1f21":"rateWin()","480b70bd":"scheduleCall(address,bytes4,uint256,uint256)","480b890d":"setPercentRate(uint256)","480b9122":"DebugClock(uint256)","480b9707":"updateSecondWallet(address)","480bc31f":"getTotalPot()","480c6ca5":"getTokensIssued()","480d3b2f":"manualCheckInvestmentRequired(uint256,uint256)","480d7504":"getMineTokenAmount()","480e2f8e":"LastContributorChanged(address)","4810034a":"AirDropper(address[],uint256[])","48103077":"set_tokens_received()","48107843":"getNextCallSibling(address)","4811647c":"withdrawTip(uint256)","4811af4a":"preIcoMax()","4811c070":"team1Address()","4812663f":"nAuditorsRequired()","4813d8a6":"isAllowedToMint(address)","4813e3e5":"halvingCycle()","48144ef6":"BillHenryTestCoin()","481456f9":"probability()","48146113":"userDeposit()","48146341":"updateMaxGasPrice(uint256)","481531e9":"FeeToken()","48156d9c":"Loss(address,uint8,uint256,bytes32,bytes32,uint256)","4815ccea":"confirmAndForwardOnBehalfWithRevert(address,uint256,bytes,bytes32,uint256[2],uint8[2],bytes32[2],bytes32[2])","4815d4a9":"SECOND_SUPPLY()","4815d83f":"setBountyTeamUnfreezeTime(uint256)","4817c3e2":"_modifyTopUpLimit(uint256)","4817db70":"approveAndCall1(address,uint256,bytes)","4819d270":"approveRobot(address,uint256)","481a3fc4":"close(address,uint256,uint256)","481a4f2a":"fundLockTransferFrom(address,address,uint256)","481ae5d0":"setColdLedger(address)","481af3d3":"kittyIndexToApproved(uint256)","481b3dbb":"CentsToken()","481b659d":"permitPermanentApproval(address)","481c6a75":"manager()","481d3bd5":"setRegionUpdatedAt(uint256,uint256)","481dbaa4":"amountWithTip(uint256)","481ed14c":"YetAnotherUselessToken()","481ef4fd":"getAdPriceDay()","481f9555":"ALLOC_SC()","481fb72a":"numRentStatuses()","481fcbf4":"ApolloCoinTokenSale(uint256,uint256,uint256)","4820059f":"setDisallowedForMinting(address,address)","482076b6":"preICOHolders(address)","4820946a":"getContributorRemainingSaleAmount(address)","48224f67":"SUPPLY_FOR_SALE()","4822d008":"hexControllerAddr()","4825fc0d":"_ownerWallet()","48261921":"getLotteryPrizeInfo(uint256,uint256)","4826a425":"sub_codicefiscale(string,uint256)","4826e9c5":"UTC2MYT()","482717a4":"GetAddrCallQty(address)","482769f3":"distributeFunds(uint256,uint256)","482871ed":"_transferSigner(address)","4828a833":"MultiTransfer()","4828f4a2":"recover(uint256,uint8,uint256,uint256)","48293aae":"showKeys(uint256)","482961e1":"updateReading(uint256,uint256)","4829b393":"Tombola()","482a0bc9":"computeTokenAmountAll(uint256)","482ae8a2":"lastBlock_v8Hash_uint256()","482b27c9":"GetAdminAddress()","482ccedd":"_payFees(address,uint256,bytes4)","482d3af0":"allOwnerOperations(address)","482d51e0":"startNewGame()","482d7d5a":"_mine(uint256)","482da403":"buyme()","482f63b0":"postMessage(bytes32,bytes)","482fbae2":"_resultToRoll(string)","4830868b":"setPrWallet(address)","4830d5d9":"removeRestriction()","4830e266":"buyReferral(address)","4830e636":"setFreeClaimAllowance(address,uint256)","4830fd5f":"TotalLose()","48318cbc":"newIdTankProduct()","48330262":"priceIncrease_20_January()","48330cf6":"updateAvailability(uint256)","48335238":"FrozenFunds(address,bool)","48338323":"getRanomSecret()","48338756":"withdrawArbFunds()","4833c47c":"getTokenByBid(uint32)","483699f4":"tokensFor1EthP6()","4836f823":"salesRates(uint256)","48370565":"tradeValue(address)","4837715a":"___initialize(address,address,address)","48378eea":"getBool2()","4837e2fa":"amountOfLegs()","48389870":"cutToInvestorsDividendPool(uint256)","4838d165":"blackList(address)","483a15ed":"getManagerFor(address)","483a20b2":"setCrowdsale(address)","483a6cf9":"transferForExchange(address,uint256,string)","483a83df":"setKYC(address)","483b04e3":"angelExchangeRate()","483b1a76":"isInPassFilter(address)","483ba09e":"setBitcoinBridge(address)","483c8400":"MIN_FUNDING()","483c8abd":"UpSuccess(string,address)","483d31e9":"sfc(uint256,string,string)","483d45bd":"getProvider()","483d8b77":"onehour()","483e3956":"killPoll()","483e7872":"changeRealZipper(address)","483ea316":"bindOrderStakes(address,int256)","483eef18":"comminglerSellsProductSKUWithProRataIngred(address,uint256,string,uint256,string,string)","483f1b18":"MigratedTokens(address,uint256)","483f31ab":"consume(uint256)","483f5082":"getPriceTicket()","483f69c0":"HPToken()","483fa94b":"placeorder(uint256,uint256)","48401f1a":"joinBytes(bytes,bytes,bytes)","48403ad4":"preICOtokensSold()","48410f80":"hexToString(bytes32)","48419aed":"tokensRemainingStage1()","484293a7":"VertexCoin()","4842f639":"setBreedingAddr(address,address)","4843b358":"withdrawalsAllowed()","484412e5":"A5DToken()","48447983":"QiMingCoinToken(uint256,string,uint8,string)","4844f367":"placeBet(string,string)","484595fa":"encode(uint256,uint256,uint256)","4845d3f8":"closingTimeExtensionPeriod()","4845d40c":"withdrawATokens(address)","4846f559":"getIsWinnerSelected()","4847a79c":"_transfer(address,uint256)","48481979":"getHorsey(uint256)","48481b8a":"ElepigCrowdsale(uint256,uint256,uint256,address,uint256,uint256,address,address,address)","4848b1a5":"setData(uint256,uint256)","484916a3":"NewInvestor(address,uint32,uint256)","48498729":"_fetchOrdersForPayer(address)","484b8d33":"setWalletAmount(address,uint256)","484b973c":"ownerMint(address,uint256)","484c4056":"Redeemed(address,uint256,uint256,uint256)","484c8675":"allocateTokens(address[])","484c98af":"supplyAtIndex(uint256)","484cb173":"MiddleClass()","484db63f":"firstRate()","484dd086":"preFundingStart()","484dd472":"shobozilToken()","484ec26c":"onPayout(uint256,uint256)","484eccb4":"lastGen0SalePrices(uint256)","484f4bc0":"noStoresSet()","484f5a61":"GetChallengeInformation(uint256)","48509d2c":"updateCapsAndRate(uint256,uint256,uint256,uint256)","48519189":"MonedaAlcala(string,string)","4852a273":"setWhitelistStatus(address,address,bool)","4852e54b":"SolarNA(address[],uint256[])","48538112":"totalRaisedAmountInCny()","485458a1":"GetContractStageTermination()","48546971":"closeIco()","4854bde0":"pvt_plmt_set()","485587a2":"employeePoolTokens()","48558be7":"getOnTokenTransferValueValue()","48560630":"bonus3Ends()","4857d52d":"setLiquidityParams(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","48582a2a":"units40percentExtra()","48593bae":"getEnumValue()","48594f43":"powerAddr()","4859f430":"registerVehicle(string,string,uint8,address)","485ac9fd":"_canSetGameOver()","485c5e96":"generateTokensAll(address[],uint256[])","485cc955":"initialize(address,address)","485d5d7b":"TSTORZCv1()","485d5dd2":"DayInSecs()","485d7d94":"removeAuthorized(address)","485d992c":"getDoc(address)","485dc6cf":"create21KittiesTokens()","485e16a5":"summReserve()","485e35d3":"updateWhiteList(address,address,bool)","485e82d7":"tokenIdsForTeam(uint32)","485f2ce3":"AccendiCassaAutomatica()","485f7a7e":"preSaleAllotment()","4860165c":"destroyIdentifier(bytes32)","48601a7d":"getTxnNum()","486083fe":"itemLottery()","48612fc0":"IAHCToken()","486201ab":"deapprove()","48624e44":"ATTPlaceHolder(address,address,address)","4862e650":"setVerificationCodeHash(string)","48636254":"setWhiteBacker(address,bool)","4863ba17":"setLibraryAddress(address)","4863ed97":"setCoins(address,address)","48640aba":"phase1WeiRaised()","48642e21":"bleachDailyLimit()","4864d140":"baseAmount()","4864d8d9":"activeStage()","48650338":"withdrawDividends(address)","48655faa":"setMintingOracle(address)","486575a5":"reducePledgedFees(uint256)","4865a24a":"strToBytes(string)","4865c7bf":"timeInfo()","4866352b":"scrapCounter()","48664c16":"transferPreSignedHashing(address,address,address,uint256,uint256,uint256)","4867ec4f":"decodeParamOp(uint256)","4868204b":"FundTransfer(address,uint256,uint256)","48686205":"DevConSchoolReward()","48688367":"fundMintingAgent()","4868ab47":"Yumerium()","4869687b":"getAgreedMediators()","4869854a":"StfuTokenCrowdsale()","486a03e0":"approveMappingProposal(address,address)","486a7e6b":"burnAmount()","486b7217":"getnumber()","486c182c":"minAcceptEther()","486c363d":"_transfer_token(address,address,uint256)","486c50f3":"getDiscountHourglass(bytes32,uint8)","486d6aa8":"factorReward()","486de794":"_pay(address,uint256)","486e66da":"hungry(uint256)","486e97ad":"VLUToken()","486ea48d":"Nodes()","486fc7e8":"tokenOwnership(address)","48700c7c":"EVEN()","48709183":"bountyBeneficiariesCount()","4870b81d":"transferToWallet()","4870dd9a":"PERCENT_DIVISOR()","4871052b":"LogSignature(address,bytes)","48719120":"renewFarmerCertificate(address,uint256)","4871c4c1":"ownerWithdrawTo()","48724227":"KickOwned()","487260bb":"startBlockBonus()","487269fb":"VLCToken()","48727dca":"TradeBitToken()","4873c721":"_remainingBlocks(address)","48749616":"getPoolInformation()","4874a41f":"Tfarm()","4874e62d":"concat(string,string,string)","48758697":"getRarity(uint256)","487621cc":"addNewbond(uint256)","4876a339":"accept1(uint256,uint256)","4876f3e5":"comfirmRedeem(uint256)","48794149":"credosReserveAllocation()","487a5057":"getGameStart(address,uint256)","487a6e32":"deliver(uint64,bytes32,uint64,bytes32)","487a8043":"receiveApproval(address,uint256,address,bytes,bytes)","487a9e27":"USD_CAP()","487cd86f":"right34(uint256)","487e1d1f":"getNameOfAddress(address,address)","487f3f06":"team_address_count()","487ff8b6":"winningaddr()","48803406":"removeFundAccount(address)","48807db1":"getPI_edit_12()","4881148e":"safeGetPartialAmountFloor(uint256,uint256,uint256)","4881ae73":"add(uint16,uint16)","48823786":"allstocksFund()","4882419d":"isEpocum()","48839789":"ProofOfAIDS()","4883b6ce":"CryptoTorch()","4883c9dc":"prevHodlers()","48849c5a":"blockTransferFrom(address)","4884f459":"buyListing(uint256)","4885b254":"batchTransferFrom(address,address[],uint256[])","4885d732":"TokensAllocated(address,uint256,uint256)","488683f3":"_Token(string,string)","48868ac8":"sanityCheck(bytes32,bytes32)","4886d2d5":"setIsOver(bool)","48870630":"abi()","488725a0":"versions(address)","48887c8b":"setFreeAlien(uint16)","48889813":"mintedPercentOfTokens()","4888c619":"cryptocompareBtcOracleUrl(bytes32)","48894ad6":"FiveBalance()","488981cd":"countCourse()","4889ca88":"receiveApproval(address,uint256,address)","488a24c6":"isWalletContract()","488a6705":"AddConsentData(uint256)","488ab2c0":"TOKEN_EXCHANGE_RATE()","488b3538":"shares(address,bytes32,int256)","488b380b":"setLpIsStart(bool)","488bfa0b":"claimPaymentTokens(address,uint256)","488c1709":"setRefundAgent(address)","488c65fc":"stakeWithSignature(bytes32,uint256,uint256,uint256,uint256,bytes)","488c7951":"abstractFn(uint256)","488cec69":"tokensAreAvailable()","488dc208":"updateUrl(address,bytes32[5],address)","488ede8b":"getUserRating(address,address)","488f1e43":"getSellingInfoByIndex(uint256)","488f231f":"createAssociation(uint256,uint256)","488f3b6a":"tryCloseRoom(address,uint256,uint256)","488fdb81":"buyFrom(string,address)","48900438":"getAllowedAmountAndPendingPeriods(address,address,bytes32)","48906c27":"evaluateMany(address,uint256,uint256[],uint256[],uint8[])","48916211":"checkSigs(bytes32,bytes32,uint256,bytes)","48917d5d":"lastDrawTs()","4891c06a":"contributionPool()","4891f401":"PRICE_1()","4892f0af":"tokenPorter()","489306eb":"oraclize_query(string,string)","48931352":"TOTAL_SUPPLY_CAP()","4893de2a":"rewardUnicornAmount()","4893ed5b":"proposedUserKeyPendingUntil()","48940815":"doTriggerJackpot()","48941312":"CoinAdvisorCrowdSale(address,address,uint256,uint256)","4894e37f":"__callback(bytes,string,bytes)","48957fb8":"getAyantDroitEconomique_Compte_4()","4896672e":"updateSalePrice(uint256,uint256)","489667e6":"_isSynthesizingAllowed(uint256,uint256)","489807a5":"Donate(uint256,uint256)","4898556e":"SaleStopped(address,uint256)","4898722d":"setSink(address[],uint256[])","48989182":"ethMax()","489979a3":"allocateTopupToken(address,uint256,uint256)","4899e4c6":"addrDistribution()","489acecc":"requireMultiple(uint256)","489b1636":"icoPhaseCountdown()","489b5046":"GetBankerCandidate(uint8)","489ba092":"setNameLink(string,string)","489c1202":"isGuard(address)","489c14fd":"pathAdvisorVault()","489c18b0":"getLocksLength()","489d2104":"changePaymentContract(address)","489d2844":"notifyBuyToken(address,uint256,uint256)","489d426e":"ratePreSale()","489da639":"COIN_SUPPLY_COMPANY_TOTAL()","489e5656":"MAX_CANVAS_NAME_LENGTH()","489f3c88":"ping(address,uint256,uint256,uint256)","489fde35":"setEnforce(bool)","48a0c8dd":"isDepositable()","48a0d754":"available()","48a0fa29":"toggleTokenExchange()","48a15250":"setBurnRequestUintMap(uint256,string,uint256)","48a16b8c":"_itoa(int256,uint8)","48a1befb":"UserFactory(address)","48a3cbdf":"fundTeam()","48a46bd3":"isRejected(address)","48a490fb":"transferFromTreasury(address,uint256)","48a50a54":"saleClosedTimestamp()","48a54fc5":"checkContract(bytes32)","48a5d7bb":"AssetPool(address,uint256,uint256,uint256,uint256)","48a60b6c":"getPlayerBets()","48a73e96":"getFreeNapkins()","48a76740":"TokenData(uint256,uint256)","48a7f1f9":"proposeOfferingContract(address,address)","48a860dd":"confirmTransactionAfterExpiryFee(uint256)","48a87fa8":"emptyTTT()","48a8b427":"calculateShareCrystal(uint256)","48a935e2":"setIndividualCaps(address[],uint256[])","48a9866b":"kill(address,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","48aa71f4":"isInCrowdsale()","48aac336":"getNumberOfParticipantsPerLevel()","48ab41d3":"getPOOL_edit_3()","48ac0f3c":"CORPORATE_SUPPLY()","48acce46":"ponziAddress()","48acd9b1":"changeFeeAccount2(address)","48ad5cd0":"product3()","48adfbdb":"getModerator()","48afc0fe":"FOMO3DLite()","48afd1b3":"hasReturns(address,uint256)","48afe4f5":"currentPersonalLimit(address)","48b15166":"blockTime()","48b17b64":"currSaleComplete()","48b24b88":"IAM_PER_ETH_BASE_RATE()","48b43020":"_setDistrictAddresss(address,address)","48b45d92":"isRequestApprove(bytes32)","48b49fa7":"buyGem(uint256)","48b4d3a4":"EmitTransactionIds(uint256[])","48b52c7d":"_transferFrom(address,address,uint256,string)","48b537ce":"MaggieToken()","48b5677f":"delegatedSignedRemittance(bytes,address,address,address,uint256,uint256,uint256)","48b59dd6":"changeCourse(uint256,uint256)","48b5b15c":"testHasCorrectPriceForMultistage()","48b5de18":"setEscapeHatch(address)","48b741de":"greaterPriceMsgComparator(uint256,uint256)","48b75044":"release(address,address)","48b84cde":"testCreateElectionOptions()","48b8ff83":"tokensForArtist()","48b9ed30":"getdisdone()","48b9f88f":"blockDiff()","48ba2d51":"LogBidRewardClaimed(uint256,address,uint256)","48bafd0e":"newGame(string)","48bb4067":"teamIssuedTimestamp(address)","48bb4347":"_checkOpenings()","48bc2a21":"bonusSecondIco()","48bc3e2a":"twoStepRate()","48bc4edf":"startAndSetParams(uint256,uint256)","48bd64c0":"getArrayHashLibry(bytes16)","48bdaaff":"TradeStatus(address,address,uint256,uint256)","48be4030":"INDToken()","48beae6a":"kkTestCoin1()","48bf51f5":"setInterestRatePunitory(uint256)","48bf9179":"Extradecoin(address,address)","48bf9cea":"serialNumberIsUsed(string)","48c0b782":"intermediariesCount()","48c0dc5b":"Inonit(uint256,string,string,string)","48c1ee9b":"wadmin_transferOr(address)","48c20a24":"getChildsAmount(address)","48c22f3f":"RateClient(uint256)","48c26e22":"purchaseRate()","48c2f845":"purchased_tokens()","48c40dbd":"transferTokensThroughProxyToContract(address,address,uint256)","48c44712":"refundERC20(address,address,uint256)","48c4cae9":"setNameReaderId(bytes32,bytes32)","48c4d7ce":"descendingCount()","48c54b9d":"claimTokens()","48c5be67":"numDistributionsRemaining()","48c6af04":"test_oneInvalidEqString()","48c6e2f7":"BaoFengCheng(uint256,string,uint8,string)","48c7a0bf":"SharePrice()","48c7f438":"setOldest()","48c81c16":"GamersToken()","48c834c0":"tier4Rate()","48c875cf":"resetRequest(string)","48c8cd41":"dateTime()","48c91284":"setM1(address)","48c981e2":"sendEther(address)","48c9ecf8":"allowTokenOperations(address)","48cb5aeb":"Easticoin(uint256,string,string)","48cc38e1":"nestedFirstAllToAll2(uint256)","48cc7b6e":"startForge()","48cd4cb1":"startBlock()","48cd65d9":"getInPlayGames()","48ce382d":"addActivityAccount(address,uint256,string)","48cebd67":"presaleSold()","48cf9e5c":"getGroupIndex(uint256)","48cfa939":"minContribution_mBTC()","48cfc6c6":"crowdSaleEnabled()","48d0aff3":"drainexcess()","48d21789":"burnFunction(address,uint256)","48d24f35":"transferMintingAddress(address,address)","48d26dd1":"finalizeType()","48d2df48":"userBuys(address)","48d317ce":"stepTwo(int256)","48d34bc6":"getHashInternal(address,uint256,uint256,uint256,uint256)","48d37a58":"withdrawPrize()","48d453ee":"gcEndTime()","48d47e7e":"clc()","48d4eaf7":"storeData(bool,uint256,address,bytes32,string)","48d51a0d":"submitProposal(bytes32,uint32,uint32)","48d597e5":"addFromMapping(uint256,uint256)","48d5a5c0":"consensusAddress(address)","48d6002a":"otherPlayer(address,address[])","48d6047c":"WhitelistWalletUpdated(address)","48d64fd5":"changeTradeTracker(address)","48d6ca55":"getChangeFeeAmount(uint256)","48d7de63":"setTenant(bytes32,address,uint256,string)","48d82608":"InvestmentPolicyChanged(bool,bool,address)","48d848d0":"returnBoolean(bool)","48d8bb3f":"setIco(address,address)","48d9614d":"GetFee()","48d9a374":"blockTransfer(address,uint256)","48da08e6":"SilverCoin()","48da1532":"node_side(uint256)","48da60af":"limitClosedSale()","48da95b8":"VirtualExchange(address)","48db409a":"createContract(bytes32,uint16,bytes32,uint256,uint64,bytes32,uint64,bytes32,uint64)","48db5f89":"player()","48ddc01f":"changeFisherMansFeeCalculator(address)","48dddca8":"minSpend()","48de0cdc":"withdrawInBatch(address[],address[],uint256[])","48dfe175":"tier3Total()","48e021e9":"weiCostOfToken()","48e06300":"isEquipedAny2(address,uint256,uint256)","48e071d4":"denyUser(address)","48e0f410":"fundRaising()","48e11f70":"OMGCatCoin()","48e12ae3":"getAllowancePeriod()","48e1a760":"getttttttt(uint256)","48e1c18b":"itemsOwned(address)","48e252ab":"CryptoMilitary()","48e25bd2":"WinToken()","48e278f9":"NauticusToken()","48e37220":"presaleDateStart()","48e3a033":"mulPay(address[],uint256[])","48e3a064":"StandardCampaign(string,uint256,uint256,address,address)","48e4e297":"allowedToPurchase()","48e591ac":"getVote(address,address,uint32)","48e5c71f":"whoIS(string,bool)","48e61782":"left4(uint256)","48e66722":"getRedeemRequestsLength()","48e68e30":"synthesizeWithAuto(uint256,uint256)","48e6b393":"test_logs()","48e7575d":"ecrecoverFromSig(bytes32,bytes32)","48e76563":"oraclize_setNetworkName(string)","48e7a100":"reparametrizeMultisig(bytes32,uint256)","48e837b9":"createGame(uint256)","48e9657d":"getSignatureAtIndex(string,uint256)","48e9f1ea":"EPXCrowdsale()","48ea97be":"tokenSalePausedDuration()","48eaa435":"safeExp(uint256,uint256)","48eab053":"fourthTeamWithdrawal()","48eaeb72":"BPCC(uint256,string,string)","48eb76ee":"attacker()","48ec8a0c":"getSecurityLimits()","48ed190a":"lastBlock_f11()","48ed1e3b":"LookUpAvailableDivInt(address)","48ed3e00":"date610()","48ed994c":"newLottery(uint256)","48edbf1d":"SKS()","48ef245b":"createFaucet(string)","48ef5aa8":"UpdateMaintaining(bool)","48ef670e":"UportRegistry(address)","48f05187":"scheduleCall(address,bytes4,bytes,uint256)","48f082e8":"dayToMinusToken()","48f0b8e3":"getNumberOfGamesCompleted()","48f134f6":"closeSetup()","48f1e9c2":"getCertificationDocument(address,uint256)","48f2090b":"distributionPercent()","48f213e0":"PER_USER_AMOUNT()","48f221b6":"changePartner1(address)","48f36144":"claimOracle()","48f3e6f4":"getFourthAddressBalance()","48f549a4":"CreateToken(address,uint8,uint16)","48f6647b":"matchWithTheirs(uint256,uint128,uint16)","48f69212":"YELLQASH()","48f7f2a3":"daoFactory()","48f83e86":"authorizeAccess(address,address)","48f8fe69":"fnv(uint256,uint256)","48f918e0":"reclaimLeftoverEth()","48f95a7d":"depositsCountForUser(address)","48f9e246":"requestImplChange(address)","48fab2b0":"emitOracleUpdated(address)","48fb7332":"INTREPID_MAX_PRICE()","48fc66e9":"NzmLToken()","48fcb4e8":"getFrozenAccountCoinCount(address)","48fdb8c1":"partnernames()","48fee60f":"Criptohubcoin()","48fefd9b":"supportsToken(string,address,address)","48fefed2":"setNewGreeting(string)","48ff05b8":"removeUint256(bytes32)","48ff0c47":"testF4(uint256)","48ff1387":"rebuy(uint256)","48ff15b3":"acceptManager()","48ff30ff":"Breakup(uint256)","48ff6525":"applyRedenomination()","490052a8":"playerRoll(uint8,uint8)","49007329":"CCCRSale(address)","4900b48c":"checkOracle(address,address,address,bytes32,uint256[])","4901a205":"canShelf(string,address)","490203a7":"getMiningReward()","4902d163":"pendingOwnedOwner()","4902e4aa":"removeSuperAdmin(address)","490377a7":"setParameters(address)","4903c401":"Admins(address,address,address)","49041903":"getGame(uint64)","49044cc5":"premiumValue()","49051c1d":"threshold2()","49055da2":"getCurrGameInfoPart2()","4905c5b0":"_isUserInGame(address)","4905c769":"newLoan(bytes32,bytes32,bytes32,address,uint256,uint256,uint256,uint256,uint256,uint256,address)","490618d1":"deregisterBroker(address)","4906da1e":"getMaxEther()","4907cd0f":"subscribe(address,uint256,uint256,uint256)","490825a9":"testControlTransferEnableNotTransferable()","49082bef":"TWO_YEAR_KEEPING()","4908d1de":"allUnsoldTokensAllocated()","490a32c6":"message(bytes32)","490a65c8":"PlutonDistribution()","490a6dac":"setWinner(uint256,bytes32,uint256,uint256,bytes32)","490b4f92":"coinAgeForAddressAt(address,address,uint256)","490bf04f":"rateToEther()","490c58f0":"addTokenTo(address,uint256)","490cce74":"FincontractMarketplace()","490d6d11":"Resume()","490e25c1":"C4FEscrow(address,uint256,address,uint256,uint8)","490e2bd1":"Autolen()","490f027a":"setPrizes(uint256[28])","490f611e":"Or(bytes32,bytes32)","490fc399":"votedKickoff(uint256,address)","490fdbd7":"transferTile(uint16,uint16,uint8,address)","490fea4d":"addBounty(address,address,uint256)","491045af":"LifeSet_002()","491274a8":"presaleContributorCount()","49135b0f":"getAllAlgos()","4913732e":"buyTokenFromModerator(uint256,address,uint256,bool)","49137bca":"reading_cards()","4913ec88":"EnergisToken()","49144618":"Wasted(address,uint256,uint256)","4914fb27":"approveWithdrawal(address)","4915ef4a":"refund_contract_eth_value()","49164b41":"CryptoDivert()","491737f2":"ico3cap()","491759aa":"sendEthTweet(string,string,string)","4917c302":"ACCEPTED_AMOUNT()","4918d588":"test_BondPostedAndOverMajority()","491a6155":"REFERRAL_BONUS_PERMILLE()","491a7904":"transferTokenTo(uint256,address)","491abe0c":"servicePayment(uint256)","491b0712":"snpb(uint256)","491b8c45":"setWARTokenAddress(address)","491c8e08":"lastBlock_a6()","491cfc1c":"setNextRoundDuration(uint256)","491d525a":"pMintTokens(uint256,int256,address,uint256,uint256)","491d75f4":"configurationTokenTranchePricing(uint256[])","491dcfe9":"batchActive()","491e0df0":"totalContributorsContribution()","491e55db":"GAME_COST()","491e74f3":"YICHAINCoin()","491eeb3a":"resumeInvest()","491fd263":"updateMessage(uint256,bytes32)","49200d77":"numberOfOutcomes()","4920781b":"GATcoin(uint256,string,string)","4920adcc":"MysteriumCrowdsale(address,address,uint256,uint256)","4920ff15":"SetHome(string)","49212c92":"preValidateChecks(address,uint256,uint256)","4921a91a":"giveMe()","4921cea6":"transferFeeOwner()","4921e147":"setMinWeiToPurchase(uint256)","4921f9e9":"AnonReport(uint256)","4922d481":"recovery(address)","49231598":"fetchAllVotersBySnapshotBlock(uint256)","49231b28":"changeRates(uint256,uint256)","49239e10":"refundStageStartTime()","492430f6":"DissolutionRoom(uint8,bool)","4924d397":"Respond(address,uint256)","49251b18":"FrozenFunds(address,address,string)","4925480e":"fireAdmin(address)","49260304":"nDEX()","4926248f":"setListener(address,address)","49264032":"Spendcoin()","49266f2f":"maxBidEth()","4927f408":"Vertex_Token(uint256,address,uint256)","49285b58":"getVotingToChangeKeys()","492abc67":"signerIsApproved(bytes32,bytes)","492b3bf7":"baseTokenCapPerAddress()","492b67ea":"Etherdoc()","492b8d45":"POWToken()","492bd276":"getIntervals()","492c0325":"calculateNewRate(uint256,uint256)","492c70fb":"swipeToken()","492c981b":"entryInformation(address,bytes32)","492cc769":"buy(string)","492d06cf":"unFreeze(uint8)","492dda05":"reTweetReward()","492e333f":"allocate5ProjectToken()","492e672e":"DCETToken()","492eec25":"bountyOfflineTokens()","492f190d":"availableCommission()","492f8724":"subscriptionStatus(uint256)","492fb343":"feeBeneficiary()","492fea53":"_createPet(uint256,uint256,address,uint256,uint256,uint256,uint256)","4931b3b4":"setData_30(string)","4932a80b":"unownedPlanet(uint256)","4932ce32":"changeGame(address,uint256)","4932f35e":"NomToken()","49330cb8":"getVote(uint256,uint256)","493322c0":"calculateRewardInternal(address,address,uint256)","49336245":"getEntry(bytes)","49337227":"testCanCloneAfterTransfer()","49339f0f":"Delegate(address)","4934453a":"TPIToken()","4935b3b6":"PDTC()","4935e740":"withdrawMyFunds()","49361cfe":"lastInvestmentTime()","493770cc":"setTransferStatus(bool)","4938649a":"stopEverything()","49386f26":"getlistedItems()","493953de":"addOwnToken()","49399729":"minimumBidAmount()","4939bfde":"requestedBy()","4939ce85":"CLASS_BEAST()","493a64e4":"SetParticipantRole(address,address,uint8)","493a7209":"stopBuy()","493a8d0c":"tokenActive()","493b284e":"exchangeNominsForHavvens(uint256)","493bccc8":"awardMissedBlockBonus(address,bytes32)","493ca31a":"EPAYCLUB()","493caeea":"removeMemberWithAddress(address)","493dbd02":"forceEndGame(address)","493f8d30":"read_demurrage_config_underlying()","493fcf1c":"taxRateNumerator()","49403183":"isPassed(uint256)","49404d25":"lastBlock_v13()","494054f4":"createNota(string,string)","49407a44":"claimEther(uint256)","4940c807":"sumElements(uint8[])","49416e45":"RCD()","4941d059":"editRestrictedAddress(address,bool)","4941d296":"periodITO_startTime()","49420759":"changeWithdrawable(uint256)","494278e3":"getgamecardaddress(uint256)","4942a71f":"getFromBank(uint256)","49432923":"participationHistory(address)","49433942":"PointerChanged(uint8)","49435c0d":"whitelistSupplier()","49437210":"getUpdatable(bytes32)","49440b91":"lockMntpTransfers(bool)","49441fc3":"MIN_ETHER_CONTR()","4945a575":"childApproved(address,uint256)","494630cd":"PullRequestAlreadyClaimed(uint256,uint256,bool)","49463b8e":"SeeleToken()","49465a50":"changeTakerDeadline(uint256)","49465d33":"lastPriceFeed()","4946c574":"getTransformMineInDay(address,uint256,uint256)","4946e206":"rescueCat(bytes32)","4947c8d0":"setFinishTime(uint256)","49480bc1":"releasePrivilege()","49484450":"ProofOfNoSnipers()","4948c2db":"stage4_price()","4948d91d":"SicBo(address)","4948e51a":"freezeToken(address,uint256)","49499e14":"setCompte_15(string)","4949d9fa":"bankrolledBy(address)","494ac14c":"LOTTERY()","494b46f9":"_changeAdmin(address,address)","494b5e0f":"setUserFactoryContract(address)","494b90e8":"teamPoolAddress()","494bf608":"distributeEther()","494c2a0f":"STQCrowdsale(address[],address,address)","494cf333":"getAddressUIntMapping(address)","494cfc6c":"getTokens(uint256,uint256)","494d93cc":"result_block()","494e49a4":"createAccountWithBalance(string,uint16)","494e4bc3":"fundtransfer(address,uint256)","494fb622":"SetData(uint256,string,string,string,string)","494fee7d":"estimateDistribution(address)","4950b392":"exerciseCall(uint256,uint256,uint256)","49517b41":"addSolution(uint256,string,string,string,string,string)","4951a18f":"crowdsaleCap()","495289be":"setIssuer(address,bool)","4952d2dd":"logPromiseUnfulfillable(uint256,address,uint256)","4953b57d":"isAdminOwnersValid()","49550d66":"tryTakeBack(uint256,uint256)","4955a79e":"transferOwnershipOperation()","4955f280":"createContractPerson(string)","4956cf1c":"migrating()","4956eaf0":"deploy(address,uint256)","49570293":"_addPurchasedTo(address,uint256)","49573edd":"tgeSettingsChange(uint256,uint256)","495816b4":"BOUNTY_TOKENS_AMOUNT()","49582509":"ICO_ON()","49582a20":"initializeSupply(uint256,uint256,uint256)","4958abb7":"switchFeePolicy(bool)","4958ace2":"restartSale(address)","49593f53":"submit(string,uint64,uint32,uint32,bytes32)","49596a65":"initProject(string,string,string)","495b3bcc":"LSEscrowContract()","495bbcae":"testNeededBalanceForContractCreation()","495bf26b":"lengthOf(string)","495c167f":"sumPayments()","495c5891":"getTotalAuthorizedForPayment()","495c9588":"minEligibility()","495ccca3":"WEEFundWallet()","495d32cb":"par()","495d7b26":"processScore(bytes32,string)","495df195":"CollectEarning()","495e1b3d":"etherEscrowAddress()","495f9bae":"getProposalVoterVotesCount(uint256,address)","495fe25b":"transferTo(address,uint256,bytes)","49602f5c":"OpusToken()","49606455":"take(bytes32,uint128)","49606d51":"Nihilum()","4960ae42":"numberOfVerifiers()","4960d2bc":"getLandTaxRate(uint256)","496128ec":"prosperaToken()","49614e91":"isRegisteredAddress(address,address)","4961b40c":"getReleaseValidator()","4962aa66":"discountedRates(uint256)","4962ab01":"removeMembers(address,bytes32,address[])","4962ad08":"approveAlgo()","4962b964":"getPuppetCount()","49630dda":"removeQuestion(address)","4963513e":"Reserved(bytes32,address)","49649fbf":"withdrawAllFunds()","4965fc89":"getForfeited(address)","49661fcf":"stage2Tokens()","49671d28":"setAmountSoldPerPeriod(uint256)","496a698d":"currentAuction()","496bd844":"round_up_division(int256,int256)","496be2cf":"atxControllerAddr()","496c4fad":"setPriceAgent(address)","496c5ad8":"throwsWhenGettingTokensWithStoppedSale()","496e41d2":"quotaUsed(address)","496fbeb3":"transportationFeeMultiplier()","496fc976":"setC4FContractProvider(address,address)","496fd2c5":"ICOStartToken(uint256)","4970fb36":"armagedeon(address[])","4971129d":"CatTransfer(address,address,uint256)","49713811":"winnersCount()","49714815":"ownerKillContract()","49716f5a":"originalTotalWeight()","4973219d":"outputi(uint256)","497347b2":"_storeContent(address,string,uint256,bytes32,address)","4973dbf6":"RATE_ETH_CUE()","4973dd25":"unBlockExternalTransfer()","49741098":"admin_set_min_pay(uint256)","497484f6":"applyBonus(uint256,uint8)","4974af1f":"testPublic(uint256[20])","4974bc27":"download()","4974da81":"addWord(string)","49752baf":"chronoBankPlatform()","49755b9e":"issueSynths(bytes4,uint256)","4975d202":"balanceOfOwner()","4975e893":"getProposalCreatedAt(bytes32,bytes32)","49776581":"getDocumentUpdatedVersionId(uint256)","497777d5":"collect(bytes32)","4977d6a4":"DreamToken()","49786571":"Economeme()","4978ddcc":"transferAPIOwnership(address)","4979440a":"getHighestBid()","4979c012":"ClosingTimeForCloning()","4979d6ec":"setUserManagerContract(address)","497a7b48":"taskRewardVote(bytes32,uint256)","497aed49":"PRIMARY_START_PRICE()","497b383e":"buyReferTokens(address,uint8)","497b8018":"getBallotOptNumber()","497cc504":"claimE()","497cd327":"TMONEY272708()","497cd426":"updateRewardDistributor(address)","497d709d":"icoNumberBalanceOf(address,uint256)","497dbce9":"_assertAmount(uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint8,uint256)","497dd0cb":"migrateContributors(address[])","497f3132":"getLastRegistration(string,int256)","497fb5b9":"tokensWithdrawn()","498022ea":"evalTransitionState()","49813e26":"MenovaToken()","4981b3ca":"performSell(address[8],uint256[6],uint256,uint256,uint8,bytes32,bytes32)","49843982":"Coin(uint256)","4985acee":"getTransferFromToValue()","4985b325":"addSurplus()","49866ec0":"finishTokensSale(uint256)","4988ef98":"LOCK_TOKENS_DURATION()","4989ae8e":"RESERVED_TOKENS_FOUNDERS()","4989b0b6":"setCustomBuyerLimit(address,address,uint256)","498a37f0":"setSmallInvestor(address,uint256,uint256)","498a3944":"setNameWriterId(bytes32,bytes32)","498a4c2d":"startBlockNumber()","498a690f":"issuingRecordAdd(uint256,bytes32,uint256,uint256,uint256,string,uint256)","498a6de7":"setRevenueContract(address)","498b7718":"J8T_DECIMALS_FACTOR()","498be109":"FAPFounderFund()","498c07f3":"startCrowdsale1(address)","498cb7cb":"setDelegadoDeEscuelaVerify(bytes32,uint256,uint256)","498cc70d":"getResult(string)","498d2ae0":"getMintRequestAddressMap(uint256,int256,string)","498e78b1":"unregisterManager(address,address)","498e87a9":"setPI_edit_21(string)","498eecb2":"getLimitedReportersDisputeBondToken()","498f27ae":"countCampaigns(address)","498f6fbe":"NewSubscription(address,uint256,uint256)","498fd833":"priceDT()","498ff49a":"repayImmediately(uint256)","49911610":"getDay(uint16)","49912f88":"appeal(uint256,bytes)","49917511":"buyCoinsCrowdSale(address,uint256,address)","49926028":"typeHash()","49937e25":"buyPrimordialToken()","49942483":"ICO_PHASE2_BONUS_PERCENTAGE()","49942ccb":"scheduleCall(bytes,bytes,uint256,uint256)","49943a13":"PARTICIPATION_FEE()","49955431":"cupi()","4995b458":"week()","4995e9fb":"FOUNDER_ADDRESS2()","4996e899":"getGuaranteedContributorsLenght()","49970e16":"forwardPlay(address,address,bytes,bytes32,bytes)","499831f2":"pauseGame()","4998ce40":"setbonusTokens(uint256)","49996698":"trustedAddressSize()","499a1bcd":"setAQL(address,uint256)","499a8fea":"setClue3(string)","499ac979":"redistributeTokensForAddresses(uint256,address[])","499af77c":"current_spin_number()","499caf09":"secondTime()","499cd176":"endAttack(address,address,bool,uint256,uint256,uint256,uint256)","499cf7ce":"BOXEX()","499d1081":"mint(address,uint256,uint128)","499dae56":"getMultiRequestRequestor(uint256)","499e2c81":"getOrCreateWaitingBoard(uint256)","499e6c10":"isTheContract()","499fa529":"ALLOC_SALE()","499fd141":"getDrupeCoin()","499ff236":"maxAnonymousContribution()","49a0a3b3":"resetTokens(address[],uint256[])","49a0c976":"unlockEmission()","49a0e681":"rst()","49a24a7d":"DolyToken4()","49a3d2bb":"updateAllowed(address,address,uint256)","49a51839":"EGGS_TO_HATCH_1LOBSTER()","49a634f0":"LTS()","49a67b55":"commitStart(bytes32)","49a69078":"lastBlock_f5()","49a6a4de":"showAssetInfo(bytes32)","49a742eb":"validRate(uint256)","49a76444":"Hygen()","49a7a26d":"solver()","49a86c9e":"addToAccesslist(address)","49a8d337":"lockedTeamAllocationTokens()","49a92910":"setPlayer(address,uint64,uint64,uint64,uint64,uint64,uint64)","49a9d5ad":"CGENToken(uint256)","49aa480a":"VixCoin()","49aa4ee2":"removeVote()","49aafad7":"allowedToBurn(uint256)","49ab1d86":"setGeneLab(address)","49abee50":"phaseStart()","49abf2d6":"staticoins(uint256)","49acce72":"AnkitVictoContractToken()","49adf14f":"Claim_TRAC_1850()","49adf314":"_updateDividends(address)","49ae1f17":"KWHToken(address,address,address)","49ae9b31":"canReadName(address,bytes32)","49af0af1":"baseEthCap()","49af63a9":"setWaitTime(uint8)","49afc6e5":"tokenBalance(uint256)","49afcc0e":"dataSourceGetSemiResult(uint256)","49b11f24":"dailyAuctionStartTime()","49b1b2d9":"newBonus_and_newPeriod()","49b2f5ff":"technicalCommunitySupply()","49b3b29f":"costs(uint256)","49b40402":"exchangeThreshold()","49b48e66":"setCheckOwner(bool)","49b54685":"updateDps(uint256)","49b5b541":"compute(address,uint256)","49b6313c":"getCurrentSellOffer(uint32)","49b71e47":"distributeWinnerPool(string,uint256)","49b76501":"getStorageRate()","49b7a9c2":"dividendManagerAddress()","49b7ef6c":"lockedSell()","49b85a16":"kycAddress()","49b88203":"declareProjectDefault()","49b88919":"setImageDescriptor(uint256,uint16)","49b8f5d9":"tokensDuringPhaseOne()","49b90557":"isAuditor(address)","49b9734d":"changeMainEndTime(uint256)","49b9a2d0":"address_to_tickets(address)","49b9a7af":"lastPriceUpdateTime()","49ba5a48":"checkSavedEthBalance(address)","49babd2a":"initiate(address,uint256,bytes32,address)","49bac542":"E4RowEscrowU()","49bedf42":"setLookup(address)","49beee4f":"adjust_Transfer_nodata(bool)","49bf2caf":"disputeTransaction(uint256)","49bf66d3":"addRegistryIntoNameIndex(address)","49bfb061":"txFeeDenominator()","49bff0d7":"setPI_edit_29(string)","49c03373":"changeGTOAddress(address)","49c04f27":"WorldBitEvent(address,bytes2,bytes2,uint256,uint256,string,string,string,string)","49c15bd9":"Purchase()","49c16cc3":"CMCLToken(uint256,string,string)","49c16e15":"toUint()","49c1ad0f":"gotoNextState()","49c1d54d":"trusteeAddress()","49c2a1a6":"createProposal(string)","49c3567c":"ArbaCoin(uint256,string,string)","49c37f8c":"main(address,address)","49c3a91e":"getSponsorshipsTotal(address,uint256)","49c462d7":"createInvite(bytes)","49c53b2d":"doMidnightRun()","49c6353c":"getInvId()","49c71fa8":"unholdTeamTokens()","49c7634f":"WorldwideGiftCode()","49c83e86":"unlist(address,uint256)","49c91267":"getSeedByWinner(address)","49c9d17a":"updateReceivers(address[])","49c9dcf5":"awardRafflePrize(address,uint256)","49ca30ab":"receiveIndex(uint256,uint256,uint256,uint256,bool)","49ca7656":"changeOwnerOfMonethaUserClaimStorage(address)","49ca8cc9":"getEventId(address,bytes32)","49cacb12":"dropOwner(address)","49cbe338":"tryRead(uint64)","49cc2eb1":"Fairsale(uint256,uint256)","49cc635d":"receivePlayerInfo(uint256,address,bytes32,uint256)","49cc8513":"_geneOfCrab(uint256)","49cc954b":"twoYearsPassed()","49cd4554":"afterIco(uint256)","49ce0a11":"hexToken()","49ce5804":"setSectorOwnerCut(uint256)","49cf211e":"storenumber()","49cf2eae":"certifierAddress()","49cf5f1b":"DSProxy(address)","49d0cd85":"functionSignatures()","49d10b64":"updateRegistry()","49d246e5":"getBetBasic()","49d24ae8":"withdrawAdmin(uint40)","49d2ca11":"Election(address,address,address,address,address)","49d3060f":"selectWinner50()","49d45693":"changeminprivatesale(uint256)","49d463e6":"sendBoard(bytes10,uint256,uint8,bytes32,bytes32)","49d4a344":"right99(uint256)","49d55d9d":"receiveTransfer(uint256)","49d596fe":"FSM()","49d689f4":"setJackpotAddress(address,address)","49d7e0b3":"mutiTransferFrom(address,address[],uint256[])","49d800a1":"ReleaseableToken(uint256,uint256,uint256)","49d834cd":"TSTEST()","49d8ef13":"ETHERFUNDME_ONLINE_FEE()","49d94871":"bonusRates(address)","49d94c83":"CappedCrowdsale(uint256)","49da847b":"iPay()","49daca7a":"tradeAddress()","49dbdf30":"initializeRefund()","49dc2b83":"miningFinished()","49dc5376":"getTokensBack(uint256)","49dc8fab":"Menu06(address,address,uint256)","49dcbc5e":"sendEth(address,uint256)","49dcd756":"getCurrentEthCapPerAddress()","49dd0fe3":"minechain()","49dd1262":"updatePrices()","49dd2880":"Gold(address,uint256)","49de0485":"addContributorManually(address,uint256,uint256)","49de3995":"EthlanceMessage(address)","49df7208":"addMember(address,bytes32)","49df728c":"withdrawTokens(address)","49e09da6":"genesisTransfer(address,uint256)","49e0cf2a":"createComunity(bytes32,bytes32)","49e0dada":"level_4_percent()","49e123c8":"monsterHealth()","49e1432c":"donateToPot()","49e1c2b7":"ATMToken()","49e284d1":"ZoologicalGarden()","49e347ae":"getContents(uint256[],uint256)","49e4347b":"completeICO()","49e44f44":"ManagerProxy(address,bytes32)","49e4b3e5":"setPermissionManager(address)","49e51970":"CostilNetworkToken()","49e588df":"refundSubmission(address,uint256)","49e627d2":"getPreIcoTokenHoldersAddressesCount()","49e65440":"setSymbol(bytes32)","49e67544":"TeamFund()","49e6c454":"getMyEntityOwner(uint256)","49e77c8b":"hasEnoughTokensToPurchase(address,uint8)","49e9449a":"presalesCap()","49e9cee9":"GetMaxPrestigeLevel()","49ea33df":"icoEndDatetime()","49ead9b4":"createAsset(string,uint256,uint256)","49eb6d6f":"NumberAddresses()","49ec1ff0":"setSoftwareTokensWallet(address)","49ec7c3f":"giveBirth(uint256,uint256,uint256,bytes)","49edfb94":"FEE_OWNER()","49edfed9":"getEtherForStakes(uint256)","49ee161b":"getLockPosition1(address)","49ee2ae1":"getAllJingles(address)","49ee39ba":"nullBonusMessage()","49ee6c50":"getNewItemId(bytes32)","49ee72fc":"addCountryCities(uint256,uint256[],uint256,uint256)","49eee1a4":"setRoundRate(uint256,uint256,uint256)","49ef026f":"raisedFunding()","49efdbbf":"purchaseShow(uint256)","49f00964":"founders_2()","49f02baf":"YondToken()","49f0726d":"Centhereum()","49f0c90d":"adminSetAccountAdministrator(address)","49f12aa7":"hashState(address,uint256,uint256)","49f16ad1":"setTransferEnabled()","49f194a1":"setIco(address)","49f1fa67":"GetLiasonName(uint256,uint256,uint256)","49f202ff":"getTokenIdByIndex(uint256)","49f209af":"testThrow_3_invalidOwner_accessRestrictionThrow()","49f22b4a":"biddingComponent()","49f27c25":"ProdEToken()","49f298c6":"wallock()","49f2a049":"registerInternal(string)","49f30178":"nextFinalTimeout()","49f307a6":"setNewPriceToItem(string,uint256,uint256)","49f41a42":"updateAgent(address)","49f4cc17":"transferAssets(address,address,uint256)","49f4f5da":"XLifeCoin()","49f6444e":"buyLuckyStone()","49f65ce4":"handleDividends()","49f73d3d":"calculateCountryCut(uint256)","49f7825b":"lockAddressByKYC(address)","49f9231d":"LightCoinToken()","49f97939":"notEqual(string,string,string)","49f9b0f7":"calculateSaleReturn(uint256,uint256,uint32,uint256)","49f9c0e4":"transferEth(uint256,address)","49f9e95e":"withdraw_arbitrary_token(address,uint256)","49f9f4d0":"burnOwnerTokens(uint256)","49fa84ef":"hon1ninja()","49fa991f":"removeAttestation(address)","49fb2dc5":"add_to_association(uint256,uint256,uint256)","49fcea4a":"Lyfecoin()","49fcfce7":"saleInited()","49fd5791":"_removeLastOwnerHoldingsFromToken(address,uint256,uint256)","49fd5f64":"getAllAssembly(address)","49fdaea6":"isBrickOwner(uint256,address,address)","49fe5261":"CROSAIR_PRICE_INCREMENT()","49ffeb8f":"recursiveCalculation()","4a0023cd":"findAuraComposite(uint64,uint64)","4a00a522":"homebase(int256,int256)","4a00dc38":"getAreaPrice(uint8,uint8,uint8,uint8)","4a013296":"canEscapeTo(uint32,uint32)","4a024928":"D00KIE()","4a03707c":"draw(address,uint256)","4a03e7e3":"TrinityContract(address,address,uint256)","4a042f0d":"joinBattle(uint256)","4a046d82":"usdPerEther()","4a0473fe":"votings_(address)","4a0483c5":"trustedAddressLUT(uint256)","4a0767cc":"setIsPreventedAddr(address,bool,bool)","4a084736":"updateTokenToEthOrderWHint(uint32,uint128,uint128,uint32,int256)","4a09d3cf":"withdrawAdvisersTokens(address,uint256)","4a0a7f2d":"doDistributionRange(uint256,address[],uint256[])","4a0af245":"startPreSale(address,uint256,uint256,uint256)","4a0b132a":"TIME_TO_MAKE_1_SHITCLONE()","4a0ba49d":"pay(address,address,address,uint256)","4a0bb6a4":"WeQuest()","4a0cd926":"addBankerAddress(address)","4a0d89ba":"getSwap(uint256)","4a0d8b53":"setHasMaxPurchaseLimit(bool)","4a0f0bfe":"ServiceRegistry(address)","4a0f3134":"FundTransfered(address,uint256)","4a0f5974":"left27(uint256)","4a122266":"getForwardPurchaseFeesTo()","4a12389a":"MyToken(string,string,uint8,address)","4a123e1d":"setLev2(uint256)","4a1281c6":"numTokensIssued()","4a1311f9":"openingManualyMining()","4a14e3b2":"SentAmountToOwner(uint256,address)","4a150e2c":"getDonationsCount(address)","4a15ebce":"addCbAddress(address,bytes1,address)","4a16673b":"shouldSelectWinner()","4a168859":"getAvaIcoAmount()","4a169e4b":"setCoinInfo(address)","4a173383":"determineWinner(address,uint256,bytes32)","4a1753a6":"setCurrentGame(address)","4a176017":"finalizeAdd(uint256,address)","4a176ba5":"getaddr(uint256)","4a17bbde":"getEventId()","4a180cb3":"removeSpecialFeeTake(uint256)","4a184f51":"startCrowdsale(address,address)","4a186d69":"buyTokenFor(address)","4a187785":"aaandItBurnsBurnsBurns(address,uint256)","4a18c25e":"EUEBToken()","4a197057":"GameEnded(uint256,address,uint256,uint256,uint256,uint8,uint8)","4a1993e4":"firstDepositDate()","4a1a27a8":"qtAccount()","4a1a342b":"getOrderMoneyEscrowed(bytes32)","4a1a3ded":"createNewTask(uint256,uint256)","4a1a650d":"RecordNum()","4a1a89f1":"PHXTKNADDR()","4a1aa767":"claim_victory(uint256,uint8,uint8,uint8)","4a1ad538":"checkTransferMultipleDelegated(address,address[],uint256[],uint256,uint256,bytes)","4a1b504f":"distributeBonus(address[])","4a1b98b2":"exchangeUnderwrite(address,uint256)","4a1ba4ba":"Multibot()","4a1c13cd":"setIcoStartDate(uint256)","4a1c6549":"ETHBITA()","4a1d08af":"drawRandomItemWinner()","4a1df335":"addressCEO()","4a1e004c":"blockedTimeForInvestedTokens()","4a1f05f0":"setSaleImg(uint256,bool,address,uint256)","4a1f0bf6":"inheritToNextGeneration(address)","4a1f11a7":"MT()","4a1fb241":"fttIssued()","4a1fe393":"withdrawEther(uint32)","4a208c38":"setIV_R2(uint256)","4a21f8f7":"joinToPool(uint256,uint256)","4a222b74":"ecoLock23()","4a22c7fb":"tokens_rewards_allocated()","4a23418a":"foundersTokensWallet()","4a2388ff":"setAllowedForMinting(address,address)","4a23dc52":"FileStore()","4a2479c0":"initialOwnersShares()","4a24edd6":"startSale(uint256,uint256,uint256,uint256)","4a24f6d9":"getVendorApplicationScoringTrackCount(string)","4a254431":"MappingProposalIssued(address,address,uint256)","4a25780b":"RedRibbonCoin()","4a25b2fd":"deductCoin(address,uint256)","4a26410b":"SetGenesisBuyPrice(uint256)","4a268f52":"ExchBtcToken()","4a26920b":"sendTokens(address,address,address[],uint256[])","4a2697fc":"balanceOfIssuer()","4a272bff":"GetHoga(address,uint32,bool)","4a275a1e":"Blockdrop(address)","4a280a55":"transferFrom(address,address,address,uint256,bytes)","4a2929ee":"betLockTime()","4a2951d2":"AsianCapitalChain(uint256,string,uint8,string)","4a2a197e":"addBonus(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4a2a4ebc":"countries(uint8)","4a2b0c38":"DividendProfit()","4a2b22f9":"GameBase()","4a2c3204":"getUserFLCEarned(address,address)","4a2cd48f":"getPreviousDate(bytes10)","4a2d5b6b":"getReleaseRatios(address)","4a2db4d8":"GetWinCards()","4a2dfbb4":"artWorkChangeRequest(uint256,string,uint8,bytes32,bytes32)","4a2e7752":"hashBid(address,uint256,address,address,address,uint256,uint256)","4a2ee75f":"addArticle(bytes,bool)","4a2f2333":"BitcoinMobile()","4a2f37a6":"updateItemTraits(uint256,uint256)","4a2fb1e4":"_mentors()","4a2fed3d":"test_SixtyPercentRules()","4a2ff078":"getRateFor(string)","4a303d30":"optAddressIntoHolding(address,uint256)","4a30f976":"censorship(uint256,bool,bool)","4a31259f":"totalNtsSoldWithBonus()","4a31dee2":"setTokenIdByIndex(uint256,uint256)","4a3270d7":"bytesStorage(bytes32)","4a330319":"tokensaleEndTime()","4a3310b8":"hasConfirmed(bytes32,address,address)","4a334c1c":"closePlacingPhase()","4a348da9":"getProductCount()","4a35035a":"dropNumber()","4a3573f1":"assignReservedTokens(address,uint8,uint256)","4a35d3ba":"SetBuildingSale(uint256,uint256,uint256,uint256)","4a35db7c":"restartValidation()","4a363fbc":"testNetworkDeployment()","4a366c46":"Th0m4z()","4a367140":"FoundersContract(address)","4a367827":"mintingStopDate()","4a367c68":"PrivateSaleStartTime()","4a367d73":"UpgradeMaster()","4a36870a":"firstRewardPeriodPercent()","4a36df25":"setMigrateContract(address)","4a375bc4":"FlagUint(uint256)","4a376c97":"OpenToThePublic()","4a37b5f7":"MyWill(address,string,string,string,address)","4a382c36":"freezeAccount(address,bool,uint256)","4a387bef":"removeLock(address)","4a393149":"onTransfer(address,address,uint256)","4a398c11":"SWIFTStandardToken(uint256,string,uint8,string)","4a39a5f4":"ALC_DECIMALSFACTOR()","4a3a835c":"withdrawAfterEnd()","4a3a87e2":"CreateProxyWithControllerAndRecoveryKey(address,address,uint256,uint256)","4a3a92f6":"minusFreezingTime(uint256,uint64)","4a3b0eec":"authorizeOpen(uint256,bool,string)","4a3b68cc":"referrers(address)","4a3bd672":"time1()","4a3bf377":"totalVotesFor(string)","4a3c4375":"getAllConsentTemplates()","4a3cdf21":"m_ETHPriceLastUpdate()","4a3d239c":"weiWithdrawed()","4a3d3510":"updateVotesOnTransfer(address,address)","4a3d3c09":"castleMinBrick()","4a3d5ec9":"ProofImpl(address)","4a3d72a1":"balancesContract()","4a3db7e7":"_generate(uint256,address)","4a3e2b21":"unpaid(bytes12)","4a3e4f90":"scamFlags(address)","4a3e8078":"emissionAddressUpdate(address)","4a3f17e7":"hodlers(address)","4a40e85b":"setMAYExchangeRate(uint256)","4a411f5a":"EventLuckyNumberRequested(address,uint256,uint256,uint8,address)","4a418fb7":"numOfTransferableCompanysTokens()","4a41d1ac":"verify(address,bytes)","4a41d6f5":"_clearAllApproval()","4a41e045":"getUint8(int8)","4a420138":"scheduleHeartbeat()","4a4226a5":"TeamHeadsChoice(address)","4a42a397":"TakeSellOrder(bytes32,address,uint256,uint256,uint256,address,address)","4a42d99b":"donGameGiftLineTime()","4a443471":"_money()","4a44664b":"withdrawVPCxTokens(address)","4a44bdb8":"getBlock(uint256,uint256)","4a4507ff":"testInitialBalance()","4a45b60b":"unregister(address,address)","4a45beed":"Accept(bytes32,string)","4a45d2e6":"setParam(uint256)","4a4666c1":"addAuthorizer(address)","4a4753bc":"BonusesDistributed()","4a48314f":"hodlerTime3M()","4a49ac4c":"removeFromBlackList(address)","4a4a2569":"getAudCentWeiPrice()","4a4a26d7":"EnChangToken()","4a4a2a97":"performReentrancyAttack()","4a4a2b52":"unfreezeAdministrationContract()","4a4b4eb0":"WISDOMCOIN()","4a4b674a":"setPenalty(uint256)","4a4b7202":"PPBC_API()","4a4b7de6":"deedContract()","4a4baed7":"setTokenControlInfos()","4a4c1bcd":"LeviusDAO()","4a4c560d":"whitelistUser(address)","4a4c5e59":"proceedTokenDeals(uint256)","4a4c82c6":"_resetSpentToday()","4a4e3bd5":"emergencyUnpause()","4a4e5776":"stepDuration()","4a4e6f95":"addFeedOut(address,address,int256,uint256,uint256)","4a4e8884":"getUserAddress(bytes32)","4a4ede50":"transferSalesAgentPermissions(address)","4a4ef738":"addAddressToPrivateWhiteList(address,uint256)","4a4f76d5":"getInitializeEndTime()","4a4fbeec":"isLocked(address)","4a4fd24d":"addMileagePoint(address,uint256,int256)","4a5033eb":"Reverted()","4a504a94":"Confirmation(address,uint256)","4a50c3a7":"EtherToWei(uint256)","4a5163b5":"numDefinedGames()","4a51dcea":"TIER3_CAP()","4a522e4e":"winCosFromGame(uint256,uint256,string)","4a52a5f8":"TerraFirma()","4a52e506":"enableLostAndFound(address,uint256,address)","4a53c127":"setTargetDiscountValue7(uint256)","4a54315c":"registerUser(bytes32,string)","4a54fb0a":"updateProduct(bytes32,string,address,uint256,uint8,uint256)","4a55308c":"firstSellPrice()","4a562d81":"returnDeed(address)","4a574d18":"bonusMode()","4a5791e0":"UnFreezeProduct(uint256)","4a57c032":"IcoDiscountLevelsChanged(address,uint256,uint256)","4a57e1c9":"finalizeTransaction(uint256)","4a588d87":"CYB(uint256,string,string)","4a5891ac":"changeEternalStorageContractAddress(address)","4a58c409":"changeStartSale(uint256)","4a58cf22":"totalSupplyInWei()","4a58db19":"addDeposit()","4a5a3d76":"setETHPriceManually(uint256)","4a5a831b":"EthlanceConfig(address)","4a5baa1b":"VULCAN_POD_EXTRACTION_BASE()","4a5c2d6e":"Change(address,uint256,address,uint256,address)","4a5c8f1a":"getEarnEachBlock()","4a5db3b5":"authorizeAddress(address)","4a5dcb5b":"Candy(address,address)","4a5dcdc9":"RANGEEND_9()","4a5dddd2":"proxyPurchase(address)","4a5df250":"nextContributionCaps(uint256)","4a5e1cf3":"initLottery(uint16,uint256,uint8)","4a5e4fa8":"setExpReward(uint32)","4a5e70c0":"ObitanChainToken()","4a5ecc66":"Sale(address,address)","4a5fca4f":"offChainTokens()","4a5ff749":"teamAddr()","4a601994":"WesTechToken()","4a606c53":"_db()","4a60751f":"refundingEndtime()","4a61179b":"MANHATTANPROXY11THWEAVE()","4a617faa":"shaBid(bytes32,uint256,bytes32)","4a617fba":"gooDepositDivPercent()","4a61f347":"resetEditionLimits(uint256)","4a61fc1e":"getWinners(bytes32)","4a6213a1":"MAKERDAO_FEED_MULTIPLIER()","4a624310":"getAngelInfoByTile(uint16,uint8)","4a627e61":"someValue()","4a62cc73":"auditQueueExists()","4a62f5eb":"_isTokenActive()","4a63464d":"adminClaimAirdrop(address,uint256)","4a635d05":"testCampaignGoalReached()","4a63864b":"RATE_RATIO_SCALE()","4a63b3d3":"lockBlock()","4a63f8a4":"presellTimer()","4a6458ae":"Rescued(address,uint256,uint256)","4a64c23f":"removeCbAddress(address)","4a661152":"get_exchange_wei()","4a66ddff":"twin_contract()","4a67fa7d":"setLotteryFee(uint256)","4a681b1b":"EXPECTED()","4a683a65":"addBTCTransaction(uint256,bytes16,address)","4a68492c":"setTransferAgentStatus(address,bool)","4a6a225e":"proxyPayment(address,bytes4,bytes)","4a6aac33":"DATE_31_DEC_2020()","4a6b0b05":"NewArtwork(address,bytes32,uint256,string,string,uint256,address,bool,bool)","4a6b8cf6":"setPretgeAddress(address)","4a6b9473":"registerActionEvent(bytes32)","4a6bb4a5":"updateWallet(address,address)","4a6bfa2d":"salesActive()","4a6c121d":"uintToBytes32(uint256,uint256)","4a6cfca7":"getAccessory(uint256,uint256)","4a6d0292":"addSale(address)","4a6de5c3":"_getAvailableBalance()","4a6e2ffe":"calculateReferral(uint8)","4a6f2691":"setBoolF1(bool)","4a7004b9":"getTotalTokenDepositByAddress(address)","4a700545":"PrivateSaleAddress()","4a701fc3":"setownerInfo(address,bytes32,bytes32,bytes32)","4a7084bb":"setPublicOfferDate(uint256,uint256,uint256)","4a714378":"toggleVending(uint256,uint256)","4a714c24":"payers(address)","4a7160a2":"addSet(bytes32)","4a716adf":"transferVotes(uint256,address)","4a719a27":"getTargetRepMarketCapInAttoeth()","4a71a768":"setWeiCapPerAddress(uint256)","4a71d469":"collectRev()","4a720287":"setEarlyEndTime(uint256)","4a729fe1":"pay(address,bytes12)","4a733ded":"paybackContribution(uint256)","4a738bea":"withdrawWithFee(address,uint256,bytes32,address,uint256,bool)","4a74ca99":"disconnectOrderPrice(address,address,uint256,uint256)","4a751072":"rateBoundaries(uint256)","4a7510fc":"StealResources(uint256)","4a75c0ff":"StoreDocument(bytes32,string,string)","4a75e6c3":"servicePayment(address,uint256)","4a75e741":"add_owner(address)","4a765625":"AliParsafar()","4a76564e":"tokenReleased()","4a76869f":"commitOrder(string)","4a768eaa":"buytoken(address,uint256)","4a7759f8":"BALL()","4a776104":"canFinishPVP()","4a77f870":"migrateAll()","4a78a594":"getClaim(string,string,address,uint256)","4a78cdba":"jackPot()","4a7902d2":"changeRoot(address)","4a790540":"getPastWinnerPrizes()","4a793c0c":"cidTotalTokenSupply()","4a797494":"priceRound3()","4a7987a2":"setProvider(bytes32,address)","4a79d50c":"title()","4a7b1acc":"MapDemo()","4a7b26ec":"join_game(uint256)","4a7b7ec3":"mintMarketMakerCancel(address,address)","4a7b8f21":"addHarvestOperationEndorsement(string,bool,string,string)","4a7bb697":"AssignGGCPoolOwner(address)","4a7c7e46":"uintToAscii(uint256)","4a7cb0f5":"FoundationRequested(address,address,bytes32)","4a7d505c":"initBetType()","4a7d8bcc":"getCurrentTokenPricepreICO(uint256)","4a7d9f0f":"getSettlementPeriodEnd()","4a7dd523":"generate(uint256)","4a7de068":"finalizeSetDelegatedFrom()","4a7e00de":"rejectCompanyAllocation(address)","4a7e049e":"getFullCompany(address,uint256)","4a7e130e":"remainTime()","4a7ffcbc":"daoContract()","4a800b98":"cancelChampSale(uint256)","4a803387":"insert(uint256,uint256,uint256)","4a8075ac":"SaleAuction(address)","4a80dcab":"getProjectMilestonesCount(bytes32)","4a80f2ba":"registerKey(string)","4a812023":"logUniverseForked()","4a81db9a":"moneybackaddr()","4a81dc0f":"forceUpdatePrizes(uint256[])","4a82534b":"create(address,address,address,uint256,uint8,uint8,uint256)","4a825c68":"checkRoundEnd()","4a826823":"setCastle(uint64,uint64,uint64,uint64,uint64,uint64)","4a82804e":"setNewMessage(string)","4a8302a2":"SynixToken(uint256,string,uint8,string)","4a8305b4":"newCoinOwner(address)","4a838caf":"ethfortnite()","4a83cfa9":"burnMedal(uint256)","4a84fa81":"checkRokSold()","4a85223b":"addUser(address,string,string,int256,string)","4a85280e":"isAuthorizedAddress(address)","4a85512f":"awardInvation(bytes32)","4a85d0d5":"HeliumNetwork()","4a85dbcd":"setVal(string,uint256)","4a8646c3":"HomeLoansToken(uint256,string,uint256,string)","4a8671f1":"newWallet()","4a867488":"setVestingPercent(uint256)","4a87b419":"cancelApproveFee()","4a87e08a":"BUY_CITY_FEE()","4a881ac6":"addAddressDescription(string,address)","4a88eb89":"altDeposits()","4a88f9c7":"exFees(uint256)","4a891e7f":"FinalizeMove(address,string,string)","4a896384":"ask()","4a8967a6":"_today()","4a8a6eac":"CarRegistered(uint256)","4a8a83db":"calculateVestedTokensTime(uint256,uint256,uint256,uint256,uint256)","4a8b2b27":"testOne()","4a8b5389":"allocateBountyAndEcosystemTokens()","4a8beaf4":"decline(string)","4a8c1fb4":"isActivated()","4a8c2d64":"TopsXToken(uint256,string,uint8,string)","4a8c3129":"MultiOwners()","4a8cbae1":"charityPercent()","4a8e4d78":"getDuesIn(uint256)","4a8e5651":"resultAccept()","4a8ef4bd":"setOrderBookAcount(address)","4a8ef851":"pushTicketSetToAccount(uint256,uint256)","4a909d5f":"transferWithLockup(address,uint256,uint256)","4a910046":"getLastHash()","4a914e8c":"calculateTotalExpenseWithdrawableAmount()","4a915ea2":"votedHarvest()","4a91e536":"getWinnerDetails(uint256)","4a91ec80":"prospectors_dev_allocation()","4a91ee2a":"allowByPassword(bytes8,bytes)","4a91f195":"totalBought()","4a923199":"maximumTNB()","4a92fa06":"createPromoRide(address,string,bytes7,uint256)","4a92fb3a":"proxyTransfer(address,address,uint256)","4a943eb3":"numsuccesses()","4a945f8d":"setAddresses(address,address,address,address)","4a947bdb":"putMatingRequest(uint256,uint256)","4a950db6":"tradetxToken()","4a950f00":"TurkeyBurgerToken(uint256)","4a955659":"_getNewLotteryCreatedAt()","4a96712e":"confirm(bytes32,address,uint256,uint8,bytes32,bytes32)","4a96d129":"OfferTime()","4a975d6b":"allocateRestrictedTokenTo(bytes32,bytes32,bytes32,uint256)","4a980b49":"IRideToken()","4a98146a":"VILLAGE_START_PRICE()","4a994d22":"_getReleaseDate(uint256)","4a994eef":"setDelegate(address,bool)","4a9952c7":"setMintTokenOwner(int256,address,address)","4a9a6f15":"getFromFaucet(string)","4a9b3f95":"personUpdateName(uint256,string)","4a9b5c2e":"CREATOR_TOKEN_END()","4a9bdb65":"byuoutCount()","4a9cdfad":"setPlayerLAff(uint256,uint256)","4a9d367b":"RecipientChanged(address,address)","4a9d9172":"test_testableStandardCampaignAbsolvementAfterPayout()","4a9f0110":"setSellDailyLimit(uint256,bytes2,uint256)","4a9f6d4a":"setMaxPreCrowdAllocationPerInvestor(uint256)","4a9fefc7":"getReferrer(address)","4aa16737":"enter(uint8)","4aa1acb3":"withdrawEth(uint256,bytes)","4aa1d21b":"transferDryRun(address,address,uint256,uint256)","4aa1dde4":"isDisclosureFullySigned(uint256)","4aa2f0f5":"HKD_Omnidollar()","4aa3fcd3":"_getSkillConfigs()","4aa41e53":"minFinneyPerHedgeTransfer()","4aa47a50":"isIntermediateVault()","4aa4ba9b":"storeBatch(string)","4aa5a05d":"maxP1Cap()","4aa5b398":"voteCurrentResult()","4aa669d8":"Buy_Wall_level_in_wei()","4aa66b28":"getBonus(uint256)","4aa678c3":"getMyUnlockValue()","4aa6c09a":"setTargetDiscountValue3(uint256)","4aa735c0":"BST()","4aa74c27":"_emitFuture(bytes32,uint256,uint256,uint256)","4aa77c71":"Visualrocktoken()","4aa83079":"setSaleContractFinalised(address)","4aa880c1":"SetFactoryParams(bool,bool,uint256)","4aa8e57e":"buyBox1()","4aa8e773":"Cancel()","4aab421d":"tgrAmountCollected()","4aab8c14":"setPonzi(uint8,uint256)","4aabcec7":"SimpleWallet()","4aac390a":"hasLanguage(address,address,uint256)","4aac75a7":"setMainSaleDates(uint256,uint256)","4aaca86d":"saleStage()","4aacd437":"freezeAccountPartialy(address,uint256)","4aaceed3":"icoBonus2()","4aada45f":"KittensDroped(uint256,uint256)","4aae385f":"preSaleFirstStartDate()","4aaf4a12":"getOwner(string)","4aaf6b86":"contract_state()","4ab0c0ee":"testConcatMemory32Bytes()","4ab0fc08":"setDefaultURIEnd(string)","4ab1c98f":"requestControllerContractMigration(address)","4ab24cf3":"pornToken()","4ab273f0":"SellEggs()","4ab320b4":"viewSettingsChange(uint256)","4ab358c7":"recoverFunds(uint256)","4ab3bbdc":"_brokerFeeDistribute(uint256,uint256,uint256,uint256)","4ab3bc23":"getSelfCardDatas()","4ab3d487":"newEntry(uint256)","4ab40ac6":"allOpenTradesAmounts()","4ab5439b":"TEAM_POOL_ADDR()","4ab54530":"inPreSale1Period()","4ab5cc82":"latestValue()","4ab6d337":"getContributorsLength()","4ab74a1e":"tok()","4ab7508a":"multiWallet()","4ab788cb":"prebridge()","4ab798f1":"toggleTransfer()","4ab7cbfe":"getMinerHalvingHashRateOf(address)","4ab89400":"cancelRefund(address)","4ab9792d":"setTokenFrom(address)","4aba5f34":"getCandidatesList()","4aba76a3":"ESlotsToken()","4aba7f96":"setMixGenAddress(address,address)","4abad407":"startCrowdfund(uint256)","4abb525a":"moonIncContract()","4abb9d39":"depletable()","4abc8652":"inPrivateSalePeriod()","4abd89bd":"MDICOStage2(address,address,uint256,uint256,uint256,uint256)","4abd8e01":"putStcWithBtc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","4abd8f65":"updateEnabled()","4abdf2e0":"setWithdrawLimit(uint256)","4abe1a62":"settleEtherPolicy(address[],uint256[],uint256[],uint256[])","4abe34f2":"TecToken(string,string,uint8,uint256)","4abefa36":"getEmployees()","4abfacfd":"createTeam(string,string,uint32,uint32,uint256)","4abfbbe3":"getBlockInfo(uint8,uint8)","4ac0d66e":"newGreeting(string)","4ac1ad78":"getWeekday(uint256)","4ac1b5ff":"GoldmintUnsold(address,address)","4ac25224":"isChannelOpen()","4ac2d103":"miningReward()","4ac36201":"Yachtco()","4ac365c2":"DividendTransfered(uint256,address,uint256,uint256,uint256)","4ac38f13":"BlupassToken()","4ac39f37":"unsafeIsSigned(uint16)","4ac429f2":"ConstantinopleCheckFunction()","4ac54245":"_fulfill(bytes32)","4ac5aae5":"getTotalBonus()","4ac5dea9":"getRoundPointer(uint256,uint256)","4ac6b2be":"getCheckRecordCreator(bytes)","4ac6d5f4":"frostTokens()","4ac79795":"removeLogic(address)","4ac7becf":"SimpleSign()","4ac84218":"RequiredFeeNotMet(uint256,uint256)","4ac84242":"CWT(uint256,string,string)","4ac87af7":"frozenToken(uint256,string)","4ac87e47":"Bittwatt(uint256)","4ac8a529":"createDispute(uint256)","4ac9f0d7":"behalfer()","4ac9f881":"takeSellOrder(address[3],uint256[3],uint256,uint8,bytes32,bytes32)","4ac9fc37":"updateConvertionRate(uint256)","4acb17c8":"getPeggedTokenAddress(address,address,uint256)","4acb232b":"percentWeiMC()","4acb3e59":"QCOToken(address,address,address,address,address)","4acc50eb":"Invoked(address,address,bool,uint256)","4acceeea":"togglePrebrdige()","4acd058e":"auctionBonus(uint256)","4acd44db":"offChainManager()","4acd4d5c":"mintLockCashout(address,uint256)","4acdc150":"setupCrowdsale(uint256)","4acdd29a":"statusPred(address,uint256[],uint256)","4acddfa0":"register(address,string,uint256,string,string,string,bytes20)","4ace9ccc":"ratePlansOfVendor(uint256,uint256,uint256)","4acea254":"inviteAmountLimit()","4acefeb1":"ethartArtAwarded()","4acf071c":"setStepTwoTime(uint256,uint256)","4acf4a27":"withdraw(uint128,address,uint256,uint128)","4acf8867":"PillarToken(address,address)","4ad07b0e":"oracleOutcomes(bytes32,address)","4ad0a529":"currentMigrationTarget()","4ad1cbad":"withdrawTeamTokens(address,uint256)","4ad25557":"getMonsterNum(uint256)","4ad27ae1":"claimInternal(address,address)","4ad37241":"destroyCard(uint256,uint16)","4ad37538":"DJPToken()","4ad42500":"ico26()","4ad447ba":"PutinCoin()","4ad4fa5d":"ERC223()","4ad59c54":"overpays(address)","4ad5a68c":"returnIdImage(uint32)","4ad5f440":"totalIcoTokensSold()","4ad6e648":"fightFactor()","4ad6f9f3":"checkTx(string)","4ad7799f":"VestingReleased(address,uint256)","4ad857a1":"etherSent(uint256)","4ad88363":"reset_application(address)","4ad8c869":"reCommentReward()","4ad8c938":"createSiringAuction(uint256,uint256,uint256,uint256)","4ad9d7ab":"getGoldStatusRegistered(address)","4ada218b":"tradingEnabled()","4ada3b32":"approvedAccount(address,bool)","4adaedef":"send_allowed()","4adaf5f6":"changeFundOwner(address)","4adaf748":"eBlockPower()","4adbe551":"whitelistAdmin()","4adc0b09":"setMembershipPrice(uint8,uint256)","4adcbd19":"isThisHardforkedVersion()","4adf6591":"setReportTimestamp(uint256)","4ae00041":"call(address,bytes,uint256)","4ae0ac60":"FobsCoin()","4ae0f543":"publicAllocation()","4ae12e9f":"FHFToken()","4ae184f2":"createStandingOrder(address,uint256,uint256,uint256,string)","4ae2b849":"PHASE_DURATION()","4ae2c351":"createCrowdsaleTiers(bytes32[],uint256[],uint256[],uint256[],uint256[],bool[],bool[])","4ae3164d":"getNewGens(address,uint256)","4ae34a96":"changelp16(address)","4ae34bb1":"EfectiveToken()","4ae3643f":"phase_4_token_price()","4ae4dd6b":"KeyRewardPool(uint256,address,address)","4ae4e9ea":"m_currentTokensSold()","4ae51a9a":"transferDevTokens(address)","4ae55dd0":"amendedEarlyPurchaseIndexes()","4ae5d478":"setNodesVars(address)","4ae5eecb":"getUserP3DDivEarnings(address)","4ae6ab70":"_getRevisionTimestamp(bytes20,uint256)","4ae85627":"grindUnicorns(uint256)","4ae86038":"MultiBonusCrowdsale()","4ae8c55f":"getWwLength()","4ae8ef06":"setLastTier(uint16)","4ae8f9fb":"FSCP()","4ae90a40":"isNotaryAdditionValid(address,address,uint256,uint256,string,bytes)","4ae931cc":"setPresellUpToTime(uint256)","4ae96e77":"setTransformTarget(uint256)","4ae9af61":"getBotStats(uint256,uint256)","4aea0aec":"lendFee()","4aea5f0f":"Artcoin(address,uint256,uint256)","4aea7aa9":"SetIDChain(address,address)","4aeb0241":"LisaToken()","4aeba1a5":"removeCustomerService(address)","4aec4677":"migrateLosingTokens()","4aec6416":"removeTransferAndCallWhitelist(address)","4aecf91d":"_emitContractRemoved(address,address)","4aed8a76":"inPreSalePeriod()","4aeda70d":"changeAuctionContract(address)","4aeddad0":"ConvertBkp(uint256)","4aef05a5":"addSongWriter(string,uint256,address)","4aef8b7c":"_isOddFlag(uint256)","4aefc3c4":"ContributionStateChanged(address,uint8)","4af153a9":"_message(uint256)","4af165cb":"EPause(address,string)","4af1b8a7":"pullAddr()","4af1f96a":"getActiveSellSize(bytes32)","4af27ba2":"_redeem(address,address,uint256,bytes,bytes)","4af350eb":"transferTokens(address,uint256,address)","4af4a127":"bonusPeriod()","4af4c191":"TIER4_RATE()","4af54311":"burnSomeTokens(uint256)","4af56cb0":"getUseRegistry()","4af69189":"sponsoredJackpotToken()","4af6ffc2":"attest(uint256)","4af7eedf":"VID(uint256,string,uint8,string)","4af80f0e":"setConversionWhitelist(address)","4af98f1b":"setFeeDivider(uint256)","4afb07c4":"getAccountActivity(address)","4afb09c2":"listDTH()","4afbac9c":"removeFromTokenList(address,uint256)","4afbb7d7":"getDepositary_function()","4afc0476":"RedPillCoin()","4afc7774":"_is()","4afce471":"test_requires_depth(uint16)","4afd74ff":"getRefunded(address)","4afd8a19":"getLendingInfo(address,uint256)","4afd8a98":"testEthIcoToken()","4afdcbde":"pauseOperator()","4afe2f80":"setRate(uint8)","4afe62b5":"placeBet(uint256,uint256)","4affb863":"isPartner(address,address)","4b00ebfb":"CheckExecution(string)","4b013f85":"_addVestor(address,uint256,uint256,uint256,bool)","4b023cf8":"setFeeAccount(address)","4b02e328":"IncorrectFee(address,uint256)","4b0304ab":"DonationReceived(address,uint256,uint256)","4b031397":"killAdminOnly()","4b031d0f":"shortSellShares(bytes,uint8,uint256,uint256)","4b03a15e":"_terminateSchedule(address)","4b042c0b":"specialsInfo(uint256)","4b05de75":"seventhTeamWithdrawal()","4b0697e4":"Manager(address)","4b06e1c7":"declareWininingFighter(address)","4b06fb28":"eatUnicornsAlive()","4b0720a7":"customGasPrice()","4b079fa6":"ownerof()","4b084d49":"checkEnd()","4b089b12":"withdrawManagerBonus()","4b09b72a":"reserveAmount()","4b09ebb2":"e_exp(uint256)","4b0a0d04":"checkRequestSignature(bytes,address[],uint256,bytes)","4b0ad8fa":"getStakedShop(address)","4b0adf6c":"MintingAgentChanged(address,bool)","4b0babdd":"releaseTokens(uint256)","4b0bbf84":"addEntropy()","4b0bddd2":"setAdmin(address,bool)","4b0c79aa":"turnOnOraclize()","4b0d5417":"disableSellToken()","4b0daadb":"getStaticArray()","4b0df486":"assertEq23(bytes23,bytes23)","4b0e2c90":"enableInternalLock()","4b0e5044":"HoldToken(address)","4b0e7216":"setBurnAddress(address)","4b0ee02a":"totalBalanceOf(address)","4b0f43fd":"canExecute(address,uint256)","4b106893":"inactive_withdraw(address)","4b11281e":"returnCreatorAddress(bytes32,uint8,bytes32[2])","4b11452c":"changeFoundationAddress(address)","4b114691":"playerInfo(address)","4b1146ca":"TOKEN_SUPPLY_BOUNTY_LIMIT()","4b11982e":"setCooldown(uint64)","4b11e7a0":"getVotingStart()","4b12416c":"setHeroTokenContract(address)","4b12dd39":"BTSCoin()","4b1325ea":"setNewOwnersCountToApprove(uint256)","4b143bb5":"harapan()","4b14e003":"transferAll(address,address)","4b16304f":"setTokenAddress(address,bytes)","4b1700df":"TokenListingManager()","4b1740ad":"tier3()","4b17bdd8":"transferTokensFrom(address,address,address,uint256)","4b18be1d":"moveLeftOvertokensToartistPool()","4b19eb09":"isStatePublic()","4b1a5773":"createSwapTarget(bytes20,address,address,uint256,address)","4b1be424":"getVotesBetweenFor(uint256,uint256,uint256,address)","4b1c5597":"dissolveFund()","4b1c8506":"bonusesList(uint256)","4b1cab4e":"calculateEthToToken(uint256,uint256)","4b1cdc2d":"token6DivsOwing(address)","4b1cff0b":"pot_()","4b1d00ee":"releasedCount()","4b1d29b4":"maxLockPeriod()","4b1dc225":"founderWithdrawablePhase3()","4b1dd21a":"getWhitelistLimit(address)","4b1dd591":"firstDiscountCap()","4b1ebc5a":"perpetuum()","4b1ec20c":"setPropertyPrivateMode(uint16,bool)","4b1ef6e1":"getMyRecord(address,uint256)","4b1f15d1":"updateDragonPrice(uint256)","4b1fb6d4":"removeNacFromNetf(uint256)","4b1fe17e":"ENSResolver(address)","4b200fac":"ClearCoin()","4b20ae39":"create(address,address,address,uint256,uint256,uint256,uint256)","4b21433a":"CoolICOToken()","4b21a587":"sellerfeeDivide()","4b21aaae":"getBondPrice(uint256)","4b2233df":"buyTokenSub(uint256,address)","4b227176":"pID_()","4b236401":"claimPlot(uint256,uint256)","4b242252":"levelByToken(uint256)","4b24ea47":"controllerAddress()","4b24f3a6":"setJackpotFee(uint256)","4b24f7aa":"CSpacesToken()","4b24fd0d":"getKeyType(address)","4b256137":"lockingContract()","4b259b5c":"getCumulativeAllowance()","4b25bfce":"whitelist(uint256,address)","4b269a00":"withdraw(int256[])","4b2702b3":"TokenSwitch(address,address,bool)","4b272c4a":"Greenbit()","4b274458":"getUncleAmount(uint256)","4b27a2ca":"fechVoteMainInfoForVoterBySnapshotBlock(address,uint256)","4b28a674":"organizer2()","4b28bdc2":"allRevealed()","4b2930d0":"IsICOrunning()","4b29c448":"setGoal(uint256)","4b2a4e18":"TradersWallet()","4b2a649c":"ECRecoverWrapper(string,uint8,bytes32,bytes32)","4b2acaa0":"openGateway()","4b2ba0dd":"originalSupply()","4b2be022":"BinaxToken()","4b2c0706":"getPeriod(uint256)","4b2c2596":"MerchantDealsHistory(string)","4b2c89d5":"redeemDeposits()","4b2cbc9d":"etherCollected()","4b2d5164":"transfer_tokens_after_ICO(address[],uint256)","4b2f249a":"isTileLive(uint16,uint8)","4b2f9eb7":"declareNewMaster(address)","4b313043":"preIcoMaxLasts()","4b314b34":"LogPause()","4b319713":"totalWithdrawn()","4b321502":"addHours(uint256,uint256)","4b331ca0":"getCitation(uint256)","4b33eac2":"updateTicketStructure(uint256,bytes32[],uint256[],uint256[],uint256[],uint256[],uint256[])","4b341aed":"totalStakedFor(address)","4b3544d5":"Jakov()","4b35ae33":"setTimeLimited(uint256)","4b369820":"setEntry(string)","4b36bca9":"WagerGames()","4b3727fb":"SshKey()","4b374fbe":"BTEN()","4b376513":"lastBlock_v13Hash_uint256()","4b376e45":"BoodooToken()","4b37c73f":"removeFactory(address)","4b37cf47":"littIsCapsule(bytes32)","4b3881ff":"StakeDestroyed(uint256,uint256,address,bytes32)","4b3955a5":"tier0LOT()","4b396ade":"TicketMultiTear(string,string[],uint256[])","4b3985a4":"shareTime()","4b398a5c":"mainnetLocked()","4b3a5fa6":"saleStartFirstDayEnd()","4b3ab5bf":"paySubscriptionFee()","4b3ab9c5":"getShare(address)","4b3afdd2":"setEthernautsStorageContract(address)","4b3b1d69":"notZero(uint256)","4b3b548f":"preMine()","4b3b6168":"SetNewBigContract(address)","4b3c45db":"getDealDataByNumber(uint256)","4b3ce14d":"set_minUETsPerReturnMoreThan(uint256)","4b3d81b6":"initialBlockTimestamp()","4b3ec03a":"TEAM_ACCOUNT()","4b3f3987":"_updateLock(uint256,address)","4b419b5f":"setcardPrice(uint256,uint256)","4b41c74a":"Ticker()","4b41cb60":"withdrawPreSigned(address,uint256,address,uint256,uint256,address,uint8,bytes32,bytes32)","4b41eb4a":"ZyryanovKubSU2018()","4b41f4df":"transferableTime()","4b42d208":"getUint8FromByte32(bytes32,uint8)","4b432966":"max_fortunes()","4b43b582":"changeAdminWallet(address)","4b43dc51":"testTokensAreLockedDuringSale()","4b449cba":"auctionEndTime()","4b452958":"_setStakingEpochStartBlock(uint256)","4b467105":"walletCommunityReserve()","4b467157":"stopEmergencyWithdrawal()","4b468b0e":"JDAnteil()","4b469490":"RichToken(address)","4b471dd0":"setWithdrawalAndReinvestmentContracts(address,address)","4b496444":"azatipToken()","4b4a456a":"ChargeFix(uint256)","4b4a5088":"switchCompatible20(bool)","4b4af4db":"allocateTeam(address,uint256)","4b4b6338":"MECoin(uint256)","4b4b87c0":"PowerCoin()","4b4bb75b":"DSToken(string,string)","4b4c01f4":"RobincoinERC20(uint256,string,string)","4b4c0d7c":"BONUS2()","4b4c2039":"_B_sendToEthertoteDevelopmentWallet()","4b4e23e1":"TIMESTAMP_BUCKET_SIZE()","4b4e38df":"GetCurrentPoolAmount()","4b4f8e36":"addCZRLock(address,uint256,uint256,uint256)","4b4f90ef":"saleIsOn()","4b504ecd":"logNewPlayer(address)","4b50c9f0":"getGameStartTime()","4b513e82":"RegistrantApproval(address)","4b5243b5":"ETGTestCoin()","4b52f48f":"withdrawLeft()","4b52f89b":"setGiftToken(address)","4b530090":"nextDiscountTTWTokenId1()","4b534c48":"unlockProjectToken()","4b54d131":"wipeProposedActions()","4b54f1fb":"S1Coin()","4b561a16":"getMatchInfo(uint256)","4b563657":"setMessages(bytes32,bytes)","4b56b10d":"preIco()","4b56cd27":"depositBoth(address,uint256)","4b56dcf4":"LogChangeIsPayableEnabled()","4b57b0be":"wethToken()","4b57ed55":"EnonRToken()","4b57fbaf":"SetMinChequeValue(uint256)","4b5830b4":"SENC_CONTRACT_ADDRESS()","4b58484d":"_createPlayer(address,address)","4b58d0bb":"reserveFundAddress()","4b59e880":"puzzle(address,bytes32,bytes32)","4b5a0e65":"getWinningStageInfo()","4b5a726d":"getProgramInfo(uint256)","4b5c0234":"throwsWhenHittingHardCap()","4b5c4277":"log(string,string)","4b5dc8cb":"roundMoneyDown3SFExt(uint256)","4b5dcad7":"ServiceStation(address)","4b5e8d63":"registerInvestor()","4b5f297a":"hasAttribute(address,uint256)","4b5f2fa4":"TravelZediToken(uint256,string,uint8,string)","4b5f3e0a":"getDate(bytes32)","4b5fd350":"withdrawHeldToken(uint256,uint256,uint256,uint256)","4b5fea8a":"milestoneRecipients(uint256)","4b602673":"artworks(uint256)","4b603a83":"mintTokens_(address,uint256,address)","4b61cf17":"SWLPerEther()","4b623178":"removeFromPublicWhitelist(address)","4b627107":"setValidatorDescription(address,string)","4b62e0d9":"buyIns(uint256)","4b63036d":"holderContract()","4b63189c":"softcapPreSale()","4b63e601":"scheduleCall(address,uint256,bytes)","4b641f52":"coinbaseInit()","4b64a00f":"DiscountApplied(uint256,uint256,uint256)","4b64e492":"execute(address)","4b650d0b":"getPlayerClickCount(uint256,address)","4b656b41":"totalWeiRaisedDuringPhase1()","4b66cb7e":"teamHolder()","4b6753bc":"closingTime()","4b67f6af":"name2()","4b689cf0":"setCommunityAccountOwner(address)","4b69c3d4":"getRegistryDataVendor()","4b6a3334":"setEtherPrices(uint256,uint256)","4b6a8604":"setBiddingRate(uint256,uint256)","4b6a9f1d":"STORES_TO_UPGRADE_1CENTER()","4b6acafb":"totalDividend()","4b6ad918":"isCurrentUserRefAvailable()","4b6b2300":"updateTopicAssetClass(bytes15,string)","4b6bc655":"isFreeze(address,address)","4b6bdf1d":"poker()","4b6c144a":"getClaimById(string)","4b6dfe4e":"initialFundBalance()","4b6e7d78":"Data()","4b6ea677":"oracleURL()","4b6ede29":"Users()","4b702afa":"accountS()","4b70cec4":"getTime(address)","4b71bff3":"airdropReward()","4b726f61":"checkCustomer(string,string)","4b729aff":"buyNumber(uint256)","4b72bbaf":"getSirePrice(uint32)","4b739b61":"payByEth(uint256)","4b73ca04":"flipsCompleted()","4b741395":"requestNewMint(address,uint256)","4b749535":"hardCapTokens()","4b750334":"sellPrice()","4b75f046":"tokensIssuedCrowd()","4b75f54f":"formula()","4b760612":"localsCointoken(uint256,string,uint8,uint256,string,string)","4b763fe7":"PersistLimitChanged(uint256)","4b766b95":"markRewardsSet(string)","4b76cb13":"get_status_user(address,address)","4b76fe19":"EtherPredict()","4b778445":"addRound(uint256,uint256,uint256)","4b77b8d3":"stopCrowdfunding()","4b77c468":"invite(address)","4b77d17d":"is_king_found()","4b7829f1":"token_claim_waiting_period()","4b7863fe":"setIBalance(uint256,uint256)","4b78ab61":"notarizationList(uint256)","4b798b82":"setFixes(string,string)","4b79e8ef":"getVariablesForDapp()","4b7a5cc6":"PLATINUM_AMOUNT_NDC()","4b7a7a14":"PresaleFirst(uint256,uint256,address,address)","4b7ae9f6":"returnMe()","4b7b2ed1":"confirmTransaction(address)","4b7b45b4":"DreamMaker()","4b7bb8e3":"CfoAddress()","4b7c1d2c":"TransactionConfirmed(uint256,uint256)","4b7e23b3":"ShapeshiftBotLookup()","4b7fa6db":"viewFn(uint256)","4b7fcee7":"ownerPausePayouts(bool)","4b802dde":"rentals()","4b803095":"processReferralSystem(address,address)","4b813478":"FinishBallot(uint256)","4b81780e":"ADDR_MAYA_ASSOCIATION()","4b82d416":"preSaleSecondEndDate()","4b82ee28":"frozenDaysForEarlyInvestor()","4b82f437":"setFirstReporterCompensationCheck(uint256)","4b836181":"BuyTicket(address)","4b8399f4":"setEnum()","4b841fa9":"redeem(string,uint256,uint256,uint8,bytes32,bytes32)","4b84ee81":"LogAddTokenPairWhitelist(address,address)","4b851b23":"hasDefaultRelease()","4b852c03":"setDuration(uint64)","4b855c62":"purchaseKingdom(string,string,bool,address)","4b8574ad":"AttestationManager()","4b85fd55":"setAutoBirthFee(uint256)","4b8624c4":"BONUS()","4b865846":"suspend(uint256)","4b866981":"LP(uint256,string,string)","4b869e15":"investeth2017()","4b86c225":"lock(address,address,uint256,uint256)","4b86faba":"claimHodlReward()","4b86fc5b":"isEligible(address,string,string)","4b8772c1":"buyUnit(uint256,uint256)","4b886f09":"VantageCoin(uint256,string,uint8,string)","4b891518":"_grantAccess(uint256,address)","4b89c41d":"setClosingTime(uint256)","4b8a3529":"borrow(address,uint256)","4b8adcf7":"pauseContribution()","4b8b4cee":"postExternalPayment(address,uint256,uint256,uint8,uint256)","4b8b704e":"icoTokensCount()","4b8b7a2a":"addCourse(string,uint256,string,string,string,string)","4b8ca215":"Ornament()","4b8d12f0":"migrateAddress()","4b8dbd1a":"VRFtoken()","4b8dc588":"closeRefundVault(bool)","4b8e1ba8":"isMinter(int256,address)","4b8e31a2":"_erc20token()","4b8e38db":"test(uint32[26],uint32[4])","4b8f4b5e":"MordernToken()","4b8f9f87":"ownerSetMinJackpoBet(uint256)","4b8feb4f":"multiSigWallet()","4b901b72":"balanceOfByTranche(bytes32,address)","4b9081bf":"getBonusSale(uint256,uint256)","4b90ac86":"isBountySent()","4b9143f7":"setSold(uint256)","4b915a68":"aliceClaimsDeposit(bytes32,uint256,address,address,bytes20)","4b91ab35":"unfollow(bytes32)","4b922b12":"getDataColla_AB_01(string)","4b92738e":"migrateBalances(address[])","4b92f39e":"tradingClass(address)","4b930503":"registerName(address,string)","4b931600":"evaluateCategory(address,uint8,uint256,uint256)","4b932327":"novaluetoken(uint256,string,string)","4b93fec0":"BetContract()","4b944b9b":"post(bytes32,bytes32)","4b94f50e":"getTokenPrice()","4b95dcc0":"ViberateCrowdsale()","4b960794":"spotsLeft()","4b963025":"addUniqueSaleTokensMulti(address[],uint256[])","4b96b0ee":"registerZone(bytes8)","4b96f855":"burnPercentageDefault()","4b97aed9":"numOptions()","4b97e6cc":"withdrawEthBalanceSave()","4b991bde":"challenge(uint64,uint256,bytes,bytes,bytes)","4b997d9a":"sendTokens(uint256,address,bool)","4b99f0c5":"setTradingPairCutoffs(bytes20,uint256)","4b9a22af":"teamWon()","4b9b808d":"setResetVoteKindnessEvery(uint256)","4b9c4358":"betPlaced(address,uint256,uint256)","4b9c78e5":"buyEngineer(uint256[])","4b9cdbe7":"addCurrencyInternal(uint256)","4b9ce83c":"recordAssetPrice(uint128,uint128,uint128)","4b9d5047":"PlutoToken()","4b9d8624":"getLinks(address)","4b9de7a2":"dataIdentifiers(uint256)","4b9de81e":"endTimeRound2()","4b9e7ecd":"test_1_restrictDoubleVote_shouldThrow()","4b9eb771":"CAT_PER_ETH_FIRST_EARLY_BIRD_RATE()","4b9ed302":"setEarlyInvestorsBonus(uint256)","4b9ee106":"setMetaBetWeight(uint256)","4b9eea9b":"decodeKYCFlag(uint128)","4b9f5c98":"vote(bool)","4b9faf4c":"setTokenBalance(uint256,bool)","4ba034dc":"unlockGrowthPoolTokenSupply()","4ba0dd3c":"BotFarmer()","4ba1f098":"acceptRequest(uint256)","4ba20050":"getProduct()","4ba2363a":"pot()","4ba26466":"TPP2018TOKEN()","4ba2ab8a":"RockPaperScissorsAdvanced()","4ba2d5ff":"setThreePowerAges(uint256,uint256,uint256,uint256,uint256,uint256)","4ba336e5":"calculatePoolCut(uint256)","4ba4079a":"enableSwitch(bytes32)","4ba4c16b":"guess(uint8)","4ba4d784":"getMinutes(uint256)","4ba5b7b3":"crowdsaleRefund()","4ba6e72e":"advisoryTotalSupply()","4ba71f3c":"OxToken(address)","4ba79dfe":"removeAddress(address)","4ba8fde0":"_computeIncentiveCut(uint256,uint256)","4ba90201":"setFinishPreICO(uint256)","4ba9bb67":"arr(address,address,uint256)","4ba9fb71":"closeAskOrder()","4baa39be":"editBet(uint256,uint256,uint256)","4baa8160":"triggerAttack(uint32,uint128)","4baa9dc7":"addCashback(string,address,uint256[],uint256[])","4baaab80":"MyToken(string,string,uint256,uint256,address,address)","4bab0236":"wercoin()","4bad0881":"P4WDToken()","4bad294d":"asFunc(uint256)","4bad3327":"_mul(uint256,uint256)","4bae2ef1":"referrerBonus()","4bae6659":"fixedDeposit(uint256)","4baf4a76":"addToWhiteListMultiple(address[],address[])","4baf7a30":"TypesToBytes()","4bafa2a4":"totalMIT()","4bafa437":"setSECOND_STEP_MULTIPLIER(uint16)","4baffdc6":"_withdrawHoldVault(uint256)","4bb017a1":"destroySalesManager(address)","4bb07665":"whitelistUser(address,uint128)","4bb13055":"returnAllAvailableFunds()","4bb13e63":"setTripleRoomMin(uint256)","4bb22b5a":"execReturnValue(uint256)","4bb24399":"survive(address,address,uint256)","4bb278f3":"finalize()","4bb2e417":"SokToken()","4bb32e8c":"setDNoEditors(bytes32)","4bb37790":"restrictionExpiraton()","4bb4b260":"cashAllOut()","4bb593b2":"updateUser(address,string,uint256,uint256,uint256,string,bool)","4bb6e766":"checkTransferAllowed(address,address)","4bb72dea":"setPriceStep4(uint256)","4bb77d9d":"updateRates(uint256[])","4bb8596e":"managerSet()","4bb89c4d":"sendBounty()","4bb9962f":"HexelErc20Token(string,string,uint256)","4bba32fb":"round3StartTime()","4bba38b8":"getRef(address,address)","4bba863e":"getEthOfferor(uint256)","4bba8a58":"RepostiX(address,address)","4bbaa946":"getAllArea()","4bbb216c":"_target(address)","4bbb58b2":"setVirusInfo(uint256,uint256)","4bbbe0cc":"exporter()","4bbc142c":"allowOwnership(address)","4bbc2a4a":"changebank(address)","4bbcc1bc":"payoutSelf(address)","4bbcd6e8":"buyPresaleTokens(address)","4bbd3061":"DateCreateToken()","4bbf2c69":"excludeInvestor(address)","4bbf3a7a":"swapToken(uint256)","4bc091a3":"getCrowdsaleStartAndEndTimes()","4bc18a64":"deleteLock(address,uint8)","4bc1aa42":"VESTING_ADVISOR_CLIFF()","4bc24ec5":"right61(uint256)","4bc2a657":"setVoter(address)","4bc32ea2":"getBidCountForAuction(uint256)","4bc36600":"reorganizeMembers()","4bc3b153":"REWARD_FORWARD_POSITION()","4bc3df81":"BuyBooster(uint256)","4bc4549c":"todaySold()","4bc4d2ba":"KIN_PER_WEI()","4bc4e892":"startNextEra(bytes32)","4bc53249":"toB32(uint256,bytes,uint256,address)","4bc57a7c":"Medis()","4bc5d101":"CreatorWithdraw(uint256)","4bc70b1e":"withdrawFunds(uint16)","4bc8c477":"VirtualRealEstate()","4bc935d7":"verifyProof(bytes32[],bytes32,bytes32)","4bc9fdc2":"calcMaxWithdraw()","4bca4626":"ethWeiRaised()","4bca5cc0":"_setAdmin(address,bool)","4bca7f95":"NigeriaNairaToken()","4bca893d":"Count(uint256,uint256)","4bcb776f":"sliceIndexThrow()","4bcbcd89":"getEngineerLv1(address)","4bcd245d":"gameStatusSet(bool)","4bce2e9b":"totalEnjSold()","4bce79a1":"getAllSocialAccounts(bytes32)","4bcf244b":"ECRecoverWrapperF(bytes32,uint8,bytes32,bytes32)","4bcf74b2":"AccountMinterAdded(address,address)","4bcf8645":"returnFundsToClient()","4bd09c2a":"distributeTokens(address[],uint256[])","4bd1c253":"ChipExists(uint32)","4bd21127":"setAdminLevel(address,uint8)","4bd22521":"Electricity(string,string)","4bd22766":"refundETH(address,uint256)","4bd3a225":"setMultiplePreSalesSpecialUsers(address[],uint256)","4bd3af72":"sellGolds()","4bd3b4c6":"allowAuditor(address)","4bd4ddb9":"testThrow_invalidZeroValue1()","4bd4e770":"CheckSign(string,string)","4bd50dcf":"sendFromContract(address,uint256)","4bd544e8":"isEligibleToPlay(address)","4bd54f04":"dynamic()","4bd5610d":"jsonCat(string,string,int256)","4bd58c92":"LogBuyForFiat(address,uint256)","4bd67ced":"get_last_asset_document(bytes32)","4bd70ea3":"testFailGetUnset()","4bd7730b":"Senpona(uint256,string,uint8,string)","4bd79ac1":"lastCalculationRewardTime()","4bd889b4":"removePersonalLock(address)","4bd8ae6f":"endCoinFlip(bytes32,bytes32,bytes32)","4bd9d76c":"payUnderwriter()","4bda2ad0":"addNote(bytes20,string)","4bda3f2b":"test_insert_findWithHintPrevUpdateTail()","4bda87b5":"GCHToken(string,string,uint8,uint256)","4bdb7369":"hasBoughtEgg(address)","4bdbb944":"GodviewChain(uint256,string,uint8,string)","4bdbea2f":"latestBalanceCheck(address)","4bdc44ae":"setNote(uint256,bytes20,string)","4bdc4ffe":"ProposalTallied(uint256,uint256,uint256,bool)","4bdd6a8e":"KPOPIO_CONTRACT_ADDRESS()","4bde38c8":"platform()","4bdec44a":"VotingRightsGranted(address,uint256)","4bdf1b0e":"receiveApproval(address,uint256)","4bdf6667":"IsGenesisAddress(address)","4bdf7e8b":"_updateExperience(address)","4bdfa061":"postGenesisSales(bytes32,uint256,uint256)","4bdfa999":"Given(uint256,address)","4bdfbb75":"isCanvasFinished(uint32)","4be02f32":"getPlayerWithdrawal(uint256,uint256)","4be04fd9":"getMyLastScore()","4be185f0":"editionOf(uint256)","4be36323":"bonusRoundId_()","4be366d5":"purch(address,address,uint256)","4be39f2f":"FEED2()","4be422ae":"logOut()","4be42c08":"updateRewardAmount(bytes32,bytes32,uint256)","4be5739e":"PUBLIC_SALE_LIMIT()","4be62668":"MainSaleDistributed()","4be6c20a":"Error(uint8,address,address)","4be7183a":"init(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4be7ced7":"withdraw_team_fund(address)","4be860eb":"getMinGas()","4be9b992":"THRESHOLD3()","4be9d332":"jsonCat(string,string,string)","4bea4df7":"addLeaderboard(string,uint256)","4beb031b":"numBallots()","4beb536e":"allWagered()","4beb9e32":"approveByAddress(address)","4bebbf14":"setother(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4bebdab7":"uintArrayToString(uint256[])","4bec8335":"changeSafeguardStatus()","4becfd56":"getCurrentGameInitialMinBetSize()","4bed33b8":"SHARE_PURCHASERS()","4bed6c23":"donationAmount()","4bed81c8":"getWalletUser(uint152)","4beda18b":"BILLION()","4bee09e1":"changeTicket(address)","4bef6de9":"determinePrize(uint256)","4bef71ac":"changeColorTeal()","4befc326":"temperatureMax()","4bf003fa":"After(uint256,bytes32)","4bf02421":"calculateAttributeTotals(uint256)","4bf0d331":"canDeposit(address)","4bf1b68d":"setTokenSupplier(address)","4bf2c7c9":"setBurnFee(uint256)","4bf2d314":"setAdvisoryPool(address)","4bf365df":"mintable()","4bf49313":"requestPayment(uint256,uint256,string,address)","4bf4e421":"client_address()","4bf5ac36":"saleAgent2()","4bf69206":"stakeFor(address)","4bf79cd9":"OutCloud(address,address)","4bf80d39":"giveConsent()","4bf899a3":"buyPosition(address,uint256)","4bf8e7a2":"getPriceInPastAuction(address,address,uint256)","4bf9407f":"changeRecipientAddress(address)","4bf96e60":"nextPurchasableBlocknumber()","4bfa0d11":"TDEEndDate()","4bfa798a":"getWarlordChestAvailable()","4bfad14d":"WinnerPicked(uint8,address,uint16)","4bfaf2e8":"getPendingVersionTimestamp()","4bfbe5df":"eventDate()","4bfc4782":"change_a(address)","4bfde393":"myWinShare()","4bfe2779":"setETHRate(uint256)","4bfe642d":"proWallet()","4bff1b95":"STARTING_KEBAB()","4bff5009":"getUserByName(string)","4bff8e51":"_runAdvanceClock(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4bffc5e4":"allowance(address,uint256,uint256)","4c007b35":"BigerToken()","4c0348ee":"nInvalidatedHashes()","4c04f7f2":"addTranslatorContent(address)","4c05a636":"Registrar(bytes32,uint256)","4c05b40e":"createShortId(bytes32,bytes32)","4c05df98":"startEarlyBird()","4c062c81":"moveNapkinsTo(uint256,address)","4c07fb4f":"editAddressDescription(address,string)","4c081138":"assign(uint256)","4c097cb4":"trigger(bytes32)","4c0999c7":"bytes32ToBytes(bytes32)","4c0a6532":"lrcTokenAddress()","4c0aac9a":"WithdrawFunds()","4c0b1c90":"getMarketer()","4c0b2973":"mfrOf(bytes32)","4c0bcfe5":"getTransferableBalance(address)","4c0bd3ef":"getLLV_edit_16()","4c0c0ac2":"rewardsAllocation()","4c0ddea8":"decodeTokenImbalanceData(uint256)","4c0e207a":"__outputCallback(uint256)","4c0e9e6a":"acquisitionsWallet()","4c0eceb5":"plusOnePonzi()","4c0ee2e1":"unPausePriceRaise()","4c0eed51":"addMarketMaker(address,address)","4c10d0a5":"addFrostTokensMulti(address[],uint256[],uint256[])","4c123019":"tokenFallback(address,address,uint256,bytes)","4c125e79":"cancel(uint64)","4c12b33f":"burning()","4c12d8b9":"recipientETH(address)","4c12f8bb":"creditCEO()","4c13017e":"Transfer(bytes32,address,uint256)","4c1334a8":"GoodTo(uint256,string,string)","4c1344b7":"isGuilty(address)","4c136ea8":"totalEDUSAllocated()","4c13fbb2":"ImageToken()","4c146f38":"getFrontEndTokenBalanceOf(address)","4c14743b":"UnlockedBalanceOf(address)","4c148efb":"CollectPayment(address,address,uint256)","4c14f334":"getCouponBonus(string)","4c15469c":"tresholds()","4c1674e5":"descOf(uint256)","4c167a6e":"approvePreSigned(bytes,address,uint256,uint256)","4c1736a0":"subFrozen(address,uint256,uint256,bool)","4c174ef0":"isWitness(address,address)","4c176b21":"WALLET_SALE()","4c17b322":"performRead2()","4c182a95":"doDeveloperGrant()","4c18e57e":"PositiveWhuffiesSent(address,address,uint256,string)","4c18e960":"allowRecurringBilling(uint256,uint256,uint256,uint256)","4c19a199":"openGameResult(uint256,uint256,uint256,string)","4c19dd1c":"VicDemToken()","4c1b2446":"transmitInteger(address,bytes,bytes,uint256,uint16)","4c1b64cb":"deleteAccount(address)","4c1b8ffd":"voteCost()","4c1bbef8":"claimerKey()","4c1ccadf":"SmartexInvoice(address,address)","4c1d1fde":"withdrawTokens(address,uint256,uint256)","4c1d79ee":"setSalePeriod(string)","4c1d9d48":"tokenIndexById(uint256)","4c1e4169":"BIZDEV_WALLET()","4c1f20ec":"CEO_TEAM()","4c1f524f":"convertToMiniTtc(uint256)","4c1f7635":"getAccountRest(address)","4c1f85ae":"updateHydroMap(address,uint256,uint256)","4c1fbde8":"getPlayerColor(uint256,address)","4c20179e":"devAllocation()","4c2067c7":"expired()","4c207ac8":"setTraps(uint256,uint16,bytes)","4c21eb07":"put(string)","4c21fa45":"getNoteByIndex(uint256)","4c2233a5":"withdrawAll(uint256,address)","4c228656":"advisorsAllocationTokenSend(address,uint256)","4c22a8d1":"kvcAdd(uint256,uint256)","4c22b792":"calc_wei_rewards(uint256,uint256,uint256)","4c22c119":"isUser()","4c2324bb":"toBytes(uint256[])","4c23ba50":"removePeer(address)","4c25162a":"Babatoken()","4c2516de":"swapToken(uint256,address)","4c25727b":"viewPollData(uint8)","4c258eb1":"getQtyFilledOrCancelledFromOrder(bytes32)","4c25deb5":"USER_GROWTH_TOKENS_RESERVED()","4c26064b":"MVGcoin(uint256,string,string)","4c266e11":"setExchangeGroup(address,uint256)","4c26aaa2":"TokenExchange()","4c26b6eb":"total_buy()","4c281603":"getPlayerMax(uint256)","4c28a043":"adminGetFeeDial()","4c294188":"customer_tickets(address,uint256)","4c2a664b":"purchaseNotes(uint256)","4c2a799f":"checkFileProof(bytes32,bytes32[10],uint256[4],bytes32[],uint256)","4c2bc9a9":"assertEq26(bytes26,bytes26)","4c2bd226":"getDescriptionHash(address)","4c2d0378":"getAllTransactionIds()","4c2d71b3":"setConfigAddress(bytes32,address)","4c2d8649":"transferComplete(address,uint256,bytes)","4c2db6d8":"buyCoin(uint16)","4c2f04a4":"AddMessage(address,uint256,string)","4c2fac53":"requireFunction()","4c2fc8b2":"acceptProposedMilestones(bytes32)","4c2fe456":"right94(uint256)","4c2ff0ae":"getLLV_edit_31()","4c3052de":"submissionGasPriceLimit()","4c316f70":"mineCoins(uint256)","4c31a0ca":"mintFoundersRewards(address,int256)","4c31df50":"nextroundsolsforhire()","4c3221e1":"complexityForBtcAddressPrefix(bytes)","4c32a444":"_onCanvasCreated(uint256)","4c330471":"getReferralBalance()","4c33fe94":"cancel(address)","4c34c8de":"USDCToken()","4c34d7e9":"UNITED_NATIONS_FUND()","4c352323":"getNewVoting(uint256,bytes32[],address[],uint256[])","4c364ceb":"createAccessory(uint8)","4c36c36e":"resolveBet(uint256)","4c36cf16":"addRoundPrice(uint256,uint256,uint256,address[])","4c37077f":"chargeBuyer(uint256,address,uint256,uint256)","4c381350":"meteredPrice(uint256)","4c382d99":"terminateEmployee(address,uint32,uint8)","4c38661d":"lastPing(address)","4c387d82":"NSCToken()","4c38c366":"reLoadXaddr(uint256)","4c3997d4":"cancelBuyAuction(uint256,address)","4c3a00cb":"totalTradeRecords()","4c3a1a1a":"returnUserGrowthPoolTokens(address,uint256)","4c3a6ae0":"isMultiSigWallet()","4c3a9675":"ManagerProxyTargetMockV2(address)","4c3acb86":"debug(string,string)","4c3b67b4":"withdraw_for(address)","4c3ba268":"getBySemanticVersion(uint16[3])","4c3bf0b5":"changeInitialCost(uint256)","4c3d1f00":"EthDailyLimitChange(uint256)","4c3dff01":"InitialBasicBalance()","4c3ec50b":"FarziToken()","4c3eea9e":"generalLog(uint256)","4c3ef6dc":"minimumTokenThreshold()","4c3f333f":"Kalypso()","4c3f8ec0":"Tier_Wildcat_Registration()","4c409b80":"ChangeWallet(address,address)","4c413139":"minutesToPost()","4c418879":"getMyDino()","4c41a6c7":"blockThreshold()","4c41bf9d":"getOnBurnTargetValue()","4c4316c7":"donate(uint64,uint64,address,uint256)","4c433843":"parityOwner()","4c439436":"getTicketsAtAdress(address,address)","4c44d53f":"test_fourInvalidEqBytes32Message()","4c45c7ec":"setPhase(uint8,uint256,uint256,uint256,uint256,uint256)","4c466d37":"signer(bytes)","4c46e52c":"trancheOneBalanceOf(address)","4c46fb73":"stageCaps(uint256)","4c471cde":"scheduleCall(address,bytes4,bytes,uint256,uint256,uint8,uint256)","4c4766e8":"KittenRegistry()","4c478b62":"ERC827TokenMock(address,uint256)","4c47e9ee":"setLockedConfig(address[],uint256[],uint256[])","4c480c2a":"ownerCandidat()","4c4870c6":"checkGoal()","4c488dac":"getChannelValidUntil(bytes)","4c49515d":"presaleTokensIssued()","4c4a386f":"refundEnabled()","4c4a4c67":"assertEq2(bytes2,bytes2)","4c4a9761":"tokenRate4()","4c4aea87":"getReleaseData(bytes32)","4c4bf936":"landData(int256,int256)","4c4c23dd":"upgradeGreatCoin(address)","4c4c447e":"cancelBattle(uint256)","4c4cb69e":"INVEST_AMOUNT()","4c4cea5a":"completeAt()","4c4cfc3b":"tokensForEcosystem()","4c4d07e7":"isBouncer(address)","4c4d460e":"LogCampaignCreated(address)","4c4dc6e0":"docCount()","4c4deecb":"__callback(uint256,string)","4c4e03f2":"_getExtraParam(bytes)","4c4e829c":"TransactionRevoked(uint256)","4c4efef7":"totalCLNcustodian()","4c4f1386":"WartecToken()","4c4fa89a":"getChildBranch(bytes32)","4c50ea27":"RHOC(uint256,address)","4c515fb5":"TEAM_VESTING_CLIFF()","4c51b021":"substract_individual_shares(uint256)","4c524be4":"selectWinner(uint256)","4c53adb0":"blackFridayEndBlock()","4c54cc1d":"managerETHaddress()","4c56e992":"refillContract()","4c574afe":"unblockSecondStake()","4c575fcc":"numberOfRawEarlyPurchases()","4c57fc28":"setTokenMintFeeReceiver(address,address,address,address)","4c5802c1":"getPhaseAddress()","4c585ce4":"approveMultipleUsers(address[])","4c5879cf":"WidinShares()","4c58994c":"TrypCrowdsale()","4c594c1e":"limitDateCrowdWave3()","4c59b47c":"EthereumLottery(address,address)","4c59f021":"CakCrowdsale(uint256,uint256,uint256,address)","4c5a2044":"licenseCostDenominator()","4c5a82cb":"reportTemperature(int8[],uint32[])","4c5a94fe":"_removeToken(address,uint256)","4c5b632a":"addcoin(string,string)","4c5be574":"getOdds()","4c5cbe9a":"getBalancesForTeam(address)","4c5d6d93":"totalCrowdSale()","4c5df57a":"createLoan(address,address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,string)","4c5df737":"addCar(string,string,string,uint16,string,address)","4c5f338b":"CheckStudentofCourse(uint256)","4c610ba4":"totalRewardThisYear()","4c611268":"balanceOfUnclaimedCookie(address)","4c6226fc":"oraclizeFee()","4c62a644":"withdrawComission()","4c64384c":"maxPrivateSale()","4c64cf92":"mint_time_locked_token(address,uint256)","4c65b2b3":"ethOwner()","4c65c62e":"AgentContracteGalaxy(address,address,address,uint256,uint256)","4c661a2c":"DaoOwnershipTransferred(address,address)","4c66326d":"deregisterCallback(address)","4c6686d8":"CONFIG_FEES()","4c66bcc1":"WorldWideLoveToken()","4c67567a":"firstLockAmount()","4c676725":"fundTeamCompany()","4c68df67":"totalReserve()","4c69c00f":"setOracleAddress(address)","4c69ec93":"changeReceiver(address,address)","4c6a3334":"buyEthLootbox(address)","4c6adb31":"firstReporterCompensationCheck(address)","4c6b25b1":"results(bytes32)","4c6b6cad":"newProposal(string,bytes)","4c6c27a1":"judgeCustom(bytes32,bytes32,bytes32,uint256,bytes32,uint256[4],bytes32[10],uint256[4],bytes32[])","4c6c6a5c":"upgradeFrom(address,address,uint256)","4c6c8bc3":"distribute(address[],uint256[],bytes32[])","4c6d1d9e":"checkOutTag(string)","4c6d350b":"approveShutdown(uint256)","4c6d8aac":"hasParameters()","4c6e4453":"EcoLend()","4c6e5926":"send_to_side_chain(uint256,address,uint256)","4c6ebbbe":"maxIcoTokenLimit()","4c6fc20f":"setDisbursingAddr(address)","4c703ccd":"FirstERC20TestToken()","4c70b6b2":"deList(address)","4c714ed4":"DescriptionChanged(string,string)","4c7241f8":"Potentl()","4c738909":"getMyBalance()","4c73eef6":"card_black_minamount()","4c743c45":"FCTOKEN()","4c750bca":"bountyFunds(address,uint256)","4c75dc8f":"EFOcallBack(string)","4c75fbca":"getThirdAddressBalance()","4c76318e":"award(bytes32)","4c77a28d":"AppleCoin()","4c77c0e2":"period2Numerator()","4c77e5ba":"getAddressValue(bytes32)","4c780596":"UpgradeSpace(uint8,uint16)","4c783bf5":"isControllable()","4c78529e":"setOfficialUrl(string)","4c78b276":"getShare(address,uint256)","4c7940c5":"getWithFrozenStockBalance(address,address,uint256)","4c79afe0":"EventBuyShip(address,uint32,uint32)","4c7a0271":"buyMiner(uint256[8])","4c7a2254":"checkMyWithdraw()","4c7a5c0f":"ArtifactCoin(address)","4c7ab28d":"setMaxToSell(uint256)","4c7ae3ac":"getNameFromKoikeToken()","4c7b18fd":"ratioUpdateTime()","4c7b8fba":"contributionHashes(uint256)","4c7c3ca1":"KryptopyCrowdsaleMock(uint256,uint256,uint256,uint256,uint256,address)","4c7c71fe":"startTimes()","4c7ce18a":"withdrawReturns()","4c7cfd9b":"MarketboardListingPriceChanged(uint256,uint256)","4c7d3e3f":"icoIsClosed()","4c7d7d3f":"standardToken()","4c7e6bab":"tokensPerCentsDayOne()","4c7f0bdd":"isBackend(address)","4c7f74df":"EtherDelta(address,address,address,uint256,uint256,uint256)","4c7fa728":"getPlayerLeftDividend(address)","4c808da8":"StageUpdated(string,string)","4c80b03b":"minTransAmount()","4c80c937":"getEpochData(uint256,uint256)","4c80f5c1":"minimumAmountToParticipate()","4c813d6d":"sendItDv(string)","4c81a1db":"addressPayableFunc(address,address)","4c81c4d7":"startStage2Time()","4c81e13a":"incentiveDistributionRoundDenominator()","4c81e48b":"testToUint()","4c8316a6":"showTokensStaked()","4c833532":"resumeTransfer()","4c839beb":"getContributionTokens(address)","4c840214":"getBackToken(address,address,uint256)","4c841e5d":"_setBlacklistedUser(address)","4c85a8f3":"isAllowedToMint(address,address)","4c85b425":"buyShares(address)","4c85d2e6":"addImmigrationOfCountry(address,uint256)","4c86c2e5":"setPortUpdate(uint16)","4c86e97b":"bonusTokensLeft()","4c873c48":"tokenSetup(address,address,address)","4c87effd":"delete(bytes32)","4c88bc26":"YEAR_TWO_SUPPLY()","4c899118":"getProposalFromID(bytes32,uint256)","4c89c4c7":"getHash(bytes10,uint8)","4c8b16f4":"setTimeStep(uint256)","4c8b8ca7":"distroyBuyerToken(uint256)","4c8bae93":"_isTradeable(uint256)","4c8c121e":"getGameHash(address,uint256)","4c8cab79":"largestStake()","4c8cc20b":"toContentID(address,string,string,address,uint256)","4c8d1e42":"DockCrowdsale(uint256,address,address)","4c8f3562":"computeCooldownSeconds(uint16,uint16)","4c8f4810":"buyMCT(address,uint256)","4c8fe526":"next()","4c90aaeb":"randomize(bytes32)","4c9151e6":"TransferStarted(address,address,uint256[],uint256)","4c922a9f":"changeColorPurple()","4c9297fa":"scheduleStart(uint256)","4c93505f":"setRevoke(bool)","4c9362aa":"addActiveUserListArr(address)","4c93c1a6":"GetUpTickPrice(uint256)","4c9478ce":"_yearThreeClaimed()","4c947c86":"getInitInputDataBytes(address,address,address,address)","4c94ac6a":"clearMilestones()","4c9599f2":"validityDate()","4c95baf3":"compoundingFreq()","4c95ca9c":"setRatePreICO(uint256)","4c95cb98":"OracleBase()","4c966822":"winnerWithdrawal()","4c96a389":"deploy(address)","4c96f0cc":"transferAllTokens()","4c96f281":"getAllPublishers()","4c97057a":"LogWinner(string)","4c970b2f":"foo(int256)","4c977972":"Soft_Cap()","4c97c836":"upgradeConstitution(uint256)","4c982872":"ElextroCoin()","4c985dfb":"newTokens(address,uint256)","4c98aec9":"CASHX()","4c990cc7":"startAirdrop(address[],uint256[])","4c9b30b4":"allow(bytes8)","4c9b60dc":"changeUserEthAddress(address,address)","4c9b760d":"changeMaxContribution(address,uint256)","4c9e2779":"balancesLocked2Y()","4c9e502e":"totalLoanAmount()","4c9ed763":"requestTokensBack()","4c9f166d":"bettingAllowed()","4c9f45eb":"repossessionBountyPerHundred()","4c9f66c7":"feePot()","4ca0a305":"GlobalIdolCoinToken()","4ca14270":"AddressChanged(string,address,address)","4ca15352":"airDropCount_()","4ca168cf":"register(bytes,uint256,address,string,uint256)","4ca18ebd":"reject(uint256,string,uint256)","4ca1c417":"isValidNameLength(string)","4ca1fad8":"addRequest(uint256)","4ca3a111":"getWeiPriceMicroKeys()","4ca3e9b8":"getProjectAddress(uint256)","4ca40518":"ReBornEnergyCoin(uint256,string,uint8,string)","4ca43f41":"transferAny(address[],uint256)","4ca50f59":"sellsTokens()","4ca5558c":"AllCaptcha()","4ca63a84":"TimeLimitedStoppable()","4ca64b3a":"bulkTransfer(address[],uint256)","4ca6ba2f":"AporooToken(uint256,string,uint8,string)","4ca6d7e6":"tier2Time()","4ca6fcfc":"registerVIP(address,address,uint256)","4ca7fbd0":"updateTokenPriceWeekTwo()","4ca82b52":"finalLoos()","4ca8b0d0":"registerExistingThrone(bytes,address,uint256,uint256)","4ca8c1e8":"isInMaintainance()","4ca92e08":"deductExtraBalance(address,uint256)","4ca98997":"getAmount(uint256,uint256)","4ca9b258":"contributorRefund()","4caa1a09":"_calculatePaymentToOwner(uint256)","4caa7f37":"withdrawSnowflakeBalanceFromVia(string,address,string,uint256,bytes,bytes)","4cad12e0":"orders_sell_price(address)","4cad3438":"setRateFinalStage1(uint256)","4cad42d3":"testWager()","4cae5f99":"loanRepaymentNotification(uint256)","4caeebd0":"STAGE_FOUR_TIME_END()","4caf6231":"COLOR_WHITE()","4cb0c7a1":"getOrdersOfVendor(address,uint256,uint256,bool)","4cb10ed3":"hasStartTimePassed(bytes32)","4cb44f8d":"getConfigEntryAddr(bytes32)","4cb532db":"socWarefareAddr()","4cb5465f":"transferWithLock(address,bytes32,uint256,uint256)","4cb5a45d":"GSUMedal()","4cb5ef77":"closeVoteRevealPhaseIfAllowed(address,bytes32,bytes32)","4cb5f1c6":"totalsum()","4cb6bf73":"FZTToken(address)","4cb6d6af":"finalizeCrowdsale(address)","4cb6f4a5":"voteRequest(uint256)","4cb71b9b":"getAllReleaseHashes()","4cb79536":"presaleStartBlock()","4cb7da65":"abortMatch(uint256)","4cb7dd6f":"popLeader(address)","4cb84b9a":"getIcoCap()","4cb85312":"_addInvestor(address)","4cb85356":"BranchSender(uint256,bytes32)","4cb88ad8":"ABEToken()","4cb93ff8":"capTokenAmount()","4cba4ca4":"updateGene(uint256,bytes)","4cba5c6a":"setResults(uint256[4])","4cba67ce":"addAddressToAccountForUser(address,bytes,bytes,address,bytes32)","4cbabcdc":"invest(bool)","4cbac3d2":"calculatePurchasedTokens(uint256,uint256)","4cbb4a0a":"_removeTokenFromAllTokensEnumeration(uint256)","4cbb7532":"setBorrowAgreement(uint256,uint256,string,string)","4cbbb987":"DOSXToken()","4cbc07f2":"weisPerBigToken()","4cbc49ad":"claimRewardManually(address)","4cbc82cd":"getTrackByArtist(address,uint256)","4cbd2b74":"allowanceByLegacy(address,address)","4cbe02a5":"createAuthorDrawings(bytes32,bytes32,address,string)","4cbe552c":"myEntityStructs(uint256)","4cbee813":"logout(string)","4cbf3d4c":"getNumbersOfPick(uint256,uint8)","4cbf6ba4":"hasDNSRecords(bytes32,bytes32)","4cbf867d":"intervalSecs()","4cbfafd9":"DefaultReleaseDelayed()","4cbfbf47":"REAPER_INTREPID_MAX_CARGO()","4cc05a71":"withdrawCount()","4cc09eac":"tokenRatePre()","4cc0a885":"maxRevealSeconds()","4cc0ee3c":"modifyDescription(address,string)","4cc22528":"setRateForOrder(bytes32,uint256)","4cc22f9d":"getSaleEnd()","4cc2a4bb":"_preValidateTransfer(address,address,uint256)","4cc2b5d0":"addPolicy(bytes32,uint256,uint256,uint256,string)","4cc2c0fe":"getTotalFor(uint256,uint256)","4cc3a6b0":"ConvertQuote(uint256)","4cc45f50":"changeAddressQueen(address)","4cc47910":"oraclizeQueryIdsToBetIndices(bytes32)","4cc53838":"getSaleContractTargetEtherMin(address)","4cc60757":"getOperator(address,address)","4cc6083a":"totalTrading()","4cc62409":"EOSOwned()","4cc653c8":"calculateDividends_(uint256)","4cc682ee":"getPubKeyHash(bytes20,uint8)","4cc747c8":"unlistAllOpenProposals()","4cc78983":"setPreviousDungeoonId(uint32)","4cc7a88d":"sendLoveToken(uint64,string,string,string)","4cc82215":"remove(uint256)","4cc87328":"adminWithdrawMiscTokens(address,uint256)","4cc885d4":"right65(uint256)","4cc9f4e1":"lockTokenController()","4ccb5a33":"canClosePot(string)","4ccb908f":"auctionSuccessBonus()","4ccbd06b":"MIN_DEPARTURE_LIM()","4ccbe888":"getLongExtra()","4ccbf17b":"presaleAddressAmountHolder()","4ccc4c36":"getPendingOracleFor(address)","4ccc5da0":"sold(bytes32)","4cccb7ba":"unrestrictedWithdraw(uint128,address,uint256,uint128)","4ccd0e1e":"Flippitt(string,string,uint8,uint256,string)","4cce4d63":"addNewCompany(string,uint256,uint256,uint256,uint256)","4ccee9b6":"getAddr(bytes32)","4cceeccd":"setFee(uint32,address)","4ccef7e0":"averageSoldPrice()","4ccf05cd":"CompanyTokenPushed(address,uint256)","4ccf8a35":"TokenSupplied(address,uint256,uint256)","4cd06a5f":"iterateNext(uint256)","4cd08d03":"register(string,string,string)","4cd11943":"NewManualInvestor(address,uint256)","4cd18a83":"gimmeEtherr()","4cd217b7":"getPreEntranceTo()","4cd273d1":"tilePrice()","4cd280bc":"popClient()","4cd28aa6":"_queue(address,address)","4cd2b343":"RedBlueToken()","4cd36fb7":"Mine(address,uint256,uint256)","4cd3745d":"getRandomClassId(uint256)","4cd412d5":"transferEnabled()","4cd44519":"stageTokensBought(uint8)","4cd52207":"_claim(address,uint256,bool)","4cd5af91":"CrowdFundClosed(uint256)","4cd5d776":"FundingWithdrawn(address,uint256)","4cd7699a":"eventCardRangeMax()","4cd85837":"mintICOTokens(address,uint256,uint256)","4cd88b76":"initialize(string,string)","4cd995da":"registerCompany(address,string)","4cd9c3e4":"crowdsaleEndsAt()","4cdabb16":"MAX_PREMIUM()","4cdb48e4":"isValidNym(address)","4cdc6a73":"Marriage()","4cdc9549":"_isApprovedOrOwner(address,uint256)","4cdc9c63":"genesisBlock()","4cdcb334":"transferrers(address)","4cdd3002":"setNote(uint256,bytes32,bytes20,string,string)","4cdd3b43":"getScoreForName(string)","4cddae28":"recharge()","4cdfc605":"Refund_user()","4ce0032f":"TutorialToken(address)","4ce01d86":"totalBetValue()","4ce02a33":"overdraftCliff()","4ce053ab":"approveAndPayout(uint16)","4ce0ef95":"getStatus(address,uint256)","4ce11c52":"children(bytes32)","4ce149d7":"setCandyLandSale(address)","4ce14f8c":"FOMOCoin()","4ce18d6b":"getAmount(bytes)","4ce18ec3":"addInterval(uint256,uint256,uint256,bytes32)","4ce197f3":"GetTempStuffExpire(address,uint32)","4ce1e317":"TeamAndAdvisorsAllocation(address,uint256)","4ce309f8":"getElection(address,address,uint256)","4ce37426":"EtherOlympics()","4ce4f927":"getJackpot(uint256)","4ce51b92":"WithdrawSpecialEth(address,uint256)","4ce56c5d":"ethAvailable()","4ce61604":"InitializedTier(uint256,address)","4ce63074":"test_increaseBlockBy5000()","4ce6962c":"numPurchasers()","4ce6a521":"emitAdditionalTokens()","4ce6a74e":"testerNonReentrant()","4ce7033d":"LogWithdraw(address,uint256)","4ce71fac":"getRegionPurchasePixelPrice(uint256)","4ce75274":"setEnableSell(bool)","4ce99591":"Vegan()","4cea7af0":"MembershipChanged(address)","4ceab75e":"newIdTank()","4ceab858":"multiplex_add(address)","4ceaeb35":"PleasePayMe(uint256,uint256)","4ceb0173":"to(bytes32,bool)","4ceba015":"LogCollect(uint256)","4cec73b1":"checkClaimTokenByAddress(address)","4cecac6d":"requestReward()","4ced0a26":"SetData(string,string)","4ced4734":"isPreSale()","4cedf74e":"get_party1()","4cedfc02":"TornadoChain()","4cedfc0c":"activateWhitelist(bool)","4cee81cb":"Marriage(address,address,string,string)","4cef0cb9":"usdPerEthMax()","4cef0ff6":"approveMore(address,uint256)","4cef2221":"ZazToken()","4cef5a5c":"negligibleRateDiff()","4cf00716":"getCreateFeeTokenFeeWindowValue()","4cf045d5":"addSoftwareExecRecord(bytes32,bytes32,uint256,uint256)","4cf0afca":"changeWallet(address,uint8)","4cf1115d":"ethFee()","4cf125de":"Ledger()","4cf127bf":"modelSupply()","4cf178c6":"POWEROFTHREE()","4cf2010e":"addCar(uint256)","4cf21f5f":"CFNDToken()","4cf2c2a2":"Dexter()","4cf2e2dc":"GameStart()","4cf32de3":"getNumTransactions()","4cf33010":"purchaseShare(uint256)","4cf373e6":"addFortune(string)","4cf37429":"AMOCoinSale(address,address)","4cf43440":"Megaloh()","4cf439d8":"_addToPools(address)","4cf4a292":"getHouseEdge()","4cf50009":"genesisCreation()","4cf52fa2":"buyBulkPremiumCar(address,uint256[],address)","4cf5b6c7":"millWeiRate()","4cf61aba":"_canTransfer(bytes32,address,address,address,uint256,bytes,bytes)","4cf6475d":"getPlayerShipCount(address)","4cf76cca":"thirdDiscountPrice()","4cf78170":"allowedAddress()","4cf812ea":"rateRoundSeed()","4cf8b0f5":"BlipToken(string,string)","4cf8dce7":"balanceOfOre(address)","4cf91026":"isAirdropping()","4cf93599":"getPaidInfo(string)","4cf95c21":"shareholderIsToken()","4cf96509":"safeWithdrawalAll()","4cfb4c28":"roundProfit(address,uint256)","4cfc4d30":"VESTING_DURATION()","4cfd5a82":"phaseOneLimit()","4cfddcfb":"getMarketOrderCategory(uint256)","4cfe3e7f":"debitAccount(address,uint256)","4cfe4c69":"getProviderRateHistory(uint256,uint256,uint8)","4cfe50cb":"BAFCToken()","4cfe59a7":"simulateWithdrawalAmount(address,address)","4cfe62c7":"transferRole(string,address)","4cfea68a":"blocksPerDay()","4cfef220":"getSpankPoints(address,uint256)","4cff5d75":"setTokenAllocator(address)","4cff6ae5":"AltToken(address)","4cff7a82":"createDefaultGames()","4d003070":"timestamp(bytes32)","4d015fcc":"Pong()","4d0217b7":"firstSaleComplete()","4d023404":"removeIntermediary(address)","4d02438b":"getMaximumBetHome()","4d02a8fb":"judgeFakeToken(uint256)","4d047055":"monsterIdToNickname(uint256)","4d053af6":"removeAds(address)","4d056f6d":"coolDown()","4d057803":"TEAM_LOCK_TIME()","4d05a822":"JusticeTokenV2()","4d06068a":"airdropToken()","4d0633f6":"assignedAmountToCornerstoneInvestment()","4d07b23d":"buyPrice(uint8)","4d08e0b4":"mediaTokensName(address)","4d0a32db":"minAmount(address)","4d0a391c":"addPayment(uint256,uint256)","4d0a5dbd":"addPermission(address)","4d0ad141":"CAP_USD()","4d0b2a29":"NUM_TILES()","4d0c381a":"Token99(uint256,address)","4d0c5be4":"redemptionLocked(address)","4d0c69d9":"EnterSwap(uint256,uint256,bool,address)","4d0cac9d":"sendCancelValue(address,uint256,bool)","4d0d1cb9":"processTransfer(address,address,uint256,bytes)","4d0d35ff":"getPlayerAddr(uint256)","4d0d80a2":"_getRandom(uint32)","4d0de225":"getWorkerBalance(address)","4d0e8a5f":"MYEX()","4d126774":"validateWhitelisted(address)","4d1271e3":"VersionedToken(address)","4d129486":"max_shares_to_sell()","4d129fb5":"startPre()","4d12b695":"unbanUser(address)","4d12fca4":"exchanger()","4d130369":"interestPaid(address)","4d130e64":"_collectFee(address,address,uint256)","4d134f2f":"createAddresses(bytes32[],address[])","4d13507d":"releaseFund(address)","4d1387b4":"changeRatio(uint256,uint256)","4d13a583":"PrepaidTokensClaimedEvent(address,uint256,uint256,uint256)","4d13c565":"bVideoCost()","4d13d134":"publicAllocatingToken()","4d140467":"EARLY_CONTRIBUTOR_VESTING_CLIFF()","4d14c57e":"claimBasicResources()","4d14e344":"numberOfChoices()","4d15642a":"startMEAMission(uint256,uint256,uint8,uint256)","4d15d797":"_exists(int256,int256)","4d1636c3":"onSold(address,uint256,uint256)","4d16dd41":"communityUnvested()","4d17ed11":"LUVIToken()","4d17f7fc":"sta()","4d182bfc":"getEpisodeDataRandom(uint256,uint256,uint256)","4d1975b4":"gameCount()","4d199766":"WEI_CAP()","4d19cdf8":"DME()","4d1a08cd":"MIN_LIMIT()","4d1a9763":"T8CToken(address)","4d1b93b3":"allowedTransferWallet()","4d1bc2df":"expertThreshold()","4d1bd1fa":"product2_luckybuyTracker()","4d1bfe99":"BenefitGameToken()","4d1c43b2":"ETHUSDPRICE()","4d1c5f83":"EditMode()","4d1ed74b":"maxGuaranteedLimit()","4d1f8c31":"owner(uint64)","4d1f97ba":"LastResult(address,uint8,uint256)","4d1ff181":"setPaymentEnabled(bool)","4d207d9a":"identify(address)","4d20b992":"setLargeCapWhitelistParticipants(address[],uint256[])","4d20d4bc":"BET_TYPEHASH()","4d21a24c":"generateLockId()","4d22b9c8":"DMSContract()","4d22d1d1":"vestTime()","4d2301cc":"getEthBalance(address)","4d238c8e":"addValidator(address)","4d23aaa8":"foreignBuy(address,uint256,uint256)","4d242bbc":"adjustTotalSupplyCheckpoints()","4d253629":"updateChangeAttemptCount(address)","4d25cc91":"transfer_token(address,uint256)","4d268ddd":"payImporterBankForGoodsBought()","4d27a548":"rICO(address,address)","4d28ca02":"addMultipleContracts(bytes32,bytes32,bytes32,bytes32,address[],bytes32)","4d298265":"isWhitelistedPresale(address)","4d2a16e6":"myTradeValue()","4d2a30c1":"customerDepositedEther()","4d2a99a5":"GVOptionProgram(address,address,address)","4d2b1444":"WAITING_TIME()","4d2c29a0":"tokenOfferingAddr()","4d2d0a3d":"token_totalSupply()","4d2d35bc":"TokenPartners(address,address,uint256)","4d2db81f":"alreadySold()","4d2e9d04":"ShowDepositInfo(address)","4d2ee8e7":"GetLoanInfo(uint256,bool)","4d2efe4e":"collectOwedDividends()","4d305073":"uintRound(uint256,uint256)","4d307e3f":"getCurrentReward(address)","4d30b6be":"balanceOf(address,bytes32)","4d314b5a":"ERC20MIST(uint256,string,string)","4d318b0e":"tallyVotes(uint256)","4d32a117":"documentsIds(uint256)","4d32ef8c":"hurifymint(address,uint256,uint256)","4d3314f4":"TotalFee()","4d33e6d7":"hasDisputeSolved(uint256)","4d341bbc":"findSubscriberIndex(address)","4d3465fd":"weicap()","4d34dce1":"AHS(uint256,bytes32,bytes32)","4d358a00":"PreSale(address,address)","4d366398":"runPeerBalance()","4d36dd87":"finalizeTransferChild(uint256)","4d37ec46":"__generateOrderHashes__(address[4],uint256[8])","4d380a0d":"revealBid(uint256,uint256,bytes32)","4d3820eb":"registerUser()","4d3830e5":"releaseFunds(uint16,address,address)","4d387d35":"lockAccount(address,address,uint256)","4d38f6c5":"signTruelove(bytes32,string,string)","4d3915e9":"testF3(uint256)","4d392341":"ICO_BONUS1_RATE()","4d392e49":"getSubjectById(uint256)","4d395384":"configString()","4d399cb3":"updateWhitelist(address,uint8)","4d39ed06":"initialFoundersAmount()","4d39f535":"transferFrom(uint40)","4d39fa7d":"getMultiplierAtTime(uint256)","4d3a01b1":"setLongAirdropPicker(address)","4d3a2f10":"lastReceivedMessage(address)","4d3b915e":"minTokenSale()","4d3bdb82":"KickcityToken()","4d3cd84e":"setCanAnyMint(bool,int256)","4d3ceef1":"freezeCheck(address,uint256)","4d3cf035":"tokens2ether(uint256)","4d3cfbcd":"NextStep(uint8)","4d3d096b":"isExist(string)","4d3d14f2":"calculateTransferFee(address,address,uint256)","4d3e7682":"DataSellToken()","4d3ec092":"LogReplaceToken(address,uint256)","4d3eff3c":"setICOSpec(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4d3f0a6e":"becomeRenown()","4d3fac53":"getRatingRange(uint256,uint256,uint256)","4d40ed9c":"setSanMaxFree(uint256)","4d40f03c":"SovietCoin()","4d414c18":"Victim()","4d41fee4":"logit()","4d425812":"getCountryCount()","4d428204":"getTransferTime()","4d4282e9":"bytes32IsEmpty(bytes32)","4d42b0e5":"getUserLogin(address)","4d42c7e4":"getTotalIndividualWeiAmount(address)","4d42c952":"destroyedToken()","4d42fc66":"gen0Profit()","4d437034":"getInvestedTokenBalance(address)","4d437a62":"TPCToken()","4d4439fa":"ZipperMultisigFactory(address)","4d444fac":"isDepositAllowed()","4d4479a8":"FLC_address()","4d44f108":"checkProof(bytes32)","4d4549fb":"GDCNumber1()","4d4582a1":"submitChallenge(bytes32,bytes32)","4d461ed1":"completeSale()","4d46474a":"option10symbol()","4d474898":"mine(uint256)","4d474d63":"MAPT()","4d4765dc":"complete_buy_exchange()","4d47ae8c":"setPartyB(address)","4d47ce56":"seek(uint256,uint256,bool)","4d47feaa":"ShareholderDB(uint256)","4d480faa":"setMaxDelay(uint256,uint256)","4d486406":"addEmbassy(address)","4d492b50":"transferMulti(address[])","4d493f24":"maximumTokenIssue()","4d49451c":"candidateExchange()","4d4a919f":"bailout()","4d4aa77f":"getTicketDetails(int256,uint256,uint256,address)","4d4af36f":"setMins(uint256,uint256)","4d4b1a88":"addTokenTrust(address)","4d4b298e":"creditAccount(address)","4d4b3202":"getTrustedTransferSourceValue()","4d4ba1d7":"changeDivestFee(uint256)","4d4c277d":"MAINTENANCE_FEE_PERCENT()","4d4d2b1c":"hasVoted(address,address)","4d4eeaa8":"logoPng()","4d50169e":"distributionThresholds(uint256)","4d50d5f2":"firstPreSaleEndDate2()","4d51fad6":"Bittoq(uint256,string,uint8,string)","4d52a512":"getSoftCap()","4d536c03":"buySaleNonReferral(uint8)","4d536f9f":"validateNameExt(bytes)","4d536fe3":"doit()","4d53c30f":"t4tRaised()","4d547ada":"worker()","4d54dc96":"isNonlistedUser(address)","4d55a924":"KudosRouter()","4d561721":"etherandomSetNetwork()","4d562c82":"freezeProhibited()","4d56a130":"BitfuryToken()","4d586512":"_rand(uint256,uint256)","4d589c5b":"curatorIDOf(address)","4d58e413":"pushDividendPaymentToAddresses(uint256,address[])","4d597b2d":"totalTokensCompany()","4d5a1173":"calculateMaximumBurnAmount(uint256,uint256,uint256)","4d5a225c":"ethCoin()","4d5ad11e":"getAnnualGrantsLength()","4d5b0081":"reward(address,address)","4d5b080c":"scheduleTransaction(uint256,address,uint256)","4d5b335d":"mintHeroAsset(address,uint256)","4d5b608b":"testTransfer(address)","4d5b85f1":"createLighthouse(uint256,uint256,string)","4d5c07aa":"CryptoSim()","4d5d528a":"FeibeiContract()","4d5de6ba":"stageThreeSupply()","4d5e58a4":"purchasedTokensRaised()","4d5e9a2a":"getInterestRatePunitory(uint256)","4d5eceac":"nextAssigneeIndex()","4d5f327c":"supportsToken()","4d5fc38a":"amountOfGames()","4d610837":"indPreSale()","4d61537f":"secretSigner()","4d620299":"postSale(address,bytes32,uint256)","4d622831":"getLast()","4d624906":"PriceChanged(address,uint256,uint256)","4d628c44":"setWagerWinner(uint256,address)","4d62a9da":"MindCoin()","4d62f83c":"_distributeAuctionTax(uint256,address)","4d655aff":"db()","4d65beb1":"getVipInfo(uint256)","4d66a3ab":"testtxorigin()","4d66d44d":"ArtToujourICO(uint256,uint256,uint256,uint256,uint256,address)","4d677d32":"Manager(address,address,address)","4d6804c2":"transferTokensFromVault(address,address,uint256)","4d68282f":"releaseFunds(uint256)","4d689543":"mmLibAddress()","4d6a26be":"tryOpenRoom(address,uint256,uint256,uint256)","4d6a7d33":"collect(address,uint32[])","4d6a813a":"isCutieCore()","4d6aa2e5":"generateReferralAddress(address)","4d6aed53":"getIssued()","4d6b3d83":"Brave()","4d6bc04e":"totalPerTokenPayout()","4d6c3427":"REGULAR_TYPE_COUNT()","4d6c3b6b":"setCompte_4(string)","4d6f58d5":"proveOwnership(bytes,int256)","4d70d1d7":"generateId(uint256)","4d712228":"Storesumdata(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,uint64)","4d71d6be":"finalizeDelegation()","4d720209":"withdrawDistributionCRL()","4d722c4c":"checkWinner(address)","4d729be4":"calculateFishermansFee()","4d730d51":"numOfPurchasedTokensOnEpBy(address)","4d73452e":"START_WEEK_3()","4d7439cb":"getBusiness(uint256)","4d7480ea":"_allowPublishSecret()","4d74d3b4":"setMetadataContractAddress(address)","4d754715":"burningEnabled()","4d7559a8":"totalGoldSupply()","4d7569ac":"TOKEN_SUPPLY_CROWD()","4d77551a":"eleventhTime()","4d782655":"confirmCertificate(uint256)","4d782cbc":"executeSellOrder()","4d78fdc6":"unblockAccount(address)","4d794cfc":"START_ETH_TO_CENTS()","4d79874e":"validateLandTakeover(address,uint256,uint256)","4d79ddb2":"getVotesForItemFromVoterIndex(uint256,uint256,uint256)","4d7a7577":"DURATION_VIPPLACEMENT()","4d7ad1dd":"deleteProposal(bytes32,string)","4d7ad205":"gasRewardPercent()","4d7b8d2f":"DWBTICO(address,address,uint256,uint256,uint256,uint256)","4d7b9bd5":"checkBalance(address,uint256)","4d7ba587":"setDecider(address)","4d7bc8c9":"removeCompanion(address)","4d7c0192":"changeCanUpgrade(bool)","4d7c7485":"getActiveFlag(uint16)","4d7d003f":"dropCoinsSingle(address[],uint256)","4d7d13e1":"getUniqueIdOfPlayerByPlayerAndCountryID(uint256)","4d7d87b2":"prodTokens(address,uint256)","4d7d8a60":"marriageDate()","4d7d9a91":"transferCoadminship(address)","4d7dcfbd":"parseVarInt(bytes,uint256)","4d7e2a6a":"Token_Unlocked()","4d7e897f":"rollOne(address,uint8)","4d7ec628":"requestToken()","4d7ece70":"advisorVesting(address[],uint256[])","4d7edc15":"assignTokens(address,uint256)","4d7ee4ee":"changeGlobalOperator(address)","4d804e60":"WITHDRAWAL_TRIGGER_AMOUNT()","4d80bf14":"NewManager()","4d82f25c":"VestingTrustee(address)","4d831535":"allocatePVT_InvTokens(address[],uint256[])","4d83ffdd":"createUser(address,uint256,bytes32)","4d840bcc":"isWithdrawable()","4d843acd":"getSalaryTokensTotalAddress(uint256)","4d846a99":"getMin(uint128[])","4d846c8e":"getCurrentCandyAmount()","4d84ba37":"depositsAddress()","4d85006d":"Incredibles2RT()","4d853ee5":"founder()","4d8589c5":"getProofOfStakeRewardUpdateToken(address,address)","4d85b8d0":"checkEndOfChallenge()","4d86b498":"BucoTestCoin()","4d87a49b":"updateInvVault(uint256,uint256)","4d882c97":"EthPenis()","4d88a639":"getOrder(uint80)","4d88a8cf":"getExitBySlotId(uint64)","4d894d24":"getLevelByIndex(uint256)","4d8a666b":"EnterEntidadesdonaciones(address)","4d8a9310":"isCrowdsaleStopped()","4d8b7056":"Dd(address,address)","4d8bd784":"getGuestToken()","4d8c10a6":"AJCMToken()","4d8c3ea6":"getTxVoteDetails(bytes32)","4d8c61c1":"LogChangeTimestamp(address,uint256,uint256)","4d8caa7e":"setTokensPerWei(uint256)","4d8d9e92":"tokensPerSecond()","4d8dcc7a":"initDeposit(uint256)","4d8de4fc":"unbond(bytes32,uint256)","4d8e15f2":"KockToken()","4d8f00f4":"RatingsContract(address,address)","4d8fef1c":"produceWiner()","4d908a55":"InitiateCars()","4d909110":"EtherBank()","4d912393":"mintReservation(address[],uint256[])","4d918282":"addmoney(address,uint256,uint256)","4d91c096":"stakeCommence()","4d91d4f1":"incrementBasketsMinted(uint256,address)","4d9250c4":"TakeMyEther()","4d936889":"ConsentTemplate(string,uint256,string,string,string)","4d93d1db":"EventCreateAngel(address,uint64)","4d94994c":"lucky_number()","4d94cee7":"opetWallet()","4d9577af":"getFirstMilestoneStartsAt()","4d95a7a2":"tokensToRecieve(uint256)","4d95c76c":"activeCanvasCount()","4d964da6":"GBBCOIN(uint256,string,string)","4d96e062":"whenStakeCanBeReturned()","4d986c8f":"icoSalesSupply()","4d98a6ff":"createGroup(string,string,string,uint256,uint256,uint256,uint256,uint256,bool)","4d99055c":"getBonus(uint256,address,uint256)","4d9994e8":"setAccountNickname(string)","4d999756":"tokensPreICO()","4d9a3136":"findByName(string)","4d9a81d4":"IsDistribStarted()","4d9aa424":"crowdsaleEnd()","4d9b3735":"getFunds()","4d9b3d5d":"getbalance()","4d9b8fcf":"allowTransfer(address,bool)","4d9bcac4":"getProviderParameter(address,bytes32)","4d9c1bf3":"payTokenBatch(bytes32[],uint256[],address,address,bytes)","4d9e40af":"TOKEN_CREATORS_SUPPLY()","4d9e4e22":"Etheria()","4d9fb121":"Trade()","4d9fcee9":"getExportingAuthority()","4da07fe5":"getCardType(uint32)","4da0a4fc":"promoToken()","4da1397c":"durationOfLock()","4da1668d":"giftNFT(address,uint256,uint256)","4da1b25d":"weiFundingCap()","4da1e0b7":"cancelTokenSale(uint256,address,bool)","4da2317f":"payoutAll()","4da25c74":"triCmp(uint256,uint256)","4da2906b":"updateUser(bytes32,bytes32,bytes32,bytes32,bytes32)","4da2b48e":"getCat(uint256)","4da36913":"migrationIndex()","4da3b6db":"otherF3D_()","4da47ba0":"TokenSale(address,uint256)","4da51208":"OKMcoin(uint256,string,uint8,string)","4da5160f":"getFirstDocumentIdStartingAtValidFrom(uint256)","4da5598a":"syndicatePrecision()","4da5d4c0":"isEthernautsExplore()","4da5ed85":"disableContinuousDelivery()","4da74ee6":"setVoteIntention(uint256,bool,bool,string)","4da7c5d6":"LendingBlockTokenEvent(address)","4da837e3":"transferDevelopment(address)","4da845b3":"swapWinner()","4da8a771":"INHERITANCECrowdsale(uint256,uint256,uint256)","4da946d9":"TakeOffWorldwide()","4da9cb07":"LilithToken(uint256,string,string,uint8)","4daa1208":"SetPoolCreationFee(uint256)","4daaa98f":"doReward()","4daade18":"TravelCoinToken()","4daadff9":"extractCLNfromMarketMaker()","4dab54fd":"removeFromInxWhitelist(address)","4dab63ff":"_unpackItemData(uint256)","4dabb674":"changePhaseToNormalLife()","4dac7d6f":"renewableOf(uint256)","4dad66f5":"divForTank()","4dad9003":"transferManyLand(int256[],int256[],address)","4daea42a":"TOWN_INCREASE_RATE()","4daf490c":"getFarm()","4daf890a":"invokeLottery()","4dafdc50":"exchangeId()","4db0040e":"createWonderNotAuction(string)","4db08aea":"SALE()","4db08e5b":"getSaleContractTokensMinted(address)","4db19e7e":"assertEq(bool,bool,string)","4db1ba5a":"repossessionBountyPerTen()","4db1c7b2":"changeId(uint256,uint256)","4db208ba":"Titanization()","4db2beef":"distroyToken(uint256)","4db347a3":"acceptChallenge(address)","4db3c6d7":"buyTokensWithReferal(address)","4db3da83":"scheduleCall(bytes4)","4db3eef8":"delegateFromBonus(uint88)","4db4eae6":"_topBonus()","4db4eff0":"hatchCoins(address)","4db52924":"setNumMessagesSigned(bytes32,uint256)","4db53a70":"VTest()","4db59565":"getHistoryRoundInfo(uint256)","4db5d52b":"getWagerOwner(address)","4db61d21":"compareNoCase(string,string)","4db6397f":"calculatePlayerValue(address)","4db77d9d":"getMaxJump(uint256)","4db8349e":"buyerToSentWeiOf(address)","4db8cbc9":"wordCounter()","4db94441":"limitAgentBets()","4db9bfe6":"getPostVoteCount(uint256)","4dbaa16b":"recoverLeftoversPreICO()","4dbac733":"INITIAL_RATE()","4dbb1964":"setSalesAgent(address)","4dbb37eb":"checkLeftToken()","4dbb4da5":"increaseMaxContribTime()","4dbb51f6":"Hashfex()","4dbbddff":"BOBTokenVesting(address,uint256,uint256,uint256,bool)","4dbbfcc6":"stageLength()","4dbc355a":"releaseTeam()","4dbdb0fd":"signUpForPVP(uint256)","4dbddc18":"getPoolID()","4dbe5889":"ownerClaim()","4dbf27cc":"follow(address)","4dbfb6fb":"PredictionMarket(uint256)","4dc0884f":"playerCards(uint256)","4dc08ce2":"GameWon(uint256,address)","4dc133a5":"stopTge(bool)","4dc13951":"vendingAttachedState()","4dc189ef":"createContractWhale(string)","4dc18c02":"finalSendTokens()","4dc1dbec":"priceToMint()","4dc266b4":"submitAnswerReveal(bytes32,bytes32,uint256,uint256)","4dc2c67a":"veriPass(string)","4dc3141b":"CalcAll()","4dc3ba8f":"assignVoterMoreVotes(address,uint256)","4dc3f289":"changeCommonDiscount(uint256)","4dc41210":"preStartTime()","4dc415de":"reject()","4dc43eaf":"setTreasury(uint256,uint256)","4dc49b25":"InitialPointUnit()","4dc59196":"icoAllocation()","4dc5c69f":"getTotalDiscount(address)","4dc5c771":"dividendsAccount()","4dc5fa4e":"MEDIA_SUPPORT_WALLET()","4dc65411":"GEM()","4dc666b3":"sendTokensManually(address,uint256,uint256)","4dc6b523":"divestFee()","4dc73428":"transferFromByModule(address,address,uint256,bool)","4dc7cc55":"terminateAlt()","4dc7d31b":"transferRwrd(uint256)","4dc8ed02":"ICObonusStages(uint256)","4dc958e1":"addToBounty(uint256)","4dc996d5":"updatetoken(string,string,string,string)","4dca2770":"BecomeMemberCandidate(bytes32)","4dcad927":"tokensSoldTotal()","4dcb05f9":"depositBond(uint256)","4dcbb8ee":"getAllAuditors()","4dcc889d":"Conference(string,uint256,uint256,uint256,string)","4dcd4fb1":"MetaChanged(bytes32,bytes32,bytes32)","4dcd85d8":"setPriceOfApis(uint256)","4dce4142":"opVaultAddr()","4dcee2e0":"hashes(uint16)","4dcf2917":"allowUpgrades()","4dcf7430":"receiveTokenLoot(uint256[],uint256,uint8,bytes32,bytes32)","4dd0f157":"getWinnerType(uint256)","4dd12329":"rightSharePrice()","4dd19434":"getLeaf2(uint256)","4dd1e81c":"tokenBuyable(uint256,uint256)","4dd33832":"tokensSoldAtIco()","4dd36a0e":"buyTokens(uint8,address)","4dd37f19":"getHashRateOfCurrentHalving(address)","4dd3e575":"endMinting(bool)","4dd4547d":"fireOnChanged(bytes32,uint256[])","4dd49680":"SetEvaluate(uint32,uint8,uint8)","4dd49ab4":"get(bytes,uint256)","4dd49e08":"deliverTokens(address,uint256)","4dd5df8c":"setPOOL_edit_16(string)","4dd60ff9":"buyNDC(uint256,uint256,uint8,bytes32,bytes32)","4dd7f293":"Kayako()","4dd83243":"hasNextKey(uint256)","4dd83cb1":"refreshPublicFundingTime(uint256,uint256)","4dd850fb":"UfoPonzi()","4dd8aefd":"DTT()","4dd93bd3":"getInvestmentValue()","4dd9e437":"transferUserToUser(address,address,address,uint256)","4dda1764":"CafeMaker()","4dda71a8":"newAuction(uint128,uint256,uint256)","4ddad616":"genesMarket()","4ddb5f01":"ROPCOIN()","4ddbf2b3":"teamTokenFund()","4ddc36df":"renounceClearingPriceValidator()","4ddc8f74":"SPEX()","4ddd108a":"money()","4ddd648b":"buyer_profit_pool_amount()","4ddddd4c":"SearchIPR(string)","4dde3fe1":"redemptionAddress()","4dde8de6":"registerUBetCheck(address,string,string,string,uint256,string,int256)","4ddfd20f":"offer_id()","4de0089a":"becomeHipstermaster()","4de037c7":"getTitulaire_Compte_8()","4de0cdf2":"setICOParams(uint256,uint256,uint256)","4de1454f":"targetReached(uint256)","4de16053":"getLockProductCount()","4de162e4":"extractAccountLength()","4de1fc55":"submitAnswer(uint256[],uint256[])","4de2578c":"reproduce(uint8,address,uint256)","4de260a2":"hack()","4de261ef":"presalecap()","4de2d5d5":"checkPrize()","4de2eee9":"zapVillain(uint256,uint256)","4de2f146":"SentAmountToNeighbours(uint256,address)","4de315ea":"unlockAddressToken(address)","4de4145f":"_transferSenderPaysFee_byProxy(address,address,uint256)","4de4f479":"RiskPrice()","4de504cd":"setTransferLockFree()","4de5120e":"lastWithdrawalTime(address)","4de62cd6":"removeGemmyMusicLock(address)","4de799c2":"cancelTeamWithdrawal()","4de85639":"failDivideFractionalByZero()","4de8a799":"addPrivateSaleBuyer(address,uint256)","4de90f34":"minForNewTopic()","4de94320":"logic_contract()","4de946bf":"ideaProofDocument(bytes,uint256)","4de952c7":"cmulpow2(address,uint256)","4de970fd":"RATE4()","4de9e482":"ENDHarvest()","4dea208b":"upgradeKingdomType(string,uint256)","4dea4d15":"setConfig(uint64,string,uint256,uint256,address,string)","4deaad5f":"reverseBytes(uint256)","4deb68a3":"auctionStart(bytes32,uint256,uint256)","4deb9f47":"UnlockRig(uint8)","4deba2e0":"LogCreateToken(address,uint256)","4dec5dc4":"employeeExerciseOptions(bool)","4dec9b57":"testView()","4ded452e":"InviteCreated(address)","4ded6e89":"airdropParticipants()","4ded9bfe":"releaseMultiAccounts(address[])","4dee529a":"Muggelo()","4def0453":"setContentURI(uint256,string)","4defd1bf":"setCrowdsaleManager(address)","4df0b78a":"withdrewThisYear()","4df0ca7e":"EarlyAdoptersAddress()","4df17cdc":"maxEtherInvestment()","4df28ae4":"capTime()","4df34124":"RyxEx(address,address,address,uint256,uint256,uint256)","4df3ad68":"setTokenPriceInCent(uint256)","4df498b2":"getPreSaleEnd()","4df53a0f":"testSetApprovalDb()","4df62441":"percentOfPresaleSold()","4df65873":"getDefaultRgb(address)","4df679e3":"BonusAllocation(address,string,string,uint256)","4df68ada":"enable(bool)","4df6b45d":"delegateTransferFrom(address,address,uint256,address)","4df6ca2a":"setQuestionFee(uint256)","4df6d6cc":"allowedRecipients(address)","4df7e3d0":"b()","4df86126":"SECONDS_PER_HOUR()","4df93196":"Joe223()","4dfa2722":"CryptoWuxiaVoting()","4dfa3f18":"createNewUser(string,string)","4dfad511":"_redeem(address,uint256)","4dfb10bc":"realVotedSupply()","4dfb4807":"etherTotal()","4dfc7aa1":"existsDistrito(uint256)","4dfc97c5":"policyTokenBalance()","4dfcf67a":"NeroSupply()","4dfd14b2":"EMACCrowdsale(uint256,uint256,uint256,address,address)","4dfd1b02":"setUint8(int8,uint8)","4dfd964f":"TSTCallAPI()","4dfdc21f":"maxNum()","4dfdebe9":"ClientQty()","4dfe28e7":"releasedTokenOf(address)","4dfe950d":"purgeUpgrade()","4dfff04f":"approveSiring(address,uint256)","4e010942":"LogOraclizeCallback(uint256,bytes32,string,bytes)","4e0128fb":"watchPrice()","4e012918":"whitelister_address()","4e017994":"capEth()","4e01bb60":"RefundPeriodOver()","4e01bd10":"emergencyTokenWithdrawal(uint256)","4e02107a":"getWeddingData()","4e022f11":"setSpark(address)","4e023fc9":"FakeXUC()","4e028c67":"SAC()","4e02ed40":"CESCoin(uint256,string,string)","4e039d26":"setPreallocationWhitelist(address,bool)","4e0416a6":"DaoRulesProposalAdded(uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool,address,uint256)","4e054a67":"setBlacklist(address)","4e05ded6":"ClassicCheck()","4e06369c":"getPurchasableAmount()","4e077f2a":"addGasEther()","4e07a7a5":"thirdStageMinted()","4e088eb7":"stopPrivateSale()","4e0896a1":"teamIndexToExist(uint256)","4e0a0f21":"preICOstartTime()","4e0a3379":"setCFO(address)","4e0ade00":"SmartWallet(address,address,address)","4e0b7888":"_updateStage()","4e0ba39d":"reserveAdd(uint256,uint256,uint256,uint256)","4e0be991":"removeChild(address,address)","4e0c4a9c":"setCommissioner(address)","4e0ce969":"moduleToken(uint256,uint8)","4e0d93a3":"increasePriceForNeighbours(uint256)","4e0e9675":"isIdentity(address)","4e0f1064":"getMonthlyTransactionVolumeReceiving()","4e102951":"can_claim(address,address,address)","4e1053cc":"RobinHoodPonzi()","4e10c212":"TxAttackWallet()","4e10c3ee":"transferWithoutReward(address,uint256)","4e116eb8":"unRegisterCertificationDb(address)","4e1243b6":"AddClaim(uint32,string,bytes32,bytes32,address,uint32)","4e12e51a":"getBonusList()","4e1339fe":"HALT()","4e13f066":"RedSoxRays48()","4e140274":"isDiscount()","4e1415ab":"testThrowExecuteSellOrderDaoChallengeRefusesZeroFunds()","4e14e4c8":"CyberCapitalInvestToken()","4e153418":"CreateLottery(uint32)","4e159a05":"clacCooperateNeedLockAmount(uint256)","4e15dfe9":"wholeTokensPerEth()","4e16bef5":"jack_max()","4e16e0c7":"participantCanParticipate(address)","4e18405d":"TOTAL_ARK()","4e18c1a7":"IcoPhaseAmountsChanged(uint256,uint256,uint256,uint256)","4e191701":"lamboPresaleAddress()","4e194cc0":"getCreateFeeToken()","4e195faf":"totalEthereumRaised()","4e19c112":"deleteOwner(address,uint8)","4e1a150b":"netherToken()","4e1a1853":"ParentCoinAddress(address)","4e1a50b7":"setBonuses(uint256,uint256,uint256,uint256)","4e1bdfdf":"withdrawOlder()","4e1dc0d7":"LAYA()","4e1f6c14":"FUTURE_WALLET()","4e1fa837":"TestERC721()","4e205cee":"signedApproveAndCallHash(address,address,uint256,bytes32,uint256,uint256)","4e209678":"testFailBreach()","4e2133ba":"addExchangePartnerAddressAndRate(address,uint256)","4e21f25e":"soldPresale()","4e22102b":"LIMITS_END_DATE()","4e2280c4":"clearQuickBuyPath()","4e228d8f":"ExchangeableToken(address)","4e23176c":"buyRBCTokens()","4e232730":"ownerOn(address)","4e233065":"delKeyValue(uint256,bytes32)","4e23a144":"fundUser(address,uint256)","4e25658e":"setSegment(string,uint32,uint32,string,string,string,string)","4e2567d0":"addToAccountList(address)","4e25c92e":"ttlSply()","4e2611ae":"vnetToken()","4e2659a8":"createTeam(bytes32,bytes3,bytes3,bytes3,bytes3,bytes3,bytes3)","4e26c95e":"EASYLIFE(uint256,string,string)","4e272768":"remove_bounty()","4e2743b3":"setStack(uint256,uint256)","4e275295":"tokensSell()","4e2786fb":"roundNumber()","4e27e916":"voteLock(address)","4e2808da":"cancelOwnership()","4e280fd6":"SolarioToken()","4e284af1":"INCENT_FUND_NON_VESTING()","4e285acb":"setsendgoods(uint256)","4e29cba6":"disbursements(uint256)","4e2a953a":"gameStartedAt()","4e2aae36":"setzUint256(uint256,int256)","4e2ab933":"transferFrom(address,address,uint256,bytes,string)","4e2ad943":"mainSaleBonusEndTime()","4e2b57fe":"mincap()","4e2ba115":"DFVToken()","4e2bd9ce":"rescind(address)","4e2bdfd4":"getBetMutableData()","4e2c9524":"upgradeDuties()","4e2de9e1":"setGzeBonusOffList(uint256)","4e2e8a10":"setTime3(address,uint256)","4e2e94f7":"MAX_PRE_SALE_AMOUNT()","4e2f220c":"createCentralizedOracle(bytes)","4e2f2af4":"PayoutRedemption(uint256,uint256,uint256)","4e2fa68f":"crowdsaleStarts()","4e2fd44e":"setPriv(address)","4e304bfb":"CRAIC()","4e30506f":"dropLast()","4e30a66c":"safeToAdd(uint256,uint256)","4e317ead":"cancelTemplateProposal(address,uint256)","4e31aea3":"firstThawDate()","4e329bd3":"HealthCoin(uint256)","4e358ce7":"DITCOIN()","4e35aacf":"createCompany(string,uint256)","4e360eaf":"EmergencyStopActivated()","4e3673a6":"connectCrowdsaleContract(address)","4e36fddf":"XdacTokenCrowdsale(address,uint256[],uint256[],uint256)","4e37af4e":"offlineCallback(bytes32)","4e38413f":"setBytes32(bytes32,bytes32,bytes32,bool)","4e385512":"setCampaignValidity(bytes32,bool)","4e38f205":"generateWithdrawalHash(string,uint256,address)","4e390f2a":"initLottery(uint256,uint256,uint256,uint256)","4e395e2a":"isExecutable(uint256)","4e3acafe":"Cr1tikalIsShort()","4e3b33d4":"prepareRefund()","4e3b52fe":"metaCoin()","4e3c2f47":"getCardDivs(uint256,uint256)","4e3c50a0":"addBuyTokensRequest(address,string,string)","4e3d2745":"ManoloToken()","4e3d539a":"newChainlinkWithENS(address,bytes32)","4e3dc2f1":"STAT_MAX()","4e3df857":"removeEA(uint32)","4e3e4035":"notEqual(int256,int256,string)","4e400bda":"getSenderStatus(address,uint256)","4e406167":"setContractICO(address)","4e4081ef":"pregnantBots()","4e41108d":"Bank()","4e417a98":"callData()","4e41a1fb":"symbol(uint256)","4e41ebf6":"createCommissionerAuction(uint32,uint256,uint256,uint256)","4e42b632":"WEBcoin()","4e43502a":"BDSMTOKEN(uint256,string,uint8,string)","4e43603a":"getUserStats(address)","4e448ffa":"winnerLuckyNumber()","4e44b5cc":"Kiwi(address,uint256,string,string,uint8,uint8)","4e44c855":"setGameStatus()","4e44d956":"configureMinter(address,uint256)","4e458cc2":"setNewEndTime(uint256)","4e458eb6":"posstoken()","4e45fba9":"getProviderDetails(address,uint256)","4e46fc2c":"finalizePreICO()","4e47d99a":"WubCoin(address)","4e485c52":"closeTransfer()","4e48a495":"checkTransfer(address,address,uint256,uint256)","4e4965ff":"AIPAY()","4e49954e":"createReceipt(address,string)","4e49acac":"setParams(address)","4e4ab830":"amIOwner()","4e4ac577":"claimFeesForRound(address,uint256)","4e4afa1b":"minimumTickets()","4e4cf65c":"forwardMoney()","4e4d02db":"DeathFactor_iii()","4e4d3e56":"get_funds_left_for_reinvestment()","4e4e2d6d":"PaymentForwarded(address,uint256,uint128,address)","4e4e7862":"addWithdrawal(address,address,uint256)","4e4f776c":"TCT(uint256,string,uint8,string)","4e4fbee1":"renounceProxyManager()","4e4fe306":"getData(uint256,uint256)","4e500760":"CreditUnits()","4e504313":"Addr3()","4e505367":"initialTokenAmount()","4e51193b":"sealTimestamp()","4e5141eb":"buyTokens(uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","4e5146a9":"hexToAscii(uint8)","4e520a94":"getNumRecords(address)","4e521a2a":"INCUToken()","4e523b91":"MonethaToken(address,uint256)","4e52622b":"eth6DivsOwing(address)","4e52678e":"digix()","4e53a0b9":"update(address[],uint256[],uint256[],uint256[])","4e53b564":"adminTransferContractBalance(uint256)","4e542bff":"_triggerPVPSignUp(uint256,uint256)","4e542c5f":"deleteById(uint256)","4e543b26":"setResolver(address)","4e5497de":"BuyoutDividend(address,address,uint256,uint256,uint256)","4e55936d":"NorthPoleMintingEnabled()","4e56925f":"updateMasternodeAsTeamMember(address)","4e57d27d":"_getAllRevisionTimestamps(bytes20)","4e58e920":"officialFacebook()","4e599551":"getPreviousWinners()","4e59f947":"SucToken()","4e5a33c5":"executeTokenRepartition(uint256)","4e5aabe6":"resetStellarBalance()","4e5ac744":"PDPCoin()","4e5acb1a":"changeAutherOwner(address)","4e5b0d29":"getVisaEntered(address,uint256,uint256)","4e5b3cb8":"EtherusPreSale(address,address,address,address)","4e5b5f54":"purchasePresale(address,uint256)","4e5c0595":"tokenAdvisorsAllocated()","4e5d49a0":"DariumToken(address)","4e5d7186":"LogAccountRegistered(address,address,bytes32,bytes32,bytes32,bytes32)","4e5d793f":"setAsset(address,uint256,uint256,uint256)","4e5d8edd":"VOLUME_70()","4e5ed65b":"_indexAccount(address)","4e5f13bc":"landPriceCurrent()","4e5f8751":"newInvestWallet(address)","4e605688":"setBtcBuyer(address)","4e6093f8":"HeirChanged(address,address)","4e6106c5":"getRealisation()","4e61c362":"transferMul(address,uint256)","4e61df06":"DigixbotEthereum(address)","4e61efc5":"getWizzTypeOf(uint256)","4e637fab":"DepositsTransferred(address,uint256)","4e659145":"levPerUser()","4e6630b0":"ethBalance()","4e68354e":"LogLockStateTransition(uint8,uint8)","4e6885f3":"depositPresale(address)","4e6944cf":"totalStaticoinSupplys()","4e696d3c":"startCoinSale(uint256,address)","4e69d560":"getStatus()","4e6ab570":"insert_order(address,bool,uint32,uint128)","4e6b29ee":"returnIsParentAddress(address)","4e6b558a":"removeVerifiedAddress(address)","4e6b97f3":"transferMultiSameVaule(address[],uint256)","4e6ba0a9":"testCreateCostMultisig()","4e6c61aa":"testFailAddForeignChildNotChild()","4e6d1405":"invoices(uint256)","4e6d35ea":"currentlyReleased()","4e6d739d":"getSupernovaBalance()","4e6d73da":"LogUserUserRemovedFromWhiteList(address)","4e6e5d69":"unMint(address)","4e6e6928":"latestFriend()","4e6ec247":"_mint(address,uint256)","4e6f42ba":"changeSeizedTokensWallet(address)","4e6fedb7":"remainOfStage(address,uint256)","4e705549":"setDefinition(uint8,uint8,uint8,uint8,uint8)","4e7073f1":"setMinETH(uint256)","4e70a604":"Withdrawal(uint256)","4e70b1dc":"num()","4e7196c7":"setReg1(uint256)","4e71d92d":"claim()","4e71e0c8":"claimOwnership()","4e724f0f":"numBlocksLocked()","4e725b7a":"test_hasClaimableShares_nonZeroClaimableStake()","4e72ec91":"setPointer(uint8)","4e72f19e":"SendFundsToReceiver(uint256)","4e730025":"register(uint256,uint256,uint8,uint8,uint8,uint8,string)","4e7343ea":"verifyOrder(address,uint256,uint256,address)","4e7344d5":"ABitcoin()","4e7355d6":"RegistrantRemoval(address)","4e7445c8":"drainRemainingToken(address)","4e7455d0":"createMilestones(uint256,bool,uint256)","4e7602d3":"setRecipients(address[])","4e761a91":"STEP_SIZE()","4e76a725":"test_withAssertTrue()","4e76a846":"numParticipants()","4e76f5d2":"GetMinimumBet_ether()","4e77a38e":"releaseTrickleDownBonuses()","4e78e0c2":"setVerificationSlashingPeriod(uint256)","4e79909c":"WithdrawalApproved(uint256,uint256,bool,uint256,bytes)","4e79fd7c":"stepLockedToken()","4e7a540b":"doUpgradeInternal(address)","4e7a6978":"PersianTokenICO(uint256,uint256)","4e7ad367":"fireEventLog1Anonym()","4e7b1ce1":"PayNihilumToContract()","4e7ceacb":"getFeeAddress()","4e7cff38":"toBytes20(bytes,uint256)","4e7d656a":"EtherSpermBank()","4e7dbb29":"TTARD()","4e7e96f1":"buyBackInvestedValue()","4e7ec0e4":"setGlobalTimeVault(uint256)","4e7ec7e3":"RANGEEND_6()","4e7f1264":"leaveMessage(string)","4e7f9b19":"getReport(uint256)","4e80f241":"YCStandardToken(uint256,string,uint8,string)","4e8127f6":"icoSupply()","4e815698":"removeBlacklistAddress(address,address)","4e8182c8":"addJugada(uint256,string,string,uint256,uint256)","4e81b17d":"createMonthlyBill(uint8,uint256,uint256)","4e81eec9":"EventProductEndSale(uint32)","4e8204a4":"NewRoundStarted(address,uint256,uint256,uint256,uint256,uint256,uint256)","4e82844d":"countWishes()","4e82c134":"getAddressFromUsername(string)","4e83977a":"validationWallet()","4e840bea":"IGTToken()","4e84c614":"getWaitingState()","4e860ebb":"disableTokenIssuance()","4e876ecc":"directSellRate()","4e87c715":"DEFAULT_INITIAL_COST()","4e880082":"distributeTheSameAmountOfTokens(address[],uint256)","4e89eb98":"bonusDicrement()","4e8a411b":"deallocate(address,address,uint256)","4e8afc5f":"getRegister(string,bytes32)","4e8b759c":"BuyOrdersOf(address,uint256)","4e8b75d0":"IRtokenChain(uint256,string,string)","4e8be64d":"TokenToken(uint256,string,string)","4e8c2927":"FreeToken()","4e8eaa13":"cancelAuction(uint256,address)","4e8ec73e":"jockeyPr(uint256)","4e8f05d1":"setGrowthTokensWallet(address)","4e8f7fdf":"allocateTokenForTeam(address)","4e8fb35c":"referralBountyTokensAddress()","4e91025e":"Liquidate(address,uint256,uint256,uint256,uint256)","4e91ca3a":"updateModuleStatus(address,bool)","4e91db08":"setBytes32(bytes32,bytes32)","4e91f906":"getNewPetCard(uint8,uint8)","4e922731":"calcRefBonus(uint256)","4e926eab":"getInviteePIDs()","4e9282af":"setBDApprove(uint256,bytes)","4e930483":"addbtycmoney(address,uint256)","4e9384da":"addSecondPreferences(bytes32[],bool)","4e938539":"preSaleSecondBonus()","4e93bf32":"maximumBuyBackAmountInWEI()","4e9466f7":"withdrawToMany(address[])","4e94917a":"Claim_TRAC_20000()","4e94c829":"getAugur()","4e94fbcf":"setIntervalCoefficient(bytes2,uint256,uint256,uint256)","4e954f87":"IsEthereum()","4e961921":"getCurrentTokenRate()","4e96ea53":"addContract(address,address,address,string)","4e97bcfc":"EmergencyStop()","4e98323c":"setReturnAgent(address)","4e9833ac":"changeHoldingTaxInterval(uint256)","4e989a5b":"importPlayers(address,address[])","4e98a5b3":"receiveAssets(uint256)","4e99b800":"tokenBaseURI()","4e9b5db0":"BASEPRICE()","4e9c6b1f":"million()","4e9cf5b1":"changeOperational(bytes32,bool)","4e9de828":"registerAuthContract(address)","4e9e456b":"oraclize_query(uint256,string,bytes[1])","4e9ec8a6":"transferETHtoContract(uint256)","4e9ee738":"test_8_basicTransfersBetweenAccounts_increaseBlocksBy300()","4e9f0f06":"GimmerTokenSale(address,address,uint256,uint256)","4e9f9d37":"startTimeTwo()","4e9faaba":"_sell(address,uint256)","4e9feee6":"changeFrozenTime(uint256)","4ea05686":"countSet()","4ea0db6c":"HardCapReached(address,uint256)","4ea10c74":"FounderAllocationTokens()","4ea14479":"setProjectToVerify(address,uint256)","4ea1fcb6":"getWithdrawAmount(address)","4ea201cc":"betInfo()","4ea28ee6":"MyToken(uint256,uint256)","4ea2ea9f":"allocLastTxRewardByHand()","4ea2f66a":"_claimIfNeededThenSteal(uint256,uint256,address,uint8,bytes32,bytes32,uint256,uint256)","4ea34cdb":"getActionContract(address)","4ea37fec":"presaleStartTimestamp()","4ea412f4":"setPrice3(uint256)","4ea44358":"setGen0Step(uint256)","4ea5195a":"participantRoundCalced(address,address,uint256)","4ea5a6ac":"getRocIndexToOwner(uint256)","4ea611cd":"setPartnerDurance(uint256,uint256)","4ea640da":"ManoAntrasToken()","4ea66c38":"buyinInternal(address,uint256)","4ea6c89e":"isPreviousStageFinalized()","4ea73b07":"APOTokenCrowdsale()","4ea7d483":"priceStar5Now()","4ea801c5":"writeRate(string,uint256)","4ea8b6d0":"changeProfilePicture(bytes32)","4ea9560e":"FoshaAirdrop()","4ea9a27a":"registerHolder(bytes32,address,uint256)","4ea9ea71":"_submitTransaction(address,uint256,bytes,bytes,address)","4eaaad7b":"left72(uint256)","4eab3998":"Allocations()","4ead4771":"getBIDList()","4eae51f4":"getHeirs()","4eae8e30":"isSenderApprovedFor(uint256)","4eaef8a2":"getCEOHashing(address,uint256)","4eb03f6e":"updateMinter(address)","4eb054e6":"createPinMoTrade(bool,uint256,uint256)","4eb06f61":"manualLockFunds()","4eb09bf4":"getParametersHash(uint256,uint256,uint256,uint256,address,address)","4eb1483d":"IcoAddress()","4eb166af":"right73(uint256)","4eb1e71c":"HashTestCoin()","4eb1f578":"saleValve(bool)","4eb21301":"currentSaleCap()","4eb259aa":"burnAndReturnAfterEnded(address)","4eb2a8fb":"Banear_Oraculo(address)","4eb3148e":"feesTakenFromPrize(uint256,uint256)","4eb333c7":"setSynthesizingAuctionAddress(address,address)","4eb37fe7":"Tournament(uint256,uint256,uint256,uint256,uint256)","4eb396cd":"mintByMintable(address,uint256)","4eb421e5":"MockFailUpgradeableToken()","4eb4fe80":"getBackLendingItem(uint64)","4eb5162e":"collectSellFee()","4eb56999":"claimRefundVaultOwnership()","4eb665af":"setLockDuration(uint256)","4eb7221a":"nameRegistry()","4eb7d857":"getSite(uint256)","4eb81ba4":"getSchellingRoundDetails()","4eb8ffb4":"ORACLIZE_GAS_LIMIT()","4eb933bf":"withdraw(bytes32[],address[],uint256[],uint64[],uint8[],bytes32[],bytes32[])","4eb94102":"setAuctionManagerAddress(address,address)","4eb94872":"Err(string)","4eb95b97":"DropNotice(uint256,string,string,string)","4ebab5cf":"specificApprove(address,uint256)","4ebc31f3":"managerETHcandidatAddress()","4ebc7a9c":"processReinvest(address,bool)","4ebcdc2b":"SwapStarted(uint256)","4ebd7741":"extraMint(address)","4ebe2d46":"createMultisig()","4ebfa8bc":"getUserBettingInfo(address,uint256)","4ebfd6e8":"freeForAll()","4ec06982":"paybackToDepositer(address,uint256)","4ec0744d":"UtrustToken()","4ec1646d":"claimFreeAnimalFromAnimalFactory(string,string)","4ec18db9":"poolSize()","4ec19512":"calculateRunway()","4ec1adf1":"callAMethod2(uint256)","4ec24fa0":"getManagementProxy(uint32,int256)","4ec2b417":"getBankKYC(address)","4ec2cde6":"totalSupplyForCrowdsaleAndMint()","4ec2d0b6":"buyMiner(uint256[])","4ec32507":"parentBlockInterval()","4ec42e8e":"antToken()","4ec4878b":"donateJackpot()","4ec6396d":"TransChain()","4ec6a61a":"InitializeCoinToUser(address)","4ec70fde":"publicMin()","4ec7344e":"MetaFoxToken()","4ec735ae":"revokePermission(address,address,bytes4)","4ec79937":"approve(bytes32,bool)","4ec7a6e7":"externalSale(address,uint256,uint256,uint256)","4ec7b58b":"delSaleOwner(address)","4ec7ddc0":"addCommitteeVote(address)","4ec883d1":"editRestrictedAddress(address)","4ec8a8ff":"unpausecontract()","4ec9ef9c":"calculateTokenPurchase(uint256,uint256)","4eca4b19":"sendCoins(address,address,uint256)","4ecb02aa":"firstTierDiscountUpperLimitEther()","4ecb1390":"saleTokens(address,uint256)","4ecb35c4":"confirmations(address)","4ecb5e79":"IamGROOT()","4ecb8d0f":"transferOwnershipSend(address)","4ecc6eab":"setDefaultBuyerLastPaidAt(uint256)","4ecc7f59":"assignPreicoTokens()","4ecd4aa9":"createRequestAsPayeeAction(address[],bytes,int256[],address,bytes,string)","4ecd73e2":"DistributeDividends(uint256)","4ecd81b3":"redeemUTXO(uint256,bytes32[],bytes,bool,uint8,bytes32,bytes32,address)","4ecdf165":"rareIdRange()","4ecf77d3":"getUnfinishedGames()","4ed0694f":"kkICOTest77()","4ed0efd1":"selfdestructs()","4ed250bf":"freezeTime(uint256,uint256)","4ed3881e":"setTokenTransferIdentifier(string,bytes4)","4ed3885e":"set(string)","4ed4831a":"all(bool[7])","4ed4d42a":"transferTokenAddress(address)","4ed577bb":"IssuedToken(string,string,uint256,uint256)","4ed600d1":"confirmVestingSchedule(uint256,uint256,uint256,uint256)","4ed767a1":"totalFinalised()","4ed7cb10":"XXXXXXXX10(address)","4ed8579e":"setGPSMaxEth(uint256)","4ed87713":"ADVISORS()","4edac8ac":"num_claimed()","4edba7bf":"adapterEnabled()","4edbca6e":"getCategory(uint256,uint256)","4edbe9f7":"MintCommandBonus()","4edc689d":"allowAddress(address,bool)","4edc8ccf":"registerEIP777Interface()","4edccd31":"replace_square(uint256,bool,uint256,address)","4edce4e1":"push(int256,bool)","4edd0d07":"setConsumeTokenAddress(address)","4edd74e8":"reservesBalance()","4eddbd8d":"getCurrentPrice(uint128,uint128,uint24,uint64)","4ede23c8":"addressNotNull(address)","4edefd31":"setExpireDelay(uint256)","4edefe83":"doBroadcast()","4ee0ab0d":"forceEnd()","4ee0b9a9":"DaoHubVerify()","4ee0cb8a":"CutieBit()","4ee0cd98":"setFundMintingAgent(address)","4ee0d066":"setTotalsContract(address)","4ee16aba":"contributeToPurse(uint256)","4ee1d045":"secPerBlock()","4ee29ec5":"getNumberOfAssertions(uint128)","4ee2a3df":"setTargetDiscountValue2(uint256)","4ee2cd7e":"balanceOfAt(address,uint256)","4ee3659d":"AGC()","4ee3ad07":"HareemCoin()","4ee3c579":"DurioToken(string,string,uint8,uint256)","4ee3dc91":"publicToken()","4ee4d731":"enableMETTransfers()","4ee4d8fa":"isGlobalConstraintRegistered(address,int256,address)","4ee51a27":"airdropTokens(address[])","4ee67d33":"Etheradium()","4ee7ca3a":"erc20FOBS(string,uint8,string)","4ee9eb70":"InformRebuyTo(uint256,address)","4eea636f":"GROWCHAIN(uint256,string,string)","4eea9a8d":"withdraw2(address)","4eec0185":"aomracoin()","4eec44b4":"beforeBalanceChanges(address)","4eeca076":"Counter()","4eecafdb":"ifEndGetting()","4eed8a45":"LogTokenAllocation(address,uint256,uint256)","4eed965e":"_createGame(string,address,uint256)","4eee121f":"setOrCacheTargetReporterGasCosts(uint256)","4eee424a":"removeClaim(bytes32)","4eee59b3":"guess(string)","4eee8c25":"tokenBuyCost()","4eee966f":"setTokenInformation(string,string)","4eeea29d":"transferPreSaleBalance(address,uint256)","4eeedef1":"BCALAttToken()","4eeee8ac":"updateFighterBattleStats(uint256,uint64,uint16,uint64,uint16,uint16)","4eef440c":"bonusLevel0PercentModifier()","4eef683d":"PALAIR()","4ef02cf3":"preicoEndDate()","4ef05de3":"evacuate()","4ef1a23a":"manualInsuranceResolution(bytes32,uint8,bytes32)","4ef20030":"_setTokenMeta(uint256,bytes)","4ef37628":"getChallengeNumber()","4ef39b75":"finalize(address)","4ef3f235":"changeMaintenanceTime(uint256,uint256)","4ef45cac":"Announcements()","4ef50711":"apply4Redeem(uint256)","4ef5710a":"WatchNumberOfPlayerInCurrentRound()","4ef65c3b":"setUint(uint256)","4ef6b8ce":"Certificate()","4ef8086a":"switchManagerAndRemoveOldOne()","4ef83a70":"withDrawEth(uint256)","4ef85140":"CAOsale(uint256,uint256,string,string)","4ef8885f":"getSocialAccountPw(bytes32,bytes32,bytes32)","4ef8ff33":"MIN_INVESTMENT()","4ef94e34":"setMilestones(uint32[],uint8[],uint32[])","4ef98616":"CelebsPartyGate()","4efa45a1":"addAddressSetting(string,address,address,address,string)","4efb023e":"totalModerators()","4efb04ff":"created_contracts(address)","4efb7296":"updatePlotData(uint256,string,string)","4efbb734":"PublisherRegistryReplaced(address,address)","4efbe933":"buyForHackerGold(uint256)","4efc067f":"getAuraValue(uint256)","4efcc69e":"ExMoneyToken(uint256,string,string,address)","4efd1551":"add(address,address,uint256,uint256)","4efd9e2c":"updateMinContribution(uint256)","4efdd4f9":"viewUnclaimedResearchDividends()","4efddcd9":"artWorkChangeByAdmin(uint256,string,uint256)","4efeb2cf":"crowdDistribution()","4eff13dc":"OFFER_SIZE()","4eff86e7":"RBFToken(uint256,string,string)","4f0016d0":"endContract(uint256,uint256,uint8,bytes32,bytes32)","4f002522":"set_creature_builder(address)","4f011d9d":"getIntermediary(uint256)","4f013184":"investInTheSystem()","4f013ea6":"_THOUSAND()","4f01541e":"setReceiverAddress(address,address)","4f01d77e":"manual_lottery(bytes32)","4f02c420":"minted()","4f03c340":"proposeTx(address)","4f046439":"updatePurchaseSize(uint256)","4f04a36e":"setDesignatedReportPayoutHash(bytes32)","4f04af35":"CORReserveAllocation()","4f052648":"XaurumDataContract()","4f052b82":"UNLOCK_OUTINGRESERVE()","4f057506":"Limit()","4f059a43":"getClaimAmountForBlock()","4f062c5a":"getTier(uint256)","4f065672":"Start(string,bytes32)","4f0693a1":"BONUS_LATCH()","4f069517":"removePublicSalesSpecialUser(address)","4f07307b":"setLoanCreator(address)","4f073130":"takeOrder(bool,uint256,uint256)","4f07a663":"close(address,uint32,uint192,bytes,bytes)","4f07b5f0":"startSale(uint256,uint256,uint256,uint256,uint256,address)","4f07cc4f":"ETH_MIN_LIMIT()","4f082843":"enableChain(uint256)","4f084c0c":"payLast(uint256)","4f089298":"Etch(bytes32)","4f089898":"updateBlackListTrader(address,bool)","4f090ab4":"burnPrimordialToken(uint256)","4f0913ef":"MANHATTANPROXY6THST()","4f09cfc5":"changeDiviRate(uint256)","4f09eba7":"proxyApprove(address,uint256,bytes32)","4f0a195e":"totalBasicIncome()","4f0a746f":"blacklistAddress(address,address)","4f0a97b9":"test_basicThrow()","4f0b0deb":"gameCreate()","4f0b584e":"getCCH_edit_18()","4f0b8374":"addToPrivilegedList(address)","4f0b9a2b":"KarTokenERC20(uint256,string,string)","4f0c563f":"depositBonus()","4f0ca055":"getMiniPoolEdit_5()","4f0cae88":"balanceThis(address)","4f0cc59d":"swapID(address,bytes32,uint256)","4f0cd27b":"getCount(address)","4f0cdd29":"getAddressByUserName(string)","4f0cf7e1":"fillTradesInfo(bytes32,uint256,uint256[])","4f0d8533":"addNewStreetType(string)","4f0ddd27":"getTemplate(string,string)","4f0e3333":"wedaddress()","4f0e3dad":"USD_GOAL()","4f0e760a":"_takeOwnershipOfTokenFrom(uint256,address)","4f0e8656":"showAdmin()","4f0eaf96":"oraclizeCallbackGas()","4f0f4aa9":"getNode(uint256)","4f0f539e":"getActiveMessage()","4f0f97ab":"TokenForSale()","4f1069ad":"serchIndexByAddress(address)","4f10a0bd":"_createAvatar(string,address,uint256)","4f10acc1":"updateGoldFeeData(uint256)","4f1157aa":"EtheriumWall(string)","4f118ad7":"GenericToken(string,uint8,string,uint256)","4f11ca65":"distributeTeamTokens()","4f11e07d":"getProof(address,uint8,bytes32)","4f139314":"compensateLatestMonarch(uint256)","4f13e130":"fightAsuriMonster()","4f13fc0a":"setCompte_30(string)","4f150787":"batchFillOrKillOrders(address[5][],uint256[6][],uint256[],uint8[],bytes32[],bytes32[])","4f161245":"getUIntValue(string)","4f162f8f":"icoEndTimestampStage4()","4f18d6fb":"BITAD()","4f190ed2":"changeDekzAddress(address)","4f192fa3":"MajestyAssetsJunction()","4f197ee7":"transferPackageOwner(string,address)","4f19e977":"INVALID_ORDER_SIGNATURE(bytes32)","4f1a5b86":"tokenReserved1()","4f1a7678":"getInsuranceDataByID(uint64)","4f1a892b":"setSectionForSale(uint256,uint256)","4f1ae61a":"releaseFeesAndBountyJM(address,uint256)","4f1afb63":"ownerforce()","4f1b2d4f":"toBool()","4f1bbc4d":"SuccessAuctionEvent(address,address,uint256,uint256)","4f1c3417":"getSpawnProxy(uint32,int256)","4f1c3b66":"setAccountData(address,uint8,bytes32)","4f1c8d0f":"milkBalanceOf(address)","4f1d38c0":"activeCrowdsalePhase3(uint256)","4f1d76ef":"buyabletoken()","4f1e0d0b":"getGoldInfoCustodian(address)","4f1e4334":"setMinBalanceForContractCreation(uint256)","4f1ea770":"bc(uint256,address)","4f1eb4b2":"proposalInProgress()","4f1ef286":"upgradeToAndCall(address,bytes)","4f1f421b":"SuMain()","4f1f99aa":"changeOzreal(address)","4f1fa7ef":"streamityContractAddress()","4f20f35a":"payExpenses(address,uint256)","4f219ceb":"getPlayRate(uint256,uint256)","4f223fe3":"StatefulFactory(string,string,string)","4f224baa":"setMetaBaseUrl(string)","4f2253d4":"addStudent(string,string,string,bytes32)","4f22bcf8":"allocationAddressList(uint256)","4f232f77":"transferFromRoot(address,address,uint256)","4f238029":"getSaleAuctionAddress()","4f23cce0":"ownerBetsCount(address)","4f23e50a":"defineReward(string,address,uint256,uint256)","4f24186a":"newProposal(string)","4f242cde":"startICO(uint256,address)","4f245ef7":"auctionStart()","4f248409":"endICO()","4f24e471":"numRewardsAvailableSetForChildAddress(address)","4f255b80":"getCharacterIndex(uint32)","4f256693":"addFile(bytes32,bytes32)","4f2578ba":"getVestedFounderTokens()","4f25a319":"PUBLICSALE_STARTTIMESTAMP()","4f25d6dd":"solveTime()","4f25ec6e":"_transferFee(address,uint256,address)","4f25eced":"distributeAmount()","4f26ef80":"buyAd(uint256,string,string)","4f271740":"UNFREEZE_DATE()","4f27869e":"defaultExit(uint256,bytes,bytes32,bytes,bytes,bytes32,bytes,bytes)","4f27ce68":"setSlogan(uint64,string)","4f27de64":"ByteExtractor()","4f28216a":"lowContributionAward(address)","4f284594":"info_TotalSupply()","4f28af6a":"handleBet(uint256)","4f28c443":"AIRDROP_TOKENS_PERCENT()","4f297b2b":"TokensGiven(address,uint256)","4f2989af":"indexExists(bytes32)","4f2996ab":"getBalanceByEscrowId(uint256)","4f2af869":"lastCalculatedToken()","4f2b0e41":"preSaleFund()","4f2be91f":"add()","4f2c9196":"getUsedBySoftwareLength()","4f2cd9cc":"auditConfirm()","4f2d7ab5":"contributionMinimum()","4f2eebc3":"PreSaleStartTime()","4f318dd8":"confirmVestingSchedule(uint256,uint256,uint256,uint256,uint256)","4f31cc51":"frozenTokenTransfer(address,uint256,uint8)","4f31e3ec":"minRoundSize()","4f32c65b":"emitFuture(bytes32,uint256,uint256,uint256)","4f32de0a":"request_payout_holder()","4f33428a":"setConsolationRewardsRequiredFaith(uint256)","4f33a013":"artHash()","4f346a7d":"emit(address,uint256,uint256)","4f348b46":"getTokenAmountOnAdd(uint256)","4f3655a8":"verifyBet(uint256,uint256)","4f36fbdc":"setMinMaxPriceInWei(uint256,uint256)","4f36fec8":"hardCapSale()","4f3741b5":"RateChanged(address,uint256,uint256,uint256)","4f37edfd":"burnAndRetrieve(uint256)","4f383934":"setMyTokenList(address[])","4f39ca59":"drop(bytes32)","4f3b1fb6":"unlock(string,address,bytes32,string)","4f3b8938":"mythexTokenAddress()","4f3bb920":"lockDownPeriod()","4f3d057a":"push(string)","4f3d1416":"SetOriginator(string,string,string,string,string,string,string,string,string,address,string)","4f3d1c27":"setLpMaxVolume(uint256)","4f3d3003":"participantRoundValue(address,address,uint256)","4f3d520c":"getClearance(address)","4f3ded8a":"getFinalPaymentAmount()","4f3df0a8":"getRemainingTimeOf(uint256)","4f3f2cbc":"changeFeeModifiers(address)","4f3f4211":"awardDailyLottery(address,uint256)","4f3f5746":"participatingIn(address)","4f3fc162":"removeOriginByIndex(uint256)","4f3fd173":"get10Animals(uint16)","4f3fed94":"tokenIncrease()","4f4027d0":"SHAREHOLDERS_SHARE()","4f4200e5":"setAddressOfERC20Token(address,address)","4f424da3":"Bounties_Wallet()","4f438a12":"provideTransactionFeedback(uint256,uint8,bytes32)","4f438ddb":"changePercent(uint256,uint8)","4f44728d":"ownerChangeOwner(address)","4f4522b0":"getIntelligenceValue(uint256)","4f452b9a":"isStormBirdContract()","4f4548f9":"registerAudit(bytes32,bytes,bool)","4f45779f":"mintTokensWithinTime(address,uint256)","4f45c308":"DocumentSigned(uint256,address)","4f466ce6":"TOTAL_T8EXTOKEN_SUPPLY()","4f4821e1":"createGiftTemplate(uint256,uint256,string,string)","4f48e46d":"get_all_payment(uint256)","4f494cad":"createAuction(uint256,uint128,uint128)","4f495513":"privateSaleTokens(address,uint256)","4f4a69c8":"TestTokkSale()","4f4b30ba":"dropManualState()","4f4b890a":"getCET6ById(uint32)","4f4cd650":"getAllTellers()","4f4d022b":"upgradeQualificationByTokens()","4f4d4728":"offeringEnded()","4f4df442":"approve(address,uint256,uint256,uint256)","4f4e1b74":"founderSwitchRequest(bytes32,bytes32)","4f4e47f1":"stopAirdrop()","4f4ec991":"PubToken(uint256)","4f4ef121":"firstBonusSalesEnds()","4f4f23ef":"SundayFundayToken()","4f4fa5a6":"removeReferral(address)","4f501f27":"changeOuts(address,address,address)","4f504d72":"getBalanceInPlay()","4f511102":"setDeveloper(address,address)","4f51bf46":"getBidIdList()","4f52b2bc":"findLockupIfCTD(address)","4f52ccfa":"beneficiary1()","4f53126a":"pauseGame(bool)","4f538ae1":"rain(address[],uint256)","4f53e83e":"smartProperty(uint256,string,uint8,string,address,uint256,uint256,uint256)","4f54f4d8":"getMatchDetails(bytes32)","4f5539c0":"SetPrice(uint256)","4f556b23":"onceoutTimePer()","4f558e79":"exists(uint256)","4f55f292":"convertIntoHtlc(bytes32,address,uint256,uint256,uint256,bytes32)","4f573cb2":"withdrawRevenue()","4f57641c":"getHorse(uint256)","4f58704c":"ARI()","4f58d5c9":"getTokenUSDRate()","4f5963fb":"calculateYourValueEven(uint256)","4f5a4eb9":"setAssetOwner(uint256,address)","4f5af739":"getBirthTime(uint256)","4f5b3318":"dateEndIco()","4f5b9f23":"power2(uint256,uint256,uint32,uint32)","4f5ba601":"airdropOn()","4f5c6e0a":"bonusOne(uint256)","4f5d06c2":"getPurchasePrice(uint256,uint256)","4f5d5295":"chairBalance()","4f5e6a8d":"whitelistedTransfer(address)","4f5f560a":"founderOf(uint256)","4f5fca97":"LimitEther()","4f5fcb34":"authorize(string)","4f6065e0":"get_presale_arbits_total(address)","4f60ae2e":"DividendReceived(address,uint256)","4f60f334":"multiAccessAddOwner(address)","4f610e74":"getDeclaration()","4f617b81":"unsetSectionForSale(uint256)","4f61db15":"VEGAS()","4f61ff8b":"kyberNetworkContract()","4f6247f8":"setThirdAddressBalance(address)","4f645993":"lastMiningBlock()","4f64808d":"createCustody(address)","4f64aa09":"advisorsLock()","4f64b2be":"tokens(uint256)","4f653f09":"_scheduleTournament()","4f655a61":"setMinimum(uint256,bool)","4f65cc3c":"ethToTokens(uint256,bool)","4f6716d3":"whitelistAddressArray(address[])","4f674164":"addBookSigner(bytes16,address)","4f67498e":"updateUSeqIndex()","4f6754d7":"tenEndTime()","4f67bd9e":"numberFor(uint256)","4f67fe22":"LOG_OwnerAddressChanged(address,address)","4f69dd3d":"triggerWithdraw(address)","4f6a441c":"getRandom8(uint8,uint8)","4f6a461a":"CatalogPlayers()","4f6acaa1":"getLedgerCount(string)","4f6adf48":"setPayOuts(uint256,string)","4f6b1a70":"vuePayETHDestination()","4f6b472d":"tokenSupplies()","4f6c3372":"CrowdSale_Halt()","4f6c63ea":"TeamRegistered(string,address,string,bool)","4f6c87fb":"STARTToken()","4f6cb43f":"advisers()","4f6ccce7":"tokenByIndex(uint256)","4f6d04e7":"createSeedCollectible(uint8,uint8,uint256,address,uint256,uint256,uint256)","4f6d150d":"LuvCoin(uint256)","4f6d20a9":"getRewardForAddress(address,address)","4f6d3aed":"refundGas()","4f6d97ed":"MakeTransaction(address,uint256,uint256,string,string,uint8)","4f6d9e16":"_settleAndRestart()","4f6dcf74":"PoS()","4f6de831":"testComplexCombination()","4f6fcc46":"getAirdropList()","4f7035b4":"DeleteAllRequests()","4f7132c0":"TokenDemo(uint256,string,uint8,string)","4f71473e":"withdrawAll(address,address[])","4f71ef81":"parse(bytes32)","4f72e1c3":"buyChamp(uint256)","4f731087":"checkTokenBalance()","4f734965":"setBBDPrice(uint256)","4f73928a":"setComment(bytes3,string)","4f739ff0":"addHouseStake()","4f73b7fa":"EthernityFinancialOracle()","4f73b8e6":"STAKE_BONUS_MIN_THRESHOLD()","4f73f1f8":"withdrawToAdress(address,uint256)","4f73f71d":"getOwlmasterReq()","4f7474cb":"closeAnnouncement(uint256)","4f74acfe":"buyEggs()","4f74d4f6":"ftechiz()","4f755fe7":"financialAccount()","4f75af3a":"tokensSuppliedFromReferral()","4f75c464":"startExit(bytes32[],uint256)","4f75e930":"UNLOCKINTERVAL()","4f76a077":"addInvestorToWhiteList(address)","4f76c87c":"createSportEvent(string,uint8,uint256)","4f76cb02":"testGetBitFailIndexOOB()","4f772420":"changeFundContract(address)","4f779753":"DimaCoin()","4f77feec":"getPositionInterestRate(bytes32)","4f79409f":"LogBuy(address,uint256)","4f7ac7ab":"toteLiquidatorWallet()","4f7aede9":"add(uint8,address,uint256)","4f7baec0":"test_mint(int256)","4f7cd683":"setReportRegistrationFee(uint256)","4f7d4951":"addVIP(address)","4f7d5de9":"setTimeRC(uint256,uint256)","4f7d87ac":"PoiseToken()","4f7dad6a":"buyToken(uint256,string,string)","4f7e7086":"iconiqToken()","4f7eb571":"getHowMuchUntilHardCap_(uint256)","4f7fc13f":"CLIENT_TIME_TO_DECIDE()","4f801270":"releasableBalanceOf(address)","4f803516":"getOrCreatePreviousPreviousFeeWindow()","4f8115a2":"tokensAddress(uint256)","4f817a2a":"tInstance()","4f81b930":"_sendFunds(address,uint256)","4f829ee8":"set2(uint256,uint256)","4f82ff41":"isCertified(uint256)","4f83fe64":"timeLocked(address)","4f840761":"demandTrial(uint256)","4f840c2b":"setMigrateToAddress(address)","4f8411e5":"_approvedFor(address,uint256)","4f851d73":"BineuroToken()","4f85769a":"closingTimePeriodOne()","4f8632ba":"user()","4f868b94":"etherSince20()","4f86bde2":"BuyFromFollower(address)","4f879ff0":"StackLottery()","4f883783":"CheckProofOfOwnership(bytes32)","4f88cc3c":"returnAllPollStakes(bytes32)","4f895031":"finalizeSale(uint256,uint256,uint128)","4f896d4f":"resolve(uint256)","4f8b9e64":"getBuyersList()","4f8c2a8a":"block02w()","4f8d40e1":"closeTournament(bytes32)","4f8da1fe":"RewardWallet(address,address,address,uint256)","4f8dd40a":"getOpinion(uint256)","4f8e2fdf":"LinkToken()","4f8e624e":"Greeter(string)","4f8fb544":"erc223Received(address,uint256,address,uint256)","4f8fc8ef":"setNonceForPublicKeyX(uint256,uint256)","4f8fe6a4":"THREE_YEAR_KEEPING()","4f8ffd1f":"set_contrib_arbits_min(uint256)","4f9000a0":"nextPrizePoolPercent()","4f932d44":"_generateIdentity(uint256,uint256,uint256,uint256)","4f935945":"capReached()","4f93995d":"saleNotEnd()","4f93b9e8":"setCommunityLock(address)","4f945a8a":"transferOwnCoins(address,uint256)","4f9559b1":"cancelOrdersUpTo(uint256)","4f958146":"LongLegs()","4f95a04b":"ethTransfer(address,uint256)","4f95ddec":"shopStorePrice()","4f95e960":"getTotalDropsOf(address)","4f961a6b":"RATE_TIER3()","4f962b72":"setPriceRate(uint256,uint256)","4f9660ed":"sendToTeam()","4f968868":"PauseTokenContract()","4f96ab8e":"retrieveUportInfo()","4f96baf1":"createNewAccount(address)","4f96bc00":"records(bytes32,uint16,bytes32,uint16)","4f96cddd":"calculatePreBonus(uint256)","4f96decf":"migratePlayerData1(uint256,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","4f96e039":"waitingOracles()","4f96f446":"tier1LOT()","4f96fba7":"setAuditAssignBlockNumber(uint256,uint256)","4f97f97f":"lastCrowdsale()","4f9899c3":"PythonCoin()","4f995d08":"getPeople()","4f996a07":"callerDel(address,address)","4f99a96e":"getBorrowingItemByObjId(uint64)","4f99b7c5":"currentDate()","4f99b82d":"setBurntWalletAddress(address,address)","4f9b7bc8":"totalTokensSale()","4f9bf601":"totalTxFeePercent()","4f9bfdac":"OVISBOOKED_BONUSTOKENS()","4f9c5253":"Store(string)","4f9c5bf3":"airdrop_percent()","4f9d482a":"HALF_TIME()","4f9d719e":"testEvent()","4f9de158":"_sendTokens(address)","4f9ea1c3":"flightDone(uint32)","4f9ebe09":"getDonationPrice()","4fa037c4":"setTokenMintFeeProp(address,address,uint256)","4fa07325":"adddraw(uint256)","4fa0a4b7":"_getCanvas(uint32)","4fa10cfc":"getdata()","4fa11dd2":"setAirdorpList(address[],bool)","4fa20a52":"isDelayed()","4fa232fe":"getIcoDeflator()","4fa2cb50":"solved(string,string)","4fa3d029":"setSTFactory(address)","4fa3eeff":"withdraw3()","4fa406ee":"BeforeChipCost(uint32)","4fa43991":"getArtistTrack(bytes32,address)","4fa48a88":"isSameDay(uint256,uint256)","4fa4a531":"getbackTB(uint256)","4fa4d01a":"_averageSalePrice(uint256,uint256)","4fa519fa":"setValue()","4fa65d58":"WRLToken()","4fa679d8":"forward(uint256)","4fa6a6d5":"crowdSaleStartTimestamp()","4fa6caf6":"getSigner(bytes32,uint256)","4fa6cde4":"requestEthUsd(uint256)","4fa7e353":"pledgeFees(uint256)","4fa87fd3":"frozenFunds(address,uint256)","4fa88720":"setBypassStatus(address,bool)","4fa972e1":"maxSupplyForEra()","4fa99402":"spinnerCountsByType(uint256)","4fa99dd0":"Matching_Ethers()","4fa9b5d5":"seed_base_token()","4fa9e4dc":"getArticlesOwn()","4faa2d54":"getTimeElapsed()","4faa8a26":"depositEtherFor(address)","4fab2035":"newSchellingRound(uint256,uint256)","4fab2ca4":"testGetFrontend()","4fac7e41":"getOwnedTokenIds(address)","4fac9c65":"bonussale_WeiRaised()","4faca8f4":"sendTokenTeamAdvisor(address,address)","4fad404a":"confirmProposal(string,uint256)","4fad5c8a":"depositAgent(uint256,uint256,string,string)","4fad96dd":"DST_ICO()","4fae3254":"setMaxAuditDuration(uint256)","4faea4d6":"FrankTestToken1()","4faed396":"checkVotingForSendWeiFromExchange()","4faf9420":"airdropFor(address)","4fafee40":"lottoPrice()","4fb057ad":"ContractInstantiation(address,address)","4fb0a3cd":"claimTeamReserve()","4fb0d95e":"getLocalBountyBalance(uint16)","4fb19db5":"dollarCost()","4fb2e45d":"transferOwner(address)","4fb30d8b":"txs()","4fb31a6a":"replaceProto(uint16,uint8,uint8,uint8,uint8,uint8,uint8)","4fb34523":"deployStepFour()","4fb3d3b1":"getUserHistory(address)","4fb3fef7":"totalExecutedPerDay(uint256)","4fb46d5c":"getRoundStatuses(uint16)","4fb4bcec":"step5()","4fb4e833":"entryStorage(bytes32)","4fb4f5a3":"ETHMCoin()","4fb55858":"setTargetDiscountValue4(uint256)","4fb67111":"utfStringLength(bytes4)","4fb764c9":"orders()","4fb7f1d7":"getPastWinnerAddresses()","4fb8843c":"getAllBonus()","4fba68c5":"pWhitelist(address)","4fbc7e11":"enableTokenWithdrawals(address,bool)","4fbd051d":"verifyCertification(address,uint256)","4fbda01f":"LogPenaltyDisbursed(address,uint256,address,address)","4fbe30d4":"changeTokenRate(uint256)","4fbea8ea":"approveKyber(address[])","4fbf6e9f":"getFish(uint32)","4fbf6fbb":"getMultiRequestLastRequestId(uint256)","4fc0ee17":"setCreditMCCurator(address)","4fc28f68":"getUndistributedBalanceOf(address,uint256)","4fc2d3be":"setBaseExchangeRate(uint256)","4fc3f41a":"setCooldown(uint256)","4fc4b5a0":"highEtherBonusValue()","4fc573c7":"addrDevelopment()","4fc59e6b":"set_Rate(uint256)","4fc5a549":"StartAuction(string,uint256)","4fc63e02":"ExToke(address,address,address,uint256,uint256,uint256)","4fc78cf1":"add_reward()","4fc7a47d":"extra_time_bought()","4fc84791":"senderAddress()","4fc91633":"setNotLessThan(uint256)","4fc9584a":"messageSpanStep()","4fc9c91a":"identityOf(bytes32)","4fca3159":"rawBuy(bytes32)","4fca329a":"drawBookLotto()","4fcaadae":"_createDivCard(string,address,uint256,uint256)","4fcb2968":"kingSpirit()","4fcb9e2f":"getLastPayoutDate()","4fcc30d9":"AuctionSuccessful(uint256,uint256,address)","4fcc9e07":"getDynamicArraySize()","4fced032":"OneKeyToken(uint256,string,string)","4fcf1f39":"revealWinner(string)","4fcf8210":"eraseRecord(bytes32)","4fd0fcb6":"partnerAmountLimit(address)","4fd1519c":"getValidDurationBlocksData()","4fd23dd4":"transferMulti(address,address,address,address,address,address,address,address,address,address,uint256)","4fd2ee52":"getTargetContactPubKey(bytes32,address)","4fd394ba":"getMax(uint128[])","4fd3d125":"onlyAdminsCanDoThis()","4fd4dbaa":"_emitError(bytes32)","4fd61333":"DataChanged(bytes32,address,string,string)","4fd6194d":"setup(string,address[])","4fd64591":"tokenClient()","4fd6b325":"test_5_generateSecondAccountBalance_increaseBlocksBy1000()","4fd6e8ac":"andTheWinnerIs()","4fd6ff6e":"CROSAIR_SHIP_PRICE()","4fd7718b":"firstStageDuration()","4fd798b1":"TsingDaToken()","4fd81926":"setMaxDividendDepth(uint256)","4fd839c6":"getRabbitDNK(uint32)","4fd8411c":"AddressChangeRequested(address,address)","4fd88a1c":"spendFunds(address,uint256,string)","4fd9c9ac":"ExposureClosed(bytes32,address,uint256,uint256)","4fdb7c47":"RtbRpay(address,uint256)","4fdb91ab":"TOKEN_AMOUNT_ICO_STAGE1_PRE_SALE1()","4fdbe2c3":"changeFoundationAddress(address,string,address)","4fdc1a70":"icoCore(uint256)","4fdc4295":"_offerCanvasForSaleInternal(uint32,uint256,address)","4fdc53f6":"setTokenOwner(address,uint256)","4fdc5f65":"LiverpoolvsManCity()","4fdd228d":"ownerOfPosition(bytes32)","4fde7cd9":"tokenToFounder()","4fdf4c9a":"Icebox(uint256)","4fdf64ce":"totalBorrowingItem()","4fdf8a03":"VLTMultisig()","4fdfcd42":"removeBytes32s(bytes32[])","4fe01d38":"setTokenReward(uint256)","4fe06988":"toTimestamp(uint256,uint256,uint256)","4fe0bd1e":"fundsAvailable()","4fe0ff1a":"submitInitialMerkleState(bytes32,uint64,bytes32[],uint256[],uint256,uint256,bytes32,uint256[2],bytes32,bytes32,uint8)","4fe2e15a":"checkTicket(uint256,uint256)","4fe2f085":"INVESTORS_TOKENS_RESERVED()","4fe47cb4":"emitStoreAndPay()","4fe47f70":"setMaxAmount(uint256)","4fe50bc6":"baseTokenGetRate()","4fe51ee6":"ValkyrieNetwork()","4fe5c2b4":"Vidnix()","4fe5f587":"CCXToken()","4fe61b9e":"disableBonus()","4fe6adb4":"NewToken(string,string,string,address)","4fe71e95":"withdrawUserReward()","4fe72439":"DEVELOPER_SUPPLY()","4fe7940b":"show_Balance_available_for_Sale_in_ETH_equivalent()","4fe81ffd":"artistsArtworks()","4fe82444":"addEthContribution(address,address,uint256)","4fe85563":"RAGTOKEN()","4fe87fe0":"FundsWithdrawnEvent(address,address,uint256)","4fe8b1a8":"changesoldierreplenishrate(uint256)","4fe8b4c1":"deleteData(uint256)","4fe8d03f":"bountyTokensTransferred()","4fe9cc63":"InitHostBalance(address,uint256)","4fea572e":"ERC20Token(string,string,uint8)","4febb4f9":"WorldCupTeam(address,string)","4febe793":"NewText(string,string,address,uint256)","4fecf22d":"delegateManagement(address)","4fecf9cf":"Helex()","4fed1c94":"isTokenForSale(uint256)","4fed6a10":"teamTimelock()","4fed9a60":"Bonus(uint256,uint256)","4fedebf6":"numOfTeam()","4fee13fc":"startAuction(uint256,uint256)","4fee2437":"tokensaleStartTime()","4fee5360":"transferLike(address,uint256)","4fee63da":"securitiesOf(address)","4feeb18a":"priceQuerySent()","4ff0b071":"SILENT_Token()","4ff13571":"x2()","4ff1ddec":"TransactionConfirmedAfterExpiry(uint256,uint256)","4ff2bcb7":"getStageBonus(uint256,uint256)","4ff30c5f":"nextMintPossibleDate()","4ff3a989":"BLOCK()","4ff44fda":"_holding()","4ff45d73":"unapproveDisbursement()","4ff4ab6c":"ticketsOwners(address,uint256)","4ff57e9f":"airdropAndBurn()","4ff62627":"convertCore(address,uint256,uint256)","4ff6aa46":"deactivateTeam()","4ff6e86e":"getProviderPublicKey(address)","4ff7ff32":"withdrawERC20Tokens(address)","4ff92d6f":"getAssignedSupply()","4ffb01ce":"RemoveEvidence(bytes32)","4ffb32d3":"BlackSnailE()","4ffb861e":"_addAuthorization(address,address)","4ffc9204":"centralBankAddress()","4ffcd9df":"exchangeRates()","4ffcfefe":"m_weiBalances(address)","4ffd23a7":"sell(uint32)","50003ca6":"calculate(address)","5000a443":"jingZhiManager()","50010427":"bet(address,uint256,uint256,uint256)","50013a53":"LICERIOToken()","5001780b":"maxFundingGoal()","5001f3b5":"base()","50020560":"Accessible()","5002b2b9":"FusoraToken()","50035eb8":"getInUse(bytes20)","5003c2cc":"setPriceProgression(uint16)","5003c81d":"ERC223StandardTokenFactory(address)","5003d58f":"returnTokenBalance(address[2],uint256[8],uint8,bytes32[2])","5003e4d1":"Token(uint256,string,uint8,string,address)","5003efca":"extendedTokenCap()","50048174":"addItemLendingList(address,uint256)","5004e7a6":"CoinFast()","50050769":"changeRegistrationFee(uint256)","50051c20":"CELToken()","50058508":"getPubkey(address,address)","5005ba47":"setDestroyEnabled(bool)","50060f34":"getBatch(address,uint8)","5006bf0b":"internalExecuteDelegatecall(address,uint256,bytes)","5006e60a":"ownershipToCreator()","5007364f":"getLeaderboard(uint16)","50077f00":"jsonCat(string,string,uint256)","5007e47e":"getIntrospectionRegistry()","5007ec95":"IbzCoin()","5007ff15":"GridcubePlatformToken()","500844dd":"setTotalStakingHistory()","5008b7dd":"buyProduct(address,address,uint256)","5008cfcc":"votePerETH()","5008f699":"setRollover(uint256)","5009432d":"MAX_PRIVATE_FUNDING_SUPPLY()","500b6b3e":"calculationTotalSupply()","500b9426":"accountLocked(address)","500c6755":"DepositAmount(uint256,uint16)","500c6f21":"setManagementFeeChargePercentage(uint256,uint256)","500d22db":"setData_14(string)","500e73a4":"SSChainToken()","500e9eaa":"finishZeroDistribution()","500ec41b":"setAirState(bool)","50107c77":"addThing(string,bytes32,string,bytes32)","501146b4":"_updateNextPeriodPoints(address,uint256)","50114925":"transferDelegated(address,address,uint256,uint256,uint256,uint256,bytes)","50116afb":"decreaseAssetsCertified(uint256)","5011e399":"replaceSigner(address,uint256,uint8,bytes32,bytes32)","5012416f":"processAndCheckParam(string,address,uint8[],bytes32[],bytes32[])","50125546":"cancelRequest(bytes32)","50127418":"Question(address,string,uint256,uint256,string)","5012adca":"packInfo(address,bytes)","5012eb67":"trFee()","50133d50":"MinimumViableToken(uint256)","5013bb79":"TheTokenB()","50140fe5":"distributeBountyTokens(address,uint256)","50148ed2":"initEpochBalance()","5014a18e":"node_parent(uint256)","501578ca":"EntryAdded(bytes32,uint256,uint256)","50159de6":"ownerRemoveCeo(address)","5016128e":"isLock(address)","5016b9b1":"buyFromBlackMarket(uint256,uint256)","5016d29f":"refundedAmount(address)","5017f1f1":"constructor_()","50180944":"NEST()","50188301":"withdrawable()","5018a0fd":"withdrawAddr(address)","50192ae6":"test_31_assertGasUsage50Boards()","501957b8":"getManifest(address,bytes32,bytes32)","50197646":"rId()","501a4d68":"changeNameSymbol(string,string)","501a7a74":"uint256Min(uint256,uint256)","501b0b18":"receiveLoanOwnership(address,bytes32)","501bae76":"setr2VaultAddr(address)","501bfb60":"transferStampsToOwner(uint256)","501c5205":"_updateLandData(uint256,uint256,string)","501e3a2c":"_icoPercent()","501e8428":"getPart(bytes,uint256)","501fdd5d":"setSpecID(bytes32)","5020dcf4":"convertToEach(uint256,string,uint256)","5021051e":"setInflation()","50213c9f":"EXPERTS_POOL_ADDR()","5021783a":"addPerformer(address,string,uint8,string)","5021e534":"_dividendsSum(uint256[])","5022238f":"AVAILABLE_IN_PRE_SALE()","50228201":"getCollector()","5022d232":"CelebrityBreederToken()","5022e940":"experty()","50234173":"addNotary(address,uint256,uint256,string)","5023d124":"TestFactory()","50240158":"rejectContribution(address)","50240a34":"onLotteryInsurance(address)","502414e4":"marketMaker(string)","50248cd1":"ownerYHT()","50259cd3":"privatePreICOFreeBonusPercent()","5025b9ae":"expire(uint256,uint256,uint8,bytes,bytes,bytes)","5028594a":"setBlockDotGasLimit(uint256)","502a86bf":"gameGiftUserDayTimes()","502aa3b5":"usersList(uint256)","502b31d2":"splitEther()","502b8bda":"synths(bytes4)","502be15e":"unregisterByList(address[],bool)","502c9bd5":"userAddresses(uint256)","502cc114":"KittyToken()","502d7599":"IssueTokens(address,uint256,uint256)","502dadb0":"disableWhitelist(address[])","502e3b46":"EffectAdded(uint256,uint8[])","502f2dee":"sendFromTeamWallet(address,uint256)","502fe251":"getUidLastUpdate(string)","5030c325":"signBuyer(uint256)","503129c3":"ISC()","50312c9e":"checkContractBalance()","503248fe":"minPriceForMiningUpgrade()","5032f33b":"TokenLocker(address,address)","50357beb":"buyCard(uint256,address)","5036258b":"disableAddress(address)","50364825":"InsertImage(string)","503667bd":"_burnFor(address,uint256)","503687bc":"getTokenReleasePercentage()","5036d610":"Presale()","50372085":"isTokenContract()","503765c6":"LOCKTokenCOINLock(address,uint256,uint256,uint256)","5037ec62":"changeDelay(uint256)","5038c9c5":"getListingAtPosition(uint64)","50391932":"findContractVersionByAddress(address)","503919b1":"unblockTokens(address)","50392bcc":"CleanFoodCrypto()","50395188":"tan_lian()","5039c62c":"inviteHandler(bytes32)","503a0ef8":"requestLoans(address,uint256)","503a3609":"mainSaleSecondStartDate()","503adbf6":"changeableToken(uint16)","503b64c0":"setRequestProcessed(uint256,uint256)","503c449f":"decreasePregnantCounter()","503c849e":"cashOutRate()","503caa1b":"performPayout()","503caa53":"phase2TokenPriceInEth()","503de95b":"newCash()","503e11de":"getAssetIdCargoArray(uint32)","503e9d33":"changeWeTrustSigner(address)","503eb429":"destEthFoundation()","503ef9fe":"changeFeeAmt(uint8)","50400128":"RiskPrice(uint128)","5040307c":"amountOfOrderQueue()","50405fdf":"setMemberLevel(address,uint8)","50409041":"_computeSalesCut(uint256)","5040c6e7":"HardCap()","50411552":"challengeWinnerReward(uint256)","50416b93":"batchClaim(uint256,uint256)","5041742a":"bidOnEthSiringAuction(uint256,uint256,uint8,bytes)","50428f84":"insertLastPlys(uint256)","504291f0":"maxToSell()","5042ffbe":"contributeInIco()","504321e0":"toTeamEthContract()","504334c2":"setNameSymbol(string,string)","50449d9d":"whiteListPreSaleDuration()","5044b112":"getChecksumCount()","50473c82":"deathData_f15()","50479065":"cancelCreation()","5047b337":"changeName(bytes16)","5047f867":"setAirdropParams(bool,uint256)","5049b238":"potentialWinner()","5049f497":"nominate(address,address)","504ac982":"transfer(string,string)","504b0ae8":"LOG_ValueIsTooBig()","504b122f":"readMulti(bytes32,bytes32[])","504b91b5":"GeishaCoin()","504b97ae":"getcertifieddata(uint256)","504bcde7":"getAuctionTokenIDsOfOwner(address)","504c9582":"PARTNERS_SHARE()","504cceac":"purchaseTokens(uint256,address)","504d080b":"getActions()","504d27fd":"transferAmount()","504f1671":"getSize(address)","504f5e56":"floor(uint256)","504f6085":"serviceTransfer(address,uint256)","504fac70":"getGiftTemplateById(uint256)","504fbb19":"LifeChain(uint256,string,string)","50500934":"right28(uint256)","50500fac":"LaunchPartnersAddress()","50512420":"getPlayerDiscount(address)","505158bb":"getRecordsCount()","50515d5a":"resolveDispute(bytes16,bool)","50520b1f":"contribution()","5052587f":"Show_automated_Sell_price()","5052abad":"viewContribution(address)","50548d85":"LogMakeDeposit(address,uint256,string)","5054e8bf":"collectDevFees()","5055225f":"preSaleStartDate()","5055557a":"perform_selfdestruct(uint256)","50558dd5":"setPropheth(address)","5055d7c3":"withdrawnMelon()","50560a1a":"_oraclizeQueueWinner(bool)","5056a36a":"AuthorizationSet(address,bool)","5056b309":"getSetting()","5058c460":"safeWithdraw(address,uint256)","5058f013":"periodWeek()","505903ba":"GetEthBalance()","50591478":"getChainDrawingsByChainID(bytes32)","5059fad1":"transferIssuer(uint256,address,address)","505a202b":"priceChangeName()","505a7bce":"pullEther(uint256,address)","505ba497":"processInvestment(address,uint256,address)","505c3c58":"MasAnu()","505c3d5e":"piecesOwned()","505da5c7":"_bonusToFighters(uint32,uint8,uint256)","505e71d0":"test_twoInvalidFalseEqLog()","505ed108":"createPetCardSeries(uint8,uint32)","505f2697":"rejectCertification()","505fb46c":"add(uint256,uint256,uint256)","505ff574":"register(address,uint256,bool)","506092f7":"getAmbientLightException(bytes32)","50609cea":"onTokenTransferCalled()","5061029d":"MINE()","50613afe":"getDropNotice()","5062ef16":"readOpentasks()","50635394":"claimBonus()","50635e2f":"CYPHERX()","50636a68":"ERC223Token(uint256)","50637dd2":"stageName()","5063f361":"addMembers(bytes32,address[])","50648403":"registerWithInviterID(uint256)","506535f3":"verify(address,bytes32,uint8,bytes32,bytes32)","50655d8c":"maker()","5065cbab":"geteth(address)","50669508":"DatasetHub()","50669a03":"unpauseToken()","5066a9ac":"setLPTargetPostion(uint256)","5066e2bd":"teamKeepingWithdraw(uint256)","5067f32d":"KALToken()","50685c81":"SwarmRedistribution()","50692d9a":"toContentID(address,string,string,address,bytes32)","50699e89":"requestBuywithFX(uint256)","5069a6a6":"calculateKebabSell(uint256)","506a0aaa":"reverseSplitTokensBeforeDistribution(uint256)","506a6a10":"tokenBonusForThird()","506aaede":"issueDividend()","506b56da":"centralBanker()","506bd3a6":"removeExchanger(address)","506bff11":"left7(uint256)","506cb188":"NewOrder(uint256,address,address,address,uint256,uint256,uint256,uint256)","506cf560":"blackil()","506d54c7":"getBigWinner()","506d9ebd":"getData_8()","506dc7e1":"getUsageDetails()","506e106c":"setToS(string)","506ec095":"periodEnd()","506ee1ef":"traderNonces(address)","50710ef5":"_finalRoundWinnersFight()","50713dc0":"transferOwnershipManualMinter(address)","5071fcf0":"recoverSouls(address[],uint256[],uint256[])","5072a21b":"_createPotato(uint256,uint256,uint256,uint256,address)","5073eda3":"setPOOL_edit_25(string)","5074449d":"isTradable()","50750497":"VestingTransfer(address,address,uint256,uint256)","50754fac":"totalNetworkCollateralisation()","5076d445":"AdminClaimAirdrop(address,uint256)","5077ac0e":"registerImage(uint256,bytes,uint256)","507843f8":"assemblyShamir(uint256,uint256,uint256,uint256)","50787341":"normalizedEarlyPurchases()","507959e1":"newBeneficiary(address)","507a83ea":"arand(address,uint256)","507a8e40":"AssetToken(uint256,string,uint8,string,address)","507afbec":"processBuyAmount(uint256)","507b3450":"getKNCRateRangeSignatures()","507d17bb":"MultiplyContract(address,address,uint256,uint256,uint256,uint256)","507d5954":"stopCrowdsale()","507d8887":"setCompte_19(string)","507e7888":"subscribe(string)","507e97a9":"setBUA(bytes32,uint256,address)","507eeff9":"trade(address[2],address,bytes,bytes)","50807ecc":"getSellerfee()","50818fbb":"internalGetHowMuchUntilHardCap(uint256)","50833515":"RestartReceivingContributions()","508335e6":"maxRentPeriod()","508343d6":"initiateEscrow(uint64,uint256,uint256,address,address,address,address)","5083b29f":"changeBookingFee(uint256)","508493bc":"tokens(address,address)","50849c3b":"placeoffer(uint256,uint256)","5084b2a3":"MintAuthority(address)","5084da18":"fipsOwner(bytes20)","5085c9f1":"numTokensInCurrentCompactData()","50867236":"debug_token_balanceof_faucet()","50872d1e":"onTransferFrom(address,address,address,uint256)","50872e32":"EUROQUINNToken(uint256,string,string,uint256)","50875b6c":"remainingLockDate()","508762c1":"right10(uint256)","5087abc7":"joinOutBattle(string)","50894456":"manuallyMakeOraclizeCall(uint256,uint256,bool,bool,bool)","508a0a9e":"NitrToken()","508a8976":"saleSuspended()","508ab47a":"showPoolContract(uint256)","508b0955":"testNoTokensTwoCalls()","508bb866":"getMyBet(uint256)","508cde13":"getMappingID(string,address)","508d0f57":"getNumberOfPeriods(uint256,uint256)","508d60aa":"teamETHUnlock2()","508df5df":"numResponseOptions()","508e3718":"setValidKYC(bool)","508f352d":"heapSort(uint16[])","508f46a0":"getGameSettings()","50904081":"purchasesCount()","509065b8":"mintTokensForFirstStage()","50909851":"ownerEmit()","5091c49e":"bonusSeed()","5091e7c4":"selfdestroy()","5091f881":"updateArtistCommission(uint256,uint256)","50921b6c":"EGGS_TO_HATCH_1CROCS()","509239c0":"amountContributedBy(address)","50928ba4":"canCreateGames()","5092f97e":"Company()","50930ca5":"doFailingTransferFrom()","50933a0f":"Bitnusu()","5093cb38":"setEtherDelta(address)","5093dc7d":"setValue(int256)","50944a8f":"setMembership(address)","509484d5":"setStakeContract(address)","509515b5":"getWinnerAccount()","50963bc4":"returnTokensTo(address)","50965f57":"currentWulinMasterPrice()","50977faf":"fetchTokenBalance()","5097e51f":"Public()","509a13dd":"RoundId()","509a7e54":"getRoot(bytes32,uint64,bytes)","509bf2bf":"axe()","509c3fc8":"createTestNetContract(address,address,address,uint256,uint256,uint256)","509c5df6":"reservedFunds()","509c5eee":"ASGToken()","509c90b3":"callTokenFallback(address,address,uint256,bytes)","509cd360":"Board()","509d6d72":"mediumPrice()","509d8c72":"VALUE()","509f0fe4":"setupFundingTime(uint256,uint256,uint256)","509f6ff8":"AquaToken(uint256,string,string,uint8,uint8,address)","509f7cf2":"testingForFun(uint256[])","509f8633":"create_account()","50a09d60":"SaleIsLive()","50a0f733":"final_shares_sold()","50a107cc":"setVotingPhase()","50a13702":"denyChangesMultitoken(uint256)","50a14ea4":"returnPreSaleTokens(address,uint256)","50a1676e":"createdAt(uint256)","50a1debd":"robAll()","50a22ee1":"BancorGasPriceLimit(uint256)","50a3bd39":"enterPool()","50a49f5f":"getBurnDelegates()","50a58b3f":"exist(address,address[])","50a5c872":"host_reveal(uint256)","50a5ebd9":"updateSpaceshipStatus()","50a675fe":"QQBToken(address)","50a6887c":"UpgradedNodelist()","50a6b423":"settlementPayOut(bytes32,uint256)","50a7755e":"newDad()","50a82265":"EventEmergencyStop()","50a8246f":"testRIPEMD160()","50a85d36":"DeathNode()","50a8d2b9":"getNumSigsOwned(bytes32)","50a9b541":"bootyToken()","50a9e127":"backup()","50a9eddb":"testControlSetNotUpdatableNotOwner()","50ab6f7f":"getMsgs()","50ac9828":"FileData()","50ad2f76":"vendGuardian(uint256)","50ad7321":"GPSDecayingTokenEnvironment(uint256,uint256)","50adc70a":"winning_country_string()","50adcdb7":"fundToken()","50ae28ea":"StandardCertificate(string,string,string,string,uint256)","50ae85d8":"reservedAddr()","50aeddcf":"censorChatMessage(uint256)","50b0021c":"currentRandom()","50b04a4e":"getCountryById(uint8)","50b066b2":"changelp13(address)","50b149a9":"setPriceStep1(uint256)","50b1a697":"toReferrer(uint256)","50b1ab69":"PET(uint256,string,string)","50b1f058":"fetchPaidOrdersForPayer(address)","50b2ae66":"transferChips(address,address,uint256)","50b44712":"tickets(uint256)","50b48c5e":"autonomousConverter()","50b58c06":"JuggernautToken()","50b5bc93":"unlockFirstTokens()","50b62939":"getAddressBalance(address,address)","50b6ba0b":"getWtoken(uint8)","50b79722":"setSanLength(uint256,uint256)","50b7b7a2":"setRating(bytes32,uint256)","50b7e942":"acquireTokens(uint256,uint256,address,uint256)","50b82a48":"objectSack()","50b91881":"setKycWhitelist(address,address,bool)","50b926fd":"UnityToken()","50b93b3b":"sendBuzzCafe()","50b9963f":"_continueTokenPurchase(address,uint256)","50b9c428":"oraclizeGasLimit()","50baa622":"withdrawToken(uint256)","50bacea9":"icoPhaseAmount1()","50bb117a":"defrostDate(address)","50bb4e7f":"mintWithTokenURI(address,uint256,string)","50bc051e":"lockedForAsset(bytes32)","50bc373d":"regionAvailable(uint256,uint256)","50bc4ae6":"_joinToProvider(uint256,address)","50bc6bba":"createSaleAuction(uint40,uint128,uint128,uint40)","50bd1933":"UberDelta()","50bda35a":"setCharge(bool)","50bda77e":"updateJobRate(bytes32,uint256)","50be7503":"giveToken(address,uint256,address,bool)","50beb835":"getDeploy(uint256,uint256)","50beca78":"isTrainer(address)","50bed043":"sendFunds(address,uint8,uint256)","50bfeadc":"initialTokens()","50c007c6":"verifyTx(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[5])","50c0f2b9":"licenseTermsRegistry()","50c15c93":"depositChecking(address,uint32)","50c2e4f6":"ADVISOR_SUPPLY()","50c34878":"priceOfAUnicornInFinney()","50c35227":"central_account()","50c38479":"resetCurrentTokenOfferingRaised()","50c3e676":"resolveErrorReport(uint256,bool)","50c40877":"Nai()","50c42921":"replicate()","50c4b64c":"_unpackAuraValue(uint256)","50c4ebc4":"finalTimestampOfBonusPeriod()","50c5c99a":"setScrapyard(address)","50c67734":"setPricingStrategy(address)","50c6784d":"ShareableMock(address[],uint256)","50c6a4e0":"_buyPixelBlock(uint256,uint256,uint256,uint256,bytes32)","50c6ef88":"setChampsName(uint256,string)","50c7ac75":"addint8(int8,int8)","50c8512b":"CollectibleNoLongerForSale(uint256,uint256)","50c88103":"setEruptionThreshold(uint256)","50c8dbd2":"totalBlocksMined()","50c90136":"fixedLog(uint256)","50c90af0":"unLockAddr()","50c946fe":"getNode(bytes32)","50ca6227":"getTokenInfoData()","50ca73c8":"aSetLaunch(uint256)","50cc5d4b":"totalWeiVolume()","50cca1e1":"rejectMail(uint256)","50ccf36b":"getWeiPriceOneUsd()","50cd4df2":"o()","50cd4f3f":"ScratchTickets(string,uint256,uint256,address)","50cdbb6b":"setEarlyParticipantWhitelist(address,uint256)","50ce761d":"NumberCreated(address)","50cee5a0":"addToWallet(address,uint256)","50cf20dd":"richtestff(uint256,string,uint8,string)","50cf569c":"getUserAttribution(bytes32,address)","50d00b95":"authorizeProcessor(address,address,string,string)","50d0b060":"createVestingForFounder(address)","50d12a72":"payReferrer(address,uint256)","50d17749":"BuyLimits(uint256,uint256)","50d279bd":"changeRewardMintingAmount(uint256,int256)","50d2bfab":"set_exchange_rate(uint256[])","50d491ab":"userGetPendingTxByAddress(address,address)","50d4a2b9":"crowdsaleGoalReached()","50d4bf15":"buy100ktickets()","50d50324":"stopSaleDepo()","50d5914a":"TOKENS_PER_ETHER_PRESALE()","50d6d893":"_rejectTransaction(uint256,address)","50d78f7d":"QueryFrozenCoins(address)","50d7bf09":"record(string,string,string,address,bool,string,string,string)","50d7d290":"withdraw_refund()","50d7da00":"GSH(uint256,string,string)","50d808d4":"StartTradable()","50d80fef":"addOffChainAddress(address,address)","50d8bcf3":"SMLToken(address)","50d925fb":"REBELCOIN()","50d9b932":"PatronOneWithdrawal()","50d9d472":"numberOfAuctions()","50da9f6d":"SellENS()","50dad350":"Hodling(bool)","50db7247":"maxCapPreSale()","50dc26ec":"TokenUser(address)","50dc43a1":"addGameMachine(address)","50dc4bfe":"addUserFeedback(address,uint256,address,string,string,string,string,string,string,uint8)","50dcce5a":"upPrice()","50ddd6f7":"addToEmployerAvgRating(address,address,uint8)","50de84c1":"CesiraeToken()","50deda1c":"addtoken(address,uint256,uint256)","50dede35":"marketDrugs()","50df10c3":"lockTill(address,uint256)","50df7eb4":"unsoldTokensAmount()","50df8f71":"isReady(uint256)","50e01e16":"Registered(address,bytes4,string)","50e036ff":"allowedContractsCount()","50e06b57":"Etherization()","50e08ddb":"devidendsOf(address)","50e14731":"BKEXComToken()","50e17308":"maxMineSize()","50e17975":"_badgeFreeze(uint256)","50e1b95a":"getShipProductClassByModel(uint16)","50e26c23":"getAssetBaseInfo()","50e27f2d":"TicTacToeLockedState(address,address,address,address,address)","50e28cb3":"SECOND_USER_CUT()","50e2ccad":"CoreTeamAndFoundersSupply()","50e343d0":"prWallet()","50e37961":"setWhitelisting(address,uint128)","50e38e63":"groupMemberInfo(uint32,address)","50e3b157":"sharesValue(uint256)","50e43c9c":"c(address,int256,int256)","50e4b069":"set0xExchangeWrapper(address)","50e513ac":"destroyUser()","50e59eb3":"isMinter()","50e706fb":"getProposalFunds(uint256)","50e72f61":"Break()","50e78690":"getHomeGasPrice(bytes)","50e7dde2":"setParetoToken(address)","50e81a3b":"setProviderCompleted(bool)","50e81e08":"_releaseToken(address)","50e84925":"saleEnd3()","50e8587e":"multiApprove(address[],uint256[])","50e86e1e":"setOwnerValidateAddress(address)","50e878df":"updateOrderAmount(address,address,uint256,address,uint256,bool)","50e9f948":"initialFiatPerEthRate()","50ea1932":"lookupISO3116_1_alpha_2(bytes)","50ea1c95":"MyIdolCoinToken()","50ea53db":"transferIncorrectDisputeBondsToWinningReportingToken()","50ea9274":"TokenRefund(address,uint256)","50eb2d02":"BBNToken()","50eb7ec4":"SupercarToken()","50eba4eb":"voteSnapshotBalanceBatch(address[],uint256[])","50ec2a6a":"batchCancel(address[5][],uint256[6][],uint256[])","50ec5903":"blackListSwithcer(address)","50ec6b1b":"getNamelistLength()","50ed2a2c":"poke(uint128,uint32)","50ed6264":"lastStakings(address)","50edd8c2":"nestedFirstAnyToAny(uint256)","50ee6de2":"candyLand()","50eebaf7":"mininumPurchaseTokenQuantity()","50ef3bae":"getQuestionVote(string,uint256)","50efc7c0":"districtToBuildingsCount(uint256)","50f07cf9":"setReadingDelay(uint256)","50f0880e":"sendLimitTokensToCompany(uint256)","50f0f83d":"getTransferFromFromValue()","50f1179a":"setPriceOfAss(uint256,uint256)","50f1c695":"authorizedLoggers()","50f2fb7f":"getCalls()","50f3dd7a":"assembleUnicorn()","50f4556b":"WhiteRhino()","50f462a4":"validationFailed(address)","50f46eef":"calcToken(uint256)","50f49db1":"getSlideEndTime(uint256)","50f4f9f8":"addShare(address,uint256)","50f503c1":"isSspRegistered(address)","50f5ef78":"getWork(address,address,uint256)","50f71526":"necashToken()","50f7c204":"maxTokenSupply()","50f8fc97":"LogCertificationDocumentRemoved(address,bytes32)","50f91ee3":"withdrawTokensRemaining()","50f956db":"nextAmount()","50f96b5d":"minEthPerNotification()","50f9b39e":"getReward(address,uint256,uint256)","50fa5d13":"stage4BeginTime()","50fb5a92":"buyWithReferral(uint128)","50fcff5c":"extCheckHalfLife()","50fdb01a":"setNewWinner(address,uint256)","50fe533b":"getLevitatingBirds(bytes32,uint64)","50feacc5":"PriceManual()","50fed3b4":"buy(address,uint256,uint256,uint256,bool)","50fef2e4":"tokenAirdropLeft()","50ff0761":"R_N_D_WALLET()","50ff2015":"endAtBlock()","50ff722b":"getChannelsGuids()","50ffbe81":"checkBan(address)","51003cab":"minimumIcoRate()","510040cb":"releaseLocked()","5100602a":"preallocate(address,uint256)","5100db6f":"SYCC()","51017702":"isOutcomeSet(bytes32)","5101880f":"CPXWallet()","510219cd":"defaultAuctionDuration()","51027320":"EUNOMIA()","5102ad69":"setImpactRegistry(address)","5102bc9d":"setTitle(uint256,string)","5102e238":"test_oneInvalidEqAddress()","5103a5a3":"certify(address,bytes32)","5104a3a7":"burnedTokensCount()","5104cb5c":"refundOnBehalf(address)","5105df3b":"buyTicketByEth(uint256,bytes32,bytes32,bytes32,bytes32)","5106b8fe":"transfer(address,address[],uint256)","510792c8":"hydroPartnerMap(uint256,address)","5107c0a8":"FBEE()","5107fde8":"lockedTeam()","510a3e2a":"round2Bonus()","510ae121":"Yangshuai(uint256,string,uint8,string)","510b1529":"issueTranche(uint256)","510bf040":"launchVesting()","510c27ad":"getOracleList()","510c58c9":"Gig9()","510c8243":"CategoryDeleted(uint256)","510ccb43":"getRewards(address[])","510de15a":"ICOSaleExtended(uint256)","510e23eb":"invalidEarlyPurchaseIndexes(uint256)","510e4235":"_createForecast(uint256,uint256,uint256)","510ea296":"_createDiamond(string,address,string,string,string,string)","510ec598":"computeCurrentReward(address,address)","510ef1ce":"changeQuarterSeason(int8)","510ef1de":"setTokenMetadata(uint256,string)","510f44cb":"TestFactoryUser()","510fbf8d":"setValue(address,string)","511075a9":"getIpfsForAssets(uint256[])","5110d31c":"TradeEthShop(address,uint256)","5111249e":"checkMultOverflow(uint256,uint256)","51114b24":"interSendWithOtherEvent(address,uint256)","51118f1d":"transferFromSystem(address,address,uint256)","5112f02c":"getCard()","51131017":"setUpdateGasCost(uint256)","511354a1":"phase2MaxTokenForSale()","5113d5f7":"BTCETC(uint256)","51142cc3":"secondStageCap()","5114a9aa":"TheBestICO()","5114cb52":"makePayment(uint256)","51172285":"TwoAfrica(uint256,string,string)","51175e01":"setNumRewardsAvailableForAddresses(uint256[],address[])","51180c63":"removeValue(bytes32)","51192814":"GenesisBuyPrice(address,address)","51193bad":"LUVTOKEN()","5119a342":"GetUserInfo()","511aae8b":"addFreelancerContract(address,address,uint256)","511acd53":"TOKEN_RATE_30_PERCENT_BONUS()","511b1df9":"addr(string)","511b445b":"nowperiod()","511bb41c":"rebateTwoFenmu_()","511bc0f6":"_addOwner(address)","511c5d66":"SetAddressForReturn(address)","511d2299":"processBNBContribution()","511e2613":"getoddAndEvenBets(uint256,uint256)","511e5639":"KamuToken()","511e84ce":"setIsAutoRestart(bool)","511eb8da":"confirmOrder(address,address,address,address,bytes32)","511fa487":"getMinSell(address)","5120429c":"TokenSold(uint256,uint256)","51206d81":"getRefWallet()","5120bb20":"transactionsOn()","5120f028":"sendAmount(uint256,address)","512202d7":"getOuvidoriaEndpoint(int256,address)","51223fdc":"LogClaim(uint256,address,uint256)","512267b0":"rewardScarcityFactor()","51228c4e":"addReferralProfit(address,address,uint256)","5122c6d1":"onSell(bytes32,uint256,address,uint256,address,uint256,address,address,uint256,uint256,uint256)","512392cc":"BITCOIMINIG()","51239fde":"multiDistribute(address[])","5123e1fa":"etch(address[])","51243676":"LogBookTicket(uint256,address,string)","5124ae95":"getNonces(address)","51252412":"crowdsaleTargetBRA()","51254729":"CynkciarzToken()","512570d6":"updateBrand(address,string,bool)","5125796a":"changeOraclizeProofType(bytes1)","51259770":"GetEthShop(address)","51274842":"logEvent(uint256,string,uint256,uint16,address,uint256,uint256)","5127a94a":"getRaisedAmount(string)","5127cab5":"rateFirstRound()","5128ab7b":"GetSaleInfo_Airdrop(uint8)","5129096c":"INGCL()","51290d06":"cofounderB()","51297cc6":"airDropTokenEnabled()","512a9c33":"startCrowdsale(string,string,uint8,uint256,uint256,uint256,uint256,uint256,uint256,address,string)","512b64c6":"_productDoesNotExist(uint256)","512b658d":"mintToAddress(uint256,address)","512c0b9c":"randomDS_updateSessionPubKeysHash(bytes32[])","512d62df":"getClass(uint256)","512d8a87":"EdwanzToken()","512dd020":"getItemsCount()","512f1e64":"orderBookLength()","512f8f92":"changeLottery(address)","512f9890":"airDropFinished()","512fcd60":"changeOwner3(address)","512ff2c9":"CHEXToken(address,address,uint256,uint256)","51306a80":"_isVotable(bytes32)","5130b405":"setMinimumBidAmount(uint256)","5130c857":"forking()","5131d3e9":"setUseFreeze(bool)","5131f01d":"available_shares()","51327a6a":"emptyToWallet()","513284c6":"createShop(address)","5132faca":"stakeTokenContract()","51331732":"ICO_start()","51331ad7":"getRoleManager()","513419e3":"updateStartTimeManually(uint256,uint256)","513485fc":"CallRejected(address,bytes32)","51349d5f":"scheduleTier(uint256,uint256)","5135077b":"setContentName(string)","51355362":"transferWithFee(address,uint256,uint256)","51355cfb":"getTier(uint256,uint256)","51356817":"doPull(address,uint256)","5135d28d":"getScore(uint256,uint256,uint256[])","5135dffa":"NonActivationWithdrawal(address[2],uint256[8],uint256)","5135f714":"Basic(address)","5136099c":"premium(bool,address,address,address,address[],uint256[])","513611e5":"setStatusTransferFrom(bool)","5136260d":"getLockedFundsReleaseTime()","51379adb":"Crowdsale(address[],uint256,uint256)","5137aa7b":"reveal(bytes32,uint256,bytes32)","5137dd99":"only666()","5137de7a":"privateReleaseTime()","5138574b":"setNextCommonTTMTokenId3(uint64)","51392041":"getDividendTokenBalanceOf(address)","513a0149":"setRocCoreAddress(address)","513a976e":"YaqootToken()","513ad9cb":"EvTokenRm(uint256,uint256,uint256)","513cb145":"convertToUSD(uint256,uint256)","513d085b":"Pandemica()","513d16a7":"setFundingStartTime(uint256)","513de1d3":"changeDivisor(uint256)","513f7d1e":"tokenValue(address)","513f99e7":"tokenFrozen(uint256)","513fdce9":"addClearingPriceValidator(address)","51401d4d":"gameMaxBetAmount()","51404cbe":"forceDivestOfOneInvestor(address)","51409f51":"currentTradingSystem()","5142ba74":"rolloverFeePeriod()","5142bc1e":"getAllowedRangeOfChoices()","5142c3ec":"assertEq13(bytes13,bytes13)","51430cb3":"claimMaxAmount()","51431800":"getSendableEther()","5143284d":"start4NormalPeriod()","5143659d":"claimCooldowns()","51436641":"convertToMiniCQS(uint256)","5143821e":"_moveToArea(uint16,address)","514385be":"disableConnectorPurchases(address,bool)","5143a9fe":"deposit(address,uint256,address,bytes)","5143e246":"mintLocked(address,uint256)","5143eea2":"addOwnerFromRecovery(address,address)","514403b3":"setnodemoney(address,uint256)","5144417c":"news()","51446e85":"CITRUX()","51464905":"updateGoldInvestor(address)","5146585a":"calcInterestRateNumerator(uint256)","5146690e":"reservesWallet()","5147af92":"buyGasLimit()","51489551":"getToken(bool)","5148ccb9":"DynamicCeiling(address,address)","5148de8d":"minimumTimeBeforeUpdate()","5149ffcb":"calculateSubmissionIndex(uint256)","514a48ae":"_changeApproveDate(uint256)","514a88ae":"revokeSchedule(address,address,address,address)","514ae8a6":"MagneticsToken(uint256)","514b13f2":"presaleConversionRate()","514d6e07":"horseShoeFS(uint256)","514d7067":"workOrderCallback(address,string,string,string)","514d717c":"developReserveWallet()","514dcfe3":"seller_accept()","514ec8ae":"TOKEN_CENTS()","514f0330":"changeProtocolFeeRecipient(address)","514f310f":"_NewChallenge(address,bytes32,uint256)","514fcac7":"cancelOrder(uint256)","515053c6":"depositBond(address,uint256)","5150e8ce":"CPPGToken()","515134b3":"TianZhuCoin()","5151e2cc":"GREENBIT()","5152249c":"Paladin(uint256,string,string)","51524e5b":"AirDrop(address[],uint256[])","5152abf9":"OrderCancelled(bytes32)","515361f6":"assertEq(address,address)","515371a3":"getWinnerAddress(uint256)","5154865a":"crowdFundAddress()","51548a2d":"TOKEN_AMOUNT_ICO_STAGE2()","5155287a":"whitelistedMin(address)","51553205":"PreSale(address)","5155bafa":"maxPeriods()","5155d9c6":"getPetCardSeries(uint8)","51560da9":"topDogInfo()","51563527":"passDao()","51576510":"bountiesWallet()","51582ef3":"sendProxyTransaction(address,uint256,uint256,bytes)","51584916":"allowexternalContract(address,uint256,bool)","5158c829":"RECFCO(address,address)","5158ea5e":"disallowUsers(address,address[])","51593759":"carCountOf(address)","515a20ba":"setExpiration(uint256)","515b1e41":"zss()","515b3557":"STARTING_CROCS()","515c1457":"emitTransfer(address,address,bytes32,uint256,string)","515cbcb4":"dropCoinsMulti(address[],uint256[])","515ced53":"best_submission_index()","515d4503":"getBarCodeDataAtIndex(bytes32,uint256)","515d4d52":"totalAmountsBet(uint256)","515da4b9":"transactionList()","515f128b":"COMMUNITY_POOL_TOKENS()","515f25ae":"launchShipOnMEA(uint256,uint8)","515fdde3":"migrateFunds(address,address[])","51602590":"threeHotHoursPriceOfTokenInWei()","51605d80":"imageHash()","5160a21e":"AddDomainInfoDocument(string,string)","51613683":"crowdSaleStart()","5162b2b2":"isAddressWhitelist(address,address)","5163311e":"getLastWinnerTicket()","51640fee":"getCertificate(uint256)","5164bb4d":"getCurrentStinkyLinkys()","51651003":"redenom_dao_fund()","516517ab":"make(uint256)","51656af5":"GuigsTokenSale(uint256,uint256,uint256,uint256,address,address,address,uint256)","51656f08":"AgesToken()","5165749e":"createToken(string,string,uint8,uint256,address)","516583fe":"depositFrom(uint256)","5165a03d":"payout(uint256,bytes32,bytes32,uint8)","5166b68f":"unfreezeTransfersUntil(string)","5166cf3d":"canAttack(address,address)","5168afa4":"getPackageHash(bytes,uint8,uint8,uint8)","5169ed0e":"getCCH_edit_29()","516a6b22":"PingoToken()","516ae993":"setChargeFee(uint256)","516af259":"setCurrentStage()","516b48fb":"insertList1(uint256,string,string,string,string,string)","516c731c":"setOwner(address,bool)","516cbe1a":"efwtest()","516cd39b":"revokePermissionFrom(address)","516d70c3":"lockAllocationAddress(address)","516dde43":"expiryDate()","516de876":"go(bytes16)","516e7be7":"contractFailed()","516e9aec":"lockAndDraw(address,uint256)","516ed622":"registerDINs(uint256)","516edc99":"UNITYCOIN()","516f279e":"location()","516f6afd":"Project_Enable(uint256)","516f8986":"TOKENADDRESS()","5170a9d0":"returnSender()","517125fa":"minTokensForSale()","51714d2d":"CIRCLECOIN()","517186f3":"ownerModOperator(address,bool,uint256)","5171bdec":"AllocationProcessed(address,address,uint256)","51720b41":"targetContractId()","51731f21":"changeFreezeTrading(bool)","51751612":"EtchToken()","51758666":"getMesa(uint256)","5175f65c":"_ownerApproved(address,uint256)","51764a94":"Lesson_3(address,uint256)","51768e4d":"updateItem(uint256,string,uint256,uint256,uint256)","51777183":"private_setRandomAPI_extract(string)","5177942a":"setFeeRate(uint8)","51780fdb":"w(address,address,uint256)","51784a75":"withdrawPlat()","517880df":"secondaryICO(bool)","51788439":"hashRequest(address,address,uint256,uint256,address)","517a626f":"getUserLengthOnEther()","517a70d4":"mintAmount3()","517a9d64":"share(address,address)","517afbcf":"votingController()","517b1d8f":"setRegionCurrentPixelPrice(uint256,uint256)","517b2fa8":"depositDaiFor(uint256,address)","517c48c3":"LATPToken()","517c8b12":"GetTicketOwner()","517cf73e":"getSupplyRate(address,uint256,uint256)","517d95fa":"addusermoney(address,uint256)","517e62ab":"getTxTimestampPaymentKWh(bytes32)","517ebace":"eosOf(address)","517ee2e8":"CSLottery()","517ee30d":"CreateHOLY(address,uint256)","517f4a23":"SalesManager()","517f6c51":"HardcodedCrowdsale(uint256,uint256,uint256,uint256,address)","517fe4de":"showUser(address)","51804743":"LandAccessControl(address)","5180629d":"transferByOwnerContract(address,uint256)","5181500d":"ExoplanetToken()","51819edb":"emergencyWithdrawParsecs(uint256)","5181aa01":"RELEASE_END()","51838717":"addSmartContract(address)","51843b06":"supporterBalances(address)","51846028":"setColorsX8(uint16[8],uint256[40],uint256)","518496b2":"proposedWithdrawal()","5184c96d":"escrowList()","5184cc43":"getFactor()","5184ffc9":"setAmbiAddress(address,bytes)","51858e27":"emergencyPause()","5185b724":"allocateReservedTokens(address,uint256)","51867b19":"withdrawnFrom(address)","5187527f":"reversePurchase(address)","5187a7d7":"GetSign(string,address)","51883f6e":"RecievedAnonDonation(address,uint256)","5188875b":"withdrawalToken()","51888969":"weiRaisedPreIco()","5188f996":"addContract(bytes32,address)","51892c0f":"BIGER(address)","51892f07":"changeMintingAddress(address)","518995cd":"addClip(string)","518ab2a8":"tokensSold()","518ada3b":"GetUserBets(address)","518adacd":"notifyAuthority(string,string)","518b1a33":"ALLOC_LIQUID_TEAM()","518b4372":"getInvoices(address,uint256)","518b7a29":"totalDETsSold()","518bddd9":"getCustomer(string)","518bed3f":"calculateTokensAmount(uint256)","518c0f17":"tokensOnThisChain()","518d3b64":"getTotalSent()","518d6c2d":"_preApprove(address)","518d7981":"adjustBalance(address,address,int256)","518e62db":"createOrder(address,address,uint256,uint256,uint256)","518fd40e":"cdtTokenAddress()","5190674b":"resignAsCurator(address)","51906bb0":"endTimeStamp()","51913124":"batchTransferMSM(address[],uint256[])","5191e37f":"listMultipleItems(uint256[],uint256,uint8)","51922341":"transferICOFundingToWallet(uint256)","5192f3c0":"boolToInt(bool)","519559ed":"contractMax()","5195e8c5":"mintData()","51965e75":"getRocrocId(uint256)","51971109":"UntungWaluyo()","51973391":"sentBonus()","51973ec9":"log()","5197c7aa":"getX()","519903f1":"unionBalance()","51992fcb":"addTokenAddress(address)","519936db":"StartAuction(string,uint256,uint256)","5199f1de":"lastYearTotalSupply()","519a078f":"getCommunitybyIndex(uint256)","519a1a41":"getSetup(address,bytes32)","519a73c3":"stopAcceptingDonation()","519af30e":"withdrawAllEth()","519be2f5":"resetDemo()","519bf602":"reward8()","519c6377":"signup(string)","519d1059":"setPurchased(address,address,uint256,uint256)","519e55da":"getStorage(string)","519e9a92":"Log2(address,bytes32,uint256,string,string,string,uint256,bytes1)","519ee19e":"tokenSold()","519f9590":"appointNewCFO(address)","51a073fb":"removeFromSpecialRatesMapping(address,address)","51a0aff0":"stockBuyOrder(uint256,uint256,uint256)","51a0c395":"myUsingOraclize()","51a11e94":"tokenIssued()","51a14c9f":"GetPartWeight(uint8,uint256)","51a1ad6b":"VikkyTokenAirdrop(address,address)","51a1c192":"get_solution()","51a282ae":"bidEMONTIncrement()","51a28572":"SALE0_RATE()","51a36e34":"changeCrowdfundContract(address)","51a3aed5":"getCompanyPreferences(string)","51a4cd73":"sellCoins(uint256)","51a4f7f2":"Har(address,address,address,uint256,uint256,uint256)","51a5f2f2":"ConsultingHalf(address,address)","51a6b851":"actual_feedout()","51a76924":"getSpeed(uint64,uint64)","51a784e3":"currentCirculating()","51a88a38":"PictureLibraryCoin(uint256)","51a8c3d7":"PausableCrowdsale(bool)","51a9111a":"BONUS_PRE_ICO()","51aa0199":"ethereumPrice()","51aa0a30":"modifyPMTAccount(address)","51aadcdf":"crowdSaleContract()","51ab351c":"BONUSONE_DATE()","51ab720d":"numOfTimesSteal()","51ac0d10":"getTimeBasedBonusRate()","51ad0299":"Ship(string,uint256)","51ae7f95":"COMPANY_TOKENS_LOCK_PERIOD()","51ae8754":"calcSectionTickets(uint256[],uint256[])","51af083b":"MONTH_IN_MINUTES()","51afc4af":"_getMinAuctionSeconds()","51b07a96":"getUSDT(uint256)","51b0b931":"updataLockPercent()","51b2270f":"getICOLength()","51b30900":"generateMemoryProof(uint256[],uint256)","51b3666f":"applyBooster(uint256,uint256)","51b3d7b9":"_transferWithReference(address,uint256,string)","51b41b62":"getAllOwnersOfCard(address)","51b42b00":"deactivate()","51b46399":"triggerUnpauseEvent()","51b488d4":"throwsWhenGettingTokensInNotInitiatedSale()","51b546af":"EDCoreVersion1(address,address,address,address)","51b59341":"MoncryptToken()","51b644c0":"roundedDiv(uint256,uint256)","51b6914a":"Lara(uint256)","51b699cd":"isAuthorised(address)","51b6fe96":"distributeTokens(address,address[],uint256[])","51b72a9a":"removeActivator(address)","51b79495":"performFeelessTransaction(address,address,bytes,uint256,bytes)","51b79d55":"maxPremium()","51b95400":"SophosToken()","51b98927":"_withdrawProfit()","51b9a2f8":"ballotVoters(uint32,address)","51b9c785":"step_level()","51ba24c7":"Token_ExchangeValue()","51ba5f04":"registerImpact(string,uint256,uint256)","51ba7534":"LastExec()","51babf0c":"sellToken(address,uint256,uint256,bool)","51bba1cc":"itemTransferred(bytes32,uint256,address,address)","51bcc53e":"checkFloatingOwnSupply(address,uint256,bool,uint256)","51bdd585":"currentChallenge()","51bdf229":"DummyContract(uint256,uint256,uint256[10])","51be2361":"InterCrypto_Wallet()","51c03b85":"makeBid(uint16)","51c08f4d":"gameTimeOut()","51c13af3":"MAX_ALLOWED_BOUNTY()","51c15991":"endGamblingParty(uint256,int256,int256)","51c1ae00":"DGClubCoin()","51c1bba1":"offlineGame(address)","51c221ec":"holderReserveTokens()","51c3934f":"getContractsByStatus(address,uint256,uint8)","51c3a2c6":"CPCEFundDeposit()","51c3a5d3":"getPollsSize()","51c3b8a6":"setFreezing(address,uint256,uint256,uint8)","51c40c6f":"setIntrospectionRegistry(address)","51c4e395":"logMarketCreatedCalled()","51c54c68":"buySprite(uint256)","51c54ec6":"transferAllBalance(address)","51c5d54d":"rateSecondWeekEnd()","51c65298":"exportFund()","51c69b12":"twoMonthsLater()","51c72c87":"ProofTeamVote(address)","51c74a9e":"addCertificate(bytes,bytes,bytes,address)","51c81f01":"setBursar(address)","51c85565":"nextTournamentBank()","51c875d2":"DB()","51c8d4d0":"get_arbits_whitelist(address,address)","51c8e02a":"setStore(int256)","51c9b233":"changepublicbonus(uint256)","51ca0eb8":"FACTOR_PRESALE()","51ca6966":"RefundableCrowdsale()","51ca7a94":"addNodes(string,address)","51cb21ff":"getgamecardname(uint256)","51cb6ecd":"addRandomFight2Death(uint256)","51cb860a":"setAccountNote(string)","51cb9712":"newExpertise(uint256,uint256)","51cc391d":"MULTI_SIG()","51cc4d1d":"payDemurrage(address,address)","51cc508d":"Zeinun()","51cc7cbe":"PawCoin()","51cd7c0f":"MatchPayoff(uint256,uint256,uint256,uint256)","51ce3207":"getStockOwnerInfo(address,address)","51cf6b22":"burnInvestorTokens(address,address,uint256)","51cfa44b":"getStarTotalSupply(uint8)","51cfc731":"transferFromContract(address[],uint256[])","51cfdd58":"Dewcoin()","51cff8d9":"withdraw(address)","51d10161":"boughtToday(address)","51d20c7c":"Exchange_ETH2LuToken(uint256)","51d24a33":"addNewBoard(bytes32,string)","51d28a7e":"saleTokenPrice()","51d2a8fe":"BIKSPRO(uint256,string,uint8,string)","51d2cc8f":"grid(uint256)","51d31822":"setMarketAddr(address)","51d34040":"returnBet(bytes32)","51d38d5f":"addDeveloper(address,string)","51d467f5":"getLogFillArguments()","51d53bee":"HRHToken(uint256,string,uint8,string)","51d550d2":"getPendingBalance(address)","51d59a20":"impl_incomeOf10k()","51d5d98d":"hasEnoughTokensLeft(uint256)","51d5f44f":"saleHero(uint256)","51d6e547":"getNonce(bytes)","51d74ce5":"SetWageredWei(bytes32,uint256)","51d75dc6":"BUYER_STEP_2(bytes32)","51d962e1":"endRelease()","51d977a6":"TEST()","51d997b2":"isAbstainAllow()","51dabd45":"disapproveAll(address)","51dbc419":"_drainGame(bytes32,address,uint256[10])","51dc7659":"winNum()","51dc7f7d":"setPreferredCurrency(address,bytes4)","51dd3164":"getCurrentMinimum()","51dd8119":"announceFork(string,string,uint256)","51de097f":"e_Withdraw(uint256,uint256,uint256)","51de5541":"castUpgradeVote(uint8,address,bool)","51dea0ae":"updateOwnerShares(address[],uint256[])","51ded741":"rateThirdWeekEnd()","51df6d27":"GlobalLotteryToken()","51df9db9":"newPrice()","51dfc14d":"tokensOfferedOf(address)","51e00935":"Arrays()","51e09631":"totalVestedTokens()","51e0e26b":"allowedContracts(address)","51e10aa6":"calculateToFund()","51e16546":"_payFee(uint128,address)","51e1d427":"boolMemoryArray()","51e1ee12":"ContractorProposalClosed(uint256,uint256,address,uint256)","51e22125":"addPresaleWhitelist(address,uint256)","51e4eb07":"setContributionLockPeriod(uint256)","51e51b55":"startPreSalePhase()","51e55767":"getWeiPerContributor(address)","51e699a8":"setMainSaleDates(uint256)","51e6edee":"RETZO()","51e7f12e":"_doDestroyTokens(address,uint256)","51e82eec":"totalSetCredit()","51e94406":"weiRaisedPreSale()","51e946d5":"freezeAddress(address)","51ea468b":"getSupportersAddress()","51eace10":"unfreezeStartTime()","51eb5e93":"overdraftPeriodLength()","51ebe2f1":"bursarAddress()","51ec4285":"unvote(uint256)","51ec4525":"first_player()","51ec4fc7":"limitAddress(address)","51ec8433":"STTadmin2()","51ecfd16":"getCatPrice(uint256)","51ed17a4":"reservedTokensList(address)","51ed8288":"buyNFT(uint256)","51ed96b9":"enableContribPeriod()","51edbdbb":"setForeignBridgeErcToErcImplementation(address)","51edffed":"identifierIsOriginal(uint256)","51ee387d":"dividendsAvailable(address)","51ee43e5":"lottery(int8)","51eec810":"setCapitalization(uint256)","51eecc23":"setupBounty(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","51f1333e":"relievePool(uint256)","51f1fa97":"POHStartTime()","51f2f1d1":"timeTransferbleUntil()","51f364d5":"currentCostToPress()","51f3a7bd":"CoinFlip()","51f3b4bd":"collectFees(uint256,address)","51f468c0":"setClaimPrice(uint256)","51f4ec50":"setWriterId(bytes32,bytes32)","51f514d3":"computePayeeBalance(address,address,uint256)","51f550be":"IcoSupply()","51f59db2":"test_claimShares_emptyFeePool_notTranscoder()","51f68d80":"calculateLRCUnlockAmount(uint256,uint256)","51f6d8c6":"setBalances(address[],address,uint256[])","51f6f870":"createMicroModule(uint256)","51f80746":"DXBToken()","51f91066":"tag()","51f93215":"bond(bytes32,uint256)","51f96d33":"verifySignature(address,address,address,uint8,bytes32,bytes32)","51f9ff35":"lastDividendIncreaseDate()","51fa5810":"getEnginesIds()","51fa7efd":"returnAmountToMainAccount(uint256)","51fab7ff":"transferRemaining()","51fae45d":"astroIDPool()","51fafb72":"setSubscribe()","51fafd95":"cashierAddr()","51fb012d":"whitelistEnabled()","51fb3043":"tokensForPresale2()","51fb4001":"rateIcoMainSale()","51fba575":"NRB_Users()","51fbd91e":"donationsReceiver_()","51fbfe9d":"migrationCountComplete()","51fc6f59":"TokenManagerEntity()","51fd2c69":"quantityHeldInCustodyOfExchange(address)","51fdaf92":"checkExpiredfunds()","51ff1a06":"PaparazzoToken()","51ff4847":"signature()","51ffcab3":"bid(uint32)","51ffd9e7":"getRatePerTimeUnits(uint256,uint256)","52006050":"setBurnBounds(uint256,uint256)","5200d643":"OPENING_TIME()","52013484":"CalcWinnersAndReward(uint256[],uint256)","52019dc3":"payTokens()","5201effb":"setCompletionTime(uint256)","520282d0":"getBcouponAllocationFactor()","5202b615":"numberOfClosedGames()","52030899":"preSaleBlockNumber()","5204cfe1":"OpenRedEnvelope(string)","520543ab":"endStage2()","52058d8a":"tokenSupplyCap()","5205b80f":"getLeftToken()","52063985":"unlockAddr()","5206fea3":"_transfer(string,string,uint256)","5207c391":"setWhitelistedBatch(address[],uint256)","5208a157":"getCardsFromHash(uint256,uint256,uint256)","5208ce36":"STQPreICOTestHelper(address,address)","52091047":"changeVotingRules(address,uint256,uint256)","520929b6":"AlgeriaToken()","520aea97":"setNote(uint256,bytes32,bytes20,string)","520b1b65":"testGetAllCases()","520ba154":"changeAcct2(address)","520bbba3":"generateRequestAttestationSchemaHash(address,address,address,bytes32,uint256[],bytes32)","520bf4d8":"SmallInts()","520c37b7":"setOCGFee(address)","520c3db7":"relayRelease(bytes16,address,address,uint256,uint16,uint128,uint8,bytes32,bytes32)","520c5828":"whitelisting()","520c7c8c":"bountiesAllocation()","520c7d6f":"PAYOUT_ATTEMPT_INTERVAL()","520ce36a":"Permian()","520ce39e":"DamnRocks()","520e12d7":"getCertAddressByID(string)","520e7b0e":"offer_energy(uint32,uint32,uint64,uint64)","520e8143":"returnTokenToWallet()","520eb620":"getTemplateByProposal(address,uint8)","520ee757":"NewSandwichTicket(string,address,string,string)","520fa2c1":"BetleyToken()","520fd799":"Nplay()","52108d4c":"setCCH_edit_30(string)","5210eb56":"targetAddress()","5211ac2e":"withdrawWei()","5211e91e":"CSTToken()","5211f843":"bbNetworkGrowthWallet()","52122abf":"JackpotHits()","52125b86":"eventcount()","5212e6ea":"firstExtendedBonusSalesEnds()","5213cca8":"AdvisorPoolAddress()","52146744":"AteamBets(uint256)","52159bcf":"CreateCityData(address,uint256,uint256)","5215ad0b":"batchTransfer(address,address[],uint256)","5215cb88":"onPresaleComplete()","5216509a":"numCandidates()","5216aeec":"totalInvested()","5217b774":"redeem_withdraw(address,address,uint256)","5217cdff":"greyToken()","52180208":"take(address,uint256)","52185f0e":"isWithinAllocation(address,uint256)","5218bfbb":"getOffer(bytes32,address)","5218c37d":"bulkRejectTransfers(uint256[],uint256[])","5218f3b3":"CoinStocker()","52194acf":"addBank(address,address,uint256)","52196812":"getLoanCount()","5219823a":"hashMessage(bytes)","52199094":"setBurningPercentage(uint256)","5219a72a":"mcgregortoken()","5219ffb8":"withdraw_tokens_for(address)","521af962":"DataBrokerDaoToken(address)","521b20ec":"highestBidAddress()","521b601a":"setData_26(string)","521b7499":"setStageVolumeBonuses(uint256,uint256[],uint8[])","521be69c":"applyTokens(address,uint256)","521c82be":"getCCH_edit_17()","521cd656":"playersAmounts(address)","521ceba7":"pusherTracker_()","521d56c6":"regeneration()","521d80f8":"fundsTransfered()","521e5770":"fechCurrentSnapshotBlockIndex()","521eb273":"wallet()","521ec3af":"MGLTToken()","521ee1ae":"purchaseFor(address,address)","521f4195":"isOwn(address,uint64)","521fba45":"setTokenInfo(string,address,address)","521fba71":"getRandom256()","521fbd3a":"deploytime()","521fd5be":"getSingleBet(uint32,uint32)","52200a13":"getNumHolders(uint256)","522103fa":"changeUnicorn(uint256,address)","5222cd8a":"Deal(bool,uint8)","5223478a":"setIsPoop(bool)","52238fdd":"calculateFees(uint256)","522471fc":"setTotalWithdraw(uint256,address,uint256,address,bytes,bytes)","5224dfbe":"mainTokensPerDollar()","52251884":"setForwardPurchaseFeesTo(address)","52253542":"playSingleDiceBet(uint256,uint256)","5225528e":"getBadAddresses()","522567c8":"transferedTokenOf(address)","52256d44":"MuratCoin()","522577e9":"totalIncome()","522637e7":"CMCLToken(uint256,string,string,address)","52279295":"interestRatePerCycle()","52288195":"Sell(uint256)","5229c56f":"getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256)","522a6cf3":"computeMilkSellPrice()","522afaec":"increase(address,uint256)","522bb704":"run(address)","522c8401":"bidOnSiring(uint256,uint256,uint256)","522dba5b":"GoldTokenMinter()","522dc0b1":"walletsFromUser()","522dd549":"advisor3Sum()","522de7d3":"verifySubmissionIndex(uint256,uint256,uint256)","522e1177":"complete()","522e2d3c":"BiathlonToken(address,address,string,string,uint256,address)","522e35fb":"changeIssueManager(address)","522e4c8a":"addStaff(address)","522f6815":"withdrawEther(address,uint256)","522f9585":"setNewWallet2(address)","52306f4a":"isCBE(address)","52314508":"registerOutcome(string,uint256)","5232d457":"PayoutEvent(uint256,address,uint256)","52337ab0":"interact()","52346412":"transfers(address[],uint256[])","52353e5b":"assetsOnDeposit()","52357779":"currentRId_()","523615aa":"AddApprovedAddress(address,address)","52374af1":"bitPremiumToken()","52375093":"m_lastDay()","5237d235":"getRightToken()","5237e325":"getAdIdByCat(uint256,uint256)","52380eba":"entitled()","52380f65":"MoneyAddedForRefund(address,uint256,uint256)","52388c1b":"AndreisToken()","523898f4":"cooperativeClose(address,uint8,uint256,bytes,bytes)","523934bb":"registerExport(bytes8,bytes8,uint256)","52393d45":"SGDT()","523a0b0d":"privateMaxEtherCap()","523a3f08":"withdrawReward(uint256)","523ad959":"bullAmount()","523aee69":"changeTokenContract(address)","523afb0d":"bet(bool)","523b6ae3":"MycoinToken(address,address)","523c02f5":"getRateForExternal(string)","523ccfa8":"isKnownCall(address)","523d897e":"wsub(uint128,uint128)","523da442":"getCurrentBonusTier()","523deadb":"getOwner(address,address)","523e27d4":"currentInvestor()","523e57be":"mintForHolders(address[],uint256[])","523e9551":"increaseCap(uint256)","523f110e":"updateRegion(address[16],uint256,uint256,uint256[],bool,bool,uint8[128],bool,address)","523f52c6":"setTgeIssuer(address)","523f53a6":"IntigoTest()","523f891c":"totalEligibleVotes()","523fba7f":"tokenBalances(address)","5240346d":"TV()","52405f56":"getMilestoneInformation(uint256)","52411891":"add(uint256[2])","52415840":"testMe()","5241590d":"addToAddressBalancesInfo(address,uint256)","52416347":"ParameterSet(string,string)","5241b39d":"renewal()","52437187":"callLib(uint256)","5244128a":"_claimableTokens(address)","52441d7d":"getCurrentUserShareBonus()","52447ad2":"doMint(int256,uint256)","52447d92":"burn_from(address,address,uint256)","5244d9a8":"removeIdentifier(bytes32)","5244ed87":"joinToTrack(uint256)","524559a3":"periodPreICO()","5245849e":"allowedAmountToTransferToPool()","5246a8df":"verifySig(uint32,uint8,uint256,uint256,int256,bytes32,bytes32,uint256,address,bytes,address,address)","52476ceb":"shareTimeGap()","524773ce":"burnCount()","5247b9e9":"firstMintRound0For(address[],uint256[],bool[])","5248f2c8":"removeBankroll()","52494a14":"_isOwner()","5249be25":"tokenPriceUsd()","524a2ed9":"setBAUU(bytes32,address,uint256,uint256)","524a8131":"STARTING_ASSET_BASE()","524aa413":"ValidateWorldSnapshot(uint256)","524aae98":"getPromoLOTEarnt(uint256)","524b5cb9":"approveMintDelegate(address,int256)","524bd747":"getNbDemandes()","524d5ddb":"wagerPool5()","524d7daf":"verifyGame(uint256)","524d81d3":"numContracts()","524dcda3":"MINT_LOCK_DURATION_IN_WEEKS()","524e1149":"joinCreateGame()","524e2444":"setPI_edit_32(string)","524e4e61":"testDistribution()","524e65b9":"_getWinnerBetted(uint32,uint32)","524e915d":"player4Timestamp()","524eb29c":"setRequestBurnerContract(address)","524ee639":"setSpaceImpulse(address)","524f3889":"getPrice(string)","524fa7b9":"whitelistAdd(address)","52507790":"transferAfterDeadline()","52512599":"latpToken()","5251a343":"stopPurchaseTokens()","52529852":"W0kiT0ken()","5252cb2f":"generateUnsoldTokens(uint256)","525417f1":"getNextKeyTime()","52541b68":"takeAGuess(uint8)","525426fd":"increaseUSDRaised(uint256)","52545021":"AkshayToken(uint256,string,string)","52548946":"isSimple()","5254a38c":"onERC721Received(uint256,address,bytes)","5254b595":"TransferIndex()","5254b660":"canDeCompose(string)","5254c846":"getAction(uint8)","525550ea":"rescueAddress()","52556421":"getIssuer()","52556a46":"State(address[])","52558c2b":"CSPTToken()","5255a07b":"HeroTokenAuction(uint256)","5256a36e":"MAX_ICO_GOAL()","5256fcaf":"_giveRNG(uint256,uint256)","52573529":"setupPeg(address,address)","52578012":"createService(string)","5257c2b3":"soldTokenInPresale()","5257c508":"ico1Cap()","5257c825":"registerNameXIDFromDapp(address,bytes32,uint256,bool,uint8)","5257cd90":"randomNumbers(uint256)","5259347d":"default_helper()","52595c0d":"getOraFee()","5259fcb4":"centsRaised()","525a0ac8":"Claim(address,uint256,bool,string)","525a8cf0":"add_product(uint256,uint256,string,string,string,string,string)","525b25b1":"getDeploymentReward()","525b3fe3":"presaleLimit()","525c3966":"GMCB()","525d0537":"getWinnerFunds(uint256[])","525f8a5c":"setSaleStartTime(uint256)","525ffb7c":"ownersPayed()","52608d85":"rateEth()","5260de57":"numberOfTokensPerUser()","52613423":"OLOVE(uint256,string,string)","52617234":"changeSalePeriod(uint256,uint256)","5261ee83":"amountOfOwners()","5262c873":"calcGain()","52631ab4":"lastNonce()","52638d75":"create(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","5263ba87":"getLatestPatchTree(bytes32,uint32,uint32)","5263dbf3":"RooToken()","52642070":"DinarETHCrypto()","526441bb":"ExecutionFailure(uint256)","5264ff53":"test_forAgainst()","5265440c":"checkIsAttached(uint256)","5265565e":"_ecosysSupply()","5265a078":"getMemoryWordsLog2()","5265db80":"setPriceRatePhase1(uint256)","526606c9":"addFreezer(address)","52666403":"lockRewardToken(address)","5266cc7b":"init(address,uint256[],uint256,uint256,uint256,uint256,uint8,string,string,uint8,bool)","52675be3":"getElectionName(uint256)","5267bd0c":"allowedRefund()","5267e681":"Tokens_Per_Dollar_Numerator()","526825af":"updateFcontracts(uint256)","526938f8":"left35(uint256)","5269660c":"createInvestment(uint8[])","526a6b48":"transferTo(address,uint256,bytes,bytes)","526a99c8":"getJackpotLoseSide(address,address)","526aadc2":"mintBaseLockedTokens(address,uint256,uint256,uint256)","526b71f4":"InvestboxToken()","526b8462":"getPersiansOnTheBattlefield(address)","526b91d1":"transferSysAdmin(address)","526ba9fa":"TSB()","526bc7fa":"getGenCode()","526cb803":"getAllOfferingProposals(address)","526de5ea":"addChunk2ToWhiteList()","526e4d79":"requestRemainingTokens()","526e7f3a":"AWD()","526f652d":"propertyIdToOwner(uint256)","526ff1f0":"TLB()","52700ef0":"_changeClosingTime()","52704644":"transferFromInternalstaffdisbursementfund(address,uint256)","52709725":"owner2()","5270aa7d":"EtherGoToken()","5270d70d":"readBytes32s(bytes32[])","5271027b":"rentFlatDaily(uint256)","5271309f":"migrationInfoSetter()","52736814":"dutchAuctionToBuy()","52748cfe":"addDataResponseToOrder(address,address,address,string,bytes)","52753640":"registerXRateProvider(address)","52757292":"getEventSecond(uint256)","527596bf":"getDeployedChildContracts()","5276b91c":"BlackHToken()","52772264":"Contract(bytes32)","52774565":"getMyLockedFunds()","527749a4":"add_bounty(uint256,bytes32)","5277fda5":"bookWithEth(uint256,uint256,bytes,string,uint256[],bytes32)","52782648":"emitSkillAreasSet(address,uint256)","527942ac":"secondWeekPreICOBonusEstimate()","52798dae":"buyTicketByEarnings(uint256,uint256,string)","5279a5f8":"levelThreeTokenNum()","527aea0a":"getWeiBalance(address,address)","527ba1e1":"setIV_S(uint256)","527c08ec":"Max_CAP()","527d8f12":"ping(uint256,bool)","527f0900":"IncPrivateSupply(uint256)","527f4ff1":"setTransferAddressUser(address,address)","52802121":"depositEther(address)","528050a9":"salePreiodChanged(uint256)","5280b8ad":"getAmountBounus(uint256)","5280c3ee":"dealToken()","52810d5e":"UnitToken(uint256,string,string)","52812053":"outstandingQuarters()","5281947d":"cancelAdoptionOffer(bytes5)","5281bbe9":"contractExpirationTime()","5282f649":"risedUSD()","5283f339":"getAddress(address,string)","5283fd87":"giveReward(uint256[4],bool,uint32[4])","52848d8d":"kcck256strstr(string,string)","5284a4c7":"allocateReferalBonus(address)","5284b044":"Products()","5284e3d8":"RobotTradingIco(address)","5284e660":"_getEndOfLastMiningDay()","52855882":"confirmAddress(bytes16)","52860ea2":"ADDITIONAL_BONUS_DENOM()","528626fc":"updateNextStealTimeByOperator(uint32)","52879334":"requireNotZero(address)","52879ba6":"roleCheck(string,address,address)","5287ce12":"getDepositInfo(address)","52883fc6":"addTokenBalance(address,address,uint256)","52892478":"disburseAuthorizedPayment(uint256)","52892baf":"localConst()","52894449":"lastBlock_f17Hash_uint256()","528976de":"issueRefunds(address[])","528a683c":"keyExists(string,string)","528b5176":"zgetOtherContract()","528b8ed8":"MaxBusiness()","528ce7de":"withdrawByRndNo(uint256)","528d4156":"authorizedCreateTokens(address,uint256)","528d8797":"ModiTokenERC20(uint256,string,string)","528d9479":"FeeUpdated(uint256,uint256)","528eb417":"Demome()","528ebdd5":"noSales()","528eedcb":"sendSafe(address,address,uint256)","528ef5a1":"UNINAcoin()","528fa135":"changeStartTime(uint64)","528fd7b0":"manualPayExpiredDuel()","52909fc2":"dynamicExchangeChecks(bytes,uint256)","5290d773":"amountBurned()","52911bd8":"doesOwnEthHandle(bytes32,address)","52916687":"setAuditRegistrar(uint256,address)","52929a0c":"disable_throwing()","5292af1f":"sendBalance(address)","5292c1a9":"testThrowsRestartEnforceRevisions()","5292c8f1":"validContribution(address,address,uint256)","5293a436":"EscapeHatchCallerChanged(address)","5293f22f":"EOSRegistration(string)","5294157f":"sendWithAllOurGasExceptExt(address,uint256,uint256)","5294188b":"randomizerLottery(bytes32,address)","5294409f":"Mineable()","5294924d":"getMyLastFreeLotteryTimestamp()","5294bb2b":"unpayPooling()","5294d0e8":"tokensUnlockable(address,bytes32)","52954e5a":"makerTransferAsset(address,uint256)","52959d16":"ambiC()","5296085e":"callServer(address,uint256)","529865c9":"preBuy2()","5299ccc6":"isSubjectApproved()","529a7d6c":"BurnProposalAdded(uint256,address,uint256)","529ae0bf":"maxEthPerAddress()","529af369":"createAndSellAllAmountPayEth(address,address,address,address,uint256)","529b8e60":"ergebnis()","529d15cc":"sequence()","529d4800":"getLockedWalletGroup(address)","529db099":"viewAllControls(bool)","529dbdb5":"getMs(uint256)","529e65e1":"removeShopModerator(address)","529e6713":"setCustodyFactory(address)","529f0fb8":"setFee2(uint256)","52a00779":"bountyDelivered()","52a08c29":"jackpotPersent()","52a0b5ac":"registerBasket(address,address,string,string,address[],uint256[])","52a0cf38":"p2pUnlocker(address)","52a16bb0":"amountSold()","52a2695c":"isReachedGoal()","52a2720c":"extraTokensTransferred()","52a27baf":"read_user_daily_limit(address)","52a36938":"initDisabled()","52a554a1":"voteBoardProposal(uint256,address,bool)","52a5b002":"lastInterestCycle()","52a6f970":"ZHEY()","52a74b82":"getDebugNumber()","52a7cae5":"BitAlphaAirdrop(address[])","52a80129":"unlistQualifiedPartner(address)","52a82b65":"digest()","52a8aeab":"controller1()","52a8fe93":"kscBurnWhenUseInSidechain(address,uint256,string)","52a9039c":"allocations(address)","52a94adb":"TRMCrowdsale()","52a982d3":"distributeTokensRange(uint256,uint256)","52a9a35e":"retireAdmin(address)","52a9cd2d":"changeOwnerVault(address)","52aa2ae9":"enterPreSale()","52aadf3b":"generateLuckFactor(uint128)","52aaead8":"priceLastUpdated()","52ac3235":"amountOfQuotations()","52ac882c":"retirementManager()","52ad2aa8":"__getStore(uint256)","52ad4116":"getCrowdsaleStartAndEndTimes(address,bytes32)","52ad6468":"SHARE_FOUNDATION()","52ae68f6":"getRoundBonusPot(uint256)","52af1c04":"parseMessage(bytes)","52af719f":"initialize(uint256,address[],address)","52af89af":"getsum(uint256[])","52afbc33":"scheduleCall(address,bytes4,bytes32,uint256,uint8,uint256)","52b1e14a":"insertUser(address,string,uint256)","52b33d64":"clientmanagerShare()","52b4be89":"totalBuyCardNumber()","52b566e4":"CitiDynamicsCoin()","52b5e85c":"firstPhaseEndTime()","52b5ff39":"RBAC()","52b75219":"freezeToken(address,uint256,uint256)","52b7fddb":"createMechVRC(uint256,address)","52b860eb":"tokenBonusForFifth()","52baee20":"getAllHpbNodesByStageNum(uint256)","52bafbfa":"vestingBeneficiaryForIndex(address,uint256)","52bafde9":"playersSignedUp()","52bbde34":"BiddingRing(address,uint256)","52bca4c3":"phaseOneCap()","52bd6945":"sellReply(uint256,uint256,uint256)","52bd9914":"TimeEnd()","52bddee6":"uintCeil(uint256,uint256)","52bf74b3":"airDropCoin(uint256)","52c05ca5":"setWeiPerBlock(uint256)","52c0b9f7":"ICO_START3()","52c1c03a":"removeUnlockedAddress(address,address)","52c1d3d5":"ZenomeCrowdsale()","52c204d0":"ICOMeetupToken()","52c22a72":"cancelContract(address,address,uint256,string)","52c28fab":"add(address,address)","52c34e68":"getStandardRobot()","52c53cb7":"checkPoint(int256,uint8,int256,uint16)","52c5785b":"purchaseTokensPreSale(address)","52c5b4cc":"setAuthorizations(address,address[])","52c5d892":"withdrawOwnersFunds()","52c700ea":"crowdsaleStop()","52c743d2":"callDestination()","52c76b8e":"TokenGame(uint256)","52c76de9":"addDiscountPhase(string,uint8,uint256,uint256)","52c8df64":"getFund(uint256)","52c91d43":"getLinkedWETHAddress()","52c944b2":"removeFromTokenLocked(address[])","52c98e33":"checkClaim(address,uint256,uint256)","52c9b906":"founderTokenWithdrawnPhase1()","52cb2a7b":"calcTransfer(uint256)","52cb36cd":"_getUtTotal()","52cb7688":"suspendSale(bool)","52cbfe09":"summAirdrop()","52cc5fdc":"retrieveMyEth(string)","52cd972d":"PreSaleCloseTime()","52ceac34":"bytesToUint(bytes,int256,bytes)","52cf4078":"transfertWDiscount(address,uint256)","52cf46d4":"transferAllowed(address,uint256)","52cfd41f":"advisorFee()","52d005d6":"findNewExchangeContract()","52d08730":"DogeCoin()","52d0bf14":"setDataColla_AA_02(string,string)","52d214a7":"removeUnitMultipliers(address,uint256,uint256,uint256)","52d23633":"getNumDividends()","52d28a17":"muscFundDeposit()","52d2d83d":"setBoolValue(bytes32,bool)","52d35197":"JLL()","52d3592a":"VoteExecuted(uint256)","52d3642d":"sellToContract()","52d3a9dd":"rentAuctionContract()","52d472eb":"rewardPercentage()","52d4747f":"BurnTokensFrom(address,uint256)","52d48a95":"getXPub(address)","52d4e76c":"ControllerRetiredForever(address)","52d50408":"statusContribution()","52d5ad25":"currentRecords()","52d63b7e":"setNextSale(address)","52d6804d":"minimum()","52d714e8":"approveMintingManager(address)","52d7d861":"AddrChanged(bytes32,address)","52d850d1":"tstinx()","52d8bfc2":"recoverEther()","52dbb027":"newModelShipProduct()","52dc09a5":"test_4_assertGasUsage700Boards()","52dca247":"ttlInvestCount()","52dd336a":"_tokenAllocate(uint8)","52e021c2":"securityReg(address)","52e0d025":"maxUserPayment()","52e0d0fa":"BIPOOH_DAO_32_a()","52e11d12":"DanCoin()","52e1ea89":"setDonator(address)","52e2525f":"ownerSetFee(uint256)","52e2f9ea":"MerculetToken(uint256,uint8,string,string)","52e32a55":"bounty0xToken()","52e34245":"disputeTX(uint256)","52e3d369":"saleConversionRate()","52e40d96":"PPKToken()","52e43613":"approveToMint(uint256)","52e536ad":"icoLeftSupply()","52e578ad":"LOG_EmergencyAutoStop()","52e57d1f":"makeLogError(uint8,uint256,uint256)","52e60b90":"setTalentCardAddress(address)","52e686a0":"EnableReturnFunds()","52e68c46":"list_token_ask(address)","52e8f2c3":"deleteRecord(uint256,string,string,bytes32)","52e94beb":"setPrice(uint256,bool)","52e97326":"changeTotalSupply(uint256)","52ea5667":"getMPbyIndex(uint256)","52ea8a71":"setRandomApiKey(string)","52eae80b":"doProvideStateRoots(uint256,bytes32,bytes32[])","52eb2580":"Tethered(address,string,string,uint256,uint32,uint256,uint256,string)","52eb5751":"MedicoHealthContract()","52ec8a58":"mint_and_transfer(address,uint256)","52ece9be":"freezeAllowance(uint256)","52ecf7c4":"pickWinner(uint256,bool,bool,bool,bool,bool,bool)","52efd35f":"INCENT_FUND_VESTING()","52efea6e":"clear()","52effe11":"transferOwnershipTo(address)","52f17ce9":"pomda()","52f18042":"addAdditionalBonusMember(address)","52f1e07b":"ethRefundAmount(uint256)","52f1f48c":"setInv3(address)","52f29a25":"nextPunkIndexToAssign()","52f37c40":"isHodler(address)","52f445ca":"setAssociatedContract(address)","52f46769":"InitializedTier(uint256,uint256,uint256,uint256,uint256)","52f50db7":"initiate(uint256,bytes20,address,address,uint256)","52f59e0e":"AICH()","52f62195":"picops_enabled()","52f662bb":"sendTokensToInvestors(address)","52f6747a":"rules()","52f6ca76":"deadDragons()","52f6ee58":"exponent()","52f775c8":"ViewSecretBet(address)","52f7c988":"setFee(uint256,uint256)","52f804a8":"burnPollStake(address,bytes32)","52f84b1b":"BlangsakToken()","52f8a766":"TimeStampSubstructOneDay()","52f9058b":"getFreeRickAndMorty()","52f91acf":"triggerDispute()","52f97117":"createContract(bool,string)","52fa1ac2":"createUnicornForCandy()","52fa2650":"withdrawPercents(uint64)","52fa3712":"makeBet(address,uint256,bytes32)","52fb0561":"setWhitelistedTransferer(address,bool)","52fba25c":"attack(address,uint256)","52fbeb57":"transferToContractWithCustomFallback(address,uint256,bytes,string)","52fc01f9":"func_1(uint256,uint256)","52fd2c15":"ServiceStation()","52fdcc65":"GAME_SUPPLY()","52fdeef5":"_addToFundHWC(uint256)","52fe8163":"randomDS_sessionPubKeysHash()","52fea23c":"teamAllocator()","52fedceb":"getMarketComissionRatio()","52fedefa":"decrementBalance(address,address,uint256)","52ffeb30":"highestBidTime()","52ffff99":"addAllowContractList(address)","5300a306":"changeTransactionFee(uint256)","5301fa52":"setPromoCode(address)","5302470a":"submitPlaintext(uint32,uint32,uint256,uint256)","530266c7":"getSellOrderInfo(address,address)","5302a136":"fourthPriceTime()","53030d91":"investmentAddress()","5303a5d7":"RESEARCH_DEVELOPMENT()","53043490":"ownerTransferFrom(address,address,uint256)","53047154":"createPromoMovie(address,string,uint256)","53055262":"awardMarble(uint256,address)","53055481":"totalDeposited(address)","53056351":"DIGIPLACEDS()","53067968":"GetSellingTokenContractAddress()","53069df6":"getRepaidAmount()","5306a5af":"LogRollbackTransfer(address,address,uint256)","530795fb":"initNormal()","5308db4b":"finalizeBundleIPFS(bytes32,string,bytes32)","5309ce38":"PrintLimiter(address,address,address,uint256)","530abf0f":"distributeTokensToContributor(uint256,uint256)","530b1e1a":"recording(address,uint256)","530c435f":"whaleWantMyEther()","530c4ca6":"setGames(address)","530c6868":"getContributorETH(address)","530d26b0":"MattewWon(string,address,uint256,uint256)","530d44f4":"normalRate()","530dfad3":"addItemToUserDebt(address,bytes32)","530e3543":"addMemberToGroup(address,uint256)","530e784f":"setPriceOracle(address)","53105fbc":"tokenConversionFactor()","5310f0f4":"priceInUsd()","531163c1":"TOKEN_MAIN_CAP()","53127b88":"encrypt(uint32[26],uint32[4])","5312918b":"VestingEndedByOwner(address,uint256,uint256)","5312aa24":"Bigchaintoken()","5312ab19":"HoviiExchange()","5312b4bb":"pyrBalanceOf(address)","53135ca0":"presaleActive()","5313d890":"_markCredit(address,uint256)","53147d4f":"TokenCrowdsale(uint256,uint256,address,uint256,address,address)","531571a9":"connectTokens(address,address)","5315810e":"isSponsor(uint32,int256,uint32)","53176195":"witnesses()","53179413":"transfersBlocked()","5317e444":"removeUserPermission(address,bytes4)","5319418a":"transferLockedBalance(address)","5319ae10":"generateInstance(address[2],bytes,bytes32[2],uint256[3],bytes32[3],bytes,bytes)","531a7f29":"dateProductCompleted()","531b6d98":"LogHodlSetStake(address,address,uint256)","531b97d7":"oneCentOfWei()","531c1b33":"getOperatingBudget()","531c267e":"getGameResolverData(uint256)","531c8628":"amount_referral_invest()","531c9a56":"iPayStar()","531ca478":"VantageCrowdsale(uint256,uint256,uint256,uint256,uint256,address)","531ce262":"bankWithdraw(address,uint256)","531d1974":"testThrowRetractLatestRevisionEnforceRevisions()","531e1ee0":"EarlyPurchaseInvalidated(uint256)","531e4827":"poolTimeLastMinted()","531ebce5":"getReceiverAddress()","531ef079":"setBvToBpFee(uint256)","531efbee":"_score(bytes32)","531f4c40":"accept(bytes32,bytes32)","531ff93b":"setMrkContract(address)","53214e5a":"kilo()","53216223":"TravelCoin()","5321fe04":"subFromBalance(address,address,uint256)","5322f0c5":"getChannelOwner(bytes)","5322f9d1":"switchSale()","532399d9":"setTransContractLocked(bool)","5323c6cf":"calcCostsBuying(bytes,uint256,uint256[],uint8,uint256)","5323df9e":"getShipDetails(uint32)","53240172":"midiv(uint64,uint64)","53251389":"addBridgeNativeFeeReceivers(uint256)","5325dc16":"test_validShouldBe3()","53269475":"loveToken()","5326ba37":"setSaleAuctionERC20Address(address,address)","53270910":"deedOfOwnerByIndex(address,uint256)","5327f96e":"OwnerTransfer(address,address)","53286957":"CuboToken(uint256)","53290b3a":"setStateLoading()","53290b44":"getBalanceOf(address,address)","53290d1c":"founderGrant(address,uint256,uint256,uint256,uint8)","53295e44":"OtcgateToken(uint256,uint8,string,string,address)","53297b71":"completeReleaseAuction(uint256)","5329c681":"checkTimeout(uint256)","532af7d2":"calculateResult(uint256,uint256)","532b581c":"round2()","532b5f86":"createBytes32(bytes32,bytes32)","532c3dc5":"nAuditors()","532da8f9":"getDelayDays(uint256)","532e4849":"setTokenUriPrefix(string)","532e7e6a":"calcEarningsSelling(bytes,uint256,uint256[],uint8,uint256)","532e87e4":"setTimeForCrowdsalePeriods()","532eb619":"_sellTokens(uint8,address)","532f1041":"setFormat(bool)","532f1179":"refundsEnabled()","532fb092":"isApproveConfirm(uint256)","532ff308":"setBonusRates(uint256[],uint256[])","532ff568":"Tutancoin()","533019cb":"kyberReserve()","5330a4c6":"buyMicroKeys(string)","5330bc61":"disallowTransfer(address,bool)","533178e5":"get_rate()","53322527":"EthlanceViews(address)","5332510b":"EthernautsLogic()","533265e6":"Database()","53329856":"secondBuyPrice()","5333c507":"allowTransferFor(address,bool)","5333ee4d":"buyEgg(uint256,uint256)","533425a5":"icoPeriod()","5334398f":"addRecordwithReward(bytes32,string,string,address)","53344481":"isInTier1(address)","5334c231":"currentSwapRate()","533574ca":"getLastDividends(uint256)","53358fc4":"castVote(address)","5336cd16":"_getEndIndexKey(uint256)","5337421a":"TrumpBingo()","5337448e":"payWinners()","53376d1f":"revokeAuthentication(address)","5337fa10":"awardPoint(int256,bytes32)","5338b3e4":"miningTokenLeftInCurrent()","533945df":"editMemeTemplate(uint256,string,string,string,string)","53397be3":"lastConsolationPrize(uint256)","53398119":"emergency(bool)","533a645c":"minTx()","533ae8e5":"inTipperQueue(uint256,address)","533b180e":"LAcoin()","533c023b":"getGroupRight(string,string)","533d4270":"ClipperCoin(uint256,uint8,string,string)","533da8df":"getAreaOwner(string)","533de9e5":"addSmartContractByAddress(address)","533e00ec":"approveAndDo(address,uint256,address,bytes32,string)","533f6730":"clearInventory(uint256)","53400e7f":"debugNow()","534104df":"UnilotTailEther(uint256,address)","5341903b":"upgradeMe(address)","5341d618":"setDataColla_AB_02(string,string)","5342da41":"testBeyond()","5343e6a4":"rateFinalStage1()","5343f1a0":"cancelOrderWithMerchant(string,address)","534439a3":"mintingDec()","53448316":"MIN_SALE_AMOUNT()","53449d26":"TourPool()","534514ee":"adminCharge_p3()","53458f5e":"defaultTreesOwner()","5345c415":"LogOwnerAdded(address)","534607fb":"info_OwnerOfContract()","53462d6b":"getReleaseTime()","53462fd8":"NCPTokenDeposit()","5346dcc5":"calculateTokensEnabledforAirdrop(address[],uint256)","5347d58c":"Paradime01()","534844a2":"withdrawAmount()","534878fb":"reply(address,address,bytes32,bytes32)","53488f0a":"activateAuction(uint256)","5348ac95":"makeTokensTransferable()","53490c67":"earlySuccessBlock()","53490fbb":"EPR()","53497794":"RepublicKey(address[])","534992c8":"showTokenBalance(address)","5349a335":"setThirdAdmin(address)","5349cdb6":"Testcoin()","5349efdc":"generatetoken(uint256)","534a2f7c":"WTechCoin()","534b0391":"getVerifiedInfo(address,address,string)","534c2609":"checkBtcRequestSignature(bytes,bytes,uint256,bytes)","534d5acb":"initialBSTSupply()","534d5ce3":"RobaToken()","534ddf19":"reclaimContributionDefault(address)","534e05c1":"_goldFreeze(uint256)","534e2645":"getLucy()","534e3f81":"finishPVP()","534eb1d4":"offerBonus(uint256)","534f6a2d":"LogGrantClaimed(bytes32,uint256)","53501052":"extraTokensPercent()","53511819":"triggerAssertError()","53515226":"getEtherProceedsAccount()","5351ad81":"FrellyToken()","5352aadb":"allowedBetAmount()","5352b889":"isNewRound()","53537303":"bonusRatePeriodOne()","5353a2d8":"changeName(string)","5353e168":"rlc_team()","53547d3f":"mintBooty()","53554015":"newZeusPriceTicker(string)","53556559":"exchange(uint256)","5355ee2f":"CryptoSneakersCoin()","535779ef":"removeFromAddresses(address)","5357b989":"calculateFee(uint256,uint256,uint256)","53584939":"bytesToBytes32(bytes,uint256)","5358677c":"BACKUP_FOUR()","5358c119":"getFaucetByCreator()","535999aa":"getarg_3_input()","535a920c":"setLANDRegistry(address)","535b27dd":"BitImageTokenSale()","535b4e58":"adminResetLottery()","535bf003":"appVersionList(bytes32)","535c69b6":"setEthAuction(address)","535d1ab3":"claimWork(uint256,uint256,uint256)","535d3f22":"RankingBallGoldToken(address)","535d4156":"killWithBenefits()","535d9289":"RDPTicks()","535dc2b0":"_b1(string,uint256,string)","535e401c":"check(bytes32,bytes32,bytes)","535f23ad":"mainSaleStartDate()","53601ec5":"_transferFees(uint256,uint256[],uint256)","5360cd82":"GetContractInfo(string)","53613273":"setTymTokensWallet(address)","53613769":"setDistributorAmount(address,bool,uint256)","53613dd3":"creatorFeePercent()","536253a9":"getRandomForContractClanwar(uint256,uint256)","53636220":"depositToExchange(uint256,uint256)","53645caa":"rewardDays()","5364e45d":"setStartBalance(uint256)","5364f721":"getArbInfo(uint256)","536529dd":"WarpSpeed()","5365939c":"unlockedTokensInternal(address)","5365ccf7":"CCH_MENA_1()","53663c0b":"distributeAIC(address[],uint256)","53667f10":"getContracts(address,address[],uint256)","5366d0fd":"operationalExpensesWallet()","5366f338":"publishFor(bytes12,address)","53677154":"placeAnswer(uint256,string)","5368cc55":"getBack2()","536942b6":"finalizeAndRestart()","536a3ddc":"currentGameId()","536aace8":"setUserSignupTokens(uint256)","536bd93a":"SetAccessoryDataContact(address)","536c1ddd":"SampleERC23Token(address,uint256)","536c26e5":"MiniMeIrrevocableVestedToken(address,address,uint256,string,uint8,string,bool)","536c2e4a":"sendEmail(address,string,bytes32,string)","536c8c15":"jurySize()","536c9a7f":"dividendFundAddress()","536cb736":"setPreUri2(string)","536cfceb":"todaysSupply()","536d888b":"isServiceOwner(bytes32,address)","536d97c2":"setDividendsPercent(uint256,uint256)","536db4a8":"getParametersHash(uint256[14])","536dd8f9":"maxTokensToSold()","536e08bc":"getTokensBalance(uint256)","536e2800":"buyForWorkOrder(uint256,address,address,address,string,address,address)","536e3f6a":"getOracleData(uint256)","537038c3":"BOUNTY_PERCENT()","5370a049":"thebank()","5370e3d4":"Ozreal()","53718569":"generateRandomStats(string)","537187a3":"transferWithMsg(address,uint256,string)","53719b6e":"lockedTokens(address,uint256)","5371e490":"Presalezillion()","53729273":"getLLV_edit_9()","5372a9ce":"addService(address)","5372c1db":"PeriodicTokenVesting(address,uint256,uint256,uint256,uint256,bool)","53734dc5":"refundContribution()","53738a4c":"distributeOwnedTokensFromOtherContracts(address,address,uint256)","53749313":"PortToken()","5374eec3":"hijack(uint256,uint256)","5375a828":"createLibraryWithFounder(string,string,address)","5375f182":"IronHandsCoin()","5376a03d":"getProfitOrLoss(address,address,uint256,uint256)","53770f9a":"isStateless()","53775572":"_claimOreAndClear(uint32,uint8)","53779c11":"claimDividendByIndex(address,uint256)","5377f047":"allowedMultivests(address)","53790097":"Exhibition()","53799e7d":"frozenType(string)","537a082c":"withdrawSaleRequest(uint256)","537a924c":"Pay()","537afe94":"eastadscreditsx()","537b9c93":"NotFomo3D()","537bf9a3":"updatePermissionName(address,bytes32)","537ca660":"_setPetValue13(uint256)","537dbb80":"claimUserToken(address)","537df3b6":"removeFromBlacklist(address)","537f5312":"updateSymbol(string)","537f74fc":"_transferFrom_byProxy(address,address,address,uint256,bytes)","537fcd6b":"_computeAndSetBaseParameters16_18_22(uint256)","537fdf59":"user_redeem()","538082af":"UKG_FUND()","53811553":"getCertificate(bytes32,bytes32,bytes32)","53813af8":"getmy(address)","5381464c":"PRE_SALE_START_TIME()","53819e85":"getTotalComission(address)","53822cda":"createShortId(bytes32)","53844552":"addPayees(address[],uint256[])","5384527a":"tokenResend()","5384602d":"craetePartnerBytes(address,address)","5384734e":"isConfirmedStackholder(uint256)","53850db3":"getParticipantById(uint256)","538548c5":"recevedEthFromEvabot(address,uint256)","538564de":"assegna_diritto_di_voto(address)","5385726e":"maxTIPSupply()","53865562":"CLOSING_TIME()","5386b7ad":"dtTestWorldSnapshot(uint256)","538739fa":"operatorManager(address[],uint8)","538741c5":"getAllowedContracts()","5387a233":"feeLottery()","538811cf":"hasAllocated()","5388842c":"mintTicket(address,string)","53892496":"finney2LemoRate()","538a289a":"getSandwichInfo(uint256)","538a3f0e":"initializeFactory(address)","538a849c":"newRound(uint256,uint256,uint256,uint256,uint256,bytes32,uint256)","538a8c21":"giveawayReserve()","538b9618":"createElectionVerify(bytes32,bytes32[])","538c91b2":"validCandidate(string)","538d1267":"Announcement()","538df6f2":"claimedPrepaidUnits()","538dfcac":"contributionRejected()","538e0759":"refill()","538e0ff4":"totUsers()","538e8ae0":"assertEq19(bytes19,bytes19,bytes32)","538eae06":"ZuperToken()","538f5997":"getBalanceSize()","538fb98c":"getCarProductCurrentPrice(uint32)","53900bdd":"incirculation()","5392279d":"CryptoWCRC(uint256,uint256,bool,address,address)","539407f6":"committeesNumber()","53941a74":"addInviteId(uint256)","5394772a":"MIN_BET_VALUE()","5394e49e":"getRandomPosition(uint8,uint8)","53954574":"withDrawBack()","5395dbb1":"createSchedule(address,uint256,uint256,uint256,uint256,uint256)","5397c83c":"distr0(address,uint256)","53994d51":"ThreeDJSToken(uint256)","53999040":"buyLandForCandy(uint256)","53999339":"prepareLiquidityReserve()","539af982":"changeStartDate(string)","539b9648":"icoSmartcontract()","539c0f14":"deposit2()","539e2bfb":"secondChainedCallback(uint256)","539f70d8":"setOperationState(uint8)","539ff41a":"ADVISORS_WALLET()","539ffb77":"cancelRedeem(uint256)","539fffc9":"WithdrawPrize()","53a01f68":"createWizzPanda(uint256[2],uint256,address)","53a023d1":"EUSBToken()","53a04b05":"play(uint8)","53a06609":"_incrementInventory(uint256,uint256)","53a1c51e":"getInitializeMarketValue()","53a3b71e":"tossIntoTheFire()","53a40850":"userHasPattern(address)","53a454e0":"SubtractAmount(uint256)","53a47bb7":"nominatedOwner()","53a4c8a3":"TriggminePresale()","53a4caee":"getMajorThreshold(address)","53a50f0f":"addDeal(uint256,uint256,string,string,uint256,bytes32)","53a5e2d9":"teamGrantsAmount()","53a5e68f":"CircusToken(address)","53a636dd":"updatePrice(uint256,uint256,string)","53a6e2c9":"Mantapjar()","53a73f6e":"setTotum(address)","53a8b307":"getObjective()","53a94aa6":"_computeNextSeedPrice(uint256,uint256)","53a9698a":"isProviderFor(uint256,address)","53a97873":"getPrice(bytes10)","53a9fc9c":"ELVToken()","53aa3f5e":"getUInt(bytes32,bytes32)","53aa7dcd":"setCallerFee(uint256)","53aaa63f":"collectBack2()","53aab098":"addPriceFeed(uint256,uint256,uint256,uint256,bytes)","53aab434":"buyIn()","53aaef7d":"weiToTokens(uint256)","53aaf7c7":"OperatorProductCommissionChanged(uint256)","53abf7f4":"parseTrade(bytes)","53ac36f4":"DropReward()","53acae4a":"RANGESTART_4()","53acb23f":"unlockPriceChange()","53adce21":"getGroup(address)","53ae8de6":"modify_Presale1StartDate(uint256)","53af5d10":"closingAddress()","53afda90":"initDiscounts(uint256[],uint256[])","53b0b620":"allocateBid1(address,bytes32)","53b15f31":"get_asset_details(bytes32)","53b1b49b":"Human()","53b239c7":"setPoWtfContract(address)","53b2dd41":"WGCToken()","53b382ea":"manuallyEnded()","53b5015c":"getClientSupply(address)","53b5306b":"getUnfreezingPrice(uint256)","53b54f5e":"transferWithoutDecimals(address,uint256)","53b5b427":"team4LockEndTime()","53b64b0b":"setNumDepositsSigned(bytes32,uint256)","53b6f766":"addTotalIndividualWeiAmount(address,uint256)","53b7a59b":"destinationWallet()","53b7b2e9":"cEthereumlotteryNet(bytes)","53b86342":"withdrawOwnersMoney()","53b8e278":"upgradedContract()","53b90b5b":"addWalletEmail(address,string)","53b93358":"_getPoS(address)","53ba11d0":"icoWalletAddress()","53babaf9":"processStellarReward()","53bad0b9":"boschcoin()","53bb2eb6":"buyOffer(uint256,uint256,address,bytes32)","53bc147e":"lastKickoffDateBuffer()","53bc1c12":"getJobState(uint256)","53bc1d9b":"ONTOPToken(uint256,string,string)","53bc373d":"SIT(address)","53bc7399":"play_stone()","53bc7d62":"setInvalidWithReturn()","53bd353b":"EarlyTokenSale(uint256,uint256,address,address)","53bd755a":"__setTokenPrice(uint256)","53bd8bdb":"isRequestExecutable(uint32)","53beb1f8":"checkHalfLife()","53bfd3d0":"getUserTearAward(address,uint256,uint256)","53c048ce":"TICToken()","53c06966":"startMining(address)","53c194af":"createIco(uint256,uint256,uint256,uint256,uint256,address)","53c1b31f":"MooToken(uint256,string,string)","53c24064":"EasyMineTokenWallet()","53c2828f":"rentalBalanceRemaining()","53c2e8ab":"FacebookCoin()","53c3419b":"bet(uint256,uint256,uint256,uint256,uint256,uint256)","53c37276":"frozenDaysForPreICO()","53c3a57d":"recalcFlags()","53c3cc1f":"ResumeEmergencyStop()","53c3fe8a":"hasICOClosed()","53c4aeac":"crowsaleSlots(uint256)","53c549da":"LemonContract()","53c64fbc":"peekQueue()","53c66d90":"YEEToken()","53c7186c":"test_token_creation()","53c7801c":"second_round_start()","53c8388e":"updateMetadata(uint256,string)","53c84526":"setSmartAffiliateContract(address)","53c86cfc":"UvoCash()","53c9843f":"preIcoCashedOut()","53ca1aa8":"GOLD_TO_COLLECT_1SWORD()","53cae7b8":"distributeAirdropMultiPresale(address[],uint256[],uint256[])","53caf582":"testThrowSetNotUpdatableNotOwner()","53cb26c6":"preciseDecimalToDecimal(uint256)","53cb430f":"setoldtoken(address)","53cc2fae":"unFreezeAccount(address)","53cc3e7a":"sysPrice()","53ce0a71":"USACoin()","53ce7de9":"participantIndex()","53ce910e":"getSafeKey(uint256)","53cea153":"claimableOwnerEth(uint256)","53ceee6c":"icoBuy()","53cf4d2b":"indexshow(address)","53cf51bc":"rewardSent()","53cfdda3":"setMonthlyPrice(uint256)","53d0f255":"STEP()","53d142a7":"setTokenInfo(uint16,string,address,uint64,uint256)","53d3e848":"abortICO()","53d3ed60":"isBotAt(address,uint64)","53d3eeee":"profitsRatePercent()","53d413c5":"removeKey(bytes32,uint256)","53d590bc":"softUndelete(bytes32)","53d69b07":"setPreSaleStartAndEndTime(uint256,uint256)","53d6fd59":"setWhitelist(address,bool)","53d70700":"setVotingParams(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","53d736ed":"CreateCard(uint256,string,string,string,string)","53d73718":"voting_info()","53d74fdf":"totalHolders()","53d797c9":"GetGoodsInfo(uint32)","53d7edbc":"_crowdsalePaused()","53d838b6":"getMatchAwayPlayers(uint256)","53d97e65":"setPrizes(uint32[])","53d99c2a":"tokenToEthRate()","53d9d910":"create(address[],uint256,uint256)","53da0c7e":"bonusesForAmountsCount()","53da4859":"ACT()","53dad947":"oraclizeContract()","53db1deb":"DredgrSwap()","53db5fdb":"getCreatorTAOSettingDeprecation(bytes32)","53db6b21":"AUMToken()","53dba812":"Horizon0x()","53dc4cf1":"Greedy()","53dd1902":"strcat(bytes,string,bytes,string)","53dd8881":"tweakDailyDividends(uint256,uint256)","53de63e3":"isMasterWallet(address)","53e0b78f":"LandClaimContractSet(address)","53e0c46d":"nuoyilian(uint256,string,uint8,string)","53e1509c":"addExchangePartnerTargetAddress(address)","53e1a169":"doPayment(address)","53e1ead9":"companyAddress()","53e215f4":"getNodeInfo(uint256)","53e3926c":"compareNums()","53e4d8ef":"admin_set_withdrawable(bool)","53e4e607":"get_parameters()","53e551ff":"createContractItem(string,bytes32,address,address)","53e68147":"emissionInternal(uint256)","53e68720":"sendToBeneficiary()","53e7168b":"setUInt(bytes32,bytes32,uint256)","53e7daf2":"NewStandardToken(uint256,string,uint8,string)","53e86a88":"contributorsTotal()","53e8c040":"Winn()","53e9574a":"FOUNDERS_TOKENS_PERCENT()","53e9dcae":"attributeType(uint256)","53ea04fe":"AgencyLock2()","53ebf6bd":"setContractLock(bool)","53ecbdd2":"getTankType(uint256)","53ed5143":"getAll()","53ed589b":"LogNewProvider(address,string,bytes32)","53ee9114":"PassDao()","53eeb430":"allPurchasedSprites(uint256)","53ef5e03":"amount5()","53ef6781":"_start()","53efb13f":"setContractDurationInDays(uint16)","53f072e3":"numApis()","53f11cb3":"asm_clean(uint256,uint256)","53f24e33":"isUpgradeInterface()","53f25ca6":"isNameEmpty()","53f3807c":"STATE_PLAYING()","53f4a519":"queryResource()","53f4b36f":"calcFin()","53f4db01":"totalWeiRaised()","53f63bb3":"setPreSaleFinishDate(uint256)","53f65cf7":"forceRecoverCollateral(bytes32,address)","53f6740d":"setKpopItemContractAddress(address,address)","53f6ef28":"EUFBToken()","53f6f01f":"ADVISOR_STAKE_TWO()","53f754e0":"tokensDue(uint256)","53f818d6":"checkBetValue()","53f81ef8":"getSubscriptionTo(bytes32)","53f8e415":"SetDonateStep(uint256)","53f92e49":"UnableToRejectPayment(address,bytes8,uint256)","53f95cc6":"THIRD_TIER_DISCOUNT()","53f9ca96":"CCC(uint256,string,string)","53f9ec67":"setIsInvalid(bool)","53faa9a9":"changeRecovery(address,address)","53fafd15":"makeTransfer(uint256)","53fb9233":"checkDocument(string)","53fc3923":"safeAdd40(uint40,uint40)","53fc79d1":"setTargetDiscountValue5(uint256)","53fd0670":"sellArtworks(uint32[])","53fe189c":"setAElfMultisig(address)","53fe7a59":"PURCHASER_MAX_TOKEN_CAP_DAY1()","53fefd7d":"changeMaxDeposit(uint256)","53ff7766":"_escrowTheAOPaymentEarning(bytes32,uint256,uint256,uint256)","53ffab1d":"disableconstruction()","53ffe1f9":"setRentalPricePerSecond(uint256)","5400a93e":"payoutMatch(uint256,uint8,bool)","54019949":"getShopOwnerCategorizedProducts(string,string)","540273bb":"changejp1(address)","54032862":"ZapCloud()","5403a0e5":"getTeamToken()","5404bbf7":"getEntropy()","54057aa6":"setPriceClaim(uint256)","5405e4f4":"SMILE()","54063f4e":"sendETHfromContract()","54070f83":"getTournamentAdmissionBlock()","54091a20":"removeFromTransactionDisallowedList(address)","540a5e4e":"cs()","540a9db3":"getVestingAccount(address)","540ae26f":"MassERC20Sender(address)","540b2255":"_invest(address,address)","540b34a0":"listMOC()","540c755f":"ethWithdraw()","540c97c8":"getAllRevisionIpfsHashes(bytes20)","540cafe0":"storeHeaderWithFee(bytes,int256,address)","540cc484":"getPreSaleTokensSold()","540cf75e":"getPendingPresaleTokens(address)","540d888e":"SendTaxFee(address,address,address,uint256)","540d915e":"serviceGroupChange(address,uint8)","540e2f5b":"customTokenDefrosting(address[])","540ea6db":"getuseraddress(uint256)","540f3d6d":"feeProcess()","540f5631":"isUnderwriter()","540fd4df":"addressFundFoundation()","54105974":"AdHiveToken(address,string,string,uint256,uint256)","54107401":"declareLove(string,string)","5410ac50":"raiseCap(uint256)","5411029d":"_validSignature(address,uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","54114dee":"Caps()","5412af17":"Watsondog()","541334f6":"isUnicornContract(address)","5413d6f4":"ImmlaToken(address)","54147ecb":"withdrawForTokens(address)","54149777":"getAirDropedToday()","54149975":"DeleteToken()","54151bc3":"createPostboyAccount(uint256,uint256,bytes16)","54153f91":"getArrIntField1()","5415b8f8":"setAssetFeesList(address[],uint256[],uint256[])","5415f3a7":"buyStudioStake(address,uint256)","5416707c":"getEthOfferAmount(uint256)","5416995e":"TGCToken()","54186bab":"SolarDaoToken()","5418796c":"pubKeyToEthereumAddress(bytes)","5418bea9":"getCountReadyPlayerByTrackId(uint256)","5418ecdd":"setTokenHash(uint256,uint256)","54192046":"setAuctionStart(address,address,uint256)","541a01ed":"presaleTokenVault()","541a3656":"optionOrderCancelled(bytes32)","541ac2b3":"locked_since()","541aea0f":"put(uint256,uint256)","541afaf6":"getWarriorDistributedRandom(uint256)","541b2173":"IKT(uint256,string,uint8,string)","541bb358":"setRarityTargetValue(uint8,uint256)","541c15eb":"changeLock(address,uint256,uint256)","541d920c":"commit(bytes,string)","541dc9ba":"redeemPreSale(address,address)","541e22ea":"sendRefBonuses()","541e34a7":"QuantumPay()","541ee050":"bonusEnd10()","541f631a":"transferInternal(address,uint256)","54203101":"CTWorld()","54204ad4":"triple()","54215767":"upgradeTradeProfileImplementation(address)","54217c21":"Q2(address)","542241d0":"fifthExtendedBonusSalesEnds()","5422cf34":"sellPop(uint256,uint256)","54238645":"closeICO()","5423a05d":"GoToken(address,address,address,address,uint256)","54244518":"coinIssuedRewardPool()","54260cb6":"getBuyLandInfo(address,uint256)","5427789c":"MINT_AMOUNT()","54279bdd":"createAuction(uint256,uint256,address)","5427e4e1":"APS(string,string,uint256)","5427e8fa":"getTicketIsPaid(uint256)","54280260":"balancesLocked()","54290065":"getAsksCount()","54292c53":"rewardAvailableCurrentDistribution()","5429a417":"getBasicBallotsPer30Days()","5429d4b5":"mitfwdToken()","542a3368":"randomly_select_index(uint256[])","542a90bd":"remove_quote(bytes32,bytes32)","542aa99f":"stopSetup()","542aee37":"getTotalTonsClaimed()","542b5111":"MANXERC20()","542b9a40":"ProjectOwner_DisableProject(int256)","542bdb4d":"testMathOverloaded()","542bee82":"addGlobalBlockValueBalance(uint256)","542c8f37":"isOnSell(uint256)","542cad3d":"setCopaCoreAddress(address)","542cae98":"checkGameOverByUser()","542ccddb":"claimRoundReward(uint16,address)","542ceaad":"countRequest()","542cfdf0":"extendItem(address,uint256)","542d397c":"tokensBlocked()","542d3e34":"NewImage(uint256,uint8,uint8,uint8,uint8,string,string,string)","542d8dc0":"Mag50()","542de573":"BITHALALToken()","542df7c7":"getGameConstants()","542e898e":"STC()","542fce21":"KergToken(uint256,string,uint8,string)","542fd556":"getMakerProjects(address)","54311422":"giveTokens(uint256)","54313b22":"tonextround()","5431dfb8":"stage3Sale()","5432202a":"isServiceAccount()","54353f2f":"example()","543577f3":"LandManagement(address)","543594b8":"verifySignature(uint8,bytes32,bytes32,address,bytes32)","5435a774":"Permissioned()","5435bac8":"itemsForSaleLimit(uint256,uint256)","5435dbd4":"CPF()","54361699":"registerContributorPool(address,uint256,int256)","54367179":"updateRealWorldPlayer(uint32,uint128,uint64,uint32,bool,bool)","5436c163":"createVillain(string,uint256,uint256,uint256)","5436e5a0":"getValueByHash(bytes32)","54370a8d":"QueryMyBonus(address)","5437988d":"setVerifier(address)","5437b39b":"hasUnprocessedDividends(address)","5437e401":"withdraw(address,bool)","5437f098":"changeStartBlock(uint256)","54385526":"setStatus(uint8,uint8,string)","5438a64e":"getContractSigners(bytes32)","5438c5d2":"hasListener()","54392a96":"simTotalObligation(bytes)","5439af13":"getIdeaDescription(uint256)","5439c6a1":"nonFungibleByIndex(uint256,uint128)","5439e185":"buyTreeTokens(address,uint256)","5439f5d2":"TimeToken(uint256,string,uint8,string)","543a3d62":"token_call()","543a86f6":"dblShaFlip(bytes)","543a9ce4":"setAStore(string,address)","543ad1df":"MIN_TIMEOUT()","543b4f6f":"endTimeTwo()","543ba50a":"FundsDeposited(address,uint256)","543e0a7b":"stringsEqual(string)","543e10b4":"contributeTo(address,uint256)","543e4dcd":"testFailUntrustedTransferFrom()","543e9954":"freeBalanceOf(address)","543e9c10":"containsAdmin(address)","543f8101":"activateOversightAddress(address)","54400c60":"right19(uint256)","544082e5":"authorShare()","54409599":"SHIVToken()","54413d29":"withdrawAllForAccount(address,address[])","544447bb":"unicornToken()","5445cbf3":"assetsCertified()","5445e38c":"_isCycleValid(uint256)","5446b604":"unlockMintDate2()","5446d669":"ShitToken()","544736e6":"isStarted()","544743d6":"getCharAt(uint256)","5447ad71":"newGame(bytes32)","5447b86f":"ipart(int256)","5447c05d":"updateTemplateReputation(address,uint8)","5447fab0":"serviceController()","5448c674":"IBCA()","544a026b":"protectCharacter(uint32,uint8)","544aa2cf":"LOG_BetLost(address,uint256,uint256)","544b1b24":"onlyHarvest(uint256)","544b9606":"ICO_BONUS2_SLGN_LESS()","544be427":"finalizeBurnUtility(address,uint256)","544c465c":"calcReward(uint256)","544cdbda":"send_to_owner(address,uint256,uint32)","544cfead":"reignBlocks()","544d6544":"transferPrivateSale(address,uint256)","544d8ca2":"registerLog(string,string,uint256)","544d9723":"itemAt(uint256)","544f113b":"startingAmount()","544f43e3":"getRatePlansOfVendor(uint256,uint256,uint256,bool)","544ffc9c":"proposalVotes(uint256)","5451436d":"EthLyte()","54517ddf":"transferFromByCrowdsale(address,address,uint256)","5451a1e1":"addressFounders()","5451cbcc":"ZEToken()","5451fb26":"increaseLoanOnBehalfOf(address,bytes32,uint256,uint256)","5452644d":"createNewDynamicPaymentAddress(uint256,address)","5452b7d4":"getReservedTokens(uint256)","545305fb":"finalizeCrowdsaleAndToken()","5453095b":"buyMNC(string)","545342a0":"ZaiZaiCoin()","5453f4e7":"createTokenUri(address,address,address,address,address,address,address,uint256)","545464ff":"ConsentFactory(string,address)","5454fb7c":"ico1Sold()","54557250":"getAgentIdByPositionBet(uint256)","545599ff":"END_DATE()","5455e1b8":"setAddressesThatCanList(bool,address[])","54567923":"addServiceReward(uint256)","54569a86":"Needit()","5456d8d2":"removeSpecialBonusConditions(address)","54573835":"withdrawEtherInternal(address,address,uint256)","54573cfc":"setRule(uint256,uint256,uint256,uint256)","545842ff":"redeemLevAndFeeToStakers(address[])","545921d9":"providerRegistry()","545a153a":"getId(uint256)","545a5896":"changeSolidStampContract(address)","545ae0f6":"TokenFundTransfer(uint256)","545b2f0d":"getUpgradeAmt(uint256)","545c50f0":"pointRootNode(int256,address)","545c5a02":"setStepTwoLockEndTime(uint256)","545c5d54":"deliveryService(uint256,uint256,uint256)","545d2e29":"invalidateAdvertiserRefund(uint256)","545d5988":"claimCheckPriceReward()","545d8b55":"minCapFail()","545e6362":"PRE_ICO_BONUS_TIME_1()","545e7c61":"deploy(address,address)","545f6837":"returnSenderBalance()","54604eec":"stopAssign()","54605549":"setCoinBalance(address,uint256,uint8,bool)","5460687c":"test_chain2_3()","5460ef10":"sendWithExtraGas(address,uint256,uint256)","54610cea":"setProvider(address,uint256,uint256)","54612e27":"freeze(bytes32,bytes32,uint256,bytes)","54616911":"burnICOTokens()","54619b69":"eAccessTOKEN()","546216f1":"winningScore()","54622cef":"multiMintPreIco(address[],uint256[])","5462870d":"multisigAddress()","5463a2e4":"reasonableDiffInBps(address)","546434e3":"TwoStageSale(bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256)","546455b5":"assert3(uint256)","54653352":"beView()","54657f0a":"setHiddenCurves(bytes32[])","54659685":"getTicketsCount(address)","54659d99":"SPINFund()","546639cf":"JacksToken(uint256)","546668bb":"conquesting()","54672768":"Instrument()","54674ebc":"HackableToken()","54675320":"EventProduct(uint32,string,uint32,uint32,uint256,uint256,uint256,uint256)","5467e0a7":"redemption()","5467f508":"indPresaleDeposit()","5468e4e1":"setGameStateFusion(bool)","5469a173":"getFifthRoundReleaseTime()","5469aabb":"_diviSplit(uint256,address,address,uint256)","546b270d":"getServer(uint256)","546b48b1":"makeSimpleBundle(uint256,address,bytes32,bytes32)","546c2b93":"paid(uint256,uint256,bytes32)","546d08fe":"dividendAddress()","546dc0ac":"collectAsset(address,uint256)","546dc71c":"approveWithdrawAddress(address,address,bool)","546dd883":"privateAmount()","546e1959":"changeOwnerStart(address)","546e428c":"modifySender(address,bool)","546ea281":"currentAction()","546efd98":"indiFundAndSocialVault()","547069bf":"crowdsaleWeiRaised()","5470b13b":"getWallet(uint256)","5470f6db":"setMaxSet(uint256)","547173da":"endPresaleDate()","54717ea9":"getValueBonusTokens(uint256,uint256)","54718917":"determineWinner(string)","5471d5d8":"VetLite(uint256,uint256)","5471dd4c":"FourthAddressBalance()","54722412":"OfferZone()","54734f7d":"setBoardAdd(address)","54738157":"OwnerCloseContract()","5473b4e9":"getTransactionConfirmCount(bytes32,uint256)","5473c701":"test_oneInvalidFalseEqLog()","54741525":"getTransactionCount(bool,bool)","54741f8d":"getMemBestPromouter()","5474d4d7":"_transferBag(address,address,uint256)","5474fbd3":"isDayThirtyChecked()","547505e3":"tokenAdministrator()","5475c22e":"bindOrderFunds(address,bool,int256)","5476bd72":"addToken(address,address)","5476ea9e":"auctionAddress()","5476f49d":"m_totalAppCount()","5477d33f":"price_constant1()","5477e571":"handleMultipleItems(address,uint256,uint256,uint256,uint256,uint256)","54786b4e":"getDSTSymbol()","5478786c":"IDLE()","5478dbb7":"play(uint256[3])","5478f06f":"updateMDTRewardAmount(uint256)","5478f468":"getHistoryLength()","54790b7d":"isOvertime()","547916ea":"finishRound()","54791f36":"_transferWithReference(address,uint256,string,address)","5479d940":"isUpgradable()","547a5168":"TomocoinTokens()","547a5eee":"setWhitelistSetter(address)","547ac053":"saveInitialParametersToStorage(uint256,uint256,uint256,address)","547c165f":"getApprenticeChestAvailable()","547c1b6a":"SALE_START_DATE()","547c4137":"setLLV_edit_32(string)","547c8011":"DemocraticPalette()","547cae29":"uintToString(uint16)","547cbaa5":"addFrozen(address,uint256,uint256,bool)","547dd162":"_newAgon(uint64,uint64,address,uint256)","547dfaf5":"WthdrawAllToCreator()","547e3f06":"changeReceiver(address)","547e6a5b":"simulate(uint256,uint8,uint8,uint8,uint8,uint8,uint8[176])","547eeac1":"acceptTransfer()","547fd950":"getTotalFrozenBalance()","54812d17":"initialize(address,address,uint256,uint256,address,uint256)","54817301":"setFreezeEnd(uint256)","5481c1ff":"referBenefitRate()","5481f43e":"getProviderTitle(address)","54823e66":"getStateHash(uint256)","54828eb7":"placeBetEven(uint256)","54829cad":"dubi()","5482d73c":"getDocument(bytes16,uint256)","5482d88e":"telcoin()","54830df7":"getApprovedTokenCount()","54840c6e":"tradable()","5484b5bf":"thelocation()","5485868a":"roundFactory()","5485bb82":"w_Team()","5486dfb3":"distributeSupply()","548707cd":"_bid(uint40,uint128)","54876921":"withdrawMoney(uint256)","5487e055":"PRICE_MID()","5488cc80":"currentCheckpointId()","548942e1":"UbecoinICO()","548ad42e":"chfScale()","548b273a":"outstandingEther()","548b5e6b":"contractStartDate_()","548c0ef4":"getRank(address)","548c20be":"getMyName(bytes32)","548d4a54":"updateTransferFeeRate(uint256)","548d91b1":"getPage(uint256[],uint256,uint256,bool)","548db174":"removeFromWhitelist(address[])","548dd51e":"newContract(address,address,uint256)","548e0846":"lastCallBlock(address)","548f896c":"setHouseEdgeMinimumAmount(uint256)","548fe136":"doWorkAndPayTOT()","549060bb":"Competition(address,address,address,uint256,uint256,uint256,uint256,uint256)","54919a6c":"sendTokensSingleValue(address[],uint256)","549215a3":"amendEpoch(uint256)","54924aec":"adminsDisabledForever()","549262ba":"put()","5493a7f4":"importAmountForAddress(uint256,address,address)","549400bd":"valuee(uint256)","549503e5":"executeSell(address,uint256)","5495699f":"teamFund()","5495794b":"initialWei()","5495ca36":"MDC9Token(uint256,string,uint8,string)","549737e3":"setIBalance3(uint256,uint256,uint256)","549767c7":"balanceSpot(address)","5498e9e5":"AmericanAirlinesCoin()","5498eae4":"PAYA()","54990b15":"sendTranche(bytes32,address,uint256,bytes)","54999f6d":"initAmount()","5499c84e":"changeBonus(uint256,uint256,uint8)","5499dca5":"getMyStake()","549a9ffd":"changePiranhaName(uint256,string)","549aa194":"unreleasedAmount()","549bc193":"changeSwitchTime(uint256)","549bf4bf":"Liberty()","549bf9b9":"SFCapitalToken(string,string,uint8,uint256)","549c4627":"depositsOpen()","549c6bbb":"refundTokens(address,uint256)","549c7b58":"getAgon(uint256)","549caf35":"oxced()","549cbc7a":"startSale(uint256,uint256,uint256,address)","549d5e3b":"claimByAddress(address,address)","549d776a":"upgradeContract(uint256,address)","549ddcbd":"setFreezeHybridizationsCount(uint256,uint256)","549df19f":"resetAllWallets()","549eca74":"fpDiv(uint256,uint256)","54a019e2":"FOUNDER_FUND_2()","54a035aa":"_evaluateCategory(address,uint8,uint256,uint256)","54a04d2f":"setMigrateAgent(address)","54a0ebf5":"updateEntityName(uint256,bytes32)","54a1b431":"getVoteDetails(uint256)","54a1e232":"setSellOrdersContract(address)","54a28ded":"bhCheck()","54a325a6":"setKyberNetwork(address)","54a46211":"_removeInvestor(address)","54a598b0":"globalTokenTransferLock()","54a6c8c4":"toSmallrtc(uint256)","54a6ff68":"isVersionLogic()","54a874b4":"isSolved(address)","54a8b217":"qryModules()","54a8ca69":"transferAnyMEPToken(address,uint256)","54a8ed7b":"USD_CENT_PER_GZE()","54a9409e":"charge(address,uint256,uint256)","54a9de1c":"referrerBonus(address)","54aa0546":"MCNC()","54aa4e44":"setDisableBuyingTime(uint256)","54aac764":"SALE2_CAP()","54ab5561":"setOwnerTwo(address)","54ac2119":"EMJACTestToken()","54aca207":"iwithdrawal(uint256)","54acbe7b":"setSaleShare(uint256,bool,address,uint256)","54accc88":"OOREDOOCHAIN()","54ad2d22":"BitcoinCrown()","54ad7e1c":"setDividendDistributionPool(address)","54ad9718":"feePrice()","54adb7b1":"doNotAllocateBid(bytes32)","54adc686":"claimRewards(bytes32[],uint256[])","54ae8492":"CustodialForward()","54aee843":"MANHATTANPROXYMANAVE()","54af0d4c":"validAfter(address)","54af3548":"getSigner(address,uint256,address,uint256,bytes32,bytes32,uint8)","54afc9a9":"MyFirstToken()","54b025c5":"deleteRole(address)","54b02ba4":"cutoff()","54b2a080":"valueAtIndexHasNext(uint256)","54b302c5":"maximumDeposit()","54b3fa58":"ServiceTask(string)","54b48428":"endTGE()","54b49859":"fmpContractAddress()","54b51fcc":"testNumberOfElements()","54b61723":"round3Cap()","54b67057":"setTranformed(uint64,uint64)","54b6a520":"ICOFinished()","54b6ba95":"durationInDays()","54b6ed85":"AddNewCurrency(string,string,string,string)","54b7636e":"isKYCVerified(address)","54b84910":"needToReserve()","54b8c024":"fieldOrder()","54b8d5e3":"getName(bytes32)","54b8dd66":"countryItems(uint256,uint256,uint256)","54b8dfcb":"settleBuyer(address,uint256)","54b9b4fa":"UNLOCK_TEAM_1()","54ba34b5":"available_slots()","54ba7daa":"enter(bytes,bytes)","54bbd376":"getNextDate(uint32)","54bc16f2":"Exchanges()","54bdbd4d":"changeMinPeriod(uint32)","54be50a5":"lastHoldingTax()","54beb2f4":"ProfitSharing(address)","54bec662":"removeValidation(address,bytes32)","54bef3b4":"getPlayerVaultsHelper(uint256,uint256,uint256,uint256,uint256)","54bf3a73":"playerToDungeonID(address)","54c0775f":"GetItems(address)","54c15020":"awardReferalBonus()","54c15b82":"isGeneScience()","54c29ce6":"assertOperationIsConsistent(bytes32)","54c35a3c":"setup(address,address,address,address)","54c3b0c4":"icoPhase3EndTime()","54c41fb9":"viewMerkleHash(uint16,uint8,uint8)","54c51813":"setFreelancer(bool,string,uint256,uint8,uint256[],uint256[],string)","54c552db":"setNumber(bytes32,uint256)","54c5aee1":"collectReward()","54c5b696":"maxBonus()","54c5f850":"withdrawTokensFromAnyWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","54c72ead":"_getHardCap()","54c86628":"etsContract()","54c91295":"getEloScore(address)","54c916a1":"setOCPTokenContract(address)","54c93a4e":"lockTeamTokens()","54c990cf":"periodTimeFrame(uint256)","54c9cc44":"changePlayersName(string)","54ca435f":"PRESS_MARKETING()","54ca9095":"newEntity(bytes32,bytes32,uint256,uint256)","54cacaba":"QuarkChain()","54caf101":"bonus(uint256,uint8)","54cb5081":"getPromoMinPurchaseEth()","54cbe1e6":"gamePayoutResolver(address,uint256)","54cbffc4":"LimitOfMinutes()","54cc463b":"PreICOPrice()","54cc61bc":"Krown(uint256,string,uint8,string,address)","54ccdb0d":"seriesCSupply()","54ce0851":"round5TokensRemaning()","54ce7616":"TestTalk()","54cecb21":"AuthPending(address)","54cf2aeb":"swapFee()","54cf6668":"setEarlyInvestorExchangeRate(uint256)","54cfcd1b":"DEAWCOIN()","54cfe7d0":"nextForkName()","54d03b5c":"changeFeeMake(uint256)","54d05ad2":"changelp10(address)","54d06009":"whiteListAddress()","54d15005":"isDestroyed(string)","54d15347":"adminSuspendDeposit(bool)","54d18864":"totalProjectToken()","54d1b356":"GetBankerProfit(uint8)","54d1f77c":"UnpaidDivInt()","54d24f33":"TOKEN_PRESALE_LIMIT()","54d271fb":"unpause_1()","54d29b9a":"bidderWhitelist(uint256)","54d2a34a":"getHouseFee()","54d30c87":"release(uint256,bool)","54d3f3e4":"getTopInfoDetail(address)","54d41bbd":"unregisterAdmin(address)","54d4b7b2":"DateOfDeath()","54d4da57":"extractInvoicedLength()","54d50378":"winner_pool_amount()","54d5e127":"withdrawSettle(bytes32,bytes32)","54d68405":"LogFundAnswerBounty(bytes32,uint256,uint256,address)","54d6a2b7":"cancelSwap(uint256)","54d734e2":"createSubscriptionOffer(uint256,uint16,uint256,uint256,uint256,uint256,uint256,bytes)","54d79868":"getPositionBalance(bytes32)","54d7c34d":"transferAidrop()","54d87002":"showContributed()","54d89c92":"numberParticipants()","54d92ba9":"getCurrAuctionPriceTankID(uint256)","54d9d6f8":"findNextDay(uint256,bytes)","54da44db":"GetUserBetsInRaz(address,uint256)","54da5393":"Utils()","54da80c9":"Patney()","54dacb96":"numWhitelisted()","54daedc3":"transferCoins(address)","54db4547":"ethbuy(uint256)","54dcc49b":"_withdraw(address,uint256,bool,uint256)","54dcfb9b":"LinkToken(uint256,string,string,address)","54dd1da4":"releaseVestedTokens()","54ddd5d6":"retrieveRefund()","54dea00a":"getTokenRate(address)","54dfbca8":"setExtra(uint256,address)","54dfefb4":"DEEPPAYMENT()","54e030b7":"bonusDistributionAddress()","54e031cb":"setLockAccInfo(address,string)","54e08f76":"theInvestor()","54e0b451":"claimReward(bytes32,uint256)","54e0b464":"ICO_ADDR()","54e16753":"BLUECoin()","54e2cf2d":"_getPartLevel(bytes,uint256)","54e2dc8d":"getAdditionalTime(uint256)","54e30c37":"earlyBirdPrice()","54e33cf0":"getRewardsIndex()","54e35054":"getRoundResultInfoWithRoundID(uint256)","54e35ba2":"issueTokens(uint256,uint256)","54e4df26":"test_0_testGenerateTokens()","54e707a0":"START_WEEK_2()","54e76d74":"minimumPoolPurchase()","54e7aed8":"Frozenable(address)","54e7e98c":"PiexT(uint256,string,uint8,string)","54e8561b":"RDOCrowdsale(address,address)","54e8e4e4":"Test_SignedInteger_AdditionOverflow(int256)","54e921cb":"setFreezeMustCalculate(uint256,bool)","54e9244e":"orderFills()","54e9d5e1":"refundDonation(address)","54ea1538":"sellDrago(uint256)","54ea1af9":"flyDrop(address[],uint256[])","54ea4000":"identify(address[])","54eae3e6":"streamEnd()","54eb3f74":"getOptionState(address[2],uint256[7])","54eb9e88":"_preValidateICOPurchase(address,uint256)","54ec5d9b":"weiRaisedRound()","54ec6a43":"taxPaid()","54ecaba4":"COMPETITION_VERSION()","54ecd994":"ALLOC_BOUNTIES()","54ed08c8":"getPurchasedTokens(address)","54ed44f7":"generateCostFromAttributes(uint8[14])","54ed7b6e":"addHash(bytes)","54ee4d4b":"addCommunityGrant(address,uint256)","54eea796":"setEpochLength(uint256)","54ef356f":"isUserAdmitted(address)","54ef9c3c":"getEpisodeBranchData(uint256,uint256)","54f10ed0":"IknewToken()","54f11256":"retrieveCadvsLeftInRefunding()","54f12a2c":"isAllowed(string,string)","54f1469c":"shuffle(uint256[])","54f1bb4b":"Etheraffle(address,address,address,address)","54f363a3":"addition(uint256,uint256)","54f47346":"lastBlock_f12()","54f47be7":"transformSettingContract()","54f4824d":"myLastRef(address)","54f50f1b":"nicknameOf(uint256)","54f5164b":"isLocked(bytes32,uint256)","54f51d32":"SetCitySnapshot(address,uint256,bool,uint256,uint256,uint256,uint256)","54f5675c":"OfferedForSale(uint256)","54f56df1":"Shop(address)","54f60aea":"ONE_EMONT()","54f6127f":"getData(bytes32)","54f63105":"maxMintingPower()","54f63ee5":"resumePresale()","54f703f8":"factor()","54f78dad":"setBalanceSheet(address)","54f7b493":"getMinimumFundsInEuroCents()","54f7dd8c":"lotOfOwnerByIndex(address,uint256)","54f81786":"startTokenVotes(address[10])","54f83483":"needsTick()","54f8c2df":"getShipName(uint32)","54f9962a":"getAffiliateLevel()","54f9cbb3":"newVote(uint256,string)","54fa8044":"sendKrs(address,uint256)","54fac919":"decay()","54fbde65":"USDWEI()","54fbed37":"tokenIsBeingTransferred(address,address,uint256)","54fc85ac":"maxEth()","54fd4d50":"version()","54fef819":"throwsWhenRedeployingANT()","54ffb323":"MaxOffer()","54ffe626":"_getBonusTokenAmount(uint256,uint256)","550052b5":"iaOnInvested(address,uint256,bool)","5502109e":"actualCap()","550271c9":"Candle()","5502be83":"getBountiesByParticipant(address)","55036214":"priceRound2()","5503a659":"smallponzi()","5503d9ba":"numberOfPledgeAdmins()","55042668":"jobStarted(bytes16,address,address,uint256,uint256)","55044042":"CreateGUNS(address,uint256)","5504bf71":"attackerPrizeByToken(bytes32,address,address)","5504f45e":"getFrontEndTokenSupply(address)","5505075b":"validArb(address,uint256)","550538f6":"getOneTimeCosts()","550563ba":"Iscm(uint256,string,string)","55061ccc":"setImageBlurredAt(uint256,uint256)","55064d85":"exists(uint256,uint256,uint256)","5506aa6c":"weiMaximumGoal()","55072fef":"PRIVATE()","5507a82e":"setCalculatorAddress(address)","5507e9c0":"lockForAll(bool)","5509b160":"weightLostPartLimit()","5509f0f3":"minPurchasePreICO()","550b1f48":"eighthTime()","550b47b8":"setCoinPrice(uint256)","550bcd8d":"testThrowUpdateLatestRevisionEnforceRevisions()","550c99c6":"_createCutie(uint40,uint40,uint16,uint16,uint256,address,uint40)","550d8dca":"secondPeriodSupply()","550dd006":"calcCostsBuying(uint256,uint8,uint8,uint256)","550e4f2b":"withdrawRemainingIPCToken()","550ed1f0":"getMaxBetAmount()","550ed61b":"jpyc()","55107916":"distributeMarketingShares()","5510f804":"acceptToken()","5510f8d7":"forkApprove(address,address,address,uint256)","55119b1a":"addBeneficiary(address,uint256,uint256,uint256,uint256)","55121498":"getLenderBalance(uint256)","55126d30":"LogEvent(address,uint256,uint256,string)","5512a353":"BONUSROLL()","5512a8d8":"myohoTest()","551336c5":"prophecise(bytes32,bytes32)","55138534":"Transaction()","55138d97":"addCar(address[4],uint256,uint256)","55139163":"refereesRateBonus()","5513a2ac":"claimByProof(address,bytes32[],bytes32[],uint256)","5513a34e":"getProductHistoryPrice(bytes32)","5514738f":"_packWarriorPvpData(uint256,uint256,uint256,uint256,uint256)","55152b9d":"DxChainToken()","55161913":"charge()","5516b6c5":"SECCoinSold()","55173bb1":"ColaTokenToken()","55176f51":"FOUNDATION_POOL_TOKENS_VESTED()","55177ef1":"addressCoreSupply()","55181fba":"TEXBToken()","55186c99":"auditorCanWithdrawStake(uint256,address)","55189100":"payRewards(address,uint256)","551a450a":"tokenIdToListing(bytes5)","551cacfd":"extractEther(address)","551dc401":"StateChanged(uint8)","551e2e39":"changeDefaults(uint256,uint256,uint256,uint256,bool)","551e44ca":"withdrawTokenForUser(uint256)","551e4c27":"setPeggleBot(string)","551e6ba6":"BoardRoom(address)","551ef860":"newRole(bytes32,address[])","551f3108":"versionSelectors(bytes32,bytes32,address)","551f8e2a":"add(address,address,uint256)","5520002a":"viewSharesSold()","552033c4":"RAY()","552079dc":"fallback()","55207a07":"changeMood(string)","55212c89":"seeleToken()","55219d5a":"tokenAllowed(address)","5521d17b":"betOnColor(bool)","552200f5":"check_part_location(uint256)","55234ec0":"remaining()","5523ec91":"fghcoin()","552405b0":"createCommunity(string,string,string,string,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)","55241077":"setValue(uint256)","55247a52":"wantToBeWhale()","5524defd":"onPayoutFailure(address,uint256)","552548b5":"setMaxDiscountPermille(uint256)","55258a11":"updateAllScores()","5525d87f":"setOracleQueryType(string)","55265669":"showSupply()","55274378":"updateInterCrypto()","55291dbd":"claimEther()","552984b3":"stabilize()","552a41a3":"getRemainingBountyTokens()","552a6915":"getGood(uint256)","552ac31e":"prod(address,bytes32,uint128)","552b71aa":"executeDistributeCapital(uint256)","552c190e":"_DoubleDown()","552d2d5c":"getPerson(address)","552e387d":"XBVHandler(address,uint256)","552eb9e2":"ETStarPresale(address,uint256,uint256)","552f1270":"startWeek(address,uint8)","552f27f5":"setupEventsAdmin(address)","552f8224":"fechAllForCandidate()","552fee9d":"airdropTokens(address,uint256,uint256)","55302ebd":"hasUnionId(bytes32)","5530c519":"validate_pko(address,bytes32,bytes)","5531680c":"transferableBlock()","55325d87":"prizeWinners(uint256)","55326893":"setPOOL_edit_24(string)","5532edf2":"autorizadoraNuncaAutorizouCandidata(address,address)","5533639e":"toB32(bytes,uint256,bytes32,bytes)","5533ffad":"setUserNotifications(bool[],bool,uint8[],uint8)","5534236e":"AirDropPromo(string,string)","55347cce":"Setuppackagesale(uint256,uint256)","55348d9b":"addBeneficiaryVestor(address,uint256,uint256,uint256,uint256)","55352638":"updatePresaleMaxWei(uint256)","553543c5":"tokenSoldPreSale()","553594e4":"getActionHistorySize()","5535cd2f":"setPOOL_edit_1(string)","5535e7a8":"GameCreated(address,address,uint256,uint256,bytes32)","55367ba9":"pauseSale()","55368442":"removeMetadataObject(string)","5536deb6":"finalizePhase()","5536e2d6":"OCTACrypto()","5537f0ef":"betFinalize(uint256,uint8)","55380ed8":"GOOGToken()","5538210e":"tokenSweep(address,address)","5538689c":"changePartner3(address)","5538c964":"getPartnerInfo(uint256)","55390b0d":"PrestoToken()","5539a9c2":"refreshPublicFundingPersonalEthLimit(uint256)","5539d400":"authorizedAddress()","553a48fd":"isFunctionRemoveAuthorizedAddress(bytes)","553a5c85":"mintedTotally()","553a90b8":"updateStopGameOnNextRound(bool)","553aaafe":"MSPPlaceHolder(address,address,address,address)","553b196f":"setPurchasingPaused(bool)","553b6975":"setAmbassador(address)","553b6f83":"lastOracleFee()","553b74aa":"getNumberWallets()","553bf56d":"accept(uint256,string,uint256)","553c02ec":"getCountryBet(uint256)","553c6de9":"getPreIcoInvestor(uint256)","553cc48d":"Player(string)","553cd9c6":"MLC()","553d0d12":"transferTokensThroughProxy(address,address,uint256)","553df021":"deal()","553eb4db":"registerRewards(address[],uint256[],uint256)","553ec6be":"batchCancelSale(uint256[])","553f4fb3":"requestRand()","553f9157":"completeSale(uint256,uint256)","553fd043":"setMoneyRange(uint256)","553fd8ee":"ALLOC_FOUNDATION()","5540e6c1":"iMMCoinsellPrice()","55416e06":"voteA()","5541b817":"_leftChild(uint8)","554249b3":"delegateIncreaseApproval(address,uint256,address)","55426bad":"processPresaleOrEarlyContributors(address[],uint256[])","55427b42":"getBalanceofModifiedWeth()","5542f680":"retrieveToken(uint256)","55434bc9":"ToggleFreezeSelling()","55456f58":"maxcap()","554571db":"updateNarco(uint256,string,string)","5545f12b":"OnChainOrderBookV013bFactory()","5545f584":"soldForForth()","554600fa":"setOraclizeTimeTolerance(uint256)","554644d5":"_removeHolding(bytes12)","554652ce":"airdropToken(address[],uint256[])","554680f2":"updateActivation()","5546a12c":"setInformation(string,string)","5546e1ab":"getMyRefund()","554803c7":"RTCCOINTOKEN(uint256,string,string)","55485779":"minGas4Accts()","5548c837":"Deposit(address,address,uint256)","554917f5":"processMyRefund()","55491da8":"distributeJST(address[],uint256,uint256)","55494d1e":"fillBuyOrder(address,address,uint256,uint256,uint256)","5549563c":"claimManyTokenFor(address[])","5549ce5e":"WarriorSanctuary(address,uint32[])","5549ce6d":"ticketTransfersPerAmount(uint256)","5549f46c":"CustomerInsert(string,address,string,int256)","554a854e":"TransferCryptibles(address,uint256)","554ad7ff":"queryNTVUs(uint256,uint256)","554bab3c":"updatePauser(address)","554d0429":"getArrBoolField2()","554d184b":"getPrices(address,address[],address[])","554d27ca":"createOffer(address,uint256,uint256,bool,uint256)","554d578d":"getCap()","554d758e":"houseStatsOf(address)","554dbfc2":"EMISSION_FOR_SALESTAGE6()","554e6c61":"getTargetBNumber()","554ed8b6":"escrowTransferList(uint256)","5550e4f3":"blackBoxAddress()","5551b6b6":"isDelegateEnable()","5551d1b7":"isAllowToIssue()","5552a483":"newOffer(address,uint256,string,uint256,uint256)","5552d1cb":"prizeIncr()","55532953":"LOCKED_ADDRESS()","5553dc1e":"THToken()","55540004":"createCampaign(address,uint256,string)","5555d6d6":"exist(uint256,address)","55560fd5":"mLoadAndReturn(address)","55566036":"getGamePool(uint256)","5556db65":"totalMined()","5556f3f6":"RareCards()","55575ddb":"setRevokeAddress(address)","55589cdd":"addressOf(address,string)","5558e1c3":"setMinToken(uint256)","555984fd":"cancelMintRequest(uint256,string)","5559d8d9":"getClamTax()","555aaff6":"calculate_range_attempt(uint256,uint256)","555ab116":"AhooleeTokenSale(uint256,uint256,uint256,address,address,uint256,uint256,uint256)","555ae2c6":"STQPreICOBase(address)","555af8f4":"addressFundHolder()","555b6162":"allBalances()","555be5bd":"assignNewPlanet(address,uint256,uint256,uint256,string,string,string)","555befa8":"set1RoundTime(uint256)","555c4758":"distributeTimelockedTokens(address[],uint256[],uint256[],uint256[])","555d8e3c":"_printACourse(uint256)","555db767":"test_2_accessRestriction_newProposal_shouldThrow()","555e6582":"executeMintProposal(uint256)","555ea48c":"becomeHost(bytes32,uint8,bytes32,bytes32,string,string,string)","555f323a":"totalBurnedTokens()","555f498a":"getInvestorsTokens(address,uint256)","555fe48a":"batchTransferFrom(address,address,uint32[])","55605eee":"claimTokenReserveEcon()","5560ada8":"rateAddress(address,uint256)","5560d365":"horseShoeForSale(uint256,uint256)","55616107":"setCOOAddress(address,address)","55619911":"emergencyTransfer(uint256,address)","5561c0e2":"registerChain(bytes8,uint256)","5563d919":"cancelCraftingAuction(uint256)","55642be7":"getRoundBets(uint16)","55642cf9":"CappedBonusSale(uint256)","55642e53":"blacklist(bytes32)","5564a08e":"setGame()","5565ca9d":"buyShip(uint16,uint16,uint8,bytes32)","5565ee7a":"exchangePointToCoin(address,uint256,string)","556665db":"expireTimeLimit()","55674064":"totalSupplyWithoutDecimals()","55674efe":"BondkickToken(string,string,uint8,uint256,int256)","55684aa6":"originBurn(uint256)","55688000":"burnIndexedFromByAddress(address,address,uint256)","5568fd5d":"icoPhase2End()","5569e58c":"EthereumPocket()","5569f5d0":"preSaleFinished()","5569fc0b":"CreateSale(uint256,uint256,uint256,uint64,address)","556a3689":"mint_Crowdsale(address)","556b22c1":"get_record_count()","556b6384":"removeBlacklistDestroyer(address)","556bcece":"reinvest_color(address,uint256,uint256,uint256)","556cbc03":"setDefaultWhitelistVestingParameters(uint256,uint256,uint256,uint256,uint256)","556d5139":"getAverageTokenPrice(address)","556db16a":"validatePurchase(address,uint256)","556e2eb9":"TBL4TokenSale()","556e56d1":"BurnupGameFinance(address)","556e6edc":"indice()","556ed30e":"deactivated()","556f0dc7":"granularity()","556fe562":"notEqual(bytes32,bytes32,string)","55710346":"createTokensFromOther(address,uint256,address)","557119db":"withdrawForCharity(address)","5571954d":"_distributeRegistrationBonus(address)","55728d04":"setIssuer(address,uint256)","5572f9c6":"exchangeEther(uint256)","55737391":"LBRSMultitransfer(address,address)","5573a34c":"FP_SCALE()","5573c582":"walletTransfer(address,address,uint256)","5574cff5":"LOVEYOUFOREVER()","55764c81":"updatedTokensPerEth(uint256)","55765e9a":"createMeme(string,uint256)","5576af7d":"TransactionConfirmedAfterDispute(uint256,uint256)","5576b791":"transferWithVesting(address,uint256)","5577e89f":"testEqualityUint()","5578b51e":"CorelliCoin(uint256,string,string)","5578d24e":"addOldPresidents(uint256[],address[])","5579996d":"CHW()","5579ac74":"dna3(uint256)","5579ff8e":"walletBlogs()","557b0dc9":"addCar(string,string,string,uint16,string)","557bed40":"SocialMediaPayToken()","557d0195":"SuomenMarkka()","557d0479":"aidrop(address[],uint256)","557dc796":"endRoundSeed()","557ed1ba":"getTime()","557f4bc9":"changeContractOwnership(address)","557f9ea6":"aDeposit(uint256,uint256)","557feee1":"setRegionCurrentImageId(uint256,uint256)","5581004d":"createThrone(bytes,uint256,uint256,uint256,uint256)","55810d11":"appFund()","5581800c":"isCappedInEther()","5581be8d":"privatePresaleSupply()","558225fc":"setAtomSons(uint256,uint32)","558234f0":"USD_PURCHASE_AMOUNT_REQUIRING_ID()","5582c08d":"startMonarchyGameReward()","5582df33":"performInitialAllocations()","558305f9":"isFreezeEnabled()","55832ffc":"purchaseStartTime()","5583318a":"TOL()","55838881":"STAGE_ONE_BET_LIMIT()","55843fda":"getAdOwner(uint256)","5584c4f9":"getActiveProposals()","558599ea":"SQR_TOKEN_DECIMALS()","55866c8d":"isRefunded(uint256)","55869af1":"fromVersion()","558790d8":"testInitialTokenBalanceShouldBeZero()","5588227e":"restCrowdSaleAddress(address)","55889d01":"setMaxLockPeriod(uint256)","5588b929":"streamerContract()","558a8f47":"sendFutureSupplyToken(address,uint256)","558b5aab":"setSellingToken(address,uint256,uint256)","558da2e3":"preSaleprice()","558e223f":"_buyPutToOpen(uint256,uint256,uint256,uint256,address)","558e44d3":"MAX_FEE_PERCENTAGE()","558f285f":"unsetMyIdentity(uint256)","558f46c8":"getZTKChecks()","55909da3":"spreadTokens()","5590e4d2":"toBytes32(bool)","55915b97":"initialSuppy()","55923471":"fiveHourCap()","55923cc5":"ElementToken(string,string,uint256,uint8)","5592d687":"settleBounty(uint128)","5592fc71":"getLotteryWinners()","55947d16":"XJJ()","5594e88c":"delegateToken(address,address)","559510d8":"left53(uint256)","55951e15":"dollarToLoveyRate()","55954b49":"initVesting(address,uint256)","559659fa":"getTotalRefund()","55976b05":"depositNotification(uint256)","5597801a":"addwhitelistedBatch(address[],address)","5597e9dd":"setCompte_36(string)","5597f3a5":"createRecord(string,uint256,address,string,string,string)","5598c576":"reveal_move(bytes32,uint8,bytes32,bytes32)","5598f8cc":"getCampaign(uint256)","559ac092":"getAirdropIdsByContractAddress(address)","559b0432":"yearCap()","559b0ed5":"giveBackOwnership(address)","559b1df4":"TokenStoreUpdated(address,address)","559b678c":"IsLimitPart(uint8,uint256)","559e5e06":"updateTokenAge()","559ec80d":"settleDeposit()","559ed339":"setTokens()","559f05dc":"canTrade(address)","559fb6f5":"assertAvailable(uint256)","559fd7ee":"setYearOneMultiplier(uint256)","55a01845":"forceFinished()","55a05335":"totalDragonLotteryNumber()","55a129bd":"Tier(uint256,uint256,uint256,uint256,uint256,uint256)","55a36746":"newDigitalContract(string,address[])","55a373d6":"tokenContract()","55a392ac":"ExerciseEndTime()","55a3f425":"getBalanaceOf(address)","55a53ed0":"EtherSteem()","55a5a8d4":"DHUBTest02()","55a5dc3c":"SpegniCassaAutomatica()","55a5f702":"right45(uint256)","55a6b827":"setPrices(uint32,uint32)","55a85240":"random(bytes32,uint32,uint256)","55a964a7":"distributeALLY(address[],uint256,uint256)","55a9794a":"extract(uint256,uint256[])","55a9a87c":"fightMonster(uint16,uint8,uint8)","55aa8ad4":"Filesystem()","55ab314e":"setOrders(uint224,uint32,uint8,uint8,uint64,uint64,uint64)","55ad798f":"removeRobot(address)","55ae603e":"sell(uint16,uint16,uint8,address,uint256)","55aea767":"batchClaim(uint256)","55aed629":"SpinnersByAddress(address,uint256)","55af5c59":"editBalanceOf(address,uint256)","55afb12d":"isStbMintedForStaEx()","55afee43":"validateKYC(address,bool)","55aff5ba":"minTokParticipate()","55aff703":"updatedBet(uint256)","55b09c58":"myuseOf(address)","55b1182c":"stakeholdersPoolAddress()","55b12570":"TransferError(address,uint256)","55b1aa23":"DEEPPASA()","55b23f4c":"econVestingStages()","55b2bb0f":"MIN_FUND()","55b32c83":"sendFoundation()","55b37685":"balancePreSale3()","55b4bb4b":"HeavyLitecoin()","55b4f231":"vestTokensDetail(address,uint256,uint256,uint256,bool,uint256)","55b5ec64":"proceeds()","55b62dcf":"getThresold(uint256)","55b6ec79":"endCall(bytes32,uint256,uint8,bytes32,bytes32)","55b6ed5c":"allowances(address,address)","55b700af":"PRESALERATE()","55b71344":"FlexibleToken(string,string,uint8,uint256)","55b726bc":"adjustRate(uint256)","55b72f38":"getLongitude()","55b775ea":"setFeed(address)","55b8415e":"processReward()","55b860e1":"_updateDiscount(uint256,uint256)","55b8ef5e":"UserInfo()","55b93031":"minNumber()","55b954ad":"getRestTokenBalance()","55b9b9cf":"PXLToken(uint256,uint256,uint256,address,address)","55b9ca40":"withdrawCell(uint256)","55ba13da":"VaN(address)","55ba343f":"getMarket(bytes)","55bb34e5":"enableEmission(bool)","55bc0f07":"returnLongTokenAmount(address[3],bytes32)","55bc8725":"bannedAddresses(address)","55bcaf06":"halfMultiplier()","55bdd4ac":"offerCatForSaleToAddress(uint256,uint256,address)","55be1168":"view42()","55bf3dbb":"OrangeToken()","55bf5656":"crowdfundStartDate()","55bfe5b1":"chfRate()","55c01345":"coupon()","55c081d4":"setTier(address)","55c0a5f4":"appendSource(address[],uint256[])","55c1743d":"SEOS(uint256)","55c1e611":"cancelBets()","55c208ad":"TimeDecayingTokenBoundaryRange(uint256,uint256,uint256,uint256,address)","55c28ed0":"zeuscoin()","55c2a0ac":"addQuantity(address,address,uint256,uint256)","55c33624":"mock_set(address,address,uint256,uint256)","55c39193":"removeBoardOnUser(address,address)","55c47867":"withdrawTokensForCloudexchangeTeam(uint256,address[])","55c4a8bf":"vig()","55c4b226":"pushUpdate()","55c4c5b3":"Cartycoin(uint256,string,string)","55c4e704":"enableAgency(address)","55c60500":"setRemainAirdrop(uint256)","55c623c6":"bidEth(uint256)","55c64ce1":"resetReward()","55c797ce":"setBonusWallet(address)","55c79f49":"payToEvaluator(uint256,uint256)","55c81595":"raffleState()","55c81ae9":"recipientContainer()","55c8c6fd":"tokensSupplied()","55c94f04":"closePosition(bytes32,uint256,address,address,bytes)","55c9e290":"DOI()","55ca92f8":"createBallot(uint256,uint256,address,string)","55cacda5":"minimumEpochInterval()","55cb155a":"WebcoinToken(uint256,address[])","55cb61ca":"EthTransferContract(address)","55cc4e57":"setIssuer(address)","55cd1915":"GA_chain()","55ce15f4":"transferAmount(address,uint256,uint256)","55ce3b9a":"setFundWallet(address)","55ce596b":"flowingHairAddress()","55ce76e6":"feeAmountThreshold()","55cf1008":"numberOfValidPartners(uint256,uint256)","55cf969d":"transferReverseProxy(address,address,uint256,uint256,uint8,bytes32,bytes32)","55cfa833":"clientmanager()","55d0012d":"signupUserWhitelist(address[],uint256[])","55d04877":"_payRefund(bytes32)","55d13efe":"sha_data_group(int256[],int256)","55d17201":"OHC_Crowdsale(uint256,uint256,uint256,address)","55d17251":"CROWDSALE_CAP()","55d1b4d3":"softCapPrice()","55d1c5c7":"getEuroCollected()","55d1f799":"triggerSkill(uint32[11][32],uint8[32],uint8[4][31],uint8[3][3][31],uint8[5][11][32],uint16[11][32],uint32[3][11][32])","55d28f20":"configure(address,address,address)","55d374e9":"setPrices(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","55d39bc0":"setETHPriceUpperBound(uint256)","55d4956f":"setEndSaleDate(uint256)","55d55a76":"isActionAccount(address)","55d56ddd":"_adoptAxies(address,uint8,uint256,address)","55d595d1":"rollbackContract(uint256,address)","55d66c3e":"getMarketOrderWorkerpoolOwner(uint256)","55d67ba0":"Begin(string)","55d6d06e":"XIDToken()","55d6f3c0":"Telephone()","55d72a7d":"ActionStarUp(address)","55d7592d":"emergencyETHDrain()","55d79248":"miningTenPlat()","55d7fe2b":"RATE_SALESTAGE5()","55d8bbd5":"beginSell()","55d9275e":"payMoneytoAuthor(address)","55dac078":"SecuredNotes()","55daf6e6":"setInitialOwners(address[],uint256[],uint256[])","55db4092":"setTOS(address,bool)","55dc3b65":"DAVCoin()","55dd16cd":"CrowdsalePhase1(uint256)","55dd574c":"startPreSale()","55dd8171":"bbFounderCoreStaffWallet()","55ddc9f0":"mainSaleFirstStartDate()","55de28ae":"burnBadge(uint256)","55de5a93":"getCurrentEdition()","55de97ac":"OBR_Duration()","55deb8fc":"tell(uint256)","55df34f2":"leftOverTokens()","55dfb430":"Test1(int256)","55dfc97c":"limitSupplyPerYear()","55e0aece":"getListingService(uint8)","55e1726c":"LogSetStageStartTime(bytes32,uint256)","55e17544":"Tardis()","55e21474":"firstRoundCosmosTokensLimit()","55e2305e":"preauthorize(address)","55e37cec":"discountRatePreIco()","55e38f9b":"canAddNewClient(address)","55e3f086":"startRound()","55e40d98":"updateItem(uint256,string,uint256[6])","55e447aa":"queryBalanceOf(address)","55e46476":"createA()","55e61dcd":"operationsInQueue(uint256)","55e6b18e":"victorieumStaticToken()","55e6fc50":"deposit_fee()","55e79d29":"regex()","55e7a663":"setLowerPricePercentage(uint256)","55e7db94":"GBCToken()","55e97e93":"closeGenesis()","55e9c358":"weekLength()","55e9caa1":"log_move_fees(address,address,uint256)","55ea14f2":"atomicxSupply()","55ea2cf3":"GameBit()","55eb27c8":"getActualUserTokenBalance(address)","55ebcc83":"Market(bytes,uint256)","55ec4da9":"VaultMint(address)","55ec671a":"canBet()","55ee684d":"initLogo()","55ee6afb":"Wallet(address,address)","55eed9de":"developerFunds()","55ef2913":"isOperatorAuthorizedFor(address,address)","55efe565":"Caligula()","55f03816":"orderOnSaleAuction(uint256,uint256)","55f0690d":"transferAndLockMulti(address[],uint256[],uint256[])","55f0d02c":"ResidualValue(uint256,string,string)","55f13278":"presaleTokenCreationCap()","55f14c30":"minter2()","55f150f1":"desc()","55f1a3c8":"disableTokenSale()","55f21eb7":"getProvider(address)","55f25e3f":"getLavaTypedDataHash(bytes,address,address,address,uint256,uint256,uint256,uint256)","55f28260":"getOwnerAt(uint256)","55f29166":"cancelUpgrade()","55f2dcb2":"GouBi()","55f2de40":"abioSold()","55f39677":"phase2WeiRaised()","55f3c49c":"bookrequest(uint256)","55f413c9":"presale3_startdate()","55f48a46":"CUSTOM_ERC20_BURN_SERVICE_NAME()","55f54552":"setPaySize(uint256)","55f57510":"positions(address)","55f5856f":"transferToLimited(address,address,uint256,uint8)","55f6a412":"modify_NovumAddress(address)","55f78af8":"getLockBalance(address)","55f804b3":"setBaseURI(string)","55f82589":"tryExec(address,uint256)","55f86501":"exec(bytes)","55f92d23":"privateSaleContribution(address,uint256)","55f953e6":"getTokensCountOfUser(address)","55fa1348":"minimum_donation()","55fb8cee":"userCountsInAccount(uint256)","55fb9765":"UniversalGamingCoin()","55fbc8c2":"UpdateEthBalance(uint256,uint256)","55fbf10e":"PanterX(uint256,string,uint8,string)","55fe13ea":"setBuyingEscrowAddress(address)","55fecb0b":"payTheWinner()","55ff440a":"castStringToUInt(string)","55ff85c3":"returnBet(uint32)","56000acf":"processPayment(address,uint256,bool)","56003f0f":"createTemporary(bytes32)","5600e827":"elapsedMonthsFromICOStart()","5600f04f":"url()","5601477b":"addMilestone(uint256,uint256)","5601da3d":"innerTransfer(address,address,uint256,uint256)","5601eaea":"execute(uint256,uint256)","56025c9e":"DatareumCrowdsale(address)","5602a812":"sumICOStage5USD()","5602c05f":"AREF()","560334c6":"angelPool()","5603a50d":"checkVesting(uint256,uint256)","5603ac35":"NewBudget(address,uint256)","5603b9f9":"registerReferral(address,address)","56048edc":"getThresold()","56049a86":"riddle()","5604af49":"battleProvider()","560667f1":"setDocToAddress(address,bytes)","56075a98":"becomePlayer()","56078480":"GoneTrippinToken()","560791a9":"returnHolder(uint256)","5607a548":"m_ownerIndex()","5607f324":"checkLicense(address,address)","5607f408":"freezeTokens(address)","56084329":"SAATCoin()","5608b6d9":"changeprivatebonus(uint256)","5609825e":"partyOwnsAsset(address,address,string)","56098295":"getCandidateVotesByIndex(uint256)","560a665a":"buyTokensByReferrer(address,address)","560bb612":"SignatureValidator(address)","560bd3ec":"addCollaborate(uint256,address,bytes32,uint256)","560cb0a5":"SikobaContinuousSale(uint256)","560d3ca5":"toEXTwei(uint256)","560ecab5":"setSellCeiling(uint256)","560ed6a1":"refundEther()","560ef1bf":"getLockedToken(address)","560f5d4b":"currentStateSales()","561015e2":"notEqual(uint256,uint256,string)","56104861":"addEjariRule(string,string,uint256,uint256)","56105a08":"DgxSwap()","56111751":"respond(uint256,uint256,bytes32)","561187ae":"russianBounty()","5611bf3e":"AlerterAdded(address,bool)","56129134":"createPromoKitty(uint256,address)","561296e4":"GetReferralDataOfAddress(address)","5612acd3":"getScenariosInfo(bytes32)","5612e139":"getWebsite(address,uint256)","56131736":"wcf(address,uint256)","561337eb":"contractMessage()","5613680a":"whitelistInvestors(address[])","561387b1":"setPrice(string,string,string,uint256)","5614678c":"calculateDayOwnerCut_(uint256)","5615f415":"q2()","56161605":"TestGOATToken()","5616cafd":"setGasForCLI(uint256)","5616f7df":"getHatchCooldown(uint256)","5617fb0d":"TKDToken()","56189cb4":"approveInternal(address,address,uint256)","561960b5":"activateStartBlockOf(address)","56196d87":"pickReward(uint256)","56196dc9":"getTagByModuleType(uint8)","561a0d65":"serviceClaimOwnership()","561a28df":"market2018TokenCreated()","561a4873":"buyAd(string,string,string,uint256,uint8,address)","561b1d72":"iDeal()","561bbe1e":"getluckyprize()","561cce0a":"LONG()","561cd462":"balanceOfETH(address)","561e91a1":"makeBet()","561ef5b6":"for_sale()","561f1ba1":"sendToken(address,address,uint256,uint256)","561f39c0":"getGameMaker()","561fe29c":"createDeposit(address)","56200819":"updatePayoutAddress(address)","5620d1d7":"lastCompleteEpoch()","56216916":"changeFinishSale(uint256)","5621df99":"ESMBCoin()","5622d195":"SvEnsRegistry()","562328ec":"LogBidConfirmed(bytes32,address,bytes32)","5623715b":"updateUpgradePoll(address)","56238b02":"setTokensPerEth(uint256)","56240b38":"PalestinePound()","56242e07":"customerDeposit()","56247e6d":"createKingdom(address,string,string,uint256,bool)","5624e064":"makePurchase(address,uint32)","562557f7":"accountsUsed(uint256,uint256)","56257ae1":"getFUTTotalSupply()","562605f1":"refundOn()","56264d6c":"setMaxTickets(uint256)","5626e246":"Stage2Allocation()","56277619":"setFiatRaisedConvertedToWei(uint256)","5628d443":"BTYCT(uint256,string,string)","5628fc09":"initialize(address,address,uint256,uint256,uint256,uint256,uint256,address,address,address,address,address)","5629365b":"playerWithdraw(uint256)","5629c69e":"ArtBC(uint256,string,uint8,string)","5629c6d9":"doExecution(address)","5629e70b":"NobarToken(uint256,string,string)","562b2ebc":"orderCalldataCanMatch(bytes,bytes,bytes,bytes)","562bde28":"transferMyName(address)","562bfb9f":"getAllCardsModifier()","562c45da":"withdrawDragonsPrime()","562c4784":"targets(address)","562c82ec":"aboveSevenBets()","562c9dfa":"test2_verlappingIntervalNewNode()","562cad23":"startCycle()","562cb622":"setAffiliateLevel(uint256)","562cc70c":"minWeiWhitelistInvestment()","562d4570":"refundStart(address,uint256,address)","562df3d5":"COMMISSION()","562e9df9":"addressTeam()","562ea884":"Explain()","562fa0df":"deposit(address,address[],uint256[])","56304e33":"addBalanceBlocks(address)","563183fc":"maskerOf(address)","56318820":"setTokenSwarmHash(address,bytes)","56323b5d":"BenderCoin()","5632b1fa":"payrolls(uint256)","56330403":"getDocsCount(string)","5633af60":"HeliumNetworkAddress()","5633c442":"lockedUpCount(address)","563433d7":"setStock(address)","5634653d":"verificationCountInt()","5634c88c":"sumOfNGeom(uint256,uint256,uint256)","563540a2":"startQueueing()","5636548f":"enableWithdrawal(bool)","56378983":"validTokenAmount(uint256)","56387fa3":"toogleMinting()","56394455":"getStageStartDate()","56397c35":"ledger()","5639bb3c":"buyPriceEth()","5639d152":"NewRC(address)","5639eb64":"IngridIsAHorribleHumanCoin(uint256,string,uint8,string)","563ad62b":"ConfToken()","563b1358":"approvePack(address)","563b54b9":"getQueuesLength()","563baca1":"fundForBounty()","563bd001":"tokenPriceForPreICO()","563bef94":"ShipSellMaster()","563bf264":"slash(address,address,address)","563c23a0":"timePaused()","563c78b0":"SendPreReserved4()","563ed6d0":"delAdminAddress(address,address)","563fce0b":"mappings()","56410637":"ethernautsStorage()","56411a0f":"ChrizzxToken()","56412d85":"getVote(uint256,uint32)","56416147":"getopenDdaListAssets()","56423986":"DecreaseTheAllowance(address,uint256)","56430201":"InvestmentMade(address,uint256,uint256,string,bytes)","5643a711":"increaseMonsterExp(uint64,uint32)","56442869":"destroyCrowdsale()","56447520":"dteamVaultAddr4()","56451bc2":"removeBalances(address[],uint256[])","564566a8":"isSaleActive()","5646435b":"burnTokens(address,address,address,uint256)","564952d5":"trickleSum()","5649efbc":"superFeed()","564a187f":"getPopRemainingAsFixedPointForGameId(uint256)","564a565d":"disputes(uint256)","564a6b94":"cos(uint16)","564ad142":"testSubItem(bytes,uint256)","564ca533":"setRelayedMessages(bytes32,bool)","564e406f":"changeAgencyOwner(address)","564ef91d":"PRNG()","564f8d23":"rightmost_leaf(uint256)","564f9728":"get_row(uint256,uint256)","5650e5e0":"Couchain(uint256,string,string)","565118f7":"lockReleaseDate2year()","565135ce":"removeUsersWhitelistB(address[])","5651ce38":"priceStepDuration()","56522390":"addEditTokenFee(bytes8,uint256,uint256)","565287c9":"votar(uint256,bytes32)","5652ced0":"OpnMind()","5652ec7e":"GnosisIssued()","5653de64":"tokenSold(uint256)","56544af0":"taxTillNow()","5654a341":"gameIndex()","5654b526":"sumHardCapICOStage8()","5654edb8":"btcUpdates(uint256)","56553a95":"transferIssue(address,uint256)","5655c490":"setProviderCurrentRate(uint256,uint8)","5655e37b":"CONTRIBUTION_MAX_NO_WHITELIST()","56570671":"GetContractStageLiving()","565707a8":"getDErc20(bytes32)","56575bd7":"setParticipateDailyLootContribution(uint256)","5658d212":"getFactoryForCountry(string)","565974d3":"details()","56597e65":"circulationCap()","5659856c":"addApprovedAddresses(address[],uint8)","565a2e2c":"getBeneficiary()","565a2ecf":"classicTransfer(address)","565a7c4c":"epm_system()","565af6a8":"referralRegistration(address,address)","565b3324":"intMin()","565cee48":"ALLOC_ILLIQUID_TEAM()","565e2220":"view24()","565e4fa1":"subtractScalar(int256[],int256)","565eab8e":"TransferMyGGTokens()","565ed5a2":"LogMigrationFinalized(address,address,address)","565f2da9":"lockTokensForTeamAndReserve(address)","565f3624":"testArgOutOfBoundsFail()","565fd2a7":"registerCoinData(address,uint256,uint256)","5660000a":"tokenRewardRate()","566038fb":"cancelTransferRight(address)","56605326":"DTFCToken()","56610400":"Proposals()","566150a3":"GenerateTokenContract()","5661ba15":"setDungeonTokenContract(address)","5661bcd8":"saosao3()","56624ce6":"minVoteWeightK()","56630bce":"KycVerified(address,bool)","56632637":"node_dupes(uint256)","5663896e":"setSecondsPerBlock(uint256)","56639a8e":"fixUSDPriceTime()","56639ef6":"PikewoodFund()","56640afe":"getCampaignLength(uint256)","5664a5a3":"MonsterCreatorInterface()","5666496a":"_applyForCertifation(string,uint256,bool,string,string,uint256)","5666da53":"RYXEX(address,address,address,uint256,uint256,uint256)","566735d8":"PreVNK(uint256,string,string,uint8)","5669c94f":"issueToken(address,string)","566a3cb5":"getTokensHolder()","566b28f0":"m_tokenDiscountThreshold()","566bbee7":"EventCentsPerTokenChanged(uint256,uint256)","566bd6c3":"offerSigner()","566c20fc":"writeMessage(string,string,string,string)","566c23ad":"setLock(bytes32,string)","566c37de":"teamTokenHolder()","566c8ed2":"TCI_client(bytes32,address,address)","566da66c":"OwnableContract()","566dccf4":"enableSaleAgent(address)","566dd702":"chargeAdvertiser(address,uint256,uint256,address)","566e638e":"createCard(address,uint16[5],uint16)","566e78fe":"TokenDistributionMock(uint256)","566eebd8":"test_claimShares_emptyRewardPool_notTranscoder()","566f4ac5":"payMasters()","566fc6de":"getProfitPercent()","566fca87":"GazpromCoin()","5670d6f1":"stopAirdrop(bool)","5670ef72":"setConfigs(bytes32[],uint256[])","56715761":"minDuration()","567188da":"getTotalBuyBySkull(uint256)","5671ec30":"totalCardCount()","5672f548":"physicalString()","5674a3ed":"runLottery()","5675527f":"EtherIco(address,uint256,uint256)","5675db9c":"setShouldGenerateDna(bool)","5675ef9d":"BetPlaced(bytes32,uint8,address,bool,uint256,int32)","56765c51":"WITHDRAWAL_WINDOW()","56768538":"registerForeignAddress(address)","5676d075":"hardCapETHInWeiValue()","56780085":"TOKEN_DECIMAL_MULTIPLIER()","56782e5b":"hplus(uint256,uint256)","5678494f":"ProvePrivKey(bytes32,uint8,bytes32,bytes32,bytes32,bytes32,address,uint256)","5678524f":"nextBuyoutPrice(uint256)","5679623b":"initializationDelay()","567990ae":"LogNoticeMsg(address,uint256,string)","567a03a7":"grantBurner(address,bool)","567a0f35":"testHitSoftCapPreDistribute()","567a9c79":"claimedBountyTokens(address)","567c08e2":"set_minFinneyToKeep(uint256)","567c31f7":"taxEarningsAvailable()","567c5b70":"getTicketParticipant(uint256)","567cc2b6":"setProduction(uint256)","567dbf18":"__forward(address,uint256,uint256,bytes)","567e75c4":"getLoanState(uint256)","5680a3ad":"childExists(address,uint256)","56813535":"const_contract_eth_value()","56814312":"NekoToken()","5681e00b":"getContractMetrics()","56820930":"purchaseMakeCard(uint256)","56826ee6":"receiveApproval(address,address,uint256,bytes)","568287ee":"ShopperlyGlobalToken()","5682d43d":"checkWithdrawAddress(address,bytes32,address)","56833b16":"AYA()","5683a9e0":"LASTTRIAL456()","56841b36":"payToReferer(address,uint256,string)","56845ca0":"updateProposalOwner(uint256,address)","56848c05":"awardMILsTo(address,uint256)","5684c219":"getReportingPeriodDurationInSeconds()","568531cc":"accountRegistryLogic()","5685f6bd":"DELTA_Token()","56860ddc":"GTDNToken()","56861322":"RecievedTip(address,uint256)","56861450":"isAtLeast(int256,int256,string)","5686b54b":"cancelAgreement(uint256)","5687f2b8":"emitApproval(address,address,uint256)","56885cd8":"crowdfunding()","56891412":"totalLocked()","568a2c55":"setNewStart(uint256)","568a8077":"gameResult(uint256,address)","568ab21e":"enter(bytes32)","568b5915":"votesMaskByOperation(bytes32)","568c2163":"END_OF_MINT_DATE()","568d13eb":"calculateRegionInitialSalePixelPrice(uint256)","568d3900":"getAgentIdByAddress(address)","568f57e1":"removeFromApproveList(address)","568f7830":"SECoin(uint256,string,string)","568f910d":"createPost(address,address,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","568f9ce1":"activateDevice(bytes32)","5690d326":"initialize(address,address,uint256,address[],address,address,address,uint256,uint256,address)","5692b273":"finalTier()","5692e367":"decodedExpiration()","5692e54e":"test_0_ensureRegistryFunctions()","5693077a":"registerCampaign(uint256,address)","56930b55":"tokenOperationsFinished()","56939048":"disqualified(address,uint256)","5695dd8c":"FindX()","5695fa58":"getTotalDistributed()","56963c31":"setDistributeAgent(address,bool)","56979da7":"assignmentsClosed()","5698176a":"getPlayersPoints(address)","56982986":"lastBlock_a11()","5698fb44":"getTokenBonus()","56990301":"FoundersVesting(address,address)","56996f6b":"TDESupplyRemaining()","56997fb4":"potReserve()","5699c7b1":"getPendingWithdrawal(address,address)","569a7aab":"isLowercase(bytes32)","569aa0d8":"getPlayerSubmissionFromCompetition(string,uint8,address)","569bf836":"GYTToken(uint256,string,uint8,string)","569c5f6d":"getSum()","569ca935":"_setRolePermissions(address,address)","569d623f":"setEstimatedWeight(uint256)","569eaf61":"isPaidOut(uint256)","569f76e1":"teamOneDivsTotal()","569fa9f9":"releaseRecordsCount()","56a041fc":"exception(address,address)","56a060a2":"isTradingOpen()","56a24be0":"getPositionCallTimestamp(bytes32)","56a3015c":"Generation()","56a3f4ef":"collectMyReturn()","56a49b7a":"getStakeLockedStatus(address)","56a4e7f9":"GetGlobalProduction()","56a61fc4":"_trainPart2(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","56a620aa":"decreaseAfterBurn(address,address,uint256)","56a6d9ef":"transferBalance(address,uint256)","56a70646":"giveBackEthers()","56a7564e":"undistributedTokens()","56a765c4":"whitelistBonusAmount()","56a7b0bf":"Burner(address,address)","56a807d9":"mintvestedTokens(address,uint256)","56a8a270":"competitionAddress()","56a9399d":"YUNXIN3Token(uint256,string,uint8,string)","56a9a68b":"updateAllowances()","56aa3892":"FooContract(address)","56aa772f":"Use_EmergencyCode(uint256)","56aa7cef":"PaymentFinished()","56ab4b5d":"TokenPurchased(address,uint256,uint256,uint256,uint256,uint256)","56abf07c":"giftStar(uint256,address)","56ac1efa":"AcceptsProof(address)","56ad2931":"_moveToken(address,address,uint256,bytes,bool)","56ad41c8":"XandraSupply()","56ad609e":"Addr1()","56ad9f57":"CROWDSALE_SUPPLY()","56ae89a3":"UpdateUserBitFlag(address,uint256)","56af3f2b":"PredatexTiga()","56af4d4e":"AanshuToken()","56afd6e3":"howMuchCanIContributeNow()","56afeed6":"SQUIRREL_BOOST()","56b00cb5":"Horizon0x(uint256,string,string)","56b0443f":"getMarketPrice(uint8)","56b09382":"creditDaoAddress()","56b15308":"deleteProvider(address)","56b1ddbb":"HDT()","56b2c5bb":"doSucceedingTransfer()","56b30aec":"getPendingWithdrawlListCount()","56b30f33":"minAmountForDeal()","56b32da1":"gameStarter()","56b49ef0":"AuctusWhitelist(uint256,uint256)","56b4d760":"getHeroOwner(uint256)","56b54bae":"blockRewardContract()","56b558d3":"kingContract()","56b5d0eb":"_replaceModuleHandler(address)","56b6274b":"verifyEmail(address,string)","56b62e2d":"JetCoin()","56b63df7":"tokenLocks(address)","56b644b0":"changeRake(uint256)","56b6cb70":"foundersTokensWalletSlave()","56b6dbe9":"AustraliavsPeru()","56b7538b":"nextRoundDonation()","56b760f2":"numFabrics()","56b83dc5":"info_Symbol()","56b86bc2":"EtherDogCore()","56b8c164":"getCreatorTAOSetting(bytes32)","56b8c724":"transfer(address,uint256,string)","56b8edf0":"TransferEther(uint256)","56b9a8ab":"tokenSales()","56b9e9de":"getBrehonContract(bytes32)","56bb4d4a":"ICO4Period()","56bb9b43":"getAppCode(address)","56bc0c5e":"UserManager()","56bccf91":"depositTokens(address)","56bd182d":"privateSupply()","56bd928a":"platformLaunchDate()","56bdb5c4":"isMainSaleBonusTime()","56bdc4ae":"TokenLoot(address,address,address,address,address,address,address,address,address,address)","56c11ba3":"priceSelectFight2Death()","56c190ec":"processRefundEther(address,uint256)","56c21897":"PowerCoin(uint256,string,string)","56c23836":"transferDirect(address,uint256)","56c26f25":"getPlayerOwner(uint256)","56c290b8":"t_wallet()","56c2c1f6":"VESTING_TEAM_CLIFF()","56c38b2e":"vestingGrant(address,address,uint256,uint256)","56c3e31a":"mintContract(address,uint256)","56c4339f":"isMainBridgeContract()","56c46ac2":"getLockedContract(address,address)","56c49c2a":"contractFeeMinAmount()","56c4b246":"WrapperLock(address,string,string,uint256,address)","56c4e05a":"_balance()","56c51ea2":"getRestrictionStatus(uint256)","56c5df29":"PCFF()","56c686b1":"getPendingWithdrawl()","56c6a608":"WeBuyAnyHouse()","56c7627e":"tokenLimit()","56c7eb7c":"_destroyTokens(address,uint256)","56c7f461":"refundContributors()","56c82ae5":"sendBalanceForDevelop(uint256)","56c88f5f":"mintAll(address)","56c8c30c":"maxPossibleWithdrawal()","56c8e12e":"refundBalance(address)","56c8eaba":"KRE8()","56ca528f":"right18(uint256)","56ca623e":"toString(address)","56ca7143":"INITIAL_FUND_BALANCE()","56ca8d75":"setBuyingAmountRanges(uint256[])","56cac2e0":"letItRain(uint8,uint256)","56cb6655":"stopTokenMinting()","56cba008":"stopSales()","56ccdadb":"last_roll()","56ccf300":"ToptalToken()","56cd26eb":"Digiblock()","56ce0e6c":"updateMetadata(string,string)","56ce3f5c":"dCoinswapToken()","56ce4bc5":"receiveEtherFromForegroundAddress(address,address,uint256,address)","56ce6377":"WaveVoteContractRegistery()","56cea4b2":"addressFounders1()","56cff99f":"calcGav()","56d0adac":"freeToExtraMinting()","56d0bc9a":"updateProfileEmail(string)","56d13e6e":"setMaxReferrerBonus(uint256)","56d1c866":"getMsg(string)","56d1d4a2":"setExchangeThreshold(uint256)","56d26468":"appBase(bytes32,address)","56d27150":"TheMMORPGToken()","56d2ec1b":"internalBurn(uint256)","56d399e8":"stakingRequirement()","56d3e57d":"_generateRandomNumber()","56d400a1":"approveDispute(uint256)","56d40468":"lockBountyTokens(uint256,address,uint256)","56d44694":"PRICE_4()","56d58452":"containsSender()","56d59777":"setAdministrator(address[])","56d5f541":"_getApprovedAddress(uint256)","56d6cad0":"iFx()","56d73ad1":"getCertifierDb()","56d7bc54":"altCreateTokens(address,uint256)","56d7c0da":"ChooseAwea()","56d7c2c8":"transferERC20Token(address)","56d88e27":"len()","56d89b1f":"AuctusBonusDistribution()","56d906c7":"setBounty(address[],uint256[])","56d95932":"getActualTokensPerEther()","56d9bb9a":"viewAllCertificate(address)","56d9c0e3":"requestReading(address)","56da7743":"getBetsNums(address,uint256)","56da934e":"addTowardsTarget(uint256,uint256)","56daf2c1":"paymentWeiOwed(uint256)","56daf906":"THAW_CYCLE_LENGTH()","56db3df0":"weiForToken(uint256)","56dbc007":"isChild(address,address)","56dcd2fa":"ICO_LEVEL_3()","56ddbe7a":"setVRC(address,address,uint256)","56ddeea2":"getIcoDiscountPercentage()","56ddf404":"Executed(string)","56de9219":"Arina_amount()","56de96db":"setState(uint8)","56dfe628":"viewa2(address)","56e19e6e":"DDNToken(uint256,string,uint8,string)","56e1c40d":"burnFeeNumerator()","56e27ce6":"LuxToken()","56e2eab8":"listAddress(address,uint256,uint256)","56e39c58":"ProtectedTransfer(address,address,uint256,bytes32)","56e3df97":"getGeneration(uint256)","56e40a32":"auctionEthEnd(address,uint256,uint256,bytes)","56e428fc":"LogAccessChanged(address,address,bytes32,address,uint8,uint8)","56e44954":"setExchangeRates(address)","56e49287":"auctionsEndTime()","56e4b68b":"supervisor()","56e4bc1f":"payed()","56e4e073":"TestETHToken()","56e523e2":"OpenSourceChainToken(address)","56e52cbb":"getMinWeiForDInit()","56e567e5":"balanceOfa(address)","56e5cf2e":"setBytesArray(bytes32,bytes32[])","56e5e12b":"fundariaPoolAddress()","56e60a31":"TokenExchangeFailed(address,uint256)","56e62326":"createMultiple(uint256[],uint256[],uint256[],address)","56e721b3":"_getRefBonus(uint256)","56e789eb":"checkTotalSold()","56e7bcd1":"putUsername(string)","56e7f6c7":"layerCount()","56e83e81":"randao()","56e8596f":"grantContributorTokens(address)","56e8b3ac":"PabloPlusToken()","56e8efd4":"EventNotarise(address,bytes,bytes)","56e8f53e":"_crownTotalSupply()","56e97617":"bullcrapToken()","56e9ae71":"OCTCOIN()","56e9d1f3":"deList(bytes32)","56e9ec88":"equipmentItem(uint256[],uint256[],uint256)","56eaf1c0":"commissionPoints()","56eb5a79":"Bags()","56ebb303":"rewardContributors(address[],uint256[])","56ebd52d":"STRAAToken()","56ed8636":"membershipStatus(address)","56eeb3b0":"startAtBlockNumber()","56ef9296":"getMultiRequestFirstRequestId(uint256)","56f10988":"GDCNumber4()","56f1594e":"UpdateMoneyAt(address)","56f19703":"rejectedBookingfc(uint256)","56f1d2dc":"increaseSystemCreatedCount()","56f1dd6b":"ifoodDev()","56f2b308":"GDCNumber2()","56f2eb90":"pendingRewardsToMint()","56f2fc89":"deployIdeas(address)","56f399a7":"getContractInvoices(uint256,uint8)","56f43352":"tradingFee()","56f464ea":"releaseFundsWhenBothSigned()","56f50473":"downPayment()","56f66f4c":"reportResult(uint32[],int8[],uint32,uint32,uint32,uint32,bytes32)","56f6e184":"addToWhitelist(uint8,address)","56f7cafe":"registry_exec_id()","56f91399":"trCut()","56f99fcb":"freezeLottery(uint32,bool)","56fa47f0":"split(address)","56fa9f6b":"allowRating(address,address,uint256)","56fadf8e":"createItem(string,uint256,uint256,address,uint256[6])","56fb46d7":"COOPERATE_REWARD()","56fb8a34":"getPivot(uint256,uint256,uint256)","56fbd029":"Saflok(bytes32,bytes32,bytes32,bytes32)","56fbdca3":"whitelistInvestor(uint256)","56fbf488":"setPrix(uint256,uint256)","56fc35d3":"BunzolaToken()","56fc6dae":"getUpline()","56fcb29f":"selfPayout()","56ff2318":"usersWithdrew(address)","56ff55d1":"_isSchemeRegistered(address,address)","56ff83c8":"crowdsaleWallet()","56ff918d":"getNextKillingAfter()","57006864":"checkBetParity(uint8)","5700cb10":"getMainRemainCoins()","57014fee":"domainOwner(string,string)","57016ded":"transfer_to_reserves(address,uint256,uint256)","57019b37":"setControllerAddress(address,address)","5701ac59":"calculateReferralFee(uint256,uint256)","5701e9c0":"TrustlessTransaction_Refunded(uint256,uint256)","570200c0":"setStarterPack(uint256,uint16)","5702b530":"byteToString(bytes1)","57035b60":"SWIZERStandardToken(uint256,string,uint8,string)","570468f0":"SupportRemoved(address)","5704b927":"ASXC(uint256,string,string)","57056261":"insert(uint256,bytes32[])","5705b612":"getUserId(address,address)","5706d99a":"STAGES()","5707812e":"addToLists(address,bool,bool,bool,bool)","5709013e":"changeToStage(uint8)","570919a6":"retrunError()","5709d7bd":"DevPromotionsMarketingWallet()","570a2a16":"right53(uint256)","570a8496":"uploadData(bytes32[])","570b615a":"tournamentDataIPFSHash()","570bc25f":"makeOrder(address,address[5],uint256[8],bytes32,uint8,bytes32,bytes32)","570ca735":"operator()","570d2f8f":"trustedWallet()","570d31b7":"ConsultaRegistro(bytes32)","570e0db5":"addDestination(bytes32)","570e6729":"getOptionHash(address[3],uint256[3])","570e997d":"gettnode(address)","570f65c4":"getProjectArbitrationFees(bytes32)","570fceb0":"updateHashrate(address,uint256)","570fe8c3":"cancel_payment(uint256)","571080ae":"getMyLobster()","5710ac73":"unlock(address,address[],uint256[])","5710de14":"newProof()","5710ed95":"contractBlock()","5711b311":"executeRemoveAuthorizedAddress(uint256)","571218fa":"priceModel()","57128ec1":"userGrowPoolAddress()","57135859":"BBBToken(uint256,string,string)","57138106":"verifyKyc(address)","5713fcb7":"compatible20()","5714db23":"AdvisoryPool(address,address)","5714e01f":"ownsAddress(string,address,address)","5714f6a1":"getTotalAvailableRelays()","57157189":"getListMarkets(address,uint256)","5715b530":"claimReservedTokens(string,address,uint256,string)","5715c5b7":"getTokenAddressByIndex(uint256)","57163cc3":"initAtx(address,address,address,uint256)","57183698":"addProject(uint256)","57183c82":"instantiations(address,uint256)","5718b760":"withdrawSize(address)","5718b994":"checkEvent(address,bytes,bytes,uint256)","571959e0":"getServiceProvider()","57199334":"insertUser(address,bytes32,bytes32,bytes32,uint256)","5719a565":"SignerChanged(address)","5719dd22":"getTokenListLength()","571a045d":"change_game_stic(string)","571a0830":"withdrawAndKill()","571a1f66":"erc165UpdateCache(address,bytes4)","571a26a0":"auctions(uint256)","571af13b":"unlock10PercentTokensInBatch()","571b0227":"createUserLottery(uint32,uint32)","571b3d52":"createCitizen(address,uint16,uint16,uint8,bytes32,bytes32,bytes32)","571c4539":"askQuestion(address,uint256,string,address[])","571e4a6d":"addEngineer(address,uint256,uint256)","571ec8d9":"addBoardScore(bytes32,bytes32,uint256)","571fe016":"MAX_SALE_SUPPLY()","57204a1d":"unlockat()","57207703":"initBank(uint256)","5720988b":"QLANCE()","57211ac0":"getPaidOut(address)","5721b89a":"withdrawNoMoney(bytes32,address)","5721e419":"getBuyer(address)","5722e24a":"setLogger(address)","57230ff8":"createCity(uint256)","57240913":"vouched(bytes32,uint256)","57241f8e":"tokensOnSale()","5724630c":"Disbursed(address,uint256)","57246c1c":"getPartnerCash(uint8,bool)","57246d23":"jackpotSize()","57257a67":"startPrivateSales()","5725b8c5":"_initRandom()","57263ce1":"_isProviderValid(uint256)","57266803":"casinoWithdraw(uint256)","57271a93":"bountyP()","57277b92":"storeEth()","5727dc5c":"BB()","5727e25d":"getCurrentRoundId()","5727e30b":"makeOraclizeQuery(uint256,string,string,uint256)","5727eec0":"speed_limit()","572816ef":"audit(uint8,uint8,uint256)","57282b96":"bobMakesErc20Deposit(bytes32,uint256,address,bytes20,bytes20,address,uint64)","57292af8":"bonusRateOneEth()","572b130f":"addItem(uint256,uint256,uint256,uint256)","572b7a03":"minimumFeePlusDividendsPercentage()","572bcb3e":"setLockByPass(address[],bool)","572bcfe1":"deliverRewardedTokens(address,uint256,string)","572c1517":"transfer(uint256,string,bytes)","572c62ca":"poolSale()","572d5298":"setProduct(string)","572e85ec":"getCurrentPhase(uint256)","572f37b4":"notePrepurchase(address,uint256,uint256)","5731d433":"balanceInLottery(uint32,address)","5731d9cb":"seriesInfo(bytes32)","5731d9e3":"onefive()","5731f357":"oraclize_query(uint256,string,string,string)","5732788a":"validateCompanyName(bytes32)","57329424":"getPorscheByOwner(address)","5732a273":"backup_drawdown_amount(uint256)","573328ef":"advertising()","57332f08":"Lexcoin()","57344e6f":"getCredit(address)","57347f24":"playerWithDraw(uint256)","573618f3":"eXchangeQualityCoin()","5736c9d4":"getStageBuyers(uint8,uint16,uint8)","57381228":"betInStageAndReturnExcess(uint256,uint256)","57381ee4":"sendTokens(address,uint256,uint256,bytes32)","57386c2a":"smallId()","5738fa56":"hasDataStream(bytes32)","57393674":"exhaustFusion(uint256)","573939de":"_resetFrozenInfo(address)","573c0bd3":"updateValue(uint256)","573d2411":"VeraCoinPreSale(uint256,uint256,address,address,uint256,uint256,uint256,uint256)","573d3a23":"makeTransfer(uint256,uint256,uint256,bytes32)","573d559f":"_handleCoolDown(uint256)","573d72b7":"PERIOD_AFTERSALE_NOT_TRANSFERABLE_IN_SEC()","573dea96":"toWei()","573f642d":"_productDigest()","573f7af5":"mintNFTsForSale(uint256[],bytes32[],uint256[])","57400cf3":"currentJackPot()","57405301":"creatorad()","57408a98":"getNode(int256)","5740a4be":"CertifyDelegate(address,uint256)","5740d43c":"setDeprecated(address,bool)","57417e78":"insetMoney()","5741fbce":"isPresellOpen()","574356b4":"VULCAN_PROMETHEUS()","5743cee0":"BwwToken()","57446636":"createContractOfAthlete(string,address,uint256,uint256,uint256)","574479e6":"currentPot()","574490cd":"ERC721Address()","57451104":"bonus_for_add_stage()","57478e38":"Free_Ether_A_Day_Funds_Return()","5747baf5":"Roles()","574844f4":"BLMFund()","574a5e31":"weiPerAtom()","574a89e9":"GOOGLE()","574bea92":"bonusPhaseOneDeadline()","574c339a":"HackerSpaceBarneysToken()","574c8776":"addAddressesToRole(address[],string)","574cc0fe":"addManyToWhitelist(address[],uint16,uint256)","574d6554":"setIPFSHash(string,string)","574e9063":"crowdfundPercentOfTokens()","574edd28":"updatePropertyData(uint256,string)","574f9a81":"setAttr0(uint256)","5750644a":"setProviderParameter(bytes32,bytes)","5750abfa":"BONUS_TIMES(uint256)","5750daa0":"GameToken()","57518243":"addToWhitelist(address,address)","575185ed":"createGroup()","5751892f":"increaseProjectCompleteLevel()","57530017":"setReservedTokensWallet(address)","57536e64":"GuessTheRandomNumberChallenge()","5753a6b2":"construct(bytes32,string,bytes32,address,uint128,uint256,uint64,uint64,uint256)","57548f32":"_tokenPurchased(address,address,uint256)","5754a042":"attempts()","5754aadc":"getEntryByName(bytes32)","57553101":"updateDetails(string,string,string)","5756572e":"Show_the_name_of_Option_B()","5757a66a":"_deployBallotChecks(bytes32,uint64)","5757dcdf":"getCooldownIndexFromGeneration(uint16)","5758537b":"payBonusAffiliate(address,uint256)","57593c23":"TokensDelegated(address,uint256,address)","57595e2a":"get_previous_global_audit_document(bytes32)","57597321":"_findpos(uint256,uint256)","57599dff":"curatorAddressOf(uint256)","575a4187":"getClaimableStake()","575a7722":"setPOOL_edit_29(string)","575ab848":"MatCashToken()","575b4071":"currentPeriodEndTimestamp()","575b6efe":"EARLY_INVESTORS_SUPPLY_LIMIT()","575b8cc8":"kcck256str(string)","575cb0f6":"block()","575cea6b":"getUserReferrals(address)","575d462a":"phase1EndBlock()","575dfc4a":"Sale(uint256,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,string,string,uint8)","575eaf98":"fractionalize(address)","575ed3de":"ViewGold()","575f7832":"InterestFinal(address,address)","5760168b":"ElearningCoin(uint256,string,uint8,string)","576077e2":"realtransfer(address[],uint256[])","57607ddd":"PUBLIC_SALE_END()","57611ba3":"offerCollectibleForSaleToAddress(uint256,uint256,uint256,address)","57614c2a":"resetLockReleaseTime(address,uint256)","576168fc":"partnerAddress()","57623d59":"AttachAsset(uint256)","5762a880":"standFeeBefore500()","5762f25f":"test_1_validShouldBe5()","57635dc1":"validate(address[5],address,uint256[12],uint256,bytes,uint256)","5763e103":"powercontract()","57646d5d":"OkkamiToken()","57650592":"getPlayerBackDataForMarketPlaceCards(uint256)","57651be6":"replaceUser(address)","57652f13":"assingAdminship(address,uint8)","5765a796":"addRegistered(address)","5765cc2a":"setmessiDevAddress(address)","5765dd1a":"MTC(address,address,address,address,address,address,address)","57670366":"getTargetReportsPerReporter()","576709a2":"finishingWithdrawing()","5767b9ab":"retrieveV(uint256)","5768bc4a":"_createArmy(string,string,uint256,uint256,uint256)","5768fca3":"paymentDestination()","57693e9a":"NBB()","576b8bba":"SeedMemberCanDraw()","576bc138":"NKCToken()","576c3de7":"getTier(uint16)","576c51bc":"countOfPublicKey()","576cecdc":"checkStubs(bytes32,bytes32,address)","576cfdd7":"window2EndTime()","576d067b":"StageOneDisable()","576d1ce1":"internalVerifyCert(bytes32,bytes32,address)","576d4e13":"_createLinglongCat(uint256,uint256,uint256,uint256,address)","576e6d4e":"_buyXaddr(address,uint256,bytes32)","576eac66":"setFundingGoal(uint256)","576f35e3":"setBatchSize(uint256)","576f7e31":"getApprovedBuyerMappingCount(address)","576f9cba":"isInDirectory(address)","577000a3":"onlyPartnersOrAdmin(address)","57712f37":"CappedBurnToken(uint256)","577131ac":"bankrupt(address[])","57717090":"transferWinnings(uint256,address)","5771d6e4":"readMessage(string)","57727a04":"ZZCoinToken()","5772ae70":"setLoanManager(address)","5773faf9":"modifyVariable(address,uint256,uint256,uint256,uint256)","5774ce4d":"sendBonus(address,address,uint256)","5775b57e":"totalBuyOrdersOf(address)","57764094":"getRate(uint256)","57771a23":"del(uint256)","5778472a":"getOrder(bytes32)","57786394":"feeMake()","57788716":"doKeccak256(uint256)","577890f6":"presaleFallBackCalled()","5778bec2":"Deal()","57796e1c":"setVote(uint256,uint256)","577a75a0":"CRAWDSALE_END_DAY()","577bd336":"progress()","577c78f1":"SitcomToken()","577ccfe0":"tokenFrozenUntilNotice()","577ec5ae":"cookieProductionMultiplier()","577ef53d":"SetA(uint256)","577f7133":"PHOENIX_CORSAIR()","57806705":"addpatient(uint256,uint256,string)","5781d9e7":"isRegisteredRetailer(address,address)","57820829":"UP_etherWin()","578242c3":"CompositeCoinCrowdsale(uint256)","57831809":"payoutCount()","57835720":"setSetupCompleted()","578436a7":"CoinDisplayNetwork()","57850fc7":"getPotentialAmount(address)","578551aa":"goods(uint32)","5785b3f9":"VIRALTOKEN()","57861e65":"VVDBCrowdsale(address,address)","5786a552":"registerEmployee(address)","5786cbdc":"sendBackSurplusEth()","5786f28c":"regionsIsPurchased(uint256)","5786fd40":"getProductsCount()","57875631":"setAccessPolicy(address,address)","578799b3":"QRTok()","57880042":"bulkPurchageEgg()","57880c04":"releaseForce(address,uint256[],uint256[])","57885380":"ChannelAudited(uint256)","5788a081":"ownerAddressMap(address)","57894c1b":"createClone(address)","57895ca2":"setManagerContract(address)","5789a722":"LocusToken()","5789b1cd":"transferAdminMessage(address,address)","5789baa5":"isUnlockedBoth(address)","578a791d":"setExchangeFeeRate(uint256)","578aa665":"_createToken(string,address,uint256)","578affb4":"Logger(string,bool)","578b08e2":"GPUxToken()","578b2dab":"euroTeams(uint256)","578b3a56":"normaliseCardIndices(uint256[])","578bbdc1":"isSaleContract(address)","578bcc20":"reduceDebt(address,address,uint256)","578bcf35":"distributed(address)","578bcfca":"AddedToHolder(address,uint256,uint8,uint256)","578c3485":"iWantToKillMyself()","578c6642":"BONUS_BATCH()","578cf4a9":"testTemp1()","578d52b6":"GetDidPayOut(bytes32)","578de482":"OCE()","578de8aa":"addressToAsciiString(address,address)","578e2f7d":"verifiPost(uint256,bool)","578e9825":"burnEscrow(uint256)","578ee866":"getCurrentTimeBonusRate()","578f9658":"shopTome()","578ff67a":"new_hash(bytes32)","57901b19":"genRandomArray(uint256,uint256,uint256)","57902a75":"rateTier2()","579078cf":"TestAnyChain()","5790de2c":"ProposalAdded(uint256,address,uint256,bool,string)","579140e8":"BITSEACoinERC20Token(uint256,string,string,uint256)","579140f4":"tokenInitialized()","57915897":"faucet(uint256)","57918052":"setPriceIncreasingRatio(uint16)","5792b512":"Bettereum()","5792e1de":"CheckCarToken()","5792e262":"registration_fee()","579327fd":"TOTAL_ETHER_HARD_CAP()","5793511f":"playersList()","57938b2a":"requestCancellationMinimumTime()","5793bfdc":"createSDC(address,address,uint256,uint256)","579424e7":"HOWLToken()","579425b7":"feeBurnerContract()","57945e3e":"anyAssetHasChanges()","57945ed1":"FindMyFish_EnterBarcode(bytes9)","57946897":"Test11()","57946a86":"SPEKToken()","57950697":"testState()","57955f3b":"ExampleIntervalTree()","579599bd":"canCreateEdition(uint256,uint8)","57978a75":"updateInviteInfo(address,uint8)","5797cd52":"Settle(uint32,uint32)","57987d38":"PSCN()","57988a55":"card_gold_first()","57989b4c":"IsCityNameExist(bytes32)","5798d5bc":"rSetA(address)","579952fc":"transferFromTo(address,address,uint256)","579b9499":"estimatePurchasePayment(uint256,uint256)","579badf6":"UniversalFunction(uint8,bytes32,bytes32,bytes32,bytes32,bytes32)","579cd3ca":"conversionFee()","579cdf17":"getAdminName(address)","579d4f7a":"changeHouseFeePercent(uint256)","579d5fba":"debug_hash3Int(uint256)","579da090":"needUpdate()","579db769":"getIudex(address)","579e0b87":"assignAnotherOwner2(address)","579f0789":"BNN_ALLOCATION()","579f20d8":"submitProxyVote(bytes32[5],bytes)","579f61d8":"valueDelete(string)","579fc25e":"contractFallback(address,uint256,bytes)","579fe761":"vote(uint80,uint80)","579fea7d":"setDolRate(uint256)","57a0685b":"privateSaleMinEth()","57a15c4f":"createOffspring(address,string,uint256,uint256)","57a1a58e":"setCycleResetTime(uint256)","57a218e6":"WeSource(bytes32)","57a27a76":"checkCompletedCrowdsale()","57a2e60c":"VoiceCoin()","57a373a1":"uintInArray(uint256,uint256,int256,uint256[],uint256)","57a533e9":"logPromiseCreated(uint256,address,uint256,uint256)","57a756d3":"walletC()","57a83f25":"TKRToken()","57a858fc":"shares(uint256)","57a8c01f":"registerUser(address,uint256,uint256,uint256,uint256)","57a967ca":"waitingForClaimTokens()","57a96dd0":"proxyTransferWithReference(address,uint256,bytes32,string,address)","57a9838a":"Tronerium()","57aaafe2":"toggleArtworkVisibility(uint256)","57aaf08b":"getAlgosByCreator(address)","57abd75d":"_weiToMth(uint256)","57acc118":"setForward(address)","57ad693b":"MIN_UPDATE(bytes32,uint256)","57adc83a":"angelTime()","57aeb5c8":"convertToMiniCFT(uint256)","57aee888":"_eraseNodeHierarchy(uint256,bytes32[],bytes32)","57aeeb25":"becomeSquirrelmaster()","57af3eec":"STARTING_HIPSTER()","57afb890":"collectRemaining()","57b001f9":"unpause(address)","57b07cd9":"getReleaseHash(uint256)","57b16811":"totalsInfo()","57b34be7":"_moveStage()","57b394bf":"walletWithdrawal(address,uint256,uint256)","57b45386":"removeCode(string)","57b473e2":"okamiMinPurchase_()","57b543e2":"getOwnersLength()","57b69e72":"_kittenContract()","57b70510":"parseResult(bytes)","57b7247e":"UserWallet(address,address)","57b7a0b6":"Paye()","57b8e8c3":"devcon2Token()","57ba8652":"getRank02()","57babe2e":"collectedBcy()","57bbf921":"salesaccount()","57bcccb6":"revokePermanentApproval(address)","57bce8b0":"sendWei()","57bcfc09":"HomeChain()","57bd2a65":"allocated3Year()","57bd4f7b":"getTime1(address)","57bf04be":"changeOwnedOwnershipto(address)","57bf66d4":"accountForIncrease(uint256,uint256)","57bfab93":"getAllABaddress()","57c07055":"scheduleCall(address,address,bytes4,bytes32,uint256,uint8,uint256)","57c19b4f":"postFreezeDestination()","57c1a709":"travelUnitFee()","57c1f9e2":"removeDistributor(address)","57c1feca":"BonusChanged(uint256,uint256,uint8)","57c393fa":"transferSuperuser(address)","57c3b376":"updateRandContract(address)","57c3f997":"isReserved(address)","57c508d3":"IsThisExternal()","57c60982":"calcProfit(address)","57c67ad1":"RobotTradingIco()","57c6c642":"MultiTranser()","57c85787":"batchMint(address[],uint256[],uint128[])","57c8b724":"addPresetTransfer(address,uint256)","57ca94fa":"_addUser(address)","57cb2fc4":"getInt8()","57cb48c9":"issuerTokenName()","57cb4947":"mintRequest(address,uint256,uint256)","57cc2d52":"testStoresParentChallenge()","57cc5941":"getTileClaimerAndBlockValue(uint16)","57ccbe28":"isPreICOPrivateOpened()","57ccc80e":"putSmartContractOnSale(bool)","57cd23a6":"TeamLockingPeriod24Months()","57cd650d":"sealDataStream(address,address,uint256,bytes32,uint256,bytes32)","57cdd078":"isIcoInProgress()","57cdf799":"createContractItem(string,bytes32)","57ce0ec0":"MIN_PRE_ICO_SLOGN_COLLECTED()","57cea5c0":"weaponTokenIdToDamageForEncounter(uint256,uint256)","57cf9add":"showOwnerContract()","57cfd296":"getFurnace(address)","57cfeeee":"transfer(address,uint256,bytes32)","57cff409":"tpt()","57cff437":"getKunsByOwner(address)","57d0354b":"NothingToCancel(address)","57d083b5":"_evaluateSkill(address,uint8,uint256,uint256,uint256)","57d13917":"getCompany(uint256)","57d15c6a":"_time()","57d17805":"getTokensSold(uint256)","57d1c582":"TokenData(address,uint256,address)","57d25a0f":"retrieveAssets(address)","57d4021b":"nextPayoutWhenPyramidBalanceTotalsApproximately()","57d444fd":"detachController()","57d4617b":"getAllocatedTokenAddress(address,address,uint256)","57d4f398":"unfreezeBalance(address)","57d55116":"_safeApprove(address,uint256)","57d55367":"publishResult(uint32,string)","57d56267":"getModuleCount()","57d5927f":"LogOraclizeCall(uint256,bytes32,string,uint256)","57d5939c":"IsValidated(string)","57d61f3c":"TokensSold(address,uint256)","57d62a30":"accountFeeModifiers(address)","57d6f5f2":"canLogIn(address)","57d70c0b":"getIcoRuleList()","57d713d5":"getPendingUserCount()","57d775f8":"epochLength()","57d786da":"_checkPolicyEnabled(uint8)","57d93329":"endCrowdsalePhase3Date()","57d9fd41":"orderLastDate()","57da1fb2":"isMonsterChampionship()","57da9166":"Dodol()","57db8024":"adminDeposit(address)","57dbefdd":"addExcluded(address,address)","57dc2658":"setLastCrowdsale(address)","57dc561f":"assignTokenIJK(address,uint256)","57dc5d9d":"adminer()","57dc9760":"DaoChallenge()","57dd2f26":"AntriexToken(uint256,string,string)","57dd8366":"jackpotGuaranteed()","57ddf217":"gameoverGetYUM(uint256)","57de26a4":"read()","57df844b":"getTokenTotalSupply()","57e07140":"testTransferFromCorrectlyAllowsDelegationOfTokenOwnership()","57e0b222":"ERC20Store(address)","57e18886":"reserveTokens(address,uint256,uint256,uint256)","57e1fae2":"transferChild(address,address,uint256)","57e233e2":"hardcapUSD()","57e25a79":"PullPaymentCapable()","57e2880d":"scheduleTransaction(uint256,uint256)","57e49ca8":"safeTransferChild(address,address,uint256)","57e4e95d":"burnerChangeable()","57e53d4e":"currentStageETHContributions()","57e5be05":"current_mul()","57e5eea5":"getCurrentBonus()","57e60c27":"removeAccountReader(address)","57e6a64c":"AddrRewardPlan()","57e6a6af":"METS6()","57e6c2f4":"isAuthorized()","57e71cd7":"setPreIcoHardCap(uint256)","57e7afd0":"addIPFSFile(string,uint256,string,bytes32,uint256)","57e871e7":"blockNumber()","57e8f401":"getUserLandLimit(address)","57e984cf":"changeMonthlyRate(bytes32,uint256)","57ea563a":"tokensByLtcTx(string)","57ea89b6":"Withdraw()","57eabab4":"defaultMintingAddress()","57eaeddf":"_isContract()","57eb3431":"recordPresalePurchase(address,uint256)","57eb95a7":"trainSpecial(uint256,uint256,uint256[2])","57ebc286":"approve_fixed(address,uint256,uint256)","57ebc7a8":"logLargeContribution(address,address,uint256)","57ee24af":"getNum(bytes32,uint256)","57ef58c1":"canDefrostAdvisors()","57f011b6":"destTokensEarlyInvestors()","57f032e7":"changeAgent(address)","57f04d2b":"updateLedger(uint256,address[],address,uint256[],uint256[])","57f1935f":"refundTokens(address,address)","57f196fa":"lastBidID()","57f1f6ca":"rareStartPrice(uint256)","57f232e1":"buyFucks()","57f2c6b7":"withdrawOfferForCollectible(uint256,uint256,int256)","57f2d763":"LongTerm()","57f32591":"changePriceChangeName(uint256)","57f46cbe":"collect(uint256[])","57f47bf9":"sh_doAgree()","57f4d5ec":"processDividends(address,uint256)","57f5abe5":"setERC20TotalPromo(uint256,uint256)","57f6280e":"FundManager()","57f65e24":"setArray(bytes32,string[])","57f664ed":"TOKENS_ALLOCATED_TO_PROOF()","57f70b21":"WorldToken(uint256,string,uint8,string)","57f7b905":"balanceBonusOf(address)","57f86b6a":"theRiver()","57f91458":"sacredToken()","57f94c82":"airDropTokenIssuedTotal()","57fa7044":"_changeCycleValue(uint256,uint256)","57faa161":"TokenBonusGiven(address,uint256)","57fbac06":"setAllowTransferExternal(bool)","57fbb9df":"withdrawContractBalance(address)","57fc3991":"returnTokens(address,address,uint256)","57fc8a20":"custom(address,bytes)","57fc990f":"_createAuction(uint256,uint256,uint256,uint256,address)","57fdf2b2":"transferrableBalance(address,uint256)","57fe5a5f":"FREEREWARDPPOINT()","57ffd7cc":"createNewContract(uint256,address,address,address)","57ffd863":"deleteHiddenPosition(bytes32)","5800827c":"mintExtraTokens(int256,uint256)","580101c8":"startingSnailAmount()","580215fc":"transferFinal()","580225d5":"HomeBridge(uint256,address[])","58022de4":"recoverSigner(bytes32,bytes32,bytes32,uint8)","58022e3f":"AkbulutTokenICO()","5802c695":"setPendingValue(uint256,bool)","5802f02d":"SavingsAccount()","58047913":"getWrappedContract()","58056392":"setLockBalance(address)","58057468":"confirmTransferOwner()","58057d81":"transferDomainToBuyer(uint64)","58058304":"clearFund(uint256)","580588a1":"havedAirDrop()","58062e66":"VIRTVEN()","5806ba15":"InbotToken(string,string,uint8)","580709cb":"downTheDrainImmediate()","58074d8b":"keyIndex()","5807630f":"transferEthToOnwer()","5807703d":"getMainGasPrice(bytes)","580786cf":"getRoundOpen(uint256)","58078a5a":"_checkAndAdd(bytes32,bytes32)","58079e7b":"setStartOfPresale(uint256)","580822da":"CoinLordToken(address)","5808e1c2":"betOnNumber(uint256)","5808ee15":"setDefroster(address)","5809ea99":"hitPrice()","580b72e1":"approveTokens(address,uint256,uint256)","580bd977":"distributeFunds(uint8)","580bdf3c":"disableBetting_only_Dev()","580c0fd8":"COMIKETCOIN()","580c2ae9":"numberOfPurchasers()","580c5072":"IsPremature(uint256)","580cf318":"tokenRemainCap()","580e77d4":"startMainSale()","580ea491":"PatronageRegistry(address)","580efd6b":"totalWageredForAddress(address,address)","580f2427":"LeeSungCoin()","580f3904":"requestTokens(address)","581191f7":"DNATIXToken()","5812f78a":"A2UToken()","58144fbd":"covmanAddress()","58150c8b":"GameRegistry()","581515fd":"howManyEtherInWeiToBecomeOwner()","5815528c":"setInviterEdge(uint256)","581627bc":"ownerWithdrawl(uint256)","58163c23":"calcBonus(uint256,bool)","5816ba9d":"unFrozen(address)","58172da1":"payBankroll()","581732dc":"setLev1(uint256)","5817465c":"RidgeToken()","58178168":"punkIndexToAddress(uint256)","581847d6":"changeDeveloperSFTDestinationAddress(address)","58189259":"CerradoToken()","5819dde2":"getNumbersFromBytes(bytes3)","581a3aea":"ActiveSCO(bool,uint256)","581a81c1":"setMinHouse(uint256)","581aa8a3":"SRVSKCOIN()","581bdd23":"createCampaignAndChannels(address,uint256,string,address[],address[],address[],uint256[],address,string,bytes,uint32[])","581c1f47":"isFreeze(address,uint256)","581c281c":"getVotingStatus()","581c5ae6":"invest(address,uint8)","581c71d0":"ifClaimedNowPublic()","581ca8bb":"adjustCash(address,int160,string)","581d1015":"publicsalesTokenPriceInWei()","581d1d04":"devTokensIco3()","581d416a":"Paid(uint256)","581e69de":"pauseRoundD()","581f1125":"returnUnsoldSafeSmall()","581f3c50":"createAndOpen(address,address)","581fc2ad":"getNextReleaseTimeOf(address,address)","581ff6e2":"VerifyPublishedResults(uint16)","5820c9ae":"round4()","5820dce5":"abbuchen(uint256)","5821c831":"AcceleratorStart()","58226a76":"isInTime()","58229d91":"MasToken()","58240d5f":"listPrycto4()","582420bb":"calculateMatchPrice_(address[14],uint256[14],uint8[6],bytes,bytes,bytes,bytes,bytes,bytes)","582518ac":"updateclaimableTokens(address,uint16)","582527f8":"setNewData(uint256)","5825884f":"setOwner2(address)","5826344b":"frozenAccount()","582681d2":"compareDateTimesForContract(uint256,uint256)","582747ba":"PLCCToken()","58275869":"ETHReceived()","5827834a":"DecenturionToken(uint256)","5827b250":"completeInitialization()","5827c0c8":"SSE()","5828fa47":"ThawTokenTransfers(address,bool)","58292a3d":"emission(uint256)","58294575":"updateComplianceAddress(address)","5829d310":"entries(int256)","582a466a":"burnGasAndFree(address,uint256,address,address[],bytes)","582a5c83":"HWGCToken()","582ab0b4":"setup(uint256,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","582b4019":"updateCheckHourly(bool)","582b6add":"isDataSourceCallback()","582b6fe4":"crowdsaleUncappedTime()","582bd287":"snapshotDelegators(uint256,address)","582ca57b":"get_associations()","582cca06":"SafeCoin()","582d14f8":"updateHpbNodeWithString(address,string,string)","582d2d32":"removeFreeRoom()","582d6033":"listDda(address,uint256,uint256)","582d9008":"willyWantTalkToken()","582ee26e":"PendingFees(address)","582f5009":"calculateBonusToken(uint256)","58306772":"getAmountOfEtherSell(uint256)","5830da9c":"Escrow(address,uint256,uint256,bool,address)","5830f2ea":"subPrivateSale(uint256)","58317685":"getBuy(uint256,address,address)","5831e95d":"_burn(address,address,uint256,bytes,bytes)","58339a40":"CryptoScalper()","58341922":"totalSupplyLocked()","5835ac93":"extract(uint256,uint256,uint256)","5836746d":"deployStep()","58371ccd":"endSaleTime()","5837bb11":"ALLOC_FOUNDER()","5837e083":"move_history(uint256)","58392aaa":"setSibling(address)","583ae991":"BitCharityToken()","583b4715":"createTitty(uint256,string,uint256,address,string)","583ba757":"getrestrictTime(address)","583be14e":"isCampaignRegistered(uint256)","583c4be9":"PurchaseUnlocked()","583d175f":"clientClaim(address,uint64)","583d5435":"queryTokensOf(address)","583dbacc":"specialKitties(uint256)","583dbc09":"updateBonuses(address,bool)","583ed080":"End7()","583f0ae6":"purchaseMembership(address,address)","583f18ff":"totalRemainingTokens()","583fe287":"ReussitexCoin()","584084d9":"_setString(bytes32,string)","5840b0f8":"getPixelData(uint256)","5840f4ec":"applyRate(uint256,uint256)","58410259":"onBuy(bytes32,uint256,address,uint256,uint256,address,uint256,uint256,address,address,uint256,uint256)","58413194":"lmda()","5841b9bf":"kingCost()","58428322":"grantAccessDeploy(address)","58439b9f":"EtheraffleLOTPromo(address,address)","5843b811":"_setPendingUpgradeabilityOwner(address)","58441a58":"minimumBid(string)","58451f97":"totalAccounts()","58453569":"initializeSpendLimit(uint256)","58453fef":"updateBalance(uint256,uint256)","5845d13c":"NamdoToken()","58462b36":"contBuy(address,uint256)","58463e11":"FeedBackedCall()","58469cd1":"generateStakeForDelegationSchemaHash(address,uint256,bytes32,bytes32,uint256[],bytes32,uint256)","58476a7a":"mintForSale(address,uint256)","58480d41":"setVotesPerProposal(uint256)","584855f0":"shopShoes()","58487bee":"request(uint8,address,bytes4,uint256,bytes32[])","5848a7fa":"getOwnerPotatoes(address)","58491ad9":"ICNQCrowdsale(uint256,uint256,uint256,address,uint256,address)","58491ecb":"companyPeriodsElapsed()","5849cf77":"registerDINWithResolver(address,address)","5849f66b":"claim_ico()","584af2c3":"approveOwnerTransfer(bytes32)","584df977":"LimitPerUserEBC()","584e492a":"arr(address,uint256)","584e86ad":"suggestUrl(bytes32,bytes32)","584ed064":"getBattleCardList(address)","5851166c":"endOfRound()","58516661":"agents()","5851bc4f":"FJH()","5851f1e2":"trexdevshop()","58525fda":"tokenAllocation()","5852f5c1":"buildingToUnits(uint256,uint256)","58541aba":"jackpotLastPayout()","58543fbd":"getRoomIdxByNameElseLargest(string)","5855279e":"whitelistAccounts(address[])","5855da3d":"extractAddress(bytes,uint256)","5856db43":"isIcoClosed()","585789cd":"startPreDistribution(uint256,uint256,address,address,address)","5857b86f":"getAuctionByAuctionId(uint64)","5858e7d0":"bigBearCoin()","5858ef10":"testErrorNonOwnerCantBreach()","58593578":"toss(bool)","585a8aba":"getCredit(address,address)","585a9385":"icoProceeding()","585ac3e8":"icoEnded()","585b0f05":"BitcoinMax()","585b143a":"getVariableReleasableAmount(address)","585b7752":"setOraclizeString(string,string,string,string)","585bc25b":"weiRaisedDuringRound(uint8)","585bc523":"cooAddManager(address)","585bf3e4":"totalLux()","585c6fc9":"EtherHealth()","585ce259":"VitToken()","585d2133":"newDeliverable(uint256)","585da351":"setUnitAttackMultiplier(address,address,uint256,uint256,bool)","585e1af6":"hard_cap()","585eb90c":"withDrawAmount(uint256)","585f9b7a":"addVoteOption(uint256,string)","58613568":"estimateNeumarkReward(uint256)","58619076":"OwnerRemoved(address)","58620daf":"RegistryAddress()","58623642":"minStartDelay()","5862fd31":"ethCrowdsale()","5863115e":"parseId(uint256)","586360ce":"distributedTokens()","5864c56c":"numberOfSuccessfulPings()","5865c60c":"getOperator(address)","58669d6d":"updateMinimal(uint256)","586a2d02":"Anastomos()","586a2d79":"_decreaseBalance(address,uint256)","586a4be5":"Bitsurge()","586a52e0":"GenerationSupply()","586a69fa":"getMaximumStackCheck()","586a94ba":"MassivelyMultiplayerOnlineGameToken()","586ab7a9":"MYSYMBOL()","586ac27d":"ProofOfPassiveDividends()","586b1c8f":"DetherCore()","586ccfa7":"deathData_f11()","586cf767":"MintedEthCappedCrowdsale(address,address,uint256,uint256,uint256,uint256)","586cf845":"setTierEndTime()","586dd1d5":"CCXTokenERC20()","586e416e":"updateMaxWei(uint256)","586e8283":"deliveredEth()","586facb4":"adminSetMarket(address,uint8,uint256)","586fc5b5":"lastMint()","58708479":"setWinningChance(uint256)","587097ab":"test_FiftySixPercent()","58712633":"GetCommission()","587181d1":"getVaultLock(address)","5872282d":"icoReferralBonusInPercentage()","5872fe45":"getAccountAddress(address)","5873533d":"playGame(uint256)","587378a4":"updateQualifiedPartnerCapAmount(address,uint256)","5873cbe6":"setFile(string,string,uint256,address)","587419d5":"depositStartTime()","58750784":"getUniqueKey(string,string,uint32)","5875caaf":"objectKnife()","587631eb":"PlayX5()","587695cd":"tokenGiveAway()","58769981":"transferAdminship1(address)","5876d2ef":"rwGas()","58793050":"Setup()","58793ad4":"submitHKGProposal(uint256,string)","5879f7ad":"myDroneList(address,uint256)","587ac47c":"sendFromAdvisorWallet(address,uint256)","587af98d":"GetConfirmRound(bytes32,uint8)","587b060e":"_setUpgradeContract(address,address)","587c2b8e":"setContributionDates(uint64,uint64)","587cde1e":"delegates(address)","587d6a20":"ICOactive()","587f2e50":"putInStud(uint256,uint256,uint256)","587fa8dc":"closeHouse()","587fae93":"release(uint8,address)","58802e24":"BancarCrowdsale()","5880b7da":"CAAction(address)","588100d4":"DIP_TGE()","588198c4":"getBonusByETH(uint256)","5882128d":"tradeActive()","588268a8":"tokensForCreators()","58838594":"anacoContract()","5884afe1":"setBetLimit(uint256,uint256)","5884f2f5":"GeneralUpdate(uint256,uint256,uint256)","5885c626":"allocateTokensToMany(address[],uint256[])","58864d04":"Clost(uint256,string,string,uint256)","588666e2":"updatePriceManualy(uint256)","5886c51e":"setnotice(string,string)","58883688":"setAvailableToken()","58888b40":"_calculateUnlockedTokens(uint256,uint256,uint256,uint8,uint256)","58892f63":"setCrowdsaleStartDate(uint256)","588a9db5":"CoreBuyShare(address,address,uint32,uint256,uint32,address,address)","588b1578":"contractEth()","588b5c7b":"approveExchange(address,address)","588bf28b":"addBonusForOneHolder(address,uint256)","588bf923":"removeEmailHash(uint256)","588c2a6d":"WithdrawReserve(address)","588cbbea":"changeSettings(uint64,uint8,uint8,uint8,uint8)","588cff4c":"emitPublicCapabilityRemoved(address,bytes4)","588d376f":"BoleroToken()","588d6a17":"findSemiRandomWinner(uint16)","588dadc6":"contestChampion(uint256)","588e6b83":"giveTurnToPlay(address)","588e730c":"numOfMythical()","588ec17f":"minContributionInUsdCents()","588ee29b":"debug()","588f27e6":"CloudCredit()","588f7e12":"lotteryRatio()","588f85b3":"IHPM()","588f9acc":"toggle(address)","58902cc6":"sendFromGftWallet(address,uint256)","5891215c":"getAllGas()","58919155":"DOGE()","5891c8aa":"removeExceptAddress(address,address)","58924b81":"getClaim(address,string)","589316f6":"level_2_amount()","58931f7a":"buyWhiteByName(bytes32)","58932f50":"btcTokenBoughtAddress()","58933dbc":"totalTokensRemind()","5893d481":"rndTmEth_(uint256,uint256)","58950108":"BucksCoin()","58958be3":"_getTxDataBlockNumber(address,bytes32)","58963c85":"setBilateral(bytes32,bool,bool)","5896521b":"getCurrentTotalFunders()","5896749a":"getAssetRate(address)","5896f37f":"getDistritos()","5897164a":"ADDR_MAYA_ORG()","589737fb":"getOwnPartnerMessage(uint256)","5897a1c6":"getValueToInvest()","5897a5a0":"setupInitialState()","5897e3e4":"splitTheBet(address)","5898f402":"compaundIntrest(uint256,bytes5,uint256,uint256)","58990372":"changeColorBlue()","589a1743":"creatorOf(uint256)","589b88bd":"pauseRoundC()","589c6beb":"_deleteDefender(uint32,uint8)","589d7a3c":"setupViaAuthority(string,string,string,string,address,uint8,bytes32,bytes32,uint256)","589dca45":"_emitEmission(bytes32,address,uint256)","589e5edd":"InvestorsQty()","589e74be":"giveSticker(address,uint256)","589f30c7":"FAPFundDeposit5()","589fd72a":"vehicleDates()","58a0bcdd":"checkPayout(address,uint32)","58a122a2":"cancelRequestUnpause()","58a191c3":"changeFactorySetupFee(uint256)","58a1cabf":"lastPayoutTime()","58a2982a":"_deleteSmallestBidder()","58a356d0":"sendMoney(uint32)","58a383fd":"jsonArrayLength(string,string)","58a3d1a1":"getUnclaimedTokenAmount(address,address)","58a4903f":"cards()","58a50ce8":"setEtherAddress(address)","58a53130":"getABaddress(uint256)","58a5b0f6":"tournamentStartTime()","58a687ec":"finalizeSale()","58a70a15":"acceptReturning(uint256)","58a74333":"singularDTVFund()","58a79319":"GetWildCardOwner(uint256)","58a87b69":"withdrawTokenFromCrowdsale(address)","58aa0f1b":"numOfRare()","58aabdf8":"MaxMinersXblock()","58aaf48a":"gasForShuffle()","58ab010d":"buyParticipationTokens(uint256)","58aba00f":"updateManager(address)","58acf31b":"findJob(uint256)","58ad4673":"LEXTokensContract()","58ae6242":"AOIS()","58ae8bcf":"voteInMasterKey(address)","58af7794":"create_payment(uint256,uint256,bytes32,bytes32,uint256,address,bytes32)","58b092d7":"addRaiseTapProposal(string,uint256)","58b0a2aa":"setPriorityPassContract(address)","58b1effb":"bidOfBidder(address,uint256)","58b1f29c":"refundBounty(uint256)","58b255ea":"fechVoteNumForCandidate(address)","58b435fb":"MeritICO()","58b4370b":"round(int256)","58b4a3c4":"testInitalBalance()","58b4c035":"createNewGoBoard(uint256)","58b5525d":"depositCharge()","58b5e775":"batchAllocateExp(address[],uint256[],uint256[])","58b8dc61":"promoCreationPlayerCount()","58b92d57":"UserAuthorized(address,address)","58b9dcef":"registerVotingPrepareFailure()","58bad3eb":"setEarlyParticipantWhitelist(address,bool)","58bafdbc":"contribute(address,uint256,uint256,bytes)","58bb7d70":"checkEthSold()","58bc3456":"addtokensWL(address,uint256,uint256)","58bcdb5e":"collectCredits(address)","58be0830":"_refSystem(address)","58be98dd":"migrateBlockjack()","58beec9f":"summBounty()","58bf7067":"setBlockedAccount(address,bool)","58c0bde0":"feeNewThread()","58c1c328":"_validateId(bytes32)","58c23767":"setCXLExchangeRate(uint256)","58c264f6":"preico_holdersAmountInvestWithBonus()","58c31603":"loanCollectionNotification(uint256)","58c3b0eb":"updateTokensApproved()","58c3b870":"memo()","58c3c193":"newBatch(bytes32)","58c56f1e":"C20Token()","58c60d5e":"gracePeriodCap()","58c62b12":"SingularDTVWorkshopFee()","58c6bce8":"getCustomBuyerForIndex(address,uint256)","58c6f08b":"takeTokensBack()","58c721ce":"majorEvents(uint256)","58c75136":"currentPremiumSale()","58c757ba":"associateWithSig(bytes32,bytes32,address,uint256,uint256,bytes32,bytes32,uint8)","58c8c0a7":"getVoteNumberList()","58c8ca0c":"_clearInventory(uint256)","58c9e484":"buyPoints(uint256)","58ca5419":"CheckBest(uint256,address)","58cb7323":"MainnetETCSurvey()","58cc13f3":"asserts(bool)","58cda0ab":"requestData(address,address,uint256)","58cdddf9":"getRoundDifficultyBlock(uint32)","58ce4b48":"setFundingStartTime(uint256,uint256)","58cea888":"getWinOutcome(bytes16)","58cf7c71":"unfreezePrice()","58cf9570":"transferFeeRate(address)","58d0390b":"getCurrentICORoundInfo()","58d10aae":"BlackJack()","58d162da":"potSplit_()","58d168b7":"generatePermutationKey(uint8[4])","58d1aebd":"claim(string,string,string,bytes32,bytes)","58d213ae":"InToken()","58d25b93":"LogSendFunds(address,uint8,uint256)","58d2ab45":"numberOfPixels()","58d37dc5":"lastMintingAmount()","58d38231":"broughtSprites(uint256)","58d3b2c8":"babyBornEndVoting(string,uint256)","58d3b617":"Notifier(string)","58d3ce8a":"thirdExchangeRate()","58d40f7e":"existsUserByEmail(bytes32)","58d4e051":"YSS(uint256,string,string,uint8,address)","58d63255":"GandhiJi()","58d6a99e":"CTChinaCoin()","58d75180":"ECToken()","58d782be":"getLotteryDetails(uint16)","58d7bf80":"reserveRate()","58d80a8c":"doSetSettings(uint64,uint64,uint256)","58d8652e":"addIssue(string)","58d8f76f":"getPlayerBet(uint256,uint256,address)","58d90108":"COLOR_RED()","58d9e758":"DeleteUserByID(uint32)","58d9f95d":"VIETNAMTOKENTEST()","58d9fa04":"addUser(uint256,address)","58da3ca9":"jdecompose(uint256,uint256,uint256)","58da9bbc":"getAssetPackData(uint256)","58db3258":"removeFromPrivateWhitelist(address)","58dc03f9":"TigerCashToken()","58dc2a8b":"RESEARCH_AND_DEVELOPMENT_WALLET()","58dd0eb1":"propose(address,string,string,string,string,uint256,uint256,uint256,uint256)","58dd6f23":"setTokenTransfer(bool)","58df0383":"burnFinish()","58df8ed8":"adminGetEnabled()","58dfb058":"LNCH()","58e039bd":"listContractByModTextAndCttName(string,string,uint256,uint256)","58e0a9d7":"YanToken()","58e1c174":"RTI()","58e29e17":"initiateProof()","58e2cd76":"watch(address)","58e3815c":"BASalesPrice()","58e3e914":"devuelveNombreApp(address)","58e46275":"calculateTheEndPrice(uint256)","58e55365":"marketingBalance()","58e59c32":"get_entry(uint256,uint256,uint256)","58e5d5a5":"PunkBought(uint256,uint256,address,address)","58e61e12":"contribute(uint256[],bool,uint256)","58e66522":"CoolTourToken()","58e69c5a":"hashimoto(bytes32,bytes8,uint256,uint256[],uint256[],uint256,uint256)","58e71b15":"Organization()","58e756b6":"NewQ(string,bytes32)","58e77a92":"setSelfPretorian(address,address,address)","58e85e03":"LogTokensBought(address,uint256)","58e868c9":"DisableMember(address)","58e879f3":"nextThaw()","58e8922b":"payImportTax(address,uint256)","58e92fb0":"setFreezeForPEInvestors(uint256,address,uint256)","58e9a706":"checkLargeContributionsLock(address,address,uint256)","58e9b208":"Controlled()","58ea80e5":"setThroneCreationPrice(uint256)","58eae004":"awardBuyers()","58eafc37":"addVirusDefence(uint256)","58ebde43":"generic_holder()","58ec63bc":"setAccountMilestone(address,uint8)","58ecaa45":"StgThreebonusEnds()","58ed766d":"priceETHUSD()","58eda67a":"get_Holders(uint256)","58edaa9c":"getController(uint256)","58edbc84":"mkDelegation(bytes32,bytes32,uint256)","58ef82a0":"setMilFold(address)","58efa06f":"bytesToBytes5(bytes)","58efe3cd":"changeLink(bytes,address)","58f0cbc7":"changeTiming(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","58f10528":"eggExists(uint256)","58f11566":"ReserveAccount()","58f1490f":"addTransaction(address,uint256,bytes,bytes,uint256)","58f24f3d":"transferFromGate()","58f33e98":"isTaker(address)","58f35f10":"createT513(uint256,address)","58f3a115":"tokenDistribution(address[])","58f3da21":"adminGetContractBalance()","58f4be1e":"getIntention(uint256)","58f4f160":"Halo3D()","58f5382e":"challenge(string)","58f65330":"_checkPixelUnderLeft(uint256)","58f693de":"tokenForSP()","58f7f6d2":"BNB()","58f816bf":"redeployProduct(bytes32)","58f8e99e":"Jackypot()","58f94f13":"CarParkCoin()","58fa67f9":"calculateMintTotal(uint256,uint256,int256)","58fa812b":"TRANSFERS_PER_TRANSACTION()","58fb9f36":"_addBonus(uint256)","58fc0151":"getRequired(address,uint256,bool,uint256)","58fd6aec":"register(bytes32,string,string)","58fd6fe2":"getBonusMultiplier(uint256)","58fd955c":"rateETHUSD()","58fd989b":"getLockedStructPulseLockHash(address,address,uint256)","58fe54a1":"GetBoilerInfo(address,uint256)","58fe8847":"BIRC()","58feb4a3":"earlyCommunityAddress()","58ff7613":"RxEALSaleContractExtended()","5900477a":"settleCancel(bytes,bytes)","5900a09c":"addFunder(address,address,uint256,uint256)","59011400":"RewardDAO(address,address,address)","59015ed5":"getAccountModifiers()","59016c79":"getContent()","59032232":"setPatch(uint256,uint8,uint8)","59032614":"FipsTransfer(bytes20,address,address)","5903eff2":"root_10(uint256)","5903f01b":"giveEthBankRollAddress()","5904941b":"CoinealToken()","590528a9":"sellShares(uint256,uint8,uint256,uint256)","590589fd":"WithdrawToMember(address,uint256)","5905b171":"getNextAssignedRequest(uint256)","5905d314":"Added(bytes32)","5905e1c5":"askPrice(address)","590731b7":"secondarySaleCut()","590791f2":"getOwnerBalance()","59084ea9":"setWhitelistedWallet(address,bool)","5908984b":"foreignPurchase(address,uint256)","59092c29":"XtremCoin()","5909e897":"buyRate(uint256,uint256)","590a1c78":"LogBidFailed(address,uint256,uint256)","590a4595":"createNewChain(bytes)","590ba734":"getUint(int256)","590d431a":"wavesId()","590d5a67":"multipleTokenDistribute(uint256)","590daaec":"setTokenDeskProxy(address)","590def78":"IndonesiaRupiah()","590e1ae3":"refund()","590efa59":"setContrAddr(address,address)","590efee1":"isExec()","590f9ece":"getShow(uint256)","590fcc5b":"debugVal2()","591016bc":"generateId(bytes32,address)","591090ee":"ELIXAddressSet()","5910a18b":"addEntry(bytes32)","5910ce39":"_mint(string,string,uint8,uint256,bool,uint256)","591108a5":"setIcoStart(uint256)","59111d83":"add32(uint32,uint32)","59112e79":"payCow()","59117bae":"getRoomID(uint256)","59118221":"setTokenData(uint256,bytes32[])","59118ff2":"amount4()","5911fb9a":"setRate(address,address,uint256)","59125397":"indexedDocs(uint256)","59137533":"PillowCoin()","5913cacc":"unlockBonusDrop(address,uint256)","59144baa":"setFundContract(address)","591451fe":"setHostingProfitAddress(address)","5914589c":"RLC()","59151701":"VerifiedUser(bytes32,address)","591552da":"currentFee(address)","5915589e":"Dataset(address,string,uint256,string)","59161e57":"releseToken(address)","59167b9d":"setTokenContract(uint256,address,uint8[],bytes32[],bytes32[])","59167fcc":"getUserAccountInfo()","59169d06":"setBountyTokensPercent(uint256)","5916c2c9":"NeuroWire()","59179dbd":"createSaleAuction(uint256,uint256,uint256,uint256,uint256,uint256)","59187cec":"getEarningAmount()","5918bc7f":"addTerms(string,string)","5918f00c":"fillOrder(address,address,uint256,address,uint256)","5918f348":"hmcAddress()","59193981":"token_sale_end_block()","59194d0c":"totalEthBalance()","59197f51":"ethEt4Rate()","59198827":"initiateDocumentVote(string,bytes32)","5919896f":"Taracoin()","5919978b":"create_safe(address,string,string)","591a0d87":"foundersWallet2()","591a6ec4":"toBeDistributedFree()","591a89b2":"Voted(address,bool,uint256)","591b05b1":"domainHtml(bytes32)","591b41c6":"Multisend()","591beea8":"guardIntervalFinished()","591c515f":"append(string,string)","591d5236":"getDifference(int256,int256)","591d8bd0":"constantFn(uint256)","591ead36":"SplitTransfer(address,uint256,uint256)","591f36a6":"updatePreICOMaxTokenSupply(uint256)","5920375c":"thaw()","59208b8a":"userRefundWithoutGuaranteeEther()","59214765":"sendBonus(address,uint256)","5922b831":"refundPlayers(uint256)","592311ed":"freeze(address,address,bool)","592341df":"whatsMyJuryNumber(uint256,address)","5923c7f9":"maxSaleToken()","59242d11":"SmartIndustrialToken()","59245ff3":"fundAnswerBounty(bytes32)","59249c46":"duper()","5924f811":"tier2Reached()","592572e2":"getLoanCanceledAmount(bytes32)","5925cfe3":"getCCH_edit_7()","5926651d":"addBeneficiary(address)","592685d5":"getWindowStart(address,address)","5926b55a":"setArray(bytes1[],bytes8[],bytes32[],int256[],uint256[],bool[])","5926c826":"Mitronex()","5926cf13":"setGameId(uint256)","59275c84":"minerAddress()","59276653":"getTicketCount(address,string)","59287ce9":"setPbulicOfferingPrice(uint256,uint256)","5928aedc":"setEndStage2(uint256)","5928bdc4":"LatiumLocker()","5928c7db":"changeDividendWallet(address)","5928e80c":"updateNoteTitle(uint64,bytes12)","59291e2f":"MinedBlocks()","59292ef3":"gasLimitDepositRelay()","59296490":"CharityCommonweal(uint256,string,uint8,string)","59296e7b":"getCredit()","5929b837":"_setRate()","592a5f9b":"ValidToken()","592a97de":"encodeUInt(uint8,uint256)","592af188":"GaonToken()","592b5d17":"haltFX()","592b700a":"updateRegistrar(address)","592b71ab":"isRequestingEscapeTo(uint32,int256,uint32)","592bd705":"setowner(address)","592c0f09":"onLotteryFinalized(uint32)","592c518f":"ADDR_TKG_CHARITY()","592d4c7e":"CAD_Omnidollar()","592dc0a6":"setAyantDroitEconomique_Compte_2(uint256)","592e6f59":"initialise()","592ea64f":"LLV_v30_12()","592eef5a":"postIdToDonationAmount(address,uint256)","592efdab":"presaleWhitelistTokensLimit()","59301cb2":"_callRecipient(bytes32,address,address,address,uint256,bytes,bytes,bool)","5930a295":"changeBetLimits(uint256,uint256)","5931228b":"endTimeDay()","59317ea2":"buyImplementation(address,uint64,uint256,uint8,bytes32,bytes32)","59318b2c":"unFrozenBalanceByIndex(uint256)","59328401":"getPlayerInfo(address)","5932c02c":"tradesCount()","59330b8e":"hashDetails(uint256,address,uint256,uint8)","59355736":"lockedBalanceOf(address)","59357045":"getDueTime(uint256)","5935fba5":"addContractor(address,uint256)","5936259c":"BullsFarmer()","59362835":"JPCoin()","5936387c":"checkOpposited(uint256,bool)","59366245":"bonusInPhase5()","5936812b":"changeLockedBalanceManually(address,uint256)","5937de14":"STATUS_DEAL_RELEASE()","5937e534":"appealSkip()","5937e86a":"setTokensQuantity(uint256[],uint248[])","5938748e":"changeVotingRules(address,address,uint256,uint256,uint256)","59388d78":"decreaseApprovalPreSignedHashing(address,address,uint256,uint256,uint256)","59391a67":"earlyResolve(bytes32,uint256,bytes)","5939a84e":"isLawyer(address)","5939dd31":"setEthartRevenueReward(uint256)","5939ee04":"registrationPeriod()","593a5bff":"KUISToken()","593a6297":"getPlayerLaff(uint256)","593aa283":"setMetadata(uint256,string)","593af09f":"assertEq20(bytes20,bytes20)","593af4f1":"_fYou(address,uint256,string,string)","593af56a":"editionType(uint256)","593b4530":"proxyMergeMint(uint256,bytes32,address[])","593b79fe":"toBytes(address)","593be1f8":"_removeAuctionManager(address)","593c993c":"presaleWeiContributed()","593cca56":"checkExplore(uint256,uint256)","593d280d":"KToken()","593ea3e7":"VERDICT()","593efdf1":"setCurrentPassportLogic(string)","593f3a6c":"AllMarkingsProcessed(address,uint256,uint256,uint256)","5940f55c":"setEncryptionPublicKey(string)","594151e0":"Dice()","5941bb80":"transferFromBatch(address[],uint256[])","5941d8d4":"RtbSettlementContract(address,address,address,uint256)","5941ff52":"impl_yield7Day()","59423a7f":"BuySnail(address)","59424b78":"approveArtist(address)","594337a9":"investorsLength()","5944427b":"getRequestResult(uint256)","5944b7d9":"setCCH_edit_1(string)","594548d5":"newStakesAllowed()","5945793d":"getCorrectedTotalBPOfAddress(address,address)","5945841b":"ELIXAddress()","5945bdc5":"token2GT()","59462295":"WhiteWallToken()","5946e7eb":"Tier_Rainmaker_Registration()","594733c6":"getInvestorId(address,address)","594742da":"forecastOfToken(uint256)","59475891":"TransferHash(bytes32,bytes32,uint256)","59478411":"modifyProductPrice(bytes32,uint256,uint256)","5947cc6a":"level_2_percent()","5947d616":"updateAskingPrice(uint256,string)","59485790":"_emitPricesUpdated(uint256,uint256)","5948f733":"getAddressArray(bytes32)","5949a8f7":"notifyDeposit(uint256)","5949e525":"fundingUnlockFractionInvert()","594aa668":"getCourseList(string)","594afcff":"tgrContributedAmount()","594b18b5":"_transferToLock(address,uint256,string)","594bbe8f":"Corolexcoin()","594de857":"getDealsCount()","594eda64":"getBackend()","594ffb4e":"setReferralFee(uint8)","5950cb8c":"setCasinoName(uint16,string,string)","5950cee4":"checkProviderSupported(address,address)","5950d395":"recallPercent()","5951317a":"doFinalizeSale()","59514593":"addFreezableAddresses(address[])","595210ad":"openDispute(string)","5953c806":"setSendCost(uint256)","5954c8c5":"manualWithdrawEther()","5954ee54":"actualPriceInCents()","595539cd":"modexp_naive(bytes,uint256,bytes)","5956b853":"soldAddresses(address)","5957eb17":"PeterToken()","5957ee49":"getProjectUsedTokens()","5958188d":"MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress(address[],uint256,uint256,address)","5958611e":"finishTime()","5958621e":"setRewardWallet(address)","595882b3":"mintAll()","5958978c":"day_blocks()","595a161b":"amountOfZeros(uint256,uint256)","595a30f1":"RateChanged(uint256)","595a4fc2":"recomputeAccountLastAverageBalance(address)","595a69e8":"add_address(address,address)","595a7273":"QbaseIssued()","595aed65":"_getChild(address,uint256,address,uint256)","595b1a3e":"getUsersLength()","595b35d1":"NUMBER_OF_COUNTRIES()","595c3f61":"FactomTalk()","595cb7a3":"changePrice(address,bytes32,uint256)","595d0392":"transferHoldFrom(address,address,uint256)","595d71a5":"MintFinished(uint256)","595da94d":"has_owners(uint256)","595dcb68":"BIFAToken()","595e1e20":"placeToken()","595e615f":"betPool(address)","595ecbb3":"Int256(uint256)","595ee7a4":"MajListVal()","595f0e5e":"test_CuratorRules()","595f40d6":"getDevelopersFee()","5960b74f":"advisorTimelock()","59622aa6":"maxAmountForSalePromotion()","5962581e":"isInRoundOneState()","59626877":"AiToken(uint256)","59627b84":"getReduce(uint256,uint256)","5962a941":"totalPurchases()","5962ad30":"dkSB(string)","59647984":"isValid(address,uint256)","5965e7c3":"SimpleCrowdsaleBase(address)","59667c24":"withdrawRound(uint256)","59679b0f":"_implementation()","5967dee8":"transferLOT()","5968c2a4":"getOrderTokenAllocationStatus(uint256)","596925d6":"expByTable(uint8)","596939f5":"addAgent(address,uint256)","5969549e":"modifyBeneficiary(bytes32,address)","59695754":"setMinimumPayout(uint256)","5969c0e1":"resetSignature(bytes32)","596a072c":"setOraGasLimit(uint32)","596a2735":"DICE_RANGE()","596aadaf":"transferFromCrowdsaleToUserAdoptionPool()","596b975a":"maxFunding()","596bda14":"_set9()","596c02fb":"assertEq22(bytes22,bytes22,bytes32)","596c0531":"bch()","596c49bd":"TimeControlled()","596c8976":"close(uint256,uint256)","596d6f08":"Blizzard(uint256,string,string)","596ea3db":"allowTransferTime()","596f3473":"applyToBeAReviewer()","596fab6c":"calculateLockAmount(uint256)","59704013":"setVar(string,string)","5970c40a":"addForecast(bytes32,uint256,uint8)","59716eed":"lockedEthBalanceOf(address)","59724977":"getwin011050(address,uint256)","59727e83":"registryTransfer(address,address,bytes32,uint256)","5972e062":"deleteNodeGroup(uint256,uint16)","5973016b":"Multiven()","59748c98":"plain()","5974ec50":"founderTokenUnlockPhase3()","59756526":"getJobHash(bytes16,address,address,uint256,uint256)","59758ebe":"repayLoan(address,uint256,string)","5975ce80":"mintApproveReset(address,address)","59761fcb":"test(address[5],uint256[5])","59764714":"MyDFSToken()","59769073":"totalBalancingTokens()","5976ddd0":"getScenarioNamesAndEventStatus(bytes32)","59770438":"getToken(address)","59780224":"joinGameWithInviterIDForAddress(uint256,address,address)","59790701":"updateFeeSchedule(uint256,uint256,uint256)","59793b3a":"derivativeTokens(uint256)","597c255f":"receiveChild(address,uint256,address,uint256)","597c69cc":"saveToColdWallet(uint256)","597cae8d":"getFeeWindowBurnAmountValue()","597d4601":"crowdsaleFinalized()","597d5c6e":"BiSaiToken(address,uint256)","597d6640":"getFreeFairy()","597df768":"buyPixelBlocks(uint256[],uint256[],uint256[],bytes32[])","597dfbaf":"confirmNode(uint256)","597e1fb5":"closed()","597ea5cc":"getUint8FromByte32(int8,bytes32,uint8)","597efd85":"UblastiToken(uint256,string,string)","597f7c35":"transferTechSupport(address,address)","597fef79":"funderBalance_()","59802e15":"makeBonus(address[],uint256[])","598052a3":"winPooling()","598077b9":"ownerPart()","5980d0d7":"_crowdSaleSupply()","5980e72d":"getSeedPercentageForGameId(uint256)","59810024":"VICETOKEN_ICO_IS_A_SCAM()","59813a0e":"allowToken(address,address,uint256,bool)","5981f187":"bookingBalanceOf(address,address)","5982688f":"revenueShareList(address)","59828c99":"FLIPPINESSROUNDBONUS()","5982a30f":"setFriendsFingersRateForCrowdsale(address,uint256)","5982a6bb":"DiipCoin()","59830bf4":"LogBidCompleted(bytes32,bytes32,bytes32)","5983ae4e":"hasher(address,bytes32,uint256)","59841fe9":"newRun(bytes32,address,string)","59849d30":"maxCreatorWithdraw()","5984d7ad":"buyHeart(address)","59852686":"transferEth()","5985ac40":"affiliateNetwork()","598647f8":"bid(uint256,uint256)","59869576":"TestERC20Token(string,string,uint8)","5986ce23":"setdteamVaultAddr1(address)","5986dbe4":"ccUserCount()","5987e370":"canJoin(uint256)","5987f859":"setInputs(string,string,string)","5988899c":"estimateDaiSaleProceeds(uint256)","59890fd2":"mod_product(uint256,uint256,string,string,string,string,string)","5989c283":"createChannelERC20(address,uint192)","598aa1fc":"checkEndorsement(address,uint256,address)","598ab2c9":"supplyRest()","598abc9c":"getListTeam(uint256)","598ac8f2":"permille(uint256)","598adef6":"addDepositor()","598af9e7":"allowance(address,address,uint256)","598b771d":"IOVContract()","598d34b7":"distributeBTR(address[])","598d772a":"changeEtherVault(address)","598db132":"setProviderIsForRent(uint256,bool)","598e3183":"newToken(string,string,uint256,address,uint256)","598e728a":"TIXIToken()","598e9eeb":"transferir(uint256,address)","598f512b":"Token(uint256,string,uint8,string,bool)","598f6dec":"reserveTimeLock()","5990e665":"NetworkSocietyToken()","59912df1":"totalTokensDestroyed()","59915fd3":"CheckRefundIsFair()","5991c0dd":"TSTEST3()","5991faf5":"contributors_countdownDate(address)","59923274":"sendFromBountyWallet(address,uint256)","59927044":"teamWallet()","5992f2a1":"_createVoter(string)","599312ec":"rescueCatHashCheck(bytes32)","599362d0":"_setBackgroundValue15(uint256)","59939e21":"getApprove(uint8)","599466fe":"abortCrowdfund()","5994d984":"TRUE()","59953744":"createVestingContract()","5996228e":"upgradeResistance(uint256)","599651f3":"setStartAuctionFee(uint256)","5996769e":"_getDefaultOperators(bool)","59970a08":"OneKeyToken(uint256,string,uint8,string)","59974e38":"distributeRewards(uint256)","5997ed4c":"DevFee()","59988dce":"newQuestioner(address)","5998e641":"getStrategyTokenByIndex(uint256,uint256)","5999917c":"get_cross_chain_nonce()","5999d385":"walletICO()","599b3e21":"buytokens2()","599b6808":"balanceList(uint256)","599c8761":"decodeParamsList(uint256)","599db6bd":"unsowed(address)","599dc6be":"setItemStoppedStatus(bool)","599efa6b":"refundEscrow(address,uint256)","59a02589":"ico_PRICE()","59a02652":"miningWarContractAddress()","59a0b995":"AiraEtherFunds(address,string,string)","59a0e583":"lastBlock_v9()","59a131e2":"CrankysLottery()","59a23200":"authorizeTransaction(uint256,address)","59a29c6f":"no_of_tokens()","59a2c86f":"requestPayout(uint256,address,address)","59a3e577":"createClaim(address[],uint256,address)","59a4669f":"increaseJackpot(string)","59a536b0":"presaleWei()","59a547b0":"recordCommission(uint256)","59a58647":"setMaxCards(uint256)","59a591be":"setCrowdsaleTimes(uint256,uint256,uint256)","59a5f12d":"player2()","59a69426":"setStatuses(address)","59a765f9":"sendInvoice(string,string,string,string)","59a78c1a":"deathData_v8()","59a7b3fe":"hourlyRate()","59a7f754":"acquireWildcard(uint16)","59a80f0f":"setCurs(uint256)","59a83074":"set_participant_num_of_pro_rata_tokens_alloted(address,uint256)","59a87bc1":"buy(uint256,uint256,address)","59a8b6a3":"OptaToken()","59a941a6":"setApp(string,string,string,uint256)","59a9a63f":"isVulnerable(uint64,int8)","59a9a980":"isCosd(string)","59aa80b8":"getTransfer(string,uint256)","59aaa456":"tryAltOracles(bytes32,uint256,uint256,uint256,bytes32,bytes32,uint8)","59aaaf86":"changeBlocPerEth(uint256)","59ab0306":"BuyTickets(uint256)","59ab0dd1":"JACKPOT_TOKENS_PERCENT()","59ac5b32":"createProject2()","59ac5c6d":"_shift(uint8)","59ac70ae":"totalTimeRange()","59acb42c":"createdAtBlock()","59acbcb1":"crownTransfer(address,uint256)","59adb2df":"returnUint256(uint256)","59adda9b":"checkOwnerFailedToSetTimeOnMeeting()","59ae2073":"GameNeedsTick(uint256,address,uint256)","59ae340e":"resumeMinting()","59ae6e34":"placeImage(uint8,uint8,uint8,uint8,string,string,string)","59aef196":"pauseCutoffTime()","59af143d":"beBanker()","59b09b25":"makeCount()","59b0a174":"transferLockUntil(address)","59b0d931":"removeBlockList(address)","59b112d8":"getServicesForApplication(address)","59b119dc":"ComeCoin()","59b11d6c":"setBetclose(bool)","59b17b43":"getTellerBalance(address)","59b25720":"fillUpTo(address[5][],uint256[6][],uint256,bool,uint8[],bytes32[],bytes32[])","59b2da20":"Raffled(uint256,address,uint256)","59b350fb":"time_of_token_swap_start()","59b36e3e":"partnerSaleWei(address)","59b373f2":"getExistsStatus(uint256)","59b4993c":"userAddressCheck(bytes32)","59b4ee89":"addVpf(bytes32,uint256,uint256,uint256,string,uint256,uint256[])","59b51bd1":"approveCertification()","59b563b5":"addRobot(address)","59b56a59":"HYIPToken(address,string,string,uint256,uint256)","59b58dba":"createCloneToken(address,uint256,string,string)","59b62658":"AddFishByToken(address,uint256)","59b6a0c9":"maxCapacity()","59b6f377":"transferFromContract(address,uint256,uint256)","59b79610":"sendUnsoldTDETokensToPlatform()","59b8d74e":"ACasadiAmiciToken()","59b910d6":"setStorageAddress(address)","59b9510a":"isAddressAllowedInPresale(address)","59b95f5a":"buyBlocks(uint8,uint8,uint8,uint8)","59b9a192":"buildToken(uint192,uint192,uint160,uint32)","59ba1dd5":"_fulfillPreapprovedPayment(address,address,uint256,address)","59ba2628":"transferCampaignCreator(address)","59ba59f1":"ETHFundDeposit()","59badbec":"CheckPhException(bytes32,uint32)","59baef40":"setNewController(address)","59bb6b5f":"TretanToken()","59bb7867":"setTournamentEntranceFeeCut(uint256)","59bc3d47":"Agreement()","59be5e45":"getTotalSoldTokens()","59be7e99":"getDonationAmount()","59be9cc0":"devTokensHolder()","59bed9ab":"Transacted(address,address,bytes32,address,uint256,bytes)","59befd58":"releaseTime2()","59bf1abe":"getBlackListStatus(address)","59bf5d39":"getReserve()","59bf77df":"confirmationCount(bytes32)","59bfd388":"setupPeriodForSecondStep(uint256,uint256)","59c13403":"FEE_MIN()","59c140be":"insertBonus(uint8,uint256,uint256)","59c14cf1":"mastery(address)","59c21fd8":"initDepth()","59c27917":"GenChipLevel_Extra(uint256,uint256,uint256)","59c281da":"openFirstRound(uint256,bytes32)","59c2aad0":"unitsToSell()","59c2af55":"StagedCrowdsale()","59c2b584":"reserve_fund()","59c2edee":"CrowdsaleContribution(address,uint256,uint256)","59c33f94":"PriceUpdate(uint256,address)","59c39094":"withdrawDate()","59c3f3e0":"setPoolContract(address)","59c3f7f0":"createWallets(uint256)","59c42f75":"unreleasedCount()","59c44539":"GotecoinToken()","59c4e612":"icoSoftcap()","59c55429":"refundBond(uint256)","59c634b0":"getContributorAmount()","59c656df":"allowRefunds()","59c77133":"createNewHodl(uint256)","59c7a893":"participantsOf(uint32)","59c87d70":"request(bytes32)","59c88347":"isEmitting()","59c8969e":"withdraw(address,uint256,bytes32[],uint256[],bytes32[],uint256)","59c8bf9c":"OrpheusMarinaBangkok()","59c8d647":"buy(bytes32,bytes32)","59cbf125":"GetETH(address,uint256)","59cc334a":"getItem(uint256,uint256)","59cc721c":"BONUS_TIER1()","59ce0a8f":"RuletkaIo()","59ce0bb8":"_saveParams(uint256[])","59ceb36f":"last_demurrageable_balance()","59cf3173":"Reclaim(uint256)","59cf901a":"preIcoTokensDistributed()","59cfaf6e":"gameWithdraw(uint256)","59d1d43c":"text(bytes32,string)","59d20b55":"committedValidators(uint256)","59d213fe":"contributePreSale()","59d27be8":"endEthGetToken()","59d2af39":"testFooSend()","59d313de":"MatchResetDeadline(uint256,uint256)","59d33d73":"bountyReserveTokens()","59d3ce47":"Activate()","59d3d57e":"totalUserLost()","59d3d632":"verifierAllocation()","59d3dad9":"miscNotLocked()","59d4447a":"MingToken()","59d52e2b":"XmonetaSale()","59d5335b":"refPercent()","59d55194":"getPet(uint256)","59d5d02a":"transferFee(address,address,uint256)","59d5dc11":"PhardusNetwork()","59d667a5":"bid(address,uint256)","59d6b35b":"lastProof()","59d7d46f":"doInvest(address,uint256,address)","59d89175":"setSellCommissionBps(uint256)","59d90c19":"addLockedAmount(uint256)","59d96db5":"terminate(uint256,string)","59d998e4":"transferHashOwnership(uint256,address)","59d9b2b7":"getTokenOwnership()","59dac714":"hashTo256(bytes)","59db5bac":"VisitCount()","59db9eb0":"deallocate(address,uint256)","59dc6d5c":"setDollarBalance(address,int160)","59dc735c":"getClient()","59dd35da":"ICOPrice()","59dd7ad4":"batchTransferFroms(address,address[],uint256[])","59dd8f34":"NRB_Tokens()","59dfdec8":"totalPlayCount()","59e026f7":"internalTransfer(address,address,uint256)","59e02dd7":"peek()","59e05c5f":"delay_pool_drain_block(uint256)","59e08fe1":"isSaleOver()","59e09fec":"getLockedAmount_dakehus(address)","59e0b91a":"LMOSupply()","59e0cf23":"setOraclize(address)","59e148fc":"getLastOfferId()","59e1667d":"testControlCreateWithForeignParentNotInUse()","59e20f69":"addJobInvitation(uint256,address,string)","59e23ccf":"computeBlockPrice(uint256,uint256,uint256)","59e2d30e":"testThrowBlobStoreNotRegistered()","59e30226":"getTradeOfferSenderItems(uint256)","59e33e35":"indexdate()","59e3e1ea":"testDivAdd(uint256,uint256,uint256,uint256)","59e415d3":"crowdETHTotal()","59e4c4ca":"createLover(string,string,string)","59e4eec9":"startMarket(uint32,uint256)","59e529cc":"extra_bonus()","59e54095":"getRefundValue()","59e541af":"getTokenInfoMaxPerBlockImbalanceList()","59e5d4b5":"hicsToken()","59e6800c":"depositToken(address,uint8,uint256)","59e777f6":"newHeir(address,uint256)","59e86488":"hasteamadjacency(uint16,uint16)","59e94862":"getEthToTokenOutputPrice(uint256)","59e994ca":"endTimeOfBids()","59e99db2":"_mint(bytes32,uint256,bytes32,address)","59e9fb1b":"IPFShash(string)","59ea2647":"yearTwoMultiplier()","59ea287d":"pre()","59ea6d80":"setNegativeArray(int256,int256)","59eb8224":"trancheCount()","59ebb321":"isManagementProxy(uint32,int256,address)","59ebbe35":"cancelFinishMintingRequest()","59ebeb90":"Open()","59ec29fe":"successICO()","59eca3e2":"manipulateSecret()","59eddf34":"getSchool(uint256,address)","59eecbf9":"assert1(bool)","59eee5c7":"hosting(uint256)","59efcb15":"execute(uint256,bytes)","59f02c4d":"getOraclizePolicyId(bytes32)","59f121a8":"setCreator()","59f1286d":"queryCredit(address)","59f47523":"newUserBonusCardTradable()","59f4bbd2":"indexPaidAffiliate()","59f568b9":"setDefaultNumberJuror(uint16)","59f5e0ce":"purchase(string)","59f61c74":"nextKey(uint256)","59f62cdc":"buyCalcAndPayout(address,uint256,uint256,uint256,uint256)","59f69ab6":"enforceWhitelist(bool)","59f769a9":"activeBalanceOf(address)","59f8714b":"changeableTokenCount()","59f96737":"convertMetToEth(uint256,uint256,int256)","59f96ae5":"postSellOrder(address,address,uint256,uint256)","59f974ce":"checkFundingGoalReached()","59f9a58f":"_vouchersInSharedPool(uint16)","59f9edd0":"sultantoken()","59fa0663":"setWhitelistOut(address,bool)","59fa34df":"findCurrentIndex(address)","59faf062":"bidPrice(bytes32)","59fb34bd":"_createRide(string,bytes7,address,uint256)","59fc2ba4":"DRONEXTOKEN()","59fd510a":"extraBalanceNeeded(uint256)","59fd95ae":"BTCCToken()","59fde1e0":"distributeRevenue(uint256)","59fe2720":"updatePollDescription(uint256,bytes,uint8)","59fe7279":"ADMINISTRATOR()","59ff5b55":"getMagicNumber()","59ff6473":"redistributeFees(uint256)","5a0024ae":"VerifyCheque(string,string)","5a0089d3":"getChildContractAddress(uint8)","5a012b17":"landsSold()","5a0178af":"update(uint256,uint256,bytes32)","5a018e01":"RESERVES_STAKE()","5a02dcde":"budgetWallet()","5a02ec19":"depositVault(uint256)","5a0391f2":"BuyForEtherTransaction(address,uint256,uint256,uint256,uint256)","5a04ce5b":"setMinBalance(uint32)","5a051c47":"_purchaseLoopFifo(uint256,uint256)","5a052dff":"buyPixel(address,uint16,uint24,string)","5a055a33":"Enterprise()","5a059a44":"composeJingle(address,uint256[5],uint256[5],string,string)","5a05fff0":"bountyRewards(address)","5a0646e2":"InitAssignCTC()","5a06f1e3":"TMEXAddressSet()","5a071517":"existPublicKey(address)","5a0718d0":"ICOadvisor1()","5a0753ac":"devFeeBalance()","5a079207":"Hydro()","5a083f54":"transferFromCheck(address,address,uint256)","5a09f2f4":"setHouseFee(uint256)","5a0ae8d5":"emitSkillRatingGiven(address,address,uint8,uint256,uint256,uint256,uint256)","5a0b7663":"getMaxResponseStates(uint256)","5a0ce676":"setParams(uint256,uint256,uint256)","5a0d9627":"updatePlayerMask(uint256,uint256,uint256,uint256,uint256)","5a0ebf94":"TokensReceived(address,uint256)","5a0f385a":"reverseTransfer(address,uint256)","5a0f3c40":"_foundationSupply()","5a1024d5":"setSinistre(uint256)","5a10d868":"Diyflex()","5a119ef2":"addIcoAddress(address)","5a1230bf":"computeCallKey(address,address,bytes4,bytes32,uint256,uint8,uint256)","5a129164":"vestingBeneficiary()","5a129e97":"byte32ToString(bytes1[32])","5a12b581":"GetUser(string)","5a13340f":"GetApplicant(bytes32)","5a140df0":"_remove(uint256)","5a142887":"grantAccessDeposit(address)","5a149f08":"finalizeNextUpgrade()","5a15656c":"developerCommissionFee(uint256)","5a15c373":"transferByOwner(address,address,uint256)","5a17877a":"LCDToken(address,address,address,address,address,address)","5a17aa41":"getContentTip(bytes32,address)","5a181478":"setPayoutCumulativeInterval(uint256)","5a182b8b":"SellLoan(uint256,uint256)","5a186c77":"init(address,uint256,uint256,uint256,uint256[],uint256,uint256,uint8)","5a18ae3d":"apply(string)","5a18f9ff":"isFundingNeeded(address,address)","5a1a1b67":"zTransferWinningBets()","5a1a8593":"bidBatch(uint256[],address)","5a1b0c0b":"LogBidCanceled(uint256)","5a1b472c":"getmykeyid(address)","5a1b96a2":"FiduxaCoinCrowdsale(uint256,uint256,uint256,uint256,uint256,address)","5a1bdaa1":"deusETH()","5a1cc358":"getChannelRank(address,uint256)","5a1e0a46":"cancelVote(uint8)","5a1e6ca1":"endRound(uint256)","5a1e6fc6":"setEmployeeAddress(uint256,address,address)","5a1e921b":"isTradeSupported(address,address,uint256)","5a1e9c79":"ProofOfKennyCoin()","5a1f3c28":"getCollection(uint256)","5a1f892c":"addPresaleContributors(address[])","5a2056ba":"rejectPayments()","5a212e99":"stringandbytes(bytes)","5a22d81a":"buyCEO()","5a236389":"getFileLoc(uint256)","5a237491":"nextWithdrawDayTeam()","5a23932b":"cryptaurus()","5a2450c3":"EventHub(address)","5a24c6a9":"chart_call()","5a272403":"SetAdmin(address)","5a275879":"toHex(address)","5a2791ed":"block24h()","5a28340a":"accessOperatingBudget(uint256)","5a297cae":"claimApis(address)","5a29ee7b":"sendRemaningBalanceToOwner(address)","5a2a3039":"setTopWinnerPrizes()","5a2a4452":"_addRole(address,string)","5a2a553f":"isCollateralWithinMargin(uint256,uint256,uint32)","5a2a75a9":"getTranscoderPoolMaxSize()","5a2b31d9":"B24Token()","5a2b488e":"calculateRefundedEth(uint256,uint256)","5a2bcc18":"mintAmount()","5a2bf25a":"setAddressValue(bytes32,address)","5a2c0f78":"mintMarketMakerApproval(address,address,uint256)","5a2de12f":"ChipTreasury()","5a2e311b":"capDefault()","5a2e4a11":"raisedWithdrawal()","5a2ee019":"m()","5a2f71d4":"setEquipmentTrainingFeeMultiplier(uint256)","5a2fe63a":"isInMainSale()","5a30b194":"__address0__()","5a317cb3":"SHA256HashRegister()","5a31ab2f":"PresaleClosed(bool)","5a325fb3":"_setPlatformFeeRate(uint128)","5a32d070":"trickleDownBonusesReleased()","5a3320ff":"isCrowdsaleOpen()","5a338506":"airdropToAddresses(address[],uint256)","5a34508b":"delistAddress(address)","5a34ced1":"disableFundingWallets(address,address)","5a353193":"KrakenPriceTicker()","5a353f98":"T20coin()","5a354e04":"ProxyUser(address)","5a35eb7c":"isWinSlot(uint256,uint256)","5a36c394":"executeOrder(uint256,address,address,uint256,uint256,uint256,uint256)","5a36e0da":"getProjectCreator(uint256)","5a36f4f3":"setMintableProperty(uint256,bytes32,bytes32)","5a37ae58":"Show_the_name_of_Option_A()","5a388a43":"MVM()","5a390a5f":"breedingMarket()","5a3a05bd":"subRegistrar(bytes32)","5a3a6ef8":"TXL()","5a3b7e42":"standard()","5a3c0287":"claimTokensFromTokenAiNetworkToken(address)","5a3c8826":"dynamicCeiling()","5a3dd13f":"getScoreTotal()","5a3e251f":"halvingPeriod()","5a3f2672":"tokensOf(address)","5a3f88f0":"changeGeneration(uint40,uint16)","5a4071fe":"lockInternalAccount(address,bool,uint256)","5a40bb8f":"setAllergies(bool)","5a40ec7e":"verify(uint256,uint256,uint256,string,bytes32[2],bytes,bytes)","5a41217e":"underMaintenance()","5a414ff6":"getAuthorizedOwners()","5a416920":"swapFor(address,uint256,address,address,uint256,uint256,uint8,bytes32,bytes32)","5a41d508":"setFlightPrice(uint256)","5a42e85f":"SICX()","5a4362e5":"closeDown()","5a43fa90":"getTokenProposalDetails(uint256)","5a4426bc":"proposeLOC(string,address,uint256,string,uint256)","5a444139":"canBurnWhiteList()","5a446215":"setNameAndSymbol(string,string)","5a4528c2":"distributionContract()","5a4537b0":"TransferableMultsig(uint256,address[])","5a46bb2b":"initChain(bytes,uint32)","5a46d3b5":"lockOf(address)","5a46f06c":"BANCOR_CONVERTER_FACTORY()","5a470aff":"setNthByte(uint256,uint256,uint8)","5a470b65":"gamePlayedStatus()","5a476e5a":"buyOrderBalances(bytes32)","5a481a7e":"ARBITRAGEToken(address)","5a4877c0":"timeLockedBeneficiariesDisbursedTo()","5a4a04a7":"OWNER_CLAWBACK_DATE()","5a4bffb8":"tokenPurchaseAmount(address)","5a4c07a0":"fillBlank()","5a4c822d":"setAdminPercent(uint256,uint256)","5a4cc5da":"Dunhil()","5a4d8e59":"getBAU2Length(bytes32,address)","5a4ded51":"tokenBuyCalc(uint256)","5a4e69f0":"KyberContirbutorWhitelistOptimized()","5a4fc9c5":"lookup(int256)","5a500066":"WSXToken()","5a5132be":"ambix()","5a51d1df":"sendReward(uint256[])","5a525491":"safeIndexOfTaskId(uint256)","5a527afb":"testFooApprove(uint256)","5a52da30":"didVoteForName(address,string)","5a52ecf6":"getSignedConfiguration()","5a531015":"getLotteryAtIndex(uint256)","5a5383ac":"canExitPool()","5a53fe20":"multiApprove(uint256[])","5a543683":"BuyerLotteryTimes(address)","5a54cd46":"proceedEtherDeals(uint256)","5a54e755":"hashMachine()","5a55c1f0":"getVote(uint256)","5a5638dc":"policyTokenBalanceFromEther()","5a56a31c":"FeeApplied(string,address,uint256)","5a57a901":"VIPSToken()","5a5804b3":"getAllocation(uint256)","5a589fc9":"authUser(string)","5a58cd4c":"deleteContract()","5a591a4e":"promotionDataRecord(address,uint256)","5a592380":"vestingPlans(uint256)","5a593a6e":"totalreleaseblances()","5a596aa4":"CheckBalance(address,address)","5a5b32b7":"_setHatValue10(uint256)","5a5c8068":"oraclize_setNetworkAuto()","5a5d096c":"isOwner(uint256,address)","5a5d3350":"KKToken()","5a5ddcf6":"startStopICO(bool)","5a5e0024":"SecondEtherLimit()","5a5e0074":"etherForOwner()","5a5e861e":"currentPayment()","5a5ebebf":"withdrawRent(address)","5a5ec54a":"neglectOwner()","5a609b96":"investorsIter()","5a61c40a":"setwithtoken(address)","5a625393":"ValueTokenBase(uint256,string,string,uint8)","5a628525":"reveal(address,bytes32)","5a628e17":"getWishIdxAt(address,uint256)","5a63cba0":"checkSaleLimit(uint256)","5a63feb8":"__targetExchangeAndSpendCallback(address,uint256)","5a648bc5":"WithdrawAll()","5a64ad95":"mintingFee()","5a64b786":"deposit_dividends()","5a650f45":"numBountyCredits()","5a6535fc":"call(bytes)","5a657452":"COD()","5a658f6b":"directorNode()","5a65f004":"isSynthesizeAllowed()","5a67a20d":"endingPrice()","5a67f389":"timeGone(uint256)","5a6814ec":"thisisfine()","5a686699":"post(uint128,uint32,address)","5a69fe0e":"TokenERC20(address)","5a6ad1e1":"multivestBuy(address,uint8,bytes32,bytes32)","5a6af33b":"subtrBalance(address,uint256)","5a6b26ba":"withdrawal(address,uint256)","5a6b3a79":"assignBounty(address,uint256)","5a6c6408":"updatePolicy(bytes32,address,uint32,uint32,uint256,uint256,bool)","5a6c787e":"updateWithMPO()","5a6cd237":"latestTokenBalance()","5a6d663c":"notifyTransfer(address,address,uint256)","5a6dad3c":"setFreelancerParams(uint256,uint256)","5a6e8980":"editusetaddress(uint256,string)","5a6f7aef":"tweakUpgrading()","5a703223":"GetToken(address,uint256)","5a70686a":"mintChip(bytes32)","5a70fe72":"GetInvestedAmount()","5a71be21":"ethEur()","5a732dd5":"CCPayoutArb()","5a74a715":"setWeiForMcr(uint256)","5a74dee5":"multiAccessRemoveOwnerD(address,address)","5a7511d0":"put(uint256,string)","5a753c6e":"getWarlordDistributedRandom(uint256)","5a75aa1c":"ChangeRate(uint256)","5a75b8d5":"currentHodlerId()","5a764631":"setSkillName(uint256,bytes32)","5a766620":"neglectGuess(int256)","5a768e4a":"ECONOMY_BOOST_TRADE()","5a769366":"sadf(address)","5a76e73e":"getNoOfTokens(uint256,uint256)","5a778cf9":"batchPresale(address[],uint256[])","5a78897b":"setFunctionSixPrice(uint256)","5a7a4c1e":"_applyPct(uint256,uint256)","5a7a8850":"rollWithSeed(bytes32)","5a7adf7f":"preSale()","5a7b4097":"fundBalanceOf(address,address)","5a7b57f2":"MadoffCoin()","5a7cb38f":"tokenTransferAddress()","5a7da6b5":"burnUpdateTokenFrom(address,uint256)","5a7db533":"getRef(address)","5a803611":"addDealerForSender(string)","5a81018a":"getClientCount()","5a811766":"replaceAdmin(address,address)","5a813fd5":"test_insert_findWithHintPrevAtPosition(int256)","5a8194d2":"getVersionIndex(bytes32,bytes32,bytes32)","5a81b5b9":"collectMegaJackpot(uint256)","5a825cbb":"getPayment(uint256,uint256)","5a851ffb":"calculateDiceWinner(bytes32,bytes32,uint256)","5a857565":"buyTokensInternal(address,uint256)","5a85d2fa":"playerSignUp(address)","5a861838":"addHpbNodeBatch(address[],bytes32[],bytes32[])","5a8654ad":"End6()","5a86c914":"getRateIcoWithBonusByDate(uint256)","5a87053e":"privateBonus()","5a87c380":"getRewardListLength()","5a8830e2":"partial_refund_my_ether()","5a88b15f":"Halo3DShrimpFarmer(address)","5a89b376":"contractDecimalsUpdate(uint256,bool)","5a8ac02d":"second()","5a8b1a9f":"upgradeTo(string,address)","5a8b55e2":"IsWildCardCreatedForCategory(string)","5a8bbba9":"createNewSecret(string,bytes32,bool)","5a8bbee1":"Group_4()","5a8cadb1":"migrateAll(address)","5a8cf571":"changeControlWallet(address)","5a8d580e":"forceNSFW(uint256)","5a8d6cea":"transferUnsoldIcoTokens()","5a8dd79f":"getDesignatedCaller(address,uint256)","5a8e9d66":"settle(address,uint32)","5a8ef28a":"GBP(uint256)","5a90a49e":"exemptFromFees(address)","5a9156f0":"LogAddUser(address)","5a91e5e9":"removeFabric(address,address)","5a93bf71":"delReferral(address,address)","5a93cc8f":"addBonus(address,uint256)","5a93f1a1":"_deleteCompany(bytes32)","5a9448e2":"multisigFunds()","5a94cd0c":"requestChangeStakingFees(uint80,uint80,uint80,int256,uint80,int256,uint256,int256,uint80,uint80,uint256)","5a95edd9":"OTHERCRUISER_FTL_SPEED()","5a960216":"ethUsd()","5a969f94":"InternationalModelChain()","5a975128":"minGamble()","5a979a5c":"LockContractOwner(address)","5a97b84a":"finishUserDistribution()","5a983451":"totalTokenMintedAngel()","5a992188":"getUserBet(uint256,uint256)","5a99719e":"getMaster()","5a998a09":"totalRoyalty()","5a99b525":"payoutRoyalties()","5a99d123":"unsetNotaio(address)","5a9a49c7":"verify(bytes32[],bytes32,bytes32)","5a9aa592":"currentWallet()","5a9b0b89":"getInfo()","5a9bb087":"claimContractTokens(address)","5a9c0a49":"setBasePrice(uint256[20],uint256,uint256,uint256,uint256)","5a9c2724":"create(string,string,address)","5a9c3ee4":"mainSaleDeadline()","5a9c84f3":"maximumTokensForSecond()","5a9cfac8":"hasPosts()","5a9d27dc":"createReleaseTokenAuction(string,uint256,uint256,uint256)","5a9d5c3c":"PCPP()","5a9e03ca":"isIssuedBefore(bytes32,uint256)","5a9e426b":"refundMe()","5a9e75a2":"maxBorrowAmount(address)","5a9e91df":"zlotsJackpot()","5a9f2def":"scheduleCall(bytes4,bytes,uint256,uint256)","5a9f97d1":"currentSaleDay()","5a9ffc35":"circulatingFame()","5aa00cc4":"_emitJobCanceled(uint256)","5aa037dc":"purchasedTokenBalanceOf(address)","5aa1eb4c":"createAdjudicator()","5aa23a52":"sendRewardBILL(address,uint256)","5aa3952a":"GERCoinCrowdsale(uint256,uint256,uint256,address)","5aa3d2b0":"purchasedAmountBy(address)","5aa4470f":"setLogicContract(address)","5aa451e9":"updateOfferingReputation(address,uint8)","5aa4c8a9":"addToMap(uint256,uint256)","5aa5b9d1":"LogPersonNew(address,uint256,uint256)","5aa61ec6":"getExchangeRatesLength()","5aa63592":"DeadMansSwitch(address,address,uint256)","5aa68ac0":"getParticipants()","5aa6b1f0":"reduceFiatCurrencyRaised(uint256)","5aa6cf97":"payout(uint256,uint256)","5aa720c3":"linkTaskToUser(address,address)","5aa77d3c":"pendingContractOwner()","5aa83129":"store(bytes,uint256,uint256,address)","5aa86386":"getMinNextBet(string)","5aa8a42c":"updateOwners(uint256,address[])","5aa8e281":"freezeAccountCoin(address,uint256)","5aa94a68":"computeResultVoteExtraInvestFeesRate()","5aa97a3b":"agreeNeg(string,uint256)","5aa97e16":"BBCPrimeEx()","5aa97eeb":"getMarkets(bytes32[],address)","5aaa250a":"TokensCappedCrowdsaleImpl(uint256,uint256,uint256,address,uint256)","5aaac1d1":"fundingMaxCapUSD()","5aab1822":"stateEndDate()","5aab25b6":"isRedenominated()","5aab4ac8":"motd()","5aac8aad":"ICO_TokenValue()","5aad0450":"addVestingAllocation(address,uint256)","5aad507b":"userTotalCredit(address)","5aad7c56":"calculatePMAFromFiat(uint256,string)","5aae456a":"potatoTotalSupply()","5aae843e":"doPreAllocations()","5aaec2b1":"isdelegatinglisted(address)","5ab01088":"joinPreSale(address,uint256)","5ab027b0":"masterAddress2()","5ab0e470":"getShortPositionState()","5ab14385":"doProxyAccounting(address,uint256,uint256)","5ab1a0e2":"JungleScratch()","5ab1bd53":"getRegistry()","5ab2ff61":"read_u64_array()","5ab30d95":"bobMakesEthPayment(bytes32,address,bytes20,uint64)","5ab31a60":"drawNumber(uint256,string)","5ab35302":"ProofofHumanity()","5ab3ae21":"privatesaleTokens()","5ab3ded3":"changeDonationWallet(address)","5ab3fbc9":"BGB_Token()","5ab47550":"firstDayCap()","5ab4f162":"getVote(address,address)","5ab50913":"_recalculateAirdrop(address)","5ab58d64":"totalLockedHavvens_limitedSum()","5ab5956e":"startICOStage6()","5ab5d07d":"CROWDSALE_MAX_ACES()","5ab68072":"carTaxiCrowdsale()","5ab6eb7a":"Tabbo()","5ab7603a":"multivestBuy(address,address,string)","5ab7f1a8":"donatedAmount()","5ab81246":"newItem(uint256,string,string)","5ab827f6":"claimableRefund()","5ab89248":"AAcontributors()","5ab92022":"frozenTransfer(address,uint256,uint256,bool)","5ab98b8d":"DragonReleaseableToken(address)","5ab9bb26":"changeBonus(uint8)","5abaaa01":"unicornTokenAddress()","5abacc89":"RANGESTART_9()","5abb37d6":"cancelGame(address)","5abc3339":"create(bytes32,bytes32,bytes32)","5abc52d4":"SALE2_RATE()","5abcc417":"createCastle(address,uint256,string,uint64,uint64,uint64,uint64,uint64,uint64)","5abd7728":"setMinTaskValue(uint256)","5abedab2":"getAllTheFunds()","5abfafe2":"holdAddress3()","5abfc588":"CreatedDebt(uint256,address)","5ac04bed":"CreateMUSC(address,uint256)","5ac0dc11":"doTimeoutForComplainant(uint256)","5ac14935":"test_0_createOpenController_test_methods()","5ac1caa0":"_getCurrentRound(uint256)","5ac207ff":"totalLossAmount()","5ac2523a":"minimalTokens()","5ac26ebd":"devuelveTodasEncuestas()","5ac31e68":"getOrdersForNotary(address)","5ac36d70":"setTeams(address[],uint256[])","5ac3835d":"verifyTransferSignature(address,address,uint8,bytes32,bytes32)","5ac44089":"setHardCapInCents(uint256)","5ac48043":"slice(uint256[],uint256,uint256)","5ac49ba1":"CORE_TEAM_TOKENS()","5ac5c4f7":"Out(uint256)","5ac5ec65":"UsableToken(uint256,string,uint8,string)","5ac5f82c":"computeBonus(uint256)","5ac72734":"tkt()","5ac77ad1":"isLockedOpen()","5ac7a8d0":"UTBToken(uint256,string,string)","5ac7b9f3":"reapFarm()","5ac801fe":"setName(bytes32)","5ac849d2":"liveBlocksNumber()","5ac87d76":"addToWhiteList(address,uint256)","5ac942a7":"getIdentifierByIndex(address,uint256)","5ac9e90f":"readLib()","5aca6153":"setJackpot(uint8[4])","5acb053b":"toggleDead()","5acb6787":"createRegion(uint256,uint256,uint256,uint256)","5acba201":"canOverride(address,address,address,uint256)","5acbd8e1":"ProxyStorage(address)","5acce36b":"getEndowmentBalance()","5ace5128":"_emitBoardClosed(uint256,bool)","5ace83d7":"approveWinner()","5acee3d6":"getFutureTransLength()","5acf061a":"validateContract(address)","5acf34df":"check_data(bytes32)","5acf36ca":"fwithdrawal(uint256,uint256)","5acfefee":"sendProfits()","5ad1854b":"advisersPeriodAmount()","5ad22eb3":"canonizedPLCR()","5ad35ac0":"numberOfTokensAllocated()","5ad550bc":"testAbsMax()","5ad55aa5":"setCurrentSchellingRound(uint256)","5ad5ca74":"createXMLYTrade(bool,uint256,uint256)","5ad64dc5":"deletePick(uint256)","5ad6ba47":"getChronus()","5ad701c2":"getTier()","5ad74742":"ICO_Contract()","5ad7c05c":"getUserRequests()","5ad82148":"getUserid(address)","5ad871d5":"CrowdWithUs(uint256,string,address,uint256)","5ad8803d":"mintAndCall(address,uint256,bytes,bytes)","5ad95948":"wmin(uint128,uint128)","5ad9ca10":"changeBonus(uint8,uint256,uint256)","5ada0f51":"setTkContractAddress(address,address)","5ada7bee":"updateVerifier(uint256)","5adada87":"getPaymentsHeld(address)","5adb5813":"_setTokenURIBase(string)","5adb6ddb":"unfreeze(address,address)","5adc02ab":"confirmWhitelistAddition(bytes32)","5adc0c68":"getAddTokenParameters()","5adcba0e":"getEntryStatus(address,uint32)","5adcf475":"loikikdidad()","5addc540":"forceToken()","5addcc8f":"finishFromDutchAuction()","5ade3f8f":"NectarChina()","5ade7c8a":"getMyChest(address)","5ade9c3a":"removePass(bytes32,address)","5adf292f":"updateKittenCoinsRemainingToDrop()","5adfafdf":"updateRewardPercentageByIndex(uint256,uint256)","5ae11d5d":"order(address,uint256,address,uint256,uint256)","5ae17907":"getLossCount(address)","5ae23da2":"host_claim_earnings(address)","5ae23f84":"getTimeRangeInfo()","5ae270aa":"GToken()","5ae28fc9":"setMaxAge(uint256)","5ae46e93":"RaffleDappBook(string,uint256)","5ae4c04a":"viewprice()","5ae59132":"havvensReceivedForNomins(uint256)","5ae5b24f":"eosPizzaSliceSafe()","5ae5df8f":"deleteRef(string)","5ae61377":"getMaxBusinessesPerCity(uint256)","5ae63989":"WaraCoin()","5ae7ab32":"revokeKey(address)","5ae81492":"canceloffer()","5ae82dfd":"ariseWarrior(uint256,address,uint256)","5ae8a1e0":"updateUserPolicy(bool,bool,bool,bool)","5ae8daea":"getRoundJackPot(uint256)","5ae9c4d8":"getLineData2(uint256)","5aea5955":"ltc()","5aea92f5":"LingYanToken()","5aea9905":"BitrustToken(address,address,address,uint256)","5aeb45dc":"TetherToken()","5aebd1cb":"isRefundable(address)","5aebf21a":"getProviderAdmin(address)","5aebfd14":"createFile(bytes)","5aec11d4":"canUnshelf(string)","5aec2247":"balanceOfPreSale(address)","5aec57d8":"NewRound(uint256,uint256,uint256)","5aec6259":"getUInt(bytes32)","5aed37ef":"manualWithdrawEtherAdditionalOnly()","5aed4fa0":"safetyCheck(uint256)","5aee1bc0":"AirdropBeggarsCommunity()","5aee9431":"method1()","5aeee9f9":"incFightLose(uint256)","5aef2447":"getClaim(uint256)","5aef447c":"presaleBonusTokens()","5aef7de6":"avatar()","5aefd89d":"Freezing()","5af0649e":"confirmNewNotary(address)","5af0dc98":"blockSkills(address,uint256[])","5af0e1ae":"MyWillCrowdsale(uint32,uint32,uint256,uint256)","5af0f053":"approveMove(address,bool)","5af123f4":"bonusRate()","5af14603":"GetSetting(uint8,uint8)","5af1cf27":"foundersWallet1()","5af25671":"HugMathou()","5af2f821":"getCounterProposals()","5af36e3e":"refund(uint256,uint256)","5af3d5bf":"CWCfallback(address,uint256,bytes)","5af3e9d7":"bonusLOT()","5af40b77":"buildPreICOStage()","5af4cd99":"canBurnAddress()","5af5f7ba":"setWhitelisting(bool)","5af6333d":"getGoldInfoSerial(address)","5af73f3f":"getMinimalBalance(uint256,address)","5af77fff":"Contract()","5af82abf":"director()","5af86018":"VPE_Token()","5af89094":"getPMul()","5af95010":"Lenders(address)","5af9f68f":"getTxPaymentMCW(bytes32)","5af9f9d5":"TheSchmeckle()","5afa5036":"isCertified(address)","5afa5bb6":"minValue2()","5afb408a":"Penchant()","5afb540c":"getTokenCount(bytes32,string)","5afbfd4f":"getPublicBattlePokemon2()","5afc190d":"DrawHouse()","5afc250f":"getDad(address)","5afc7e59":"issueFrts(address,address,uint256,uint256,uint256,address)","5afd7627":"setCrowdsaleCompleted()","5afdc02c":"_9_dataSmerti()","5afe16ca":"GetProfile(uint256)","5afe5207":"setTokenSaleAddress(address)","5afeb106":"Sqrt()","5afecaaa":"getAllArtworksByOwner()","5aff457f":"createAuctionFromArray(address,uint256[],uint256,uint256)","5aff59e3":"addrCanPurchase(address)","5aff7e54":"returnBalance(address,bytes32)","5affcbb0":"cancelIndexedSaleByAddress(address)","5b00763e":"ProofOfTrevonJames2()","5b0088fb":"setPlotData(uint256,string,string,string,string)","5b01b5b3":"teamEmail()","5b01e233":"getyestodayget()","5b02b729":"setLockUpPeriod(uint256)","5b04cbb5":"current_state()","5b04e512":"defaultLockin(address,uint256)","5b050e77":"isInGame()","5b053c04":"maxPreSale1Token()","5b054f9b":"chainStartTime()","5b060530":"createToken(string,string,uint256)","5b064754":"LogChiSale(address,uint256)","5b067cce":"testCreateCostMain()","5b06fc49":"HASHPERETH()","5b07371e":"getAttackRanking()","5b0783f3":"setCapRec(uint256[],uint256[],uint256)","5b07d7d6":"_generateGene()","5b09a518":"process(bytes32,bytes[])","5b0a3843":"emergencyWithdrawal()","5b0a6c58":"EasyMineIco(address)","5b0ad787":"getBonusSetter()","5b0b02ec":"deathData_f4()","5b0b7cc8":"payday(uint256)","5b0c12a1":"DeploymentInfo()","5b0cfcd8":"KillContract()","5b0d4eff":"mineral()","5b0d5b55":"getTankEarning(uint32)","5b0d823a":"referalFundBalanceMap(address)","5b0dad8e":"bcdcMultisig()","5b0e1a2f":"releaseMyTokens()","5b0e52b0":"unlockExternalTransfer()","5b0e70ff":"RetireHodl(uint256)","5b0e8b82":"admin_list()","5b0ec73e":"MNCToken()","5b0ef4a4":"getEtherTicket()","5b0efb03":"MintAndTransfer(address,uint256,bytes32)","5b0fc9c3":"setOwner(bytes32,address)","5b1052f1":"getCoinBySlotId(uint64)","5b10b796":"_removeCapper(address)","5b10d05d":"donotDKKDappToken()","5b113414":"mul(uint32,uint32)","5b11380d":"ExTokeB()","5b1214c6":"setCrowdsale(uint256,uint256,uint256)","5b1295d2":"LNDToken()","5b12f1b6":"getAuthorizeContractIds(uint256,uint256)","5b135806":"test_basicWithTwoAssertAfterThrow()","5b14f183":"isPaused(address)","5b151fd2":"fifty_fifty()","5b154394":"GANA()","5b15afb6":"isOuvidoriaCadastrada(address)","5b16ebb7":"isPool(address)","5b174f0b":"EtheremonTransform(address,address,address,address,address)","5b17b190":"onLEXpaContract()","5b18056b":"contributionCount()","5b195526":"getMyCenter()","5b195c86":"transfer(address,uint24)","5b196dae":"getOuvidoriaNome(address)","5b19a8f3":"prossWinOrLoss(uint256)","5b1a77fe":"sentTokensToBountyOwner()","5b1aa9b1":"eugToken()","5b1b5d90":"getTransfer(bytes32,uint256)","5b1b9316":"firstRoundCosmosStart()","5b1c1625":"prepareClaim(bytes32)","5b1c893a":"UBC()","5b1d0d1e":"getOwnerAccessoryCount(address)","5b1dac60":"getSharePrice()","5b1dadc7":"PRICE_PRESALE_WEEK2()","5b1ea858":"signedTransferSig()","5b1eca38":"getTotalDevs()","5b1fe0cb":"sendGift(uint256,address)","5b1fef12":"GetPVPData(address)","5b206edb":"initAmount_()","5b208f76":"PlayX2()","5b209615":"ecrecover1(bytes32,uint8,bytes32,bytes32)","5b21a8b0":"NILEX()","5b21ba6f":"calculateProfit(uint256)","5b21e539":"decline(uint256,bytes32,bytes)","5b225526":"permissions(address,bytes32)","5b225d25":"getLatestManifestByName(address,bytes32)","5b228f88":"CLCToken()","5b229869":"getSenderArmyCount()","5b2298c8":"getSumAmountOfDisputedDealsProPatient()","5b22bbd2":"maxRaiseAmount()","5b2329d4":"checkGoalReached(uint256)","5b23bf8a":"forcePayout()","5b24f87d":"addManyToAllocationList(address[],uint256[])","5b250462":"join_private_room(bytes32)","5b251342":"KAnsariCoin()","5b25c137":"kycVerifiedBonusBps()","5b25ed6a":"tokensLimit()","5b284ecd":"InsertRank(uint256,uint256,uint256)","5b28919c":"getShipType(uint256)","5b28ad15":"dna6(uint256)","5b290c1d":"continueRedeeming(uint256)","5b29f2e4":"icoSold()","5b2a0e96":"multiSend(address,address[],uint256)","5b2a372d":"setTxDataBlockNumber(bytes32,bytes)","5b2aa4ae":"getMatchInfoList01()","5b2b0168":"_refundTokensPurchase(address,uint256)","5b2b2194":"addRange(address)","5b2b345c":"TOKENS_ACCOUNT_MAX()","5b2c44e1":"updateWhitelistInternal(address,address,uint8)","5b2ccdec":"hirerCancel(bytes16,address,address,uint256,uint256)","5b2cdda3":"returnWalletAddress()","5b2d7ad1":"calculate_shares_and_return(uint256,uint256,uint256,uint256,uint256,uint256)","5b2e1eb1":"ETHPonzi()","5b2e299c":"Hypercoin()","5b2e39e0":"releaseEcosystemJM(address)","5b2e9a81":"UpdateSellAgentSiteReg(address)","5b2ec3a5":"createInternalAuction(bytes32,bytes32,uint256,uint256,uint256,string)","5b2f515b":"artistName()","5b2f8752":"claimLoss()","5b303e16":"eatUnicorns(uint256)","5b30535d":"updateFactorReward()","5b30a647":"checkapproval(uint256,address,bool)","5b31035d":"getReward(uint64)","5b325e94":"AddTransactionAgainstExistingEntity(address,uint256,uint256,string,string)","5b329058":"DSGroup(address[],uint256,uint256)","5b33233b":"increaseOwnershipTokenCount(address,address)","5b34b966":"incrementCounter()","5b34f4e2":"newUserAccount(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","5b353cfa":"PMC()","5b35f9c9":"rewardsWallet()","5b364f3b":"chkend(uint256)","5b366096":"changeHDXcontract(address)","5b36fea6":"transferToICAPWithReferenceCallGas()","5b372532":"press()","5b378d39":"ContractorCreated(address,address,address,address)","5b379044":"dateTier3()","5b37e150":"create(bytes32,bytes)","5b387273":"allowWhiteList()","5b38863a":"btcRateMax()","5b389666":"USDCryptoToken()","5b389dbb":"powerUpContract()","5b38a8e6":"updateAssets(address,int256)","5b3a4895":"totalInvestedWithBonuses()","5b3a6f9e":"DomusToken()","5b3b136a":"getMyTokens()","5b3b20e1":"CLN_PER_ETH()","5b3b449f":"incentiveTokensLimit()","5b3bab74":"NeCashTokenSale()","5b3be4d7":"mintAirDropTokens(uint256,address[])","5b3bf07a":"getPrizeNumbers()","5b3d386b":"transferAnyCaerusToken(address,uint256)","5b3d4b16":"SCUDO()","5b3ddbf2":"firstAuctionConcluded()","5b3de1c8":"getBankEth(string)","5b3ea961":"ChangeSharedExpense(uint256,uint256,uint256)","5b3f4d24":"PrelievoProprietario(uint256,uint256)","5b405418":"CallSpread()","5b4078de":"decodePriceFeed(uint256)","5b40a584":"curId()","5b40d5dd":"unlockInBatches(address[])","5b419a65":"join(bytes32,bytes32)","5b42109d":"getNarcoLocation(uint256)","5b4246d4":"proportion()","5b440596":"getWithdrawValue(address)","5b453810":"changeEtherBonuses(uint256,uint256,uint256,uint256,uint256,uint256)","5b454832":"declareDefaultAsBorrower(uint256)","5b45b999":"setMiniMeToken(address)","5b46016e":"KickTheCoinFactory()","5b467404":"getCounts(address)","5b472771":"level_8_amount()","5b475e22":"STARTING_ANTHILL()","5b477c53":"updoot(uint256)","5b4786ea":"getValusTokenIssuance(uint256,uint256)","5b48165f":"lastBlock_v17Hash_uint256()","5b482ec1":"disconnectModule()","5b485314":"IEFBR14()","5b48684e":"optIn()","5b48c11b":"regRefcode(bytes32)","5b48e66a":"changeCroStatus(address,uint8)","5b49ebdf":"GiantWeedKiller()","5b4a54a9":"isCrowdsaleOver()","5b4b1c0e":"orientation()","5b4b73a9":"setData(uint256)","5b4be32b":"setSellStatus(bool)","5b4c084a":"updateHpbNode(address,bytes32,bytes32)","5b4c3543":"options(bytes32)","5b4c6994":"setArbitratorI(address)","5b4cc249":"newSale(address,uint256,uint256)","5b4cc320":"onOwnershipTransfer(address,uint256,bytes)","5b4ccc9d":"addParticipants(address[])","5b4d20d2":"requireWhitelistedAddress()","5b4df1ca":"ROLE_CONTROLLER()","5b4ef70b":"eth(uint256)","5b4f472a":"tradingStarted()","5b4f5feb":"assignCardOwner(address,uint64)","5b500996":"bringuPort(address)","5b508cf0":"createRegulatorProxy(address)","5b511030":"activateSecondPreIco()","5b519132":"getInitHash(bytes32)","5b51a6d8":"getMintDelegates()","5b51acff":"migrationTarget()","5b525b2c":"changeItemName(uint256,string)","5b528aaf":"KaiKuangChain(uint256,string,string)","5b528ba1":"bonusPer(uint256)","5b52b9db":"WLMTfinney()","5b52c7fb":"GROWTH_SUPPLY()","5b530196":"tokensOfkitty(uint32)","5b53d291":"advisersTotal()","5b5416ca":"unfreezeTimestamp()","5b548ab4":"mixAuto(uint256,uint256)","5b54f077":"promissoryUnits()","5b55169c":"minContribAmount()","5b556bf0":"ZeroExHandler(address,address)","5b56be8b":"prevEndTime()","5b56d57f":"getGameStartBlock(uint256)","5b588f26":"cfoWithdraw(uint256)","5b59af9c":"OwnershipAdded(address,address)","5b5ae956":"Bytes4ToByteArrayWithLength4()","5b5aed3a":"identityExists(uint256)","5b5b45ef":"privateOfferingExchangeRate()","5b5bbb31":"changeSettings(uint64,uint64,uint8,uint8,uint16)","5b5c7705":"withdrawPlayer()","5b5cf8cf":"PacersvsCavaliers420()","5b5d1d88":"TMRToken()","5b5d2c8f":"updateValue(bytes32,uint256,uint256)","5b5ddb94":"read(bytes,uint256,uint256)","5b5e450b":"masterKeyIndex(uint256)","5b5e760c":"getTokenWinValue(uint256)","5b5e7bbe":"setAssetsOnDeposit(uint256)","5b5ecf19":"CryptoSagaArenaRecord(address,uint32,uint8,uint8)","5b5f8b88":"transerFrom(address,address,uint256)","5b5fa6ba":"ownerTemp()","5b60fa6b":"createTeam(uint256,uint256)","5b61291c":"aekS()","5b621b2c":"_setMintableProperty(uint256,bytes32,bytes32)","5b624b6e":"setinfo(string,string,string)","5b630d59":"EFH(uint256,string,uint8,string)","5b633cf2":"getItemsIdsByTypeAndOwner(string,address)","5b63831a":"getMinimumPurchaseVZTLimit()","5b6427fc":"nextNumberOfWagersToMinimumTimeout()","5b65b9ab":"setFee(uint256,uint256,uint256)","5b65da64":"getPhaseSupply(uint256)","5b6682aa":"Tom(uint256,string,uint8,string)","5b66cc84":"transferLog(address,uint256,string)","5b680aa6":"spentAllowance()","5b68a49d":"cancelVoteForCandidate(address,uint256)","5b68e09b":"appAccounts(uint256)","5b68f3a6":"Loggable()","5b6a42b8":"setNewMonster(uint256,uint32,address,string,string)","5b6a54bc":"adjustTransactionFee(uint256)","5b6a9eb4":"minCost()","5b6aa3c2":"isMinTokensReached()","5b6accb2":"manualBatchTransferToken(uint256[],address[])","5b6b431d":"Withdraw(uint256)","5b6beeb9":"getHash(string)","5b6c508c":"exitAll()","5b6ca99a":"setHint(string)","5b6e2492":"getDesignatedReporter()","5b6e7be2":"updateTokenBalance()","5b6edf78":"DISCOUNT_TOKEN_AMOUNT_T1()","5b7121f8":"getMinter(uint256)","5b714690":"valueBeforeFeesWereReduced(uint256)","5b715ae0":"referralProgrammeWallet()","5b7214b6":"m_ETHPriceUpperBound()","5b72c3b7":"eraFromMokenData(uint256)","5b72cdd0":"estimateBalanceOf(address)","5b73024a":"opAddr()","5b73b332":"extendTge(uint256)","5b7450fc":"isOperable(address)","5b752d5d":"getjackpot()","5b754491":"transferFromTx(address,address,address,uint256)","5b75dd8d":"getSubscription(address,address)","5b7633d0":"signerAddress()","5b764811":"_jMul(uint256,uint256,uint256,uint256)","5b766089":"isCreditor()","5b766196":"hasWon(address,uint256)","5b767e86":"getArbiter(address)","5b791420":"isProxyForSender(address,address)","5b7991cd":"extensionsCount()","5b79b275":"_currencyToToken(address,uint256,bytes)","5b79dbe5":"reserveForTeam(address,address,uint256,uint256)","5b7a50f7":"setOldToken(address)","5b7a78c8":"test1_overlappingIntervalSameNode()","5b7ab891":"BAT()","5b7b716c":"tgrSettingsMaxStages()","5b7b72c1":"createCloneToken(address,uint256,string,uint8,string,bool)","5b7baf64":"claimRefund(uint256)","5b7c2dad":"getUserPosition(address)","5b7c38ad":"getLLV_edit_22()","5b7ca9c6":"addPrizePool(uint256)","5b7d47a9":"betOnColor(bool,bool)","5b7d9043":"creditAccount(address,uint256)","5b7da338":"_balanceOf(uint256,bytes32)","5b7db24d":"addRemoveCountry(string,string,bool)","5b7dc56a":"updateLuckyblockSpend(bytes32,address[],uint256[],uint256)","5b7eed81":"T1898Token()","5b7f415c":"TOKEN_DECIMALS()","5b7fc27f":"getInitializParentUniverseValue()","5b7fd9b5":"brands(address)","5b806645":"badgeCount()","5b80f497":"getAvailableIds()","5b814e16":"freezing()","5b824208":"changeMinimumTimeBeforeUpdate(uint256)","5b82d694":"SetClaimFee(uint256,uint256)","5b8315e4":"TokenSCADAEntity()","5b833f1e":"nextTokenOwner()","5b839dd2":"initBonusSystem()","5b83b7f1":"investorExists(address)","5b84bb27":"MYTOKENNAME()","5b850d92":"PollCreated(address,address)","5b859394":"PunkBidEntered(uint256,uint256,address)","5b859500":"hardcapInEther()","5b863b5a":"ZenomeSale(address,address,uint256)","5b86914d":"bet_value()","5b869e68":"DeviceAddr()","5b86ce97":"buyEggWithToken(address)","5b86f599":"increaseBalance(address,uint256)","5b8710e5":"checkTransferRequirements(address,address,uint256)","5b87a2f2":"confirmreward()","5b8807d9":"claimReserveTokens()","5b88349d":"claimAirdrop()","5b889ab8":"ammount()","5b8943ff":"addAffiliate(address,address)","5b89a48a":"lockEpochsMap(address,uint256)","5b8aa811":"setRequiredParticipation(uint256)","5b8ad515":"isUtilityHolder(address)","5b8b4f91":"refererAllowed(address,address,address)","5b8bcb53":"CappedSale(uint256)","5b8be30c":"TheCoinSale()","5b8c6b58":"RoundBHardCap()","5b8d02d7":"payoutAddress()","5b8e48df":"swypes(address)","5b8fa846":"payDividends(string)","5b8fb4ae":"EthKing()","5b905b6c":"newProposal(string,bytes32,bytes32,bytes32,string,uint256,uint256)","5b90ed39":"emitEscrowUpdated(address)","5b91aa6b":"underNumber()","5b91fd60":"performTheMagicTrick()","5b9248aa":"correctResult(int8)","5b9283e7":"isInvalidEarlyPurchase(uint256)","5b92cdee":"bountyAffiliateWallet()","5b92e548":"CreateCBT(address,uint256)","5b93c2bc":"getWinnerAddressList()","5b940081":"releasableAmount()","5b945c0e":"getLableList()","5b947f36":"ItasToken()","5b94db27":"nominateOwner(address)","5b95f65e":"getAddressesByDocHash(bytes)","5b9632ca":"minValue1()","5b96c1e7":"oracleMasterCopy()","5b980628":"collectFunds()","5b984ff6":"enableWithdraw()","5b9900ce":"getWeiforTokens(uint256,uint256,uint256,uint32)","5b99cb2b":"joinGame(uint256,uint256,bytes32)","5b99df7f":"transferWithFee(address,address,uint256,address,address,uint256)","5b9a4690":"convertToMiniRYC(uint256)","5b9af12b":"addValue(uint256)","5b9b0609":"maxContribAmount()","5b9b44bf":"startDefinedGame(uint256)","5b9eb8ab":"CONVERSION_NUMINATOR()","5b9f7cbe":"createNode(bytes32,bytes32,bytes32,address)","5b9fdc30":"getSecret()","5ba05024":"getInsuranceByAddress(address)","5ba0cd78":"BitcoinZ()","5ba13abf":"createMulti(uint256,address[])","5ba17b2d":"NewtonTree()","5ba1a1d4":"viewKarmaVotesBySymbol(string,address)","5ba2dd22":"conflictRes()","5ba32008":"FDKToken()","5ba39782":"getCommentAccounts()","5ba3e63e":"MultiSigRules(address[])","5ba58955":"beneficiaryBalance(address)","5ba5b1b2":"setSoldPreSaleTokens(uint256)","5ba67330":"SendDivs()","5ba6c017":"setTotalSpentPerDay(uint256,uint256)","5ba83c0d":"getMEATime()","5ba87a4d":"getWithdrawedToken()","5ba88490":"privlocatumICO()","5ba88c28":"debug2()","5ba8c608":"activePoll()","5ba8eb42":"getClearance(address,address)","5ba91006":"Sports3D()","5ba92d7d":"_freeze(address,uint8)","5ba9e48e":"nextPriceOf(uint256)","5bab1a63":"totalEthxRecieved()","5babb758":"testSetUp()","5babe01b":"distributedBountyStakes()","5bac1e11":"ReclaimBegun()","5bad05bd":"hardCancelOrder(uint224)","5bad9fa7":"walletOut2()","5badbe4c":"requestCount()","5badcd08":"TokenFulfillment(address[2],uint256[7],uint8,bytes32[2],uint256)","5badf100":"fireOnChanged(bytes32)","5bae2120":"test_doubleVotingFor()","5bae3f75":"CategoryAdded(uint256,string)","5bae4e98":"getOwnerRating()","5bae510d":"deposits(uint32)","5bae8c36":"isNewParent(address)","5bae9ce9":"blacklisted()","5baef4f3":"INCREMENT_RATE()","5baf039f":"add(address,address,address,address)","5baf4a09":"ausgroupTransfer(address,uint256)","5bafecf5":"calculateFloatingValue(uint256,uint256,uint256,uint256,uint256,uint256)","5bb0fa46":"RESERVE_EXCHANGE_SHARE()","5bb18362":"isReadyToBear(uint256)","5bb2b102":"registerNameCore(uint256,address,uint256,bytes32,bool,bool,uint8)","5bb31436":"transferKnightOwnership(address)","5bb3e5f6":"fixNoCallback(bytes32)","5bb41203":"test_oneAssert()","5bb447a8":"NOTtoken()","5bb47808":"setFactory(address)","5bb4df3c":"assignFrom(address,address)","5bb59815":"claimWarranty(string,uint256,string)","5bb5b917":"insureClient(address,address,uint64)","5bb5bb86":"dtGetBuildingData(address,uint256)","5bb7cf11":"ERC20(address,uint256,string,uint8,string)","5bba11bd":"bonusTicketsPercentage()","5bba3307":"splTransferFrom(address,address,uint256,uint256)","5bba6a7c":"propagateRequest(address,uint256,bytes32,bytes32)","5bba7aa5":"_assignBlocks(bytes16,bytes16,uint8,uint8)","5bbb7c42":"CPCEFund()","5bbdc7c5":"accrueTeamTokens()","5bbe66a7":"lastBlock_a15Hash_uint256()","5bbe6790":"Electronero()","5bbe8a33":"EGYPTTEST()","5bbee518":"investmentETH()","5bbf9c94":"arbLocked(address)","5bbfd0d7":"mintedGBT()","5bbfe9b6":"_myGroupHelper()","5bc008a0":"getAccessLevel(address)","5bc02d5c":"GooGameConfig()","5bc07110":"numArticlesPublished()","5bc0b4db":"ONESATOSHIToken()","5bc22d1b":"getStart(uint256)","5bc34f71":"currentStep()","5bc4e163":"drainRemainingToken(address,uint256)","5bc550fe":"mining(bytes)","5bc5c1a8":"getRoundDividendPerBBTHelper(uint256)","5bc5cf42":"mocatoken()","5bc60cfc":"win(uint256)","5bc6d41d":"doDisableSellerCancel(bytes16,address,address,uint256,uint16,uint128)","5bc6e107":"GetEscrowCreationDate()","5bc72460":"alterBannedStatus(address,bool)","5bc7285f":"sumICOStage3USD()","5bc789d9":"tokenVault()","5bc7e259":"updateRelease(uint32,uint32,uint32,bytes,bool)","5bc8a672":"setDetachmentTime(uint256)","5bc91b2f":"createRound(uint256,uint256,uint256,uint256)","5bc97d73":"Purchase(address,uint256,uint256,uint256)","5bca7f38":"set_pre_kyc_iconiq_bonus_numerator(address,uint256)","5bcabf04":"baseUrl()","5bcafcf3":"ProfitByCard(address,uint32)","5bcb2fc6":"submit()","5bcbc0f9":"PRICE_DIVIDER()","5bcc1072":"addressesToChatMessagesLeft(address)","5bcc209d":"getTokenAmountForEther(uint256)","5bcc29d7":"setDefaultURIStart(string)","5bcc437c":"revokePastDelegations()","5bcc7928":"saleType()","5bcc8198":"tokenCommissionReceiver()","5bcd3dba":"ACAToken(uint256,address,address)","5bcf6674":"setMinimumAllowedWei(uint256)","5bd1b8c5":"countCars()","5bd1f067":"OONE()","5bd26361":"sentTokensToPartner()","5bd2cc9f":"Notified(address,uint256)","5bd4349b":"getTotalGames()","5bd475fd":"destTokensDevs()","5bd479ac":"SoccerBet(string)","5bd489e1":"HelperPortion()","5bd54fa3":"setCryptoSagaCardSwapContract(address)","5bd5e89c":"decreaseArrivalTime(uint256,uint256)","5bd674dd":"gallerySeven()","5bd74490":"regProxy(address,address)","5bd7b9fd":"Rbank()","5bd7c609":"getEtherDiceProfit(uint256)","5bd7ebc5":"changeMinInvest(uint256)","5bd91213":"TransferKO(address,address,uint256)","5bd9279c":"placeBuyNowOffer(uint256,uint256)","5bd948b1":"useEIP712()","5bd9749c":"initialValidators()","5bd9abfb":"CreateTestCoin()","5bd9e637":"buyLC()","5bd9ea2e":"out5Done()","5bda1af0":"startCrowd(uint256,uint256,uint256,uint8,uint8)","5bda8fa4":"setSecondTime(uint256)","5bdaa6dd":"Token_Price()","5bdaeba2":"PausableTokenMock(address,uint256)","5bdb280f":"RESERVES_SHARE()","5bdb9ddf":"changeStepPricesLimits(uint256,uint256,uint256)","5bdc3c53":"setImmigrationCtrl(address)","5bdcc165":"batchTrasferByValue(address[],uint256[])","5bdcd0b0":"lifetimePayouts()","5bdf7b4f":"initilSupply()","5bdfaaff":"ASIABITSToken(string,uint8,string)","5bdff855":"gettotalCardDivs(uint256)","5be0497e":"getAdjacentCells(uint8)","5be1d5c3":"buyBlueStarEgg(address,uint256,uint16)","5be2aca0":"tokenRegistryAddress()","5be4d442":"setTrustedContract(address,bool)","5be53284":"GlobaleCash()","5be54515":"assignBountryToReferals(address,uint256)","5be5d9e3":"XdacToken(uint256)","5be5e3ec":"castVote(uint256,uint256,uint256)","5be60644":"sendcdd(address,uint256,address)","5be62401":"createUserWithProxyAndRecovery(address,address,uint8[],uint256,uint256[],uint256[])","5be6affc":"CloverCoin(address)","5be6d2eb":"exitPot()","5be782d1":"WORLDMOBILITY()","5be7cc16":"transferAdminship(address)","5be7fde8":"releaseAll()","5be80e85":"markCompromised()","5be89fac":"dAlterPull(uint96)","5be989d1":"CRYPTOBITECOIN(uint256,string,string)","5bea05b1":"getUSDBtc()","5bea0e1c":"calculateDividend(uint256,address)","5bea2941":"LYBT3Token(uint256,string,uint8,string)","5bea641a":"change_admin_commission(uint256)","5beb1d8f":"currentIcoPhaseMinimum()","5beb3f61":"WhitelistedStatusUpdated(address,uint256)","5bebe2c6":"getData_32()","5bebefdc":"checkForInterest(uint256,bool)","5bec1496":"ChangeQuota(uint256)","5bec9e67":"infinite()","5becf24c":"confirmChannel(uint256)","5bee29b7":"retrieveData(uint256)","5bee29be":"setSalary(uint256,uint256,uint256)","5bef1208":"getModuleIDByHash(bytes32)","5bef95a2":"setFiscalVerify(uint256,uint256,bytes32)","5befbb9b":"calceth(uint256)","5bf042e5":"setTradeAddress(address,address)","5bf0cb1f":"isTransferAllowedadv()","5bf1f2f8":"numberOfAbilitiesSold(uint256)","5bf2a4e9":"contains(bytes32,bytes32)","5bf339b1":"DogCore()","5bf3a315":"isTrustedContract(address)","5bf4063d":"minEthValue()","5bf47d40":"bntyController()","5bf5c29c":"_createHero(uint256,address)","5bf5d54c":"currentStage()","5bf608b8":"getBuyer(uint256)","5bf72bb1":"use_test_data()","5bf85c28":"CryptomniumChain()","5bf8633a":"nftAddress()","5bf95e43":"strategicAllocated()","5bf9755e":"setUint256(uint256,uint256)","5bfb1dab":"EIP20Token(uint256,string,uint8,string)","5bfb8ff2":"getRegistration()","5bfbbe39":"_transfer_internal(address,address,uint256,bool,bytes)","5bfc61c0":"claimPlot(uint256)","5bfd1ab8":"unBlockAddress(address)","5bfd8efe":"blockSettlementHash(uint64,uint64)","5bfdab26":"queryWithdrawed(uint256)","5bfdb8b2":"crowdsaleStartingBlock()","5bfdc700":"registerData(address,int256,bytes,address)","5bff1aa8":"EOSCToken()","5bfface4":"setBuyComission(uint256)","5c003af9":"TOKEN_WITHDRAWAL_END_DATE()","5c004bcc":"sendFrom(address,address,uint256)","5c006f75":"changeHoldByAddressIndex(address,uint256,uint256,uint256)","5c00ad5e":"ShowPercent(address)","5c0133d9":"filled()","5c016b91":"ownerDisablePayee(address,address)","5c01943a":"bountiesBalance()","5c0252fe":"setOnlineTime()","5c025e03":"authorizeOperatorByTranche(bytes32,address)","5c0286c0":"changeLOT(uint256)","5c0305ec":"EUTBToken()","5c042d0f":"BiQCrowdFund(address,address,address)","5c044b86":"roundThreeTime()","5c04e9f8":"firstXRChangeBlock()","5c062d6c":"currentDifficulty()","5c06d880":"getRateWithoutBonus()","5c071492":"hardCapLow()","5c0796fd":"emitUserCreated(address,address,address,address,uint8[],uint256,uint256[],uint256[])","5c07993b":"investorInterest()","5c07ac94":"changeCrowdsaleRate(uint256)","5c084a25":"get_pvn_token_balance(address)","5c0a8177":"claimOCDividend()","5c0a9b8d":"transferToContractAddr(address,uint256)","5c0b51fb":"theList(address)","5c0ba18e":"BitBoscoin()","5c0cc07a":"TAXChain()","5c0e6166":"Bill(address,string,uint8,string,uint256,uint256,uint256,uint256,uint256)","5c0e6bc4":"icoTokenPrice()","5c0f82b7":"GetIdByAddr(address)","5c0f9a3e":"getStrandGenesisBlockHash(uint256)","5c0fc34c":"freedomcryptotoken(uint256,string,string)","5c0fed8e":"EOBIToken()","5c100cc2":"setPreIcoDiscount(uint256)","5c1020f9":"addPhenomenon(string,string,string,string,uint8)","5c102782":"reward(address,uint256,string)","5c10286a":"auctionsEnabled()","5c1098c3":"crowdSaleOverTimestamp()","5c109a59":"updateStatus(address,address,uint256)","5c10b2e8":"contributionsAddress()","5c10cab8":"collected_crowd_wei()","5c10ec87":"preSaleDurance()","5c10fe08":"proofOfWork(uint256)","5c12a0e8":"DroneShop()","5c12cd4b":"getPlayer(address)","5c12f040":"emergencyWithdraw(bool)","5c131d70":"burnMax()","5c135535":"gooBalanceOf(address)","5c1397de":"signup(bytes32)","5c13a439":"checkAccount()","5c13d06f":"checkLockedToken()","5c13e2b5":"end_ICOs()","5c142f2b":"freezeAccountWithToken(address,uint256)","5c146b80":"_existCaller(address)","5c148b47":"calcClaimableTokens()","5c1548fb":"getCollateral()","5c164624":"decisionOf(bytes32)","5c1671a6":"hasSameArrayLength(address[],uint256[])","5c16e323":"__executeOrderInputIsValid__(address[4],uint256[8],address,address)","5c17f9f4":"approve(address,uint256,bytes)","5c19a95c":"delegate(address)","5c1b3a68":"setPrvdWallet(address)","5c1b3ca1":"getConfigUint(int256,bytes32)","5c1b9377":"TestBNB(uint256,string,uint8,string)","5c1b94d1":"publicGetRound()","5c1bc695":"addSubDivision(address)","5c1d2215":"mintTokensLocked(address,uint256)","5c1f71af":"setAllowBurns(bool)","5c206c6b":"FreeTokensIssued(address,address,uint256)","5c206f41":"finalValue()","5c207547":"wantsBusiness(bytes32,bytes32,address)","5c20ad9e":"multiValueBatchTransfer(address[],uint256[])","5c20c1dc":"distributePuppyCoinSmall(address[])","5c20eec6":"twentyThirtyTokens()","5c221385":"preciowea()","5c221816":"burnAccountMoeny(address,uint256)","5c222bad":"getAsset()","5c22aaae":"setGameTransferFlag(address,bool)","5c2323e7":"authorizedToTransfer(address)","5c239e58":"createItemSaleMarkets(uint256,uint256)","5c23bdf5":"resolve(bytes32)","5c242c59":"query1(uint256,string,string,uint256)","5c243f03":"GetLengthofList()","5c251cbf":"releaseStake(address,bytes32,uint256,uint256,uint256,bool)","5c253f52":"o_novo_problema(uint256)","5c25e903":"_lockNinja(uint256,uint16)","5c261556":"initFrozenTokenMap()","5c26a007":"IsEnable()","5c272fb2":"Unblocked(address)","5c27bbf6":"CryptoCompare()","5c27cdc3":"mintTeamTokens(uint256)","5c28c7e0":"privateSaleList()","5c2930ad":"shareholders(address)","5c2a8763":"percentageToReinvest(address)","5c2b0287":"BOXSToken()","5c2b1119":"getTop()","5c2b18e9":"VestingFund(address,uint256,uint256,address)","5c2bdc9f":"GainCard2(address,uint32)","5c2c2005":"issuePrice()","5c2c8db7":"withdrawToAddress(address,address)","5c2cc46d":"findResNameByAddress(address)","5c2ccaba":"GslStandardToken(uint256,string,uint8,string)","5c2d0e53":"KUNAsToken()","5c2e7a00":"setTokenBurnFeeProp(address,address,uint256)","5c2e7a13":"QuestionStore(address)","5c2e891c":"ECAP()","5c2eb1ef":"honestisFortbackup()","5c2ee908":"updateWinners(address[])","5c3004da":"getPpls(uint32)","5c30be8e":"callOracle(address,uint256)","5c314df0":"MINER_STAKE()","5c31f93b":"unpublish()","5c320516":"changeAmount(uint256)","5c32460b":"isAddress(address)","5c328e3d":"getMyAcceptance(address,uint256)","5c35b4e1":"exchangers(address)","5c35f464":"_modAccountBalance(bytes32,uint256)","5c361091":"PeerBetting()","5c36901c":"isActive(bytes32)","5c36a0bb":"collect(int32,int32)","5c36b186":"ping()","5c36e11c":"identified(address,address,bytes32)","5c37a17c":"saySomething(bytes)","5c390f82":"tokenEquivalent(uint256,uint256)","5c39b671":"sendOwnerCommission()","5c39c1ab":"collectedAddressesCount()","5c39ec58":"addClaim(address,uint256,uint256,bytes,bytes,string)","5c3a4c3d":"startRick()","5c3c8c87":"putHere()","5c3cd827":"allOfferingSupply()","5c3cdec8":"getTotalFeeStake()","5c3d005d":"demote(address)","5c3d6a7d":"setSaleAuction(address,address)","5c3dcfde":"listedTokensAsBytes(uint256,uint256)","5c3e38ee":"updateMinSpend(uint256)","5c3e426c":"adminRetrieveDonations(address)","5c3f9765":"endDateClose()","5c3ffada":"getPlayerCardIdsForTeam(uint256)","5c40329e":"setPresaleTime(uint256,uint256)","5c40839f":"GenevExch(address,address,address,uint256,uint256,uint256)","5c40f6f4":"setStatus(bool)","5c416306":"extractApprovedIndexLength()","5c417695":"burnMana(uint256)","5c4271c9":"issueDividendRewardBips()","5c42d079":"getProvider(uint256)","5c4301f2":"multiExecute(address[],uint256)","5c435396":"show_the_name_of_Option_D()","5c43fce3":"showteam(address)","5c44a837":"RemainingTokenStockForSale()","5c44c3e5":"addAdv(address,string)","5c45079a":"dropToken(address,address[],uint256[])","5c45872e":"_addCategory(address,uint256,uint256)","5c4633a4":"_revealNumber(address)","5c469570":"ReiDoCoinToken()","5c473764":"RESERVE_FUND()","5c474f9e":"saleStarted()","5c475676":"getProposal(uint256,bytes32)","5c47e306":"advisorsTokensPercent()","5c47ead7":"getParticipantData(address)","5c481d8b":"convertToWei(bytes32,uint256)","5c492129":"totalGamesPlayed()","5c49660a":"privateIcoTokensForEther()","5c4978e0":"getCurrentYearGameMiningTokenCap(uint256)","5c49d96c":"nTickets()","5c4a627f":"totalPreICOAmount()","5c4b4c12":"transferPreSignedHashing(address,address,uint256,uint256)","5c4bade1":"transferEtherTo(address)","5c4bfa10":"buyout()","5c4c9f6f":"WithdrawToken(address)","5c4d3609":"getTargetDesignatedReportNoShowsDivisor()","5c4e10e8":"sendLimitTokensToFounder(uint256,uint256)","5c4f4024":"tryRoundEnd(uint256)","5c4fb1c5":"comisionGetter()","5c5020e7":"setValidatorStake(bytes32,uint256)","5c50c356":"getTotalBonded()","5c50c63a":"isTokenTransferLocked()","5c511a2a":"OrphanWalefareToken()","5c5204d6":"changeOwnerTo(address)","5c52b434":"Boxicoin()","5c52bba7":"countParticipants()","5c52c2f5":"resetSpentToday()","5c52e51e":"processPayout()","5c53ec59":"setReasonableDiff(address[],uint256[])","5c54305e":"InsufficientFunds(address,uint256,uint256)","5c552879":"bytesToBytes8(bytes)","5c552fab":"getMetadataUser(address)","5c5557e7":"setKWHForGas(uint256)","5c561fff":"removeAllowedTransactor(address)","5c56afa3":"priorTokensSent()","5c58ad8e":"processDiceBet(uint256,uint256,int256,bytes32,bytes32)","5c590683":"SomeRegister()","5c5991d4":"token_ratio()","5c5a8ad5":"LogBid(address,address,uint256,uint256,uint256)","5c5b9f8f":"depositTokens(address,uint256,uint256)","5c5ce16e":"NXTokenCoin()","5c5d625e":"getProof()","5c5dc9a0":"embark(uint16,uint16,uint256)","5c5df66a":"setRequiredExpIncreaseFactor(uint32)","5c5e0aca":"setGrowingMaxPerDay(uint256)","5c5e20b6":"revertAuction(uint256)","5c5e274e":"mMaxChainCode()","5c5e54c9":"hasBothAttributes(address,bytes32,bytes32)","5c5f786e":"s4(bytes1)","5c5f7c5b":"setAdvisorsTokensPercent(uint256)","5c60da1b":"implementation()","5c60f226":"deleteUser(address)","5c612167":"newMultiService(address[])","5c613a03":"bountyReservedBalanceOf(address)","5c617279":"registeredApps()","5c61c853":"getProposalIndex(uint256)","5c61d628":"changeFundingLimit(uint256,uint256)","5c61f9b4":"getBlockResult(uint256)","5c6224c9":"Operational(address)","5c622a0e":"getStatus(uint256)","5c622c09":"getIsSendingLocked(address)","5c629788":"totalLevel(uint256[])","5c634241":"CanaryV6()","5c64bb72":"getCurrentSale()","5c658165":"allowed(address,address)","5c659bdb":"declareHanged(address,uint256[])","5c665f89":"getFunds(address,bool)","5c66bd58":"addWeapon(address)","5c67a5db":"approvalRatio()","5c67ae76":"PRE_COIN_PER_ETHER_ICO()","5c67dd1e":"getBlockRoot(uint256,uint256)","5c67f7b0":"transferFromTgefund(address,uint256)","5c68908b":"CategoryCatalog()","5c693657":"setMaxPower(uint256)","5c69d5d6":"completeOrder(bytes32,uint256)","5c6a0246":"fundsClaimed()","5c6a6edd":"bloquear_contrato()","5c6ae355":"removeAuthorizeduser(address)","5c6baf3d":"createProxyAddressFor(address)","5c6bcad4":"transferFromOrigin(address,uint256)","5c6bd930":"calculateBonusToken(uint8,uint256)","5c6c8903":"Buy(address)","5c6cad31":"storeCryptoNames(string)","5c6ce321":"RDT()","5c6e0ebf":"getScenariosInfo(bytes32,string,string)","5c6eb2d2":"atl()","5c6eb7ae":"withdrawStock()","5c707f07":"setName(string,string)","5c714e90":"starterPackPrice()","5c71ae10":"EEZOToken()","5c71dec8":"FreezeAdmin()","5c72b160":"invalidatePendingWithdrawl(uint256)","5c72de09":"BONUS_ICO_ROUND3()","5c7460d6":"userRegistry()","5c752f6b":"incGen0Count()","5c7584b9":"isEarlyInvestors()","5c75df30":"churn()","5c76ca2d":"paidOut()","5c770267":"RefundVault()","5c7713d4":"CountCow(address)","5c77582f":"changeTeamCosts(uint256[])","5c78f9e2":"getDepositorsTokens()","5c796720":"CurrentIceDelta()","5c7a281d":"HugsByMathou()","5c7ae6e3":"ethDivsOwing(address)","5c7b0288":"gemAttackConversion()","5c7b35f8":"resetTokenOfAddress(address,uint256)","5c7b79f5":"cashOut(uint256)","5c7b9ccf":"BASE_POS()","5c7c43fa":"maximumBuyBack()","5c7c49c9":"validateKey(bytes32)","5c7c9aa4":"checkAccountState(address)","5c7cbb0f":"_decode(bytes32,bytes32)","5c7d6425":"setPVPEntranceFee(uint256)","5c7f3d9a":"hatchMorties(address)","5c7f7f63":"getGrantees()","5c7fe08e":"PURCHASE_AMOUNT_CAP()","5c803f19":"alarmRaised(uint256)","5c803f36":"empties(address)","5c80461e":"isInStage1()","5c80b448":"setMatingSeason(bool)","5c810f09":"disableSellerCancel(bytes16,address,address,uint256,uint16)","5c812737":"payoutMultiplier()","5c8136c2":"retrievedTokens()","5c81662e":"internalMint(uint8,address,uint256)","5c81b8f9":"MIRCOOToken()","5c852231":"updateSizeBonus(uint256)","5c85267b":"PaymentChannel(address,uint256)","5c85974f":"setTxLimit(uint256)","5c8747cd":"getSoftwareVersionRecords(uint32)","5c87e40f":"SignatureCheckerChanged(address)","5c88da6f":"getUSD()","5c894469":"getPlayersByTrackId(bytes32)","5c89c10d":"setBannedCycles(uint256[])","5c8a1053":"extend(string)","5c8a694e":"FundableToken()","5c8a733a":"b32toString(bytes32)","5c8b94e7":"applyWithdraw(address,uint256,uint256)","5c8c02b3":"getWinnerById(uint256)","5c8cb8c0":"DBIPToken(uint256)","5c8cf750":"cancelTransaction()","5c8d1a6b":"setAtomMoth(uint256,uint64)","5c8e7376":"stageEco()","5c8fe438":"books()","5c908ee5":"DawnX()","5c90b9a8":"createRequest(address[3],address,uint256[12],uint256,bytes)","5c919aa3":"getDemurrageableBalance()","5c91cdfa":"createPenguin(string,uint256,uint256)","5c91fa67":"test_3_assertGasUsage200Boards()","5c92abfd":"GameVerified(bytes32)","5c9302c9":"currentDay()","5c9442a1":"addAdminList(address[])","5c97404a":"domainPrice()","5c975abb":"paused()","5c978499":"checkValidityOfBalance()","5c979fe4":"setRegistrar(uint256,address)","5c97efd6":"updateIcoStartTime(uint256)","5c97f464":"WNTOToken()","5c9920fc":"vaultClosed()","5c9a7a8b":"getCarType(uint256)","5c9b62b4":"comprarSala()","5c9c5a6f":"checkGameIndex()","5c9cc81f":"getFundDetails(address)","5c9d0fb1":"CROWDSALE_ALLOWANCE()","5c9d4528":"mainCapInWei()","5c9fa6ad":"bidSpread(bytes32,bool,int32)","5ca11c34":"minSalePrice()","5ca177cb":"LINK(uint256)","5ca1bad5":"CallScheduled(bytes32)","5ca1c5a0":"getNodeValue(bytes)","5ca1cacc":"changeMinEth(uint256)","5ca1e165":"getRoot()","5ca20102":"_checkPixelUnderRight(uint256)","5ca21490":"BitMilleCrowdsale()","5ca26ff9":"updateGuPhrase()","5ca3400c":"WithBeneficiary(address)","5ca3bf76":"setSendErrorValue(address,uint256)","5ca48d8c":"tokensLocked(address,bytes32)","5ca4d4bb":"disableScriptExecutor(uint256)","5ca5b054":"metherToken()","5ca5b334":"enableManager(address)","5ca6fa4a":"Nostradamus()","5ca7f2f0":"LivepeerVerifier(address,address[],string)","5ca81139":"createOnDay(uint256)","5ca86447":"put(address,uint256,uint256,uint256,uint256)","5ca8bc52":"returnIt()","5ca8e2ad":"ModultradeStorage()","5ca91d7f":"faddress(address)","5caa0dec":"currentSeries()","5caaa536":"confirmReference(address,uint256,uint256)","5caabecf":"transferFromWithReservingNet(address,address,uint256)","5cac0176":"MJT()","5cac79b2":"LockedCrowdSale(address)","5cac8b27":"amazing()","5cacdf29":"testChickenCnt()","5cad249c":"getLastWinNumber()","5cad7cfb":"getCrowdsaleStatus()","5cade372":"payAllOut()","5cae7767":"removeTrustedPartner(address)","5caed029":"tokenDecimal()","5cafbafb":"newMember(address)","5caff1a7":"Criptolira()","5cb047e8":"toInt(bytes,uint8,uint8)","5cb0887c":"contractExists(address,address)","5cb0c16f":"totalInCirculation()","5cb10016":"offchainSale(address,uint256)","5cb1470e":"_createRabbitInGrade(uint256,address,uint8)","5cb18a6d":"fipsLegacyRegisterMulti(bytes20[],address,bytes)","5cb24756":"unitEthWei()","5cb2d86e":"totalBlockContribution(uint256)","5cb2ffb5":"updateMinCapEthOnce(uint256)","5cb318bf":"unregisterUser(address,address)","5cb3ce15":"calculateMemoryState(uint256)","5cb4502c":"SCORE_TO_WIN()","5cb4f548":"partnerInfo(address)","5cb5de63":"recReward(uint256,uint256)","5cb603dd":"_getYearIndex(uint256,uint256,uint256)","5cb7226d":"prePreIcoStartAt()","5cb732be":"refundToken()","5cb7dd98":"BlueChipGame()","5cb85cd2":"changeCost(uint256)","5cb8dd09":"isAllowed(address,bytes32)","5cb92dc7":"_enableRefunds()","5cb9ceaa":"okAddress(address,address)","5cba658f":"setState(address[],uint256[],address,uint256)","5cba6caa":"notarizeHash(uint256,string,string,bytes32,string,string,string)","5cbaa74b":"canAttack(address)","5cbad0b5":"sumHardCapICOStage1()","5cbb122c":"transferBctToken(address,uint256)","5cbb2ac3":"purchaseTokenPointer()","5cbb7caa":"getFriends(address)","5cbbdfc9":"currentApplicationEntityAddress()","5cbc65b2":"getplayersurplus()","5cbc85d0":"returnBounty(uint256)","5cbcb302":"pre_ico_allocation()","5cbdf177":"emailVerified()","5cbe5f8f":"DIV_DIST()","5cbee9ba":"releaseLockedTokens(address)","5cbf0850":"BTN()","5cbfdd8d":"preBuy(address,uint256,bool)","5cc15001":"getContent(bytes32)","5cc18780":"StabilizationFund()","5cc1ad7f":"toTileId(uint8,uint8)","5cc2e6aa":"getFirstAuctionsRemainingDuration()","5cc2f6d8":"_processPurchaseInWei(address,uint256)","5cc3623a":"currentSection()","5cc373c7":"TestJ()","5cc39659":"preSaleBonus2Amount()","5cc3c951":"purchase_with_dai(uint256,address,uint256,uint256,uint256,address,bytes)","5cc3f5d7":"Deauthorization(address,address)","5cc41dad":"initiateCertificate(bool,string,uint256,uint256,uint256,uint256)","5cc422a1":"sumofsquares(uint256,uint256)","5cc501ce":"testFailSetNotTransferableNotOwner()","5cc52fba":"claimTokensBC(uint8)","5cc57501":"_computeHeight(uint256,uint256,uint256)","5cc5c5cf":"jackpotDifficulty()","5cc5ca50":"formulaContract()","5cc8a6ed":"PRE_SALE_4WEEK_BONUS()","5cc8ce33":"dev_settledBalance()","5cc95422":"getVestingReleasedAmount(address,address)","5cca3905":"getDeveloperMiningPowerForGameId(uint256)","5ccb4f8f":"UmbrellaCoin()","5ccb5460":"ethInvestedDuringICO()","5ccb54c4":"BGD()","5ccbddeb":"IcelandvsCroatia()","5ccc3eaa":"roundMoneyUpToWholeFinney(uint256)","5ccd2f9b":"_deleteAllPackedRevisionBlockNumbers(bytes20)","5cce7dbb":"removeHolderAddress(bytes32,address,address)","5ccee1de":"newValidatorSet()","5ccf49ed":"isGenome()","5ccf9f43":"BonusCrowdsaleMock()","5ccfe157":"getDataById(uint8)","5cd03621":"periodRound()","5cd03a3f":"removeIdArrayItem(address,uint256[],string,address)","5cd137b4":"LogDonation(address,string)","5cd27e8d":"init3(int256[],int256)","5cd2f4d3":"approve(address,bytes32)","5cd31795":"HavenToken()","5cd31e83":"LastWillContract(address,address[],uint8[])","5cd3b917":"numberOfDeployedTokens()","5cd3f3a1":"decompress(bytes)","5cd42150":"KY8000Token()","5cd45e61":"getUuidsSize()","5cd48caa":"bet(uint256[],address)","5cd50b3f":"quater2()","5cd60dad":"add(address,int256)","5cd689e6":"sell_label(address,uint256)","5cd6bd0e":"getPlayerDividendByStage(uint256,uint256,address)","5cd72340":"SetEpochData(address,uint256,uint256)","5cd72b15":"setAllowedMultivest(address)","5cd7815b":"testInternalCall()","5cd7c8bc":"createLastDay()","5cd7d478":"isYesWinning()","5cd82ee5":"Act()","5cd85187":"MIN_ETHER()","5cd87c71":"supportsTradingPair(address,address)","5cd8d2ad":"buyAndTransfer(uint256,address,address)","5cd925cd":"assetSize()","5cd96091":"enable_refunds()","5cd9814f":"Mybalance()","5cda31dd":"GTN()","5cda4b41":"checkApproval(address,address)","5cdaab48":"previousEpoch()","5cdb0798":"burnMemberToken(address)","5cdb1bd7":"setRefundPercent(uint256)","5cdb88bc":"addClaim(string,string,uint256,string)","5cdbd2d1":"Constructor(string)","5cdc9eda":"peggedETHUSD()","5cdcf33d":"milieurs_per_eth()","5cdd7560":"STEToken()","5cdd95e3":"MintableToken(uint256,address,bool)","5cddb74b":"becomeShitClonelord()","5cddd93d":"referalsMinInvestLimit()","5cde15b9":"_Application(bytes32,uint256,string)","5cdf3450":"changeParticipationLimits(uint256,uint256)","5cdf76f8":"setServiceFee(uint256)","5cdfd08c":"managementFees()","5cdfe733":"fastBuyBonus()","5ce1d810":"SmartN()","5ce22019":"getEtherInContract()","5ce2fea1":"CleosContract()","5ce308a7":"addEntry(string,string)","5ce32aca":"getAirdrop(bytes32)","5ce398c4":"Riddle()","5ce3dec1":"self_destruct()","5ce49fbf":"amountBets()","5ce4f8dc":"PoWHrGlass()","5ce57b50":"setPenalizedStatus(uint256,address,bool)","5ce5ba9b":"queryParent()","5ce62aa4":"checkStoredFile(address)","5ce7514e":"allowPublicWithdraw()","5ce75c7c":"PRESALE_SECOND_DAY_START()","5ce7c7e0":"tokenSetCrowdsaleManager(address,address)","5ce800ac":"user_off_freeze()","5ce8050f":"BuildCoinUtilityToken()","5ce83f70":"updateEndsAt(uint256)","5ce885ee":"initial_withdrawal(uint256)","5ce94328":"balanceOf(uint152)","5ce97dbb":"totalAirdrop()","5ceaa0bf":"modifyCurrentHardCap(uint256)","5ceb8bc8":"isPromoPause()","5cebcbf0":"setMaxGamePerBlock(uint256)","5cec2054":"dteamVaultAddr1()","5cec4cb9":"fundsTokensHaveBeenMinted()","5cec5ded":"balanceComisionOf(address)","5cecd728":"setWillContents(address,bytes)","5cedff32":"takeTokensForBacking(address,uint256)","5cee9ea7":"buyNew(uint256,uint256,uint256)","5cef51a6":"BdpDataStorage(bytes8)","5cf00394":"getResoPeriod()","5cf054f8":"SetRewAddr(address)","5cf0769c":"ETHERCOIN()","5cf28fa4":"minDai()","5cf29ecf":"forOwner()","5cf2befc":"getEthAddressesLength()","5cf2f261":"ProofOfBitconnect()","5cf3125c":"NASDAQ()","5cf34bcf":"getMinFee()","5cf3508a":"whiteListControllerAddress()","5cf38f24":"togglePlotBlockedTag(uint256,bool)","5cf3cd96":"payNode(bytes32,bytes32)","5cf3d346":"names(address)","5cf469ca":"tokenPreSaleCap()","5cf4ee91":"getPrice(uint256,uint256)","5cf5ad2e":"registerNameCore(uint256,address,uint256,bytes32,bool)","5cf5e386":"guardian2()","5cf6040b":"ERC20Token(uint256,uint8,string,string)","5cf6208a":"oraclizeTimeTolerance()","5cf625f0":"OffChainManagerImpl(address,address)","5cf6a536":"InternetWall()","5cf6a763":"receiveApproval(address,int256,address,bytes)","5cf858aa":"TOKEN_ESCALE()","5cf89f1e":"setDateRelease(uint256)","5cf8ca60":"isCase(uint256)","5cfa353a":"updateTotalGasCost(uint256)","5cfae3ba":"UNPC()","5cfaf2ef":"setNameTAOPositionAddress(address)","5cfb4aa4":"getMessageTimestamp(uint256)","5cfbcdbb":"committedEther()","5cfc1a51":"capacity()","5cfc53c1":"calculateForValue(uint256)","5cfc6432":"EcosystemPart()","5cfd5f89":"product4_pot()","5cfd8c24":"ResetPonzi()","5cfe237a":"TCGC(address)","5cfea6fb":"TokensPerWei()","5cff876b":"carrotsCaught()","5d000c07":"getFreeFuck()","5d004e85":"getCommentsCountByAd(uint256)","5d01615f":"queryFusionData(uint256)","5d01b261":"_placeBet(uint256,address)","5d0213f7":"transferTokenOwnerShip(string,address)","5d029d1e":"indexedByTag(bytes32,uint256)","5d02b2f7":"hasPresaleEnded()","5d03147a":"ownership()","5d0341ba":"approvals(address)","5d036c8b":"payEther(address[],uint256[])","5d0413d1":"calculatePlotPrice()","5d04af9c":"iMMCoinbuyPrice()","5d064bab":"MoreGainCoin(uint256,string,string)","5d068051":"sendFees(address)","5d06a05c":"lockupAccounts(address[],uint256,uint256)","5d0792b7":"minimumInvest(uint256)","5d0808f2":"listedMartialsLength()","5d08225e":"getGidOfId(uint64)","5d088fc6":"changeRandomFight2DeathContract(address)","5d08c1ae":"salePaused()","5d09e625":"setMustSkipFee(address,address,bool)","5d0a740a":"GetSeries()","5d0a7628":"lockPresaleBalances()","5d0ad8d0":"testFail_set_owner_unauth()","5d0b6774":"counterFor(address)","5d0be9de":"softWithdrawRevenueFor(address)","5d0c0161":"IXCASHToken()","5d0cb15d":"TOKEN_SALE_SUPPLY()","5d0dd712":"bet_amount()","5d0e550a":"safetyModeOn()","5d0ef098":"burnUnsoldCoins()","5d0f4ee0":"isChampionAccount(address)","5d108ca2":"TokenChanged(address)","5d109aea":"maxResult()","5d10a60d":"createPost(string,string,bytes32)","5d113b03":"PayWinners(uint256,address)","5d121289":"addPreSaleEndDate(uint256)","5d123014":"setGameTax(uint8)","5d12ace4":"playGame(uint256,uint256,uint256)","5d12fc0c":"ONE_BILLION()","5d14076c":"lowercaseString(string)","5d145c5b":"setIcoTimeStartEnd(uint256,uint256)","5d14f925":"Invested(address,uint256,uint256,string)","5d15001e":"SupplyOp(uint256,uint256,uint256)","5d15b46a":"emitSkillCategoriesSet(address,uint256,uint256)","5d161310":"DataMining()","5d161c3f":"useAbility(uint256)","5d16a6f9":"lockedBalances(address,uint256)","5d16b8de":"take_back_money()","5d183b60":"supplyRound2()","5d184107":"AddCategory(string)","5d19212e":"markUserAsFounder(address)","5d19606e":"transferIssuer(uint256,address)","5d19a99f":"isLimitReached()","5d1a3b82":"getOutcome(bytes32)","5d1b45b5":"getEntityCount()","5d1b56c4":"TestUser(address,address,address,bytes32)","5d1bd962":"getArrayValue(uint256)","5d1be4e5":"deathData_f14()","5d1be58e":"pecunioToken()","5d1c01e0":"signedApproveAndCallCheck(address,address,uint256,bytes32,uint256,uint256,bytes32,address)","5d1c3171":"luck()","5d1c985b":"setReceivers(address,address,address)","5d1ca631":"getId()","5d1ce03f":"tokensRaisedDuringRound(uint8)","5d1e2d1b":"split(address,uint256)","5d1edfa0":"checkContributedETH(address)","5d1f8098":"RoshaanCoin()","5d200f84":"GetPlayer(uint256)","5d201596":"getCategoryInfo(address,uint256,uint256)","5d202249":"totalCollectedETH()","5d204869":"slice(bytes,bytes,uint256,uint256)","5d208872":"setTimesEnabled(uint8,bool)","5d216562":"changeLockTransfer(bool)","5d2195dc":"getToBalance(uint256)","5d2230d7":"numfails()","5d2247a5":"stakeAirdrop(uint256,bytes)","5d228eb0":"getProviderDetailFields(uint256)","5d22a352":"manualWithdrawToken(uint256)","5d22e222":"BTCAir()","5d2392d6":"latchContract()","5d239d3e":"getSlice(uint256,uint256)","5d240c58":"addExperience(uint256,uint256)","5d2434ec":"transferFromTangibleassetdisbursementfund(address,uint256)","5d25d021":"withdrawForeignTokensMultiple(address,address[],uint256)","5d267042":"PointlessToken()","5d268629":"Refund()","5d2694da":"BlackPearlETH()","5d270cdc":"setExpectedRate(address)","5d272468":"isLiquid()","5d27976a":"Final(string,string,uint8)","5d27bff3":"registerWithEncryption(string,string)","5d27e9a6":"SEPARATOR()","5d281384":"_isValidSignatureAndMethod(address,address,bytes)","5d285eca":"preICOspecial()","5d29206b":"createTokenEscrow(address,uint256,address)","5d293581":"ApplyForCertification(string,string,string,string,uint256)","5d2946f5":"futDevAddr()","5d295f67":"maxDGAME()","5d2973cd":"applyVIPLevel(address,uint256)","5d29bd40":"rollThree(address,uint8,uint8,uint8)","5d2a5d3d":"sentPreSaleTokens()","5d2a70a8":"getActualFee()","5d2a9b6a":"_randomIndex(uint256,uint8,uint8,uint8)","5d2aa757":"getSides(string,uint256)","5d2b811d":"getLastRegisterDate()","5d2bafed":"gee()","5d2c0af2":"Invest(address,bool,uint256,uint256,uint256)","5d2c53a7":"withdraw_funds(uint256)","5d2cce82":"LemonsDroppedToTheWorld()","5d2d5c37":"registered(string)","5d2dc5fa":"FraCoinAuct(string,uint256,address)","5d2dec87":"PRNG(address)","5d2fea9d":"reissuedTransactions(uint256)","5d302ba1":"UpgradeAgentEnabledToken(address)","5d306f34":"getRefundAmount(address)","5d307c6f":"giveToVoter(uint256,uint256)","5d3171d9":"transferFromPrivileged(address,address,uint256)","5d31c3bc":"deliveryApprove(address)","5d3235bd":"NutrioCoin()","5d3278f0":"LooneyFifty()","5d337b01":"largeSize()","5d3458ea":"DolToken()","5d346bd6":"addSaleOwner(address)","5d34b70c":"LavaDeposit(address)","5d354b4d":"foundingTime()","5d355804":"endPtopDeposit(address,address,bytes32)","5d359fbd":"transfer(address,uint64)","5d35a3d9":"approve(uint256,uint256)","5d3601d2":"_isRegularAddress(address)","5d36a791":"PartyToken()","5d36d182":"recycle(address,uint256)","5d37c840":"level_4_amount()","5d383eaa":"registerTokenPayment(address,uint256)","5d385031":"getCustomerTxOrigMcwTransfer(address,bytes32)","5d3899af":"place_to_push(uint256,bytes32)","5d397767":"publicBattlepm1()","5d3a08d7":"setNodePhases(address)","5d3a1f9d":"setText(string)","5d3a5e3b":"teamTokenAddress()","5d3a70f9":"YayyyToken()","5d3aac49":"PublishInterfaces()","5d3afb19":"CNYB()","5d3b2f37":"getNextGameId(address)","5d3bb19e":"XXXXXXXX09()","5d3c1d4c":"_getRequest(uint256)","5d3c7c9b":"AGASCrowdsale()","5d3c81a5":"feeWithdrawTokenAmount(address,uint256)","5d3ca4ab":"lotteryReinvest(string,uint256)","5d3cd79f":"endPrivateICO()","5d3d08a8":"cancelExchange(uint256)","5d3e64bf":"ttlPlayers()","5d3f4fe4":"withdrawMyTokens()","5d3fdd19":"updateDiscount(uint256)","5d40124e":"YunJiaMi(address,address,address,uint256,uint256,uint256)","5d40533f":"AnemoiToken()","5d40c0ae":"createAccessorySeries(uint8,uint32,uint256)","5d41363f":"rateRound1()","5d416cc2":"setIsTokenCanBeBuy(bool)","5d41dd6f":"ExampleToken(address[])","5d42513b":"test_withdraw()","5d428e08":"addTrader(address)","5d4293a0":"hatchPoohs(address)","5d439cf3":"transferEvent(address,address,uint256)","5d43e769":"batchTransfer(uint256,uint256[])","5d444ffb":"minMintingPower()","5d4453ba":"getGuess(address,uint8)","5d449d7d":"refererFeePercent()","5d44b508":"calculateRewardToWithdraw(uint32,address,address)","5d450bab":"setJobRating(address,uint8,uint256)","5d451a9a":"Wallet8()","5d4521dd":"updateWeedTotal(uint256,uint16)","5d452201":"ico()","5d4559ca":"get_coins_count()","5d45b4a7":"increaseMonthlyTransactionVolumeSending(uint256)","5d461de5":"sendAmount(address,uint256)","5d4626f6":"getInvoiceStatus(bytes32)","5d468d38":"releaseAuctionEnded(uint256)","5d47762d":"Member_AssingTokensToProject(uint256,uint256)","5d47f4f2":"CanHandleAuth(address)","5d484e17":"StaticEthAvailables()","5d485e5d":"_hostContent(address,bytes32,string,string,string)","5d495aea":"pickWinner()","5d49705b":"getEmployer(address,uint256)","5d49719d":"SHA3_512()","5d49c199":"finishPreSale2()","5d4a8f74":"ATTRToken()","5d4aaf1c":"registerWithUserAgreement(address,bytes32)","5d4befc0":"emitSynthAdded(bytes4,address)","5d4c5cca":"participantsForPreSale(address)","5d4d061e":"keyValueStorage()","5d4dda72":"DirectInput()","5d4e1e5c":"substract(uint256,uint256)","5d4f012b":"tgeCurrentStage()","5d4f30e7":"get_address(address)","5d50601b":"getsumdata1(bytes32)","5d506a2e":"minPotSum()","5d51b550":"haltCrowdsale()","5d52fe64":"buyRemaining(address)","5d54322d":"canPurchase(address,uint256)","5d5483b3":"WatchAppliedFeePercentage()","5d54cb1f":"is_transfer_allowed()","5d54e612":"whitelistAll()","5d552c72":"BasicToken()","5d5576f8":"renounceCapper()","5d56550a":"buyCore(address,uint256,string)","5d5655dd":"BOOKIE()","5d567259":"bobMakesErc20Deposit(bytes32,uint256,address,bytes20,address,uint64)","5d56e0a4":"developerMiningPower()","5d57135a":"KEBABER_TO_MAKE_1KEBAB()","5d582870":"requestInvestment(uint256,uint256,address)","5d585176":"GolemSupply()","5d586bfd":"deposit(string,address,uint256,string)","5d59072a":"OFFICAL_VOTING_DAY_OF_MONTH()","5d593462":"init(address,address,string,string,uint256,uint256)","5d5a1614":"STQCrowdsaleTestHelper(address[],address,address,address)","5d5aa277":"tokenSaleContract()","5d5b35f3":"dividendsTotal()","5d5b82fd":"Blockjack(address,address)","5d5b9021":"acceptTradeOffer(uint256)","5d5b92b1":"teamOneSharePrice()","5d5bc4cb":"BetOnRed()","5d5c3011":"ctyCoin()","5d5c606f":"DAOPolskaTokenICOregulations()","5d5d4fab":"TACTICALCRUISER_EXTRACTION_BASE()","5d5e22cd":"transferFromWithSender(address,address,address,uint256)","5d5e507b":"create_price()","5d61dd5a":"removeSingleAddressFromWhitelist(address)","5d62917b":"pickWinners(uint8,address,address,address,uint8,uint8,uint8)","5d63b758":"minAcceptedETH()","5d63b77c":"divideSafely(uint256,uint256)","5d644069":"request_face_proof(string,address)","5d6470a4":"STAGE_1_TIME()","5d64aa68":"dragonIndexToOwner(uint256)","5d651b62":"TimeLockSendCreated(address,address,uint256,address)","5d6542af":"way()","5d65432d":"IndorsePreSale()","5d65c37b":"Assessment(address,uint256,uint256,uint256,uint256)","5d666d3c":"getRurus(string)","5d667464":"usePrecompiledContracts(bytes32,uint8,bytes32,bytes32)","5d66ccf0":"updatePerSell(uint16,uint256,bool)","5d66d73f":"notarizeHash(uint256,string,string,uint256,bytes32)","5d671fc0":"switch_period()","5d6720b4":"getFreeMineral(address)","5d67830a":"doLogFighter(uint32,uint256,uint256)","5d685185":"periodITO_softCapInWei()","5d68564e":"ZontoToken()","5d6952d7":"changeSaleStartBlock(uint256)","5d69864e":"Bitscors()","5d69d600":"presold()","5d69f16f":"offerAsSacrifice()","5d69f68c":"getVotersName()","5d6af2af":"getOffChainRootAddress()","5d6b2f26":"destroyAllTokens()","5d6b70ae":"getSignedTable()","5d6b7798":"BCQ()","5d6c3ea7":"mined_coin_supply()","5d6c8e10":"getDHash(bytes13)","5d6cb67e":"ecosystemTokenSupply()","5d6cdfae":"EthereumPot()","5d6ceeb5":"returnMoneyToBuyers()","5d6d2992":"ownFiles(address,string,string)","5d705fe2":"MBCashSupply()","5d711db1":"get_candidates()","5d718818":"getHolderCountryCode(bytes32)","5d71cf46":"spendableAllowance(address,address)","5d723298":"PartialPayment(address,address,uint256)","5d728582":"hasAuthoritySignedSideToMain(address,bytes)","5d72b30d":"changePlayerName(uint256,string)","5d73e2bf":"startPlay(bytes32,uint8,bytes32,bytes32)","5d740d62":"YFJToken()","5d751443":"updateWebappMinBalance(uint256)","5d760b45":"forceWithdrawPayments(address)","5d766d35":"INITIAL_GLOBAL_DAILY_SUPPLY()","5d76a039":"PresaleReStarted()","5d771933":"BOUNTY_SUPPLY()","5d777893":"GetPlayers(uint8)","5d77aec8":"receiver3()","5d77d8d0":"getBlacklist(address)","5d78650e":"getAccountData(address)","5d796c05":"mintAuditCancel(address,address)","5d79eda7":"Digixbot(address)","5d7a6b10":"nextDerivativeTokenScheduled()","5d7b0758":"controllerMint(address,uint256)","5d7c3ad2":"ICO(address,address,uint256,uint256,uint256)","5d7c3b78":"costructor()","5d7c829d":"_messageToRecover(address,uint256)","5d7cf3e2":"Meltdown(uint256)","5d7e6b8d":"Schengencoin()","5d7e7219":"setFeeFor(address,uint128[2])","5d7e8c15":"ethToCents()","5d7e994a":"RewardStart()","5d801ec4":"SetmaxTokens(uint256)","5d80effc":"TimeBonusPricing(uint256[])","5d80f643":"Kujira()","5d818e6b":"recordDeal(uint256,address,uint32,uint32,bool,uint256)","5d81b206":"P3NGCT_v1(uint256,string,string)","5d8214db":"lastFactChangeValue()","5d8227e6":"FactoryBase(string,string,string)","5d82ddc8":"freezeEnabled()","5d8302f2":"CrypTollBoothToken(uint256,string,uint8,string)","5d831ca1":"FUT5()","5d8749ed":"workStages(uint256)","5d878b4f":"isInWhitelist(uint256,address)","5d88383e":"retrieveEth(address,uint256)","5d891d12":"foundersTokensWalletMaster()","5d895dac":"parse(string,uint256)","5d89c01a":"getCatIds()","5d8a776e":"award(address,uint256)","5d8aef9f":"_calculateLockedBalance(address,uint8)","5d8bc2a8":"assertEq12(bytes12,bytes12,bytes32)","5d8c5b87":"orderPlace(address,bool,uint256,uint256)","5d8ca2ac":"getApprovalsFor(address)","5d8d1585":"getUserInfo()","5d8d2904":"setKeyPermissions(bytes32,bool,bool,bool)","5d8d4415":"rawUseName(bytes32)","5d8dd304":"founderTokensAvailable()","5d8e0c2c":"isManualTradingAllowed()","5d8e7376":"DAOBalanceSnapShot()","5d8e772f":"gameCore(uint256,uint256,uint256,bytes32)","5d8f2640":"store(bytes32,bytes32,bytes32)","5d8f3b76":"createPercentageRequest(uint256)","5d90df32":"TRONIX()","5d9169f0":"ICO(address,address,address,address)","5d91e27b":"MVM24PeriodsCapUSD()","5d92e5d2":"ipyh()","5d946afa":"trashed(address)","5d94e35c":"contractRefundStarted()","5d94f108":"platformLogout(address,uint256)","5d956b3e":"changeGroveAddress(address)","5d95738b":"vHasVoted(uint256,address)","5d95a08b":"MizuCoin()","5d969f8f":"updateCustomerACC(address,address,address)","5d96ec65":"setAdministrator(address,string,bool)","5d975d70":"mx(bytes32)","5d977c02":"withdrawalFor(uint256,uint256)","5d9796eb":"WELTCOIN()","5d989a0c":"NyronChain_Crowdsale()","5d98d9ee":"ChannelCreated(string,address)","5d98fd9f":"Presale(address,address)","5d990791":"getDenominationByIndex(uint256)","5d99e02f":"myPinerTokenTest1()","5d9adc94":"withdrawPendingTransactions()","5d9c4f0f":"getFeeRecipient(address)","5d9d595c":"sendWingsRewardsOnce()","5d9d5b9a":"CreatedCAT(address,uint256)","5d9d8dd9":"makeupShiny(uint256)","5d9ec210":"signTransaction(uint256)","5d9fa6fc":"getContractBal()","5d9fd8b0":"listPersons()","5da01a5b":"configure(bytes32,bytes32,uint256,uint256,uint256,address)","5da03ff8":"EthergotchiOwnershipV2(address)","5da05e2e":"setCoinLimit(uint32)","5da08c42":"createSeedTeam(uint8,uint256[9],uint256[9])","5da0a987":"Run()","5da12d50":"Oduwacoin()","5da24f90":"closeTimer()","5da34093":"bonusRemain()","5da3d3d2":"minHEXCap()","5da47721":"getVIPLevel(address)","5da4a1d3":"setPercentage(uint256)","5da54cee":"DragonCrowdsale()","5da5a9b1":"ownerUpdateMinMaxNumber(uint256,uint256)","5da5f5ab":"Distribution()","5da6628a":"transferExt(address,uint256)","5da6bf67":"movePlayer(uint8[176],uint8,uint8,uint8)","5da6c418":"burnMintFrom(address,uint256)","5da6e035":"_openAndJoinCDPWETH(uint256)","5da6ec5b":"t8exToken()","5da85a16":"setCEx(address)","5da89ac0":"weiRefunded()","5da96520":"transferTeam2Tokens(address,uint256)","5da9781b":"readUint256s(bytes32[])","5da99f5e":"upgradeCardDamage(uint256)","5daa0c37":"referrerLinkedSales(bytes32)","5daa87a0":"Initialized()","5daab236":"runIco()","5dab2e0f":"left82(uint256)","5dac1601":"SimpleStablecoin()","5dac48bb":"approvePreSignedHashing(address,address,uint256,uint256)","5dac5682":"removeAuthorization(address,address)","5dac7044":"checkHardCap(uint256)","5dacf084":"THACO2()","5dada964":"expectedRateContract()","5dadf485":"takePosition(uint256)","5dae4e50":"makeItRain()","5daf08ca":"members(uint256)","5daf7514":"redeemTokens(uint256,uint256,bytes32[])","5daf8a71":"DestroyToken(uint256)","5db07aee":"mintFeeDenominator()","5db09db5":"getSplitPotAsFixedPointForGameId(uint256,bool)","5db17dab":"CDTToken(uint256)","5db2a233":"awailableDividends(address)","5db30bb1":"getMaxTotalSupply()","5db38c63":"nDemocs()","5db39a1e":"totalFails()","5db39d74":"HayaCoin()","5db3f963":"registerSimple()","5db3ffa5":"getUBetCheck(address,address)","5db42841":"createContractGameItem(string,uint256)","5db46961":"proxyExchange(address,uint256,string,bytes32)","5db4cd21":"ir()","5db524ad":"finishDividends()","5db5301f":"unsubcribe(address)","5db5d1fb":"startTimeTLP2()","5db5fc24":"alterInitialPricePerShare(uint256)","5db62dab":"getBalanceForUser(bytes32)","5db6687b":"Dev_TokenReleased()","5db6a31f":"transferBroker(address,uint256,uint256)","5db7ef3d":"intoverflow_mul(uint256)","5db8e202":"evaluateProposalAction(uint256)","5db8f084":"getNeighbourReward()","5dbb0ef8":"TuZaiCoin(uint256,string,uint8,string)","5dbbd139":"CentraSale()","5dbbfc47":"getMaxLoss(address)","5dbc374f":"UBCoin()","5dbe47e8":"contains(address)","5dc10a45":"whitelistMultiForTier(uint256,address[],uint256[],uint256[])","5dc11a89":"setNumTicks(uint256)","5dc1ba1b":"closeLotteryAndPickWinner()","5dc1bb52":"removeLocked(address,uint256)","5dc1c79d":"KANYE()","5dc2157d":"getBalancesOfAddress(address)","5dc22cce":"attackPlayer(address)","5dc2944a":"ratesForCurrencies(bytes4[])","5dc3d02d":"rc5()","5dc43f6e":"AddAuthority()","5dc49bf8":"SellENSCreated(address)","5dc4d8a6":"proposalTarget(uint256)","5dc4dcd1":"TicketPurchased(address,uint256,uint256,uint256,uint256)","5dc54308":"KickSportsManager()","5dc5aefe":"startIncentiveDistribution()","5dc6bfe4":"distributeLRN(address[],uint256)","5dc6f3df":"registerNameCore(uint256,address,bytes32,bool,bool)","5dc70cda":"_shareToPreviousOwner(address,uint256,uint256)","5dc774d7":"DrawingPrintToAddress(uint256)","5dc77e26":"andThen(string,address)","5dc824b9":"voteNoLock(address,uint256)","5dc86b85":"adminGetAmountAddressDial(address,address)","5dc94af6":"getTokensTotal()","5dc96d16":"burnEnabled()","5dca53d3":"right30(uint256)","5dcb6774":"_createBid(address,uint256,address,address,address,uint256,uint256)","5dcb71f2":"yoshicoin()","5dcb98c4":"CPO()","5dcbac7a":"registerBytes(address,bytes)","5dcbc01e":"addSellTokensRequest(string,string)","5dcbd8bb":"setLimit(uint16,uint64)","5dcc6dbc":"spawnAxie(uint256,address)","5dcd967d":"ndc()","5dcdddd1":"testSafeToAddFix()","5dce431b":"addGame(address,uint256)","5dce9948":"getTranscoder(address)","5dcf1b77":"fileMerkle(bytes32[],uint256,uint256)","5dcf451b":"CoinDogToken()","5dcf7c8c":"proxies(address,uint256)","5dd18a22":"setItemsNotForSale(uint256[])","5dd19463":"angelFoundationAddress()","5dd283cb":"pickSmallWinner()","5dd284e3":"getAllGoldTransactionsCount()","5dd39c12":"SOD()","5dd4599a":"usersCanTrade()","5dd48b04":"PURCHASE_PREMIUM_RATE()","5dd4a65f":"lookup(address,bytes32)","5dd588df":"isAuthorizedToTransferFrom(address,address,address)","5dd672ec":"latestBid()","5dd68acd":"setAddresses(address,address,address,address,address)","5dd68f36":"getTotalInvest()","5dd871a3":"canMint(uint256)","5dd8e1d5":"kek()","5dd8eb50":"rate4()","5dda837f":"mineBalance()","5ddae283":"transferRegistrars(bytes32)","5ddaf07f":"StarbaseToken(address,address,address)","5ddb2585":"icoStartTimestampStage4()","5ddbc632":"setHardCapToken(uint256)","5ddc98ba":"updateKYCWallet(address)","5ddd81b0":"firstPeriodCap()","5ddd8248":"setBurnerOwner(address,address)","5dddea66":"updateState(uint256,uint8,uint256)","5dde2066":"addBlocks(uint256,bytes,uint256[])","5ddf2998":"setOwnerValidatorAddress(address)","5de01497":"ownerWithdrawERC20Token(address,uint256)","5de047d3":"existPlatform(bytes32)","5de0e689":"startPromotion()","5de270c5":"adminFixCurve(uint32)","5de28ae0":"getStatus(bytes32)","5de2a21b":"onIncreaseApproval(address,address,uint256)","5de3ba97":"getAllIdentifiers()","5de40f30":"innerContract()","5de4381b":"_addItemToParent(bytes32,bytes32)","5de4c6fc":"lock(address,bool,uint256[],uint256[])","5de4ccb0":"upgradeAgent()","5de52fb7":"TakeMyEtherTeamAddress()","5de6dc55":"getTokensOfOwner(address)","5de6f040":"unlockFundrBal(bool)","5de7e350":"getTokensFromAddressEmits(address,address)","5de81534":"getEditionsCount(uint256)","5de910bc":"subSegmentation(address,uint256,uint256,uint256)","5de924bf":"DeepCoinToken()","5de97c8d":"setIntervalTimeAdjust(uint8)","5dea19f5":"getHolderExternalIdByAddress(address,address)","5deab0ec":"grantLoanOwnership(bytes32,address,address)","5debb827":"SCFToken()","5debc7af":"get_tokenTime()","5dec18d4":"motto()","5dec74f8":"_finishTheBattle(uint256,uint256,uint256,uint8)","5dec7d49":"Transaction(bytes32,bytes32,address,bytes,bytes32,bytes32,address,bytes,bytes32,uint256,uint256,bytes)","5ded0235":"iRide()","5ded1865":"getCategoryProducts(address,uint256,uint256,uint256,uint256,uint256,bool)","5dedd9cc":"resetWinners(uint256)","5dee2492":"AIR_2_SUPPLY()","5deeab39":"freeTokensIssued()","5deeffb2":"getSoftcapReached()","5def5814":"getByDistrict(uint256)","5defaec6":"createVirtualAddress()","5defe3d9":"grantAccessDeposit(address,address)","5deff965":"getEtherum()","5df285c8":"getBonusTokens(uint256,uint256,uint256)","5df29b4f":"settleBetUncleMerkleProof(bytes20,bytes20,uint40)","5df2df2f":"multiSendTokenComplete()","5df34ff2":"buyMintingAddress(uint256,uint256)","5df3bdb9":"ABRATOKEN()","5df3d87e":"bet1()","5df58352":"calculateScoresIfCellIsBought(address,address,uint256)","5df5f96f":"initialize(address,uint256,uint256,uint256,uint256,address)","5df607f0":"getMyEntry()","5df60977":"updateFrozenAddress(address)","5df6461d":"LOTTERY_FUND_SHARE()","5df6a6bc":"unbond()","5df70904":"giveToken(address,uint256,bool)","5df73398":"loadMesaVerify(bytes32,bytes32[],uint8[])","5df75bdf":"totalTokensICO2()","5df8122f":"setManager(address,address)","5df86d29":"etherInContract()","5df8d74e":"bytesCallWithArray(bytes,bytes32[4])","5df8f17b":"createVote(uint256,address[])","5df93f99":"MICL()","5df95255":"Rating(address,address,int256)","5dfb94cf":"nextBurnFeeProp(uint256)","5dfc09a4":"getCurrencySymbol()","5dfc273c":"Cloudbric(address)","5dfc2e4a":"noop()","5dfc3459":"maxIncrease()","5dfd1bff":"MeetingTimeSetFailure()","5dfd3278":"VOTE_AGAINST()","5dfde910":"STELLARGOLD()","5dfed2bb":"setCompte_14(string)","5dfee9bb":"refundTokens(uint256)","5dffe6dc":"contrEntrance(address)","5e0055e7":"ThreeStarToken()","5e007742":"Propethy()","5e00a177":"revokeVesting(address,string)","5e00b9a9":"incompletePercent(uint256[3])","5e00bd96":"DoNotBloodyDeployThisGetTheRightOne()","5e00e7b2":"getNoContributors()","5e01b2e6":"Gobi()","5e01d395":"getCapAtTime(uint32)","5e01eb5a":"getSender()","5e01ed34":"associatedAddresses(uint256)","5e02b84d":"Voiptoken()","5e031606":"round2TokensRemaning()","5e03d0c6":"getCreationDateOfHistoricalMetadata(string,uint256)","5e03d393":"setAccountFrozenStatus(address,bool)","5e04672b":"approveSynthesizing(address,address,uint256)","5e047822":"fundOf(address)","5e047975":"recoverSigner(bytes,address,uint256,uint256,uint256)","5e05bd6d":"timestampFromDateTime(uint256,uint256,uint256,uint256,uint256,uint256)","5e05e84d":"buyCells()","5e068da5":"proxyVersion()","5e06911e":"SpecialTrained(uint256,uint256,uint256,uint256[2])","5e079aa5":"giveEthFundAddress()","5e07c354":"vestingTokens()","5e07f240":"shiftBitsLeft(bytes,uint256)","5e0842d7":"VEToken(uint256,string,string)","5e08f5fa":"setCGO(address)","5e0a6049":"LOG_newGasLimit(uint256)","5e0b1259":"end_block()","5e0b1597":"_unpackRatingValue(uint256)","5e0b4cb6":"setData_2(uint256)","5e0b5d9b":"changeStartAndEndTime(uint256,uint256)","5e0be607":"unlockAllTokens()","5e0be75c":"setDividendPayout(uint256,uint256)","5e0c8c8c":"getCountSales(uint256,uint256)","5e0c923a":"RinneganToken()","5e0d0f30":"krsUsd()","5e0e2118":"removeSignature(string,int256)","5e0e2957":"dumpOut()","5e0fac2e":"unlockedBalance(address)","5e0fec6a":"knownReserved()","5e0ff394":"setCompetitionAdmin(address)","5e10177b":"confirmDelivery()","5e101e51":"editionController(uint256)","5e1045ec":"addWhiteList(address[])","5e11544b":"newPeriod()","5e11dc0b":"openDistribution()","5e123ce4":"gameStarted()","5e131fa2":"removeLocker(address,address)","5e1372f4":"lockup(address,uint256,uint256)","5e159cd4":"LogOwnerRemoved(address,address,address)","5e15d642":"totalNumberOfTokensForSale()","5e1665f3":"SmartParkApp()","5e172fa3":"allowtransferaddress(address)","5e17580a":"setTime5(address,uint256)","5e1758fa":"addPermission(address,bytes32)","5e17b694":"promisedTokens()","5e191293":"emitBoardRatingGiven(address,uint256,uint8)","5e1936d4":"testThrowSetNotTransferableNotOwner()","5e199157":"setWalletOut1(address)","5e199892":"forwardFee(uint256,address)","5e19b305":"isActive(uint32)","5e19d316":"clearICObyAddress(address)","5e19deda":"preCap()","5e1a01c3":"createAndJoinCDPAllDai()","5e1a6c17":"requesters(uint256)","5e1bd33e":"getBuildCost(int32,int32,bytes16)","5e1c8f89":"scoreOf(address,address)","5e1ce5b0":"phasePresale_To()","5e1d5482":"about()","5e1d7ae4":"changeFeeRebate(uint256)","5e1d832d":"giveChamp(address,uint256)","5e1d8cb7":"TextChanged(string)","5e1d9aba":"sanCurrentTotal()","5e1dca04":"shareholder1()","5e1e1004":"setPaymentAddress(address)","5e1e547d":"unsign(uint256)","5e1e5c88":"betByte()","5e1eabd2":"soldPerCurrentRound()","5e1f3fa8":"CREATE_REPO_ROLE()","5e1f56d9":"changeWalletOwner(address)","5e1fc56e":"close(uint64,uint256,bytes32,bytes32,bytes)","5e217162":"availableSTCDRTokensOF(address)","5e21f687":"getMarketID()","5e22a2fb":"getTokenIdByHash(string)","5e22b760":"buyDEV()","5e23464e":"TOTAL_REQUEST_TOKEN_SUPPLY()","5e24de11":"ownerSetCrowdsaleClosed(bool)","5e25495e":"getProviderSupply(uint256)","5e25f96d":"setYccContractAddress(address)","5e2642c9":"isInitialSupplied()","5e280e4e":"validateTransaction()","5e280f11":"endpoint()","5e29c47c":"walletCreatedTimestamp(address)","5e2a725c":"enableEmergencyBlock()","5e2cb4f1":"BluToken()","5e2d13af":"addONG_AUDIT(bytes32,string,string,bool)","5e2d1f0d":"withdrawAfterTime()","5e2d285a":"GICTLock(address,uint256,uint256,uint256)","5e2d3798":"ETHERberry()","5e2dff7a":"foundersTokensLockedPeriod()","5e2e555f":"RogisterToVoteOnTransfer(address)","5e2ea5bd":"FIRST_PHASE_MAX_SPAN()","5e2ea799":"currentFlowerPrice()","5e2fe372":"getLastOrderIndex()","5e3013f1":"PlayX30()","5e3045c8":"getImpactTotalValue(string)","5e30b8a6":"refund(address,address)","5e30c961":"premium(address,address)","5e31005d":"scoreThresholdParams(address)","5e310670":"cancelTokenToEthOrder(uint32)","5e311cd7":"largestDonor()","5e318e07":"withdrawFees(uint256)","5e326b92":"setPreSaleStatus(bool)","5e331e62":"iterate_get(uint256)","5e33f94d":"ApolloSeptemCappedCrowdsale()","5e35359e":"withdrawTokens(address,address,uint256)","5e355dcc":"PJRToken()","5e3568b8":"session()","5e377b51":"Jackpot()","5e383d21":"values(uint256)","5e38ab4c":"BabyCoin(uint256,string,string)","5e38c77d":"getProductHistoryDate(bytes32)","5e393973":"get_contrib_arbits_max()","5e3b456c":"creatTokens()","5e3ba8ac":"usersGetter()","5e3bb4cc":"minimalSuccessTokens()","5e3bcaf7":"Fee(address[],string,uint8,string)","5e3cb7b0":"setTotalUsdAmount(uint256)","5e3cbb7c":"dayWithdraw()","5e3ced74":"callSurplus()","5e3d3b8a":"isPREICO()","5e3dbedb":"getTokenDescriptions(address,uint256[])","5e3df83f":"setFundingtokens(uint256)","5e3e2687":"transferFromParent(address,uint256,address,uint256,bytes)","5e3e37d1":"XfiniteAsset()","5e3e6092":"newService()","5e3e9158":"createWine(string,string,string,string,string,string,bytes32)","5e3fa843":"registerContract(string,bytes)","5e402ae2":"getCurrentTokensPerEther()","5e402bb5":"setInfoTokenSilverRatio(string)","5e403a9c":"phase7Price()","5e404de3":"setMaximumCredit(uint256)","5e4293ba":"i_am_generous()","5e431709":"sealedBids(address,bytes32)","5e431a6f":"phasePublicSale1_To()","5e439f66":"changeAge(uint256)","5e43f719":"enablePublicTransfers()","5e44423c":"ChangePreSaleDates(uint256,uint256)","5e44daf3":"vote(uint256,int256)","5e44e0a4":"modifyHorseyTier(uint256,uint8)","5e46f419":"leed()","5e475bb6":"createKT(string)","5e48379a":"changePriceContract(address)","5e488540":"claimRefund(address,bytes32)","5e4887bd":"initializeTime()","5e48ce0f":"dequeue(bytes32)","5e48f58f":"PRESALE_PERCENTAGE_2()","5e49db8c":"getUsersFuelsIds()","5e49fbfc":"WOS()","5e4a1d36":"getSavingsBalance(address)","5e4a8a20":"setAppCode(bytes32,address)","5e4b587b":"_BLOCK_REWARD()","5e4b5f7d":"setColdAddress(address)","5e4ba17c":"remove(address[])","5e4e7cbc":"record(string,string,string,address,bool)","5e4f63ec":"extendLockPeriods(uint256,bool)","5e5098c2":"setmangerallow(address,uint256)","5e50f037":"reward(address,address,uint256,uint256,uint256)","5e511afa":"sendTokensBackToWallet()","5e5144eb":"change(address,address,uint256,uint256)","5e520c29":"tokensPerWei10()","5e5294b7":"endingTimestamp()","5e52a00b":"getReferrer()","5e53e2f9":"EXACOIN(uint256,string,string)","5e556a4a":"faucetTo(address,uint256)","5e5571ac":"pay(address,uint256,bytes32)","5e5650ef":"admin_set_Apply_Store_Id_Fee(address,address)","5e571440":"presalesTokenPriceInWei()","5e57966d":"addressToString(address)","5e58217d":"hardCapIco()","5e58331c":"SAGA()","5e585889":"claimDeposit(bytes32)","5e58f141":"shares(address,bytes,int256)","5e593cd3":"Funding_Setting_cashback_duration()","5e5a77e6":"getQuestionAnswer(uint256,uint256)","5e5a7eb0":"createCase(uint256,address,address,uint256)","5e5ae1fe":"invalidateAllPendingMints()","5e5b1e61":"closeTokensale()","5e5ca8d4":"BuyerSeller()","5e5d2adb":"HUBUToken()","5e5d4320":"deleteUser(bytes32)","5e5d73b5":"CloseSaleFund()","5e5d926c":"makeDai(uint256,address,address)","5e5de297":"getUidAsInteger(address,address)","5e5e305e":"bbAirdropWallet()","5e5e4cc5":"ownerToArmy(address)","5e5f2e26":"allowedTokens(uint256)","5e5f2e37":"startedNewVote(address,uint256,string,uint256)","5e5ff24b":"addUsersToGroup(bytes32,address[])","5e601fed":"changePaymentAddress(address,uint256)","5e604b60":"addWhiteListedContracts(address)","5e6096c5":"setMinimumTokenSell(uint256)","5e60d438":"LicerioToken()","5e615a6b":"getParams()","5e62463a":"TransferLimitedToken(uint256,address,address[],address)","5e62af4d":"grandJackpot(uint256,uint256)","5e64f392":"_completeTask(uint256)","5e6558e5":"addAtkPlayerQuest(address)","5e65db7f":"deleteThis(uint256)","5e66dfee":"regularPayment()","5e66eb1b":"phaseClaim()","5e675098":"addFoundation(address,uint256,uint256,uint256)","5e68ac2c":"Kingdom(string,address,address,address,uint256,uint256,uint256,uint256,uint256)","5e68d459":"_getRNGValue(uint256)","5e6911af":"hardcapReached()","5e6936ac":"HitToken(uint256,string,uint8,string)","5e6992e3":"rcnFundDeposit()","5e6a7777":"setCompte_39(string)","5e6ad49d":"_setCosignerAddress(address)","5e6b4ee5":"increaseRate(uint256,address)","5e6b7a5c":"getUnitsDefense(address,uint256,uint256)","5e6c5d77":"number_of_deals()","5e6cbd6d":"_getRandom(uint256,address)","5e6db193":"Bithenet()","5e6e91ac":"Mint(uint256,address,string)","5e6eb33a":"CampaignClosed(uint256)","5e6f6045":"vestingContract()","5e6fa5ea":"inclusionEnExchange()","5e6fc129":"isRecord(string)","5e6fc8b4":"getChildrenCount()","5e7037d0":"removeSpriteFromSale(uint256)","5e7051cd":"setQuickPromoInterval(uint128)","5e70a6dc":"increaseLock(uint256,uint256)","5e715c16":"ICO_CONTRACT()","5e717e2d":"readDeal(string,address)","5e71823b":"numPositions()","5e71c7fa":"testCheckRokSold()","5e733baa":"openEgg(uint64,uint16)","5e734f5c":"revealBid(bytes32,uint256,address,bytes32,bytes32,uint256,uint256)","5e73dd37":"tokenCapPhaseOne()","5e7591e2":"register(bytes32,address,address,bytes32,bytes32)","5e763377":"ModifyMarking(bytes32,uint256,uint256)","5e763946":"setTaxationPeriod(uint256)","5e76a101":"onlyOwnerSetTeamWallet(address)","5e7893e2":"showprize()","5e78998e":"BatLimitAsk()","5e7aa842":"createEvent(bytes32,bytes32[],address,uint256)","5e7b9832":"updateItem(uint256,uint8,uint8,uint256,uint256,uint256,uint256,uint256,bool,bool)","5e7be40d":"getBeneficiaries(address,address)","5e7c85b1":"totalContrib(address)","5e7cafa4":"startPayments(uint256,uint256)","5e7d6fd0":"airdropHasExpired(address,uint256)","5e7f092c":"_createNFTCollectible(uint8,uint256,address,uint256,uint256[5])","5e7f22c2":"postBuyOrder(address,address,uint256,uint256)","5e7f322b":"exchangeEthToEur(uint256)","5e8023d1":"cascades(uint256)","5e80377b":"buySaleReferred(uint8,address)","5e815320":"forward_pass2(uint256[],int256[],int256[],int256[],int256[],int256[])","5e816740":"rollDice(uint256,address)","5e81b958":"isNonFungibleItem(uint256)","5e81ba96":"DestroyedBy(uint256,address)","5e825564":"setFactory(address,address)","5e83b463":"placeBet(uint256,uint256,uint256,uint256,bytes32,bytes32)","5e84d723":"publicSupply()","5e850225":"closePeriod(uint256,uint256,uint256)","5e8507f8":"destTokensAngel()","5e855f14":"Dice(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","5e85db0a":"getMinSkills(uint256)","5e8714d5":"changeSaleAgent(address)","5e871f0c":"dividendDistributionDuration()","5e885c63":"getPack(uint8,uint128)","5e89d92a":"Credentials(bytes32,bool)","5e8a6044":"foundersFundTimelock3Address()","5e8a79e1":"setRef()","5e8aedce":"SubajToken()","5e8af735":"placeBet(uint256,string)","5e8be190":"getCar(uint256)","5e8c63bb":"vehicle_assembled(uint256)","5e8e9589":"_createPenguin(string,uint256,uint256)","5e8f5022":"issueTokensWithReferral(address,uint256)","5e8f6597":"distributeInvestorsTokens(address,uint256)","5e90852d":"proposeTransaction(address,uint256,bytes)","5e90a9ff":"_getLotteryNum(uint256,uint256)","5e916b46":"rinkeby2()","5e91ba21":"checkSecret(address,string,bytes32)","5e91c37d":"tokensSoldInPresale()","5e91c5ed":"specialTransfer(address,uint256)","5e91d8ec":"updateEmployee(address,uint256)","5e943a30":"calculateReferralBonus(uint256)","5e949fa0":"changeDestination(address)","5e956abf":"createMeshPoint(string)","5e959287":"getSignature(string)","5e95ff98":"updateFreeze(address)","5e968a49":"ownerSetMaxProfitAsPercentOfHouse(uint256)","5e97894a":"TNPC()","5e983156":"getJudgeVoted(uint256,address)","5e983d08":"setPrices()","5e986ec7":"PoezenVoting(uint256,uint256)","5e987d32":"last_slot()","5e98e4c7":"abstain()","5e9a1849":"numDonations()","5e9a31fb":"MINBET_perSPIN()","5e9a523c":"assetPrices(address)","5e9a8c42":"get_deal_state(uint256)","5e9afc0e":"ERC223TestToken(string,string,uint8,uint256,address)","5e9d2b1f":"roundSize()","5e9d2e7b":"exchangesWallet()","5e9dbcb7":"_tag(string,string)","5e9e2226":"setOraclizeWinnerGasFee(uint256)","5e9f9613":"availableReserve()","5ea050ec":"InitiateCompanies()","5ea102b0":"Base()","5ea187c9":"BuildByteArray(bytes)","5ea194a3":"createScalarEvent(address,address,int256,int256)","5ea1bb17":"winInternal(address,bytes32)","5ea1d6f8":"commissionRate()","5ea1fc6a":"NAME_SATOSHI()","5ea27e40":"PRESALE_END_TIME()","5ea36bd6":"MultiHolderVault(address,uint256)","5ea39624":"ATTR_SEEDED()","5ea3ad0a":"doWithdrawal(uint256)","5ea40983":"addMember(address,uint256,bool,string)","5ea4cf50":"AMPTToken()","5ea56918":"BIAToken()","5ea63913":"getInvestorBalance(address)","5ea6474d":"getPVPBattleResult(uint256,uint256,uint256)","5ea67956":"CrowdtesICO()","5ea81231":"ownerAddRole(address,string)","5ea81e07":"editAccountData(address,string,bytes)","5ea82efb":"MariaToken()","5ea8cd12":"setMinPrice(uint256)","5ea8cf00":"PardiICO()","5ea94bcf":"updateUserTrustRankForMultipleChannels(address,bytes12[],int256[])","5ea95215":"SpaceXToken()","5ea98520":"changeNewExchange(address)","5ea9caff":"FrozenFund(address,bool)","5eaa6ca4":"_cancelMarkets(uint256)","5eaaa699":"SALES_SUPPLY()","5eaad235":"getDataByDeviceId(uint8,uint8)","5eab15e4":"devuelveApps(bytes32)","5eabc684":"updateIssuanceData(address,uint256,uint256)","5eabe01e":"saleSuccessful()","5eac1414":"UNIQ(uint256,string,string)","5eac6239":"claimRewards(uint256[])","5eac85d5":"burnGasAndFreeFrom(address,uint256,address,address[],bytes)","5ead330c":"getDungeonFloorDetails(uint256)","5ead8846":"updateFundsOwner(bytes32,bytes32)","5eadd607":"debugResetSubmissions()","5eae177c":"isTransferAllowed(address,uint256)","5eaefac1":"reservePricing()","5eaefb31":"CARD_TAKE_SHARE()","5eafe515":"newDeveloper(address,string)","5eb08d8a":"setBurnRate(uint8)","5eb101c3":"capped()","5eb17cdb":"setBeginTime(uint256)","5eb19ad1":"recalcAmountWithFees(uint256,bool)","5eb19eda":"InitiatePlanets()","5eb1f936":"JBToken()","5eb28fb2":"Robot()","5eb332da":"updateAward(uint256)","5eb38bef":"setcommissionPer(uint256)","5eb3f639":"assertTrue(bool,bytes)","5eb456c1":"goldIssueBurnFee()","5eb51d3c":"setTrancheMinTx(uint256)","5eb53bfa":"test_standardCampaignConstructionValuesFailsDueToNoParameterValidation()","5eb604bc":"GongChuangToken()","5eb61aa9":"executeSignedCall(address,uint256,uint256,bytes,bytes)","5eb62178":"getMinAmount(address)","5eb62d75":"sendPrivateSaleTokens(address,uint256)","5eb6a78f":"gamesCounter()","5eb7413a":"lockedTokens(address)","5eb9bbf7":"founderTokenUnlockPhase4()","5eba2472":"Migrations3()","5ebad2ab":"GrowthPool_Supply()","5ebaf1db":"staker()","5ebb7077":"mkDomain(bytes32,address)","5ebc1db8":"positionScount1(address,address)","5ebc7826":"CasCoin()","5ebca187":"testFailTransferWhenStopped()","5ebcaf7e":"sendBuyAgent(int256,int256,int256,int256)","5ebcc621":"endFundraising()","5ebcfe50":"taxTransfer(address,address,uint256)","5ebd2196":"getMyBalanceDNT()","5ebd9a83":"add(bytes32,address,address)","5ebdd159":"tokenAvailable()","5ebe4746":"CCPLUS(uint256,string,string)","5ebe7c72":"reply(string)","5ebfed78":"buyRegion(uint256,uint256,uint256,string)","5ec01e4d":"random()","5ec0c707":"winnerFromGas(uint256)","5ec112a2":"setPreSaleOpened(bool)","5ec1b499":"AnythingAppTokenPreSale(address,address,address,uint256,uint256,uint256,uint256,uint256)","5ec1fc19":"convertMint(address,uint256)","5ec211a1":"accountOfN(address)","5ec2c7bf":"auctioneer()","5ec2dc8d":"depositReward()","5ec30be2":"assignListingDB(address)","5ec38bec":"updateFundWallet(address)","5ec3f160":"secondsInDay()","5ec4eb95":"GoldWhitelist(address,bool)","5ec5bc8e":"pushOrderOfOwner(address,uint256,bool)","5ec5bed6":"coupon(uint256,uint8,uint8,bytes32,bytes32)","5ec70cd2":"_getProviderPriv(uint256)","5ec72a90":"maxCumAcceptedDeposits()","5ec81130":"calcBonusRate()","5ec88c79":"getAccountLiquidity(address)","5ec93cb2":"withdrawal_gas()","5ec94770":"RhinexFundCoin()","5eca2aeb":"getBytesArrayIndex(bytes32,uint256)","5ecb16cd":"withdrawTokens(address[])","5ecb6594":"isCoreContract()","5ecb7d20":"testGetCaseCount()","5ecc33ac":"testPrivacy()","5ecc7975":"YUPVesting(address,uint256,uint256,uint256)","5ecd62b9":"divCut()","5ecf36f7":"Print(string,uint256)","5ecf71c5":"decreasePower(uint256)","5ecfdcfc":"KnownTokens(address,address,address)","5ecff851":"p_setDevAddress(address)","5ed0f3fd":"changeVariables(address[],uint256[],address,address,uint256,uint256,uint256,uint256,uint256,uint256)","5ed16294":"nacBalance()","5ed188c9":"MNTToken(address)","5ed18d95":"CollatLending()","5ed31991":"lastLockingTime()","5ed411e5":"setNewToken(address)","5ed4382f":"fourthStageMinting()","5ed49e9b":"ADVISERS_AND_FRIENDS_WALLET()","5ed4d7ae":"_getTokenAmount()","5ed50033":"myetherpay(uint256,string,string)","5ed5684c":"HCHToken(uint256,string,string)","5ed570f3":"toggleCanCreateGames()","5ed5ea28":"whiteListContract()","5ed65228":"sponsoredJackpotMin()","5ed66172":"getCertificateForWallet(address,address,address)","5ed66998":"usingOwnership()","5ed6a8e7":"setData_13(string)","5ed73bc7":"distribute(address,uint256,address[],uint256[],uint256)","5ed75366":"DEVELOPER_FEE_FRAC_TOP()","5ed7ca5b":"halt()","5ed81ebe":"getInspireTokens(address,address,uint256)","5ed84aa6":"getNymCenterAPIURL()","5ed85753":"ergoam(uint256,string,string)","5ed9ebfc":"soldTokens()","5eda17bc":"_tuneLambo(uint256,uint256)","5eda232d":"getTokenStakeByIndex(uint256)","5eda5b9a":"interestCollected()","5edabc99":"getPresaleEndTime()","5edb2fb3":"uint256ToBytes32(uint256)","5edc1ac8":"discountDecimal()","5edc9bff":"upgradeUnitMultipliers(address,uint256,uint256,uint256)","5edca2b4":"unsuccessfulWithdrawal()","5edd4436":"newOffer(bytes32,string)","5eddd157":"claim(uint256,uint256,bytes)","5edf34d4":"Transfer(address,address,address,address)","5edf413e":"burn(bytes32,address,uint256,bytes)","5edf8d3c":"SetAdOwner(uint256,address,address)","5edfa1f8":"calculateFees()","5edfd788":"completedGames()","5ee10f3b":"instruct_2()","5ee2a018":"deployMultiToken()","5ee2cec2":"issuerDateMinutes()","5ee345e4":"computeEndowment(uint256,uint256,uint256,uint256,uint256,uint256)","5ee4e3f8":"LocklistAddressisListed(address)","5ee58efc":"distribution()","5ee5e9ee":"SaleStarted(uint256,uint256,uint256)","5ee679f9":"removePolicyFrom(address)","5ee6cc38":"buyToken(address,address)","5ee7144c":"_removeTopic(string)","5ee759e8":"encodeCurrency(string)","5ee760a5":"hashHardCap(uint256,uint256)","5ee7b392":"sendToken_internal(address,uint256)","5ee7cd23":"isBCFBuyMarket()","5ee7e96d":"grant(address,uint256,uint256,uint256,uint256,bool)","5ee857d1":"test_insert_findWithHintPrevUpdateTail(int256)","5eeb9ff9":"get_transferLock()","5eebc031":"newReadAddr()","5eebea20":"pending(address)","5eec743b":"minContributionMainSale()","5eec9df0":"softCapWei()","5eecbad8":"getFunderByIndex(bytes32,string,uint256)","5eecdec0":"unLockup()","5eed1f1a":"setTotalIndividualWeiAmount(address,uint256)","5eed3dcb":"donorList(uint256)","5eed886b":"minimumPerTransaction()","5eedbceb":"emitTransferFeeUpdated(uint256)","5eee006a":"secondStageStartsAt()","5eee7078":"sendETH(uint256)","5eeeee22":"setMaxWin(uint8)","5ef013d0":"Ico()","5ef17eff":"getSettingValuesById(uint256)","5ef1bfdb":"landPriceWei()","5ef27d1a":"hasRazCompleted(uint256)","5ef2a3f4":"giveAwayInProgress()","5ef2c79a":"getMyNmBet(uint256,uint256)","5ef3f3d1":"voteRelease()","5ef3f9e1":"BETS_CLOSING_TIME()","5ef4d2af":"_calculateTokenAmount(uint256)","5ef4ed42":"setBattleTokenAddress(address,address)","5ef505c0":"discoveryBlocksUntilAllowed(uint256)","5ef572ad":"stageMgmtSystem()","5ef5cdb2":"doFailedOffer(uint256)","5ef6228c":"bytesToAddr(bytes)","5ef652ad":"EtherFarmDevSim()","5ef6543c":"YDMediaToken()","5ef6ad57":"Delivery()","5ef74958":"Epam()","5ef78561":"cashWallet(address)","5ef79434":"DATE_PRESALE_END()","5ef7ac4d":"startRedeem(uint256,bool)","5ef7b303":"getPI_edit_14()","5ef80c87":"create20ContractToy()","5ef82429":"tixPromo()","5ef8da77":"Altruism()","5ef97145":"BokkyPooBahsAutonomousRefundathonFacility()","5ef9dde8":"removeApprovedGame(address)","5eface14":"numStakersForPoll(bytes32)","5efb4dc5":"deathData_a7()","5efb8266":"setGoldContractAddress(address)","5efbb728":"transferold(address,uint256)","5efbcfba":"minWeiToBuy()","5efbdc47":"setLastBidId(bytes32)","5efc156f":"Roles2LibraryAdapter(address)","5efd1682":"transferPreSigned(address,address,uint256,uint256,uint256,bytes,bytes32,bytes32,uint8)","5efd3c41":"whiteListEndBlock()","5efdb1e4":"percentToTakeAsSeed()","5efe2fcf":"releasedLockedAmount()","5eff7dae":"getInstructors()","5eff8b48":"Prakashcoin()","5effd20d":"withdrawForAddress(address,uint256)","5f01b42f":"alloweRefund()","5f02116f":"claimRewards(uint256[],uint256[])","5f024e91":"testCheckEthBalance()","5f0379f5":"firstPriceChange()","5f038b6d":"refillFunds()","5f05b3e4":"HappyToken(uint256,string,uint8,string)","5f05b9df":"removeTWhitelist(address)","5f065346":"pay(address,uint256,uint256)","5f06541d":"resetOwner()","5f065b4a":"checkItem(bytes32)","5f06900b":"changeBattleFee(uint256)","5f073f49":"gatherDetails(uint64[])","5f07a3e5":"addAllNewTicket(uint256,bytes32[],uint256[],uint256[],uint256[])","5f07bd15":"take_fees_eth_owner()","5f09952e":"voteAllowTransactions(bool)","5f0b37e4":"VeritokenToken()","5f0d5296":"reserveAllowance()","5f0d995b":"developer_string_contract_verified(string,string)","5f0da25b":"sendDeposit(uint256,address,uint256,bytes32)","5f0da5c9":"create(string,address,address,address,address,bool)","5f0e3855":"ownerRefundUser(bytes32,address,uint256,uint256)","5f0edfb8":"create(bytes,bytes32,bytes1)","5f0f1f85":"transferProposalEnd()","5f0f7786":"IssuedToken(address[],uint256[],uint256,uint256,address,string,uint8,string)","5f0fc2e8":"RealMoneyToken()","5f104c5f":"SalesAgentPermissionsTransferred(address,address)","5f111074":"picopsCertifier()","5f112c68":"renounceMinter(address)","5f11301b":"setServiceURI(string)","5f1231ea":"getMemberInfo(address)","5f141a0f":"confirmWrite(bytes32,address)","5f14af16":"Subscribe(address,address,uint256,uint256,uint256)","5f14e108":"openTokensale(address)","5f159e60":"TimeBoundaryChanged(string,uint256)","5f167276":"getNumElements()","5f17114e":"TimeDeposit()","5f1768c1":"buyerHistory()","5f1845f6":"transferDecimalAmountFrom(address,address,uint256)","5f184eda":"withdrawFactoryResourceBalance(uint16)","5f185329":"submitOrder(bytes)","5f1877a8":"productPrice(string)","5f18aa0c":"decimals(bytes32)","5f196876":"allPromotions(uint256)","5f19c7b2":"doSetSettings(uint256)","5f1a6f4b":"BARL()","5f1b3ee6":"getAPAddressSize()","5f1b46ab":"inflateToken(address,uint256)","5f1ca2fc":"ReferralRegistered(address,address)","5f1d146e":"eeeeeeeeeeeee()","5f1d7037":"KEDToken()","5f1d804f":"checkTxProof(bytes32,bytes,uint256[],bytes,bytes)","5f1d90ae":"getCurrentOpinion()","5f1e1c28":"__transfer(address,address,uint256,bytes)","5f1e580d":"ETUToken()","5f1e8c1b":"MAX_MODULES()","5f1f6c5e":"delFromList(uint256,address[])","5f1fc571":"set_prices(uint256,uint256,uint256)","5f1ff549":"issued()","5f222da1":"latestMomentOf(uint256,address)","5f227bfc":"totalPlayerTokenContracts()","5f22c42f":"getBuyerReceipt(address)","5f238402":"lastAllowancePaymentTimestamp()","5f241c8e":"AnythingToken(uint256)","5f24f6fe":"setUpgradedAddress(address)","5f2536f7":"calculateMaxContribution(address)","5f27e47d":"GetWinnerAt(uint256)","5f27f6e3":"getPlayerGeneralAll(uint32)","5f27f946":"handleTokens(address,address,uint256)","5f28213b":"SCTC(uint256,string,string)","5f28b383":"minPerUser()","5f28cb74":"getSubscription(bytes32,address)","5f2961e1":"walletFounder1()","5f2a9f41":"MAX_GAS()","5f2aeae9":"executeCreator(uint256)","5f2af8d9":"Logocoin()","5f2b9ac0":"startPhase3()","5f2bb66e":"BatchTransfer(address)","5f2befb9":"hasTerminated()","5f2bf49a":"BitcoinRateUpdated(uint256,uint256)","5f2da7ec":"todayDays()","5f2e0c20":"giveConsent(uint8,bytes32,bytes32)","5f2e2b45":"freeFrom(address,uint256)","5f2e4b31":"testDisputedInvalidSequenceWrongWriteAddress()","5f2e686d":"Ethereum_eight_bagger()","5f2e8493":"addmoney(address,uint256)","5f2ebcf2":"GMRToken()","5f2ef12d":"tokenFactory(uint256)","5f2f83ba":"getMul(uint256)","5f2fb08e":"removeElement(address)","5f3040bf":"getMIRABALANCE()","5f304615":"earlyAllocation()","5f309123":"sale2(address,uint256)","5f30ed2a":"withdrawAmountFromToken(uint256,uint256)","5f31ea82":"holdTokenInvestors(uint256)","5f32714d":"ChannelSettled(address,address,uint32,uint192,uint192)","5f3292d7":"DMCTCoin()","5f330669":"dateMove(uint256)","5f33afdb":"preallocCoins()","5f33c5e1":"Payout(bytes32,address,address)","5f34165d":"isRightBranch()","5f3616eb":"getNextOnce(address,uint256,uint256,uint256)","5f3619b1":"getProfitFromSender()","5f373c22":"setHydroContractAddress(address)","5f37b43f":"_getType(uint256,uint256)","5f3893ef":"getReward(address,uint256,address)","5f399d28":"TokenIceBox(address)","5f39fd73":"approveUpdate(uint256,address,bool)","5f3aa2bb":"checkIfRewarded(bytes,uint256,bytes,bytes)","5f3bc04c":"addressFundInvestment()","5f3c15ed":"radtokenSupply()","5f3c23be":"isProposalNotExpired(bytes32,uint256)","5f3c6686":"challengeBook(address,address)","5f3c91ad":"accrueEther()","5f3ca167":"crowdSaleInitialized()","5f3cebcd":"incrementalInverse(uint256,uint256)","5f3d634f":"freezeMulti(address[],uint256[],uint256[],uint256[])","5f3d7fa1":"maxAttendees()","5f3e3db0":"increaseWeeklyTransactionVolumeSending(uint256)","5f3f703c":"gifter()","5f403edc":"addThenSub(uint256,uint256,uint256)","5f40fc27":"withdrawGoldMoney()","5f412d4f":"releaseTokenTransfer()","5f412ff1":"ownerEnablePayee(address,address)","5f41ccef":"multMint(address[],uint256[])","5f421776":"switchONfreeForAll()","5f429ba5":"Risk()","5f437e48":"settingsState()","5f43e49c":"isDataYes(bytes)","5f4402c5":"distributeTokenToAddressesAndAmounts(address,address,address[],uint256[])","5f45161f":"payToInviter(uint256)","5f45221d":"retrieveIncompleteProof(bytes32)","5f452df1":"approveCrowdsale(address)","5f456c1f":"assignedAmountToEcoReward()","5f45c179":"ABYSS(address,address[],address)","5f46d750":"amountOfDividendsPayouts()","5f4784a5":"allOf(address)","5f478f74":"Milestone(string,uint8)","5f47ba42":"Plendito()","5f4821ab":"ContractFactory()","5f4874e4":"multiTransfer(address[],address[],uint256[],string)","5f48f393":"maxAmount()","5f493f63":"convertToMini(uint256)","5f495491":"claimsCreated()","5f4964e0":"setMarketComissionRatio(uint256)","5f497a09":"adminCharge_p1()","5f49d562":"QSTPerEth()","5f4a47c3":"updateUpdater(address,string)","5f4b125b":"get_pre_kyc_bonus_numerator()","5f4b2873":"getDepositedValue(address)","5f4b9b4f":"getPolicyCount(address)","5f4c71f1":"getTotalETH()","5f4dd2d8":"mintPreico(address,uint256)","5f4eab65":"hasEditionInProgress(uint256)","5f4ed0b1":"rebalanceBucketsInternal()","5f4f35d5":"setFullName(string)","5f504a82":"ownerCandidate()","5f5082dd":"setLast(uint256,address)","5f51028d":"checkIsReleaseRecordExist(uint256)","5f515226":"checkBalance(address)","5f516131":"ReserveUnknown(bool,uint32,uint256,uint256)","5f51d526":"balanceMapPos(address)","5f51db02":"Memes()","5f52e9fd":"WithdrawCashForHardwareReturn(uint256)","5f538fd4":"openMigrationPhase()","5f539d69":"addContract(address)","5f53e077":"setPausedTransfers(bool)","5f5404af":"PriceProvider(string)","5f542c94":"emitAreaEvaluated(address,address,uint8,uint256)","5f54a1c7":"requestEndCall()","5f54ae17":"buy50Price()","5f54fa98":"conventionId()","5f56315b":"enableSell()","5f56b6fe":"safeWithdrawal(uint256)","5f56e134":"averageArtworkSalePrice()","5f5810ea":"UBIT2018069()","5f5868db":"freezedValue()","5f589599":"resultsPublished()","5f58ed2a":"disableBot(address,uint64)","5f596681":"setShpExchangeRate(uint256)","5f598510":"KVMToken()","5f59940c":"addressToSpentEther(address)","5f5a98ee":"dragonGirlLotteryPrice()","5f5bb161":"set(bytes20,uint256)","5f5d867b":"CryptoPoosToken()","5f5db5dc":"setVariables(string,address,uint256,int256,bool,bytes32,address[2],uint256[2],int256)","5f5df710":"updateCertifier(address)","5f5e38b6":"setBuyPrice(uint16,uint16,uint8,address,uint256)","5f5f23a0":"charityFactor()","5f5f2aef":"amendRetention(uint8,uint8)","5f5f62f9":"setControler(address)","5f5fa782":"getCurrencyByte(uint256,uint256)","5f5fca9a":"setEnforceAddressMatch(bool)","5f6076bf":"Access()","5f60a5d4":"CompleteWildcard(uint256,address)","5f60ef47":"get_heaps(uint256)","5f60f485":"updateStatus()","5f61a26e":"PRESALE_ETHER_MIN_CONTRIB()","5f61bf99":"claimG()","5f623e15":"divisible_units()","5f645f16":"setInputFile(uint256,bytes32)","5f647d5a":"ethSignedMessagePrefix()","5f64b55b":"tokenB()","5f65545d":"Raffle_Prize()","5f65d621":"setSkill(uint256,uint256,uint256,bytes32)","5f65d703":"setInfo(bytes32,uint256)","5f65faf1":"isProduct(bytes32)","5f677404":"INITIAL_VALUE()","5f68688f":"endFirstBonus()","5f68804e":"SimpleLotto()","5f689fed":"startPVE(uint256)","5f6a1301":"clearPending()","5f6a4546":"ROLE_REVIEWER()","5f6acfe9":"_updateRate(uint256,uint256)","5f6d0ded":"ReservationFund(address)","5f6dd297":"getProjectEndDate(bytes32)","5f6e388a":"ProofOfCloneWars()","5f6ea340":"revokeAccess(address,address)","5f6ecea0":"vestedTransfer(address,uint256,uint256)","5f6edff8":"assureDAppIsReady()","5f6f8b5f":"setExclude(address)","5f7033e5":"getCurrentStartTime()","5f704f3e":"updatePrice(bytes32,uint256)","5f70d9ac":"getBot(uint256)","5f7118c7":"setRevealOpen(uint256)","5f71249c":"changeOrganisationName(string)","5f722859":"updateHashValue(bytes32,bytes32)","5f723b50":"getInitialReportMinValue()","5f72a508":"playerPopMining(uint256,bool)","5f72f450":"check(uint256)","5f73d6c0":"promisedTokenBalance()","5f746233":"dispense(address)","5f74a5ec":"pecunioWallet()","5f74bbde":"vote(address,uint256)","5f74c16c":"getPrizePot()","5f75b5ef":"whitelistAddress(address,address)","5f75cb6b":"getCountTransferInsToken(address,address)","5f7619a4":"takeFee(uint256)","5f766118":"salutaAndonio()","5f76e49a":"addPerson(bytes32,bytes32,bytes32,bytes32,uint256,bytes32,address)","5f770d47":"HyperSale()","5f77ace0":"stop_token_time()","5f7807a4":"transferToUser(address,uint256)","5f788531":"buy5Price()","5f791c7c":"ZRSToken()","5f7a7bb5":"returnRegDate(address)","5f7b68be":"addKey(address)","5f7b73b2":"getInvestorCredit()","5f7b764f":"_getLuckySpaceshipMoney(uint256,uint256)","5f7bb7f1":"setMaxProfit(uint128)","5f7c944f":"mintAccount(uint256,uint256,uint16,bytes32,uint256)","5f7cbc39":"addressOfTokenUsedAsReward2()","5f7cfe49":"internalSalt(bytes32)","5f7d897e":"checkVendor()","5f7dfd3f":"totalPaidToFunders(bytes32)","5f7e61fa":"SendTo(address)","5f7e7138":"setDth(address)","5f7ee166":"setupOpenDistribution(uint256,uint256,address,address)","5f7eed5d":"LeajoeToken()","5f7f9482":"statusQuery()","5f800348":"balancesImporter1()","5f8162bb":"transferTokenContractOwnership(address)","5f824297":"SellOrderPlaced(uint32,address)","5f84d0f9":"tokenR0()","5f84e343":"Artemine()","5f84f302":"setInterestRate(uint256)","5f852975":"randomtests()","5f8534ae":"claimDeposit(uint256)","5f856dbf":"Token_AllowTransfer()","5f85abdc":"contains(int256,int256)","5f865912":"addContract(address,address,uint256,string,bool)","5f877108":"sendToCharger(uint256)","5f88bff0":"presaleFundingGoal()","5f88e83d":"checkAndCallTransfer(address,address,uint256,bytes)","5f88eade":"opened()","5f88ffed":"wallet10()","5f8909bd":"biddingPeriod()","5f8a3029":"Standard_4()","5f8a7eab":"getReleaseAmount()","5f8aaa69":"sourceToken()","5f8aaef7":"contractStakeToken()","5f8af054":"getMessageLength(string)","5f8b93d2":"SingularityTest13()","5f8bad42":"getCommunityBallotWeiPrice()","5f8c1fce":"nextBracket()","5f8c494f":"IntIDQuery(address)","5f8cb3f6":"bounty_paid()","5f8cf6c4":"SMILO_SALES_AMOUNT()","5f8cf7c5":"PermissionGroups()","5f8d96de":"getDeadline()","5f8e38e1":"depositERC20Compatible(address,uint256,uint256,uint256)","5f8eb4c7":"jsub(uint256,uint256,uint256,uint256,uint256,uint256)","5f8f0483":"buyBankerAgreementFromImporterBank()","5f9094f5":"GetCreditsPerEth()","5f9145ef":"RefundReceived(uint256)","5f918b05":"ServiceProviderDisabled(address,bytes)","5f91af39":"_increasePlayerDivis(address,uint256)","5f9209ad":"getPositioninterestPeriod(bytes32)","5f92dee8":"adminGetWorldSnapshot(uint256)","5f932d71":"walletSetSigner(address)","5f945733":"getTotalInvested()","5f94e3de":"setSecondaryOperator(address)","5f94e82c":"setBridgeValidatorsProxyOwner(address)","5f956244":"TribePlatform()","5f9590fc":"_isValidDataHash(bytes32,bytes)","5f95ad43":"HasNoEtherTest()","5f9602e8":"perClaim()","5f96d9fa":"gemSpeedConversion()","5f972df8":"_jDiv(uint256,uint256,uint256,uint256)","5f9973b9":"WeiToken()","5f99c1b2":"_landholderJackpot(uint256)","5f9a2c23":"endFourthWeek()","5f9aa94f":"SpiceRates(address,uint256)","5f9adf84":"getUserSentTradeOfferId(address,address)","5f9b71ce":"bet(uint256,address)","5f9bad28":"saleBonus()","5f9c84b5":"transferirSala(address,uint256)","5f9cb50d":"updateMasks(uint256,uint256,uint256,uint256,uint256)","5f9dfc79":"minBuyTokenAmount()","5f9e1080":"settleBet(uint256,address,uint256)","5f9f3f46":"MakeSharesFromAmount(uint256)","5f9f4734":"birthday()","5fa13b49":"shweta()","5fa21f1f":"enableBetting()","5fa27af0":"GITC()","5fa382ea":"getPixelsOwned(address)","5fa3df98":"changeKYCStatus(address,bool)","5fa413b0":"ownerShareInPercent()","5fa44602":"tokenCreationDate()","5fa458b7":"buysoldiers(uint256)","5fa51277":"emergencyExtract()","5fa513d5":"findPtr(uint256,uint256,uint256,uint256)","5fa58268":"approveRequestPause()","5fa60fc8":"DCAsset(address)","5fa67c00":"Credit(address,address)","5fa77dac":"all(bool[6])","5fa7b584":"removeToken(address)","5fa7dc56":"getCurrentRateWithBonus()","5fa7df6b":"setDelegateAndLockTokens(uint256,address)","5fa87163":"viewlisting(uint256,uint256)","5fa8c869":"_getRandomPartSubtype(uint256,uint8[])","5fab11a5":"startICO(uint256,uint256,uint256)","5fac4996":"findSignedSubscriberIndex(address)","5fad18e4":"Visualrockcoin()","5fad3b1a":"initialiseContract(address,uint256)","5fad663e":"expectedDividends(address)","5fae0576":"isWhitelistedAddress(address)","5faeb944":"setData_22(string)","5faeced2":"removeFromUserCounter(uint256)","5faf2880":"changeDna(uint256,uint256)","5faf6675":"forecastInfo(uint256)","5fb02f4d":"startContract()","5fb07a62":"getDrugs()","5fb0ac18":"birthDragon(uint256)","5fb130af":"retry(address)","5fb135f9":"distributeAff(uint256,uint256,uint256,uint256)","5fb1552c":"GanaLocker(address,address)","5fb1ef8e":"checkOrder(address)","5fb1f1d7":"getSketchesOnOffer()","5fb3b944":"privateSaleSoldTokens()","5fb3e119":"Auction()","5fb42c59":"goldListPeriod()","5fb437f2":"setWithdrowRate(uint256,uint256)","5fb4f78c":"finishConfiguration()","5fb500a5":"ETT(uint256,string,uint8,string)","5fb64fd6":"checkMembership(address)","5fb6bca2":"fighterCore()","5fb77b9c":"revealBracket(bytes8,bytes16)","5fb7a643":"enableServiceProvider(address,bytes)","5fb80f20":"weiPerAnimal()","5fb8dc8b":"MasternodeTransferred(address,address)","5fb8fed6":"PJR()","5fb93bb7":"transferDataEntryClerk(address)","5fba26a6":"getBorrowedBooksCount(uint256)","5fbaa390":"haltSale()","5fbabc49":"setSkill(uint32,uint8,uint32,uint32,uint32,uint32,uint32)","5fbddcf3":"isLivingMonarch()","5fbe4d1d":"tokenAddr()","5fbf17ac":"totalUBetCheckAmounts()","5fbf79a2":"EmergencyStopSell(bool)","5fbfd9f6":"crowdsaleController()","5fbff3e2":"preferentialRate()","5fbff3fc":"KuangJinLian()","5fc02dcd":"freezeAccountForOwner(address,bool)","5fc13e0f":"initTransaction(address,uint256,bytes)","5fc1a4b8":"treasurySupply()","5fc1afac":"forwarders_count()","5fc2b479":"unlock(address,uint256,uint8)","5fc2cb39":"buyTokensWithProperEvent(address,uint8)","5fc31aeb":"_rawGetTokenDelegation(address,address)","5fc378df":"sawcoin()","5fc3ea0b":"withdrawERC20(address,uint256,address)","5fc42ebf":"KTZ()","5fc483c5":"OnlyOwner()","5fc4a6f3":"getCurrentBonusSystem()","5fc5d48b":"burnUnsoldCoins(address)","5fc5e727":"investedSumOnIco()","5fc6bd17":"pendingParsecs()","5fc71288":"GOTPAY()","5fc75bf2":"viewCreatePetitionFee()","5fc8cc16":"returnAmountOfELIXAddressCanProduce(address)","5fc9309c":"transferFrom(address,address,uint256,address)","5fc93ed7":"BirthdayBoyClickHere()","5fc9d392":"setMessageStatus(bool)","5fc9e75e":"historyCountOf()","5fca5a92":"set_arbits_max_contribution(address,uint256)","5fcb568c":"release(string,uint32,uint32,uint32,string,string,string)","5fcba9ae":"DURIANX()","5fcbd5b6":"countDown()","5fcc2edb":"IndividualityTokenRoot(address)","5fcc6277":"changeModuleBudget(uint8,uint8,uint256)","5fcc7ea1":"nextScheduledQuery()","5fcc9d0f":"hardCapPreIco()","5fcce279":"announcementType()","5fccf40a":"redeemBonusLot()","5fccfda4":"postICOSale()","5fcd7fe6":"OWNER_TOKENS()","5fce627e":"hasArea(address,uint256)","5fceab11":"incomingTransaction(uint256)","5fcee7a0":"CEOAddress()","5fcf0455":"interestEarnedAccount()","5fcf92ef":"received_tokens()","5fd030c0":"setLicenseNFT(address)","5fd0526e":"getReleasableBonusAmount(uint256,address)","5fd0f8b2":"smartContractSaleEnded()","5fd1bbc4":"publicStartTime()","5fd23730":"LogSwapToken(address,uint256)","5fd33b1b":"freezeTrading()","5fd357fc":"PortfolioContent(uint256,uint256,uint256)","5fd4b08a":"getName(address)","5fd56dfc":"AllInOne()","5fd56e98":"whoHadTheBiggestDick(uint256)","5fd5e3b4":"newEvent(uint256,address[],uint256,uint256)","5fd65f0f":"swapStorage()","5fd72d16":"addAllowance(address,address,uint256)","5fd7793a":"setStreamerContract(address,uint256)","5fd8c710":"withdrawBalance()","5fd8d3d1":"maxInvestorCap()","5fd9d610":"verifyGameResult(bytes32)","5fd9dff6":"allowance(address,address,bytes)","5fd9e124":"pStopBlock()","5fd9e693":"Crear_rifa(uint256,address)","5fda0dc1":"isOnExchange(uint256)","5fda83f6":"TokenTransferDisallowed(uint256,address)","5fdba1de":"setIBalance5(uint256,uint256,uint256)","5fdbba04":"debatePeriodOf(uint256)","5fdc1a97":"AllSportsCoin()","5fdc9e0a":"dropSupply()","5fdcd306":"check_status()","5fde0ed5":"getCountBySeller(address)","5fde731c":"wdiv(uint256,uint256)","5fdf05d7":"two()","5fdf5357":"sortDescBy(uint256[],uint256[])","5fdf60fb":"circulation()","5fe07013":"revokePermission(address,bytes32)","5fe0e081":"changePeriod(uint256,uint256)","5fe16454":"Fragment()","5fe22c8b":"testFailTransferWithoutApproval()","5fe27ab0":"createHKG(address)","5fe2d689":"getInterest(uint256)","5fe36964":"TEAMS_TOTAL()","5fe3854e":"calculatePrice(uint256,bool)","5fe3b567":"comptroller()","5fe44141":"getRegistryDataRegistered()","5fe4c0f3":"validationTime()","5fe59b9d":"setMotd(string)","5fe5b825":"AuthComplete(address,address)","5fe6fb19":"ConsultaProva(string)","5fe736e9":"createContractPlayer(string,uint256)","5fe745ea":"unlockOwnFunds()","5fe75764":"specialAccounts(address)","5fe772c6":"buyStakes(address,address)","5fe78b9b":"_getCurrentBonus()","5fe825f8":"getHodlOwner(uint256)","5fe8e7cc":"getHolders()","5fe9219a":"transferToMainViaRelay(address,uint256,uint256)","5fe98f99":"_getPayOut()","5fea13f8":"distributeToken(address,uint256,uint256)","5fea3de9":"getDuration(uint256,uint256)","5fec4be9":"issue(address[],uint256[],uint16[])","5fec5d0b":"isDelegate(address,address)","5fed2091":"addLovers(bytes32,string,string)","5fed22a4":"payOffClientDebt(uint256,uint256)","5fed2edd":"pushArray(bytes32,bytes32)","5fee0aac":"giveBattleBonus(address,uint256)","5fee63c3":"calculatedTo()","5fee8a4b":"getCommitThreshold()","5fef2094":"qryModuleDetail(string)","5fef4d34":"setOwner(address,address,bool)","5ff149ba":"UpdateEthBalance(uint256,uint256,uint256,uint256)","5ff1569e":"developmentPercent()","5ff19392":"strToUnderlierType(bytes32)","5ff1a9c0":"setPlAAdress(address)","5ff3b980":"getCooloffPeriod()","5ff456cb":"refundToOwner(uint256,uint256)","5ff46857":"getEthToTokenMakerOrderIds(address)","5ff4909b":"setAbel(address)","5ff4ae32":"setGasForDCN(uint256)","5ff4f876":"NFTBalanceOf(address)","5ff63abc":"ETimesChain()","5ff65efe":"MaxPoSXblock()","5ff6b342":"getValidDurationNonce()","5ff6cbf3":"getMessages()","5ff6e9d0":"investtokens()","5ff77b22":"checkTeamToAdd(uint64,uint64,uint64)","5ff79c07":"DenmarkvsFrance()","5ff7ec2f":"SoldTokensFromCroupier(address,uint256,uint256)","5ff7f947":"setSinistre_effectif(uint256)","5ff85cc0":"feeUnit()","5ff8b778":"findWinners()","5ff97818":"setMetadata0(string)","5ffabbce":"teamReserveTimeLock()","5ffb1578":"pushArrayValue(uint256)","5ffbba3f":"relativeDateSave()","5ffc7cc7":"transferProfit(uint256,uint256)","5ffcb734":"setTokensControlInfo()","5ffcbe30":"voteForCandidateViaProxy(uint256,address)","5ffce121":"getTopCompanyCount()","5ffd59bd":"GetBalanceOwnerForTransfer(uint256)","5ffde7be":"priceUpdateInterval()","5fffad5a":"setselfdropvalue(uint256)","5fffb7c7":"changeTokenAddress(address,int256,address)","600005b3":"Delegation(address)","60003918":"AllWorksToken()","6000eb9f":"getTeamInvest(uint256,uint256)","6001279f":"decreaseApprovalByLegacy(address,address,uint256)","600160a3":"bet_luse()","6001b23e":"getCustomerTxAtIndex(address,uint256)","60027c25":"bankrollLockedUntil()","60035c3f":"swipeHoney()","600440cb":"upgradeMaster()","60048290":"Kanzhang()","60063887":"transferDebt(address,address,address,uint256)","6006eb9b":"Demor(uint256,string,string)","6006f178":"WitdrawLenderProfit()","600720c2":"sponsoredJackpotAmount()","6007c4f8":"isTokenSaleOngoing()","6007c836":"setIndividualMaxCap(uint256)","60084004":"getRectangleArea(uint256,uint256)","6008fb07":"EtherGit(address)","60095dcb":"stopCharging()","60098088":"deleteCar(uint256)","6009eed3":"crowdSaleOpen()","600a686e":"setResponse(address,string)","600b1ff2":"setBlackBox(address)","600c200e":"ANIToken(uint256,string,string)","600c523b":"LogIssue(address,uint256)","600cf0d9":"getOrdersOfOwner(address,uint256,uint256,bool)","600d05ac":"XZARToken()","600d0beb":"isInRaffle(address,address)","600d7003":"retrieveTokens()","600da23a":"checkTimeBonusPercentage()","600de26a":"getDigitFromUint(int256,uint256,uint256,uint8)","600e0ee7":"getMySeeds()","600e85b7":"tokenGrant(address,uint256)","600f8cfc":"registerByList(address[])","60104cef":"createGame(uint256,uint256)","60116397":"Registrar(address,bytes32,uint256)","6012042e":"verifyPayment(bytes32,uint256,uint256,uint8,bytes32,bytes32)","60136123":"NTToken()","6013aa44":"testControlCreateSameNonce()","6013d092":"tokenSaleLimit()","6014e37c":"getLLV_edit_15()","60154e85":"payComision()","60155673":"TEC_TEAM_WALLET()","601570ea":"getResponseString(uint256,bytes32)","6016db70":"getAssetMinAmount(address)","6016dd4a":"credentials(address)","60173ede":"FondoNetwork()","60175bcb":"ActivityCore(address,address)","6017bb61":"Death()","6017d51d":"testInt(int256)","6019061b":"createSale(uint256,uint256)","60192799":"steps()","60196008":"replaceLevel(uint256,uint256,uint256)","601a0e77":"pseudoRandomUint8(uint8)","601ab918":"CashBetCoin(uint256)","601b349c":"removeCollaborator(uint256,address)","601ba73a":"setMainSale(uint256)","601cd624":"transfersAreLocked()","601d3910":"reconcile(address[],int256[],uint8[],bytes32[],bytes32[])","601d54eb":"ZTCrowdsale(address,address,address,uint256)","601ee75e":"SPINToken(address,address,uint256,uint256)","601fba02":"activateBuyback(uint256,uint256)","601fc832":"getObserverAtIndex(uint256)","6020b90a":"_internalTransfer(address,address,uint256,bytes)","6020d2c5":"_newSaddle(uint256,uint256,uint256,bool,address)","60213b88":"getInitialWithdrawal()","60214c6f":"test_method()","60217267":"stakedBalance(address)","60219c7b":"totalTokensForSale()","6022e6f8":"createProposal(address,uint256,string,bytes)","602451ea":"showAuthorizerOneAmount()","60246c88":"getPoolInfo()","602501a1":"SGD_Omnidollar()","602512e1":"setDifficulty(uint256)","6025d3e5":"finalizeAll()","60261ce6":"deadlinePreIcoOne()","6026bb86":"battleUnitIdRange()","6026c151":"offerGanTokenForSale(uint256,uint256)","60274396":"createDutchAuctionToBuy(uint256,uint256,uint256,uint256)","60281080":"HBVToken()","6029755e":"_generatePersonalNumber(string,uint256)","60299843":"minWeightDeduct()","6029b13f":"collect(address,address,uint256,bytes32,bytes32,uint8)","6029bf9f":"distributeFees(uint256)","6029d66f":"setRecoveryContract(address)","6029f53f":"getOrderTakerTokenAmount()","602a3fee":"sendMiningProfit(address[],uint256)","602acca1":"InchainICO(address[],uint256)","602b7001":"updateRefundApplications(address,uint256,bool)","602bc62b":"getUnlockTime()","602cd226":"DelayedPayment(address,uint256,address)","602cf359":"IOXToken()","602d7d62":"stateFail(uint256)","602e2533":"_fee(uint256)","602e496c":"fundcruVaultLockTime()","602e6623":"minePool()","602ea880":"AlphoTestTokenCoin()","602fbd79":"afterCrowdSale()","603066a4":"foundationReserve()","60312cdd":"LazyToken()","60316801":"getTokenMetadata(uint256)","6031749c":"updatePassport(address,uint256,bytes32,bool)","60319f71":"EOEToken()","6032f4a6":"fulfill()","603318ad":"getContributions(uint256,address,address)","60339c7b":"resetUserPromoBonus(address,address)","6033abd5":"CafePayed()","6033cdc6":"voteToUpdateMaritalStatus()","60344938":"changeCongress(address)","603510cb":"USDYToken()","60351748":"genericAction(bytes32[],address)","603546b9":"UnMint(address,uint256)","603553df":"ReederemEvent(address,uint256,uint256,uint256)","603601d5":"esercita_potere_pubblico()","60368a33":"totalBribery()","60368f30":"XLedger()","603709e3":"get10Characters(uint16)","60393a55":"addPeriod(uint256,uint256)","6039c60c":"fiveTimes(address,uint256)","6039fbdb":"addTokens(address,uint256)","603a552e":"engineer()","603c1370":"onNewLoan(uint256,address,uint256)","603c5e52":"SetCreditsPerEth(uint256)","603ccf5e":"AMBASSADOR_SEVEN()","603d1b98":"guardian1()","603d1d1c":"setSellOpen(bool)","603d1ed9":"createdOn(uint256)","603daf9a":"getBuyer()","603e3a40":"bulkBuy(uint8[],bytes6[],uint32[],uint32[])","603f4d52":"saleState()","60425c48":"TokenSellPercentage()","604269d1":"isMain()","6042a760":"icapTransfer(bytes32,address,bytes32,uint256)","6042fbe1":"maxPower_()","60434dcf":"getGitHub()","60445142":"depositCntr()","604497a2":"_transferFrom(address,address,uint256,bytes,bool)","6044ce6e":"cancelAgonForce(uint64)","60456068":"appreciationStep()","60457034":"setVerificationStatus(bytes32,bool)","6045804f":"delManager()","60464627":"totalWithdrawals()","6046c37f":"activateEmergencyProtectedMode()","6046d718":"loggedTransfer(uint256,bytes32,address,address)","6046f71d":"getProposalEthReward(bytes32,address)","6047a00e":"bonusTokensPool()","6047f7f5":"getTotalBmcDaysAmount(uint256)","60483a3f":"submitEtherProposal(uint256,string)","6048e89e":"setEthToBeClaimed()","60493ea4":"ico4Raise()","604a4bc8":"createTrackFromBack(bytes32,uint256)","604a4f9d":"regularTicketPrice()","604a6fa9":"Random()","604aa2cb":"backResiliumOwner()","604b2399":"_hasFlag(uint256,uint256)","604bf292":"safeSubtrNCP(uint256,uint256)","604c0b60":"transferBuyer(address,uint256)","604c7ef4":"BCBtuCoin()","604ca461":"addStory(bytes12,bytes12,uint256,uint256)","604cc1a5":"startGiveaway(uint32,uint256)","604ce56c":"MAX_ACTIVE_CANVAS()","604d3943":"poolCut()","604e3588":"SmartDollar()","604e4732":"tryFinializeLastProposal()","604e5fb8":"structureIco(uint256)","604e7af6":"totalDropTransactions()","604f87d8":"transferFromCallGas()","604f90a8":"getGladiatorChestAvailable()","604fc446":"getAddOnNeeded(uint16)","60500245":"registerName(string,bool)","60506aff":"initialDeposit(address)","6050eeb4":"_createLibrary(string,string,address,address,uint256,uint256)","6051c7cd":"acquireTokens(uint256,uint256,address,uint256,address)","60521116":"showPoolInfo(uint256)","60528e7b":"proxyWithdraw(address)","6052a849":"getEtherToBuy(uint256,bool)","60536172":"takeOwnership()","60542557":"SmartExchange(string,string,uint8,uint256)","60546602":"isAbsent(bytes32)","6054da0b":"setNextCommonTTMTokenId8(uint64)","60566675":"LeoCoin()","6056969b":"announce(bytes32)","6057361d":"store(uint256)","60577043":"tixFund()","6057f2ca":"addDealer(string,address,uint256)","60583488":"get_info()","60585358":"getByte()","60589137":"ListingCancelled(bytes32,uint256)","60595433":"Pass()","6059838b":"tierTwoPurchase()","605a18c2":"setTokenTransferFeeProp(address,address,uint256)","605a42db":"superDragon(uint256)","605a8ea3":"AvailableCommission()","605ae1d0":"BIDTToken(address)","605b24be":"gcard(uint256,address)","605c0209":"ZorffToken()","605c2dbf":"ManagerChanged(address,address)","605c43de":"getBetById(uint256)","605cee71":"delWallet(uint256)","605de51d":"getTotalSponsorship(uint256)","605e5ee1":"delWhiteList(address)","605f2ca4":"distributeTokensToContributorByIndex(uint256)","605ff295":"CelebrityToken()","60608438":"setCurrentAndNextSnapshotBalance(address,uint256,uint256)","60616ae2":"BllotPro(bytes32[])","6061d692":"month30Unlock()","60621984":"Mining24(uint256,uint256)","606224f8":"sendPendingAmounts(uint256,uint256,address)","60643652":"maxEntrants()","6064d863":"revealedCeilings()","6065140b":"setKYCVerificationContract(address)","60654e47":"getLotteryBalance()","60659a92":"tokensAvailable()","6065fb33":"genesisAddress()","60662fe2":"TOKENS_TOTAL_SUPPLY()","60668e58":"getData_5()","6066b066":"isSaleMarket()","6066ed11":"getCombatsCount()","6067be79":"getInvestedSumToRound(uint256)","60689557":"Rock()","6069272c":"getAllEntityIds()","60694549":"withdrawUserPrize()","60699026":"mulSafe(uint256,uint256)","60699d92":"createPersonalTime(address,uint256)","606a1f7a":"EtheremonTrade(address,address,address,address)","606a405e":"getAddressPlayNumber(uint256,uint256,uint256)","606a7f01":"Addr4()","606a9584":"_forwardPoly(address,address,uint256)","606aed30":"withdrawOwedToken(uint256,uint256,uint256)","606baff8":"minCrowdsaleAllocation()","606bc9a5":"setOwnerHoverText(address,uint256[2])","606ce3bf":"set(uint256,uint256,uint256,uint256)","606d0d14":"executeOffer(uint256,bytes)","606d55b1":"getY(uint256,bool)","606da54e":"XBLContract_addr()","606dc104":"openRaceCount()","606deecd":"requestData()","606ec65d":"TransferUpdated(address,uint256)","60702417":"MakeERC20(uint256,uint256,string,string)","60704108":"getAssetProxy(bytes4)","60708ae3":"issueAndCommit(address,address,uint256,uint256)","6070f1be":"NodeMCU_Endpoint()","60711058":"getUserDeposit(address,uint256)","6071eb5c":"ecosystemReserve()","60721b7c":"debitAmountToRefund()","607267d3":"getPlayerRoundDividend(address,uint256)","60726abb":"copy()","60727416":"newUserFrom(address,string,string)","6072ec64":"auditData()","60733572":"setUnicornToken(address)","60734859":"changeSaleTokenLimit(uint256,uint256)","6073660a":"findNextDay(uint256,bytes2)","60737a7c":"FaucetToken(string,string,uint8)","6073d045":"userDepositedWei(address,address)","6074123c":"AthlierToken()","607485fe":"firstYearMinedTokenCap()","6074b806":"updateOrderbook(address)","607531b6":"bitownToken()","6075eb7d":"openChest(uint256)","6076a3d5":"setEarlyParams(bool,uint256,uint256)","60771261":"scalarBaseMult(uint256)","6077759c":"bubbleSortAllMatches()","6078268b":"advisorsTokens()","60785bd1":"easyUpdateMatriarch(address)","6078b87e":"communityPeriodLength()","60795d80":"requestAllowance()","607a124f":"setAttrs(address,address,address,uint8,uint256,uint256)","607af216":"getRepresentedDTH(address)","607b463a":"getCash(address)","607b9169":"toOwner()","607b9f97":"safetyWallet()","607cbaff":"viewPetitionShareholder(uint256)","607d35c4":"uint5ToStr(uint256[5])","607db616":"tokenAllocate()","607dbae5":"ProofOfIdleness()","607dc1d6":"createNewCSCResource(string,string,uint256)","607eaf70":"investorBankroll()","607ecd96":"checkAccBalance()","607fa5a4":"updateRequired(uint256)","60805e5a":"unlockAddress(address,bool)","60808037":"numTokensForContributor(uint256)","6080af05":"setVoterStakesContract(address)","6081f5cb":"calculateBonus(uint256)","60820d80":"getOwnedTokens()","60827be8":"IDChain()","60829f8a":"unstake(address,address,uint256)","6082a02c":"getPriceIdv(bytes32)","6082a6ad":"Punani()","60834493":"Veetune(uint256)","60836aa4":"changeDevCut(uint256)","6083e59a":"maxDeposit()","608427e6":"ApolloSeptemTokenPurchase(address,address,uint256,uint256)","608458eb":"TOKEN_FOR_SALE()","6084747f":"mostRecentBlock()","60851f28":"viewThirdLotOfClauses()","6085e6af":"tokenSellData()","6086e22f":"calculateInitialPayerDeposit(uint256)","608716ad":"CryptoMoviesToken()","60874b27":"SpankICO()","60887081":"IEOStarted()","6088a917":"artworkRegister()","6088caf3":"tier4Time()","608980eb":"intervalsAt(uint256,uint256,int256)","6089e3c4":"BitCashPlatform()","608bc08c":"airDrop(address,address,address[],uint256,bool,address)","608bd7f4":"setLong(address)","608be57f":"_startNextAccountingPeriod()","608cadb8":"Goldmint(address,address,address,address,address)","608cb457":"SLACK_PERIOD()","608cc40a":"createRules(address,address[])","608d031a":"checkMiningActive()","608d576b":"getMultiRequestRegistrar(uint256)","608d670a":"XfStandardToken(uint256,string,uint8,string)","608e7fa6":"addAlias(bytes32,address)","608e9122":"InbestToken()","608eaa6a":"setFiscalVerify(bytes32,uint256,uint256,uint256)","608eba96":"_createCard(uint256,uint256,address,address)","608f102e":"District0xContribution(address,address,address,address,address[])","608f1f7e":"DGDTalk()","608fc07a":"updateSalesWallet(address)","60900c88":"coinprice()","60909c51":"closeDataResponse(address,address,bool,bool,bytes)","6090befe":"setCompanyWalletAddress(address)","60913244":"botOnSale(uint256,uint256)","6092019a":"MAX_FUNDING()","6092e55b":"createCDPLeveragedDai(uint256)","60938601":"approveOnly()","6094fae8":"finishTransfer(uint256)","609526c2":"generateRandomNumber(uint256,uint256)","60953744":"Mul(uint256,uint256)","60958192":"getProposalTTL()","6095c2d5":"setExchangeCommissionAddress(address)","60961955":"addFakeVisitors()","609619b4":"SecurityDepositRegistryReplaced(address,address)","60965dc0":"firstRoundWMStart()","609669eb":"StopIcoManually()","6096bbde":"_getGameAuctionGap()","609725ef":"getCurrentPassportLogic()","60972a84":"reissuedTransactions()","60975988":"PING_ORACLE_INTERVAL()","60979759":"p_setOwner(address)","6097bca9":"atnSent()","60994bb0":"_createRoc(uint256,string,uint256,address)","6099af40":"setConfigBool(bytes,bool)","6099ecb2":"pendingRewards(address,uint256)","609a54b0":"get_all_sellable_token()","609ab538":"newSchellingRoundEvent(uint256,uint256)","609ada00":"logEntropyTxDetails(string,uint256)","609b5785":"_mainsaleSupply()","609b8394":"setAnimator(address)","609ba988":"approveAdvertiserCharges()","609bdc71":"MintableMultiownedTokenTestHelper(address[],uint256,address)","609bec67":"period3Denominator()","609bf323":"VestedTokenMock(address,uint256)","609bf6ba":"GetGuestCount()","609d2bc5":"oraclize_setConfig(bytes)","609da897":"setupCompleted()","609df32f":"listNode()","609e5ca4":"getTournamentAmt()","609ec605":"toBytes(bytes4)","609f8fe2":"verify(string,uint8,bytes32,bytes32)","609f9a8e":"betFromGame(uint32,bytes32)","609ff0fb":"developersRecipient()","609ff1bd":"winningProposal()","60a10fa7":"setBridgeHeight(uint256)","60a11672":"safeTransferFromWithData(address,address,uint256,bytes)","60a1623f":"_withdraw(string,string,bool)","60a1f397":"_evaluateArea(address,uint8,uint256)","60a22932":"totalSaledToken()","60a22fe4":"nextMinimumBond()","60a31921":"dividendsOf(address,address)","60a4a929":"Assigned(address,uint256,uint256)","60a4d104":"dteamVaultAddr2()","60a4d1a5":"AddNewCard(uint32,uint32,uint8,uint16,uint16,uint16,uint16,uint32[])","60a4d599":"getPreICOLength()","60a59bdb":"random_number()","60a60fd8":"testProxyCallWithValue()","60a64947":"getAdv(address)","60a703ea":"ReceivedOwnership(address)","60a72c29":"getAppData(address)","60aa0e1c":"ICO_token_supplyCap()","60aa6b9e":"changeDueDate(uint256)","60ab5852":"issueTokens()","60acf888":"token_transfer(address,address,uint256)","60ad2391":"settlement(uint256)","60ad5bd0":"getCountrySpots(uint16)","60ad970d":"getLoansForAddress(address,uint256)","60ad9d7b":"burnByAddress(address,uint256)","60ae1eb5":"buySaleCardFromSys()","60aeac18":"neverPayBack()","60aef331":"buyTokensBonus(address)","60af9f91":"masterRecruitment()","60b0b0f0":"contribute(uint256,address)","60b1e057":"EVMSCRIPT_REGISTRY_APP_ID()","60b1e173":"getProof(uint256,address,address)","60b2a56a":"drawWinner(uint256)","60b35739":"_multiMint(address[])","60b38880":"TemperatureMeasurementA(address,int8,int8,uint16,string)","60b431a4":"testGetSig()","60b4a8fd":"getLastBidId()","60b6aa92":"privateIcoEndTime()","60b6ff5c":"ioucoin()","60b73223":"refundMoney(address,address)","60b7b3f6":"getCurLotIndex()","60b82e2e":"getRandomNumberList()","60b831e5":"cancelCall(bytes32)","60b95da5":"YclDoCoins(uint256,string,uint8,string)","60b99afb":"getIconiqMaxInvestment(address)","60baabf3":"nizk_setup()","60bba03d":"setTeamMember(address,bool)","60bc59b7":"__addressToString(address,address)","60bc5a06":"airdropManually(address,uint256)","60bce2f4":"usdPerEth()","60bd409e":"setAllowSellLands(uint16)","60bd7a9d":"statuses()","60bddc04":"getRateScore(uint256)","60be3547":"newLottery(uint256,uint256)","60be5f70":"newUser(address,bytes20,uint64)","60bea672":"createPorscheTicket(address,uint256)","60bebe98":"translateTileToWidth(uint16)","60bf1d2f":"ownsHive(address)","60bf46ea":"setQuotePriority(address,uint256)","60bf4dd5":"PGO_INTERNAL_RESERVE_CAP()","60bf9a84":"getbetData(uint256,uint256,address)","60bfe04e":"setRewardOpen(uint256)","60bff45c":"_addHolder(address)","60c1461f":"setNewICOTime(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","60c17d1d":"freedWosPoolForSecondStage()","60c17eec":"eventPaid(address,uint256,uint256,uint256)","60c20c16":"addOffer(string,uint256,address)","60c2db45":"walletTwitter()","60c2f663":"toUINT128(uint256)","60c311fd":"doBurnFromContract(address,uint256)","60c31544":"exporterReceivedPayment()","60c326ea":"setModel(address)","60c46821":"fundContractForRefund()","60c5cc3a":"acceptProposal(uint256)","60c6171c":"calculateGoldBuySimple(uint256)","60c66c5c":"maxNumOfPayoutCycles()","60c6b3a5":"claim(bytes,address,uint256,uint8,bytes,bytes)","60c6ccb2":"removeMonsterIdMapping(address,uint64)","60c6ec6f":"validState()","60c71546":"enableTransferEarlier()","60c72285":"submitRemoveOwnerTransaction(address)","60c79d00":"setNumTranscoders(uint256)","60c7bb5a":"host_lottery(bytes32)","60c7d295":"cache()","60c82d6f":"addAddressToWhiteList(address,address)","60ca46cd":"toTokens(uint256)","60ca6890":"_submitTransaction(address,uint256,bytes,bytes,address,uint256)","60cb66d0":"sum(int256[])","60cb8884":"TokenBank()","60cb96be":"CollectibleIndex0()","60cc2e8c":"maxGoalReached(uint256)","60cce8a5":"getValuableTokenAmount()","60cd4ba4":"getTimeBasedBonus(uint256)","60ce03d5":"totalTokenIssued()","60cf7133":"testSetPermissions()","60cfc624":"setLLV_edit_26(string)","60cfd359":"mainSale()","60d12fa0":"getExecutive()","60d1c056":"usedPaymentSupply()","60d1ce36":"collectibleIndexToApproved(uint256)","60d26f01":"ownerTransferWei(address,uint256)","60d2bee9":"addArtistSignature(uint256,bytes)","60d3b4b0":"frwd()","60d3e4c5":"isDistributionInProgress()","60d4c79b":"burnOneBroGlobal(uint256)","60d50130":"FineArtsToken(uint256,string,string)","60d586f8":"getValue1()","60d60d2e":"countcomp()","60d60dad":"mainSaleFirstEndDate()","60d63425":"StakePool(string,string,uint8,uint256,uint256)","60d704db":"getBank()","60d8c2d2":"oneTokenWei()","60d938dc":"isPresaleActive()","60d975c9":"GG()","60d9c823":"removeClientAuthority(address)","60d9f0a8":"setNotarius(address)","60dab6be":"ActionAgon()","60dccd89":"getContentAccount(uint256)","60dd5f90":"getPolicy(string)","60ddd8e8":"sumICOStage2USD()","60dddfb1":"votingWeightOf(address,uint256)","60dde4c2":"queueFront()","60de94d0":"setCCH_edit_11(string)","60e036a0":"EtheremonAdventurePresale(uint256,uint256,uint256,uint256,uint256,uint256,address)","60e092c6":"cancelOrder(address,address)","60e11e16":"Lira()","60e232a9":"changeVault(address)","60e2f6e8":"createProxyAndCall(bytes)","60e30a02":"ChinaInvestmentExchangeToken(uint256,string,uint8,string)","60e393c6":"DEVELOPER2()","60e39f73":"PotatoToken()","60e45f04":"UBSexToken()","60e474e3":"_issue(address,uint256)","60e4c1ac":"LogReceived(address,uint256)","60e519c0":"computeMarginAmount()","60e587f9":"goldReward()","60e5ef3a":"getPrice(uint8,uint8)","60e65bb8":"startTrading(bool)","60e68a25":"dash()","60e6cfd8":"addKey(bytes32)","60e6fb26":"resumePurchases()","60e708b3":"balanceOfUnlockTokens(address)","60e794de":"stageDataStore(uint256)","60e7a381":"o_aprendiz(uint256)","60e805c5":"LogMigrationCanceled(address,address,address)","60e85674":"checkLogin(address)","60e99b77":"getProposalState(bytes32,bytes32)","60e9c78b":"isNeedCheckTickets()","60e9f17e":"CRDToken()","60ea110b":"fromToken(uint256,uint256,uint256)","60eabebd":"CreateAPP(address,uint256)","60eb2826":"Badge()","60ebb498":"adminCancelWithdrawal(address,uint160,string)","60edc4c4":"timeOf(uint256)","60ee66c9":"setSubcontinentDiscoveryVotingContract(address)","60ef6037":"buySaddleShop(uint256)","60f01452":"updateEggs()","60f14509":"hodl()","60f17941":"tokensGranted()","60f1d148":"getMaximumBetAway()","60f247b5":"confirmTransaction(uint256,address)","60f2b9af":"setDocumentData(string,string,string,string,string)","60f2e1c0":"buyAndCrave(string)","60f2f673":"setcoe(uint256)","60f38d91":"endEarlyStage1()","60f5ac86":"campaignOpen()","60f5d0d8":"ReloadKeys(uint256,uint256,uint256)","60f61a4c":"buyUnitRaffleTicket(uint256)","60f66701":"useCoupon(string)","60f69dc0":"partnerReservedSum()","60f6e71d":"KuendeToken()","60f6fb2e":"chunkedWeiMultiple()","60f75530":"countRemaining()","60f75f3b":"closeMarketOrder(uint256)","60f8af90":"refundRound()","60f8bbb8":"setPuppySports(address,address)","60f8dab7":"userRefund()","60f8e036":"manageStatus()","60f96a8f":"parent()","60fb4aa0":"founder4Wallet()","60fd0668":"WAVcoin()","60fd0e91":"mintlist(address[],uint256[])","60fd1e66":"_movePendingToSetting(uint256,uint8)","60fd902c":"gnosisToken()","60fdd1c9":"setStakeRate(bytes32,uint256)","60fdf8ff":"GameEnded(uint256,uint256,uint256)","60fe136e":"BogdanoffCoin()","60fe47b1":"set(uint256)","60fece43":"percentForTeam()","60ff77cc":"ledgerRecordAdd(uint256,bytes32,uint256,string,uint256,bytes32,uint256)","61001cd3":"testIsStarted()","61004364":"depositTokenTo(address,address,uint256,uint256)","6100b1e1":"resetDiscounts()","610103d9":"changeTxFee(uint256)","61012e15":"phaseLength()","6101a1f7":"unitStealingCapacity(uint256)","6101d16b":"getNumberOfSharesForAddress(uint256,address)","6101d4f5":"payTheMan(uint256)","6101f748":"FundsRegistryWalletConnector(address[],uint256)","61025532":"permitBurning(bool)","61027f78":"paying()","610285d2":"testControlRetractLatestRevisionDoesntHaveAdditionalRevisions()","6102c049":"getBatchNumber(address)","6102d419":"getEthForMetResult(uint256)","6102e4e4":"verifyProof(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[11])","610358ae":"removePrivelegedWallet(address,address)","61039bef":"releaseLocked(address)","6103ae75":"AGENCY_ADDR()","6103d70b":"withdrawPayments()","6103d915":"Winners(uint256)","6103dda6":"mutate(bytes32,bytes32)","6104464f":"previousPublishedVersion()","61046d8b":"setRLCPerETH(uint256)","61047ff4":"fibonacci(uint256)","6104d75a":"deathData_f13()","61050bb7":"_fetchPaidOrdersForPayer(address)","61053cd3":"tokensByUsdTx(string)","6105b499":"artCopyright()","6105c8af":"stubFunction(address,uint256)","61064b48":"GetInvestorAddress()","61064b5a":"processMarkings(address,uint256)","61066dc3":"enableServiceMode()","610757e4":"_wallet()","6108b5ff":"channel_deposit_bugbounty_limit()","6108bd0e":"sowCorn(address,uint8)","61096820":"CETH()","6109e255":"EtherSent(address,uint256)","6109ff33":"BihuaToken()","610b16ab":"onTransferStack(address,uint256,uint256,uint256,uint256,uint256,bytes32)","610b1abd":"lottery(uint256,uint256)","610bafaa":"getTotalBPOfAddress(address)","610bbebd":"Sensor()","610be654":"closeContract()","610c1d68":"addNtf(bytes32,uint256,address)","610c3009":"badgeName()","610cbcc7":"logHash(uint256)","610d006c":"getSourceConstraint(int256,uint256,uint256,uint256)","610d5de8":"validateEndowment(uint256,uint256,uint256,uint256,uint256)","610da891":"debug3()","610e9ed0":"postDisputeEth()","610efc86":"RegisterMine(string,uint256)","61101bed":"getTAmount(uint256,uint256)","611067a1":"Rate7()","61116d1d":"masternodeDeregister()","6111bd91":"cyberEntry2(address,bytes32)","6111ca21":"enroll(address,uint256)","6111dd02":"calcCostsSelling(uint256,uint8,uint8,uint256)","61129a80":"getEarlyIncomeMul(uint256)","6112c2ab":"summPartnerships()","6112c7c9":"RedirectChanged(address,uint256)","6112e8ac":"mint(address,uint256,uint8)","6113611f":"stakeVoted_Eth()","611408ff":"latestReleaseUrl()","6114dc0f":"lastFlight(address)","61150aae":"ethusd()","61161aae":"bury()","61162182":"storeDoc(string)","6116ec49":"VotingFinished(address,bool)","6117525b":"initialClaesOffering()","6117b80c":"getFixedAndShareFees()","6117c9db":"retainedTokensVault()","61186e23":"getCountdownDate()","611a20ae":"IotcToken(uint256,string,uint8,string)","611b4095":"isWhitelisted()","611c4662":"getPriceByDayIndex(uint16)","611c7f50":"Core()","611cb25f":"failStage()","611cb6aa":"Vault(address,uint256,uint256,uint256)","611daa7e":"EmergencyBalanceReset(uint256)","611eb470":"maximumICOCap()","611ef452":"cancelDelivery(string)","611efc09":"sale(address,uint256)","611f1fbe":"itsLikeChicago()","611f64f9":"setTokenPrice(uint128)","611f69de":"__proxy_motion(address,uint256,uint256,bytes)","611fd026":"showApproveToken(address)","61203265":"organizer()","6120ada7":"setAuto(uint256)","6120e125":"TUMIYUNTOKEN(uint256,string,uint8,string)","6120ffbc":"accountsPayableHeld()","61211087":"firstAuctionsHighestBidder()","6121e522":"teleportPrice()","612249fb":"communityContributionSupply()","6123218b":"registerPurchase(bytes32,address,uint256)","61235639":"AcreToken(address,address)","6123c63f":"removeEmbassy(address)","6123dfc3":"NoWinner(string)","6123f7ba":"onlyWithValidSignatureAndMethod(bytes)","61241c28":"setTokenRate(uint256)","612472fe":"toZT(uint256)","6124a577":"whitelistController()","6124e4e7":"dividendContract()","612544b3":"getReservedTokens(address)","6125fd20":"voteForRefund(bool)","6126cb99":"registerAsset(address,bytes32,bytes8,uint256,string,string,address[2],uint256[],bytes4[])","6127421d":"tokenPayments(address)","6127a1ad":"_setRarityValue1(uint256)","6127cfd9":"verify_withdraw()","6127f246":"getActiveTasks()","61282631":"tokenMintedSupply()","612845fc":"claimQueen(uint8)","612867c2":"calcRefund(bytes32)","6128a4f3":"investorsLosses()","61296540":"rewarded_refresh()","6129f25f":"setReferralPercent(uint256)","612a711f":"SimpleERC20Token(uint256,address)","612a7562":"setBountyRegistry(address)","612ab238":"balanceOfOnForHolder(address)","612acecc":"frozenForever()","612bfae2":"description4()","612c0968":"privateSaleRate()","612c56fa":"submitVote(uint256,bool)","612c9dea":"unreserveFor(address)","612d6061":"getExpectedMinReturn(address,address,uint256)","612d669e":"setMinStakingAmount(uint256)","612e45a3":"newProposal(address,uint256,string,bytes,uint256,bool)","612e731d":"TheGreatEtherRace(string)","612eb5e7":"revokePermission(uint8,address)","612ecc48":"MINIMUMCONTIB()","612ed785":"winningTeamIndex()","612ee726":"isOnAuctionToBuy(uint256)","612ef473":"betRevealed(uint256)","612ef6e9":"isRefundApplied(uint256)","612f2f37":"setMaintenance(bool)","612ff19e":"PolicyPool(address)","61301409":"minereum()","6130ced2":"UniCoin(uint256,string,string)","6130d537":"createPartnerPlayer(uint256,uint256,uint256,address)","61314ee3":"managerAddressMap(address)","6132ca1a":"getResult(uint32,int8)","6133a0eb":"PRE_SALE_300_ETH()","6135e084":"myDividendTokens()","6135f602":"contractPartTwo(uint256)","61362b68":"reInitialize(address,address)","613696eb":"burnCadvsLeftInRefunding()","6137412c":"monethaGateway()","6137d670":"submitWhitelistRemoval(address[])","6138889b":"distribute(address[])","61389e8b":"getTokensManual(address)","6139a008":"numTokensLimit()","6139faa6":"getAllTimes()","613a626b":"SnipCoin()","613bc081":"ExternalAccountWalletConnector(address)","613c36ae":"sendToStocks()","613d8fcc":"oracleCount()","613de7cb":"subWizard()","613e0fb8":"reservationWallet()","613e2de2":"getContractInfo(bytes32)","613f4594":"totalBetAmount()","613f5b9f":"TokenContractAddress(address,address)","613f5fe8":"MAX_USER_TOKENS_BALANCE()","613f7665":"getClosedSaleWallet()","613f8dac":"sellShitClones()","613fd87a":"calcBigPromoBonus(uint256)","613fd998":"messageSpecial()","613ff46f":"rewardPerNode()","6140128f":"getTupleDetails()","61402596":"setInitialSupply(uint256)","6140af43":"preICOcollected()","6140c54c":"createProxy(address)","6140ca78":"setIsMiningOpen(bool)","6141b54b":"FundsWithdrawn(uint256,address)","6141d5d0":"CoffeeToken(address)","6142101a":"last_buyer()","61425d79":"numRequesters()","61426df4":"STCListing()","6142e78f":"allowedAmountTransferedToPoolTotal()","6142ff70":"createShipment(address,string,string,int256,int256,uint256,uint256)","61432e81":"ConsumeGas(uint256)","6143a80a":"isGameEnded(bytes32)","6143abba":"totalCreatedOfType(uint256)","6144a8a1":"ZJFPrivate()","61461954":"execute()","61463838":"getMyPlumbers()","61463b64":"_hashToAscii(bytes32)","61465a32":"distribute(uint256,uint256,uint256,uint256)","61472fd4":"CSGOBets()","61476d55":"GetTotalAmountForMultiplicator()","614781f9":"atkBoss(uint256)","6147a55c":"SwapPaused(uint256)","6147bcb9":"getPVPState()","6148fed5":"pollMap(uint256)","614939b2":"allocateTokensForTeam()","61493b97":"set_minimum_payment(uint256)","61494714":"_createNewGame(uint64)","61496b83":"endSplitAgreement()","614984d1":"getUnicornGenByte(uint256,uint256)","614a31bf":"setII_R2(uint256)","614af914":"_updateMargins()","614b3e7f":"BCSToken()","614baf5c":"withdrawAffiliateRewards()","614bbc33":"privateContribution(address,uint256)","614be0c4":"getRemainShareAmountInternal(address)","614cb904":"isFinalizeAgent()","614d08f8":"CONTRACT_NAME()","614d5f07":"stepForPrice()","614d85e1":"timeOut()","614f2b3a":"_diff(uint256,uint256)","614f3994":"SpeedyNetwork()","615155dd":"getVesting(uint256)","61523f2e":"changeEthReward(uint256)","61537010":"Whitelisted(address,uint256,uint32)","6153b827":"BancorHandler(address)","6154274d":"deleteProposal(string)","61543801":"currentPeriodIndex()","6154c16f":"MineOwner(uint256)","6154db6e":"UroToken()","61558349":"BitTeamToken()","615664ba":"Market()","6156e892":"checkOnlyContractOwner()","61571ddd":"distributionFinishing()","6157c5ec":"getGoldInfoSku(address)","615815f5":"releaseSecondUnlock()","61584936":"sealedBids(bytes32)","615878c8":"SkrumbleCandyToken()","61591a7c":"personUpdateDOB(uint256,int256)","61592b85":"getOrderDetails(uint32)","615a4e0f":"ChangeMainAccount(address)","615a604f":"setMarketer(address)","615acbae":"Freeze()","615af5fb":"areTokensSended()","615c2971":"Gametest()","615dbebb":"setContract(address,address,address,address)","615df83a":"remainderHolder()","615dfa5c":"defaultParams()","615ea899":"changeHello(string)","615ef639":"tokensClaimedAirdrop()","615f9f1f":"testFailTransferNotEnabled()","615fa416":"totalAtom()","61616292":"STCBonus(uint256,uint256)","6161eb18":"_burn(address,uint256)","61625c3a":"setLockByPass(address,bool)","61632d4d":"institutionStageSetting()","616361a7":"getArrUintField3()","61641bdc":"add(bytes32,address)","61649472":"getPoolFreezePeriod()","6165234c":"setPermissions(address,bool)","61665e40":"_premoveByValue(address)","61669dfa":"setSpecialBonus(address,uint256)","61679629":"UniversalRewardProtocolToken()","616852e9":"GoldBought(uint256,address,bytes32,string,string,bytes32,string,string,bool)","61688a85":"Lwcoin()","6168ba3c":"getWeiAggregateMayInvest()","6168c9c3":"tosell(address,uint256,address,uint256,address,uint256,uint256)","6169a7ed":"CashForHardwareReturn()","616a0997":"TokenPurchase(address,address,uint8,uint256,uint256,uint256,uint256)","616a3420":"verifySig(bytes32,bytes,bytes)","616a6371":"SingleAccountRules(address)","616b40e3":"totalInvest()","616b59f6":"deleteBytes(bytes32)","616b829d":"SwappedTokens(address,uint256,uint256)","616c9469":"Finalized(address,uint256,uint256)","616ceda7":"setJOYTokenAddress(address,address)","616d1fab":"distributeToAlternateAddress(address,address)","616d5058":"userAccounts(uint256)","616d50c3":"GCToken()","616dcf0c":"calculateTotalSupply(uint256)","616e2fd0":"FortaToken()","616eba4a":"getLocksrootIdentifier(address,address,bytes32)","616f7bc9":"addAddressesSet(address)","616fbee7":"changeMinimumBet(uint256)","616fca9b":"adopt(address)","616fe92a":"emitFeePoolUpdated(address)","616ffe83":"read(string)","61708908":"prepareDisputeValid()","6170a23e":"transferTech(address)","6170b162":"join(bytes)","6170feec":"getWinIndex(address,uint256)","61711115":"RegistrationStatusChanged(address,bool)","61718141":"totalSupplyIsLocked()","61719785":"clockmaker()","6171d7fc":"adjustTotalCoins(int32)","61725795":"setAquaman(address)","6172c0df":"updateDeposit(address,uint256,uint256)","6172f071":"setIsAllTransfersLocked(bool)","6173a70c":"initRandom(address)","6173e456":"setAMLWhitelistedBulk(address[],bool[])","617421c9":"calTripleRoom(uint256,uint256,uint256,bytes32)","61751577":"addCET6(uint32,uint64,uint64,uint64,uint16,uint16,uint8,uint8,uint8)","6175adee":"icoStandardPrice()","6175bc9c":"preStartBlock()","6175f9e2":"dragonHandler(uint256)","617605a1":"Zillion()","61764f59":"BitDATAToken()","6176caed":"HeroTrained(uint256,address,uint256,uint256,uint256,uint256,bool,uint256)","617708dd":"getEscapeRequest(uint32,int256)","61774704":"verifyBid(bytes32,bytes32)","61775ee1":"onlyBouncerRemoveExtension(address)","6177a197":"GoGoPay()","6177fa04":"setGenerateAddr(address)","6178a8b1":"splitStarFunds()","6178ac90":"_createCompanies(bytes32[],bytes32[])","6178efee":"returnToken(uint256)","617914be":"AUTH_CHANGEOWNEDOWNER()","61794267":"oldExecuteDecayFunction(uint256,int256,int256,uint256,uint256)","61798287":"safeToNextIdx()","6179ed72":"ProofOfSecret()","617a0951":"feeModifiers()","617a2a15":"icoStartP2()","617ac9a1":"SOSRcoinToken()","617b293e":"getInvestStatus(uint256)","617b390b":"approvePreSigned(bytes,address,uint256,uint256,uint256)","617bb8f5":"reject(uint32,uint32)","617c2fb8":"sell_Exchg_Reg(uint256,uint256,address)","617d2c84":"PRIMEx()","617d3c47":"RemovalPriceSet(uint256)","617d6bb4":"distributeEarningsBasedOnNumberOfCells(address,address)","617e80b4":"getPlayerShipModelByIndex(address,uint256)","617ee3a7":"MoonInc()","617f171f":"reopenDO()","617f4e3e":"set_got_refunded()","617f8666":"testFailRestartNotOwner()","617fba04":"getRecord(address)","617fc592":"priceStages()","61806891":"idVerification(address,address,uint256)","6180e4ac":"getAvailableNumbersForRaz(uint256)","6181d565":"getExpectAmount(uint256,uint256,uint256)","6181fb0a":"ERC20(uint256)","618293ba":"_updateState(uint256,uint256)","61829677":"claimdivs()","61836b0e":"lastUpdateEtherPrice()","61837e41":"get_stats()","6183c5d6":"EthereumAI(address)","618407e5":"tokenDrain()","61840c69":"getSaleSold(uint256)","61851416":"modifyCurrentVideoGamePrice(uint256,uint256)","61851679":"Protecthor()","6185bb50":"AOC_available()","6186b3e3":"showMoneyTransfer(uint256)","6186fe71":"CloseForecasting(uint16)","6187ce34":"gameRandon2()","61886014":"combineDice(uint8,uint8)","61888b40":"_percentSoldInPreICO()","618943c3":"WhitelistItemChanged(address,bool,uint256,uint256)","6189be15":"columnround(uint256,uint256)","618a057a":"_bidFirstShip(uint256,address,address)","618a1ec2":"getGoldDepositOfAddress(address,address)","618b870f":"setAmount2Claim(uint256)","618c5772":"removeTransferableAddresses(address[])","618cb85b":"GitCoinCrowdsale(uint256,uint256,address,address)","618ce6d7":"setWhitelistedAddressMain(address[],bool)","618de286":"addWhiteListMulti(address[])","618ea1c4":"terra()","618fa9ce":"getBotBillingIndex(uint256,uint256)","618fb1a6":"unsoldContract()","61903971":"MajListAll()","6190c931":"unclaimedCreditsWithdrawn()","6190c9d5":"cycle()","6190e9ca":"authorizedTokenUsers(address,address)","61919a08":"getWorks(bytes32)","6191fe9d":"FFC()","61927adb":"setDelegatedFrom(address)","61930630":"tokenStore()","61931f39":"zGetBothContractBalances()","61936d0a":"Wings(address,address,address,address)","619385bd":"newShare(address,uint256)","619419d8":"setTopic(uint256,string)","6194416b":"getProof(string,string,string)","6194acb6":"_validateOrder(uint256,uint256,bytes32,address,uint256,uint256,uint256,uint256)","6195c713":"against_proposal()","61962265":"PRESALE_MAXIMUM_FUNDING()","6196ac5b":"RubidSupply()","619792ba":"OwnershipGranted(address,address)","6197aadd":"JANDA()","6197bbab":"createRareAuction(uint256,string)","61983863":"MintedTokenCappedCrowdsale(address,address,uint256,uint256,uint256,uint256)","6198e339":"unlock(uint256)","61990759":"maxRandom(uint256,address)","6199ca26":"AmbrosusSale()","619a794d":"setAtomIsReady(uint256,uint32)","619c83ed":"completeTransfer(uint256)","619c89fe":"changeForeignBridge(address)","619caafa":"Reward(address,uint256)","619cec73":"DSHAckCoin()","619cf5f9":"batchtransfer(address[],uint256[])","619d2671":"acceptContract()","619d3063":"getNftId(uint256,address,uint256)","619d36ef":"DRAW()","619d5194":"setLock(bool)","619e6e7c":"userWalletTokenBalances(address)","619ebc4f":"GetTimeWeightedBet(uint256,uint256)","619f5e72":"takeExcess()","619fabfd":"addMultiplePublicSalesSpecialUser(address[])","619fc641":"backup_exchangeStaStb(uint256,uint256)","61a00f6d":"Ballot(bytes32[])","61a12160":"getPendingAddReserveData()","61a1d8fa":"SchmeckleToken()","61a215e4":"Controller(address,address,address,address)","61a227b6":"mtdAmount()","61a23f42":"loadReferredInvestors(bytes32[],address[])","61a2493a":"Jancok()","61a255b5":"vote(string,string,uint256,bool)","61a25f07":"lotteryFinished()","61a2d076":"isWhitelistOnlyPermissionSet()","61a3a281":"deployDefaultVestingContract(address,uint256)","61a5c4bd":"updateTokenAmount(uint256)","61a65433":"pot_total()","61a65e2a":"discountSaleEnd()","61a71303":"setMainSaleTLYperETH(uint256)","61a76900":"decode(uint256)","61a7b2f5":"transferFromIco(address,uint256)","61a99c4b":"ethDeposits()","61aa19d3":"icoAmountBonus1()","61aa8d93":"processFee()","61ab8904":"updateStats(uint256,uint256,uint256)","61ad08b5":"setSupervisor(address,address)","61ad487c":"PRESALE_PERCENTAGE_3()","61adeef4":"setUUID4Bytes(bytes16)","61aebe59":"stopSell()","61af1abd":"increasePriceAndDifficulty()","61afd5ac":"denyAccess(address)","61b121f5":"OneCoinOneBeerToken()","61b1bd04":"HumanEvent(address,uint256,address,address)","61b20d8c":"retrieveFunds()","61b2bb37":"setHalfLifeTime(uint256)","61b3516e":"MyCoins()","61b3b8e3":"p_setInvestorFundPercent_out(uint256,uint256)","61b46d61":"buyHunterLicence()","61b65fbe":"UpdateRank(address,uint256,uint256)","61b6683c":"destroyedBots()","61b69abd":"createProxy(address,bytes)","61b6f889":"handleOffchainWhitelisted(address,bytes)","61b7542d":"absMax(int256,int256)","61b79ea4":"incentiveDistributionRound()","61b7d7f4":"FiveBalanceToken()","61b87f0d":"getTokenAddressIndex(address)","61b8ce8c":"nextId()","61b930ae":"ICOfundsReceiverAddress()","61b94bc7":"LiverpoolvsRoma()","61b9739a":"setPayTo(address)","61b97435":"Register(address,bytes4,bytes18)","61b98cb3":"buyShips(uint256,uint256,bool)","61b9c6a3":"useBottle(address,uint256)","61b9c9f4":"buySeat(string,string,string)","61ba228b":"LukSevenToken()","61ba3377":"WatchLastTime()","61ba89d4":"NSCDistributionContract()","61bb246c":"secondBonus()","61bb9c52":"baseValue()","61bc1a49":"depositBalance()","61bc221a":"counter()","61bc6c57":"unauthoriseAddress(address)","61bcbe6f":"goodluck(uint256)","61bd12e0":"FAILED_STATUS()","61bdc978":"unfreezeFrom(address,uint256)","61be8456":"updateMarketData(address,address,uint256,uint256,uint256)","61beb1d7":"createAuction(address,uint256,uint256,uint256)","61bec256":"setContractActive(bool,bool)","61bec4fd":"QLANCEGO()","61bedcdc":"registerEmployee(address,address)","61bf2829":"RegistrationStatusChanged(address,bool,uint256,uint256,uint256,uint256)","61bf49ee":"plots(uint256)","61bf7692":"withdrawFoundationFunds()","61bf9c2a":"updatePoolContract()","61bfdc5d":"PatentCoinPreICO(address,address)","61bfe61b":"testAddUser(address,uint256)","61bffe01":"addIdentities(bytes32[],bytes32[])","61c003a7":"buyerNumDeals()","61c028e7":"getTokenURI(address)","61c083b9":"updateInflationRate()","61c1f224":"Q8ECOIN()","61c2c9c0":"getHowMuchUntilHardCap()","61c2e349":"create_a_new_market(address,address,uint256,uint256,uint256)","61c3b7f1":"setCharityBeneficiary(address)","61c52660":"Said(address,bytes)","61c5623d":"Vanadium()","61c61309":"setTokenController(address,address)","61c651b9":"oneQuarterInSeconds()","61c6a8e4":"addMutagenFace(uint256,uint256)","61c6bc82":"create(string,string,uint8,address)","61c748c7":"TressexToken()","61c76231":"resetBeneficiaryList()","61c7eb81":"Millionaire()","61c91c69":"webGiftLineTime()","61c9559b":"get_arbits_presale_open()","61c99b92":"msgsender()","61cac1fb":"partnersReward()","61cb5a01":"testString(string)","61cc576d":"evaluateOdds()","61cd5683":"testToByte(bytes)","61cd756e":"prevRegistry()","61cd90b0":"revealY(uint256,uint256)","61cdb1d7":"getByMesa(uint256,uint256,uint256)","61cdd2dc":"rightAndRoles()","61cec717":"changeCurrentCirculating(uint256)","61cf6d1c":"investeth2018()","61d027b3":"treasury()","61d0ad9e":"TransferFunds(uint256,uint256)","61d11318":"RedEnvelope()","61d161ea":"unitsPerTransaction()","61d3ba8a":"addWhitelistAddresArray(address[])","61d3d7a6":"isUpgradeAgent()","61d3d902":"getPlayerReferrerID(uint256)","61d43971":"updateGasCost()","61d49ea8":"reveal(uint256,uint256,bytes32)","61d51df8":"SKYSWAP()","61d5593c":"calculatePoohSell(uint256)","61d585da":"state(bytes32)","61d5f225":"minBetSize()","61d60021":"getCourseID(address,address)","61d61998":"implementsERC721YC()","61d689fa":"register(uint8)","61d68b54":"requestConsent(address,address,uint256)","61d6d385":"withdrawUnsold()","61d7c713":"validPayDest()","61d81aed":"exitBuyRequest(uint256)","61d942f3":"_removeLicenseTerms(bytes32,bytes32)","61d97c41":"GetPartyRole(address,address)","61da1439":"read(bytes32)","61da46c4":"joinDraw(uint256)","61db17ab":"_validatePurchase(uint256)","61dbbc80":"LARGE_PURCHASE()","61dbfc3f":"changeConfig(uint32,uint256,uint8)","61dc648f":"LogExternal(uint256,address,bytes32)","61dcd7ab":"createTime()","61dd8d13":"DexAlpha()","61ddf923":"_getTokenAmount(address,uint256)","61df46f6":"DatCoin()","61df5c4d":"getEncounterResults(uint256,address)","61dfacf2":"removeBuildingFromServer(uint256,uint8[10],uint8[10],uint8)","61dfdae6":"setData(address)","61e01356":"randNonce()","61e062a4":"_emitHardcapFinishedManually()","61e0f7a8":"swypeCode(address)","61e1077d":"decreaseApprovalWithSender(address,address,uint256)","61e1fe91":"setFreeDino(uint16)","61e214d8":"isValidPurchase(uint256)","61e25d23":"numActiveTranscoders()","61e3564f":"approveAccount(address,bool)","61e360b7":"maximumIndividualCap()","61e3c944":"setUint(uint256,uint256)","61e3f0a4":"setTimeBasedBonus(uint256[],uint256[],uint256[])","61e42039":"priceString()","61e49344":"buyinReturn(address)","61e4a23a":"expireGame(uint256)","61e4fd2b":"approveEscrow(address,uint256)","61e539da":"testFailWrongAccountTransfers()","61e5f5f2":"balEth()","61e60550":"TransactionDisputed(uint256)","61e6e66b":"DestroyedBlackFunds(address,uint256)","61e76056":"denyByDelegate(bytes8,bytes8)","61e7662b":"getAccountSpendingLimit(address)","61e88f9a":"test_0_validOwner_construction()","61e8ee04":"TOXTToken()","61e91ea1":"getDataContractAddress()","61ea6ed7":"transferFromBase()","61eb2e1a":"UNITStagesManager(bool,address)","61eb3836":"getProjectStatus(address)","61eb71c1":"setSellable(bool)","61eba552":"getMetaData(uint256)","61ecc8b5":"isLogo(address)","61ed2094":"demicals()","61ed373b":"comment(uint256,bytes32,bytes32)","61ed8097":"SEOToken()","61eda968":"cancelAssessment()","61edfe6e":"p_setBankOfEthProfitPercent(uint256,uint256)","61ef265b":"spaceAfterReturns()","61ef669b":"dateTier2()","61ef8d91":"setErc20Rate(string,uint256)","61efc7db":"resolveDelegation(address,address)","61efc807":"transferbatch(address[],uint256[])","61f00da2":"OMIVIAToken()","61f127dd":"_price_tokn()","61f134fa":"OZRealestatesToken()","61f15236":"addHolder(address,uint256)","61f17532":"tune(uint256,uint256)","61f188de":"createTree(string,string)","61f1c5ba":"vaultWallet()","61f1d889":"setFlag(uint256,uint256)","61f2c8b0":"_addShareToNewOwner(address,uint256,uint256)","61f2de50":"spawn(uint256,address)","61f30408":"emitTimeAdded(uint256,uint256)","61f37dff":"calculateIcoTokenAmount(uint256)","61f3c006":"setRoundMaxPerUser(uint256,uint256)","61f3c62e":"remain()","61f3cfb1":"updateExistingRaz(uint256,uint256,uint256,uint256,uint256,string)","61f43285":"gubberment()","61f529af":"initEthMultiplicator(address)","61f54a79":"getNextUnsortedOffer(uint256)","61f61867":"addSettingDeprecation(uint256,uint256,address,address,address)","61f66dc4":"updateUserClaim(address,uint256)","61f6b429":"myAvailableFunds()","61f70161":"placeOrder(bytes16,address,address,uint256)","61f7025f":"fetchBalanceByAddress(address[])","61f721e8":"HGFCToken()","61f76d67":"withdrawEtherToOwner()","61f82156":"receiveCashback(uint256,address)","61f8cdd6":"transferETHToContract()","61f8e91a":"unitTestModifyStaker(uint256,uint256)","61f9ca4d":"modifyGroup(uint256,string,string,string,uint256,uint256,uint256,uint256,uint256,bool,uint256)","61f9e04d":"getWithdrawn(uint256)","61faee9e":"noTransfer(address)","61fba37d":"investorBalanceOf(address)","61fbdf4e":"gameIsCalculated(uint256)","61fc3790":"Monthprofitend()","61fc65a0":"checkBirth(uint256)","61fc703c":"Danku_demo()","61fd718f":"getOrderAllocatedToFundPool(uint256)","61fd8f1b":"sendTokensToCompany()","61fda640":"ownerUpdateContractBalance(uint256,uint256)","61fdfa9b":"returnDeed()","61fe51a1":"rootAuthority()","61fec3a4":"clearSponsorableJobApprovals(address,uint256,address[])","61ff715f":"deploy(uint256,bytes)","61ff8191":"CirculationEnabled()","6200979e":"AngelInvestmentAddr()","6201124f":"employeeDenyExerciseOptions()","6201510a":"getPreSaleRank(address,uint256)","62016083":"removeDestinationChain(bytes8)","62017ebc":"left46(uint256)","6201d683":"createTokenUri(string)","62024dce":"forceCrowdsaleRefund()","62026229":"validateLand(address,int256[],int256[])","62027c1e":"changeCJTeamWallet(address)","620346c6":"setStopReceive(bool)","6203f09f":"MAX_INVESTMENTS_BEFORE_MULTISIG_CHANGE()","62040de3":"numberOfBoardMeetings()","62040e50":"Bitscreen(bytes32,uint8,uint8,uint8,uint8,string)","62043bd8":"DIVIDER()","62059839":"_setOwner(uint256,address)","62066eb3":"getMinimumAmount()","6206880b":"contributorsLockdown()","62074c31":"getProjectMaker(bytes32)","62075af4":"giff(uint32,address)","6207c802":"getSubjectIdentById(uint256)","6207d239":"privSaled()","620892bd":"NRB_address()","620a9c95":"BITSToken(uint256,string,uint8,string)","620b0f23":"getMyAnthill()","620b2731":"_getClientProviderUID(address)","620b5cd2":"Crypto()","620b75df":"portfolioManager()","620d025c":"roundFunds()","620db609":"rubyToken()","620eb8ee":"setDisbursementEndTime(uint256)","620edb32":"allocatePrivateToken(address[],uint256[])","620ffe99":"testFooUdate(uint256)","6211db22":"querybalance1()","621277cb":"hardCaps(uint256)","62133a6c":"getPlanetName(uint256)","62135491":"distributeTokensToMembers(uint256,uint256)","62150b3f":"KaoPuToken(address,uint256)","6215be77":"depositToken(uint256)","6215f292":"updateBasePrice(uint256,uint256[],uint256[],uint16)","62161235":"getRandomNumber(uint16,uint8,address)","6216bde5":"TokensRewarded(address,address,uint256,address,uint256,uint256)","6217229b":"sellRate()","62173282":"updateMVNRate(uint256)","6217903f":"BNB_TOKEN_PRICE_NUM()","62182636":"setParams(uint256[],uint256[])","6218e5cd":"setGuardianVend(uint256,uint256)","6218fd8b":"icoEndsAt()","6219004d":"setPosttgeAddress(address)","621a25f8":"right66(uint256)","621a61ac":"STATE_NOT_FINISHED()","621ab11a":"bonustokn()","621b23e2":"getOwner(uint32)","621bc379":"setReverseRate(address,int16)","621bd8d7":"getPreviousReportingWindow()","621c3275":"disembark(uint16,uint16,uint256)","621d388c":"senderIsAdmin()","621de5ac":"AUSBToken()","621ded8b":"FinishCompetitionEvent(uint32)","621df4be":"getCurrentElectionCycleBlock()","621e9a45":"BAQToken()","621f7e45":"setPeriodRound(uint256)","621fb946":"getLLV_edit_27()","62205bd8":"privatesaleFinalized()","622104d9":"integration()","62219866":"getPercent(uint256,uint256)","6221c805":"supplyRound3()","6221dc20":"HackableETH()","6221e77b":"Logs(address,uint256,uint256)","622235e6":"getPage(address[],uint256,uint256,bool)","62228c17":"CTADevilleToken()","62246c41":"setNickName(bytes32)","62251182":"_withdrawOwnerTokens()","6225924e":"_mint(bytes32)","6225a8ad":"GetResult(uint256)","6225b759":"setForceExecuteOfUsers(bool)","6226bddb":"getProductStructById(uint256)","6226d4b2":"addAddressToAdmin(address)","6227ed6e":"createPerson(string,string,uint256,uint256,uint256)","6227fd3a":"firstItemWrong()","622a0a19":"playerBudget()","622a10fd":"CORECoin()","622a2d31":"setDistanceAndPrice(uint16,uint16)","622ac8ed":"countWishesAt(address)","622ae7aa":"getDeployedTokens()","622af809":"setMintContactAddress(address)","622b0b29":"StakeEvent(address,uint256,uint256,uint256)","622b2a3c":"validDelegate(address,bytes32,address)","622b6659":"doBigDrop(uint256,uint256,uint256,uint256)","622c77fe":"totalSupplyLocked2Y()","622d6c97":"ExecutionError(string)","622d82df":"Buddha()","622dda96":"chooseRandomNumber()","622ddaba":"getGenesForSaleBySeller(address)","622e5026":"Insurance()","622e88cb":"testBitsXorSuccess()","622f9730":"forward(bytes,address,address,uint256,bytes,address,uint256)","622fe39f":"getLoanData(uint256)","6230ebda":"defrostFrozenTokens()","6231775b":"miniGameId()","623195b0":"setABI(bytes32,uint256,bytes)","623406d2":"setRecordContract(address,address)","6235e3a2":"getAddressCreatorById(bytes32)","6235eef3":"getCurrentReportingWindow()","62362cc2":"COIN_SUPPLY_TOTAL()","623659b4":"doTransfer(address,address,uint256,uint256)","623670b2":"sendTokensToPartner()","62373537":"current_start_divholder()","6237564c":"isDopeRaiderDistrictsCore()","6239f13d":"triggerSoftCap()","623ba5c9":"callBackGasAmount()","623d2295":"Minado(address,address)","623d2b62":"getRequiredBetAmount(uint256)","623d5652":"projectExists(address)","623d5e56":"devolverBici()","623d96ed":"preDuration()","623decaa":"unlockedTokensOf(address)","623e4fb8":"BBCToken()","623eff55":"tokensTransferred()","62400e4c":"supplyOf(address)","6240282c":"LiquidDemocracyControllerFactory(address)","6240c7aa":"COENXToken()","6241bfd1":"Token(uint256)","6244326d":"humanityFund()","6244b7ed":"unWhiteListInvestor(address)","624522f9":"accountFrozen(address)","6245adff":"DirectlyDeposited(address,uint256)","6245eb07":"setProvenance(address,uint256)","62463079":"tier2End()","62464576":"stage_2_add()","62465f0a":"GenesisManager(address,address,address,address,uint256)","62469353":"firstDepositTimestamp()","6247c38f":"updateChargingRate(uint256)","6247cfd9":"priceForKeys(uint256,uint256)","6247f6f2":"whitelistToken(address)","62486d42":"getTokensAmount()","6248cf49":"_donationSupply()","6248d6bf":"getOracleMetaData(address)","6248fd10":"SLC()","62491332":"lockPurchase()","62492e9d":"preIcoBonus()","624964c3":"getBancorContractAddress()","6249a5c7":"UnpauseEvent()","624a8bc3":"MyTotalWithdrew()","624aba21":"_getWinCountWeight(uint256)","624adc4c":"OwnershipTransferCompleted(address)","624ae5c0":"rID_()","624ba0a4":"maxImports()","624bb58f":"marketingSupply()","624bb8b3":"setCBaddress(address,address,address)","624bd6c4":"depositToken(address,uint16,uint256)","624c3dbd":"imageUploadComplete(uint256)","624c5673":"USDollars()","624cc0a5":"teamMemberAtIndex(uint256)","624d4309":"USBcoin()","624dd6a9":"getInvestmentsByCountry(uint16)","624de3d9":"InterfaceSignature_ERC721Optional()","624dee7c":"_release(address,address,uint256)","624e3b36":"totalearners()","624ecda9":"Sleep()","624f011d":"doStop()","62502169":"sendCollateral(address,uint256)","62502fe7":"getNameDigest(string)","6250bfa3":"createOrder(bytes32,bytes32,address)","625101d5":"getOwnerMoney()","625126ed":"shift_left(uint32,uint32)","6251aee6":"icoPhase3End()","625295fd":"distributeCollectiblesTo(address)","6252c127":"onCrowdsaleEnd()","6252d651":"setForegroundColors(bytes3[])","62531721":"getStack(uint256)","6253367a":"queryChallenge(bytes32)","6254add1":"PRIVATE_SALE_POOL()","6254cf80":"setGameHostAddress(address)","62564c48":"getProposals()","62568d83":"min_buy_block()","62571cac":"getTodayOwnerName()","625785bb":"productionCardIdRange()","62581b79":"CubaazCoin()","6258683e":"devMiningRewardTransfer(address,uint256)","6258d524":"saveEther()","62598ae6":"PaymentExpected(bytes8)","62599964":"usesThem()","625a6726":"fixClock(bytes32,uint64)","625adaf2":"setTokens(address[])","625b666c":"Luxury()","625b8e60":"_redeemByPartition(bytes32,address,address,uint256,bytes,bytes)","625bc37b":"releaseTeamTokensAfter12Months()","625becbc":"showLockState(address)","625cbb23":"setWhiteListAddresses(address)","625cc465":"baseDonation()","625cfc46":"sellRateZeroQuantity(uint256)","625fcce7":"dealer_cut()","625fe9ec":"updateCrowdsale(uint256,uint256,uint256,uint256,uint256)","6260f55b":"ETH_USD()","62612c6d":"PatronTwoWithdrawal()","62614ae6":"BNT_CONVERTER()","6261c662":"bonusStart()","626263c5":"calculateEthToChargcoin(uint256)","626340b2":"block0()","626452df":"test_feePoolShare_noClaimableStake()","6266e135":"Gmt()","62674e93":"getStepFunctionData(address,uint256,uint256)","62676d78":"RANGEEND_8()","6267967b":"batchReservedTokenAllocation(address[],uint256[])","6267c456":"organizer7()","6268a0cd":"stakeSDC(address,address,uint256)","6268e921":"acceptGame()","6269420e":"seedAndPresaleTokenIssuedTotal()","62694b68":"lastSignedBlockNumber()","62695eae":"allowedTransfer(address)","62697f69":"getLLV_edit_17()","6269ae48":"tokenToContributor()","6269f9fc":"getGameId(string,string,uint16,uint64)","626a0e1c":"addSoundEffect(uint256,uint256[])","626a413a":"activateBounty(uint256,uint256)","626b1070":"beneficiaryDeposit(uint256)","626be567":"totalToken()","626c0a45":"stock(uint16,uint16,address,uint256)","626c6bc6":"ETO()","626d0358":"setTokenDefaultPartitions(bytes32[])","626d4a36":"right55(uint256)","626d666c":"theDao()","626e4675":"directorLockDays()","626e8fd3":"setBonusDate1(uint256)","626ebe39":"toggleReceiveEth()","626f9e20":"calculateMaxEthIssued()","626fc458":"finalizeTrade(address,uint256,address,uint256,uint256)","626fd353":"getSelection(uint256)","627045bf":"changeActiveNameIndexTo(uint256)","6270b780":"DebitClient(address)","62714a14":"getPhone(address)","62715547":"castVote(bytes32[])","62721129":"getMultiSigWallet()","6273106a":"payoutPool()","62731ff1":"onDeposit(address,address,uint256,uint256)","62735618":"finalizedCapital()","62738998":"getInt()","62744fee":"PallyCoin()","6274a35c":"team_total_lock_days()","6274ca4b":"setWeiPerUSDinTGE(uint256)","62751a06":"SFT_PER_ETH_FIRST_EARLY_BIRD_RATE()","6275448e":"batchApprove(address,uint32[])","62754563":"CelebsParty()","62765eb7":"receiveApproval(address,uint256,address,string)","6276b368":"rateOfCharging(address)","62770252":"needsFuneral(uint256)","62773951":"TrustReso(uint256[3],address,address,address[])","627749e6":"closeTime()","62779e15":"payFees()","62797ef5":"dayPotHighscore()","627992c7":"VULCAN_POD_MAX_CARGO()","627a326b":"getBytes32Slice(bytes,uint256)","627a3311":"QvoltaToken(address)","627aa6d2":"buyAndTransfer(address,address,bytes,uint8)","627adaa6":"revealMulti(uint256[],uint256[],uint256[],bool[],bytes32[])","627b3d9a":"BTCAUC()","627c2516":"WizardsvsCeltics()","627c2d1e":"getTX()","627c34ad":"removeSubscriber(address)","627c81ff":"erc20ContractByIndex(uint256,uint256)","627d6f9f":"get_multiple(uint256,uint256)","627e64d2":"getQuote(address,uint64)","627e667b":"StandardToken(address,uint256)","627eb56c":"setMaxContributionPhase1(uint256)","627f09c3":"setConfiguration(address)","627f22fe":"GiftMetadata(uint256)","627f47c6":"transferWithLock(address,uint256,uint256[])","627fd3bb":"addCbAddress(address,bytes1)","6280382a":"cancelTrade(address,uint256,address,uint256,uint256)","62806296":"transfer_coins(address,uint256)","6280b0bb":"batchRegularTransfer(bytes32[],bytes32[])","6283051f":"setOraclizeQuery(string)","6283440b":"wingsTokensReserv()","62838d8b":"getLastAddress(bytes32)","628392bd":"bonusPhase1()","62848f36":"tokenRate30()","6284ae41":"exitFee()","6284fd22":"getMyPubKey(bytes32)","62850233":"transferWithDividends(address,uint256)","6285a259":"calculateTokensEnabledOne(address,uint256)","6285d703":"NERO()","6288020f":"endThirdWeekICO()","6288a63c":"NotaryChain(uint256)","6288a9a3":"maxUserContribution()","62890063":"WhitePrivilegeToken()","62891b5d":"multiAccessChangeRequirement(uint256)","628a01ce":"stakingMintRate()","628b75bf":"slashDownRequest(uint256,address,uint256,bytes32)","628c225c":"roomNight(uint256)","628c2778":"DEXToken()","628c866e":"setCurrentActiveGameID(uint256)","628d5ef1":"setWeiUsdRate(uint256)","628da35e":"get_termAmount(uint256)","628dda8d":"VDGToken()","628e50b5":"brokerFee()","628e7a38":"_initializeVesting(address,uint256,bool)","628eaa88":"GeocashToken(uint256,uint256,uint256,address)","628ee84f":"in_dispute_phase()","6290a009":"bids_sorted_count()","62932301":"importer()","62935a98":"getContractDataSK()","6293a989":"TRONVSupply()","6293b5bb":"presaleMaxEtherCap()","6293fd1e":"payBack(address)","6294f858":"distributeFinancialAward(address[],uint256[])","6295c61a":"transferItem(address,address,uint256)","6297c16c":"deleteToken(uint256)","6297dbf4":"existsMesa(uint256)","62981b18":"deployBallot(bytes32,bytes32,bytes32,uint64[2],bool[2])","62985882":"VSTA(string,string,uint8,uint256)","62985b87":"NebuliToken()","62986e27":"Canary(address,uint16)","629873b2":"createRequestAsPayeeAction(address[],address[],int256[],address,address,string)","6298c93a":"usdCap()","6299a6ef":"update(int256)","6299f8cf":"stop(uint256)","629a9ce7":"coreTeamUnlockedAt()","629ad124":"chancesBought()","629aef56":"QuintToken(address)","629b656e":"PryzeToken()","629b9cb1":"takeProjectBonus(address,uint256)","629bc0b4":"getPlayerPayout(uint256)","629bf9a8":"updateMinMaxBetPrice(uint256,uint256)","629c1b67":"SoftCapReached()","629c37c2":"HSShopSaleFee()","629cefee":"adjustTiming(uint256,uint256)","629d0f2f":"teamd()","629d93db":"removePromo(bytes32)","629e89a0":"setMinDai(uint256)","629f1486":"YoonContract()","629f4028":"getVoteNum(address)","629f4b3b":"StatsTotal()","629fb53d":"getOrderbookLength()","62a09477":"changeOwner()","62a0b56b":"testUnset()","62a1029c":"YUPIE_PER_ETH_PRE_SALE()","62a144d9":"safeMod(uint256,uint256)","62a31c4a":"dynamicLength(bytes4,bytes)","62a36a54":"Application()","62a39ff7":"setShareHolder(address)","62a44fe9":"has_voted()","62a49ae3":"depositTokensFor(address,uint256,address)","62a4b230":"setLockedRatio(uint256)","62a4be31":"buyTokensByProxy(address)","62a4cd14":"endFunding(uint256)","62a51eee":"move(uint80,uint80)","62a52ed6":"set_price(bytes12,uint256)","62a59ade":"distributePuppyCoinCLarge(address[])","62a5af3b":"freeze()","62a76ce1":"accrueAdvisorsTokens(address,address,uint256)","62a7c5a6":"nextWithdrawDayFoundation()","62a80b42":"newToken(string,address)","62a87466":"STATE_DONATION_ROUND_1()","62a974b6":"vote01NoCount()","62aa9a00":"enehtoken()","62aabb9e":"SafeToken()","62aac84d":"setHaltSale(bool)","62aaf089":"getExchangeRate(uint256)","62ab1216":"updateWithOracle()","62ab8cc1":"howMany()","62abb560":"transferSuperOwnership(address)","62abda69":"totalIssuanceDebt()","62ac6115":"updateRequireKYC(bool)","62aca822":"setNation(address)","62ad1b83":"operatorSend(address,address,uint256,bytes,bytes)","62ad9bda":"newProvider(address,string,bytes32,uint256)","62addeed":"HumanX()","62ae4d29":"OBIMOLOGIA()","62aecc47":"totalBondSupply_BULL()","62aee544":"ADVISOR_SHARE()","62afd64a":"unpaidPercentage(bytes32)","62aff4d5":"commitPeriodStartedTimestamp(bytes32)","62b08e70":"setVotingContractAddress(address)","62b0ae87":"pack(bytes)","62b24189":"DepositToBankAccountFromDifferentAddress(uint32)","62b26f95":"totalFish()","62b3b833":"createCoupon(string)","62b40489":"businessPlannedPeriodEndTimestamp()","62b40918":"addPersonalCaps(address[],uint256)","62b40f9f":"destroy(address,address)","62b45318":"exchangeEtherForNominsAtRate(uint256)","62b4faa7":"Edujano(uint256,string,uint8,string)","62b52b49":"LADCToken()","62b6a282":"left42(uint256)","62b6a963":"_batch2_icosaleEndTimestamp()","62b6dc8e":"RektToken()","62b78bc4":"team_coins()","62b83c6b":"balanceAsCreator()","62b96a18":"teamUnvested()","62ba1649":"stopLottery(bool)","62ba4aef":"payInvoice(bytes32,uint256)","62ba9687":"toTimestamp(uint16,uint8,uint8,uint8,uint8)","62bb7533":"getTokenToEthOrderList()","62bb758f":"userSecurity(address)","62bc56e6":"getCompany(address)","62bc63c4":"getCozyAgain(uint256)","62bca778":"withdrawalFX(uint256)","62bd689c":"setBonusPercent(uint256)","62be3172":"Message(address,address,address,string)","62beaa82":"toData()","62bf6fa7":"medalDecimals()","62c01b2d":"apply_compensation(uint80)","62c06767":"sweep(address,address,uint256)","62c0e3b7":"SpoutMintableToken()","62c0ffa8":"getDCountedBasicBallotID(bytes32,uint256)","62c13ff3":"initSale(uint256,uint256)","62c19061":"getYearDay(uint256)","62c1adb0":"KittenCoin()","62c1f389":"swap(bytes32,address[5],uint256[6],uint8,bytes32,bytes32)","62c24067":"blockFunds(uint256)","62c2b7c8":"getTTTAddress(string)","62c335c1":"checkCallback(address,uint256,bytes,bytes)","62c375a7":"library15function()","62c3dd5a":"prepareForRefund()","62c3fdb2":"getFundsOwner(bytes32)","62c47064":"setArbitrator1and2(address,address)","62c48e20":"capFiatAndETH()","62c49256":"whitelistBasketFactory(address)","62c4c89e":"getMixParticipantByPubKey(uint256)","62c509c3":"XYTgas()","62c5aecc":"getEthToTokenAddOrderHint(uint128,uint128)","62c5c03a":"getbalance(uint256)","62c5c254":"changeFounderMultiSigAddress(address)","62c63e31":"NotFinalized(bytes32,bytes32)","62c655f5":"removeVoters(uint256[])","62c6beea":"_buy(uint256,address,uint256)","62c7855b":"getConfigBytes(bytes32)","62c7e96c":"deathData_f16()","62c7fa76":"lockStartTime()","62c95aa1":"getMaxTickets()","62c99e84":"_Approval(address,address,bytes32)","62c9da62":"setCompte_1(string)","62caf484":"GDCAcc03()","62cb1ac2":"validateOrderHash(bytes32,address,uint8,bytes32,bytes32)","62cdd872":"verifySignatures(uint8[],bytes32[],bytes32[],bytes32)","62ce071c":"publicTokenCap()","62ce7043":"reloadEarnings(uint256,uint256)","62cee7ad":"staffInfo()","62cf0197":"getVIATokens()","62cf54c8":"setDeposits(uint64,address,uint16,uint64)","62d020d9":"addVersion(address,string,string)","62d027bf":"GXVCSentByToken(uint256,address,uint256)","62d05c78":"cancelOffer()","62d0af7a":"set_BCDB_contract()","62d0ce45":"TOKEN_RATE_05_PERCENT_BONUS()","62d176cb":"buyTokens(bytes32,address)","62d1dac2":"setUnofficialApplicationSignUpFee(uint256)","62d1fee3":"addLegitDevAddress(address)","62d21602":"bkaddress()","62d246a4":"getBetsMas(uint32)","62d2c393":"GenkiProject()","62d2ecb9":"setMaxSpend(uint256)","62d3755b":"fullTokenWallet()","62d3b5c5":"maxAmmount()","62d55b6d":"VOTING_TIMESPAN()","62d576bd":"periodITO_mainCapInUSD()","62d590ac":"GrantToken(address,uint256,string)","62d5acb1":"rebateOneFenzi_()","62d6b7fb":"percentageOfRaisedAmountThatRemainsInContract()","62d7216c":"unregister(uint256,bytes)","62d72c08":"RozowkaCoin(uint256,string,string)","62d73eb8":"startElection()","62d91855":"delAdmin(address)","62d93527":"setBrokerFee(uint256)","62d966c9":"changeEmployee(address)","62d9c267":"ICOEnded()","62dbc55c":"DevTokensHolder(address,address,address)","62dbdfef":"CompanyToken()","62dbf261":"getTokensForEther(uint256)","62dc0133":"HIGHER_PRICE_RESET_PERCENTAGE()","62dc6e21":"PRESALE_PRICE()","62dc9ced":"Roulette(uint256)","62dd748c":"toUpper(string)","62dd9c71":"checkWinNobody(uint32)","62de871e":"startBattle(string)","62df5b7d":"BD0Token()","62e05175":"setMotionDB(address)","62e1de00":"test_polarBoardInstance()","62e23e9e":"NAME_NOT_AVAILABLE()","62e26e45":"loanCompleted(uint256,uint256)","62e28f7d":"channelModule(uint64)","62e2aa00":"burn(uint256,string,uint256)","62e2d0de":"get_foo()","62e4aeb8":"customExchange(address,address,uint256)","62e534d2":"setBlocklancerToken(address)","62e5b1f2":"_owns(address,address,uint256)","62e69886":"RecipientUpdated(address,address)","62e6e7c7":"disTrustDealer(address)","62e76013":"management(uint256)","62e7707e":"whitelistAddresses(address[],bool)","62e7ba3f":"consumptionPointer()","62e838ef":"returnBet()","62e881a4":"nextTournamentRound()","62e888bb":"STRIKE_PRICE()","62e8b948":"stepOneLockEndTime()","62e8e8ac":"changeTokenPrice(uint256,uint256)","62ea82db":"bids(address)","62eb0068":"redeemByPartition(bytes32,uint256,bytes)","62eb33e3":"cr()","62eb4c89":"is_started_payouts()","62eb5789":"setLLV_edit_33(string)","62eb6da1":"registeredToken()","62eba54c":"doesUserOwnItem(address,uint256)","62ebcdcf":"setRtmContract(address)","62ec8e53":"adminAddBallot(string,uint256,uint256)","62ed4f04":"SSBToken()","62ee0082":"setTokenContractsAddress(address)","62ee37aa":"InfluToken()","62ee4b26":"AUORANEX()","62ee6d29":"changeHashtoLowOrHigh(uint256)","62ee7b03":"startTakeToken()","62ee922b":"unofficialApplicationSignUpFee()","62ef0e65":"withdrawPresale(address[])","62ef1f81":"confirmPayment()","62ef7738":"total_money_back()","62f03290":"payRefund(bytes32,uint256)","62f2296e":"_transfer(address,address,uint256,string)","62f3ed92":"PowerQuantumCoin()","62f3febf":"isUserBlockedByContract(address)","62f44d8a":"Dadyys()","62f4ed90":"isAuthorized(bytes32)","62f54c18":"removeAllowedTokenInternal(address)","62f57ff6":"GudTesteContratoF()","62f5a23f":"transferToToken(address[])","62f5aa4c":"getAirdropIds()","62f5c2e3":"maxContributionPhase1()","62f5ed61":"add_to_bounty()","62f60954":"_reAdjustDifficulty()","62f63c6e":"EarthMedz()","62f69039":"unlockVault()","62f6cf7f":"getRegisteredModuleAt(uint256)","62f91eff":"AnythingAppToken()","62f927d4":"getDefaultReportingFeeDivisor()","62f96fc1":"splitBalanceAccordingToRatings(int256,int256,int256)","62fb09b2":"getRefDescr(uint256)","62fb0ff8":"morties_TO_HATCH_1RickAndMorty()","62fb6fe1":"getMonster(uint256)","62fb9697":"diffSeconds(uint256,uint256)","62fc178b":"gasPriceOraclize()","62fca3fa":"mintTokenBulk(address[],uint256[])","62fdaf1d":"removeFromBattle(uint64)","62fde48a":"LogDeposited(address,uint256)","62fe3b4d":"setEndOfPresale(uint256)","62fec51b":"icoEndTimestampStage2()","62feff3a":"developerAllocation()","62ffb195":"REFERRAL_REWARD_PERCENTAGE()","62ffb3bf":"trueUSD()","630061f3":"getTokensDistributeds()","6300c768":"takeEther(address,uint256)","63018e1a":"minTokensToSale()","63036f86":"totalIssuedEarlySale()","63037b0c":"payees(uint256)","6304335b":"betsCloseAt()","6304fa3a":"Test(uint256,string,uint8,string)","63052d82":"getOwnersIndex(address)","63055d79":"fetchRate()","6305d010":"registerTeam(string,address,string,bool)","63066434":"getPlayerVaults(uint256)","63069a35":"assign2(address,uint256)","63079315":"lengthOfCommonPrefix(bytes,bytes)","63086b5e":"afterSoftCapDuration()","6308769e":"LogFinishICO(address)","6308ae65":"managersCount()","6309242c":"setUserHatchRate()","630a9f94":"viewMemory(uint256)","630babac":"WhitelistParticipant(address)","630bae99":"payoutWithFee(uint256)","630bcd99":"drawRandomItem(string,uint256)","630c010e":"getElements(uint256[])","630cd1e9":"ratePrivateSaleStage()","630cea8e":"submitSignature(bytes,bytes)","630d0552":"ColorPurchased(address,address,uint256,uint256)","630d43cc":"DoroDiamond()","630db9ee":"getRemoveMarketCalled()","630dbe79":"StandardERC20Token(string,string,uint8)","630dc19d":"_payoutJackpot()","630dd52f":"TOKEN_TREASURY()","630e07f1":"RESERVED_TOKENS_FOR_ICO()","630e0ae6":"createPersonGen0(string,string,uint64,bool)","630eb125":"getAuditAssignBlockNumber(uint256)","630f1e6c":"withdrawAsset(bytes,uint256)","630f479e":"perStageNxc()","630f6f47":"betWithAff(address)","630fd0ac":"totalSupplied()","6310c722":"convert(address,uint256,uint256)","6310d902":"getAddressBoughtCount(uint16,address)","631121ca":"ISCToken()","63121665":"countPeriod(address,bytes5)","6313bd30":"DEP()","631407a2":"setTokenSupplierAddress(address)","6315592b":"orderModify(uint256,uint256,uint256)","63155d2b":"craft(uint16[16],uint16[16],uint16[16],uint16[16])","63157e2b":"issue(uint32,uint8,uint256,bool)","6316f6d1":"getNotConstant()","63175913":"StandardSale(bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","63176ad9":"changeDealDate(uint256,uint256)","6317cc5b":"tokenCapForThirdMainStage()","631859d0":"calculatePotentialPayout(uint256)","6319d32f":"DOJI()","631a4231":"createContract(string,string)","631a925c":"Weekycoin()","631b0520":"getPaimentTime(address,uint256)","631b3672":"roundSetUp()","631b7e83":"LogResult(bytes32,address,uint256,uint256,uint256,int256,bytes)","631bdb63":"playerCurrentlyRegistered(address)","631c07f0":"getBonusByDate()","631c42ae":"ethExchangeWallet()","631c56ef":"depth()","631ccb1d":"getInfoMarketItem(bytes16)","631d3f3b":"liveDragons()","631d551b":"FAMEToken()","631d9b1f":"LuxProject()","631dc853":"EquitySharingSystem()","631dd1a2":"transferFreeze(address,uint256)","631de4d6":"replace(address,address)","631e0c69":"addMessage(string,string)","631f0d66":"upgradeAddress()","631f637f":"preSaleMaxCapInWei()","631f9852":"isSealed()","6320212b":"refreshReputation(bytes32,address[])","63204648":"setMultiWallet(address)","6321f298":"MeraToken()","632261c3":"removeVendor(uint256)","63228b57":"KarmaToken(uint256,string,uint8,string)","6322bb39":"tradeEtherDelta(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,uint256)","6323b526":"transferFromTokenSell(address,address,uint256)","6323dc26":"GCRTokenERC20()","632447c9":"updateReward(address)","632473da":"CNC()","632488ff":"POOH()","6324af1f":"advisorsBalance()","6324e70b":"offerToLend(uint256,uint256,uint256)","63258462":"setHomeMaxPerTx(uint256)","63263858":"ethartArtReward()","6326cb5b":"_purchaseCompany(uint256)","6328af59":"YeedToken(uint256)","63299226":"teamOneId()","6329cfa5":"settleLend(bytes32[8],bytes,address,uint256,bytes,bytes,bytes,bytes)","632a3e52":"vestTokens(address,uint256)","632a8144":"midasFounderAddress()","632a9a52":"vote()","632ca5c9":"getArts()","632ccecd":"IkuraAssociation()","632ce0f8":"whoIsAdmin()","632e082a":"isMainFirstDay()","632e1dfe":"OWNER_ADDR()","632e2b95":"addWire(address,uint256,uint256)","632e44af":"distributeBonusTokensByList(address[])","632ebd6b":"changeIsOpenFlag(bool)","632f0ba6":"descriptionHashes(bytes)","632f83eb":"realWorldPlayerFromIndex(uint128)","632fbda4":"replaceController(address)","63301198":"AetherCore()","63302789":"TOKEN_FOUNDERS()","63304bc3":"m_lastFundsAmount()","6330ac09":"get_price(string)","6331e7d4":"beforeEach()","6331eae0":"saveTokenValues()","63334c58":"transferETC(address)","63340338":"fuint32(uint32)","633423be":"paymentAddress()","6335010d":"getVestingRevokeDate(address,address)","63365651":"InterfaceId_ERC721Enumerable()","63367f4d":"tagline()","6336ac19":"setTTGCoin(address)","63385ad1":"addNewAccount(address,uint256,uint256)","63385b64":"BerryToken()","633891c4":"getPlayerAff(uint256)","6338977e":"setMetadataUser(string)","6338f693":"Airdropped(address,address,uint256)","63391689":"withdrawForFourStep()","63392843":"decrease(bytes32)","63396109":"createGen0Token(address)","63397825":"changeMerchantAccount(address)","633982c5":"viewLatestEthTransactionRequest()","6339b5f6":"SUSIToken(uint256,string,string)","6339be39":"totalStarSupplyRemaining(uint8)","6339fbcb":"finishGame(uint32,bytes32)","633a6dde":"deathData_a9()","633a7574":"CowToken(address,address,uint256)","633ab5e0":"callchecked()","633b1954":"finalizeMigration(address)","633b4c04":"o_velho_problema(uint256,uint256)","633b5b1f":"presaleTotalWei()","633c78b5":"create(uint256[],uint256[])","633ce1d2":"premiumDomainK()","633d17eb":"toAscii()","633de6aa":"setTime2Rest(uint256,uint256)","633dfc70":"vote(bool,address)","633f7a82":"queryType()","6341b3fe":"subBrokerNum()","6341ca0b":"retrieveTokens(address,address)","634363f3":"amountOf()","63443679":"rateUpgrade(uint256)","6344a898":"setWeiRaiseLimit(uint256)","63453ae1":"distribute(address)","63456fa9":"getTokenById(uint8)","634663a5":"setPriceRatePhase2(uint256)","634667b2":"claimAndTransfer(address)","634710ae":"BYTC()","63472fad":"setVote(address,string,uint256,address,bool)","634758e5":"TodaNetwork()","6347a377":"nextAuction()","6347bb42":"SGACoin()","63482cf0":"eachUnlockCounts()","63488772":"WanersiLinkToken(uint256,string,string)","6348c4cf":"Money(address)","6348eae6":"neverPauseAgain()","634965da":"sendEther(uint256,address,address)","634993c6":"refill(bytes32)","6349cafa":"changePrice(uint16,uint256)","634b3df9":"minPriceInWeiForPre()","634b4a8f":"setOperater(address)","634b5043":"collectWinnings()","634b8dc3":"Altn()","634bc7db":"create(bytes32,bytes32)","634c5c51":"authorized_triggerStashedPayoutTransfer(uint256)","634c688a":"burnAllowed()","634d27c3":"getProviderIsForRent(uint256)","634d6e57":"investorFullInfo(address)","634df88e":"ENTA()","634e66ac":"admin_isWithdrawable(bool)","634eaff1":"ETERNAL_APPROVAL_VALUE()","634ec9f9":"buyKnowledge()","634ef3ce":"Mqthereum(uint256,string,string)","634ef8da":"_setSetting(string,uint256)","634f752b":"optionLibrary()","634fcb8e":"setupCrowdsale(address,bool)","634fe2a6":"others_prize()","63505ae8":"getBidsCount()","63506c16":"transferfromOwner(address,uint256)","6350b2c2":"mints(uint256)","6350ec6f":"changeYumAddress(address,address)","6351546d":"settleTransactionByMediatorFee(uint256,uint256)","635179ca":"setHiddenCeilings(bytes32[])","6352211e":"ownerOf(uint256)","6352585c":"ENCToken(uint256,string,uint8,string)","6352c538":"TokensWithdrawn(address,uint256)","63534dd8":"seedContract()","6353586b":"reward(address)","63542c26":"approvedToken(address,uint256,bytes)","635439ac":"updateCurrentGameCardId(uint256,uint256)","635550a6":"blockchainExchangeFrom(address,uint256,uint256,bytes32)","63558f5c":"transferEscrowship(address)","6355bf2f":"optionsSet()","635639b4":"_unpackPlayerData(uint256)","6356443e":"TokenPreSaleTransfer(address,address,uint256)","6356739d":"Sent(address,uint256,uint256)","63567673":"createBet(address,address,uint256,uint256,bytes32[])","63569ca8":"rewardProjectCompletion(uint256)","6356cdac":"Bonus(uint256)","6357cc12":"startpublicBattle(uint256,uint256)","6357ddaa":"getRandomTime(uint256)","63581c04":"setFactoryAsset(uint256,uint16)","63586d6a":"claimBondReward()","635875d9":"changeMinimumCommission(uint256,uint256)","6358aac0":"isInterestStatusUpdated()","6359036b":"redeemDaoBounty(bytes32,address)","63591d09":"poolMaxAmount()","635994fd":"create(address,bytes32,address,bytes32,address,bytes32)","6359a656":"EUnpause(address,string)","6359a974":"TOTAL_TOKENS_TO_DISTRIBUTE()","6359b5b1":"totalIssuingCollateral_limitedSum()","635a5d7b":"setHeartbeatTimeout(uint256)","635b9047":"ExpandCoin()","635ba8a1":"ApexTalk()","635ca669":"addBoardOnUser(address,address)","635cfda2":"Incrementer()","635d0239":"toUint(bytes,uint8,uint8)","635da243":"autorizar(address)","635e2abf":"_btcToken(address)","635eecea":"privateEventTokens()","635f6a79":"method3(string)","6360edc1":"getAllForPubKeyBetween(bytes32,uint256,uint256)","6360fc3f":"bought_tokens()","63615149":"withdraw(bytes32,bytes32)","63617328":"setJackpotCompleted()","6361d3e0":"unpauseActivity(uint16)","6361d9e9":"testConstructorUsingDeployedContract()","6362102d":"rebalanceEtherDelta(address,uint256)","63621532":"setGasUpperBound(uint256)","6362ffd3":"rebuyInformTime(address)","63637c87":"createNewPlayer(string)","636544be":"changeVeredictum(address)","63655ebb":"DiaryLog(uint256,bytes)","63657855":"_removeFromDebtRegister(bytes4,uint256)","6365dfd9":"RaisrToken()","63665f2e":"addAirdrop(address,uint256)","63669424":"EthBird()","6366b936":"freeUpTo(uint256)","63670e42":"UpdateSellAgentSiteReg(address,address)","636760a2":"Cyncrohnis()","636822fa":"FearOfMissingOut()","63689b4a":"moveTokens(address)","636a36e3":"ThingsbookChain()","636ae15d":"BROYALCOIN()","636b2ac3":"createDefaultGen0LinglongCat(uint256,address,uint256,uint256)","636b7e56":"pendingFunding()","636bb5ae":"CalculateStageValue()","636bd9dc":"cooAddress3()","636c6524":"Superpack()","636ca6c2":"EAAS()","636ce4d7":"BTL_SPARTAN()","636d37b1":"precrowdsalepricing(address,uint256)","636d98b1":"referrerPercent()","636f12fe":"b2sother(bytes32,bytes32)","636f6159":"tokenExchange()","636fa3c6":"preIcoToken()","636ff44e":"BAGToken()","63704e93":"getDocCount()","6370920e":"grant(address,uint256)","6370ef19":"updateDomainPrice(bytes32,uint256)","63722de4":"AllowSomeoneToViewMyKeys(address,string)","63723373":"checkSignature(address,uint8,bytes32,bytes32,bytes32)","63727449":"getMfgDetails(string)","6372ba1a":"dateEndICO()","63732cf0":"RCN()","63735598":"getPriceOfCampaign(bytes32)","6373786a":"SaturnPresale(address,address,uint256)","637431ae":"testCreatePricelevelUsingNewContract()","63746113":"resetCrowdSaleAddress(address)","63746b03":"createContractRide(string,bytes7)","63749225":"getPVPEntranceFee(uint256)","63750dfb":"changeLedger(address)","63755c16":"withdrawStandardTokens(address)","637666ce":"removeFromBlackList(string,address)","6376c910":"StageThreeEnable()","63772f33":"growthTokensPercent()","6377aaa6":"setAdsContractAddress(address)","6377ebca":"close_time()","6377ff20":"totalInactive()","6378378a":"NxahCoin()","63784191":"frozenForTeam()","63791e3c":"setPriceSetter(address)","63798661":"payPlace(uint256)","6379a852":"multiOperatorSend(address,address[],uint256[],bytes,bytes)","6379ed9d":"distributeFUD(address[],uint256,uint256)","637af51c":"updateUpdater(address)","637b2541":"_allocateTokens(address,uint256)","637b55eb":"exchangeEtherToToken()","637b93ed":"getInsuranceBalance(address)","637bcd2a":"userIsWhitelisted(address)","637c39d8":"systemAddresses(address,address)","637cc5c6":"XBlockToken()","637d3e00":"ProjectOwner_EnableProject(int256)","637dda3f":"getBalanceByIndex(uint256,address)","637e12f7":"getBlocksDesc(uint256,uint256)","637e86eb":"totBOTs()","637ea3e5":"setlogaddr(address)","637ec389":"activated_time_()","637fcf95":"getBoardMember(address)","63808773":"acceptContribution(bytes32)","63809953":"secondsPerDay()","6381ca26":"refundTransactionByMediator(uint256)","63820550":"OwnerEvents(address,uint8)","63822fdc":"addConsentTemplate(string,uint256,string,string,string)","6382789d":"currentLowestCount()","63839777":"getReturns(address,address)","63844a57":"mul32(uint32,uint32)","638560cf":"registerBool(address,bool)","6385cbbe":"minimalGoal()","6385f2fb":"DAZ()","63860139":"nextPrizePool()","63862fd5":"isSenderOriginalOwner()","6386c1c7":"getUserInfo(address)","63875261":"paladinAddress()","6388fafa":"niceguy1()","63891019":"testFailStartTooEarly()","63892068":"create(string,string,bool)","6389654e":"changeDailyWithdrawalLimit(uint256)","63897c7e":"changeSettings(string,string,uint256,uint256,address,address,address,address,uint256)","6389e019":"graceTransfer(address,uint256)","638a9ce9":"setProxy(address,bytes32)","638b1b14":"developmentAddress()","638b4463":"completeClosed()","638b9119":"soldCards()","638bcce3":"multilevel(uint256)","638c5ddc":"BonusListUpdated(address,address)","638d4788":"draw(uint8,uint8)","638dd56a":"getNumberOfEligibleMembers()","638e1e5d":"payTip()","638e3724":"Locker(address,uint256,address[],uint256[])","638eea8d":"PLATFORM_MONTHLY()","638f6575":"timeStarted()","638f8da4":"castleMaxLevelGap()","638fade2":"getMerchantPublicKey()","63905232":"balanceAll(address[])","63907180":"getDebrisNum(bytes32)","6390f519":"getNumTeams(uint16,uint8)","6391c315":"FundsWithdrawnAndTokenStareted(address)","6391d3b2":"getCountSenderLands(address)","63921a74":"canReceiveListing(bytes32,uint256,bool,address,uint256,uint256)","63929d3e":"getPendingKNCRateRange()","6392a51f":"balancesOf(address)","63937651":"batchTransferDiff(address[],uint256[])","6393b4eb":"expect(address,uint256,bytes,bytes32)","6394536d":"cosign(uint256,uint256)","639475ca":"TRIANGLE()","63958b5f":"sellSpecialTokensForPublicSale(address,uint256)","63981b33":"changedeposito(address)","63981bbc":"TotalSpenders()","63991a36":"getGenomeChildren(uint32,uint32)","639937d7":"maxSpinners()","639a9a67":"saleOpened()","639ab80b":"YTTD()","639bbb37":"donated()","639bd0bf":"proposeBountyTransfer(address,uint256)","639bef41":"setRecommender(address,address)","639cba6e":"getDetailsBattles(uint256)","639cd59c":"totalFeesAvailable(bytes4)","639d3e69":"listSubName(bytes32,bytes32,uint256,uint256,uint256)","639d57f2":"testGetBitSuccess()","639e01dd":"Team()","639ec4d2":"checkTokDev()","63a0557b":"teamAvailable(address)","63a0607b":"buyRock(uint256)","63a10042":"approveComponents()","63a1512e":"setOPM(address)","63a167f2":"collectorWeiCap()","63a24174":"GxCoinTotals(address)","63a2c393":"safeMulPercentage(uint256,uint256)","63a2de29":"crearJuegos()","63a2fdbf":"claimZeronium(uint64,uint64,uint64,uint64,uint64,uint64)","63a37503":"test_rewardPoolShare_noClaimableStake()","63a3c452":"getUnsold()","63a3cc80":"currentTotalTokenOffering()","63a3d383":"edoToken_()","63a411c0":"addDriver(address)","63a4b67b":"setArray(bytes32,uint256[])","63a599a4":"emergencyStop()","63a5bc71":"eitherAdminOrAdvisorCanDoThis()","63a6568f":"getPropertyLastUpdaterBecomePublic(uint16)","63a66d59":"bountyDeposit()","63a6cc7d":"getBuyers(uint16,uint8)","63a846f8":"admin(address)","63a8b945":"removeCounter(address,uint32)","63a8dac2":"changeSettings(uint256,uint256,uint256,uint8,uint256,uint256,uint8,uint8)","63a999cc":"uddr()","63a9c3d7":"verify(address)","63aa109c":"summFounders3()","63aa289b":"ownerTreesIds(address,uint256)","63ab7a25":"clearWaitPairBets()","63aba603":"AlphaToken(string,string)","63abc381":"alreadyParticipated(address)","63abfbaa":"tokensToFunds(uint256)","63abfd86":"CCChainToken()","63ac0f99":"depositBonus(address,uint256)","63ad0bbe":"templateProposals(address,uint256)","63ad803f":"EditTile(uint256,uint256,string,string,string,uint256)","63ae10fe":"getClientProviderUID(address)","63ae2bae":"updateUserCertification(string,string,string,string,uint16)","63ae71ca":"affiliateProgramWalletAddress()","63ae8d6c":"setBuyPrice(uint256)","63aea3e0":"PlayerInfo(uint256)","63aec5ce":"getActiveUserLists()","63af8570":"tokensToGenerate(uint256)","63b03896":"gcd(int256,int256)","63b0545f":"transferfrom(address,address,uint256)","63b0a5c3":"IdentityRegistry()","63b0e66a":"helper()","63b1152a":"releaseVault()","63b1806f":"NewReferralTransfer(address,address,uint256)","63b20117":"totalTokensSold()","63b2c2a9":"unlockTeamBBT(uint256,string)","63b3c007":"canDefrost()","63b3f4e6":"WinnerPayedTicketBought(address,address)","63b452fb":"ICO_RATE4()","63b45bd9":"socoreCheck()","63b4f786":"about(address,uint256)","63b56431":"PRCT100_ETH_OP()","63b57e34":"remainCap()","63b6240d":"computeEndowment(uint256,uint256,uint256,uint256,uint256)","63b68040":"lastBlock_v14Hash_uint256()","63b6b31f":"transferBalance(address)","63b700ff":"getStoryExpiryTime(bytes12)","63b75b59":"setAssetValue(uint64)","63b7f00a":"calculatePercentsFor(address)","63b80379":"AcceptDiscipleOffer(uint256)","63b82524":"ethReceivedPresaleTwo()","63b851b9":"updateMinimumEpochInterval(uint256)","63b87bb8":"openSale(uint256,uint256,uint256,uint256)","63b8bd44":"getBalanceofEthAgent()","63b8f7f7":"W4T()","63ba26fa":"QwasderToken()","63ba2c76":"toUintThrow()","63ba5e44":"fundem()","63ba7319":"BUILDING_PRICE()","63bafb96":"Log1(address,bytes32,uint256,string,string,uint256,bytes1,uint256,uint256)","63bb51a9":"setHash(address,bytes32,address,bytes32,uint256,uint256)","63bbe1b5":"transferAuthorizations()","63bce4e7":"softCapUsd()","63bd1d4a":"payout()","63be8fc8":"createNew(address)","63beeab1":"executeConstant()","63bf15c2":"_buildTimberCamp(address,uint256,bytes)","63bf8194":"mineFor(address,address,uint8,bytes32,bytes32)","63bf81cf":"createDiscipleSale(uint256,uint256,uint256,uint256,uint256)","63bf8d6a":"removeToken(uint8)","63bfe3d8":"SkillBeatsLuck()","63bfe52a":"addAddressToCraneList(address[])","63c05650":"addAddress(address,uint256)","63c06fe9":"mintForwarder(uint256,bytes32,address[],int256)","63c194f1":"NTFoundationAddr_()","63c1b753":"getAddressIndex(uint256)","63c281a1":"hitFoundationBalance()","63c3600b":"__stringToUint(string)","63c36549":"QueueIsEmpty()","63c37984":"thirdExchangeRatePeriod()","63c3e2e3":"clearTransferValue(uint256)","63c43415":"view60()","63c439a6":"secondCrowdSaleDate()","63c454ca":"ifFreeze(address)","63c4f031":"stop(bytes32)","63c6082f":"buyWithCustomerIdWithChecksum(uint128,bytes1)","63c65056":"TradeEthShop(uint256)","63c69f08":"getUserOrders(address)","63c6fe04":"addCities(bytes32[],uint256[],uint256[])","63c78e87":"withdrawEtherFromTrade(uint256)","63c7d473":"GoldAmountMelted()","63c988f9":"isAlive(uint8[176],uint8)","63ca7aaf":"FeeUpdated(address,address,uint256,uint256)","63cb2afb":"reserve1Address()","63cb344e":"setNctEthExchangeRate(uint256)","63cbab8c":"SELLER_STEP_1_OPEN()","63cc23ae":"Lesson_4(address,uint256)","63cc4aa2":"transferRemainingTokens()","63ccedfe":"MensariiCoin()","63cd1c51":"_createLottery()","63cd1da7":"dspcoin()","63cd44c9":"GetType(bytes32)","63cd99cb":"moo()","63cdcc57":"motionConfirming(uint256)","63cea450":"closePresale()","63ceb60d":"sponsor(uint256,address)","63cf1442":"JACK_DIST()","63cf2ef3":"limitLessThan(uint256,uint256)","63cf6ffa":"sellFish(uint16,uint16,uint8,address,uint256)","63d06dd4":"createContractPow(string,uint256,uint256)","63d08ae5":"Timebankc(uint256,string,string)","63d1055c":"proposeGame(string,string,uint256,bytes)","63d177e6":"unpauseICO()","63d17806":"operatingFund()","63d1e70e":"PHXroll()","63d256ce":"revoked()","63d29135":"SetEventData(uint256,string,string)","63d292d7":"STQCrowdsale(address[],address,address,address)","63d2be9d":"ratingOf(uint16)","63d36c0b":"calculateFinalPrice(uint8,uint8,uint256,uint256,uint256,uint256)","63d494ea":"becomeVoter()","63d4d4a9":"bonusRateInPercent0()","63d5243a":"getDaysPassedSinceLastTeamFundsBallot()","63d5502f":"presaleCap()","63d578c5":"ApolloSeptemTokenSpecialPurchase(address,address,uint256)","63d60745":"transferCreditsInternally(string,uint256,uint8,string)","63d64159":"max(uint8,uint8)","63d6519a":"CPCEPrivate()","63d6727a":"setStartStage3(uint256)","63d74226":"add_bounty()","63d7edb9":"VRCOIN_DECIMALS()","63d8c5b7":"RefundVaultWithCommission(address,address)","63d91851":"PUBLIC_CROWDSALE_CAP()","63d9b4b1":"sendGift(address,uint256)","63d9b770":"exploit()","63d9df85":"presaleContract()","63da5531":"tokenPerUsdNumerator()","63da9cf8":"signAttribute(uint256,uint256)","63db30e8":"minInvestedAmount()","63db3e63":"IPST()","63dc5400":"queryCurrentContractFunds()","63dcf376":"offChainPurchase(address,uint256,uint256)","63dcfa9e":"athleteAlreadyClaimed()","63ddbb99":"WBToken()","63ddc54d":"mmLib()","63de5323":"applicants(uint256)","63de6ad6":"purchaseCard(uint64)","63de882b":"wlStopBlock()","63deb2c5":"changeMemberAddress(address)","63def590":"untrustClient(address)","63df9769":"setReached(bool)","63e0c2f8":"whitelistAccount(address)","63e0f8c3":"StanleyNickels()","63e0f8c7":"referalBonus()","63e12cdc":"addCCUser(bytes32)","63e16fff":"nextGen()","63e1d57c":"getMaxSize()","63e27a63":"unlockTeamTokens(address)","63e2c349":"transferTokenAndLock(address,uint256)","63e321fe":"setDefaultHashes(uint8,uint8)","63e33e96":"totalSupplyUnits()","63e38ff3":"id_for_nym(uint256)","63e3fbbd":"StopQuiz()","63e49fcd":"startPtopDeposit(address,address,bytes32,uint256,uint256)","63e4bff4":"giveTo(address)","63e4e5cc":"bountyPercentage()","63e561b6":"checkOrder(uint32[])","63e60df5":"GolemNetworkToken(address,address,uint256,uint256)","63e79315":"TokenERC20(uint256,string,string,uint256)","63e8dd96":"getCurrentOwners()","63e94cee":"getStage0End()","63e95a3c":"isNegligable(uint256,uint256)","63ea0143":"setTotalDeposit(uint256,address,uint256,address)","63ea6e44":"NewKing(address,uint256)","63eaa14d":"relock(address,uint256,uint256,int256)","63eac2d4":"getMyFalcon()","63eb963a":"dat()","63ebb3cf":"isValidSubmitter(address,bytes32)","63ebd4ff":"getFunctionAuthorized(address,address,string,bytes32)","63ebf801":"ChelleToken()","63ec3eb5":"WHENToken(string,string,address,address,address)","63ec96b7":"LogVictory(uint256,uint8)","63ed6d5d":"LogWhitelistRemove(address)","63eda29d":"prevSeriesSelloutHours()","63ee7c8d":"totalEscrows()","63ee8b88":"ico2Sold()","63eeb79a":"setMinEsteemAmount(uint256)","63eed1d7":"Alice(address)","63ef8d9e":"resetLotto()","63f019f6":"canBurnSecurity(address,uint256)","63f07aa4":"preSaleTokens(uint256,uint256)","63f0ae2e":"ProfitDelivered(address,uint256)","63f0ca5a":"BOUNTY_TOKENS()","63f114f2":"checkWithdrawValueForAddress(address,uint256)","63f160e6":"sentReveal(uint256,address)","63f1a089":"_mint(uint256,uint256,uint256)","63f1a9dc":"LogInvestorMigrated(address,uint256,uint256,uint256)","63f1de17":"ICONSORT()","63f225a7":"addLOCtoLHT(address,address)","63f22c24":"checkDelegation(address)","63f2493f":"settleETHBatch(address[],int256[],uint256,uint256)","63f32f63":"Price(uint256)","63f3dbe5":"VESTING_CLIFF()","63f55fc0":"setHolderGroup(address,uint256)","63f5679e":"changeDragonsStatsContract(address)","63f6100d":"buySome(uint256,uint256,uint256,uint256)","63f6271f":"LEGLToken()","63f75343":"setF2mAddress(address,address)","63f80de3":"issueCoin(address,uint256,uint256)","63f8a211":"sellOneStep(uint256,uint256,address)","63f9cb0e":"HLWCOIN()","63fa32f1":"newWinner(uint256,uint256,address,uint256)","63fa9888":"PredatexDua()","63fb5a1a":"putBuyOrder(address,uint256,uint256,uint256)","63fbc7bc":"expectPayment(bytes8,bytes32)","63fc98e3":"judgeEnableForTransfer(address,uint256)","63fcabcb":"BilancioMinimoAccount(uint256)","63fcf5de":"addtoContributos2(address,address,uint256,uint256)","63fd420c":"payoutMining(uint256)","63fd7552":"owedAt(uint256)","63fd7eb0":"chickenOf(address)","63fd91dc":"signUpForTournament(uint256[])","63fd9e38":"minInvest()","63fdca37":"HitCash()","63feeaaf":"smartContractStartDate()","63ff195d":"stakeOnBehalf(address,uint256,bytes32,uint256,uint256,uint256)","63ff6125":"donateToFeePool(uint256)","64004ea5":"getUserTotalPromoBonus(address)","640075f3":"isPositionClosed(bytes32)","64009184":"threeHotHoursEnd()","64017ea7":"submitExit(uint64,address,uint256,address,uint256)","640191e2":"channelManagerAddresses()","64020842":"isDisavowed()","640241b8":"acceptOnwership()","64027fbb":"minbet()","6402aca9":"getAllCardAddressesPriceOfOwner(address)","6402efd3":"tier2Rate()","64030441":"addCardsHash(uint256,string)","6403a9ed":"getVoteCountForOption(uint8)","6404865e":"OneOhana()","6406605b":"MetadataUpdated(uint256,address,string)","640708d6":"PRIORITY_SALE_START()","64070b6f":"p_setNextRoundSeedPercent(uint256,uint256)","6407e432":"mintTokens(uint256,address,address)","640853bb":"amountSoldPerPeriod()","640959bc":"getQuoters()","6409a4e3":"giveTokens(address,uint256,string)","640a404a":"getgamecardpos(uint256)","640a4d0c":"_deposited(address,address,uint256)","640bdd70":"setDividendFee(uint256)","640c3dbd":"isChipPassword(uint256,string)","640d3017":"SetMinSum(uint256)","640d84b5":"SetApplicant(uint32[],uint64[],uint32[],uint64[],int256,uint64[])","640ec47a":"assertTrue(bool,bytes32)","640efb0d":"setTravelPrice(uint256)","640f244b":"findSuitableGen()","640fe1e9":"availableForWithdraw(address)","64100038":"deleteUserClaim(address)","64109848":"tokemon20()","64109ae0":"MAINT_PRICE()","6410c41a":"priviledgedAddressBurnUnsoldCoins()","6411273f":"tapFab()","6412aeb1":"setBountyTokens(uint256)","641579a6":"setMultiplier(uint256)","641620a2":"createMulti(uint256,uint256)","6416ec30":"Geet()","64179c1b":"ActivatedContract(uint256)","6417c08b":"implementsERC721d()","6417dec3":"setHSShopSaleFee(uint256)","6418345e":"updateMinimumInvestment(uint256)","6418b903":"transferRewardPool()","6418f643":"ClaimBlessings()","641a5f66":"getSendCoin()","641a8cb3":"MANHATTANPROXYBRDWY()","641ad8a9":"poolState()","641b58c2":"checkBet(uint256[],uint256[],uint256[],uint256,uint256)","641bbdfe":"claim(uint256,uint8,bytes32,bytes32,uint8)","641ca23f":"availableICO()","641d55e0":"buyClixToken()","641d6075":"getDailyWinners()","641e3f15":"notifyTokenIssued(uint256,uint256,uint256)","641e6b9d":"TestingEnabled()","641e8cca":"updateGameProprietaryData(uint256,string)","641e90de":"price5()","641f3b46":"isTokenExchange()","641f83a1":"calcEnvHash(bytes32)","6420e71c":"rateForPhase1()","64217bdf":"requestInterest(uint256,uint256)","6421fc04":"LockedMANA(uint256)","642231a6":"legendsCrowdfund()","6422816b":"betBLenght()","64228857":"getRevisionCount(bytes32)","642289f2":"MarketEnabled(address,address,address)","6423690f":"SmartDice()","64239cce":"purchaseUpAndSpend(uint256,uint256,bytes32)","6423b5f0":"miniMeToken()","6423db34":"Reset()","6423dbad":"getGreeter()","64245502":"STRegistrar()","6424bd8c":"Remove()","6424d686":"getEngineerCurrentVirus(address)","64253d2f":"HashnodeTest()","64256611":"collectedFunds()","6425fbed":"getJobStatus(bytes16,address,address,uint256,uint256)","64265b1a":"share_transfered(string)","6428366a":"payToGorgona()","6428925d":"toSTAR(uint256)","6428a652":"setPornstarsContractAddress(address,address)","6428fed4":"pendingJackpotForWinner()","6429161b":"createSaiLimitedEdition(uint256,address)","642ab4b1":"lastBidTime()","642b1759":"getMerkleLeave(uint256)","642b4a4d":"mainNetLaunchIncentiveReserveWallet()","642bdd15":"calculateNewPrice()","642c53e2":"GetData(bytes32,string,bytes32)","642c7aa2":"snatchHero(uint256)","642d345c":"byMaximum(bytes32,uint256)","642d63a3":"buyLottery(uint8)","642dfe55":"Bitmos(uint256,string,uint8,string)","642e8271":"NigeriavsArgentina()","642f1ddc":"nome_candidato_da_indice(uint256)","642f2eaf":"transactions(bytes32)","642f722c":"createRecord()","642f825a":"randomPetAuraBoost(uint64,uint8)","642fd0f6":"getPixelColour(uint256)","64308a6a":"_getPartSkillColor(bytes,uint256,uint256)","643124cf":"INZEI()","64319ae6":"updateUserEmail(address,string)","64322c9c":"drawingIdToCollectibles(uint256)","64325ddb":"currentClaimPrice()","6432679f":"getUserCapInWei(address)","64326c71":"getTotalGas()","64329400":"setHardParticipationCap(uint256)","6432dc4e":"sell_ppc()","6432e3cd":"CaDataContract()","6432e9e0":"calculatePayrollRunway()","6433ef42":"adjustWithdrawRate(uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32)","64341c0c":"getIPFSCode(bytes32)","643537aa":"getBFEX(address)","64362587":"SetRevealBlock(bytes32,uint32)","6436434e":"getAddressDnaIds(address)","6436b1b9":"getSpawningForCount(address)","64370755":"removeDistributionSources(address[])","64371977":"set(uint256,string)","64379150":"setNumberClaimToken(uint256)","6437ab0b":"checkCommitPeriod(bytes32)","64385828":"setDataColla_AB_01(string,string)","6438c43e":"getCurrentSchellingRound()","6438f449":"noviceDungeonId()","64392a80":"balanceOfOwnerInVault(address,address)","6439437e":"cloneIt()","643a7695":"verifyParticipant(address)","643ac0bd":"_unregisterAttack(bytes32)","643aff0f":"investorWallet()","643b18b6":"teamWallet_1()","643c6d1f":"PureChainToken()","643ce525":"teamLimit()","643d1be5":"setMainSaleStart(uint256)","643d6dc0":"getInfos()","643d71a2":"KODB(address)","643e1aa5":"SetStartTimeTLP2(uint256)","643e7365":"initialSaleContract()","643e77d8":"calculateProfit(uint8,uint256,uint256)","643f7cdd":"DAOpaidOut(address)","643f9b72":"SherolexToken()","643fcd27":"addieren(uint256,uint256)","64422ede":"createPoolsIfNeeded()","64422f3c":"multiDeltaBalances(address[],address,address[])","64425055":"returnedDataDecoded()","644280e2":"tokensForBounty()","6442af8d":"_totalRemaining()","644443ed":"addContractRole(bytes32,string)","64445d9e":"adminEditBallotOption(uint32,uint32,string)","6444a288":"setMinTokenForSP(uint256)","6446169b":"sellStar(uint256,uint256)","64461a55":"Synergy(address)","6446a339":"addAddressToPublicBuyerList(address)","6446afde":"getMappingElement(uint256)","6446ebd8":"deleteResources(address,address[],bytes4[])","644843f3":"LogNote(bytes4,address,bytes32,bytes32,uint256,bytes)","6448adc6":"tierLevel()","6448b46f":"pushCap(uint256)","6448b6cb":"closeVaultAccess()","644998ae":"maintain(int256,uint256,uint256)","644a3d42":"ANKR()","644a803d":"BlockTogether(address,uint256,uint256,uint256)","644a9db8":"sign(uint256,address,uint256)","644b1d1a":"CompetitionCompliance(address)","644b7a43":"getTokenByIndex(uint256)","644b7dc6":"_isOperatorFor(address,address)","644cf307":"preSaleBonus2Percent()","644d8164":"getDesc()","644d8cce":"burnMas(address[],uint256[],uint256)","644e4e4e":"LogVotes(uint8,uint256)","644e8b24":"getPrices(uint256,uint256,uint256[],uint256)","644fab74":"setTimeLock(address,uint256)","64506302":"okamiCurrentPurchase_()","6451447d":"buyoutFeePercentage()","6451ab58":"activeuser()","6452a10f":"emergencybeneficiary()","6452f344":"sayGoodbye()","6453558e":"founderTokenWithdrawnPhase3()","6455058e":"getStakedAudits(address)","6455780c":"getImportingParty()","6455cb97":"EPTest()","64561370":"oraclize_query(uint256,string,bytes[5],uint256)","6456d071":"addPatientReply(address,string,string,address)","64571245":"withdrawATN(address)","6457237b":"indexOf(uint256[],uint256)","64584b14":"executeOrders(address[],bool[],uint256[],uint256[],address[],address[],address[8][],uint256[6][],uint256[],uint8[],bytes32[],bytes32[],uint256)","64584d16":"CardFootballers()","6458de1e":"ensOwnerPx()","6459361d":"setDetail(string)","6459a8dc":"PerseiToken()","645a8570":"teamAndAdvisorsAllocation()","645ac00b":"transferSignership(address)","645b8b1b":"status(address)","645bcd3a":"checkBasketExists(address)","645bd436":"clearDelegateAndUnlockTokens()","645c4625":"get_orderAddress(address,address,uint256,uint256,uint256)","645c6fae":"registerContract(bytes32,address)","645c9931":"SHPToken()","645c9ac8":"returnMixType()","645cd046":"bundleToken(uint256)","645d95d4":"LogBidAccepted(uint256,address,uint256,bytes32,uint256,bytes32)","645dbfd4":"updateRandom()","645dce72":"updateRelease(uint32,uint32,uint32,bytes20,bool)","645dfad7":"sellATR(uint256)","645e175c":"publicGetNote(uint64,bytes2)","645e6ddc":"bookingBalanceOf(address)","645f0d11":"toggleFactoryPower()","645f754a":"OZTToken()","6460c353":"PoWMiB()","64610c73":"ADA(uint256,string,string)","646156aa":"cancelTournament()","6461ed00":"TOTAL_TOKENS_SUPPLY()","6461fe39":"transferFromWithReference(address,address,uint256,string)","64631be6":"signatureOf(uint256,uint256)","6463d6bc":"getMaxBidder(uint256)","646439a3":"tradeStream()","64648589":"fundICO()","6464b107":"TRIUM(uint256,string,string)","6465d25a":"Aliencoin()","64663ea6":"withdrawAndSend(address,uint256)","646668b6":"getMaxBet()","64669d1b":"BadBitchCoin()","6466cfa1":"changeSellFee(uint256)","64679356":"Controller()","64679806":"last_number()","6468328e":"executeTransfer(address,uint256,bytes)","6468c099":"addAnimalType(uint128)","6469c348":"maintain()","6469c89b":"getNiceBets(uint256)","6469e87f":"isKickoffEnabled()","646cd69b":"postponeDueDate(uint256,uint256)","646cf24d":"assignTokenContract(address)","646d4f53":"PlayX100()","646d525a":"NetCents()","646d978b":"getKudosById(uint256)","646e90e7":"getAddBal()","646eba48":"releaseTokens(bool)","646f22c5":"getTicketsLeft()","646f2942":"CryptoJade()","646f7834":"lockCountingFromTime()","646fe5ee":"OwnershipTransferConfirmed(address,address)","646fec02":"ProposalAdded(uint256,address,uint256,string)","6470db2f":"removeAllowed(address)","647151b5":"sellUnicorn(uint256,uint256)","647308ee":"verifyWithdrawSignatures(bytes32,address,address,uint256,bytes,bytes)","64738c23":"makeOrder(address,address,address,uint256,uint256)","6473b34a":"batchAllocate(address[],uint256[])","6474dd4c":"LuckyWorldCupToken()","6475e3d3":"MIN_BET_AMOUNT()","6475e47d":"DGT_contract()","647734b2":"setValidationAddress(address)","64779ad7":"pausedOwnerAdmin()","647846a5":"feeToken()","64794403":"setAddressOfERC20Tocken(address,address)","647aac0c":"race(uint32)","647b5ced":"pubsaleCap()","647b6065":"tokenIdToOwnerArrayIndex(uint256)","647d02d2":"closeFail()","647d5f14":"dividendinfo()","647dd08c":"callSender(address,address,address,uint256,bytes,bytes)","647e61f1":"setLargeInvestorApproval(address,uint256)","647f7058":"Commitment()","64801da1":"reliefRatio()","64802918":"div(uint16,uint16)","6480d014":"preicostarted()","64812751":"finaliseState()","6481f081":"sellVouchers(uint256)","64821338":"hasVoted()","648236e3":"acceptBidForSketch(uint256,uint256)","64826b7a":"publicSaleCap()","6482c535":"rateOfParking(address)","64832c4c":"heatUp(address,uint256)","648345c8":"setMessage(uint256,string)","648351b9":"MarbellaCoin(uint256,string,uint8,string)","64836227":"notifyWatcher()","6483a330":"getPeriodInDispute(uint256)","6483ec25":"append(bytes32)","6484ae80":"_addCharacters(address,uint8)","648583b4":"updateCandidate(address,bytes32,string)","6485cc52":"GBP_Omnidollar()","6485d678":"setActive(bytes32,bool)","6485e2e5":"_removeController(address)","64861329":"DiamondProjectToken()","648619dc":"serviceUnpause()","648621ec":"xnotify(string)","64864ca6":"Expand(address)","64868f97":"roundTokenLeft(uint256)","6486aa51":"isConfirmed(bytes32)","64887334":"setCompactData(bytes14[],bytes14[],uint256,uint256[])","6488c20e":"TransferableChanged(bool)","64893fcb":"totalVestedAmount()","648a0c91":"updateExchange(address)","648a5903":"isShortPositionExpired()","648aa3b1":"getComponentByName(string)","648ad97f":"setMain(uint256,uint256,uint256,uint256,uint256)","648b3514":"CheckpointToken(string,string,uint256)","648b7ce8":"Increment()","648bf774":"recover(address,address)","648c51eb":"isMyPlanet(uint256)","648c925e":"backToAll(uint32)","648d6367":"DocumentaryContract()","648d7219":"setOCG(address)","648d9e26":"startPublicIco(address)","648e49e6":"dSET_XBL_ADDRESS(address)","648e625a":"confirmTransaction(uint256,address,uint256)","648f0bde":"Play(string)","648f4f0f":"tokenStoreAddress()","648fb06f":"mintMultiple(address[],uint256)","648fd473":"EBRK()","6490c7a8":"getArea(uint256)","64913477":"setMultisigWallet(address)","64916fcf":"WhitelistedCounterUpdated(uint256,uint256)","6491f0b7":"setLLV_edit_6(string)","64921844":"getTimePassed()","64928d24":"wasSaleEnded()","649371e0":"oracleCurrentInt()","649375da":"addEarned(uint256)","6493d7fc":"CircuitBreaker(address,address,uint256,uint256)","6493e64c":"upgradeTo(string)","6494b55b":"ceoAddCoo(address)","6494cde1":"endTransfer()","6494d477":"saltHash()","649564b3":"getOtherContractParticipant(address,uint256,address)","649677e1":"entranceFee()","64968f58":"set_presale_iconiq_arbits_per_ether(uint256)","6497129c":"getRoundNumber(uint256)","64976b4d":"setNplay(address)","64978c7f":"jembex()","6497b400":"_getFashionParam(uint256)","6497bd3a":"newPriceTicker(string)","6497d32e":"setCCH_edit_18(string)","6498156e":"preICOBuy()","64994978":"setFounder()","64996a43":"_computeCycleSkip()","6499e2d9":"ERC777DemoToken(string,string,uint256)","649ae9c6":"lockDate()","649c07d5":"is_contract(address)","649c0b21":"addressOfMSF()","649d56db":"getContractProps()","649e3c46":"createDoc(string,string,string,string)","649eea7f":"_transferCar(address,uint256,bool)","649efd6e":"mintForEverybody()","649f0153":"fiatBalance()","64a04d07":"ReconOwned()","64a08260":"adminRemoveRole(uint256,address,uint256)","64a20e2d":"getImpactDonor(string,uint256)","64a237f4":"VEGANToken()","64a31b80":"getRequiredReportsPerReporterForlimitedReporterMarkets()","64a41399":"contributeInCreditsToken()","64a48499":"getIntegerValue()","64a4a5d7":"testBitsEqualSuccess()","64a5a632":"getCompanyByName(bytes32)","64a640ef":"Bosscoin()","64a666f2":"getAuthorizedInsertAgents()","64a68943":"dividentSent(uint256,address,uint256)","64a7cc4b":"purchase(uint128)","64a7d7c7":"bidAuction(uint256)","64a80c0c":"openStream(address,uint256)","64a83d8b":"_removeTokenFromTranche(address,bytes32,uint256)","64aabe92":"tryExec(address,bytes,uint256)","64ab23c9":"finalizeChangeStakingFees()","64ab374b":"getUnreadMessagesArrayContent(uint256)","64ab4702":"voteWeightUnit(uint256)","64aba263":"setInternalInfo(address,uint256,uint256,uint256,uint256)","64ac12b1":"multisig(address[],uint256)","64ac2c4a":"WavesPresale()","64acdb77":"disablePurchasing()","64acef7d":"newBP(bool,address,uint256,uint256,string,string)","64ad6027":"updateOrderNumber3(uint256)","64adc403":"getUserRewardPayouts(address,address)","64ae4451":"stateIs(uint8)","64aea551":"randnum()","64afab72":"remove(address,bytes32)","64afcf2e":"minSecondsBetweenPublishing()","64b09402":"setMetadataProvider(address)","64b13270":"registerDeed(string,string)","64b2eb2c":"publicOfferingExchangeRate()","64b3302d":"safeMult(uint256,uint256)","64b3b844":"getSaleInfo(uint256)","64b494d9":"setValInt(uint256)","64b4e6eb":"payRef(address,uint256)","64b55e8b":"SULTANT()","64b7571f":"distributeDividends(address,uint256)","64b7f1d3":"Rules()","64b837ab":"stopBlockjack()","64b9ca08":"noAdvert()","64bc6a74":"AllPartnersSet(uint256)","64bc82c3":"delegateAddresses(uint256)","64bd3066":"dispute(address,bool)","64bd7013":"wait()","64bd87d6":"scheduleCall(address,bytes,bytes,uint256,uint256)","64be8453":"NewUserAdded(address,address)","64beb745":"lockOwnership(uint256)","64bebead":"_FreeDom()","64bfc9a5":"stopBountyMint()","64c176eb":"setSmartToken(address)","64c2555d":"buyDay(uint16,uint256,string)","64c27f2a":"isOwnerOrOps(address,address)","64c2b768":"powered_up()","64c33c33":"setPrice(uint16,uint16,uint8,address,uint256)","64c34364":"hodl(uint256,uint256,uint256)","64c37043":"buyRareItem(address,uint256,uint256)","64c403d4":"getETHx2(uint256)","64c40bbc":"DCoin()","64c422d0":"participantToUBObought(address)","64c487ef":"isStoppingIcoOnHardCap()","64c638d5":"withdrawTokenToClientAccount(bytes32,bytes32,address,uint256)","64c66395":"getUIntValue(uint256)","64c76117":"endDistribution()","64c7b3bf":"Journal(uint256)","64c7b78c":"addOrg(string,string,string,string,string,string)","64c877f1":"depositLiquidateThePool(uint256)","64c88d62":"calcDemurrage(uint256)","64c8cd8c":"unlockMinedBalances(uint256)","64c8e825":"PooCoin()","64c96322":"setAllocationOpen(uint256)","64c96572":"TokenLMTC(uint256,string,uint8,string)","64ca6478":"createImage(uint256[],uint256,uint256,bytes32[],string,string,string)","64cab0e3":"setCurrentPrizePool(bytes4)","64caf214":"setPlayerDetectGroup(address,address,uint8,uint32)","64cb5338":"FundedAmount(uint256)","64cbbd34":"WalletChanged(address,address)","64cbbdc7":"addDividendsForAddress(address,address)","64cbfdd6":"p_update_planetCryptoUtilsAddress(address)","64cc7327":"retrieve(string)","64cc7719":"getUserDataOnEther(uint256)","64ccd7a0":"getAutomatedReporterDisputeBondToken()","64cd1f69":"requestInvestment(uint256,uint256,bool)","64cd4a1a":"round4TokensRemaning()","64ce1068":"lockExpiration()","64ceed99":"foundersTimelock()","64cefc90":"fliqToken()","64cf6d71":"toBytes1(bytes,bytes,uint256)","64cf9167":"Numisma()","64d03095":"getSpecificTransaction(address,uint256,uint256)","64d03144":"Plaak(uint256)","64d05519":"createLastWill(address,string,string,string)","64d0bbc4":"increaseGenerationCount(uint256,uint8)","64d0d64c":"testControlCreateWithParentNotInUse()","64d0e83b":"jackpotWinCount()","64d12ec6":"getRevisionIpfsHash(bytes20,uint256)","64d17c08":"setServiceTokenAddress(address)","64d34045":"setCCH_edit_20(string)","64d3e7c9":"ReserveToken(string,string)","64d40354":"limitAmount(uint256,uint256)","64d4702f":"getNextKeyPrice(uint256)","64d4c819":"TYPE_HASH()","64d538d3":"StartIco()","64d563f1":"doubleClaimSegmentSlash(uint256,uint256,uint256,uint256)","64d57a03":"GainTempStuff(address,uint32,uint256)","64d582c0":"incentiveDistributionInterval()","64d5922f":"pingBlock()","64d5d024":"isValidBox(uint8,uint8,uint16)","64d6a95f":"changeGameParameters(uint256,uint256)","64d75891":"XXXXXXXX03(uint256)","64d79f20":"internalRegisterCertWithID(bytes32,bytes,bytes32,uint256,bytes32)","64d85348":"deleteOffer(address,address)","64d905c0":"awaitingParticipants()","64d98bd3":"ownerTransferJackpotToken(address,uint256)","64d98f6e":"isSolved()","64d9a9e9":"AirDropToken(string,string,uint8,bytes32,uint256)","64da8ad3":"settleSeller(address,uint256)","64dab033":"landmarkPriceStepDenominator()","64dab283":"getWHGDonationAddress()","64dad32f":"isTokenUser(address)","64db5aa8":"ARDBatchTransfer()","64dc68b8":"ILove0xBTC(string)","64dc807a":"burnUndistributedTokens(uint256)","64dd891a":"attack(uint256)","64ddc605":"lockupAccounts(address[],uint256[])","64dde40f":"isTournament()","64ddedc6":"Triangle(uint256)","64ddfa29":"getAdminAddresses()","64de4c1d":"setTatAddress(address,address)","64df049e":"protocolFeeRecipient()","64df19da":"removeCustomTimeLock(string)","64dfe85e":"Dsteem()","64e08644":"stakeRemainingToVote_Eth()","64e0bbc5":"checkMyTransactions()","64e19bdd":"ownerAirdrop(address,uint256)","64e1f38b":"howManyKeysCanBuy(uint256)","64e21c9e":"DirectFundingProcessed()","64e24f4b":"UpdateClientTokenAccount(address)","64e28148":"clear(address,uint256,uint256)","64e28636":"getLateFee(address)","64e2ec50":"collectOtherTokens(address)","64e2fdfa":"ToukenToken()","64e31d74":"RaffleLedger(string,uint256)","64e36d04":"hardCapInEther()","64e39b87":"setFundsWallet(address)","64e40eb9":"withdrawTokens(address,address,address,address)","64e4596e":"_getPVPContendersCut(uint256)","64e48fcd":"testResetBet()","64e48fde":"findPossibleDelegatorsOfRaw(bytes32)","64e4a8fb":"xaurCoined()","64e50fb9":"setIco()","64e593c0":"setStartTimeIco(uint256)","64e5c8be":"getRoundPrizeShare()","64e62afc":"setSegmentOwner(string,uint32,uint32,string,string)","64e749ff":"getPosition(bytes12)","64e779b1":"unmint(uint256)","64e7e4a4":"transferNotification(address,uint256,uint256)","64e8687f":"withdrawTalao(uint256)","64e8d682":"pre_startdate()","64eaa454":"crowdsaleAmountLeft()","64eaff54":"getSquirrelmasterReq()","64eb7327":"_getContent(bytes32)","64ebd70d":"the365address()","64ec8bdb":"creatorWithdraw()","64ed31fe":"authVotes(address)","64eda74b":"setIsFrozen(bool)","64eded20":"_getTokenAmountWithBonus(uint256)","64edfbf0":"purchase()","64ee49fe":"scheduleCall(address,uint256,bytes4,uint256,uint256,uint8)","64ef212e":"proxyTransferWithReference(address,uint256,bytes32,string)","64ef563c":"reveal_registration(uint256,address,address)","64f018d8":"issue(address,uint256,string,string)","64f05fd7":"calculateWithdrawableAmount()","64f06b39":"setPC(uint256)","64f101f0":"closeMint()","64f15430":"fundVesting(address,uint256)","64f1873b":"ICOstarttime()","64f39b47":"return_funds()","64f40a3c":"RESERVED_TOKENS_FUTURE_OPERATIONS()","64f42a99":"addUser(address,bytes32)","64f4b094":"getLowestBid(uint8)","64f54a17":"getLatestItemRaffleInfo()","64f65cc0":"setFinished()","64f67f33":"DIPToken()","64f6f7b9":"setup(address,uint256,uint256)","64f8ad1f":"get_default_approval_duration()","64f951e9":"sessionBlockSize()","64fa3070":"getEscrowFee(address)","64faf22c":"left18(uint256)","64fb7d68":"coinMinter(uint256,uint256)","64fc2d9d":"_tryCreateEtherMonster(uint256,uint256)","64fe5cde":"MAX_UINT48()","64ffb47b":"getTotalMicroKeys()","65011760":"DOCToken()","650271d2":"makeMove(uint8)","65030adb":"RESERVED_TOKENS_ICO()","65030e75":"setSecretContract(address,uint256)","6503178a":"setMinVeriAmount(uint32)","65033845":"XiaoshiToken()","65036ca9":"zethrBuyIn()","6503a701":"InitiatePayout(address,string,string)","6503e5ff":"mFUNDING_BONUS()","65045a2b":"bottomName()","650462ab":"tokensMasterNodes()","650500c1":"whatIsTheMeaningOfLife()","65050e27":"checkCandy(address)","65054e55":"claimSellerFunds(address,address,address,uint256)","65058f4c":"requestPayout()","65061957":"EMPTY_RESOURCE_SET_ID()","65066810":"WHITELIST_SALE_LIMIT()","650669d2":"getCompte_1()","6506b0d6":"setData(string,string,string,string,string,string)","6506b623":"rotateBitsLeft(bytes,uint256)","65084b76":"OpenRegistryRules(address)","6508978b":"updateLatestSaleState()","65089dd8":"freezeStatsSumHours(uint256)","65093661":"newCommunity(address)","650944a6":"beneficiaryStash(address)","650955d4":"HashToken()","65098bb3":"calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)","6509c195":"setPartnerPool(uint256,uint256)","6509e776":"CC()","650b147d":"paidToPartners()","650c2b28":"tokensPerDollar()","650c4226":"changeFees(uint256,uint256,uint256,uint256)","650ce14c":"registerPublisher(address,bytes32[5])","650d0aa3":"ChangeFee(uint16)","650d22e8":"countryTimeLock()","650d5d6b":"get_status(uint256)","650d993b":"getCustomer()","650dd4fb":"_createCountry(string,uint256)","650e1505":"createLock(address,uint256,uint256)","650e85af":"setUserRoles(address,uint256)","650ee1ee":"NewSale(uint256,address,uint256)","651006c0":"getCreateMarketDenominationTokenValue()","6510076f":"giveTokensOne(address,uint256)","65103f6e":"hasFees()","651044a2":"BitcoinpalletToken()","6510cc17":"INITIAL_mulFactor()","6510ef4d":"oraclize_query(uint256,string,string[5])","65113528":"getBoosterType(uint256)","65114459":"getOpenPackageId()","6511a98b":"testRegisterProduct()","6511eadb":"marketingProfitAddress()","65121205":"calculateDevCut(uint256)","65121f68":"add1Y(address,uint256)","6512c9b5":"OwnersProductCommissionChanged(uint256)","65131f63":"getMembersOfTier(uint256)","65132ad3":"Police_3()","651398e6":"allocateTokenForAdvisor(address,uint256)","6513fafe":"resistWhiteList(address)","65141c20":"setRemixCount(uint256,uint256)","65147784":"Pasband()","65149a76":"calculateWinnings(bytes32,address)","6514aaca":"minimumCommission()","65153632":"assertEq11(bytes11,bytes11,bytes32)","65158b3b":"contributor(uint256)","6515c1fa":"defineMecenas(address)","6515c6a9":"paused2()","6515d28c":"getLockingTypeCount()","6516395a":"lockCustomer(address)","651680af":"stage5Deadline()","651738a3":"setMinScaled(int8)","6517ef33":"getNumberOfOrders(uint256)","65181ad3":"GET_METADATA()","6518361e":"SCT(uint256,string,uint8,string)","651883c1":"batchSpawnAssetWithCreator(address[],uint256[],uint256[],uint256[],address[])","6518ad22":"placeETHBid(uint8)","65195bc7":"DPNPlusToken()","6519fac2":"userExisted(address)","651bb617":"tokenlength()","651bc2fb":"reserveNIMFAAddress()","651bfd2d":"itemPrice(address,uint256,uint256)","651c2ff9":"preTge()","651c5c84":"TokenWalletHolder()","651c5d2d":"getGiver()","651c9e99":"GOGRN()","651cd08d":"validateStart(address,address)","651dd0de":"values(bytes12)","651ed944":"startPreICOStage()","651f066a":"playerBalance()","6520715a":"approveClaim(bytes32,string)","6520768d":"modName(string)","652084c0":"storeKey()","6520ca0d":"levelUpMining(uint256)","6520fde5":"auctionPaused()","652106d8":"tokenTribe(uint256)","65213840":"prizeMoney()","652139e2":"setAngelFinishDate(uint256)","65216a41":"airDrop(address[],uint256[])","6521c03c":"createContribution(address,uint256)","65225665":"getPlayerAddress(uint256)","65227c7d":"RenCap()","65228934":"setOperationsCallGas(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","6522bff1":"update(uint256,string,string,string)","65243f87":"findNextWeekday(uint256,bytes2)","6524f107":"BlobStore()","6525a233":"ORACLIZE_COMMISSION()","6525c29d":"rejectAdvertiserCharges()","6526db7a":"remove(uint256,uint256)","6526ecee":"KingOfTheEthill()","652740a7":"TransparencyRelayer(address)","6528ef46":"BBY(uint256,string,string)","6528f4cb":"getDivRate(uint256)","652918bc":"updateProfit(uint256)","6529abba":"setSellComission(uint256)","6529d1c9":"pricesOfDate(uint256,uint256,uint256[],uint256)","652b51eb":"RefundEnabled(uint256)","652b810c":"setInternalStakingAddress(address)","652ca8f4":"cofoundersSupplyDistributed()","652d38fc":"getTotalIn(address)","652da5ff":"b(bool)","652dad7b":"batchDecreaseApproval(address[],uint256[])","652db9ab":"_distribute(address,uint256)","652de5ad":"countPerfManagers()","652ebb4c":"tokenPriceInETH()","652edd41":"purchaseDatesEdition(uint256)","652f1f16":"addSignature(string)","652f6494":"treasuryOfficials(uint256)","652f78cc":"allocateCommunityToken(address[],uint256[])","6530b7f9":"_createDrink(string,address,uint256)","6530e008":"STAGE2_TIME_END()","6531041b":"updateMIN_CONTRIBUTION(uint256)","6531a708":"getHolderEditions(address)","6531dbff":"totalFundedEther()","65325871":"transferableTokensOf(address)","6532b646":"SFI()","65343fcb":"TrustEth()","6534b4e2":"IsPayoutReady__InfoFunction(bytes32)","6534eb76":"recycling(uint256)","653704b1":"_changeName(string,uint256)","65372147":"result()","65375f38":"updateCustomerKYC(address,address,address)","6537e401":"setIII_S(uint256)","653853c0":"AMLToken()","6539335a":"toTipoEnte(uint8)","65395242":"MathisTestToken()","65397d5e":"refundOIDIndex_()","653a8f14":"getNumTilesFromBoard(uint16)","653abf37":"setDecision(bytes32,address,address)","653c3174":"investorsNumber()","653c95b8":"getContribution(address,uint256)","653c968a":"Bethopia(address,address)","653c9eea":"isBS(address)","653cfd2f":"testTemp4()","653d1ca4":"getPI_edit_21()","653e2e0d":"setLastPositions()","653f23f8":"registerJuryMember(string,address)","653f7219":"AddVerifiedInfo(bytes32)","653fbca1":"payableEtherReceived()","653fcf4c":"pewdiepie()","65401882":"setDB(address)","6540742f":"MIN_BET()","6540dc07":"_destroyImpl()","6540fcc2":"PRICE_PRESALE_WEEK1()","654142c7":"getBoolField2()","65419516":"bettingStart()","654259dd":"availableAmount(address)","654286d1":"changeFrozenBalanceAll(uint8)","6542fed7":"evaluateShareholders(address,address)","65433e7f":"AntFundRobotToken()","654470fc":"getTotalSellingItem()","65449436":"CryptoConseilSuisse()","65450a90":"ACEBlock()","6545bed3":"Dice(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","65472731":"lastBlock_a5()","6547c080":"Renmin(uint256,string,uint8,string)","65483f69":"getBNTBalance(address)","65488541":"Harimid(uint256)","6548b40d":"depositErc20(address,uint256)","6548e9bc":"setRelayer(address)","65497caf":"limitDateSale()","654a1855":"CentToken(uint256,string,uint8,string)","654a95f2":"calculateEggSell(uint256,address)","654a9f69":"CappedCrowdsale(uint256,uint256,uint256,uint256,address)","654af496":"callDividend(address)","654b3110":"allowIssua()","654b6105":"DestiNeedToken()","654c2111":"Cash311()","654c6daf":"totalTeams()","654c7381":"listItem(uint256,uint256,address,bytes32)","654c8748":"setBitSTD(address,address)","654cf88c":"store(bytes32)","654d146a":"costAndBuyTokens(uint256,uint256)","654e27f9":"callBtoWithSto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","654e51e7":"setRewards(uint256,uint256)","654f18b1":"DragonPriceUpdated()","654f1ccb":"getGamesLength()","654f4575":"getTopN(uint256)","654f4b61":"bidHash()","654f7d40":"ETHERRED()","654f97a3":"setClaimStatus(bool)","655012a9":"sumPrice()","655042ee":"OSCoinToken()","655059db":"create(bytes32,bytes32[])","655187b2":"Aragon()","6551fb11":"localsStore(address,address)","65521111":"isAble(address,uint8)","6552a562":"updModule(string)","6552d8b4":"removeReceiver(address)","655330f4":"NLog(uint256)","65536ab3":"BFEXToken()","655388be":"walkTowardsBlock()","65538c73":"fireEventLog0()","65538da0":"preSaleOpened()","655391c9":"updateBaseTokenURI(string)","6553b03c":"cloneContractor(address,uint256)","65540940":"partnerAllocateRestrictedTokenTo(bytes32,bytes32,uint256)","6554d179":"attachedSystemActive()","65550e70":"getNextAvailableCard()","6555394b":"updatePrice(address,bytes32[],uint256[],uint256)","655584d6":"ChangeDate(uint32)","6556f767":"getBytes(address,bytes32)","6557a47c":"Tier_Wildcat()","6557b677":"lowTokensToSellGoal()","6557dfc8":"AnimeToken()","65581793":"S2()","6558488a":"scheduleSetBool(address,uint256,bool)","6559aeb2":"transferTimelocked(address,uint256)","6559c08d":"checkProblemsSolved()","655a4ebf":"revokeAttribute(address,address,bytes32,bytes)","655b08eb":"getRandom(uint256,uint256)","655b3667":"TOKEN_SUPPLY_AIRDROP_LIMIT()","655b97db":"ownershipLookup(address,uint256)","655bb0e8":"transferSubcontractsOwnership(address)","655bb565":"changeGasPrice(uint256)","655c737c":"getPositionOwedToken(bytes32)","655cc366":"LogGoalReached(address,uint256)","655d0862":"createSignedMessageOracle(bytes32,uint8,bytes32,bytes32)","655d225f":"myTime()","655d65c4":"limitSell(uint256)","655dc4c2":"getLawyerCount()","655e0d38":"changeBroker(address)","655e4224":"addEntryInSecondsPeriods(address,uint256,bool,uint256,uint256)","655e51f2":"MIN_GOAL_EBC()","655ec3e4":"transferSoul(address,address)","655f8294":"PreviousTime()","655fc4db":"vault_releaseDeposit()","655fcaf5":"feeReceiverWallet()","65604a11":"VESTING_WALLET()","6560a307":"suggestedGas()","656104f5":"_setOrganiser(address)","6561e6ba":"feeWithdraw()","6561e921":"becomeRenown(bytes32)","6561ffb9":"LOTTECHAIN()","65620283":"transferTokens(address[],uint256[])","65622cfd":"transferFor(address)","65630493":"ERC20Impl(address,address,address,address)","656362b5":"regFactory()","6563b2fc":"tokensLeftInPhase(int8)","6564a7af":"DeployENS()","6564ad28":"IFNToken(address,address,uint256,string,uint8,string)","65651b6e":"addSkillName(address,bytes32,address)","65670adc":"teamSupply18Months()","65675074":"getAllTokensOfUser(address)","65676c9e":"baseExchangeRate()","65679536":"month24Unlock()","65687008":"fundraiserAddress()","65688182":"recomputeLastAverageBalance(address)","65688cc9":"newGuard()","6568a279":"withdrawAll(address[])","656afdee":"register(string,bytes32)","656b275c":"expandY()","656b9952":"produce()","656ca11d":"CONFIG_FEES_MUL()","656d2f63":"ManagedAccount(address)","656d3091":"createEthSaleAuction(uint256,uint256)","656d677e":"releaseTotal()","656e8d6f":"getTutorialBabyGen(uint16)","656ea1f6":"snikerts()","656f416d":"uponTransferFrom(address,address,address,uint256)","656f64f5":"pendingGDPOracle()","656f6873":"ActualizePriceBeforeStart(uint256,uint256,uint256,uint256)","65704506":"currentGame(address)","657128a2":"altTokenOf(address,address)","657157e5":"canTrade(address,address)","657206ef":"getSignedAddresses()","6572ab5b":"shareCycleIndex()","6572ae13":"calculateWinner(uint256,uint256)","6573ee1e":"doFailingApprove()","6574bdd2":"newDream(address,string,string)","65757eeb":"removeDiscounts(uint256[])","65766b64":"stageBegin()","6577ab77":"_checkSeal(address,address,address,uint256)","65781994":"SESAPACToken()","65783c66":"checkTicket(uint32)","6578d920":"_canSendGameGift()","65791e46":"setTimeTransferAllowance(uint256)","65794de3":"secondStageDuration()","657a2ffa":"Register(uint8,string)","657a37ad":"depositAndSell(address,address,uint256)","657ad078":"moveOwner(uint256[3],uint256[4],uint8[176],bytes32,bytes32,uint8)","657ad479":"presalePerEth()","657ba57b":"show_The_name_of_option_C()","657c5dae":"ApproveTitle(uint256)","657d38b8":"endICOp3()","657db38d":"ten_wallet()","657edc11":"removeLootbox(address)","657f3ab0":"getPricePoint(uint256)","657f4783":"getRealGoldBought()","658030b3":"tokenInstance()","65826666":"executePullPayment(address,string)","658268c1":"StableCurrencyToken(uint256,string,string,uint256)","658311ab":"jackpotLevel()","658389cb":"isFromCountry(address,address,uint256)","6583e239":"STATUS_DEAL_APPROVE()","6584a5b5":"removeLock(address[])","6584ceb0":"StartNewEpoch()","6584fcce":"ATCReserveLocker()","658523d9":"StrategicToken()","65855010":"rateSale()","658577e9":"buyXid()","65857a5e":"parkingOn(address,uint256)","65859862":"add_arbits(address,address,uint256)","6585c27c":"getrandoms()","6585dc12":"enableRefundPeriod()","658612e9":"gasFee()","65862330":"TestableStandardCampaign(string,uint256,uint256,address,address)","65863b24":"getTotalCollectedPromoBonus()","6586bb25":"MAXIMUM_PARTICIPATION_AMOUNT()","6586bd51":"getNodalblockSender(string)","65879e72":"JED()","6587ab3d":"toggleSafetyMode()","6588875e":"ShutterToken()","6588c11c":"_startSwap()","658a5692":"_totalEthCollected()","658b98a9":"pointMultiplier()","658bc083":"initDistribution(address,address,uint256)","658bf147":"setArea(uint256,bytes32)","658c55ed":"saleProceedsFiat(uint256)","658cc376":"getCensuringCount(uint16)","658d3423":"getGameMinAmountByBet(uint256)","658dc76f":"addChunk4ToWhiteList()","658df3f7":"approveCompletedMilestone(uint256)","658e587f":"getWithdrawConfirmationCount(uint256)","658eefd1":"notifyRefundToken(uint256,address)","658f2ad6":"CrowdSale_Resume()","658fbfbc":"transferOnError(address,uint256)","659010e7":"m_spentToday()","65909081":"Brothel(address)","6590f0ed":"DUKCoin()","65921f02":"paladinEquity()","65926a20":"changeSaleOn(uint256)","6593643c":"CreateIND(address,uint256)","65937ab9":"isUpdateAuthorized(address,uint256)","659382fb":"payoutETH()","6594479f":"LTYP()","6594d99b":"isDataNo(bytes)","6594ea6c":"EGGS_TO_HATCH_1SQUIRREL()","65957bf5":"getShareToken(uint256)","6595c94e":"calculateTierBonus()","6596217b":"HAYATO_FTL_SPEED()","659621b5":"r0()","65968727":"innocoinToken()","6596cff3":"setCrowdsaleContract(address)","65975691":"getDividends(uint256,uint256)","6597a076":"getBonuses()","6598afb9":"yearlyBlockCount()","65995733":"getSalaryTokenValue(address,address,address)","65995cc8":"uploadAdvertisement(uint256,string,address,uint256)","659a46e8":"coinLockRmoveMultiple(address[])","659a7486":"inTradingTime()","659a9cbc":"coinsUnit(uint256)","659ae215":"saleDateFinish()","659b586e":"readQuantityList(address,uint256,uint256)","659b9c72":"UsersNumber()","659bd174":"TransferredTimelockedTokens(address,address,uint256)","659d1185":"angelTimeLock()","659d20eb":"getFoundersGames(address)","659d6bd1":"readPower()","659d7aaa":"sendEtherManually(address,uint256)","659de63b":"distributeToken(address[],uint256[])","659e0729":"getFirstAmount(bytes32,bytes32)","659e27b0":"setWhitelistingAddress(address,address)","659e69e9":"setDelegateAdmin(address,address,string,bool)","659eeabc":"tokensWithAmount()","659eeef1":"increasePaymentsBalance(address,uint256)","659f9e3c":"lastEpochBlockHeight()","659fb968":"getOracleOutcomes(bytes32[],address[])","65a096dc":"changeWithdrawableRound(uint256)","65a114f1":"resetTime()","65a178c0":"getTlength01()","65a20ef9":"hasRole(uint256,address,uint256)","65a31545":"doDeposit(address,uint256)","65a3d8f0":"setEtherCentPrice(uint256)","65a4c957":"resultsDelay()","65a4dfb3":"oraclize_query(uint256,string,string,string,uint256)","65a572dc":"EGREngravedToken()","65a5e708":"Upgraded(uint256)","65a5f1cd":"changeFoundation(address)","65a61ab4":"RWSC()","65a6bb29":"getAllOracles()","65a707bf":"DrugDealer()","65a7dcec":"addWinners()","65a8a483":"setColdWallet2(address)","65a91d4a":"createAmountFromTmedForAddress(uint256,address)","65aa96bd":"postJobOffer(uint256,address,uint256,uint256,uint256)","65aade1a":"getEmployeeId(address)","65ababe9":"createERC20Token(string,uint8,string,uint256)","65ac0d8b":"Withdrawl(address,uint256)","65ac2320":"ownerName()","65ac4341":"getTotalAmount()","65ac8c2a":"getSellOrdersInfo()","65ad9f34":"setHardCap(uint256,uint256)","65ae247e":"issueLockedTokensCustom(uint256,uint64)","65aebe7b":"ind(address,address)","65aec658":"_createCitizen(uint16,uint16,uint8,bytes32,bytes32,bytes32)","65af2a7d":"investedDDT(address)","65afa594":"Member_GetMyTokens()","65b040c8":"setPriceWithBonus(uint256)","65b051b8":"MEWSToken()","65b06136":"makePayouts()","65b0bc85":"createNameAndPoint(bytes32,address)","65b0d711":"updateApprovalOfToken(address[],bool)","65b0e5b3":"setethrate(uint256)","65b1c987":"resetBurntTokens()","65b1fdf4":"scheduleIssuePOIs()","65b27205":"testFailMintWhenStopped()","65b2a863":"revoke(string)","65b37d70":"HotManChain(uint256,string,uint8,string)","65b3a7ca":"isGameExpired(uint256)","65b686b0":"burnRemainTokenOffering()","65b6cd66":"setUserTransactions(string)","65b6d9e2":"a(uint256,string)","65b70e45":"UpMineLVL(uint256)","65b7a89d":"DeDeContract(address,address,address,uint256,uint256,address,address,uint256)","65b7b357":"getVotersAnswer()","65b892a1":"withdrawForOneStep()","65b980ab":"performTransaction(address,bytes32)","65b9e37d":"hardParticipationCap()","65ba12b8":"percentWeiJackpot()","65ba331b":"IcoStagePeriod(uint256)","65ba36c1":"interfaceHash(string)","65baf5db":"tier2Start()","65bb193e":"createInsurance(string,address)","65bbb26a":"Linamyd()","65bc35fa":"Streem(uint256,string,string,uint8)","65bcaf4a":"Ubiou(uint256,string,string)","65bcfbe7":"payouts(address)","65bdadf6":"ninthTime()","65bf1ffc":"authorizedStartTrading()","65bfdb0b":"_receiveChild(address,uint256,address,uint256)","65c04faf":"random(uint32,uint256)","65c09830":"changeStatusGame(uint8)","65c0eecf":"BitcoinLiza()","65c13fdb":"changeGasPriceLimit(uint256)","65c19af0":"getStringLength(string)","65c24799":"getYayNum(uint256)","65c2c60f":"checkName(bytes32)","65c2d3a0":"romper()","65c2e8a1":"bossAdmin()","65c2fab2":"NewIssue(address,uint256,uint256)","65c301ab":"getDriver(address)","65c40b07":"bonusesDates(uint256)","65c4a861":"cordY(uint256)","65c4b463":"_tag(bool,string)","65c5826f":"ENC()","65c5e683":"mine(address,uint8,bytes32,bytes32)","65c683cf":"metadataOfToken(uint256)","65c724cd":"dividendsCollected()","65c72840":"getDay(uint256)","65c7b711":"MockToken()","65c91b0b":"testFailTransferOnlyTrustedCaller()","65c95a6b":"setUFee(uint256)","65c9e51e":"setDepositPeriod(uint256,uint256)","65cacaa4":"getVaultAddress()","65ccb687":"PULSToken()","65cd048b":"setDividendFee(uint8)","65cd1bea":"PayToken(address,address,uint256)","65cd3686":"setIsSendingLocked(address,bool)","65ce47fb":"_myDecimal()","65ce5222":"specificTransferFrom(address,address,uint256)","65ce7395":"setMinVote(uint256)","65cf3a48":"bonusPrice()","65d0a890":"Daio(uint256)","65d0e4a7":"addBot(address,address)","65d1926d":"dropAddress()","65d1df24":"s2s()","65d27248":"setSellPrice(uint16,uint16,uint8,address,uint256)","65d300ea":"CreateAds(address,uint256)","65d43868":"allowedOracleChangePercent()","65d48d0b":"freezeBalancesOf(address)","65d4bdab":"targetEth()","65d51dd5":"_phase2Supply()","65d5b48d":"PRECOMMITMENT_VESTING_SECONDS()","65d61ad6":"PwdHasBeenSet(bytes32)","65d6759a":"getGenome(uint256)","65d68308":"receiveTokenLoot(uint256,uint256,uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","65d6dbbd":"unPromisedPop()","65d6e6a4":"jackpotMaxTime()","65d73851":"calculatePrizeCut(uint256)","65d7d3d0":"LegacyReputationToken()","65d80117":"getResource(string)","65d8a20a":"updateTransactionFeePercentage(uint8)","65d8e32e":"setProfileHash(string)","65d967b0":"ETH_HARD_CAP()","65d9d8e2":"depositEtherForUser(address)","65d9df9c":"totally_decrease_the_supply(uint256)","65d9f31e":"addressFounders3()","65d9f55a":"removeValidationPreSigned(address,bytes32,uint8,bytes32,bytes32,bytes32)","65da1cfc":"AdminClaimed(address,address)","65da5603":"produce(uint256)","65db63d0":"kittensDroppedToTheWorld()","65db6c8c":"OPTIONAL_POOL()","65dba2b3":"removeTeamMember(address,bytes32)","65dc128e":"p_setAirdropPercent(uint256,uint256)","65dc4e3a":"addCollateralMarket(address)","65ddf33b":"productsShipped()","65de1eb3":"getVendor(uint256)","65df517e":"CTHToken()","65df7933":"totalDevelopers()","65dfc20f":"setWalletFees(address,uint256)","65e00beb":"createFlowerAuction(uint256,uint256,uint256,uint256)","65e0c718":"DisputeResolved(bytes32)","65e0e117":"getSendersCalcTokens(address)","65e0e9a2":"preIcoState()","65e14731":"_kittenOwner()","65e16933":"buyPRETDETokensWithoutETH(address,uint256,uint256)","65e16a09":"transferadmin(address,address,uint256)","65e17c9d":"feeAccount()","65e1cc85":"foundersPercent()","65e21cb0":"transferNewBunny(address,uint32,uint256,uint256,uint32,uint32)","65e23ce3":"minimumEther()","65e2406a":"takeEthForExchange(uint256)","65e2409b":"getPlayerEnergyByAddress(address)","65e4349c":"NewStage(uint256,uint256)","65e44d06":"BITOToken()","65e47208":"lcBalance()","65e4ad9e":"isAuthorized(address,address)","65e60ef2":"read(bytes32,bytes32)","65e62ee6":"getInvestorKycLimit(bytes32,uint8)","65e7096d":"allMaskGu_()","65e7ee50":"RCCContractTest()","65e807ab":"getTokenLossValue(uint256)","65e83ae1":"getCrowdsaleTokens()","65e8faf6":"isValidIndex(uint256,uint256)","65e93b3f":"getUserVotes()","65e9cc4e":"contributionPending()","65ea19a8":"set_notary(address)","65ea2b77":"ethaddrc()","65ea62ff":"initTransfer(address,uint256,uint256)","65eb0dec":"changeAllowedTakerBetsPerMakerBet(uint256,uint256)","65ed16af":"_addBridgeNativeFee(uint256,uint256)","65ed6e23":"getAllocations()","65ed8a4a":"proposedTotal()","65eec589":"_markWithdraw(address,uint256)","65ef1a3f":"setHotWalletAddress(address,address)","65ef617d":"AdminWalletUpdated(address)","65ef7b95":"getStoreAddressById(uint256)","65efd3a3":"addCertAdmin(address,bytes32)","65f0a00b":"ONETIDC()","65f17913":"monarchsByNumber(uint256)","65f27bea":"testSubBalanceFailsBelowZero()","65f2bc2e":"unitsOneEthCanBuy()","65f3c31a":"Put(uint256)","65f41211":"validStoreDest()","65f42e7a":"APTV()","65f4d9f6":"failInvestPercents()","65f520a7":"kittyData()","65f5463e":"CLIP()","65f594a7":"revealCurve(uint256,uint256,uint256,bool,bytes32)","65f63c1b":"queryToken(uint256)","65f6a049":"sellGrimReapersAgainstEther(uint256)","65f6c15e":"ordersOf(uint256,uint256)","65f6d6a2":"FOUNDERS_TOKENS()","65f77c63":"getCertAddressByID(string,bytes32)","65f7aaff":"endRoundDecision()","65f84cbe":"_createWeightedMultiplierLot(address,uint256,uint256)","65f88c0d":"getNumUsers()","65f926ff":"getIdArrayItemsCount(address,address,string)","65f937ed":"sumOfAvailableIcoCoins()","65f97082":"startIco2(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","65fa2b97":"calculate_with_fees(uint256)","65fa2f7f":"getLastPrice(uint256)","65facff0":"_isMember()","65fae654":"Mychatcoin()","65fb99ba":"findUnConference(string)","65fba60d":"crowdsaleAllowance()","65fbc99f":"distributedSaleStakes()","65fc535b":"withdrawBenefit(address,uint256)","65fc783c":"getNumOfVoters()","65fcb49e":"maxContractBalance()","65fcf1b5":"releaseFirstUnlock()","65fddc81":"reducer()","65ff0f5a":"TradeListing(address,address,address,uint256,uint256,uint256,bool,bool)","65ff8220":"sampleContract()","65ffe43d":"lastFund()","66003666":"bountyTokens(address,uint256,string)","66005ede":"vc1Wallet4Pct()","6600811c":"tokenSaleHalted()","6600d282":"releaseAngelFirstVested()","6601345c":"changeTierController(address)","66013bdd":"withdrawToken(address,address,uint256,address,uint256,uint256,address)","6601cd77":"getExchangeDetails()","66025047":"isCategory(uint256,uint8)","660357f2":"removeWhiteListedContracts(address)","66035cc0":"adPriceHalfDay()","66040458":"signedApproveAndCall(address,address,uint256,bytes32,uint256,uint256,bytes32,address)","66042e7a":"etherToSendFund()","6604ca6b":"STO_KEY()","66056e8b":"destructSale()","6605bfda":"setTreasuryAddress(address)","6605ff66":"totalSales()","660686de":"cutBAU2Length(bytes32,address,uint256)","6606873b":"setMem(uint256)","6606b7d4":"democFee()","6606fe1e":"CABCrowdsale()","66081ec1":"JACKPOT_WALLET()","66092ea8":"ignited()","66098d4f":"plus(uint256,uint256)","66099706":"getChannelCred(address,uint256)","660a333e":"assetOwnerAdded(bytes32,address,address)","660aab8e":"profileOf(address,bytes32)","660b24b4":"emergencyTokenDrain(uint256)","660b7ad5":"rentDue(bytes32,string)","660ba74e":"_availableBetting(uint256,uint8,uint256)","660c325e":"evPayOut(address,uint256,address,uint256)","660c6813":"crowdsaleStopDate()","660d0d67":"dataStore()","660d5887":"registeredUsers()","660dee82":"addTask(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","660ef82d":"advisersAllocation()","660f77aa":"CVDToken()","6610a38a":"mountCitadel(address,address)","6610f7a8":"previousBurners(address)","6611611c":"MIN_INVESTEMENT()","6611f5f2":"ZTR_ETH_extra_price()","6612283d":"subdivisionEnabled()","66125b25":"boolFunc(bool,bool)","661309ac":"allowedTransfers(address)","6613221f":"burnLand(uint256)","66134794":"exploreCount()","6613ee9c":"_isSigned(address,address,bytes32,uint8,bytes32,bytes32)","66154885":"getIncomingValueAsEth()","6615827b":"LogEscrowEthReq(uint256)","6615dd83":"setSeedSourceB(address)","6615e357":"setPortfolio(bytes32,bytes32[],uint256[])","66161ed4":"setStopContract(bool)","66167617":"bet_various()","66167663":"subdomainTarget(string,string,string)","66168bd7":"depositTokens(address,uint256)","6616c886":"canSetBanker()","6617e11a":"NiceGuyTax()","66180bc7":"testTransferTwoTokensAndReturnFunds()","66188463":"decreaseApproval(address,uint256)","66188a26":"forwardable(address)","6618b008":"cancelSellOrder(address)","66194d72":"childToken(address,uint256)","661956fb":"depositInvestment()","661990bc":"earlyInvestorWallet()","661aba0d":"setMntpMigrated(address,bool,string)","661ad427":"setOraclizeUrl(string)","661b6dae":"eth2qiuRate()","661b9065":"getRelationWith(address)","661be157":"account_address()","661c866c":"requestNewEtherRealID(string,string,string,bool)","661d3470":"LUXREUM()","661e3605":"ConstructorContract(uint256)","661e5ec2":"getPlayerValues(uint8[],uint8[],uint8[])","661edfee":"rewardFor(address)","6620a935":"sendToOwner()","6620cc3c":"GanNFT()","6620ffd3":"getNumAnimalsXType(uint8)","66210532":"setVestingMasterAddress(address)","6621b7be":"fiatValueMultiplier()","66234c4a":"ReleaseManagerSet(address)","6623fc46":"unfreeze(uint256)","662457c6":"nextProposalID()","6625123b":"COINBIG()","662512f1":"testThrowTranferZeroTokens()","6625b349":"RESERVE_ALLOWANCE()","6626b26d":"off()","66272374":"setWithdrawRate(uint256)","662723bb":"bulkTransfer(uint32[],address[],uint256[])","66273fc6":"bountyTokenSupply()","6627ace5":"getDCommBallotsEnabled(bytes32)","662959cc":"southadvisor()","662a3b81":"getHouseAddressTwo()","662a6137":"developmentTokensWallet()","662a719b":"RewardHalvingTimePeriod()","662ad59b":"pixels()","662bca97":"SetInRate(uint256)","662c6230":"LogResultNoWinner(uint256,uint256,bytes)","662d2ec8":"freeze(address,uint256[],uint8[])","662d5aa9":"EduMetrix()","662da459":"newCostToken(uint256)","662dbe96":"getNodeHeight(bytes)","662de379":"registerAddress(bytes32,address)","662e2536":"cordZ(uint256)","662e3470":"getSectionIndexFromRaw(uint256,uint256)","662e4db0":"c_preICOBonusPercent()","662e4ee4":"changeowner(address)","662f0763":"sendTokenReward(address,uint256)","662f94c0":"approveBlacklistedAddressSpender(address)","662fa2fb":"ProofOfRarePepe()","662fac39":"mining()","662feffc":"addStore(string)","663083f6":"moneyTotal()","663152d1":"phaseOneEnd()","6631ff1d":"grantToken(address,uint256,uint256,uint256,uint256)","6632a507":"testSetupPrecondition()","6633a2bb":"_newPresserFee(uint256)","66341c97":"changelp14(address)","6634cec6":"findProductAndIndexById(uint256)","6634d917":"startEarlyStage2()","66357f57":"descriptionUpdate(string)","6635da25":"Voting(bool)","6635e0ea":"BlocklabTokenV1()","6635e511":"availableForInvestment()","66365082":"dealRevert(uint256)","6636fca8":"retainers(address)","6637324a":"Deploy(address,uint256,uint32,uint256)","6637b882":"setDao(address)","663890b1":"FinalizableCrowdsaleImpl(uint256,uint256,uint256,address)","66389f1f":"OwnerProclaimedDead(address,address,uint256)","6638c087":"createCloneToken(string,uint8,string,uint256,bool)","6638d82f":"freezeTo(address,uint256)","6639016b":"releaseETH()","663960cd":"NewWinner(address,uint8)","6639dc8e":"emissionLimit()","663a0ebb":"tokensAmount()","663a339d":"IsSetReferrer()","663b0534":"disablePayable()","663b3f62":"balancesImporter6()","663b8c5a":"_newTuneOption(uint32,uint32,uint256,bool,bool,uint128,uint64)","663bc990":"test_1()","663c01af":"getAllProductIds()","663c2e30":"claimPrize(bytes4)","663c920a":"redenomiValue()","663cebfc":"VeiagCrowdsale(uint256,uint256,uint256,uint256,address,address,address,address)","663d1e84":"createVotacion(bytes32,bytes32[],uint256[])","663d6612":"defaultOperatorsTranche(bytes32)","663e0f88":"getSpecifiedDecimal()","663e90d9":"setBuyNowListing(bytes32,uint256,bool)","663f2670":"AccountLinked(address,address)","663f70c3":"calculateBounty(uint256)","663f8549":"mintReserved(address,uint256,uint256)","663f9c0d":"loginState(address)","663fc7e0":"highRoller()","663ff5a9":"create(bytes32,address)","6640ca84":"AgreementPen(address)","6641179e":"artistsEditions(address)","66417115":"positionOfJingle(uint256)","6641cc27":"eliminarVotacion(bytes32)","6641cc64":"kycApproved(address)","6641ea08":"ROUND_DURATION()","6642c0bc":"executeExploit(address,address)","66435abf":"getWeight(bytes32)","6643caba":"generousDonation()","6645167d":"YourCrowdSale()","664519bd":"wwamICOcontractAddress()","6645c0dc":"transferVotes(address,uint256)","66476fcc":"flipTokenReward()","66479c08":"payOraclize(uint256)","6648cb52":"setPurchasePeriod(uint256)","66494ab6":"THAW_CYCLE_FUNDER()","6649dfd5":"preCrowdsaleOn()","664a1ad6":"fundWallet()","664abc0f":"packedToEndTime(uint256)","664b3350":"createTransfer(address,uint256,bytes)","664b885e":"AddNewPrestige(uint256,uint256,uint256)","664c7bf7":"ethEurFraction()","664d8629":"withdrawAuctionDklBalance()","664dcb93":"getMHTTotalSupply()","664dd24f":"getUserTransactionIndexes(address)","664e9704":"RATE()","664eb12e":"updateCompanyPrice(uint256,uint256)","664f4904":"sealMinter(bytes32)","66505d1d":"BitcoinisDumb()","665289d2":"adjustPriceAndOwnerOfPlayerDuringPresale(uint256,address,uint256)","66533014":"supportMessage(uint256)","6653be1a":"getGameCardId(uint256)","665502ec":"ContractToken(address,string,string,uint256)","66550624":"CityLifePlusToken()","66552e15":"addVestingForBeneficiaries(address[],uint256[])","6655d7dd":"RedeemTokens(uint256)","6655ff3d":"WebsiteHostingToken()","66566947":"associateWithTeam(bytes32)","66566abd":"multSender(address[],uint256[])","66576514":"mintDRSCoin()","665788f8":"firstCrowdSaleDate()","6657b2c0":"reloadTickets(uint256,uint256)","665814d8":"_presaleStartTimestamp()","6658238c":"Peculium()","665851bb":"wangxihaoToken(address,address)","665905c6":"manuallyResetGame()","665939cc":"setupFundingRate(uint256)","6659889d":"setPromoWallet(address)","66599a40":"setEtherPriceInPoundPences(uint32)","665a11ca":"liquidityPool()","665b0d5b":"_taskError(string)","665b1bc0":"_mint(string,uint256)","665b51ce":"getusedAPI()","665bcc32":"ProcessGames(uint256[],bool)","665beae7":"ExecutableBase(bytes)","665c0b8e":"purchaseMembership(address)","665ca475":"VUToken()","665d8a53":"MAIN_SALE_END_TIME()","665de19b":"mutiSendCoinWithDifferentValue(address,address[],uint256[])","665df460":"sqrt(int256)","665e06ac":"OATToken(address,uint256)","665eba29":"playerForceGameEnd(uint256)","665f09fa":"addCoinAmount(address,uint32)","665f5149":"JOZ()","665fb66a":"YBToken(uint256,string,uint8,string)","66605ba4":"rename(string)","66605c47":"GetBuildingData(uint256)","6660b210":"kMinStake()","6660da77":"addDiscountStruct(bytes32,uint256,uint256[2],uint256[],uint256[],uint256[])","6660ead1":"RANGEEND_11()","66612f66":"MAX_DAILY_COSIGN_SEND()","666192b9":"___upgradeToAndCall(address,bytes)","66625bbd":"revokeContract()","6662e4be":"isWinningBet(uint256)","66634a16":"getAnimalCount()","666375e5":"set_allow_contributions(bool)","6663bbec":"orderMatch(uint256,uint256,int256,uint256,uint256,address,uint8,bytes,bytes,int256)","66648dd3":"setRateIco(uint256)","6665e0fd":"tradeActive(address)","66663d78":"XPAAssets(uint256,address,address,address)","6666490c":"getPlayerSpaceshipBattleLossesById(uint256)","66666aa9":"rewardPool()","6666d22c":"timeBetweenRounds()","66671c30":"FBLFounderFund()","66671c71":"BaseScheduler(address,address)","66675c57":"updateDecimals(uint256)","66679ac7":"interfaceTransfer(address,address,uint256)","6668df7f":"subCoinAllowance(address,address,uint256)","6668ffc6":"isAuditor(address,address)","666923ea":"lastBlock_v15Hash_uint256()","6669749f":"HamzaCoin()","666a3427":"removeOwnership(address)","666afadc":"preparePreContribution(uint256,uint256,uint256)","666b7d32":"disableICO()","666b9132":"PartialCoin()","666be68a":"setIcoTokenSupply(uint256)","666c7ed0":"WIZE()","666cd4bd":"calcId(uint128,address,address,address,address,uint256,uint64,bytes)","666cdaa0":"getAnime(uint256)","666da64f":"claimShare()","666de8d5":"setSecretBonusFactor(uint256)","666e1b39":"owner(address)","666e587d":"fundICO(uint256,uint8)","666efa0a":"walletFees()","666f0354":"getMonthRefferals(address)","666f4cad":"totalWeiWagered()","666f6843":"reservedAddress()","666fc4d4":"minimunEthereumToInvest()","6670bdd8":"getDOwner(bytes32)","66731e95":"LogNewWhitelistUser(address,uint256,uint256)","667336d8":"available_without_bonus()","66734eb0":"MainController(address,address)","66735f4e":"_pickWinner()","667390c7":"SendmoneyTransfer(uint256)","6673ce2b":"Results_of_the_last_round()","6673d5c6":"totalSoldTokenCount()","6674bfaf":"closeOption(address[3],uint256[3])","6676871d":"reserved_funds()","6676aaa2":"MplusCrowdsaleB(address,address)","66772438":"computeResponse(uint16)","6677cef1":"getCrowdsaleManager()","6677febe":"get_all_accepted()","667815a2":"getCanSellBalance()","6678887f":"replacesOldContract()","66792ba1":"send(string)","667a2f58":"createDepositAddress()","667b39b9":"nameOfToken(uint256)","667cb72d":"soldIdeaWeiPreIco()","667d5d22":"wager()","667ec46c":"getCurrentTierStats()","667f1656":"preSaleBotReserve()","667f9510":"getBundinha()","667fc6b9":"IchigoToken()","66801384":"STAGE_2()","6680285a":"AuthorizedCreateToPrivate(address,uint256)","66802a92":"tokenGenerationState()","668038e0":"claimDividends()","66805de5":"closePool()","6680624e":"gasPriceMaximum()","66816e2a":"setBaseStrength(uint256)","6681b9fd":"fundsRaised()","66829b16":"changeToken(address)","6682eaf1":"setsecure(uint256)","6683381b":"setDiscountToken(address,uint256,uint256)","66836acf":"updateBlock(uint256,uint256,bytes32,bytes32,bytes32,bytes32)","6683ee49":"BlockPlanet()","6683f9ae":"isSettling(bytes32)","6684ffcd":"burnerSet()","66855dcc":"removeInt256s(bytes32[])","6686e174":"tokensReleasedAmount()","66874cc5":"brokers(address)","66875554":"resumeTokenSale()","66875a31":"FOUNDER_TWO()","668767bd":"transferFromForExchange(address,address,uint256,string)","6688e305":"EIP20(uint256,string,uint8,string)","66894d76":"releaseThreeHotHourTokens(address)","6689e28b":"distribution(uint8,address[],uint256[],uint256[])","668a0f02":"latestRound()","668a2001":"removeParticipant(address)","668a2f67":"boom(address)","668aa824":"oraclePrice()","668abff7":"lastRoundLengthUpdateStartBlock()","668ad45f":"MyToken(uint256,string,uint8,string,string)","668b1b7e":"AOCTrader()","668bd511":"BithelloToken()","668c1a46":"refundBNBContributor()","668c8573":"DATING()","668cc7d8":"registerContest()","668cf93d":"LOSER_LOCK_TIME()","668d5f48":"addBrick(uint256,string,string,uint32,string,bytes32[],uint256)","668e0f6a":"addEntry(string,string,string,string,address)","668e157f":"StandardQuickConverter()","668eef5b":"test_2_method()","668faae8":"CollectibleIndex3()","668fde45":"advSend(address,uint256,bytes)","66901c5b":"clearTimeMap()","66901efb":"getOwnerInfoByIndex(uint256)","66905ba0":"overwrite(string,string)","66907d13":"setNextOrderId(uint80)","6690864e":"setTeamAddress(address)","6690f30b":"set_Name(string)","66914614":"getJackpotTotalValue()","6691461a":"updateTokenAddress(address)","6693b694":"unfreezeSupply()","669459a7":"removeRegistryFromOwnerIndex(address)","66949b56":"endMatch(uint256,int256,int256)","6694e845":"numRewardedAxies(address,bool)","669529df":"removeFromWhitelistMultiple(address[])","669541d6":"setGasCost(uint128)","66957377":"batman()","669585a4":"_figthExecutor(address)","6695b592":"stemPriceInWei()","6695f930":"calculateAndSetRate(uint256)","6696ca51":"forceBurnFrom(address,uint256)","66971c8a":"setCurrentFundingRound(uint256)","66973129":"PHEPToken()","6697aa84":"getRequiredMinor()","6698baaa":"STAGE_TWO_TIME_END()","6698f141":"releaseTeamTokensAfter18Months()","6699d9cd":"Securities_2()","6699e4c7":"isReadyForClose(uint256)","669a55ec":"initialPrizeBov()","669a828b":"getProgramsValue()","669b7e69":"getBlockAddressCount(uint256)","669cab39":"cancelBetByOwner(uint256)","669d8dff":"AddorModifyRig(uint256,uint256,uint256,uint256)","669dafe8":"toWei(uint256)","669e48aa":"get(uint256,uint256)","669e6684":"_rebalanceTree(bytes32)","669eb768":"registerDonation(uint32)","669ee827":"RegisterDevice()","669ef86d":"getPriceByDayIndex(uint256)","669f6d80":"bountyRewardPercent()","66a03098":"receivedFrom(address)","66a0b81e":"safeMode(bytes4,bytes1,address)","66a11615":"revokeMintingManager(address)","66a192c6":"CurrentRate()","66a200ba":"TokenDemo(uint256,string,uint8,string,address,address,address,address)","66a23c01":"ETOKEN2()","66a26419":"cancel(address,uint256,address,address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","66a39350":"FAIL_FLAG()","66a3de2a":"_safeTransferFrom(address,address,uint256,bytes)","66a4b6c0":"usdDecimals()","66a51d1d":"UcCoinMinimumSellingChanged(uint256,uint256)","66a659b3":"readcolorXteam()","66a65c99":"getLegacyCount()","66a6cf1a":"mateWithAuto(uint256,uint256,uint8,bytes)","66a78b40":"depositAgent(uint256,uint256,string,string,uint256)","66a78e6c":"maxReward()","66a857f4":"ChangeTokenSymbol(address)","66a8c45b":"StarmidFunc()","66a908a5":"foundersTokensUnlockTime()","66a9234c":"addPhase(uint256,uint256,uint256)","66a92cda":"releaseOnce()","66a9bc0d":"teamTokenVesting()","66aa01ca":"permittedAddresses(address)","66aa56c5":"initiate()","66aa6f26":"payFee(bytes)","66aa9aff":"adminDeposit()","66ab4e5f":"Grid(uint256,uint256,uint256)","66ab5290":"transferSgaToSgnHolder(address,uint256)","66ac777e":"rotate_right(uint32,uint32)","66ac8075":"payoutPrizes(address[])","66ad3ffc":"building(uint256)","66ad484c":"newfirst_player(address)","66adeb3a":"SmartToken()","66adeb8c":"transferBalance()","66adf835":"_setup(address,address,uint256,bool)","66adfbbd":"sgc(uint256)","66ae924b":"toUint16Throw()","66ae935f":"balanceEqual(address,uint256,string)","66aecfa7":"bankToCharm(string,uint256)","66aee0fc":"investorsProfit()","66aef95b":"increaseTimeIfBidBeforeEnd()","66af3914":"getTradeIsOpen()","66af77ca":"totalMarks()","66b005ee":"QueryUnlockTime(address)","66b0a536":"MomaCoin()","66b10f70":"learnMove(uint256,uint256)","66b3e4b9":"stageMarketing()","66b3f6bf":"invested(address)","66b3fe66":"setTimeScale(uint256)","66b42dcb":"register(address,string,uint256,string)","66b43da5":"computeSha3(uint256[8])","66b46149":"fstring(string)","66b464de":"goldBoxPrice()","66b4ad74":"KudanilToken()","66b52b93":"addMeByRC()","66b567da":"getNumMyHatchingUnits()","66b5e2d8":"getCountMembers()","66b625d4":"bountiesAllocAddress()","66b62bde":"isSetTeamWallet()","66b668de":"RFUDToken()","66b68516":"Finalized(address,uint256)","66b728d5":"getVoteOptionId(uint256,string)","66b7afbf":"init_level()","66b7d5c6":"receivedWais()","66b847e5":"assertQuantity(uint256)","66ba2670":"setOriginalPriceGen0()","66ba707f":"ConsultaRegistro(string)","66bab099":"getCurrentSupplyVote()","66badf4b":"BITCOINGAM()","66bb28be":"_transferMultiple(address,address[],uint256[])","66bb83b6":"batchlimits()","66bc0d6d":"withdrawFundsAndStartToken()","66bcc860":"TransferSiteReg(address,uint256)","66bd6ff6":"DecentralizedExchangeHotPotato()","66bd78fd":"getBalanceContract()","66be24ba":"blockUntil()","66bea821":"sendSupplyTokens(address,uint256)","66c0276e":"CryptonewsIndonesia(uint256,uint256)","66c0e5e0":"revealPhaseMinSecondsWaitForReveals()","66c14e0a":"dropCount()","66c2355c":"requestNameChange(string,string)","66c2aa0e":"getStackholderTransactionCount(bool,bool)","66c2ae95":"setHgtRates(uint256,uint256,uint256,uint256,uint256,uint256)","66c2d620":"getTot(uint256)","66c2d6a0":"BettingToken()","66c313c6":"ETHER_THRESHOLD()","66c31f12":"emitUserBinded(uint256,address,bool)","66c376a1":"setResult(uint32,int8,int8)","66c42517":"refundToken(bytes8,address,uint256)","66c5c4a0":"unfreezeAll()","66c5cdf8":"updateTotal(uint256)","66c618d4":"sameWhiteList(address,address)","66c630bc":"honourWhitelistEnd()","66c71952":"setDiscountPercent(uint256,uint256)","66c76592":"_raffleDraw()","66c7d1ed":"RozelCoin(uint256,string,string)","66c7fb77":"generateDeed(string,bytes)","66c82de8":"ContributorPool(address,uint256,int256,uint256,int256)","66c89a13":"getAssetEmmiter(uint256)","66c91053":"doubleTransfer(address,address,address,uint256,uint256)","66c99139":"trans(uint256)","66c9bc38":"etherExchangeLikeCoin()","66c9d697":"executeVerdict(bool)","66ca2bc0":"sendSignal(bytes32)","66cab1f3":"isSponsorshipRefunded(address,uint256)","66cc6064":"getPayout(uint256,uint256,uint256)","66cd0663":"setCrowdsaleFinished()","66ce10b7":"publicKeyVerify(uint256,uint256,uint256)","66ce3bd2":"walletBalanceOf(address)","66ce5c52":"minWeiToPurchase()","66cf058a":"endIcoSaleRound2()","66d003ac":"recipient()","66d10688":"getBoughtTicketCount()","66d11c1a":"ContractAddress()","66d12fad":"getStakeInOutcome(bytes32)","66d16cc3":"profit()","66d1cac9":"updatePost(uint256,string,string)","66d29324":"defrosting()","66d2da12":"setUser(address,address,string,string,bytes32,uint256,uint256,uint256[],string,string)","66d38203":"setup(address)","66d39035":"getContribution(bytes32,bytes32)","66d42b3f":"Betting(uint256,uint256)","66d49bab":"updateTotalSupply(uint256)","66d598f0":"E18()","66d5c8ed":"node_left_child(uint256)","66d5eb9b":"openZoneShop(bytes2)","66d76bb2":"rateETH_ROK()","66d7ffde":"left24(uint256)","66d8c463":"reveal(bytes32,string)","66d8d040":"dividendsRightsFixUpdate_(address,address,uint256)","66dacc48":"afterFirstRefundRoundFundsReleaseDenominator()","66db11e7":"nodeExists(bytes32,bytes32)","66db2a59":"competitorPAY(uint256)","66dc860a":"getBreedingFee(uint40,uint40)","66dd3bc0":"terminateAccount()","66de5a4f":"createWorkerPool(string,uint256,uint256,uint256)","66de6fa4":"isReachedLimit()","66de84ec":"withdrawBonus()","66df8fe6":"secondStageTotalSupply()","66e13d36":"stakeForWithLockup(address,address,uint256,bytes)","66e144f9":"Futurescoin()","66e159b8":"CreatedNIMFA(address,uint256)","66e16aff":"mdbToken()","66e1aa99":"assignCertificate(address,string,string,string,string)","66e1cebd":"getStakingGains(uint256)","66e20b51":"crowdsourcers()","66e20e77":"priceNumerator()","66e23276":"ADVISERS_SUPPLY()","66e264be":"p2Of(uint256)","66e305fd":"isEligible(address)","66e34dc6":"registerUsername(bytes32)","66e3c230":"callLibSet2(uint256)","66e3cb68":"upgradedFrom(address)","66e3e5e4":"contractTokenBalance(address)","66e41cb7":"test2()","66e41cd7":"GetTime(uint8)","66e4f8c8":"getLastSpinOutput(address)","66e5cb50":"stopTransfer(uint256)","66e61a31":"outProjectBinding(uint256,address,address)","66e65eb1":"checkLocked(address,uint256)","66e6c8af":"authorise(address)","66e7107e":"SCARABToken()","66e722b0":"SecurityToken(string,string,uint256,uint8,address,uint256,uint256,uint8,address,address,address)","66e72baa":"transferWithLock(address,uint256,uint256,uint32)","66e7ea0f":"incBalance(address,uint256)","66e84652":"resetContribution()","66e8a4d7":"testGetBonus()","66e8cd81":"allBalances(address,address[])","66e98c31":"createCoin(string,uint256,uint256,string,string,address)","66e99a11":"lxhcoin4()","66e9b336":"removeReturnableToken(address)","66eb463f":"changeRootAdmin(address)","66eb50b2":"startLeaderboard(uint64,uint64,uint64)","66eba165":"PlaceBuy(address,address,uint256,uint256,uint256)","66ec60c7":"getFineLevelOfUsername(string)","66ecc9e2":"require_limited_change(uint256)","66eccfbf":"token_batchTransfer(address,address[],uint256[])","66ecded4":"setRelativeAddress(address)","66eec532":"getSellerFullInfo(address)","66f0a3f6":"getTokenRemain()","66f1e438":"getMiniPoolEdit_7()","66f2d859":"setSellRatio(uint256)","66f36b34":"Birth(uint256,string,address,bytes32)","66f3882f":"setIcoPhase(uint256,uint256)","66f3a2b8":"totalPreBuyers()","66f4e1c7":"MAX_GRANTEE_TOKENS_ALLOWED()","66f516fe":"changeTimeAndMax(uint256,uint256)","66f5f332":"Log1_fnc(address,bytes32,uint256,string,string,uint256,bytes1,uint256)","66f7d730":"WithdrawalEnabled()","66f7d9da":"accumulatedHours()","66f83e91":"getRandom(address)","66f84d30":"setParent(uint256,string)","66f8bbe0":"DMarketToken(address,uint256,uint256,uint256,uint256)","66f8e86f":"MLQD()","66f928d3":"updateShareRuleGroup(uint256,uint256,uint256,uint256,uint256)","66f9785a":"EtherShuffle(address[])","66f99a11":"setOpenValueGasLimit(uint256)","66f9c99e":"setUpgradeAddress(address)","66fa2be9":"tickets(bytes4,uint256)","66fa6efb":"unverify(address,address)","66fb3831":"VALUEBACK()","66fbc154":"earlier()","66fc0dd7":"walletTeamAdvisors()","66fc6937":"lastCharge(address)","66fcf285":"distributeMulti(address[],uint256[])","66fd3cd8":"commit(bytes)","66fd555f":"Comission(address,bytes32,uint256)","66fda50b":"removeOracles(uint256,address[])","66fe16e9":"emitIssued(address,uint256)","66fe25a0":"IcoEndDate()","66fe825a":"Gruptecoin()","66ff8201":"GetChipNum(address,uint32)","66ffebb8":"changeHolderPercentage(uint256)","67013719":"enableControl(bool)","67016c14":"issueTokensToBuyer(uint256)","6702416e":"addDoctorTo(address,string,string,string,uint8,uint8,uint8,uint8,uint8,uint8,uint32,uint32)","67025dcf":"transferAll(address,uint256[])","670396e7":"CashToken()","6703c429":"ETCReturn(address,uint256)","67043001":"isEIP20Token()","67043cae":"registerOffChainDonation(address,uint256,uint256,string,bytes32)","67061a55":"teamSharePercent()","67069544":"issueAssetToAddress(bytes32,uint256,string,string,uint8,bool,address)","67069916":"OwnershipTransferCanceled()","670733b5":"setBitwordsWithdrawlAddress(address)","670744cf":"_createCobeFriend(uint256,uint256,uint256,uint256,address)","6707b8aa":"BestEtherSupply()","67080f6e":"testThrowsSetEnforceRevisionsNotOwner()","67084eb3":"houseBalance()","67085633":"getMyGenes()","67085dab":"bnCheck()","6708cc63":"becomeKing()","6708f91d":"Rurchase(address,uint256,uint256)","6709b337":"Token(string,string,uint256,bool,bool,string,string,uint256,uint256,uint256,bool)","670a1e6f":"getEligibleAmount(address,uint256)","670be445":"initialEPXSupply()","670c00d0":"getMotPrice(bytes32)","670c1500":"CoinCool()","670c314e":"TimeFinish()","670c3ac2":"priceUpdateTimeline()","670c884e":"setup(address,uint256,uint256,uint256,address)","670ca672":"NTVToken()","670d14b2":"keys(address)","670da6f8":"getOwnerPetCount(address)","670e2e7f":"DatumGenesisToken()","670e64c8":"setWhitelistingAgent(address,address,bool)","670eedba":"strConcat(string,string,string,string,string,string,string)","670f4bd4":"releaseDivTokens()","670f8755":"_0xZibitToken()","670fe0ff":"TootrTokenSale()","6710e801":"_createRabbit(uint256,uint256,uint256,uint256,uint256,address,uint8)","6712e0be":"tokenGenerationMin()","67130e8c":"getWeiOwed(address)","6713263d":"crowdsaleTokens()","6713640d":"TierStarterDividendAddress(address)","6713e230":"isTrusted(address,address)","67141690":"getEnabledTokensInformation()","67141732":"createContractCity(string)","6714cfe2":"GetLuckyGamblers(uint256)","671528d4":"isCapped()","6716a692":"setDVIP(address)","6718484f":"create(uint256,address,string,string)","67194bee":"AirdropClaim()","67198207":"EARLY_CONTRIBUTION_DURATION()","671baae3":"Sepp(uint256,string,uint8,string)","671bd594":"setBigPrice(uint256)","671bdc3d":"PrimebankCoin(uint256,address)","671c7d68":"test02()","671d3315":"bookAfternoonVisit(uint256)","671d6429":"setTreasurer(address)","671dacdc":"CalculateSqrt(uint256)","671de554":"mintPreICO(address,address,uint256,uint256,uint256)","671e4405":"isFinalize()","671ec66c":"setDomainOwner(bytes32,address)","671fa0a0":"Inscription(string)","6720ceb1":"sendPayment()","6721ebe2":"airdropThroughput()","67220fd7":"adminClaimAirdropMultiple(address[],uint256)","67221df0":"isPendingA(address)","672324ac":"cashInRate()","672350bd":"getFreeExtension(bytes32)","6723c20d":"testTrip(uint256[3])","6723eab5":"batchCreateETHCardAsset(uint8[],uint256[],uint256[],uint256[],address[])","67243482":"airdrop(address[],uint256[])","67249254":"mintWithLock(address,uint256,uint256,uint256)","672566a0":"Upgradeable()","6725bed6":"CCH_RE_2()","67268bbc":"removeTransfer(uint256)","67272999":"claimETH()","672781ed":"priceClaim()","6727cc2d":"removeWhiteListAddress(address[])","67286a83":"getGoldStatusAuditcount(address)","6728b711":"RealAssetToken()","672acef0":"participantCapTier2()","672c8dca":"ownerTakesAllNotClaimedFunds()","672ce152":"HodlBox(uint256)","672d2921":"zasxzasxqaq()","672e06d0":"withdrawForOneYear()","672e20fe":"allocateRemainingTokens(address)","672f412c":"setAllowDisbursePaymentWhenPaused(bool)","672fcd82":"createBet(uint256,bool)","67301dde":"IWWEE()","67316b3f":"addWhiteListAddress(address[])","67337d1a":"ReporterTokenSale()","673441db":"TokenAltPurchase(address,address,uint256,uint256,uint256,string,string)","673448dd":"isApproved(address)","673478c3":"getAssetIdOwnerIndex(uint256)","6735a1cc":"previousStage()","67374f3a":"setTargetWallet(address)","673756d8":"SOFT_CAP_EUR()","6737c877":"setAttributes(bytes)","6738426c":"enablesTransfers()","67387d6b":"testThrowCreateWithNonceExistingNonce()","67389944":"voteB(uint256)","67389d17":"SuppliedTo(address,uint256)","6739afca":"network()","6739f3a4":"getAuctionDuration(uint256)","6739fc52":"testOrd()","673a2a1f":"getPools()","673a456b":"setNumActiveTranscoders(uint256)","673a5ae3":"Sale(address,address,uint256,string,uint8,string,uint256,uint256,uint256,uint256,uint256,uint256)","673a7e28":"updatePrice()","673b57e9":"deauthorizeProvider(address)","673c0e53":"readAllFrzAcc()","673cd98e":"total_amount()","673df0e0":"horseMaster()","673f3807":"sell(uint256,uint8)","673fa8c9":"APaymentToken(uint256)","674106d8":"checkDragon(uint256)","67412045":"balanceOf(address,uint8)","6741629c":"wasEmergencyCancelled()","6741953e":"getPOOL_edit_15()","674197f8":"getBuyRequestCount()","67426ba4":"callgDistributed()","67441f52":"LOOMIA1()","6744ea49":"GetEscrowTokenSymbol()","67457022":"rmul(uint256,uint256)","67460c25":"createWikiPage(string,string,string,uint256)","67460d58":"setGate(uint256,uint16)","67465daf":"StorageExample()","6747830d":"calculateRequiredFillingAmount(uint256)","6747a33f":"accrualDeposits()","6747f09e":"cashOutFallbackAmount()","6748a0c6":"releaseFinalizationDate()","6748a106":"powLimit()","674942eb":"VOTING_PREPARE_TIMESPAN()","6749ec48":"issueLicenseNFT(bytes32)","674a1574":"claimedIdeas(address)","674a62d0":"coinIssuedMkt()","674aaa44":"transferToAnotherAddr(address,address,uint256,bytes32)","674b3bd5":"originalArtwork(bytes32,address)","674c20a1":"test0_firstInterval()","674c5eaf":"setReceiver3(address)","674c85a7":"mdiv(uint128,uint128)","674cc1f5":"getMarketHashes(bytes32[])","674d4691":"_getWeiValueOfTokens(uint256,bool)","674e4e0e":"extendUnlockDate(uint256)","674ea3cb":"closeAgreement(bytes,uint8[2],bytes32[2],bytes32[2])","674ebb3e":"cancelKimAuction(uint256)","674ed066":"minQuorumDivisor()","674ef6c3":"initializeTier(uint256,address)","674f220f":"previousOwner()","6751676f":"recentBuyers(uint256)","6751ad3d":"_insertAttackLog(uint256,uint256,uint16,uint32,uint8,uint32,bool)","67524d62":"setJackpotThreshold(uint256)","67532c8e":"sendPurchase()","67535a42":"setEthmainAddress(address,address)","6753a3c1":"setMajorEvent(string,string,string)","6753fc59":"PurchaseAdmin()","67541efa":"AlfaCoin()","67546967":"EthBtcEscrow()","6754ff3a":"addcrontime(address)","67550a35":"vox()","67551857":"clearAllRequest()","675518b8":"mintAndCreatePreIcoBitex(address,address)","67558b3a":"AzlanToken()","67561d93":"authorizeContract(address)","675629fe":"appendOnly()","6756b1ae":"GameTable()","67571f68":"handlePayouts_(uint256,uint256,uint256,address,address,address)","67578f65":"users(bytes20,uint8)","67579ad4":"currentwealth()","675879d5":"GrantedOrganization(bool)","6759fac0":"CatsToken(address)","675a4633":"dnaMixer()","675a54b9":"getHalvingOf(address)","675a690c":"setBleachDailyLimit(uint256)","675abc96":"corporateSupply()","675ac67a":"escrowCount()","675b09cd":"Niobium()","675c3048":"getTxTimestampPaymentMCW(bytes32)","675cef14":"etherMinimum()","675d43cf":"buyPixel(uint16,uint16,uint24)","675d9c35":"XRT()","675df16f":"updateSubmissionGasPriceLimit(uint256)","675ec1cf":"minimalUSD()","675f6537":"settleBet(bytes32)","675f6d1e":"callBackVariations()","675f818e":"disapproveInvestor(address)","675f9ad9":"initStages()","6760115a":"BuyerFund()","67602c59":"burnSequence()","67608d38":"ICO_TOKEN_SOFT_CAP()","676095b2":"profit2eggs()","67630f43":"buyNapkins()","6763150e":"setKyberAddress(address)","67636574":"consumed()","6763da56":"dish(string,address)","67642794":"_withdraw(address,uint256,bool)","676452f4":"t3tokenExchangeRate()","6764765d":"burnMyTokens(uint256)","67653f3b":"test_threeInvalidEqUint()","6765b49b":"getPunishXPA(address)","67669e29":"rocketIsLaunched(uint256)","6766d1ba":"getTimeUntilStart()","6766fafe":"disableTransferWhitelist()","676796b6":"releaseFounderCoins()","6767e368":"ValueTrader()","67682441":"UserUpdate(address,address)","6768893c":"AppHub()","6769d1f9":"soldToken()","6769eb46":"createMasker()","676a38d7":"get_current_price()","676a675a":"changeJohanNygrensAddress(address)","676aa496":"IbnzEtc20TestToken()","676b064e":"allForPopulate(uint256)","676b57ad":"getNays(uint256)","676c0d77":"updateTokenPrice(uint256)","676c902f":"drawNumbers()","676cb63d":"getMintingFinished()","676cdcd6":"BurnExecuted(uint256,address,uint256)","676cfec6":"rocks(uint256)","676d1d9c":"WEI_TO_COGS()","676d20ba":"WorkerToken(uint256,string,uint8,string)","676d23a5":"isChangePriceLocked()","676d2e62":"migrationMaster()","676d7769":"test_curatorDoesNotVeto()","676e2eb1":"_addDemoc(bytes32,address,address,bool)","676fc32b":"maximumTokensForThird()","67701187":"updateFighter(uint256,uint8,uint8,uint8,uint8,uint32,uint64,uint16,uint64,uint16,uint16)","6770260e":"ContributionMade(address,uint256)","67707337":"CryptocarToken()","6770da62":"_stealCardWithSocialIdentity(uint256,uint256)","67716abc":"learnFee()","677170e1":"_span(address,address)","677342ce":"sqrt(uint256)","6773b75f":"propertyIndexToApproved(uint256)","6774f8e1":"getMonarchyController()","67756fe9":"depositPayment(address)","6776ddd0":"currentHodler()","6776e56a":"validateProposedKingdomName(string)","6777d177":"icostarted()","6777e4eb":"dollarMultiplier()","677885d3":"BITIFEX()","677913e9":"setAmount(int32)","677978ec":"increaseTokenCap(uint256)","6779da43":"setAwardTokens(bool)","677a7444":"Votaciones(bytes32)","677a7735":"Shares(bytes32,bytes8,uint256,uint256)","677a8870":"TeamWallet()","677ab197":"processContribution()","677ab667":"INITIAL_STARTTIME()","677b1f0d":"_buyTokensFromSystem(uint256)","677ba3d3":"onTokenTransfer(address,address,uint256)","677bcb89":"regularMinPerPerson()","677c102d":"getHostOrders(address,address)","677cee54":"SafeConditionalHFTransfer()","677e2dc4":"setDailyPrice(uint256)","677e2ef2":"getReplyFee(uint256)","677e6fa4":"betOnColumn(uint256)","677ebf2c":"InvestmentAsset(address,address,address,string,string,uint256,uint256,uint256,address)","677f768d":"isOnTrading(uint256)","677ffb0d":"exerciseLong(address[2],uint256[8],uint8,bytes32[2])","6780a311":"transferStop()","6780b32e":"moveAccount(bytes32)","67814109":"_mintTimelocked(address,uint256,uint256)","6781cc04":"addPolicy(uint8,uint256[],uint8[])","678212d9":"tokensAuctioned()","67821686":"setETHUSDRate(uint256)","67823a4a":"limitDateCrowdWeek2()","678377d2":"core(address,uint256,address)","67845835":"Irapid()","67845daf":"claimTokensERC777(address,address,address,uint256,uint256,bytes,uint8,bytes32,bytes32)","67848d9c":"PayEther(address,uint256,uint256)","6784b075":"removeValidContract(address)","6784ccb7":"Deceum()","67854643":"getGenerationMemberLength(uint256)","6785744d":"phase1Price()","6785a8f6":"getCandidateIndexArray()","6785b500":"getChannelsAddresses()","67863c07":"earlybird()","6786ed0e":"setPriceRate(uint256)","6787416d":"NRM()","6788317a":"UnitySale(address,bool,uint256,uint256,uint256,uint256,uint256,uint256[])","678886b4":"updateTokens2PerEth(uint256)","678892c0":"rand_num()","67899248":"processKick()","678a1013":"monsterNFT()","678a6baf":"ROUND_3_PRESALE_BONUS()","678a7dca":"setShareFee(uint8)","678ae6a1":"updatePools(bytes32,uint256)","678bbf24":"getEarningsAmountByGoodsIndex(uint256)","678d2204":"shouldFail()","678d6eff":"createFuel(uint256)","678d9758":"setTile(uint256,string,string,uint256)","678dd961":"getProviderClosed(uint256)","678ee795":"ComputationService()","678f4467":"allocateTokenForTeam(address,uint256)","678f7033":"set_percent_reduction(uint256)","679019ba":"freezeDeliverMultiStandalone(address[],uint256[],uint256[],uint256,uint256)","67907404":"recruitNarco(uint256,string,string)","6790d2b5":"getRoomInfo(uint256)","6790f3fe":"getAccumulatedDistributionPercentage()","67923240":"hatchsubscribers(address)","6793c8e1":"currentMilestone(uint256)","6793d383":"registryContractAddress()","67946ea4":"getIdMax()","67955ffa":"maxGIRL()","679577a5":"getEmployerFeedbackOn(address,uint256)","6795dbcd":"getAddress(bytes32,string)","67975213":"AddSWAndClaim(string,string,bytes32,bytes32,bytes32,string,bytes32,bytes32,address,uint32)","6797b106":"strikePricePctX10()","6799c0e0":"vpe_per_Keos()","6799d737":"releaseForEcosystem()","679a7a46":"WhoisOwner()","679aefce":"getRate()","679b4567":"preicoStartDate()","679b948b":"switchSplitBonusValue(address,bool)","679b9935":"setLeagueRosterContractAddress(address,address)","679c0d40":"invariantBroken()","679d0ecb":"getMetForEthResult(uint256)","679d38e0":"selfdestruct()","679dffb4":"getProfit()","679e1149":"AcoraidaMonicaWantsToKnowTheNewAnswerHash(bytes32)","679e5977":"EventRemoveAdmin(address,address)","679ebf1a":"transferTicket(uint256,address)","679f4d63":"CEEDCOIN()","679f699e":"EOSERC20(uint256,string,string)","679fecd6":"refillArray(address[],uint256[])","67a09c23":"payment(address,uint256)","67a0a550":"_cancelOrderWithMerchant(string,address)","67a19b20":"withdrawEthMaker(uint256,address)","67a1b7dd":"addTicket(uint256,uint256,uint256)","67a1bd55":"withdrawStuck()","67a1d653":"YOO_UNIT()","67a1f526":"curatorWrite(uint256,bytes32[])","67a2072c":"setEtherHolder(address)","67a2534b":"test(address[5])","67a26cbc":"DuqueBrewingCompany()","67a27811":"BonusGranted(address,uint256)","67a3eb65":"totalHardCap()","67a449b8":"getLastRoundData()","67a4e7c4":"isDecentBetToken()","67a52fdb":"purchaseGold()","67a59d91":"scheduleCall(address,bytes,bytes,uint256,uint256,uint8)","67a5cd06":"drip(address)","67a6ae62":"TOKEN_RATE_25_PERCENT_BONUS()","67a7390d":"fundTransferred()","67a7804b":"influenceByToken(uint256)","67a884e5":"latestBidder()","67a88f78":"createBitcoinAddressPrefixTask(bytes,uint256,int256,uint256,int256,address)","67a9c971":"tgrSettingsAmount()","67aa23e2":"getTicketsByOwner(address)","67aa50ae":"updateBrokerVerifierContract(address)","67aa863f":"setXto2()","67ab263a":"thisIsTheEnd(address)","67ab4381":"UnConf(string,address)","67ab5486":"GET_MAX_UINT256()","67aba225":"sellableToken()","67acd805":"lowerMinWager(uint256)","67ae9e8f":"hybridizationList(uint256)","67af1c81":"getRoundIndex()","67af1cff":"ethRec(uint256,uint256)","67af26fb":"transferOtherFrom(address,address,address,uint256)","67aff484":"setUserRole(address,uint8,bool)","67aff919":"autoreleaseInterval()","67b07d48":"entangleQuanticCloudIOTData(uint256)","67b0e070":"FaceTech()","67b14a21":"getProposal(uint16,uint16)","67b16407":"buyCup()","67b16cd6":"getRealRndMaxTime(uint256)","67b172c9":"Bloxxor(address,address,address,uint256,uint256,uint256)","67b1f5df":"setExchange(address)","67b21506":"claimTokenReserveDevelop()","67b220a5":"unblock(address)","67b26cab":"getLastMaxInvestments()","67b327fa":"proposeMilestones(bytes)","67b40639":"Dain()","67b50af9":"gasAmount()","67b5496a":"loseWager(uint256)","67b55bf9":"getClickMetadata(uint256)","67b65656":"setStateStartTime(bytes32,uint256)","67b78d00":"fromHexChar(bytes1)","67b7a4aa":"START_PRICE_IN_CENTS()","67b7c034":"on()","67b7d525":"getBlockPointer()","67b830ad":"fillOrder(uint256)","67b886e8":"left97(uint256)","67bb474f":"allowBundling()","67bb6d63":"maxWiteList()","67bc480e":"MYSTERYCLASSICCOIN()","67bd15e3":"contractInitializationTime()","67bd69a6":"getLastDuel2()","67be0854":"partyHash(address,address,address,address)","67be5eac":"claimLeftTokens()","67be97a5":"BYToken()","67bea493":"whitelistedPools(address)","67beaccb":"scheduleCall(bytes)","67bfc445":"AddNewChallenge(uint256,uint256,uint256,uint256,uint256,bool,string)","67c21fe5":"setFiscalVerify(uint256,bytes32)","67c25a14":"TeamCreated(uint256,uint256[])","67c281a9":"validateContentHash(address,uint256,bytes32)","67c2a360":"authorizeUser(address)","67c33c80":"getInt8FromByte(bytes14,uint256)","67c353b3":"LKCTotalSupply()","67c36757":"IranToken()","67c3a6d9":"Khatamor()","67c3ad8e":"burnStake(uint256,address)","67c3e25e":"revokeAccessDeploy(address,address)","67c45872":"ZzStandardToken(uint256,string,uint8,string)","67c51be7":"viewTokensSold()","67c5d6b1":"multihash(bytes32,string)","67c623cf":"getTokenMetaData(uint256)","67c6e39c":"convert(address,uint256)","67c7f3a8":"setBwValidCaller(address)","67c84919":"issueByPartition(bytes32,address,uint256,bytes)","67c9b017":"getEthPrice()","67c9d266":"freezeUntil(address,bool)","67ca1fdf":"market_communityStorageVault()","67ca2298":"updateTokenName(uint256,string)","67cab29d":"testGetAbiVersion()","67cb103a":"PartnerUrl()","67cb61b6":"getChoice()","67cb9316":"get_header(uint256)","67cc4882":"TokenHolder()","67cd3f64":"UNLOCKSTART()","67cd5323":"PUBLIC_SALES_SPECIAL_USERS_RATE()","67cd64dc":"LENDXCOIN()","67cdbe8f":"newShip(uint16,uint256,uint256)","67cdc1c2":"percentageToTeamEthContract()","67ce38fb":"Vertex_Token(uint256,address)","67ce940d":"getOverhead()","67cf17c2":"transferPrimordialTokenFrom(address,address,uint256)","67cf7d9c":"createTeamTokens()","67cf91c9":"lastKickoffDate()","67cfdfc9":"getBrokerIncoming(address)","67d0661d":"doPause()","67d13f27":"receiveFromVendor(address,bytes32)","67d15775":"PromToken()","67d22967":"set_iconiq_pre_kyc_bonus_numerator(uint256)","67d326ef":"finalizeFundAddress(address)","67d3d0ec":"changeEthBalance(address,uint256)","67d3eff4":"setTeamWallet(address,address)","67d41253":"secondCheckpoint()","67d42a8b":"release(bytes32)","67d49909":"secondWinnerTimestamp()","67d4e98c":"RemoveShare(address,uint256,uint256)","67d4f541":"window1TotalSupply()","67d5fae1":"getPremiumCount()","67d6bcbf":"distributeBonusTokens(address)","67d6d142":"getPI_edit_19()","67d96c24":"compensatePreSaleInvestors(address[])","67da2831":"revealHiddenPosition(uint32,int64,bytes16)","67da299b":"mcrAmmountForGas()","67da7b7a":"LabCoin(uint256)","67dbaf93":"updateValueAndBurn(uint256,uint256)","67dbf587":"Bridge(uint256,uint256,address,address)","67dcec06":"WealthInternet(uint256)","67dd1730":"destPrecision(address)","67dd74ca":"buyTicket(uint256)","67dd7bb4":"tradingLocked()","67de698d":"adjustCap()","67de80db":"createMultiple(uint256[],uint256[],uint256[],address[],uint8[])","67de81e8":"fundSucceeded()","67deced2":"checkIn(uint256,string)","67df1187":"buysubscribers()","67df5189":"archiveCrowdsale(uint256)","67dfe2d3":"addEthForSell()","67e04a22":"initInviteAddr(address,uint256)","67e06858":"Add()","67e0badb":"getNum()","67e0d78f":"sendFundHomeAmt(uint256)","67e13ee0":"getDeveloper(address)","67e1aee9":"setStage1()","67e1c253":"getMyInviteCode()","67e22888":"bigMoney()","67e2a647":"createAwardTokens()","67e2d2ad":"wireInvestment(address,uint256,uint256)","67e33df5":"SwftCoin(uint256,string,uint8,string)","67e404ce":"sender()","67e4373f":"CARIToken()","67e445d9":"FOMO()","67e476d7":"getPublicSaleInfo(address)","67e4ac2c":"getAssets()","67e4d41d":"ProdAToken()","67e523bb":"iPeso()","67e53196":"getAuthByCode(string)","67e54367":"battleContractAddress()","67e5f18c":"getCurrentTierRatePercentage()","67e6869d":"Withdraw_4()","67e6bc2e":"hash(string,uint256,uint256,uint256)","67e6bf06":"testPresaleRefund()","67e70e99":"setselfrdroplist(address[])","67e7646f":"removeDelegate(address)","67e817f4":"XOV()","67e828bf":"source()","67e874c0":"testMeta(uint256)","67e8cd0f":"bidOf(bytes32,uint256)","67e8d3d2":"bonus2()","67e8f6e1":"_multipleTransfer(address,address[],uint256[])","67e902c7":"right92(uint256)","67e902d9":"ListingBought(uint256,uint256,uint256,address)","67e933f6":"checkCustomer(address,address)","67e94ae0":"listingFeeInWei()","67e988e7":"bountyAvailabilityTime()","67e9b860":"CreateSwap(uint256,uint256,bool,address)","67ea2fa0":"tasksSize()","67ea43bd":"producedBronzeCaps()","67eae672":"sendCoinFrom(address,uint256,address)","67eb5fbe":"_train(uint256,uint256,uint256,uint256)","67eb9bab":"createIssuerContract(string,string,string,uint256,uint256)","67ec00c0":"depositFrom(string,address,uint256)","67ec68c4":"winningNumbersFor(uint256)","67ecb82d":"transferAndLock(address,uint256,uint256,uint256,uint256)","67eccc12":"founderTokenWithdrawnPhase2()","67ed583f":"addPresaleHolder(address)","67edad0a":"preSaleSecondEtherCap()","67ee5f09":"getTotalDividends()","67eeba0c":"dailyLimit()","67ef5a37":"debugStuff()","67ef5cb9":"setPrice(uint32,uint32)","67efbab1":"changeAssignedAdmin(address,uint256,string)","67f01c04":"ETH(uint256)","67f04688":"LIMIT_TRANSFERS_PERIOD()","67f06f78":"_checkPixelAboveRight(uint256)","67f12ecf":"validate(address,uint256,uint256[101][])","67f17405":"majorEvent(bytes32,bytes,uint256)","67f4224f":"eventPause(bool)","67f690b5":"hasRequestedForMigration()","67f6a258":"verifyCert(bytes32,bytes32,address)","67f718a9":"getTokenIds()","67f76863":"EnishiCoin(address[])","67f809e9":"DynamicPyramid()","67f83481":"isFounderUser()","67f8a8b8":"emergencyRefund(address,uint256)","67f8ca42":"usingCanvasBoundaries()","67f8df84":"playerId(uint256)","67fad28d":"RCLTOKEN(uint256,string,string)","67fbb7ba":"ownerAddSanSlotBatch(address[],uint256[])","67fbd289":"destroyTokens(uint256)","67fc1c6a":"validateProposedMonarchName(string)","67fd9da3":"multicastTransfer(address[],uint256[],uint256[])","67fdc2fe":"CricketToken()","67fdd509":"setIdRange(uint256,uint256)","67fdff26":"REQUIRED()","67fe5a0c":"accepted()","67fe6b47":"contractIsCompleted(string)","67fe6f0e":"checkOverExceed(address)","68019d75":"COCTokenBase(uint256,string,string,uint8)","6801db98":"devoteToCar(string)","6802c8a1":"FreeCoin()","6802ff77":"seedSupply_()","6803641c":"claimAllTokensForInvestor(address)","680478b1":"offerAsSacrifice(address)","68049361":"teamWallet_4()","6805b84b":"getPaused()","680660d4":"bulkAddCompany(address[],uint256[])","6806fdce":"assignGenesisAddresses(address[])","6807b84d":"Timebound(uint256,uint256,bytes32)","6807f752":"deleteBuyRequestInternal(uint256)","680819eb":"setRate(bytes32,uint256)","680a50cb":"shortenDeadline(uint256)","680add7b":"preSoldSharesDistributed()","680b0c5c":"tresholds(uint256)","680b3bdf":"migrateAll(address[])","680b5eba":"setHouseAddressTwo(address)","680b9d49":"getStakedAddresses()","680bd2f4":"RiseCoinToken()","680c26bc":"ATP(address,address)","680caed2":"Contract(address)","680def61":"market2019TokenCreated()","680e354a":"setSaleWindow(uint256,uint256)","680e6c9b":"receiveTokens()","680eba27":"GEN0_CREATION_LIMIT()","680f07b4":"getinitializeFeeWindowIdValue()","680f0938":"pay_dividend(string)","680f0eda":"set_harvest_amount(uint256)","680fb685":"OpenClose(bool)","6810e139":"shopSack()","68111cce":"getProduct(string)","6811444a":"getLastComment(address)","68116177":"getbalance(address)","681185ab":"_extractRawResource(address,uint256,bytes)","68118e95":"numberOfBlocksToEndLimitationPeriod()","6811c332":"distributeTeamTokens(address,uint256)","681232ad":"cosigner()","68125a1b":"isFriend(address)","681312f5":"setRoundLength(uint256)","6813947f":"contributionOf(uint256,address)","681478ab":"LegacyRepToken(address,uint256,address)","68155ec1":"transferTokens(address,address,address,uint256)","6815c19c":"DropdCoin()","6815c992":"grantPermissionP(address,address,bytes32,uint256[])","681617c7":"changeEscapeCaller(address)","68163034":"defaultTimeoutLength()","6816521a":"teamAllocation()","6816d920":"guaranteedBuyersLimit()","6816fcd6":"evMgmtDistributed(address,uint256,uint256,bool)","6817031b":"setVault(address)","68171516":"assetMethodIsAllowed(address,bytes4)","68177733":"MixinToken()","6817c76c":"mintPrice()","681833d9":"bindAddr(address,bytes)","6818da44":"setPlatformManager(address)","68197360":"getVotes(uint256,address)","681b23dd":"senderETH()","681b3314":"get_pre_kyc_iconiq_bonus_numerator()","681b5651":"setEthToUSDRate(uint256)","681b742f":"changeFund(address)","681c2ad0":"getTknOfferPrice(uint256)","681c3251":"addTotalSuply(uint256)","681c7808":"setMinTime(uint40)","681c7e2b":"VAAToken()","681cb449":"VIcoin()","681ce98a":"getNextPrice()","681d52de":"tokenImporter()","681d8345":"getATMTotalSupply()","681e237d":"CommonToken()","681e3356":"transferBankOwnership(address)","681f01f2":"IsICOOver()","681f3e6d":"getUsername()","681f6486":"SimpleBid(address,uint256,uint256)","681f8116":"makeTradeable(uint8)","681fd129":"addInvestContract(address)","681fe70c":"isEmpty()","68203417":"thirdStage()","6820f8d2":"setOneContract(uint256)","68213256":"crr()","68216ca7":"addNewBranchInEpisode(uint256,uint256)","6821928b":"AddAuthority(address)","6822abae":"getMinimumCallCost(uint256)","68234a27":"getTransactionDescription(uint256)","68240412":"calculateWeiForStage(int256)","68250963":"preICODeadline()","682594db":"totalAllowedFreeze()","68259880":"ChangeOfRules(uint256,uint256,address)","6825c843":"_address(uint256)","682677e8":"TunDrMahathirMohammad()","6826ebf8":"r(bytes)","6827b9db":"getMonsterGender()","6827e764":"devFee()","682806a0":"ICOContract()","68281708":"restrict(address)","68283f4d":"claimBets()","6828d549":"rejectContribution(bytes32)","68296073":"setSnowflakeAddress(address,address)","682a5e89":"returnDuration(uint256)","682a90d2":"Store(bool,uint256)","682a9449":"setCustomerService(address,address,bool)","682ab756":"LogItemRegistered(address,uint256,uint256,bytes32,bytes32,bytes32)","682b6706":"___Kill()","682b7100":"deleteRoom(uint256)","682baa3a":"HATCH_COOLDOWN()","682bc77e":"setStarterPackOnSale(bool)","682bea5c":"setCallTable(uint256,uint256)","682d1138":"failExecute()","682d3bb0":"pdfCertificateProof(bytes)","682e1bb0":"isSTOProposed()","682e60a9":"presses()","682ed9ea":"sanMaxAmount()","682f3d36":"OrderMatch(address,int256,address,int256,uint256,uint256)","68302467":"paySeller(uint256)","68306e43":"dividends(address)","6830cdc4":"getJobCount(address)","6831c169":"totalPayedOut()","6831e272":"mintTokens(address,uint256,uint256)","683328bf":"takePet(uint64)","6833716f":"ProofShrimpFarmer(address)","6833d54f":"contains(string)","6833f60d":"triggerPause()","68342b33":"ownerInfoOf(uint256)","683431e2":"SelfDesctruction()","68347fdf":"ICO_MIN_DEPOSIT()","68348dfe":"_newGame(bytes32)","6835df3e":"SFT_PER_ETH_BASE_RATE()","6835f32c":"build(bytes)","68365eb7":"NewProject(address)","683674dc":"disconnectOrderUser(address,address,uint256,address)","683799e6":"setMaximumPurchaseFraction(uint256)","6837ff1e":"newContract(address)","68381874":"Trade(address,uint256,address,uint256,address,address,bytes32)","68381b96":"getHighestUnitPriceIdxFromSell()","68388b80":"banAccounts(address[])","6838e7c5":"PrinzeToken()","68393a4c":"getBonusByTime(uint256)","683a6858":"Recoverable()","683ad727":"getDeed(uint256)","683b4184":"inflation_complete()","683cde49":"upgradeBalanceOf(address)","683cecc2":"addressFunc(address)","683d4a4b":"minWithdrawalCoolingPeriod()","683d69e4":"checkEligibility(bytes32,address,address)","683de015":"switchUpgradable(bool)","683e0bcd":"ethPriceInUsd()","683e2929":"getPSlotLength(address)","683e3451":"CioCoinERC20Token(uint256,string,string,uint256)","683e70b6":"createWhaleTokens(address,uint256)","683f7f27":"removeParticipant(uint256)","68402460":"scheduleCall(address,bytes4,uint256,uint256,uint8,uint256)","68404cd9":"setValueSome(uint256,uint256)","6840721d":"searchReport(string)","6840c67d":"vestPartnerEquityReserve()","6840f8e8":"returnEth(address,uint256)","68412058":"getRank06()","68412063":"distributeTokens(address,uint256,uint64,uint64,bool,bool)","6841f253":"currentRoundLocked()","6841fd27":"remining(uint256)","68428a1b":"saleActive()","68437b58":"bet_purchased(address)","6843aef9":"increaseLockReward(uint256)","68445ce1":"insertNodeBefore(uint256,uint256,address)","68447a55":"fetchFunds()","68447c93":"referrer()","6844ab43":"testControlCreateSameItemId()","68458fcf":"assignInitialAddresses(address[],address)","6845950f":"getScriptActionsCount(bytes)","6846187f":"farmItems(address[],uint256[])","684641b4":"cumulativeInverse(uint256,uint256,uint256)","684649a6":"createProxy()","6846fe64":"_sellCallToClose(uint256,uint256,uint256,uint256,address)","684876a1":"migratePlayerRoundsData(uint256,uint256,uint256,uint256,uint256)","6849cb9d":"transferIssuer(address)","684b369e":"everisumToken()","684b49f5":"PriIcoSale2(address,uint256,uint256,address,address)","684bd9d6":"getRemainCount(address)","684d63bf":"mintAuditApproval()","684d9a04":"quarterSecond()","684e2345":"AishaCoin()","684ecd59":"getData_9()","684edea8":"ponziPriceInWei()","684efc40":"TravelNationCoin(uint256,string,uint8,string)","684f19c9":"WorldCupFactory(uint256)","684fa447":"AppAdded(address,string,address,uint256,bool)","684fbfdb":"sinLimited(int256,int216)","68503cdf":"getAvailableBalanceByAddress(address,address)","68504158":"toggleTransfers(bool)","68507757":"faucetBB0()","6850fa6d":"onoff()","6853367f":"withdrawDevelopersCut()","68533a1d":"closeUndercollaterizedPosition()","68536341":"ratePerOneEther()","6853920e":"removeRole(address,bytes32)","6853e3a4":"setToKnown(address)","685485fb":"eth_sent()","6854df55":"scannedDiamondCaps()","6854f668":"buyDragoOnBehalf(address)","6855ded3":"WHITELIST_END_DATE()","685705ae":"getWeiValue()","68573107":"batchMint(address[],uint256[])","6857ab40":"seq()","6857cb06":"manualTransfer(address,uint256)","68581ebd":"getJobs()","68583bc0":"FC1Token()","68586e57":"setPet(uint8,address,string,uint8,uint16,uint16,uint16)","6859274b":"checkMembership(bytes32,uint64,bytes)","6859d08f":"addToActiveGroup(address)","6859dc10":"rejectRequest(address,uint256)","685a73e0":"claimHodlRewardsFor(address[])","685adf5e":"ALDEToken(uint256,string,uint8,string)","685ae2a9":"itoEndTime()","685b2d8f":"transferPermissions(address)","685b47c7":"updatePresaleNumbers()","685c234a":"checkAuthorization(address,address)","685c60de":"transferERC23(address,uint256,bytes)","685ca194":"withdrawalAllowed(address)","685d1135":"recyclingRemainToken()","685e2486":"migration(address)","685e78fb":"SecondPriceAuction(address,address,address,address,address,uint256,uint256)","685ffd83":"registerNameXname(string,bytes32,bool)","6860dc1f":"isRefAvailable()","6860fd58":"Fees(uint256)","686174ec":"QQQTokenBase()","6861d3b8":"firstStageStartsAt()","68621711":"assetMeta()","68624bd7":"lockedValueOf(address)","68639a29":"setActivation(address)","6863d3c7":"CreatedIRC(address,uint256)","68649c8a":"setTiersInfo(uint8,uint256[],uint256[],uint256[],uint8[3][4])","68654ef8":"bonusBalanceOf(address)","68660b93":"updateDonateTokenAddress(address,uint256)","68664430":"supplyDAICO()","6866537d":"getCardPrice(uint256)","6866566a":"Priced(uint256)","6866da59":"_lockOrUnlockAmount(uint24,uint256,uint256,uint256,uint256,uint256,uint8)","686790e5":"freezeSignatureChecker()","6867edeb":"getBuyOrderPrices()","68690dd0":"NeedRefresh(uint256)","68699224":"offlineAdjust(uint256,uint256)","6869b20e":"saveToken(uint256)","6869fb30":"maxWeiTier0()","686b2812":"addWhitelistUsers(address[])","686b88cd":"calculateWinnerGameType1(uint256,uint256)","686caf04":"lastBlock_a1()","686d2d5c":"getCurrentBonusPct(uint256)","686d5e00":"unRegisterCampaign(uint256)","686da8ab":"UpdateRecord(uint256,address,uint256,bool)","686e2284":"isCosmosSale()","686e8aaa":"GetMoney()","686f21ba":"gainKarma(int256)","686f2c90":"collectAllFees()","686f4564":"redeemedCards()","686fa3f7":"getGameId(address,string,string,uint16,uint64)","68700891":"RLPReaderTest()","6870c65a":"InitialRateChange(uint256,uint256,uint256)","6870ef86":"getCurrentTokenFee()","68715a75":"GCCHToken()","6871819b":"getUserCollegeEducationDetails(string)","6871d26b":"addMeterPoint(int256,address,int256)","6872e300":"COPPER_AMOUNT_SKL()","68742da6":"withdrawFunds(address)","68750bbc":"sendReserveTokens()","6875b6eb":"changeRestrictions()","6875b746":"updateRelease(uint256)","6875c319":"escalateDisputeToMediator(uint256)","687711ec":"s25(bytes1)","6877dca7":"Token1_Transfer(address,address,uint256)","68788868":"decodedAmount()","6878ac7d":"applicableRate()","68794b87":"setState(string)","687981ac":"getValidatorIndex(uint64,address)","687a46c4":"upgradeQualificationByEther(uint256)","687a48a1":"getBurnedCarCount()","687bf382":"_useName(address,bytes32)","687c317c":"setTokensUsedForReinvestment(uint256)","687cc2fd":"preSaleTokensAvailable()","687cde1a":"tokenSelled()","687d493c":"EverOwnedTokens(address)","687d5aa9":"setBuyAllowed(bool)","687db864":"END_ICO_TIMESTAMP()","687e6b5f":"MavenCoin()","687e6f44":"withdrawEthers()","687f8427":"devCATDestination()","68802712":"get_hedge()","688057fc":"registerWalletForFeeSharing(address)","68808769":"backers(address,uint256)","6880ff5b":"secondReserveWallet()","6881385b":"payday()","6881f6f1":"minTradingStartTime()","688225d6":"onemonth()","688257e0":"SmartContractWorkshop(string)","688263d7":"largestPenisOwner()","6882d481":"priceStar4()","68832d14":"___proxyTarget()","6883477f":"canBePurchasedByEMONT(uint16)","688511bb":"timeoutBlock()","688521b4":"coinsIssuedTotal()","6885c572":"allowByDelegate(bytes8,bytes8)","6885edcd":"desiredPrice(uint256)","6885f63b":"TrustToken()","6886bf1c":"mostSent()","6886ce25":"ForkEthereum()","68873375":"CBRToken(uint256,string,string)","6887398d":"getContestTeamCount(uint32)","68879e5f":"RecoverySha3(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","68882b30":"buyCrab(uint256)","68888300":"updateAngelCardSeries(uint8)","68889db8":"setFreezingPeriod(address,bool,uint256)","68894a16":"changeMaxContribution(uint256)","68895979":"getUint256()","6889cf86":"icoOver5()","6889d646":"transferMoneyToOwner()","688a54dc":"ATxAsset()","688a7044":"CryptoRoulette()","688abbf7":"myDividends(bool)","688af37f":"QRL_Token()","688b410f":"sendTokenUpdate(address,uint256)","688b5c2b":"isMiningWarContract()","688ba636":"walletTeam()","688bf035":"calculateUSDcValue(uint256)","688cdba8":"ownerRate()","688cf404":"setAyantDroitEconomique_Compte_4(uint256)","688d3922":"isHardCapReached()","688d54b7":"getLLV_edit_34()","688dcfd7":"setProofType(bytes1)","688def07":"MMOToken()","688e69d8":"ownerPowerUpContract()","688f5ed2":"gracePeriodAfterRound1Target()","688fad5d":"updateIdentitySocialURL(address,bytes32)","68907360":"setRewardsContractHash(address,bytes32)","68915c14":"seedInvestors()","6891656e":"buyWithCustomerId(address,uint256,uint256,uint128,uint256,bool)","68927cd2":"isValidBNBContribution()","68934e54":"approveBurnDelegate(address)","6893cc22":"toUint(bytes32)","6893e8d2":"_setLimits(uint256,uint256)","6893f63f":"getTokensPerEth()","689490a0":"whitelistedAddresses()","68955fb1":"icoPhase()","6895adbb":"_addModule(address,bytes,uint256,uint256)","68963dee":"ICOMinTresholdReached(uint256)","68968564":"SaveYouAndMeToken()","6896a342":"ADVISOR_STAKE_ONE()","6896b999":"xConvertPrioritized(address[],uint256,uint256,bytes32,bytes32,uint256,uint256,uint8,bytes32,bytes32)","6896ef4b":"currentRoundIndex()","6896fabf":"getAccountBalance()","68970ab4":"Created(address,address,uint256,bool,uint256,string)","689786d0":"test_oneValidEqBytes32Message()","6897a1a2":"startingCostToPress()","6897c1b6":"PrepareToStart(string,uint256,uint256,uint256,address,address)","6897e974":"removeWhitelistAdmin(address)","689827b0":"modInverse(int256,int256)","6898730f":"eip20Transfer(address,address,uint256)","6898f148":"beforeSale()","6898f82b":"play(uint256)","68999d76":"exportTank(address,uint32)","6899d8c2":"recoverAll()","6899dac5":"finishVotingTeam(uint256)","689a4608":"Test20()","689a521d":"changeContractState(bool)","689b2d24":"AcceptsElyxr(address)","689b3e2d":"Moonraker(address,address)","689b732c":"FundValue(uint256,uint256,uint256,uint256)","689da08e":"dad()","689dcb02":"Buyin(address,uint256,uint256)","689e87c1":"GIRLBUFFERSIZE()","689effad":"BookingTimeUtils(address)","689f2456":"partial_refund()","689f3f99":"unclaimedPlotPrice()","689ffd82":"addressSalesSupply()","68a1e07f":"_currencyToToken(bytes,bytes)","68a287d8":"getTeamVault(address)","68a29a31":"balanceEthPrivate(address)","68a52509":"getLastOrderId()","68a52851":"setTokensContract(address)","68a596c7":"ownerToTokenIds(address,uint256)","68a59805":"setPayoutDistributionHash(bytes32)","68a67030":"finalizeSale1()","68a6b26b":"setWeiRaisedInPresale(uint256)","68a6e74b":"preICO()","68a72fba":"crowdTarget()","68a7d7ea":"setAgriChainData(address)","68a7e1c4":"setDelegadoDeEscuela(bytes32)","68a7effc":"getOrCreateCurrentFeeWindow()","68a7f6d6":"playerFastFlight(uint256,uint16)","68a8659d":"SellOrdersOf(address,uint256)","68a8c5eb":"WyvernDAOProxy()","68a958bc":"payrollSystem()","68a9674d":"depositFrom(address,address,uint256)","68a9de13":"changeEndtime(uint256)","68a9f31c":"secondOwner()","68aafcd9":"setUsageReportingAddress(address)","68ab3db2":"createDefaultGen0EtherDog(uint256,address,uint256,uint256)","68ab56ca":"get_bounty_count(uint256)","68abf22b":"BAC(uint256)","68acb7b7":"TOTAL_COMMUNITY_ALLOCATION()","68acfcbb":"changeLinkedAddress(address,address)","68ad1412":"registerUser(address,bytes32,address,bytes32,bytes32)","68ad6719":"valueChanged(string,string)","68aee9e8":"wed()","68af1378":"playerGuess(int8)","68af4971":"registerListening()","68afc7c4":"test_rewardPoolShare_isTranscoder()","68b017ec":"sarahtoken()","68b07ebb":"_getMaxAuctionSeconds()","68b0d82e":"TransferredGNS(address,address,uint256)","68b1a6d0":"GetBestWalletAddress(uint8)","68b2cee0":"removeAssetsOwner(address)","68b35396":"gemPerMiner()","68b43f38":"privateLockTime()","68b47d87":"SSOTHEALTH_FUNDS_ADDRESS()","68b49b78":"changeKey(address,address)","68b51ac7":"checkValidSignature(address,bytes)","68b5c351":"tokenTrueUSD()","68b670af":"wmulfloor(uint128,uint128)","68b6d55d":"potSize()","68b85aa5":"maxTimeout()","68b8c5a1":"numberOfAuthorizedPayments()","68b91201":"createInvestorTokenTimeLock(address,uint256,uint256,address)","68ba170c":"isRegisteredTranscoder(address)","68ba745c":"releaseTeamVested()","68bae934":"getAuctionItem(uint256)","68bba4d0":"HARD_CAP_T()","68bd6efa":"getContract(address,address)","68be7887":"getOrganisationByAddress(address)","68be8007":"_updateRegionOwner(address[16],uint256,address)","68be948d":"setRegisteringContractAddress(address)","68bee793":"LevelWhitelistedIICO(uint256,uint256,uint256,uint256,uint256,address,uint256)","68c14a61":"AirdropCentral()","68c197dd":"isWorkerPoolRegistered(address)","68c31649":"checkWithdrawAmount(address,uint256,uint256)","68c49cc9":"collectOtherTokens(address,address)","68c4cac6":"tokensPerEther1()","68c4eb74":"changeInvestorsAddress(address)","68c51f8e":"lhkjTNB()","68c64670":"RapidProfit(address)","68c646f3":"LifeFactor_i()","68c6b11a":"subtract(address,uint256)","68c6f45e":"issuedByStabilityBoard()","68c84260":"addEmployee(address,address[],uint256)","68c92b51":"doCall(address,uint256,bytes4,bytes32[])","68cbce31":"setWinner(uint256,uint256)","68cdafe6":"tokenTransfer(address,uint256)","68cdf759":"getReffAdd(string)","68ce77d0":"grant(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)","68ce90ac":"handlePayment(address,uint256)","68cf5cf8":"setAdvisor(address)","68cff8a9":"notEmpty()","68d06724":"weisSoftCap()","68d12938":"setDonatorReward(uint8,uint256[],uint8)","68d155a0":"remove_participant()","68d317f1":"buildGame(address,string,string,uint256,uint256,uint8,uint8,uint8)","68d324e7":"changeCrowdSale(address)","68d32aed":"getVerifiedHashID(address,bytes32)","68d3fb7b":"initRegister()","68d5a014":"reveal(uint256,uint8[5],bytes32)","68d5cb1a":"purchaseBuilding(uint256,uint256,uint256)","68d64514":"getRemovableIdArrayItems(address,uint256,string,string,string)","68d6a790":"timeOfreservations(address)","68d77366":"Coinlancer()","68d7e4b5":"addDeal(uint256,string,string,uint256,string,bytes32,string)","68d7f8d6":"nextPrice(uint256,uint256)","68d830ae":"get_unlock_time()","68d85d3e":"CloudexchangeCrowdsale(uint256,address)","68d88c25":"serviceRedirect(address,address,uint256)","68d89792":"setCatAttributeValue(uint256,uint256,string)","68d967dd":"changeDoublr(address)","68da480b":"maxWeightBonus()","68da5ee5":"guess(uint256[])","68dae6bb":"RoundClose(uint256,uint8,uint256,bytes32)","68db96a6":"whitelistBonusRate()","68dbc6c1":"fortune_bid(uint256)","68dc3926":"unchanged(address)","68dc9528":"giveTokens(address,uint256)","68dd43f6":"maxNumInterests()","68df0d53":"_removeTokenFromOwnerEnumeration(address,uint256)","68df4dda":"removeWhitelistedTokenAddr(address)","68df5ca4":"testMinReturn0WithoutReturn()","68e03bf9":"setEthEurRate(uint256)","68e114db":"PFG(uint256,string,string,bool)","68e12fa8":"addressCallWithArray(address,address[3])","68e1569a":"parking()","68e1bba4":"eth_ratio()","68e1f526":"WeMediaChainToken()","68e2076a":"Hub()","68e39aac":"proxyWorking()","68e453ed":"totalSaled()","68e47f59":"accept(address,bool)","68e4bd99":"testSetBitSuccess()","68e5a07e":"getExcludes(uint256,uint256)","68e5e22f":"buyAnalysis(address)","68e67402":"RoomPlayersAdd(uint8,address,uint256,uint8)","68e757a0":"create_public_sale_token(address,uint256)","68e76403":"getTotalFeesCollectedCount()","68e7bdba":"disableApi(address)","68e7e309":"_saveVerification(address,address,uint32)","68eb59b0":"startGladiatorWithCoin(uint8,uint8,address)","68ebd450":"bioLock()","68ec8446":"RentartoICO()","68ec9dba":"emptyPendingUserList()","68eca613":"numShareholders()","68ecabcf":"ankcwdsleToken()","68ee137e":"bonusClaimedTokens()","68ef7946":"zazSupply()","68ef8661":"isValidParticipant(bytes32)","68efa030":"Dao1901()","68efb367":"exile(uint8,uint8,uint8,bytes4)","68f04bbb":"openAirDrop()","68f06b29":"redeemable(bytes32)","68f0bcaa":"atomicize(address[],uint256[],uint256[],bytes)","68f15aac":"DMChainToken(string,string,uint8,uint256)","68f16293":"transferCooldown()","68f169e1":"sellCut()","68f269b4":"RATE_ETH_TXK()","68f2ab8e":"Currency(string,string)","68f2c86a":"changeUserPerms(address,bool,bool,bool)","68f2d6e2":"GEN0_MINIMAL_PRICE()","68f319b1":"placeBet(uint8,bool,uint256,uint256,bytes32,uint8,bytes32,bytes32)","68f399f4":"BetSetAnswer(uint256)","68f5aa0f":"setShareholderDB(address)","68f5ccdf":"devFeePaid()","68f5d173":"addAdminister(address)","68f65f02":"ChangeShownDenomination(bool,bool,bool,bool)","68f67330":"finalizedCrowdfunding()","68f6e75f":"percent1()","68f7ef1b":"BLKToken(address)","68f88a26":"getMatchSummarizeInfo(uint256)","68f8957a":"setAyantDroitEconomique_Compte_1(uint256)","68f8fc10":"buyToken(address,uint256)","68f91814":"mainMultisigEther()","68f9dab2":"hash(bytes,bytes,uint256)","68fa8134":"removeAdministrator(address)","68faaa6f":"getTotalSellCount()","68fad504":"burnExtraTokens()","68faecdb":"depositedMYB(address)","68fb81b7":"iCoTokensSold()","68fbbab8":"giveMultipleItemsToMultipleRecipients(address[],uint256[])","68fbd0a8":"TPTSchedules()","68fcb6ee":"purchaseCard(uint256,uint256)","68fd0455":"contractorCancel(bytes16,address,address,uint256,uint256)","68fd22d3":"_addToList(address[],address)","68fe4405":"getBondHolder()","68ff8c4c":"UserList()","68fff456":"blackMask()","69008fb6":"buyTileAuction(uint8,uint256,address)","6900a3ae":"toString(uint256)","6901f668":"validate()","690252c8":"addSshKey(string)","69025b5f":"_addTokenToOwnerEnumeration(address,uint256)","6902a416":"AUMXToken()","69030397":"addLocker(address,address)","69032f15":"cantSetReferrer(address)","69043895":"exOwner(address)","6904c104":"getCampaignValidity(bytes32)","6904c94d":"company()","6904efc5":"BeatTokenIcoPhase3Started()","6904f583":"econVestingStage()","6905877a":"totalOwedForApi(uint256)","69061355":"claimOwnership(uint8,bytes32,bytes32)","6906679b":"getHistory(uint256,uint256)","6906a137":"checkCharger(uint256)","69070772":"MyFreeCoins(uint256,string,uint8,string)","69071418":"poolCLock()","6907baa9":"Campaign(address,address,address)","69081199":"WithdrawFunds(address)","69086c21":"a(bool,bool,bool)","6908d99c":"Extract(address,uint256)","6908ea00":"_checkVotes(uint256,bytes32,bytes32)","6909f5bf":"generateTokenWithAttributes(string,string,string)","690a946b":"getProjectEndDate(uint256)","690b1897":"AragonTokenSale(uint256,uint256,address,address,uint256,uint256,uint8,bytes32)","690c11d5":"getcoursesLenght()","690c5de8":"phase4Cap()","690cf0d1":"preSaleStarted()","690d0b1d":"STARCrowdsale()","690d23be":"getItemAmountOf(uint256,address)","690d3750":"lockBalances()","690d8320":"withdrawETH(address)","690e1d22":"showLockNum(address,address)","690e7c09":"open(uint256)","690eb3f8":"getTicketSumToRound(uint256)","690f2f8e":"_addTokenAddress(address)","690f411b":"VividoTokenTMP()","690f4559":"createPersonalDepositAddressFor(address)","690fa5df":"getPlayerRefById(uint256)","69102190":"checkCount(address)","69111865":"LINDOToken()","69115768":"hasItBeenReleased(uint256)","69129b4f":"StandardToken(uint256,string,string)","6912c8ba":"thirtyPercentWithBonus()","69132d43":"useBalanceOf(address)","69132f72":"SALE2_END()","6913a63c":"addGuard(address)","6913d82d":"adminSetBlock(uint256,uint256)","6914db60":"tokenMetadata(uint256)","6914f40f":"getPI_edit_27()","69161b9e":"addAddressToGrantAccess(address,uint256)","6917fd5e":"BONUS_ICO_PERIOD_ONE()","6919d09a":"Y(uint256,uint256)","6919ff17":"test_insert_findNoHintAtPosition(int256)","691a38ab":"canBeWhitelisted(bytes32)","691a3f64":"buyFrom(address)","691a5842":"totalEtherRaised()","691ae7c9":"setCandyPowerToken(address)","691b7ce0":"transferCMO(address)","691ba73a":"race()","691bf023":"LockTokens(address,uint256,string)","691bfc89":"goods(uint16,uint256)","691c65d4":"mintItem(address)","691c71bd":"endTime2()","691cdb51":"CoinoorCrowdsale(address,address,address,address,address,uint256)","691d58e7":"_applyRefund(uint256)","691d933a":"getDeedByAddress(string,uint256)","691de4a4":"add(string,bytes32)","691e9961":"we_test_token()","691ed382":"THIRD_TIER_SALE_START_TIME()","691edfda":"devAccount()","691f2216":"User_1()","691f3431":"name(bytes32)","691fb8ea":"jumpIn()","692058c2":"dex()","69205dfc":"TUNEZ()","6921278a":"rateFee()","69215eb3":"ethMined()","692193cc":"MarketplaceAccessor(address)","6921af97":"payOutBounty(address,address)","69229b43":"ChangeOwnerContract(address)","6922eb06":"sellPackToAddress(uint16,uint16,address)","692345ee":"elapsedPeriods()","692397a4":"testIssueTokens()","69244c55":"getIcoReward(uint256)","69245009":"cage()","6925ad77":"multiplex_target(address)","6925b015":"contributionBy(address)","6925ebb9":"fluxFeed(uint256,bool)","6926890b":"createSale3()","69269371":"newAmendment(string,uint256,uint256)","6926cc7b":"_canSetReferrer(address,address)","692740b6":"_areStakeAndWithdrawAllowed()","6927bc38":"_isValidSignature(address,bytes)","6927cac5":"trustedSender()","6927e45a":"TOKEN_SHARE_OF_ADVISORS()","6927f800":"Tango1Token()","69288540":"setDEV(address)","6929dd0b":"confirmOrderCompletionByDoctor(bytes16,bool)","692aa97e":"isOpened()","692ad3a9":"round(uint256,uint256,uint256,uint256)","692b3712":"DMINT()","692bf818":"isIntermediary(address)","692cd610":"nextRewardPlayNo()","692d9ee5":"SALE_TOKENS()","692dfe8e":"maxStakeHolders()","692f74aa":"getvehreqdetails(uint256,address)","69306f24":"numberOfCommittees()","69307c80":"rotateBits(bytes,int256)","6930a020":"bruler(uint256)","6930a7e9":"adminMode(bool)","6930c5da":"depositSavings(address,uint32)","6930fd2a":"claimAll(uint256)","693103a0":"addAffiliates(address[],uint256[])","69318a79":"makeComment(string)","6931b550":"claimEthers()","6931e19f":"productPrices(bytes32)","69328dec":"withdraw(address,uint256,address)","6932af36":"proxies(bytes32)","6932c9c5":"getSaleContractDepositAddress(address)","6932cf81":"getName(string)","69335938":"vestedDate()","693382a9":"addToWhiteList(bytes32,address)","693391fe":"createNewUser(address,address,string)","69347990":"ownerWithdrawl()","69358e2e":"getCompanyList()","6935a0d0":"addNewEventToBusiness(uint256,address,string,string,uint256,uint256,uint256,uint256)","6935a290":"OriginsTraceChainToken(address)","69361de3":"I21Token()","69361fe2":"FeeCalculated(uint256,uint256,uint256,uint256,uint256)","693649aa":"mintRewardCore(address,uint256,uint256,uint256,uint256,uint256)","6936c1cf":"XoloChain()","69389cac":"setPlayerForm(uint256,uint8)","6938d9b0":"allocatePresaleTokens(address,uint256,uint256)","6939864b":"lotteryState()","693ac4fb":"getProof(bytes)","693b2b3f":"ticketTransferersAmount(address)","693bd2d0":"cardContract()","693cf8ce":"amountToSeedNextRound(uint256)","693d0141":"retireWildEasy(uint64,uint64,uint64,uint64,uint64,uint64)","693d0df2":"claimFunds(address)","693dde5c":"getAppId()","693e2279":"burntFounder()","693e26dd":"createVirtualEntity()","693ec85e":"get(string)","6940030f":"disableTrade()","69401027":"acceptClockmaker()","694094fd":"M5Token()","69414e7b":"SaveCryptoNetwork()","6941a061":"IdxCoin()","69422924":"hasVotedOnDocumentPoll(uint8,bytes32)","69423429":"getMyDividendAmount()","694244f8":"PreSaleStart()","694278da":"publicKeyYForX(uint256)","69428d97":"OwnableSimple()","6942dc03":"EnvironToken()","6942eac7":"Currency()","6942eff7":"_unverifyAddress(address)","69431ab6":"TokenCreation(uint256,uint256,address,string,string,uint8)","69433e12":"setExchange(uint256)","6943935e":"DPOS()","69443bf4":"CTAuction(address,address)","694463a2":"totalEntrants()","69454b86":"pairs(address,address)","6945c5ea":"setPlatform(address)","6946e33b":"GXVCNoToken(uint256,address)","694702ec":"CommonTokensale(address,address,address,address,uint256,uint256)","694719d8":"MIN_REFUND_RATE_DELIMITER()","69488271":"AllocatePresale(address,uint256)","6949a058":"sendOwnerEther()","6949e1d4":"AngleToken()","6949ed67":"omec(uint256,string,string)","694a813f":"bet1deltaOf(uint256)","694b1727":"addServer(string,uint8,uint256,uint256)","694c00d1":"reclaimBySender(address,address,bytes32)","694c11eb":"buyCore(address,address)","694d3757":"isAuthDisabled(uint256)","694dcecc":"preCrowdsaleStartTime()","694df50a":"freezeAddress(address,bool)","694e0d5b":"StringPasser(uint8[])","694e4277":"payment(uint256,address,uint256,bool)","694e80c3":"changeThreshold(uint256)","694ebe05":"createEscrow(address,uint256,address,uint256)","694f5a08":"_clearTotalNormalTokensByAddress(address)","694f6276":"_approvedFor(address,uint40)","6951b995":"grantCompanyCoins(address,uint256)","695338b9":"ChillIssued()","6953ace4":"finalTokenExchangeRate()","6953ba9a":"nextStarIndexToAssign()","69541be8":"DefaultReverseResolver()","6954abee":"owner_supplied_eth()","69557669":"changeContracts(address,address,address,address,address)","6955c8fc":"getBuyPriceAndPreviousRecord(bytes32)","69569a51":"setFrontend(address)","6956f3d5":"_totalTokens()","69573648":"remove(bytes,bytes)","695741f8":"waitTimeBlocks()","69580f63":"setVendorName(address,bytes32)","6958420b":"arbYes(uint256,address,uint256,string,uint256)","69594cfa":"transactionLog(uint256)","69598efe":"totalPartitions()","69599168":"onEmergencyChanged(bool)","6959d5c7":"getCitationRecord(string,uint256)","695a4cad":"finishTransferFeePayment()","695a7e9d":"CheckAmbientLightException(bytes32,uint32)","695addc9":"newProposal(bytes32,address,uint256,bytes)","695b4700":"transfer_token_from(address,address,uint256)","695c5a26":"getCurrentPhaseCloseTime()","695ca8c8":"Rhodium()","695d027b":"EMoney(uint256,string,string)","695d7297":"updateRewardForDrawing(uint256)","695d7797":"makeWallet(uint256)","695dcfa4":"createContract(bytes32,uint16,bytes32,uint256,uint64,bytes32,uint64,bytes32,uint64,uint64)","695e1341":"UNGT()","695e2a30":"METAXCrowdSale()","695e54c3":"setCountWinnerPlace(uint256)","695ec793":"secondRelease()","695f9db3":"createRocSaleMarkets(uint256,uint256)","69606c61":"CompalTestCoin1(string,string,uint256,uint256)","6960947d":"stockSize()","6960a0ed":"getArtWorkChangeFee(uint256)","69615c0c":"TransferSalPay(address,address,uint256)","69623ae2":"addPlugin(address,address)","6962b010":"freezeEndsAt()","69632f56":"unitAttack(uint256)","69639749":"getMemberRole(address)","6965193f":"_processTransactionFee(address,uint256)","69652fcf":"resign()","69658cf3":"checkMyTokens()","69666811":"collectAllReturnBalance(address)","69671622":"depositToken(address,uint8,uint256,uint256)","69683080":"totalRestrictedAssignments()","6968ce29":"refundNonKYCInvestor()","6969d216":"topLevelDomainOwner(string)","6969d5d8":"appointAdministrator(address)","696a7253":"setConstraint(bytes32,bool,bool)","696b1030":"enableLimit()","696b5fb7":"getAssetID()","696bda86":"submitProposal(uint256,bytes)","696c58c4":"getRefund(address)","696c9c0a":"create(address,uint256,bytes)","696d25fb":"calcVestableToken(address)","696d7ee9":"airdropPrize(address)","696d816a":"endSell()","696df08e":"FULL_TOKEN_WALLET()","696e6a6a":"Octiron()","696e7a85":"listPrycto3()","696ecc55":"trade(uint256,uint16[],uint8,bytes32,bytes32)","696f541c":"getOrg(string)","696f8a95":"CrowdCoinICO(address,address,address)","696fcc7c":"abortTime()","696fd28a":"SBSToken()","696fd68c":"makeTransferable()","697025b6":"transferEnablingDate()","6970402c":"areAllTokensRegistered(address[],address)","69706d9d":"unlockAmounts(uint256)","6970f46b":"BitFwdToken()","69712ffa":"removeTokenLock()","69719706":"Huangdashi(uint256,string,uint8,string)","6971d64c":"func_0AB9()","69732d4b":"ProjectX()","6973a4f8":"backTransfer(address,uint256)","6973cf58":"createEthSiringAuction(uint256,uint256)","6973e6db":"extraDataToNbJurors(bytes)","6974c632":"getItemPriceById(string,uint256)","6975aa9f":"minGoalReached()","69766079":"buyin()","6977083e":"updateStrategyAddress(bytes15,address)","69774c2d":"topup()","69776b1b":"tranchePeriodInDays()","6977aa62":"mintUnreleasedCard(uint8,address)","6977d9de":"addEmployerTotalInvoiced(address,address,uint256)","69793570":"_deleteOperation(bytes32,bool)","697952af":"updateHolder(uint256,bytes32,bytes32,bytes32,bytes32)","697a2902":"HDhundun()","697a3083":"destroyforsecurities(uint256)","697a60b3":"updateContract(string,address)","697aefe2":"certificato(string)","697b139e":"changeGift(uint256)","697c37c5":"cd1(address)","697ca8bf":"getContributorInfo(address,string)","697cca66":"safeRelease()","697d1eaf":"getGroupTeamInvest(uint256,uint256)","697d2e19":"getDisputeTimeoutState(uint256)","697ee181":"DemeterCrowdsaleInstance()","697fa3e6":"forCommand()","697fa43d":"isBatchCeateDrawings()","697fb220":"addLockAddressInternal(address,uint256)","697fc672":"creatorClaimFundTransfer(uint256)","697fd39e":"randomNumberIncome()","6980f4fb":"heroTypeIds(uint16,uint256)","69810d0c":"TOTAL_SHIP()","69815435":"isAbove(uint256,uint256,string)","69817410":"investHappened(address,uint256)","69817dd4":"ProspectorsDevAllocation(address)","6981b5f4":"getLength(string)","6981c879":"updateDate(address)","69820a80":"birthBlock_()","698232fe":"balances1(uint256)","6982c6f4":"tickets100price()","6982f45a":"AutomobileCyberchainToken()","69833668":"allocateEndBlock()","69837721":"accForBounty()","6983f908":"isAllowedToBuyByAddress(address)","69843940":"getValue(bytes32)","6984d4a8":"getBigPromoPercent()","6985a022":"Pause()","6985a1b0":"endInstance(address,address)","6985c57e":"createRare(string,uint256)","6985e46e":"getConflictResolver()","6986ab82":"getNeedLockFundsFromPeriod(uint256,uint256)","6986d405":"elapsedDays()","6988e9cc":"tokenTotalSupply(address)","69898d64":"removeGift(uint256)","698a92fe":"CNKTToken(uint256,string,string)","698afd98":"withdrawFrom(string,address,uint256)","698bdd6f":"ViewtMyBets()","698c1d17":"CoinBX(address)","698d67aa":"registerBarcode(bytes9,bytes3,string,string,bytes19)","698d8a1e":"completeProvision(address,uint32,uint256,uint256)","698edc76":"getLawyer(address)","698f16aa":"pauseTrueUSD()","698f2e84":"setVirtualExchange(address)","698fbe92":"setWhitelisted(address,uint8)","69902ffb":"buyPerUnit(address,uint256)","699084f4":"CNBCoin(uint256,string,uint8,string)","69919447":"sclToken()","6991bad0":"number_of_token()","6991cb13":"EthlanceSponsorWallet()","69921c26":"checkAccount(address)","6993176a":"setMtdAmount(uint256)","69934ee7":"becomeRichest()","6993b507":"getDoublePeriod()","69940d79":"getRewardToken()","6994436e":"Shefo()","699450e8":"student()","699487c2":"getRecordNameToken(bytes32)","69949c77":"getRestricted()","6994a62b":"getRedemptionStatus(bytes32)","6994a7a0":"getPlayerAmount(uint256,uint256,address)","69950bd6":"addNewVendor(address)","69953501":"setUtils(address)","69958ab9":"cancelGame(uint256)","69972e07":"unvouch(bytes32,uint256)","6997545f":"SetParticipantStatus(address)","6997bcab":"totalSpending()","6997d166":"USER_VOTE(uint256,uint256)","6997f429":"MacroProxyContract()","69986073":"mainSaleSuccessfull()","6998a85b":"setTimeToBorn(uint256)","69995128":"updateAccount()","6999579f":"consolationRewardsClaimPercent()","69997696":"updateLoveStoryWithData(bytes16,bytes32,bytes32,string)","69997987":"distributeIQTToken()","6999d38f":"cancelBetByB(uint256)","699a195d":"addEA(string,string,string,uint32,address,address,string)","699a3a7f":"etherSince100()","699abb3c":"setTaxPercentage(uint256)","699ac46f":"mintTransfer(bytes32,uint256,bytes32,address)","699b328a":"randomize()","699be1bb":"lastBlock_v9Hash_uint256()","699c1687":"getProductBuyer(uint256)","699c181e":"currentTokenPerETH()","699c267a":"Jii()","699dc8ff":"proxyMintTokens(address,uint256,bytes32)","699dde66":"SiniCoin(string,uint256,uint8,string)","699ef40c":"updateProfileAboutMe(string)","699f0c72":"getOfferPriceEth(uint256)","699f1fa9":"thisIsFork()","699f200f":"addresses(bytes32)","699ffd88":"get_database_id()","69a0188a":"setHashToFalse(bytes32)","69a046f2":"wadd(uint128,uint128)","69a0b5c0":"isSolved(uint8[9][6])","69a1aa95":"bulkPurchageLand()","69a1b0e2":"claimB1()","69a1bca9":"refundSale()","69a26fb8":"BuyStatus(uint256)","69a300f6":"getRangeID(uint256)","69a3a65a":"HBXToken(address)","69a479e2":"IPETToken()","69a4c408":"AdminSupply()","69a4eda5":"calculatePositionProfit(uint256)","69a56df4":"testNewCounterValueAfterAIncrease()","69a5e902":"multiAccessCall(address,uint256,bytes)","69a683f1":"pollCompleted()","69a68f5f":"setPhase1AccountTokensMax(uint256)","69a69658":"createCoreRequestInternal(address,address[],int256[],string)","69a75868":"firstYearGameMiningTokenCap()","69a8c3bf":"CurrentGameId()","69a9e6b8":"togglePayment(uint256,string)","69aa2c9f":"burnMultNom()","69aaa388":"changeMultiSignatureWallet(address)","69aab7e3":"withdrawNAC(uint256)","69aad305":"getFromBalance(uint256)","69ab0005":"setThreshold(uint256,uint256,uint256)","69ab3404":"withdrawPartialDevelopersCut(uint256)","69ab7895":"get_payment_by_id(uint256,uint256)","69ab8c76":"ADVISORS_MONTHLY()","69ab8e52":"IsICONotStarted()","69ab98dd":"worldCupResultPart4()","69abed8f":"updateReferralBonus(uint256)","69ac5721":"unlockDate()","69ad56de":"_nextFifoStorageKey(uint256)","69add113":"tradeBancor(address[],uint256,uint256,address)","69addb6e":"IssueToken(uint256,address,uint256,uint256)","69ae7757":"registerAntique(bytes32)","69af0634":"cancelAllBuyOrders(address,uint256,uint256)","69b041bb":"swarmFundAddress()","69b0abea":"remainingPurchaseAmount()","69b144eb":"testThrowsCreateNewRevisionNotOwner()","69b29b51":"saleLimitReachedForCurrentStage()","69b31548":"ForwarderDeposited(address,uint256,bytes)","69b41170":"DELAY()","69b492f9":"weisMinInvestment()","69b4a1ef":"NUM_STAGES()","69b59e75":"collectFee(address)","69b5fb58":"setAuthorName(string)","69b6438e":"FUNDS_WALLET()","69b71e06":"unblockFunds(uint256)","69b7215d":"doesProofExist(bytes32)","69b7ca85":"getCaptainInfo(uint256)","69b8f38d":"ICO_PERCENTAGE_2()","69b94cf0":"_transferWithData(bytes32,address,address,address,uint256,bytes,bytes,bool)","69b9b787":"deposit2(address,address)","69b9e96b":"setBuyoutDividendPercentage(uint256)","69ba0fe9":"getStringValues(bytes32)","69ba3c06":"rejectErx20TransactionRequest()","69ba820e":"retrieveWalletForVanity(string)","69baa4ba":"TransferredToken(address,uint256)","69bb4dc2":"availableTokens()","69bba72f":"getAirdropStats(address)","69bc1a55":"testFail_doubleVoting()","69bc513a":"setGGEAddress(address)","69bcdb7d":"getCommitment(uint256)","69bd01c4":"getvalue()","69bd3436":"debatingPeriodInMinutes()","69bd4ec5":"processSellRequest(string,address,uint256,uint256)","69bdd5dd":"appSet()","69bdfd3a":"toContractDie(bytes,bytes,uint256)","69be51bb":"TOKENS_EARLY_BACKERS()","69bee8a1":"getWorkerPoolsCount(address)","69bef517":"balanceOfOnForHolderUpdate(address,uint256)","69c19d4c":"getOutcomeTokenDistribution(address)","69c1a712":"lastHeartbeat()","69c1da7c":"GetManifestoByCategory(string)","69c212f6":"getUserByAddress(address)","69c254b9":"getSSPRegistry()","69c261ed":"setFreelancerCategories(address,address,uint256[])","69c338ff":"SomeContract()","69c4113d":"setNewBudget(uint256,uint256,uint256,uint256)","69c46821":"checkReferrer(address)","69c5c229":"testControlUpdateLatestRevisionNotUpdatable()","69c5f36e":"getTokensForContribution(uint256)","69c63434":"RaffleInternetBook(string,uint256)","69c6a5d2":"derive_sha256(string,uint256)","69c6f18d":"_transferItem(address,address,uint256)","69c74033":"withdrawSnowflakeBalanceFrom(string,address,uint256)","69c7c180":"m_orderCount()","69c7e386":"decreaseICOStartTime(uint256)","69c87817":"minimumWithdraw()","69c89774":"removeWhitelistedTransfer(address[])","69c8b344":"ownedToken(address)","69c8c7ef":"subtrReferralDeposit(address,uint256)","69c92c5a":"removeAddressFromBackend(address)","69ca02dd":"Transfer(address,uint256)","69ca16fa":"eventLogHand()","69cb418a":"RTeamCoin()","69cbb042":"getEncPubkey()","69cbd0fe":"MintableBaseCrowdsale(address)","69ccacd4":"setPercent4(address,uint256)","69cd5df1":"icoTokens(uint256,uint256,uint256)","69cd61be":"lockOwner()","69cdba9a":"approveChangeOwner(uint256)","69cef46c":"uploadData(bytes)","69cf7ac3":"miningToken()","69d01268":"concatUInt(uint256)","69d0292d":"addPresale(address,uint256,uint256)","69d03738":"setNFTAddress(address)","69d0b5e2":"buyInMarket(uint256,uint256)","69d0e33c":"getPlayerPlayedTimes(uint256)","69d0ef84":"callAndFailWithDivisionByZero()","69d196e1":"canAcceptPayment(uint256)","69d19c19":"BDSM()","69d1d1ca":"postGoods(string,uint32,string,uint256)","69d20762":"MassivelymultiplayeronlineVideoGames()","69d24f63":"lifetime()","69d25ff2":"updateCustomFee(uint256,address,address,address,address)","69d29832":"startBonuses()","69d2ce29":"countGames()","69d38ed2":"FINAL_AML_DATE()","69d3b252":"newVox()","69d3e20e":"mint(uint128)","69d4e250":"_safeSubtract(uint256,uint256)","69d4f28e":"officialSold()","69d516b3":"acceptExecutorOwnership()","69d565a9":"closeWithoutCounterparty(bytes32,uint256,address)","69d58d41":"minimumContributionPhase5()","69d5f38a":"setMembershipPrice(uint256)","69d62bf4":"revertTransfer(uint256,uint256,uint256,uint256,uint256,uint256)","69d6b880":"mintAmount1()","69d714c3":"getLargeInvestorApproval(address)","69d77740":"left92(uint256)","69d79ad5":"moneySumAtSettlement(address,uint256,uint256,int256,uint256,uint256)","69d87ab1":"setETHUSDPrice(uint256)","69d89575":"releaseFunds()","69da1b43":"NonceTick(uint256)","69da66ea":"referralPromille()","69dae8b0":"callAndReward_3(string,string,uint256)","69db054c":"userComment(uint256)","69dbe3e1":"StepFunction(uint256,uint256,uint256)","69dceb6a":"getCoinAge(address,address,uint256)","69dd312f":"mintForContributorPool(uint256)","69dd4524":"crowdsaleTransfer(address,uint256)","69ddaad1":"resetQuote()","69dded0e":"validateSet(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","69de374d":"getProposalUint(uint256)","69de4e84":"NimCoin()","69ded293":"reserveBountyRecipient()","69df3671":"friendsWith(address)","69dfae6e":"productTokens(string)","69dfc66e":"TestableStandardSale(bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","69e01731":"setDesignatedReportDisputeDueTimestamp(uint256)","69e01e8d":"dividendsOwing()","69e0e346":"inWhiteList(address)","69e111ba":"needRelease()","69e15404":"feeAmount()","69e1b5ce":"NewStage()","69e22b20":"addRequest(address,string,string,address)","69e24b48":"getCrabStats(uint256)","69e255c9":"removeHorseOWN(uint256)","69e2c927":"canRecvEthDirect()","69e6bcdf":"smartUnBlockAddress(address)","69e6e6c9":"amountOfPopDeveloperShouldMine(uint256)","69e78499":"removeKey(address)","69e795be":"teamTokensCap()","69e7ae85":"ipfsAttributeLookup()","69e82500":"SoundbitToken()","69e8d80f":"ednation()","69e91994":"getReturnValue(uint256)","69e936f0":"isMultiply()","69e9ca8a":"calculatePayoutForAddress(address)","69ea1771":"updateRate(uint256)","69ea80d5":"HEIGHT()","69eac83a":"_emitOracleAdded(bytes4,address)","69eadd76":"canAcceptTokens_()","69eb6d32":"Annihilated(address,uint256,uint256)","69ebb7e9":"getCurrentRound(uint128)","69ecc3cf":"invalidate(bytes32)","69ed1b83":"callSomeFunctionViaInner2()","69ed87b0":"FeesCalculated(uint256,uint256)","69ed8a42":"LRKToken(uint256,uint256)","69edd4fe":"callElection(uint256)","69efe2bf":"stageAdmin()","69efe471":"transferLimits(address)","69f08449":"m_sale()","69f0a549":"mintOther(address,uint256)","69f10ce1":"issueRIU(address,uint256)","69f1256f":"createTokensFromEther()","69f173dc":"waveCap4()","69f18967":"testSetBitFailIndexOOB()","69f18b8c":"ROB()","69f30401":"bid(address,uint256[],uint256[])","69f3331d":"nextOwner()","69f35883":"updateBloomFilter(bytes,address,bytes32[])","69f3c66e":"Movieum()","69f40ebc":"forwardInvestorTransaction(address,bytes)","69f467c1":"unicorns(uint256)","69f4aefc":"LATPTransaction(uint256,uint256,uint256)","69f66950":"holderBountyTokens()","69f6b766":"getSumInByLottery(uint32)","69f80b4a":"addAddress(address,address,uint256,address)","69f80c7a":"additionPrice()","69f8408a":"MigratableToken()","69f8ef0c":"flushETH()","69f94209":"NewDrawReadyToPlay(uint256,bytes32,uint256,uint256)","69f95967":"vminEtherPerPurchase()","69f99001":"hashDataBlock(string)","69f9ad2f":"char(bytes1)","69fa2cae":"createMintableSale(uint256,uint256,uint256)","69fbad65":"_depositOldTokens(address,uint256,address)","69fbae6c":"_sendToTeam(uint256)","69fbfcc4":"upgradeStructure(uint256)","69fc3481":"fundsRaisedFinalized()","69fc551a":"create(address,uint256,string)","69fcbf70":"setPreSaleAmounts()","69fd75b1":"GUPToken(address,uint256)","69fe0e2d":"setFee(uint256)","69ff2d11":"TOT()","69ffa08a":"claimTokens(address,address)","69ffadc9":"TDz(uint256,string,uint8,string)","6a00da87":"sellBuyerTokens(uint256)","6a011ae5":"minRandomPrivilegeValue()","6a018302":"mul2Revert(uint256)","6a01b6e6":"createToken(uint256,uint256,uint256,uint256,uint8,uint256,address)","6a01f09c":"swapLimit()","6a02209c":"getMaxParticipants()","6a028692":"totalAvailableEdition(uint256)","6a0323b2":"MusiconomiToken()","6a0324b0":"_getBool(address,bytes32)","6a032a3b":"isTimelocked(address,address)","6a032a73":"generateTokensManually(uint256,address)","6a03eaf9":"finalizeTime()","6a048ddb":"createContractChar(string,uint256)","6a049b62":"_buyMulti(address,bytes32)","6a054250":"update(uint256,uint256,uint256)","6a0665a4":"calculateGoldSell(uint256)","6a06bf92":"enjinTeamAllocation()","6a07089f":"Contents()","6a08b403":"setFine(uint16)","6a092e79":"transferTokens(address,address)","6a0a1f8e":"claimGrant(uint256)","6a0ac115":"libpow2(address,uint256)","6a0b50e4":"pickFood(uint256,string,string,uint256)","6a0b96b7":"IkuraTransferFee(address,address,address,uint256)","6a0c3809":"likeArtist(address)","6a0c5068":"getParticipantesA()","6a0c5723":"getHasVoted(uint256,address)","6a0c8730":"getTransactionPrice()","6a0cd52e":"admin_commission_activated()","6a0d017c":"inviteReferee(address,address)","6a0d3450":"sentTokensToFounders()","6a0d783c":"Crowdsale(string,uint256,uint256,uint256,uint256,uint256,uint256,address,address)","6a0e605f":"MyToken(uint256,string,uint8,string,address)","6a0e7c24":"teamVesting(address[],uint256[])","6a0f7b7c":"getProductContractClients(address)","6a0fd45c":"getMeter(string)","6a100f37":"startAuctionFee()","6a10ad64":"tokenAllocToCrowdsale()","6a10c71c":"secondsLeft(address)","6a10d4d6":"createToken(address,uint256)","6a11138c":"doRandom(uint64)","6a12209c":"setRequestLimit(uint256)","6a12b86c":"continueGeneration()","6a1353c9":"setMintPayoutThreshold(uint256)","6a13af72":"giveRiskToken(address,uint256)","6a140b27":"_transferToContract(address,address,uint256,bytes)","6a142015":"assignGenesisCallerAddress(address)","6a146024":"WAD()","6a14d131":"creatorsCreatedCount()","6a15a080":"distribute_NRT(uint256)","6a16ae40":"wct2()","6a172536":"firstPreSaleDate1()","6a1729aa":"paymentAffiliate(address)","6a19b647":"addSuperPlayer(address,bytes32,uint8)","6a1af8b8":"setHeroData(uint256,uint16,uint16,uint32,uint32,uint32,uint64,uint64)","6a1b52e1":"expirationCheck()","6a1be7c6":"approveCollateral(address,uint256)","6a1bf209":"setCCH_edit_8(string)","6a1c3a4c":"getLastAPPeriod()","6a1c6fc0":"costs(string,uint256)","6a1cd82c":"crowdsaleRaised()","6a1d8713":"setMaxReferrals(uint256)","6a1db1bf":"changeFee(uint256)","6a1dbf03":"getTokenMinted()","6a1eb83f":"MeDao(address,address,address,address,address,uint256)","6a1ecbbf":"maxHopefulsNumber()","6a1f9e19":"breakIt()","6a206137":"cancelOrder(address,uint256)","6a2129d6":"delegateRecordExists()","6a21857f":"manualSend(address,bytes5)","6a221688":"TokenSaleQueue(address,address,address,address,uint256,uint256,uint256)","6a226077":"bidOnBreedingAuction(uint256,uint256)","6a226a49":"addMessage(string)","6a22b09a":"lastAssigned()","6a23b9df":"sumICOStage2()","6a23e308":"getIncubatorHashing(address,uint8,uint256)","6a23e7cf":"setFeeDistributionAndStatusThreshold(uint8,uint8[5],uint256)","6a24d595":"ModifyVigencia(uint256)","6a25000c":"token_per_wei()","6a254198":"ClaimTokensEvent(address,uint256,uint256,uint256,uint256)","6a256b29":"settle(address)","6a261353":"Lesson_5(address,uint256)","6a263f02":"_sqrt(uint256)","6a26b7fe":"setClaimableToken(address)","6a272462":"sell(address,uint256,uint256)","6a27c41d":"revealVote(address,bytes32,bytes32,address,uint256,uint256)","6a280317":"isAuctionManager(address)","6a2875c1":"incrementDIDFromContributions(address,uint256)","6a28db13":"getQrLength()","6a28f000":"unfreeze()","6a28f828":"issueIndex()","6a29150e":"totalFundsWithdrawn()","6a293d04":"setAlias(string)","6a294a80":"maxActivatedSalesTotalCount()","6a29605f":"BOHUpgradeableToken(address)","6a2a4c06":"get_released_by_manager()","6a2a6657":"validateToken(address,uint256,uint256,uint256)","6a2aac2b":"flowerBalances(address)","6a2ab790":"PRIVATE_STAGE_MAX_CAP()","6a2b171a":"applyDiscount(address,uint256)","6a2b5656":"changeTransactionFeeRecipient(address)","6a2b9e9d":"ERC20WithMetadata(string)","6a2c1ace":"getStateHash(bytes,uint256)","6a2d1cb8":"MIN_INVEST_ETHER()","6a2d5028":"getRaisedAmountOnToken(address)","6a2dda87":"SettingAutoGame_BettingRankRange(uint256,uint256,uint256)","6a2ddfce":"dragonsStatsContract()","6a2e882b":"getBlockLimit()","6a2f78a6":"submitStakeholderTransaction(address,bool)","6a2f9536":"calculateFraction(uint256,uint256,uint256)","6a30eb24":"hogsmashToken()","6a310bac":"bizp()","6a327b7d":"getSupportManager()","6a33440a":"MANHATTANPROXY12THAVE()","6a3350c8":"invalidAirDrop(address)","6a33803b":"mintSaleTokens(uint256)","6a343df3":"allowPrice()","6a34480b":"MAX_INVESTORS()","6a357465":"payHours(address,uint256)","6a368486":"Ethraffle()","6a369137":"AfterSaleTransferableTime()","6a3845fe":"artTokenoken()","6a385043":"approveTokenTo(uint256,address)","6a385ae9":"getBalances(address,address[])","6a38c0fa":"DragonLock()","6a3a2119":"injectEther()","6a3b5aea":"setC4FContractProviderLock(address,bool)","6a3baaea":"newForge(bytes32,bytes32,address)","6a3bb8cc":"setFiscal(uint256,bytes32)","6a3c1198":"_projectCancelNew()","6a3c167b":"setInitialize(bool)","6a3c62a7":"beginReclaim()","6a3c7945":"RequestUpdated(uint256)","6a3d2a15":"AdvisorsAmount()","6a3d42ef":"ANT(address)","6a3d5a07":"AuctionCancelled(uint256,address,uint256)","6a3f3b97":"HolderBase(uint256)","6a3f5146":"auctionExpired()","6a3f79f4":"RaffleIssued(uint256,uint256,uint256)","6a3f89f4":"setProofImpl(address)","6a40515a":"enhancer()","6a40dbd6":"mintInvestor(address,uint256)","6a4113c7":"releaseLockFounders2()","6a41ade3":"walletCoreTeam()","6a420614":"setFreeCount(uint256)","6a420bbc":"setHaltPurchase(bool)","6a42b8f8":"delay()","6a4349a9":"getMicroModulesIds()","6a43aae7":"removeName(string)","6a43dc9a":"totalSupplyByLegacy()","6a4509f0":"paymentMax()","6a457ee9":"allocatedBonus()","6a470988":"getkEthPhiRate()","6a474002":"withdrawDividend()","6a47aa06":"halvingInterval()","6a48c04d":"GenExtWeightList(uint256,uint256,uint256)","6a4967d6":"addToWhitelist(address,uint256,uint8,uint8)","6a4987dc":"MARKETING_POOL_ADDR()","6a4a39e9":"presaleEndsAt()","6a4a6b6e":"_myAddressHelper()","6a4ad948":"setConvertionFee(uint256)","6a4aef9d":"fromReal(int256)","6a4b1b10":"setPresidenteDeMesaVerify(bytes32)","6a4b22da":"changeFallbackAccount(address)","6a4b27f4":"getRenter(address)","6a4b3eca":"checkBankBalance()","6a4b6aa5":"untrustedChildWithdraw()","6a4b8a3d":"BoxxToken()","6a4b96d5":"PledgePayed(uint256)","6a4c62ef":"getSecondUnionIds(bytes32)","6a4d4bb8":"getInvestorPosition(uint256)","6a4f5495":"test_0_ensureServiceRegistryFunctions()","6a4fcddb":"Remyt()","6a502578":"totalSoldOnPresale()","6a50e3df":"PayWinners(address,address,address)","6a514db7":"REOToken()","6a51b918":"cities(uint256)","6a523c5e":"depositForUser(address)","6a5371b8":"nextTier()","6a537e40":"getCollectiblePrice(uint256,uint256)","6a5392d7":"generatedGze()","6a53ab64":"undestroyable()","6a53f98a":"pendingTxs(uint256)","6a54932c":"processTransaction(address,uint256)","6a561c11":"ownerResumeGame()","6a561cb8":"testSender()","6a5690f6":"ICO_GOAL()","6a56a48b":"_getRandomMineralId()","6a570b98":"InGRedientToken()","6a585fa3":"tokensPerWei20()","6a596455":"getBatlordReq()","6a59d0a4":"transferAndLockForever(address,uint256)","6a59dc8c":"_unpackAgilityValue(uint256)","6a5a3625":"getTotalReqAmt(uint256[],uint256[])","6a5b0151":"setGasForKWH(uint256)","6a5b459c":"receivedWeiMin()","6a5bbc1d":"withdrawToOwner(uint256)","6a5c2cf2":"getTotalDividendsByAddress(address)","6a5c44a9":"STTadmin1()","6a5cf2d0":"WifiBonusCoin()","6a5d7206":"doSafeSendWData(address,bytes,uint256)","6a5da6e5":"followCampaign(uint256)","6a5e2650":"unlocked()","6a5fd362":"shitFund()","6a61e5fc":"setTokenPrice(uint256)","6a625bc8":"issueToMany(address[],uint256[])","6a627842":"mint(address)","6a62936b":"PLUTUSTOKEN()","6a630559":"tokenLocked()","6a630ee7":"__transferWithReference(address,uint256,string,address)","6a63606c":"set_tokens_total(uint256)","6a63d2f9":"getLastestRequestFundID()","6a643ce6":"setBB(bytes32,bytes)","6a64790c":"toWholeShareUnit(uint256)","6a666c86":"addressToPunkIndex()","6a66a693":"beneficiaryContract()","6a67acc5":"getAuctionData()","6a67ec63":"minimum_buy_value()","6a68d2d5":"nextGamePotSplit()","6a69424b":"PaymentTimer()","6a6ae271":"assertPause()","6a6b8077":"StartICO()","6a6ba5d7":"addressIsCrowdsale(address,address)","6a6c526e":"AcceptsLYNIA(address)","6a6d31db":"externalEnter()","6a6e79bb":"WithdrawPaymentForTest(address,uint256)","6a6e88ba":"getBuyerInfoAt(uint256)","6a6f03a0":"returntrueifcurrentplayerwinsround()","6a704d7b":"AddedToGeneration(address,uint256)","6a7149f6":"changeAgency(address)","6a71a584":"getFreeAllowance()","6a71df43":"amountOfTokensPoolB()","6a7245ef":"changeBurnBoundsOperation()","6a7254a3":"specUWallet()","6a7283ac":"buyTokenFromGame(address,address,address)","6a7301b8":"setDestroyer(address)","6a7360d8":"updateNav(uint256)","6a7381bd":"TokensBought(address,uint256,uint256,uint256,uint256,uint256)","6a739a9b":"getTokensUnlockedPercentage()","6a739c44":"checkRegistrationStatus(address)","6a73de2c":"ZZZToken(uint256,string,uint8,string)","6a745ce9":"PRESALE_ETH_RAISE()","6a748ecf":"upLimit()","6a749986":"issuePreferedTokens(uint256,uint256)","6a751710":"transferTraderBalance(address,address)","6a75f03d":"partnersAddress()","6a75fac0":"pullBack(address)","6a7625ca":"setRegionForSale(uint256,uint256,uint256)","6a76c522":"totalContractMiniGame()","6a7798ee":"EndAuction()","6a77e17a":"initialSeedFarmingAdress()","6a785191":"referralTokens(address,uint256)","6a7882f2":"requiredGoldIncreaseFactor()","6a7a88aa":"isValidSignature(address,address,bytes)","6a7b28a2":"show_the_minimum__reward_period()","6a7b988c":"votePopularity(bytes32)","6a7bf76a":"create_game(bytes32,uint32,uint32,uint8,uint16,uint8,address,uint256,bool)","6a7c09a0":"rewardPrivate()","6a7c0bae":"OWN_burnAddress(address,uint256)","6a7c0e81":"setBatchLimit(uint32)","6a7c4cdf":"H2G2()","6a7c594e":"CTVToken(uint256,string,uint8,string)","6a7d1a7e":"getPlayersUnitTickets(address)","6a7d3c1c":"FishbankChests(address)","6a7d6b52":"updateOldOwnerProfit(uint256)","6a7dabb9":"DEVCLASS_MAX_CARGO()","6a7eaf8f":"vestingRules()","6a7f42e4":"closeBetByCanceling(uint256)","6a7fc8b7":"setDailyWithdrawLimit(uint128)","6a8141a1":"ParrotCoin()","6a816548":"cancelOrder()","6a81af17":"setConfigClass(uint32,uint8,uint8,uint8,uint32)","6a822760":"betB()","6a8269b4":"frozenList(address)","6a8296d7":"_setPrizePoolAddress(address)","6a833a6c":"addDelegateSigned(address,uint8,bytes32,bytes32,string,address,uint256)","6a83662e":"getYESVotesByEntity(uint256)","6a83b924":"btycownerof()","6a84e143":"destroyUnsoldTokens()","6a85ac88":"answerCompare(uint256,bytes32)","6a85d12e":"changeOuts(address)","6a85e252":"ElementTransferred(uint256,uint256,uint256,address,uint256,uint256,uint256)","6a868363":"CreatedVUP(address,uint256)","6a86a0f0":"DCCAdvancedToken(uint256,string,string)","6a871e27":"airDropHeight()","6a87f66d":"specialManagerOff(address)","6a8896b6":"getPots()","6a893a8c":"stopWorkInternal()","6a897999":"drainStack(bytes32,bytes32)","6a89a51e":"_delete_()","6a8aa343":"m_maxTotalSupply()","6a8ae136":"getContractBalance(address,address)","6a8b9f7b":"BecomeSpiderQueen()","6a8ba0fa":"createPromoPet(uint256,address,uint256,uint256,uint256,uint256)","6a8be019":"cancelEscrow(uint256,uint256,address,uint256)","6a8c2437":"totalRescues()","6a8c9cce":"BITMUZE()","6a8cdb52":"setBondAddress(address)","6a8d0bf4":"ReceiverChanged(uint256,address,address)","6a8d3575":"UniversalToken(uint256,uint256,uint256)","6a8d7eb3":"isLSNFT()","6a8d86db":"rawTransfer(address,address,uint256)","6a8e8711":"max_bet()","6a8ef2d3":"getMyShitClone()","6a8f91ff":"createAccount(bytes32,bytes32,address,address)","6a907a78":"UserAddTicket(bytes5[])","6a90ac63":"unlockWithdrawals(uint256)","6a91205a":"rentLand(uint256,bool,uint256)","6a91431e":"RefundableCrowdsale(uint256,uint256)","6a914911":"getPlayerByBoard(bytes32,uint8)","6a92a8b8":"UserAddressLoaded(bytes32,string)","6a92fcf6":"paymentEnable()","6a931aa8":"tokenVendor2()","6a93316c":"getInvestorStatus(address)","6a938567":"isValid(bytes32)","6a9412bd":"refundAvailable(address)","6a95dff4":"NOBSToken()","6a96c63e":"getCreateUnicornFullPrice()","6a98085a":"totalAmountToWhale()","6a9812f9":"getPolicyByTaxCode(string,uint256)","6a993130":"Ownables()","6a9b4daf":"Etros()","6a9b515d":"TokenAuctionCreated(uint256,address,uint256)","6a9ba3ce":"maxCapNotReached()","6a9c97d6":"refundSender(address,uint256)","6a9cd450":"upgradeKernel(address)","6a9d02e9":"tokenFrozenSinceNotice()","6a9d2afd":"playToWinTest(uint256)","6a9d69a7":"rentalTotalTime()","6a9d7629":"getOpenInterestInAttoEth()","6a9db57a":"playerAmountOfBets(address)","6a9dc9a8":"enrollUser(address)","6a9e8480":"FinalLottery(address)","6a9e8f27":"stockTransfer(address,uint256,uint256)","6a9ecd21":"BidFailedEvent(address,uint256,string)","6aa084d7":"getBoardStatus(uint256)","6aa0fd32":"performRebalance(bool,address,uint256,bool,uint256,uint256,address,bytes)","6aa179d9":"_secondRoundLosersFight()","6aa3141f":"removeCustody(address,uint256)","6aa31b1f":"starSell()","6aa3bf8b":"finishBetFrom(address)","6aa3e64d":"emptyTo(address)","6aa4b3cc":"calculateId(address,bytes32)","6aa52288":"FisrtSupply(address,uint256)","6aa5b37f":"maxBuyLimit()","6aa5cdfa":"setLatestEdition(uint8)","6aa633b6":"isEnabled()","6aa66cd4":"targetDiscountValue10()","6aa68a15":"phase2EndBlock()","6aa737e0":"enableSellToken()","6aa8e220":"WeaponRegistry()","6aa96d7c":"Storychain()","6aa9c59b":"_addMinions(uint32,uint8,uint64)","6aa9c82b":"withdrawControl()","6aaaae68":"tokensForFoundersAndTeam()","6aaab6f2":"updateTreasury(address,uint256)","6aaacb3f":"CreateCaptainToken(address,uint256,uint32,uint32,uint32,uint32,uint32,uint256)","6aab223d":"bonusMatchPayoutInPercent()","6aaba012":"ErrorGenerator()","6aabd369":"verifyGame(uint256,bool)","6aad1a6b":"adminSetGasLimit(uint256)","6aad70b6":"getAddTokenSignatures()","6aaee3f7":"biAdvance(uint32,uint64[2],uint64[2],int64[2],uint64)","6aaf0a0d":"endRegisterTime()","6aafb887":"getNewMaxProfit(uint256,uint256)","6aafd194":"Fosha(uint256,uint256,uint256,uint256,uint256)","6ab03a7f":"OGPToken()","6ab09a5e":"listUsersBets()","6ab15436":"price(bool)","6ab22536":"SMEToken(uint256,uint256,uint256,uint256)","6ab28bc8":"lockedAmount()","6ab368f8":"Burned(address,address,uint256)","6ab3846b":"updateEndTime(uint256)","6ab3c5bd":"KING_WIN_MULTIPLE_PER()","6ab4936d":"presaleFail()","6ab5bcd0":"withdrawedTokens()","6ab71276":"getOwners(address,uint256)","6ab76510":"bulkTransferFrom(uint32[],address,address[],uint256[])","6ab872f0":"setMaxBetThresholdPct(uint256)","6ab8bd2b":"POOH_TO_CALL_1PLUMBER()","6ab92ba7":"PEPL()","6ab9aa21":"MAX_REVENUE()","6ab9eb45":"getItemAllowancePrice(uint256,address,address)","6aba2a0d":"donatorBonus(uint256)","6aba899b":"refundStartTime()","6abac115":"getActiveState()","6abacfa4":"etherMasterWallet()","6abb4a50":"getPartner()","6abb51a5":"_completeTask(uint256,uint256)","6abc3fe4":"directMintAgent()","6abd3b88":"getWins(uint256,uint256,uint256)","6abf31eb":"confirmTransaction(address,uint256,uint256)","6abfbf6f":"allowTokenContract(address)","6ac084fe":"OrderFilled(address,uint256)","6ac0bf9c":"transferableSynthetix(address)","6ac0fe25":"BUYER_STEP_5_CANCEL(bytes32)","6ac26d3d":"executeAddMemberProposal(uint256)","6ac290e7":"getFirstReferrer()","6ac29bcc":"FBR()","6ac3a100":"HLCN()","6ac47db5":"CloudbricSale(address,address)","6ac4d582":"registrants(uint256)","6ac4d97c":"createInitialCards(uint32,uint16,uint16)","6ac4e08b":"dynArrayFunc(int256[])","6ac4f8e4":"StocksAddress()","6ac50065":"getBidsByAdunit(uint256,uint256)","6ac50f2f":"sizeOfUserAddresses()","6ac54d62":"stopPreIcoAndBurn()","6ac54eb0":"posMint()","6ac59dd5":"setIcoParametersSet(bool)","6ac5db19":"max()","6ac6016f":"pepFarm(address,address,address,address,uint256)","6ac6205c":"addDataPoint(int256,uint256,bool,string)","6ac68f7f":"getBestBidder(uint256)","6ac777d3":"EEFucksToken()","6ac878f3":"multiTransferDecimals(address[],uint256[])","6ac96df8":"removeAddressesFromRole(address[],string)","6ac98840":"SGCC()","6acd58d4":"arrayIndexOf(address[],address,address)","6acd89f6":"Testerr()","6acd8e4a":"getAddedTime(uint256,uint256)","6acdf42b":"arrayOfNonTrivialAccounts(uint256)","6ace6dc8":"setApprovedBuyer(address,address,bool)","6ace7d87":"getLastCandidates()","6acf5cb3":"isUserKYCVerified(address)","6acfb852":"ZiggleToken()","6ad001a5":"metalworksCities(uint256)","6ad03feb":"GBTAddress()","6ad0d6ce":"_startNewRound(address)","6ad1246e":"content(string,uint256,uint256,address,uint256,uint256)","6ad1a6d5":"PauseTradable()","6ad1fe02":"sale()","6ad26611":"removeFee(address)","6ad2a0b3":"buildContract(address)","6ad34a7a":"BAILSToken(uint256)","6ad34dab":"getstartBlockNumber()","6ad35d1a":"CMO()","6ad38e61":"transmit(address,address,uint256)","6ad3f723":"getContentAddress()","6ad43a54":"setRateICO(uint256)","6ad44174":"getVolumebasedBonusRate(uint256)","6ad49245":"FundingManagerEntity()","6ad50ed4":"investmentEntryInfos()","6ad5b3ea":"walletAddress()","6ad60e3d":"BubbleToneToken(address)","6ad6d45b":"setLister(address)","6ad7541c":"Kokos()","6ad7aeb5":"BitsumCash()","6ad80326":"walletFounder3()","6ad95317":"batchInvests(address[],uint256[])","6ad95843":"icoUnitPrice()","6ada94e0":"setDataInt(string,string)","6adacb48":"priceStep4()","6adc674e":"WaltixToken()","6adcef6b":"payDividends(uint256)","6addb663":"tokenInfo()","6addc649":"weekBonuses(uint8)","6ade6cea":"currentstageplayer2()","6ade8aa2":"emptyWallet(address)","6ade9bd1":"tokensFortorch()","6adf3279":"leekStealOn_()","6ae00c4f":"ShareRoomDATA(address,string)","6ae0646a":"_computeRollFee(uint256)","6ae17283":"MinterAdded(address)","6ae22740":"reward7()","6ae38577":"accPreICO()","6ae413ab":"updateWebappAddress(address,address)","6ae459bd":"bulkMint(address[],uint256[])","6ae4feed":"subtract(address,address,uint256)","6ae6151e":"acceptOffer(bytes32,address,uint256)","6ae6921f":"_addPayee(address,uint256)","6ae6b459":"setLockup(uint256)","6ae76777":"addressBounty()","6ae81ae1":"icoPhase3TimeBonusInPercentage()","6ae85216":"countAssets(uint256)","6ae85e0d":"isAddressNotVoted(address,address)","6ae8f49a":"WebCoin()","6ae8fefa":"NetareumToken()","6ae9eea8":"s39(bytes1)","6aea5f1b":"current_supply()","6aea6cce":"breakCompleteness(uint256,uint256,address)","6aeaef97":"inheritedView()","6aeb1ce7":"m_paymentChannels(uint256)","6aebbbd9":"subUIntValue(bytes32,uint256)","6aebc603":"Villj()","6aebff5d":"lccxTeamAddress()","6aec47b4":"getBalancesAgent(uint256)","6aec82b3":"setSalesPipe(address)","6aec95cc":"registerBalanceForReference(address)","6aedc282":"MarriageContract(address,address,uint256,string)","6aede5cd":"globalTimeVault()","6aedf1d1":"SupportAdded(address)","6aeeec7f":"_setStakingEpochDuration(uint256)","6aefef17":"test01CrowdsaleInit()","6af04a57":"newContractAddress()","6af1fdf7":"delegateTokens(address,uint96)","6af2da2f":"testKeyedHash()","6af41534":"withholdToken()","6af422fc":"RSPLT_H()","6af53f2f":"MaPToken2()","6af58d83":"getMin(uint256)","6af630d1":"DARKNODE_FEES_DENOMINATOR()","6af6b06f":"setNextLotteryTTMTokenId9(uint64)","6af6e64a":"VendorRegistry(address)","6af78ab1":"startWeekFour()","6af79112":"priceInWei(uint256)","6af7dbbe":"sendPriceRequestToOracle(bytes16,uint256)","6af81d6f":"_mintCategory(string)","6af91799":"totalTokenSaled()","6afa0381":"minInvestmentLimit()","6afa7b80":"toETH()","6afb434f":"getPreIcoInvestment(address)","6afb92a1":"MeepCoin()","6afbd04f":"Mintable()","6afc3474":"saleRoundsSet()","6afe74c9":"test_oneValidEmptyAddress()","6afeada3":"finishBountyAt()","6aff1a64":"TIER2_PRICE()","6affdc39":"saleEndDate()","6affe07b":"CirclesTokenOffering(address,uint256,uint256,uint256,uint256,uint256,address)","6b0028b9":"initialSupplyInFrac()","6b007e4f":"logMarketFinalizedCalled()","6b015897":"minimumRewardWithdrawalLimit()","6b01acf5":"counterToTokens(uint256)","6b0235a0":"tla()","6b038742":"Archetypal()","6b03ed5f":"clearClaim()","6b041da2":"SEVENTNET()","6b04f110":"mint_for(address,uint256)","6b061d7a":"changeRestarTime(uint32)","6b06548c":"EarlyInvestorsTokensHolder(address,address,address)","6b068e01":"collectWorks(bytes32,bytes32)","6b069710":"scheduleCall(address,bytes,uint256,uint256,uint8)","6b06afe7":"getEcoSystemWallet()","6b06c3d4":"ActivateEscrow(uint256,uint256,uint256,uint256,address)","6b06ea88":"ElementToken(uint256,string,string)","6b074a07":"isProvider(address)","6b08a833":"EDUTURN()","6b08f2ef":"convertForPrioritized2(address[],uint256,uint256,address,uint256,uint8,bytes32,bytes32)","6b091695":"getReward(address,address)","6b097cd0":"KKOGToken()","6b0bfc80":"feedAndMultiply(uint256,uint256,string)","6b0c537b":"generateRequestId()","6b0c932d":"lastDay()","6b0c9d6a":"distributeA()","6b0cba9c":"getUniqHash()","6b0cc513":"_DifficultyCalulate(uint16,uint16)","6b0d0329":"getTicketInfo(uint256,uint256)","6b0dd90f":"getVote(address,uint256)","6b0dfb76":"getLandDefender(uint8,uint32)","6b0ead6a":"iudexIdToString(bytes32)","6b0f02e6":"firstExchangeRate()","6b0f182e":"changeCofounderA(address)","6b0f65d7":"indSeedDeposit()","6b1092f2":"ADV_BTY_SUPPLY()","6b11c87a":"RealEstateCryptoFundBounty(address)","6b11dabd":"MTYToken()","6b128b2f":"upgradeFinance(address)","6b12a7bf":"buyRealm(uint256,uint256,uint256)","6b13fabf":"SampleToken()","6b140854":"totalWinValue()","6b1426a4":"getWinners(uint256)","6b149aac":"Cryptassist()","6b14dfe1":"SPEED_STAT_MAX()","6b14ea36":"ASK_STAKE_RATIO()","6b153322":"activateCampaign(string,uint256)","6b15c47c":"tokenCalculate(uint256,uint256)","6b1781b6":"Emergency()","6b17864f":"CommunityPool(address,address)","6b1786bb":"cVideoCost()","6b178b90":"NBACoin()","6b178f47":"poolIssue()","6b190ee1":"MemeNetworkToken(address,uint256)","6b194a4a":"ALLOCATION_LOCK_END_TIMESTAMP()","6b1970ab":"TheCoin()","6b199471":"updateMasks(uint256,uint256,uint256)","6b19e692":"getPaymentSupply()","6b1ac900":"setPXLPropertyContract(address)","6b1af75e":"sendReward(address,address,uint256)","6b1b3997":"ChronoDragonPowerCoin()","6b1b68ad":"URMBToken(uint256,string,string,address)","6b1bfd33":"setFundAccount(address)","6b1c86fe":"sendBreakup(address)","6b1cb549":"orderMatch(uint256,uint256,uint256,int256,uint256,uint256,address,uint8,bytes32,bytes32,int256)","6b1d4db7":"ethToTokenSwapOutput(uint256,uint256)","6b1da364":"getWinnerInfo(uint256)","6b1e0420":"blockPendingTx(uint256)","6b1e564a":"challengeWinningOutcome(bytes32,uint16)","6b1f513b":"makeDailyInvest(uint256)","6b1f78c8":"joinSqr(uint256)","6b1fbfdb":"sendWithSignature(address,uint256,uint256,bytes,uint256,bytes)","6b1feeeb":"get_my_sig()","6b212960":"offer(address,uint256)","6b2148c2":"Deluxo()","6b21a636":"startDisbursement()","6b227a8f":"OrderApprovedPartTwo(bytes32,bytes,address,bytes,address,uint256,uint256,uint256,uint256,uint256,bool)","6b2327d2":"previewStageEndTime()","6b2351aa":"lockWithAfter(address,uint256,uint256)","6b235bdc":"ChangeBeneficiary(address)","6b236730":"solveChallenge(bytes32)","6b24d827":"WalletHolder()","6b252b47":"advisorsWallet()","6b256f57":"DAOSecurity(address,address,bytes,uint256,uint256,uint128)","6b259690":"feesPool()","6b263efa":"multiOwnableCreator()","6b270056":"Corporation()","6b27909d":"getStopLockTime()","6b27be9f":"mayorcoin()","6b281b64":"totalBalanceUp()","6b28d7a2":"blockTransfer()","6b28f834":"getPeggedTokenCount(address,address)","6b298df0":"disbursements(address)","6b2a2691":"winBrickReturn()","6b2a77ed":"End5()","6b2a86be":"dropToken(address[])","6b2accac":"toDRP(uint256)","6b2ae2ab":"Notify_String(string,string)","6b2bb92a":"finishTournament()","6b2c0f55":"removePauser(address)","6b2c116c":"AmateurPlatinumToken()","6b2cd752":"getGpgKey()","6b2ce4ce":"stakeForDuration(address,uint256,uint256,bytes)","6b2ce7f1":"togglePresale(bool)","6b2d95d4":"getLockedTokens(address)","6b2e36b0":"canUpdateAmountToTakeAsRake()","6b2ec90f":"_vestedDown(uint256,uint256,uint256,uint256)","6b2ed1c0":"sellFci(address,uint256)","6b2f4632":"totalEthereumBalance()","6b2f65b0":"isArtist(address)","6b2f68f5":"assertEq22(bytes22,bytes22)","6b2f73c2":"preICOLedger()","6b2fa6cc":"lastBlock_v7Hash_uint256()","6b2fafa9":"getHash(uint256)","6b2fd0e7":"catGenes(uint256)","6b3032c6":"getSingleGuessInfo(uint256)","6b308ee7":"subTourFreezingPrice()","6b30f243":"VCChainToken()","6b318270":"addFile(bytes32)","6b319f36":"tokenUnfreezeTime()","6b31ee01":"jackpot()","6b32bb25":"containsValue(address,uint256,string,uint8[])","6b32c591":"userClaimAmt()","6b334e49":"senderCheck(address,address)","6b335b8c":"buyXname(uint256,string)","6b33aeb8":"YSH()","6b33e45d":"setWithdrawTo(address)","6b3416b5":"transfer(uint256,uint256,uint256,uint256,uint256,uint256)","6b342eb8":"_minimumBuy()","6b3559e1":"mintAndSetData(address,uint256)","6b3578f2":"paymentEnabled()","6b35bed2":"addAirdropParticipants(address[])","6b35f7c1":"deleted()","6b36028e":"setReferenceType(bytes32,string)","6b361c80":"TokenPriceUpdated(uint256)","6b36a76e":"MIPCoin()","6b3868db":"getMemberByIdx(uint256)","6b3905c4":"getNextVestingTime(address)","6b392680":"setFeeAmount(uint256)","6b3a87d2":"WatchWinningPot()","6b3a8e90":"tournamentJackpot()","6b3ac430":"crowdsaleLive()","6b3ad4f8":"setColorWhite()","6b3b1d17":"tHasBeenPenalized(uint256,address)","6b3b261c":"addSpaceshipMoney(uint256)","6b3bc4b6":"ovcPerEther()","6b3c9757":"advisorSecondLockTime()","6b3ce49b":"getRoomBalance(uint256,uint256)","6b3cedd6":"mintTokensForCrowdsaleParticipants(address[],uint256[])","6b3d998c":"Apputoken()","6b3e2f97":"updateDiamond(string,string,string,string,string,uint256,uint256,string)","6b3e8ca0":"setPrePresaleTokens(uint256)","6b3ec0ac":"vestingExists(address)","6b3f5f84":"OwnerReclaim(address,uint256)","6b3f94ab":"GoldMintToken()","6b3fb674":"noHash()","6b3fdc5a":"oraclize_setNetwork(uint8)","6b3fdf16":"EXT_COMPANY_THREE()","6b3ffb91":"changevanity(string,address)","6b404955":"depositDelta()","6b407837":"sellerRequestCancel(bytes16,address,address,uint256,uint16)","6b4097b2":"_runAdvanceClock(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","6b40bba1":"requiredPeriodSeconds()","6b424d47":"h2g2()","6b425093":"sortTopPosts()","6b433ccf":"_totalLandholderTax(uint256)","6b440e9a":"finalAllocation()","6b441abc":"VIRTUALTALK()","6b453fac":"hardWeiCap()","6b454d4c":"next_item_index()","6b45adf3":"cellsOf(address)","6b45c9f2":"getPiece(uint256)","6b462936":"transferQueue(address[],uint256[])","6b4660f8":"getStockLength()","6b46c8c3":"payoutAmount()","6b475df7":"release6m()","6b486818":"hashFirst()","6b489028":"DEVCLASS()","6b4a6ded":"TOKENS_PER_ETHER()","6b4a8b78":"token_allowance(address,address)","6b4b1f3a":"stringToAddress(string,address)","6b4b63fa":"Bank_With_Interest()","6b4bfeae":"checkClaimExpiry()","6b4c0789":"freezeContract(bool)","6b4c5856":"WyeContract()","6b4ca2a8":"getMatchData()","6b4dd158":"getPrice(bytes)","6b4dff1f":"validateGasPrice(uint256)","6b4e243d":"callOperator(address,address,address,uint256,bytes,bytes,bool)","6b4e8bb0":"lastInflationUpdate()","6b4ed21b":"holdersCount()","6b4f518a":"preICOTokenReward()","6b4f6865":"unlockForWork(address,address,uint256)","6b50b6b3":"_multiSigWallet()","6b512327":"_deleteIPFSHash(bytes32)","6b523b68":"periodCrowdsale()","6b52a071":"SALE_FUNDS_ADDR()","6b52a86f":"DesTokenSale(address,address)","6b5396dc":"batchPresaleVesting(address[],uint256[],uint256[],uint256[],uint256[],uint256[])","6b5424b3":"HACHIKO()","6b54821f":"setupAuthentication(address,bool)","6b550dd3":"setAgriChainDocuments(address)","6b55264d":"setRegionName(uint16,string)","6b55ddd0":"getJobEmployerName(uint256)","6b55e991":"transferEther(address)","6b56476b":"removePost(address,address)","6b5648f5":"enabledMint()","6b565345":"CANAToken()","6b57825c":"getCurrentUserTotalPromoBonus()","6b57cb34":"lockedStagesNum(address)","6b584b10":"testFreeSpace()","6b588775":"rateOfSpecificTier(uint256)","6b58b2bc":"calculateInternalTokensAmount(uint256,uint256,uint256)","6b590248":"getDigit()","6b59084d":"test1()","6b59f495":"tokenized()","6b5a61ac":"changeTeamNIMFAAddress(address)","6b5ae41c":"execute0(address,uint256,bytes)","6b5aed93":"executeTransfer(string,string,uint256,uint256)","6b5b6285":"PBKtoken()","6b5bbf5f":"setCommunityMultisig(address)","6b5c4b16":"dateRelease12()","6b5c5f39":"croupier()","6b5c8fba":"confirmParties()","6b5ca27d":"finalizeCampaign(uint256)","6b5caec4":"setBot(address)","6b5cd8d0":"getWeaponDamageFromTokenId(uint256,uint256)","6b5d18fd":"getProposedIpfs(bytes32)","6b5d3287":"sellTokensForUsd(string,address,uint256,uint256)","6b5de05a":"tokensForTournament()","6b5e1a18":"payoutThreshold()","6b5e3ca4":"StaffWallet()","6b5e7b06":"getPenndingBalances()","6b60386d":"init(uint256,uint256,address,address,address,uint256,uint256,address,uint256,bool)","6b6093c2":"FreezeBalances(address)","6b61c3c7":"acceptBet(bytes32,bytes32,bytes32,bool)","6b628816":"getYumerium(address)","6b6292d9":"securityTokensPercent()","6b62cb1b":"createName(bytes32,address)","6b62cd65":"bankerAllDeposit()","6b634440":"tokensForPartners()","6b63d145":"OWNER_TOKENS_PERCENT()","6b6438cc":"payoutCursor_Id_()","6b64c769":"startAuction()","6b655e45":"getJuryMembers(uint256)","6b6566f0":"DiceOffline()","6b65a834":"ratePlanIsExist(uint256,uint256)","6b65be60":"usedPositions()","6b668601":"preSaleConversionRate()","6b676966":"tokenNeedForBonusLevel1()","6b683896":"getImplementation(string)","6b6872c7":"OeTestCoin()","6b68db6a":"FipsData(bytes20,address,bytes)","6b68dd4b":"tokensOfOwnerWithinRange(address,uint256,uint256)","6b693027":"collateralizations(address,uint256)","6b698377":"DogecoinPrivate()","6b69ac58":"upgradeHealth(uint256,uint256)","6b6a08dc":"hashRevealedPositions(uint32,int64[])","6b6a53fa":"testThrowsRestartNotOwner()","6b6b2740":"RetailLoyaltySystemBase(uint256,string,string,uint8)","6b6c5a7e":"getBracketData()","6b6cc239":"isMaintenanceMode()","6b6d294e":"worldCupResultPart3()","6b6d5c82":"encryptedBallots(uint256)","6b6e71b9":"makeTransaction(address,uint256,uint256)","6b6ece26":"ban(uint256)","6b6ee875":"tokenSealer(uint256)","6b6ef0ed":"transfer0(address,uint256)","6b6f4826":"minInvestmentICO()","6b6f4a9d":"discount()","6b7006d7":"lockMana(address,uint256)","6b709a36":"lockWorker(address,address)","6b7128ec":"getBetCount(uint256)","6b71d93b":"VerifiedProxy(uint256)","6b727312":"easyCommit(uint256,uint256,uint256)","6b7285d7":"transferP2P(uint256,address)","6b74401a":"BuyTokensDirect(address,uint72,uint88,uint88)","6b74c3d8":"getTxn(address,uint256,uint256)","6b755aa2":"reCommentRewardPool()","6b764632":"KongToken()","6b76484e":"swap(address,address)","6b76bd94":"CreateUser(string)","6b78aa08":"MarketHub(uint256)","6b790be4":"getWeightMinusFees()","6b792c4b":"emergencyWithdrawETH(uint256)","6b7976c8":"calculateObtainedINA(uint256)","6b7a247e":"setlvlSign(string)","6b7ae8dc":"foundationWallet()","6b7ae8e6":"left74(uint256)","6b7b0472":"getLastHash(bytes10)","6b7c0379":"HOPPToken()","6b7cc44f":"detail()","6b7d5205":"Diamond()","6b7d5dfd":"setTangibleAssetDisbursementAddress(address)","6b7d90ff":"unVerifyKyc(address)","6b7d9a5c":"createPromoPuppy(uint256,address,uint16,uint16,uint16,uint16)","6b7db8fc":"sendDividend(address,uint256)","6b7e4175":"EphronIndiaCoinICO(address,address,address)","6b7eba7d":"instantTransfer()","6b7f3a32":"Jojo(uint256,string,uint8,string)","6b7fad1b":"ethToDividendsNeeds()","6b7ffb92":"revote()","6b802108":"checkValidSignatureAndMethod(address,bytes)","6b8184e2":"ImpeachmentAccepted(address)","6b8263ed":"resumeOffering()","6b8287a6":"getetherpriceinUSD(address,uint256)","6b8393dd":"getSold(address,uint256)","6b847dc0":"setDayWithdraw(uint256)","6b8487be":"GigToken(bool)","6b84dfcd":"setTransferRight(address[],address[])","6b863578":"noVoteSum()","6b872309":"x(address,uint256,address,uint256,bytes32,bytes32)","6b87d9f7":"BUBBLEToken()","6b881724":"assetWallet()","6b886888":"isTemporary(bytes8)","6b88719a":"PHOENIX_CORSAIR_FTL_SPEED()","6b889cce":"call_test()","6b88f4ae":"resetIndex(uint256)","6b89be03":"getActiveShareholdersArrayLength()","6b89bfc7":"getStatusOf(address)","6b8ab97d":"reset(address)","6b8b3268":"mintCrown(uint256)","6b8c261e":"prizeByNow()","6b8c4c48":"setDaxInBtcSatoshi(uint256)","6b8c7180":"setupPeriodForPreSale(uint256,uint256)","6b8cc89d":"INVESTMENT_USER2()","6b8ce30e":"partnerInfo_for_Owner(address,bytes32,uint8,bytes32,bytes32)","6b8da9a2":"tgrLive()","6b8f155a":"numberWhitelisted()","6b8f9c43":"setPayoutWallet(address)","6b8fd600":"priceOfElements(uint256[])","6b8fe0f0":"NewPlayer(address,uint256)","6b8ff574":"getName(uint256)","6b90ce93":"simulated_snt()","6b915d43":"melonToken()","6b9168e6":"clearAngelsFromBoard(uint16)","6b919488":"removeOwner(uint256)","6b930927":"preTgeTokenSupply()","6b931cad":"replaceAdministrator(address,address)","6b944bd6":"GoBlock()","6b946680":"parentKidsLink(uint256,string,string)","6b94692a":"isPresaleBuyer(address)","6b95767d":"giftSpaceship(uint16,address)","6b962c27":"transaction_internal(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[4])","6b963f20":"changeOVISReservedToken(uint256,int256)","6b96668f":"setRateContract(address)","6b97be1f":"transferPayable(uint256)","6b97c6d7":"_transferOwnershipOfItemsStorage(address)","6b97e5eb":"UnicronToken()","6b9808a1":"buyWine()","6b98419a":"_approveFor(address,uint256)","6b9896ba":"AddAccountsInfo(address,uint256)","6b98c85c":"bltMasterToSale()","6b98d78c":"setLandSlogan(uint256,string)","6b99a13e":"editNumber(uint256)","6b9a1db9":"wanUnit()","6b9b1006":"TransactionRecorder()","6b9b2679":"setReserveForFoundersFirst(address)","6b9c1d22":"managementFeeWallet()","6b9c6116":"PULSCrowdsale()","6b9cadc1":"isValidMsgValue(uint256)","6b9cf534":"_minimumBuyAmount()","6b9da657":"sendNewEntry(string)","6b9db4e6":"getLock(address)","6b9f96ea":"flush()","6ba0b4f2":"isKnownSelector(bytes4)","6ba0b8bc":"getBonusPercent(uint256,uint256)","6ba0f114":"EtherChain()","6ba15807":"evntCreateContract(address,address,address,address,uint256,string)","6ba20015":"maxplayers()","6ba2482d":"GetUserNickName(address)","6ba2aefc":"transferMultisig(address,address,uint256)","6ba42aaa":"isKeeper(address)","6ba44d3c":"get_address(string)","6ba47299":"buyDiscountTTWByETH(uint256,address)","6ba4c290":"modifyEscrowPrice(uint256,uint256,uint256)","6ba4f143":"_setAuraValue23(uint256)","6ba4fadb":"changePhaseToPreICO2()","6ba55c6d":"coinIssuedFoundation()","6ba5ef0d":"setMin(uint96)","6ba6984c":"setHBT(uint256)","6ba6e2e0":"TGCToken(address)","6ba75608":"claimAssetPack(uint256)","6ba7d28a":"checkVestingWithFrozen(address)","6ba7e31c":"PriceSet(string,uint64,uint8)","6ba7ffd5":"requestCnt()","6ba8d421":"transferHackoinTokenOwnership(address)","6ba951c4":"EtherModifierTigro()","6ba9a40b":"withDrawBalance(uint256)","6ba9fd38":"openMinting()","6baa0f8e":"createSystemAuction(uint256)","6baa2ff7":"preSale(address,uint256)","6baae8e5":"_prand(uint256)","6bacc0fa":"hasSaleEnded()","6bacdc87":"InterestFreeLending(address,address,uint256,uint256)","6bacfe43":"getCCH_edit_16()","6bad77e1":"getNumProducts()","6bad8ed8":"freezingPercentage()","6bae05cf":"preRegister(address)","6bae116f":"getBonusMultipierInPercents(uint256)","6bb0ae10":"print(uint256)","6bb15940":"getCurrentSaleRate()","6bb1605b":"filehash()","6bb164c9":"isCantonEmployee(address)","6bb20f9b":"searchWhitelist(address,address)","6bb27584":"capRound1()","6bb2c12f":"createRequest(address[4],address,uint256[12],uint256,bytes)","6bb3130e":"disbursementWei()","6bb35840":"PowerGiggs()","6bb3c065":"round4Sold()","6bb4cf76":"createToken(string,string,uint8,address[],uint256[],uint256[])","6bb4d573":"evMinTokensReached(address,uint256,uint256)","6bb50f4c":"_openGamePlayNo(uint256)","6bb53c90":"ticket(uint256,uint256,uint256,uint256,uint256)","6bb56e8b":"crowdsaleEth()","6bb60475":"_insertSortMemory(uint32[11])","6bb6126e":"exec(address)","6bb6ea30":"createInterceptor()","6bb72c97":"numTokensInLottery()","6bb7b7a4":"rare()","6bb7f336":"updateUnsoldTokens()","6bb7f98e":"getHighestMilesOwnerAt(uint256)","6bb80acc":"_createCovfefe(string,string,uint16,address,uint256)","6bb80d51":"dividendPercentage()","6bb82e82":"addToWhitelist(address,uint256,bool)","6bb9b9ab":"getTodayDividendsByAddress(address)","6bba3f2f":"kappa()","6bba5c15":"changeParameters(uint256,uint8,uint256,uint256,uint256)","6bbadf09":"addPokemonDetails(string,uint256,uint256)","6bbae823":"LIMIT_STAR4()","6bbbc182":"addVerified(address[])","6bbbec85":"updateGameMeta(uint256,string,string)","6bbc5748":"FeeChanged(uint256)","6bbe0410":"NewTransaction(string,uint64,string,uint64,uint8)","6bbe24d4":"dataSourceGetQuarterResult(uint256)","6bbe6f7f":"buyCoinsPreview(uint256)","6bbea781":"getApproveValueFor(address)","6bbeb9de":"loginUser(address)","6bbeba8a":"setService(bytes,address)","6bbf54a4":"PCF()","6bbf592d":"bytesCallWithArray(bytes32[4])","6bc02730":"approveBreeding(address,uint256)","6bc0b3ba":"jackpotAddress()","6bc0f7fb":"isProxyLegit(address,address)","6bc1f1e4":"updatePriceAndInventories(uint256,uint256,uint256,uint256,uint256,uint16)","6bc21808":"CategoryAuction(address)","6bc2805d":"cancelAllEnter()","6bc31311":"EFFCoin(address)","6bc32c7b":"get_train_data_length()","6bc388b2":"canFreeze(address)","6bc3b437":"newService(string,string)","6bc3e0f0":"verifySecondHalf(uint256[4],uint256[4],uint256[4])","6bc3e4a8":"claimMultiple(address,uint256)","6bc46fb2":"totalHatcheryShrimp()","6bc5063c":"VestedTokensReleased(address,uint256)","6bc507b1":"getBlackflag(uint256,address)","6bc5b964":"getMemberWhisper(address)","6bc5c0cd":"releaseBonus()","6bc6147e":"unlockMainSaleToken()","6bc64e0f":"preSaleEnd()","6bc65778":"getAllProductList()","6bc789cd":"getONG_AUDIT(bytes32)","6bc85107":"isMemberInDescendant(address,bytes32)","6bc8a260":"getUserWinInTournament(uint256)","6bc99824":"VoltToken()","6bc9b0d7":"getPromiseIds(uint256,uint256,address,bool)","6bca81d4":"revealBid(bytes32,address,uint256,address,address,bytes32,uint256,uint256)","6bcaaed9":"PetmancoinToken()","6bcab76c":"setDApp(address)","6bcc035a":"getStatusAndOutcome()","6bcc28a9":"kittensRemainingToDrop()","6bcc311c":"tokensForBonus()","6bcc7241":"getPriceWei(uint256)","6bce23be":"setupTokenRate(uint256)","6bce6569":"reservedPercentTotal()","6bce8a96":"whitelistedAddressCount()","6bceead7":"setSquareWins(uint256,uint256,uint256)","6bd0021c":"bonusPhase()","6bd31a56":"hardCapLowUsd()","6bd37274":"Pixiu_Beta()","6bd3a1c3":"PresiamDrop()","6bd3d406":"totalPresale()","6bd46bd2":"setTokenBurnFeeReceiver(address,address,address,address)","6bd484c4":"oracleCallbackGasLimit()","6bd4dfce":"setStarterClass(uint256,uint32)","6bd5084a":"number_of_claims()","6bd50cef":"getConfiguration()","6bd58db5":"Total_Patient(uint256)","6bd5e26a":"lockTo(address,string)","6bd61a66":"nonHighestBidderRefund()","6bd6775f":"Presale(address,address,address,address,uint256,uint256)","6bd68a8f":"referralAmount()","6bd70a1f":"MIN_IVESTMENT()","6bd7e7dd":"CatBought(uint256,uint256,address,address)","6bd7eeeb":"maximumTokensForFirst()","6bd87c86":"Try2222()","6bd8fd12":"currentMinBid()","6bd92f7c":"activateAllowanceRecord(address,address)","6bd9b4da":"setMinETHin(uint256)","6bda3422":"Token(uint256,string,string)","6bdaa520":"forciblyRequest_callback()","6bdbc918":"BaseTransactionService(address,address)","6bdbf8e6":"concat()","6bdc06f5":"cancelRegistration(address)","6bdc1d2a":"GoldRex()","6bdc62b9":"composeJingle(string,uint256[5])","6bdc9546":"setCommunicationUri(bytes32)","6bdcdb2d":"getAutomatedReportDueTimestamp()","6bdcdeaa":"setMagicStore(address,address)","6bde2e7f":"_setBodyColorValue3(uint256)","6bdea7eb":"AddBonus(uint256)","6bdebcc9":"destory()","6bdee200":"enableTicker()","6bdee235":"Zeroexchange()","6bdfd723":"getNewEnglandBets(address)","6be00229":"exitAddress()","6be03bd2":"configTimeInc()","6be050d2":"FibokenUsed(uint8,address,uint256)","6be0c670":"chipSize()","6be13c92":"coldWallet()","6be202cf":"addSomeDETsTo(address,uint256)","6be24a47":"create(address,address,address,address,address,address,address,string,string,string)","6be2f28e":"totalAmountOfWeiCollected()","6be32e73":"tokenCallback(address,uint256,bytes)","6be343cc":"setFoundAcc(address)","6be39bda":"getTerms(bytes32)","6be4097c":"currentLotteryId()","6be422b2":"determinReferrer(address)","6be47418":"latchFciUserController(uint256,address)","6be47618":"deleteContract(uint8[],bytes32[],bytes32[])","6be4cf1f":"buyTokensFor(address)","6be4d9b0":"changeResolverAllowances(address[],uint256[])","6be505f5":"selectWinner(bytes32)","6be598b4":"SIGTToken()","6be5f4a6":"checkVictoryByScore(uint256)","6be60f8b":"underwrite(uint256)","6be67db3":"contractNameUpdate(string,bool)","6be6fa14":"getTransferFromValueValue()","6be80de7":"investorIDs(address)","6be82168":"NeycoinToken()","6be86f21":"bonussale_TokesSold()","6be9564a":"ListingBought(bytes5,uint256,uint256,address)","6be99794":"getTransferToValue()","6be9a8df":"GetGuestQueueNumber()","6be9f7a0":"emitDeposited(address,uint256,address)","6bea0b79":"getAccountData(address,string)","6bea8215":"createGenerator(uint256,string,uint256,uint256,uint256)","6bea989d":"AUTH_FREEZEACCOUNT()","6bea9d81":"BLOCKPIX_Coin()","6beace8f":"AllocateFounderTokens(address,uint256)","6beadfc7":"approveandcall(address,uint256)","6beb509d":"updateCanRefund(bool)","6bec32da":"mintToken(address,address,uint256)","6bec454a":"buyCity(uint256)","6bec51cc":"generate(address,address,uint256)","6bece548":"preSaleBonus1Time()","6bed09be":"buyTokensUpdateState()","6bed6de5":"sendObjectWithApproval(uint256,address)","6bedb845":"MultiSig()","6bee2cc3":"registerLottery(uint256)","6bee5131":"FW(uint256,string,uint8,string)","6bee73db":"testAllowance()","6bee76ea":"withdrawBond(address,uint256,uint256)","6bee9cfa":"offsetFeeRate()","6bef2a94":"earlyPurchaseTokenAmount()","6bef90f8":"VUP_PER_ETH_BASE_RATE()","6befa297":"WCT1(address)","6bf006c8":"capReached(uint256)","6bf06fde":"transferToNewContract(address,uint8,bytes32,bytes32,bool)","6bf0873a":"birth(uint256,uint64[])","6bf0a3bf":"LIQUID_ALLOCATION_PPM()","6bf0c7fd":"getBracket(address)","6bf0f4a1":"roll(uint8)","6bf13959":"endAtCheck(uint256)","6bf20a77":"unfrozenATAccount(address,address)","6bf2606a":"PATCH_VERSION()","6bf30259":"checkIncentivisingBalance()","6bf32504":"markAsFailed(string)","6bf341e7":"_fundowner()","6bf4223b":"getRoundEnd(uint256)","6bf42646":"holdTokenInvestorsCount()","6bf42ea5":"TokensBought(address,uint256,uint256,uint256,uint256,uint256,uint256)","6bf4398d":"saniwallet()","6bf51a18":"stepLockCheck()","6bf52ffa":"Vote()","6bf5595d":"CrowdSale(uint256,uint256,uint256,address)","6bf6dd6f":"associate(bytes32,bytes32[],address[])","6bf807fc":"unlockTimes(address)","6bf82d74":"ethFundMain()","6bf8b92d":"changeSeed(uint32)","6bf8bfab":"DutchAuction(address,uint256,uint256)","6bf8f85a":"forceFinish()","6bf91c63":"configOf(uint64)","6bf99bbf":"ICOResumed(uint256,uint256,uint256,uint256,uint256)","6bf9b3e7":"approveWithdraw(address,address,uint256)","6bf9b731":"claimFor(address,address,address)","6bf9e633":"winnerIsA()","6bfa379e":"readyTokens(address)","6bfa5edc":"operatingOfficerAddress()","6bfaa903":"increaseOwnershipTokenCount(address)","6bfae928":"calcReserve(uint256,uint256,uint256)","6bfb0d01":"itemCount()","6bfbbdf5":"DutchAuctionToCraft(address,address,address)","6bfbc9f7":"HongToken(uint256,string,uint8,string)","6bfbf5e6":"levelChanger()","6bfc8bb5":"setIPFSHash(bytes32,string)","6bfc9561":"sellStake()","6bfd9716":"SaleTracker(bool)","6bfdb7eb":"getBeneficiary(address,address)","6bfdd3dd":"_sanMint(uint256,address,string,string)","6bfe6bc0":"setEthPricies(uint8)","6bfee863":"CipherToken(uint256,string,string)","6bff1901":"coreTeamSupply()","6c00161a":"distributeWithMilestone(address,uint256,uint8)","6c00bb44":"AuctionSuccessful(address,uint256,uint256,address)","6c012923":"feeForSplitterCreation()","6c021968":"RefundTransfer(uint256,uint256,uint256,address)","6c026f59":"ii()","6c02a931":"tokenName()","6c0360eb":"baseURI()","6c03cd49":"getInviteRate()","6c04066f":"BlockLockSet(uint256)","6c042689":"endStage1()","6c043773":"sendPacket(address,bytes)","6c047c36":"evaluateProposalMetricStart(uint256)","6c049b89":"toggleCrossForking()","6c04c1c9":"LuckyEthereumLotteryToken()","6c050eae":"look()","6c052cd8":"getGroupMembers(bytes32)","6c054113":"setPhaseSale(uint256,uint256,uint256)","6c054ad0":"createContractor(address,address,bool,address,string,string,bool)","6c055ce2":"withdrawToPartner(address,uint256)","6c060a7a":"_batchPopularitySetting(uint256[],uint8[])","6c062806":"addAdminAddress(address,address)","6c062cc7":"Forge()","6c064d63":"_setCompositionPrice(uint256,uint256)","6c08729e":"TransferToSAToE(address,uint256)","6c08faf7":"getCaseCount()","6c096192":"fetchCreatedOrdersForPayer(address)","6c0a1117":"doCancelAll()","6c0a1605":"EthTurnWCG(uint256)","6c0b1e8c":"VESTING_START_TIME()","6c0b66b9":"PGO_UNLOCKED_LIQUIDITY_CAP()","6c0c27e1":"acceptBet(uint256)","6c0d2c8b":"getHeroPower(uint256,uint256)","6c0daed8":"getRate(string)","6c0db60e":"CatexToken()","6c0eb56f":"LOG_EmergencyWithdrawalProposed()","6c0ebc6c":"perform_withdrawal(address)","6c0f7ee7":"multiAddDSource(bytes32[],uint256[])","6c10dcdf":"ProvidenceCasinoToken()","6c118f46":"TimeWindowUpdated(uint256,uint256)","6c11bcd3":"sellTokens(uint256)","6c1247e5":"databaseContract()","6c131dbe":"multiMint(int256,uint256[])","6c1334bf":"SetDescript(string,string)","6c13b5f2":"totalReceive()","6c1475ad":"tryAdvance()","6c14bb42":"buyAutos(uint256)","6c14f2d1":"m_ETHPriceLastUpdateRequest()","6c150f42":"initLeftICOTokens()","6c15e8e6":"GlobalConstraintRegistrar(int256)","6c169818":"isFreezeAccount(address)","6c16c740":"Start9()","6c172095":"gameCenter()","6c17729b":"JoygoEOS(string,string,uint256,uint256,uint256,uint256,uint256,uint256)","6c182e99":"lastTokenIsTransferableDate(address)","6c188593":"setMinBetAmount(uint256)","6c189c46":"releaseAmisToken()","6c18cc1e":"firstSellHSShop(uint256,uint256,uint256)","6c194b59":"lastTransactionRec()","6c197ff5":"sell(address,uint256)","6c19e783":"setSigner(address)","6c1a5b8c":"TOKEN_TARGET()","6c1c6d93":"setVipAddress(address,address)","6c1c86f7":"PlanEX()","6c1d0157":"distributeMoney(address,address,uint256)","6c1d4fd9":"advisorsTokensThirdReleaseTime()","6c1e039a":"playerRoll(uint8,uint8,address)","6c1f05d2":"breakIdMaintenance(int128,address)","6c1f27fe":"icoBonus5()","6c1f2fb3":"ico3Sold()","6c1ff101":"Crowd()","6c204fd7":"certifyMany(bytes32[])","6c2066bf":"MAX_TOKENS_ADVISORS_PARTNERS()","6c20ceb4":"DeltaChainToken()","6c20d755":"getItemRafflePlayers(uint256)","6c20fcdd":"MerkleTreeRootAdded(uint8,bytes)","6c2187e7":"GameEnded(uint256,address,uint256,uint256,uint8,uint8)","6c224487":"DEHT()","6c226eef":"_processGameEnd()","6c231060":"buyCar(uint256)","6c237c1c":"admin_token_burn(uint256)","6c23c7b0":"canOperatorTransferByPartition(bytes32,address,address,uint256,bytes,bytes)","6c2412ae":"GetChipInfo(uint32)","6c241bb1":"getCityData(uint256)","6c24a76f":"getAvailableBalance(address)","6c24c87d":"latestSenderOf(uint256)","6c24e2db":"maskpot()","6c26493c":"MyTestToken1()","6c265dc3":"calcFeeE8(uint64,uint256,address)","6c26df09":"addFootballMatch(uint256)","6c27b211":"registerBalanceForReference(address,uint256)","6c28faee":"migration(address,uint256,bool)","6c295936":"changeOptional(uint40,uint64)","6c295e34":"Add_Doctor(uint256,uint256,string,string,string)","6c29d714":"totalMarketplaces()","6c2af4e5":"MithrilAxe()","6c2bcfdd":"MAXSALESCAP()","6c2c5a19":"addCarSigned(string,string,string,uint16,string,address,bytes32,bytes32,uint8)","6c2d5d26":"symbol(address,bytes32)","6c2ec9ef":"guess_tx(bytes32)","6c2f64fe":"removeContractAddress(address,address)","6c303e1b":"Bitescia()","6c3051c9":"setWonTeam(uint256)","6c30ba53":"setTitulaire_Compte_4(uint256)","6c30d170":"renounceIssuance()","6c30f765":"testing(uint256)","6c326a46":"prizeFundHWC()","6c32c0a6":"gap()","6c32e01c":"sendJackpot(address,uint256)","6c33e7eb":"setMockAddress(bytes4,address)","6c341889":"toUint(bytes,bytes,uint256)","6c343afc":"destTokens(address)","6c343ffe":"withdrawfunds()","6c349e57":"addrunmoney(address,uint256,uint256,uint256)","6c34c97a":"setFIRST_STEP_LIMIT(uint256)","6c376cc5":"maintenance()","6c3772fd":"totalpaidout()","6c3824ef":"removeTokens(address[])","6c38d4e4":"pauseMint(uint256)","6c3919fc":"getProviderCurrentRate(uint256)","6c39b7ee":"gamesPlayed()","6c3a208d":"VistaToken()","6c3aaab7":"snailPot()","6c3aacf9":"getTokenToEthOrder(uint32)","6c3b6591":"right83(uint256)","6c3c221b":"setFunctionTwoPrice(uint256)","6c3e6a75":"forceBonds(address)","6c3e6e0c":"iconomiTokenSupply()","6c3e8e19":"_vestedAmount(address)","6c3ea721":"memberHasRight(address,string)","6c4019f4":"createContest(string,address,uint32,uint64,uint64,uint128,uint128,uint32,uint32,uint8,uint32[])","6c4040c5":"firstSaleSpenderTxDetails(uint256)","6c419326":"STC(address,uint256,uint256,uint256)","6c43a2ca":"increaseAllowance(address,address,uint256)","6c4470fb":"participants()","6c456d0f":"getERCContractAddress()","6c457528":"createUsername(string)","6c463635":"getDistValues(string)","6c464c3d":"recieveRelocation(address,uint256)","6c46a2c5":"addOwners(address[])","6c46ae22":"phasePublicSale3_To()","6c4820bb":"callModifiedWithdraw(uint256)","6c48a097":"amount_investments()","6c494843":"multiAccessChangeOwnerD(address,address,address)","6c4b3197":"getSecureFees()","6c4be791":"hasAirdrop(address)","6c4bf16b":"icoOwner()","6c4c174f":"hack(address)","6c4ceaff":"getSourceHash(uint256,uint256,uint256)","6c4d032e":"SOFTCAP_TIME()","6c4d0c00":"wasGoalReached()","6c4d4f21":"setVotingProxy(address)","6c4d7c59":"getBetProps(bytes32)","6c4db7cc":"sendFoundersBalance(address[],uint256[])","6c4dfffe":"BIKS(uint256,string,uint8,string)","6c4e5c86":"decreaseLockBalance(address,uint256)","6c4e838a":"wantNewTokens(uint256[])","6c4e86af":"dailyGrowth_ppm()","6c4eca27":"tokenTransfer()","6c4ef21e":"canUnstakePartial(address,uint256,uint256,bytes8,uint256,uint256,uint256,uint256)","6c4f5e51":"testingContracts2(string)","6c4f8c65":"DeviceIsActivated(address)","6c4fbaa4":"requestCore()","6c4fe255":"p_setMaxInvestment(uint256)","6c5077b1":"MintPaused(bool)","6c5091e3":"getERC721AddrPawn(uint256,address)","6c50bc2e":"getGeneralLength()","6c510377":"transferOutAllEthers()","6c51af67":"setPOOL_edit_17(string)","6c525b13":"unregisterSelf(address)","6c525d04":"endMigration()","6c526503":"AmountRaised()","6c52660d":"checkIfNameValid(string)","6c530ee3":"weiPerEth()","6c5376c9":"addPassword(string,string,string)","6c543c08":"_emitSkillCategoriesSet(address,uint256,uint256)","6c54d1c1":"KRYPSTRONG()","6c54df52":"getCurrentPrice(address,uint256)","6c5541b5":"changeSpender(address)","6c556859":"createGame(string,string,uint256,uint256,string,string,string,string)","6c55e385":"minimalFreeze()","6c5649d8":"setCommunityBallotCentsPrice(uint256)","6c56a3f1":"startRelease()","6c56bf3e":"CreateARCD(address,uint256)","6c56bfc0":"InitiateGame()","6c572104":"TotalSantaCoinsGivenByNorthPole()","6c57c01f":"MAXIMUM_CONTRIBUTION()","6c57dbaa":"_max(uint256,uint8,uint256)","6c57f5a9":"isDisabled()","6c587491":"playGame(address,uint256)","6c595451":"addApp(string,address,uint256)","6c597e41":"getCreditBitAddress()","6c59fb29":"allocateToken()","6c5a7d1e":"setDisabled(bool)","6c5aad6e":"fetchOrderByIdWithMerchantByAdmin(string,address)","6c5aaf50":"getDelegateDetails(address)","6c5af719":"getHoldEarnings(address)","6c5b685f":"icoPart()","6c5bde2a":"CoInsureBlockToken()","6c5c671f":"cancelIntl()","6c5ca1fa":"exchangeRateRoundOne()","6c5ccfe8":"distributeFundsInEscrow(address,address,uint256,address)","6c5d2787":"setTymTokensPercent(uint256)","6c5d6156":"burn(address[])","6c5dc78b":"setPublicSaleFinishDate(uint256)","6c5dee17":"getFileAt(uint256)","6c5e9ac1":"cmpEq(uint256,uint256,bool)","6c5e9e18":"_phase1Supply()","6c5f71c7":"numberOfPingsReceived()","6c5f8394":"DeneumToken()","6c609906":"getTotalTokensAgainstAddress(address)","6c6101fd":"ContractManagementUpdate(string,address,address,bool)","6c610f53":"getMinUnitPrice(uint8)","6c617048":"reinvestFor(address)","6c6288e4":"Thechampcoin()","6c6295b8":"setValidRateDurationInBlocks(uint256)","6c64a678":"unfreezeToken()","6c658a2c":"UpdateICOPhase(address,uint256,uint256)","6c65c455":"swapETHMKR(uint256,uint256)","6c65fd6a":"isFreezer(address)","6c675ae6":"tokens_buy()","6c677d82":"SpentTokens(address,address,uint256)","6c68c837":"verifyBalanceProof(address,uint32,uint192,bytes)","6c698882":"getActualNum(uint256)","6c699905":"revealWinner()","6c69ab24":"multitokensCount()","6c6b23d2":"updateBalances(address,address)","6c6b298a":"getMigrateInBonusIfInForkWindowValue()","6c6b9870":"updAirDropTokenEnabled(bool)","6c6c21af":"CappedCrowdsale(uint256,uint256,uint256)","6c6c39fb":"votersLength()","6c6c7e05":"amountLocked()","6c6ce21a":"setInvoice(bytes32,uint256,bool,string,string,string,string)","6c6d2653":"CrowdsaleChanged(address,address)","6c6e5108":"StoriqaCash()","6c6eb9d1":"base(uint256)","6c6f1d93":"getContractCreationValue()","6c6f31f2":"allow(address,uint256)","6c6f360e":"userRegister()","6c6fbd70":"EnergiToken()","6c7018cf":"single_card()","6c706093":"logUniverseCreatedCalled()","6c70abda":"use(uint8,uint8,uint8,uint8[176])","6c70ad0d":"PublicMineCallsCount()","6c7113e4":"getFundManager()","6c712471":"testControlRetractLatestRevisionEnforceRevisions()","6c71b1aa":"setGasReq(uint256)","6c71d01d":"ratings(bytes32)","6c720446":"isVotingPrepare()","6c7272ce":"registerVendor(address,address)","6c73d230":"logResult(string)","6c741950":"setTTL(uint256)","6c749c26":"EXA()","6c74e341":"setFoundingTeam(uint256[],address[])","6c751622":"MacQueenToken()","6c7521cb":"updateReputationScoreInBulk(address[],uint256[])","6c767f20":"playerOneReveal(bytes32,bytes32)","6c768200":"burnByOwner(address)","6c76b8f4":"_changeReward(uint256)","6c779d57":"levelSplits(uint256)","6c77f989":"joinLottery()","6c780868":"getBurnLine()","6c784995":"getBeneficiaryMarket()","6c786b65":"bonusAccountCount()","6c787229":"availableOwnerWithdraw()","6c788a0d":"bookingFee()","6c789092":"Resource(bytes32,bytes32,bytes32,address)","6c78cb81":"ETCToken(address)","6c78da22":"getPrefixPrice(string)","6c79e379":"setGallerySevenPrice(uint256)","6c7afaba":"regSpots(uint16,uint16,bytes32)","6c7bc902":"tgrCurrentPartInvestor()","6c7c7c73":"bePure(uint256,uint256)","6c7c909f":"FreshWaterFlow()","6c7ca99f":"RequestBankrollPayment(address,uint256,uint256)","6c7cc6d8":"sell(uint256,address,bool)","6c7d4c4c":"unwhitelistAddress(address,address)","6c7dde15":"validPayBuff()","6c7de422":"investmoretokens()","6c7e0236":"isNotaryVeredictValid(address,address,address,bool,bool,bytes)","6c7e7082":"overflowAmount()","6c7f1542":"balanceOf(bytes32)","6c7f3f17":"totalBuys()","6c811247":"showPlayerSafeByAddress(address,uint256)","6c814509":"setAdAccount(address)","6c81fd6d":"AddModerator(address)","6c82337e":"payJackpot4()","6c825035":"withdrawLRC()","6c830f4b":"getCompletedTasks()","6c83444d":"FLOQI()","6c8381f8":"candidate()","6c8429fd":"jpMinBet()","6c843605":"BrownieCoin()","6c84a4bf":"tokenContributionCap()","6c84ae04":"setFirstYearAllowancePercentage(uint8)","6c85c727":"removeBankroll(uint256,string)","6c85cf67":"canTransfer(address,address)","6c86888b":"testTrade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,address)","6c86ac5a":"getPublicData(uint256)","6c8716d8":"etherLowLimit()","6c876e5d":"s2(bytes1)","6c8830c5":"_maxtotalSupply()","6c8a59f2":"addresses6(uint256)","6c8ae38c":"r()","6c8b052a":"numStakers()","6c8b37eb":"MTRCToken(address,string,string,uint256,uint256)","6c8b4e60":"communityLock()","6c8d0b1e":"getSubscriberStatus()","6c8d0bcf":"getUserDAOsId(address,uint256)","6c8d65dc":"phepsToken()","6c8dea3b":"claim_ENS_name()","6c8e44c3":"ProductionUnitToken(address,uint8,uint8,uint8,uint256,uint256,uint256,uint256)","6c8e53e0":"PreSale()","6c8f093d":"PayForServiceCHLEvent(address,uint256)","6c8f455c":"checkMembership(bytes32,uint256,bytes32,bytes)","6c90c3df":"setCanClaim(bool,bool)","6c90fe09":"CcoindDigital()","6c912080":"minListingSeconds()","6c922038":"CMAPToken()","6c9230db":"getCurrentTimestamp()","6c94d0e4":"INBETToken()","6c953719":"CCASH(uint256,string,string)","6c958f74":"tokensOfferedOf()","6c963fc7":"PoWAdvCoinToken()","6c965a81":"claim(address,bytes32,string,bool,uint256,bytes32,uint256,bytes)","6c973248":"getVoteCount(uint256,uint256,uint256)","6c9784b1":"_getTokenRaised(uint256)","6c9789b0":"finalize(bool)","6c97a812":"UTExchangeRate()","6c97b731":"TimeEndChanged(string,uint256)","6c97c237":"firstSellSaddleShop(uint256,uint256,uint256)","6c981488":"paymentPeriods()","6c996bbd":"disputeOpened(address)","6c99b0da":"setFWDaddrETH(address)","6c9a1e2a":"setPOOL_edit_12(string)","6c9a5c61":"resolveExpiredBets(uint256)","6c9c1d41":"checkServiceFee(address)","6c9c2faf":"getSupply()","6c9c5944":"freeze(address,uint256,uint256,uint256)","6c9c97d8":"refundByToken(uint256)","6c9cb82f":"freeCash()","6c9d99da":"teamTokensWallet()","6c9e27d6":"ALLOC_WINGS()","6c9e89b6":"addVesting(address[],uint256[],uint256[])","6c9eafe7":"stillAllowed()","6c9f65c5":"getBidInfo(uint32)","6c9fa59e":"shareToken()","6c9fca89":"updateAppInstance(bytes32)","6ca0101e":"unopened_bid()","6ca06072":"getAttributeAdminAddr(address,bytes32)","6ca0f321":"setValue1(uint256)","6ca100fb":"firstWeekMainICOBonusEstimate()","6ca13df1":"decreaseOwnershipTokenCount(address,address)","6ca1f933":"setTest(uint256)","6ca32280":"percentageBuyBackFund()","6ca34ea2":"balances_(address)","6ca35ae4":"addDoctor(uint32,string,string,string,uint8,uint8,uint8,uint8,uint8,uint16,uint64,uint64)","6ca3b5f6":"set_maxgasprice(uint256)","6ca3daf2":"_vouchersDistributed(uint16)","6ca3fc3b":"distributePrizes(uint256)","6ca562d6":"switchCompatible223ex(bool)","6ca596fa":"isPreICOClosed()","6ca5b5b0":"r1()","6ca5bdf2":"testIntDynArray(int256[])","6ca621bd":"setEmbassy(address)","6ca78a1c":"anyRequestAvailable()","6ca78a1e":"setBorrowerReturnEthPerFiatRate(uint256)","6ca7b99b":"getDirection(uint256,uint256)","6ca7c216":"gas()","6caa2bda":"OxyToken()","6caa736b":"fundDeposit()","6caabc6f":"addCompany(string,address,uint256)","6caca63a":"WhiteTigerToken()","6cad3fb0":"updateFeePercentage(uint256)","6cadd040":"EtherAuction()","6caddb04":"orders(uint256,address)","6cae8f67":"setSellableToken(address)","6caed305":"changeBonus(uint256,uint256)","6caf25ce":"price1()","6caf3673":"getPlayerSpaceshipBattleStakeById(uint256)","6cb04993":"forceNeuroChainAddress(address,string)","6cb0e9f0":"TXToken(address)","6cb136ba":"isActive(uint16)","6cb1630f":"withdrowTokens()","6cb24199":"withdraw(bytes32,uint256,address,uint256,address)","6cb30fee":"nettingContractsByAddress(address)","6cb31171":"_currentHalfYear()","6cb39448":"getMarketerKey()","6cb3c94e":"Filler()","6cb3d30a":"triggerTryAuth()","6cb3e8ef":"getApprovers()","6cb45694":"LogDisbursement(address,uint256)","6cb520c6":"_play(string,uint256)","6cb5291e":"ICO_PRICE1()","6cb5714c":"_sendByTranche(bytes32,address,address,address,uint256,bytes,bytes)","6cb5d070":"getCoinsSinceLastHatch(address)","6cb69c2c":"setDevTokensWallet(address)","6cb69f42":"getSystemInfo()","6cb6ea82":"CBITokenCrowdsale(uint256,uint256,uint256,uint256,uint256,address)","6cb7223c":"maxPurchaseOnce()","6cb76408":"returned()","6cb78983":"purchaseMIT(address)","6cb90a2c":"pre_ico()","6cb942ab":"GameItemNew()","6cba45b8":"setDayFirst()","6cbad471":"Rappo()","6cbae51b":"firstPreSaleDate2()","6cbaecbd":"normalRoomMin()","6cbb1afa":"setTokenBag(address)","6cbb9d19":"releaseEscrow(bytes20,address)","6cbc2ded":"endGame()","6cbc9ca0":"ADDR_OWNER()","6cbceeec":"theAddress()","6cbdb7d0":"takers(uint256)","6cbec01c":"Steel()","6cbef5a7":"sumVote()","6cbf3c8c":"ICO_POOL()","6cbf9c5e":"commitVote(uint256,bytes32,uint256,uint256)","6cc03315":"getPaymentLogN()","6cc09081":"getActualPrice()","6cc23437":"setIsContainerForFeeWindow(bool)","6cc25db7":"ticket()","6cc2c668":"_presaleEndTimestamp()","6cc301e3":"permitted(address)","6cc341f1":"getIndexOrder1(uint256)","6cc48d81":"_emitHeartBeat(bytes32,int256,int256)","6cc5ab24":"digithothToken()","6cc5f3ad":"getGames(uint256[])","6cc5fdaa":"setBytes32(bytes,bytes)","6cc61d86":"setSingleWithdrawMin(uint256)","6cc67aa5":"resetExplicitState(uint32,int64[2],int256,uint64,int8)","6cc6971b":"setNewStartDate(uint256)","6cc6cde1":"arbitrator()","6cc762d8":"lastWeiPricePerCWC()","6cc7d828":"investBalanceGot()","6cc919c8":"updateConfig(address)","6cc95f8d":"ALAX()","6cca5065":"QripplexToken()","6cca60ba":"gripWallet()","6cca7023":"DoubleSend(address,address,uint256)","6cca940a":"RusgasCrowdsale()","6ccab1f3":"wwasCoin()","6ccb5d02":"getShareholder(uint256)","6ccbb0ab":"withdrawBalances()","6ccbdbf9":"getHodlAmount(uint256)","6ccc3bdd":"whitelistBonusPercentage()","6ccce7a8":"getCapOfWei()","6ccd563d":"queueAuditRequest(uint256,uint256)","6ccd5cbe":"getClassInfo(uint32)","6ccd993b":"getDestroySharesFxpValueValue()","6ccde640":"getGoodPreset(bytes32)","6cce15d8":"ICOFails()","6ccf93d3":"HeyueToken(address,uint256)","6cd02297":"processOfflinePurchase(address,uint256)","6cd05e41":"takeAllTheMoney(address)","6cd0f102":"setHouseEdge(uint256)","6cd186ce":"setUncleSafeNr(uint256)","6cd1b26c":"setQueue(uint256)","6cd22eaf":"updateAuthority(address,bool)","6cd2ad56":"distributeTo(address)","6cd2b458":"splitsTotal(uint256,uint256)","6cd2f731":"setTimePerPeriod(uint256[5])","6cd38ea0":"NebulasToken(address,uint256)","6cd3d326":"getTotalChild(address,address)","6cd40993":"setNeironixProfitAddress(address)","6cd44d55":"pushOrderOfVendor(address,uint256,bool)","6cd49925":"currentLocation()","6cd51833":"initiateWithdraw(uint176,uint64)","6cd522f2":"getContributionRNTB(address)","6cd56641":"EYrickCoin()","6cd56878":"setDeveloperWallet(address)","6cd5c39b":"deployContract()","6cd6043a":"emitAndStore()","6cd61739":"getbuyprice()","6cd7d86e":"setClaimRepository(address)","6cd8015d":"setVestingWithDefaultSchedule(address,uint256)","6cd8f433":"canExport()","6cd8f772":"fights()","6cd8fa85":"burnTrusted(address,uint256)","6cd902d0":"Casa()","6cd9786a":"setCapETH(uint256)","6cd98f30":"getResponseQueryType(uint256)","6cd9db29":"sub_matricola(string,uint256)","6cdacfc4":"startStage(uint256,uint256,uint256)","6cdae459":"YuanBaoCoin()","6cdb3389":"getEntriesCountForCompetition(uint256)","6cdb711e":"ProposalAdded(uint256,address,uint256,uint256,address,uint256,uint256)","6cdc644d":"CMTC()","6cdcb1ca":"DEVELOPER_supply()","6cde3c75":"frozenAccountICO()","6cde6380":"setHash(uint256,bytes32)","6cde71ee":"enteredTotalAmount()","6cde95ee":"getAccountAllowance(address)","6cdf4c90":"ownerSetMinBet(uint256)","6cdf7cdf":"FRO()","6cdfcc6e":"getTokenList(address,uint8,uint256,uint256)","6cdffb3c":"fetchJugadas()","6ce066af":"Give(bytes32)","6ce079fe":"getNumGames()","6ce07efa":"AddSale(uint256,string,string,string,uint256)","6ce0a6a4":"SafeBoxCoin()","6ce12737":"OX_TOKEN()","6ce1417e":"Fund()","6ce15a54":"genericAction(address,bytes32[])","6ce27c7b":"DECIMAL_INDEX()","6ce37387":"KindAdsToken()","6ce3fc06":"sendPrize()","6ce41ab4":"Garuda()","6ce4499c":"adjustCoins(address,int32,string)","6ce4a9a8":"RAMTOKEN()","6ce5b3cf":"releaseHeldCoins()","6ce62c61":"changeAllowances(address[],uint256[])","6ce6833d":"test_updateKey_increaseNoHint()","6ce768dd":"GetMainInvestor()","6ce76ae3":"openOldCrates()","6ce7e739":"getBonusRate(uint256,uint256)","6ce912ab":"LongevityToken()","6cea50a1":"crowdSaleStarted()","6ceac6e1":"TankDeposit()","6ceba55e":"change_fee(uint256)","6cebad98":"newUser()","6cebd885":"waraCoinTransfer(address,uint256)","6cec0ceb":"setDenominator(uint256)","6cec7f92":"canManage(uint32,int256,address)","6ceccc82":"changeICOAddress(address)","6cecdad9":"UpdateAttribute(uint256,address,bytes32,bytes32)","6cedc6ea":"tHasSubmitted(uint256,address)","6cee0d8b":"checkIfAllIQTDistributed()","6cee2d45":"STTR(uint256,string,uint8,string,address,address)","6ceec70d":"whitelistAdd()","6cef5ff4":"FundingAssetAddress()","6cf124c6":"toJackPotfromEveryTicket()","6cf1a452":"chgExchangeRate(uint256)","6cf1cb29":"setGen0SellerAddress(address)","6cf27311":"randomNumbers(address)","6cf32dde":"getMyGolds()","6cf339f8":"CardiumToken()","6cf35782":"m_funds()","6cf3b9e9":"checkBalance(uint256[])","6cf3c25e":"small()","6cf3d099":"dropEnd()","6cf43347":"returnString()","6cf49694":"tweakDailyDividends(uint256)","6cf4c88f":"removeApprover(address)","6cf69811":"trade(address,uint256,address,address,uint256,bool)","6cf6d675":"unbondingPeriod()","6cf70679":"removeFees(uint256)","6cf72694":"OAToken()","6cf75170":"cancelVote(address,uint256,uint256)","6cf761d4":"getMinConfirmationsByAddr(address)","6cf7cff6":"icoETHContributionLimit()","6cf7da53":"setMinerPrice(uint256)","6cf843ac":"LuckyToken()","6cf9bbf8":"setJackpotFactor(uint256)","6cf9cc58":"registerResource(bytes,uint256,bytes,string)","6cf9ea99":"Rhinex()","6cfab740":"RequiredBondRules(address)","6cfb0a4a":"test_oneValidEqBytes()","6cfb2c9c":"payoutToAddress(address[])","6cfb7101":"_emitMonthLimitChanged(bytes32,uint256,uint256)","6cfb782f":"TestWithdraw()","6cfc4512":"authorSignUp(address)","6cfc4ac5":"getGameEnd()","6cfc82ed":"trancheSize()","6cfdc242":"isSalesManager()","6cfe5947":"getCurrentICOPhaseBonus()","6cfedade":"refundTeamTokens()","6cff6f9d":"payoutOrder()","6cff8244":"controllerSucceeded()","6cffa0cd":"_transter(uint256)","6cffd817":"burnByAmount(uint256)","6cfff605":"releaseThreeHotHourTokens()","6d011a12":"scribes_hisory(uint256)","6d013618":"mint(address,uint256,uint256,string,string)","6d01d12b":"XeToken()","6d022003":"ALLOC_SALE_PRIVATE()","6d029f6a":"totalYUPIESAllocated()","6d02a595":"_setMintFeeAbs(uint256)","6d03d3ec":"HolderAdded(address,uint256,uint256,uint256)","6d03fa87":"getReferer(address)","6d04f50d":"mtronix()","6d0501f6":"mediator()","6d052b37":"getRequestByIndex(uint256)","6d052f56":"testBitsSetSuccess()","6d05c24d":"calcWidthraw(string,uint256)","6d05cef4":"getStageSupplyLimit()","6d05da7e":"tranchesCount()","6d061b69":"deathData_a3()","6d064875":"transferEducatedTokenOwnership(address)","6d064962":"getOwnerByShipId(uint256)","6d069c10":"_updateRaceWinner(uint256,uint256)","6d06bf0d":"celebOf(uint256)","6d06de2d":"haveAttributes(address,bytes32,address,bytes32)","6d076966":"VESTING_1_AMOUNT()","6d0797fc":"_isMatingPermitted(uint256,uint256)","6d07e3de":"sexToken()","6d07f295":"minEatable()","6d081d83":"zero_fee_transaction(address,address,uint256)","6d082bbb":"startSpreadingBlock()","6d0831f0":"BNNToken()","6d08bad2":"currencyToHash(string)","6d08e8f9":"initiateChallengeWithPastCustody(address,uint256,bytes32[],uint256[],bytes32[])","6d09e2ec":"commitCurrency(address,uint256,uint256)","6d0a98cc":"blockResolveDispute(uint64,uint64,bytes)","6d0b5ee2":"TeamFundsTokens()","6d0ca12a":"tokensBack()","6d0cc895":"getVersions()","6d0def6c":"SimpleDividendToken()","6d0e5c03":"stampToken(uint256,uint256,uint256)","6d0ecb88":"SohaibCoin()","6d0f131a":"DrawEvent(uint256,uint8,uint8,uint8,uint256,uint256,uint256,uint256)","6d0f157d":"setAllFreeze(uint256,uint256)","6d0f2a84":"changeDefendFee(uint256)","6d0f8806":"refundAdveriser(uint256)","6d102f71":"acceptOrder(bytes16)","6d106885":"unitUserBalanceLimit()","6d1150de":"endCurrentPhaseIn(uint256)","6d11cf72":"berrycoin()","6d11fe82":"_initAwardInfo()","6d121b91":"getMaxCap10X()","6d12301c":"getBetValue(bytes32,uint8)","6d12fb5b":"setSellable(uint32,bool)","6d1478e9":"_addToDebtRegister(address,uint256)","6d14b2a8":"JackpotAmount()","6d156add":"finalizePRETDE()","6d15a659":"Distribution(address,address,uint256,uint256)","6d15cecd":"getTokenRaised()","6d15dc5a":"BetPayout()","6d15f208":"reject(string,uint256,uint16,address,uint256)","6d160f31":"confirmReservedTokens(address,uint256)","6d161bc1":"setdot(address)","6d1669e1":"approveAndCall(address,address,uint256,bytes)","6d16f79c":"__transferWithReference(address,uint256,string)","6d16fa41":"transferControl(address)","6d171f0e":"changeRemainingSupply(uint256)","6d17af94":"ContributionMinted(address,uint256,uint256)","6d181a42":"FTV(address,address,address,address,address)","6d1821aa":"OrenCoin()","6d1884e0":"getEvent(uint256)","6d189422":"EtherFlipRaffleToken()","6d18c778":"PSIToken()","6d18dc63":"ATTR_TRADABLE()","6d1909fc":"transferIDCContractOwnership(address)","6d1917b5":"maxPurchaseNonWhiteListed()","6d19ce04":"STARTING_Dragon()","6d1a0d34":"ShowTime()","6d1af018":"getAmountRaised()","6d1b229d":"burnTokens(uint256)","6d1d71c5":"Note(address,string)","6d1da953":"createWithNonce(bytes32,bytes)","6d1e1f8d":"updateSale(uint256,uint256,uint256)","6d1e2194":"SALES_ALLOCATION_PPM()","6d1e8095":"transferGameOwnership(address)","6d1e839c":"changeMaxCap(uint256)","6d1ea3fa":"approvedTokens(address)","6d1eab7d":"getRegistryVersion()","6d1f00a6":"ThroneMaker(uint256)","6d1f451b":"multiSigWalletAddress()","6d201095":"PRICE_PRESALE_START()","6d214c66":"MBSibalCoin()","6d21f638":"SmartshareStandardToken(uint256,string,uint8,string)","6d224b7b":"weiPerABIO()","6d236703":"createMemoryArray(uint256)","6d2381b3":"addressAndBalance()","6d23bf0b":"ingresarFondos()","6d23c516":"s8(bytes1)","6d23cda3":"sub(uint16,uint16)","6d245bda":"lockUnlockGamblingPartyForBetting(uint256,bool)","6d2570fe":"Before(uint256,bytes32)","6d25924d":"setn(uint256,uint256,uint256)","6d25ba1d":"setTechBonus1(uint256,string)","6d2666b9":"lockInLastSixteenPrize()","6d275e9e":"distributeEbyte(address[],address,uint256,uint256,uint256)","6d277279":"getAuctionsCreated(address)","6d278b29":"setHoldMax(uint256)","6d27a326":"turnOnFurnace(uint16[5],uint128)","6d28e805":"getInsurance(bytes32,uint256)","6d290d34":"setAllocation(address,uint256,uint256,uint256,uint256)","6d295e24":"callDefaultAction()","6d2980f6":"TEAM_LOCK_DURATION_PART1()","6d2a7c8b":"createAuction(uint256,uint256,uint256,uint256,address,uint64)","6d2ab982":"presaleFemaleDiscount()","6d2bf99c":"updatePercentBase(uint256,uint256,uint256)","6d2c51a7":"countrySupply(uint256)","6d2cb794":"airaTransfer(address,address,uint256)","6d2d4e52":"lockSupplierAndLockPosition1(address,address)","6d2d525d":"FFUELCoinTokenCrowdSale(uint256,uint256,uint256,uint256,uint256,address,address,address,address,address,uint256)","6d2dd1a9":"getDividendsForOnePeriod(uint256,uint256,uint256,uint256)","6d2ff3d3":"Geniota(uint256,string,uint8,string)","6d301f38":"MIDO()","6d3036a7":"MAGNITUDE()","6d308c40":"changehiddenOwner(address)","6d30921c":"proceedDividends(uint256)","6d30d07f":"getMiniPoolEdit_6()","6d312683":"feeInCirculation()","6d320b17":"minimumEntryThreshold()","6d32a4a6":"finishRoundD()","6d32dc4b":"startElection(uint256)","6d338bd0":"setCCH_edit_22(string)","6d339f02":"_oldConfig()","6d33b42b":"changeLimit(uint256)","6d33f5a6":"updateNoteContent(uint64,bytes)","6d34a775":"getDatas()","6d35b1dc":"getExtraDays()","6d361694":"getModel(uint256)","6d36ebf8":"addPlayer(address,bytes32)","6d37a9dc":"LCT()","6d38156f":"getCountOfIntegerTypes(uint8[])","6d399eb7":"MAX_AIRDROP_VOLUME()","6d3b5f18":"getUserByID(uint256)","6d3c7ec5":"setDefaultPrice(uint256)","6d3d0a8f":"disagree()","6d3de7ea":"beManagerInsurance()","6d3e141e":"functional(address,uint256)","6d3e1a74":"PiBetaToken()","6d3e4502":"DatToDtrcDenominator()","6d3f008a":"FinalizedTier(uint256,uint256)","6d3f1277":"flagAndFinalize(uint256)","6d4045a8":"EXOSO()","6d40ee41":"CloseDonation()","6d40f3b0":"PHASE_OPEN()","6d417064":"expirationBlock()","6d41a3fb":"firstAuctionsExtendedChunkDuration()","6d425249":"minerNum()","6d435421":"transferOwnership(address,address)","6d43b489":"freeTokens(address,address,uint256)","6d4419e5":"listTopics()","6d44a9cf":"KudosPresaleTokenLockup(address,address)","6d4546a2":"changeTsaLink(string)","6d46398b":"newChannel(bytes32,address,address,bytes,uint256,bytes,bytes)","6d467f04":"ContractTransfer(address,address,uint256,bytes)","6d46c6f5":"referrer1Percent()","6d4717fe":"noFeesList()","6d47ab72":"sellers(address)","6d47fb71":"changeICO(address)","6d47fc60":"Changepro()","6d489314":"terminateLastMilestone(bytes32,address)","6d48ae25":"best_submission_accuracy()","6d492f54":"sendFyle(address,address,string)","6d493bf9":"SOLARCHAINToken(string,string,uint8,uint256)","6d498093":"presaleFinalized()","6d49817b":"refundPayment(address)","6d4a37ef":"cancelEscrow(bytes16,address,address,uint256)","6d4b38a2":"infraIndexToOwner(uint256)","6d4bae72":"_register2(address,bytes32)","6d4be70f":"ethereumSHA3(bytes20,uint24,uint32)","6d4c80ea":"removeNamespaceMember(string,address)","6d4ce63c":"get()","6d4d907c":"maxNumVotesPerAccount()","6d4ee68f":"SendBobsCoin()","6d4fd0ad":"isNull(address[])","6d4fd338":"PPToken()","6d4fe435":"counter_in()","6d505b49":"randgenNewHand()","6d50a2b5":"deleteAllBackgroundImages()","6d50ef2a":"timelockedTokensDisbursed()","6d510a64":"ourTEAM()","6d510f6c":"updatePartners(address)","6d5210d9":"showprize(address)","6d522b19":"multiAccessChangeRequirementD(uint256,address)","6d52f9d5":"mapToNewRange(uint256,uint256)","6d53393b":"getInitializeCreatorValue()","6d538264":"setMigrateAddress(address)","6d540318":"revokeOracle(address,uint256)","6d5433e6":"max(uint256,uint256)","6d54340a":"Blockbin()","6d544e6e":"setStackSize(uint256)","6d54ec91":"registerAndActivateDevice(bytes32,bytes32,bytes32)","6d568c43":"weiToCents(uint256)","6d56d9f4":"setAuction(uint256,uint256,uint256)","6d578781":"changeStageBlcok(uint256)","6d57b2b1":"tokenInitialDetails()","6d57dee4":"sendTokenAw(address,address,uint256)","6d57e2a9":"getAgonIdArray(address)","6d580320":"G2UFundDeposit()","6d580bcb":"FOUNDERS_CAP()","6d584266":"ALLOC_SALE_GENERAL_3()","6d5860d4":"revert(string)","6d58c88f":"changeDepositAddress(address)","6d599136":"personal_withdraw(uint256)","6d59c3be":"buyUFT(address)","6d5b0f6f":"transferCustodian(address,address)","6d5b9427":"onlyWithValidSignature(bytes)","6d5c1621":"LogInsert(address,uint256)","6d5cae52":"QiongB(uint256,string,uint8,string)","6d5d21a9":"setStubFund(address,address)","6d5d7612":"MAX_WITHDRAW_PCT_DAILY()","6d5da09a":"LockChain()","6d5e136d":"_getApproved(uint256)","6d5e3587":"needsEther(string)","6d5e53f6":"createInt256(bytes32,int256)","6d5e78f9":"depositorLimit()","6d5f3e15":"settleBet(address)","6d5f6639":"objectProposal(bytes32)","6d608402":"sendBPESOToken(address,uint256)","6d60bf39":"getPreEntranceFrom()","6d60e6b4":"trustAddress()","6d619daa":"storedValue()","6d624e86":"SideJobCoin()","6d62a4fe":"canTransfer(address,address,address,uint256)","6d63fa32":"getPixelNumber(bytes1,bytes1)","6d640637":"testBetId()","6d643308":"icoDeadLine()","6d64694f":"etherdelta()","6d64a472":"claimSalesAgent()","6d64abd6":"takeEther(address)","6d650b2d":"level_7_percent()","6d66264f":"specifyController(address)","6d6712d8":"hasPermission(address,address,bytes32)","6d6755a6":"gvpe_per_eos()","6d6908bd":"mintTokensBatch(uint256,address[])","6d69fcaf":"addSupportedToken(address)","6d6a01f6":"second_partner_address()","6d6a2859":"assetID()","6d6a4889":"nextReleaseTime()","6d6a6a4d":"decimalFactor()","6d6a761e":"setCouponToken(address)","6d6bc5f5":"identifierToCoordinate(uint256)","6d6c0ec4":"mintProxy(address,uint256)","6d6c2074":"totalTokensForSaleDuringICO3()","6d6caeb2":"poolCapUSD()","6d6d69b6":"allowedToSell()","6d6d70d9":"connectModule()","6d6dcbe7":"deleteResponse(uint256)","6d6e2710":"clearCrowdsaleOpenTimer()","6d6e8312":"addProviderAdmin(address)","6d6ead75":"reject(uint256,address,uint256,uint256,address)","6d6ebb01":"thawSomeTokens(address,uint256)","6d6f385c":"isSaleFinished()","6d6fa6b1":"FNKOSToken()","6d6fb665":"CUSTOM_ERC20_MINT_SERVICE_NAME()","6d701f0a":"Eos()","6d704159":"wdBefore()","6d705ebb":"register(address,uint256)","6d70f7ae":"isOperator(address)","6d717daf":"Albarit()","6d71be4c":"increaseReserve(uint256,uint256)","6d7221d5":"doubleClaimSegmentSlashAmount()","6d72da47":"addElection(address,uint256)","6d730453":"TokensTransferedToOwner(address,uint256)","6d736fac":"feeAccount2()","6d763a6e":"getLeaderboard()","6d771f77":"one_month()","6d773cd0":"balance_out()","6d77cad6":"isOperatorForPartition(bytes32,address,address)","6d77e144":"removeBlacklistItem(address)","6d786740":"billingPeriod()","6d788933":"_distribution(address[],uint256[])","6d78a434":"IntegrativeWalletToken(uint256,uint256,uint256,address)","6d78e48a":"candidateTillXPAAssets()","6d79207c":"SALE_DURATION()","6d796253":"configRoundKey()","6d7a0f89":"EmptiedToWallet(address)","6d7a2609":"setSpenderAddress(address)","6d7a37b6":"OCPresale(address,address,uint256)","6d7ab187":"AcceptsGMOON(address)","6d7b3706":"setfees(uint256,uint256,uint256,uint256)","6d7bc487":"RESERVED_TOKENS_FOR_FOUNDERS_AND_FOUNDATION()","6d7bd3fc":"BANCOR_FORMULA()","6d7cb00c":"CoinMarks(uint256,address)","6d7d083f":"handleFunds()","6d7da0b1":"MyContract()","6d7fa14e":"CQC(uint256,string,uint8,string)","6d7fd1bf":"getIpfs(uint256)","6d7fd8a3":"pauseRefund()","6d80244d":"createUnitOmni(uint32,address)","6d805b2d":"withdrawMana(uint256)","6d813e63":"owner_viewOnFlight()","6d81779b":"teamCap()","6d836cde":"updCouponBonusEnabled(bool)","6d8370e9":"upgradeTusdProxyImplTo(address)","6d842ad5":"NewBOP(address,address,uint256,uint256,string,string)","6d843c2f":"participatedInAirdrop(address)","6d84dbb0":"BeijingCoin()","6d853ab6":"isSubUser(address)","6d863fd7":"airDropSingleAmount(address[],uint256)","6d86ac59":"DUMPSACK()","6d8758c7":"editCuts(uint256[6])","6d877f91":"Bob()","6d87b65c":"setPropertySalePrice(uint16,uint256)","6d88885e":"schoolOrdering()","6d892f7e":"deauthorize(address,address)","6d893a5a":"deathData_a8()","6d8941cb":"smallBonusPercent()","6d8a3650":"dedex(address,address,address,uint256,uint256,uint256)","6d8a5f8f":"CAP_ICO()","6d8a74cb":"getRoom(uint256)","6d8a9f92":"setSavedEthBalance(address,uint256)","6d8ab124":"containsPosition(bytes32)","6d8b529a":"OwnerBase()","6d8c3912":"AicToken()","6d8d151b":"determineBonus(uint256)","6d8d16b9":"StandardToken(string,string,uint8,uint256)","6d8f01d1":"CEOSignature()","6d8f4221":"masternode()","6d8f83cf":"_getBonusAmount(uint256)","6d90164e":"GetPrice()","6d91acba":"proposalText(uint256)","6d9218e5":"Notes(address,address)","6d927db0":"withdrawBalanceMaxSteps(uint256)","6d94425c":"_maxPeriodSalesLimit()","6d94dce1":"createAndBookCanvas(address)","6d952117":"maxBuyPrice()","6d9634b7":"releaseTokens(address[])","6d963a81":"buyp3d(uint256)","6d96a2aa":"delegateAddress()","6d96b537":"_computeIncentiveReward(uint256,uint256)","6d974ee2":"AcceptRealmOffer(uint256)","6d97537a":"TestRushCoin()","6d97786e":"sell(address,uint256,string)","6d97c665":"tokenBonusForSecond()","6d9814e1":"BToken()","6d98571a":"generalTokens()","6d9860d0":"makeFinality(uint256,address,address,bytes32,bytes32,uint256,uint256)","6d98c5e7":"AppleToken(uint256,string,string,bool)","6d98e9fc":"totalWei()","6d98ee4e":"getInitialState()","6d991cce":"openGroupNumber()","6d99aafd":"Collected_Ether()","6d99f652":"resetRaffle()","6d9aa034":"setNamePublicKeyAddress(address)","6d9af813":"updateprice(uint256,uint256)","6d9b06e8":"setProposalDeposit(uint256)","6d9c2bda":"ADV_TEAM_LOCK_TIME()","6d9c8e86":"getCurrentSaddlePrice(uint256)","6d9cb37d":"govtAccount()","6d9cdbc6":"WALLET()","6d9cebb2":"setDiscount(uint8)","6d9d39b6":"isItOpen()","6d9d495f":"minMktTokens(address,uint256)","6d9dcdb9":"tgrNextPartContributor()","6d9f4eeb":"artistTrackCount(address)","6d9fed84":"getJackPotInfo()","6da05cc7":"sectionAvailable(uint256)","6da05f0f":"_requestRandom(uint256)","6da1339c":"_deposit(address,uint256)","6da1833c":"getInstitutionByName(string)","6da1d37a":"sumWei()","6da246ac":"approvePartnerAllocation(address)","6da28481":"balanceOfLockup(address)","6da36c06":"contract_admin()","6da3cd1a":"verifiedUsersOnlyMode()","6da44d61":"SportX()","6da49b83":"nodeCount()","6da4edff":"getPriceSpeedPercent()","6da4fd5c":"TheBeardToken()","6da4fe26":"nextReward()","6da50777":"FreddieToken(address)","6da61d1e":"payoutOf(address)","6da66355":"pause(string)","6da705f5":"isOwnerOfJob(address,bytes)","6da72e7a":"reclaimByReceiver(uint256,address,bytes32)","6da78903":"SwapCreated(address,uint256)","6da79a93":"bid(uint256,uint256,uint256,address)","6da84ec0":"calcMarketFee(bytes32,uint256)","6da9a969":"toBRFWEI(uint256)","6daa212f":"applyPayback(address,uint256)","6daa2d44":"raiseDispute()","6daa9f56":"setExhaustionTime(uint256)","6daaf67b":"REFERRAL_PROGRAMS()","6dabccc9":"setmsg(address)","6dabd069":"emission(address,uint256,bytes32,uint256)","6dac8bea":"PREMIUM_CATEGORY()","6dacda85":"LOCKPERIOD()","6dad2a91":"getWinningAmount()","6dae014c":"test_basic_sanity()","6dae022f":"verifyTx()","6daf0866":"Hungrify()","6dafc6b7":"destructOne(bytes32)","6db1218d":"getAPSchedule()","6db14a1c":"PaulSportsCoin()","6db17f8d":"KriptoNeed(uint256,string,uint8,string)","6db19eb8":"specialGym()","6db31c25":"pay(string,address,uint256,bool,bytes)","6db3a788":"createHero(string,uint256,uint256,uint256,uint256)","6db4ba51":"requireNotEmptyAddress(address)","6db4bbf0":"donotYYYDappToken()","6db5c8fd":"maxDuration()","6db5d3b7":"modifyCommission(uint256,uint256)","6db66268":"remainingTokensPerPeriod()","6db736df":"Writers(address)","6db75799":"set_amount(uint256,uint256)","6db76efd":"decreaseFrozenBalances(address,uint256)","6db7f77c":"requestEarlySettlement()","6db90900":"returnAllRoomsBalance()","6db9ec44":"IWTfund()","6db9ee4d":"MixenCoin()","6dba46ac":"aprMintAdjustment()","6dbb7bcd":"getExecutorRegistry()","6dbd6689":"gupSold()","6dbe060d":"hashTest(string)","6dbe21b8":"setBounty()","6dbe2ebc":"calcUserDivsTotal(address)","6dbe31eb":"testSubBalance()","6dbe4bee":"MoonToken(uint256,string,string)","6dbf8108":"withdrawBounty(address)","6dc043d7":"draw_number()","6dc0a997":"pushAllocation(address,uint256)","6dc12f1c":"EvMigration(address,uint256,uint256)","6dc1a075":"setMaxOpenAttacks(uint256)","6dc1f360":"VersionControl()","6dc214af":"bitCrystalEscrow()","6dc34462":"Timed(uint256,uint256,uint8)","6dc37dee":"changeReviewRules(uint256)","6dc3e97e":"addGame(bytes32,address,address,uint256)","6dc3edcf":"executeExecutable(uint256,uint256)","6dc455a4":"WinnerWithdrew(address,uint256,uint256)","6dc4faea":"withdrawnTeam()","6dc51f1e":"advisoryBoardFundManager()","6dc55f7e":"RANGEEND_7()","6dc56397":"career_path()","6dc57da6":"getTimestampOfDayStart(uint256)","6dc585b6":"toRICH(uint256)","6dc7a627":"canClaim()","6dc7d164":"addSignature(uint256,uint256,address)","6dc88e1f":"addAngelIdMapping(address,uint64)","6dc8dbd4":"calculateMaxTokensIssued()","6dc92426":"makeSellOrder(address,uint256,uint256)","6dc944f6":"withdrawTotalDevEarned()","6dc9ab89":"get_orderAddress(address,address,uint256,uint256,uint256,uint256)","6dca35da":"newCampaign(uint256,address,uint256)","6dcb0cf8":"typeOf(address)","6dcb672b":"EBanker()","6dcba059":"goToNextStep()","6dcd16d7":"computeBids(uint256)","6dcd6eb9":"withdrawPendingAmounts()","6dce14cd":"LBTokenSale(uint256,uint256,uint256)","6dcea85f":"setMarket(address)","6dd01116":"getWishContent(uint256)","6dd0c3d8":"setENGDevAddress(address)","6dd0c51e":"RESERVED_STAFF_GROUP()","6dd0d091":"retaliate()","6dd13a29":"ICOStarted(uint256,uint256,uint256,uint256)","6dd186c4":"YeYingOil()","6dd1f71c":"RTokenMain(uint256,string,string,uint8,address)","6dd22ccd":"getMixParticipant(bytes32,uint256,uint256)","6dd23b5b":"constructor(address,address,address)","6dd28241":"deprecatedSince()","6dd2bfca":"setDevfee(uint256)","6dd35c7b":"topBalance(address,uint256)","6dd3a823":"Neptun()","6dd40168":"preSaleMinimumWei()","6dd40905":"getQuestionVotesAllCount(string)","6dd43d1f":"attachSubscriptionModule(address)","6dd4927b":"reName(string,string)","6dd4c13c":"allowsSignup()","6dd5b69d":"getConfig(bytes32)","6dd5bb11":"oraclize_query(string)","6dd6e673":"buySanSlot(address,uint256)","6dd6e87b":"checkOut(int256)","6dd749ba":"getSpaceById(uint256)","6dd77c5d":"etherToUSDRate()","6dd7d8ea":"vote(address)","6dd8d3bf":"buy_energy(address,uint32,uint32,uint64,uint32,uint64)","6dd9fde9":"transferTokensToNonEthBuyer(address,uint256)","6dda1291":"hotPotatoPrize()","6dda9b24":"bva(address,uint256,address)","6ddc7e65":"gracePeriodAfterRound0Target()","6ddd07f8":"getEngineById(uint256)","6ddd707f":"TDTToken()","6dde33ea":"deathData_a13()","6dde8b18":"removeWhitelistedTransfer(address,address)","6ddf09c4":"ICToken()","6ddf12ae":"ecdouble(uint256[3])","6de00927":"GetUserRank(uint8,address)","6de09e28":"affiliatesAllocAddress()","6de0b375":"openBet(uint256)","6de12905":"updateMeta(string,string)","6de343cd":"SNTPlaceHolder(address,address,address,address)","6de3afc9":"EduCoin()","6de53001":"clearApproval(address,uint256)","6de5897c":"ECOMCASH()","6de60a07":"ContinueSuspendedEmployee(address,uint32,uint32)","6de6220b":"OwnerO()","6de65097":"OwnerRemoved(address,bytes32)","6de685f6":"START_TIME_SALE()","6de74bbe":"setratePreSale(uint256)","6de758a1":"PWGLToken(address,address)","6de79d17":"TIANYECoin()","6de7a31d":"getEvotTokenAddress()","6de84a4f":"bankMultisig()","6de996b4":"getPlayerSpaceshipAuctionPriceById(uint256)","6de9ebb1":"setBlogRegistry(address)","6de9f32b":"tokensMinted()","6dea2088":"MAX_FUNDS_RAISED_DURING_PRESALE()","6deaf623":"calculateEthToVibe(uint256,uint256)","6deb515d":"disapproveInvestorsInBulk(address[])","6dec665e":"motionWaiting(uint256)","6dec7a93":"setInfo(string,string,string)","6ded82f8":"isPaid(address)","6dee2032":"getOpenOrdersOf(address)","6dee275a":"c_STQperETH()","6deebae3":"subtract()","6deefc7a":"sellable()","6def1efc":"getPreviousFeeWindow()","6defbf80":"ready()","6defd595":"getCovfefe(uint256)","6defe0b9":"isTimeOver()","6defe888":"Criptomedicina()","6df006f3":"frozenToken()","6df03165":"setTimeOutAuthentication(uint256)","6df088bf":"winnerDecided(uint256,address,uint256)","6df0a7e7":"setContract(string,string)","6df0b557":"getPlayerSpaceshipAuctionById(uint256)","6df15719":"STWY()","6df1667c":"same(string,string)","6df26327":"additionalEmission()","6df26d14":"startEarlyStage1()","6df3edef":"getSavedBytes()","6df55024":"LogBuyTokens(address,uint256,string)","6df5ee2b":"withdrawPresale()","6df6ca7a":"getDivsBalance(address,address)","6df7f38f":"sellForBitcoin(address,uint256)","6df83012":"startLockUpSec()","6df8359f":"WorkOrderStarted(uint128)","6df86816":"ActionAgonPlat(address)","6df99d81":"CCH_TEL_AVIV_01()","6dfa8d99":"totalEarned()","6dfada86":"mintToken(address,uint256,address)","6dfc15a4":"changelp6(address)","6dfc2fa8":"isInProgress()","6dfe512e":"initPGOMonthlyInternalVault(address[],uint256[])","6dfe869b":"Preallocation(address,uint256)","6dfe8a34":"setSkillName(address,uint256,bytes32)","6dff8216":"cbAddresses()","6e008b35":"calculateResult()","6e034f4d":"tokensaleBuyTokens()","6e038c4f":"firstTotalSupply()","6e051dba":"ReserveTokensHolderMock(address,address,address)","6e0550e5":"stepOneEndTime()","6e0560c3":"doNotAutoRefund(address)","6e05d3ca":"Z1CoinGenesis(address)","6e064f6a":"HedglyStakingToken()","6e06a9ce":"changeTimeOneSession(uint256)","6e06ac9d":"UNSPAM(string,string,uint256,uint256,bool)","6e0712b1":"setIcoParams(uint256,uint256,uint256,uint256,bool,bool,uint32,uint32,uint256)","6e075e30":"reinvestAmount(uint256)","6e0763f3":"RPNCoin()","6e07979d":"tokenBlogs()","6e080d86":"register(string,string,bool,string,address,uint256,uint256)","6e083bc7":"credoEthExchangeRate()","6e094b67":"TPS()","6e09a4ab":"diff(uint256[],uint256[])","6e0b0c80":"MIToken()","6e0bd282":"destroy(bytes32)","6e0c7867":"createDataObject(bytes32,address,bytes32,address,bytes32)","6e0cd415":"isPositionCalled(bytes32)","6e0d98fe":"setProbabilities(uint32[])","6e0da3ee":"WoodToken(uint256,string,string)","6e0da971":"tokensSoldIco()","6e0dd984":"setCapUsd(uint256)","6e0e7e85":"withdrawERC20Compatible(bytes32,uint256,uint256,uint256[])","6e0f8d68":"stage_1_price()","6e0fb1c5":"FOUNDER2_STAKE()","6e101967":"set_iconiq_pre_kyc_bonus_denominator(uint256)","6e106628":"getWinningReportingParticipant()","6e114511":"decreaseTotalSupply(uint256)","6e1180f8":"setOversightAddress(address,bool)","6e120023":"TimestampScheduler(address,address,address)","6e125009":"contractTokensAvailable()","6e1286fc":"getReward(uint256[])","6e12b46e":"requiredPoints()","6e13cdfe":"claimH2()","6e140e6c":"TetherToken(uint256,string,string,uint8)","6e1479c0":"testControlCreateNewRevisionNotOwner()","6e14b71b":"PetsCoin()","6e15266a":"fifty_two_weeks()","6e164e23":"claimTokens(uint256,address)","6e16f9ed":"iBird()","6e173a7f":"storeBlockHeader(bytes,bytes)","6e17e7c2":"nextFieldIndex()","6e18980a":"transferByLegacy(address,address,uint256)","6e18eba5":"ethUSDPrice()","6e18ff05":"getRefInfo(address,address)","6e1907cc":"test21(uint256)","6e1a1336":"setString(string,string)","6e1b6bcc":"checkMyBet(address)","6e1bd323":"MAX_TOKEN()","6e1cf038":"getNumNiceBets(uint256)","6e1d3c0d":"sudoku()","6e1d7d5e":"EtherIbe()","6e1e063f":"claimableRefund(address)","6e1e34c7":"TokensBoughts(uint256)","6e1ece25":"totalFeesValue()","6e1f777d":"createTokenToTeam()","6e2117f7":"forFunction()","6e217d30":"setBuyCourse(uint256)","6e219667":"p3()","6e21fc87":"_airdrop(address)","6e223710":"getRockInfo(uint256)","6e224034":"totalCrowdCoin()","6e22aea0":"AIW(uint256,string,string)","6e22d33e":"getBytesValue(string)","6e22e32b":"setMonethaAddress(address,address,bool)","6e233918":"buyTank(uint32)","6e241c5c":"_createExoplanet(string,address,uint256,uint32,string,uint32,uint8,string)","6e247f29":"Transfer_of_authority_logic(address)","6e2653ca":"AirSwapHandler(address,address,address)","6e275bd2":"transferFrom(address,address,address,address,uint256)","6e27d889":"lockTokens(uint256)","6e2857f2":"setEscrow(address,address)","6e287154":"setLocalRevenuPercent(uint256)","6e293817":"transferWithReference(address,uint256,bytes32,string)","6e2a2d0a":"result_amount()","6e2adeee":"SweetToken(string,string,address)","6e2bf348":"getDiscountByAmount(uint256)","6e2c10a1":"unitedNations()","6e2c732d":"add(uint64,uint64)","6e2cde85":"drawPot(string,string)","6e2d53a6":"TreasureCoin()","6e2d604a":"thrash()","6e2da4b3":"proposeAction(address)","6e2db8d7":"addWhiteList(address,uint256)","6e2e2e4d":"showMessage(bytes32,uint256,string)","6e2e9c3b":"contributedUsd()","6e2e9ee1":"setKYCRequiredToReceiveFunds(bool)","6e2ede03":"getCollateralMarketsLength()","6e2edf30":"ETCSurvey(address)","6e2f0bb8":"newSaddleryCon(address)","6e2f10bd":"changeMerchantBeneficiaryAddress(uint256,address)","6e2f5f12":"sendToFaucet(uint256)","6e2fd470":"sharedExpenseWithdrawn()","6e30418b":"totalPlayerBalance()","6e30d411":"showDevBalance()","6e317da7":"changeRedeemer(address)","6e321105":"losePercent()","6e32295e":"mDestroyTokens(address,uint256)","6e329aa9":"getPotato()","6e32cf8e":"admin_transfer_tempLockAddress(address,uint256,uint256)","6e33bc13":"COINS_TO_HATCH_1STRIPPERS()","6e349188":"MAXSOLD_SUPPLY()","6e3532fa":"getSubscriptionFee()","6e353435":"inputauction(uint256,uint256,string)","6e353a1d":"emergencyWithdrawal(address)","6e359afa":"changeTrueUSDOperation()","6e36893a":"ICOInvestment(address,uint256,uint256,uint8)","6e3706c8":"PRE_DURATION()","6e377202":"isAuthed(address,address)","6e3825d2":"checkMyTicket(uint32)","6e39891c":"currentDividendAmount()","6e39eb85":"resetNumberOfCandidates()","6e3ae353":"changeOrigDev(address)","6e3aff90":"getOrderString()","6e3bbebd":"ZJLTToken()","6e3c5759":"claim_partnerPreICOTokens(address)","6e3d5a9d":"getTopCompanyBlocksInBetween()","6e3de78a":"UNFOMO(string,string,uint256,uint256,bool)","6e3e1318":"takeFee(uint32)","6e3e82f9":"_computeCut(uint256,uint256)","6e3f3f1a":"proposal(address,uint256,address)","6e3f7ba0":"TokenFrozen(uint256,string)","6e3f8550":"walletReserve()","6e403cd7":"sendBread(address,uint256)","6e40975d":"ICOToken()","6e415d37":"farewellTo(address)","6e417c69":"executeRequest(uint256)","6e41a78f":"DRC()","6e41b1ad":"nameTaken(uint256)","6e41efb2":"ThawTransfers(address,bool)","6e4264ce":"initiateDeposit()","6e4324a3":"Cryptopus()","6e439078":"makeLogCancel(address,address,address,address,uint256,uint256,uint256)","6e441752":"teamToken2019()","6e44fcea":"isHoldTokens()","6e459cf1":"CrowdSale(address,uint256)","6e4602c8":"TimereumX()","6e46408d":"indexOfOwners(address,address)","6e4647d6":"vendingCreateCollectible(uint256,address)","6e468a8a":"CelticsCoin()","6e48670f":"zeroSub(uint256,uint256)","6e48a035":"closeVote(uint256)","6e49b1e1":"AnythingAppTokenPreSale(address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","6e4a7b26":"initializeCoins()","6e4a9f4d":"Nguen()","6e4ac25f":"TokenData(address,address)","6e4b0222":"setactivelevel(uint256)","6e4bfb37":"GenaroTokenSale(uint256,uint256,address,uint256,bytes32)","6e4c42a0":"getGameSides()","6e4c9829":"amountsOf(address)","6e4ca716":"totalEthRecieved()","6e4dd931":"GetPotInfo()","6e4df96e":"produceWine()","6e4e5c1d":"revealedCurves()","6e4e87e0":"sendQuickPromoBonus()","6e4eb9cb":"getSeedsSinceLastEvent(address)","6e4ed796":"blocksPerRound()","6e4f33b0":"change_delay(uint256)","6e4f68b5":"PONO()","6e4f749e":"freezeMethod(address,bool)","6e500306":"Bst()","6e50640c":"WinikToken()","6e506ee4":"managementTokenAllocation()","6e50c39c":"serializeState(uint256,int256[2],uint256[2],int256,bytes32,address,uint256,uint256)","6e50eb3f":"setEndsAt(uint256)","6e51be3d":"UmmahDinar()","6e52dcd6":"pauseChannels()","6e5320d1":"changeTokenInformation(string,string)","6e53909a":"setLockAdmin(address,bool)","6e5390d2":"woodAddress()","6e5406e3":"_0xLitecoinToken()","6e54181e":"right75(uint256)","6e5452fe":"OUTCOME_RANGE()","6e553f65":"deposit(uint256,address)","6e555a18":"testCreateContract(bytes32,uint16,bytes32,uint256,uint64,bytes32,uint64,bytes32,uint64,uint64)","6e556725":"initialEndPrice()","6e56dce5":"collectEtherBack()","6e56e5eb":"_emitUserBinded(uint256,address,bool)","6e56e895":"test_defaultPermissions()","6e575537":"MAX_OWNER_PERS_SITE()","6e57e7e0":"payOut(address,uint128,int256)","6e581673":"buyPackWithERC20Tokens(uint8,address)","6e593210":"getActiveSellOrders(uint256)","6e596aef":"moveCeiling(uint256)","6e59e570":"sendToOtherBlockchain2(string,string,address)","6e59f3f3":"createChannel(address)","6e5ac882":"root(address)","6e5aef4d":"getInitTime(uint256)","6e5b064c":"basicPricePerEth()","6e5deca4":"YaoDun()","6e5ecdff":"updateDependencies()","6e5f375e":"setGameStartedDividendPercentage(uint256)","6e5fd38d":"registerMultiple(address[],bool)","6e609af2":"FulfillmentUpdated(uint256,uint256)","6e60cf61":"freedWinPoolToTeam()","6e6260fa":"thresholdNewTokenPair()","6e62825a":"SCDCToken1()","6e62cdab":"nextRoundWinner()","6e62de19":"fundFailed()","6e63015c":"getCertifiersCount()","6e630649":"changeState(uint256,uint8)","6e635673":"deletePullPayment(uint8,bytes32,bytes32,string,address,address)","6e638d3b":"claimIFSReward(address)","6e640f4c":"candidat()","6e658fbe":"myFundsExpireIn(uint256)","6e6656d8":"setCallStackSize(uint256)","6e66644d":"changeStakingFeesOperation()","6e667c35":"contentURI(uint256)","6e66cc38":"TraceToToken(address,uint256,uint256,address)","6e66f6e9":"tokenReward()","6e676b69":"changeVotingRules(uint256,uint256,uint256)","6e67b803":"bid3(address,uint256[],uint256[])","6e680ee7":"CREATORS_WALLET_ADDRESS()","6e68751c":"revokeVestedTokensFor(address)","6e68ec59":"getSoilHumdtyException(bytes32)","6e69e7d7":"maximumNumberOfLoops(uint256,uint256)","6e6a1dc3":"weightedVoteCountsOf(uint256,uint256)","6e6a42ec":"retraitStandard_1()","6e6b4bed":"getArt(string)","6e6b8004":"upgradeGemsSpecial()","6e6beb07":"PreSaleBuy()","6e6bfca0":"cancelJobByProvider(bytes32)","6e6c4c58":"CrowdTmoney2()","6e6ca42f":"RefundError(address,uint256)","6e6ca6f5":"getLastTransferred(address)","6e6d83d2":"cancelLoanRequestAtIndexByLender(uint256)","6e6d9a6c":"Token(address[],uint256[])","6e6e8a02":"addWhitelist(address,address[])","6e6ed399":"priceValidSeconds()","6e6f2fe5":"DentacoinToken()","6e6fe3d6":"ClaimMTU(bool)","6e6ff8a9":"lockDays()","6e70096e":"withdrawEarnings(uint256)","6e70cb07":"getAssetHolders()","6e70de82":"transitionState()","6e720693":"RevokeEvent(address,address,uint32)","6e722fcb":"getIsBonusClaimed(uint256,address)","6e725302":"getRatio(uint256,uint256,uint256)","6e730a67":"setSecondStageEndsAt(uint256)","6e733f50":"getCap(string)","6e743fa9":"punkBids(uint256)","6e74774a":"MHCTokenIssue(address)","6e752548":"finalizeStartTime()","6e754efb":"daysnumber()","6e761a73":"claimDevReward(address)","6e76a89f":"validateReserves()","6e76fb4c":"MemberRemoved(address)","6e779481":"ADVISORS_CAP()","6e77d4bb":"CryptoMountainsToken()","6e787a48":"correctOriginalSupply()","6e78e95f":"CryptoLeaders()","6e79ae56":"deleteOpenAction(string,string,string,string,string)","6e7a824f":"TestCoin(uint256,string,string)","6e7b698f":"drops(address[],uint256)","6e7bc3e5":"addContractOwner(address)","6e7c1700":"getJobName(uint256)","6e7c1c2b":"getWithdrawDigest(bytes32,address,uint256,uint64)","6e7c77b6":"testClaimTokens()","6e7d9dc6":"transferCreatureOwnership(address)","6e7e3b2b":"contributors()","6e7f26ab":"distributeToken(uint256,address[])","6e80a869":"minimalInvestmentInWei()","6e823b47":"controlledBurn(address,uint256)","6e82e86a":"getHash(uint256[])","6e843a74":"AgreementUrlRu()","6e8480e0":"TokenMetadata(string,uint8,string,string)","6e8595f5":"CheckAddressVerified(address)","6e861c0e":"deauthorizeContract(address)","6e880e4d":"PreminedAsset()","6e88147e":"tradeReport()","6e88274b":"GetBetBalance()","6e8851a9":"initSale2()","6e885bd7":"workerPoolHub()","6e88865a":"teamAddressFreezeTime()","6e88a7bd":"referrerFee()","6e88b4ef":"tgeStageBlockLeft()","6e88d5fa":"judgeFakeTokenAndTransfer(uint256,address)","6e899550":"setString(bytes32,string)","6e89d517":"Deposited(address,uint256,bytes)","6e8a3438":"TransferStatusChanged(bool)","6e8a3d4b":"SerpentIsRunning()","6e8a6d12":"updatePriceAddress(address)","6e8ab641":"Arbitragebit()","6e8ac0c8":"developersAllocation()","6e8add02":"setMainsale(address)","6e8b7c23":"numcalls()","6e8c2caf":"gameRunning()","6e8c57e6":"minBalanceToAllowContractCreation()","6e8d3007":"CapitalTechCrowdsale(address,address,address)","6e8d82af":"swapToken(address)","6e8dad74":"retrieveAccountBalance(bytes,bytes)","6e8dba91":"getInitialData()","6e8dc135":"WinnerSelected(address,uint256,uint256,uint256)","6e8ddc7a":"LuxArbitrageToken()","6e8de595":"setBoardMember(uint256,uint256,uint256)","6e8e39d1":"QRG(uint256,string,string)","6e8f7142":"put(address,string,string)","6e8f8d69":"getInvestorsCount(uint256)","6e900256":"addData(bytes32,bytes32,bytes32,bytes32[],uint256[],uint256[],uint256[],uint256[])","6e9067fb":"getRole(string)","6e90a590":"expectedTotalSupply()","6e914d97":"requestAdminTokenTransfer(address,address,uint256,string)","6e929838":"PAXToken(address,address,address,bool)","6e929d4c":"sendIBTCTokenToMultiAddr(address[],uint256[])","6e932270":"dewhitelist(address)","6e939d05":"moveFromState(bytes32,int8[128],uint256,uint256,bytes)","6e93dbdc":"koCommissionAccount()","6e940a29":"changeHost(address)","6e942390":"howMany(uint256,uint256)","6e942f82":"buildingCostWei()","6e947298":"getETHBalance()","6e94d278":"burnReputation(uint256,address,address)","6e95a066":"IouRootsPresaleToken(string,string,uint8)","6e96433f":"multiPartyTransferFrom(address,address[],uint256[])","6e96463f":"BonusesUpdated(address,bool)","6e965a89":"calculateWeeklyTokensSupply()","6e968bca":"getSidesArray(uint256)","6e96bbeb":"crowdsalePurchasesLoaded()","6e96dfd7":"_setPendingOwner(address)","6e97041e":"SCPS1Token()","6e970dfd":"retireMaster(address)","6e974fd6":"approveWalletFeeData(uint256)","6e977865":"dadFab()","6e978d91":"right90(uint256)","6e98a92b":"fundManagementAddress()","6e995bd9":"updateChannelState(uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","6e9960c3":"getAdmin()","6e997972":"modSymbol(string)","6e99d52f":"COOLDOWN_PERIOD()","6e9a41c3":"DraftCrowdsale(uint256,uint256,uint256)","6e9af3f7":"giveForce(address)","6e9b134e":"LogCancelDelivery(address,string)","6e9b41d4":"releaseForGoolaTeam()","6e9c3683":"getIndexByProposalId(bytes32)","6e9c4650":"prepaidUnits()","6e9c4d0a":"rateTenant(uint256)","6e9c931c":"stake(uint256,address,uint256)","6e9cfb79":"itemReturn()","6e9d3b9d":"AtoOneCoin(uint256,string,uint8,string)","6e9e48ef":"tokenIdToOwner(uint256)","6e9ffe2b":"updateTransferRestrictionVerifier(address)","6ea007b3":"dailyLimitLeft()","6ea056a9":"sweep(address,uint256)","6ea07a36":"recoverSimple(bytes32,uint8,uint256,uint256)","6ea11f65":"togglePublicMatches()","6ea141cb":"AddBonusToList(bytes32,uint256,uint256)","6ea150e2":"changeWithdrawTimeRange(uint256,uint256)","6ea16f3a":"tryRefund()","6ea16f81":"houseTraits(uint256,uint256)","6ea34ce4":"getPartById(uint256)","6ea38199":"getMoreAuctionDetails(uint256)","6ea3b6d1":"ICO_Finished()","6ea3f1cb":"GetFreebie()","6ea405d3":"Tax()","6ea412b1":"Exchanged(address,uint256)","6ea42555":"pack(uint256)","6ea451e4":"setSaleLimit(uint8)","6ea51811":"icoStartP4()","6ea521d9":"_voteAs(address,uint256,uint256,uint256,string)","6ea68360":"newMasterCopy()","6ea69c91":"closePositionOnBehalfOfRecurse(address,address,address,bytes32,uint256)","6ea6b71b":"tokensRaised()","6ea6d76d":"initGame(string,bool,uint256)","6ea6db3c":"token(uint256,string,uint8,string,address,uint256)","6ea6f0c3":"initializeTopUpLimit(uint256)","6ea7064b":"contractorProposal(uint256,address,uint256,string,bytes32,address,uint256,uint256,uint256)","6ea79583":"team_wallet()","6ea8efea":"getGameNum()","6ea928d9":"getSymbolHash()","6ea96bcd":"defaultBuyerLastPaidAt()","6eaa0f16":"CCTOKEN()","6eabb2f6":"getWineryOperation(string,address,uint256)","6eabcd69":"__abortFuse()","6eac86d4":"settleTransaction(bytes32)","6eaccf4c":"privilegedTransfer(address,address,uint256)","6eacd48a":"ownerPauseGame(bool)","6eadcc87":"tokenSetup(address,address,address,address,address)","6eaddad2":"setDevPercent(uint256)","6eadeba0":"resolve_block_hash(uint256)","6eae0843":"getTeam(uint16,uint8)","6eaefc87":"tokenExchangeRateBase()","6eafbe88":"ChangeTeamHolder(address,address)","6eb060ea":"setMinBuyPublic()","6eb09ce2":"ethbalance(address)","6eb1546d":"_removeBid(uint256)","6eb1e09a":"fechVoteMainInfoByStage(uint256)","6eb21929":"softcapReached()","6eb227ce":"getCurrentWeek()","6eb25ed8":"distributionOne(address)","6eb267ab":"CxNtoken(address)","6eb2a749":"isMaySale()","6eb2f0cc":"payShareholders(uint256)","6eb305aa":"getTimestampInSeconds()","6eb47ea7":"linkTeamToUser(address,bytes32)","6eb5197d":"getFirstAdmin()","6eb58224":"castDocumentVote(uint8,bytes32,bool)","6eb5ad4f":"lockPriceChange()","6eb5bef0":"addressSupporters()","6eb5ebae":"FidgETHSpinner()","6eb6ffa7":"initialQuorumPercent()","6eb769d2":"tokenTotalSold()","6eb7b4c2":"underdogInfo(uint256)","6eb7c67b":"_getEthPrice()","6eb85627":"Stalincoin()","6eb86537":"getAllPackage()","6eb91683":"donateForContractHealth()","6eba2b13":"getOrder(address)","6eba68f9":"ICOFactoryVersion()","6ebb6d80":"attack(address,uint8)","6ebbe863":"updatePublishContract(address)","6ebbfd5a":"addItemTo(address,uint256,uint256,uint256,uint256,uint256,uint256)","6ebc0af1":"tranche()","6ebc6200":"CURRENSEE(address,address,address)","6ebc8c86":"getContract(uint256)","6ebcf607":"_balances(address)","6ebd9d7f":"setApiRegistryContractAddress(address)","6ebdac12":"removeProductFromCart(uint256)","6ebe299f":"adventureDataContract()","6ebf10fe":"storeHeader(bytes,address)","6ebf5223":"ProofOfSheepM()","6ec012e7":"saleIndex()","6ec03f7a":"removeCrydrView(string)","6ec05f13":"EURWEI()","6ec069f8":"teamOneDivsUnclaimed()","6ec0ce6e":"_isController(address)","6ec232d3":"gasprice()","6ec236ed":"calculateTaskDeposit(uint256)","6ec23e53":"OPTIToken()","6ec25a06":"tokenCreated(address,uint256,string)","6ec2e979":"bothHaveAttribute(address,address,bytes32)","6ec32f9c":"getRepayAmount(uint256)","6ec386d3":"AutoChainTokenCandy()","6ec3af26":"addTrustedIssuer(address,bytes)","6ec40f9e":"GAME_POOL_INIT()","6ec4c951":"claimWithdraw(address,uint256)","6ec4e5b8":"callERC165SupportsInterface(address,bytes4)","6ec5239f":"setAvatar(string)","6ec62f29":"assertEq28(bytes28,bytes28)","6ec6d4a6":"setMinLimit(uint256)","6ec7743d":"getSubjectClaimSetEntryAt(address,uint256,uint256,uint256)","6ec84711":"organizer6()","6ec99dd0":"testGetBlobStore()","6ec9b125":"EtherSphere()","6eca017e":"releaseForYoobaTeam()","6eca4a50":"UKTTokenController(bytes32,bytes32)","6eca6a9e":"updateRecordName(uint256,string)","6ecb97cd":"getInitializeNumOutcomesValue()","6ecbb556":"UAPCrowdsale(uint256,uint256,uint256,address,address)","6ecc9ad9":"getInstallments(uint256)","6ecd1129":"nextAvailableLevel()","6ecd7b70":"CancelSale(uint256)","6ece5937":"endGame(uint256,string,address)","6ece7d88":"doVote(uint256,uint256)","6eced029":"getMsgGasAfter()","6ecf9f7b":"hype()","6ed0b9d7":"changeStage(uint8,uint256,uint256)","6ed28ed0":"store(uint256,uint256)","6ed2d8c6":"giantFYou(address,uint256)","6ed2fc5c":"PRESALE_WEI()","6ed33343":"dsp()","6ed33b98":"addSupportedToken(address,address,uint256,uint256,uint256)","6ed34394":"totalLockPrincipal()","6ed3f468":"sendsignature()","6ed40f9d":"isValid(string,string,uint256,uint256)","6ed43eb0":"getInvestorList(uint256)","6ed4d0c7":"dataCenterGetResult(bytes32)","6ed51d94":"isValidBuyOrder(address,address)","6ed55eb5":"setUserRating(address,uint8)","6ed5777e":"BuyHORSEtokens()","6ed5f880":"withdrawGTA(uint256)","6ed65dae":"sendCount()","6ed6da9e":"getUserById(uint256)","6ed6e17a":"updateCurGamePrizeInfoWithDraw(uint256,address,uint256)","6ed776b2":"createToken(address,address)","6ed7c013":"move_monsters()","6ed84231":"TOURNAMENT_BATTLE()","6ed89fbc":"_transport(uint256,uint256)","6ed963b7":"EthereumTravelCrowdsale(uint256,address,address)","6ed9c19f":"calculateMasked(address,uint256)","6ed9fd89":"avgGas(address)","6edb2e8a":"sellPropertyAndChangeOwnership(address)","6edb4cf6":"testThrowRetractLatestRevisionDoesntHaveAdditionalRevisions()","6edb9ab0":"batchDepositTo(address,address[],uint256[])","6edbba2e":"numFree()","6edbd134":"hasHash()","6edbeb1c":"verificationHoldersTimestampMap(address)","6edc7ba7":"getExchangeFunctionSignatures(address)","6ede2106":"EtherIn(address,uint256)","6ede696b":"PaymentProcessor(address)","6edf1cc4":"getWithdrawalForAddress(address,address,uint256)","6ee0400d":"ICOBonusPercent1week()","6ee1844e":"KnownOriginDigitalAsset(address)","6ee18573":"addWhitelistOperator(address)","6ee2627b":"maxFundLimit()","6ee2e362":"CleanCurrentRoomAndRound(address)","6ee2ed5d":"totalSpinners()","6ee31a18":"upgradeToken(address)","6ee3d453":"modifyGameItemPrice(uint256,uint256)","6ee4b475":"InitialBlockCount()","6ee5d676":"getSumCourse()","6ee61483":"changeBuyin(uint256)","6ee63f1f":"MineableToken()","6ee64345":"endMainSale()","6ee678ae":"_burn(address,address,uint256)","6ee74b3c":"Test5()","6ee7826f":"_getRoundedPrice(uint256)","6ee78aea":"isMultiple(uint256)","6ee7a063":"createInstance(address,bytes32,address,bytes32,bytes)","6ee8067f":"whitelistManagerAddr()","6ee84bb7":"SDD_Erc223Token()","6ee88301":"getRoomOwner(uint256)","6eea4820":"QBT()","6eeb553f":"pollBurnCompleted()","6eeb7a36":"setCreator(address,bool)","6eeba5c6":"short_party()","6eebad9e":"Jitech(uint256,string,uint8,string)","6eebb73f":"activateZone(int32[],int32[],uint8[],uint8[])","6eec21d6":"vault_deposit(address,uint256)","6eec2dd2":"Released(bytes32)","6eec3db6":"allocateAdvisorTokens()","6eecb7c2":"getDomainTypehash()","6eecf81a":"SetPrcntRate(uint256)","6eedc46d":"tokenWalletChange(address)","6eee2dad":"mintRewardTokens(address,uint256)","6eeeca03":"finalizeSale2()","6eef0326":"placeBetOdd(uint256)","6eef2cb7":"functionTwo()","6eef7a05":"bytesToString(bytes32)","6eef908f":"startReceiveTicket()","6ef0a5cf":"singleTransferToken(address,uint256)","6ef0c864":"SetDataAddress(address)","6ef0f37f":"setHome(address)","6ef181a8":"setRarityMultiplier(uint8)","6ef1a114":"transfersRemaining()","6ef1f3a6":"luckyOne(uint256)","6ef27042":"CentraToken()","6ef33b8f":"getInfo3(address,address)","6ef3732d":"fixDividendBalances(address,bool)","6ef3ef7e":"approveData(address,uint256,bytes)","6ef4e8db":"getCalcToken()","6ef61092":"withdrawn(address)","6ef72aaa":"BattleResult(address,address,uint256[],uint256[],bool,uint16,uint256,uint32,uint32)","6ef791bb":"WylSistContract()","6ef8c661":"addInfoListItem(bool,address,address,uint256,string)","6ef8d66d":"renouncePauser()","6ef958df":"changeSource(string,string,uint256)","6ef98b21":"withdrawOwner(uint256)","6ef9bc29":"phase3EndingAt()","6ef9e145":"weiBalances(address)","6efa0621":"SPPSeriesB(uint256,string,uint8,string)","6efa629d":"releaseFees()","6efa6a67":"PAYOUT_PCT()","6efab8f2":"overloadedMethod(address)","6efaf16c":"disableAutoSeller()","6efbb60a":"addONG(bytes32,string,string)","6efbd610":"coownerPrice()","6efd1adf":"RATE_EXPONENT()","6efd5974":"signedApproveHash(address,address,address,uint256,uint256,uint256)","6efe39a3":"getEncryptedKeyFromRequest(uint256,uint256)","6efef04d":"setLevelEndDate(uint256,uint256)","6eff96f2":"rafflepot()","6effb219":"changeCreditFundNIMFAAddress(address)","6effb579":"stop_sell(uint256)","6effdda7":"Trade(address,uint256,address,uint256,address,address)","6effe1c7":"startSale2Phase()","6effec50":"forwardCall(address,uint256,bytes)","6f00a3cf":"DumpDivs()","6f00ad8a":"lastmoney()","6f00fd97":"createTokenTransaction(address,uint256,uint256,uint256,uint256,address,uint256)","6f015889":"Activate(address,uint256,string)","6f0166c4":"GeoGems(address)","6f01d915":"addHedge(address,uint256,uint256,bytes3,bytes3,uint64,bytes32,bytes32)","6f020775":"totalCoinLock()","6f022ac4":"cancelMigration(address)","6f02483f":"EtherGang()","6f024899":"Destructible()","6f025aec":"MolikToken()","6f025c84":"MithrilDemo()","6f03e307":"setTiersInfo(uint8,uint256[],uint256[],uint256[],uint256[],uint8[])","6f03e4f9":"getClientBalances(address)","6f0470aa":"candidates()","6f04ff33":"increaseSalesBalance(address,uint256)","6f0503ad":"setDerivePayoutDistributionHash(bytes32)","6f05994e":"addBalanceFor(address,uint256)","6f0663f0":"RadioCoin()","6f069cfe":"technik()","6f06fdb3":"hasAgreement(uint256)","6f079f90":"getPricingEndsAt()","6f086122":"preSignedHashing(bytes8,address,address,uint256,uint256,uint256,uint8)","6f08effa":"manualBonus()","6f09240f":"runScript(bytes,bytes,address[])","6f0963b0":"isMemberBlocked(address)","6f096f75":"investorPayment(address,uint256)","6f0a150f":"restartRound(bool,bool)","6f0a74d5":"_8_poluchaetLesha()","6f0ac394":"getCP(address)","6f0b5180":"buyFor(address)","6f0cd3a6":"m_active()","6f0cfab6":"DNSResolver()","6f0d0a38":"CrocsFarmer()","6f0f45d2":"OPERATIONS_ADDRESS()","6f0fccab":"getTokenName(address)","6f0fdce8":"Task(address)","6f1003c4":"minEsteemAmount()","6f109879":"impl_transferMSM(address,address,uint256)","6f10d1a0":"addNewToken(bytes32,address,address)","6f10fdbd":"totalPlay()","6f117190":"getInitialTerrain(uint256,uint256)","6f11a859":"availableAirdrop(address)","6f1236e1":"ETHPriceProvider(string)","6f13b95d":"editTokensForHour(uint256)","6f13e01b":"EthVenturePlugin()","6f13eb09":"BlockChainZB(uint256,string,string)","6f1427b2":"icoInProgress()","6f147f5c":"addWhiteListed(address[],uint256[],uint256[])","6f14dc62":"storehouse(bytes32)","6f152670":"max_fundingGoal()","6f15847f":"recordInfo(bytes32,uint256,string)","6f159c4f":"founder_token()","6f16a595":"PRICE_MIN()","6f17a516":"ln_fixed3_lnr(uint256,uint256)","6f181303":"ScriptCallable()","6f18337d":"IHF(address,uint256)","6f18d3f5":"traded_token_is_seeded()","6f1a5b72":"updateTokenHolder(address)","6f1a78cc":"deleteWebsite(address)","6f1aa1f5":"requestTokenIssue(address,uint256,string)","6f1ae5de":"_itemRemoveMarkets(uint256)","6f1c8a51":"_getHash(address,bytes32)","6f1ca0c2":"preicoSupply()","6f1cecd8":"unreadMessages(address,uint256)","6f1db0b7":"createNewBid(string,uint256)","6f1e54c3":"sellMyTokensAmount(uint8,uint256)","6f1e6419":"MANHATTANPROXYYORKAVE()","6f1e738c":"updateISIN(string)","6f1fb766":"sealedBids()","6f200ce3":"transferBlock(address,address,uint256)","6f204f20":"getChannelInfo(address,address,uint8)","6f2130d3":"amountOfCRs(address)","6f2223c5":"getRefereeAddress(address)","6f227851":"USDValue()","6f2293ab":"transferFrom(address,address,uint256,bool)","6f22993c":"moveTokens(address,address,uint256)","6f22d6a5":"losses()","6f24fe30":"notifyPledgeNotPayed(uint256)","6f253319":"CurrentGoldPrice()","6f259077":"STAGE_ONE_TIME_END()","6f2594a0":"moduleMultiOwner(address)","6f264776":"buy10tickets()","6f264b2e":"requiredTokenAddress()","6f26d566":"dailyLottery()","6f28a853":"assertNotSpent(uint256,int256,bytes32,bytes32)","6f28ee09":"storeHash(string,string)","6f290893":"Refund(address,uint256,uint256,int256)","6f29c88a":"exchangedNum()","6f2b1226":"upgradeBank(address)","6f2f098b":"Cite(bytes32)","6f2f7a57":"getWinNumber()","6f2fc06b":"proxyPayments(address)","6f2feb0a":"approveAndSell(uint256,uint256)","6f307dc3":"underlying()","6f30e1ee":"PunkBidWithdrawn(uint256,uint256,address)","6f3165d3":"UpgradeRig(uint8,uint256)","6f320970":"vernamCrowdSale()","6f322fef":"Atra()","6f326ac6":"checkStorageProof(bytes32[],address)","6f32a937":"min256(uint256,uint256,uint256)","6f32b2ac":"setRSPScienceAddress(address)","6f32b4cb":"mainICOSecondWeekEndTime()","6f3355af":"isBreakingCap(uint256,uint256)","6f335870":"sections()","6f3395b2":"_tradeEtherDelta(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256)","6f33ae68":"HouseFeeUpdate(uint256)","6f341804":"activeteICO(uint256)","6f34a7ff":"sanctuary()","6f35c749":"SECONDS_OF_DAY()","6f362c2b":"latestSpender()","6f3640f7":"getRealUsdAmount()","6f36ce79":"insert_deal(address,address,uint64,uint128,uint32)","6f370b20":"Austriachain()","6f373cb7":"PullRequestClaimed(uint256,uint256)","6f374a12":"setBool()","6f37f48b":"firstToken(address)","6f38e410":"maxLevels()","6f3921ee":"extended()","6f3a7561":"SimpleAuction(address)","6f3ad341":"ICO_ONE()","6f3b2819":"secondChainHNw2()","6f3b4759":"lockMultiple(address[])","6f3b60d6":"latestOrderId()","6f3b6d00":"RESERVED_TEAM_SIDE()","6f3b8ce2":"getArrayAddress(bytes32)","6f3b97a4":"DeactivatedContract(uint256)","6f3bb97f":"unsetVipAddress(address,address)","6f3be1da":"lift_ban()","6f3be6b7":"ELEXTROCOIN()","6f3bf6ea":"GMC()","6f3c8566":"redeemWarriors()","6f3d8043":"valueAfterReducingFee(uint256)","6f3f6870":"CertAdmins(address)","6f3fe404":"updateBalances()","6f414fbb":"sale1Started()","6f4215b1":"setEthRate(uint256)","6f42879f":"wantsToFight(uint256,uint256)","6f42934d":"getTimePurchase()","6f42c901":"teamAddresses(address)","6f43233a":"getAnyAddressTokenBalance(address,address)","6f44c4d7":"recipientVIP()","6f4618d8":"firstReserveAllocation()","6f468289":"CONTRIB_PERIOD2_STAKE()","6f475e7f":"validateTransfer(address,address)","6f476cbc":"opMinted()","6f479f57":"changeSellingPrice(uint256,uint128)","6f47b075":"test_set_get_Policy()","6f47e218":"sharesRaised()","6f4812e2":"testFailControllerInsufficientFundsTransfer()","6f48455e":"checkMinMaxInvestment(uint256)","6f488063":"getPOOL_edit_7()","6f494049":"registerPublicKey(uint256,uint256)","6f49a3c0":"openChest()","6f4a2cd0":"distributeRewards()","6f4b31cc":"Bastonet()","6f4bda17":"numberOfPlayers()","6f4be234":"EMJAC()","6f4c6443":"invite(address,address)","6f4ca36e":"Tracto()","6f4ce56a":"indexOf(bytes32)","6f4d469b":"addMembers(address[])","6f4d6f5d":"ShitToken(address)","6f4d80e5":"m_state()","6f4db6a7":"hasRepeat(uint8[4])","6f4dd69c":"testSetBalanceUpdatesSupply()","6f4dfede":"GetExpireTime()","6f4eb87e":"test_removeFromRegistry()","6f4ebb70":"calculate_reward(uint256,address,uint256)","6f4efd53":"POTJ()","6f4f2ec3":"ERC20Template(string,string,uint8,uint256,address)","6f500df5":"claimCofounditTokens(address)","6f503750":"LogPermit(bytes32,bytes32,bytes32)","6f503e67":"vestingOf(address,uint256)","6f512e61":"setSgdToEthRate(uint256)","6f51d01f":"getUserBlockNumber(bytes32)","6f52167d":"payDuel(address,string,address,string)","6f53a48a":"Bitprize()","6f53da8f":"benefitFunds()","6f53df6c":"EtheraffleLOTPromo()","6f540fe0":"setCampaign(address)","6f54e4df":"candyper()","6f54e89e":"getMaximumFunds()","6f5736c6":"getFreeFalcon()","6f5831cb":"startTokensSale(address,uint256,uint256,uint256,uint256)","6f584bd8":"View_TrustlessTransaction_Info(uint256)","6f58659b":"totalRewardIssuedOut(address)","6f59a5cc":"curBubbleNumber()","6f5b286d":"tokenUnsold()","6f5cca83":"withdrawForCompany()","6f5d616b":"execPermissions(address)","6f5d64fa":"FSNASAddress()","6f5d712e":"TOTAL_TOKEN_CAP()","6f5da839":"Token(uint256,string,string,uint8)","6f5da961":"transferEntityOwnerPull(address)","6f5e7398":"dasToken()","6f5eb4b5":"publicSell(uint16)","6f5f20ce":"INITIAL()","6f5f7ba2":"CreatedYUPIE(address,uint256)","6f5f8f74":"Cryptoloans()","6f5f9498":"InitializedManager(address)","6f6007bb":"StartdatePresale()","6f609714":"FrameworkToken()","6f625567":"roleAdd(address,string)","6f62cba3":"resetUserRefBalance(address)","6f62e755":"changeGatewayAddr(uint32,address,string)","6f63d2ec":"left66(uint256)","6f64234e":"sendFunds(address,uint256)","6f64824b":"setErc677token(address)","6f64ccf5":"checkVestingTimestamp(address)","6f652e1a":"createOrder(address,uint256,uint256,uint256)","6f6541e0":"SetLot(uint256)","6f6640c1":"AnthillFarmer()","6f66d23b":"adminGetWorldData()","6f6781d3":"getPosition(uint8)","6f68d634":"acceptTrusteeOwnership()","6f68fffd":"setEndSaleTime(uint256)","6f691500":"getMySecondAmount()","6f698fb5":"setMinimumQuorum(uint256)","6f6aadfb":"SnovPresale()","6f6b32ad":"PVXToken()","6f6b6963":"VestingCreated(address,address,address,uint256,uint256,uint256,uint256,uint256)","6f6bdbe3":"specialUsers()","6f6c0244":"generateShortLink()","6f6c0759":"onlyPayForFuel()","6f6c7234":"setApoderadoVerify(bytes32,bytes32,bytes32)","6f6cd9f5":"isElectionPeriodProposal(uint256)","6f6d3694":"removeRound(uint256,uint256)","6f6eacee":"availbleToken()","6f6f828e":"removeAllTournamentContenders()","6f6f9bef":"getLandInfo(uint256)","6f6ff3bc":"setVesting(address)","6f7030f6":"calculateCuts(uint256)","6f704aa6":"TreasureToken(address,address)","6f70a22f":"deadlineThree()","6f70b9cb":"getWinningChildUniverse()","6f7154c8":"getIsStopFunding()","6f71f407":"freeze(address,uint8)","6f72fd20":"calculateBonus(uint256,uint256)","6f74174d":"finalizeIt(address)","6f741cff":"getPauserList()","6f7429ab":"modifyDescriptionManual(uint256,address,string)","6f7495cb":"unproducedCaps()","6f74dafe":"getGodAddress()","6f752f09":"backendContract()","6f75b00c":"removeBuyer(address)","6f75cd14":"DappToken()","6f766f20":"refundTRA()","6f7705c2":"becomeRichest(string)","6f77926b":"getUser(address)","6f784c5b":"totalAmountOnICO()","6f78ee0d":"rap(bytes32)","6f7920fd":"tokenCreationCap()","6f79301d":"getCreationTime(bytes32)","6f796d86":"JACK(string,string,uint8,uint256)","6f799cf9":"_amountRaised()","6f7b5a56":"getDEditorArbitraryData(bytes32,bytes)","6f7d9acf":"setupInitialSupply()","6f7f461d":"manager1()","6f7fc989":"teamIssue(address,uint256)","6f80602b":"NewOrleansCoin()","6f80dc23":"obfuscatedHashDataBlock(string,string)","6f8177f4":"MentalhealthToken()","6f81adf6":"Resilium()","6f81bdd8":"setRate(uint256,bool)","6f826a7d":"testIsEmpty(bytes)","6f82e068":"initialSupplyPerChildAddress()","6f838a8e":"TESTCOIN1()","6f8489af":"CreateGMT(address,uint256)","6f84eb6c":"setPatronReward(uint256)","6f853964":"setPriceCoeff(uint256)","6f8543a6":"CoWithdraw()","6f85c7e4":"WAITING_PERIOD()","6f85e62c":"buyTokens(string)","6f863c21":"inviteIter_()","6f872022":"setSectionForSaleToAddress(uint256,uint256,address)","6f874abb":"setgasUsed(uint256)","6f87dddd":"getPlayerStageKeys()","6f882086":"KNCBalance()","6f893e0d":"LeeroyPremiumToken()","6f8b44b0":"setMaxSupply(uint256)","6f8b7574":"createTransaction(address,address,uint256,string,uint256,uint256)","6f8c33a6":"getGoldDepositOfAddress(address)","6f8c3c0e":"MIToken(uint256,string,uint8,string)","6f8c3e4c":"SaraAndMauroToken()","6f8c9575":"yearFor(uint256)","6f8d3eb0":"withdrawPAXTR(uint256)","6f8d998c":"dist(uint256,uint256)","6f8dca87":"GetCost(uint256,uint256,uint256)","6f8e0a08":"getreward()","6f8e1fb6":"testOverflowResistantFraction()","6f8ee91c":"level_6_amount()","6f8f1de5":"mock_resetLatestPayday(address,address)","6f8fb2c3":"CROWDSALE_WEI_GOAL()","6f8fccd7":"BioChainCoin()","6f9090db":"setwinPercent(uint32)","6f90be06":"playFromBalance()","6f910c4b":"checkProviderOwnerSupply(uint256,bool)","6f9125a5":"pylonSelled()","6f9170f6":"isWhiteListed(address)","6f919068":"LogUnPause(bytes32)","6f91cec0":"ProvideWorkOrder(address,address,address,uint128)","6f92096b":"setGasForward(address)","6f923a7c":"LockSAToE()","6f925535":"revokeAccess(address,uint8)","6f92f186":"multiply(address)","6f93638e":"isSolvent(uint256,uint256)","6f941290":"SelfDropTokens(address,uint256)","6f9477c0":"BanAccount(address,bool)","6f947d6d":"_emitPublicCapabilityAdded(address,bytes4)","6f94e260":"buybackPriceOf(uint256)","6f94e502":"getVoter(uint256,uint256)","6f954161":"changePreJackpotBidLimit(uint256)","6f95dd0b":"RATE_DAY_21()","6f9607e5":"countYears()","6f964659":"depositMint(address,uint256,uint256)","6f969c2d":"getNonFungibleBaseType(uint256)","6f96f269":"Mehrancoin()","6f977413":"Property(string,string)","6f993a74":"rollFour(address,uint8,uint8,uint8,uint8)","6f9a023c":"theultimatepyramid()","6f9a5eab":"createTx(uint256,address,uint256)","6f9b0b7d":"getCurrentGameState(bytes32)","6f9b4c1d":"createCastleSale(uint256,uint256,uint256,uint256,uint256)","6f9ba978":"_reward(address)","6f9c3c8f":"fundReserve()","6f9c6194":"P2E()","6f9cd7b2":"mirtestToken()","6f9cdccd":"setMarketMaker(address,address)","6f9d257d":"CONFLICT_END_FINE()","6f9d73db":"BuyRocketForSaleEvent(address,address,uint32)","6f9f51c7":"RefundsDisabled()","6f9fb98a":"getContractBalance()","6f9fbd7c":"generateCrabHeart()","6f9fdd66":"trust()","6f9ff0fa":"GetDynamicCardNum(uint32,uint256)","6fa00f07":"agreementSignedAtBlock(address)","6fa01c8e":"init(bool,address,uint128,uint128,address,uint64,address,uint256)","6fa07d0d":"oraclize_query(uint256,string,bytes[5])","6fa0bf39":"getRankDynamic(uint256)","6fa1532e":"UpdateBalance(address,uint256,bool,address)","6fa15c21":"setPreIcoEndDate(uint256)","6fa23eac":"ShouWangXingAIGO(uint256,string,uint8,string)","6fa23f73":"setSupplyLimit(uint16,uint16)","6fa25d9a":"Log2_fnc(address,bytes32,uint256,string,string,string,uint256,bytes1,uint256)","6fa28249":"getClaimsIdByType(uint256)","6fa4095e":"emitHavvenUpdated(address)","6fa42742":"arbitrator_question_fees(address)","6fa4c766":"revertFunds(address,address,uint256)","6fa4f5f7":"setRefPercent(uint256)","6fa58335":"tgeDuration()","6fa64cd6":"miningIncentiveTokens()","6fa65c4f":"MICRODOLLARS_PER_DOLLAR()","6fa668f3":"weiForPayment()","6fa6ad21":"getDeprecated(bytes32)","6fa6c360":"validateTranscriptHash(address,uint256,bytes32)","6fa81a3a":"IcoTimeRangeChanged(address,uint256,uint256)","6fa87f66":"Moongang(uint256,uint256,uint256)","6fa88aa3":"BrazilvsCostaRica()","6fa8de90":"changeMeatParameters(uint256,uint256)","6fa9ba07":"ShowMsg(bytes)","6fa9e255":"LiftUpVets(string,string,uint8,uint256)","6faa22a5":"polyToken()","6faa52b3":"getOwnerHistoryAt(bytes32,uint256)","6faaeca2":"finishBallot(bytes32)","6fab5ddf":"Fal1out()","6fab94c1":"BitplusToken()","6fac46e5":"numberOfRazzes()","6fad0a4d":"KPOP_CELEB_CONTRACT_ADDRESS()","6fae3d76":"access(address)","6faed0e5":"set_master_exchange_rate(uint256)","6faf4803":"BitcoinDiamondTest()","6faf9323":"TokensPurchased(address,address,uint256,uint256)","6fb1eb0c":"commissionFee()","6fb1edcd":"sellAllOutcomes(uint256)","6fb2d01e":"calculateBonusForHours(uint256)","6fb37c18":"TChainToken()","6fb3ba9e":"setWorking(bool)","6fb438dc":"getTotal(uint256[])","6fb487fc":"getListener(address)","6fb4adff":"changeFundWallet(address)","6fb642de":"setActionContract(address,bool)","6fb65c7f":"grantReserveToken()","6fb66278":"ratePreICO()","6fb6fde6":"AuthAdmin(address,bool,uint256)","6fb7110f":"BuckySalary()","6fb7b52e":"addCheck(address,address,uint256,bool)","6fb7e588":"encodeTokenId(int256,int256)","6fb7f147":"getPendingExplore(address)","6fb7fc8b":"deltaBalances(address,address,address[])","6fb8a70d":"responseCounts(uint256)","6fb8b885":"RESERVED_TOKENS_FOR_ROI_ON_CAPITAL()","6fb93e15":"BuyARXtokens()","6fb99dfb":"EventRemoveManager(address,address)","6fb9a2b4":"newCrowdsale()","6fba4aa9":"GUOcoin()","6fba7544":"setMinStartingPrice(uint256)","6fbaaa1e":"currentMultiplier()","6fbb222a":"setExtendedPlayerAttributesForPlayer(uint256,uint8[])","6fbb439e":"assign(string)","6fbc15e9":"upgradeTo(address,bytes)","6fbc8456":"setUID(uint256,uint32)","6fbcd0f6":"AnitiToken(address,uint256,uint256)","6fbcd1fb":"_getAltarRecord(uint256)","6fbd6f6b":"acceptContactRequest(address)","6fbdae47":"getArrayInfoForDepositCount()","6fbde40d":"setSaleAuctionAddress(address)","6fbe769d":"cards_black_total()","6fbf466c":"unscannedCaps()","6fc141da":"lastPaydayTS()","6fc14837":"setMaxStake(uint256)","6fc1cbbd":"RexToken()","6fc21429":"setgamecardintro(uint256,string)","6fc351c2":"Elsevier(uint256,uint256)","6fc3911c":"checkVerificationStatus(address)","6fc39a38":"changeAgencyReceiver(address)","6fc3b0b6":"getTime4(address)","6fc3c817":"confirmer()","6fc4f2c2":"isOnPreAuction(uint256)","6fc559bb":"tokenGrants(uint256)","6fc651f3":"TokenAGC(uint256,string,string)","6fc65924":"getDisputeEndTime()","6fc6df36":"fYou(address,string,string)","6fc8e920":"icoBonus4EndDate()","6fc90a2f":"submitSolution(uint256,string,bytes)","6fc98ee1":"mintTokens(address,address,uint256)","6fc9958a":"initBundle(uint8,uint256)","6fc9d5e4":"changeCompareTo(uint256)","6fca2023":"getSharedAccountsLength()","6fcac869":"BONUS_4_DAYS()","6fcaea0c":"set_iconiq_presale_open(bool)","6fcb0153":"issuanceLastAverageBalance(address)","6fcb1500":"defaultSweeper()","6fcb4463":"signUpOn()","6fcbb546":"extractOre(string)","6fcc52e7":"gujarat()","6fcdcb3e":"setOwnerLink(address,uint256[2])","6fce2d65":"updateAccount(uint256,uint16,bytes32,uint16,bytes32)","6fceaea2":"convertToMiniGGC(uint256)","6fcebff8":"ConversionSentToShapeShift(uint256,address,address,uint256)","6fceecf8":"withdrawRestriction(address)","6fcfbe85":"FAFA(address)","6fd075fc":"addPlayer(address,uint256)","6fd09735":"createDistrito(uint256,address)","6fd1bdea":"setProduct(uint256)","6fd2e6d0":"TFFC()","6fd37039":"WebPaisa()","6fd396d6":"lastRewardTo()","6fd3a2bc":"createTokensManually(address,uint256)","6fd42b32":"safeWithdrawal(address)","6fd44086":"adviserSupply()","6fd463ed":"addressOfTokenUsedAsReward1()","6fd5036d":"userChannelsCount(address)","6fd507f2":"Tube()","6fd5790d":"getCuota(uint256)","6fd59b01":"foundationFundMultisig()","6fd5ab58":"getTextBytes96()","6fd5ae15":"level()","6fd63728":"feeFunds()","6fd7c035":"EventRedeemStatic(address,uint128,uint256,uint256)","6fd7c34c":"setMemberRegistry(address)","6fd8282f":"priceLastUpdateRequest()","6fd86d44":"emitAccountUnfrozen(address)","6fd902e1":"getCurrentBlockNumber()","6fd9101f":"ACAToken(uint256,address)","6fd9227e":"TokenSold(address,uint256,uint256,bool)","6fd98bee":"updateTimes(uint256,uint256)","6fda5534":"rockOwningHistory(address)","6fdada81":"proofOfRich(string,string)","6fdb4f42":"revokeUsers(address[])","6fdbc590":"CreateDil(string)","6fdc202f":"ownerTransfership(address)","6fdc45a3":"BangdiToken(address)","6fdca5e0":"setOpen(bool)","6fdcc8a9":"listRecords()","6fdd2ab4":"createStage(uint8,uint256,uint256,uint256,uint256)","6fdd5f58":"ShopKeeper(address)","6fde3dc0":"getRunesValue(uint256)","6fde8202":"upgradeabilityOwner()","6fde90bc":"setCCH_edit_2(string)","6fdf9a3f":"sendToRstForAddress(address)","6fdf9f28":"setBDError(uint256,bytes)","6fe00356":"investorIDs()","6fe02e98":"tier3Rate()","6fe0e395":"initialize(string,string,uint256,uint256)","6fe11695":"isMajority(uint256)","6fe12f07":"proverka6()","6fe1dbec":"sendSupportETH(address,uint256)","6fe1f6b4":"BAD_ERC20()","6fe33720":"YOTOKEN()","6fe356ea":"moduleIsExist(string)","6fe3a567":"tokenMigrated()","6fe3ef7c":"resolveEntityAddress(address)","6fe497f0":"lockStatus(address,bool)","6fe4c195":"lockAddress(address,address,uint256)","6fe5091e":"collectPayout(uint256)","6fe5b536":"testFailSetEnforceRevisionsNotOwner()","6fe64289":"RepuToken()","6fe665e9":"SlotMachine()","6fe691dc":"getUserTransactions()","6fe69dee":"RealtyCashToken()","6fe7567b":"_subPurchasedFrom(address,uint256)","6fe7f51c":"saleWasSet()","6fe83236":"getAllCardAddressesCountOfOwner(address)","6fe8c29e":"JEY()","6fe8f9c5":"freeTokens()","6fe9e7d7":"freezeUserFunds(address,address,uint256,uint256)","6fe9f632":"preICOrates(uint256)","6febfd02":"getSiteRewards(uint256)","6fee558c":"getHookOperatorContractAddress()","6fee8458":"burnExcess()","6feef2bf":"cancelTknOffer()","6fef4fa9":"setAllowedToSell(bool)","6ff026e7":"purchased_snt()","6ff03fc2":"_removeMaster(address)","6ff08dd6":"calcWhiteBase(uint256)","6ff10dd7":"TrioPeriodicTransfer(address)","6ff1c9bc":"emergencyWithdraw(address)","6ff1ed71":"pickUp(uint256)","6ff1f2b8":"refererPercent()","6ff26ebb":"longBuy()","6ff2817c":"batchDetachAssets(uint256[])","6ff28657":"Josephtoken()","6ff2c12a":"setMiniPoolEdit_6(string)","6ff36340":"eTimesChain()","6ff46ba7":"deathData_a10()","6ff5a670":"PortalToken()","6ff6c4b8":"setCreatorFeePercent(uint256)","6ff73201":"setCooldownTime(uint256)","6ff79410":"numberOfComponents(address)","6ff89159":"revokePermission(address,string)","6ff8a27e":"buyTokens(address,uint16,address)","6ff8e332":"allowedAirDropTokens()","6ff93476":"tokensAllocatedForFs(address,address)","6ff968c3":"successor()","6ff97f1d":"allTokens()","6ff9db5b":"msgHash(bytes)","6ffa1257":"etherSoftCap()","6ffa1caa":"double(int256)","6ffa1d48":"LogCreateICO(address,address,uint256)","6ffa1ea7":"getRegulatorProxy(uint256)","6ffb341e":"calculateKebabBuy(uint256,uint256)","6ffbff9c":"importMET(bytes8,bytes8,address[],bytes,bytes32[],uint256[],uint256[],bytes)","6ffc0896":"checkIfSuccess(bytes32)","6ffc13ab":"POMPAMCOIN()","6ffc22b8":"finalizeReservedAddress(address)","6ffcc719":"bet(uint256,uint256)","6ffe67f2":"autoDestruct()","6ffea7bd":"preToken()","6fff0652":"changePlayerTeam(uint256,uint256)","6fff15ee":"percPoints(uint256,uint256)","6fffffff":"HDK_Crowdsale()","70011870":"credexx(address,address,address,uint256,uint256,uint256)","7001a2a2":"elcoin()","7001fcc2":"closeImports()","700215d0":"SellFinishedAutos()","70021705":"watchVideoC(address)","7002a4e0":"setPartIndex(uint256,uint256[])","7003433a":"setRealityCheck(address)","70037a71":"setPresaleWhitelist(address,bool)","7003a1a3":"EosBlock()","7003ce6f":"UController()","70049c1c":"forwardEherToOwner()","7004a914":"ArbitraryLocker(address,uint256,uint256,uint256,uint256)","7006d538":"verificaCertificato(string,bytes32)","7007adc9":"finalBlockNumber()","7008a4a3":"firstWavePrice()","70090164":"PRIVATE_ADDRESS()","70097106":"addContent(string,string,uint256)","700a7db1":"setCriterionTime(address,uint256)","700b7025":"EthereumHotCoin()","700c9474":"addUsers(address[])","700d3230":"isPiSale()","700dd5eb":"AuthorityNotified(string,string)","700df1f6":"setMigrationStabitcoinAddress(string)","700e17b5":"setData(uint256,uint256,uint256,uint8[])","700e8660":"Marriage(string,address)","700ef803":"SafeBox()","700f3a1d":"addToken(string,int256,bytes)","700f4e40":"test_invalidProxyOwnershipTransfer()","700f55b2":"addTx(address,address,uint256,uint256)","700f9d03":"logEndBal()","7010129a":"tokenTransferVIP(address,uint256)","70101735":"releaseReservedTokens()","70103ea7":"setPaperFee(uint128)","70107c43":"_zthToken(address)","70119d06":"incBy(uint256)","70133e4f":"Xerium()","70144f8f":"activate_kill_switch()","70150282":"FMWorld(address,address,address)","701513c0":"addBooking(uint8,uint256)","70152dcf":"getPrivacyCoins()","7015913c":"end(bytes32)","70165470":"ICOFailed(uint256,uint256)","70183a4d":"stakingExpiration(bytes32)","70185b7e":"updateSafeBalance(uint256)","7018665b":"transferMS(address,uint256)","7018dcb9":"getCastleNum()","7018e950":"affiliatesAllocation()","701969e5":"Penny()","701adee0":"setRequireWhitelistedAddress(bool,address)","701b4063":"balanceOfAtBlock(address,uint256)","701b4631":"hasPayroll(address)","701b8826":"forwardTo(address,address,address,uint256,bytes)","701d9ced":"setTransferOCE(bool,bool)","701dfb92":"HTL()","701e1dfc":"lastInvestorsProfit()","701e5729":"canInvest(address,uint256,uint256)","701e5e71":"_purchaseCar(uint256)","701fd0f1":"reveal(bytes32)","702056de":"REKTtoken()","70206b05":"RepoHandler(address)","7020940a":"NewHope()","702123ae":"unitCoinProduction(uint256)","70212761":"saleFinalize()","7021fad7":"CheckoutLimDay(address,uint256)","70220023":"participantsFor3rdSale(address)","70228400":"isDonatedEthTransferred()","7022b58e":"confirm()","70232f00":"ClaimESC(address,uint256)","70239222":"testSHA256()","70239f0b":"serverEndGameConflictImpl(uint32,uint8,uint256,uint256,int256,bytes32,bytes32,bytes32,bytes32,uint256,address)","70243248":"PeggleCoin()","70245bdc":"adoptCat()","7024ce7b":"BONUS_ICO_ROUND1()","702510be":"payoutSelf()","7025b3ac":"ROLE_KYC_VERIFIED_INVESTOR()","70260363":"setSignatures(bytes32,bytes)","702617e7":"ERC20(string,string,uint8)","70267867":"_addBridgeTokenFee(uint256,uint256)","70269774":"changeOwnerOfMonethaUsersClaimStorage(address)","7026aa04":"getProveHash(address,bytes32,string,bool,uint256,bytes32,uint256)","70279554":"budgetAllocation()","7028439e":"bonusPreIco()","70284d19":"grant(address)","7028875e":"changeStrikePrice(uint256)","7028b3b9":"GetConsentDataCount()","7029144c":"init(string,string)","702921f5":"month()","70296790":"clever()","702a3eff":"advisorsCliff()","702a5f4f":"setLLV_edit_31(string)","702b5f0b":"calcHash(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address)","702b7bc3":"insertValueBonus(uint8,uint256,uint256)","702c25ee":"nextMinimumPodSize()","702c728e":"changeCloudsPerEth(uint256)","702c789e":"select_bua_position(uint256)","702cbbae":"isTokenAvailable(uint256)","702d58d8":"JiJieHao(uint256,uint8,string,string)","702efdf3":"suspended()","702f23a6":"transferAndFreezeMulti(address[],bytes32[],address,address,uint256[],uint256[],uint256[])","702f9019":"Start_qui_qz(string,string)","702fc7da":"ReviewModel()","70316f00":"getUserPayedInCurrentRound(address)","70320126":"newWitness(address)","70320234":"calcBonusTokens(uint256)","70324b77":"darknodeBalances(address,address)","70328770":"logBalance(uint256)","7032d758":"SevillavsBayern()","7033e4a6":"supportsHistory()","7033f1ac":"TNTCoin()","7034c939":"test_2_destroyTokens()","7034d190":"MainSaleBuy()","70354053":"UCCoinSaleIsOff(uint256)","70357e79":"func_08D3()","70359b36":"makeSuperVisor(address)","7036f9d9":"force_partial_refund(address)","7037602a":"setAccountData(address,uint256,uint256)","7037ec6f":"payEntryFee()","70385f0d":"LogPolicyAccepted(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","70387c59":"hashVerification(bytes32)","70393686":"getCOOHashing(address,uint256)","703950ff":"viewKarmaVotes(uint256)","7039dcdc":"setBEY(address)","703a6beb":"getUnitsPerPeriod()","703aca29":"competitorExists()","703add31":"animatorAddress()","703b1411":"requestSellforFX(uint256)","703bf91f":"betSingle(uint256)","703c8a99":"_openProvider(bool,string,string,uint256,string,uint8,bool,address)","703dbd81":"setPI_edit_8(string)","703df793":"updateHardCap(uint256)","703e905b":"getIndexByHash(string)","703eb724":"addShare(address)","703ee574":"CoinvillaSupply()","703f5e8a":"CaDataAddress()","703fa81c":"DOSTToken()","7040bcc9":"createPlayer(uint256,uint256,string,string,string,string,string,string,address,uint256)","7040f3e5":"Allowance()","70416f7e":"getCurrentEthFee()","7041d925":"outsize(bytes4,bytes)","704248ec":"tokensale()","7043ca8e":"getOwnerNickName(address)","7044ce75":"setTKC(address)","70459be2":"transferLeftover()","7045b469":"TotlePrimary(address)","704691e1":"LuckToken()","70477e2b":"Rozium()","70480275":"addAdmin(address)","7049a425":"MarketboardListingDestroyed()","7049cd98":"LinglongCatCore()","704a60f1":"failUserRefund(uint256)","704b164d":"setTradeIsOpen(bool)","704b6c02":"setAdmin(address)","704d4051":"periodSalesLimit()","704d4ab1":"getLostAndFoundMaster()","704d4db0":"poolTotal()","704dcedd":"LSC(uint256,string,string,uint8)","704dd019":"changeFeeCut(uint8,uint8)","704e3dda":"TokenSalePaused(bool)","704e7437":"bountyPart()","704f1b94":"registerUser(string)","704f236c":"freezeAccount(address,address,bool)","70502c5a":"testDeleteItem()","70505653":"arbitrationAddress()","705099b9":"refundTicket(address,uint256)","7050a1ea":"TimetechToken()","7051a831":"setIsContainerForReportingParticipant(bool)","7051b075":"TransferToBuyer(address,address,uint256,address)","705211f4":"approveAccess(address)","7052dad9":"withdrawRemainingTokens(uint256)","7053fe8d":"finalize_contract()","70544b74":"emergencyDrain(uint256)","70544eb9":"hijackPrice()","7055011b":"escrowHistory(address,address,uint256,uint256)","7055060f":"bulkStoreHeader(bytes)","7055410b":"retrait_5()","70557298":"testTransferFrom()","7055d368":"vote(uint256,uint256[])","7056b50f":"blockstillcontracthackable()","7056d1f4":"burnLotIdsByAddress(address)","70578bda":"SPMTToken(address,uint256)","705791f2":"TOKEN_STARTED()","7057c20d":"CFD(address)","705882f2":"setPOOL_edit_22(string)","7058901e":"mtcDailyLimit()","70590ca2":"batch(uint256[],address[])","7059194e":"deletePlayer(uint256)","70597cb1":"startCompanySell()","70598a8e":"subTokenBalance(address,uint256)","705a3644":"block3()","705a940a":"disableBondingCurve()","705b164f":"acquireFreeEgg()","705b37f4":"getTotalF1()","705b5c27":"transferVestingMonthlyAmount(address)","705b7efd":"preSaleContributions()","705b8845":"askQuestion(string,string)","705bbf6b":"updatePrenup(string)","705bbfe6":"eastadscredits()","705bd32a":"fundDevelopment(string)","705ca5cd":"getMultiRequestIdGivenRequestId(uint256)","705d528d":"_addMoney(address,uint256)","705dae11":"cancelCraftAuction(uint256,address)","705e798e":"getLastRoundInfo()","705eeb90":"MultipleConstructorTest(bool)","705f4630":"chfCentsPerEth()","705f911d":"FareBase(uint16,uint16)","705fbf3d":"burnTokensAndRefund(address,address)","705fe7c6":"testEqualityBytes()","7060054d":"dynasty()","70606cda":"supportFreezeQuorum()","7060bfe4":"busyWork(address,uint256)","706194b9":"elenctraToken()","7061e777":"Etats_financiers_10111011()","70620168":"createBroker()","706247a1":"SetVotingDescripion(string)","7062640a":"newDeal(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","706332d1":"right46(uint256)","70634626":"getBTCAddr(bytes32,int256,bytes32,int256)","70646896":"DOWN_etherWin()","70646de9":"canSend(uint32,uint32)","7064aa96":"APPROVE_CONTRACT()","7064b5aa":"getPendingExploreItem(address)","7064d509":"tokenBonus()","7064e50c":"tokenIssuedMainSaleIco()","7064f0af":"COMPANY_ALLOCATION()","7065bedc":"getSettingValuesByTAOName(address,string)","7065cb48":"addOwner(address)","706605b9":"withdraw_arbitrary_token(address)","70660f7c":"stakeExistingContent(bytes32,uint256,uint256,bytes8,uint256)","70670a20":"Ethash(address[3])","7067e881":"RATE_FACTOR()","7067f915":"Constructed(address,uint256)","706910ff":"buy(uint256,address,uint256,uint256)","7069e746":"stakingEpochStartBlock()","706a3604":"sethardcap(uint256)","706a99fb":"codeExportEnabled()","706aba4a":"RNDInvestor()","706b5759":"RegisterDomain(string,string)","706df8d6":"getDonationInfo(uint256)","706dfe54":"getIssueState(uint256,bytes32)","706e11bc":"StartRebuy()","706e5b6e":"getOTCTotalSupply()","706eb3ab":"ethUSDOracle()","706ed71b":"Bomx()","706f6496":"goldRate()","706f6937":"airdropTokens(address[],uint256[])","706f8856":"jiGouTotalBalance()","706ff617":"mint(uint256,uint256,address,uint256)","70708a3c":"LocalToken()","70712939":"removeAuthorizedAddress(address)","70713209":"TJCoin()","7071688a":"getValidatorCount()","707188c1":"changeTime(uint256,uint256)","70720fe4":"_maxTokenSoldICO()","7072a977":"gasForOraclize()","7072aaa3":"newSubdomain(bytes32,bytes32,bytes32,address,address)","7072c6b1":"restricted()","70732188":"getUserTaskAtIndex(address,uint256)","7073c072":"getRegisteredUsers()","70740aab":"purpose()","70740ac9":"claimPrize()","707424fe":"contributorsIndex()","70743768":"voteStake(bytes32,uint256)","70747544":"currentCapLevel()","7074c091":"preSaleBonus1Percent()","7075b1d8":"latestMonarchInternal()","7076738b":"_emitWorkPaused(uint256,uint256)","70767f6c":"fillBidByAddress(address)","7076e27f":"riskcoins(uint256)","70775a59":"_generic(bytes,uint256,address)","707789c5":"setOpsAddress(address)","7077c11f":"SubOnHold(uint256,bool,address)","70780a7a":"shareholder2()","70788340":"Marcelo()","7078f424":"getHint(int256,uint256)","707913f0":"Add_totalLotteryValue()","707a4e96":"start(uint256,uint256,uint256,uint256)","707a7ab3":"acceptOwnerTransfer()","707a92b8":"FoodCoinToken(uint256,string,uint8,string)","707afb1d":"closest(uint256,uint256,address)","707b543d":"createNumber(uint256)","707ba39e":"VilzToken()","707bd28b":"endAirDrop()","707bda7a":"GetLastRoomAndRound(address)","707bdf58":"MaxTokens()","707c4f05":"sendAllFunds()","707c6b4d":"blocksInSecondCapPeriod()","707c750e":"sixthTime()","707d4349":"createPromoCity(address,string,uint256)","707d5fe1":"payoutBonuses()","707dd840":"TAGCASH()","707e8128":"all_referrals_count_by_address(address)","707f4ecd":"crowdTokensTLP2()","707fe454":"MODXCOIN()","70809757":"dispute(uint256,uint256,bytes32)","7081150a":"iconToken()","7081d5da":"getPoolAvgHatchPrice()","708238a0":"mainSaleFirstBonus()","708260b4":"teamToken2018()","7082b421":"parseBlockHeader()","7082d203":"lend(address,uint256,uint256)","70835d98":"CoinAllocation(address,int64,int64)","70835f6b":"approveAddTokenData(uint256)","70844f7a":"sendBadge(address,uint256)","708484db":"blikedUntil(address)","708547f3":"testUpdateLawyer()","70858679":"YDHTOKEN_M(string,string,uint256)","70859da8":"TokenReturn(address,address,uint256)","7085b579":"b2s(bytes32)","70862562":"distributeTokens(address,address,uint256)","7086528e":"DemocracyVote()","70876c98":"purchase(uint256,uint256)","7087b272":"Coneus()","7087ed2c":"getClaimSeed(address)","70887eb9":"totalSoldTokensWithBonus()","7088abf0":"WhiteListCrowdsale(uint256)","7089e4f0":"LogBuyEnabled(bool)","708a4947":"getOptionState(address[3],uint256[3])","708b2097":"TKCC(uint256,string,string)","708b34fe":"submitMessage(string)","708b9d01":"lockThreshold()","708bf79a":"updateMember(address,address,uint256,uint256,string,uint256)","708c2956":"YouGive(uint256,uint256,string,string,address,address)","708cfb25":"setTeamTokensHolder(address)","708d0c57":"updateResolver()","708d9fd3":"group_key_confirmed()","708da969":"verifyAddress(address,string)","708ddf7b":"submitted()","708e03d9":"distributionOfTokens()","708eef42":"transferOwnershipWithHowMany(address[],address,uint256)","708f29a6":"getTotalPayments()","708f8940":"getEXECUTION_GAS_OVERHEAD()","70905dce":"emergencyAdmin()","7091e0c5":"setNewOwner(address,uint256)","70926370":"EGGS_TO_HATCH_1BANKER()","70936880":"defaultWaitTime()","70936a6e":"freezeOf()","7093ab11":"privateSell2LockEndTime()","70948956":"PolicyPalNetworkToken(uint256,address)","7094d21e":"isSuccessOver()","70961774":"getBlockCreatedOn()","7096b6cb":"receiverContractAddress()","7097048a":"claimDerivativeTokens()","70983e91":"startBoardProposal(uint256,address)","70984e97":"bigBlind()","70985eb6":"setCrowdsaleContract(address,address)","7098ad13":"PropertyCoin()","7098e670":"getFincontractInfo(bytes32)","70994b31":"getCollectibleDetails(uint256)","709a36e6":"getMiningMeta(uint256)","709a5359":"updatepresaleRate(uint256)","709bc0ff":"AntitiredToken(uint256,string,uint8,string)","709be206":"registerCreatorsPools(address[],uint256,int256)","709cc16e":"NewCup(address,uint256)","709cf8c0":"saleTokensVault()","709d8c4e":"DSPLT_A()","709e6ed4":"upgradeIdRange()","709eaa93":"minerCreatedCount()","709ecb39":"findPublisher(address)","709ef231":"sellTokens(uint256,uint256,uint256)","709f5ccc":"setDivisor(uint256)","709f6f25":"setData_19(string)","709f84a4":"PriceStrategy()","70a0014e":"projectFundingFail()","70a01b3d":"addInvestor(address,bool)","70a0246a":"toPony(uint256)","70a06777":"getTankAuctionEntity(uint32)","70a08231":"balanceOf(address)","70a0c458":"getBindAccountAddress(string)","70a0f1fe":"numChametzForSale()","70a14c21":"LogBump(bytes32,bytes32,address,address,address,uint128,uint128,uint64)","70a2b84a":"toggleAvailability()","70a4fc11":"toggleDataViewWindow(uint256)","70a6c4bb":"receiverWithdraw()","70a7b3e8":"_validEstimate(uint256,uint256,uint256)","70a7e2dd":"getBunny(uint32)","70a8609e":"test_someOtherTest()","70a89986":"addContribution(address,uint256,uint256)","70a951ce":"TripCash()","70aac052":"getRequestedProductsBy(address)","70ab2359":"MAX_CROWDSALE_CAP()","70ab2822":"assertEq21(bytes21,bytes21,bytes32)","70ab8ba8":"creditUpdate()","70ac4bb9":"right32(uint256)","70ac62ec":"getTranslationLanguageList()","70ac970b":"test_24_assertGasUsage700Boards()","70aca69a":"lockUpEnd()","70acbe0e":"rate_change(uint256)","70aceae8":"upX(uint256)","70ad0cc6":"delAddr(uint256)","70ad858b":"infoWithdraw13()","70ae882f":"finishNextGame()","70ae92d2":"nonce(address)","70ae992a":"pubKeyToAddress(bytes)","70aecf61":"getContractReceiver(address)","70b0d4ac":"GetAccountIsNotFrozenForReturnCount()","70b1d9d4":"requestCanonicalFormat(bytes)","70b257a4":"pushClient(address,bytes32)","70b2a30f":"tokenToEth(uint256)","70b2ef56":"EntropyTestToken()","70b2fb05":"bettingEnd()","70b3b0e5":"countriesWallet()","70b3c7de":"CrypteloPublicSale(address,address,address,address)","70b3d68c":"signHash(uint256)","70b3db6f":"getCoinAge(address,uint256)","70b45ca0":"_rateFromDay(uint256)","70b57415":"product2_pot()","70b581ad":"finalize(string)","70b60760":"getNodeIdsLength()","70b7596b":"getWinnings()","70b7f9f3":"setTradingAllowed(address,bool)","70b80d77":"WCME()","70b8206c":"getRoundRefIncome(address,address,uint256)","70b8d29a":"saveMsgByAdmin(string,string)","70ba1113":"percent()","70ba3339":"cancelTransaction(bytes32)","70bab35d":"systemStartingPriceMin()","70bad87e":"revokeFarmerCertificate(address)","70bb478f":"makeTrade(address,address,uint256,uint256,uint256,uint256)","70bc52fb":"protectAddress(address,bool)","70bdd155":"oracle_price_decimals_factor()","70be4ffa":"testErrorUnauthorizedSetPackage()","70be564b":"Trump()","70be61d1":"ApplicationInFundingOrDevelopment()","70be89c1":"addAddressesToWhitelist(address[],uint256)","70be8a86":"ownedCoin(address,uint256)","70bf7b96":"_collect_fee(address,address,uint256)","70c0b647":"getOwed(address)","70c0c516":"directMintLimit()","70c0f689":"getApplicationState()","70c10578":"takeProfit()","70c18199":"getResponse(uint256)","70c1854e":"FLOCK()","70c31afc":"tokenImprint(uint256)","70c33b31":"changeGasRequired(uint256)","70c35951":"referralPercentOfTotal()","70c40842":"_setTokenOwner(address,uint256)","70c4488d":"validNick(string)","70c494fc":"ATC()","70c4ce24":"newListing(string,uint256,string)","70c4f2e1":"MIN_SHARE_OF_POWER()","70c55e1f":"getTradingPairCutoffs(address,address,address)","70c5f786":"TEAM_CAN_CLAIM_AFTER()","70c5fc9d":"clearTickets()","70c690f4":"MultiOwnable(address[],uint256)","70c6abf5":"resetAllData()","70c6b20c":"newEntity(uint256,uint256)","70c7e230":"change_status(string)","70c80630":"isOwner(uint32,int256,address,address)","70c8251d":"AttributesSet(address,uint256)","70c83314":"airDropToken(address,uint256)","70c8405b":"GiftGenerated(address,address,address,uint256,uint256,string)","70c8658a":"getNewRegistry()","70c8f8ad":"createFirstRound()","70c9edb7":"BTCRelayTools(address)","70ca4c26":"getLinkedAddress(address,address)","70ca6446":"AnotherMethod(uint256,uint256,uint256)","70cbed78":"oracleCallbackGasPrice()","70cc5e45":"kgtHolderCategory()","70ccd928":"hashesLength()","70cd89eb":"CRLperMicroEther()","70cd9bfd":"GPRDSQToken()","70cda533":"updateCoeff(address,uint8,uint128,uint256)","70cddf74":"addApproval(address,address,uint256,uint256)","70ce0765":"createPromoListing(uint256,uint256,uint256)","70ce90d5":"ConfirmManager()","70cef2b8":"getVisaPrice(address,uint256,uint256)","70cf7508":"isValidAirDropForIndividual()","70cfaa8d":"calledUpdate(address,address)","70cfab63":"chargeFeeAndLockEthBalance(address,uint256)","70d01861":"adminSetCity(address)","70d02691":"getAssetBalances(address)","70d07575":"awardTokens()","70d084c0":"SingularDTVCrowdfunding()","70d0c5d8":"EOUNCE()","70d0cc86":"getElementView(uint256)","70d12c31":"resetPeerWallet()","70d1383d":"createEditionMeta(uint256)","70d17adb":"isDrawn(uint256,address,uint256)","70d19a43":"itemCancelMarketsWhenPaused(uint256)","70d1cde4":"randomCount()","70d1e6b4":"minimalWeiTLP2()","70d22f14":"addHash(address)","70d25a9f":"lockUpAmountStrOf(address)","70d271ab":"StartCampaign()","70d290b5":"getDoneAddresses()","70d37810":"makersCount()","70d383dc":"createManyProxies(uint256,address,address)","70d4d119":"giftEth(address,uint256,string)","70d4d7b4":"promoGen0()","70d53be5":"find()","70d54287":"VantageToken()","70d5ae05":"burnAddress()","70d60adf":"acceptBid(string,uint64)","70d66693":"drainToken()","70d695f7":"VerifyEd25519Packed(bytes)","70d70e9b":"getCofounders()","70d72d63":"getAllPixels()","70d762c2":"basicDayPercent()","70d7a0e7":"authorizeKyc(address[])","70d81666":"LogS(string)","70d8915a":"getApplicationAddress()","70d94ed0":"getHoldAmount(address,uint256)","70d9f7dc":"awardItemRafflePrize(address,uint256)","70db69d6":"maxBuy()","70dbb783":"AMBASSADOR_TWO()","70dc4de5":"withdrawKRI(uint256)","70dc8259":"totalDistributedi()","70dc86cd":"EARLY_FOUNDERS_CAP()","70dd2e06":"setMinActivatedToken(uint256)","70ddeb03":"CRMTToken()","70de1e30":"getItemItemId(uint256)","70de8c6e":"start(string,uint64,uint8,uint32)","70dea79a":"timeout()","70df42e1":"changeBurnBounds(uint256,uint256)","70e0abb1":"returnInvestmentRecursive(uint256)","70e0bd61":"setTrustedMinterAddr(address)","70e18692":"cancelIncompleteOrders()","70e32ae7":"firstBonusLimitPercent()","70e3ccf7":"initMiaoMiaoAddress(address)","70e44c6a":"Withdrawal()","70e4b809":"_setBuyTime(uint256,uint32)","70e5bf4d":"queryVote(uint256)","70e6b2b9":"makePayableRegistration(bytes32)","70e6d387":"evolveCryptoAvatar(uint256,uint256,uint256,uint256,uint256)","70e71ea3":"etherandomSeedWithGasLimit(uint256)","70e7732d":"getSpecificSellerTransaction(address,address,uint256)","70e87aaf":"move(uint8)","70e8c1b3":"test_complexNewProposalAndVoting()","70e8dffa":"TokenHold(address,uint256)","70e9a612":"BariCoin()","70e9ff60":"cancelBuyOrder(address,uint256)","70eaa1b4":"Error(uint32)","70eae6c0":"travelTotalEarning()","70eb6424":"setSmsCertificationRequired(bool)","70ebf814":"addUntrustedSelfDelegation(bytes32,bytes32,bytes32[2])","70ed0ada":"getEthBalance()","70ed1664":"organizer3()","70ee555c":"returnTickets(uint256)","70ee9edd":"PublicMiningReward()","70ef14de":"Drops(uint256)","70f0c351":"purge()","70f0dfee":"MultisigWalletZeppelin(address[],uint256,uint256)","70f18295":"TokenPETER()","70f18bcd":"UnlockToken()","70f199d2":"indAddress()","70f37d27":"fundPool()","70f4c18c":"oracleQueryType()","70f5b71c":"createController(address,address)","70f5d3de":"WthdrawToCreator(uint256)","70f6489e":"WHOIS(address)","70f65977":"_migrateToken(address,address)","70f6ac15":"RegistrationDeposits(address,address)","70f6c906":"_refundWEICustomer(uint256,uint256)","70f705ba":"ChargersCount()","70f74228":"TokenATC(uint256,string,uint8,string)","70f79b84":"SEO()","70f80828":"reactions(uint256)","70f85731":"setPhaseEndingCriteria(uint256,uint256,uint256,uint256)","70f8de1f":"changeGasFee(uint256)","70f9c021":"forcePay(uint256,uint256)","70fa66db":"deauthorizeCasino(address,address,uint8,bytes32,bytes32)","70fbf6e5":"openGamePlayNos(uint256[])","70fd37cf":"totalInvestments()","70fde32c":"mul(uint96,uint96)","70fe19a3":"blocktubeFarming()","70ff6325":"withdrawTuneBalances()","70ffe53d":"mood()","71007509":"refundTokens()","7100a4e6":"addAccessory(uint256,string,uint256,uint256)","71026acc":"EXPECTED_START()","7102b728":"vested(address)","7102c138":"Standard_Token(uint256)","7102f74d":"recalcTokenPrice()","71037b1e":"flagUSInvestor(address)","71039256":"BUCToken()","7104a142":"getNumberOfVerifiers()","71056a78":"ChangeEtherGasProvider(address)","71061398":"getRoles()","7106312c":"emergencyAddr()","7106bd46":"mintContractByIndex(uint256)","7106cdb6":"CloudexchangeCrowdsale(uint256,uint256,uint256,address)","7107283f":"create_tablet(bytes32)","7107d7a6":"minBuy()","710908c9":"levelThreeBonus()","71098a35":"startStop()","71098e15":"totalSTC(uint256,uint256)","710ad128":"getHatchingEggData(address)","710b2d8c":"getAddressRatio(address)","710bf322":"proposeOwnership(address)","710c6705":"updateCapFlex(uint32)","710cba8b":"isAllowedOverrideAddress(address)","710d6a61":"unPauseTransfers()","710dff42":"isdrawadm(address)","710e5d2f":"setMaxFee(uint256)","710edb10":"multisignWallet()","710ee68e":"DOGEToken()","710f3953":"add_entity(string)","710fe6f8":"getWithdrawBalance()","710ffc72":"changeTribeOwner()","71101891":"DharmCoin()","711085b2":"arr(address,address,uint256,uint256,uint256)","7110ce25":"MyRefReward()","7110eed7":"createRegistryInstance(address,address)","7111abf2":"SessionOpen(uint256,uint256)","7111ed97":"TopPayCoin()","71135f8b":"setStopped()","7113d35d":"pickFood(uint256,string,string,uint256,uint256)","7113e5e2":"findKey(address,uint256,uint256,uint256)","71140942":"MIN_ETH_FUND()","71145486":"rebuildManagerList()","71147d32":"STRC_ADDR()","7114a96e":"transferReferral(address)","7114c13a":"sendTaster(address)","71156c73":"TheFund()","7115c8bd":"xdao(uint256,string,string)","7115c988":"Batch(address)","711619de":"setPubEnd(uint256)","711748a3":"removeModuleAtIndex(uint256)","71175249":"INEXToken()","7118f854":"icoSuccess()","711953ef":"setGameAddress(address)","7119a490":"setBtcPriceProvider(address)","7119c873":"transferSSPRecord(address,address)","711b4871":"getOptionBuyOrders(uint256,uint256)","711bf9b2":"setAuthorized(address,bool)","711bfa89":"month12companyUnlock()","711c2b94":"setTestMarket(bytes32,bool)","711caf40":"transferStep3(address)","711cbc26":"PartyRegistry()","711d11bf":"ev(string,address,uint256)","711d4407":"updateBonuses(address,address,bool)","711d649b":"getCatNames()","711f63bf":"toBytes32(bytes,bytes,uint256)","7120d381":"getUpdateTokenAge(address,address,uint256)","7120fab4":"discountCollect()","71215af6":"DAYS_28()","712173de":"CrowdsaleStarted(uint256)","71221e38":"RareCoinAuction(uint256)","7122e857":"setParticipantWhitelist(address,bool,uint256)","7123691e":"removeSERAPHIM(address)","71236b92":"Owner(address,uint256)","712394b6":"nexumToken()","71245f6e":"BTCValue()","7124abf3":"getLastPayouts()","7124c683":"setUpdateInterval(uint256)","7124d613":"changePaymentAddress(address)","71254d9b":"setFeesDistributionPercentages(uint256,uint256,uint256)","7126a855":"configure(uint256,uint256,uint256,uint256,uint256)","7126b6ff":"_grantAdmin(address)","71270b46":"initCards(uint256)","7128ad73":"PaymentReceived()","7128defb":"removeSupervisor(address)","712980a2":"banUser()","712a10bf":"COIN_SUPPLY_ICO_PHASE_2()","712a5094":"balanceOfTheContract()","712aa191":"isValidCustomerTxPaymentForKWh(address,bytes32)","712ac60e":"onRemoval(string)","712b1ed0":"triggerInput()","712bb1b8":"getDataColla_AA_01(string)","712c0c5a":"withdrawDirectDebit(address[],bool)","712c3f7a":"addressPartnershipsAndExchanges()","712ca0f8":"getOrder(string)","712dd575":"raiseSellOrderCancelled(address,uint256,uint256,uint256,uint256,uint256,int160)","712f22a0":"getVolumeBonus(uint256)","712f4d70":"_generateShortLink()","712f5e72":"SetRoundTime(uint256)","712f7790":"publicGetStatus()","713081d0":"setPromoter(address)","7130d7ce":"get_asset_event_details(bytes32,uint256)","7132d337":"citadelTransfer(address,uint256)","7132ebcd":"switchPaused(bool)","7133c0c0":"calcAmount(uint256,uint256)","713494d7":"setReferralFee(uint256)","7136982b":"getHolderCount()","7136d509":"playCEELO(bytes32,uint256[6])","7137047a":"setDealCancelRate(uint256)","7137b024":"Banliang()","7137e072":"getAllTemplateProposals(address)","7137ed47":"setProxyContract(address)","7138364b":"adventureItem()","7138bc92":"transfer(address,address,address)","7138e0c9":"divForSellBack()","7138ef52":"right9(uint256)","71393c60":"storeLedgersInIpfs()","713942f7":"getUserVerified(address)","713955e8":"ico2endTime()","71395818":"ItemsMarket()","71398637":"batchToApplyMilestone(uint8,address[])","7139b1ca":"balanceOfRoutingCode(bytes32)","7139b595":"withdrawDthShopAdmin(address,address)","713a7eef":"Xingqiub()","713b563f":"database()","713be000":"checkoutCart()","713be126":"changeRateSetter(address)","713d30c6":"updateState(int128,uint128,uint8,bytes32,bytes32)","713eba52":"OwnershipRequested(address,address,bytes32)","713ec905":"recordAddress()","713f5e4d":"sendEthToContract()","713fd253":"Limit_Amount()","713ffc3b":"setNextGameSettings(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","714064f3":"BreakableBond(address,address,uint256)","7140bdf3":"get_all_best_offers()","7141856d":"getNumProps()","7141aa8b":"getTitulaire_Compte_3()","7142087c":"allowTransferGlobal()","71427ac1":"SuperLitecoin()","7142b17d":"dataForOwner(address)","7142b191":"MultiplesaleAirdrop(address[],uint256[])","7143059f":"getParticipant(address)","714383ad":"HYPEToken()","71443c4d":"soldDragons()","714490ab":"WithdrawToBankroll()","7144e81e":"Cremit()","71450e30":"tierIndexByWeiAmount(uint256)","7145644c":"calculateBTS()","71461be9":"getCurrentMilestoneProcessed()","7146bd08":"MAX_PURCHASE()","71476f35":"clear(address,address,int256)","71478fae":"_getTokenIdFromBytes(bytes)","714897df":"MAX_VALIDATORS()","71489835":"isRed()","7148ba36":"_createCard(string,uint256)","71492685":"getTo()","714a2f13":"assertEq(int256,int256,string)","714b1443":"CancelBuyOrder(bytes32,address,uint256,address)","714b4465":"MakerTransferredEther(address,uint256)","714c5d9d":"BMT(uint256,string,uint8,uint256,string)","714ca446":"adopt(uint32,int256)","714ccf7b":"setVault(address,address)","714d497a":"maxPerExchangeBP()","714d582e":"sdc(address)","714d5fae":"cancelRemoveOwnerRequest2()","714d9537":"cancelEvent(bytes16)","714dc20d":"ownerChanged(address,address,address)","714e2ec9":"vanilCoin()","714e42a1":"getSaleRate(uint256)","715018a6":"renounceOwnership()","71506977":"EXCHANGE_RATE_DECIMALS()","7150773d":"donateFunds()","7150d8ae":"buyer()","71513e9d":"reSet()","71515a36":"SXSYCoin()","7152f800":"gameResult()","71535f0d":"tenthTime()","71543cfc":"unWhitelistUsers(address[])","71543f39":"Eetgccoin(uint256,string,string)","715469d0":"logoX()","7154ae61":"CheckNumbers(uint8[5])","7154b798":"addExploreData(address,uint256,uint256,uint256,uint256,uint256,uint256)","7154b8b5":"setPercent(uint256)","71551178":"testDisputedInvalidSequenceWrongReadAddress()","71560f80":"emulatePurchase(address,address,uint256,uint256)","715851a0":"getCheckingBalance(address)","71586383":"totalTokensReceived()","71587988":"setNewAddress(address)","71589d6b":"newponzi()","7158e346":"NatCoinCrowdsale(uint256,uint256,uint256,address)","7159271d":"publicsalestartTime()","71599987":"increasePendingTokenBalance(address,uint256)","7159a618":"operate()","7159db81":"lastTier()","715b208b":"getAllAddress()","715b99f8":"_isSignedPrefixed(address,address,bytes32,uint8,bytes32,bytes32)","715d4a64":"sellsubscribers()","715d574e":"CarboneumToken()","715db6ea":"TheMark()","715e0e4e":"repurchase(address,uint256)","715ed24b":"setVIPThreshold(uint256)","715eddda":"starbaseEpAmendment()","715ede94":"auction(bytes32)","715ef43d":"newPurchase(address,uint8,uint8)","715ef4ff":"resendFailedPayment(uint256)","715f8975":"JOINT_PER_ETH()","7160138c":"unlockedTeamStorageVault()","71608d05":"getBalanceModificationRounds(address,address)","71612620":"transferFST(address,uint256)","71616b84":"calculateTokenCrowsale(uint256,uint256)","7161c5df":"setBracketPrice(uint256,uint256)","7161c66d":"RunManager(bool)","716210d8":"addHodler(address,uint64)","7162f182":"resetRip()","716344f0":"preIcoEndTime()","716437b5":"testApproveTransfer()","71645971":"toList()","71658552":"getUint(address,bytes32)","71658896":"getTopic(uint256)","71674ee5":"maximumIcoRate()","7168e5d3":"ownerSetAdmin(address)","71697efa":"getSumWithdrawals()","7169a63e":"IcoCancelled()","7169afa6":"getOldFrozenAccount(address)","7169dd5d":"intial_supply()","716adc36":"setMyOracle2(address)","716af639":"minePoP(address,uint256)","716c0a31":"computingCharge(uint256)","716d3c6c":"adjustReward(uint256)","716e5604":"startItemRaffle(uint256,uint256)","716f10bf":"isWhitelistOn()","71716992":"ThankYouToken(uint256)","71726f69":"HOWEOToken()","7172a1f2":"testLedgerCreation()","7172d9f0":"OtomatizToken()","71740d16":"numDarknodesPreviousEpoch()","7174164b":"XPTToken()","71748a8b":"WSR(address)","7174ac9e":"setEscrowedTaskBalances(uint256,uint256)","71752d06":"getOwnerByItemTypeAndId(string,uint256)","7175d709":"SPARCAddress()","71765e74":"VendMultiSigWallet(address[],uint256)","71766ae3":"disableManuallyBurnTokens(bool)","71773fc2":"lasttimereduce()","7177a7dd":"canTransferTokens()","71781a79":"subToken(address,uint256)","71784312":"distributeVariable(uint256,address[],uint256[])","71793195":"__isFeatureEnabled(uint256)","7179d079":"mainFundBalance()","7179ed22":"autoPrice()","717a195a":"setOutcome(int256)","717a945a":"USD_Omnidollar()","717b3726":"transferFromBank(address,uint256)","717cb858":"ZUE()","717cee7d":"updatePeriodDuration(uint256)","717d5527":"getMoney(address)","717de52e":"creditCommons()","717e1418":"VebionX()","717e9745":"setNewControllerAddress(address)","717f24c6":"emergencyWithdraw(address,uint64)","717f6f7f":"MYCCToken(uint256)","717fecea":"vesting2Withdrawn()","717fedf0":"getFirstActiveDuel1()","717ffe91":"buyTokensAsset(address,address,uint256)","7180dd8a":"_giveToken(uint256,uint256)","718167c4":"AddValues(uint256,uint256)","718228fa":"totalTeamContributorIdsAllocated()","7182774d":"exchanged()","71827791":"nextContributorIndexToBeGivenTokens()","718350a9":"_removeMaliciousValidatorAuRa(address)","7183616c":"notarize(string)","7185354b":"changePerEthToBlocNumber(uint256)","7185393c":"updateAppExec(address)","7185637b":"DailyDivsSavings()","71857000":"setLogic(address)","7185acb8":"viewMyComponent(uint256)","7185f163":"stopTrading()","71863031":"isPublicIcoActive()","71868032":"addOffChainAddresses(address[])","71873971":"PROOF_TOKEN_WALLET()","71882ab0":"distributeContest()","7188c8a4":"reFunding()","71892e3f":"getMyKnowledge()","718aa629":"NEX()","718b0a32":"withdrawBuyDemand(uint256)","718bd6dd":"setRequestUntil(uint8)","718c025a":"ethPreAmount()","718c6569":"TimeSecondToken(uint256,string,string)","718cc769":"makeBet(uint256)","718d763a":"playerCost()","718da639":"addNewSecretHash(bytes32)","718da7ee":"setReceiver(address)","718df9d7":"getPlayerSpaceshipUpgradesById(uint256)","718dfb7e":"hasPreICOClosed()","718e6302":"play(string)","718e6c44":"isManageable(address)","718eaa50":"setLayerParent(address)","718ec079":"setMarketCreationCost(uint256)","718f81c2":"getCCH_edit_11()","71906087":"airdropToAdresses(address[],uint256)","719102d7":"createItem(uint256,uint256,uint256,uint32)","7191474b":"pendingUFT()","71929547":"OceanScapeCoinAdv(uint256,string,string)","7193ab70":"balanceUnlocked(address,address)","7193b1e4":"refundCfd(uint128)","7193f2f0":"supported(bytes32)","719591c7":"requestComputation(string,string,uint256,uint256)","7195d944":"dataOfPart(uint256,uint256,uint256)","7195eed2":"EtalonGlobalToken()","71974cbe":"lastBidBlock()","7197c6d2":"firstTTax()","719874da":"profitFromCrash()","7198801d":"getWorkTime(uint256,uint256)","7198e08c":"createLoveBlock(string,bool)","7199139f":"TheAbyssDAICO(address,address,address,address,address,address,address,address,address,address,address,address)","7199f6d4":"safedrawal(uint256)","719a0f8c":"removeOfficer(address)","719b2e07":"setDisputeRoundDurationInSeconds(uint256)","719c78ac":"setCodedate(uint256)","719c86e3":"team_lock_count()","719ce353":"Brokenwood()","719ce73e":"prizePool()","719f2fb7":"_calTeamAttribute(uint8,uint8,uint8,uint32[11])","719f3089":"getLocks(address)","719f8d3a":"checkIfWhiteListed(address)","71a009ad":"BRLTOKEN()","71a03078":"TMCToken(uint256,string,string)","71a04009":"newIssuer()","71a18bfb":"emergencyDrain(address)","71a2e46d":"OWN_transferOwnership(address)","71a2f964":"newPaymentAddress(address)","71a4dc5e":"getLuckyblockEarn(bytes32)","71a5367f":"setAllowPaymentsWhenPaused(bool)","71a66e7c":"addOrUpdateHolder(address)","71a67aa9":"getFunctionAuthorizationHash(address,address,string,bytes32)","71a7462e":"balance_(address,address)","71a7c439":"distribute21ST(address[],uint256)","71a80ba3":"setBurnFeeReceiver(address,address)","71a8270a":"buyObizcoinTokens(address)","71a8ba25":"getEtherBoxes(address)","71aa60fd":"calculateTokens(uint256)","71aad2dd":"preICOamountBonusLimits(uint256)","71ab0e3c":"sellDai(uint256,uint256,uint256,uint256)","71ac5c60":"WeToken(address,string,string,uint256,uint256)","71ad3e73":"isMakePermitted(uint256,uint256,address,address,uint256,uint256)","71ada3fb":"getCash(uint256,address)","71ae8f02":"fundingMinimumTargetInWei()","71ae973e":"createGen0Auction(string,string)","71aeae44":"hasBallotEnded(uint32)","71af5d0e":"setFailedVerificationSlashAmount(uint256)","71afc713":"marketingTokenAmount()","71b1d2d3":"RANGEEND_PRESALE()","71b22e61":"EnableRefund()","71b2354d":"MINC()","71b3659e":"currentTokenPrice()","71b397cf":"getCurrentRoundIsFinished()","71b45696":"StcToken()","71b475d0":"STQPreICO3(address,address)","71b4f4ef":"setDEXContractAddress(address)","71b505ad":"setLargeCapWhitelistParticipant(address,uint256)","71b5ee71":"allowTokenTransfer()","71b6663e":"play1(address,uint256)","71b6a376":"setNumberOfPlayers(uint256)","71b6d36d":"isNotaio(address)","71b6d6ea":"getAttributeTimestamp(address,bytes32)","71b7d5c4":"priceUpdateWaitingTime()","71b804ee":"getBettingPrice()","71b80b8f":"upgradeCardConfig(address)","71b9b646":"saleEnabled()","71ba3612":"Plasma()","71bad4d8":"jackpotMinimumAmount()","71bb263d":"contractPartThree(uint256)","71bb3cc8":"GivethCampaign(uint256,uint256,uint256,address,address)","71bbefc7":"payPlatformOutgoingTransactionCommission()","71bc9d62":"_generateDetail(uint256)","71bd1f47":"MinCapReached(uint256)","71bdb914":"softCapLimit()","71bdbc9a":"SetCityData(address,uint256,uint256,uint256,uint256,uint256,uint256)","71bde852":"_startNextCompetition(string,uint32,uint88,uint8,uint8,uint16,uint64,uint32,bytes32,uint32[])","71be0c27":"preSale5()","71be1851":"ShopDeployed(address,uint256,uint256,uint32)","71be8766":"Contribution(address,address,uint256)","71beae97":"currentCoinsCreatedPercentage()","71bf35b6":"minMinutesPeriods()","71bf439e":"CANVAS_WIDTH()","71bf5a95":"setENS(address)","71bfa03f":"getRedemptionBlockNumber()","71bfabca":"resultOf(uint256)","71bfd48b":"content(string,uint256,string,string,uint256)","71c02b7b":"BSAFE()","71c03d76":"get_rest(uint256)","71c10778":"weiToPresalersFromICO()","71c147fb":"addAccount(string,uint256,string,string,uint256)","71c157d1":"addInsuranceProduct(uint256,string)","71c1d196":"numContributors(uint256)","71c1dde5":"get_presale_arbits_per_ether()","71c2835e":"operater()","71c396cc":"migrationAddress()","71c4275a":"setWeight(bytes32,uint256)","71c4980b":"getBlanace()","71c57772":"eucDist2D(uint256,uint256,uint256,uint256)","71c58b25":"internalTransfer(uint256,uint256,uint256)","71c59097":"MainnetSurvey(uint256,string,bytes32[])","71c66459":"LogPaymentReceived(address,uint256)","71c6d4dc":"pearlContract()","71c6dc50":"ProofOfCraigGrant()","71c6e049":"addUsers(address,uint256)","71c78ce7":"totalAirDropped()","71c79588":"releaseName(bytes32)","71c7e923":"dDisableErc20OwnerClaim(bytes32)","71c80c67":"COOPET(uint256,string,uint8,string)","71c82c14":"setOraclizeGasPrice(uint256)","71c847b2":"detailsOfEdition(uint256)","71c85da2":"LogN(address,bytes32,uint256,string,bytes,uint256,bytes1,uint256,uint256)","71c8e333":"getSundownGraceTargetBlock()","71c93fc7":"processDiceRoll(address,uint8)","71c95040":"EFF(address)","71c9572b":"maxBidInCentsPerAddress()","71c9a754":"topiToken()","71c9e177":"SpudToDivs(uint256)","71ca2117":"isAuditorRegistered(address)","71ca337d":"ratio()","71cabfb8":"getYumerium(uint256,address)","71cacc9e":"addLotteryPrize(uint256,string,uint256,uint256)","71cb9769":"addIdentity(bytes32,bytes32)","71cbb22a":"fixed_value()","71cbef8a":"sendTokensAfterCrowdsale(uint256,uint256)","71cc4f35":"Alecrypto()","71cc805a":"refund(string,address)","71cce314":"Kolak()","71ce52ed":"senderIsAdvocate(address,address)","71ce9a4a":"forwardCallGas()","71ced69d":"mintNewDNC(address,uint256)","71cf586f":"CanISuscribeTrial(uint256)","71cf5979":"market_AcceptBid(uint256,uint256)","71cf866e":"_redeemIsAllowed(uint256)","71d06675":"getInteres(address)","71d0cf01":"setCustomerSignature(address,uint256,bytes)","71d0ed05":"betsKeys(uint256)","71d141f9":"doOraclize(bool)","71d1995e":"changeEmployee1(address)","71d30a17":"Match(address,address,bytes32,bytes32,uint256,uint256)","71d31a13":"withdrawTokens5(uint256)","71d3de1b":"setStates(uint256,uint256,uint256,uint256)","71d3de2b":"JincorToken()","71d49910":"_emitAreaSet(uint256,bytes32)","71d4aa3a":"fomo3D4eva()","71d4edaf":"setSaleLot4StartTime(uint256)","71d50cc8":"payBets(bytes32)","71d5af66":"Upfinex()","71d5afb5":"extendCrowdsale(uint256)","71d5b5dd":"getBonusPoolTotal()","71d5d1c2":"updatePrincipal(uint256,uint256,bool)","71d5ffbe":"totalETHWagered()","71d6dbe1":"isClaimSegmentVerified(uint256,uint256,uint256)","71d6e229":"queryRole()","71d76096":"ICOcollected()","71d7c621":"createDownRequest(address,uint256)","71d7e4a9":"transferTokens(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","71d87948":"FixedSupplyToken(string,string,uint256,uint8)","71d8d421":"_isValidLicense(uint256)","71d8d7af":"setMaxRate(uint256,uint256)","71d93cb0":"interuser(address)","71d9ffce":"priceChange()","71da0e63":"_getValidRandomGenes()","71daca00":"grantBackerToken()","71dc761e":"enableERC721()","71dd46a9":"left19(uint256)","71dd8862":"IndexOf()","71dd99fe":"BigRisk()","71ddd3ad":"multifunctioncoin()","71de2ffc":"claimRefund(bytes32)","71de6362":"certificateSigners(address)","71df8d09":"bigInt(uint256)","71dfc116":"Cryptolotto10Minutes(address,address,address,address)","71e030d3":"TokensTransferedToHold(address,uint256)","71e07813":"issueDevsTokens()","71e11354":"updateRegistration(string,string)","71e12726":"getBlockStats()","71e1fa95":"getHtlcTimeoutBlock(bytes32,bytes32)","71e28126":"canFinalize()","71e2a657":"addMinters(address[])","71e2d919":"lol()","71e30719":"ZEC()","71e365a0":"AICQ()","71e3c76e":"claimGrant(bytes32)","71e3c819":"DSToken(string)","71e3fdc4":"moveMintTokens(address,address,uint256)","71e4cfd7":"ROF()","71e5b9ec":"scanAddresses(address)","71e5ee5f":"arr(uint256)","71e60fe6":"testFailTransferEnableNotTransferable()","71e68cad":"claimUsername(bytes32)","71e70133":"TotalTokens()","71e777ae":"getMemBestInvestor()","71e928af":"issue(address)","71e9f016":"CompetitionChainContract(uint256,string,string)","71ea29df":"blockedContract()","71ea3aad":"CollectERC20(address,uint256)","71ea6c73":"VIBEXToken()","71ea87ee":"getPeriodRange(uint256)","71ea980c":"rewardPoolWallet()","71eb9710":"getDebitDigest(bytes32,uint256,uint64)","71ec4cc1":"depositPayout(uint256,uint256)","71ec98dd":"issueTokensFromOtherCurrency(address,uint256)","71ed4664":"refundTo(address)","71edfe35":"hashOfTheDocument()","71ee2ce1":"getResponses(uint256)","71ee329f":"useCaptainAbility(uint256)","71ee872f":"TransactionSettledByMediator(uint256,uint256,uint256,uint256,uint256)","71eee1f4":"IssueStateLoaded(bytes32,string)","71ef0d0f":"phxCoin()","71ef7862":"seventhTime()","71efb7f7":"SimpleSafeToken(uint256,uint8,string,string)","71efdc21":"usedTickets(uint256)","71efeff1":"transferCommunityBank(uint256,address)","71f027fa":"updateOwnerOfWeapon(uint256,address)","71f098c8":"LecBatchTransfer()","71f0ad64":"TestCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","71f11552":"changeDNNHoldingMultisig(address)","71f124c5":"getDropsOf(address)","71f16739":"_createContract(address,uint64)","71f297cc":"XaurumToken(address)","71f4c9ae":"GameClosed(uint256)","71f4f65e":"yearlyOwnerTokenWithdrawal()","71f52bf3":"connectorTokenCount()","71f5584f":"sponsoredLeaderboardDataContract()","71f64a68":"executeTopic()","71f6fb88":"transferWithReservingNet(address,uint256)","71f7aaca":"dragonIndexToApproved(uint256)","71f7ebf4":"_doTrade(address,address,uint256,uint256)","71f805bf":"numFpBits()","71f84164":"_sendTo(address,uint256)","71f8746f":"registerBuy()","71f90109":"hideDonations(address)","71f90fe6":"initializeABIHashForMod(uint256,bytes)","71f96211":"assetOf(address)","71f9b7f3":"addMultipleAddressesToPublicBuyerList(address[])","71f9ff89":"preICOcap()","71fa632f":"newVoterAllocation()","71fa7f37":"createNewProject(uint256,uint256,address)","71fcc672":"setCryptaurRewards(address)","71fdd6d3":"_canBreedWithViaAuction(uint256,uint256)","71feaac5":"greatgreatcoinERC20Token()","71ff01b0":"maxSupplyReached()","71ffcb16":"changeFeeAccount(address)","72004a65":"getPremiumStatus(bytes32)","72012ef6":"test_oneInvalidEqString2()","72016f75":"getNodeLength()","7202997e":"LogAccepted(uint256)","72030d03":"addresses2(uint256)","72052773":"deleteChallenge(bytes32)","72054df4":"compatible223ex()","72067d49":"getBountyBalance()","72076c57":"ColorBayToken()","72078e3b":"CORNERSTONEAMOUNT()","7207c19f":"MyToken(uint256)","7207d711":"RewardHalved()","7207f9ce":"transactionFeeMax()","7209036a":"fundReservCompany()","720b43e8":"intercrypto_cancelConversion(uint256)","720b7ee4":"getCardId(string)","720be6c7":"CrapToken1A()","720c142d":"setRNGCallbackGasPrice(uint256)","720c4798":"workshop()","720c5732":"TextMessage()","720de551":"deleteVoterForCandidate(uint256)","720e2a06":"GadielToken()","720ed642":"getModuleById(uint256)","720edd13":"theanswer()","720ee37c":"decrementBalance(address,uint256)","72104205":"rewardMint(address,uint256)","72108714":"updateHash(bytes32,bytes32,uint256)","72112ebc":"set_Total(uint256)","72117821":"GetTokenAddress(address)","72121dac":"FooToken()","7212b67e":"add_potion(uint16)","7212eadd":"trigger_game_end(uint256)","7213cff1":"hasLockedUp(address)","7213e335":"guthabenAnzeigen(address)","72142c67":"MSECStandardToken(uint256,string,uint8,string)","7214d6c3":"isUIntPublic()","721547eb":"maintainExternalContractTokenBalance(address,uint256)","7215513f":"addTokenClaim(uint256,uint256,uint256)","72159335":"voteInitiate(uint256,uint256,uint256,uint256,uint256,uint256)","7215b96d":"CheckAllowance(address)","7216ab38":"getByteFromBytes14(bytes14,uint256,bytes1)","7216b95c":"checkLicense(bytes32,uint8,bytes32,bytes32)","7216e02d":"getOracleByName(string)","7216ee00":"totalTrainer()","7217523c":"addDays(uint256,uint256)","721868f8":"queryTinyOracle(bytes)","72198ead":"setDSTMultiSig(address)","7219d7f7":"OrigamiTokenPurchase(address,uint256,uint256,uint256,uint256)","7219dd7f":"allocateTokenETHConvert(address,uint256)","7219fa11":"EIP20(uint256,string,string)","721a1f57":"endorseCredit(address,uint256,uint256)","721a37d2":"revokeTokens(address,uint256)","721b67ab":"CNYTokenPlus()","721bba59":"getTokenBasicData(address)","721c555e":"queryEscrow(address,address)","721d7d8e":"currentContract()","721dd850":"getOwnedAvatars()","721e117b":"getPurchaseRequirements(uint8)","721e9969":"getPressCount()","721ed9ec":"tokensICO()","721fa630":"pubs(uint256)","721fefac":"startNewDraw(uint256)","721ff138":"tokenMintCap()","7220426f":"verifyTokens(uint64,uint64)","7221a26a":"storeValue(uint256)","7221c3c0":"withdrawJackpotBalance(uint256)","72229abf":"setBetFee(uint256)","7222fe1e":"MNY()","72237d97":"setTargetDiscountValue10(uint256)","72239313":"addAccountMinter(address)","7223cd19":"set(address,int256,uint256)","7224267c":"addDeposit(address,uint256,uint256,uint256)","72258f96":"allergy(string)","72259875":"addCourse(string,uint256,uint256,uint256,string,string)","72262699":"forwardOnBehalf(address,uint256,bytes,uint256,uint8,bytes32,bytes32)","7226d055":"create(address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","722713f7":"balanceOf()","7227bff2":"setTransferOwnership(address,address)","7227c5dd":"fundMark(uint256)","7227c7ce":"hashNext()","7228057f":"ibcFunded()","7228b9db":"etherCap()","7228becb":"crowdsaleDuration()","72298b82":"setEndTime(uint32)","722bb4a8":"getSuperManagerContractAddress()","722bd85a":"bonusForDate(uint256)","722c885a":"endSeedStage()","722d1267":"forceWithdrawTokensToAnAddress(address)","722d1d13":"setProductCompletionDate()","722ded24":"exeSequence(uint256,uint256[])","722e1677":"getTotalPublicKeysCount(address)","722e9c6d":"Luck()","722f0835":"startPrivatePreICO()","722fe823":"getActionHistoryItem(uint256)","72309714":"setPresellOpen(bool)","7230bce8":"add(uint256,string)","7230eb42":"AllocatedCrowdsaleMixin(address)","7230ef7f":"totalGen0()","72317e7b":"totalWeiRaisedDuringICO1()","7231af39":"getTotalGamesStarted()","72325c5b":"initSiriusFund()","72337396":"unholdFunds()","7233d860":"BitcoinRich()","7234ba0c":"MIN_CROWDSALE_TIME()","7235c8dd":"PeerReview(address,bytes)","7235d2b1":"maintenanceMode(bool)","7236f851":"exchangeByAdmin(uint256,address)","72378554":"sendToken(uint256,address)","7237e031":"tokenToEthTransferInput(uint256,uint256,uint256,address)","72388610":"paybackAll()","72388f7c":"mintSpecificCards(address,uint8,uint256[])","7238ccdb":"getLockInfo(address)","72397287":"createOfAthleteCard(string,string)","723b2b58":"getMemberListCount()","723c308f":"ahs()","723c37f7":"TokensTransferrable()","723e357a":"pushRound(uint256,uint256,uint256,uint256,bool)","723e435f":"setTokenRateInGwei(uint256)","723eb2cc":"hurmint(address,uint256)","723f291d":"cancelOpenBids(bytes32)","723fdfe5":"PaoTestToken()","724020be":"GSCT()","72405ab0":"approve(uint256,string)","7240976c":"trades(address,address)","7240eccf":"approveLess(address,uint256)","7240f67b":"countActiveType(uint256)","72411849":"ChangeTankSellMaster(address)","724121ae":"contentExists(uint256)","72413a3b":"VOLUME_BONUS()","72414501":"SMILO_FOUNDERS_AMOUNT()","7241450c":"deliver(address,uint256,string)","7241eb8c":"_bpto(uint256,uint256,uint256,uint256,address)","72422024":"lockMoneyOnCompoundCreation(address,uint256)","72432965":"AdvisorsAddress()","7243cfbb":"releasableAmount(address,address)","72440c31":"finalizeEndTime()","72453422":"directSellSupply()","7245f6e7":"stageEnd(uint256)","72460869":"test_threeFalseAssert()","72468368":"setBlockTargetDelay(uint256)","724693ce":"TokenSale(uint256,uint256,address,uint256)","7246de3d":"sanityCheck()","72470a14":"ShopManager(address)","7247390b":"vote_beneficiary(string)","72479140":"CreateTicket(address,uint8,uint8,uint8)","7247959a":"referral(address)","7247a50d":"virtualInvest(address,uint256)","7247aafd":"Callous()","72490c69":"GREENECO()","7249733c":"businessPercentage()","7249fbb6":"refund(bytes32)","724a6246":"claimSeasonPrize(address,int8)","724a8487":"getTargetBlocks()","724ae9d0":"getMinInvestment()","724bc3de":"getAirdropAmount(address)","724bdbaf":"externalTxs(uint8,bytes32)","724c8393":"changeCrown(address)","724dbf36":"isNewBattle(string)","724df10a":"alreadyWithdrawn()","724edf00":"startTokenDistribution()","724fcd4c":"buyAndSetDivPercentage(address,uint8,string)","7250dc36":"getMemberName(uint256,address)","7250e224":"addDistributor(address)","72511fb4":"EventAddressChange(address,address,uint256)","72519531":"BagholderAddr()","7252518c":"setLockend2(uint256)","7252bbf2":"ethBalanceOf(address)","725326dc":"setAllowedForTransfer(address,address)","7254895a":"readCards()","7254e1ba":"afterGeneratorHook()","72558b73":"destroyValue(address,uint256)","7255d729":"createGame()","7255f7ad":"getLastImageId()","72561235":"getCreditbitAddress()","72565e3f":"offChainMint(address,uint256)","7257dac1":"removeSomeUETsFrom(address,uint256)","7258b901":"masterCut()","72593831":"withdrow(address)","72593b4c":"ordersCanMatch_(address[14],uint256[18],uint8[8],bytes,bytes,bytes,bytes,bytes,bytes)","7259ac60":"Rethen()","7259bce3":"preSaleTokenPrice()","725a731d":"setPendingKNCRateRange(uint256,uint256)","725a7eea":"MEGA_HERO_MULTIPLIER()","725ad47f":"TransferERCXTokenInitiationEvent(uint256,address,string,address,address,uint256)","725c8bdd":"LMITOKEN()","725cedd3":"calculateReward()","725d8524":"getOption(bool,address,uint128,uint128,address,uint64)","725da7b4":"withdrawMicroDivs()","725e70a3":"getnumDeposits()","72601e77":"setOracleFee(uint256,uint256)","72601faa":"ROUND_DATA_COUNT()","726199b5":"notarizeHash(uint256,string,string,string,bytes32)","7261e469":"burn(address,uint128)","7261ffad":"spendGameLockedToken(address,uint256)","7262561c":"unsubscribe(address)","7262eb66":"PRE_ICO_POOL()","726300c7":"releaseEscrow(uint256,uint256)","72630a6d":"UpdateIndividualContributorCap(address,uint256)","7264727d":"STCToken()","7265d040":"startAtBlock()","72664744":"setDelegadoDeDistritoVerify(bytes32,uint256)","726678e7":"level2Bonus(uint256)","7266f4a4":"X3()","72670119":"payBonus1Address(address)","72675562":"extraTokensWallet()","7267a25b":"mainSaleMinimumWei()","7267f24a":"lrcReceived()","726802a4":"addAddressToAccount(address,bytes,bytes,bytes32)","7268475b":"ITSMToken()","7269a327":"isNonFungibleBaseType(uint256)","7269daa5":"requestChangeStaker(address)","726a3ad1":"removeReservedTokens(address)","726a431a":"TARGET_USER()","726ab4ef":"getParentHash(bytes)","726aeb20":"costToCreateGame()","726b23bf":"changeMinNac(uint256)","726b5bad":"endAirdrop()","726bd6bf":"oraclizePrice()","726c12c8":"FileDataInt()","726c6382":"Error()","726d0a28":"getRequest(address,uint256)","726d50ee":"totalCampaignsBy(address)","726d82a0":"SEN()","726df9cc":"grantService(address,address)","726ea051":"calculateCoinBuySimple(uint256)","726ee493":"withdrawStakeTokens(uint256)","726ef3da":"getCurrentWinnerMoveCount()","726f63f6":"setTokenOffering(address,uint256)","727089f1":"extractAllowanceLength()","72712bb8":"trophyAddress()","72729ff2":"amountRaisedInWei()","7272ad49":"decreaseApproval(address,uint256,bytes)","7274f35b":"getCoinIndex(bytes32,address)","72750dc1":"PANICPERIOD()","7275c8cb":"getRecord(bytes32,string)","72761e96":"execute_transfer(uint256,uint256)","727648a3":"submitWork(address,address,uint256,string)","7276509c":"purchaseBuilding()","72771d40":"sendList(address)","7277236b":"icoInvestment(address,uint256)","7278d080":"BTCEarth()","7278d623":"CurrentEntityState()","727a00a5":"LetsFunds()","727a666a":"totalLevelValue()","727a899a":"setHashes(uint8,string,string,string,string)","727b1cd6":"next_draw(bytes32,uint256,uint256,uint256,uint256,uint256)","727b4094":"transferStep()","727b4276":"setBitGuildToken(address)","727c2ff0":"purchaseWithGze(uint256)","727cdf87":"setCut(uint256)","727d508a":"isOpenForPublic()","727da487":"TTGOracle()","727e2422":"StudioToken()","727f0067":"nextHash()","727fc9fc":"SCAM()","72801b53":"isInTimeRange(uint256,uint256)","728064cd":"GetTotal()","7280850e":"getHandRank(uint32)","7281854d":"GetCategoryValue(uint8)","7282c5b1":"WithdrawFeeBalance(uint256,address,uint256)","72840e32":"rentPeriod()","72841e0c":"isMaxCapReached()","728435a0":"ReverseProposed(string,address)","7284e416":"description()","72850e7a":"priceNeedsUpdate()","728516c2":"getProjectedPayout(bool,uint256,uint256)","72852fe5":"attackTile(address,uint16,uint256,bool)","72855080":"demurringFeeDenum()","72879610":"sencHardCap()","728880c2":"payOutVoterByAddress(address)","7288b0a9":"numberOfPingsAttempted()","7288b50c":"engraveNamespace(string,string,bytes32)","72892f4f":"newPlay(uint256,uint256,address,uint256,uint256,uint256,uint256,uint256)","7289f28e":"setLastRound(uint256)","7289f9aa":"setDiscountedInvestor(address,bool)","728a6755":"buyBookLotto()","728addbc":"token_balanceOf(address)","728af7ec":"getInterest(uint256,uint256)","728b763c":"extendTde(uint256)","728cbc44":"userHeldTill(address)","728cd741":"SnapshotAndDistributePot()","728cf508":"bookingMetadataForKey()","728d0e2b":"accrueDividendandCoupons(uint256,uint256)","728d3dd2":"newRaceDistCon(address)","728d5e94":"baseTokensPerEther()","728de91c":"preSale(address,address,uint256)","728ec9f1":"YourCustomToken()","728f31e7":"setTransferEnablingDate(uint256)","728f3a21":"isApprovedWallet(address)","72909e28":"calculateIdeaSell(uint256)","7290c21d":"auctionCancelled(uint256,address)","7290f691":"horseShoePr(uint256)","72910be0":"setTitle(string)","7291acdf":"SaleWindowUpdated(uint256,uint256)","72923378":"RockPaperScissors(address,address,uint256)","72927b1e":"deleteEntryByName(bytes32)","72929b56":"getKudosPerProject(address)","7294789b":"getWhaleCard()","7296359a":"fog()","729680c3":"epsAddress()","7296dae6":"jsonCat(string,string,address)","7297be7f":"changeFixedCommissionFee(uint256)","72987457":"blocktrade()","7298b261":"_calcEditorKey(bytes)","7299054c":"random(uint256,uint256,uint256)","72998d8e":"LotteryGameLogic(address,address)","72998ee1":"addPreSalePurchaseTokens(address,uint256)","729ad39e":"airdrop(address[])","729aeea6":"isSetupRunning()","729b3881":"setNewRound(uint256)","729c04fd":"_yearTwoClaimed()","729cc83e":"getPlayerKeyCount()","729e3ef8":"YOPT(uint256,string,uint8,string)","729e6f2b":"getGameChance()","729ee75b":"updateUSDXGE(uint256)","729ef530":"additionalBonus()","729f0e8e":"cmct()","729f2439":"addK(uint256)","72a02f1d":"finalizeInit()","72a06b4d":"returnInt8(int8)","72a0c16e":"tulipToApproved(uint256)","72a1a8ae":"CanSignIn()","72a1b73f":"createSale(uint256,uint256,uint256,uint256,address)","72a1e258":"updateUser(address,string,uint256,uint256,uint256)","72a20c78":"powers()","72a22014":"firstAuctionsHighestBid()","72a22d51":"unlockValueOf(address)","72a2d90c":"quickWithdraw()","72a4a02f":"runPreMint()","72a4d94b":"release(bool)","72a503be":"transfer(address,address[],uint256[])","72a52851":"checkProof(bytes32[],bytes32,bytes32)","72a56d2c":"ICO_RATE1()","72a66507":"_isNewUser()","72a6a480":"_validRating(uint8)","72a7019c":"saleHardCapEther()","72a74d5b":"confirmOffer(uint256)","72a7655e":"timestampMint()","72a7b8ba":"multiDecreaseApproval(address[],uint256[])","72a7c229":"right41(uint256)","72a7d8c9":"lengthEqual(bytes32[],uint256,string)","72a7ff87":"isKYCRequiredToSendTokens()","72a85604":"min_amount()","72a86693":"ambassadorsNumber()","72a88673":"nthRoot(int256,int8)","72a984b2":"blockMinedAt()","72a9e232":"reserveFunds()","72aa18d7":"WALLET_ECOSYSTEM()","72aa343a":"removeProof(address,bytes32)","72aa9349":"maxTickets(uint256)","72aab7d7":"setGPSEndTime(uint16,uint8,uint8,uint8,uint8,uint8)","72abee88":"PreIco(uint256,uint256,address,uint256)","72acad56":"check_reward()","72ad21c7":"protection(uint32)","72ad3c9f":"OTCChain()","72ad5bbe":"_isErcToNativeBridge(address)","72adc407":"getGuardianVend(uint256)","72adcadd":"TOTAL_CONTRIBUTOR_COUNT()","72ae74dd":"getCoinRemains()","72ae9e54":"blocksCoordinates(uint256,uint256)","72af7b43":"SkyeCryptoPrivate(uint256,string,string)","72af805e":"sendPreIcoTokens(address,uint256)","72b0d90c":"withdrawTo(address)","72b28d27":"getNext(address,uint256,uint256,uint256)","72b2ee75":"investorsNum()","72b30d39":"setLLV_edit_30(string)","72b38ab9":"refundUser(address)","72b3936d":"EWBToken()","72b3f570":"endBuy()","72b44b2c":"getSaleReturn(address,uint256)","72b4e98f":"Aecium()","72b4f111":"COOPToken()","72b50845":"eliminateSDCC(address,address,uint256)","72b556c7":"emissionReleaseTime()","72b59c68":"createNote(uint16,bytes2,bytes12,bytes)","72b5e050":"LOCKED_ALLOCATION_PPM()","72b60682":"lockEndDate()","72b614af":"itemsPerPage()","72b7094a":"tokensPerEthPresale()","72b75585":"getOriginalClient()","72b7f893":"metaIncreaseApproval(address,uint256,bytes,uint256,uint256)","72b81b1c":"resolveLotteryByHand(uint32,uint32)","72b8a5cf":"bonusPersent()","72b8de14":"isChallengePeriodOver()","72b902a7":"setvolumebounus(uint256,uint256,uint256)","72b91e61":"seen(address)","72ba8259":"testMinting()","72baa12e":"withdrawQR(address)","72baa779":"setItoEndTime(uint256)","72bc56fe":"IsMultiFreeze(address,address[],bool)","72bc8fc6":"ether2tokens(uint256)","72bc8ff2":"isOMITokenLockContract()","72bc9240":"etherPerSale()","72be346c":"ZTR_ETH_initial_price()","72becdee":"_generic(bytes,address)","72bedcee":"operationState()","72bf079e":"adjustPrice(uint256)","72bff5ad":"freezeMintingFor(uint256)","72c03508":"contributorClaim()","72c0e7a4":"setThreshold(bytes32,uint256,uint256,address)","72c1591c":"testFail_basic_sanity()","72c174db":"mintTokensForAdvisors()","72c1df4c":"transferDirectorB(address)","72c27b62":"setFeeBps(uint256)","72c3015c":"mint(int256,address,string)","72c4639e":"SummRew()","72c4ae6b":"walletForCommunity()","72c537e6":"FirstCryptoBank(uint256,string,string)","72c5c349":"NinjaCore()","72c5cb63":"getAmountTransferred()","72c60b1d":"tokenAddressToAssetData(address)","72c691b2":"setWarTokenAddr(address)","72c70758":"setBountyFundWallet(address,address,uint256)","72c7c85a":"minority()","72c7e48d":"addAddressesToWhitelist(address[],string)","72c87075":"testBlockHeaderFetch()","72c91cdd":"maxTokenForPreSale()","72c9a5e3":"approveFST(address,uint256)","72c9e9e0":"placeBid(uint64)","72ca7fce":"TrueVeganCoin()","72cb8a89":"TokenWithdraw(address,uint256,address)","72cc1f5a":"knightAddress()","72ccd03a":"delWord(string)","72cd5576":"getImpactLinked(string)","72cd700b":"totalSupplyExpansionTokens()","72cd7b89":"foundationTarget()","72cde347":"setMiniPoolEdit_5(string)","72cee8ea":"getReferralProfit(address,address)","72cef34b":"getRevisionIpfsHash(bytes32,uint256)","72cf3b40":"recharge(bytes32,uint256,address)","72cfea69":"presaleClosingTime()","72d00e9f":"activeContracts(uint256)","72d0774a":"presaleFinishTime()","72d0979a":"AddBonusToListFromArray(bytes32[],uint256[],uint256[])","72d16358":"Oratium()","72d209f5":"processRequest(bytes32[],bytes5,address)","72d29f64":"setValidatorName(address,string)","72d2f8b8":"createHodler(address,bytes16,uint64)","72d32586":"STOREDIG()","72d32968":"withdrawBonus(uint256)","72d376b6":"proofTokensAllocated()","72d3880e":"mainICO()","72d39ee4":"Credo(address,address,uint256,uint256)","72d475db":"getTotalHeartsByDappId(uint256)","72d4b93c":"VitManToken()","72d5637f":"AxieCore()","72d5fe21":"changeProposer(address)","72d744e0":"feeFromTotalCost(uint256,uint256)","72d8c1c7":"ForestCoin()","72d8e442":"hasBeenRevealed(address,uint256)","72d9733e":"add_AUTO_MANU()","72d99675":"getCollectible(uint256)","72d9b86f":"unpauseCrowdsale()","72d9f13d":"setMaxEarningsClaimsRounds(uint256)","72dad9f9":"SuperCoinViewToken()","72db2339":"ERC677Transfer(address,address,uint256,bytes)","72dd236a":"setTokenOffering()","72dd529b":"totalsupply()","72dd52e3":"coinContract()","72dee32b":"getEndGameStatus()","72df02a7":"setMintThresholds(uint256,uint256,uint256)","72dff527":"drawTertiaryBWinners(uint256)","72e05569":"_sendRefund()","72e09d48":"mokenId(string)","72e0e984":"prime(uint256)","72e18c12":"placeSellOrder(uint256,uint256,uint256,uint256)","72e208eb":"targetAddr()","72e2cac8":"BONUS_WINDOW_4_END_TIME()","72e2f8f5":"checkFreeze(address)","72e38003":"treefs()","72e3c5c2":"toggleEmployeeSuspension(address,uint32)","72e3f040":"richestRoundId()","72e4030d":"_freezeTransfer(address,uint256)","72e496f3":"setRestrictedState(bool)","72e4f262":"annotationLength()","72e4f5cc":"CreateOffer_internal(uint8,bool)","72e5186c":"depositTo(uint256,address,uint256)","72e5c84f":"_getTokenBonus(uint256)","72e67d06":"setPendingManager(address)","72e6aca3":"isWithinICOTimeLimit()","72e6e21a":"exchangeableTokens()","72e861ee":"private_setRandomAPIKey(string)","72e87c35":"giveProduce(uint256,string)","72e8e6a4":"PublicMined(address,uint256)","72e91fee":"initialPartnerAccount(uint8)","72e98a79":"transferBZxOwnership(address)","72ea1eb0":"addressBytesFrom(address,uint256)","72ea2e6d":"finishInitialExchangingPeriod(uint256)","72ea4b3d":"TestToken(uint256,string,uint8,string)","72ea4b8c":"getNumInvestors()","72ea61e8":"dist_developer(address,uint256)","72ea7243":"generateLand()","72ea8bfe":"executeBet(address,address,bool,uint256)","72eab193":"COMPLIANCE()","72ead941":"getDelegate(address,uint8)","72eae629":"multiMintBounty(address[],uint256[])","72ebe2aa":"verifyYourBalance(address)","72ec1993":"enablerefund(address,address)","72ece81c":"_create_island(bytes32,address,uint256,uint256,uint256,uint256)","72ed2c7f":"setQualifiedInvestor(address,bool)","72eda05f":"tokensAllocatedToCrowdFund()","72ee91c2":"configSignOrganizers()","72eec3a7":"refundToken(bytes32,string,address,address)","72eefb8a":"getRareItemsOwner(uint256)","72ef149e":"whiteListRegistrationEndTime()","72ef5458":"transferTokenOPSPlatformTokens()","72ef6a08":"rgbLimit(uint256)","72ef90e4":"Shop(address,string,string,uint256,uint32)","72efa4ef":"Showcoin()","72f0424f":"getPriceToken()","72f12814":"_setIDLE(uint256)","72f1301a":"USCCToken()","72f159b7":"migratePlayerData2(uint256,address,uint256,uint256,uint256,uint256)","72f3b3c4":"ownerAbandonOverride(uint256)","72f41f11":"approvedRatio(uint256)","72f443be":"ChangeLicense(address,bool)","72f4ecab":"Balances()","72f4f5f9":"TOKEN_REFERRAL()","72f52a3e":"getAttoTokensAmountPerWeiInternal(uint256)","72f57f1f":"withdrawUnsoldTokens(address)","72f5ae5f":"setCertificationManager()","72f5bb30":"UKToken()","72f5fccd":"releaseToMgmtTeam(address,uint256)","72f65dea":"BitstartiToken(uint256,string,string)","72f69a72":"getBurnRequestsLength()","72f6c3b5":"coinPercentage()","72f702f3":"stakingToken()","72f71894":"backTTCOwner()","72f74af8":"crowdfundAddress()","72f79b56":"btcEthRate()","72f83d3a":"poolSub(uint256)","72faebdb":"addCustomerFromACC(address)","72faf84a":"tokenSTCDRforBurnInControlWallett()","72fb54e5":"PHASE_2_PRICE()","72fb6f75":"MIN_INVEST_SUPPORT()","72fb9703":"challenge(address)","72fc493d":"decFeeDeposit(uint256)","72fc75d7":"_changeTrancheIfNeeded()","72fd1a7c":"changeRateSale(uint256)","72fd8772":"toekensForOthers()","72fdbf25":"increaseDividendPayments(address,uint256)","72fecf84":"upgradeUnitId(uint256)","72ff1773":"bonus_percentage()","72ff285e":"_calculatePayout(bytes32,uint256)","72ff3d87":"signedBySystem(bytes32,bytes)","73032446":"censorAndCover(address,uint256,string)","730369a7":"tokensBounty()","7303a559":"getCreatorMetadata(string)","7303ed18":"trustedUniverseBuy(address,uint256)","73047e93":"timeslucky()","73053410":"newVersion(uint16[3],address,bytes)","73053f70":"tokenDeposit(address)","7305c695":"_orderTokens(address,uint256,uint256,address)","7305dce1":"createPromoCollectiblesWithMining(uint256[],address[],uint256[],uint256[],uint256[],uint256[])","73069f94":"_claimTokens(address)","730720b8":"testControllerValidTransfers()","730736c9":"DelSocialAccount(bytes32,bytes32,bytes32)","730740f8":"_resumeWork(uint256)","7307b805":"dismissTokenOperator(address)","73086e58":"isFreezeTimeout()","730a04fd":"ArnoldCoin()","730a0d80":"unhold(address)","730a1a16":"_medalUnFreeze(uint256)","730a3127":"RECORDICO(address,address,uint256,uint256,uint256,uint256)","730a9f1c":"UncleToken()","730ad454":"vote(bytes32,address,bool)","730b1952":"test_insert_updateHead()","730bdc96":"getHeroDetails(uint256)","730c1faa":"LogUnpause()","730c635a":"_checkToiletFlush(bool,uint256)","730d2221":"CWS(uint256,string,string)","730db1f8":"setNum(uint256,int256)","730e90b7":"addTipBalance(uint256,address,uint256)","730ef269":"getNumberOfItems()","730f2a96":"_transfer(address,address)","73107c99":"ICDStartTime()","7310c2e0":"Daisee()","73124ced":"transferLock()","73124ee9":"ContractDetector()","7312aaae":"singleWithdrawMax()","7312c065":"Receiver()","73137bd0":"buildInternalSalt(uint128,address,address,uint256,uint64)","73138e4f":"PRESALE_SUPPLY()","73139c0d":"getTokensForStage(uint256,uint256)","7313b3b1":"Drawing()","7313ee5a":"vestingPeriod()","7314221e":"_createDeveloper(string,uint256,uint256)","7315acc8":"getAllShareholdersOfArtwork(uint256)","7315af6f":"LandmarkCoin()","7315f446":"votedKickoff()","7316453e":"setPrice1(uint256)","7317a88d":"transferSingle(address,address,uint256)","7317c4f3":"replaceAnimal(uint8,uint16,bool)","731859bc":"batchLockArray(address[],uint256[])","7318b453":"setVotetUntil(uint8)","7319b43e":"playersList(uint256)","7319e5aa":"calculateBonus(address)","731a00f5":"calculateVestedTokens(uint256)","731a3b06":"unstakeFrom(address,uint256)","731ac7ed":"choosePerk(uint8)","731b185e":"LogSetPreICO(address,string)","731b3284":"Lockable()","731bed8b":"WithdrawalStarted(address,uint256)","731c2f81":"feeRebate()","731c7c62":"setServiceRegistryEntry(uint256,address)","731e1c94":"setLastPrice(uint256,uint256)","731e1ecd":"preMarketingSharesDistributed()","731f03fc":"setMinimumBuy(uint256)","731f49b7":"lastIdGen0()","731f93c5":"updateCertification(uint256,string,string,string,uint16)","731fb32e":"PRE_SALE_GMR_TOKEN_CAP()","73201667":"tokenUnlock(address,uint256,address,uint256)","73206348":"raiseDollarsWithdrew(address,uint160,int160)","7320753b":"approveConnection(address,address,uint256)","7321a17b":"getTotalBonusTokensByAddress(address)","7321ffa6":"distributeFunds(address,uint256,address,address,address)","73221a55":"unblock(address,bytes32)","732264b4":"getCommitmentsOf(address)","73228786":"setTokenAddresses(address[6])","7322dccd":"lastBlock_a16()","7323febe":"aa(uint256)","73251628":"doAirdrop(address)","732519d5":"getSellable(uint32)","73252322":"RandomProofFailed(bytes32,uint256,uint256)","73256a8d":"SharesChainTokenCrowdFunding(address,address,uint256,address,address,address)","7325b084":"GdprCash()","732606fc":"getCooldownIndexCount()","732617bb":"switchAdmin(address)","7326b901":"getPropertyCount()","7326cac8":"ethIn_()","732726d1":"increaseLockedAmount(address,uint256)","732783ac":"tokensBought()","7328c6ec":"submitNewContract(string,address[],string,bytes32)","7328f531":"evaluateSkill(address,uint8,uint256,uint256,uint256)","7329036a":"getBlocksLeftInCurrentKick()","732a37c9":"SnowdenAffact()","732b6963":"emitEnd()","732bdbbf":"clearApprovalAndTransfer(address[16],address,address,uint256)","732c227f":"contributionCaps(uint256)","732d2da4":"testHasCinderToken()","732d565b":"ONE_YEAR_KEEPING()","732e632e":"assemblyTest()","732e77d0":"EGGS_TO_HATCH_1SHRIMP()","732ef12c":"fee_registration()","732f5d0c":"AdvancePayplus()","732fe2ff":"buyerCapLowEther()","73305f14":"Quicketh()","7330aba2":"getOracleAddresses()","7330aca4":"_isTransferAllowed(address,address)","7330daac":"isOnList(address)","73311631":"addBrand(address,string)","733122aa":"fromMemory(uint8[])","73321f03":"GateToken()","733261bf":"bountyAdress()","7332b520":"getRewardsCount(uint256)","73333128":"out3Done()","73335b46":"GlobfoneToken()","73339a13":"setNetworkState(uint256)","7333fd00":"lock4Dividend(uint256)","73342168":"BFToken(string,string,uint8,uint256)","733452bc":"Descript()","733480b7":"transferToICAP(bytes32,uint256)","7334a63f":"whatWouldPurchaseDo(uint256,uint256)","7334b2d7":"isBurnWallet(address)","7334d5e2":"editSpecial(uint256,uint256,uint16)","73357018":"RATE2()","73373879":"RecoveryQuorum(address,address[])","733746ba":"Snickers()","73379c54":"SecretNoteUpdated(address,bytes32,bool)","7337c993":"initiate(uint256,bytes20,address,address,bool,uint256)","73383832":"barrierPrice()","73384fd5":"addMultipleAddressesToUncappedAddresses(address[])","7338c25c":"hasAttribute(address,bytes32)","7338ddcc":"acm()","7338faba":"setHardCapEther(uint256)","73396ff4":"getLoanToDepositRatio()","7339affc":"UbiqTalk()","733ad6e3":"BHMBLU()","733b679e":"PRESALE_LEVEL_2()","733bdef0":"getStakerInfo(address)","733bf2f2":"setPercentageCut(uint256)","733ccaba":"setResolver(string,address)","733d8053":"containsToken(address)","733dca75":"registerCoin(bytes4,string,string,address)","733e193c":"saleHasEnded()","733ef936":"drainFunds()","733efe16":"numSkinOfAccounts(address)","7342048a":"transferOwnershipOfContract(address)","7342c484":"airdropDistributedTokensAmount()","73440745":"listItem(uint256,uint256,address,bytes32,address)","73454fe4":"StuckOnStupidToken()","7345a3a2":"payExcess()","7345da39":"logPayerStatement(string)","73463965":"notifyPlaceSellOrder(uint256,uint256)","73463c9c":"ReceivedETH(address,uint8,uint256)","7346ec57":"tokensToWei(uint256)","73475373":"trySell(uint256,uint256)","73479f39":"totalT8EXSold_CORNERSTONE()","7347a25d":"BitcoinTrade()","7348ac1f":"ecoSupplyAddress()","73493f09":"getTokensCost(uint256)","734a2c72":"ProjectTestToken()","734a56f0":"preSaleEtherPaid()","734b4861":"addOpenAction(string,address,string)","734b9a87":"mod(uint64,uint64)","734bb97e":"checkcoursestudent(address)","734ce665":"newProposal(address,uint256,bytes32,bytes32)","734d8287":"unclaimedFees()","734e3015":"newMegabox(address,uint256,uint256)","734f2838":"FinishCompetition(uint32)","734f8a4d":"kycValid()","735056a3":"SpoolAmount()","73520a2b":"getReservedTokenDestinationList()","7352e4b8":"setAffiliate(address,address)","735307fb":"createTimeLockContract()","73535aa7":"PixelUpdate(uint32,uint8)","7353a21d":"queuedAmount()","7353f62b":"testGetApprovalDb()","73545d44":"landmarkOwnershipCount(address)","73549604":"getFinalTime(bytes32)","7354eb04":"rocCoreAddress()","7355303e":"_priceOf(uint256,uint256)","735631ad":"revokeTransaction(uint256)","7356a8a9":"getTile(bytes)","73580358":"ColorBayTestToken(uint256,string,string)","73582884":"releaseGrant(address,address,bool)","735958f2":"XPAAssetToken(string,string,uint256)","73596cfc":"Bitcoincredit()","73599205":"ProdDToken()","7359f5cf":"FundAddress()","735a3326":"getLeftTickets()","735a80b1":"test_voteSpammingAgainst()","735af2eb":"Rate10()","735b232c":"addWhitelistedTransfer(address)","735b266d":"icoStage1Deadline()","735b38a3":"getCardCanPresaleCount()","735b81ab":"circulationAt(uint256)","735bae84":"migrateRoundData(uint256,uint256,bool,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","735bb742":"sha256Docs(bytes32)","735cfff2":"valueTotalSupply()","735d3e81":"updatedBalance(address)","735d45e1":"RADIUM()","735d8876":"getCurrentExpirationTime()","735dcc8b":"devfeetodev()","735e9cbb":"disableModule(bool)","735f11b4":"updateAndWithdraw(uint256,int256[2],uint256[2],int256,bytes32,address,uint256,uint256,uint256[3])","735fb8e0":"fundOwner()","7360ab6e":"mint(address,uint256,string,uint256,uint256,uint256,uint256,uint256,uint256)","73611c48":"send3MilWeiToPong()","73618371":"Molecule(uint256,string,string)","7362377b":"withdrawEther()","73627826":"getTime(uint256)","7362d9c8":"addWhitelistAdmin(address)","7363d85b":"TMEXAddress()","73646c91":"updateMirroir(address,address)","73654b6d":"userTransferFrom(address,address,uint256)","7365870b":"bet(uint256)","7365babe":"MIN_TOKEN_INVEST()","7365e1fd":"setPriceCutoff(uint256)","7365e2d7":"totalPresaleTokensSold()","736660ac":"determiningWinner()","7366794e":"distributeTokens(uint256)","73668b06":"XCCCrowdsale(address)","7366c68d":"calculateCommission(uint32)","7366e3ff":"raisedInPresale()","73671268":"vestToAddress(address,uint128)","73674ecc":"admin_deposit(uint256)","7367df4b":"Syndicate(uint256)","7367e302":"ContractCreationTransaction(bytes,uint256,uint256,address,uint256,uint8,uint256,uint256)","7367f156":"gameSettings(uint256,uint256)","73681818":"EICQ()","73688914":"owner1()","7368a8ce":"create(bytes32)","7368b3cb":"DinsteinCoin(uint256,uint256,uint256,string,string)","736a0102":"bonusETH()","736a1b9a":"AdjustClientAccountBalance(bytes32,bytes32,bytes32,string,uint256,string,uint256)","736b13ae":"setRefillFor(string,uint256,uint256)","736c24b5":"AdsharesToken(address,address,address,uint256)","736c3e82":"onPayment(address,uint256,bytes)","736c983a":"setCurrentRevision(address)","736d323a":"setPausable(bool)","736d7c52":"isAlreadyDelegate()","736d7ee9":"revokeAccess(address,int256,address)","736ead2c":"optionsCalculator()","736ec05c":"setMigrateTo(address)","736eec58":"TransferAnimalToAnotherUser(uint256,address)","736fafd3":"setPreIco()","736fe565":"withdrawAmount(address,uint256)","73705090":"teamOnePrefix()","7370a38d":"getNumPackages()","7372014e":"midnight()","73720de9":"receiveMonthlyNRT()","7372196c":"PHASE_4_PRICE()","7372c2b5":"pull(address,address,uint256)","73732024":"isDeposited(address)","737377fe":"getTokenVolumebasedBonusRateForPhase2(uint256)","7373af84":"numberOfNarcosByDistrict(uint8)","7373f41d":"getEthereumBalance()","73741171":"createVCXVault(uint256,address)","73743fbe":"prospectors_team()","7374b013":"buyTDETokensWithoutETH(address,uint256,uint256)","737517f5":"powerUp(address,uint256)","73752db4":"getKYCPayload(bytes)","7375c0c3":"PonderGoldToken()","7375e0fe":"testSimpleObject()","7375ed82":"LogLoss(address,uint256,uint256)","7376678b":"finalizePreSale()","7376fc8d":"right67(uint256)","73770c01":"Updater()","737732b2":"DEVELOPERS_BONUS()","7377a036":"CloudexchangeToken(address)","737a7698":"transferAssigner(address)","737aa5a0":"remainingTokensWallet()","737c2d8c":"checkAvailableTokens(address,address)","737c8ea1":"_getRevisionBlockNumber(bytes32,uint256)","737d5f39":"AccessAdmin()","737d8c8e":"ChangeTokenWalletAddress(address,address)","737e2835":"_minHouseEdgeClassic()","737e7d4f":"getByVersionId(uint256)","737f18ff":"_weiToVouchers(uint256)","7380fbf3":"removeMemberArrayToken(address,address,uint256)","73815ab7":"nfc_simplehq()","738198b4":"cast(uint256)","738228cd":"testUmlaut()","73826a93":"updateTokenDetails(string)","7382901e":"serverSeedHash()","73835f35":"checkIfEligable(address)","7383d709":"buyItem(uint256,address)","7383d8ee":"getEachBindAddressAccount()","73845cfa":"setLocked(address,uint256)","738486bd":"BeerCoin(uint256)","7385e1f3":"level_5_amount()","7386c2be":"Exilium()","7386f0a7":"reservedTokensDestinations(uint256)","7387479e":"reclaim_art_token()","73889677":"ownerLives()","73889f4a":"getHoldersCount()","7388fb2b":"AltTokenDistribution(address)","73898796":"Tier_Classic_Registration()","738a2679":"left85(uint256)","738a2cf8":"nextPaymentTime()","738b2fac":"setSignedPublicEncKey(string)","738b31b5":"minimumWithdrawal()","738c2931":"rewardTwo()","738d8d82":"numberWikiPages()","738ddabe":"getContentIndexedAccountCred(uint256,address,address)","738e6d78":"checkRefund(address)","738fa7a4":"userRank()","738fdd1a":"reg()","7390a673":"MyEtherTellerEntityDB()","7390c786":"getRandomResult()","739112da":"safeSubtrCPCE(uint256,uint256)","73913545":"fundVesting(uint256)","73916918":"getinfowinning(address,uint256)","73918980":"multiTransferEth(address[],uint256[])","73925694":"take(uint256,address[])","739294d2":"setAssignedID(address,address,uint256,string)","7392ce80":"TokenDeployed()","73930ce2":"validAmount()","73931bbf":"getGame(bytes32)","73932bfd":"withDrawal()","7393d262":"goldenTicketUsed(address,string)","7393e0b2":"DayTrader()","7394cb3f":"addLocationRecord(uint256,uint256,string,string)","73962b26":"isReleased(uint256)","73963bf0":"setIdArray(address,address,string,string,uint256[])","73964787":"batchAddCancelledOrFilled(bytes32[])","7397d5f1":"getMintForReportingParticipantAmountValue(int256)","73980d69":"dollarRaised()","739826c5":"changeAllowTransfer()","739838be":"DigitalEnthusiasts()","73984188":"delOwner(address)","739890f0":"disqualifyTeam(address)","7398ab18":"getPosition()","7399646a":"theRun()","73998758":"smpToken()","739ab361":"needApprovesToConfirm()","739b47ca":"recordWin(address)","739b5014":"Snatch(uint256,address,address)","739b6214":"doProveMemoryWrite(uint256,bytes32,bytes32[])","739b78ed":"LogSell(address,uint256,uint256)","739b8c48":"setForwardedOutcome()","739bdcff":"pricePause()","739beded":"mintSendTokens(int256)","739cb57d":"setEndtDate(uint256)","739d3307":"SetWho(address)","739d980e":"address(address,uint256)","739e40b7":"getMyPunchCards()","739e7f48":"TeamChoice(address,uint256)","739f2224":"SetActive(bool)","739f763e":"getListing(bytes5)","739f888c":"setNewEstimate(int256,int256)","739f9202":"dev_share()","73a070bc":"addressReserveFund()","73a077a4":"sub16(int16,int16)","73a17e6d":"setCompte_31(string)","73a19dd2":"Deposited(address,uint256,uint256)","73a1e7f5":"allReceivedEth()","73a1f366":"founderTokenCount()","73a22e62":"fetchPaidOrdersForMerchantByAdmin(address)","73a26a12":"CryptoDiamondCoin()","73a29b5e":"get_presale_arbits_sold()","73a2d1ff":"MexicovsSweden()","73a3d9e4":"canUpdatePercentToTakeAsSeed()","73a40efb":"_computeRarity(uint256,uint256,uint256,uint256,uint256,uint256)","73a4c307":"COMMUNITY_SUPPLY()","73a55389":"setRarePrice(uint256,uint256)","73a5717e":"BaironSupply()","73a5f508":"getAuditorRegistry()","73a699ad":"isGenesMarket()","73a72b18":"setFountainFoundationOwner(address)","73a75c1f":"addVineyard(string,uint16,uint24,uint32,uint16)","73a7b8b2":"storeStages(uint256[])","73a7dfda":"we()","73a80336":"prizeWon()","73a80b74":"_mintSqr(uint256,address,uint256,uint256)","73a91544":"showMigrationStabitcoinAddress(address)","73a95ddd":"redemptionPaused()","73a97787":"sgcToken()","73a97f42":"MetaRules(address,address[])","73aad472":"guaranteedBuyersBought(address)","73ab7503":"FlightPlan(address)","73abecbb":"kill1()","73ac4739":"getOnSellCardIds()","73acbcb2":"switchBleachAllowed(bool)","73ad2a15":"AllowedRecipientChanged(address,bool)","73ad468a":"maxBalance()","73ad6c2d":"setMarketplace(address)","73ae277b":"getDepositAddressVerify()","73aef263":"FDSToken()","73aef2b6":"unFrozenControl(address,uint256)","73af652c":"setCollectibleExposure(address)","73b1184e":"setupVote(uint256)","73b14098":"getTotalDevelopmentFundEarned()","73b1edce":"_lock(address)","73b24ca0":"indInflation()","73b2c384":"_computeBorder(uint256)","73b2e80e":"hasClaimed(address)","73b34271":"ETH420on49()","73b38101":"wipe(bytes32,uint256)","73b3dcde":"maxDestroyThreshold()","73b40a5c":"forwardTo(address,address,uint256,bytes)","73b4484f":"registerA(string,string,string,address)","73b47908":"_updateCounters(uint256,bytes32)","73b4df05":"createToken(string,address,uint256)","73b51d38":"startWork(string)","73b51f0b":"_tokenDelivery(address,address,uint256,uint256)","73b55eaf":"registerData(address,int256,bytes32,address)","73b5abaa":"PresaleDiscountPercentageChanged(address,uint8)","73b6656f":"relay(address)","73b68be8":"preicoAddresses()","73b6a48a":"GetDataRequest(uint256,bool,string,uint256)","73b793a8":"PrizeFund()","73b8a8c1":"MeetOneCommunityBonus()","73b913fa":"safeTransferManyFrom(address,address,uint256[])","73b972bc":"bonusTokensIssued()","73b9aa91":"account(address)","73baae7a":"KingKongCoin()","73bbda81":"standardTokenDefrosting(address[])","73bc1b2f":"customerPool()","73bc8b2f":"kvcSub(uint256,uint256)","73bc8b77":"SPIDER_BOOST()","73bda17e":"restrictedTokens()","73be0a99":"getData_7()","73be6ddd":"allowEscrow()","73bfb566":"withdrawFromProject(address,uint256)","73c107b3":"checkWins(uint256,uint256,uint256)","73c1af76":"deleteFreezeList(address)","73c24cb1":"Buy(uint256,address,uint256,uint256,uint256,bytes16,bytes32)","73c261f4":"getRegionUpdatedAtPurchasedAt(uint256)","73c28692":"disallowFunding()","73c2ec65":"sendbal(address,uint256)","73c32a71":"get_property_basic_info(uint256)","73c4726b":"minHouseStake(uint256)","73c4942a":"depositStopTime()","73c6a4ec":"acknowledgeCopieExecutoire(bytes32)","73c6aa7d":"ExchangeEfx()","73c74103":"recoverTokensTo(address,uint256)","73c8c4bf":"Leverages()","73c8d8a2":"setMaxPaymentInEther(uint256)","73c8de54":"issueByTranche(bytes32,address,uint256,bytes)","73c90b43":"calcBidAllocationFee(bytes32)","73ca1b28":"WHYPHY()","73cb0620":"fluffyCatAddress()","73cb8ab7":"enableTokensTransfer()","73cbd8ce":"getPublicSupply()","73cc3ec7":"iceFundDeposit()","73cc9153":"MeshPointManager()","73cce6f1":"presaleAllocateTokens()","73cd0a19":"allowanceBurn(address,address)","73cd148e":"VariableConstructor(string)","73cdcac4":"getPostsFromPublisher(address,string,uint256,bool,uint256)","73ce3c72":"UpStats(uint256,uint256,uint256,uint256)","73ce9920":"parseOrder(bytes)","73cf013c":"isBlacklist(address,address)","73cf8f97":"registryRequestSku()","73d00224":"swapTokens()","73d01ead":"prepareForMigration()","73d08bc5":"prefill(address[],uint256[])","73d0d693":"Set(address,uint32[],uint24[])","73d0fe48":"totalLockedHavvens()","73d28995":"isMidGrade(uint256)","73d31240":"removeGame(uint256)","73d3172e":"MXY_chain()","73d384c8":"hasDeposits(address)","73d45ba4":"owner_ActivatePOS(bool)","73d4a13a":"data()","73d4c0ff":"m_aOwner()","73d4d500":"transferPayable(address,address,uint256)","73d4d9f9":"checkMAC(bytes32,bytes32[],bytes32)","73d55379":"Beneficiary()","73d65c00":"GEN0_NO()","73d69720":"checkWhitelistAddressValue(address,uint256)","73d6c2ec":"init_ico(address)","73d901d6":"activityClosed()","73d9170d":"GKBToken(uint256,string,string)","73da968d":"buySection(uint256,uint256,string)","73dae7d6":"issueTokensForPrivateInvestor(uint256)","73db0844":"ETHUSD()","73db2350":"commentsLength()","73dc7635":"openAttacksCount(address)","73dd9073":"secondStage()","73de3570":"calcaultePrizes(uint256,uint256)","73de3e72":"_refundTokens()","73de975c":"alreadyMintedOnce()","73def2b7":"subFreezingPrice()","73df6b19":"visitLength(uint8)","73e1743a":"buildDSBasicAuthority()","73e1851b":"migrateMyTokens()","73e1c5c9":"getMyFreeCoin(address)","73e2212e":"changepresalebonus(uint256)","73e2d75f":"changeClons(address,uint8,bool)","73e2faa8":"destructionContractAddress()","73e30e49":"majorEventFunc(uint256,bytes,bytes)","73e3ce80":"fact()","73e3de70":"CardSwap(address,uint256,uint256)","73e3e7a7":"getAdultByAddress(address)","73e40ed4":"REWARD_SUPPLY()","73e4d829":"createLandmark(uint256,uint256,address,uint256)","73e52855":"crownUnFreeze()","73e538fc":"availableTokensOnCurrentStage()","73e55a57":"DAOstackPreSale(address,uint256,uint256)","73e58a75":"balanceTeam()","73e61cf2":"changingEnabled()","73e67a38":"GameGoldToken()","73e6fc1b":"parseUint(string,uint256)","73e7c8ce":"setErrorRest(bytes,uint256)","73e81d88":"TrustMarketHubToken()","73e87d74":"OTM()","73e888fd":"contribute(address)","73e8b3d4":"exist(bytes32)","73e9f3e6":"Crowdsale(address,uint256,uint256,uint256,address,address)","73eab74b":"SoulTransfer(address,address)","73eaddf0":"OMGBalance()","73ec6bb5":"AMOUNT_PER_PHASE()","73ec7df0":"joinCommunity(address)","73ecac3b":"setGiftTokenAmount(uint256)","73ece9c4":"setEmployee(address,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint8)","73eda3cc":"finalizePublicSale()","73eec3c5":"payoutDividends(address,uint256)","73eef753":"coinSendSameValue(address[],uint256)","73ef6357":"selectplayer()","73efc627":"addAction(bytes32,bytes32,string,uint256,bool,uint256,uint256,uint256,uint256,bytes32)","73f00fb3":"emissionlocked()","73f01104":"reveiveToken(address,uint256)","73f029cd":"setOrUpdateRecord(string,string,string,string,address,uint8,bytes32,bytes32)","73f03d53":"crowdSaleFinalized()","73f1e6d7":"resolveLotteryByOraclize(uint32,uint32)","73f28451":"tokensRate()","73f310df":"multiAccessRemoveOwner(address)","73f3312d":"setMentorsTokensWallet(address)","73f3bd1f":"earlyInvestors()","73f42561":"burned()","73f440fe":"prevRoundTweetId()","73f58acd":"createTeamTokenTimeLock(address,uint256,uint256,address)","73f5cfb1":"isPhaseValid(uint256)","73f5edce":"UpPlayerResult(string,address,uint256,uint256,uint256)","73f5f8ee":"tokensAvailableAtCurrentTier()","73f64212":"supplyMultiplier()","73f69bc5":"TrustedDocument()","73f8edc3":"configureMarketItem(uint256,uint8,uint8,uint8,string)","73f8fd4b":"getUserTokenBalance(address,address)","73f93a48":"getAccountContentTip(address,uint256)","73f9421d":"getUpgradeCardsInfo(uint256,uint256)","73f9d5a0":"eostContract()","73f9ff23":"RaffleMakersBook(string,uint256)","73fa9ce8":"getAmTokenBalance(address)","73fac6f0":"confirmReceived()","73fb7878":"dividendFor10kDaily()","73fba0e8":"airdropReserve()","73fc83fa":"updateDireccion(address,bool)","73fc8420":"deployedOn()","73fc9643":"calculateFLC(address,uint256)","73fcfea1":"withdrawPLAT()","73fddd16":"refundEndTime()","73fe1673":"cpow2(uint256)","73fe747c":"TransferCreators(address,uint256)","73fee090":"setfee(uint256)","73fef35a":"setStartTimeIcoStage2(uint256)","73ff4d48":"getPlayerForCard(uint256)","73ff81cc":"getOwnersCount()","73ffd5b7":"transferEther(uint256)","73ffd969":"setMap(uint256,uint256,uint256)","73ffecd0":"getPlayerHistories(address,uint256)","7400ed3b":"acceptDeposit(address,address,uint256)","74019f87":"BATSafe(address)","7401aaa3":"getPlayerRoundBought(uint256,uint256)","7401f9c0":"flag(uint256,address)","740227d1":"receiveFunds(address,uint256)","7402a9aa":"isFirstStageFinalized()","74030531":"bet(string)","7403db08":"getVerifiedHash(address,uint8,address,uint256,uint256,uint256,uint256,uint256,bytes32,bytes32)","7403e980":"initPGOMonthlyPresaleVault(address[],uint256[])","74040424":"startPartnerSale(uint256)","74040cd2":"setBidFeePercents(uint256)","74041d1f":"liquidPledging()","74043a70":"FRPUSD()","740528a7":"GrantRevoked(address,uint256)","7405322e":"checkBalance(address,string)","74056b73":"crowdsaleMinUSD()","7405cee9":"CGCToken(uint256,string,string)","74063cc1":"tokenOfMakerByIndex(address,uint256)","74068480":"setPresaleFail()","7406d1a7":"updateRegistratorStatus(bool)","7406d943":"BIGTPrivate()","740707cf":"cancelSaleOfMintingAddress()","74087040":"testBitsNotEqualSuccess()","740907ea":"buySale(address)","74091685":"setReservesForExchangeTokensPercent(uint256)","7409e2eb":"swapTokenToToken(address,uint256,address,uint256)","740a2a90":"registerEmployer(string,string,bytes32,uint256,uint256,uint256[],string,string,string)","740ab8f4":"partitionsOf(address)","740b63f9":"set_hedgeAddress(address)","740b91b6":"horseOwnerIndex(uint256)","740d0a6f":"getAmbientHumidityException(bytes32)","740d73f3":"addToWhiteList(address[])","740e2a29":"setFundRepository(address)","740ed4e0":"addNewStakeDiceGame(uint256)","7411b2b2":"TrendNetworkToken()","741273d6":"testThrowRegisterContractAgain()","7412c223":"getCurrentTier()","74135154":"func1()","7413dcc3":"DelistTitle(uint256)","74141266":"arbiterList(uint256)","741430ad":"VINCToken()","7414edc4":"ERC20Token(string,string,uint8,uint256,address,uint256)","74151a2a":"retrieveUnsoldTokens()","74158cd8":"updateAdministratorKey(address,address)","7415fbdb":"_getGameInfoPart2(uint256)","74163ab1":"minsignupeth()","741677a5":"makeTrade(address,address,uint256,string)","741685e5":"EtherFuture()","7417040e":"numberOfParticipants()","7417575c":"_releaseEarning(bytes32,bytes32,bytes32,bool,address,uint8)","74182009":"CreateWolk(address,uint256)","74192209":"getTokenEnhanced(uint256,bool)","7419e77a":"setMarketplace(address,bool)","7419f190":"stakeStartTime()","741a35c4":"getTx(address,uint256)","741ad7a3":"transferDividends()","741b0508":"isSplitable()","741b2239":"unfreeze_period_time()","741b3c39":"depositBond()","741bcc93":"fillOrKillOrder(address[5],uint256[6],uint256,uint8,bytes32,bytes32)","741bd9c8":"ETHDeposir()","741be410":"getOpenPackageIdOfOneAgency(address)","741bef1a":"priceFeed()","741c251d":"changeGamemaster(address)","741cb9ce":"setCurve(address,bytes32,int256,int256[])","741cdf27":"Library()","741e2345":"registerMany(address,uint256,int256,uint256,bytes20,address,bytes)","741e3576":"getBonustokens(uint256)","741ed475":"AnkitVictoToken()","741f0434":"check(bytes20,uint32,int24[4],int24[4],uint32[4],bytes32[])","741f7034":"CrowdsaleToken(string,string,uint256,uint8,bool)","74214c92":"StandardERC223Token(uint256)","74220f3d":"burnApproval(address,address,uint256)","74229301":"isTokenized()","7422a127":"is_valid_event()","7423ab57":"Project_RemoveToken(uint256,uint256)","7423d96e":"txnTax()","7423e225":"getDataPointForSubject(int256,uint256,uint256,int256)","7424bab1":"currentAirdropAmount()","7424bebc":"bonusBasePoints()","7426172d":"addPurchaseFromOtherSource(address,string,uint256,uint256)","74268ff2":"deleteOffer(uint256)","74281f95":"FNAToken()","74287872":"investedAmountOf()","742887ff":"deleteAddress(address)","7428c5f4":"Gamble()","7428eed3":"IndieGameToken(string,string,uint8,uint256,address)","74294070":"_createItem(string,address,uint256,bytes32,address,address)","742978da":"getAssets(address)","7429c086":"repeat()","7429d78b":"SUCC(uint256,string,uint8,string)","7429f1eb":"multiAccessSetRecipientD(address,address)","7429fd67":"initHolderConfig()","742a1a56":"CCTE()","742a9fa0":"recursiveFloor(uint256,uint256,uint256)","742aa578":"AddressRecovered(address,address)","742b8b9d":"_CallRejected(bytes32,bytes15)","742ba8de":"declareProjectNotFunded()","742bff62":"SoftDude()","742c81e4":"approveOwnership()","742cd75d":"mintPCD(address,uint256)","742d5355":"calcTokenOwnerReward(uint256)","742d9f0b":"lastBlock_v7()","742d9fa3":"userOfferSubmitElement(uint256,uint256,uint256,uint256,uint256,uint256)","742e2ebd":"AllowedSet(address)","742e54b2":"_airdropSupply()","742f79d5":"preRate()","7430faf4":"fechSnapshotBlockByIndex(uint256)","7432542d":"_remainReward()","74331be7":"sete(address)","7434206e":"validateReceipt(string,uint256,bytes32,bytes32,bytes,bytes,bytes32)","743438ad":"id_for_address(address)","7434d180":"removeSmartContractByAddress(address)","7434e60d":"HamsterToken()","7435039d":"calculateBountyRewards(uint128)","743521c6":"rewardBountyMany(address[],uint256[])","7437681e":"maxTx()","74388347":"checkBetDozen(uint8,address,bytes32,bytes32)","74389991":"breakit()","7438b0df":"WIN_CUTOFF()","74396ed1":"makeWithdrawal(address,address,uint256,uint256)","74398d45":"setGlobalTokenTransferLock(bool)","7439a3bd":"verifyClaim(uint64)","7439e787":"getUserValues(address)","743a3252":"addAddressAsMultiOwner(address,string)","743ab538":"validateNameSignature(string,uint256,address,string,uint8,bytes32,bytes32)","743b179e":"giveRefund(address)","743b8e1a":"ROHH(uint256,string,string)","743bd681":"OWNERS_AUCTION_CUT()","743bdcef":"MAX_WITHDRAW_PCT_TX()","743c006b":"iWantXKeys(uint256,uint256)","743c6775":"investorBaseInfo(address)","743c7f6b":"setPreSaleDate(uint256)","743e0c9b":"receiveTokens(uint256)","743e92ee":"getNode()","743f78ab":"WalletSet(address)","743f978f":"addValueToCovfefe(uint256)","74400873":"execute(uint256,address,uint256,uint256)","744013c4":"Gnome()","74418368":"getAdvertisementStorageAddress()","7441b8bb":"lockBalance(address)","7442f427":"subUserTokenLocalBalance(address,uint256)","74439ca7":"classic()","74449ca4":"getContentCount()","7444b006":"transferCopyFrom(address)","7444b227":"getMidgradeCarsForVariant(uint256)","7445690b":"getLotteryClass(uint8[7],uint256)","744598cd":"Phase1AccountTokensMaxUpdated(uint256)","7445af4b":"pay_by_bond_contract(address,uint256)","7445d659":"foreignBridge()","74467a1e":"FOR_SALE()","7446ce1c":"addJob(bytes32,uint256)","74478bb3":"isClaimable()","74479db0":"fcontr()","7448d386":"getStageData(uint8,uint256)","744927fd":"getWinnerWithRank(uint8)","744a8f77":"chefPrice()","744b4b3f":"createNormalBank()","744bb8d2":"crowdsaleHardCap()","744bfe61":"withdrawFunds(uint256,address)","744c7c7f":"proposeMinting(uint256)","744c8c09":"chargeFee()","744d0a92":"MINI_GAME_BONUS()","744d8b4f":"recordWin(uint256,uint256)","744f4994":"getBrickIdsByOwner(address)","744f5f1a":"modifyTaxRate(uint256)","744f7c7d":"toUint256Safe(int256)","744fa2c8":"submitTokenToEthOrder(uint128,uint128)","7451bf71":"admin_transfer(address,address,uint256)","745332fe":"getRestarTime()","74536403":"getAvar()","74539f98":"getEventResolvers()","7453a417":"__address4__()","7453cfa1":"EtherPaint()","7453de96":"approveTransaction(uint256,uint256,string,uint256)","745400c9":"requestWithdraw(uint256)","74544e2d":"setGrandFactory(address)","7454e74c":"setAudit(address,address)","74552650":"left95(uint256)","7456be7d":"rent(uint256)","7456f2b9":"getDistributionTime()","74573f80":"lastPlayTimestamp()","7457412e":"THIRD_PARTY_LOCKUP_ADDR()","7457a9e1":"Coupon(uint256)","74580e2f":"changeCreator(address)","745828ef":"ProofOfLongHodlV2()","74583772":"adminSendTokens(address,uint256)","74590f64":"setApoderado(bytes32)","745911d5":"getHolidayByIndex_(uint256)","745944d5":"setCampaignValidById(bytes32,bool)","7459a5e1":"KriptoPark()","7459f2a3":"registerArbiter(uint256,uint256,uint256,uint256,uint256)","745a8be2":"flip32(bytes)","745ab73d":"BrainIsToken()","745ce3bb":"iaInvestedBy(address)","745ced49":"CORE_TEAM_PORTION()","745cf221":"ArjunaCoin()","745d1d64":"ethCollector()","745dcd4d":"stop(string)","745e77f9":"_createAnimecard(string,string,string,string,uint256,address)","745e9da2":"GameProgress(uint256,uint256,uint256)","745ea0c1":"registerNameXnameFromDapp(address,bytes32,bytes32,bool)","745f2860":"_buyTokens(address,uint256,uint8)","74601c3c":"availableToMint()","746022c2":"oneGetMoneyBack()","74607d91":"patient(uint256)","74609d0c":"createDApp(bytes32,uint32,bytes,bytes32)","746178ed":"escrowTokensWallet()","7461dbff":"setOwnerAirDropRate(uint32)","7462260b":"KEM()","7462beec":"renewSubscriptionByDays(uint256,uint256,uint256)","7462e4f9":"Etheropoly()","74635cfc":"setMembers(address[])","74646086":"StreamityTariff(address)","7464d5d8":"rewardDistributionStart()","74651594":"tgeSettingsChangeRequest(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","746584b4":"setMintingContractAddress(address)","7465df26":"totalAccessories(uint256)","74664b34":"interestNextInPercent()","7466b2d0":"transferIsPossible()","7466e67d":"mintToOtherCoinBuyer(address,uint256,string)","7466ee48":"getAppAddress(uint32)","74674256":"temroyToken()","746796f0":"_setProfitSharingParameters(uint128,uint128)","7467af07":"EladToken()","7467bc92":"disbursementHandler()","7467bcd9":"minPaymentWei()","74689990":"schedulePayoutOraclizeCall(uint256,bytes32,uint256)","746a9af2":"printCertificate(string,string,string,uint16,string)","746abc79":"distributeRegistrationBonus(address)","746ac67e":"PCNCrowdsale()","746c9171":"m_required()","746d3024":"perPrice()","746df633":"getTeamBallers(address)","746eff8c":"_cancelRolePermissions(address,address)","746f79d9":"TIER2_PERCENT()","746fc8d0":"right47(uint256)","74703123":"proceedKYC(address)","74707e0d":"deleteWallet(address,address)","747082b9":"FsTKAuthorityChanged(address)","7470a835":"OliToken(uint256,string,uint8,string)","7470f760":"createTeamTokenByPercentage()","74711285":"restartSale()","74715432":"renounceAuctionManager()","7471ea81":"IPayX()","7471f6f6":"buy_beer(uint256,uint256)","747293fb":"addCaller(address)","74748460":"balanceOfAtInternal(address,uint256)","7474dfd0":"_getBetAmount(bytes32)","74754282":"manufacturer()","747586b8":"setInt(int256)","74759f43":"numberOfInvestments()","7475baa6":"AirDropPayBitsBounty(address[])","7476865f":"ToggleMaintenance()","74772667":"changeMinContrib(uint256)","74775cdd":"buyAtPrice(uint256)","74780111":"assertEq16(bytes16,bytes16)","747853bc":"test_validBoardFundTransfer()","74796cc2":"getPlayersInGame(uint256)","7479aa04":"getCurrentRoundStartTime()","7479b9ac":"founderToken()","747ad1c1":"getPeriodIdx(uint256)","747bcd72":"SCORE_UNITARY_SLASH()","747c1d87":"getInvestorsAmount()","747cb030":"SALE_3WEEK_BONUS()","747d6dd0":"_getCrabPartBonuses(uint256)","747dff42":"getCurrentRoundInfo()","747e0670":"UseWish(string)","747f3380":"phoneNumber()","747fc0d2":"maxReferrals()","7480a676":"Cryptosquirrel()","74816d1e":"webGiftUnTransfer(address,address)","74817d9b":"startPublicSale(uint256)","74818530":"Creedex()","7481a8aa":"TokenizedSplitter(string,string,uint248)","7482e533":"EventLuckyNumberRevealed(address,uint256,uint256)","7483883d":"getOrAddMasterWallet(address)","74845024":"scribes_hisory_length()","748467b9":"callBtcWithSto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","7486a8e3":"get_publisher(bytes32)","748837b2":"getIsBonusUnlockExempt(uint256,address)","74888914":"setHatchDurationMultiByGeneration(uint32[])","7488aa3c":"getNextBonusIndex()","7488ad7c":"minDepositInCents()","74891e1b":"getCoinAgeInternal(address,address,uint256)","7489308f":"lpTargetPosition()","7489472a":"step_pay()","748949e8":"setGalleryFourPrice(uint256)","7489ec23":"cancelOrder(bytes32)","748b659d":"pauseCollectToken()","748b95b6":"decimls()","748ce291":"addRewardforNewContributor(address,uint256,string)","748d071d":"seriesCreated(bytes32)","748d1078":"updateDukeHistory(string,bool,string,address,uint256,uint256)","748dd2fc":"GAME_TYPE_DICE()","748de225":"getFreezeAccount(address)","748de5d3":"UpdateAddressPayForService(address)","748e4f40":"sendTokensToTeam(address)","748ed9a8":"getTargetIncorrectDesignatedReportMarketsDivisor()","748efab5":"_copyToBytes(uint256,bytes,uint256)","748f0810":"ProposalTallied(uint256,uint256,uint256,uint256,bool)","748f7215":"getUnlocktime()","748fa599":"someUnsafeAction(address)","748ffa5b":"cei(uint256,uint256)","74900c92":"MINIMUM_ETHER_SPEND()","74912463":"tokenEmission()","74914710":"getCrySolObjectsByOwner(address)","7491ef60":"PrecommitmentAdded(address,uint256)","7492384a":"backTixOwner()","7493357b":"reservedOwner()","7493539b":"KOALAPROJECT()","74935f11":"PLS()","74942868":"rate8_end_at()","74942c0f":"tokens_received()","7494ad81":"judge(uint256,address)","749510d4":"BOUNTY_FUND()","749555cd":"toggleIsLive()","7495a1e4":"buyFor(string,address)","7497a061":"getAuthorDrawings(uint256)","749843ea":"setPlatinumAddress(address,address)","74991569":"setVestingContract(address)","74998f33":"Infinix()","749a47b7":"minPreviewInterval()","749aa2d9":"endRound()","749b7820":"canBuy(address,uint256,uint256,uint256,bytes8)","749be0c0":"GetTotalPot()","749c190b":"getHashsLength()","749ca1f3":"setGameOnoff(uint256)","749cab54":"setBlocks(uint256,uint256)","749db2f6":"Contract(string,string,address)","749dd65d":"_currentMonth2ndDayTimestamp(uint256,uint256)","749e8b88":"BUYPRICE()","749e93fc":"actualPriceDivisor()","749ea598":"leaders(address)","749f1bc3":"agendaOf(address)","749f9889":"changeAllowedRecipients(address,bool)","749fe7c4":"getPlayerEnergy(uint32)","74a042b5":"ClaimEthersEvent(address,uint256,uint256,uint256,uint256)","74a0cd8c":"getCombinedWarriors()","74a205d9":"ZIMBOCOIN()","74a25d43":"startAuction(uint256,uint256,uint256,uint64)","74a32dd7":"TotalAirdropRequests()","74a37efc":"setSalary(uint256,uint256)","74a3c5d5":"getVestingAmountByNow(address)","74a46050":"offer(address,uint256,uint256)","74a76649":"payTheWinner(uint256)","74a7d6b9":"initNewPlayer(address,bytes)","74a7d77c":"sellTokensNow(uint256)","74a814fe":"getGeneral(uint32)","74a85571":"addAccount(address,uint256,bool)","74a8f103":"revoke(address)","74a93e6c":"setTokenHolder(address,address)","74a9446e":"_removeAllActiveTasksWithHoles(uint256,uint256)","74a9ced9":"createPoll(string)","74a9e440":"createProposal(uint256,address)","74aa9e2c":"PRESALE_RESERVERED_AMOUNT()","74aac084":"joinDelta()","74ab3e4b":"updateCardStatistics(address)","74ac5bb4":"erc20KGS(uint8)","74ac6112":"HOPE()","74acb5d6":"isAirdrop(address)","74acf0b1":"communityDevelopmentWallet()","74ad74e9":"getMinLockedAmount(address)","74ae26f7":"checkReleaseAmount(address)","74af10cf":"setNeedToGetFree(uint256)","74af3ee1":"getTournamentState()","74b00a6c":"convertNums(uint256[])","74b04fa7":"setArtistAccount(bytes16,address)","74b10ae5":"checkWhale(uint256)","74b26fa1":"delegateReferralTokensBulk(address[],uint88[])","74b27b9b":"indexextend(address)","74b38531":"stopBet()","74b39158":"validateAttack(address,address)","74b3ee18":"getFlag(string)","74b433bd":"TOKEN_SUPPLY_MKT()","74b491ff":"airdropCurrentTotal()","74b527b0":"getMintedCounts()","74b5545a":"delCertAdmin(address,bytes32)","74b57486":"DebugContract()","74b58489":"setWeiMinContribution(uint256)","74b58ae7":"setCCH_edit_10(string)","74b5fb06":"_payout()","74b67b27":"GameCoin()","74b78b26":"payeth1(address,uint256)","74b799af":"disableEdition(uint256)","74b874a6":"liquidationTimestamp()","74b9dc6b":"assertEq9(bytes9,bytes9,bytes32)","74b9f229":"buyTokensPreSale()","74bb3cb4":"getOrderActualTotalRefundHelper(uint256,uint256)","74bd6261":"AdsVenture()","74bdb7ee":"createApprovalEvent(bool,address,address,uint256)","74bde311":"scheduleNewDerivativeToken(address,uint256)","74be3c7f":"TRONV()","74bfb965":"addNewProxy(address)","74bff257":"getCartItemInfo(address,uint256)","74c06f5d":"saleHasFinished()","74c1328a":"bytesToUInt(bytes)","74c13fda":"defaultToken()","74c1438c":"DeepGold()","74c166e9":"phase1MaxTokenForSale()","74c16b23":"registryAdmin()","74c1b1c9":"refundOpen()","74c1d7d3":"_best(address,address)","74c21059":"totalInvested(uint256)","74c272b7":"Begin(string,string)","74c40f2e":"dexTestTransferFrom(address,address,address,uint256)","74c42e5d":"setuserlevel(address)","74c43f26":"setFundariaBonusFundAddress(address)","74c57fa1":"LogTeamTokensDelivered(address,uint256)","74c65206":"Buy_Offer(uint256,uint256,uint256)","74c6bd74":"privateSaleLockEndTime()","74c77b52":"SetupToken(string,string,uint256,uint256,uint256,address,address,uint256)","74c80467":"createNewElections()","74c85591":"fundDepositAddress()","74c90d0d":"sellAllCookies()","74c950fb":"TOKEN_TOTALSUPPLY()","74c97c99":"manaToken()","74cad0b7":"ForTester()","74cb55fb":"fundsDistributor()","74cc991c":"getBetValue(bytes32,uint8,uint8)","74ccd7cc":"walletLock(address,uint256,bool,bool)","74ccf06f":"addParsel(uint256,uint256,address[])","74cd5a31":"HXTtoken()","74cd5c0b":"getOneWithdrawRec(uint256)","74ce52ce":"Kildoneum()","74ce9067":"isCommitPhase()","74ce97fe":"year3LockAddress()","74cf6f49":"withdrawNoLimit(address,uint256)","74cfa35f":"ambassadorAddressOf(address)","74d04f83":"addtoPrivateSale(address,address,uint256,uint256)","74d050fb":"cardNumbersOf(uint256)","74d15357":"virtualc()","74d16c37":"getAssetsValue()","74d1eb3f":"MANToken(string,string,uint256,uint256)","74d21ae0":"unlike(uint256)","74d301d6":"sizeBonus()","74d33745":"REAPER_INTREPID_FTL_SPEED()","74d3475c":"PowerofBubble()","74d393f0":"setValue2(uint256)","74d3b7cd":"LTR3Token()","74d42916":"IINEToken()","74d4ab27":"fipsRegister()","74d50c1c":"TOPB()","74d53cc2":"sendReferral(address,uint256)","74d55ceb":"Rhemaxcoin()","74d5e1ea":"setteam(address,uint256)","74d5f2aa":"BoxTrade()","74d618cb":"setTransferActive(bool)","74d699b6":"Sale(string,uint256,address)","74d6aa1f":"getOrCreateFeeWindowForForkEndTime()","74d76bc4":"_getGameInfoPart3(address,uint256)","74d88c50":"submitEthToTokenOrder(uint128,uint128)","74d89c47":"testUpdateNameDb()","74d8b268":"getGunByIdPart1(uint256)","74d9c2ef":"tokenTosale()","74da564f":"registerMeOnTokenCore(address,address,uint256,string)","74dacc7a":"m_attaching_enabled()","74daf5cc":"setValidPriceDurationInBlocks(uint256)","74dbe5e6":"GetSpud(address)","74dc1e04":"TokensDestroyed(address,uint256)","74dcfd37":"NotakeyVerifierForICOP(address,address)","74dd7be9":"setCompte_42(string)","74de4ec4":"addReward(uint256)","74de8caf":"ERC20transfer(address,uint256,bytes)","74de9ebb":"MintEvent(uint256,address)","74dfcabc":"changeFreezeTransaction(string)","74dff9d8":"stopCycle()","74e00730":"DISTRIBUTION_COMMUNITY()","74e048d5":"settleBetUncleMerkleProof(uint256,uint40)","74e09606":"setSignatureTimeout(uint256)","74e104d3":"BITWORKCOIN()","74e29ee6":"deleteService(uint256)","74e4435f":"getUserAddress(uint256,bytes32)","74e4f31d":"ZJLToken()","74e5530d":"testHasRole()","74e57397":"BrandUpdated(address,address,string,bool)","74e59296":"MYE()","74e5b122":"changeGenerator(address)","74e5b186":"_mint(string,address)","74e60a48":"cancelOrder(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","74e7493b":"changeRate(uint256)","74e74f24":"rulesProposal(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","74e8288c":"SaiContest_Gaia()","74e95828":"_distributeWinnerAndLandholderJackpot(uint256,uint256)","74e99f87":"AIWEBToken()","74e9e102":"GetTempStuffList(address)","74ea9437":"transferICOToken(address,uint256)","74eac2e6":"Beruqtoken()","74ead7b7":"unstakePrimordialTokenFrom(address,uint256,uint256)","74eb7c90":"withdrawSaleManagerBalances()","74eb936b":"ethQuantity()","74eb9b68":"isAccountLocked(address)","74ebe3ec":"isSet(address)","74ec8682":"walletForETH()","74ec89cb":"H2CToken()","74ecf4b5":"getWinningNumber(uint256)","74eead66":"SFT_PER_ETH_SECOND_EARLY_BIRD_RATE()","74eedd46":"fundingEndTime()","74ef109b":"ChinaLifeCoin(uint256,string,uint8,string)","74f0314f":"SECONDS_PER_DAY()","74f059ad":"dateDefrost()","74f0765a":"mintSeq(address[])","74f079b8":"txCounter()","74f12933":"devPaid()","74f1d6ce":"keccak(address,address,uint256)","74f28eaf":"_set11()","74f47a7a":"nextDrawTime()","74f519db":"setLastTimestamp(uint256,uint256)","74f569e7":"EriCoin()","74f61642":"rewardsRedeemed()","74f760e4":"WithdrawWinnings(uint256)","74f78412":"market_DeclareBid(uint256)","74f78437":"FD(uint256,string,uint8,string)","74f79c8e":"DEFROST_INITIAL_PERCENT()","74f8d96e":"getRevisionBlockNumber(bytes20,uint256)","74f8f7ac":"increaseUpdateMetadataCounter(uint256)","74f91b56":"setXTVNetworkContractAddress(address)","74fa01c9":"MilcToken()","74fa4874":"getResultStatus(uint256)","74fa98f5":"setInviteCodeFree(string)","74fb381a":"inject(address,address)","74fbbc86":"rate(uint256,uint256,string)","74fc27c1":"xfitcoin()","74fcd919":"tokenMsg()","74fd08cd":"whatSatoshiSays()","74fd6176":"removeBulk(address[])","74fe6dea":"nameCat(bytes5,bytes32)","74fe9247":"AddRevocationBounty(bytes32)","74fefa2c":"findEndpointByAddress(int256,address)","74ff2324":"requestMinimum()","74ff90ba":"Disbursement(address,uint256,uint256)","74ffdcd0":"WEI_PER_ETH()","75012c35":"setBonusTokenInDays(address,uint256,uint256)","750142e6":"totalReward()","7501f741":"maxMint()","750225d0":"completeSale(uint256)","750240a2":"setMaxResolvedAgonId()","75030996":"getServiceName(address)","7503af06":"Test9J()","7503cda7":"getLogOwnerAddr()","7503cda9":"thinkLength()","7503e1b7":"tournaments(uint256)","750446a3":"howManyTokensAreReservedFor(address,address)","750482ba":"ownersBalance()","75048ebd":"claimUnsold(address)","7504aaaf":"updateTargetedMoney(uint256)","75052882":"modifyProductPrice(bytes32,uint256)","75056811":"accountClaimedReward(address)","75067219":"MAX_UCCOIN_SUPPLY()","75071c4c":"founderFund()","750732ec":"addVineyardByRegulator(string,string,uint16,uint24,uint32,uint16)","7507b2e5":"OVOToken()","7507ba39":"remit()","750852b3":"test_invalidThrowWithAsserts()","7508f147":"setOperationalReserveAddress(address)","75090ebf":"changeDomain(uint256,uint256,uint256,address)","750a687c":"GetRevealBlock(bytes32)","750a96ac":"_createPermission(address,address,bytes32,address)","750c47a1":"TOKEN_PER_ETHER()","750c77cb":"AccountMinterRemoved(address,address)","750cae6a":"enableBetting_only_Dev()","750cc645":"_sendToken(address,address,uint256)","750dd523":"getContractCreationTxOrigin()","750e1f59":"transfer(address,uint256,bytes1[])","750e443a":"voteAgainst(uint256)","750e75d5":"distributeJackpot(uint256)","750ee24a":"changeIcoEndBlock(uint256)","750f0acc":"withdraw(uint64)","750f2d81":"ChangeFreezeTime(uint256,uint256)","750f7daf":"hashBiometricTemplates(string,int256,string,string)","750fd1d1":"startTimeRefund()","7510a98c":"updateConfig(uint32,int256)","7510c5a0":"encoding_description()","75114bcc":"addPhrase(string)","7511828e":"Laxz()","7511ef65":"setWithdrawAddr(address)","7512071b":"doApprove(address)","75121c2c":"FCOIN1448Token(uint256,string,string,uint256)","751318f4":"bountyAdded()","7513eaa7":"HolyCoin()","75143ef2":"mintFinished()","75151f6b":"addCountryCode(uint256)","751559e8":"transactionfee()","7515b583":"exchangeCoin(uint256)","7515b84a":"releaseRoto(address,bytes32,uint256)","75160a20":"pay_royalties()","751634d9":"ChangeRules(uint256,uint256,uint256,uint256)","751686f7":"_maint_setBlockLimit(uint256)","75172a8b":"reserves()","7517b57e":"withdrawTaxEarning()","7517ea47":"configureSale(uint256,uint256,address,uint256,address,address,address,address)","751823f2":"changePartnerCoinPercentage(uint256)","751827ac":"setRareAddress(address,address)","7518af71":"VGWToken(address)","7518fa98":"tokensContract()","7519dd8e":"starsOf(uint256)","751a0225":"addElement(address,bytes32)","751a2d06":"Token_4()","751a9108":"balancesof(address)","751c4d70":"contributeDelegated(address,uint256)","751ce8fb":"sendRewardBlockCDN(address,uint256)","751d9e65":"WALLET_FOUNDER()","751e1079":"compareAndApprove(address,uint256,uint256)","751ecea0":"FUTURE_DEVELOPMENT_POOL()","751ef753":"toggle(uint256)","751fef65":"sellUnit(uint256,uint256)","7520320f":"registerCustomer(address)","7520767f":"createNew(string)","7520bf60":"gas_price_max()","75218a54":"getUserReactionCount()","75219e4e":"transfer(address,address,uint256,bool)","75229e28":"lockcheck(uint256)","7522aff5":"rejectContract(bytes32)","752329ec":"retainedEarning()","7523a46e":"HARITECOIN()","75247ccb":"_calculateReward(uint256)","75250e85":"limitDateCrowdWeek1()","752551c9":"_END_DATE()","75257013":"appendToDistributionList(string,address,uint256,uint8)","7526f98c":"getMin(uint16[])","7527313d":"minedBlock(uint256)","75286211":"finalizeChange()","75288d95":"platformSupply()","7528a6ab":"icoPhase4Start()","75298734":"getShare()","7529b1d9":"upgradeHasBegun()","752a3df6":"transferIfHardForked(address)","752b016d":"DeletePatient()","752bacce":"getExecPrice()","752bece8":"Minus(uint256,uint256)","752bf6f8":"sale_pause()","752c5628":"callSend(address,uint256)","752c8777":"setArenaPool(address)","752d2bfb":"addDividend(uint256)","752d349c":"depthCheck(int256,int256)","752da85a":"endContribution()","752dd0dc":"unfreezeBonuses()","752dd635":"ETHButton()","752efafc":"TIER5_RATE()","752f3c8c":"relinquishOwnershipAddress()","752faa51":"setLockedGroup(uint8,bool)","752fc70e":"howManyEthersToChangeSymbolName()","7530b54d":"PRESALE_LEVEL_3()","7530d99d":"addForgivedChar(string)","7530fe1d":"getContractMessages(uint256)","753117ff":"stealTheLeek()","7531e032":"resolveExchangeAddress()","75321c35":"TransferAgentSet(address,bool)","75321c4a":"getOpen(uint256)","75322e47":"change(uint256)","7532b4ac":"percent(uint256)","7532eaac":"signedTransfer(address,address,uint256,uint256,uint256,bytes,address)","7532ef1c":"accRecive()","75335702":"GSDToken()","753384fa":"TOKEN_BONUS_RATE()","7534a714":"checkExpectedTokens(address[],uint256[],uint256)","75355e34":"giveExchangeRateAdvice(uint256)","7535679a":"faucet(address,address)","7535927a":"importAmountForAddress(uint256,address)","7535c930":"priorityCap()","75367ab5":"addToWinners(address,uint256)","75383265":"TON()","753868e3":"lockContract()","753899e9":"alive()","7539189c":"getData_3()","75395a58":"finalizeBlock()","753af202":"SpermToken()","753b0dc1":"createFashion(address,uint16[9])","753b8c02":"EthernautsMarket(uint256)","753c619c":"emitTransferEvents(address,address[],uint256[])","753ca259":"PiXS()","753cb4eb":"fetchVoteNumForCandidate(address)","753cba93":"isPlatinumLevel(address,string)","753d764c":"unlistSubName(bytes32,bytes32)","753d93e4":"changePlatform(address)","753ded15":"failsOf(address)","753e88e5":"upgradeFrom(address,uint256)","753ea1be":"_transferCoins(address,address,address,uint256)","753ed1bd":"ceiling()","753f313f":"setPOOL_edit_26(string)","753f416a":"send1(address)","75401eac":"_isSaleContract()","7540b097":"inflateCount()","75421e93":"buyIcoTokens()","75424253":"BoughtToken(address,uint256)","75426ec8":"tokenFulfillmentDeposit(address[2],uint256,uint256[8],uint8,bytes32[2])","75428615":"getCallData(bytes32)","7542890d":"editIt(uint128,uint64,bytes32[],string,string,string)","75432ec4":"setStorageFee(uint256,address,uint256)","75438e49":"fillGas()","7543af9c":"amount3()","7543e3f0":"setReferral(address,address)","7544ac1f":"CSAToken(uint256,string,string)","75456b49":"fillIndexedBidByAddress(address,uint256)","75457583":"Return(address,address,uint256)","7545c449":"confirmOrderCompletionByPatient(bytes16,bool)","7545f9a1":"processTicketBuying(string,uint256,address)","7546006b":"ContractCall(address,uint256)","754628d0":"cancelTopUpLimit(uint256)","75479c34":"newPlayer()","7547c7a3":"stakeTokens(uint256)","7548014d":"recoverOnlyOnChainFunds()","7548f65b":"END_AMOUNT()","754a347a":"transferViolated(string)","754a77f5":"fcc()","754ad981":"MoveFish(uint256,uint256)","754c175e":"getTip()","754c301d":"sumOfFreezing(address)","754c3957":"benecifiary()","754c67ad":"setTokedoToken(address)","754d71e7":"getCurrentBuyOffer(uint32)","754db89b":"gameExists(bytes32)","754dea40":"setBackendOwner(address)","754e1764":"DiceRoll()","754e1e8e":"invalidateEarlyPurchase(uint256)","754efc98":"throwOnGasRefundFail()","754f579d":"ownerSetGameName(string)","754f9b37":"BasicAccessControl()","754fd352":"addOwnerFromRecovery(address,address,address)","75504b6e":"getAwardCost(uint256)","75524ffd":"mintBase()","75526ed5":"setServiceAccount(address,address,bool)","7553044b":"setUserServerPermission(address,string)","75543074":"getOrganisation(uint256)","75545949":"countMails()","75545cb2":"processMyVestingRules()","75549490":"isEarlyBird(address)","7554fffd":"successFee()","75556e32":"totalMaxBuyin()","7555bfd7":"exchangeAndWithdrawToken(uint256)","7556c9e9":"SilentNotaryToken()","7556e07f":"hasRate()","75570ea7":"closeBets(uint256)","7557b2ae":"Advertisement()","7558d81e":"contractProgress()","7558d9a6":"wallet_Mini_Address()","75593a39":"fixPrice()","755a11dc":"winnersPot()","755a29f4":"set_minCWCsPerSaleMoreThan(uint256)","755a8d31":"getBattleTeamSize()","755b5b75":"setNumUnits(uint256,uint256)","755b9d63":"_addOrder(address,uint64)","755bdcc1":"completeTrade(address)","755c020e":"withdrawALTokenss(address)","755c30a4":"earlyInvestorsBonus()","755cc41e":"mintTimes()","755d43d3":"calculateAmountReceived(uint256)","755d766c":"s27(bytes1)","755d80ab":"MintDarioToken(int256,address,int256,uint256)","755d98a3":"getTotalDividendPool()","755db762":"addVestingAddress(address,uint256)","755dc018":"FANBASEToken()","755e3e28":"tokensAllocated()","755f047b":"projectDescription()","755f12db":"totalTokensSoldInThisSale()","755f99c2":"AddNewSmallContract(address)","755fa815":"getAllIndexesByAddress(address)","755fd25c":"mintEditionCards(address,uint8,uint8)","75608264":"get_hash(uint8,bytes32)","7560a8d9":"_devTokens()","7560cab5":"createListing(bytes5,uint256,uint256)","75619ab5":"setDistributor(address)","7562b0cf":"process(address,uint256)","7563113b":"mintPromoEtherBro(uint16)","7563c81f":"WorldBetToken()","75640ef3":"calculateTotalMinePay(uint256,uint256)","75643e1f":"setReward(uint128)","75659508":"hasPayroll(address,address)","7565a2b6":"transferTokens(address,address,uint256,uint256,uint256)","7565d2eb":"coinfabrikAddress()","7565ef66":"getTodayLotteryNumber()","75661f4c":"calcPlayerICOPhaseKeys(uint256,uint256)","75662b0e":"ChainSign()","75669274":"XXXToken()","75678491":"AMSBToken()","7568353c":"isKilled(uint256,uint8)","7568a9af":"claimNametagToken(address,bytes32)","7568d562":"AssetToken(uint256,string,string,uint8,address)","75698524":"UpdateUSDETHPriceAfter(uint256)","7569b369":"updateUnclaimedDividend()","7569b3d7":"contributorsCount()","756a288e":"getStageTokensSold(uint8)","756a515f":"test_insert_findNoHintUpdateTail()","756abb98":"timeSlicesCount()","756af45f":"withdrawBalance(address)","756afcab":"Mari()","756b1140":"Readings()","756b397a":"GainmersSALE(uint256,uint256)","756bae5c":"finish(bytes32,bytes32)","756bf6e9":"Popcore(uint256,string,uint8,string)","756d5e0d":"EvGroupChanged(address,uint8,uint8)","756dc34a":"PHASE_NUMBER()","756e15e5":"test_spamApproveAndFreeze()","756e8ed3":"innerGuess(uint32,uint16,uint32,address)","756f6049":"CORE_NAMESPACE()","756f7ce8":"fundariaStakesFrozen()","756fb8c9":"getOptionChain()","756feedc":"KingXChainToken()","75700437":"query1_withGasLimit(uint256,string,string,uint256)","757007f6":"CONFIG_MIN_VALUE()","757085e3":"fetchAllVoteResultForCurrent()","7570acd4":"indVesting()","75718e2c":"_increaseTotalDivis(uint256,uint256)","7571ca36":"getTerminated()","75724990":"addShareholder(address,uint256)","7572ead0":"halfyearteam()","7572f341":"subtractWee(uint256,uint256)","757387d0":"nextInListToReturn()","75749f52":"LOCKED_BOARD_BONUS_TOKENS()","757501c5":"districtsCore()","7575594b":"buyShip(uint16)","75759319":"wthdraw(address,uint256)","7575db0a":"invalidateCache(bytes32)","7575ecf6":"validateAndLower(string)","75765249":"saveLottery(uint32,uint256,uint256)","75766294":"teamPeriodAmount()","757765f8":"setMaxBuyLimit(uint256)","75776fa4":"createPromoPony(uint256,address)","7577732e":"createController(address,address[],uint256)","75780127":"testExecuteSellOrderShouldIncreaseBuyerTokens()","75785afc":"createDefaultGen0CobeFriend(uint256,address,uint256,uint256)","757861eb":"start_play_and_gain(string,string)","75790787":"getFeeCollectedByAsset(address)","75792f0d":"_transferToICAPWithReference(bytes32,uint256,string,address)","75794a3c":"nextTokenId()","75796f76":"setWithdrawalWallet(address)","7579f2c9":"ArollaToken()","7579fcb3":"mintPackSaleCard(uint8,address)","757a449e":"approveWithIndex(address,uint256,uint256)","757a5522":"channelPartTimeout(uint64)","757a61b9":"buyAssetPack(address,uint256)","757bd312":"getCrystalWrapper(address,uint256)","757be78e":"PlayersStorage()","757ccd3b":"canCreate()","757d9b97":"getTradeRate(address,address)","757de573":"setOwnerCut(uint256)","757dfdcc":"SafeWalletCoin()","757e5e73":"_giveShares(address,uint256)","757f70fb":"SAMPLEToken()","757f7302":"updateStateChangeAgent(address,bool)","75806e6e":"setIssuerDelegate(address)","75811c15":"ownerChange(uint256,address)","75812019":"getBurningReward(uint256)","7581a8e6":"enableBurning()","7581aa5f":"setActivityState(bool)","7581d62f":"genesisProtocol()","75821d21":"changeTokenWallet(address)","75829def":"transferAdmin(address)","75830463":"checkBetLowhigh(uint8,address,bytes32,bytes32)","758357b8":"fstPrice()","7583902f":"getProviderInfo(address)","7583a523":"maxEarlyPresaleEDUSupply()","75846a5e":"ZoueToken()","75849902":"forwardPurchaseFeesTo()","75854fbd":"b(bool,bool)","75862df4":"TokenWithEStop(address)","75864416":"MeritToken(uint256)","7586cd45":"getPokemonCurrentPrice(uint256)","7586fcc5":"AutoCoin(string,string,uint8,uint256,uint256)","75872a5a":"evolveMonster(uint256,uint16)","75874f3e":"Divineum(uint256,string,uint8,string)","758822e6":"checkForValidity(string)","75885f6a":"approveAndCall(address,uint256,bytes1)","758866f0":"TOSToken()","7588f82b":"currentVestedAmount()","75892cf1":"convert(address,address,uint256,uint256)","75894e8c":"getEntity(address)","758971e8":"ownerTakeProfit(bool)","7589ca40":"BCV()","758b31df":"premiumMod()","758b5172":"setPlayersPerRound(uint256)","758befae":"tokenPresaleCap()","758e08d0":"Authorization(address)","758ed826":"addDAppContract(address)","758f39b8":"verifyProofOfStake(address,bytes32,uint64,uint256,bytes32[],uint256[],uint256,uint256)","758fabcd":"MAX_CONTRIBUTION_SLOTS()","759014f0":"getChallenge()","7591dfa0":"dmlToken()","759234ec":"POLE()","759242fd":"WorldReserveCurrency()","75924b95":"changeWinConfig(uint8[],uint8[])","7592550b":"transferHomeViaRelay(address,uint256,uint256)","759343d4":"sendTo(address,bytes,uint256)","7593473c":"set_brain(address)","7593ca71":"setExchangeInterval(uint256)","75949c13":"sendHalf(address)","7596732f":"MorzeF()","7597eede":"isHoliday(uint256)","7597fd6b":"escape(uint32,int256,uint32)","7599609d":"getEventForHousePlaceBet(uint256)","7599f8d9":"private_setRandomAPIURL(string)","759a2753":"StakeIncreased(string,address,uint256,uint256)","759b2ac4":"removeRole(uint256,address,uint256)","759bca86":"TEMWallet()","759c01dc":"SonDepTrai()","759c676d":"removeAddressToWhitelist(address)","759c7a58":"setAdOwner(uint256,address)","759e6558":"changelp9(address)","759f0914":"createObject(string)","759f8712":"nonActivationShortWithdrawal(address[2],uint256[8],uint8,bytes32[2])","75a0a7a4":"generateNumberWinnerQuery()","75a0ff93":"BTKToken()","75a2b407":"createPromoFighter(uint256,uint8,uint8,uint8,uint8,address)","75a35191":"Travelercoin()","75a374ee":"transferMined(address,uint256)","75a3eac0":"checkExistsOwnedAngel(uint64)","75a4894b":"setReaderId(bytes32,bytes32)","75a4e3a0":"unlock(bytes4)","75a52506":"display(bytes32)","75a53a8f":"changeTrusteeOwner()","75a5425a":"DTesh()","75a55a44":"CR7()","75a5b1ab":"registerDuration()","75a5ba80":"delegateDklSiringAuction(uint256,uint256,bytes,uint256)","75a66774":"stampDocument(bytes32,uint256)","75a6a332":"testThrowRetractNotRetractable()","75a6dbda":"delAdminUsrs(address)","75a73ed3":"createMessage(bytes32)","75a747dc":"_mint(address,uint256,bytes32)","75a75ba9":"TRANSFERS_ALLOWED()","75a806cd":"transferLoss(uint256,address)","75a88bcf":"getPreClaimTimeStamp(address)","75a90144":"voterExists(address)","75a90e02":"readisnameregistered(string)","75a949a3":"transferBlocToUsers()","75a94af5":"JadetToken()","75aa39bd":"getTeamScore(uint256)","75aa8705":"begin(bytes32)","75ab9782":"tokensToSend(address,address,address,uint256,bytes,bytes)","75ac3b08":"presaleEndBlock()","75ace438":"setRdCollectorAddress(address)","75ad319a":"makeLiquid(address)","75ad31a0":"vesting1Withdrawn()","75ad4787":"_processRefund(address,uint256)","75ad97bb":"_initSpaceship()","75ada3d3":"getLicenseReimbursement()","75ae267d":"setCanTransfer(bool)","75ae51ce":"minForceOffsetAmount()","75aecd8d":"ContributionAdded(uint256,address,uint256)","75af370f":"ChainToken()","75af65d1":"discounts()","75b03941":"retrieveGains()","75b0d9cd":"totalSupplyOf(uint256)","75b1e894":"ProposalLog(uint256)","75b238fc":"ADMIN_ROLE()","75b3a83e":"START_ICO_TIMESTAMP()","75b3ea8e":"calculateExcessTokens(uint256,uint256,uint256,uint256)","75b3f9f5":"currentRateLevel()","75b44aea":"getEthRate()","75b466d1":"sendOrderedTokens()","75b4d78c":"bonus()","75b5243d":"editBasePrice(uint256)","75b599c0":"changeFashionAttr(uint256,uint16[4],uint16[4],uint16)","75b5ec08":"DcatNetwork()","75b65abf":"claim(uint16,uint16,uint16,uint16)","75b77c4b":"PRICE_MAX()","75b88b82":"Beebit(bytes32)","75b8fa6f":"contractMoneyBalance()","75b91305":"_removeDeposits(address,uint256)","75b94133":"validatorReward()","75b975b7":"askArbitrator(address,bytes32)","75b99fb1":"HonestisnetworkICObalances()","75b9b357":"updateData(uint256,string,string)","75b9c384":"UpdatePay()","75b9fd47":"BuyAcorns()","75bac6fd":"getLastDeedTimestampByAddress(string)","75bae755":"AariTestToken()","75bba189":"setModerator(address)","75bbc15d":"isNeedDrawGame(uint256)","75bbc204":"addJackpotGuaranteed(uint256)","75bc369a":"_triggerCoolCountDown(uint256)","75bcf09f":"getFibo(uint256)","75bd3237":"listingExists(bytes32)","75be5846":"unlockForever()","75bedf12":"valueOf(uint256,uint256)","75bf4777":"Presale(address,uint256,uint256)","75bfb140":"teamInstantSent()","75c0ae13":"getSalaryTokenAddress(address,address,uint256)","75c14f7d":"buyoutAndSetReferrer(uint256,bool,uint256,uint256,address)","75c268f3":"rateFeesDenominator()","75c26c3f":"closeCrowdfund()","75c3039c":"finalizeCapReached()","75c34d94":"BitcoinElena()","75c48942":"restrictedVault()","75c4a4d6":"isClaimable(int8)","75c4aaa6":"addUnderDog(uint256)","75c4e9ec":"token_reward()","75c589a0":"getMinimumCallCost()","75c5efd8":"teamFundsAddress()","75c66e2f":"mintTokens(uint256,uint256,address)","75c69e39":"SOLUSCRSToken()","75c7d4e1":"sellMyTokensDaddy()","75c81ad0":"minProfit()","75c8a66e":"MANHATTANPROXY7THST()","75c8f04b":"addTenant(address)","75c9c4a4":"SQUIRREL_BASE_REQ()","75c9ee06":"teamFrozenTokens()","75c9f351":"maxTokenNum()","75ca1fad":"setcommissionPer(uint8)","75ca3b2e":"getKittyInfo(uint256)","75cb1bd1":"setWallets(address,address,address)","75cb2672":"configure(address)","75cbe239":"rulesProposals(uint256)","75cc21bd":"LogInvestshare(address,uint256)","75cc499f":"LogTokenPurchase(address,uint256,uint256)","75cc90b3":"ADMINS_COUNT()","75cd109a":"BurnSplit(uint256)","75cd51ed":"accountExists(address)","75ce2913":"pushOwnedToken(address,uint256)","75ce738e":"base_token()","75cf567a":"TOKEN_RATE_15_PERCENT_BONUS()","75cf77fb":"buyPoohs()","75d04628":"updateMatchStartTime(uint8,uint256)","75d049bb":"ApplyDividentsMultiplicator()","75d0c0dc":"contractName()","75d14478":"Chi_available()","75d16a1e":"JaxBox()","75d1722d":"_cancelOrderWithPayer(string,address)","75d2fd7f":"setERC20compatibility(bool)","75d32381":"Gave(uint256,address,address,uint256,uint256)","75d3bda6":"Product()","75d4066d":"getKeccak256(string,string)","75d4115e":"orderSubmitter(bytes32)","75d427e2":"greaterHash(bytes32,bytes32)","75d53a73":"approveMe(address)","75d57f44":"Benable()","75d5a7c6":"torchContractBalance()","75d60ba1":"PayToContract()","75d7036b":"getOuvidoriaEnteTipo(address)","75d7348a":"makeReferalBonus(uint256)","75d74f39":"get_s()","75d79399":"LogNotifyOfArbitrationRequest(bytes32,address)","75d7e4bd":"hydroTokenAddress()","75d7e8ea":"canTransferIfLocked(address,uint256)","75d9085a":"buyCardXname(uint256,string)","75d91db8":"cancelAuctionByMaster(uint256)","75d955f7":"realWorldPlayerMetadataForPlayerTokenId(uint32)","75d96718":"RELEASE()","75d9aa1a":"migrateFromLegacyReputationToken()","75da33bd":"tokpereth()","75dbc1aa":"LiquidHome()","75dc6471":"getSalesCity(uint256)","75dc7d8c":"calcFee(uint256)","75dcb701":"getBonusTierCount()","75dcb70a":"updateEditionTokenURI(uint256,string)","75dd3799":"NetWexCoin()","75dd82b8":"setPreMineAddress(address)","75ddbc4e":"setBalanceOfPendingToken(address,uint256)","75ddfa11":"ChannelBought(string,address,address)","75deadfa":"endTimes()","75df1fe8":"lockReleaseDate1year()","75df9fdb":"backVISTAcoinOwner()","75e01780":"startExchange()","75e0747e":"referrerBonus1()","75e2f405":"product1_luckybuyTracker()","75e2ff65":"setMigrationAgent(address)","75e3661e":"unblacklist(address)","75e372f2":"BlocklancerDataHolder()","75e3921c":"ETH_VTA()","75e39f26":"getHeroInfo(uint256)","75e3e4d4":"_sendTokens(address,address,uint256)","75e42744":"balanceOf(address,bytes32,address)","75e456c3":"validInvestment()","75e5598c":"ACTION_KEY()","75e6f675":"redemptionPercentageOfDistribution()","75e87642":"getRoundBetAmount(uint256,uint256)","75e88e3a":"getForceOffsetBooks(address)","75e8b1a3":"changeWithdrawnTime(uint256)","75e8f289":"depositWalletAddress()","75e8f757":"ERC20PreICO(address)","75e96908":"saveLifeEvent(string,string,string)","75e9c91f":"dropNectar(address[],uint256[])","75e9e3e2":"Ldt()","75ea1b68":"completeDeliverable(bytes32,address,address)","75ec899a":"addBodyParts(uint8[])","75ed5604":"referralLinkRequirement()","75ed8f89":"tOS(address)","75ee549c":"seteUSD(address)","75ee7315":"IcoPaused()","75ee85bd":"salsa20_8(uint256,uint256)","75eeadc3":"hasWon(uint256)","75f0a874":"marketingWallet()","75f12b21":"stopped()","75f208bf":"testFailCreateWithParentNotInUse()","75f289bc":"setDiscountBonus(uint256)","75f2e45d":"charityPayed()","75f33ed6":"EtherReceival(address,uint256)","75f40f40":"underdogPayoutFund()","75f41f4a":"initExchangeUser(uint256)","75f45878":"scheduleCall(bytes,bytes,uint256)","75f46563":"setVLTMultiSig(address)","75f6641f":"GoldBackedToken(address)","75f7cc4a":"PeriodStarted(uint256,uint256,uint256,uint256,uint256,uint256)","75f7d866":"tokenReserved2Deposit()","75f7e6f0":"saneIt()","75f829a9":"BetAccepted(uint256,uint8,address,uint256,uint256)","75f890ab":"setContract(address)","75f91ec8":"getTokenAmount()","75f96ead":"Guess(uint256)","75f9ae86":"setCertificateSigner(address,bool)","75f9e6da":"initialIssueMintingDate()","75fa1bd3":"_reserveTokens(address,uint256)","75fc8e3c":"goodbye()","75fcc6f1":"OWN_burnToken(address,uint256)","75fd4c23":"test_basicUnitTest()","75fd776a":"STRATEGIC_PARTNERS_POOL_ALLOCATION()","75fda973":"tokenDistributeInDividend()","75fe06dd":"claimXmasGift(address)","75fe2cb8":"setDnaExist(uint64,bool)","75fe2e33":"getMonsterObjId(address,uint256)","75ff0664":"ERC223TokenMock(address,uint256)","76005c26":"fulfillData(uint256,bytes32)","76014a2d":"senderETH(address)","760163af":"getLastGames()","76017bbd":"getRewardWei(address)","7603ac4b":"registerFileClosing(string,uint256,string,string)","7603b02d":"houseCommission()","76041376":"devTeamAddress()","76045702":"AcceptsDividendFacial(address)","7604b6d7":"testGetBlobStoreFromFullBlobId()","76052df8":"setPurchasable(bool)","760672df":"weiToTokensAtTime(uint256,uint256)","7606f781":"getMetrics()","7607422a":"CSCS(address)","76098303":"futxMiner()","7609c5a9":"transferFromToICAP(address,string,uint256)","760a221c":"LOCK_RELASE_TIME()","760a45cf":"lockStrategy(address)","760a812c":"ChangedNeighbourReward(uint256)","760a8c2a":"setActive()","760ac21b":"testFailBadTransfer()","760b8f62":"bonusAll()","760bb006":"isUser(bytes32)","760c1fa3":"loadX(uint8[],uint256,uint256,int256)","760cd8e1":"transferAgent()","760cfa57":"GeneratedERC20Contract()","760df4fe":"_isCarousal(uint256)","760e2cf3":"buyUpgradeCard(address,uint256,uint256)","760eab1a":"ZodiacCore()","760ee49c":"setCurrentState(bool)","760f7382":"shipTokens(address,uint256)","76102b3c":"PRICE_PRESALE_WEEK3()","76105fe7":"tarifOf(address)","7611f50d":"periodStage()","7612115d":"setTokenPartner(address)","76124dac":"vote(bytes32,uint256,address)","76124db7":"Update_TrustlessTransaction(uint256)","761390b9":"BCX()","76147a0e":"notification(address,uint256)","7614e727":"baseMineTokenAmount()","761522af":"TradeBits()","76164085":"seek(int256,int256,bool)","76165adf":"buy(address,address,uint256,uint256,uint256)","76167a89":"getMessageSender()","7617f814":"sumPreICO3()","7617fbbd":"PreOrder(address,address,address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256)","76190f8f":"isSiringClockAuction()","76192200":"finishMinting(address)","7619317b":"redemptionWallet()","76196c88":"setDnsrr(bytes32,bytes)","76197591":"finalizedICO()","7619d22e":"LEGAL_EXPENSES_2_TOKENS()","761a832f":"setBaseRewards(uint256,uint256)","761aef78":"BuyTicket()","761b59ac":"crabPartDataFromGene(uint256)","761ba894":"getPremiumMultiplier()","761bb70a":"train3(uint256,uint256)","761c1cf9":"SetupGWT(string,string,uint256,uint256,uint256,address,address,uint256)","761c3688":"remark2()","761c4524":"SHARE_TEAM()","761c7cfe":"resolveChallenge(uint256)","761d9e68":"getUserPolicy(address)","761dc416":"Megaton()","761e0d2d":"DEFAULT_MINING_BIT()","761e64c4":"setPI_edit_31(string)","761fe6fe":"totalAmountsBetStage1(uint256)","76207a5b":"getOrderInfo(bool,uint256,uint256)","7620a65b":"Publisher()","7620f4bb":"fipsNotaryLegacy68b4()","76227f3b":"burnAdminAmount(uint256)","76235b49":"getUUIDS(bytes32)","76247776":"getDirectory()","762506b6":"lrs(uint256)","7625391a":"distribute(uint256,uint256)","762549e0":"minThresholdUnits()","76266ce9":"logResources()","76271346":"_parent(uint8)","76278e7b":"limitDatePresale()","7627c9ad":"grantTransferRight(address)","7627e941":"validateOrder_(address[7],uint256[7],uint8,uint8,uint8,bytes,bytes,bytes,uint8,bytes32,bytes32)","76285b5b":"_is360thDay()","76289f71":"setMasterAddress2(address)","7628e728":"PRE_ICO_TILL()","7629cca0":"ContractDisabled()","762a4f35":"updateClosingTime(uint256)","762a66a2":"getAuction(address,uint256)","762ac19d":"startICOPhaseOne()","762c38fd":"askQuestion(uint256,string,address,uint32,uint32,uint256)","762c7ab2":"setPercentForHelpCoin(uint256)","762ced87":"prcntRate()","762d739a":"vigencia()","762e3816":"TOURNAMENT_WALLET()","762ede1e":"ETHCONEarlyBirdToken()","762fdc0c":"getRatePlan(uint256,uint256)","762ffc42":"VanityReserved(address,string)","76305a89":"CoinCrowdICO(address,uint256,uint256)","763091ff":"initCreator(uint256)","76309e70":"CTT()","7630ad34":"getInfoD(uint256)","76319190":"removeSupportedToken(address)","76323253":"createRounds(uint256)","76324597":"dropStart()","763250e1":"GizerToken()","763265de":"setMaxCap(uint256)","7632b18b":"WICCrowdsale(address,uint256,uint256,uint256,address,address)","76338028":"functionCalls(bytes32)","763430b8":"mFUNDING_SALE_TIMESTAMP()","7634d45d":"titlesSold(address)","7634ecc0":"debitEqually(address[],uint256)","7634ed39":"saveNewAnchor(bytes32)","763542ce":"BucketBuy(bytes32,uint256,address,uint256)","7635761b":"getusersCount()","7635e1de":"changeTokenManager(address)","7635e409":"createZombie(uint8,bytes32,uint16,bool,address)","763730bd":"whitelistAddresses(address[],uint256,bool)","76375c5c":"splitterContract(address,uint256)","763770d2":"getTokensManual(address,address)","7637a12e":"GoldmintMigration(address,address)","7637da03":"MINER_STARTING_PRICE()","76385f2a":"PeriodOfAccount(address,uint256)","76389260":"EthlanceSearchFreelancers(address)","76390144":"getCorrectedStats(uint256)","76399bc6":"getFoundtionAddres()","763a6390":"setWeightLostPartLimit(uint8)","763a666a":"withdrawLiquidityPoolTokens(address,uint256)","763a738c":"allNames()","763ac589":"createStake(address,address,uint256,uint256,bytes)","763add8f":"KPCS(address)","763b144e":"EmpireCrowdsale(uint256,uint256,address,uint256,uint256,uint256)","763cbde0":"_addPassportLogic(string,address)","763cf9aa":"feed100(uint256)","763d2500":"getTotalNbOwners(uint256)","763e29ad":"CherishToken()","763f337e":"setAllowReferral(bool)","763f4011":"mintMarketing(address,uint256)","763fd2ab":"TOTAL_PRESALE_TOKENS()","763ffcec":"setupDisbursement(address,uint256,uint256)","7640304d":"_lastSnapshotId(address)","76405122":"buyImplementation(address,bytes32,uint256,uint8,bytes32,bytes32)","76418809":"private_withdrawBankFunds(address)","7641a8c6":"SetFinalBlock(uint256)","7641e6f3":"burn(uint256,string)","76421887":"OWNER_LOCK_BLOCKS()","7642249c":"mintadd()","76429844":"MultiSendToken()","7642dc0f":"calcVesting(address)","764300bf":"ALLOC_MARKETING()","764358e6":"logSweep(address,address,uint256)","764423a4":"buyerAddressTransfer(uint256,address,address,address)","764499e5":"GamePlayed(bytes32,bytes32)","7644d361":"hashMessage(string,string,string,uint16,string)","7644ecbf":"BallotO(address[],uint256[])","76456887":"startSecondPhase()","76466d42":"setAllowedContract(address,address)","7648c929":"returnRemainingEther()","7648f99b":"ProposalSubmitted(uint256,uint256,address,uint256,uint256,string,address,uint256,uint256)","764912ef":"totalTokenCount()","76495ce7":"tokensFor1EthP4()","76496e34":"earlyCommunitySupply()","764ab11b":"WalletV2(address,address)","764b08c3":"STATS_SIZE()","764c499b":"contract_terminated()","764c6dd3":"voteToFreeze(address)","764c86bd":"totalDistanceRun()","764c8e54":"depositBoth(uint256)","764c92f2":"trustedOrderTransfer(address,address,uint256)","764c98c1":"getIntArrayDynamic()","764c9d32":"sleepContract()","764d1e04":"getFreelancerParams()","764d9969":"XubiToken()","764e50eb":"priceUpdated(uint256,uint256,string)","764e5cd9":"getSkills(address,uint256)","764e971f":"add(uint256,bytes32)","764ea3fe":"walletEhterCrowdsale()","764f3aa8":"getTokenBalances(address)","764fe7d1":"totalMiners()","76520713":"setLock(string,bool)","7652ce3b":"getRoot(uint64,bytes)","7653740f":"addCbAddress(address,bytes1,bytes)","765388ae":"createCrab(uint256,uint256,uint256,uint256,bool)","7653d31c":"_clearQueue()","7653f795":"CarTaxiIco(address,address)","7655e825":"unsafeWriteUint8(uint256,uint8)","765718d7":"register(uint256,bytes)","76577eae":"distributeEarnings()","76586bcb":"doWithdrawal(address,uint256)","76587847":"buyDepots(uint256)","76587921":"transferFromWithNarrative(address,address,uint256,string)","7658c574":"setQuantityFactor(uint256)","7658d5ef":"totalICO()","76596a1a":"hasTeamMember(address)","7659de23":"snapshotBlockHeight()","7659fd71":"BitcoinProtocol()","765aa39e":"startMulti()","765af8bf":"getNumArtworksXType()","765b59d2":"getStatus(uint256,address,address)","765b8dee":"transferStep2(address)","765bfac6":"setEscuela(uint256)","765c9c7f":"bionic()","765dd7a0":"addTeamAddress(address)","765e0159":"getNext(address)","765f09f2":"GetCurrencyInformation(uint256)","7660473a":"EconomyTaxed(string,string,string,string,string)","7661129e":"updatePromoEthCommission(uint256)","76617156":"burnAmountAllowed(address)","7662850d":"init(uint256,uint256,uint256,uint256)","7662c9a7":"GetAskSeries(address)","7663265c":"_setGameSettings()","76636e73":"PREICO_BONUS()","76637dcd":"WhoIsTheContractMaster()","7663f171":"getCardIndexOfOwner(address,address)","7663f228":"testBurnThis()","7663f822":"exists(address,address)","76640648":"payforRefund()","7665f6a7":"setTransferOwnership(bool)","7666ee8f":"addCustomerToRegistry(address)","76671808":"currentEpoch()","766719f0":"optInXferGas()","766954b4":"hashString(string)","7669c0c4":"showPhaseCount()","766a3f2e":"Security_ConnectBankAccountToNewOwnerAddress(uint32,string)","766b0823":"addWhiteBackersByList(address[])","766b1818":"PYCToken()","766bd930":"Duanwu()","766d30aa":"setDefaultRecommAddr(address)","766d5235":"isOpening()","766d8365":"resetRoundStartTime(uint256)","766e33f4":"releaseStart()","766e4f2c":"issueTokensToUser(address,uint256)","766e866c":"setMaxGasRefund(uint256)","766e8b27":"tokensaleTokensPerEtherNow()","76703ef1":"AVIU()","767180d0":"impl_purchase(address,bool,bool)","767392b3":"equal(bool,bool,string)","7673faf0":"wallet4()","76740de0":"isPlayer()","767418b0":"alterBalance(uint256)","76745dbb":"increaseTotalStake(uint256)","76748f2a":"default_price()","7674cee3":"paymentMin()","76753b04":"ledgerUserBetContribution(address)","76775c10":"addReferrer(address,uint256)","76779829":"randomC()","767800de":"addr()","7678369a":"dayfund(address)","7678473d":"BTCDOGE(uint256)","7678f8bb":"getBid(int256)","76793f47":"kwhFund()","7679a816":"handleFund()","767a11ca":"verifiedAttributes(address)","767a99ee":"legalContract()","767b6190":"constructor(uint256)","767b79ed":"register(string,uint8)","767bc136":"cards_titanium_total()","767bcab5":"setRandomizer(address)","767c732e":"enterBidForCollectible(uint256,uint256,int256)","767c9d18":"getMigrateInAttoTokensValue()","767d65ba":"ASEChain()","767eb651":"getRemainingAmount(address,address)","767eb8ad":"isValidName(bytes16)","767f0215":"MAIN_SALE_BONUS_PERCENTAGE_PHASE3()","767f61ac":"putTitle(bytes32,string,bytes32,bytes32,bool,string)","767f7b01":"User(string,address)","767fa723":"getPresaleInfo()","767fb1c4":"RecoverableController(address,address,uint256,uint256)","76809973":"BeneficiaryChanged(address,address)","76809ce3":"decimal()","76814692":"BusToken()","76823637":"startNewTurn()","768255ca":"TokitRegistry(address)","7682e6ff":"getTrustSetting(address)","768356c1":"TUI_ADDRESS()","768433c2":"topFab()","76849376":"addNode(bytes32,address)","768549aa":"KpopItem()","76855764":"enableSudo(bool)","76858faf":"ViralToken()","7685e1df":"NPTToken(address)","7686136a":"updateCourseRate(address,uint256)","76865eea":"unHalt()","7686cea9":"etap()","76884153":"AirTransfer(address[],uint256,address)","76888a3e":"TheTokenF()","76890c58":"transferOut(address,uint256)","76894bd9":"tokensToEthereum(uint256,uint256)","76897b90":"setReserved(uint8,uint8)","768a3326":"myxTest()","768a3a7d":"GetSender()","768afcec":"buyKeys(uint256,string,string)","768b4ce0":"updateWorldScore(uint256,uint256)","768bd5cd":"THULYA()","768c326d":"validatePhaseDates(uint256,uint256)","768c9af4":"Approval(address,address,bytes32,bool)","768e7220":"ownerLockedBalance()","768f930d":"checkSignersByAddress(bytes32,uint256,uint256,uint256)","76907bc7":"setCoinBalance(address,uint256)","7690bee4":"NextGenHyip()","7690ed70":"_changeLockDate(uint256)","7691471c":"PRE_SALE_TOKEN_CAP()","76917b68":"updateMC(uint256)","76918f5d":"setAdPriceMultiple(uint256)","76922f78":"auctusPreSaleAddress()","7692ac94":"createEtherMonster(uint256,uint256,uint256)","7692ba9a":"claimOwnership(string,string,uint256,uint256)","7692c4d8":"testCantFinalizeNotEndedSale()","7693488b":"finalizeTokenSale()","76937a3f":"airDropCustom(address[],uint256[])","7694df16":"scaledRemainder()","76959b6a":"hasSDC(address,address,uint256)","7695be1d":"DaleOR()","7695d79b":"nftTokenCount()","769643bc":"reclaimTokenOwnership()","76965867":"getStakedBalance()","7696c042":"secondsPerMonth()","7696cf52":"bonusFirstWeekPeriod()","7696f0db":"frozenCellCount(address)","769794dd":"TildeCoin()","769796fe":"resetAction(uint256)","76992d7c":"SettingsChanged(uint256,uint256,uint8,uint8,uint8,uint8,bool)","769988b3":"p_update_mEmpireScoreMultiplier(uint256)","76999896":"KingOfTheEtherThrone()","769af180":"EGGS_TO_HATCH_1BAT()","769bf742":"unregisterRecord(bytes32)","769c9226":"setLockAll(bool)","769db61d":"addNewCard(uint256)","769dc523":"GetCategoryNumber(bytes4)","769e86cd":"getMyAccountBalance()","769edf6a":"createHash(uint256,address)","769f194f":"FOUNDERS_TOKENS_VESTED_2()","769ffb7d":"setDirectMintAgent(address)","76a04af5":"CompensateChips(address,uint32[])","76a133ca":"KabirTestToken2()","76a24f25":"originalPrice()","76a25c5c":"calculateReward(uint256,uint256,uint8)","76a310a5":"addAuction(uint32,uint256,uint256,uint8,uint32)","76a327fc":"hitMobster(uint256,uint256)","76a3f9c9":"addToWinningsArray(uint256,address)","76a43abc":"_createPony(uint256,uint256,uint256,uint256,address,uint16)","76a4a44d":"AssignGGEPoolOwner(address)","76a54c60":"sendEth(address)","76a5b431":"removeTip(address,bytes32)","76a5b5b9":"LogTransfer(address,address,uint256,bytes)","76a64cbf":"BasicToken(string,string,uint256,uint256)","76a6676a":"IssuerTransferred(uint256,address)","76a67a51":"pause(address)","76a684de":"denyAllowanceProxyAccess(address)","76a6bf52":"isExecuted(uint256)","76a766f7":"Dashgold()","76a85d54":"setExchangePrice(int256)","76a8bc10":"setExpiry(address,uint256)","76aa2f74":"increaseJackpot()","76aad651":"paymentSupply()","76ab5ea6":"changeDifficultyAndPrice(uint256,uint256)","76aba714":"refundMany(uint256,uint256)","76abc03b":"getShareDistribution(uint256)","76ac2323":"WinkSale(uint256,uint256,uint256,address)","76acb5e8":"BuyTicket(uint256)","76acb968":"TESTTOKEN1()","76ad3abf":"unregisterTraderAccount(address)","76ae684d":"setSaleOngoing(bool)","76aed2e1":"getTokenType(uint256)","76aef5e0":"doubleSend(uint256,address)","76af7837":"Loss(address,uint8,uint256)","76af9a1a":"balancePreSale4()","76b07186":"isPass(address)","76b088a9":"check_lock(address,address)","76b1514f":"getMaxFreeTeams()","76b15836":"changeStatusModerator(address,bool)","76b18618":"changeUnitsOneEthCanBuy(uint256)","76b1f3d3":"grantAccessToAddress(address)","76b3131e":"createvillage()","76b33367":"refundsIssued()","76b34d2f":"changeCrowdsale(bool)","76b39cf9":"activateInTestMode()","76b3c8a8":"getLotteryInfo(uint256)","76b547b8":"AthaYOGAToken(address,address)","76b5d926":"unreserve(uint256)","76b63576":"mintFounderTokens()","76b69d77":"apiRegistryContractAddress()","76b707b7":"getRelease()","76b95761":"setVestingStartDateTime(uint256)","76ba242c":"bonusTokens()","76ba6009":"approveRequest(bytes32)","76babef7":"Puzzled(address,bytes32,bytes32)","76bc21d9":"fireEventLog2Anonym()","76bc522c":"getZIndex(uint16)","76bd28bf":"ORNETCOIN()","76bd4220":"depositBank()","76bd4d2d":"submitProblem(uint256)","76bd5f3c":"changeMintedCappedIdx(address)","76be0b89":"HIROTOKEN()","76be166c":"toAsciiString()","76be6c24":"mintLVE(address,uint256,uint256)","76bef6b4":"getOneByOneRootHash(uint256)","76bf2392":"getCurrentDisplacement()","76bf8044":"pledge(bytes32)","76bf9f57":"wildcardCount()","76bfa5f6":"ProvideSale(address,address)","76bfba56":"depositForDividend(uint256)","76c158cf":"minBankerEther()","76c2c0aa":"oresLeft()","76c2c296":"SYSTEM_CREATION_LIMIT()","76c2f9e7":"HitToken(string,string,uint8,uint256,address,address,address,address)","76c30794":"mint0(address,uint256)","76c390fe":"Display()","76c3b445":"calculateTotalTokenPerContribution(uint256)","76c44a80":"openIEOStarted()","76c46a70":"changeUnitUserBalanceLimit(uint256)","76c6c685":"assertItDoesntThrow(string)","76c6dc8b":"isPosBitOne(uint256,uint256)","76c6fc9a":"checkOwnerShare(address)","76c70431":"CRCToken()","76c75958":"startCrowdsale(uint256,uint256,uint256,address)","76c7a3c7":"MIN_FEE()","76c7b434":"developersCut()","76c7fc55":"removeBorrower(address)","76c82e92":"minAcceptedAmountPresale()","76c87548":"scoreBracket(address)","76ca0225":"initTwo(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","76ca0c77":"scheduleCall(address,bytes,uint256,bytes,uint256)","76ca9e48":"indexPaidBonus()","76cb69e9":"KOIN(uint256,string,uint8,string)","76cb6f9b":"removeOffChainAddress(address,address)","76cba420":"stcOrginalBuy(uint256)","76cc1c5c":"landManagement()","76ccb1fe":"getSpinOutput(uint256,address,uint256)","76cce072":"setBlance(address,address,uint256)","76ccf063":"calSimpleRoom(uint256,uint256,uint256,bytes32)","76cd005d":"distillGodOwner()","76cd470c":"getCurrentAccountingPeriodId()","76cd7cbc":"sign(bytes)","76cd940e":"currentBatch()","76cdb03b":"bank()","76cfc366":"depositOffchain(address,uint256,uint256,bytes)","76d06add":"issueTokensWithCustomBonus(address,uint256,uint256,uint256)","76d0998f":"Odin2(address)","76d173a9":"addressAndBalance(address)","76d1d35e":"numberOwners()","76d260bb":"setInitialVaribles(address,address)","76d2d717":"GetFreeTokens()","76d33951":"bid(string,address)","76d380cb":"IrisTokenPrivatSale()","76d438b0":"sendReward(uint256,uint256)","76d47bf5":"unlockAddress(address,address)","76d57aad":"amountInLock(address,uint256)","76d57ad3":"getMixerInfo(bytes32,uint256)","76d60a91":"TokensMinted(address,uint256,uint8)","76d66f5d":"_Transfer(address,address,bytes32)","76d690bb":"BountyList()","76d6c296":"getPresale1()","76d6da67":"TokenMintingEnabled(address,bool)","76d738d9":"DAZToken()","76d75952":"getLabelType()","76d76b9d":"marketRegisterCost()","76d83cb3":"getTerminalCount()","76d865dd":"addAdminOwners(address,string,string)","76d8f03e":"getBonusCount()","76d92428":"setGatekeeperAddress(address)","76da5667":"admin_kill()","76dad223":"showNumber()","76db2e84":"setMinimumEtherAmount(uint256)","76db6c8d":"isRedeemable(address)","76db76f1":"clearNextPrizeTime()","76db7fd4":"setExchangeFlag(bool)","76db9b14":"CXTCContract()","76dbd108":"calculateProof(string)","76dc4c0a":"isFundRequestToken()","76dc6643":"threeHotHoursCapInWei()","76dc74cb":"sendHoldComisions()","76dc76e7":"getUserNumbersOnToken(address,uint256)","76dc97d9":"_saveMessage(uint256,uint256,address,string)","76dd1f86":"totalMintLimit()","76ddfc39":"MIN_HARD_CAP()","76de03d0":"weiTotalRefunded()","76de1684":"generateOrderByMerchantWithPayee(address,address,uint256,string,string,string)","76dffa4e":"MedCann()","76e00ed7":"_fromNanoNIL(uint256)","76e0f978":"navAdmin()","76e20e53":"getMyBets(uint256)","76e277c1":"ChickenFarm()","76e29114":"nfsPoolCount()","76e2bbc7":"paymentInternal(bytes32,uint256[])","76e403ec":"balancesLocked1Y(address)","76e40c9c":"lendEther()","76e44ed8":"lockAll()","76e4660c":"getSumAmountOfDisputedStepsProPatient()","76e4ca0d":"voteQuorum(uint256,bool)","76e4f921":"parachute()","76e51e96":"TokenModuleManager()","76e53221":"participationCaps(address)","76e55338":"mytest()","76e57d4b":"withdrawalAddressFixed()","76e5c0ca":"WineryOperations()","76e608c7":"buyExistFactory(uint256)","76e6d2b4":"unLock(address)","76e6dbc7":"tokenBaseRate()","76e702ee":"tokenDeliveryDue()","76e71dd8":"delegateTotalSupply()","76e7430e":"finally(address)","76e75e05":"getPurchaseRecord(address)","76e7b151":"GOFCoin(uint256)","76e83bcb":"listModule(uint256,bytes32,bytes32,string,bytes4)","76e92559":"totalMembers()","76e93db5":"totalMaxBuy()","76e9d4fb":"Hybrid(uint256,string,uint8,string)","76ea1c6a":"BuyOnSecondaryMarket(uint32)","76ea430a":"STAGE1_TIME_END()","76ea909d":"indSale()","76eaef99":"CatOffered(uint256,uint256,address)","76eb5ce0":"END_PREICO_TIMESTAMP()","76ec477d":"cancelGame(uint256,string,uint256)","76edb1b5":"ReleaseUpdate(uint256,uint256,uint256,string)","76edc29d":"TelegramOpenNetwork()","76ee2d68":"lokedMint(address,uint256,uint256)","76ee3a87":"mainICOStartTime()","76ef5d14":"divX(uint256)","76f10ad0":"getSnapshot(uint256)","76f14c98":"personalizeSquare(uint256,bytes,string,string)","76f187ab":"tokensTransferredToHold()","76f1dbd4":"Authenticate(address)","76f28a4f":"setMarket1(address)","76f2a59a":"instantMint(address,uint256)","76f30ca1":"toContentID(address,uint256,string,bytes)","76f31513":"decreseApproval(address,uint256)","76f3264b":"getProviderSupply(uint256,uint256)","76f36dec":"ETHC(uint256,string,uint8,string)","76f39b28":"SetMaxAllowedBetInTokens(uint256)","76f4d8ad":"exchangePlayerTokenCount()","76f6218a":"promoBonus()","76f660f6":"batchTransferFrom(address,address[],uint256)","76f6de69":"RTCCOINERC20(uint256,string,string)","76f70900":"oraclesCount()","76f75e7f":"orderList(uint256)","76f7c522":"hasOneStepWithdraw()","76f86e18":"order_buy(address,uint256)","76f88781":"pow2Constant()","76f9378d":"getWords(uint256)","76f95818":"stopFlagOn()","76f9b8d9":"getTokenInfoSignatures()","76f9e018":"greedIsGood(address,uint256)","76f9fd38":"castVote(string,uint16)","76fb7c72":"setAllowedAgentsForOtherSource(address,bool)","76fc53c0":"extDistributeBondFund()","76fd7951":"MacoTestCoin()","76fd7b11":"requestWeiPrice(string)","76fe192a":"forceResetPeriod()","76fe3efa":"itemNameAddress(uint256)","76fe47eb":"returnBooleanInverted(bool)","76fe8228":"getHorseSex(uint256)","76fede7a":"get_term_deposit_end_date(address)","76fee774":"getNewPetCard(uint8)","76fee8e0":"MineBlocksAddr()","76ff1d24":"MailhustleCrowdsale()","76ff87cc":"VYRAL_REWARDS()","76ffb887":"failure()","77002fcf":"getBadge(bytes32)","77009c5c":"EYCryptoTradingGOLD()","7701c52d":"withdrawMarginPreSignedHashing(address,address,uint256,uint256,uint256,uint256)","7701f361":"test_newProposalAndNotEnoughVotes()","7702b8e4":"confirmOneSell()","770342ee":"ChannelClosed(address,uint256)","7704533d":"arbitrationWallet()","77049457":"median()","770506c1":"withdrawMobileAppCoin(address)","7705b6f4":"claimBoard(uint256[81])","7706390b":"handover(uint256,address)","77073437":"alicoinToken()","77076855":"isInOpenMakeOrder(address)","77079f55":"YohoToken()","7707c69a":"set_sale_owner(address,address,bool)","7707e2b2":"withdrawHoldVault(uint256)","770850c8":"accountIndexOf(address)","770864ad":"addOpenMakeOrder(address,address,uint256)","77086d94":"addSpaces(uint256[],uint256[],bytes)","7708b441":"founderWithdrawablePhase2()","7708e321":"setaddress(address,address)","7708e43b":"getNumBets(uint256)","7708ea1d":"ROLE_CEO()","77097bfa":"testerReentrant()","77097fc8":"mint(uint256,string)","7709bc78":"contractExists(address)","7709c0d3":"setMaxWhitelists(uint256)","770ae2af":"setMinAllowedBetInEth(uint256)","770b210e":"canBuyLimit()","770b5414":"getCurrentData()","770b80b6":"returnBalanseToTarget()","770b8aab":"RecoveryModeActivated()","770bb9ae":"_createDrawings(bytes32,bytes32,address,string)","770c59b8":"purchaseParrot(uint256)","770c6bde":"removeItemLendingList(address,uint256)","770c6cbb":"WithDrawPreForkChildDAO()","770cde1b":"ContractExample(string)","770d64c6":"LogLate(address,uint256,uint256)","770d6591":"_setArmorValue8(uint256)","770d8e79":"ADDR_TKG_TEAM()","770e3106":"getAccountsCount()","770e9e85":"takeTheTorch(address)","770eaebe":"Send_Data(address,uint16)","770eb5bb":"set_label(bytes12,bytes32)","770f75b7":"fireCancelProposalEvent(address,uint256)","770f9feb":"clyckterium()","770fe154":"ApplyVote()","77109b05":"depositEther(address[2],uint256[7],uint8,bytes32[2])","7710f29f":"setupPeriodForICO(uint256,uint256)","77115c9d":"seedRoundEndTime()","771282f6":"currentSupply()","77129790":"Crowdsale(address,address,uint256,uint256,uint256)","7712acd2":"getABname(uint256)","7712c870":"slammerTime()","7713b431":"getContactsLength()","7713ba04":"setPI_edit_11(string)","77146255":"_nextTokenId(uint256)","771548e2":"moveAccount(bytes32,bytes32)","771602f7":"add(uint256,uint256)","77169fbd":"gainsOfVault(uint256,address)","7717403b":"ALLOC_CROWDSALE()","7718238f":"addFee(address,uint256)","7718ce93":"player5()","7719f57e":"Seedex420(uint256,string,uint8,string)","771a2af4":"getCitationRecordsLength(string)","771a3a1d":"taxRate()","771acf31":"fluffyCatCut()","771ad078":"BuyGenesis(address,address)","771ad635":"getContentCred(address,uint256)","771c04ae":"ARCToken(address,uint256,uint256)","771c288b":"next_stone_id()","771c3ec7":"setVendingAttachedState(uint256,uint256)","771c7ad1":"hotwalletAddress()","771cbe3d":"_mintCard(uint8,address)","771ce552":"readownerXname(string)","771d7b47":"finishedMigration()","771d9d05":"ecosystemAllocated()","771e4326":"wingsETHRewards()","771eee16":"freezeToken(bool)","771feb74":"getPrecious(uint256)","771ff086":"allocatenonCSTokens(address,uint256)","7720295a":"STARTING_CLAIM_PRICE_WEI()","7720e74c":"changeSaleEnd(uint256,uint256)","77215c8d":"getObserverCount()","772199a1":"getJob(address,uint256)","77226237":"isCompetitionAllowed(address)","77228659":"query2(uint256,string,string,string)","7722d01f":"TokenChanger(address,address)","77231e6c":"tokens_sold()","77233e90":"setTo(address)","7723e2f3":"ArtToken()","77241a5f":"makerDaoContract()","77248e3d":"claimReservedTokens()","7724bdbf":"setStatusInternal(address,uint8)","772506bb":"jackpotFraction()","77253984":"DPToken(uint256,string,string)","7725686f":"thawGlobalTransfers()","7726a59a":"WINNER_COUNTRY_CODE()","7726bed3":"setEnable(bool)","7727c9ad":"changeMinStake(bytes32,uint256)","77282b70":"polymathRegistry()","7728579a":"isIcoFinalized()","77287520":"donate(string,address,string,int256)","77289b50":"setMedium(uint8)","7728c75a":"LoanRepaid(address,address,uint256,string)","7728f48b":"destroyRobot(uint256)","772a3835":"customerExchangeFiat(uint256,address,string)","772b7a73":"getTxOrigMcwTransfer(bytes32)","772bcc79":"DexAgeTest()","772c1863":"increaseStellarBalance(uint256)","772c658b":"getVIPBounusRate(address)","772cb26b":"isStringEq(string,string)","772e6f03":"votingProposal(string,bytes32,uint256)","772fdcb1":"isContributorInLists(address)","77300338":"setActiveTimes(uint256[],uint256[])","773041ce":"setInvestor(address)","77312cdc":"setMultiETH(address[],uint256[])","773183e3":"buyEmptyLocation(uint256)","7731cd2a":"Acc(address)","7732b2a4":"getNextCrystalReward(address)","7732b322":"PinMoCrown()","773355bf":"script(bytes)","77337d37":"tstart()","7733f24f":"ratePreSaleStage()","77343408":"setURL(string)","7734da3c":"NewPassContractor(address,address,address,address)","7734e398":"setFirstBonus(uint256)","773531f3":"tokenOwnerBurner()","77364291":"taskInfo(uint256)","773721b3":"receivedCWCreturn(address,uint256)","77372213":"setName(bytes32,string)","77381082":"Virtonomi()","77390f8b":"_envelopes(string,address)","773984dd":"closeIt()","7739ad70":"markAsScam(address)","773a1154":"generateRandomNumber()","773a8597":"HashTokenAward(uint256,string,string)","773adc70":"getAllowedStepAmount()","773b5b5e":"maxUpdates()","773b82a3":"addPerson(bytes32,bytes32,uint256)","773b90db":"_lotteryCardNoSend(uint256)","773c3f50":"DPPToken()","773c5049":"solvency()","773c84ee":"exec(address,bytes,uint256,uint256)","773d33f5":"transferAndCallback(address,uint256,bytes)","773da57d":"DGZTokensWithdraw(address,uint256)","773dcb98":"startTransfers()","773dfb86":"_extendRound()","773e04a9":"log2Ceiling(int256)","773e1e84":"fight(uint32,uint16)","773e236b":"createLockbox(string,address,uint256,uint256,string,string,string,address[],string)","773e8b0f":"testDAO()","773ee5a3":"execute_transfer()","773eef36":"stopRefund()","773ef1cf":"saleOn()","773ef38e":"PRICE_RATE_SECOND()","773f4873":"Ecopay()","773f5edc":"guess(uint256,string)","773f7665":"processVIPBenefit(address,uint256)","773ff502":"LogMake(bytes32,bytes32,address,address,address,uint128,uint128,uint64)","7740f667":"mtStartTime()","77410c03":"adminLockdown()","774120fa":"merge(address)","77413267":"getAuctionByTokenId(uint256)","774190dd":"showUserPoolAddresses(address)","7741ad4e":"play_game(uint8)","7741b4ec":"RandomNumberFromSeed(uint256)","7741fc52":"LottoCount()","7742ede4":"IMARK()","77439e8b":"doYourThing(address,address)","77446767":"destinationOf(uint256,uint256)","77453df7":"Ex()","7745d3b1":"getUsername(address,address)","7746167f":"transferBlockValueToBattleValue(uint16,uint256)","77463b50":"getEggsToHatchDragon()","77467197":"tokensVested()","774685c7":"CPO_SHARE()","77469275":"getLegacyRepToken()","77472b6f":"minEtherCap()","7747c993":"competition(uint256)","77482b18":"getDeveloperFee()","7748b07e":"usersNTD(address)","7749d667":"getIncreaseTime(uint256)","7749e693":"setCategory(uint256,uint256,bytes32)","774a63a5":"CDSToken()","774a97cf":"getCurrentTapAmount()","774b71d6":"TokenPriceProposalSet(uint256,uint256,uint256)","774bafdf":"unlockMe()","774dba58":"playHome()","774e88dc":"hasUnlockDatePassed()","774eb322":"close(string,bytes32,uint8,bytes32,bytes32)","774f787a":"ShitsToken()","77507425":"buyerFunded(bool,address)","7750b2b1":"__setDeadline(uint256)","775146c3":"request(bytes32,uint256)","77517765":"getTotalActiveStake(uint256)","7752182b":"AddReserveToNetwork(address,bool)","77524af9":"wethTransfer(address,uint256)","775274a1":"requestRefund(bytes32)","77532fa8":"TotalClosedDeposits()","7753ec49":"in_registration_phase()","77542194":"setTokenTransferStatus(bool)","7754305c":"getURI()","7754ec29":"WinCoin()","7755a0f5":"ResolutionProposalSubmitted(uint256,uint256,address,string,string)","7756c908":"transferLocked(address,uint256)","7757fc5d":"withdrawalOpen()","7758bf86":"maxBridgeWidth()","7758c4f8":"quickBuy(uint256)","7758d407":"nextCommonTTWTokenId2()","775915ce":"stepTwoEndTime()","77598626":"TZCoin()","77599026":"calculateYourValue2(uint256)","775a25e3":"getTotal()","775a8f5e":"toBytes(uint256)","775ad527":"allow(address,address)","775af9df":"MiningRigFarmer()","775b9c13":"setWhiteList(address[])","775c300c":"deploy()","775c46cd":"startFunding(uint256,uint256)","775dec49":"keccak()","775e38f7":"NO_MONSTER()","775eb900":"signed(bytes32)","775ee3ef":"view56()","775f5ec0":"finishRitual(address)","775f731c":"addSomeUETsTo(address,uint256)","775fc127":"operation()","77609a41":"challengeCanBeResolved(bytes32)","7760da7f":"reclaimTokens(uint256)","77610ba2":"setDollar(uint256)","77617a7d":"BuyToyMoney()","776184b1":"test_oneValidEqString()","77620729":"forward(address,address,uint256,bytes,bytes32,bytes)","776247c4":"withdrawEthFromBalance()","77627a1d":"Goutex(uint256,string,uint8,string)","7762df18":"VVDB(address)","7762df25":"potentialOwner()","7762f046":"setContractBridgeAddress(address)","77640f9c":"setClaim(address,bytes32,bytes)","7764d878":"checkstatus()","7764f771":"getBackBNB()","776532de":"Numa()","7765c52c":"getAuctionStatus(uint256)","776676d6":"newRC(uint256,uint256)","77669b2d":"setCompte_33(string)","7767ecc3":"inSdcForAdmin(address,address,uint256,uint256)","7768dec0":"isTokenSale()","77695d39":"getDb(uint256)","77699a06":"reclaimExpiredSwap(bytes32,bytes32)","7769d384":"revokeAndPublish(address,bytes32,bytes32,address)","7769ea0a":"addPool(uint256)","776a038e":"PurchaseToken()","776ab634":"unpauseToken(uint256)","776b37e2":"editCertificate(string,address)","776b6b27":"setRoscaAddress(address)","776bf795":"pieceTransfered(uint256,address,address)","776c3b70":"setNewSalesManager(address)","776d1a01":"setTarget(address)","776d62f6":"costs()","776d89ba":"delPhase(uint256)","776dba67":"VioRewardERC20Token()","776df027":"testFailDisownNotOwner()","776e7fc1":"checkRedbullQuest(address)","776f3b99":"burnByPercentage(uint8,uint8)","776f9663":"PeerBet()","776fd7ce":"setEscrowTransfer(address,uint256,uint256,bool)","77703d29":"getBuyOrder(uint80)","7770bd15":"crowdSale()","777256c4":"Greeter()","77725b88":"SetFFSettings(address,address,uint256,uint256)","7772a380":"isInGeneration(address,uint256)","7772ba07":"setDelays(uint256,uint256)","77738ce7":"fundAccount(address,uint256,uint256)","7774c394":"isNecromancer(uint256)","7774d64c":"testCreateOrder()","7774e950":"createUnit(uint256)","7775eec9":"getCompte_29()","7776466c":"preSaleToken()","777665b8":"transferTOKENtoProviders(address,address,uint256,address,uint256)","77773d90":"amountOfTokensPerEther()","7777789f":"_mint(address,uint256,uint256[])","7777d088":"lotteryTokensPercent()","777850f9":"payAfter(address,uint256)","77790081":"updateMaritalStatus(string)","777955b1":"updateReferralGu(uint256)","7779b0e4":"_buyTokens(uint256,uint8,address,address)","777a5dc5":"explodePhoenix(uint256)","777ab367":"mk_contract_address(address,uint256)","777ac349":"totalWins()","777ac522":"_createTree(string,string,uint256)","777aff7d":"updateHistory(address,uint256)","777b4547":"ICO(address,address,address)","777c1bb2":"eosLITE(uint256,uint256)","777c658f":"getTotalDonations()","777dff4a":"transferCTO(address)","777e479d":"getRoundBlockNumber(uint256)","777e6b1c":"getEntitledFunds()","777e82ca":"BookERC20EthV1p1()","777e940c":"excessRefund(address,uint256)","777ecb74":"LogPaused()","777eceb8":"tokensForOneEther()","777f942d":"changeMinStake(address,bytes32,uint256)","777feff5":"getCertificationDbAtIndex(uint256)","7780ae85":"desimls()","77810380":"getRegistrationToken()","77818808":"Electrium()","7781eafa":"considerPerseus(uint256)","77826b0c":"setMaxReceiveEther(uint256)","778317c4":"setWinLossAmount(uint256,uint256)","77838c63":"distributedToOwner(uint256)","7783c06b":"newArt(string,string)","7785859f":"altCapitalization()","7785954b":"produceRandom(uint256)","778639cb":"checkValidFighter(address,address)","77863b61":"CrossWhitehatWithdraw(uint256,address)","7786b22d":"ELRUN()","77870bce":"BeatOrgTokenPostSale(address)","7787dfaf":"test_9a_transferShouldBeFalse()","77886028":"setTokensContractAddress(address,address)","7788d126":"REFERRAL_BONUS_LEVEL3()","77895ef4":"listedMonForClass(uint64)","7789f844":"backTokenOwner()","7789fc90":"createBet(bytes32,bytes32,uint256,uint8,uint16,uint16,uint16,uint8,uint256,uint8)","778a56ce":"toggleBurn()","778a5978":"guessNumber(uint16)","778b5aee":"getWalletsCount()","778c2cea":"onlyLocklistedCanDo()","778d00f0":"pushPrivateInvestment(uint256,uint256,address)","778d491e":"wd(uint256)","778e388e":"parseInt_(uint256)","7790a5d2":"Token_5()","77913fbc":"getModuleId(string)","7791dc1f":"AuthEnd()","77921952":"contributorCounter()","77922220":"getRegionProducts(address,uint256,uint256,uint256,uint256,uint256,bool)","77922e57":"batchCancel(address[],uint256[],uint256)","7793868c":"RostToken()","779454ff":"boardAddress()","77952161":"didDepositCollateral(bytes32,address,uint256)","7795820c":"getCommitment(bytes32)","7796fb95":"setSink(address)","7798e525":"countUBetChecks()","779972da":"setLockPeriod(uint256)","779997c3":"bump(bytes32)","779a3611":"makeBet(uint256,uint256,uint256)","779a5a7f":"getContributorByAddress(address)","779ad324":"getIEOId()","779b2e11":"getCurLevelKeyNum()","779b8dc0":"load(bool,address,address,address,address,address)","779beca0":"getNumOfSalesWithSameId(bytes)","779beedf":"registerWallet(address)","779c4a26":"getUserSponsorships(address)","779c9b19":"_emitCategorySet(uint256,uint256,bytes32)","779ce152":"WIN_PERCENT_PER_DISTANCE()","779d2e20":"setLawSupportProfitAddress(address)","779de55d":"paymentsByBenefactor()","779dec5b":"bZRxTokenContract()","779e170d":"isSaleOn()","779e5ad8":"gvOptionToken20()","77a0e875":"destTokensSit()","77a1ec4b":"hodlCountdown()","77a28225":"delegateFromReferral(uint88)","77a28461":"ownerSetupBankrollInterface(address)","77a28fec":"DealCancelRate(uint256)","77a3a0a2":"removeMarketFrom()","77a43129":"publicSellLockEndTime()","77a54b38":"checkForNewStellar(address,uint256)","77a54eb8":"blacklistAddresses(address[])","77a6acfb":"tokenDemo(uint256,string,string,address)","77a6cb64":"TokenEscrow()","77a714ae":"ERC721Token()","77a7354d":"addExperience(string)","77a74a20":"expressingTraits(uint256)","77a7d968":"walletBalances(address,address[])","77a7e6be":"getRefTotal(uint256)","77a8bc86":"untrustedExecuteRuling(uint256)","77a9037b":"updateLastVotedOnParameter(bytes32,address)","77a9e152":"redeemToken(uint256,uint32)","77aaafd2":"interfaceFrozenTransfer(address,address,uint256)","77aad873":"proposeLaborHourToken(address)","77ac3da5":"oraclize_query(uint256,string,string[1],uint256)","77acbb22":"manager2()","77ad619d":"get_commit_no()","77ae6c47":"requestBatchInsatalmentsLoans(uint256,uint128,uint256,uint24,uint40)","77afd7e6":"shitRate()","77b02a33":"getGameLock(address)","77b08df0":"Migrations4()","77b0c751":"getNextPayDay()","77b11de3":"setPlayerHasGetFree(address,address,bool)","77b1788e":"postTrade(bytes32,uint256)","77b19cd5":"getCallBaseGasPrice(bytes32)","77b1b2eb":"MAX_CANVAS_COUNT()","77b1bba6":"ChangeCollector(address)","77b1da93":"crowdSaleClosed()","77b2d590":"_set3()","77b38e2a":"MasternodeDeregistered(address,uint256)","77b440e9":"WALLET_FOUNDATION()","77b4a9c1":"getMakerBalance(address)","77b57073":"sponsorList(address)","77b68dae":"devDivRate()","77b71df0":"stake(int256)","77b74692":"setKYCAddress()","77b76ec3":"checkBalance(address,address)","77b77a4f":"PlatoPresale()","77b7b5f3":"returnCreator(uint256)","77b92c07":"Approve(uint256)","77bad015":"GetMyEgg()","77bb09eb":"addSweeper(address,address)","77bb5e34":"ChillCoin()","77bbc957":"returnReclaimed(uint256,address)","77bbf28a":"createDividend(uint256,uint256,address,uint256)","77bc222c":"_eraseSingleNode(bytes32)","77bc57e7":"Agencies()","77bd1bfe":"ITT(uint256,uint8,string,string)","77bd35fc":"claimPremium(address,uint256)","77bd775c":"setMinPurchaseAmt(uint256)","77bdab19":"OtoniToken()","77bdbccc":"registerCertificate(address)","77bde142":"setTargetBondingRate(uint256)","77bdfcfa":"cards_metal_check(address)","77bf8b91":"CelebSold(uint256,uint256,uint256,string,address,address)","77bf8e6f":"myShare()","77bf96d4":"claimProfitEquivalent()","77bf9776":"stopUpdate()","77bffc9a":"getRemainingStars(address)","77c07c19":"storageControllerAddress()","77c0891f":"setVotingParams(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","77c13323":"closing_requests(bytes32)","77c2f72e":"LightenToken()","77c2fb9b":"updateMokenName(uint256,string)","77c34ee7":"tokensRemainingIco()","77c427b7":"TemperatureMeasurementB(address,int8,int8)","77c4fd07":"availableEarlyPlayerShares()","77c626e3":"getStageAvailableTokens(uint256)","77c68aa7":"IGTMYR()","77c71396":"charityBeneficiary()","77c76449":"AVAILABLE_IN_MAIN()","77c78df9":"getCurrentLevel()","77c82476":"viewPetition(uint256)","77c846af":"changeUsername(string)","77c8d5a0":"computeTimeBonus()","77c90dd4":"VaporCoin()","77c93662":"sponsor()","77c9dd4b":"iOwner()","77ca4d11":"loadVotesForParticipant(bytes32,bytes32,uint8)","77caa61a":"updateExchangeRates()","77caa7e6":"endICOp2()","77caf711":"transferValue(uint256)","77cb6b7f":"AbccCoinToken()","77cb8edd":"_robot()","77cc437c":"institutionWallet()","77cdd2e5":"icoBtc()","77ce4fd1":"changeBlocksToExpire(uint256)","77ce52f8":"totalInfo()","77ce9bdd":"createPersonalDepositAddress(bytes32)","77cebd89":"isAllowedToBuy(bytes32)","77ceded8":"mintGrey(int256,address,uint256)","77cf0369":"totalPreICOavailibleWithBonus()","77cfe1c1":"isValid(string,address,uint256)","77cff22d":"init(address,address,uint256,uint256)","77d1f95d":"AntCoin()","77d223b2":"setLowestClaim(uint256,uint256)","77d2f203":"neg(uint256)","77d317d0":"destroy(uint256,string)","77d32e94":"ecrecovery(bytes32,bytes)","77d3550b":"commissionPercent()","77d447d6":"ContractorManagerSet(address)","77d4c48b":"arr(address)","77d4e5bc":"secondTimeLine()","77d555b7":"RateSetterChanged(address,address)","77d55755":"getMiningReward(bytes32)","77d56a04":"getReserveBalances()","77d58f21":"_safeContract(address,address,address,uint256,bytes)","77d630ae":"activationFee()","77d6a880":"saleOrNot()","77d6cfeb":"setGoalReached()","77d70b1f":"jackpots()","77d79d10":"getGame(uint8)","77d821a2":"testOnlyMultisigCanDeployANT()","77d83b81":"confirmGetFreeQuest(address)","77d89406":"bankerFeeDataRecord(address,uint256,uint256)","77d8ffc0":"getTokensFromBuy(address)","77d99ef5":"createBattleboard(uint256,uint8)","77d9d1fb":"maxHEXCap()","77da0add":"seeAsset(uint256)","77dac983":"abandonEscrowService(uint256)","77daeb80":"addDeal(address,address,address,uint256,uint256,uint256,uint256,string,uint256,uint256,bool)","77db5206":"checkStatus(address,uint256)","77dbbd76":"transferFrom(address,uint256,uint256)","77dc0413":"small_payout(uint256)","77dc657c":"checkPassword(bytes)","77dc6ac7":"tokensSelling()","77dcb4f9":"doPresaleMinting(address,uint256)","77dcba6d":"writeConversion(string,address,uint256,uint256)","77dd3323":"setts50(uint256,address)","77dd8ea7":"ethFnkRate1()","77df3013":"calculatePurchaseAndBonuses(address,uint256)","77dfec3c":"exchangeRateTimestamp()","77e13c10":"playerMakeBet(uint256,uint256,bytes32,uint8,bytes32,bytes32)","77e17039":"startSettlement()","77e17191":"COIN_SUPPLY_MARKETING_TOTAL()","77e19824":"numSubmissions()","77e26762":"getErbutongHao(uint256)","77e2965b":"updateTokenAge(address,address)","77e2a6ed":"openGiveAway()","77e2e5ce":"ICO_setParameters(address,uint256,uint256,uint256,uint256,address,uint256)","77e303d2":"_Deposit(bytes32,uint256,uint256)","77e49660":"addAddressAliasUnsafe(address,address)","77e4fb04":"testFailNotEnoughValue()","77e5bf84":"getTxGasprice()","77e5d8f8":"advisersUnvested()","77e5f6d0":"setGizerItemsContract(address)","77e60f42":"marginForMajority()","77e6bb15":"getCurrentBonusPercent()","77e71ee5":"getForkEndTime()","77e75b07":"mintAndAllocateZCO(address,uint256)","77e7645b":"CoinSaleActive()","77e7ff41":"kickTheCoin()","77e8a52e":"SEARCH()","77e91f26":"getAyantDroitEconomique_Compte_10()","77ea8c72":"RGLSToken()","77eaa420":"_clearAuthorization(address,address)","77eab3e3":"changeMinimumAmount(uint256)","77eb4c50":"hasSponsor(uint32)","77eb74a1":"PassportInterfaceID()","77ec0feb":"dividendPerToken()","77ee311c":"totalMember()","77eefa5a":"pullBack(address,address,uint256)","77ef2c91":"whitePaperHash()","77ef9581":"Registry(address)","77f051c3":"AcceptsToken3D(address)","77f122bd":"setBlockValueBalance(uint256)","77f172b6":"_wager(uint256)","77f18090":"Citizen()","77f18ed3":"isImmortal()","77f25566":"setOne(uint256)","77f27251":"paybackDelta()","77f2d0b0":"partnerInfo_for_Owner(address)","77f325df":"submitAnswer(bytes32,bytes32,uint256)","77f3293a":"endPreICO()","77f37cd1":"luckyBonus(uint256)","77f38024":"BountyPart()","77f3c0cd":"InvokeTransfer(address,uint256[],uint256)","77f3e3d1":"Bounty_Supply()","77f3f782":"UserBalances(address)","77f41164":"stageTwoClosed()","77f46346":"CheckIfIsAllowed(address)","77f48f94":"spin(bytes32)","77f50f97":"claimAdmin()","77f51246":"tokenIsLocked()","77f54a82":"setICOParams(uint256,uint32,uint32,uint256,uint256,bool)","77f6f7e8":"YoloToken()","77f74b6b":"getTimestamp(uint16,uint8,uint8,uint8,uint8,uint8)","77f83bce":"PruebaCoin()","77f8afc3":"FixSale(uint256)","77f929fb":"DeveloperCoin()","77f98616":"getTotalProduct()","77f9bc13":"getVendorApplicationStatusTrack(string,uint256)","77f9c101":"testDeployNewTokenWithTheTestContractAsOwner()","77f9c862":"GetSellOrderDetails(address)","77f9db33":"disableTokenTransfers()","77fa3d32":"addAuction(uint32,uint256,uint256,uint8,uint8)","77fa4c21":"getRewardPot()","77faba66":"setRewardPercentageK(uint256)","77faffa0":"nextround()","77fb6269":"migrateData(address,uint256,uint8)","77fbe611":"forTeamETH()","77fc35e5":"_burn(string)","77fcb91d":"forward(address,bool)","77fcbebe":"TokenLimitReached(uint256,uint256)","77fcc493":"TOKEN_MIN_PRICE_THRESHOLD()","77fcce68":"setSignatureValidatorApproval(address,bool)","77fd347a":"makePredictions(int16,string)","77fe2a0d":"unfrozePerDay()","77fe38a4":"transferToICAPWithReference(bytes32,uint256,string)","77fed1c7":"addOverview(uint256,string,string)","77ff24f4":"test0()","77ffd2e8":"setCurrencyExchangeRate(uint256,uint256,uint8)","780004ac":"systemFreeze(uint256,uint256)","7800313f":"getCurrentTokensByType(uint32)","7800a9f6":"getP3DInfo()","78013292":"optionAddress()","78018581":"Allysian()","7801fc3e":"totalReceivedEth()","780211a2":"refundOrder(address,address,address,bytes32,address,address)","78021e7c":"ownersOfToken(uint256)","780249cd":"DC()","7802857a":"BONUS_TIER_8_LIMIT()","7802cbaf":"addTokenOwnerReward(uint256)","7802f4e4":"nada(uint256)","78030b83":"makeWildCardToken(uint256)","78044965":"setACLRole8972381298910001230(address)","78044ba5":"transferToBuyer(address,uint256,address)","7804a5dc":"canCreate(address)","7805862f":"Unpause()","7805a548":"_createItem(uint256,uint256,uint256,uint256,address)","7805dd1c":"_totalUsersBets()","7807e826":"calculateWeiNeeded(address,uint256)","78080c9d":"rateStage1()","7808dc69":"createSale(uint256,uint256,address,address,address)","780900dc":"create(uint256)","7809231c":"DistributeAirdrop(address,uint256)","7809dd64":"_receiveRefund()","780a4d74":"RecipientUpdated(address,address,address)","780aa037":"receiveTokenFromContract(uint256)","780ae915":"completeMigration(address,uint256)","780aee73":"newGame(string,bytes32)","780bbe60":"createChamp(address)","780be5be":"AggiungiNegoziante(address)","780bfed0":"addPermission(bytes4,string,string,string)","780c4a73":"addCounter(address,uint32)","780c5316":"payMinAuctionEther()","780c5689":"writes(bytes32,address)","780cbf65":"_queryCallback(uint256,bytes)","780d2328":"recordVisit(address,string)","780e4b96":"setConsolationRewardsClaimPercent(uint256)","780f4987":"systemMessage(string)","780ff8d1":"viewLatestErc20TransactionRequest()","78108368":"atxRate()","78121b60":"KeyedCollection()","781224f4":"setVendorWallet(address)","78122f3a":"fail(string)","78127ee7":"GOLDBARToken()","781327de":"createStrategy(string,string,string,address[],uint256[],bytes32)","78152bbe":"setPresaleStart(uint256)","78155bf4":"PaymentCompleted(address,uint256,uint256)","78160d6b":"numChipsClaimed()","78166097":"isValidCustomer(address)","7817364d":"ChillTalk()","7817a60f":"acceptMember(address,string)","7817abee":"getOwnerRatingTuple()","7817eedd":"rawOwnerOf(bytes32)","78186f51":"etherPriceInDollarOut()","7819d30d":"updateNameResolver(string,address)","781a2cca":"Pay(uint256)","781a4a74":"getTokensIcoSold()","781c0db4":"finishFreeGet()","781c4dad":"tierNo()","781cc3d3":"cancelAction(bytes32)","781cd99d":"START_TIMESTAMP()","781db835":"_buyTokens(address,uint256)","781e48e4":"MYCareCoin()","781e9892":"cumulativeRatios()","781f5a83":"registerIdentity(address,address)","782037dc":"reserveTeamRecipient()","78205f67":"testThrowTransferEnableNotTransferable()","7820cd94":"flexibleRewardLevel(uint256)","7821a514":"addReserves(uint256)","7822b902":"setSaleAmountCap(uint256)","7822ed49":"bankAddress()","78231978":"totalSaleSupply()","782378d1":"MIC(uint256,string,uint8,string)","78238cf0":"setCmd_control(uint256)","7824407f":"tokenSupply()","78248880":"decreasePaymentsBalance(address,address,uint256)","7825396b":"setPrices(uint16[])","78258c41":"ZXToken()","78261878":"saleCompleted()","78263edf":"changeMaturity(uint256)","7826bbc3":"fstPrivateSalePortionDenominator()","7826bfa8":"ethereumLottery()","7826f28f":"S1()","7827b226":"froze_contract()","782841cd":"changeMintingState()","78296854":"origMktValue()","782a0170":"etherPriceInUSD()","782a2737":"vestingMap(address)","782addbd":"isInvulnerableByArea(uint256)","782b2340":"getStartIcoTimestamp()","782b3602":"taker()","782b9d50":"setCitizenAddress(address,address)","782c6ef8":"refundSender(address,uint256,uint256)","782c9689":"DeliverToClaimers(address[],uint256[])","782ce79c":"burnClosedToken(bytes32)","782da1ea":"transferFromInternal(address,address,uint256,bytes)","782e1e6c":"tokenTarget()","782e34c9":"ownerSafeWithdrawal()","782ec023":"transferMultiAddressFrom(address,address[],uint256[])","782f08ae":"setUri(uint256,string)","782fb5d4":"getVoteCounts(bytes32)","783110dc":"increaseStep()","78312435":"updateIssuer(address)","78321efb":"pushElement(uint256)","78329d61":"processPurchase(address,address,uint256,uint256)","7832bbf7":"temporaryEscapeHatch(address,uint256,bytes)","78330101":"ESlotsICOTokenDeployed(address)","783370b5":"setEditionLimits(uint256,uint8,uint8,uint8)","7834a504":"buyCoin(address)","78351502":"hasPastFreezTime()","78357e53":"Manager()","78367e46":"enterSmall()","783680a7":"ico2Min()","78375f14":"requireisfine(uint256)","78375f61":"BetTest111()","7837848c":"expire(bool)","7837e170":"lockBalance(address,uint256)","7838415b":"MeetOneToken()","783870eb":"rubusBlackAddress()","78388eb6":"allocationsOverTime(uint256)","78393237":"MAT_PARTNERS_SUPPLY_LIMIT()","783a2cca":"approveWithdrawal(address,uint256,bytes32,bytes32,uint256)","783ac3ee":"offThreshold()","783b4569":"rawRegister(bytes32)","783b7b1e":"sendJackpot(address)","783c2088":"lookupRegName(address)","783c8db0":"minimumFundingAmount()","783cc9dc":"CNNToken()","783ce458":"expmod(uint256,uint256,uint256)","783d5dec":"_limitTeamWithdraw(uint256,uint256,uint256,uint256,uint256)","783ddace":"mintAdvisersTokens(address,uint256)","783e7a06":"removeVerificatorAddress(address)","783f28e6":"adminUpdMinSign(uint256,uint256)","783f6af5":"people()","783f7b98":"setEtherQuota(uint256)","78405234":"indexOf(uint8[],uint8,bool)","7840c781":"_setTokenOwner(uint256,address)","78415956":"after_test_2_method()","7841a530":"set_tokens_sold(uint256)","7841b780":"isPaymentSettled(uint256)","78420d4a":"validateLock()","784279d8":"setSupportedTokens(address,bool)","7842a3a4":"payReward()","7842aded":"getLotteryMoney()","7842dca8":"allTime()","7843184b":"setMultiBonusTokens(address[],uint256[],uint256)","78446bc1":"timeLockPeriod()","7844ce81":"hodling()","78451d64":"SplitPayment(address[],uint256[])","78452d65":"CATContract(address,string)","784547a7":"isConfirmed(uint256)","7845b86e":"fundingRatePredictionBonusClaimWindow()","7845cbef":"GOLDT()","7845d5aa":"UpgradeAgentSet(address)","7845d76b":"tune(uint256,uint256,uint256,uint256)","7846188d":"_getCrabTotalStats(uint256)","7846c3c8":"minimumContributionPresalePhase2()","784712f2":"pendingPayouts(address)","78473485":"getSellDemand(uint256)","7847352a":"setBettingCondition(uint256,uint256)","7848033e":"distributeCHENDE(address[])","784813e0":"lookupBet(uint256,uint256)","78483632":"secondsaleOpen()","78489ed6":"compareIntValue(bytes32,int256,bytes1)","78498818":"getTokensBought()","784a3e40":"bountiesIssued()","784aa7d2":"setTitulaire_Compte_5(uint256)","784ba0f5":"yearteam_trade_date()","784d17f9":"DarkrenlandToken()","784f47ff":"reduceCredits(string,uint256,uint8,address)","784f6654":"activateMe(string)","784fcb94":"MARXToken()","784fdf26":"totalExternalSales()","7850a6b2":"transferDoftManagment(address)","7850b72f":"LSDCrowdsale()","7850c2ac":"holdersAllocatedAmount()","7850f0a4":"setPromotedGame(uint256,bool,string)","785105f6":"savedBalance()","7851bcbd":"safePerc(uint256,uint256)","78524b2e":"halveMinQuorum()","785250da":"kyberNetworkProxyContract()","78533046":"getMetaInfo(uint256)","78533e90":"setTokenMinter(address)","78537808":"union(address[],address[])","7853c945":"bitcoinKey()","7854216b":"autoAirdropAmount()","78547d5f":"processPurchase(address,uint256)","7854b798":"addauction(uint256,uint256,uint256,uint256,uint256,string,string)","78566845":"allocateTicket(uint256,address,string)","78572816":"addAffiliate(address,bytes32)","78579d7c":"addEntry(address,uint256,bool,uint256,uint256)","7857f6e7":"setReverseRate(address[],int16)","7857fcda":"assertEq3(bytes3,bytes3)","78581a46":"getBatchCreateDrawingsAddress()","785826a7":"sendReferrer(uint256)","78583275":"updateMinSale(uint256)","7858651e":"getConnection(address,address,bytes32)","7858eb7b":"setScore(string)","7858f93a":"addressFundTeam()","78591e1d":"findAllCliWithPendingTask()","7859f9e6":"purchaseCarAdv(uint256,string,string)","785b1eb4":"PayEIF()","785b804a":"transferEtherInitiation(address,uint256)","785bc758":"setBaseStorage(bytes4,uint256,string)","785cc997":"mint(uint256,string,bytes)","785ce7ca":"walletBlockOf(address)","785da817":"unterminateFunding()","785e9e86":"erc20()","785fa627":"prizeAmount()","785fb499":"burnFoundersTokens(uint256,uint256)","78607c33":"FundWithdrawed(uint256)","7860ed56":"secondItemWrong()","78629c0f":"lockAddressToken(address)","7862affa":"calculateTimeBonus(uint256)","78635049":"MarzCoin()","786420d1":"getEstate(uint256)","786431c1":"MAX_OPS()","78644a4a":"userOfferAcceptElement(uint256,uint256,uint256)","7865f463":"mmul(uint128,uint128)","7865f611":"LogBet(address,bool,uint256,uint256,bool)","7866ed6e":"getBloodline(uint256)","78670289":"MAX_END_BLOCK_NUMBER()","7867060d":"approveComponent(string)","78683654":"convertMainchainGPX(string,string)","7868c89d":"getRateByStage(uint256)","78698e45":"_updatePrices(uint256,uint256,uint16,uint256[],uint256[])","786ab4b6":"addAccountWithBalance(uint16)","786b844b":"closeGame()","786bfd76":"SimpleConstructorString(string,string)","786c5065":"closeDistribution()","786caff8":"claimerOfSocialIdentity(uint256,uint256)","786cf3ee":"DurioTEST()","786d02d0":"getHoldingsCount()","786d8a25":"test_falseEqNoLog()","786e06f3":"sendETHtoBoard(uint256)","786e4799":"removeRatePlan(uint256,uint256)","786ecf16":"doRestart()","786edae0":"registerEndpoint(string,int256)","786ef70a":"earnedEthWei()","786fb317":"requestOutput(bytes4)","787089bd":"PandoraToken(uint256,string,string)","787091e9":"EABToken(string,string)","7870f889":"MyWhiteList()","78710d37":"seven()","78710f72":"canBuyTokens()","787112be":"set_saleAgent(address)","78719ee8":"DAppNodePackageDirectory(address,address)","7871a9ff":"Crypterium()","78720063":"EligmaSupplyContract(address,address)","7872e3da":"disbursementDuration()","78730d65":"nextLotteryTTMTokenId9()","7873447b":"getFrozenAccountList()","7873832e":"SingularDTVLaunch(address,address,address,uint256,uint256,uint256,uint256,uint256)","787394fc":"setJackpotIncrement(uint256)","7873bc61":"contestant(uint256)","78744754":"getClassName(uint32)","7874b66f":"ReferralActivated(address)","7874d32c":"unblockTokenTime()","78753818":"MAIN_SALE_VALUE_CAP()","7875bbe2":"DividendPaid(address,uint256,uint256,uint256)","7875d41b":"takeBet(uint256,uint8)","78761590":"findTargetCell(uint256,uint256)","7877f72d":"getHours(uint256)","78782027":"enter(string,address)","7878903c":"hasPreSaleEnded()","7878b66a":"isPauseSave()","7879e19e":"CollectAllFees()","787a08a6":"cooldown()","787addc3":"FideliumToken(uint256,string,string)","787b586f":"setMediumProbability(uint8)","787b6725":"removeProduct(address)","787bd6f9":"setDistribution(uint256[5])","787c17d9":"privateSell1Token()","787c23e0":"whitelistWallet(address)","787ccb61":"replenishPool(uint256)","787d024d":"mintLzToken(address,address)","787d64e4":"m_multiOwnedRequired()","787dbaf1":"feedTweet(uint256,uint256,string)","787dc68f":"createPromoAthlete(address,string,address,uint256,uint256,uint256)","787dc9f1":"getFee(bytes8,uint256)","787e9137":"collectedTokens()","787ed1f8":"sayOwnerHello(string)","787ed54f":"payDividendsManually()","787eda49":"assertEq20(bytes20,bytes20,bytes32)","787f9710":"namespaceTaken(bytes32)","787f9cc3":"ManualPriceChange(uint256,uint256)","787fd167":"GameJoined(address,address,uint256,uint256,uint8,uint256)","788023ff":"changeShareable(address[],uint256)","78809c52":"ratePerEthPhase1()","788102ff":"reservedFundsParking(address)","788222ae":"tokenEmail()","78831239":"deleteTopic(bytes15)","78831b36":"setDividendsWallet(address)","7883985b":"addrExecutor()","78843a95":"isTier1(address)","7884e787":"getDni()","78862e69":"deathData_f9()","788649ea":"unfreezeAccount(address)","7886b526":"checkRecords(uint256[])","78879d74":"betAmountAfterRakeHasBeenWithdrawnAndProcessed(uint256)","78880f4a":"population()","7888e957":"storageToUint(int256,string)","788a8c8b":"ARBI()","788ac4a8":"Petrocoin()","788acd7e":"issueBounty(address,uint256,string,uint256,address,bool,address)","788b2ba2":"Stock(string,string,uint256,string,uint256)","788bb8df":"EUR_Omnidollar()","788bc78c":"setVersion(string)","788bc8c0":"tokensToUsd(uint256,uint8)","788c26b4":"createNewVesting(address,uint256,uint256,uint256,string,uint256,bool)","788c4023":"isWalletLocked_Receive(address)","788c5999":"mintMode()","788ce6f2":"icoAddress()","788d135b":"GoForLaunch()","788d1fa6":"setInt8(int8,int8)","788d3851":"voteOpen()","788d5881":"licenseTermsHasMinCost(bytes32,bytes32)","788e0760":"shpExchangeRate()","788e26e7":"sponsorDeposit()","788e2c3c":"getRoundRemaining()","788e31bf":"addBoolSetting(string,bool,address,address,string)","788e72a5":"purchaseProduct(bytes32,uint256)","788e7909":"testTransferFromDoesNotAllowTransferOfMoreThanExistingTokensByDelegate()","788efb9e":"get_taker_fee()","788fa540":"CANONICAL_PRICEFEED()","78912dee":"FINTRUX_RESERVE_FTX()","78912eae":"sendTransaction(address,uint256,uint256,string,uint256,bytes)","7891663d":"HDXToken()","78918e89":"deleteCell(address)","7892cabf":"mixGenes(uint256[2],uint256[2],uint256,uint256,uint256)","7892d29e":"calcTradeFee(uint256,uint256)","7892fd29":"ROUND_TIME()","7893d936":"associate(bytes32,bytes32)","7893f4c2":"DBToken()","7894aafa":"createDivCard(string,uint256,uint256)","7894d1d0":"makeConcept(address[],uint256[],uint256,bytes,address)","789533e9":"getTeamPrice(uint256)","78954b3b":"previousContract()","7895dd21":"claimTokensFromSeveralAuctionsAsSeller(address[],address[],uint256[],address)","7895f853":"isFundLocked()","78960df6":"policyCandyBalance()","7896904e":"DaaToken(string,uint8,string,uint256)","7896cd95":"exchangeEnableCost()","789770f4":"ethToToken()","7898278f":"emergencyFreezeAllAccounts(bool)","78984793":"setLimit(address[],uint256)","7898acef":"usernameOf(address)","7898b917":"getKey(address,string)","78990684":"closeAllSales()","789a12fd":"getRafflePlayers(uint256)","789b2e6c":"payDay()","789b4690":"diviRate()","789c617c":"intStorage(bytes32)","789c6740":"testEmptyCart()","789cf5e2":"auctionSumPlat()","789dfc91":"SafeNetToken(uint256)","789e4e53":"createContractCollection(string)","789ea7dc":"becomeBatlord()","789fdcb6":"DoMusicPayout(uint256)","78a17883":"_batch4_icosaleEndTimestamp()","78a1b7c2":"pct(uint256,uint256)","78a2157a":"erc20ECT(uint8)","78a29c66":"votesAvailable(address)","78a2e101":"TOKENS_FOR_PRESALE()","78a32742":"Pinged(address,uint256)","78a5b1b0":"blockHeaders(bytes32)","78a5f0ca":"withdraw_dao_fund(address)","78a62e9d":"isAppCode(uint32)","78a6c6d2":"createBreedingAuction(uint40,uint128,uint128,uint40)","78a70de5":"safeMathDiv(uint256,uint256)","78a71d78":"sendMail(address[],uint256,bytes32,uint256,bytes32,uint256)","78a72e0d":"encodeTransfer(uint96,address)","78a77b84":"closeRaffle()","78a7b804":"setKittyCoreAddress(address)","78a7e17d":"convert10MTI()","78a83232":"violaToken()","78a89567":"getTokenCount()","78a8b1fb":"ZTKGamers()","78a90a59":"presaleStop_13_December()","78a9e88a":"parseBitcoinComFeed(string)","78a9eeed":"listAll()","78aa08ed":"lotteryFee()","78aa34bf":"test_6_assertGasUsage2000Boards()","78abafaf":"limitAmount()","78abf854":"_budgetEndAndOfficalVotingTime(uint256)","78abfbeb":"finalization()","78ac19f9":"GexPayTest2Token()","78ad76e6":"DeBiToken()","78adf55e":"PreICOPart()","78ae12d8":"PRE_SALE_1000_ETH()","78ae88d1":"newDeal(uint256,uint256,uint256,uint256,uint256)","78af5058":"picosSold()","78af63ac":"btcRaised()","78afda07":"firstContractAddress()","78b04df0":"Play(address,uint256,uint256,uint256,uint256)","78b0cb23":"addGpgKey(string)","78b14f0a":"addCharity(address)","78b150bd":"contractUpgradable()","78b17bd1":"supercustomhash(bytes)","78b17ccf":"CANCELLATION_FEE()","78b226c4":"updateMemberAddress(address,address)","78b27221":"mintFungible(uint256,address[],uint256[])","78b290b5":"OPERATION_HOLDER()","78b29105":"forceBuy(address,address)","78b5a576":"updateDexterity(uint256,uint8)","78b6e20c":"untrackTreasuryToken(uint256)","78b71079":"hasEnoughGrantAmount(address,uint256)","78b83360":"freezingBalanceInfoOf(address,uint256)","78b8a6c2":"issueTokensInternal(address,uint256)","78b8c58c":"getTokenInfoNumToknes()","78b99c24":"pricingStrategy()","78ba24f2":"addContractBalance(uint256,uint256)","78bb5164":"whitelistLength()","78bb9e54":"niceguy4()","78bba530":"communityHolder()","78bc254b":"setPreIcoParameters(uint256,uint256,uint256,uint256)","78bc6460":"getCallGasPrice(bytes32)","78bca3e7":"NeuralNetwork()","78bcd39a":"accountLockCheck(bytes32)","78bd7935":"getAuction(uint256)","78be0496":"MTF(uint256,uint256)","78beda71":"createPromoMineral(bytes32,address,uint256,uint256)","78bee6b4":"transferToAnotherAddr(address,uint256,bytes32)","78bf2b53":"setToken(address,uint256)","78c01961":"EmitEntityIds(address[])","78c24e9b":"adminSetFeeDialNumber(uint256)","78c2c849":"burnUnicorns()","78c37a45":"amendCount()","78c38a79":"setOwnedArea(address,uint256)","78c3b3a5":"futureRoundWallet()","78c3df77":"addProfitPerShare(uint256,address)","78c3e2ec":"createTask(address,string,string,uint256)","78c3e7a4":"generateCardsFromClaimForOpponent(address,address)","78c3f298":"pvtTokens()","78c53533":"getPoolOwner()","78c5e86f":"crowdsaleClosedTime()","78c62ca4":"changeDestinationAddress(address)","78c68573":"getLineUpEnable_miner(address)","78c6d437":"founders_addr()","78c70a4e":"allowAddressToSendMoney(address,address)","78c7524d":"versionIndex(bytes32,bytes32,address)","78c83f71":"rebalance_insert(uint256)","78c8cda7":"removeWhitelist(address)","78c91d29":"getCountCanAdd()","78c9f9cf":"computeEarningsAmount(uint256,uint256,uint256,uint256,uint256)","78ca923d":"nearestKnownBlock()","78caa728":"getLLV_edit_12()","78cac18d":"updateInfo(address,address,uint256)","78cb2f56":"DENtoken()","78cc180b":"bpSaleIssue(address,uint256)","78ce14dd":"CryptotalksToken()","78ce341a":"enablePayable()","78cf19e9":"reserveTokens(address,uint256)","78cfccb5":"REDDCCOIN()","78cffc09":"set_location(uint256)","78d012a6":"roundIn()","78d0a415":"getDthTeller(address)","78d18198":"getNextSnapshotBalance(address)","78d18bef":"withdrawalsInitiated()","78d19e42":"MintableToken(uint256,string,uint8,string)","78d22ab0":"getStageMinWeiAmount(uint256)","78d34986":"updateKittensRemainingForSale()","78d3633b":"illiquidBalance(address)","78d38d1a":"SenegalvsColombia()","78d45eb6":"checkAccess(address,bytes1)","78d46c3f":"listSpriteForSale(uint256,uint256)","78d4e808":"fetchCancelledOrdersForPayerByAdmin(address)","78d55ac1":"MRCCToken(uint256,string,string)","78d5e123":"unstakeTokensManually(address)","78d63908":"doBuy(address,uint256,bool)","78d63c59":"AMFBToken()","78d6525f":"test_validEmptyEqEmpty()","78d6fd25":"getRecTransactions()","78d74f60":"LyCI(address,string,uint8,string,string)","78d7ccea":"ComputeEggsSinceLastHatch(address)","78d8615f":"addEvent(uint256,string,bytes32,bytes32,string,bytes32)","78d8e17b":"totalGenesisTokens()","78d8fed8":"setUnlock(bool)","78d9472f":"setDefendBoostMultiplier(uint256)","78d9b048":"teamPoolInstant()","78d9c387":"newContest(uint32,uint256,uint256,uint32,uint256,uint32)","78da32f2":"setUintF1F2F3(uint256,uint256,uint256)","78da7ba1":"presaleEndTimestamp()","78dbce5f":"GetStakingNow()","78dbfd91":"createBuyOrder(address,uint256,uint256,uint256)","78dc6b7e":"transferring(address,address,uint256)","78dc7017":"getYellowCards()","78dc70c0":"feePeriodStartTime()","78dda193":"getCarState()","78df0fe1":"getProfits(address)","78dfd3a9":"getNumParticipants(uint256)","78e03373":"operationalAddress()","78e24ab5":"SALE1_RATE()","78e2df0e":"soft_cap()","78e4ca77":"Connect4eth(address,address,uint256)","78e4d750":"PenPalToken()","78e5d841":"HaltableToken(address)","78e619df":"DOOMCOIN()","78e65d2e":"bridgeValidatorsImplementation()","78e7058e":"advisorsTokensHolder()","78e77477":"releasedAdvisorsTokens()","78e7e5ea":"LAND_ADDRESS()","78e80b39":"UserGetPrize()","78e8356c":"removeBet(string,uint256)","78e8488d":"gameGiftSentAmount()","78e870cd":"balances_available_for_crowdsale()","78e88c3c":"getMyFee(address)","78e89085":"Dispute(uint256)","78e8b8fc":"dataSourceCallbackGroup(uint256,uint8,uint8)","78e8cab5":"gcpm(uint256)","78e90190":"mokenBytes32(uint256)","78e95645":"noteChainFee()","78e97925":"startTime()","78e9f1ba":"minimumBetAmount()","78e9f81f":"assignRoleWithExpiration(address,bytes32,address,uint256)","78ea787b":"getDefaultAllowance(string)","78eb890b":"checkErrors()","78eba8fc":"icoCheckup()","78ec0adf":"scannedSilverCaps()","78ec1eb4":"checkIfEligable(address,address)","78ec383a":"MRC()","78ec6dbd":"Beth()","78ec81a0":"sendEarnings(address)","78ec96a0":"GREEN()","78eca227":"getBuyOrderInfo(address,address)","78ecabe6":"changeAvailableSpend(uint256)","78ed2178":"linkFileToTask(address,bytes32)","78ed43c1":"administrationContractFrozen()","78ed8dfd":"allocateUnsoldTokens()","78ed9156":"diary(uint64)","78ee6035":"cancelPledgePayment(uint256)","78eef9d4":"move_excess_for_bucket(uint256,uint256)","78efa1db":"COIN_SUPPLY_ICO_TIER_3()","78f0161a":"setGreyGreenPrice(uint8)","78f08268":"getUsersCount(address)","78f08f2e":"getLineStat(uint256)","78f13614":"ATTR_LEASABLE()","78f1a5ce":"addTeamAndAdvisoryMembers(address[])","78f2144b":"_originalBuyPrice()","78f22cc0":"getAuditRegistrar(uint256)","78f305c6":"getStartDate()","78f55622":"calCurrentVirus(address)","78f55de4":"sxpNumber()","78f5958f":"setblocksPerMonth(uint256)","78f5e0ec":"CampingCoin()","78f5e59f":"TOTAL_SUPPLY_VALUE()","78f74fbe":"tokenIssuedPrivateIco()","78f76779":"batchOrderTrade(uint8[2][],bytes32[4][],uint256[8][],address[6][])","78f79187":"DailyAndSnapshotable(uint256)","78f7aeee":"tokenAllocated()","78f7d9c6":"payBill(uint8,uint256)","78fad7bc":"champToken()","78faff96":"isSet(address,address)","78fbc9ea":"weiToCollect()","78fc3cb3":"canTransfer(address)","78fc52b3":"processDiceRoll(address,uint256)","78fca301":"Menu03(uint256)","78fd98d1":"freezeAmount(address,uint256)","78fddd69":"MedAIChain(uint256,string,uint8,string)","78fe2951":"enableService(uint256)","78ff54eb":"updateRestrictedVault(address)","7900438b":"registerDevice(bytes32,bytes32,bytes32)","79008da5":"addRandomTile(uint16,uint8)","790105ff":"withdrawEIP20Token(address)","79018524":"Token(uint256,address)","79032fa7":"storeHorsey(address,uint256,address,bytes32,uint8,uint8)","790377dc":"getLastAuditId(address)","7903d8c8":"canSend()","79049227":"lockupSeconds()","7904d388":"ethRec(uint256)","7904f688":"distributePrizes(uint16)","79053739":"damage(uint8[176],uint8,uint8)","790587d1":"updateIpfsGateway(string)","79061e96":"withdraw_ether()","7906305b":"upgradeTier(string)","790683d3":"getTopicByOffset(uint256)","79081feb":"getCardLeaseLength(uint8)","7908f25c":"thirdTeamWithdrawal()","79099e15":"MAX_USD_FUND()","7909da6f":"createExchange(uint256,uint256,uint256)","7909f569":"gasForFLKD()","790a091e":"test_rewardPoolShare_notTranscoder()","790b1656":"ThreeEtherFree()","790be9b5":"SETC(uint256,string,string)","790c33b8":"getReportingTokenOrZeroByPayoutDistributionHash(bytes32)","790ca413":"launchTime()","790cbfa0":"createMeshPoint(int256,string)","790d4e11":"getLosersOnePercent(uint256)","790dd0f5":"fuint256(uint256)","7910085d":"fipsIsRegistered(bytes20)","79103c2e":"RejectedApplication(address,uint256,string)","7910830a":"setCrowdSaleStatus(bool)","7910867b":"isApproved(uint256)","7911d80a":"Presale1Sold()","7912b0f1":"HOPEToken()","79132085":"APSP()","79141f80":"getBetInfo(uint256)","791455dd":"addPieceAndHash(string,string,string,address)","79147cf0":"_result()","79147d07":"UnsoldAllocation(uint256,address,uint256)","7914d10f":"setminContribution(uint256)","7915785e":"accountsToAllocate()","791581c6":"addTime(uint256,uint256)","7915c069":"register(string,address,address)","7915c9e0":"verifyTransfer(address,address,uint256,bool)","79162aeb":"pauseEmergence()","79164773":"nextForkBlockNumber()","7919233f":"emitWorkOrder(address,uint256)","7919792b":"doThrowOnDivByZero()","791af2b6":"dkBB(bytes32)","791af8e4":"totalExtraTokens()","791b1150":"notify_payment_reject(uint256)","791b51f1":"Consulting(address,address)","791bbe35":"TheDeadShitCoin()","791cbc4f":"stopConvertTokens()","791dd41c":"ownerOverride(uint256)","791f0333":"equalStrings(string,string)","792037e3":"shut(address,bytes32,address)","79203dc4":"totalAllocation()","7920d804":"getKing()","7920f72c":"_tag(int256,string)","79214878":"regionExists(uint256)","792166b8":"createEscrow(uint256,uint256,address,address)","79216aec":"ManagedToken(address,address[])","79216f5f":"add_monster(uint16,uint16,uint16)","79217982":"preIcoMinInvest()","79219a24":"getLockRecordCount()","7922841c":"registerAssetHeader(int256,string,string,string,string,string)","7923715b":"RPEICO_TOKEN_SUPPLY_LIMIT()","79250dcf":"getApprovePreSignedHash(address,address,uint256,uint256,uint256)","792544af":"get_DB_info(uint256)","79254bb8":"right29(uint256)","792651b0":"app_storage()","7927448a":"getTicketTime(bytes32)","7927bc0c":"list_token_bid(address)","792a152d":"addRegion(uint16,uint256,string)","792ad365":"lastBlock_f15Hash_uint256()","792b22c6":"returnCoupon(address[3],bytes32)","792b476b":"getPositionCount1(address,address)","792c02ea":"stagesLength()","792c91c2":"setRecordId(uint256,bytes32)","792cb544":"_setCertificateSigner(address,bool)","792e1ffc":"authorize(uint8,bytes32,bytes32,address)","792e79c5":"stealCardWithTwitterId(uint256)","79304063":"depositsSigned(bytes32)","7930a433":"withdrawDelta(uint256)","7930acd6":"getCCH_edit_27()","79318d81":"closeRefunds()","7931a765":"Issued(uint32,address)","793267f0":"vaildBalanceForTokenCreation(address)","79326c01":"isSaleOwner()","7932f07f":"getRegionBlockUpdatedAt(uint256)","793318eb":"MMMPCoin()","79332159":"Bet(address,address,uint256,uint256,uint256)","79341ca1":"getRoundAmtPot(uint256)","7934b50f":"_lockToken(uint256)","7934f4ed":"processPayment(uint256,bytes)","7935326b":"preICOTokensAllocated()","79362167":"getBillboard(address)","79372f9a":"ClaimReward()","7937f46d":"setBBO(address)","79381c80":"performRefund(bytes32,uint8,uint256,uint256)","7938cc42":"allocateProofTokens(uint256)","7939a10b":"getSellValue(uint256)","793a2cd1":"isPausedICO()","793a8c95":"owner_updatePayout(uint256)","793c0fd4":"authorizeSpender(address,bool)","793ca3fe":"getFirstCycleBlock()","793cd71e":"cashOut()","793cf430":"option30name()","793d424e":"getBLAddress()","793d7165":"fSqrt(uint256)","793dae12":"acceptSettlement()","793e9b0b":"OPTION_POOL_ALLOC()","793ec6c2":"turnOffCanUpdateBackWindowAdjustmentRatio()","79409b19":"EthToUsd()","79412da6":"withdrawalTokens(address,address,uint256)","7941a062":"getBlocksRemaining()","7941d7bd":"changeTokenOwnerByAdmin(uint256,address)","79420fb1":"tierTotal()","79428570":"getTeamId(uint256)","7943f2ec":"withdrawCoinToOwner(uint256)","79444ad3":"handleForTokenId(uint256)","7944875b":"StopSale()","7944b4b9":"mileStone(address,uint64,uint8)","79456cb6":"test_1_method()","79459ac3":"buy10(address[],address[],uint256[],bytes,bytes,bytes,bytes,bytes,bytes,bytes,bytes,bytes,bytes)","794752c7":"askForgiveness(string)","79480a4c":"getOrderValuesFromData(bytes)","79480fe3":"nextMintFeeAbs(uint256)","79485d41":"DeauthorizeServiceProvider(address,address)","7948a9c5":"TokensWithdraw(address,uint256)","7948f523":"setAmbiAddress(address,bytes32)","79491370":"closeSale(address)","79492f30":"allocationFor(uint256)","7949859e":"UpdateToeknLimitICO(address,uint256,uint256)","794ab0a8":"etherPriceInDollarIn()","794b0c62":"DAICO()","794b0e6b":"addExperience(address,uint256[],int32[])","794c0c68":"stakingEpoch()","794cea42":"search(address,address[])","794d0d8d":"WithdrawVault(address)","794df640":"updateUsdEthRate(uint256)","794e9434":"awardWeeklyLottery(address,uint256)","794ee205":"createMarriage(bytes32,bytes32,uint256,bytes32,bytes)","79501a83":"isBiometricLocked(address)","79502c55":"config()","7950c5f8":"verifyingKey()","7951357e":"Suspended()","79515566":"calcAllowedWeisToInvest(uint256)","7952a0ed":"MetaProject()","79530087":"BirCoin()","79538e47":"addVpf(bytes32,uint256,uint256,uint256,uint256,int256[])","7953ae77":"MainSaleDeadline()","7953e0ab":"dateEcoRelease3()","79544754":"getBonus(address,uint256,uint256)","79557e4f":"traded_token_balance()","7955a65f":"adminWithdraw(address[3],uint256[3],uint8,bytes32,bytes32)","7955dd45":"player_withdrawPendingTransactions()","795612d6":"buyItem()","79564072":"directorLockUntil()","7956f46a":"AggiungiProfessore(address)","7957170b":"getApproveRecord(uint256)","795741c8":"withdrawEscrowFees()","79583e22":"buyOrder(address,uint256,uint256)","7958533a":"meta(uint256,bytes32)","795a16e3":"setRecipient(string)","795b0e16":"TransferAllowed()","795b5b83":"createSaleCardToPlayer(uint256[],address,address)","795b9a6f":"scheduleCall(address,bytes4,uint256,bytes)","795bfd7b":"togglePreventDoublePurchases()","795c1713":"FCoinToken()","795c6437":"isWorkflowState()","795da78f":"coinsIssuedCmp()","795dbede":"idx()","795e09ef":"privilegedAccountsCount()","795e4547":"changeContractUpgradability(bool)","795ebb68":"setTokensDecimals(uint256)","795fcd6e":"RelentlessConscience1Token()","795ff8aa":"safeTokenWithdrawal(uint256)","7960d19b":"MediatedTransactions_Log(uint256)","79624add":"MAX_DAILY_SOLO_SPEND()","7962525c":"getRoundNumberOfBets(uint256)","79630bd8":"rate10()","7963b478":"assertEq28(bytes28,bytes28,bytes32)","79644576":"newProposal(uint256,address,uint256,string)","7964ea87":"claim(bytes32,uint256,bytes)","79655bd0":"getStages()","7965bb86":"STQPreICO2(address,address[])","79662bd5":"withdraw(string,address,uint256,string)","796676be":"urls(uint256)","796686a9":"book(uint256[],uint256)","7966c431":"subString(string,uint256,uint256)","796736f0":"tradeBalances(address,address,uint256,uint256,address,uint256,bytes32)","7967a50a":"preSaleEndDate()","7968196c":"amountRaisedInUsdCents()","79681c94":"buyRoundDataRecord(uint256,uint256)","79683e63":"inviteInit(address,address)","79687166":"uintToBytesForAddress(uint256)","79694f08":"topUpDelegate(address,address,uint32,uint192)","796a6ec9":"Credited(address,uint256,uint256)","796a8076":"updateAuctioneer(address)","796b89b9":"getBlockTimestamp()","796c0c78":"allocatedTokens(address,uint256)","796c5e5b":"saveHash(bytes8,string)","796c8902":"getInvestor()","796d67da":"numberOfProposals(bytes32)","796d8950":"StromkontoProxy()","796dc916":"pauseResumeContract(bool,bytes32)","796f6281":"tokenFront()","7970785d":"withdraw(address[],uint256[],address[])","79710f07":"drainERC20(address)","79716e43":"confirmTransaction(bytes32)","7972d079":"setMfgValues(string,string,string,string,string,string)","7973830a":"getMapValue(uint256)","7973b370":"ProudOfYourCoin()","7973c57f":"fechVoteNumForCandidateBySnapshotBlock(address,uint256)","7974a9e6":"publishOption(uint256,uint256,uint256)","7974f8fe":"changeTime(uint256)","7974fdbd":"secondStageRefund()","79753e82":"initAirdrop()","7975752c":"ScabbageToken()","79758d46":"reading_card_at(uint8)","7975c56e":"oraclize_query(uint256,string,string)","7975c609":"accountLevels()","7975ce28":"buyTokens(uint256,uint256)","7976eaa2":"getBonusTokens(uint256)","79770d5f":"minBidDifferenceInSzabo()","7977f708":"addRoleCapability(uint8,address,bytes4)","79787196":"killTotalSupply()","7978c7ed":"exotownToken()","7978f1b2":"licenseCostNumerator()","79798ccb":"startTokenSale()","79799193":"FreezedCash()","797a49b6":"createPoll(string,uint8)","797af627":"confirm(bytes32)","797b5877":"NCU(uint256,string,string)","797bfaf3":"ico1endTime()","797c6f3a":"advertisingUse(uint256,uint256)","797d660f":"getCandidateNumberList()","797d8b85":"calculateDividend()","797d9437":"loadedRefund()","797df209":"configureVesting(uint256,uint256)","797e2aec":"addCharacters(uint8)","797f6bb1":"raiseTraderUnregistered(address)","797f73ff":"alreadyClaimed()","797f87ba":"chests()","79808552":"cancel_lottery()","7980a1ab":"increasePaymentsBalance(address,address,uint256)","7981e7f1":"generateTokensByList(address[],uint256[])","7981fd67":"loikikd()","7982abf0":"testTransferGas()","7983eb31":"distributeEvenly(uint256)","798405fc":"Hold(address,address,uint256,uint256)","79843715":"crowdSaleMax()","79848daa":"setReleaseManager(address)","7984932e":"releaseNow(uint256,uint256,uint8[],uint256,uint256,uint256,string,string)","79853c7e":"payFromCampaign(bytes32,address,address)","79859a78":"setMaxAgonCount(uint256)","7985b860":"AboutBill(uint256)","7985ee8f":"deleteRewards()","7986c724":"BOUNTY_TOKENS_LIMIT()","7986cbfc":"getGroupbyIndex(uint256)","798764ec":"ShowCoinToken()","79878757":"passTokensToTheTeam()","79881b5a":"setPresaleStartsAt(uint256)","79885b91":"LIB()","79891359":"getOnePlayCoin()","798929da":"distributeCoins(address,uint256,uint256,uint256)","798974dd":"getNumProposals()","798a970b":"setUnitCoinProductionIncreases(address,address,uint256,uint256,bool)","798b18fd":"currentRateM()","798b3ecf":"processCooldown(uint16,uint256)","798b7a71":"callOnce()","798bede1":"advisorSupply()","798c1f2a":"do_bet(uint256)","798c6e0f":"clearStages()","798ce54f":"payoutPartial(uint256)","798d05fa":"getCountTeams()","798ec637":"transferEtherToSender(uint256)","798f3e85":"PublicTokenReleased(uint256)","798f9790":"getResoDetails()","798fd178":"getFrom()","79902299":"recalculateTotalFees()","79905753":"reclaimFundMultiple(address[])","7991c63a":"MetaChanged(uint256,bytes32,bytes32)","7992e39f":"TierAmount()","7993e5c2":"Devcon2TokenForTesting()","7994f55b":"setEndpointParams(bytes32,int256,bytes32[],int256)","79953633":"ownersProductAdded(address,uint256,address)","79955b4c":"richardAddr()","7995b15b":"nowInSeconds()","7995ba90":"withdrawExcessToken(address,address)","7995ed8c":"ClaimedWei(uint256)","79968b77":"sellLicense()","79974ce8":"MiningAttemptEvent(address,uint256,uint256,uint256,uint256)","79978630":"settleChannel(address,uint256,uint256,bytes32,address,uint256,uint256,bytes32)","7997b997":"doMelt(uint256,uint256)","79981387":"setWhiteList(address[],address,bool[])","79984882":"getProxyExecID(address)","79987504":"ECN(uint256,string,string)","7998a1c4":"identifier()","79991997":"enter(bytes32,bytes8,uint16)","799957d2":"TTC()","7999c7ca":"myUsername()","799a5359":"transferToken()","799ae223":"flipCoin()","799b3864":"getVersionLength()","799b7bb8":"PRE_ICO_ADDR()","799c0468":"withdrawMarketingAndCommunityOutreach()","799c7b69":"_resetGame()","799c8ef2":"callScheduler()","799cd333":"sign(bytes32)","799d916b":"getObjectValueByKey(string,string)","799dcf7e":"staticArrayTests()","799efef0":"setLockedWalletAmount(address,uint256,bool)","799f0c5d":"locked_funds_for_revealed_spins()","799f4079":"unholdSubscriptionOffer(uint256)","799f7043":"recordBet(bool,uint256)","79a0e5be":"changeMessage(uint16,string)","79a18b3a":"isRoundThreeSalePeriod(uint256)","79a1c1f6":"proposalStatus(bytes32)","79a1ed16":"WithdrawalQuick(address,uint256,uint256)","79a2bbec":"_addResources(address[],bytes4[])","79a2bfa5":"PRE_SALE_MIN_BUY()","79a34619":"startTimeMain()","79a3510d":"thisVoterExists()","79a37bd0":"tellTime()","79a410a7":"bonusesOf(address)","79a411ff":"ScareERC20Token()","79a4b4bd":"sellPrice(uint8)","79a4ee93":"testDeregisterCustomer()","79a6877f":"initializeToken(string,uint256,uint256)","79a7cfee":"setAddress(bytes32,bytes32,address)","79a7de4f":"buildId(address,uint256,bool)","79a8416e":"checkPayment()","79a84750":"createTokensTo(address,uint256)","79a85e6c":"getProductInfo(uint256)","79a87b19":"migrationDestination()","79a88683":"startCrowdsalePhase3Date()","79a8945c":"isDeveloper()","79a89b06":"releaseExpiredEscrow(address,address)","79a8ba40":"createRequest(uint256,address,uint256,string)","79a8f2fa":"processRoulette(address,uint256,bytes32,uint256)","79a958c2":"codeUpdateState()","79a9986c":"addBadge(string,uint256)","79a9e9ea":"IkuraToken()","79a9f14d":"getBcouponBalances(address)","79a9f23f":"transferAllowedAdd(address)","79a9fa1c":"buyback(uint256)","79a9fd36":"SUAPPToken()","79aa024e":"setAirdropAdmin(address,bool)","79aa668d":"setEventsContract(address)","79ab295f":"SALE1_CAP()","79abb2f5":"play_paper()","79aca4e0":"acceptSmartTokenOwnership()","79ae0c0a":"updatePrice(bytes32,uint32,uint64,uint32)","79ae1c36":"setStopDefrost()","79ae77cf":"OEM_Wallet()","79ae9c5e":"clearLC()","79af55e4":"increaseLockTime(uint256)","79af6547":"addLockStep(uint8,uint256)","79af8380":"addCrowdsaleContract(address)","79b0797c":"AmIPlayer1()","79b2614d":"currentMintNonce()","79b37a86":"usdRate()","79b45b18":"removeEmployeesWithExpiredSignaturesAndReturnFadeout()","79b466b0":"TOTAL_TEAMS()","79b4a2c7":"transferMultiAddress(address[],uint256[])","79b5b1d1":"EvaCurrency(string,string)","79b7b30b":"endTrading(bool,bool)","79b80455":"onTimeLock()","79b9a060":"changePayout(uint256)","79ba5097":"acceptOwnership()","79ba50b1":"LAME()","79baa8a9":"BasicIncome_CoFund()","79bae8a1":"test_failed_payment_throwing_token()","79bc2040":"canbuynum()","79bc46b3":"SELL_HARD_LIMIT()","79bcabf4":"Authority()","79bcae2a":"createFuel(uint256,string,uint256,uint256,uint256)","79bd04f2":"_bidLaterShip(uint256,uint256,address,address)","79bd42cf":"END_DURATION_BETTING_BLOCK()","79be02af":"Read(address)","79bed048":"turnOffCanUpdateAmountToTakeAsRake()","79bf8df3":"mModeratorKeys(uint256)","79bfaaeb":"visaLength(address,uint256)","79c0909e":"getRandomFromBlockHash(uint256,uint256)","79c0b9fb":"sanityCheck(uint256,uint256,int8,int8,int8)","79c0d5ae":"tokensInvested()","79c0f30e":"advancedThreshold()","79c12db5":"EventTicket(uint256,uint256)","79c20b41":"changeArtName(string,string)","79c30e49":"openCdp(uint256,uint256,uint256,uint256,address)","79c310a6":"increasePlayersJadeProduction(address,uint256)","79c3199d":"preIcoStartDate()","79c36409":"DifToken(uint256,string,uint8,string)","79c3dd32":"thirdLevelPrice()","79c3ddc1":"isPackageOwner(string,address,address)","79c3f694":"_getPVPFeeByLevel(uint256)","79c4264a":"earlyBirdMinPerPerson()","79c4264b":"matchCount()","79c597ff":"ends()","79c5ba97":"enterBidForGanToken(uint256)","79c5c6b6":"MyWill()","79c5cb1c":"createItem(string,uint256,uint256,uint256)","79c63c40":"dxfOpen()","79c65068":"mintToken(address,uint256)","79c66892":"EmrCrowdfund(uint256,uint256,string,string)","79c69195":"setParamsTotalSupply(uint256)","79c6a1b8":"registerAdmin(address,string)","79c6b667":"registerPoA(string,bytes32,uint64[],uint64[],address,address,string)","79c6c11a":"takeEther(uint256)","79c7180d":"Erc20SummaryLogic(address)","79c73464":"numAdrs()","79c749cd":"generateContentID(string)","79c74a38":"Fomo5d()","79c7c806":"proofExists(string)","79c7f38c":"_freezeAccount(address,bool)","79c84100":"getFreezeHourglass(bytes32,bytes32)","79c88f20":"datacoin()","79c8fe30":"setMaximumGasPrice(uint256)","79c9e396":"test_oneInvalidEqBytes2()","79ca0792":"beneficiaryMultiSigWithdraw(uint256)","79ca9ad4":"tokensToEth(uint256)","79caf670":"ethealController()","79cb5a2f":"setEtheraffle(address)","79cb650f":"testAliceFooKill()","79cb657a":"setRateStalePeriod(uint256)","79cc6790":"burnFrom(address,uint256)","79cc90c4":"repossess()","79ccd1a1":"BetherBank()","79cce1c5":"getReleaseHashes(uint256,uint256)","79cd421d":"ERCTestToken()","79ce0515":"removeCP(address,address)","79ce37e1":"deadline_modify(uint256,uint256)","79ce9fac":"transfer(bytes32,address)","79cef607":"_purchaseTokens(string,address,uint256)","79cf3a7a":"zeroOut()","79d007f7":"forceOffsetExtraFeeRate()","79d00c5d":"EasyCrowdsale()","79d10a76":"SedPosToken()","79d116ed":"setWhiteListingAdmin(address)","79d1d4fa":"verify(bytes,bytes,bytes,bytes32)","79d220ae":"setCrowdsaleOpenTimerFor(uint256)","79d2e48d":"upgradeFinalize()","79d303ae":"doStart()","79d3d547":"grantToken(address)","79d42bfe":"CLNRaised(address,address,uint256)","79d4fe00":"totalTokensICO3()","79d60cdf":"LongChain()","79d6348d":"sign(string)","79d68f79":"COIN_PER_ETHER_BOARD()","79d88d87":"forbid(bytes32,bytes32,bytes32)","79d8cc7b":"setFlights(uint16[],uint16[],uint256[],uint256[])","79d95c5a":"setMaxCap10X(uint256,string)","79d9e979":"minimumDealAmount()","79da06a2":"BlockSwapWrapperGolemNetworkToken()","79da9747":"switchCrowdsale()","79db228a":"RegisterList(address[],bool)","79db5f67":"removeRole(address,uint256)","79db671d":"upadateContributorsCount(uint256)","79db77a3":"removeStaffWhitelist(address[])","79dbdbb9":"CKYAdv(uint256,string,string)","79dc04c0":"BCTVToken(uint256,string,string)","79dc10a6":"takeOwnershipFeePercents()","79dd02cb":"PerfectCoinControl()","79dd822a":"setSignatureRest(bytes,uint256)","79ded380":"setRabbitMother(uint32,uint32)","79df2a4c":"ReferredInvestorAddition(address,address)","79df4fa2":"startDeposit()","79df896d":"ScandinavianEKrona()","79e05a36":"getUintField2()","79e097f0":"addVotePair(address,address)","79e0ef1b":"withdrawBalanceAmount(uint256)","79e0f59a":"setEarlyParicipantsWhitelist(address[],bool[],uint256[],uint256[])","79e1250d":"setTotalToken(uint256)","79e12f7e":"getBoardByHash(bytes32)","79e1c9dc":"changeAmountPerEther(uint256)","79e1fa2e":"convertToEur(uint256)","79e23483":"addLockValue(address,uint256)","79e2bbea":"getLifeVal()","79e35d0b":"poolcoin(uint256,string,string)","79e468ef":"createLand(address)","79e54e6e":"AleKoin()","79e58973":"coinBalanceOf()","79e58cfd":"transferIcoship(address)","79e79023":"KuaiMintableToken(address,uint256)","79e8b8eb":"lastSubTokenCreatorOf(uint256)","79eaaf61":"totalTiers()","79eac7c3":"confirmOccupancy()","79eb16d4":"calculateShareETH(address,uint256)","79eb26cc":"RANGE_SCALE()","79eba0b6":"showPrivateVars()","79ec3864":"getMemberAtAddress(address)","79ec4f19":"setStartAndEndTime(uint256,uint256)","79ed13a7":"availableOptions()","79ed3d69":"setNextCommonTTMTokenId2(uint64)","79edfa7d":"setMetadataUrl(string,string)","79ee54f7":"getRewards(address)","79eee392":"DEVELOPERS()","79ef6858":"addItemToMenu(bytes32,uint256)","79ef704e":"addLogic(address)","79efb507":"oldData()","79f00703":"setEthartArtReward(uint256)","79f015b2":"getCarProductName(uint32)","79f0b427":"log_demurrage_fees(address,address,uint256)","79f0c524":"ParseHeaderData(bytes)","79f0cd62":"revertTokensByKYC(address,address)","79f0f7b3":"safeMulWithPresent(uint256,uint256)","79f119cd":"PXP()","79f1433c":"post_energy_balance(int256)","79f16ba1":"ShanDianLian()","79f1987d":"thirdExtendedBonusSalesEnds()","79f1a6ef":"_noMatchingPairs()","79f3b481":"putTreeOnSale(uint256,uint256)","79f57e68":"getAsAddress(bytes32)","79f59f09":"ParsecTokenERC20()","79f645ea":"RANDOMIZER_RETRY_COUNT()","79f64720":"cancelAndReissue(address,address)","79f68f85":"forwardFunds(bool)","79f74fd5":"ControllerSet(address)","79f7a873":"isAtLeast(uint256,uint256,string)","79f7e600":"setApproveOwner(uint8,bool)","79f90d6c":"ownerPauseContract()","79f9578c":"queryBalanceMinter()","79f96600":"getCurrentFeeWindow()","79f9b10b":"registerAsExportingAuthority(address)","79f9cc72":"setGasLimits(uint256,uint256)","79fb18ac":"transferSmartTokenOwnership(address)","79fc3682":"addressBalances(address)","79fc4687":"receiveDividends()","79fd86cc":"airDrop_(address,address,address[],uint256)","79fd8c24":"PriceUpdate()","79fdf548":"updateTokenInvestorBalance(address,uint256)","79fe3b06":"setPercentTokensToSale(uint256)","79fed7cb":"checkMinContribution()","79ff69d9":"paymentSettle(uint256)","7a00698f":"_doProposal()","7a0092b5":"Aunder()","7a009c22":"increaseBank()","7a00cf46":"isCloseable()","7a00e2e3":"removeReferrer(address)","7a013105":"ico_start()","7a02a973":"resetStaking()","7a02dc06":"getInfo(bytes32)","7a02eb1d":"Maesawa()","7a039beb":"GXX()","7a041e7e":"fundsFromPreSale()","7a044323":"accumulated()","7a04581c":"getBetclose()","7a04855a":"EplusCoinToken()","7a04f9ea":"getPhaseExpiry()","7a060b53":"GOLD_AMOUNT_TPT()","7a07424e":"promotionRatio()","7a08339d":"setFakeTime(uint256)","7a091f95":"batchPunchIn(address[],uint64[])","7a09588b":"cashoutEOSBetStakeTokens_ALL()","7a096f53":"getTransfer(address,address)","7a09defe":"totalMonster()","7a0a2e00":"auctionEndHashing(uint256,uint256)","7a0b0a3f":"MAX_STAGE_1_LIMIT()","7a0b294c":"buyPresaleTokens()","7a0c396d":"giveMeNILs()","7a0ca1e2":"attach(address)","7a0d819e":"casinoDeposit()","7a0e03ec":"getUInt8Value(bytes32)","7a0e09aa":"getConsent(uint256)","7a0e2d1a":"updateUser(bytes32,bytes,bytes32,bytes32)","7a0ecfc2":"LogUpdatedInitialTimestamp(uint256)","7a0fee37":"MinerRandomNumber(uint256)","7a10f17b":"PIN_PRICE()","7a1126f0":"houseWithdraw(uint256)","7a118fdc":"SHNZ()","7a11dfb4":"redeemBounty(uint256,uint256,uint8,bytes32,bytes32)","7a12cabf":"owner_updateRelay(address,bool)","7a12cdb8":"cybToken()","7a1395aa":"setDecimals(uint8)","7a13d14c":"disputeAutomatedReport()","7a1439d7":"payOffClaim(bytes32,uint256)","7a14f465":"crosairSoldCount()","7a152c11":"unpause(uint256,uint256)","7a153043":"disbursements(address,uint256)","7a1593d6":"freeze(address,string,uint256,uint256,uint256)","7a15eb8d":"lottoIndex()","7a16c6dd":"setsetperiod(uint256)","7a16cbe3":"setData_4(uint256)","7a178741":"getMemberAddr(uint256)","7a17feff":"setTransferLimit(uint256)","7a186ebf":"WHITELISTED_PREMIUM_TIME()","7a1903f2":"checkBonus(uint256)","7a1a0604":"AuctusTokenSale(uint256,uint256)","7a1a7e7f":"itemCancelMarkets(uint256)","7a1ab407":"bountyOwnersTokens()","7a1ac566":"registerSale(address,address)","7a1aeb3c":"getTokenCount(bool)","7a1b26a8":"TransactionAccepted(uint256)","7a1b63bc":"buyCMTAgainstEther()","7a1bba3a":"TestFoo()","7a1bbb40":"getNegativeArray()","7a1bcae9":"playerDecision()","7a1bf7f6":"PreIcoClosedManually()","7a1c0063":"emitExecuted()","7a1c39cb":"setIII_R2(uint256)","7a1c44f8":"DappleAirdrops()","7a1cf806":"configureTokenDividend(address,bool,address,bytes)","7a1d66dd":"determinePosition(address,address)","7a1d8570":"getSendVal()","7a1e16bc":"signEscrow(uint256)","7a208990":"Arcus()","7a20ff15":"getWeiAllowedFromAddress(address)","7a223758":"detOwner()","7a22393b":"setTokenSeller(address)","7a233fb3":"redeemPrice()","7a26924f":"timeToFinishTokensSale()","7a2756f2":"getWager(uint256)","7a276bb6":"getDeveloper(uint256)","7a28399b":"approveProvider(address)","7a28e60f":"EXTRADECOIN(string,string,address)","7a28f8bc":"accountData()","7a290fe5":"burnRemainToken()","7a29332d":"buyAllOutcomes(uint256,uint256)","7a294055":"VoteReceived(string,address,uint256)","7a2a0456":"swapEtherToToken(address,uint256)","7a2a3931":"galleassetTransferFrom(address,address,uint256)","7a2a530d":"getAllDevices()","7a2b0587":"isReserve(address)","7a2b2dd7":"Metaexchange(address,address,address,uint256,uint256,uint256)","7a2b78e5":"findIndex(uint256,uint256)","7a2b9116":"checkValidTk(address)","7a2c1b71":"CheckProfit(address)","7a2c8506":"getUserReward(address,bool)","7a2cc6d8":"_createPermission(bytes32,address[],bytes4[])","7a2e1c61":"getSoldCountOfPackage(uint256)","7a2e41d1":"InitiateCryptoGamers()","7a2ecfdb":"setMostSent(uint256)","7a309005":"devSENSDestination()","7a30ebed":"holyFoundersFundDeposit()","7a3130e3":"migrateFrom(address,uint256)","7a314ce2":"FUND_GATHERING_TIME()","7a319590":"changeFees(uint256,uint256,uint256)","7a31ee21":"MinimumFundingGoalChanged(uint256)","7a32c84c":"getDonatee()","7a341bc7":"setFounder(address)","7a34cedb":"purchaseWithBTC(address,uint256,uint256)","7a350141":"BalanceChanged(address,address,uint256)","7a360ec3":"forwardWei()","7a3629dc":"setMinimumStakingRequirement(uint256)","7a362fe1":"ICO_START1()","7a366d14":"softCap(uint256)","7a38012e":"handleEarlySaleBuyers(address[],uint256[])","7a38417b":"delayOpeningTime(uint256)","7a386e88":"setupAmbi2(address)","7a387bc2":"returnNote(uint256)","7a38f9eb":"isZero(uint256)","7a396264":"winAmount2()","7a39bb28":"FirstPeriodCapUpdated(uint256,uint256)","7a3a0e84":"fundingGoal()","7a3aa8ea":"CoXxMoXx()","7a3abce9":"withdrawComB()","7a3b0b5d":"positive_terms_of_Service()","7a3c4c17":"currentPrice(uint256)","7a3cbbe4":"TIMER_STEP()","7a3d2e5c":"changeArtUrl(string)","7a3d4b1a":"createSwap(uint256,address)","7a3dae68":"_createKT(string)","7a3dbc16":"getInitialPrize(uint256)","7a3e0013":"setArbitrator0(address)","7a3e286b":"currentCollectRound()","7a3eeb57":"setdteamVaultAddr2(address)","7a3f5781":"setAllowRefunds(bool,uint256)","7a4058dd":"confirmDealCompletionByPatient(bytes16,bool)","7a40618d":"emitContractRemoved(address,address)","7a408454":"burn(bytes32,uint256)","7a4093b8":"SETUP_DONE()","7a427d98":"forceReturn()","7a42a9cd":"checkOwner(bytes32)","7a43cb62":"positionWeightOf(uint256,uint256)","7a442a9b":"isClaimable(string)","7a444072":"getDeveloper()","7a44d730":"PGM_Coin()","7a457855":"getNumeroMensajes()","7a468170":"ethCap()","7a4690fb":"TOKEN_SALE1_NORMAL()","7a476a42":"queryPublishedContractTemplate(uint256)","7a479160":"getRequestArgs(uint256)","7a4822d7":"addTransaction(address,uint256,string,bytes)","7a4843ca":"product3_luckybuyTracker()","7a48b408":"MCIM()","7a48f5c7":"start_pg_quiz(string,string)","7a4aa92f":"provideTeamHolderToken()","7a4b7075":"getMake(uint256)","7a4b762b":"synechronToken()","7a4bfebb":"FixedGameToken(bytes32,uint256,address)","7a4c2e9a":"access_hidden_layer(int256[],uint256[],uint256)","7a4c96ad":"vote(string,string,uint256)","7a4cac15":"removeUserAsset(address,uint256)","7a4e320c":"MINIMAL_PRE_ICO_INVESTMENT()","7a4e365d":"destroyFreezeFunds(address)","7a4f2fde":"decreaseSalesBalance(address,address,uint256)","7a4f7b92":"getInitializedFeeWindow()","7a4fb678":"Operation(uint8,bytes32[8])","7a504ceb":"endCrowdsale(uint256)","7a50aeb5":"ProofToken(address,address,uint256,string,string)","7a518d9f":"epoch_release_count()","7a51a611":"getOptionIdForPoll(uint256,uint256)","7a52ad76":"ChangeMainSaleDates(uint256,uint256)","7a530f03":"createPromoFlower(uint256,address)","7a5310b9":"confirm2stage()","7a53bcfc":"batchSend(address[],uint256[])","7a5402e9":"getPolicyData(uint256)","7a543a94":"isIcoFinished()","7a545b0c":"preIcoSold()","7a55cece":"PlusPay()","7a55d4bd":"getCurrentBragKing()","7a5615c0":"changeTokensPerUSD(uint256)","7a58b058":"read_max_dgx_available_daily()","7a58ce90":"CryptoLinkNet()","7a5977be":"MAX_TOKENS_ADVISORS()","7a5984c4":"burn(uint32)","7a5a35ad":"setUSDEth(uint256)","7a5a59ec":"angelAllocation()","7a5b4f59":"getMetadata()","7a5bed43":"deleteSharedAccount(bytes32,bytes32,bytes32)","7a5c8432":"paymentqueue()","7a5c9028":"getLengthClassPlayers(uint256,uint256)","7a5ced61":"batchcollecttaxes(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","7a5d5345":"signControllerChange(address)","7a5db3f3":"renounceInvestor()","7a5dbc21":"ipow(int256,int216)","7a5df22b":"getStakedAddress(address)","7a5e842a":"nizk_verifyproof(string,string,string,string,string,string,string)","7a5f5021":"closeBets(bytes32,bytes32,uint256,uint256)","7a5f715c":"SetCityName(bytes32)","7a5f973b":"INITIAL_SUBSIDY()","7a62b77c":"ShowChargeTime(address,uint256)","7a631201":"resetEvents()","7a63626c":"ownerIndexToERC20Balance(address,address)","7a63c290":"mintCapInTokens()","7a6506f6":"dividendsPayedIndex()","7a6543e2":"getRegistered()","7a654915":"BitcoinTRONIX()","7a657c53":"checkVotingForSendWeiFromPayment()","7a6615d4":"NewPAIReceipt(address)","7a66e5cf":"paySolutionReward(uint256,uint256)","7a67011f":"setMoneyline(int256,int256)","7a6838ec":"ownerBank()","7a690951":"_endBetListing(uint256)","7a6994dc":"getSpaceByIndex(uint256)","7a6a00bb":"balanceEthOf(address)","7a6a18cf":"CrowdsaleMintFinished()","7a6ad926":"getUint(bytes32,bytes32)","7a6adab6":"getAdsLength()","7a6b1c7c":"authAccess()","7a6b2a2c":"lookupAmountUserDonatedToCampaign(address,uint256)","7a6b456f":"countShips(uint16,uint16,uint8,bytes32)","7a6b8361":"zeroBytes()","7a6ba98c":"getHashKey(address,uint256)","7a6c7783":"_consume(address,uint256)","7a6cb1aa":"getReceiverVesting(address,address)","7a6ce2e1":"getMsgSender()","7a6d6f3d":"gettormow()","7a6d8030":"BLOCKMALL()","7a6e1384":"priceForBuyingCostume()","7a6e2b49":"payService(bytes32,address,address,uint256)","7a6e5949":"getwithdrawEthertoAmountValue()","7a6e9df7":"getTimestamp(bytes)","7a6e9e41":"withdrawSellDemand(uint256)","7a6ee304":"IAMRefundedForWei(address,uint256)","7a706ac7":"setBuyRatio(uint256)","7a70abda":"updateAvatar(uint256,uint256)","7a71055d":"setAvgMinedPerDay(uint256)","7a713023":"finalizeSettingDeprecation(uint256)","7a71dee0":"onePotWei()","7a72416f":"security_address()","7a72c30d":"checkMilestoneStateInvestorVotedNoVotingEndedNo()","7a72c32f":"Paraboloid()","7a740a68":"communityReservation()","7a74b672":"clearEndpoint(bytes32,int256)","7a766210":"XYZA()","7a766460":"getStake(address)","7a773293":"setMarketingRates(uint8,uint8,uint8)","7a783d91":"Leeroy(address)","7a78cccc":"DAMIToken(address)","7a78ee2c":"lastBlock_a12Hash_uint256()","7a791524":"setNextFeePercentage(uint8)","7a792fa0":"get_reward(uint256)","7a79940d":"getSharedAccountPw(bytes32,bytes32)","7a7cdfa9":"createT(string,string,string,string,string,string,uint256,uint256)","7a7d4937":"secondsPerBlock()","7a7ebd7b":"channels(bytes32)","7a80760e":"ERC20Token()","7a81f972":"releaseCelebrity(uint256)","7a824b1d":"cooperativeSettle(uint256,address,address,uint256,address,address,uint256,bytes,bytes)","7a827634":"_emitContractAdded(address,address)","7a828b28":"terminate(uint256)","7a837213":"setAllowedAccount(address)","7a83e89e":"_endBetBlock()","7a840a52":"PKBCoin()","7a84d13e":"getNumberOfCandidates()","7a852c7e":"transferTokensWei(address,uint256)","7a8566ae":"richToken()","7a85c02a":"tokensOfEdition(uint256)","7a85e031":"finalizeInternal()","7a86d3d6":"addWithdrawTransaction(address,uint256,bytes)","7a872547":"defaultInput()","7a875ade":"fishPromoHelpers(address)","7a87f51a":"emergency_eth_withdraw()","7a888ca9":"startOptionsSelling()","7a88aabb":"getAddressOfTokenUsedAsReward()","7a899cdc":"_setPermission(address,address,bytes32,bytes32)","7a8a5cf3":"totalMigratedIn()","7a8a8720":"firstUnitStartTime()","7a8b0114":"setA_ASM(uint256)","7a8b089b":"developerFundDeposit()","7a8bd25a":"get_bet_nfo(uint256)","7a8bd93e":"flipRewardAmount()","7a8df1b9":"getAffiliateInfo(address)","7a8e3d8d":"withdrawEth2Wallet(uint256)","7a8e832f":"MyBalance()","7a8f7be6":"HAYATO_EXTRACTION_BASE()","7a8fa666":"addPoweruser(address)","7a8fe3b1":"getProductBuyersWithUnconfirmedRequests(uint256)","7a9036cd":"registerFixedToken(bytes32,uint256,address)","7a906be0":"createAuction(uint256,uint128)","7a90a7a3":"feeBurnerWrapperContract()","7a9110d5":"klik()","7a91d5f9":"dilutePower(uint256,uint256)","7a91e53d":"isNotSelf(address,address)","7a926165":"manageAdmins(address,bool)","7a927429":"TokenValue(uint256,string,uint256)","7a935644":"I30Token()","7a93b917":"Lirux(string,string,uint256,string)","7a954d5d":"investedInPreICO()","7a95e305":"escrowedForAsset(bytes32)","7a95f174":"CGT()","7a960154":"numOfPurchasedTokensOnCsBy(address)","7a9839c2":"fun(uint256)","7a99b018":"withdrawClient()","7a99ba4f":"investETH(address)","7a99bb0a":"_getTokenAmount(uint256)","7a9a032d":"addProposal(string,uint256,uint256,string,string)","7a9b486d":"deposit(string,string)","7a9c960b":"DayDayToken(address)","7a9d366a":"debug_bool(bool)","7a9db28a":"_setPriceFactor(uint256)","7a9df8c0":"sellChickenParkCoin(uint256)","7a9e19de":"nextOffsetIndex()","7a9e5e4b":"setAuthority(address)","7a9ee2dc":"SogetiCoin()","7aa064ef":"intersubuser(address,uint256)","7aa0eb97":"LogSendTokens(address,uint256,string)","7aa11238":"Flow(uint256,string,string)","7aa1688e":"setUser(address,string,string,bool,bool,bool)","7aa1a77d":"rawWipeAttributes(bytes32,bytes32[])","7aa2096a":"setPI_edit_15(string)","7aa2bcd6":"bonusCompaignOpen()","7aa306a2":"numOwnerAddress()","7aa3295b":"trusted(address,address)","7aa356af":"phaseTwoRate()","7aa359f8":"changemem(uint256,bytes32)","7aa3803c":"takeRent(address)","7aa3976f":"DragonStone()","7aa3b39b":"_vest(address,uint256)","7aa3f6cb":"setKyberProxyAddress(address)","7aa3ff67":"AlterMediatorSettings(address,uint128)","7aa41ed5":"getNumPieces()","7aa50c56":"performDifferent(address,address[],uint256[])","7aa5a1a8":"set_eth_as_seeded()","7aa63a86":"getTotalElements()","7aa86e2f":"fetchProfit()","7aa98fb3":"timeLock(address,uint256,uint256)","7aa9a7f9":"getNumberThree()","7aaa3470":"getInterest(address)","7aaae78c":"preSaleBonus1Amount()","7aacd17d":"MyToken(string,string)","7aacf03c":"auctionIndex()","7aada63b":"maxEarlyStage()","7aae42c9":"endIcoPreICO()","7aaeb37c":"SimpleTGEContract()","7aaf334d":"offFreeze_Bounty(address)","7aaf58d7":"creatUserPurchase(address,address)","7aaf87d2":"getallresutl()","7ab0089e":"YiLiaoLian(uint256,string,string)","7ab03c25":"reserveTokensProjectAndFounders()","7ab0b998":"signRecoveryChange(address)","7ab13461":"decreasePrice(uint256)","7ab13ba9":"isProgress()","7ab14aae":"createBattle(address,uint256[],bytes32,uint256)","7ab21613":"getStopReceive()","7ab2af2b":"isRegistrationOpen()","7ab38e88":"issueTokensPresale(address,uint256)","7ab42bbd":"grantXPTokens(address,uint256)","7ab4e968":"oneEDG()","7ab528c9":"revokeDelegate(address,string,address)","7ab5e1e1":"reservedTokensFunctionality()","7ab61372":"totalRunePurchased()","7ab7a9fa":"aurasCompatible(uint64,uint8)","7ab7ab2e":"AcceptsHalo3D(address)","7ab7d55b":"calculateHash(uint256,uint256,uint256,bool,bytes32)","7ab7e492":"RANGESTART_2()","7ab7fa9f":"UBEX()","7ab91b3a":"hash(uint64[8])","7ab96fda":"testBalanceCanbeWithdrawn()","7aba2249":"StoppableMock()","7aba4d23":"delToken()","7aba6f37":"setLock()","7aba86d2":"bonusMax()","7abaf552":"nexium()","7abb03bc":"noticeWinner(uint8)","7abbe9c0":"DEFAULT_GAME_COST()","7abc06aa":"tokensPerCents_gte50kUsd()","7abccac9":"getTokenMetaData(address)","7abdf949":"getUpgradePrice(uint256)","7abe24d4":"Firechain(uint256,string,string)","7abeb6a0":"createMarket(address,address,uint24)","7abec356":"Deposit(address,uint256,int256)","7abf75fd":"CFNDCrowdsale()","7ac02331":"ethMultisigWallet()","7ac07dcc":"isCaller(address)","7ac1cb30":"setbili(uint256,uint256)","7ac26aeb":"getTag(string,uint256)","7ac37d58":"ownerTransferEther(address,uint256)","7ac3c02f":"getSigner()","7ac40b10":"thedate()","7ac4b05e":"returnMyMoney(uint256)","7ac4ed64":"getAddress(address,bytes32)","7ac59d43":"getSellerSignature(string)","7ac5bb54":"getFlight(uint16,uint16)","7ac5d8a9":"RoundNumber()","7ac6e6a8":"objectHelmet()","7ac7ef85":"Msg()","7ac81da5":"useProps(uint256[],uint16[],uint16[])","7ac8dc26":"subFundPrecent()","7ac91cc2":"testFailOwnedAuth()","7ac94409":"sixthExtendedBonusSalesEnds()","7ac9f013":"removeVal(address,bytes32,address)","7aca84a1":"createVaultAccess(uint256)","7aca97b5":"changeDeadline(uint256)","7acb3e67":"EthTraderDAO(address,bytes32,address,address,address)","7acb4b0f":"isGroupInPolicy(bytes32,bytes32)","7acb7757":"stake(uint256,address)","7acbfb65":"setOwner(uint256,uint256)","7acc0b20":"products(uint256)","7acc6f74":"addSingleAddressToWhitelist(address)","7acc8678":"transferAdminQuickly(address)","7acd0412":"newInvest(address,uint256,uint256)","7ace341b":"getCurrentOwner(uint256)","7ace41f2":"CoinvestToken(uint256)","7ace58d8":"changeBranch(uint256,uint8)","7acee816":"claimIFactor2(bytes32,bytes32)","7acf16c3":"findLowestBenefactor()","7acf4892":"isNotPaused()","7ad00589":"getAffiliateSenderPosCode(uint256)","7ad06be3":"recycleAppearance(uint128[5],uint256)","7ad0bf86":"exchangeRegulatorWallet()","7ad1428d":"m_record(string)","7ad157b9":"buy(uint256,address,bool)","7ad226dc":"refund(uint256,address)","7ad2856f":"info(string,uint8)","7ad28c51":"changeTimeLock(uint256)","7ad2a0ce":"doAirDrop(address[],address,uint256,uint256)","7ad3c119":"ContractInfo()","7ad3def2":"updateToken(address)","7ad4b0a4":"setAttribute(address,bytes32,bytes,uint256)","7ad53eae":"sani()","7ad59e20":"end_Dec_21_2017()","7ad5a045":"_ReparameterizationProposal(address,string,uint256,bytes32)","7ad77fd9":"firstWeek()","7ad8800f":"ShowPrice(string)","7ad9642f":"changeMiniumBet(uint256)","7ad979a3":"setupFund(string,address,uint256,uint256,address,address,address,address[],address[],uint8,bytes32,bytes32)","7adaa3f8":"right39(uint256)","7adac0e6":"stopTransfers()","7adb7ced":"ekkoBlock(uint256,string,uint8,string)","7adbf973":"setOracle(address)","7adc22d8":"bujankkoin()","7add0106":"initBronze()","7addc766":"ADDR_MAYA_MARKETING()","7ade8d6a":"Totti(string,string,uint256,uint256)","7adec1c9":"DepositAcceptedEvent(address,uint256)","7adee0e3":"setJoinDelta(uint256)","7adfec71":"allTasksCount()","7adff2cb":"auth(uint8,bytes32,bytes32)","7ae046d5":"joinGame(uint256,address,string)","7ae0c915":"SmartBondsSale()","7ae11443":"getCurrentStakingPeriod()","7ae145cb":"Badge(uint256,string,uint8,string)","7ae15a19":"createKingdom(string,uint256,uint256,uint256,uint256)","7ae1cfca":"getBool(bytes32)","7ae26546":"setApprovedContractAddress(address,bool)","7ae26773":"revokeAllowance(address,address)","7ae2a331":"goldenTicketFound(address)","7ae2aa34":"teamVestingStage()","7ae2b5c7":"min(uint256,uint256)","7ae316d0":"getTotalFee()","7ae38a95":"isDestructionStarted()","7ae488c3":"priceOfPlayer(uint256)","7ae4bff8":"changeStage(uint256)","7ae506ac":"minimumPurchaseValue()","7ae5dfe5":"TTC(uint256,string,uint8,string)","7ae68ada":"getReferralCode()","7ae6b763":"updatePartner1_will(string)","7ae7024c":"_realBalanceOnToken(address)","7ae74432":"PhilToken()","7ae77ecf":"onlyBouncerCreateContract(bytes)","7ae79345":"ZeroChain()","7ae79e86":"crowdfundEndsAt()","7ae81801":"userUpgradeElement(uint256,uint256,uint256)","7ae8b321":"withdrawGNT(uint256)","7ae8c854":"getMaturity(bytes32)","7ae9c430":"getMinFunds()","7ae9c856":"getassignTokensperType(uint8)","7aeaa864":"storePhoto(string)","7aeabb39":"lastPaymentDate()","7aeb0763":"habichnet()","7aeb9500":"getAutoInvestStatus(address)","7aec05b6":"TemroyToken()","7aec2277":"ValueCyberToken()","7aece878":"receiveObject(uint256,address)","7aef1cdc":"airDropDestinations(address)","7aef1d4d":"setMinEther(uint256)","7aef2226":"MIKETANGOBRAVO18Crowdsale(uint256,uint256,uint256,address,uint256,uint256,uint256)","7aef951c":"bid(string)","7aefec13":"followTraderPreSignedHashing(address,address,bytes32,uint256,address,uint256)","7af05516":"claimRewardTillRound(uint64)","7af0ed7e":"NewStatic()","7af1337b":"updateCrystal(address)","7af20a0a":"LITECORE()","7af2a28e":"createContractElement(string,uint256)","7af30442":"testToggleBitFailIndexOOB()","7af327a0":"deposito()","7af3670c":"NewToken()","7af52ade":"collectEntryFee()","7af5878e":"safeSend(address,address)","7af5dc37":"safeSub(int256,int256)","7af85411":"DisableReturnFunds()","7af8b87d":"verificationRate()","7af8c4f2":"changeTokenSaleAddress(address)","7af91032":"getPoolDoneCount()","7af915af":"setResourcesBanker(address)","7afa0c66":"lockedMonsterStatsCount()","7afa1eed":"generator()","7afa8388":"transferFromWithReferenceCallGas()","7afbe4f1":"Add(uint256,uint256)","7afc84df":"NKHOIToken()","7afcb524":"foundersBalance()","7afd4762":"auctionPriceLimit()","7afde96b":"isInPreSale()","7afea44f":"kycManager()","7aff5061":"penalizeNode()","7afff425":"reclaimAllocated()","7b01127c":"getValue(bytes32,bytes32)","7b012ff6":"IcoCap()","7b015ff7":"crowd_start_date()","7b02347d":"distributeRef(uint256,uint256)","7b02b2c9":"sendMsg(address,string)","7b02b6de":"initialChargeFee(uint256)","7b0383b2":"initializeDispute(uint256)","7b039576":"setCreditStatus(bool)","7b039bb6":"createVariation(uint256,uint256)","7b03e5f0":"_getUint(address,bytes32)","7b0472f0":"stake(uint256,uint256)","7b04a2d0":"onApprovalReceived(address,uint256,bytes)","7b04b1f8":"prePaidFee()","7b053195":"testItems(bytes)","7b05d785":"redeemTokens(string)","7b069edb":"createNewGame(string,uint8,uint256[],uint256[])","7b06e907":"teamAddressOne()","7b07788e":"removePrecondition(uint256)","7b0862e1":"getLatestSettingId(uint256)","7b0863de":"beginClosingPeriod()","7b088543":"setDollarForOneEtherRate(uint256)","7b0934ab":"KRTR()","7b0a2340":"issueBook(uint8)","7b0a3a8d":"maxRecords()","7b0a47ee":"rewardRate()","7b0a7bf8":"disableContactMint(address)","7b0b5b93":"MannaCoin(address,address)","7b0c15ff":"ApolloSeptemStarted()","7b0de015":"teamTokensAddress()","7b0f6f18":"executeArbitrage(address,uint256,address,bytes)","7b0f94ed":"advisoryEthWallet()","7b103999":"registry()","7b10a1d9":"changeInviteReward(uint256)","7b10b293":"requestMembership()","7b10e717":"received_wei()","7b1278e9":"setStageLength(uint256)","7b129c48":"TrueTHB()","7b12df39":"userProfits()","7b12e074":"getSiringWithId(uint256)","7b144a84":"testFunded(uint256)","7b146f6f":"contributorPoolAddr()","7b15013c":"JPPreICO()","7b151be0":"market_WithdrawWei()","7b16c028":"HumaniqICO(address,address,address)","7b16f7a0":"transferAll(uint256,address,address)","7b1707ee":"sendAliceBlue(address,uint16,uint256,bytes)","7b1760da":"computeCertHash(address,bytes32)","7b17e543":"user(uint32,uint32)","7b1837de":"fund(address,uint256)","7b19bbde":"fundValues(uint256)","7b1a4909":"transferETH(address,uint256)","7b1a547c":"registerAs(address,string,uint256,string,address)","7b1aa45f":"ownerDeposit()","7b1ae67a":"OrganicumOrders()","7b1b0c8a":"isWeekdayInsideTimestamps(uint256,uint256,uint256)","7b1b1de6":"pricePerToken()","7b1bc329":"bountySend(address,uint256)","7b1bd162":"NatureSeedToken()","7b1c5368":"fetchVoteMainInfoForVoter(address)","7b1c6c83":"MangGuoToken(string,string,uint8,uint256)","7b1c88be":"transferIncome(address,uint256)","7b1cbb13":"getChannelValue(bytes)","7b1cdd4f":"withdrawWallet3()","7b1e855a":"setBountyCoin(address)","7b1e8871":"_transferBilrew(address,address,uint256)","7b1f1f83":"SgdToWeiRateSet(uint256)","7b1f337d":"endingBlock()","7b23f37d":"ownerRandomNumber()","7b24343e":"salvageOtherTokensFromContract(address,address,uint256)","7b2454c2":"InvestmentAnalytics()","7b24d867":"TokensImport(address,uint256,uint256)","7b253fe6":"getWithdrawableAmountAS(address)","7b2581c2":"totalPurchase()","7b25aeca":"totalLimitUSD()","7b25de45":"isNewToken()","7b25ec58":"getTierTokens(uint8)","7b2643f2":"receiveNVT(uint256,uint256)","7b266b21":"durationh()","7b26de4b":"newPlayer(address,uint256,address)","7b26ff88":"JuryMemberAdded(string,address)","7b274afc":"stopIco()","7b27739c":"LSCKcoin()","7b283b71":"RATE_TIER1()","7b28aa4c":"orderCancel(address,uint256,address,uint256,uint256)","7b292909":"square(uint256)","7b294495":"lastActiveTs()","7b2abb34":"doProveMemoryRead(uint256,bytes32,bytes32[])","7b2b24e9":"isCurrentOrPastUser(address)","7b2bff9d":"getRobotsForUser(address)","7b2c5148":"catReleaseToPrice(uint32)","7b2c8905":"FailedToClaim(address,uint256)","7b2ca96c":"ProdPresale()","7b2d1b30":"getDragonPriceNo()","7b2d3b27":"getStageDiscount(uint8)","7b2e0046":"createAddress(bytes32,address)","7b2e5086":"withdrawFounderFunds()","7b2feaaa":"blockStart()","7b30074d":"trustedCancelOrderTransfer(address,address,uint256)","7b303965":"getStats(uint256)","7b304179":"createMainNetContract(uint256,uint256)","7b3051db":"get_minimum_trade()","7b30de25":"setConfig(string,string)","7b316db2":"enterBidForCollectible(uint256,uint256)","7b3179bc":"setEconomyParameters(uint128,uint128,uint128,uint128,uint128,uint128,uint128)","7b317ef6":"payoutPendingWithdrawl(uint256)","7b31db17":"intMax()","7b327104":"addBidToStack(bool)","7b32daf8":"contractTimeout()","7b3303b1":"startcrowdsale()","7b33e01a":"increaseApproval(address,uint256,bytes,string)","7b33fa25":"confirmReturn()","7b34203d":"getNumberOfDisputedStepsProPatient()","7b352962":"isFinished()","7b35819f":"setPresaleEndDate(uint32)","7b362143":"inactive_withdrawable()","7b36277e":"tier2Total()","7b367343":"IPv7Token()","7b370a01":"crowdsaleDistributedUnits()","7b37b6a3":"RAXToken()","7b38f391":"p1_white_duration()","7b3941d7":"Redeem(uint32)","7b395487":"voteForUltimateOutcome(bytes32,uint16)","7b3aa441":"contributeWithAddress(address)","7b3ae1f1":"addClaim(string)","7b3bfc35":"setRound(uint256,uint256,uint256,uint256,uint256,bool)","7b3c24ac":"compensate(uint256,address)","7b3ca1c6":"registerNameXname(string,bool)","7b3cf41a":"setExplosivePower(uint256,uint256)","7b3d398f":"getTicketHolderCount()","7b3d9338":"market_is_open()","7b3e2ce0":"BuyTicketUseVaultSeed(uint256)","7b3e5e7b":"amountRaised()","7b3ed808":"withdrawlOwner()","7b3f0fb7":"updateRevertSuspendedPayment(bool)","7b3fdcd8":"removeVerifier(address,address)","7b40b291":"RetractRoutingNS(bytes32,bytes32,uint256,bytes)","7b4126f4":"buyContent(bytes32,uint256,uint256,bytes8,string,address)","7b413985":"tokenValueInEther(uint256)","7b422184":"giveBirth(uint256,uint256)","7b424c0d":"changeRelease12m(address)","7b42f6f7":"intervalAt(uint256,uint256,int256,uint256)","7b436460":"Kubic()","7b436fa4":"garanteSystemDepositInOneFund()","7b43a8e6":"commits(address)","7b43adfb":"checkBalanceContract()","7b449206":"changeClearance(uint256,uint256,uint256,uint256,bool)","7b44eb51":"UPO(uint256,string,uint8,string)","7b464e93":"prescriptions(bytes32)","7b46b80b":"unfreeze(address,uint256)","7b473783":"EcoValueCoin()","7b47457f":"MintTokens(address,uint256)","7b47cb68":"lifeFactor_ii()","7b47ec1a":"burnToken(uint256)","7b48ba20":"testThrowDisownNotOwner()","7b48de6b":"returnTransactionPrices(uint256)","7b4938c3":"LinkNaturePower()","7b49e4c0":"DelphyToken(address[],uint256[])","7b4b5e4e":"changeYUMAddress(address,address)","7b4fcdcf":"GetAccess(address)","7b4fd96e":"token_price()","7b5005e8":"ZRXToken()","7b50a573":"functionOne(uint256,uint256,uint256,uint256)","7b510fe8":"getAccountInfo(address)","7b51c463":"hasDebris(bytes32,uint8)","7b523c35":"request(address,address,bytes,bytes,uint256,uint256)","7b5330a7":"getEntitlement()","7b540dd2":"ChangeHold(address,address,uint256,uint8)","7b54a994":"safeAdd(uint256,uint256,uint256,uint256)","7b550233":"deathData_v18()","7b55c8b5":"scheduleCall(address,bytes4,bytes,uint8,uint256[4])","7b55f66e":"manualCloseBet(uint16,uint16)","7b563e3a":"hourPotLeader()","7b564b7f":"test_insert_updateTail()","7b568081":"trade(address[],uint256,uint256)","7b575b33":"operate(bytes)","7b58120f":"preSaleSecondStartDate()","7b5825d5":"get_amount_buy(uint256)","7b58d46e":"changeWikiID_Name(uint256,string)","7b58d7ee":"Jawn()","7b599b5b":"COOLBTCEXCHANGE()","7b59af16":"registerName(string,address)","7b5a08c5":"TradeList(uint256)","7b5bc2e4":"isVoted()","7b5bd741":"getIdentityWallet(address)","7b5bee1d":"_getItem(uint256)","7b5c7b7b":"privilegedTransfer(address,uint256)","7b5cc75d":"lastDividendTime()","7b5d5d1a":"halvingStartBlock(uint256)","7b5e400d":"recipientsMap(bytes32)","7b5eb564":"approveWithData(address,uint256,bytes)","7b5ecb32":"test_twoValidEqUint2()","7b5f4fc9":"get_all_attender()","7b5f7267":"getTokenPriceUSDWEI()","7b61b201":"getHouseCard(uint8)","7b61c320":"tokenSymbol()","7b627879":"Conference()","7b632c41":"TimestampScheduler(address,address)","7b641fbc":"getMembers(bytes32)","7b647652":"LittleEthereumDoubler()","7b647d72":"BITIC()","7b65d0ec":"initialBuyCard(uint8,string,string,string)","7b663d30":"ChangeClaimAmount(uint256)","7b66c032":"HashBuxICO()","7b66e17f":"getDonator(uint256)","7b680deb":"SpiceUpPrizePool(address,uint256,string,uint256)","7b68533f":"earlybird_percentage()","7b68a8f0":"getPixelColor(uint256)","7b698602":"NEXMESH()","7b69db5c":"increment(int256,int256)","7b6a3e27":"out2Done()","7b6a6f4a":"roundUp(uint256)","7b6a912c":"etherCost()","7b6ae58f":"AMICoin()","7b6b3f46":"preMining()","7b6c0492":"allowanceSubId(address,uint256,uint256)","7b6c4b27":"BidRevealed(bytes32,address,uint256,uint8)","7b6c4dc7":"AgriChainProductionContract()","7b6c7a14":"transferAuthorship(address,bytes32)","7b6ccf85":"LogRefund(bytes32,address,uint256)","7b6d79f1":"cancelBet()","7b6d7a4a":"VoteIntentionSet(uint256,bool,bool)","7b6e7603":"levelClearTime()","7b6e8740":"changeCATDestinationAddress(address)","7b6f5a4c":"getCurrentRoundMinimumTime()","7b6ff689":"setImmediateAllowancePercentage(uint8)","7b70209f":"isBeneficiary()","7b7054c8":"__approve(address,uint256,address)","7b707e9c":"getNumberOfCreatedTokens()","7b70cdcd":"dayFor(uint256,uint256)","7b70ed51":"setAngelDate(uint256)","7b71aec8":"ethPropagate()","7b7330cc":"return_eth()","7b73aef8":"setNote(bytes32,bytes32)","7b73c2ef":"defaultDeadline()","7b74644d":"WKToken()","7b74e5c3":"buyByAddress(uint256,uint256)","7b755373":"amountPercentage(uint256,uint256)","7b75a302":"MatContract()","7b75ea7b":"rewardPayableDays()","7b760537":"updateLatestRevision(bytes20,bytes32)","7b7670f6":"gasForXaurDataUpdateAtBlock()","7b76ac91":"day()","7b775ec3":"wallet89()","7b777517":"teamVestingStages()","7b777ecc":"getMaxReportsPerLimitedReporterMarket()","7b77bbc8":"dyn_call(address,bytes)","7b789b3d":"agreement(bytes,bytes,bytes)","7b7a43eb":"setMINfinney(uint256)","7b7a720a":"chrissycoinToken()","7b7b81c5":"loikikdi()","7b7c343d":"setRequiredConfirmations(uint256)","7b7ccc66":"burnSaleTokens()","7b7d4655":"releaseTokenCornerstone()","7b7d6c68":"setController(address,address)","7b7d7225":"_approve(address,uint256)","7b7d8888":"permanentlyOwnMyCompany(bytes32)","7b7e97f1":"isIncluded(uint256,uint256)","7b807a51":"devTimeLock()","7b80889b":"lockedBalance()","7b80a0ca":"endEarlyStage2()","7b8108c6":"isIn(address,address[])","7b813089":"team4Token()","7b816719":"testToInt(bytes)","7b81c3cd":"claimIcoContribution(address)","7b8208b7":"destroyUselessContract()","7b821410":"createPlotVineyard(address)","7b82d9ee":"canDouble(address)","7b830854":"unlockTokenTransfers()","7b831c30":"isRoundEnded(uint256)","7b834bcc":"marketTime()","7b841eff":"turnOffCanUpdatePercentToTakeAsSeed()","7b84de4e":"StarFishCoin()","7b851f65":"hasIcoEnded()","7b86120a":"foundersReserve()","7b865061":"CAPToken(address)","7b87312a":"timeToOpenPresents()","7b875aab":"addrSale()","7b891cf7":"YBCLiveToken()","7b898c71":"_checkLoanBalance()","7b89a582":"Management()","7b89eef2":"getMyAverageDividendRate()","7b8a1898":"setStore(string)","7b8ac66b":"deliver(uint256,uint256)","7b8b7364":"isAddressVerified(address,address)","7b8b82a8":"createManyProxies(uint256,address,bytes)","7b8bf4fd":"set_fee(uint256,uint256,uint256)","7b8c0e0f":"offlineExchange(address,uint256)","7b8cfbe1":"howManyEtherInWeiToKillContract()","7b8d56e3":"setValue(uint256,uint256)","7b8d771e":"_buyTicket(uint256,address)","7b8d9930":"AxieDependency()","7b8de6d0":"executeTokenFallback(address,uint256,bytes)","7b8e3514":"allowedValidators(address,address)","7b8e7964":"JPGToken()","7b8e8bdd":"modifyCloseTime(uint256)","7b8eeb96":"StarMarket()","7b8f186e":"updateIdx()","7b8f2e07":"addCreature(uint16,uint8,uint8)","7b8fa867":"setAllowedAdd(address)","7b8fac4f":"AC(uint256,string,string)","7b907094":"solidityCompileVersion()","7b926c2a":"IFSBalances(address)","7b929c27":"development()","7b92a2de":"Reservation(address)","7b93253c":"validateClaim(address,bytes32)","7b9358a0":"changeRegistrationStatuses(address[],bool)","7b936934":"artistFees()","7b936ac2":"getCFO()","7b9417c8":"addAddressToWhitelist(address)","7b94ffb5":"grantBounty(address,uint16,string)","7b9504d5":"_isOwner(address,uint40)","7b965785":"EVER()","7b969dcd":"_checkPixelAboveLeft(uint256)","7b97008d":"purchaseTokens(uint256)","7b979b41":"leakEther()","7b97c621":"Transferred(bytes32,address,address)","7b991c1a":"findEmptySlot(uint32)","7b9940b6":"initambassadors_()","7b9a3f4c":"TotalFunds()","7b9a9926":"RESToken()","7b9b9c89":"augmintToken()","7b9c34e0":"requestRN(uint256)","7b9c4756":"SanchitToken()","7b9c5794":"test_YayIsOverSixtyPercent()","7b9c7437":"LUCToken(uint256)","7b9daba8":"wa()","7b9dbf95":"FulfillmentAccepted(uint256,address,uint256)","7b9dc066":"tokenTransfersFrozen()","7b9e5bec":"getAsBytes(uint256,uint256)","7b9e9073":"buyLimitSupplyMin()","7b9f87d3":"Setup(address,address)","7b9fa595":"_getCrowdsaleTokenAmount(uint256)","7ba016d0":"icoDiscountLevel2()","7ba04809":"assertFalse(bool,string)","7ba0e2e7":"mint(bytes)","7ba121ff":"EventBonusPercentChanged(uint256,uint256)","7ba1e407":"tokenBack(address[],uint256[])","7ba201c5":"refundSingleUser(address)","7ba22e1e":"changeWorkerBalance(address,uint256)","7ba36880":"_secondLevelEth()","7ba38916":"changeAdminFromBoard(address)","7ba3c804":"AiEXToken()","7ba3f08d":"grantPermissionTo(address)","7ba46004":"totalRuneWithdrawn()","7ba49b81":"lastMintedTimestamp(address)","7ba4a58a":"addressToken()","7ba5f145":"mod256(uint256,uint256)","7ba64e40":"removeBeneficiary(address,uint256)","7ba70bf2":"gettoken(address)","7ba79848":"processReferral(address,uint256,uint256)","7ba7acc9":"initTokenSale(address,address,uint256,uint256,uint256,uint256,uint256)","7ba7dcea":"setRefundable()","7ba8c064":"VotedEvent(uint256,address,bool,uint256,string)","7ba8c12d":"addWhitelistUser(address,uint256)","7ba992fc":"PeriodicTokenVesting(address,uint256,uint256,uint256,uint256,bool,address)","7baa4524":"emptyRemainingsToOwners()","7baa73c6":"_updateCreditedPoints(address)","7bab59f4":"feedTransfer(address,address,uint256)","7babf021":"RLCOIN(uint256,string,string,bool)","7babfffc":"transferDelegation(address)","7bacd526":"withdraw_admin(uint256)","7bacfb0c":"PresaleEndTimeChanged(uint256)","7badc7af":"gaveVote(address)","7bae0585":"approveMany(address[],uint256[])","7bae3f27":"changeTransferFeeOwner(address)","7bae50e0":"mintGen0Spinners()","7baf5b84":"startUnlock()","7baf71f9":"claimPrizePool(address,uint256)","7bb050cf":"migratePlayerPhrasesData(uint256,uint256,uint256)","7bb0688d":"claimedUsers()","7bb0aefe":"hasAuthoritySignedMainToSide(address,address,uint256,bytes32)","7bb0b3c6":"checkifCapHasReached()","7bb1a312":"transferToTeam(address,uint256)","7bb1efa1":"manualInitializeTreasure(uint256)","7bb20df6":"isExistingBattle(string)","7bb25d60":"withdrawInProgress()","7bb26a1b":"ethFoundDeposit()","7bb305ef":"set_foundtion_addr(address)","7bb31dbb":"calcBetResult(uint256,bytes32)","7bb333d6":"EBankerICO(address)","7bb34a23":"bva(address,uint256,uint256,address)","7bb3546b":"hgs()","7bb3ca86":"addReferralHashrate(address,uint256)","7bb43e6e":"returnUnsoldSafeXLarge()","7bb4493c":"FBI()","7bb476f5":"getAvailableAmount()","7bb4c4da":"nAuditorsAlarm()","7bb55287":"assignRaffleWinner(address)","7bb5e1d1":"Cowboy()","7bb6a4c6":"uno(uint256)","7bb6fc6b":"LoveToken(uint256,string,uint8,string)","7bb7adb6":"hugeContributionBound()","7bb866c1":"GetBoosterCount()","7bb8c4e5":"setCut(uint16)","7bb96acb":"getBlockHeight()","7bb98a68":"balances()","7bb9c776":"ticket(bool)","7bb9dc13":"setPublicSaleWallet(address)","7bba0613":"attackCountry(uint8)","7bbb3a60":"inactivityTimeout()","7bbba97e":"CreateEstate(address)","7bbbd75b":"_getNow0()","7bbbe9fd":"claimGameReward(address,uint256,uint256)","7bbc101b":"distributionStart()","7bbc33f0":"vet(address,bool)","7bbc5c01":"calcRefund(address)","7bbc816e":"UTCToken(uint256,string,string,uint256)","7bbd3f19":"removeLastRace()","7bbf2300":"claimAccountOwnership(string,string,uint256,uint256)","7bbf4a3f":"callers(address)","7bbfb0bd":"startTokenPriceWei()","7bbfbaee":"MAX_SUPPLY_USPN()","7bc046ef":"ClaimRemoved(address,address,bytes32,uint256)","7bc0e005":"setDirectDebit(bool)","7bc0ff20":"setupExportFee(address,uint256)","7bc120c2":"isView()","7bc14a67":"Initial_Supply()","7bc21b6b":"bbAdvisorWallet()","7bc25372":"UserCheckBalance(address)","7bc25da8":"Alaves()","7bc363f9":"serviceTransferOwnership(address)","7bc36e04":"setPrivateSalePrice(uint256)","7bc49a95":"play(uint256,uint256)","7bc4be40":"isGlobalLock()","7bc4d6a6":"testInitial1of3()","7bc58805":"balanceFinney()","7bc5af10":"getAwarding(address,bytes32)","7bc62dc3":"ALD()","7bc69bbc":"getBonusByRaised()","7bc6a02e":"isAutoridadElectoral()","7bc6aa07":"omniTeamAddress()","7bc74225":"getTotalStake()","7bc76388":"test_set_owner()","7bc775db":"GxOwned(address)","7bc835da":"UpdateConfirmed(address,address,uint256)","7bc8649f":"NewTKLNToken(address)","7bc89ae7":"registerNameXNAME(string,address)","7bc9165b":"offchainPayment(address)","7bc94872":"FinishReceivingContributions()","7bc9d4ba":"TielseEendrachtCombinatie()","7bc9eb8c":"p_setSoft_deadline_duration(uint256)","7bca38be":"heartbeatTimeout()","7bcaf585":"checkSignature(string,uint32,string,string,bytes32,bytes32,uint8)","7bcc1ff6":"allowanceInternal(address,address)","7bcc9c6f":"sendBackTokens()","7bcd7fad":"getRecordAtIndex(uint256)","7bcdc2f0":"_forwardApprove(address,uint256,address)","7bcdfd4f":"setEpochData(uint64,uint64,uint256)","7bce366f":"minBlockPurchase()","7bce89cc":"currentMarketRate()","7bd13f08":"recoverAddressFromBalanceProof(uint256,bytes32,uint256,bytes32,bytes)","7bd1a731":"deleteIdentity(string,string)","7bd216c6":"teamAddressThree()","7bd2593d":"XfiniteUtility()","7bd26969":"ChannelNew(address,address,address,uint256)","7bd2bea7":"gem()","7bd352b7":"relay(bytes16,address,address,uint256,uint16,uint128,uint8,bytes32,bytes32,uint8,uint128)","7bd379b3":"PaymentProcessed(address,uint256,uint256)","7bd3acbb":"pointArrayOf(uint256)","7bd53618":"TaiyuanCoin()","7bd63411":"defaultPercent()","7bd6c0e4":"setMigrationHost(address)","7bd703e8":"getBalanceInEth(address)","7bd7c0ac":"armyDronesCount(uint256)","7bd7c891":"becomeFalconmaster()","7bd85cb3":"LZLTokenDeposit()","7bd95a85":"rewardPoints(address)","7bd97ca7":"editMemeTemplate(uint256,string)","7bd9e8fd":"CTO_SHARE()","7bd9f47a":"Best_Bank_with_Interest()","7bdb7a90":"setCdRate(uint256)","7bdbab0c":"tokenMintInit()","7bdc011e":"Pray4Prey()","7bdc297c":"TimeLockedWallet(address,address,uint256)","7bdc60d9":"getTokenById(uint256)","7bde5628":"addNuja(address)","7bde7fcf":"maxApenSell()","7bde82f2":"redeem(uint256,address)","7bdef3f8":"gameMiningTokenCap()","7bdf9d56":"MANHATTANPROXY5THST()","7be00510":"lastInvest(address)","7be122a3":"isSchoolAllowed(uint256)","7be1e747":"initAddress()","7be266da":"isRegisteredInPreviousEpoch(address)","7be296d8":"filmamount()","7be2d5a2":"setDropNumber(uint8)","7be33b36":"getSoundcoinsAddress()","7be34109":"diffMonths(uint256,uint256)","7be4ce4b":"updateRngAddress(address)","7be4ed55":"fixPayAmt()","7be5b5ae":"setBuyDirectMode(bool,address)","7be68454":"optionsRegistryAddress()","7be6d2de":"transferToContract(address,uint256,bytes,bool)","7be80b39":"forceWithdraw()","7be8352e":"getPixelCount()","7be8630f":"lastHotPotatoHolder()","7be8f86b":"done(address)","7be96b1a":"AAA(address,uint256)","7bea7112":"TheOneToken()","7beb2e1e":"minNumbPerSubscr()","7beccd70":"revokeTransferManager(address)","7becd54a":"destErc20()","7bee30ce":"createSspAndChannels(address,uint256,string,address[],address[],uint256[],address,string,bytes,uint32[])","7bee86d6":"lastImageId()","7beeb945":"isRole(address)","7bef29f7":"BittechToken()","7bf08621":"payTo(address,uint256)","7bf0a8f3":"operationsTokens()","7bf0cd0d":"getTargetBlock(uint256)","7bf0e054":"getLotteryDetailsB(int256)","7bf1648a":"setContract(uint256,address,address)","7bf1a627":"ethToken()","7bf1ca1f":"TransferToken(address[],uint256,uint256)","7bf212f8":"getCondition(uint256)","7bf21aa4":"generatePresaleHouses()","7bf21ab8":"sellPBTTAgainstEther(uint256)","7bf26182":"calculateVestedTokens(bool,uint256,uint256,uint256,uint256,uint256,uint256)","7bf2bb10":"arbiters(address)","7bf3f900":"gameManagerPrimary()","7bf437e6":"transferCoinUserToUser(address,address,uint256)","7bf47cda":"cancelSellOrder(address,uint256,uint256,uint256,uint256)","7bf57ca8":"_taxesDue(address)","7bf5b04b":"processDividends()","7bf5b5d6":"distributeWalletTokens()","7bf6f26e":"setMaintenanceMode(bool)","7bf796dc":"SmartAgreement(bytes,address[])","7bf92690":"changeArrangerFee(uint256)","7bf992ac":"GoodKarma(uint256,string,uint8,string)","7bf9d052":"firstRankForFree()","7bfa6e1a":"gameShouldRestart()","7bfaad96":"addNode(bytes,address)","7bfb0934":"value(bytes32)","7bfbe091":"creatorRejectRequestFundTransfer(uint256)","7bfbfecb":"BurnCoin()","7bfe950c":"withdraw(address,address,uint256,uint256)","7bfe97ce":"IBMISOFT()","7bff0a01":"createRandomZombie(string)","7bff9797":"canTeamKeepingWithdraw(uint256)","7c0012d4":"ZiipToken()","7c0081f5":"petCardSeriesCollection(uint8)","7c0176df":"starUp(uint256,uint256,uint256,uint256)","7c0207cb":"isActiveTranscoder(address,uint256)","7c024fe2":"getNowTimestamp()","7c027ed9":"bonus01Start()","7c02e1ea":"addressChangeBlock()","7c03d6f9":"ApprovalFlower(address,address,uint256)","7c051d47":"seedSaleFinished()","7c052478":"setSports3DContract(address)","7c05ba7a":"accreditInvestor(address,address)","7c05caf3":"testCreateCostAuth()","7c0656ac":"LogEtherBounty(address,uint256,string)","7c06db04":"doManualTrade(address,address,uint256)","7c06eb7c":"IGTRMB()","7c0712ae":"setAdd(bytes32,address)","7c07329f":"returnUserBalance(address,address[2],uint256[8],uint8,bytes32[2])","7c078723":"saleExchangeRate4()","7c08ab5b":"BITToken()","7c098bc3":"getBonusPercent(uint256)","7c0a893d":"blockAccount(address)","7c0ab7be":"setBidding(uint40,uint256)","7c0b2484":"enableInviteOfSU(string)","7c0b582f":"WORLD1Coin()","7c0b8de2":"NFT()","7c0c19b3":"zrcoin(uint256,string,uint8,string)","7c0cc0be":"setActivator(address)","7c0d021e":"CreateIssue(uint256,uint256,uint256,address)","7c0e2a5a":"SetLockDate(uint256)","7c0efb8b":"revokeManagerPermission(address,string)","7c0f6b35":"getAllMembers()","7c0f884b":"SlidebitsTestToken(string,string)","7c0fbc31":"signedTransferCheck(address,address,uint256,uint256,uint256,bytes,address)","7c0ff00c":"WithdrawTokensToBankroll(uint256)","7c1008d5":"getLastTipTime(address,bytes32)","7c108f84":"UBToken()","7c10e00e":"setMinBetForOraclize(uint256)","7c116ec9":"respectRequiredToRecruit()","7c11ef87":"calcUSE(uint256,uint256,uint256)","7c1288b5":"distAgent()","7c129c1c":"voteXId(uint256,bool)","7c12b6f2":"_handleWin(uint256,uint256)","7c12f1a4":"addgamecard(string,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address)","7c132f2c":"crossForkBlockNumber()","7c134a38":"DetailedERC20()","7c13b331":"OysterShell()","7c13ed68":"setIPGInfo(address,address)","7c153534":"tokenFrom()","7c157d12":"_synthesizeWith(uint256,uint256)","7c1595f2":"setLockupContract(address)","7c161409":"BetexToken(uint256,uint256)","7c163fb8":"myLoveBlocks()","7c170237":"ElectroneumGold()","7c1716af":"payToken(bytes32,uint256,address,bytes)","7c17357d":"totalVesting()","7c17dc02":"AddFish()","7c183b4b":"LogRef(address,address)","7c18a32f":"deductionToken(address,uint256)","7c194295":"BurnableTokenMock(address,uint256)","7c197c09":"fullSupplyUnlocked()","7c19e1f0":"replaceInFrontRequest(address,uint256)","7c1a35d7":"RECYCLE_TIME()","7c1a4ee8":"SITExchanger(address,address,address)","7c1b6afe":"getGrantCount()","7c1b814f":"openCrowdFunding(bool,uint256,uint256)","7c1c05dd":"gapInPrimaryCrowdsaleAndSecondaryCrowdsale()","7c1c7860":"TMEDsalesToken()","7c1e5ced":"transferTemp(address,uint256)","7c1f9d5e":"tokenFeeMin()","7c204c27":"MinerX()","7c21ae12":"activeShareholdersArrayLength()","7c21c7e2":"getToggleOwner(uint256)","7c22232a":"playersPoints(address)","7c236c3b":"confirmStackholderTransaction(uint256)","7c23d1cb":"removeLevel(uint256)","7c2464f3":"startICOTime()","7c24b295":"votedYes()","7c24dfb0":"FundTransfer(address,string,uint256)","7c25d997":"getRarityValue(uint256)","7c25f260":"Government()","7c261929":"query(string)","7c262269":"isWorkFailState()","7c265200":"NameGame(uint256,uint256,uint256)","7c267b07":"Cryptrust()","7c280f44":"generate_random(uint256,string)","7c28ddc1":"fiatPerAssetUnit()","7c2926a8":"getHTLCHash(uint256,uint256,uint256,bytes32,int256)","7c29c514":"AgroeconomyToken()","7c29e89a":"mintUnlockTimeBatch(address[],uint256[],uint256)","7c2b00fc":"SGCL()","7c2b07e3":"EtherX()","7c2b11cd":"arraySum(uint256[])","7c2b606a":"isAddressManager(address)","7c2b8d0a":"votedFreeze(address)","7c2cf543":"ROLCToken()","7c2d2326":"PostIL()","7c2d86f7":"usePluginWhitelist()","7c2da7aa":"setValue(string,uint256)","7c2db5ff":"payoutX(address,uint256)","7c2e08a3":"isMinimumGoalReached()","7c2eb1c8":"distributeEther(uint256,uint256)","7c2efcba":"v()","7c2ffbb3":"returnRate()","7c3064f1":"refundStake()","7c313baa":"buyPriceAtIndex(uint256)","7c31975f":"SolClub()","7c320853":"initialSale()","7c331b52":"FlightDelayAddressResolver()","7c337086":"CryptoDegree()","7c33774d":"CluckCoin()","7c3382ae":"setIcoTokenExchangeRate(uint256)","7c33ebfd":"transferToMany(address[],uint256[])","7c34689b":"ACchainToken()","7c34752f":"stringToSig(string)","7c34e853":"getCombinedTotalHP(uint256,int256)","7c35384f":"addTradeRecord(uint256,uint256,uint256,uint256,address,address)","7c359dc3":"manualTokenTransfer(address,uint256)","7c35b6ed":"setPriceBeforeGoalReached(uint256)","7c35be7a":"isOpen(bytes32)","7c360d1e":"calculate(uint16,uint8)","7c3625e3":"SatoExchange()","7c366cb5":"LADToken()","7c372277":"ReserveTokensHolder(address,address,address)","7c37559e":"CreateGLX(address,uint256)","7c37605c":"startSellingGenes(uint256,uint256,address)","7c377d74":"getForkReputationGoal()","7c38ce18":"tokensIssuedLocked()","7c38ee53":"addContactRecord(string,string,string,address,string,string,int256,string,int256,address,string,int256)","7c396b83":"f6()","7c39759b":"kscBurnWhenMoveToMainnet(address,uint256,string)","7c399142":"ITSToken()","7c3a00fd":"interestRate()","7c3a1d32":"setWithdrawCreator(address)","7c3aef0e":"cardDescription(uint8)","7c3b1e06":"setcompany(string,uint256,string)","7c3ba89e":"early_bird_minimal()","7c3be5fb":"setVernamOriginalToken(address)","7c3bf42d":"applications(address)","7c3c0f89":"eastadsCredits()","7c3c2611":"Retained(address)","7c3c4c83":"ARBITRAGECrowdsale(address,address)","7c3d30fd":"_bid(uint256,uint256)","7c3e50ff":"balanceLocked(address,address)","7c3eef61":"AbyssToken(address,address[],address)","7c3fe278":"endSto()","7c3ffdee":"awardCup(uint8)","7c405325":"unlockTokens(uint256)","7c4057ae":"removeMasterNodes(address,uint256)","7c41de34":"_AwardedMissedBlockBonus(address,address,uint256,bytes32,uint256,uint256)","7c423f54":"getAlerters()","7c4338af":"getEarlyIncomeBalance(address)","7c434fbb":"AT(uint256,string,uint8,string)","7c435e6f":"updateEursPerEth(uint256)","7c436a6d":"ownerEnableRefunds()","7c437918":"addPreSaleBuyer(address,uint256)","7c44066c":"summCashwolf()","7c44546e":"SiliconValleyToken()","7c44f160":"Tier_Starter_Registration()","7c45ef6c":"stringToSig(string,string)","7c46a5e7":"Unhalted()","7c4734f4":"getParticipantsHash(address,address)","7c475ade":"IOV()","7c479343":"investSum()","7c47965e":"isInCurrentGeneration()","7c47ac44":"getProjectVerification(uint256)","7c47df2f":"removeEligibleBurner(address)","7c48bbda":"tokensIssued()","7c48f8e7":"penaltyFraction()","7c4a0552":"freezeBlocks()","7c4a7831":"concludeSeason(int8,uint256,uint256)","7c4aa44c":"saleStartEpoch()","7c4b414d":"depositTokens()","7c4c27c8":"isThisPuritanicalVersion()","7c4cafd9":"startSecondaryCrowdsale(uint256)","7c4d18bd":"setMockBool(bytes4,bool)","7c4d972b":"setRoundEnd(uint256,uint256)","7c4db77d":"saleWallet()","7c4deecb":"checkGameContinues()","7c4e7fbb":"QKL()","7c4ecead":"startPresale(uint256,uint256)","7c4edde7":"withdrawFrom(address,address,address[])","7c4f8958":"SPECIALIST_STAKE_ONE()","7c513a21":"arrIdx2lost(uint256)","7c519ffb":"setTrading()","7c524b2e":"set_sell(bool)","7c52b934":"getTokenOrder(uint256)","7c535f1f":"bonusAmount(uint256,address)","7c54aa1a":"deployCommunityBallot(bytes32,bytes32,uint128)","7c559d5f":"bonusPattern(uint256)","7c567bfe":"isSale(address)","7c56b798":"addProject(address)","7c56d40b":"LogFunderInitialized(address,address,string,uint256)","7c57ad45":"newAsset(string,uint256,string,string)","7c57d947":"tokenMinter(uint256)","7c5817e1":"indexOfProvider(address)","7c582304":"updateInvestmentTotal(address,uint256)","7c58a4ed":"canPlatformFundingWithdraw(uint256)","7c59cb3d":"setCSInterface(address)","7c59f828":"getWizzType(uint256[2])","7c5b4a37":"adminWithdraw(uint256)","7c5b5b06":"lastProcessedVaultId()","7c5bfe81":"INITIAL_EXCHANGEABLE_TOKENS_VOLUME()","7c5c2cef":"nPolls()","7c5ca5a6":"ICOFY()","7c5d4949":"calcInvesting(address)","7c5d7980":"addRC(address)","7c5df29b":"auctionDeklaEnd(address,uint256,uint256,bytes)","7c5e16fd":"MAX_ALLOWED_BY_STAGE_2()","7c5e2795":"INITIAL_PRICE()","7c5e6949":"setlvlUpdate(string)","7c5e83cc":"Bullex()","7c609885":"allowWorkersToContribute(address,address[],address)","7c60fa60":"minReq()","7c612409":"setClient(address,address,string,string,string)","7c61b482":"coinAgeRecordForAddress(address,address,uint256)","7c61d567":"transferRegion(uint256,uint256,address)","7c622a65":"TEBT()","7c623ce2":"boughtWithWhitelist()","7c62965e":"excess_withdraw()","7c62e2a4":"getDog(uint256)","7c63144e":"TokenUsed(uint8,uint8)","7c645c21":"getPlayerLength()","7c64ac43":"vestingEnds()","7c652e26":"CENT_DECIMALS()","7c654303":"isFunded()","7c65452c":"newValue()","7c65f503":"initVault()","7c66ae22":"play(uint256,uint256,address)","7c674695":"MarkedAsScam(address,address,uint256)","7c67fb9f":"MIN_STARTING_PRICE()","7c67fdf5":"bltOwnedAcc()","7c67ffe7":"ownerSetBankroll(address)","7c686c15":"setBonusPrice()","7c68e078":"_createMonster(uint256,uint256,uint256,uint256,uint256,bytes,address)","7c68ec4c":"_compareStrings(string,string)","7c695384":"bet(uint8,uint256)","7c699401":"getAllRevisionIpfsHashes(bytes32)","7c69b5d1":"NewDeposit(uint256)","7c69ef8d":"market2020TokenCreated()","7c6aafd1":"getRegularCarsForVariant(uint256)","7c6ac2af":"withdrawal_Lem(uint256)","7c6b2d6a":"setV_R1(uint256)","7c6b5b10":"amountFirst()","7c6bd3e8":"preGrant(address,uint256)","7c6bd96d":"extendStart(uint256)","7c6db9b5":"changeMinimumWei(uint256)","7c6e19a8":"UpdateTokenDailyExchangeAmount(address,address,uint256)","7c6e481c":"bancorChanger()","7c6e5809":"AEZtoken()","7c6e607d":"SuicideContract()","7c6e94e3":"migrationStarted()","7c6eb7bb":"generateNewRandom()","7c6fa5c2":"attackPrizeRatio(address)","7c6fb02a":"getCrydrViewStandardName()","7c6fb59d":"updateCreditBalance(address,uint256,uint256)","7c6fdec5":"getStrategyTokenPrice(uint256,uint256)","7c6fe7a9":"getAddressIdArray(address,uint256,string,string)","7c709fbe":"mxrjjToken()","7c70b205":"windowLength()","7c70c444":"DOXToken()","7c70e791":"removeInspector(address)","7c70e7fe":"currentRewardReleasePercentageRatePerYear()","7c71c0eb":"getIsProjectBonus()","7c72d868":"sendDividendsEthers()","7c72e273":"auctionFinalize(bytes32)","7c73f846":"getMinimumEndowment(uint256,uint256,uint256)","7c74d4d4":"JCCoin()","7c759d0d":"lock(address,uint256,uint256,uint256,uint256)","7c75c1b4":"distributeWithPolicy(address,uint256,uint8)","7c774111":"OF()","7c77b7c4":"getNumberOfDisputedDealsProDoctor()","7c77fad6":"AddMatch(string,string,uint256)","7c78cb13":"decrementQuantity(uint256)","7c7959e0":"CryptoNumismat()","7c796a83":"setGasUsage(uint256)","7c799e90":"str2bytes(string)","7c79c167":"stageHardcap(uint8)","7c79ebce":"expired(uint64)","7c7a52bf":"newChallenge(uint256,address)","7c7b0ff4":"getRide(uint256)","7c7b13b0":"PlayX50()","7c7c7695":"getAccountID(address)","7c7c7c3c":"SUPER_ADMIN()","7c7ce7df":"mintToPool(uint128,uint256,uint128)","7c7d14cf":"getPawnId(uint256)","7c7d809b":"saleEndUnixTime()","7c7dc098":"early_supporters_distribution(address[],address,address,uint256)","7c7dd391":"TokensWithdraw(address,address,uint256)","7c7ead51":"Wscchain(uint256,string,string)","7c7edd68":"PRHXToken()","7c7eeaa1":"hirerLastResortRefund(bytes16,address,address,uint256,uint256)","7c80bb4f":"getNameByAddress(address)","7c80feff":"getTokenIndicies(address,address[])","7c812015":"HedgeCoinCapitalToken()","7c81ff56":"TGE_SUPPLY()","7c8255db":"sendGifts(address[])","7c82a1d4":"reserveKY()","7c82eff7":"getZero(uint256)","7c831bd9":"rateCoefficient()","7c83b25c":"gettimelineandgoal()","7c83fdf7":"createFiatInvestorRequest(uint256)","7c842e5e":"updatePriceFromRealUnicornPrice()","7c84b40c":"makePrivate()","7c84c69b":"assertEq(bytes32,bytes32)","7c853cc1":"WithdrawFromKickTheCoin()","7c857566":"destructGame(address)","7c858e02":"smallestUnit()","7c85a757":"updateGooConfig(address)","7c85ab3a":"boardMemberCancel()","7c85df24":"setWHaddress(address)","7c871d31":"setIcoDates(uint256,uint256)","7c88e3d9":"mintBatch(address[],uint256[])","7c8af704":"resolveRound()","7c8b1fa2":"ShNShToken()","7c8c2234":"pushMilestone(uint16,string,string,uint64,bool)","7c8c6643":"unhint(bytes32)","7c8d56b8":"numeraiTransfer(address,uint256)","7c8db773":"CSE()","7c8dc575":"rejectConsent()","7c8de59a":"DCM(uint256,string,uint8,string)","7c8e040f":"confirmAtkBossQuest(address)","7c8e17e5":"teamOneTotalPlayers()","7c8e4e25":"credosReserveAccount()","7c8e8e69":"MarkLesterMiranda()","7c8f76a1":"issueTokens(address[],uint256[])","7c8f8278":"setTotalTokenSupply(uint256)","7c8ff8ac":"tokenProof(uint256)","7c905c9f":"preICOprice()","7c9143c9":"_hash(uint256,bytes32)","7c91e4eb":"DISTRIBUTION()","7c92a217":"c_MinFunds()","7c930a10":"ETHERECASHTOKEN(uint256,string,string)","7c935183":"test_deposit()","7c937700":"revokeAllVulnerable()","7c9473f6":"sellNoDecimals(address,uint256)","7c94830b":"kairosOwner()","7c9542bd":"LogWalletUpdated(address)","7c955583":"pendingWhitelistHash(address[])","7c95ef3f":"privatePlacementSupply()","7c9677be":"allocateTeamToken()","7c968f5d":"get_token_data_buyable(uint256)","7c96f680":"MyAdvancedToken(uint256)","7c97479b":"cardSupply()","7c976dbd":"tokenCreationCapOverall()","7c97ffe2":"DeusToken()","7c987ba4":"getMemberPayed(address)","7c989b45":"setBonus(uint256,uint256,uint256,uint256,uint256,uint256)","7c996d9e":"IndiaStocksCoin()","7c99922d":"founderTokensVested()","7c9b0892":"lnUpperBound(uint256,uint256)","7c9b387b":"maximumClaimPriceWei()","7c9c3d89":"mintCoinsForOldCollectibles(address,uint256,address)","7c9cbd38":"changeTeamTokens(address)","7c9cd7df":"changeDeveloper_only_Dev(address)","7c9d564f":"_pRand(uint256)","7c9d8bdb":"getBetsByCategory(bytes32)","7c9f4941":"SplitSend(address,address)","7c9fe2a7":"train2(uint256)","7ca005b3":"generateProof(string,address,address,uint8)","7ca013e6":"getRateToPxlAmount(uint256,uint256)","7ca01b2a":"getTestFour()","7ca1a66c":"resumeLotto()","7ca1cb48":"approveCurrencyTokenAddress(address,bool)","7ca21b37":"setMinPersonalCap(uint256)","7ca24d95":"changeEndTime(uint64)","7ca2795f":"AdvanceQueue()","7ca31724":"tokenId(address)","7ca54248":"lastSaleInHGT()","7ca55e00":"etherandomVerify(bytes32,bytes32,bytes32,uint256,uint256)","7ca5d8fa":"read_u8()","7ca60997":"rewardComment(address)","7ca63061":"LibraCreditNetwork(uint256,string,uint8,string)","7ca64683":"hasFiveStepWithdraw()","7ca823d5":"getAverageChainWork()","7ca828d0":"_canBreedWith(uint256,uint256)","7ca9429a":"getOfferCount(address,address)","7caae38c":"calluseraddress(address,address)","7cab5e8c":"removeApproval(address)","7cac4c7d":"JOY()","7cac9736":"computeResult()","7cad997f":"purchaseByEMONTImpl(uint16,uint256,uint64,address)","7cae6cb5":"determineEdition(uint256)","7cae8509":"delete_blockedAddress(address,address)","7caf3115":"MovieWorld()","7caf59d9":"addPullRequest(bytes32,bytes32,uint128)","7cb04b87":"running_id()","7cb070c7":"OPL()","7cb1442c":"f1(uint256,uint256)","7cb1bb0b":"setOraclizeGasExtraArtwork(uint32)","7cb25bc7":"dividendCount()","7cb2b79c":"setTokenManager(address)","7cb2c15b":"getTXdatabyCode(bytes32)","7cb34d2d":"register(bytes32,bytes32,bytes32,string)","7cb46307":"NewContent(bytes32)","7cb4e22a":"IEIP165()","7cb4ef0e":"getHashRateOf(address,uint256)","7cb51761":"setMaxPayments(uint256)","7cb56698":"rescueLostFighter(uint256,address)","7cb5d0ef":"Airchain(uint256,string,uint8,string)","7cb6a6b2":"generateContract(uint256,uint256)","7cb6b35d":"adjustLimitBetweenIssueAndNormal(uint256,bool)","7cb6cf3e":"ETH_SIGN_PREFIX()","7cb8adc7":"s9(bytes1)","7cb91d84":"slots_left()","7cb97b2b":"set_owner(address)","7cb9cf54":"removeSeller(address)","7cb9da88":"setIncludes(uint256,uint256)","7cba3f04":"PriceWeekThree()","7cbab0cb":"updatewallet(address)","7cbae071":"setPresalePerEth(uint256)","7cbb6934":"generateRandomNum()","7cbba335":"get_order_book_length(string)","7cbbf1da":"proofType_Native()","7cbc2373":"redeem(uint256,uint256)","7cbc4eb6":"lost(uint256)","7cbc6903":"totalBidCount()","7cbcc254":"__reset__()","7cbd3508":"_unpackExpValue(uint256)","7cbd5444":"isPriv()","7cbd9e8d":"existCaller(address)","7cbe0f32":"addOpenAction(string,string,string,string,string)","7cbe9e41":"DANKSIGNALS()","7cbf2bdc":"CapFlexed(uint32)","7cbfb8a5":"TransferTokens(address,uint256)","7cc07974":"HFTCrowdsale(address)","7cc08d53":"partProvider()","7cc0c3a7":"controllers()","7cc0e670":"freezeAccountForContract(address,bool)","7cc1303a":"trade(uint8[2],bytes32[4],uint256[7],address[6])","7cc1c640":"getActualPriceOfCardOnBuyAuction(uint256)","7cc1e28d":"setValidatorRewardPool(bytes32,uint256)","7cc1f867":"getContractInfo()","7cc2fe49":"setResourcesPrimaryManager(address)","7cc35d99":"historyIt()","7cc3ae8c":"endAt()","7cc3b48e":"withdrawKrowns(address,uint256)","7cc3beb2":"acceptArbiter()","7cc48875":"Slots()","7cc49427":"RemoveLock(address,uint256)","7cc4e55f":"lowestAskPrice()","7cc4ef14":"purchaseLand(uint256,uint256,uint256)","7cc589f9":"BlocklancerEmploymentContract(string,address)","7cc666da":"MoratoriumTransfers(uint256,address[],address[])","7cc9e4f0":"registerParticipant(address)","7ccaa9fa":"calcMerkle(bytes32[],uint256,uint256)","7ccc5aea":"DSPParametersChanged(address)","7ccc7e94":"inv_contract()","7ccce851":"isBlacklistedUser(address)","7ccd099d":"test_32_assertGasUsage100Boards()","7ccd3f79":"setAA(uint256)","7ccec110":"TestWorldSnapshot(uint256)","7ccefc52":"minimumMakerProtocolFee()","7ccf0d44":"_setAuctionObj(address,uint256,uint256)","7ccfd45a":"removeSubUser(address)","7cd022d4":"gen0PresaleLimit()","7cd07e47":"migrator()","7cd208b6":"requestRefunding()","7cd30fe3":"MarketingDevelopmentAddress()","7cd3229a":"board()","7cd3969d":"getUnsoldReceived(uint256,address,address)","7cd44272":"getConversionRate(address,address,uint256,uint256)","7cd4559c":"_rewardApprovers(address)","7cd49fde":"_counter()","7cd50577":"setTradable(bool)","7cd64c79":"AdvancedERC20(uint256,string,string)","7cd6a7fd":"setSettings(uint256)","7cd73941":"withdrawBAT(uint256)","7cd7c2bd":"setAnimalMeta(uint256,string)","7cd87ee9":"Libertax()","7cd9b0f8":"userHasHunterLicence(address)","7cda71a6":"preSaleTotalSupply()","7cdbae63":"addRegistryIntoTagsIndex(address)","7cdcc514":"replyThread(uint256,string,string)","7cdcdf23":"RenderTokenCrowdsale(uint256,uint256,uint256,uint256,address,address,address)","7cdd053a":"addRace(uint8,uint8,uint8)","7cdd8419":"getEtherPriceforDapp()","7cddc1de":"checkBonusTokenHoldingPeriodRemained(address)","7cde2a7e":"setCount(uint256,uint256)","7cdee6fb":"buySpaceship(uint16)","7cdef83c":"debtEngine()","7cdf6d0b":"TranslateME()","7cdf8ace":"adminCommand(uint8,address,uint256)","7ce01daf":"rollSystem(uint256,address)","7ce1b194":"ModernTokenPlus()","7ce1db53":"ShowNextCliff(address,uint256)","7ce1e2eb":"releasedBountyTokens()","7ce2432b":"lbrsToken()","7ce26195":"approveGame(address)","7ce2d863":"_calcCheckoutTime(uint256)","7ce335ac":"amountwon()","7ce3489b":"setFeePercent(uint256)","7ce50441":"updateTimer(uint256,uint256,uint256)","7ce52eb6":"distributePrizes()","7ce56303":"deployVestingContract(address,address,uint256,uint256,uint256,bool)","7ce5b85e":"transferBuy(address,uint256)","7ce5f9da":"DIYToken()","7ce645a6":"fundsAreAvailable()","7ce65725":"TEC()","7ce67d60":"initLoan()","7ce6e4ca":"getData_1()","7ce7c990":"transfer2(address,uint256)","7ce7d660":"CAF1(address)","7ce84784":"createtoken(string,string,uint256,address,address)","7ce85957":"setEthCollector(address)","7ce8e196":"test_claim()","7ce901e7":"TestContract(address)","7ceac0b8":"TokenSale(address,uint256,uint256)","7cead212":"dissolvedIndexToApproved(uint256)","7cec3a3a":"getBUS(bytes32,uint256)","7ced3d4c":"validArb2(address)","7ced55c2":"pvpPaused()","7cee8e70":"subTotalSponsored(address,address,uint256)","7cee919c":"getCurrentHash()","7cee9ee8":"placeBet(uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","7cef6047":"getNavHistory(uint256)","7cef6966":"addLaureato(string,string,string,bytes32)","7cefcc52":"burnedCount()","7cefd9f8":"initCrowdsale(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","7cf0ffcb":"forceDivestAll()","7cf12b90":"unFreeze()","7cf12ff8":"registryRequestSerialNumber()","7cf141fd":"removeGlobalAdmin(address,address)","7cf2b9e4":"updateVotingContractAddress(address)","7cf2f670":"Pinakion(address,address,uint256,string,uint8,string,bool)","7cf37493":"finalizeNOK()","7cf4c543":"createTransaction(uint256,address)","7cf52f3c":"getPrevRoundWinner(uint256)","7cf5d66f":"notifyTokensReceived(address,uint256)","7cf5dab0":"increment(uint256)","7cf62838":"EIP20ByteCode()","7cf6babf":"BasicSprout()","7cf6be2c":"createBid(bytes32,address,address,address,uint256,uint256,uint256)","7cf7b9f4":"determineDate()","7cf7e0e2":"VLCCoin()","7cf846c9":"registerManoContract(address,bool)","7cf90fcc":"addItem(address)","7cf99c33":"getIsMigratingFromLegacy()","7cfa1133":"Baxgold()","7cfb1e66":"TeamSum()","7cfb6052":"setPremium(int256)","7cfbc7a5":"setMaxBetAmount(uint256)","7cfe18c0":"internalCalculateEthersWithBonus(uint256)","7cfe19af":"A_Free_Ether_A_Day()","7cfe7a25":"BankhadCoin()","7cff33c7":"setMainSaleParameters(uint256,uint256,uint256)","7d007ac1":"setProposalDuration(uint256)","7d00818c":"allowedAddressesOf(address)","7d00848a":"getSinistre()","7d019f87":"isPreSaleClosed()","7d02bc1c":"getOldest()","7d02db72":"CryptoRUB()","7d036b0d":"finishProofPhase(uint256)","7d0381a7":"notify(address,uint256,uint8,uint8,uint8,uint256,uint256,bool)","7d0385c2":"createPromotionalRenewal(uint256,uint256)","7d03c394":"Logs2(uint256,uint256,uint256,uint256,uint256,uint256)","7d03e603":"GetUserExtraData2(address)","7d03f5f3":"newGame()","7d049675":"fechAllCandidatesByStage(uint256)","7d04d239":"setTokenMintApproveReset(address,address,address,address)","7d051cf3":"getTokensAcquired(address)","7d052a2e":"processReservationContribution(address,uint256)","7d06053b":"perturb(bytes32)","7d065c93":"getPayout()","7d075efb":"withdraw(address,address,address,bytes)","7d087715":"getwithdrawableAmount(address)","7d087f47":"gamblerevent(address,uint256)","7d091a7e":"pct(uint256,uint256,uint256)","7d094533":"announceVictory(string)","7d0981dd":"ModifyMine(address,bool,string,uint256)","7d09f560":"Equio(string,address,address,bytes32,uint256,uint256)","7d0a5e3b":"fightWIthMob(uint256,uint256)","7d0b4c8b":"withdrawEquity(uint256,bool)","7d0b4d60":"migrationEnded()","7d0bc9c6":"tier_action(uint8,uint256,uint256,uint8,uint256,uint256)","7d0bd79a":"publicSaleTokensPurchased()","7d0cf8b5":"Seele()","7d0e6aa9":"BitrootCoin()","7d0e6b6f":"setNextDiscountTTMTokenId1(uint64)","7d0e750d":"getMyTime()","7d0eb9b9":"RemoveVerifiedInfo(bytes32)","7d0f023d":"_deleteBytes(bytes32)","7d0f7528":"getFromList_(uint8,uint256)","7d1108f5":"getAssetData(uint256)","7d112d64":"authenticateVoter(string)","7d1157c8":"rawSendEther(bytes32)","7d1173b0":"DGAMEToken()","7d11f020":"oracleName()","7d124a02":"setRewardAddresses(address,address,address)","7d1286f6":"InterfaceId_ERC721Exists()","7d128d2e":"checkAgentSign(address,address,bytes32)","7d12b689":"checkPoolsDone()","7d136133":"SimpleATM()","7d13a256":"highFundingGoalReached()","7d14500a":"Sukiyaki()","7d14c8df":"setStaleTime(uint256)","7d150529":"countdownTimeLeft()","7d1541ad":"listDapp(string,string,string)","7d1710e4":"saleBalanceOf(address)","7d1842ec":"getPayeeBalance(bytes32,uint8)","7d18a197":"IndoAset()","7d19514d":"addFunds(uint256,uint256,bytes32,uint256)","7d19c777":"Emission(address,uint256,uint256,uint256,uint256,uint256)","7d19e292":"transferTokensToContractOwner(uint256)","7d19e596":"getEscrow(uint256)","7d19ec9d":"getUserAccount(bytes32)","7d1a6e3f":"compareTo(string,string)","7d1b2666":"fibokenCreatedCount()","7d1bd3ea":"setClientSupply(address,uint256,uint256)","7d1ca9fd":"setBeneficiary2(address)","7d1d0553":"convertToMiniUI(uint256)","7d1d7fb8":"settlementFee()","7d1e97a1":"cardTokenAddress()","7d1ea6d4":"m_token()","7d1f067c":"EthBankRoll(uint16)","7d1f561b":"set_pre_kyc_iconiq_bonus_denominator(uint256)","7d2026cd":"distributeWinnings()","7d2044cc":"AuctusStepVesting(address,uint256,uint256,uint256)","7d211c75":"peth()","7d21ce4d":"_Mint(address,uint256)","7d2211d6":"setStatus(string)","7d22e9df":"clearAllocatedAndSalaryTokens(address,address)","7d22f431":"delegatePercent(uint256,uint256,uint256)","7d230dfd":"wedding()","7d236928":"getGenesMarketAddress()","7d2402d6":"inPresale()","7d240b9c":"setLockToken(bool)","7d2429a8":"long_party()","7d242ae5":"setBasePrice(uint256,bytes)","7d24a8a1":"returnToken(address,uint256)","7d24cd18":"onExecuteMessage(address,uint256)","7d25d7cd":"tokensToTransfer(bytes32,address,address,address,uint256,bytes,bytes)","7d263245":"COOLDOWN_TIME()","7d264bad":"adexTeamAddress()","7d268ac1":"ArtworkCore()","7d27ecf9":"phase1TokenSold()","7d287697":"testTryGetUnset()","7d298ee3":"beforeExecute(address,uint256)","7d29beff":"placeVoxel(uint8,uint8,uint8,uint8)","7d29f868":"ChangeUSDto1ETH(uint256)","7d2a0f7a":"isWhiteListedValueValid(address,uint256)","7d2a47b9":"findShareholder(address)","7d2aeb8a":"releaseVestedTokens(uint256)","7d2b9cc0":"setRequiredSignatures(uint256)","7d2c93d7":"validateTypeReference(uint256,bool)","7d2d661f":"genLimit(uint256)","7d2d92ac":"withdrawTheUnsoldTokens()","7d2dfc30":"FourCrowdsale(uint256,uint256,uint256,uint256,address,address)","7d2f42c3":"updateRating(address,bool)","7d309331":"Bitceun()","7d3157bf":"confirmBeneficiary(uint256)","7d320ef8":"proofStorage_IPFS()","7d326635":"getLendingObjId(address,uint256)","7d32e7bd":"transfer(address,bytes32)","7d34c2e3":"setMarketingAndRNR(address)","7d34f5ac":"dailyTotals(uint256)","7d3533da":"ownerSetAllowPublicWithdraw(bool)","7d35f656":"count_customer_deposits()","7d363718":"BitcoinXChainToken()","7d363720":"getCurrentBonusFactor()","7d368f88":"afterEnded()","7d36e478":"ClaimBalance(address,uint256)","7d37fcba":"setManagementContractAddress(bool,address)","7d380265":"addOptionChain(uint256,string,uint256,uint256,bytes32,address,int256[])","7d38a772":"updateDeveloperMiningPower(uint256)","7d394f90":"addMasternode(address)","7d398a86":"SourceChanged(string,string,uint256)","7d3b2d81":"PayXToList(address[],uint256)","7d3bfaee":"withdrawSurprisePotUser(uint256,uint256,uint8,bytes32,bytes32)","7d3c42d2":"EtherBrosMaker()","7d3c5961":"middleTimestamp()","7d3c6da5":"CreateLudumTokens(address,uint256)","7d3d220d":"CitizenOne(uint256,address,uint256)","7d3d6522":"goalReached()","7d3dcbc3":"setTRM1BonusActive(bool)","7d3ee409":"setPatient(string,uint256,address,string,string,uint256,uint256)","7d3fa29e":"addressToGoldDeposit(address)","7d3fcaff":"getMatchReport(uint256)","7d40189a":"timeAdjustPlus()","7d40583d":"setRoleCapability(uint8,address,bytes4,bool)","7d408b44":"getMemberTokenRemain(address)","7d40e9e0":"purchasedAmountOf(address)","7d40eb25":"TITANCORE()","7d4120a9":"insChainToken()","7d41cc60":"modifyAuthorizedCaller(address,address)","7d426826":"INTREPID_VOUCHER_PRICE()","7d42af97":"PrivateSaleEndTime()","7d436d76":"consume(bytes32,bytes32[])","7d443e57":"getInitInfo()","7d445654":"lastLargestHODLERBalance()","7d4504e0":"totalETHraised()","7d451aa7":"zgetOwner()","7d457ac3":"CompensationSentEvent(address,uint256)","7d459c71":"Multiexshares()","7d46702b":"icoCollected()","7d472f1c":"xnotifications(uint256)","7d475c32":"LogAccessPolicyChanged(address,address,address)","7d478407":"gameEncryptedText()","7d47b4e7":"setAIRDROPPrice(uint256)","7d48441f":"_isContract(address)","7d487532":"setMember(bytes32,address,bool)","7d48dcd7":"onPurchase(address,address,uint256,uint256,uint256)","7d49300d":"initGame(address,uint256,uint256,uint256)","7d49e51d":"getSpaceshipUpgradePriceByModel(uint16,uint8)","7d4a899e":"SafeSender()","7d4af159":"marketMakerFee()","7d4c1403":"get(address,address,string)","7d4c258a":"Set(bytes32)","7d4c4a04":"saleStartSecondDayEnd()","7d4cb964":"MAX_ENTRIES()","7d4ce874":"maxInvEth()","7d4cf602":"buildDSBalanceDB()","7d4d3128":"startTransferToken()","7d4d42c5":"_addGraffiti(uint256,string,string)","7d4da754":"CoiinToken(address)","7d4deda1":"setAirLimitCount(uint32)","7d4e1353":"erc20TRFT(uint8)","7d4e1eb0":"stop_game()","7d4f0406":"PPY(uint256,string,string)","7d4f128b":"createLockTokenHistory(address,uint256,uint256)","7d4f1883":"closeMonthlyInvest()","7d50bef3":"account(address,address,uint256)","7d5224d3":"registerNewUser(address)","7d53223a":"setVestingReleasedAmount(address,address,uint256)","7d53409a":"setMaxbonds(uint256)","7d534aa0":"disableCharity()","7d549e99":"totalTokensMinted()","7d54a3ba":"CROWD_WAVE1_PERIOD()","7d55094d":"toggleMinting()","7d55758f":"underMint(address,uint256)","7d55923d":"click()","7d55f64d":"fixedFeeInWei()","7d564056":"getUserProperty()","7d564f11":"setsystemprice(uint256)","7d574678":"setICOIsFinished()","7d57a85c":"preIcoFinish()","7d57edf3":"HOPE(uint256,string,string)","7d580939":"_HOLDersPayRoll()","7d58eb76":"hasResolver(string,address)","7d59a938":"month6companyUnlock()","7d5a9b41":"init(uint256,uint256,address,uint256,uint256,uint256,address,uint256)","7d5bc9fe":"Account_balances(address)","7d5c1914":"getWalletInfo(address)","7d5db5e0":"Dagelas()","7d5dc538":"getToJackpot(uint256,uint256)","7d5dec2a":"multiplex_remove(address)","7d5f66f2":"mintBounties()","7d5fbcab":"setMystr(string)","7d5fec5a":"setOwner(uint8,uint8,address)","7d606100":"BetOverlap()","7d60b6ce":"setCommissionWallet(address)","7d60e291":"FIFTY_THOUSANDS_LIMIT()","7d60e343":"getFileListSize()","7d619d9b":"holdCoin(address,address)","7d61b9fe":"intervalsCount(bytes32)","7d61de37":"foundersRewardTime()","7d620130":"getCardCount()","7d635502":"buyEgg()","7d636d9b":"refferal(address)","7d63a93a":"REKT(uint256,address)","7d64bcb4":"finishMinting()","7d652335":"changeAssetsState(bool)","7d656a72":"NewPost(bytes32,uint256)","7d65b2f7":"hasCompleted()","7d65e3fe":"totalInterestCycles()","7d661e3c":"giveToken(address,uint256,string)","7d6651b9":"claimEthIfFailed()","7d683b95":"unsoldUnlockedAt()","7d684a9d":"RENEEKROM(address,address,address,uint256,uint256,uint256)","7d68582a":"manuallyExchangeContractPreDGZtoDGZ(address,uint256)","7d68bee7":"LogPollDeleted(bytes32)","7d692faf":"readMailByAdmin(uint256,bytes16)","7d6979e7":"canBeChanged(uint256)","7d69880b":"addBalance(uint256,uint256,uint256)","7d69f335":"changeColorRed()","7d6a59ed":"getInvoiceCount()","7d6a5f7b":"requireNotPaused()","7d6ad4cd":"triggerAutorelease()","7d6b4278":"outcomeState(address,uint256,uint256)","7d6bc260":"maxTiers()","7d6c1ff1":"addMake(address,uint256,uint256)","7d6c8388":"INVECH(uint256,string,string)","7d6c864e":"withDrawable()","7d6cf2df":"get_deploy_fee()","7d6d28ef":"setComisionInTokens()","7d6dc737":"getBylawsMinTimeInTheFutureForMeetingCreation()","7d6e061c":"getFinishDates()","7d6e3751":"_addVouchers(address,uint256)","7d6ebe94":"setDoubleClaimSegmentSlashAmount(uint256)","7d6f0d5f":"changeFundsWallet(address)","7d6f174e":"invalidateSignature(uint8,bytes32,bytes32)","7d6f3781":"userChallenge()","7d6fb089":"setBGXTokenInterface(address)","7d7106ad":"_updateStats(uint256,uint256)","7d71a19b":"setAccountInfo(address,address)","7d720296":"airSender()","7d722a30":"Funding_Setting_cashback_before_start_wait_duration()","7d72aa65":"addRole(address,string)","7d736d0d":"weekPotExpiration()","7d7452aa":"DSVCoin()","7d7714fb":"coinAllowance(address,address)","7d7786a3":"GetGuestName()","7d77c8f9":"allowTransferBetweenUsers()","7d780e2a":"blocked_amounts(address)","7d78b94d":"claimNihilum()","7d78ef4a":"BKKToken()","7d790630":"setContractFrozen(bool)","7d79265b":"REDEEM_METHOD()","7d79c192":"awayTeam()","7d7a1a80":"UCToken(uint256,string,string)","7d7a31b6":"max(uint64,uint64)","7d7a3a1a":"bittravelxToken()","7d7a9ca4":"MachineToken()","7d7b0099":"API()","7d7b2051":"finalizeExits(address)","7d7be90f":"Splitter(address[])","7d7c2a1c":"rebalance()","7d7c7258":"adminSendMoneyToUser(address,uint256)","7d7ca00c":"JSONpath_int(int256,string,string,uint256)","7d7d4a68":"start_service(address)","7d7e5e3d":"setFlagPair(uint256,bool,bool)","7d7eee42":"setPreSalePrice(uint256)","7d7f0050":"TradeEnabled(bool)","7d7f1699":"freeBet(address)","7d7fa215":"getSaleData()","7d7fef7e":"receivedEtherFrom(address)","7d802655":"delLimitedWalletAddress(address)","7d80def3":"setENDPhase()","7d81d62f":"doGroupRefundPayoutsSuccess(address[])","7d820414":"GeXCHANGE()","7d82bf73":"getBonusTokens(uint8)","7d836281":"getBetState(address)","7d83e527":"PensionCoin()","7d851a13":"signerIsWhitelisted(bytes32,bytes)","7d851c70":"getTokensBack()","7d85445d":"EducationToken()","7d85facd":"transferred()","7d862a7e":"changeDutchIdxAddr(address)","7d87bb7b":"HATCHING_COST()","7d87e97d":"makeMemberOfGroup(address,uint256)","7d882097":"totalDeposits()","7d882e9b":"resetWinner()","7d886976":"testMintGuyAuth(int256)","7d8966e4":"toggleSale()","7d8978db":"addCasino(uint16,uint256,string,string)","7d897ccd":"KPCSAdministrator()","7d89ae63":"__findRef(string)","7d89f040":"AddAmount(uint256)","7d8be627":"activateLineItem()","7d8c0c7c":"adminSetRegisterCost(uint256)","7d8ccd59":"debug_uint(uint256)","7d8cfd1a":"flag_hash()","7d8d4878":"updateETHEUR(uint256)","7d8f442e":"getPrice(uint40)","7d8f94a0":"slackUsersCap()","7d8fcfb4":"transferSuperAdminOwnership(address)","7d8fe090":"REFERRAL_BONUS_LEVEL5()","7d902311":"gameGiftLineTime()","7d917fcb":"Registered(bytes32,address)","7d919a43":"tohash(bytes32,address,address,uint256,uint8,bytes32,bytes32)","7d91da87":"buyPixelTokenFor(uint24,uint256,uint24,address)","7d9201cc":"rspToken()","7d921af0":"disableTimelock()","7d92561d":"NewBuyer(address,uint256,uint256)","7d92654c":"endRoundAndStartNextRound()","7d92bb6e":"getClaimKeys()","7d92f6be":"goldRegistry()","7d9375b8":"authorizeContract(address,string)","7d9383c3":"valid_creature(address)","7d93ccdf":"Halo3DDoublr(uint256,address)","7d940912":"addArea(uint256,uint8,uint8[],uint256,string,uint256,bool,uint32)","7d94792a":"seed()","7d94d4aa":"SergeToken()","7d95dcd7":"createPromoArtwork(string,string,uint32,address)","7d961218":"REGTMProc()","7d96f693":"getDepositAmount()","7d97597d":"DEFAULT_AUCTION_LENGTH()","7d97b1f6":"VestingScheme()","7d98ebac":"exchange(address,address,address,address,uint256,bytes)","7d9a4e2c":"safeToMultiply(uint256,uint256)","7d9a9046":"resolveDisputeBuyer(string)","7d9a9096":"icoFinishedAt()","7d9c68f7":"getUserBattleValue(address)","7d9d4bed":"secondStageEnd()","7d9d972d":"guardian3Vote()","7d9e5243":"BonusAmountUpdated(uint256)","7d9f298e":"setLockedState(bool)","7d9f6db5":"auction()","7d9f8cf2":"startFirstStage()","7d9fb742":"fourthRoundPercent()","7d9fc342":"PreICODays()","7da028d6":"SaleCompleted(address,uint256,uint256)","7da0389d":"referralProgram(address[],uint256[],uint256)","7da0399a":"CloseAuction(bytes32)","7da0e079":"_closeMotion(uint256)","7da16762":"executeParentDaoSplit()","7da208aa":"deleteArrayAddress(bytes32,uint256)","7da21a1a":"WaltonToken()","7da25928":"announcedTimeStamp()","7da3400b":"_contractExists(bytes32)","7da39157":"poWtfContract()","7da3c3ab":"revert()","7da3e219":"testInitialTokenBalance()","7da3f613":"lockAddress()","7da40b65":"isPlatformOrSupportManager(address)","7da4d24b":"activationOpen()","7da5efc8":"drop(address,address[],uint256[])","7da63c59":"changeValuePerToken(uint256)","7da7a437":"Clinicoin()","7da7d5ab":"nextGameRakePercent()","7da81364":"getProposalAction(uint256)","7daa10ce":"getMyInfo()","7daa9fcd":"buyGems()","7dab61b6":"setBlack(bool)","7dab84d8":"ShowTestU(string,uint256)","7dabb4d6":"addKycVerifiedInvestor(address)","7dac0547":"VIRGOToken()","7dac9048":"addArgumentToRequestUint(uint256,bytes32,uint256)","7dae6e95":"noOfTokenAlocatedPerICOPhase()","7daeef25":"objectTome()","7daf06fd":"withdrawPart(uint256)","7db0799f":"EnduranceToken()","7db12abc":"contractorWithdraw()","7db1c36f":"setFeedBackFee(string,uint256)","7db2cff8":"old_address()","7db33f99":"setLeaseCard(uint8,uint256,uint256)","7db4149d":"RegisterTokenTransaction(address,uint256,address)","7db42b6c":"AutoBusinessFinance()","7db45975":"register(uint256,uint256,bytes32,string,bytes32)","7db48416":"_getMinions(uint256)","7db6a91d":"checkDeck(uint8[],bytes32,bytes32)","7db6cbfc":"_addDefaultOperator(address)","7db724b6":"MAIN_QUESTION()","7db7c239":"tranchesPayedOut()","7db8782a":"uint256At(uint256,bytes,uint256)","7db91595":"setOwnedBonus()","7db9743b":"Registry()","7dbb82a8":"setLicenseTermsRegistry(address)","7dbbc0cd":"EliteShipperToken()","7dbbf2e6":"RecallTokensFromContract()","7dbc1d6f":"modifyPrivateList(address[],bool)","7dbc827b":"vestingWithdraw(address,uint256,uint256)","7dbc9fba":"amendClaim(uint8,uint8,uint8,uint8)","7dbd0139":"softCapOk()","7dbdab18":"CreatedAngel(uint64)","7dbdc2eb":"getQueryPrice()","7dbdf168":"EtherBetIO(address,address)","7dbecc54":"EDColiseum()","7dbece3c":"usdCurrencyFunding()","7dbedad5":"createReward(uint256,uint256)","7dbf1fe6":"Towers(uint256)","7dbf67a7":"setDebt(uint256)","7dbff420":"donationUnlockTs()","7dc0015d":"centToken()","7dc09e4a":"getRequestedProducts()","7dc0d1d0":"oracle()","7dc0d451":"CHINESE_EXCHANGE_2()","7dc10df5":"Jackpot(address,uint256,uint256,uint256)","7dc2268c":"minting()","7dc28eb2":"LOCKAMOUNT4()","7dc379fa":"getTicket(uint256)","7dc45e27":"setCryptoMatchValue(uint256,string)","7dc4feb7":"setConstraint(bytes32,address,address,uint256)","7dc5cc64":"getTotalDivis(uint256)","7dc5cd32":"_patternToNumber(bytes)","7dc673bc":"closeRegistration()","7dc6c3d9":"deactivateAdSlot()","7dc7363b":"LogNewTemplateProposal(address,address,address,uint256)","7dc74473":"tokenPrivateMax()","7dc79375":"delOracle(address)","7dc7c5a5":"debug1()","7dc7f7c4":"Pitcheum()","7dc8c73e":"canTokenUnlocked(uint256)","7dc8e069":"shorten_end_block(uint256)","7dc8f086":"getOutcomeCount()","7dcaf720":"getReadme()","7dcb422e":"setPresaleStartDate(uint32)","7dcb6b92":"testegy()","7dcbd078":"thirdPay()","7dcc3f0c":"LukapToken()","7dccd4d6":"setIndividualCertificate(string,bytes32,bytes32,bytes32)","7dcd17d9":"sumHardCapICO1()","7dcd277b":"SimpleTingToken()","7dcda7df":"initiateProviderCurve(bytes32,int256,int256[],address)","7dcdace2":"Deposit(address,uint256,uint256,bool,string)","7dce4595":"sendToken(address,uint256,string)","7dce6bdb":"freeCrawDeadline()","7dce8461":"GSENetwork()","7dce8dd4":"GenesisSalesCount()","7dcfb801":"veryAngry()","7dcfd3d5":"blockTransfers()","7dd003f1":"test_chain2_4()","7dd02c8e":"transferETHFromContract(address,uint256)","7dd07097":"tgeSettingsPartProject()","7dd0d61c":"check_hash(address,bytes32,bytes32)","7dd10e4f":"newUsers()","7dd15d40":"getData_13()","7dd1f126":"optionTaker(bytes32)","7dd256ff":"PATToken(address)","7dd26660":"getMegaboxIndex()","7dd2899f":"changeDividentContract(address)","7dd2e993":"removeTenant(uint256)","7dd3cf54":"ChangeCostByManager(uint256)","7dd45999":"lockDomainOwnershipTransfers()","7dd563c3":"setMainSaleParams(uint256,uint256,uint256,uint256)","7dd56411":"ownerOf(bytes32)","7dd91734":"compositeReputation(string)","7dd9d27f":"exiteEntidad(address)","7dd9f846":"buyCard(address,uint256)","7dd9fcf7":"latestprice()","7dda48a5":"WhatTimeIsNow()","7ddaa56a":"tokenContributionMin()","7ddb3c00":"total_pay_claimed()","7ddb5e65":"votingReward()","7ddbf0ed":"setLockedTokenAddress(address)","7ddbf1a7":"passFundsToTheTeam()","7ddc02d4":"isOwner(address,address)","7ddcbfd9":"TegTokensSale(uint256,string,string)","7ddd0ce1":"getBetDivisor(uint256)","7ddd130f":"PRBCoin()","7ddd20ba":"getRequiredStateNumbers(uint256)","7dddb66f":"collectOwnRew()","7dde0138":"modifySupplyLimit(uint256)","7ddfffbf":"mint(address,uint256,uint256,uint256,uint256,uint256,uint256)","7de06cfc":"startTge()","7de09476":"getSpecificBuyerTransaction(address,address,uint256)","7de0cc65":"preMcFlyWallet()","7de14129":"approveInvestor(address)","7de1a631":"confirmETH(bytes32)","7de295d2":"withdrawalsCTR()","7de2d523":"setbonus(uint256,uint256)","7de2e95c":"TransferCow(address,uint256)","7de2fe4d":"linkToMasterWalletInternal(address,address)","7de32b17":"CuratedTransfers(address,address[],address[])","7de36138":"setPreICO(address)","7de47b3f":"fundingGoalUSD()","7de4800f":"withdrawEscrow(bytes32)","7de480c6":"aiurExchangeOracle()","7de4ceb2":"DebugValue(string,uint256)","7de50c44":"TIME_LOCK_END()","7de548d8":"releaseStake(uint256,address,address)","7de576cd":"vote(uint16,uint256)","7de5ad89":"setJntController(address)","7de6c905":"LetItPlayToken(address,address,address,address,address,address,address,address)","7de77700":"bytes32ToBytes(bytes32,bytes32[],bytes32)","7de7a18d":"setShare(address)","7de7ea78":"TokenHNC(uint256,string,string)","7de7edef":"changeMasterCopy(address)","7de8bb63":"Commons()","7de976dc":"amountFundHolder()","7de9f212":"colorfilter(uint256)","7dea9118":"setIdentityName(bytes32)","7deb6025":"buy(uint256,address)","7debb959":"calculateAllocation(address)","7dec2299":"getStagesInfo()","7dec3d35":"FOUNDERS_WALLET()","7dec4ce8":"SettleBond(uint256)","7ded2210":"setPreIcoCap(uint256)","7dee2cad":"CancelMyInvestment()","7def2fdf":"changeStakeRate(address,bytes32,uint256)","7def7351":"teamTokensFirstShare()","7df02c0e":"getLinglongCat(uint256)","7df042a2":"totalRegularTokensSold()","7df19a78":"BetPlaced(address,uint256,uint8)","7df1f1b9":"borrower()","7df23b6a":"ReleaseOracle(address[])","7df2e3e3":"getRcdExchange(uint256)","7df38c5b":"wad()","7df3a229":"PissToken()","7df432c9":"minSelfBuyPrice()","7df4732e":"seeZombieStar(uint256)","7df47407":"SigProof()","7df4c235":"kolidat()","7df52ba8":"Arbitrate(uint32,uint32,bool)","7df545c7":"MaximumSellableTokensChanged(uint256)","7df54c73":"setMiniPoolEdit_4(string)","7df5f4ae":"_upper(bytes1)","7df65a1d":"getMinersByAddress(address,address)","7df68a8b":"addPeriod(uint256)","7df73e27":"isSigner(address)","7df7ec18":"test_invalidEmptyEqVal()","7df82cc9":"veztUsers(uint256)","7df83cd0":"getDepositWithdrawList(address,uint256[])","7df841cd":"setPlayerVirusDef(address,uint256)","7df855f2":"getAuditAddress(address,address)","7df8833a":"createEvent(string,uint256,uint32)","7df9bb31":"heredar()","7dfa0b3f":"canSell(address,uint8,uint8)","7dfa7d79":"claimUnsoldTokens()","7dfac5a2":"accMinterOne()","7dfb0ba5":"getRecordOffers(address)","7dfb6626":"withdrawRewards(bytes32)","7dfbc19c":"HaltTime()","7dfbdf6d":"returnFundsFor(address)","7dfc64ca":"getTotalBudget()","7dfce5e9":"withdrawExcessReserves()","7dfce6d7":"MAX_INTEREST_AMOUNT()","7dfda44c":"AssignAddress(uint256)","7dfe1674":"CTB(uint256,string,string)","7dfe4302":"privateSaleTokens(uint256,uint256)","7dfe7741":"InviteAccepted(address,address)","7dfebff3":"addEth(uint256,uint256)","7e007c1e":"minimumWEI()","7e00d6d6":"enablePurchase()","7e00d77a":"mintExtendedTokens()","7e01c088":"removeWhitelistedAddr(address)","7e029bde":"setEthUsd(uint256)","7e02bb0f":"finish(address,address,address)","7e03ad1a":"numImports()","7e057b8e":"IYMAYA()","7e06ec93":"MDOSToken(address,address)","7e070df6":"rootOwnerOf_(uint256)","7e07877a":"hasFailed(address,uint256)","7e080911":"TRUEToken(address)","7e08a846":"tokenCollectedOf(uint256,address)","7e09d09b":"theFloatMultiplier(uint256)","7e09f0aa":"predictMarket()","7e0a16b1":"forwardAllRaisedFunds()","7e0be7e3":"upgradeGooCost(uint256)","7e0c1792":"oracle_address()","7e0c240d":"LianJieToken()","7e0cfc3d":"truncate(uint8[],uint8)","7e0d149e":"getGameAddresses(uint256)","7e0d8b27":"leekStealToday_()","7e0e20ba":"HighGasAmount()","7e0e471d":"Licensium(uint256,string,uint8,string)","7e0f7a87":"getUnixTimeStamp()","7e1028b2":"_doTradeWithEth(address,uint256,address,uint256)","7e1055b6":"icoEndTime()","7e111f59":"sell_toContract(uint256)","7e11f453":"ETH_Rate()","7e12180e":"setSaleDuration(uint256)","7e133564":"donateDna(address,uint256,uint8)","7e13b0be":"changeTokenDecimals(uint256)","7e150d66":"maxTxSize()","7e1629ab":"token_transfer(address,address,uint256,bytes,string)","7e167198":"_preValidatePurchase(address,uint8,uint256)","7e168086":"preallocate(address,address,address,address)","7e16cfde":"getGameBlockNumber(uint256)","7e16eca0":"getContractTimestamps(bytes32)","7e1721ee":"LMAOtoken()","7e179816":"setRefShare(uint256)","7e18dd21":"motodoughToken()","7e1934f9":"swpFund()","7e199b70":"startCrowd(uint256,uint256,uint256)","7e1a6753":"Destruct()","7e1ab812":"utrToken()","7e1b52f6":"doftManager()","7e1c06b6":"newOwner(uint256)","7e1c0c09":"totalTokens()","7e1c4205":"query2(uint256,string,string,string,uint256)","7e1cae40":"changeRefundToken()","7e1cb559":"members(bytes32,address)","7e1cd79c":"Voting(bytes32[])","7e1db495":"addPendingWithdrawl(uint256,address,bool,bool)","7e1db516":"init3_block_height()","7e1e06ea":"EventTransferWasReset()","7e1e1ff6":"Giorgi()","7e1e447e":"total_wins_count()","7e1f2bb8":"createTokens(uint256)","7e1f89c8":"PRE_SALE_START()","7e20e7c0":"getRegistryDataMinter()","7e2224bd":"compress(bytes)","7e23f7cd":"teamKeepingLockEndBlock()","7e241c64":"getServiceNameByAddress(bytes32,address,address)","7e241dbf":"unlockMiner()","7e245fac":"PHXTKN()","7e24cb8f":"reservedFundLeft()","7e25ac5b":"destroyRewards()","7e25b7d6":"implements(address,bytes4)","7e266385":"setPrefix(uint8)","7e26639f":"saleLimit()","7e27133f":"tradingMonDataContract()","7e274f7e":"Reederem(string)","7e288822":"pendingWithdrawal()","7e298249":"setPriceInWei(uint256,uint256)","7e29d2a3":"TokenCoin4()","7e29dad0":"testBuyExceedHardLimit()","7e29f242":"changeDiscount(uint256,uint256,uint256,uint256)","7e2a0141":"removeToken(address[16],address,uint256)","7e2a6db8":"trusted()","7e2ac454":"disagree(bytes32,bytes32,bytes32[])","7e2bc821":"SaturnPresale(address,address,uint256,uint256,uint256)","7e2bef39":"calldata(uint256)","7e2bf3c6":"freezeCreditScore(address,uint256,string)","7e2c0459":"_transfer(bytes32,bytes32,uint256)","7e2c83fc":"seriesByAddress()","7e2ce380":"_calculateOwnerCut(uint256)","7e2e3958":"setBUS(bytes32,uint256,string)","7e2e756e":"testToUint32()","7e2f014f":"addResolversDelegated(string,address[],uint256[],uint8,bytes32,bytes32,uint256)","7e2f6e3b":"getReserveSupply()","7e2fc2b6":"_Crowdsale(address,uint256,uint256,address)","7e2fdb0c":"dataForBuy(address)","7e2ff5f9":"setPreSale()","7e300fc6":"crowsaleShare()","7e31c53a":"HodlWithdrawn(uint256,address,uint256)","7e32456d":"STRC_SUPPLY()","7e327168":"allocatePresaleTokens(address,string,uint256,string)","7e32a592":"repairTheCastle()","7e32baea":"TRIPToken()","7e32fc47":"registerAsset(string,bytes32)","7e331a99":"setUserMessage(string)","7e33e361":"setRowQuiter(bool)","7e340b01":"getLatestPayday(address,address)","7e342507":"gameIndexToBuy()","7e3475a8":"lockQtyToAllowTrading()","7e347b82":"REALCrowdsaleMock()","7e34dbe0":"deposit(uint256,uint256,uint8,bytes32,bytes32)","7e363ffa":"setupCost()","7e36edce":"RATE_DAY_28()","7e373bc0":"bulletAmount()","7e380099":"addOrgCertificate(string)","7e38b424":"reverseFiatPurchase(uint256)","7e38d065":"ADVISORS_AND_CONTRIBUTORS_TOKENS()","7e39082f":"escrowedMYB(address)","7e3bfa1d":"removeRecoveryAddress(address)","7e3d15ae":"nextHolder(address)","7e3d45ef":"gameMiningToken(uint16)","7e3d8813":"setup(address,uint256,uint256,uint8)","7e3da027":"approveAndCustomCall(address,uint256,bytes,bytes4)","7e3dbf96":"addr(bytes,bytes)","7e3df726":"EZEtherMarketplace()","7e3e40ec":"getRequiresKing(bytes)","7e3e7bdf":"checkReward(address,uint256,uint256)","7e3ef7cd":"getMyBalance(address)","7e3ef935":"setReleaseMake(uint256,bool)","7e3f2b2d":"getDocumentSignsCount(uint256)","7e3f5b70":"JFBToken()","7e3faec1":"GoldTxFeePool(address,address,bytes)","7e402eb0":"setSecondAdmin(address)","7e410427":"aDay()","7e4115ba":"toAddress(string)","7e4241b4":"ownerTake(uint256,address)","7e429f02":"burnMultDen()","7e42be1a":"quarantineAddress(address)","7e42f8b4":"setRefund(bool)","7e42f94d":"horsePr(uint256)","7e43185a":"showCollectorsAddresses()","7e4358c3":"used_in_contract_fees()","7e43828e":"bountyTokenWithdrawal()","7e441048":"hasCategory(address,uint256,uint256)","7e445d44":"setEndICO(uint256)","7e456808":"reclaimUnusedEtherBalance()","7e457b85":"startEarlyStage3()","7e458492":"addInspector(address)","7e45d15c":"___coinAddress()","7e466bb4":"forTeamCOT()","7e470882":"setStrF1(string)","7e482379":"totalEthInWeiForSecondIco()","7e4929c4":"priceBox2()","7e4930ae":"modifyCap(uint256)","7e495dae":"changeMinters(address,address,address)","7e4985c5":"LookUpAvailableDivLarge(address)","7e49aa05":"testSelfdestructIsRevertedWithMinReturn()","7e49d530":"fechVoteMainInfoBySnapshotBlock(uint256)","7e4a1731":"returnWallet()","7e4a82b1":"foreignBuyTest(uint256,uint256)","7e4b5eb5":"getPhControlLimits(bytes32)","7e4c3b2e":"requestRate(string,string,bool,uint256,uint256)","7e4d25c5":"Refundably_if_gasprice_more50gwei_Send_Votes_From_Your_Balance(address,uint256)","7e4d4495":"getEthCapPerAddress()","7e4d4653":"echoTest(uint256)","7e4d5ea1":"STARTDATE()","7e4e95d7":"airDropPercent_()","7e4eb35b":"left43(uint256)","7e4f1a9f":"AKMJCHAIN()","7e4f6b95":"MyAdvancedToken(uint256,string,string)","7e4f9397":"gSetAlive(bool)","7e4fdd0b":"SetherStarted()","7e545305":"firstBalance(address)","7e5465ba":"approve(address,address)","7e549814":"setEscrowedProjectPayees(uint256,address)","7e54b8e2":"AddCandidate(string)","7e551b75":"hashOf(uint256)","7e55a212":"JustTheTipCrowdsale(uint256,uint256,uint256,address)","7e55a311":"getPurchaseSeconds()","7e55b83c":"readValidDate(uint8)","7e55ec25":"CryptoPokemon()","7e569e66":"TDEContributorCount()","7e56d25f":"ReplyShare(uint256,string,bool,string)","7e56fde5":"calculateEggBuySimple(uint256)","7e5713d9":"setGenesisAddressArray(address[])","7e574098":"confirmEthTransactionRequest()","7e575524":"poolMintAmount()","7e577274":"onAuctionEnd(bytes32)","7e580d30":"ZCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","7e58f815":"pauseRoundA()","7e59092e":"getVersionById(uint256)","7e5912d7":"reputationHashSubmissions(address)","7e59d513":"deathData_f1()","7e5a4dde":"getMarriage(uint256)","7e5a66df":"uniqueSpinnerOwners(uint256)","7e5a9ed9":"updateHpbNodeBatch(address[],bytes32[],bytes32[],bytes32[])","7e5af26c":"BugisContract()","7e5b1cdd":"GOToken()","7e5c344a":"Upgrade(address,address,uint256)","7e5c86a2":"moveFundToOwner(uint256)","7e5cd5c1":"disableMinting()","7e5e190c":"getBaseTypeStats(uint256)","7e5fc6f4":"calculateIcoBonus(uint256,uint256,uint256)","7e600c87":"doSend(address,address,address,uint256,bytes,bytes,bool)","7e602078":"assertInvalidState(address)","7e60a4bf":"removeLockFunds(address[])","7e61c768":"isClient(address,address)","7e61e6ef":"GasWar()","7e621667":"sendFromOwn(address,uint256)","7e626e58":"getUnPurchasedProducts()","7e62eab8":"withdraw(int256)","7e638974":"CalculateFinalDistance(bytes32,bytes32,bytes32,bytes32)","7e63dd86":"seed_additional_token(uint256)","7e6503bb":"getActiveOrderCounts()","7e655ddd":"tokensSoldInThisRound()","7e6667c9":"Invoked(address,bool,uint256)","7e6688a2":"lastJackpotPayout()","7e668cd2":"fSqr(uint256)","7e66f15f":"nowSupply()","7e67429f":"switchToCrowdsale(string)","7e687a8b":"getTotalInvoicesCount(address,uint256[])","7e69671a":"distributeFees(uint256,uint256)","7e69ba22":"ethForTokens(uint256)","7e69e0fc":"ETH420on420()","7e6a0720":"removeClaim(uint32,int256,string,string)","7e6b867f":"insertProductIntoCart(uint256)","7e6bdb95":"getTransactionHashes(uint256,uint256,bool,bool)","7e6beae1":"team2018TokenCreated()","7e6c945c":"FileHashInt()","7e6d0fa0":"isWithdrawAllowed()","7e6d6928":"SmartBusinessToken()","7e6d86ff":"BOUNTIES_SHARE()","7e6dce9c":"throwIn()","7e6e65f3":"acceptSellOffer(uint32)","7e6eee20":"olympusTest()","7e6f6947":"setTokenBurnFeeAbs(address,address,uint256)","7e71496b":"TRCToken(uint256,string,string)","7e71572b":"_checkCap(uint256,uint256)","7e71ccd8":"HShoe_Limit()","7e71fb09":"transferOwnershipImmediately(address)","7e72fb52":"buyToken(address)","7e7307c5":"Contribute(bool,uint8)","7e737551":"setMaxWhitelistLength(uint256)","7e7388b1":"NewRiskAdr(address)","7e742432":"addNewDegree(string,bytes32)","7e74325f":"turn(address)","7e74a1ed":"depositRate()","7e754146":"getCurrentImpeachmentUrlDetails()","7e761240":"setMyName(bytes32,bytes32)","7e766e1f":"IonixxToken(uint256,string,string)","7e76b836":"minter1()","7e7712f2":"standardReleaseAmount()","7e773d9d":"testTimestamp()","7e77509e":"isRoundingErrorFloor(uint256,uint256,uint256)","7e779985":"isTransactionSuccessful(uint32)","7e77c503":"initialize(string,string,uint256,address,address)","7e780157":"PERCENT_100()","7e7894e4":"PendingETHs()","7e79a562":"TripPay(uint256,string,string)","7e79e8ba":"getEmail()","7e7a2fbf":"contribute_toTheGame()","7e7af34f":"setPostICOSale(bool)","7e7be158":"validatePurchaseAndDistributeFunds(uint24[],uint24[],uint256[])","7e7c16de":"secsPerBlock()","7e7c4243":"getTheBet(address)","7e7c8c6e":"catToken()","7e7d5689":"requireTrade(address)","7e7d76ad":"SPORT(uint256,string,uint8,string)","7e7db227":"lastAccountNum()","7e7dd581":"oldDBAddress()","7e7e4b47":"getOutcome()","7e7e5a75":"changeIdentityNarcoRespect()","7e7f1bfd":"total_refunded()","7e7f8e1e":"AddItem(uint256)","7e809973":"hash(address)","7e815fb4":"ScooterCoin()","7e81701a":"sitExchanger()","7e81b6aa":"KingdomFactory()","7e823bd1":"OMGToken()","7e82d0e6":"dbkWithdraw()","7e83027f":"setRegionForSaleToAddress(uint256,uint256,uint256,address)","7e8306ae":"profitrate()","7e83185b":"updateImageAddress(string)","7e835e86":"minechaincointest(uint256,string,uint8,string)","7e837ccc":"dispute_confirmed()","7e84adda":"setGameState(bytes32,int8[128],address)","7e85477f":"myInner1()","7e86e0f2":"BKFToken()","7e86f8e5":"blockedDeadLine(address)","7e873c2c":"uniq(uint256[])","7e87cf30":"tokenOpen()","7e888767":"getNumUsersToPayout(bytes32)","7e88f603":"returnDeposit()","7e893159":"changeIssuer(address)","7e8a9db9":"BasketEscrow(address,address,uint256)","7e8ab941":"_play(uint256,uint256)","7e8bca6f":"Tenteniy()","7e8bf1cd":"calculateCurrentMarketPixelPrice()","7e8c3ab6":"distributePartnerTokens()","7e8ca5f6":"unlockAdvisorTokens()","7e8d1a39":"finishIssuing()","7e8d2c19":"reserveForJackpot()","7e8e13e4":"Lesson_7(address,uint256)","7e8e353c":"setValidatorForND(uint256,uint256,uint256,uint256)","7e8e6d45":"setScaleContractAddress(address)","7e8ecf4f":"balanceOfInvestor(address)","7e8ff036":"submit(bytes32[])","7e904a48":"getNumContents(uint256)","7e904f7b":"stakePrimordialTokenFrom(address,uint256,uint256)","7e90819a":"unofficialApplicationSignUp(string)","7e9266bb":"ChallengeToken()","7e926b4b":"renounceOwnership(bool)","7e92a7e8":"getPublicBattlePokemon1()","7e93150b":"_transferHelper(uint256)","7e93163b":"tip(bytes32,bytes32)","7e932d32":"setFrozen(bool)","7e93810b":"playe1Bid()","7e93e4db":"KhabibvsMcGregor()","7e944756":"getPlayersCollection(address)","7e945935":"oneTokenInCents()","7e947347":"changeWeiCostOfToken(uint256)","7e94cf0c":"getValidityBondAttoeth()","7e951bc6":"update_coeff()","7e95385c":"setJackpot(address)","7e95cd27":"forbid(address)","7e95d2f6":"doSend(address,address,uint256,bytes,address,bytes,bool)","7e968195":"batchTransferETH(address[])","7e969692":"EthRateChange(uint256)","7e97ca29":"registeredInDay(address)","7e98bc8f":"Accumulate(address,uint256)","7e990ad8":"isRentals()","7e999cd9":"revokeMintDelegate(address,int256)","7e9a8685":"getWager(address)","7e9abb50":"getUnavailableTakerTokenAmount(bytes32)","7e9ad046":"upper(string)","7e9aef53":"elementsAreSet()","7e9b98ae":"transferFromWhiteList(address)","7e9ba301":"getResponseAddress()","7e9cd30c":"rescueLostHero(uint256,address)","7e9d2ac1":"burnAll(address)","7e9d7f68":"namiCrowdSaleAddr()","7e9de0bc":"buyTile(uint8,uint256,address)","7e9e1561":"getStakerFromDelegateKey(address)","7e9e1637":"getStockTotal(address)","7e9e1cb6":"Execution(bytes32)","7e9e3b3b":"RESERVED_TOKENS_BOUNTY()","7e9e3d51":"TokenERC20(string,string,uint8,address,uint256)","7e9e4b5d":"firstStageTokensSold()","7e9e511d":"issueAndActivateBounty(address,uint256,string,uint256,address,bool,address,uint256)","7e9e940a":"ClaimDisbursement(address,uint256)","7ea01c0d":"currentLowest()","7ea074b3":"GetJackpots()","7ea11880":"VestedPayment(uint256,uint256,uint256,uint256,uint256,address)","7ea15da1":"priceUpdateAt()","7ea17a1d":"ORACLIZEQUERYMAXTIME()","7ea1a871":"announce(uint256,uint256,uint256)","7ea1b7ba":"_closeSale()","7ea1e2d9":"ethpause()","7ea23fa6":"unlockEthBalance(address,uint256)","7ea2bbac":"getOwnerGennezise(address)","7ea2be2b":"log32(uint32)","7ea2ddeb":"randomNumber(address,uint256,uint256)","7ea2e31c":"EligmaMintingContract()","7ea2fc89":"cancelBetByPlayer(uint256)","7ea30d5d":"BuyCreditsByEth(uint256)","7ea310d4":"getCurrentPrice(uint40)","7ea31352":"getReadableStats()","7ea31ded":"isBuyBackOne()","7ea46993":"revokeMultiplePermissions(address,bytes32[])","7ea531e7":"_generateNewHorseShoe(uint256,uint256,address)","7ea5d50e":"tokenWinRatio()","7ea5e7d3":"reserveDeployment(address,bytes32,address,uint256,uint8,bytes32,bytes32)","7ea60eb8":"roleEditorAddress()","7ea61ed7":"withdrawInternal(address)","7ea6c6ba":"MemoLandCoin()","7ea80eb2":"_receiveBuyLandForCandy(address,uint256)","7ea83869":"increasePreSaleSupply(uint256)","7ea84748":"addPlayerOrder(address,uint256,uint256,uint256,uint256,uint256,uint256)","7ea868e1":"makeInvest(uint256,bytes5)","7ea8f250":"isRunningPreIco(uint256)","7ea94985":"calcHashes(uint32,uint32)","7ea95733":"emissionReleaseThreshold()","7ea9b2bc":"REQUEST_URL()","7eaa0c29":"LogTransactionFailed(bytes32,address)","7eaa4389":"finish(uint8,uint8,uint8)","7eab4e48":"openGiftFromSanta(address)","7eac7382":"getCAOAddres()","7eae1626":"getBack()","7eae6759":"_setBalance(address,uint256,uint256)","7eae75a8":"EtherMango()","7eaef50c":"over()","7eaf45f8":"SaveAccountBuyingGodz(address,uint256)","7eafcdb1":"updateGroupName(address,address,bytes32)","7eb13d8a":"_SetEducationQualificationOf(uint256)","7eb14990":"isBuyer(address,uint256)","7eb1bfb9":"feeWithdrawEthAll()","7eb30cd0":"checkTreeStructure(address,address)","7eb312b1":"SUCCESS_BONUS()","7eb41ce5":"modifyCfo(address)","7eb4b376":"UpgradeSpaceETH(uint8,uint256)","7eb52145":"_preValidateFinalization()","7eb5df39":"equal(uint256[],uint256[],string)","7eb60591":"NVISIONCASHTOKEN()","7eb6634c":"phasePresale_From()","7eb69ba1":"hint(int256,bytes32,string,bytes20)","7eb82601":"getHighestBlockNumber(uint256)","7eb96aa3":"setCurrentWeekPool(uint256)","7eb9f04a":"updatePriceInWei(uint256,uint256)","7eba7ba6":"getSlot(uint256)","7ebaaa60":"MemberBoughtToken(address,uint256,uint256,uint256,uint256,uint256)","7ebadcd8":"acceptPayments(bool)","7ebd02f8":"typeA()","7ebd89ee":"TokenSale(address)","7ebdab54":"setup(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[],uint256[],uint256[],uint256[])","7ebdc478":"settleTimeout()","7ebdf4ac":"setMaxAllowedBetInEth(uint256)","7ebdf57d":"icoTimeBonusPhase1End()","7ebe7626":"FreezeTokensReleaseTime()","7ebedc34":"hasEndedIco()","7ebf65fd":"changeGasLimitOfSafeSend(uint32)","7ec0c39c":"whitelistPrincipleLockPercentage()","7ec0f30d":"ack(string)","7ec13996":"getBytes32Value(string)","7ec1c1aa":"acceptPAIReceiptOwnership()","7ec20127":"createPoolIfNeeded()","7ec2402f":"freezeSupply()","7ec27000":"AiTokenToken()","7ec2ae46":"setSparkDividends(address)","7ec2e264":"_generateCode(address,uint256)","7ec2fd36":"capReleaseTimestamp()","7ec2fd95":"DrawCom()","7ec36494":"osmCoin()","7ec3e63e":"getsubscribersSinceLastHatch(address)","7ec4a5a6":"requestReturn(address)","7ec4edbe":"offset(address,address)","7ec509c4":"external_call(address,uint256,uint256,bytes)","7ec54bdc":"eosShareDrop()","7ec62cf7":"MthereumToken()","7ec650db":"__mul(bytes,bytes)","7ec69c50":"changeWhitelistingStatus()","7ec72d3c":"setSwap(address,uint256)","7ec80c27":"priceStep6()","7ec8ff4f":"crosairVoucherSoldCount()","7ec9084d":"RRCoin()","7ec9290b":"setCouldTrade(uint256)","7ec9c3b8":"per()","7ecab507":"registerPresale(address,uint256,uint256,bool)","7ecacb95":"Example7()","7ecaf696":"createMultiple(uint256[],uint256[],uint256[],address[])","7ecb6475":"aggiungiFrase(string)","7ecc2b56":"availableSupply()","7eccc40a":"contains(uint256,address)","7ecdb299":"SetEthBalance(address,uint256)","7ecdbf61":"SPPSeriesA(uint256,string,uint8,string)","7ece75dd":"lockPeriodStart()","7ecedac9":"allInitialOwnersAssigned()","7ecef543":"_getAppliedPolicyIndex(address,uint8)","7ecf9142":"depositToken(address[2],uint256[7],uint8,bytes32[2])","7ecfa8a8":"ico(address,address,uint256,uint256,address[],uint256[])","7ecfae65":"invokeFor(address)","7ecfb675":"stdBalance()","7ed02af9":"acceptNegotiationTenant()","7ed02cbe":"fireLottery(uint8)","7ed040f2":"prod(bytes32,uint128)","7ed04cf2":"getTokenNames(address,uint256[])","7ed05315":"newGubberment()","7ed06cf3":"nativeProof_verify(string,bytes,bytes)","7ed0c3b2":"write(bytes)","7ed0f1c1":"redeemed(uint256)","7ed18aa5":"WhitelistUpdated(address,uint8)","7ed19af9":"multiAccessRevoke(bytes32)","7ed1ca6a":"BetExecuted(uint256,address,uint256)","7ed273e9":"_mintToken(uint256,string,address)","7ed32df6":"buyRtc()","7ed37b8d":"setPotato(string)","7ed40602":"IsICOstarted()","7ed4e321":"CakeToken()","7ed51b47":"getResult(uint256,uint256,uint256,uint256,uint256)","7ed57fa0":"pregnantHorses()","7ed5a6d4":"TYPE_EXPLORER_FREIGHTER()","7ed5d621":"Crowdsale(address,address,address,uint256,uint256,uint256)","7ed65c87":"closeProvider()","7ed7101d":"mainIcoStartBlock()","7ed77c9c":"setContract(bytes32,address)","7ed788c8":"push(address,uint256,uint256)","7ed83d50":"INCO()","7ed8a719":"addItem(string,string)","7ed8b225":"createMesaVerify(bytes32[])","7ed9c734":"burnRemainingToken(uint256)","7ed9d3a3":"_error(uint256,bytes32)","7eda09e8":"test_me(int256,int256,int256)","7edaabd8":"sendApprovedTokensToInvestor(address,uint256,string,string)","7edaca89":"DAToken(uint256,string,uint8,string)","7edba6c8":"sam()","7edd9060":"_nominCap()","7eddea21":"STAKEHOLDERS_POOL()","7ede036d":"minimumSupply()","7edea039":"private_addPermittedRoll(uint256)","7edebaf1":"buyXname(string)","7edee605":"receivePayment(uint256,uint256,bytes)","7ee0cda4":"validate(string,uint256)","7ee0d91c":"isKycRequired(address)","7ee212bb":"planetIndexToApproved(uint256)","7ee26b2e":"callKoikeToken(address,address,uint256)","7ee26e63":"_alreadyInList(address)","7ee2ea76":"isSafeHavenToken()","7ee42e6d":"_createToken(string,bytes5,address,uint256)","7ee54b82":"TYU(uint256,string,uint8,string)","7ee54eec":"onTicketPurchase(uint32,address,uint16[])","7ee55c97":"isICO()","7ee5c97a":"returnReferral(address)","7ee5eef2":"changeToPublicSale()","7ee62440":"highEtherBonusLimit()","7ee65635":"LookAtDepositsToPlay()","7ee6b2d0":"fundingMinCapInWei()","7ee7f42a":"MIN_RELEASE_DATE()","7ee80d17":"isScheduled()","7ee81902":"DatoDEX(address,address,address,uint256,uint256,uint256)","7ee8703a":"getProgressOfAddressAndId(address,address,uint32)","7ee96f6d":"getEnd(uint256)","7eeb5906":"createCountry(string,string,uint256)","7eec20a8":"cancelTask(uint256)","7eed2814":"transferAD()","7eee1ab6":"HahaCoin()","7eee288d":"unlock(address,uint256)","7eee56f9":"issueIcoCoins(address,uint256)","7eee6d1f":"getUserQuickPromoBonus(address,address)","7eeec2cf":"GigaWattToken()","7eefe47e":"editCode(uint256,string)","7ef01fb9":"totalLockedBonus()","7ef0356a":"littafiTimeCapsule(bytes32,string,string,string,string,uint256)","7ef039f8":"candySentAmount()","7ef09476":"transfer(uint64,address)","7ef1925b":"getShareRange(uint256,uint8)","7ef1a396":"YOU9COINToken(string,string,uint8,uint256)","7ef1ab2c":"payoutRange()","7ef224ee":"getContractOrNormal(address)","7ef26d42":"HardCapEthereum()","7ef2bd52":"currNumOfUpgrades()","7ef3bb63":"createKitties()","7ef3e741":"totalEtherReceived()","7ef4cabb":"nextSupplyAfterBlock()","7ef50298":"registry(bytes32)","7ef581cc":"whitelistAdmins()","7ef58e73":"totalGooProduction()","7ef59d01":"setTrader(address,bool)","7ef5b6ea":"refillTokens(uint256)","7ef5e6a2":"rescale(int128)","7ef61e28":"dayEthInLimit_()","7ef72eb5":"AlphaMarketCoin(address)","7ef7ce92":"revokeMint(uint256)","7ef81a34":"TestableTwoStageSale(bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256)","7ef9016e":"MultiTransferValue(address[],uint256)","7ef92867":"Faucet(address)","7ef95c6f":"extractAccountAllowanceRecordLength(address)","7efc05ae":"TUBECOIN()","7efc2315":"minPaymentForAnswer()","7efcbb33":"getTradeRecord(uint256)","7efce4ff":"TransactionRefunded(uint256,uint256)","7efce591":"TokenRDN(uint256)","7efd3441":"DynamicSKx2(uint256)","7efd9112":"decodeTokenId(uint256)","7efe0e76":"PhoenixFundDeposit()","7efe294c":"removeFromFreezedList(address)","7efe64ba":"InfinityHourglass()","7eff1465":"setAccountAllowance(address,address,uint256)","7eff275e":"changeProxyAdmin(address,address)","7effb427":"TTTToken()","7efff887":"topUpBalance()","7f002ffe":"setTradeable(bool)","7f004afa":"participantRoundChange(address,address,uint256)","7f006ce1":"reading_card_upright_at(uint8)","7f008a0a":"cancelSell()","7f01bb38":"getVestingRevocable(address,address)","7f053808":"approveAndAuction(uint256,uint256,uint256,uint256)","7f0554ca":"mntToken()","7f056637":"testExecuteSellOrder()","7f05c3a6":"supportAccounts(address)","7f067ff7":"Bitcoinsummit()","7f069942":"transferToBeneficiary()","7f070a9b":"withinRefundPeriod()","7f0899f2":"AddTicket(bytes5[])","7f08a250":"testPoint(uint256[3])","7f08ea8b":"getBetPool(uint256,uint256)","7f08ea8f":"getTotalTokensPerArray(uint256[])","7f09171b":"addAd(address,uint256,uint256,uint256,string,string)","7f095bfb":"multiSendB(uint256,uint256)","7f09ad64":"drainMe(uint256)","7f09bd1d":"setEthPreAmount(uint256)","7f09beca":"moveToWaves(string,uint256)","7f0a1bed":"bidderPlaceBid()","7f0b61f7":"ManagerEnabledEvent(address)","7f0bd881":"wanport()","7f0c949c":"setJurisdication(string)","7f0cd33c":"ApproveAndtransfer(address,uint256)","7f0d35e2":"totalPublicSaleWei()","7f0da94e":"cooloffIncrement()","7f0ed037":"setKickOff(uint8,uint256)","7f0f04a8":"unregister(bytes32,address,uint256,uint256,uint256)","7f0f09af":"EtherdeCoin()","7f102c16":"currentGameStatus()","7f10a3c0":"presaleBonusAddress()","7f1165c1":"getSencBalance()","7f1482b1":"round3Bonus()","7f15a21c":"modify(address,address,uint256)","7f15a6a3":"setCCH_edit_31(string)","7f16ab50":"replaceAuthorised(address,address)","7f1731b6":"unsetRegistrar(uint256,address)","7f17b05d":"OwnerAddress()","7f17b79d":"setGameCost(uint256)","7f17ce9b":"DIGIPLACED()","7f180db7":"kudos(uint256)","7f187d2d":"score(bytes32,string)","7f18b569":"setKncPerEthBaseRate()","7f18f10c":"setGeneContractAddress(address,address)","7f191255":"punchOut(address,uint64)","7f1926c7":"GagarinToken()","7f1a2a73":"getEmployerAvgRating(address,address)","7f1a4c1f":"withdrawContributorsTokens(address,uint256)","7f1a8749":"purchaseMakeAdv(uint256,string,string)","7f1b1e51":"testTooFewTokens()","7f1b8cc3":"getUsersByBalance()","7f1bb473":"daysFrom(uint256)","7f1bffc1":"_removeToken(uint256)","7f1c25d0":"HolaMundo()","7f1ce417":"isITOFinished()","7f1ebc4d":"reentrantGuard()","7f1ecfe0":"getCurrentBid()","7f1f0507":"publicRate()","7f205a74":"SALE_PRICE()","7f205c8c":"getOraclizeCallback(bytes32)","7f205f02":"changeBoolean()","7f21d498":"getMinBid(uint256)","7f23fb92":"setGenres(string)","7f2438cb":"sellFor(address,uint256)","7f25c1e4":"etherRaisedByState(uint256)","7f2609eb":"LogFinalizeMatch(uint256,uint8)","7f26fc7d":"removeCreator()","7f279a73":"Cashing(address,uint256)","7f2857b6":"viewFunc()","7f28c44f":"isIcoSuccessful()","7f290d2d":"ExpiringMarket(uint64)","7f293e02":"ChangeCoinCrowdsale()","7f294b10":"setPI_edit_26(string)","7f298f93":"crowdsaleEndBlock()","7f2a4784":"KYC_VERIFICATION_END_TIME()","7f2aeea4":"getType(bytes32)","7f2b06ed":"bonusLimit3()","7f2b88ea":"getThirdPhaseCap()","7f2c1633":"prenesiKovance(address,uint256)","7f2c4ca8":"getLastBlock()","7f2e01fb":"ListValidated()","7f2e0ec2":"remainRewards()","7f2e98ad":"PoissonData()","7f2f506b":"CLAIM_INTERVAL_DAYS()","7f300576":"startThrowing()","7f301b83":"setMetadataHash(string)","7f31b480":"changeMasterAddress(address,address)","7f31cbfa":"batchShareAmount(address[],uint256[],uint256,uint256,uint256)","7f32f6de":"isSoftCapCompleted()","7f33375b":"getReturnedData()","7f334bd1":"_generateRandomId(string)","7f33c1e1":"Ethurem()","7f3436ef":"addOrganisation(address,string,string,string)","7f349329":"currentRoundSupply()","7f3681f6":"setKNCRate()","7f3745ad":"execute_transfer_all(uint256)","7f3745db":"getTracksByArtist(address,uint256,uint256)","7f37b905":"salesCounter()","7f37fab6":"addActionToRole(string,string,string)","7f3800ba":"setMultihash(bytes32,string,bytes)","7f386b6c":"minimumPrice()","7f38a4a7":"updateUSDETH(uint256)","7f38b980":"setTokenDistributionPool(address)","7f38e526":"pendingPayments(address)","7f390088":"QYCC()","7f3a2472":"reserveIssue(address,uint256)","7f3a98b7":"burnMyBalance()","7f3ad651":"KayoToken(address,address,uint256,string,uint8,string,bool)","7f3bd56e":"disburse(address,uint256)","7f3c26b1":"rejectHours()","7f3c2c28":"registerContract(string,address)","7f3cb47b":"minimumAmountWei()","7f3cd28e":"tokenSalesByOwner(address,uint256)","7f3d5c4c":"ICOPaused()","7f3ded93":"voxFab()","7f3df4bb":"addBonus(uint32[],uint64[])","7f3e1841":"endSecondPeriodTimestamp()","7f3e4d1b":"setAtkNowForPlayer(address)","7f3f3398":"transferAndCallExpanded(address,uint256,bytes,address,address)","7f3f81c0":"confirmProposal(bytes32,address,uint256)","7f404b7f":"updateInt256(bytes32,int256)","7f40d9d8":"delayDonPhase(uint256,uint256)","7f4316ec":"getDefendPlayerList()","7f4384a8":"RichNiggas()","7f440d57":"getProjectReport(uint256)","7f445c24":"subRegistrar(string)","7f44fcfa":"_getPoints(uint256)","7f453951":"CBMDToken()","7f45b835":"getPrimaryRecord(string)","7f45ec91":"emitIssuance(uint256)","7f460693":"ownerPutCapital()","7f46550f":"CrowleyToken()","7f476471":"setRCContractAddress(address)","7f480f9d":"processDividends(address)","7f486ca6":"cancelChibiForFusion(uint256)","7f493ce6":"disableTokenTransferability()","7f497550":"scheduleTransfer(address,uint256,uint256)","7f498ffc":"setEnd(uint256)","7f4a1c52":"setExceed(uint256)","7f4a9691":"depositTokenToVault(address,uint256,uint256)","7f4ab1dd":"messageForTransferRestriction(uint8)","7f4ae68d":"restrictedAddress()","7f4af951":"pixelPrice(uint256,uint256)","7f4bf7d1":"Inerex(bytes32)","7f4c7064":"ESCROW_TOKENS_PERCENT()","7f4d5150":"CheckItemExists(uint256)","7f4d6aa4":"LogResumed()","7f4da132":"goldFee()","7f4db7fb":"testPrivate(uint256)","7f4e4669":"raiseInitialSupply(uint256)","7f4e4849":"getContractState()","7f4ec5a7":"toAddressThrow()","7f4ed2c7":"addToWhitelistMulti(address[])","7f4ed5ac":"sumHardCapICOStage2()","7f4edd72":"getAllAdIdsByUser(address)","7f4ef9d4":"getText(uint256)","7f4fd78e":"BTCCollected()","7f50c74b":"FIXED()","7f51bb1f":"updateTreasury(address)","7f52fcae":"tokenAmountPerUser()","7f5341da":"startTimeSale3()","7f5369f1":"DEFAULT_REVOCABLE()","7f5375c1":"getLastWin()","7f53b15d":"_ICOSale(address,uint256)","7f555b03":"erc20Proxy()","7f55b2d9":"cleanBalance()","7f55b87f":"createCountry(string)","7f564472":"resetAmountBonuses()","7f5651d7":"setNamehash(string,bytes32)","7f56c072":"SIEChain()","7f56c0b4":"setTeamFundWallet(address,address,uint256)","7f56ca73":"Volkstest2()","7f573a4f":"UNSOLD_SOLD_RATIO()","7f582b47":"howMuchWithdrawed()","7f58b9ee":"allQueryIds()","7f592be4":"TRANCHE2_ACCOUNT()","7f592cfe":"setLLV_edit_12(string)","7f5a259f":"FIXED_RATE()","7f5a285a":"notInWhitelistAllow()","7f5a448c":"switchToWhaleMode(bool)","7f5ae339":"isAdminister(address)","7f5b47cd":"eventApproval(address,address,uint256)","7f5b503c":"toB32(bytes,uint256,address)","7f5ba3cc":"REGULAR_TYPE2()","7f5ba79f":"registerNewProduct(uint256,string,string,string)","7f5bfe30":"PaymentExecuted(uint256,address,uint256)","7f5d85f8":"testBurnGuyWithTrust()","7f5dfd16":"approveProxy(address,address,uint256,uint8,bytes32,bytes32)","7f5e495d":"defaultLimits()","7f5f0d6a":"resumeIco()","7f5f17b1":"getCompte_8()","7f5f9128":"alreadyReservedForTeam()","7f601a50":"getHouseCardsNumber()","7f602231":"tip(bytes32,address,uint256)","7f60b20a":"getSlice(uint256,uint256,string)","7f60bb7c":"applyBonusAmount(address,uint256,bytes32)","7f6150cb":"getRoundCurKeyNo(uint256)","7f626f1a":"setStore(uint256)","7f630259":"getSuperReferrerRate(address)","7f63040b":"CompcoinCash()","7f630b4c":"share(string)","7f63af42":"deployConsortium(address)","7f64727b":"getTreesOnSale()","7f649783":"addToWhitelist(address[])","7f64c34e":"deadline365()","7f64d2d3":"NCAAChampionship()","7f654b1c":"setLatestPayday(address,address,uint256)","7f6578d3":"REFUND_PERIOD()","7f6597e0":"AcuteEthereumCloudMiningunion()","7f660b01":"FEE_COLLECTOR()","7f66af09":"card_titanium_first()","7f66ccbe":"EthereumVerge()","7f66d1f8":"mOnApprove(address,address,uint256)","7f671c1b":"insert(int128)","7f686259":"migrateBalancesFromLegacyRep(address[])","7f695f28":"isFlying()","7f6a731c":"donationAmountInWei()","7f6ae0c0":"canUpdateDeveloperMiningPower()","7f6d8955":"RegisterOne(uint32,address,address)","7f6ec891":"withdrawNonTopForTeam(address,uint256)","7f704657":"RESERVED_FOR_TEAM()","7f71f1f9":"controllerApproval(address,address,uint256)","7f725862":"_setNewEstimate(uint256,uint16)","7f7376e8":"launchSale()","7f74ac15":"ownerContract()","7f7575c9":"FixedSupplyCrowdsale(uint256,address,address,uint256)","7f760335":"PurchaseTokens(uint256,address)","7f761472":"canRedeemUTXOHash(bytes32,bytes32[])","7f7624d0":"MjolnirAddress()","7f7634ba":"winnerConfirmed()","7f76bd3a":"lastBlock_v18()","7f76d76d":"minCapIco()","7f784da7":"addNews(string)","7f78636a":"BASE_URL()","7f790b7b":"getCreateUniverseParentPayoutDistributionHashValue()","7f791790":"roll(uint16[],uint16)","7f791833":"toTimestamp(uint16,uint8,uint8,uint8)","7f792910":"setExchangeable(bool)","7f7977d1":"isFundraiser(address)","7f7985cf":"setEthUSD(address)","7f79cbfe":"MANHATTANPROXYLEXINGTONAVE()","7f7b1393":"getLocation(uint256)","7f7b17a0":"SetupPreSale(bool)","7f7c1491":"remove(address,address)","7f7d31dd":"sub32(uint32,uint32)","7f7d711e":"setRequireCustomerId(bool)","7f7dcdbf":"isContractOwner()","7f7de185":"handleProductionDecrease(address,uint256)","7f7fde8e":"sellAssets(address[],uint256[])","7f81f0b9":"setTransferLock(uint256)","7f83a4a6":"canRefund()","7f83bf7d":"setMinimumPayment(uint256)","7f84017f":"SELL_SOFT_LIMIT()","7f848ccb":"_packMakeData(address,uint256,uint256)","7f85066e":"Reflex()","7f853e7e":"MLCToken()","7f85c599":"addOrder(bytes32,address,uint256,uint256)","7f860330":"batchReturnEthIfFailed(uint256)","7f863cab":"Bid(address,uint256,address,uint256)","7f8661a1":"exit(uint256)","7f869d98":"stepFour(int256)","7f86cd3f":"parseLoanOfferRates(uint256[10],uint32[4])","7f86d985":"drunkness()","7f86f7f4":"walletPlatform()","7f877710":"recoverUnawardedMILs()","7f879229":"setSalesUser(address)","7f88616f":"onlyAdminAndNotInit()","7f89ce48":"initTiers(uint256[],uint256[])","7f8b8f48":"Ledger(address)","7f8b9478":"getImpliedRoot(bytes,bytes,uint256,bytes32[])","7f8c263f":"dragonBalance(address)","7f8d429e":"isFinalized(bytes32)","7f8d53c6":"put(address,uint256)","7f8dafef":"unsoldAllocationCount()","7f8fdcfb":"suspendDeposit()","7f9144ce":"token_member_order_pop(address,address,uint32)","7f91fb7d":"isSignedBy(address)","7f9245d0":"_clearTokenApproval(uint256)","7f924c4e":"testDeposit()","7f925c93":"withdrawSeller(address[2],uint256[7],uint8,bytes32[2])","7f93354b":"multiVoteNoLock(address[],uint256[])","7f9343ad":"playNumberSuit(uint256[])","7f93de95":"deposit100Percent()","7f947168":"TimeTransferAllowed()","7f949386":"updateMessage(uint256,string)","7f949ac0":"ethashContract()","7f94a8fa":"getWriteTimestamps(bytes32[])","7f95d6f6":"accountBalances(uint256)","7f95d919":"DistrFinished()","7f967a8c":"IsExchanged(address,string)","7f9785b0":"_resetList()","7f97e836":"didCommit(address,uint256)","7f98444f":"randomEnd()","7f99e11a":"isMiningOpen()","7f99f3c4":"MaybePerformOpen()","7f9ac04f":"balancesStaticoin()","7f9b48bc":"setCompte_9(string)","7f9bf9e4":"startMinting(string)","7f9c23e0":"_determineHitPoints(uint256)","7f9c8974":"getAssetCollectedOreBallancesArray(uint256)","7f9cbfc1":"checkPayments()","7f9d139a":"positionScount(address)","7f9d2044":"UniBowToken()","7f9d314e":"autoBirth(uint256)","7f9df012":"VoteRevealed(address,uint256,uint256,uint256)","7f9f5495":"levelTokens()","7fa0c10f":"DeleteUserByAddr(address)","7fa0c908":"newChow(address)","7fa22001":"assertEq0(bytes,bytes,bytes)","7fa24846":"SetSAToEContract(address)","7fa28d75":"transferRightIfApproved(address,bytes32)","7fa34e92":"preIcoAddr()","7fa39958":"RateAdd(address)","7fa3f3d0":"addLock(uint256)","7fa400e4":"totalTokensAvailableForSale()","7fa40a42":"sumICOStage8()","7fa44926":"setMinMaxInvestValue(uint256,uint256)","7fa4cacb":"setDestinationAddress(address)","7fa5aa9d":"registerPreSignedHashing(address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256)","7fa6c365":"phase3MaxTokenForSale()","7fa6c745":"_setNewStartTime()","7fa767bc":"createBox()","7fa7a7c8":"buyInWithAllBalance()","7fa7acf8":"createCertification(uint256,uint256)","7fa87949":"unblockAccountFunds(address,uint256)","7fa8c158":"startICO()","7fa9aa76":"owner_updateBaseFee(uint256)","7fab541c":"exec(bytes32,bytes)","7fab624b":"purchaseGenes(uint256,uint256,bool)","7fabbd7b":"unilateralRefund(bytes32)","7fabe1a5":"allPendingRefs()","7fad54e4":"distributeGame(uint8,uint256)","7fad9b53":"BASE_TEAM()","7faddcfb":"currentDistributionAmount()","7faff876":"updateUser(bytes32)","7fb00168":"CryptekZ()","7fb0a445":"systemSaleAddress()","7fb0fe14":"voteCandidateTwo()","7fb158c5":"ChannelSettled(address,address,uint32,uint192)","7fb181c1":"swapTime()","7fb191a5":"TokenVestingContract(address,address,bool,bool,bool,address)","7fb1a5ed":"AirdropController()","7fb33170":"transferAdmin(address,uint256)","7fb3d459":"GetChipsInfo(address)","7fb419b6":"WalletBoss()","7fb5d847":"delTransferWhiteList(address)","7fb5ff3e":"MNTP()","7fb7b5ed":"enableTeamWithdraw()","7fb9e405":"getTitulaire_Compte_10()","7fbb345e":"getInvestorsTokens(address,address)","7fbc0c48":"_mint(uint256,address,string,string)","7fbc9c55":"calculateMultiplierAfterConversion(uint256,uint256,uint256)","7fbcef65":"BTH(address[],uint256,address,uint256,uint256,uint256)","7fbd778a":"getTotalScientists()","7fbe0680":"MIN_PURCHASE_OTHERSALES()","7fbea955":"getCanvasByState(uint8)","7fbf28f7":"_withdrawDivis(address)","7fc29fc9":"authorisedMinter()","7fc32915":"ThrowbackThursdayToken()","7fc38e04":"SponsorshipReceived(string,string,string,uint256)","7fc3bb26":"endPostICO()","7fc3f49e":"getReinvestableTokenAmount(address)","7fc446f2":"changeCustomDefrostingRate(address,uint8)","7fc4d6c3":"isPhaseExist(address)","7fc53fb5":"returnInvestmentsToInternal(address)","7fc543ec":"_donations(uint256)","7fc55eb4":"ContributionWallet(address,address)","7fc56856":"IOXDistribution(address)","7fc5af95":"getWinnerList()","7fc5f05c":"changeVoters(bytes32,address,string)","7fc611f0":"multiCall()","7fc729c2":"_buy(address,uint256,bytes)","7fc7e643":"SetUp(uint256,uint256,uint256,address)","7fc88fe2":"timelockContractAddress()","7fc8b612":"interadduser(address,uint256)","7fc8fd9e":"Update_MediatedTransaction(uint256)","7fc90182":"Pool(uint256)","7fc90a5c":"batchAssignTokens(address[],uint256[],uint256[])","7fc96619":"getPartner(uint256)","7fca432e":"FHFTokenCrowdsale(address)","7fcac0fb":"USDBCoin()","7fcae430":"PendingApplication(address,uint256,string)","7fcaf666":"setString(string)","7fcb024a":"secondLockTime()","7fcb2386":"MorrowToken()","7fccb4ba":"transferAppOwner(bytes8,address)","7fcd3ce2":"maxBetPrice()","7fcdd1f0":"setConfirm(uint256)","7fcf3a2f":"throwFooBar()","7fcf440a":"getOwnerBalance(address)","7fcf532c":"Withdrawal(address,uint256)","7fcf64b2":"updateEarnedBy(uint256,uint256)","7fcfb422":"increaseApprovalWithData(address,uint256,bytes)","7fcfc4a0":"ApisToken()","7fd004fa":"submitWhitelistAddition(address[])","7fd13532":"whitelistMany(address[],uint256,uint256,uint32)","7fd169d6":"createGroup(string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","7fd19692":"setLockAddress(address,bool)","7fd2304f":"_maximumBuy()","7fd238ba":"doCoinage(address[],uint256[],uint256,uint256,uint256)","7fd26dd1":"tokenUsers(uint256)","7fd2ffa7":"InvestorWhiteListAddition(address)","7fd30df0":"mintBulk(address[],uint256[])","7fd39247":"setOwner(uint256,address)","7fd42617":"safeWithdraw()","7fd5bb31":"propose(address,bytes32,address[],bytes32[])","7fd5dd04":"APPROVE_OWNER()","7fd6f15c":"feePercent()","7fd751a8":"PRICE_ICO2()","7fd84609":"setOwnerThree(address)","7fd8601e":"deathData_v5()","7fd8d339":"changeicoBackend(address)","7fd8d51d":"stakeGLXForContributors()","7fd8ee68":"computeNameHashExt(bytes)","7fda8d52":"internalEnableRefunds()","7fdac6f1":"getCurrentCreditsExchanged()","7fdafafa":"totalTreePower()","7fdb5031":"transferableTokens(address,uint256)","7fdb5efb":"GDCAcc01()","7fdb6720":"teamFundAddress()","7fdbd0f2":"ERC721DutchAuction(address,uint256)","7fdc5bd6":"LANA()","7fdc8290":"isUnderscore(bytes1)","7fdd458d":"createWithParents(bytes32,bytes32,bytes32[])","7fdd5403":"clearApproval(uint256)","7fdd69f6":"setMaxAllowedReservingPercentage(uint256)","7fddc0de":"getBiddingInfo(uint16,address)","7fde1c8a":"addRole(address,uint256)","7fde24c7":"addToPrivateWhitelist(address)","7fdea25b":"newVoting(uint8)","7fdf6911":"checkRoundAndDraw(address)","7fdfbe1b":"getBytes(string,uint256,uint256)","7fe02f94":"fireFightResultsEvents(uint8[4])","7fe0518a":"asyncSend(address,uint256)","7fe09003":"NewBlock(uint256)","7fe0c38b":"JOCKEY_LIMIT()","7fe0ff52":"StorageFee(address,uint256)","7fe11990":"authoriseManyAccounts(address[])","7fe11adc":"resetStage(uint8)","7fe18cf7":"_getInStageIndex()","7fe1a801":"setBountyCampaign(address)","7fe1dc7e":"getToken(bytes)","7fe1feb0":"initEmployee1()","7fe23f62":"winPool()","7fe275d4":"culmulative_demurrage_collected()","7fe320ab":"mvpExists()","7fe38fc3":"etherwow()","7fe3dc2e":"getGasCost()","7fe551fd":"clearingPrice(bytes32)","7fe5850b":"_redeemByDefaultPartitions(address,address,uint256,bytes,bytes)","7fe60640":"updateBtsPoint(int256,uint16,int256,uint16)","7fe650b1":"finalizeICOOwner()","7fe6eee0":"fundingLimit()","7fe846ba":"isSubjectDestruction(uint256)","7fe864b8":"MAX_TOKEN_CAP()","7fe88885":"storeHash(bytes32)","7fe8ca66":"sendInput(int256,int256)","7fe97bc5":"getSqrY(uint256)","7fe98ae0":"updateEthICOThresholds(uint256,uint256,uint256,uint256)","7fe9d39c":"changebeginnerprotection(uint256)","7fea061a":"TimeTransferAllowanceChanged(string,uint256)","7fea0d4b":"beforeAll()","7feb4685":"Chende()","7febd721":"presaleAmountRemaining()","7fec1b7a":"WBT()","7fec5d33":"Eightk()","7fec8d38":"trigger()","7fecd538":"isWaiting()","7feda59a":"revokeAttribute(address,string,bytes)","7fee4ecb":"GAS_PER_DEPTH()","7feec9be":"sams(uint256,string,string)","7feed5b6":"price_exponent1()","7fef036e":"totalEntries()","7fef21d4":"getBoundingBox(uint256)","7fef2d38":"updateMatchInfo(uint256,string,uint64,uint64)","7fefde53":"WillRegistry()","7ff02139":"updateCrytal(address)","7ff0346b":"getContents(bytes32[])","7ff276bd":"totalEthFundCollected()","7ff2acb7":"getData_2()","7ff2c70a":"ipo_price()","7ff2cf93":"getcertifieddatacount()","7ff31d2b":"setData_28(string)","7ff3366f":"TeamAddress()","7ff44544":"GetCurrentSalePrice(uint256)","7ff44a91":"getAllKeyNum()","7ff4b630":"action(bytes32[])","7ff6ea1c":"WolkCreated(address,uint256)","7ff6f83a":"_distributeTax(uint256,address)","7ff701dd":"TrackerToken()","7ff70a89":"getOwnedTokenList(address)","7ff729fc":"fillUpProject(uint256,uint256)","7ff860f6":"batchCreateAssetSale(uint256[],uint256[],uint256[],uint256[])","7ff86a35":"HappyBirthday(address,uint256)","7ff91228":"Stake(address[],address,address,uint256,address)","7ff92d6e":"set_address__Arina(address,address)","7ff931bd":"lastWinningNumber()","7ff988c5":"setKtcAddress(address)","7ff9b596":"tokenPrice()","7ffaae3e":"balanceEth(address,address)","7ffb8577":"totalGains()","7ffc0712":"getLifeRate(uint256)","7ffc80cf":"queryRandomTryTime_()","7ffcb093":"addVoter(address,bytes32[])","7ffce58e":"getTokenForInvester(address,uint256)","7ffdf53e":"conversionRate()","7ffe8be1":"setKycAddress(address)","7fff9f1a":"getProposalVoteCount(uint256,uint256)","7fffb7bd":"HelloWorld()","80007e83":"isVerified()","80008794":"round1Target()","80009630":"setCore(address)","8001553a":"OwnerRemoval(address)","80017cbc":"cancelLine(uint256,string)","80033408":"CANSale()","8003524e":"calcDoHash(string,bytes32)","800362ae":"loveStoriesCount()","80054c5d":"FreedomToken()","80056b5b":"changeAdminPrivilege(address,bool)","80057b9a":"getColor(uint256)","80059593":"numberAccounts()","8005993e":"getProfileHash(address,address)","800626a6":"AIR_1_SUPPLY()","8006692f":"stage3Deadline()","8006745b":"getPayout(address)","8006a5d3":"delegateAddresses()","8006f807":"COBAIN()","8007604b":"Stage1Deadline()","80078a0f":"ForFood()","8007acbf":"getActiveShareholdersArray()","80087745":"closeInvest(bytes5)","8008d5bc":"inSale()","8009484b":"getMaxBetAmount(uint8)","80097484":"transfer(address,uint32)","80097a8e":"adjustedPotBalance()","800a320a":"TokenGameTransfer(address,uint256)","800ab784":"verifyMerkleProof(uint256,uint256)","800bbd1f":"getCountTokens(address,uint256)","800c5086":"giveERC20AllowanceToKyber(address[])","800c7e38":"getCurrentPageCount()","800d0f6a":"LCToken(uint256,string,uint8,string)","800d41a3":"newExitWallet(address)","800deda5":"yoyoTransfer(uint256,string,string)","800ed545":"MWSToken()","800edb9d":"changeCap(uint256)","800f8e52":"placeBetWithInviter(uint256,address)","80105295":"maxUserPower()","801137e7":"setDepositPercents(uint256)","80113832":"ORDER_MODIFY(address,address,uint256,uint256,uint256)","801145bd":"sig_to_add(bytes16)","801161b0":"setMain(address)","80117026":"FRAC_BOT()","801298fa":"changePaymentFlagger(address)","80130383":"LGCY()","801336cb":"STARTING_RickAndMorty()","8013f267":"calcUnMaskedGuEarnings(uint256)","8013f3a7":"dev2()","8014f238":"editCard(uint8,string,string,string)","801512af":"SvinChainToken()","8015a96d":"For_admin()","8015e6f3":"getDungeonPower(uint256)","8016b6ed":"getKeyValue(address,string)","80173a19":"geneManager()","8017732d":"LDT()","801a115d":"transfertCopieExecutoire(bytes32)","801a1467":"swapFor(address)","801aba56":"etherProceeds()","801b4189":"claimRental()","801c334e":"auctionIncreaseBid(bytes32)","801db9cc":"MIN_CAP()","801e2593":"maxAllowedAmount(address)","801f568e":"SpenderAuthorization(address,bool)","80200e12":"subFreelancerTotalInvoiced(address,address,uint256)","802028c9":"createDerivative(bool,uint8,uint256,uint256,bytes16,uint256,uint256)","802049ac":"setUpgradeableTarget(address)","8020f54e":"addAssetToNetwork(address)","8020fb77":"getCurPayTable()","8020fc1f":"isDeregistered(address)","802114a8":"_removeRole(address,string)","80218eeb":"tokensIssuedTillNow()","802293c2":"getResultblockHash(bytes32)","8022fb7a":"setFrozenCoin(bool)","8023769f":"getPCAddress()","8023ffbd":"getOverallSize()","80249468":"getUserHSCeducationDetails(string)","8024c400":"limitPerDay(uint256)","8025e303":"VERSION_NUMBER()","802608a2":"setExpirationDate(address)","802644a4":"fundingEndUnixTimestamp()","8026efaa":"token18KstepCAP()","8026fe24":"FundTransfer(address,uint256,uint256,bool)","80270b33":"CSCResource(string,string,uint256)","8027dece":"updateShare(address[],uint256[])","8028bdc4":"returnedCWC(address,uint256)","8028ce6b":"claimRefundsFor(address[])","80296dec":"admin_check(address)","802a350f":"addCustomerService(address)","802b1d93":"officiant()","802b45e2":"ISBCoin()","802b8453":"setPerventValue(uint256)","802bbab2":"ChainStarBase(uint256,string,string,uint8)","802c8cda":"_cancelEscrow(address,uint256)","802cd15f":"changeDistributor(address)","802d1848":"setLimitations(uint256,uint256,uint256)","802daa62":"latinotoken(uint256,string,uint8,string)","802de8fc":"setPremiumFactors(bytes32,uint256,uint256)","802deb22":"TokenTrader(address,uint256,uint256,bool)","802ea720":"getTotal(bytes)","802eb89c":"_getWeight(uint256)","802f2ffa":"_addPayment(address,uint256,uint256,uint8)","802f5bae":"ADDITIONAL_PORTION()","80311bf9":"buyCore(uint256,uint256,uint256,uint256)","8031233c":"inflationCompBPS()","80318be8":"transferOverride(address,address,uint256)","8031e85c":"calculatePremium(uint256,uint256,uint256,uint256,string,string,string)","80322cbd":"isNowApproved()","80325b2d":"queryN(uint256,string,bytes,uint256)","8032751b":"returnInvestments(uint256)","803287de":"_frozenTokens()","80330982":"sendEther(address,address)","80334b8f":"TomBit(uint256,string,uint8,string)","8033c643":"ROSCAv1(uint16,uint128,uint256,address[],uint16)","8033cc70":"StealthToken()","8033fe49":"releaseEnd()","80341744":"contactsAddresses(uint256)","803435d7":"startDefinedGameManually(uint256)","80355798":"isAlreadyUsed(uint256)","803587ae":"invalidateCertificate(bytes32)","8036b5db":"setPresidenteDeMesa(bytes32,uint256,uint256,bytes32)","8036d757":"getRateUpdateBlock(address)","80373436":"setSecondaryGameManager(address)","80378b78":"setShopRunning(address,bool)","8037bfe0":"unRedeemedMTU()","803965c4":"amountFixed()","803a62ea":"Register(uint256,address,address)","803b4c11":"OwnerUpdate(address)","803c64c3":"GetCardList(address)","803c6fa9":"getWeiTokensOwed(address)","803c8383":"getKey(address,address,uint32)","803cc0d0":"kscTransfer(address,uint256,string)","803d65ff":"_sendtoken(address,address,uint256)","803ea2ee":"MoneyTransfered(address,uint256)","803fbe5b":"paymentRegularTokens(uint256,uint256)","803fcd43":"check(address,address,address,address,uint256)","80402564":"addrList(uint256)","8040cac4":"testOverflow()","80412042":"decrementOwnedTokensLength(address)","8041fcc4":"AVMToken()","8042b215":"developerPctX10K()","8042fba5":"newEscrow(address,address,address,uint256,bytes32,bool)","8043154d":"post(address,bytes32,bytes32)","804327bb":"buyPreIcoTokens(uint256)","8043c9c0":"eventName()","8043cf2d":"mintB()","8044c67e":"updatePrizes(uint256[])","804518a8":"nic()","8047ba70":"getTokensAmountUnderCap(uint256)","8047cb93":"createGame(bytes32,uint256,address)","8047cf41":"init(uint256,string,uint8,string,address)","80496fd6":"CaData()","804afd9e":"vigAddress()","804afffb":"tokenIndexToPrice(uint256)","804b55d5":"finaliseAs(address)","804ba97a":"tryGet(bytes)","804c68aa":"allocateTCLRinTeamTokens()","804c7fa0":"_migrateExoplanet(uint256,string,uint256,uint32,string,uint32,uint8,string,address)","804d564c":"whitelist10Addresses(address[10])","804d77c8":"approveLoanIdentifier(bytes32)","804e11dc":"testThrowsDisownNotTransferable()","804e1c53":"_updateProfit(uint256,bool)","804e8063":"setAffiliateEdge(uint256)","804ee2b5":"addProduct(uint256,uint256,string)","804f82d3":"showLastBidValue()","804fe7ac":"acceptBid(address,bytes32,uint256,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32,uint8)","805013c2":"setPresalePhaseUInt(uint256)","80504271":"fundingExchangeRate()","80519ac7":"getItem(bytes,uint256)","8051d02d":"getBlockNumber(bytes20,uint8)","805210b7":"AmIPlayer2()","8052191e":"dip(address)","8052474d":"Name()","80528865":"changeWithdrawState(uint8)","80529172":"setUsdPerEthRate(uint256)","8054b2f2":"NKN()","805553e8":"randMod(uint256)","80559357":"setTokenAvailable(bool)","805593db":"storeProductReference(address)","8055d33a":"exchangeSgnForSga(address,uint256)","8055dbb5":"GetExchangePoint(uint8)","8055f9d7":"Moderated()","80560a0a":"setIsProjectBonus(bool)","8056696e":"loadController(address,address)","80570d69":"JoshuaCoin()","80571e93":"UranBank()","80576150":"BoughtViaJohan(address,uint256)","8057b96d":"buyTokensForSelf()","8057e0b0":"DutchAuction(address,uint256,uint256,uint256)","8059382a":"setGasInTokens(uint256)","805996f2":"AccountCreated(address)","80599e4b":"remove(string)","8059e804":"ethealMultisigWallet()","805abe6a":"destoy()","805b8455":"bumpRound(uint256)","805b90d6":"unlockTokensAmount(address)","805bc096":"Roll100()","805c2b6c":"broadcastOpinion(string)","805c3abd":"getPreviousHashUint()","805c3d89":"SimpleLSTDistribution(address,address,uint256,uint256,uint256,address)","805c733b":"lottoBalance()","805d2679":"rndIssue(address,uint256)","805e99e0":"isFirstRound()","805f4cfc":"TosTeamLockContract()","80603faa":"isTakePermitted(uint256,uint256,address,address,uint256,uint256)","80615ffa":"receiveApproval(address,bytes)","806186f3":"LogRewardAllocated(address,uint256,uint256)","8061a159":"TokenSoftCapReached(uint256)","8061d365":"FINANCE_CAP_PER_ROUND()","8062d3e6":"insertAndCheckDo(bytes32)","8063ab78":"setWalletsDelegate(address)","8064696b":"getOraclizePrice(string)","80657151":"patronRewardMultiplier()","8065eaa6":"CreatorWithdrawAll()","80661555":"commandMintBonus(address)","80664ba0":"ProofTeamVote()","80667509":"MYGREATTOKEN()","80667aa8":"CBN(address)","8066f3c8":"totalSTACoin()","8067f7ba":"read_i16()","80690e01":"IsAirdrop()","80691858":"GoalReached(address,uint256,bool)","8069dc2d":"ThundervsJazz()","806a2a3c":"investors_needed_until_jackpot()","806ad169":"getWithdrawal()","806ad57e":"addWorker(address)","806b0365":"changeBountyWallet(address)","806b39ab":"crownTotalSupply()","806b6c28":"GetCurrentTypeSalePrice(uint256)","806b984f":"lastBlock()","806ba6d6":"founder2()","806bd2b6":"challengeCooldownTime()","806c6188":"adjustMinimumPledgeAmount(uint256)","806cdc0b":"getBonusBalance(uint256,uint256)","806e085e":"transferBatch(address[],uint256)","806ee278":"collectionFunds()","806f208a":"invalidPayments(address[],uint256[])","806f3319":"multipleTokenDistribute(address,address[],uint256[])","80710f39":"withdrawAllToOwner()","8071a7ba":"PCTToken(address)","8071aa05":"multisend3(address[],uint256[],uint256[],address[],uint256[])","807283df":"Patronage(string,address,address)","80738c4d":"USTM01()","80744a9c":"LoyelaTestCoin()","8074e31d":"Victory(uint256,string,uint8,string)","8074f332":"droneIndexToOwner(uint256)","8074fe33":"minerCurrentChallenge()","80759f1f":"getRootHash()","8075acd0":"couponBonusEnabled()","80766b68":"Bitcoin1()","807693b6":"grantPermissionToChange(address,uint256,bool)","8076bd41":"set_sale_closed()","8076f005":"cancelledOrFinalized(bytes32)","8077ccf7":"etherTokens(address)","80780801":"LimitedSetup(uint256)","80787f2c":"terminateSale()","80788cba":"CancelSubscription(address,address)","807896d5":"voteProposal(uint256)","8078cc57":"_changeLicenseTerms(bytes32,bytes32,bool,uint256,bool,uint256)","807a599c":"mintFinish()","807a87ed":"YouAreHere(uint256)","807b08c7":"runScript(bytes)","807d2da3":"start_ICO()","807d782e":"crcWithdrawAccount()","807d94a7":"maxIssuableSynths(address,bytes4)","807e5cee":"WhitelistUnset(address)","807eb7cd":"sumICOStage1()","807f08ea":"totalDepositedEthers()","807f0ac5":"slice(bytes,uint256)","807f3bce":"adminGetLastSignedTime(address)","807fb834":"resetRaz(uint256)","80806362":"IssueTokenFactory()","808134c8":"setBoardMember(uint256,uint256)","8081a1e7":"ecmul(uint256,uint256,uint256)","8082a929":"holderAt(int256)","8082ee0d":"Exchange(address,string)","80833d78":"unauthorise(address)","80836cab":"enableUpdates()","8084ee58":"setMaxLimit(string,uint256,uint256,uint256)","8085de8b":"MOBToken()","808615ac":"stake(address,address)","8086b8ba":"accountOf(address)","80870bc1":"trackBuy(address,uint256,uint256)","808757ac":"getFreeBat()","8087da3a":"order_number()","8088e0b6":"turnOffCanUpdateNextGamePotSplit()","80892b8a":"calculateTokensReceived(uint256,uint256)","8089d001":"getHashOfBlock(uint256)","808a69e2":"tokenAddressesSet()","808ab1d6":"getCertificationDbCount()","808ac94d":"getWeaponIds()","808ae9f8":"MoveLearned(uint256,uint256)","808c1499":"setIcoPhase2(uint256,uint256)","808cf58e":"initial_reward()","808e0ae2":"platformLogin()","808f30f3":"BitEyeToken()","808f3652":"calcHash(string)","808f4d21":"incentivisingEffortsAddress()","808f8292":"Menu03()","808fc72c":"wasSaleStarted()","8090114f":"percentRate()","809051db":"ipfs_hash()","80906b13":"controllerClaim(address,uint256)","80908b11":"Advertisement(address,address,address)","8090b131":"fetchNumber()","8090d83c":"jackpotProportion()","8090e4d5":"core(uint256,uint256,uint256,uint256,uint256)","8090f92e":"revealVotes(uint256[],uint256[],uint256[])","8091bfc9":"STEM()","8091d7a5":"addCustomField(uint256,bytes32,bytes32)","8091f3bf":"launched()","8091fbe1":"gen0PresaleCount()","8091fc76":"isValidICOInvestment(address,uint256)","80921070":"AvocadoToken()","8092285e":"setODEMClaim(address,bytes32,bytes,bytes32)","809282b2":"EtherTower()","80929e5b":"setBurnable(bool)","80943252":"numGamesTimedOut()","80947d17":"Verification()","80948ddd":"calculateTokenToEth(uint256,uint256)","8094ebe3":"joinGame(address,uint256,address,address)","80956021":"Concept(address[],uint256[],uint256,bytes,address)","80956e8b":"setMintFeeProp(uint256)","80959721":"poster()","80959cb6":"getCloseAmounts(uint256,uint256,uint256)","8095ab76":"songWriterSign()","8095cc36":"createForecast(uint256,uint256,uint8,uint8,bool,uint8,uint8)","8096bac6":"setNewMaxDeposite(uint256)","80972a7d":"ok(uint256)","809837c1":"ITECToken(uint256,string,string)","809841aa":"getCompte_25()","8098e45e":"getRamdon()","8098f67c":"ApexIssued()","80994e15":"STUDToEth()","80999b71":"removeBaseWhitelist(address[])","80999cc0":"MarketplaceInformation(address)","8099f357":"milliTokensPaid()","809a6173":"testCompare()","809a812c":"immlaToken()","809a9e55":"getExpectedRate(address,address,uint256)","809ae91e":"setBattleStart(bool)","809b296d":"consumeOperation(bytes32,uint256)","809c5b9e":"votingDescription()","809d7902":"rejectBid(address,uint256)","809d8988":"getTribe(string)","809d9a94":"transferMonster(address,address,uint64)","809dab6a":"getAvailableBalance()","809e243d":"LanxangCash()","809e4a2d":"claimUnrented()","809e52b2":"updateExperience(uint256,uint32)","809ef92f":"crowdsaleStarted()","809f8cc9":"VersumToken(uint256,string,string)","809fc4f8":"MKRUSD()","809ffb20":"setShopModerator(address)","80a0155c":"RBACMock(address[])","80a0c461":"updateMinimumPodSize(uint256)","80a15ad9":"setRocketValues(uint256[],uint256,uint256[],uint256[],uint256[])","80a1a86b":"countPayment(address)","80a1ba6a":"getTimeLeftToNextCollect(address,uint256)","80a1ec2e":"initUser(uint256)","80a23ddf":"mintBadge(int256,address,uint256)","80a2ddad":"founder4()","80a37e23":"recordHighScore(uint256,address)","80a3a783":"presaleStartDate()","80a3f8b4":"getWorkflowName(uint256)","80a3f9b3":"bonusCapUSD()","80a429ee":"VitaminToken()","80a507c6":"is_started_bonuses()","80a51c5e":"ownerDeclareRefundStart()","80a54001":"parentToken()","80a5cca3":"approveViaProxy(address,address,uint256)","80a6ee7d":"totalTokenBetValue()","80a738bf":"withdrawHighscorePot(address)","80a92b67":"payReward(uint256,address,uint256)","80a973e6":"sendTeamBalance(address,uint256)","80a979e1":"crowdsaleTransfer(address,address,uint256)","80aa5757":"getEtherForTokensOld(uint256)","80aab099":"nextAllowancePeriod(bool)","80ab611e":"cancelRecurringPayment(bytes32)","80abb85b":"refereds(address)","80ac5448":"operatingAddress()","80ac613f":"BatchCreateSales(uint256[],uint256,uint256,uint64,address)","80ac80b0":"iterStart()","80acaafb":"profitDistribution()","80ad17b2":"removeSiteSet(uint256,uint256)","80ad2cf3":"setCap(address,uint256)","80adede0":"currentLoanAmount()","80ae4ebc":"_initialize()","80aed05f":"LooneyDice()","80af6002":"minimumICOCap()","80af6d79":"addEmissionProvider(address,uint256)","80afd844":"getPrivateFundAddres()","80afdea8":"appId()","80b022e8":"changeBurner(address)","80b20208":"thePot()","80b29f7c":"revokeDelegate(address,bytes32,address)","80b30c13":"tokensToSold()","80b38c2d":"ProcessTxFee()","80b3c3d8":"buyTokensWithIcon(address,uint256)","80b44c1b":"extraStatsForGen(uint256)","80b52136":"MoneyCoinCoin()","80b525ce":"BurnableTokenWrapper(address)","80b57824":"discount(uint32,uint256)","80b63e7e":"wakeUp(uint256)","80b6518a":"createEmptyTrack()","80b69199":"releaseBonusTokens(address,uint256,address,bytes1)","80b7ca90":"OrderList(address)","80b855d6":"ZiggyToken()","80b8e6d1":"changeWhitelistStatus(address,address,bool)","80ba4b75":"getActionsCount()","80bb3360":"exchangeToIco(address)","80bc150d":"Bounty(uint256)","80bc99cb":"teamLocker()","80bd0936":"Multivest()","80bd2723":"SecurityChainToken()","80be3cc4":"BurnTokensNew(uint256)","80bf099e":"orphantoken(address)","80bf549a":"maxICOSecondSupply()","80bf98f8":"makeSwapInternal()","80bfbe68":"setWhitelist(address,address,uint256)","80bfc599":"sellVouchers()","80bfe883":"wins(uint256)","80c05bc6":"random_callback(bytes32)","80c0a250":"fetchVoteResultForCandidate(address)","80c18d45":"addAddressToFounders(address)","80c190cf":"getReservedTokensListValInPercentage(address)","80c2fb7d":"currentTreasure()","80c30f3d":"buyContract(address,uint256)","80c324cf":"isBallotInProgress(uint32)","80c3780f":"schedules(address)","80c399f4":"refundInvestors()","80c3f96d":"addFarmer(address)","80c4237f":"tryToWin()","80c4e5c5":"changeSynthesizeAllowed(bool)","80c5bef8":"UGToken()","80c6ff73":"keepaliveBlock()","80c7507a":"getMigration(uint256)","80c80611":"Withdraw_3()","80c810d5":"MucToken()","80c81c16":"getStateInfo()","80c86c30":"CommonError(bytes)","80c8a270":"tokenReserved4Deposit()","80c8fde7":"perTokenAmount()","80c951bf":"currentClaimPriceInFinney()","80c96527":"getAssociatedTAOSetting(bytes32)","80c99dd2":"getPeriodicalBudget()","80ca7aec":"forceReseed()","80caac1d":"setTitleImage(string)","80cae007":"cleanOcean(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","80cd0015":"migrateUsername(bytes32,uint256,uint256,address)","80cd2464":"offer(uint256,uint256,uint256)","80cd5ac3":"newAppInstance(bytes32,address)","80cda248":"EGGS_TO_HATCH_1TOAD()","80cdc9c9":"RESTRICTED_PERIOD_DURATION()","80ce60d1":"setResult(uint8)","80cecea9":"transferToContract(address,uint256)","80cf264d":"getFirstPhaseCap()","80d07ce8":"Gifto()","80d10934":"freeXLMG()","80d1bd47":"jackpotHit()","80d1cb35":"getDeploymentBlock()","80d24e9d":"SISKTechnologyGroupToken()","80d2c1a6":"CatRescued(address,bytes5)","80d32dbb":"ChaoExToken()","80d32f85":"isSoftCapReached()","80d52ed9":"switchToNextRound()","80d563d7":"LogCancelContractProposal(address,address,uint256)","80d61012":"canReceive(bytes32,address,address,uint256,bytes,bytes)","80d7bcba":"incomingTokensTransactions()","80d7d81a":"giveMeBackMyMoney()","80d7f7ac":"TaxicToken()","80d7f92a":"_address(address,uint256)","80d85911":"initialize(uint256,uint256,uint256)","80d8b380":"setQtyStepFunction(address,int256[],int256[],int256[],int256[])","80d8ce23":"publishBytes(string,bytes)","80d95b42":"supplySeed()","80d9eaa6":"refCount()","80daa1c6":"setDiscountForPlayer(address,uint256,uint256)","80db79d9":"StructAndFor()","80dbb7d2":"RacingClubPresale()","80dbde63":"PI_EDIT_4()","80dcaf27":"getRefNumber()","80dcbff1":"getAdminArray()","80dce0b4":"getAwardTime()","80dceec4":"setHuntingPrice(uint256)","80ddcc62":"SUPPLY_HARD_CAP()","80ded586":"removeFromTokenHolders(address)","80dee9d1":"miningStorage()","80df2cee":"TeddyChain()","80df4123":"NucleusVisionTimeVestingTokensMinted(address,uint256,uint256,uint256,uint256)","80dfa34a":"saveBatch(string)","80dfb104":"setCoOwner1(address)","80dfee5c":"NewSale()","80e039f9":"rocketGetResourceValues(uint256)","80e0c053":"MassERC20Sender()","80e13b10":"CompanyTokenIssued(address,address,uint256,uint256)","80e15b56":"cancelCredit(address)","80e15f76":"setBuildPrice(uint256)","80e183a3":"CLASS_PLANT()","80e1b9c4":"finishBattle(uint256,address,address)","80e2517c":"TokensPerEther()","80e2653e":"setDougAddress(address)","80e2d53b":"rateWaitingEnd()","80e339fc":"balancewof()","80e37b5f":"maxIssuableNomins(address)","80e3f1ad":"toggleWhitelist(bool)","80e47e71":"maximumValueWithoutProofOfAddress()","80e52f31":"EtherCash1()","80e5d7b0":"Voted(uint256,uint256,uint256,bool,address)","80e5e069":"ITO_TOKENS()","80e64e8b":"buyBottle()","80e6bffb":"CalculateBankCredit()","80e74b04":"testControlUpdateLatestRevisionEnforceRevisions()","80e8b12a":"_createDungeon(uint256,uint256,uint256,uint256,uint256,uint256,address)","80e9071b":"reclaim()","80e9a1da":"STATUS_LENT()","80e9e9e1":"getClaimIdsByTopic(uint256)","80e9f98c":"getRacer(uint32,uint256)","80ea8273":"SetBonus(uint256)","80eb1cbc":"monsterIdToIVs(uint256,uint256)","80eb6b7f":"LogRemTokenPairWhitelist(address,address)","80ebb08e":"updateResult()","80ebed20":"createBook(address,address,address,uint256,int8)","80ec35ff":"awardByRndNo(uint256)","80ec4a96":"CrowdsaleFinished(uint256)","80ede329":"getDocumentDetails(uint256)","80edef8e":"owner_address()","80ee9792":"_ethDeposit()","80ef353d":"tryClose(bytes32)","80efa4af":"extBuyTokens(address,uint256,uint256)","80f034b1":"getContractBytecode(string)","80f03fa6":"getTotalPets()","80f183ce":"visitCost()","80f20363":"lockToken(uint256)","80f29894":"getWeiForCent(uint256)","80f2fa03":"getSellPrice(address)","80f34c14":"ContortedCoin()","80f393c8":"ProofOfIdiot()","80f3f094":"setGGCAddress(address)","80f41e76":"calcMintFee(uint256)","80f4432a":"inception()","80f4531f":"closeTimerElapsed()","80f4ab5f":"seeMyNumbers()","80f4bcb8":"tokenTeamAllocated()","80f55605":"market()","80f5a37c":"Crowdsale(address,address,address,uint256,uint256)","80f5e0a1":"shouldBoost(bytes32)","80f6c383":"setshares(uint256,address)","80f6d782":"swapAddress()","80f7d0ab":"storeReading(uint256)","80f7e238":"ANIMETOKEN()","80f86009":"Initialize()","80f89a31":"ballotNames(uint32)","80f89bce":"distributeDRMK(address[],uint256,uint256)","80f8d688":"redTeamAddress()","80f8ea60":"Put_BRTH_GFT(address)","80fa272f":"TokenWithMint(string,string,uint8,uint256)","80fa4517":"completedTasksCount()","80fa7902":"getPlayersBattleStats(address)","80fa7942":"tokensForReserve()","80fa860f":"executeElectionMandate(uint256)","80fc16c8":"setAffiliateFee(uint256)","80fe4958":"createBetWithPayable(bytes32,bytes32,bytes16,bytes32,uint256)","80febdbd":"updateMe(string)","81001f3c":"collectFee(address[])","810164f7":"getTotalBPOfAddress(address,address)","81016509":"getBtcRequestHash(bytes,bytes,uint256)","8102387d":"burnRedRibbonCoin(uint256)","81030e35":"ALAP()","810405d6":"numOfPurchases()","81042183":"ExpeditingToken()","81045ead":"getIndex()","8105aa55":"grantAdvisorTokens(address)","81064e2d":"getCreditorAmounts()","8106d57a":"getCityPendingBuildings(uint256,uint256)","8107b269":"Novatore()","81081184":"bursarPayOutNetContractBalance(address)","8108592c":"calcKncStake(uint256)","81086763":"placeNewBid(uint256)","81086918":"delAcceptedToken(address)","8108e54c":"marketAllocation()","810a192b":"transferCollateral(uint256)","810a217f":"pValidationState()","810a3919":"hard_limit()","810a882f":"setConfigBytes(bytes32,bytes32)","810ac3ce":"IssueOffer(address)","810ba058":"Public_Sale_SUPPLY()","810bbec3":"claimHelper()","810be182":"_updateCountries(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","810c0af8":"depositTokenByAdmin(address,address,uint256)","810cbbd0":"bat_match(uint256[39])","810cf6cb":"MRazaAnisTestCoin()","810d54a0":"lockBalanceChanges()","810e4ff0":"cashOut(address,address,uint256)","810e78ab":"declareIcoFinished()","810e9720":"GlobalCoin()","81104666":"advisoryWithdraw()","8111e0ad":"updateMaxTxGasPrice(uint256)","8111ecef":"FinalizeStage()","8111f24e":"isFreezed(address)","81120dd7":"myLastRef()","8112821f":"EthVentures()","8113e285":"withdrawTokenPayment()","8115a2ac":"getOnMintTargetValue()","8115f52d":"Evacuated(address)","8116c063":"claimOwnersEarnings()","811743e7":"fighterIndexToOwner(uint256)","81183633":"setStandard(bytes32)","8118e0ae":"dtValidateWorldSnapshot(uint256)","81193a30":"returnRequestCancel(uint256)","81195993":"allocateEcoFundToken(address[],uint256[])","8119c065":"swap()","8119f4ae":"getRoc(uint256)","811a0a85":"saleComplete()","811aecf4":"finishPhase()","811b1268":"noteSale(address,uint256,uint256)","811bab32":"GenesisCallerAddress()","811c626d":"changeIcoRoundEnding(uint256)","811c66ac":"nameSuccessor(address)","811de206":"isConfirmedByOwners(uint256)","811e1468":"computeAccount(uint256)","811e4f71":"DisburseEarnings()","811e539c":"campaign()","811ea6de":"transferToken(address,address,uint256,bool)","811f273d":"hasThreeYearWithdraw()","811fe466":"beginTime_()","81207183":"deployGLX()","8121b0d4":"verifyStoredData(bytes32)","8121dbc1":"MyPizzaPieTokenPreSale(uint256,uint256,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256)","8121ddd7":"RATE_DAY_7()","81236e47":"setUserYan(address,uint32)","812403f6":"bonusPhaseThreeDeadline()","81240b9c":"subWithdrawFor(address,address)","8124bb0f":"continueExecution()","81252548":"getContractServerBlackWhiteListType(string)","81252680":"getBaseQuick(bytes32)","8125c102":"BountySent(bytes32)","8125c6fd":"_getDividendsBalance(address)","8125ceb2":"showMessage()","8125fc44":"thirdPreSaleEndDate()","81263fed":"getStrandCount()","812699a9":"Quiricos()","81269a18":"voteBalance(address)","81269a56":"checkMintSolution(uint256,bytes32,bytes32,uint256)","8126c38a":"allPunksAssigned()","8126cb1e":"rejectRewards(uint256,string)","8126e4e3":"philanthropise(string)","81281be8":"placeBid(address,uint256,uint256,uint256)","81290a80":"AviciiCoin()","8129212e":"getCommonInitBlockNum()","8129519d":"setLoading(uint256)","8129aa75":"TransferFeeRateProposalAdded(uint256,address,uint256)","8129fc1c":"initialize()","812a4f47":"BeatTokenIcoPhase2Started()","812af8ec":"getAccountData()","812ba50c":"preEndBlock()","812c3251":"Escrow(address,address,uint256)","812c86e0":"updateTokenContract(address,string)","812cbf38":"sellFci(uint256)","812cddf2":"getSavedString()","812cf740":"ArrayPractice()","812d504d":"transferToOwner(address)","812d6c40":"changePercent(uint256)","812e1d1d":"APT(address)","812e6741":"Mountain(bytes32,uint256,uint256,uint256,address)","812ed5cc":"report(address,address,bytes)","812f55c3":"get10Ads(uint256)","812fd5d7":"payToProvider(uint256,address)","813051bc":"createGOP(address,string,uint256)","8130c9b2":"untrustedTokenNumerator(uint256)","8132581c":"amountRaisedInEth()","8132e223":"internalSafeTransferFrom(address,address,uint256,bytes)","81333d57":"LKB(uint256,string,string)","8134064b":"setMotherCount(uint32)","81350bd4":"releaseTimeTeamAdvisorsPartners()","8136c1b9":"registerUserOnToken(string)","8136f02d":"setAddressOfERC20OldToken(address,address)","8136fd26":"createJob(string,uint256,uint256,address)","81395866":"numberOfAdmins()","8139bc2f":"ecothereum()","813a573a":"CheckPurchaseCount(address,uint32)","813b024f":"addProductInUsd(uint256,uint256,bytes32)","813b65aa":"setNewCajutel(address)","813d13cb":"getBB(bytes32)","813d599f":"getValidatorAddress(int256)","813d6c9a":"bonusPercentage()","813d89e1":"artExplain()","813df488":"preMinedFund()","813e7847":"withdrawalNormal()","813e9aca":"init(address,uint256[],uint256,uint256,uint256,uint8)","813f4db4":"isStakingPeriod()","813f563a":"devsHolder()","813f5717":"LinkRevenue()","813fdec8":"getContestStatusForDate(uint32)","8140ce63":"kvtOwner()","8140d0dc":"setContact(string)","8141fd37":"tickRequiredLog()","8142453f":"_saveRequest(address,address,uint32)","8142a25a":"testAliceFooSend()","8142b8d7":"editGardener(uint256,uint256,uint256)","8143e3da":"allBonus(address,uint256)","8143eb2d":"gameOpened()","8143f8a8":"totalGas(bytes)","8144650a":"transferTokenTo(address,uint256)","814487c4":"addSuperReferrer(address,uint8)","8144ee2f":"adventureSettingContract()","8146f323":"isFinalised()","8147bcf7":"deletePlatform(bytes32)","8148d2fe":"getNodeId(bytes32,bytes32)","8149657b":"closeEthPool(uint256)","814971de":"issueReward(uint256,uint256,uint256[],uint256)","8149ea9b":"randomSkill()","814a78f4":"KM(uint256,string,string)","814ab9f1":"salesSupply()","814ae0ba":"gcf()","814b3fe0":"dividends(uint256)","814b53b0":"killCoin()","814c25fc":"setTokenInformation(bytes32,bytes32)","814c2aa1":"changeTotalExchange(uint256)","814e23c8":"calculatePayout(uint256,uint16)","814e3bd3":"ContribToken(uint256,string,string)","814e5c9b":"totalSaleAmount()","814e6d44":"_unpackIdValue(uint256)","814eba9e":"simPunitiveInterestRate(bytes)","814f737d":"phaseThreeEnd()","814f9201":"payUserIncomingTransactionCommission(address)","814fbd8f":"RefundBTC(string,uint256)","81508615":"getBeneficiaryDevelop()","81516c7b":"initialTIPsupply()","8152c7ed":"adminSetRandomInput(string)","81531c64":"Strike()","81547f25":"CONI()","8154b57c":"secondsAfter()","8154d4de":"setMarket(bytes32,bytes32)","81550287":"PRESALE_CLOSING_TIME()","81553709":"releaseEndTimeOfStage(address,uint256)","815639ea":"read_u64()","8156afdf":"Aletheia(address,address,address)","8157d4b5":"bindContract(address)","81580761":"getUniqueLineCount()","815847df":"_addBonusOfReferrer(address,uint256)","81584ff3":"CutieBitToken()","81587463":"sendTradeEvent(uint256[],address[])","81592aab":"instantUpdate()","81597d0c":"mintIcedToken(address,uint256)","815a4876":"setEthereumWallet(address)","815bc7a0":"vote_reward_pool_amount()","815c326d":"ProducerOperations()","815d1fe5":"RewardChannel(address,address,address)","815dcd36":"dailyAccounting()","815def1a":"changeAllocation(address,int256)","815eb7c1":"satoeContract()","815ec64a":"zReceiveFunds()","815f73f0":"m_walletAddress()","816036ae":"removeSmartContract(address)","8160b246":"BONUS_TIER3()","8160f0b5":"minimumQuorum()","81613a62":"LogPause(bytes32)","816163b1":"checkGameResult(bool)","81617f8f":"reLoadXaddr(uint256,address)","81619954":"DAOFactory(address,address,address)","8161c5e5":"main_balance()","8161dfa6":"EmailSent(address,uint256,string,string)","8161f0e1":"execID()","816273f6":"computeAmountBonus(uint256)","8162de9c":"getCryptoAvatar(uint256)","8162f631":"LogFunderInitialized(address,address,string,uint256,uint256)","8163681e":"isValidSignature(address,bytes32,uint8,bytes32,bytes32)","816413f8":"transferPreSignedHashing(address,address,address,uint256,uint256,uint256,bytes)","81641ff7":"casinoBank(address)","81646be8":"setCloseTime(uint256,uint256)","8165354e":"setOracleRegistry(address)","8165913d":"withdrawEthBalance(address,bytes)","81671042":"setOptionLibrary(address)","81676ecd":"FGorToken()","8167d996":"deAuthorize(address)","8168b41e":"TokenTWL(uint256,string,string)","816a873f":"createMorePaymentChannelsInternal(uint256)","816b6574":"LogCrowdsaleFinalized(bool)","816bf490":"transferTokens(uint256,address[],address,address)","816bff5f":"CIFCoin()","816c4ad1":"baseIntCalc()","816c66c9":"updateRank(bytes32,bytes32,uint256,bytes32,uint256)","816c76e3":"GoozeToken(uint256,string,uint8,string)","816c7da4":"approveAllAndCall(address,bytes)","816ca77c":"CollateralSeized(address,uint256)","816d199c":"SIGMA_FTL_SPEED()","816d3da9":"purchaseAdmin()","816d3dc1":"get_info(address)","816dbae4":"monethaVault()","816e117c":"setMaxSize(uint256)","816e24b0":"setupDeposits()","816ed336":"emitFeeSet(uint256,address)","816f3438":"maxFoundationCapUSD()","816f3f4d":"madKing()","816fceb7":"MultiTransaction(address,address[],uint256[])","816ffbab":"Uint256Oracle(int256,uint256)","81702c34":"refund_me()","8170733d":"MyBitFoundation()","81710c78":"getMyPolicies()","8171362a":"votingByXid(uint256,bool)","81715d8c":"pIdIter_()","817189df":"setEarlyLimits(uint256,uint256,uint256)","817246cf":"setsalesdeadline(uint256)","817287d0":"isOwnner(address)","8173832a":"LogUnsortedOffer(uint256)","8173b813":"setNumCities(uint256,uint256)","8173e363":"hard_cap_wei()","817472c0":"TOKEN_INIT(bytes32,bytes32,bytes32)","8174b6d7":"ownerCutPercentage()","81751312":"getAllCardsModifierPrimaryVal()","81758fb4":"bohwa()","8176419f":"SCCC(uint256,string,string)","81767aed":"getIdentifiers(address)","817725aa":"disableChangesMultitoken(uint256)","81776ba4":"backup_refund(uint256,uint256)","81777b78":"Take(bytes)","8177ffae":"PresaleContract(address)","81788e2b":"addAllowedAddress(address)","8178a943":"add_scribe(address)","8178ab99":"_transferFromSenderPaysFee_byProxy(address,address,address,uint256)","8179c2b3":"Result(uint256,address,uint256)","817ad683":"XHO()","817afff8":"_updateWithdrawCountry(uint256,uint256,uint256,uint256)","817b106e":"setChangeIdentityNarcoRespect(uint256)","817b1cd2":"totalStaked()","817b90fe":"getCategoryId()","817c1e52":"startICO(uint256,uint256,uint256,uint8)","817c7483":"settleLeague()","817c8966":"getLevel(address)","817d62a4":"shouldGetHighFive()","817e8332":"STAKE_BONUS_RATIO()","817e9d31":"setFactor(uint256)","817eca0c":"ConstructByEth(uint256,uint256)","817edbd2":"set(uint32,uint8)","817f0023":"recievePayment(address)","817f688f":"BLAAICOIN()","81807a07":"calculateBonusAmount(uint256)","818097c5":"getVotesForCandidate(address)","8180f2fc":"approve(address,uint256,bytes32)","81813963":"claimEDEX(address)","8181b029":"confirmImplChange(bytes32)","818211f8":"getProposalsNum(address,uint256)","8182173c":"PricesUpdated(address,uint256,uint256)","81824d53":"setData_1(uint256)","8182c6a7":"IssueToken(string,string)","81830593":"adminAddr()","818438ca":"getWizzPandaQuotaOf(uint256)","8185402b":"buyAllAmount(address,uint256,address,uint256)","8185b8e9":"getWeiPerCent()","81862f25":"newThreadComment(bytes32,bytes32,string)","81884756":"citationCount()","8188f71c":"holders()","81895b73":"registry(bytes32,address,address)","818a19b5":"FeeAddr1()","818a4b48":"preSaleMinAmount()","818ad300":"TeamVesting(address,uint256,uint256)","818b4564":"DefineType(address,uint32,string)","818c2858":"HPCToken(uint256,string,string)","818c606f":"NewAuction(address,uint256,uint256,uint256,uint64,uint256)","818d4b5d":"owns(address,uint256)","818e8cfa":"setLogoURL(string)","818f7d01":"checkTransferFunctionPrivateSale(address,address,uint256)","818f92c7":"createPurchaseOrder(address,uint256,uint256,bytes32)","818fd7a1":"beforeBuy()","81904676":"lastDistributedAmount()","8190cf07":"setRate_ETHUSD(uint256)","81915a67":"EventSetContract(address,string,address)","8191745f":"Description()","8191ab45":"setUsdConversionRate(uint256)","8191b9a2":"__tokenAndWalletBalancesMatch__(address,address,address)","8191d30f":"crossForking()","81923240":"mine(address)","8192433f":"receiveTokenDeposit(address,address,uint256)","8193327b":"test1Bob()","8193844b":"linkIssuerName(bytes32)","819384a2":"payoutToReferrer()","8194aff3":"Matchpool()","8195031f":"Bitsta()","819512cd":"buyTokens(address,uint256,address)","81961946":"NETR()","8196410b":"GustavoCoinCrowdsale(uint256,uint256,uint256,address)","8196b8c7":"getValueOrZero(bytes32)","81980c27":"SOLOBOT()","81981f7c":"getMyFranklin()","8198edbf":"getFeeRate(address)","819912a2":"setGame(address)","819927e7":"transferUserTokensTo(address,address,uint256)","819abe80":"giveFreeUnit(address,uint16)","819ad6d6":"EstimatedICOBonusAmount()","819b0293":"validPosition(uint256,uint256,address,uint256)","819b25ba":"reserve(uint256)","819b9773":"PaymentAvailable(address,uint256)","819c5773":"withdrawForMany(address[])","819cfdf1":"YFTToken(uint256,string,string)","819e3903":"LogTrade(uint256,address,uint256,address)","819ee03a":"InterfaceId_ERC721()","819f2494":"createOffer(uint64,uint256)","819f255a":"is_passcode_correct(uint256,bytes32)","819f5e24":"burnAndFinish()","819f8927":"setMilestonesList(uint256[],uint256[],uint256[])","81a00361":"YONDcoin()","81a03133":"authorizePayment(uint256)","81a084fd":"remainingGasRefundPool()","81a09bf0":"mergeMedal(uint256,uint256)","81a1384b":"LockedVotingTokens()","81a1fa02":"itemsCounts()","81a22b41":"PaymentsProcessed(address,uint256,uint256)","81a22bee":"reservePart()","81a238b5":"thirdWavePrice()","81a2568d":"setXToken(address)","81a2824f":"getUserBet()","81a28c28":"isSecured()","81a33a6f":"bytesToUInt(bytes32)","81a3b17f":"removeFace()","81a46662":"rolloverPercent()","81a4af15":"rewardTokens(address,uint256)","81a5ad6d":"YamatoCoinCrowdSale()","81a5e88b":"ICOCompleted(uint256)","81a60c0d":"getResults(uint256)","81a73ad5":"getTokenSymbol(address)","81a752ef":"removeSdaContract()","81a7a503":"ActiveProposalNum()","81a7ac54":"MAX_PERCENT_OF_SALE()","81a8e78a":"getGalaxies()","81a955b0":"editInfo(uint256,bytes)","81aa5067":"addLockedAccount(address,uint256,uint256)","81aa8a4b":"pre_PRICE()","81abb800":"lengthOfKeys(uint256,uint256)","81ac9b93":"AuctionCancelled(address,uint256,address)","81accd0b":"create(bytes1,bytes32,bytes32)","81add559":"partners()","81ade307":"query(string,string)","81ae20b2":"setInvestorsBatchSize(uint256)","81aea668":"atNow()","81aee4f4":"getNoteDesignatedReport()","81af0750":"Simt()","81af8949":"getPackBuy(address,address,uint256)","81af95fc":"startAuction(uint256,uint256,uint256,uint256,address)","81afc50d":"delegateCustodian(address,address)","81aff6ec":"get_presale_arbits_sold(address)","81b074ab":"user_on_freeze()","81b1c6bb":"getWinLoseAmountByBettingIdInGamblingParty(uint256,uint256)","81b23042":"burnMonster(uint64)","81b2d07b":"showBalance()","81b2dad9":"setByeSayer(address,bool)","81b3171c":"extGoalReached()","81b31cec":"setNextCommonTTWTokenId2(uint64)","81b3ea13":"getResponseError(uint256)","81b54498":"seedStartTime()","81b69494":"fee_ratio()","81b72d88":"startRequest_callback()","81b736e9":"createChild(uint256,address)","81b7c6e7":"stop_it()","81b7f157":"_updateSpendAvailable()","81b890fc":"setName(uint256,bytes16)","81b93757":"ADEVA()","81baf3ab":"sendTokens(address[],uint256[],address)","81baf55e":"processBuyRequest(string,address,uint256,uint256)","81baf820":"BlockScheduler(address)","81bb1277":"_calculatePointsAndRewards()","81bb2b20":"payFee(bytes32,uint256)","81bb59bf":"goodsNotOK(uint256)","81bb73af":"signArchive(bytes32,string)","81bb9470":"DNCEQUITY()","81bc3657":"migrateSinglePlanet(uint256,string,uint256,uint32,string,uint32,uint8,string,address)","81bc50ef":"getBUA(bytes32,uint256)","81bc8742":"BCToken(uint256,string,string)","81bd24d1":"revertTest()","81bd66fe":"upgradeMeAdmin(address)","81bdc78d":"getProposalAmount(uint16,uint16)","81bf1cff":"ThailandVsMyanmar()","81c0ddc3":"villageinfo(uint256)","81c1346d":"setFundsCreditDaoAddress(address)","81c2d4b6":"freeToken()","81c2d875":"getConsensusRules()","81c385b5":"safeWithdrawEther()","81c405c6":"registerCustomer(address,address,bytes32,uint256)","81c485e7":"getDiscipleSale(uint256)","81c4e1c8":"User(address,address,address)","81c56dfb":"d27d7bad()","81c59c8d":"getStrategyTokenCount(uint256)","81c5b206":"addMeToGame(uint256)","81c648e2":"betYours()","81c64ea2":"SixPlayerRoulette()","81c70870":"ClientUpdated(address,address)","81c79fd5":"transferMerchantProxy(address,address,uint256,uint256,uint8,bytes32,bytes32)","81c7ae3b":"miningEveryDay()","81c8149d":"timeOfLastProof()","81c8b563":"coinLockRemove(address)","81c92486":"ProcessRooms()","81c9786c":"administratorsLength()","81ca3ea1":"hasEitherAttribute(address,bytes32,bytes32)","81cb79ca":"createEmptyTrack(uint256)","81cbeaf0":"getValidated(address,address,uint256)","81cc49dd":"secondLoos()","81ccb678":"Confiscate(address,uint256)","81cd2ffb":"ConversionFeeUpdate(uint32,uint32)","81cd30a8":"round_c_begin_date()","81cd4570":"Moneytoken()","81cd5eec":"bonusPot()","81cd8194":"transferPrice()","81cd872a":"deals(bytes32)","81cda317":"MINTING_HARDCAP()","81cde1a9":"GOOD_ERC20()","81ce7184":"TestText()","81cebf7e":"vestingPaid()","81cedafc":"Nodalblock()","81cf7fef":"registerSmartID(string,string,string,bool,bool)","81d01ed3":"p2()","81d12c58":"requests(uint256)","81d136cb":"presaleAllocation()","81d16e0d":"_isDiamondVerified(string)","81d2c871":"SetMinFee(uint256)","81d2fd9c":"setFaucetAmount(uint256)","81d36f4e":"KEVINTOKEN()","81d38ada":"Remove_member(address,address)","81d38f2d":"SheetMusic(address)","81d3c435":"setAddresses(address)","81d434e9":"transferToICAP(string,uint256)","81d44053":"reading_length()","81d45a5c":"isPreICOPublicClosed()","81d5e753":"CuratedWithWarnings(address[],address,address[],address[])","81d693be":"claimDay(uint16)","81d6c866":"harvestabledivs()","81d77862":"newMostInviter_()","81d92ed4":"shp()","81d96005":"sigDestinationTransfer()","81d961e4":"eligible(uint256,uint256)","81d97051":"setOwnerOne(address)","81d9c5e4":"handleIncomingPayment(address)","81dafe0e":"calculateDuration(uint256)","81db6c28":"redeemVoucher(uint256,address,address[],uint256)","81dc66f4":"checkTankAuction(uint256)","81dca05c":"setAuthorization(address,address,bool)","81dd70db":"kickoffQuorumPercent()","81de10e2":"getContentAt(uint256)","81ded5b8":"numOfConfirmationNeeded()","81df464f":"totalRaisedIco()","81df893c":"withdrawMon(uint64)","81e1ccba":"stakingPercentage()","81e2ef3a":"ReceivedETH(address,uint256,uint256)","81e529cd":"setOwnerFreeDay(uint256)","81e559ae":"clientKeys(uint256,uint256)","81e69eff":"publishMetaData(bytes32)","81e6c686":"returnMaxGoal(uint256)","81e6e083":"getLifetime()","81e75dd0":"testPublicBuy()","81e7645f":"findFigures(uint256,uint256)","81e77878":"getChooses()","81e7a97e":"killMonster(uint16,uint8)","81e7e20e":"user(address)","81e7e329":"test_6_accessRestriction_removeMember_shouldThrow()","81e83991":"howMuchInEscrow()","81e8927b":"getValidationsCount()","81e8a1f7":"newRandomByte(bytes)","81e9abef":"_updateEarnedBy(uint256,uint256)","81ea4408":"getCodeHash(address)","81ea6834":"getEvilMortyAddress()","81eac2ee":"checkClientFunds(address)","81eaf99b":"lockSupply()","81eb3e01":"setValueStep1(uint256)","81ebd8de":"setDeveloperStatus(address,address,bool)","81ebdeea":"testThrowCreateWithNonceRetracted()","81ed8680":"pingTimestamp()","81edaae4":"serviceFee(address,uint256)","81edc308":"insertAndApprove(uint256,address[],uint256[])","81ef1b18":"startFundraising()","81ef93ae":"lastFueledFundingID()","81efc01d":"withdrawHouseStake(uint256)","81f0c440":"MikeChanCoin()","81f1a41b":"CROWD_SUPPLY()","81f1aad7":"setCancelApproveFee(uint256)","81f1d75c":"updateUserEmail(address,bytes32)","81f1f92a":"withdrawSoftwareProductDevelopment()","81f1fa93":"RKCAcquired(address,uint256,uint256)","81f2a3f1":"GetDownTickPrice(uint256)","81f2d44c":"getStarIdAtPosition(uint8,uint8,uint16)","81f2d4ee":"updatePartner2_will(string)","81f3e897":"getSettingData(uint256)","81f4f9bf":"ticketHolder()","81f59f51":"shareService(bytes32,address)","81f5f75c":"getApprovedProxies()","81f65883":"CompetitionStore()","81f6bf7d":"deleteCertificate(string)","81f6c7e5":"_release(uint256)","81f799e2":"reveal_end_time()","81f86241":"ExGirlfriendCoin()","81f8658a":"DATE_OPEN_ON_FLOOR()","81f8a6f7":"checkTokenSupported(address)","81f8b722":"LogIncomeAllocation(address,uint256)","81f91c4a":"transfer(address,bytes32[8])","81fab567":"maxPayments()","81fb1fb4":"participants(uint256,uint256)","81fb2585":"isOfficial(uint16)","81fb3803":"einzahlen()","81fbc084":"mul27(uint256,uint256)","81fbf0a5":"totSupply()","81fbffe1":"getGiftoAddress()","81fc4d90":"increaseLockAmount(bytes32,uint256)","81fc7f2b":"accountFrozenStatus(address)","81fcef3c":"bitcoinContract()","81fcfbcc":"allocateBountyTokens()","81fd63c2":"kanaabbcwalletcoin()","81fdbeff":"TransferCoinsFrom(address,address,uint256)","81fe5786":"max(int256,int256)","81fedc73":"Casinowo(uint256,string,uint8,string)","81feed27":"awardName(uint8)","81ff01f7":"REPOPCore()","81ff4d0b":"TEAM_TOKENS()","81ffdfab":"getTokenAmountForCampaign(bytes32)","82004053":"ownerSetZlotsAddress(address)","8200a57f":"changeOwner(address,address,bool,bytes)","8201ff14":"setNewTerrain(uint256,uint256,bytes32)","820203a3":"ztx()","82023707":"updateSecondUnionIds(bytes32,bytes32)","82024a14":"PromissoryToken(address,uint256)","820267ff":"diminishPool(uint256)","82027b6d":"isAllowed(bytes32,address)","8203e7f3":"justSendDonations()","8203f5fe":"initContract()","82043443":"transfer_(uint256,address,address,uint256)","820447fc":"TrimpoToken(uint256,string,string,address,address,address)","8204ecdd":"getFee(bytes)","82067cc0":"pauseRoundB()","8206ba89":"MAX_STAGE_2_LIMIT()","82076979":"TeamTokenHolder(address,address,address)","820776de":"DivsToRefundpot()","8207b07d":"lastPurchasePrice()","8208921d":"getWalletFor(address)","8208df23":"stack(address,uint256,uint256)","820935dd":"HDILToken()","82094fa4":"setAddressAdmin(address)","8209b38a":"Freecoins24()","8209d121":"a_viewSellOffersAtExchangeMacroansy(address,bool)","820a5f50":"fundedAmount()","820b9f1e":"kncPerETHRate()","820bec9d":"receivedETH()","820c05db":"FPINCOIN(uint256,string,string)","820c1dd0":"pollBurnQtyMax()","820c59bb":"GetIsPauded()","820c7468":"isVendorOf(address,address)","820c815e":"EGGS_TO_HATCH_1DINO()","820cfa06":"LogUserRemoved(address)","820dc540":"lockBalanceIndividual(address,uint256)","820e0d1f":"getChallenger(bytes32)","820e5e0b":"DividendRecycled(address,uint256,uint256,uint256,uint256)","820e79ed":"cstBalanceLimit()","820e93f5":"email()","820ecdaf":"iou_purchased(address)","820f52bc":"validPeriods()","820f9b85":"changeBetRange(uint256)","82100be6":"getWinningPayoutDistributionHash()","82100e3f":"deploymentBlock()","82104786":"Profit1000()","8210f13b":"BatchCancelSales(uint256[])","82123075":"safeExit()","82123cd2":"prizeReferee()","8213dafc":"setupAirDrop(bool,uint256,uint256)","82142370":"preICO(address)","82147bb4":"getGuardianNum()","8214fe03":"setMetadataChannels(string,string)","82154075":"Rentable()","8215c35d":"bincentiveErrand()","821648f4":"accessHolder(address)","8216ed6c":"getCompte_22()","82173d11":"KentKoinToken()","82189551":"buy(uint256,bytes)","8218e540":"insertHash(uint16,uint8,uint8,string)","821919fd":"getPetCanPresellCount()","821b771f":"targetBondingRate()","821b98f3":"closeTheoreticalClosedAuction(address,address,uint256)","821bee73":"vestings(uint256)","821c9a57":"test_testableStandardCampaignRefund()","821d7356":"setMainnetLocked(bool)","821e2491":"MyBetting()","821e4496":"isVerifiedCode(address,bytes32)","821e9169":"testFailControllerChargeMoreThanApproved()","821f830f":"addPack(address)","82202a15":"fetchCurrentSnapshotBlockIndex()","8220e945":"FactoryChangedEvent(address)","8221ac6f":"_createHolderId(address)","822221a6":"setContractToken(address,address)","82222674":"changeEndBlock(uint256)","822296d4":"isList()","8222a5ce":"insurance_Token()","8222aa1e":"settle(address,uint64,uint64,bytes)","8222b7e9":"getBonusPercentage()","8223188c":"Rose43()","82233b7a":"returnHostCut(uint256)","8224b76b":"StartOK()","8224ca2b":"SaleEDUSupply()","82251b99":"DRONECOIN()","822785e4":"_setTokenDescription(address,uint256,string)","82281104":"incise(uint256)","82286755":"MyRefundableCrowdsale(uint256)","82288e89":"setAccountIsNotFrozen(address,bool)","8229268b":"StageThreeDisable()","822942aa":"placeDeal(bytes16,address,address,uint256)","822a46ae":"setTiimPrivateSaleAddress(address)","822b08d0":"grantManagerPermission(address,string)","822b0be3":"teamTimeLock1()","822b1747":"_getEpicPlusRarity(uint32)","822bd0dd":"BOT_ELEMENT_3()","822c7671":"testControllerShouldBeSet()","822cba69":"setUint64(uint64)","822d487d":"getBrands()","822d9b4e":"onlyOwnerGetBountyWallet()","822daf60":"timeFactor()","822e1506":"_bonusRatio2()","822e57f1":"depositHelper(uint256)","822ee26c":"canMovetoken()","822f31e2":"AlexCoin()","822f7eb4":"setFeeReceAccount(address)","823113c7":"thresholdsByState(uint256)","823126d5":"_createToken(address,uint256)","8231ee98":"lastTimeGen0()","823213ef":"removeExclusiveRate(address)","823287b7":"chargeQuarterlyRate(bytes32,address)","8232e09e":"DeleteUser(address,address)","82330505":"setCommissionPoints(uint256,int256)","823374e3":"changeDedicatedProxy(address)","8233fbcb":"getTotalProfit(address)","82348bab":"setMinSlippageFactor(uint256)","823506af":"getData_29()","82351b43":"getLinearRelease()","82357105":"bl()","8236342c":"hashToPoint(bytes32)","82367b2d":"updatePrice(uint256,uint256)","8237ab8d":"IsSeedMember(address)","8237bbf0":"min_shares_to_sell()","82381c96":"WatchCurrentMultiplier()","8238520f":"getParentBranch()","8238b968":"BeatOrgTokenMainSale(address)","8238cc8f":"getFIRST_STEP_MULTIPLIER()","823914d9":"multisigETH()","82396bc6":"lnLimited(int128,int256)","82396f60":"getTokensInAction()","8239773a":"NePay()","8239b1e7":"getSequenceId(uint256)","8239b29d":"periodITO_hardCapInUSD()","823ab43b":"returnedTo(address)","823ac373":"verify(bytes32,bytes,address)","823b7475":"UpgradeAgentSet(address,address)","823ba0b8":"burnFormula()","823ba381":"InvestClose(uint256,uint256,uint256)","823bce43":"zasxzasx()","823c82ca":"FREEZE_PERIOD()","823e1832":"ChangeClientCategory(address,uint256)","823e569e":"controlWallet()","823e6e79":"validateBalance(address)","823edd48":"getComponentId(uint256,uint256)","823f57ca":"withdrawFromAmt()","82401f06":"transactionSwitch(bool)","82402743":"createPromoNarco(string,string,address)","8240ae4b":"challengeReparameterization(bytes32)","8242216d":"jackpotOfHouseEdge()","82425d7c":"hasNoBids()","82428323":"updatePeriodically(uint256)","82430c07":"_sendOwnership(address,address,uint256)","824338bd":"founderAllocation()","8243a036":"presaleFemaleTokensLimit()","8243fd61":"addMilestone(uint256,uint256,uint256,uint256,string)","8244208c":"FrescoToken()","8244b8c8":"findEndpointByAddress(int256,address,address)","8244ee58":"Amberella()","824563f6":"mintingContractAddress()","82457d53":"periodTable(uint256)","82474b1b":"teamName()","8248159e":"registerApprove(bytes32,uint8,bytes32,bytes32)","82484a36":"vestingToken(address)","82484c0b":"BetstreakICO()","824891f8":"changeMinimumCap(uint256)","82489311":"_buyNationInternal(uint8,uint256)","8248e722":"updateConfig(uint256,uint256)","824916b6":"playersAmounts()","82495626":"getVoteAccount(uint256,uint256,uint256)","824989c3":"changeLifetime(uint256)","824a5166":"ChannelCloseRequested(address,uint256)","824be3c7":"TheRichestWins()","824d1b4b":"preICOStartDate()","824d5603":"getIndex(uint16,uint16)","824d84d5":"createVestingContractWithFloatingPercent(address,uint256,uint256,address,uint256[])","824dbc9a":"changeMembership(address,uint256,bool,string)","824e5ebf":"distributeETHOS(address[],uint256)","824eddd9":"removeSupportedToken(address,address)","824eec3b":"editionOfTokenId(uint256)","824f0f7e":"tittyContractAddress()","824f2f1f":"globalConstraintsCount(address)","82507c5a":"Radix()","8250ea7d":"getReferralPool()","8250f7e5":"isInvestmentPermitted(address,uint256,uint256)","82518c2a":"exercisePut(uint256,uint256,uint256)","82520e07":"receiveFrom(address)","82528791":"setWallets(address,address,address,address,address)","8252ad9c":"totalAuction()","8252b2cf":"acceptCreatureOwnership()","8252e391":"transferInternal(address,address,uint256,bytes,bool,string)","825374ba":"buyATCToken()","8253adf1":"createBet(bytes16,bytes16,bytes16,bytes16,uint256,uint256)","82544c1f":"GoWalletToken()","8256687c":"addClaim(bytes12,bytes12)","82568a24":"p_update_planetCryptoCoinAddress(address)","82576dd6":"Laundromat(uint256,uint256)","8257f610":"canPurchase(uint256)","8258cbbd":"getContractETH()","825918ee":"delgodaddress(address,address)","82594f09":"iMaliToken(address)","825993ab":"totalCouponsUSD()","8259c78c":"depositPpm()","825a229e":"setEditor(address)","825b8b42":"buy(uint16[])","825bdb74":"setSecondaryManager(address)","825c3e36":"closeGame(bytes32,uint8)","825d7034":"RiptoBuxToken()","825e04d3":"dfs()","825edfd3":"getClassMechValue(uint256)","825f5a93":"RoundDSold()","825f6552":"SVET()","82609d51":"failedDonations()","82611dfe":"setOption(string,uint256)","8261b6bf":"receiveTokenLoot(uint256[9],uint256,uint8,bytes32,bytes32)","8261c4c7":"MINERS_HOLDER()","8261cfe4":"travelTo(uint256,uint256)","8261eb1b":"frtToken()","82629384":"shareStoredTokens(address,uint256)","8262963b":"setInfo(string,uint256)","8262fc7d":"addrBalance(address)","8263a938":"getProposalLength()","8263e953":"_claimSocialNetworkIdentity(uint256,uint256,address,uint8,bytes32,bytes32)","826446fa":"parse2wei(uint256)","82645725":"Planetagro(address)","82648222":"retrieveWCT2()","8264fe98":"buyPunk(uint256)","8265d137":"checkRegistrationStatus(bytes32,address)","8265d577":"TestreplayAnser(uint256)","8265dbc1":"bonusAndBountyTokens()","8265fb13":"optionPoolMembersAmount()","82661dc4":"splitDAO(uint256,address)","826679a1":"getFundSPBalance()","82672304":"GeneratePublicKey(string,string)","82672482":"vestingRegistered()","826776fa":"claimTeamTokens(address,uint256)","8267a9ee":"deleteIntValue(bytes32)","82688f14":"bn128_multiply(uint256[3])","8268efcd":"RunningAuctionsEvent(address,uint256,uint256,uint256)","82692679":"doSomething()","82699367":"CicadaToken()","8269cf4d":"seo(uint256)","8269d3c0":"buyTokensT4T(address)","8269df9b":"getLastCategory()","8269ee3d":"Issued(address,uint256,uint256)","826a483f":"_emitHashSet(address,bytes32,bytes32)","826a49c9":"removeGameInfoFromArray(uint256)","826c10d9":"exhaustBattle(uint256)","826c2447":"PGDToken()","826c69b8":"participantBalance(address)","826c6f73":"addServer(string,uint256)","826cc57a":"referral_address()","826d3379":"tierPrice(uint256)","826db6c8":"SLFYCoin()","826e9def":"initPresaleTokenVault(address[],uint256[])","826efb6d":"payBonus(address[])","826f57a1":"endBetting()","826f8a00":"createOrder(string,string,string,string,string,string)","827037d6":"modCEOAddress(address)","827037db":"icoStart()","8270c41e":"setPriceToken(uint256)","82712aeb":"purchaseWolkEstimate(uint256,address)","827147ce":"returnString(string)","8271bedc":"getUserBetsLength(uint256)","8272d083":"isSupported(address,bool)","82731247":"isB(address)","8273a411":"allBalancesOf(address)","82744368":"minimumEtherAmount()","82757f99":"withdrawTeamPot()","82760c88":"GoGlobals()","82766b1b":"setAmount(address[],uint256[])","82768708":"weiMinimumGoal()","8276bd19":"PROPOSED_STATUS()","8276ccf2":"setHeroName(uint256,string)","82771c8e":"isSane()","82771ff4":"endPlaceOrder(uint256)","82776521":"strConcats(string,string)","8278337a":"writeAttributeFor(bytes32)","8278fcea":"AirdropReward()","82790c19":"SideBridge(uint256,address[],uint256)","82797bea":"Preesh()","8279c7db":"setReceiverAddress(address)","8279ea54":"change_bounty_manager(address)","827aeb16":"_changeTittyPrice(uint256,uint256)","827bc64b":"setLeftoverTokensBuffer(uint256)","827bfbdf":"setLocation(string)","827c049e":"emission()","827c1e41":"getTittyByWpId(address,uint256)","827cc452":"withDrawMoney(uint256)","827d084a":"getActiveBusinessesPerCity(uint256)","827d7ba9":"Fosha(address)","827e4cf1":"manuallySetNumRewardsAvailableForChildAddress(address,address,uint256)","827ef325":"_parseMsgData(bytes)","827ef4c7":"m_fundsAddress()","827f143e":"setPresentMoney(uint256)","827f32c0":"generateTokens(address,uint256)","827fc57c":"ChickenFarmer()","827ffcea":"horas()","8280114b":"addressOfERC20Token()","828033da":"getFlag(uint256,string,string)","82803c22":"sell_tokens(uint256)","8280b498":"setFrozen(address,bool,uint256)","82812aed":"BuyPriceSet(uint256)","8281da38":"refundBet(address,bytes32)","8281feaa":"QuestionIs(string,string)","828282e9":"bonusRates(uint256)","8282e1e4":"SEPA()","828363b4":"transferAdviser(address[],uint256[])","828375e8":"computeTokensWithBonus(uint256)","82838c76":"subTotalSupply(uint256)","8284f2a7":"proposeGame(address)","82857a03":"approveAndCallWithSender(address,uint256,bytes4,bytes)","8285d272":"GOAL_REACHED_CRITERION()","82862275":"getDeadline(uint256)","82872491":"setCaps(uint256,uint256,uint256,uint256)","8287ccb4":"onDeposit(uint256)","8287d6ce":"_createDeposit(address,uint256,bool)","828806cd":"submitTransactionWithSignatures(address,uint256,uint8[],bytes32[],bytes32[])","8288196d":"THANKSTEST1()","8288edd0":"nonTransferrableBalances(address,address)","828909bd":"getIntValue()","82892dd9":"blockMember(address)","828a33b9":"FreeDiceCoin()","828ae96d":"cdc()","828c06cd":"expLimited(int256,int256)","828ca03c":"getTaskListSize()","828d671c":"dyn_sig()","828dfbca":"user_acq_address()","828eab0e":"defaultResolver()","828f1b42":"buyObject(address)","828f4057":"numberofGamePlay()","828f5fba":"air2(uint256,uint256,uint256)","828f717c":"fixPlayerID(uint256,uint256)","828f8581":"tokenTransferFunctionIdentifierMap(bytes32)","8290d1e0":"StandardTokenDeployable(string,string,uint256,uint256,address)","8290fe25":"finalizeExits(uint16)","8291286c":"contractId()","82914e5d":"getObjectData(bytes32[],uint8[])","82916381":"execute(address,uint256,uint256,bytes)","82917320":"increaseLockedBalance(address,address,uint256)","8293779c":"isOps(address,address)","82939b27":"getPreSaleData()","8293a114":"unbanAddress(address)","8294a796":"WelfareHandout(address,uint256,uint256,uint256,uint256)","829534d7":"m_pendingIndex()","8295a9ba":"checkDupe(string)","829644a6":"freelanceReinvest(address)","82964696":"ZSYCoin(uint256,string,string)","8297b90c":"PRESALE_LENGTH()","8297d46d":"BTL_ATHENIAN()","8298c3b5":"itemVoteDn(address,uint256)","8298c5dc":"last_winner()","829923bf":"admin_setAdmin(address,bool)","829965cc":"epochCount()","82996d9f":"rent()","829981fb":"FinalToken(uint256,string,string)","829a34c6":"getUserInfo(bytes20)","829a92f4":"hardcapChanged(uint256[])","829bd99c":"balanceOfByLegacy(address)","829c3428":"startTransfer()","829c38e1":"claimSolve(uint256[],uint256,uint256,bool)","829c3dee":"createDebt(bytes32[8],bytes,uint256)","829e9ece":"deathData_v16()","829ebdcd":"upgradeFor(address,uint256)","829ed3a5":"ownerTokenTransfer(address,address,uint256)","829efd71":"TonhaoCoin()","829f0667":"verify_sk_knowledge(uint256[2],uint256[2])","82a0888b":"totalSaleWei()","82a09cc5":"TokenCreated(uint256,address,string)","82a123ea":"WhitelistUpdated(uint256,string,uint256)","82a147cd":"addYouCollectContract(address,bool)","82a18331":"MOONCOINCONTRACT()","82a1ce1b":"setSourceToken(address)","82a352e4":"firstStagePriceOfTokenInWei()","82a35706":"tokenSoldPreICO()","82a3e5df":"STATE_CLAIM_ENABLED()","82a3f98d":"VOTING_PERIOD_DURATION()","82a5285d":"getMinBetAmount()","82a60a59":"CollectibleIndex2()","82a62137":"activateAccount(address)","82a66d93":"earlySponsor()","82a7cf1e":"ownerOf(uint16)","82a86cda":"getRarePLATInfo(uint256)","82a90545":"funComputeRoundTime(uint256)","82ab890a":"update(uint256)","82ab8a82":"startDeal(bytes32,uint256)","82ac1d99":"getNodeValue(bytes32)","82acaa39":"getChildrenAgainstAnimalId(uint256)","82ad5ecf":"yeedToken()","82ad6f35":"refund(address,address,uint256)","82ade405":"forceChooseRandomWinner()","82ade466":"getWithdraw(address,address,uint32,bytes32[],uint256)","82ae2227":"createUser(uint32,uint64)","82af3526":"addGift(address,uint16)","82afd23b":"isActive(uint256)","82b00403":"finalFundGoalReached()","82b022e0":"set_species(uint256)","82b0444e":"CityMayor()","82b0627c":"changeFundingTime(uint256)","82b0862f":"addBps(uint256,int256)","82b1ad50":"totalPrize()","82b1b4f3":"WithdrawToAdmin(uint256)","82b1b617":"ViewSellOrder(address)","82b1fb0d":"setGlobalMultisigWallet(address)","82b2a559":"buy(uint256,uint256,address,address)","82b2e257":"getTokenBalance()","82b2f95f":"DEVELOPER1()","82b49248":"BlockOne()","82b57b96":"MONUMENT_UN_FEE()","82b58599":"WeiHash(address)","82b68f4f":"actionVotedRate()","82b74b89":"lockTransfers()","82b7b500":"find(string)","82ba614f":"setRound(uint256,uint256)","82bb326b":"isGoldMigrated(address)","82bbcc2c":"removeIdArrayItem(address,uint256[],string,uint256)","82bbd1fe":"setlastprize()","82bbdbec":"nameAvailable(string)","82bbe9cc":"getGameFee(uint256)","82bc07e6":"lastRound()","82bcd463":"DAKUToken()","82bcef79":"increaseAllowanceProxy(address,address,uint256)","82be0ccd":"distributeTokensToApprovedUsers()","82be415d":"BonusDealer()","82bf6464":"DAOrewardAccount()","82bf9a75":"setPip(address)","82bfa9f2":"upgradeStorage(address)","82bfc739":"reLoadXaddr(address,uint256,uint256)","82bfefc8":"TOKEN()","82c00a50":"getCourseLength()","82c0287e":"deleteEtherBox(address)","82c058d9":"showTrnsactionLog(uint256)","82c0652a":"calcMultiplier()","82c174d0":"preSigned(bytes32,address)","82c198ef":"fxpDiv(int256,int256,int256)","82c20f84":"preSaleBonus3Percent()","82c26c6a":"GOCToken()","82c30220":"Earthcrypt()","82c4175d":"privateRate()","82c48f9e":"_batchTransfer(address,address[],uint256[])","82c51376":"LENRCoin(uint256,string,uint8,string)","82c59c81":"getGameBlocks(uint256)","82c6b2b6":"OfficalHold()","82c7340e":"GetPlayerRound(address)","82c7bac7":"callOnExchange(uint256,bytes4,address[5],uint256[8],bytes32,uint8,bytes32,bytes32)","82c7bf2f":"Zigger()","82c7f4d6":"setMessagefromdovie(string)","82c8ac27":"DatCrowdPreSale(address)","82c8c76f":"blocktube(uint256,string,uint8,string)","82c9004a":"computeArtistGenesisSaleFee(bytes32,uint256)","82c97b8d":"collectReward(address)","82ca116d":"changeBankAddress(address)","82cac6df":"lastRate()","82cb08aa":"MoveToBase(uint256)","82cb9df9":"addrFinance()","82cbb2e4":"Dagelane()","82cbdc0f":"create(string,string,string,address)","82ccef76":"GameEnded(address,address,uint256,uint256,uint8,uint8)","82cdc0fb":"setRunTimeAfterSoftCapReached(uint256)","82cdc93e":"getPlayerInstWinning(uint256,uint256,uint256)","82ce6523":"IWasFirstShareToken()","82cee91c":"BonusPeriodFor(uint256)","82cf114c":"setProfitAddress(address)","82cf2116":"transferAndAuction(uint256,address,uint256,uint256,uint64)","82cfd1e0":"turn_flag_OFF()","82cfee4d":"BitcoinSapphire()","82d1407c":"calcTicketEarnings(uint256,uint256)","82d18650":"minPay()","82d1bc89":"Darks(address,address)","82d22377":"infraIndexToApproved(uint256)","82d288c2":"setMintingCurator(address)","82d29195":"FundingStageNum()","82d2dcfb":"UETH()","82d33374":"updateLastTransactionTime(uint256)","82d40041":"getAbilitiesForCollectibleId(uint256)","82d419f5":"fullUnlockAngelsAccounts(address[])","82d4685c":"setAllocations(uint256,uint256,uint256,uint256,uint256,uint256)","82d559de":"catchMonster(address,uint256,uint32,string)","82d5eb98":"playerIdToExtendedAttributes(uint256,uint256)","82d708c4":"dividendRecentBuyersPercentage()","82d74005":"YUPTimelock(uint256,uint256,address,uint256)","82d82983":"RuralBank(uint256,address[])","82d8dff6":"getMaxPrice()","82d95df5":"setStartDate(uint256)","82d9ac39":"percentForBounty()","82d9b9bb":"turnOffCanUpdateNextGameMinAndMaxBlockUntilGameEnd()","82db9bd4":"setCaissa()","82dc107d":"SECOND_TIER_SALE_START_TIME()","82dc1ec4":"addPauser(address)","82dc5c9d":"UnionChain()","82dc7836":"openGate()","82dc87b6":"RefundPeriodStart()","82dced63":"testHitPresaleCapPresale()","82dd6012":"_aremoveByIndex(uint256)","82dd87dc":"deleteUser(uint256,uint256)","82de6df7":"getGameBegin()","82deb6cd":"m_publiclyDistributedTokens()","82decb49":"_maint_setCustomSeed(uint256)","82dfc5f7":"WETH_ADDR()","82dfe1fb":"changeTreeAttributes(uint256,string,string)","82e2f767":"finalizedNextUpgrade()","82e3036c":"StandardToken(string,string,uint8,uint256,address)","82e37b2c":"getPlayerName(uint256)","82e380ef":"auctionInformation(uint256)","82e41258":"unregisterPrefix(string)","82e43a3b":"TheFrozenSolidShitCoin()","82e46b75":"setCoin(address)","82e5d073":"getRewardTokenCount()","82e615fc":"bidRegistry()","82e61d79":"PayoutDividends(uint256,uint256)","82e6bbd2":"onlyBouncerExecuteDelegatecall(address,uint256,bytes)","82e6d3d6":"foundationSupply()","82e77165":"_setAllKeys(uint256,uint256)","82e93309":"importGenesisPairs(address[],address[])","82e94ac5":"eject()","82e96916":"setCoinPercent(uint256)","82e97740":"initAffiliate()","82ea3985":"clearNextArenaTime()","82ea97b3":"tokensForIco()","82ebaec4":"distributeTEST(address[])","82ebe9ba":"photoData()","82ec5ddc":"BioToken(address,address,address,address,address)","82ec623c":"_noThrowImplements(address,bytes4)","82edaf94":"tokenContractAddress()","82ee27cc":"setCoinBalance(address,uint32)","82ee282b":"thirdBonusSalesEnds()","82eed60c":"pauseCrowdsale(address)","82ef351a":"getTotalMonster()","82ef6483":"RabbitCore(string,string)","82ef8fa8":"adminClaim()","82f0151c":"MetaHash()","82f0622a":"teamReward()","82f0b31c":"getLife(bytes32)","82f0d875":"makeHash()","82f128f7":"MJOYToken()","82f16872":"raffle_balance()","82f19e3a":"deltaTFunc(uint256,uint256,uint256,uint256,uint256)","82f1ec1f":"getActivityAccountInfo(address)","82f2045c":"getEntitiesCount()","82f2a164":"addCET6(uint32,uint32,uint32)","82f2d8d7":"moveMarketData(uint256[],uint64[],uint64[],uint128[],address[])","82f39e2f":"mktTokenCap()","82f43303":"roundMax()","82f4b3a8":"badgeIfFreeze(address)","82f4ef73":"getStageName()","82f56556":"udgradeAttack(uint256,uint256)","82f5a3e1":"withdrawTotalBalanceDonateWei(address)","82f5e31b":"convertFromWei(bytes32,uint256)","82f66ff0":"RabbitCoin(uint256,string,string)","82f68dc4":"rankOf(uint256)","82f7325e":"CRYPTOVENO()","82f768d4":"tokenbeneficiary()","82f78260":"acupuncturecoin(uint256,string,string)","82f8152c":"account2()","82f858e8":"addresses4(uint256)","82f867a4":"BpsToken()","82f8767d":"SuperPAC()","82f87fdb":"checkFundingStateFailed()","82f8b6e9":"roundInterval()","82fa3421":"push(uint256,bytes32)","82fa7f8b":"weiPerWholeToken()","82fa9c0d":"isPersonalBonuses()","82fac352":"getPricesOfLatestTradeRecords(uint256)","82fb3b7c":"voteNoLockByAdmin()","82fb63c7":"getImageCurrentRegionId(uint256)","82fbbe47":"Ticked(uint256,uint256,uint256)","82fbdc9c":"register(bytes)","82fc49b8":"setCosignerAddress(address)","82fd5bac":"getDeal(uint256)","82fe1e46":"JaneToken()","82fef47d":"addToLists(address,bool,bool)","82ffee45":"approveRemoveOwnerRequest2()","82fffde0":"get_articolo(bytes,bytes10)","830010f3":"setReferrerRewards(uint256[])","8300399d":"aqwsaqws()","8301cfec":"backVenusCoinOwner()","8301fb2e":"cashOutTank(uint32)","8301fb61":"userHasSmartSpeed(address)","830245e3":"sumICOStage7()","830321be":"PGUC()","83037b81":"checkInterest(address)","830402c1":"startGameGas()","83054b6a":"GetConsentDirectiveCount()","8305d1c3":"GGGToken()","830639ac":"isWhitelisted(address,uint256)","83076a73":"updateCfo(address)","83084b3f":"setNotInWhitelistAllow(uint256)","8308c786":"minBlockGap()","8308d7e9":"set(address,uint256,uint256)","830953ab":"claimAmount()","830adf56":"get_previous_user_recast_from_item(bytes32,bytes32)","830b3a1e":"setIsFixed()","830b6868":"getPriceCredentialItemId(bytes32)","830b6b87":"MyOffer(uint256,string,uint8,string)","830cbbbd":"redeemToken(address,uint256)","830ced52":"TIER_1_CAP()","830d0627":"giveCdpToProxy(address,bytes32)","830d77d4":"ETHERONEUM()","830e8e64":"callAmendment(uint256)","830ef41b":"transferERC20(uint256,address,address,uint256)","830f2935":"icoAgent()","830f3d8a":"Diploma()","83100580":"PriceWeekTwo()","8310d61c":"getLastGame()","83111397":"blacklistAddr(address[])","831121dc":"getLockedStateAddress()","83123f30":"setRole(address,bytes32,bytes32,uint256)","83123fa6":"coinsIssuedIco()","8312a886":"tokenValueCount()","8314b490":"earlyContribList(uint256)","8314dcb4":"unAuthorizeContract(address)","83150a93":"opetTokenBalance()","83160d71":"setPrices(uint256,bool)","8316394e":"allow(bytes32,string,address,bool)","83186be0":"startICO_w1()","83187cf4":"cryptaurRecovery()","8318e40b":"transferBcoupons(address,uint256)","83197ef0":"destroy()","8319da07":"setOwnerCut(uint16)","831a1754":"TOKENS_HARD_CAP()","831a1a3c":"ECPoints()","831aab01":"setData_15(string)","831aba43":"referralsOf(address)","831b19c2":"KOToken()","831b3f67":"convertDustToEther(uint256)","831bb4f2":"setAcceptedLegacyAugmintToken(address,int256,bool)","831c2b82":"getChannel(bytes32)","831d3e09":"offFreezing()","831dc22c":"CATCrowdsale(uint256,uint256,uint256,address,address,address)","831e0485":"twitterIdOfClaimerAddress(address)","831e1deb":"changeExchange(uint256)","831e6270":"isSaleFinalized()","831e80f2":"create(string,string,uint8,uint256)","831ed348":"clearJoinedCrowdsales()","831f5ad2":"remainBalanced()","831f750e":"claim(address,string,string)","832018aa":"BitSelectProtegido()","832048d4":"TokenLoot(address,address,address,address,address,address)","83206e78":"marriedAt()","83212e74":"updatePreSaleCloseTime(uint256)","83219a8a":"editMetadata(uint256,string)","8322fff2":"ETH()","83234aa6":"FileInfoManager()","8323550b":"TUSD()","8323bebb":"TokenSold(address,uint256,uint256,uint256)","8324a852":"partner(address,address,uint256)","8325229a":"playerWithdraw(address)","83253cfa":"cancelMarginCallOnBehalfOf(address,bytes32)","83255d6e":"getOwnProducts()","8327a313":"test_initialize()","832880e7":"getUser()","83289567":"meetingDate()","8328b610":"setStakingRequirement(uint256)","8328dbcd":"migrationAgent()","8328e032":"setStandardPackPrice(uint256)","8329ac52":"voteForCandidate(string,string)","8329df0a":"allowReferrals()","832a66a2":"purchaseCardinal()","832b0dc3":"testThrowOnTransferToNullAddress()","832b2c60":"specialManagerAddressNumberMap(address)","832b9eb2":"MANHATTANPROXY6THAVE()","832bc28d":"getPoolHistoryCount()","832bff3a":"setForkEndTime(uint256)","832df980":"lockEmission()","832e02ef":"getUpgradeValue(address,uint256,uint256,uint256)","832f6412":"getCenturion(uint256)","832f6924":"shuliang()","83315b6e":"CONTRACT_FEATURES()","83318574":"maxPreSaleStage()","83324e8c":"numGroups()","833270d8":"preIcoEnd()","833331e8":"totalJadeProduction()","8334278d":"reserves(uint256)","83343d80":"deleteItem(bytes32)","833472ba":"TCOCOIN()","83347622":"newTeam(string,string)","83349122":"crowdsaleIsOpen()","8334d195":"viewToken(uint256)","8334e170":"SellableToken(address,address,address,uint256,uint256)","83366ab0":"addBytes(bytes32,bytes)","8337077b":"returnToken(string,address,uint256)","83370c25":"FFFToken()","833747f8":"getLovers(bytes32)","8337680a":"getMyCommitmentCount()","833888f0":"LAF()","83393882":"contracteeWithdraw(uint256)","8339e153":"SETPointerToken()","833abf3a":"registerAssetProxy(bytes4,address,address)","833b4596":"testApproveSetsAllowance()","833be5d5":"getTotalLoans()","833c202e":"UNITTransferWhiteList()","833cde52":"SaleToken()","833cf6fc":"TransCompleteds(address[])","833d56c7":"doSwarm(address,uint256)","833ea306":"soldForThird()","833eaa8b":"incise(address,uint256)","833eccc5":"batch_transfer(address[],uint256[])","833f43c2":"refill(address)","833ffb63":"removeOverride()","83405ddb":"unstakeCommunityTokens()","83408d73":"burnRemainingTokens()","8340f549":"deposit(address,address,uint256)","8341f26c":"icoTokenLimit()","834292a3":"CanYaCoin(address)","8342a9d9":"crowdfund()","8343816d":"AcceptCastleOffer(uint256)","8343e416":"asideTokensHaveBeenMinted()","83442b1e":"opt(address)","834472a5":"buildICOStageOne()","8344d26d":"TryUnLockCreatorBalance()","834614dd":"freeSub(address,uint8,bytes32)","8346378b":"transferBenship(address)","8346aa47":"spentParsecCredits()","8346d3c6":"MultiVesting(address)","8347a0d1":"issueTokenAndTransfer(uint256,address)","8348bfb9":"setICOAddress(address)","8348cf1e":"authorizeAmount(address,uint32)","8348d71f":"strConcats(string,string,string)","8348fe61":"createCenturion()","83492ff1":"deletePrice(string,string,string)","83499fdf":"BitcoinRed()","834b1aa1":"m_owner20()","834be978":"getRewardedSumByRound(uint256)","834c3351":"getGoldDataWeight()","834c6c84":"setCCH_edit_19(string)","834cc6fc":"createEscrow(address,address)","834d42c6":"serverForceGameEnd(uint8,uint256,uint256,int256,uint256,uint256)","834e0565":"GiveRNG(uint256)","834e476f":"newAuctionID()","834e6261":"CreateICO(address,uint256)","834ee417":"start_time()","834eebe8":"calculatePremium(uint256,uint256,uint256,string,string,string)","834f199d":"_calculateRequiredManaAmount(uint256)","834f54d0":"CarPark()","8350dfaf":"fetchdivstopot()","8350eb5e":"getHashInDataObject(bytes32[])","835164a0":"INBCToken(uint256,string,string)","8351a0d4":"getCumulativeProfit()","83525394":"NONE()","83537b5f":"test_threeValidEqInt()","8353bb51":"ROLE_STATE_PROVIDER()","8353c9c8":"SetFreezingEvent(address,uint256,uint256,uint8)","8353ffca":"Withdraw(uint256,address)","835409f0":"InfimonkCoin()","835436b4":"evictWorker(address)","835592f8":"passed(address)","8355c263":"frozenMinDeposit()","8355e15c":"withdrawTokens2(uint256)","8356027e":"unfrozenTokens()","83563dc6":"_getYear(uint256)","83565503":"setMember(address,bytes32,address,bool)","83565cc7":"additionalAction(bytes32,uint256[])","8356a5b5":"weekOneStart()","8357417d":"WithdrawDevFunds()","8357c2f0":"setAmountToReceive(uint256)","835850f9":"_bytesToAddress(bytes)","83586713":"computeResult(uint32,uint32)","835939d5":"vote(address,bool,string)","8359f045":"range(int256,int256,int256)","835a749d":"partialRedeem(uint256,address[])","835ac5ce":"softcapUSD()","835b3720":"setGeneKind(uint8)","835b42fc":"testThrowUpdateLatestRevisionNotUpdatable()","835b862f":"OneGameToken(address)","835bbd55":"reserveTokens(address)","835c1154":"checkInvestments(address)","835c19f3":"receivePayment()","835c6386":"isPurchasePossible()","835c853b":"notaryFee()","835cb53b":"MAXIMUM_NON_WHITELIST_AMOUNT()","835d2d2e":"executeTransfer()","835e119c":"availableSynths(uint256)","835e33e7":"DianJingToken()","835e98d7":"bonusShare()","835eb9f8":"ShieldNetwork()","835ec6ef":"CreateDDFT(address,uint256)","835f6775":"setBonusesForAmounts(uint32[],uint32[])","835fa3ac":"icoSuccessful()","835fc6ca":"withdrawal(uint256)","835fcab3":"NAME_HAWKING()","836028a2":"disputeOpen()","83607b02":"calculateDevCut_(uint256)","836115fe":"unlockedTokens(address)","83617782":"startLive()","83624c17":"getPartyA(bytes)","83627b8e":"getEmployeeId(address,address)","8362f6eb":"balanceSender(address)","83634ad7":"fnv(uint256)","83636209":"RecoveryKeccak256(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","83638710":"getOwnerOf(uint256)","83638c12":"GCOIN()","83640881":"getTokenOrdersLength()","8365172c":"num_levels()","8366437d":"RegisterUser(bytes32,bytes32[8])","83664dd3":"substituteManagerContract(address)","8366ee2b":"getPayeeLenght()","83672f3e":"setWallets(address,address,address,address)","8367e120":"apiUrl()","836826a6":"highestBet()","83685488":"TECHToken()","836880d3":"softcapAchieved()","8369ff08":"log2ForSmallNumber(uint256,uint256)","836a1040":"mint(uint256,address,uint256)","836a107f":"removeFromKYCList(address)","836a1e23":"collectExcess()","836adfd9":"libbibatchbacktest(uint64,uint32[],uint64[],uint64[],int64[],int64[])","836b680f":"createProductionUnit1()","836c67d7":"BAC()","836cca1d":"privateIcoMax()","836d6d66":"WeeklyLotteryB(address,uint256)","836d8b2a":"SolusPlatform()","836d9665":"removeUsersWhitelistA(address[])","836dea0b":"myEther()","836e4158":"numOrdersOf(address)","836e643f":"endStake(address,address,uint256)","836e8180":"round1()","836e9431":"updateUsersList()","83711c70":"ContributionResolved(bytes32,bool,address,address,uint256,uint256)","83714834":"factorial(uint256)","83714b27":"_safeMul(uint256,uint256)","837150cf":"paused(bool)","837197b2":"sendTokens(address)","8371e1e9":"rescale(int256)","83725a91":"Payment(address,address,uint256,uint256,address,uint8,uint256)","837356b1":"doNotAlwaysRequireCosignature()","837381fa":"withdrawFromContract(address,uint256)","837386ca":"candidateXPAAssets()","83739eda":"allocationsInitialised()","8373ae71":"cancelTradeOffer()","837564dd":"CNotes(string,string,uint8,uint256,uint256)","83771e56":"BSCToken(uint256,string,uint8,string)","83773de8":"_transfer(uint32,address)","83781340":"registerTradeProfile(bytes,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,bytes,uint256)","83786f8c":"getBalanceOfToken(address)","83788fce":"nextBlock()","8378ce42":"readStamped(bytes32)","837929b6":"getEventful()","83794502":"payForTask(uint256,uint256)","8379d75b":"BDC()","837a7ba5":"testThrowTransferDisabled()","837a8eb3":"CATWithdrawn(uint256)","837ada41":"cens()","837b68c8":"requestTokenExchange(uint256)","837cfb34":"LADYCoin(uint256,string,string)","837d52d8":"RAIT()","837e4cd9":"getNameAndAge()","837e60e6":"removePA(uint32)","837e6a94":"setOverride(address)","837e7cc6":"rollDice()","837f1bf7":"_appendTagged(string,string)","838006c0":"OwnableOZ()","83804c69":"verifyTransaction(bytes32,uint256,address,address,uint256,address,address,uint256,bytes32,bytes32,bytes,bytes)","8380edb7":"isUnlocked()","8381ada3":"GOLDEQ()","8381f58a":"number()","83829bf1":"Involve()","8382a574":"Factory(address,bytes32,address)","8382b460":"getSlashRewardPart(bytes32)","83835c01":"accuracy()","8383671b":"mintTokens1(address,uint256,uint256,bytes32)","8383bfc8":"EscrowFoundry()","83841e0c":"change(string,string)","838445e8":"EtherAds(address,address,address)","83852cf6":"setEnablePurchase(bool)","8385fa0f":"ESCROW_WALLET()","838661eb":"unfreeze_periods()","8386927a":"ToSponsor()","83876bc9":"newProposalInWei(address,uint256,string,bytes)","83879c15":"cooRemoveManager(address)","83894548":"getTokenBalanceOf(address)","838985d7":"gymFee()","8389f353":"setNumCities(uint256)","838a05e4":"part20Transfer()","838a48d6":"disableBlackListForever()","838bdce2":"team3Token()","838c29b6":"checkInterval()","838c63b7":"avgRate()","838ca346":"currentFunds()","838d6e05":"getChannelInfo(uint256,address,address)","838eb17e":"takeSnapshot(uint256,uint256)","838f0602":"SOLEToken(address,uint256)","838f5165":"refundFor(address[])","838f7f94":"getTotalAmountOf(uint256)","839006f2":"rescue(address)","8390b02a":"rfindPtr(uint256,uint256,uint256,uint256)","83914275":"getUserBonusBalanceByType(address,bytes1)","83917229":"_createGameItem(string,address,uint256,uint256)","8391a1c4":"get_table_size(uint256)","8391e45c":"dividendsOwing(address)","8391e48d":"WCoin(uint256,string,uint8,string)","83924dea":"MyTestToken(uint256,uint256,string,string)","83944a4b":"CreateWTE(address,uint256)","839484a7":"Iou_Token()","8394f639":"SimpleExchange(address,uint256)","83955bb2":"SpecialPurchased(address,uint256,uint256)","8395aa94":"PLATINUM_AMOUNT_SKL()","83960e3c":"importTokens(address,uint256,address)","8396392d":"add(string,string,string,address)","839655c8":"BetOnHardFork()","83973dc3":"withdrawBAT()","83975e7d":"PapaBearToken()","83979803":"setNewRateLevel(uint256,uint256)","8397a260":"getAction(bytes,uint256)","8397cc94":"tokenFallback(address,uint256,bytes32)","8397f3bc":"isBonusPayable(address,string,uint256,uint256,uint256,uint256)","839849c0":"changeBaseMultiplier(uint256)","83985082":"disarm()","839930ba":"getMinimumBet()","839972f9":"lockToken(address,uint256,uint256)","83999223":"release_all()","8399f93f":"reservedFund()","839a01be":"privateLockedAmount()","839acf14":"buyMonument(uint256,uint256)","839affc3":"batchDepositTokenTo(address[],address[],uint256[],uint256)","839b2386":"ReverseRegistrar()","839b240e":"setHardCapCrowdSale(uint256)","839b913e":"getTargetReportsPerLimitedReporterMarket()","839daf1d":"migrate2(address,uint40,uint40,address,address)","839dbbb1":"iconicsCount()","839df945":"commitments(bytes32)","839ea3c4":"startVotingTeam(uint256)","839ff719":"FML()","83a076be":"gift(uint256,address)","83a07765":"drawTicketCount()","83a18678":"total_racers()","83a1a3aa":"setC4FContractRequesterLock(address,bool)","83a1a4f2":"YesNo(string,string,string,string,string,string,bytes32,address,string,address,uint256)","83a1f52a":"GetManifestoByCategory(string,uint256,uint256)","83a287dd":"closeGame(bytes,address,uint256,uint256[],bytes,bytes)","83a37262":"stopQueueing(uint256)","83a41f93":"descentX()","83a4f2f5":"whitelistOperators(address)","83a51213":"takedaily(address)","83a51ad0":"oraclize_setConfig(bytes32)","83a6595f":"setMinDonation(uint256)","83a68993":"gameOp()","83a6ad6b":"grantAccessDeploy(address,address)","83a6b565":"payCommission(uint256,uint256)","83a7b701":"masternodeRegister()","83a9094f":"PRICE_RATE_THIRD()","83aa4958":"getContributeAmount()","83aa9985":"ownerTwo()","83ab12e7":"Auctions()","83abd7e2":"removeIdentifier(address,bytes32)","83ac44e6":"marketingAccount()","83ac4ae1":"_sendWinnings()","83ac98fe":"transfer_Different_amounts_of_assets_to_many(address[],uint256[])","83ae0839":"ETNToken()","83ae5266":"addCertificate(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,string,bytes32[],bytes32[])","83ae62c4":"_frozeAmount()","83aec57c":"getUsersForDate(uint32)","83af3c40":"getRemainingTokenAmount()","83b01a83":"updateTAOContentState(bytes32,address,bytes32,uint8,bytes32,bytes32)","83b14c0a":"toAddr(uint256)","83b23b40":"cEthereumlotteryNet()","83b2c476":"updateLibrary(address)","83b2d77f":"signFact(bytes16)","83b3999a":"addToAddresses(address,address)","83b3c85f":"pecul()","83b40eb7":"creditEqually(address[],uint256)","83b47a4d":"whitelist_addys(address[],bool)","83b4918b":"reinvest(uint256)","83b49485":"BurnablePayment(bool,address,uint256,uint256,string,string)","83b58323":"setTransferFeePercentage(uint256)","83b5ff8b":"ownerCut()","83b60a33":"transferToken(uint8,address,uint256)","83b665b9":"purchase(uint152,uint256)","83b83c1c":"setOpGas(uint256,uint256)","83b8b9f0":"ForceCloseContract()","83b8c8f6":"bonusLevel100()","83b9e9f7":"train3(uint256)","83ba3a97":"sendTeamSupplyToken(address)","83baa6f4":"presaleopeningTime()","83bd5f42":"distributeDevCut(uint256)","83bd72ba":"stopGame()","83be9d54":"placeBet(bytes32,address)","83bebcc2":"changeSellPriceForAthlete(uint256,uint256)","83bebced":"_rate()","83bf1cbc":"delayDefaultRelease()","83bf4609":"createTemplate(string)","83c08784":"Incrementer3()","83c0dd25":"LogNewAllocation(address,uint256)","83c10844":"percentLeftFromTotalRaised()","83c17c55":"setFactoryAddress(address)","83c1f2e6":"unlb()","83c218c2":"oraclizeId2proposalId(bytes32)","83c28ddc":"getRefundAmountForFunder(address)","83c28ecc":"getTokenWithdrawHold()","83c3bd6b":"isEqualLength(address[],uint256[])","83c4c2e9":"makeSuccessor(address)","83c4cc46":"StartCrowdsale(address,address,uint256)","83c51a38":"thesimplegame()","83c56fc8":"dailyTotals()","83c592cf":"stake(uint256,bytes32)","83c5e3c9":"removeBRA(address)","83c68f48":"AIChain()","83c6aa47":"arrangeUnsoldTokens(address,uint256)","83c75ed5":"setGatewayB(address)","83c7d7c1":"sumMultiplayer()","83c7f14c":"bytesToBytes4(bytes)","83c81bec":"Arbiter(address)","83c99722":"lockforTransfer()","83ca8632":"_getCrabPartData(uint256)","83cb2fee":"INITIAL_SEED_FARMING_AMOUNT()","83ccc2b5":"_0xBitcoinCash()","83ccc8b8":"getEtherContributed()","83ccdcc3":"detailsOfWindow()","83cd5e13":"debug_multiplehash(uint256,uint256)","83cdb517":"transfer_to_0(uint256)","83ce63b5":"doRouletteBet(bytes,uint256,bytes32,bytes32,bytes32)","83ce8a61":"changeMPO(address)","83cfab42":"unFreeze(address)","83cfbd7f":"revokeOwnership(address)","83cfc5f2":"changeNameRestricted(string)","83d158f0":"ShadowToken()","83d2421b":"setWorkerPort(uint256)","83d4f946":"round0EndTime()","83d51a38":"concatString(string)","83d52f36":"OpenAIChainToken()","83d53895":"interfaceSupported(address,bytes4)","83d6236c":"amIin()","83d66353":"LotteryGames()","83d67fc1":"_addAddressToGrantAccess(address,uint256)","83d7529f":"reservationFromBackend(uint256,bytes32,address,uint256,uint256)","83d852d9":"shutdownTransactions()","83d880d0":"setParticipationCap(address[],uint256)","83d8a90f":"theDonkeyKing()","83d8bae3":"listItem(uint256,uint256,uint256,address)","83d8e480":"registerCoin(address,string,string)","83da4d86":"ApolloCoinToken(uint256,uint256,address,address)","83db0680":"TOTALSHARES()","83db1548":"addPost(uint256,uint256)","83db8e31":"HMCToken()","83dbb27b":"invalidOrder(address)","83dbc55b":"verifyXOR(bytes32,bytes32,uint8)","83dbff4b":"get_first_item_in_state(bytes32)","83dc077d":"acceptContribution()","83dcecd3":"CompanyTokensIssued(address,uint256,uint256)","83dd7aa4":"setBankName(bytes32)","83de6ed6":"changeStageTwo()","83dea2a8":"renounceExcluded()","83df762f":"BDayToken()","83df7d21":"updFreezeEnabled(bool)","83dfd040":"isPresaleFull()","83dfe5fd":"C()","83e03c3d":"HumanERC223Token(uint256,string,uint8,string)","83e06ead":"setPercentages(uint256,uint256,uint256,uint256,uint256)","83e07382":"setMovePermissionStat(bool)","83e19248":"afterStart()","83e19a95":"MANAGEMENT_LOCKED_PERIOD()","83e1bb4f":"dequeueIngot()","83e219eb":"removeFromTotalSupply(uint256)","83e256dc":"gameIdGame(uint256)","83e2a0c4":"joinGame(address,uint256,address)","83e3607c":"fourthBonusSalesEnds()","83e48d43":"_sptc(uint256,uint256,uint256,uint256,address)","83e49c53":"burnWithData(address,uint256,bytes)","83e4eed0":"apply(string,string)","83e5cb26":"ownerAddCeo(address)","83e78b31":"bet(uint8,bool,uint8)","83e7f347":"ICOBank()","83e811a6":"founderLockup()","83e83b54":"payBounty()","83e8dbb8":"calculateSaleAmount(uint256,uint256)","83e99a93":"balanceOfUnclaimedTT(address)","83ea0620":"packageExists(string)","83ea5111":"MESH(uint256)","83eb7257":"companySupply()","83eb72ac":"getStrandDescription(uint256)","83ec0648":"BlockStackCoin()","83ec0bd2":"showPeopleInQueue()","83eca581":"setReferrerReward(uint256)","83edf023":"totalWeiRecieved()","83eed3d5":"queryN(uint256,string,bytes)","83eeecc0":"ethInWei()","83f0b184":"calculateMaxContribution()","83f0bb45":"_getPartSkillLevel(bytes,uint256,uint256)","83f11daf":"SetCandidatePrincipal(uint8,uint256)","83f1211b":"transfersLocked()","83f12f91":"grantFounderTokens(address)","83f12fec":"batchTransfer(address[],uint256)","83f13e7f":"setNewDividendContract(address)","83f2a8ca":"dividendsCalculated()","83f3c3df":"PaymentGot(bool)","83f537cc":"LendingBlockToken(address)","83f57fd7":"_addDemoc(bytes32,address)","83f5b46f":"refSystem()","83f5e360":"_unpackClassValue(uint256)","83f66212":"getTop11_20Messages()","83f6cc69":"transferAllowedOf(address)","83f6d9a4":"validateNameInternal(string)","83f7a095":"setCoefficient(bytes2,string,uint256)","83f7b8e1":"getNumberOfPhotos()","83f7e2d7":"reduce(uint256)","83f94db7":"upgradeImplementation(address)","83f95f13":"openClaim(string)","83f9a788":"BlockTubePrepaid(address)","83fa07fd":"fechAllCandidates(uint256)","83fa2039":"Dealer(address,address)","83fa7e02":"isSiringClockAuctionStorage()","83fa87f2":"activateAdSlot()","83fae425":"setPresaleAllocation(address,uint256)","83fb42ba":"proposeBurning(uint256)","83fbbc7a":"OnlineSocialChainToken(uint256,string,uint8,string)","83fbc2b4":"weiRised()","83fc58b4":"tranferOwnership(address)","83fcafbb":"GetPrizeFund()","83fcb85e":"revertFunction()","83fcf308":"getPropertyRating()","83fcf973":"unlockVestedTokens()","83fcfafe":"LooqCrowdsale()","83fd65d8":"setETHExpectedFee(address,uint256,uint256)","83fd8a64":"CBCK(uint256,string,string)","83fe05f1":"PutFreeEther()","83fe10e4":"isMetered()","83fee16d":"finalizeUpdate(uint256,address)","83ff0189":"buy_tickey_free()","83ff1bb6":"approve(string,uint8)","83ff5bf2":"Bittobit()","83ff9bec":"petCardDataContract()","8400c307":"isRecipientAllowed(address)","8401824f":"compactFraction(uint256,uint256,uint256)","84019cae":"WOWToken()","8401e614":"lengthOfPermissions()","8401f8d1":"addMultipleToWhitelist(address[])","8402181f":"pull(address,uint128)","8402ac99":"firstYearEnd()","84035e07":"amendEarlyPurchase(uint256,address,uint256,uint256)","8403be91":"isAppRegistered(address)","84048497":"listMultipleItems(uint256[],uint256[],address,bytes32[])","84054d3d":"cashout()","8406ab82":"deleteGame(address)","8406c079":"relayer()","84073164":"transferFromPie(uint256)","84083c89":"addWhitelistUser(address)","84086357":"crowdfundFinalized()","8408643a":"getBlockTimestamp32()","840880f2":"TeamLockingPeriod18Months()","8408cb9d":"setPreICOPrice(uint256)","840aab14":"_hasName(address)","840b7403":"computePayout(uint256,uint256)","840bc19c":"NON_PAYABLE_AMOUNT()","840c0ca9":"setMaximumClaimPriceWei(uint256)","840c401f":"pruneRestrictStock(address,uint256)","840cfffd":"burnIndexedByAddress(address,uint256)","840d7fb6":"createLottery(address,string,string,uint32,uint32,uint8)","840dea74":"COMBINED_WEI_GOAL()","840e2673":"startTransferTime()","840e78fd":"projects(address)","840eb43e":"removeLicenseTerms(bytes32,bytes32)","84100d5c":"selectRandomTrait()","841016d0":"setAdditionalOwners(address[])","8410956a":"initialise(address,uint256,uint256,uint256,uint256,uint256)","84109e50":"setTiimKyberGoAddress(address)","84120645":"setMasterRewardsPercent(uint256)","841237b7":"Wallet9()","841244a8":"FeedCreated(uint256,string)","84125e0b":"withdrawBalancesToNFC()","84126e01":"cancelPayment(string)","841302ce":"getHash1(uint8[5],uint8,bytes32)","84132cf5":"deposit(address,uint8,bytes32,bytes32)","84140c40":"delFromVestMap(address)","841410cd":"maxETHContribution()","84160ec0":"getAddressesAccounts()","84168c01":"tradesUnlock(address)","8417fa2f":"goPublic()","8418cd99":"contribute(address,uint256)","8418dc36":"teFoodsAddress()","84191f62":"changeController()","8419604e":"SendingBounty(bytes32,uint256,address)","8419c986":"foundTime()","841a12bd":"setKittyTokenAddress(address,address)","841b4cd8":"registerForRaffle3()","841baf2c":"m_tokensClaimed(address)","841d0ac3":"init_daylimit(uint256)","841e6ce9":"betFee()","841eb7f8":"paymentRewardTokens(uint256)","841efac4":"updateFieldss(uint256,uint8,uint256)","841f3729":"howManyTokensAreReservedForMe()","84219204":"minVotedTokensPerc()","8421ec8a":"MyCash()","842249cb":"weiTotalReceived()","8422927d":"cancelPayment(uint256)","8422b3bf":"RailzToken()","8423157b":"getWinAmount(uint256,uint256)","84248a51":"changeDrawFee(uint256)","84249ed0":"manualBuyPrice(uint256)","8424b40d":"setLotteryCore(address)","8424f952":"IMEIM()","84268051":"payoutToOwnerIsLimited()","84269ed9":"transferFrom(address,address,uint32)","8426a452":"getSellingItem(uint256)","84270db0":"selfdestructTokens()","84281dcc":"isBalanceSufficientForContractCreation(address)","8428cf83":"recoverAddress(bytes32,uint8,bytes32,bytes32)","84297029":"getIdxBatchByUsername(bytes20[])","84298882":"setLogo(uint256,string)","842a6415":"DTRC()","842acf9d":"mintDSBIToken(address,uint256)","842b6357":"checked_in()","842b8efa":"FailedMarking(bytes32,bytes32,uint256,int256)","842bc37b":"GetSmallCotractIndex(address)","842bfad2":"updateParticipantCapTier2(uint256)","842c17be":"firstStageMinted()","842c45c5":"ROBIES()","842e062f":"p_setCurrentRoundJackpotPercent(uint256,uint256)","842f10d1":"dropMultiple(address[])","842ff2bd":"numPolls()","84300859":"setTokenUnlock()","84304ee5":"chronus()","84311353":"totalAmountOfPurchasesInCny()","84313086":"divCutMaster()","84317008":"setprice(uint256,uint256)","84317143":"INITIAL_EARLYBIRD_TOKENS()","84321b41":"ligerAdminAddress()","843296d6":"DealCancelationReason(uint256,address,uint32,uint32,uint256,string)","8433acd1":"collectTokens()","8433d6f2":"from_Initialisation_to_cycleDeVie()","84344415":"chargeMoney()","84345b35":"createRandomZombie_ZOB_goldpack()","8434c80d":"cleanArray(uint256[])","843545be":"getPrinciple(uint256)","843584f1":"log_recast_fees(address,address,uint256)","8435be4b":"getLastFarm(uint8,uint8)","8435da61":"getTile(uint16,uint16,uint8)","8435f147":"bytes32Func(bytes32,bytes32)","8436bd4e":"MintyMcCringleToken()","84370813":"subscribe(uint256,uint256)","8437b2a5":"tier(uint256,uint256)","84385c6f":"assignOperator(address)","84386004":"channelsSold()","84394e6f":"addValidation()","8439f80d":"accumulatedBalanceOf(uint256)","843a7f74":"getCKNPriceNow()","843aa0db":"insert(uint256,uint256,uint256,uint256)","843ad7b5":"dailyMintable()","843b1a09":"spendNonce()","843b4386":"addComment(string)","843bd641":"itemExists(uint256)","843cbae4":"EtherBattleCoin()","843cfb9e":"vestingTotalPeriods()","843e240e":"getAuditContractUri(uint256)","843e8d27":"downVote(bytes12,bytes12)","843fcf90":"EOSGold()","843ff6f6":"getTitulaire_Compte_7()","8440b3b0":"BUY_INCREASE()","8440d167":"getCategory(address)","84413b65":"airdropAddress()","8441f89e":"deleteWitness(address)","8442171d":"bonusLimit2()","84429480":"TokensBought(address,uint256,uint256)","84429579":"getRunningTokenPairs(address[])","844323fa":"xtime()","8443f07c":"UVIDIFYTOKEN()","8444b391":"getUpgradeState()","84465fa5":"changeFeeOwner(address)","844669b3":"accountC()","844706a6":"UsdCapUpdated(uint256,uint256)","84477036":"tempTokensBalanceOf()","8447c02f":"takeAGuess(uint256)","8447c4fa":"LibraToken()","84488126":"isForceExecute(address)","844891a0":"ABTCETHER()","8449129e":"EthereumNova()","8449133b":"initQuoteBalance()","84491566":"getPrevRoundWinnerCount()","8449b0af":"PRICE_MULTIPLIER_ICO5()","8449d772":"withdrawM5()","844bdea4":"LhsToken(uint256,string,uint8,string)","844c3edc":"setThresholdSendToSafeWallet(uint256)","844c4264":"cycleEndTime()","844c7d95":"updateBalances(address,bytes32,string,address,uint256)","844d38ee":"view_get_Gains()","844d65c5":"whitelistedMax(address)","844dbf67":"RecurringPayment(address,uint256,uint256,address)","844e774d":"joinraffle()","844e89a9":"Unregistered(bytes32,uint256)","844ea6f9":"E25()","844ef097":"bridgeValidatorsOwner()","845051d3":"testContractsNotNull()","8450b12e":"getSupplyLimit(uint16)","8451738d":"rentHo(uint256)","8451d312":"showAllFunds()","845238fe":"lookup(address[],address,address,bool,bool)","84533794":"setEthRate(uint16)","845381c0":"FailedVote(address,string)","84539789":"useNeonMarbles(address)","8453a8c8":"Factom()","84545ef8":"setRegionPurchasedPixelPrice(uint256,uint256)","8454665d":"startingInsuranceBalance()","84553e16":"AccessAddress(address)","8456cb59":"pause()","84570d0d":"assertEq5(bytes5,bytes5)","84571235":"minimum_bet()","84585099":"TransferTo(address,uint256)","8458644c":"play(bytes32,address,address)","845890c3":"buyATR()","8458bd70":"getHp(uint256)","8459857f":"mentors()","845a51ec":"rewardPoolAddress()","845a7468":"getStakersAndAmounts()","845ab425":"getProjectDescription(uint256)","845b6aca":"buyBasicCards_Migrate(address,uint256,uint256)","845c8801":"checkHasPermissionForPack(address,address,uint256)","845d586f":"publicTransfersEnabled()","845dcc2b":"_isSoldOut()","845e76b3":"getStudentArray(bytes32)","845eaedb":"SmartVows(string,address,address,string,address,address,string,string,string,string,string,bytes,bytes)","845ec8de":"FOUNDER_EXCHANGE_SHARE()","845f5593":"initStages(uint32[],uint32[],uint128[],uint128[],uint128[],bool[])","846030a0":"hasClaimableShares()","84605d0d":"total_iou_withdrawn()","8460a9d9":"suicideSend(address)","84610618":"registerRequest(int256,int256)","846153b5":"registerAddresses(address[])","8462151c":"tokensOfOwner(address)","84622425":"onlyPrimaryMock()","8462df7f":"diff(uint256[],uint256)","8463bcf5":"countClients()","84644ec9":"addPromise(uint256)","8464878d":"emergency_used()","84653605":"DateCoin(uint256)","84658e2a":"sendtoken(address,uint256,address,uint256,address,uint256,address,uint256,address,uint256,address,uint256)","846639dc":"currentAwards()","8466c3e6":"aa()","846786f1":"openIco()","8467d9cf":"refundPayment(uint256,uint32,uint32,uint256,string)","8467f7cb":"resetContract(uint256)","84682fbb":"auxWorstPoints()","84691cd8":"grapesToProduceBottle()","84696810":"winningCountry()","846a09e1":"AddAuthorityAddress(address)","846a284e":"_addTicket(address,uint32,uint8)","846a5dde":"delayPayment(uint256,uint256)","846b055a":"startCrowdfund(uint256,uint256)","846b0ef0":"proxiedContribution(address)","846b23d4":"getEmployerInvoicesByStatus(address,address,uint8)","846b68e3":"MERCULET()","846e5851":"LogStudentUncertified(address,uint256,address)","846e832d":"getStateAt(uint256)","846e980d":"setFreeLobster(uint16)","846f1185":"sendEthProportion(address,bytes,uint256,uint256)","846f652b":"getSpawned(uint32)","8470ffd6":"_transfert(address,address,uint256)","84716854":"investInCharger(uint256)","84734476":"copyBytes(bytes,uint256,uint256,bytes,uint256)","8473e55f":"amountForSale()","8475bfed":"div18(uint256,uint256)","8475f6f9":"getPublicKeyG()","8476f105":"Menu08(uint256)","847760ee":"getArtToken(uint256)","847778ad":"edit(address,address)","84780009":"getFinishStatus()","84788f01":"mvnperethBonus()","847927ed":"icoEtherMaxCap()","847a1ca6":"raiseSellOrderCreated(address,uint32,uint32,uint80,uint256,int160)","847a5e99":"getPlayerStats()","847af92c":"setMintMode(uint256)","847bd61c":"processPurchase(uint256[])","847c096d":"removePresaleContributor(address)","847d97ab":"add(string,address,string,uint256)","847dc0a7":"percentageETHReserve()","847dc59e":"MicoinToken(uint256,string,string)","847dd67c":"buyEth(uint256)","847e09f2":"TOKEN_HARDCAP()","847e12c4":"FixyNetwork()","847e27d9":"wanToken()","847e2ba1":"revokeAccessMint(address)","847ec2de":"totalBunny()","847eefb6":"ICOHardcap()","847f2177":"Electron()","847f4a88":"stopSaleType(uint8)","847f8a10":"Refund(uint32)","8480021c":"crowdfundDeadline()","8480544e":"getCAOAmount()","848125ea":"issueBlockReward()","8481573e":"contractBalanceOf(address)","8482167e":"makeCall(address,uint256,bytes)","84837981":"BTCT()","8483dfcc":"isOverflow(uint256,uint256)","84841523":"Buttcoin()","8484dc24":"removeEmissionProvider(address,uint256)","8484ff59":"setTokenCollectable(bool)","8485b90c":"proposalAuthor()","84861e93":"auctionState(uint256)","84869679":"isDistributionDue(address)","8486d444":"_getUsdAmount(uint256)","848784e5":"transferPreSigned(bytes,address,uint256,uint256,uint256,uint256)","8487b73a":"Milestone_BankLicenseFailed(string)","84883795":"ico_rejected()","84885ed6":"getData_19()","8488e58a":"setReturnableToken(address)","848a0327":"dividendForYearly()","848a2130":"releaseChecksum(uint8)","848b3821":"fundingCapReached()","848b86e3":"updateWallet(address)","848c0a39":"buildLeft(address,uint256)","848dd14e":"CostStuff(address,uint32,uint256)","848e3442":"automaticThreshold()","848efb3d":"rentOut(uint256)","848f002f":"setBoolF1F2(bool,bool)","848f1470":"disableRefundPeriod()","848f6d8d":"OneBroGlobal()","848faed7":"BAI20()","84900b04":"whitelistContract()","8490d598":"wholeTokensReserved()","8491b49c":"rain(address[],uint256[])","84922374":"isDistConfig()","84924b60":"findAndPayTheWinner()","849292bc":"emitStateContractChanged(address)","8492aa9c":"getAddressNickname(address)","8493407b":"CorporateNews(uint256,string,uint8,string)","84934e40":"DappUpgraded(address,address,address)","8493a06e":"returnLongTokenAmount(address[3],bytes32,uint256)","84941984":"_removeTokenFromPartition(address,bytes32,uint256)","8497a8d8":"ESCToken()","84987faa":"getNodeRightChild(bytes32)","8498f706":"EthPalace()","84995370":"TheFoolRareToken()","8499bc63":"GeneBlockChainUserIDs(address)","8499ee3a":"newToken(string,uint8,string)","849a7337":"approveBountyTransfer(address,address)","849a7cb7":"convertBytes4ToArray(bytes4)","849aaf8e":"minimumValue()","849ab974":"HasOwner(address)","849ae5ea":"isBlockpassInvestor(address)","849bb2db":"withdrawServiceFee()","849cf588":"addSynth(address)","849d0d24":"TVCrowdsaleContract()","849d16d2":"BffDoomToken()","849d926b":"parseBlockHeader(bytes)","849e3dcd":"SangusToken()","849e6b17":"MakeBuyOrder(bytes32,address,uint256,uint256,address)","849e961a":"ICO_PRE_SALE()","849f94bf":"getMatchIndex(uint8)","84a014d8":"oneTimeSold(address)","84a0f604":"transferMultipleDifferentValues(uint256[],address[])","84a11df9":"ismaster()","84a1f5a5":"claimTokensFor(address[])","84a2f00b":"order(bytes32,uint256,uint256)","84a2f5a4":"MoonDust()","84a34caa":"BaseMPHToken()","84a37273":"addTransaction(address,uint256)","84a429a0":"createDklSiringAuction(uint256,uint256)","84a438de":"Course(string,string,uint256)","84a4974c":"MintAndTransferEXH(address,uint256,bytes32)","84a6469a":"setNewMintRequest(address,uint256)","84a64c12":"cancel1(uint256)","84a68690":"withdrawRequest(uint256,uint256,uint256,uint256)","84a6a68a":"releaseTeams(uint32,uint32[])","84a7b223":"Canary(address)","84a80c6b":"getB0()","84a83662":"changePassword(string,string)","84a97ab7":"removeAddressFromAccount(address,address)","84a9b91c":"capWEI()","84a9d711":"assertThrows(string)","84ab2cdb":"byte_to_bits(bytes1,uint256)","84ac33ec":"deregister(address)","84acdae7":"getAuctionStartBid()","84ad6ff3":"ReversibleDemo()","84ad8e8f":"discountPrice()","84aeb4f0":"getTokenContribution(address)","84afaa7c":"getReceiptAmount(uint256)","84afb526":"marketor()","84afd121":"bytesToUint2(bytes)","84b06191":"CampaignAccount(address,uint256)","84b08d41":"partner2_signed()","84b0e001":"setEventResult(string,uint32,uint8)","84b1fcb6":"TokenOwnedFund()","84b2e59d":"lower(string)","84b35fbb":"proposeFoundationTransfer(address)","84b366dc":"dest()","84b3b232":"depositofferToken()","84b4340b":"failWithReason(string)","84b46829":"San4Contract()","84b4d3f6":"determineGoalScoringCardIds(uint256[],uint256[],uint256)","84b60937":"getRollUnder(uint256,uint256)","84b735c2":"address1a()","84b76824":"cancelWithdraw()","84b7964f":"isClient(address)","84b79b3d":"eosBASE(uint256,uint256)","84b83a96":"finishChampionGame()","84b8d6a5":"Airdrop(address)","84b98987":"getPrice(address,string,string,string)","84b9a4a5":"SALE_STEP()","84ba2642":"mint(address,uint256,address,string)","84ba745e":"totalClass()","84bc8d2e":"read_purchase_at_index(uint256)","84bcd93e":"setSealableProperty(uint256,bytes32,bytes32)","84bcefd4":"collected()","84bd3a28":"TierRainmakerDividendAddress(address)","84bdaf85":"centsInPhaseOne()","84be4079":"Lendr(string,string,address)","84be414d":"KryptopyCrowdsaleMock(address)","84be59d1":"giftPool()","84beac36":"KRCToken(address)","84bf6fac":"mEtherValid()","84c019e3":"noBonusTokenRecipients()","84c14b25":"sellDentacoinsAgainstEther(uint256)","84c2473f":"mainIcoEndBlock()","84c344fe":"_register(bytes4,string)","84c3edf9":"getHoldAmountAccounts()","84c4ee9e":"getHivePot()","84c5c34d":"transferFromToICAPWithReference(address,string,uint256,string)","84c615e2":"giveKingdom(address,string,string,uint256)","84c64a19":"setApp(address,address)","84c6774c":"safeMathMul(uint256,uint256)","84c6a9fe":"setFABAcompanyTokensPercent(uint256)","84c6f650":"PAYOUT_TIME()","84c7bf4c":"setBlocking(address,address,bool)","84c830d3":"getDepositByIndex(address,uint256)","84c8d5fa":"xenograft(uint256,uint256,uint256)","84c8df88":"testMemoryIntegrityCheck31Bytes()","84c99b6d":"tokenIssuedAirDrop()","84ca65e0":"addOperationType(string,string)","84cb4fec":"_getBlocksPerYear(uint256)","84cba6da":"registerUsers(address[],uint256[])","84cbc92f":"buyPotato(uint256)","84cc315b":"getCurrentPrice(address)","84cdbb4b":"relaseLock()","84ce8f1e":"getTotalF3()","84cfa08c":"startKilling()","84cfc5aa":"WABnetwork(uint256,string,string)","84cfca00":"setMaxPlayers(uint8)","84d062b4":"updateEthToTokenOrder(uint32,uint128,uint128)","84d0aad8":"loadOldData()","84d24226":"claimableTokens(address)","84d2688c":"getDarknodePublicKey(address)","84d2731c":"namesOf(address)","84d43f66":"setAffiliateSetter(address)","84d46860":"getMyStageBet(uint256,uint256,uint256)","84d47dee":"DayDayCrowdsale(uint256,address,address)","84d4c178":"_escrowInflationBonus(bytes32,uint256,uint256,address,address,bool)","84d5d944":"transferAndLock(address,uint256,uint256)","84d60043":"CioCoinERC20180629Token(uint256,string,string,uint256)","84d61a32":"showFPInterest()","84d62f47":"bindSmartIdentityByRegulator(string,string,string)","84d6bd43":"requiredEvidence()","84d7c99d":"deleteUInt8Value(bytes32)","84d7ea12":"setMilestonesContractAddress(address)","84d80057":"hasDeadlinePassed(bytes32)","84d83f07":"GetLoanIdFromPortfolio(uint256,uint256)","84d8529f":"refundInternal(bytes32,address,address,uint256)","84d9390a":"TEAM_PERCENTAGE()","84d9bee2":"bidCC(uint256,bytes32)","84da7e38":"setColorRed()","84da92a7":"updateName(string)","84dac46e":"Fucksign()","84db71a3":"getRefereeRewards()","84db8d1e":"_nextPotTax(uint256)","84dc1028":"getBonustwo(uint256)","84dc2b10":"_saveData(address,bytes32,address,bytes32,uint256)","84dcde97":"removeSynth(bytes4)","84dd4332":"lastCallPUST()","84dd9591":"getTotalHoldAmount(address)","84df87c3":"SPITEST()","84dfb2bd":"setETHAddress(address)","84dfbfe2":"setLpFee(uint256)","84e0b689":"_yearThreeSupply()","84e10a90":"getTotals()","84e11251":"setMinInvestmentLimit(uint256)","84e192a7":"getArbiterCandidates()","84e1bf74":"emissionOn()","84e2341d":"internalSetDestinationMultisigWallet(address)","84e2d578":"OperationAddress()","84e336fc":"ANUNYA()","84e37ad9":"prefixedHash(uint256)","84e3ac94":"oneTokenInWei()","84e45689":"authorize(address[])","84e4c52b":"getTimeLockSecondsRemaining(uint256)","84e4d3a8":"freezeAccount(address,bool,uint256,uint256)","84e4d57f":"ApplyForCertification(string,string,string,uint256)","84e527ad":"IMDESale(uint256,uint128,uint256,uint256,uint128,string)","84e60e8b":"ico_promo_reward(address,uint256)","84e64a1f":"stageStartDate(uint8)","84e67523":"getSumAmountOfOpenSteps()","84e6ee4b":"setMainnetAccount(string)","84e70093":"cloneOrder(address,uint256,uint256,uint256)","84e700ee":"totalAllocatedPurchase()","84e7686b":"setAdmin(address[],bool)","84e77095":"GetEvidence(bytes32)","84e77da2":"updateKryptoroToken(address)","84e79842":"addAgent(address)","84e7e3d3":"MINT_INTERVAL()","84e83ee2":"SparksterToken()","84e85974":"YGO()","84e8a7df":"_soldOutside()","84e8b36e":"GetAskingTokenDecimal()","84e8bff9":"burnaftersale(uint256)","84e9ec37":"bonusTokenRateLevelFour()","84ea2e31":"GetDOTNumRevokableHashes(bytes32)","84eb11ce":"DoggyToken()","84eba00c":"tokenholder()","84ebd065":"NunesTestCoin()","84ebde52":"Under_the_Hood()","84ec480c":"marketToken2020()","84ecdaf6":"advanceState()","84ececf2":"userCreateSaleIfApproved(uint256,uint256,uint256,uint256)","84ed49a7":"isPoweruser(address)","84ef0778":"tokensIssuedTotal()","84efe4d6":"backSkinCoinOwner()","84eff1d0":"walunlock()","84f06570":"createAllTokens()","84f08cd9":"TokenContract(address)","84f10c35":"testTransferCreator()","84f19f37":"createVoting(bytes32)","84f1b0b8":"__flooredLog10__(uint256)","84f1bd4e":"fpart(int128)","84f1cdb7":"intFunc(int256,int256)","84f32395":"setAssetToExpire(uint256)","84f3597b":"availableRefunds()","84f54874":"startWeekThree()","84f85951":"founderWithdraw()","84f88cbf":"TonToken()","84f94221":"getRoot(bytes32)","84f9c928":"get_signature_block(address,address,bytes32)","84fa2c97":"totalCentsCollected()","84fae760":"hello(address)","84fb24a5":"_addCourse(uint256,string,uint16,uint16,string,string)","84fb427c":"_transferHolder(address,bool,uint256)","84fc8050":"nugget(uint256)","84fd176b":"bonusPhaseTwoDeadline()","84fd5477":"isAuthorizedAccount(address)","84fd7ef0":"TOKEN_FOUNDATION_CAP()","84fdab0d":"pickConsolationPrize(uint256[])","84fde1c6":"calculateScorersForTeamIds(uint256,uint256)","84fdec83":"ownerCanWithdraw()","84fe5029":"weiCap()","84feab93":"Emit_OffchainPaymentFlag(address,address,bool,bool)","84feed25":"VoxelX()","84ff2e45":"coreTeamTokenSupply()","84ff435f":"UpdateUserNickName(address,bytes32)","84ffc422":"BountiesTokensHolder(address,address,address)","84ffcb5d":"setContractsMiniGame(address)","85000a86":"TitleUpdated(uint256,uint256,string,string,string,uint256)","85002354":"ZillowBlockchain(uint256,uint256)","85003d30":"CollateralTransferCanceled(uint256)","85007e54":"Zakat()","8500d919":"getBorrower(uint256)","85011eec":"Movie(string,string,uint256)","8502293b":"newCs(address)","85025396":"setProviderClientsCount(uint256,uint256)","8502935a":"maxInflationRate()","850382c8":"prova3(uint256[])","8503a6bf":"ERC721TokenMock()","8503b6a5":"addProposal(address,uint256,address,string,uint256)","850595c1":"contributorID(uint256,address)","8505a074":"ClassyCoin()","85071d9c":"SCARABToken1()","8507bee8":"joinedCrowdsalesLenMax()","850895dc":"CheckValidDate(uint8,uint8,uint16)","8508a693":"doTeamMinting()","8508d88f":"sendICOSupplyToken(address,uint256)","85093668":"jackpotBank()","8509a001":"rewardDenominator()","850a1532":"voteSnapshotBalance(address,uint256)","850a2e78":"setResults(address,uint256,uint256[2])","850a4621":"emitActiveChanged(bool)","850a7eca":"endTimeLockedTokensAdvisor()","850c362a":"initCard1()","850d8a14":"CryptolottoToken()","850d9afb":"ENDTIME()","850db35d":"didPayInterest(bytes32,address,address,address,uint256,bool,uint256)","850e141a":"updateYearsSinceRelease()","850e2bc4":"setLLV_edit_22(string)","850e3760":"getShine(uint16)","850e47db":"KudoCoin()","850f2e2c":"findTileByAddress(uint16,uint16,address,address)","850fb62d":"transferProcess(address,address,uint256)","85107367":"stakeAddress()","8510b43f":"isSaleRunning()","85113156":"etherERC20()","8511b843":"addSpaceshipMoney(uint256,uint256,uint256)","85138313":"PureAirToken(uint256,string,uint8,string)","8513c619":"addManager(address,address)","8513db86":"test_threeValidAndInvalidEqAddress()","851545de":"transformAgent()","8515e413":"payUserOutgoingTransactionCommission()","851645e6":"getRandomUint(uint256)","85174a31":"transferToSelf(uint256,bytes)","85177f28":"EthReceived(address,uint256)","851a33e9":"getBylawsMilestoneMinPostponing()","851a61d7":"Dist(address,uint256,address)","851ad4d6":"getNumDragons()","851aea7a":"setUser(string,string,string,bytes32)","851b6ef2":"getAllVotes()","851bb3c3":"bonusEnds15()","851c0cf6":"bltMaster()","851c27de":"earlyStageSetting()","851c4414":"getEvabotContractAddress()","851c5bf6":"addVestTokenAllocation(address,uint256)","851c9d11":"DGB()","851cad90":"THOUSAND()","851cc7f9":"coinMultiplayer()","851d1c27":"_transferFrom(address,address,address,uint256)","851d46f3":"internalCheck()","851e6b3a":"buy100Price()","851ee3e2":"ApproveERC20()","851f9e20":"chargeOff(address)","85203aa2":"lengthNotEqual(uint256[],uint256,string)","85209ee0":"contractState()","85216449":"checkCustodian()","8521b59c":"addDataPoint(int256,uint256,bytes32)","852263aa":"LogThresholdChange(address,uint256)","8522ac8c":"testTransferOwnership()","85233869":"NumberOfMiners()","8523930a":"calculateNoOfTokensToSend()","85252e82":"setTransferFee(address,uint256)","85255ab0":"Nero()","8526492f":"getTokensAmount(uint256)","85265ee6":"press_address()","8526d092":"isValidContributorAddress(address)","85271fa1":"_validateUSDAmount(uint256)","85276721":"DevReward(address,uint256)","8527831b":"getIndex(bytes32)","8527c3b0":"changePriceRandomFight2Death(uint256)","8528b7b0":"WILDToken()","852980a0":"addCourses(string,string,string,string,string,string)","852987f3":"getRecoverSigner(uint40,uint256,uint8,bytes32,bytes32)","8529d576":"toUint(bytes)","852a6bd4":"getBalanceOfPlayer(address)","852a7d6c":"setExtraDistribution(address,uint256)","852ada4b":"nonFungibleOfOwnerByIndex(uint256,address,uint128)","852b6121":"setInitialBlockTimestamp(uint256)","852c061a":"axiesPrice(uint256,uint256,uint256)","852c5662":"adjustFlame(uint256)","852ccf2b":"YIYSToken(address,uint256)","852da11d":"tokenCreationCapPreICO()","852dbfc6":"pickURL()","852dc589":"setQuitLock(address)","852e9f46":"transferAndFreeze(address,uint256,uint256)","852ede8d":"removeToken(string,int256)","852f31c6":"teamStageSetting()","852f6662":"isProgramFactoryContract()","852f8b74":"getBookSigner(bytes16)","85307bef":"TronToken(address)","85318217":"RegisterMine(string,uint256,uint256)","8531bb56":"SaleHasEnded()","8532137c":"Lexzoom()","853255cc":"sum()","853262a2":"tgrSettingsPartContributorIncreasePerStage()","85349e01":"totalDeveloperCut_()","8534b3a8":"setParticipateFee(uint256)","853504f3":"OpenToken()","8535490f":"redeemEther(uint256)","853552d7":"_slotAddNew(address)","8535d2ec":"sendBatch(address[],uint256[])","8536a50e":"_setBurnFeeProp(uint256)","8536bf8f":"BuyIPG()","85370965":"distributeVault(uint256,uint256,uint256,uint256,uint256)","853717bb":"calcBurnAmount(uint256)","85378346":"getChancePowerWithBonus(address)","853828b6":"withdrawAll()","853a4ec2":"grantReserveToken(address)","853a9d32":"EGGS_TO_HATCH_1HIPSTER()","853b59d7":"phase_1_token_price()","853d814e":"MyFairToken()","853df275":"duel(address)","853e88fe":"hashVM()","853f636b":"sendAllTokensToFounder(uint256)","853f7e98":"BDLToken()","85423912":"setDiscipleItem(uint256,uint256)","854254e8":"buildLoanOrderStruct(bytes32,address[6],uint256[9])","85431ec8":"setRate333()","85439f82":"someFunction4()","8544023a":"nokuMasterToken()","85443a2b":"CampaignContract()","85444de3":"getChildChain(uint256)","85445829":"numMatches()","85448c59":"getBountyAddress()","85461f69":"calcReward(uint256,address)","854642e1":"mintNewDrawings(uint256)","8546d393":"Anatomia(uint256,uint256)","85473be1":"maximumCoinsPerAddress()","85476d6e":"GetCurrentTypeSaleItem(uint256)","854772ea":"getUserTotalReward(address,bool,bool,bool)","8547af30":"lastBidder()","8547bb3a":"publicSaleMode()","85482f89":"setOnePowerAge(uint256,uint256)","8548cc21":"allocateOwnerTokens()","8549b326":"isSettable(uint256,string)","8549d6f4":"MayanProtocolContract(uint256,uint256)","854a3d64":"LogStartSale(uint256,uint256)","854a9cc4":"ImpeachmentProposed(address,string,uint256,address)","854b1cdf":"curPayTableId()","854bb344":"NoblesseOblige()","854bec87":"payback()","854c2e1e":"HitToken(string,string,uint8,uint256,address,address,address)","854c4a0d":"DownSuccess(string,address)","854c584d":"AdsventureToken()","854cb674":"TheIlluminati()","854cd978":"ClaireToken()","854cff2f":"setWhitelist(address)","854e32cc":"revenueShareDistribution(address)","854e85c6":"lifeEvents(uint256)","854ecd23":"Vaynix()","854f1663":"setNonprofitDisbursementAddress(address)","854f1a1c":"VIVARefundVault(address)","854f3988":"eighth_withdrawal(uint256)","854f4817":"buyKissBTCWithCallback(address,uint256)","85502264":"deptcheckrespond(address)","85506473":"GnosisToken(address,address[],uint256[])","855085b8":"interCrypto()","8550aaf0":"BONUS_TIER_9_LIMIT()","8550cf46":"buyGameCoin(uint256)","855114c9":"buyNation(uint8)","85511d5f":"setEmergencyCode(uint256,uint256)","85512e5b":"EthlanceUser2(address)","8551884a":"authorizeListingService(address)","8551b896":"pre_tokensSold()","8551e3fe":"savePost(bytes32,uint256)","85522831":"numIntervals(uint256)","85528394":"currentClaimPriceWei()","85529636":"getSiteTokenId(uint256,uint256)","85530d7c":"setPetLastBreedingTime(uint64)","85535cc5":"setVaultAddress(address)","8553f6fb":"hardCapDividends()","855460d8":"externalBuy(address,uint256,uint256)","8554d60a":"addTenParticipants(address,address,address,address,address,address,address,address,address,address)","8554d92c":"verify(uint256,uint256,uint256,uint256,uint256)","85550c6b":"tradeKey(bytes32,bytes32)","8555cde9":"Permissioned(address,address,bool)","8555de47":"BlackPyramid()","85561120":"TPTToken(uint256)","85564b97":"MasterWithdraw()","85565585":"crowdsaleOwner()","85586e8a":"allocateCommunity(address,uint256)","85587375":"restartAssign()","855876d5":"countCliDreams(address)","8558c0af":"createBag(uint256)","8559fd88":"requestRandom(uint8)","855b7f5b":"getAdvancedTransfer(bytes32,bytes32)","855b842d":"isUserInBlackList(address)","855c145b":"specialManagerCountInt()","855c45e7":"EIP20Factory()","855c95f1":"createETHAuction(uint256,address,uint16,uint256)","855ce579":"setTwoPowerAges(uint256,uint256,uint256,uint256)","855ceb7d":"AirToken()","855d0700":"insertList2(uint256,uint256,uint256,uint256,string,uint256,string)","855d7c21":"updateTokenBaseRate(uint256)","855e0629":"setIconRate(uint256)","855eafa7":"get_maker_fee()","855f2b3a":"createGen0Auction(uint256[2])","855fe4c0":"ifSuccessfulSendFundsTo()","855fe6ed":"getConfigEntryInt(bytes32)","85602ad5":"getPreviousValidators()","85609b1c":"compose(string)","8561d136":"currentRunningAddress()","8561dc0b":"tokenPostIcoUsdCentPrice()","8562e452":"ADVISORS_SHARE()","8564b2cd":"listItem(uint256,uint256,address,uint256)","8564c284":"setCompte_34(string)","85652d1f":"getInvoiceAddress(uint256)","85654c9c":"setMembershipRoster(address)","85663119":"initialPrize()","85666a7c":"TEAM1()","85673296":"DepositBalance()","85673fb8":"follow(address,uint256,address)","8569cc4e":"release_4()","856a89fd":"drawRaffle(uint256)","856b3108":"UpdateInitiateContractAddress(address)","856b7d2c":"SignDividend(uint256)","856bb9cc":"addConsent(address)","856c0181":"countriesStatus()","856c486b":"WoodyToken()","856c6bd1":"checkRose(bytes32)","856c71dd":"isAvailable()","856c8922":"getGameRules(uint256)","856cddb0":"DummyOVOToken()","856dc78e":"getWarriors(uint256[])","856de136":"FAPFundDeposit3()","856deacf":"findTag(string)","856e8488":"erc20TokenContract()","856eb2d1":"submitTransactionWithSignaturesToken(address,address,uint256,uint8[],bytes32[],bytes32[])","856ed703":"currentCap()","856f3080":"WhatWasMyHash(bytes32)","8570153e":"publish(string,string,bytes,address[])","85716e2f":"changeAdminer(address)","8571baff":"SimpleCrowdsale(address,address,address,address)","8572e364":"scale(uint256,uint256,uint256,uint256,uint256)","8573d4aa":"OwnershipTransferPending(address,address)","8574ddf9":"snailmasterReq()","8575052a":"set_fees(uint256,uint256)","857512b4":"airdropCountLimit2()","85760377":"PixelTransfer(uint16,uint16,uint256,address,address)","857637c9":"ShopDexToken2()","85766cc3":"Calculation(string,string,string,string,address)","8577efc5":"DIGI()","8577ffc1":"unofficialUserSignUpFee()","857835f9":"getPostsFromIds(address[],string[],uint256[])","85787c8b":"encode(uint256[],uint256[])","85796a2d":"bonusClosingTime0()","8579c10e":"payDevelopersFund(address)","8579cbde":"getPrice(string,uint256,address)","857ac1c9":"TokensBurned(address,address,uint256)","857b3224":"setOAR(address)","857b575e":"qquizwinnerToken()","857b7dfc":"buyLittleDragonGirlLottery()","857ba7fb":"MAX_CONTRIB_CHECK_END_TIME()","857bcb2c":"adminAddTrustedCurrencyContract(address)","857cc1c4":"ExchangeGift(string)","857cd569":"FundDeposit(address,address)","857cdbb8":"getPublicKey(address)","857cfff9":"homeDailyLimit()","857d39d7":"CCH_LLV_FIFA_1()","857d4c07":"throwScraps(uint256)","857e6a99":"decreaseTokens(address,address,uint256)","857f4864":"getNextSnapshotTime()","857f54e4":"MonethaGateway(address,address)","8580563c":"finalize(bytes,bytes,bool)","8580b71b":"getLoanIDbyClient(uint256)","8580eb2f":"setFeeBalance(uint256)","858110a5":"proposeShutdown(uint256)","8581dc7c":"SociBit()","85820925":"getCompte_17()","8582ac21":"getIcoInfo()","8582b7dd":"OrxERC20()","8582e554":"transferBy(address,uint256)","858310d8":"getPreICOAddress(uint8)","85839731":"setKittyContractAddress(address,address)","8583b1b8":"_setUserInfo(address,uint256,uint256)","85861b15":"setUnboundedLimit(address,bool)","85867cd5":"BDSMtoken()","8586b2f0":"getPermission(address,string)","8586e75b":"ChangedResource(bytes32)","8587be6e":"ceil(uint256,uint256)","8587edbb":"lockEndBlock()","8588b2c5":"adopt(uint256)","85899cee":"CryptoThreeKingdoms()","8589c725":"deleteWork(uint256)","858ac4d8":"TransferOwner(address)","858c7559":"chainIDSeed()","858ced35":"setUser(address)","858e41b4":"lemonContract()","858e58d6":"RemapImportedNotUsed()","858f84e7":"WTFToken()","858fa2f5":"setArrayIndexValue(bytes32,uint256,address)","85903f67":"setUnofficialUserSignUpFee(uint256)","85908ffa":"buyTokensPostHook(address,uint256,uint256)","8592b778":"_rand()","8594bed0":"cancelMintRequest()","85952454":"newOwner(address)","8595c9ff":"diff(uint256[])","8595f8b1":"getGasPricePctOfBetValue()","8596982d":"getNotesCount()","8596d9ed":"transferInternal(address,uint256,address)","8597705f":"DataEquip(address)","8597eb6e":"ericukis(uint256,string,uint8,string)","859832e6":"locationsLength()","85984e69":"WavesCommunityToken()","859971dc":"initialFunding()","8599d0d8":"buildIdentifier(address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,string)","859a711d":"icoBonus2EndDate()","859b97fe":"cancelAuction(address,uint256)","859bbfee":"floatAdd()","859bcc71":"allowDisbursePaymentWhenPaused()","859ccc72":"setPlayerVirusNumber(address,uint256)","859d1bc7":"updateLeftLottery()","859da4e3":"transferParityOwnership(address)","859e25df":"giveProjectMoreVotes(address,uint256)","859e7d32":"getEpochData(uint256)","859f5717":"AuctionSuccessful(address,uint256,uint256)","859f63dc":"checkRewards(uint256[])","85a013e0":"setAnswer(uint256)","85a08f41":"buyLimitSupplyMax()","85a09f6f":"withdraw123()","85a10b30":"burningAdress()","85a143f4":"DailyRoi()","85a156af":"activityFunds()","85a17a1a":"isValidBet(uint8[4])","85a1c242":"PSM_PRICE()","85a227fd":"APC()","85a242d7":"teamTokensAccount()","85a2675b":"isConfirmedWithdraw(uint256)","85a26d7d":"getAllPeople()","85a2dd15":"hasAccess()","85a2f6af":"donateToken(address)","85a30c33":"changeContractAddress(address)","85a345e2":"disTrust(address)","85a34f4a":"getGameSums(uint256)","85a38635":"votingEnd()","85a49f2e":"verifyPass(address)","85a52584":"SettingsChanged()","85a735dd":"partAllocationLength()","85a8f42e":"diff(int256[],int256)","85aa6103":"auctions()","85aa6e09":"granted(address)","85aa92a7":"storageAddress()","85aaff62":"transcoder(uint256,uint256,uint256)","85ab0c19":"tokenProvenance(uint256)","85aba275":"assign(address)","85ac2f7b":"getListedTime()","85add95b":"Spike()","85ae067b":"func_040B()","85ae2f1c":"sunFinished()","85ae6d2d":"OfferingOpens(uint256,uint256)","85af4142":"verifyTeam(uint256)","85b018e9":"isSubjectRaiseTap(uint256)","85b09a01":"DIVC()","85b12c7c":"launch(uint256)","85b1423e":"returnAll()","85b142ed":"getAccountState(bytes32)","85b2ff8f":"getWeightedRandomMember(uint256)","85b31d7b":"myInfo()","85b39fc1":"CONTRACTIUM()","85b3c420":"createWeight(uint256)","85b3ed4e":"GoalReached(uint256,uint256)","85b443b6":"econReserveWallet()","85b4bb53":"getSettings()","85b51737":"addSafe(uint256,uint256)","85b6824f":"setMinterWallet(address)","85b688de":"PRIVATE_STAGE_START()","85b73d3c":"testCreateNewRevision()","85b75b1e":"toogleStatus()","85b86188":"isSaleClockAuction()","85b8c64a":"bonusFreeLOT()","85b8d86f":"CrowdSaleFinished(string)","85b923ca":"getCandidates(bytes32)","85b94536":"debug_judge(bytes32[13],uint256,bytes32[],bytes32[],bytes32,bytes32,uint256[4],bytes32[10],uint256[4])","85b9c729":"OnWithdrawTo(address,address,address,uint256,uint64)","85b9f607":"buyTokensWithGuarantee()","85ba0052":"stringToUintNormalize(string)","85ba9a99":"setMinimumHydroStakes(uint256,uint256)","85bac237":"addPayment(address,uint256)","85bb7d69":"answer()","85bb821b":"WTO()","85bb8e29":"continuousSale()","85bbb53a":"ancestorBuffPercentage()","85bdc4a2":"lastBlock_v16()","85bddb97":"addOnOneStage(address,uint256,uint256)","85bde3f2":"SaddlePr(uint256)","85be2f02":"SampleCrowdsaleToken(string,string,uint8,uint256)","85be8fe6":"confirmReceivedAt(uint256)","85bf96a0":"JOP(uint256)","85bfe55d":"getUserByEmail(bytes32)","85c07546":"TransformCoin()","85c09f26":"topTotalSupply()","85c1057b":"payAndHandle(uint256,address,uint256)","85c15d9a":"exchangeRates(address)","85c3649f":"registerSelf(bytes32)","85c373c3":"releaseAccount(address)","85c3bb6f":"getMsg2()","85c4e3d1":"sendSubscriptionBonus(address)","85c53cf1":"giveAccess(address,bytes32)","85c5e9f8":"mimin(uint64,uint64)","85c64029":"set_prices(uint8,uint8,uint8)","85c653ba":"Divsforall()","85c78fac":"retryOraclizeRequest(uint256)","85c7a953":"WithdrawFullBalanceFromBankAccount()","85c8d362":"CTM()","85c8f447":"totum()","85c95d30":"setResourcesOtherManager(address,uint8)","85c9dd72":"GCOXToken(string,string,uint8,uint256)","85ca165a":"count_donors()","85cb2e6e":"refreshEmissionReleaseTime()","85cb469a":"getIcoFund()","85cb4ea2":"getPunchCardsInternal(address)","85cba6b1":"getFallback()","85cba722":"EGLSold()","85cbc881":"totalUSDRaised()","85cc3114":"doDeposit(address)","85cc51c2":"destTokensTeam()","85cc6fba":"boomrToken()","85cc9a2b":"issueKey(bytes32,address)","85cdafa6":"teamOneVolume()","85cf61ef":"payRake(uint256)","85cfdec7":"buyKWHAgainstEther()","85d02c8a":"changeMaximumInvestmentsAllowed(uint256)","85d178f4":"withdrawWallet()","85d19a25":"getPositionId(uint256)","85d1be13":"preSaleSecondPrice()","85d3b5bd":"policyID(uint256)","85d45d34":"comments2()","85d51d19":"contributorETHBalance(address)","85d544be":"transferAndLockUntil(address,uint256,uint256)","85d559ee":"TbookToken(uint256,string,string)","85d5c971":"logTransfer(address,address,bytes32)","85d5e631":"disableTokenTransfers(bool)","85d61e2a":"supplyNum()","85d63cce":"REMAINING_SUPPLY()","85d71df1":"investxPlatform()","85d77e5f":"priceExpiration()","85d80458":"m_deployer()","85da1192":"setMaxFaucet(uint256)","85daafe6":"capitalRaisedTarget()","85dacd5b":"voteSnapshotBalanceAuto(address,uint256)","85db2dda":"PayoutQueueSize()","85db2e3a":"PoD()","85dc3004":"setFundAddress(address)","85dc6721":"emptyShipCargo(uint32)","85dcbb5a":"returnMember(address)","85dcee93":"descriptionHash()","85dcfbd4":"VernamWhiteListDeposit()","85dd1fbd":"bet_on_team_1()","85dd2148":"getSaleDate(bytes16)","85ddb747":"transferFromPosttgefund(address,uint256)","85ddf726":"dismissOperator(address)","85de4841":"uint2str(uint64)","85de4f72":"luckybuyTracker_()","85dee34c":"query2_withGasLimit(uint256,string,string,string,uint256)","85defaf4":"voteEnds()","85df508f":"tip_rate()","85df51fd":"blockHash(uint256)","85e00e4b":"bezpolToken()","85e040b1":"Invested(uint256,address,uint256)","85e050e4":"get_property_contact(uint256)","85e05445":"MartiniumToken()","85e0832c":"totalMintSupply()","85e1684c":"computeS(uint256,uint256)","85e344f7":"SmartInvestmentFundToken(address)","85e36cc2":"foundationAmount()","85e3f058":"getIdentity(uint256)","85e41e7e":"TokenFree(uint256)","85e436bf":"setBuyRate(uint256)","85e567d4":"verifyProof(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[1])","85e57f3c":"updateLogoUrl(bytes32,bytes32)","85e5908e":"Group_3()","85e5bb3a":"Security_AddPasswordSha3HashToBankAccount(bytes32)","85e5d7ee":"mintAll(uint256[])","85e5f08a":"updateVerifiedSign(address,address,string,uint8,string)","85e612e4":"getBirthYear()","85e61b4a":"processFundingSuccessfulFinished()","85e61e67":"set_arbits_whitelist(address,address,bool)","85e68531":"revokeAccess(address)","85e7d4cb":"CCC()","85e870b3":"default_rate()","85e91347":"initializeSaleWalletAddress()","85e99be4":"updateHighestPrices_(uint256,address)","85e9bd2b":"setAdminAddress(address,address)","85eac05f":"changeOwnerAddress(address)","85eb6109":"getAddressClaims(address,address,uint8)","85ec419a":"setTokenTwdt(address)","85ed5cf9":"resetAlias()","85eddeea":"setReward(address[],uint256[])","85edf68d":"initVestingStages()","85ee292c":"airdropTesterFinal(address[],uint256)","85ef4ae7":"f_internal()","85ef5a8a":"GermanCoin(address,address)","85efa3aa":"setHold(address)","85efb721":"fillTheBank()","85eff0ef":"hardcoreBattleWith(uint256,uint256)","85f01859":"setWord()","85f07a2b":"CALLER_EXCHANGE_SHARE()","85f07b64":"confirmedAmount()","85f07bbe":"MIN_PLAYERS()","85f0e72c":"uintToStr(uint256,uint256)","85f0f098":"allowWithdrawals()","85f16544":"EdgarRichardWunsche()","85f19bc4":"giveDividend()","85f255ea":"getUserFactoryContractAddress()","85f2aef2":"team()","85f2d854":"createManyDrinks()","85f2e4b1":"_strConcat(string,string,string,string)","85f3c568":"LogContribution(address,uint256,uint256)","85f45250":"addFunds(uint256,uint256)","85f517d4":"account3Address()","85f52912":"TGRUPToken()","85f52984":"addPrecondition(address)","85f59db3":"CheckN2Exception(bytes32,uint32)","85f63a4a":"preICOBeneficiaryAddress()","85f671a6":"requestWithdrawal(bytes32,uint64,bytes32[],uint256[],uint256[2],uint256)","85f67ae4":"addEpisode(address)","85f8c16d":"claimHours(int256)","85fa33eb":"declareDividend(uint256)","85fab341":"transferTokensAfterEndTime(address,uint256,uint256,uint256)","85fae602":"getInsurance(uint256)","85fbd17f":"PonzICO()","85fbdd47":"_order(uint256,uint256,uint8)","85fbdefc":"masterBalanceOf(bytes32,address)","85fcb4a8":"findPrevOrderId(uint128,uint128)","85fcd363":"votesArr(address)","85fceea8":"getCountSubscribers()","85fdeba7":"vendorAllocation()","85fe0448":"testThrowRestartNotUpdatable()","85fe551a":"ownerGrace()","85fe6200":"recordEndedGame(uint256)","85fed812":"ERC20Lookup()","85ff5e13":"SkinCoin()","85ff70de":"_payFees()","85ff96a7":"getTotalSellingMonsters()","86001519":"totalProfit()","86005b14":"allocateVestable(address,uint256,uint256,uint256)","8600e40b":"notifyWithdraw(address,uint256)","8600f2ec":"totalChildTokens(address,uint256)","86013322":"withdrawSaleBalances()","860241c2":"TAXToken()","8602c8b6":"countryofN(address)","8602c8d3":"ethSendDifferentValue(address[],uint256[])","8603d31a":"auctionDetails(uint256)","860427fc":"setGPSRatio(uint256)","86047946":"_processHistoryItem(bytes32,bytes32,uint256,address,address,uint256,bytes32,bool)","86048c9a":"totalCashout()","8605c97e":"setMarginThresholds(uint256,uint256)","86060884":"SafeGuard(bytes20,uint256,uint16)","86066750":"HelloWorld(string)","86068367":"DYITToken(uint256,string,string,uint8)","8606f905":"balanceOf(address,bytes)","86070cfe":"recoveryVaultAppId()","86073441":"signToApproveAddTokenData()","860772a9":"establishBorrowerReturnFiatPerEthRate(uint256)","860779e7":"setMinBuy(uint256)","860838a5":"frozenAccounts(address)","86096578":"getRetailer(uint256,address)","860aefcf":"limits()","860bb34a":"SIGMA()","860c5ed6":"testVote()","860c851a":"votePrice()","860caf69":"HashAdded(address,string,uint256)","860d7273":"masterKeyActive(address)","860e6185":"commitTo(bytes32)","860e9960":"BetPriceLimit()","860e9b0f":"updateRegistryPrice(uint256)","860f5048":"baseSupply()","861004ae":"Visus(address)","861080ae":"transferMembership(address)","8610f045":"withdrawOffer(uint256)","86115c1d":"MyPurchaseContract(address)","8611643a":"Withdraw(string,string)","86116c12":"PerkscoinToken(uint256)","86117319":"buy_the_tokens(bytes)","8611e330":"FishbankBoosters()","86127ecf":"oraclize(bytes32,bytes,bytes,bytes,string,bytes,bytes,uint256,bytes)","8612d049":"isLocked(address,address)","8612ee13":"addMatch(string,string,string,bool,uint8,uint8,uint256)","86145875":"contributeInternal(address,uint256,uint256)","861654f7":"updatefundingStartTime(uint256)","8616865d":"ReferredInvestorAdded(string,address)","8616bc8b":"contributedTotal()","8617457a":"start_()","86188c97":"fetchOrdersForMerchant()","86192c36":"privateOfferingPercentage()","861c3385":"blocksquare()","861c3a09":"queryByUser(bytes)","861c9c79":"transferToComposition(address,uint256)","861cab52":"canSendGameGift()","861d4e51":"NOETToken()","861d7daf":"deleteImage(uint256)","861dd0a5":"releaseCats(uint32,uint256,uint256,string)","861e2e43":"orderCore(uint256,uint256,uint256)","861e5d6a":"CryptoKotik()","861ec457":"SILVER_AMOUNT_TPT()","861ed3ea":"controllersByPartition(bytes32)","861f8a52":"testThrow_2_invalidOwner_accessRestrictionThrow()","861fcefb":"Token1Token()","86200842":"getSellDailyLimit(uint256,bytes2)","8620410b":"buyPrice()","86212913":"queryAuction()","86216ace":"NotThrowingToken(uint256)","8622031f":"setModuleAddress(string,address,bool)","862235f5":"EthertoteAdminAddress()","8622a689":"expiresAt()","86231246":"returnsOneNamed(uint256,uint256)","86231b9e":"contentHostPaidByAO(bytes32)","86237e7b":"setAngel(uint8,address,uint256,uint16)","862440e2":"setURI(uint256,string)","86260cfe":"UpdateUserEmail(string)","86269a88":"checkBetNumber(uint8)","86271d8b":"minPurchaseInEth()","8627df46":"buyTickets(uint256,uint256)","862882e5":"startAuction(string,uint256)","8628892e":"Initialize(address,address,bytes32,address,uint256,bytes32,address,uint256,bytes32,uint256)","8628aca9":"setIds(uint256,uint256)","862a4bf2":"tokenHolder(uint256)","862b092b":"getTokenName()","862b525c":"gameMiningTokenStartTime()","862b6683":"setValues(uint256,uint256,uint256,uint256)","862c5e16":"validatePurchase(address,uint256,int256[],int256[])","862cb14e":"DMI()","862cdef3":"auctionTank(uint256,uint256,uint256,uint256)","862d0d4b":"_weiToFinney(uint256)","862eb9c0":"setGoldReward(uint256)","862ed594":"XmonetaToken()","862fd38c":"concat(uint8,bytes32,bytes32)","86312b1b":"TripsCoin()","86314af9":"BetOnHashV84()","8631890e":"PLANET_PRICE()","86318bc4":"ethBioxRate2()","86321f95":"switchClaimerAndRemoveOldOne()","86323e85":"isSellingNow()","8633497f":"angelCurrentAmount()","863451dd":"donateEther()","86346c42":"awards(uint8)","86348afa":"ColorReserved(address,uint256)","863524b1":"partnersKey()","86356ab9":"finalizeRefunding()","8635b527":"resetPainting(uint256)","8635f45d":"getSpaceshipProductAttributesByModel(uint16)","863682f4":"getScore(uint32)","86377b63":"registerLoanReplaceDuplicated(address,uint256,uint256)","863843bc":"bonusSupply()","8638aa65":"DEBUG_MODE()","8639ae69":"getAllCrySolObjects()","8639b0d7":"getBalanceDiscrepancy()","863a0372":"hex2dec(uint256)","863a03e0":"salvage(address)","863ac22b":"EtherGame()","863b3b66":"purchaseThemedSpinner(string,uint256)","863c51a9":"setCustomerSignature(address,uint256,bytes32)","863c607c":"ReactioonToken()","863d62ac":"Goldmint(address,address,address,address,address,address)","863da000":"disburseAuthorizedPayments(uint256[])","863e24d6":"updateBonusTicketsPercentage(uint8)","863e76db":"ONE_DAY()","863e7e4b":"getCurrentPhraseInfo()","863e8320":"initGPS()","863f2a19":"adjustTime(uint256,uint256,uint256,uint256,uint256,uint256)","863f40ac":"syp1(address)","863f52b4":"makerBetsCount()","864059ac":"clearingPriceComponent()","86420710":"setReceivers(address[],uint256)","8642269e":"buyProduct(uint256)","86428900":"SetPeriodITO_startTime(uint256)","86432925":"profitDistributionContract()","8643d01d":"throwsSaleWalletIncorrectSaleAddress()","8644ddd9":"WOB(uint256,string,string)","86452295":"getPointOf(uint256)","86457702":"authorize(string,address)","8645a3da":"ATTR_PRODUCIBLE()","8646b5cb":"marketTotalEarning()","8646fb43":"Electrominer()","864757a8":"minFinneyToKeep()","8647a5dc":"getTimeLock(bytes32,bytes32)","86481d40":"getLevel(uint256)","864824a0":"phase9Price()","86485cdf":"setCurrentExchangeRate(uint256)","86489ba9":"initialize(address,address,uint256,uint256,uint256,uint256)","8648c0ce":"neumarkCap()","8648f24c":"changeVariables(uint256)","86496e2e":"TcToken(uint256,string,uint8,string)","8649c0a4":"SetEndTime(uint256,uint256)","864a1057":"Start4()","864a9a09":"__mod(bytes,bytes)","864aef45":"buyCard(address,uint256,uint256,uint256)","864af3f4":"Menu02(address[],uint256)","864b525c":"GoldDollar()","864c189b":"LBCToken()","864c2e94":"service_founder()","864ca300":"goldBalanceOf(address)","864ce5dc":"getWeekBonus(uint256)","864d1d72":"getUserCountByRole(string)","864d7e14":"approveAsset(uint256)","864da88c":"_clearBlocksProducers(uint256)","864dd17d":"Controller(address,address)","864e8cc1":"setMaxCharacters(uint256)","864f4e54":"PeerWalletsToken()","864fda69":"minNum()","864fff0a":"DealCompleted(uint256,address,uint32,uint32,bool,uint256)","86508380":"_getUncreditedPoints(address)","8650b6ef":"endTimePre()","86517df4":"concludePresale()","8651dc1e":"confirm(uint256,uint256)","865232fb":"setarg_3_input(uint256)","86544e11":"STARTING_SNAIL_COST()","8654b78d":"AttoresDigitalCertificates(address)","865508ef":"minSend()","86556071":"gracePeriodStart()","8655f0da":"copyAllHpbNodesByStageNum(uint256)","8656dcb6":"distributeTeam()","865733da":"MercuryCrowdsale()","86575e40":"changeName(string,string)","86578375":"withdrawFund(uint256,bool)","865891b0":"PlanToken()","8658b8b9":"checkPermission(address,address,bytes32)","86590955":"changeHeight(uint256)","86591bd6":"testFailMintWhenStopped(int256)","86598549":"_withdrawTokensFor(address)","8659d573":"getCountPosition(uint256,uint256)","865a4253":"prcSum()","865ad6c2":"levelUpCar(uint32,uint32,uint32)","865b0d30":"SingularityTest15()","865c79b2":"setImageDataLength(uint256,uint16,uint16)","865cc6a3":"getDErc20OwnerClaimEnabled(bytes32)","865dc0d9":"EndChanged(uint256,uint256,address)","865eb3d3":"getWorkerProfit()","865fd239":"transfer_token_ownership(address)","865fe035":"addressIco()","86602b6b":"testControlRetractLatestRevisionNotOwner()","86602c84":"frozenAmount(address)","86609b37":"_createCard(address,uint16,uint16)","8660b220":"buyerRate(address)","8660b32b":"getSumInByGame(uint32)","8660bb8b":"updateAllPixelDetails(uint256,uint8,uint8,uint8,uint256,string)","8660cbf5":"battleDecider()","8661009b":"checkPayments(uint256)","866192a2":"getLastAuditDocumentation(address)","866278a8":"level_7_amount()","86628eed":"weisDeposited(address)","86630b7b":"getSaleData(uint256)","86633571":"DestructibleMiniMeToken(address,address,uint256,string,uint8,string,bool,address)","8663b4c7":"StudyCoin()","866408eb":"getPlayerKeysCount()","86647821":"NeuroDAO(address,uint256)","86647bac":"getBountyArbiter(uint256)","8666107c":"eth_received()","86667435":"getPercent5(address)","8666fca5":"holdingsOf_BEAR(address)","86673464":"assertEq15(bytes15,bytes15,bytes32)","8668a416":"assignMultipleParcels(int256[],int256[],address)","8669ccf4":"getFreelancers(address,uint256)","8669e08c":"migrationFinishedTime()","866b5674":"totalBountyinWei()","866b9323":"mintForReportingParticipant(int256,uint256)","866c03eb":"_unmintedTokens()","866d840a":"setCompte_44(string)","866df234":"setLink(bytes)","866e5162":"oslikToken()","866f4555":"Basic23TokenMock(address,uint256)","866f6736":"trustedChildWithdraw()","867022d1":"Initialise(address)","86703c9c":"getProviderClientsCount(uint256)","86707026":"midEtherBonusLimit()","8670cc7c":"BlueDragon()","8670e183":"createLegendaryAuction(uint256,string)","8671090e":"setSavedBalanceToken(uint256)","86715acf":"BodyOneToken(address)","8671b894":"cancelOrder(uint256[3],bytes32,bytes32,uint8)","8671ef4d":"grg(address)","86723215":"createMarket(bytes,uint256,uint256,address)","8672e853":"LogOwnerAdded(address,address,address)","8672f1bc":"isProposalActive()","8673094f":"allGuGiven_()","867387d4":"BurnableToken(address[50])","86749d97":"ZOOToken()","8675cf9e":"MaxToken(uint256,string,string)","8676993f":"setTransformAgent(address)","86773cae":"setPromoEndTime(uint256)","8677ebe8":"isSigned(address,bytes32,uint8,bytes32,bytes32)","8678446e":"preSaleMinEth()","8678c2b9":"HodlEth(uint256)","867904b4":"issue(address,uint256)","86795e8d":"set_master(address)","867a66ac":"ownerCredit(address,uint256)","867b36fe":"setFiscalVerify(bytes32)","867b3d4b":"updateEtherPrice()","867b79a1":"withdrawalRange(uint256,uint256,address)","867befba":"SUV_TYPE()","867c0547":"newPonziFriend(uint256)","867c2857":"transferAgents(address)","867c6e23":"CryptoRides()","867c7eda":"getProposalByID(uint256)","867e248c":"feePercantage()","867e958f":"NAEC()","867ea029":"WESSToken()","867eed11":"privilegedTransferLock()","867f990a":"changePriceUSD(uint256)","867fbe6d":"AnotherOwnerAssigned(address)","86804aad":"queryData(address)","8680e52d":"emitJobOfferAccepted(uint256,address)","86813c53":"sellerIdOf(address)","86814819":"_prePurchaseAmount(uint256)","868149da":"TRONCLASSIC()","8681a07f":"ownerSetRandomApiKey(string)","868203ea":"ZeroChainToken()","86820a7d":"createInputData(uint256,uint256)","86834610":"registerEscapeRequest(uint32,int256,bool,uint32)","8683612b":"exists(bytes32,bytes32)","8683e4b4":"WHUToken()","86842bc2":"verifyNonces(bytes,uint64[],uint64[])","86845f9a":"theCyberGatekeeperTwo()","868467e6":"deliverTokens(uint256)","86849a6c":"TeamTailsChoice(address)","86852dca":"getElectionInfo()","86852fd7":"bountySupply()","86863ec6":"init(address,address,uint256)","86867740":"trueSupply()","86869eae":"totalClosedContracts()","8688b5fe":"getMyContractsByType(uint256)","86897cb8":"Addresses()","8689a500":"putToken()","868a8813":"calculateGrapeBuySimple(uint256)","868d2b62":"ZeusCoin()","868d5383":"transferFromWithData(address,address,uint256,bytes,bytes)","868defd0":"getRemovableIdArrayAddressItems(address,uint256,string,string,string)","868df7f6":"alterFeaturedLength(uint256)","868e3c52":"EosPizzaSliceSafe(address)","868eb6bf":"removeOrders(uint256,uint256)","868f2564":"Iconss(address,address)","868f9c57":"Administrator(string,address)","86908b3f":"TransferInternalLedgerAT(address,address,uint256,bytes32)","86908f93":"FFG(uint256,string,string)","8690d6d5":"CentrallyIssuedToken()","8691162a":"TlcCoin()","86913884":"ShroomeryFarmer()","8692ac86":"transferOwnershipNow(address)","86936ed5":"isReceiptClaimable(bytes8,bytes8,address[],bytes,bytes32[],uint256[],uint256[],bytes)","86954ecc":"Finished(uint256)","86964032":"getHash(address,uint256,uint256,uint256,uint256)","8696807d":"addABaddress(address,address,string)","8696eec4":"setTokedoTokenFeeDiscount(uint256)","86973b0f":"RewardDemoChannel(address,address,address)","86985bee":"getTeamSalary()","86994b71":"RND()","869984c8":"addrOwner()","8699a65f":"rewardsCount()","869ac8dc":"getReferenceCurrency(address,uint256)","869af1ff":"finishTransferGet()","869b22fd":"toEthertoteDevelopmentWallet()","869b3f6a":"testThrowsRetractNotOwner()","869c63c1":"batchOrderTrade(uint8[2][],bytes32[4][],uint256[7][],address[6][])","869c8bd4":"buyChannel(string)","869d436d":"approvedAddressLUT(uint256)","869d785f":"removeModerator(address)","869d7d93":"countLeadingZeros(uint256,uint256)","869e0e60":"decreaseSupply(uint256,address)","869f1c00":"presaleParticipationMinimum()","86a046d5":"lastRefrralsVault_()","86a17f29":"modifyLevelCap(uint256,uint256)","86a1ea7a":"HeliosToken()","86a2ef34":"Indemnisation_4()","86a2f98a":"getPersonalStakeForAddresses(address,address)","86a3171f":"removeAllAttachmentsFromCollectible(uint256)","86a33a0b":"RoundBSold()","86a3736e":"increaseTokenBalance(address,uint256)","86a3c902":"If(address,bytes32,bytes32)","86a3e0a7":"allocated1Year()","86a40e63":"_removeExcluded(address)","86a4f6ee":"MOM()","86a50535":"voteFor(uint256)","86a57f6f":"byteArrays(bytes1,bytes)","86a5ebe1":"getPlayerDetails(address,address)","86a5ff97":"changeStatus(string)","86a61c81":"medicos()","86a66dc3":"getVoteResults()","86a7b995":"maxContributionInWei()","86a8da37":"getNumWinners(uint256)","86a91ab4":"Scale(int256,bytes32)","86a9443e":"WellyPai()","86aa354a":"PUBLIC_SALES_2_PERIOD_END()","86aa552a":"lockAbsoluteDifference()","86aa6c09":"P3D_address()","86ab3f7b":"RESERVED_TOKENS_FOR_ICO_BONUSES()","86abfce9":"Voted(uint256,bool,address)","86acb16d":"register_creature(address)","86ace9b1":"setICOWeek1Bonus(uint256)","86ae5fec":"getParticipantCount(uint256)","86aecb9d":"_lotteryToken(uint256,address,address)","86af6ba5":"addDeed(address,uint256)","86afa110":"lockTrading()","86b08228":"getInvestorAddr(uint256)","86b0befc":"congress()","86b0fc9d":"startsWithDigit(string)","86b14583":"EzPoint()","86b27391":"startCrowdsale(uint256,uint256,uint256,uint8)","86b2be73":"ICO_RATE2()","86b35f79":"read_u16()","86b46694":"currentWave()","86b467f2":"tokenSaleContractAddress()","86b5e2b9":"dataSourceCallbackRoundOfSixteen(uint256,uint8)","86b6b721":"Anaco()","86b6ec6c":"showLastChange(address)","86b6f462":"updateMaxContribution(uint256)","86b714e2":"s()","86b715bd":"setAutoNewbond(bool)","86b76d6c":"MunishExchange(address)","86b7b8f6":"setBalanceHolder(address)","86b88af0":"setLLV_edit_10(string)","86b8f0a2":"teamAllocations()","86b945b0":"getRoundStatus()","86ba793e":"setProviderCountry(uint256,uint256)","86bb1b24":"pegEtherValues(uint256,uint256,uint256,uint256,uint256,uint256)","86bb1e03":"toCollect(uint256)","86bb5a48":"buyAsset(address)","86bb7121":"getBlocksPerRound()","86bb8f37":"claimReward(uint256,uint256)","86bc2338":"isConsumable()","86bd4ef7":"lockPayment(bytes32,address,uint256,address)","86bdea3f":"postTrade(bytes32,uint256,address)","86be3981":"dividendsForUser(address)","86be53d3":"isPresaleOn()","86beaece":"doPurchase(uint256,uint256,uint256,address,address,uint256)","86bfbd44":"setDailyPrices(uint256,uint256)","86c02e88":"allocateFundToken()","86c23d54":"EliteShipperToken(uint256,string,string)","86c2b53d":"EximchainToken()","86c2e8e3":"accept(uint256,address[],uint256[],uint256)","86c3ceae":"setVAtomOwner(string,string)","86c455ee":"team2LockEndTime()","86c57fcc":"b32ToBytes(bytes)","86c59418":"USDToken()","86c5bc1c":"totalExchanged(uint8,uint8)","86c6f66b":"buySilver(uint256,uint256,uint8,bytes32,bytes32)","86c8c491":"setTransferAdmin(address,bool)","86c99779":"blocktubeUser()","86ca32b5":"claimExist(string)","86cb034f":"KIBIS_Token()","86cb531b":"mintPartnerWithLock(address,uint256,uint256)","86cb5cdb":"feeForFirstArtWorkChangeRequest()","86cba22b":"getAllBuyers()","86cc5a1d":"testIsOptionPairRegistered(address,uint256,address,uint256,uint256)","86cd71be":"getNumberOfMinters()","86cdbae9":"append(string)","86ce0285":"allocateTokens(address,uint256)","86ce8327":"updateStarScore(address,uint256)","86ce9835":"transferMoney(address)","86cef432":"CONTRIB_PERIOD3_STAKE()","86cf1e39":"GetherCoin()","86d01727":"setPendingTaxParameters(address,uint256)","86d08447":"getTestThree()","86d0b46d":"foundersTokensPercent()","86d0b48c":"round3Sold()","86d12325":"preSaleDistributionContract()","86d1a69f":"release()","86d23143":"getLastAcceptedProposal(bytes32)","86d263fe":"MarketCollateralPool(address)","86d2ee85":"HOLDING_START()","86d2fe57":"privateSaleStartDate()","86d35ed9":"getCrypton(uint256)","86d3a2b8":"setContributorCap(uint256)","86d3cf0d":"crazyearners(uint256)","86d3f4b7":"ethRateURL()","86d4c423":"UBTC()","86d4ebf7":"test_BasicThrow()","86d4fe9c":"viewTokensRemaining()","86d4ff1d":"canSell(address)","86d518bf":"grantAccessMint(address)","86d53469":"sendPreSaleETH()","86d54fe1":"EtherFundMeCrowdfunding(string,string,string,uint256,uint256,uint256,address,address)","86d59996":"deleteValidationData()","86d5c5f9":"getPassportLogicRegistry()","86d6c8a0":"getTankProduct(uint32)","86d6c9d1":"canHolderTransfer()","86d74037":"distributeToken(address)","86d8aab4":"cancelMultipleOrders(address[3][],uint256[3][],uint8[],bytes32[],bytes32[])","86d922a9":"lastCallTime(address)","86d9b0c5":"make(address,uint256,bool)","86da69f0":"gamble()","86dbfa98":"DINTToken()","86dc88ff":"addMadeTX(address,uint256,uint256,uint256,uint256)","86dc8ace":"pendingVestingPool()","86dcbefc":"test_registerWithoutCertification()","86dd03bd":"setRedeemLevel(uint256)","86dd5e03":"setBossRoundNumber(uint256)","86de99dd":"SetStatus(uint256,uint256)","86def3b9":"getDukeDate(string)","86df3d5b":"getCreateOrderMinGasNeeded()","86e1e589":"NamiAddr()","86e261c9":"updateSecondAmount(bytes32,bytes32,uint256)","86e2c40c":"removeAffiliate(uint256)","86e3060d":"nextFlexibleReward()","86e32cb5":"setSpecialFeePercent(address,uint256)","86e32ed0":"setAllowedContract(address)","86e36ce2":"speechOfOwner(address)","86e37ae7":"tokensForFight()","86e399c1":"priceDivisor(uint256)","86e476dd":"communityAddress()","86e49407":"setFeeUnit(uint256)","86e4993c":"issue(uint256,uint256,address[],uint256[])","86e4a33e":"countBtcAddressLeadingOnes(bytes,uint256)","86e4e178":"CheckTickets(address,uint256,uint256)","86e58bef":"del_user(bytes32,bytes32)","86e58c0c":"getGalleassTokens(address,bytes32,uint256)","86e5ceb4":"previousRoundJackpot()","86e6361e":"setSellInfo(uint8,uint256,uint256)","86e6eee1":"INEX_Token()","86e8c57a":"secondroundprice()","86e92957":"lastDecimal(uint256)","86e97442":"mora(uint8)","86e99bdb":"XTOToken()","86eb3899":"lockPeriodForBuyers()","86ec6177":"endEvent()","86ec8f62":"validateTokenProperties(uint256)","86ecce90":"test_5_assertGasUsage1400Boards()","86ed60e9":"getSpawned(uint32,int256)","86ee8f01":"masterAddress1()","86efb94e":"addressHistoryOf(uint256)","86f10e8b":"divForEthertoteLiquidatorWallet()","86f1865d":"_bcto(uint256,uint256,uint256,uint256,address)","86f19dde":"phase6Price()","86f1f2d4":"mintDigitalArt(string)","86f254bf":"minConversionRate()","86f28fe3":"token_member_order(address,address,uint256)","86f2907a":"doesEventExist(bytes32)","86f2e5cf":"_setHairColorValue7(uint256)","86f32586":"checkIfFundingCompleteOrExpired()","86f328a9":"episodes(uint256)","86f35b7c":"FeeCalculation()","86f3c026":"UpdateMoney(address)","86f3d0cd":"limitedDeposit()","86f5114e":"voteName()","86f5bf88":"interestPermil()","86f6e410":"adminIsAdmin()","86f7313d":"ico_enddate()","86f7993e":"acceptCooOwnership()","86f79edb":"getMessage(uint256)","86f822fa":"DunkPayToken()","86f876e2":"hyperEnable(address,bool)","86f8950a":"getUnclaimedBalance(address)","86f8bce9":"tixFundDeposit()","86f8e4ef":"mintFinalize(address,uint256)","86fa0671":"tokenShareShow(address)","86fa18df":"throwsWhenTransferingFundsDuringSale()","86fb8715":"ArbitratedBuyDeposit(address,string)","86fbb494":"DigixbotConfiguration()","86fbeb8c":"investors(uint16)","86ffe00f":"preSaleMaxTokens()","87000d42":"clearBetMap()","8700522a":"setLandProductionMultiplierCCUser(bytes32,address)","8700ceb2":"sellCertainOrder(uint256,uint256,uint256)","87011092":"refundContributor()","8701a2f0":"finishBet()","8702735c":"setCapitol(uint256,uint256)","8703b7d8":"setPOOL_edit_4(string)","8703e506":"stage4Bonus()","87040a86":"AddHOLDer(address)","87045369":"setCanCall(address,address,bytes4,bool)","870488f9":"sendTokensToInvestors(address,uint256)","8704c6ac":"MAXIMUM_CONTRIBUTION_LIMITED_PERIOD_USD()","87055008":"euroLock()","8705ae63":"migrationChain(uint256)","8705f218":"RemoveOwnerAddress(address,address)","8705fcd4":"setFeeAddress(address)","87067595":"MagicToken(uint256,string,string)","8706ab57":"setE4RowPartner(address)","8706b052":"PGD()","8707ee3e":"formatDate(uint256)","8708b5b2":"sourcePrice()","870911ff":"onExchangeTokenToEther(address,uint256,uint256)","87092940":"calculateInterest(address,address)","8709bece":"availablePrivateICO()","870b399a":"LOCKUP_6M_ICO_TIMESTAMP()","870b8b94":"hasFiveYearWithdraw()","870baf84":"sendToGiveth()","870bb8c2":"CROWD_WEEK1_PERIOD()","870bfc75":"lockMultis()","870c426d":"getUniverse()","870dbae0":"TOTAL_MAX_CAP()","870e5405":"insert(bytes32,bytes32,int256)","870f0e27":"developmentLockEndTime()","870f892d":"getGTOAddress()","8710296f":"totalEarlyPurchaseRaised()","871105cc":"setVaultContractAddress(address)","871113c3":"oraclize_query(string,string[1],uint256)","87113b88":"managerListMap(uint256)","87114b8c":"versionInfo(uint256)","8711e4a9":"lockTimeout()","8712523e":"lastTransferBlock(address)","87127f85":"ZeonToken()","8712c1c5":"freeTotal()","87136940":"tokenRateInUsdCents()","871388c9":"SetGene(uint256,bool,uint64)","8713d931":"BONUS_100_250()","8714b028":"offers(uint256,uint256,uint256)","8715d65d":"TierWildcatDividendAddress(address)","87161e59":"commandGetBonus()","871625e2":"retraitStandard_2()","871745aa":"presaleAddTree(address,address)","87174c3e":"refundManager()","87178668":"RATE_DAY_14()","8717ef27":"setVotingParams(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","87182d47":"totalSecondICOSupply()","87191e41":"isWhalePaying()","87195d23":"getInstallments(bytes32)","87196863":"_lower(bytes1)","8719715e":"walletAvatar()","8719e8ac":"setStatus(uint256,bool)","871b4e3c":"getCardBuyAuction(uint256)","871c7aab":"total_freeze_term()","871caa98":"dataOf(uint256)","871cc9d4":"decrementNumber()","871ced4a":"HeartBoutToken()","871cf692":"pullEtherFromContractAfterPreICOPrivate()","871d3eab":"addExtraDays(uint256)","871da475":"GetSellPrice()","871e0155":"pushNodeGroup(uint256,uint16)","871e5fac":"contributorsCurrentPeriod()","871fe6e1":"_validateHardCap(uint256)","872053e6":"releaseThisBonuses()","8720bb42":"liantoken()","87210f63":"tokenMainSale()","87214728":"contractIsCanceled(string)","8721db89":"requireKyc(address[])","8722860e":"isThereAnOnGoingProposal()","8722d4d9":"enforceAddressMatch()","8723202e":"NewSmartSharingContract(string,uint256,uint256,string,string,string)","8724025e":"AENIGMAZ()","8724e751":"Panax()","87250a35":"getSkull(uint256)","872519cd":"VerifyAccount(address,bool)","872539e7":"numberOfLeafs()","872588ba":"lock(bytes32,bytes32,bytes32)","8725d6be":"createToken(uint256,uint256,uint256,address,uint8)","872628e8":"setPriceStep2(uint256)","8726baf7":"unapproveArtist(address)","87275aba":"preMinting(uint256,uint256,uint256,uint256)","8727b7fc":"calculateAmountBonus(uint256)","87280324":"callMe(bytes32)","87281fab":"VestingReleased(uint256)","87283f0f":"ActivationRequest(address,bytes32)","87287fd7":"setMinFee(uint8)","872887c2":"getPeriodStartTimestamp(uint256)","87297093":"previousWithdrawal()","8729fff4":"buyCommission()","872a7810":"revocable()","872b31b6":"_removeStakeholder(address)","872bac57":"UpdateEmployee(address,uint32,uint32,uint16)","872bc83a":"GCCExchangeCore()","872d637f":"DivvyUp(bytes32,bytes32,uint8,uint8,uint256,uint256,uint256,address)","872dbdab":"advert_machine()","872dd49b":"getMigrateOutAttoTokens()","872dd84b":"priceBeforeGoalReached()","872f2526":"getGuestOrders(address,address)","872f5459":"toUINT120(uint256)","872fe620":"withdrawByResque()","87319e1e":"changeContractRegisterOwner(string,string,string,string,address)","8731a8d9":"deposit(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256,string)","8731cce5":"PledgePaymentCanceled(uint256)","87324ef0":"ecrecover2(bytes32,uint8,bytes32,bytes32)","8732d065":"ignoreKYCLockup()","87330b85":"getString1()","87336473":"unblockTransfer()","87338e98":"jackPotBestHash()","8733d130":"ownerManualMinter()","8733d4e8":"identityOwner(address)","8733f360":"initialize(address,address,uint256,uint256,address,address,address,address,address,address,uint256)","8734ffc9":"authorizedETH(address)","87355084":"transferCrowdsale(address,uint256)","8736381a":"contractCount()","87369c4b":"BOUNTY_EXCHANGE_SHARE()","87369e04":"refundTransactions(uint256)","8736fd16":"getRefStatus(uint256)","87393bc6":"verifyFirstHalf(uint256[4],uint256[4])","8739cacf":"getJobRating(address,uint256)","8739f930":"queryGameHistoryLength()","873a2878":"acceptWork(uint256)","873a5690":"VikkyToken()","873ab2ce":"computeFeeRate(address)","873b3009":"getKeyRevisionNumber(uint32,int256)","873bdee0":"systemWithdraw(address,uint64)","873c56d7":"officialLimit()","873cb0ab":"redeemedKarmaOf(string)","873cdb03":"Litas()","873db84c":"queryN_fnc()","873dc3b3":"bountyOnlineGW()","873dc71d":"getCycleInfo()","873ebe6a":"collect(address[],uint256[])","873f610c":"Contractors(uint256)","873f9a6a":"registerDIN(address)","87407993":"inQuitLock(address)","8740b73d":"EthereumGoldPro()","87412a4b":"TeamAndPartnerTokensAllocated(address,address)","8741ab49":"setupCompleteFlag()","8741f15e":"tileBalance()","874252ef":"giveProgectTokens(address,uint256)","8742792f":"changeNameByEveryone(string)","8742fc3b":"getVoteResult()","8744e974":"CallOption(address,uint256,uint256,uint256,uint256,uint256)","87451d52":"addQuickPromoBonus()","8745ddb3":"jailAmountOf(address)","8746656f":"extendDuration(uint256)","874752b4":"SpiceMembers()","8747a674":"getWrapperBalance()","8747f9b1":"resultReject()","8748ecda":"Dynamic1_5x(uint256)","87491c60":"closeMinting()","874a7036":"placeNotes(uint256[],uint256[],uint256)","874b4fcc":"setSigningPublicKey(string)","874b953a":"changePrimaryApprovedWallet(address)","874d6d81":"getWeek()","874d73a7":"addLottery(string,uint32,uint32,uint32,uint32,uint32,uint32)","874f33a1":"doStuff()","874f874c":"reminderCalc(uint256,uint256)","874f8ef6":"getAdv(uint256,uint256)","874fe370":"finalizeTS()","874ff7ed":"YOYOW(address)","8750367e":"FundRequestPublicSeed(uint256,uint256,address)","8750c2d7":"priceInTokens()","8751775b":"cancelRewardsWithdrawal()","87521056":"createMineForToken(uint256,uint256,uint256,uint256)","87524581":"accounts(address,uint256)","87526b0a":"totalPendingPayments()","87528d5e":"setInitAttr(address[],uint256,uint256)","87529f0f":"getTeam(address)","8752cff2":"isUserExisted(address)","8753b16e":"requestOwnership(address)","87541c9e":"setLLV_edit_3(string)","87543ef6":"upgradeController()","87548fcf":"getTracks()","8754b1d1":"createPainting(address,uint256,uint256,uint8,uint8,uint256,uint256)","8754b29c":"buyCore(address,address,uint256)","87551db0":"getChecksum(string,string,string)","8755b065":"initialTransfers(address[],uint256[])","875606a1":"freezeTransfer()","8756f3e7":"LogErrorMsg(uint256,string)","8757a2cd":"test_depth(uint256,uint256)","8757d620":"firstBuy(string)","87585707":"buyVouchers()","87586b32":"getPI_edit_2()","8758ba8f":"approveForGeneLab(uint256)","875991eb":"dealLog(uint256[2],bytes32,bytes32,uint8)","875999e0":"getLastKeyTime()","8759afc9":"_initStages()","8759c2f1":"getHappinessCitizens(uint256)","8759d1c3":"sendReceivedTokens(address,address,uint256)","875a8dfc":"post(address,string)","875ac8f1":"PAYOUT_DATE()","875ad967":"DopeRaiderCore()","875c330c":"LogPush(address,uint128,string)","875c7143":"setSecondYearAllowancePercentage(uint8)","875cb3e5":"closeSuccess()","875dc0ee":"changePaymentDestination(address)","875de431":"phaseOneBonusPercent()","875e7bb4":"FactoringChain(address)","875ea5e7":"dividend(uint256)","875f0671":"crowdsaleStatus()","875f71a3":"ETHDistributor()","875fde3d":"createErc20Token(string,string,uint256,uint256)","876012fc":"composeJingle(string,uint32[5],uint8[20])","87609d1a":"__price()","8760b171":"getBPhashFromBPTokenId(address,uint256)","87612102":"loadRefund()","87615cb2":"enableRegulator(address,string)","8761fb7c":"escrowAdmin()","87627869":"setCopaMarketAddress(address)","8762d50b":"_xx()","87630a2e":"activateContract(address,address)","876339b8":"_sellPutToOpen(uint256,uint256,uint256,uint256,address)","8764159e":"findContractByModName(string,string)","8764edd0":"VerificationAccountOnJullar()","876588b8":"Apply_Store_Id_Fee()","876590c3":"setTeamPrice(uint256[],uint256[],uint256)","876777d0":"TTCoin()","87679684":"checkProof(bytes,uint256,bytes,bytes)","876848d3":"valid(uint80)","876911ca":"ArrAccountIsFrozen(uint256)","8769817a":"CROWD_WEEK1_BONUS()","87699aa6":"TOKENMOM()","8769bc7e":"currentSpiderOwner()","8769beea":"openESOP(uint32,bytes)","8769c281":"allowRefunds(bool)","8769c28c":"bogotacoin()","876b0946":"NucleusVisionToken()","876b0a95":"getDiceWinAmount(uint256,uint256,bool,bool)","876b1566":"getTokenHolders()","876ba3cd":"transferModeratorship(address)","876cf0ef":"getCrystals(address)","876da006":"TOKECOIN()","876e79f6":"targetDiscountValue7()","876ee240":"EthWuxia()","876f1c27":"replaceAnimal(uint16)","876f20b1":"crownSymbol()","876f5746":"ShitcoinCash()","876f9795":"mineSalary(uint256)","877046a2":"CGCCoin()","87708311":"OBEFAC(address)","87717cb1":"_hackoinToken()","8772a23a":"configured()","8772ae3c":"setMinimumBet(uint256)","87730ed7":"allocateFundsBulk(address[],uint256[])","87734d53":"getBet(address,uint256,uint256)","8773c0d0":"buySoul(address)","8774e5d0":"setPriceInWei(uint256)","87757835":"Ducker()","8775a557":"DadaCollectible()","877653f0":"_storeBalanceRecord(address)","8778205d":"TransferDisable(uint256)","8778c090":"arrayOfNonTrivialAccounts()","87793dc7":"invokeOnceFor(address)","877aaf4f":"tosToken()","877af5b4":"subFundAccount()","877b9a67":"isIssuer(address)","877c2184":"getIntValue(string)","877c3650":"getproductprices()","877c4f6e":"submitPeriod(uint256,bytes32,bytes32)","877cedb8":"Lockup12m(address)","877d481c":"startStage3()","877ddd77":"commission_ratio()","877f5618":"isAllowClaimBeforeFinalization()","87800ce2":"MD5FromMarketingKeywords(string)","87801cc3":"setNextRoundDonation(uint256)","87804708":"_validate()","8781249f":"getCntByRarity(uint8)","8781382e":"WBU()","878170d1":"fetchValue()","878314c9":"crowdsale_eth_fund()","878377e7":"RAM_Token()","8783bf1a":"EGGS_TO_HATCH_1DRAGON()","8783d407":"feeReplyThread()","87848727":"writedb(string,string,string)","87864af8":"UNFREEZE_TEAM_BOUNTY()","87873b6d":"MoneyTreeToken()","87874e02":"getNextAvailableLevel()","87877e4d":"setSponsor(string)","8787c9ff":"approveCertificate(address,address)","8787f75d":"Kodobit()","878808af":"tokensSoldGoal()","87881ede":"getStackholderConfirmations(uint256)","8789dfbf":"instContAllocatedTokens()","878a18ef":"tokensSentDev()","878c1484":"cause()","878d4204":"testInitialCrowdsale()","878d5ff7":"partnerInfo(address,address)","878de0ae":"userEndGameConflict(uint32,uint8,uint256,uint256,int256,bytes32,bytes32,uint256,address,bytes,bytes32)","878e10e4":"SEHR_WALLET_ADDRESS()","878e8827":"getActionParameterByIndexes(uint256,uint256)","878eb368":"cancelAuctionWhenPaused(uint256)","878eb4ca":"serviceDeposit()","878ef7fe":"RealMadrid()","87902997":"acceptAndAdditionals(bytes32,uint256[])","87903097":"timeoutPlayer(uint256,address,uint256,uint8)","879125a4":"setMaximumRate(uint256)","87914c6f":"prolongateContract()","879206a2":"lastPayerOverflow()","87924815":"ownerAddressSize()","87925132":"PandaCore()","879281c4":"login(bytes32)","87932e0f":"setAddress(bytes32,address,address)","87934ec8":"skinCreatedLimit()","8793ae52":"getCurrentDaoStakeSupply()","87943859":"getRefBonus()","879499f4":"newUriBase(string)","87950f49":"setDistributorAddress(address)","879611bb":"removeGlobalConstraintPost(int256,address,int256,address)","8796a7ba":"totalPrivateSaleStage()","8796d43d":"activeToken()","8796ec86":"getDocumentHash(uint256)","879736b2":"swapValidatorKey(address,address)","87982928":"launchPeerWallet(address[],address[],uint256[])","879844b9":"crowdsaleAddressSet()","87986f52":"getOrderSupportCancel()","879a6f7a":"recoverWarriors(uint256[],address[])","879a83fc":"LogWithdraw(uint256)","879abc11":"applyRuntimeUpdate(address,address,uint256,uint256)","879b18b6":"getMemberCanVote(address)","879bfa27":"Investors()","879cffdf":"TokenBuy(address,uint256,uint256,string)","879d46fd":"DAOTrust(address,address,bytes,uint256,uint256,uint128)","879e4b1a":"empty(bytes32)","879e84ab":"minChequeValue()","879f30ad":"burnSent(uint256)","879f4dfe":"_getCampaign(bytes32)","879f9c96":"purchased()","87a01164":"teamTransferFreeze()","87a04b67":"KUYOOToken()","87a07692":"setWinner(string,uint8)","87a07adb":"getSharedAccounByIndex(uint256)","87a09877":"AdvisorGPX(address[],uint256)","87a16f12":"addScriptExecutor(address)","87a2a9d6":"_MAXIMUM_TARGET()","87a2afb3":"releaseBets()","87a378fb":"holdSubscription(uint256)","87a3903e":"buy(uint16,uint16,uint16,uint16)","87a3be75":"init(address,uint256[],address[])","87a3e445":"icoBonus4()","87a407a1":"setBurner(address,address,bool)","87a675ca":"DataContacts(address,address,address)","87a767e3":"removeCA(address,address)","87a796a1":"_fetchCancelledOrdersForPayer(address)","87a846a5":"getBonus(uint256,uint256,uint256)","87a88c43":"iDistribution()","87a91506":"PlayChainPromo()","87a97752":"setInitialEnemyCombination(uint32[4])","87a9a8ef":"totalSupplyAtCheckpoint()","87a9be0d":"BitSelectArrojado()","87a9c6c5":"buyAndTopup(address)","87aa14d2":"freezeEventOutcome(uint256,uint256)","87aa2bf9":"rmul(uint128,uint128)","87ab42b3":"MysteriumTokenDistribution()","87adab57":"VISTAcoin()","87ae00a3":"ZebiMainCrowdsale(uint256,uint256,uint256,address,uint256,uint256,address,address,address,uint256,uint256,uint256,uint256,int256,uint256)","87ae0dbe":"yearSeconds()","87af74ab":"calculateNumberOfNeighbours(uint256,address,address)","87afe179":"getTotalTicketSetsForRound(address,uint256)","87b01dc9":"setSale(uint256,bool,uint256)","87b0be48":"releaseTokens(address)","87b0d60c":"sumICO1()","87b15c0b":"periodITO_wei()","87b234ec":"createReferralGiveAways(uint256,uint256,address)","87b261ad":"coeff()","87b2fe7f":"luckynum()","87b30845":"exchangeDIDForEther(uint256)","87b3be7d":"Ring()","87b47e4f":"transSupply()","87b4e60a":"newTokens()","87b547e5":"balanceOfDirectoryToken(uint256)","87b551b5":"tokenPayout()","87b55705":"mintingThreshold()","87b57fa7":"GetMinerRigsCount(address,uint256)","87b5914c":"exchangeRateETHToUSD()","87b5c21f":"OCTWasteToEnergyJV()","87b5f114":"xpTokenAddress()","87b73795":"verifyKYC(address,address)","87b751ae":"TokenTrader(address,uint256,uint256,uint256,bool,bool)","87b7a068":"updatesAreAllowed()","87b8963c":"badgeDecimals()","87b9a544":"DataController(address)","87b9e310":"nominPool()","87ba67be":"nextLevelPercent()","87ba67dd":"Arascacoin()","87bb25b5":"UndermineComponent(uint256,address,uint256)","87bb675c":"indexTracker()","87bb6aa6":"_revealBid(bytes32,address,uint256,address,address,bytes32,uint256,uint256)","87bb7ae0":"getTicketPrice()","87bc0fc6":"TokenAirdrop(address,uint256)","87bc6906":"BitGuildTrade()","87bd499b":"lastLevelChangeBlock()","87be727b":"getSum(uint16)","87bea35f":"getCreatePrice(uint16,uint256)","87bf740b":"YYToken(uint256,string,uint8,string)","87bfce9e":"claimedYesterday()","87c00626":"calcTokensToEthers(uint256)","87c05510":"setNewlockAccount(address,uint256,uint256)","87c19bcb":"votelog(bool,address,uint256)","87c1be6e":"globalPause(bool)","87c1ed12":"transferToOwner(uint256)","87c23143":"totalEthBankrollCollected()","87c2ee62":"secondStageEndsAt()","87c38114":"Emojicoin()","87c4aaea":"totalTokenVested()","87c50df5":"erectBarrier(uint16,uint8,uint8)","87c55589":"blockTube(uint256,string,uint8,string)","87c5d1be":"LEDTEAM_TOKENS()","87c70d21":"expressReloadNums(uint256,uint256,uint256[])","87c79d1d":"getColors()","87c84933":"LogParticipation(address,uint256)","87c86277":"setPetName(string,uint64)","87c8ab7a":"changeAllowance(address,address,uint256)","87c95058":"setAdministrator(address,bool)","87cb15f7":"move(uint256)","87cc1e1c":"setExporterBank()","87ccb440":"getReg2()","87ccb57b":"testExecuteSellOrderShouldNotChangeBuyerBalance()","87ccccb3":"PublicMine()","87ccd8b3":"_isComplete(uint256)","87cef144":"updateVIPs(address)","87ceff09":"getBlockTime()","87cf34cf":"getUserContributionReclaimStatus(address)","87cf7768":"walletG()","87cfc1d8":"disableAgency(address)","87d14a36":"MaxPlayers()","87d25299":"tessrX()","87d2544d":"CMOSignature()","87d3525f":"CancelSimpleOffer_internal(uint256,bool)","87d36176":"False()","87d3764b":"ROLE_LEVEL_PROVIDER()","87d3a184":"makeZero(uint256)","87d4ca93":"escrowFrom(address,address,uint256)","87d517c9":"fetchInitialDetails(string)","87d5418f":"aSetEnd(uint256)","87d570c0":"OHGRiverResort()","87d5c6b8":"rentalElapsedTime()","87d67208":"changeIcoStartBlock(uint256)","87d741c9":"getPaidETHBack()","87d76f09":"calculateEstimateToken(uint256)","87d79f8a":"buyIceDrangon()","87d7d24d":"ownerconfirm()","87d803a3":"setResult(uint8,uint8,int8)","87d81789":"payments(uint256)","87d87090":"setMinRefEthPurchase(uint256)","87d9d224":"TokenDistribution(uint256,uint256,uint256,int256)","87da18ee":"getRankPriceEth(uint256)","87da3208":"CollateralToken(string,string,uint256,uint8)","87da9cad":"ApprovalToken(address,address,uint256)","87db03b7":"add(int256)","87dba600":"_set6()","87dc0c55":"getAuctionEnd()","87dcd2b6":"superOwner()","87dcfd2d":"numTokensLeft()","87ddc521":"rewardController(address,bytes5)","87dde4ad":"get_candidate(uint8)","87ddf6cd":"setAddressArrayIndex(bytes32,uint256,address)","87def081":"getFeeRecipient(int256)","87df4838":"CancelSell(uint256)","87dfc909":"queryMap(uint8,int256[],int256[])","87e06546":"PLATINUM_AMOUNT_XPER()","87e0f794":"TwistoToken()","87e1029a":"newStar(uint8,uint8,uint256)","87e12235":"_filiate()","87e19cc5":"EBETCrowdsale()","87e25e0e":"deleteCertificator(address)","87e412f4":"SecurityDeposit(address)","87e42622":"KONSTANTOR()","87e44935":"IDOToken()","87e46baf":"transferVoxel(address,uint8,uint8,uint8)","87e4e64d":"getBalanceMy()","87e6835f":"tokensDrukker(address,uint256)","87e70933":"VoteMusic(uint256,address)","87e7dc5f":"ICOStarted(uint256,uint256,uint256,uint256,uint256)","87e854d3":"addRate(address,uint8)","87e89845":"getBabyMommas(uint256)","87e8a980":"godChangeGod(address)","87e97e82":"AuctionStarted(bytes32,uint256)","87ea8581":"setTemp(uint40)","87ea8893":"PGGameToken()","87ea9d52":"INK()","87eba3c7":"GetBuyingTokenAddress()","87ebd76c":"initContract(string,string,uint256,uint256)","87ecaf0d":"check2(uint256,uint256)","87ed1bd0":"grantAccess(address,uint8)","87ed5112":"setApoderadoVerify(bytes32)","87ed90ba":"securityWallet()","87edb2f5":"decode(bytes,uint256,uint256,uint256,uint256,uint256)","87ede474":"MicinRasaJamur()","87eeddf8":"confirmAndExecuteWithdrawal()","87efeeb6":"singularDTVToken()","87f06ec0":"getForkDurationSeconds()","87f0b8c5":"getStrong(address)","87f0bf31":"addResources(address[],bytes4[])","87f0fae9":"setKingdomFactory()","87f162c8":"initialEBETSupply()","87f1e7f3":"c_softCapUsd()","87f24484":"hashPass()","87f29fdd":"removeDiscountPhase(uint256)","87f3e5d6":"contributorsOfCauldron(uint8)","87f404cd":"getContractRhemBalance()","87f40ba4":"supplyReserveVal()","87f503fd":"DEV_TEAM()","87f51ac2":"athToken()","87f5c846":"ethBalanceOfNoFee(address)","87f6be15":"houseCredits(address)","87f74e7c":"updCouponBonusConsumed(string,bool)","87f7cab9":"removePerson(bytes32)","87f7e2a1":"getTeamCost(uint256)","87f9534b":"getLinkedIn()","87fc00f7":"setTPTContractAddress(address)","87fcd708":"StartICO(uint256)","87fcdbc1":"updateConversionRate(uint256)","87fd0421":"TheEthereumLottery()","87fdc401":"make(address,uint256,bytes)","87feba8f":"getInstallmentDuration(uint256)","87fef15b":"purchase(bytes32,bytes32,bytes32)","87ffe5a7":"dataSourceGetRedCards()","8800052e":"preSaleTokensLeftForSale()","88016da5":"allocateFrom(address,address,uint256)","88017e05":"setContribution(uint256)","8801b4fc":"paused_()","8801c928":"createJob(bytes32,uint256)","88026706":"Template()","88034bc5":"CreateTIX(address,uint256)","88037e1c":"view_get_gameData()","88046818":"getFeeSharingWallets()","8804863f":"payWithToken(uint256,address,address)","8804d119":"sendNextRewardTo(address)","88053eef":"RebuyInformEvent(address,uint256)","88054039":"NordstromOnlineRetailDigitalCoin()","880613ee":"getMadeTXCount()","88064637":"registerAssetDetail(int256,string,string,string,string,string,string,int256)","88064b07":"setNextLotteryTTMTokenId10(uint64)","88065236":"approvedAmount(uint256,address)","88072700":"itemIndexToApproved(uint256)","8807592c":"_calculateCommission(uint256)","8807a110":"isCrowdsaleClosed()","8807a468":"getOrgByIndex(string,uint256)","8807f36e":"lastInitializedRound()","88088a54":"getTransformState()","8808f3d0":"canPledge(uint256,uint256)","8809540d":"globalReinitialization()","8809716c":"setDungeonDifficulty(uint256)","880a0664":"getRoundFinish(uint32)","880ad0af":"transferOwnership()","880ade5b":"foundNewGamblingParty(uint256,uint256,uint256,uint256,uint256,uint256)","880b36e7":"getLastCaller()","880b844f":"getRoundWeight(uint256,uint256)","880c0b9d":"lpAskPrice()","880c5f3d":"EtherBTC()","880c7864":"ResearchGroupAddr()","880cab29":"Founder2()","880cdc31":"updateOwner(address)","880dc4e6":"isWithdrawEnabled()","880e73a3":"OTA()","880e87ed":"setUnlimitedMode(bool,address)","880ead7e":"returnOtherCrypto(address)","880fc14c":"inRate()","88102583":"safeCastSigned(uint256)","881056ba":"GMR_TOKEN_SALE_CAP()","8810ac6c":"BuyCarFailed(address,uint256,uint256)","8810c990":"sha3(string)","88116d13":"checkReferalLink(uint256)","8811a0ae":"addressCount(address)","8811e191":"setDebugMode(bool)","8812e897":"getCurrentBonus(address)","8812ec52":"adviserWallet()","8813304b":"forwardOnBehalfWithRevert(address,uint256,bytes,uint256,uint8,bytes32,bytes32)","881362b4":"changeUserInfo(bytes32)","881461be":"burnAddress(address)","88149fb9":"beginTime()","8814fa3f":"Log0(string)","88157942":"icoStartP3()","8815ee86":"purchaserList(uint256)","8815f3d3":"judgement(bool)","8817a198":"priceToBuyInFinney()","8817ecde":"_getPeriodFor(uint256)","88180ff6":"underwrite(address,uint256)","88185aad":"airDropTokens(address[],uint256)","8819dd8e":"getCurrentPeriodKey()","881abe3e":"addProposalVote(uint256,address)","881adeaa":"abioToken()","881b2666":"xTokenPercent_()","881be8f7":"undo()","881c255e":"updateStageBySaled()","881cfeb6":"addInternal(address,address)","881d3bd0":"LongBought(address[2],uint256[3],uint8,bytes32[3],uint256)","881dac8e":"ECHO()","881ed6db":"lockStart()","881eeaa5":"createEstateWithMetadata(int256[],int256[],address,string)","881eff1e":"setMaxBet(uint256)","881fae6c":"endSTO()","881fcab3":"getShipProductCurrentPriceByModel(uint16)","881fcefc":"updateEnabled(string)","881fd690":"isSecondStageTokensMinted()","881fe0ce":"ZealconToken()","881fe258":"_emitRecord(bytes32,uint256,uint256,uint256)","88203417":"AthleteTestToken()","8820401a":"_tokenPurchase(uint256)","8820e2d6":"newVote(address,string,uint256,uint256,uint256,uint256)","8820f6bd":"economy()","8821bb43":"change_owned(address)","8822048e":"isTransferAllowed(address)","8823a9c0":"changeFeeTake(uint256)","8823da6c":"removeAccess(address)","88254efa":"hideSubcategory(uint256)","88257016":"getNthBallot(bytes32,uint256)","882645fe":"preICObonusMultipiersInPercent(uint256)","8826ce84":"uint8ToString(uint256)","8826fa2e":"setStakedBalances(uint256,address)","88275b68":"mintLockupTokens(address,uint256,uint256)","88279320":"prizeValue()","8827a985":"durationPhaseIndex()","8829a5a7":"transferAndWriteUrl(address,uint256,string)","882a1dee":"KrisTest()","882a1fa0":"getDivCard(uint256)","882b4e68":"User_2()","882bc3e1":"RemoveAllConsentDirectives()","882d851c":"tokenMinus(address,address,uint256)","882dd41e":"updateTokenBalance(uint256)","882e2606":"icoEndLine()","882e9709":"record(string,string,string,bool,string,string,string)","882ee532":"getBylawsMilestoneMaxPostponing()","882f327b":"addLock(address)","882f3e16":"forceWithdraw(address)","882f7e83":"changeRigoblockAddress(address)","88301f57":"subDevOne()","88308ca1":"hardCapInCents()","8830a718":"BTHRTokenSale(uint256,address)","8830e09a":"ATTContribution()","88318834":"abandon()","8831e9cf":"setPlatformWallet(address)","8832243a":"profitSharing()","8832bc29":"ETH_PRICE()","8832ebe8":"lolita()","88331b6f":"amountPower()","883356d9":"isBurnable()","8833ae6f":"aquaman()","8834277e":"emitErrorCode(uint256)","8834526a":"MARKET_CAP()","883462ca":"removeFromKyc(address)","8835097d":"assignedAmountToPrivateEquityFund()","88352a29":"signedApproveAndCallHash(address,address,address,uint256,bytes,uint256,uint256)","8835ba24":"Legolas()","88362d4b":"setDailyLimit(uint256,uint256)","88369d6b":"getTokenBalance(address,address,bytes32)","8836f3ef":"getNumberOfBounties()","8838af8a":"rarityMultiplier()","8838b68e":"etherLeft()","88394fdc":"startRoundA()","8839515c":"OWN_ChangeToken(string,string,uint8)","88398fbc":"PreSaleHardCap()","883a3ea8":"LottoNumberTest()","883a584c":"RichiumToken(uint256,string,string)","883a6476":"IsAirDropEnabled()","883a92e1":"setFreezeEndTime(uint256,uint256)","883ba26b":"getIsSettled()","883ba466":"changeHiddenOwnership(address)","883cd1a5":"cloudsPerEth()","883cdeb9":"newTrack()","883cf630":"resetBucket()","883d0ac6":"totalnSupply()","883dfaba":"getWinBalancesOf(address)","883fdd6f":"IWABOO()","88400fbe":"ICO_TEAM()","884095f6":"getWineryMappingID(string,string)","8841520b":"SpinnerCountsByAddress(address)","88416792":"usersPause()","88417820":"LBSN()","884179d8":"ipfsAttributeLookup(address)","8841937a":"setTileHp(uint16,uint8,uint32)","8841ac11":"buyItem(uint256,uint256,uint256,uint256)","8841dd3c":"thirdRewardPeriodPercent()","88426aec":"getStageDeadline(uint8)","8842bfa0":"Chain4()","8843641e":"removeAmountForAddress(uint256,address)","8843c1ba":"listAcceptedTokens()","8843c222":"MIN_ACCEPTED_AMOUNT_FINNEY()","8843ffba":"signup(uint256)","88445e29":"sha3(uint256)","884543c0":"TokenBought(address,uint256,uint256,uint256)","8846594b":"checkKYC(address)","8847092d":"upgradeMaterial(uint256)","884790de":"agentInvo(address)","8847df97":"ChangeEmissionRate(uint256)","88482233":"Lizambo()","884870c7":"setParameters(uint256,uint256)","884879d6":"startSecondStage()","88488c33":"finalizeTask(uint256)","8848fb0d":"addEmployerJob(address,address,uint256)","884a2308":"setCompte_5(string)","884a26da":"massBurn(uint8[],address[],uint256[])","884a47b4":"setNews(string)","884ade03":"ForceSeller(address)","884ae10b":"saleWalletAddress()","884b5dc2":"fill(uint256[])","884b850b":"BurnAssignedFees(address,address)","884bf67c":"getPrizePool()","884c1480":"LacesToken(uint256,string,string)","884c6440":"BuyItem(uint256)","884ca7b1":"getButtonPrice()","884edad9":"Withdraw(address,uint256)","884f3db0":"check_the_rule(address)","884fafcd":"totalJackpotEven()","88508a18":"getRecentPlayers()","885124c0":"Coin5941()","88516a89":"ownerFraction()","88519ea4":"availablePreICO()","8852024f":"max_TotalSupply_limit()","88524780":"saleAuctionERC20()","885349a2":"payToBank(uint256)","88535e90":"changeMinimumContributionForPublicPhase(uint256)","8853636b":"revealResult(uint256,bytes32)","885363eb":"landOf(address)","88537daf":"checkMiningAttempt(uint256,address)","88538c36":"candidateInformation(uint256)","885463fd":"strategicAllocation()","8854baa8":"AddReturnsMapping(uint256)","88550b6a":"getTokenBuyPrice()","88559aaf":"processAllocation(address,uint256)","8856cd84":"medicaxess()","8856d517":"GetReferralInfo()","8857322d":"DOLLAR_DECIMALS_MULTIPLIER()","885819c2":"getVatIdByAddress(string)","8858287b":"vendorCount()","8858ad6c":"Exploreon()","8858adc6":"setColor(uint16,uint24)","8858fa3b":"totalEthReceivedInWei()","8859c6d6":"operatorCampaignID(address,uint256)","885a3b75":"currentTotalSupply2()","885a5ec2":"lastBlock_f10()","885b63da":"setAuctionStartBid(uint256)","885b6cfb":"addZethrAddress(address)","885c69b5":"clearMetadata(address)","885e2750":"groupsCount()","885e401e":"lifeFactor_i()","885ec18e":"left6(uint256)","885f5011":"calcRatioNext()","8860805a":"extractMax()","8860bf94":"showworker()","8860d49f":"_transferInternal(string,address,string,address,string,uint256,uint256)","8861026f":"complianceWallet()","8862198a":"MasterContract(address)","8862d26a":"offeringType()","88631e18":"distribute(address,uint256,uint256,address[],address,uint256[])","88635b06":"createContractPerson(string,uint256,address)","8863c8d5":"concludeCrowdsale()","8863dd1a":"transferOwnerShip(address)","8863f31d":"Controller(address,address,address)","8864a5fd":"processPendingTickets()","8864d074":"RADCOIN()","8865015d":"g(uint256[20])","886588ac":"confirmVerbose(bytes32,address,uint256,bytes)","8865cbd6":"cancelAllOrdersByTradingPair(address,address,uint256)","88668d21":"getReplyRaw(bytes32,uint256)","88671acc":"FundAllocation()","88672f82":"setEtherRate(uint256)","88684aa5":"nextUnLockTime()","88685cd9":"releasePayment(uint256)","886b148d":"setPropertyPrivateModeEarnUntilLastUpdateBecomePublic(uint16,bool,uint256,uint256,uint256)","886b4954":"secToNextInterestPayout()","886bb359":"chown(address)","886bbe0c":"submitProof(bytes32,bytes32,uint256[],bytes,uint256)","886c0ee6":"Develop()","886d3db9":"uintToBytes32(uint256)","886d969b":"calc_partnerPercent(uint256)","886db803":"_setBigWinner(address,uint256,uint256)","886e549b":"PineappleArcadeTrophy(uint256)","886ed2d1":"enableRealWorldPlayerMinting(uint128[],bool[])","886ef644":"getRate(address,uint256)","8870155c":"getNumTknOfferors()","88702cc4":"debug_hash256Double(bytes)","88705f7d":"NeoCrowdsale(uint256,uint256)","8870985b":"getFreeBalance(address)","887159a2":"treatRemaintoken()","887240d0":"generateFileID(string,string,string,string)","887263cf":"EnigmaToken()","88727ba9":"_depositEthers(address)","8872bb2a":"_createElement(bytes32,uint256)","8872c094":"getUnsoldToken()","8872c68a":"sampleStorage()","8873704c":"addRequest(string,address)","8873d247":"THANKSTEST()","8874fa28":"CurrentRevision()","88753343":"maxResolvedAgonId()","88758581":"unregisterEmployee(address,address)","8875a40b":"endTimeTLP2()","88760a18":"loadStarbaseEarlyPurchases(address)","887651cc":"isAlreadyIn()","887699f3":"periodContributionOf(uint256)","88770cb0":"extendEndTime(uint256)","88776a7e":"testThrowTranferFromEmptyBalance()","88780b8e":"safeBalance()","88782386":"UnicornMilk()","8878356d":"testBetAmount()","88786272":"startingTimestamp()","8878990e":"changeCollateralSeizer(address)","8878adac":"refund_claims(string)","8878d726":"buySpecialBuilding(uint256,uint256,uint256)","8878db7f":"setCRYPTON_CUT(uint16)","887a8e33":"AgencyLock1()","887b00db":"TESTTESTICO(address,address,address,address)","887b1b0b":"recalculateTokensToBuyAfterSale(uint256,uint256[])","887bae74":"addReferenceParentWineryOperation(string,uint256,string,address,int256)","887bbef5":"setMinInvestment(uint256,uint256)","887bdcfc":"accountBalance(address,address)","887c3e5d":"updateAddress(bytes32,address,address)","887c4646":"approveIndexedByAddress(address,address,uint256)","887c4f68":"ludumTokensPerEther()","887c7f92":"remainingReserveSupply()","887ccc82":"getStake(uint256,uint256,address,bytes32)","887cfc3e":"orderToTransfer(address,address,address,uint256,string)","887d23a6":"isBeforeEndTime()","887d813d":"serviceGroupGet(address)","887e0c07":"runPlugin(address,uint40,uint256)","887e22b1":"tier5Time()","887f6178":"genericTransfer(address,uint256,bytes)","887ffc9c":"referalPayByNum(address,uint32)","88806b37":"transferZone(uint256,address)","8880a933":"transferTokensToNonEthBuyerToMany(address[],uint256[])","8881d3a2":"CompensationFailEvent(address,uint256)","8882349b":"vppToken()","88824bd1":"PonziUnlimited()","88827c16":"addPost(bytes32)","8882ddc9":"maxCharacters()","8883478e":"preicoAndAdvisors()","8883c52a":"getNumberOfAssetPacks()","88840671":"Milkcoin()","888419ed":"setData_8(string)","88849e71":"BasketToken(address[],uint256[],uint256)","8884b807":"getVoters(uint256,uint256)","8884cd7c":"changeBuyFlag(bool)","8884fbec":"checkTotalsAndMintTokens(address,uint256,bool)","8885f2a3":"setzBool(bool)","88865347":"grapesToBuildWinery()","88865ee3":"cleanupEven()","8886a667":"registerNameXIDFromDapp(address,bytes32,bool)","8886ca33":"getHeroBP(uint256)","88873eea":"blocktubeClip(string,uint256,uint256,address)","888764c8":"addBouncer(address)","888808ba":"Bittelux()","88888f61":"purchase(uint256,bytes32)","8889025a":"increaseJackpotTimeAfterBet()","88896a0d":"deliverPrize(address,bytes)","88897c37":"request_close()","888a3f79":"_approvedFor(bytes32,uint256)","888aab22":"addWithdrawal(address,uint256,uint256,uint256)","888ade0a":"publicKey(address)","888b6557":"minFundingGoalWei()","888d5917":"limitDateCrowdWave2()","888ea120":"saleDeadline()","888f2b13":"SALE_RATE()","88908546":"refund_eth_value()","889087b1":"meltCrystals(uint256[])","8890e13d":"isArenaContract()","88922e7a":"raiseAppeal()","889231c1":"promoLimit()","889258ea":"startICOStage1()","88929931":"UnlockDateExtended(uint256)","8892bb73":"createChildUniverse(bytes32,uint256[],bool)","8892d571":"withdraw_Leim(uint256)","8893240d":"setPeonyAddress(address)","88933e07":"getSMPTokensLeftForICO()","8893eb13":"getActivated()","88945187":"updatePurchasingState(address,uint256)","8894dd2b":"addEther()","88951352":"distributeTokens(address[])","889569cd":"getKoikeContract()","88968b94":"rateOwner(uint256)","88968bc3":"clearKyc(address[])","8897b1a7":"PRESALE_HARDCAP()","8897c1f4":"randomNumber(uint256,uint256,uint256,uint256,uint256,bytes32)","8897df9d":"addEpisode()","8899568c":"createDefaultZodiac(uint256,uint256,uint256,address,uint256,uint256)","8899fa0d":"onUnVote(address,int256)","8899fffd":"myFinneyValue()","889b59d9":"getDBallotsN(bytes32)","889c10dc":"addDelegate(address,address,bytes32,address,uint256)","889cd532":"upsertOne(address,uint256,bool,bool,uint256)","889d227d":"newPaymentAddress(address,bytes4)","889d9550":"getCryptoCupTokenContractAddress()","889e175e":"__slash__(address)","889e5073":"getStatus(address,address)","889eaa0d":"nextRate(uint256)","889f0c99":"withdrawFor_(address)","889fa1dc":"getFighter(uint256)","889fb53e":"incrementCoin(address,uint256,bool)","88a0e990":"BridgeTheChain()","88a12f7a":"_getUint(bytes4)","88a15f11":"secondMaxAmount()","88a17bde":"allocation()","88a1e895":"test2Fails()","88a2653c":"unwhitelistAddresses(address[])","88a2995d":"MyToken(uint256,uint256,string,string,uint256)","88a49164":"testErrorUnauthorizedTransfer()","88a4e86c":"balanceOfRaw()","88a525c4":"withdrawTokenBalance(uint256)","88a55c8b":"setBustRange(uint256)","88a6c749":"getFirstTranscoderInPool()","88a6cc53":"lockPurchasedTokensClaim(uint256)","88a74525":"fraction(int256,int256,int256)","88a79003":"addWhitelistInternal(address,address,bool)","88a7ca5c":"onTransferReceived(address,address,uint256,bytes)","88a89dd0":"add_to_buy_bounty()","88a8b341":"setVoteInternal(uint256,uint160,bool,bool)","88a8c95c":"changeDev(address)","88a8d602":"management()","88a95495":"removeFromMap(uint256[])","88aa1001":"checkJoinAirdropQuest(address)","88aa8bee":"getTokenDetails(address)","88aaa229":"AcceptsIDK(address)","88abc4a2":"coinIssuedPrivate()","88ac76ca":"cthereum(uint256,string,uint8,string)","88ad52f0":"DouYinToken()","88adbf8f":"addressOfTokenUsedAsReward()","88aebe00":"calculateWineBuy(uint256,uint256)","88aece7f":"setBuyOrdersContract(address)","88aed238":"ixix()","88af30c3":"_mainAddress()","88af6534":"VRF_EGG_COST()","88af883b":"adm_trasfer(address,address,uint256)","88af8ed4":"removeInvestor(bytes32)","88afdeba":"totalCreatedGame()","88afe426":"_removeAgonIdByOwner(address,uint64)","88b11ee2":"DZoneCoin(uint256,string,uint8,string)","88b2ed1a":"addPlotAndData(uint24[],string,string,uint256)","88b322c3":"setAdvisors(address)","88b3a538":"projectManagers(uint256)","88b44c85":"assertEq(uint256,uint256,string)","88b45046":"income()","88b4b861":"proposeTo(address)","88b51ac0":"gernerateVoting(uint256,uint256)","88b55641":"buyTokenIco(address,uint256)","88b59734":"vendueClosed()","88b75493":"getLastAuditAuditor(address)","88b7a17c":"functionName(bytes32)","88b7a89d":"test0_create()","88b7e6f5":"returnInt128(int128)","88b7f5e5":"advisersWallet()","88b8c487":"playerWithdraw()","88b9022f":"semanticVersion()","88b95242":"PricingEnergy(uint256)","88b9a469":"initVault(uint256)","88b9e10e":"seizeTokens(address,uint256)","88bac2b8":"Mediated_Transfer(uint256,address,address,uint256)","88bb0c73":"teamsReward()","88bb18fc":"mintDSBCToken(address,uint256)","88bb6e68":"AkershoekToken()","88bb9fb1":"MultivestSet(address)","88bc65e3":"getFreelancerAvgRating(address,address)","88bec9da":"deleteMember(uint256)","88bf60b7":"transferMinimumFee()","88bff117":"setDrop(bool,uint256,uint256)","88c058a5":"subDefence(uint256,uint256)","88c0b8a7":"setChangeFee(uint32)","88c0bc8e":"buyTokensWithReferrerAddress(address)","88c12be2":"deathData_f0()","88c190a4":"NiMingToken(uint256,string,uint8,string)","88c2a0bf":"giveBirth(uint256)","88c30278":"getMinerOffsetOf(address)","88c3ba85":"ParallelGambling()","88c3ffb0":"getRoundInfo(uint256)","88c463af":"contributorsOfCauldronRound(uint8,uint32)","88c4e888":"get_token_state()","88c55c47":"initializeVesting(address,uint256)","88c600d0":"CryptoCongress(address,uint256,uint256)","88c662aa":"getController(address)","88c6abf8":"currentIteration()","88c7b6e6":"CrowdSaleMacroansyA()","88c7e397":"buyable()","88c8475c":"batchFreezeAccount(address[],bool)","88c8da99":"deactivate_admin_comission()","88c912b8":"sendToAddressWithBonus(address,uint256,uint256)","88c91d24":"computeCooldownTime(uint128,uint256)","88c91fb1":"transferExtender(uint256)","88c9a7d5":"setPixels(uint32,uint32[],uint8[])","88c9cb3c":"timer()","88c9ebbd":"getKeyPrice(uint256)","88cac17d":"setNextLotteryTTWTokenId3(uint64)","88cb214e":"editWhitelist(address,bool)","88cb8a73":"setPixelBlockPrice(uint256,uint256,uint256)","88cbc84a":"buyInvestmentPackage(uint256)","88cbdf13":"toUint32Throw()","88cc58e4":"getFactory()","88cc81de":"PaymentExpectationCancelled(bytes8)","88cc852a":"notZero(address)","88cca295":"addressToPurchasedBlocks(address,uint256)","88ccf2b9":"SetTokenInfo(uint256,address,uint256,uint256)","88cd2d47":"UserCRUD()","88ce3048":"lastweek_winner3()","88cee87e":"adminRemoveRole(address,string)","88cf2bc6":"buyStarCoin()","88cf6648":"liquidationPriceWad()","88d0443d":"bounty_address()","88d0820e":"selfFreeze(bool,uint256)","88d0b42d":"getRecentActivity()","88d115af":"PonyCore()","88d116b8":"_createPlayer(string,uint256,address,uint256)","88d12a4d":"totalWeiReceived()","88d18ea4":"featureSprite(uint256)","88d21ff3":"pollExists(uint256)","88d2faf9":"publishMemberEvent(address,uint256)","88d450e4":"setArtistsAddressAndEnabledEdition(uint256,address,address)","88d52ef7":"poolContract()","88d60e27":"setPercentTokenAllocation(uint256,uint256,uint256)","88d695b2":"batchTransfer(address[],uint256[])","88d723ac":"TetherToken(uint256,string,string,uint256)","88d761f2":"finishMigration()","88d7cd97":"externalStorage()","88d7e087":"withdrawChi()","88d8c702":"Summary(address,uint128[])","88d8da5f":"equals(string,string)","88d937a3":"createnation(uint16[],string,uint256)","88d97c30":"getGroupPageCount(string)","88d9fc4d":"updateReserveVault(address)","88da9bfd":"getUserNumbersOnEther(uint256)","88db84bc":"getRequiredStateChanges()","88dbe7a7":"dividendBonus(address,uint256,uint256)","88dc0d49":"TRcoin()","88df13fa":"multiMint(uint256,uint256[])","88df31f0":"minDiscountEther()","88dfee60":"setOtherFounder(address,uint256)","88e01a98":"closeRound(uint256)","88e072b2":"checkTransfer(address,uint256)","88e114cc":"log_approve(address,address,uint256)","88e16190":"ItemCreatePrice()","88e2af0e":"initialBattle(uint256,uint256)","88e2ca21":"getClue4()","88e2da99":"randDelay()","88e2f29b":"updatedPrice()","88e3c5d6":"addVerifiedUser(address)","88e3cfda":"setResult(string)","88e3ffeb":"updateMinimumWeiRequired(uint256)","88e47f29":"_ChallengeSucceeded(uint256)","88e490eb":"getInfoCellBalance()","88e4b6ad":"calculatePotCut(uint256)","88e5581e":"twitterDropSingleAmount(address[],uint256)","88e62721":"revoke(address,bytes32)","88e67d96":"isAccess(address,string)","88e694aa":"MANNCOIN()","88e765ff":"maxBuyAmount()","88e814e6":"getTopPlayers()","88e85127":"ModeratorAdded(address,address,bool)","88e854e0":"SDR(uint256,string,string)","88e8e26a":"ServiceToken()","88e90253":"NewRateSet(uint256)","88e951dd":"totalContributors(uint256)","88e9d45d":"ButtonClickGameContract()","88e9fb4f":"keyEmployeesAllocatedFund()","88ea41b9":"setMinBet(uint256)","88ea70ee":"bountyTokensAddress()","88ea8ee5":"bonusCRS()","88ea8fd8":"manualUpdatePrice()","88eb615c":"LogWhiteListed(address,uint256)","88eb7af7":"_isHuman()","88eb944b":"addDedication(uint256,string)","88ebf975":"setDebt(uint256,address)","88ec6f42":"Cef()","88ec838f":"configParams()","88eccb09":"addLevel(uint256,uint256)","88ed8b36":"notRandomWithSeed(uint256,uint256)","88ede276":"hasBeenConstructed()","88ee4b2d":"_getIdIfValid(bytes32,uint256)","88eea4f3":"WhiteBitcoin()","88ef59fb":"releaseOldBalanceOf(address)","88efc97b":"activateEscapeHatch()","88efedf4":"AIRDROPS_PERIOD()","88f020bb":"drawWinner(uint8)","88f1ccf2":"cancelInvestment(address[])","88f2b12e":"SerpentHead()","88f34bc2":"depositAndVote(uint256,uint256,uint256)","88f53db1":"getDataRequest(uint256)","88f5eb36":"exchangeRateForBTC()","88f6d5a4":"constructCoinbaseTx(uint256,uint256)","88f7c6d6":"setExchangeStatus(bool,bool)","88f9ff98":"_random256()","88fabb3a":"SetMessage(string)","88fad42a":"EthereumRisen()","88fb4af0":"ShootRobinHood(uint256,string)","88fc0825":"unregisterNode(uint256)","88fc176c":"DucToken(uint256,string,uint8,string)","88fc65fb":"isTransferable(address,uint256)","88fcba88":"fundingDeadline(bytes32)","88fd0b6e":"getMembershipPrice(uint8)","88fd35e8":"setConfiguration(uint256,uint256,int256)","88fdf3d4":"setWinnerPrizes(uint32)","88fedd04":"houseProfit()","88ff2dcc":"createProject(string,address,address)","88ff9416":"initialize(address,address,address,address,address,address,address,address,uint256,uint256,uint256,uint256[])","88ffc33e":"bltMasterAcc()","88ffe867":"pledge()","89009ab0":"purchaseAd(uint256,uint256,string,string)","8901b9ae":"withdrawBalanceFromAdmin(uint256)","89020fe3":"PacifistFarmer()","89029d8c":"get_all(uint256,uint256)","89034082":"issueToken(address)","8905fd4f":"reclaimERC20(address)","89064fd2":"approveWithSender(address,address,uint256)","89065e9a":"getPlayerSpaceshipOwnerById(uint256)","89077ad2":"SharderToken()","8907e787":"isAccountWhitelisted(address)","89080102":"verifyDSHash(uint8,bytes,bytes)","8908017f":"calculatePhoenixPoolCut(uint256)","890814f8":"bountyValue(uint256,uint256)","8908e693":"setTokenCurator(address)","890a018d":"externalSales(uint8[],bytes32[],address[],uint256[],uint256[])","890a7ef7":"publish(bytes,string)","890a9917":"privateSaleMinContrAmount()","890ac366":"mintReserve()","890b2adc":"Reply(bytes32,bytes32,uint256)","890c6848":"WallCoin()","890d6908":"solve()","890e2a6b":"updInvestorPreSaleEnabled(address,bool)","890e839f":"isOnSale()","890e9d2f":"getAllowanceSpenderValue()","890ea91a":"creditsOf(uint256,address)","890eba68":"flag()","890ed1cb":"dealHouseCards()","890ede44":"TokenCoin5()","890f2168":"crowd_end_date()","8910b070":"NUC()","8910cd58":"substractLockedAmount(uint256)","89113858":"IHCToken(uint256,string,string)","8911cd9a":"silverPercentage()","8911cf0d":"unsafeResignOwnership()","8911e26b":"isUnrestricted()","89128b70":"get_submission_queue_length()","8912ab5c":"dropVotes(address[])","89135ae9":"setAdministrator(bytes32,bool)","891363a6":"lastCWCETH()","8913b809":"initPlayers(uint32,uint32)","891407c0":"purchaseTo(address,uint256)","8914f1e1":"getDepositAmountFor(address)","89158ff9":"assignDispute(string,address,string,address)","89165dcb":"changeEtherDeltaDeposit(address)","8916cbc6":"minRedeem(address,uint256,uint256)","8918485b":"setEthlanceSponsorContract(address)","8918ab1b":"Sumte()","89198fed":"fulfilled(bytes32,address)","8919e3b6":"VinzCoin(uint256,string,uint8,string)","891a2f31":"buyItem(string,uint256)","891a3e23":"gettotalEth()","891a8b85":"ethPriceInUSD()","891aab6a":"addStaffWhitelist(address[])","891acff7":"updatedPrice(string)","891c738a":"isTransPaused()","891d4fe8":"printContent()","891de9ed":"fromTLA(string)","891df671":"registeredAt(uint256)","891e6f43":"thisContract()","891e75bf":"preSaleCreated(uint256,uint256,uint256)","891f5ce5":"successfulFunding()","891fa67d":"PsyMultiSig(address[],uint256)","891fe103":"typeBuffPercentage()","89206411":"batchAttachAssets(uint256[])","8920bcf9":"mediaToken()","8921329f":"registerBlog(string)","89222698":"SetWriter(address,bool)","89224227":"haltDirectTrade()","892250a7":"commonBudgetAdress()","89225c5a":"bountyManagerAddress()","89231bcc":"getDataNum()","89233fbd":"getPlayerGuessNumbers()","892412f0":"availableInventoryOf(uint256)","89244e2a":"dateEnd()","8925d7bb":"getTotalBrags()","8925f9e9":"getWorseOrderId(bytes32)","89266fca":"tokensSoldOnPublicRound()","8926f723":"GMBCToken()","89273f15":"addStorage(string)","89281963":"setServicestationAddress(address,address)","89286abd":"freezeAccountTransfers(address)","892886e1":"PresaleTokenPurchase(address,address,uint256,uint256)","89291b05":"updateSubscription(address,bool,uint256)","892a0e42":"releaseToSeller()","892ad596":"changeTimes(uint256,uint256,uint256,uint256)","892c0214":"NumberOfCurrentBlockMiners()","892cd384":"CreditHydraToken()","892d31e8":"setEndCloseSale(uint256)","892db057":"isTokenEscapable(address)","892dfdf6":"transferDisabled()","892e0614":"distributeDivs(uint256)","892e243a":"directorName()","892e3f98":"setContributionInWei(uint256)","892e8dd9":"getViewDataByIndex(uint256)","892ee1a2":"removeUserFromBlacklist(address)","892ef672":"getACLRole8972381298910001230()","892f81df":"initializeTreasure(uint256)","89301afc":"Registrator()","8930c702":"updateWhitelist(address,address,uint8)","89311e6f":"startIco()","8931c998":"calculateTokenPresale(uint256,uint256)","89320239":"WHP()","89320771":"FDC(address,string)","89325127":"test_require()","89327ad5":"transfer_single_token_balances(address)","8932da79":"additional_price_money()","8932dc3d":"publishResult(string,string)","893372ca":"cancelPending(bytes32)","89337e84":"createTokens(bytes32[])","89341f6e":"TCASH()","89349217":"GamersCoin()","8934d115":"verifyUrl(string,string)","8935556d":"setDividends(uint256)","8935860d":"transferAgent(address)","8935b613":"setContentsManager(address)","8935ced5":"weightOf(uint256,address)","8936b8d4":"getCurrentRateInCents()","8937a0e8":"Guestbook()","8937d3dd":"Champion()","8937e223":"distoryAndSend(address)","8938656b":"getGeneratorsIds()","893880b6":"purchaseShareContract(address)","8939f5f6":"recoverCat(uint256)","893ae703":"bonusInPhase4()","893b746a":"cooperateRewardSupply()","893b8b0a":"getCategoricalMarketNumTicks(uint256)","893c1d31":"bountyReserveTokensDistributed()","893cebb3":"createSalesOffer(bytes32,address,uint256,bool)","893cf478":"chargeVerificationFee(address,address)","893d20e8":"getOwner()","893d4948":"JTEToken()","893fb18e":"buyout(uint256,bool,uint256,uint256)","89400fcc":"SkillCoin()","89402a72":"__default__()","8940aebe":"publicKey(uint256)","8940afe7":"testFailBurnGuyNoAuth()","8941db65":"addTime()","894306d5":"CanChange()","89443aac":"bttsVersion()","89452488":"NEBC(uint256,string,string)","8945a8af":"TOKEN_RESERVE1_CAP()","8945b1fc":"takeOwnership(string)","8945d643":"m_softCap()","8945e00d":"getForkCalled()","89462c38":"setContract2(address)","89465d2e":"dataForWithdraw(address)","8946d33f":"SplitterEthToEtc()","89473a0e":"PRCT100_D_TEAM()","89476069":"withdrawToken(address)","894766dd":"setTotalCoins(uint32)","89483926":"checkGainsToReceive()","894875cf":"_decimals18()","8948fe67":"wlDuration()","89495172":"convictFinal(uint256,uint256)","8949e109":"curReward()","894a62b3":"addContributionList(bytes10,string)","894a93e2":"tgeSettingsPartInvestorIncreasePerStage()","894b8d2e":"victorieumStatic1Token()","894ba833":"disableContract()","894ca160":"CanToken()","894cd9b6":"placeBuy(address,uint256,uint256)","894cdcc1":"ADXToken(address,address,uint256,uint256,uint256,address,uint256,address,uint256,address,uint256)","894d05b5":"buy_drink(uint256,uint256)","894d6ef9":"TripCoinTeamAddress()","894d7b08":"claimTokenBonus(address)","894e036d":"callAndReward_2(string,string,uint256)","894e5e1f":"GEE()","894e5f2d":"isUserAuthorized(address)","894ee6d9":"_getTimeValue(address,address)","894f6531":"SingleTokenLocker(address)","894fefeb":"TokenHeld()","89506a44":"MAX_TRANCHES()","89514f6e":"setSummary(string)","89519c50":"refundTokens(address,address,uint256)","895224db":"testControlBlobStoreNotRegistered()","89523d77":"removeProperty(bytes32)","895274bb":"getPlayerSpaceshipBattleLevelById(uint256)","8952877b":"storeProof(bytes32)","8952f965":"isTransferConfirmed(uint256)","8954f5b1":"winChoice()","895594f6":"setEarlyParticipantWhitelist(address,bool,uint256,uint256)","895595d5":"firstRoundICODiscount()","8955ed7e":"claimBalanceOwnership()","895678a2":"expireDelay()","89568a13":"TSTEST1()","895693a9":"getToBalance()","8956fceb":"addAlt(address,uint256,uint256)","89574144":"GXESwapper()","89578145":"checkIfYearHasPassed()","8957d6f2":"numOfLegendary()","8957f8bf":"getLastMoveTime(uint16)","89596409":"getMigrateState()","89597595":"HCLCToken(uint256,string,string)","8959cbfe":"punksOfferedForSale()","895a8cfb":"secondWeekMainICOBonusEstimate()","895ab68c":"canCallDefault(address)","895abac9":"landPriceCandy()","895b4da7":"RunSale()","895bf2e1":"tickets10price()","895c1596":"getExpectedTotalTokens()","895c1bdb":"setStatus(address,address,uint8)","895c4c39":"unlockDevSupply()","895c666a":"createCommonPlayer()","895cf354":"validCertificators(address)","895d4e1b":"getMiningDetail(uint256)","895e8b23":"_tokenExists(uint256)","895ec54c":"getPack(uint256)","895ee30d":"Purchase(address,address)","895f468b":"markAllRead()","89604ed0":"rebalance_delete(uint256,bool)","89611d0a":"checkIfSignedBy(bytes32,address)","89612f95":"setPrivateSaleTokensSold(uint256)","896131ca":"NewEntry(address)","896147e1":"ratePre()","8962aead":"setPOOL_edit_23(string)","896317b8":"getAssetType()","89637214":"presalePiTokensLimit()","896372b4":"addLogBlock(uint256,uint256,uint256,string)","89638de3":"setItemNotForSale(uint256)","8963c04b":"tokenSaleTokenBalance()","8963dab4":"getNodeId(bytes,bytes)","89658163":"setPath(uint256,uint256,bytes,bytes)","8966321e":"canTransfer(address,address,uint256,bool)","89666fd6":"adminSetPercentInvite(uint256,uint256)","8966768f":"confirmOracle(address,uint256)","89668a39":"addOpenRoomCount(address)","89675cac":"set(address,address)","89676b27":"storePrizeMoney()","89685242":"isValidPeriod(uint256)","8968c17c":"BlockchainCutiesCore()","8968db88":"GazeCoin()","89698f02":"recordContract()","8969fb5f":"USDETHRATE()","896a17a4":"releaseRestBalanceAndSend(address)","896ca3f4":"put_purchase_for(uint256,address,address,uint256,uint256,uint256,address,bytes)","896ce019":"getDailyTransactionVolumeSending()","896d505a":"setReport(uint256,bytes)","896d807a":"setAttribute(bytes32,string,uint256)","896e0349":"TokensClaimed(address,uint256)","896ed75a":"refuseAddress(address)","896f40dd":"ownerOnly()","897032e3":"ClipToken()","8970430e":"IcoContributed(address,uint256,uint256)","8970a0f4":"getFinalPayoutDistributionHash()","8970d84c":"_tokens()","89712af3":"longTermHolding()","8971739b":"getVIPCount()","8972feba":"reserveTokensGroup(address[],uint256[])","8973123c":"saleStartDate()","8973d0cf":"CoinwareToken()","8973e316":"resolveSellCityForEther(uint16)","8974372d":"payFund()","897463aa":"startContribution()","89749adb":"BuyTokens(uint256)","8975e45f":"currentNumberOfUnits()","89760e0a":"stateIndexToOwner(uint256)","89765328":"totalInvestmentOf(address)","8976762d":"setA_Signature(uint256)","8977f909":"UTCStart()","89781912":"setAllowedAddresses(address,bool)","8978fc79":"batchDistributeFees(uint256,uint256[])","89790192":"WithFee(address,uint256)","897a7dab":"createTokens(uint256[],address[],bytes32[],uint256[],uint256[],bytes32[])","897b0637":"setMinAmount(uint256)","897c41dd":"showInvestorVaultFull(address)","897c8613":"payContributorByAdress(address)","897cb036":"softCapTokens()","897cceee":"lockContract(bool)","897d2b10":"getPixelArray()","897d55cd":"migrationGetBoard(bytes32)","897e47f5":"setDateMainEnd(uint256)","89800cc2":"mtrContractAddress()","89804ddc":"getSagaExchanger()","89805f30":"s32(bytes1)","89805fc6":"PPCContract()","8980f11f":"recoverERC20(address,uint256)","89813984":"isWhitelistAddressListed(address)","8981a7ca":"actionA(uint256)","8981d077":"lockForWork(address,address,uint256)","8981d513":"owner(bytes12)","89826963":"changeICOStartTime(uint256)","8982b185":"buySEKU(uint256,uint256)","8982d772":"submitInitialEmptyState(bytes32,uint64,uint256[2],bytes32,bytes32,uint8)","898366d7":"ETH888CrowdsaleS2(address,address)","8983d2e9":"goldSymbol()","8984034f":"emitPriceUpdated(uint256,uint256)","898403c3":"getCurrentBlockTime()","8984e5dd":"_subBalance(address,uint256,address)","89850fae":"nextStep(uint256)","89852db2":"PARSEC_CREDITS_MINIMAL_AMOUNT()","89853691":"readUint256(bytes32)","89859b50":"updateLatestTree(bytes32)","8985a309":"setAllowedAddress(address,address)","8985abc8":"publicSaleAmount()","898644cc":"getFreeMiner(address)","89864915":"TyzonSupply()","89869163":"claimFailedConsensus(address)","8986ff32":"setEndTimeIcoStage3(uint256)","898855ed":"changeName(bytes32)","89885a59":"tokenOwnerOf(uint256)","8988b284":"isMod(address)","8988c1ff":"LogWhitelistUpdated(address)","8988d59e":"Transfer(address,address,uint256,address,bytes,bytes)","89895d53":"orderBlockNumber(bytes32)","89897104":"_buyRank(address,uint256)","8989851c":"operationList(uint256)","898a1813":"expectationsLeft()","898aa23b":"setPriceInCents(uint256)","898ad5ec":"set_arbits_presale_open(bool)","898c94b7":"SetDidPayOut(bytes32,bool)","898ce10c":"ChangeItemOwnerID(uint256,uint256)","898dc9b6":"setData_31(string)","898e3950":"addWinner(address,uint256,uint256)","898f767b":"precioether()","898fb033":"updateDescription(bytes)","898fdf94":"claimRate()","8991dede":"Falcon()","89920edf":"mintLockCashout(int256,address,uint256)","899231ef":"PRE_ICO_MINIMUM_CONTRIBUTION()","8992ae0e":"UBETCOIN_LEDGER_TO_LEDGER_ENTRY_DOCUMENT_PATH()","8993021b":"risks(bytes32)","899346c7":"nextPositionId()","89935c39":"getAmbientTempControlLimits(bytes32)","8994fa53":"TopUpMember()","89952097":"releaseRestBalance()","8995305e":"AsterionWorldToken()","89975389":"newVoting(string)","89976229":"setAmout(uint256)","8997f8cf":"getTokenUpdatedCounter(uint256)","8998470d":"tradeIntentOf(address)","8998ef19":"withdrawTokenMaker(address,uint256,address)","899942b8":"Devcon2Token()","899967b7":"redeemExcluded(address[],uint256[])","8999dd63":"ESoulToken()","899a0e7e":"OpenAIBlockChainToken()","899a1e36":"addBounty(address,uint256)","899aa65c":"Judged(uint256,bool,address,bytes32)","899ae006":"createBabies(uint256[],uint256[],uint256[],uint256[])","899b3414":"updateCoupleImageIPFShash(string)","899b53c9":"RICHToken()","899b64d9":"tokensPerEther_denominator()","899b6713":"VIRTToken()","899bf897":"isAllowedToRedeemNow()","899c0360":"getVIPRank(address)","899c4434":"testValidateTrade(address,address,address)","899d1556":"firstRoundICOTokensLimit()","899d840f":"PayPoker(string,string)","899e0fc9":"balanceOfPot()","899e37b9":"mintAndLock(address,uint256,uint256)","899e87f3":"AmountSet(address,uint256)","899ecf2b":"phase3EndBlock()","899f107d":"roomNightsOfOwner(uint256,uint256,bool)","899f9d29":"YCBToken()","89a0b679":"setContributor(address,address,bool,uint16,uint16,address)","89a2662f":"NeonCoin(uint256,string,string)","89a27984":"phepToken()","89a30271":"USDC()","89a3a00d":"addMinutes(uint256,uint256)","89a3e807":"Corban(address)","89a419e1":"set_stage_Days(uint256)","89a451fb":"getPriceChannel(string)","89a45223":"testFailCreateWithParentsParentNotInUse1()","89a4931d":"maxContributionAmountContract()","89a4bd1b":"foundationHashed()","89a4c1a0":"DevAddress()","89a5f2df":"privateSaleBonus()","89a69c0e":"setSubRegistrar(bytes32,address)","89a7adcc":"DelSocialAccount(bytes32,bytes32)","89a81e83":"validPurchase(uint256,uint256,uint256)","89a83701":"level(address,address,uint256)","89a9453a":"removeAllowedContracts(address[])","89a9d38e":"_approve(address,address,bytes32)","89a9d6b4":"tokensRemainingStage3()","89aaad29":"currencyUpdateAgent()","89abeb19":"ProcessGameExt(uint256)","89ad0a34":"setLocked(address,bool)","89ad0efd":"calculateAmountOfUnits(uint256,uint256)","89ad50e3":"CindicatorTalk()","89ada759":"availableBountyCount()","89ae1c90":"nativeReputation()","89aeca76":"registrars(address)","89af049d":"removeNacFromNLF(uint256)","89af175c":"RiservaETH(uint256)","89af2dce":"getBalanceFrom(address)","89afaf9d":"AddMod(address,address,bool)","89afcb44":"burn(address)","89b13814":"Killable()","89b1714b":"simpletransfer(address,uint256,uint256)","89b1802c":"feesRateCongres()","89b1fa0a":"ROLE_TRANSFER()","89b2050b":"addExtraBalance(address,uint256)","89b2b09e":"ABDEL_ADDRESS()","89b2df31":"getTurn(uint16)","89b337a7":"GetCityData()","89b38d2f":"getInvoicingAddressByIndex(string,uint256)","89b3f8c7":"Flames()","89b49d61":"checkCapNotReached(uint256)","89b4a36f":"Depot()","89b4c550":"checkAndSendPromoBonus(uint256)","89b51f94":"setCommunityAddress(address,address)","89b52360":"referralCount()","89b52b9b":"sendCoin(address[],uint256[],bytes32)","89b540aa":"FuckYou()","89b5b514":"maxFinalStage()","89b5ea24":"outputMoney(address,uint256)","89b61a85":"updateVeifyFee(uint256)","89b68f40":"releaseFounderTokens()","89b7e746":"getMyOpenedCount(address)","89b898b8":"batchConvertIntoHtlc(bytes32[],address[],uint256[],uint256[],uint256[],bytes32[])","89b8b492":"read(uint64)","89b8db55":"minBounty()","89b933cd":"serviceFallback(address,uint256,bytes,uint256)","89b9572f":"RBTToken()","89b97d07":"totalSite()","89ba3b23":"confirmDepositQuest(address)","89ba8e61":"getExplicitStrategyState()","89bb55c7":"apply(bytes32,uint256,string)","89bc0e6e":"UnitedToken()","89bc2006":"BagPackToken()","89bc455d":"THO()","89bca2d5":"addAuctionItem(uint256,uint256,address,uint256)","89bcbee2":"DemoToken()","89bcf968":"timeExpires()","89bdb217":"totalTeamFundMinted()","89be87a1":"openChannel()","89bfc6be":"PIVOTCHAIN()","89c0b25c":"openDispute(address,string)","89c1108d":"isTimeVault()","89c186d5":"addNewBusinessWallet(address)","89c18b48":"EtherusToken(address)","89c19ddb":"concat(string,string)","89c2443e":"executeSelfdestruct()","89c29b61":"calculatePaycheck(uint256)","89c44def":"sendMileStone(address,uint256,uint256)","89c5077f":"withdrawDevFee(address,uint256)","89c55845":"setBonus(uint8[5])","89c5ee3b":"executeAfterFinalize(bytes)","89c67976":"getAcceptance(bytes32,address)","89c698d4":"CrypteriumToken()","89c73565":"birthBlockThreshold()","89c766fd":"pause_for_maintenance()","89c77dfe":"mintValue()","89c7abfd":"removeAdministator(address)","89c7e70c":"BitliquorStandardToken(uint256,string,uint8,string)","89c98c06":"getMaxGasPrice()","89c9c44a":"EmontFrenzy(address)","89c9c586":"slopeDuration()","89c9e80f":"PotOwner()","89cb29dd":"nextEscrowId()","89cbc416":"tokensRedeemed()","89cc5c2b":"createdBlockOnRevealsPhase(uint256,address)","89cc5ea8":"bid(string,address,uint256)","89cc81c1":"contribute(bytes32)","89ccd39a":"set_address_A(address,address)","89ccf28c":"checkCapAndRecord(address,uint256)","89cd4b5e":"decidingBlock()","89cda6a8":"pausePVP()","89ce16cc":"maxRange()","89ce33bd":"delegateERC820Management(address)","89ce555c":"devFeesAddr()","89ced196":"setNotUpdatable(bytes32)","89cf5604":"releaseReserveTokens()","89cf9f94":"_reserveRefTokens(address,uint256)","89cfa823":"addPendingWithdrawal(address,address,uint256)","89cfd71b":"setPrivate(uint256)","89d2fca3":"DoctorChainToken()","89d3a15b":"addNewBlock(bytes32[],bytes32,bytes32)","89d3ed8d":"defineDiscountBorderLines()","89d410e9":"setIcoOwner(address,address)","89d4a66c":"internalDeposit(address,uint256)","89d59ee5":"createPersonalDepositAddress()","89d5da3b":"AlphaMarketICO(address[])","89d61942":"nextAuctionSupply(uint256)","89d61d77":"setOrganizer(address)","89d67775":"window1TokenCreationCap()","89d6d69d":"stampIndexToApproved(uint256)","89d700a5":"TheGTokenTest(uint256,string,uint8,string)","89d75221":"revokeSignToCancelAgreement(uint256)","89d77f82":"blocksToWaitLong()","89d86c5d":"getRetailer(uint256)","89d8b472":"_error(string)","89d8ca67":"drawPot(bytes32,bytes32)","89d8f96f":"getDirectOffersComissionRatio()","89d9b059":"refillRatifiedMintPool()","89d9ed38":"reserveFunds(address,address)","89da85d3":"getNumberOfArticles()","89dbeb64":"fundForAirdrop()","89dc8719":"getUserMaxPurchase(address)","89dcbbf9":"getFreeLobster()","89dcd64f":"saiTub()","89dd9e22":"changeBrick(uint256,string,string,string,bytes32[])","89ddeff3":"neurodao()","89de2581":"SetStorageContract(address,address)","89df1b01":"setMultiRequestLastRequestId(uint256,uint256)","89e198b4":"validContract(uint32,uint32,address)","89e2605d":"setReleaseAmountToCreator(uint256)","89e28a47":"getGameResults()","89e2c014":"allocateVestedTokens(address,uint256,uint256,uint256,uint256)","89e2d8bb":"handlePayableSharesDelta(uint256,uint256)","89e40af2":"stageSum(uint256)","89e42346":"enableRefund()","89e478f6":"minGasForDrawing()","89e4e22b":"pingDelta(uint256)","89e52771":"getTeamAddresses()","89e582c4":"FuturXe(uint256,string,string,uint8)","89e6359f":"preIcoEthers(address)","89e63a60":"conversionHashes(bytes32)","89e6579b":"registerExchange(address,address,bool,bytes4[])","89e6b5fb":"transferOwnership(address,bytes32)","89e7b8f6":"frozenFundsOf(address)","89e7f5cb":"OCZAPI()","89e85217":"teamBalance()","89e877a3":"activateWhitelist()","89e8beb3":"_strConcat(string,string)","89e94513":"advance(bytes15,uint32,uint64,uint64,int64,uint64)","89e96773":"BEY()","89ea2cb7":"onRefundPollFinish(bool)","89ea642f":"getString()","89ea770a":"grantTokensAdvisors(address,uint256)","89eaa610":"userAccess(address)","89eb313a":"isReadyToMate(uint256)","89eb4fee":"MYJ256()","89ebe846":"loyaltyWallet()","89ecd0e8":"disableAllowBuy()","89ed0b30":"setOraclizeGas(uint32)","89ed2ebf":"_transferDrone(address,address,uint256)","89ede784":"starbaseCrowdsale()","89edf114":"referralOwnerPercent()","89ee8758":"Daz()","89eea0eb":"tetherCount(address)","89eedf00":"setPdfHash(bytes,bytes)","89ef40e7":"numberOfHealthyGenerations()","89ef75b1":"purchaseWithPromoter(address,address)","89ef8292":"bulkTransfer(address[],uint256[],address)","89efa1b5":"registerEtherBalance(address)","89f0151c":"addAttribute(bytes32)","89f03ebc":"Incrementer2()","89f0ccba":"pre_start()","89f12d00":"minBlockNumber()","89f12ed9":"novaAddress()","89f182aa":"createMilestoneAcceptanceProposal()","89f1c26e":"minterTransferFrom(address,address,address,uint256)","89f1d38d":"Swap(uint256)","89f21090":"singleValueAirDrop(address[],uint256)","89f224a8":"EthlanceJob(address)","89f27d55":"transferItem(uint256,address,uint256)","89f37c45":"test_invalidThrow()","89f395de":"tos()","89f47b64":"doCrowdsaleMinting(address,uint256)","89f4ed7a":"getLastTag(uint256)","89f4fd57":"getUserProxy()","89f63f50":"teamb()","89f650fd":"next(bool)","89f6709c":"longRecord(address,uint256)","89f6e826":"drainRemainingToken()","89f71d53":"lastAction()","89f85a4b":"BalanceLocked(address,uint256,uint256,uint256)","89f8601e":"Engraved(address,bytes32)","89f88d7a":"Chess(bool)","89f8ab94":"lastRateUpdateTimesForCurrencies(bytes4[])","89f91592":"agreeWithdraw(uint256)","89f915f6":"getNumbers()","89f9b01e":"countingMeme()","89fa413d":"tradeRobot()","89facb20":"INTERVAL()","89fb75f9":"amountOfStage(address,uint256)","89fc01f6":"GetBidSeries(address)","89fcd099":"getApproval(address,address)","89fd14a1":"raiseTrivialThreshold(uint256)","89fdd81d":"PRE_ICO_LIMIT()","89fe141a":"maxSupplyPossible()","89fe253a":"BountyCampaingWallet()","89fe5273":"getTokensToSend(uint256)","89fe8507":"setNumbers(uint256)","89fee530":"CBSToken(string,string,uint8,uint256,uint256,uint256,bool,bool)","89ff7fe0":"getCurrentBlockNum()","8a007d86":"preSaleMinPaymentWei()","8a007f30":"endGame(uint256,string)","8a00a82f":"withdrawRewardFor(address)","8a010c22":"changeBankAccount(address)","8a0193ac":"getGameExpired(uint256)","8a024a3f":"releaseINAToken()","8a03ad86":"getUserAddressById(uint256)","8a0490db":"PrakashToken()","8a0520fb":"isApprovable(address,uint256)","8a054ac2":"d()","8a059493":"fetchRoundIndexBySnapshotBlock(uint256)","8a05ad20":"TokensIssued(address,address,uint256)","8a05e478":"instantiate(address,address,bytes32)","8a063d91":"rewardThree()","8a066045":"unescrowFrom(address,uint256)","8a06cb71":"get_config()","8a06ce1b":"setTotalSupply(address)","8a0807b7":"indexOf(string,string)","8a0904da":"mainSale_EndDate()","8a098cd7":"bucketManager()","8a0a53d5":"BicycleSupply()","8a0c47cd":"changeWallet(uint8,address)","8a0cbf50":"VCCoin(address)","8a0cc3c6":"SMILO_COMMUNITY_AMOUNT()","8a0e5a75":"addToPublicSaleWhitelist(address[])","8a0e859f":"isDiamondAuction()","8a0f1e52":"PlayerBet(uint256,uint256)","8a107a31":"generate(string,address,address,bytes32,uint256,uint256)","8a1129f1":"unfreeze_start_date()","8a120dc9":"testBitEqualFailIndexOOB()","8a124744":"SiuToken()","8a127931":"profit5eggs()","8a13796e":"CERB_Coin()","8a13aa4b":"takeEth()","8a13aa4f":"WorldToken()","8a13eea7":"erc20Token()","8a1489e3":"viewInvestorDividendHistory(uint256)","8a14f12c":"totalWagered()","8a155171":"availableForWithdrawal(address,address)","8a157df3":"createAuction(uint256,uint256,uint256,uint256,uint256)","8a157fae":"getEthBase()","8a1678a4":"LUMA()","8a17041a":"_founder_one()","8a17164c":"distributeTokenSaleJackpot(uint256,uint256)","8a172f2e":"getPawnEngine(uint256)","8a175ac2":"enableContribution(bool)","8a186788":"lookupIndex(uint256)","8a18a804":"UnsoldTokensBurnt(uint256)","8a18c55f":"SMT()","8a192c70":"setWLMTfinney(uint256)","8a194223":"Cryptolotto6Hours(address,address,address,address)","8a196437":"VRJToken()","8a19ac6d":"fechAllVoteResultPreRoundByBlock(uint256)","8a19b4d2":"addAdmin(address,address)","8a19c8bc":"currentRound()","8a19e355":"addToBalance(uint256)","8a1abbcf":"_getClientSupply(address,uint256,uint256)","8a1af4c4":"addOperator(address,address)","8a1b991d":"SBCE(uint256,uint256)","8a1bb169":"getJsonToTokens(string,uint256)","8a1bba96":"InvestorSum()","8a1bda63":"LogRedistributeTokens(address,uint8,uint256)","8a1be474":"CCNCrowdsale(address)","8a1d42f4":"setData_4(string)","8a1d8ae6":"x32323(uint32,string,uint8,string,address)","8a1dd162":"getPixel(uint256,uint256)","8a1e1404":"showFPLowerlim()","8a1f7a1b":"getMesa(uint256,uint256)","8a1fde4b":"setMaxwin(uint16)","8a20d00c":"buyTokensFromContract(uint256)","8a20f724":"currentRoundIndexByDate()","8a20f73c":"isInstrument(address)","8a213adb":"testFailMintGuyNoAuth()","8a237f27":"F2D()","8a2418ab":"nextSeedHashA()","8a24fd78":"convertGeneArray(uint256)","8a252194":"betGanjilGenap(bool)","8a252831":"asyncSend(address)","8a25aefa":"TEST_HOUSE()","8a2693e5":"kycVerification(address,address,uint256)","8a26d4c4":"GBTToken()","8a27a31c":"currentBanker()","8a27a51c":"transferGiveaway(address)","8a27a88b":"recoverAddressFromBalanceProofUpdateMessage(uint256,bytes32,uint256,bytes32,bytes,bytes)","8a294c60":"blacklisting(address)","8a29b77d":"receiveApproval(bytes)","8a2a0879":"TAUKEAYAM()","8a2a60ef":"foreignDailyLimit()","8a2ade34":"DonationClaimed(address[2],uint256[7],uint8,bytes32[2],uint256,uint256)","8a2ae2ab":"killTile(uint16,uint8)","8a2bfdf2":"add2Auction(uint256,uint256,uint256,uint256,uint256)","8a2cb24d":"castleExpAdjustment()","8a2e196c":"NTRYAvailableForSale()","8a2e2bf8":"updateLuckpool(uint256)","8a2e467c":"firstRoundTime()","8a2f6f94":"getRoleStatus(address)","8a30442e":"validTransfer(address,address,uint256,bool)","8a306c21":"mainSaleSupply()","8a31ffda":"replaceBoardMembers(address[])","8a323b38":"Contract(uint256,string,uint8,string)","8a329809":"setFeeContractAddress(address)","8a331846":"dividendParentsPercentage()","8a333b50":"max_supply()","8a33f585":"getOrder(address,uint32)","8a340eab":"BKToken()","8a341c83":"testErrorRootAuthorityChangeUnownedPackage()","8a34396a":"personalCapActive()","8a344477":"putDeed(bytes32,uint256,bytes32,bytes32,uint256,string)","8a349cc4":"subscribtionLittafi(uint256,string,string)","8a34bb24":"changeContractFee(uint256)","8a355a57":"removeProvider(address)","8a359d6e":"getEducationCitizens(uint256)","8a35b8c7":"invested(address,uint256)","8a35f788":"_getWinner()","8a36c3dc":"TeamToken(string,string,address)","8a36ebc2":"showSmallProfit()","8a36f5a2":"Debug(uint256)","8a38ab2c":"createCourse(string)","8a3907b9":"buyPerSell(uint16,bytes32)","8a394c4c":"eraseUnsoldPreSaleTokens()","8a39ebdc":"globalPresaleLimit()","8a3a84a8":"Total_Payouts()","8a3aa194":"endCrowdSaleTime()","8a3b0199":"transferOnBehalf(address,address,uint256)","8a3bacd1":"backup_drawdown()","8a3bc2bc":"iPropose(bytes,uint256,bool)","8a3c36cb":"DollHair()","8a3c44a5":"Constructor()","8a3d6290":"addBountyTransferredTokens(uint256)","8a3d7cdc":"tiles(uint256,uint256)","8a3db05f":"_myTokeName()","8a3e37c3":"StarbaseMarketingCampaign(address)","8a3e44d4":"assetMoveInformation(address,address)","8a3e99ff":"HighCastleToken()","8a3f6e2a":"transferFromAndDepositTokenFunction(address,uint256,address)","8a3f8a23":"queryChibi(uint256)","8a4068dd":"transfer()","8a40bd00":"allowedToUpgrade()","8a40c4c4":"Youdeum()","8a426b1b":"handleExternalBuyers(address[],uint256[],uint256[],uint256[])","8a42b68c":"approveOrderHash(bytes32)","8a42ebe9":"set(string,uint256)","8a433274":"executeVoting(uint256,bytes)","8a43fc7e":"return_rejected_payment(uint256)","8a449c2c":"VividoRaidenToken()","8a44ae91":"setAUM(uint256)","8a45242d":"newGame(bytes32,uint256,uint256,uint256)","8a45557e":"flowerTotalSupply()","8a4577ea":"returnTokensFromTeamAddress(uint256)","8a462fbc":"calculateNewPrice(uint256)","8a46467d":"reloadCore(address,uint256,uint256)","8a4660fe":"MINIMUM_INVESTMENT()","8a468e15":"TBowner()","8a469c16":"addGeneralMilestone(string,string,uint64)","8a46bf6d":"testFallback()","8a47cadb":"SunPowerToken(address,uint256)","8a48941f":"getDistributionFacts()","8a48ac03":"getAccounts()","8a49a3cc":"updateTrustScore(address,uint256,uint256)","8a4a8718":"GoinbitToken()","8a4a9aab":"xhstoken()","8a4af069":"TotalTokenSupply()","8a4b08d9":"getPriceRate()","8a4be59e":"incentiveDistributed()","8a4c81c2":"SEADToken(uint256,uint256,uint256)","8a4cae0e":"addVpf(bytes32,uint256,uint256,uint256,uint256,uint256,int256[])","8a4d5a67":"content()","8a4db4fa":"allowedToBuyBack()","8a4e3025":"addStaff(string,uint256)","8a4e4639":"pregnantPoniesies()","8a4e7a7c":"endCrowdsalePublic()","8a4ea479":"addUndergraduate(uint32,string,uint16,string,uint8,uint8,uint8,uint8,uint8,uint16,uint64,uint64)","8a4fb16a":"getWithdrawal(uint256)","8a4fbead":"setTokenAllowance(address,uint256)","8a4fe8ac":"membersNumber()","8a505b4c":"setAutoBuyFee(uint256,uint256)","8a5144c0":"estProviderFee(address,uint256)","8a519fb9":"BlockChainEnterprise()","8a51d0fc":"totalEarlyInvSupply()","8a51e8ed":"_timeLimit()","8a529159":"KinguinKrowns()","8a53360f":"GrantUpdated(address,uint256,uint256)","8a53862d":"refundPartCollateral()","8a53c3b1":"TeamTokensHolderMock(address,address,address)","8a53f230":"noError()","8a545aec":"getEngineerPrizePool()","8a547932":"sendFounderAndTeamTokens()","8a54d6a4":"recordVotes(uint256[])","8a55b001":"Sleipnirwallet()","8a55d36e":"isStart()","8a5651e3":"EMISSION_FOR_PRESALE()","8a56b230":"setMiningWarInterface(address)","8a56ca45":"lastOwner()","8a56d115":"lagDefrost()","8a56e85e":"_createRandomDna(string)","8a56f3ee":"burnFrom(uint256,address)","8a56fe46":"orderExpired(address,address)","8a570230":"IDK()","8a585214":"BogpillToken()","8a5910a5":"RewardTimePeriod()","8a593cbe":"pre_ico(address,uint256)","8a59eb56":"updateStatus(bytes32)","8a5a68f4":"richtokenIndexToOwner(uint256)","8a5be698":"balanceOfDerivative()","8a5c19c0":"getWeekNo()","8a5c9098":"_mint(address,uint32,uint32,uint32)","8a5cca14":"AccountTransfersFrozen(address,bool)","8a5cf5ee":"quarter3()","8a5d815e":"finishContract()","8a5ddd9b":"emergencyAndHiddenCapToggle()","8a5ddf9d":"emergencyRedeem(uint256,address[])","8a5fb3ca":"currentFeePercentage()","8a604017":"pendingParticipants(uint256)","8a6083d2":"changeCrowdfundState()","8a609155":"totalUniquePlayers()","8a6158f7":"startSettlementProcess()","8a61a2a6":"NewKoth(uint256,uint256,address,uint256,uint256,uint256,uint256,uint256)","8a61b26d":"startICOPhaseTwo()","8a61bb91":"initiateBoardMemberVote(string,bytes32,address[])","8a61dcb7":"MiningReward()","8a626ba1":"offerPriceCandy(uint256)","8a6281f6":"getOwnerInfos()","8a62e9e9":"setIgnoreRequestIds(bytes32[],bool[])","8a62fd12":"NVTFallback(address,uint256,uint256)","8a6508ce":"removeCooldown(uint256)","8a653c93":"extGetLock(uint256)","8a654a64":"lockedAccountThresholdEth()","8a65d874":"userStats(address)","8a662b59":"SOLID()","8a6655d6":"vote(uint256,uint256,uint256)","8a6700e8":"Dex(address,address,address,uint256,uint256,uint256)","8a67456a":"contractPaused()","8a67c544":"setSchemaValidity(bytes32,bool)","8a67f04b":"_payoutMining(uint256,address,address)","8a67f4bf":"getRewardsBalance(address)","8a684f97":"EthMsig()","8a689784":"blocksDelay()","8a68ae3c":"transferPaladinOwnership(address)","8a69218c":"getLastRewardTime(uint256)","8a699023":"phase8Price()","8a69fead":"getTitulaire_Compte_1()","8a6a3584":"clearAccount(address)","8a6a8b6c":"getMonthlyTransactionVolumeSending()","8a6b114b":"getBet(address,uint256)","8a6b6877":"withdrawMineral(uint256)","8a6b9be4":"allowToWithdrawFromReserve()","8a6bc85a":"getInterestor(address)","8a6c02ae":"safeWithdrawal3(address)","8a6c0b26":"registerCreatorsPools(address[],uint256)","8a6d2d7b":"MATOU()","8a6d39b9":"Leak()","8a6db9c3":"minterAllowance(address)","8a6e0a8e":"_increaseApproval(address,address,uint256)","8a6ee066":"_releaseWithReward()","8a7097ce":"checkWithdrawalsgross(address)","8a7180ae":"team_token_percentage_max()","8a72ea6a":"offers(uint256)","8a738683":"sweep(address,bytes32)","8a7398e7":"getAllRoundRefIncome(address,address)","8a74b45c":"editApi(uint256,uint256,address,string)","8a74ee43":"allowTransferFrom(address)","8a74f69d":"transferMod(address)","8a758625":"setStrF1IntF2StrF2UintF2(string,int256,string,uint256)","8a75f56a":"setArbiterLocked(address,bool)","8a769d35":"miningTarget()","8a76a63e":"whitelistedInvestorCounter()","8a76d99b":"buyTicket(uint32,uint32,uint32,uint32,uint32,uint32)","8a775ab6":"RiskPrices(uint128[])","8a77ba1a":"companyVault()","8a78b7fb":"test_invalidProposalExecution()","8a78f5e2":"changeMember(address,bool,bool,uint256)","8a7a7e03":"ETH_PER_LARE()","8a7a8f46":"HJF()","8a7c20d7":"setReferralFund(uint256)","8a7c2ad7":"buyService(address,uint256,bytes)","8a7c2be2":"payEth(address,uint256,uint256)","8a7c2d6d":"hasOpenApplicationFromSource(address,address)","8a7c63c5":"privateStartTime()","8a7cc2ca":"RemapImported()","8a7d124b":"destroyToken(uint256)","8a7e30a1":"token_set()","8a7e5144":"addWhiteList(uint8,address,uint256)","8a7ed05c":"MAX_BID_FRAC_TOP()","8a7ef3df":"testFailCreateWithParentsParentSameItemId1()","8a7f1146":"RetrieveFunds()","8a7f800c":"preCensor(bool)","8a808acf":"Yaraq()","8a8090b8":"_setUint(bytes32,uint256)","8a80d9a3":"isRefundPaused()","8a80dfb1":"isFirstBadgeEle(uint256)","8a8146d0":"end_ICO_PreICO()","8a814cfe":"MyCrowdsale()","8a827eb9":"setSecondary(address)","8a82a09d":"MISTT1()","8a83d4a0":"burnMythexTokens(address,uint256)","8a863fbd":"juryOnlineWallet()","8a8672dc":"DINRegistry(uint256)","8a871c5f":"crosairVouchersMinted()","8a874084":"updateInteface(address,address)","8a87873a":"create(bytes32,address,bytes32[3],bytes32,bytes32)","8a87aeb9":"EthToOwner(address,address,uint256)","8a87b5c5":"dailyAdminAllowance()","8a87d8ea":"hasLicenseTerms(bytes32)","8a881e0e":"isExists(bytes32)","8a88c349":"addVestingMember(address,uint256,uint256,uint256)","8a88c4fe":"replaceOwnerIndexed(address,address,uint256)","8a890695":"logPurchaseViaFiat(address,uint256,bytes32)","8a892271":"initiateLocking(uint256)","8a89b338":"set_commandPercent(uint256)","8a8a0aab":"_b2(string,address)","8a8b4d61":"MediaBroadcast()","8a8b51b8":"setAddGas(address,uint256)","8a8b7deb":"CAT()","8a8b7e02":"whitelist_enabled()","8a8b98dd":"ETHT()","8a8bbd5c":"ThanhnvToken()","8a8bf82a":"batchTransferToken(address,address,bytes32[])","8a8c523c":"enableTrading()","8a8c8c42":"TokenCoin()","8a8cd78d":"setTurnoverTo(address,uint256)","8a8e2028":"getCurrentTranche(uint256)","8a8e3999":"_unsafeEncodeTokenId(int256,int256)","8a8e5239":"get_power(address)","8a8e5afb":"shaCommit(uint256)","8a8ede8a":"hasStatus(address,address,uint8)","8a8f1f25":"setAccountSpendingLimit(address,uint256,string)","8a8f5b79":"newXPAAssets()","8a905482":"createIpo(address,uint256,uint256,string,string)","8a926d0f":"maxTokenAmount()","8a933eac":"setSmartContractPrice(uint256)","8a93d70d":"MakerWithdrewEther(uint256)","8a93dbdf":"getInvestorDividend(address)","8a946339":"ERC20Token(string,string,uint256)","8a955876":"incrementCountSales(uint256,uint256)","8a957929":"setFeeAuthority(address)","8a957f15":"ccReleaseBlock()","8a95a746":"pie()","8a95addc":"NewPotentialOwner(address,address)","8a95f59f":"setHHRAddress(address)","8a96e27e":"CTTCToken()","8a973e17":"borrowEther(uint256)","8a97d915":"TokenMetadataUpdated(uint256,address,string)","8a983fbc":"KulouCoin()","8a98a9cc":"gen0SaleCount()","8a98cbd0":"SalePaused()","8a98deca":"setEtherCostOfEachToken(uint256)","8a9920b7":"emergentWithdraw()","8a99aa69":"_setStore(address)","8a99e917":"activatedPhases(uint256)","8a99fc87":"checkWhenContributorCanTransferOrWithdraw(address)","8a9b2b36":"_fillCardStruct(uint8,address,string,string,string)","8a9b35a7":"totalPresaleWei()","8a9b4067":"ren()","8a9b809b":"ChargCoinContract()","8a9ba931":"setContract(address,address,address,address,address,address,address)","8a9bb02a":"getRoundInfo(uint256,uint256)","8a9c497b":"totalBunniesCreated()","8a9c636c":"setAquiferInstituteCoinAdd(address)","8a9cb361":"hundredPercent()","8a9cba3c":"set_result_of_game(uint8)","8a9cf23a":"isEarlybird()","8a9d1fbf":"uniquePet(uint64)","8a9d3839":"setBountyWallet(address)","8a9d43e2":"getPlayerFee(uint256)","8a9d6bb1":"GEZI()","8a9d7982":"getActiveBetsRefund(address)","8a9e0876":"tokensReleased()","8a9e8671":"totalBid()","8a9f8a43":"set_block(uint256)","8a9fb135":"humaniqToken()","8a9fc475":"wipe(address,bytes32,uint256,address)","8a9ffb90":"transfer(string,string,bool)","8aa001fc":"getSecond(uint256)","8aa08617":"mintInitialTokens(address,uint256)","8aa0fdad":"mint(string,string)","8aa10435":"getContractVersion()","8aa14a07":"transferToAddress(address,uint256,bool)","8aa19ef7":"setOraclizeQueryGasPrice(uint256)","8aa2c280":"newAuction(uint128,uint256,uint256,uint256)","8aa31cbf":"ICO_PRICE8()","8aa33776":"setMsgPrice(uint256)","8aa35083":"PRE_CROWDSALE_DURATION()","8aa43284":"getNbProjects(string)","8aa4e240":"payoutOCDividend(address,address)","8aa4e315":"setExchangePrice(uint256)","8aa5440e":"setXCPlugin(address)","8aa5b2c3":"changeStartTime(uint256)","8aa6e6de":"approveMint(uint256)","8aa6f1b1":"setUltimateOutcome(bytes32)","8aa7d975":"DOCC()","8aa81eac":"ixentest()","8aa91406":"createIdea(address,address[],string)","8aa94f56":"updateUserCreatedPerformance(uint256)","8aa96f38":"collectAllocations()","8aa978be":"Pricing(address)","8aa986f6":"minimumContributionPhase2()","8aa99826":"IsTradeable()","8aaa559a":"ProtectedApi(address)","8aaaa197":"getCurrentRoundEndTime()","8aab811e":"setLOCdata(string,address,int256,address,uint256,string,uint256)","8aabb56f":"setMigrateIn(bool)","8aabe700":"refundTokensForAddress(address)","8aabff06":"getPVECooldown(uint256)","8aac0fa4":"transferGasFee(uint256)","8aac1708":"_deleteOperation(bytes32)","8aac61e9":"assetArray()","8aadf70a":"generateUniquePets(uint8)","8aae13cb":"getTokensByUSD(uint256)","8aae1f50":"withdrawOperationFees(uint32[])","8aae45be":"lastBonusMultiplier()","8aaf09a1":"getInitialInvestAddres()","8aaf699d":"sendCommunitySupplyToken(address,uint256)","8aafef65":"ITC(uint256,string,string)","8ab058b1":"AllocateToken(address[])","8ab11869":"sign(string,string,string,string)","8ab1a5d4":"sell(uint256,uint256,bool)","8ab1d681":"removeFromWhitelist(address)","8ab21fb6":"delegateVote()","8ab30e9f":"test_validShouldBe3_increaseBlocksBy100()","8ab3580c":"bigbomToken()","8ab3e33f":"removeKey(address,address)","8ab422a1":"addEmployee(uint256,string,string,string,string)","8ab476bf":"setDevelopers(address)","8ab49873":"isSubmitterAccepted(uint256,address)","8ab4ca8a":"lockRound(uint256)","8ab4d1ca":"PapyrusAirdrop(address)","8ab5212b":"teamVault()","8ab5fcc5":"setTypePrice(uint256,uint256)","8ab63380":"setContractAddresses(address,address,address)","8ab7f807":"applySettings(uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","8ab8064f":"continueITO()","8ab8342e":"changeInsurerOperation()","8ab905d4":"existedOnWhitelist(address)","8abab8fb":"saleAccepting()","8abadb6b":"setAccountLevel(address,uint256)","8abb0e1f":"MRDSPrivateSale()","8abcb485":"InvestorBonusGet(address[])","8abdb005":"addCard(string,uint256,int256,string,uint256,uint256,address)","8abdf5aa":"serviceFee()","8abe09f2":"now()","8abe5593":"hashLength()","8abe59ea":"outcomeTokens(uint256)","8abe789b":"mulToResult(int256)","8abf344d":"callStages()","8ac01eaa":"SHARE_CRYSTAL()","8ac0ca36":"buyViaJohan()","8ac0e150":"fatigueBlock()","8ac0eef9":"changeUserKey()","8ac1a8d6":"weiRaiseLimit()","8ac1f290":"changelp20(address)","8ac2571f":"publish(address,bytes32,bytes32)","8ac27f5f":"investors()","8ac2c680":"minInvestment()","8ac341c6":"numModules()","8ac3ea2c":"recordEvaluation(uint32,uint32,uint8,uint8,uint8,uint8,uint8)","8ac44de2":"TBT_MINER()","8ac4e1d8":"TemperatureOracle()","8ac6a869":"isObsolete()","8ac78c80":"Docsign()","8ac81296":"ethTokenRatio()","8ac91be7":"unPause(bytes32)","8ac97efb":"whitelistDayCount()","8ac9fa73":"getTrustState()","8acb99ac":"owned(uint256)","8ace1732":"burnerOwner()","8ace4131":"CryptoTestCoin()","8aceaa4a":"GetTotalGamblerNum()","8acf94df":"setTierData(uint256,uint256,uint256)","8ad141ec":"updatePlayerContinusFund(address,uint256,uint256)","8ad14ee6":"setSuccessful()","8ad17f00":"setJackpotFeeRate(uint256)","8ad1896c":"bonusOptionsPromille()","8ad1d846":"getDebtorsDebts(address)","8ad20640":"allowedSinceReadable()","8ad2739b":"UMCCToken()","8ad2eaea":"has_token_sale_started()","8ad2f289":"checkPermission(address,address,bytes4)","8ad30473":"set_crowdsaleClosed(bool)","8ad46ba0":"b32toHexString(bytes32)","8ad476d7":"foundationReservation()","8ad47c47":"Dragon()","8ad5d779":"increaseOffsaleCountByOne()","8ad68253":"HostingDNS(uint256)","8ad682af":"ROLE_OWNER()","8ad9a976":"getServiceStat(uint64)","8ad9c8c3":"GetUserConAddr(string)","8ada066e":"getCounter()","8ada1957":"TOKEN_WALLET()","8ada80a2":"getWinnersLen()","8adb208d":"withdrawDukeOwnersMoney()","8adba5a9":"cap4(address)","8add359d":"WorkerPoolHub()","8adde811":"test2_addingSecond()","8addf3ca":"performUpdateMemsize()","8ade246a":"makeBet(uint256,address)","8ae0368b":"challengeNumber()","8ae06cf7":"SAFeth()","8ae0a7ec":"uniq(uint32[])","8ae18dfd":"setRemainingLockDate(uint256)","8ae1d8d4":"StatsTotalSupply()","8ae3beb2":"setPending(bool)","8ae4200a":"revokePrivilege(string)","8ae470a9":"set_time(uint256)","8ae475a9":"notorize(string)","8ae5e0ec":"allowManyTokens(address[],address,uint256[],bool[])","8ae5e372":"getMouthValue(uint256)","8ae63d6d":"blockNum()","8ae69807":"sendAirdrop(address[],bool)","8ae69caa":"getCountryOwnershipList()","8ae76b77":"createToken(uint256,address,bool,uint256)","8ae79c8c":"LovelockPayment(address,bytes32,uint256)","8ae83bf3":"DISPLAY_CLASSIQUE()","8ae85b80":"storeN(uint8[],uint256,uint256,uint256)","8ae881a6":"initMetadata(bytes32,bytes32,bytes32,string,bytes32,bytes32,uint256,uint256,uint256,uint256,address)","8ae8c1f3":"transferFromCrowdfund(address,uint256)","8ae986cf":"registrantApprove(address)","8aea12b6":"c_paymentChannelBonusPercent()","8aea2f6e":"totalFundingAmount()","8aeb8f98":"isNotEmpty(string,string)","8aebebd9":"restartCycle()","8aece8b0":"MRNToEth()","8aed434a":"oracle_values(uint256)","8aee0443":"getNumberOfPurchases()","8aee3a54":"enableATMExchange()","8aef16d0":"appendSupplyChanges(address,bool,uint256)","8aef91f5":"TimeLeftBeforeCrowdsale()","8af1bac9":"isMoron(address)","8af1c825":"SALE_MIN_BUY()","8af2c328":"buyTokensFor(address,uint256,uint256)","8af2ce26":"districtLimit()","8af2d152":"limit6()","8af49ab7":"maintain(uint256,uint256)","8af51833":"_transfer(address,string,address,string,uint256)","8af57597":"getSingleDeveloper(address)","8af6c259":"totalDuration()","8af784dc":"expectEventsExact(address)","8af82a2e":"getFirstUnsortedOffer()","8af9f493":"reap(address)","8afa08bd":"setDrawDate(uint256)","8afa46b1":"refunds()","8afa7c6a":"createBasket(string,string,address[],uint256[],address,uint256)","8afbcdd0":"setEmissions(uint256[])","8afbf669":"withdrawRemainingTokens()","8afc3605":"Ownable()","8afcf1c9":"_transferSignership(address)","8afdc26e":"currentIcoPhaseBonus()","8aff794d":"milestoneSystem()","8b00299b":"setSellComissionUnits(uint256)","8b008f0f":"setBuyBackPrice(uint256)","8b00c467":"growthTokensWallet()","8b0133d5":"calcBonus(uint256,uint256)","8b018bca":"maxDividendDepth()","8b021df4":"safePayback(address,uint256)","8b0254b6":"bilateralCancelOrder(bytes32)","8b02c8b2":"addFundTX(uint256,uint256)","8b034136":"totalBids()","8b036ee2":"PRE_SALE_BONUS_PERCENTAGE()","8b038f7f":"edrBalance()","8b03fcfd":"backersRedeemed(address)","8b043e08":"getPublisher(address)","8b044a50":"getCofounditTokenAddress()","8b0451d9":"CAT_PER_ETH_SECOND_EARLY_BIRD_RATE()","8b048091":"getTicketsSoldToday()","8b048645":"setCCH_edit_26(string)","8b05afd2":"saveBytes(bytes32)","8b06a662":"submitTotalSellOrder(bytes32,uint256,uint256)","8b072f0e":"migratePlayer(address,address,uint256,uint256,uint256)","8b073bb3":"changeStageBlock(uint256)","8b077355":"saleDistributorAddress()","8b07b006":"_tokensToSell()","8b07edba":"getI1()","8b08292d":"isValidAirDropForAll()","8b087f3f":"signToCancelAgreement(uint256)","8b092580":"preIcoHasEnded()","8b095904":"getBalancePercentageLimit()","8b0980d9":"Phoenixcurrency()","8b0b8820":"transactionStructFromBytesSeriality(bytes)","8b0b9cac":"setLatestTokenAllocation(address,address,uint256)","8b0b9ed4":"getWinningNumber()","8b0c7f67":"CROWD_WAVE2_PERIOD()","8b0d0258":"amount(uint256)","8b0e093c":"INEXTokenNew()","8b0e9f3f":"totalStake()","8b0ee5a3":"GAS_PRICE()","8b0fc015":"submitChoose(address,uint256)","8b0fc19a":"TokenSaleAfterSplit(uint256,uint256,uint256,address,address,bool,uint256)","8b10297c":"test_0_ensureControllerWorks()","8b104534":"tokensPerBatch()","8b1097c1":"setGeneMixerAddress(address,address)","8b110e0a":"MeshPoint(int256,string,address)","8b11fb3e":"secureTokenPay(uint256)","8b121c9d":"airdropMinting(address[],uint256[],int256)","8b121cf0":"TransactionEscalated(uint256)","8b122274":"setPriceIncrease(uint256)","8b128249":"MASSTokenPreSale(address,uint256,uint256)","8b12befe":"accrueBonusTokens(address,address,uint256)","8b12c25f":"updateReferralMasks(uint256,uint256)","8b12dc23":"DewToken()","8b133c56":"WatahaToken()","8b13b64b":"timeFrame()","8b13d4e0":"addTeamMember(address,bytes32,address)","8b13dd7b":"getAcceptance(address,uint256)","8b14251f":"setNarcosCoreAddress(address,address)","8b144851":"getCompanyWallet()","8b14592a":"EtherNex(uint256,string,string,uint8)","8b147245":"update(bytes32)","8b148ef6":"usedHashGuard(bytes32)","8b156d4c":"EthernautsUpgrade()","8b157515":"tokensInfoOfOwner(address)","8b15a605":"proposalDeposit()","8b169c7a":"coinageContract()","8b17ab2f":"calculateOptions(uint256[9],uint32,uint32,bool)","8b1928a5":"getAllergies()","8b19a476":"oraclize_query(string,string,uint256,uint256)","8b1acf9e":"ZcnoxToken()","8b1ad6c6":"AuctionFinished(address,uint256)","8b1b4036":"newTrade(string,string,uint256,uint256)","8b1b925f":"isValid(address)","8b1c80e2":"MAIN_SALE_BONUS_PERCENTAGE_PHASE2()","8b1c8792":"Blocktix(string,uint256,uint256)","8b1cc4f4":"tokenBurner(uint256)","8b1cf21c":"unlocked(uint256)","8b1cffe0":"newBrehonContract(address,address,uint256,bytes32,address,uint256,uint256,address,uint256,uint256,address,uint256,uint256)","8b1d37d4":"testUserCanSignUpAndLogin()","8b1d67f9":"initial_disbursement()","8b1db910":"hasSuicided()","8b1f3206":"addlockAccount(address,uint256,uint256)","8b20468b":"updatePalette(uint8,uint8,uint8,uint256)","8b20d082":"_getPlayerThemeEffect(bytes,uint256)","8b20d9fa":"get_probability(bytes32,uint32,uint32)","8b214d5d":"imOwner()","8b21d307":"createProxyAddress()","8b220a31":"addProcessableAllocation(address,uint256)","8b223943":"stage3BeginTime()","8b22c7b3":"keeppetToken()","8b22e1df":"raiseDay1()","8b23397a":"_getFashionParam(uint256,uint16,uint16,uint16)","8b235f04":"lastSignedBlockHash()","8b24793d":"revealCeiling(uint256,uint256,uint256,bool,bytes32)","8b24c3e0":"getRequiredMajor()","8b257d3d":"isValidSignature(bytes32,uint8,bytes32,bytes32)","8b259bdb":"setupIco(uint256,uint256)","8b278707":"addFeeFeedBack(address,string)","8b278a30":"updateBanThreshold(uint256)","8b27c179":"maxPlay()","8b281018":"sendFunds(uint256)","8b2886ca":"setNorthPoleAddress(address)","8b28ab1e":"calculateFee(address,uint256)","8b28df17":"NCCUyen()","8b2909cf":"tokensFromPreviousTokensale()","8b290a72":"employeeShare()","8b294960":"balanceInTranche()","8b299903":"turn()","8b29e88b":"icoTokenCap()","8b2a6f58":"cancelEpochUpTo(uint256)","8b2a81ed":"HashGardToken()","8b2a9606":"addDigitalArtSellingItem(uint256,uint128)","8b2ad32e":"getSketchesOnOfferWithHolder(address)","8b2ae073":"setCouponMulFactor(uint256)","8b2b423a":"privateSaleAmount()","8b2be40e":"firstCurrentAmount()","8b2c434c":"CryptoGiants()","8b2d2dca":"setAllowMarketplace(bool)","8b2d4ed1":"creatorsPoolAddrs(uint256)","8b2de796":"housePercentOfTotal()","8b2e2b07":"CAKSale()","8b2e31dc":"STARTING_LOBSTER()","8b2e41b2":"getPlayerShipBattleWinsById(uint64)","8b2e6dcf":"publish(bytes32)","8b2e92ce":"rewardAngel()","8b2ef965":"securityDepositRegistry()","8b2f1652":"transcoderStatus(address)","8b2f7af3":"CalculateAllocatedUcash()","8b3049e1":"lotteryByETH5(address)","8b31aaca":"ZOB()","8b31bd50":"appreciationRate()","8b322791":"confirmCrowdsaleEnd()","8b325902":"totalTokenMintedOpen()","8b3272dc":"setUseService(bool)","8b3294e5":"addRecipientUpdate(bytes32,bytes32)","8b32f62a":"TEAM_AMOUNT()","8b33b4b2":"operations()","8b343e8f":"getMemberCredit(address)","8b34839f":"claimTokensEnabled()","8b34a4b3":"nestedSecondAllToAll(uint256)","8b35a244":"partner2()","8b360f4d":"teamSupply24Months()","8b36ed08":"CmmToken()","8b37112b":"doReclaim(address,uint256)","8b37691b":"TxOriginContract()","8b37e656":"getCallScheduledBy(bytes32)","8b384f9f":"getMenu()","8b392dff":"mModerators(address)","8b39bdba":"tokensDaily()","8b3aa967":"getDepositDelta()","8b3ac630":"buyShip(uint256,address)","8b3c4f6f":"Register(bytes4)","8b3ca352":"CFL()","8b3caf37":"Operatable()","8b3cda96":"IotPC(bytes32,bytes20,uint256,address,uint256,uint256)","8b3d10bf":"BMCTToken()","8b3dd749":"getInitializationBlock()","8b3e23d9":"preIcoSupply()","8b3edbdf":"changeManufacturerWallet(address)","8b3f863f":"getUserType(address)","8b40594d":"tokenExchangeRatePreSale()","8b409cec":"addRelease(bytes32,string)","8b42ad37":"test_twoFalseAssertNoMessage()","8b43234b":"endPeriodB()","8b449ffd":"woyaoqianqian(uint256)","8b44af0e":"transferETHS(address[])","8b44c99a":"capture(bytes32)","8b44f194":"TBOT()","8b45ab24":"SoccerBet(string,uint256,address)","8b46e1f1":"getVercodesOfCampaign(bytes32)","8b473c3d":"getKeysByDeviceId(uint8,uint8)","8b477adb":"transferFromByLegacy(address,address,address,uint256)","8b47c10b":"ERC721token()","8b490893":"CBO()","8b49644d":"test_invalidProposalBytecode()","8b4a781c":"getVoters(bytes32)","8b4b891b":"Duarte()","8b4b8a26":"updatePriceTier(uint8,uint256)","8b4bf731":"setEtherPriceUSD(uint256)","8b4c40b0":"donateETH()","8b4c4307":"EstLiquidationCap()","8b4ce7ce":"updateRegionPixelPrice(uint256,uint256)","8b4d199e":"recordTransaction(address,uint256,uint64,uint64,uint64)","8b4d3f20":"Xin(uint256,string,string)","8b4d56de":"createAndJoinCDPDai(uint256)","8b4e79c2":"delegateFromPool(uint96)","8b4e8a6a":"MedED()","8b4ef7d4":"ContractAdded(string,address)","8b4fac8e":"testsignature()","8b4fff3e":"register(address,string,string,string,uint256,string)","8b50cd34":"attackTile(address,uint16,uint256,bool,bool)","8b51365b":"set82Mode(bool,bool)","8b519e09":"mainSaleEnd()","8b51ca42":"roleList(bytes32,bytes32,address)","8b51d13f":"getConfirmationCount(uint256)","8b52463a":"commissionerAuctionCancelled(uint32)","8b533562":"giftsOfOwner(address)","8b534dd3":"goldenTicketMoved(address)","8b53808b":"ForwardToEIF()","8b53cbaa":"addNode(string,uint8)","8b5406af":"angelLockingPeriod()","8b542d74":"test_twoValidEqInt()","8b543b80":"maximumCredit(address)","8b5462da":"getMy()","8b55c1b3":"pushPlayer(address)","8b56aff8":"createPromoMonster(uint256,address)","8b57192b":"Woleum()","8b57ebc6":"claimSegments()","8b57f150":"newUserReward()","8b587b82":"createPuppySiringAuctiona(uint256,uint256,uint256,uint256)","8b58c64c":"getUserCap(address)","8b595440":"setBurnAdminApproval(address,address,address)","8b5a17df":"frozedCount()","8b5a64fb":"registerNameXname(string,bytes32,bool,uint8)","8b5b1c9a":"setPools(uint16,uint16,uint16)","8b5b4228":"listTiers()","8b5b9ccc":"getPlayers()","8b5bc550":"WPAYReward()","8b5c37c3":"L19_Token()","8b5caa66":"backendWithdraw(address,uint256)","8b5dc8a5":"IsAllowed(address)","8b5de2d9":"FunFairSale()","8b5e331c":"HatchEgg()","8b5e6679":"setNewIco(uint256,uint256,uint256,uint256,uint256)","8b5f42ca":"addDataStream(address,string,bytes32)","8b603300":"updateLocation(int256,int256)","8b6084e4":"switchState()","8b615813":"fundLockTransfer(address,uint256)","8b629cbc":"m_ETHPriceUpdateInterval()","8b63c0e8":"returnTokenDepositState(address[2],uint256[7],uint8,bytes32[2])","8b63c86f":"setupRace(uint32,uint32)","8b64574b":"nextFreeze()","8b6497b9":"s41(bytes1)","8b649b94":"roundLength()","8b64b3af":"advisors_address()","8b64d70e":"owner_set_time_limit(uint256)","8b66bf68":"takeMyMoney(bytes32)","8b66d153":"STSTEST()","8b66e3b4":"hasPlayersInRound(uint256)","8b6715cd":"getTotalRankTokens()","8b673e7a":"setConfig()","8b67430e":"voteToCandidateIndex(uint256)","8b676ae8":"scheduleCall(address,bytes4,uint256,uint256,uint8,uint256,uint256)","8b67d56e":"getContributorsWallet()","8b67ef19":"distance(uint8,uint8,uint8,uint8)","8b68cd9d":"rndMax_()","8b692479":"addProduct(uint256,uint256)","8b6932f1":"saleTimeOver()","8b69759d":"removeAuthorizer(address)","8b699fbb":"KiemTra(uint256)","8b6aacc8":"stopSendWebGift()","8b6bd650":"ChangeCoinPresale()","8b6bf3dd":"intervalueToken(uint256,string,string)","8b6c1cfb":"totalHeldSupply()","8b6c69e5":"presaleLimitUnits()","8b6d6e48":"GoldPurityToken()","8b6d6f1d":"checksOn()","8b6df6bf":"DEMOHASHTOKEN(uint256,string,uint8,string)","8b6e10ac":"allBalances(address[],address)","8b6f8646":"CHCTokenERC20()","8b6f894f":"releaseEscrow(address)","8b6fb3ac":"GetOrganNumber()","8b6fc452":"tip(address,uint256)","8b7001d0":"ReceivedBCH(address,uint256,string)","8b7116e4":"reviewActiveMembers(uint256,uint256)","8b72a2ec":"transferPunk(address,uint256)","8b72ddf7":"setMinimalTokens(uint256)","8b7314e3":"BEToken()","8b73a46b":"getNumberOfMembers()","8b73c10e":"buyChibiWithFcf(string,string,uint8,uint256)","8b745ff2":"valueBlocked(address)","8b76e976":"setRef(uint256,address)","8b77071c":"profitEth()","8b79bb43":"MTelCoin()","8b7a01e3":"depositOwnership(address)","8b7afe2e":"contractBalance()","8b7b45d9":"hashSchema(string,string)","8b7bcc86":"numWinners()","8b7bf3eb":"getAdminCount()","8b7c34d4":"setCompte_12(string)","8b7d38a1":"sPerDate()","8b7d6b05":"makerUnlockedKnc(address)","8b7e7a2e":"TBEToken()","8b7f0ddd":"register(address,address,string,string,bytes32[],uint256,string)","8b7f4cb7":"_calcDate0(uint256)","8b7fe5be":"DonationEvent(address,uint256)","8b800e6f":"migrationCounter()","8b805e65":"setUsers(address)","8b80bd19":"Migrated(address,uint256)","8b810c36":"epoch(address)","8b81b1af":"getLastOwner()","8b8211a1":"closeSale1()","8b82f4bc":"PAYCOINLY()","8b83209b":"payee(uint256)","8b832705":"getAmountOfGrantAccessInvestor(address)","8b833318":"getArtworkGroup()","8b8373ca":"AMBASSADOR_SIX()","8b8414c4":"getPoaConsensus()","8b845c1d":"withdrawCommisionToAddressAltCoin(address,uint256)","8b8519a2":"frozenTimeOf(address)","8b859409":"setRelease(bytes32,bytes32,string)","8b863095":"setContractorProposal(uint256,bytes)","8b87c544":"getInventory(address)","8b87e3b6":"bountyMinted()","8b886d04":"setCatchable(uint32,bool)","8b88a687":"getCost(address)","8b88c9cf":"setSpaceCraftAddress(address,address)","8b8c1177":"changeTokenOffer(uint256)","8b8c5ed9":"scheduleUnderwriteOraclizeCall(uint256,bytes32)","8b8d7c04":"writeConditions(uint8,string)","8b8e5fe2":"secondRewardPeriodEndBlock()","8b8ecffa":"teamAndFoundersWallet()","8b8f8504":"NodeManager(address[],address[])","8b906ca5":"enterBidForSketch(uint256)","8b90a378":"STATE_DONATION_ROUND_2()","8b91124d":"getSubscriptionClosedAt(bytes32)","8b91d5f6":"PRICE_CROWDSALE()","8b91e9a2":"getSubscriptionNonce(bytes32)","8b91f4a3":"ProofOfBitConnect()","8b9299dc":"authorizeMany(address[50])","8b93509f":"addTeamtoBoard(uint16,address,uint8)","8b935fb1":"keys(uint256,uint256)","8b93d3fc":"stake(uint256,bytes32,uint256,uint256,uint256)","8b959014":"DPC(uint256,string,string)","8b9596ed":"Eladporat()","8b95ec0c":"testAddBalance()","8b96801e":"soldTokensCount()","8b969c33":"editTokenProperties(string,string,int256)","8b96e41c":"_preMcFly()","8b9724d1":"setExclusiveRate(address,uint256,uint16,uint32)","8b9726c1":"multiAccessCallD(address,uint256,bytes,address)","8b975028":"setCooldown(uint256,uint256,uint256)","8b9801b0":"TheHashSpeed()","8b9847a5":"AmazonBestsellerLabs(uint256,string,uint8,string)","8b986566":"TokenTESTToken()","8b9997fd":"getOwnerHoverText(address)","8b99b742":"arbitrateCancelCampaign()","8b9a167a":"aliceClaimsPayment(bytes32,uint256,address,address,bytes20,bytes)","8b9add74":"minCapReached()","8b9af5c1":"wmul(uint256,uint256)","8b9b1cbd":"withdrawRemainder()","8b9b62b1":"toB32(uint256,bytes,address)","8b9bde27":"setNameHashByWriter(address,bytes32,address,bytes32)","8b9c7a36":"initialStartPrice()","8b9ce6a6":"create(uint256,uint256,address,address,address,uint256,uint256,address,uint256,uint256,bool,bool)","8b9d6899":"lockedAmountOf(address)","8b9e2832":"mintRep(address,uint256)","8b9e4768":"_level()","8b9e5385":"MeterSlock(uint256,uint256,address)","8b9efe2d":"lastCountAddress()","8b9fae3f":"getETHback()","8b9ff6b6":"left91(uint256)","8ba19d4f":"EGGS_TO_HATCH_1CRAB()","8ba1c353":"_scaleExp(uint32,int32)","8ba1ebce":"updateGenVault(address)","8ba209b6":"isAccountVerified(address)","8ba28961":"spawn(uint32,int256,address)","8ba39ea8":"getChecksum()","8ba3ee95":"setConverterRamp(address)","8ba45307":"basePunish()","8ba47bdd":"ticker()","8ba4cc3c":"airdrop(address,uint256)","8ba5306b":"getDefaultRecommAddr()","8ba5758b":"HumanStandardToken(uint256,string,uint8,string,uint256)","8ba5807c":"raceCount()","8ba5882a":"manualOverrideEditionHighestBidAndBidder(uint256,address,uint256)","8ba64328":"getParentOperation(bytes32,uint8,uint8)","8ba677fa":"sendPremiumPack(uint256)","8ba7bdc4":"adminClaimTokenForUser(address)","8ba7e570":"executeCall(address,uint256,uint256,bytes)","8ba7e7f2":"createHash(address,bytes32,bytes32)","8ba88c9c":"internalRemoveManager(address)","8ba8da61":"payback(uint64)","8ba8ffc6":"buyGrapes()","8ba92763":"ABsCoin(address,uint256)","8ba93fcb":"magicStore()","8ba9a7bb":"FACTOR_4()","8ba9d9b0":"EmailSent(address,string,string)","8ba9f354":"testClearBitSuccess()","8baa28f7":"allocate(address,uint256,uint256,string,uint256)","8baa8b1f":"staker(bytes32,address)","8bab6718":"investorsInfo(address)","8bab8791":"testPkgUpdate()","8baba52a":"allStates()","8bace235":"kycAddresses(address)","8bace717":"getPresaleAllocation(address,address)","8baced64":"isInPool(address)","8bad5de9":"checkMinBalance(address)","8bad8d8e":"reserveManyTokens(uint256[],uint256)","8badbb8b":"ETPToken()","8bae2a03":"getStoredFib()","8baecc21":"revive(uint256)","8baeefce":"stopTrade()","8baf612f":"Ownable2()","8baf7a0c":"CryptoPrueba()","8bb04875":"executeRuling(uint256)","8bb0faee":"setRef(string,string)","8bb19439":"isPending(uint256,uint256)","8bb1a5ef":"executeDeal(uint256,string)","8bb204d4":"setCaptainIndexToCount(uint32,uint256)","8bb28de2":"minShare()","8bb307a2":"getMyTokenBalances()","8bb36848":"pollDataMultihash()","8bb55cae":"beforeExecuteForFutureBlockCall(address,uint256)","8bb5d9c3":"setCounter(uint256)","8bb64abe":"releasableBonus(address)","8bb75533":"split(string,string)","8bb7819f":"curMaxBet()","8bb87f5b":"isTank(address)","8bb88db6":"EtherSmart()","8bb8b2db":"getTokenPerEth()","8bb93173":"getNextTimeAtkPlayer(address)","8bb9fe58":"addStruct(uint256,string)","8bba143c":"getNumberOfContributors()","8bbade4e":"usdEth()","8bbb594a":"createActiveEdition(uint256,bytes32,uint256,uint256,uint256,address,uint256,uint256,string,uint256)","8bbb5af7":"test1Fails()","8bbb668b":"ItemSelling()","8bbb9fca":"buyPresale(address)","8bbbc7a2":"BitnanRewardToken(address)","8bbd309c":"BLTCoin(address)","8bbda7e3":"setContent(string,bytes)","8bbdcf67":"_createProduct(uint256,uint256,uint256,uint256,uint256)","8bbdfaa6":"approveChange(address,uint256,bool)","8bbe005d":"setGateGas(uint256)","8bbe4719":"donateToPool()","8bbec9e4":"WALLET_T8EX_ADMIN()","8bbf037c":"addService(string,string,int256,uint256,uint256,uint256)","8bbf51b7":"DOW_WED()","8bbf7330":"FlyCareToken()","8bc008e6":"xra()","8bc04eb7":"DECIMALSFACTOR()","8bc05609":"setNotaryAddress(address)","8bc05808":"addLockTokenAllocation(address,uint256)","8bc05833":"setTotalSupply()","8bc0b887":"initializeAfterTransfer()","8bc12fd1":"cancelOrder(address[4],uint256[7],bool,uint8,uint8,bytes32,bytes32)","8bc19bda":"setupRaffle(string)","8bc19c04":"getPlacedNotes()","8bc30096":"numDrops()","8bc4a65f":"unPackDecision(uint256)","8bc5816a":"startStage1()","8bc5aab0":"FundsRecovered()","8bc5b3c5":"getExchangeInfo()","8bc5f845":"sendToken(address[],uint256)","8bc6a72b":"adjustCut(uint256,uint256)","8bc70769":"BTToken(uint256,string,uint8,string)","8bc7fa9c":"getCrop(uint256)","8bc85b03":"bonusEnd()","8bc88d7c":"nameMiner(uint256,string)","8bc97754":"popcnt64(uint64)","8bc9b67f":"endOfGame(address)","8bca15d6":"balancesCanSell(address)","8bcad96a":"AdminstratorAdded(address)","8bcb4250":"_bytesToUint(bytes)","8bcb6f01":"getLoserAddressList()","8bcba0b2":"_transferToContract(address,uint256,bytes)","8bcba45a":"secondPartOfTeamTokensClaimed()","8bcbb60b":"betsArePayed(address,uint256)","8bccae3f":"tokensForCrowdsale()","8bccb1b4":"EosPizzaSlice(uint256)","8bccbf62":"setShares(address,uint256)","8bcd0680":"CrowdsaleiPRONTOLiveICO()","8bcddd5d":"getLogsNum(address,uint256)","8bcdecd7":"getIssuerStatus(address,address)","8bce09fa":"resolutionProposal(string,string,address,uint256)","8bcea54f":"viewComponent(address,uint256)","8bcf0eea":"GCAP()","8bcf649d":"GetRank(uint16)","8bcff416":"asyncSend(address,address,uint256)","8bd031fe":"submitIssue(uint256)","8bd0ba67":"addChild(address,address)","8bd0f12b":"_deleteBool(bytes32)","8bd1b610":"deleteTeller()","8bd25857":"joinManual(address,uint48)","8bd30ba1":"KekToken()","8bd317eb":"reclaim(address,uint256)","8bd379b5":"itDevAddr()","8bd50488":"Policy(string,address,address,string)","8bd50c1f":"privateSaleCloseTime()","8bd53bea":"oraclizeFees()","8bd56066":"WXC()","8bd5d30f":"scoreGroups(bytes32,bytes32,bytes32,bytes32)","8bd61f26":"tokensRemainder()","8bd66bb3":"ModifyMine(uint256,bool,string,uint256,string)","8bd6da16":"distributeXAIN(address[],uint256,uint256)","8bd76535":"currentExchangePrice()","8bd7920d":"BitcoinCashPrivate()","8bd7df6e":"sharePot()","8bd82b20":"getInCar()","8bd8669e":"transferAllTokensToOwner()","8bd87a69":"TimeMachineToken()","8bda1540":"getOldBalance(uint256,address)","8bdac196":"KLSToken(uint256,string,uint8,string)","8bdbbca9":"GameChannel(address,uint256,uint256,address,address,uint256)","8bdbee39":"str_length(string)","8bdc558d":"hash_ack()","8bdc5a5f":"withdraw(address,address,uint8,bytes32,bytes32)","8bde7fc3":"ClickButton()","8bdff161":"getBonus()","8be1049d":"getTypeFromIndex(uint256,uint256)","8be13d71":"countOpenPackage()","8be18df9":"getOutcomeOfFirstPeriodByEntity(uint256)","8be3a897":"_v3()","8be3df0a":"vipPlacementNotDistributed()","8be4339b":"packsPerClaim()","8be4886c":"PUBLIC_RESERVED()","8be52783":"decreaseApprovalPreSigned(bytes,address,uint256,uint256,uint256)","8be7a96a":"registerLockedTokens(address,uint256,uint256)","8be7f4f5":"FOUNDER_FUND_1()","8be7fe95":"CreateDigitalAssetToken(uint256,uint256,string,string,string,string)","8be8f944":"lastBlock_f6()","8be909a3":"mainSaleWeiCap()","8be90b52":"averageGasPrice()","8be94a45":"Gallery_MuYi_No1()","8be97285":"MIN_TOKENS_TO_EXCHANGE()","8be9ca21":"GerritCoin()","8bea6a39":"safeSubtr3DL(uint256,uint256)","8beac22d":"STAEtoken()","8beb1af1":"PresalePool(address,address,address,uint256,uint256)","8beb60b6":"setAdminFee(uint256)","8beb9f12":"moveBlockValue(uint8,uint8,uint8,uint8,uint256)","8bec5b31":"reserveOwnership(address)","8bec683f":"getID_control()","8bee241b":"delegateOperation()","8bee78e6":"buySharesFromListing(uint256)","8bef5222":"CONFIG_MAX_TICKETS()","8bef7ba5":"updateBalances(address)","8bf0af3e":"purchaseTokens(uint256,uint256)","8bf13a30":"UTCStop()","8bf34237":"addPartner(address)","8bf35316":"givePermission(address,address,uint256)","8bf4515c":"read(bytes)","8bf57f4e":"getTimestamp(address)","8bf60537":"setDividendManager(address)","8bf62f14":"EtheropolyShrimpFarmer(address)","8bf68690":"mintToken(uint256,address,uint256,bytes32,uint8)","8bf74527":"EMISSION_FOR_SALESTAGE7()","8bf85ef0":"SigmaIOToken()","8bf87123":"_transfer(address,address,uint40)","8bf8a338":"getAttribute(bytes32,string)","8bfa4b4e":"tokenAdvisor()","8bfac3bb":"updateBalances(address,bytes32,string,uint256)","8bfb07c9":"release(address,address,uint256)","8bfbc753":"setEthBonus(uint256)","8bfc2f33":"delegateDAOTokens(uint256)","8bfe0aec":"getNextExit(address)","8bfe4e0b":"GaillardToken()","8bfe88c5":"ArteufToken(address,address)","8bffc74d":"mainstreetToken()","8bfff5a0":"setPurchaseableMode(uint256,bool,uint256)","8c003134":"Raffle_ID()","8c00ce76":"unhalt_30day()","8c0124fb":"transferAndFreezeMulti(address[],uint256[],uint256[],uint256[])","8c02d13f":"MAX_NUMBER_OF_PREMIUM_SALES()","8c02e029":"save2(address,bytes,string)","8c041d7c":"editProfile(string,bool,string,bool,uint256,bool,bool,bool,string,bool)","8c042317":"startQuater()","8c04b985":"readSellTokenAmount()","8c063686":"getRelayAuthority()","8c06fa18":"PRICE_PREICO()","8c088d98":"winMultiplePer()","8c08ae0d":"withdrawEtherRemaining()","8c09138f":"fourth()","8c0989ab":"MultiServiceFactory(address)","8c09bfdc":"shake(uint256)","8c0a41f2":"gibtesnet()","8c0b1588":"createNFT(uint256,address,bytes32,bytes32,bytes4)","8c0b372d":"e6c65e93()","8c0b4ae5":"setGenesMarketAddress(address,address)","8c0bae5b":"releaseRedTeamTokens()","8c0c0368":"_confirmOneSell()","8c0c9c07":"updateCampaignAbi(string)","8c0cf897":"develop()","8c0d0c29":"mark()","8c0d4199":"lock(address,address,uint256,uint256,bool)","8c0d6593":"CustomDealICO(uint256,uint256,uint256,address,uint256,uint256)","8c0dacf2":"deleteRecord(bytes32)","8c0dee9c":"operatorTransferByPartition(bytes32,address,address,uint256,bytes,bytes)","8c0e156d":"scheduleCall(bytes4,uint256,uint256)","8c0e299a":"proposeCompanyAllocation(address,uint256)","8c0e2a31":"regProxy(address)","8c0e45f6":"test_openRegistryRules()","8c0ead61":"_updateMLBPlayerId(uint256,uint256)","8c0ec0d1":"changeClient(address)","8c0f082c":"setFLKDForGas(uint256)","8c0f8e11":"getWorkerScore(address)","8c0ff5b7":"maxWithdrawal()","8c10671c":"addManyToWhitelist(address[])","8c115322":"isP2PKH(bytes,uint256,uint256)","8c118cf1":"verify(uint256,uint256,uint256,string,string,bytes32[2])","8c12324a":"Mire()","8c1256b8":"Recovered(address,uint256)","8c12c35c":"BTWO_CLAIM_PERCENT()","8c12d8f0":"arithmetics(uint256,uint256)","8c133a77":"previligedBalances(address)","8c133c25":"changeBetPrice(uint256)","8c13aabe":"lockStages(uint256)","8c14db73":"testThrowsSaleWalletIncorrectBlock()","8c155b5b":"tradeForTokens(address[2],address,bytes,bytes)","8c156213":"generateHash(address,string)","8c160095":"deleteInt(bytes32)","8c165146":"initSale1()","8c165932":"sendShip(uint32,uint32,address)","8c167076":"setHoldersList(address)","8c172fa2":"getEvent(bytes32)","8c17c5ab":"setNowTime(uint256)","8c17fc91":"getWeaponsArmy2(uint256)","8c19773f":"addBlock(address)","8c19c175":"getStageState(uint256)","8c19d2ca":"setCombatWonTeam(uint256,uint128)","8c1ab426":"WithdrawalofFunds(uint256)","8c1c7acc":"icoThreshold2()","8c1d01c8":"defaultPayment()","8c1d4a0a":"GreenEcoMinerToken()","8c1d92af":"distributePresaleTokens(address[],uint256[])","8c1d9f30":"isValidCandidate(bytes32)","8c1e04a6":"updateGenerationDict(uint256,uint64)","8c1e21da":"tokenPreSale()","8c1f85e5":"FeeSetup(address,address,uint256)","8c206979":"_freeze(uint256)","8c2081b5":"RewardsCoin()","8c217d06":"zsjz(uint256,string,string)","8c21f6bb":"getLockedGroup(uint8)","8c21ffba":"supplyLockedB()","8c22ac8b":"Account_frozen(address)","8c2305fd":"stakeBela(uint256)","8c25466a":"mintPreSale(address,uint256)","8c254c0b":"walletDev()","8c259654":"getRegistryDataRegistry()","8c25f54e":"linkContracts(address)","8c261e2c":"getHashRightPad()","8c267b97":"cmoAddress()","8c26a340":"generateOrderByAdminWithPayee(address,address,address,uint256,string,string,string)","8c26c937":"STQPreICO3TestHelper(address,address)","8c26ebf7":"EgretiaToken()","8c272dba":"_buyin(address,uint256)","8c273a98":"getRefBonus(address)","8c2779f5":"gold_token_storage()","8c28c16e":"STAGE_TWO_ETHRaised()","8c28fd6e":"mintHelper()","8c2962b9":"setBuyAgent(address)","8c299d0c":"AdoptionOfferCancelled(bytes5)","8c29bce5":"setJoule(address)","8c2a5938":"setAllowedToBuyBack(bool)","8c2b8283":"WeiLaiExToken()","8c2d1549":"getTotalMined()","8c2d396f":"TelegramOpenNetworkContract()","8c2e6b3f":"ChangeSellRate(uint256)","8c2f04d9":"distributeUsingVaults(uint256,uint256,uint256,address)","8c2f6458":"calculatePreviousPrice(uint256)","8c30079a":"generateTeamTokens()","8c30779b":"getAvailableVestingAmount(address)","8c3088c6":"HeritableWallet(address,address,uint256)","8c308a71":"Anemoi(uint256,string,string)","8c3135f2":"poolTokenBalance()","8c31d67e":"getNoOfSoldToken()","8c324604":"MAX_TOKENS_EARLY_INVESTORS()","8c32c568":"Airdrop(address,uint256)","8c32e774":"isMaxTokensReached()","8c33417c":"WankCoin()","8c335b4b":"oceanBonus()","8c339a58":"QSHUCOIN()","8c33a5c4":"RESEARCH_AND_DEVELOPMENT_TOKENS_PERCENT()","8c343aee":"TestIssued()","8c346690":"toggleHalt(bool)","8c34dbec":"bitcoing()","8c363fda":"AbstractToken()","8c366dd3":"newinitialSupply(uint256)","8c3692c3":"popToken(address)","8c36ae89":"clearReward(address)","8c374d8d":"releaseApproval(address)","8c3753d7":"WEI_PER_FINNEY()","8c377ca6":"UnsetUsername(string,address)","8c379133":"Water(string,string)","8c37ce04":"MeetTokenBase()","8c37e152":"bountyTokensReserve()","8c37e31e":"setSpawningManager(address)","8c37edc4":"USN(address,address,bytes32,uint256,uint256,uint128)","8c382e22":"checkIsAssetPartOwner(bytes32,address)","8c3846e8":"ConsumerAddition(address)","8c38eddd":"_clearAddressFromCrowdsale(address)","8c39bf96":"DredgrSwapSolo(bytes5,bytes5,bytes32,bytes32,uint256,bytes32,bytes32,uint256)","8c39cb93":"makeClaim(bytes32,string,uint256,bytes32,uint256,uint256,uint8,uint256)","8c3b6f0e":"getCrystalGeneKindWeight(uint256)","8c3c00aa":"overdraftPeriodAmount()","8c3c4b34":"getSaleStatus()","8c3d5897":"MANHATTANPROXY2NDAVE()","8c3e1ff1":"modexp(bytes,uint256,bytes)","8c3e9e1a":"verifyYourself(string,uint256)","8c3f71b2":"_getCurrentTradableToken()","8c3f914a":"spread(bool)","8c3fae8c":"BeeUnity(uint256,string,string)","8c404cf1":"stablesCities(uint256)","8c41399c":"view30()","8c41d101":"LogAgreementAccepted(address)","8c421815":"RefundedTokens(address,uint256)","8c4406c1":"setInputName(uint256,uint256,uint256)","8c4430b4":"setFinalLotteryAddress(address)","8c44cb27":"creationQuantity()","8c44dfb5":"bids_computed_cursor()","8c45cf24":"addJobContractMessage(uint256,string)","8c461e97":"setValueAirDrop(uint256)","8c46c7cd":"betAmount_()","8c47ddcc":"refundOwner()","8c4899ab":"ownerOfPlanet(uint256,uint256,uint256)","8c497285":"ChangeAddressTrust(address,address,bool)","8c4a6f62":"delMinter(address,address)","8c4af723":"changeNewRoundDelay(uint256)","8c4b0c58":"FrozenProfit(address,bool)","8c4b0e7e":"setOrganiser(address)","8c4b7300":"ViewBet()","8c4b87d2":"chris()","8c4c26a3":"BunToken(address)","8c4c564d":"deletePoll(bytes32)","8c4d3193":"getOrderDealTimeInterval()","8c4d59d0":"ticketCounter()","8c4dd5cd":"Democracy()","8c4e3f32":"_setApprovalForAll(address,address,bool)","8c4e8c21":"nextMintTime()","8c4e9c50":"prepareSell(address,uint256)","8c4ef31a":"getremainTokensperType(uint8)","8c4f7dae":"getMatchCount()","8c500418":"getICODate()","8c50d756":"bidSuccess(uint256,address,uint256)","8c518026":"_preSale(address,uint256)","8c529628":"getVoteFromProposal(uint256,uint256)","8c52dc41":"enableRefunds()","8c5344fa":"countThisRecursive(uint256)","8c534d54":"getTokenTxnNum()","8c53f61d":"receiveETH(address)","8c546f81":"GNT()","8c549ef7":"COLOR_BROWN()","8c55041c":"Announcement(address[],uint256,uint256)","8c551742":"createItem(string,uint256)","8c55284a":"confirm(uint256,bool)","8c5597fd":"finalizeContributionEvent()","8c561592":"canUpdateInvoicingAddress(string,address)","8c564ebf":"freezeBypassing(address)","8c5871bf":"getLocksUnlockDate(address,uint256)","8c590917":"contribute(uint256,uint256)","8c590b5d":"getAllMatingAnimals()","8c59f7ca":"cancelOrder(address[5],uint256[6],bool,uint8,uint8,bytes32,bytes32)","8c59fba0":"DATP()","8c5a03bb":"SimpleDistributor()","8c5aae96":"LocalsMembership()","8c5ae183":"RemoveMod(address,address,bool)","8c5b830e":"getInviteeInfo(uint256)","8c5cc61c":"approvedreg(string,string,string,string)","8c5ce82a":"powerTest(uint256,uint256,uint32,uint32)","8c5d5e87":"ownerSetMod(bool)","8c5e06b1":"Channel(address,address)","8c5e2b0e":"MainSaleStart()","8c5f6d5a":"SetDebugExtra(uint32,uint8)","8c5f997e":"NewEntry(address,uint256,uint256,uint256)","8c5fb7fb":"modifyMember(string,string,string,string)","8c60e806":"closeContributions()","8c614502":"addCountry(address,uint256)","8c618066":"addressOfName(string)","8c6310ac":"NextOpen()","8c638152":"setApoderado(bytes32,bytes32,bytes32)","8c64400d":"updateTierDuration(uint256,uint256)","8c648117":"actualPrice()","8c6486c4":"sendRegistration()","8c64eb4f":"switchCrowdState()","8c655550":"advisorsAllocatedAmount()","8c6589b2":"getLastSTCPrice()","8c65f15d":"clearBonuses()","8c662ffa":"LogCollect(address,uint256,uint256)","8c663229":"lastSellPrice()","8c663ffc":"getBounsWithRoundID(uint256)","8c66c9fc":"findBest()","8c66d04f":"setFeeCalculator(address)","8c66f294":"distributeFeeRewards(address[],uint256)","8c676aaa":"CUZ()","8c67f63a":"calculatePayment(uint256)","8c682bde":"setWinnerAndWithdrawAllFunds(address)","8c6838ba":"getPost()","8c68bc3e":"SetContractorManager(address)","8c69554d":"OwnerRefunded(address,address,address,uint256)","8c69930d":"getNewFallbackDepositEffectuation()","8c69c559":"Crypbest()","8c6aefcf":"chip(uint256)","8c6b6085":"supportNewVoter(address,address)","8c6ba233":"isLateBy(address)","8c6c8323":"buyTokens(address,address,uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","8c6f2ec1":"setCompte_17(string)","8c6fc437":"standardICO(string,string,uint8,address,uint256[],uint256[],address[2],address[])","8c701ba8":"releaseRoots()","8c717138":"lastBlock_a1Hash_uint256()","8c71bed2":"unlockTeamTime()","8c71eaf1":"TokenBEN(uint256,string,uint8,string)","8c71ec16":"create(address,uint256,uint256,uint256)","8c7229cb":"pantura()","8c727fa3":"oldCirculatingSupply()","8c72c54e":"publisher()","8c72d4a4":"getStageTokenAmount(uint256,uint8)","8c733fdf":"weiToUsd(uint256)","8c73596c":"init(address,uint8,uint256,uint256,uint256,uint32,uint256)","8c748334":"cancelBuyOrder(uint256,uint256)","8c74c5c0":"bonusOff()","8c74d62c":"LockedInToken()","8c7565dc":"ADChainGrants(bytes32,bytes8,bytes32,bytes)","8c756b1d":"balanceByAd(address)","8c7698df":"lowerCase(bytes32)","8c76b4b7":"addTrustedContracts(address[])","8c771a8e":"newEscrow(address,uint256)","8c787768":"abbcwalletcoin()","8c789fb2":"setTokenBudget(address,uint256)","8c794114":"prizeWithdrawal()","8c79a24d":"refName(uint256)","8c79ca5d":"AddMember(address,uint256)","8c7a63ae":"getTokenInfo(uint256)","8c7a8140":"extractVestedOptionsComponents(uint256,uint256,uint256)","8c7c35b9":"internal_tester()","8c7c4016":"GameLogicContract()","8c7c9e0c":"eth()","8c7d1e8a":"MyKillerContract()","8c7d3241":"total_iou_available()","8c7d58aa":"isTimeExpired()","8c7dd9ec":"_canReveal(address,address)","8c7e1227":"setupStakingPriceFeed()","8c7e5008":"maxDonationInWei()","8c7e763b":"HSCC()","8c7f7806":"AfeliCoinPresale(address)","8c7fcd46":"BLVToken(uint256,string,string)","8c80fd90":"setMinStake(uint256)","8c812c51":"PhoenixExchangeFund()","8c817b6e":"registered(uint256,address)","8c82790b":"getReg3()","8c82dccb":"updateStatuses(bytes32[])","8c832ef4":"GalaxyCoin(uint256,string,string)","8c849f3f":"getMemes()","8c864dfe":"_updateChecksum()","8c86ec20":"NMC(uint256,string,string)","8c877527":"allowTransfert()","8c87b2fc":"Identity(bytes32,bytes32)","8c882958":"LEToken()","8c88512f":"initializeCrowdsale(address)","8c88752a":"ContributorList(uint256)","8c8885c8":"setDecimals(uint256)","8c88b85f":"_finalizeRound()","8c88d716":"transferIfRequirementsMet(address,address,uint256,bool)","8c89b1c7":"setINCENTIVE_POOL_ADDR(address)","8c8a03ac":"setBucketManager(address)","8c8a261a":"devMiningRewardChanges(uint256)","8c8a40bd":"hashNotFound(address)","8c8b31ab":"dhanaToken()","8c8b6fc5":"challengeSubmitted(bytes32,bytes32)","8c8b802e":"getLimitPeriod()","8c8b9d54":"setEmployeeStorage(address)","8c8bc5ce":"ChangeICOStart(uint256)","8c8d067f":"chosenProposal()","8c8d2ede":"team1()","8c8d36c2":"THANKSTEST3()","8c8d98a0":"toTimestamp(uint16,uint8,uint8)","8c8df7cd":"GOTokenCrowdsale()","8c8e2478":"convertTokens()","8c8e5f1f":"BlockTubePrepaid()","8c8e8fee":"token_address()","8c8ee490":"checkReleaseAt(address)","8c8f94f5":"DeletePrice(uint256)","8c8f95fb":"lockFunds(uint256)","8c8f9c0e":"issueTokenToAddress(address,uint256,uint256)","8c8fc30b":"addAd(uint32,uint32,string,string,string,uint256)","8c907c0d":"LanderToken(uint256,string,uint8,string)","8c90b2ea":"pay055(address)","8c9151ae":"voteProposal(uint256,bytes32)","8c91bd3e":"addMoves(uint256,uint256[2])","8c91daac":"startRoundSeed()","8c920a38":"testSanityCheck()","8c924e9c":"incrementRead()","8c93256e":"transferReward(address)","8c934d71":"forceRefundCfd(uint128)","8c937da3":"WALLET_LB_TEAM()","8c9425e4":"privateLockAddress()","8c943b6c":"setDistrictCode(bytes32)","8c944339":"setActiveSkin(uint256)","8c944bb2":"_createPrimordialLot(address,uint256,uint256,uint256)","8c945d38":"takeOffItem(uint256,uint8,address)","8c94db38":"MMCoin(uint256,string,string)","8c9512bc":"companyTokens()","8c9515ea":"doPayouts(uint256[49],address[49],uint256)","8c9540d3":"isCommittee(address)","8c95acee":"getTreshold(uint256)","8c96a2c9":"getAssetPackPrice(uint256)","8c96a538":"COO_SHARE()","8c96e34b":"betIsSettled()","8c98117c":"getBill(uint256,uint256)","8c988a46":"isLinkedWallet(address)","8c9924d5":"AddrMarketing()","8c9a4f13":"FundsTransferred(address,uint256)","8c9ae56f":"QueryPlayerBonus(address,uint256)","8c9b2cd1":"ModultradeProposal(address,address,address)","8c9c2977":"newMember(uint8,bytes32,address)","8c9ce20c":"_addressNotNull(address,address)","8c9cf205":"SignVersion(string,string)","8c9d8300":"withdrawForAdmin(address,uint256)","8c9dd650":"Etherlott()","8c9e81e5":"triggerICOState(bool)","8c9ecd00":"toDec()","8c9f7074":"setInterestFeePercent(uint256)","8c9f7b39":"endSale(address)","8c9f8935":"ClaimSet(address,address,bytes32,bytes32,uint256)","8c9fcfe2":"payForUpgrade(address,uint256)","8ca0dd20":"tgeCap()","8ca10f9b":"sendRemainingTokens(address)","8ca17755":"etheraffle()","8ca17995":"divest(uint256)","8ca3b448":"addUser(address,address)","8ca3c553":"setData(string,string)","8ca47688":"WhiteListUpdated(address,bool,address)","8ca4eef6":"getBuild(bytes32)","8ca517dd":"getActiveBuyDetails(bytes32)","8ca51f82":"setMinimumClaimValue(uint256)","8ca5d525":"removeAllowedHICAddress(address)","8ca5da35":"mintManual(address,uint256)","8ca6c287":"InsurContract()","8ca6f747":"potatoBalanceOf(address)","8ca74163":"BZCToken(address,uint256)","8ca79351":"ethPriceIn()","8ca84d40":"preparationPeriodTrainingFeeMultiplier()","8ca9ac01":"LogBeerClaimed(address,uint256)","8ca9e721":"finalizeCrowdSale()","8caa0083":"teamCount()","8caa5c91":"DataBase()","8caaaae6":"totalWeiPrice()","8caaab4d":"verifyProofOfStakeInternal(uint256,bytes32,bytes32,uint256,bytes32[],uint256[],uint256,uint256)","8caad7b5":"changeMinDepositAmount(uint256)","8caba7b7":"startCharging()","8cac1939":"TOKEN_TEAM()","8cac3b42":"addDividend()","8cac5f55":"feeForTheStakingInterval()","8cad5826":"FundTransfer(uint256,bytes32,address,address)","8cadaa5d":"TokenFreeze()","8cadd6a2":"getVestedBalance(uint256,uint256,uint256,uint256)","8cae013e":"signatureFunc(bytes)","8cae1374":"editBlock(uint8,uint8,uint256,int8[5])","8cae59dd":"heapSort(uint32[])","8cae711f":"mintLiquidToken(address,uint256)","8cb09d4d":"GCTToken()","8cb0a511":"approve(uint256,address,uint256)","8cb18ef6":"needFightToAdult()","8cb1b614":"setWhitelisted(address,address,uint256)","8cb1e9c1":"unlockedAt()","8cb240b0":"saasPayment(address,uint256)","8cb36aef":"requestCoinToUSD(string,bool,uint256,uint256)","8cb3728c":"getAllRevisionTimestamps(bytes32)","8cb39385":"getMinBid()","8cb3c89f":"loadEthBalances()","8cb47a2f":"CrowdForceSampleToken()","8cb5497c":"setOperator(bytes32,bool)","8cb56999":"GetExpireTime(uint256,uint256)","8cb5a0c0":"removeCoordinator(address)","8cb858cb":"PRCVToken(uint256,string,uint8,string)","8cb996df":"LogMigrationEnabled(address)","8cbb02ad":"Marijuana()","8cbb13e7":"TokenRHT()","8cbb6593":"SHNZ2()","8cbba6cf":"isPreWhiteListed(bytes32)","8cbbe25f":"NIMFA_PER_ETH_PRE_SALE()","8cbc8c0b":"lockholderNumber()","8cbcbca2":"_payChicken(address,uint256)","8cbdf1d1":"mintARC(address,uint256)","8cbe775a":"Bitdepositary()","8cbe898d":"CommitteeLimits(uint256,uint256)","8cbeb340":"ControlContract(address)","8cbf4145":"confirmPrintProxy(bytes32)","8cbfa1ec":"quoteAsk()","8cc02403":"cobrarImpuesto(uint256)","8cc04ebb":"_appendUintToString(string,uint256)","8cc17117":"forceRecoverCollateralInternal(address)","8cc2f547":"DiceGameCrowdsale(address)","8cc30c6f":"buyStageDataRecord(uint256,uint256,uint256,uint256)","8cc34ed7":"zilla_remaining()","8cc40d71":"dividend_amount()","8cc4ab11":"getPurchaseTimestampEnds()","8cc50ecd":"addBlock(string,uint256,string)","8cc519bf":"companyTimelock()","8cc51eda":"kitties(uint256)","8cc5510f":"setTeamAddress(address,bool)","8cc55473":"bulkTokenMint(address[],uint256[])","8cc57368":"getUserTokens(address,uint32)","8cc5cde2":"isLunyrToken()","8cc5e56e":"revokeLockByIndex(address,uint256)","8cc60a61":"isStoreActive(uint256)","8cc60eca":"SS()","8cc63bfb":"marketingFunds()","8cc6acce":"updateConfig(bytes)","8cc78a40":"option20symbol()","8cc7ea0e":"Xian()","8cc89e1b":"TCCoin()","8cc8baaf":"getBuyPriceTimes()","8cc8c236":"_transfer(address,uint256,bytes)","8cc9638c":"fundBurn(address,uint256)","8cc98bc3":"approveEliminate(address,uint256)","8cc99aa3":"getAmountForCurrentStage(uint256)","8cca5a3f":"withdrawWallet(address)","8cca8f64":"canClaimRefund(address)","8ccb381b":"tenthTotal()","8ccb4daf":"getPositionMaxDuration(bytes32)","8ccb59e8":"revealWinner(uint256)","8ccb9f2d":"del_admin(address)","8ccbd6da":"freezeToken()","8ccc04ea":"proofOfConceptCap()","8ccc4781":"Math(int256)","8cccc341":"initiateChallenge(address)","8cccf2df":"viewServiceReward()","8ccd227c":"gameRequestTokens(address,uint256)","8ccdcf80":"tokenSalePausedTime()","8cce10c8":"rank(address,address,uint256)","8cce49c9":"mokenData(uint256)","8cce7e92":"removeMarketFromWasCalled()","8cceb1e8":"notifyBurn(address[])","8cd0a573":"transferWithCustomReserving(address,uint256,uint256)","8cd0fc3d":"TRONClassic(uint256,string,string)","8cd221c9":"roundId()","8cd25904":"calculateAndCreateTokens(uint256)","8cd3751b":"newProposal(address,uint256,uint256,bool,bool,address,uint256,uint256,uint256,uint256)","8cd3f064":"acceptToken(address)","8cd41fae":"StartCompetition(uint8,uint8,uint8,uint8,uint80,uint32)","8cd41fd8":"referrerBonus2()","8cd42991":"getTimeRemaining(uint256)","8cd47415":"zkWithdrawTrusted(bytes32,uint256,address,uint256[2],uint256[],uint256[],uint256[],uint256)","8cd4d21a":"x(uint256,address)","8cd4fdf1":"maxGamble()","8cd53767":"withdraw(bytes32,address,address,uint256,uint256,bytes32,bytes,bytes,bytes32)","8cd5dce3":"setNextRoundRequiredBetAmount(uint256)","8cd6c7fa":"seedSingleSaleCount()","8cd70e72":"isInitalized()","8cd85846":"totalTranches()","8cd85dc2":"getWinNumbers(uint256)","8cd8bd05":"IanCoin()","8cd8db8a":"init(uint256,uint256,uint256)","8cd90e31":"EAToken(uint256,string,uint8,string)","8cda2a15":"SafePromo(string,string)","8cda4430":"lookupRoyalty(address)","8cdb1719":"approveCertification(uint256)","8cdbd8fb":"remainToken()","8cdc86a6":"sort()","8cdcbdef":"closeBlock()","8cdcdae1":"testControlUpdateLatestRevisionNotOwner()","8cde43dc":"getCrowdsaleMaxRaise(address,bytes32)","8cde4667":"BANKNET()","8cdf31fa":"Cryptoya()","8cdfb1e6":"transferIfHF(address)","8ce0080f":"updateGuMasks(uint256,uint256)","8ce05b54":"bornFamedStar(address,uint256)","8ce060fb":"FounderSwitchRequestEvent(address)","8ce0bae8":"Canceled(address,uint256,address,address,uint256,address,uint256,uint256)","8ce0bd46":"Deposit(address)","8ce113dc":"right60(uint256)","8ce187fd":"raisedUSD(uint256)","8ce25a93":"numAccounts()","8ce2ae2d":"creator_new()","8ce2e0ea":"addLastTwoAmbassadors(address,address)","8ce2f386":"AcceptsOmniDex(address)","8ce3ee62":"transferEmpire(address)","8ce450de":"assetThaw()","8ce4f1b2":"setGasRewardPercent(uint256)","8ce53e5b":"getMaximumInvestmentPerDay()","8ce5877c":"removeSpender(address)","8ce69b72":"USD_IN_ETH()","8ce74426":"protocol()","8ce795f5":"SerbiavsBrazil()","8ce7be01":"getUniqueSpinnerPrice()","8cea577a":"allowFunction(bytes32,bytes4)","8ceaa23f":"setAvailablePositions(uint256)","8cead4bf":"currentProfit()","8cec9176":"SimpleMultisigWallet(address[],uint256)","8cecd03e":"INVESTOR_TOKENS()","8cece594":"countClaimBackers()","8cecf66e":"_inverse(uint256)","8ceda04d":"getCounting(bytes32)","8cee8778":"crear(uint256)","8ceeaaa8":"getTodayOwnerAddress()","8ceedb47":"cage(uint256,uint256)","8cef1ed9":"xpectoTTF1Token()","8cef2b93":"CECNaypyidaw(address,uint256)","8cefad63":"setAirEndtime(uint256)","8cefaf1a":"setSalesEndTime(uint256)","8cf0c191":"rum()","8cf19975":"createLottery(string,uint256,uint256,uint256,uint256,uint256,uint256)","8cf1c5c4":"LogFeeEvacuation(uint256)","8cf20038":"engDevAddress()","8cf228cd":"DNNTDE()","8cf3313f":"calculateWeightedMultiplier(uint256,uint256,uint256,uint256)","8cf3562b":"DEC15Recursive()","8cf37ece":"InformRebuy(uint256)","8cf39a9c":"TicTacToe(address,address,uint256)","8cf3a181":"addRRA(address)","8cf3e683":"isAddressExcept(address,address)","8cf49cad":"ReleaseDate()","8cf4dbfb":"collectBalance()","8cf57cb9":"rewardAddress()","8cf5dbc6":"recruitHero()","8cf7b7a4":"slashAddressLikeUsername(string,uint256)","8cf7d906":"playAndFinishJackpot(uint256,uint256,uint256,uint256)","8cf80438":"winningBid()","8cf8151f":"appWasMade(bytes32)","8cf907fb":"EndRefund()","8cf92ade":"distributeBountyTokens(address[],uint256[])","8cf9f5e7":"getPreSelledInPool()","8cfa8eea":"getWeiToUsdExchangeRate()","8cfaabcc":"managementTransfer(address,uint256)","8cfae7e4":"TransferUnsoldTokensBackToTokenContract(address)","8cfb3088":"defaultExpiry()","8cfb7c02":"updatePopularity(bytes32,uint256)","8cfd6d4c":"CCH_LLV_FIFA_2()","8cfd8901":"_incBlock()","8cfdacb0":"STARTING_PACIFIST()","8cfe6a09":"tokensToEthereum_2(uint256)","8cff1990":"isSignedByAndrey()","8cffa21c":"getOwnedItems()","8d000903":"createTokenToMarket2018()","8d008989":"Multisig(address,address,address,address)","8d00abb6":"setAElfCommunityMultisig(address)","8d012295":"presaleVesting(address,uint256,uint256,uint256,uint256,uint256)","8d0128cb":"transferMintKey(address,int256)","8d01308c":"PRESALE_START_WEEK3()","8d03b102":"testing()","8d044c06":"unpauseRedemption()","8d049190":"mapWidth()","8d0515dc":"HenryMiniToken(uint256,string,uint8,string)","8d0522c5":"set_contrib_arbits_max(uint256)","8d0528ec":"Withdraw_referral()","8d05ad4e":"NLL()","8d062046":"testTokensAreTransferrableAfterSale()","8d068043":"requiredSignatures()","8d0716c4":"approveScoupons(address,uint256)","8d07ae9f":"getBidDetails(address)","8d086da4":"withdrawShares()","8d089930":"limitEndDate()","8d08eefa":"setCORAddress(address)","8d09b9cc":"TeCToken()","8d09c674":"Donated(address,uint256,uint256,uint256)","8d0a3b6d":"bonusByAmount()","8d0a5fbb":"getOrderCount()","8d0a73e3":"tokenDistributionStartTime()","8d0aadca":"playerDelayOnExit(address)","8d0ae472":"AsheToken()","8d0b3d9b":"_add(uint32,address)","8d0b4be5":"setXPContractAddress(address)","8d0bba03":"MINIMUM_CONTRIBUTION()","8d0caef5":"bonusStage1()","8d0cf786":"MatchAdded(uint256,uint8,uint16)","8d0d018c":"havedDistDevCoin()","8d0d27ba":"queryPlayerType(uint32[11])","8d0d3ccf":"getBonusTier()","8d0d877f":"LZZ()","8d0dd3c0":"setBUU(bytes32,uint256,uint256)","8d0e5136":"isPlayerInQueue(address)","8d0eda03":"isInvestorLocked()","8d0f403a":"adminAddAction(bytes32)","8d0f8cef":"drop(address,uint256)","8d0fc05a":"votesYes()","8d10215e":"grantAccess(uint256,uint256,string)","8d106690":"setPropertyFlag(uint16,uint8)","8d111ac6":"checkTokSold()","8d119d41":"AngelCoinV1()","8d121247":"changeProductionFeeRecipient(address)","8d12aba7":"IMCOToken()","8d134175":"CellTokens()","8d1343e0":"issueDate()","8d13d972":"getUsdFee(bytes32,uint256)","8d13ea34":"changeUserProjectExp(bytes32)","8d14670a":"multiUnlock(address[])","8d149b3c":"compareInts(int256,int256)","8d152d78":"pushBytesArray(bytes32,bytes32)","8d1540c1":"CoinBuy(uint256,address)","8d159787":"buyDragon(uint256)","8d15a218":"LogRedeem(address,uint256)","8d15b307":"privateEventActive()","8d16fd83":"sellDai(uint256,uint256,uint256)","8d17664d":"getSecret(uint256)","8d182f01":"removeSale(bytes32)","8d1a4b28":"getGame(address)","8d1a7765":"getPlayerGeneral(uint64)","8d1bc93d":"buyWuxiaMaster()","8d1c3b8b":"sHasDownvoted(uint256,uint256,address)","8d1c8048":"transport(uint256)","8d1ca4ec":"addGuess(int256)","8d1d1572":"transferFeeAddress()","8d1d22d8":"renameMonster(uint64,string)","8d1d2c21":"categoricalEvents(bytes32)","8d1d8639":"getcanuserun(address)","8d1dff6b":"mintTokens(uint256,address,bool)","8d1e6b56":"issueCompanyTokens()","8d1eaf78":"registrarInfo()","8d1fdf2f":"freeze(address)","8d20194d":"getWhiteUsersFrom(uint256,uint256)","8d215adc":"Bettings(uint256,uint256)","8d216186":"roll(uint256,bytes32)","8d22651e":"MAX_NUM_OF_CHOICES()","8d227fc0":"getPeriodInfo()","8d22b345":"getAppTokenCode(uint32)","8d24abbc":"closeAndTransferTokenOwnership()","8d24d147":"rvDeposit()","8d24f5bc":"tokensByBtcTx(string)","8d256b0a":"ExchangeRate(uint256)","8d258104":"setManager()","8d25827a":"countOpenPackageOfOneAgency(address)","8d259d65":"_sellCallToOpen(uint256,uint256,uint256,uint256,address)","8d25af04":"restartGame()","8d26d88f":"feeWithdrawTokenAmount(uint256)","8d26eb2b":"edgePigmentG()","8d272b0a":"TaeCoin()","8d2810fe":"GenesisBuyPrice(address)","8d288e93":"toRefund()","8d28da21":"ECT(uint256,string,uint8,string)","8d298851":"initialIssue()","8d29a239":"finalizeHoldingAndTeamTokens(uint256)","8d2a0910":"getTotalDividendsPaid()","8d2af65d":"claimTokenReserveFinan()","8d2c8ce8":"RrcToken()","8d2c929a":"bridgeNodes(address)","8d2d2563":"saleFirstEarlyBirdEndBlock()","8d2d3f41":"getKeyRevisionNumber(uint32)","8d2dcb2d":"TokenPool(address,address)","8d2ea8dc":"withdrawAvailableToken(address,address,uint256)","8d2f349f":"TransCompleteds()","8d2f7272":"CariToken()","8d300458":"updateInvested(address,uint256)","8d30241b":"HasGoods(uint32)","8d30d418":"ContractRemoved(address)","8d30e65d":"claimReservedTokens(address,uint256)","8d3121b3":"releasedTokenTotal()","8d317de2":"OctusToken()","8d323fdc":"LogAddressTokenCapChange(uint256,string)","8d331996":"setTimeWindow(uint256)","8d334529":"restrictions(address)","8d348b7c":"mintToClient(address,uint256)","8d357fa3":"getKeys(uint256)","8d35b9ce":"ARXpresale()","8d361e43":"removeSigners(address[])","8d361f6e":"bonusTokensDistributed()","8d375da2":"testMakeItFail()","8d37f52c":"addAgingTime(uint256)","8d38b237":"calculateCountOfInvestmetnsInQueue(uint256,uint256)","8d38f5a0":"Burn(address,uint256,bytes)","8d3945e4":"setCounter()","8d3965be":"buyerApprove(uint256,bytes)","8d3972d5":"FABIToken()","8d399ce3":"submit(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[])","8d3a5ded":"initPlatinum()","8d3af7eb":"withdrawLemontokens()","8d3b6d08":"registerSsp(address,uint8,uint16)","8d3bd1f8":"teamTokensGenerated()","8d3c7415":"JuzixTokenManager()","8d3d523b":"bet2Of(uint256)","8d3d6576":"maxContribution()","8d3d70df":"takeBet(uint256,address,uint256,uint256)","8d3d8587":"GanaPreSale(address,address,address)","8d3def46":"oryza()","8d3ef87d":"getuserlistlength(address)","8d3f0ed5":"allocateTokens(address,uint256,uint256)","8d3fd859":"sellFucks()","8d442ae0":"toUint8(bytes,bytes,uint256)","8d447e39":"getLatestWhitepaper(address)","8d44c90b":"BurnMyTokensAndSetAmountForNewBlockchain()","8d44f13b":"claimFromPool()","8d4572be":"rens()","8d45e221":"Partial23Transfer()","8d467f22":"getKeysFromEth(uint256,uint256)","8d472709":"contribute(address,address,uint256)","8d475461":"m_teamId()","8d4777c8":"claimGooDepositDividends(address,uint256,uint256)","8d47c7d7":"getTokenListed()","8d498158":"DaleoneToken()","8d49cd7f":"getTeam(uint32)","8d49da75":"stopCollection()","8d4a2d39":"addSeconds(uint256,uint256)","8d4d801c":"addRecipient(bytes32,string,string,address)","8d4d8e19":"unregisterAsDelegate()","8d4e4083":"isFinalized()","8d4e57e6":"ROLE_TOKEN_CREATOR()","8d4ea1ba":"addEtherForOraclize()","8d505019":"addNote(bytes32,string)","8d50b6d0":"doSelectDisputedStateRoot(uint256,bytes32,uint256)","8d51faec":"setOwnerTestValue(uint256)","8d521149":"bonus_received()","8d52a1fc":"setStrikePrice(uint256,uint256)","8d539b35":"resetPendingContribution(address)","8d53b208":"revokeAccess(bytes32,address)","8d551860":"horseNotForSale(uint256)","8d553538":"addSecondaryRecord(string,bool,string,bool,string,string,string)","8d5555f2":"priceFor(uint256)","8d55719e":"_withdrawEther(address)","8d55b6ac":"thirdRate()","8d56ac74":"REALEX()","8d56bc62":"Bankroi()","8d574383":"setDemurrageFrequency(uint256)","8d578bee":"totalSaleCap()","8d5802e2":"getAssetOwner(uint256)","8d59cc02":"register(address,string,string)","8d59d1f1":"donate(uint256,string)","8d5a225e":"assignReserveSupply(address)","8d5c4456":"pIndex()","8d5c84cd":"isStart(bytes32)","8d5cc102":"traded_token()","8d5ceeca":"checkShares(address)","8d5d1e97":"priceStar3()","8d5d88c9":"LTYG()","8d5dee05":"EGGS_TO_HATCH_1TURTLE()","8d5e4f9c":"BroFistCoin()","8d5f3f96":"nextInvestorsProfitSum()","8d5f8d1c":"forwardFundToCompanyWallet(uint256)","8d5fa05c":"setAreas(address,uint256)","8d6014a8":"FixedCeiling(uint256,uint256)","8d60be98":"ICO_TOKENS_PERCENT()","8d60e30b":"reward(address,uint256,bool,string)","8d60ed85":"setDevCutPercentage(uint256)","8d614474":"AdvancedEthVocToken(uint256,string,string)","8d622749":"award(address,address,string)","8d627e91":"isTryedFinishCrowdsale()","8d62b845":"isMakersSignatureValid(address,bytes,string,address)","8d63c77b":"WizardReplacedEvent(address,address)","8d63cfa7":"getPixelOwner(uint16,uint16)","8d647185":"setBaselineRate(uint256)","8d647d3a":"allowPrivateParticipant(address,uint256)","8d64bcf1":"maxWhitelistPurchaseWei()","8d65095e":"PI_EDIT_3()","8d656b83":"minWeiInvestment()","8d664d6a":"setFeeRates(uint8,uint8,uint8)","8d670a2e":"unlockPlayerFunds(address)","8d6731b0":"LudumToken()","8d688b6e":"EthPyramid()","8d68cf59":"sendFunds()","8d69121d":"addDocument(bytes32,string,string)","8d69ca74":"wdEthereum(uint256,address[])","8d69e95e":"serviceProvider()","8d6a2ed5":"minimumBuyAmount()","8d6a6d4b":"_allocatePromoTokens(address,uint256)","8d6a6fbd":"proxyTransfer(address,address,uint256,bytes,string)","8d6b5d3e":"getScouponAllocationFactor()","8d6c58ab":"isTransferToICAPAllowed(address,bytes32,uint256)","8d6cc56d":"updatePrice(uint256)","8d6cd879":"FOUNDATION_STAKE()","8d6cd8de":"buffPtr()","8d6e56e1":"manyInputsNoReturn(uint256,uint256,uint256,uint256)","8d6f24d4":"hash_msg()","8d702122":"ownerKill()","8d70650f":"getSiteId(uint256,uint256)","8d70baaa":"BattleOfTitansToken()","8d70c0ce":"transferToExchange(address,uint256,uint256)","8d7108e5":"isValidLocation(uint8,uint8,int8[5],int8[24])","8d711776":"sendCrypto(address,uint256)","8d7117d4":"etherRatio()","8d715d9d":"Backdoor()","8d71f131":"TOKEN_RESERVE2_CAP()","8d72920b":"getAllowedAmountToContribute(address)","8d72a473":"deductFunds(address,uint256)","8d72f856":"deleteVip(uint256)","8d734b30":"setupMintableAddress(address)","8d73c027":"mintWithApproval(address,uint256,address)","8d747928":"isDrivezyPrivateTokenAcceptable()","8d748148":"monitor(address,bool)","8d74fd52":"GlobalTourToken()","8d75533f":"mint(address,string,bytes)","8d7570fc":"doBurn(uint256)","8d75fe05":"mintedTokens()","8d7601c0":"addResolvers(address[],uint256[])","8d77090f":"TriggmineToken()","8d776457":"sellBNT(uint256)","8d78c90b":"EventUpgrade(address,address)","8d79283d":"query1_fnc()","8d792964":"TD(uint256,string,string,uint8)","8d7a55bf":"PubKeyHashTypeAdded(uint8)","8d7af473":"numberOfProposals()","8d7b5243":"minerTotalReward()","8d7cdcf4":"setLLV_edit_8(string)","8d7cffb7":"transferWrappedContractAdmin(address)","8d7d2e5b":"minerPreSupply()","8d7daf95":"isTokenPairWhitelisted(address,address)","8d7e5be0":"getClue1()","8d7e7958":"userGrowsPoolSupply()","8d7e8a57":"approveSpenders()","8d7eca6f":"FUNDING_END_TIMESTAMP()","8d7f26e9":"setIPAddress(bytes32,bytes32,address)","8d7fe693":"Helios()","8d8001ad":"updateMintingStatus(uint256)","8d809b0e":"project_wallet()","8d80c34e":"unblockAccount(uint256)","8d80c922":"getAddressById(uint256)","8d81a1ce":"setClamTax(uint256)","8d81a88f":"BP_ATHENIAN()","8d81e2c0":"getTankTotalEarned(uint32)","8d81f51e":"safeTransferChild(uint256,address,address,uint256,bytes)","8d822615":"setFeeForArtWorkChangeRequest(uint256)","8d835674":"euroRaised(uint256)","8d837f38":"getEthBalTeller(address)","8d83cc95":"getNextSnapshotBalanceOfMul(address[])","8d842fad":"stopPreICO()","8d84a7fd":"credit(string,uint256)","8d854fde":"getDisputeId()","8d859f3e":"PRICE()","8d85a70f":"Vote(address,uint256,bool)","8d860880":"CheckOut()","8d86484c":"setPercentUnfrozenAfterAwardedPerPeriod(uint256)","8d8660bc":"setQuantity(string,int256)","8d86faa6":"getAmountToGive(address,address,address,uint256,uint256,uint256,uint256,uint8,bytes32,bytes32,uint256)","8d87b102":"amountOfStakeToBeReturned(address,uint256)","8d8833bf":"periodPreITO_wei()","8d89873c":"updateAndGetRemaining()","8d8a7f07":"VLBRefundVault(address)","8d8acee9":"setupMultisig(address,address)","8d8b1b88":"mixGenes(uint256,uint256)","8d8bd44f":"TokenSaleFinished(string,address,uint256,uint256,uint256)","8d8c36e9":"purchasedBy(address)","8d8d22ba":"changeServiceAddress2(address)","8d8d50d0":"createUnicorn()","8d8d92fa":"theBid()","8d8e2ea9":"Tablow()","8d8e4561":"theGrid(uint256)","8d8e5da7":"emergencyWithdrawal(address,address,uint256)","8d8f2adb":"withdrawTokens()","8d8f7780":"GEE100()","8d8f95d1":"collectDrugs(address)","8d909ad9":"getSeedAndState(string,address)","8d91801a":"RxEALTestSaleContract()","8d91931f":"longLock()","8d91e803":"buyWhiteCore(uint256,uint256,uint256,uint256)","8d920b02":"rejectPayment(uint256)","8d927069":"getTrace(uint256)","8d927b34":"maxPendingBalances()","8d928af8":"getVault()","8d92910c":"isLegalAttack(uint256,uint256)","8d92c187":"testFinalize()","8d92ce46":"submitBlockHeaders(bytes)","8d92fdf3":"withdrawAsset(uint256)","8d93758e":"PRESALE_STAKE()","8d93eac2":"mintFeeNumerator()","8d93ec88":"poolWallet()","8d94053f":"verifyAutoridadElectoral(bytes32)","8d949635":"endRefundableTime()","8d949c8b":"D(uint256)","8d956f1e":"tokenTransfer(address)","8d95f245":"sellkey(uint256)","8d976d76":"investCommission()","8d977672":"tasks(uint256)","8d977d9e":"checkGameClosed(address)","8d98ee43":"_verifyAddress(address)","8d98f4e3":"getAllCardsDefence()","8d9940b9":"createRetainer()","8d995f94":"transferAndFreeze(address,uint256)","8d99b2eb":"endPoll()","8d9a7b49":"pricePerMessageChanged(uint256,uint256)","8d9ad08e":"getAllInvestments()","8d9afc0f":"getStageId()","8d9b449b":"addRevenueShareCurrency(address,string)","8d9d851c":"toggleVaultStateToAcive()","8d9e6e47":"setFinalICOPeriod()","8d9e8a76":"CMGG12StandardToken(uint256,string,uint8,string)","8d9efa3f":"LogPhaseSwitch(uint8)","8d9f39d1":"_clear(uint256)","8d9f95c4":"PresaleEntry(address,uint256)","8da03997":"getNativeReputation(address)","8da15531":"SimpleCoinToken()","8da16e48":"geraHash(string,string)","8da198cd":"simpleAssert(bool)","8da1e722":"minGamePlayAmount()","8da2a2a1":"reserveDistribute()","8da2defb":"WE(uint256,string,uint8,string)","8da2fc26":"Burn(address,uint256,uint256,bytes)","8da3d736":"addToList(uint256,address[])","8da46db4":"DistributeXcel(address)","8da4d3c9":"claimCount()","8da4d776":"newCommune(address)","8da58897":"starttime()","8da5cb5b":"owner()","8da5fd77":"unlockSecondaryTokens()","8da66e67":"LogCollectAmount(uint256)","8da76874":"mintFromTrustedContract(address,uint256)","8da7d0b5":"totalChildContracts(uint256)","8da8023c":"endTimeOfStage(address,uint256)","8da8524f":"LogFrozenStatus(bool,uint256)","8da87ac6":"addressFundPlatform()","8da8a5ae":"nativeBlockhash(uint256)","8da8f235":"_addController(address)","8da91d04":"unset(uint32[])","8da9b772":"getHello()","8daaaa2f":"HOUSE_EDGE()","8daaf0a2":"addTokens(address,address,uint256)","8dab38da":"BONUS1_LIMIT()","8dac0e8c":"GetEtherPrice()","8dac7191":"initialTokenOwner()","8dad52f4":"dive4(address)","8dae3d68":"awardLuckyCoin(uint256,uint256)","8dae5adc":"FundTransfer(address,address,address,uint256)","8dae9364":"_stakeAmountValid(address,uint256,uint256,bytes8,uint256,uint256)","8daed4c4":"allocateShareholder(address,uint32)","8daf08d9":"requestStempas(bytes32,address)","8daf4dcf":"getTournamentRate()","8daf5033":"TokenPurchased(address,address,uint256,uint256)","8db02d79":"Tiguan5Coin()","8db0816a":"claimC2()","8db0e83b":"getBytesArray(bytes32)","8db1296d":"token_creation_cap()","8db1ccac":"PUBLIC_SALES_1_RATE()","8db23385":"balanceOfTotalUnclaimedCookie()","8db261e0":"hardWithdrawAll()","8db49b57":"GrantDeleted(address,uint256)","8db4dad2":"contractSignedTime(string)","8db517fb":"GMQToken(uint256,string,string)","8db518f3":"ContractiumToken()","8db54c90":"getTotalSendingAmount(uint256[])","8db57994":"fundLoan()","8db6c17e":"ISCoin()","8db7183a":"dateMarketing()","8db783ce":"addHourToProject(uint256,uint256)","8db78a37":"setBountyVault(address)","8db7cd54":"getTournamentEntranceFee()","8db8053b":"mintPresaleTokens(uint256)","8db8f8bc":"ELACoin(uint256,string,string)","8db9653f":"getTotalIssued()","8db974e4":"optionTotalSupply()","8db9c13c":"removePolicy(uint8)","8dbb908a":"clearAllrequest()","8dbbbe10":"getFeeTake(uint256)","8dbc2fd1":"setNewEndtime(address,uint256,uint256)","8dbd7d54":"addCashier(address,address)","8dbdfae7":"referalBonusPercent()","8dbe3be5":"isCeilingStrategy()","8dbe6c33":"_setUserInfo(address,uint256,uint256,address)","8dc01209":"CJC()","8dc07e46":"picops_is_enabled()","8dc1c44d":"testFailCreateWithParentSameNonce()","8dc2a2cd":"GMCCERC20(uint256,string,string)","8dc401ae":"withdrawAllDevelopersCut()","8dc43256":"AFRTokenERC20(uint256,string,string)","8dc45377":"getDuel1(uint256)","8dc4c6ab":"recoverable(address)","8dc6af54":"UsdToTokenConvert(address,uint256)","8dc6e2f1":"onMarketFinalized()","8dc71928":"minimumTargetReached()","8dc73521":"clearLock(address)","8dc850dc":"currentCoinsCreatedInteger()","8dc889f6":"requestDisbursement(uint256)","8dc949e8":"SapienToken()","8dc95182":"AssignWhitelistManager(address)","8dc9650f":"claimdram()","8dc98851":"Billboard()","8dca05c9":"airFropPot_()","8dca5511":"usdPerEve()","8dca7a01":"unicornManagement()","8dcb25e0":"balanceOf2Internal(address,address)","8dcb8c21":"coinsFlipped()","8dcd555f":"_buyNextRank(address)","8dcd64cc":"createAndEndowD(uint256,uint256)","8dcd992e":"_setBabzBalanceOf(address,uint256)","8dcdfe12":"distributeCrowdsaleTokens(address,uint256,uint256)","8dcf7892":"setAllocateTokenDone()","8dcfdaad":"removeMany(address[])","8dcff4f9":"setupAssetOwningListener(address)","8dd05b56":"getImageDataLength(uint256,uint16)","8dd14802":"setBridge(address)","8dd1e732":"YYBToken()","8dd1e96c":"getAngelFundAddres()","8dd21b0f":"redTeamLockingPeriod()","8dd3c196":"addInvestment(bytes32)","8dd42808":"removeHolder(address)","8dd47d91":"Wthdraw()","8dd4f292":"getRemainingSellingToken()","8dd5ac24":"SaveToken()","8dd5e298":"canEnterPool(address)","8dd66012":"incChildren(uint256)","8dd6908e":"ambassadorMode()","8dd6ce79":"setRatePrices(uint256)","8dd745bb":"adminSendTokens(address,uint256,uint256)","8dd747ec":"balanceOfKyCToBeApproved(address)","8dd7d6d1":"newPuppet()","8dd7e44b":"withdrawalComplete()","8dd8596c":"sendDonation()","8dd9054b":"MATCoin()","8dda811c":"GameChannelBase(address,uint256,uint256,address,address,uint256)","8ddab3dc":"_preValidateRefill(address,uint256)","8ddab515":"MedicayunLink(uint256,string,string)","8ddb428a":"currentGeneration()","8ddc9aa7":"UpgradeProposed(address)","8ddcf81e":"get_deal_status(uint256)","8dde60fa":"transferCoin(address,uint256)","8dde907e":"FooBurnableToken()","8ddf52bd":"earlyContribShare()","8ddf792b":"setOraclizeGasLimit(uint256)","8de022b7":"dropAnchor(uint16,uint16)","8de04f87":"authorized_updateCardReserved1(uint256,uint8)","8de0ece7":"THEWOLF10XToken(uint256,uint256,uint256,uint256,address,address,address,address,string,uint256)","8de12845":"init(string,string,string,string)","8de1dcea":"rateAngelsDay()","8de21650":"getBooleanValue(string)","8de2947c":"chkLockedTokens(address,uint256)","8de2a051":"setUint(uint256,uint8,uint16,uint32,uint256)","8de3317d":"withdrawDRPU(uint256)","8de4f42f":"addNewAirdrop(uint256,string,uint256,address)","8de5104b":"startPreICOStage2()","8de575e4":"Veen()","8de69284":"subscribe(address,uint256)","8de69c3c":"AcceptsDailyDivs(address)","8de69f66":"allocateAdvisorTokens(address[],uint256[])","8de6b343":"deleteFromBlacklist(address)","8de74aa1":"setEstateRegistry(address)","8de85908":"ProjectCall(address,uint256)","8de8d47c":"sendObjectWithoutApproval(uint256,address)","8de8de61":"CC5Coin()","8de93222":"purchase(address,uint256)","8de9ee05":"TakeBuyOrder(bytes32,address,uint256,uint256,uint256,address,address)","8dea60cc":"CryptopediaCoin()","8dec1720":"invites(address)","8dec3daa":"destroy(uint256,address)","8dec818a":"LogPaused(bool)","8dede3f5":"pendingInvestContractsIndices(address)","8dedeca8":"costAndBuyTokens(uint256)","8dee53b9":"setBoardMember(uint256,uint256,uint256,uint256)","8def14f3":"ether_per_token()","8def1d3b":"distinctInvestors()","8def32b6":"addOrderBatch(bool[],uint128[],uint128[],uint32[],int256,bool[])","8defbc5e":"right31(uint256)","8df068ab":"initialTransferToDevTeam()","8df0fda1":"isApplicationExits(string,string)","8df10469":"refundInvestor(uint256)","8df15e19":"tokenLock(address,uint256)","8df1a8db":"ENJAllocation(address)","8df208b7":"StopQ()","8df272d2":"CosmoCoin(address,address)","8df301aa":"tradeKyber(address,uint256,uint256,address)","8df35abe":"setManagerAndClaimer(address,address)","8df388c1":"totalUnvestedAndUnreleasedTokens()","8df3a24c":"canAcceptBuyNow(uint256,address)","8df41c32":"allocationAddressICO()","8df465ea":"Zendad()","8df48935":"uncooperativeClose(address,uint32,uint192,bytes)","8df4d225":"GLXChain()","8df554b3":"Dividend()","8df583bd":"exchangeBBDBalance()","8df5fc7a":"_RewardClaimed(address,uint256,uint256)","8df61294":"totalAmountOfOrders()","8df6ad66":"isArrAccountIsNotFrozenForReturn(address)","8df6af63":"setCHGUSDPrice(uint256)","8df793d6":"leaseCard(uint8,string,string,string)","8df8228c":"x888()","8df87c66":"_getTokenLockType(uint256)","8df8ac87":"recevedTokenFromEvabot(address,uint256)","8df8c008":"getFreeTurtles()","8df8cc4c":"_removeOperator(address)","8dfa6fcb":"endTimeAddBonus()","8dfa703f":"BitkerToken()","8dfaf7f0":"getTeamsInfo()","8dfb015f":"increaseInvestedWei(uint256)","8dfb04fe":"getExistCell(address)","8dfb9950":"transferTokensManually(address,uint256,uint256)","8dfbcf36":"addCapper(address)","8dfced82":"amountBonusEnabled()","8dfd1242":"updateStarScoreInBulk(address[],uint256[])","8dfda5ae":"getIndexByAddress(address,address)","8dfde39d":"abi(bytes32)","8dfef745":"bonussale_StartDate()","8dff1762":"RpsGame()","8dff4abd":"activateRevenueShareIdentifier(string)","8dffe343":"kvcDiv(uint256,uint256)","8dffe5c0":"buyPlace(uint256,string)","8dfff9f2":"changePrepaymentFee(uint256)","8e005553":"setFee(uint16)","8e006db0":"setProductStock(bytes32,uint256)","8e007cfa":"giveEthxAddress()","8e008b59":"_createTeam(address,uint32[])","8e01d34b":"AddGoods(uint32,uint32,uint256,uint32,uint32,uint32,uint8,uint8,uint8)","8e0273bb":"Existing(address)","8e0294a8":"_removeProposal(address)","8e035ac1":"BetOnHashV82()","8e045031":"isTokenCollected(uint256,address)","8e048315":"investorDeposit(address,uint256)","8e0488a8":"transferirSalaDePara(address,address,uint256)","8e04977d":"currentLotteryValue()","8e056fe6":"setBirthBlock(uint256)","8e05beb3":"token(bool,address,address,address,address,address[],uint256[])","8e05d59d":"signToApproveTokenControlInfo(uint256)","8e05d8a5":"_computeNextGen0Price()","8e068b11":"virtualReserveBalance()","8e07d7da":"confirmKittyActions(uint256,uint256[8])","8e082555":"changeOwnship(address)","8e08b2ec":"MinesOnTrade(uint256)","8e08cf38":"updateBonus(uint256,uint256,uint256,uint256,uint256)","8e09c8cd":"addCallSpenderWhitelist(address)","8e09ead7":"isTokenBankroll(address,address)","8e0a5faa":"invariant(address)","8e0adbf5":"getLLV_edit_11()","8e0af993":"setPrivateFund(address,uint256,uint256)","8e0b017d":"setSellRate(uint256)","8e0bba69":"iown()","8e0c2882":"drain_alltokens(address,uint256)","8e0c36c4":"verifySeed(bytes32,bytes32)","8e0c8999":"zkWithdraw(bytes32,uint256,address,uint256[2],uint256[],uint256[],uint256[])","8e0d5075":"claimDividendsForBlock(uint256)","8e0db0d9":"keyAtIndex(uint256)","8e0e8fb2":"approveProvider(address,uint256)","8e0ea5cf":"ReturnTokensFor(address,address,uint256)","8e0eef8e":"getTicketValue(uint256,uint256)","8e0ef033":"defrostTokens()","8e0f65eb":"isBelow(int256,int256,string)","8e0f9b85":"Smartcarblockchain(address,uint256)","8e0fee1f":"withdrawRefBalance()","8e101867":"maxTotalAmount()","8e1069f3":"getPlayRecord(address,address)","8e10be33":"primaryOwner()","8e111ef6":"addressOfERC20Tocken()","8e120f36":"prepareToPayWinners(uint32)","8e1227b2":"KTCWhiteList()","8e12823b":"getCompanyHash(address)","8e13435b":"MathPractice()","8e14cc91":"CreateTokens()","8e151947":"newBitsoAddress(address)","8e15e94b":"countOfCell()","8e15fc87":"clearDeposits()","8e165058":"sendTokensToBuyers()","8e17de8b":"Controlled(address)","8e180733":"_validCrowdsale()","8e1876ee":"permaStop()","8e19899e":"withdraw(bytes32)","8e19ee4c":"Recovery(uint256,address,address)","8e1a1c30":"WithdrawLeftToOwner(uint256)","8e1a55fc":"build()","8e1aa2c4":"bts_address1()","8e1b9f42":"CROWDSALE_WALLET_ADDR()","8e1bb633":"triggerRecovery(uint256,address,uint8,bytes32,bytes32,uint256)","8e1d9545":"setTokenSaleHalt(bool)","8e1e2add":"tradeABIHash()","8e1e3e6c":"POMACOIN()","8e1e3eb1":"setMinBuyEth(uint256)","8e1eeb09":"BarrelAgedFOMO()","8e1f0614":"EGYPT()","8e1fda84":"WorkcoinCrowdsale(address)","8e1ffb19":"testThrowsRetractLatestRevisionEnforceRevisions()","8e207fa0":"getApproveValueValue()","8e22e8de":"Cryptolotto7Days(address,address,address,address)","8e236cea":"setAnnualPrice(uint256)","8e242d54":"withdrawSharesTo(address,uint256)","8e25071a":"setProxyCurrator(address)","8e263e6f":"firstAttack(address,uint256,uint256[],uint256[])","8e268934":"LogSendPOSTokens(address,uint256,string)","8e26a223":"getPoSReward(address,address)","8e26c09d":"waitPeriod()","8e26c30c":"carTransferState()","8e26e582":"_mintDataStream(address,uint256,bytes32,bytes32,uint256)","8e273ef4":"buyLicenseForERC20(address)","8e27d719":"deposit(string,uint256)","8e280dce":"findNextYear(uint256,bytes)","8e2832b7":"ethereumToTokens(uint256)","8e298549":"migrateListing(bytes32)","8e29d149":"claim_block()","8e2a37b2":"privateAllocated()","8e2a6470":"allocateShares(address,uint256)","8e2a8312":"EmjacToken()","8e2ab359":"_transferToAddress(address,address,uint256,bytes)","8e2ae564":"mintingDone()","8e2c6f4d":"initiateVerification(address,bytes,bytes)","8e2d0699":"getCompte_32()","8e2e0776":"doInitialDistribution(address,address,address)","8e2e2077":"setTokensForSaleCount(uint256,bool)","8e303097":"BestWallet(address)","8e3047d9":"getBonuses(address)","8e3047e0":"getCrossConnectorReturn(address,address,uint256)","8e3058f3":"getPostFromId(address,string,uint256)","8e3073a6":"getEth(uint256)","8e314783":"addTotalPaid(address,uint256,uint256)","8e316327":"calculateEggSell(uint256)","8e3177e1":"purchaseIpfsAfterTitle(bytes32)","8e32217a":"calculateTokensQtyByEther(uint256)","8e327dd3":"setInvestor(address,uint256)","8e32e421":"expiredTime()","8e3390b4":"contributeMethodABI()","8e339b66":"controllerApprove(address,address,uint256)","8e343516":"balanceWinPoolToWinSystem()","8e351097":"MintedTokenCappedCrowdsale(address,address,address,uint256,uint256,uint256,uint256)","8e3571c0":"testNewCounterValueAfterAIncreaseAndADecrease()","8e357b6f":"AirTrafficControllerROS(address,int256,address)","8e36a9f1":"Neurus()","8e370b3d":"UnsoldTokensReturned(address,uint256)","8e372dcd":"refineCoke(uint256)","8e37adec":"setAddressArr(address[])","8e37c1e0":"collectorWeiCollected()","8e391cb2":"ProxyERC223()","8e3957d9":"RandomNumber()","8e3ab913":"transferToMany(address,address[],uint256[],uint256,uint256,address)","8e3af93f":"finalizeMint(uint256)","8e3b4525":"setExchangeLimit(uint256)","8e3bd6fa":"SetTradeable(bool)","8e3d4e5e":"Fibonacci(bytes)","8e3d5303":"addRegistrar(address,string)","8e3d63e3":"multiSendEth(uint256,address[])","8e3d7ae7":"drawFortune()","8e3dbf53":"getSalesPartnerAmount(address)","8e3dcc60":"sell_spice_melange(uint256)","8e3e1d86":"fisherYates(uint256)","8e3ed7d7":"sendEthers(address,uint256)","8e406072":"getKingdomCount()","8e414295":"Elixer()","8e416b9b":"randomFight2DeathContract()","8e417b30":"GTokenContract(uint256,string,string)","8e424f16":"onlyOwnerSetCompanyWallet(address)","8e434b82":"DADCoin()","8e438b70":"ConpayToken()","8e43e70e":"ParentKidsLinkToken(uint256,string,string)","8e44e74e":"DEFROST_MONTHLY_PERCENT()","8e452fc0":"findAvailableGame(address)","8e4553a4":"script(address,bytes)","8e455a1d":"_createVote(uint256,uint256,uint256)","8e468a88":"donationMap(address)","8e46afa9":"getDefaultGracePeriod()","8e46b68b":"keysRec(uint256,uint256)","8e46f716":"CoinX(uint256,string,string)","8e46fbb2":"testBitsXorFailIndexOOB()","8e4748cf":"MintingERC20(uint256,uint256,string,uint8,string,bool,bool)","8e47b87b":"FundsReceived(address,uint256)","8e47dd03":"currentProfitPct()","8e48474a":"chooseWinner(string,string)","8e496832":"DataContract()","8e497470":"displayNick(address)","8e499bcf":"numTokens()","8e49a2c2":"turnmigrate()","8e49a41f":"getVestingFromContract(address,address)","8e49cf5c":"soldSoulBecause(address)","8e49dd3f":"Failed(uint256,address,uint256,address,address,uint256,address,uint256,uint256)","8e49ff47":"AntzToken()","8e4a23d6":"Unauthorized(address)","8e4a943d":"IcoResumed()","8e4ab74b":"BANKROLL()","8e4adf4e":"tokenUpgrader()","8e4afa51":"checkTransferToICAP(bytes32,uint256)","8e4b0190":"deleteWorkerAdress(address)","8e4bf820":"settleBet()","8e4c64c0":"grantsController()","8e4cb2a9":"balances_after_buy(address)","8e4d0a83":"setLockupList(address,address,uint256)","8e4d5053":"getcontractBalance()","8e4e0f03":"teamAndExpertsTokens()","8e4f9606":"updateReputationScore(address,uint256)","8e4fa788":"accountHasCurrentVote(address)","8e5051f0":"weiToOwner(address,address,uint256)","8e50a65d":"prepareDividends()","8e514018":"getRandomPrice()","8e5152d6":"addToAngelExperienceLevel(uint64,uint256)","8e51d624":"failsafe_addition(uint256,uint256)","8e52019d":"ECASH()","8e52cb51":"getRecordKey(bytes,bytes,bytes)","8e535ade":"lrcInitialBalance()","8e53d5e4":"cumulative(uint256)","8e53f4fb":"preicoSale()","8e543a12":"getLoanAmount(address,address)","8e550bd1":"lastNewInterest()","8e57d397":"modifyHorseyFeedingCounter(uint256,uint8)","8e588306":"getAutonomousSoftwareOrgInfo()","8e5919b6":"setEdoRate(uint256)","8e592caf":"KittyKendoCore()","8e599d50":"joinFunction()","8e59a15b":"checkMinGoal()","8e5b2899":"check(bytes20,uint24,uint32,bytes32[],uint16)","8e5c2e8a":"LogContractOwnershipChangeCompleted(address)","8e5d97a2":"releasePendingTransfer(uint256)","8e5e91ac":"executeStakeholderTransaction(uint256)","8e5ee9ec":"currencyToToken(bytes32[8],bytes)","8e5ef4ea":"DataShieldCoin(uint256,string,string)","8e5ef8fe":"ChivesToken()","8e604b1d":"queryItems(bytes32,uint256,bool[6],bool)","8e611cee":"deductFromUnminted(uint256)","8e62bbd9":"DigitalCoin()","8e62c982":"initialARXSupply()","8e634029":"communityContract()","8e637a33":"authorizePayment(string,address,uint256,uint256)","8e63d7e1":"getTopLevel(uint256,uint256)","8e63ef75":"icoEtherReceivedPrivateSale()","8e641963":"_mintCards(uint32)","8e64a720":"PlendsToken()","8e65f7e4":"logAllTransactions(address)","8e66ca5f":"setFirstBonusLimitPercent(uint256)","8e66da2f":"cancelBet(uint8,uint256)","8e66fea2":"TTCTokenERC20(uint256,string,string)","8e68f000":"oneTokenInWei(uint256,uint256)","8e690315":"AttributaOwners()","8e69367e":"RandomizedPriceFeedApi()","8e694807":"PHOENIX_CORSAIR_MAX_CARGO()","8e6954de":"totalFci()","8e69ceec":"dispatchTokens(address,uint256)","8e69e204":"getPeriodsWithdrawal(address,bytes32)","8e6a1b24":"PIXToken(address)","8e6a2afa":"MAX_PERIOD_COUNT()","8e6b5462":"setOrCacheDesignatedReportNoShowBond(uint256)","8e6b551c":"sumHardCapPublicSale()","8e6b77a2":"interestArray()","8e6b851d":"valueGet(string)","8e6bee97":"pay(uint256,bytes32)","8e6ce1b1":"getActiveSellDetails(bytes32)","8e6d2599":"_activeness2level(uint256)","8e6d531d":"setSubPromoter(address)","8e6d7db8":"updateInstitutionAsset(string,string,address,address)","8e6ddab1":"createMonster(uint256,uint256,uint256,uint256,uint256,bytes)","8e6df32f":"exerciseOptions(address,uint256,uint256,uint256,bool)","8e6f2353":"ln(int256)","8e6f843f":"EarlyExchangeRateChanged(uint256)","8e6fdd31":"raisedEth()","8e6ff99a":"addVineyard(bytes32,uint16,uint24,uint32,uint16)","8e70fdbc":"setIsNotAdmin(address,bool)","8e71decb":"findWinner()","8e71f4fd":"_hasAllSigs(address,address)","8e728fec":"configTimeInit()","8e7296b1":"MOACSupply()","8e72a926":"bankRollBeneficiary()","8e72ca91":"proxyIncreaseWithdrawalChunk()","8e735547":"getUserByEmailVerify(bytes32)","8e739461":"getBalance(bytes32)","8e73d42c":"lunyrMultisig()","8e7418cb":"isSecondRound()","8e744f54":"tranferMinterOwnership(address,address)","8e74a528":"avarageBlockTime()","8e752b40":"startTeamTrade()","8e7547cb":"setWithdrawWallet(address,address)","8e755125":"testIntFixedArray(int256[3])","8e7558cd":"closeStage(uint256)","8e75dd47":"companyCount()","8e760afe":"verify(bytes)","8e76581e":"getManifestId(address,bytes32,uint256)","8e767411":"setWhaleIncreaseLimit(uint256)","8e768288":"isSane(address)","8e76e3ba":"BillofLaden()","8e77304c":"YOUToken()","8e77afc5":"BSCore()","8e77d147":"transactionfeeAmount()","8e77fe2f":"blacklistAddresses(address)","8e77ff1f":"setMigrateTokenContract(address)","8e78f0f2":"remOperator(address)","8e7952c6":"davToken()","8e79dc91":"set_participant_arbits(address,uint256)","8e7a1697":"setDepot(uint256,uint256)","8e7a9687":"check_vote(string)","8e7b36be":"payFor(address)","8e7b90e4":"setTgeAddress(address)","8e7c9e50":"logFloor(int256,uint8)","8e7cb6e1":"getIndex(uint256)","8e7cd5a7":"distributeExternal(uint256,uint256,uint256,uint256)","8e7d0f44":"publicKeyConsensus()","8e7e060f":"buyCards(uint8)","8e7e34d7":"fromHex(string)","8e7e879f":"migrateAll(uint256[])","8e7e99b8":"TotalSupply(uint256,uint256,address)","8e7e9a3c":"calculatePrizes()","8e7ea5b2":"getWinner()","8e7fd292":"trySetSubnodeOwner(bytes32,address)","8e7fdc6c":"LogBetProperties(uint256)","8e7fffe8":"individualRoundCap()","8e80ade9":"hodlTokens(address,uint256,uint256)","8e818aa1":"acceptAdminWithdraw()","8e81bc9c":"addWhitelistedBurn(address,address)","8e81c579":"poolEthSold()","8e81c64d":"burnTokens(uint256,uint256)","8e821b24":"persians()","8e84844e":"changeWeight(address,address,uint256,uint256)","8e84d413":"isFree(uint256[],uint256)","8e854ed8":"getResult(uint256,uint8)","8e8556b4":"privateSaleEtherRaised()","8e86077b":"foundingTeamSupply()","8e8622f9":"_getTAOIdByName(string)","8e869843":"sellfloaksAgainstEther(uint256)","8e86d030":"getMessageRequestHash(address,uint256)","8e8758d8":"tokenAllowance(address,address,address)","8e87f57c":"setCompare(bytes2)","8e87fcbf":"transformFrom(address,uint256,uint256)","8e885cbb":"LARGE_PURCHASE_BONUS()","8e894a6f":"getTileIDByOwner(uint16,address)","8e89ad00":"setMaxDailyPerUser(uint256)","8e89f6e2":"Crowdsale(uint256,uint256,uint32,uint32,address,address,address,uint256,uint256,uint256,uint256,uint256)","8e8a3983":"paySomeone(address,address)","8e8a4a20":"userTenantHashExists(bytes32)","8e8afc34":"setSlaveServer(uint32)","8e8b34bc":"createNewSecurityDeposit(string,string,uint256)","8e8bc816":"TokenBonus(address,address,uint256)","8e8cf4a8":"getThisBalance()","8e8df687":"processedTokens()","8e8e4675":"gur(address,address)","8e8e75fb":"addExternalController(address)","8e8f1e84":"setPublicSaleParams(uint256,uint256,uint256,uint256)","8e8f39d3":"getBlockNumberM1()","8e8fe845":"IsDistribRuSTMingFalg_()","8e9030f4":"maximumNonWhitelistAmount()","8e90b71a":"changeStatus(bytes1,bytes32)","8e90ccbe":"Governance(address[],uint256,uint256)","8e90e1e9":"_createCutie(uint40,uint40,uint16,uint256,address,uint40)","8e9185cb":"NON_TRANSFERABLE_TIME()","8e9206a0":"EOM()","8e928076":"setMaxGas(uint256)","8e92aea3":"_fetch(uint256)","8e92ee66":"redeemShardsIntoPending()","8e93907b":"FamilyResourceControl(uint256,uint256,uint256,uint256,uint256[])","8e93c883":"setMarketingTokensWallet(address)","8e940bb7":"test_testableContributionCaseExpectFailure()","8e943c8b":"checkParticipants()","8e94a5f3":"sellerRefund(uint256)","8e955978":"pushProposal(address)","8e95b0cd":"getSponsorshipsTotalRefunded(address,uint256)","8e95b28b":"delegateUrl()","8e964de9":"COPPER_AMOUNT_XPER()","8e9674c8":"WEMACOIN()","8e96eb3e":"coePerEthOffset()","8e979bad":"setwinPercent(uint256)","8e984ccd":"joinGameAndBattle(uint256,uint256)","8e98c6b9":"getLeaderboardPlayers()","8e9a5890":"danGold()","8e9a7159":"LZLPrivate()","8e9aed2e":"HACHIROKU()","8e9b7ab8":"Partners(address)","8e9bf09c":"issueTokenToAddress(address,uint256)","8e9ccd04":"computeIndexId(address,bytes)","8e9e5c37":"requiringAuthorization()","8e9e697d":"reset(uint256,uint256,uint256,uint256,string)","8e9e8b14":"marketingPartnerSupply()","8e9f2738":"_transferAllArgs(address,address,uint256)","8e9f9072":"signedMessageECRECOVER(bytes32,bytes32,bytes32,uint8)","8ea04cb3":"getUpgradability(uint256,address,address,string)","8ea06c68":"BLMToken(uint256,uint256)","8ea0926a":"addBaseStats(uint256,uint8[8])","8ea0b540":"getProjectInformation(uint256)","8ea0d898":"DestroyedBy(address)","8ea1ee86":"DapCarToken()","8ea1ff21":"OwnedExample(address)","8ea25644":"XYY()","8ea390c1":"getOwedDividends(address)","8ea44bab":"setProviderAdmin(uint256,address)","8ea51696":"JRT()","8ea5220f":"devWallet()","8ea55bd7":"_pushContributor(address,bytes32)","8ea56e57":"ADV()","8ea64376":"opsAddress()","8ea67eb0":"ETCharPresale(address)","8ea69e37":"TestToken(uint256)","8ea6dd82":"BotAdded(address)","8ea7296b":"deleteChild(address)","8ea73a7c":"setDonationReward(uint256)","8ea74d95":"transferDaico(address)","8ea77300":"RELEASE_START()","8ea822d8":"createThings(bytes32[],uint16[],bytes32[],uint16[],uint88)","8ea83031":"swapContract()","8ea83681":"mintTreasuryTokens(address,uint256)","8ea8dc9d":"APP_MANAGER_ROLE()","8ea8e149":"removeService(address,address)","8ea8f83c":"activate(uint256,uint256)","8ea91bf3":"createVestedToken(address,uint256,uint256,uint256,uint256)","8ea95cbc":"lastDepositorAmount()","8ea98117":"setCoordinator(address)","8ea98db4":"Mmchain(uint256,string,string)","8eaa1e29":"getContentByData(address,uint256,string,string)","8eaa5d1c":"amount50kUsdInCents()","8eaa6ac0":"get(bytes32)","8eaa8d4f":"RefundedInvestor(address,uint256,uint256)","8eaa9c91":"Client()","8eaaeecf":"getUserCapInTokenWei(address,address)","8eac494c":"tierWhitelisted(uint256)","8eaeb531":"setAccountA(address)","8eaf1dab":"PRCT100_R2()","8eafe0f0":"getCustomerRating(string)","8eb04f02":"setRefundManagerContract(address)","8eb066ce":"init(address[5],uint256[6],uint8,bytes32,bytes32)","8eb0e73e":"bonusPctSteps(uint256)","8eb179ad":"maxHardCaphardcap()","8eb206d1":"deletePage(bytes32,bytes32)","8eb36e3d":"initData()","8eb3e0e3":"socERC20(uint256,string,string)","8eb45cbf":"frozenProfitDate()","8eb4e0ad":"batchRelay(bytes16[],address[],address[],uint256[],uint16[],uint128[],uint8[],bytes32[],bytes32[],uint8[])","8eb547d4":"squareOfSums(uint256,uint256)","8eb5a7ac":"changePermission(address,bool)","8eb5f650":"ETIN(uint256,string,string)","8eb6418e":"LoritaBi()","8eb64b3d":"multi(address[],uint256)","8eb64b61":"MAX_NON_SALE_SUPPLY()","8eb689f7":"giveFor(address)","8eb6d683":"coinAllowanceOf(address,address)","8eb6ffaa":"withdrawBloc(uint256)","8eb717fc":"increaseCap()","8eb76eed":"emitUserRatingGiven(address,address,uint256)","8eb7ffe8":"assignInBatches(address[],uint256[])","8eb831fe":"ChangeOperator(address)","8eb857f8":"getData_25()","8eb88c1b":"EvergreenHealthToken()","8eb89a61":"getPointsBalance()","8eb976ca":"assertEq17(bytes17,bytes17)","8eb98150":"NOT_ENDED_FINE()","8eba2966":"RESERVE_PORTION_MULTIPLIER()","8ebaae08":"createListing(uint256,uint256,uint256,address)","8ebac11b":"getHash(address,uint256,uint256,uint256)","8ebb2ce7":"setProfitContainerAddress(address)","8ebb5aee":"calculateTokenBuy(uint256,uint256)","8ebc266d":"getCurrentUSDCentToWeiRate()","8ebe555b":"allocateShares(uint256,uint256)","8ebed616":"CRF()","8ec3167f":"calculateGoalsFromAttributeTotals(uint256,uint256,uint256[],uint256[],uint256)","8ec3272d":"addPicture(string,bytes32,string,address)","8ec48bcb":"BitCharity()","8ec49939":"switchOFFfreeForAll()","8ec4dc95":"getPerson()","8ec521a8":"setupStakeholders(address[],uint256[],uint256[],bool[],uint256[],uint256[],uint256[])","8ec5a309":"testHash(string)","8ec5ff41":"isUid(string)","8ec63da9":"checkIsOnlyProxy(bytes32)","8ec6677d":"registerUsername(string,address)","8ec84812":"updateProfit()","8ec86497":"clearname()","8ec89e4f":"_isActive()","8ec8fcad":"ADV(uint256,string,string)","8ec9925e":"jackpotToken()","8ec9a5de":"getLeaf(bytes32,uint256)","8ecaa140":"_refundHighestBidder(uint256)","8ecbc4e9":"setNewBRXPay(address)","8ecc0643":"BuyAd(address,uint256,string,string,string,uint256,uint8,address)","8ecc0950":"returnToOwner()","8ecc107f":"buyUninitializedPixelBlock(uint256,uint256,uint256,bytes32)","8eccf58e":"getTokensCountPerEther()","8ecd2fe8":"testMul256By256()","8ece19f6":"setTokenLock()","8ece39cd":"startOraclize(uint256)","8ece85a4":"ETpay(uint256,string,string)","8ecebf34":"MorpheusToken()","8ecf0d0b":"getCreated()","8ecfc412":"workForce()","8ed06b62":"getShipPrice(uint256,uint256)","8ed08711":"saleMinimumWei()","8ed09bc9":"registerVoter(bytes32,address)","8ed0ac8b":"closeTrancheAddition()","8ed1858e":"distributeELTCSmall(address[])","8ed20fa0":"tokenWeiToSale()","8ed2395f":"ZCNYToken(address)","8ed33545":"sub_presale_arbits_sold(address,uint256)","8ed34751":"performHealthCheck(uint8)","8ed399ca":"teamWallet_2()","8ed3fa7c":"codexCoin()","8ed5047c":"updateCokeTotal(uint256,bool,uint16)","8ed5f2ca":"newTestableCampaign(string,uint256,uint256,address)","8ed67a44":"setPrice(uint16)","8ed6910f":"limitSell(uint256,uint256)","8ed7c3d3":"sendTokensManager(address,uint256)","8ed7ca93":"finishExam()","8ed8067e":"FundContract()","8ed882c5":"designatedReporterWasCorrect()","8ed91318":"nextAssetId()","8ed9be36":"temp(uint256,uint256,bytes32,bytes32)","8ed9fd75":"ICO_Supply()","8edb726d":"modifyEndFundingTime(uint256)","8edbf436":"getPriceInfo(address)","8edc4f8f":"isValidCap(uint256,uint256)","8edc707b":"adoptionOffers(bytes5)","8edcf21d":"getCurrentYearGameMiningRemainToken(uint16)","8edd6eb6":"getFund()","8eddc306":"__exchangerCallback(address,address,uint256)","8eddc804":"notifySale(uint256,uint256)","8eddf665":"onInvest()","8ede1817":"getReturnTime(uint256)","8ede3a34":"KeplerToken()","8ede74c1":"changeRage(uint256)","8ede94b4":"setLineUpEnable_miner(address,uint256)","8edeb15d":"donation()","8edec689":"wd()","8edfaef8":"getSetupParameters()","8edff3db":"getTerminal(uint256)","8ee030bd":"FaceterToken(address,address)","8ee070d9":"MYEMPEROR()","8ee0942b":"setSignatureROFR(bytes)","8ee0ffe8":"sendStakingContract()","8ee1409e":"TitanToken()","8ee17e0a":"MarvinCoin()","8ee21b8e":"get_default_keys()","8ee365fa":"removeAddressesFromAdmins(address[])","8ee36f05":"isVoted(address,uint256)","8ee3f472":"BoutsCrowdsale(uint256,uint256,uint256,address,address,address)","8ee3f72f":"PinCode()","8ee4d44b":"addAddressToOperators(address)","8ee4fd8a":"claimWithSignature(bytes)","8ee553cc":"getCroById(uint256)","8ee5a8b3":"UpgradeProposals(uint256)","8ee6540c":"seventeen()","8ee6f301":"readvalidrollsXteam(uint16)","8ee78046":"draw(address,uint8[])","8ee833cc":"isValidTenant(string,address,uint256)","8ee8a5c4":"Charity(string)","8ee93cf3":"post(string)","8ee97ff4":"VirtualRewardToken()","8eeb203e":"exchangeWeight()","8eeb33ff":"crowdSaleAddr()","8eeb3b0e":"KJCPerEthereum()","8eeb5073":"_bundle(address,uint256,uint256[])","8eeb5c97":"cancelDo(bytes32)","8eeb7d11":"unlockAllocationAddress(address)","8eeb8e5a":"MUC()","8eec5d70":"getPoolCount()","8eec6f7b":"lockETH(uint256)","8eec99c8":"setNewAdmin(address)","8eecddcf":"betBlockNumberOf(address)","8eecf64d":"createContractWithMeta(address,uint64,bytes,string)","8eee1cd6":"buyerExceededApprovedAmount(uint256,address)","8eef059e":"_lowerDown(uint256,address)","8ef0f09a":"createPromoPow(address,string,uint256,uint256,uint256)","8ef1a6b6":"makeProfit(uint256)","8ef1e886":"RESERVE_PERCENT_EVE()","8ef22afe":"getCostToCancel()","8ef25a7a":"KeplerTokenExtraSale(uint256,address,address)","8ef26a71":"coinSentToEther()","8ef28249":"totalGuesses()","8ef2826e":"HODLWallet(address[],uint256[])","8ef292fc":"BTM()","8ef326ea":"getCubeCount()","8ef44301":"tokenRecoveryFromTrade(address,address,address,uint256)","8ef47296":"StorageController(address,address,address,address)","8ef483eb":"getMyWager()","8ef490ea":"fullname()","8ef4c807":"lockedBalanceOf(address,uint256)","8ef53edf":"InitAssignOK()","8ef5ae21":"setupInfo(string,string,string)","8ef5ce28":"test1_addingFirst()","8ef5eaf0":"drop(address[])","8ef6e7fe":"build(string)","8ef6ed53":"_getRandom(uint256,uint256)","8ef72d15":"backEthRatio()","8ef79e91":"setTokenBaseURI(string)","8ef7c649":"getTicketPrice(uint8)","8ef8125e":"frontRunnerSetTimestamp()","8ef82010":"orderExecution(bytes32,uint256)","8ef85e04":"secondWeekTokenPrice()","8ef87843":"randomSkinAppearance(uint256,uint128)","8ef8f241":"getEmployerInfo()","8ef9c904":"NewAmbassador(address,address)","8efa00e2":"getPRETDETokenExchangeRate(uint256)","8efa23d1":"RELEASE_WALLET()","8efa3e21":"setIsMinter(address,address,bool)","8efbd512":"getAccountNumber(address)","8efc777f":"isBeta(bytes)","8efd4c75":"QUARTERLY_RELEASE()","8efd5f92":"divIntervalDays()","8efe6dc4":"changeMonthlyWithdrawLimit(uint256)","8efe7801":"showWinnersSort()","8efe8c1c":"EPTToken(address,address)","8eff3c29":"getRecords()","8effda0d":"IndorseSaleContract()","8f003a2d":"StarSportsToken()","8f00c0af":"has_contract_ended()","8f00cbfa":"winnerIndex()","8f00f49b":"totalAssetTokens()","8f0165e1":"min_pay_wei()","8f01932a":"mntpToMigrateTotal()","8f01e1e2":"getactiveleveltime(uint256)","8f02bb5b":"setTransferFee(uint256)","8f03850b":"numContributors()","8f038a5a":"initializeEthReceived()","8f039a10":"changelp8(address)","8f03f5c3":"firstUnlocked()","8f0427b1":"sellPosition(uint256)","8f049de5":"endBetRed()","8f054bf3":"referralList(address)","8f0563b9":"substring(string,int256)","8f061ef5":"Token(string,string,uint256,uint256)","8f06492d":"callOnRemoval()","8f0816bc":"PERKToken()","8f08288a":"clearBets()","8f08a60a":"transfer2(uint256,address[],uint256[],bytes,bytes,bytes,bytes)","8f08d44d":"burnAsset(uint256)","8f08e369":"withdrawApplication(address)","8f094efb":"getMineableSupply()","8f0a4c1b":"startPreSales()","8f0a6ecb":"returnBountyTokens(address,uint256)","8f0bc152":"claim(address,uint256,bytes)","8f0c724c":"setOperationsCallGas(uint256)","8f0d16da":"emitIssuersUpdated(address,bool)","8f0d3b8b":"_buy(uint256,uint256)","8f0d67ef":"activationTime(uint256)","8f0ec6b3":"ZanCoin()","8f10cad0":"StreampayToken()","8f10fd45":"getBuyCount()","8f112370":"addToAffiliate(address,uint256)","8f11e5f9":"checkWithdrawValue(uint256)","8f1224ce":"fixInvestment(address,uint256,uint256)","8f12355d":"assertEq7(bytes7,bytes7,bytes32)","8f1327c0":"getRound(uint256)","8f134025":"rewardSent(uint256)","8f13fd29":"setPriceValue(bytes32,uint256)","8f140568":"isServiceAddress()","8f142842":"getByAlias(string)","8f142907":"stables()","8f14b76b":"sendReferrer()","8f14d8a3":"reclaimContractTokens()","8f15024f":"ticketsSold()","8f152d0e":"vestingConfigured()","8f158e76":"remainingPublicSaleCap()","8f163497":"AgaCoin()","8f16eb1a":"setI_R1(uint256)","8f188b40":"migrateInvestor(address,uint256,uint256,uint256)","8f19ff45":"_handleTokensReceived(uint256)","8f1a422c":"minterWallet()","8f1a927a":"numTicksSinceAuctionStart(uint256)","8f1af992":"claimTwitterId(uint256,address,uint8,bytes32,bytes32)","8f1b0b02":"bulkTokenMint(address[],uint256)","8f1c204c":"test_fiveAssertFalse()","8f1cc85e":"SAGAcrowdSale(address)","8f1cc94e":"HashTypeAdded(uint8)","8f1d5f7e":"getLedgerNameHash()","8f1d8f41":"ethInvestment(address,uint256,uint256,uint256,uint256)","8f1d90b1":"tokenBearer()","8f1df4f7":"setPrices(uint256,uint256,uint256,uint8,uint256,uint256,uint256)","8f1eda37":"wmul(uint128,uint128)","8f1f761a":"Rewards_Supply()","8f1fc530":"startSplit()","8f1fc6bb":"testRemoveProductFromCart()","8f1fdbb9":"offerEth(uint256)","8f212eb7":"BITSDTokenInitialized(address)","8f217d6b":"lastChar(string)","8f22964d":"NegativeWhuffiesSent(address,address,uint256,string)","8f22d128":"testdigiToken()","8f24f2a3":"takeBuyOrder(address,uint256,uint256,uint256,address)","8f25159c":"getDayDepositLimit(uint256)","8f259117":"numcallsinternal()","8f25eec1":"BetWon(address,uint256,uint256)","8f26a5ab":"setSaleAgent2(address)","8f272c0b":"minor_partner_address()","8f2757d8":"Bitshopandearn()","8f282b87":"getSold()","8f283970":"changeAdmin(address)","8f287be5":"PitEur(address)","8f288526":"TokensPurchased(address,uint256)","8f288644":"getHighestBid(uint256)","8f2900d5":"timeLocks(uint256)","8f291158":"listBBO()","8f296759":"UTILITY_ROLE()","8f29f09a":"fetchPaidOrdersForMerchant(address)","8f2a3093":"freeBeerOnMe(string)","8f2a6d3e":"YOOBAToken(address,address,address,address,address)","8f2abe9a":"Voting(uint8,address,uint256)","8f2bab07":"getChainLength()","8f2be8e0":"MauiWowieToken()","8f2c2ab7":"checkAndCloseDeposit(uint256,bool)","8f2c3af8":"lastBlock_v10Hash_uint256()","8f2c44a2":"UnicornMilker()","8f2e695c":"ICO_state()","8f2e8d4a":"createTrack()","8f2e9ee7":"theDay(uint256)","8f2eabe1":"isValidatorFinalized(address)","8f2ec012":"dayToBlockNumber(uint256)","8f2ee2df":"mainPot()","8f2ef6b7":"CMGF()","8f303df9":"priceExpired()","8f30435d":"getCompetitionValues(string,uint8)","8f32106e":"CreateALLY(address,uint256)","8f32cf0c":"team_address()","8f32d59b":"isOwner()","8f33221e":"addContract(address,uint256,uint256)","8f33c285":"getAyantDroitEconomique_Compte_8()","8f33df77":"countAllVotes(uint256)","8f34296b":"Applied()","8f348cfe":"InsertProject(string,string,address,address,string,string,address)","8f34ac6e":"setCoOwner(address)","8f350624":"contributionOpen()","8f356f97":"lottoHighestNumber()","8f35a75e":"getInvestor(address)","8f36039c":"holdContract()","8f367001":"numTokensAbleToPurchase()","8f368359":"getTimeUntilInterestIncrease(bytes32)","8f3684bf":"returnTotalDividend()","8f36d03e":"_finishSpin(address)","8f36f8f1":"redeemStake(address,address,uint256,uint8,bytes32,bytes32)","8f37a0f9":"getTo(uint256)","8f382a00":"ETHEAL_UNIT()","8f38a896":"BRONZE_AMOUNT_XPER()","8f38bf34":"updatePrices(uint256,uint256[],uint16,uint256[],uint256[])","8f38d8cc":"S(string)","8f38f309":"buyXid(uint256,uint256)","8f3956a4":"ChangeUpgradeMaster(address)","8f395eb6":"addIntComparison(bytes32,int32,bytes1)","8f398180":"isUnknown(address)","8f3984b5":"setRole(address,string,bool)","8f3b6b84":"centsPerToken()","8f3b8c3a":"setTokennCrowdsale(address,uint256)","8f3bab85":"readFromCart(uint256)","8f3bed06":"pickUniquePacks(uint256[])","8f3de282":"onSealed(address,address,uint256)","8f3e568a":"findOutInterestByClientCategory(address,uint256,uint256)","8f3e8747":"getGasForMcrData()","8f3f50fc":"startICOTimestamp()","8f40104c":"init(address,uint256[],uint256,uint256,uint256,uint8,uint256,bool)","8f409b85":"Coin(uint256,string,uint8,string)","8f41e442":"breakTie(uint256)","8f420866":"DEFAULT_SEND_GAS()","8f426437":"getTankOwner(uint32)","8f42a864":"TitaToken()","8f43166b":"getGivenCount()","8f44097a":"TokenRDC(address,address,address)","8f449a05":"subscribe()","8f456125":"setCrowdSaleAddress(address)","8f4613d5":"left10(uint256)","8f4646b7":"transferPreSignedCheck(address,address,uint256,uint256,uint256,uint8,bytes)","8f46b586":"withdraw_team_fund(address,uint256)","8f4708bd":"mintingBountyFinish()","8f477c55":"updateLink(address,bytes)","8f4783f1":"_generateRealmSale(uint256,uint256)","8f47dd19":"bulkInit(address[],address[],uint256[])","8f484394":"manual_withdraw()","8f48c14a":"updateMinCompanyValue(uint256)","8f49a264":"provide_eth()","8f49ccf4":"reportUsage(uint256,uint256,address)","8f49da4b":"distributedToken()","8f4a2a51":"defaultWallet(address)","8f4b4b98":"messagesSigned(bytes32)","8f4ccce8":"startTokenVotes(address[15])","8f4ce746":"buyDeferredPresaleTokens(address)","8f4d8723":"_CallExecuted(address,bytes32)","8f4d874a":"referralTokensAddress()","8f4dc0d1":"updateAvailable(uint256,uint256,bool)","8f4e4321":"accountOf(uint256)","8f4e5158":"increaseFrozenBalances(address,uint256)","8f4ed333":"step2()","8f4f3c70":"DungeonChallenged(uint256,address,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)","8f4fb958":"calculateRandomNumberByBlockhash(uint256,address)","8f4fde42":"crossForkCount()","8f4ffcb1":"receiveApproval(address,uint256,address,bytes)","8f50fb06":"getTrapInfo(uint256)","8f50fdd6":"walletAddressesSet()","8f512c47":"getSponsorships(address,address)","8f518475":"NewKoth(uint256,uint256,address,uint256,uint256,uint256)","8f52d420":"CryptoStrippers()","8f52da60":"technicalWallet()","8f535904":"CROWDSALE_REWARD_WALLET()","8f541730":"advisor1Sum()","8f55a850":"getArtistList()","8f56015f":"setRequirement(uint256)","8f5665ce":"nthWagerPrizeN()","8f571461":"ICOPRICE()","8f580996":"enablePurchasing()","8f58190e":"setLLV_edit_19(string)","8f581a53":"giveRegistration(address)","8f5949f9":"isContractActive()","8f5a5a39":"verifyPayment(bytes8)","8f5ab3ab":"transferdata(address,uint256,bytes)","8f5ab947":"getNextDropTime()","8f5b0b1c":"timeCheck()","8f5bae2e":"anchor(bytes32,uint256)","8f5bc587":"TokensForSale()","8f5c2eff":"getPurchaseInfo(uint256,uint256,uint256,uint256,uint256,bool)","8f5c5d40":"validTranscodingOptions(string)","8f5cbe36":"testCreateSale()","8f5cf7b9":"vestingStageTime()","8f5d23f6":"TOKENS_FOUNDATION()","8f5e0b3f":"UserBondByOffset(uint32)","8f5e514a":"diff(uint256,uint256)","8f5e619b":"publishEtherBox(bytes32,string,uint256)","8f5e9ca7":"acceptTOS(address,bool)","8f5f20c2":"LMA()","8f5f657d":"rateboc()","8f5fa4a4":"changeReceiverAddress(address)","8f608f4f":"exchangeRateMNY()","8f60cf17":"increaseSalesBalance(address,address,uint256)","8f6107ef":"MatthewWon(string,address,uint256,uint256)","8f612102":"createCarrier()","8f617fcd":"icoFinishTimestamp()","8f61da35":"getDebtLength()","8f620487":"expirationDate()","8f62077d":"getPlayerShips(address)","8f6218a3":"rollDices()","8f6245e1":"parseBool(bytes32)","8f627aab":"BlockIntervalCrowdsale(uint256)","8f62905f":"mintTokens(int256,uint256,uint256,address)","8f62b028":"updateUSeqgret()","8f632311":"doMint(address,uint256,bytes)","8f632a34":"MeetupToken(uint256,string,uint8,string)","8f6348b8":"stopFeeding()","8f63534a":"totalAuctionsCount()","8f64337d":"getHashedData(uint256,uint256,bytes32,bytes32,uint256)","8f652ec7":"_getVerifierInfo(address)","8f654175":"auditorAddress()","8f6612c9":"distributedAutonomousExchange()","8f679b2d":"EtheraffleICO()","8f67bd4d":"SBITokenCrowdsale(address,address)","8f67f9d7":"ILLIQUID_TOKENS()","8f6811a3":"mintTokensFor(address,uint256)","8f68b36f":"getMysubscribers()","8f68ca70":"setWhiteListContract(address,bool)","8f6963df":"initShareRule6()","8f699f6c":"calcInvalidKeys(uint256,uint256)","8f69fa25":"startLockingPeriod()","8f6a3deb":"_activateZoneLand(int32,int32,uint8,uint8)","8f6a7286":"refundMultipleUsers(address[])","8f6ac8d7":"FinalizableCrowdsale(uint256,uint256,uint256,address)","8f6b875a":"OWNER_POOL_COMMISSION()","8f6caf63":"sendPoint(uint32,uint32,int256,address)","8f6f3275":"getLease(uint8,uint256)","8f6f6115":"getOraclizePrice()","8f6f988c":"setUltimateOutcome(bytes)","8f6fa4c2":"ICO_details()","8f6fba8c":"FEATURE_TRANSFERS_ON_BEHALF()","8f70009d":"id_for_address(address,address)","8f701eaa":"addguess()","8f702afa":"sellerNumOpenDeals(address)","8f70585f":"bid(address,uint256,uint256,uint256)","8f70bfa0":"processDeposit()","8f70ccf7":"setTrading(bool)","8f7140ea":"receivePlayerNameList(uint256,bytes32)","8f717e80":"totalCreationCap()","8f71b3db":"etherToUSDrate()","8f71f3cb":"getBdpPriceStorage(address[16])","8f728516":"initNewGame()","8f729925":"receivePercent()","8f72e065":"StabitCoin(uint256)","8f72fc77":"getOrders(uint256,uint256)","8f731077":"extractAllowanceRecordLength(address)","8f73c5ae":"distributeReward()","8f7445e6":"setStageThirdBegin()","8f7451ae":"GetStoreInfo()","8f750271":"prose()","8f75362d":"emergencyWithdrawAdmin()","8f75374d":"incrementSupply()","8f754a1e":"affectedCount()","8f755c7c":"getOptionState(address[3],uint256[3],uint256[2],bool)","8f760988":"forceStopCyle()","8f76691a":"margin()","8f76a1f7":"lastClaimedRound(address)","8f76dfc3":"allTokenICO()","8f770ad0":"supplyCap()","8f77339f":"sendToken(uint256,uint256,uint256,string)","8f775839":"settled()","8f776ff1":"allowanceBalance()","8f778bb9":"setEmployer(string)","8f78b34a":"lockAccounts(address[],uint256[])","8f790507":"teamEthContract()","8f7a4738":"censure(uint16,uint32)","8f7a844b":"getAdminData()","8f7b7bce":"isTeamLockInPeriodOverIfTeamAddress(address)","8f7ba0a1":"registerbot()","8f7d33cf":"addCashback(string,uint256,address,uint256[],uint256[])","8f7d4dad":"getFirstPoints()","8f7d79da":"nextRoundMaxDonors()","8f7db6ee":"_setProviderSupply(uint256,uint256)","8f7dcfa3":"head()","8f7fe231":"ValidetherOracle()","8f80269d":"getClientSupply(address,uint256)","8f807f6b":"enqueue(address)","8f80b7bc":"registerTokenInternal(address,string)","8f80d339":"roundClaimICOKeys(uint256)","8f81ecfc":"removeChild(bytes32,bytes32)","8f81fd4a":"changeIcoDiscountPercentages(uint8,uint8,uint8)","8f828c9e":"totalSupplyAtInternal(uint256)","8f82b8c4":"getWhiteListCount()","8f8336b7":"setFeesMaxUptoCoin(uint256)","8f835871":"addRealWorldPlayers(uint128[],bool[])","8f83719c":"getTreasuryBalance(address,address)","8f83743f":"Fricacoin()","8f838478":"getInstantiationCount(address)","8f842851":"dateManager()","8f847076":"removeNFToken(address,uint256)","8f84aa09":"ownerAddress()","8f850163":"flipsWon()","8f855433":"newCreator()","8f85f92c":"isPoDEnded()","8f860c5f":"createWallet(address,address)","8f86f5ea":"finishSale()","8f872bb1":"advisorsAndAmbassadorsAddress()","8f87932c":"fix_amount(uint256)","8f87c84b":"transferOutEth()","8f87e387":"updateSspManagerContract(address,string)","8f88110d":"updateRecordWalletAddress(string,address)","8f88708b":"retrieve(uint256)","8f88a00e":"calculateRewardStructures()","8f88aed0":"populateFromItemRegistry(uint256[])","8f88b792":"createCampaign(string,uint256[3],uint256[],uint256,uint256,uint256,uint256)","8f8949e6":"setTotalCardCount(uint256)","8f8a5832":"reLoadXid(uint256,uint256)","8f8b2c9b":"totalEthJackpotRecieved()","8f8bbb8c":"ObjectedVote(bytes32,address,uint256)","8f8bcae6":"minting(address,address)","8f8bd64c":"calculateNetworkTokenBonusPercentage(uint256,uint256,uint256,uint256,uint256)","8f8bde82":"MicroDAO()","8f8c7c50":"_randomMeme()","8f8d322e":"melt(address,uint256)","8f8d49ac":"setStore(string,uint256)","8f8db737":"buyDirectInMarketplace(uint256)","8f8e7419":"sharedStorage()","8f8e8f9d":"refundETHToCustomer(address,address,uint256)","8f8eabea":"ZNA(uint256)","8f8eb474":"burnBid(uint256)","8f8f6b52":"freezTwo()","8f907195":"rpow(uint256,uint256)","8f9087f5":"hashBytes(bytes)","8f908cbd":"setCaptainTokenContract(address,address)","8f90f2bb":"getNewRabbit(address)","8f9139fb":"Pokecoin(uint256,address,address)","8f924560":"addEntity(string,uint256,uint256)","8f929c4a":"createAccount(bytes16,string)","8f92d308":"viewFeaturePetitionFee()","8f937574":"OwnerHelper()","8f93bffe":"getOrCacheReportingFeeDivisor()","8f940f63":"typeId()","8f94f6a0":"piTokensForSale()","8f9593f4":"winnerFirst(uint256,uint256)","8f96a1ea":"addThing(bytes32,bytes32,bytes32,bytes32)","8f975a64":"sendERC20(address,address,uint256)","8f97ad89":"claimTokensFor(address,address)","8f97cff0":"getPersonsCount()","8f97d03f":"IbizaERC20Token()","8f97e3a0":"requestPayout(uint256)","8f984115":"AUEBToken()","8f98767e":"fundingMaximumTargetInUsd()","8f98ce8f":"transferFeeNumerator()","8f98e0e1":"MBToken()","8f99d31b":"betLow()","8f99ea43":"setDividendDB(address)","8f99fdab":"SafeDeduct(uint256,uint256)","8f9a42b8":"philadelphiaBets()","8f9a57ef":"minSignId()","8f9a6da1":"queryOracle(string,string)","8f9abae1":"accessControlled()","8f9abe52":"isValidSellOrder(address,address)","8f9ade5e":"create(address,bytes32,uint256)","8f9b7eb7":"updateReleaseAmount()","8f9bbf16":"getSecurityTokenData(address)","8f9bf95d":"_payCommission(address)","8f9d1cba":"zss(address)","8f9d390a":"toteLiquidatorTransferComplete()","8f9de24b":"uniqueSpinnersActive()","8f9df278":"newEntry(int256,bool,uint256,int256,string,bytes32,address,uint256[])","8f9e1409":"removeSection(bytes32,bytes32)","8f9f5b2f":"getMemoryWrite(uint256,uint256)","8fa148f2":"currentRoundStartBlock()","8fa17580":"claimEgg(uint256,bytes32,bytes32)","8fa1ae05":"batchTransferSingleValue(address[],uint256)","8fa32111":"addInvestor(address[])","8fa366df":"changePhaseToICOweek3()","8fa3a84c":"validateTransaction(address)","8fa4c0b1":"tokenPlus(address,address,uint256)","8fa54b81":"setUserBattleValue(address,uint256)","8fa5614f":"getBylawsProposalVotingDuration()","8fa56215":"_createToken(string,string,string,uint256,address,uint256,uint256)","8fa566e8":"tokenIdOfUUID(string)","8fa5a6e9":"pmtAccount()","8fa65488":"startRefundInvestorsBallot()","8fa6da99":"Modultrade(address,address,address,address)","8fa81bb0":"PrivateSale(address,uint256)","8fa8b790":"cancelAuction()","8fa906b2":"addFounder(address,uint256)","8fa9cc09":"HeritableWalletFactory()","8fa9e55c":"signIn(address)","8faa6cb7":"partnersLockEnd()","8faa77b2":"deployers(uint256)","8faab3a7":"BatchAttachAssets(uint256[10])","8faad4c4":"createPromoTeam(string,address,uint256)","8fab0549":"setInvestorsPercentage(uint256)","8fabd326":"mPausedTime()","8fac3d3e":"feesGathered()","8fad8334":"_timeRemaining()","8fad8eec":"EnterRentToken()","8fadd08b":"betHigh()","8fae065c":"setStartIcoPreICO(uint256)","8fae4857":"finaliseChannel()","8fae8850":"ICOmint(address,uint256)","8faef6a5":"getTierForLastMiniting()","8faf682d":"payeeWithdrawCapital()","8faf850d":"addUser(bytes32)","8fafb286":"claimResearchDividends(address,uint256,uint256)","8fafebca":"TokensPurchased(address,uint256,uint256)","8fb0de08":"getCurrentRoundInfo2()","8fb197d1":"getUserDataOnToken(address,uint256)","8fb21a4b":"setMinReferrerBonus(uint256)","8fb25f82":"sellCells()","8fb29d6c":"pastAgreement(uint256)","8fb2f8b4":"isCollectTokenStart()","8fb2fbe1":"getTokenToEthUpdateOrderHint(uint32,uint128,uint128)","8fb48844":"noOfreservations(address)","8fb4b573":"start(uint256,uint256)","8fb50078":"joinProvider(address)","8fb51ccd":"QosinusCoin()","8fb5202b":"setFinancialAddress(address)","8fb5a482":"getPrices(address[])","8fb67f60":"aPurgeMessages()","8fb6d997":"updateStorageContract(address)","8fb74077":"HoursFromNow(uint256)","8fb74ae9":"isBannedUser(address)","8fb84bb0":"marketBuy(uint256)","8fb8f109":"addressToPersonId(address,address)","8fb96635":"decreaseBalance(address,uint256,uint256)","8fba273c":"m_investmentsByPaymentChannel(address)","8fba8d5c":"toHexString(uint256)","8fbb3c17":"CROWDSALE_PHASE_2_START()","8fbb9b49":"_isProduct(address)","8fbc3ecd":"BUFFER()","8fbc7eb0":"balanceOfToken(address,address,address)","8fbd4fa5":"claimPrizes(uint256,uint256,uint256,uint256)","8fbe382c":"totalFoundCoin()","8fbea5c9":"totalCommissionOwed()","8fbeee23":"sendOutEtherWithGasAmount(uint256)","8fc01623":"activatePackage(uint256)","8fc1d08b":"transferFromPublicAllocation(address,uint256)","8fc202ae":"currentKeyRound()","8fc264e0":"allocateTokens(uint256,uint256)","8fc3047d":"checkPrice()","8fc3c33b":"GenerateFortuneCookie(uint8)","8fc4ea4c":"ownerPetCollection(address,uint256)","8fc5668b":"processRequest()","8fc5efd4":"c_centsPerTokenFirst()","8fc5fd83":"FRPoint()","8fc6ad2d":"getParameterValueByTitle(bytes32)","8fc6bf7f":"ico3endTime()","8fc7a25d":"getEthAmount(uint256)","8fc8a134":"DepositBeneficiary(address,uint256)","8fc95403":"saleSecondEarlyBirdEndBlock()","8fc9bff6":"_claimRewardBlank(address,string)","8fca3057":"pastPlayRoundsCount()","8fcb4e5b":"transferShares(address,uint256)","8fcbeeb7":"getFreeDragon()","8fcc9cfb":"setMinDeposit(uint256)","8fcd558e":"GetDataRequestLength(uint256)","8fce0ee7":"secondLineWrong()","8fce6b07":"_addKeeper(address)","8fced626":"resolveBet()","8fcee83f":"getRoomStatus(uint256)","8fcf31e3":"createCardFromName(string)","8fd0290f":"YZChain(uint256,string,uint8,string)","8fd16541":"referrer2Percent()","8fd1b1f2":"maxCardUpgradeLevel()","8fd23762":"IOSToken()","8fd237e1":"setJackpotWinPercent(uint256)","8fd28bcf":"testFailAuthorityAuth()","8fd3ab80":"migrate()","8fd4f899":"setVipRate(uint256)","8fd57396":"winAmount5()","8fd5a39e":"distributeSMILE(address[],uint256)","8fd5d753":"EternalToken(uint256,string,string)","8fd5eb06":"_decodeSettle(bytes)","8fd611be":"eventManager()","8fd65890":"getCurrentAvailableFunds()","8fd712ae":"PRICE_STAGE_ONE()","8fd79669":"setPokemon(uint256,string,address,uint256,uint256)","8fd7aab6":"unfreezeAccount(address,uint256)","8fd88225":"GetChipList(address)","8fd8b429":"vanishCoins(uint256)","8fd90960":"UpgradeProposalSubmitted(uint256,uint256,address,address,address)","8fd9f1b4":"DaoRules()","8fda183a":"hasPoolRole(address)","8fda356d":"activateContract()","8fda5c8e":"creatorsPoolMintQuota()","8fdb385b":"Trc(uint256,string,string)","8fdb7189":"double()","8fdb72f3":"gzeEth()","8fdc054f":"purchaseCrates(uint8)","8fdc24ba":"left94(uint256)","8fdf51d5":"getMyAllAuction(address)","8fdf741a":"_batch3_rate()","8fdfac6b":"setMAXfinney(uint256)","8fe10615":"walletLocked(address)","8fe10ae4":"FundsAdded(address,uint256)","8fe13b92":"addExchange(bytes32,address)","8fe26bf5":"TailsToken(uint256)","8fe2b355":"getGameVars()","8fe2eb9e":"setSellDividendPercent(uint256,uint256)","8fe316fe":"withdrawNotification(uint256)","8fe3579f":"addCharacter(string,address,uint256)","8fe3ec6d":"setDefendBoostCap(uint256)","8fe44adf":"ico4Min()","8fe47625":"showMyTokenBalance(address)","8fe58eb9":"Triger()","8fe5f77d":"hackTenuous(address)","8fe60df1":"calculateCounterReceived(uint256)","8fe6677d":"addToWhitelistMultiple(address[])","8fe8a0a6":"abcLottoResolver()","8fe8a101":"isKilled()","8fe8cb79":"promotionIndexToClaimant(uint256)","8fe91976":"activateWithdrawal()","8fe92aed":"votedPerCent(address)","8fe9a12f":"BKUToken()","8fea1e4d":"decreaseAllowance(address,uint256,address)","8fea64bd":"Hourglass()","8feaa243":"callTest(address,address,uint256,bytes,string)","8feadcb7":"setPeriod(uint256,uint256,uint256)","8febb1e5":"getPlayerHasAff(uint256)","8fedc959":"hedgeAddress()","8fedd2f2":"getTestTwo()","8fee3dab":"updateStat(uint256,uint256,uint256,uint8,uint8)","8fee7687":"allocatePresaleTokens(address,uint256)","8fee7b57":"registerQuarterSeason(int8)","8ff0c391":"isBuyBackTwo()","8ff11282":"parseKey(bytes32)","8ff1a583":"ICO_HARDCAP()","8ff21e0d":"LogBounty(address,uint256,string)","8ff255d6":"getHighestPrice(uint256)","8ff49347":"LOG_InvestorCapitalUpdate(address,int256)","8ff591b4":"addMinutes(uint256)","8ff5cbc3":"ApproveERC20(address[])","8ff5f021":"tokenAlreadyUsed(uint256)","8ff6650a":"Lending(uint256,uint256,address,uint256,uint256,uint256)","8ff67e35":"EthereumPro()","8ff6c8dd":"ICOSaleEnd()","8ff6e971":"isSecondary(uint256)","8ff72293":"getLotteryStatus(uint256)","8ff813fd":"transferVester(address)","8ff82a97":"TransferLockedToken(address,address,uint256,uint256)","8ff8754c":"getShareIndexDebugForTestRPC()","8ff936ea":"NoahCoin()","8ff95fa8":"catNames(bytes5)","8ff9b84e":"newStorage(address)","8ffa9690":"getBoolValue(bytes32)","8ffb4dc7":"nextStage(bool)","8ffb5e67":"getEvents(uint256,string,uint256)","8ffbcb81":"endIcoSaleRound3()","8ffbd95b":"setFcfContractAddress(address,address)","8ffc024f":"login(address,address)","8ffc831a":"testMemoryIntegrityCheck32Bytes()","8ffcdc15":"ContractDeployed(address)","8ffd2a1b":"add(uint256,address,uint8,string,address,address,string)","8ffe9b94":"transferTo(address,address,uint256,uint256)","8ffeb5c8":"MyBoToken(uint256,string,uint8,string)","8ffec6ee":"vinciCap()","9000b3d6":"addVerifier(address)","9000fcaa":"killAllowanceContract()","900104da":"updateAddressInfo(address,address,uint256,bool,uint256,bool,uint256,bool,string,bool)","90014f06":"ownerSetJackpotOfHouseEdge(uint256)","90018343":"_forwardFundsWei(uint256)","9002dba4":"right17(uint256)","9003adfe":"collectedFees()","9003ff51":"XET2()","90042baf":"createContract(bytes)","90044d18":"phaseTwoBonusPercent()","90045412":"withdrawloss(address,address)","900526b3":"getAuthorizeContract(uint256)","90059aed":"_daysToDate(uint256)","90061292":"Bazzhtoken()","90063fd4":"payContributorByNumber(uint256)","90065125":"PropertySet(address)","900683d0":"subtraction(uint256,uint256)","90070cb3":"Contribution(address,address,address,uint256,uint256)","9007127b":"getIntValue(bytes32)","900726c2":"sellOpen()","9007cdf3":"TOXBToken()","9007d53f":"withdrawTokens4(uint256)","900863e7":"depositTeamPerfit(uint256)","900888a3":"unsetERC777(address)","9008d64f":"getHolderInfo(bytes32)","90099ece":"preIcoOpen()","900a0285":"double(bytes32,uint8,uint256)","900a974e":"end(string)","900b7b62":"getWorkerAddress(uint256)","900cf0cf":"epoch()","900cff49":"getEsgoTXFund(uint256)","900d33d9":"createContractCar(string)","900d3812":"registerTransaction(string,address,uint256)","900d6f39":"maxStage1AllocationPerInvestor()","900d85fa":"updatePreReleaseTree(bytes32)","900dd918":"newTransferManualTokensnewTransfer(address,address,uint256)","900ddb58":"WCF()","900e1248":"sendlimit()","900e1561":"changePersonalMincap(uint256)","900eb5a8":"currentValidators(uint256)","900f080a":"reveal(uint256[],bool[],bytes32[])","9010470d":"markAsComingAndFreeze()","90107afe":"setAddresses(address,address)","9010c70b":"defaultLockBlocksForPool()","9010f726":"getKeysByPurpose(uint256)","90126acf":"optionsExercised(bytes32,address,address)","9012c4a8":"updateFee(uint256)","90135fec":"maxReached()","9013ad18":"activateUser(address,address)","9013d1ed":"startChallengePeriod(bytes32,bytes,address)","9014b075":"clockairdrop()","90152ddb":"Liutestcoin(uint256,string,uint8,string)","9015e1dc":"getPlayerAddressById(uint256)","9016bc21":"client_address(address)","9017006e":"getDevFees()","901717d1":"one()","90171e57":"setBonusRound1(uint256)","9018c431":"serServerStatus(string,uint256)","901b2036":"totalSpins()","901b4301":"evacuate(address)","901b9249":"round(int256,int256,bool)","901c4e4f":"deployVault()","901c7518":"commRate(uint256)","901c947f":"showContractBalance()","901cea7b":"allocateEcosystemTokens()","901d7775":"voteOutMasterKey(address)","901da0df":"ownerTokenTransfer(address,uint256)","902025bd":"OfficalHolding()","9021c03d":"creditDividends(uint256)","9021dd30":"MinBetAmountChanged(uint256)","90232694":"toMemory(uint256,uint256)","90236e76":"Short()","9023c993":"YupieToken()","9025ab6d":"ethTransfertoKYC(uint256)","9025e64c":"networkId()","902650aa":"initCards()","9026ad2e":"AbstractSweeper(address)","9026bd65":"RaffleGraphBook(string,uint256)","9026dee8":"checkAdmin(address)","902753f4":"verificationOff(address)","9028353a":"founder2Address()","9028f20b":"bodyElementBySubtypeIndex(uint256)","9029444a":"getMemberAddress(uint256)","9029a32b":"updateRausPoint(uint16,int256,uint16)","902a83cd":"addReleaseAuction(uint256,uint256,uint256,uint256,uint256)","902ab12f":"TestTest()","902c0dcc":"BalancesInitialised()","902c3ad7":"LOOMIA1_ADDR()","902c6811":"ProtectedReclaim(address,address,uint256)","902c92b7":"playHand(uint8,uint8,uint8,uint8[5],uint8[],uint8[],uint8[])","902d55a5":"TOTAL_SUPPLY()","902e64e5":"Oath()","902eded3":"eip165Supported(address)","902f1492":"registerPayment(address,uint256)","90300e38":"calNewTokens(uint256,string)","90304341":"safeToSub(int256,int256)","9030e40f":"totalFundRaised()","903171ae":"foundationTokenWallet()","9031bd2f":"_buyTokensFromSeller(uint256)","90323075":"TrustlessTransferStatusModified(uint256,bool)","9032bfc8":"setDaySecond()","9032f1a9":"createBenzTicket(address,uint256)","9033de61":"FricaCoin()","90347678":"numclaimed()","9034b427":"numDonors()","9035b4ff":"Biniu(uint256,string,string)","9036420a":"Cosmo()","903833cc":"setMemorySize(uint256)","90393fc8":"maxPerTeam()","9039e01d":"newDay()","903a3ef6":"finalizeIco()","903a8298":"subscriptionCounter()","903b1f20":"enact_withdrawal_less(address,uint256,uint256)","903cc583":"calculateTokens(uint256,uint256)","903d0ac0":"publicAllocationTokens()","903d3340":"balanceOfFlower(address)","903d9b2f":"Webrypto()","903db106":"x(bool)","903e95a9":"DeskToken(address)","903f2c48":"isAuthenticating()","903ff4fc":"AssetDK3()","90414116":"Period()","9041bdeb":"BNW()","9041f2c8":"WithdrawProposalFund(uint256)","9041f960":"manageTransferLock(address,bool)","90427b6c":"dev4Wallet2Pct()","9042aa27":"paymentForkIndexes(uint256)","9042bbf3":"prizeClaimed()","9042dcd9":"prizeMoneyQuantity()","90430c00":"getVersionImplementations(bytes32,bytes32,bytes32)","90431b6e":"withdrawAllFromToken(uint256)","90445e9f":"getPlayerNb(uint256)","9046fefd":"NewCurator(address)","904740cd":"getOscar()","9047ad74":"activateProject(address)","90483aa1":"PowerLedger(address)","9048816f":"resultConfirmed()","9048f510":"createContractGame(string,uint256)","904a7d4c":"midasDeposit()","904aaf8f":"foreground()","904adc3d":"ERC23TokenMock(address,uint256)","904b46a1":"NEOToken()","904b67c2":"IcoClosedManually()","904bd6d0":"setTokensPerEther(uint256)","904c6094":"contractHash()","904cbd79":"depositCommission()","904d2248":"betHashOf(address)","904d3f47":"IADAddress()","904d5ed6":"Update_Cash_Proof_amount(uint256)","904da3d7":"Buyout(address,address,uint256,uint256,uint256,uint256)","904dc85d":"providerRewardLib(address)","904de64e":"TRSOffset()","904e1c88":"sales(bytes16,uint256)","90502c2e":"collectTokens(address[])","9050b560":"obligations()","9051d18a":"tokenEnabled(uint256)","90525c05":"devLimit()","905295e3":"unlockAccount(address)","9052b3d5":"_contains(address[],address)","9053ef56":"onReceivePrivate(address,address,uint256,bytes)","9053f420":"trade(address[8],uint256[6],uint256,uint8,bytes32,bytes32)","905473cf":"updateMaxJump(uint256,uint256)","9054bbb6":"INITIAL_TAP()","9054bdec":"toTimestamp(uint16,uint8,uint8,uint8,uint8,uint8)","9055172d":"UVDToken()","905529be":"startCrowdsales(uint256)","9055bc12":"QRToken()","9055ffb0":"trackTreasuryToken(uint256)","9057bc48":"canStopWork()","9057f289":"createListing(address,uint256,uint256,uint256,uint256)","9058c8a4":"setBuyFeeBps(uint256)","9058e228":"buy(address,bytes32)","90596dd1":"controllerBurn(address,uint256)","905a7649":"RegisterTransaction(address,uint256)","905a90fe":"numberImmortals()","905ae5f5":"fechCurrentStageIndex()","905b7256":"_rewardLotteryWinners(uint256,uint256)","905b8000":"CountStudentnRequests()","905bd5e4":"superTransfer(address,address,uint256)","905bebe9":"solveProblem(uint256)","905c949e":"AURIX()","905d326c":"_newCampaign()","905dca52":"haveEitherAttribute(address,bytes32,address,bytes32)","905e6e42":"JSON_Test()","9060091c":"setAmountToken(uint256)","90603bdb":"getEscrowsByOwner(address)","90604005":"cln()","9060e35d":"Voronezh()","9061a6e9":"increaseSoldSaleSupply(uint256)","9061aedd":"fundOnContract()","9061da22":"MANHATTANPROXYEASTENDAVE()","9062145a":"CreateXPA(address,uint256)","906273a3":"asyncTokenSend(address,uint256)","9062a445":"setGameAddress(address,address,address)","9063e860":"transferOrigin(address,uint256)","90645840":"newHash(uint256)","90646b4a":"setGateway(address)","9066314e":"toggleLastChance(bool)","90664cf5":"armyAircraftCarriersCount(uint256)","906686a6":"totalIssueTokenGenerated()","9066c472":"addRoyaltyReceiver(address,uint256)","90676901":"stallionWith(uint256,uint256)","9067b677":"getEndTime(uint256)","906802cf":"tokensUnlocked()","906860d9":"Whitelist(address,address)","906a114c":"getAllMoneyOut()","906a26e0":"softCap()","906ab111":"preIcoTokenSales()","906b23be":"TOKEN_FOUNDINGTEAM()","906ca728":"viewReservedTokens()","906d5785":"setTeamContract(address)","906d895d":"getAvailableSeats()","906e1ec0":"canWriteName(address,bytes32)","906e9400":"newManager(address)","9070222e":"getCardIdByRank(uint256)","9070b18d":"_getAllRevisionBlockNumbers(bytes32)","9070e8a5":"validContracts(address[])","90714770":"finalizeFirstStage()","9072d58a":"registerPullPayment(uint8,bytes32,bytes32,string,string,address,address,string,uint256,uint256,uint256,uint256,uint256)","907316a9":"_getEarnings(address,address,uint256)","90731848":"minPriceForNextRound(uint256)","9073280b":"SFTPRECOE()","9073576c":"UnfreezeAccountByTime(address)","90742e52":"initsegmentation(address,uint256,uint256)","90753533":"activateMainIco()","90754979":"sendPriceRequestToOracle(bytes16,bytes16)","9075726e":"SeeSourToken()","9075b10c":"LogWhiteListedMultiple(uint256)","9075becf":"multisigWallet()","9075f124":"setAccountVerified(address)","90762a8b":"ownerBurnToken(uint256)","907631fc":"toBool(bytes,uint256)","9076a38a":"getBackgroundImageCount(address)","9076aff7":"lastBlock_a4()","9076c166":"setAllocation(address,uint256)","9077309b":"burnSoupTokensForDay(uint256)","90778ab9":"issueToken(address,address,uint256,uint256,uint256,uint256)","9077dcfd":"submitCoding(string,uint256)","90785418":"addPiece(string,string,bytes32,address)","9078b596":"changePrice(bool)","90797634":"ident()","907a37c5":"getCandidateDetailOnElection(address,address,uint256,address,address)","907af6c0":"unit()","907b0305":"createERC20(address,uint256,string,uint8,string)","907b270b":"priceEthPerToken()","907b503d":"depositedToken(address)","907be394":"operationsFundAddress()","907c5082":"assignTeamTokens()","907dff97":"_emit(bytes,uint256,bytes32,bytes32,bytes32,bytes32)","907f67ee":"pauseBuyback()","907f7aa8":"cancelSellOfferInternal(uint32,bool)","9080345d":"Role(bytes32,address[])","9080c78c":"tixNumberforSale()","90810c77":"multivestBuy(address,address,uint256)","9081c3db":"markHours(bytes32,int256)","90825c28":"getMarketCap()","90828c78":"nextPromiseId()","90828cdd":"getCreateMarketUniverseValue()","90835848":"getCurrentRoundTotal()","90836822":"DXC()","90838e09":"totalInvested(address)","9083998b":"TechnoBit()","908408e3":"Initialized(address)","90843cd9":"fetchAllCreatedOrders()","90843d04":"numIncrement()","9084f1f9":"closeMotion(uint256)","90855c31":"ACT(uint256,string,string)","9085b77f":"allowed(address,bytes32,address,bytes4)","9085e88d":"giveBlockreward()","90862d1b":"unfreezeTokens(address)","908687a9":"Simoleon()","90869e9f":"getMartialNumber()","9086de3b":"isWhitelised(address,address)","90888aa1":"StakeObjects()","908921fc":"ceo()","90895e1c":"setAllocatedToken(address,address,address,uint256)","9089e0c2":"UnicornCoin()","9089f616":"removeClient(address)","908ab6a5":"roleHash(address,bytes32)","908b8cfc":"withdrawOperationalExpenses()","908c3a6a":"tokenUserCounter()","908ccc5e":"numberOfRecordEntries()","908d16de":"BountyAgentChanged(address,bool)","908da4e8":"timeTier1()","908dd411":"getFundAlterations()","908e049b":"destory(uint256)","908e2d2a":"maxCoinCap()","908e2f06":"mails_to_deliver()","908f68ee":"unrespondedCnt()","909006fc":"setDirectOffersComissionRatio(uint256)","90900df4":"addDebt(bytes32,uint256)","90905360":"setDividendsPercent(uint256)","9090ce1f":"CANCELATION_DATE()","90912d09":"pausingMechanismLocked()","9092b623":"PotOfEther()","90935301":"setCryptaurReserveFund(address)","90938792":"canVoteAs(uint32,int256,address)","9093bc3d":"addCoins(uint8,uint8,uint256)","9093f5d1":"ReverseBugBounty()","90949f11":"getNumberOne()","9094b22f":"setAttribute(address,address,string,bytes,uint256)","9094c763":"vote(uint32)","9095269d":"mintExtraTokens()","909540cb":"ERC165()","90954483":"createLandmark(string,address,uint256)","90957363":"removeFromFutureExpanstionMap(address)","9095b2cd":"IPcoin()","9095df68":"library2function()","90971fea":"ecrecoverWrapperView(uint8,bytes32,bytes32)","90972e89":"LogReceivedEther(address,address,uint256,string)","90974795":"getall()","90979943":"IRB()","909862b7":"updateSalary(address,address,uint256)","9098f074":"buyServiceByAdmin(uint64,uint64,address)","909c36b5":"newEntry(bytes32,bytes32,bytes32,bytes16,bytes1,bytes16,bytes32,bytes32)","909c9fca":"reclaimExpiredSwaps(bytes32,bytes32)","909d22c7":"many_cryptobanks()","909d2cc1":"hasTeam()","909d3bc9":"isIdle(address,uint64)","909d6877":"preSaleLimit()","909e4ab6":"getLog()","909e8f92":"unlockFirstPrivate()","909ec524":"KyberAirDrop(address)","909f2c3a":"ChangeNumber(string)","909f617e":"fill(address[5],uint256[6],uint256,bool,uint8,bytes32,bytes32)","90a08e70":"balanceOfUnclaimedGoo(address)","90a0a2ab":"GetPriceOfTroops(uint256,uint256,uint256)","90a1d580":"TSTEST2()","90a2005b":"transfer(bytes32[])","90a251da":"createNewTankWeapon()","90a25f28":"WeBetCrypto()","90a2e1ef":"emergencyReserve()","90a3d87e":"addLanguage(string)","90a4d287":"bovBatchDistributed()","90a53085":"votesCountByOperation(bytes32)","90a59ea1":"BasicAccountInfo(uint8)","90a5c7af":"Lesson_1(address,uint256)","90a6267a":"canRescue(address)","90a650e8":"UpgradeAgent(address)","90a70139":"pauseTransfer()","90a72a3f":"FundingCapSet(uint256)","90a744fe":"BossCoin()","90a7ba5b":"ticketsPurchased()","90a85119":"checkBetResult(uint8)","90a897c6":"frozenAddress(address)","90a971a8":"setPI_edit_27(string)","90a9cc02":"namiPresale()","90aa2185":"dailyCount()","90aa835c":"IsAuthorityAddress(address)","90ab54dc":"configureMigrate(bool,address)","90ab7d34":"deployRuntimeContract()","90abcb08":"TronyCurrencyContract(uint256,uint256)","90ac11a3":"designs(uint256)","90ac1866":"setMinGasPrice(uint256)","90ac3f4c":"_getTokenAmount(uint256,address)","90ac7588":"profitsLockedUntil()","90acc740":"transferCompanyTokens(address,uint256)","90ad304f":"ContractOwnershipTransferred(address)","90addc9a":"calculateMyRewardMax(address)","90ae144e":"swap_able()","90ae631d":"assignAll()","90ae6863":"gyCF()","90af1333":"allBoxNumbers()","90afca4c":"addPhases(uint256,uint256,bool,uint256,bool)","90b06593":"landClaim()","90b08a52":"getSendAmount()","90b0e078":"discountTime()","90b17f99":"directPaymentThreshold()","90b22d03":"set_parameters(uint256,uint256,uint256)","90b25207":"GoogleChainToken(address)","90b26043":"NameRegistered(address,uint256,string,uint256)","90b2ae49":"verifyDeployment(address,bytes32)","90b2ce6f":"mvnpereth()","90b30251":"is_finalized()","90b3195f":"SHAREPERIOD()","90b398ff":"SetFreeGWT(uint256)","90b3d963":"trade(uint64,uint64)","90b4cc05":"mintAdvisorTokens()","90b4cc72":"numTransactions()","90b5561d":"insert(uint256)","90b5e6d9":"presaleFinished()","90b625f9":"stockSellOrder(uint256,uint256,uint256)","90b67185":"setPrivilegeState(bool)","90b6b209":"bonuses()","90b6f7e6":"RashidToken()","90b7ddd7":"t02_createContractMac(bytes32,bytes32)","90b7df75":"addAuthByPhone(string,string)","90b98a11":"sendCoin(address,uint256)","90b9be4a":"RetailerManager(address)","90b9c31a":"purchaseFinished()","90ba0e6c":"getNumOfBettersForMatchAndPrice(uint256,uint256)","90ba34cc":"refundClaimAddress()","90baaa5c":"checkPoolEnd(uint256)","90bb5ad0":"Eth2USD(uint256)","90bb6153":"withdrawTokenBalance(address)","90bb807e":"getVolumeDiscountsCount()","90bc1693":"burn(uint128)","90bd301e":"_validCharm(string)","90bdb275":"costOfTxShares()","90bde517":"getUser(address,address)","90be0bd9":"enableAuthentication()","90bee6aa":"getTransformRate(address,uint256,uint256)","90bf0301":"changemp(address)","90bf348f":"crowdSaleMinAmount()","90bf495d":"tokensReleasedToEarlyInvestor()","90bf693b":"logoFee()","90bf87a3":"setRestriction(address,uint256)","90c1288e":"setAddressF1(address)","90c2365e":"_addWeiAmount(uint256)","90c26736":"countRecommendFund(uint256)","90c32295":"bountySent()","90c3a370":"AuctionMaster()","90c3f38f":"setDescription(string)","90c40776":"donotIronDappToken()","90c459a3":"lnLimited(int256,int256)","90c46985":"calculate_difficulty_attempt(uint256,uint256,uint256)","90c4ce57":"getReportingWindow(uint256)","90c6087b":"_getName(string,uint256)","90c6b18a":"CreationTime()","90c6d1b9":"SetFreeTokens(uint256)","90c79af9":"startAcceptingFundsBlock()","90c8a72d":"sendOwnerShares(address)","90c8abd3":"CreateCaptainToken(address,uint256,uint32,uint32,uint32,uint32,uint32,uint32)","90c985a1":"buyCertificate(uint256)","90c98a7b":"resolveRankBoard()","90c9d6f8":"BankerExit(uint8)","90ca20e5":"init_wallet(address[],uint256,uint256)","90ca27f3":"vote(string,uint8)","90ca38d9":"setAdvisorsTokens(uint256)","90ca9dbf":"getGradeByQuailty(uint16)","90caa2b4":"getFreezeUntilDetails()","90cad537":"poolMintRate()","90cb04e1":"buy(string,uint256,uint16)","90cb4854":"createTokens(address,uint256,uint256)","90cbcf92":"getFibonacci(uint256)","90cbfa19":"abort(address)","90ccdafb":"increaseArrayOfBeneficiariesBalances(address[],uint256[])","90cd0d06":"registerApproveRequest(bytes32,bytes)","90cd5860":"VehicleRTO(address)","90cd6170":"getActiveSkin(address)","90cd8020":"licenseTermsMinCostPerSec(bytes32,bytes32)","90cddcc5":"getEpisodeDetail(uint256)","90ce9e5b":"getPreIcoInvestorsAddressesCount()","90cf3fed":"AKAIITO()","90cf581c":"voteYes()","90cf72de":"_getCommonPlusRarity(uint32)","90cf76fa":"bundleOfOwner(address)","90cf7ab4":"existsUser(uint256)","90cfce5a":"setgetgoods(uint256)","90d16b30":"resolveDisputeBuyer(address,string)","90d19241":"_removeAddress(address)","90d1c593":"Summary(address,address[],address[],address[],uint128[])","90d22eeb":"setIcosMinLimit(uint256,uint256)","90d240c6":"get_data(uint256,uint256)","90d28075":"getBasketArranger(address)","90d2cd5c":"getCurrentUserBigPromoBonus()","90d2f727":"signedApproveAndCallCheck(address,address,address,uint256,bytes,uint256,uint256,bytes,address)","90d370ba":"canReceive(address)","90d49b9d":"setFeeWallet(address)","90d4bcc0":"inject()","90d4bd45":"wetCoin()","90d58a70":"tgrCurrentPartContributor()","90d61290":"traded(address,uint256)","90d63e5d":"addAuthor(bytes)","90d68bb6":"getCallTypes(uint256)","90d6b45f":"kyc()","90d783bb":"BEEFJERKY(address)","90d83301":"SPAM()","90d8a4be":"badge(bytes)","90da7c3c":"isGeneMixer()","90daaf67":"getMinimalDeposit()","90db2aa9":"SellOrder(uint256,address,uint256,uint256,uint256,uint256)","90db623f":"increaseApprovalAndCall(address,uint256,bytes)","90db78f9":"crowdsaleInfo()","90dbf4fc":"getRequestBaseInfo(uint256)","90dc0636":"GetHoldersCount()","90dcba22":"addressPeople()","90dd027e":"migrateFrom(address,uint256,uint256,uint256,bool)","90dd2395":"listPrycto6()","90dd9d17":"perSaleWithDrawal()","90de4495":"dive5(address)","90de8234":"adminMode()","90de9ed9":"TOKEN_SALE_CAP()","90df44b4":"addDocument(string,string,string,string,uint256,uint256)","90dfb092":"privatePresale()","90e10134":"burnAdminApproval()","90e10250":"setCreated()","90e1de68":"allowedForwards()","90e2160a":"setMaxUpdates(uint256)","90e2b94b":"t0special()","90e2d4cc":"refreshLockUpStatus()","90e33e9c":"totalDDTforInterest()","90e3c278":"getShares(uint256[128])","90e47957":"erc165InterfaceSupported(address,bytes4)","90e4a130":"getMyDonations()","90e50ba7":"registerAltPurchase(address,string,string,uint256)","90e517e7":"logoY()","90e575f5":"auctionEnds(string)","90e57cac":"confirmProposalAndTransferFunds(uint16,uint16)","90e64d13":"hasExpired()","90e72127":"closeOrder(address)","90e761cd":"recoverAddressFromSignature(uint64,uint256,bytes32,bytes32,bytes)","90e7760e":"makeLive()","90e7a074":"codexStakeContract()","90e8265d":"tierDuration(uint256)","90e8317c":"rateWorkerSkills(uint256,address,uint256,uint256,uint256[],uint8[])","90e8edd8":"JincorTokenPreSale(uint256,uint256,address,address,uint256,uint256,uint256,uint256,uint256)","90e8f758":"liveEtherSportCampaign()","90e99b09":"finishRestore()","90ea0fb8":"isSignedByEugene()","90eb9632":"PROMETHEUS_PRICE_INCREMENT()","90ebed43":"getNumberOfCourses()","90ec028d":"LogPollCreated(bytes32)","90ec57f1":"Approve(address,uint256)","90ed6bf4":"startWithdraw()","90ee2ec2":"FCCPlaceHolder(address,address,address)","90ee4331":"getStartClaimDate()","90eed0ce":"SetCert(uint32,bytes32)","90eede26":"COMM_ADDR()","90ef08a1":"getdrawtoken(address)","90f08b32":"contract2Address()","90f098bb":"setFeeTake(uint256)","90f0a5bd":"BecomeTadpolePrince()","90f0dbd5":"CRSAllocation()","90f0f4f4":"ReserveFundAmount()","90f0fef0":"test2ContractVote()","90f1d909":"Ixellion()","90f25eb3":"getPercentages()","90f2c86d":"convertToWei(uint256,string)","90f2dc88":"getObjClassId(uint64)","90f3b693":"initialIssueMinted()","90f3deb1":"getTeamUnlockAmountHelper(uint256)","90f4c33a":"transferSaleWallet(address)","90f4d2fd":"checkMaxCapReached()","90f50cd9":"setPromo(address[],uint8[])","90f52ade":"LOTT()","90f549ba":"getLockCountForAddress(address)","90f551ec":"offerBtcFromApp(address,uint256)","90f5c2ca":"canRef(address,address,uint256)","90f5f99d":"DHUBTest()","90f6b2b3":"getInvestorByValue(address,address)","90f81702":"BaseToken()","90f8c118":"hyip()","90fa17bb":"constructor()","90fa337d":"storeBlockWithFeeAndRecipient(bytes,int256,int256)","90fa775e":"_calculateInflationBonus(uint256,uint256,uint256)","90fa8910":"GetBasePrice(uint256,uint256)","90faa3e9":"setPrice(string,uint64,uint8)","90fab7ce":"just50Send()","90fad1e6":"remove_from_whitelist(address)","90faeb62":"DolarToday()","90fbf84e":"trustedFeeWindowTransfer(address,address,uint256)","90fc2a32":"CaptainGameConfig()","90fcf551":"getTRIOs()","90fd4300":"releaseState4()","90fd53ec":"farmTile(uint8,uint8,int8)","90fd5452":"blockState()","90fd67fc":"setDepositAddressVerify()","90fdf36b":"_vouchersToWei(uint256)","90fe5609":"startVoting(uint256,uint256)","91006745":"isAdmin(address,address)","91014fcc":"_updateWhitelist(address,uint8)","9102bcc8":"Teacher(address)","91030cb6":"lockPercent()","9103321d":"TOTAL_TOKENS_AVAILABLE()","91039c83":"updateEndTimeManually(uint256,uint256)","9103cfb6":"TheophanesToken()","9103e368":"winnerTimestamp()","9104b6f4":"getPendingWalletFeeData()","9104c316":"internalBurn(uint8,address,uint256)","9104dbd2":"_createCompany(string,address,uint256)","91051e06":"poolWithdraw()","910545ff":"TOKEN_PRESALE()","91057f53":"ERC20TokenCPN()","91060168":"fetchString(address,bytes4,bytes32)","9106d7ba":"totalSold()","910887bc":"setPublisherCut(address,uint256)","91093ba4":"setUintF1F2(uint256,uint256)","910cbda6":"buyTokensFor(address,address)","910d52ea":"getPaperFee()","910eba1d":"buyBonds(address)","910f3b52":"bidFromEtherScrolls(uint256,address)","910f5b81":"preIcoStartTime()","91104f82":"bountyTokenAmount()","911058df":"setMockedNow(uint256)","91125fb7":"thirdWeekBonus()","91127c1f":"_clearApproval(address,uint256)","91136d3f":"Settlement(uint8,bool)","911402f1":"masterServer()","9114557e":"vestedBalance(address)","911463d2":"setPOOL_edit_27(string)","911475cc":"incNonce()","91147dfa":"restoreContract()","91149e85":"resetOfferingStatus()","91152c5c":"airdropTokens()","911550f4":"getBetterOffer(uint256)","9115abf4":"getDetails(uint256,address)","9115ca43":"getPayerString()","9115e9ee":"ExtractEtherLeftOnContract(address)","911644fa":"maxIceDragonsCount()","9116ee03":"testHasCorrectPriceForStages()","91174790":"addEvidence(bytes32,uint256,bytes32)","91174cb6":"roundnum()","91176f39":"presaleUnlimitedStartBlock()","91177db4":"batchTransferFrom(uint256[],address,address)","9117c6df":"balanceOfReadable(address)","9117e32e":"expireOf(address)","91184159":"getOptionHash(address[3],uint256[3],uint256[2],bool)","9118575a":"setTokenSale(address,address,uint256)","91194aab":"tixFoundersDeposit()","9119e5fb":"submitTransactionWithSignatures(address,uint256,bytes,uint256,uint8[],bytes32[])","911a40c9":"ARPToken()","911a56bc":"totalSupplyWithZeroAddress()","911a739e":"winnerLimit()","911a9ac0":"preSeasonGame()","911adc1a":"pay(address,uint256,bytes)","911b5f4e":"sub(uint64,uint64)","911cec25":"getMountTokenIds(address,uint256,address)","911d0189":"minJackpot()","911d731a":"DWBTToken(uint256,uint256,uint256,uint256)","911d84cb":"updatePlayerRecommend(address,address)","911eb255":"approvePromise(address)","911ef2e9":"Voted(uint256,bool,address,uint256)","911ef508":"pausedTimestamp()","911fa5c9":"totalTokenSellAmount()","911ff22b":"EthereumRateUpdated(uint256,uint256)","911ffbdb":"lastRewards(address)","91214841":"usdraised()","912221d5":"tokenCost()","9122acd8":"KUYCToken()","912308dc":"withdrawToInvestor()","91240f44":"getReferee(address)","9124f1cf":"getOrderHash()","912525f4":"WideEnergy()","91256ed0":"freezeMustCalculate(uint256)","9125ecf1":"bountyVaultAddr()","9127bc2a":"FOUNDERS_TOKENS_LOCK_PERIOD()","9127d3d7":"EXPECTED_TOTAL_SUPPLY()","9127da7e":"RRcoinToken()","912875bc":"ICO_PRICE6()","91287962":"artworkRegister(address)","9128bbc6":"Tanaka()","91294ed1":"minContributionWei()","912bcb79":"betGame(uint256,uint8)","912c3fbf":"EYToken()","912c8b75":"claimGold(uint64,uint64,uint64,uint64)","912d6e28":"approveTokens(address,address,uint256)","912de8de":"fixBalance()","912eb6d9":"amountOfUBOsold()","912ee23d":"SaleStarted()","912f6ba4":"getAtheniansOnTheBattlefield(address)","912f6c71":"IssueIQTToken()","912f952f":"Ulti()","912ff8f6":"getServerState(uint256)","91301852":"CyberClassicToken()","91304f1f":"isKYCRequired()","913093aa":"initialSupply(address)","913158f7":"getIsland(uint256)","91318874":"setRates(uint32,uint32)","9131d803":"testSetFrontend()","91324514":"InfiCoin()","91324bea":"EscrowContract(address,address,uint256)","91329493":"charityCount()","9132b81d":"VotingStarted(address,uint256,uint256)","9132c26c":"calcSELLoffer(uint256)","9132dfca":"CATA()","913579b6":"updateWhiteListImplementation(bool)","913594ae":"JETUSA()","9135ac08":"addInInitialSupply(uint256)","91361f64":"getRankPriceCandy(uint256)","913683fc":"IODTOKEN()","9136d392":"KothWin(uint256,uint256,address,uint256,uint256,uint256,uint256,uint256)","91373711":"stopFlagOff()","9137471b":"setGoldBought(uint256)","91375e8d":"getGameEndTime()","91378400":"POSAddress()","91378456":"publicTGEEndBlockTimeStamp()","9137b6e6":"addAction(uint256,string,string,uint256,bytes32,uint256)","9137c1a7":"setStorage(address)","9137d10a":"refreshDirectSellParameter(uint256)","9137f9b1":"viewSecondLotOfClauses()","9138f38b":"claimTokensERC20(address,address,address,uint256,uint256,uint8,bytes32,bytes32)","913918a6":"changeSaleInfo(uint256,uint256,uint256,uint8,uint256)","913967d0":"getNextFeePercentage()","91398f25":"getTransferringFor(address)","913b1ecc":"setGroupWinner(uint256,uint256[])","913b2958":"appealRuling(uint256,uint256)","913cc77f":"setEthValueAmount(uint256)","913cf5ca":"eos()","913d23e2":"distributeMnyAfterSwap(address,uint256)","913d30b0":"LIDToken()","913d6906":"VotingToken(string,string,uint256,string,string,string,address,address,address,address)","913dd846":"PRESOLD_ADDRESS()","913e0887":"FundingRulesSet(address,uint256,uint256,uint256)","913e77ad":"collector()","913f424c":"_ecMul(uint256,uint256,uint256,uint256)","913f4766":"Refound(address,uint256)","913fb60b":"colorLeaderboard()","913fbd04":"aidPoolWallet()","913fc67a":"bidoohAdminAddress()","91404af8":"updateTokenRatio(uint256,uint256)","91407479":"Eth2USD_power18(uint256)","9140a101":"checkRegistrar()","9140a499":"updatePublicCheck()","9140f6ee":"releaseRestPreSaleTokens()","9140f968":"newInvestment()","91410c97":"stake_reward_rate()","91410e41":"getMyRecordCount(address)","91415ce9":"TRANSFERMANAGER_KEY()","9141bfae":"LogReveal(uint256,address,uint256)","9141d6f9":"unset(bytes32)","91421cf6":"ECRCTOKEN()","91423ef2":"getClientLastSupplyID(address)","91432155":"setBaseInterest(uint256)","91436eee":"issueLeftToken()","91441589":"run(bytes,uint8[4],uint8[2][4])","91449def":"_owns(address,uint256,bool)","9144f267":"ALBtoken()","91458ee8":"GameCreated(bytes32,string,string,uint16,uint64)","9145a7fd":"CrowdsaleEnded(uint256)","9147dd1b":"pricePresale()","9148018a":"getChatMessageAtIndex(uint256)","914810a3":"claimRepository()","91481123":"contestOverTime()","9148148b":"migrate_game_balance()","9148b237":"takeAllOrRevert(address[3][],uint256[3][],uint256[],uint8[],bytes32[],bytes32[],bytes4)","91492956":"getPrices(uint256)","914946aa":"getSignerAddresses()","914980d4":"setBonus(address,uint256,bool)","91499e2d":"disableService(uint256)","914a1e76":"getWinRate(address)","914a5b24":"popPlayer()","914ae352":"getCurrentNumberOfUsedServiceTokenWei()","914b7fd2":"calculateSellGoldFee(uint256,uint256)","914bdef8":"_transferWithData(address,address,address,uint256,bytes,bytes,bool)","914d581d":"fiatRaisedConvertedToWei()","914dde1c":"isProposed(address)","914de6d6":"MarketingAllocation(address,uint256)","914e1ee1":"resetSearchStartIndex()","914f716d":"BalanceHolder(address)","914ff398":"batchFill(address[5][],uint256[6][],uint256[],bool,uint8[],bytes32[],bytes32[])","915009a7":"getPaperFromMeta(uint256,uint256)","915015c5":"setColorBlack()","91508264":"getNextPrice(uint256,uint256)","9151c7e4":"GrandFraternityChain(uint256,string,string)","9152486c":"currentInitPart()","9152f0b2":"getLastRequestId(uint256)","9152f764":"WorldCup(string,string,uint256,uint256,string,uint256)","9153d09a":"stringFloatToUnsigned(string)","915489f6":"futureTokens()","91548ccf":"ticket_address_added(address)","91555559":"getNumWeiAddressMayInvest(address)","9155b01a":"setSelfClaim(bytes32,bytes32)","9155cc2c":"HitToken(string,string,uint8,uint256,uint8,uint8,address,address)","9156a003":"totalTokensIssued()","9156fb60":"addressERC20Token()","9157e556":"isQualitifiedAddress(address)","915a405f":"updateTransferMinimumFee(address,uint8)","915b5bfc":"NeoWorldCash()","915cfeac":"getTransferAgentStatus(address,bytes32,address)","915d44f6":"setRFFSessionsAdd(address)","915db230":"marketBuyOrdersNoThrow(uint256,bytes[])","915e1044":"strFunc(string)","915e5d44":"apply_compensation()","915ed87e":"LiveStarsTokenPresale(uint256,address,address,uint256,uint256,uint256,uint256,uint256)","915f3209":"changeMaximumValueDuringGuaranteedPeriod(uint256)","9160342e":"Sale(address)","91603691":"HDTTokenTest()","91607530":"RaisedByPartner(address,uint256,uint256,uint256)","9160aabc":"getPendingBetCount()","91613e4b":"FTC()","9161f789":"getRoundFunds()","9162a905":"GDCNumber5()","9162ab43":"MiningStolenPayout(address,address,uint256,uint256)","9163f897":"block6()","91647938":"saveMatchJoinAddr(uint256,address)","91656aa9":"changelp11(address)","916576c8":"fundForSale()","91658639":"ChampionSimple(uint256,uint256)","916635c6":"log_mint(address,uint256)","91667aef":"getTokensPurchased()","9166a449":"totalTokenSaleCap()","9166b10a":"IcoAbandoned(string)","9166cba4":"sai()","9167c5ad":"removeClientToken(uint256)","91684f8d":"MMR(address)","916891aa":"allocateReserveAndFounderTokens()","916a2b29":"_removeHorseFromStud(uint256)","916a476e":"save3(address,bytes,string)","916a4b57":"addPet(uint256,uint256,uint256,uint256,uint256,uint256)","916b5cfa":"TIMEstartICO()","916be4fe":"HELP4HUMANITY()","916c99fd":"getCampaignEndPointById(bytes32)","916dbc17":"getPlayersFromCompetition(string,uint8)","916dbc9e":"Coin786token18()","916df92a":"Round()","916dfea2":"getPersonalBonus(address)","916e5901":"teamTokensLock()","916e93f8":"ecrecoverFromVRS(bytes32,uint8,bytes32,bytes32)","916eb6eb":"SetRoundResult(uint8,uint8,uint8,uint8,uint8)","916f5de1":"_emitJobOfferAccepted(uint256,address)","916f7c23":"setSelled(uint256,bool)","91702ddc":"highCompose(uint256,uint256,uint256)","91704e1e":"getBid(bytes32)","917105d4":"_takeOwnershipOfToken(uint256)","917116f2":"NewSellPrice(uint256)","917180c7":"setColdWallet1SplitPercentage(uint256)","91735092":"assignToEarlyBirds(address[],uint256)","9173a610":"createGame(string,uint256,bytes32[])","917418c1":"setMinRoundSize(uint256)","917569a8":"weiPresaleMax()","917603e5":"getNumberOfMyGamesCompleted(address)","917640b5":"getSELabels()","91778b9c":"changePrice(uint8,uint256)","9178732f":"warriorsOnTheBattlefield(address)","917ada14":"testControlCreateShortIdAlreadyExists()","917b4f8b":"TQXToken()","917d009e":"getAuctionPrice(uint256)","917d2be2":"wolkGenesis(uint256,uint256,address)","917ec8e2":"removeApp(uint32,string)","917f635c":"wct()","917fcc5d":"addJobProposal(uint256,string,uint256)","917fd839":"buyGEN0Chibi(string,string,uint8,uint256)","91814577":"renameStoreTo(bytes32)","91816981":"getProfitPercentForData(uint256)","91828a2e":"extra_bonus_duration()","918307fd":"getRemainOfStage(address,uint256)","918359c6":"needsBirth()","91837535":"getgateway()","9183d360":"CreateINDI(address,uint256)","9183fd01":"getSeedPrice()","91854684":"pollBallot(uint256,uint256)","91858734":"takeControl()","918657cb":"token_information()","91872a91":"isEmpty(string,string)","9187300e":"getTokensForSale(bool)","91876e57":"withdrawAuctionBalances()","91878995":"MYCOIN()","9188451b":"transferUserGrowthPoolTokens(address,uint256)","91885e1d":"nextWeaponID()","918898a5":"frozenRules(address,uint256)","9188d312":"getCard(uint256)","9189a59e":"sweeper()","9189edd2":"Zinoder()","9189fec1":"guess(uint256)","918a15cf":"toEthSignedMessageHash(bytes32)","918a2e0c":"AccessoryCollection(uint256)","918b8326":"startSto()","918c00c6":"LogCommit(uint256,address,bytes32)","918c783a":"hasPurchased()","918ca01d":"BurnConfirmed(uint256,address,uint256)","918d407d":"acceptOffer(uint256,address)","918e2c3d":"GetUserExtraData3(address)","918f1bb5":"ProjectKudos()","918f49ec":"NDCOIN()","918f5f74":"setMinBonusTrigger(uint256)","918f644e":"getScriptsCount()","918f8674":"DENOMINATOR()","91914b30":"setTokenUrl(address,string)","91915ef8":"setCapacity(uint256)","91916a5e":"Test(uint256,uint256)","9191b520":"PlatinumToken(uint256,string,uint8,string)","919203a0":"moveTokensFromStockToSale(uint256)","91923d7f":"delSuperInvestor(address)","9192f48e":"setLocked(address)","9193b2e3":"request(address,uint256,uint256,address)","9193ba0b":"createForwarder(address)","91959fe3":"getCalFactor(uint32)","91962739":"setWhiteListOwner(address)","9196bdd5":"ggc(address)","9196e481":"getAllSteps()","91970cba":"saftInvestorAllocation()","919747fb":"depositFunds(address)","91975e22":"ManagerDisabledEvent(address)","91977c56":"setDTR(address)","919823df":"getHashExists(string)","919840ad":"check()","91988783":"IMDEXdepositToken(address,uint256)","9198e08c":"Linfinity()","919987bc":"rewardPool_()","9199a8bb":"dnnHoldingMultisig()","919a41dd":"endFight(uint256,uint256)","919aa4fa":"ZIGICOIN()","919acf1e":"getperiodlasttime(address,address)","919b30cf":"FTXToken()","919baade":"ProposalsEntity()","919be880":"createEscrow(bytes16,address,address,uint256)","919beeb1":"calculateRate()","919bf699":"EggsPurchased(address,uint256,uint32)","919c9d4a":"getAfterIcoPeriod(uint256)","919ca82d":"EtherprisesLLC()","919d3401":"MAXIMUM_ICO_TOKENS()","919d8bb2":"TokenTrader(address,address,address,uint256,uint256,uint256,uint256,bool,bool)","919e144c":"predict(uint16,uint8)","919e1967":"Ubiq()","919e7f42":"supportNewMoon(address)","919edc7c":"getChainySender(string)","919f31c2":"Ankr()","919f8cfc":"makerDepositEther()","919f90ca":"sendCommissionToOwner(uint256)","91a01414":"getPreviousBlock(uint256,uint256)","91a0ac6a":"equity()","91a0ba00":"icoRound1()","91a1896e":"setReserveForFoundersSecond(address)","91a1f16a":"getMaxWin()","91a266ac":"totalEthCharityRecieved()","91a34006":"getInitializeOutcomeValue()","91a3cec0":"receiveEtherFormOwner()","91a49300":"purchaseEnable()","91a553df":"developer_add_cost_of_transfers(string)","91a57544":"affiliatePercentage()","91a5b0c7":"bestSum(uint8[])","91a67e1e":"tokenFrozenUntilBlock()","91a73892":"getOrderStateHelper(uint256,uint256)","91a73a27":"cleanSellShareOutput()","91a7aa37":"Chain2()","91a852f6":"changeTicketFee(uint256)","91a89712":"link(address)","91a90014":"_updateTokenRates(uint256)","91aa94f1":"setPresidenteDeMesaVerify(bytes32,uint256,uint256,bytes32)","91aabeb5":"checkArea(uint32[],address)","91aac477":"addNacToNetf(uint256)","91aadff6":"OPEN_SALE_STAKE()","91aaf2e9":"presaleTokenAmount(address)","91ab0ca0":"authorisedContract()","91ac2c3f":"testCreateElection()","91ac46f5":"centRaised()","91ac7e65":"indexOf(uint256)","91ac96a9":"pendingWinners(uint256)","91acd8fb":"DEJToken()","91ad1ada":"VernamPrivatePreSale()","91ad27b4":"getInterval()","91ad48a1":"DataToSetting(uint8,bool,uint8)","91af8d14":"recalculateTopScores(uint256,uint256,uint256)","91afc432":"setUpdaterAddress(address)","91b1a02a":"SwissCryptoExchange(address,address,address,uint256,uint256,uint256)","91b22ebf":"getTokenAmountPerHeritor(address,address)","91b23419":"developerFund()","91b2413f":"HplusToken()","91b25b35":"revokeAndSetNewMember(uint8,bytes32,address)","91b2b30e":"LogI(uint256)","91b43d13":"fundingEndBlock()","91b4a0e7":"Difficulty()","91b4ded9":"lastPauseTime()","91b56822":"gameTick(uint256)","91b584f3":"_insertValidator(address,uint256)","91b6a086":"WithdrawToInvestor(address,uint256)","91b7ad06":"calculateTokens(address)","91b7d3e0":"redeemSurplusERC20(address)","91b7f5ed":"setPrice(uint256)","91b8a49a":"lastDonor()","91b97997":"endFirstWeekICO()","91b9b640":"getDApp(string)","91ba5d6a":"preICOMany(address[],uint256[])","91baabba":"CCLToken()","91bb2534":"impl_price()","91bb4816":"m_Database()","91bbb21a":"trialDeadline()","91bbb87b":"GetPurchaseInfo()","91bbbe4d":"_payoutTaxes(uint256)","91bbd6f6":"VeiagToken(address)","91bbdcc7":"convert()","91bc85a9":"SetTrustee(address)","91bc8a45":"bonusAdd()","91bdc458":"blockNewSpinnerPurchase(uint256)","91bdf9da":"isTen(uint8)","91be0b31":"setPriceChanger(uint256)","91be2f8d":"changeCCCoinAddress(address)","91be90c8":"_dust(address)","91bf9c50":"test_CampaignRulesFail()","91bfeb98":"CrystiumToken()","91c03391":"TraToken()","91c05b0b":"distribute(uint256)","91c11cae":"disputeTransaction(uint256,uint256)","91c1e2c1":"burnedBalanceOf(address)","91c20375":"setArtEsc(string,string)","91c23928":"divSafe(uint256,uint256)","91c259ea":"transferby(address,uint256)","91c27b2a":"setTransTimes(uint32)","91c3352e":"test_invalidEmptyEqVal1()","91c3e5ee":"rb(address)","91c3e7f8":"showlvzhou(address)","91c4529f":"isBlacklistSpender(address)","91c49026":"rebalanceEnclaves(address,uint256)","91c4c78f":"fund(address,uint160)","91c62a5a":"LogBounty(address,uint128,string)","91c71e2b":"disableLock(bool)","91c72d88":"holdSubscriptionOffer(uint256)","91c79a9a":"CON0217()","91c827a0":"AddOwnerAddress(address,address)","91c873cb":"getAdminContract(address,uint256)","91c8e336":"exchangeSupply()","91cadaf6":"evolvePrice()","91cb4316":"endOf24H()","91cb98af":"getPendingAmount(uint256)","91cca3db":"dev()","91cd242d":"setMeta(bytes32,bytes32,bytes32)","91cd450c":"AlienFarm()","91cd7e9a":"ChannelDeleted(address,address,address)","91cdecab":"TOTAL_DINOTOKEN_SUPPLY()","91ce8ca9":"IQTCrowdsale()","91ce8e04":"setTwo(uint256)","91cee1fd":"baseStats(uint256,uint256)","91cef6a8":"payAffiliate()","91cf2164":"transferFunction(address,address,uint256)","91cf7aca":"upgradeFrom(address,address)","91cfb7b6":"ceilings(uint256)","91d0b3fd":"_mine(address,uint256)","91d0dd17":"accrueCouponsPerXTokenETH()","91d15735":"left11(uint256)","91d15a91":"weiRaisedIco()","91d1addb":"plutocracylvlAchieved(string,string)","91d23a1a":"lastRewards()","91d2939d":"per(uint256,uint256)","91d4357b":"myBonus()","91d43b23":"right76(uint256)","91d462d9":"hashUnderlyingPrices(uint32,int256[])","91d558b7":"startCrowdsaleY0(address)","91d55c41":"RuiXueToken()","91d5d7d6":"out1Done()","91d6212a":"address5a()","91d625e5":"setupCore(string,string,address,uint256)","91d6367b":"reserveForTeam(address,uint256,uint256)","91d739ea":"updateRegistratorStatus(address,bool)","91d76bbb":"getTotalMigrated()","91d781ba":"kkTestICO1()","91d80948":"_checkAndCallTransfer(address,address,uint256,bytes)","91d8b14e":"BuyTickets()","91d91df3":"FesBerto()","91d96541":"refundedSat(address)","91da7aa8":"transferAndCall(address,uint256,uint256[])","91da9178":"WALLET_LB_ADMIN()","91dbd4c3":"payTournamentWinner(uint256)","91dc077b":"submitApplication(string,string,string,string,string,string,string,string)","91dc11fe":"setClaimParameters(uint256,uint256)","91dc1b1d":"mintCUSD(address,uint256)","91dc6d36":"pauseForDividend()","91dc956d":"addLog(string)","91ddadf4":"clock()","91de4f88":"claimCoreTeamsTokens(address)","91de5474":"getPurchaserCount()","91ded8fa":"getTokenByAddress(address)","91df0c08":"addReserve()","91df9562":"BSPToken()","91dfa960":"report(uint16,uint16)","91dfe428":"addFees(uint256,uint256)","91e05922":"contractICO()","91e078bb":"startAuction(uint256,uint256,uint256)","91e0a5a0":"checkHolderStep(address)","91e0b6c0":"ProofPublicVote()","91e0e39c":"resetDragonBalance(address,uint256)","91e1397d":"rcnFund()","91e192b7":"MintedToken(address,address,uint256)","91e1cc5a":"freezeAccount(address,uint256,uint256,uint256,uint256,uint256)","91e22c90":"interfacesSupported(address,bytes4[])","91e23a4d":"updateInterCryptonode(bytes32)","91e2f2c5":"HoQuToken(uint256)","91e30ec3":"buyDataRecord(uint256,uint256,uint256,uint256,uint256,uint256)","91e3387b":"numBrews()","91e50314":"isActivityCore()","91e52b91":"buySecond()","91e569c3":"recordBook(address)","91e59bcf":"testSetName()","91e6d028":"getFIRST_STEP_LIMIT()","91e7137d":"price2ndWeek(uint256)","91e732b6":"setInvestRestriction(uint256,uint8,bool)","91e79c72":"hodlerTotalValue()","91e7f7bc":"claimVotingRight()","91e8609f":"getParentId(bytes32,uint256)","91e863ca":"setBigPromoInterval(uint128)","91e88106":"abiLength(address[])","91e8d3dc":"testBitOrFailIndexOOB()","91e8fc34":"createPipe(uint256,uint256,bytes32)","91e9f106":"historyWinner(uint256)","91ea294e":"LogSetWithdrawer(address)","91ea4d07":"snatchedOn()","91ea59eb":"buyGuaranteed(address)","91ea8a05":"add(bytes32,bytes32,uint256)","91eb97ea":"pharmatrix(uint256)","91ebc861":"noFeeTransfer(address,uint256)","91ec1623":"_shutDown()","91ec845e":"isAtMost(int256,int256,string)","91ec910e":"OwnableImpl()","91ecda3c":"Menu10(address)","91ed6851":"createPromoCompany(address,string,uint256)","91ede45f":"Deposited(address,uint256,uint256,uint256)","91ee7bbf":"dispute(bool)","91ef14b4":"setApprove(address,address,uint256)","91f02379":"hundredKInvestor()","91f02f9c":"DelayChanged(uint256)","91f11a9c":"lastWinNumber()","91f1cf05":"crafting()","91f1f310":"totalOffers(uint256)","91f2700a":"drop(address)","91f2ebb8":"heir()","91f34dbd":"transfer(uint256,address[],uint256[],uint256[3],bytes,bytes,bytes)","91f39f10":"getContactAddressByIndex(uint256)","91f3c4a2":"GSY(uint256,string,string)","91f4b7ff":"soulBookPage(uint256)","91f5637a":"frozenBalanceCount()","91f5c3a8":"donateAndCreateGiver(address,uint64)","91f5f3c9":"MAX_TOKEN_GRANTEES()","91f6c7e6":"getCurrentICOPhase()","91f72ebb":"is128Bit(uint256)","91f7cfb9":"availableAmount()","91f85480":"updateValidOrg(address,address,bool)","91f90157":"highestBidder()","91f9bb85":"setAdvisorVault(address)","91f9f4a2":"getRateIncludingBonus()","91fa0555":"getParentAddress()","91fa196d":"getDesignatedReportReceivedTime()","91fa2df4":"addPaid(bytes32,uint256)","91fb4583":"reachedMajorityForTeam(uint256)","91fb9437":"isStoring()","91fc437e":"nameTaken(string)","91fc7c70":"TreeCoin()","91fd1c7d":"getSenderByHash(string)","91fdbb55":"releaseUrl(uint8)","91fdf6b1":"electActiveTranscoder(uint256,bytes32,uint256)","91fe5a64":"_totalBurnedTokens()","91fe7bab":"mintTokensWithApproval(address,uint256,address)","91fea350":"checkFreezeValue(uint256)","91fed1c0":"RaffleResult(uint256,uint256,address,address,address,uint256,bytes32)","91feea93":"withdrawBoth(address,uint256,uint256)","91ff6baf":"requestsFunded()","92008bfa":"setResourcesSecondaryManager(address)","9201ac94":"getCON()","9201de55":"bytes32ToString(bytes32)","92031600":"setBonuses(uint256[],uint256[],uint256[])","92039b87":"balanceVested(address)","9203cb9e":"forwardWin(address,address,bytes,bytes32,bytes)","9204764f":"setHookOperator(address)","9204b2bd":"maxVeriAmount()","9204c013":"QKCCoin()","9205ab3c":"sendRefund()","9205dce7":"Usdcoins()","9205ec4d":"refundSponsorship(address,uint256,uint256)","9205fbc2":"testAuthorityAuth()","92066346":"setCastleLootDistributionThreshold(uint256)","92069ebd":"_getMarketPrices()","920775d4":"subVirus(address,uint256)","92093dd6":"getLastResult()","92093e7d":"addUserRefBalance(address)","92099fdb":"refundableEthBalanceOf(address)","9209b3c0":"getCrtDetails(bytes)","9209eebe":"SentToContractor(uint256,uint256,address,uint256)","920b0280":"noIcoPeriod()","920b3a7e":"getFundersCount()","920bb680":"ledgerWallet()","920c94df":"BuyTicketForOther(address,uint8,uint8,uint8)","920dce19":"getAngelCardSeries(uint8)","920dd47b":"first_partner_address()","920dfe52":"EFARMCoin()","920e3c96":"setUserStatus(address,uint8)","920e4da9":"created(string,string,address,uint256)","920ffa26":"ownerOf(string)","9211448f":"finalizeClaim(bytes32,string)","921193cf":"changelp3(address)","921200ed":"setBonusTokenRateLevelFour(uint256)","9212051c":"numJobs()","921233b9":"addBuyRequest(bytes32,address)","92123470":"mintTo()","921237a4":"createPlayer(address,address)","92127126":"canTransferByPartition(bytes32,address,uint256,bytes)","9212d0c1":"closeBetsIfEventNotSuccess(bytes16,bytes16,uint256,uint256)","92140775":"prefixedTest(uint8,bytes32,bytes32,address,address)","92140bb9":"getTransactionByTransactionAndEntityId(address,uint256)","921456e7":"modifierEx()","921496a9":"adminWithdrawTokens(uint256)","9214b644":"married()","9214e527":"Crowdsale(uint32,uint32,uint256,address)","9215b58e":"GoldMineChain(uint256,string,uint8,string)","9216728a":"cooWallet()","9216b7ad":"winTokenReward()","9216cf13":"licenseSalesContractAddress()","921710e9":"getShareRewardPercent()","9217500c":"setFightAuctionAddress(address,address)","9217c438":"getOracleAddress(uint256)","921828ac":"commitProposal(string)","921b004b":"depositFunds(address,uint256)","921b15ae":"LaborHourToken(address,int256,string,uint256)","921b2d64":"mintTokens(int256,address,uint256)","921b45f7":"checkAndCloseDeposit(uint256)","921bd6f0":"upgradeTimestamp()","921d72ed":"CreatedAccessory(uint64)","921dec21":"registerNameXID(string,uint256,bool)","921e1537":"dailyHash()","921e7ba6":"withdrawCoins(string,address)","921f5dec":"getBlockVoter(uint256,address)","921f98bb":"resolveFailVote()","92202126":"ETU()","92207bd8":"getMyCarsIdxCount(uint256)","9220d426":"_nowDateTime()","9220d5fa":"DiminishToken(address,address)","92223e7a":"BlueRedTokenERC20(uint256,string,string)","9223de05":"contributionAmounts(address)","922427de":"canSort()","922497fc":"regularTokenMaxSales()","92250c6a":"localBuy(uint256,address,address)","922587ff":"addMintable(address)","9226084e":"tier_cap_1()","922775e3":"createNewTrade(address,uint256,uint256)","92277933":"abc()","9227bed6":"bucketAmount()","922856da":"getPicksForUser(address)","9228e90d":"developer_BSR()","9229c504":"new_mainPlayer(address)","9229e3cd":"submitProof(bytes32,bytes32[],uint256)","9229f3c1":"KVLToken()","922a8425":"paymode()","922b01ca":"walkTokenLots(address,address,uint256,uint256,bool,bool,bool)","922b041d":"_getStatsSumHours(uint256)","922ba128":"calculateCurrDynamicPrice()","922bedf7":"mintNFTsNotForSale(uint256[],bytes32[])","922c64ef":"batchDistributeTokens(address[],uint256[])","922da521":"RocketPoolPresale(address)","922dd59a":"icapTransfer(bytes,address,bytes,uint256)","922dd7d9":"generateKey()","922f17ce":"emptyEther()","922f7124":"changeStrategyAddress(address)","922fc84b":"taskProcessedNoCosting(uint256)","923020d9":"whitelistMainSaleAddress(address,bool)","9231e0f9":"setPresidenteDeMesaVerify(bytes32,uint256,bytes32)","923211f5":"showLiveDividends()","9232494e":"BANCOR_NETWORK()","9232fdb5":"addUserExp(address,uint256)","9233c030":"_reward(uint256)","9233c1d6":"battle(uint256[],uint256)","9233d561":"setUnpaidPercentage(bytes32,uint8)","92346ed7":"test1(bytes)","92348055":"sellSoul(string,uint256)","9234c1fd":"MAX_REVEAL_DURATION_IN_SECONDS()","92363a42":"createProduct(uint256,uint256,uint256,uint256,uint256)","923689e4":"startRecovery()","92369bd5":"calculateAndDecreasePhaseSupply(uint256)","9237a125":"seedDeposit()","9237e074":"manager(uint256,address,string,uint256,bool)","9237e61b":"InvestmentSucceeded(uint256)","9239520b":"setQuorumPercent(uint8)","923a1abb":"SBCE(uint256)","923a2e61":"JinGangCoin()","923a367f":"PBToken(address,address)","923a4227":"CiceroToken()","923a69ae":"getCardRevenue(uint8)","923b3e75":"publishContractTemplate(uint256,string,address,string,uint256,uint256,uint256,uint256,uint256,uint256,address)","923b9480":"getDatasCount()","923b9bae":"EventCreatePet(address,uint256)","923ce65f":"draftNewCard()","923d566d":"buyKey(uint256,uint256)","923db49b":"informOffChainBuy(address[],bytes32[])","923de8e2":"checkTransferAndCallDelegated(address,address,uint256,bytes,uint256,uint256,bytes)","923e1b84":"sendToEtheroll(uint256,uint256)","923e2645":"DonationGuestbook()","923f098e":"CLNRefunded(address,address,uint256)","923f1788":"convertChest(uint256)","923f8455":"BACE_ETH()","923f9bae":"testLedgerPayback()","923fa0fe":"ChildContract(uint8,address,bytes32)","92403b35":"tier2Count()","9240551b":"changeCurrentEtherRateInCents(uint256)","9240f699":"landmarkSize()","92414146":"preIcoWasSuccessful()","92414f92":"OpenDate(uint256)","92418cf6":"withdrawKncFee(uint256)","924320b5":"isMajorityShareholder(address)","9243e088":"setEnforceRevisions(bytes20)","9244c21e":"preicoUSD()","9244f496":"addAddressToWhiteList(address)","92450ac9":"setDataColla_AA_01(string,string)","9245290d":"changeFeeCollector(address)","9246177b":"changeTicketOwner(address)","9246ab77":"addWhitelist(address[],address)","9246e531":"getSignature(string,int256)","924720bd":"pizzaPrice()","9247ff59":"getAccountData(uint256)","9248019e":"addMonsterIdMapping(address,uint64)","924806a0":"returnToken(address)","9248d4ec":"getEthNeeded(uint256)","92491f21":"subTourFreezingTime()","9249993a":"BANCOR_GAS_PRICE_LIMIT()","9249bc75":"set_sale_open()","9249d865":"getAllLawyers()","924b1235":"price1stWeek(uint256)","924b39ae":"refundToWallet(address)","924b573a":"lastWagerTimeoutTimestamp()","924bb1d0":"updateETHPrice(uint256)","924c28c1":"ContractInterface(address,address,address)","924ca55e":"LindaPresale(uint256,uint256,uint256,uint256,uint256,address,address)","924ca61a":"coupon(address,address,uint256)","924dd50a":"startSelling(uint8,uint256,uint256,uint128)","924dedca":"getEpisodeDataCommand(uint256,uint256,uint256)","924e63f6":"setDisputeResolver(address)","924f6be0":"CONTEST_INTERVAL()","924fdaf6":"drawPorsche()","925012f6":"agingTimes(uint256)","9250640d":"INIT_TOKENS()","925074ca":"getAllPlots()","92509c16":"lock_by_manager()","9250b080":"picops_user()","925176d6":"sellRate(uint256,uint256,uint256)","92524725":"mintToMany(address[],uint256[])","9252e819":"IGCoin()","92535862":"custodyCounter()","92536070":"RoomManager()","925382c0":"setMigrated()","92541925":"skynacoin()","92549366":"remainingCapInEth()","9254c2a8":"changeTotalRemaining(uint256)","92550bdd":"applyMigrate(uint256)","9256759c":"addressFundAirdrop()","9256c71d":"getPriceFeedsByOwner(address)","92573a0c":"token_callg()","925753d3":"TokenGenerationDisabled()","92579f34":"Aracle()","92584d80":"finalize(bytes32)","92588071":"saveAddress()","9258c8f8":"Applicationcoin()","9258d5a3":"isIcoRunning()","925aa2ad":"purchaseWithEth()","925ac216":"isICOOpen()","925ad1e7":"collectAllForce(address[],address)","925b83a7":"getCobeFriend(uint256)","925cbdd1":"createCost(uint256)","925cd80d":"contract_start()","925d3ec8":"dDowngradeToBasic(bytes32)","925f2573":"batchTransferDirectoryToken(uint256,address[],uint256[])","925f7239":"veztUserRegistered(address)","9260587e":"_removeTokenFrom(address,uint256)","92609315":"addAuctionManager(address)","9260e726":"giveReward(uint256)","9260faf8":"issueForEuro(uint256)","9262bba9":"titsTokenAuthor()","9262d759":"getAddress(uint256,uint256)","9263b559":"ethReceivedMain()","9263e371":"mint(bytes32,string,string,string,string,string)","9264a169":"tranferFrom(address,address,uint256)","9264ee57":"valuePerMicroKey()","92656b6d":"calculateHash(address[],uint256[])","9265996c":"getEventResult(uint32)","92664190":"PriceUpdate(uint256,uint256)","92670dc8":"currentBonus(uint256)","9267a36d":"founderVestingContract()","9267b291":"getGameStarted()","9267daba":"depositToGateway(uint256)","9268037a":"FortressToken()","92682b5f":"PauseOn(uint256)","9268e2d6":"setCLOUDForGas(uint256)","92698814":"reserved(bytes32)","926994e6":"testFailSoftLimit()","9269c0a7":"setABalances(address[],uint256[])","9269e464":"bountyTokenAllocation()","926a2456":"cancelIndexedSale()","926a4765":"getRoundStart()","926a9af0":"distributeForFoundersAndTeam()","926aa0a8":"sendEthTo(address)","926b33c6":"playSpecificDoubles(uint256,uint256)","926baab2":"proofImpl()","926bd180":"isGameVerified(uint256)","926c196a":"depositAndTransfer(address,uint256,bytes)","926d212e":"createGenerator(uint256)","926dfd5e":"becomeYouTubemaster()","926f0c7b":"partnersFund()","926f949e":"calculateWolkToBurn(uint256)","9270040f":"drawHeroLottery(address,bool)","92708ce1":"aletoken(string)","92710c60":"finalizePublicICO()","92716054":"freezer()","9271b8df":"totalPaidToFunder(bytes32,address)","9271b997":"setHighScore(uint256)","92721b86":"dividendRate(address,uint256)","9272e3f5":"many_currencies()","927319ba":"DCCToken()","92731aaa":"changesLocked()","927332da":"MaxChildLevel(address)","92736527":"freezeGame(uint32,bool)","92749978":"minBets()","9274c16b":"tokensDistributedToContributors()","9275ddd7":"SetFreeQPY(uint256)","92760a3e":"loveName()","92763585":"uniquePetsCount()","927675b8":"run(bytes32[],bytes32[],bytes32[],bytes32[],bytes32[],bytes32[],bytes32[],bytes32[],uint256,uint256,uint256,uint256)","92771e0f":"getCertificateMetaData(bytes32,bytes32,bytes32,uint256)","927726ea":"_openPrize(uint32,uint32,uint256,uint256)","927731c8":"payDepositByCandidate()","9278c418":"targetWalletVerified()","9279011c":"nextroundlength()","927a11b6":"getBranch(uint256)","927a4a7b":"transferWithLockAfter(address,uint256,uint256)","927a90da":"icoOpen()","927aaa7c":"setGeneManager(address)","927ac4f5":"approveContractReceiveGameLockedToken(address)","927bcac3":"emergencySplitToggle()","927c4151":"finalizePresale(address)","927c60de":"BIKQuery(address)","927da105":"allowance(address,address,address)","927db818":"initPresale(address,uint256,uint256,uint256,uint256)","927db81f":"new_entity(address,string)","927e434b":"rocketAddFunds(uint256,uint256,uint256)","927e69e2":"_getBattleBonus(uint256,uint256,uint256,uint256,uint256)","927ed13a":"newClient(uint256,address)","927f1086":"MAX_RANDOM_DELAY()","927f4be0":"exhaustAfterBattle(uint256,uint256)","9280b836":"spreadGold(address,uint256)","9280df59":"Swapcoinz()","928161ca":"recoverFundsAndDestroy()","92817184":"redeemPurchasesForVendor(address)","928187a8":"BonumPreICO(address,uint256)","9281aa0b":"setWhitelisted(address,bool)","9281cd65":"changeApproval(address,uint256,uint256)","9281e270":"matchOrders(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)","92824c24":"changeClaimAddress(address)","92829174":"preCrowdsaleTokensWallet()","9283032c":"storeWeekUnclaimed()","9283da60":"TeamtokenRelease1()","9283e6cb":"acquisitionsStatus()","92842802":"changeTierAdmin(address)","928432c0":"releasedSteps()","92844ddd":"_setUserRole(address,uint8,bool)","92846ab6":"put_transfer(address,address,address,uint256,bool)","92848c9e":"create(uint256,uint256,uint256,uint256)","9284cb0c":"getTotalPreSelled()","9286904c":"set_doctor(uint256,uint256,string)","928693c6":"RusaToken()","928771bb":"janPot_()","92878bd0":"forwardFunds(address,uint256)","9287c877":"getNavLength()","92885e86":"CountryPurchased(uint256,address,uint256)","9288cebc":"totalRollsByUser(address)","92890b09":"SmithToken()","92893fb9":"hasAddressVoted()","92898900":"allowTokenTransfer(address)","928993dd":"setBuyComissionUnits(uint256)","928a00d2":"deleteCoin(uint256)","928b06b5":"EAsset()","928b4cd2":"preICOTokenHardCap()","928b685c":"_buyPutToClose(uint256,uint256,uint256,uint256,address)","928b792e":"withdrawBonuses(bytes32,uint256,address,uint256,address)","928c5fb3":"getArrIntField3()","928c82a2":"createAsset(string,string,string,uint256,address)","928d09dd":"coreTeamAddr()","928d20fc":"_unpackPetValue(uint256)","928d4144":"verify(uint256,uint256,string,uint8,bytes32,bytes32)","928d81c1":"withdrawERC20Token(address,uint256)","928e6592":"sellingPriceInDayOf(address)","928e6b16":"getUint(bytes4)","928f0cc7":"ChangeStartByManager(uint256)","928f16e3":"geCompoundTimestampsFor12Months(uint256)","928fca1d":"withDrawlocked()","928fd553":"Migrated(address,address,uint256)","929066f5":"isParticipant(address)","9291b1f3":"tradeDealConfirmed()","92925c3b":"supplyTokens()","9293cc10":"TOU(uint256,string,uint8,string)","9293eb2f":"totalScammedRepaid(address)","9293f41e":"sendInviteDividends(uint256,uint256,uint256,uint256[])","92940bf9":"transferERC20Token(address,address,uint256)","92946284":"_placeSellTokenOrder(address,uint32,uint256)","9294e012":"sendOracleData()","92956506":"StarxCoin()","9295d038":"loyaltyPart()","92968125":"getUserDetails(address,uint256)","92979037":"teamTwoDivsUnclaimed()","9297afa2":"Eliminate(address,uint256)","9297c24c":"command()","9297d758":"DiceManager()","929911be":"takeSnapshot(address)","9299e552":"cancelListing(bytes32)","9299f294":"_buy()","929a3c18":"EMGwithdraw(uint256)","929a79b1":"getTitle(uint256)","929aa851":"maximumTokensForFifth()","929ac519":"changeOwnersWallet(address)","929ba8bf":"transferFromRwrd()","929c4649":"startUpgrading()","929c52a7":"changeClosingTime(uint256)","929d2033":"takeUpWork()","929de7c9":"setData_21(string)","929e626e":"getShareDistribution(bytes32)","929e902d":"curVotes()","929ec537":"getLockedAmount(address)","929f11ea":"withdrawOwnerAmount()","929f8dd4":"createBet(address,address,uint256,bytes32[])","92a04621":"maxPurchaseNum()","92a08dd1":"getCustomField(uint256,bytes32)","92a0fd64":"reserveTokenWallet()","92a11827":"canRevokeVesting(address,address)","92a20d0c":"ANONIMX()","92a2b44b":"offerTkn(uint256,uint256)","92a38e71":"createOpenValentineRequest(string,string,string)","92a39634":"VoltOwned(address)","92a42704":"verifyOwnership()","92a48bea":"setOfferContract(address)","92a4cc25":"readFrom(uint256,int256)","92a5f340":"BasePrice()","92a69395":"setTotalAirDrop(uint256)","92a70756":"m_thawTS()","92a70c42":"deployerHash()","92a73fb8":"testbool(bool)","92a781d8":"changeBaseValue(uint256)","92a7843c":"lastRefundedIndex()","92a79148":"getCryptoVersusReward()","92a793d0":"release_3()","92a81127":"BasicMilestones(address,address,bool)","92a8424d":"setPercentageCW(uint256)","92a93d33":"payAltCoin(bytes32,address,address,uint256,uint256,bytes)","92aaa019":"Inventor()","92abb859":"overrideBlock()","92acb4d6":"contributorList(address)","92ad728b":"staff_2()","92ae0530":"canUpdateFrontWindowAdjustmentRatio()","92aea05a":"expLimited(int128,int256)","92af0605":"playSystem(uint8,uint8,uint8,address)","92af7ce0":"throwsWhenGettingTokensWithEndedSale()","92afac6d":"reserveY1()","92afc33a":"ROLE_MINTER()","92b03120":"CONTRIBUTION_START()","92b0c5b2":"pow(int256,int256)","92b0d721":"mold(bytes32,uint256)","92b0fed8":"ChannelFactory()","92b1696d":"CNYToken(uint256,string,uint8,string)","92b19872":"changemincap(uint256)","92b1b0ce":"RachelToken()","92b1b418":"tokenFallbackTest(address,uint256,bytes)","92b25a71":"Wallet(bytes32)","92b3228c":"getIreg()","92b39bf4":"assignPatient(uint256,uint256,uint256,uint256)","92b46390":"changeDevAddress(address)","92b4b68a":"get_bettor_nfo()","92b4bb50":"rps()","92b4ddeb":"phase_3_Time()","92b6641a":"hardCapHigh()","92b6ebfa":"getPreIcoBonus(uint256)","92b7bd27":"removeOwner_(address)","92b7bfbb":"TransferRate()","92b7d5b9":"getCurrentGaslimit()","92b863f3":"AbabPreICOToken()","92b87751":"_balanceOfUnclaimedMilk(address)","92b9308c":"getRespectiveValue(address)","92b96432":"setBpTime(uint256)","92b9fe8b":"Xenon()","92ba4ba6":"GridMember(string,uint256,bool,address,address)","92ba77ca":"setVeto(uint256,bool)","92bb3e6a":"setCoverImage(uint256,bytes)","92bbf6e8":"E()","92bc3251":"getCuts()","92bccb80":"pauseRedemption()","92bcf0d5":"ICO_PHASE2_LIMIT()","92bd38bc":"fundCampaign(uint256)","92bd3f16":"mainsaleTotalNumberTokenSold()","92bdf9ba":"lockedCollateral(address)","92be5d13":"setDelegadoDeEscuelaVerify(bytes32,bytes32,uint256)","92be675f":"Y1_lockedTokenAmount()","92bec526":"GameChannelConflict(address,uint256,uint256,address,address,uint256)","92bec5c3":"distribute(uint256,uint256,address)","92bf2bf1":"changeMinimumContribution(uint256)","92c00590":"getAddReserveSignatures()","92c00a3f":"transferState()","92c00f3c":"investorsTokens()","92c19394":"packStore(address)","92c2bcb4":"changeRecipient(address)","92c31e61":"ZOINToken()","92c40344":"getReferralCode(address)","92c4a5ed":"MinBetUpdate(uint256)","92c537e9":"hatchStartTime()","92c54f92":"sit(uint8)","92c5769d":"unlockAddressAfterITO(address,address)","92c6b697":"claimGanaTokens()","92c6bf28":"getWalletsData()","92c70af1":"MAX_UN_LOCK_TIMES()","92c787ae":"register_recurcively(uint256)","92c8412f":"buykey(uint256)","92c87280":"joinProvider(uint256)","92c88a40":"CollectibleToken()","92c8eb96":"DSFalseFallbackTest()","92c9a11a":"getPrices2(uint256,uint256,uint256)","92c9a926":"stateStartDate()","92c9a9e2":"activateDestruction()","92ca3a80":"SingleTransact(address,uint256,address,bytes)","92cb5f19":"TokenTemplate(uint256,string,uint8,string,address)","92cb9030":"getFeeWindowForForkEndTime()","92cbda09":"subbtycmoney(address,uint256)","92cbeb59":"OracleBitstamp()","92cc2c94":"drainRemainingTokens()","92cd1ff2":"ETH_DECIMALS()","92cd2b99":"asciiToUint(bytes1)","92cdb7d5":"deathData_a15()","92cf1d49":"setStop()","92cfd461":"_createMedal(address,uint8)","92cfebd6":"LanaCharleenToken(uint256,string,string)","92d09ceb":"collateralAmount()","92d09f22":"pendingInvestContracts(uint256)","92d0d153":"t()","92d16464":"gameIsOver(uint256)","92d1abb7":"CONVERTER_CONVERSION_WHITELIST()","92d25259":"iBlock()","92d267c1":"setEthUsdRateInCent(uint256)","92d282c1":"Send()","92d2f118":"burn(uint8)","92d33200":"MAX_CRATES_TO_SELL()","92d3be79":"escrowWallet()","92d42475":"bbReserveWallet()","92d44650":"tokenApproves()","92d4d9ac":"verify(bytes32,address,uint8,bytes32,bytes32)","92d519de":"ATSXToken(address,address)","92d588a0":"INITIAL_COINS_FOR_VIPPLACEMENT()","92d59aff":"Take_payout()","92d60433":"CirculatingSupply()","92d66313":"getYear(uint256)","92d68619":"Multiplication(int256)","92d69a39":"addNodesToList(string,address)","92d7b620":"judge(bytes32[13],uint256,bytes32[],bytes32[],bytes32,bytes32,uint256[4],bytes32[10],uint256[4])","92d7f787":"getAccountWhitelist(uint256,uint256)","92d8c8cf":"setupImportFee(address,uint256)","92d98e95":"content(string,uint256,address,uint256,uint256,uint256)","92d996d7":"getPopularityByOffset(uint256)","92d997bd":"QuantityInitial()","92d9e3b8":"isAcceptingPayments()","92da29d2":"validPurchase(uint256,uint256,bytes)","92da856d":"currentStepIndexAll()","92dac258":"getAuctionItems(uint256[])","92daec51":"setLastBuyer(address)","92dbf585":"appendEarlyPurchase(address,uint256,uint256)","92dcf35d":"fourthExchangeRatePeriod()","92dd1246":"updateListReq(uint256,uint256)","92dd38ea":"arrayaccess(uint256)","92df61e8":"withdrawTokensFor(address)","92df6e91":"fortune_limitbreak()","92df94ec":"updateDream(address,string,string)","92dff48a":"backers()","92e0ba2a":"goldBought()","92e11e24":"teamAmountLeft()","92e16740":"scheduleOraclize()","92e18d9f":"setYcmContractAddress(address)","92e1ab17":"includesAddressesSet(address)","92e33d14":"enableWithdraw(bool)","92e405ac":"transferPartner(address)","92e41c69":"identityEthAddress()","92e4226a":"nextTransferFeeAbs(uint256)","92e423b5":"agent(address)","92e4b733":"_transferTokens(address)","92e4b8a4":"collectAuthorizedPayment(uint256)","92e4cd75":"icoTokensUnsold()","92e598f3":"test_fourInvalidEqInt()","92e8438c":"issueTokensMulti(address[],uint256[])","92e8d866":"DailyGrowthUpdate(uint256)","92e9fd5e":"ColdWallet(address,address)","92eaa642":"transferLoveStory(bytes16,bytes32,bytes32,uint256)","92eada50":"lastBlock_a16Hash_uint256()","92eb35bc":"preSaleBonuses(uint256)","92ebf860":"invalidateTaskListingAtIndex(uint256)","92ec6ea8":"updateAsset(uint256,string,uint256)","92ecf577":"getCurrentTerm()","92ecf690":"grantToSetUnburnableWallet(address,bool)","92ed888b":"CcifToken()","92ee0334":"currentUser()","92eeee63":"createAndBuyAllAmount(address,address,address,uint256,address,uint256)","92eefe9b":"setController(address)","92efd277":"countOfDeedsByOwner(address)","92f00233":"minterContract()","92f00d37":"TalkToExpertToken()","92f1fc7d":"bytes32_to_bytes(bytes,bytes)","92f351f9":"openTimer()","92f461ed":"getTeamsOfOwner(address)","92f48846":"updateTokenSellAmount(uint256)","92f4d225":"spankToken()","92f52ddf":"DICE()","92f53757":"GLAM()","92f5cea7":"bytes32ToString(bytes32,bytes32)","92f692ea":"setInvitationValidPeriod(uint256)","92f6a74f":"totalTokenCapToCreate()","92f7ba17":"MELONPORT_COMPANY_STAKE()","92f8de45":"MXToken()","92f926e5":"makeMoveBro()","92f96115":"setPartialTransfers(address,bool)","92fa1453":"BankAccount()","92fb4acd":"terminatePackage(address)","92fb7ef8":"burnPoll(uint256)","92fd1c2d":"bat_match(uint256[])","92fd1f01":"getPayeeAddress(bytes32,uint8)","92fe028b":"PokerWinner()","92fe4098":"b32ToBytes(bytes32)","92fee51a":"setICORatio(uint256)","92ff0d31":"transferable()","92ff3751":"getMatchHomePlayers(uint256)","92ff4be4":"finalLottery()","92ff7859":"newFutureLottery(uint256,uint256)","93003033":"tokenSalesAll(uint256)","93004e62":"initPayoutTable(uint256,uint256)","93012d5f":"Loan(uint8)","9301eb36":"setItemOption(uint256,string)","9303633e":"tier_rate_2()","930429ea":"setFOUNDERS_POOL_ADDR(address)","93046a13":"withdrawEtherPayment()","9304ddc8":"setUnitCreationFee(uint256)","93051424":"KIUSToken()","9305b0f8":"WorldSafetySecurityToken()","9306099f":"GxOrders(address)","930622ed":"assignedAmountToMarketExpand()","9306635a":"PETRO(uint256,string,uint8,string)","93072684":"revokeDelegateSigned(address,uint8,bytes32,bytes32,bytes32,address)","9307ca0f":"houseKeep(int256,uint256)","93080cd4":"replaceChannelContractAddress(address)","9308151b":"crowdSaleTokens()","9308353f":"payin()","9308a865":"total_raised()","930916b2":"setInviteCode(string)","930a0daa":"checkMinimumQuota(address,uint256)","930a80b4":"testAuthorizedSetPackage()","930a9d92":"tradeOrder(address[3],uint256[5],int256,int256,uint8,bytes32,bytes32)","930ae8b0":"setSaleFlag(bool)","930b7a23":"approveOnce(address,uint256)","930bbbed":"changeBeedingCost(uint256)","930c0bba":"getWithdrawalEntryForFunder(address)","930c1198":"crowdsale(address,uint256)","930c2003":"victim()","930c57f3":"PublicSale(address,address,uint256,uint256,uint256)","930cb83e":"registerUsers(address[],uint256[],uint256[],uint256[],uint256[])","930cbf89":"ProposalAdded(uint256,address)","930cd62e":"getIcoInvestorsAddressesCount()","930d54b4":"revealSeckey(uint256,bytes32)","930db1ab":"setHijackPrice(uint256)","930ddb8e":"getIdea(address)","930e1173":"tokensReadyForRelease(uint256)","930e23b9":"_STCnContract()","930ed251":"getSavedVar()","930f5fbe":"setApplicationChecksum(bytes32)","930fed29":"EnkronosToken()","931010eb":"tokPrizes(uint256)","93107071":"PDAToken()","9310ba96":"TIX(uint256,address,uint256[],uint256[])","93119312":"returnMoney()","9312434e":"cryptocompareUsdOracleUrl(bytes32)","931274c8":"createContractScene(string,uint256[])","9312766d":"BSTokenData(address)","9313053e":"createItems(address)","93138faa":"isProviderParamInitialized(address,bytes32)","9313919a":"multipleShotTokenRepartition(uint256,uint256)","9313dc43":"claimTokensFromErc677(address,address)","9314be9d":"lock(bytes32,bytes32)","931634fd":"PGTBToken()","93167204":"teamTokensPercent()","931688cb":"updateBaseURI(string)","9316c3e7":"transferBulk(address[],uint256[])","931742d3":"commissionAddress()","9317cb37":"CUTOFF_PRESALE_ONE()","9317d6d3":"totalReceived(bytes32)","93183dc9":"paymentManager(address,uint256)","93192c65":"ProposalAdded(address,uint256,uint256,string,bytes32)","931983ad":"Connection(address,address)","9319f44d":"rateTierNormal()","931a4c5b":"maxContributionPhase2()","931a5256":"addOrder(uint256,uint256,address,address,uint256,address)","931b3385":"claimToken(address,string)","931c0040":"carrotsMultiplier()","931c6246":"VestingWallet(address)","931c8ba7":"count_products()","931cd0cc":"setBQL(uint256)","931dab50":"allocationAmount(uint256)","931df75f":"validateProposedThroneName(bytes)","931e44e2":"BuyLandsByEth(uint256)","931e7daa":"BettingKing()","931fbdd8":"Trenggalek()","9321cb7d":"SGT()","9321dc5f":"initRequest(uint256[])","9321e603":"changeMtcDailyLimit(uint256)","932354c1":"updateLocation(string)","93237833":"CONTRACT_HOLDER_BONUS()","9323eaad":"awardUnitRafflePrize(address,uint256)","9324dfff":"addWhitelistedTokenAddr(address)","93253a9d":"PublickOffering()","93257d33":"CheckForFloating(address,uint256)","93272baf":"getTokenType(address)","93275889":"ChangeTax(uint16)","9327891e":"testSetRole()","932838a1":"setCell(address,uint256)","9328bfc1":"getNumMessages(address,address)","9328fa02":"capitalAllocatedTo(address)","9329066c":"getJackpot()","93299395":"revokeEditAgentAuthorization(address)","9329f2fe":"postico_startdate()","932a0ee7":"getShowTextBytes96()","932a7b2e":"addApp(address,address)","932adda2":"newNode(bytes32,bytes32,bytes32,bytes32,bytes32)","932ae363":"buyerNumDeals(address)","932bead7":"updatePlanetURL(uint256,uint256,uint256,string)","932c1081":"closedHour(uint8)","932c360d":"SpaceRegistry()","932c90f3":"SUPPLY_FOR_TEAM()","932cd73e":"tokensReleasedToTeam()","932db761":"profitsFromBitnationDebitCard()","932def2e":"tgrCurrentStage()","932e1c76":"distributeEbyteForETH(address[])","932e2e95":"_withdrawEthereum(uint256)","932f4588":"RaffleResult(uint256,uint256,uint256,address,address,address,uint256,bytes32)","932f9f89":"testThrowInvalidProvider()","932fad1f":"totalWageredForOutcome(uint8)","932fd99f":"toHighestDenomination(uint256)","932fec40":"refundToken(address,address,uint256)","9330f97f":"removeDestinationByIndex(uint256)","93311632":"getTokenClaim(uint256)","93316cdf":"selltoken(uint256)","9331a922":"get_layer(uint256)","93320f2e":"expRequiredToReachLevel(uint256)","93325812":"addFreelancerTotalInvoiced(address,address,uint256)","93331892":"batch(address[],uint256)","9333a122":"ITECH()","9333cf5e":"communityPeriodAmount()","9333d6c0":"MILL()","933426f5":"GoolaToken(address,address,address)","93348f45":"ovedclaimBountyairdropMultiple(address[],uint256)","9334ab61":"Infos()","9334ad0d":"getVersions(address,bytes32,address,bytes32)","93358320":"withdrawOwnerToken(uint256)","9335dcb7":"ownerWallet()","93361078":"confirmStartWork(uint256)","9338cbdd":"monToTrainer(uint64)","93395d99":"TalksChain()","93399949":"GTDCStandardToken(uint256,string,uint8,string)","9339c01a":"validICOPurchase()","9339e942":"check_flag(bytes32)","933aa667":"isPermission(bytes4)","933ba413":"totalEthInWei()","933bf760":"extend_life_of_contract(uint256)","933c798c":"next_payout()","933dc51b":"setUint256(int256,uint256,uint256)","93402e17":"setRewardManger(address,address)","934076f1":"BetOnMatch(address)","9341231c":"sendOrThrow(address,uint256)","9341287d":"setMetadataUrlPrefix(string)","9341aa4e":"initializeDistribution(address)","9341bc00":"drones(uint256)","934209ce":"rank()","9342160b":"eligibleCheckAndIncrement(uint256,uint256)","93423e9c":"getAccountBalance(address)","934354e7":"finishSpin()","93437b52":"Fibremoney()","93439950":"test_chain2_2_increaseBlocksBy5()","9344a0b6":"addAddressToRegistry(address)","9344b0d6":"playerCompleteGames(address,uint256)","9344c50f":"getNameOf(address,address)","93465da6":"Error(uint128)","934689a9":"getTokenCreator(uint256)","93469800":"minPower_()","93470fa8":"listMultipleItems(uint256[],uint256,address,uint256)","93478221":"LogSender2(address,address)","934865d0":"TransactionBlocked(address,uint256)","9348b810":"contractorTransferFrom_Bcoupon(address,address,uint256)","9348caf7":"testBuyTenTokens()","9348cef7":"reveal(uint256,uint256)","9348ff61":"setUSDRaised(uint256)","9349ba44":"AirRopToken()","934a029d":"getVoteAtTxForUser(bytes32,address)","934a0b57":"AXXToken()","934aa023":"charity()","934bb037":"MainBank()","934bc29d":"exampleFunction(uint256)","934c563f":"dataOf(uint256,uint256)","934d8a2e":"TokToken()","934db458":"Big()","934e03a4":"toBool(bytes32)","934e860d":"addOnHold(uint256)","934ea572":"w_Reserv()","934f92af":"ZebiCoinTempMgr(address,address,address)","93503337":"isAllowed(bytes32,uint256)","9351327f":"USD_PER_ETHER()","935146d0":"createMatch(string,string,uint256,uint256)","93519d66":"requestClearing(bytes32)","9351a8d7":"managementWithdraw(uint256)","9352fad2":"run(string)","93545a79":"isAmountBonus()","93559bc6":"lifeCoin()","9355d6db":"MadTok()","9355eb25":"privilege()","935600ce":"subRegistrationPeriod(bytes32)","9356b1fe":"BWCHToken(uint256,string,string)","9356e87f":"getLastMulti()","935814a6":"confirmRewardsWithdrawal()","93588a14":"setTop(uint256,address,uint256,bool)","9358928b":"circulatingSupply()","935aae40":"MINIMUM_BET()","935b1624":"get_first_global_audit_document()","935b2b1f":"buyBox2()","935b7dbd":"buyFor(address,uint256,uint256)","935bb767":"setPrices(uint256,uint256,bool)","935c1fb1":"addressIndex(address)","935cac39":"internalTransferFrom(address,address,uint256)","935d29d6":"BPToken()","935d647f":"getPublicForSecretFor(bytes32)","935dfb71":"adjusted()","935e1533":"processFinishLottery(address)","935e97c2":"settleTransactionByMediator(uint256,uint256,uint256)","935eb35f":"addToBlacklist(address[])","935ebb78":"MAX_USD_FUNDING()","935eeddc":"CarUpdated(uint256)","935f43b2":"ipart(int128)","935f4c18":"sendPayment(address,uint256)","935fb955":"Mytoken(uint256)","93602379":"_transferCar(address,uint256)","936061cd":"claimWinner(address)","93608dfb":"earlySuccessTimestamp()","9360b138":"sendTokensTo(address[],uint256)","936224b8":"midEtherBonusValue()","93623fb8":"changeAcceptDice(bool)","936241b7":"hunterLicenceEarning()","93627f42":"globalMax()","9362917c":"FuckKuanLi()","9362e50e":"changeDeveloperSENSDestinationAddress(address)","936315d6":"canReveal(address)","93632ddd":"totalBNBContributed()","93634702":"isValidSignature(bytes32,address,bytes)","9363933c":"GizerItems()","9363a141":"getDepositCount()","9363c812":"floorPrice()","9363fb71":"totalFreeTokensDistributed()","9364003c":"HDC()","93643a5b":"fazzycoin()","936597da":"mLoadAndReturn(bool)","9366804f":"checkForJoin(uint256,address,uint256)","9366fd5c":"getEvaluationByRecorderID(uint32,uint64)","936710bf":"getBalanceOfAccount(address)","9367a863":"t_Andrey()","9367f8de":"SPCToken()","93683f3d":"changeReserveBountyRecipient(address)","9368f482":"_betterThan(address,address)","9368f72c":"burnFromToken(address,uint256)","93694f67":"opponent()","936b360d":"Tachyon(uint256,string,uint8,string)","936b603d":"contributorTokens()","936bbf9a":"totalPostIcoContributorIds()","936bfa40":"the120address()","936bfc63":"OrcERC20()","936c9bc9":"ICOdeadline()","936cfb0e":"transferInternal(address,address,uint256,bytes)","936d2b0f":"addProductAtId(uint256,string,uint8)","936e9904":"AUCoin()","936ec951":"afterEach()","936f67ea":"CryptoStorage()","936f8a40":"setMinBuy(uint256,uint256,uint256)","936fddcb":"VULCAN_PROMETHEUS_EXTRACTION_BASE()","93709788":"forwardManyTransaction(uint256[])","9370a07c":"TSVC()","9371c369":"applicationRejected(address,address)","9371de6e":"unsoldVUPDestination()","93720b2f":"giveAways(address,uint256,uint256)","93736419":"UpdateUserExpire(address,uint32)","9373ad6c":"inviteFinished()","9373b8bd":"claimAddresses(address[],uint256)","9373e2a1":"CircleCrowdsale(uint256,address)","9373f432":"setWithdrawWallet(address)","93741a3e":"iterate(string)","93742d83":"makeBet(uint8,uint8,uint8,uint8,uint8,uint8,address)","9374c487":"overshoot()","9374ec98":"whiteListMge()","9375206a":"setAllowed(address[],uint8,bool)","93762cff":"_resetMine()","93766a57":"trade(address,uint256,address,address,uint256,uint256,bool)","93768820":"isCommunityToken(address)","9377530f":"grandTotalClaimed()","93778e2d":"setCompte_6(string)","9378a9e2":"setUInt(uint256)","9378f08f":"ScamStampToken()","9379077f":"bookDayVisit(uint256)","93790f44":"getKey(address)","93791262":"performInit()","93796317":"InternationalTourismPublicChain(uint256,string,uint8,string)","93798ff5":"BuurmansToken()","9379d936":"calculateBonus(uint8,uint256,uint256)","937a7ac5":"moveStageWithdrawn()","937a9151":"WBIToken(uint256,string,string)","937adbe6":"isInTerm(address)","937b19ef":"EtherRoyalToken()","937b7cf1":"contractFallback(address,address,uint256,bytes)","937c0cdf":"priviledgedAddress()","937c0d0a":"aaa()","937c9e3c":"CandyLandSale(address)","937cde20":"hasPass(address)","937dc72f":"AppCoins()","937e09b1":"minimumContribution()","937e909b":"reservesPerTokenDest(address,uint256)","937ebbd2":"sendTokensToBountyOwner()","937ef8e3":"getUserReferralsProfit(address)","937f2e33":"claimMyTokens()","937f6e77":"setInfo(string)","937fd355":"initializeBasicFundraiser(uint256,uint256,uint256,address)","93806144":"getPunitoryInterest(uint256)","93808351":"setPriceInternal(address,uint256)","9380b8e7":"testFailAddingMembers()","93813782":"Tasoha()","938199a5":"getDateOfLastPayment()","9381da6e":"getEstateData(uint256)","9381e53f":"TokensCollected(address,uint256)","9381ebfa":"EUAHTOKEN()","9382ef65":"prvdWallet()","93830c74":"solUpDownVote(bool,uint32,address)","9383d4e6":"SingularityTest14()","93847d54":"TRLCoinSale(address)","9384f31e":"SingularityTest19()","93854494":"factHash()","93859188":"amount_bonus()","93867fb5":"roleAdmin()","9388b560":"TOKENS_ALLOCATED_TO_SERVUS()","938a465e":"TOKETH_PRESALE_ONE()","938ae4cc":"testThrowDisownNotTransferable()","938b5f32":"origin()","938b643b":"TimeToMeet()","938bcd67":"getChannelIdentifier(address,address)","938c4307":"scheduleCall(bytes4,bytes,uint16,uint8,uint256,uint256,uint256,uint256,uint256)","938d0444":"SmileToken()","938d2f46":"escrowDeletion(address,address,uint256)","938d9632":"activekey()","938da22d":"secondReleaseTime()","938db92e":"ICO_Tier()","938e6fcc":"MiningStart(uint256,uint256,uint256)","938f3cc4":"create(address,address,address,address,address,address,address,string,string)","938f407a":"removeFromWhitelistInternal(address,uint256)","938f6c5f":"getBountyTokens()","938f7064":"createTopic(string,string,uint256)","93904aae":"coinToBurn()","939090f8":"deposit4(address,address)","93920e8f":"invest(address[],uint256)","93924147":"MoveFromBase(uint256)","93928c91":"thirdBonus()","9392e5b5":"erase(uint256,uint256)","93930020":"getLastConsolationPrize()","9393c09c":"addFabric(address,address)","93940e0a":"INTLToken()","939528b1":"transferProposalCooldown()","939624ab":"removeStake(uint256)","9396a7f0":"getQuickBuyPathLength()","939729c1":"installerPercentage()","9397afcb":"PlayingCrypto()","9397f2a2":"weekOneRate()","939802af":"getDataForTokenId(uint256)","93986193":"realizedTokenBalance(address)","9398e0cd":"data(int256)","9398ecb6":"setMaxParcels(uint256)","939935cb":"startTimeInMinutes()","93997075":"AddCommitteeVoteEvent(address,address)","9399869d":"getContractCount()","9399dcfb":"PointGameProcess(address,uint256)","9399dd7e":"serverEndGameConflict(uint32,uint8,uint256,uint256,int256,bytes32,bytes32,uint256,address,bytes,address,bytes32,bytes32)","939a470e":"updateDescriptionHash(string)","939a79ac":"demo(string)","939a8dc1":"CryptoPepeMarketToken()","939b73aa":"getAthlete(uint256)","939b7842":"approveMigration(uint256)","939bfc79":"TTAC()","939c0a66":"AirDrop()","939c23b6":"setProtectionForMyUnprotectedCrypton(uint256,uint256)","939cda3f":"DgxDemurrageReporter(address,address,address,address)","939d3ac4":"sendCommunity()","939d8729":"_postValidatePurchase(address,uint256,uint256)","939de809":"checkSale()","939e014e":"optionTransfer(address,uint256,uint256)","939e436c":"weiPerContributor(address)","939ea4f8":"bombs(uint8)","939fb3bf":"Owanble()","93a00d27":"rektCoinCashSafe()","93a09352":"setValue(string)","93a0c742":"getIdeaParties(uint256)","93a0dc08":"disableAffiliate()","93a2f88d":"gettopid(address)","93a2fa6c":"Emission(uint8,uint256)","93a31509":"LEXToken()","93a32f62":"assignToken(address)","93a378da":"addHodlerStake(address,uint256)","93a408d7":"priceUSD()","93a422bb":"updUserBlackList(address[],address[])","93a45612":"SetPresaleHandler(address)","93a52980":"getTotalEtherPool(uint8)","93a595f5":"repayLoan(address,uint256)","93a5a9da":"resignTrustee()","93a69ae0":"eForecastGambleToken()","93a8333e":"Count()","93a91682":"curPrice()","93a91f25":"setInitialAllocation(address[],bytes32[],uint256[])","93a95fa8":"superPowerFulDragonOwner()","93a962fc":"addUndergraduate(uint32,string,string,string,uint8,uint8,uint8,uint8,uint8,uint16,uint64,uint64)","93a991af":"withdrawDai(uint256)","93aa3014":"BarryUtilityCoin()","93aa5ca8":"BITNOT(bytes32)","93aababc":"setlockBalance(address,uint256)","93aacd7d":"ownerLabel()","93abc530":"getSubscriptionOwner(bytes32)","93ac3638":"setAuctionAddress(address)","93ac3905":"lastGateway()","93ac5048":"BitallexToken()","93ac7c83":"EVTCToken(address,uint256)","93adf28b":"PumpAndDump()","93aef871":"checkSolved()","93af0292":"complete(address)","93af339f":"cardDrawPrice()","93af8ed4":"maybeChangePrice()","93afbdae":"repriceAuctions(uint256[],uint256[],uint256[],uint256)","93affe51":"getBoth()","93b14daa":"right14(uint256)","93b155af":"win(bytes32)","93b16ff5":"IkuraBurn(address,uint256)","93b1d4c7":"OfferingRegistry(address)","93b212bc":"subWithdraw(address)","93b21c8c":"destroyThreshold()","93b2467e":"totalSold(uint256)","93b30efc":"doSellerRequestCancel(bytes16,address,address,uint256,uint16,uint128)","93b3a368":"getCorrespondingIntegerValue(bytes32,uint8,uint256)","93b3bb35":"VisualFodderCoin()","93b4a73c":"KITTOKEN()","93b4c69b":"_assignRole(address,bytes32,address,uint256)","93b557db":"dSetArbitraryData(bytes32,bytes,bytes)","93b69f86":"getPlayerCoin(address,address,uint256)","93b71fe5":"Dao1901Votes(address)","93b7e7cb":"addCancellation(address)","93b8386d":"agencyOf(address)","93b8e90d":"isMasterAccount(address)","93ba3f15":"propose(address,uint256,bytes)","93baa6ef":"InterfaceImplementerSet(address,bytes32,address)","93bb3aee":"betAddressArray(uint256)","93bbafd1":"earlyBirdInvestments(address)","93bc771a":"ceoDevfund()","93bc96fa":"withdrawTo(uint256)","93bcabb7":"pullRow(uint256)","93bd0142":"ETHERDELTA_ADDR()","93bd1484":"mintApproveClear(address,address)","93bd27de":"IOweYou()","93bd4fc4":"depositAgent(uint256,uint256,uint256,string,uint256,string)","93bd90c4":"richtokenIndexToApproved(uint256)","93be0f83":"MSPT()","93bebdec":"corporationContract()","93c0771c":"getGamesPlayers(uint256)","93c166ec":"computeEndowment(uint256,uint256,uint256,uint256)","93c19e18":"rate0()","93c2c7f0":"getClosingSettle(bytes32)","93c2f482":"maxRound()","93c32e06":"changeFounder(address)","93c38965":"getData_15()","93c434e5":"getOptionInfo(uint256,uint256)","93c4ade0":"viewMaxShares()","93c5186c":"isNewPrice()","93c573c0":"maxChequeValue()","93c5ace0":"walletTokenTeam()","93c6475c":"processBet(uint8,uint256,uint256,int256,bytes32,bytes32)","93c69927":"sizeOfBool()","93c7ca84":"countBet()","93c7e009":"AddTrustedContractAddress(address,address)","93c8b0d4":"addForeignChild(bytes32,bytes32)","93c92b73":"exchangeRateArray()","93c94acb":"calculateRewards(uint256[3][3])","93c958f3":"ManufactorWallet(string)","93c98cbc":"ApplicationQualityCoin()","93c9b63e":"SGTCoin(uint256)","93ca5de7":"CIzTezt(string)","93cb1a4e":"originalHash()","93cc6d85":"transformDataContract()","93cc9162":"taskRejected(uint256,uint256)","93cca918":"place()","93cd22b8":"addAdministrators(address)","93cddbcf":"goldToEur()","93ce9791":"emergencyFinalize()","93cfd79f":"getVisitorCount()","93d07d07":"hoursCount()","93d087a2":"setData_33(string)","93d0de98":"AirDropContract()","93d1217e":"lastBlock_v3Hash_uint256()","93d18e92":"processOrder(bytes32)","93d22e52":"setEFContract(address,address,uint256)","93d3173a":"delegateDecreaseApproval(address,uint256,address)","93d4673f":"BTCTKN()","93d48b11":"zombieToken()","93d51daf":"amountofp3d()","93d5276b":"investInternal(address)","93d5825e":"calculateTokenSell(uint256)","93d5908a":"harapan(address,uint256)","93d5c520":"DelegateCallToken(uint256)","93d60990":"teamWithdraw(uint256)","93d68cfa":"preferredSaleStartTime()","93d759b8":"allowedAccount()","93d76f0e":"DEVELOP_CAP_PER_ROUND()","93d79105":"hashRelease(bytes32,bytes32)","93d7c6bf":"researchDivPercent()","93d81d58":"cancelSubscription(address)","93d84bf0":"oraclize_newRandomDSQuery(uint256,uint256,bytes,uint256)","93d865e3":"tokensFromPresale()","93d88409":"suspendSale()","93d90a4e":"HostingIcos()","93d91eae":"getFractionalAmount(uint256,uint256)","93d96049":"burn_lost()","93d9df16":"setCounter(int256)","93d9fd74":"getTitulaire_Compte_4()","93da1db1":"Profiterole(address,address,address)","93da4cfd":"getInvertedPriceInfo(address)","93dafba2":"getSubpot(uint256)","93db7716":"get_sale_arbits_sold()","93dc12e6":"closeProject(uint256)","93dd4133":"signedByCLevel(bytes32,bytes)","93dd738e":"notifyLegacyClaimed(address)","93dd9443":"Community()","93dd9866":"summEccles()","93de2527":"RegisterStaff(address,string,string,string)","93de6c51":"CHGUSDPRICE()","93dfbbcb":"setTokenExchangeRate(uint256,uint256,uint256)","93dfea8f":"ong()","93e02d13":"FallenLeaders()","93e1021a":"Participant()","93e1595d":"ATTR_CONSUMABLE()","93e24b7a":"teamVaultAddr()","93e3fca1":"stopGameOnNextRound()","93e426de":"MIN_WITHDRAW_WEI()","93e432d4":"refillGift()","93e43bbe":"getPost(bytes32)","93e4bf4f":"addPrecommitment(address,uint256,uint256)","93e5365f":"maxAddresses()","93e59dc1":"whitelist()","93e67bff":"IPFSHash()","93e7155b":"swapActivityHandler()","93e7d6c6":"createInviteName(bytes32)","93e84cd9":"play()","93e96174":"getNextDiniRequestId()","93e9a084":"lastTime()","93ea0e02":"batchTokenTransfer(address[],uint256[])","93eade00":"tokenAssignExchange(address,uint256,uint256)","93eb049d":"dp()","93eb33b3":"notifyDeathConfirmation()","93eb3c62":"Send(address,address,uint256)","93ed013d":"ecosystemAddr()","93ed4426":"extraBonus()","93eda78d":"getClaimData3(uint256)","93edaf59":"freezers(uint256)","93edbe36":"CHELCOIN()","93eeb3fb":"checkRate(address,address)","93eec1fb":"setName(uint8,uint8,string)","93efbdbb":"DPIcoWhitelist()","93f0bb51":"order(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","93f1b685":"LuckyPackage()","93f27be2":"_assignOverlfowData(uint256)","93f2ad91":"ExtremeToken()","93f2ba24":"testdiv256_128By256()","93f2fa04":"ThingToken()","93f32659":"getInitialWithdraw()","93f33b88":"notifySale(uint256,uint256,uint256)","93f43863":"getEmployerJobs(address,address)","93f5ddf2":"ICOStarted(uint256,uint256)","93f63e70":"setBenefit(address)","93f6fd85":"createCampaign(uint256,bytes32,bytes32,bytes32)","93f7cc99":"getPlayerAccount(address)","93f826c9":"portfolioSummary(address,address)","93f84cfe":"mintTeam(address,uint256)","93f85021":"numLeaders()","93f8e9f7":"mediumMod()","93fa47f1":"lockGoldTransfers(bool)","93faf781":"loggedAsStatement(uint256)","93fb28bd":"getUnitAttackMultiplier(address,address,uint256)","93fc2c8b":"winnerIsDraw()","93fc5ebb":"_secondRoundWinnersFight()","93fe0237":"updateWhitelist(uint256[],bool)","93fe4248":"deleteUIntValue(bytes32)","93fea184":"CONTRIBUTIONS_MAX()","93fea3fc":"supportValidator(address)","93feb13b":"ForceSendHelper(address)","93ff3e4a":"insertNewUser(uint32,bytes32,address,uint256,uint256,uint256,uint32,bool)","93fffddc":"previousContractAddress()","94002b57":"goldToken()","940064e3":"periodPreITO_hardCapInUSD()","94009bbc":"powerUp(address,address,uint256)","940147ac":"tribeProducts(address)","94014dc0":"weiRaisedPreICO()","94018e20":"removeRoles(bytes32[],address,address)","9401c82b":"CAECToken()","9401d547":"lockExternalTransfer()","9401e4e7":"TokensFlushed(address,uint256)","94025211":"refundToOtherProcess(address,uint256)","9403e8dd":"casino()","94044c75":"_invokeTokenRecipient(address,address,uint256,uint256,uint256,uint256)","94056c42":"mintTRCToken(address,uint256)","9405b406":"ProposalManager()","9405c78f":"setQuantity(uint256,uint256)","9405de64":"checkAllowance()","9405dfdd":"listingId()","94062a9d":"minBuyingAmount()","94066fb1":"cancelOfferAlice(uint256)","9406aea9":"startCall(uint256,uint8,bytes32,bytes32)","9406cf59":"setChallengeFeeMultiplier(uint256)","9406e273":"NBELToken()","94074b03":"getNetworkName()","94077c50":"updatePriceAgent(address)","9407a688":"allowedForwards(bytes32)","9407ea98":"setMarketplaceFee(uint256)","94081387":"administrate(uint256)","940834be":"MidnightCoin()","940900b8":"bookOvernightVisit(uint256)","94097168":"burnTokenBurn(uint256)","9409962f":"withdrawExtraTokens(address)","940a4e45":"distributeReward(uint256)","940a6cf5":"getAdministratorCount()","940a82a3":"distributeCTS(address[],uint256,uint256)","940aa73f":"setMinimumVotingWindow(uint256)","940b29b2":"etherReceivers(uint256)","940bb344":"burnUnsoldTokens()","940beaf5":"getTransactionIds(bool)","940c154b":"lockBet(uint256)","940c17c0":"CROWD_WEEK4_PERIOD()","940d0780":"AdmChange_README(string)","940d553f":"FoodTransferEvent(address,address,uint256,address,uint256,uint256)","940d5e08":"Alpon()","940d72ec":"buyPack(uint8)","940dab4c":"prefixedHash()","940dbf3e":"invokeOnce()","940de97e":"privateSaleStartTime()","940df414":"claimAddress(address,uint256)","940ebef7":"secondsRemaining()","940f02e0":"setDevelopersTokensWallet(address)","940f0661":"PrivateLedger()","940f851c":"Ballot(uint8)","940fae9e":"confirmBoosterQuest(address)","9410579d":"_calculatePriceComplement(uint8)","94106200":"testFailCreateSameNonce()","94107690":"checkPurchaseRecord(address)","9411c88b":"TokenContract(uint256)","9414d0bf":"initializeUsdReceived()","9415931d":"getLastDividendsAmount()","941660e5":"getRoundMaxPerUser(uint256)","9416893b":"addDemoData()","94169f25":"preIcoTotalCollected()","9416b423":"toLower(string)","94181d27":"lastReparation()","94182798":"dna4(uint256)","9418b8a6":"closeUsingTrustedRecipient(address,address,uint256)","9418d25a":"proveBuy(bytes,int256)","94194be4":"openingTimeB()","9419768d":"checkBetting(uint256,address)","941993f8":"changeCofounderB(address)","9419a2da":"setPaymentDetails(uint256,string)","9419f17c":"decraseTimeToAction(uint256)","9419fd29":"getWidth(uint256)","941a4bc7":"getPartnerCash(uint8,address)","941a5074":"controllar_account()","941a8486":"ownerChangeSellerfee(uint256)","941b0161":"addMarket(uint256,uint256,uint256,uint256)","941da7b8":"testExpiredBalance()","941e98a8":"EMISSION_FOR_SALESTAGE1()","941f9580":"rewardKey(address,uint256)","94201882":"artistEmail()","94224066":"setCityValues(uint256[],uint256,uint256[],uint256[])","942273bd":"SAMURAI()","942324c3":"getSponsoringCount(uint32)","94235f77":"apLockUp(address)","9423719b":"tokenBonusForFirst()","942385eb":"getPayroll()","9423f443":"submitGameResults(uint256)","9423fc54":"transferClearingFunction(address)","94248eaa":"isStateProjectInProgress()","9425753c":"licenseProductId(uint256)","9426e226":"validatorSet()","94272356":"_setReferrer(address,address)","9427aa96":"getBonus(uint256,uint256)","9427dfea":"ownerRecoverTokens(address)","942802e7":"VULCAN_POD_FTL_SPEED()","94282357":"EFASCOIN()","9428522a":"getNode(string)","9429d441":"reclaimBySender(uint256,address,address,bytes32)","942a8ad3":"getAQL(address)","942ab177":"MintToggle(bool)","942ab286":"buyTicket(uint256[],address,uint256,uint256)","942ac303":"goalInEthers()","942b765a":"getList()","942b90d3":"getRewardTable()","942bc8d4":"unpauseAngelToken()","942d468b":"transferArray(address[],uint256[])","942d73b1":"readAddr()","942dac28":"amounRefferalWon()","942ea466":"getNumber(address)","94306ecb":"AutoreleaseDelayed()","94313c5b":"getPositionOwedAmount(bytes32)","94313f9f":"cleanConsents(bytes32[],address[])","943153cf":"StonePaper()","9431e412":"getCommunityRates(uint256)","9431f5f0":"withdrawFees(bytes)","943215ae":"investmentFundWallet()","943250c4":"SquirtCoin()","9432c92c":"setStartTimeIcoStage1(uint256)","9432f0c7":"receiveClosePositionPayout(bytes32,uint256,address,address,address,uint256,uint256,bool)","9433a498":"totalFountainSupply()","9433a81e":"personIndexToApproved(uint256)","9434c981":"createNewMartial(uint256,uint256,uint256)","9434d765":"allocated12Months()","94353c70":"postMonForClass(uint64,uint32)","9435c887":"cancelBid()","9437563c":"logPriceBefore()","943814f0":"getWhitepaperAt(address,uint256)","9438cca8":"cancelEscrow(uint256,uint256)","9439060f":"getGameNumber(uint256)","943911bc":"getWorseOffer(uint256)","943a32bc":"Relay(address)","943a5e28":"RENEX_ATOMIC_SETTLEMENT_ID()","943b0747":"RewardOffer(address,address,bytes,uint256,uint256,uint128,uint256)","943b82f1":"getLimit(uint16)","943bd25d":"addNewBetAmount(uint256)","943dfef1":"bounty()","943e170d":"neededSignatures()","943e8216":"vote(uint256,uint8)","943eb504":"supplyLocked()","943fa364":"MPhoneSeller()","943fcc9d":"buyRoseETH(string)","943fd51c":"claim2Ply(uint64,uint64,uint64,uint64)","9440f01f":"buyCoins(address,uint256)","9441268b":"updateGlobalTokenAge()","944126f4":"acceptSupport()","94412943":"bountyOf(address)","9441e646":"addWhiteList(address,address)","9442936f":"d(address,address,uint256)","94429fa6":"withDrawAnyERC20Token(address,uint256)","9442fad9":"deployTokens(uint256[],address[])","94431f80":"getAvailableEtherCommissions()","94432deb":"fairsale_protection()","944358e0":"getContributedAmountInWei(address)","9443b9be":"TokenTimeLock(address)","9444991d":"getVotingListCount()","9445eb3a":"Terminate()","94465bf6":"adjustDuration(uint256)","94477104":"vestedOf(address)","9447fd0a":"until()","9448807a":"secondPay()","9448bcea":"getPlayerRoundNums(uint256,address)","94493c43":"getLockCount()","94495468":"totalTokenRice()","9449a361":"setStakeRequirements(uint256,uint256)","944a1a75":"CELION()","944abc22":"_updateCurrentPeriod()","944ac0c6":"MAIN_SALE_START_TIME()","944af2ae":"TegTokens(uint256,string,string)","944b7c3f":"getMaxNumberOfTokens()","944c1d97":"resetPeriod()","944c8929":"checkBeatingPrice(uint256,bool)","944da654":"editModule(uint256,uint256,address,bytes4)","944dc22c":"addRemovableIdArrayItem(address,uint256[],string,string,string,uint256)","944ea02d":"checkTokenBalanceState(address)","944ea477":"OPERATION_AMOUNT()","944f0499":"transferTokensFromTeamAddress2(address,uint256)","944f0e64":"tokenInfoParametersReady()","9450b1c8":"addCharityFundation(string,string,string)","9451bca7":"result_votes()","9451f865":"TestConf()","94525e12":"lowRate()","94532ced":"blockSettle(uint64,uint64,bytes)","9453b95d":"addOrUpdateAccounts(address[],uint256[],uint256[])","9453f381":"getBeneficiaryCash(address)","9453f767":"createOrder(string,address)","94543c15":"isDeprecated(address)","94544e64":"transferFeePercent()","94555d1a":"addSubscriber(address)","9455924f":"getTotalVolumeToken(address)","94566d25":"jobPost()","9456e5b5":"stockSet()","9456f7e9":"getHashByTokenId(uint256)","9456fbcc":"withdrawERC20(address,address)","94579680":"changeUserGrowthAddress(address)","9457c1dc":"enableMigration(address)","9457c68a":"forceEndCall()","9458434f":"mainWeiRaised()","94594625":"distributeAirdrop(address[],uint256)","9459c254":"refund(address,string,uint256,uint256,uint256)","945a2555":"queryPermissions(address)","945aab47":"tokenSaleCap()","945ade92":"initialDate()","945c6cf8":"burn_all_unsold()","945c7438":"sign(address,int256)","945c7c59":"distributeTokenSale(uint256,uint256,uint256,uint256)","945d7b7e":"tranchesSent()","945ddb52":"mainSaleTotalSupply()","945e5f24":"roughSupply()","94602869":"receiverWithdrawal(uint256)","9461446d":"setProcessingFee(uint256)","94615fc1":"setFreezingStatus(uint8)","946267ec":"mintComplete(uint256,int256)","9462eae5":"ChangeContractor(address)","9462f4bc":"bytarr(bytes32[])","94636cee":"createPromoMonster(uint32,bytes,address)","9463d582":"teamOneWin()","94642f96":"investorWhiteList(address)","94644764":"lookUpClaimerAddress(uint256,address)","94650fb8":"Goal()","94655f2b":"printMoney()","94658690":"parseUserInivte(uint256,uint256)","9465c114":"vanishToken(uint256)","946644cd":"fun()","94679ce7":"changeEtherPrice(uint256)","946941ec":"Contribute(bytes24)","946a893d":"shopDoublet()","946ad94d":"tokenContractEnableTransfers(bool)","946ae8df":"FMGHEALTHCARE()","946ba496":"ShishuToken(uint256,string,string)","946bcc30":"getFounder()","946bf4d7":"winningProject()","946c0344":"getChallenges(uint256)","946ca295":"userTransfer(address,uint256)","946d1480":"ethToUsd(uint256)","946d8806":"getMyPacifist()","946d9204":"initialize(address,address[])","946f8876":"updateTierStatus(uint256,uint256)","94704818":"fillOrder(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256,bytes)","94705167":"enableArbiter(address)","94707a95":"_setRate(uint256)","9470b0bd":"withdrawFrom(address,uint256)","94727b41":"deleteProduct(bytes32)","9472b32c":"sale_period()","9472eb76":"setPayerString(string)","94737987":"referralProgram(bool,uint256)","94741017":"failCrowdsale()","94756e22":"VikoChain(string,string,address)","94759c36":"createQuote(uint256,uint256,bytes32)","9476760d":"AthletiCoin(address,address)","947721dd":"refundEndDate()","947846a4":"RefundableCrowdsale(uint256)","9478a7c9":"getReferralOf(address)","9478ab8c":"ethUsdPrice()","9478ba47":"calcUnclaimedFees(uint256)","9478f7cf":"_receiveEth()","9479f2c7":"STAKE_DEADLINE()","947a3168":"token_name()","947a36fb":"interval()","947aca55":"addMasterAccount(address)","947af462":"setBurnRequestAddressMap(uint256,string,address)","947bc72d":"MAX_TRANSFER_TIMSPAN()","947bd798":"rawManuallyMintTokens(address,uint256)","947cbc1e":"dariatest()","947e8a26":"TOKEN_MINTING()","947f7d1d":"newRandom()","947f8ede":"IcoCapChanged(address,uint256)","947f97cc":"getUnsoldTokens(uint256)","947f996d":"testGreatherThan()","947fd341":"getCoefficientMultiplier(string,string,string)","9480cd1a":"getPillarRoundsKitties(uint8,uint256)","94828ee8":"DelightToken()","94836dab":"sendFounders()","9483e91a":"withdraw(address,uint256,bytes,uint256)","9483f25c":"updateProfile(string,string,string,string)","948623dd":"buy(address,bytes,bytes32)","94868f7d":"airDropPayableTag()","948759d5":"transfermulti(address[],uint256[])","94876995":"isHandleAvailable(bytes32)","9489fa84":"calcSharePrice()","948a70d7":"SingularityTest16()","948b557a":"getDispute()","948b6790":"getTokensPrice(uint256,bool)","948bc5d6":"XfinityUtility()","948cd942":"getDronePot()","948cfd0c":"updateBootyBase(address)","948d902d":"getTokensByETH(uint256)","948e1a1c":"AVAILABLE_TOKENS()","948f1daa":"mintLockPeriod(address,uint256,uint256)","948f5076":"setCache(address)","949076b6":"ensureInterval()","94910d60":"createContract(address,address,uint256,string)","9491a8eb":"updatemktValue(uint256)","949201d7":"LOG_FailedSend(address,uint256)","94923fd7":"LogRevokeNotice(bytes32,address,uint256)","9492fbf7":"BGS()","94930138":"getLoanUnavailableAmount(bytes32)","949319b1":"verifyService(address)","9493242c":"returnLender(uint256)","9493ac07":"setBattleFee(uint256)","9493b9b0":"createMiner()","9493f012":"batchSafeTransferFrom(uint256[],address,address)","949430f0":"BTC_SUISSE_TIER_1()","94953294":"downTheDrain()","94954967":"setMaxWhitelistLengthInternal(uint256)","9495ad6c":"listExists(bytes32)","9495f8c6":"upgradableState()","9496df3f":"freezeQuorumPercent()","94974aea":"unlockedAtBlockNumber()","9497b7a1":"yearlyTeamAmount()","9498a265":"updateCertifier(address,address)","9498bef5":"overloadedMethod(address,uint256)","9498fb26":"ELIX()","94992b76":"ICOSTART()","94993e52":"_breedWith(uint256,uint256,address)","94996680":"setStartTimeStamp(uint256)","9499e018":"destructContract()","949a6868":"RefundTicket(address,uint256)","949a9d59":"receiveWithData(bytes)","949b56ef":"whitelistPrincipleLockPeriod()","949b9e10":"createHumanStandardToken(address[],uint256[],string,uint8,string)","949ba7c3":"GNCCrowdsale(address,address,address)","949c5099":"isAwaitingPRETDETokens(address)","949c89a0":"BitBaBeToken()","949cc9ea":"tokenSupplyBackedByGold()","949cfc64":"restTime(address)","949d225d":"size()","949db658":"rateProvider()","949dcdab":"forceWithDrawToInviter(address,uint256)","949dfa63":"calculatePurchaseReturn(uint256,uint256,uint8,uint256)","949e8acd":"myTokens()","949eabff":"fundsRaisedInWei()","949eb1c6":"bankersLimit()","949f80b0":"RandomExample()","949f80c5":"getResult(uint256,uint256)","94a08c69":"TOTALSUPPLY()","94a0b878":"fromTileId(uint16)","94a0c1cc":"cancelVoteForCandidateBySnapshotBlock(address,uint256,uint256)","94a1710d":"testNonOwnerCantBreach()","94a1be9c":"addVotes(uint256)","94a1d75c":"withdrawBidForSketch(uint256)","94a224c0":"withdrawExpenses()","94a2301e":"tokensInEth()","94a535fc":"TokenAdd(uint256,address)","94a53d41":"minimal()","94a5601a":"getMaxCap(address)","94a5c2e4":"maxValue()","94a5cccb":"deposit_period(uint256)","94a66da2":"GamePlayerCoin()","94a66df3":"objectGloves()","94a74249":"panicked()","94a771d7":"getReportTimestamp()","94a7ef15":"addWhitelistAddress(address)","94a80dd9":"getPoolValue(uint256)","94a82671":"unRegister(address,string,address)","94a89233":"isPluginInterface()","94aa6775":"newDeposit(address,address,uint256)","94aa8174":"AddParticipant(address,address,string,uint8,string,string,bytes32)","94ab9608":"XRRtoken()","94abbeaf":"PieToken()","94ad4f89":"icoDays()","94ae2341":"exchangeHelenium(uint256)","94ae4899":"onMintCalled(int256)","94ae7ac3":"allowanceAdd(address,uint256)","94aef022":"getVariables()","94af9da8":"createNewCombination(address)","94b0780f":"burntokens(uint256)","94b2ffc0":"StarterCoin(uint256,address)","94b31fbd":"getTokenAllowance(address,address,address)","94b367a3":"_takeOwnership(uint256,address)","94b44f3e":"addressToBlock(address[],bool)","94b4c93d":"MomentalyOwned()","94b5255b":"distributePreBuyersRewards(address[],uint256[])","94b5c9f3":"getChampReward(uint256)","94b5ed6d":"minorOwnerShares()","94b66386":"attackIsland(uint256,uint256)","94b67b1c":"getWeakenedDefensePower(uint256)","94b8896c":"holdAddress2()","94b8e58e":"resetWith(address,address)","94b8e72a":"Allocate(address,address,uint256,uint256,bool)","94b918de":"swap(uint256)","94b91deb":"construct()","94b91f06":"PARTNERS()","94b941db":"investorInfo(uint256)","94b9b62f":"getPacifistmasterReq()","94b9bdc4":"BlueDiamond()","94b9f152":"cancelConversion(uint256)","94bab061":"getVersionNo(bytes)","94bacfef":"distributeVLD(address[],uint256,uint256)","94bb136f":"minFinnRequired()","94bb7d64":"itemHistoryOfPlayer(uint256,address)","94bbfb56":"changeAffiliatePercentage(uint256)","94bc7df4":"BlocksToGo()","94bcdb4c":"Example2()","94bd5cb6":"newParityOwner()","94bdb93b":"MessageAdded(address,string,uint256)","94be2423":"setAtomGen(uint256,uint8)","94beb9b2":"ConstructBitcoinClue(bytes32,bytes32,bytes32,bytes32)","94bf804d":"mint(uint256,address)","94bf8862":"numBoards()","94c06a58":"descending()","94c0ac22":"ExchangeZWCToToken(address,address,uint256)","94c0f3e2":"PRESALE_PERCENTAGE_5()","94c176e4":"distributeAll(uint256)","94c19fb8":"LogSaleClosed(uint256,uint256)","94c1d810":"partFromProvider(uint256,address)","94c21ff3":"STATEMENT_HASH()","94c275ad":"maxConversionFee()","94c33163":"getTotalTokensSold()","94c33d90":"districtToBuildings(uint256,uint256)","94c3fa2e":"getLastBlockHashUsed()","94c41bdb":"getPreferedQtySold()","94c467d0":"banAuditor(address)","94c475ec":"setAltDeposits(uint256)","94c4e3c6":"_getVolumeBonus(uint256,uint256)","94c6116f":"getNextPeriodTimestamp()","94c62fb5":"SPARCPresale()","94c64a2e":"updateBtcRate(string,string)","94c69715":"bonusInPhase3()","94c70cb1":"bonusEnd20()","94c77969":"setTokenContract(address,uint8[],bytes32[],bytes32[])","94c87a84":"withrawAllEthOnContract()","94c89af5":"FeeProvider()","94c8cd62":"AreebaCoin()","94c90cac":"EliteCoin()","94c9b647":"sendTransaction(address,uint256,int256)","94ca9f90":"highestBalance()","94cace04":"enableMix()","94cb0947":"availableTokens(address)","94cc0898":"___test()","94ccbc1f":"transferPattern(bytes32,address,string,uint8,bytes32,bytes32)","94cdbea1":"SetDappinfo(string,address,address,string,string)","94cddaf1":"unlockTeamAndReserveTokens()","94cec87b":"preSale3Finished()","94cf9b1b":"FGCToken()","94cfb3d8":"getItemTempHolders(uint256)","94d0025e":"getNumberOfOpenSteps()","94d008ef":"mint(address,uint256,bytes)","94d02fff":"Authored(string,string,uint8,uint256)","94d036bf":"validInitialBuyoutPrice(uint256,uint256)","94d10c41":"spendUserBalance(uint32,uint64)","94d127a8":"calculateSeedBuy(uint256,uint256)","94d1330d":"spinnerCounts(uint256)","94d1b7e8":"triggerFailFlags()","94d26cb5":"getBetterOrderId(bytes32)","94d2b21b":"unauthorizedAddress()","94d2bdfe":"addSkill(bytes32)","94d2ca12":"getByAlias(bytes32)","94d2d7a7":"getCreatorAddress()","94d3d38d":"registerHello(bool,uint8,int64,int64,string,string)","94d3de83":"TeamVesting(address)","94d44f12":"createBattle(uint256)","94d453db":"MIN_INVESTMENT_PHASE1()","94d45856":"placeBet(bytes32,bytes32,bytes32)","94d54581":"EICQERC20()","94d5539d":"transferLocked(address,uint256,uint256,uint256[])","94d63afd":"left3(uint256)","94d645a8":"resolveClaim(address)","94d702a4":"tgeNextPartInvestor()","94d762c3":"Vault(address)","94d77363":"getTokenSold()","94d95f8f":"MAX_CONTRIBUTION()","94d96fa1":"BTC7200on420()","94d9c9c7":"setObserver(address)","94d9cf8f":"CreateProxyWithControllerAndRecovery(address,address[],uint256,uint256)","94da0746":"PRESALE_TOKEN_ALLOCATION()","94dafb16":"geteam(address)","94db4d05":"changeStakingContract(address)","94dba872":"o_automata(uint256)","94dbc70e":"lockState(address)","94dbe74e":"removeEscrow(address,address,uint256)","94dc7cec":"minBuyForPrize_()","94dc84ca":"AUTH_INITCONGRESS()","94ddc8c0":"submitBallot(bool)","94de3825":"_transferToAnotherAddr(address,uint256,bytes32)","94df682d":"loginVerify(bytes32)","94dfd38a":"test_invalidValue1EqValue2()","94e08fc2":"addProduct(bytes32,uint8,uint8)","94e09511":"sendTokenToPlatform(uint256)","94e0d371":"stage3()","94e0e328":"torchRunner()","94e0f844":"totalSellOrdersOf(address)","94e10784":"_getRate()","94e16386":"teammatesworld(address)","94e25c37":"unlockCustomer(address)","94e2662f":"setRequireWhitelistingBeforeDeposit(bool)","94e47e61":"create_block()","94e4a822":"split(address[])","94e4c808":"IPFSStore()","94e50e7a":"getSigner(address,uint40,uint40,uint128,uint256,uint8,bytes32,bytes32)","94e5b7e6":"getPlace(uint32)","94e5e890":"peculOldAdress()","94e8075d":"Development()","94e8767d":"uintToBytes(uint256)","94e93017":"_deployBallot(bytes32,bytes32,bytes32,uint256,bool,bool)","94eb463b":"Unset(address,uint32[])","94eba0b5":"StarCoin()","94ebd374":"purchaseAccessory(uint256,uint256,string,uint256)","94ec233f":"boolCallWithArray(bool,bool[4])","94ec3756":"resister(uint8,uint256,uint256)","94ec3a0d":"playersRequired()","94ed9b77":"append(address,address)","94eedaa4":"hirerReleaseFunds(bytes16,address,address,uint256,uint256)","94ef987e":"minimumPayment()","94efadea":"zoPrice()","94efafe9":"publishTemplate()","94effa14":"WithdrawETH(uint256)","94f0080c":"getBalancePremiumsPaid(address)","94f0b43c":"TripusCandyToken()","94f13f4a":"getGameItem(uint256)","94f183cb":"get_votes()","94f188be":"createIssuedToken(address[],uint256[],uint256,uint256,string,uint8,string)","94f29cb3":"medalIfFreeze(address)","94f2e623":"setLLV_edit_11(string)","94f2ed53":"_unlockNinja(uint256,uint16)","94f3217c":"MINIMUMINVESTMENTSALE()","94f38799":"GoChain()","94f3f81d":"removeAuthorization(address)","94f47146":"put(bytes)","94f5a1af":"LATOPreICO()","94f5ffd5":"betMake(uint256,uint8)","94f60a63":"getKudosLeft(address)","94f61134":"executeOrder(uint256)","94f649dd":"getDeposits(address)","94f6ba1c":"getMonsterClassBasic(uint32)","94f6e8ed":"initBallotProxy(uint8,bytes32,bytes32,bytes32[4])","94f75b96":"PerkToken()","94f7624f":"NAP()","94f8e954":"cancelInvestment()","94f92322":"getTotalPrediction(uint256,uint256)","94f976c3":"confirmProduct(uint256)","94fa3131":"claimBonus(uint16)","94fa5bcd":"setNewApproves()","94fabfb3":"getDocData(uint256)","94fb54d5":"euroThreshold(uint256)","94fb86c0":"referral_ledger()","94fd1c1c":"SAIToken(address,address,address)","94fdb8df":"HolyBible(uint16,uint16,uint16,uint16)","94fdbbb2":"createRedeemMessageHash(uint256,bytes4,bytes32,bytes32)","94fe344d":"SimpleToken(uint256,string,uint8,string,bool,bool)","94fe6ed1":"kTikTakCoin()","94ff1426":"_setTransmuterAddress(address)","94ff4b2b":"getServerFee(uint256)","94ffb819":"addApprover(address,string)","94ffe2c7":"PolicyRegistry(address)","95005a00":"LIANGToken()","95005b8b":"GetPlayerID(bytes32)","9500aa12":"MockController(address,address,address,address)","950108d7":"WithdrawForeign(address)","95029f34":"PendingOwner()","9502bb8a":"renounceMaster()","9502d761":"ProposalSubmitted(address,uint256)","950311ab":"setCurrentAction(uint256,uint8)","95032b62":"rand(uint256,uint256)","9503c4b4":"SmartRouletteToken()","95040933":"mrk_contract()","950463fc":"calculateRefundedEthWithDiscount(uint256)","9504f28a":"THBCToken()","95050862":"optimalExp(uint256)","95059465":"textFor(bytes32)","9505b2a7":"createPanda(uint256[2],uint256,uint256)","9506681f":"updateminContribution(uint256)","95066e33":"getTopic()","95068886":"change(address,uint256,address,uint256)","95069136":"requestLiquidation(uint256)","9506a57a":"Marriage(address)","9506a75c":"setChild(address,bytes32,bytes32,bool)","9507b53a":"SchedulableToken(address,uint256,uint256)","9507d39a":"get(uint256)","9508614b":"addStage()","9509a265":"allocateDividends()","9509ba0c":"getJackpotBalance()","950b5273":"currentARXtokenSupply()","950b550a":"fourth_withdrawal(uint256)","950c84e4":"presalePart()","950cb89e":"_editPriceOf(uint256,uint256,uint256)","950da0c8":"calculation()","950da0e6":"hasMinRating(address,address,uint8)","950dad19":"burnToken(address)","950dff20":"cancelCodeUpdate()","950ef8c7":"setAuthorityContractAddress(address)","950f4170":"gubbermentOverthrown()","950f9813":"rejectPartnerAllocation(address)","95101181":"removeAdminAddress(address)","9511309a":"setMinimumCollateralInEthAmount(uint256)","951166c0":"totalMessages()","9512243e":"TokenPurchase(address,address,uint256,uint256,uint256,uint256,uint256)","95127634":"upgradeOracle(address)","951303f5":"withdrawableAmount()","951367ad":"internalExchange(uint256)","951382bf":"mainSaleHasEnded()","95139780":"checkTokTotal()","951481b4":"addEmployee(uint256,uint256,string)","951506d3":"withdrawFeeRateE4()","9515a524":"BUSINESS_DEVELOPMENT_SUPPLY_LIMIT()","9515af55":"AetherClockAuction(address,uint256)","95163f39":"_finalizeStage()","9516a104":"getAllAddresses()","951717e2":"withdrawPrivateCoinByMan(address,uint256)","9518589a":"cost1token()","95199b24":"claimWin(bytes32,uint8,bytes32,bytes32)","9519e398":"aDeposit(uint256)","951b01c5":"setCertifierDb(address)","951b22fb":"swap(uint256,address,address,uint256,uint256,uint8,bytes32,bytes32)","951b26a3":"changeable()","951b73b1":"updateEndTimeManually(uint256)","951cfa47":"getScope()","951d0332":"_price_tokn_ICO1()","951d6c9c":"getDevRewardPercent()","951d86a4":"setBlockPerHour(uint256)","951e17a1":"totalSupplyForDivision()","951ea5f1":"setMarketingTokensPercent(uint256)","951f4a6e":"_triggerNFTEvent(address,address,uint256)","95206396":"numberLoop()","9520a06f":"DEFAULT_CREATION_LIMIT()","9520cc72":"EtherTradex()","9520f878":"NaxomartToken()","9521000c":"setOnlyShowPurchased(bool)","95210e59":"setBattleRemoveContractAddress(address,address)","95217ec9":"newAttack(uint32[])","9522ca89":"Message_To_Investors()","9524bdf8":"_refundTokenCustomer(uint256,uint256)","9525c0cc":"cancelVote(bytes32)","9525f382":"finalizeSettingCreation(uint256)","95260a29":"PEP()","95263183":"setACmarge(uint8)","95270cd1":"setOraclizeFee(uint256)","95275e5e":"minerLockTime()","95286077":"UBETCOIN_LEDGER_TO_LEDGER_ENTRY_DOCUMENT_SHA512()","952868b5":"onMaintenance()","9528724f":"votedFreeze()","952882fd":"addtoEarlyInvestors(address,address,uint256,uint256)","9528a278":"getAllInvestorPositions()","9528d109":"authorSigned(address)","9528fcb5":"numSubscribed()","952a84ed":"Rocketship()","952a9320":"HexanCoin(uint256,string,uint8,string)","952ad7cb":"forwardSomeFunds(uint256)","952b264c":"FundsReleased(uint256)","952c0f9f":"initGold()","952d6c22":"tokenSaleEnd()","952f2f6f":"setAccountIsFrozenByDate(address,uint256)","95306706":"logTraderTradingTx(string[])","953078cd":"withdrawDivsWithContract(address)","95311142":"dOwnerErc20Claim(bytes32)","9531c536":"ReceivedGBP(address,uint256)","9531d072":"refundETH(uint256)","953203b5":"doMigration(address)","9532c476":"setParcelUsd(uint256)","953307d8":"revealScissors(string)","95334db2":"toIndex(address)","953440f9":"nCeilings()","9534e637":"closePoll(uint256)","9535ce12":"getBool(string)","95360a02":"calCurrentCrystals(address)","95364a84":"isPresale()","953669be":"tokenHolders()","9536c05f":"doCheckSendBounds()","9536e0bb":"returnDirectPayments(address,bool,bool)","9537796f":"addSubscriptionBonus(address)","95377ad9":"testInequalityUint(int256)","9537e8d1":"signContract(uint256)","9538833c":"changeOwnerAccept()","9539c4de":"withheldAmount(address,address)","9539ed7e":"changeFlipper(address)","953a03ca":"minMillPurchase()","953a7fab":"testMoveBalance()","953aa435":"GetPrice(uint8)","953b42b3":"buyClusterToken()","953b7ef8":"withdrawTeamTokens()","953b8fb8":"targetAmount()","953bad32":"verificationAddressMap(address)","953e3450":"DaoRulesProposalAdded(uint256,uint256,uint256,uint256,uint256,uint256,bool)","953e474a":"setKoCommissionAccount(address)","954056f7":"setRedemptionWallet(address)","9540cb80":"End1()","9541945a":"registerNode(bytes16,uint16)","9541bc41":"getUSDAmount(uint256)","954290f4":"guessPassword(address,uint256,bool)","95437056":"AUTH_ADDOWNER()","95438548":"DONATION_RATE()","95441f9f":"ZEEWANTtoken()","95449ad5":"changeTimeInvest(uint256)","9545c42c":"minForExistingTopic()","95470497":"OTHERCRUISER_EXTRACTION_BASE()","95475c1f":"makeChild()","9547b44d":"Prepurchased(address,uint256,uint256)","95480879":"setDefaultMetadataURI(string)","9549355e":"oracalizeReading(uint256)","954969f6":"godSetInterfaceContract(address)","9549c330":"freezeFrom(address,uint256)","9549fea9":"MENSA(address)","954a5c19":"addPot()","954a8f8b":"TransferWithRef(address,address,uint256,uint256)","954ab4b2":"say()","954b2be9":"SelflleryYouToken()","954cbe3f":"mintSpecial(string,string,uint8,uint256,uint256)","954d2cfd":"updateUrl(address,bytes32[5])","954db474":"newProject(string,string,uint256)","954e8c2d":"buyShares(uint256,address,uint256,uint256)","954f3b20":"getTransferHash(address,address,uint256,uint256,uint256)","954ff2ad":"founderTokenWallet()","9550c023":"AllocationRevoked(address,address,uint256)","9551dd58":"listener()","955214d1":"LogRecordWin(address,uint256)","95522e54":"WeaponTokenize()","95523f7d":"newMember(string,uint256)","95533f17":"isTokenInList(address)","95534e00":"getAccountBlocks(address)","95535569":"LianBaoCoin()","9553652b":"Goldencloudtoken()","9553a19b":"BrengsTeamToken()","95543693":"ONE_DECIMAL_QUANTUM_ANZ_TOKEN_PRICE()","9554a202":"changeSwapperAdd(address)","9554c8e5":"getCrydrStorageAddress()","9554f920":"fillChannel(uint256)","9554fa12":"multiplies(uint256,uint256)","9555a942":"withdrawFrom(address,address,uint256)","9555c9d9":"capAdjusted()","95564837":"seed(uint256)","9556a31d":"GVOptionToken(address,string,string,uint256)","9556b05d":"OraclePoloniex()","95578ebd":"useDELEGATECALL()","95579063":"_bidderHasAnActiveBid(address,uint256,address)","9558abde":"sycCrowdsale()","9558e916":"teamWithdrawalRecipient()","9559225c":"debug_hash3Byte(bytes)","955b1535":"checkForNewLeader(uint256)","955b5e72":"CTCToken()","955d14cd":"getLastTime()","955d1721":"availableBalanceInLockingPeriodForInvestor(address)","955d4412":"addLocation(uint256)","955d4d16":"Wixlar()","955d50b7":"TestMasterToken(uint256,string,string)","955ef429":"closedown()","955f0460":"sgpc(uint256)","955ff603":"Viviox()","95607ced":"retrieveAll()","95608083":"_abortCurrentRound()","95612ec0":"allowInvestment()","95617dc3":"reportGame(string,uint8,bytes32,bytes32)","9561a038":"nextContributorIndex()","9561f0d8":"setTradingLive()","95621ccd":"theBet(uint256,uint256,uint256)","95623641":"marketAddress()","956248aa":"determinePayout(uint8,uint8,uint8)","95635b37":"addMiner(address,uint256,uint256)","9563dbcf":"setPeriods(uint256)","95645e34":"initialDistribution()","956483c1":"lastBlock_f14Hash_uint256()","95648f1b":"getFunctions()","95652e4f":"revokeAuthority(address,uint256)","95655f04":"getWilds(address)","9565f2fe":"AllCash()","9565feeb":"isBonusPeriod()","9566880b":"s16(bytes1)","95669952":"debtor(address,uint256)","95671958":"getFileListTail()","95671ed7":"logEvent(string,bool)","9567a161":"newBet()","95693aad":"CompositCoinCrowdsale(uint256)","956a2d03":"balance(bytes32,string,address)","956a2ea7":"setBidRegistry(address)","956a538a":"CoinsRemainAfterICO()","956a860d":"getMartialInfo(uint256)","956ab5d9":"getParetoBalance(address,address)","956b76f7":"setVicepresidenteDeMesa(bytes32,uint256,uint256,bytes32)","956cc859":"INIT_SUPPLY()","956d2172":"setAttackFee(uint256)","956e5f00":"LogEtheraffleChange(address,address,uint256)","956e958a":"dungeons(uint256)","956f4361":"getCampaignsByCountry(string)","956fd9df":"balanceOfPlayers(address)","956fffd3":"setFinishICO(uint256)","95701be3":"rolloverFeePeriodIfElapsed()","9570370f":"bondsOf(address)","95709441":"mintReputation(int256,uint256,address,address)","95722371":"storeX(uint8[],uint256,uint256,uint256,int256)","95722e66":"payPool()","95725d8a":"emitRoleAdded(address,uint8)","957287ce":"market2()","9574f4e1":"createMatch(string,string,uint256,string)","957563ec":"setProviderLock(bool)","95761c77":"SBCS()","9576b180":"initGoldData(uint256,bytes32,bytes32,bytes32)","9576bfbd":"setWhiteLister(address)","9576e5b3":"registerContract(address,bytes32,bool)","9577941d":"LogKill(bytes32,bytes32,address,address,address,uint128,uint128,uint64)","9578bce2":"setCreditsTokenPrice(uint256)","957908d1":"dequeue()","95792430":"grant(address,uint256,uint256,uint256,uint256,uint256,bool)","957a2772":"lastBlock_f9()","957a6254":"bonusScheme()","957aa3d1":"goldmintTeamAddress()","957aa58c":"live()","957ac9ad":"HappyBeeToken()","957b2807":"getPlayerPlayInfo(uint256,uint256,uint256)","957b2e56":"reinvestDividends()","957b52fb":"fidaPerEther()","957b781c":"mintBonus(address)","957b8d98":"publicsaleTokens()","957bb1e0":"bid(bytes32)","957c0ff2":"testNoTokensOneCall()","957d8250":"allocateBid(address,bytes32)","957dcb1e":"mintReservationTokens(address,uint256)","957e05d6":"setAllowTransferLocal(bool)","957f050b":"merchantAccount()","957f120e":"inPublicPreSalePeriod()","957f371f":"totalAmountOfEarlyPurchasesWithoutBonus()","957f9a0b":"tryFlush()","95803d6c":"STARTING_BULLS()","95805dad":"start(uint256)","9580811c":"setBalanceAdmin(address,uint256)","9580c4bc":"migrateFunds()","95816a16":"contributionCap()","958174a3":"ParentToken(uint256,string,uint8,string)","95818603":"fromTweiToFp(uint256)","958222aa":"isTokenTransferable()","95829738":"institutions(bytes32)","9583102a":"verify_send(address,uint256)","958343f9":"setOrderDealSpeed(uint256)","9583cf17":"claim_period()","9584894c":"getElementInfo(uint256)","9584fbfc":"TOKEN_SHARE_OF_TEAM()","9585a877":"isGameActivated()","958689d7":"emitMintEvent(address,uint256)","95878da6":"CurrentICOpublicSupply()","958799cb":"recordPurchase(address,uint256)","95880360":"setExchangeRatePreIco(uint256)","9588378e":"reputationOf(address,bytes32)","95883871":"TradeListing(address,address,address,uint256,uint256,bool)","958993a5":"allocatePrivatePresaleTokens()","958a3698":"setITTMultiSig(address)","958a41dd":"upgradeToAndCall(string,address,bytes)","958a9937":"createProduct(bytes32,uint128)","958b12b9":"ICOCap()","958b3f20":"final_fundraise()","958b6f55":"checkTokenVesting(address,uint256)","958c4be7":"makeCollectibleUnavailableToSale(address,uint256,uint256,int256,uint256)","958ce2d5":"Spoke(bytes16,string)","958d1725":"getChild(bytes32,uint256)","958e0028":"SoarCoin()","958f3624":"totalTokenWinValue()","958fde82":"newPinnedAppInstance(bytes32,address)","95907291":"CaptureTheFlag(string)","9590d4b9":"testCount()","9590ef13":"Option(string,string,uint8,uint256,address)","95910d46":"ownerPrimary()","95925814":"undo_deadline()","95929d22":"_updateNextAmount()","9592d424":"totalNodes()","95930b1c":"getAssetPacksUserCreated(address,address)","95932df3":"addCustody(address)","9593aa9a":"JTOKEN()","95949823":"setRemark2(string)","959499b6":"withdrawProfit()","95955d22":"escrowTransfer(address,address,uint256,uint256)","9595898a":"updateCard(uint256)","95966c3b":"get_eth_balance(address)","95969ba4":"enabledAddresses(address)","95977749":"IvoryTest()","95978868":"strConcat(string,string,string,string,string)","95980858":"currentText()","95982228":"Multiowned(address[],uint256)","95982f44":"GetLottery(uint8)","9598790d":"priceTokenSellWei()","95988a26":"proposalsRank()","95997c51":"withdraw(uint128,address,uint256)","9599ab63":"crowdsaleBonus(uint256)","959a1f08":"Hive()","959ac484":"push(uint256)","959b3fa0":"createSkin(uint128,uint256)","959b6916":"setCollectTokenTime(uint256)","959b8c3f":"authorizeOperator(address)","959c265b":"makePlayerID(address)","959ca192":"createCoupons(uint256)","959cb555":"address_register(address)","959d51f6":"W3SchoolToken(uint256,string,string,uint256)","959e4748":"totalIssuanceLastModified()","959e90ff":"totalTransactionCount(address)","959f601e":"getLimitMaxCrowdsale()","95a01505":"presaleStorageVault()","95a039ba":"getContractAddress(string,string,string,string)","95a078e8":"hasAccess(address)","95a08221":"tokensTotalSupply()","95a0f5eb":"totalMigrated()","95a0f9c7":"removeOffer(uint256)","95a1297a":"totalRewardsRedeemed()","95a13ff3":"polyComplianceAddress()","95a1c14d":"addThreeWayLine(uint256,string,uint256)","95a2251f":"redeem(address)","95a235ae":"set_deposit_address(address)","95a23c3a":"adminsPercent()","95a2d14b":"IcoCloseTime()","95a3bf6e":"getPayoutRequestedState()","95a3e2af":"isAddressFrozen(address)","95a47652":"getMintingStatus()","95a4f76d":"maxSaleNum()","95a50a9d":"monarch()","95a51233":"totalSupplyCeiling()","95a51669":"buyWithETH(address,uint256)","95a5418d":"_patternToNumber(bytes4)","95a59ac4":"PacificaToken()","95a5dfc0":"yes(uint256,string,uint256)","95a6f9ab":"makeProposal(string,uint256,uint256,uint256,uint256,address)","95a70863":"setOwner(uint16,address)","95a8c58d":"hasRole(address,uint8)","95aaa5d9":"BatakToken()","95ab32a3":"securityPercent()","95ad3d98":"ConnectCoin()","95addb90":"questions(bytes32)","95adfe72":"getPlayerPrice(uint256)","95ae0bf9":"extCreateNinja(uint256,uint256,uint256,uint256,address)","95ae66a5":"MilestonePricing(address,uint256,uint256[])","95af7006":"setFirstBonusPercent(uint256)","95afc05c":"withdrawRefunds()","95b1157d":"setLockAccount(address,uint256)","95b18bbe":"Created(address,uint256,uint256)","95b1e4f2":"addClaim(uint256,address,uint256,bytes32,bytes32,string)","95b1f93b":"changeStakerOperation()","95b2110a":"queryAirCrash(string)","95b25a1c":"Biograffi()","95b2d128":"TokenFund(address)","95b34f71":"_getTokens(uint256)","95b3559f":"CertifyDelegate(address)","95b3c92f":"TioToken()","95b3dc77":"setTransferableTime(uint256)","95b4b88d":"allowanceSub(address,uint256)","95b505f0":"getMigrateOutReporterValue()","95b537d5":"selfOn()","95b5d5ac":"token_ask(address,uint256)","95b68fe7":"getTokenToEthInputPrice(uint256)","95b6a08d":"canDisburseMultipleTimes()","95b71187":"getByFromCount(uint256)","95b7c348":"ICOCappedRefundableCrowdsale(uint256,uint256,uint256,address,address)","95b7ea26":"GetMaximumBet_ether()","95b7f0aa":"_removeAuction(address,uint256)","95b890d6":"purchaseTokensWithoutDevelopmentFund(uint256,address)","95b8cf55":"signalBackupWithdraw(address)","95b8fdef":"setCompte_22(string)","95b96e11":"PeriodEnd(uint16,uint256,uint64)","95b9bb68":"setCompositionAddress(address)","95ba64c9":"LogForbid(bytes32,bytes32,bytes32)","95bad022":"countTeam()","95bb733b":"CurrentCrowdsale(uint256,uint256,uint256,uint256,address,address,address)","95bb8d46":"publicSaleTransfer(address[],uint256[])","95bb9fcf":"getHolding(uint256)","95bbbe45":"transferFundWalletWallet(address)","95bc2673":"remove(bytes32)","95bc3bd0":"lockAmount(address)","95bc7eec":"payFunction()","95bc8515":"setHolder(address,uint256)","95bc9538":"changeStatus(uint8)","95bda19d":"register(address,uint256,address)","95bda742":"_create_user(address,address)","95bdca94":"isTyped(address,uint256)","95be55a6":"increasePrice_20_February()","95be7542":"CoinLLeague()","95be9ace":"NewDeal(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool,string)","95c02700":"ACN()","95c08f92":"investmentOf(address)","95c0954c":"ownerOfUUID(string)","95c0c3f6":"confirmGameEnded(bytes32)","95c0c447":"getLimitTypeOf(address)","95c0d65c":"editRank(uint256,uint256,uint256)","95c0e6c3":"transferOwnershipAtomic(address)","95c21ebf":"blueOs()","95c26d93":"thirdTierDiscountUpperLimitEther()","95c2d845":"driveCar(string)","95c303bc":"pyramid(address,uint256,bytes32)","95c30910":"unFreeze(address,address)","95c3be0b":"participantIndex(uint256)","95c3fc9b":"_setPowerBalanceOf(address,uint256)","95c43d84":"PHASE2_SUPPLY()","95c47416":"VoteOnMyTeslaColor()","95c4e59b":"AXIACOIN(address,address)","95c55798":"WZCoinToken()","95c5a2cc":"halfPercent(uint256)","95c5ed9d":"getVoterStatus(bytes32,address)","95c6fa61":"keyOf(bytes32,bytes32)","95c7a23f":"AutoBuy()","95c7b007":"setFreezeTx()","95c8d4ee":"grantAllocation(address,uint256,bool)","95c92d98":"viewTotalAffiliateCommissions()","95c93f8b":"setTierRates(uint256,uint256,uint256,uint256)","95c96554":"cancelVote()","95c97432":"nSubmittedHashes()","95c9f53f":"scaledDividendPerToken()","95cc2e8b":"DATE_ICO_START()","95cc74fe":"buyFromPartner(address)","95ccea67":"emergencyWithdraw(address,uint256)","95ccf8bf":"forward(address,address)","95cd73a2":"OpCoin()","95cd76fa":"getMaxOwners()","95ceb4b3":"winningProtocal()","95d12000":"ownerPercent()","95d22683":"MyUserName(string)","95d2b4b4":"_createMonster(uint256,address,uint256,bool,bool,bool)","95d38ea8":"mintableToken()","95d395dd":"XDToken()","95d47f2f":"lastBlock_f8Hash_uint256()","95d4f7dd":"primaryGasLimit()","95d5766c":"foundersContract()","95d5a1be":"SignatureReg()","95d5f6fd":"officialSite()","95d643a8":"earnings()","95d6718a":"grantOf(address)","95d697c4":"ProofOfReadToken(uint256,uint256,string,uint8,string)","95d793d9":"deposit(bytes32,uint256,address,uint256,address,uint256,bytes,bytes)","95d84b30":"_replaceContract(address)","95d84d99":"setColorPurple()","95d89b41":"symbol()","95d8f60d":"sumHardCapICOStage6()","95d9a030":"externalControllerCandidate()","95d9cc18":"setStdOwner(address,address)","95db03fe":"krypteum()","95dba6c9":"getHealthForCost(uint32)","95dbee2d":"gift(address,address,uint256)","95dcac25":"IGTSGD()","95dd489b":"winningsPerRound()","95ddb3a6":"setJewelContract(address)","95de00a2":"getReservedDestinationInfo(address,bytes32,address)","95dea05b":"cleanActions(bytes32[])","95e05110":"sumHardCapICOStage3()","95e16e97":"validateraffle()","95e19fab":"setup(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[],uint256[])","95e1d9f7":"getGamesForAdmin(address)","95e2a953":"etherRatioForInvestor()","95e2c773":"privatePreICOdepositors(address)","95e396f9":"crowdsaleTokensWallet()","95e3c50b":"tokenToEthSwapInput(uint256,uint256,uint256)","95e3cd5c":"preAllocation(uint256,uint256)","95e4c1bf":"hasConfirmedRecord(bytes32)","95e4d456":"DUNGEON_CREATION_LIMIT()","95e517be":"Offer(address,string,address)","95e52d98":"documentsCount()","95e66ea1":"isLeftTokenIssued()","95e77a05":"testItemStrict(bytes)","95e7b3c5":"angelRate()","95e87385":"availableRef()","95e8a67e":"toB32(bytes,bytes)","95e8d644":"requestRemoveOwner(address,string)","95e8f3e7":"get_hash()","95e911a8":"feeBase()","95eb8f15":"Attempt(address,uint256)","95eced5f":"ZToken(uint256,string,string)","95ecef72":"gSetRunning(bool)","95ed857c":"mintPredefinedTokens()","95ee1221":"isCancelled()","95ee4cfd":"set_percentFeeTimes5(uint256)","95ee8bae":"getInt(address,bytes32)","95eeb240":"disableApproval()","95ef9178":"setTokenSaleContractAddress(address)","95f0684b":"getPackageNameHash(uint256)","95f0f107":"_setBridgeAmount(uint256,address)","95f1260b":"balanceToWithdraw()","95f17bce":"cancelCost()","95f20e88":"RANDCRYPT(uint256,string,string)","95f22405":"getImageInfo(uint256)","95f28272":"salesTokenHolder()","95f382bc":"depositVault(uint256,uint256)","95f47e4e":"setRegulatorAccessLevel(address,uint8)","95f5784f":"FIBASK()","95f59fe1":"vote(string,string,string)","95f62fb9":"registerDevices(bytes32[],bytes32[],bytes32[])","95f847fd":"transferToContract(address,uint256,uint256)","95f9432d":"ThankYouToken()","95fa7430":"get_iconiq_tokens(address,address)","95fbdcd9":"MeshToken()","95fbfa0d":"testBurningUndistributed()","95fc6354":"PLAYER_START_PERIODS()","95fc799f":"allocateRestrictedTokenToPartner(bytes32,bytes32,uint256)","95fcb00d":"addVesting(address,uint256)","95fdd612":"hasRequested(bytes32,address[])","95fe0e65":"createD(uint256)","95fe27d3":"SmartCripto()","95fe4608":"revokeCert(bytes32,bytes,bytes32,bool,uint256)","95fe5234":"setSubnodeOwner(bytes22,address)","95fe6865":"checkIfCanUseTokens(address,uint256)","95fe6f1d":"isAddressReserved(address)","95ff24e3":"SellTokens(address,uint256,uint256,uint256)","95ff3cc1":"getMyApples()","95ffff09":"getMyBananas()","960024ff":"rebuyStarted()","96002aef":"offerProductOwnership(bytes32,address)","9600ead9":"RESELLING_UNLOCK_COUNT()","9600ec92":"transfer(address[],address,uint256[])","9600f294":"refundTokenPayment(uint256,address,string,uint256,address)","9601065d":"reachedMajority(uint256)","96013c9c":"testLatestPkgGetter()","960173b5":"aliceClaimsDeposit(bytes32,uint256,uint256,address,address,bytes20)","9601deb8":"LogTransferOwnership(address,string)","96023032":"updateContractAddr(string,string,string,string,address)","9602339d":"AlfaTowerShares()","96023cbf":"registraToken(bytes32)","96026d61":"BucketAndValuationAndCommitted(uint256,uint256,uint256)","9602bb20":"AMBTICO()","9602e9d5":"withdrawDev()","960384a0":"getValue(string)","96038f8f":"ICO_Graphene()","9604702a":"matchExistingBids(bytes32)","960491d7":"setNextRndTime(uint32,uint32,uint32)","9604a24b":"getPoolCapSize(uint256)","960524e3":"getInvestorCount()","96063049":"rollDice(uint8)","96066cf9":"MintConfirmed(uint256,address,uint256)","96069ee1":"CIPToken(address,uint256)","96074e70":"addBeneficiary(address,uint256)","9607610a":"withdrawFor(address,uint256,uint8,bytes32,bytes32)","960787a2":"sendFoods(address[500],uint256[500])","9607a1db":"claimShare(uint256,bool)","9608088c":"setAddress(address,address,address,address)","960834f4":"dAddBallot(bytes32,uint256,uint256,bool)","9608740e":"verifyBid(uint256,bytes32)","9608e9df":"DataWasRecorded(address,uint256,bytes32,uint256,string)","960954af":"chargeAdvertisers(address[],uint256[],address[],uint256[])","960983f4":"addArtifact(string,string,bytes32)","9609e488":"TootyrCrowdSale()","960a48ae":"createPreIco(uint256,uint256,uint256,uint256,uint256,uint256,address)","960a57fc":"SHA256HashRegister(bytes32)","960ba088":"createFinancialStrategy()","960bfc9b":"_owns(address,uint64)","960bfe04":"setThreshold(uint256)","960d3f56":"impl_mining(address,uint256,bytes)","960d8cd3":"testFailUpdateLatestRevisionNotOwner()","960d94bb":"get_presale_goal()","960e55a8":"ChannelCloseRequested(address,address,uint32,uint192)","960e80b7":"trans()","960ecf0c":"addNewStage(uint256,uint256,uint256,uint256,uint256)","960fa70f":"synthGenes(uint256,uint256)","96102d7d":"ownerSetWallet(address)","9610e068":"GetAskingUnitPrice()","9610f0e6":"pveBattleFee()","96119f12":"SkribbleToken()","9611bfc5":"_getExistingTileAt(int32,int32)","96131049":"withdrawal(address)","96132521":"released()","9613bc90":"isEvolvementAllowed(uint256,uint256)","96147933":"ContractEnabled()","9614c769":"setDesc(string)","9615ecb2":"wasSuccess()","9616b410":"incFreezeIndex(uint256)","96176797":"LogTransition(bytes32,uint256)","96178c20":"totalSupply2()","9617d90d":"cartaxiToken()","96186b6e":"MAX_PERCENT_OF_PRESALE()","961891d5":"changeEscapeController(address)","9619367d":"minBet()","961a16f2":"secondExchangeRate()","961a9218":"setLLV_edit_17(string)","961a929c":"gasPriceLimit()","961b16a1":"addInTeamBalanceMap(address)","961b2b96":"assignBountyAddresses(address[])","961be391":"cash()","961c2470":"refundRoots()","961c9ae4":"createAuction(address,uint256,uint256,uint256,uint256)","961cc569":"airdropReceiversLimit()","961cd8ce":"ticketsForWithExcess(uint256)","961d1284":"isRefundingEnabled()","961d30cc":"getMasterNodesDates(address)","961d3cd3":"setExclude(address,bool)","961e99d9":"startBuyBackTwo()","961f1d96":"RANGESTART_3()","961ffc68":"GatewayInterfaceAddress()","9620b995":"transfterForProjectManagement(address,uint256)","96214735":"setDeployer(address)","962174b6":"LotteryClaveChain(address)","9621bcf7":"publishTaskListing(string,address,uint256,uint256,uint256,uint256)","9621f497":"SetMaxAirDropXblock(uint256)","96221dc9":"mulX(uint256)","962318b8":"teamKeepingPercentage()","96242f41":"getFrontEndTokenSupply()","96246eb8":"Zmbc()","9624e534":"setBlockDotNumber(uint256)","9625a6c6":"hardLimitICO()","9627bf02":"preIcoEndsAtChanged(uint256)","96283310":"setHouseAddressShare(uint256)","96284fb6":"getNizkStruct()","96286cc9":"isTokenOwner(address)","96289427":"transferRestTokensToOwner()","9629da17":"withdraw(uint64,address,address[],bytes32[],address[],uint256[])","962a64cd":"convert(string)","962aab81":"blockEnded()","962ba36f":"quarantine(address,address[],uint256[])","962ba969":"ExceedIOToken(uint256,string,string)","962c9898":"SOLUSToken()","962c9c8d":"MAX_VOTED_TOKEN_PERC()","962ca53e":"Cosby()","962d0c72":"overRaisedUnsend()","962dae57":"getPriceContract()","962ffeae":"totalCurrentFunders()","9630961d":"createRole(bytes32,address[])","9631c1bd":"FounderFeeInPercent()","9633303f":"setSrc(address)","96344d05":"creatorRequestFundTransfer()","963476e5":"listBackers()","9634ef56":"start_of_report_period()","9635024c":"TANDER()","96354f6d":"BONUS_ICO_STAGE1_PRE_SALE3()","9635eaf7":"fundsToAddress(address,uint256)","9635fc2c":"yahooOracleUrl(bytes32)","963630a3":"ETGOLDToken()","963632d3":"Prosperity()","96365d44":"poolBalance()","96370fa2":"savePic(string)","963749b6":"calculateWinnerPrize(uint256,uint256)","963812c3":"createItemId()","96382f0b":"gameStatus(bool)","96383c04":"setPrice(uint256,uint8)","96386ab3":"myMethod2(string)","96389bd7":"OwnedController(address,address)","9638a89c":"DataRecordIndexStructs(uint256)","963a9a13":"startInvite()","963c0724":"Lucky()","963c1121":"set_pre_kyc_iconiq_bonus_numerator(uint256)","963c11df":"totalScammed(address)","963c3397":"winning_year()","963c6017":"postGoldPeriod()","963d62fb":"tokenLossRatio()","963dd1dd":"Diatom()","963de4d2":"GetBet(uint256,uint256,bool)","963e2680":"setMinSiteTipPercentage(uint256)","963e63c7":"minValue()","96401470":"TutorialToken(uint256,string,uint8,string)","96406391":"setTokenDistribution()","9640da30":"ethRedeemed()","96419497":"PAXToken(bool)","9642a19c":"optInGas()","9642ccdf":"functionName(bytes20,address)","9642ddaf":"testMint()","9643aef4":"testControlCreateWithParentSameNonce()","9644fcbd":"changeMembership(address,bool,string)","96450a6d":"walletWithdraw()","9645337a":"removeOrder(uint256)","9645bae5":"newAuction(uint256,uint256)","964620d2":"TheMostPrivateCoinEver()","96463fc6":"createTrade(uint256,uint256)","96468249":"getFoundation(address)","96469132":"setPonziPriceInWei(uint256)","9646b85d":"getMintableAddress()","9646df4d":"presaleEnds()","9647259c":"dividendDistribution()","9647df97":"TES()","9648c9f4":"sessionId()","9649650c":"removeBank(address)","96497258":"withdrawOverdraftTokens(address,uint256)","964997a4":"MoacSupply()","9649ccaa":"updateSubscriptionOffer(uint256,uint256)","9649d98b":"restrict()","964a4ac7":"ULTRA_HERO_MULTIPLIER()","964ad434":"TIER1_CAP()","964afe08":"addSomething(uint256)","964b97de":"box2Star5()","964c0b40":"ExtensionCalled(bytes32[8])","964c7d84":"addressToBlock(address,bool)","964c836c":"receiveExecutionNotification()","964ecc09":"forceRefunding()","964f61f9":"getCosigner(uint256)","964f6dcd":"Elephant()","964f8fba":"totalDinoSold()","964fad94":"fundingGoalOf(uint256)","964fb96d":"test_init()","965232c0":"getTotalAllowed(address)","9652389c":"setPreSaleOn()","9652713e":"runSigned(uint40,uint256,address)","96532d1c":"mintingAllowed()","9653dee5":"tokenSwap()","9653f8a1":"etherBalances(address)","965447d9":"toPowerOfTwoThirds(uint256)","965582d6":"requestNewID(string,string,string)","9655943e":"validMCAmount()","9655e4b0":"sellIdeas()","965693ee":"TicketsPurchased(address,uint256[],uint256[],uint8[])","96574919":"removeStakerFromArray(address)","96577caa":"getLowWinPercent(uint256)","9657f8ad":"TopiToken()","96581de1":"registerPayments(address[],uint256[],uint256[])","9658522c":"createPlayerOnAuction(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,bytes,string,uint256)","96594efb":"WorldBit(address,bytes2,bytes2,uint256,uint256,string,string,string,string)","9659867e":"mintCount()","965a324e":"OxShelterEye()","965a3b7e":"targetDemographics()","965acc73":"setCampaignBudgetById(bytes32,uint256)","965b0cc4":"signedApproveAndCallCheck(address,address,uint256,bytes,uint256,uint256,bytes,address)","965b2bae":"setFinancierParticipationAdd(address)","965b5aa8":"paySolutionRewardGoodRep(address,uint256)","965b71bc":"cfoWithdraw()","965bdf33":"SetAuditedAssetSize(uint256)","965be457":"registerApp(bytes32,address,bytes4[],address[])","965beae8":"bulkTokenSend(address[],uint256)","965c643f":"setReference(bytes32,string)","965c90e3":"getNodeByIndex(uint256)","965edec5":"_publishSecret()","96603e88":"hotPotatoHolder()","9660ab3a":"setContractUser(address,bool)","9660aeeb":"isMatching(int256,int256,int256)","96617ba4":"ClientsNotified(string,string)","966203e7":"Product(bytes32,bytes32,address[],int256,int256,address,address)","9662355e":"generateAttestForDelegationSchemaHash(address,address,uint256,bytes32,bytes32,uint256[],bytes32)","96637b10":"getEscuela(uint256)","9663871f":"recursiveRound(uint256,uint256,uint256)","9663a496":"awardBronze(address,address,address)","9663f88f":"getBlockHash()","96642cfc":"_isAuctionExist(uint256)","9664ca94":"date_string(string,int8,int8,int16)","9664d2d9":"resourceIndex(address,bytes4)","9665688e":"setGame(uint256,uint256,uint256,uint256,uint256,uint256)","966588d4":"cloneWithTwoPops(uint256,uint256)","9665b658":"changeExecutor(address)","9665ef09":"bitmask_show(address)","9665f170":"pregnantEtherDogs()","96661b04":"closeDataResponse(address,bool)","9666856d":"stopList(uint256)","9666cbfa":"getDeployedMatches()","9666e1f9":"isCosignerSet(uint256)","966704c2":"autoTransferLocked(uint256,uint256)","96682704":"TransferToReferral(address,uint256)","96686560":"Setup(string,string)","96687919":"_preSaleSupply()","9668b281":"AKContract()","966933ce":"DURATION_PER_VESTING()","96696da8":"getHives()","966a1961":"get_time()","966a360c":"newExchange(address,uint256,address,address,uint256)","966a3b29":"setJMETHExchangeRate(uint256)","966a7dca":"payOrder(string)","966aa252":"addProperty(bytes32,bytes32,bytes32,bytes32,bytes32,uint256,bytes32,bytes32,uint256)","966acb38":"testThrowTransferNotTransferable()","966aeece":"changeWhitelister(address)","966b3514":"contract_address()","966b7d91":"AdminChangedFundingWallet(address,address)","966dae0e":"factoryAddress()","966dcd26":"intertransfer(address,address,uint256)","966e6ead":"DefaultReleaseCalled()","966edae7":"lastBlock_a3()","966f697c":"_getSubscription(bytes32,address)","966ff650":"totalBurnt()","9670078c":"burnDNC(address,uint256)","9670591b":"giveAwayHoldership(address)","9670c0bc":"getPrecision()","9671ef91":"WEI_TO_INSIGHTS()","9673d6a3":"events(string)","96744afb":"ADDR_TEAM_TOKENS_ACCOUNT()","967506be":"deleteTokenAddress(address)","9675bb9c":"totlePrimary()","967743a8":"unlock20Done()","96778446":"addVestingUser(address,uint256)","967826df":"maxAllowedManualDistribution()","96784f45":"balanceOf2(address,address)","9678a1e8":"ProxyCreated(address,address)","9678df74":"MerlinCash(uint256,string,string)","9678eb05":"SafeDiv(uint256,uint256)","9678fb88":"TACTICALCRUISER_MAX_CARGO()","96793725":"registerWallet(address,address)","9679dd7d":"tokenLeft()","967a08f7":"raiseTransferEvent(address,address,uint256)","967b2692":"SaleCount()","967b3c21":"unitEpicGrowth()","967c33b3":"Deployer()","967dd0ae":"orderFor(address)","967e6e65":"getAge()","967e8611":"placeCube(uint64,uint64,uint64,uint256,uint256)","967f1cc6":"ownerPause()","967ff23e":"blocks()","96800dfd":"updateCap(string,uint256)","96817396":"bonus20end()","96821fc1":"MAX_MILESTONE()","96834e36":"ownerSetStandardFee(uint256)","9683d11d":"OHWOWW()","9683fe3e":"create(address,bytes32,uint256,address)","9684da1a":"createGenesisUniverse()","9684fe92":"interestCycleLength()","9685e736":"stopAvatarCreation()","96862e2d":"PattyCoin(uint256,string,string)","968790d0":"reclamaPagamento()","96879353":"CreateIco(address,uint256)","968803e3":"CYC()","96881d20":"CoinParkToken()","968858c8":"tokenreward()","9688738b":"TokenContract()","968908a3":"createMarketMaker(uint256,uint16,uint256)","968997fb":"FootballToken(uint256,string,uint8,string)","9689ac95":"TYPE_NOT_AVAILABLE()","9689e535":"CBCC()","968b12aa":"Crowdsale(uint256,uint256,uint256,address,uint256)","968bb12c":"setLegalFileLink(string)","968bd60d":"LogSendReward(address,address,string)","968be45d":"MYPPToken()","968d1cff":"percentForCommunity()","968d73d8":"start_service2(uint256,address,uint32)","968d901b":"getCurrentGame()","968ed600":"totalFunds()","968f0a6a":"getBidBySiteIndex(uint8,uint256)","968f9dc3":"EtherReserved(uint256)","968fc02a":"DogRace()","9690be37":"deleteGame(bytes32)","9690caa6":"Umint21()","9691a8bf":"changeIndividualCapInWei(uint256)","969235a4":"getSaleStart()","969283e2":"availableVolumeEnclaves(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","969295ae":"changeReferral(address)","96934e88":"isReward()","96937617":"Rpct()","96938d5b":"watchedAddress()","969464f6":"isCauldronExpired(uint8)","9694f039":"founderSupply()","96957869":"verifySignature(bytes32,uint8,bytes32,bytes32)","9695e3c0":"EOMarketToken()","9696e59a":"totumPhases()","9696ef66":"SLOTS()","9696fbf5":"Daschain(uint256,string,string)","96974e47":"setMinAllowedBetInTokens(uint256)","96984631":"RANGESTART_10()","9698d611":"setSaleManageContract(address)","9699ca16":"getPublicKey(bytes32,uint8,bytes32,bytes32)","969ac477":"PRIZE_POT_PERCENTAGE_MAX()","969be87e":"testGetNewItemId()","969bece3":"setRegionOnSale(uint16)","969bf358":"getCurrentTokenSaleId()","969ca0eb":"scavengeEscrow(uint64)","969cb4da":"changeSubmissionPrice(uint256)","969cb7c3":"getPublisher(uint256)","969d5b94":"changeMultiSigWallet(address)","969da324":"updatedEtherPrice(string)","969ddd71":"getMaxCap(address,uint256)","969e3756":"exchange(address,address,uint256)","969ea336":"maximumInWei()","969eb430":"updateVerifiersPerShard(uint256)","969ef40d":"updateFinishFlag()","969f1af4":"addMinerQuest(address)","969f8a83":"getConfirmations(bytes32)","969fa9d2":"EmergencyWithdrawalSucceeded(address,uint256)","969fbf12":"contructor()","96a04925":"retreiveTokens(address)","96a16793":"changeOraclizeAccountingSettings(uint256)","96a1e85c":"get_total_quantity()","96a34fc7":"exchangeToken(uint256,address,address)","96a44d35":"devuelveApproles(bytes32)","96a49d60":"getCircle()","96a51fde":"OilVisionShare()","96a566be":"PartnersNotSet(uint256)","96a625a5":"plantcToken()","96a68b91":"makeUndestroyable()","96a69d04":"totalSquareStakes(uint256,uint256)","96a6a748":"POHStopTime()","96a70169":"tradeETH(uint256)","96a77176":"setPresaleTwo()","96a7cf6a":"callDestruct()","96a80699":"postAllocateAuctionTimeMints(address,uint256,uint256)","96a942c7":"minTokenPurchaseAmount()","96a952a5":"setInstallmentsLoanData(uint128,uint256,uint24,uint40,uint32)","96a9df88":"_withdrawAirdrop(uint256,bytes)","96aa6305":"totalNotCompleted()","96aab4f6":"setBountyAddresses()","96ab97a5":"hasVested(address)","96ac591e":"postICO(address,address,address,address,address,address,uint256)","96ad4131":"getRequiredAdmin()","96ad6c8a":"deposit_address()","96ad704a":"addToken(address[16],address,uint256)","96adad2e":"sellStores()","96adfe42":"mintWithData(address,uint256,bytes)","96ae44f6":"addAcceptedArbiter(address)","96afb365":"reclaim(bytes32)","96afc450":"emissionRate()","96afccb3":"withdrawDonation(uint256)","96b116c6":"statusDoacao()","96b1348a":"claimTokenFunds(address)","96b1e4d4":"isFreeze(bytes32,bytes32)","96b2c923":"changePlatformWithdrawAccount(address)","96b47f0d":"soldOnStage()","96b55f7d":"tierCount()","96b58ac8":"tokensLeftForSale()","96b5a755":"cancelAuction(uint256)","96b5c5f4":"FeeWallet(address,uint256,uint256)","96b5f7b6":"ParallelWorld()","96b6af5a":"submitCustodianDoubleSign(address,uint256,bytes32[],uint256[],bytes32[])","96b76c23":"stand(uint256)","96b828b4":"Lock(uint256,uint16)","96b86436":"foundersAllocatedAmount()","96b86e1d":"PLCRVoting(address)","96b90b05":"Apex()","96b9a9d0":"medalBoostAndBurn(uint16,uint64)","96bb1fef":"claimStakingRewards(address)","96bba9a8":"slashSmallUsername(string,uint256)","96bc0f94":"onlyAdminsFriends()","96bc1a89":"getLockedAmount_investors(address)","96bc2287":"PRE_FUNDING_GOAL()","96bc3f3a":"getForecastScore(uint256)","96bc4a40":"bsWallet()","96bc5ab7":"setOracleURL(string)","96bcf236":"am_i_on_the_whitelist()","96bd09a1":"edit_safe(address,string,string)","96bd8dae":"transferAllowance(address,uint256)","96be8878":"team2Balance()","96bf15bf":"gamePrice()","96bf4ed5":"TOTAL_TOKENS_FOR_CROWDSALE()","96bf5022":"MRIDUL()","96bfc229":"isInWhiteList(address)","96c0fb8b":"setWhiteListInBatch(address[])","96c108c9":"assignToBeneficiary(address,uint256)","96c12acb":"Fuck()","96c14d92":"closeContract(bytes32,bytes32,uint256,uint256,uint64,uint64,bytes32,bytes32,bytes32,uint64)","96c16735":"UselessAirdroppedToken()","96c237b4":"getDeedInfo(address)","96c266ca":"developersKey()","96c28881":"fundraise_max()","96c2d498":"XTL()","96c2d4c9":"totalTipForDeveloper()","96c36170":"icoEtherBalances(address)","96c38294":"getETHUSD()","96c52fc3":"____forward(address,uint256,uint256,bytes)","96c5406d":"tokenFree()","96c5743a":"test03AliceBuyToken()","96c5ea93":"icoBeginDate()","96c62b27":"BalanceBook()","96c72144":"GrimReaperAddress()","96c74715":"NBW()","96c7a2a3":"BlockRxToken(uint256)","96c81be5":"unicornsOf(address)","96c824a8":"createAccountFundContract()","96c82e57":"totalWeight()","96c85b59":"TestBancorFormula()","96c8da45":"oneTokenInEur()","96ca7653":"LottixTest()","96cb4bc5":"RESERVED_ECOSYSTEM_GROUP()","96cc7be7":"updateCeleb(uint256,uint256[6],uint256[6])","96ccacb0":"hour_blocks()","96cdb027":"InstallerEscrow()","96ce0795":"denominator()","96cea3f7":"confirmWithdrawTransaction(uint256)","96ced078":"getPlayerNumbersInGame(uint256,address)","96cf5227":"changeLockTime(uint256)","96cfd124":"signedTransferHash(address,address,uint256,uint256,uint256)","96cfda06":"getCourseCount()","96cff3df":"getMinimumCallCost(uint256,uint256)","96d002a0":"subFundBalance()","96d02099":"rsplit()","96d122ea":"getStoreAddress(string)","96d195bd":"getWitnesses()","96d1c952":"filterBuyers(bool)","96d28e00":"spinDeposit()","96d2ede5":"preBalanceOf(address)","96d3196b":"getSumActiveToken()","96d373e5":"cast()","96d37936":"finishTokenMinting()","96d43cc6":"getMinimumFundingGoal()","96d46500":"ICO_CAP2()","96d4cb9b":"FipsRegistration(bytes20,address)","96d4d091":"advisorAddress()","96d4ebf1":"finneyPerToken()","96d4f640":"createOrder(address,uint256,address,uint256,uint256)","96d6401d":"TRANSFER_PROXY()","96d66cf8":"expertsAccount()","96d6c134":"coreVUPDestination()","96d7a9ed":"_menu(bytes32)","96d7f3f5":"lastTimeMinQuorumMet()","96d811b7":"TokenVesting(address)","96d8b050":"claimTokensToOwner(address)","96d8f4f3":"minimumDonation()","96d8fe3b":"_updateHistory(address,address)","96d99568":"MMMTokenCoin()","96d9a881":"manualDeleteEditionBids(uint256,address)","96da1fba":"sendETHToContributionWallet(uint256)","96da2848":"gasForCLI()","96dbab81":"stub()","96dbad1e":"sellCityForEther(uint16,uint256)","96dbb486":"updateFinishTime(uint256)","96dbbc5f":"Token_Description()","96dbe56e":"ImpCore(address)","96dc461f":"setBountyTokensCount(uint256)","96de0c20":"_makeWithdrawForPeriod(bytes32,uint256)","96de56d2":"getPlayerFlips(address,uint256)","96de6caa":"qtyValidators()","96de9c8c":"cnyBtcRate()","96dea936":"proposalData(uint256)","96df3540":"TLD_NODE()","96dfa78b":"price_per_eth()","96dfcbea":"checkState()","96dfcc21":"weAreClosed()","96e05fdb":"PaymentAccepted(address,bytes8,uint256)","96e0ef33":"send(address,address,address[],uint256[])","96e1a657":"timeBetweenEditions()","96e264ff":"ownerSetPayOutDivisor(uint256)","96e332f3":"mainSaleMaxTokens()","96e438a1":"reclaimDeposit(uint256)","96e4ee3d":"convert(uint256,uint256)","96e4f67d":"icoEtherReceivedMainSaleDay()","96e50a8c":"saveNonce(uint256)","96e583a9":"getLetter(uint256)","96e6e65f":"ETCN(uint256,string,string)","96e76fa7":"Unregistered(string,uint256)","96e83a40":"refund(uint256,address,address)","96e8cace":"dripMe()","96e8d14c":"newRecord(string,string,string)","96e9df8d":"deployNewContract()","96e9f6f2":"lastBlock_v12()","96ea7487":"Opacity()","96ea76b7":"OnWithdrawTo(address,address,uint256,uint64)","96ea8b9c":"referralPercentage()","96ea9f49":"FundTransfer(address,uint256,uint256,uint256,uint256)","96ebabba":"distributeSuccessfulCampaignFunds(uint256)","96ebfb89":"generalManager()","96ec1ca2":"tipUser(bytes32,bytes32,bool)","96ec6fec":"APP()","96ec7114":"COMMUNITY_SALE_START()","96ecf3c4":"subtractFrozenBalances(address,uint256)","96ed10a4":"issuePOIs()","96edb898":"callTokenFallback(address,address,uint256)","96ee03d6":"__concat(string[6])","96eecf95":"saleSuccessfullyFinished()","96ef7aa0":"cash_transfered(string)","96efbb9b":"getActiveItemAt(uint256)","96f099bc":"preSaleTokenRaised()","96f0aa8f":"findNextSecond(uint256,bytes)","96f1370d":"TotiMed()","96f17aa5":"potTarget()","96f2710d":"managerOn(address)","96f27b29":"getContract(bytes32,uint256)","96f36997":"CLIBUXCoin()","96f392f4":"elixir()","96f42876":"buyerAddressTransfer(address,address,address)","96f429ba":"stateIsFinishedReplay(uint256)","96f47800":"investInternal(address,uint128)","96f494d1":"printCourse0(uint256)","96f6706f":"cancelOfferBob(uint256)","96f68782":"right62(uint256)","96f76f11":"contractFinished()","96f7807a":"getDuel2(uint256)","96f93e65":"Expire(address,address)","96f9cffa":"shareBonus()","96fb2e62":"Party(string,address,string)","96fbab31":"getZombiesFullInfoByOwner(address)","96fc00c2":"setPresale(uint256,address,uint256[])","96fcbf65":"numOfSampleTypes()","96fcd214":"slaveServer()","96fd1df7":"isEndedTrack(uint256)","96fd550a":"betWithCredits(uint64)","96fe1338":"storageTime()","96fe5418":"contestEndTime()","96fe6e74":"external_oraclize_randomDS_setCommitment(bytes32,bytes32)","96fedaf7":"extraMinted()","96fef3f1":"submitTransactionToken(address,address,string,string,uint8[],bytes32[],bytes32[])","96ff0306":"retireWildHard(uint64,uint64,uint64,uint64,uint64,uint64)","96ff4483":"setTokenAsideAddresses(address,address,address)","96ff7631":"SetupYOU(string,string,uint256,uint256,uint256,address,address,uint256)","96ff7e97":"requestIdentity()","96ffa690":"countLocalRecursive(uint256)","96ffac0b":"setupRace(uint256,uint256,address)","97004255":"aliceClaimsPayment(bytes32,uint256,uint256,address,address,bytes)","9700d0f0":"stage_2_TokensSold()","970129be":"getCardInfo(uint256)","9702795d":"REFERRAL_SHARE_RATE()","97028899":"play(bytes1,bytes1)","97034ed0":"get_HoldersProfit(address,uint256)","970388b5":"setContractActive(bool)","9703ef35":"cancelBid(uint256)","9703fa2e":"airdropQty()","9704122c":"getFeeAmount(uint256)","97046afc":"burnProvider(address)","970574ac":"lnUpperBound32(uint256,uint256)","9705a592":"getUnprocessedQueryCount()","97062e8a":"ico3Bonus()","9707f708":"Totalsupply()","970875ce":"currentSnapshotId()","9708e250":"maxSellCap()","9709709a":"MomentumToken()","9709cdbc":"getExchangeGroupsKeyAt(uint256)","9709d040":"NewPayroll(address)","970a5fa8":"exchangeRateIdx(uint256)","970afd9b":"MAXIMUM_64_BIT_SIGNED_INTEGER_VALUE()","970db3df":"SPECIALIST_STAKE_TWO()","970e5904":"safeGetPartialAmountCeil(uint256,uint256,uint256)","97100be9":"setLiveTx()","97107d6d":"setProxy(address)","9710f014":"completeStatus(string)","971130b5":"MulaCoin()","9711715a":"snapshot()","9711e944":"Queue(uint256)","9711f20d":"isSanctuary()","971217b7":"values()","9712a57e":"purchasePotato(uint256)","9712a764":"takeBounty()","9712da8b":"getCompte_20()","971362c9":"partnerWithdraw()","9714378c":"extend(uint256)","97145273":"setHidden(address)","9714a27c":"miningOneFree()","9714f05c":"_minimumContribution()","9715a81f":"SurvivalRanchTestCoin()","9715d80e":"getCanShareProfitAccounts()","9715f05d":"OBSERVER(uint256,string,string)","97169426":"Owned1()","9717137a":"TLN_TOKEN_NAME()","97172664":"getIcoAddrCount(uint256)","97173a7a":"referalPayCount(address)","971751af":"lockAndDeliverTokens(address,uint256,bytes1)","9717ae9d":"DTCC_ILOW_5()","9717b2ae":"DividendsTransfered(address,uint256)","9717d76f":"getCandidatePosition(address,uint256)","9717df19":"fillFromQueue()","97187ac8":"coinSaleStarted()","9718b524":"newTreasury(address)","9719f290":"lockTeamTokens(address)","971a3593":"updateClosetime(uint256)","971a9091":"crystal()","971a9a29":"CbxeToken()","971b2b2e":"getFreelancerFeedbackOn(address,uint256)","971bd1b4":"estimateDistribution()","971c803f":"getMinimumStackCheck()","971ccc16":"addERC20Token(address)","971d2bd8":"getProposalByHash(bytes32)","971dbe0e":"getNbrOfPartyFor(address)","971e668f":"updateTokenToEthOrder(uint32,uint128,uint128)","971e80cb":"setWallet()","971ec3ce":"globecoin()","971f34a1":"SellPriceChanged(uint256)","971fe56b":"poolWeight()","971fff63":"setAdsStorageAddress(address)","972030bb":"mixGenesRabbits(uint256,uint256,uint256)","97203543":"getGuestCount()","972041e4":"getTokenTime(uint256)","97204d8e":"delegateProxyImplementation()","972072a2":"resolveChallenge(string)","9720dd5a":"kBit()","972161f7":"getFullState()","97217085":"maxBetDoubleDice()","9721dd4c":"GoldenChain()","972205d4":"Untethered(address,string,string,uint256,uint32,uint32,uint256,uint256,uint256)","97227325":"simulate_ico()","9722cdc6":"EarningsWithdrawal(uint256,address,uint256)","97235a1e":"receiveToken(address,uint256)","97246156":"HoQuBurner(address)","9724fc95":"getTotalProposalsCount()","9725b4a5":"BOXIcoin()","9725bd80":"preIcoEnded(uint256,string)","97267ae9":"startDividendDistribution()","972711cc":"KoreaShow(uint256,uint256,address,address)","97271615":"contract_newOwner()","9727e379":"addMeter(uint32,string,string)","97294e58":"register(address,string,address)","97296421":"joinTheHunt(string,string)","972973e7":"setOfferPrice(uint256)","97297467":"checkAndVerify(bytes)","972993e6":"b2bcToken()","97299d8a":"lendingDays()","9729d040":"_slashPower(address,uint256,bytes32)","9729ec26":"generateWarrior(uint256,uint256,uint256,uint256)","9729f9b9":"getBlockComission(uint256)","972ab95a":"bennylamToken()","972afc80":"ownerSetEmergencyStatus(bool)","972c169e":"datboiSupply()","972ca383":"MONTANATOKEN()","972d1ae2":"_getNextTokenId()","972e6151":"operationalReserveAddress()","972fa53f":"createTeam(string)","97304ced":"mintTokens(uint256)","973069f8":"transferRemaining(address,address,uint256)","97306c27":"getData3(uint256,uint256,uint256,uint256)","9730b305":"burnTokens(uint256,address)","9731a897":"famedStarMassToIds(uint256)","9733348a":"ProdToken()","9733dc79":"ManagerContract()","97346423":"HCOIN()","9734855d":"WhitelistAddressenable(address)","973516f2":"getH1Amount()","973549ea":"_setAddress(bytes32,address)","973628f6":"currentEra()","97365a0b":"safe(uint256,string,string)","97365df2":"sameOdd()","9736a590":"DistributedTokens(address,uint256)","9736aeb4":"OwnershipTransfered(address)","97374d89":"preIcoAllocation(uint256)","97379c32":"CBIX(string,string,uint256,uint8)","9737bc41":"ShineCoinToken(address,address,uint256,string,uint8,string,bool)","9738418c":"getVersions(bytes32)","973880e8":"getMinesInfo(uint256[])","973882e9":"returnPollStake(address,bytes32)","97388497":"getNumberOfRequests()","973885c0":"test_setMaxSize_decreaseSize()","9738968c":"canUpgrade()","9738b602":"getElementInfoView(uint256)","9738f92c":"transferLogicAuthority(address)","97391e2d":"PurchaseMade(address,bytes8,uint256)","9739203b":"view52()","9739951c":"tokenEmission(address,uint256)","9739db9d":"createOwnershipOffer(address)","973ad270":"removeArbitrator(address)","973b56e8":"MIN_FREEZE_DURATION()","973bc8cf":"getParticipantsChannel(address,address)","973cbc75":"testFailAppendTranch()","973d641e":"SplitPayment(address,address)","973dbfb7":"withdrawalValue()","973e315b":"setMigrateFromLegacyReputationToken(bool)","973e9b8b":"getAllowance()","973e9c5c":"Radiance()","973ea9d5":"team2Address()","973f6129":"adminArray(uint256)","973fcaef":"SIMCOIN()","973fe7ef":"secondWeekBonus()","97409192":"addRequest(uint256,string,string)","9740e4a2":"left87(uint256)","9741efe4":"currentBankroll()","974207fb":"logfolio(bytes32)","974238fd":"CreditMC()","97425a54":"ANMFutureVesting()","9742ca46":"setMiner(address)","9742d64a":"destroyBeneficiary(address)","974317dc":"ThreeDL()","9743ad98":"totalReservedAndBonusTokenAllocation()","9743c6c3":"joinMain()","9743dfc1":"jesterAutomaticCollectFee()","9743efe5":"kin()","974463d6":"ronerToken()","9744a1b1":"depositWithToken(bytes,uint256,uint256,uint256,uint256)","9745ac4d":"getResponseUint(int256,uint256,bytes32)","9745ad9c":"stageIT()","974626b4":"LotsaFucksToken()","97463b75":"getPOOL_edit_27()","974654c6":"finishPresale()","974654f4":"requiredGas()","9746f42b":"getBalanceTeam(address)","9747145b":"claimStorageForProxy(address,address,address)","974811fb":"tokensToEthereum_1(uint256,uint256)","9748334b":"PskERC20()","97487af8":"TOTAL_SUPPLY_ACES()","9748bf5b":"bucketValue(bytes32)","9748db00":"DragonKing(address,address,address,address)","9748dcdc":"punish(address,address,uint256)","97495cce":"rate_toTarget()","974a832d":"rejectCertificate(uint256,uint256)","974b2525":"removeBurningMan(address,uint256)","974bd64b":"PromissoryToken(bytes32,address,uint256)","974c86b5":"Buy()","974cf025":"lockDonationReceiver()","974e7dc9":"_getWeekTotalStake(uint256)","974ee3bb":"_updateLockUpAmountOf(address,address)","974ef924":"parseBool(string)","974fa121":"GiveAnAngelCS(uint256,address)","974fd2f3":"setLastBattleResult(uint64,uint16)","975057e7":"store()","97508f36":"pollNonce()","97514d90":"sellOrder(uint256)","97518f74":"_OmnesCoinToken()","975289fd":"getPriceVolume(uint256)","9752bcd3":"guaranteedBuyersLimit(address)","9752f163":"deployAgent()","975347b8":"removeAddressFromAccessControl(address,uint8)","97537bdf":"BotCoin()","9753a84e":"PCHAlN()","9754a4d9":"grantVestedTokens(address,uint256,uint64,uint64,uint64,bool,bool)","9754a7d8":"pauseSell()","97557f6a":"QTB(string,string,address)","9755a710":"hasWinner()","97566aa0":"getMintDigest(uint256,bytes32,bytes32)","97567579":"getTokenWithdrawalAllowance(address,address)","975739a5":"maxKudosToMember()","9757e8a3":"customerCount()","97584b3e":"_hasAvailability()","9758af1e":"doesEntryExist(bytes32)","9759512b":"LogRefund(uint256)","9759c160":"BuyCore(address,uint256,uint256)","975b123e":"get_firstbytes(bytes,address)","975bad75":"_createCountryId(uint256)","975be231":"emitPricesUpdated(uint256,uint256)","975c2308":"getHeir(uint256)","975c5cab":"getSanageLink(uint256)","975c95da":"ICO_PERCENTAGE_5()","975dfff9":"monsterIdToTradeable(uint256)","975e001a":"tokenBonusForForth()","975e463a":"addInvoice(address,uint256,uint256,uint256)","975e76b3":"transferAdvisorsToken(address,uint256)","97603560":"rescueTokens(uint256)","9760b450":"_Stand()","97614302":"playCount()","976160fa":"SetDesignatedRouterSRV(bytes32,uint256,bytes,bytes)","9761cd63":"reduceHatchCooldown(address,uint256)","97623b58":"removeContract(string)","97624631":"assertEq(bytes,bytes)","9762737a":"remove_branch(uint256,uint256,uint256)","9762e9ea":"icoStartedTime()","9762f802":"hardCapReached()","976371c9":"_isTokenOwner(address,uint256)","9764053b":"_price_tokn_ICO2()","9765b4d7":"autoSend()","9766178c":"tradeDealRequested()","97668720":"set_centralAccount(address)","97672729":"releaseLockedTokens(uint8)","97679646":"whitelistMinTok(address)","9767dae8":"userWithdrewWei(address,address)","9767fff7":"setImageOwner(address[16],uint256,address)","976898c7":"bid(string,string,string,string)","976934ac":"dCHF()","9769eacf":"setBuyOpen(bool)","9769f0b0":"sellToken()","976a0b82":"vettingTime()","976a77b6":"freeForCarrots(uint256)","976a8435":"units()","976b01c0":"setNotRetractable(bytes20)","976b59b5":"ElyxrShrimpFarmer(address)","976bd47d":"LOOMIA2()","976bdba4":"makeOrder(address,address,bytes32,uint256,uint256)","976c3d04":"calculateTokenPrice(uint256,uint256)","976d00f4":"auditSecret(bytes32)","976d16d5":"getTotalAccessories()","976d36d0":"totalSupply1()","976e0da9":"getNextPrice(uint256)","976e14d6":"salePriceWei()","976f37fd":"lowCompose(uint256,uint256)","976f6c92":"lastBlock_a19Hash_uint256()","976fcda7":"WithdrawlRemainingPAT()","97709cde":"ARK_VOTER_1_00(uint256,uint256,uint256,uint256,uint256,uint256)","97709ce7":"setRaffleAddress(address)","977174ff":"normalRoomMax()","9771ccc8":"removeERC20(uint256,address,uint256)","97722acf":"getCapOfToken()","9772c982":"scheduleCall(address,bytes4,bytes,uint256,uint256)","9773252a":"isInBonusList(address)","9773489a":"forceOffsetExecuteMaxFee()","97734b85":"BNB(uint256,string,uint8,string)","9773b22e":"_HachirokuToken()","9774c190":"ShieldCureToken()","977564ed":"Zylli()","977567a4":"ico(uint256,address,uint256)","977615a3":"startDatetime()","9776415f":"setConntractEnable(string,uint256)","9776aacf":"addToken(bytes32,address)","9777487d":"sponsorValue()","977785c5":"testInitalBalanceUsingDeployedContract()","97779e1b":"isStop()","9777a30e":"EYHToken()","9777aa49":"owner_endGetting()","97788180":"GetCitySnapshot()","9778a177":"ManualPurchase(address,address,uint256)","977919bf":"adjustFeeAmount(uint256)","97792f2f":"PembiCoinICO()","97799d47":"Tmc4(uint256,string,uint8,string)","9779dcd9":"sendInvestmentsToOwner()","9779e135":"CreateUpgradeCards(uint256,uint256,uint256,uint256,uint256,uint256)","977a5ec5":"hold(address,uint256)","977a8f1b":"logTokenTransfer(address,address,uint256)","977ab3c2":"mintarget()","977af81c":"changeMessage(bytes32,string,uint8,bytes32,bytes32)","977b055b":"maxPurchase()","977cdc7e":"completeDefaultOperators()","977d2c45":"totalWallets()","977d6276":"getOrderPriceInfo(address,address,uint256,uint256)","977d996d":"createEvent(uint256)","977e09e6":"addGameRecord(address,uint256,int256,uint256,uint256,address,uint256,uint256)","977ed151":"fetchCancelledOrdersForPayer()","977eda79":"txLog(uint256)","977f1213":"FucksToken()","977f3b05":"calculateRegionSalePixelPrice(uint256)","977f7c7e":"bet_on_team_2()","977f9e24":"offlineDonate(uint256,uint256)","977ff98f":"currentSaleAddress()","97810850":"setPlaySeed(address)","9781a37e":"setCooldown(address,uint256)","9781c3ca":"buyTokensSigned(address,bytes)","9782c9ef":"unfreezeTrading()","9782e1ec":"ProxyMock()","9783585d":"setState2WithStop(uint256,uint256)","9783bef4":"EighthContinentSocialMarketplaceToken(uint256,string,uint8,string)","978414bd":"transferZTXOwnership(address,address)","9784696c":"PauseOff(uint256)","97848574":"NevadaBlackBook(address)","9784af62":"createTokenContract(string,string,uint8,uint256)","9784f585":"crowdsaleHardEndTime()","97871e56":"EtherPush()","9787a6b3":"setUint8(int8,uint8,uint8)","97883d1f":"tokenPriceMultiplies(uint256)","9788a8e7":"HOU(uint256,string,uint8,string)","9788c342":"HardCapReached()","9788d5ff":"_updatePrices(address[],uint256[])","9789103f":"fallbackProposal(address)","9789f9da":"crowdsaleFinishTime()","978ab53b":"withdrawFundInsurance()","978afdc8":"getBountyAmount(address,address)","978bbdb9":"feeRate()","978bc247":"_checkSetSkill(uint256,address,uint8,uint256,uint256,uint256)","978c5b15":"LOCKED_2Y_DATE()","978ca331":"mintSub(address,uint256)","978cb570":"firstTimer()","978d5c0e":"ASCCoin()","978d602a":"withdrawETH(address,address)","978d6cff":"ICO_TOKENCAP()","978dabbe":"test_fourValidEqBytes32()","978f68b5":"cancelListing(bytes5)","978f8934":"createPromoKydy(uint256,address)","9790268b":"setRewardBlockThreshold(uint256)","97905a88":"recoveryKey()","97907827":"sharesHeld()","97911fd7":"MyGameToken()","97912c2f":"startPreICOTime()","979260bd":"reserve2Address()","97936258":"GetBaseN(uint256,uint256,uint256,uint256)","9793714f":"approveSettingDeprecation(uint256,bool)","9793ebf4":"getBooleanMapValue(string,address,address)","97950740":"roomForBirth()","9795a644":"BITWhaleBalance()","9795aabf":"setNewTokenOwner(address)","97971c69":"TwentyOneMillionToken(address,uint256)","97976d15":"raisedUsing(uint256)","9797f51f":"ELTToken(address,string,string,uint256,uint256,uint256,address)","9798532f":"_priceToTax(uint256)","9798a106":"isNullAddress(address)","9798dfc2":"ReinvestAmount()","9798e639":"distributeLCWP(address[],uint256)","97990635":"SmartInvestmentFundToken(address,address)","97992a04":"villainIndexToOwner(uint256)","97994b96":"changeOpenNumber(uint256)","97997ebb":"stakeWithdrawDisallowPeriod()","979a5e1a":"set_presale_arbits_sold(address,uint256)","979af14d":"checkAccount(string)","979b49de":"checkBonusTokenAmount(address)","979b6f6f":"RoundInfo()","979bc638":"withdrawBidForPunk(uint256)","979bfba7":"PUMPHODL()","979c2441":"times7()","979c7a38":"MultiWhitelist(address)","979ca729":"IcoContract(address,address,uint256,uint256,uint256)","979cf824":"tokenSaleEnabled()","979d6dc7":"HUT34_WALLET()","979e0f22":"AuctionResumed()","979e199d":"setProceedsAccount(address)","979e8852":"existsEscuela(uint256)","979f1976":"tryInsertSequenceId(uint256)","97a09338":"freeMoney()","97a0a3ec":"SpeedCashTokenContract()","97a1c2cd":"preSaleFirstDay()","97a1d3f7":"_emitHolderOperationalChanged(bytes32,bool)","97a28819":"resetDividends()","97a315ff":"CHF_Omnidollar()","97a33431":"toContractDie(bytes32,bytes32,uint256)","97a42022":"scanOutputs(bytes,uint256,uint256)","97a432ff":"addressesToUsernames(address)","97a53219":"setSwapToken(address,uint256,uint256,uint256,uint256,bool)","97a55722":"get_win_coefs()","97a6278e":"removeAgent(address)","97a629aa":"shareholdersBalance()","97a6ef4a":"AutoCoinToken()","97a7293d":"getCCH_edit_5()","97a75fe8":"seriesASupply()","97a7804e":"FrozenToken()","97a7cfb4":"takeTheTorch_(uint256,address,address)","97a8c6ec":"emitEvent(string,address,address,uint256,uint256,string,string)","97a95086":"getBAU(bytes32,address)","97a97005":"transferAllArgsYesAllowance(address,address,uint256,address)","97a989c2":"__getbalance()","97a993aa":"buyers(address)","97aa28b4":"publicUnlock(address,uint256)","97aaa73c":"timeBasedBonus(uint256)","97aab362":"setReg(address)","97aae114":"setDeprecatedManual(uint256,address,bool)","97ab4786":"reserved(uint8)","97ab5baa":"withdraw_if_failed()","97ab9e7a":"contestStartTime()","97aba7f9":"recoverSigner(bytes32,bytes)","97ac37de":"_purchase(address,uint16,address)","97ac3b51":"CHXToken()","97ac3cd9":"noMoreNextRoundSetting(bool)","97ac4a25":"isRoundActive(uint256)","97acb3bb":"addAction(address,bytes4,bytes32[])","97acb94d":"withdrawalFrom(address,address,uint256)","97ad1cbf":"alterDividendCooldown(uint256)","97ae4491":"serviceFeeWithdraw()","97aeb405":"IFIN()","97aeb7ad":"setTeamByAddress(uint8,address)","97aeecd0":"AtraToken()","97af34db":"listActiveBets()","97af77b8":"getVisaAmountPaid(address,uint256,uint256)","97af90ae":"_userRefund(address,address)","97afb40c":"request_withdrawal(address,uint256)","97b0484e":"TOKEN_ICO2_LIMIT()","97b081ef":"setOrderDealTimeInterval(uint256)","97b09aa6":"tokenSaleAgreement()","97b0ad7d":"Fizzy()","97b10976":"removeAmountForAddress(uint256,address,address)","97b150ca":"tokenAmountOf(address)","97b1b2b7":"getFundStatsMap()","97b1ff1d":"getNumberOfBeats()","97b27c46":"decision(bytes32,string,address[],uint256[])","97b2f556":"numPlayers()","97b3116e":"setPrePaidFee(uint256)","97b34e1f":"readBools(bytes32[])","97b3ab70":"BetComplete(bool,uint256,uint256,uint256,address,uint256,bool)","97b3b441":"isAvailable(uint40)","97b4ddac":"currentGenesisAddresses()","97b51442":"setMinimumWait(uint256)","97b61c68":"giveOwnership(uint256,address)","97b68b60":"finishFreeGetToken()","97b6cf42":"icoParametersSet()","97b73c5c":"setMockUint256(int256,bytes4,uint256)","97b740e2":"addAuction(uint40,uint40,uint128)","97b817c9":"beginGame(address,uint64)","97b9d025":"past_present_future()","97ba42b3":"getsometoken(address,uint256)","97ba89c9":"setBetUnit(uint256)","97bb0de0":"mintLockedTokens(uint256)","97bb2a63":"newvow(uint256,address)","97bd820a":"divRound(uint256,uint256)","97bdc7c8":"changeWhitelist(bool)","97bdc9cc":"setBytes(address,string)","97bec0ec":"unlockCZR(address,uint256)","97bfd8cb":"_setClassMechValue19(uint256)","97bff97f":"broadcastTransfer(address,address,uint256)","97c0262a":"commissionWallet()","97c06deb":"debit(address[],uint256[])","97c08da6":"assignBurner(address)","97c112d5":"ItemInfo(uint256)","97c25f95":"coupon(address,uint256)","97c2a9b7":"withdrawFoxt(address,uint256)","97c3ccd8":"ban(address)","97c414df":"registerAccount(address)","97c5ed1e":"showMeTheMoney(address,uint256)","97c6006e":"SetFreeQDA(uint256)","97c6e24d":"ARMOR()","97c8f311":"distributeTokens(address[],uint16[])","97c9085f":"fromBytes96(bytes32,bytes32,bytes32,uint8)","97c911d5":"InitMaster(address)","97c93398":"test_insert_atPosition()","97cb2c17":"getSpaceshipProductPriceByModel(uint16)","97cbdfc9":"transferAbnormalERC20Tokens(address,address,uint256)","97cc3070":"setOrderFill(bytes32,uint256)","97ccd07b":"medium()","97cd1829":"copyEntireGlofile(address)","97cda349":"getLargeBonus()","97cdcbfd":"trainEquipment(uint256,uint256,uint256)","97ce3a4b":"getUnitsInProduction(address,uint256,uint256)","97ce8c43":"setFashionSuitCount(uint16,uint256)","97ceb310":"setHardCapInEther(uint256)","97d02e00":"DaoChallenge(address)","97d0b02c":"setUserManager(address)","97d11588":"createStandardDerivative()","97d159e7":"setMinTransfer(uint256)","97d32a12":"afterCrowdsaleAddress()","97d33c33":"burnNotDistrTokens(uint256)","97d351b3":"_doTradeForEth(address,uint256,address)","97d3624c":"TransferableMeetupToken(string,string)","97d3c683":"priceStep8()","97d425cb":"canBeTransfered(address,uint256)","97d47a60":"registerAccountant(bytes,address)","97d4cfb9":"initialTokenSupply(address,uint256)","97d4f342":"playerOneCommit(bytes32)","97d551a1":"TEC_TOKENS_NUMS()","97d5c6a1":"setEndTime(uint256,uint64)","97d5f823":"sendPOSTokens()","97d61c46":"getRedeemValue(uint256)","97d63f93":"initSupply()","97d68c77":"resolveSupply(address)","97d6ce76":"companyTokensInitial()","97d6daba":"expropriate(uint256)","97d74abd":"dataSourceCallbackTeamId(uint256,uint8)","97d7f2ee":"FundToken()","97d814c3":"withdrawCeo(address)","97d88cd2":"subAllowance(address,address,uint256)","97d8a7e9":"getFreelancerHourlyRate(address,address)","97daa043":"register(bytes,address,address,uint256,bytes)","97db0a7b":"soccerGo()","97db7edb":"stopEmergency()","97db9a95":"changeAuthority(address,address)","97dbfc5a":"ICOEnabled()","97dc4a13":"airdrop(uint256)","97dc4c6f":"earlyBirdMaxPerPerson()","97dc97cb":"authorizedCaller()","97dd9892":"getCurrentRoundTeamCos()","97ddeb77":"LimitReached(address,uint256)","97dedb06":"strToBytes32(string)","97df212b":"getPersonaAttributes(address)","97df5028":"winProbability(address)","97df573e":"storageAddr()","97df8a50":"changeSuperContract(address)","97e10a79":"transferERC20(address,uint256,address)","97e12b0d":"lastRoundEndTimestamp()","97e1754c":"previousEntries(uint256)","97e18af3":"crowdsaleLock()","97e1d68d":"PRESALE_BASE_PRICE_IN_WEI()","97e1e9b5":"ILFManagerCandidateKeyHash()","97e1f48b":"userReinvest()","97e30fc4":"setPendingValue(uint256,address)","97e42023":"setRebuyThreshold(uint256)","97e484d2":"ElementeumTokenProxy(uint256,address[],address[])","97e4c28b":"transferPrefix(string,address)","97e4fdea":"pause_2()","97e4fea7":"exists(bytes8)","97e5d18a":"thirdLoos()","97e645f3":"isCallbackDone(address)","97e6c7f7":"getWeeklyDividends()","97e6dada":"_own(uint8)","97e851f6":"updateOptionalCommission(uint256,uint256,address)","97e8b490":"edit(uint256,address,uint256,string,string,string,string,uint256,address,uint256,string,string,string,string)","97e8e520":"stakeToMany(uint256[],uint256[])","97e92794":"digitalSignature()","97e950f7":"setMaxInvocations(uint256)","97e9a0bf":"contractPrice()","97e9beef":"withdrawUser(uint256,address)","97ea403d":"getCityResources(uint256)","97ea6e15":"bytesToBytes7(bytes1[7])","97eb0eab":"addAirdrop(address,uint256,bool)","97eb147d":"rlc_bounty()","97eb1800":"investorsStockInfo(address)","97ebe0d6":"approveTokenCollection(address,address,uint256)","97ec23cb":"getCreationTime(uint256)","97ec642c":"MAX_WITHDRAWAL()","97ec72b8":"STLHToken(string,string,uint8,uint256)","97ecd379":"nPlatCurTotalEth()","97ecfaab":"delWhitelist(address)","97ee041b":"incrementBasketsBurned(uint256,address)","97ee0a05":"SendPreReserved3()","97eea08b":"Mineral()","97eede11":"FACTOR_10()","97ef9779":"TransferBase(uint256,string,string)","97efff39":"amountToWithdrawOnDate(uint256)","97f1943c":"ROG()","97f22ea9":"addToPresaleWhitelist(address)","97f28419":"getAdminAddressIndex(address)","97f2b4b0":"isBetActive(bytes32)","97f2f5c3":"maxTokensForSale()","97f3016b":"finishLock()","97f3bb0c":"removeLocking(bool)","97f3c21e":"isUpgradeFinished()","97f3de37":"SetDataServerAddress(address)","97f46527":"getNextVestingQuantity(address)","97f58e91":"isLiquidating()","97f59897":"_nextOwner()","97f606eb":"ShowUnrelease(address,uint256)","97f735d5":"isBanned(address)","97f7b4f7":"getBid(address,uint256,uint256)","97f8fee1":"CORPAddress()","97f990f2":"KNOWLEDGE_TO_GET_1FRANKLIN()","97fa346d":"sellTank(uint32,uint256,uint256,uint256)","97fb070b":"registryRequestDocumentation()","97fb2a14":"JTU()","97fb2cea":"getCustomerAtIndex(uint256)","97fbbfd1":"CoinstocksToken(uint256,string,string)","97fc93ab":"cashBack(address)","97fcb54e":"transfer_eth(address,uint256)","97fce1bb":"setGameLogicContract(address)","97fcedba":"setTotalInvestedToken(address,uint256)","97fdf5f2":"FOUNDERS_TOKENS_VESTED_1()","97fe5ea3":"addAdvocatedTAOLogos(address,uint256)","97fe728a":"useName(string)","97fe9129":"setCCH_edit_27(string)","97feb926":"depositERC20(address,uint256)","97fed5f2":"TokenXGroup()","97ff335b":"AddNewCourse(string,string,string,string)","97ff5be4":"getData_12()","97ff6d10":"cancelPlatformWithdrawal()","98004a2a":"processContributions(address,uint256)","980054be":"icoIsFinished()","9800fc16":"removeAllowedContract(address)","98019a41":"adjustAddressWealthOnSale(uint256,address,address,uint256)","9801ca60":"getWeeklyTokensForHoldersAmount()","9801cb8e":"ProofOfExistence()","98024a8b":"getPartialAmount(uint256,uint256,uint256)","98024f18":"testThrowsTransferDisableNotEnabled()","9802dd1a":"Dpc()","98036e7a":"ADVISORS_PERCENTAGE()","98041ea3":"addMember(address,uint256)","980481e0":"isABatchOpen()","98057510":"addLockedTokeB(address,uint8,uint256)","980591f4":"pause(bool,string,address,uint256)","9805d7d2":"landsOf(address)","98063de4":"LogPollVoted(bytes32,address,uint256)","98066221":"FlowchainToken()","980934ec":"create(address,string,bytes32,uint256)","9809a38b":"supplyPerColor()","980b05e0":"_createCollectible(bytes32,uint256,uint256)","980b5335":"getAvailableAmountWithdrawal(address,bytes32)","980c2f21":"releaseForeignToken(address,uint256)","980cf053":"stage4Bounty()","980d75ab":"Readcoin()","980dc482":"addOrder(address,uint256,uint256,uint256)","980e6e08":"timeLeftToCook()","980e8c81":"FutureBlockCall(address,uint256,uint8,address,bytes,uint256,uint256,uint256)","980ee29f":"MakeDai(address,address,uint256,uint256)","980f62b1":"kickoff()","980f8e5e":"createPaper(string,bytes32,uint256,uint256[],address,address[])","980fb0aa":"abortByBroker()","980ff6c6":"executeProposal(bytes32)","981012f2":"AddressChecker()","9810e089":"return_owner()","98110106":"_ownerTransfer(address,address,address,uint256)","981101f5":"VERToken()","981111ef":"factorial()","9811c7c1":"target(uint256)","98123528":"numThings()","98129013":"left47(uint256)","981489b8":"setWidthrawFor(string,uint256,uint256)","9814d0ee":"isProposalEnded(bytes32)","981566ce":"LotteryCore(address)","9816006c":"DeWeiSecurityServiceToken()","98163597":"getTotalVolumeEth(address)","9816af58":"getUserPools(address)","98179c41":"burnBalance(address)","98182950":"TARGET_TOKENS_ADDRESS()","98191a20":"inPreSale3Period()","981a1327":"tokenToExchangeTransferOutput(uint256,uint256,uint256,uint256,address,address)","981a60f5":"extractNameFromData(bytes)","981ae401":"ACTION_TAX()","981b24d0":"totalSupplyAt(uint256)","981b405b":"willChangeCost()","981b69b7":"soldForFifth()","981c6946":"holderAdded(uint256,address)","981c80b3":"Maia(address)","981c9e07":"PBSU()","981cc7ae":"GetRichQuick()","981dd797":"process_contribution(address)","98203e6b":"setDeprecated()","982078b8":"requestTokensFromCrowdsale()","98221166":"changeTypeHash(bytes32)","982270e7":"setPOOL_edit_6(string)","98229465":"_isAuthorizedOrOwner(address)","982296a8":"emitEvent(string)","9822e501":"exchangeOwner(uint256,uint256)","98234a6c":"max_crowd_vitas()","982371b4":"cancelOrder(address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","9824425a":"takeOrder(uint256,uint256,uint256,uint256)","982475a9":"approveKyc(address[])","982495c7":"attend(address[])","9824cec8":"CryptoTicketsICO(address,address,address,address,address,address,address,address,address,address)","9824e7f7":"userWalletTransferEther(address,address,uint256)","98251353":"grantedWallets(address,address)","98257d84":"changeDefaultTimeLock(uint256)","982657f3":"startGame(uint256,uint256,uint256,uint256)","98270d24":"atxToken()","982713e1":"ComplexExchanger(address,uint256,uint256,address[],uint256,address)","98278bc8":"DefaultSweeper(address)","9827a996":"terminateProject(bytes32)","98290c53":"stakeBelaSplit(uint256,address)","98296c54":"assertEq(uint256,uint256)","982a2376":"settingExist(uint256)","982a83eb":"createCrowdsale(uint256,address,string,string,uint256,uint256,uint256)","982a96e3":"bonusRemaining()","982b5dd2":"processVestingRules(address,address)","982b6689":"transferMultiple(uint256,address[])","982bb5d8":"setDepositsSigned(bytes32,bool)","982c0455":"getSpecifiedComment(address,uint256)","982e5721":"getRateNow()","982f4a21":"INFOCORP_DONATION()","983032c2":"newShare()","983086df":"HMTCrowdsale(address,uint256,uint256,uint256,address,address)","9830a8fd":"getCustomerTxRegistry(address)","9830aa07":"UBlockChain(address)","98313b10":"splitTokensAfterDistribution(uint256)","98315249":"getUsersMicroModulesIds()","9831ca4d":"joinMiniGame()","983234b6":"setAmounts(uint256,uint256)","9832ee65":"resultsWeightedByTokens()","98337afb":"largeCount()","983485e1":"buyEthereumToken()","98358f82":"cap_in_wei()","9835efaf":"setAmountToDistribute(uint256)","98366d1c":"isMint(int256,address)","98390730":"takeAllEther(address)","98391c94":"muteMe(bool)","9839eafd":"getTicketNumbers(uint256)","983a7f47":"setDNA(uint256,uint256)","983a8c8a":"_setRoles(address,uint8[])","983a95b2":"trackClick(address,address,address,address)","983b2d56":"addMinter(address)","983b94fb":"finalizeAuction(bytes32)","983bc49d":"currentBalance(address,address)","983c0a01":"closeCrowdsale()","983c4647":"TunTokenERC20()","983c7630":"setPermissionByAddress(uint8,address,bool)","983c8449":"VzanToken(uint256,string,string)","983ce499":"_set2()","983df7cd":"isOperatorAuthorizedBy(address,address)","983e1318":"Hack()","983ef725":"getDifficulty(uint256)","983f724b":"getCassetteType_()","9840a504":"NFCToken()","9840a6cd":"getSubscriptionValue(bytes32)","9840a8f8":"minAllowedBetInTokens()","98413ff1":"extensionByIndex(uint256)","98416339":"KRYPTONIUM()","98419ec5":"shouldThrowOnAttemptToTransferWhenNotOwner()","9841a2d8":"startSale1Phase()","9842692b":"_contractFallbackERC223(address,address,uint256)","984274af":"preTgeCap()","9842a37c":"__callback(uint256,bytes32)","9842ec30":"drawItemLottery(address,uint256)","9843e648":"setItemsEC(address,address)","9843eae3":"airdropActive()","984413b8":"_eraseNode(bytes32)","9844347b":"createCertificate(bytes,bytes,uint256,bytes)","98445e6f":"getCurrencyPayment(address,uint256)","9844613e":"ViewCoin()","984474fb":"price_token()","9844d5a7":"Martcoin(uint256,string,string)","984572d0":"privatePreICOBonusPercent()","9845b448":"PHASE5_START_TIME()","98475e30":"BTCETH(uint256)","9847d267":"GoodLuckCoin()","984809bf":"setPublicOfferingLimit(uint256,uint256)","984877b0":"GoalHitWithdrawl()","9848fef8":"tokensReleasedToEcosystem()","984a27be":"m_SMRMinter()","984a470a":"forwardedOutcome()","984a74f7":"TazitToken()","984ac378":"lotteryTitle()","984bc8c5":"placeTicket()","984c0450":"withdraw(bool,uint256)","984c14ac":"setupVolumeMultipliers(uint256[],uint256[],uint256[])","984ce0fd":"transfertoacc(string,uint256)","984d11fc":"validSupply()","984d4a93":"setAdminsAddress(address)","984ddfe8":"DevTokensHolderMock(address,address,address)","984e1ff4":"mock_setShouldSucceedTransfers(bool)","984e2829":"_updateState(address,int128,uint128,uint256)","984e5a0b":"FunKoin()","984ec03e":"_storeStakes(uint256,address,uint256,uint256,uint256,uint256,uint256)","984fba49":"removeInvestorFromWhiteList(address)","9850d32b":"maintainer()","98512d72":"round1TokensRemaning()","9851553b":"EthereumTravelToken(address,uint256,string,string)","9851663f":"_computeCurrentPrice(uint256,uint256,uint256,uint32)","98519340":"setParameters(uint32,uint32,uint32,uint32,uint32,uint32)","9851b2bd":"AIN()","9851fd9a":"eventStatus()","9852099c":"depositId()","9852595c":"released(address)","9853b234":"createPhoenix(uint256,uint256,uint256)","98544710":"setKeyHash(bytes32)","98547a45":"donacionCruzRoja()","985540b9":"remove(int8,int8)","98575188":"removeUser(address)","9857650c":"claimIFactor(bytes32,uint256)","9858cf19":"FREE_SUPPLY()","9859387b":"createAccount(address)","98593b7a":"SenseProtocol()","98596560":"get_activity_by_id(uint256,uint256)","98596726":"note(uint224)","98597629":"max_value()","98598905":"subVirusDef(address,uint256)","985989d2":"ROLE_UNDER_MINTER()","9859adf0":"_payByEth(uint256)","985a882c":"MINEX()","985b71f1":"calcBindedBlindHash256(string,address)","985bdd43":"isExchangeAlive()","985c7564":"getNextTournamentData()","985d43f1":"TOTAL_APC_SUPPLY()","985d5702":"ExShellStock()","985dea23":"getETH(uint256,address)","985df3a7":"setHeroAssetAddress(address)","985e2cdf":"updateExchange(address,address,bool,bytes4[])","985e4634":"CreateLPT(address,uint256)","985e4cd0":"sumBalanceOf(address)","985f26f6":"AddOwners(address[])","985fc7ea":"destructionAddress()","98603cca":"disableBurning()","98608111":"getStorageNameHash()","9860d0a5":"setTransferFee(uint32,uint32)","98636f32":"isException(address)","98646d68":"setNumDesignatedReportNoShows(uint256)","98650275":"renounceMinter()","98668b24":"tokensVotedForDisable()","98672215":"getTearAward(address,uint256,uint256)","98683105":"CCH_EDIT_1()","98686304":"Elance()","986876e6":"ChannelCreated(address,address,uint192)","98688a95":"Ai()","9869aca0":"setSchedule(uint256,uint256)","9869b736":"ONE_MILLION()","9869f1b7":"migrateTokens(address,address)","986b3a9a":"getCanvSize()","986b5676":"loveID()","986bb99a":"setPOOL_edit_30(string)","986bf5e8":"addAudit(bytes32,uint256,bytes32,uint8,bytes32,bytes32)","986c1938":"setRegistrarAuth(address)","986c7cc7":"BitArbToken()","986cc311":"executeProposal(uint256,uint256,uint256)","986ccc7f":"setHelper(address)","986d08a8":"OSECOIN()","986dcd4d":"setCycleLimit(uint256)","986e791a":"getString(bytes32)","986e7ed3":"AssignGGCOwner(address)","986ec464":"tokensLeftDrain(uint256)","986ee316":"VoteMemberCandidate(uint256)","986f3c9b":"addComment(address,address,bytes32,bytes32,bytes32)","986f737b":"onrs(uint256)","98702402":"refPercentage(address)","9870d7fe":"addOperator(address)","9871cb8f":"Moneto(address)","9871e4f2":"makeSubscriptionId(address,uint256)","9871e510":"hashExists(string)","9871ee02":"PCT()","98729c37":"_changeUpPrice(uint256)","9872a20a":"registerUInt(address,uint256)","98738f97":"preIcoBonuses(uint256)","9874a3d0":"WAIT_BLOCKS()","9874cdf4":"performRefund(bytes32,bytes32)","9874f5d7":"addString(string)","9875958c":"PlaceRocketForSale(uint32,uint80)","98764f22":"setPrice(uint32,uint64)","9876962a":"setstart()","9876ee61":"coinsAddresses(uint256)","98772e80":"disrupt()","987757dd":"settle(bytes32)","98779240":"transfersAllowDate()","9877bdff":"Alice()","9878cc51":"MELON_ASSET()","98791010":"deleteHpbNode(address)","987b7967":"BLOCKMALLToken()","987b904b":"BOUNTY_LIMIT()","987bc844":"HolikopterTokenToken()","987c6b9d":"swap(address,string,string,uint256,uint256,uint8,bytes32,bytes32,uint256)","987c9efd":"PayIreward()","987cb9b0":"updatePublicSale(uint256)","987cec61":"converted(uint256)","987d9768":"ILF(address)","987e565d":"buyKim(uint256)","987ea899":"addAssetManager(address)","987eae8f":"totalPets()","987f3bdb":"_playGame(uint256,uint256,uint256,bytes32)","987f710a":"TIME_TO_COOK()","987faf18":"prevJackpotsLength()","9880472f":"multiSigOutputAddress()","98804938":"deposit_eth(uint8,uint256)","98806bf0":"convertTokens(address)","98827d5e":"createCoins()","9882e15e":"withdrawOverdue(address,address)","9883521e":"presaleProcessed()","9883548a":"fint32(int32)","9883b9f4":"addAmendment(string)","98842c3b":"ipfsGet(uint256)","988483d4":"convertMsgValueToBytes20()","98864aaf":"getPropertyFlag(uint16)","98866c1a":"personUpdateDOD(uint256,int256)","98866ead":"_gensGenerate()","9886de1f":"multiTransfer(uint256,address[])","98876609":"create(bytes32,address,bytes32[])","98880043":"addGame(string,string,uint256,uint256)","9888103f":"buyTokensInternal(address)","988a18f6":"claimTokens(address[],address)","988a9fb5":"getTokenIdOfAddressAndIndex(address,uint256)","988b590f":"withdrawBSAFE(address,uint256)","988ba8e8":"finishPreSaleRound()","988bfcfa":"_buyToken(address,uint256)","988bfd47":"ProxyCreationAndExecute(address)","988da80f":"getUserName(uint256)","9890220b":"drain()","9890d6bc":"GetDisputesAtTheMoment()","9890eabe":"distributeDividendsOnTransferFrom(address,address,uint256)","9890f48a":"LocalStarRoster()","9891d61c":"getEnabledTokensLength()","9892003a":"TexasHoldem(string,uint8,uint8)","9892977b":"_attributeSale(address,uint256)","98934c0a":"payEther(address[],address,uint256[])","9893f27e":"allowancePresetTransfer(address)","9894221a":"SendCashForHardwareReturn()","98943c88":"getAllWeaponData(uint256)","9894ba7c":"transferOut(address)","98951b56":"approveProposal(uint256)","98951bfc":"foundersAmountLeft()","9895dd78":"setRegularTransTime(uint32[])","98968f15":"purchase(address,uint256,uint256)","98969906":"PassportToken()","9896b6cb":"testToUint16()","98973f2b":"setRestrictedAddress(address)","9897e8a5":"scalarEvents(bytes32)","98981756":"teamExists(uint256)","98983cc5":"isCrowdsalePaused()","9898e18c":"tokenSender()","9899276b":"getOwnedTokensLength(address)","9899722d":"newRateTime()","9899a2c5":"aliceClaimsDeposit(bytes32,uint256,bytes32,address,address,bytes20)","989a55fa":"_increaseApprovalAllArgs(address,uint256,address)","989b595f":"shuffleSeed(uint256)","989ceab1":"WhitelistAddressAdded(address,address)","989ced26":"updateTokenContract(address)","989db511":"Input()","989ddfce":"AdminDeleted(address)","989e4a8c":"_processPurchase(address,uint256,address)","98a05bb1":"deletePermission(address)","98a05cfb":"arbitroAprovaPagamento(bool)","98a0871d":"buyXaddr(address,uint256)","98a0bf6e":"ForeverChain()","98a0e1c8":"computeKnockoutPoints(uint8,uint8,uint8,uint8,uint8,uint8,bool)","98a10993":"finalizeWhenForked()","98a1803c":"ICONotCompleted()","98a1b397":"ROLE_OPERATOR()","98a1e1ba":"ownerSetLimits(uint256,uint256)","98a26497":"payCeo()","98a29a58":"testControlDisownNotTransferable()","98a2f59f":"ToLend()","98a30f76":"totalTokensPreICO()","98a322ae":"ownerComission()","98a33bfe":"addGlobalConstraint(int256,address,int256,bytes32,address)","98a34fef":"withdrawBeneficiary()","98a36ebf":"setTradeEventEnabled(bool)","98a42ec4":"verificationAddressNumberMap(address)","98a595a5":"requiresInitialization()","98a6a6c0":"isTokenSaleActive()","98a73afa":"getAwards(uint256)","98a7cafd":"setData_27(string)","98a87f7d":"CPCToken()","98a892c9":"getBylawsCashBackVoteRejectedDuration()","98a9ae44":"remaindersSet()","98a9bfd4":"is_max_goal_reached()","98ab1c72":"setBackgroundImage(uint256,bytes)","98aca922":"getReceiver()","98acd7a6":"getBaseToken()","98ad004c":"GetCollectionInfo()","98ad2f12":"getid(address)","98af629b":"winnerDecidedGas()","98b00ee0":"getFinalBytes()","98b01fe3":"totalBonusTokensIssued()","98b04c16":"SportistToken()","98b0787e":"playerTwoCommit(bytes32)","98b1e06a":"deposit(bytes)","98b23a29":"TimeShareEstate()","98b35e73":"saveReading(string,string)","98b3dfd6":"NamCoin(address)","98b41763":"publicGetAdvertisement(uint256)","98b547e0":"transfer_ownership(bytes32,address)","98b7db75":"PayForFlag(uint256)","98b90fe1":"closeOption(address[3],uint256[3],uint256[2],bool)","98b9a2dc":"changeWallet(address)","98b9d151":"InsuranceHolder(address,address)","98ba2453":"canSynthesizeWith(uint256,uint256)","98ba676d":"getEntry(uint256,uint256)","98bbc47e":"addPerson(uint256,string,string,string)","98bca41a":"removeSeenAddress(address)","98bcfbb8":"minimumTokensBeforeSale()","98bd359c":"deposit(address,uint128,string,uint32)","98bd5663":"confirmTime()","98bdf6f5":"tokenIdCounter()","98be22f7":"forfeitGame(uint256)","98be7c62":"minterFeePercent()","98be7df7":"releaseEthers()","98bf043d":"clearUnusedDeposit(uint256,uint256)","98bffb2a":"manualRecovery(address)","98c07938":"votersCount()","98c086d8":"_amountReq()","98c0bb94":"returnante(address)","98c16888":"SToekn()","98c20c00":"addToAllocation(uint256)","98c23836":"schellingDB()","98c31b1d":"addEvent(uint256,uint256,uint8,string,string)","98c39cc2":"AnubisToken()","98c5166c":"inResources(address,bytes4)","98c547b8":"setContentExtraData(bytes32,string)","98c562b3":"contributionsBySender()","98c66b7f":"_startTokenTransfer(uint256)","98c69648":"DEFAULT_NAME()","98c6a46f":"setPayoutDistributionId()","98c6e760":"migrateTo()","98c7458e":"getEventsByIds(uint256[])","98c83a16":"PRIVATE_SALE()","98c8bde6":"GICTBalance()","98c9cdf4":"getMinimumCallGas()","98c9faac":"cancelActiveAuction(uint40)","98ca667f":"FOUNDERS_SUPPLY()","98cb12dc":"isRandomPlayer()","98cb2342":"getNumEvenSplits()","98cba526":"TeamAndAdvisorsAllocation(address)","98cbb277":"Admined()","98cbefbe":"init(string,string,uint8,address)","98cc223f":"BiboToken()","98cc2c53":"VerifiedKYC(address)","98cc6754":"dumpBalance(address)","98cdf0ca":"updateConfig(uint16)","98ce476a":"EPTCrowdfund(address,address,uint256)","98cef4bd":"earlyBirds()","98cf6dd3":"deleteInvestorTokens(address,uint256)","98cf6f22":"queryN(string,bytes)","98cfa44e":"setFSTPrice(uint256,uint256)","98d0573e":"_getActiveMessageId()","98d07356":"getDepositValue()","98d0a6c7":"setBcouponAllocationFactor(uint256)","98d0b85f":"isNonZeroAccount(address)","98d0de03":"addPlayerToServer(uint256,uint256)","98d15134":"companiesManager()","98d24806":"GetPlayerById(uint256)","98d2e3b1":"calcTokenToWei(uint256)","98d30c50":"winnerCheck()","98d31a13":"AIR_2()","98d35f20":"anchors()","98d41484":"applySettings(uint8,uint256,uint256,uint256,uint256,uint256,uint256)","98d48567":"disapproveUserKYC(address)","98d4cacb":"_assemblyCall(address,uint256,bytes)","98d4e59c":"decreaseOffsaleCountByOne()","98d501ca":"OysterPearl()","98d5a1b1":"burnFromIco()","98d5fdca":"getPrice()","98d6ceb3":"BetSetAnswer(address,address,uint256)","98d6d8ed":"isPresaleStarted()","98d70779":"contRefer50x50()","98d714ac":"ethereumFromAltar()","98d7352f":"setTokenURI(address,string)","98d7456f":"ShowInfo(uint256)","98d764be":"Myastheniagravis()","98d78fe2":"soldDuringTokensale()","98d8adc0":"DividendDistribution(uint256,uint256)","98d8d7b4":"Vlicoin()","98da2133":"SEC_contract()","98da8121":"lock_vote_amount(bool)","98daa8c2":"changeJoysoWallet(address)","98dacb46":"setLockPostion(address,uint256,uint256,uint256,uint256)","98db173f":"calcaultePrizes()","98dc6ae2":"divX(uint256,uint256)","98dc8b44":"getStageIndex()","98dd0293":"changeBonusFrequency(uint32)","98dd0baa":"getNumOfLotto()","98dd4b7c":"getCountStakesToken()","98de4f35":"purchaseTokensfor82(uint256,address,uint256)","98de921f":"removeLoanFromPortfolio(uint256,uint256)","98dec601":"REGULAR_RATE()","98dedf30":"getBySchool(uint256,uint256)","98df3d00":"getNote(bytes32)","98df67c6":"revealSecret(uint256)","98e00e54":"getCallWindowSize()","98e02be7":"abandonShip()","98e09333":"valueGet(address,string)","98e0fb08":"ICO_TOKEN_SUPPLY_LIMIT()","98e12d12":"updateAnimal(uint256,string,string)","98e15065":"info256(string,uint256)","98e1a322":"LivepeerTokenFaucet(address,uint256,uint256)","98e1b410":"getMoney()","98e1b6cd":"stopPromotion()","98e23dcf":"finishPreSale5()","98e25733":"currentRoundNum()","98e314a2":"distributeDonationTokens()","98e364d6":"saasApiProfitAddress()","98e3d1d3":"getWineProductionRate()","98e4053f":"changeVerify(address)","98e47e49":"LoomToken()","98e4f581":"getSkin(uint256)","98e527d3":"getProposalsCount()","98e52f9a":"decreaseSupply(uint256)","98e54c55":"setAsTest()","98e6176a":"_isProxy(bytes32)","98e73df9":"hasOutstandingChallenges()","98e76e06":"buyValue()","98e7ea43":"reward(uint32[],address[])","98e8c54f":"testerCanReentrant()","98e8f365":"getYourRewardStock(address)","98ea1c51":"ecrecovery(bytes32,uint8,bytes32,bytes32)","98ea5fca":"depositEther()","98ea6536":"_beginOfICO()","98eaca94":"inKissBTC(uint256)","98eaf11c":"getBool(bytes32,bytes32)","98eb1096":"CalculateCreateFee(uint256)","98ec341d":"addThing(bytes32,string,string,bytes32)","98ec9095":"total_distribution()","98ecd12c":"test_mixValidEqBytes32Message()","98edc9ce":"distributeLottery()","98ef4b0b":"total_iou_purchased()","98ef5bf9":"BuyItem(uint256,string)","98f038ff":"migrateRegistry(uint256)","98f04128":"getRoundJackpot(uint256)","98f1312e":"MINT_CAP()","98f1e0e7":"sendTokensWindow(uint8)","98f20367":"Curatable()","98f22786":"FireToken()","98f23a6d":"createToken(string,string,uint32,uint256,uint256)","98f25c44":"removeCurator(address)","98f28571":"ClientOrderEvent(address,uint8,uint128,uint256)","98f2af3a":"createGame(uint32,uint64,uint32,uint32)","98f31c82":"price2Of(uint256)","98f32d1d":"getCatRequestPrices()","98f3b81a":"getShares(address,bytes32[],int256[])","98f3c443":"CROWDSALE_WEI_CAP()","98f423b2":"bitsmileToken()","98f42e3b":"payoutInvestors()","98f44c62":"resetTokenOwnerReward()","98f4b1b2":"rateOracle()","98f4f54f":"KhairulRamadhan()","98f52c52":"firstChainHNw1()","98f5ee5d":"spawningManager()","98f69aeb":"_addChildToParent(bytes32,bytes32)","98f6c7e5":"refereeInvitations(address)","98f6ff63":"unlock(string,address,address,uint256)","98f72f42":"COSS()","98f7ba63":"UBCToken()","98f8193b":"replaceTokenFix(address[],uint256[])","98f87496":"setRateFinalStage2(uint256)","98f8fe90":"accessCostMYB(uint256)","98f96c3a":"AboutKelvin()","98f9724f":"holderAmount()","98fa6c8a":"batchTransferETHs(address[],uint256[])","98faa9a1":"getStageBonus(uint256)","98fabd3a":"DAO()","98faf5d1":"TBsell()","98fb0ac5":"tokenGenerationEvent()","98fb2eca":"voteStopped()","98fc2e0a":"GetTickSize(uint256)","98fc55d8":"whitelist(address,uint256)","98fcc93e":"getNumberOfBets(uint256)","98fdb377":"REOC()","98fdfd8e":"changeMallcoinTokenAddress(address)","98fe2b49":"NotifierChanged(address,address)","98ff116d":"deposit3(address,address)","98ff1ba1":"tokensGenerated()","98ff8075":"claimBounty(address)","990030cc":"trusted_contracts(address)","9900c978":"ScudoCash()","99013562":"Reject(address,string)","99016142":"claim(uint256,address,uint256,bytes)","9901bc77":"YRX()","9902ef5b":"blockLeft()","990333be":"salesDeadline()","99035895":"approveERC20()","9903745f":"SetsecondTTaxAmount(uint256)","990386e8":"dailyRelease()","9903a2bd":"calcReleaseToken(address)","9903c29c":"SALE_MAX_CAP()","990460c1":"ownerKill(address)","990484a7":"valueToToken(address,uint256)","9904a68d":"requiredDays()","9904e174":"sellTokens()","9904ed8d":"Reputation()","990502d0":"GasBuy()","9905b744":"logUint(uint256)","99061a08":"AltCrowdfunding(address)","9906352f":"MANAGE_CAP_PER_ROUND()","9906f41c":"setDevelopeo(address)","9906f81b":"Entrant(address)","99076eca":"IHubToken()","990816bb":"BitcoinSilver()","9908b25b":"publicTransferToken(address[],uint256[])","9908d3cf":"AMEBToken()","99091c93":"insertLawyer(address,uint256)","990986dd":"getRawPendingAmount(uint256)","9909afed":"has(address,string)","9909d1a2":"createTestData()","990a6a64":"SC_locked()","990ae727":"clearZoDailyLimit()","990c5485":"proxyMergeMint2(uint256,bytes32,address[])","990c75ed":"getWhitelistedAmount(address,address)","990c8f79":"returnValue()","990ca3ff":"tokensToBeAllocated()","990cc5c9":"buyFromCurrentOwner(uint256)","990d6fd2":"getNextTranche(uint256)","990dec94":"signToResetAddTokenData()","990e178a":"_revealBlock(address)","990e1c9b":"withdrawStep()","990e2979":"submittedAmount()","990e713b":"buyTokens(address,uint256,bytes4,bytes32)","990e80a3":"setAddressOf(string,address)","990ed905":"setNewBonusScheme(uint256)","990eda99":"FreezeAddress()","990f3f53":"computeResponseSecondHalf(uint256,uint16)","990f412f":"setAssetHolder(address)","990fa439":"setLLV_edit_1(string)","99110d3c":"PRESALE_END_TIMESTAMP()","991162db":"getDank(uint256)","99116354":"errorAndRefund(string)","99119290":"getCryptodiamondAddress()","991257a2":"getSenderLands(address)","9913380e":"_getInt(address,bytes32)","9913dcbb":"AEFToken()","9914038a":"getBankRollGrowthForGameId(uint256)","99141a47":"iffun()","99142b5f":"send(address,string)","99154b49":"ARK()","9916233e":"LimitOrder(address,bool,uint256,uint256)","99166f7d":"getTotalAddresses()","991678bf":"LogRefundETH(address,uint256)","9916c350":"numberEthUpdates()","9917ccb8":"HongmenToken(uint256,string,uint8,string)","9918925d":"setClaim(address,bytes32,bytes32)","9919b1cc":"getContentsByRanks(address,uint256,uint256,uint256)","9919c9cf":"getGoldBackedByEachToken()","991a3b5e":"ARCD_FUND_DEPOSIT()","991a9fa9":"etherHasBeenReturnedToInvestors()","991b650d":"dataIdentifierCount()","991bcae8":"setup(address,address,address,address,address,uint256,uint256,uint256[])","991c9ae5":"set(uint32[],uint24[])","991cc283":"distributeICOTokens(address)","991d79b5":"EtheremonAsset(address,address,address)","991dd5b6":"read_user_purchase_at_index(address,uint256)","991e0139":"completeJob(bytes32)","991e47ff":"CoinWindow(uint256,string,string)","991e86bb":"c_maximumTokensSold()","991ef443":"publishers(uint64)","991f6798":"updateEQUIPrice(uint256)","991fa5af":"BinaryOption(address,address,address)","991feab5":"MMToken(uint256,string,uint8,string)","991ffd4e":"scheduleCall(address,bytes,bytes,uint256,uint256,uint8,uint256)","99209e33":"setEndOfCrowdsale(uint256)","9920ecb8":"buyPhaseTokens(address)","9921cac5":"AlbertCoin()","992204e6":"GoldFee()","9922ea86":"allocateTokens(uint256,address)","99244d1a":"testvalue()","99248d3e":"AxieAccessControl()","992495e2":"minerRandomNumber()","9924ab31":"CIVCoin()","9924ad7c":"ovatel()","9924ba1a":"updateInfo(address,address,uint256,uint256)","9925b9c1":"setMintFeeAbs(uint256)","9925d68e":"createPreSaleShip(string,uint256,uint256)","99260144":"rewardMintOwner(address,uint256)","9927482d":"proxy(address,string,address,uint256)","9928811b":"testBroken()","99288dbb":"saleOpen()","992a3e75":"changeBountyPaysTokens(uint256,bool,address)","992ae976":"isSafePunctuation(bytes1)","992b2f0f":"addSlogan(uint8,string)","992bb01e":"eval(bytes32[])","992bc0ce":"pay_to_OEM()","992c15fc":"MIN_VALUE()","992c3ff1":"TrekChain()","992c4435":"UETO()","992c870d":"transferName(bytes,address)","992cb59f":"getOrCreateDisputeCrowdsourcer(bytes32,uint256[],bool)","992d4196":"GNR(address)","992e0aa0":"purchaseBonus(uint256)","992e2a16":"getReportingEndTime()","992e74a9":"maxRefererTokens()","992e820e":"burnValue(address,uint256)","992ee4b6":"raiseTap(uint256)","992ee874":"WithdrawToken(address,uint256)","992fa380":"OmnisBit()","99304cd4":"AssetWithdraw(address,uint256)","993090d0":"adjustPrices(uint256,uint256)","9931a916":"TokenRK70Z()","99325442":"getCollectedOreBalances(address)","9932dc05":"codeToAddress(string)","9932fa28":"API2()","993301b2":"libbatchbacktest(bytes32,uint64,uint32[],uint64[],int64[])","9933a24a":"allowDirectDebit()","9933c6b5":"getPokemonLock(uint256)","9933d225":"addSpecial(address,uint16)","993480cf":"calculateRequiredVerifiers()","99348e90":"rewardsFunds(address,uint256)","99348f8e":"eggAvailable(uint16)","99352c42":"updateBtsPoint(uint16,int256,uint16)","99358876":"maxMintCookie()","9935935f":"setResolveHandler(bytes,address)","9935b968":"jesterBank()","9936746a":"DepositReceived(address,uint256)","99369801":"presaleTokenBalance()","99372321":"test(bytes32)","993783fc":"eraFromMokenData(bytes32)","99379718":"GimmerToken()","99384976":"setFounder(uint256,address)","9938579b":"getStatusTransferFrom()","9938b0de":"setPublisherCut(uint128)","9938be42":"getPOOL_edit_19()","9938fdd1":"downTick(address,uint256)","99393132":"onBurnCalled()","99395b1e":"OffMenuMorsel()","993ab58e":"setTournament(address)","993af624":"BrehonContract(address,address,uint256,address,uint256,uint256,address,uint256,uint256,address,uint256,uint256)","993b4f71":"transferBag(address,uint256)","993b8cde":"countPurchasedPixels(address[16])","993bcc63":"enableTokenBurn()","993c78fa":"getMintApproval(address)","993ca7e3":"RTB1()","993d1123":"BoltToken()","993d13bd":"PRE_ICO_MAX_CAP()","993d29fc":"Mindmap_Token(uint256,address)","993d3489":"investorShortInfo(address)","993eaefa":"TravelWithMeToken()","993eda02":"giveArtworks(uint8[],address,uint256)","993f3197":"TOSInstitutionsHoldingContract()","993fd4de":"setTokensSource(address)","99404433":"levelup(address,uint256)","99405ad7":"NewTokenSale(address,address)","9940fb5d":"convertToMeth()","99413b4e":"connectToken(address)","994162cd":"BasicTokenStorage()","99418a21":"signEthereum(bytes32)","9941e3d0":"setCallAddress(address)","9942aa4d":"create(address,address,address,address,address,address,address,string,string,string,string)","9942ce36":"_initializeLockupStages()","9942ec6f":"f2()","99433fc3":"GreenWorldFarmToken()","99434669":"fabricoin()","99439089":"validatorContract()","99444e30":"ICOprice()","9944b729":"withdrowTokens(address,uint256)","9944d5e7":"burntBounty()","99456542":"getLargeBonusStopTime()","9945e3d3":"redeem(bytes)","99464c89":"freezeAll()","9946b9a5":"disable(uint256)","994828a1":"BabyBearToken()","9948e493":"calcMarketFee(bytes,uint256)","99497349":"setData_29(string)","994977e5":"finalizeRent(uint256,uint256)","9949f0c8":"convertEthToWeth()","994a69d1":"centsToTokens(uint256)","994aca84":"TrenoToken()","994b1a0f":"changeDivCardAddress(address)","994cc574":"setAyantDroitEconomique_Compte_9(uint256)","994d3969":"whitelistStart()","994d3be3":"publishFunctionMessage(uint256,string,string,string)","994e5267":"SetMaxAttempt(uint8)","994f2e10":"getUpdateDerivePayoutDistributionHashValue()","994fb25f":"FileNameInt()","994fe290":"verificationListMap(uint256)","994ff619":"setKitty(address)","9950ace1":"rollRoom(uint256,address)","9951a2c8":"createTeamSaleAuction(uint8,uint256[9],uint256,uint256,uint256)","9951fc72":"TokenVesting()","99522297":"preCrowd_tokens_scaled()","9952b63d":"_receiveDonation(address,uint256)","995344da":"_updateVoucherMthEthRate()","99538898":"addTeamAddressInternal(address,uint256,uint256)","99540fe0":"normikaivo()","9954cf22":"JUST()","99552af1":"multiInvokeWith2Args(address,string,address[],uint256[])","99554e7b":"getNextFetchTime()","99554fb7":"distructVault()","99556615":"calculateProfitGameType2(uint256,uint256)","9956587e":"REGISTERFEE()","9956a28c":"mediumBuy()","995771b9":"CarnageToken()","995783d9":"ERC20(uint8)","9957ad05":"withdrawCreator()","9957f3e6":"KvantorToken()","99583417":"transferMultiple(address,uint256[],uint256[])","995893e6":"_createRole(bytes32,address[])","9958c661":"getstate(address)","9958d553":"max_creation_rate_per_second()","9958f045":"drasticMeasure()","995a15a8":"TouristToken()","995a299e":"setCurrentSeller(address)","995a2b52":"DeusETH(address)","995a7174":"_toLeconte(uint256)","995ab62e":"GAS_LIMIT_IN_WEI()","995b129f":"setAirDropManager(address,address)","995b2e2c":"getUnreadMessage(uint256)","995b40f3":"_getNextAuctionPrice()","995b4a80":"LogTokenSent(address,bool,string)","995b5aae":"feeInfo()","995cb4ec":"doWorkAndPayEAT()","995cc82b":"powerTotalSupply()","995cd653":"createSale(uint256,uint256,address)","995d9ab7":"getTags()","995e4339":"getResult(uint256)","995e599d":"ARCONA()","995f80e9":"NewSoftCap(uint256)","995fac11":"migration(address,address)","99600baa":"SVIP()","99603bfe":"CryptoDuelCoin()","9960d947":"grantKudos(address,uint256)","99613a3f":"metaSet(address,uint256)","9961476c":"MatchBetting(string,string,uint256,address,address,uint256)","996301e4":"claimTimeoutEnded(bytes32)","9963181e":"setAyantDroitEconomique_Compte_10(uint256)","9963a8e0":"fund(bytes32,string,address,uint256)","99645ba2":"changeStepLockFlag(bool)","9964622c":"_setPendingAnchorAdmin(address)","9964935e":"makePayout()","99649d06":"setInitialDeposit(uint256)","996517cf":"mintLimit()","99651db8":"addShares(uint256)","9965b3d6":"claimProxyOwnership()","9965ea53":"setPFManager(address)","99671dfb":"Sacacoin()","99678b43":"setFunctionThreePrice(uint256)","9968b87b":"SogetiTestCoin()","99693026":"setInitialState(address[],uint256[],address[],uint256[100][],uint256[],uint256,uint256,uint256,uint256)","99694cf2":"WIKICOIN(uint256,string,uint8,string)","9969b256":"sendOwnersBalance(address,uint256)","996a4be3":"uintToBytes(uint256,uint256)","996a8046":"__callback(bytes32,string,bool)","996b434a":"littID()","996b8b76":"updateIndividualCertificate(string,bytes32,bytes32,bytes32)","996cba68":"claim(address,address,uint256)","996ccf0b":"CockToken()","996d21aa":"privateTotalSupply()","996d2d65":"addAtkBossQuest(address)","996d310d":"resumeTransfer(uint256)","996ea781":"getOrganName()","996ec1f3":"BigBlockCoin()","996ed6e1":"TransactionSucceeded(address,uint256,string,address)","996f3247":"closeWall()","996f677b":"icoInvestmentsCount()","996f7602":"GetTotalMinerCount()","99704b65":"isAcceptedImportingAuthority(address)","997072f7":"getMemberCount()","9970e26b":"ParyToken(string,uint8,string)","9971b98d":"getDesign(uint256)","9971c6ce":"gupToken()","99721229":"amountForBonus()","9972b76c":"haltedFX()","9973b827":"totalLotteryValue()","997402f2":"liquidityAdd()","9975038c":"burnAll()","9975091a":"pausePreSaleRound()","997519f2":"SingularityNetTokenMock(address,uint256)","99753de7":"clear_level()","99755bab":"ICOCents()","9975c06b":"logDebug(string)","99761662":"YouWin(address,uint256,uint256)","997636ec":"play(string,uint256)","997664d7":"totalDividends()","997676c3":"checkWhitelistExist(address)","99767aa9":"FLC(uint256,string,string)","9976d32a":"coinOwner()","9976f5c5":"ProofOfDoge()","9976f9e1":"setAgriChainCultivation(address)","99771006":"GLORY()","99777d9d":"isPublicTokenReleased()","9977a108":"isCollected(address,bytes32)","9977b698":"startTokensSale(uint256,uint256,uint256,uint256)","99789670":"Initialized(uint256,uint256)","9978be95":"TOKENS_ADVISORS()","9978f01b":"setExchangeRate(address)","997995ec":"revealResultUncleMerkleProof(uint256,uint40)","9979b7aa":"CETACEA(address)","9979c009":"buyItem(uint256,uint256)","9979ef45":"placeBid(uint256)","997a0229":"_newPrice(uint256)","997a12fa":"attowethBalance()","997a2c1c":"numberOfMyComponents()","997aa31f":"sellChannel(string,uint256)","997bc6c9":"int2str(int256)","997c44e4":"setLockRate(uint256)","997c88ba":"calculateCurrentDistanceInRange(address)","997ce600":"endauction(uint256)","997cf69c":"dataset_sha256checksum()","997d2df8":"asserti(bool)","997d8473":"reserveBalanceMap(address)","997dd1c6":"dealHitCard()","997e02d9":"wormholeIsOpen()","997f0198":"setImageHeight(uint256,uint16)","997f35ac":"RewardOffer(address,address,bytes32,uint256,uint256,uint128)","997f50d8":"getCurrentTierHardcap()","997f51e6":"GAMToken()","997fdb1f":"setLockTime(address,uint256,uint256)","997ffd13":"quarterFourth()","99801bce":"dagheAcqua(uint256)","99808aff":"winningTicket(address)","9980dee2":"calculateHash(address,address,uint256,uint256,uint256)","9980ec86":"getAmount(uint256)","99817b47":"releaseVestedTokensForBeneficiary(address)","9981bd61":"requestTokenExchangeMax()","99820e96":"finishSunning()","9982257b":"hotQuestion(uint256,uint256,uint256)","998282e9":"winners(uint32,uint32[],uint64[])","9982e7ed":"updateBillionsCoinsRemainingToDrop()","998446a8":"acceptRequest(uint256,bytes)","99847f77":"addUnsoldTokens()","9984f30d":"setMaxValue(uint256)","99851eac":"updateCards(uint8,uint256[])","9986d936":"setRestrictedPercent(uint256)","9987680b":"play(address,bytes32)","99878d5b":"play_scissors()","99879bb9":"startTimeInSec()","9987b2d2":"getProposalIndex(address,uint256,bytes32)","99882cdb":"propose(bytes32)","9988807d":"centsReceived(address)","9989a5ae":"setLimitOfParticipants(uint256)","998a1f96":"preICORaised()","998ac104":"AIRDROP_TRANSIT_ADDRESS()","998b022e":"_mintPrimordialToken(address,uint256)","998b723b":"waterTree(uint256)","998b894a":"isLegalTime()","998bac16":"bulkTransfer(address[],address,uint256[])","998be0d7":"sendTokenToSingleAccount(address,uint256)","998c4f5a":"setEthExchangeWallet(address)","998cab7e":"getTransformTarget_pool(address)","998eb4cf":"getRank03()","998f9203":"INCash()","9990b3a3":"getPreSaleWallet()","9990db92":"CryptoSureToken()","999122f4":"BHK()","999377ec":"acceptBlokTokenOwnership()","9993fa94":"balanceOfSender()","9994e112":"AddContact(address,bytes32,bytes32,bytes32,bytes32,bytes32)","9995bbf7":"ethforp3dbuy()","99967819":"lastaction()","99999342":"GetBonusInv()","9999aae5":"EYTToken()","9999bd2e":"RATE_PRESALE()","999a9965":"setMany(uint256,int256,uint256,bytes,address,bytes)","999b078e":"isSoftCapHit()","999b5c72":"FASET(uint256,string,uint8,string)","999cbaf5":"Deposit(address,uint256,uint8,uint256)","999cef04":"PublishWorldCupResults(bytes32,bytes32,bytes32,bytes12)","999d350d":"totalBonusGiven()","999d3947":"getGenes(uint40)","999d46b9":"transferInterviewer(address)","999dd03e":"poolAddressCapTier2()","999eb6b1":"balanceOfThis()","999f18a6":"unsigned()","999f4b38":"sellDividendPercent()","999f5644":"Stoppable()","99a032ce":"isCurrentAccountReader(address,address)","99a03c70":"realBalanceOf(address)","99a17344":"setHiddenLogic(address)","99a1a412":"getModeratorCount()","99a2e1ec":"roundLatLngFull(uint8,int256)","99a3e03f":"testNegativeIntegerKeyValue()","99a3f0e8":"right70(uint256)","99a44e68":"BEXP()","99a48638":"packSettings(uint256)","99a48e17":"FinalizableToken(string,string,uint8,uint256,address,uint256,address[],uint256[])","99a5d747":"calculateFee(uint256)","99a6993b":"KCCTOKEN()","99a6f7d2":"createReserveTokens()","99a752d7":"setPriceETH(uint256)","99a79790":"startTimeSale2()","99a7b857":"FundsWithdrawal(address,uint256)","99a7b884":"getBuyerFullInfo(address)","99a7e9db":"get_presale_iconiq_arbits_per_ether()","99a856e3":"firstBonusRate()","99a88ec4":"upgrade(address,address)","99a8f2fe":"EncryptedToken()","99a9a04c":"BITStationERC20()","99a9ccb2":"preMinedSupply()","99aa5d97":"Pixel()","99aa93c8":"numSales()","99aba8e3":"distribute(address,uint256,uint256,uint256)","99abaabb":"addMarketToWasCalled()","99abd788":"FIRSTSALE_TOKENCAP()","99ac4569":"withdraw(uint64,address[],uint256)","99ad91c7":"AddAdmin(address,address)","99ae6a16":"Winner(address,uint32,uint32,uint256)","99aeade3":"iterateTable(uint256,uint256)","99aef94a":"getMyEntitySimple(uint256)","99af4114":"createPet(uint256,uint16,address)","99afb9b9":"createValidatedRequest(address[4],address,uint256[12],uint256,bytes)","99b0dc4d":"areAllUppercase(bytes16)","99b1adbf":"isUserMember(address)","99b22701":"delBackend(address)","99b29044":"getPropertyEarnUntil(uint16)","99b2a233":"offlineGuardianSold(uint256,address,uint256)","99b465cb":"currentSegment()","99b47af8":"reveal_test_data_groups_block_size()","99b4a0c6":"BTRL()","99b55343":"termsNumber()","99b58f06":"icoPushAddr(uint256,address)","99b5b2fa":"horseIndexPrice(uint256)","99b632e4":"winnovate()","99b6f5a1":"sendAdvisorsTokens()","99b721a5":"rewardEthAnd(address[])","99b77032":"setMinBuyLimit(uint256)","99b83f3d":"setMaxRedemption(uint256)","99b8a3f0":"charityBalance()","99b8e366":"reloadPlayerInfo(address)","99bac5c9":"setMinCustomerBalanceETH(uint256)","99bad2cd":"testAddExistingVoter()","99bb8134":"approveMany(address,uint256[])","99bb875c":"funeralAndBirth(bytes,int256,bytes)","99bc0aea":"expiryTime()","99bc826e":"intMemoryArray()","99bcb1a1":"thirdWeekMainICOBonusEstimate()","99bdc9c2":"AdminAddition(address)","99bea0bd":"AllForOne()","99c0058c":"getAttackPlayerList()","99c20c34":"percentToFoundersAfterICO()","99c24d85":"SetCurrentRoomAndRound(address,uint8,uint256,bool)","99c27d40":"updateGlobalMin(uint256)","99c2af56":"setRateEarlyStage2(uint256)","99c2b93b":"startCrowdsalePhase1Date()","99c2bb40":"listAssetDocumentsFrom(bytes32,bytes32,uint256,bool)","99c32025":"TwoPhaseTransfers(address[],address[])","99c4644a":"putIdentityProvider(address,string)","99c49852":"cancelOrder(address)","99c59bdc":"MadeBet(uint256,uint8,address)","99c69d40":"getPremiumsAvailable()","99c6d2de":"depositToken(address,uint256,uint256)","99c6da4a":"UTWD()","99c724ef":"skipInLine(uint256,uint256)","99c75517":"GetCompetitionInfo(uint32)","99c8055d":"Enable()","99c8268b":"totalBattle()","99c87629":"getFibonziPlayers()","99c8d556":"tax()","99c8fcba":"agreeBetWinner(uint256,uint8)","99cac223":"getBallotIndex(address,bytes32)","99caf208":"updatePendingManager(address,uint256)","99cb0823":"presaleBonus()","99cbc1b9":"Bet(address,bytes32,bytes32,uint256,uint8,uint16,uint16,uint16,uint8,uint256,uint8,address)","99cc00d1":"getImageHeight(uint256)","99ccbec6":"claimByTeam()","99ccf3da":"_increaseToken(address,uint256)","99ccfd34":"forkUpgrade(address,address)","99cd211d":"bountyTokensWallet()","99cd40aa":"_setBytes(bytes32,bytes)","99cdee0e":"own()","99ce00a9":"VREO_SALE_OPENING_TIME()","99ce12c1":"getAssetClaimString(uint256)","99ce919c":"goods(bytes32)","99ceb6e6":"BTCReceived()","99ceed71":"OwnerTokensBurned(uint256,uint256)","99cf5582":"burnVotes()","99cfe1e1":"issueCofoundersTokensIfPossible()","99cfe743":"TotalGenesisAddresses()","99cffe4d":"LinearBeam()","99d0f06c":"removeNotes(uint256[],uint256[],uint256)","99d136f5":"multiSend(address[])","99d18937":"getAllDSP()","99d1c413":"isEggFactory()","99d1d002":"debug_blockHeaderMerkle(bytes)","99d1e755":"getTeamWallets()","99d22e48":"founderAllocated()","99d3acd3":"EtherDeltaDepositToken(address,uint256)","99d413f4":"createDividendPercent()","99d4aec9":"getPurchaseRequests()","99d50d5d":"getComponents()","99d52baf":"test_startBool()","99d5af62":"unLockBatchAddr()","99d64ab0":"maximumFunding()","99d67084":"numberOfInvestorsToWithdraw()","99d786ca":"lastMonth()","99d792a2":"releasePrivateSupplyVested()","99d7dd25":"isEcoAllocated9()","99d80ed9":"addService(bytes32,uint256)","99d83b77":"BuyRC(address,bytes,uint256,uint256,uint256)","99d897f8":"sellForOtherCoins(address,address,uint256)","99d9b306":"trancheMinTx()","99d9d1e0":"KNB()","99db626c":"LOG_SpinExecuted(bytes32,address,uint256,uint256)","99db7eb7":"TapPoll(uint256,address,address,uint256,uint256,uint256)","99dbff01":"buyCourse(uint256,uint256)","99dc79d1":"getBracketScore(bytes8)","99dd1ed9":"estLiquidationCap()","99ddb29b":"addressType(address)","99de4fc5":"UNK()","99def960":"getcredibilityScore(bytes12,bytes12)","99df3d7a":"setFunctionAuthorized(address,string,bytes32)","99dfa711":"GetCurrentTypeStartTime(uint256)","99dfedb4":"getTeamSumSkills(uint256)","99e0021f":"mergencyCall()","99e0dd7c":"setTokenURIPrefix(string)","99e133f9":"init(address,address,address,address,address,address)","99e1cc47":"calculateAndSendRefund(address,uint256,uint256,uint256)","99e1d127":"filterWarriorAuras(uint256,uint256)","99e2ab0e":"UpdateMinFee(uint256)","99e3a723":"verifyOwner(bytes32,address,uint8,bytes32,bytes32)","99e47b2d":"DinoFarm()","99e487a9":"F2UPhone()","99e71b64":"secondBalance(address)","99e74ce8":"tokenIdToHeroInstance(uint256)","99e7c00a":"yaaay()","99e7cedf":"cobeneficiary()","99e8f303":"getM5Reward(address)","99e91527":"dequeueAuditRequest(uint256)","99e9376c":"buyWithCustomerId(uint128)","99ea0fd5":"disputeAllReporters()","99eb6603":"initalize(uint256)","99eb975c":"TransID()","99ec140d":"Tokensale()","99eca69f":"withdraw(uint256,address[])","99ecba80":"maxMinutesProposalPeriod()","99ed7b87":"getStrengthValue(uint256)","99ee9076":"defendFee()","99ef111c":"stopAddresses(address)","99eff1f7":"nextElectionIndex()","99f02ab5":"getWinnerContractAddress(uint256)","99f02b60":"IHFVesting(address,uint256)","99f07bed":"_clearCommittedValidators(uint256)","99f16c6e":"validateContribution(uint256)","99f1718a":"getSiteItem(uint256,uint256)","99f3379f":"getSolverAddress(bytes32,string)","99f3487b":"testBoolKeyValue()","99f49f0d":"vitPerWei()","99f4b251":"mine()","99f5c357":"modultradeStorage()","99f5c904":"momentValueOf(uint256,uint256)","99f6021d":"durationSec(bytes32)","99f65122":"getParam(uint256)","99f6a693":"setMasterName(uint256,string)","99f6d9af":"getTotalNumberOfRegisteredCompanies()","99f91c5d":"updateAllRewPaid()","99f9be87":"TEX()","99fa6ed7":"EthPledge()","99fb15d2":"distributionActive()","99fbe995":"Wallet(address[],uint256)","99fbf3a2":"setRentPrice(uint256,uint256)","99fca937":"amountOfEthersOwnerCanWithdraw()","99fd12f6":"etc()","99fd9489":"endCrowdsale(bool)","99fdc17e":"redenominatedValue(uint256)","99fe18b9":"fightBoss()","99fe6c88":"CashTCoin()","9a003b61":"checkRequiredChange(uint256,uint256)","9a008d7b":"startPaymentProcess(address)","9a01b4d5":"getChannel(address)","9a02d3ac":"unapproveWithdrawal(bytes32,bytes32,uint256)","9a02edfe":"maxTokensPerAccount()","9a033782":"addContractToTokenFallbackWhiteList(address,address)","9a037aa0":"setReferralBonus(uint256)","9a03d9a3":"setERC721Address(address)","9a03fe1d":"Div(uint256,uint256)","9a0475e9":"ASHLEY_ADDRESS()","9a04a4ed":"setOpenInterestInAttoEth(uint256)","9a04ab73":"safeAddI(int256,int256)","9a04b89e":"setGiftoAddress(address)","9a04e602":"mintBounty(address,string)","9a04f704":"guest()","9a04fc8b":"getNodeParent(bytes32)","9a05cd66":"_setNarcosCoreAddress(address,address)","9a065a60":"discountTokenAmount()","9a06671e":"CoinsRetrieved(address,uint256)","9a06b113":"createPool()","9a06c2d3":"getRnMmasterReq()","9a073742":"setFeesWithdrawalAddress(address)","9a0750d5":"tokenFundDeposit()","9a0846f1":"MyKidsEducationFund()","9a08623a":"withdrawFromToken()","9a0907c2":"contributeAndVest()","9a09a8ef":"getCoinByCount(uint64)","9a0af2ec":"getStLength()","9a0b2db3":"withdrawFeeEntitlement()","9a0ca07d":"changeLocked(bool)","9a0d4f40":"PRESALE_PERIOD()","9a0d6247":"withdraw(uint8,bytes32,bytes32,uint256,uint256)","9a0e4ebb":"multiMint(uint256[])","9a0e7d66":"getTotalVotes()","9a0e7e8e":"secondSaleDelivery(address,uint256)","9a0e9e50":"newPoll(uint256,uint256,uint256)","9a0f1561":"prizeDeposit()","9a10f719":"setFreezeAddress(address,bool)","9a10f819":"buyOracle(bytes,address)","9a114fb0":"_Challenge(bytes32,uint256,uint256,string)","9a116ca1":"implementationCall()","9a1295d9":"getPassportLogic(string)","9a14228e":"getEntryPrice()","9a158883":"BOBOToken()","9a15f4f3":"getBlockHeader(int256,int256)","9a160ad9":"MeissaToken()","9a163c44":"currentVotingAmount()","9a165f6c":"currentCapTokens()","9a166299":"getMyAddress()","9a167613":"forceConsume(uint256)","9a16a7e3":"getAccountInputSdcslength()","9a18a5ba":"NEXPARA(uint256,string,string)","9a19a953":"setInt8(int8)","9a1a661e":"entranceFeePool()","9a1ac4b2":"OpenAddressLottery()","9a1b420b":"OraclizeAddrResolver()","9a1ca8d2":"SALE_ETHER_MIN_CONTRIB()","9a1e7ea0":"randomSatoShiTime()","9a1e9dc3":"Buy(bytes32,address,uint256,uint256,address,address)","9a1f6a0f":"setPacksPerClaim(uint16)","9a1fd3d5":"armyPlanesCount(uint256)","9a1fdc10":"createHorseShoe10(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","9a1ff4f4":"Ruthenium()","9a202d47":"removeAdmin()","9a206ece":"isSpender(address)","9a20821b":"claim_winnings(address)","9a21213e":"_getProviderOwner(uint256)","9a2160a7":"currentBetNumber()","9a221876":"project_contract()","9a22dec5":"buyAllAmountPayEth(address,address,uint256,address)","9a234885":"storeUserDataHash(uint256,bytes32)","9a2392b2":"getFirstBuyNum(bytes32,bytes32)","9a23ab61":"XXXXXXXX06(address,address,uint256)","9a2457c1":"getMiningAttempt(uint256,address)","9a251185":"isValidCertificate(bytes32,bytes32,bytes32)","9a267230":"END_TS()","9a276186":"getLentTime(uint256)","9a27b7ed":"setBounty(address,uint256)","9a2828f3":"setTechnicalWallet(address)","9a285ffb":"myDividendsYes()","9a28910a":"PrivateSaleBuy()","9a29ccf7":"_determinePid(address)","9a2a1f75":"CrowdsaleLeviusDAO(address,address)","9a2a224a":"setWallet(address,address,address,address,address)","9a2b4bdf":"ChangeTotalSupply(uint256,uint256)","9a2d2692":"withdrawToPoolOwnerFee(uint256)","9a2dcadf":"fundoShares(uint256)","9a2e27f8":"presaleEndDate()","9a2e6b40":"vote(uint80,bool)","9a2f9e92":"keeCrytoken()","9a2fb8c1":"startTimePrivatePreICO()","9a307391":"operator(address)","9a314b8e":"Group(string)","9a317cca":"getHWCAddressByIndex(uint256)","9a31a5f0":"transferManual(address,uint256)","9a31ac53":"setLastRegistration(string,int256,uint256)","9a31b14e":"set_totalSupply(uint256)","9a323ac4":"MAXfinney()","9a3241a6":"AddParticipant(address,uint256)","9a325e52":"exchangeRateRoundTwo()","9a336fed":"removeTotalCoinLock()","9a33aff9":"startDocumentPoll(bytes32)","9a33c610":"addPA(string,string,string,address,address,uint32,uint32,address,address,uint32,string)","9a33e300":"projectName()","9a344170":"test_insert_full()","9a347dd9":"tokensToFunder()","9a35f886":"__dig_then_proxy(uint256)","9a36f932":"feeDivisor()","9a37d1b7":"distributeEbyteForETH(address[],uint256,uint256,uint256)","9a38330d":"setIssuer(address,address)","9a388bd2":"CORAddress()","9a38ac79":"requireAuthorisation(bool)","9a38aeb1":"verifySignature(address,uint256,bytes32)","9a38bfae":"voteHash(address)","9a3a8c85":"ExiliumToken()","9a3aed36":"setMainAdmin(address)","9a3c4158":"setEthWallet(address)","9a3ce541":"price(bytes12)","9a3d1f3f":"twentyThirtyVault()","9a3ea7cc":"provas(bytes32)","9a3fc66d":"iouTokens()","9a3fd1fb":"tokenFallBack(address,uint256,bytes)","9a3fdfd0":"bountyTokensPercent()","9a406338":"VESTING_DATE()","9a40a316":"betting(uint256,uint8,uint256)","9a40d8f5":"equal(address[],address[],string)","9a41c1e6":"walletToVault(address,uint256)","9a429d2f":"setDisclaimer(string)","9a42adb3":"change_ico_start(uint256)","9a42af48":"getLastPrice(bytes32,uint8)","9a42c935":"forLottesy()","9a42f3aa":"reveal(uint256,uint8,bytes32)","9a4363cb":"setlockall(bool)","9a436c9b":"burnBasisPoints()","9a4373a6":"_internalTransfer(address,address,uint256)","9a437da2":"lookupPriorLottery(uint256)","9a438c5f":"ChangeInsuranceFeesOperationEvent(uint80,uint80,uint80,uint80,uint256,uint80,uint80,uint256,uint256)","9a43e59a":"VAA()","9a4435c6":"BitcoinGame()","9a443955":"setNumVotesRequired(uint256)","9a44690e":"finalizeSettingUpdate(uint256)","9a454b99":"deployedAtBlock()","9a459f75":"setShortDescription(string)","9a45a263":"decentBetMultisig()","9a45e3fe":"getChannelExist(bytes32)","9a465b85":"lastBlock_a10()","9a46793e":"roundsManager()","9a471416":"bountyFunds(address[],uint256[])","9a47700f":"checkExpires(bytes32)","9a4772cd":"LogClaim(address,uint256,uint256)","9a478b49":"join(uint256,bytes32)","9a47cee3":"convertGene(uint8[48])","9a48007d":"hasHourlyRateWithinRange(address,address,uint256[],uint256[])","9a483a8e":"exerciseExpiredEmployeeOptions(address,bool)","9a48eb3e":"tokenTransferProxyContract()","9a49eab5":"MINER_CREATION_LIMIT()","9a4a0fb2":"centralBank()","9a4ac102":"tinyIPFShash(string)","9a4b19e4":"SiaCashCoin()","9a4b1d5c":"verifyTransfer(address,address,uint256)","9a4b87f1":"setDrop(bool)","9a4b8fc9":"lockInSemiFinalPrize()","9a4bca21":"setMintTap(uint256,int256)","9a4ca3cb":"itemsOfOwner(address)","9a4cbb92":"getDamage(uint256,uint256,uint256)","9a4cd266":"test_fourValidEqBool()","9a4d19f8":"getAmountAccredited(address)","9a4dfa87":"OfferCanceled(uint256,address)","9a4e36d9":"antiques(bytes32)","9a4e9bff":"FXPay()","9a4ed149":"getBlocksquareFee()","9a4f1e2c":"ETCrossPotatoPresale(uint256,uint256)","9a4f78cc":"decreaseShares(uint256,address)","9a4fd88d":"crowdsaleSucceeded()","9a4fdf66":"nextBro()","9a507d9b":"feeHoldingAddress()","9a508c8e":"finalizeUpgrade()","9a5199fc":"goodbye(uint256)","9a51a31a":"ToToken()","9a526b97":"setPreIco(address)","9a52b339":"checkInterest()","9a54596b":"Token(uint256,string,uint256,string,string,address)","9a5483e6":"addRole(uint256,address,uint256)","9a556a59":"getCooldown(uint256,uint16,uint8)","9a56193b":"getNumberOfDerivatives()","9a565169":"ETHERGOLD()","9a5666b8":"SVLightBallotBox(bytes32,uint64[2],bool[2])","9a571d9f":"isAlphaLower(bytes1)","9a573786":"getKeysManager()","9a581271":"cursedContract()","9a586d26":"MAX_SALE_VOLUME()","9a58c33d":"batchAssetTransfer(address,uint256[])","9a592415":"LostPayment(address,uint256)","9a593b9a":"startCrowdfund()","9a599e37":"burnfromAdmin(address,uint256)","9a5a2d4e":"lastTimePriceSet()","9a5a6483":"milliTokensSent()","9a5c0abc":"sellCards(uint256,uint256)","9a5dd735":"getRichest()","9a5e095c":"_buyTokensInCurrentStage(address,uint256,uint256)","9a5eb28f":"BUYER_CAP_LOW_USD()","9a5f17ee":"ccEndTime()","9a5f54b3":"getTetherInts(address,uint256)","9a6203e9":"getClosingObligation(bytes32)","9a628121":"random256()","9a62b752":"becomeTurtlemaster()","9a63157a":"addressBankPartners()","9a64a276":"findById(uint256)","9a650fd8":"isTerminated(address)","9a651f0b":"firstStageRefund()","9a6524f1":"TOKEN_CAP()","9a65ddec":"getAddressByName(string)","9a65ea26":"startMinting()","9a661e66":"getGratitudesSizeOf(address)","9a670bbc":"secondPreSaleEndDate()","9a68323c":"getRoundDetails()","9a684658":"_getBlockIndex(uint256,uint256)","9a6921e4":"getOpGas()","9a6a30a4":"reclaimEther(address)","9a6a68e9":"numberWinner()","9a6b32e1":"claim_reward(uint256,bytes32)","9a6b607f":"distributeTokensToMembers()","9a6bd379":"powerUp(uint256)","9a6ced6d":"bountyAgents(address)","9a6d3aaa":"bet(uint256,bool)","9a6d7cb8":"_canMateViaMarketplace(uint40,uint40)","9a6d9671":"combineMyGirls(uint256,uint256)","9a6dac14":"getLOTBalance(address,address)","9a6dfeff":"totalVotesForParty(uint256)","9a6e9914":"deleteArrayString(bytes32,uint256)","9a6ec511":"_buildId(address,uint256,bool)","9a6edad1":"Jupiter()","9a6f978d":"DIP()","9a6fb6df":"productionUnitTokenContractCount()","9a6fcbdd":"popElement()","9a6fe50c":"getLatestForContractAddress(address)","9a701075":"WITHDRAWAL_END()","9a702ad5":"AVAILABLE_JOINTTOKENS()","9a70855e":"exchangeFlag()","9a70eb1a":"onSaleAmount()","9a713233":"pre_end()","9a71825e":"sellKnowledge()","9a721302":"SUPPLY_FOR_BOOUNTY()","9a722769":"autoFinishTime()","9a727526":"getManagementInfo()","9a729d03":"token_bid(address,uint256)","9a72afb6":"setIsDisputeActive(bool)","9a730617":"init(address,uint256,uint256,uint256,uint256)","9a7394f5":"setData_34(string)","9a74adda":"moveAccountIn(address)","9a74c10c":"getDefaultReportingGasPrice()","9a751072":"applyChangeWalletAddress(address,address)","9a75aa06":"emitPublicCapabilityAdded(address,bytes4)","9a7614ee":"acceptEther(uint8)","9a7615a2":"burnOwner(uint256)","9a772bce":"TokenCappedCrowdsale(uint256,uint256,uint256)","9a7754d6":"StagedCrowdsale(uint256)","9a777d5d":"buyCoins()","9a7853cd":"postTX(address,string,uint256,uint256,uint256)","9a78afc6":"reduceDiv_()","9a78c066":"checkExistsInArray(address)","9a78c562":"setSellingTime(uint256,uint256)","9a797128":"withdrawed()","9a79f4a8":"testFailHeaderInsufficientFee()","9a7a3293":"NoFakeCoin()","9a7a7c11":"makeRoll(uint256)","9a7b5b7b":"tryClose()","9a7baa81":"EcomethToken()","9a7be471":"updateMinDeposit(uint256)","9a7d5211":"TheDigitalStandard()","9a7db5d9":"adminSendWorldBalance()","9a7e00ef":"acceptBet(uint64)","9a7e9e1f":"executeByAction()","9a7ee18c":"AccountIsNotFrozen(address)","9a7efb7f":"giftFor(address,address,uint256)","9a8061e8":"setLicenceShopPrice(bytes2,uint256)","9a80e52f":"updateTknPrice(uint256)","9a819e5e":"forceLiquidation()","9a82031e":"getRoundWinnigNumbers(uint32)","9a824f00":"transferTobucketTwoContract(address)","9a828a71":"oracalizeReading(uint256,string)","9a82a09a":"cancelled()","9a82c93c":"PRESALE_ENDTIMESTAMP()","9a82f890":"isOracle()","9a8318f4":"total_withdraw()","9a8335e0":"sendTo(string)","9a841413":"deleteDeployer(uint256)","9a84792b":"onReturned(address,uint256,uint256)","9a84d0c4":"addToken(address,string,string,string,uint8,bytes32,bytes32)","9a862c2d":"stage2StartTime()","9a863892":"NewProposal(uint256)","9a86acda":"getHeld(uint256)","9a86cd04":"shittyRand(uint256)","9a87ebb5":"changeAllowances(uint256,uint256)","9a880629":"dStartsNow()","9a880848":"attackhill(uint256)","9a881ab4":"payToFines(uint256)","9a882b7a":"createtoken(string,string,string,string,string)","9a891058":"keyIndex(bytes32)","9a89ad65":"within6Confirms(int256,int256)","9a8ae2fa":"changeLastFreeBlock(uint256)","9a8b3d8f":"getClientProjects(address)","9a8ca12c":"icoEnds()","9a8cea55":"testPush()","9a8cea82":"calculateDevFee(uint256)","9a8d10a3":"addData(uint256,bytes32)","9a8d36fa":"_openGameRange(uint256,uint256)","9a8d86c5":"CrowdSale_Finalize()","9a8e7b02":"ProposalClosed(uint256,uint8,uint256,uint256,bool,uint256,uint256)","9a8f09bd":"newKing(address)","9a8f139d":"getPercent1(address)","9a8f4dbf":"CancelSellOrder(uint32)","9a8f71f7":"saveData(bytes32,uint256)","9a8f72d1":"pruebacn123()","9a900e8c":"changeDepositWalletAddress(address)","9a903ca7":"allocateTokens(address,uint256,uint256,uint256)","9a9249a8":"_calculateCurrentPrice(uint256,uint256,uint256,uint256)","9a92b7e7":"EthVenturesFinal()","9a93e940":"testFailCreateNewRevisionNotUpdatable()","9a94ab9c":"addDelegate(address,string,address,uint256)","9a953408":"CHLORINETOKEN()","9a954af9":"getFreeToken()","9a956915":"icoInvestors(address)","9a95ca48":"presaleCapReached()","9a95d0e4":"DEEO()","9a960778":"SBK()","9a961416":"gameNext()","9a967e3b":"nextMember()","9a969768":"distributeProfits(uint256)","9a96f829":"devs()","9a97043b":"depositIdx(address)","9a98aa1e":"Scorpio(uint256,string,string)","9a98ac88":"GCSToken()","9a999359":"priceUpdatedTime()","9a99ebf4":"drainGame(bytes32,bytes32,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","9a99f7e0":"isModOrCreator()","9a9a5cdb":"checkEthBalance(address)","9a9b1709":"PGGamePlatform()","9a9b5323":"AlforroCoin()","9a9bc131":"aidrop(address[])","9a9c29f6":"settle(uint256,uint256)","9a9c437d":"CryptFillToken()","9a9c9c53":"DepositToBankAccount()","9a9d0935":"totalBountySupply()","9a9d6515":"APPC()","9a9e3fd8":"successful()","9a9ed624":"ProfitLoaded(address,uint256)","9a9f1304":"drawMini()","9aa035dd":"dev_multisig()","9aa03cc6":"calculateExchangeFee(uint256)","9aa07ed7":"DietEthereum()","9aa0a50e":"btcDeposits(bytes32)","9aa0ff7b":"SALE_END()","9aa1001b":"withdrawRewardPool(address,uint256)","9aa10ebf":"Story()","9aa13f04":"contractStart()","9aa1dab7":"removeOversight(address)","9aa26f06":"registerBytes32(address,bytes)","9aa287d9":"setIco1Tokens(uint256)","9aa3a443":"acceptContribution(address)","9aa4a64e":"set_patient(uint256,uint256,string,string)","9aa57922":"Bhtd()","9aa5ee73":"finalizeConfirmationPeriod()","9aa5f467":"phase_3_token_price()","9aa615ee":"initCrowdsale(uint256,uint256,uint256)","9aa72320":"EthereumCare(uint256,string,uint8,string)","9aa727f6":"mult(uint256,uint256)","9aa72b71":"shareAmount(address,uint256,uint256,uint256)","9aa74525":"increaseWithoutCounterparty(bytes32,uint256)","9aa84b0b":"blockNode(address)","9aa92f0c":"previousRounds(uint256)","9aa93224":"sendOre(address,uint256)","9aa99dc8":"ownerPauseJackpot(bool)","9aa9f27b":"privateSell2Address()","9aaa38a6":"ChangeComission(uint256)","9aaa3eec":"updateNickname(address,string)","9aaa4696":"transferRaw(address,uint256)","9aaa5750":"addGoldTransaction(string,int256)","9aaa6b4d":"getAttackAddress()","9aaac864":"isInitialBlockTimestampSet()","9aab0c7a":"BitUPToken()","9aac9e91":"EndPreSale()","9aacb10a":"setNewCreator(address,uint256)","9aacb18c":"getSolution(uint256,uint256)","9aae3d0e":"maxWeiTier1()","9aaf442c":"applyCensorship(uint256)","9aaf5e05":"allocateTokensBeforeOffering(address,uint256)","9aaf9f08":"getVersion(bytes32)","9aafbff0":"addEntryIn24WeekPeriods(address,uint256,bool,uint256)","9ab060de":"milestoneBonus()","9ab06fcb":"setPayment(address)","9ab102ac":"isAffiliated(address)","9ab1416c":"accept_B_coupons(address,uint256)","9ab1b484":"distributeTokens()","9ab1d468":"privateSaleTransfer(address[],uint256[])","9ab253cc":"transferToICAPWithReference(string,uint256,string)","9ab2cf0d":"checkLockedBalance(address,uint256)","9ab3161d":"AnimalFactory(address,address)","9ab361a2":"unlockTimeLine()","9ab3a1fd":"setMvpExists(bool)","9ab3bfd7":"Tier_Basic_Registration()","9ab42287":"getAllAnimalsByAddress(address)","9ab422f3":"register(string,uint256,uint256,uint256,uint256,address[])","9ab448d9":"updateForkValues()","9ab4833e":"viewToken()","9ab4b22f":"releasedBalance()","9ab4d3a8":"checkInvestorReturns(address)","9ab567ba":"batchTransferForSingleValue(address[],uint256)","9ab79905":"withDiscount(uint256,uint256)","9ab7d0b7":"setTheName(string)","9ab7f298":"add_user(bytes32,bytes32,int256)","9ab80f14":"BuyPrice()","9ab86b78":"getVoteHubDetails()","9ab90ba0":"realityID()","9ab95202":"babzBalanceOf(address)","9ab9ee73":"prPool()","9abb08ed":"migrateStateFromHost()","9abb2c16":"getAuctionsCountForUser(address)","9abb9e78":"powerDayEthPerPerson()","9abc03d2":"auctionsStartTime()","9abd3572":"claimDividend(uint256)","9abd7d50":"SelfDestructTime()","9abe275f":"closeChannel(address,bytes32,uint256,bytes32,bytes)","9abe3906":"closePreICO()","9abec159":"DISCOUNT_STAGE_THREE()","9abeddf8":"getLastUnionId(bytes32,uint8)","9abfba20":"DeleteBillModerator(address)","9ac08dfd":"receiveApproval(address,uint256,address,bytes1)","9ac17057":"execute(uint128,uint128)","9ac18b19":"REQUIRED_SIGNATURES()","9ac1f9a1":"add_commitment(uint256)","9ac22e5b":"test_oneTrueAndFalseAssert()","9ac233f3":"Monarchy()","9ac2ba20":"start_all()","9ac3317b":"grantMultiplePermissions(address,bytes32[])","9ac3fce6":"getBankReg(address)","9ac467f9":"getAllSigners(uint256)","9ac4fa49":"isAirdropStopped()","9ac50a62":"tenmatest()","9ac58d58":"get_len()","9ac785ba":"LockDate(uint256,uint256)","9ac8cd1b":"calcJackpotFee(uint256)","9ac97e84":"getNumDIDHolders()","9ac9940f":"assetOwner()","9aca6e2e":"calculate_total_shares(uint256,uint256)","9acab88c":"forwardFunds(uint256,address,address)","9acade7e":"testFailTransferDisableNotEnabled()","9acae9fc":"createChannel(bytes32,uint256,uint256)","9acb1506":"_createMeme(string,uint256,address)","9acb1ad4":"right37(uint256)","9acb3824":"getHorsesInStud()","9acba2af":"durationSeconds()","9acbdcab":"updateNoteButContent(uint64,uint16,bytes12)","9acd07b5":"closeChannel(uint8,uint256,bytes32[4])","9acd5e0e":"getGuestNotes(address,address)","9acdc0e3":"setCommunityTokensHolder(address)","9acf603b":"token_wallet_address()","9acf6ff4":"distributeRemaining()","9acfb1a8":"getCCH_edit_25()","9ad0a5ac":"addWhitelisted(address[],uint8[],uint256[])","9ad0c86c":"IouRootsToken(uint256,address,string,string,uint8)","9ad10d79":"PELOMemberIDMap(uint32)","9ad1b348":"getKNCRateRange()","9ad1c999":"setdevFeeAddress(address)","9ad25a68":"COSMOTokenERC20(uint256,string,string)","9ad26744":"removeAuthorizedAddressAtIndex(address,uint256)","9ad4eccf":"sentTokensToFounder()","9ad4f658":"CATToken(address,address,address,uint256,uint256)","9ad4f98e":"BlocksureInfo()","9ad55220":"getPrivate()","9ad5be7b":"setPlayValue(uint256)","9ad73f20":"runPluginSigned(address,uint40,uint40,uint128,uint256,uint8,bytes32,bytes32)","9ad74f81":"setAllowTransferGlobal(bool)","9ad7ebc3":"specialPoolsRate()","9ad89ac4":"settleCancel(bytes32[8],bytes)","9ad8b5b7":"addAttachmentToCollectible(uint256,uint256)","9ad900d6":"get_first_asset_document(bytes32)","9ada7a4c":"NumberTaken(uint256)","9adba14b":"logStr(string)","9adc15ef":"ShaBi()","9adcb5eb":"acceptBet(uint256,uint8)","9add2ad9":"MIN_ETH_TRANS()","9ade76f4":"VestingCreated(address,uint256,uint256)","9aded5dc":"deathData_a6()","9ae000c6":"WeedToken()","9ae0140c":"removeRoleCapability(uint8,address,bytes4)","9ae06672":"getDailyTimeLeft()","9ae066b0":"foundationDeposit()","9ae082a4":"PooShitToken()","9ae120dd":"closeZoneTeller(bytes2)","9ae13375":"groupDates(uint256)","9ae1a635":"Q500()","9ae1c4f8":"mintToken(uint256,int256)","9ae21121":"lastowner()","9ae2835c":"balanceOfIssuer(address)","9ae38844":"newMembers()","9ae466bf":"recipientETH()","9ae4e388":"ChangeClientTokenAccount(address,bool)","9ae51a1f":"getTeamlistSupportInTournament(uint256)","9ae568b1":"CreateSEEDS(address,uint256)","9ae5dc91":"setNTToken(address)","9ae6303d":"getHatchDurationByTimes()","9ae6309a":"currentMintableTokens()","9ae65eea":"addProposal(string,string,string,address)","9ae6892b":"transferOwnershipToken(address)","9ae6b186":"bZxTo0xV2Contract()","9ae6cac7":"SemainToken()","9ae6ef15":"getCumulativeIncome()","9ae7a909":"multiPartyTransfer(address[],uint256)","9ae8886a":"p()","9ae8ac3c":"TRADING_STARTED()","9ae8b6a1":"WMCToken()","9ae980a8":"setMinWager(uint256)","9ae9d383":"getnotice()","9ae9ff6a":"withdrawBeforeVoting(uint256)","9aea020b":"sellDeadline2()","9aea5485":"revealMove(uint256,uint8,uint8,string)","9aeb14a5":"sumHardCapPreICO()","9aeb5947":"payToCharm(string,uint256)","9aeb69a2":"withrawWin(address,uint256)","9aebdf7e":"updateJackpotLeft(uint256)","9aece83e":"set_manager(address)","9aecea62":"finalizeIPO()","9aeceb1d":"transferBallance()","9aecfb8a":"Etharea()","9aed58c6":"_destroyRobot(uint256)","9aed6ac9":"registerPresaleContributor(address,uint256)","9aedabca":"valueOfShares()","9aedb1f1":"setVotingQuestions(string,string)","9aee046b":"callOracle(uint256,uint256)","9aeea806":"MARKET_CHANGE(address)","9aef0c6c":"privateSaleClosingTime()","9aef319f":"closeBlacklistSwitch()","9aef8999":"removeWhiteList(bytes32)","9aefff29":"totalSupplyPreSale()","9af003bd":"ChangeConversionRate(uint256,uint256)","9af041aa":"currentSaleStage()","9af1d35a":"fees()","9af1ef32":"offerHelp(address,address)","9af22f9c":"Shiner()","9af25d07":"releasedRoundCount()","9af26b78":"finishMinting(bool)","9af28b65":"NEXT_POT_FRAC_TOP()","9af2b100":"Permissions()","9af2cad2":"CryptoCoin()","9af32035":"addIcoPurchaseInfo(uint256,uint256)","9af3352d":"updateGuReferral(uint256,uint256,uint256)","9af3b527":"getOwnerOfCardsCheapestWager(address,address)","9af4afb3":"BlueOs()","9af4b5c8":"isOwedFreeReferralPack(address)","9af55773":"minSumICOStage6USD()","9af605cb":"__proxy(address,bytes,uint256)","9af6489d":"CheckTree(address)","9af64d80":"previousstageplayer1()","9af6549a":"beneficiaryWithdraw()","9af75b29":"tokensMintedForOperations()","9af88ebd":"_createOpinionSet()","9af8c4ba":"respond(uint256,address,bytes)","9af8f5de":"totalEDUSLeft()","9af917f4":"addRentable(bytes32,uint256,uint256,uint256,uint256)","9af95a4b":"dateBonus(uint256)","9af9f012":"wavesAgent()","9afa3dc7":"ADVISOR_STAKE_THREE()","9afb24ab":"setCLIForGas(uint256)","9afb93cb":"buyTicket(uint256,string)","9afbe49a":"tokenAmountOfPeriod(uint256,address)","9afcfba3":"getBurnRequestStatus(uint256)","9afd46a3":"closeTurnByHand(uint32)","9afd8b1d":"LiteBoxToken(address,string,string,uint256,uint256)","9afd9d78":"rollback()","9afe340f":"OasisToken()","9afebd18":"contract_finish()","9afec0ae":"ESOPLegalWrapperIPFSHash()","9aff301f":"FightClockAuction(address,uint256)","9affa42d":"increaseApprovalBatch(address[],uint256[])","9b013aee":"getBidPrice(uint256)","9b01c7ac":"getFishIdByAddress(address)","9b02e258":"changelp12(address)","9b03a211":"transferPresaleTokens(address,uint256)","9b04564a":"proposeTeamWithdrawal(address)","9b046ed3":"getCharacterTraits(uint256)","9b05535f":"checkpointBlock()","9b059309":"GoshenCoinCash()","9b05934c":"calculateSecretHash(uint256,bool,bytes32)","9b0646f6":"wadmin_setContrAddr(address,address)","9b06e9f5":"seTJackpotPersent(uint256)","9b087b2d":"totalTransferred()","9b08a22f":"allowTransfer()","9b08ace1":"bonusSecondWeekPeriod()","9b092f73":"safemul(uint256,uint256)","9b09768a":"maximumPoolPurchase()","9b09dfbd":"addArrayItem(address,string,string,address)","9b0a4764":"AkirasToken()","9b0a541e":"LogAllowedToAddress(address,bool)","9b0a5e67":"buy(string,uint256,uint256)","9b0aac15":"maxTokenSupplyPublicSale()","9b0ac9b0":"refundTime()","9b0b5bb2":"MIN_BANKROLL()","9b0b9c07":"acceptBankDraft()","9b0c1e51":"BONUS_MAX_DURATION()","9b0d1b2c":"getSpawningFor(address)","9b0ec5ae":"newSeed()","9b0ee7b7":"updateAirdropEndTime(uint256)","9b0f2510":"placeLong(address[2],uint256[8],uint8,bytes32[2])","9b0facaa":"existIdBeforeVersion(bytes32)","9b10394c":"IsOnSale(uint32)","9b10e9f7":"rawDetailsOf(bytes32,bytes32)","9b110f4b":"GayPersonalAdsToken(uint256,string,uint8,string)","9b11503e":"PUBLIC_SALE_START()","9b121e7c":"wethWithdraw(uint256)","9b12664f":"referralMinimum()","9b129181":"LTE()","9b12a4a1":"setCanDisburseMultipleTimes(bool)","9b132392":"createTrainer(string,uint16)","9b139504":"addPlayer(string,address,uint256,uint256)","9b13d209":"buyGuardianRune(uint256,uint256,uint256,uint256)","9b15ef2e":"END_PRESALE_TIMESTAMP()","9b16250a":"finishSign(uint256)","9b164ce3":"TestApprove()","9b173d57":"withdrawPolicy(uint256,uint256,uint256,address)","9b17b2dc":"checkWeather()","9b181e39":"_isAccepted(address,address)","9b18d79a":"one_ether_usd_price()","9b19251a":"whitelist(address)","9b19a92b":"year1LockAddress()","9b1a78c0":"ClaimGMT(address,uint256)","9b1a9b23":"destinationAddress80()","9b1ad792":"destroyToken(address,uint256)","9b1b0ab3":"buyingEscrowAddress()","9b1b615e":"pool(uint256,uint256)","9b1b8f62":"_gapOfSquareSum(uint256,uint256)","9b1bb323":"initContract(address,address,address)","9b1cbccc":"finishDistribution()","9b1cdad4":"postBounty(uint128,uint256,string,uint256,uint256,uint256[8])","9b1d767f":"fstTotalSupply()","9b1d8032":"clz32(uint32)","9b1d834c":"genPot_()","9b1dd3e5":"pullRipCord()","9b1e3825":"approveFundTransferToSupplier(address)","9b1f46cd":"allMilk()","9b1f70d1":"BET_RELEASE_DATE()","9b1f9e74":"_burn(uint256)","9b1fe0d4":"isApprovedInvestor(address)","9b21003b":"notPauseable()","9b2112c7":"ShopDexToken()","9b217f90":"getVestingTime(address,uint256)","9b21929a":"TOTAL_SUPPLY_BOTTOM_BOUND()","9b227a97":"ETH_TLD_LABEL()","9b22c05d":"test(int256)","9b234a9e":"tokensByWavesTx(string)","9b248798":"_InsufficientFunds(address,uint256,uint256)","9b24b3b0":"getRoot(uint256)","9b250f76":"clientInit()","9b252b7e":"t3Token()","9b256f46":"changeRoundBlock()","9b25e6f1":"ReservedTokensDistributed(address,uint8,uint256)","9b263eca":"providerContract()","9b267540":"unblockTokens(address,uint256)","9b26bae3":"AliciaToken(string,string,uint8,uint256)","9b276964":"STARTING_BAT()","9b27bf3a":"setWhiteListStatus(bool)","9b2843e2":"randomDNA(uint256)","9b285582":"ChangeIp(bytes32,bytes32)","9b28db50":"getWalletId(address,bytes32)","9b28f644":"setupFunctionalAddresses(address,address)","9b28f75a":"reclaimBalanceTokens()","9b29a295":"Payable(address,uint256)","9b29cb23":"getDailyPayment()","9b29f133":"userCancelActiveGame(uint256)","9b2a9d19":"origDev()","9b2aab1d":"frozenAccountOf(address)","9b2b0031":"updateDescriptiveInformation(address,string,string,string,string)","9b2b89d4":"UCAL(uint256,string,uint8,string)","9b2bdc20":"claimAllowanceOwnership()","9b2cb5d8":"minAmount()","9b2d2cbd":"orePrice()","9b2e5d32":"claimItems(uint256,uint256)","9b2ea4bd":"setAddress(string,address)","9b30a187":"nextWave()","9b30c7db":"changePortalAddress(address)","9b311b17":"averageMinerSalePrice()","9b322b7e":"HuandeToken(uint256,string,uint8,string)","9b3235bf":"getAbel()","9b33093f":"createNew(address,address,uint256)","9b332a91":"payDate()","9b33d7b3":"createAuction(uint256,uint256,uint256,uint256,bool)","9b33f055":"cancelSubscriptionOffer(uint256)","9b343342":"getRandomPrice(uint256)","9b343525":"highestContribution()","9b343e35":"createChildContract(string,uint256,uint256)","9b347f42":"teamVesting2Years()","9b34ae03":"winningOutcome()","9b350e12":"isEscaping(uint32)","9b351087":"cancelTreeSell(uint256)","9b3544f6":"postAssertion(uint128,uint256,uint256,uint256)","9b35928f":"RXBbitToken()","9b35b35a":"lockTs()","9b36057c":"registerGame(address)","9b3662bf":"currentParticipants()","9b367370":"confirmBlackFlag(uint256,bool)","9b36c3bc":"setMaxTotalAmount(uint256)","9b3725e8":"stageGenomes(uint8)","9b39caef":"COIN_PER_ETHER()","9b39f377":"getAnimalByIdVisibility(uint256)","9b39f9bf":"remainingTokensForSale()","9b3a300b":"SNK(uint256,string,string)","9b3a36c0":"calculateTokensWithBonus(uint256)","9b3b24ba":"VESTING_AMOUNT()","9b3ba79f":"maxAllocation()","9b3bc6fb":"checkERC20Balance(address)","9b3cbdf6":"CrowdSale(address)","9b3d17b1":"tokenSPUsdCentPrice()","9b3dfce0":"isPoDStarted()","9b3e28cc":"TokenReceivingEchoDemo(address)","9b3e9a48":"changeFreezeTime(uint256,bool)","9b3ee16e":"initialize(address,address,uint256,uint256,address,address,address,address)","9b3fd75d":"beginGame(uint256,address,address)","9b3fdf4c":"EVMSCRIPT_REGISTRY_APP()","9b409510":"creditAdvertiser(address)","9b41a9c5":"SedoPoWToken()","9b41b00b":"Sorus()","9b426e62":"assignTester(address)","9b44cb3c":"lastTrade()","9b46301e":"playersPerRound()","9b46461e":"getAnimalIdAgainstAddress(address)","9b46a71c":"setContractCap(uint256)","9b4778e4":"get_arbits_sale_open()","9b480435":"setPublicPlacementNum(uint256)","9b487f3f":"_forwardTransferFromToICAPWithReference(address,bytes32,uint256,string,address)","9b49413c":"GetItemInfo(uint256)","9b4a6bdb":"test_spamVoting()","9b4a7fe9":"setCCH_edit_17(string)","9b4b2d77":"processOffchainTokenPurchase(address,uint256)","9b4b973d":"acceptSettlement(uint256,uint256)","9b4bb9f0":"schedulePriceUpdatesFixed(uint256[])","9b4c1290":"_getFishPrice(uint16,uint16,uint8,address)","9b4c1902":"getGovtApplicationByIndex(string,uint256)","9b4c7b70":"redemptionFundTotal()","9b4d54fc":"startCrowdsale2(address)","9b4d9ecc":"setGrowCost(uint256)","9b4e533e":"isLastWithdraw(address)","9b4f19c6":"getMonths()","9b4f1ecb":"initialCost()","9b504387":"controllerTransfer(address,address,uint256)","9b51e35a":"getSchemePermissions(address,address)","9b52cacc":"ListingCreated(bytes5,uint256,uint256,uint256,address)","9b539a17":"setEncryptKey(string)","9b53a396":"calcKicks(uint256)","9b53d87c":"isManagerEnabled(address)","9b550e55":"nextMineId()","9b563fa3":"save(uint256,string,string)","9b566564":"withdrawAirdrop(uint256,bytes)","9b56730d":"compoundInterest(uint256,uint256,uint256,uint256)","9b5696b0":"notCollectedAmountAfter24Hours()","9b56d6c9":"getCollateral(address)","9b5719a6":"setSalesContract(address)","9b58316a":"EBANKTOKEN()","9b58b463":"retire(address,address)","9b58e46b":"createProduct(string,bool,uint256)","9b5906e5":"getLifeCoin()","9b598caf":"pastProposalTimeRules()","9b59ffd7":"verifyGame(bool)","9b5a2e13":"setBadgeGiver(address)","9b5a66e6":"insertInPlace(uint8[],uint8)","9b5adea2":"setMinter()","9b5b094f":"ANMOToken()","9b5b4019":"EtherWild()","9b5b969f":"transferSub(address,uint256)","9b5c0b5e":"burnPerweiYearly()","9b5cc9f4":"transferOwner1(address)","9b5cfcdd":"account1Address()","9b5d2e78":"TPI()","9b5d7d0b":"addBalanceReplenishment(uint256,uint256,uint16,bytes32,uint256)","9b5d8e63":"Multiplexor()","9b5e5d8c":"newCustomFutureLottery(uint256,uint256,uint256,address,uint256)","9b5f8abb":"getAllSponsors()","9b5fde7d":"payOut(uint256,string)","9b601c4d":"getQueryPrice(string)","9b60a443":"payto1()","9b612a1b":"freezeStaking(address)","9b619d3b":"_deleteAllPackedRevisionBlockNumbers(bytes32)","9b61cf09":"MOBILITYCREDIT()","9b624e7b":"setRound(uint256)","9b632829":"refundAll(address)","9b6349a8":"TokenDCCB(uint256,string,string)","9b63d0f4":"core(bool)","9b63eb4b":"getTicketsByGameIndex(uint256)","9b666d7a":"cos(int256)","9b6687ac":"getNumPositionProduct(bytes32,uint8,string)","9b671604":"proposeVoter(bytes32)","9b678bfc":"calcRates()","9b67bfa3":"fiatValue(uint256)","9b6806c9":"getCompanyShareholders(uint256)","9b68c992":"SubmitSecretBet(bytes32)","9b69608f":"read_dgx_inventory_balance_ng()","9b69de79":"transferLockAmount(address,uint256)","9b6a2b2f":"spriteOwningHistory(address,uint256)","9b6a6709":"presaleMint(address,uint256)","9b6aa1fa":"TransferData(address,address,uint256,bytes)","9b6b838c":"reinvestment_share()","9b6c5283":"createPool(string,uint256,uint256)","9b6c56ec":"debt(address)","9b6d86d6":"adminSetRegistrationDisabled(bool)","9b6d96c5":"create(int256,int256,int256)","9b6dbc8a":"closeShop()","9b6e407d":"setPercentUnfrozenAfterBuyPerPeriod(uint256)","9b6ec1cb":"HerbsChainToken()","9b7143eb":"creditsClawbacked()","9b71a7c9":"addAddressToRole(address,string)","9b71dec3":"getVineyardCount(string,address)","9b727e80":"CNiteToken()","9b73a5d9":"hasTwoYearWithdraw()","9b743cbd":"allocated18Months()","9b7502c3":"getLastAuditExtradata(address)","9b769ce3":"JsCoin()","9b76a25c":"transferFee(address,address,address,uint256)","9b76c1de":"team3LockEndTime()","9b76fbd6":"_recordPlatformFee(uint256)","9b771346":"ImportTestB()","9b772524":"partner1_signed()","9b7750f1":"addBranchInEpisode(uint256,uint256)","9b77c21a":"getClaimStatus()","9b77d69f":"addTagByModuleType(uint8,bytes32[])","9b7812ff":"add_quote(bytes32,bytes32,uint256,uint256)","9b782070":"TSSECOND()","9b786d68":"profitSharing(address,string)","9b788752":"trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,bool)","9b78cf9c":"medalFreeze(address,uint256,uint256)","9b7c08b8":"ERCToken(uint256)","9b7c288f":"lastDeploy(address)","9b7c5517":"committ_payment(uint256,uint256)","9b7d83e7":"porcoToken()","9b7defe3":"returnTokensFromHoldAdvisorsAddress(uint256)","9b7e5531":"ownershipDeadline()","9b7edbdb":"buyLimit(uint256)","9b7eeb12":"setScrapMinEndPrice(uint256)","9b7ef38c":"BatchUtils()","9b7f1687":"iUventaCoin()","9b7faaf0":"lockOver()","9b80c9e8":"payMoneytoOwner()","9b815057":"changeMakerDAO(address)","9b818ace":"SLChainToken(uint256,string,uint8,string)","9b819d38":"getNowTime()","9b81c8d3":"updateMeterValue(uint256)","9b82171f":"houseTotal()","9b828609":"reclaimContributionWithInterest(address)","9b82abdb":"LogBought(address,uint256,uint256,uint128)","9b831dcb":"RateUpdate(uint256)","9b8342d4":"getPlayerDividendByRound(address,uint256,uint256)","9b836d1a":"_payout(address,uint256)","9b8430eb":"distributeRevenue(uint256,uint8,uint8)","9b850322":"escrowDecision(uint256,uint256)","9b855a85":"releaseEQUITokens(bytes32,uint8,bytes32,bytes32)","9b85b9c9":"createDrug(bytes32,uint256)","9b85bc85":"CocacolaToken()","9b865999":"InitialOwnerAddress()","9b86975d":"ANemoiSaleContract()","9b880fee":"registerVestingSchedule(address,uint256,uint256,uint256,uint256)","9b8831df":"hasArtist(bytes32)","9b8906ae":"saleEnded()","9b894703":"maxTickets()","9b8a74f0":"cancelOffer(address)","9b8abe0b":"thousandtimes()","9b8b03a2":"strongHands(address)","9b8b365d":"deathData_a5()","9b8b6037":"findModuleVersionByAddress(address)","9b8b7160":"setPreFundingtokens(uint256)","9b8d1dd4":"CARDANOCLASSIC()","9b8d3064":"setFinance(address)","9b8d34d9":"addAgreement(bytes32,uint256,address[])","9b8da66c":"getEthFundDeposit()","9b8eb288":"setPercentWeiDividend(uint256)","9b8eb7b4":"getSocialAccountByIndex(uint256)","9b8f2493":"updateBurnBal(uint256)","9b8f5acf":"CyberChainToken()","9b8f5d4a":"setTilePosition(uint16,uint8,uint8)","9b8f7113":"dateSoftCapWasReached()","9b8fdf1b":"cancelExpectedPayment(bytes8)","9b901d00":"_createTeamSale(uint256[9],uint256,uint256,uint256,address)","9b9073e4":"allocationPool()","9b9111ee":"commonConfigure(address,address)","9b914973":"prebuyPortionTotal()","9b91f9be":"Gol()","9b922d97":"setCoinsaleactive(bool)","9b9279ec":"StartRefound(bool)","9b92adf3":"EnableTokenMinting(bool)","9b93aaf4":"addNewLoggerPermission(address,address)","9b945097":"getRandom(address,uint256,uint64)","9b9692f6":"TokensDistribution(address,uint256)","9b96c4ba":"AdvisorPart()","9b96eece":"getBalanceOf(address)","9b973803":"transfer10(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","9b97cee5":"getWorkCount()","9b985b30":"bountyMaxTokens()","9b986550":"getAllForPubKey(bytes32)","9b98a94b":"getLockTokens(address)","9b991d9b":"votingInfoTeam()","9b9958af":"getAllCardsClaimed()","9b99a8e2":"reserveTokenCount()","9b9a09a6":"HackContract()","9b9a236b":"SuperToken()","9b9a47e3":"getlastDividendPoints(address)","9b9b0b87":"mainICOFourthWeekEndTime()","9b9ba572":"oraclize_query(string,string[3])","9b9be9cb":"mainSale_TokesSold()","9b9bedf8":"getContractCreated()","9b9cc2ca":"getPrivateSaleAgentAddresses()","9b9ce1bc":"sendTokensBulk(address[],uint256[],uint256[])","9b9d0364":"_setFeeStructure(uint256,uint256,uint256)","9b9d2cc8":"RESERVED_TOKENS_ADVISORS()","9b9e07e1":"TeamtokenRelease3()","9ba11c0a":"coinunits()","9ba1a7d8":"preValidation()","9ba30c3b":"Healthcoin()","9ba319bf":"detangleQuanticCloudIOTData()","9ba33ab3":"refundLeftOverWei(uint256,uint256)","9ba3c2e0":"advisersAddr()","9ba3d8cf":"updatePromoFishCommission(uint256)","9ba4d4ee":"investedETH()","9ba4dbc2":"USDBTC(uint256)","9ba4eb5f":"SPINFundDeposit()","9ba58333":"AspirationCoin()","9ba5b4e9":"getEventHashes(bytes32[])","9ba65fff":"addNewcard(uint256)","9ba73d43":"deregisterCustomer(address,address)","9ba89492":"getNumAccounts()","9ba896cc":"refundTokensSale(address[])","9ba8975f":"changeFundsKeeper(address)","9ba8e37d":"withdrawFromToken(address,uint256)","9baa504e":"unrestrictedMint(address,uint256,uint128)","9bab0da3":"EVACASH()","9bab3988":"DongriToken(uint256)","9babdad6":"removeShareholder(address)","9bac6e8d":"currentMinter()","9bac8602":"testFailAddBalanceAboveOverflow()","9bacc97c":"specialAddress(address)","9bacf1ed":"createSynthesizingAuction(uint256,uint256)","9baddd98":"sendBountySupplyToken(address,uint256)","9bae56da":"getEstimatedRound(uint256)","9baeac78":"TOKEN_SUPPLY_PRESALE_LIMIT()","9baf7ffb":"etherToSendBankroll()","9bafd01a":"freeStorage(address)","9bafd22b":"DocumentCertoChainContract()","9bb00ae3":"ledgerCount()","9bb01b5f":"ElcoinDb(address)","9bb04895":"nominalValue()","9bb0e4df":"getUint(int256,bytes32,string)","9bb0f599":"hasToken(address)","9bb186d2":"MatchingMarket(uint64)","9bb192fd":"getVotes(uint32)","9bb1dbea":"commonWithdraw(uint256)","9bb1fd66":"force_stop()","9bb2ea5a":"setMaxValidators(uint256)","9bb32be3":"challengeFinality(uint256)","9bb3bcaa":"setArrIntField1(int256[])","9bb5239a":"CheckPrize(address,uint256)","9bb5c96c":"isContributorsRewarded()","9bb5ce30":"participationFee()","9bb5d450":"getMonsterCount()","9bb5f901":"UCToken()","9bb603bb":"create(string,string,uint8,string,bool)","9bb639a8":"changeTokenCostInEth(uint256)","9bb6831f":"millCap()","9bb74bbd":"tokensSoldToInvestors()","9bb848e7":"isRunningIco(uint256)","9bb84cd0":"addSellTokensRequest(address,string,uint256,uint256)","9bb8b563":"POKCC()","9bb8ec22":"SmartAdvancedCoin(uint256,string,string)","9bb8fde4":"startTimeStage1()","9bb90467":"initTokenAndBrackets()","9bbba3a8":"getTokensOnSale(address)","9bbc156b":"AllLock()","9bbc574a":"closeUser(address)","9bbdb25a":"getPartners(address,uint256)","9bbeafc1":"setMarketFees(bytes32,uint16,uint16,uint16,uint16,bool)","9bbedbbc":"deliver(address,address,uint256)","9bbfa582":"Lambotoken()","9bc0fd25":"setBlocklancerContractHolder(address)","9bc13360":"standardrate()","9bc2bc71":"createEvent(string)","9bc30adb":"upgradeBalance(address,uint256)","9bc3135b":"buyoutDividendPercentage()","9bc33b8a":"MediatedTransactions_TransactionHeight()","9bc52a39":"logClassic(string,uint8)","9bc53cec":"Moontrail()","9bc5689d":"NUM_OF_CHOICES()","9bc61d06":"MeetupContract(string,string,uint256,uint256,uint256)","9bc64cc8":"saiTap()","9bc6b571":"ChangeExtension(uint256,bool)","9bc6d815":"BestCountTokens(uint256)","9bc6f0ec":"createChildDeposits(uint256)","9bc706e8":"publishedCountOf(address)","9bc72d5f":"worstCaseRateFactorInBps()","9bc742fe":"setStepOneLockEndTime(uint256)","9bc85302":"burnUserTokens(address)","9bc896f9":"orderCancel(uint256)","9bc8e9ee":"setMintingDec(uint256)","9bca3596":"Ubecoin()","9bca8a1e":"setTableTypesSize(uint256)","9bcb8dff":"BallzToken()","9bcc2b27":"ctrlZee()","9bcc9123":"rejectNegotiation(address)","9bccfe49":"actionsCount()","9bcdd9e8":"forgetCube(address)","9bce51e3":"sendCrowdsaleTokens(address,address,uint256)","9bcef169":"getLeaderboard(string)","9bcf497b":"setUserPaybackPool(address)","9bcf7352":"setEnableInternalLock(bool)","9bcf8ca2":"addresses(uint256,uint256,uint256)","9bcf9ea2":"PIVOT()","9bcfcee8":"minting(address,address,address,address)","9bd03774":"TokenContractImpl(uint256,uint8,address,address)","9bd0a967":"isEndsWithHpb(string)","9bd1ff8b":"tokenFallback(address,address,uint256,bytes,string,uint256)","9bd26234":"contrubutedAmount(address)","9bd2af03":"trent()","9bd2d912":"ZipflaxToken()","9bd33457":"totalOnDeposit()","9bd3651b":"Authenticate(uint256,address,uint256)","9bd41f7c":"createToken(bytes32,string,string,string,string,string)","9bd4d455":"addMember(string,address,string,uint256,uint256)","9bd4e13e":"bettor_reward(address)","9bd4e925":"CROWDSALE_ETH_IN_WEI_FUND_MIN()","9bd5679e":"getCurrentICOExpirationTime()","9bd6030c":"nbagame()","9bd658d9":"whoOwnsYou()","9bd69528":"addToKyc(address)","9bd695b0":"hasRequiredSignaturesToValidate()","9bd6a4de":"initPublicityAddr()","9bd702e4":"sellCrab(uint256,uint256)","9bd7d688":"checkAncestors(uint32,address,uint64,uint64,uint64)","9bd80dcf":"calculateMasked(uint256,uint256)","9bd8e081":"gunsFundDeposit()","9bd90aae":"maxTokensToCreate()","9bd99195":"multiAccessChangeOwner(address,address)","9bd9bbc6":"send(address,uint256,bytes)","9bda8678":"externalDeposit(address,uint256)","9bdbb4c7":"market_WithdrawBid(uint256)","9bdc6523":"setUserWhiteListContract(address,bool)","9bdce046":"DICE_HIGHER()","9bdd070d":"withdrawTokenToDefault(address,address,uint256,uint256,uint256,address)","9bdd7cdb":"forceRelease(bytes32)","9bde88f0":"getcan(address)","9bdf5a7c":"Zenix()","9bdf6f62":"soldTokenCount()","9bdff8eb":"oracleB()","9be07908":"left79(uint256)","9be08a4e":"NCPPrivate()","9be0f105":"OxChainNetwork()","9be0fc75":"toggleDrop()","9be1eab7":"setContractStakeToken(address,address)","9be1fcee":"BankOwner_DisableConnectBankAccountToNewOwnerAddress()","9be2385a":"depositOldTokens(address,uint256,address)","9be2faed":"isSchemeRegistered(address,address)","9be2ff64":"setAllowPlayer(bool)","9be3b286":"endOffering()","9be4d15e":"split(bytes32,uint8,uint256)","9be50784":"drawBenz()","9be56c67":"support(uint256,uint256)","9be572f6":"getTotalUsers()","9be5ad78":"_saleState()","9be5b3b1":"MetadollarOption()","9be6178e":"acceptBet(bytes16,bytes16,bytes16,bool)","9be6d404":"destructSelf(address)","9be7f1dd":"buyerfee()","9be88a01":"_rotateLeft(bytes32)","9be8a212":"FoundersFund()","9be95517":"_createRandomMonster(uint32)","9bea62ad":"restore(uint256)","9beaa524":"getActivityName(uint256,uint256)","9bead36f":"resolveEntityAddressAndOwner(address)","9beb6c6b":"_saleFinalized()","9bed31e4":"setParameters(uint32,uint256,address)","9bedb2c7":"MyReferrals()","9bee3365":"sayYes()","9bee757b":"requestExecution(bytes,uint256)","9beebe20":"setTrustedTransfer(bool)","9beef73f":"stageDistributed()","9bef0c47":"getUserPictureByWallet(address)","9befa8b4":"DisqusBot()","9befd45a":"payFee(bytes32)","9bf0093c":"LIV()","9bf037e5":"BaseCrowdsale(address,address,address,uint256,uint256,uint256,uint256)","9bf070b5":"ethRaisedWithoutCompany()","9bf08a06":"joinArena()","9bf1c389":"stage_1_add()","9bf1f148":"requestAudit(address,bytes32,uint256)","9bf22189":"Validated(string)","9bf2926d":"Proposal(address,uint256,string)","9bf2ab46":"preSalesEndDate()","9bf30bac":"handleIncomingPayment(address,uint256)","9bf34e30":"ecrecover3(bytes32,uint8,bytes32,bytes32)","9bf39dce":"contributionTime()","9bf4c5c5":"destroyedNinjas()","9bf677e4":"phase_1_rate()","9bf68006":"testControlSetNotTransferableNotOwner()","9bf6b0a8":"withdrawForFiveStep()","9bf6deaf":"ChangeEmissionRateCoefficient(uint8)","9bf6eb60":"mintTokensExternal(address,uint256)","9bf74ae0":"periodICOStage1()","9bf7ef63":"verifyMultiSig(address,bytes32,bytes,uint256,uint256)","9bf865d0":"numberToAddress(uint256,address)","9bf8df7d":"recoverLost(address,address)","9bf97bd9":"get_deployed_forwarders()","9bf97e74":"BNN()","9bf9cd26":"PreSaleSold()","9bfa1f33":"ORDER_FILL(address,address,address,bool,uint256,uint256,uint256)","9bfa835b":"privateMin()","9bfa882e":"updateAddress(address,address)","9bfaa24b":"startTradable(bool)","9bfafdc2":"ERC223Transfer(address,address,uint256,bytes)","9bfb9717":"additional_incentive()","9bfb9752":"setTime1(address,uint256)","9bfba3c6":"ico2cap()","9bfc80fc":"TopSciFiVoter()","9bfd8d61":"totalStaked(address)","9bfdce3e":"deal(address,uint8)","9bfdd1bb":"setSchema(string,bytes32,string,uint256,uint256,uint256,uint256)","9bfdf68d":"requestLoans(uint256[],bytes32[])","9bfe171a":"STASToken()","9bfe7bd5":"getNumOrdersByOwner()","9bfeda53":"_getRewardTokenAmount()","9bff209d":"softSub(uint256,uint256)","9bff662c":"notify_payment_acceptance_request(uint256)","9c001bcc":"TOKEN_SHARE_OF_BOUNTY()","9c0051db":"setProfitTransferTimeSpan(uint256)","9c007973":"resolveDispute(bytes16,address,address,uint256,uint256,uint8)","9c01e1f5":"addNFToken(address,uint256)","9c01fdaa":"PimmelToken()","9c03b04f":"testItStoresAValue()","9c03f17f":"sencToken()","9c03facb":"sold(uint256)","9c041ebd":"create(address,address,address)","9c043783":"eachUnfreezeValue()","9c049dd0":"hydroStakingMinimum()","9c04e4e7":"pre_sale_end()","9c04ece9":"lastBlock_f7()","9c05093b":"setTeamTokensWallet(address)","9c05ba60":"getIndexName(bytes32)","9c066eab":"seeRaised()","9c0770fe":"ZIL()","9c07b2cd":"resetTotalSales()","9c080f5d":"showBalance(address)","9c08606c":"lockedDays()","9c08d549":"startICO(uint256,uint256)","9c0953cf":"setProducer(address,address,bool)","9c09a64c":"claimSMR()","9c09b32c":"ProcessTransaction(uint256)","9c09bb4e":"getBestMatch()","9c09c3bb":"attestForIdentity(address)","9c09c7c6":"addGuessWithRefund(int256)","9c09c835":"enableWhitelist(address[])","9c09f869":"PixelSelling()","9c0a4bbc":"AlwaysFail()","9c0b7c08":"terminateFunding()","9c0baa2d":"_getRate(uint256)","9c0bd57c":"withdrawDragons()","9c0c2238":"withDrawEther()","9c0cc30c":"getAllArtworks()","9c0d010e":"_checkOpenGame()","9c0df4f2":"blessings()","9c0e3f7a":"write(uint256,uint256)","9c0e7d66":"leftoverTokensBuffer()","9c0ee65b":"Hold(address,uint256,address,address,address)","9c0f16ed":"tokensOfTeamAndAdvisors()","9c0fc1e4":"AIC()","9c117f0f":"get1(uint256)","9c118238":"withdrawBalanceFromServer(address,uint256,bytes)","9c1193ea":"GreeterA(bytes)","9c121aff":"LogClaim(bytes32,address,uint256)","9c121b6d":"meltHorseShoe(uint256,address)","9c1230c1":"amount_stages()","9c128493":"Lol1CoinCoin()","9c12ca21":"setGroupBounty(address[],uint256)","9c12deab":"isVendor(address,address)","9c135572":"documentsIds()","9c147688":"bulkMint(uint32[],address[],uint256[])","9c14c77b":"getBuyTime(uint256)","9c14e25b":"DonQuixoteToken(address)","9c1500f0":"registerMany(address,uint256,int256,uint256,bytes,address,bytes)","9c15b047":"getInitialOwners()","9c15b04b":"showDividendsAvailable()","9c15be0b":"left65(uint256)","9c161d1a":"setNextImagePart(address[16],uint256,uint16,uint16,uint16,uint256[])","9c16667c":"getAnswer()","9c166d31":"LukaToken()","9c172f87":"EthVentures4()","9c1747e5":"addRewardPercentage(uint256)","9c1817e4":"Saddle_Limit()","9c19aa9f":"setOrderSupportCancel(uint256)","9c19f170":"TotalRaised(uint256)","9c1a056f":"visitLength()","9c1a32fe":"setTake(uint256)","9c1b9408":"preMultisigEther()","9c1b987c":"setComment(uint256,bytes3,string)","9c1b9c1b":"assignTokens(address,uint256,uint256,uint256,uint256)","9c1cb7cf":"PaymentStatusBlockNum(address)","9c1d8fa2":"GPN(uint256,string,string,address)","9c1d9790":"sendBatchCS(address[],uint256[])","9c1e03a0":"crowdsale()","9c1f020a":"sendCrowdsaleTokens(address,uint256)","9c1f332f":"returnLastBuyerIndex()","9c1f6133":"registerVIP()","9c1fcc4c":"logicAddress()","9c2062ad":"RISK()","9c2108eb":"transferGoldFromHotWallet(address,uint256,string)","9c211755":"RequstOwnership()","9c225b33":"teamAndAdvisorsAllocations(address)","9c2412a2":"monarchyStartReward()","9c24654c":"presalestartTime()","9c24ea40":"setLinkToken(address)","9c24eedb":"upvote(uint256,int256)","9c24fc55":"presaleBalances(address)","9c250dd8":"etherTransfer(address,uint256)","9c253011":"print(int256,address)","9c255312":"addressETHDeposit()","9c25d975":"packLocation(uint64,uint64,uint64)","9c2625fd":"TEAM_TOKENS0()","9c269c34":"TBL4Token()","9c27a6f4":"buyTicket(uint8,uint16[],address)","9c27ea08":"setNextLotteryTTMTokenId5(uint64)","9c27ff9b":"calculateFEE2Distribute()","9c286837":"devCut()","9c293792":"release_all(address)","9c2a7b89":"setTokenInfoHeritor(address,address,uint256)","9c2b1a95":"getManagementFee()","9c2c1b2b":"addDelegateSigned(address,uint8,bytes32,bytes32,bytes32,address,uint256)","9c2cdd5a":"MULTISIG_TKN()","9c2e29c6":"LocalLambosEscrows()","9c2ea2ec":"setEthExRate(uint256)","9c2f0067":"EPIToken(address,uint256)","9c2f4092":"DEVP()","9c2f5f8f":"closeCurrentGame(uint256)","9c2f7a43":"getCrystal(uint256)","9c2f88fa":"CoinBundleToken()","9c2fa55d":"buyFirst()","9c30936f":"removeCertificationDocumentFromSelf(bytes32)","9c31200b":"oraclize_query(uint256,string,bytes[1],uint256)","9c315684":"periodPreICOStage()","9c31c5ec":"setItemsContract(address)","9c323436":"getFixedEndTime(uint256)","9c33b66e":"checkAvailableTokens(address,uint256)","9c34a15f":"c(uint256,uint256)","9c34ae54":"setICODates(uint256,uint256,uint256,uint256,uint256,uint256)","9c351fec":"SNDToken(address,string,string,uint256,uint256)","9c36e141":"defaultTimeLock()","9c3723df":"windowBonusStep2()","9c38019b":"verifyProofOfMembershipInternal(uint256,bytes32[],bytes32,bytes32)","9c3807e6":"STARTING_STRIPPERS()","9c388d30":"LogAccountAmount(address,uint256)","9c392e5c":"VirginMToken()","9c39857b":"setTeamAdd(address)","9c3b936f":"killBalance(uint256)","9c3b9aa3":"MundoGamerToken(uint256,string,uint8,string)","9c3bcd65":"deliverPresaleFuelBalance(address,uint256)","9c3c7b2c":"transferredPresale()","9c3c97a1":"prohibitFreeze()","9c3db309":"getCurrentMiningDifficulty()","9c3e0f3f":"icoStarts()","9c3ed1ae":"unitsUserCanBuyLimit()","9c3f1e90":"orders(bytes32)","9c3f7ca2":"acceptOffer(uint256,uint256,bytes32)","9c3fe721":"finishedIssuerMinting()","9c402944":"sendAVR(address,uint256)","9c4063ce":"WALLET_T8EX_TEAM()","9c409e4d":"VoteOnTransfer(address)","9c40ea5c":"setGRForGas(uint256)","9c41adfd":"withdrawDepositById(uint256)","9c41e591":"XGoldToken()","9c4261b9":"VOLUME_EXTRA_BONUS_CONDITION()","9c43d950":"registration(uint256,uint256,uint256)","9c43eb54":"snapshotTimestamp()","9c44f090":"AlquilarBici()","9c45510d":"FootBallCoin()","9c472c70":"rateSecondWeek()","9c473bb2":"setTokenName(address,bytes32)","9c4780d8":"currentRoundNumber()","9c481c9e":"crowdsaleContractAddress()","9c489edb":"setNewExchangeAddress(address)","9c492b9e":"raisedFromFiat()","9c499b53":"getFeesAvailableForWithdraw()","9c4abe06":"getEthOfferPrice(uint256)","9c4ae2d0":"deploy(bytes,uint256)","9c4b653d":"sendFundsToMsgSender(uint256)","9c4b9c8a":"getFreezeTimestamp(address)","9c4baf27":"Skywalker(address,address)","9c4bcaa5":"setMinBuyPrivate()","9c4c557c":"startSale(bool)","9c4ca8cb":"IChain(address,uint256,uint256)","9c4de81f":"havven()","9c4e0f52":"setMaxTokenSellAmount(uint256)","9c4e3788":"earlyInitProjectSupply()","9c4eda5c":"balanceA()","9c4fc41a":"getWineCount()","9c4fc563":"_findParticipant(uint256)","9c50450f":"amountToCreate()","9c50e7ca":"tgeDateStart()","9c513bdd":"BwinCoin()","9c526380":"getUserTotalCredit(address,address)","9c52a7f1":"deny(address)","9c536640":"confSetupMixer(bytes32,uint256,uint256,uint256,uint256)","9c544e72":"removePending(address,uint256)","9c54b91f":"setApprovalCount(uint256)","9c54df64":"addAdmins(address[])","9c55519b":"optionsConversionDeadline()","9c561a42":"Wallet4()","9c566cad":"cards_start(uint256)","9c5686db":"isERC821()","9c579839":"QUOTE()","9c57d584":"verifyFingerprint(uint256,bytes,int256)","9c58b753":"getWriterId(bytes32)","9c58be11":"claimMyToken()","9c58c509":"buyIcoToken2(uint256)","9c591412":"lifeReserveWallet()","9c5b33ae":"wb()","9c5bbc89":"setApprovedAddress(address)","9c5c53b3":"lockBonusTokensClaim(uint256)","9c5d5e98":"JACKPOT_WINNER()","9c5d7030":"reimburseGas(uint256,address,uint256,uint256)","9c5d7291":"PhoneCoin()","9c5de58b":"startRC()","9c5e078f":"createBBODocument(bytes32)","9c5e108c":"_getFreezeTime(uint8)","9c5e9023":"confirmBeneficiary()","9c5fafa4":"balanceOfComisionHold(address)","9c6034a7":"sendIfNotForked()","9c60839e":"mintBonusTokensForGames(int256,uint256)","9c623683":"setWinner(uint256,address)","9c62622d":"IHate0xBTC(string)","9c632c77":"getServiceTokenAddress()","9c6393f2":"TokensWithdrawn(uint256)","9c639db4":"UltiCoin()","9c63dae5":"depositorCurrency(address)","9c644221":"PRICE_STAGE_ONE_BONUS()","9c66452e":"checkTime(bytes32,bytes32,uint256)","9c665819":"Talent()","9c66fe00":"priceOfLandmark(uint256)","9c6735c7":"ProfitRate()","9c675eaa":"ownerAddr()","9c67f06f":"registryStarted()","9c67f2fb":"returnEth4Sender(uint256)","9c681f86":"totalTokenTransfers()","9c6891c5":"set_bountyPercent(uint256)","9c68bd60":"payPledge(uint256)","9c695a7b":"_isInStage(uint256)","9c69763b":"setICOManager(address)","9c697750":"getRemainingLimit(address)","9c6a5bca":"RiptideCoin()","9c6a97ee":"deleteMyCat()","9c6c3439":"burnReputation(uint256)","9c6e199a":"sendTokensManually(address,address,uint256)","9c6e1d46":"emitJobCanceled(uint256)","9c6f87e9":"getPseudoRandomNumber()","9c700b70":"withdrawOwnerEth(uint256)","9c707dcf":"_mthToVouchers(uint256)","9c7081df":"prestige()","9c709343":"split(bool,address)","9c70b899":"KYC_ETH_LMT()","9c715535":"confirmPendingChange(address)","9c71d169":"OfferCancel(uint8)","9c71efef":"STARTING_CraigGrant()","9c71fda4":"WALLET_LB_RESERVED()","9c7264d7":"fillOrder(address,uint256)","9c73048b":"distributeCastleLoot()","9c732203":"DoDev(uint256)","9c737e8f":"fundPot()","9c7387c7":"finishContribution()","9c73ff7d":"DANK()","9c7409b0":"_getProtectionParams(uint256,uint256,uint256)","9c75089f":"Tresdk()","9c755f2f":"stuff()","9c756200":"ContractOwnerWithdraw(uint256)","9c756ec9":"PREICO_PERIOD()","9c76a6ac":"buybackPrice()","9c775e1f":"delegateApprove(address,uint256)","9c787ab2":"YUNXINToken(uint256,string,uint8,string)","9c7912ff":"setXzlkcjqowhoqhwoihsiaoquweizxoiuo(uint256)","9c792938":"estimate(uint256)","9c79af26":"issueExchangeRate(address,address,address,uint256,uint256,uint256)","9c7a39e6":"doCustomAirdrop2(address,address[],uint256[])","9c7ab767":"numSubscribers()","9c7b3c45":"TextToken()","9c7b3d79":"ARTISTCOIN()","9c7b7a2d":"SingleSourceIdentity()","9c7beb8a":"mintingAgents(address)","9c7c2498":"OnChainOrderBookV013b()","9c7c722b":"rename(string,string)","9c7dcdeb":"hostAccount()","9c7e6e6e":"checkRokBalance(address)","9c7e8a03":"addParticipant(address,address,uint256)","9c7eaac5":"makeTrade(address,address,uint256)","9c7ebb30":"SellTokens(uint256)","9c7ed6cb":"AgiCrowdsale(address,address,uint256,uint256,uint256,uint256,uint256)","9c81806d":"WithdrawSpecialEth(uint256)","9c81a5f6":"getVestingsCount(address)","9c821ac4":"testFailsIfReturnLessThanMin()","9c82f2a4":"setSwapper(address)","9c830beb":"setStateHolding()","9c839bdd":"nextWithdrawDayCommunity()","9c83a1e3":"deleteDeposit(address)","9c83b0a1":"ValeoTestToken()","9c841c16":"checkCorrectRate(bool,uint8)","9c84d1f7":"News()","9c84eebe":"ERC20Token(uint256,address)","9c851ebc":"new_entry()","9c85a28a":"infoMessage()","9c8615ac":"is_entity(address)","9c865645":"calculateFactorFlushDifficulty(uint256)","9c86b241":"createPromoArt()","9c88b7bf":"enableNewPurchasing(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","9c88cbb6":"getCurrentBracket()","9c893d73":"LinkCoinToken()","9c89a0e2":"getReputation(address)","9c89a10a":"presaleOwner()","9c89ddb5":"addCourse(string,address)","9c89e828":"BidSubmission(address,uint256)","9c8a5a56":"bribedCitizen()","9c8aeedd":"breakIdMaintenance2(uint256,address)","9c8bb5d0":"confirmBoardScore(bytes32,bytes32)","9c8bcd6d":"WbtToken()","9c8e1d50":"getChipValue()","9c8f8569":"Scc()","9c8f94bd":"widthrawBondFunds(address)","9c8f9f23":"removeLiquidity(uint256)","9c90224b":"assertEq1(bytes1,bytes1,bytes32)","9c908f61":"acceptTokens(address,uint256,uint256,uint256,uint256)","9c91ae20":"getGeneration(uint40)","9c91dd56":"paymentContract()","9c9205b6":"Token(address,address,uint256)","9c926061":"HashProject(address)","9c92bfda":"testReceiveSubmittal()","9c93a52f":"SALE_TOKENS_SUPPLY()","9c9421c3":"Testtoken()","9c94e6c6":"notice()","9c960cbb":"setAyantDroitEconomique_Compte_6(uint256)","9c97114b":"s(bytes)","9c977e43":"requestOraclizeBalance()","9c978442":"TransferToAllAccounts()","9c981fcb":"getString(string)","9c9a1061":"buy(bytes32)","9c9a2365":"getFungibleTokenAddress()","9c9a4b72":"TokenVesting(address,address)","9c9b1170":"setoraclelimitgas(uint256)","9c9b2e21":"addReward(address)","9c9b8fcc":"ALC_FOUNDATION_ADDRESS()","9c9c344c":"getTotalUpdates()","9c9cc12a":"getCatRelease(uint256)","9c9d07c1":"STARTING_DINO()","9c9de4dc":"INT(address)","9c9e2752":"SBGCrowdsale()","9c9ecedb":"InitialArray()","9c9ef44a":"setDiscountValueOn()","9c9ef978":"addDataToList(bytes32,bytes32,bytes32,bytes32)","9c9fb68b":"GetGamblerChoices(address)","9c9fe2a4":"FundsClaimed(address,uint256,string)","9c9fe83a":"setBA(bytes32,address)","9c9ff934":"ETH_HEROCOIN()","9ca0e5e1":"setGoldBonus(uint256)","9ca15d59":"oldInviteAddr()","9ca2b9e4":"AdvancedDeposit(bytes32,bytes32)","9ca3669d":"cancelCommissionerAuction(uint32)","9ca3c29c":"getCost(string)","9ca423b3":"referrals(address)","9ca44515":"ketqua()","9ca5454e":"distributes(uint256)","9ca5f4a7":"SafeERC20Helper()","9ca67a6e":"notapproved()","9ca6e670":"apply(uint256,uint256,string)","9ca74595":"BobMarleyCoin()","9ca75320":"searchNode(address)","9ca77f3c":"kingdomsByNumber(uint256)","9ca7c912":"ownerTime()","9caaa154":"setLuckPrice(uint256)","9caaa7f4":"get_this_balance()","9caab55a":"ParticipantAgent()","9caabfac":"dateEcoRelease9()","9cad74b0":"randomNumber(uint8,uint8)","9cadb159":"settleChannel(uint256,address,uint256,uint256,bytes32,address,uint256,uint256,bytes32)","9cae6100":"addAward(string)","9cae9e03":"getPropertyInfo(uint8)","9caeab45":"periodICOStage5()","9caf34c4":"getBalanceEth()","9caf9695":"paleyer2show(uint8,uint8,uint8,uint8,uint8)","9cb02e8c":"delayPhaseEndBy(uint256,uint256)","9cb04d18":"newPresale()","9cb157d9":"VNT()","9cb15a94":"FreeCoin(uint256,string,string)","9cb1e9fe":"cubicContract()","9cb21f6d":"ImperialCredits()","9cb230ec":"Lockup(address)","9cb29034":"CCECOIN()","9cb2b69b":"getCreated(uint256)","9cb31079":"setLowLimit(uint256)","9cb33309":"BasicTokenMock(address,uint256)","9cb35327":"ceilDiv(uint256,uint256)","9cb42db4":"PDS()","9cb481ea":"getBountyAmount(uint256)","9cb4b31c":"tokenTimelockAddress()","9cb64a2d":"debtor()","9cb6a504":"addColor(string,string)","9cb6ed7e":"escape(address)","9cb6fc77":"confirmUpgrade()","9cb74ab6":"mgmtInvestProject(address,uint256)","9cb7595a":"getBridgeInterfacesVersion()","9cb75b2f":"sendBonusEgg(address,uint256)","9cb78df8":"minSuccess()","9cb7de4b":"setHandler(address,bool)","9cb8a26a":"selfDestruct()","9cb931f9":"setReferralPromille(uint8)","9cb998dc":"increase(bytes32)","9cb9c14f":"Issuance(address,uint256)","9cba3559":"globalAmounts(uint256)","9cba60a7":"bitmask_check(address,uint256)","9cba713e":"reserveTreasury(uint256)","9cbad951":"withdrawAllTokensFromBalance()","9cbafcb6":"Pharamore()","9cbb165e":"isOnBorrow(uint256)","9cbb9460":"fetchOrdersForMerchantByAdmin(address)","9cbc2d62":"get_member_info(address)","9cbc87a3":"bytes32ArrayToString(bytes32[])","9cbcfcc7":"calculateGotTokens(uint256)","9cbd695f":"show(uint256,uint256)","9cbd7da5":"resumeICO()","9cbdffc6":"unblock()","9cbe5efd":"currentRoundId()","9cbf1b85":"exchangeRateAt()","9cbf73a9":"purchaserAddresses(uint256)","9cbf9e36":"createToken()","9cc04ea0":"newRecord(uint256)","9cc0c5e3":"experty_io()","9cc1c97b":"test_threeValidEqAddress()","9cc24569":"ExKnox(address,address)","9cc28aa0":"BdpOwnershipStorage(bytes8)","9cc2bcc6":"AhieldCureToken()","9cc33024":"setPresidenteDeMesa(bytes32,uint256,uint256,uint256,bytes32)","9cc3b949":"Bookmark()","9cc429dc":"getBattlesCount()","9cc477b2":"createFashion(address,uint16[9],uint16)","9cc4a319":"CarToken()","9cc4d3dd":"convertNumSec(uint256[],uint256[])","9cc4da3b":"WHAuthorizeAddress()","9cc579af":"MarketJob(address[],uint256[],uint256[],address,address,bytes)","9cc5dd95":"_removeOwnersAproves(address)","9cc73a6f":"raiseDay3()","9cc74299":"withdrawFromManager(uint256,address)","9cc7d917":"earlyBirdsAddress()","9cc7f708":"balanceOf(uint256)","9cc8295a":"EnoughClaims(uint256)","9cc84564":"envelopeCounts(address)","9cc9299e":"killSwap()","9cc946ee":"OlivToken()","9cc9b86d":"disableService(address)","9cca1c64":"getNonFungibleIndex(uint256)","9cca7ac3":"QueueDemandesEnCours()","9ccaec98":"getAuctionInfo(uint40)","9ccb6e8d":"SentToContractor(uint256,address,uint256)","9ccbbc6a":"minimumPowerUpSizeBabz()","9cccaea9":"StreamityContract()","9cccb272":"BatchPaint(uint8,uint256[],bytes3[],uint256[])","9cccd2a4":"getSumAmountOfSuccessfulSteps()","9ccd0b51":"getCountCourse()","9ccd7d86":"setWinery(address,address,bool)","9ccdd994":"Pume(uint256,string,string)","9ccf1a68":"prepareURL()","9ccfceed":"MANHATTANPROXY10THAMSTAVE()","9cd0126a":"gemHpConversion()","9cd01605":"exchangeAddress()","9cd04996":"DiscountedPreICO(uint256,uint256)","9cd08464":"transfer_eth_from_contract(address,uint256)","9cd08bae":"CevacToken(uint256,uint256)","9cd0c511":"depositMintAndPay(address,uint256,uint256)","9cd106a8":"cancelRecurringBilling(uint256)","9cd19074":"createKey(bytes32)","9cd1a121":"delegateTransfer(address,uint256,address)","9cd2021c":"mintRefs()","9cd22211":"getPlayerGameInfo(uint256,address)","9cd23707":"setTransferable(bool)","9cd3cb5d":"withdraw_token(address)","9cd417d7":"rejectCurrentValidation()","9cd43690":"GENTATOKEN()","9cd4fb47":"Tier_Classic()","9cd5c9a8":"setAssetWallet()","9cd70235":"setAmountToClaim(address,uint256)","9cd758d0":"setPOOL_edit_2(string)","9cd77457":"createInactivePreMintedEdition(uint256,bytes32,uint256,uint256,uint256,address,uint256,uint256,string,uint256,uint256)","9cd84ead":"APPToken612()","9cd994b4":"updateAuctionTime(uint256,uint256,uint256)","9cda1ec5":"setDistributor(address,bool,uint256)","9cda5a12":"calcPoseBits(uint256,uint256,uint256)","9cdacdb3":"Setup(address)","9cdaef4d":"_set4()","9cdaf438":"ARCCToken(address,uint256)","9cdb4fe8":"addEvidence(bytes32,uint256,bytes32,uint8,bytes32,bytes32)","9cdbaa21":"tokenTransferLocker()","9cdbc070":"addVoting(uint256)","9cdd2e76":"getHeroLocation(uint256)","9cdec2bb":"getCompte_18()","9cdee922":"RushCoin()","9cdf1872":"getOut()","9cdf4dd3":"Token(address,string,string)","9cdf8a1f":"WTBNToken()","9cdfa3df":"getAddrForPrivilege(address)","9ce04e35":"enableInvestorTransfer(address)","9ce21f3c":"fundingWalletAddress()","9ce2c7f2":"AumentaQuantitaVoti(uint256,address)","9ce318f6":"withdraw(uint8[],bytes32[],bytes32[],bytes)","9ce31fe1":"StudToken(uint256)","9ce3961f":"nextVersionAddress()","9ce3f461":"UP_winBets()","9ce51c7c":"sendNewTalentsAndPartnerships()","9ce682bd":"BetFromTransaction(address,uint256)","9ce80efc":"test_twoInvalidAssertFalse()","9ce840d4":"withdrawNotATokens(address)","9ce8fc4e":"LogForkSigned(uint256,bytes32)","9ce962ca":"payWallet()","9ce9e380":"_burnAllArgs(address,uint256)","9cea127f":"CMTTT()","9ceb5c6d":"icoBonus1EndDate()","9ceba90b":"startWeekFive()","9cec2789":"gettags(address)","9cecc80a":"setReserve(address)","9ced0e9b":"initialTime()","9ced5c29":"enableNode()","9cede14c":"checkAndGetSendersID()","9cee1773":"Mednus()","9cef2a6a":"addLand(address,uint256)","9cef8873":"reclaimLand(int256,int256)","9cef9cfe":"isNumBlack(uint8)","9cefa50b":"winner(uint256,bytes32)","9cf17d5f":"ScamCoin()","9cf21342":"AnimeCoin()","9cf21d90":"ETCH3dV()","9cf2c727":"sumHardCapICOStage7()","9cf3123b":"sellWolkEstimate(uint256,address)","9cf3566d":"promotionAllocate(address,uint256)","9cf4124f":"enableContinuousDelivery()","9cf48365":"getInvestedToken(address)","9cf488ad":"sendPlayerBack(uint256[])","9cf4910c":"preDistriToAcquiantancesEndTime()","9cf4cb1e":"_getVotes(uint256,uint256,uint256,address)","9cf5453d":"bid(address)","9cf55cfb":"sampleBoolRetTrue()","9cf5c613":"setVerified(address,bool)","9cf60b86":"addRefBalance(address,uint256)","9cf66013":"whitelistRegistrantsFlag(address)","9cf66997":"clearLand(int256[],int256[])","9cf6f1eb":"CBVO()","9cf78527":"UAPToken(address)","9cf8ccfd":"currentPlayers()","9cf9342e":"createContract(bool,string,bool)","9cf94943":"whitelistAdd(address[])","9cf9d4c0":"setPOOL_edit_9(string)","9cf9e3ab":"TokenReleased(address,uint256)","9cfa0f7c":"maxTokensToBuy()","9cfa750f":"isParticipant(uint64,address)","9cfad128":"calculateFee(address,bool,bool,uint256,uint256)","9cfcab47":"NovoToken()","9cfd5dc4":"validPurchase(uint256,address)","9cfda697":"setColorsX4(uint16[4],uint256[20],uint256)","9cfdd04d":"BCN()","9cfdfe42":"AXIS()","9cfe42da":"addBlacklist(address)","9cfe6c86":"count_tokens()","9cff53e0":"nDeposits()","9d000e78":"VUP_PER_ETH_PRE_SALE_RATE()","9d00ffa5":"isMessageValid(bytes)","9d01e730":"EarlyEndTimeChanged(uint256)","9d038cd3":"TEST1()","9d042f87":"dTimeoutCurrentStage()","9d0506ae":"checkData(bytes)","9d05414f":"Referral(address,address)","9d0617f9":"_send(address,uint256)","9d063ed8":"FIFSRegistrar(address,bytes32)","9d069353":"getAngel(uint64)","9d06a1d5":"removeFromWhiteList(string,address)","9d0714b2":"tgeSetLive()","9d079b18":"acceptProposal(bytes32)","9d07b653":"_createUnit(uint256,uint256,uint256,uint256,address)","9d07ff80":"ln_fixed3_lnr_18(uint256,uint256)","9d083222":"becomeMember()","9d0880a3":"transferUnsoldTokens(address)","9d09390b":"isValidAuthority(address,uint256)","9d097471":"getUserBounty(address)","9d09798f":"DemurringFee(address,uint256)","9d09f8e5":"changeRebackRate(uint256)","9d0b2c7a":"pendingStake(address,uint256)","9d0c0c35":"generateCrabGene(bool,bool)","9d0c1e6f":"walletETH()","9d0cfc2c":"closeDepositSubRound()","9d0d0a5a":"getTotalToggleGameDivsProduced()","9d0d9f1c":"azatipsToken()","9d0df9b5":"getPOOL_edit_11()","9d0e0cd3":"getTotalTAOsCount()","9d0e5871":"shipping(address)","9d0effdb":"revokePermission(address,address,bytes32)","9d0f17c8":"unsoldTokenIssued()","9d0f8763":"cancelOrderByAdmin(uint80,bool)","9d0fb699":"tokensToBeClaimed()","9d106954":"_getUserMinersAt(address,uint32,uint32)","9d1080c5":"UnilotToken()","9d10fda8":"escrow_fee_denominator()","9d118770":"destroy(uint256)","9d119a4e":"EmergencyUnPause()","9d119a7b":"getDepositTxMap(string)","9d11aaaa":"transferFeePercentage()","9d11f09f":"getTxAmountKWh(bytes32)","9d129afd":"prevBlock()","9d12e775":"zec()","9d13156c":"claimRefundOwed(uint256)","9d134185":"setauctionsystem(uint256,uint256)","9d139ff2":"LajokiCoin()","9d140fa2":"inPreSale2Period()","9d144f8a":"_preventedByNationalityBlacklist(address,uint256)","9d145866":"loadRate(uint256)","9d14f134":"getRepo(bytes32,string)","9d153495":"withdrawRefund(uint256)","9d1672c4":"getAffiliateRate()","9d16aca6":"changeExchangeContract(address)","9d170c5d":"getRef(string)","9d176556":"setDistConfig(address[],uint256[])","9d189473":"calculateAndMintTokens(address,uint256)","9d18e405":"approveAndBuyAffiliated(uint256,address,uint256,bool,address)","9d1a9ff9":"rebatePeriod_()","9d1acead":"periodPresale()","9d1b0fd1":"createProduct(bytes32,string,bytes32,bytes32)","9d1b464a":"currentPrice()","9d1b8945":"requestedRedeem(address,uint256)","9d1bbd7e":"CancelRoundAndRefundAll(uint256)","9d1be930":"autopayfee()","9d1c3f03":"isMaximumPreFundingGoalReached()","9d1c4d42":"buyAnalysis(uint256,uint256,address)","9d1d14e0":"setEtherExchangeLikeCoin(uint32)","9d1ddca5":"fiveYearGrace()","9d1e0d48":"buy(address,string,uint256,uint256,uint256,uint256)","9d1e351c":"totalBonusToken()","9d1e641b":"CROWD_WEEK3_BONUS()","9d1eb451":"MAT_CROWDSALE_SUPPLY_LIMIT()","9d1ebfd6":"nextReleaseAmount()","9d1eeb97":"redemptionBurn(address,uint256)","9d1f2800":"doPush(address,uint256)","9d1fd89c":"getFirstBorrowAgreementTool(address,address)","9d1ffed9":"_certify(bytes32)","9d2044e1":"setContrAddrAndCrwSale(bool,address,address,address,bool,bool)","9d20467a":"changeTiming(uint256,uint256)","9d209048":"getNode(address)","9d20b314":"TotalpresaleSupply()","9d210369":"resetMaxBonusThreshold()","9d210bdd":"getStoriesLength()","9d21328f":"sharedExpense()","9d21dd78":"getGameTime()","9d2235e7":"_leapYearsBefore(uint256)","9d22c693":"before_test_method_increaseTimeBy30000()","9d23c4c7":"tokenRegistry()","9d240cf2":"Workshop()","9d245238":"getWinNumbers(string)","9d248477":"BeaverCoin()","9d248e08":"burn3(uint256,uint256,uint256)","9d24c49f":"_payloadOffset(uint256)","9d24e482":"theWinner()","9d255663":"EthMonoPoly(address)","9d2620bf":"RealEstateCouponToken()","9d2668d4":"setPurchased(address,address,uint256)","9d273b20":"refundStatus()","9d2754a9":"createTokenToTax()","9d2777f4":"IntermediateWallet()","9d277a49":"unregisterPublisher(address)","9d2870c3":"LPAIToken()","9d29255b":"setCSCERC721(address)","9d29cac4":"getMonsterClass(uint32)","9d2a1eab":"GrantAdded(address,uint256)","9d2a8cf0":"unwhitelistAddress(address)","9d2ab46d":"BUZZToken()","9d2ae623":"depositJackPot()","9d2affd5":"transferFrom(address,address,address,address[],uint256)","9d2be721":"insertTopic(bytes15,address,bytes32,bytes15)","9d2cc436":"RESERVE()","9d2cd67c":"collect_main_fee()","9d2d912e":"futureDevLock()","9d2e4777":"vestingTransfer(address,uint256,uint32)","9d2ec188":"setFeeParams(uint256,uint256)","9d2f1cbb":"changeStakingFees(uint80,uint80,uint80,int256,uint80,int256,uint256,int256,uint80,uint80,uint256)","9d2fc3c8":"adjudicate(uint256,uint256)","9d2fcb8c":"setInvestmentAddress(address)","9d2ff29c":"ICDSupply()","9d30584c":"setHard_Cap(uint256)","9d327229":"fechVoteResultForCandidateByStage(address,uint256)","9d340b71":"buyTokensfor82()","9d3565ce":"transferOr(address)","9d35dcac":"NewUser(uint256,address,address,uint32)","9d36c500":"freeAnimalsLimit()","9d38cdbf":"OwnedUpgradeabilityProxy(address)","9d38cea3":"stopPreIco()","9d390d83":"setIsWeiAccepted(bool)","9d3995c2":"setHeroPost(address,uint256)","9d3ac6d5":"getBuyerContribution(address)","9d3acf23":"isResolvedForDefendant(uint256)","9d3aee8d":"st4ckHeight(uint256)","9d3c015e":"PChannel(address)","9d3c3b5d":"getArrayHashMarketItem(bytes16)","9d3c663f":"isBreakingCap(uint256,uint256,uint256,uint256)","9d3cc187":"changeSetRateAddress(address)","9d3d1d82":"userSponsorshipsPred(address,uint256[],uint256)","9d3d741c":"testAboveLength()","9d3d9b4d":"FETCOIN()","9d3de95a":"getPortfolioInfo(address,uint256)","9d3e069c":"StartDraw()","9d3e1ab8":"walletRemaining()","9d3ec1a7":"getMarriageDetails()","9d3f2e5f":"stakeEthForGas(uint256,address)","9d3fae04":"applyAuditorsCheckUpdate(address,address,uint256)","9d3fe4c2":"AGAVETHER(string,string)","9d4022c8":"OrderStatisticTree()","9d406a13":"getLocksLockedFor(address,uint256)","9d408b93":"gasBefore_()","9d4095cc":"getAmbientTempException(bytes32)","9d41198e":"startnewround()","9d41a9af":"getOccupation(address)","9d41d6fc":"testInitialBalanceWithNewRGXToken()","9d421ea7":"claimTeamToken()","9d42829a":"getGoldInfoDocumentation(address)","9d42d1a9":"sendEvent(uint256,bytes32)","9d4323be":"drainToken(address,uint256)","9d4327a0":"stockBuyCertainOrder(uint256,uint256,uint256,uint256)","9d433c71":"sharesOfSPS()","9d442102":"BuyRocketForSale(uint32)","9d44ac4f":"permissionExists(uint8,address)","9d44d93b":"delegateTransferAndCall(uint256,uint256,address,uint256,bytes,address,uint8,bytes32,bytes32)","9d44fca2":"computeEthConstant(uint256)","9d451c4d":"right77(uint256)","9d45b9d2":"soldTokensPreIco()","9d45d077":"raiseSellOrderMatched(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int160)","9d463520":"lastMintTime()","9d463b99":"addPool(uint256,uint256,uint256)","9d471837":"updateTextForHolder(bytes32,bytes)","9d478656":"sendp(address,uint256)","9d484693":"payouts(address,uint256)","9d4936f9":"MINING_OUTPUT()","9d4971b7":"getOrderLength()","9d499363":"faucetTokenAddress()","9d4ab2a3":"setInvestAgent(address)","9d4aba7c":"getTimestamp_()","9d4b1239":"tokensDistributedCrowdsale()","9d4c162d":"executeProposal(bytes32,int256)","9d4c5451":"minTokens()","9d4c662c":"sell_id()","9d4c7737":"creditStatus()","9d4c8eed":"getChildCount(address)","9d4cc8ad":"Poppins()","9d4cf268":"isERC165Interface(bytes32)","9d4d8db3":"Happy()","9d4e85ce":"getUserDeposits(address,address)","9d4ea0f3":"canMove(uint16,uint8,uint8)","9d4ff8ad":"enter(string)","9d5176fd":"getPremiumFactors(bytes32)","9d51d9b7":"setMaxBalance(uint256)","9d52f74b":"getFreezeGap(bytes32)","9d532041":"createCrowdsale(address,address,uint256,uint256,uint256,uint256,uint256,bool,uint8)","9d535056":"punterWaiting()","9d5367c5":"KIDToken()","9d53827f":"MAX_TRANSFER()","9d53f19e":"getInvestorInforMin(uint16)","9d54c79d":"notary()","9d54f419":"setUpdater(address)","9d55fba7":"updateCommission(uint256)","9d564d9a":"unlockTokens(address,uint256)","9d56998d":"my_message()","9d5708ff":"myTulipsBatched(uint256,uint16)","9d575582":"depositToken(address,uint256,address)","9d5779ce":"Site(string)","9d5839e3":"getFirstMilestone()","9d585f7f":"loanAmount()","9d58a5b6":"unitExists(uint256,uint256)","9d58aa41":"changeRestrictedtStatus(address,address,bool)","9d58b15d":"addMember(address,address)","9d59011e":"setAmount(uint128)","9d599cbf":"hashClaimable(bytes32)","9d59beb1":"listTokenFee()","9d5c6061":"getMsgGas()","9d5c6e20":"setPrivateSaleEndDate(uint256)","9d5c7be8":"collectionCountsOf(address)","9d5de12e":"STQPreSale(address,address)","9d5eab46":"setItemOption(address,uint256,uint256)","9d5eb078":"buyTemplate(uint256)","9d5efb6b":"tokenContractSupply()","9d5f2422":"createDifficultyOracle(uint256)","9d5f5cd3":"mktValue()","9d61193a":"passoverStartTime()","9d617fae":"pendingFills(address)","9d619dad":"currentTournamentBank()","9d61e624":"hardcapInEth()","9d625241":"powermayorCutPercentage()","9d62f07b":"BlockGrainCoin()","9d636359":"initialMarketSales()","9d63848a":"tokens()","9d64a5e5":"newFoundationCandidate()","9d64d474":"cancelExplorationByIndex(uint256)","9d652118":"presaleclosingTime()","9d66a9cd":"getDetail(uint256)","9d66e913":"callStcWithBto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","9d67b404":"addChunk6ToWhiteList()","9d68521a":"revokeOperatorTranche(bytes32,address)","9d69d5c6":"CERTIToken()","9d69fdff":"Ecometh()","9d6a4d77":"allotToken(uint256)","9d6abbcd":"unlockedEscrow(bytes32)","9d6abe4f":"getLink(address)","9d6ad799":"computeTokenWithBonus(uint256,address)","9d6adeaf":"HitToken(string,string,uint8,uint256)","9d6b74f8":"DISPLAY_CLASSIQUE_ET_VIDEO()","9d6bf036":"setIsLimited(bool,string)","9d6d22b5":"ProgrammerdaddysToken()","9d6d2321":"dividendsFull(address)","9d6d78e4":"chunk3IsAdded()","9d6d8598":"depositTokens(bool,uint256,address)","9d6dcf53":"Smilebitbuy(uint256,string,uint8,string)","9d6e0c22":"setBroker(address,address,uint256)","9d6e4eaa":"ReleasableToken(string,uint256,string,uint256)","9d6eaad5":"returnTokensToOwner(string)","9d6f78c1":"LineToken2()","9d6fa618":"requestTransferOwnership(address)","9d6fac6f":"cooldowns(uint256)","9d6fb020":"isRefunding()","9d70085e":"cap3(address)","9d707d03":"resetAuctionStart(address,address)","9d7150fe":"isAffiliateValid(address)","9d7233d4":"MIN_CONTRIBUTION_WEIS()","9d72d8d3":"luckyBuy(uint8)","9d733f0c":"submissionPrice()","9d735286":"forwardFunds()","9d7354c0":"BuyHandler(uint256)","9d735fc5":"RewardPoint()","9d73cecc":"validatePeer(address)","9d7437b8":"WALLET_ADVISOR()","9d74b37d":"getBool(address,bytes32)","9d74b959":"test_basicWithAssertBeforeThrow()","9d74fb7c":"ContributionMock()","9d75c113":"_joinCDP(bytes32,uint256)","9d7616a5":"preEtherCap()","9d76ea58":"tokenAddress()","9d770e49":"abstractResolver()","9d773a1b":"catsForSale(uint256)","9d77bd68":"luCat()","9d77e4f8":"getChainFees(uint256)","9d77f85a":"buyCollectible(uint256,uint256,int256)","9d79468a":"claimRewardTo(address,uint256,string)","9d7a63e9":"changeDripAmounts(uint256,uint256)","9d7acf74":"BluechipToken()","9d7b5621":"numberOfTokenId()","9d7b7636":"Neymar()","9d7b8887":"addAddressMappingProposal(address)","9d7bf73c":"PLUS()","9d7d6667":"multipliers()","9d7da479":"mintTokens1(int256,address,uint256,uint256,bytes32)","9d7e2730":"issueCoins(uint256,address)","9d7e6ca8":"setResponseAddress(address)","9d7eb375":"updateUserDetails(string)","9d80ac4d":"WithdrawedEthToWallet(uint256)","9d80c818":"addressCount()","9d815818":"validReleasedToken(uint256)","9d8168f0":"removeManyWhitelist(address[])","9d821c1a":"setManualSaleFlag(bool)","9d827eb9":"CreationFeeChangedEvent(uint256)","9d8374b4":"removeFromBlacklist(address,address)","9d837ccd":"ETH_CAP()","9d83ee1b":"getAllCardDatas()","9d84934d":"mintStartYear()","9d84ae69":"readAddress(bytes32)","9d856bdc":"queen()","9d858a80":"Pheonix(uint256,uint256)","9d85fca3":"findIndexFromRandomNumber(uint32)","9d866527":"Strange()","9d86ad52":"CloseIfBug()","9d86fd0c":"test_threeTrueAssert()","9d87a373":"transferFromMany(address[],address,uint256[],address)","9d87e7f0":"getWeiAvailableToReturn(address)","9d882b5d":"Sotoin()","9d88584e":"removeFamily(address)","9d888e86":"currentVersion()","9d88f3a1":"setLotteryAddress(address,address)","9d89add1":"createMechETH(uint256,address)","9d89e7d4":"challengeAmount()","9d8a0212":"costOfOneToken()","9d8a18ea":"VT(uint256,string,string)","9d8a8c43":"totalTokenMintedPreSale()","9d8abff3":"miningAttempts(uint256,address)","9d8b0834":"verifyLoanOfferingRecurse(address,address[9],uint256[7],uint32[4],bytes32,bytes)","9d8b157b":"teamCup()","9d8c3994":"giveAllToCharity()","9d8c428e":"addRoundMode(uint256,uint256,uint256)","9d8c7243":"CreateKRM(address,uint256)","9d8c997b":"getInfoByUnionId(bytes32)","9d8ca531":"closeLottery(uint256)","9d8cb45c":"foundationSupplyRemaining()","9d8d22f4":"grantReserveTokens(address)","9d8d911e":"_createCryptsy(uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,address)","9d8dbd20":"remove_kycer(address)","9d8df6dd":"cancelAdoptionRequest(bytes5)","9d8e2177":"UNIT()","9d8ee943":"right71(uint256)","9d8f2b17":"LCAP()","9d8f4c27":"priceUpdateAddress()","9d902fc0":"precisionFactor()","9d913c64":"addTokenLock(uint256,uint256)","9d9231b1":"_unpackLevelValue(uint256)","9d925fc8":"REFUND_RATE()","9d930f02":"newTeamOnEnd(uint64,uint64,uint64)","9d932a93":"validateSignature(bytes,bytes32)","9d94743a":"CND(address)","9d94a8fa":"_thresholdTwo()","9d94c343":"POSV()","9d94dac8":"fightEtherMonster()","9d95f1cc":"addNode(address)","9d963289":"NewLeader(address,uint8[])","9d96be58":"maxMintBlock()","9d96f200":"Factory(string)","9d97bcd7":"allocatePreICOTokens()","9d988d03":"X(address)","9d989b20":"chargeDailyRate(bytes32,address)","9d98cd78":"drawETH(uint256)","9d9a5e1c":"startPrivateICO()","9d9a7fe9":"completed()","9d9ab2d8":"setEtherUsdRate(uint16)","9d9ae444":"StatsReserved()","9d9aeb7f":"setInterestAllocationPercentage(uint256,uint256)","9d9afce9":"claimTokenReserve()","9d9b2e82":"RevenueSharingContract()","9d9b4d20":"DST_R_N_B_PROGRAM()","9d9b5342":"editInfo(string)","9d9bfb02":"throwsWhenNonMultisigDeploysANT()","9d9c9439":"tokenInitialised()","9d9c9a0d":"testControlCreateWithParentParentSameItemId()","9d9ca28d":"isWinner(address)","9d9cc8e9":"TestCrowdsale_Noname()","9d9d432f":"updateGenVault(address,uint256)","9d9db392":"makePayment(address,uint256,string)","9d9dcf81":"getXPL()","9d9fcc72":"checkWithdrawals(address)","9da065cb":"ReddyToken()","9da0c7b1":"nowCanProvideHash()","9da0d7d4":"dutchAuction()","9da0dc0a":"preICOWeiRaised()","9da1814c":"FremenTradeToken()","9da19acc":"isRedemptionReady()","9da1b02a":"createSale(uint256)","9da1bc7b":"updateBearCount(address)","9da26320":"registrations_confirmed()","9da2b791":"assignDNI(uint256)","9da30467":"payForOrderInTokens(uint256,address,uint256,address,uint256)","9da32c14":"Defapacoin()","9da43ef4":"getExtraPoints(uint32)","9da46ee3":"getPool(uint32)","9da59934":"getInbox(address,uint256)","9da5e0eb":"initDaylimit(uint256)","9da67e71":"OpenMoneyPresale()","9da680f3":"adjustRegistrationFee(uint256)","9da69180":"commitVote(uint256,bytes32)","9da78649":"getNewRecordInHistoryRecord(uint256)","9da8be21":"initWallet(address)","9da8e7e2":"createProxy(string)","9da9650e":"Cothereum(uint256,string,string)","9da9df3e":"withdrawContract()","9daa7b46":"STTCToken()","9daa9ecd":"percentAllocationFeeDenominator()","9daaae94":"setClient(bytes32,address)","9dab2054":"priceAt(uint256)","9dab3cd4":"userRight(address,bytes1,uint256)","9dab4607":"ACCEPT_DICE()","9dabff25":"sendReward(address)","9dac83e4":"allowWorker(address)","9dace789":"EOSGold(uint256,uint256)","9dad9382":"closeStream()","9dae2e80":"payoutDonations()","9daf57cf":"getBdpDataStorage(address[16])","9daf77a5":"GetContractStateTerminatedMisrep()","9daf9b6b":"insertNodeAfter(uint256,uint256,address)","9daf9ce3":"computeTotalEthAmount()","9dafb4df":"prizeOwner()","9dafbc13":"initBlock(uint256)","9db02721":"refuseWork()","9db028ab":"getMetadataHistoryLength(string)","9db069d8":"bountyOwner()","9db09a08":"createContractMovie(string)","9db1b8af":"msc()","9db1cafa":"SuccessLife()","9db28672":"isOfferingStarted()","9db340de":"eraseNodeHierarchy(uint256,bytes32[],bytes32)","9db3956e":"setDatabase(string,uint256)","9db40718":"SearchIPR(string,string)","9db4372c":"num_tickets_current_round()","9db4577f":"addListToWhiteList(address[])","9db5dbe4":"transferERC20(address,address,uint256)","9db67cd0":"funcFromC3()","9db70e19":"tokenIdToRank(uint256)","9db7ff9e":"changeGameRuningblock(uint256)","9db834fe":"setColorPink()","9db8d393":"setCostToCancel(uint256)","9db91e78":"insecureMode()","9dbbcca3":"ChangePreICOStart(uint256)","9dbc041c":"requiredBid(uint256)","9dbc4f9b":"participantDetails(uint256)","9dbd1b96":"getRecipient(bytes)","9dbda902":"getHighestMortgageRate()","9dbdfe0d":"LocusOne()","9dbe3501":"LongPlace(address[2],uint256[8],uint256)","9dbf0087":"TokenERC20(uint256,string,string)","9dbf0543":"price_constant()","9dbf5eca":"updateRelayer(address,bool)","9dbf7014":"depositMineral()","9dbfe1b8":"setSaleRate(uint256,uint256)","9dc04184":"allowDraw()","9dc080d3":"angelToken()","9dc10d15":"preAllocatedTokensVestingTime()","9dc11280":"numDataOf(uint256)","9dc1d961":"message(bytes32,bytes32,string,string)","9dc27fe3":"setICOStatus(bool)","9dc29fac":"burn(address,uint256)","9dc2c8f5":"fireEventLog4Anonym()","9dc35799":"updateReading(uint256)","9dc371bd":"ULTRIXCOIN()","9dc42f16":"_removeOwner(address)","9dc43f2d":"newEmployeePoolPromille()","9dc4b9c9":"currentLevel()","9dc4ca42":"getWalletDigest(bytes32,address)","9dc4ef99":"_registerArtist(address)","9dc5b35e":"saveData(uint256,bytes32,uint8,bytes32,bytes32,bytes32,address)","9dc64f8e":"getWidthrawPercFor(string)","9dc6c12b":"TaiwanRepublic(uint256,string,string)","9dc6f173":"LogBidAccepted(address,uint256,uint256)","9dc7a49a":"RegisterUsername(string)","9dc8832c":"JiucaiToken(uint256,uint8,string,string)","9dc905bb":"insertMilestone(uint8,uint256,uint256)","9dc90bd8":"GreeningDesertChainToken()","9dc9281b":"LjwToken3()","9dca362f":"createAccount()","9dca4e0a":"matchWinnerOk(uint8,uint8,uint8,uint8)","9dcb0f55":"fundingStartAt()","9dcb5c65":"resultsWeightedByEther()","9dcbed8b":"totalUnrestrictedTokens()","9dcbf7ea":"Rename(string,string)","9dccc5bf":"getRegistration(bytes32)","9dcd4beb":"optionExerciseSpan()","9dcee160":"voteC()","9dcf56b4":"proofType_TLSNotary()","9dd05af9":"setEarlyExchangeRate(uint256)","9dd0a30f":"iwithdrawal(uint256,uint256)","9dd0ff01":"max_bet_this_spin()","9dd1687e":"withdrawBasicTokens(address)","9dd21928":"whiteListAddress(address,bool)","9dd28e34":"registerVendor(uint256,bool,bytes,bytes)","9dd3045b":"TransferToken(address,uint256)","9dd373b9":"setStakingContract(address)","9dd409d3":"setPlayPrice(uint256,string)","9dd4fdd3":"MarketPrice()","9dd52927":"AuthorityController(address,address[],uint256,uint256,address)","9dd5b9a3":"_lockAllAmount()","9dd63c3a":"setOwnerPrice(uint256)","9dd74964":"dividendsSum()","9dd7b3c3":"getSellBallers()","9dd7e749":"getOffsaleCount()","9dd819cc":"test_fourValidEqInt()","9dd9c24b":"canPerform(address,bytes4)","9dda456a":"_firstLevelEth()","9ddae7f5":"determineOutcome(uint256,uint8[],uint8)","9ddaf5aa":"proofs(uint256)","9ddc4a47":"setTransformTarget_default(uint256)","9ddccc99":"TelonToken()","9ddd503e":"PlayChainToken()","9dde6eb6":"placeBidFromEtherScrolls(uint256)","9ddee5f9":"SlopeIncreased(uint256)","9ddf65e1":"AUTSCoin()","9ddf840d":"withdrawDivs()","9de0111f":"tokenWithdraw(uint256,address,uint256)","9de0eb04":"dappId()","9de12300":"updateICOmask(uint256,uint256)","9de18f9c":"controla(address,bytes32,bytes32)","9de2bd2f":"RYZToken()","9de2f796":"getMintAmount(uint256)","9de315f1":"getTargetContactPubKey(address)","9de39cb3":"testStartsWith()","9de4f41c":"seMurio()","9de518ba":"divertDividendsToBankroll()","9de66604":"erc20old()","9de6ba52":"ArtCore()","9de6c45b":"addBox(uint256,string,string,string,uint256,uint8)","9de6d9aa":"changeGasLimitAndPrice(uint256,uint256)","9de7d032":"createPerson(uint32,string,uint256)","9de8302f":"createGen0Auction(uint256,uint128,uint128,uint40)","9de8535e":"readiscolorregistered(uint256)","9de91ccd":"getCCH_edit_12()","9de9205a":"getNujaNumber()","9de92f7e":"submitInput()","9de9d57e":"multiDistributeAdviserBounty(uint256[],bool)","9de9f1b8":"payJackpot3()","9dea34ad":"currBetID()","9deab49e":"_processERC20TokenPackPurchase(uint8,address,address)","9deb0b41":"createConsentFile(address)","9dec2189":"metaApproveHash(address,uint256,uint256,uint256)","9dec365e":"setCrowdsaleTotal(uint256)","9deca9ee":"disputeRounds(uint256,uint256)","9decaecc":"addEntryInMonths(address,uint256,uint256)","9decde19":"repriceAuctions(uint256[],uint256[],uint256[],uint256,address)","9ded1817":"sendCryptoVersusReward()","9ded35c8":"unpauseChannels()","9df06411":"addDepotEth(address,uint256)","9df08a9f":"getStatusEventCloseSuccess(bytes16)","9df0a5df":"ADDR_MAYA_TEAM()","9df0c176":"createCategoricalEvent(address,address,uint8)","9df184ae":"stageTwoEnd()","9df196ec":"getWhitelistDetailsFor(address)","9df1e2b0":"transferOtherToken(address,address,uint256)","9df21154":"AddToDB(address)","9df21bfd":"updateShareAddress(address,address)","9df39b4a":"removeCitation(address)","9df4867c":"transferSectors(uint16[],address)","9df4d0fe":"isChallenged()","9df51b89":"claimProfits()","9df537c6":"increaseBeneficiaryBalance(address,uint256)","9df5a643":"setAllowClaimUser(address,address)","9df5cbda":"isSucceed(uint8)","9df806d6":"setBurnerAddress(address)","9df8f631":"Ur()","9df93754":"Log2(bool,string)","9df94560":"leekStealTracker_()","9df971c1":"subFees(uint256)","9df9a1db":"disableKYC()","9dfaa207":"OWNERS_AND_PARTNERS_ADDRESS()","9dfad52d":"Expand()","9dfb071c":"WHITELISTING_MAX_CONTRIBUTION()","9dfb64fd":"toggleRefunds()","9dfb9de8":"getPawnLoanId(uint256)","9dfbb584":"refundNonWhitelistedPerson(address)","9dfcc05c":"isExpiredDeadline()","9dfcf372":"Lescovex_CYC(uint256,string,string,address)","9dfd1de3":"Token20(uint256,string,string)","9dfd4e2f":"MAX_ETH()","9dfd8b02":"getBuilding(uint256)","9dfde201":"Price()","9dfe29b5":"nextTokenType()","9dfecdcc":"openLottery()","9dff78de":"buyAnts()","9dfffa36":"countUp(address)","9e0112b8":"RESERVED_RESERVE_GROUP()","9e014cf1":"PrepareRollEvent(address,uint256,uint256)","9e01f9b9":"getUser2()","9e0234a1":"PHILCOIN()","9e036add":"NBCL(uint256,string,uint8,string)","9e03a5d0":"AndxorLogger()","9e03c589":"Delinetod()","9e03c971":"BuyKeys(uint256)","9e05c118":"availableCount()","9e05de62":"setFeeSharingValue(uint256)","9e060fb6":"updAcceptAdminWithdraw(bool)","9e07d205":"attorneySign()","9e098d9f":"LjwToken5(address,address)","9e0a2280":"TOKEN_SALE_ALLOWANCE()","9e0b7a1c":"approveCertificate(uint256,uint256)","9e0c0152":"lola()","9e0cb27b":"fetchOrderByOrderIndex(uint256)","9e0cbb64":"usersSpriteOwningHistory(address)","9e0cea05":"buyerCount()","9e0d8126":"PreICOEndTime()","9e0f35a2":"transfersSuspended()","9e0fdb26":"cancelSwap()","9e1224ce":"lotteryCloseInsurance(uint16)","9e126449":"registerForRaffle()","9e12c9b9":"sellCoin(address,uint256)","9e12d725":"NewTokenGrant(address,address,uint256,uint64,uint64,uint64)","9e12f15b":"units50percentExtra()","9e136878":"Transferred(uint256)","9e13baa4":"BNCConverterFactory()","9e13d3e1":"VietnamGemstoneChain()","9e140cc8":"ENCRYPTION_KEY()","9e1533a9":"getFounderMembersInvest(address)","9e159db0":"Lambo()","9e15bc25":"totalInput()","9e163aca":"getDocumentsCount(bytes16)","9e179b91":"addFreeMineral(address,uint32)","9e1832b5":"ListingCreated(bytes32,address,uint256,uint256,uint256,uint256,address)","9e196881":"sellBlock(uint256,uint256,uint256)","9e1a00aa":"sendTo(address,uint256)","9e1a4d19":"tokenBalance()","9e1ad320":"XERA()","9e1b9078":"addLandRevenue(uint256,uint256,uint256)","9e1be663":"SeedMarket(uint256,uint256)","9e1bf732":"addNewTokenTo(address,uint256)","9e1c6d6b":"transferFromFund(address,uint256)","9e1d14f1":"getThresholdsLength()","9e1e1ca9":"monstersForSale(uint8)","9e1e60c7":"depositOffchain(address,uint256,uint256)","9e1e6528":"uncertify(address)","9e1f5599":"executeTokenTxn(uint256)","9e20437c":"digits()","9e206ed5":"blockSkills(uint256[])","9e208922":"scheduledTopUp()","9e20a9a0":"registerToken(uint32,address,uint8)","9e20afdf":"weekly_disbursement()","9e20b768":"distributedBonusStakes()","9e20f6c9":"walletEmail()","9e211ee8":"dayFinished(uint16)","9e213fb7":"callReplaceCallback(string,address)","9e2262f5":"testCreateCostData()","9e229c55":"StatEventI(string,uint256)","9e22bd72":"lengthArrayApproval()","9e231e2d":"abortGame(uint256)","9e23602e":"hasAllAttrs(uint256,bytes2)","9e238366":"getCraftingAuction(uint256)","9e239ace":"itemOwner(bytes32,uint256)","9e23c209":"removeDeveloper(address)","9e243259":"frozenRate()","9e24edca":"TOKEN_FOR_INVESTER()","9e251c6f":"DonationReceipt(address,string,uint256,uint256,uint256,bytes32)","9e254262":"contractDurationInDays()","9e254d13":"Child()","9e25ec01":"KAL5Token()","9e25fd58":"SotkoCoin()","9e27a305":"sachin()","9e281a98":"withdrawToken(address,uint256)","9e282328":"getEditionReleaseTime(uint256)","9e28739d":"LogAddressTokenCapCalculated(uint256,uint256,uint256,string)","9e288374":"getContributor(address,address)","9e28abaf":"ShareActive()","9e29559c":"teamKeepingQuota()","9e29739e":"setContributionLevel(address,uint8)","9e29eb0f":"getUsersAwaitingForTokens()","9e2abcb5":"getddd(uint256)","9e2d0478":"addNotaryToOrder(address,address,uint256,uint256,string,bytes)","9e2ed686":"cancel(address,bytes32)","9e2f04bf":"chooseWinner(uint256)","9e306d32":"MintableToken(uint256)","9e307955":"etherPrice()","9e30dd5f":"buyRareItem(uint256)","9e315d46":"payoutAmount(uint256)","9e31f9b6":"numGamesCheated()","9e321f42":"changeWhitelistOnly(bool)","9e3249ab":"setMinShards(uint8)","9e325b80":"SocialRemitToken(uint256,string,uint8,string)","9e326858":"private_AddGameBar(uint256,string,string,string)","9e331188":"startIco3(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","9e33f72c":"reclaimStarted()","9e34070f":"isClaimed(uint256)","9e340ffb":"endFreeGet()","9e34ba2f":"VUP_PER_ETH_ICO_TIER3_RATE()","9e34d78e":"getDrawCount(uint256)","9e352721":"PreBuy(uint256)","9e3572b5":"getCurrencyContract(bytes32)","9e35ff3e":"storeCarrotsCredit(address,uint32)","9e36fde7":"regName(string,address)","9e37273b":"getMintDigest(uint256,bytes32)","9e37c923":"subscriptionOf(address,address)","9e3809a9":"setFiscalVerify(bytes32,bytes32,bytes32,uint256,uint256,uint256)","9e385fa4":"raiseEmergency(bool)","9e38ac15":"ownerShip(address)","9e38c76e":"lockRedemption(bool)","9e39db38":"initChestsStore()","9e3a33b2":"_fetchPaidOrdersForMerchant(address)","9e3b34bf":"times()","9e3b77af":"lendingManager()","9e3b94f1":"CONFIRM_LIMIT()","9e3b9dc1":"secondTarget()","9e3c671c":"citizensAddresses()","9e3d0636":"numOfDeliveredCrowdsalePurchases()","9e3d1b99":"Bakt(address,bytes32,address)","9e3d2d06":"totalEtherBetValue()","9e3d49db":"walletBounties()","9e3d7809":"setParamsTransfer(bool)","9e3df458":"twentyThirtyAllocation()","9e3e230b":"setSubmissionClosed(uint256)","9e3e6878":"allCatsAssigned()","9e3edce9":"setImageHash(uint256,string)","9e3f1f71":"isPartOfOrg(string)","9e416812":"creditGameAddress()","9e4195f1":"releaseOrderStakes(address,uint256,uint256)","9e41a9cd":"viewCertificateByCourse(address,string)","9e41b73f":"getWeapon(uint256)","9e4307cf":"_95_ebetSmartContracti()","9e43692c":"FOUNDATION_POOL_TOKENS()","9e439ff8":"thirdPeriod()","9e455939":"getContractAddr()","9e459174":"_addDroneInternal(address)","9e45de73":"PieceTransferred(uint256,address,address)","9e45e0d0":"darknodeRegistry()","9e47214a":"isHarvestEnabled()","9e4734ba":"nextTimeout()","9e484dd4":"getMembersOfTierCount(uint256)","9e48d2fd":"setPayouts(uint256,string)","9e4902c9":"ZZCoin(address)","9e492aa6":"updateBLAddress(address)","9e497967":"CosmicPowerToken()","9e49e976":"importIssuerData(address[],uint256[])","9e4a5ade":"tokenICO()","9e4a613f":"setCertificate(string,string,string,uint256,uint256,string,string)","9e4a993b":"getGameStake(uint256,address)","9e4a9f2f":"SCComplianceService()","9e4ba1be":"testBuyTwoTokens()","9e4be339":"getPartners(address)","9e4bec3f":"senderIsProvider()","9e4c1357":"purposeWeiRate()","9e4d4d0c":"updateIcoEnding(uint256)","9e4ea320":"getterForTest(uint256)","9e4ece80":"getInvestorUnPaidAmount(address)","9e509af3":"NggaToken()","9e51051f":"initialRate()","9e524caa":"subMinutes(uint256,uint256)","9e5288a0":"getStep()","9e536132":"GetUserPools(address)","9e5406bf":"paymentWithCurrency(address,string,uint64,string)","9e551567":"PonziToken()","9e570d6f":"updateFighterStats(uint256,uint8,uint8,uint8,uint8,uint32)","9e584658":"newStandardCampaign(string,uint256,uint256,address)","9e58963f":"_clear(address)","9e58ad97":"getNormalCardList(address)","9e58cfd1":"decreaseBeneficiaryBalance(address,uint256)","9e58e1a7":"_addPartExperience(uint256,int32)","9e5914da":"setReferral(address)","9e59eb14":"getAllocated(address)","9e5ad3ea":"test_insert_findNoHintUpdateHead(int256)","9e5b241a":"getBorrowInfoByIndex(uint256)","9e5b53bb":"Crowdsale(uint256,uint256,string,string)","9e5cdaf0":"initialBankrollGrowthAmount()","9e5d0258":"regularDonations(uint256)","9e5d4c49":"executeCall(address,uint256,bytes)","9e5e86fa":"setEnforceKyc(bool)","9e5ece98":"updateLockDate(uint256)","9e5ee522":"tokensSoftcap()","9e5f1889":"partner2_address()","9e5faafc":"attack()","9e6031c6":"ZigZagToken()","9e60f8d6":"getPlayerSpaceshipBattleWinsById(uint256)","9e6371ba":"retire(address)","9e639858":"winPercent()","9e647aac":"getParameter(string)","9e6480fa":"A(uint256,string,string)","9e654dfa":"redeemForkedTokens()","9e65741e":"exchangePrice()","9e65a03a":"cancelSellCityForEther(uint16)","9e65c7e5":"updateLatestRevision(bytes20,bytes)","9e65fab0":"priceIsFrozen()","9e66cd38":"free(uint64)","9e67fa6a":"createArtwork(string,address,uint256)","9e686c0d":"getStaffLength()","9e687b6c":"retrieve(bytes32,address)","9e68ca82":"preValidatePurchase(address,uint256)","9e69383d":"TokenBatchTransfer()","9e697cd3":"startDateOfRestoreUnsoldTokens()","9e6985e2":"setbuyPrice(uint256)","9e6992b5":"BcengCoffeeToken()","9e69940d":"eachAirDropAmount()","9e69a6d2":"bountyTokensNotDistributed()","9e69c732":"take(string,string)","9e69f2bb":"premine()","9e6a5767":"previousTokenVesting()","9e6af2e3":"exchangeEthStb(uint256,uint256)","9e6afbda":"decreaseSpeed(uint256)","9e6bcba5":"getBoostFromTile(address,address,address,uint256)","9e6bdea0":"RegisterChallengeCreators(address,string)","9e6c0877":"__hasRole(uint256,uint256)","9e6cb42b":"voteEndTime()","9e6d4cd0":"joinRaceAndFinish(uint256,uint256)","9e6d6925":"setper(uint256,uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","9e6d95c7":"checkHGame(uint256)","9e6eda18":"fee(address,uint256)","9e6f2ea2":"Kin()","9e6f505b":"BiigoToken(address,uint256)","9e6fb394":"companionsListCount()","9e7010a8":"Dashidai()","9e72942c":"getBoosters()","9e72a9d8":"sendToMarket(uint16)","9e750316":"pushBlock(uint256,uint256,bytes32,bytes32,string)","9e757e7f":"bookOVISSale(uint256,uint256,int256)","9e75a7c8":"bitplusAddress()","9e75c483":"busted(uint256,uint256,uint256,uint256)","9e761bbb":"beneficiaryList(uint256)","9e76e30d":"tokenRateUsd()","9e776ff5":"getTotalBattleboards()","9e79800d":"getOwner(uint16,uint8,uint8)","9e7a13ad":"people(uint256)","9e7b8d61":"giveRightToVote(address)","9e7cf86b":"changeSettings(uint256,uint256,uint256,uint256)","9e7d101e":"setMaxLeaders(uint256)","9e7d24df":"move(bytes32,uint256,uint256)","9e7e514b":"DiceGame()","9e7fec98":"owner_time_limit()","9e80138c":"LendConnect(address)","9e80b731":"test_threeValidAssertFalse()","9e80cab0":"ownerSetRecommendProportion(uint16)","9e8110e6":"setQuery(string)","9e813938":"expiresAfter(address,uint256)","9e817c03":"ROUND_LENGTH()","9e81c4b3":"sendFunds(address,uint256,uint256,uint256)","9e81e254":"_getMaximum(bytes32)","9e8385d6":"regadr(address)","9e83abe3":"newExit(address,uint256,uint32[])","9e84158e":"setPLATAddress(address,address)","9e845173":"getCCH_edit_34()","9e84d44d":"challengerConvicted(uint256)","9e8558a0":"setSellExchangeRate(uint256)","9e85742e":"approveEscrow(uint256,uint256)","9e86d7a8":"setVnt(address)","9e86f8c5":"RequestFactory(address,address,address)","9e86fb86":"investOffer(uint256,uint8[])","9e87a5cd":"getPriceFeed()","9e87c1c6":"getLastSingle()","9e87fac8":"Paused()","9e8836e2":"THORToken()","9e890cb3":"netAmountBought()","9e893d64":"TheUltimateWorldDigitalCurrency()","9e8a0f57":"getWinRate(uint256)","9e8a41f4":"getOutCar(uint256)","9e8ab40c":"ICOReserveWithdrawn()","9e8af7e9":"migrateInvestorFromHost(address)","9e8bf603":"curReleaseAmount()","9e8c3543":"setAuditAuditor(uint256,address)","9e8c39ed":"updateHolidayState(uint8,string)","9e8cfe20":"insert(int8,int8)","9e8e23b7":"lastBlock_v5()","9e8e3ef4":"nftExits(uint16,uint256)","9e8e4add":"changeTurnLast(uint256)","9e8ee59a":"addNewTicket(address,uint256,uint256,bool)","9e8f152c":"showLock(address)","9e8f2750":"withdrawInviteReward()","9e8fcbe9":"previousRoundId()","9e906157":"FundingRules()","9e90ce6c":"tokensIssuedForBonusRangeOne()","9e90f9aa":"blackHole()","9e916157":"STAGE_2_START()","9e9188ea":"setDividends(address)","9e918c0a":"setMaxArtworks(uint16)","9e9198c2":"layers(uint256)","9e920587":"testOwnedAuth()","9e92448e":"setRepAvailableForExtraBondPayouts(uint256)","9e925746":"_checkAndCallSafeTransfer(address,address,uint256,bytes)","9e92c991":"getTotalRollMade()","9e92dfd8":"getFiatTransactionsCount(string)","9e931e6b":"getRequesters(bytes32,uint256)","9e93d0e4":"reinvestReturns(uint256)","9e945ff2":"amendPurchase(uint256,address,uint256,uint256,uint256,string,uint256)","9e9548cb":"LabelSold(address)","9e95670d":"erc20Received(address,uint256,address,uint256)","9e9593ce":"RewardPoolAddress()","9e95f280":"setRatePreIco(uint256)","9e962b39":"minimumContributionPhase1()","9e964025":"bonusTokenThreshold()","9e965f7e":"revertSuspendedPayment()","9e96a23a":"give()","9e975ca6":"NSPToken()","9e976d38":"toMonth(string)","9e9785ad":"payoutCursor_Id()","9e985ea6":"changeControllerContract(address,address)","9e987b20":"treePot()","9e997121":"getConfigAddress(bytes)","9e9a783a":"canCallWithAssociation(address,address)","9e9a87e5":"agree(address)","9e9aed62":"contractTokenBalance()","9e9b6d06":"createOption(bool,address,uint128,uint128,address,uint64)","9e9ce791":"BrainLegitCoin()","9e9d0718":"Invested(address,uint256,uint256)","9e9d3aa4":"FirstBloodToken(address,address,uint256,uint256)","9e9e5b85":"ARIToken(address,address)","9e9ea24b":"PRE_ICO_TOKENS()","9e9eb444":"winFreeGo(uint256,uint256)","9e9ec9e3":"getHashAddresses()","9ea03ccb":"fundingUnlockPeriod()","9ea064b2":"getLevelConfig(uint32,uint32)","9ea0b8f0":"addTeamGrant(address,uint256,uint256,uint256)","9ea0c08c":"announcementName()","9ea134bf":"getRedeemableReputationStaker(bytes32,address)","9ea1b79d":"getContentChannel(uint256)","9ea2104d":"firstReleaseAmount()","9ea23080":"STQPreICO3TestHelper(address,address[])","9ea27016":"setTokenIdsIndex(uint256,uint256)","9ea28b5c":"VestingMemberAdded(address,uint256,uint256,uint256)","9ea30fae":"getPokemonOwner(uint256)","9ea407be":"updateTokensPerEth(uint256)","9ea480ec":"allowanceFlower(address,address)","9ea55bb0":"updateFeeAmount(uint256)","9ea57930":"stampIn(address,uint256,uint256)","9ea58112":"setLethalBonusAtHits(uint256)","9ea67876":"returnNumber(uint256)","9ea69541":"updateTileBlockValue(uint16,uint256)","9ea71c37":"getDesignatedReportingDurationSeconds()","9ea73895":"hitCharacter(uint16,uint16)","9ea76475":"subFreezingTime()","9ea776cd":"currentFundingRound()","9ea82706":"removeRealWorldPlayer(uint128)","9ea8a418":"updateFunds(uint256,uint256,uint256,bytes,bytes,bool,bytes32,bytes32)","9ea94877":"getLandIdByKey(bytes8)","9ea98d55":"intersect(address[],address[])","9eaa4812":"isLastMilestoneAccepted(bytes32)","9eab0e29":"FinalisedCrowdsale(uint256,uint256)","9eab503a":"dividendAddr()","9eab5253":"getMembers()","9eabebe7":"setTransferTime(uint256)","9eacc166":"transferAnyERC20Token(address,address,address,uint256)","9ead1478":"setMaxAnimals(uint16)","9ead1b00":"loanBalanceOf(address)","9ead7222":"tokenList(uint256)","9eadd77c":"roundMoneyDownNicelyET(uint256)","9eae2453":"setSchedule(bytes2,bytes2,bytes2,bytes2,bytes2,bytes2,bytes2,uint256)","9eae6555":"earlyContribList()","9eaeca9f":"getTokenReturnRate()","9eaeccf1":"TestToken(string,string,uint8,uint256)","9eaf17a1":"getCarveUpTokens()","9eb05f3a":"EarlySuccess()","9eb0ad03":"Exchange(address,address,address,uint256,uint256,uint256,uint256)","9eb180a7":"identifierToPrice(uint256)","9eb20aa7":"setPetLastTrainingTime(uint64)","9eb32fdb":"initializeContract()","9eb360cc":"updateRausPoint(int256,uint16,int256,uint16)","9eb44784":"getTokensForPresale()","9eb45706":"get_previous_asset_document_from_document(bytes32,bytes32)","9eb4da1c":"okamiTotalPurchase_()","9eb51bf1":"Goodluckcoin()","9eb59e00":"updateCursETHtoUSD(uint256)","9eb6c932":"ResetAllAmount()","9eb7294d":"transferRemainingTokens(address,uint256)","9eb7d170":"withdrawPendingBalance(address)","9eb81bd0":"unFreezeTransfers()","9eb866cc":"isBonusTime()","9eb8cbf3":"set_activity_details(uint256,string)","9eb9c68f":"stepBonusList(uint256)","9eb9dd3b":"getBetsProcessed()","9eba0196":"DYCOIN()","9ebafad6":"getLastAttackCount(uint256)","9ebb1250":"withdrawFinal()","9ebb5d3c":"getFreeCraigGrant()","9ebbf231":"setMinOrderSizeEth()","9ebc8c95":"isNeedLoan()","9ebca4ad":"setMasterRecruitmentAddress(address,address)","9ebe13a2":"END_ADDRESS()","9ebe4d98":"percentageQuarter2()","9ebf6d92":"Whitelist()","9ec0505a":"BING(uint256,string,string)","9ec12cfa":"sellsIngrWithoutDepletion(address,uint256,string)","9ec272b4":"getPremiumPack(uint256)","9ec32d45":"challengeWinningOutcome(bytes,uint16)","9ec35352":"returnRandom()","9ec3a90c":"verifyTimelock(bytes32,address,address,uint256,uint256,bytes32,bytes,bytes)","9ec40d1c":"checkCode(string)","9ec5a894":"rewards()","9ec68f0f":"multiSend(address,address[],uint256[])","9ec7486a":"GiveERC20()","9ec760df":"_sendMoney(address,uint256)","9ec7888f":"Available()","9ec79e99":"requestConsent()","9ec7e1c6":"nOS()","9ec8b026":"sort(uint256[])","9ec8eec9":"TokenImpl()","9ec92d42":"getSecondPhaseCap()","9eca085c":"isSupervisor()","9eca672c":"withdrawFor(address)","9ecbf341":"adminRescueFunds()","9eccf691":"setICOEnd(uint256)","9ece1d9c":"WeiToEther(uint256)","9ecf12cb":"HEART(uint256,string,string)","9ecf9037":"getNumberDonators()","9ed153c0":"master(address)","9ed1e4c6":"singleDigitBlock()","9ed26fe8":"setEtherInUSD(string)","9ed3b61b":"getTrustContract()","9ed3edf0":"transactionFee()","9ed44c91":"CharitySplit(uint256)","9ed474b3":"author2()","9ed49005":"completeIcoPart1()","9ed4ad43":"getMax(uint8[])","9ed53f88":"starExists(uint256)","9ed57360":"getPaintingSpeed(uint256)","9ed58c7a":"provideData(address,address,uint256,bytes)","9ed5c84c":"salePeriod()","9ed74a23":"createCloneToken(uint256,string,string)","9ed7772c":"OwnerSetPrizePool(address)","9ed78285":"GENEOS()","9ed78489":"Worldtvcoin()","9ed78df0":"PRESALE_TOKEN_SOFT_CAP()","9ed798be":"CrestToken()","9ed81bc9":"deregisterProducer(address)","9ed93318":"create(address)","9ed99951":"changeBntyController(address)","9eda7d23":"isContributor(uint256,address)","9edc7b44":"revokeStack(bytes32,uint256,uint256,uint256,uint256,uint256)","9edcebbb":"updateTabRap(bytes32)","9edd1bd2":"TestEvmStack()","9eddc441":"lockedAccountThresholdUsd()","9eddfb1b":"delay_pool_change_block(uint256)","9ede7a37":"voteCount(uint8,uint8,uint8)","9eded57a":"paybackLast()","9ededf77":"width()","9edf256d":"getShipPrice(uint256)","9edf42ff":"pendingNumbers(address)","9edfb647":"senderAllowedFor(address)","9edfb9ee":"acceptOwnershipOfVesting(address)","9ee035c9":"lookupCanonicalFormat(bytes)","9ee04661":"withdrawTeamFunds()","9ee06759":"setSquarePrice(uint8,uint256,address)","9ee0933f":"joinBounty(address)","9ee1bd0f":"whoIsOwner()","9ee22f9a":"setCompte_32(string)","9ee29ef2":"updateTargetToken(address,uint16,uint16)","9ee3518e":"setTeamMember(address,uint256)","9ee398ce":"getTierStartAndEndDates(uint256)","9ee484ce":"withdrawCerneuTokens(address)","9ee5451d":"PriceOneDisable()","9ee5555f":"setGovTax(uint8)","9ee60142":"_processBonus(address,uint256)","9ee61c9d":"testExistingVoteWeight()","9ee679e8":"requestWithdrawal(uint256)","9ee6a7c3":"onlineTime()","9ee6c0e1":"test_2_someTest()","9ee6ff70":"testSafeMul(uint256,uint256)","9ee71fae":"LogPolicyDeclined(uint256,bytes32)","9ee7fbd9":"extraRate(uint256,uint256)","9ee837f5":"total_empire_score()","9ee85a9f":"isPreSaleTokenRaised(uint256)","9ee8fa93":"yearLength()","9ee94556":"TestTokensMigration(address)","9ee9c8b5":"chetan(uint256,string,uint8,string)","9ee9dd5c":"vault_state()","9eea480f":"TotalRequestsAmount()","9eea4a3a":"address2()","9eea67e8":"_addPerk(uint8)","9eeaa7f4":"exitDuration()","9eeb30e6":"turnoff()","9eeb4920":"setLockup_simus(address,uint256,uint256)","9eeb5a6a":"Manageable()","9eeb6c11":"setBatchCeateDrawingsAddress(address,address)","9eeb79b2":"buildUrl(address,uint256,uint256)","9eec22e7":"reclaimEtherDeadline()","9eec4bac":"payoutFromContract()","9eec6e89":"TokenLogic(address,address,address)","9eed8369":"neWon()","9eee5787":"Standard_1()","9eee8041":"getPointSize(uint32,int256)","9eee85fe":"bookEarnings(address,uint256)","9eeea0d0":"PAOCoin()","9eeef510":"bidCustomAuction(uint256,uint256,address)","9eef6f65":"addRequest(address,address,bytes32)","9eefdd87":"enableAddress(address)","9eefde81":"BasicKNOW()","9ef0653c":"setICO4Phase()","9ef065bb":"fDiv(uint256,uint256)","9ef1204c":"vote(bytes32,uint256)","9ef13593":"decayedBalanceOf(address)","9ef1fbc4":"MudshotsToken()","9ef279d1":"burn(address[16],uint256)","9ef27b00":"closedAt()","9ef35c01":"setJackpotFeePercent(uint256)","9ef36bd1":"queueCount()","9ef40238":"getcoinsvotes(string)","9ef45a31":"someFunction2()","9ef46973":"guessFlip()","9ef48a31":"setBonusTokenRateLevelThree(uint256)","9ef5233f":"setByteSize(bytes32,uint256)","9ef53400":"getStaticArraySize()","9ef63e97":"paybackToOwner(address)","9ef6bf79":"store_ETH_to_contract()","9ef6ca0f":"left33(uint256)","9ef7a463":"exchangeRateForETH()","9ef7e723":"withdrawContractToken(uint256)","9ef887ec":"makeItRain(address[],uint256[])","9ef916ab":"setOriginalSupply()","9ef95545":"CheersWangToken()","9ef965d1":"RealEstateToken()","9ef974bb":"checkGlobalBalance()","9ef9df94":"transcoderTotalStake(address)","9efa776d":"tokenFallback(address,uint256,uint256[])","9efbae81":"FundTransfer(address,address,uint256)","9efbc411":"PICOPSCertifierUpdated(address,address)","9efc0190":"YORITEX()","9efc81fe":"minimal_token_sell()","9efc94a6":"kycLevel()","9efd1f0c":"startNextEra_(bytes32)","9efe6454":"Rena()","9efedc91":"getMyAccuAmount()","9efeefa5":"betAgainstUser(uint256,uint256)","9effb6a6":"CrowdFunding(string,string,string,uint256,address)","9f00237b":"minContribution(uint256)","9f005920":"accept(address)","9f00c0de":"btycsubmoney(address,uint256)","9f020d3a":"equalsNoCase(string,string)","9f022f05":"IMDEXsetAdmin(address,bool)","9f03711a":"withdrwleftovereth(uint256,address)","9f03c3b8":"hicsTokenPrice()","9f03d82f":"CGTToken()","9f047f3c":"fundProject(string)","9f04873d":"VILLAGE_INCREASE_RATE()","9f04996d":"bid(uint256,address)","9f052fea":"setMintRequestAddressMap(uint256,int256,string,address)","9f054b15":"SushiCoin()","9f05a36d":"getEnd()","9f0650d9":"etherPriceUSD()","9f06a579":"ViewBet(address,uint256)","9f06aa08":"collateralize(uint256)","9f0812cb":"_registerIfNeeded(uint256)","9f084b3a":"CAMS()","9f08a68c":"working()","9f08fc38":"subGlobalBlockValueBalance(uint256)","9f095e88":"asdf()","9f0a11ee":"buyPrice_wie()","9f0b17e3":"forward_transaction(address,uint256,bytes)","9f0b7f16":"Foo(string)","9f0be144":"getGreeksBattlePointsBy(address)","9f0d5f27":"depositAll(address)","9f0de490":"challengeOutcome(int256)","9f0e1986":"createGen0Auction(uint256,uint64)","9f0e3107":"get_timestamp(bytes32)","9f0e591b":"ABCDToken()","9f0e7d44":"companyReserves()","9f0eed0f":"GetCurrentICOCycle()","9f0f78ca":"profitsTotal()","9f10a990":"userEntries(address)","9f117317":"releaseManyStakes(uint256[],address[],address[])","9f118536":"initiated()","9f11e9cd":"setRegistrant(uint256,address)","9f126281":"updateFirstBuyer(bytes32,uint8,bytes32,address)","9f12fde0":"modifyBet(uint256,uint256)","9f1306cb":"P3DReceive()","9f132677":"MAX_CONTRIBUTION_WEIS()","9f13c4c7":"sealableProperties(uint256,bytes32)","9f147c41":"tokenPriceInCent()","9f15e729":"setgamecardname(uint256,string)","9f161d39":"BaseCrowdsale(uint256)","9f165304":"STAGE_PRESALE_ETHRaised()","9f166cf1":"multiBalanceOf(address,address[])","9f16b7d0":"setStarAuction(uint8,address,address)","9f16d65f":"fifthMonthEnd()","9f174c6f":"AIRDROP_SHARE()","9f180cf1":"calculateAccountValues(address)","9f181b5e":"tokenCount()","9f184dd5":"aggregateValues(address,address)","9f186edb":"setSpawner(address,bool)","9f19296b":"getGroupStatistic(uint256)","9f1aa404":"refundAllInvestorTokensPurchases(address)","9f1ae1c1":"FSATToken()","9f1ae6ac":"MAX_CARS_TO_GIFT()","9f1b3bad":"Receive()","9f1cda42":"ValidateEventStorage(bytes,bytes)","9f1eaa4c":"getUnsoldTokensWithDecimals(uint256,uint256)","9f1f07fe":"iWAMToken()","9f1f238e":"isChecksumValid(bytes32)","9f1f2d77":"_updateReferrerFor(address,address)","9f203255":"setAuditor(address)","9f204a47":"sendIncentivisation(address,uint256)","9f21edf6":"setLevelPAO(uint256,uint256,uint256,uint256)","9f223167":"ownerEth()","9f22af8e":"add2Y(address,uint256)","9f233c76":"Seiyuu()","9f237b43":"deathData_v9()","9f242bf5":"NUTScoin()","9f245957":"totalDiscountedItemsForSale()","9f275dec":"investBalanceOf(address)","9f2763d2":"newPurchase(string)","9f28f7c4":"toSCL(uint256)","9f28f8c2":"changeWhitelistedAddressCapAmount(address,uint256)","9f296b62":"getPaymentTotal(address)","9f29e1a1":"thisContractTokenBalance()","9f2a1471":"erc820Registry()","9f2a6374":"platformWalletAddress()","9f2b03b6":"LAB()","9f2b22c7":"CanYaCoin()","9f2bbcfd":"LoggerAuthorized(address)","9f2bc32b":"preITO()","9f2c1fd8":"ERC20(uint256,string,uint8,string)","9f2c9503":"mintAndLock(address,uint256)","9f2ccbcc":"buyAnimalsFromAnimalFactory(string,string)","9f2ce678":"vote(bytes32,bool)","9f2e0f9c":"managePlayer(address,uint256)","9f2e7ce3":"prevXRPCToken()","9f2eaf4e":"verifyCanWithdraw(address,address,uint256)","9f2ee8b8":"getBlocksByOwner(uint256,uint256,address)","9f2f077c":"totalTransformedTokens()","9f2f58ec":"void_race()","9f2ff221":"teama()","9f2ffaff":"_0xGoldToken()","9f30ca9a":"getOpenBidsByBidder(bytes32,address)","9f318ae8":"HKHCToken(address,uint256)","9f31de2e":"updateTokensForCloudexchangeTeam(uint256)","9f327124":"ReflexCoin()","9f329b15":"SpareCurrencyToken()","9f334696":"isNumRed(uint8)","9f337cce":"_createTeam(string,address,uint256)","9f33d9cb":"joinAsBuyer()","9f34ab0c":"PXGToken()","9f34ce14":"activateConflictResolution()","9f351fc0":"totalRedeemedCheque()","9f35910c":"getTeamOwner(uint32)","9f35caee":"getAllChainIDsOfUser(address)","9f35d3b2":"start(string,string,uint256,uint256,uint256,uint256)","9f37092a":"buyItem(address,uint256)","9f373a7a":"updateCandidate(address,string,string,uint256)","9f37b53f":"verificationSlashingPeriod()","9f396cff":"voteAgainst()","9f3c4416":"claimInheritance()","9f3ce55a":"sendMessage(address,uint256,bytes)","9f3d7b0b":"addProposal(address,uint256)","9f3e1846":"EscobarcoinToken()","9f3edbe1":"emissionStatusUpdate(bool)","9f3ef430":"payTokenHolderBasedOnTokenCount(address,uint256)","9f3f736a":"LIMITED_ADMIN()","9f3fab58":"a(bytes32)","9f3ff73a":"setExternalCurrencyProcessor(address)","9f406c8b":"isPreICOFinished()","9f408251":"TaTaTu()","9f4216e8":"userList(uint256)","9f4283fa":"jdaleveridgesyscoin()","9f43daf7":"sendEthTweet(string)","9f43ddd2":"expirationTimestamp()","9f44b34c":"EXT_COMPANY_TWO()","9f44fa19":"FeedbackUpdated(uint256,uint8,bytes32)","9f454f2b":"LEU(address,uint256)","9f45b45c":"getModuleByName(uint8,bytes32)","9f45c8ec":"nodeCheck(bytes32)","9f45f982":"PATH(uint256)","9f489e4e":"getDeposit(uint256,address)","9f494565":"LogMint(address,uint256)","9f49cefb":"addStage(uint256,uint256)","9f4aaaef":"asmName(address)","9f4ba0ee":"setInitialPrice(uint256)","9f4cd0ef":"current_item_index()","9f4e8405":"updatePaymentManager(address)","9f4f4808":"setCrowdfundAddress(address)","9f4f903e":"TicketToken()","9f4f9886":"getRateAt(uint256,uint256)","9f4fae14":"getAmountWeeklybyNum(uint32,uint8[4])","9f509ab1":"FUNDING_PRESALE_MAX()","9f5185b6":"EventCashOut(address,uint256)","9f51cf67":"balance_available_for_custom_voting()","9f5215dd":"availSupply()","9f5227c2":"confirmWithdrawal(address,string,uint256,string,address)","9f52b74e":"apt()","9f52f381":"startAllocation()","9f530cc9":"JACKPOT_CHANCE()","9f535821":"mint(uint256,uint256,string,uint8,bytes32,bytes32)","9f536edd":"setScore(address)","9f53e07b":"channelMaxSize()","9f544434":"sendFood(address,uint256)","9f548613":"MyUserToken(uint256,string,string)","9f549015":"Max_Mintable()","9f54c01c":"addProducer(bytes32,uint256,bytes1)","9f54c24f":"LogGive(address,uint256,string)","9f550293":"getTotalRaised()","9f55857d":"testBazMethod(uint32,bool)","9f55ecab":"currentVotingDate()","9f569ab4":"requestOfTime(address,uint256)","9f569e66":"sendTokensTo(address[],uint256[])","9f572048":"getCanvasByOwner(address)","9f5755ae":"announcement()","9f577c15":"setContractProvider(address)","9f57d16e":"getCurrentJackpot()","9f5892a7":"hash(string,uint256,uint256,address)","9f58d881":"executeOr(bytes32,bool)","9f591fa5":"deathData_v15()","9f59fc5a":"GetConsentDirectives()","9f5a5ff8":"Police_4()","9f5a851f":"configure(uint256,uint256,uint256,uint256,uint8,address)","9f5a9b7c":"getTotalBurnt()","9f5ac8f7":"creator(bytes32)","9f5b1d2c":"GITHUB_LINK()","9f5bd866":"setNodalblockURL(string)","9f5c11c4":"two_card()","9f5c671e":"MultipleErrorsContract()","9f5ce849":"CNT_Token()","9f5cfe03":"roundsCount()","9f5f0520":"myVault()","9f5f0826":"_bonusToPartners(uint256)","9f5f7c7f":"tokenSplit(address,address,address,uint256)","9f5ff50a":"calcTokens(uint256,uint256,uint256)","9f614b61":"addTitleTransfer(string,string,string)","9f6163ee":"lastBlock_v4()","9f621075":"ICO_AllowPayment()","9f624701":"DZONetwork()","9f6264d3":"setArray(bytes32,bytes32[])","9f62e202":"CrowdSale_AssignOwnership(address)","9f637851":"endICODate()","9f63f5c3":"approveLoan(address,uint256)","9f64b6fb":"sendAffiliateValue(uint256,address)","9f654dd2":"sellTokensIco()","9f659296":"createCardForAcquiredPlayers(uint256[],address)","9f65f242":"Itube()","9f665e1a":"offerAccepted(address,uint256)","9f668bba":"getGameIds()","9f674147":"accruedBonus(uint256,uint256)","9f674eb3":"myAccessLevel()","9f678cca":"drip()","9f6822b4":"startEscrow(bytes20,address,uint256)","9f684a0d":"disableATMExchange()","9f69b5a0":"updateEscrow(uint64,uint256,uint256)","9f6a4fbe":"CyteCoinERC20Token()","9f6b4cce":"BetPlaced(address,uint8,uint256)","9f6bd2a9":"isArbitrator(address)","9f6c20f6":"MRC(uint256,string,string)","9f6c3dbd":"join(address,address,uint256)","9f6dcd9d":"ETHtoZCOrate()","9f6e3456":"SOPHIYA()","9f6e4bb5":"weiAllowedToReceive(uint256,address)","9f6f99ee":"updateAPIPublicKey(bytes)","9f6fb2ba":"createRichContract(string)","9f6ff2e1":"EInvoicingRegistry()","9f70c3dc":"doWithdraw(address,address,uint256)","9f70db12":"removeEmployee(address,address)","9f727c27":"reclaimEther()","9f73bef1":"getSubjectsCount()","9f73dbc0":"getCurrTeamSizes()","9f7496ec":"_firstUnlockAmmount()","9f753df6":"MELON_BASE_UNIT()","9f75ccc8":"onSuccess()","9f75e990":"ReceivedCall()","9f7623b8":"sign(address,address)","9f769807":"setTokenState(address)","9f77920c":"Revoke(address)","9f789a0c":"setSchellingRoundDetails(uint256,uint256,uint256)","9f7904af":"available_with_bonus()","9f7a2ef5":"TEAMmint()","9f7a53a1":"sendBountyBalance(address,uint256)","9f7b0fc8":"getParent(address,uint256)","9f7b4579":"create(uint256,uint256)","9f7b967e":"SampleERC677Token(address,uint256)","9f7ba828":"getTokenToEthMakerOrderIds(address)","9f7c8851":"otherSupply()","9f7c94aa":"payoutWinners()","9f7d9f62":"deprecateDefenceSubtype(uint8)","9f7d9f92":"AggiungiMiner(address,bool)","9f7e03cc":"deposit70Percent()","9f7e1fed":"Lock(bytes)","9f7ed5b8":"startTimeTLP1()","9f7f0784":"appVersionListAt(bytes32,uint256)","9f7f2bd1":"createDog(uint256,address)","9f7f760c":"SimpleDice()","9f7ff381":"COMPLETION_STATUS()","9f8049ea":"distributeELTCLarge(address[])","9f807962":"buyMorties()","9f80d1b2":"presaleGoing()","9f810510":"ZONTEX()","9f8106cf":"transferAllUnsoldTokens(address)","9f819b13":"updateFunders(address,bytes32,string)","9f81c4d6":"bitcoingo()","9f83008a":"teamReserveWallet()","9f839d22":"getOptionPair(address,uint256,address,uint256,uint256)","9f853717":"duplicates(uint256)","9f855bd5":"shipLocation(uint16,uint16,address)","9f856de5":"doPurchase()","9f871242":"computeTokenAmount(uint256)","9f8743f7":"getRound()","9f87acd0":"exec(bytes32,bytes32,uint256)","9f87f419":"closeTierAddition()","9f881e0b":"MobSquads()","9f881f46":"checkPassed(address)","9f8970dd":"bountyTokensAccount()","9f8a13d7":"isActive(address)","9f8abede":"fixPermission(address,address,uint8,bool)","9f8adeb8":"givecandyto()","9f8ae5d3":"roundFourTime()","9f8aef2b":"ERC721Token(string,string)","9f8c45cf":"getQuestionDetails(uint256)","9f8c7c4c":"insertSums(uint256)","9f8e8209":"Cillionaire()","9f8f0dc3":"test_twoValidEqBool()","9f8f4c45":"developerPctX10()","9f8f4fb5":"withdrawAcquisitionsToken()","9f8ff91d":"getSponsorFee()","9f90279e":"f_priv()","9f903ff6":"setEmitter(address)","9f90688a":"SmartCityToken(address,uint256)","9f912d25":"abort(uint16)","9f915aca":"Tier_Starter()","9f91d145":"draftNewCardWithReferrer(address)","9f923388":"secondStageTokensSold()","9f9248c7":"DepositInterest(uint256,address,uint256,uint256)","9f927be7":"getNextCall(uint256)","9f941f69":"getDesignatedReportingEndTime()","9f943039":"Ethershares()","9f94d684":"irreducibleOf(address)","9f94fb7a":"endAtkBoss()","9f95de64":"transferToGrant(uint256,uint256)","9f961c5a":"salesPipe()","9f963c4e":"periodPercent()","9f96de0f":"getResourceCount()","9f9727ce":"QuotaManager(address)","9f977b21":"getBob(uint256)","9f97a024":"testEscapedQuoteInString()","9f97d937":"start_declaration()","9f97fdbb":"setDonationReceiver(address)","9f9827fa":"adviserPart()","9f98985d":"endGame(uint256,uint256)","9f98a45a":"fillOptionOrder(address[3],uint256[3],uint256[2],address,bool,uint96,uint8,bytes32[2])","9f98df30":"give(address[],uint256)","9f98e0f3":"addMerchant(address,string,string)","9f9936e7":"BullToken()","9f9938fa":"SILALAHI()","9f9a9b7d":"NDUXBase()","9f9ae633":"LademiA()","9f9b1048":"holderExists(address)","9f9b3d98":"softcap2Reached()","9f9b4c9d":"Unhalted(uint256)","9f9ea29d":"decodeLock(bytes)","9f9eac67":"ChangeName(string)","9f9f1fbe":"getRegionTax(uint16)","9f9f83dd":"remainingIssuableSynths(address,bytes4)","9f9fb968":"getDeposit(uint256)","9f9fe6bb":"acceptProvider(address)","9fa0f763":"buyDrugs()","9fa0fc4c":"pgoVault()","9fa2526f":"offline()","9fa45fa6":"sellMyStake()","9fa46754":"releaseBonus(address,uint256)","9fa4b6cb":"BetDex()","9fa50ab2":"voteDescription()","9fa5df9c":"decreaseAllowed(address,uint256)","9fa5e5d5":"setARKowner(address)","9fa6a6e3":"current()","9fa6f886":"NewParticipant(address,uint256,uint256,uint256)","9fa778d8":"UECToken()","9fa77b20":"reserveOf(address)","9fa80c6e":"rewardDistributionEnd()","9fa8e5a0":"SetEvaluate(uint32,uint8,uint64)","9fa92f9d":"home()","9fa9440c":"BDAYSALE()","9fa9559c":"getLastYearOfInflation()","9fa95bfe":"_emitJobPosted(uint256,address,uint256,uint256,uint256,bytes32,bool)","9fa987d5":"curPosition()","9fa9b04c":"ADVISOR_ONE()","9faa3c91":"beta()","9fab63c7":"ICOBIDToken()","9fabf4da":"remainigTokens()","9fac68cb":"burn(uint256,bool)","9fac6ddc":"withdrawLeftoverWei()","9fac9abf":"icoHasEnded()","9faceee4":"MemeToken()","9fad2dcb":"setTaxInBps(uint256)","9fae8fd8":"GayBananaToken()","9faea9c6":"setUnavailableFlat()","9faec3c9":"adminWithdraw(address,uint256,address,address,bool,uint256,uint8,bytes32,bytes32,uint256)","9faec927":"withdrawChunk()","9faefe0c":"sendNow(uint256)","9faf52ee":"teamTwoVolume()","9faf6fb6":"removeAddress(bytes32)","9faf7000":"manualSend(address,uint256)","9fafcf72":"PersonaRegistry(address)","9fb03244":"softcapMainSale()","9fb03c7f":"countLayersGasLimit(uint256)","9fb14d9b":"getRemainingBytesTrailingZs(uint256,bytes)","9fb1b5fb":"setJackpotGuaranteed(uint256)","9fb25d9e":"LeaderMessage()","9fb31475":"refundable(bytes32)","9fb3b7dc":"_setWeights(uint256[])","9fb3d489":"cancelProposalByCreator(uint256)","9fb42b1f":"numRequests()","9fb4c63d":"assertEq21(bytes21,bytes21)","9fb4d1b0":"_getDepth(uint256)","9fb52b6e":"dividendsGetPaid(uint256)","9fb5bdb9":"registerAsSeller(address,string,string,string,string)","9fb632c1":"private_withdrawBankFunds(address,uint256)","9fb65754":"FishProxy(address,address)","9fb65968":"presaleTokensDistributed()","9fb69839":"getTransactionInformation(uint256)","9fb6c796":"mint(bytes32,uint256,string)","9fb755d7":"setHotWallet(address)","9fb8657b":"getNodes(string)","9fb876c0":"getAllOwnersClaimPriceOfCard(address)","9fb8dd1a":"getBaseLockPercent()","9fb95205":"getWithdrawSum()","9fba2578":"summaryData(address)","9fbc6a1a":"EtherHellHydrant()","9fbdcef0":"setauctionotherfree(uint256)","9fbf538f":"addApprovedBattle(address)","9fc04ce2":"setMaxReferrerTokens(uint256)","9fc18031":"getNodesBatch(bytes32,bytes32)","9fc18d4b":"migrateDisabled()","9fc1d0e7":"forcedTransfer(address,address,uint256)","9fc1ff30":"InooviToken()","9fc20f60":"priceForSaleAdvertisement()","9fc21eeb":"wdrawBfr()","9fc23a74":"totalContractsAvailable()","9fc3587a":"releaseSupply(uint256)","9fc39549":"removeInvestorList(address[])","9fc3b4e7":"checkQuorum(uint256)","9fc3e53a":"controlstampdissolution(bool,uint256)","9fc53f30":"getIdByHash(bytes32)","9fc5852e":"BytePeachCoin()","9fc5ce2a":"initialMint()","9fc6ceac":"SponsorsQty()","9fc6d585":"percentageRecipient2()","9fc71314":"KontolToken()","9fc71b31":"transferToken(uint256)","9fc75354":"isMasternodeOwner(address)","9fc7a200":"startNumber()","9fc880f4":"weiRaisedAfterDiscounts()","9fc89294":"productTypes(uint8)","9fc8ed76":"serviceAtIndex(uint256)","9fc9141d":"calculateHash(bytes8,uint256,uint32)","9fc9278e":"returnAnyERC20Token(address,address,uint256)","9fc9ceb8":"HRWtoken(uint256,string,uint8,string,address)","9fc9d6c0":"FrannickToken()","9fcaa5ef":"extendMembership(uint256)","9fcb114c":"addSomeTokens(uint256)","9fcb29fc":"_assign(address,address,uint256)","9fcb7100":"approveAndCall(address,int256,bytes)","9fcbc6f1":"bitvimToken()","9fcbc738":"setIntermediate(address)","9fcc4767":"set_referral_fee(uint8)","9fcdec61":"buyPresale()","9fce2d80":"didCommit(bytes32,address)","9fce5c8e":"indexOf(address[],address)","9fce89a4":"intercrypto_recoverable()","9fcf11bb":"determineCurrentStage()","9fcf4115":"updateRoundEndTime(uint256)","9fcf89ee":"lastBlock_a13Hash_uint256()","9fd033ed":"isHolder(address,address)","9fd0506d":"pauser()","9fd1bd1f":"changeSelfAddress(address)","9fd1e7f6":"purchaseTokensERC20(uint256)","9fd3ad34":"setFunds(address,uint256)","9fd4da40":"totalInitialSupply()","9fd4f7d1":"replaceWizard(address)","9fd52984":"burnAfterSoldAmount()","9fd547fb":"PayeeWithdrawCapital(address,uint256)","9fd55832":"BrancheProportionalCrowdsale(uint256,uint256)","9fd64fea":"findAuditor(address)","9fd6adb3":"unVote(uint256)","9fd6d285":"AirdropMined(address,uint256)","9fd6db12":"mintingEnabled()","9fd7ca8a":"getCurrentTrancheIdx(uint256)","9fd859ee":"disablePreminer(address,address,address)","9fd8914d":"GameAAAToken()","9fd8b4f1":"redirectToPurchase()","9fd8bfb3":"voteCandidateOne()","9fd8c361":"CHECKgamberOne()","9fda3675":"MYYG()","9fda5ad2":"confirmedTimesByOwners()","9fda6271":"setElectionInfo(uint256,uint256,uint256)","9fdb35e7":"retriggerDrawOnOraclizeError()","9fdc0ea6":"getDirectoryLength()","9fdc3255":"_permittedPartnerTranferValue(address,uint256)","9fdc4d13":"isBuyable(string)","9fdc53b1":"registerLoanReplace(address,uint256)","9fdd32cd":"_drawFailure(uint32,uint8,string)","9fdd983f":"setAmount(uint256,uint256,uint256,uint256)","9fddd5a7":"SeedTestToken()","9fde4ef8":"winningOption()","9fdeeb5e":"teamVestingContractAddress()","9fdf057f":"setMiningToken(address)","9fdf9625":"seizeForWork(address,address,uint256,bool)","9fe005e8":"horseShoeNotForSale(uint256)","9fe03c59":"PayForPrivKey(address)","9fe14580":"BONUS_TIER_1_LIMIT()","9fe17cc2":"icoContractAddress()","9fe304a0":"catch_the_thief(address)","9fe34d9f":"isAllowedUser(address)","9fe39d85":"CHINESE_EXCHANGE_1()","9fe4712d":"schedule(address,bytes,uint256[8],uint256)","9fe4b663":"buyTokensInternal(address,uint256,string)","9fe5e868":"NewWallets(address,address)","9fe634b9":"getReleaseAuctionEndTime(uint256)","9fe6999a":"tokensFor1EthP5()","9fe72acd":"airDropsClaimed()","9fe7ac12":"removeBool(bytes32)","9fe7ba47":"updateFirstUnionIds(bytes32,bytes32)","9fe802f1":"transferEx(address,uint256)","9fe81f52":"changeTimeLimitMinutes(uint256)","9fe93231":"ICOEndedSuccessfuly(uint256,uint256)","9fe9bde0":"tripleRoomMin()","9fe9f623":"setTransferEnabled(bool)","9fe9fc1a":"SoldBlock(uint256,uint256,uint256,uint256,uint256,address)","9feb8d23":"amendClaim(uint8,uint8,uint8)","9fec4ac4":"SputnikPresale(address)","9fec8e3b":"addToWhiteListMultiple(address[])","9fec8e96":"claimedAmounts(address,address,uint256,address)","9fecb69f":"finishGame()","9fecf214":"XChain(uint256,string,string)","9fed35a6":"createBulkContributions(address[],uint256[])","9fed39c5":"numWhitelistedInvestors()","9feda172":"totalRice()","9fedb749":"setTeam(uint256,string)","9fee14ae":"getAllot(bytes32,uint8,uint8)","9fee597b":"extractEther()","9fef0ae1":"BetherFund()","9fef26ce":"buyTokens(address,uint256,string)","9fef93f8":"buyKey(uint256)","9ff00adc":"betOnOddEven(bool)","9ff031ce":"createEscrow(uint256,uint256,uint256,address,address)","9ff12bba":"removeContractMiniGame(address)","9ff1b56f":"lockInTime2()","9ff25fa4":"InitialDateChange(uint256,uint256)","9ff32b18":"grantAllowanceProxyAccess(address)","9ff33fd1":"getByInternalId(uint256)","9ff34878":"IPTVcontract()","9ff3487f":"ConsumerRemoval(address)","9ff36b54":"isClientPayed(uint256,address)","9ff390c1":"currentTotalBuyin()","9ff394a8":"goShort()","9ff4125a":"ICOendTime()","9ff47485":"isBetPossible()","9ff512fa":"getTransactionDetail(uint256)","9ff61487":"myBackerToken()","9ff652cb":"setToContractAddr(address)","9ff71ccb":"modifyCategory(uint256,string,string)","9ff7422d":"SurgeTestToken()","9ff7971b":"setWeiPerToken(uint256)","9ff8c63f":"issueMaxSynths(bytes4)","9ff9007d":"lastweek_winner1()","9ff93088":"settleGame(uint256,uint256)","9ffa0711":"CashOut(uint256)","9ffa43ce":"buyFST(address)","9ffaf32e":"resourceDelete(address,bytes4)","9ffb2ed5":"showRewards(address)","9ffbb57f":"SongTokenAdded(address,bool)","9ffc981f":"getDepositOwner(address)","9ffcc4c3":"getPayoutCumulativeInterval()","9ffd1c10":"TrueFlipICO(address,address,address,address,address,uint256)","9ffdb65a":"validateName(string)","9ffea547":"_purchaseOneUnitInStock(uint256)","9fff19ef":"_setValidatorWrotePart(uint256,address)","9fff37e0":"JACKPOT_SIZE()","a000812c":"Y1_lockedTokenReleaseTime()","a000aeb7":"weiReceived()","a0013419":"ShanxiCoin()","a001ecdd":"feePercentage()","a001ef87":"TestOneToken(string,uint8,string)","a00223ec":"_recordFirstClaimTimestamp(uint256)","a002b179":"getCandidateForApoderado(bytes32)","a003371e":"PreICOEarlyDays()","a003651d":"getNumberOfChoices(bytes32)","a0041286":"changeURL(string)","a00413bd":"resetReportTimestamp()","a004737a":"startPrePreIco(uint256)","a004ee5a":"isCustodianOf(address,address)","a00545b2":"claimPrize(address,uint16)","a00553a5":"WinnerIndex(uint256)","a005b87b":"NullMapTest()","a006b0e2":"_regName(bytes32)","a006e0e5":"phaseTwoLimit()","a0071552":"sellItem(uint256,uint256,uint256,uint256)","a007bc45":"getRateStages(uint256)","a008d288":"Pethreon(uint256)","a008d893":"isReferee(address)","a008f5eb":"_isNativeToErcBridge(address)","a0099b60":"deltaEFunc(uint256,uint256,uint256,uint256,uint256,uint256)","a00a3440":"mainSale1Limit()","a00a7a6d":"determineNewRoundMostInviter(uint256,uint256)","a00aede9":"scheduleCall(uint256,address)","a00afaa0":"ADMIN_GET_FEE()","a00b043e":"bonusTokenVault()","a00b603c":"getDNI()","a00c0a28":"Log2(string,uint256,uint256)","a00c3e72":"ExtendLife()","a00c9374":"afterSaleMinting(uint256)","a00ce377":"getIsContractValid()","a00ce6a5":"mintForReportingParticipant(address,uint256)","a00d7740":"setCUSDAddress(address)","a00d7b27":"myFirstHelloWorld()","a00dc9dd":"changesp1(address)","a00ddad1":"verifyBalance(address)","a00ec993":"setStarRate(uint256)","a00ee946":"existAccount(uint256)","a00f198a":"confirmOrder()","a00f64d6":"_soldOutsidePMZ()","a00f77e1":"getMemInvestor(address)","a00fd3c8":"register(uint256,string)","a00fd7c8":"getPayOut()","a00fe86b":"SaleAborted(uint256)","a00fff6f":"pendingManager()","a0109c9f":"incrementFee()","a0111086":"ParentFee()","a0113f18":"isCrowdsaleFull(address,bytes32)","a0129b00":"redeemSurplusETH()","a01317cb":"BlockHipo()","a0132df2":"validationTime(address)","a0135b2b":"updatefee(uint256)","a0135d04":"seSigner(address)","a013ab77":"isBuilt(uint256)","a013ad54":"BONUS_DURATION()","a013e4d0":"GouShiTokenFunc()","a014b9bd":"addReferralOf(address,address)","a015cb10":"claimOwnerEth(uint256)","a01701dc":"capPerAddress()","a01729a4":"communityCliff()","a0175360":"Approval(address,address,address,uint256)","a0175b96":"changeAllCosigners(uint256,address[],uint256[3],bytes,bytes,bytes)","a0179949":"feeAccount1()","a017ed35":"G12Coin(uint256,string,uint8,string)","a0187f91":"DataExternalValidation(address)","a018f2b2":"delegateProxyAssert(address,bytes)","a0193ff9":"allowed_contract()","a01a3a07":"LogTicket(uint256,address,uint256)","a01a478c":"getEnemyCombinationOfAddress(address,address)","a01a4cfa":"getMyInstancesOfAPackage(uint256)","a01b0c27":"getRegisteredContract(uint256,uint256)","a01bc729":"monster_attack(uint256)","a01bc8f6":"setdaily(uint256,uint256)","a01bfa79":"adminWithdrawBCEOPreSale()","a01c144e":"addPriceChange(uint256,uint256)","a01c489d":"setMaxFeeTrade(uint256)","a01c62f7":"isTransferLocked()","a01cb43d":"WithdrawFee(uint256)","a01de7ae":"BFToken()","a01e1a21":"setPendingReserveData(address,uint256,address)","a01eacc2":"Aerosyn()","a01fdbef":"approvePullRequest(bytes32)","a0214c1c":"mintClose()","a02172d3":"getAssData(uint256)","a0218b66":"getAccountAmount(uint256)","a021d76d":"deleteIssuer(uint256)","a022ac81":"test3Args()","a022c15e":"getTaskReward(bytes32)","a022da29":"increaseLoanOnBehalfOfRecurse(address,address,bytes32,uint256,uint256)","a022e283":"APOLLOCOIN_COMPANY_AMOUNT()","a0234a91":"supplyLockedA()","a023d4a7":"Redicon()","a023e7d3":"updateTrustRankAfterStoryExpiry(bytes12)","a024284d":"participantsForCustomSale(uint256,address)","a024ea16":"MAX_BOUNTY_ALLOCATED_TOKENS()","a025bcc3":"calculateFee(bool,bool,uint256,uint256)","a026348c":"pitboss()","a0263a5a":"addgodaddress(address,address)","a0268aea":"fcomToken()","a026946d":"ieth()","a026d7c4":"SunflowerToken()","a026da8c":"teamClaim(uint256)","a0270dbc":"resolve(uint8)","a02745af":"setarg_2_input(uint256)","a0275c05":"appendStock(uint256)","a02853ef":"BitcoinExchange()","a028554e":"setInitialMintingPowerOf(uint256)","a028aa1b":"distributeVariable(address[],uint256[])","a028d749":"caculateFee(address,uint256,uint8)","a02a338a":"tokensPerOneETH()","a02a34cd":"skinOfAccountById(address,uint256)","a02b114c":"setArray(bytes32,address[])","a02b161e":"unregister(uint256)","a02b1a51":"getPaid(bytes32)","a02b7fbe":"MANAGEMENT_TEAM_SUPPLY_LIMIT()","a02b9aac":"getPaymentDataByAddress(address)","a02c40e1":"qbxSourceToken()","a02c4b97":"holdAddress5()","a02c5279":"testIntegerKeyValue()","a02cf937":"feePct()","a02d2376":"SubContract()","a02e98df":"getAdd(bytes32)","a0305398":"getOtherMapValue(uint256)","a030b8e6":"restartsys()","a03189b3":"devPayed()","a0326040":"weekPot()","a0340625":"unfrozen()","a03435d1":"authorizerAddress()","a0345fca":"finalize(bytes)","a034b6cb":"vote(uint256,uint256,uint256,string)","a0354921":"setSTMPPrice(uint256)","a0355eca":"setTime(uint256,uint256)","a0355f4e":"decline(uint256)","a035b1fe":"price()","a036f0f8":"getUsableXPA(address)","a0376dfe":"getAskByUserID(uint32)","a0378730":"addReceivers(address[],uint256[])","a0385e1c":"superTransferFrom(address,address,uint256)","a038af35":"GetChallengeBetsInformation(uint256)","a0392897":"_decreaseApproval(address,address,uint256)","a039e3c7":"testSetNotTransferable()","a03b1ea9":"_getFee(uint256,uint256)","a03b66e5":"ZilleriumPresale()","a03c5832":"getPermissionParam(address,address,bytes32,uint256)","a03cc0b2":"setExchangeToken(address)","a03d0f06":"lockAccount(address,bool)","a03df051":"rentedLand()","a03eb806":"recoverAddressFromSignature(bytes32,uint256,address,address,uint256,address,address,uint256,bytes)","a03f254f":"getWebsocketUri()","a03f633a":"resetListing(bytes32)","a03fa7e3":"transferTo(address)","a03fb4c0":"makeTradeable()","a0417c9a":"updateAsset(uint256,string,uint256,uint256)","a0422d02":"COLOR_NOT_AVAILABLE()","a0422d31":"getApiById(uint256)","a0426fb2":"preSaleEnded()","a0428bbc":"balancesStaticoin(address)","a042b9c1":"newComment(bytes32,bytes32,string)","a04369f8":"addBoosterQuest(address)","a0437f63":"rewardBounty(address,uint256)","a043bb16":"tokensBoughtInBonusProgram()","a0440426":"purchaseProduct(uint256,uint256)","a044b070":"a(address,uint256)","a0452bfb":"dividendFee_()","a045fdff":"scheduleCall(address,bytes)","a0469b02":"inputToDigit(uint256)","a046c5f6":"NewStaticAdr(address)","a0472d6c":"blocksInADay()","a0489ac2":"draining()","a0493834":"unconfirmedSum()","a04a0908":"execute(address,bytes,uint256)","a04a59cc":"randMod()","a04a6ac8":"auctionEndPrice()","a04a85c0":"checkFrozen(address)","a04b3c2d":"mine_jade_ex(uint256)","a04bd02f":"getIsStartable(uint256)","a04cc350":"_addDefaultOperatorByTranche(bytes32,address)","a04ce2c5":"setArrayIndexValue(bytes32,uint256,uint256)","a04d4c60":"getDataColla_001_001(string)","a04da725":"SEXNToken()","a04e34bc":"weiAllowedToReceive(uint256,uint256,uint256,uint256)","a04f7bd1":"MMONToken()","a04fce5b":"MINDBODYToken()","a050975b":"requestReclaimContract(address)","a050d07d":"getNumWizards()","a05190f4":"BOT_ELEMENT_2()","a051b6b1":"phase_5_rate()","a052c595":"addTrustedPartner(address,string,string)","a052eae4":"writeStuff(uint256,int256,uint256)","a052f024":"addDonator(address)","a053ce1f":"referralRate()","a053eb9d":"OPERATION_STAKE()","a0548d2f":"redistributeLosingReputation()","a054cbea":"isPlatform()","a0557818":"getSireId(uint256)","a055d455":"run(uint40,uint256,address)","a055fe64":"_projectCommitNew(address)","a056469a":"extractFeeLength()","a0566330":"LJCJ()","a05693c6":"clearSmet()","a0572fda":"titleIds(uint256)","a0577762":"changeTechAccountAddress(address,address)","a0579801":"icoStoppedManually()","a057dade":"blackListUser(address,address)","a05809ff":"calculateTotalPayoutAmount()","a058ce51":"DigiCash1()","a059ffa6":"createNewTourament(uint256[])","a05a1218":"triggerStealManually2(string)","a05a70a7":"QTLToken(address)","a05b8ed8":"_execute(bytes32)","a05bba46":"getAllDepositorsCount()","a05c47ca":"ico2Max()","a05c7bda":"AuthorizeToTransfer(address)","a05d03fd":"currentSale()","a05d068d":"foundationTokensVested()","a05e1db7":"getBuyerfee()","a05e3bb0":"setBasicBallotsPer30Days(uint256)","a05e822a":"howManyOwners()","a05fc749":"CoinLotto(address)","a05fccef":"transferMultiple(address[],uint256[])","a0605a79":"ZTTBToken(uint256,string,string,uint8)","a060d498":"KillSwitchEngaged(address)","a060ecce":"checkPosition1(address,address,uint256)","a0617ad0":"totalMaxSupply()","a061eba0":"proposeVersion(address)","a0626939":"setFoundersTokensReserve(uint256)","a06285ed":"CharityInProgressSupply()","a062d5fe":"TOTAL_SATOSHI()","a063dae8":"equal(int256[],int256[],string)","a0641288":"redeemableBalance(address)","a064481e":"BokkyPooBahWuzHere()","a065a2bf":"distributeFAITH(address[],uint256,uint256)","a0660943":"computeSlaves(address,address)","a067412b":"assignInitialAddresses(address[])","a0684251":"remainder()","a068e8d3":"convict(uint256,uint256,uint256,uint256)","a068edb5":"determineOutcome()","a0695f24":"assertBalances()","a0695fc2":"startIcoOne()","a06ac637":"listUserRecasts(address,uint256,bool)","a06aceb2":"ATCController()","a06b7eb0":"decreaseLockedAmount(address,uint256)","a06c5a24":"monthlyPrice()","a06caae8":"TransactionSettled(uint256,uint256,uint256)","a06cab79":"Registrar(address,bytes32)","a06ced75":"RESERVE_LOCK_TIME()","a06d083c":"credit()","a06db7dc":"gracePeriod()","a06dd6dc":"emergencyFlush()","a06de4d9":"rand8(uint256,uint8,uint8)","a06e09f1":"PrivateSale(address)","a06e58ac":"isResolvedForComplainant(uint256)","a06ef4f2":"icoAmountBonus3()","a0712c3d":"feesRateTeam()","a0712d68":"mint(uint256)","a07245fd":"getHtlcPaymentBlock(bytes32,bytes32)","a0726b72":"getPresaleRaisedAmount()","a072f02b":"idvRegistry()","a0742666":"isParticipant(address,address)","a074d5ee":"unClaimedEther()","a0759e14":"setEmontRewards(uint256,uint256)","a075e164":"setup(uint256,uint256,uint256,bool)","a076da7a":"notifyExecuteSellOrder(uint256,uint256)","a076e223":"Declaration()","a077321c":"restrictUntil()","a0775baf":"AUTBToken()","a0776a59":"getTokenSupply(string)","a07778ec":"icoBonus3EndDate()","a077b298":"restrictions()","a077c657":"giveRightVote(address)","a078f737":"hasUserRole(address,uint8)","a0790cb7":"setFreezed(address,bool)","a0796236":"rejectWithdrawal(address)","a07b206f":"totalWhiteListed()","a07b2461":"proveIt(address,string)","a07c132b":"setPrevOwner(address)","a07c4fcf":"getTapRemaining()","a07c765f":"END_TIMESTAMP()","a07c7ce4":"burnable()","a07c8ed9":"changeName(bytes,bytes)","a07c9156":"UpdateWhiteListImplementation(bool)","a07da887":"deploy(address,uint256,uint8,address,uint256[])","a07daa65":"newRequest(uint256)","a07ead73":"setColdWallet1(address)","a07f0a98":"DEFROST_AFTER_MONTHS()","a07f3a56":"isAttended(address)","a07f3bb0":"UpgradeableStandard23TokenMock(address,uint256,bytes32,bytes32,uint256)","a07f5f84":"beneficiary3()","a07f8f19":"isCrowdSaleFinished()","a07fc020":"moveToRST()","a080249b":"BonusPoolSupply()","a08038be":"setPreferredCurrency(bytes4)","a080c8ba":"getLamboModel(uint256)","a081fc19":"deathData_f6()","a082022e":"Sell(address,address,uint256,uint256)","a0821be3":"availableBalance(address)","a0823111":"removeAffiliate(address,bytes32)","a08299f1":"divisionby0(uint256)","a082c86e":"DEADLINE()","a0831fdb":"BNBB(uint256,string,uint8,string)","a0836e28":"getaddressret(address,address)","a083cb48":"TokenBase(uint256,string,string)","a0844bb5":"_computeRarityBonus(uint256,uint256)","a0847a95":"updateRoundBalance(uint256)","a084af95":"Trust(address[],uint256,address,bytes)","a084ee76":"removeReturnAgent(address)","a0851928":"convert_valuation_to_art(uint256,uint256)","a0852bbd":"SynTokenAddress()","a0859845":"emitPreferredCurrencyChanged(address,bytes4)","a0876445":"artworkCount()","a0877304":"minSale()","a08783bf":"Moviecoin()","a087ac0c":"perDeadLine()","a087ae89":"calculatePeriodsCountAndNewTime(uint256,uint256)","a0893ef2":"releaseSupply()","a0895ec1":"LogUnfrozenTokens(string,address,uint256)","a089feea":"kill_switch()","a08aa298":"NewSupplyAdjuster(address)","a08b1447":"presaleAmountETH()","a08b3367":"EC()","a08c0908":"getFiatTransaction(string,uint256)","a08d3f83":"Etheropt(uint256,string,uint256,uint256,bytes32,address,int256[])","a08df770":"changeRecoveryFromRecovery(address)","a08e3f0e":"restTokensMoved()","a08e8b36":"totalFunctions()","a08ed1cb":"initUnstake()","a08f1b09":"getArrUintField2()","a08f8428":"BasicTokenWrapper(address)","a08fcabb":"setUint(bytes4,uint256)","a09037a9":"totalContracts()","a09107e1":"only6()","a0922e15":"calcTransferFee(uint256)","a0927a6a":"authorizedPayments(uint256)","a0929cda":"salvageTokensFromContract(address,address,uint256)","a092ae25":"getMyAllowance()","a094a031":"isReady()","a0954a49":"changeEarnings(uint256)","a09635b0":"_transferToICAP(uint256,bytes32,uint256,string,uint256)","a09686c4":"getRoundsCount()","a096ea1b":"bltRetainedAcc()","a0979332":"Bitcoineum()","a098a04b":"getRandomAnimalId()","a0996799":"getMyBulls()","a0997b66":"ROLE_RBAC_ADMIN()","a0999436":"ESOPAddress()","a099ad85":"workingState()","a099d079":"getEarlyIncomeByAddress(address)","a099e6be":"updateTokenExchangeRatio(uint256)","a09a05e0":"AllocateUnsoldTokens(address,address,uint256)","a09a1e22":"dealSellContract(uint256,string,uint256,uint256,string)","a09ae0aa":"absDiff(uint256,uint256)","a09b39ae":"WorldCup(string,string,uint256,uint256,string)","a09b7e2b":"totalPresaleBase()","a09cca93":"ownerTransferOwnership(address)","a09cec67":"_setData(uint256,uint256,uint256)","a09d4240":"UacCrowdsale(address,address,address,address,address,address,address,address[])","a09d4ae4":"returnTempTokens(address)","a09d9c09":"setTransferRate(address,int16)","a09ddd4f":"setSaleAgent(address,bool)","a09ddf4e":"getCurrentRgb(address)","a09de28d":"approveAndCall(address,uint256,bytes,address[],uint256[])","a09e3d0a":"getChildCount(bytes32)","a09e9c1d":"startBidding(uint256)","a09f6691":"LogGetMoneyBack(address,uint256,string)","a09f8659":"newConflictRes()","a09fb22e":"updateReputation(string,uint256,uint256,string,string,address)","a0a0d331":"COMPANY_WALLET()","a0a1082a":"createCustomVUP(address,uint256)","a0a2b573":"setTimestamp(uint256)","a0a2c11d":"ListValSince(uint256)","a0a2f629":"setReferralId(uint256,address)","a0a337e2":"getSetupFunctions()","a0a3ec6d":"getDividentsFromShare(uint256)","a0a4cb6c":"reveralSupply()","a0a4d9df":"batchTransferORSB(address[],uint256)","a0a5cd92":"OkapiToken()","a0a695fe":"registerTier1Users(address[])","a0a6e940":"finalizePresale()","a0a7131c":"test_twoValidAssertFalse()","a0a7299b":"feeInBps()","a0a76eb0":"charactersOf(address)","a0a7dc2e":"withdraw_1Completed()","a0a7e0f8":"GameCellCoin(uint256,string,uint8,string)","a0a8045e":"getEthUsdPrice()","a0a86de3":"PreSaleTokenSoldout()","a0a8e460":"contractVersion()","a0a95502":"reading_card_count()","a0a986f1":"price0()","a0aaa87f":"secondStageMinted()","a0ab2847":"tfg()","a0ab308c":"BidAskX()","a0ab7091":"_isCooldownReady(uint256,uint256)","a0ab9653":"execute(uint8[],bytes32[],bytes32[],address,uint256,bytes,address,uint256)","a0abdba0":"allocatorAddress()","a0ac47fe":"_ethereumToTokens(uint256)","a0ac5776":"claimBooty(uint256)","a0acb9dd":"getA(string)","a0ad04c0":"changePhaseToICO()","a0ad51a6":"KNOW()","a0aead4d":"getAssetCount()","a0af0127":"world(uint256,uint256,uint256)","a0af3252":"thirdCurrentAmount()","a0afd731":"dividendBalance(address)","a0afebbc":"emitContractAdded(address,address)","a0affbfd":"upgradeHGT(address)","a0b06190":"addOneUserIntoWhiteList(address)","a0b091e4":"sellMFCoins(uint256)","a0b1b385":"playerSetInput(address,uint256)","a0b1f668":"GetRandom_In52(uint256)","a0b28861":"createAndBuyAllAmountBuyEth(address,address,address,uint256,address,uint256)","a0b2995a":"GetParticipantRole(address,address)","a0b2becb":"getLastAcceptedProposals()","a0b31d58":"addPacksToNextPremiumSale(uint32[])","a0b3bef0":"NVBToken(uint256)","a0b4388a":"activateShip(uint32)","a0b43a4e":"getWinnerPot()","a0b45df2":"transferOwnershipAndToken(address)","a0b498a4":"issuedTokens(address)","a0b55095":"allGames(uint256)","a0b5cf5f":"changeResolverAllowancesDelegated(string,address[],uint256[],uint8,bytes32,bytes32,uint256)","a0b65332":"getProposalIdByIndex(uint256)","a0b70e87":"capTokens()","a0b76d49":"JToken()","a0b7967b":"getNextSequenceId()","a0b7dcb4":"_transferInternal(address,address,uint256,bytes,string)","a0b7ebbd":"isExistingPlayerInBattle(string,address)","a0b7f0f8":"updateContributorAddress(address,address)","a0b87d1e":"MuseumsChain()","a0b9e8d5":"getRaisedAmountOnEther()","a0b9f0e1":"checkPause()","a0bb233c":"changeFeeAndCheatWarrant(uint256,uint256)","a0bb7508":"_addSig(bytes32,address)","a0bc572b":"benefactor(uint256)","a0bcfc7f":"setBaseUri(string)","a0bd1ec1":"hodlerTransfer(address,uint256)","a0bd3c0f":"scheduleCall(address,bytes,bytes,uint256)","a0bdb04e":"tier1Start()","a0bdcd3a":"BCNewToken()","a0bde7e8":"getShareDistributionWithTimestamp(bytes32)","a0bde945":"buyCity(uint16)","a0be06f9":"adminFee()","a0be2d9d":"Inco(address)","a0bee465":"BrylliteToken(address,uint256)","a0befa94":"getStake(uint256,uint256)","a0bf0539":"_checkThreshold()","a0bf775f":"canTransferBefore(address)","a0c01e58":"divForPrice()","a0c07002":"ArcBlockToken()","a0c16fb6":"HuobiPoolToken()","a0c1ca34":"migrateIn(address,uint256)","a0c1e119":"unhaltFundraising()","a0c32df7":"TRMToken(address,string,string,uint256,uint256)","a0c354ea":"getSumAmountOfOpenDeals()","a0c3bc68":"setOverflowBounds(uint256,uint256)","a0c42ed1":"getPOOL_edit_12()","a0c567a2":"blackListActive()","a0c57eb4":"checkCrowdsaleState()","a0c642bd":"multisendFrom(address,address,address[],uint256[])","a0c66283":"ZEROCoin()","a0c66b43":"maxActiveCastle()","a0c6e65e":"getResourceBalance(uint16,address)","a0c73e7c":"HDAToken(uint256,string,string)","a0c86718":"assetOwnersIndexes()","a0c8ad10":"removeAuthorizedExternal(address,address)","a0c8c156":"emptyCart()","a0c8e0ff":"testCanSendEthToContractWhenCrowdsaleInProgress()","a0c95e24":"disableBuyingTime()","a0c96e43":"getCommissionTarget()","a0c97bce":"paySeller()","a0c99c51":"paymentInfo(address,string)","a0ca0a57":"backlogLength()","a0cce3d2":"getAssetIdCreator(uint256)","a0cde1f0":"finishCrowdCoin()","a0ce4ff8":"priya()","a0ce8a0e":"SingleSourceAuthority()","a0cecb3b":"findOutInterestByBank(uint256,uint256,uint256)","a0cf01d4":"MoneroGold()","a0cf17da":"amountFunded(bytes32,string,address)","a0cf8857":"setTransferFeeAbs(uint256)","a0cfbc1b":"getDeploytimeBlocktimeBlocknumber()","a0cfc196":"getNumWineryOperation(bytes32)","a0d045bc":"AppleToken()","a0d0b13d":"addBook(string,string,string,string)","a0d0be4f":"calculateValue(uint256,uint8)","a0d0ee3b":"buildTokenContract()","a0d121a9":"addPolicy(uint256,uint256)","a0d1de29":"sendSeedAndHash(bytes32,bytes32)","a0d1f9e9":"serviceIncreaseBalance(address,uint256)","a0d3253f":"spawn(uint32,address)","a0d39949":"_rewardUnnapprovers(address)","a0d46c87":"validateRequestParams(address[3],address,uint256[12],uint256,uint256)","a0d578f4":"isServerEnable(string)","a0d605c6":"addCertificationDocumentInternal(address,bytes32)","a0d63f7e":"setDistributionMinimum(uint16)","a0d7bb1b":"addReserve(address,bool)","a0d80e65":"internalNoter(uint256,uint256)","a0d81b21":"ConsentFile(address)","a0d87fc2":"burnFromOwner(address,uint256)","a0d8848c":"getTicketStartPrice()","a0d8ad85":"_updatePayment(uint256,address,uint256)","a0d8b4bd":"changePresaleDiscountPercentage(uint8)","a0d8b4e9":"ownerMintRate()","a0d8e231":"SmartpoolVersion()","a0d9669c":"test_invalidAddressNotZero()","a0da3236":"ActionMining(address,uint16)","a0da7d2e":"addressLocked(address)","a0db0a22":"right4(uint256)","a0db844f":"F2UPAY()","a0dbd8d6":"startBlockNumber_()","a0dbde9d":"logBase2(uint256,uint256,uint256)","a0dc6b74":"emergencyPay()","a0dce445":"nothingLib()","a0dd678b":"VCFToken()","a0ddb418":"currentKey()","a0dde02a":"AftabCoin()","a0df9538":"walletOwnerAddress()","a0dfc61f":"DICE_LOWER()","a0e06c8a":"weekPotHighscore()","a0e0c317":"getTradeOfferRecipient(uint256)","a0e1001e":"IiinoCoin(string,string,uint8,uint256,int256,uint256)","a0e16fed":"getFinalizationTime()","a0e1f42c":"addPurchaser(address)","a0e23ebd":"openAt()","a0e2abf7":"getFirstActiveGamble()","a0e4d7d4":"getManifestIdsByName(address,bytes32)","a0e5588a":"paymentAction(uint256,address,uint256)","a0e5bb69":"setPI_edit_17(string)","a0e5e821":"recordDealCancelReason(uint256,address,uint32,uint32,uint256,string)","a0e67e2b":"getOwners()","a0e6a44b":"getCustomerTxPaymentMCW(address,bytes32)","a0e724d3":"ReserveKnown(bool,address,uint256,uint256)","a0e7b4dc":"lastAmountSent()","a0e8b6b0":"the_address_for_option_A()","a0e8d21f":"join(address,string,string,uint256)","a0e8ef3d":"SetUSDPerETH_byContract(uint256)","a0ea0ef9":"constructionStart()","a0ea83dd":"SetSummRew(uint256)","a0eaa5dd":"lastTokenIsTransferableNumber(address)","a0eb5dd1":"AIRDROP_TOKENS()","a0ec4e09":"getUltimateOutcomes(bytes32[])","a0ec7f89":"transferPresaleTokens()","a0ed4cff":"MiniMeToken(address,address,uint256,string,uint8,string,bool)","a0ed6707":"EtopayNetwork()","a0eda9f2":"_transferFee(address,uint256,string)","a0edc204":"noOfPhases()","a0edc671":"USDtoHAV(uint256)","a0edcd7a":"burnPercentage100m()","a0ee153e":"isOwnerOrApproved(uint256,address)","a0ef8647":"BlueToken()","a0ef91df":"withdrawEth()","a0efe255":"m_categoriesCount()","a0f029fc":"ContractorInterface(address,address,address)","a0f04c38":"getKittyPower(uint256)","a0f0e95f":"DDJBTC()","a0f15b87":"registryICAP()","a0f1665b":"PriceSet(uint256,uint256)","a0f1ba62":"isOpenDistributionSetup()","a0f24ea7":"getTotalTokens(uint256,uint256)","a0f4a9a9":"Challenge()","a0f4d3df":"getRandomForContract(uint256,uint256)","a0f52da0":"startMigration(address)","a0f561ca":"ExtractDepositTime(address)","a0f61310":"FakeRelay(bytes)","a0f72985":"PassToken()","a0f78572":"Leaderboard()","a0f7bbcd":"sendTokensToAdvisors(address)","a0f82817":"Max()","a0f8be8c":"startOf(uint8)","a0fa0fb4":"ConstructorTest(uint256,uint256)","a0fa930a":"Ethercoin()","a0faf6a1":"getPortion(uint256,uint256,address)","a0fb1497":"deleteDocument(uint256)","a0fb7f57":"GMET()","a0fc4994":"setX(int256)","a0fe6202":"SHA256(string)","a0ff1705":"depositTokenFunction(address,uint256,address)","a0ffe7bb":"registerInNewMarketplace()","a0fffd5f":"rand(uint32,uint256)","a1007e68":"TokenAmountToPay()","a10132ad":"callbackGas()","a1013abb":"TOKENS_DISTRIBUTED()","a1017649":"updateWalletLock()","a101c2d3":"time_out()","a101f7cd":"bountyFee()","a1022294":"Guess(string)","a1029aff":"findTile(uint16,uint16,uint16)","a102e8a5":"addMeterpoint(int256,address,int256)","a103983c":"BitShopperToken()","a1049c06":"Zolox()","a104dcd4":"changeUpgradeAgent(address)","a104e5e1":"recordNewOwner(uint256,address)","a1057852":"addToken(address,uint256,string,string,string,string)","a106320a":"icoFinalized()","a1063d20":"addIntermediateAddress(address)","a106832b":"disableInitialAmbassadorStage()","a106dbc8":"participantsFor1stSale(address)","a106f0bf":"bonusAmtThreshold()","a107994e":"test_validProxyOwnershipTransfer()","a107ceb6":"affiliateUtility()","a10874d9":"SquirrelGims()","a1088571":"CEO()","a10889fa":"setVersion(uint32,uint32,uint32,string,string)","a10954fe":"reserveBalance()","a109a089":"addWalletAddress(address)","a109b8bd":"feesCal(address,uint256)","a10a7782":"defaultReputationReward()","a10b10f5":"setFriendsFingersWalletForCrowdsale(address,address)","a10b3ffd":"ALLOC_PARTNER()","a10bee85":"_transferFromWithReference(address,address,uint256,string)","a10c0fd5":"ROLE_MULTIOWNER()","a10c44fb":"s18(bytes1)","a10cda99":"isWhiteListed(address,address)","a10d4f56":"updateCaps(uint256[])","a10d6a51":"officialTelegram()","a10d80de":"quitBattle(uint256)","a10daf4b":"GroupMultiplier(uint256,uint256)","a10e057c":"preIcoMinimumWei()","a10e6d28":"arbitrationFeePerJuror()","a10ec6e5":"initialize(address[4],address,uint256[12],uint256,bytes)","a10edc55":"GeneralPurposeProfitSplitter()","a10ef122":"WWWToken()","a10f0f5a":"addField(string,uint256)","a10f42c4":"isICOEnded()","a10f43a3":"bountyReward()","a10f5610":"authoriseAddress(address)","a10fc32f":"setInstantTransfer(bool)","a110063a":"createGOP(address,string)","a1103f37":"attrUUID(address,uint256)","a110d350":"finalPot()","a1119bf2":"bountyFeeCount()","a111b0da":"InternationalTourismCoin(uint256,string,uint8,string)","a111bab9":"totalLockAmount()","a11223da":"airdropTokens(address[],uint256)","a1130d04":"createTemplateAndAskQuestion(string,string,address,uint32,uint32,uint256)","a1131e14":"withdrawSale3()","a113bf2c":"ZITOKEN()","a114b5ae":"_createZodiac(uint256,uint256,uint256,uint256,address,uint256)","a1155286":"deleteOrg(string)","a1155f5c":"buyBlockCDN()","a1158c43":"commissionCheck(uint256[],uint256[],uint256[],uint256)","a1159838":"removeFreeze(address)","a115e38f":"VirtueToken()","a11674b0":"divsOf(address)","a1169d72":"_payChain(uint256,address,uint256)","a11748fd":"ReceiveGBP(address,uint256)","a1183d50":"FixedSupplyToken()","a1188e56":"getCurrentDifficulty()","a118babd":"withdrawPayment()","a118ca27":"validateStep(uint256[],uint256[])","a118f249":"addAccess(address)","a1190a36":"withdrawOtherTokens(address)","a11976f6":"confirmTransactionAfterDisputeFee(uint256)","a119a65a":"gettodayget()","a11aab78":"createGame(uint256[],uint256[],uint256,uint256)","a11ab71a":"fundsToCommunity(uint256)","a11bab06":"GChain(uint256,string,uint8,string)","a11df9c7":"PlanetZeroToken()","a11e1645":"registrationRights(address)","a11e22d9":"toDate(uint256)","a11e7f5e":"get_iconiq_presale_open()","a11ed157":"setBirthFee(uint256)","a11f8de4":"FomoToken()","a1206d4e":"setUserContract(address)","a1207708":"confirmDividends()","a120fdbd":"dayTokenAddress()","a1210a69":"endIcoDate()","a1211bc0":"finalizeCampaign()","a121d8df":"testFailCreateWithParentSameItemId()","a122e060":"rateForPhase3()","a12301f5":"promethCount()","a1232723":"playerPrizes()","a123422e":"_setContributor(address,uint256)","a12396aa":"setName(uint256,bytes32)","a123c33e":"owner(uint256)","a12412f0":"CAT_PER_ETH_BASE_RATE()","a12433fa":"getLastAttack(uint256)","a1243ad3":"mintPartners(uint256)","a12498dd":"ownerEnablePayee(address)","a125c824":"setDefaultTokenURI(string)","a1264994":"setfounderAddress(address)","a126c5df":"GAS_TO_AUTHORIZE_EXECUTION()","a126d601":"closePosition(uint256)","a127cfb6":"LogRequestAccepted(address)","a12842cc":"sellMyTokens(uint8)","a1291f7f":"ownerTransfer(address,address,uint256)","a1298368":"stringEqual(string,string)","a129cb94":"summPremineBounty()","a129ecda":"SetdivForSellBack(uint256)","a12a52dc":"allOwners()","a12a6bb0":"KYC()","a12c2564":"preEndTime()","a12c7dd8":"presaleContribute(address,uint256)","a12cad70":"getPayer(bytes32)","a12d2de3":"withDrawToPoolOwnerFee(uint256)","a12d7e2c":"WubCoin()","a12da89f":"Deviser()","a12e429c":"getDiscipleNum()","a12e55d9":"rollIt()","a12e9670":"setMaxETHContribution(uint256)","a12ee7ba":"changeMaintainer(address)","a12f69e0":"divides(uint256,uint256)","a1315b7e":"createPricing()","a132a785":"removeOwner(address,bool,bytes)","a132aad1":"startPresale(uint256)","a132ab82":"startAirdropTime()","a132e336":"changeDeedPrice(uint256,uint256)","a1338118":"increaseAllowance(address,uint64)","a1344589":"vestedTo(address,address)","a1347622":"t_Michail2()","a1350c00":"migratePropertyOwnership(uint16[10])","a13615a5":"desposeBear(address)","a1365fda":"dev_streamsLength()","a136aadc":"getMinerHashRate(uint256)","a136c448":"updateTokenSellingPrice(uint256,uint256)","a1391297":"ETH_CLEAR()","a139dee2":"_deleteHybridization(uint256)","a13a7cee":"createChildren(uint32,uint32)","a13ae1ee":"updateTokens(address,int256)","a13c24c7":"BithubCommunityToken()","a13c58f7":"logCoinAgeRecord(address,address,uint256)","a13d2733":"updatePatientHealthData(string,string,uint256)","a13d3832":"deactivateTokenSwitch()","a13d8ec4":"generateFinished()","a13e3351":"transferRefPercents(uint256,address)","a13f9e58":"RESERVATION_CAP()","a1405522":"MilkCow(address)","a140a687":"localsService()","a140e4ee":"getDropNotices()","a140e79c":"setMinimumDebatePeriod(uint256)","a1410994":"intelligentmasschainToken()","a141ce6a":"packageOfferInfo(address,uint256)","a142040b":"Dil()","a142d608":"escapeHatch(address)","a1446287":"LKYToken(uint256,string,string)","a1448fa7":"secondRewardPeriodPercent()","a144a3e0":"whitelistTransferFrom(address,address,uint256)","a1450c8a":"XDRAC()","a1454830":"getExpirationTime(bytes32)","a145492a":"transferToPartnerAccount(address,uint256)","a145636b":"artworkIndex(uint256)","a14598e6":"changeBonusPercentage(uint256)","a14779c9":"airdropWallet()","a1490581":"Deal(address,uint256)","a1490d50":"getTradeHash(address,uint256,address,uint256,uint256)","a14977d5":"getCustomerTxCount(address)","a1498f50":"check_result()","a14a5648":"bonus02Start()","a14b877b":"refundEverybody()","a14c1c4f":"setSTO(address,uint256,uint256,uint8)","a14c36ce":"dGetPool(uint8,uint8)","a14c9bed":"resetCurrentIdTo(uint256)","a14cf394":"generateInitialCard(uint16)","a14d191c":"PausePublic(bool)","a14d427a":"transferBonusToken(address,uint256)","a14d6517":"tweetIt(string)","a14e0e4e":"runInit()","a14e88fe":"firstTokenCap()","a14ea9c0":"selfRegisterDIN()","a14eaada":"tipCreator()","a14fc1e7":"aDropedThisWeek()","a14ff857":"setBytes32(bytes32,bytes32,bytes32)","a150be7a":"distributionPreIcoCount()","a152479c":"_computeNextCommissionerPrice(uint128)","a152b23e":"UKW()","a15348fa":"TitleRegistry()","a1536211":"AtacToken()","a153b399":"ZeePinToken(address,address,uint256,uint256,uint256,uint256,uint256,uint256)","a15404b7":"createUnicornPrice()","a15454ba":"payTransactionFee(uint256)","a154aa36":"getTotalGoals()","a154ce82":"disableContract(address)","a155beb8":"buyerDatabase(address,uint256)","a156ce7b":"totalReimbursedWei()","a157696b":"setWhitelistedOnly(bool)","a1578d53":"EventBuyTank(address,uint32,uint32)","a157979c":"netOutcomeTokensSold(uint256)","a1580f1a":"damage()","a1581821":"transferWholeTokens(address,uint256)","a158e377":"statusICO()","a158e632":"lastLapId()","a1594d21":"DividendClaimed(uint256,address,uint256)","a159c548":"amountOfTokensPoolC()","a159c937":"getReferencePriceInfo(address,address)","a15a2289":"GameNumber()","a15a8613":"VoteCountPerProcess()","a15a9a15":"Presenca()","a15afb48":"Replicator()","a15b4d2d":"getAllCardByAddress(address,address)","a15b53ad":"pre_minContribution()","a15b9769":"addRandomClass(uint32)","a15bb363":"createBoardHash(bytes32,address)","a15c1788":"checkForLog(string)","a15cdbf7":"moveERC20Tokens(address,address,uint256)","a15d59ce":"totalVestedBalance()","a15db1c5":"_validateTokensAmount(uint256)","a15e3919":"getCrowdsaleUniqueBuyers(address,bytes32)","a16085ce":"the_address_for_option_D()","a16094d1":"burnMarketMakerApproval()","a160bdf5":"expiration(bytes12)","a1616429":"testBitOrSuccess()","a1616c92":"hasFreelancerMinRatingsCount(address,address,uint256)","a16249e2":"__min__(uint256,uint256)","a162a71f":"addToOwnerlist(address)","a162c04c":"buyTicketsFor(address)","a1636db0":"stepThree(int256)","a16383e2":"getTrustedTransferAttotokensValue()","a1639c6b":"customerConsents(address)","a163a624":"Test()","a163c090":"maxArtworks()","a164845a":"TheImmortalsPhoto(string,string,address,address)","a1654379":"isAllowed(address,address)","a1658fad":"canPerform(address,bytes32,uint256[])","a1659822":"UncursedToken()","a16618ae":"updateClientVersion()","a1663c48":"MIN_PRE_FUNDING_GOAL()","a1664ae2":"icoStartTimestampStage1()","a166b4b1":"addParticipant(address[])","a1672717":"getMinContributionInWei()","a1687d31":"isPlayer1sTurn()","a168d873":"gameAddress()","a1696076":"CCH_EDIT_3()","a1698315":"setExtraTokensWallet(address)","a169ce09":"boom()","a16a3179":"multiTransfer(address[],uint256)","a16bed3a":"changeTradeFee(uint256)","a16c6a73":"setClaim(uint256,uint256)","a16c86f7":"withdrawRefund(address)","a16cdbb1":"maxLockDuration()","a16d5960":"setPartner(address)","a16e5326":"CryptoSagaCorrectedHeroStats(address)","a16f3774":"getReservedTokens()","a16fa142":"generate_token_for(address,uint256)","a1702265":"keyEmployeesAllocation()","a17042cc":"getMsgValue()","a17177a1":"marketingTokensDistributed()","a171b694":"RefundIssued(address,uint256)","a172045d":"PUSH1()","a172db06":"portalAddress()","a1731366":"withdraw_to_reward_contract()","a173ba2f":"deathData_v2()","a1741d0f":"checkLiquidationValue(uint256)","a1743410":"_refundExceededValue(uint256,uint256)","a1744812":"setMaxCoordinate(uint16)","a174a8e9":"addNewColor(string)","a174c4c6":"mintAmount5()","a176d7c9":"createAndTransfer(address,uint256)","a176f6bc":"freezeTimeOf(address)","a1775db5":"isContract(address,address)","a1779a3d":"getFieldData(uint256)","a1784139":"updateChildMinLogos(address,uint256)","a1786803":"getCreationCost()","a1786d1b":"changeMessage(uint256,string)","a1787880":"createCustomToken(string,string,uint8)","a17a2685":"canUpdate()","a17a9e66":"A(uint256)","a17b229d":"total_fund()","a17ca853":"round(uint256,uint256)","a17cc7eb":"storedData(address)","a17d4228":"SingleApproval()","a17d5f44":"initializeWhitelist(address)","a17d713a":"stringToUint32(string)","a17dd26c":"buyWithReferral(address)","a17de881":"DigitalIntelligentToken()","a17e463c":"NbtToken()","a17ea25b":"getAppChainCode(uint32)","a17eb09f":"ExtraHolderContract(address,address[],uint256[])","a17ecf9e":"kill(uint256,address[],uint256[],uint8[],bytes32[],bytes32[])","a17eee56":"setGasRefundForClaimLoot(uint256)","a17f0bbd":"ICO_BONUS_TIME_3()","a17fa5f2":"fillRandomCars(uint256[],uint256)","a17feadb":"airdropAmounts(address[],uint256[])","a1804e67":"buyWithBalance(uint256,uint256,uint256)","a181b040":"SlammerTime(address)","a18232e8":"estimateTokenNumber(uint256)","a1826a9a":"CMK()","a182da60":"crowdSupply()","a1837d21":"ChangeBonus(uint256)","a183e9a5":"ErrorMessage(string)","a18473c2":"RequestCurrencyContractInterface(address,address,address)","a1848b61":"someMethod(uint256)","a1857f4a":"OTHERCRUISER_MAX_CARGO()","a1865376":"changePrice(uint256[],uint256)","a186e120":"setTokenTransferState(bool)","a18717a9":"addressToPass(address,bool)","a1883d26":"setTaxAddress(address)","a1885d9b":"whitelistWeiRaised()","a1888c34":"setGamblingFee(uint256,uint256)","a188b8fd":"accountAddressForSponseeAddress()","a188fcb8":"orderDepth(bytes32)","a189a487":"status(uint8)","a18a186b":"getCurrentOwner()","a18a2092":"changeTokenHolder(address)","a18a7bfc":"setReferrer(address)","a18bf6e9":"addFundAccount(address)","a18c1ab0":"burnToAddr()","a18c751e":"set(bytes,bytes)","a18ccc8a":"transferToWallet(uint256)","a18cd06c":"distribute(address,address)","a18dda19":"releasePayment(bytes32,address,uint256,address,uint256,uint256,address)","a18e0ce4":"addBorrowingItem(address,uint256,uint256,address,bool,uint256,uint256)","a18e133e":"registered_racers()","a18e2eb9":"left69(uint256)","a18ef171":"ALLN()","a18f43ef":"hasForfeitedBatch(address,uint8)","a18f7567":"Thecap()","a18f9b11":"drawWinners(uint256,uint256,uint256)","a1900c22":"takeTokenProfits(address)","a1903737":"addressOfTokenUsedAsReward5()","a1903eab":"submit(address)","a190500a":"tokenSecondPeriodPrice()","a1907386":"debugLatestPurchaseCentsValue()","a1920586":"offer(uint256,uint256)","a1920f36":"reservingStep()","a192274d":"initializeBread(uint256,string)","a192a425":"Founder1()","a192fdba":"bonusEnds10()","a1931ff9":"tryAnotherOne()","a1943113":"devWithdrawn()","a1945458":"getIdentityInfo()","a1960d80":"deferredKyc()","a19638e6":"betsCountToUseFreeBet()","a196593c":"findTenAmUtc(uint256)","a1965dca":"move(uint8,bytes,uint8,bytes32,bytes32)","a196981b":"withdrawCrowdsaleDragons()","a196bea0":"isDirectDebitEnable()","a1972fc4":"updateDividends(address)","a1975c38":"Token77G(address,address,address,uint256)","a197c042":"checkCustomer(address)","a197ec5d":"excessTokensBurnt()","a1988458":"readGlobalPurchasedToday()","a198a418":"LKLZ()","a1992419":"createCandidateOnElection(uint256,address,address,string)","a19b5493":"successed()","a19b8766":"transferTEST(address,uint256)","a19beba9":"addCompanion(address)","a19c1f01":"burnRemainder(uint256)","a19c406a":"newIdTankWeapon()","a19c9cd1":"getEthfromUSD()","a19cb5ee":"addHash()","a19db682":"defaultFoundersRewardTime()","a19e1d00":"bonusInPreSalePhase1()","a19e29a9":"claimUnsold(uint256)","a19ed39d":"finalizeFunding()","a19ee7a3":"changeMinMakerBetFund(uint256)","a19fab4c":"setWhitelisted(address,uint256)","a1a04486":"monthLength()","a1a0ee90":"LogPolicyApplied(uint256,address,bytes32,uint256)","a1a17ec3":"rentSign(uint256)","a1a1efe7":"addBallot(bytes32,bytes32,address)","a1a200c5":"getRankList()","a1a3e4c7":"UserIDChanged(address,bytes32)","a1a49a09":"unlockTimes(address,uint256)","a1a59f52":"_renew()","a1a5d118":"deployNetwork(address)","a1a66e56":"deductFunds(uint256)","a1a6d5fc":"transfer_(address,address,uint256)","a1a71a20":"buyCommon(address,uint256,uint256)","a1a71a83":"checkUsernameVerified(bytes32)","a1a7405a":"destTokensSgt()","a1a74aae":"removeMember(uint256)","a1a79f64":"_winAmount(uint128,uint16,uint16,bool)","a1a7e68b":"mintTreasuryTokens()","a1a85253":"ReturnBack()","a1a887b8":"isUserExists(address,address)","a1aab33f":"weight()","a1aad09d":"setBondPrice(uint256,uint256)","a1ab46d0":"DepositReceived(uint256)","a1ac727f":"airdrop(address,address[],uint256)","a1acd4b2":"AWD_SHARE()","a1acf069":"ArtChainToken()","a1ad2b99":"removeExchangeAccounts(address,address)","a1ad54e6":"holdingToken()","a1ad7cef":"tokenBurned()","a1adbb25":"addCandidate(bytes32,bytes32)","a1add510":"hasRelation(bytes32,bytes32,address)","a1aeb1c2":"paybackToOwner(address,uint256)","a1aec173":"COLOR_SILVER()","a1af90ad":"funcalls()","a1afaa19":"previligedUnLock(address,uint256)","a1b0f3a0":"userChallenge(uint256)","a1b140b6":"getDistributionStatus()","a1b162a8":"set_timeframes(uint256,uint256)","a1b16e5c":"returnAgents(address)","a1b1cb43":"hasAccess(address,uint8)","a1b1e507":"addMintingFactory(address)","a1b22154":"preemption()","a1b22c19":"delExcluded(address)","a1b235af":"popLanguage()","a1b258c1":"firstWeekBonus()","a1b289dd":"TulipToken()","a1b2acc1":"cancelApproval()","a1b35c79":"getSection(bytes32)","a1b39c38":"_removeMarkets(uint256)","a1b3ef4b":"flightDone()","a1b40946":"getWordIndex(string)","a1b4dd2d":"DXBCToken(address)","a1b4f57c":"joinBattle(string)","a1b5b581":"ymtest(uint256)","a1b608c9":"setMainPoolCutPercentage(uint256)","a1b64c86":"TokenMock(string,address)","a1b6b1b5":"updateUnlockData(address,address,uint256,bytes32)","a1b6d4ae":"REPLACES()","a1b77835":"getRefPercentsByIndex(uint256)","a1b7ae62":"setdirectorName(string)","a1b7ffb2":"_checkRequireERC20(address,uint256,bool,uint256)","a1b86605":"getHourglassBalance()","a1b8c40f":"lastDepositIndex()","a1b94c0b":"timeOfWin()","a1b9af31":"unlockBets()","a1b9cb8f":"getTitulaire_Compte_6()","a1b9e03f":"Unagold(address)","a1ba0331":"CoinTroops()","a1ba444d":"createOrder(uint256,uint256,uint256)","a1ba7554":"fibokenUsedCount()","a1bb6220":"halting()","a1bb7828":"make_transfer(address,uint256,uint256,bytes32)","a1bba310":"DonationDoubled(address,uint256)","a1bc13ad":"forgeItems(uint256,uint256,address)","a1bc76d1":"extendPRETDE(uint256)","a1bc7a8f":"sha3_512()","a1bd55c2":"TimeDecayingToken(address,uint256,string,uint8,string)","a1bda122":"returnInt16(int16)","a1bdd146":"setEndorsement(address,uint256,uint256)","a1be79a0":"equipUp(uint256[6])","a1bed0be":"GOAL()","a1bf8a9d":"endICO_w1()","a1bffefa":"emitCancelled()","a1c0539d":"scheduleCall(address,bytes4,bytes)","a1c14350":"getUpdateMarketPhaseCalled()","a1c1519a":"calcNewSkinAppearance(uint128,uint128)","a1c15f56":"CipherPlay(address,address)","a1c29db6":"MAX_FUNDING_AMOUNT()","a1c2f644":"address4()","a1c308d0":"ProspectorsGoldToken()","a1c448f1":"kingdomCreationFeeWei()","a1c4774b":"getCostToKick()","a1c4db02":"eth_meth()","a1c51915":"getB()","a1c68880":"final_share_price()","a1c6d088":"airDropTokenDestroy()","a1c80cea":"getUriCount(address)","a1c8ca7e":"removeClaim(address,bytes32)","a1c90a11":"updatePlayersCoinByPurchase(address,uint256)","a1c91040":"requestEvidence()","a1c93169":"DividendClaimed(address,uint256,uint256)","a1c934b6":"TestNetworkToken()","a1c95ac2":"GSIToken(uint256,string,uint8,string,address)","a1c9d235":"minimumElectionQuorum()","a1ca00c0":"ELIXAddressSetter()","a1ca70f4":"totalDiv()","a1ca8f8d":"LTRToken()","a1cb31b7":"_state()","a1cbae6c":"communityTokens2()","a1cd150d":"_calculateFee(uint256)","a1ce5ba7":"getIncentiveNum()","a1ce7e03":"openOrder(uint64,bytes,bytes32)","a1cea675":"cryptaurRewards()","a1ceb253":"mintAdvisorsTokens(uint256)","a1ceb359":"CryptoStrategiesIntelligence()","a1d0846c":"setPrices(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","a1d0a48f":"addCurrency(string)","a1d0ab04":"allocateContributorsToken()","a1d10d11":"StoneLog(uint256,uint256)","a1d20653":"setVersion(bytes32,string)","a1d25205":"lowEth()","a1d27925":"personalContract()","a1d280d3":"releaseValue1()","a1d3612c":"DKS()","a1d36cb0":"checkClaimEntitlementofWallet(address,address)","a1d48aa8":"PaymentChannel(address,address,uint256)","a1d4c7ce":"_emitSkillRatingGiven(address,address,uint8,uint256,uint256,uint256,uint256)","a1d4c820":"Signum()","a1d53160":"Capital()","a1d5b36e":"calculateTxHash()","a1d61b07":"dateTier4()","a1d707a3":"setReleaseCar(uint256,bool)","a1d7d1dd":"setup(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[],uint256[],uint256[])","a1d7ecbb":"updateShareETH(address)","a1d82cfd":"EBANK()","a1d86608":"_claimedSurroundingTiles(uint256)","a1d915b8":"ClaimTokens()","a1d91ee0":"technologyContract()","a1da2fb9":"retrieveDAOReward(bool)","a1da32be":"Shopiblock()","a1dab23e":"sellFloor()","a1dabfb2":"OAIToken(address,address)","a1db9782":"withdrawERC20(address,uint256)","a1dc139d":"setSigner(address,address,bool)","a1ddcd2d":"USDCX()","a1dddf70":"registerEthHandle(bytes32,address)","a1dea137":"checkBlacklist(address,address)","a1df7eb3":"YBKToken(string,string,uint256,uint256,string)","a1e03f57":"ratePerWeiInSelfDrop()","a1e04406":"preSale4Finished()","a1e0c2c9":"winnerCounter()","a1e15c33":"canuseOf(address)","a1e3b16d":"Crypseum()","a1e3c008":"mainSendTTC()","a1e4cb30":"investorsTotalSupply()","a1e4d3c2":"MembershipRoster()","a1e4eaf1":"updateUserBalance(uint256,bool,uint256,uint256,uint256,address,address)","a1e4f73d":"construct(bytes32,string,bytes32,address,uint128,uint256)","a1e51a79":"emitDestruction(uint256)","a1e564b1":"CashOut()","a1e59471":"HashBux()","a1e66038":"getTrusteeTable()","a1e6a255":"nextUserId()","a1e7e21c":"crowdsaleBurnAmount()","a1e89aec":"saleCount()","a1e8a780":"getAdPriceMultiple()","a1e93b63":"withdrawTipBalance(uint256,address,uint256)","a1e95792":"eatUnicornsAlive(uint256)","a1ea00bc":"isUserTakerFeeEnabled(address,uint256)","a1eb0bae":"eliminarjugador(uint256)","a1eb84b0":"transferOwnedOwnership(address,address)","a1ecb43c":"incrementLimitTeam()","a1ee7855":"ATT()","a1ee8c78":"issueToken()","a1ef9b8f":"reallocate(address,address,address,uint256)","a1f1aa66":"cancelVoteInternal(bytes32,address)","a1f1de65":"getPrizeAmount(uint256)","a1f24b3d":"getAssetDetails(uint256)","a1f36a78":"EROSCOIN()","a1f43f40":"UNICToken()","a1f4b9c8":"updatePlayerGen(address,uint256)","a1f54adf":"nextPremiumSale()","a1f56b0a":"getRollOutput(uint256,uint8,uint8,uint256,address)","a1f7f269":"_breedWith(uint256,uint256)","a1f841d7":"unlockFund()","a1f8adac":"investorList()","a1f8ea3b":"numOfDeliveredEarlyPurchases()","a1f902a7":"ComputeVestSpend(address)","a1f91057":"updateLock(bool)","a1fa39c4":"getRaisedPercents(address)","a1fa540d":"changeVotingBlocks(uint256,uint256,uint256,uint256,uint256)","a1fa566e":"getChannelPartners(bytes32)","a1fac24c":"Follow(bytes32,bytes32,bool)","a1fafe0c":"sendResidualAmount(uint256)","a1fb03f2":"GooCrowdsale(uint256,uint256,uint256,uint256,address)","a1fb1de9":"Message()","a1fb34c1":"setCustomExtraData(bytes32,uint256,bytes32,bytes32)","a1fc21f4":"setStaffDisbursementAddress(address)","a1fcc3bc":"stage2()","a1fd49b7":"getMFBalance(address)","a1fd92f5":"destinationMultisigWallet()","a1feba42":"tokensLocked()","a1ffba04":"PPGT()","a2008eb9":"acceptBidForStar(uint256,uint256)","a200dc73":"getNextShareholder(address)","a201222d":"recalculate(address)","a201bf26":"settleETH(bytes32)","a201d102":"VOTING_END_TIME()","a201ed8b":"transferMultiple(address[],uint256[],uint256)","a2023ff8":"setStartEndTimeTLP(uint256)","a202e476":"last_hash()","a20348c4":"ToPeriod()","a2035fef":"changeCustomTimeLock(string,uint256)","a20495d3":"Managed()","a20741dd":"getOperation(uint32)","a207b7fa":"SALE_FUND()","a208b3b7":"findFigures(uint256)","a2093e1b":"migrateCatOwnersFromPreviousContract(uint256,uint256)","a209a29c":"getStringValue(bytes32)","a20aede0":"phaseThreeRate()","a20b8ab3":"ttlInvestAmount()","a20bbb8b":"addBadge(uint24,int16,int16,uint24,uint256,string,string,string,uint256)","a20bc7fe":"allownce(address,address)","a20c15cf":"_generateCampaign(string,uint256[3],uint256[],uint256,uint256,uint256,uint256)","a20c404f":"ModifySettings(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","a20cc495":"bytesFunc(bytes,bytes)","a20cd047":"moveTokenToAccount(address,uint256)","a20cf0e7":"setTokenNAVMicroUSD(uint256)","a20ddfb6":"getPartnerAddresses()","a20def62":"checkExistsOwnedAccessory(uint64)","a20e2525":"UnlockWei(uint256)","a20efba3":"mintGrey(address,uint256)","a20f46c6":"searchAddress(address)","a20f4ee6":"pixelCost()","a210a676":"buyBunny(uint32)","a210c6a9":"creatorPaid()","a210f934":"rateEarlyStage2()","a21174bb":"DefaultReverseResolver(address)","a2119377":"createToken(string,address)","a2119a3a":"allocateForRefund()","a2125232":"addItem(uint256,uint256)","a213051c":"individualMinPurchaseWei()","a21383cb":"permissibleTokenWithdrawal(uint256)","a213972c":"ViewBet2(address,uint256)","a213c280":"DayByDayToken()","a21515e3":"computed_shares_sold()","a2152e32":"testOracle()","a215457a":"transferBurnRole(address)","a215cd92":"setMinConversionRate(uint256)","a2167ac4":"_donations()","a216e0aa":"transferRobot(address,uint256)","a2177ff0":"getKeyLength()","a2187de0":"available_tokens()","a218d8ca":"clearAndDestoryAfterTwoWeeks()","a2190b46":"calculateTakerFee(address,uint256)","a21931ea":"CreateProposal(string,string,string,uint32,string,string,string,uint32,uint32)","a21a32cb":"Securities_1()","a21a65ae":"getIntArrayLength(bytes32)","a21d5b9f":"utilityLockedDate()","a21d942f":"checkResult()","a21df9f0":"THIRTY_DAYS()","a21e14fe":"reportInvalidDeposit(bytes32[])","a21ea6b7":"CrabCoin()","a21eea2a":"assertValidChallenger(address)","a21eef95":"getBarrierNum(uint16)","a21f0368":"History(uint256)","a21f74b8":"fundGooResearch(uint256)","a21f836e":"pubCount()","a21fbc92":"isAllowed()","a2200278":"checkStatus(bytes32)","a2200fbe":"AgreementUrlEn()","a220a90e":"transferLoveStoryWithData(bytes16,bytes32,bytes32,uint256,string)","a220d6c4":"tCampaignStart()","a2210352":"doRebuyTo(address)","a22107b4":"createRandomZombie(int256)","a222a52f":"firstPostIcoContributorId()","a222c98d":"declareWinnerForRaz(uint256,uint256)","a22304cd":"_specialDistribution(address,uint256)","a2233631":"withDrawal(address,address,uint256,bytes)","a2233c4d":"BancorConverterFactory()","a22352e2":"getDisputeFee(bytes32)","a2240eb0":"Scope()","a2248be0":"set_pre_kyc_bonus_numerator(uint256)","a224a5b3":"push_key(uint256,uint256,uint256)","a224c745":"setWhitelistAddress(address)","a224f4ce":"earningsFromScore(address,address)","a2252aaa":"referralProgramOwner()","a225d0be":"setTokensByWaveIndex(uint256,uint256,uint256)","a2261508":"tokenSpender()","a2267a3a":"newProposal(uint256,uint256,string)","a2271b15":"m_presaleFinished()","a22838b9":"ExecuteTrade(uint256,address,address,uint256,uint256)","a229090a":"dropTo(string)","a22913b5":"addTeamAddress(address,uint256,uint256)","a229b901":"transferApprover(address)","a22a31dd":"Forged(uint256)","a22b35ce":"_burnFrom(address,uint256)","a22b5a1c":"getFiles(bytes32)","a22b97f5":"withdrawOnBehalf(address)","a22ba787":"allocateETH(bool)","a22bb384":"GBAChain(uint256,address)","a22c81ec":"MIDGRADE_TYPE2()","a22cb465":"setApprovalForAll(address,bool)","a22cd657":"getImpactValue(string,address)","a22ce93d":"getActiveConsentTemplates()","a22d5a51":"deleteActivity(uint16)","a22dff2c":"getMainBalance()","a22e9009":"epm()","a22ec476":"setSireStop(uint32)","a22ed371":"mentalBalanceOf(address)","a22f2b2e":"set_lock_list(address,address,uint256)","a22fb98b":"updateBounty(string,uint256[])","a2302af9":"queryWinningTeam(uint256)","a2309ff8":"totalMinted()","a230c524":"isMember(address)","a231a84f":"ssp()","a232155d":"getbetresultfirst(address)","a2325259":"buyTokensWithUpdateRate(address,uint256)","a23281e6":"numPositionsExpired()","a2328e2e":"_FIVEHUNDRED()","a23291b6":"QUIOToken()","a232e64b":"createForum(string)","a235ae52":"setWithoutFee(address,bool)","a2362aca":"HyunJaeToken()","a2368e11":"setAirDrop(bool)","a236a3d7":"configRoundKeyAdd()","a236e665":"buyNac(address,uint256)","a236eb85":"subdivide(uint256,bool,bool,uint256,uint256,string,string)","a236f388":"getGameWin(address,uint256)","a23744f0":"tryCreateCheckRecord(bytes)","a2375d1e":"getC()","a237f4d8":"developerFundAddress()","a2393922":"getTokenDealRange()","a23951c8":"WidthdrawEarnings(uint256)","a239756d":"setRandom(uint256,uint256)","a239d260":"KinTokenSaleMock(address,uint256)","a23a373f":"DrawWinning(uint256,uint256)","a23a49c1":"setEscrowTokensWallet(address)","a23a5315":"SkyToken()","a23b5bd1":"getRandomUint256(uint256)","a23b791a":"Bitcoin()","a23bbb11":"GroupClosed(uint32,uint256)","a23bc6fe":"setTokenHolderAddress(address)","a23bec7b":"constrcutor()","a23bfd84":"weiPerCHF()","a23c3397":"getTokensPaidToGame(address)","a23c86c0":"allocateBulkTokens(address[],uint256[])","a23d20f4":"blockedDivisionJurisdictions(bytes32)","a23d3c35":"founderWallet()","a23d64c4":"isReturnRequested(address)","a23da130":"FundsRegistry(address[],uint256,address,address)","a23e21f7":"change(uint8,bytes32,bytes32,bytes20)","a23e3e89":"removeToken(address,uint256,uint256)","a23f41e2":"curs()","a2407c7b":"verifyUpdate(uint256,int256[2],uint256[2],int256,bytes32,address,uint256,uint256,uint256[3])","a240d8ad":"changeWeeklyRate(bytes32,uint256)","a241c089":"updateContract()","a2420f73":"EthermiumTokenList(address,address,uint256,uint256)","a24247f1":"getStartLockTime()","a242519b":"Technology3G(address)","a242f049":"ICOEndTime()","a243b6c1":"setPrice(uint256,uint256[],uint256[])","a243f512":"removeTrack(bytes32)","a244e03d":"definirMessage(string)","a244f365":"SbuyToken()","a245b774":"lockedFundsForthefuture()","a24636c1":"InvalidState(bytes)","a246d83b":"relaySellerCannotCancel(bytes16,address,address,uint256,uint16,uint128,uint8,bytes32,bytes32)","a2471fa5":"RecoverableWallet(address)","a2478c8d":"CT(uint256,string,string)","a247bc32":"payouts()","a24835d1":"destroy(address,uint256)","a248da12":"Exam()","a248de8f":"own(bytes32)","a248df4f":"XFC()","a249225e":"setAuthorizedUser(address,bool)","a2495ace":"transferCongress(address)","a2497b5c":"ETQuality()","a24a21fa":"TheBillionCoin()","a24bcf46":"calculateTokenAmount(uint256)","a24beff7":"closeBet(uint256)","a24c9737":"BUYER_CAP_HIGH_USD()","a24d23eb":"ProcessGame(uint256,uint256)","a24d9658":"revokeConsent(string)","a24dbe76":"StatusContribution()","a24e20de":"withdraw_dao_fund(address,uint256)","a24ea666":"withdrawedFundrasingPart()","a24ea868":"PROOF_MULTISIG()","a24ed4e5":"isLimitedWalletAddress(address)","a24ed8aa":"newLeader()","a24f1e82":"publiclyDistributedParts()","a25047a2":"hasEntry(address)","a25057de":"_transferToICAP(bytes32,uint256)","a250f43b":"verifiedWinnersLastCount()","a25236fe":"requestVotingRights(uint256)","a25277f3":"totalTokensCrowdSale()","a25287c5":"allowChangePrice()","a25367ff":"method2(bool)","a253c06e":"_circulatingSupply()","a25401ea":"PapyrusToken(address[],uint256[])","a254e662":"managementTokensDelivered()","a2550108":"alt_buyCollectible(uint256,uint256)","a2554c36":"walletForPresale()","a2558ee2":"holderReward()","a255d68d":"ticketTransferees(address,uint256)","a2564afc":"activatePermissionsBot(bytes32,bytes32)","a2564f7c":"randomNumberGen(uint256,uint256)","a2578f1c":"armyCountBattlesWon(uint256)","a258dafc":"getTopInfo(uint256)","a2594b83":"greylistMany(address[])","a2596576":"submitMint(int256,address,uint256)","a2596ebe":"returnTokensFromHoldProgectAddress(uint256)","a2597659":"changeMinAccEthers(uint256)","a25983e5":"lockTokens(address,uint256,uint256)","a25a34b1":"findPositionInMaxExpArrayTest(uint256)","a25b859d":"soldIdeaWeiIco()","a25b9384":"isUserAllowedToTransfer(address)","a25bc80c":"setPresaleState(uint8)","a25be434":"notifyTranferToken(uint256,address,address)","a25c1f3a":"presalePurchasesLoaded()","a25d8973":"createSale2()","a25e6898":"withdrawForeignTokens(address,address,uint256)","a25eb5d9":"exchangeToken()","a25f2d7e":"ReinvestmentWithdrawal(address,uint256)","a25f55d4":"getBatchSize()","a25f5e98":"doAdditionalMinting(address,uint256,int256)","a25fc8dc":"adminAddCity(string,uint256,uint16)","a25fdcec":"editPlanet(uint256,uint256,string,string)","a25ff42d":"HumanStandardToken2(uint256,string,uint8,string)","a2605dc1":"EventLuckyNumberRequested(address,uint256,uint256,uint8)","a2609759":"transferPreSignedMany(address,address[],uint256[],uint256,uint256,uint8,bytes32,bytes32)","a260c045":"PROMETHEUS_SHIP_LIMIT()","a260d8da":"makePresaleReady()","a26176b1":"testInequalityUint()","a2624afe":"raiseJackpot()","a262c092":"CollectChipBag()","a26329f0":"finalizeRefunds()","a2635401":"getCurrentGameId()","a263601c":"find_contribution(address)","a26388bb":"testRevert()","a263c7ba":"changeBuyPrice(uint256)","a263e793":"EdittedEntry(address,uint256)","a2644eb0":"withdrawFullTokenBalance(address)","a264f18e":"CROWDSALE_ETH_IN_WEI_ACCEPTED_MIN()","a2651d30":"purchaseAreaWithData(uint24[],uint24[],uint256[],string,string,uint256)","a2657960":"DolyToken3()","a26636f3":"StpacToken()","a266b0f2":"CoinStacks()","a266c820":"changeARIWallet(address)","a266f4da":"liquidateFund()","a26730e1":"minRelease()","a26759cb":"addFunds()","a267b5cf":"TokensTransfered(address,uint256)","a268b332":"testBitXorFailIndexOOB()","a269202f":"setHash(address,bytes32,address,bytes32,uint256)","a269e31f":"setPrices(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","a26a1bc9":"clearLockUser(address,uint256)","a26ac680":"BoBoToKen()","a26b0e34":"dbVal(address,uint256)","a26b2d76":"StepCoin()","a26b8822":"tokensSoldExternal()","a26bddb4":"LockedTokens(address)","a26c7810":"mintToTeamAccounts()","a26d494d":"getEscrow(address)","a26d6de6":"LogWithdrawal(uint256)","a26d7b94":"isCrowdSaleClosed()","a26dbf26":"totalParticipants()","a26e1186":"deposit(string)","a26e7a6c":"_initOpinion(uint256,string)","a26efcf8":"startGame(bytes,address,uint256,uint256[],bytes)","a26f644c":"Transfer_of_authority_data(address)","a270907c":"Btcandres()","a270a737":"venue()","a270cdf3":"getMarketInfo(bytes32)","a2720018":"freelanceFillBonds(address)","a2729a01":"updateDelegatorWithEarnings(address,uint256)","a273079a":"addLog(string,string)","a2730c23":"EthToAFW(uint256)","a273738c":"preICOEndTime()","a27411d8":"Earthpayment()","a2741bdb":"MAX_CITIES()","a2744a22":"addProduct(uint256,uint256,string,uint256)","a275ee1b":"getDeployTime()","a27678c9":"preDGZToken()","a277051f":"userAddr()","a277b787":"CARXTOKEN()","a277d5b1":"totalTokensPurchased()","a277fa88":"setWhitelistOn()","a2788b58":"ConflictResolutionManager(address)","a278ce66":"backWindowAdjustmentRatio()","a278fdfb":"bidOnAuctionToBuy(uint256)","a27966dd":"finishselfdrop()","a2798f0a":"GetQueueNumber()","a279c488":"addPending(address,uint256)","a27a9e7f":"publicAmount()","a27aebbc":"extendTime(uint256)","a27b9bf4":"matchcoin(uint256,string,string)","a27c1756":"ECONOMY_BOOST()","a27c3a2d":"HngCoin(uint256,string,string)","a27c672a":"owner_reveal_and_commit(uint8,bytes32,bytes32)","a27c794b":"insertDetails(string,uint256,uint256)","a27c9af0":"gameDestroy()","a27d8298":"leader_3()","a27e0e67":"QLFY()","a27ee939":"payto3()","a280b3db":"preSaleBonus3Time()","a280ce8f":"distributeWinnerPot()","a280e67a":"leftnum()","a28103f2":"batchTransfer2(address[],uint256[])","a283063c":"ChargeFee()","a2832c97":"CappedDividendToken(uint256)","a283c9c5":"getLastBidAmount()","a283f907":"addOrderContract(address)","a283fd00":"getPendingPaymentAmount(address)","a284b6d3":"maxTicketAmount()","a28504b4":"isSwapDone()","a28555d5":"setTAOFamilyAddress(address)","a28576aa":"LogUserRegistered(address)","a285f19f":"signedTransfer(address,address,address,uint256,uint256,uint256,bytes,address)","a2860050":"estimateReturns(address,uint256)","a28641cc":"_buyTile(address,uint256,bytes)","a2866a78":"HouseICO()","a28812c2":"existingIds()","a288237c":"MeSum()","a288b609":"releaseOf(address)","a288fb1f":"setConfigUint(int256,bytes,uint256)","a2890972":"synthesize(uint16[5])","a289409b":"addAddressesToAdmins(address[])","a289673b":"fipsChangeOwner(bytes20,address,address)","a289d187":"depositDividend()","a28a1564":"GBToken()","a28b1ffd":"isLive(uint32,int256)","a28bc99a":"TipSmartToken()","a28c644d":"setACLRole5999294130779334338(address)","a28c76cc":"initialize(address,address,address,bytes32,uint256,uint256,uint256)","a28d0185":"removeComponent(uint256,uint256)","a28d57d8":"btc()","a28e68d3":"setOnceMintAmount(uint256)","a28ecf0b":"sendCryptedHand(bytes)","a28f19f8":"AddDroneItem(address,uint256,uint256)","a29063c1":"LuckyNumberImp()","a290f4f2":"logoPrice()","a2919502":"getWalletLibrary()","a29256bd":"Ethereum()","a292f7d3":"paymentEscrow()","a29337bd":"tokensToCompany()","a293688b":"triggerFindWinner()","a293cba1":"LETSCOIN_Token()","a293d1e8":"safeSub(uint256,uint256)","a29445a9":"EnclavesDEXProxy(address,address,address,address,uint256,uint256,address,bytes32,bytes32)","a294542f":"setPreSaleTLYperETH(uint256)","a2948cdf":"futureDevelopment()","a294ed7a":"voterAddressOf(uint256,uint256)","a2950fd8":"Birth(address,uint256,uint256,uint256,uint256,uint256)","a2958b76":"_transferOwnershipOfStorage(address)","a29626c2":"createSingleSeedAuction(uint8,uint8,uint256,uint256,uint256,uint256,uint256,uint256)","a296b323":"setTransfer(bool)","a296fed8":"HitToken(uint256,string,string)","a297d43c":"openDistributionContract()","a2987245":"getIntArrayIndex(bytes32,uint256)","a298ba7c":"AntiqueCoin(address,uint256)","a299b155":"setInitialTokensBalance()","a29aaad6":"MatreXaCrowdsale(uint256,uint256[],uint256[],uint256,uint256,uint256,uint256)","a29b7fa0":"TklnAirdropToken()","a29c3574":"OrgonToken()","a29cc6c8":"allocateVestedTokens(address,uint256,uint256)","a29cd847":"changeEndPreSale(uint256)","a29d4859":"drpuToken()","a29d578a":"changeABaddress(string,address)","a29dbf46":"isAllowedToSend(address,address)","a29f9fb9":"onChainAddresses(bytes32)","a29fe9b1":"UBOToken()","a29ff28d":"receivedStaAmount()","a2a02202":"smg(uint256)","a2a0d0fc":"pre_endTime()","a2a140f9":"MinInvestment()","a2a1521a":"SignalPylon(address)","a2a17629":"addrBroker()","a2a206c0":"ImperoITCoin()","a2a23fb2":"getVersionsLength()","a2a256b9":"AirDroppedTokens(uint256)","a2a3d051":"B3(uint256,string,uint8,string)","a2a483ee":"setCS(address)","a2a51ccd":"transferToCrowdsale(address,uint256)","a2a5243c":"_calculateExcessBonus(uint256,uint256)","a2a53c7c":"Exercise(uint256)","a2a6aa11":"TileClaimed(uint256,uint256,uint256,address)","a2a6ca27":"setMinPerTx(uint256)","a2a746e1":"moveToInitiator(address,address,uint256)","a2a8336f":"claimEtherSigner(uint256)","a2a84a5d":"zonesSwarmAddress()","a2a8e279":"getTokensForEther2(uint256,uint256)","a2a957bb":"setFee(uint256,uint256,uint256,uint256)","a2a96799":"totalSuply()","a2a9a6c1":"satellite()","a2a9d1ef":"initReverseENS(address)","a2aa0724":"enterLottey()","a2aaa10e":"DigiCrowdSale()","a2ab2686":"participatePresale()","a2ac0a1a":"getUserAssetBalance(address)","a2ac5360":"calculateFounderCut(uint256)","a2aca613":"buyLicense(address,address,string)","a2ad16ed":"WinEToken()","a2ad360f":"SUV()","a2ae72ec":"open_commitment(uint256)","a2ae86ac":"setUntsqm(uint256)","a2af0e37":"assignPlayer(string,address)","a2af5fe9":"content(string,string,string,uint256)","a2b038b3":"addOffChainRaisedContribution(address,uint256,uint256)","a2b0867d":"Admined(address)","a2b0f9f6":"setMaxWeiForVerificationLevels(uint256,uint256,uint256)","a2b144f0":"getGasForMcr()","a2b1da51":"inflat(uint256)","a2b21d7d":"trainSpecial(uint256,uint256,uint256[2],uint256[2])","a2b40d19":"changePrice(uint256)","a2b424b1":"firstPresaleEnd()","a2b475f3":"levelOneBonus(uint256)","a2b5591c":"oraclize_query(uint256,string,string[],uint256)","a2b60f43":"EmployeeMigrated(address,address,uint256,uint256)","a2b6cbe1":"deleteTxDataBlockNumber(bytes32)","a2b6f0ec":"addRewardToPendingWithdrawals(uint32)","a2b7976d":"bbye()","a2b7a18b":"BCE()","a2b7e23d":"queueMode()","a2b8891e":"getFreeKebaber()","a2b946aa":"getNewGame()","a2bad039":"getCompte_27()","a2bb5d48":"get_username(address)","a2bb635a":"WhitelistedAddress(uint256)","a2bbeac2":"Shares(string,string,uint256,uint256)","a2bc0e31":"testCheckRokTeam()","a2bc183f":"secondPlacePot()","a2bc1cd4":"getNumEthOfferors()","a2bc2eef":"CipherPlayToken(address,address)","a2bcb304":"setfanbei(uint256)","a2bccae9":"plyrRnds_(uint256,uint256)","a2bcee8b":"build_creature()","a2bd018c":"targetDiscountValue3()","a2be1761":"addDiscounts(address[],uint256)","a2be23cd":"BASIC_RATE()","a2be427d":"updatePlayer(uint256)","a2bf1d06":"DURATION_NONUSETEAM()","a2bf68b9":"membership()","a2bf6939":"setTokenValue(uint256)","a2bf6f7e":"ClaimedStatus(address)","a2bfae64":"mmin(uint128,uint128)","a2c030a5":"changeRootAuthority(address)","a2c17459":"getCreateUnicornFullPriceInCandy()","a2c25131":"LogItemUpdate(uint256)","a2c2ed9b":"killContract(uint256)","a2c3a542":"getFallbackDepositPeriod()","a2c3b256":"receiveCheck(address)","a2c3bd83":"TokenInvestment(address,address,uint256)","a2c41366":"getIcoBonus()","a2c44503":"doesUserHaveBalance(address)","a2c4895a":"encodeOperator(uint256,uint256)","a2c4a06f":"startTimeOne()","a2c4c336":"getPurchaseReturn(address,uint256)","a2c4d268":"addToRef(uint256)","a2c52c4d":"CoreMediator()","a2c6fa83":"transferFromStudio(address,address,uint256)","a2c77e68":"isLeftTokens(uint256)","a2c8b76b":"getPriceFor(uint256,uint256,uint256,uint256)","a2c93406":"blinc()","a2c99d47":"rateAfterValidation(uint256,bool)","a2c9d630":"manualPrice()","a2cc1f62":"disagree(address)","a2cdd471":"cc()","a2cdd82f":"setAuctionObj(address,uint256,uint256)","a2ce0f87":"min_contribution()","a2ce4215":"TOKEN_PREICO_CAP()","a2ce588d":"roundExpired()","a2cff990":"getHeroCurrentLevel(uint256)","a2d0b147":"RedTicket(uint256,address)","a2d0f942":"canRedeemUTXOHash(bytes32,bytes)","a2d10ba5":"kyber()","a2d1c624":"checkKingFounder(address)","a2d1cf11":"propheciseExecute(address)","a2d24c5e":"getFirstTranche()","a2d39bdb":"addKey(address,uint256)","a2d3e2be":"ReleaseTimeChanged(address,uint256,uint256)","a2d435d4":"icoTotalCollected()","a2d46832":"speech(uint16)","a2d4db9c":"newUpload(bytes32,string,uint16,bytes32)","a2d57853":"receiveApproval(address,uint256,bytes)","a2d5b8bf":"withdrawBoardMeetingFees()","a2d6a926":"CapCoinInternational()","a2d6d382":"videos(bytes32)","a2d6f8de":"startEarlyStage4()","a2d74227":"spendToken(uint256)","a2d74b29":"setJobHiringDone(uint256)","a2d819b4":"getSenderSig()","a2d83b5e":"update(address,uint256)","a2d89edf":"bountyInit()","a2d97fa7":"TimeLockr()","a2da2b47":"ausGroupReleaseDate()","a2da84f8":"setCAOAmount(uint256[])","a2db644e":"vestingTransfer(address,address,uint256)","a2dc7dcf":"initialize(address,address,address,address,address,address,address,address,address,uint256,uint256,uint256,uint256[])","a2dc9d9c":"ChangeMessage(string,string)","a2dcb5d4":"bindUserWithBoard(uint256,address)","a2dd2e96":"InitCancel(address)","a2dd3283":"setICOContract(address,address)","a2dd9dd3":"canMateWith(uint256,uint256)","a2de29d4":"setReleaseAmount(address,uint256)","a2de45b7":"Listed_Validated(uint256,string)","a2de5b50":"buyWithPromo(address)","a2dea26f":"sendAllocation(address)","a2deadbd":"getTransactionHash(bytes)","a2dee527":"setSaleBonus(address,address,uint256)","a2df26f5":"printMarket(int256)","a2df6c42":"splitFirst(string,string)","a2df7465":"DeepToken(address,address,address,address,address)","a2dfa2f0":"buySampleTokens(address)","a2e0ee3e":"theWinningReferral()","a2e1a8d8":"isOwnerAddress(address)","a2e23a51":"TAIL_EMISSION()","a2e2842e":"ChannelSecretRevealed(bytes32,address)","a2e2998c":"setPricePerMessage(uint256)","a2e3750c":"preSaleCSSC()","a2e38b54":"getTransactionIds()","a2e40e50":"endorse(bytes32)","a2e55e88":"IQB()","a2e5f168":"DaoAccount(address,address)","a2e62045":"update()","a2e65477":"changePeriod(uint256,uint256,uint256)","a2e7223e":"isNewPlayer(address)","a2e7241c":"citizensAddresses(uint256)","a2e800ad":"rounds()","a2e841ba":"getUnprocessedQueryBytes32(uint256)","a2e855a5":"batchFillOrKill(address[5][],uint256[6][],uint256[],uint8[],bytes32[],bytes32[])","a2e91477":"publicSaleStarted()","a2ea2aaf":"CreateToken()","a2ea771f":"receivedTokenOf(address)","a2ea7c6e":"getSchema(bytes32)","a2ea80f9":"setPayableEnabled(bool)","a2ea9883":"OwnerChanged(address)","a2eaa896":"winningBidder(string)","a2eb0d01":"gift_CreateTINAmotleyLine(string)","a2eb164d":"lockUpdateTokenAccount(address,bool)","a2ebaa1d":"TEAM_PERCENT_EVE()","a2ebb20b":"icoHolder()","a2ec191a":"addDSource(string,uint256)","a2ec258f":"future()","a2ec5414":"getAllowanceExpiration()","a2ee1a27":"sellPrice_wie()","a2ee4000":"cancelSalesOffer(bytes32)","a2ee8669":"PussyToken(uint256,string,string)","a2eeb5d4":"pyramid(uint256)","a2f09dfa":"addFund()","a2f1607c":"_calcLockRewardPercentage()","a2f16d80":"dexWithdrawCollectedFees()","a2f182d4":"setLimits(uint256,uint256,uint256,uint256,uint256)","a2f23659":"VPCx()","a2f26fb2":"FTTIssued(address,address,uint256,uint256)","a2f3139c":"stagedVestedLockUpAmounts()","a2f35f44":"addNewAddress(address)","a2f37360":"addSponsorshipAmount(address,uint256,uint256)","a2f39dc6":"OLDSPTI()","a2f3ba5b":"setSynthetixState(address)","a2f3ede2":"computeNameHash(bytes)","a2f44e72":"p_update_action(uint256,address,address)","a2f45660":"Purchase(address,address,address)","a2f4f550":"getDataPointForSubject(uint256,uint256,int256)","a2f56b2c":"refundEth(bytes32,address,uint256)","a2f5ee48":"CarbonExchangeCoinToken()","a2f6e5fb":"ViewMyDivs(address)","a2f77bcc":"getGame(uint256)","a2f78d7a":"startICO(address,address)","a2f792d5":"AdministratorAdded(address,address)","a2f7a2e0":"changeIcoPhaseAmounts(uint256[])","a2f7b3a5":"instances(uint256)","a2f7b7fd":"callTokenFallbackIfNeeded(address,address,uint256,bytes)","a2f7f58f":"getBetAmountOf(uint256,uint256)","a2f91af2":"cage(uint256)","a2f95b44":"committeesArray(uint256)","a2f9eac6":"persons(uint256)","a2fa0157":"isAssetActive(address)","a2fb1175":"winners(uint256)","a2fb342d":"lend(address,uint256)","a2fb98fa":"starting_clones()","a2fba23c":"holderGroup(address)","a2fbe98c":"haveIWon()","a2fc0bd5":"BuyEvent(address,uint256,uint256,uint256)","a2fc2254":"LAFINAL3()","a2fcd1af":"amountRaisedInUsd()","a2fd0179":"unlockBatchOfAddressesAfterITO(address[])","a2fdea11":"getBonusCoefficient()","a2fe802b":"isExit()","a3000128":"getContributionHash(address,uint256)","a3006abf":"buyBoosterPack()","a3006f5f":"CETFToken()","a300aa66":"RIKCoin(address,address)","a300c6ae":"confirmCollRecv(uint256)","a300eadf":"_getAllParents(bytes32)","a3011a02":"WatcharaHashCoin1()","a301b493":"Milestone_IcoFailed(string)","a3022667":"modifyAllLevelCaps(uint256[])","a302fdf1":"WHITELIST_BONUS_RATE()","a3030b10":"getTournamentBattleResult(int256,int256,uint256,uint256,uint256)","a3031b77":"getTradeCount()","a3032f25":"claimTreshold()","a3035454":"WeiControllerFactory(address)","a30376b7":"getReferralCount(uint256)","a3045113":"payUp()","a304f625":"updateInheritedEarlyParticipantWhitelist(address,uint256)","a3053236":"SafeInvestments()","a305ac76":"futureHolder()","a306e754":"batchIssueTokens(uint256)","a3078815":"darknodeOwner(address)","a307b727":"refund(bytes32,string,address)","a30872db":"tierContract()","a308c2a7":"validReferralCode(string)","a30955af":"balanceToken()","a309800c":"_withdrawWei(uint256)","a309f2ee":"setBalanace(bytes32,address,uint256)","a309f589":"crowdsaleRatio()","a30a86fe":"setMainSaleParameters(uint256,uint256,uint256,uint256)","a30b5c69":"AttributeModel()","a30bdea4":"isOffchainWhitelisted(address,bytes)","a30c5f17":"get_root()","a30cc5f6":"multiFixed(uint256[2][6])","a30d5627":"ItemToken()","a30d59c9":"getEggsCount()","a30eb0ef":"freeTokenTime()","a30eddcc":"bitSlice(uint256,uint256,uint256)","a30ef9e7":"toBase32(bytes)","a30f786f":"allowedRewardTokens()","a30fb52d":"sendGameGift(address)","a30fbae1":"endBuyBackDate()","a310293e":"weiDonated()","a31052e8":"clearReleaseTime(address)","a3106b95":"setMinterAddress(address)","a310f36a":"test2(bytes,uint256)","a3111d7c":"withdrawListing(uint256,address,bytes32)","a311a08e":"setPartners(bool,uint256,uint256)","a311c7c2":"collateralisationRatio(address)","a311d157":"addContributor(address,uint256,uint256)","a311d970":"TokenTycoonIGO()","a311dd70":"setArray(uint8[10])","a31271f5":"updCrowdSaleEnabled(bool)","a313c371":"memberInfo(address)","a31477b4":"getSncTokenIssuance(uint256,uint256)","a314acfe":"attemptToClaimCard(address,address[3])","a314dc2d":"feePayed()","a3155013":"month60Allocated()","a315acf5":"minter_address()","a315cda0":"priceOfSmartContract()","a316aa93":"setActivityDetails(uint256,string)","a3179fe0":"getAccountsNumber()","a317abc7":"defaultMax()","a318d521":"disableBeforeActivation()","a3194d50":"setFinished(uint8,bool)","a319b232":"VTCoin(uint256,string,uint8,string)","a31a9752":"Payout(uint256,bool)","a31b858d":"_buyDiscountTTM(uint256,uint256,address,address)","a31c5436":"TOKEN_AMOUNT_PRE_ICO()","a31caec8":"AkilosToken()","a31cc317":"evaluateContract()","a31cd710":"_getExpMultiple(int256)","a31d291a":"HOHO(uint256,string,string)","a31d30a5":"WhitelistUpdated(uint256,string,address,uint256)","a31d5580":"Registrar(address,bytes32,address)","a31e3678":"addExceptAddress(address,address)","a31e5e97":"setHouseAddressOne(address)","a31e88c2":"numIntervals()","a31f2c52":"partner2_voted_update_prenup()","a31f61fc":"setGroupCap(address[],uint256)","a31f79fb":"slopeReleasePercentage()","a31ffa30":"setCtuContract(address)","a3201daa":"setPrices(uint256)","a3208c1e":"addUserIntoBlacklist(address)","a3210e87":"sendeth(address,uint256)","a3221c8e":"step8()","a3223d50":"ETHER_MIN_CONTRIB_USA()","a322accf":"tokenFallbackExpanded(address,uint256,bytes,address,address)","a322c40e":"toString(int256)","a322d49e":"FirstTradingEcosystemCoin()","a323a748":"SBT()","a323af85":"hasTwoStepWithdraw()","a323bdb4":"currentPublicSale()","a3240455":"offerStarForSale(uint256,uint256)","a3246549":"stageOneClosed()","a324ad24":"getMonth(uint256)","a324cca0":"optimalLog(uint256)","a324ed9f":"BurnUnsoldToken(uint256)","a324f8bf":"tanksBeforeTheNewTankType()","a32508a1":"Carpati()","a3262e57":"burnCoin(uint256)","a32710eb":"setRole(address,address)","a3273535":"tdeDuration()","a327a958":"numCourse()","a327c45d":"dev1()","a328f90b":"_nextBudgetStartAndEndAndOfficalVotingTime()","a3293c0e":"handToCards(uint32)","a32a6737":"setTotalDeposit(address,uint256,address)","a32ac9e1":"Bitcoin_IDToken(uint256,string,uint8,string)","a32af535":"depositAndFreeze(address,address)","a32affeb":"loadEarlyParticipantsWhitelist(address[],uint256[])","a32bf597":"getCurrentRound()","a32c3bd6":"GetBounty(address,uint256)","a32cb608":"getReverseRate(address)","a32ce11e":"approvals(address,address)","a32e935a":"allocateTokenForTeam()","a32f0f41":"testFailControllerUnapprovedTransferFrom()","a330814c":"unregisterAuditor(address,address)","a3316ccc":"RATE_SALESTAGE7()","a3318359":"sendPrizes()","a331939d":"freezeAdmin()","a331cd38":"toKeyValue(uint256,string)","a3322a12":"getFilesCount()","a332853a":"futureDevelopmentFundAddress()","a3330574":"checkAndMint(uint256)","a333658f":"addTreasuryManager(address)","a333f96d":"LogRefundProcessed(address,uint256)","a33467cf":"getClue2()","a334edf6":"consumeWine(uint256)","a3358ae4":"REAPER_INTREPID_EXTRACTION_BASE()","a335b828":"FUS()","a337840c":"setGuardianRune(uint256,uint256)","a338bd2c":"showTopBonusBalance()","a338eba5":"sendTokens(address[],uint256)","a3393a35":"getDrawEthAmount(uint256,address,uint256)","a3395a52":"searchTicketsXaddr(address)","a339aaf7":"addOracles(bytes4[],address[])","a339abd5":"crowdsaleOpeningTime()","a339c18f":"ACNNIco(uint256,uint256,uint256,address,address)","a339c21a":"addContractTestToBounty(address,address)","a33a5225":"allRefererTokens()","a33b7510":"shareAddEtherValue()","a33bea16":"GENEOSSale(uint256)","a33c0972":"tokenAllocToCompany()","a33cbc55":"TCI_admin()","a33d4968":"Tripler()","a33d5d9d":"EthDev()","a33d652e":"setFunding(uint256)","a33dd801":"setTreasuryBalance(uint256)","a33e1d16":"drapcoin()","a33e6b07":"AccountFrozen(address,bool)","a33e8d62":"RxEALTokenContract()","a33ed39d":"numRef()","a33eff5a":"createResource(bytes32,bytes32,bytes32)","a33f3939":"setNetwork()","a340295a":"setPhoenixOwners(address[19])","a340ceac":"transfekbolOwnership(address)","a340cf79":"paid(address)","a340d587":"offlinePurchase(address,uint256)","a3414653":"COIN_COST_ICO_TIER_1()","a3429689":"TaiCoin()","a3435da5":"BONUS_LEVEL_3()","a3451568":"airdropBatchTransfer(address[],uint256)","a3454712":"AssetCreated(address)","a34560be":"updateEtherCap(uint256)","a34574f0":"gamers()","a346b62d":"CaptainKitties()","a346e536":"week_winner()","a3472270":"mock_getAddress(uint256)","a347ef84":"calcpustprice(uint256,uint256)","a348ea79":"contests(address)","a34945db":"maxAllowedBetInEth()","a3494fdc":"expectRefund(uint256)","a349bfa2":"addOwner(address,uint256,uint256)","a349d683":"FRP()","a34ad6b6":"clockmint()","a34bbf51":"getGeneralInfo()","a34c6716":"testHashing(address,uint256,address,uint256,uint256,uint8,bytes32,bytes32,bytes32)","a34cc845":"win(address)","a34d2ff7":"votingBymy(bool)","a34d42b8":"setContractOwner(address)","a34d5312":"registryRequestVendor()","a34d5f82":"GiveBlockReward()","a34d7c11":"flipCoinWithEther(uint8,uint8)","a34d9270":"setMinInvestedLimit(uint256)","a34d942b":"FUXEToken()","a34dffba":"SILVER_AMOUNT_NDC()","a34e5990":"setTier(uint256,uint256)","a34e9e66":"approveBcoupons(address,uint256)","a34edc03":"assertTrue(bool,string)","a34f42a9":"LogRandom(uint256,uint256)","a34f82f4":"summFounders()","a34fc5ac":"_lockTokens(address,uint256)","a350539e":"makeBid(uint32)","a3508b17":"getOpenedStageIndex()","a35132ac":"SMSReward(address)","a3515b98":"initializeWeekData(uint256)","a352f1a8":"calcSHA3(bytes)","a3536b0c":"calculateHolderPiece(address)","a353c600":"Ponged(uint256,string)","a35523da":"currentLoanDayTime()","a356fdf3":"getPreICOPercentage(uint8)","a3577e93":"depositFunds(bytes,uint8[2],bytes32[2],bytes32[2])","a357880d":"whitelistedAddrs(address)","a3580695":"inSpecialSalePeriod()","a358aa18":"_transferFromInvestor(address,address,uint256)","a35a319b":"delFromBlackList(address)","a35aae9c":"roundID_()","a35ae3ab":"Bam()","a35bc497":"remainTime(uint256)","a35bd437":"toUSD()","a35bd591":"newRound(uint256)","a35bfcac":"ownerRemoveRole(address,string)","a35cad77":"maxLeaders()","a35cfa22":"make_move(uint256,uint8,uint8,uint8,uint8)","a35d631a":"PausableMock()","a35d6dd6":"rDEX()","a35d78a6":"_approvedGen1(address,uint256)","a35da419":"setlock(bool)","a35e617f":"setMaxCount(uint256)","a35e83ea":"getReplay(uint256,uint256)","a35f9514":"calcDstQty(uint256,uint256,uint256,uint256)","a360098f":"Immigration(address,address)","a360b26f":"Migrations()","a361b184":"move(bytes32,bytes32)","a3624b72":"finalizeTransferAddressType()","a362858a":"EthereumCashPro()","a36298c7":"totalLimit()","a362cf0c":"TrueWorld(uint256,string,string)","a363f269":"watchMovie()","a3641c84":"card_metal_first()","a364b5c1":"setProposalNames(bytes32[])","a365bd9f":"BaseToken(string,string,uint256)","a365f3cc":"Util()","a3666d23":"weekTwoPriceRiseBegin()","a367b891":"SplitPhaseDistribution(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","a367d99a":"investStart()","a367e565":"setIBalances(uint256[],uint256[])","a368107b":"SetRecordType(uint32)","a369658c":"TARGET_EVE()","a369b0ac":"depositsClosed()","a369bb28":"SaleWallet(address,uint256,address)","a36a0551":"createCarrierFromVault()","a36a48a5":"ETH500on719()","a36a7526":"setOp(address)","a36b15d0":"enableBundlingMultitoken(uint256)","a36b8af1":"LogItemModified(address,uint256,uint256,bytes32,bytes32,bytes32)","a36badd7":"hasJobRecommendations(address,address,uint256)","a36be43a":"SetFreeYOU(uint256)","a36be9a1":"paybackDeadline()","a36c2cbe":"informarOng(address)","a36c8ec2":"UpdateContractorAddress(address)","a36db282":"SendLCRTokens(address,address,uint256)","a36ddfae":"_0xForkTokenToken()","a36f127e":"removePresetTransfer(address)","a36f259d":"campaignOf(address)","a36ff98b":"team1Points()","a36ffd4d":"ADEToken()","a37173e9":"transfer_left_funds_to_project()","a37218ed":"MAMECOIN()","a3721adc":"contractCreationBlockNumber()","a37330ea":"getDestroyedWhenRoundOver()","a3743afc":"getProjectHour(uint256)","a374480a":"placeValue(address)","a3744828":"GetPriceByN(uint256)","a3747fef":"register(bytes,bytes)","a375de4f":"addTokensToBank(address,uint256)","a37641ff":"MAX_RING_SIZE()","a3766f88":"tokenVendor()","a376c19d":"setEventResult(string)","a377104c":"init(string,uint256,uint256,uint256)","a377b34e":"YoloToken(uint256)","a377ff17":"setHorseDataAddr(address,address)","a3787858":"resumeBlockNumber()","a37889a9":"createPromoGirl(uint256)","a378bba5":"gameEnds()","a3792985":"getBonusDropsOf(address)","a37936f9":"SuspendEmployee(address,uint32)","a379e626":"ownerPerThousandShareForBuying()","a37a3859":"configPerFund()","a37a778f":"SetIPR(string,string,address,string,string,uint256,string)","a37ba32a":"duration(bytes32)","a37be00f":"transferBackTo(uint256,address)","a37be75f":"ethBase()","a37c314d":"set_iconiq_tokens(address,address,uint256)","a37ccabc":"PositionBought(uint256,uint256,uint256,address,uint256,uint256)","a37d1556":"refAmount(address)","a37da615":"showInvestedNum(address)","a37dec33":"calculateWineSell(uint256,uint256)","a37e66f5":"ethPendingManagement()","a37e6f69":"failedByDeveloper()","a37f00f7":"getItemByTokenID(uint256)","a37fd390":"setHomeAdv(uint256,string)","a380dcb9":"wpp()","a381de54":"bonusAddress()","a382aee2":"fourthExchangeRate()","a382edfd":"SeeleGold()","a38320e6":"TITANToken()","a3833a13":"balanceOfColdWallet()","a3848b1a":"getMonsterIVs()","a384af00":"market_BuyForSale(uint256)","a384d6ff":"lowerBound()","a38591fc":"test_percOf1()","a3863d81":"buyTokensLowLevel(address,uint256)","a38717f4":"exFeeTotal()","a3875883":"etherPriceUSDWEI()","a387cf34":"closeTokenSale()","a3885413":"withdrawOwner(address,uint256)","a388a836":"DDAContract(address)","a3893a33":"changeExchanger(address)","a3895fff":"changeSymbol(string)","a389783e":"isApproved(address,address)","a389ef53":"receiveDeposit(uint256,uint256)","a38b68cb":"nonzeroAddressesLengthForApi(uint256)","a38b8469":"TokenADSVENTURE()","a38b9a19":"printQuotation()","a38c48b6":"createProductionUnit2Beta()","a38ce2b4":"revokeAddress()","a38deeab":"Grid(uint16,uint256,uint256,uint256)","a38eb622":"pauseBuy()","a38f18a0":"RedBlueToken3()","a3907d71":"enable()","a3908e1b":"convert(uint256)","a3912ec8":"receiveEther()","a3916164":"withdrawInvestments()","a391c15b":"div(uint256,uint256)","a3922eac":"setCategories(address,uint256,uint256)","a3926f14":"PixelsMain()","a392f54a":"giveMeCoins(uint256)","a3934de4":"Upgrade(uint256,address,address,address)","a39385de":"transferWithReferenceCallGas()","a393dc44":"_totalsupply()","a393fb0f":"reducemoney(address,uint256)","a39417f9":"LOG_NewBet(address,uint256)","a39495f0":"isPreallocated()","a395e2cc":"TPLAYToken(uint256,string,string,uint8)","a3961207":"amountOfRedemptionPayouts()","a3964cb9":"toB32(bytes,address,bytes)","a396541e":"getPongvalTxRetrievalAttempted()","a397d8e0":"getUnusedBalance(address)","a398063a":"setEmergentHalt(bool)","a3980dd7":"Readycoin()","a3988500":"CloudexchangeCrowdsale(uint256,uint256,address)","a398b89b":"receivedEther(address,uint256)","a39953b2":"startCrowdsale()","a399eb76":"ZoharTC()","a39a2b76":"dropUnitPrice()","a39a45b7":"replaceOwner(address)","a39a70a9":"developReserveTimeLock()","a39aaec6":"getCompte_37()","a39ab3a3":"bla(address)","a39ad747":"minVote()","a39b10d2":"lastBlock_a17()","a39db022":"changeBonus(uint256,uint256,uint256)","a39dc9be":"HOUR()","a39e1149":"getSECOND_STEP_MULTIPLIER()","a39eede8":"settleAssets()","a39f7449":"startTimer()","a39f9712":"sendTokensAfterBuy(address,uint256)","a39fa2f6":"VPE_address()","a39fac12":"getAddresses()","a3a06c54":"endICOPhase()","a3a0ee24":"evFreeze(address,uint256)","a3a183c1":"overflow(address)","a3a187cf":"TokenBought(address,uint256)","a3a1cd6d":"getNumberOfKnownPropertyAddresses()","a3a1d015":"failUserRefund(uint256[])","a3a27105":"stakeholderPayment(address)","a3a402a7":"deletefromblacklist(address)","a3a40323":"ArtificialNeuralNetwork()","a3a40ea5":"getCurrentPhase()","a3a4851a":"deliveryReject(address)","a3a48785":"unsetClaim(uint256)","a3a4a18b":"test_claimShares_emptyFeePool_isTranscoder()","a3a4ba31":"createChild()","a3a51983":"updateCurrentStage()","a3a5650a":"currentStageMaxSupply()","a3a6a43e":"approveUserKYC(address)","a3a6c73e":"_isIdExisted(string)","a3a7647c":"tier1Count()","a3a7b804":"changeMaxGasprice(uint256)","a3a7e7f3":"transferAll(address)","a3a81d40":"totalBGX()","a3a82678":"collectRef(address)","a3a9196a":"dexTestNormalTransfer(address,address,uint256)","a3a93721":"SYLVIe()","a3a9d67b":"AdviserCasperToken()","a3aa1913":"balanceDetails(address)","a3ab5045":"isNewTile(uint16)","a3aba50e":"referrerEnable()","a3ad1676":"isPurchasedEpisode(uint256,address)","a3adb958":"transferToggleRequester()","a3ae2f5c":"award(uint256,address)","a3ae88a0":"totalUSD()","a3b01f23":"intoverflow_add(uint256)","a3b0bff4":"getPersonalStakeActualAmounts(address,address)","a3b0c661":"setLineUpEnable_default(uint256)","a3b1dc52":"logEscapeHatchChanged(bool)","a3b2363d":"parentAddress(address)","a3b24dcd":"getSumsHash(address)","a3b2938d":"updateStatusInternal()","a3b2c41e":"readArticle(bytes32)","a3b34190":"unlockSecond()","a3b3fff1":"getVotingToChangeMinThreshold()","a3b42cba":"register(bytes8,bytes8,uint256)","a3b4ab48":"BBPToken(address,uint256)","a3b4b07f":"ACL_APP()","a3b6120c":"dateStart()","a3b62bc3":"AdminRemoved(address)","a3b65d29":"getarg_3()","a3b80993":"WorkValley()","a3b8cd3b":"_equipDownOne(address,uint16)","a3b922ca":"buyPandaERC20(address,address,uint256,uint256)","a3b959da":"change_dev(address)","a3b9b8d1":"receivePaymentForOraclize()","a3bbc294":"galleassTransferFrom(address,address,uint256)","a3bbf81b":"USACOIN()","a3bc3fce":"getFillOrderMinGasNeeded()","a3bc6163":"getMessageGas()","a3bdc655":"getRemainingTimeTillExpiration()","a3be094d":"countTokens(uint256)","a3bef4d7":"numVotes()","a3bf5b9a":"revokePermission(address)","a3bfdf47":"closeSession(uint256)","a3bfe069":"_sumActivePerks(uint8[32])","a3c07c6a":"removeHatchingTime()","a3c0a477":"crowdsaleIsActive()","a3c1954e":"supporter()","a3c1d83d":"forgiveMeOnBehalfOf(address)","a3c28dfc":"eventExists(uint256)","a3c2c462":"totalReceived()","a3c441e7":"setAdvisoryWallet(address)","a3c49da0":"DollarCoin()","a3c50b32":"orderDetails(bytes32)","a3c66c1d":"notEqual(bytes32[],bytes32[],string)","a3c68e3d":"CancelGameAfterResultsPublished()","a3c86bef":"AcademyToken(address)","a3c88b31":"addInternalBalance(uint256)","a3c8ef7a":"signedByWhiteHat()","a3c9df3f":"plutocrat()","a3c9fc7d":"_withdrawTo(uint256,uint256,uint256,uint256)","a3ca17b2":"getUSDETHPrice()","a3cb3e97":"removeHatchingTimeWithToken(address)","a3cb679d":"getTotalBets()","a3cbf67d":"NewBOP(address,address,address,uint256,bool,uint256,string)","a3cc8b9c":"changeRateUSD(uint256)","a3cd2d78":"nextReward(uint256)","a3cd4065":"ReceiveBTC(address,uint256)","a3cf3ec0":"lowestAddressReserving()","a3d07452":"fightAuction()","a3d2078b":"TokenSaleOpened()","a3d23e52":"round2Cap()","a3d3a265":"setCreditBond(address)","a3d4e4b5":"buyItem(uint8,uint8,uint256,uint256)","a3d53934":"MegaToken()","a3d5e8e0":"_update(uint256,string)","a3d5ec39":"PlynToken()","a3d646fe":"ETHEUR()","a3d658dc":"extendLiquidationPeriod(uint256)","a3d6f9a9":"publicKeys(address)","a3d7bd43":"doSend(address,uint256)","a3d823ad":"changeORACLIZE_GAS_LIMIT(uint256)","a3d87805":"TerraToken(uint256)","a3d88453":"isAvailableAccount(address)","a3d8fdd5":"totalAccessorySeries()","a3d94402":"safeMathAdd(uint256,uint256)","a3d9c3d1":"ApprovalHash(bytes32,bytes32,uint256)","a3dab216":"setOpeningClosingTime(uint256,uint256)","a3dc65a7":"wipe(address,bytes32,uint256)","a3dc8a7a":"exrate()","a3dcb4d2":"receiverAddr()","a3dceacb":"MessageSent(uint256,uint256,string,string)","a3dd2619":"getCurrentStatus()","a3dd2b3e":"projectInfo(address)","a3dd3aa7":"setGBT(address)","a3ddc24a":"purchaseDeposit(address,uint256)","a3de9354":"createDividendWithCheckpoint(uint256,uint256,uint256,int256)","a3def923":"create(address,bytes32)","a3df30b4":"GIDe()","a3df870a":"hentaisolo()","a3dfc364":"StartGame()","a3dfcb0d":"_setUniqueValue0(uint256)","a3dfdf30":"read_i64_array()","a3e135fa":"reclaimTokien(address,address,uint256)","a3e14d74":"getLowerBoundBlocksTillGameEnd()","a3e1f666":"getCreatorMetadataOfHistoricalMetadata(string,uint256)","a3e20625":"giveReputation(address,bool,string)","a3e20d71":"transferUnPaidFundAccount(address,uint256)","a3e29360":"ownedTicketIdList(address)","a3e298d1":"VIBETPerEther()","a3e2b1de":"getProjectArbiter(bytes32)","a3e2ce24":"getTokensAndAmounts()","a3e31246":"setLucky()","a3e3a8e0":"withdrawEthPool(uint256,uint256)","a3e486d1":"ptc_balance(address)","a3e4c0c4":"setRandomizer(uint256)","a3e667b3":"releaseMany(uint256,uint256)","a3e67610":"tokenOwner()","a3e7061d":"getPaintingIdAtIndex(uint256)","a3e76c0f":"receive()","a3e787b5":"FITToken()","a3e831b4":"NewTokenFromFactory(address,address,uint256)","a3e860fe":"DEFAULT_RATE()","a3e8b6db":"MetrumcoinShares()","a3ea1376":"removeListingInternal(uint64)","a3ea478f":"setTier1Participants(address[])","a3eb6436":"TOKETH_PRESALE_TWO()","a3ebb0b3":"getConsideration(uint256)","a3ebeab7":"testConcatMemory4Bytes()","a3ec138d":"voters(address)","a3ec5616":"next(bytes,bytes,bytes,bytes,bytes,bytes,bytes,uint256)","a3ecbc33":"DSPUnregistered(address)","a3efc756":"transferPreICOFunds()","a3f144ae":"OFFSET19700101()","a3f1bd35":"getDouble()","a3f1ee91":"RequirementChange(uint256)","a3f22739":"payout(uint256,uint256,bytes32,bytes32)","a3f2a813":"StartsAtChanged(uint256)","a3f2d2b5":"SZA(uint256,string,string,uint8)","a3f31b80":"teamPayment(address)","a3f36da3":"ProRataDistribution()","a3f3dd32":"Verifier(uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[])","a3f424c2":"verifyProof(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[10])","a3f4df7e":"NAME()","a3f5a178":"approveTakeover(uint256,address)","a3f5c03d":"launchInvestment()","a3f5c1d2":"nexus()","a3f66b46":"newQuestion(string)","a3f67d6d":"playersCount()","a3f70ed3":"party_a()","a3f7c989":"enableStorage(bool)","a3f7e26d":"finishMintingIssuer()","a3f8eace":"releasable(address)","a3f991a5":"totalPot_()","a3face0b":"setInteractionPrice(uint256)","a3faef60":"MicroBitCoin()","a3fb5917":"getFirstOrder()","a3fb8f15":"getRaisedPOLY()","a3fbbaae":"changeManager(address)","a3fc136a":"signedApproveSig()","a3fc32c8":"getWLInfo()","a3fc81cb":"buyTokensViaBackend(address,uint256)","a3fca677":"LogBuy(address,address,uint256,uint256)","a3fcafb9":"soldCoins()","a3fcf9bc":"operationsPercentOfTotal()","a3fd6d0e":"feePaid(bytes4,uint256)","a3fdfee3":"deny()","a3fe0dc7":"userCrateCount(address)","a3fe70cb":"exchangeEnd()","a3ff0ea2":"issueAsset(bytes32,uint256,string,string,uint8,bool,address)","a3ff31b5":"getTokenStatus(address)","a3ff428e":"angelCardSeriesCollection(uint8)","a3ffac0d":"td()","a400594d":"lockAddress(address,address)","a4009e23":"TEST_MODE()","a400be54":"coinSendSameValue(address,address[],uint256)","a401d24d":"assignToken(address,uint256)","a401e585":"withdraw_privatefund(bool)","a4036b1c":"getAdPriceHour()","a4039098":"StartCompetitionEvent(uint32)","a4039a2a":"createNonRepeatableVpfFactory(string,bytes32,uint256,uint256,int256[])","a404f291":"microRate()","a40544c3":"notifyCancelSellOrder()","a4055f62":"freezeAccounts(address[],bool,bool)","a40668f5":"testDeregisterProduct()","a407db23":"GHK()","a407ee79":"bytes32ToAlphabetString(bytes32)","a4083849":"right44(uint256)","a4086854":"approveTransfer(uint256,address)","a4093718":"issueToken(uint256,uint256)","a4094a0d":"calculateFeeForAccount(uint256,uint256,address)","a409eb7b":"hasRequested(address)","a40a485f":"deathData_v3()","a40a99ac":"getInsertPointForNumTokens(int256,address,uint256)","a40ae4b7":"_uintToBytes(uint256)","a40bc352":"crowdSalePause()","a40c0a54":"USDGamblingToken()","a40c5221":"updateTokenAmount(address,uint256,uint256)","a40c8ad0":"addGenesisCatGroup()","a40cd3f3":"minContributionInWei()","a40cee9c":"updateIdentityImageURL(address,bytes32)","a40d32fe":"minPaymentAmount()","a40e0b91":"testGoalReached()","a40edb07":"processVerification(bytes32,string)","a40f1796":"prefixedHash(address)","a40fbd2b":"makeKebabs(address)","a410424e":"isMoneySent()","a4109017":"VanityTransfered(address,address,string)","a410a7f2":"getParticipantTickets(address)","a410f4b1":"changeFeePercentage(uint8)","a412c6fc":"getRules(string)","a412f87c":"verifyInvestment(address,uint256)","a412fcc7":"defineType(string,uint8,uint8,uint32,uint8,uint32,uint8,uint32[5],uint32[5],uint32[5])","a413245a":"deductFromBond(address,uint256)","a41347e3":"usersCanTransfer()","a4136272":"MAX_TOKEN_SALES()","a4136862":"setGreeting(string)","a4144681":"RK40Z()","a414b00d":"SUNToken()","a414b379":"addContact(address)","a414e089":"Dimacoin()","a415833b":"numPurchasesOf(address)","a415965c":"refillMultiSigMintPool()","a415a93e":"initWithShips()","a415b8eb":"getCCH_edit_31()","a416b263":"charAt(bytes32,uint256)","a416b48c":"getActionCount(uint256)","a417357c":"unpauseTokens()","a419165e":"TokenCappedCrowdsale()","a41942a4":"transferCuratorship(address)","a419f1e7":"NewPlayerAdded(uint256,uint256)","a41a9445":"getStopTransfer(address)","a41b3887":"setPrefixPrice(uint256,uint256)","a41b9c31":"unconfirmAddress(address)","a41d0584":"fixAddress(address,uint256)","a41da348":"fomo3d()","a41dedcc":"testAbs()","a41e61a4":"minSaleBalance()","a41e7d51":"updateERC165Cache(address,bytes4)","a41f0069":"GershToken()","a41fd917":"getUnprocessedQueryList()","a41ff1e5":"maxMintingDays()","a4201125":"sanToLower(string)","a4202504":"getPhaseSold(uint256)","a4202615":"makeAdoptionOfferToAddress(bytes5,uint256,address)","a4204e39":"getQuotes()","a42214b2":"cancelAuctionEmergency(uint256)","a422b761":"tokensIssued(address)","a4230bd5":"addAdmin(address,bool)","a4238d31":"receiveBalanceUpdate(address)","a4245527":"getPaintingOriginal(uint256)","a424fa49":"NPXSToken()","a42533c8":"tubParamUpdate()","a4254fb4":"couponTokenBountyAddr()","a425b752":"destroyStake(address,bytes32,uint256,uint256)","a4262254":"calcFib(uint256)","a4268de6":"oracleItQuery(uint256,string,string,uint256,uint256)","a426cd19":"validPLAContract(uint32,uint32)","a4275535":"XTYF()","a4276533":"getProposalNum()","a427c5d9":"bonus(uint256,address[],address,uint256[])","a427ee36":"FruoCoinBETA()","a428033f":"minechaincoin(uint256,string,uint8,string)","a428517b":"Converted(address,uint256)","a4288d17":"tokensForReservedFund()","a429845e":"newCrowdsale(bytes32,uint256,uint256,uint256,uint256)","a42aa488":"checkRevert(uint256)","a42ac803":"getBonusAffiliate(uint256)","a42ad8b3":"NomuraDynamicsCoin()","a42b0d88":"advisorsPool()","a42b6bf1":"setStorageContract(address,bool)","a42cb160":"updatePlayerFund(uint256,address,uint256,uint256,uint256,uint256)","a42d630c":"SetupMultipliers(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","a42dc008":"newKudosToken(string,string,string,uint8,address)","a42dce80":"setFeeCollector(address)","a42e16fd":"MultiSig(address[],uint256)","a42e36c6":"scheduleTransaction(address,bytes,uint8,uint256[5],uint256)","a42ea491":"MrFibreToken()","a42ec1bc":"reserveWallet(uint256)","a42ecd5c":"setRealRef(address,uint256)","a42ef788":"potSwap(uint256)","a42f126c":"charityClaim()","a42f1edb":"market1()","a42f3f9d":"getTAOCurrencyBalances(address,address,address,address)","a4316c46":"MarketingToken()","a4325485":"getCreatorBalance()","a432cdb0":"Tier_Rainmaker()","a432e6d6":"switchToNextPeriod()","a4331929":"createNew()","a433a0b9":"addRecordByProvider(bytes32,address,string,string)","a433d5c6":"IsActiveUser(address,address)","a433f390":"approveAndTransferFundToCreator()","a4341ab0":"setCount(address,uint256)","a4343ae9":"onContribution(uint256,address,uint256,uint256)","a43569b3":"getValidatorDescription(address)","a43655c4":"rejectRequestPause()","a4366a8a":"processPayment(address,uint256,uint256,uint256,bool)","a4368de7":"addBonus(string,uint256,uint256,uint256,uint256,string,uint256,string,uint256)","a437164b":"assignUserWallet(string,address)","a43772bd":"thirdXRChangeBlock()","a43796ce":"getSecretSigner()","a437ab52":"setDevelopersFee(uint8)","a437e07a":"signAuthorship()","a4381dd4":"StanleyToken()","a438d208":"VOTING_DURATION()","a43914da":"getRootEdge()","a4399263":"finalise()","a439d3fa":"ChangeOfRules(uint256,uint256,int256)","a43b2ed0":"Test6()","a43b5e46":"buyWeapon(uint256)","a43b7cd5":"carTaxiToken()","a43b92a2":"tournamentIncentiveCut()","a43b9423":"triggerPreJackpotLimit()","a43be57b":"endPresale()","a43c49fc":"mul16(int16,int16)","a43c5415":"lastBlock_a3Hash_uint256()","a43c6002":"getTokensByGame(uint32)","a43cbe1c":"setThirdPartyDepositorDisabled(bool)","a43d12a7":"getParticipantesB()","a43d76e9":"isValidPrice(uint256,uint256)","a43d8654":"getSeason(uint256)","a43dc510":"yesBuyer(uint256,uint256)","a43e04d8":"removeContract(bytes32)","a43e0c2b":"calclulateBonus(uint256)","a43ea59b":"PublicSale(address,address,address)","a43fecbc":"setUsername(bytes16)","a4406bcd":"placeSellOrder(uint256,uint256)","a44081d1":"startPhase1()","a440a190":"getKeyPrice()","a440b21a":"setPortfolioManager(address)","a440dd87":"sigExists(bytes32,address)","a441698b":"getStockOrderInfo(bool,uint256,uint256,uint256)","a441c302":"operationAddress()","a442414f":"sumInvested()","a4425c55":"lastInvestorsProfitSum()","a442b824":"respawnGame()","a442d820":"verifyExtraData(bytes32,bytes32,uint256)","a4430321":"eachPUSTprice()","a4438334":"updateSettings(uint256,uint256,bytes32)","a4439890":"sweepUnallocatedDividends()","a4439dc5":"commitPeriodActive(uint256)","a444502b":"whitelistAccount(address,uint256)","a4447515":"getMakerBetBasicInfo(uint256,address)","a444ae41":"sourceContract()","a444f5e9":"run(uint256)","a4453336":"depositGTA(uint256)","a4453a96":"totalBuyersMapping()","a4453ecf":"splitEth()","a445dc5a":"tokensBoughtWithBTC(address,uint256)","a445f30d":"setFeeDistributionAndStatusThreshold(uint8,uint16[5],uint256)","a4464252":"priceUnitFix(uint256)","a447089e":"eniggerToken()","a447405e":"_getTravelPrice(address,uint256)","a447ff4f":"DXContracts()","a4482f41":"setUniquenessIndex(uint32)","a448afda":"BalanceChanged(address,uint256)","a448f8e0":"OuterContract()","a449a62e":"setDSTWalletLMNO(address)","a44a00c3":"areTokensSold()","a44b1756":"getMyDrugs()","a44b47f7":"TotalSupply()","a44b6b74":"setColor(uint256,string)","a44cff28":"CypressOrganization(bytes,uint256)","a44d0eb3":"MAKJLEB()","a44da065":"NigerTokenICO()","a44dd0f1":"ico2Cap()","a44de4e7":"decreaseStepPct()","a44e09db":"wadmin_burn(uint256,bool)","a44ead73":"ApplyforCertification(string,string,string,string,string,string)","a44eda3c":"checkWithdraw(address,uint256,address)","a44f40e3":"optionPoolMembersUnlockTime()","a4502cb8":"setExportFee(address,uint256)","a45066e5":"SingularityTes25()","a4516bb1":"SnapshotTaken()","a4516fad":"currentGameNumber()","a4520aee":"collect(address[])","a45230ec":"get_amount_sell(uint256)","a4530b4b":"testUpdateProgress()","a4534ef7":"remainingSupply_()","a453b639":"wuguAddr()","a4546876":"roots(address)","a454b07b":"checkString(string)","a454c5dc":"unlockStep()","a45563ed":"UpdateSellAgentBounty(address,address)","a4563e03":"totalPendingWithdrawals()","a4575296":"pepFarm()","a457c2ae":"clientSeed()","a457c2d7":"decreaseAllowance(address,uint256)","a457e1c0":"purchaseAsset(uint256)","a457f27f":"card_titanium_minamount()","a45858b6":"setzUint256Array(uint256[2],int256)","a458e34f":"setNewContractManager(address)","a459ae28":"collectSellFee(address)","a45a7371":"executeUpdateTransferFeeRateProposal(uint256)","a45b1795":"getAllCardsModifierSecondaryVal()","a45c793f":"restore(uint8[176],uint8,uint8)","a45cbbf4":"sendAdvisorsTokens(address,uint256)","a45cd953":"canPurchase(address,address,uint256)","a45d82bd":"signArchive(bytes32,string,string)","a45e11ab":"orderMatchBuy(uint256,uint256,uint256,uint256,uint256)","a45e1a6e":"getTokenCounters(uint256)","a45e7cb5":"addEntry(string,string,string,string,string,address)","a45ee32c":"nameOfIdentity()","a45f2057":"caltoken()","a45f4bfc":"kittyIndexToOwner(uint256)","a45f5685":"setOwnerEarnings()","a45f71ff":"increaseApprovalPreSignedHashing(address,address,uint256,uint256,uint256)","a4604a33":"changeBuyFeePercent(uint256)","a460b817":"updateTicketStatus(uint256,uint8)","a460bd6c":"presaleRemaining()","a4618691":"squak()","a4619682":"registerWithDAI(uint256,address)","a461cadf":"WHOLE_ETHER()","a461fc82":"SELFDESTRUCT_DELAY()","a4620d67":"shareholder3()","a4623cc4":"addHero(string,address,uint256)","a462f87f":"AICoinToken()","a462fb7b":"getFinalAnswer(bytes32)","a4633704":"NotifyMe(address,address,uint256)","a463685f":"AllocatedCrowdsale(address,address,uint256,uint256,uint256,address)","a463a500":"setUpgradeHasBegun()","a464d265":"editor()","a4659ba2":"stakeConfirmed_Eth()","a465e6ba":"committeeKickVoters(address,address)","a46841e1":"cnyEthRate()","a4689d48":"getroundendtime()","a4699cad":"resetWithdrawls()","a469b809":"getBetAmount(bytes32)","a469e5aa":"getOwnerItemIds(address)","a46a1219":"AcceptRouting(bytes32,bytes32,uint256,bytes)","a46a891e":"fromBase(uint256,bytes8)","a46a96d9":"calculateRegionSalePixelPrice(address[16],uint256)","a46afef1":"getSponsoring(uint32)","a46b3e9b":"treasuryDemurrageAmount(uint256)","a46b6593":"sendCandy(address)","a46c3637":"getWinnerCount()","a46c792c":"assignAgent(address)","a46c8fee":"ItdFund()","a46d11dc":"gType()","a46dfb45":"ResolveChips(uint32[])","a46efdb5":"getTokensForPreSale(uint256,uint256)","a46f3c7a":"getLiveMaxBet()","a46fe83b":"numAssets()","a47001a8":"receiveEthPrice(uint256)","a470afa7":"Evernal(address)","a47255d7":"TimeWeekThree()","a472969c":"WithdrawFee()","a472c868":"_storeReward(address,int32)","a4754fac":"getValidated(uint256)","a475b5dd":"reveal()","a476f3d3":"demurringFeeNum()","a4776955":"setselfdroptoken(address)","a4785dfd":"ecverify(bytes32,uint8,bytes32,bytes32,address)","a47905cd":"getBondMultiplier(uint256,uint256)","a47abd0f":"testIsSuccessful()","a47ae542":"getCurrTotalInvest()","a47ae71f":"getCurrTypePrice(uint256)","a47b1a6c":"getContractsAddrs(address,address)","a47c4d64":"isAllocated3()","a47c6b84":"cofounderSwitchAddress(address)","a47ce954":"bonussale_TokenCap()","a47e7110":"AnnoMedal()","a47e713c":"ACCToken()","a47f519b":"CPCE()","a47fcc7c":"proposePartnerAllocation(address,uint256)","a4800172":"buyDiscountTTMByETH(uint256,address)","a48028aa":"valueOf(address)","a480ca79":"collectFees(address)","a481247c":"isKeyExist(address,address)","a48205cb":"emaValue()","a4821719":"buyToken()","a48255b7":"nextPVPBatleBlock()","a4828bca":"TrineChain()","a48296d9":"purchasePhoenix(uint256)","a484f413":"payJosh()","a48515fc":"castConstitutionVote(uint8,address,bool)","a48566ba":"serverSeed(address,bytes)","a487bcd8":"winners()","a487fd07":"ethFundsWallet()","a4893536":"_bonusToBettor(uint32,uint8,uint256)","a4898fd5":"deployContract(address)","a489a2c7":"sanityBounds()","a48a663c":"transferFromToICAPWithReference(address,bytes32,uint256,string)","a48bdb7c":"results()","a48be00b":"activateTokensForJury(uint256)","a48c98dd":"deployerAmount()","a48cef4a":"oracleInterfaceCountdown()","a48d9e70":"getIcoSupply()","a48de68b":"createPromoHero(uint256,address)","a48e1ff7":"BonusWithdrawn(address,uint256)","a48fb972":"_sendReward(address,address,uint256)","a49062d4":"MAX_LEVEL()","a490a697":"totalBadges()","a4923b8f":"placeIndexToOwner(uint256)","a492ef60":"Participant(string,address)","a4935f1f":"_tokenMetadata(uint256,string)","a4938313":"getAdvancedTransfer(bytes32,uint256)","a493b39f":"getAdPriceWeek()","a494411c":"allocateTokenForAdvisor(address)","a4945a07":"ftestnetico()","a494817b":"setIdle()","a4951771":"MeshPoint(string,address)","a4952f19":"LogPolicyPaidOut(uint256,uint256)","a4952f80":"getBytesName(string)","a49545ec":"useTokens(address,address,uint256,uint256)","a495c942":"set_topl_address(address,address,uint256)","a4963c0b":"SAPOVAM(address,string,string,uint256,uint256)","a49687d1":"stage4Deadline()","a4975aff":"raiseNumberOfCheckmarks(uint256)","a4978a15":"applyLOT(uint256)","a497d8c6":"privateTokenCap()","a497e674":"setAuctionDuration(uint256)","a4983079":"transferBalanceForPreSale(address,uint256)","a49886ce":"testToBytes32(bytes)","a499bc4a":"DECEX()","a49a1e7d":"setMetadata(string)","a49a42e1":"CrytoWorldCup()","a49bb55c":"currentRoundMultiplier()","a49c2bbb":"getBeneficiaryCash(bool)","a49cc76c":"createCurrency(string,string,uint8,uint256,string)","a49d03bc":"privateSell1Address()","a49d53a1":"SmartRevshare()","a49d6be2":"shekel()","a49e0ab1":"complex()","a49e4540":"mintCapInETH()","a49ea0ab":"rankOf(bytes)","a4a0d801":"valueOfContract()","a4a1485b":"createEthInvestorRequest(uint256)","a4a1a78d":"CertAdminAdded(address)","a4a1a9bc":"fightTeams(uint16,uint8,uint8)","a4a1e263":"getUsersCount()","a4a249d6":"quicksort(uint256[])","a4a2a9f6":"init(address,uint256,uint256)","a4a33638":"NAST()","a4a339ee":"doMint(uint256)","a4a3513c":"Accelerate(uint256)","a4a46f45":"LOG_InvestorEntrance(address,uint256)","a4a47582":"Pyrgressive()","a4a4c224":"setAngelLastBattleTime(uint64)","a4a5a46e":"EUNO()","a4a5e241":"setPrizeEndTime()","a4a5f550":"price_exponent2()","a4a6795a":"ReserveSupply()","a4a68e44":"userlogin(address)","a4a691ce":"parseResultCompatible(bytes)","a4a75c6e":"tokensSoldAmount()","a4a75edc":"registerDeal(address,address)","a4a7cf5c":"redeemWinnings(bytes32)","a4a83317":"emitChange(bytes32)","a4a85b22":"fund(address,address)","a4a8f8ea":"migrationHost()","a4a92dd0":"_createToken(string,address)","a4a94567":"setTokenContract(address,address)","a4aac6ec":"diff(int256[])","a4ab3e45":"buyerAddressTransfer(bytes32,address,address)","a4ab69cd":"cancelBuyOffer(uint32)","a4ac3e7d":"FrozenFu(address,bool)","a4acbcd6":"pregnantpuppies()","a4ad1a5f":"verEntidades()","a4adb24b":"createCourse(string,string,uint256)","a4adc2f7":"freezeTokens(uint256)","a4adc431":"fechVoteResultForCandidate()","a4adcde3":"getSingleGuessInfo(uint32)","a4ae32fd":"sampleBool(bool)","a4af1d1a":"totalPublicSaleStage()","a4afaeb0":"AutoKen()","a4b03f52":"internalLockAccount(address)","a4b06df2":"heapSort(uint8[])","a4b0a36f":"exchangeRateUSDToToken()","a4b159c0":"benefitMicros()","a4b16449":"transferTokensFromRetailersAddress(address,uint256)","a4b195ff":"numVoters(uint256)","a4b1b020":"transferLockedTokensBackToUser(uint256)","a4b1ce55":"scheduleCall(address,address,bytes4,bytes,uint8,uint16,uint256,uint256,uint256,uint256,uint256,uint256)","a4b31eb1":"bitWatt(uint256)","a4b32bd7":"modifyRent(uint256)","a4b3b042":"RDXToken()","a4b48828":"getOffer(address,address)","a4b52ef2":"hgt()","a4b5fa56":"blacklist()","a4b7459a":"transferFromToICAPWithReferenceCallGas()","a4b7f5ce":"resolutions(uint256)","a4b8a543":"sacarETH()","a4b8c2e7":"restart(bytes20,bytes32)","a4b910fb":"WithdrawToken(uint256)","a4b916e2":"mintB2BC(address,uint256)","a4ba2971":"addMemoryImageSlice(uint256,bytes)","a4ba5bdb":"Leonidas()","a4bad0ae":"vestingsBalance(address)","a4bb1324":"initGame(address,uint256,bytes32,bytes32,bytes32)","a4bb252e":"LogGameCreated(uint256)","a4bb43d2":"Beonbox()","a4bbded4":"MAX_ICO_SUPPLY()","a4bbf1a7":"LAUCHCONTRACT()","a4bc51d4":"PrivateSocialPlatform()","a4bce83c":"CSCToken()","a4bd7a20":"currentBoundary()","a4bd7b8d":"countApproval()","a4be2ea2":"HardClear()","a4be64a4":"warriorBlock()","a4beda63":"lockTime(address)","a4bef732":"userCancelOrder(address,address,uint256,uint256,address)","a4beffa7":"increaseInvestment()","a4bf594b":"CORENETCOIN(uint256,string,uint8,string)","a4c089be":"debug_finalizeBundleIPFS(bytes32,string,bytes32)","a4c0ed36":"onTokenTransfer(address,uint256,bytes)","a4c0fd51":"onlinenewsbalita()","a4c1e9c0":"depositToUser(address)","a4c3dfa4":"buff()","a4c3e789":"RUB_Omnidollar()","a4c44074":"setCashbackManager(address)","a4c4dfea":"WGNToken()","a4c4f172":"_arrayContains(uint8[],uint8)","a4c5bf66":"removeSkipPrice(uint256)","a4c64d78":"getContractDividends()","a4c6569b":"isWhiteListed(bytes32)","a4c673c5":"pauseInvest()","a4c6fcde":"allowEscrow(bool)","a4c756c7":"tokenAllocToTeam()","a4c7c7b3":"partner1()","a4c89322":"ethToTokens(uint256)","a4c8b35d":"moneyManager()","a4c93cab":"setDistributionSize(uint256)","a4c97967":"proof_of_public_key()","a4c9b0ca":"deleteTx(bytes32)","a4c9bb28":"VLOGCoin(uint256,string,string)","a4ca80be":"lockFile()","a4cae72b":"_createEtherDog(uint256,uint256,uint256,uint256,address)","a4caeb42":"periods()","a4ccd1ba":"breakevenLevel()","a4ce48c0":"addProposal(bytes32,uint256,bytes32)","a4ce8683":"create(string,string,uint8,address,string,address)","a4d1f29f":"BifrostToken()","a4d22c13":"enableDonation()","a4d28b62":"getMedalsBurned(uint16)","a4d33646":"setELIXAddress(address)","a4d4f070":"get_token()","a4d55686":"totalEthFundRecieved()","a4d575ce":"_forward(address,bytes)","a4d5a3a5":"airdropAmount(uint256)","a4d5a519":"TXwithCode(bytes32,uint256)","a4d5e30e":"removeHatchingTimeFee()","a4d66daf":"limit()","a4d66f1e":"calcReleaseToken(uint256)","a4d67d63":"finishGenerating()","a4d69fd3":"payoutMethodABI()","a4d6bb2b":"latestPayout()","a4d714c7":"addressToBytes2(address)","a4d72886":"PRE_ICO_RISK_PERCENTAGE()","a4d755ff":"setFactoryName(uint256,string)","a4d82f95":"Wallet6()","a4d840a8":"getInvestorInforMax(uint16)","a4d8b40a":"order2Shares(uint256)","a4d904ba":"foundersStake()","a4d91b02":"createtoken(string,string,string,string,string,string)","a4d924b6":"extractableFraction()","a4d95c76":"setRobotCoinContract(address)","a4d97569":"ACLYDCoinContract()","a4d99522":"setCryptaurRecovery(address)","a4da79a7":"_tokensOfOwner(address)","a4db2e9a":"initDao(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","a4db8c73":"BieberToken()","a4dbafbb":"batchReturnTokens(uint256)","a4dbbbf1":"joinWithCandy(address,uint256,uint256)","a4dd73cd":"isMinimumValue()","a4ddf312":"numberOfPunksToReserve()","a4de3c19":"setFeeAccount(address,bool)","a4de64c4":"isFundedMini()","a4df0758":"isClaimed(address,address)","a4df320d":"end_LOCKUP()","a4df6c6a":"freezeTokens(address,uint256)","a4df8ca1":"See_TokenPurchaser_Number()","a4dff0a2":"zzz()","a4e01230":"RamenContract()","a4e02fcc":"transferProfit(address,uint256)","a4e24173":"getUsersArtefactsIds()","a4e2d634":"isLocked()","a4e3374b":"transferDelegated(address,address,uint256)","a4e339c1":"validate(address,uint256,bytes32,bytes,bytes32)","a4e360c8":"getApprovals(uint256)","a4e4a7bb":"avatar(address,bytes)","a4e6dd3a":"coinDrain()","a4e85358":"getTEth(uint256,uint256,uint256)","a4e8e360":"enterFreeRaffle(uint256[],uint256)","a4e9bcb8":"vxtestPrivateSale(address,address)","a4ea471f":"getBoardRowDetails(uint256,uint8)","a4eacb34":"removeFromBountyProgramMap(address)","a4eaec5f":"targer()","a4eb5710":"needReleaseFor(address)","a4eba44d":"setPriceCoolingPeriod()","a4ebf74d":"CorsariumAccessControl()","a4ec0620":"getAllCoins()","a4ec11b1":"getStepFunction(uint256)","a4ece52c":"pop()","a4ed22b6":"testInsertLawyer()","a4edff47":"addNote(string)","a4ee7c18":"_computeCommission(uint256)","a4eed4dd":"setupWhitelist(address,bool)","a4ef2cbb":"setWhiteListAgent(address)","a4efc580":"lastPriceCheck()","a4f0d9b1":"setCut(uint256,uint256)","a4f15498":"projectedPrizeForPlayer(address,uint256)","a4f2613d":"bid(string,string)","a4f28bdd":"fundingMinInEth()","a4f29aad":"setTokenName(string)","a4f35b65":"minTransfer()","a4f3fa10":"getToday()","a4f4662f":"getOwnersTokenIndex(address,uint256)","a4f5b8c1":"bonusCreationRate()","a4f63ec8":"setBytesArrayIndex(bytes32,uint256,bytes32)","a4f6d5ce":"BeeGims()","a4f7c2b7":"getLeftChildI(uint256)","a4f82f27":"allocationOf(address)","a4f89235":"SALE0_CAP()","a4f91a2e":"remainingOwner()","a4f927d5":"certifyAccount(address,bool)","a4f939a1":"_touched(address,address)","a4fa75cf":"StartIcoStage()","a4fa8d57":"reward(uint256,uint256)","a4fac56e":"rateForOnePTM(uint256)","a4faf89e":"incentivesOut(address[],uint256[])","a4fd3cea":"getToken(uint256,uint256)","a4fd6f56":"isEnded()","a4fda741":"usedResidualAmount()","a4fde8bc":"player_declare_taking_too_long()","a4fefad6":"_currentSupply()","a4ff83f5":"warriorsByPlayer(address,address)","a4ffd7fa":"noOfICOPhases()","a5007da7":"openEgg(uint256,uint256)","a50097f2":"getUserEthVolumeSaldo(address)","a501123d":"doRollBet(uint256,uint256,bytes32,bytes32,bytes32)","a501553e":"getAssetLength()","a501ab39":"sendToMe()","a501e88d":"Content()","a5021a17":"getNodePrice()","a5025222":"addressExists(address)","a502aae8":"getNextGenerationId()","a502bfbd":"invest(address,uint256,bytes)","a503473a":"mul2Assert(uint256)","a50395cf":"totalPetCardSeries()","a504bd0d":"nextTradeEvent()","a50643b7":"getPrizePoolSize()","a506e5dc":"transferLand(uint256,uint256,address)","a5075567":"RegistrationAntique(bytes32)","a50776dd":"managementLocked()","a508ae0f":"P2TCToken()","a508dd1d":"OldCanYaCoin()","a509b030":"recentActivityIdx()","a50a1fe6":"remainingAmount()","a50b21c8":"getInputData(uint256,uint256)","a50c386a":"exFeeRate()","a50cd8e7":"votesFor(address)","a50cf84e":"ICO_PHASE2_PERIOD()","a50d81c7":"mintForOwner(address)","a50e20c1":"checkProfit(address)","a50ec326":"deposite()","a50ed19b":"setCooldown(uint256,uint256)","a50edca0":"fiat()","a50f2a25":"AirdropSingle(address,uint256)","a510921e":"SaleStop()","a510f776":"setCompany()","a512fb25":"Purchased(address,uint256)","a5135634":"avalibleSTCTokens()","a51548a1":"CryptoPainting()","a515aaeb":"cdFee()","a5171828":"MillionDollarToken()","a5177400":"minimumContributionPhase3()","a5181756":"AdameToken()","a519419e":"depositoryDelegate()","a51a6054":"roundLeader()","a51a8682":"saleTransfer(address,uint256)","a51ad03f":"isFirstYear()","a51aea2d":"changeMaxMultiplier(uint256)","a51af4c5":"distributorAddress()","a51b79e3":"changeYumAddressTo(address,address)","a51ba542":"deleteMonsterIndexToApproved(uint256)","a51bb77a":"getInvoiceHashAddresses()","a51d5924":"transferMain(address,address,uint256)","a51d5f02":"RemoveOwners(address[])","a51db46b":"changeDX(address)","a51e62a1":"developmentAuditPromotionWallet()","a51e81bb":"TRexCoin()","a51f3782":"investor_getMediumInfo(address)","a51f41a0":"setConfig(uint256,uint256,string,string,uint256)","a51fbb3f":"approveTokensWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","a51fe113":"start(uint256,uint256,address)","a52079ea":"balanceBlocksIn(address,uint256,uint256)","a521036c":"feePaymentEnabled()","a5214f77":"setContext(bytes32,address)","a521ebfa":"refundPresale(address,uint256)","a521f09f":"Greenbow()","a522ad25":"withdrawTokens(address,address)","a523b88a":"like()","a524ce4f":"deliverPresaleTokenToClient(address,uint256)","a525663a":"updateOwnerProprietaryData(uint256,string)","a525f42c":"transferFromToICAP(address,bytes32,uint256)","a526c826":"ICOBuyer(address,address,uint256,uint256)","a526f74f":"PRICE_AFTER_SOFTCAP()","a527096e":"preallocate(address,uint256,uint256,uint256,uint256,uint256,uint256)","a5289158":"end(address,address)","a528cb4f":"currentNumberOfRares()","a528fec4":"setSecureFees(bool)","a5290f74":"phase_2_rate()","a5294f93":"CryptoTradeToken()","a5295ae4":"AaaToken(uint256,string,uint8,string)","a5298955":"setAllHatchConfigs(uint32[],uint256,uint32[])","a52a0f8e":"getIntervalCoefficientMultiplier(uint256,uint256,uint256)","a52b121e":"faucetThresholdSecs()","a52b2b88":"hasWon(address)","a52b904b":"ScoreToken(string,uint8,string,string)","a52bc175":"Essential()","a52c0512":"getNumIncorrectDesignatedReportMarkets()","a52c101e":"send(uint256)","a52c11a6":"setBalance(uint8,address,uint256)","a52c34c3":"shopSettings()","a52c9efd":"updateIncrease(uint256)","a52cf5a4":"HanlinTestToken(string,string)","a52dc2e7":"blockN()","a52e6180":"setDiamondAuctionAddress(address)","a52ef9b0":"look_for_node(address)","a52f365a":"dissmisPurse(uint256)","a52f89fa":"nujaBattleTransfer(address,uint256)","a5304fc3":"ownerSetJpMinBet(uint256)","a5313069":"StairStepDecayingTokenFunction()","a53260c1":"migrateEthers()","a53290ab":"getClassTransformInfo(uint32)","a53324b5":"mint(uint256,string,uint8,string)","a53367dc":"ICOBuy()","a533daf7":"investmentPositions()","a533fb8d":"_mintToPool(uint128,uint256,uint128)","a534150c":"feePpm()","a536ae38":"payBidAllocationFee(bytes32,uint256)","a536cffd":"assertEq6(bytes6,bytes6,bytes32)","a536dbe8":"getCurrentPrice(uint256,uint256,uint8)","a5374005":"paymentsProcessor()","a537b716":"applyWithdraw(address,uint256)","a53818ca":"setNodeAllocation(address)","a53830e3":"numVotes(address)","a538d287":"getMinMax()","a53a1adf":"approve(bytes32)","a53a4747":"setOperatingCost(uint32[5])","a53aeb4e":"accumulate()","a53b1c1e":"setInt256(int256)","a53bfcf5":"varTokenAllocation(uint256)","a53c6dd4":"splitComissions(uint256)","a53c7b45":"setGameStatus(bool,string)","a53cb8ca":"setWhitelistTokens(address,bool,uint256)","a53d5205":"stepTwoLockEndTime()","a53d66e4":"changeAuxPartner(address)","a53ec007":"changeAirLimitCount(uint256)","a53f0e14":"addGrant(address,uint256,bool)","a53f138a":"updateTeamsTableAttributes(uint256,uint256,uint256,uint256)","a54016a0":"set_price_in_micro_ether(uint256)","a5403b3b":"secondaryLedgerCount(string,address)","a540db73":"triggerCooldown(uint256)","a5410a66":"kycVerified(address)","a5417f64":"decreaseICOEndTime(uint256)","a541a2a2":"projectCreator()","a5422d8a":"mineSoul()","a542a02f":"lookupAllSprites(uint256)","a542c3d7":"stageDevelop()","a54315fd":"SetBuyoutPrice(uint256,uint256)","a543a7e5":"addLockUpData(address,uint256[],uint256[])","a543bae7":"createSwap(bytes20,address)","a5440fa0":"GetAll()","a54447aa":"purchaseCard(uint256)","a544594e":"donateDAI(uint256)","a544805c":"CentralityGiftShop()","a544f062":"finanReserveWallet()","a54527d5":"AllSpringChainToken()","a54580f2":"drive()","a545ff0c":"withdrawRemainingEthAfterAll()","a5460352":"_validatePurchase(address,uint256,uint256)","a54677e3":"getOptionTitleForPoll(uint256,uint256)","a5468081":"Pyramid(address)","a546cbf7":"core(uint256)","a546f2e7":"changeNewHDX20Contract(address)","a5473276":"slice(uint32[],uint8,uint8)","a5473f78":"withdrawOrderRefundToOrder(uint256)","a54799bd":"Person(string,address)","a547adce":"lastBlock_f16()","a547ec4c":"setTime(uint256,uint256,uint8)","a548617c":"SampleCrowdsale(uint256,uint256,uint256,address,uint256,string,string,uint8,uint256)","a5488a37":"allowTransactions()","a54940b1":"Devable()","a5496781":"NamiMultiSigWallet(address[],uint256)","a5496e60":"newProposal(uint256,string,string,uint256,uint256)","a549ac10":"mintNFTForSale(uint256,string,uint256)","a54a2b8b":"testBlockHashFetch()","a54b2a73":"burnPool()","a54baeda":"removeAllowedLock(uint256)","a54c2a9a":"removeListing(uint64)","a54cd4f7":"minParticipants()","a54d396e":"internalAction()","a54e1ec4":"SubpreferToken()","a54efb1e":"BKB()","a54ff9ac":"downvotePost(bytes32)","a5500c30":"setAirdropAmount(uint256)","a5502b01":"Total_Players()","a550f86d":"named(bytes32)","a5512db0":"setTSTC(address)","a5513af5":"checkPrevOwner(bytes32)","a55168ea":"SendEtherToAsset(uint256)","a551878e":"fix()","a551de87":"MonethaAddressSet(address,bool)","a55231f4":"declareEmergency(string)","a552c8a0":"LogSendFail(uint256,bytes32)","a553506e":"checkData(bytes32)","a5536fe7":"mutable()","a553748e":"listingActive(uint256)","a5537586":"conversionOfferedAt()","a553a597":"configure(uint256,uint256,uint8,address)","a553c4d2":"tier2LOT()","a553e1da":"getUserTokensCount(address)","a5541ca2":"AICT()","a554a72e":"POINTS_TO_SPEND()","a55526db":"touch()","a55545a9":"EthVocToken(uint256,string,string)","a556a057":"ZAPAX()","a557f834":"month24companyUnlock()","a558410a":"test_twoValidEqUint(int256)","a5584456":"addDiscount(address,uint256,uint256)","a559217c":"raisedEther()","a5595683":"lockBalance(address,uint256,uint256)","a559ec20":"upgradePendingExchange(address,uint256)","a55b13c8":"validOtherSource(string)","a55bbff9":"setDatePayout(address,uint256)","a55c51d8":"havven_escrow()","a55c974f":"tokenXstepCAP()","a55cab95":"getName(uint8,uint8)","a55cc1cc":"newTokenWeiPrice()","a55cd51c":"updateMaxBet(uint256)","a55d260d":"depositNoRef()","a55deccb":"locked(address[],uint256[])","a55e9370":"getDateCount()","a55ec39d":"BulkTransfer(address[],uint256[])","a55ee823":"BYN()","a56024d8":"deleteUserForUser(string,uint8,bytes32,bytes32)","a5603f02":"getCurEarlyIncomeByAddress(address)","a5609ab5":"enableDepositTo(bool)","a560a956":"duelAnotherCovfefe(uint256,uint256)","a5613724":"Start1()","a561b1c2":"executeBatchTransfer(address[],uint256[])","a56226ef":"officialApplicationSignUp(string)","a5622c94":"xEURCoin()","a5627d32":"callDeposit(uint256)","a564871f":"ctWallet()","a56539a4":"_addLock(uint256,uint96,address,uint256)","a565efff":"countWinners()","a566d383":"softCapCHF()","a5670c80":"get_sale_arbits_per_ether()","a56793ae":"addCoin(uint256)","a567d371":"prepareForRefund(address,address)","a568907a":"SUCToken(address)","a568a09d":"BuyShareWithDividends(uint32,uint256,uint32,address,address)","a56a1de0":"Mortal_HelloWorld()","a56b3d11":"setNewCdFee(uint128)","a56b60ee":"_removeFromBlacklist(address)","a56be205":"developer_new_price(string)","a56befd1":"required_number_players()","a56c2ac0":"totalWeiRefunded()","a56c5be1":"WithdrawConfirm(uint256,uint256)","a56d1de3":"valueOfVault(uint256,address)","a56d7601":"getPlayerTickets(address,uint256,uint256)","a56d96bb":"unmint(uint256,string)","a56dfe4a":"y()","a56e7213":"unpausePending()","a56e7bae":"getTitleAddress(uint256)","a56f2d5f":"AutoMOBILEtoken()","a56f5b53":"withdrawDonations(address)","a56f9bea":"KarTokenERC20Advanced(uint256,string,string)","a5705d17":"performUpdateStackPtr()","a572ba41":"CEL(uint256,string,uint8,string)","a5731c1c":"getTXSAddress(uint256)","a573a9f4":"Bilateral()","a57429e2":"getWinConditionInLibra(bytes32)","a5749710":"getCurrentBalance()","a574cea4":"getMetadata(uint256)","a5752034":"changeRound(uint256,uint256,uint256,uint256)","a57544da":"right36(uint256)","a5758552":"redeemTokens(address)","a5766aa6":"setFeePercentage(uint8)","a577efd4":"closePot(string)","a578ae32":"getApprobation(uint256,address)","a578e38a":"RadiumSupply()","a5790bde":"toBytes1(bytes)","a57918dc":"ptc_addr()","a579349a":"currentStageRemainingJM()","a579e461":"SetAdminContract(address,address)","a57a84a6":"sendPending()","a57c0919":"update(uint256,uint8,address,address,string,string)","a57c6e86":"sellTokens(address,uint256,uint256,address,bytes)","a57ce52f":"_removeKeeper(address)","a57d1560":"lottery(uint256)","a57d814b":"MONACOESTAT()","a57e768c":"SetLockAddress(address,bool)","a57f57f8":"TBToken()","a57f59c0":"getMatchInfoList02()","a57f6500":"readCTDdata(uint256)","a5804521":"StateChanged(bool,string)","a58079fc":"FIXED_PRESALE_USD_ETHER_PRICE()","a58091cd":"privateSaleSencPerMEth()","a58092b7":"getSanityRate(address,address)","a580a5b0":"setRepayment()","a58180b4":"_batchBuild(uint256[],int256[],int256[],uint8[])","a581a27a":"owner_balance()","a581c333":"getSHA256(bytes)","a581ff0e":"CopyrightExchangeToken(uint256,string,string)","a5820daa":"issueTokens(uint256)","a5828b7d":"payBonus(address)","a583535d":"addCutie(uint32,uint256,uint256)","a5841194":"sync(address)","a5842415":"Cubes(uint256)","a5843f08":"init(uint256,uint256)","a5847862":"sizeOfString(string)","a584d8cc":"startProduct(string,string,string,int256)","a58561ec":"DISCOUNT_STAGE_TWO()","a5857318":"getIdArrayItemsCount(address,uint256,string)","a586fd0f":"_substring(string,int256,int256)","a587686d":"addCardToEdition(uint8,string,uint8,uint8,uint256,uint256,uint256)","a5878c65":"addPrivatePresaleTokens(address,uint256,uint256)","a587c9f7":"bountyTokenAddress()","a587cd36":"DisableSetTransferable(address,bool)","a587da29":"setPackage(bytes,uint8,uint8,uint8,bytes)","a588a968":"rushitesticoToken()","a5891bb0":"modifyWhitelistMulti(address[],bool[])","a5898832":"getReferrerRewards()","a58ac1a1":"buyTokensInternal(uint256)","a58b2e43":"LendingLiquid()","a58b55a9":"StreamityEscrow(address)","a58b7eed":"setFlags(address,address,uint256)","a58ba458":"multiTransferTightlyPacked(bytes32[],address)","a58c07ee":"fetchOrderByIdWithPayerByAdmin(string,address)","a58c30c5":"block2()","a58d3ad1":"dumpCube(bytes,bytes32)","a58daf76":"setAuthorizedToDraw(address)","a58fd85b":"setReflectSwitch(bool)","a58ff4fc":"deletThisContract()","a590529e":"updateWithPositionHint(uint32,uint128,uint128,uint32)","a590799a":"refundInvestment(address,uint256)","a59162eb":"OWEToken()","a5917019":"SecurityDepositCreated(uint256,address,string,string,uint256)","a5917baf":"vestingVault()","a5917dea":"processInternalRequest(string,bool,uint256,uint256)","a591d4a6":"getMsgValueAfter()","a5925b5b":"clearAuthorization(address)","a59307e8":"Play(address,bytes1,uint256)","a593845f":"_rollCriticalDice()","a594056f":"getPriceInExoTokens(uint256)","a59455dc":"getPacket(uint256)","a594a117":"giveGen(uint256)","a594a236":"_updateClaims(string,string,string)","a594b29b":"PRE_SALE_START_4()","a595a94d":"_sendGameGift(address,uint256)","a595b655":"Gimli()","a595f2eb":"quantidadeDeAutorizacoesNecessariasParaUmaNovaOuvidoriaPoderSeCadastrar()","a5967039":"cancelMigration(address,address)","a5968cc6":"PresaleTokenVesting(address,uint256)","a5976f97":"allocateReservedFunds()","a59799e6":"updateAvatarInfo(uint256,string,uint256)","a5982885":"assertFalse(bool)","a5985e8c":"getLevel()","a5987c9e":"getMyKilo()","a5989dbe":"nines(uint256)","a599ef65":"enroll(uint256,uint256)","a59a3750":"getWeapon(uint8[176],uint8,uint8)","a59ac6dd":"buy(address,uint256,uint256)","a59aef4e":"nickOf(address)","a59af340":"isInvestorApproved(address)","a59b193a":"setRecord(bytes32,string,string)","a59b7de5":"consumeCoinForNova(address,uint256)","a59cacb2":"setMinWeiAllowed(uint256)","a59d6986":"recoverLostFunds()","a59d930b":"ownerSetEtherwowAddress(address)","a59dbfb7":"gift_Transfer(address,uint256)","a59def62":"ABYSS()","a59eca54":"getPlayerIdByAddress(address)","a59f3e0c":"enter(uint256)","a59f8a2b":"GFCB()","a59f9d56":"ChangetokenManagerAddress(address)","a5a01bc7":"addCarInit(address,uint32,uint32,uint32,uint64)","a5a0545f":"FCChainTokenTest(uint256,string,string)","a5a2286b":"ReserveAddress()","a5a2aa33":"purseExchange()","a5a2cb19":"buyUpgrade(uint256)","a5a2fc4a":"claimableFeesOf(address,uint256)","a5a32c3a":"GEMCHAIN()","a5a3ad0b":"ValidatorBond(address,address)","a5a45785":"setRescue(address,bool)","a5a54ea5":"SM()","a5a584a2":"QuestionToken()","a5a5f468":"WorldCupAuction(uint256,uint256,bool,address,address)","a5a65bba":"checkvehrespond(uint256,address)","a5a6a7b2":"after20Seconds()","a5a6d7b3":"sellMyBanana(uint256)","a5a7d086":"ethereumFoundationTickets()","a5a7dadf":"preCrowdsaleEndTime()","a5a83e4d":"right91(uint256)","a5a899ec":"halts()","a5a8c53d":"setmessiCommunityAddress(address)","a5a98d78":"inflate()","a5a9ba8d":"getSellReturn(uint256)","a5a9cf0d":"sixthTeamWithdrawal()","a5aa0545":"createHumanStandardToken(address,uint256,string,uint8,string)","a5aa4348":"setTitulaire_Compte_9(uint256)","a5aa542e":"remainingFunds()","a5ab3436":"Payouts(uint256,bool,address,uint256,uint256)","a5ab5479":"generateNum2Win()","a5ab89ff":"setHost(string)","a5abe7f6":"isConstant()","a5acb022":"LOG_BetWon(address,uint256,uint256)","a5acc46e":"PauseInfrastructure(bool)","a5acd206":"updateStateFromOracleFoo(address)","a5ad0588":"transferFrozenTokens(address,uint256)","a5ad1348":"checkPosition(address,address,uint256)","a5adb226":"setABackend(bytes32,address)","a5ade117":"candyPrice()","a5ae65ba":"getGen()","a5aeb9b7":"totalWeiContributed()","a5af66c5":"HowLongIsDisputeRevealStillRunning(uint256)","a5b067b3":"INKCToken()","a5b0930d":"getAddressArray()","a5b19937":"endVesting(address,address)","a5b1e13d":"settle(address,address,uint256,uint256)","a5b222c9":"setData_20(string)","a5b2235d":"register(address,address[])","a5b36a36":"stalePeriod()","a5b3720b":"BulkTransfer()","a5b3d1a9":"tenmarionCoin()","a5b4069e":"DataCoin(address)","a5b41c0e":"AK48Coin(uint256,string,string)","a5b4aaab":"editMilestone(uint256,uint256,uint256,uint256,uint256,string,string)","a5b4f7d3":"setAgentVerificationByAgent(bytes32,address)","a5b538f9":"nextBonusPayout()","a5b589ce":"mHostFee()","a5b6420e":"_setBool(bytes32,bool)","a5b6ea8f":"spin(uint256)","a5b70519":"multiValueAirdrop(address,address,address[],uint256[])","a5b75814":"bonusPhase3()","a5b781e1":"lockPostion1Add(uint8,address,uint256,uint256,uint8,uint256,uint8,uint256,uint8,uint256,uint8)","a5b78bfa":"NebulaToken()","a5b87ef7":"StgFourbonusEnds()","a5b9e922":"getContentTimetamp(uint256)","a5ba3b1e":"tokenClaims(uint256,address)","a5bb9162":"tokenadd(address,uint256)","a5bbc311":"getNCSTotalSupply()","a5bbc423":"withdrawByEmergency(string)","a5bbd67a":"lockedAddresses(address)","a5bbe7bf":"takeOrder(address,uint256,uint256)","a5bc770c":"tokensPerKEther()","a5bd1566":"getDiscipleVend(uint256)","a5bdbb28":"buyBlock(string,uint256,uint256,uint256,uint256)","a5be0c5e":"ERC20Proxy(string,string,uint8,address)","a5be1a4d":"multipleTransfer(address[],uint256)","a5beb4e5":"claimRefundFor(address)","a5bebf48":"founderTokenUnlockPhase1()","a5bf7aae":"CPSTestToken1()","a5bfa9a9":"claimToken(bytes32)","a5bfd16a":"getAllLoans()","a5c02493":"setChain(string,address,address,address)","a5c04bfe":"allocateTeamBonus(address,uint64,uint64,uint64)","a5c102a2":"setMinterFeePercent(uint256)","a5c12df9":"OpenANXToken(address)","a5c154b3":"setMiniPoolEdit_2(string)","a5c1db32":"CrosspaysToken()","a5c28b1e":"getGovtApplication(string,string)","a5c3eb03":"UbbCoin(uint256,string,string)","a5c464b3":"isOnSaleAny2(uint256,uint256)","a5c5436f":"preCaution()","a5c5463f":"getCurrentlyRunningTier()","a5c5762b":"PVT_INV_TOKENS()","a5c57b18":"BITDINERO()","a5c58944":"dSetEditorArbitraryData(bytes32,bytes,bytes)","a5c5edee":"updateGameMetadata(uint256,string,uint256,bytes32[])","a5c6ac0d":"percentagePerMonth()","a5c7ac13":"test_updateKey_decreaseNoHint()","a5c81622":"signedApprove(address,address,uint256,uint256,uint256,bytes32,address)","a5c860ba":"eth_minimum()","a5c8a201":"geth(uint256)","a5c8b7a1":"transferPublisher(address)","a5c978c0":"TIA()","a5c9cd82":"TOKEN_UNIT()","a5ca2afa":"VESTING_INTERVAL()","a5ca35f5":"Trade(uint256,address,uint256,address)","a5cae60c":"getAppInfo(uint32)","a5cb66c0":"ChronosCore(uint256,uint256,uint256,uint256)","a5cbe71c":"getCooldownEndBlock(uint256)","a5ccd855":"setConstractDeployTime(uint32)","a5ccfb06":"sellCard(uint256,uint256)","a5cd184e":"free(bytes32,uint256)","a5cd3fd0":"steemh()","a5cd761f":"getTokenOwner(uint256)","a5cd806b":"BONUS_PCT_IN_VREO_SALE_PHASE_1()","a5cda792":"distribution(address[],address,uint256[],uint256[])","a5ce0693":"endBlockBonus1()","a5ce3eb0":"totalPaidAmount()","a5ce413b":"unstakeTokens()","a5cf3898":"verifyExtraData(bytes32,uint256)","a5cf38da":"createCrowdsaleTiers(bytes32[],uint256[],uint256[],uint256[],bool[],bool[])","a5cf56f2":"ethReceivedPresale()","a5cf599c":"ENDING_TIME()","a5d048d3":"create(address,uint256,uint256,address)","a5d0bab1":"buyPartial(uint256,uint256)","a5d18cb6":"checkGameAmount(uint256)","a5d1c0c0":"gameTime()","a5d33c2b":"MessageSentToChannel(address,string,string,uint256)","a5d3845b":"tokenEventAddress()","a5d572c4":"fixedTotalSupply()","a5d57bb7":"ApproveAndDo(address,uint256,bytes32,string)","a5d5ca54":"PolyCustomers()","a5d5db0c":"depositCollateral(address,uint256)","a5d638f1":"transferOwnershipRequest(address)","a5d677ab":"getFileByIndex(bytes32)","a5d68bfd":"RATE_WHOLESALE()","a5d6d4c3":"mintAuthorizedBatch(address[],uint256[])","a5d7a14f":"ContractorProposalAdded(uint256,uint256,address,uint256,uint256)","a5d8628a":"AgriChainDescription()","a5d871c0":"AddressChanged(uint256,address)","a5d8746e":"canMakeBet()","a5d8b72b":"midasAdvisorOperateMarketingAddress()","a5d8cdf2":"deploy_time()","a5da0bf5":"addAfterId(address,uint32,uint128,uint128,uint32)","a5db83e4":"marketRegisterToken(address)","a5dcf458":"uintToBetsArray(uint256)","a5ddfef1":"getTotalAmountOfTokens(uint256)","a5de12ab":"ITBITSToken()","a5de3619":"admins()","a5de811f":"checkMyWithdraw(address,address)","a5def8cb":"numbOfFrozenAmCount(address)","a5dfd89a":"getPrize(address,uint256,bytes3,uint16)","a5dfee67":"testThrowsCreateNewRevisionNotUpdatable()","a5e00e53":"QNTU(address[],uint256[])","a5e108af":"addEmployerContract(address,address,uint256)","a5e11729":"maxPower()","a5e1c5b5":"setVal(bytes32,uint256)","a5e20eaa":"getProjectStartDate(bytes32)","a5e220c2":"Owner(address)","a5e2dbfb":"_scto(uint256,uint256,uint256,uint256,address)","a5e33048":"generateTokens()","a5e45bec":"range(uint256)","a5e4e9a0":"maxCWCsPerReturnLessThan()","a5e4fedc":"LogTransferFromOwner(address,address,uint256,uint256,uint256)","a5e52c08":"ImmediateProfit(address,uint256)","a5e53bfe":"checkRandomFromRandao(uint256)","a5e558a3":"MIN_FUND_AMOUNT()","a5e57fcf":"GetUserBitFlag(address)","a5e5e034":"swapTop(uint256)","a5e62f02":"fallbackRP()","a5e7131e":"transferFundsAdminOnly(address,uint256)","a5e767cd":"frozenAccount(address,address)","a5e7a31c":"summReserveFund()","a5e82807":"deletedTeamIds(uint256)","a5e8c5d6":"setVoteRight(address,uint256)","a5e90eee":"setManager(address,bool)","a5e9585f":"xxx(uint256)","a5e9fffa":"calculateAmount(address,uint256,uint256)","a5ea11da":"getParameters()","a5eb1c6d":"Ovation(uint256,string,string)","a5eb7a4e":"operated()","a5ebb9ef":"backERRLCoinOwner()","a5ebc10b":"blocktubeClip(string,uint256,uint256)","a5ebf389":"getMoneyTotals()","a5ec4fae":"changeBaseVerifierFee(uint256)","a5ecacae":"getContributionTime(uint256)","a5ece941":"marketingAddress()","a5eceaf1":"bet1000_1eth()","a5edcd9e":"ethtotalSupply()","a5ee79d3":"extendRequestTimeLock(bytes32)","a5ef0dd6":"setGen0Profit(uint256)","a5ef69ea":"icoEndAt()","a5ef9915":"jotAllowance()","a5f02b00":"markCombatEnded(uint256)","a5f0dea2":"saleFinalized()","a5f11474":"Tronix()","a5f128fb":"stopSelling(uint256)","a5f18c01":"getStartBlock()","a5f1e282":"lockedOf(address)","a5f257e7":"transferDividendToShares()","a5f26760":"updateTimeMintBalance(uint256)","a5f2a152":"transferTo(address,address,uint256)","a5f2e079":"borrowerReturnAmount()","a5f357de":"MAXROUNDS()","a5f3c23b":"add(int256,int256)","a5f4648c":"getNextTurnColor(uint256)","a5f4864d":"ELBT()","a5f4af33":"playerWithdrawPendingTransactions()","a5f4c6ff":"publicStart()","a5f732e5":"distributeLTCW(address[],uint256)","a5f75a5e":"dollars_per_kilo_ether()","a5f7823e":"onlyAdmin()","a5f7c148":"transfer(address,int256)","a5f8b874":"wasProxyStorageSet()","a5f8cdbb":"buyTicket(address)","a5f9b5c2":"gameRound()","a5f9fd99":"splitShare()","a5fa2490":"smxSold()","a5fa5e52":"showTime(address,address)","a5faa125":"getAuthor()","a5fadf93":"modify_Presale3StartDate(uint256)","a5fb929a":"userRewarderCount(address)","a5fba4e1":"isDistributionDue()","a5fbd808":"globalBurnAmount()","a5fbdd41":"updatePremiums(address)","a5fbf287":"isSupported(address,uint256)","a5fc2994":"sendStore(address,uint256)","a5fd0a18":"chargeChannel(uint256)","a5fd1838":"getBonus2(uint256)","a5fdc5de":"collateral(address)","a5fefcfd":"thirdMonthEnd()","a5ff2551":"LOCIcoin(uint256,string)","a60014e3":"buyCore(uint256)","a60110ee":"ProposalTalliedEvent(uint256,bool,bool)","a6021ace":"ERC20Address()","a6024524":"PRE_ICO_FINISH()","a6027d53":"IconomiTokenTest(uint256,string,uint8,string,uint256)","a6044f28":"virtualEntitiesCreated()","a604c1ad":"Blocker_send(address)","a6060fcb":"Bitdore(uint256,string,string)","a6065c96":"brokerVerifierContract(uint64)","a6066523":"payment_amount()","a6069146":"setItemRangeURI(uint256,string)","a6070967":"minSumICOStage8USD()","a60745aa":"getBountyData(uint256)","a608067b":"getDrugPrice(uint256)","a608a65b":"CryptoAdsToken(uint256)","a60956a6":"newItem(uint8,uint8,uint256,uint256,uint256,uint256,uint256,bool,bool,address)","a6099372":"payDiff(address,uint256)","a609e209":"BIRTHDAY()","a609f034":"getByteFromBytes14(bytes14,uint256)","a60b693d":"getTotalCap()","a60b8aa9":"minusTourFreezingTime(uint256,uint64)","a60bbcd3":"ModelCoordinator()","a60c8043":"totalDistributionAmountInWei()","a60c9cdb":"TheBolthDAICO(address,address,address,address,address,address,address,address)","a60dc38a":"convertToWei(uint256)","a60e043e":"CappedRefundableCrowdsale(uint256,uint256)","a60e8bd6":"setVotingProxy(uint8,address)","a60eb299":"setRewardGenerationComplete(bool)","a60f3588":"payoutIdx()","a610fe9b":"chargeHoldingTax()","a6113c0d":"getSynthesizationResult(address)","a6117f39":"validPrePurchase()","a611e0e6":"forceRentalEnd()","a612c638":"emergencyRestart()","a6138ed9":"pricer()","a613c42d":"NWT()","a6145ba2":"isAllowContribution()","a614d54e":"GlobalAdmin()","a6151a84":"isDestroyed()","a615237e":"rebrand(string,string)","a615d7ee":"withdrawTokenToInvestorOwner(address)","a6178731":"usingInterCrypto()","a617aff1":"brideAddr()","a61855a4":"changeCommonRebate(uint256)","a618993c":"setGBA(uint32)","a618f50c":"distributeSSENTE(address[])","a619486e":"masterCopy()","a61bd76d":"purgeInformation(uint256)","a61c48f0":"getPollResultsSize()","a61c5b82":"numStudentRequest()","a61d0aed":"maxBets()","a61d6829":"getPosterInfo(uint256,uint256)","a61e1fc1":"_shuffle(uint8[])","a61e67aa":"testFailMintGuyWhenStopped()","a61e9f4d":"momentBlockOf(uint256,uint256)","a61ef635":"translateToStartingTile(uint16)","a61fe970":"candyBalance()","a621344a":"setTokenWallet(address)","a621d679":"XPZ()","a6223a58":"testAccess(address)","a622510b":"TranslationService()","a623e9bf":"PresaleDistribution(address,address,uint256)","a62438e2":"getPeriodKey(uint256)","a6245974":"getUpgradeProposalCount()","a6248874":"totalFirstICOSupply()","a62533e6":"diffString(string,string)","a6256644":"setDonationsReceiver(address)","a625d78d":"MasterDeposit(address,address,uint256)","a626c089":"changeSettings(uint256,uint256,uint256)","a626c3fe":"assignBountyTokens(address,uint256)","a626f445":"GlobalPersonalInsuranceChain()","a62784e2":"setCCH_edit_3(string)","a6279dbd":"getPartialAmountCeil(uint256,uint256,uint256)","a62819ed":"AddExec(string)","a62875d9":"getMyPastWins(address)","a62a07dd":"release_dates(address)","a62a86a0":"associateWithTaskAddress(address)","a62adfec":"buyTokens(uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","a62ce8ce":"capitalization()","a62d4df3":"_absSubtraction(uint256,uint256)","a62d7801":"resumePhase()","a62d9ba3":"withdrawToPlatformFunding(uint256)","a62e4246":"CampaignBeneficiary()","a62e5a7d":"sellComission()","a62ea098":"buyLCRTokens()","a62f3503":"updateBankAmount()","a630a92e":"ownerTransferWeiFirstWallet(uint256)","a6314342":"deleteManager()","a63234e0":"issuerAddress()","a6327ffc":"convert2PlatinumToken(uint256)","a632a2e5":"setnumber(uint256)","a632d5e1":"MANHATTANPROXLENAV()","a633d8d4":"getDougAge(uint256)","a633f61f":"getPositionOwedAmountAtTime(bytes32,uint256,uint32)","a6345859":"setEscapeRequest(uint32,uint32)","a635d31e":"Vote(address,bool)","a635e7c5":"BuyEBETtokens()","a636f4a1":"VoterAdded(address)","a6372087":"starNoLongerForSale(uint256)","a63744e0":"addPoll(uint256,bytes,uint8)","a63832a0":"dateFunc(int256)","a6391823":"awardsOf(address,uint8)","a6393784":"BiddableEscrow(address)","a63a9fa6":"setNextSnapshotBlock(uint256)","a63aeed9":"tokenSaleResumedTime()","a63b91f4":"autoBurn()","a63c500f":"is_locked()","a63c7ba2":"payoutToBeneficiary()","a63d0be6":"findAndTrade(address,address,uint256,uint256)","a63d6f05":"setRewardLevel(uint256,uint256,uint256,uint256[],uint256[])","a63d914f":"confirmAction(uint256)","a63dcbd7":"updateRtbSettlementAbi(string)","a63e10fa":"getUnreadMessageCount(address)","a63f1350":"getParentUniverse()","a63f5e2a":"candyToken()","a63f8020":"scWithdrawCall(address)","a6403636":"resolve(uint8,bytes32,bytes32,bytes32)","a64085cc":"getAllClients(address)","a641d28e":"revokeDelegateSigned(address,uint8,bytes32,bytes32,string,address)","a641edc7":"BOC(uint256,string,string)","a6424d22":"setVigAddress(address)","a64278ce":"lost_and_found_master()","a642c032":"getEdition(uint256)","a643c1a0":"updateAddresses(address)","a6441979":"StexIssued()","a6459042":"agencyReceiver()","a645a33a":"VotingFinished(bool)","a645e840":"getCurrentGameInfo()","a645ff5f":"send(address[],uint256[])","a646f9ad":"userWithdraw()","a6472906":"getAxie(uint256)","a6474a58":"setnotice(string,string,string)","a647e8ec":"mint(address,uint256,uint256,uint256)","a6482858":"boxPrice()","a648567b":"placeBet(uint8,uint8)","a648fec2":"updateAllTurnover(uint256)","a6491545":"_giveToken(address,uint256)","a64968ac":"joyToken()","a64a1c0b":"totalSoldTokensWithoutBonus()","a64ad595":"getDelegator(address)","a64b0b62":"addDevReward()","a64b63a8":"ParcelXGPX(address[],uint256)","a64b6e5f":"transferTokens(address,address,uint256)","a64bb045":"Test7J()","a64c7e2a":"Crowdsale(address,address,address)","a64d1c09":"hashOrder(uint8,address,uint256,uint256,uint256,uint256)","a64ded31":"tttTokenAddress()","a64e7969":"balancesCannotSell(address)","a64e920d":"vrcCount()","a64ed8ba":"tokensCount()","a64f0ca4":"getEtherInEuroCents()","a64f197e":"allocateBid4b(bytes32)","a64f829a":"addDungeonRewards(uint256,uint256)","a64fa869":"PrezzoCMT(uint256,uint256)","a650ebbc":"transferFromInternalStakingfund(address,uint256)","a6515a98":"admined()","a652477b":"STSTEST3()","a6534b63":"EtherBet(address,uint256,uint256)","a65465ff":"pank15()","a65491d5":"yeezy()","a654cfab":"pots()","a655fb4e":"level_9_amount()","a6567a9a":"calculateNewTime(uint256,uint256)","a656e51f":"lastInvestorsProfitDay()","a657242b":"Hardcap()","a6572c87":"getemployee(address)","a657cb9c":"submitRedeem(uint256)","a6593562":"getamountvotes()","a65a26e8":"returnAddressList()","a65a7753":"Zentum()","a65ac961":"batchTransferValues(address[],uint256[])","a65ae513":"ownerDeclareFailure()","a65b37a1":"buyXname(bytes32,uint256)","a65b62c9":"priceRound(uint8)","a65c3097":"_distributeRest()","a65e91b8":"baseTokensSold()","a65eacdc":"delManager(address)","a65ecbeb":"getMaxTokenAvaliable()","a65f0f79":"Ethereal_Smart_ID(address,address,string,string,bool)","a65f1193":"weiToUsdCents(uint256)","a65f51c8":"gapTime_()","a6605a77":"_updateTradingVolume(uint256,address,address,uint256)","a660698e":"TheInternetDigitalCurrency()","a660a326":"balancesHold(address)","a660f827":"bonusEnds5()","a6624bf4":"ISBToken()","a6632904":"tier_cap_4()","a663b5de":"viewCoinsKarma(uint256)","a664225c":"exchangeFinished()","a6656096":"invalidateGame(uint256)","a6658dea":"BitSelectConservador()","a6661901":"totalNormalContributorIds()","a6662a3c":"initMetadataDisabled()","a6666f0f":"TTGCoin()","a6667e18":"RemoveWhitelist(address)","a666ff3c":"lockedTokenAddress()","a66712ae":"usersOfAccount(uint256,uint256)","a6674aa3":"Resigned(address)","a6678b60":"setJadeCoin(address,uint256,bool)","a668d7c9":"NiceGuyPonzi()","a66939ad":"hostileTakeover(address,uint256)","a669b56b":"pay_day()","a669c9f9":"registeredServices(address)","a669d972":"c_centsPerToken()","a66ac7bc":"payout(bytes32,bytes32)","a66b62e6":"gameOverByUser()","a66b7748":"follow(bytes32)","a66c0b1c":"setGoldmintTeamAddress(address)","a66c53b2":"buyCore(uint256,uint256,uint256,string)","a66cb0ee":"GetBonus()","a66d5ef7":"createNamespace(string)","a66db704":"getPOOL_edit_23()","a66ddf43":"mainSaleRateP3()","a66df701":"chargeFee(address)","a66e6e5c":"etoken2Symbol()","a66ee056":"internalTransfer(int256,address,address)","a66f32e5":"stage3Bounty()","a66f42c0":"boost()","a66f7ad6":"signRelease(uint256)","a66fd42b":"mintToggle(bool)","a670b9e7":"nestedSecondSome(uint256,uint256)","a670c133":"numTeamDeposits()","a6712778":"investBct(address)","a672990c":"whitelistContract(address,bool)","a6735023":"getProfilePicture(address,address)","a673b130":"Reserved(address,uint256[])","a6741cfd":"injectEtherToDividend()","a6747670":"senderToProxy()","a675807e":"totalLevs()","a675887e":"EtherReceivedFromRelay(address,uint256,address)","a676b174":"frozenAccountProfit()","a677fbd9":"example2Func()","a6780857":"fireEventLog0Anonym()","a6784488":"cleanOut()","a67909bd":"LOCKTC()","a6791568":"burnAllTokens(address)","a67a6eab":"bearToken()","a67ad1b2":"sellICloudSecsAgainstEther(uint256)","a67aee1f":"tokenConverter()","a67afd30":"vest2all(address,address)","a67ba5d2":"changeAdminCharges(uint256,uint256,uint256)","a67bb583":"tokenCapForSecondMainStage()","a67c2730":"getBonusPerShare()","a67c2dcb":"accept_ownership()","a67c8bc4":"mintFundsTokens()","a67cace9":"AIT_TokenERC20(uint256,string,string)","a67d2602":"getSafeAddr()","a67de805":"DWalletToken()","a67e91a8":"TOKENS_MAX()","a67eb8d7":"STRIMToken(address,address,uint256,uint256)","a67ebf73":"Voting(uint8,address,uint256,uint256)","a67f122f":"_1_vozrast()","a67f9997":"LIQUIDATION_RESERVE_RATIO()","a67fc3fa":"getRewardAmount(bytes32,bytes32)","a6801cbd":"reset(uint256,uint256,uint256)","a6808c3c":"_setAgilityValue17(uint256)","a6809af0":"setOdds(uint256)","a680baaf":"backendWallet()","a681bf23":"LegalBot()","a681f950":"setMinMax(uint256,uint256)","a6823189":"parseAddr(string)","a682dd4f":"SWAP(address,address,address)","a6832d53":"allowedTransfer(uint256)","a68393a2":"debug_getCoinbaseTxOutputLen(uint256)","a6843f34":"right48(uint256)","a6846026":"TokenMintingDisabled(address,bool)","a684bc9f":"tokenReserved3()","a684ff03":"bet(uint16,bytes32)","a68567ac":"IDToken()","a6856e9d":"JTEBIT(address,uint256)","a685a41e":"parseLoanOffering(address[9],uint256[7],uint32[4])","a685ae66":"minerTimeOfLastProof()","a685ea57":"getROFRStatus()","a68602fb":"SignalingDisabled(address,uint256)","a687be48":"RocketsAndResources()","a6885e88":"getStageData()","a6895b5a":"getDailyLimit()","a6896bdf":"isRightPosition(uint128,uint128,uint32,uint32)","a68a2884":"TournamentCore(address,address,address,address)","a68a76cc":"createForwarder()","a68b51ed":"addProposal(address,uint256,uint256,string,uint256,bytes)","a68b91ab":"getContractData()","a68c5ca1":"SDTToken(uint256,string,string)","a68c9bbb":"getBid(address,address)","a68cfb25":"getSecondAmount(bytes32,bytes32)","a68d9a62":"_setDownRequest(address,uint256,uint256,uint256)","a68dfb2d":"TTToken()","a68e27b7":"getLuckProps(address)","a68e4578":"totalLBSold_CORNERSTONE()","a68e5ad0":"depositTokensForTrading(uint256)","a68f0bc1":"TOTAL_LARE_FOR_SALE()","a68fff3f":"GenRandom(uint256,uint256)","a6903278":"beginBlock()","a69032ee":"proxyTransferFromToICAPWithReference(address,bytes32,uint256,string,address)","a69177b1":"addTotalSupplyAmount(uint256)","a6921956":"tokenStatus()","a692c2f9":"_toTileId(int32,int32)","a692d5ae":"migratePriceLeader(uint8,address,uint256)","a6934950":"_confirmOneBuy()","a69358aa":"voteForTap(bool)","a693600b":"poolAmount()","a69364fc":"ProofOfTheRich()","a6940238":"growth()","a69416f6":"getNodeType(address)","a6948cd9":"calculateArea(address[16],uint256)","a694dabd":"STARTING_SNAIL()","a694fc3a":"stake(uint256)","a69520aa":"alchemy(uint256)","a695cacf":"getGameIdsByCategory(bytes32)","a69709ae":"toHexString64(uint256)","a69722de":"validateDescription(string)","a6973fa1":"computeS(uint256)","a697ca14":"finishSingleLock(address,address)","a6980a17":"addPromo(bytes32,uint256,address,uint256,uint256)","a6983932":"SeckeyRevealed(bytes32)","a6988576":"walletTokenBounty()","a699cd20":"getGrowingControlStartAt()","a699d9b0":"saosao6()","a699fb18":"payoutWorth(address)","a69a2ad1":"totalBalances()","a69a5588":"set(bytes12,bytes32)","a69ade72":"LED_MULTISIG()","a69bd4a8":"regStartTime()","a69beaba":"vote(bytes32)","a69c22be":"getYays(uint256)","a69c5bbf":"bucketClosureTime(bytes32)","a69c6597":"getPlayerName()","a69cbb50":"_getEarlyBonus()","a69dde14":"checkPassiveAndNull(address)","a69df4b5":"unlock()","a69e894e":"createTokens(address,uint256)","a69eae7c":"changeAllowanceToMint(address)","a69f7d1f":"FOUNDATION_PERCENT()","a69f886a":"withdrawRaised(uint256)","a6a1858f":"whale()","a6a20ff6":"DSEasyMultisig(uint256,uint256,uint256,uint256)","a6a34dd3":"_setMinCardPrice(uint128)","a6a3a439":"getNumTransactions(address,uint256)","a6a3ba2b":"pausestatus()","a6a5bfe3":"getStage2Start()","a6a62d58":"lastBlock_f2()","a6a633af":"ROA()","a6a6a0d8":"becomeFrom()","a6a6f1c7":"registerLicense(string,string)","a6a86130":"usdToWei(uint256)","a6a9a099":"privateIcoMin()","a6aa7f7a":"onlyFounders()","a6ab1216":"getWeaponsArmy1(uint256)","a6ab36f2":"initialize(uint256,uint256,address)","a6aba1b5":"BitCoix()","a6abbad6":"assertEq16(bytes16,bytes16,bytes32)","a6ac9225":"getJackpotResults(uint256)","a6ad57e6":"difficultyScaleMultiplierLimit()","a6ae0aac":"coinbase()","a6afd5fd":"getBets()","a6b01e50":"isMultiOwner(address)","a6b05af6":"INITIAL_BONUSLIST_TOKENS()","a6b08498":"isOps()","a6b10dd1":"showToken_For_Circulation()","a6b11fb3":"factorial_ICO()","a6b165ee":"total_investors()","a6b197aa":"Order(address,uint256)","a6b1caa3":"gasScalar(uint256)","a6b206bf":"doSomething(uint256)","a6b26697":"EthRefundReceived(address,uint256)","a6b2c437":"confirmRequest(uint256)","a6b2df9b":"requestDocument(uint256,string)","a6b3abba":"getMyTokenBalance()","a6b402ec":"MGU()","a6b4492f":"servusToken()","a6b4b0f4":"testCreateGames(uint256)","a6b513ee":"finalPrice()","a6b55eec":"unlock(bytes16,uint32)","a6b57b5d":"sharesOwned(address,uint256)","a6b7fa36":"withdraw(uint32,uint192,bytes)","a6b87b52":"erc()","a6b909e1":"trades()","a6ba250c":"fechVoteInfoForVoterBySnapshotBlock(address,uint256)","a6bb012b":"penalizeInactiveArbitrators(address[],uint256[])","a6bb1667":"updateMatch(uint8,uint8,uint8)","a6bc18f9":"setTrader(address)","a6bd5427":"getOptionCount()","a6bd853b":"mtdPreAmount()","a6bdcc17":"isAtLeast(uint256,uint256)","a6bf3df0":"oraclize_query(string,string[2],uint256)","a6bf45a9":"getNumberOfDeedsByAddress(string)","a6c01cfd":"isInGeneration(uint256)","a6c09381":"_setPackedTimestamp(bytes32,uint256)","a6c0d5a8":"YukiChainToken()","a6c1d611":"getAngelLockStatus(uint64)","a6c1f87f":"partial_refund(address)","a6c216c2":"UpgradeEvent(address,address)","a6c226f0":"lock(address,address,uint256[],uint256[])","a6c23bc4":"setTokensPerUsdRate(uint256)","a6c24b38":"getRequiredPrice()","a6c2591e":"get_header(uint256,uint256)","a6c2f3b2":"getAllAgreements(uint256)","a6c30b29":"startGasCalculation()","a6c3e6b9":"author()","a6c4cce9":"registeredApps(address)","a6c4d58c":"MetronomeToken()","a6c4ec0e":"hasUser(address)","a6c5612e":"areTokensFree()","a6c58b63":"getJobStatus(uint256)","a6c62c90":"snake(uint256)","a6c662ea":"Cmc()","a6c66575":"processInviterBenefit(address,uint256)","a6c6aee1":"ODEEPToken()","a6c7bf8a":"setMasterWallet(address)","a6c7f715":"MoimToken(uint256,string,string)","a6c8210e":"getVotingParams()","a6c93349":"createContract(uint256,uint256,int256,int256,int256,int256)","a6c94d2e":"durationVoting()","a6c95de1":"transferBountyTokens(address,uint256)","a6c98142":"SquirrelFarmer()","a6ca0a98":"PARAMOUNT()","a6ca322b":"refundCompleted()","a6ca54bd":"lawEnforcementRole()","a6cb4654":"catchYou(address,uint256,uint256)","a6cb9e64":"scheduleCall(address,bytes,bytes)","a6cbcdd5":"numSignatures(bytes4)","a6cc0428":"withdrawCryptoCurrencyNetworkTokens(address)","a6cd5ba3":"MaxMasternodesAllowedChanged(uint8)","a6cd8c68":"Match_Maker()","a6ce25b2":"In(uint256)","a6ce69a2":"changeSupply()","a6ce8c29":"HandsOnToken(uint256,string,uint8,string)","a6cea881":"KayiToken()","a6ceaeb8":"getSoldTokens()","a6ceb1f3":"sendAirdrop(address[],uint256[])","a6cfaf2e":"MMC(uint256,string,string)","a6cfb7a3":"getBack(uint256)","a6cfbb7f":"revenueBalance()","a6d00693":"getMeshPointByCreator(int256)","a6d150e0":"updateWhitelists(address[],bool[])","a6d15124":"coinsLeftInTier()","a6d15963":"createChannel(address,uint192)","a6d23e10":"payments()","a6d2bff6":"getTeamTokens()","a6d34fa8":"JackpotPayoff(uint256,uint256,address)","a6d40d39":"unlockFounder(uint256)","a6d49dca":"emitTransferEvent(address,address,uint256)","a6d4b5c2":"getGroupResult(uint256)","a6d4e9da":"tokensByTx(uint8,string)","a6d544e9":"sumHardCapPreICO1()","a6d6d046":"LetsfairToken()","a6d72407":"interface()","a6d7d72e":"addTwinAddress(address)","a6d87f7d":"myReferralDividends()","a6d930bb":"FundCrowdsale()","a6d93a9a":"_sell(uint8,bytes6,uint32,uint32)","a6d958c6":"getLastInput()","a6d96af6":"_createCompany(bytes32,bytes32)","a6da1e7d":"depositAndLock(address,uint256,uint256)","a6da3761":"StoneumToken()","a6da467c":"buyCozyAffiliated(uint256,uint256,bool,address,address)","a6da54a3":"validCoordinate(uint256,uint256)","a6dacdd7":"right59(uint256)","a6dc0173":"BRFCrowdsale(uint256[3],uint256[3],uint256[3],uint256[3],address,uint256,uint256,address,uint256,address)","a6dc15bd":"PriceChanged(uint256)","a6dc1ada":"setMaxStage3AllocationPerInvestor(uint256)","a6dc6771":"third()","a6dc84f0":"balanceOfFrozen(address)","a6dcb12d":"candyTotalSupply()","a6dcc834":"getUserInventory(address,address)","a6dd06e1":"getPOOL_edit_34()","a6ddcc96":"FillBuyOrder(address,address,uint256,uint256,uint256,uint256,uint256)","a6ddce13":"setDisable(address,bool)","a6de42c8":"AuthorizedAddresses()","a6dea55e":"sendEthToAddress(address,address,uint256)","a6ded200":"redeem_funds(address,uint256,uint256,bytes32)","a6defd45":"ZeroHooStandardToken(uint256,string,uint8,string)","a6df0344":"REF_CREDITS_PER_AXIE()","a6df33a2":"creationInvestmentSupply()","a6df6c30":"minCWCsPerReturnMoreThan()","a6e0264a":"_checkMyVesting(address)","a6e158f8":"redeemTokens(uint256)","a6e16ba2":"testThrowsRetractLatestRevisionNotOwner()","a6e1bc7c":"IndoCrypt()","a6e26e96":"batlordAddress()","a6e2eab1":"recycleAfterEnd()","a6e315ff":"addExemptionAddress(address)","a6e3289d":"addNextMemberPayment(address,uint256,uint256)","a6e3fcf6":"setBaseTokensSold(uint256)","a6e4002e":"DividendManager(address)","a6e497b6":"getUserContractAddress(address)","a6e4ae01":"gcp(uint256)","a6e5291f":"UniversalGiftToken()","a6e5303a":"SLKToken()","a6e53b99":"PHASE1_ACCOUNT_TOKENS_MAX()","a6e5f2f5":"Show_Address_for_option_C()","a6e7469c":"getSendersHash(address)","a6e77af1":"setEntryPrice(uint256)","a6e7f409":"STATE_OWNED()","a6e81e7c":"refundWei(address,uint256)","a6e826e8":"startsecurities()","a6e8a859":"target2()","a6e9e95f":"setCoinAllowance(address,address,uint256)","a6ea7ad2":"dexTestTransfer(address,address,uint256)","a6eaab99":"DGCASH()","a6ebbe5a":"NewDeposit(uint256,uint256,address)","a6ec01f7":"clearPendingWithdrawal(address)","a6ec0708":"setCompte_28(string)","a6ec3022":"getCurrentYearRemainToken(uint16)","a6ecfff8":"is_btc()","a6ed563e":"getBytes32(bytes32)","a6ee5eed":"changeFinishPreSale(uint256)","a6ee6fd9":"max_schrems_addr()","a6eea7f3":"liquidationPeriod()","a6effaed":"DetailedERC20(string,string,uint8)","a6f07a5c":"bigbomMultiSigWallet()","a6f0cba6":"DarioAdministrator()","a6f0e577":"isLeapYear(uint16)","a6f1c939":"getPick(uint256)","a6f1fd51":"addDeposit(uint256)","a6f20445":"LogCancelReservation(address,uint256)","a6f257cc":"AgroTechFarmToken()","a6f2ae3a":"buy()","a6f2e80d":"lockFunds(address)","a6f2fd5c":"disable(bool)","a6f48c90":"freeCount()","a6f4ab2e":"setStalePeriod(uint256)","a6f55282":"addNacToNLF(uint256)","a6f57199":"CrowdsaleExtended(uint256)","a6f5a22b":"openShop()","a6f6a8a6":"_setPrices(uint256)","a6f6d8bb":"getObligation(bytes32,uint64)","a6f70594":"SpoutCrowdsale(address,uint256,uint256,address)","a6f7257a":"getSigns(uint256)","a6f7541c":"maroonToken()","a6f81668":"gameInfo(uint256)","a6f87bc6":"WumingToken(address,address)","a6f935f6":"exporterAcceptedIBankDraft()","a6f9885c":"MAX_LENGTH()","a6f99922":"EcologicalShield()","a6f9dae1":"changeOwner(address)","a6fb08ae":"contractWithdraw(uint256)","a6fb475f":"transferFrom(address,address,uint16[])","a6fbf3d2":"getInt(bytes32,bytes32)","a6fc2823":"continueIco()","a6fc5c03":"getCode(uint256)","a6fd0085":"sub(uint128,uint128)","a6fd2487":"recordName()","a6fd96b0":"MultiService(address,address[])","a6fda231":"ICO_RATE3()","a6fdedef":"aimeIncreasePerTrip()","a6fe178c":"getRegisteredExchanges()","a6fe7a28":"removeService(address,uint32)","a6fea6f4":"registerVendor(address)","a6ff20a3":"addVehicle(uint256,uint256,bytes32,bytes32,uint256,uint256)","a6ff85e2":"ReceiveDonate(address,uint256)","a6ffefae":"balancesListNumberMap(address)","a701229f":"ChangedOwner(address)","a7016023":"setOwnership(address)","a7021bc5":"executorAlive()","a70284be":"soldBeercoins()","a702be14":"feedSecondaryPot(uint256)","a703078c":"sortAuction(uint256[])","a7030a53":"extractAndStoreBitcoinAddresses(bytes32,uint256,bytes,bytes)","a703c751":"batchWhiteListInvestors(address[])","a705245e":"setReserveVault(address)","a70616de":"platformWithdrawalRecipient()","a7068d66":"addDelegate(address,bytes32,address,uint256)","a706a2e2":"requestUnlock(bytes32,address,bytes4,address)","a706d26e":"DragonTreasureToken(address,address,address)","a7070373":"setAllowance(address,address,address,uint256)","a707300f":"addAcceptedContribution(address,uint256,uint256)","a7074a82":"getCrowdsaleStatus(address,bytes32)","a707ce55":"changePass(bytes32)","a707fc81":"payback(uint64,address[])","a708142b":"addressSCComplianceService()","a7084516":"VictoryX(uint256,string,uint8,string)","a7086536":"withdrawOfferForCollectible(uint256,uint256)","a7096ac8":"addLogicVersion(uint256,address)","a70a92f7":"setLiquid0(bool)","a70a9ad7":"switchDeity(address)","a70b015d":"stageICO()","a70b21a3":"ReceiverPays()","a70beb13":"processSellOrder(uint256,uint256)","a70c41b4":"getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256)","a70ce015":"safeGetPercent(uint256,uint256)","a70d7006":"StinkyLinky()","a70e82d4":"changeFreeUntilDate(uint256)","a70f101c":"useEmergencyCode(uint256)","a70f84c3":"registerName(address,bytes32,uint256)","a70fc3ba":"setCap(uint256,string)","a70fc680":"fundraising()","a71168e3":"setTrainingScienceContract(address)","a7120433":"setItemContract(address)","a7134993":"lifeD(uint256)","a7134f73":"acquire()","a713a3f7":"loggedTotalSupply(uint256)","a7154d22":"cancel(address,uint32)","a7157c72":"withdrawToTeamStep2(uint256)","a715bf33":"ICO_PRICE()","a715df58":"setUnownedName(uint256,string)","a715ff59":"EtherandomProxy()","a716144a":"getStack(bytes32)","a7177ebf":"getSpellAbilityCost(uint8)","a718309f":"CryptoCurrencyExchange()","a7188b4e":"setEditModeBool(bool)","a718d11b":"addWhiteList(address,bool)","a718e288":"Robet(uint256,string,string)","a718e774":"closeWeeklyInvest()","a718f4b3":"searchJobs(address,uint256,uint256[],uint256[],uint8[][4],uint8,uint256[],uint256[],uint256)","a7194e2a":"returnTokensListOfAddresses()","a71962c2":"GAME_STARTED()","a719804d":"Spank(string,string,uint8,uint256,uint256)","a71a3dde":"DEFAULT_LOCK_COST_PER_HOUR()","a71acabc":"newSection(bytes32,bytes32,bytes32,uint256)","a71aec73":"isTradable(uint16)","a71b4c26":"auctionSumGwei()","a71bd1cd":"getCurrentDay(uint256,uint256)","a71be2c0":"Clip()","a71d6f9f":"setTRCExchangeRate(uint256)","a71d8181":"createCeleb(string,uint256)","a71e12e5":"JoinGameAsPlayer(uint8,uint256,uint8)","a71e46d3":"maxRecordID()","a71ee0c6":"changetradestatus(bool)","a71ef84d":"getVotingWinner(address)","a71f94c8":"scheduleSetUInt(address,uint256,uint256)","a71fa796":"addResearch(address,uint256)","a720cbb8":"create(address,address,address,string,string,address,uint256,uint256)","a720e0a8":"ebyteToken()","a720faa9":"maxPreICOSupply()","a721c06c":"LENTToken()","a721d9d9":"EmiratesCoin()","a721ebe8":"numberSyndicateMembers()","a72299dd":"MetadollarShare()","a7232aae":"setGPSMinEth(uint256)","a723761a":"investEtherForDID()","a723cda8":"AQUAOIN()","a7240d45":"updateTransaction(bytes32,uint256,address,uint256,address,uint256,bytes32,bytes32,bytes,bytes)","a72460d1":"getProviderEndpoints(address)","a724e54c":"newCollectible(uint256,string,uint256,uint256,uint256,string,uint256,string)","a724f68a":"CratesOpened(address,uint8)","a7256621":"addInt(uint256,int256)","a725c4a4":"StrategicPartners(address,uint256)","a725fa1f":"CpublicgoldToken(address)","a7261f79":"isPayableEnabledForAll()","a72670b8":"getReportingWindowByTimestamp(uint256)","a726be9a":"get_token_data(uint256)","a727390d":"GetDomainInfo(string)","a727632f":"Date_Finished()","a7281bbf":"CollectTaxes(uint256)","a728fa93":"getMyCraigGrant()","a7292c74":"amountEthRaised()","a72a05f7":"getReceiversCount()","a72aa163":"setPropertyMode(uint16,bool,uint32)","a72b1444":"minimumSupport()","a72dc52e":"fixedExpUnsafe(uint256)","a72dc950":"StageOneEnable()","a72ec7a0":"TokenLiquidityPlatform()","a72f3dea":"removePVPContender(uint256)","a72f5aaa":"preDistribute(address,uint256)","a72ff7de":"buySmartContract()","a7304287":"godUnpause()","a731c4ec":"addUserTokenLocalBalance(address,uint256)","a731f31a":"getBoxes(address)","a7321096":"mainSaleBonus()","a7322d9d":"DURATION_SALESTAGELAST()","a7324134":"parseLoanOffering(address[11],uint256[10],uint32[4],bytes)","a732d6c4":"calculateAffiliate(uint256,uint256,uint256)","a732f9ac":"increasePlayersGooProduction(address,uint256)","a733800d":"Shipia()","a73381d5":"EYInnovationCoin()","a733e21d":"twice(address,uint256)","a733f702":"isValidSize(uint256)","a73467bd":"TestCitySnapshotInternal(address,uint256)","a73598fd":"tryFinalizeStage()","a73638a7":"selectGod(uint16)","a7365ea9":"Gealena()","a7368afb":"allocateTokens(address[],uint256[])","a7374b21":"sendFundsInternal(uint256,address,bytes)","a737ec3d":"GxAdmins(address)","a737ecc9":"getProfitToAddress(uint256,address)","a7384c1e":"eth2erc20()","a739013f":"buy(address,address,uint256,bool)","a7397d27":"xaurForGasLimit()","a73b60f4":"buttonClicks()","a73b9bcb":"FTFExchangeToken()","a73c0ba2":"play(uint256,uint16,uint8)","a73c52e7":"getLastPerUser(address)","a73c7140":"amountTotal()","a73d633c":"addWhitelist(address,address)","a73d907e":"inboxIsEmpty(address)","a73e01cb":"WPTokensBaskets(address,address,address,address,address)","a73e38ce":"generateICOcrowdsale(uint256)","a73e9837":"newEnterWallet(address)","a73ee331":"MAIN_HOLDER_ADDR()","a73f7f8a":"addRole(address,bytes32)","a73fc4cd":"get_pre_kyc_iconiq_bonus_denominator(address)","a7403160":"vestingsReleasedRemain(address)","a74035b5":"setEvabotContractAddress(address)","a740a194":"getGasToReport()","a740a6fa":"clearRAM()","a740cf90":"TGIF(address)","a740de43":"nameLocked()","a7419b51":"setAirLiftPrice(uint256)","a742a942":"create(address,bytes32,address,address[],address,bytes32)","a7432434":"refferalPreICOBonus(address)","a743a61f":"checkStudentsApply()","a743fa50":"beneficiaryFunded(address)","a744a633":"getWeeklyTransactionVolumeReceiving()","a745863b":"startRebuyTime()","a745953e":"buyStarInitial(uint256,string)","a745ec70":"bountyDistributorAddress()","a7467039":"sharesToManager(uint256)","a747007f":"AffiliateProgram(address)","a7483f74":"CATFreezer(address,address)","a74905db":"reportProfit(int256,address)","a74915cf":"getadd()","a7491b48":"votesByAddress(address)","a7497fa5":"tge()","a749870d":"etherValueAllowStale(uint256)","a749e97b":"_setPaymentSchedual(uint256,uint256,bytes2,bytes2,bytes2,bytes2,bytes2,bytes2,bytes2)","a74a1831":"post(bytes32)","a74baaa4":"amountOfHolders()","a74e01cf":"unFreezeAllTransactions()","a74e493f":"pregenTokens(address,uint256,uint256)","a74ecb12":"setMasterAddress1(address)","a74f277a":"MaintenanceUpdate(bool)","a7502a3f":"totalTeamWithdrawSupply()","a7507df2":"loveUrl()","a75252ea":"sellToAddress(uint256,address)","a75261f2":"certbot()","a75274e9":"setMarkup(uint256,uint256)","a752c2c5":"UniversalSchemeMock()","a75343bf":"claimOwnership2()","a753d6f2":"CreateProposal(string,string,string,string,string,string,uint32,uint32)","a753fd08":"setWinNetworkFee(uint256)","a7542448":"addRef(bytes32,bytes32)","a75439d1":"minValuePre()","a755a47e":"triggerAllRefunds()","a7560bec":"EBITOKEN()","a7565888":"m_Paused()","a75688b2":"oldMillionEther()","a75761f1":"returnUint16(uint16)","a7577542":"addCrowdSaleTokens(address,uint256)","a757ac4b":"privatesaleAddress()","a757fc42":"buyTwo(uint256,uint256,uint256,uint256)","a758ac6a":"MaecenasCrowdsale()","a759822b":"performCalculations()","a75a1d6c":"claimRefundTokens(address,address)","a75a4e4a":"updateScoreAndBalance(uint256,uint256,address,address)","a75a9049":"setInitialOwner(address,uint256)","a75aef40":"SYCEarlyPurchase()","a75c6f65":"updatedCirculation(string)","a75c8546":"determineDiscountRate()","a75c981d":"totaltokensold()","a75d0042":"signedTransferCheck(address,address,address,uint256,uint256,uint256,bytes,address)","a75dd0d4":"AddPrivateKey(string,string)","a75df814":"knownAddress(address)","a75e2853":"transferForICO(address,uint256)","a75eb727":"updateExistingRaz(uint256,uint256,uint256,uint256,uint256)","a75fe8e1":"removeWallet(address)","a7603a86":"getDefaultValidityBond()","a76044a4":"binary()","a760d1d0":"setRateAgain()","a760e442":"setLosers(uint256)","a76188b9":"setRewardPercentages(uint256,uint256,uint256,uint256,uint256)","a7633064":"getRandomType(uint16)","a7638346":"setFinaliseTime()","a7638c4d":"disableStakingPeriod()","a764eb45":"setCurrentIssuanceData(address,uint256)","a7651147":"loyaltySupply()","a76594bf":"getPlayersCount()","a7668eba":"calcTokenCost()","a766f3d1":"storeStub(address,bytes32,bytes32)","a76769a5":"fillOrderWithEth()","a76774f5":"jackpotCompleted()","a7677ee3":"AslanToken()","a767d8be":"preIcoMaxCap()","a76a155e":"getBetsFromAddress(address)","a76bb04e":"setRewardPoolWallet(address)","a76d368a":"candyPowerToken()","a76d50ad":"multipleTransfer(address[],uint256,uint256)","a76dd676":"TIER3_PERCENT()","a76decce":"_createNFT(uint256[5],address,uint256)","a76ee2d8":"fillBuyOrder(address,address,uint256,uint256,uint256,uint256)","a76eeab2":"updateVitality(uint256,uint8)","a76f3543":"getUpgradePointer()","a76f43a0":"bancorDaiSmartTokenRelay()","a77078e7":"withdrawForOp(address)","a7721e0f":"multiplyTokensSend(address[],uint256[])","a7724b16":"bingo()","a7728589":"setMintAgent(address,address)","a7731150":"StoreFile(bytes32,string,string,string,string,string,uint256,bytes)","a7737b93":"NumberOfPart()","a77384c1":"setTotalShares(uint256)","a773d98a":"getAssetIDHash()","a7741827":"deleteAllUris()","a7743462":"setFounderTokenWallet(address)","a774f163":"adjustDefaultSpritePrice(uint256,uint256)","a775511a":"isMainsalePeriod()","a775b1c4":"NAORIS_TEAM_TOKENS()","a7760d79":"preICOendTime()","a77674a7":"buy_energy(address,uint32,uint32,uint64)","a7771ee3":"isVoter(address)","a7775bd7":"YDToken()","a777aa5d":"changeMaxTokenSell(uint256)","a777d0dc":"hello(string)","a777deca":"thirdRelease()","a777eca9":"MinerRewardChanged(uint256)","a77a8230":"allowence(address,address)","a77aa49e":"setIntValue(bytes32,int256)","a77adc23":"WaxToken()","a77ae839":"approveRewards(uint256)","a77b2e37":"Coin()","a77b4d8b":"setBaseCurrency(address,bool)","a77b6efb":"mintCoins(uint256)","a77beea1":"transfer(address,address,address,address[],uint256)","a77c1b08":"checkTransfer(address)","a77c61f2":"cobinhoodUserIDs(address)","a77ee38c":"promoTypeNum()","a77f7c8c":"whitelistMany(address[])","a78036b7":"clearDeposits(address,uint256)","a7807b84":"transferByRelatedToken(address,address,uint256)","a78082aa":"TokenSafe(address)","a78085ef":"lockMainSaleToken()","a780b2f3":"parseRate(string)","a7811732":"totalERC20Contracts(uint256)","a78118a4":"onlyDevs()","a781384e":"TrivialToken(string,string,uint256,uint256,address,address,uint256,uint256,uint256,bytes32)","a7819ad7":"_challengePart2(uint256,uint256,uint256)","a783a4f1":"get_hash(uint16)","a78488af":"startTokenRaffle(uint256,address,uint256,bool)","a78488e1":"WSTO()","a784d969":"setAssetsCertified(uint256)","a784ef22":"_calculateScore(uint256,uint256,uint256,uint256)","a7859131":"m_initialSettingsSet()","a785b96a":"TDEStartDate()","a786c1d2":"BONUS_DAY1_DURATION()","a7878831":"splitTokens()","a78810f8":"subscribeMe(uint8,bytes32)","a788aa07":"test_threeValidEqUint(int256)","a789e29c":"getContributorData(address)","a78a43c1":"getAllTeamScores()","a78a651a":"processContribution(address)","a78adf57":"UserAddressRegistry()","a78adfec":"setButtonParams(uint256,uint256,uint32,uint32)","a78b3d96":"addSubOwner(address,address)","a78bcf6e":"changeBankroll(address)","a78c5476":"SaleStarted(uint256)","a78c81ea":"changInviteAmountLimit(uint256)","a78cb567":"getCosignerFee(uint256)","a78cdfed":"gana()","a78d4316":"_near(uint256)","a78db39c":"blockedUntil()","a78deefa":"isGameEnd()","a78e635c":"XToken()","a78e887c":"calculatePurchaseReturn(uint256,uint256,uint16,uint256)","a78f0489":"secondTierDiscountUpperLimitEther()","a78f16ba":"setWhitelistedStatusInternal(address,address,uint256)","a79094b7":"changePolyRegisterationFee(uint256)","a7909e47":"DAppReady()","a791c665":"WojakCoin()","a791da46":"buyXwithdrawForContract(address,uint256,uint256)","a7932d20":"marketToken2019()","a7944579":"sit()","a79726b7":"tokenSpin(uint256)","a7972a80":"MoviePass(string,string,uint8,uint256)","a7977ffc":"isWhiteListedAndAffiliate(address)","a7985ae4":"SNAILMASTER_INCREASE()","a7987b58":"LendroidSupportToken()","a799464c":"isMyInfra(uint256)","a7996adc":"_safePaymentActionAtIco(uint256,address,uint256)","a799de7e":"anotherTransferTo(address,uint256)","a79a3c30":"teamAlloacting()","a79a3cee":"isConfirmed()","a79a416d":"SetCommissionRate(uint256)","a79ac3be":"ReleaseTokenForReserveFund()","a79b2752":"validate(address[4],address,uint256[12],uint256,bytes,uint256)","a79c7faf":"test_threeInvalidEqBytes()","a79ca634":"_setSubnodeOwner(bytes32,address)","a79dad23":"GetBetNums(uint256)","a79deb4f":"acceptTradeDeal()","a79ec95a":"oneEtherIsHowMuchFST()","a79f26dc":"force()","a79f4773":"buy_ETH(uint256,bytes8)","a79f7412":"withdrawCoinExt(uint256)","a79fdbb4":"presalePaused()","a7a066b7":"AxtrustICO(uint256)","a7a0d537":"something()","a7a1019d":"tixPresale()","a7a1e0a7":"auditNTVUText(uint8,uint8,string)","a7a1ed72":"pass()","a7a260cf":"TokenDeployed(uint256)","a7a2720e":"processFunding(address,uint256)","a7a38f0b":"history(uint256)","a7a39daa":"getBrickIdsByBuilder(address)","a7a3ba54":"SponsorMusic(uint256,uint256,address)","a7a44eba":"getFirstUnionIds(bytes32)","a7a5e00b":"updateCustomer(address)","a7a604b2":"mintUptoCap()","a7a60580":"MeteorToken()","a7a62aee":"init(address,uint256,address,string,string)","a7a7be1a":"newWriteAddr()","a7a8add2":"setSaleAgentContract(address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","a7a957ff":"getSaleDayNow()","a7aac32d":"withdrawAdvisorTokens()","a7aad3db":"voterReward(address,uint256,uint256)","a7ab6961":"withdrawalDelay()","a7abb8cc":"BM_MasterClass_Reserved()","a7abc124":"activate(bool,bool)","a7ace55d":"incrementDivisor()","a7ae9756":"startNewStakingInterval(uint256,uint256)","a7af0b99":"Nerdearla()","a7b0793b":"setAdvisorFundWallet(address,address,uint256)","a7b07acc":"AssetSplit(address,address,address,address)","a7b2042f":"phasePublicSale3_From()","a7b2bfc7":"multyTransfer(address[],uint256[])","a7b2d313":"LogAnswerReveal(bytes32,address,bytes32,bytes32,uint256,uint256)","a7b2d4cb":"remove(int256,address)","a7b2fc00":"updateTokenNameSymbolAddress(string,string,address)","a7b314ac":"stepProfit()","a7b3a6fc":"Mine(address,uint256,uint40)","a7b4b60f":"erc223Fallback(address,uint256,bytes)","a7b69ed9":"PostLicense()","a7b71dca":"getJobValue(bytes16,address,address,uint256,uint256)","a7b7eefb":"JustmakeToken()","a7b7f1d4":"getLatestUnitRaffleInfo()","a7b83225":"AgriChainSeal()","a7b86824":"lockup(address,uint256)","a7b88506":"canRead(address,bytes32)","a7b8c868":"startCrowdsaleTime()","a7b91780":"getTokensSale()","a7b94972":"newBen(address)","a7ba0cb5":"createChatRoom(bytes32)","a7ba44c3":"isFinalizerSane()","a7ba9fb1":"epsilon()","a7bb1cf4":"_setRarityBonusValue20(uint256)","a7bb5803":"splitSignature(bytes)","a7bb959a":"Apen()","a7bc2efd":"transferGroupIntertrade(uint256,address)","a7bc3cb9":"SafeLocked(uint256)","a7bc8c46":"howManyVoters(bytes32)","a7bd4791":"MakeItWeinSec()","a7bda7e3":"extractNameFromDataET(bytes)","a7bdf16e":"isValidBump(uint16[3],uint16[3])","a7be2648":"unTrackToken(address,uint16)","a7be85c6":"AUTHOR()","a7bf1b6c":"purchase(uint256,uint256,address,address)","a7bf1cbf":"unfreezeTransfersSince(string)","a7bf8921":"freezeContract(bool,uint8[],bytes32[],bytes32[])","a7c19841":"preSaleInit()","a7c1a708":"LogGameStarted(uint256)","a7c1a75b":"maxAuditDuration()","a7c1abf1":"decodeMessage(string)","a7c1e629":"cancelTransfer(address)","a7c25c5a":"setMileagePointPrice(uint256)","a7c368c0":"pushBuyerList(address)","a7c3ce60":"distributeRegisterFee(uint256,uint256,bytes32,uint8)","a7c3d71b":"icoStartTime()","a7c41e28":"zennitToken()","a7c4abdb":"calculateTokenAmount(uint256,uint256,uint256)","a7c5052e":"buildDSTokenRegistry()","a7c591c4":"setBest(uint8)","a7c5c2a2":"BirthFee()","a7c6c83a":"getMystr()","a7c6f483":"exchangeRateAuth()","a7c742c9":"CommissionEarnedEvent(address,uint256)","a7c7d2a0":"airdropValue()","a7c7e2a0":"assignOwner(address,address)","a7c7fdeb":"transferTokensToOwner()","a7c83514":"inflationChange()","a7c8e68a":"sealManualMigration(bool)","a7c961d5":"bonussale_Cap()","a7c98748":"test3_searchNext()","a7c99f2c":"changeCompetitionAddress(address)","a7c9d92f":"HammBones()","a7ca3010":"getWithdrawTransactionCount(bool,bool)","a7cac846":"weights(address)","a7cadc50":"Dagelan()","a7cb6edc":"tokenRestriction(address,bool)","a7cbe06f":"MaxFunds(address,uint256,uint256)","a7cc440e":"getCityResourceRichness(uint256)","a7cc90e9":"calculateCounters(uint256,uint256,uint256,uint256)","a7cd21ea":"transferPrivilege(string,address)","a7cd674e":"whitelist_enable()","a7cdc2ad":"getAddressExist(address)","a7cebd4d":"createActivity(uint16,uint16,uint128,uint64,uint64)","a7cec1d2":"DataStorage()","a7cf7edd":"mimul(uint64,uint64)","a7cfe365":"addAuction(uint40,uint256)","a7d0b6ce":"payoutForResult(uint256)","a7d0c490":"keybuy(uint256)","a7d0f8af":"callStoWithBto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","a7d2b73f":"SharkProxy()","a7d2d2ab":"AngelCoin()","a7d30400":"window1TokenExchangeRate()","a7d4549c":"test(uint8,bytes32,bytes32,address,address)","a7d4bbe6":"modexp(uint256,uint256,uint256)","a7d4e89d":"migrationOperator()","a7d512d6":"getCertificateInfoByNo(address,uint8)","a7d55b76":"tryDismissRoom(uint256)","a7d5d4fa":"approveAddToken()","a7d68896":"updateCap(uint256)","a7d77305":"chargeMonthlyRate(bytes32,address)","a7d8287d":"MyFreezeContract(address)","a7d82b00":"setGoldCertVerifier(string)","a7d89168":"getLockedAmount(address,address)","a7da611f":"commission_mom()","a7da74f8":"addQuoter(address)","a7daf6dd":"eligibleForDividence(address)","a7dbb402":"changeAddress(string,address)","a7dbfcaa":"setCostOfToken(uint256)","a7dc0aee":"test_threeValidEqString()","a7dd7a59":"unchainedMultisigVersionMinor()","a7dd7e37":"distrust()","a7de83e6":"generate(address,address)","a7de9c63":"quantityFactor()","a7dea7e4":"getMyPastLosses(address)","a7dee615":"_NewListingWhitelisted(bytes32)","a7dfc420":"investorAmountTokensToBuy(address)","a7dfc874":"unregister(bytes,address,uint256,bytes)","a7e03dcb":"mintPerBlock()","a7e1a8ee":"setAttributeType(uint256,string)","a7e1b516":"unban_user(address)","a7e1c4ac":"YunbeiToken(uint256,string,string)","a7e21e80":"hold(address)","a7e25683":"testShortOutput()","a7e2cca9":"setFinished(bool)","a7e328d4":"setSomeValues()","a7e33a0c":"sendChatMessage(string)","a7e350f7":"payOutGovernors()","a7e45699":"buyWildcardToken()","a7e47920":"createItems(uint256[],address[])","a7e48375":"MikadoToken()","a7e53987":"EthCapInWei()","a7e5a338":"HIDERA(uint256,string,string,uint256)","a7e5cb3e":"getWhoBet(address,uint256,uint256)","a7e5f1bc":"LogN_fnc(address,bytes32,uint256,string,bytes,uint256,bytes1,uint256,uint256)","a7e5f3c5":"likeBlock(uint256)","a7e74377":"_preValidateTransaction(address,uint256)","a7e74ab7":"setMx(bytes32,address)","a7e7d2f4":"BBXCoin()","a7e81d22":"lastBlock_f5Hash_uint256()","a7e86daa":"executeBidFor(address,uint256,uint256,uint256)","a7e93e87":"retractLatestRevision(bytes20)","a7e94542":"approve(address,uint32)","a7ea48cf":"CoinBroToken()","a7ead565":"FiO()","a7eb3848":"transferRewardWithoutFee(address,uint256)","a7eb685b":"mintFeeTokens(uint256)","a7eb891f":"isClientPaidUp(address)","a7ebc5bd":"privilegedAccountStatus(address)","a7ec619f":"getCurrentStageDiscount()","a7ecce5f":"removeQuitAccount(address)","a7ecd0ad":"getSpecialAddresses()","a7ee323e":"VULCAN_PROMETHEUS_FTL_SPEED()","a7eea700":"sale2Started()","a7eeea37":"NewContributor(uint256)","a7ef4329":"getHelloWorld()","a7f07011":"tradeExecutor()","a7f0b3de":"genesis()","a7f17bd5":"Bodcoin()","a7f18b5a":"setPOOL_edit_14(string)","a7f1b77a":"addReferralDeposit(address,uint256)","a7f2cc54":"feeCalculated()","a7f2f4e2":"getMembershipStatus(address)","a7f31e0a":"getCelda(uint256)","a7f32edd":"OfflineCastleSold(uint256,address,uint256)","a7f365ae":"setLockoutPeriod(uint256)","a7f36c2e":"setProviderPriv(uint256,bool)","a7f39d8a":"tokenSaleWeiGoal()","a7f3e70f":"setSaleTimes(uint256,uint256)","a7f43779":"remove()","a7f43acd":"reserveContract()","a7f49e1d":"maximumBuyBackAmountInCents()","a7f58c24":"computeInitialPrice(uint8)","a7f5eccc":"previousReturnValue()","a7f7417d":"preICOFreeBonusPercent()","a7f81863":"thirty_wallet()","a7f86c63":"_removeRoomNight(address,uint256)","a7f879ea":"teleportToken()","a7f8a53c":"ownerSetControllerAddress(address)","a7f8fbd4":"cancel_contract()","a7f95a92":"HardcodedCrowdsale(address)","a7f9801b":"TakedFunds()","a7f9df38":"investWithBitcoin(address,uint256)","a7f9fe72":"getAllRecords()","a7fab81a":"impl_redeem(address,uint256)","a7fb95f6":"changeTeamName(uint256,string)","a7fbe7ad":"safeLastDate()","a7fbed9e":"getCurrentPhaseIndex()","a7fc7a07":"addController(address)","a7fca953":"getSrcQty(address,address,uint256,uint256)","a7fdb4f5":"finishedSale()","a7ff0a4e":"TransferTokens()","a7ff2373":"multiSendFrom(address,address[],uint256[])","a7ff7a40":"MANACrowdsale()","a7ffb2db":"getMaximumRound(uint256)","a7ffe560":"batchSpawnAsset(address,uint256[],uint256[],uint256)","a8006dfe":"exec_admin()","a801ea25":"launchLotto()","a801fd63":"setNewValue()","a802257d":"addr_Saddlery()","a8026912":"setSource(address)","a802afa1":"minOfArray(uint256[])","a80325bd":"toB32(bytes)","a804903a":"FOUNDER2()","a80498f1":"AdvancedDeposit(bytes32,uint256)","a804cc7d":"setUser(address,address,string,string,bool,bool,bool)","a804da18":"cliffReleasePercentage()","a804fcb4":"COMMUNITY_PERCENT()","a805bfef":"addInvestors(address[],uint256[],uint256[],address[])","a8074b55":"bundlingDenied()","a807598e":"incluirUsuario(address)","a8077951":"updateLastBuyKeysPIDs(uint256,uint256)","a807ea0f":"newMostInviteTimes_()","a8083b74":"setContributionSettings(uint256,uint256,uint256)","a8084938":"CryptoCupToken()","a80955b1":"setFoundersTokenAllocation(uint256)","a80a60fb":"saleFirstPresaleEndBlock()","a80a9e40":"setActive(address,address,uint256)","a80acfd3":"DisableSelling()","a80aee59":"isActiveDelegate()","a80bf3e6":"tokenLocker()","a80bffb6":"tokensOfSell()","a80c609e":"tokenImbalanceData(address,uint256)","a80c89d2":"RollbackedContract(uint256,address,address)","a80d2fb4":"getPeerMessageCount(address,address)","a80d4e9a":"EtherAuction(uint256)","a80da0f1":"SpursvsWarriors419()","a80db9fb":"nextStealTimestamp()","a80dca57":"recharge(string)","a80de5ea":"lottery(uint8)","a80e3659":"testDisputedReadValid()","a80e6c01":"getClassPlayers(uint256,uint256,uint256)","a80f54ca":"transferToExchange(address,uint256)","a80f9e2d":"RankingBallGoldCustomToken(address)","a80fe377":"Goahead()","a8103621":"dividendsPayed()","a810385e":"setBla(string)","a8103c80":"SSHToken(uint256,string,uint8,string)","a81077a7":"usersRegistered()","a810a54c":"withdraw(bool)","a810bc13":"ETCharPresale_v2(address)","a8132a46":"hardCapInToken()","a8140c95":"OceanScapeCoin(uint256,string,string)","a8150e72":"removeOrderOfVendor(address,uint256)","a8154e17":"teamUnfreezeDate()","a815a85d":"getItemCounts()","a815ff15":"set(string,address)","a8164a84":"ThxMsg(address,string)","a816899e":"icoBalances(address)","a817163b":"BusTokenLock(address,address)","a817ccac":"threeParams()","a817d2de":"extract20(bytes32)","a817f668":"findPlayer(address)","a8181851":"dapCarToken()","a8182cd3":"serverCancelActiveGame(address,uint256)","a818a222":"TokenAdded(address,uint256,uint256)","a819515d":"updateParentTotalTheoreticalSupply()","a819819b":"sweepDeityCommission(uint256)","a819c36c":"ClapToken()","a81a3e4d":"hasOpenApplication(address)","a81afa57":"sellSpecialTokens(address,uint256)","a81c3bdf":"ethFundDeposit()","a81c804e":"addToWhitelistBulk(address[])","a81d18d7":"setTokenMeta(uint256[],uint256[],uint256[])","a81d3424":"getFrozenToken(address)","a81daf29":"ETHernitymining(address)","a81dfde0":"CBT()","a8201894":"getCurrAuctionPriceAuctionID(uint256)","a820b44d":"iterateStart()","a820d02e":"MarketingDevelopmentAmount()","a8222adf":"sellerNumOpenDeals()","a82375d1":"ToGoConcert(uint256,string,string)","a8239d0b":"getPrice(string,address)","a8243ff4":"getactlen()","a824bd9a":"autoSell(address,uint256)","a824e636":"walletSend(address,uint256,address)","a82524b2":"presaleStartTime()","a8267482":"msp()","a826b422":"addCbAddress(address,bytes1,address,bytes)","a826ee78":"submitResult(uint256,uint256[])","a8276d97":"SetcashOutTime(uint256)","a827ef0a":"EvLoveItemAdded(bytes32,address,uint256,uint256,string,string)","a828251e":"voteProposal(bytes32,address,address,uint256,bytes32,string,bytes)","a8287f79":"addProduct(address,uint256,string,string,string)","a828eec5":"pureFn(uint256)","a828f441":"redeemFromEscrow(uint64)","a82970d7":"SetWorldData(uint256,uint256,uint256,uint256,uint256)","a829c3d1":"requestArbitration(bytes32,uint256)","a829d8ec":"VUP_TOKEN_SUPPLY_TIER4()","a82aa270":"updatePick(uint256,uint256)","a82b3640":"getDrawP()","a82ba2d5":"renounceKeeper()","a82cb091":"BuyDoubler()","a82d1d1a":"TwinkleToken()","a82d4ac1":"Crowdfunding(address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","a82e0dcc":"theCyberMessage(string)","a82e1374":"changePublicallocation(uint256)","a82e3179":"jingleContract()","a82fc94f":"issueTokensPresale(address[])","a8308665":"add5NewTraits(string,string,string,string,string,bool)","a8311aa8":"getParties()","a831751d":"addPartOwner(address)","a8319481":"cancelRole(address,address)","a831f0bb":"compareStringValue(bytes32,bytes32,bytes1)","a8321459":"topUpAvailable()","a8324a3f":"batchRestoreWebGift(address[])","a832d7df":"newSell(uint32,address,uint256)","a83332d5":"TokeniVOX(uint256,string,string)","a833386b":"toBytes32()","a833c7ab":"incentivisationAllocation()","a83467a1":"dividendcommission()","a8347f6a":"maxCrowdsaleCap()","a834c43d":"buyAccess(string)","a83500e0":"check_redeemed(string)","a8351c03":"pauseCrowdsale()","a83627de":"updatePeriod()","a8366fef":"TOKEN_STANDARD_ERC20()","a8370492":"setTrFee(uint256)","a8372511":"STCoin(uint256,string,string)","a837aeb2":"AdminStartDraw(string,bytes32)","a837c35e":"createAmountFromEXORForAddress(uint256,address,address)","a8385231":"sendTokensToAddress(uint256,address)","a839fc56":"setGoalAchieved(bool)","a83b1e21":"reply(string,bytes32)","a83cf7fe":"RefundVault(address)","a83e1d10":"getUserQuoteIds(address)","a83f9429":"extend1Week()","a840617f":"LogKycRefused(address,uint256)","a840d2a8":"GTO()","a8418d01":"BECToken(uint256,string,string)","a841da4b":"lockJackpots()","a841f1eb":"handleFunds(address,address,uint256)","a842375e":"refundToken(address)","a842f0f2":"upgradableContractAddress()","a843c51f":"transferContractOwnership(address)","a843c97f":"attack(uint256,uint256,uint256[])","a844545d":"completeMinting()","a84524a4":"getDetailedPollResults(uint256,uint256)","a84694c8":"permissionIndexOf(uint8,address)","a8469ce9":"MINING_REWARD()","a846c2fd":"payback(uint256)","a846fa37":"waitQuery()","a8474a30":"_computeRunes(uint256)","a847a1b3":"StarbasePresaleWallet(address[],uint256,uint256)","a847a71c":"isOnTrading(uint64)","a8484938":"doApprove(address,uint256)","a848e2ec":"tokenSupportSoftLimit()","a8492f46":"pickTicket(bytes4)","a84950df":"calculateTimeBonuses(uint256)","a8496426":"getOrderId()","a849cef8":"minDeposits(uint256)","a84a70aa":"lockedTime(uint256)","a84b9de0":"dequeueDouble()","a84c5330":"createNewRevision(bytes20,bytes)","a84c6362":"ICO_CAP4()","a84d073a":"interfaceMintTokens(address,uint256)","a84dd3a6":"teamWallet_3()","a84e5f40":"CRYPTONEREUM()","a84eb999":"removeAddresses(address[])","a84ebb58":"setVM(bytes32[10],uint256[4])","a84f3e5a":"overdraftUnvested()","a84f763b":"TokenTransferred(uint256,address,address)","a8514113":"_emitCategoryEvaluated(address,address,uint8,uint256,uint256)","a85165e0":"checkSubPrice(bytes32)","a851e2f6":"LogCreateNET(address,uint256)","a852995d":"bonus1StartETH()","a852d5ba":"emergency_withdraw(address)","a853d2cd":"getUserByUsername(bytes20)","a8542f66":"ANY()","a855d4ce":"uintStorage(bytes32)","a8565523":"AquaPay(string,uint256,uint8,string)","a8567a1c":"bidderUpdateBid()","a85688d2":"_rewardPoS()","a856b9c2":"lastRandom()","a85717d3":"open(bool)","a8575102":"getDnasCount()","a8590135":"issuanceEnabled()","a85923aa":"ZibPay()","a859a092":"minToken()","a859eb81":"BONUS_TIER_4_LIMIT()","a859fffe":"SweDexDividends()","a85a726d":"NewUser()","a85aba19":"setPreURI(string)","a85ade82":"FOUNDERS_VESTING_DURATION()","a85adeab":"endTimestamp()","a85b13b9":"claimBitNauticTokens()","a85c06b7":"_packRaceData(uint256,uint256,uint256,uint256)","a85d11b3":"verifyCode(bytes32,uint256)","a85d3179":"getMiningRate(address)","a85e07e2":"getMesa(uint256,uint256,uint256)","a85e59e4":"transferFrom(bytes,address,address,uint256)","a85ef579":"appendDarknode(address,address,uint256,bytes,uint256,uint256)","a85f3761":"repayments(uint256)","a85f5c2e":"tradingData()","a85ffd1a":"setAutoDistributionViaETHContributions(bool,bool)","a85ffe4f":"manualSell(address,uint256)","a860bfa2":"BRCToken()","a860d119":"communityTokenHolder()","a861baea":"presale_address()","a861e16f":"setEmployeeSalary(address,uint256,uint256)","a861f99a":"getClientPaidUpTo(address)","a8627c15":"LINICOIN()","a863f595":"Btczocker(uint256,string,uint8,string)","a86416e2":"CROWDSALE_PRICE()","a8644cd5":"contract_eth_value_bonus()","a86477ad":"offeringEnabled()","a8648aad":"TokenFunctions()","a8659216":"setInitialLockinDays(uint256)","a8660a78":"vestingStartTime()","a866665a":"ConsoToken()","a8670711":"isCloseSale()","a8681169":"withdrawWhiteList(uint256)","a868378b":"returnOfIncome(address,uint256)","a8683df7":"TokenMyUnicoin(uint256,string,string)","a868cd6f":"LogPolicyManualPayout(uint256,bytes32)","a868ec85":"setName(uint256,uint256)","a86abb3d":"allFilmsInfo(uint256)","a86b73f0":"toByte(uint8)","a86bc181":"EXPECTED_END()","a86c938b":"balanceOf(bytes8,address)","a86e3576":"symbol(address)","a86ed5e4":"thirdMaxAmount()","a86ee746":"restoreCutieToAddress(uint40,address)","a86f7212":"_allocatePlayerTokensTo(address,uint256)","a870a0a5":"getChannelClosingSettler(bytes32)","a870be8a":"setVendingStepValues(uint256,uint256,uint256)","a870ddc2":"moveTokensFromSaleToCirculating(address,uint256)","a871da91":"SHORT()","a871ffdc":"Getsafe(uint256)","a87253c7":"getlastuser()","a873b155":"GetMinimumBet()","a8740a71":"getCreditLedger(uint256)","a8754caa":"purchaserMapping(address)","a8756337":"getCurrentValidatorsLengthWithoutMoC()","a87595ce":"buynowPrice()","a875b2ed":"setIsBatch(bool)","a87607af":"Show_address_for_option_B()","a8762854":"numberInRaffle()","a8766017":"ARXToken()","a876a8a0":"_round()","a877b557":"TransferMinimumFeeExecuted(uint256,address,uint8)","a877db9f":"none()","a878ad27":"createTokenToOperation()","a878aee6":"withdrawAllTokens(address)","a8790533":"distribution(address[],address,uint256,uint256,uint256,uint256,uint256)","a879af45":"oldTokenBalance(address)","a879fcbb":"assetInfo(uint256)","a87af57b":"setTokenForSale(uint256,uint256,address,bool)","a87b1cd2":"whitelistedBeforeActivation(address)","a87b73c7":"StageOpened(uint256)","a87ced35":"startDispute(bytes32,address,int256)","a87d2321":"Gummy()","a87d8b6b":"walkClientOrders(address,uint128,uint128)","a87d942c":"getCount()","a87de9cc":"ADD(uint256,uint256)","a87e0c33":"newAgon(uint64,uint64)","a87e5d3f":"setPriceUpdateFrequency(uint256)","a87e7552":"isValid(bytes,bytes)","a87e8aad":"getMyCat()","a87ebcb5":"setJackpotMinimumAmount(uint256)","a87f32a2":"ownFiles(string,string,string)","a87f84fc":"updatePersonLocation(uint256,string)","a87ffd1d":"GenesisInitialSupply(address,address)","a880319d":"addToken(address,string,string,uint8,bytes,bytes)","a880531f":"getOraclizeCbAddress()","a8817403":"addFamedStar(string,uint256,uint256)","a881f85e":"clearTokenSale(uint256)","a8825650":"slice(bytes32[],uint256,uint256)","a8826602":"getAllCellIds()","a882d49f":"replaceMultisig(address)","a8834aac":"getPointer(uint8)","a8836844":"returnPayees()","a883aab3":"GlobalAmountCapHard()","a883b0c4":"changeRate(uint256,uint256)","a883fb90":"getPendingVersion()","a885508a":"removePermissionManager(address,bytes32)","a885dab6":"getTokensPerDay(uint256)","a8862fcc":"isEscaping(uint32,int256)","a8865bda":"masternodeIsValid(address)","a886d66f":"crowdsaleList(uint256)","a8870d6f":"mintingDataUpdatedAtBlock()","a887d816":"checkTransferRequirements(address,uint256)","a888e4c9":"releaseSingleAm()","a8893a6e":"getNumOfSalesWithSameId(bytes16)","a88b2562":"AZLTEST()","a88b61aa":"isIncreasedEnough(address)","a88be96b":"RESERVE_EXCHANGE_RATE()","a88c0a9f":"LAMP()","a88c5ef7":"NextPayout()","a88c906c":"_buyUninitializedPixelBlock(uint256,uint256,uint256,bytes32)","a88e34cb":"setERC20address(address)","a88ec6fa":"showUnpaidDepositPercent(address)","a88ef2d3":"CarlosToken()","a88fa4b4":"updateStartTimeManually(uint256)","a88fe42d":"setPrices(uint256,uint256,uint256)","a88fe73a":"discountValue10()","a89004c5":"modifyQuanticCloudIOTData(uint256,uint256)","a89026a3":"teamProfitAddress()","a890b7d9":"finalize(address,bool)","a890d257":"IsThisPrivate()","a8915c7e":"periodPreITO_weiPerToken()","a89171e3":"checkHasilBet(address)","a89196a6":"eraExists(bytes32)","a891af67":"megaCandy()","a891fdc3":"earlybirdEnded()","a8928b45":"withdraw_internal(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[4])","a8929183":"LinkyexToken(address,address)","a894878d":"createPromoMeme(address,uint256,string,uint256)","a8967557":"isPresaleClosed()","a896d92d":"isRegularAddress(address)","a8977041":"Plenum(uint8,uint256)","a8978434":"softResolveAnswer(uint256)","a8986327":"minTokenForSP()","a899e615":"raiseRatio()","a899ef57":"parentSnapshotId()","a89a4f09":"creatorBalanceChecker()","a89acca4":"setCrowdsaleDates(uint256,uint256)","a89ae4ba":"oracleAddress()","a89c5be0":"MAX_TOTAL_TOKEN_AMOUNT()","a89c8c5e":"setTokenAddresses(address,address)","a89cdad9":"nextSnapshotTime()","a89d1eb9":"foobarToken()","a89f173c":"setUint(int256,uint256,uint8,uint16,uint32,uint256)","a89f5f85":"cmp(uint256,uint256,bool)","a8a01c3e":"cvcOwner()","a8a1d27b":"firstRoundWMTokensLimit()","a8a403df":"MaptPresaleToken(address,address)","a8a4bf11":"startNewAuction(uint64,uint64,uint64,uint64)","a8a52747":"getRelayedSender(bytes16,uint8,uint128,uint8,bytes32,bytes32)","a8a54008":"registerAddress(address)","a8a5c22c":"refineCost()","a8a618e9":"draw_random_card(uint8)","a8a6e9df":"deliveryToken(uint256,uint256)","a8a77984":"StoreBytes(bytes)","a8a9aaa9":"TokenLayer(address,address)","a8aa1b31":"pair()","a8aa7e19":"buyTeamHandle(string)","a8aaa2a6":"StringMapper()","a8abe1fb":"getCET4ScoreById(uint32)","a8abe69a":"getTransactionIds(uint256,uint256,bool,bool)","a8ac262b":"phaseCrowdsale()","a8ae3745":"evaluateTokens(uint256,address)","a8ae3e4b":"getAllocatedTokenValue(address,address,address)","a8ae5eb8":"howManyTanks()","a8ae9046":"RFToken()","a8aeecd9":"getCostForBattleCards(uint256,uint256,uint256)","a8af232b":"withdrawTopUp()","a8af4ff5":"getRegistrationStatus(address)","a8af6e05":"emitHashSet(address,bytes32,bytes32)","a8af74f1":"calcTrackerCount(uint256)","a8afc538":"priceAtInitialAuction(uint256,uint256)","a8b0312c":"GameStatus(uint8,uint8,uint8,uint8)","a8b05162":"_changeTilePrice(uint8,uint256)","a8b151fd":"santaFundWallet()","a8b1895d":"leftLottery()","a8b25075":"allowTransfers(bool)","a8b26420":"isUInt64ValidIn64(uint64)","a8b31f04":"HHH3(string,string)","a8b322b6":"verifiedWinnersCount()","a8b415d2":"BanliangCoin()","a8b42f1f":"registerAsAnOpponent()","a8b50ee0":"getWinnningsLength()","a8b57f15":"VIPPurchase(address,address,uint256,uint256)","a8b60b93":"ackMsg(uint256,string)","a8b82c5b":"BaseAgriChainContract()","a8b86c4c":"ZchargeToken(uint256,string,string)","a8b8799f":"getRecordId(uint256)","a8b88268":"checkEarlybird(uint256)","a8b973a1":"bonusMultiplier()","a8b981d3":"FOURTH_RATE()","a8baa97d":"getPlayerDetectGroup(address)","a8bb76d4":"checkSettlement()","a8bbe5a4":"ERC20Voting(address)","a8bc362e":"KleynCoin()","a8bc3a6c":"whitelistedPlannedContributions()","a8bcbf3c":"payManagementBodyAmount(uint256)","a8bd9c32":"tokenIndexToApproved(uint256)","a8bda3e9":"getTRed(uint256,uint256,uint256)","a8beb2cf":"Lockup6m_20180801(address)","a8bfd57f":"getMinerOffset()","a8c0f15e":"addProperty(bytes32)","a8c10d78":"BetSubmission(uint256)","a8c12d7c":"PayMain(address)","a8c17ec2":"incremental(uint256)","a8c1a0b7":"BuyTokensExternal(address,string,uint72,uint88,uint88)","a8c23cb9":"isValid(bytes32,string,address,uint256,address)","a8c278a2":"verificationFee()","a8c2c4a7":"mainICOEndTime()","a8c310d5":"distributeAmounts(address[],uint256[])","a8c3d246":"LamaToken()","a8c3ec48":"oraclize_query(uint256,string,string[2])","a8c499a0":"lrcDeposited()","a8c4c8bc":"right64(uint256)","a8c65126":"determineNextRoundLength()","a8c69264":"setreleaseFinalizationDate(uint256)","a8c6e684":"addint16(int16,int16)","a8c89c5b":"payableEnabled()","a8c923e2":"BlockchainDevCoin()","a8c9f8ae":"unSoldTokens()","a8ca698b":"absSub(uint256,uint256)","a8cab3d1":"Frozen()","a8cb7b4f":"ownerRequired()","a8cbabb7":"blockCrowdsale()","a8cbb5de":"addMake(uint256)","a8ccef6c":"setClue2(string)","a8cd0a80":"getTest()","a8cdcebd":"exchangeIdsToOpenMakeOrderIds(uint256,address)","a8ce0e60":"QuestTestToken()","a8ce6b73":"calculateWithdraw(uint256,uint256,uint256,uint256)","a8d00e73":"dayLength()","a8d088bb":"getManagers()","a8d10fb8":"getOrgCount(string)","a8d18472":"estWolkToBurn(address,uint256)","a8d18bc0":"HireGoCrowdsale(uint256,address)","a8d1fcff":"cancelNewBallot()","a8d201ab":"removeNodeFromWhitelist(address)","a8d34ea5":"getCompte_10()","a8d3a63d":"pullEtherFromContractAfterICO()","a8d48709":"EARLYBIRD_PRICE_MULTIPLIER()","a8d49e64":"setWhitelistAdmin(address)","a8d4a03b":"heroes(uint256)","a8d4ee0f":"setOwnerExt()","a8d51f7e":"GiftToken(address)","a8d5308c":"bountymanager()","a8d5652e":"tokensPerTier()","a8d5efa3":"CATPayment(address,address,uint256)","a8d5fd65":"share()","a8d84b7c":"purchaseWithIndex(uint256,uint256)","a8d84fc3":"activeEnd()","a8d88127":"exists(int256,int256)","a8d8e055":"checkAddressBatch(address[])","a8d95496":"getHighestPriceOwnerAt(uint256)","a8d95fb2":"claim(address,string)","a8d99045":"totalSellCardNumber()","a8d9a89a":"initialICOCap()","a8d9e8a3":"sendFeeIfAvailable()","a8da6873":"_fetchCreatedOrdersForPayer(address)","a8dab783":"isPASigned(uint32)","a8db1837":"test_updateAndGetPrice()","a8db2445":"setCompany(address)","a8dc824c":"unlockSupply()","a8dd07dc":"totalBonus()","a8ddefab":"withdrawNacNetfRe(uint256)","a8df3e69":"post(address,address,uint256,string)","a8df7894":"investDirect(address,uint256)","a8df80ad":"Hellob()","a8df99a9":"_emitSkillsSet(address,uint256,uint256,uint256)","a8e02ccb":"activeCall(address)","a8e04f34":"disableInitialStage()","a8e1903c":"RevokeTokens(address)","a8e1b53f":"AICoin(address,uint256)","a8e3371a":"eduCash(uint256,string,string)","a8e3a6b6":"communityTokensCap()","a8e48a7e":"PausableCrowdsaleImplUnpaused(uint256,uint256,uint256,address)","a8e496b9":"toDay(uint256)","a8e4fb90":"proposer()","a8e553f5":"decrypt(uint32[26],uint32[4])","a8e5740c":"setOgToken(address)","a8e5e219":"jobStatus(uint256)","a8e5e4aa":"approveERC20(address,address,uint256)","a8e6e77b":"addManyAdmins(address[])","a8e6ee52":"goldCertVerifier()","a8e6f9dc":"set_property_address(uint256,string,address,string,string,string)","a8e70dd3":"unblockMessagesFrom(address)","a8e81844":"GeneBTC()","a8e8f677":"maxDice()","a8e91396":"setICOPriceatDollar(uint256)","a8e9b249":"versionSelectors(bytes32,bytes32)","a8ea8554":"changeAmount()","a8eaefd7":"TotalFee(address[])","a8ec9ffb":"CrowdsaleStageStarted(uint256,uint256,uint256,uint256,uint256)","a8ecc7f1":"rbac()","a8ed1be5":"bts_address2()","a8eee036":"Locality(string)","a8ef4b66":"PERMISSIONMANAGER_KEY()","a8ef6edd":"testTrusting()","a8f02555":"DXF_Tokens()","a8f03616":"ownerTokenSharePct()","a8f06876":"CETToken(uint256,string,string)","a8f07dcc":"minimum_investment()","a8f0d3a7":"getArrayBytes32(bytes32)","a8f0e6e2":"sellPriceOf(uint256)","a8f0ebeb":"decreaseClaimsBalance(address,uint256)","a8f0fbbd":"helloToken()","a8f11eb9":"autoDistribute()","a8f2ba4c":"bet_win()","a8f2d63b":"isPublicTokenSaleRunning()","a8f436df":"startEvaluating()","a8f56600":"model_accuracy_criteria()","a8f5bbd9":"initiateUser()","a8f5c673":"savePepe(uint256)","a8f653fa":"finalizeStage()","a8f6c913":"erc20Contract()","a8f6d313":"minimumFundingUSD()","a8f6d84d":"returnPercentage()","a8f6f1f0":"randomGenerateMethod()","a8f7e238":"getAdminsForGame(uint256)","a8f7f82d":"ICO_start_future(uint256)","a8f8884d":"botIndexToApproved(uint256)","a8f899a0":"LogBuyForInvestor(address,uint256,string)","a8f8c6de":"getCollaborated(uint256)","a8f8e2ae":"testFailIfReverts()","a8f927e9":"getLanguage()","a8f92b52":"MindCoin(uint256,string,string)","a8f9868e":"getTotalBalanceFor(address)","a8fa14b0":"disableContractUpgradability()","a8fa2fc6":"getCurrentDevReward()","a8fa5682":"dnsRecord(bytes32,bytes32,uint16)","a8fa6e14":"setLastRewardTime(uint256,uint256)","a8fa8e52":"valuePerToken()","a8fac082":"claimMonthlyDemurrage(uint256)","a8faf6f0":"SmartAirdrop()","a8fc1a2a":"realDevReward()","a8fc32de":"sendDividends()","a8fca0fc":"toRtc(uint256)","a8fd1026":"gemPerEther()","a8fdb290":"EtherToken(uint256,string,string)","a8fdf903":"_underMintNextTokenId(uint256)","a8fe43ce":"getVotingProxy(uint32,int256)","a8fe5465":"PRE_SALE_15_BONUS_MIN()","a8feda51":"processRefunds()","a8ffa37f":"gameTokenResolution(uint256,address,uint256,address,uint256)","a8ffa9d9":"addCandidato(string)","a9011990":"getOneDepositRec(uint256)","a90135df":"pgoInternalReserveWallet()","a9014b0f":"isListed(uint64)","a9018896":"refreshScore(uint8,bytes32)","a901aaa0":"AirRewardmaxTotalSupply()","a901ce92":"founderTokenWithdrawnPhase4()","a9030162":"refundFish(address,uint256)","a903073e":"getOwnerTeam(address)","a9036b43":"Minter(address,uint256,uint256,uint256)","a903741a":"TEAM_BONUS()","a904cc53":"withdrawEtherBalance(uint256)","a904e5c8":"TRM1BonusActive()","a9055b81":"makerRequiredKncStake(address)","a9059cbb":"transfer(address,uint256)","a905f4c0":"DUOLINGO(uint256,string,string,uint256)","a9061415":"getsellmoney(uint256)","a906f837":"relocationSwitch(bool,address)","a9076f9e":"setBidding(bool)","a908f2e3":"Faucet(string,address)","a9092c11":"numChoices()","a909d7d3":"removeTokenEmission(uint256)","a909fc56":"mint(int256,address)","a90a4ac2":"addStruct1(string)","a90a6427":"setPaydayFrequencyInDays(uint8)","a90a6952":"EmissiveErc223Token(address,string,uint8,string,string)","a90a8eea":"getDaysInYear(uint16)","a90ae887":"claimPayment(uint256,uint256,bytes)","a90b5e62":"setTokensContractAddress(address)","a90d3cda":"totalContributionsBy(uint256,address)","a90e0608":"icoFinalized(uint256)","a90e09e2":"addWhitelisted()","a90e65a3":"MinorPrizePayout(address,uint256,uint8)","a90eb2b9":"sendFundsToNextCycle(uint256,uint256)","a90f8e9a":"referredBy(address)","a90fcfa0":"_generateName(string,string)","a90fd971":"minerRelaseTime()","a90fdf20":"test_bytes(bytes)","a9112140":"change(address,uint256,uint256)","a91202d3":"createUser(bytes32,bytes32)","a9120f6d":"release_by_manager()","a913c43f":"getLockedAmount_jiedians(address)","a913eb24":"_price_token_ICO2()","a9142808":"logFollowerTradingTx(bytes32)","a9147e22":"setIsCheckStage(bool)","a9157518":"add5NewStreetNames(string,string,string,string,string)","a9171d56":"purchaseCallbackOnAcceptAndDistribute(uint256,address[],uint256[])","a9188878":"setPrimordialPrices(uint256,uint256)","a918c09c":"supplyFuel(uint256)","a91a1080":"getCase(uint256)","a91a39ad":"havedCrowdCoin()","a91aae63":"NihilCoin(uint256,string,uint8,string)","a91abdcb":"referralCut()","a91b2e9f":"getProfit(uint256)","a91bc3cd":"nextMinimumTimeout()","a91be87f":"addEarlylist(address[],address)","a91c39a9":"setEnergyCost(uint256)","a91ce985":"createOrder(address[3],uint256[4])","a91cec21":"ineRexToken()","a91cfecf":"Foosball()","a91d6c65":"initLockedBalanceOf(address)","a91d99db":"whitelistAddressesPresale(address[])","a91ed8c6":"mintReserve(address)","a91ee0dc":"setRegistry(address)","a91f559d":"NeLunaCoin()","a91faadf":"JoshContract()","a91fbb99":"MonetoSale(address,address)","a91fc821":"Registry(address,address,address)","a9203f3c":"getFlower(uint256)","a92100cb":"loop()","a921ba7d":"totalBattleboards()","a9221706":"_transferAndCall(address,address,uint256,bytes)","a9225743":"_commitBallot(bytes32,uint256,uint256,bool)","a92259fc":"AVAILABLE_TOTAL_SUPPLY()","a923ebac":"unbindEthereumAddress(address,bytes32)","a923fc40":"setInfo(string,string)","a9240e32":"setEtherRatioForOwner(uint256)","a924d3ca":"getMangers()","a924ee60":"disableTokenMinting()","a9250212":"publicationCount(address)","a925252a":"acceptAuctionResult(address,uint256,string)","a925d85e":"Exchange(address,address)","a926819f":"disableWallet(address)","a927f46b":"Etherwow()","a9287619":"buyXaddr(uint256,address)","a9293efe":"calculateSeasonScore(address,int8)","a92950f6":"chainWith(uint256,uint256)","a9298848":"askForALoan(address,uint256,uint256)","a92aafb0":"paused_1()","a92ab316":"EIN()","a92c300a":"getBidData(uint256)","a92c3231":"stageNumber()","a92ca27d":"editionInfo(uint256)","a92d5367":"changeTournamentTaxAmt(uint8)","a92d6a48":"disableAuthentication()","a92ec661":"isAfterStartTime()","a92f0c80":"TokenVesting(uint256,uint256,uint256)","a92f0cb9":"withdrawFailedOldOwnerTransferAmount()","a92fcf9c":"addRecord(string,string,string,bytes32,int64)","a9321573":"addExcluded(address)","a9324192":"walletOut1()","a932ed0d":"whitelistRemove(address)","a936444a":"POWH33()","a936c203":"reLoadXid()","a937c28b":"authorisedInvestors()","a937f12b":"TidealToken(address)","a9390454":"DevvotePrefund(address,address)","a9393452":"getAuctions(uint32,uint32)","a9396a1b":"getStageInfo()","a93a77c1":"available_percentage()","a93b1a65":"_referrerTax(uint256,bool)","a93b5331":"totalFundingSupply()","a93c1286":"Y2CASH()","a93d7c72":"quickChange(address[],uint256,uint256)","a93deda4":"Philanthropy(address,string,uint256,uint256,uint256,uint256,uint256)","a93e0386":"preSaleBonus4Amount()","a93e2b49":"YBQ()","a93e4044":"getCountTokensByLottery(uint32)","a93e8701":"BetCanceled(address,uint256)","a93fd5f1":"organizer5()","a940565e":"haveIBeenNaughty(address)","a9405923":"getParent(address)","a9405f4f":"HashToFileName(string)","a940d013":"ether_profit()","a9414cc3":"getPositionsAndTokensCnt(uint256)","a941be3c":"internalBuy(address,uint256,bool)","a941c8d6":"calculateWinningEntries()","a941ff21":"getCampaignEndDateById(bytes32)","a942bf05":"dDeployCommunityBallot(bytes32,bytes32,bytes32,uint128)","a942de01":"createSetup(uint256,uint256,address[])","a9430dcb":"Shabu()","a94385a0":"donateFromWallet(uint256)","a94387a6":"raiseBuyOrderCreated(address,uint32,uint32,uint80,uint256,int160)","a943c21f":"getVotingResult(address)","a9445499":"ZperMainSale(address,uint256,uint256,uint256)","a944f15b":"createAuction(address,uint16,uint16,uint256,uint64,uint16,uint16,uint64,uint256)","a94510ca":"withdraw_badge()","a9457d9c":"whatIsCurrentCap()","a945c5c3":"totalInvestments(uint256)","a945f90f":"partnersWallet()","a9466a88":"getAllScripts(uint256)","a946d7bb":"setMedalsClaimed(uint16)","a9472396":"getClientReward(uint256)","a94834a1":"openGameRange(uint256,uint256)","a948d72d":"ZethrBankroll()","a9496e73":"timeBeforeJackpotReset()","a949c637":"addOwner(address,address,address)","a949f3af":"getMyLastCollectHour(uint32)","a94a06e8":"findRegularTime()","a94ab274":"corePay(uint256,uint256,uint256,string,uint256)","a94c33a6":"Auxilium()","a94c468d":"RemoveRank(uint256,uint256)","a94c7c65":"limitedPrint(address,uint256)","a94e7ed4":"isSpecificallyApprovedFor(address,uint256)","a94feacc":"claimTokenWindowOpen()","a95022a6":"GoodTimeCoin(uint256,string,string)","a95055a8":"getPlayerBoardsIDs(bool)","a9505eb4":"maxOfArray(uint256[])","a950fb0e":"b64decode(bytes)","a9510f89":"totalAmountOfTokens()","a951c534":"_CallScheduled(bytes32)","a951c994":"setSetupComplete()","a951f28e":"dayaToken()","a951fad2":"CryptoX(uint256,uint256)","a9522f4e":"IsDividendAvailabe()","a95236ed":"DeDeTokenContract(address)","a95240c4":"memberShareCount()","a95281f0":"registerPoA(string,bytes32,uint256[],uint256[],address,address)","a952f268":"MAYExchangeRate()","a9535320":"TwoXJackpot()","a9538157":"increaseApprovalByLegacy(address,address,uint256)","a953d08d":"mintBounty(address,uint256)","a954736d":"cancelSellPop(uint256)","a9549f81":"getDAOId(uint256)","a954c209":"great(uint256)","a9550ecb":"getMonsterDefenseFromDna(uint256,uint256)","a9553d74":"phaseThreeBonusPercent()","a9559dd7":"updateBalance()","a95609ca":"editContribution(address,uint256,uint256,uint256,uint256)","a9572ac7":"setMulFactor(uint256)","a9580edd":"distribute(uint256,uint256,address,uint256)","a95824b4":"votingOpen()","a95836d1":"finalizeICO(address)","a958ffc4":"fundingDurationInHours()","a9593b98":"changeVote(uint256,uint256)","a9595472":"SOC()","a95a3887":"rolloutDividends(address)","a95bc9a7":"changeChannel(address,uint256,uint256,uint256)","a95bfd36":"adminAddBallotOption(uint32,string)","a95c372d":"fetch()","a95c4d62":"purchaseToken()","a95c5339":"checkGameRegiester(address)","a95d017d":"getRevisionBlockNumber(bytes32,uint256)","a95d580c":"withdrawEarnings(uint256,bool)","a95d85d8":"withdrawTo(uint256,address,bytes)","a95d9c14":"Uncloak()","a95ff7d5":"isDecentBetCrowdsale()","a9604239":"maxAmountRoundSeed()","a9607011":"HappyEthericHome()","a96088a5":"vernamToken()","a9612f72":"emitOwnershipChange(address,address,bytes32)","a9615f59":"platAuction()","a961e9e8":"startSaleTime()","a9625fa8":"MANHATTANPROXY3RDST()","a962a7d6":"set_burned(uint256)","a9636b9f":"Bytes32Oracle(bytes32)","a964bb9a":"configureLimit(uint16,uint16)","a964bea7":"CheckRevoke(address)","a96594d3":"nextLotteryTTMTokenId10()","a965a941":"getNote(uint256)","a965e5c1":"setBonusAddress(address,bool)","a96654ee":"transferredOwner(address)","a9671d8f":"getProductionOf(address)","a9671dd9":"enableProxy(address)","a967f3e7":"emitProjectCreated(uint256,uint256,address)","a968309d":"plutochain()","a968991b":"confirmed()","a9689d0f":"transactionFeeRate()","a968ad0e":"resetBonuses(address)","a968b97c":"verifyCodeLength(string)","a96948c6":"chefBalanceOf(address)","a969574d":"ratePreICOEnd()","a969f080":"QUIKKO()","a969ff0a":"collectFee(uint256)","a96a4998":"DEFROST_FACTOR()","a96a5a5b":"pwin()","a96af0f4":"saleSupply()","a96b1828":"GLOBALETHER()","a96b2dc0":"getCallCount()","a96b3ab8":"getDthShop(address)","a96c3e6e":"getPlayerAddr(string)","a96c4eb7":"Sold(uint32,address,address,uint256)","a96c6bfe":"setDeveloper(address,bool)","a96ce7aa":"unlock(string)","a96f45c7":"ETHTransfer(address,address,uint256)","a96f8668":"releaseTokens()","a96fb9b4":"testTokenA()","a970a23a":"internalUpdateRates(bytes4[],uint256[],uint256)","a970ef6e":"tokenContractDefined()","a9718d51":"getTransferValuebyArrd(address)","a971c23d":"minimumFeePercentage()","a9725a68":"LIMIT_STAR5()","a9726c1e":"withdraw_bounty()","a972a451":"sqrt(uint32)","a973e27c":"testFind()","a9740fdf":"SwapCreation(address,address,uint256,uint256,address)","a9743c68":"getCallPayout(bytes32)","a9746acf":"UserBought(address,uint256,uint256,uint256,uint256)","a974e21f":"HKIN(uint256,string,string)","a97501a3":"ManUvsTottenham()","a97583de":"_transferByPartition(bytes32,address,address,address,uint256,bytes,bytes)","a9758fcc":"CurationRightsTransferred(address,address)","a9764152":"createFunction(string,string)","a9767e14":"masternodeMineTokens()","a977449e":"unbanReferrer(address)","a977c71e":"changeQuota(uint256)","a9782954":"hunterOf(address)","a979169f":"updatePackage(uint256,string)","a9791aec":"tgeSetFinished()","a9797521":"bn128_is_on_curve(uint256[2],int256)","a97a6d63":"setWhitelisted(address,address,bool)","a97b8b48":"LOG_CurrentPercent(uint256)","a97b8b4d":"closeBallot()","a97c8eb4":"RTEToken()","a97cb561":"isTransferAgent(address,address)","a97cc114":"getTile(uint256)","a97d48fd":"sendContractFundsToAddress(uint256,address)","a97e5c93":"isOracle(address)","a97fc381":"toSlice(bytes)","a97fe7b6":"airDropTotalSupply()","a97ffd5e":"safeToSell(uint256)","a9804acb":"HealthyCoins(string,string,uint256)","a980bb9e":"isDisclosureSigned(uint256)","a9814d14":"Outcome()","a981daca":"testIntParserNegative()","a9820ead":"Ballot(bytes32[],bytes32[])","a9824288":"CTMC()","a9825b7c":"bonusUnsold()","a9831437":"setCreationPrice(uint256)","a9831edf":"unlockFundsAndPassEther()","a98325b6":"collectDividend()","a983637e":"BACHELORCHAIN()","a9839dd7":"exchg(address)","a983c932":"isValidContract(bytes32)","a983d414":"safeassert(bool)","a983dcc0":"setDefault(bytes32)","a983e1bb":"random(uint256,uint16)","a984cec2":"additionalPresaleInvestors()","a9850e26":"SellToyMoney(uint256)","a9854087":"closeAt()","a9856d6d":"initSale(address,address,uint256,string)","a985e6c6":"withdrawAirDrop(address[],uint256)","a986c969":"stand(address,uint8[],bytes32,uint8[],uint8[],bool[],uint256,bytes32,bytes32)","a986ef4a":"nextRoundCoolingTime()","a9872393":"racesInfo(uint256,uint8,address)","a9875d70":"stage4Start()","a987d4c6":"_mint(address,uint256,string)","a987d654":"restoreItem(uint256)","a987f9da":"Creation(uint256,string,address)","a9888148":"testFailRetractNotRetractable()","a988845a":"setNewMessageNumber2(string,uint256)","a988df4b":"bgb_per_eos()","a988e371":"taxPaid(address)","a988ea3a":"NETHtoken(uint256,string,string)","a98902e9":"LUNVault(address)","a98a6d19":"ICOWeiRaised()","a98a89c2":"buy1(address[],address[],uint256[],bytes)","a98ad199":"removePermittedContract(address)","a98af238":"setCCH_edit_16(string)","a98c439f":"buyTokensAltercoins(address,uint256)","a98ca17d":"exercise(uint256,uint256[3],address)","a98cb619":"transferGenesis(address)","a98d5961":"pickRandomAssetPosition(uint256,uint256,uint256)","a98e4e77":"getAccountCount()","a98ee0b7":"_getInitAuctionSeconds()","a98f81fd":"BEXAM()","a98f99d8":"removeDefaultOperatorByTranche(bytes32,address)","a9901c6b":"getIsCoinReg(bytes4)","a990dd52":"unitsOneEthCanBuybefore()","a9918dfc":"getCompte_36()","a991a24d":"getTenancy(uint256,uint256)","a991cb0e":"respond(uint256)","a991faf9":"getTotalDividendsAmount()","a99306e7":"addPVPContender(address,uint256)","a993772f":"isPreIcoFinish()","a993e180":"getFechaTax()","a9948f7e":"GetNbyPrice(uint256)","a996d6ce":"setBurner(address)","a996d72e":"OracleChainToken(uint256,string,uint8,string)","a9974338":"setB0xToken(address)","a997f82f":"setCrowdsaleStage(uint256)","a998146b":"allToken()","a9985260":"test_setMaxSize()","a9989b93":"tokenAddresses()","a998fdbe":"getWithdrawAmount(address,address)","a9995010":"CappedCrowdsale()","a99a353b":"SWAP(address,address)","a99a3f03":"PLAYER_TIMEOUT()","a99a3f98":"initSale(uint256,uint256,uint256,uint256,uint256,uint256)","a99a985b":"betOn(uint32,uint32,uint256,address)","a99aa366":"presaleDiscount()","a99b9e39":"ICO_START_DATE()","a99be610":"PreIcoMessage()","a99bf4fa":"Potential_Investors(address)","a99ce372":"VINE_CAPACITY_PER_LAND()","a99d8d48":"changeTransferable()","a99da6af":"finishDeal(uint256)","a99dca3f":"hi()","a99df9c3":"oneCentInWei()","a99e0a81":"maxICOFirstSupply()","a99e6465":"addTier2Member(address)","a99e7e29":"register(bytes,address)","a99f0d9f":"_addBallot(bytes32,uint256,uint256,bool)","a99fba7d":"calculatePlatformCommission(uint256)","a99fc5aa":"tempCharity()","a99ffb7b":"timestamp(bytes12)","a9a07af9":"incFightToDeathWin(uint256)","a9a0844b":"getSaleVolume()","a9a0b495":"getPreSignedHash(bytes4,address,uint256,bytes,uint256,uint256)","a9a11111":"QuadraticVoting()","a9a18dda":"totalEthReceived()","a9a1fb96":"releaseTokensForce(bytes32)","a9a26902":"changeBubbleWallet(address)","a9a29afa":"getRefundTxFee()","a9a343b3":"Puzzled(address,bytes32)","a9a3a9c5":"vxtest()","a9a3cef4":"LISKClassic()","a9a3da4a":"getRemainUtcoin()","a9a40c71":"getNumberOfOpenDeals()","a9a51f89":"changeTokens()","a9a5e3af":"removeOwners(address[])","a9a615e9":"setWhitelistedStatus(address,uint256)","a9a6e9b4":"distributeLCD(address[],uint256)","a9a8679b":"authorizeAccount(address)","a9a8fc84":"ItemCreated(address,uint256)","a9a9d7af":"sellerList(address)","a9a9e4f7":"_payloadOffset()","a9aac3e4":"registerWineOwner(address,string,string)","a9aad58c":"PAUSED()","a9aae07a":"setMinGas4Accts(uint256)","a9aaf116":"BillahChain()","a9ab9b46":"getAccountItems(address,uint256)","a9abe7be":"setIcoSecondWeekRate(uint256)","a9ac225c":"ProposalTallied(uint256,uint256,bool)","a9ac4c5f":"checkMonthlyLimit()","a9acc475":"getBlockValue()","a9adaecd":"calcStopPriceFactor()","a9add7dc":"setEvolvePrice(uint128)","a9ae8323":"presaleDateFinish()","a9aeb059":"updateCeiling()","a9b07600":"setIdArray(address,uint256,string,string,uint256[])","a9b0c5a4":"preIcoFinished()","a9b0e8d5":"Cscchain(uint256,string,string)","a9b11426":"getImageOwner(uint256)","a9b12c4c":"blocktime()","a9b1d507":"makeWallet()","a9b1ffd9":"totalChequeValue()","a9b2c135":"lockedYears()","a9b2ca9c":"changeDragonGen(uint256,uint256,uint8)","a9b2cc09":"getMaxContributionAmount()","a9b35240":"packageExists(bytes32)","a9b46030":"BurnableOpenPayment(address,uint256)","a9b48ba7":"WIN()","a9b4b780":"getWeight()","a9b542bd":"getDna1(uint256)","a9b551d2":"getAdministratorMoney(address)","a9b5ae83":"messageForPeace(string)","a9b69e7c":"deployersCount()","a9b6c8bc":"getAddress(bytes16)","a9b76504":"getContestTeam(uint32,uint32)","a9b7c3bf":"cooAddress1()","a9b86292":"totalSharePool()","a9b86924":"buyStoreByName(bytes32)","a9b8dad6":"level_3_percent()","a9b8f7b8":"ProtectTheCastle()","a9ba2b09":"releaseFine()","a9bb03a4":"deptrespond(address,address,string,bool)","a9bb3274":"UCCOIN_PER_ETHER()","a9bc5db1":"createHeld(address,uint256)","a9bf1c9f":"ENS_ROOT()","a9bfe5c7":"TokenBalance()","a9c0838d":"getPI_edit_3()","a9c1873c":"setTokenPerEth(uint256)","a9c1f2f1":"decayRate()","a9c2ac3a":"getBetIds(uint256)","a9c2e36c":"getFactoryAddress()","a9c32c35":"NewExchangeRate(uint256)","a9c38476":"latestEditionReleased()","a9c4429a":"getInvestmentPackageInformation(uint256)","a9c45fcb":"upgradeToAndCall(uint256,address,bytes)","a9c4d62e":"S25ICO()","a9c5c9df":"aval(uint256,address)","a9c6a624":"updateNumber(int256)","a9c6c714":"unsoldAllocationOraclizeGasLimit()","a9c70eaa":"getUint(uint256)","a9c73e80":"setText(string,string)","a9c7648f":"distributeToken(address[],uint256)","a9c76999":"totalProfit(address)","a9c8733c":"correct()","a9c8dfcd":"AuctionCreated(uint256,uint256,uint256,uint256)","a9c95328":"renameList(address,string)","a9ca2072":"getAccountValue(uint16,uint8,uint8)","a9ca6057":"baseball()","a9cb2227":"getPlayerRoundTeamBought(uint256,uint256,uint256)","a9cbd0a5":"percentageToEthertoteDevelopmentWallet()","a9cc077a":"TOKEN_PRICE_DENOM()","a9cc4718":"fail()","a9ccc3af":"isEtherSpaceUpgrade()","a9cd2be6":"createSlot(uint256,uint256)","a9cd9e06":"secureWithdraw(uint256,address)","a9cdf643":"TEAM_MEMBER_VAL()","a9cf037a":"EEYcoin(address)","a9d04bd8":"getStakingRequirementTime(address,uint256)","a9d05989":"ETFW()","a9d07519":"TokensCappedCrowdsale(uint256)","a9d0b164":"priceOfEthOnUSD()","a9d0ddc7":"addContractWithInfo(string,string)","a9d0fd87":"_updatePurchasingState(uint256,uint256,uint256,bool,address)","a9d2293d":"lastClaimBlock()","a9d23ace":"getBundleExpiredTimeOfEmail(string,uint8)","a9d2d87c":"Manual_Mint(address,uint256)","a9d3da74":"SimpleAuction()","a9d40b77":"buyOffspring(address,string,uint256,uint256,uint256)","a9d424e2":"buy(address,address,uint256,uint256)","a9d48032":"maxSpendToken()","a9d49f62":"searchInsertionPoint(uint256,uint256)","a9d4d6bc":"lastBlock_f1()","a9d5e255":"GACToken(uint256,uint256)","a9d66127":"cancelPawn(uint256,address,bool)","a9d66352":"minimum_deposit_amount()","a9d72f82":"alterFeaturePetitionFee(uint256)","a9d74013":"claimedToday()","a9d82f18":"realDEXToken()","a9d85266":"setValue(bytes32,bytes32,uint256)","a9d9f572":"Println(address,uint32,uint256,uint256,uint256,bool,uint32)","a9d9f644":"viewLockUpStatus(address)","a9da0fad":"setOutcome(uint8,uint8)","a9da1417":"DEXHIGH(address,address,address,uint256,uint256,uint256)","a9dab167":"extendLock(bytes32,uint256)","a9db06e5":"perAmountRaised()","a9db9ce6":"getOraclizeGasPrice()","a9dbaf25":"length(bytes32)","a9dbe76f":"confirmSeller(uint256,uint256)","a9dc1d54":"singularDTVCrowdfunding()","a9dc491d":"getResolver()","a9dd1225":"random(uint256,uint256)","a9dd6895":"acceptTransaction(uint256)","a9dda4df":"setAuctionAddress(address,address)","a9de5045":"acceptAction(bytes32)","a9de581b":"auctionWinnerMessageHash()","a9df1aa2":"WithdrawalNormal(address,uint256)","a9e044ae":"SetProjectTag(string)","a9e10bf2":"recieve()","a9e2bcfe":"oneRoll()","a9e2e084":"_createPoo(string,address,uint256)","a9e30f96":"TokenPK(uint256,string,uint8,string)","a9e3fd27":"contentHostPrice(bytes32)","a9e406d5":"_setProviderSupply(uint256,uint256,uint256)","a9e4d6ce":"UpdateTokenRate(address,address,uint256)","a9e5714b":"AgriChain()","a9e732bb":"cashout(uint256)","a9e79359":"payoutForTimeline(uint256,uint256)","a9e7c2e5":"claimToken(uint256)","a9e7cb10":"Mediation(address)","a9e7f730":"FreyrCoin()","a9e899ef":"challengeFeeMultiplier()","a9e8a6bb":"prolongBonusPreIco(uint256)","a9e8f2f0":"get_refund_vocean_addr_amount(uint256)","a9e931ab":"addRec4L8R(address,uint256)","a9e94aa2":"Sponsor()","a9e966b7":"setState(uint256)","a9ea1896":"priceT1()","a9ea4aaa":"EntryToken()","a9ea6454":"basicThreshold()","a9ea96f0":"setDevelopersTokensPercent(uint256)","a9ea9d17":"PURCHASES_BONUS()","a9ead91c":"addressToAsciiString(address)","a9ebeb25":"nextReferrerId_()","a9ec77d3":"PublicSale(address,address,address,address,uint256,uint256,uint256)","a9ed003d":"sister()","a9ed9cb8":"disallow(address)","a9eeaeee":"getSanSlots(address)","a9eed530":"reduceOrderQty(uint256,uint256)","a9f00221":"resetTokenOfAddress(address)","a9f036dc":"accCompany()","a9f0a590":"transferAdministratorship(address)","a9f12d8a":"RaliusToken()","a9f16529":"thisVotersChoice()","a9f2db37":"unlockTokens(address,address)","a9f5de42":"crowdsalePhase()","a9f69edb":"checkRole(uint256,address,uint256)","a9f6def0":"HonestDice()","a9f73dd2":"_getRarity(string,uint8,uint8)","a9f79f7d":"FXT(address)","a9f7c131":"updateDateOfPurchase(address,uint256)","a9f7d03b":"admin_typeOf(address)","a9f7e664":"transferTokens(address,uint256,uint256)","a9f7f7e5":"o_algoritmo(uint256)","a9f844a8":"PlayerBalance(address,uint256,uint256)","a9f8792e":"votingProxyContract()","a9f8ec6c":"AlarmClockTipFaucet()","a9f940c3":"addChain(string,string)","a9f951dc":"getNation(uint8)","a9f987b5":"UFOcoin()","a9f992b1":"BTC8000on420()","a9fab274":"burnAuditApproval()","a9fae422":"getParents(address)","a9fb11b3":"potAddup()","a9fb4385":"ContributeWithSender(bool,uint8,address)","a9fb8fe6":"getFeesByAsset(address)","a9fbc614":"lookupTicketHolder(uint256)","a9fc9501":"indexTheWorkcrew()","a9fcf76b":"setIntArray(bytes32,int256[])","a9fd1bd3":"TradeAffected(uint256,uint256)","a9fd3f42":"transferApprovedFunds()","a9fde745":"transferTrade(address,address,uint256)","a9feca22":"_emitOracleAdded(address)","a9ff2a5e":"transferTokensFromWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","aa01ac22":"gmAddress()","aa01ef7d":"finishVotingPublic(address,uint256)","aa02a90f":"majorityMargin()","aa03214c":"calcBonusPercent()","aa0372e7":"getItem(bytes32)","aa03dfaa":"createChannel(bytes32,address,uint256)","aa0465b8":"setPriceData(uint256,uint16,uint256,uint8)","aa049691":"changeAccount(address)","aa04e566":"getWhoPiad(address,address,address,address,address,address,address,uint256)","aa052bd1":"startPreSaleStage()","aa056d2a":"cloneWithPopAndBottle(uint256,uint256)","aa058a73":"right6(uint256)","aa05b852":"s34(bytes1)","aa065074":"StageVestingToken()","aa071061":"LogAccountModified(address,address,bytes32,bytes32,bytes32,bytes32)","aa077992":"getProductEarning(uint32)","aa08523d":"lockedCustomer(address)","aa08c9e6":"getCoverImageCount(address)","aa08dfd3":"setFeeParams(uint256,uint256,uint256,uint256,bytes)","aa09bab8":"usedTotalSupply()","aa0bf9ba":"calculateRawPoolAmount(uint256)","aa0cd6eb":"_distributePoolReward(uint256,address,uint256)","aa0cfcbf":"buynums(uint256)","aa0d30f3":"deduct_fees()","aa0d9fb5":"_aremoveByValue(address)","aa0e38b4":"Mobilink()","aa0f0d4a":"Team(bytes32,bytes32,address,bytes32)","aa10ce22":"addExchange(address)","aa10e8c2":"CreateAPool(string,string)","aa1199ea":"setApprove(bool)","aa121bbe":"ABIChanged(bytes32,uint256)","aa125d08":"timeWaitUnlock(address)","aa127ae3":"test_9_checkDestructionOverflow_shouldThrow()","aa13ca76":"getTokenPrices()","aa13e8c2":"waitingTime()","aa141ee2":"spartans()","aa14c39a":"submissionDeposit()","aa14fa5a":"ICObonus()","aa156645":"isWorker(address)","aa1589a9":"approveLeave(address,uint256,string,uint256,bytes32)","aa1614eb":"ethRetrieve()","aa17973c":"createRandomAtom()","aa17e768":"getParentI(uint256)","aa183877":"getMonkey()","aa188b29":"SandBoxERC20()","aa18c05c":"TRANSFER(address,address)","aa18f76a":"getAllowedAmount(address)","aa1953cc":"canAccess()","aa19ed77":"freezeTransfersUntil(uint256,string)","aa1b510e":"cheat()","aa1ba6a9":"totalWin()","aa1c31a3":"BatCave()","aa1cdce8":"allot(uint256)","aa1cf1cd":"dumpFreeTokens(address)","aa1cf23e":"_isIdle(address,uint256)","aa1d807f":"ESCBDevMultisig()","aa1d98af":"personIndexToOwner(uint256)","aa1e47ae":"MyCoin()","aa1e84de":"hash(bytes)","aa1f609f":"ETHER_MIN_CONTRIB_PRIVATE()","aa202aca":"testBytes32Len()","aa20e1e4":"updateMasterMinter(address)","aa216998":"INITIAL_SAPLLY()","aa2262a8":"prevCourse()","aa226780":"trade(address[11],uint256[11],uint8[2],bytes32[2],bytes32[2])","aa228cda":"reduceMul_()","aa22b56b":"getDAOById(bytes32)","aa235449":"SpencerToken()","aa237e21":"set(bool,uint256)","aa238110":"getCurrentPrice(uint16)","aa23cb19":"transferFromIndexed(address,address,uint256)","aa23e03d":"getIdentifier()","aa24da73":"MultiToken()","aa24e8aa":"numberOfAlternatives()","aa2529a2":"RefundChequeById(string)","aa2580c1":"startPreSaleRound()","aa258b2e":"TitlePurchased(address,uint256)","aa25c744":"getDenominationByName(bytes8)","aa25f57e":"setPartnerETHRewardsPercent(uint256)","aa271e1a":"isMinter(address)","aa272d4b":"getNodeIndexId(bytes)","aa2796fd":"payoutForMining(address,uint256)","aa27cdf2":"deleteSharedAccount(bytes32,bytes32,uint256)","aa283e76":"setMintPrice(uint256,int256)","aa284a4a":"ProofPublicVote(address)","aa289b15":"deleteOutStreamOf(address)","aa28b89f":"preICOStage()","aa29787e":"bonus15end()","aa2a006d":"OrderCancelled(uint256,uint256)","aa2a1c47":"getTotalCollectedFrom(uint64,address,address)","aa2b5d7d":"getMiningWarPlayerData(address)","aa2bebb7":"getFeeWindowByTimestamp(uint256)","aa2d5c05":"FillOrder(uint256,address,uint256)","aa2de6c3":"minimumPurchase()","aa2df88b":"_isTransferAllowed(address,address,uint256)","aa2e7ea0":"createSwap(bytes20,address,uint256,address)","aa2efbad":"nominsReceivedForEther(uint256)","aa2f7494":"createMobster(string,uint256,uint256)","aa2f892d":"requestRedeem(uint256)","aa2fc145":"numStageRecalc(uint256)","aa2fddc7":"transfer(string,address,uint256)","aa3022d0":"settotal(uint256)","aa306d79":"voteForCandidate_(uint256,address)","aa30abf1":"crowdsaleBurnAddress()","aa30b7e3":"hasEnoughValidSignatures(bytes,uint8[],bytes32[],bytes32[],address[],uint256)","aa31aee8":"getLockTime(address)","aa31e4a0":"setSelfHybridizationPrice(uint256)","aa33171f":"newPromotion(string,string,string,uint256,uint256,uint256,uint256)","aa332032":"NewRound(string,bytes32)","aa33ab1b":"getVoted(uint256)","aa3435c0":"setTokenInformation(string,string,uint8)","aa351cf5":"triggerShutdown(uint256)","aa352ca4":"withdrawOffer()","aa3633f3":"CreationFailedEvent(address,uint256,string)","aa366290":"forfeit(uint8)","aa367664":"fundingMaximumTargetInWei()","aa368c19":"createScore(string,string,uint256,uint256,uint256,uint256,string,string,string,string,string)","aa36aae8":"prolongCrowdsale()","aa36b52e":"_updateNeeded(uint256,uint256,uint256)","aa3744bd":"recipient1()","aa3801d8":"getTokenAddress(bytes)","aa391317":"returnUnsoldSafeMedium()","aa3ad4e4":"validate(address,address,uint256)","aa3aef50":"purchaseTicket(uint16,uint16[])","aa3ba179":"widthraw()","aa3dacac":"sideBetPercent_MAX()","aa3eb769":"sendPTokenFrom(address,uint256,address)","aa3ec0a9":"cid()","aa3ef248":"postFact(bytes16,address,string)","aa3f5087":"AuctusPreSaleDistribution()","aa404876":"RedBlueToken2()","aa41d605":"_estimateWeight(uint256,uint256,uint256,uint256,uint256)","aa421944":"setMaxVeriAmount(uint32)","aa430e64":"setTotalPhases(uint256)","aa4537b2":"referredBonusRate()","aa454e9c":"setBuyer(uint256)","aa45b11e":"setReferralAddressShare(uint256)","aa462a5a":"whenGameDies()","aa4859fd":"newBookingfc(uint256,address,uint256,uint256,uint256)","aa487f49":"PRESALE_PERCENTAGE_1()","aa4925d7":"subscribe(uint256,uint256,address)","aa497b9d":"scheduleCall(address,uint256,bytes,uint256,uint256,uint8)","aa4abe7f":"setMaxRate(uint256)","aa4ac835":"exportTankResetEarning(uint32)","aa4b4d0b":"test_v0()","aa4b62f3":"initData(address,uint256)","aa4b980e":"phase_1_bonus()","aa4bdd3b":"realEtherCapHash()","aa4cb547":"setMultihash(bytes32,bytes)","aa4cc01f":"checkIfCancelled(bytes32)","aa4cd810":"addMeterPoint(address,int256)","aa4ce2c6":"blockDotBlockHash(uint256)","aa4d4213":"getOldAllowance(address,address)","aa4d490b":"registerNameXaddrFromDapp(address,bytes32,address,bool)","aa4eaa72":"addToPreSaleWhitelist(address,address)","aa4ee730":"LastRiskPrice()","aa4f6012":"addSupply(address,uint256)","aa4fc0a1":"Talius()","aa510c8c":"getLinkToPostId(string)","aa513c71":"updateInfluencer(string,address,uint256,address)","aa51793c":"isLosingBet(uint256)","aa525c55":"removeMilestone(uint8)","aa52a251":"transferSnowflakeBalanceFrom(string,string,uint256)","aa52fbd4":"period2Denominator()","aa534161":"releasedTeamTokens()","aa53d504":"Bounty()","aa53d7d4":"gettotalReceivedTicket()","aa541c9f":"unfroze_contract()","aa54abb1":"setLSEscrowContractAddress(address)","aa54ad35":"tokenSaleAddr()","aa54e040":"change_rate(uint256)","aa5581ef":"weiMaximumLimit()","aa5583d7":"Connections()","aa55a1a2":"giveAdditionalTokens(address,uint256)","aa55b55f":"getCardTypeInfo(uint256)","aa56c8e7":"isCrowdsaleFinished()","aa585d56":"setPrice(uint256,uint256,uint256)","aa58d4df":"calculateWinnerGameType2(uint256,uint256)","aa590140":"length(int8)","aa59770f":"sendCreatorByOwner(address,uint256)","aa59b024":"CROSAIR_SHIP_LIMIT()","aa59fb7d":"ChemistryCore()","aa5a11c5":"removeTellerModerator(address)","aa5a20e5":"setUpgradeAgent(address,uint32)","aa5b7df8":"marketingTokensWallet()","aa5b95d1":"deathFactor_i()","aa5c02a3":"LETX()","aa5c3ab4":"rewardBalance()","aa5c88ca":"setFreezePercent(uint8)","aa5d4719":"getTransferable(bytes20)","aa5d6d5f":"dropWallet()","aa5dcecc":"allocator()","aa5dd215":"doAirDrop(address[],address,uint256[])","aa5df9e2":"ownersArr(uint256)","aa5e2500":"clearProposalNames()","aa5ebd7f":"removeAddressFromWhitelist(address,address)","aa60145b":"cancelPledge(address)","aa601a71":"setAllowChangePrice(bool)","aa601e86":"SimpleMultiSigWallet(address[],uint256)","aa613b29":"authenticate(string)","aa613faf":"U42Token()","aa616da1":"addSkillNames(address,bytes32[],address)","aa617f25":"getAdUrl(uint256)","aa61924a":"CREATE_VERSION_ROLE()","aa61fc58":"getAirdropList(address)","aa620192":"today(uint256)","aa6217eb":"getMaximumContributionPossible()","aa628c31":"timelock(address,uint256)","aa63dea4":"dateMainStart()","aa646ebb":"_mint(address,uint256,uint128)","aa647673":"getKingPoints()","aa64c43b":"transferPool(address,address,uint256)","aa64f3c6":"addWhiteListed(address[])","aa656a3a":"updateGameMoney(uint256,uint256,uint256,uint256)","aa657658":"setMigrationGate(address)","aa657815":"takeoffer(uint256,uint256)","aa65a6c0":"getTokenWithId(uint256)","aa65c1f1":"WinningOutcomeDeclared(uint8)","aa66797b":"RESERVE_SUPPLY()","aa677354":"register(address,address)","aa67bc04":"eraByName(bytes32)","aa67c919":"depositFor(address)","aa682682":"startBuyTime()","aa68894b":"ownerWithdrawAccount(address)","aa692151":"fbytes32(bytes32)","aa6aca58":"setDelegadoDeEscuelaVerify(bytes32,bytes32,uint8,uint8)","aa6b5d9f":"ElyToken(address,bool)","aa6b631a":"getSetting(string)","aa6be303":"debtors(address)","aa6bf687":"calculateBonus(bytes32,uint256)","aa6ca808":"getTokens()","aa6d5dce":"_withdrawAllFunds()","aa6d7de4":"Hash()","aa6e4858":"VoteAdvertisement(uint256,address)","aa6e6539":"chkUserDetails(address,address)","aa6ebdcb":"numberOfDAppNodePackages()","aa6f5bb6":"setCreateDigitalArtFee(uint128)","aa727e46":"MAX_PUBLIC_FUNDING_SUPPLY()","aa72f217":"bountyMktWallet()","aa72f725":"listAssetDocuments(bytes32,uint256,bool)","aa735dd6":"ZBAStandardToken(uint256,string,uint8,string)","aa736f57":"transferLocker(address)","aa743c85":"sixMatchPayoutInPercent()","aa74c9fc":"addressToURI(address)","aa74fad8":"buyNewInfra(uint256)","aa7517e1":"minimumBond()","aa7618d5":"increaseApprovalPreSigned(address,uint256,uint256,uint256,uint8,bytes)","aa7622c7":"finalizeSecondStage()","aa7629ab":"withdrawDRPS(uint256)","aa76994d":"numOverthrows()","aa772fa0":"WinningEvent(address[],address,uint256)","aa775278":"deallocateBalance(address)","aa77f26c":"vestedAmount(address,address)","aa78a883":"BDP()","aa79376e":"updatePlayersCookie(address)","aa799fdc":"ZeroxDinar()","aa79bc02":"maxTrophies()","aa7a7744":"isRegisteredPair(address,address)","aa7abc8d":"sellWonder(uint256,uint256)","aa7b6c59":"wirteData(string)","aa7bc1c0":"createTokenFunctions()","aa7be9a7":"watchVideoA(address)","aa7ca464":"didReveal(address,uint256)","aa7dcd84":"testUpdateAuthorityEvent()","aa7ebf43":"level_1_percent()","aa7f6a3f":"AirdropList(address[],uint256[])","aa7f6a61":"newPurchase(address,uint8,uint8,uint32)","aa804a80":"jdouble(uint256,uint256,uint256)","aa80eec8":"testCheckRokBounty()","aa8116be":"fundedPrincipal()","aa81f862":"numDepositsSigned(bytes32)","aa833a25":"TheTokenC()","aa848ee2":"setPrivateList(address)","aa84d4b1":"whitelistOff()","aa84edb8":"MYDLToken()","aa85048a":"TotalCrowdsaleSupply()","aa8596ea":"setGalleryFivePrice(uint256)","aa863759":"addtoTechOperation(address,address,uint256,uint256)","aa864e49":"remainingPoolOptions()","aa8675d1":"singleIDXMQty()","aa86fbc5":"HETCCStandardToken(uint256,string,uint8,string)","aa8713dd":"secondWeek()","aa877470":"isInsurance(address)","aa879119":"allowApprovee(address,bool)","aa87af1e":"voirMessage()","aa88bb5b":"resolveDispute(uint16,address,address,uint8)","aa89376a":"Example2(string)","aa8a0002":"raiseLimit()","aa8b20f6":"getAvatar()","aa8b76ea":"reclaimDividend(uint256)","aa8b99d2":"length(uint256)","aa8c217c":"amount()","aa8c5324":"prolongate()","aa8d11e3":"ThirdPartyVoter()","aa8d715d":"itemBalance(address)","aa8dd5a1":"GRForGas()","aa8dde58":"Repost(bytes32,bytes32,uint256)","aa8dea8c":"fipsAddToLedger(bytes20,address,bytes)","aa8e8fb0":"LTKN()","aa8f0269":"ScicoinsICO()","aa8f027b":"isEmoji()","aa8f365c":"test_invalidProposalValue()","aa8f44ec":"isSaleAddr(address)","aa91cc61":"rodToken()","aa91d5c5":"HappyEnding()","aa9224cd":"withdraw(uint32)","aa9246ef":"_parseIntScientific(string,uint256)","aa93038b":"reward_total()","aa931697":"minNac()","aa93334d":"currentPeriodStartBlock()","aa9449f2":"Test(address)","aa9454b5":"transferAndBuy(address,uint256,uint256,uint256)","aa954845":"isConfirmed(bytes)","aa9669c1":"roll(uint256,bytes)","aa974eff":"multitokens(uint256)","aa985a63":"distributeWei(uint256,uint256)","aa98a41a":"setGenesisAddressArray(address[],address)","aa98d57b":"calcCollectedFee(uint256)","aa99474f":"authorized_changeOwnership(address,address,uint256)","aa994ab8":"transferGIM(address,address,uint256)","aa999b4c":"mixDna(uint256,uint256,uint256)","aa99ebb6":"CheckTimestampsDuringOneDay(address)","aa99f4d0":"teamTwoId()","aa9a0912":"mulDiv(uint256,uint256,uint256)","aa9a2cf0":"host_percentage()","aa9a79f2":"SubBankerPrincipal(uint8,uint256)","aa9ad331":"NEON()","aa9b5ba8":"getPaidDIVDSchedule()","aa9cdaf4":"coinAge(address)","aa9e40e0":"confirmDebt(uint256)","aa9f3666":"ClassicToken(string,string,uint8,uint256)","aa9f37f0":"purchaseContract()","aa9f5477":"Nursicoin()","aa9fa274":"addExtraReceiver(uint256,address)","aaa006b2":"countPlayer()","aaa04812":"presaleEthAmountsProcessed()","aaa05e20":"cityTransferResources(uint256,uint256,uint256,uint256)","aaa08e9b":"testBonus()","aaa0f5cc":"userAlreadyBoughtEth(address)","aaa24d31":"deathData_f7()","aaa2b78f":"allowedWithdraw()","aaa2b8c8":"rootAddress()","aaa2fe13":"getMin(uint8[])","aaa3de26":"getUsersInfo()","aaa40bc7":"TUXToken()","aaa44e5c":"getAllIds()","aaa51ec6":"setStoreAddress(address,address)","aaa5a02a":"claimTimeout(bytes32)","aaa5ad61":"getTokensAvailable()","aaa668aa":"getUserTenantId(address)","aaa6bc40":"removeWhitelistedUserAddr(address)","aaa7062b":"posShare()","aaa71e45":"mininglock()","aaa7744b":"_subjectToFees(address,uint256)","aaa77f55":"wuxiaMaster()","aaa99809":"FlatPricingExt(uint256,bool)","aaaa3218":"EmpireCrowdsale(uint256,uint256,address,address,uint256,uint256,uint256)","aaab3025":"replaceAbility(uint256,string,bool,uint8,uint8,uint8,uint256,uint256)","aaab51c9":"close(uint256,bytes,uint256,uint8[],bytes32[],bytes32[])","aaabdf16":"reputationIRNNodeShare()","aaac205b":"ZeenCoin()","aaac50bd":"transferDisable(bytes32)","aaac8040":"referralAmount(uint256,bool)","aaac9718":"package()","aaad0c84":"isExisted(address)","aaadc832":"isRedeeming()","aaae05b2":"approvePreSignedCheck(address,address,uint256,uint256,uint256,uint8,bytes)","aaae7799":"insertUser(uint256,bytes32)","aaaea138":"testFailBurnWhenStopped()","aaaf8a52":"approvePrimordialToken(address,uint256)","aaaf9595":"_generateTokens(address,uint256)","aab0395b":"LandToken()","aab065e8":"LifChannels(address,uint256)","aab14d04":"orderState(bytes32)","aab27ad1":"depositaCaucao()","aab324ae":"transferAnyERC20Token(address,uint256,address)","aab32cfa":"VerifierRegistry(address,uint256)","aab402e5":"toggleSale(bool)","aab40661":"_fishAquarium(uint256)","aab52c33":"initGameTeam(uint8)","aab60ebc":"totalLockedRewardsOf(address)","aab633dc":"private_setmaxRoll(uint256)","aab6606e":"BalanceEth()","aab725b3":"icoTokensSold()","aab75253":"StaffPicks()","aab78bf5":"compensateLatestMonarch(uint256,uint256)","aab8f6e0":"airdropBy0Eth()","aab99609":"ApaAjaToken()","aab9f165":"processPayment(uint256,uint32,uint32,uint256)","aaba2fb8":"UnicornRanch()","aaba3e3b":"getSymbol(string)","aabb3d61":"MainBridge(uint256,address[],uint256,uint256,uint256)","aabbb8ca":"getInterfaceImplementer(address,bytes32)","aabbd0ce":"approveNewShorter(address)","aabd3904":"isCreating(uint256)","aabd46e3":"getMintRequestStringMap(uint256,int256,string)","aabd5b88":"_sold()","aabd971e":"presaleTransfersPaused()","aabda436":"fund_()","aabdf682":"FINTRUX_RESERVE()","aabe00c4":"verifyPreSupport(uint256)","aabe2fe3":"currentWinner()","aabe7dc4":"unlockRewardToken(address)","aabecb89":"setRate10(uint256)","aabf05cf":"set_presale_iconiq_arbits_per_ether(address,uint256)","aabf382b":"upgradeLevel(uint8)","aabf901a":"Distributor(uint256,address)","aac0d9c2":"CompanyReserve(address,uint256)","aac0e4c5":"getPendingSignatureStatus(address)","aac1335c":"tgeSettingsMaxStages()","aac1b0b7":"safeExchange(address,address,uint256)","aac1c80b":"getCompte_12()","aac24374":"setBoxPrice(uint256,uint256,uint256)","aac2c717":"buyXaddrWithInviteCode(address,uint256)","aac3e314":"setPrevOracle(address)","aac4e3a8":"whiteListingAdmin()","aac57b3a":"newAPM(bytes32,bytes32,address)","aac5ab61":"Crowdsale(address)","aac5ce9a":"Stakeholder()","aac67b05":"changeFactoryUsageFee(uint256)","aac6ba41":"setModel(address[],uint256[])","aac746ee":"getNameFromAddress(address)","aac74c92":"getPI_edit_30()","aac756b8":"setxiudao(address,uint256,bool)","aac80472":"getManagerAddress(uint256)","aac81654":"isNoEmptyTranches()","aac8788a":"setIncrementOpenInterest(bool)","aac878eb":"approveTransaction(uint256,bytes)","aacaa602":"getCurrentAmountBonusRate(uint256)","aacb15e6":"_validate(uint256,uint256,uint256,uint256)","aacb4442":"repaintVoxel(uint8,uint8,uint8,uint8)","aacbe4b3":"set_maxUETsPerReturnLessThan(uint256)","aacc3a16":"printAddress(address[3],address)","aacc5a17":"getRandom()","aacd572f":"private_setMinRollUnder(uint256)","aacd5a85":"orderTrade(uint256,uint256,uint256)","aacd9794":"setUniqueSpinnerPrice(uint256)","aacdb27b":"setPixel(uint32,uint32,uint8)","aacec70b":"createCrySolObject(string,uint256,uint16,uint16,uint8,uint8)","aacf3f2e":"contributionInCauldronRound(uint8,address,uint32)","aacf5328":"setVideoID(string,uint256)","aacfd352":"blockBeforeEncounter(uint256)","aacffccf":"getAccountOwner(bytes32)","aad00089":"tokenIssue(uint256)","aad0bb90":"TEMath(uint256,uint256,bool)","aad12029":"freezeAccounts(address[])","aad13b15":"fight(address,string)","aad2b723":"changeSigner(address)","aad3ec96":"claim(address,uint256)","aad41a41":"multisend(address[],uint256[])","aad429f1":"_buyCommonTTW(uint256,uint256,address,address)","aad52373":"ValidateAndStore(bytes,bytes)","aad55726":"getContract(address,uint256)","aad5632a":"generateNext()","aad62da2":"left89(uint256)","aad71040":"changeUnlockTime(uint256,uint256)","aad7152b":"updateTokenTransferAddress(address)","aad83ab3":"SpinTestToken()","aad85f7c":"setAchievedDate(uint256,uint64,uint64)","aad935af":"updateSellPossible(bool)","aad99ef1":"setPriceIncreaseScale(uint256)","aad9afee":"kingsMessage()","aada1cb3":"activateUniqueSpinners()","aada4b06":"saleIssue(address,uint256)","aadad773":"removeServer(uint256)","aadba3dc":"finishWhen()","aadbc52d":"addContractMember(address,bytes32,address)","aadbc5a0":"getMatches(uint256,address,uint256)","aadc0a9d":"sneakUpOn()","aadc1ac1":"approveLoan(uint256)","aadc3b72":"hasVoted(bytes32,address)","aadc8f23":"RogueProtocol(address)","aadd1b03":"donateEth()","aade1323":"_processUpdateFee(address[16],uint256)","aade53fe":"_removeCardSetAtIndex(uint256,uint256)","aade84ae":"TopIvy()","aade8dcc":"discountTokenPercent()","aade9bb4":"icoReturnBonus(uint256)","aadf017e":"_processReserve(address,uint256,address)","aadf1e73":"selectWinner30()","aadf6838":"getOldSchoolCoins()","aae07890":"setUnit(uint256)","aae07cd0":"getTokenLayers(uint256)","aae0ff1e":"incLuckyCoin(address,uint256)","aae1f5c3":"processDonate(address)","aae233b4":"cleanUpPreviousRound()","aae3d025":"transferClose()","aae3d031":"enableKYC()","aae40ddc":"getCurrentClaimerForTile(uint16)","aae4cbe4":"EcoToken()","aae62507":"getUnavailableValueT(bytes32)","aae755af":"m_currentUsdAccepted()","aae764c1":"assertFalse(bool,bytes32)","aae8312e":"getStakeholderTransactionCount(bool,bool)","aae8e1b3":"withdrawFlag(address,uint256,uint256)","aae99c66":"whitelistAddress(address[],bool)","aae9a4c7":"singleInvestorCap()","aae9d7ed":"__callback(bytes32,uint256)","aaea144d":"setPackage(bytes1[42])","aaea396c":"verifiedlist(address)","aaea4472":"LifeFactor_ii()","aaea44c4":"strConcat(bytes,string,bytes)","aaea53f3":"Channel(address,uint256)","aaeaa36c":"isBatchSupported()","aaead0f0":"initializeIndividualCapsFundraiser(uint256,uint256)","aaeb3255":"getInsuranceIDsByClient(address)","aaec0c03":"FireflyRegistrar(address,bytes32,address)","aaec2fa5":"getGirlsAuctionPrice(uint256)","aaecc9cf":"checkGameOver()","aaed2c3d":"getRewardRate(address,address)","aaed31c7":"createCoins(address)","aaed3c7d":"tokenBuyersAmount()","aaee686e":"confirmTransactionFee(uint256)","aaeea585":"DMToken()","aaef36b5":"CorvinusCoin()","aaf04471":"transferAndCallDelegated(address,address,uint256,bytes,uint256,uint256,uint256,bytes)","aaf05f3d":"f3()","aaf10f42":"getImplementation()","aaf13d10":"Wallet3()","aaf20486":"ProofOfLongHodl()","aaf3e4f4":"left88(uint256)","aaf47835":"acceptBuyOffer(uint32,uint256)","aaf49910":"sanMinLength()","aaf4f1ed":"setMinDailyPerUser(uint256)","aaf517f5":"GetRoundIndex(uint8)","aaf592bf":"receiveApproval(uint256[])","aaf5eb68":"PRECISION()","aaf73ef7":"registeredDeals()","aaf7e700":"setResetvalue(uint256)","aaf809f8":"_isUnique(uint256[],uint256)","aaf885f8":"getRazInstanceInformation(uint256,uint256)","aaf9419d":"latestNewRockForSale()","aaf9d13e":"buyTopDog(uint256,uint256)","aafa4827":"KOIOSTokenSale(address,uint256,uint256,uint256,uint256,address)","aafab1e8":"paymentsCount()","aafafbf3":"multiSendEth(address[])","aafb088e":"stageDuration()","aafba184":"removeShareholderListing(uint256)","aafbb120":"getSaleInfo(address)","aafbd3da":"create(bytes32,address,bytes32,bytes32,address,bytes32)","aafbe1c0":"NectarController(address,address)","aafd775e":"getLockedBalanceForUser(address,address)","aaff096d":"updateDarknodeRegistry(address)","aaff2a83":"totalRemainingTokensForSales()","aaffadf3":"minContribution()","aaffc4b6":"currentRoundCount()","ab004a97":"traded_token_seed_amount()","ab021884":"setMinimumPriceFusion(uint256)","ab022b28":"resetAirdropAmount()","ab02f27c":"Europium()","ab03cf46":"sendFunds(uint256,address,bytes)","ab03d0e8":"changeUnitsUserCanBuyLimitEth(uint256)","ab040107":"decline()","ab044622":"syndicateTokensWithdrawn()","ab045871":"Indemnisation_2()","ab051767":"userlogout(address)","ab05a69a":"InbotProxy(address,address,address,address)","ab05bfff":"setReleaseTime(uint256)","ab062643":"getNumTokensPurchased()","ab065d6c":"getProjectClient(bytes32)","ab067a5b":"periodSales()","ab06bea3":"reportContribution(address,uint256)","ab06da29":"setUTExchangeRate(uint256)","ab074225":"BLOOToken()","ab0783da":"mat()","ab07f054":"getLandPrice(int32,int32)","ab080aab":"SecondBiathlonToken(address,address,string,string,uint256,address)","ab08d048":"SPAYToken()","ab08f75b":"getMoneyline()","ab09ee80":"respond(uint256,uint256,uint256,uint256)","ab0a9865":"createGen0Dog(uint256)","ab0b29a5":"applySetMaxFeeTrade()","ab0bcc41":"saleStart()","ab0cba56":"ICO(uint256,uint256,uint256,uint256,address)","ab0cd5bc":"createMineForToken(uint256)","ab0ced0e":"checkContribution(address)","ab0cf8b7":"Wolf()","ab0d92dd":"totalPrice()","ab0da5a9":"reject(address)","ab0db220":"createBattle(uint256,uint256[],bytes32,uint256)","ab0e6765":"setEmployer(address,address,string)","ab0eda9e":"setAirdropAddress(address)","ab0facc0":"raiseLimit(uint256)","ab0fd373":"matchTimestamp(bytes32,bytes32)","ab0fe874":"purchaseCap()","ab108915":"createUser(address,bytes20,uint64)","ab1193fa":"PREMINE_ALLOCATION_ADDED(address,uint256)","ab11ebdd":"returnIcoTokens(address,uint256)","ab127a0c":"searchBestRate(address,address,uint256)","ab1377c0":"startSeedStage()","ab14a41f":"reentrancyHelper(address,bytes,uint256)","ab150226":"checkAdmin()","ab1547d2":"nextOpenRewardTime_()","ab15d70c":"updateFifthExhangeRate(uint256)","ab15f723":"pauseMints()","ab165623":"TalentEducationToken()","ab165831":"checkContractAddress(address)","ab16cef1":"addBigPromoBonus(uint256)","ab17176c":"VCCToken(uint256,string,string)","ab172cf5":"getCandidateByIndex(uint256)","ab179e9f":"currentReleaseCeiling()","ab17bad0":"setGasConsume(uint256)","ab18af27":"setDepositAddress(address)","ab18f6ac":"parseTimestampToYM(uint256)","ab19d396":"couponTokenCampaignAddr()","ab19fff9":"TokenFrank()","ab1a84da":"isCrowdfundCompleted()","ab1ac9f6":"BITSDToken()","ab1b1cb5":"getSubscriptionLastPaid()","ab1b3830":"EIForceCoin()","ab1b75f2":"burnUnpaidTokens()","ab1bef4e":"getDailyTickets(address)","ab1d3add":"assignDispute(string,address,string)","ab1d581b":"checkPet(uint64)","ab1e96e9":"migrationPeriod()","ab1ebb4d":"OneMillionToken()","ab1f7929":"setMigrationInfo(string)","ab207628":"getAffiliateAmount(uint256)","ab209e23":"Manifesto(uint256,uint256)","ab2191a2":"Satanshi()","ab21b055":"getTickets(string)","ab21d58a":"enableCharity()","ab225edc":"DepositFund()","ab22a640":"getVideoGameOwner(uint256)","ab22c561":"getVestingCliff(address,address)","ab231511":"lastWithdrawTime()","ab23c50d":"AirDropAFTK3SeptSandBox()","ab253ca6":"buyMinions(uint8)","ab2643a1":"commitCollateralToPool(address,uint256)","ab273016":"signProposal(uint256)","ab27be20":"mine(address,uint256)","ab27d755":"confirmOrder(bytes16)","ab2874cb":"buySlot(uint256)","ab28c704":"initialSupportAmount()","ab28e8af":"serviceTokensBurn(address,address)","ab2a4f8a":"transferRevenue(address,address,uint256)","ab2a5772":"setIcoHardCap(uint256)","ab2a6dc1":"dealsGetter(address,uint256)","ab2af349":"CallCancelled(bytes32)","ab2c8b16":"fundingLowcapReached()","ab2e5a1f":"play(uint256,uint256,uint256)","ab2ebcf1":"priceExpirationInterval()","ab2f0e51":"availableBalance()","ab32775c":"alreadyContains(uint256[],uint256,uint256)","ab331a34":"getProperty(string)","ab33cbcf":"inxCrowdsale()","ab34dc48":"monechainToken()","ab351270":"lottery(address,uint256)","ab3545e5":"getMember(uint256)","ab35678c":"trackCount()","ab3640c8":"processPayment(address,uint256,bytes32)","ab36e4a6":"milestonesCount()","ab37594b":"cancelOrderByMerchant(string)","ab383a6b":"getPropertyPrivateModeBecomePublic(uint16)","ab3860d0":"test_twoValidEqUint()","ab3a32c4":"refundAllExternalPurchase(address)","ab3a39c2":"scamSealTokenAddress()","ab3b87fe":"setOwner(address,uint256)","ab3bd81f":"changeTuneOption(uint32,uint32,uint256,bool,bool,uint128,bool,uint64,uint256)","ab3bfac4":"freezeBalance(address,uint256)","ab3c04d3":"BAKEToken()","ab3cdaf0":"PRE_ICO_BONUS_TIME_2()","ab3d2e74":"_clearApproval(uint256)","ab3d4e8b":"MembershipPurchase(address,uint256,uint256)","ab3dd698":"airdropDiff(uint256[],address[])","ab3e9c56":"ChangedInitialPrice(uint256)","ab3ed9f0":"DecisionToken()","ab3efa83":"tokenSafeLock(uint256,uint256,uint256,uint256)","ab3f22d5":"allocate(address,uint256,uint256)","ab3f699c":"getOrCreateNextFeeWindowWasCalled()","ab400d86":"updatePlayerEth(address,uint256,address)","ab40340a":"recordWithdraw(uint256,address,uint256)","ab40b01f":"getAddressAnswerKeccak256(uint256,address,address)","ab40b65a":"receiveapproval(address,uint256,address)","ab413a7e":"getScoreAndCount(address)","ab4215cc":"getDataOfGame()","ab430d49":"transferToken_toInvestBalance(address,uint256)","ab442c59":"getICOToken()","ab4459bc":"releaseBountyTokens()","ab447007":"setClaimDate(uint256)","ab45e2a0":"processPurchase(address)","ab464a4c":"launch_date()","ab464fa6":"transferMultiDiff(address[],uint256[])","ab46cc46":"add_attender(string[])","ab470f05":"getCaller()","ab473f48":"closeFunding(uint256)","ab47f1bf":"getFilledAmount(uint256)","ab4865ec":"boardTokensAddress()","ab486607":"getLeaderboardLength()","ab489f08":"toBytes(address[])","ab48f2f8":"PlayNow()","ab4955c2":"ReserveWalletUpdated(address,address)","ab4a2eb3":"getUnlockableTokens(address)","ab4b4def":"WITHDRAWAL_SCALE()","ab4bc414":"bitbgcToken()","ab4bf05e":"addSignature(string,int256,string)","ab4c4487":"getSystemSalePrices()","ab4d0ca9":"multiAdd(address[])","ab4e21c4":"OneBlocToken()","ab4e8ef1":"getAirdropTokens()","ab4ef895":"MB()","ab4f643c":"PublisherParametersChanged(address)","ab4fa078":"ListAllSince(uint256)","ab503e30":"SetminTokens(uint256)","ab50bc86":"PubRegistered(address)","ab50e7f2":"third_release(uint256)","ab5170b2":"getstr()","ab519020":"calcShare(uint256,uint256)","ab51937b":"startproduction()","ab519b0c":"prepare(uint256,address,address,uint256,bytes)","ab51b06f":"preSaleBonus()","ab531efd":"_encodeTokenId(uint256,uint256)","ab5366dd":"pendingOwner2()","ab54775d":"lookupSigName(address,address)","ab55979d":"changeStaker(address)","ab55d1cc":"getDAIBalance()","ab5690c4":"enableWithdrawals(address,address)","ab56c09e":"Placed(uint256,uint8,address)","ab5706ee":"setBaseSummonPrice(uint256)","ab5783c4":"StopGame(uint8)","ab582eb3":"kickOwner(address)","ab5841f2":"updateReserve(address,uint32,bool,uint256)","ab590032":"cleanAssetHolders()","ab5a7076":"RadiumToken(address)","ab5aa302":"_START_DATE()","ab5aea81":"Menu07(address)","ab5b4456":"use(uint256)","ab5db036":"refundICO(address)","ab5e28c5":"transfers()","ab5e5158":"setNewManager(address,address)","ab5ed150":"getOne()","ab5efded":"OmegaToken(address,address)","ab5f3380":"getVineyard(string,address,uint256)","ab5f6b91":"multiCreate(uint256,uint256,uint256)","ab5fa2c6":"setITO(address)","ab60443b":"changeInviteRate(uint256)","ab605eea":"fighterIndexToApproved(uint256)","ab60e4e5":"setWebGiftOnceMaxAmount(uint256)","ab60ffda":"exp()","ab61787a":"proofFailed(address,uint256,uint256)","ab619e5a":"StandardToken(string,string)","ab6231f1":"RefundedETH(address,uint256)","ab62438f":"submitImpeachmentProposal(string,address)","ab624cf1":"setPartyA(address)","ab630fc4":"kimsOnAuction()","ab635b48":"createTokenVestingContract(address)","ab643c07":"getAllBounties()","ab64611b":"BitmarkPaymentGateway(address)","ab651065":"setESCBCoin(address,address,address,uint256,uint256)","ab65c534":"SqueezeTheJuice()","ab65cda6":"getDial2Type(uint8)","ab65f20a":"mintCards(uint256[],address)","ab6680f3":"initAuction(uint256,uint256,uint256,uint256,uint256,address,bool)","ab67aa58":"transferFrom(address,address,uint256,bytes)","ab686d0a":"setFrontWindow(address)","ab6a5d95":"changeBoardAddress(address)","ab6a9f0e":"knockoutTeam(uint256,uint256)","ab6ad452":"unlockedBalance()","ab6ae424":"affWallet()","ab6b551e":"isSideBridgeContract()","ab6b7e22":"grantBounty(address,uint256)","ab6bfe78":"Hongshanchain(uint256,string,string)","ab6c291b":"getWiningType(uint256)","ab6c5f58":"removePlayer(uint256,uint8)","ab6cab71":"PoWH4DSupply()","ab6cb831":"UNIToken(uint256)","ab6cf42f":"isReservationFull()","ab6d8a9a":"gemFab()","ab6da028":"TOKEN_FOR_COMUNITY()","ab6db199":"dias()","ab6ddfa8":"holderBalance(address)","ab6def1c":"isShareToken()","ab6e1be4":"getTs()","ab6e4959":"depositsOfMember(address)","ab6e79ed":"getBaseToQuoteReturn(uint256)","ab6e9072":"admin_wallet()","ab6e988c":"playerVault(address)","ab6ef0b1":"purchaseLandWithCC(uint8,bytes32,uint256)","ab6f78f0":"SetRecord(address)","ab6f9e4a":"votesPerChoice(uint8)","ab700624":"toWidthString(string,uint256)","ab701ca3":"_upgradeabilityOwner()","ab702d48":"train2(uint256,uint256)","ab70bba7":"OtxToken()","ab70d0c5":"_getEndWeek(uint256,uint256)","ab70ee5c":"PoloneumToken()","ab71b8ac":"maxBountyTokens()","ab727094":"reinvestDivies()","ab731fd6":"ownerSetOverride(address,address,bool)","ab736b5d":"checkUniqueLockedTokenReceivers()","ab73e316":"next(address)","ab73f08e":"findOptionId(address)","ab74731d":"dividendPayment()","ab75a4a2":"angelWheelFinancing()","ab75e6c8":"DTXTestToken()","ab7748da":"Blocker_resume(bool)","ab779505":"NettingChannelContract(address,address,address,address,uint256)","ab77b178":"issueCoin(address,uint256)","ab7891f5":"deleteSiringWithId(uint256)","ab79fd26":"setBeginTimeTS(uint256)","ab7a162f":"getInterCryptoPrice()","ab7a9691":"isReleaseAgent(address)","ab7aa65d":"icoThresholdBonus2()","ab7af62f":"setAttackBoostMultipler(uint256)","ab7b347c":"BitcoinDominatorERC20Token()","ab7b47aa":"_generateInitialPattern()","ab7cb211":"allowBuy()","ab7ccc1c":"credit(uint256,uint256)","ab7df819":"Simscoin()","ab7e50ba":"GAX()","ab7e9dca":"getPrivilegedBalance(address)","ab7ebbce":"startPresale(address)","ab7ec692":"primoContratto()","ab7f8f12":"masicotestToken()","ab802509":"setMintAgent(address)","ab80c807":"RareCoin(address)","ab81e773":"left61(uint256)","ab82d9a0":"challenge(uint256)","ab831144":"parseUint(bytes32)","ab834bab":"atomicMatch_(address[14],uint256[18],uint8[8],bytes,bytes,bytes,bytes,bytes,bytes,uint8[2],bytes32[5])","ab840808":"migrateBasicData(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","ab8425d8":"set_amount(uint256)","ab84db68":"releaseArr()","ab850a85":"mintGold(uint256)","ab8530f8":"Mint(address,address,uint256)","ab8620dd":"getStageSoldTokens()","ab86ba3a":"bonus3()","ab86e0a6":"_setBalance(address,uint256)","ab87d816":"getPerson(uint32)","ab883d28":"multisendEther(address[],uint256[])","ab888539":"setIdentifier(address,bytes32)","ab889df9":"DoradoToken()","ab89641b":"getTlength50()","ab89d8c6":"WGWToken()","ab89f2c7":"getCurrentStageId()","ab89f870":"setMultiple(uint256)","ab8a0360":"Auth()","ab8a1595":"test_25_assertGasUsage1400Boards()","ab8a288b":"checkStoredFile(string)","ab8be231":"setMockedTime(uint256)","ab8ca6e9":"getBonusTier(uint8)","ab8d01b8":"transferFromToUpdateToken(address,address,uint256)","ab8d1daf":"payTokenOwner(address,uint256)","ab8d3dc1":"TokenPing(uint256)","ab8e0f6e":"Mmcchain(uint256,string,string)","ab8e5b01":"testGetLastTime()","ab8efb87":"UInt256(int256)","ab8f1957":"investedPeriods(uint256)","ab8f3c98":"validateBroadcasterSig(string,uint256,bytes32,bytes,address)","ab8feb02":"TKN()","ab90602c":"registerTicketsToUser(string,address,uint256)","ab90a8ac":"createSaleTokens()","ab90f855":"maxPromoToons()","ab911060":"assertOnlyFrom(uint256)","ab91154e":"ownerAddSanSlot(address,uint256)","ab91c7b0":"queueLength()","ab9213f3":"addAddressReferrals(address[],address[])","ab92670e":"Franc()","ab929fcd":"submitArticle(string,string,bool)","ab92f290":"addNewDividends(uint256)","ab948370":"KingToken()","ab948374":"gen0EndingPrice()","ab95b586":"getEventTimes()","ab9611f4":"setCancelableAt(uint256)","ab96cc4c":"receivedFunds()","ab96d498":"addPublicFundingWhiteList(address[])","ab96dd18":"earlyStageLasts()","ab97af6c":"initialCrowdsale(uint256,uint256,uint256,uint256,uint256,uint256,address)","ab97d59d":"getTokenManager()","ab97e196":"revokeAmountVote(uint8)","ab98458e":"getUint80val()","ab989586":"WMCToken(uint256,string,string)","ab998660":"LockMechanismByOwner(address,uint256)","ab998939":"RequireDispose(address)","ab99deb8":"Expread()","ab99e48f":"requestMerge(uint256[])","ab9a5caa":"AEStoken()","ab9a78df":"priceOf(string)","ab9a81c3":"numOfBlocksInMinute()","ab9a913a":"generatedEve()","ab9ae1be":"isCrowdSaleStatePreSale()","ab9af166":"reduceCDFee(uint256)","ab9b8637":"medibitICO(address)","ab9c1758":"cancelMarginCallOnBehalfOfRecurse(address,address,bytes32)","ab9c20d0":"finalizationSuccessHook()","ab9cd37e":"withdraw(uint80)","ab9d8b8b":"circulatingTokens()","ab9d8e4b":"Thankfulness()","ab9dbd07":"getID()","ab9def41":"hardCapTokensAmount()","ab9fe3a1":"importBalances(address,address[])","aba00859":"decBalance(address,uint256)","aba01e5c":"impl_amountOfWorkpointQueue()","aba0e189":"checkGameStatus()","aba1017b":"despawnGladiatorAndAwardCoins(address)","aba133ea":"GVPE_Token()","aba13a2f":"_resetTiles()","aba16a02":"offerToChannels(uint256)","aba222ed":"nodeRegistrationEnabled()","aba23628":"mintPlayers(uint128[],uint256,uint256,uint256)","aba3d017":"windowAt(uint256)","aba46a93":"etapAddressesLimit()","aba47d1a":"getGrapesToBuildWinery()","aba61514":"priceT4()","aba683fa":"Etbccoin()","aba70319":"FreyrTokenLocker()","aba7ad0d":"lotteryFeeVal()","aba88037":"DARKNODE_FEES_NUMERATOR()","aba88766":"claimableHalvingsOf(address)","aba89198":"getCurrentCapacity()","aba8dfbd":"SecondBonus()","aba9650e":"createDepositContract(address)","abaa5f3e":"randomDS_getSessionPubKeyHash()","abaa9916":"allocate()","ababa4a7":"authorize()","ababb2dd":"_tryUnlockBalance(address)","ababe93d":"distributeBondFund()","ababf71b":"GetSummReward(uint256)","abacf5d7":"getBoardUpdateTime(uint256)","abad3466":"createtoken(string,string,uint256)","abadaf9a":"bonusAmount()","abadeb06":"teamPeriodsNumber()","abaed924":"executeOrders(address[],bool[],uint256[],uint256[],address[],address[],address[8][],uint256[6][],uint256[],uint8[],bytes32[],bytes32[])","abaf1de9":"setPublicPrice(uint256,uint256)","abaf5880":"Crowdsale(uint256,uint256,uint256,address)","abaf9457":"localRevenuePercent()","abafaa16":"emitIssue(bytes32,uint256,address)","abb00601":"addUnpausedWallet(address)","abb151c8":"CCICoin()","abb1a33a":"SetHotLists(string)","abb21618":"changeAirdropValue(uint256)","abb254de":"developer_withdraw_ETH()","abb2874f":"DezToken()","abb29f70":"TinyOracleDispatch()","abb2d04b":"editName(string)","abb4108e":"addRoles(uint8[])","abb41fab":"_reward_masternode()","abb43397":"getCanvasBitmap(uint32)","abb46619":"DSCToken(uint256,address)","abb4fe2d":"MiningRigRentalsToken()","abb524a4":"PapyrusSalePhase1(address,address)","abb58d20":"Registry(address,address,address,string)","abb58fd3":"createLink(bytes32)","abb689e1":"payRedemption(uint256)","abb69a1a":"getInvoicesByStatus(address,uint256,uint8)","abb70034":"getChosenNumbers(address,uint256,uint256)","abb721ce":"_deposit()","abb743c8":"setUint(int256,uint256)","abb8c965":"_setOwner(address,bool)","abb9e0bf":"coinIssuedAdvisor()","abb9eef4":"YUNXIN2Token(uint256,string,uint8,string)","abba87c1":"_prestige()","abbadf55":"oobiqoo(address)","abbb4695":"setNotifier(address)","abbbf451":"getRound0MinDuration()","abbc54b0":"changePriceUpdateWaitingTime(uint256)","abbc5d2a":"levToll()","abbc8afa":"teamPoolForFrozenTokens()","abbcb24b":"LEGAL_EXPENSES_ADDR_2()","abbdc272":"checkGameStart()","abbe3056":"stage2Deadline()","abbef24e":"buyDaiWithEth(uint256)","abbf7228":"changeBlocks(uint256,uint256)","abbf94f8":"PlatoniusToken()","abbff658":"Ownable3()","abc1c9fe":"requestForRefund(uint256)","abc21702":"getPI_edit_25()","abc2a40a":"minInvestBTC()","abc2ab75":"FinalizeDispute(address)","abc33778":"Result(bytes32,address,uint256,bool)","abc38cf2":"submitNewClip()","abc3bc92":"getReferrerBalance(address)","abc40f41":"batchWrite(uint256,uint256,string)","abc4558e":"_requireRenewableProduct(uint256)","abc45ddc":"BANKOIN()","abc48a0d":"minerTotalSupply()","abc4cbd3":"transferForTeam(address,uint256)","abc6124f":"Bought(uint256,string,address,uint256,string,string)","abc63d00":"STARTING_TIME()","abc66e82":"dev_fee(uint256)","abc6affb":"publicGetUserHistory(address,uint256)","abc6fd0b":"disburse()","abc897f4":"removeMinterByValue(address)","abc8bc4c":"addBomb(uint8,uint256,uint8,uint8)","abc8c7af":"marketplace()","abc93aee":"left64(uint256)","abc9e8c0":"fetchOrdersForPayer(address)","abca7290":"feeDeposit()","abcafdf8":"prizeProjection(uint256,uint256)","abcb7fce":"getTokenAddressHashing(address,uint256)","abcb9934":"unlistToken(address)","abcc11d8":"lastResult()","abcc8a46":"LogEuroTokenOwnerMigrated(address,uint256)","abccb043":"modifyMaxContractBalance(uint256)","abcccdb1":"agentAddr_()","abcd0d9d":"getNewEndTime(uint256,uint256,uint256)","abcd7960":"equal(uint256,uint256,string)","abcdabcd":"aiGFJ()","abce03d0":"KoreaRepublicvsGermany()","abcf033c":"safeWithdrawalFromCrowdsale(address)","abcf1328":"InterestBank()","abd05acd":"createDklSaleAuction(uint256,uint256)","abd06c3b":"remove(bytes1,bytes1)","abd10e07":"failSafeAddWhenGreaterThanIntMax()","abd117fe":"GXCSentToETH()","abd188a8":"setKyberNetworkContract(address)","abd1a89c":"allocTokenHolder()","abd225e1":"isStarted(uint256)","abd23d95":"getNameByAddress(address,address)","abd2adbb":"columns()","abd2cc5f":"presaleClosed()","abd2ecb7":"isOnExchangeById(uint256)","abd437da":"balanceOfCall(address)","abd44556":"setBatchDetachCollectibles(uint256[])","abd49646":"makerDAO()","abd5100d":"referralAmountInvest(address)","abd5f3c7":"poolPrice()","abd6b000":"CryptoSagaCardSwapMerculet(address,address,address,address)","abd6cb3c":"firstStageRaised()","abd6ff8e":"setIntValue(string,int256)","abd70aa2":"getPoolBalance()","abd74e52":"getLastPriceFeedValues()","abd796bf":"addAllowedAddress(address,address)","abd7f8de":"doEmit(uint256,uint256)","abd8537f":"makeSmokeymon(string,uint8)","abd89e1e":"preICOmint(uint128)","abd8d939":"buyThroughProxy(address)","abd936ab":"delegateDklSaleAuction(uint256,uint256,bytes,uint256)","abd958eb":"getCurrentBlockValueAndSellPriceForTile(uint16)","abda35de":"inMaintainance()","abda78ed":"getAltOracles()","abdb5ea8":"repayBorrow(address,uint256)","abdbe6ca":"CrowdDreaming()","abdbf4a3":"UpdateAsk(address,uint256,uint256)","abdc5dee":"HumaniqToken(address)","abdd0c44":"marginCallOnBehalfOf(address,bytes32,uint256)","abdd11a8":"setOpeningTime(uint256)","abdd19d9":"setCityContract(address)","abdd2430":"AuctionCreated(address,uint256,uint256,uint256,uint256,uint256)","abdde3d1":"getEthToTokenOrder(uint32)","abde33f7":"right26(uint256)","abded6fd":"setANT(address,address,address)","abdf9566":"setData_16(string)","abdf9bda":"bountyProgam()","abe088a7":"financialOfficerAddress()","abe1d5a2":"ViewRawDeposit(uint256)","abe24a3d":"mulByFraction(uint256,uint256,uint256)","abe2a16e":"FeeRate()","abe2a18d":"stateChangeAgents(address)","abe3219c":"safeMode()","abe3d0e3":"logPurchase(address,uint256,uint256)","abe3dfd1":"setInitialRate(uint256)","abe4136f":"getNickname()","abe4932c":"createPostboyAccountForSomeone(uint256,uint256,bytes16)","abe5b120":"Registered(address,uint256,uint256,uint256)","abe65ec9":"_createDiamond(string,address,string,string,string,string,string)","abe6c54d":"deleteCandidates(address)","abe6e82f":"setAmountBonuses(uint256,uint256,uint256)","abe7008e":"getPlayerValue(uint8[],uint8)","abe756da":"dateRelease9()","abe75844":"preSaleFirstEndDate()","abe7b54e":"readWelfareDetails(address)","abe7c08e":"finishVoting(uint256)","abe7cc7b":"LOCK_END()","abe7f1ab":"remove(address,uint256)","abe7f6fe":"ensureAllowance(address,address,uint256)","abe8014a":"totalWeiRaisedDuringPreICO()","abe9717a":"A2ACrowdsale()","abe9f569":"oraclize_getPrice(string,uint256)","abea0804":"nAddresses()","abea8d79":"setMiningLeader(address)","abeb5f9f":"hasQuickBuyEtherToken()","abebb746":"_fillOrder(address,address,uint256,address,uint256,uint256,uint256)","abebb7f3":"MarketsContract()","abec0a00":"BLVK()","abed982b":"LockedUpTokensWithdrawn()","abedeab4":"init_claim(uint256)","abee967c":"initialReward()","abefe7ac":"canCreateUnit(uint256)","abf03e19":"end_ICO(uint256)","abf0661f":"_burnForDeposit(address,uint256)","abf0c538":"vestTokens()","abf17198":"getShipProductEarningByModel(uint16)","abf19801":"createVesting(address,uint256,uint256,uint256,uint256,bool,address)","abf26786":"item(uint256,bool,bytes)","abf2b5b9":"cancelMtr(uint256)","abf2e01c":"isElectionPeriod()","abf3260f":"highestEditionNumber()","abf45359":"preSaleTokenCap()","abf52f53":"independentSellerJoined(address,uint256,address)","abf567e1":"setStartTime(uint256,uint64)","abf64392":"withdrawInvalidated(uint256)","abf74a93":"pitFee()","abf74cda":"_issueTokens(address,uint256)","abf74d5f":"bury(uint256)","abf7b063":"totalSuperAdminsMapping()","abf7bfd8":"createUser(bytes32)","abf7f83e":"setBonuses(bool)","abf8de6b":"TrocarAdmin(address)","abf8fbb8":"BCB(uint256,string,string)","abfb589b":"revealBet(uint256,uint256)","abfb84a9":"TransferredPrefix(string,address,address)","abfc3db2":"MIN_UPDATE(bytes32)","abfc99a8":"setPeriodStart(uint256)","abfcb627":"subscribe(address,bytes32)","abfcb6f8":"checkInfo(uint256,address)","abfcc7d8":"endRound(uint256,uint256,address[],address[],bool)","abfccf3c":"REKTTokenSale(address,address,uint256)","abfd5c94":"addEntryInDays(address,uint256,uint256)","abfdcced":"setBool(bytes32,bool)","abfdd068":"getUserAuctionIds(address)","abfdfbe6":"setRentalPricePerDay(uint256)","abfe0472":"setMainLocation(uint16,uint16)","abfe35ad":"getStakingReward(uint256)","abfe40a8":"privateMint(uint256)","abfea3c5":"IraPid()","abfebfd9":"fifthWeekTokenPrice()","abff0110":"broker()","abff3fc1":"eventSaleEnd()","abffc9ac":"delistToken(address)","abffeffc":"create(address,address,address,address)","abfffa28":"foundersTokensDisbursed()","ac001725":"Goldic()","ac00c3e6":"teamEndTimestamp()","ac01367f":"CryptovoxelsProperty(string,string)","ac016a31":"label(bytes12)","ac01b83d":"getAllPlayers(uint256)","ac0250f7":"memberAt(uint256)","ac0287e2":"arrr(uint256[])","ac02c601":"TranferETH(address,uint256)","ac03f324":"transfer_status()","ac045aca":"soldSoulFor(address)","ac0496e1":"setItemToken(address)","ac04f5a7":"append(address)","ac05e0f7":"getBurnRequestUintMap(uint256,string)","ac05e15f":"manuallyMintTokens(address,uint256,uint256)","ac066073":"startTimePresale()","ac06e302":"SetupCrowdsale(uint256,uint256)","ac06eb81":"MDIVToken()","ac080f48":"getDebrisStatus(bytes32,uint8)","ac0840db":"resultsPublishedTime()","ac098ce9":"addAnn(string)","ac0a04b2":"signToApproveAddTokenData(uint256)","ac0a7223":"buyCost()","ac0ab476":"transferToContract(address,uint256,bool,bytes)","ac0b1786":"MeibangAccumulationAppreciationAllocation(uint256,string,uint8,string)","ac0ba9b1":"payUSDCToProvider(address,address,uint256)","ac0c103a":"a_palavra(bytes5)","ac0c518d":"preSaleTokenSold()","ac0ca722":"AutoreleaseTriggered()","ac0db69d":"Log(uint8)","ac0f3865":"LogTokensWithdrawn(address,uint256)","ac0f90e3":"checkCrowdsaleState(uint256)","ac0fdae5":"Record(address,string)","ac110d8e":"Take()","ac12319d":"adminPayout(uint256)","ac128f4f":"roundResults(uint256)","ac12bf92":"setAdminStatus(address,uint256)","ac12f3e9":"partner1_voted_update_prenup()","ac132dc3":"ProtectedUnlock(address,address,uint256)","ac133709":"getChannelParticipantInfo(address,address)","ac133d3b":"deploymentCost()","ac134c08":"rewards_amount(uint256)","ac13d9a6":"setPartnerContracts(address)","ac1424fd":"generateNewTicket(address)","ac145d80":"setOperationsCallGas(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","ac14c61e":"PresalePool(address,uint256,uint256,uint256)","ac151959":"setmaxprice(uint256)","ac1559d2":"totalTokensSent()","ac155a6c":"MatryxToken()","ac171101":"GAGARIN()","ac17cba4":"lemonsRemainingToDrop()","ac17d506":"getMemberData(address,address)","ac185644":"ownerTimeLastMinted()","ac1864b8":"treasuryManagers(uint256)","ac187542":"forceEndGame()","ac18de43":"removeManager(address)","ac194b07":"preIcoStartBlock()","ac19c726":"setKeepEth(bool)","ac1a13fb":"cancelOrder(uint256,uint32,uint32,uint256,string)","ac1a182c":"_calcProportion()","ac1a386a":"setWalletAddress(address)","ac1a7175":"lockUserInfo(address)","ac1aaa1a":"calticket(uint256)","ac1ad7d1":"tickerQuery()","ac1b14ff":"proxyCall(uint256)","ac1bc7e8":"updateDetails(string,string)","ac1c1443":"listProducts(address)","ac1c3d04":"generateToken()","ac1cb329":"withdrawBuyAgent()","ac1cd994":"seed_coins_vault2()","ac1d0609":"updateWhiteList(address,bool)","ac1d6fe2":"changeAllocation(int256)","ac1deea0":"RateUpdated(uint256,bytes32,uint256)","ac1e17df":"addHolder(address)","ac1e4734":"ORCA()","ac1e765b":"checkValidity(string,address,string)","ac1f7ca1":"totalFundsAvailable()","ac20902e":"NormalizeMoney()","ac20e2a0":"TOTAL_TOKENCAP()","ac210cc7":"wrapper()","ac216ae9":"setCheckBonus(bool)","ac218c6d":"addressICOManager()","ac21bacd":"TokenPriceChanged(uint256)","ac22b970":"_medalFreeze(uint256)","ac22cec8":"withdrawGasCost()","ac230e52":"getHeroName(uint256)","ac232383":"getAyantDroitEconomique_Compte_6()","ac246c3e":"TIME_TO_STALEMATE()","ac256e1d":"RiekCoin()","ac25f266":"add_to_whitelist(address)","ac26109e":"lockForOrder(address,uint256)","ac267435":"volumeType7()","ac270c37":"contractUp()","ac280cb9":"MAX_STANDARD_SALE_PACKS()","ac281ca6":"recordPayment(uint256,uint256,uint256)","ac28240d":"transferBackMANA(address,uint256)","ac283f5b":"Error(string,string)","ac28838b":"getPerson(bytes32)","ac28ff48":"collectableTokenBalance()","ac297d21":"vendDisciple(uint256)","ac2ac86c":"setSmallCapWhitelistParticipants(address[],uint256[])","ac2aefd2":"addPigment(uint256,uint256,uint256,uint256)","ac2c8bb5":"getTile(uint16)","ac2d456d":"setOracleCallbackGasPrice(uint256)","ac2d7ce5":"setNextLotteryTTWTokenId4(uint64)","ac2e043d":"whitelistMulti(address[],uint256[],uint256[])","ac2e064b":"set_maxCWCsPerSaleLessThan(uint256)","ac2e2c65":"JULIAN_ADDRESS()","ac2f0074":"polls(uint256)","ac307773":"claimFunds()","ac30da84":"BountyHunter()","ac3120a0":"LogContribution(address,uint256,uint256,uint256,uint256)","ac31818d":"Better_Bank_With_Interest()","ac3314a6":"issueLockedTokens(uint256)","ac336f7b":"getCurrentConsensus(string)","ac355ed3":"_salesprice()","ac35bdb4":"sub_session(string,uint256)","ac35caee":"transferWithReference(address,uint256,string)","ac360d3c":"TokenWrapper()","ac375770":"didWithdraw(address,uint256)","ac377553":"fillFromCollateral(uint256)","ac38eb07":"tokenIdForHandle(bytes32)","ac3910a2":"ballot()","ac3c27cf":"resolveDisputeSeller(address,string)","ac3c49e0":"getMarketMakerAddressFromToken(address)","ac3c9952":"batchTransfer(address,uint256[])","ac3cb72c":"addApproval(address,uint256)","ac3cdf78":"RANGEEND_10()","ac3d057d":"releaseBudget(address,uint256)","ac3d5084":"initialFrozenTime()","ac3d8558":"setExitStake(uint256)","ac3dc451":"TorontoRules(address,address[])","ac3dc9aa":"startBlockTimestamp()","ac3e6b2f":"testSetNotRetractable()","ac3e7d24":"addChainyData(string)","ac3fc432":"stampCreatedCount()","ac403817":"addresIndex()","ac41865a":"getPrice(address,address)","ac41b4a5":"SignalingEnabled(address,uint256)","ac42c3ec":"maxTokenBetValue()","ac42ea7d":"rejectBurnRequest(uint256,string)","ac42f301":"getNextForwardUserId()","ac42f446":"botPhase()","ac440d13":"CardsAccess()","ac4501d9":"splitTrade(uint256)","ac451185":"getGames(uint256,uint256)","ac45185d":"adminStewardship(address[2],uint256[7],uint8,bytes32[2])","ac457a9d":"ExposureOpened(bytes32,address,uint256,uint256,uint64,uint64)","ac460d66":"setTokensContract(address,address)","ac46a451":"OpsAddressChanged(address)","ac46fa22":"burnEscrow(uint256,uint256)","ac4746ab":"EPOCH_LENGTH()","ac4758cc":"Takafuly()","ac475e5c":"CheckTimeout()","ac476a05":"MarketMaker(address,address,uint256,uint256)","ac47981c":"issueCertificate(string,string,string,address,address,string)","ac480af9":"updateFirstDeposits(uint256)","ac482bff":"resume_PRIVATESALE()","ac48bd5a":"ethUSD()","ac48fcbc":"testTheMultipliers()","ac490b08":"parsha()","ac49dd5c":"removeTimelock(address)","ac4a743d":"ecoFundSupply()","ac4ab3fb":"hasRole(address,bytes32)","ac4abae1":"lockReleaseDate()","ac4b2bae":"newParameters(int256,uint256,int256,uint256)","ac4ba3ea":"initManager(uint256,uint256)","ac4bd53a":"currentLeader()","ac4bed68":"modifyHorsey(uint256,address,bytes32,uint8,uint8)","ac4c25b2":"void()","ac4c8bf3":"argCurMax()","ac4ce2c6":"setAddress(uint256,address)","ac4cfa4c":"calcAmount(address)","ac4d2e95":"ownerTokensFreeDay()","ac4d8a26":"setRepPriceInAttoEth(uint256)","ac4d965c":"notZeroAndNotSender(address)","ac4ddd9f":"retrieveTokens(address)","ac4df041":"donationClosed()","ac4e677c":"registerTrack(bytes32,uint256,bytes32,bytes32,bytes32,bool)","ac4e73f9":"proposeReverse(string,address)","ac4eefc5":"getGoldDataMinted()","ac4fb219":"enableLockFlag(bool)","ac50713a":"foundingTeamWallets(uint256)","ac509050":"getPlayerRoundsKitties(uint256,uint256)","ac50a466":"betfortoken()","ac50af76":"transferExcessTokensToReserve()","ac50b2e5":"getPlayerRoundNumbers(uint256,address)","ac51009e":"createBountyTokens()","ac51215b":"TokenRegistry(address,int256)","ac51a36a":"_unpackPetData(uint256)","ac51af8e":"transferWithBonus(address,uint256)","ac51d3a5":"smileyToken()","ac5277a4":"teamSupply6Months()","ac552cf2":"getCurrentDukePaid(string)","ac5553ce":"phaseDuration()","ac5555aa":"initialized(bytes32)","ac562666":"freezeCoin()","ac566953":"getInfra(uint256)","ac56c52b":"makeDealForTwo(string,uint256)","ac56f980":"setRealseTime(uint256)","ac588536":"delayPayout()","ac5895f6":"getSoilHumidityControlLimits(bytes32)","ac591e40":"SelectOne(uint256,uint256,uint256,uint256,uint256,string,address)","ac592944":"SendPreReserved2()","ac59eeeb":"recoverAddressFromWithdrawMessage(uint256,address,uint256,bytes)","ac59f0d9":"addToken(address,address,string)","ac5aaa5b":"toToteLiquidatorWallet()","ac5b3998":"assignLockedBalance(address,uint256)","ac5b3dbb":"Michael1011Token()","ac5c8535":"storeData(bytes)","ac5c867c":"sendCrowdsaleBalance(address,address,uint256)","ac5c915f":"burnBonuses()","ac5ce03b":"marriageProofDoc()","ac5cfc3d":"getMsgWaiting(uint256)","ac5d2dbf":"typeToken()","ac5d67e9":"lockAdvisorsTokens()","ac5d8745":"voteWithSpecifiedAmounts(bytes32,uint256,uint256,uint256)","ac5e7977":"receiverThree()","ac5e81a9":"historyPayout(address)","ac5ec9ef":"setAcceptPayment(bool)","ac5f91a0":"previousMinters()","ac6068b5":"isNotExpired()","ac60a6cd":"payInvoice(uint256)","ac60bbca":"userTokenStats(address,address)","ac60c969":"canFirstMint()","ac60da79":"TOKEN_SALE3()","ac61e92b":"createBet(uint256,uint256,uint256,uint256,bool)","ac624f52":"crowdSaleToken()","ac62ddb2":"validateMigrationIsPending(string,string)","ac62e250":"CertificationSet(string,address,uint256)","ac63208d":"SPRToken()","ac637c7a":"delegateTo(address)","ac64198b":"RSPLT_G()","ac6456df":"_betFailure(string,uint256,bool)","ac646756":"pause2()","ac656636":"getDepositReceipts(address,int256,uint8)","ac65b258":"PresalePool(uint256,address,uint256,uint256)","ac66777f":"multiCallTightlyPacked(bytes32[])","ac67857e":"ArtsCoin()","ac697fb5":"SkySwapToken()","ac69c09c":"changeVotingRules(address,uint256)","ac6a2b5d":"_withdraw(uint256)","ac6a4d6a":"fooInt()","ac6a602f":"getCompte_34()","ac6af280":"setRates(uint256,uint256)","ac6b02c4":"IFCC()","ac6b8e00":"transferLock(address,uint256,bool)","ac6bc853":"startSpin()","ac6c5251":"getWeight(address)","ac6d0316":"performUpdateCallPtr()","ac6d0fed":"nestedFirst(uint256)","ac6d8150":"getPayment(uint256,string)","ac6da90d":"qwercoin()","ac6e1237":"CrowdsaleEndedSuccessfuly(uint256,uint256)","ac6e2db6":"tokenCreationCapOne()","ac6ebb28":"CioCoinERC26Token(uint256,string,string,uint256)","ac6ee852":"newGanToken(uint256)","ac6eead3":"team_token_percentage_total()","ac6fe0ed":"Batchdrop(address)","ac700665":"getOrdersForBuyer(address)","ac700e63":"pauseMigration()","ac708f0c":"getProjectedBlockHash(uint256)","ac70a1ef":"getTreasures()","ac70e6c4":"level_9_percent()","ac71045e":"getOffer(address,uint256)","ac711cbb":"withdrawEtherAll()","ac71abde":"addAccounts(address[])","ac72200d":"getMinted()","ac72c120":"hasReverse(bytes32)","ac72cd7e":"BrokerInt(address)","ac73e97e":"lastMiningTime()","ac74bcde":"defaultNumberJuror()","ac74f2a8":"Bothereum(uint256,string,string)","ac767539":"testFailItemStoreNotRegistered()","ac76a499":"clientsAverageRating(address)","ac76fbf1":"GeoGame()","ac7709bc":"setTimedTransfer(uint256,uint256)","ac778b8f":"createCertificate(string,string,string)","ac77eb8e":"ZingToken()","ac781fbe":"TrustTokenERC20(uint256,string,string)","ac789e5f":"BlindAuction(uint256,uint256,address)","ac78dc16":"payTeam()","ac793a60":"createBet(uint256)","ac798bd3":"calculateArtCoinSupply()","ac798def":"set_sale_arbits_sold(uint256)","ac79a4b1":"getCreateMarketCreatorValue()","ac7a1b5b":"maxWithdraw()","ac7a722e":"updateETHPriceInCents()","ac7a95d5":"getNewShroom(uint256)","ac7b986f":"lotusWallet75Pct()","ac7bb2b4":"removeFromWhiteList(uint8,address)","ac7cda53":"changeRegisterBot(address)","ac7dce1d":"BsPresale_SNOV(address,address,uint256)","ac7e1e0a":"setEtherProceedsAccount(address)","ac7f0c48":"calculateWin()","ac7f9329":"AUTH_SETMINTAMOUNT()","ac7fc263":"multipliers(uint256)","ac7ffae3":"updt(uint256,string,uint256,uint256,string,string,address)","ac800b32":"transferCanaryOwnership(address)","ac82239f":"enableInvite(string,bytes32)","ac824fd9":"SHEX(uint256,string,uint8,string)","ac8261c9":"optionProgram()","ac828200":"_dlgtRet(uint64)","ac833fd9":"test_insert_findWithHintNextUpdateHead()","ac838774":"addauction(address,uint256,uint256,uint256,uint256,uint256,string,string)","ac8388a5":"callthis()","ac83ae55":"GAMEToken()","ac83e891":"BokkyPooBahsAutonomousRefundathonFund()","ac84ed4f":"TronClone()","ac856216":"setNumRewardsForTMEUser()","ac860a59":"_signPropertyByAgent(address,address,bytes32)","ac8641ee":"updateRefundWalletAddress(address)","ac8648a2":"mintFeeTokens(int256,uint256)","ac869cd8":"setFrozen(address,bool)","ac8860b9":"ProposalExecutedEvent(uint256)","ac88c8d8":"verifyAndLiquidate(address,address,address,uint256,uint256,uint256,uint256)","ac88ffb2":"feeWithdrawEthAmount(uint256)","ac890c4c":"unsetAllowedMultivest(address,address)","ac8a2af0":"updateShareholders(address)","ac8a584a":"removeOperator(address)","ac8aa236":"batchTransferVIP(address[],uint256[])","ac8aea24":"transferUnsoldToken()","ac8c5e8e":"buyLong(address[2],uint256[3],uint8,bytes32[3])","ac8d6030":"removeRequest(address)","ac8d6632":"addMasterNodes(address,uint256,uint256)","ac8dc6ea":"_decodeData(bytes)","ac8e88c2":"_updateSolvency(uint256)","ac8f539b":"emergencyDrain(address,uint256)","ac8fa644":"transfer_Same_Amounts_of_assets_to_many_addresses(address[],uint256)","ac8fbd09":"UpdatePoolTarget(uint256)","ac900c2d":"unregisterSeller(address)","ac92f4ae":"calldatacpy(uint256,uint256,uint256)","ac92fdb5":"getSaleDate(bytes16,uint256)","ac940823":"betOnLowHigh(bool)","ac957954":"transferDonations(bytes32,address)","ac95a2aa":"_createOriginalPainting(uint256,uint256,uint256)","ac95be9b":"testico()","ac9630fa":"publishGraduatingClass(string)","ac964f21":"numProducts()","ac9650d8":"multicall(bytes[])","ac9663a6":"approveByC(uint256,string)","ac96a0b3":"GYG()","ac96c65e":"doCancel(bytes32)","ac96f981":"authorizeAccess(address,int256,address)","ac978cea":"TeamHOMO()","ac979688":"transferAnyERC20TokenToBeneficiary(address,address,uint256)","ac97ad89":"getTokensFromAddressReturns(address,address)","ac985f0a":"townsSold()","ac9873c7":"CanaryV7()","ac988bdc":"_getStageIndex()","ac991b65":"double_blind_sha256(string,address,address)","ac996e7e":"resolvePledging()","ac99aa69":"recoverEthers()","ac99e0aa":"BitImageToken()","ac99f7b7":"_setStages(uint256,int256)","ac9a252a":"ownershipTransferred(address)","ac9a6515":"testTokenOwnershipAfterFinalize()","ac9b5671":"setVerifier(address,bool)","ac9b5c30":"getCreateMarketfeePerEthInWeiValue()","ac9c3b7a":"TokenTotal()","ac9c80af":"seed_additional_eth()","ac9cd354":"getTransferInfoCount(address)","ac9d7e0a":"raisevote()","ac9ef8a1":"changeMultisigs(address,address)","ac9f0222":"setState(bool)","ac9f2b7b":"callDeposit(address,address,uint256)","ac9f9d12":"FACHAINStandardToken(uint256,string,uint8,string)","aca00932":"calculateBaseTimeout()","aca15663":"transferToExchangeAddress(address,uint256)","aca19256":"_logRoundExtensionVolume(uint256)","aca233fd":"one_two(uint8)","aca31e61":"setEthPerToken(uint256)","aca34c11":"getPoolDetails()","aca62a5f":"convertAllOldTokens(uint256,uint256)","aca66aec":"DVIP()","aca67a8f":"getIsNFTAttached(uint256)","aca6fdf2":"getJobWorkerName(uint256)","aca7207a":"changeCoolDownTime(uint256)","aca7dcfe":"token_swap_supply()","aca7fdd4":"initialFunding(address,address,uint256)","aca867b3":"secure(address,uint256)","aca8dd6b":"test_threeInvalidEqString()","aca8e9dd":"setBillboard(string)","acaa78cd":"addTransferrer(address)","acaab181":"addSomeGas()","acab021c":"getTOS(address)","acab3e5d":"PricingStrategy()","acabbbc0":"getSlogan(uint64)","acabd1b9":"setFee3(uint256)","acac0b9f":"setMaxPerExchange(uint256)","acac9a9f":"undropped()","acad94ae":"humanStandardByteCode()","acada0d8":"SUNQToken()","acaf0278":"contractuallyOf(address,address)","acb02504":"getJobDescription(uint256)","acb02f7c":"VotePumpCoin0x()","acb09dde":"fechVoteNumForCandidate()","acb0bdc3":"isPolicyExist(bytes32)","acb10351":"setupDutchExchange(address,address,address,address,address,uint256,uint256)","acb1516f":"accreditationMember(address,address)","acb1e61f":"transferable(address)","acb2ad6f":"transferFee()","acb2d607":"TokenBet(address)","acb2fe3e":"checkBlackListAddress(address)","acb39d30":"tokenCreated()","acb3c073":"setSwap(address)","acb461df":"tavern(uint256)","acb5e570":"DepositClaimed(uint256,address,uint256)","acb62d7c":"clearConfig()","acb6a6aa":"_generateRandomNumber(bytes32,uint256)","acb6c69b":"setTrustedClient(address)","acb6ca94":"Nomid()","acb6e626":"ImageCoin(uint256,string,string)","acb6e9b1":"testControlItemStoreNotRegistered()","acb6f75c":"PreIco(uint256,address,uint256)","acb748e9":"RuletkaTestIo()","acb74e73":"canSaleInfo()","acb8726a":"distributeTax(uint256,uint256,uint256,uint256)","acb88986":"freeze(address,uint64)","acb894d2":"fint256(int256)","acb902f6":"secondHighestBid()","acb93f36":"ratePerHourInWei()","acb9656c":"setLockedTokens(address)","acb9d6f6":"getStageandPrice()","acbaed04":"TootyrTokenSale()","acbb471f":"EthermiumAffiliates(address)","acbb5759":"SetAction(address,uint256)","acbc272b":"newToken(string,string,uint256)","acbc3ff4":"keyFoundation()","acbc62ae":"TokitDeployer(address,address)","acbcabc0":"pantryT()","acbd9563":"buyPatent(uint16)","acbdb084":"RequirementChanged(uint256)","acbdb72c":"getSecondAdmin()","acbdea6c":"canUpdateBackWindowAdjustmentRatio()","acbe274d":"this_tablet_name()","acbf98a7":"endsWith()","acbfbaac":"getPOOL_edit_30()","acbfbd9e":"Unlock_Tokens(address)","acc02119":"DirectDemocracy()","acc05ccc":"AddressProxy()","acc0a246":"uint256At(bytes,uint256)","acc10f11":"collect(address,uint256,uint256)","acc12168":"on_block()","acc2508b":"payoutNow()","acc32da3":"validateIpfsDoc(address,uint256,bytes)","acc3b363":"ContractBHVC()","acc3c020":"investorsToWithdrawIter(uint256)","acc3e283":"test_insert_empty()","acc3e5d9":"deathFactor_ii()","acc58d24":"_removeStackholder(address)","acc5a0dc":"GetPrize()","acc68b2c":"usersRef(address)","acc69261":"addCompany(address,uint256)","acc79f74":"openMail(uint256)","acc7f8a8":"getCurrentDatetime()","acc823f8":"getSurname()","acc88c0d":"decayedBalanceOf(address,address)","acc8cb18":"pushTerm(string)","acc907a9":"getWinner(address,uint256)","acc9138e":"revealBid(bytes32)","acc9383a":"dist_privateSale(address,uint256)","acc93c9e":"setBonusThresholds(uint256[],uint256[])","acc99bb7":"allUnKycedEth()","acca2c24":"getFirmFromAuthority(address)","acca92e0":"finalize(uint32,bytes32)","accb2677":"createCarsTokens()","accb4219":"RISHABHToken(address,address)","accbdfd0":"IsDistribRunningFalg_()","accc4a61":"setPresaleOpeningClosingTime(uint256,uint256)","accd932b":"icoClosedManually()","accd962b":"tokensaleContributors(uint256)","acce4b10":"crowdsaleTargetReached()","accf80a4":"RelaunchedCrowdsale(address,address,uint256,uint256,uint256,uint256)","accf878a":"ActionPresell(address)","accfa48b":"changeRelease18m(address)","accfaeba":"LEGAL_EXPENSES_1_TOKENS()","acd00a5c":"fillAmount()","acd00dc1":"_emitCountryCodeChanged(uint256,uint256,uint256)","acd02c30":"disburseToken(address,address[],uint256[])","acd04c4c":"_setVersion(uint256)","acd105d1":"doomsday()","acd19170":"getarg_2()","acd1bdb4":"updateMinimumContribution(uint256)","acd256db":"setOraclizeBytes(uint256)","acd2988c":"setValidBwMarketCaller(address)","acd2e875":"refferedBy(address)","acd3057a":"jishituihuan(address,uint256)","acd3c39f":"frozenAccount(address,bool)","acd47b3a":"addAuditOrEvidence(bool,bytes32,uint256,bytes32,uint8,bytes32,bytes32)","acd47bc3":"COMMUNITY_BOUNTY_STAKE()","acd47e97":"TokenPurchase(address,address,uint256,uint256,bool)","acd485fe":"Balicoin()","acd4bca6":"vanbexTeamSupply()","acd4e110":"Amorcoin()","acd4e4aa":"SilverFiftyToken()","acd590d3":"preSale2Finished()","acd5b7b9":"stopAt()","acd5fb23":"isZero(int256,string)","acd6a40a":"testUntil()","acd6f096":"testThrowsIfSaleIsNotTokenController()","acd782b1":"setProtectionPrice(uint256)","acd78e3a":"getPayIdAndHeld(uint256)","acd84e24":"PLN()","acd9277f":"market_DeclareForSale(uint256,uint256)","acd94ccb":"frozenDaysForICO()","acd9930b":"setHoverText(uint256[2])","acd9fd65":"fun1(uint256)","acda01f6":"setPendingWalletFee(address,uint256)","acda28a1":"bacFund()","acda3e10":"UpdateEtherPriceNow()","acda6737":"TADPOLE_BOOST()","acdaa0d2":"payout(uint256[],address[],uint256[])","acdba7c2":"contract_num()","acdba91f":"setTokenExpectedFee(address,uint256,address)","acdc42f3":"failICO()","acdd1454":"mint(uint256,string,string,string)","acdd9c5c":"SetRegistrationContract(address)","acddb63c":"requestMortgage(uint256[6],string,uint256,uint8,bytes32,bytes32)","acddbe1c":"someFunction3()","acde39d9":"c4cfee()","acdec908":"getBetIdAtRound(uint256,uint256)","acdf4f18":"buyBack()","acdf67b3":"blockWithdrawBegin()","acdf7362":"setLock(address,address,uint256,uint256)","acdfa0ac":"acceptNameTranfer()","acdfb350":"hariKari()","ace1fab1":"withdrawReserve()","ace237f5":"pep()","ace30883":"absMinFee()","ace36da2":"setChain(address,address,address)","ace4283b":"getSecondsToExpiration()","ace45552":"endICOStage6()","ace51abc":"helperVerifyHash__(uint256,int256,int256[],int256,uint256,int256,int256[],int256)","ace523c4":"createReferendum(string,string,uint256,uint256)","ace80e0d":"bytesMemoryArray()","aceaa365":"_creditTo(address,uint256)","aceb87e1":"getUserBio(string)","acec0e1d":"setconf(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","acec338a":"setActive(bool)","acec460f":"tokenDataValue(uint256,uint256)","acec488d":"setAnnouncement(string)","aced1661":"keeper()","aced5935":"getConfig(address,string)","acedc33e":"setDecrementOpenInterest(bool)","acee57e1":"airDropPayableMoney()","aceecbc8":"disableSelling()","acef193e":"FundingCompleted(uint256,uint256)","acef6037":"transferToAddress(address,uint256)","acefb7bd":"JudgmentCoin()","acefd330":"createRandomNumber(uint256)","acf0dd57":"getRegionUrl(uint256)","acf197b1":"IcoRunnedManually()","acf1b06a":"systemCreatedCount()","acf1e9fa":"buyNinja(address)","acf2f478":"changeTradableFciInSession(bool)","acf3508e":"_isLatitude(int256)","acf36037":"getCountryData(uint256)","acf36e53":"addParent(address)","acf372ef":"SetMasterWallet(address)","acf400b2":"getSellOrdersBlackMarketComplete()","acf4280c":"buildDSApprovalDB()","acf50f55":"setItemForSale(uint256,uint256)","acf555b8":"regReferrers(address[])","acf5c689":"setRequiredBlockConfirmations(uint256)","acf5cfbf":"Spend(uint64,address,string)","acf67746":"getPlayerTeam(address)","acf6d918":"ChangeReturn(address,uint256)","acf7aea7":"getCountryLimit(uint256)","acf7c1d2":"updateJackpotBalance()","acf8bf2a":"channelCount()","acf94ed5":"fallbackTriggered()","acf975d6":"addCycleAddress(address)","acf97a65":"redistribute(address[])","acfabbe4":"updateCurrentPeriod()","acfb153d":"RoundTime()","acfb208b":"transferFee(uint16,uint64,address)","acfb2d95":"iHaveABiggerDick(string,string)","acfb4b26":"DIVIUMx2()","acfd18c6":"FOUNDATION_ADDRESS()","acfd35a0":"distributeSuccessfulCampaignEth(uint256)","acfd82f2":"grantOwnership(address)","acfdfd1c":"deploy(uint256,string,string,address)","acfe27d7":"Slashing(address,uint256,bytes32)","acfe711a":"Scientific()","acff2fce":"forceNSFW(uint256,bool)","acfff377":"rollDice(uint256)","ad00129e":"bonusOver100ETH()","ad00297a":"payDeposit(address,uint256,bytes)","ad003aeb":"setUserNotifications(address,address,bool[],bool,uint8[],uint8)","ad009062":"newVitaReward(address)","ad0096af":"transferFromWithCustomReserving(address,address,uint256,uint256)","ad01ed4c":"s3(bytes1)","ad0212df":"capitalNeeded()","ad0254a6":"BitGuildWhitelist()","ad03261e":"supportRebalance()","ad03abc5":"enableRealCap(uint256,uint256)","ad044f49":"totalFunded()","ad04592e":"owner_deposit()","ad04d74d":"buyCoreWithBalance(address,address,uint256)","ad0570c7":"setUsernameForAddress(bytes32,address)","ad07008f":"icoDiscountPercentageLevel2()","ad07220f":"forceTransferBalance(address,address,uint256)","ad075684":"TotalPayment()","ad0767bd":"RECORDPart()","ad076994":"verify(address,address,uint256)","ad076bfc":"debug_hash256Double_concat(bytes,bytes,bytes)","ad09019d":"oraclize_getNetworkName()","ad09202a":"confirmDealCompletionByDoctor(bytes16,bool)","ad093409":"getTicketOwner(uint256)","ad0a58c8":"checkAndDeclareWinner(uint32)","ad0a6cc3":"attackTileForExistingUser(uint16,uint256,bool)","ad0b2bec":"redeemWinnings()","ad0b38a2":"getAppId(string)","ad0b6013":"DEFAULTED_STATUS()","ad0bc739":"testConcatMemoryZeroLength()","ad0be174":"zHQNumber()","ad0c3dff":"icoStartedAt()","ad0d3713":"getTittyOwner(uint256)","ad0d4c3d":"HaiWang(uint256,string,string)","ad0dd79f":"usersWithdrew()","ad0e053b":"getPointerOwner(uint8)","ad0e13bb":"toB32(bytes,bytes,address)","ad0e8bc7":"givepoints(address,uint256)","ad0e9053":"set_pauseReturn(bool)","ad0f2916":"coinPrice()","ad108280":"BECTStandardToken(uint256,string,uint8,string)","ad1088e4":"didProve()","ad111feb":"DFSToken()","ad11cc1d":"claimC1()","ad11fe44":"revokeAllowance(address)","ad121e33":"fundFounder()","ad1288c8":"forkTransferFrom(address,address,address,address,uint256)","ad12cc0b":"removeLibrarian(address,address)","ad13eb02":"createScanner(uint256)","ad150aec":"calculateHeldTokenDistribution()","ad156d34":"AllocateBountyAndEcosystemTokens(address)","ad166aae":"MyTest(uint256,string,uint8,string)","ad180328":"_check(address,address,uint256)","ad188be0":"userBetContribution(address)","ad1896db":"resetElectionPeriod()","ad18ad0c":"quote(address,uint256,address)","ad1922b0":"setIcoCloseTime(uint256)","ad19bd26":"getVoteCommit(uint256,address)","ad19e993":"_callSender(bytes32,address,address,address,uint256,bytes,bytes)","ad1a17b4":"getPaymentCount(uint256)","ad1a38be":"_createNarco(string,string,address)","ad1a7d0c":"getBook(bytes32)","ad1aa252":"withdrawUnsentTokensForOwner()","ad1b3909":"coinage()","ad1be7c1":"softCapClose()","ad1c582a":"divUIntValue(bytes32,uint256)","ad1c5d6c":"updateShareCrystal()","ad1d0dcf":"exodus()","ad1def42":"registeredAddress(address)","ad1ef61e":"donkeyInvested(address)","ad203bd4":"subMonths(uint256,uint256)","ad207feb":"ethTeamWallet()","ad217ae5":"stats(uint256)","ad220cf1":"currentPrivateSale()","ad221195":"transferTokenFrom(address,address,uint256)","ad22453c":"BRANDS()","ad226122":"presaleFallBack(uint256)","ad22980a":"TopChainCoinMintFinished()","ad22ccc0":"committeeJoinVoters(address,address)","ad22d4a2":"get_last_item_in_state(bytes32)","ad2334a0":"spinnerModulus()","ad2377c1":"pausePriceRaise()","ad23ad92":"AfriHealthCoin()","ad23de63":"isAddressWhiteListed(address)","ad23e038":"HelloToken(uint256,string,uint8,string)","ad23fdc3":"deCompose(string)","ad23fde0":"breed(uint256[2],uint256[2],uint256)","ad247dd9":"permissonedAccounts(address)","ad24d512":"TECHNOBITToken()","ad25ce57":"bidOnSaleAuction(uint256)","ad266df8":"ARA(uint256,string,uint8,string)","ad26f6e1":"SetParticipantName(address,address,string)","ad27b14d":"cancelBet(bytes16)","ad28ff88":"blacklist(address,address)","ad295b26":"getDepositInstanceCount()","ad29ca6d":"eosCrowdsaleAddress()","ad29ddaa":"removeRound(uint256)","ad2a0a7b":"_changeEternalStorageContractAddress(address)","ad2a39d6":"secondStartTime()","ad2a9c5f":"MIN_CARD_PRICE()","ad2af501":"Games(uint256,string,uint8,string)","ad2b14d1":"changeCrowdsale(address)","ad2b1e03":"privilegedBurn(uint256)","ad2b260a":"decimalNum()","ad2ba325":"splitStr2Int(string,string)","ad2bb1b3":"blockAddress(address)","ad2bbf9c":"_redeemByTranche(bytes32,address,address,uint256,bytes,bytes)","ad2c1632":"ArenaplayToken()","ad2da239":"calculateVote(uint256,uint256,uint256)","ad2daa48":"roundTimeRemaining()","ad2de16d":"acceptTxTask(uint256)","ad2e1d49":"getHeirachy(bytes32)","ad2e6aff":"WithdrawEarnings()","ad2e8c9b":"getDuration()","ad2ec740":"PRICE_9()","ad2fad33":"setSpawnProxy(uint32,int256,address)","ad2fea7c":"removeMinter(int256,address)","ad317c23":"mileagePointPrice()","ad319bab":"TokenERC20AC(uint256,string,string)","ad31e845":"_tag(uint256,string)","ad3286fc":"AddToken(address,uint8)","ad32a40f":"Fund(address,address,address,address,address)","ad32f925":"makeAvailable()","ad3335b5":"setINNBCTokenAddress(address)","ad33513f":"refundAmount()","ad33e21d":"getReferralBonus(uint256)","ad3429be":"developmentTokens()","ad344465":"AccessorySeriesCollection(uint8)","ad344bbe":"sgtExchanger()","ad35bdb0":"extraSupply()","ad35dcd3":"AGAVE(string,string)","ad36c593":"getOwnerOfCampaign(bytes32)","ad3704c5":"getApplicantsLength()","ad374f5b":"enableClaimTokens(bool)","ad376113":"addDevReward(uint256)","ad379089":"canSettle(bytes32)","ad37c41b":"blackListEnabled()","ad381cb7":"getCurrentRoundIsActive()","ad38867e":"checkWinner()","ad388896":"setWinnerAndEndEvent(bytes32,bool,string)","ad389d5d":"isValidAdversary(uint8,uint8)","ad38bf22":"updateBlacklister(address)","ad38d6f1":"whitelistWallet()","ad38fba5":"transferEthTo(address,uint256)","ad395939":"withdrawContributorPot()","ad395ad3":"removeFromContractIDArray(address)","ad3a05ca":"BlackToken()","ad3b1b47":"withdrawFees(address,uint256)","ad3bf1f1":"refundPeriodOver()","ad3c0b9d":"CROWDSALE_DURATION()","ad3c8b22":"addSkipPrice(uint256)","ad3c901c":"getPendingById(uint256)","ad3cd883":"changeContractName(string)","ad3de14c":"getMap()","ad3e0ed2":"getAffiliateSenderPosAmount(uint256)","ad3eb71f":"plcrFactory()","ad3ef46d":"RealstateOceanProject1(address)","ad3f972e":"deleteChild(address,address)","ad3ff3c1":"houseAlwaysWins()","ad401842":"setDateMainStart(uint256)","ad40256f":"reclaimableOwner()","ad418e66":"strategicReserveSupply()","ad41b628":"MHCToken()","ad447a19":"getBalanceDB()","ad449198":"returnBorrower(uint256)","ad4493fe":"checkPoint(uint8,int256,uint16)","ad44c205":"Nudge()","ad44e73b":"unwhitelist(address[])","ad450b72":"SupplyLimitChanged(uint256,uint256)","ad452254":"BsToken_SNOV()","ad459a1c":"CurrentAirdropped()","ad468489":"register(bytes32,address,bytes32,bytes32,bytes32)","ad470886":"token_approve(address,address,uint256)","ad4749f4":"setupPeriodForFirstStep(uint256,uint256)","ad474b9a":"Engraved(address,string,string,bytes32)","ad475113":"PRESALE_BONUS_VOTING()","ad478dda":"investmentUpperBounds()","ad483188":"setCCH_edit_12(string)","ad48636a":"secondBonusSalesEnds()","ad487790":"reveal(bytes32,address)","ad487f3c":"LogFreeze()","ad48d611":"marketToken()","ad4946ee":"removeAddressFromNonzeroBalancesArray(uint256,address)","ad498ce1":"RATE_NO_DISCOUNT()","ad49f595":"checkAddress(address,address)","ad4a7bd9":"lockTokensForAs(address,address,address,address,address,address,address,address,address)","ad4ac3de":"LoveCoin()","ad4b243b":"buyOneMinuteLottery(uint256,uint8[],address,bool)","ad4b2ca4":"batchdrop(address[],uint256[])","ad4b558c":"monsterIndexToOwner(uint256)","ad4c05f1":"setResourceForStar(uint8[5],uint16[5],uint32[5])","ad4cd0d6":"stdlib()","ad4dde0f":"transferOwnershipOfItemsStorage(address)","ad4e2f77":"addDragon(address,uint256,uint256)","ad4e39f3":"getLendingItemInfo(address,uint256)","ad4f0e3a":"DevsmartCoinFive()","ad50039f":"setTechBonus2(uint256,string)","ad5022a5":"Votes()","ad506098":"WowMusicDiamondToken(address)","ad509c1d":"sendToken(address[],address[],uint256[])","ad50dd1f":"endPrivateSaleStage()","ad53322b":"donationAmountInWei(address)","ad534d9c":"logCoinAgeRecord(address,address,uint256,bool)","ad53be1d":"priceLeRT()","ad544dcb":"testSetNotUpdatable()","ad549e53":"set_participant_arbits_kyc_whitelist(address,bool)","ad5511a5":"_setTokenSeed(uint256,string)","ad559fd6":"setHigherPricePercentage(uint256)","ad562965":"getReceiptRoot(bytes32)","ad5632e6":"storeAuthenticity(string)","ad5688d8":"setCountryPicture(uint256,string)","ad5780af":"clearDNSZone(bytes32)","ad57a2df":"unrestrict()","ad57ceb4":"ethForMilestone()","ad58a7d2":"getSettingState(uint256)","ad59ffd1":"maxAmountBonus()","ad5a157d":"promoMoney()","ad5a8f29":"canEnterPool(address,uint256)","ad5b7189":"hasBooster(address)","ad5b896e":"refundMany(address[],uint256[])","ad5bfcb5":"getServiceStatByAddr(uint64,address)","ad5c1687":"offchainUpload(address[],uint256[])","ad5c4648":"WETH()","ad5c613d":"purchase(bytes)","ad5cd9e7":"startSTO()","ad5d2862":"getWinnings(uint256)","ad5d638d":"minFundedValue()","ad5dabb0":"assertYoungerBalance(uint256,uint256)","ad5dabca":"QatarCoin()","ad5e2cd0":"addPresale(address,uint256)","ad5e46cb":"hasError()","ad5f3433":"sumHardCapICOStage4()","ad5fb2b1":"seedVerification(string)","ad60540b":"MoccaCoin()","ad605729":"getParticipantCount()","ad606c72":"devWithdraw()","ad615f40":"getCrosCounter()","ad621b14":"BaoMaToken()","ad622d0e":"addDoctors(uint256,uint256,string)","ad62bda5":"setRoundLength(uint32)","ad62f1ca":"mintFor(uint256,address)","ad631abe":"BLO_PER_WEI()","ad63a469":"totalUsedTokens()","ad64ae4b":"registerModule(address)","ad64fa5c":"MINBET_forORACLIZE()","ad652cdd":"InternetMarket()","ad655998":"addAuthorizedInsertAgent(address)","ad65d76d":"ethToTokenTransferInput(uint256,uint256,address)","ad66de24":"impl_lock4Dividend(address,uint256)","ad66e52a":"etherBalance()","ad677d0b":"join(bytes32)","ad686011":"returnPurchase(address)","ad68ebf7":"migrate(address,uint256)","ad69644b":"setBestAngel(uint32)","ad69caa5":"expMod(uint256,uint256,uint256)","ad6a0546":"creatorsLocked()","ad6ad449":"HodlerMining()","ad6aefbb":"BeatTokenPreIcoStarted()","ad6b2c90":"getListTokens(address,uint256,uint256,uint256)","ad6b5d04":"amountClaimed()","ad6b9499":"getContactRecord(string)","ad6c8762":"paymentChannelsCount()","ad6cd14e":"EthLongExercised(address[2],uint256[8],uint256,uint256)","ad6d9b89":"bytetherOVAddress()","ad6dfe5c":"getPRewardId(address,uint256)","ad6e155e":"setContractPreICO(address)","ad6eba9f":"getSingleSubjectByAddress(address,uint256)","ad6eff22":"getUserType(address,address)","ad6f80ff":"getSignatures()","ad70810a":"getChainDrawings(uint256)","ad70fbc8":"QuickChain()","ad714012":"calculateMatchOutcomesForRoundId(int256)","ad71766e":"getWeiSoldToday(address)","ad717e8c":"_oraclizeQueueRound()","ad71a1fd":"MAX_SUPPLY_OF_TOKEN()","ad71c687":"registerSystem(string,string,string,string)","ad7222c1":"tokensAmountFrom(uint256)","ad723faa":"MChip()","ad72dce9":"buildFactory(uint8,uint256)","ad731de7":"createPromoCollectible(uint256,address,uint256)","ad732eea":"send(bytes20[])","ad7411e1":"CreateNertia(address,uint256)","ad7430cc":"RECEIVER()","ad74f9bc":"calculateCurrentPrice(uint256)","ad7554d9":"setDoubleRewardEndTime(uint64)","ad76325f":"finishProposalVoting(uint256)","ad7639fe":"TokenPurchase(address,address,uint256,uint256,string)","ad76423e":"DelphiToken()","ad764780":"OpenController(address)","ad7738b6":"MAX_TOTAL_ADOPTED_AXIES()","ad78dc8e":"totalWannaBuyAmount()","ad78f31a":"ticketStringFromAddressBytes(bytes32,address)","ad796b5d":"TOKEN_SUPPLY_AIR()","ad79c927":"TokenSwap(address,address,address)","ad7a14e1":"tokenRemainPublicSale()","ad7a5ff9":"autoDistributionViaETHContributions()","ad7a672f":"totalBalance()","ad7b09c5":"InitIcoController(address)","ad7b6884":"editContributors(address[],uint256[],uint256[])","ad7b6cb5":"bountySEEDSinWei(address[],uint256)","ad7bafc7":"mint(int256,address,uint256,uint256)","ad7bfd2d":"Cashchain()","ad7c66d0":"sellAllMilk()","ad7d59fc":"checkPlace()","ad7df080":"consul()","ad7e01c8":"wolkGenesis(uint256,uint256,uint256,address,address)","ad7e262c":"hasEmployerMinRatingsCount(address,address,uint256)","ad7e74f9":"addJobSkill(uint32,bytes32)","ad7e7cfc":"UpdateMaintenance(bool)","ad7ead58":"walletLock()","ad7eb560":"block5()","ad7ed3c2":"executeLottery(address)","ad7ed923":"ElepigToken()","ad7eee9f":"updateInt256s(bytes32[],int256[])","ad7f02b5":"balanceOf(address[16],address)","ad7f401b":"creatorInited()","ad7f9d76":"getInvestorBuyers()","ad7fa43c":"settleFeeSecondPart(address,uint256)","ad7fadc5":"buy(address,address)","ad7fff7c":"hasWorks(bytes32)","ad8088a5":"XdacToken()","ad80a7b4":"totalUndistributedDividends()","ad80ef94":"tokenExchanges(uint256)","ad810fe5":"holderIndex(uint256)","ad818071":"showStats()","ad81cd90":"villagesSold()","ad81d6f3":"createDefaultLinglongCat(uint256,uint256,uint256,address,uint256,uint256)","ad81f3be":"Barneys4HackerSpaceToken()","ad82ae61":"internalDoubleTransfer(address,address,uint256,address,uint256)","ad82dcac":"testBlockhashCorrectFee()","ad838107":"_checkDestination(address,address,uint256,bytes)","ad83bfce":"GetOwner(string)","ad845d2d":"toBytes()","ad84e1be":"createTokenContract(address)","ad84e2a6":"getCrab(uint256)","ad84eaab":"minimumPurchaseAmount()","ad869e1a":"_batch3_icosaleEndTimestamp()","ad86c10d":"GamingCoin(string,string,uint8)","ad86ee0b":"passOnContract()","ad8718c2":"Create(uint256,uint256,uint32)","ad8733ca":"multisend(address,address[],uint256[])","ad879a46":"cancelBetByA(uint256)","ad886326":"_isSignedOwner(bytes32)","ad889f03":"USER_TIMEOUT()","ad88d8a5":"try_pay(address,bytes12)","ad88f53e":"setFirstStageEndsAt(uint256)","ad89e64b":"_updateLandData(int256,int256,string)","ad8a9c8e":"ownerSetOwner(address)","ad8ae3ae":"poke(address,bytes32)","ad8b4698":"COMETUBU()","ad8b6657":"_createDrone(address,uint256,bool,bool)","ad8c3cd2":"setTank(address)","ad8ce06b":"gasPerTx(bytes4)","ad8d36cb":"CCH_EDIT_2()","ad8d5f48":"exec(address,bytes,uint256)","ad8ead69":"createTeam(string,uint256)","ad8ed335":"__proxy(address)","ad8f5008":"strike()","ad8f905d":"PoolPrize(uint8,uint8,uint256,uint256)","ad8fccf3":"freezeMulti(address[],bytes32[],uint256[],uint256[],uint256[])","ad906661":"add_to_ico()","ad913633":"getOriginalOwner()","ad9171df":"getRemainingLimit(address,address)","ad92e46c":"getNumBettings()","ad93640f":"TRANSFER_PROXY_V2()","ad94d901":"ownsAll(address,uint256[])","ad9657f4":"createCoin(uint16,string)","ad966a03":"_bytes32ToString(bytes32)","ad973d74":"addCustomer(address)","ad976c3e":"setData_24(string)","ad979417":"setPoolName(string,uint256)","ad98ebaf":"ProjectManager()","ad994621":"answerDeliveryChallenge(address[2],uint64,bytes32[],uint256[],uint256[2],uint256[2],uint256,bytes32[3],uint8,bytes32[])","ad9a9f17":"SINGLE_BLOCK_LEN()","ad9abf32":"payDividends(uint256,uint256,uint256)","ad9ac1bc":"addToAllocationList(address,uint256)","ad9b4fc5":"Win(address,uint8,uint256,bytes32,bytes32,uint256,uint256)","ad9b8024":"price(address,uint256)","ad9bdebb":"isReleasable()","ad9c280f":"setLoveUrl(string)","ad9d4ba3":"depositEth(address)","ad9df055":"adminClaimAirdrop(address)","ad9e3e85":"My2Token()","ad9ec17e":"setGreyToken()","ad9f20a6":"MIN_PRICE()","ad9f9a68":"withdraw_unclaimed_balance(uint256)","ad9fb75e":"teamDate()","ada0114c":"Firstsale()","ada018e1":"setBurnFeeAbs(uint256)","ada0618a":"CATSPACE()","ada06dac":"tokenSaleCosts()","ada14698":"killSwitch()","ada199dd":"setFoundersTokensPercent(uint256)","ada1a34b":"resetVoteKindnessEvery()","ada1a8f7":"VUP_PER_ETH_ICO_TIER2_RATE()","ada1b74e":"finalTokensIssueTime()","ada1f3ad":"ReferralContract(address,address,address)","ada24dfc":"KeberuntunganAcak()","ada2cced":"getNumberSuppliers()","ada44092":"addClient(bytes32)","ada4c022":"getAvailableWinnings(address,address)","ada5ba01":"getNodeIndexId(bytes32)","ada5cf63":"initializedBlock()","ada636ce":"compareStages(string,string)","ada65728":"Funding_Setting_funding_time_end()","ada69935":"PonicsToken(string,string,uint8,uint256)","ada6b1d9":"collectedCent()","ada6e537":"AuctusBountyDistribution()","ada7061b":"add_hard_limit(uint256)","ada791f9":"Airdrop(address,uint256,uint256,address)","ada8938f":"moedaToken()","ada8a7d5":"presaleTotalNumberTokenSold()","ada8cfcd":"removeUint256s(bytes32[])","ada8e5ef":"IsCanAllotAward()","ada993ad":"Airdrop(address,uint256,uint256)","adaa19cc":"TGMtoken()","adaa3c73":"enableBets()","adaa730e":"RollDice(address,uint256,uint256,uint256)","adaaa1e1":"addThing(bytes32,string,bytes32,string)","adaabaaa":"bonusEndDate()","adabc7f8":"changeTransferStep(uint8)","adacb0fa":"CloseChannel(bytes32,uint8,bytes32,bytes32,uint256)","adaccd74":"getNickname(address)","adad1cb1":"VisperNetwork()","adad4873":"distributePresale(address[],uint256[])","adad6d50":"KujiraFund()","adad9c4e":"increaseMaxCap(uint256)","adadb11f":"setJotter(address)","adadc77f":"unown()","adae08dd":"createItem(uint256,uint256)","adaea0b9":"fund(address,address,bool)","adaf28d1":"whichPeriod(address,uint256)","adaf7c84":"PreICOStartTime()","adaf8c79":"chargeOn(address,uint256)","adb187bb":"validRequest(bytes32[],bytes5,address)","adb1ad42":"HelloGoldToken(address)","adb1cd73":"getUnpaid()","adb1f640":"getScore(uint256,bytes32)","adb27ded":"tokenBonusTimes(uint256)","adb2e02f":"internalRegisterCert(bytes32,bytes,uint256)","adb37277":"setWebsiteUrl(string)","adb3a3a6":"deadlineToFreedTeamPool()","adb42139":"totalCrowdsale()","adb44a32":"updateUint256(bytes32,uint256)","adb4af3e":"getLatestUpdate()","adb4d990":"assigned()","adb506a6":"FACTOR_5()","adb5735c":"withdrawFor(address,address)","adb5777c":"getDrawBlockNumberByWinner(address)","adb5a4f1":"ListReservePairs(address,address,address,bool)","adb5a54d":"eccVerify(bytes32,uint8,bytes32,bytes32)","adb5da34":"_getClientPaidUpTo(address)","adb610a3":"currentNonce()","adb67c41":"XiongDiLianToken(address,address)","adb6859d":"directorTransferShareRequired()","adb6e8f5":"GetDislikeCount()","adb6f63f":"commitments(address,address)","adb746dc":"bltOwned()","adb77576":"etherLeaked(uint256)","adb8249e":"increaseApprovalPreSigned(bytes,address,uint256,uint256,uint256)","adb848df":"NZD_Omnidollar()","adb88cb9":"totalSupplyIco()","adb9066e":"COLDITION()","adba54e0":"commandPercent()","adbc9bed":"getRestWhite(uint256,uint256)","adbd9753":"issuingTokenOwner()","adbda5a8":"voteToKickoffNewFiscalYear()","adbde797":"updateTrustRankAfterStoryExpiry(bytes12,bytes12[])","adbe2f6f":"abortive(uint256)","adbefffe":"getAddressBetsForEvent(bytes32,address)","adbf29fd":"getPlayerDataForGame(uint256,address)","adbf54b7":"initialBalanceForMarketingCampaign()","adc02a64":"addAsset(string,address)","adc042bf":"mint(int256,uint128)","adc06ccd":"batchDoubleBalances(address[])","adc128eb":"Today()","adc1463a":"ZLCC()","adc1b956":"lastClaimed()","adc1db89":"SpaceKIMToken()","adc1f702":"LanaCharleen8()","adc20b1c":"lastMint(address)","adc23f03":"canClientTerminate(bytes32)","adc29028":"calcAndSetPlayerTotalCanAccept(address,uint256)","adc2c98a":"edge()","adc38b2f":"iterateTurn(uint16)","adc4739a":"setWLAddress(address)","adc4f654":"ChargeEnergy(uint256)","adc54d30":"transferFromPresale(address,uint256)","adc6d49d":"_executeTransaction(uint256,address)","adc73d46":"getPlayersOfOwner(address)","adc7d448":"_clearAttackLog(uint256)","adc84a42":"SVEToken()","adc87956":"teamVestTokenAllocation()","adc8b4cf":"empowerAdmin(address)","adc8f941":"addExclusionFromTokenUnlocks(address[])","adc9772e":"stake(address,uint256)","adca32e7":"setFiscal(uint256,uint256,uint256,bytes32)","adca8ac6":"addToTransferWhiteList(address,address)","adcaea0a":"simulated_snt(address)","adcb0993":"LILE()","adcccb6f":"Obirum()","adcd2632":"saleTeamAddress()","adcd4aaf":"sendNegativeWhuffies(address,string)","adcd905b":"setListener(address)","adcde05f":"averageKimSalePrice()","adce1c5f":"ensResolver()","adce80d5":"mStopped()","adcf4831":"registerAuditOutcome(address,bytes32,bool)","adcf59ee":"isOwnerOrOps(address)","adcf780a":"disallowTransferBetweenUsers()","add052b4":"getStateFunding()","add08f87":"coinbaseAmount()","add1cbc5":"TOKEN_TRANSFER_PROXY_CONTRACT()","add2af69":"releaseLockedTokensByIndex(address,uint256)","add37100":"getOrderHash(address,uint256,address,uint256,address,uint256,uint256,address)","add3bf39":"manualTransferTokensToInternal(address,uint256,uint256,uint256)","add3fa39":"sharing_confirmed()","add40ced":"getKeyID(bytes20,uint8)","add43c59":"EtherTopDog()","add466a4":"chfCentsPerTokenWhileBonus()","add4bfb0":"createDragon(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint16,uint16)","add4c784":"getResult(bytes32)","add54303":"setBlock(uint256,uint256,string)","add5eb02":"setAdminVariables(uint256,uint256,uint256,uint256)","add68daf":"amountOfBidders(uint256)","add7690b":"period0End()","add769a3":"POOToken()","add82871":"strEqual(string,string)","add84df3":"changeGoal(uint256)","add94f25":"IDAP(address,address,address)","add98c70":"dispute(bytes32)","adda1d4d":"receiveListing(bytes32,uint256,bool,address,uint256,uint256)","adda8cf4":"Propvesta()","addace62":"getYesVotes()","addad094":"VLOGS()","addb246b":"MIN_SITE_ID()","addb51ff":"monsterCreator()","addd5099":"oracles(address)","addd7020":"minWei()","adddbacb":"tokenSellCap()","adde36bb":"betEven()","adde61ef":"_isUpdateAuthorized(address,uint256)","added436":"sendFromFund(uint256,address)","addf0813":"withdrawERC20Balance(uint256)","ade05b35":"commissionType()","ade077e3":"Ecoin()","ade0e93e":"withdrawals()","ade2f939":"lookupAllSince(uint256)","ade4637a":"transferFrozen()","ade53c4e":"GenChipsLevel(uint256,bool)","ade5a328":"YYXToken()","ade5e07d":"test_1_validOwner_accessRestriction()","ade60e9a":"modifyOwner()","ade645fa":"bonusPhase2()","ade6e2aa":"expiryTimestamp()","ade716e5":"activatedArbitrationTokens(address)","ade7a3ad":"totalParticipationAmount()","ade7dd7b":"storeInvestment(address,uint256)","adeaa851":"getTotalPrize()","adeb8dec":"setLocks(address[],uint256[])","adeba3a5":"payWithdraw(address)","adebf6f2":"isFungible(uint256)","adec07c7":"setPriceUpdateInterval(uint256)","adec3a92":"totalPonziInGame()","adeca283":"payeeArray()","adee3f4b":"getCodeType(uint256)","adefc37b":"sub(int256,int256)","adefd501":"ledMultiSig()","adf069ea":"startsWith(string,string)","adf07791":"tenant()","adf0c351":"add_participant()","adf13281":"mineFor(address,bytes32)","adf24dec":"setDemurringFee(uint32,uint32)","adf272ab":"vest(address,uint256,uint256,bool)","adf2cead":"mint(bytes32)","adf2d029":"calculateAdminTxHash()","adf2ef99":"ReichaCOIN()","adf2f978":"getCurrentDragonGirlLotteryNumber()","adf403ad":"capitalReserveWallet()","adf46a39":"createContractDank(string)","adf4a144":"startRefund()","adf4fa09":"addPurchased(address,address,uint256,uint256)","adf54e0c":"betOnLowHigh(bool,bool)","adf59f99":"query(uint256,string,string)","adf5d1cb":"YumeriumToken()","adf5e565":"verify(bytes,address,uint256,uint8,bytes,bytes)","adf60404":"THreeDBToken()","adf684ac":"ULChain(address,uint256)","adf6e486":"unPauseToken()","adf70883":"completeUnlockTime()","adf74fc9":"distributeELTCMedium(address[])","adf8a01b":"emitSkillEvaluated(address,address,uint8,uint256,uint256,uint256)","adf8f79d":"LOG_ContractResumed()","adf96752":"trade(address[13],uint256[15],uint8[2],bytes32[2],bytes32[2])","adf9a754":"forwardFundsToOwner()","adf9cd49":"totalWeiCap()","adf9ffea":"lockupOf(address)","adfa1f0c":"Pinged(string)","adfa820a":"deleteBlockState(bytes32)","adfa845a":"test_remove_notInList()","adfaae32":"lastMinedOn()","adfc36a3":"getAssembly(uint256)","adfceb9a":"proxyBuy(bytes32,address)","adfd5380":"preTgeBonus()","adfd7935":"setBridgeNode(address,bool)","adfdb75e":"setRedeemRequestLimitInterval(uint256)","adfdc12f":"createNewGame(string,string,string,uint256)","adfe1190":"components(uint16)","adfe6b80":"InvestAdd()","adfec5f5":"buy(bytes8)","adff2450":"getOuverture_effective()","adff5f36":"PanamavsTunisia()","adffe4db":"setFundingRules(address,bool,uint256,uint256,uint256,uint256,uint256)","adfff41d":"m_Data(address,uint256,uint256)","ae0041aa":"signalCount()","ae005a87":"ERC777DemoToken(string,string,uint256,uint256,uint8)","ae012367":"withdrawTopForTeam(address,uint256)","ae014f1d":"getUserNameByWallet(address)","ae01a8fb":"toCloseVote()","ae01ab47":"setFracoinAuction()","ae01c14f":"SendBid()","ae01dd06":"noteDesignatedReport()","ae01ed8a":"manualWithdrawalFallback(address,uint256)","ae024c40":"isTopic(bytes15)","ae0250c1":"showPoolNumber(address,address)","ae025faa":"newGroup()","ae0269aa":"VirtuePokerSale()","ae02ee5b":"pack(bytes,address,address,uint8,uint256)","ae035846":"END_TIME_SALE()","ae0395ad":"setFriendsFingersWallet(address)","ae03f754":"GongPanToken()","ae040b1d":"get_orderAddress(address,uint256,uint256,uint256)","ae041b90":"WRLCrowdsale()","ae043336":"dolRate()","ae04d45d":"setLockTime(uint256)","ae056477":"addInvestorBalance(address,uint256)","ae06494e":"createHNtokens(address)","ae065737":"tradePreToken(uint256,address,address,uint256,address)","ae06c1b7":"setFeePercentage(uint256)","ae0755d3":"popTransaction()","ae078036":"preICO_tokens()","ae08b8b3":"BUXCOINMONEYCONTRACT()","ae093eb7":"sendICOTokensBack(uint128)","ae0996fc":"getMyEOSKey()","ae0a6b28":"signature(string,bytes32)","ae0aba8c":"acceptPayment()","ae0b4edd":"cancelSellOrder(address[])","ae0b7bdb":"twoWeeks()","ae0bbe4d":"approveRecipient(address,bool)","ae0be41c":"periodPreITO_hardCapInWei()","ae0db13c":"totalBidEth()","ae0e5387":"networkReserveFund()","ae0e8725":"Checkable()","ae0e8f3f":"strategicLockup()","ae0eadbf":"isFirstStageTokensMinted()","ae0f6166":"subtract(int256)","ae101f31":"addStage(uint256,uint256,uint256,uint256)","ae104265":"calculatePrice(uint256)","ae117f3e":"getFSTBalance()","ae11cf73":"isVerfied()","ae11ea9b":"transferChild(address,address)","ae125f00":"mint(uint256,address,bytes32,bytes32,bytes4)","ae1345c4":"CharterCapital()","ae136d62":"firstBonusEnds()","ae13efe0":"batchFreeze(address[],bool)","ae152cf4":"oraclize_query(string,string,uint256)","ae154aab":"passOff()","ae15eb8e":"getCertificate()","ae1616b0":"airdropReserveWallet()","ae169a50":"claimReward(uint256)","ae180337":"withdrawBaseERC20(address)","ae181958":"_setNonlistedUser(address)","ae181f84":"passThroughTap(uint256)","ae188884":"sendOneEtherToMiner()","ae18f5ad":"issueContractAddress()","ae190819":"getBS(bytes32)","ae1a0b0c":"launchLength()","ae1a15e3":"PresaleFundCollector(address,uint256,uint256)","ae1a5611":"ratePerEthPhase2()","ae1a9a3e":"castToUint(int256)","ae1aafb9":"buyPredictForContract(address,uint8)","ae1adba2":"calculateStakeGains(uint256)","ae1b4beb":"buyFactorPromotion()","ae1b6405":"endICOTime()","ae1be1e4":"releaseLockedToken()","ae1c4062":"stopStage()","ae1c9437":"_stringsEqual(string,string)","ae1cad3a":"tip(address,string,uint256,string)","ae1d12a6":"WhyWhyToken(address)","ae1d3043":"teamTimeLock2()","ae1d4b4b":"GambleEther()","ae1dd78c":"sendEtherManually()","ae1e2096":"MAGICCOINERC20(uint256,string,string)","ae1e964e":"newOwnershipFeeProposal(uint256,string)","ae1f14ca":"mainSale_WeiRaised()","ae1f91b7":"updateMinMaxBetCount(uint256,uint256)","ae1fb61a":"TokenTransferProxy()","ae200c73":"joinGameTeam(bytes32,uint8)","ae2022c0":"getUint256Max(int256)","ae203146":"getAccountType(address)","ae2074c8":"addWhiteListAddress(address,address,uint256)","ae20bf15":"claimFreeEggs()","ae224633":"videos()","ae22c1be":"ShowRelease(address,uint256)","ae22e331":"_getCurrentSchellingRound()","ae249f2b":"destroyWhenRoundOver()","ae24e328":"tickerQueryData()","ae25532e":"getProxyId()","ae25753b":"wildcardsHeld(address,uint16)","ae25f630":"DownPlayerResult(string,address,uint256,uint256,uint256)","ae262114":"crowdSaleDragonPrice()","ae263730":"isOperationAllowed()","ae26588c":"removeTrustedContractAddress(address)","ae277584":"amountToSend()","ae27e3c6":"relu_activation(int256)","ae28b68c":"safeTransfer(address,uint256,uint256,bytes)","ae28e912":"teamTokenAmount()","ae2a0ce3":"JustinsToken()","ae2b4e16":"getBalanceInRemix(address)","ae2b5d3b":"_emitCountryCodeAdded(uint256,uint256,uint256)","ae2bd2bd":"clearAuction(address,address,uint256,uint256)","ae2c1506":"getRoundNumberOfBets(uint256,uint256)","ae2c923c":"OlympusLabsCore(address)","ae2cbc91":"Tradable()","ae2da5c5":"getLLV_edit_20()","ae2df7b3":"setImporterBank()","ae2e054c":"closeOrder(uint256,address)","ae2e933b":"feePool()","ae2f1f6f":"calculatePayerDeposit(uint256)","ae307098":"c_MinInvestmentInCents()","ae30d35d":"ARK_TROGLOg_1_00()","ae3125d9":"showTokenSaleClosingTime()","ae319f60":"_updatePurchasingState(uint256)","ae31deb9":"burnCrowdsale()","ae326221":"setSpawnProxy(uint16,address)","ae327322":"cantSetReferrer()","ae32ac7e":"TEAM_LOCK_DURATION_PART2()","ae32c399":"lastBlock_f1Hash_uint256()","ae353131":"BiquToken(uint256,string,string)","ae35707d":"sectionForSale(uint256)","ae35d21a":"CollectibleBidWithdrawn(uint256,uint256,uint256,address)","ae366735":"EQUIPMENT_REWARD_WALLET()","ae36c602":"createPromoItem(address,string,uint256)","ae36f6f9":"_batch4_rate()","ae382baa":"GainCard(address,uint32)","ae39279f":"sendFee()","ae3b2137":"getRoomSetCount(uint256)","ae3b748d":"setMinCap(uint256)","ae3b94b2":"_minimumTokens()","ae3baf4d":"mintableAmount()","ae3c697c":"getMyAvailableWine()","ae3d27ed":"Token_For_Circulation()","ae3d5047":"_changeSymbol(string)","ae3d7160":"compareByte(string,string)","ae3d81b8":"allowedJurisdictions(bytes32)","ae3f4a6c":"test_3_method()","ae3f84f3":"proofMultiSig()","ae3fc899":"CheckExchange(string)","ae404996":"oraclize_query(string,string[3],uint256)","ae40f72f":"testAdd()","ae41480b":"importEthers(address)","ae422c09":"sys()","ae42ce85":"update_oracalize()","ae436b5e":"getLimitedReporterMarketsCount()","ae44dea2":"bytesToUInt(bytes,bytes32)","ae44e840":"priceConfirmedOver500()","ae4538ce":"walletCompanyReserve()","ae457835":"buyTokensFor(address,uint64,uint256,uint8,bytes32,bytes32)","ae457dab":"bonusEnds20()","ae45850b":"schedulerAddress()","ae458ab6":"approve(uint64,address)","ae466db7":"withdrawPenaltyTokens()","ae46e284":"setPortfolio(uint256,bytes32[],uint8[])","ae479a63":"badgeSymbol()","ae47a290":"changeMaxBet(uint256)","ae487dad":"reset(uint256,uint256,uint256,uint256,uint256,uint256)","ae49165a":"getAncestor()","ae49a717":"EVNT()","ae4a7512":"mintICOTokensFromExternal(address,uint256)","ae4a8c88":"claimLoot(uint256,address)","ae4aadbb":"showTransferConfigs()","ae4ab7ce":"Put_DEDI_gift(address)","ae4ac63e":"STANDARD_BUYIN()","ae4b1b5b":"proxyStorage()","ae4b5cb8":"collectDonations(uint256,address)","ae4b76fe":"_createPiranha(string,address,uint256,uint8,uint256,uint8,uint8)","ae4c20af":"increaseICOcap(uint256)","ae4c5e45":"setStarNewOwner(uint256,address)","ae4cc757":"closeEarlyPurchase()","ae4d0ff7":"gen0StartingPrice()","ae4d1af6":"setup(bytes32,address,address)","ae4d42b8":"ptxTail()","ae4d503b":"withdrawOtherERC20Balance(uint256,address,address)","ae4e7fdf":"isMature()","ae4eba1f":"setOldE4(address,address)","ae4f1198":"publicationFeeInWei()","ae4f1476":"searchSeed()","ae4fbdeb":"LastValidated()","ae501c75":"LogLotteryResult(uint32,uint8,bytes32,bytes)","ae50d660":"setFilletPrice(uint16,uint16,uint8,uint256)","ae5103e8":"preSaleFourthPrice()","ae516449":"uintCeil(uint256,uint256,uint256)","ae51c484":"a(bool)","ae51db0d":"VesaStage2PreICO()","ae52026f":"icoSoftCap()","ae529499":"CurrentARXSupplyInWei()","ae530504":"setSetting(string,uint256)","ae53d79e":"ICO_PRICE7()","ae5409fb":"seedInvestorsReserve()","ae55c888":"getData(string)","ae55f1af":"artWorkChangeApprove(uint256,uint256,bool)","ae56e668":"setUnlockAddress(address,bool)","ae5942cd":"deletePermissions(address[])","ae59bd5a":"mintManually(address,uint256)","ae5a1460":"NewDigitalAsset(address,address)","ae5a17a7":"updateCharityAddress(address)","ae5a4a7f":"maxBatchAssignment()","ae5a9bb4":"operatorTransfer(address,uint256,bytes,bytes)","ae5a9d17":"getCompletedTransactions()","ae5adac7":"mintInCurrPeriodCount()","ae5b2540":"setApp(bytes32,bytes32,address)","ae5b6d89":"submitSteak(address,bytes32)","ae5c1816":"CreateKittyToken(address,uint256,uint32)","ae5c24bd":"getFirstElement()","ae5c37fd":"contributionsByIntel(uint256)","ae5c3f14":"getVipBrokerNum()","ae5c75aa":"getBadgeByKtUserId(uint256)","ae5c888d":"month60Unlock()","ae5d2cbe":"_getOwnerTokenByIndex(address,uint256)","ae5da7a0":"_generateGame(bytes32,bytes32,address,uint256[10])","ae5dbd43":"view_get_ResultData()","ae5e6cf4":"cancelReservation(uint256)","ae5ec2e9":"matching()","ae5f502e":"RoundSubmission(uint256)","ae601e4d":"IADForGas()","ae602223":"standFeeAfter500()","ae610b48":"sign(int256)","ae61fcda":"isEthernautsStorage()","ae6215d8":"getBlockHeight(bytes)","ae622c4b":"addToInxWhitelist(address)","ae62fd7c":"setCrowdSale(bool)","ae639329":"sendTo(address,address,uint256)","ae63b517":"ADVISORY_BOARD_TOKENS()","ae640923":"playerEndGame(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address,bytes)","ae6439c4":"icoSaleSoftCap()","ae6506f9":"getCurrentTierIndex()","ae665d5d":"MooguToken()","ae66d948":"getWithdrawn(address)","ae6751e2":"EmilTestCoin()","ae67701f":"ZperPreSale(address,uint256,uint256,uint256)","ae67b4c3":"evolveAxie(uint256,uint256)","ae68c80a":"AddRocket(uint32,uint64,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint64,uint32)","ae68fb83":"creditShareProvision(uint256,uint256)","ae69a893":"getHeirCount()","ae69ccdc":"GMSToken(uint256,string,uint8,string)","ae6a19af":"tokensSoldLimit()","ae6a1c30":"setApprovedWallet(address)","ae6a2435":"HOST_CUT()","ae6a70ee":"_tokenMetadata(uint256)","ae6b0792":"paymentManager(string,address,string,uint256,uint256)","ae6c0b03":"canWithdrawBond(uint256)","ae6caafd":"buyByBot(uint256,uint256,address)","ae6d8a52":"viewFourthLotOfClauses()","ae6dca72":"_allocate(address,uint256,uint256)","ae6e11dc":"terminateTokenLock()","ae6e22f1":"totalEther()","ae6f1db6":"payableFinneyReceived()","ae6f5bd2":"_calResultReturnIsWin(uint256,uint256)","ae702ba4":"isSubscriptionActive(bytes32,uint256)","ae70609e":"LogResult(uint256,address,uint256,uint256,uint256,int256,uint256,uint256)","ae708e7c":"totalConsideredFundedEther()","ae71d5da":"initProceeds(address,address)","ae721e45":"fetchOrdersForPayerByAdmin(address)","ae748575":"CGCM()","ae748837":"addTestimony(address)","ae75c4f7":"rewardsTokensVault()","ae75f9e6":"mock_resetLatestTokenAllocation(address,address)","ae76145d":"SEXcoin()","ae7635f2":"icoEndUnfrozeTokens()","ae764df3":"ICOWallet()","ae775b27":"betOnDozen(uint8)","ae77a6f4":"goldBalance()","ae77c237":"purchase(uint256,address)","ae77d51f":"m_chiefOwnerIndexBit()","ae788913":"AIHToken()","ae788b34":"ILFManagerCandidate()","ae799f4a":"TokenERC20(string,string,uint8,uint256)","ae7a45ba":"addZethrAddresses(address,address)","ae7a833d":"hydroContract()","ae7ad3fd":"setUpgradeabilityOwner(address)","ae7b0333":"executeOrder(address,uint256,uint256)","ae7b1620":"rushTimeChallengeRewardsPercent()","ae7b3825":"exchangeForETH(uint256)","ae7b6bd9":"getLatitude()","ae7b6daa":"numberOfCellsOwnedBy(address,address)","ae7c046b":"applyAllPermission(address,address)","ae7d00f3":"validationPrice()","ae7d0cac":"addShare(address,uint256,uint256)","ae7e23cc":"otherCoinsPurchase(bytes32,uint256)","ae7ed04c":"getLastBidForCanvas(uint32)","ae7f5da4":"lockPeriod2()","ae7fa597":"removePrize(uint16,address,uint256)","ae7fc1da":"_randMod(uint256,uint256)","ae7ffadc":"Bitway()","ae813029":"makeBid(uint16,uint256)","ae813ebb":"TokenFactoryAirdropCoin()","ae815843":"query(uint256,string,string,uint256)","ae817dd1":"doSendBounds(bytes32)","ae818340":"getProfiles(address[],string[])","ae81a54b":"factTeamOf(uint256)","ae81f51b":"mintTokens2(address,uint256,uint256)","ae8205e3":"insert(bytes32,int256)","ae82fcf4":"teamLocked()","ae83ed91":"HashBlock()","ae8421e1":"done()","ae850da9":"getNumberSources(uint256,uint256)","ae873405":"AVG_BLOCKS_24H()","ae873fa5":"PRESALE_MAX_RAISE()","ae87fc4b":"claimStatus()","ae87fd06":"gasPriceLimit_()","ae882412":"getTotalDivsProduced()","ae882cf1":"allowSpecies(uint16,uint16,address)","ae896b2e":"TPN()","ae89a29e":"maxHolderCount()","ae89aeb9":"getEscrowData(uint256)","ae8a6833":"InitialSettings()","ae8a7180":"setStartOfCrowdsale(uint256)","ae8a8690":"createActivePreMintedEdition(uint256,bytes32,uint256,uint256,uint256,address,uint256,uint256,string,uint256,uint256)","ae8b9d7b":"autoSolveGame(uint256,uint256,uint256)","ae8bce2c":"product1_pot()","ae8cdd59":"IBTC(uint256,string,string)","ae8dab48":"setUp(address,address,address,address,address,address,address)","ae8e2217":"SmartexController()","ae8e3b70":"Fin()","ae8efe46":"CheckEntity(bytes32)","ae8f1d29":"createPermission(bytes32,address[],bytes4[])","ae8f2328":"finishcrowdsale()","ae8f6489":"createAndBuyAllAmountPayEth(address,address,address,uint256,address)","ae9074ff":"internalSuccessOver()","ae90b213":"payee()","ae90e9f8":"returnToBuyersContinue()","ae91b691":"changeRefPercentage(uint256)","ae92b204":"getCurrFeeRate()","ae93e513":"cancelOfferForCity(uint256)","ae94bbf1":"getCarDetails(uint32)","ae94e448":"imax(int256,int256)","ae94ec05":"placeBuyTokenOrder(uint32)","ae954790":"Authorizable()","ae9569d0":"PLATPriceOracle()","ae95a7a4":"TacoToken(address,string,string,uint256,uint256)","ae95c24e":"issueMap(address)","ae96b094":"VergeDark()","ae96bf2c":"TakePot()","ae9759ff":"PRICE_MULTIPLIER_ICO2()","ae978f08":"getLatestTweet()","ae97dde8":"MAX_COMMISSION()","ae989d36":"homeTeam()","ae99847b":"daylimit(uint256)","ae999ece":"reserve(string)","ae99aa3c":"getMemberInfo(uint256)","ae99f03c":"SetAddresses(address[],address[],address[],address[])","ae9a0785":"getChannelPostCount(address)","ae9a9295":"YKC(uint256,string,uint8,string)","ae9aea6d":"maxMintQuantity()","ae9b051c":"withdrawSome(uint256)","ae9c1962":"withdrawCommunityPot()","ae9dc04c":"offerSketchForSaleToAddress(uint256,uint256,address)","ae9f96c7":"weightsApportion(uint256,uint256)","aea01c49":"stringToBytes(string,string)","aea09e6e":"crowdfundStartTime()","aea0e35f":"createMarket()","aea13844":"safeGiveByContract(uint256,address)","aea1935b":"confirmEndWork(uint256)","aea197fe":"CreateRecipt(string,uint256,string,string,string,string,string,uint256)","aea31fc7":"setProof(string,string)","aea398da":"paymentWalletAddress()","aea3ad8c":"supportKickoffQuorum(uint256)","aea40787":"SetOwned()","aea43a29":"addMassAddressToWhitelist(address[])","aea452ba":"isBinding(uint16)","aea48690":"incentivisingEffortsSupply()","aea57be4":"resumeIEO()","aea5b69f":"solutionInfo(uint256)","aea6022c":"change_metadata(uint256,string)","aea64763":"stopsale()","aea68d6b":"Shakedown0x()","aea6e1a4":"buyAnotherDrangon()","aea787a2":"showleveldetail(address)","aea8126f":"transferMSM(address,uint256)","aea8d47c":"getLatestContract(bytes32)","aea8dcca":"setTokenInfoMaxTotalImbalanceList(uint256[])","aea92852":"getDevIndex(address)","aea96513":"returnSecretVoteHash(uint256)","aea9b438":"getBuyerInstanceAddress(address)","aeaa3091":"getDealerValue(uint8[],uint8)","aeaaaa08":"proxyClaimTokens(address)","aeaabffe":"UnlockAll()","aeab24df":"reinvestDivsWithContract(address)","aeac3354":"Deal(address,address,address)","aeac529a":"TradingLife()","aeac538a":"ClimateCron()","aeaca25e":"getTotalJadeProduction()","aeacd658":"signProduct(string)","aead9e47":"claimAndWithdraw()","aeadbe24":"getTotalTokens(address)","aeae264b":"BeteventCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","aeaf5a37":"total_land_sold()","aeaf7fc1":"updateCandidate(address,bytes32,bytes32)","aeb00fda":"_getRacerCar(uint256)","aeb1355f":"getH2Amount()","aeb26733":"previligedApprove(address,address,uint256)","aeb27602":"addHash(string)","aeb2ffc1":"getQuery(uint256)","aeb37075":"DividendPaid(uint256)","aeb3ebd0":"LogContributorsPayout(address,uint256)","aeb447ff":"getLevelUpCost(address,address)","aeb47e2a":"COMMUNITY_POOL()","aeb4f0d3":"RegisterTwo(address,address)","aeb58dc5":"setPOOL_edit_15(string)","aeb669eb":"getHatchingEggId(address)","aeb754e5":"Auction(address,uint256)","aeb7614c":"bid(bytes32,bool,int32)","aeb7dd80":"_computeCurrentPrice(uint128,uint128,uint40,uint40)","aeb817ab":"etcSupply()","aeb89f14":"totle()","aeb8f966":"mintToken(address,uint256,int256)","aeb94f48":"getFreePacifist()","aeb9c40e":"isReadyToStart(uint256)","aebacd53":"PRE_BONUS()","aebad3a4":"getCaptainCount(uint32)","aebb2540":"setNewMultisig(address)","aebc0310":"updateOdds(uint256,uint256)","aebcd2d9":"AddSocialAccount(bytes32,bytes32,bytes32,bytes32)","aebd3f96":"receiveToken(address,uint256,address)","aebd4fcd":"shopStoreRegister()","aebe0224":"CollectibleTransfer(address,address,uint256,uint256)","aebe5523":"addTokenWalletInWhitelist(address)","aebf1e3d":"computeTokens(uint256)","aec02eb5":"ServiceContractResolver(address)","aec1914d":"surrender(bytes32)","aec1dd81":"updateNonClosingBalanceProof(address,address,bytes32,uint256,bytes32,bytes,bytes)","aec1ee7b":"STAT_MAX_VALUE()","aec205a5":"contractLaunched()","aec26c0e":"setLoanParameters(address,bytes32,uint256,uint256,uint256,uint256,uint256,string)","aec2f2d9":"first_bonus_duration()","aec30dc1":"minWeightPunish()","aec318f1":"enableMasterTransfers(bool)","aec3ab53":"_futureSupply()","aec4e0bb":"numberOfPunksReserved()","aec5ab08":"getAllDapps()","aec651fb":"getUserTokensByMatch(address,uint32)","aec72d8d":"STAGE_3()","aec77b63":"returnTokensInPool(address[],uint256[])","aec7f5b2":"JoustNum()","aec7f6f3":"compoundInterest(address)","aec8fae8":"getMemberAtKey(uint256)","aec9a987":"claimShare(address,address)","aec9c480":"includesSet(bytes32)","aecadd53":"grantTeamToken()","aecaf4ba":"addMoneyInternal(address,uint256)","aecbaaa1":"LogPayout(address,uint256,uint256)","aecbb5f1":"winAmount1()","aecbf70c":"Kisaan()","aeccee75":"_register(address,uint256,address)","aecd15e3":"getWithdrawalWallet()","aecd1fed":"setupToken(address,address)","aecd27fa":"linkCoin(address)","aecd46db":"testDepositCanbeWithdrawn()","aecdceef":"intToBytes(uint256,uint256)","aecfd412":"Group_2()","aed214fb":"setBooleanMapValue(string,address,address,bool)","aed29d07":"totalRewarded()","aed2e7d4":"addGen(uint256)","aed339ef":"storeHarvestOperation(bytes32,address,string,string,uint32,uint24,uint16,string)","aed362c1":"hasModerator()","aed396c6":"setStageBonus(uint256,uint256)","aed3ebe4":"TokenBCCO(uint256,string,string)","aed4839a":"transferFrom(uint256,address)","aed4aab6":"receiveERC20(address,uint256)","aed5c011":"payWithMerculet(uint256)","aed6512e":"callerAdd(address)","aed6d8d4":"GetStuffNum(address,uint32)","aed76aa4":"getInvestorDepositAmount(address)","aed82a99":"sin_table_lookup(uint256)","aed83846":"removeFromPrivateSaleWhitelist(address[])","aed89fed":"projectContract()","aed8e967":"getEndpoint()","aed8f3da":"partsPerBillion(uint256,uint256)","aeda10be":"ethselfToken()","aeda352b":"hasName(address)","aeda852f":"houses(uint256)","aedb1c8f":"executeContract()","aedb8621":"TMONEY()","aedb9eef":"LDXCToken(uint256)","aedbbf36":"deleteNote(uint64)","aedd18dc":"timeout(address)","aedd3acc":"currentSTCPrice()","aeddaa02":"DelVer(address,address)","aeddab95":"batchUnmount(address,uint256[],uint256)","aeddf677":"lockLimit()","aede4680":"firstReserveWallet()","aede879d":"whatIsMissing()","aedf5360":"icoCrowdsaleContract()","aee06324":"trickleUp()","aee0abaa":"authorizeMany(address[],uint256)","aee145f7":"addressReserve()","aee1b8a1":"XBStandardToken(uint256,string,uint8,string)","aee1d4d3":"blockCreationRate()","aee25613":"sendErc20(address,address[],uint256[])","aee2988d":"addressOps()","aee2dbbf":"getSaleOrdersBySeller(address)","aee338ef":"referalAddrByNum(address,uint32)","aee36731":"OrderApprovedPartOne(bytes32,address,address,address,uint256,uint256,address,uint8,uint8,address,uint8,bytes)","aee40270":"AddAddressToWhitelist(address)","aee4c502":"test_remove()","aee7052e":"startPhaseLength()","aee776ae":"stnExchange(address,uint256)","aee7e176":"finalBonus()","aee83b61":"TASOHATOKEN(uint256,string,string)","aee84f6b":"setTime(address,uint256)","aee8a3bd":"add2Auction(address,uint256,uint256,uint256,uint256,uint256)","aee92d33":"approveByLegacy(address,address,uint256)","aee98408":"versionIndex(bytes32,bytes32)","aee99e52":"getPresale()","aeeb96af":"Highlander()","aeec9ba0":"UpdateManifesto(uint256,bool,bool)","aeedc9e9":"GroupBuy()","aeeed0db":"buyXaddr(address)","aeefb9d1":"distributeEDNR(address[])","aeefb9eb":"PixelToken()","aef0004a":"outputAddress()","aef08617":"limitTier3()","aef093ce":"Doge2Token()","aef0ef2e":"test_validShouldBe3_2()","aef1b9b5":"test_threeInvalidFalseEqLog()","aef251a7":"tokenCtr()","aef3575e":"HandWinsView(address)","aef35e6a":"stage2Sale()","aef37284":"getReservedTokensListValInPercentageUnit(address)","aef3bc17":"getMemberInformation(uint8)","aef3fa6c":"AFROIN()","aef41e3a":"getItemIdsPagable(uint256,uint256)","aef5cbee":"VICToken()","aef5ddec":"Paper(string,address,uint256,uint256,address[],address)","aef721b8":"createSwap(uint256,uint256,address,address,address)","aef76dda":"createPresale(address,uint256,uint256)","aef7ad9c":"getSchellingRoundDetails(uint256)","aef88aba":"DDJATCoin()","aef8a536":"SCNToken(uint256,string,string)","aef95098":"setUrl(uint256,string)","aef983d0":"getDigitFromByte32(bytes32,uint8)","aef99eef":"Game()","aefa573d":"genCode()","aefa68f0":"ifInAllowedLocks(uint256)","aefa7550":"read_u32()","aefa7d98":"getContractAddress(uint256)","aefaacda":"finalTimeout()","aefb1643":"ownerSetPaused(bool)","aefb2dad":"ticketsFor(uint256,address)","aefb658e":"playerDayEthInLimit_()","aefbbf2a":"BANKROLLER()","aefc4ccb":"associatedContract()","aefc8c72":"unsealBid(bytes32,address,uint256,bytes32)","aefd0299":"makeWager()","aefe5ee0":"cashOutTank(uint256)","aefe696b":"changeColorPink()","aefe9ca0":"s40(bytes1)","aefea053":"timelockVault()","af0062e4":"sellable_tokens()","af00be12":"_sendToken(address,uint256,bytes)","af017526":"whitelistAddress(address,bool,uint256)","af01841e":"getownership(uint16)","af01866d":"insertSchedules(uint256,uint32[],uint256[])","af023335":"burnSynths(bytes4,uint256)","af02d47b":"currentBonusPercent()","af030d2c":"setResult(uint256,uint256,bytes32)","af03105b":"depositMintSince(address,uint256,uint256,uint256)","af0396ae":"PLDT()","af03e856":"MockUpgradeableToken()","af047106":"sumPreICO2()","af049ea9":"testFail_interface_call()","af04d0c0":"Deal(address,uint256,uint256)","af053b71":"CostToken()","af05fa10":"upgradedVersion()","af05fc63":"mulpow2(uint256)","af0638f6":"currentMaxPurchase()","af079dec":"setHardwareWallet(address)","af07c768":"Arte()","af080014":"nameChange(string,string)","af086d6f":"setTestVar(uint256)","af08e1ad":"get_arbits_presale_open(address)","af093f9c":"specificBatchCheck(uint256)","af09420b":"_addStackholder(address)","af0a078e":"tHasUpvoted(uint256,address)","af0aba4e":"setExpirationRequest(uint256)","af0ac4b7":"submitNextStage()","af0b4cc0":"minerTotalTime()","af0b7029":"KYCApprove(address[])","af0bbfb8":"registerEndpoint(int256,string)","af0bdb38":"to(address,bytes)","af0c09db":"getChosenNumber()","af0c9259":"Total_SoldToken()","af0cfe1f":"addArticolo(bytes,bytes10,bytes10,bytes)","af0def14":"startWonderAuction(string,address)","af0dfd3e":"blockPeriod()","af0e7ba3":"LeanFund()","af0eec40":"assignWarriorsToBattle(address,address,uint256,uint256)","af1034ab":"addUpdateGrantee(address,uint256)","af106b10":"oracCost()","af107749":"m_emissions(uint256)","af10b8cf":"totalBooty()","af10c810":"turnOff()","af123fe7":"makeDeposit(address,address,uint256)","af129dc2":"numTokensTotal()","af135ff5":"getMemberInfoLength()","af136dea":"setCheckInPeriod(uint256)","af1380ad":"_getTournamentBattles(uint256)","af13f1ad":"forSaleSupply()","af1484d0":"setForkReputationGoal(uint256)","af157c19":"getContributors()","af164016":"PersonalTime(address,uint256)","af16972c":"mining(uint256,bytes)","af1747aa":"checkDeck(bytes32,uint8[],bytes32)","af17dea6":"symbol_()","af191aa5":"isCertificateRegisteredAndValid(address)","af19f0d1":"CoinPreSale(uint256,uint256,address,address,uint256,uint256,uint256,uint256)","af1af4df":"feeBurnerWrapperProxyContract()","af1b5feb":"addWeiRaised(uint256)","af1b7d90":"take(uint256,uint256[4])","af1c084d":"adminName(address)","af1c7940":"fiatInvestorShare(address)","af1cd6d3":"test2(uint256,uint32)","af1cd9f6":"getGGCTokenBalance(address)","af1d06e8":"validateSignature(bytes32,uint8,bytes32,bytes32,address)","af1e19d9":"getPlayers(bytes32)","af1ee630":"getBdpOwnershipStorage(address[16])","af1ff972":"rateForCurrency(bytes4)","af2096ef":"MAX_PUBLIC_SOLD()","af20b964":"maximumFundingGoalInETH()","af21037f":"clearStartTime()","af224bdc":"parseAndStore(bytes)","af225fd6":"get_last_user_recast(bytes32)","af22fd8e":"NtsToken()","af23e1f1":"returnForMint(uint256,uint256,uint256)","af24cba2":"setLastAction(uint256,uint256,uint8)","af24d25c":"openTransfer()","af250a5e":"calculateAndTransferTokens(address,uint256)","af259886":"userToNumVillages(bytes32)","af261875":"t_ImmlaBountyTokenDepository()","af263ec9":"HomeToken(string,string,uint8,uint256)","af269745":"upgrader()","af2759f7":"timeUntilClaimAvaliable(address)","af2768ec":"commitMove(bytes32,bytes32)","af2780ee":"PERIOD_BLOCKS()","af27c7b3":"Security_HasPasswordSha3HashBeenAddedToBankAccount()","af28059d":"ChangeItemPrice(uint256)","af2885b2":"minimumEtherCommission()","af28a537":"totalRoundSeedAmount()","af299510":"HasBooster(address)","af29e720":"remainingGasFund(uint256)","af2a7fb2":"Brewers()","af2b114a":"Erc20SupplyToken(uint256,string,uint8,string)","af2b1925":"MarmotToken(uint256,string,uint8,string)","af2b2e5c":"ReVo()","af2b76ab":"airDropHero(uint16)","af2bf027":"minMaintenanceMarginAmount()","af2e285c":"setBidState(bytes32,uint8)","af2e2da9":"getValidatorName(address)","af2f0c46":"SupportComponent(uint256,address,uint256)","af2f9105":"_performWithdraw(address,address)","af2fa91c":"otherCurrenciesChecker()","af2fcc17":"globalMinPurchaseAmt()","af303a11":"salvageTokens(address,uint256)","af304bab":"getPriceByCredentialItemId(address,bytes32)","af30e4d6":"Log2(address,bytes32,uint256,string,string,string,uint256,bytes1,uint256)","af30e9f7":"transferICOTokens(address,uint256)","af30ee3f":"GOD()","af310f02":"NotCoin(string,string,uint8)","af314579":"isDayFirst()","af31f49b":"startNextAccountingPeriod()","af3309d8":"heartbeatCount()","af339ee4":"convertLotById(bytes32)","af33f8a5":"Order_execute(address,address,uint256,uint256)","af35314a":"INITIAL_TOKEN_FROM_COMPAIN()","af356eee":"preicoContractAddress()","af35ae27":"getRemainingTokens()","af35ae3e":"setSaddleShopSaleFee(uint256)","af35b3f1":"why()","af35c6c7":"enableTransfers()","af35dac2":"convertToCents(uint256,uint256,uint256)","af36778b":"aggregate()","af36e7a7":"removeUserWhitelist(address[])","af371115":"findCertificate(bytes)","af375838":"addBurnupGame(address)","af378ce5":"bust(uint256)","af38d757":"claimable()","af3996c3":"fourthStageMinted()","af3a4feb":"LOOMIA_LOOMIA_REMAINDER_ADDR()","af3cc6be":"MoxianCoin()","af3d8e43":"preICOTokenDelivery(address,uint256)","af3dc180":"ecosystemBuildingWallet()","af3e8a40":"orderMatch(bytes32)","af3f0ebe":"c_startTime()","af3f12bc":"profitSharingContract()","af408d89":"setStatus(bytes)","af40ce20":"revokeUnicorn(uint256)","af40dd2f":"AccessToken()","af418e4c":"setReclaimPeriod(uint256)","af422cce":"marketSellOrders(uint256,bytes[])","af42d106":"setKey(string)","af431f03":"setUser(address,string,uint256)","af43f597":"get_amount_minus_commission(uint256)","af448721":"refundMe(address,uint256)","af44e487":"overdraftPeriodsNumber()","af45118e":"createProposal(address,bool)","af45de05":"disableDonation()","af463d2a":"CentaToken()","af468682":"startsAt()","af46aa08":"stakeBalanceOf(address)","af475a9b":"setUSDPerETH(uint256)","af477528":"addMetadataObject(string)","af47c1af":"getActionByIndex(uint256)","af481be8":"mint(string,uint256,uint256,uint8,string)","af488ca3":"setLiquid(bool,uint256,bytes)","af489d5a":"_moveBalance(address)","af49a228":"DeshiCoin()","af49e321":"getHolderLimit(address)","af4a2984":"createPrizePool(uint256[])","af4a822d":"getCurrentTrancheIndex(uint256)","af4b382d":"PaquariumToken(uint256,string,uint8,string)","af4b3cab":"delBounty(address,address,uint256)","af4bed26":"setExchangeRateByOraclize(address,bytes32,string)","af4c14ee":"setAddressWhitelist(address,bool)","af4c2288":"getNumAcceptance(address)","af4c3d1d":"BPofMakerByIndex(address,uint256)","af4c6838":"tokenDeposited(address)","af4c9b3b":"withDrawalether(uint256)","af4cd457":"getOrCacheValidityBond()","af4d723c":"Libidocoin()","af4e3d37":"withdrawReservedTokens()","af4e4494":"TANKER_TYPE()","af4e99de":"getGameData()","af4fd9e7":"setValidLockingAmountToPeriod(uint256[3],uint256[3])","af500fb7":"readBytes32(bytes,uint256)","af50e0d3":"DeDeMasterContract(address)","af5177b1":"calcDrawCode()","af519bf5":"doesProofExist(uint256,bytes32)","af5260bf":"finalTime()","af52fbed":"retrieveWineData(bytes32)","af53dc6e":"contractbacklist()","af54e324":"upgrade_self(address)","af55bba0":"removeRegistryFromTagsIndex(address)","af5610dd":"isThisPreforkVersion()","af567633":"minPresaleWei()","af574319":"UpgradeProposal(address)","af577c4c":"unlockReserve()","af57d236":"STAGE_2_TIME()","af580d2c":"getPurchaseById(string)","af58574a":"getTierPosition(address)","af589421":"callerAdded(address)","af589572":"getAssetIdTripStartTime(uint256)","af58eda8":"findSeedAuthorized(address)","af598bc7":"winnerOf(uint256,uint256)","af599a8d":"_depositTokens(address,uint256,address)","af59c789":"setVendingAmount(uint256,uint256)","af5a3db8":"finaliseVoting(uint256)","af5a7625":"getFundInfo(bytes32,string,address)","af5b065a":"getMinimumPurchase()","af5b0ece":"getAmountContributed(address)","af5ba32a":"_fund(uint256,address)","af5c1020":"InfinityDataChain()","af5c295a":"checkMaxAllowed(address)","af5c4540":"getVoteTokens()","af5c6f38":"synthesize(uint16[5],uint256)","af5cfae8":"remainingInvestment()","af5d4013":"toteLiquidatorTranserComplete()","af5ee700":"buyTokenPerEther()","af604173":"ico_startTime()","af608fad":"isTimelockAllowed(address,address)","af60b50f":"CGCoinsToken()","af60dc4f":"SCMOXToken()","af6128c2":"calcTotal(uint256)","af62a708":"getCrystalKindWeight(uint256)","af62cfd2":"endBetBlue()","af63066e":"userRound(address)","af6337fd":"pausecontract()","af6375cd":"setNewStartTime(uint256)","af63da13":"getMemberRegistry()","af640d0f":"id()","af6499c5":"ActiveDigger()","af653861":"applyAndLockSettings()","af664f3a":"Bitkat()","af6682ab":"query(uint256,uint256)","af66c560":"convertData(bytes)","af66eb1f":"LogWithdraw(address)","af67cdc4":"HBToken()","af685482":"BonusChanged(uint8,uint8)","af68dd3f":"getBaseInfo(uint256)","af692e00":"getPullRequestById(bytes32)","af6972c0":"submitDeliveryCommitment(address[2],uint32,uint64[3],bytes32[],bytes32,uint256[2],uint256,bytes32,bytes32,uint8)","af6a2c5c":"JTCCtoken(uint256,string,string)","af6afce5":"min(int256[])","af6b08a1":"Sale(address,address,uint256,string,uint8,string,uint256,uint256,uint256)","af6b3615":"getInitialReportStakeSize()","af6b3d43":"roundSwitch()","af6bb824":"_cancelSale(uint256,address)","af6bd8ce":"durations(address)","af6c0f60":"bntToken()","af6c3021":"MaxReleasedBac()","af6c7f77":"crowdSaleStartTime()","af6cd244":"acceptAnswerAndFinalize(uint256,uint256)","af6d0437":"AtomicSwapRegistryConstructed()","af6ddad8":"shift_left(uint256,uint256)","af6df563":"withBonus(uint256,uint256)","af6e66e6":"Lockup36m(address)","af6f37a2":"getBasicTokenAmount(uint256)","af6f964d":"minReached()","af6fae22":"roomAvailable(string,uint256[],uint256)","af6fce9a":"RoyaltyInformationContractSet(address,address,bool)","af6fe8e2":"testGetToken()","af713566":"batch()","af713dda":"SUPPLY_FOR_PARTNERSHIPS()","af722ea7":"connectors(address,address)","af7296ec":"remainingBankroll()","af737da7":"_setClientLastPaidRate(address,uint8)","af738bbf":"setDepositoryDelegate(address)","af7520b9":"startingPriceOf(uint256)","af75ad2d":"createDispute(address)","af7665ce":"ethPriceFeed()","af769b54":"transferAcceptable(address)","af769eff":"Paper()","af76c4d2":"mined_blocks()","af76ccd7":"finishedPromotionIDs(uint256)","af77040e":"bonusIncreasePercentage()","af77649d":"paySmartContract(bytes32,uint256)","af77c473":"p_setGamePaused(bool)","af77ebee":"transfersOnOff(uint8)","af77f8bd":"setVIPBonus(uint256)","af7885b5":"listSubName(bytes32,uint256,uint256)","af78facf":"valueBonuses(uint256)","af7912a1":"bonusTake()","af791df2":"recoveryDone()","af794a4f":"tulips(uint256)","af79b437":"MintingDisabled()","af79ffde":"userInitialized()","af7a0899":"firstStageWallet()","af7a1762":"getBetfundingAddress()","af7a6164":"setMaxMessagesGlobal(int32)","af7b2eb7":"listAddresses(address[],uint256[])","af7bcf5e":"LigoToken(uint256,string,string)","af7bfd6c":"setValueAny(uint256)","af7c8f96":"changetokenBurnAddres(address)","af7d0eff":"setSellPrices(uint256)","af7d1890":"adminAddICO(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","af7d4b21":"RXPSale()","af7d5ebe":"change_p4(uint256)","af7d697e":"EnableTransfer()","af7d6ca3":"spend(address,uint256)","af7e8577":"TCCCoin()","af7ed9d7":"maxGasPriceInWei()","af7fdd76":"setModified()","af80562c":"testReceiveHash()","af819c67":"TTCSale(address,uint256,uint256,uint256,uint256,uint256,uint256,address,address)","af81bd03":"_voteAndCheck(uint256)","af81c5b9":"addToken(address,uint256)","af8214ef":"LIMIT()","af82403c":"getNextNode(bytes32)","af8255ab":"updateProgress(uint256,uint256)","af825c78":"Hjjm()","af83782e":"setMinimumWishTribute(uint256)","af837832":"isPromo(address,address)","af83f252":"historyRed(uint256)","af8472b1":"consecutiveDeaths()","af84fb00":"withdrawAmount(uint256,uint16)","af8532e3":"roundDeadline()","af854db1":"allowedTransferDuringICO(uint256)","af857a84":"batchTrade(address[13][],uint256[15][],uint8[2][],bytes32[2][],bytes32[2][])","af862b6a":"ETH_withdraw(uint256)","af874a76":"isValid(address,address)","af87c366":"walletUnlock(address)","af87c833":"initiateProvider(uint256,bytes32)","af8927c1":"GetRealCost(address,uint32)","af8979fd":"confirmDeath()","af8996f1":"setPublicationFee(uint256)","af899735":"playGame()","af8a849c":"AllocationGranted(address,address,uint256,bool)","af8af39f":"setRate555()","af8b0ec7":"rewardRoto(address,uint256)","af8b7525":"CollectAndReduceFees(uint256)","af8b912d":"setVotingMachine(address)","af8c1946":"refundAllEther()","af8d5a48":"icoEndTimestampStage()","af8d7611":"setPointIdentifier(string,int256)","af8d98c9":"gameEndPlayNo()","af8d9f37":"addressContainsContract(address)","af8ec44c":"offerGanTokenForSaleToAddress(uint256,address,uint256)","af8f35c4":"_fallback()","af8f7fdf":"ProductUpdated(address,address,address,string,bool)","af8ff2f8":"runPreMint(address,uint256)","af906cf3":"setToken(uint256,address)","af91b947":"UnsuccessfulAttempt(address)","af91c5fd":"getVotersChoice()","af91e0bf":"freezeOracle()","af92080b":"downTick(address)","af92a693":"addRegistrar(address)","af933b57":"withdrawEther(address)","af93a6d1":"CatNamed(bytes5,bytes32)","af93aebb":"adjustPhaseBasedOnTime()","af93afdd":"Shipment(bytes,bytes,bytes,bytes,string,bytes,uint256,uint256,bytes,bytes,uint256,uint256,string,bytes,bytes,bytes)","af93e308":"HookToken(address,address,uint256)","af941129":"testMintGuyAuth()","af944fc7":"getQueueLenght()","af949df9":"isValidUser()","af9658cd":"custodianVerify(address)","af988341":"sendLink(string,string,string)","af9890aa":"GUS()","af98cfd6":"exchangeByBuyer(uint256,uint256)","af98f757":"cancelRequest(address)","af99a327":"finalizePartnerSale()","af9a3f9b":"hashName(string)","af9a51c6":"getComponents(uint16,uint8,uint256)","af9a91d9":"setDrawerFee(uint256)","af9afe73":"unmintTokens(address,uint256)","af9b192e":"RESERVE_AMOUNT()","af9b1cef":"transfer_funds_to_project()","af9b6bd2":"bidEMONTMin()","af9bbcc4":"unbanAccounts(address[])","af9c5e7a":"getWhitePlayer(bytes32)","af9cb8c0":"StartOfPayments(address,uint256)","af9cb9f6":"setRequiredStake(uint256)","af9dfd1a":"FoodTokenEmissionEvent(address,address,uint256,bool,uint256)","af9ee81d":"_unstake(address)","af9efd4c":"_api_PlaceBet()","af9f3e20":"BTCVERVIER()","af9f788c":"TankWithdrawSome(uint256)","af9fc8a8":"UHC()","afa01c90":"CollectibleIndex4()","afa03ac9":"doFailingTransfer()","afa0f8c9":"getUintCoinProduction(address,address,uint256)","afa12a8a":"roundEnds()","afa17725":"WillyCoin()","afa1d6c9":"mainSaleTokenRaised()","afa202ac":"setRolesContract(address)","afa25098":"returnCoins(uint256)","afa293d4":"getSource()","afa31744":"saleTokensAddress()","afa33fb8":"chkLockedB(address,uint256)","afa3a5d1":"SetdivForTransfer(uint256)","afa3de9b":"revokeUserLicense(address,string)","afa40bbd":"UNIT_PRICE()","afa4179d":"_getInvestorLockedAmount(address,address)","afa437c0":"callBackForRequestRandom(bytes32)","afa560b0":"transferToICAPCallGas()","afa5e0a9":"getCountry(uint256)","afa5e56a":"decExchangeBalanceOf(address,uint256)","afa5f45c":"changeDecimals(uint256)","afa60035":"doesAssetTokenExist(address)","afa60487":"getDocAsBytes64(uint256)","afa6c735":"PRICE_PRESALE()","afa72b9f":"CinderToken()","afa7a25f":"updateArtistsAccount(uint256,address)","afa902a0":"isAutoFowarding()","afa936b8":"deleteCertificate()","afa99860":"getTokenPrice(address,address)","afa9a86e":"tokensInPlay()","afa9f179":"toReal(int64)","afaaa654":"setEndIcoPreICO(uint256)","afaaf9f9":"DepositBroker()","afab2b0f":"inventoriesOfDate(uint256,uint256,uint256[])","afab729d":"EntrepreneurShop()","afabe8b4":"CALLToken(uint256,string,string)","afac8ed3":"rand(uint16,uint16)","aface2f1":"mintTokensFor(address,uint256,uint256)","afaebf3e":"setDispatcherAddress(address)","afaf6b2e":"AuditSafeGuard(bytes20)","afaf97e7":"privateSaleToken()","afb058ce":"teamTwoPrefix()","afb0db5f":"random3()","afb18fe7":"paymentTokenAddress()","afb2032b":"LuckChain()","afb390aa":"getIsSecondPhaseEndedByTime()","afb3a8e9":"accept2(uint256)","afb3ae7a":"SPECIALIST_ONE()","afb47bb3":"approveModeratorship()","afb4d2ee":"getM()","afb58d18":"setPriceOneToken(uint256,uint256)","afb688a2":"mineth()","afb6b9a5":"m_hardCap()","afb7e495":"eruptionThreshold()","afb95eed":"logApproval(address,address,bytes32)","afb97c20":"tokenTransferDelegate()","afbae469":"mediumSize()","afbb9d44":"ico1Bonus()","afbc4ebc":"OWNER_CUT()","afbcd19b":"CROWD_WAVE3_BONUS()","afbcd904":"setDataColla_001_001(string,string)","afbd3b7f":"minLot()","afbd8092":"CATRefundedForWei(address,uint256)","afbdaa05":"isInBlockFilter(address)","afbddfa9":"toggleFreezeTokensFlag()","afbde5c9":"getNumTopics()","afbea641":"SECToken()","afbec8df":"TheGrid()","afbfdd93":"Notonegoro()","afc01cb9":"getFinishTime()","afc0b5d3":"Crypto010()","afc0bf27":"registerName(string,address,bool)","afc0bf43":"setRecoveryInfo(bytes32,uint256)","afc0e324":"stringToBytes12(string)","afc17f80":"addLockedTokens(address,uint8,uint256,uint256)","afc24bfb":"getRules(uint8)","afc24e3d":"getChallengeAnswer(uint256)","afc2cc46":"SGEICO()","afc2f503":"allowEmployeeMigration(address,address)","afc361bc":"tokenFrozen()","afc3a2ad":"current_tier_sold_tokens()","afc3b688":"perc(uint256,uint256)","afc3c31f":"initDepositAccount()","afc48052":"mintBounty()","afc4a982":"PathCost(uint16,uint32)","afc6740e":"PricePerCafe()","afc6fe2e":"MaybePerformWithdraw()","afc75b1d":"SwissTrustToken()","afc797a6":"lastStealValue()","afc7c400":"ProICOPrice()","afc81953":"createGame(bytes32,uint256,uint256,bytes32,bytes)","afc83802":"setTotalWeiToBeDistributed(uint256)","afc88141":"WhitelistAddressdisable(address)","afc8fbc6":"MerkleAirDropToken(string,string,uint8,bytes32,uint256)","afca35e5":"QuadToken()","afcac546":"getByteSize(bytes32)","afcb0d3a":"place(int8)","afcc05c0":"buyRedirectFor(address)","afcc1286":"dtEnd()","afcc8676":"SMPLTSTToken()","afcced41":"CROWDSALE_GASPRICE_IN_WEI_MAX()","afcd565c":"createTile(uint16,uint8,uint8,uint8,uint32,uint16,uint64,uint64,address,uint8)","afcd6561":"getIdentifierFromSectionIndex(uint256)","afce2d62":"PoC()","afcee461":"DungeonRunAlpha()","afcf2fc4":"charityAddress()","afcfad6e":"getJobPayments(bytes32)","afd07e80":"getMiningWarRoundOfPlayer(address)","afd09bab":"quadrupler()","afd0a85a":"ListingCancelled(uint256,uint256)","afd0fd1d":"getDecimals(string)","afd20e33":"LOCKAMOUNT()","afd237bd":"getTxn(uint256)","afd23d4a":"STAGE_1_FINISH()","afd2d5f6":"OpinionToken()","afd3f79a":"_isCorrectQuarterBuyin(uint256)","afd42fd3":"addCloud(uint16,uint16,uint16,uint8,uint8)","afd51a6e":"updateLimit()","afd61d2c":"getBonusEgg(uint64)","afd6b607":"createRequestAsPayee(address[],address[],int256[],address,address,string)","afd7b21e":"companyCapital()","afd7b9ed":"angelStartTime()","afd7bf92":"noContract()","afd7d464":"FaradTokenSwap()","afd82067":"getScore()","afd8515e":"setTotumPhases(address)","afd8c8c4":"GasProxy(address,address)","afd8fd5f":"createToken(string,string,address)","afd925df":"setPermissionManager(address,address,bytes32)","afd9897e":"restTokens()","afda2dac":"jackPotC()","afda5460":"YDTToken()","afdac68d":"query(uint256)","afdb0970":"sendToBuyer()","afdbd499":"reclaimERC20(address,uint256)","afdc3823":"updateTlcTlr(uint256,uint8,uint8)","afdcd8ec":"RAZEN()","afdd4d23":"airDropValues(address,address,address[],uint256[])","afde86c1":"getHash2(address,bytes32)","afdebfe7":"setWeiRaised(uint256)","afdfaee7":"_preValidatePurchase(address,uint256,address)","afdfb804":"getVendors(uint256,uint256,bool)","afe007b6":"_transferAction(uint32,address,uint8)","afe0e33c":"reputationRewardLeft()","afe12e77":"withdrawWrongNode(bytes32,address)","afe14c19":"clean(address,address)","afe17129":"tokensStillInLockup()","afe18413":"placeOrder(address,uint256,address,uint256)","afe1d4cf":"setTechBonus3(uint256,string)","afe2ce0e":"setSaleAddr(address,bool)","afe38ade":"payoutWinners(uint256,address[],uint256[])","afe4720c":"toggleFeatured(uint256,string)","afe69bb0":"Create(bytes32,bytes32,address,address,address,uint64)","afe70413":"getCommissionForType(string)","afe80b8d":"newCmas(uint256,string)","afe8abbf":"transferPresaleCoins(address,uint256)","afe8b652":"countriesCount()","afe948ce":"OKEToken()","afe98be1":"calculateId(uint256,uint256,uint32,uint256)","afe9c776":"XITC()","afec91c4":"icoInstalled()","afed762b":"toSlice(string)","afef07da":"ico2receivedTotal()","afef0e28":"MARKETING_supply()","aff038e6":"sellForOtherCoins(address,uint256)","aff06fbd":"playerCancelActiveGame(uint256)","aff16621":"toSig(bytes)","aff177ca":"updateWhitelist(address[],bool)","aff1e0de":"crowdsaleTotal()","aff1f15f":"rate3()","aff21b00":"imOut()","aff21c65":"getMinimumEndowment(uint256)","aff23300":"UserWallet(address)","aff3a08e":"CreateFAP(address,uint256)","aff46572":"getMarketplaceContract()","aff4b849":"getMemberName(address)","aff4cbea":"SHIP_SLOTS()","aff57736":"getNumbersFromString(string,string,uint32)","aff5dff2":"getCreditsFor(string)","aff5edb1":"deregister()","aff6b3e8":"setupRace(uint256,uint256)","aff74c6d":"getTotalPeriods()","aff7bd49":"trackSell(address,uint256,uint256)","aff7fae4":"GodzSwapGodzEther(address,address,address)","aff8c7ab":"IkuraAuthority()","aff9b3cc":"getCarName(uint256)","aff9e954":"topOptions(uint256,uint256)","aff9f40d":"SaddleForSale(uint256,uint256)","affb62dd":"dAdd(bytes32,address)","affb672b":"realimmocoin(address)","affbe8ab":"ACNCToken()","affbf593":"withdrawExcess(address)","affc0670":"openVoting()","affca932":"changeFeeRate(uint256)","affcba25":"createNewMintableUser(address)","affcce10":"_unpackRaceData(uint256)","affd0dd4":"Funding_Setting_funding_time_start()","affe39c1":"owners()","affed0e0":"nonce()","affee29b":"submitEthToTokenOrderWHint(uint128,uint128,uint32,int256)","afff33f4":"GameEvent(uint256,address,uint8)","afff5064":"setBonusesForAmounts(uint256[],uint32[])","afff9720":"addrBounty()","b0005ff1":"validPresaleTrading()","b000c81b":"InitBetContract(address,address,uint256)","b000dec2":"total_token_sold()","b001134a":"balanceInTier()","b0011509":"calcMarketFee(uint256)","b00124c4":"epocum()","b00140aa":"getHash(bytes)","b0018bfc":"changeTokenName(string)","b0036d32":"mintByGateway(uint32,uint64,address,string)","b003dd86":"encode(uint256[])","b004079e":"lol(bytes32)","b0043308":"setaddAddressListItemSet(bool)","b00606a5":"confirm(bytes32,uint8,bytes32,bytes32)","b0062595":"KcashToken()","b006b86e":"_addEthereumAddress(uint256,address)","b006de0d":"initialBalanceForCrowdsale()","b006e2b0":"txhash(string)","b0070a30":"changeBeneficiary(uint256,address)","b00791fa":"proxy_contribution(address)","b0091773":"orderExecutionBlockTime(bytes32)","b009c50d":"DevxToken()","b00a0dbf":"allowanceTransfer(address,address)","b00a81fb":"buy(uint256,uint256,string,string,string,string,string)","b00b1239":"approveAndDeposit(address,uint256)","b00baa11":"DaicovoStandardToken(string,string,uint8)","b00bad50":"identifierToBuyoutPrice(uint256)","b00cdd9b":"preICOgoal()","b00d4c75":"singleLineWrong()","b00d70ca":"sollReserve()","b00dba63":"setTokenData(uint256,bytes32)","b00e8668":"can_refund()","b00eb9fe":"feeCalculator()","b00f9702":"setTeamPerfitAddr(address)","b010d80e":"ensureTokensAvailable(uint256)","b010d94a":"canExitPool(address)","b0112ef2":"changeReserveCATDestinationAddress(address)","b0119a22":"genOrder()","b011fcf1":"doWithdraw()","b0128c08":"getCeiling()","b013b369":"_errorBuyingTokens(string)","b013f637":"getNicknameByAddress(address)","b013fa91":"JadeCoinMining(address,uint256)","b01454dd":"vrc()","b015b81a":"amountToTakeAsRake(uint256)","b015c2ce":"FLOWToken()","b0166b04":"testTransferringMkr()","b016f9f2":"ThirdAddressBalance()","b0171fa4":"getCurrentGenerationId()","b0175308":"PriceDecimals()","b017c036":"rlc()","b017d808":"assertEq32(bytes32,bytes32,bytes32)","b01800f8":"createNewUser(bytes32,bytes,bytes32,bytes32,address)","b0181b3c":"setMyIdentity(bytes32,string,string)","b018d65a":"maxAffiliate()","b0192f9a":"auctionManager()","b019ffd2":"thirdDiscountCap()","b01a71d8":"setProvider1(address)","b01ab46d":"validPurchase(address)","b01afdab":"changeBaseValue(uint256,uint256,uint256,uint256,uint256,uint256)","b01b0304":"ExchangeRateChanged(uint256,uint256)","b01b299f":"setTokenPriceProposal(uint256,uint256,uint256)","b01b3b6c":"_createSale(uint256,uint256,uint256,uint64,address)","b01b8877":"setFundingFueled()","b01c60b7":"getPrices(uint256,uint256)","b01d3d9e":"ENTToken()","b01d54ed":"PolyAi(uint256,string,uint8,string)","b01d5b63":"purchaseFor(address,uint16,address)","b01d7a11":"sendTokensToFive(address,address,address,address,address,uint256)","b01e8308":"JointToken()","b01ead43":"returnToOwners()","b01eba14":"MIN_TOTAL_AMOUNT_GET_ETH()","b01f1571":"unitsPerEth()","b01f31c9":"hardcapInTokens()","b0203f3f":"totalAmountsBetStage2(uint256)","b020b188":"developmentToken()","b020d7a3":"_reinvest(bytes32,uint256)","b021cace":"RubyCoin()","b0228f8c":"icoEtherReceivedMainSale()","b02447e0":"bonusChangeTime()","b024abad":"GoTokenDutchAuction(address,address,address,address,address,address,uint256,uint256,uint256,uint256,uint256)","b024b2e3":"GridyToken()","b0251e6d":"setUserLocked(address,bool)","b0259633":"SHIPToken()","b025abf1":"step0Rate()","b025cc45":"deadlines(uint256)","b0267126":"advisorySupplyRemaining()","b0271023":"verifyFile(string)","b0273de1":"addVpf(bytes32,uint256,uint256,uint256,uint256,uint256[])","b028c059":"createMatch(uint256,string,string,int32,int256,uint64,uint64)","b028d73a":"isCrowdsaleAllowed()","b028ee13":"s2b(string)","b0293850":"claimBuyerFunds(address,address,address,uint256)","b029c2c8":"approve_unwanted_tokens(address,address,uint256)","b029d940":"setPlatinumAddress(address)","b02a2fd1":"withdrawLemonCoins()","b02a73a1":"sendTo(address,uint256,bytes)","b02af038":"bonusesSold()","b02b69d6":"addBonus(uint256,uint256)","b02bf4b9":"earn(address,uint256)","b02c43d0":"deposits(uint256)","b02c8054":"withdrawICO(uint256)","b02da8d8":"diamondBonus(uint256)","b02dbd07":"teamAllowance()","b02e8496":"processSellRequest(string,address,uint256,uint256,bool)","b02ef382":"SALE1_END()","b02f1edc":"TokenERC20(string,string)","b02f53ae":"testConcatStorage31Bytes()","b03031b7":"_askQuestion(bytes32,bytes32,address,uint32,uint32)","b0304813":"currentMilestone()","b03053b6":"createListing(uint256,uint256,uint256)","b0321d45":"ZJMToken(address,address)","b03260be":"scheduleTransaction(uint256,address,bytes)","b032fff4":"weiMaximumAmount()","b0335ffc":"setStage(uint256,uint256,uint256,uint256,uint256)","b033777f":"endCurrentGame()","b033a02b":"payDivsValue(uint256,string)","b033a6c3":"lookup(address,uint256)","b033cab9":"voterStakes()","b0340123":"votingToken()","b0347c56":"estimatePots()","b0349184":"clearRecords(bytes32[])","b034998b":"ChooseBwea()","b034d5aa":"Total_Deposits()","b034f3cf":"myLatestBid()","b0355b45":"LuHuToken(string,address)","b03645b5":"max_users()","b036ab65":"LemoSale(uint256,uint256,uint256)","b037e4f5":"MCoin()","b0388344":"readTaskCreatedOn(string)","b03903fd":"usernames()","b03941bc":"dropable()","b0397857":"secondaryListing()","b03b3a0a":"setPOOL_edit_13(string)","b03c4b33":"setLock(address,bool)","b03c6729":"inmax()","b03cf9bd":"MerkleAirdrop(address,bytes32)","b03d169c":"mineCount()","b03d5ce8":"PVCToken(address)","b03f75a5":"giveupBid(bytes32)","b04010c6":"fuse()","b0402d36":"LiveAuctionEvent(address,uint256,uint256,uint256,uint256)","b0407315":"purchaseWarehouseSpace(address,uint256,uint256)","b0408721":"buyVouchers(uint256)","b040d545":"tokenToTokenSwapOutput(uint256,uint256,uint256,uint256,address)","b0414a2d":"setMinimumGasLimit(uint256)","b0417e98":"checkVote()","b0419107":"_getNthNibbleOfBytes(uint256,bytes)","b0423141":"StringStorage(string)","b04247e9":"DentacoinAddress()","b04287b3":"sharesOfVault(uint256,address)","b0433fe9":"_supportsERC165(address)","b0445a77":"PRIME_VESTING_DATE()","b04464cd":"ChangeImage(string,uint256)","b0448884":"updatePrice(bytes10,uint32,uint64,uint32)","b04510d5":"xultoken()","b0459d49":"LoanStandard(address,address,uint256,uint256,uint256,uint256,uint256)","b0467deb":"getUser(uint256)","b0471d43":"primary_wallet()","b047dd06":"tokensale(address,uint256,uint256)","b047f245":"listForSale(uint16,uint256)","b047fb50":"cooAddress()","b048357d":"lastBlock_a15()","b0483c3f":"reload(uint256,uint256)","b048546f":"Divide(uint256,uint256)","b0485706":"read_u32_array()","b049474d":"disableSuicide()","b049d176":"cancelSellToBlackMarket(uint256,uint256,bool)","b04a1680":"GetConsentDirective(uint256)","b04a3f1c":"EndLottery()","b04b3f57":"isCustodian(address,address)","b04ca7f0":"dateAdmin()","b04d6638":"mangeFundAmount()","b04e74f2":"Gerritcoin()","b04e7668":"createCastleWithToken(address,uint32,string,uint64,uint64,uint64,uint64,uint64,uint64)","b04eb639":"subCrystal(address,uint256)","b04fc4e1":"superContract()","b05005a2":"lock(uint128,string,address,bytes16,uint32)","b050b49c":"rewardFoundersAndPartners()","b050f83a":"proportion(uint256,uint256,uint256)","b051d722":"loadRandom(uint256)","b052852f":"approveAllocation(address)","b0532349":"_destroyContract()","b054058a":"nSign(uint256)","b0544308":"newLockTimestamp(uint256)","b0545532":"numGamesCompleted()","b0547d8c":"deleteShopMods(address)","b0557bf1":"updateParams(uint256,uint256,uint256,uint256)","b055a62a":"INCRYPTHEDGE(uint256,string,string)","b055d1bc":"amountProportion()","b055fdf2":"isTarget()","b05609ce":"pricegreengrey()","b0560eba":"GuardaProva(address)","b056561a":"DATE_31_DEC_2022()","b056bb81":"RedSoxYankees410()","b0573de6":"getDefaultPartitions(address)","b0575069":"ap(address)","b05784b8":"retreive()","b0578878":"translate(address)","b05940f2":"getOpenAuctions()","b059c177":"_0_name(uint256)","b05a0071":"DET()","b05a47d9":"VocToken()","b05d8096":"setStr(string,uint256)","b05e390a":"TokenEther(string,string)","b05eb08d":"_isLeapYear(uint256)","b05fa837":"patronageContractForUsername(string)","b05fceba":"mDepositWallet()","b05fef55":"Issuer(address,address)","b0603326":"auctionStatus(bytes32)","b0604a26":"schedule()","b0604a9c":"testCantBuyTokensInStoppedSale()","b060b785":"getWithdrawableOperationFeeDatesAndAmount()","b060de3a":"withdrawAllOptions(address[])","b0619e85":"hasPermission(address,bytes32)","b0623074":"frozenTime(address)","b063152a":"generateHash(string)","b064bb56":"_ltoa(bool)","b064ca18":"userForceGameEnd(uint256)","b06576f3":"contrBonus(uint256[])","b0660c3d":"transfersAllowed()","b0667cf8":"queryPrice()","b066d3b7":"removeReputation(address,uint256)","b066dca9":"MERZhToken()","b066ef3c":"cooldown(uint32)","b0670cc9":"get_size()","b0671381":"isValidWalletSignature(bytes32,address,bytes)","b0673d57":"getItemStore(bytes32)","b0686584":"incNT()","b068776b":"SaleFinished(uint256)","b068b5b8":"getRank01()","b06939a2":"notEqual(address[],address[],string)","b0698763":"subdomainOwner(string,string)","b069dbf1":"sendFromContract(address,address[],uint256)","b06bcb40":"getAddressInfo(address,address)","b06c76d0":"totalMinedSupply()","b06df18e":"transfer(bytes20,address)","b06df2ae":"GetMyOrders()","b06e1e02":"changeTeamWallet(address)","b06e64ca":"maxTokensWithBonus()","b06eb03f":"DSEasyMultisig(uint256,uint256,uint256)","b06ee044":"totalBasicIncome(address)","b06eedf5":"getReferralBonusAmount(uint256)","b06f4d00":"AICoin(uint256)","b06f8d34":"redeemWallet()","b06fd1e3":"CRAWDSALE_START_DAY()","b06fe82e":"changeEtherRatioForOwner(uint256)","b07048d9":"remove_user(address)","b0705e44":"getMySword()","b070bbd4":"doCalculateRoom(uint256,uint256,uint256,bytes32,uint256)","b070bdc6":"all_obstacles()","b071cbe6":"hardcap()","b071fa2a":"SENC_HARD_CAP()","b0720613":"fundingMinInWei()","b072bd10":"usedSummReserve()","b0732278":"finishICO(address,address,address)","b073e2b7":"testMath()","b073f52b":"updateBalance(bytes32,uint8,int256)","b0756562":"addLottery(string,uint32,uint32,uint32)","b07576ac":"delMin()","b0759c3e":"lockInBatches(address[])","b0773d12":"payAndRemoveInvestor(uint16,uint256)","b07741fd":"refresherFee()","b077c09b":"readSample(bytes)","b0780bd8":"getDonationStats()","b0786de9":"NeptunSupply()","b078ffe8":"BitcoinUnicorn()","b0792570":"beneficiaryStake()","b0799375":"nameValue()","b079cf62":"getRandomDragon(uint256)","b07a3107":"isOraclizeQueued()","b07a6735":"processPrivateFunding(address)","b07bbefd":"updateValueAndMint(uint256,uint256,int256)","b07be1fe":"createThemedSpinner(string,uint256,address,uint256)","b07be207":"calculateTicketPrice()","b07c76e8":"LoggedDividend(uint256,string,uint8,string,bool,bool)","b07e4e34":"_unpackCycleValue(uint256)","b07ed982":"setMaxTokenSupply(uint256)","b07ee0d2":"erc20TokenTransfer(address,address)","b07f0a41":"exercise(uint256)","b07f1fa2":"init(address,uint256,uint256,uint256,uint256,uint256,uint256,bool,address)","b07f3025":"CROWDSALE_ETH_IN_WEI_FUND_MAX()","b081b9aa":"propose_beneficiary(address)","b081cfc5":"_thresholdOne()","b0827f42":"restrictedTokensDate()","b082b9c7":"getOrganisationCount()","b0837524":"minIcoTokenLimit()","b08428c1":"internalCalc(uint256)","b08480d4":"finishSettlement()","b08496dd":"_newSpaceshipProduct(uint16,bytes2,bytes2,bytes2,bytes2,uint256)","b08510a3":"setdissolvedcontract(address)","b0859b6f":"oraclize_setGasPrice(uint256)","b085a5af":"getMyWine()","b085b9a5":"Example()","b08639e3":"getRepAvailableForExtraBondPayouts()","b0867a5c":"joinGameRandom(uint8)","b086d5aa":"getUriSetCount()","b087b8bc":"getWorkflowCount()","b0882c4b":"newETHUSDPrice(string)","b0883120":"balanceOfBuyer()","b0885dd6":"distributeWithTransferFrom(address,address,address[],uint256[])","b0891f4f":"setTokenAgent()","b0894aa6":"getDateOfAcceptance()","b0898886":"claim_devidend_for(uint256)","b08a3619":"registerDepositAddress()","b08af3dd":"get_participant_num_of_uses(address)","b08b3410":"getStraightReleasableAmount(address)","b08ba6a1":"view22()","b08bbff0":"isUserAllowed(address,string)","b08c2915":"JP_winningHash()","b08c7730":"feeGame()","b08c9bd1":"refuseSale()","b08cfb84":"addWhitelistedAddress(address,address)","b08d2718":"ReleaseableToken(uint256,address)","b08db494":"toAddress(bytes,address)","b08e0d3e":"applyRefund(uint256,bool)","b08e0f4a":"manualWithdrawal(uint256)","b08f8e1d":"setContractHoldBalance(uint256)","b08f965e":"SSA()","b090c768":"LogSelectWinner(uint256,uint256,address,uint256,uint256,uint256)","b09173f6":"viewAffBonus(address)","b091a044":"transferRecord(address,address,uint256)","b092145e":"whitelist(address,address)","b0927de7":"newRepo(string,address)","b0933f25":"fixAdvance(uint256,uint64)","b0934d7d":"removeFromBlackList(address,address)","b0949833":"NineStandardToken(uint256,string,uint8,string)","b0950b8c":"canCloseVoteCommitPhase(address,bytes32,bytes32)","b09609d5":"LogMinting(address,uint256,uint256)","b097bdbd":"PRESALE_STARTTIMESTAMP()","b097c984":"setIEOAddress(uint256,address)","b098b86b":"ownsOrSelling(uint256)","b098bdba":"getAppeals(uint256)","b09938b8":"VormaToken()","b0994d4a":"authorizeOperator(address,bool)","b099cceb":"makeBet(bool)","b09ac6f2":"isUserProduct(bytes32,bytes32)","b09ad8a0":"upperBound()","b09afec1":"getTokenData(uint256)","b09b1a51":"buyUnicorn(uint256)","b09bc3bf":"try_to_get()","b09c0f30":"rewardWeekly(uint32,uint32)","b09c235e":"MargamCoin()","b09db392":"addressDevelopers()","b09df36a":"getFunctionSignatures()","b09f1266":"_symbol()","b09f168e":"tokenOfOwnerByRange(address,uint256,uint256)","b09f4af5":"executeLock(bytes16,address)","b0a0662a":"FIRSTSALE_BASE_PRICE_IN_WEI()","b0a08873":"adjustLoanParams(uint256,uint256,uint256)","b0a1bfa9":"updateFeeBalance(uint256)","b0a1c666":"newComment(bytes32,string)","b0a1e2b4":"disputeID()","b0a2365c":"percentTokensToSale()","b0a254a7":"addStackholder(address)","b0a267da":"userTipped(address,bytes32,uint256)","b0a54a76":"TN()","b0a5a57a":"createEmergencyFundReleaseProposal()","b0a5c979":"CheckAmbientHumdtyException(bytes32,uint32)","b0a66a84":"creator(bytes)","b0a6a5ab":"IoTonToken(uint256,string,string)","b0a6d947":"unfreeze(address[])","b0a77ef7":"WithdrawToSponsor(address,uint256)","b0a8489e":"btycBalanceOf(address)","b0a84974":"payedBalancesOf(address,uint256)","b0a8be37":"RegCost()","b0a91659":"FixProfit()","b0a94ef7":"Divest(uint256)","b0a9b0ff":"createTeam(string,string,uint256,uint256,address,uint256)","b0a9c7f4":"checkGameResult(address)","b0aa09f2":"mainSaleStartTime()","b0aab296":"getNextNode(bytes)","b0aae3fa":"passGateway()","b0abbc7b":"setData_23(string)","b0ac0ef2":"currentActiveGameID()","b0ac4c8c":"getLastData()","b0acc531":"reserveWave()","b0acd745":"EventCreateStatic(address,uint128,uint256,uint256)","b0acde14":"withdrawInternal(address,uint256,address[],uint256[])","b0ad38c4":"buildCity(string,uint256[2],uint256[2])","b0ad3a5f":"not(bool)","b0ae1d64":"getpurchaserAtIndex(uint256)","b0aed621":"addJugada(uint256,string,uint256,uint256)","b0af768b":"setTokenBurner(address)","b0b02c60":"setUpdateOperator(uint256,address)","b0b185c7":"allowedForwards(uint32)","b0b189ca":"sendToInvestor(address,uint256)","b0b24e2c":"ERC()","b0b2b499":"test_token_fall_back()","b0b315e7":"calculateMaxContributionUsd()","b0b3c9a6":"ETHERAFFLE()","b0b503f9":"MonyaToken()","b0b53a1f":"WSKYToken()","b0b60b06":"ZXGToken()","b0b773c4":"ESSgenesis()","b0b8579b":"hop()","b0b92263":"setTotalTokens(uint256)","b0b9603b":"saleTokens()","b0b99c7d":"createPotato(uint256,uint256,uint256,uint256,address)","b0ba621a":"SoapBox()","b0bb3759":"XPAAssets(uint256)","b0bc4d67":"preserveHolders(address,address,uint256)","b0bcc610":"scheduleTransaction(address)","b0bcd8f3":"preCrowdsaleOwner()","b0bd5888":"transferredTokens()","b0bdacc6":"setCoinAddress(address)","b0bebdf5":"endICOp1()","b0bed0ba":"selfBalance()","b0bed1e9":"SMSCoin()","b0bf092a":"getSoftCapInWeis()","b0bfe169":"changeAirdropLimit(uint256)","b0c0552f":"AuctionCreated(address,uint256,uint256,uint256,uint256)","b0c13bfb":"addDestroyer(address)","b0c1adac":"setPrice(uint256,bool,uint256)","b0c20e4a":"setRateProvider(address)","b0c2a163":"currentDifficultyWei()","b0c2ebfd":"NathalieToken(uint256,string,uint8,string)","b0c2ff43":"tokenAccountAddress()","b0c35c05":"autoBirthFee()","b0c39bbd":"setFreezeIn(address[],bool)","b0c42691":"frozenWallet2y()","b0c4b3bb":"dateEco()","b0c5134e":"forwardEther()","b0c577c1":"phase3TokenPriceInEth()","b0c6d7df":"clearMonsterReturnBalance(uint64)","b0c73bc6":"getInvitor(address)","b0c74430":"saysomething()","b0c7f709":"kingAutomaticCollectFee()","b0c80972":"setBalance(uint256,bool)","b0c8d2dc":"updateMeta(uint256,uint256,string)","b0c8f9dc":"add(string)","b0c95b1d":"SetAccess(address,uint256)","b0c9fec7":"ButtonClicked(address)","b0ca2e62":"VEC()","b0cae18a":"WDNA()","b0cb3299":"checkIfOnUncle(uint256,uint256)","b0cbaab2":"exp(int128)","b0cbc8b9":"callContractFunctionByAddress(address,string,address,address,uint256,uint256,bool,bool,string,string,bytes32,bytes32)","b0cbe292":"_extendBadges(uint256,address,uint256)","b0cc0596":"getUserOptOut(address,address)","b0cc3951":"manualEntry(bytes32,bytes32,uint256,uint256,address)","b0cccbc3":"setFreezeOracle(bool)","b0cccc84":"validResult()","b0ce8668":"IJC()","b0cee590":"TwiceAWeekCoin(uint256,string,uint8,string)","b0cf0dcb":"revokeTokenGrant(address,address,uint256)","b0cf35f5":"getNewFallbackDeposit()","b0d08d3d":"setTxCount(address,uint256)","b0d12477":"listMAS()","b0d138e8":"bounty_percent()","b0d13a25":"retrieveEther(uint256)","b0d1a26c":"advisorTimeLock()","b0d26478":"setIdentity(uint256,address,address,string)","b0d2b936":"_isTxExistWithArgs(bytes32,uint256)","b0d3a396":"ADDITIONAL_BONUS_NUM()","b0d3ef3d":"isOpenFor(address)","b0d4ff96":"getMadeTX(uint256)","b0d54bcf":"setTradingFee(uint256)","b0d56da6":"ElephantToken(uint256,string,string)","b0d60c2e":"rawTransferFrom(address,address,bytes32)","b0d65d29":"partialWithdrawal(uint256)","b0d66291":"migratebyowner(address)","b0d79497":"allowOrRestrictMigrations()","b0d7fd9a":"NewListing(uint256,uint256)","b0d81f94":"lockTokensForFs(address,address)","b0d8a83c":"Osmium()","b0d8b51f":"getOwnedTokenIds()","b0d997d9":"bitGuildContract()","b0d9fef9":"udfVUPDestination()","b0dbce71":"setStreamityContractAddress(address)","b0dc1666":"DacToken()","b0dc63eb":"startWineryProductByRegulator(string,string,string,string,int256)","b0dcbce5":"payWithPLAT(uint256)","b0dd15a6":"paint_pixel(uint256,bytes3,uint256)","b0dd2858":"TokenBuyPresale(address,uint256,uint256,string)","b0dd478a":"setCountdown(uint256[5])","b0ddaddd":"shareBalance(address,uint256)","b0de0c40":"getBalancesList(uint8)","b0de1cb7":"publish(uint64,bytes,uint64)","b0ded9ce":"fechAllCandidates()","b0df5f81":"_computeWings(uint256,uint256,uint256)","b0df9e53":"getCards()","b0e0346e":"UNLB()","b0e09ac0":"test_validShouldThrow()","b0e0ef09":"withdrawTokensFrom(address,address,address,uint256)","b0e12715":"makeTrade(address,address,uint256,uint256,uint256)","b0e16cce":"removedotchtooffer(uint256,uint256)","b0e1aaa5":"getNumPresaleTokensBought(address,address)","b0e1f553":"whiteListingContract()","b0e24364":"CaerusToken(address,uint256)","b0e37f79":"isChecker(address)","b0e4925c":"BCIA()","b0e547e8":"referrerLevel2Percent()","b0e572c8":"getStrategy(bytes15)","b0e5aa89":"bonusStage2SecondDay()","b0e657a7":"firstMintRound0(uint256)","b0e667a9":"bidSpaceship(uint256)","b0e757c5":"GameXChange()","b0e849fe":"auctusWhiteListAddress()","b0e8cba8":"toggleContractAccessForEverybody()","b0e9a1ef":"setHodlerTime(uint256)","b0ea1e2e":"START_TS()","b0ea8d8f":"getRedeemableTokensStaker(bytes32,address)","b0eb5162":"closeGeneralSale()","b0ebb261":"withdrawGift()","b0ebefbc":"distributeFoundersRewards(address[],uint256[],uint256[])","b0ec2bed":"test_8_accessRestriction_UnderscoreAddMember_shouldThrow()","b0ecc878":"calculateEthToAfterschool(uint256)","b0ecca8f":"LookAtLastTimePerZone(uint256)","b0ed439e":"getMaxHolder()","b0ed656c":"claim(bytes32,bytes32,bytes32)","b0ed9774":"changeTakeoutWallet(address)","b0ee60a3":"_addLicenseTerms(bytes32,bytes32,bool,uint256,bool,uint256)","b0eeefea":"YANKEES(address)","b0eefabe":"setArbitrator(address)","b0f07e44":"registerData()","b0f0c96a":"hello(uint256)","b0f11234":"getMessageCommunicationHash(address,uint256)","b0f239e9":"totalCheque()","b0f23d80":"SetCountryCode(uint16,string)","b0f2b72a":"set_value(uint256)","b0f32e55":"ContractFactory(uint8,uint8)","b0f42dc4":"isPure(uint256,uint256)","b0f471dd":"_partFromProvider(uint256,address)","b0f5ae72":"exchangeEtherOnTokens(address)","b0f69523":"rentOut(address,uint256,uint256)","b0f72665":"multiSigDev(bytes32)","b0f7d744":"getBoughtTime(address)","b0f85a10":"airEndtime()","b0f94b16":"batchFishAquarium(uint256[],address)","b0f9ba74":"destroyEternalStorage()","b0f9f315":"accountClaimedReward()","b0fa4926":"buyLicenseForETH()","b0fa5032":"DDToken()","b0fb3095":"transferDividendBalance(address,uint256)","b0fc2d72":"grantPurchasedTokens(address)","b0fc9bdf":"lilitoken()","b0fd035b":"safeWithdraw(uint256)","b0fd935b":"registerCertificationDb(address)","b0ff4210":"BAFC()","b1000f23":"_airdrop()","b100ad20":"incremCounter()","b102bfbe":"getOwner(bytes)","b102f52b":"enterLottery(uint32)","b103bb58":"setMaximalInvestment(uint256)","b103c1dd":"claimCofounditTokens()","b103ef5b":"buyfp(uint256,uint256)","b10477c9":"getAntsSinceLastCollect(address)","b104c509":"earlyInvestorSupply()","b1050da5":"newProposal(address,uint256,string,bytes)","b105126f":"initLottery(uint256,uint256,uint256,int256)","b1057e9c":"sell2(address)","b105be51":"BoonyToken()","b105c904":"intrepidVouchersMinted()","b1063c19":"setMiBoodleVault(address)","b106ef69":"Tutoreum()","b107baa1":"minimunBTCToInvest()","b107e815":"bet(uint32,uint8[4])","b107ea12":"setDefaultAQL(uint256)","b1084ce2":"currentNorsefire()","b108501f":"WINNER()","b10908ff":"ACO_Token()","b1091e1b":"Ez()","b1099347":"buysTokens()","b109bc6d":"getUpVoteCount(bytes12,bytes12)","b109e894":"PRICE_VARIABLE()","b10c7544":"getCmd()","b10c7dc4":"revokeMembership(uint8)","b10cf224":"userUnlockToken(uint256)","b10d539b":"MergeStatus()","b10d5a52":"setTechnicalPercent(uint256)","b10d6060":"StorageToken(address,address,address[],uint256,string,string,uint8)","b10d6b41":"getDocument(bytes32)","b10e4172":"remove(bytes32,bytes32)","b10eabe8":"ADDOCoin()","b10ec8da":"LogPrepareContribution(address,uint256,uint256,uint256)","b10ed487":"minimumInvest()","b10f8583":"update(uint256,uint256,bytes32,bytes32)","b1103200":"poolEthCap()","b1110c29":"createTokenUri(uint8,uint8,uint8,uint8)","b1112507":"bonusDeadlineDefault()","b112349e":"get_my_dni()","b1135686":"votesIter()","b113d9dc":"tokensale(address)","b11408b7":"free1Of(uint256)","b1144c9a":"presaleAllocations(address)","b114b96c":"left99(uint256)","b11560c5":"removeFromWhiteList(address[])","b115d28c":"transferDaxsToken(address,uint256)","b1174177":"LogWhitelistRemove(address,uint256)","b117a3e8":"kingBank()","b118060e":"stringLength(string)","b1186efb":"decode(bytes,uint256,uint256,uint256,uint256)","b11873d1":"BOSX()","b11888d6":"testThrowOnTransferWhenNotCreator()","b11894c9":"addBadToken(address)","b1194648":"setSaleWeiLimitWithoutKYC(uint256)","b1194bc4":"setGlobalDelegation(address)","b1199a87":"resetMeter(address)","b11a19e8":"toString(bytes32)","b11a1b89":"setCoinContract(address,address)","b11a2a97":"setEDUPrice(uint256,uint256,uint256)","b11a41fb":"AfrFballCoinToken()","b11b40a1":"getDna2(uint256)","b11c4fd8":"approveAndCallcode(address,uint256,bytes)","b11cc099":"winPrize()","b11ce2db":"addContractAddress(address)","b11d8bb8":"revealVote(uint256,uint256,uint256)","b11dd097":"initEmployee()","b11e0acb":"supplyAvailable()","b11e3889":"bulkDepositTo(uint256[])","b11e3b82":"createEvent(bytes32,bool,int256,int256,uint8,address,address,bytes32[])","b11ec3b3":"MENSA1(address)","b1202774":"ico4Max()","b120c16a":"setReputation(address,uint256)","b120e1ef":"setTokenSaleDistribution(uint256)","b12155a9":"burnTokens2(uint256)","b121a199":"_transfer(address,address,bytes32)","b122a0ef":"joinCommunity(uint256)","b1233451":"setTerm(uint256,string)","b1237eae":"withdrawAmountTo(uint256,address)","b123f68b":"LogAddress(address)","b12673b2":"token10MstepCAP()","b1267579":"totalTokenRaiseWei()","b126d0e5":"createAndSellAllAmount(address,address,address,uint256,address,uint256)","b126dc4d":"blockIndex(uint64,uint64)","b127221d":"ICO_BONUS()","b127326e":"masterTransfersEnabled()","b1273db1":"batchSetInvite(address[],uint256[],uint256[])","b1275f9a":"addPlayer(address)","b1276a42":"addCurrencyExchangeRate(uint256,uint8)","b1283e77":"markets(uint256)","b1288c11":"bytes32ToString(uint16)","b128ca5c":"adjustCap(uint256,uint256,uint256,uint256)","b129497c":"john()","b12a8229":"tokenSaleEndTime()","b12b714f":"_add(uint256,address)","b12dca5a":"ergebnis(uint256)","b12de559":"invalidateOrdersBefore(address,uint256)","b12dff65":"relaxFundingCap(uint256,uint256)","b12e1449":"reserveEscrow()","b12e3e60":"voltTransfer(address,address,uint256)","b12e4410":"getTokenAddress(bytes32)","b12e5f09":"OpsManaged()","b12e9c41":"SYS_Token()","b12ed9ef":"FCOIN1122Token(uint256,string,string,uint256)","b12f9eab":"finalizeSet()","b12fe826":"addMod(uint256,uint256,uint256)","b13170d6":"Change_approvePay(address,bool)","b1321ed7":"payOutPercentage()","b1330ca9":"startVoting(uint256,string)","b133f39b":"_shuffleParams(uint256,uint256,uint256,uint256)","b13413b0":"allocateTokensToTeamAndProjects(address,uint256)","b1343ee9":"paymentsByUserId(uint256)","b1344271":"slasher()","b1347e9d":"mintsub()","b1356488":"getEndDate()","b135bbb0":"nextGameId()","b1366d5b":"bet(uint256,uint256,address,bytes32)","b13770af":"determinTID(uint256,uint256)","b13795af":"GDCNumber3()","b138d500":"presaleAmount()","b138d838":"getContractEarnings()","b139275f":"transferto(uint256)","b139560b":"getCreateMarketEndTimeValue()","b139af17":"startSpaceship()","b139f780":"NRB_Common()","b13a2e1f":"chargeOwe(bytes32)","b13b4f2d":"wipe()","b13b6a2a":"_decreaseApproval(address,uint256,address)","b13bdfb6":"isAtMost(uint256,uint256,string)","b13c7047":"DragonKingTest(address,address,address,address)","b13c8fe0":"BILLION_TOKENS()","b13d5180":"checkAndCallApprove(address,uint256,bytes)","b13ef343":"Vesting()","b13fd2b8":"DividendAvailable(uint256)","b1401858":"levelOneBonus()","b1404198":"LogForwarded(address,uint256,bytes)","b1406a33":"buyNac(address)","b140bee5":"testFailBuyAfterClose()","b1418cf4":"payHouse()","b14201d0":"requestForArtistRegistration(bytes32,bytes32,bytes32)","b1429863":"test_oneFalseAssertNoMessage()","b1432cc3":"CrowdSale_Change_ReceiveWallet(address)","b1437e27":"tokenTotal()","b143c703":"createBarCodeData(bytes32,bytes32,int256,string)","b143c916":"getTeamPayouts(uint256,uint256)","b143d6fb":"setRunning()","b144a4d8":"DistributionSale()","b144adfb":"balance_of(address)","b14537b0":"maxContributor()","b145a5b8":"isInit()","b145c013":"checkPayout()","b146ba8e":"changeQuecoinAddress(address)","b146bdee":"cancelDigitalContract(string)","b14762bc":"setAirDropDestination(address)","b14781fb":"BITBalanceOf(address)","b148313e":"partnerSaleTokensPurchased()","b1483eee":"_TARGET_EPOCH_PER_PEDIOD()","b14904b4":"BTCET()","b14959dc":"setbonusDate(uint256)","b1498e29":"insert(string)","b149ece0":"joinPool(uint8)","b14a44ac":"_unregisterArtist(address)","b14cf5e0":"changeManager(address,address)","b14d703f":"Bitsonalite()","b14debe4":"getEthPhiRate()","b14e7bc1":"_isOperatorForPartition(bytes32,address,address)","b14ec275":"_createHero(uint256,uint256,uint256,uint256,address)","b14ecf18":"BlackSwan()","b14edac5":"destructo()","b14f2a39":"changeTreasury(address)","b14f6439":"finshCrowdsale()","b14f8432":"hasValidSubscription(bytes32,address)","b15089b1":"unlockBonusTokens(uint256,uint256,uint256)","b151c0c8":"ModuleRegistrar(address)","b15201b2":"MIN_TIME_EXPLORE()","b1523087":"_transfer(address,uint256,address)","b1527bd9":"CYFM()","b152f19e":"getFirstSchedulableBlock()","b152f6cf":"TOKEN_SUPPLY()","b152fbd1":"lockingRatio()","b1536051":"_contractFallback(address,address,uint256,bytes)","b154224e":"TimeLockMultisig(address,address[],uint256)","b1542d39":"_createCrab(uint256,uint256,uint256,uint256,bool)","b1546194":"TimeBoxToken()","b154dea6":"NULL_ENCRYPTION_ALGORITHM_DESCRIPTION_URI_ID()","b154f47c":"dev3Wallet2Pct()","b1557c2c":"lastContract()","b155c7d6":"devTokensIco2()","b155d434":"FINTIFLUSHKA()","b15651ff":"emissionPrice()","b156f79b":"FeeAddr2()","b1574b38":"toggleActive(string)","b157528b":"getERC20(address,address,address,uint256)","b157add3":"bonus_()","b157c5cd":"setJudge(address)","b15868eb":"GetVersions()","b15897cc":"setfreeze(bool)","b158a23f":"betOpen(uint256,string,string,string,string,bool)","b158b63f":"getBillOwner()","b1598725":"CultureTravelFoundationAddr()","b159bcff":"COMPANY_ACCOUNT()","b159beac":"MINIMUM_QUORUM()","b159d61b":"addSellerSig(string,string)","b15a3647":"trade(uint256,uint256[3],bytes32,bytes32,uint8)","b15a72d8":"wagerPool13()","b15aa5b7":"getSignHash(bytes32)","b15addec":"Test1()","b15b2c29":"GetContractStateEarlyTerminatedByTenantSecDep()","b15d6f35":"requestChangeInsurer(address)","b15dc523":"minFundInEther()","b15dcc25":"query(address,bytes2,uint256)","b15fbfe6":"getFromAmountBooks(address)","b16020a0":"STBIToken()","b160a86b":"setKycHash(bytes32)","b1610080":"TravelNote()","b1610d7e":"VOTING_PERIOD()","b16219c6":"feeWithdrawTokenAll()","b1622818":"softWithdrawRewardFor(address)","b162a382":"updateName(address,bytes32)","b163cc38":"addBalance()","b1643e96":"changeFeeEVOT(uint256)","b1648152":"setBetMinMax(uint256,uint256)","b1649a2d":"cancelOrder(address,address,address,address,bytes32)","b1652b2f":"playerRollDice(uint256,address)","b16562fe":"fipsRegister(address,bytes)","b165a332":"getPercentageBonusForIco(uint256)","b1662d58":"setModule(address,bool)","b16661bf":"joinAgreement(bytes,uint8,bytes32,bytes32)","b166b55a":"LogRemainingHalvingSubsidy(uint256,uint256)","b166c1ba":"sendProfit(address,uint256)","b167c34e":"getTxAtIndex(uint256)","b167d512":"allowedSince()","b167fe1b":"getExploreItem(uint256)","b168da8a":"getCustodianName(address)","b1699e2e":"C(bool)","b16a4a52":"TokensUnfrozen()","b16a867c":"summary()","b16ab3a3":"emergency_token_withdraw(address,address)","b16afaf6":"OChain()","b16b1e28":"getAddressField2()","b16b8485":"setExchangeStart(bool)","b16bd58f":"maxTokenlossValue()","b16c09f0":"clearIssuanceData(address)","b16c9e59":"flexibleReward()","b16d0839":"RootsToken()","b16d0e38":"IBG(string,string,uint8,uint256)","b16d1538":"nonEthWeiRaised()","b16d22a0":"StopPaymens()","b16d2fd1":"winnerTicket()","b16d8622":"maxICOSupply()","b16dd130":"baseKernel()","b16deab2":"CentrallyIssuedToken(address,string,string,uint256,uint256)","b16eaafa":"PetsToken(address)","b16f4a3a":"GPaid()","b1700e61":"trackAddresses(address)","b17076b2":"RemoveProofOfOwnership(bytes32)","b1718455":"NUM_COIN_PER_AXIE()","b171ae40":"ethSold()","b171b18f":"triggerInvestment()","b171dee6":"_setCategories(address,uint256,uint256)","b17216f5":"mintForwarder(uint256,bytes32,address)","b1723215":"TestPersandToken()","b17346fd":"finalizeSeedSale()","b174734c":"pendingOwner1()","b175a0d2":"BONUS_TIER_3_LIMIT()","b17607e9":"costoken()","b1766617":"ganTokenNoLongerForSale(uint256)","b176a0b4":"RabbitArena(address)","b1782d18":"tgrNumber()","b17922f6":"onlyRoles(address,uint16)","b179882d":"RESERVED_PRESALE_CAP()","b179f4d8":"G5()","b17a98b6":"withdrawAllToWithdrawalAddress()","b17a9e11":"confirmCustomer(uint256)","b17aa196":"_generateNewRandom()","b17acdcd":"collectFees(uint256)","b17b94c1":"testSystem()","b17c3f99":"confirmation(uint256)","b17c6ab8":"cancelSaleOrder(uint256)","b17d5938":"submitPool(address,uint256)","b17d8646":"EpisodeManager(address,address)","b17df316":"setMigratedBalance(address,uint256)","b17e8c4f":"tokensForplutonics()","b17eb9dc":"supporthill(uint256)","b17f0c1c":"tokenSaleWeiCap()","b17f5332":"EnterCode(uint256)","b17fc36d":"setSoftCapDeadline(uint256)","b18019bd":"_executeVote(uint256)","b1816f60":"TEMTicket(address,uint256,uint256)","b181954d":"addAttribute(string,bool,bytes32,string,string)","b18196f4":"GenexiToken()","b181a8fc":"resetContract()","b181d3d5":"GMF()","b1826ee7":"getLevelUpFeeByLevel(uint256)","b1829738":"setContractorsProfitAddress(address)","b184be81":"drain(address,uint256)","b18588fb":"updateGravatarName(string)","b185a8a4":"ChangedTokens(address,uint256)","b186eed8":"dealerDay()","b1871886":"growthReserve()","b1874b99":"INVESTMENT_USER1()","b187984f":"disableTransfer()","b187b6b1":"getBlockValueBalance()","b187bd26":"isPaused()","b1881225":"KEYS(uint256,string,uint8,string)","b188c70d":"feeMode()","b1895823":"mintMultiToken(address[],uint256[],uint256)","b189ad2a":"testErrorUnauthorizedAfterTransfer()","b189fd4c":"hash(uint256)","b18a02a4":"getPlayers(uint8)","b18a714e":"getReservedBalance(address)","b18a78e3":"currentBetAmount()","b18af4e3":"addProduct(bytes32,uint256,string,string,string)","b18bca4d":"countAbstentions()","b18c6847":"manualUpdateBalances()","b18d0c80":"getImageWidth(uint256)","b18de618":"EndQuestion()","b18e0ab8":"FooWallet(address[],uint256)","b18e4f5f":"appendKeyValue(string,string)","b18ef18c":"GlobalChain()","b18efff3":"GenesisCatsAdded(bytes5[16])","b18f1943":"ownersLength()","b1905727":"getPermissionManager(address,bytes32)","b19068c7":"minimumWager()","b19129b1":"addCustomertoBL(address,address)","b19183f2":"HodlReleased(bool)","b19208f3":"getPreIcoFunds()","b192da2d":"burnt()","b1933a0b":"getAllSharedAccounts(bytes32)","b1934151":"tokenScaleFactor()","b1936c24":"presaleOngoing()","b194073a":"getUmkaAddress(address)","b196aabb":"maximumBaseContribution()","b196f378":"weiLiquid()","b1972567":"lockAddresses(address)","b1976a02":"Get()","b197997a":"getCurrentYearMinedTokenCap(uint256)","b1987c7d":"NotaryPlatformToken()","b1989a2b":"calculateFadeoutToPool(uint32,uint256[9])","b198ef45":"checkVotingForAllowTransfer()","b1999937":"leapYearsBefore(uint256)","b19a4540":"allocatedEth()","b19a5f62":"placeOpenPurchaseOrder(address)","b19ab052":"withdrawEtherManually()","b19ab945":"maxBurnThreshold()","b19b1550":"FintechnicsPublic()","b19b2162":"refundFailedAuctionAmount()","b19bc02e":"Griddeth()","b19c0f5e":"registerForCompetition(address,address,address,address,address,uint256,uint8,bytes32,bytes32)","b19d134d":"reviseNumAvailable(uint256,uint256)","b19d4916":"setCompte_2(string)","b19d632b":"publish(bytes32,uint256)","b19e288c":"set_pauseCWC(bool)","b19f30e2":"changeKYCAddress(address)","b19faed8":"doSucceedingApprove()","b19fde5a":"getPresaleAllocation(address)","b1a00406":"getactendlen()","b1a0570d":"mintBIX(address,uint256,uint256,uint256)","b1a06ee7":"setPreSaleTokenExchangeRate(uint256)","b1a08010":"orderTrader(bytes32)","b1a11c92":"trashedTokens()","b1a1318a":"HolderAddress(uint256)","b1a1b3bc":"get_chronus()","b1a2bbd1":"TOTAL_TOKEN_CAP_OF_SALE()","b1a329d7":"optionPoolTotal()","b1a34e0d":"addClaim(uint256,uint256,address,bytes,bytes,string)","b1a3c6b4":"Balances_of(address)","b1a56055":"add_OEM()","b1a6676e":"isBurnActive()","b1a681c8":"receiveEtherAndData(bytes)","b1a6afd3":"declaration()","b1a7c005":"hashDelegatedTransfer(address,uint256,uint256,uint256)","b1a82e8f":"Jaak()","b1a8b25a":"returnBalanceToMainAccount()","b1a96135":"DMT_TotalSuply()","b1a997ac":"poke(address)","b1a9bd77":"settlementIsRunning()","b1a9f8a4":"_toString(bytes32[4],uint256,string)","b1aa6dfa":"finishInitOwners()","b1aac629":"addSoundEffect(uint256,uint8[])","b1ab0999":"supportKickoffQuorum()","b1ac478f":"_generateBattleReward(uint256,int32)","b1ad4c48":"getInvestorDividendsAmount(address)","b1adc241":"BalanceDB()","b1ae9017":"refundsall()","b1ae9887":"lastTreeId()","b1afe96b":"setMaxInvestorContributionInWei(uint256)","b1b2aef3":"testInsertProductIntoCart()","b1b30533":"contractTokenWithdrawToFreeTokens(address,uint256)","b1b3d3f6":"allow()","b1b5537c":"activateCycle(uint256)","b1b68fad":"makeTradable()","b1b6a6ed":"addPremineAllocation(address,uint256)","b1b6aecb":"SLMToken()","b1b79120":"setFightFactor(uint8)","b1b7c88f":"getPreSaleBonusRate(uint256)","b1b82922":"_getProviderRateHistory(uint256,uint256,uint8)","b1b96fdf":"giveTokens(address[],uint256)","b1b9e78d":"acceptOffer(address,uint256)","b1ba6ad7":"privateSaleAddress()","b1bb1a60":"serviceGroupChange(address,address,uint8)","b1bb4d35":"proxyMint(uint256,bytes32)","b1bb5855":"maxTicket()","b1bb5fde":"runningDebt()","b1bb7e0f":"verificationPeriod()","b1bbc6f5":"onlyBouncerSetGasRefund(bool)","b1bbd453":"winnerWithdraw(uint256)","b1bcc1b7":"depositOrder()","b1bd7683":"maxAvailableForSale()","b1bd7b80":"transEther()","b1beb3c0":"NonActivationWithdrawal(address[2],uint256[7],uint8,bytes32[2],uint256)","b1bf0510":"getJobsBoard(uint256)","b1c0e063":"cancel(address[3],uint256[4])","b1c0f2df":"maxWithWhitelist()","b1c16a2b":"HARD_CAP_TOKENS()","b1c19c4d":"LetItPlayTokenPromo()","b1c23704":"myMethod3(string)","b1c23ce6":"saleContributions()","b1c25586":"lockTokens(address,uint256)","b1c30210":"setValidationData(uint16,uint16,uint8,uint8,uint8,uint8,uint16)","b1c32b2b":"updateAngelLock(uint64,bool)","b1c3c97e":"increaseTotalWinningStake(uint256)","b1c4b70d":"confirmLawfulness(bool,bytes32)","b1c5f992":"setAffiliateRate(uint256)","b1c62e8a":"createProductionUnit4()","b1c6517a":"LookAtNumberOfPlayers()","b1c73525":"getKeccak256(uint256)","b1c8ac52":"minEthToContribute()","b1c90f6f":"ClaimingTimeLimit()","b1c9cc6c":"getSBounty()","b1c9fe6e":"phase()","b1ca3b3a":"_icoTokens()","b1cb0db3":"expires()","b1cb267b":"getE()","b1cb4217":"betContractUP()","b1cb43bf":"tokenToExchangeSwapInput(uint256,uint256,uint256,uint256,address)","b1cb574b":"setEarlyParticipantWhitelistMultiple(address[],bool[],uint256[],uint256[])","b1cb9425":"private_kill()","b1cc1d4d":"depositAndBundle(uint256)","b1cc38d0":"setShortPositionExpired()","b1cc4348":"placeWager()","b1cc7c60":"mintInterest(uint256)","b1cd221a":"redeem(address,uint256,string)","b1cd79de":"setlockaddress(address,uint256)","b1cdbe2a":"ELTC()","b1ce0a9b":"nextPayoutBlock()","b1ceb746":"acceptContribution(address,uint256)","b1cedd89":"PayPerkToken()","b1cee330":"arrayOfTokensByAddress(address)","b1cf404b":"sendTokensToOneAddress(address,uint256)","b1d006d6":"extendICO(uint256)","b1d0073b":"updateMaxNumMC(uint256)","b1d05422":"SendEmail(string,string)","b1d06c46":"moduleHandler(address[])","b1d0b725":"sellStatus()","b1d0fbc5":"uraniumplusToken()","b1d11f23":"setVesting(address,uint256,uint256,uint256,uint256,uint256,bool)","b1d17c98":"distributeTokens(address)","b1d1a159":"curRefNumber()","b1d1fed9":"multisigDXF()","b1d2372b":"JumboToken(string,string,uint256,uint256)","b1d27e3f":"setSmallPrice(uint256)","b1d3ea61":"salesContract()","b1d45fad":"HoneyBadger(address)","b1d5114c":"Hawk2(uint256,string,string)","b1d51d31":"pay(uint64,address)","b1d66003":"getRareItemInfo()","b1d6a2f0":"saleAgent()","b1d7ee21":"discountMultiplier()","b1d919ed":"LogCertifierDbChanged(address,address)","b1d9647e":"ecoBuilder()","b1db1cac":"gameGetTokenBankrollList()","b1db9c2e":"WordCoin()","b1dbb87a":"DEVELOPER_FEE_PERCENTAGE()","b1dbeb37":"PRTC()","b1dce014":"buildTeamMapping(uint256)","b1ddf52f":"getAuctionByIndex(uint256)","b1de4f0f":"setOwnerMaster(address,address)","b1de74d6":"LOG_SpinsContainerInfo(bytes32,address,uint256)","b1e045f7":"sponsoredJackpotMax()","b1e05e8a":"extractBytes32(bytes,uint256)","b1e19d45":"whitelistBurnFrom(address,uint256)","b1e1c18f":"addToManagementWhitelist(address)","b1e1ff3a":"tokenMetadata(string)","b1e254c7":"mock_clear()","b1e2a116":"playersToTotalBets(address)","b1e2cb03":"newLottery()","b1e2e1dc":"rollRoom(uint256)","b1e2e28c":"YUPIE_PER_ETH_SALE()","b1e3301f":"checkFlags(uint16,uint16)","b1e35242":"getMeOutOfHere()","b1e37921":"setDefaultMintingAddress(address)","b1e3dd57":"availableTokensAmount()","b1e50702":"setConfigSetupContract(address)","b1e5e2b7":"openBox(uint256)","b1e776e3":"updateMarketCap(uint256)","b1e834b0":"totalPreSaleTokenIssued()","b1e8aea8":"turnBackTime(uint256)","b1e8cca8":"openWormhole()","b1e9292f":"min256(uint256,uint256)","b1e9932b":"claimAndConvertFor(address[],uint256,uint256,address)","b1e9b21d":"deletePokemon(uint256)","b1e9ee64":"addressChangeRequests(address)","b1eac37e":"jackpotAmount()","b1eb2c10":"getForecast(bytes32,bytes32)","b1ebcce1":"setTxcode(uint256,uint256,uint256)","b1ecb343":"recentPlayersBack()","b1ed795e":"withdraw_all_eth()","b1ed8c99":"stageFourEnd()","b1eefcc1":"_changeOwnership(address,address,uint256)","b1ef2e97":"setXPROMO_MULTIPLIER(uint16)","b1efbd6f":"setMinimumEthereumToInvest(uint256)","b1efc755":"operationAmount()","b1efeece":"assignedSupply()","b1f0a72f":"getSubmittedStateRoot(uint256,uint256)","b1f0e40b":"finanVestingStage()","b1f253f6":"theDividendsOf(bool,address)","b1f25ffe":"calcFutureDebt(address,uint256)","b1f29590":"totalTulipCount()","b1f2e537":"setIsTokenTransferOpen(bool)","b1f32231":"awe()","b1f35246":"setActualMinerAddress(address)","b1f395ea":"addPauser_(address)","b1f3b35c":"listeners(uint256)","b1f3ec87":"SafeasyToken()","b1f42430":"ZitKOINCrowdsale(uint256,uint256,uint256,address,address)","b1f4ff90":"filters()","b1f525c6":"counter(uint256)","b1f56187":"debugBuy()","b1f5b6da":"setTokensLimit(uint256)","b1f6bd0d":"deleteInvoice(bytes32)","b1f8100d":"proposeNewOwner(address)","b1f864fb":"diamondIndexToOwner(uint256)","b1f9275f":"ENJ_UNIT()","b1f99cd5":"blockDotCoinbase()","b1fa884d":"FixedChain()","b1fc0792":"ICO_LEVEL_5()","b1fc756f":"getRefBonusPercent()","b1fc8466":"MAX_AVAILABLE_JOINTTOKENS()","b1fca956":"endTimeRound1()","b1fe1b4a":"weiRaisedICO()","b1fe3eef":"buyTokensFor(address,bytes32,uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","b1fe5f58":"BIDDED()","b1fe933d":"incrementRedemptionAddressCount()","b2016bd4":"collateralToken()","b2019b8a":"EmtCrowdfund(uint256,uint256,string,string)","b202a9f4":"ERC223MintableToken(string,string,uint8,address)","b203bb99":"balance(address,address)","b204bb5d":"AddTicket()","b2057a6f":"inquireDividentAmount()","b205feb7":"stringToUint(string,int256,string)","b2067bd6":"ETHs(uint256,string,uint8,string)","b206eb42":"getImageDescriptor(uint256)","b207e32b":"testChangeRole()","b2085903":"Winner(address,uint32,uint32,uint32,uint256)","b208a600":"Nordic()","b20953f2":"isFiscal(bytes32)","b20a459d":"ZZZToken()","b20a4abb":"LogCustomSale(uint256,uint256,uint256,uint256)","b20a8779":"transferPreICOCollected()","b20b0ef5":"getAvailableCardCount()","b20b8403":"updateClaimFee(uint256)","b20baa00":"RegisteredToken(address,uint256,address,address)","b20bf95b":"setYearlyUSDSalary(address,address,uint256)","b20c0e43":"PHASE1_RATE()","b20c9f8b":"sellMaximumPossibleAmountOfTokens()","b20cc590":"allowedRoles(uint8)","b20cedc3":"getAdmin(address,bytes32)","b20d30a9":"setDailyLimit(uint256)","b20d3b1c":"vestingReleased(uint256,uint256,uint256,uint256,uint256)","b20de8f3":"TECHNOToken()","b20debeb":"Duckcoin()","b20e5a79":"getdecimals()","b20f41ab":"updateBaseComparable(int256)","b21089dc":"removeInvestmentPackage(uint256)","b210dac9":"confirmTransactionSig(bytes32)","b210e434":"functionThree()","b210f639":"PlatformAutonomyAddr()","b2112ce6":"beerContract()","b21287ae":"ToOwner()","b212a23e":"ethConvertRate()","b2138754":"verifyDocument(bytes32,bytes32[])","b213d77d":"editBalanceOf(address,address,uint256)","b2141ba4":"assertCompareBalance(uint256,uint256)","b21457e3":"getInvestorByIndex(uint256)","b214691c":"setAgent(address,address,bool)","b2148d38":"getBasicExtraBallotFeeWei()","b214ecda":"createGift(uint256,string,string)","b214faa5":"deposit(bytes32)","b215814b":"emtpyTo(address,address)","b215a879":"cg()","b215d2c9":"getCertainProducts(address,uint256,uint256,uint256,uint256,uint256,bool)","b215f30c":"changeWhitelist(address,address)","b2163482":"lockedAt()","b216c15d":"copyPopRequest()","b2170394":"getLastPaperFromContract(address,address)","b2173afd":"setzAddressesArray(address[2])","b21800d0":"TokenTransaction()","b2185bb1":"drawWinner()","b2186b05":"CrowdsaleSoftCapReached(uint256)","b2189168":"updateGame(uint256,string,uint256)","b2189d5a":"GetUserPELOBonus(address)","b218cf15":"registerToPool(address)","b2194fd8":"UinfoToken()","b219610a":"getRegionPurchasedAt(uint256)","b219c852":"firstStageTotalSupply()","b21a8be0":"isSuccessfulIco()","b21bce4c":"vote(bytes,bool)","b21c2475":"getWeiForRefund()","b21c2a68":"changeBZRxTokenContract(address)","b21ce425":"amountToTransfer()","b21cee7d":"get1TokenBuyPrice()","b21e4ebd":"itemOfOwnerByIndex(address,uint256)","b21ed44e":"percentForSale()","b2205a38":"xcertKyc()","b2210c91":"cashBalanceOf(address)","b22175db":"GetLikeCount()","b2225351":"verify(uint8)","b222cb0b":"selfRegister(bytes32)","b2237ba3":"setRatio(uint256)","b223d285":"releaseVanityUrl(string)","b2240566":"EOJ()","b2246f43":"Result(bytes32,address,uint256)","b224c40a":"vote(uint8,string)","b22528e4":"getUserEventsByIds(address,uint256[])","b225c23f":"updateCredit(address,uint256,uint256,uint256)","b225e08a":"whiteListTime()","b226ec29":"Gov(uint256,string,uint8,string)","b2280b48":"chairmanOf(uint256)","b2281442":"setMaxAbsKindness(int256)","b2288649":"lotteryBalance()","b22a7bfa":"migrateBalances(address,address[])","b22b2b66":"setKYCFull(address[])","b22c14c7":"multiPartyTransfer(address[],uint256[])","b22d9f50":"GallerionCoin()","b22dd140":"assetStaker(bytes32)","b22dd2ca":"R1()","b22e6fee":"get_pre_kyc_iconiq_bonus_denominator()","b230642d":"createSubscription(uint256,uint256,uint256)","b23096e9":"tokensTeamBlockedTimestamp()","b230eda1":"stageTwoSupply()","b2310cc5":"payRequstedSum(uint256,uint256)","b231e5cd":"STAGE_FOUNDATION()","b2322c40":"RabtestToken()","b2353d69":"updateRightLottery(address)","b2355b42":"setHomeDailyLimit(uint256)","b2356ad4":"tradingFeePercentage()","b2357392":"NewToken(uint256,string,uint8,string)","b23605eb":"PALToken99(uint256,address)","b2369f12":"getLockAccounts()","b236a3c9":"updateminAmount(uint256)","b236b068":"totalAlloctedToken()","b2378428":"LetsbetToken(address,address,address)","b237f7d4":"burnTokens(address)","b238724b":"setPendingValue(uint256,uint256)","b2389da8":"balanceOfFlurbo(address)","b238ad0e":"getDaysInMonth(uint8,uint16)","b2394040":"rateThirdWeek()","b239e2f1":"adventureHandler()","b23a0b90":"Henfruit()","b23a31e4":"getBrickIds()","b23b369b":"getPokemonLevel(uint256)","b23b4dd4":"incrementOwnedArea(address,uint256)","b23bc656":"setOverdraft(uint256,uint256)","b23c1f19":"mintTokenRewards(address,uint256)","b23d36b0":"isCheckStage()","b23d4854":"setTokenContractAddress(address)","b23db1be":"subtoken(address,uint256)","b23e35bf":"readLoveStory(bytes16)","b23f3594":"updateTeam(address)","b2401e1e":"nextDisbursement()","b2406905":"whoHasTheBiggestDick()","b240798e":"withdrawBet()","b241a020":"freeGameLockedToken(address,uint256)","b241b3b5":"getHarvestOperation(string,address)","b241ff03":"passPeriod()","b2427755":"minTrade()","b242c9c3":"getAmountRegistered()","b242e534":"transferOwnership(address,bool)","b24374a2":"omg()","b2444a70":"getParentA(uint256)","b2449d65":"YES()","b244b268":"SeeleCrowdSale(address,address,address)","b244c3f3":"ddftFundDeposit()","b2450b15":"openSoldTokens()","b24539a9":"getIcoTime()","b245923e":"proveIt(bytes32)","b245d6da":"coinIssuedIco()","b245fc92":"findNextMonth(uint256,bytes)","b2461b15":"upgradePermissionedSC(address,address)","b24626e9":"setAODevTeamAddresses(address,address)","b2467742":"CryptoPhoenixesCivilWar(address,address)","b2471e8e":"Fart(string)","b2478cfe":"recoveredIndex(address)","b247c525":"amountNeedToBeLock()","b247ed92":"getAllShipStats(uint32[])","b2481048":"newGlobalChanceNo()","b248e436":"IsBoilerExpire(address,uint256)","b248e4e1":"orderPriority(bytes32)","b2494df3":"getModules()","b2498a1f":"setPercent1(address,uint256)","b249bf01":"sendtoC(uint256)","b24a5425":"_setRoleCapability(uint8,address,bytes4,bool)","b24b09fd":"RefundEvent(address,uint256,uint256)","b24bf695":"getInvestorsAddresses()","b24c0a38":"setPreSaleParameters(uint256,uint256,uint256,uint256)","b24c35e4":"getRoundBetOrigin(uint256,uint256,uint256)","b24cb812":"removeAllowCnsContract(bytes32,address,bytes32)","b24ce5fa":"thirdCheckpoint()","b24d0c84":"addDat(string,string)","b24d8de2":"failedTemperaturesAt(uint16)","b24dced3":"setTransferFeeMin(uint256)","b24ec0b0":"LogStudentCertified(address,uint256,address,bytes32)","b250ce21":"CMC()","b251eb05":"MemberAdded(address)","b2523b67":"getReferenceAddressesOfCode(bytes32)","b252720b":"healthCheck()","b252ff2b":"threeHotHoursTokensCap()","b25302f6":"WineSupplyChain(address)","b25310b0":"DdosToken()","b25461ec":"cancelRequestPause()","b2549717":"setCalFactor(uint32,uint32)","b2550a53":"maxCyclePlayersConsidered()","b2552fc4":"annualInterest()","b2561417":"setMinimumGoal(uint256)","b2563a1b":"getMinimumLimit()","b256b093":"reservedForFounders()","b256dd6e":"WhosTheBossNow()","b2570b1c":"getBattleCardInfo(uint256,uint256,uint256)","b258eacf":"totalSupplyInt()","b2594125":"SurgeToken()","b2596a67":"levels(uint256)","b2596acd":"setForRent(uint256,uint256,uint256)","b25a00fd":"nativeToErcBridgesAllowed()","b25a7a9d":"calculateOwnership()","b25a80f4":"StoppableShareable(address[],uint256)","b25af26f":"applyForVisa(uint256,uint256)","b25ba6a7":"refundContribution(address,uint256)","b25bb3a7":"ownersGeneration()","b25c22b2":"approveMotion(uint256)","b25c372e":"prolongate(uint256)","b25cdccf":"fundingState()","b25e6181":"UnanimousConsent(address[])","b25e8973":"LBN()","b25ebbad":"_issueBitmark(address,bytes32,int256,uint256)","b25f539d":"registerUser(address,address,string,uint256)","b25f692a":"validateAndGetPurchaseTokens(address,address,uint256)","b25f8596":"PUBLIC_SALES_1_PERIOD_END()","b25fa92c":"adminAddRole(address,string)","b26041a1":"DELL()","b260c42a":"activate(uint256)","b261ce9c":"IsThisPublic()","b261f82f":"releaseAll(uint256,uint256)","b26209f6":"remainingFundsToEndAuction()","b2627ec0":"buyPriceAt()","b263c00c":"setV_R2(uint256)","b263f638":"minimalRewardedBalance()","b263f865":"usdPerHundredEth()","b263fb3f":"updateBasePriceAndMarketCap(uint256,uint256)","b2667cd0":"currentInvestment()","b266b828":"_sendTo(address,address,address,uint256,bytes,bytes,bool)","b266c661":"startDates(uint256)","b267f998":"addressFundBonus()","b2683aa6":"numberOfWagersToFinalTimeout()","b2684945":"usdSale(address,uint256)","b2686774":"sendFunds(uint256,address)","b269681d":"destination()","b269d584":"insertValue(uint256)","b269eaff":"imageGenerationCodeMD5()","b26b4f25":"changePrice(string)","b26c9779":"changeApproval(address,bool)","b26d9d6e":"IntermediateVault(address,uint256)","b26e4aed":"test_set_get_PremiumFactors()","b26eafe4":"lockUntil(uint256,string)","b26ee15c":"interfaceFreezeTokens(address,uint256)","b26ee5fe":"getTotalF4()","b26f72a4":"withdrawJOYTokens()","b26f7efc":"startGame(uint256,int256,address[])","b270b209":"BlocklanceContractHolder()","b27201ca":"investedFrom(address)","b272fa2d":"getMyHipster()","b273952a":"_isUserInternalLock()","b2741997":"BAIRON()","b274e48e":"setSaleStatus(bool,bool)","b2758411":"setUserDisplayName(string)","b275a9d8":"PackageContract()","b275ba3a":"registerUser(address,address,string)","b2774b17":"createOrSet(string,uint256,string)","b2775b02":"genBaseStats(uint256)","b2787e0c":"changeTransferAgentCA(address)","b2788540":"manuallyConfirmDonation(address,uint256,uint256,string,string)","b278b8df":"updateVoteInfo(address)","b27913a6":"LedgerUpdated(address,address)","b2792811":"getFreelancersJobContracts(address[],uint256)","b27a1f63":"horseFS(uint256)","b27b0755":"earlyBirdsSupply()","b27b7dd1":"removeStage(uint8)","b27b8415":"dailyHashExpires()","b27bcaea":"startBetBlue()","b27c0ccb":"ETASToken()","b27c4b92":"buyCore(address,uint256)","b27c4cde":"ethereumhorse()","b27d31de":"bulkTransferEther(address[],uint256[])","b27daded":"processorAddress()","b27e7244":"addDestinationChain(bytes8,address)","b27ea08d":"tokensRemainingPreIco()","b27eb3e5":"airDrop(uint16)","b27f829e":"removeNetworkMember(address)","b27f88fb":"endFifthWeek()","b280055b":"roleSetup(address)","b280a7e7":"changeSender(address)","b280a96e":"setUseAddr(address)","b280f180":"setRates(uint8,uint8,uint8)","b2813f19":"withdrawOrderTo(address,uint256)","b28175c4":"stor()","b281c478":"currentCluster()","b28241f9":"getCityPopulation(uint256)","b283f2f1":"accessoryDataContract()","b28448f4":"NewDeposit(uint256,uint256,uint256,address)","b2849055":"resetBalanceOfValues()","b284fc29":"investorsTokensPercent()","b285041d":"Satoshi()","b2852bec":"saveCash(address,uint256)","b2855b4f":"setFeeAddr(address)","b285643e":"leaderboardDataContract()","b2860396":"setstart(uint256)","b286a346":"SimpleAIToken(uint256,string,uint8,string)","b286ba8c":"heapSort(uint64[])","b2879d45":"setDRSCoinAddress(address)","b288d748":"reduceLockingTime(uint256)","b2893ba5":"next_balance()","b28945a5":"setApprovalForAllByContract(address,address,bool)","b28b3a6e":"famedStarNameToIds(bytes32)","b28bb2a0":"setStorageTime(uint256)","b28bf6af":"decreaseClaimsBalance(address,address,uint256)","b28c461c":"TOKEN_RATE_BASE_RATE()","b28c48bb":"NecashToken()","b28c747d":"getSentTransfersCount()","b28e5904":"Xflip()","b28eed93":"Listed_NotValidated(uint256,string)","b28f1433":"BHNNetwork()","b28f1ee3":"reserveSeats(uint256[],uint256)","b28f4c60":"isEmptyString(string,string)","b28f53fe":"setMinimumTokensForPurchase(uint256)","b28f6fa3":"isOnAuction(uint64)","b28fc973":"getEthBalanceOf(address)","b28fd472":"miaomiao()","b290ae06":"shrToken()","b290b9ce":"resetAllDelegations(bytes32)","b290e45b":"BonusIssued(address,uint256)","b2910826":"set_payments_processor(address)","b29120fe":"getHeartPrice()","b291820b":"Etherich()","b29212b5":"delAudit(address,address)","b2923cff":"TAXRATE()","b2931096":"hasClaimed(address,uint256)","b29387e5":"payWinnerManually2()","b295a00e":"getLimit()","b2963db6":"closeDailyInvest()","b29775c1":"isDiscountValue()","b297a35d":"_redeem(bytes32,address,address,uint256,bytes,bytes)","b298247e":"gift(uint256)","b2983281":"largeCapLimitOf(address)","b2984858":"ico1cap()","b2990de1":"getByToCount(uint256)","b299708d":"dspRegistry()","b29a0308":"logAnonymous(bytes,bytes,bytes,uint256)","b29a08f7":"ContractMadePermanent(string)","b29a3cfd":"getPI_edit_13()","b29a61c1":"investorBalances(address)","b29ae23f":"getDateOfSignature()","b29b3511":"getSpaceshipUpgradeTotalSoldByModel(uint16,uint8)","b29b5366":"setRentable(bool)","b29b5be7":"getMintAdminApproval(address,address)","b29b686a":"isWarrantyValid(address,string,string)","b29c2493":"token(uint256,string,uint8,string)","b29c62f4":"myAccount()","b29cbcec":"LogChangeMultiSigAddress(address)","b29d7914":"getRefResults(uint256)","b29e201c":"spread(address,address[],uint256[])","b29e9909":"sCVars()","b29f0835":"doIt()","b29f2e77":"sendWarriors(address,address,uint256)","b29f731d":"__tinyOracleCallback(uint256,bytes)","b29f7f9e":"removeODEMClaim(address,bytes32)","b29f9d3b":"unfreezeAccountWithToken(address,uint256)","b2a072c6":"passUndistributedEther()","b2a082b9":"suicaId()","b2a1449b":"out()","b2a1a022":"getGasPrice(string)","b2a1c540":"setMemberId(address,uint256)","b2a1de22":"whitelistedCount()","b2a29615":"Criptomedicina1()","b2a2a4e2":"complianceContract()","b2a3fd05":"WithdrawEth(uint256)","b2a4c897":"createTable()","b2a4efd4":"MASTERY_THRESHOLD()","b2a5a012":"setTokenReturnRate(uint256)","b2a5bc70":"_tokenLeft()","b2a68466":"OZENToken(uint256)","b2a6d21b":"COMPANY_RESERVE()","b2a7239d":"sklToken()","b2a780e4":"BITCLAVE_AMOUNT()","b2a7d1b7":"AssetsExplorer(address)","b2a840c0":"enable(string,uint256)","b2a87fc3":"targetToAchieve()","b2a8a6f3":"sendFLC(address,address,uint256)","b2a8ff45":"Tokens_Per_Dollar()","b2a91457":"OIA()","b2a9ab9c":"getTotalBraggedVolume()","b2aa8291":"MAINSALE_CAP()","b2aa9f0f":"increaseTotalSupply(address,uint256)","b2aac51f":"lookupUser(string)","b2aae005":"getBalanceOf(uint256)","b2ab526d":"approveUsers(address[])","b2ab530e":"testFailRetractLatestRevisionNotUpdatable()","b2ab70ba":"getMaxIterationsForRequestDividends()","b2ac1bbe":"buyInternal(address)","b2ac5407":"GMRTokenManager(address)","b2acbc13":"isOwner(bytes8,address)","b2ad1993":"BalanceNum()","b2ad35c0":"distributor_address()","b2ad3d44":"updateComplianceProof(bytes32,bytes32)","b2aeb260":"setHiringDone(address,uint256,address)","b2af9362":"isValidSignature(uint256,bytes)","b2b02109":"partnerSaleTokensAvailable()","b2b0aefb":"verifyPendingShares(uint256[],uint256[],uint256,uint256[],uint256[],bytes,bytes,uint256)","b2b106d6":"participate_in_arbits_presale_crypto()","b2b158e8":"setHolderAmount(uint256)","b2b28679":"getDelegationID(address,address)","b2b3abb1":"removeOrderFromList(bytes32)","b2b45df5":"init(address,string,string)","b2b4ae25":"isEntitled(address,address)","b2b5d93c":"Stop(bytes32)","b2b5f0cf":"IOBT()","b2b5f86f":"getLocality()","b2b5fbf5":"subDroneItem(address,uint256,uint256)","b2b6e37e":"_min256(uint256,uint256)","b2b74405":"PizzaParlor(address)","b2b7d0ce":"HakataCoin()","b2b877c1":"MithrilValkyrie()","b2b95adc":"finalizeChangeInsurer()","b2b96792":"proposeSettlement(uint256,uint256)","b2b98ed2":"Winner()","b2b99ec9":"removeNode(address)","b2ba0aa5":"feesPer10000()","b2ba97de":"team_and_angel_beneficiary()","b2bab02a":"startIssue()","b2bae511":"initSiteRewards(uint256)","b2baede4":"getListingContractAddress()","b2bb419f":"ActivateEscrow(uint256)","b2bb72bf":"getIndexInfo()","b2bbac16":"firstWeekPreICOBonusEstimate()","b2bbae69":"payForVote(address,bytes32,uint256)","b2bbe75e":"Sunshine()","b2bc2f68":"Kitcoins()","b2bc6c19":"PRICE_11()","b2bcf495":"_releasableAmount(address)","b2bd96b2":"AcceptsFUNDS(address)","b2bdc6b3":"adminAddMonument(string,uint256,uint16)","b2bdfa7b":"_owner()","b2be8180":"TombCore()","b2be8a0d":"getUserWalletTokenBalance(address,address)","b2bea9c1":"releasePurchasedTo(address,uint256)","b2bec979":"cashOutCar(uint32)","b2bf731d":"SPECTRE_BOUNTY_ADVISORY_DEV_TEAM_ALLOC()","b2bfd948":"checkNumbers(uint8[3])","b2c15f29":"updateLastTime(bytes32,bytes32)","b2c1d7dc":"BGToken()","b2c2196f":"MxRecordChanged(bytes32,address)","b2c26f94":"updateParameterValue(bytes32,uint256)","b2c2921a":"TeamBox()","b2c3429d":"VouchCoin()","b2c3609b":"Play(uint8)","b2c50b92":"retryWinners()","b2c5b208":"_returnReturnData(bool)","b2c60132":"wingsWallet()","b2c60690":"finalizeVoting(address)","b2c62d46":"endClaim()","b2c652f3":"getMarkets(uint256[128])","b2c6b6dd":"preSaleContract()","b2c7c90d":"bitcoin_ratio()","b2ca38fe":"GAP()","b2ca3ec4":"securityGuard()","b2cad9b7":"getLevel(uint32)","b2cb0a3d":"VESTING_TEAM_DURATION()","b2cb1ebd":"Typhoon()","b2cb26c1":"addMaster(uint32,string,uint16,string,uint8,uint8,uint8,uint8,uint8,uint16,uint64,uint64)","b2cb3a9b":"getCurrentShare(address)","b2cb3e93":"COSSDemo()","b2cb9f05":"Total_Deposited()","b2cc0eb3":"SpaceCoinToken(address,string,string,uint256,uint256)","b2cc36fc":"restoreFromColdWallet()","b2cc4165":"getOrderAmount(address,address,uint256,address)","b2cca39d":"pausedTime()","b2ccc4ab":"getFameBalance(address)","b2ccda0e":"setPrimaryOperator(address)","b2cd67ef":"Klein()","b2cda083":"PassCommitteeRoom(address)","b2cefd2f":"LiteToken()","b2cf9814":"assetManagerIncome(address)","b2cfdfda":"stringToArray(string,string)","b2d111f6":"maxGasPriceValue()","b2d1289b":"DepositManager(address)","b2d138d2":"rspScience()","b2d14545":"fbytes2(bytes2)","b2d1573f":"getUserRank(address)","b2d1f9be":"buyStar(uint256,string,string)","b2d23b7d":"fetchVoteResult()","b2d27832":"vestingPeriodTime()","b2d318f7":"VeteranCoin(uint256,address)","b2d37165":"startMinting(bool)","b2d37e95":"remove_order(uint32)","b2d3e85e":"isPeriodAllTokensSold(uint256)","b2d444df":"TIM6(uint256,string,uint8,string)","b2d48237":"refferalsRateBonus()","b2d4ae5e":"__callback(bytes32,string,string)","b2d5362d":"contractTokenBalance(string)","b2d5ae44":"getRefund()","b2d5e8b1":"VALUE_OF_UTS()","b2d6bc83":"fundCapital()","b2d6fd0b":"id_for_address(address,address,address)","b2d8efe0":"crowdsaleOpen()","b2d96b81":"safeAssetData(uint256)","b2da302b":"Thrill()","b2dad155":"trim(string)","b2dad25d":"getNameOfAddress(address)","b2dae885":"SpecialArrays()","b2db1d23":"regularMaxPerPerson()","b2dd5c07":"registered(address)","b2dda6b5":"totalEthReleased()","b2de1a3f":"CONTRACT_PROVIDER_ADDRESS()","b2df8456":"sponge(uint256[9])","b2df8bad":"getAvailableCoinsForCurrentStage()","b2dfa399":"ZRX_TOKEN_ADDR()","b2e02430":"divRate()","b2e02fc1":"addRefund(uint256,uint8)","b2e0baee":"SunContractIco(uint256,address)","b2e235c2":"BitBall()","b2e2c1c9":"updateCondition(uint256,uint256,uint256,uint256)","b2e2c75f":"totalUsed()","b2e30440":"Ducaat()","b2e33c8f":"getCountPlayerByTrackId(uint256)","b2e357b4":"isLinkClaimed(address)","b2e37e18":"extDestroyNinja(uint256)","b2e3d212":"IndexCoin()","b2e4c183":"preICOBonusPercent()","b2e4d35d":"validate(uint256,uint256,uint256,uint256,string,string,string)","b2e545ac":"TokenGreeneum(uint256,string,uint8,string)","b2e5d3ba":"getBtcRate()","b2e6ceeb":"takeOwnership(uint256)","b2e752cb":"MINCAP_TOKENS()","b2e774ce":"deliver(address,uint256,bytes32)","b2e7c288":"recipientString()","b2e85b67":"getPlayerStatus(address,uint256)","b2e94e78":"stage1_start()","b2ea073f":"setGeneScienceAddress(address,address)","b2ea088d":"returnUnsold()","b2ea0a39":"changeMinDonationLimit(uint256)","b2ead7bb":"fundsOut()","b2eafd57":"getRewarder(uint256)","b2ebe1c5":"_determineCharacterType(uint256)","b2ed26f6":"addresses3(uint256)","b2ee95f9":"dateRelease6()","b2eed299":"getPOOL_edit_28()","b2ef089a":"isStateTokensale()","b2ef48b9":"buyTokensWithWei(address)","b2f05133":"set_trader(address)","b2f0575c":"FooMintToken(int256)","b2f094de":"BittechPresale(address)","b2f106c0":"determineReward(bytes32)","b2f1bb5b":"tellMeASecret(string)","b2f1fe99":"refundManyTransaction(uint256[])","b2f2303a":"BreakbitsERC20Token()","b2f24225":"set_minDETsPerReturnMoreThan(uint256)","b2f2588b":"sortNumbers(uint8[3])","b2f2b06d":"_createCar(string,address,uint256)","b2f3319e":"ToggleTestMode(bool)","b2f3d299":"loadFunds()","b2f3ded4":"allMarketsFinalized()","b2f40531":"shutdownTransactions(address)","b2f4bdb0":"createdTime()","b2f5a54c":"getInvestors()","b2f7e989":"sourceTokens()","b2fa1c9e":"isComplete()","b2fa9206":"cancelIco()","b2fadc78":"_getStorage()","b2fb3b90":"cancelActiveAuctionWhenPaused(uint40)","b2fcb395":"GoldenBullChainToken()","b2fce4ea":"delegateVote(int256,address)","b2fed358":"getsafemode()","b2ff7945":"setARR(address)","b3002be7":"burnNSPs(address,uint256)","b30054b4":"set_address_GIC(address,address)","b3007dc6":"rateFirstWeek()","b302ea1e":"setRaindropAddress(address)","b302ec4b":"LocklistedAddress()","b30300d7":"_increaseAllowance(address,uint256)","b3034371":"unilateralRuling(uint8,uint256,uint256)","b30387a4":"gen0Count()","b30390ce":"registerItem(uint256,uint256,bytes32,bytes32,bytes32)","b303cec0":"addAccountReader(address)","b303dcbd":"Owned()","b303f9f7":"releaseHTOSupply(address)","b304376c":"begins()","b30475b6":"totalWeiClaimed()","b304b2e1":"allocated()","b305836f":"feeWithdrawTokenAll(address)","b3066d49":"setContracts(address,address,address)","b3070c12":"ADVISOR_REWARD()","b3074b8a":"SUTokenContract()","b30779b1":"payCommission()","b3082d25":"CreateCards(uint256,uint256,uint256,uint256,uint256,bool)","b30841d9":"totalEras()","b3097a08":"heldTotal()","b30ab349":"getContent(address)","b30bca06":"sum(uint8[])","b30cf414":"unpauseSALE()","b30d1bb8":"isDisableEther()","b30d95a0":"changeBonus(uint256,uint256,uint256,uint256,uint256,uint256)","b30dbc67":"DeNetToken()","b30e4533":"ABBCToken()","b3113d3f":"hardCapPrivate()","b311db2f":"setAccountType(address,uint256)","b311ee0c":"refundClaimDeposit()","b312dc91":"currentPayout(address,address,bool)","b31394cb":"_checkThenTransfer(address,address,uint256)","b3139d38":"updateSlasher(address)","b3141c69":"localsReptoken(uint256,string,uint8,uint256,string,string)","b314a984":"burnRemain()","b3154db0":"check(address,address)","b31567d3":"LogRemoveWhiteListed(address)","b31597ad":"redeem(bytes32,bytes32)","b315e453":"multiWithdrawReward(uint256[])","b31610db":"getIndex(address)","b317d031":"STATUS_PAID()","b319c6b7":"cooldownTime()","b319e9fa":"distributeMultiple(address[],uint256[])","b31a17f0":"FtC()","b31a4047":"_convertBlueprint(string)","b31a404a":"withdrawOnNoAvailablePlan()","b31a4e0d":"allocatePresaleTokens(address,uint256,uint64,uint64)","b31ab1c3":"disconnectOrderUser(address,address,uint256,uint256,address,address)","b31ba590":"PlayerCreated(address,uint256)","b31c5c64":"kscDecreaseApproval(address,uint256,string)","b31c710a":"oldToken()","b31cbe9a":"getAlice(uint256)","b31cd1be":"secretTaken(bytes32)","b31cf984":"getProgram()","b31d61b0":"whitelistAddress(address[])","b31d7730":"presaleFinalizeAgent()","b31d8a6f":"FreeTokenAdded(address,uint256)","b31dcaad":"timeToUnlockDDHHMM()","b31e1d4d":"delegateVote(address)","b31e822b":"isAllowTransfer(address)","b31e8889":"setParticipantWhitelist(address[],bool)","b31f8f93":"tokensLeft()","b32022e8":"calculateKebabBuySimple(uint256)","b3204b8b":"setParent(address,address)","b3204cc3":"setLineUpEnable_pool(address,uint256)","b3205410":"getCustomerInfo(address)","b3206453":"destination(bytes4,bytes)","b3209136":"WakaWakaCoin()","b320f459":"removeBid(uint256)","b32142a0":"getProgramPercent(uint256)","b3215499":"ICOBonusPercent3week()","b3219d17":"calculatePurchaseBonus(uint256,uint256)","b322269e":"GameStart(uint256,uint256)","b32381ee":"addmoney(address,uint256,uint256,uint256)","b324c62a":"fastTokenSale(uint256)","b324e80d":"depositEscrow(address,uint256)","b324fb6b":"startTimePreICO()","b3253e0f":"lastScheduledTopUp()","b326124b":"tRegSaleStart()","b326c189":"hasOpenCommissionerAuction(uint128)","b3280830":"addLibrarian(address,address)","b3292ff0":"addSuperAdmin(address)","b329bf5c":"cancelTransfer(bytes32)","b32b2805":"getArmyFullData(uint256)","b32b664f":"wantItForFree(uint256)","b32b8e2c":"contains(uint256[],uint256)","b32c41d7":"crowdsaleTargetUBO()","b32c65c8":"contract_version()","b32c6a25":"GenesisToken()","b32cb292":"setStartICO(uint256)","b32cec45":"CROWDSALE_ACCOUNT()","b32dbcd8":"getNumKnights()","b32dc51c":"totalPhase1Donations()","b32e02e8":"_getRarePlusRarity(uint32)","b32e4207":"setzString(string)","b32f19f9":"showFreezedTokensAmount(address)","b32f4b9a":"Barbie()","b32fab4e":"moneyback()","b3311309":"SingularityTest5()","b3335e6b":"setICOStartDate(uint256)","b33381fe":"calcAmountEther(address,uint256,uint256)","b333adfc":"coursesLength()","b333b0ee":"_stake(bytes32,uint256,uint256,address)","b333ce0d":"icoFinish()","b3344593":"trackingNo()","b334e90b":"tadpoleReq()","b334fd07":"createFincontract(bytes32)","b3350f03":"forbiddenAction()","b33527d2":"CreateBAT(address,uint256)","b3369866":"indexOf(uint128[],uint128,bool)","b336ad83":"getByName(string)","b336f8a3":"GetNumberOfRigs()","b33712c5":"unpauseContract()","b337a20d":"verifyLockSignature(bytes32,address,address,uint256,uint256,bytes32,bytes)","b33926cb":"owner_withdraw(uint256)","b33a10de":"cards_titanium(uint256)","b33a2ea0":"lastBlock_v18Hash_uint256()","b33a8a11":"setTokenReference(address)","b33aca37":"Mcoin(uint256,string,uint8,string)","b33adbf1":"darPremio()","b33c4b1f":"end_now()","b33cb8f6":"CrowdsalePaused()","b33ceb2c":"AddGossip(address,string)","b33e8ee5":"exchangeTokensById(uint256,uint8,uint8)","b33fcc7a":"multiTransfer(uint256[])","b340a972":"getaddr(address,uint8)","b340d8cf":"encodePriceFeed(uint256,uint256,uint256,uint256)","b340f2b4":"showAssetDetails(bytes32)","b3413d9f":"_forwardFunds()","b34195a3":"ICOTokensInvested(address,uint256)","b3423eec":"requestWithdraw()","b34244e8":"setCBaddress(address,address)","b34253be":"FundsVault(address)","b342d7c0":"genEOS()","b34362be":"setParter(address,uint256,uint256)","b3446f85":"registerPlayer(string)","b3447ac9":"getBytes32Values(bytes32)","b344e002":"saleDeposit()","b3470e97":"addHashes128()","b3472edb":"getMaxProfit(uint256)","b3477201":"createPadlock(string)","b3480369":"_getWaitingBlocks(uint256)","b3481e61":"updateTeam(address,uint32,uint8[],uint32[])","b3485dca":"UpdatePrice(uint8,uint32)","b3487a71":"getBetWaitEndEther()","b348ddde":"ETH750on54()","b3490bfc":"allowTransfer(address)","b34937c9":"feedMessage(uint256,string,string)","b349b973":"_init()","b349dbdc":"nfsPoolTransfer(address,uint256)","b349f6c7":"attemptSpend(uint256)","b34b2c26":"Simpletokenq()","b34b4f69":"XingchenToken()","b34c28de":"calculateBurnGoldFee(uint256,uint256,bool)","b34c3610":"assert1()","b34c8afb":"getBaseAmount(address)","b34d471d":"bulkCreateLamboSale(uint256,uint256,uint256)","b34debac":"canUseResource(address)","b34e0c47":"getUserScore(address)","b34e7b9d":"getgamecardlength()","b34e97e8":"login()","b34f094f":"INTToken(uint256,string,uint8,string)","b34f0e5e":"CLAIM_STAGE()","b34f407d":"setPerformer(address)","b34f43c7":"SVDelegationV0101_1(address)","b34f594b":"setNodePrice(uint256)","b34f7b50":"_generateDiscipleSale(uint256,uint256,uint256,uint256)","b350723f":"_guarantedBid(uint256)","b3508654":"addController(address,bool)","b3508783":"TOKEN_MAX()","b35176e2":"show_number_of_days_since_bank_opening()","b3521607":"XYCCTEST()","b3527cfe":"Follow(uint256,address,uint256)","b3528158":"DASHABI(uint256)","b352867c":"setFreeExtension(bytes32,bool)","b3535fe2":"_setProviderInfoFields(uint256,string,string,uint256,string,address,uint8)","b35376b5":"getDiamond(string)","b3539c44":"getMintForReportingParticipantTargetValue(int256)","b3549265":"coloredTokenCount()","b3559460":"getGenerationSize(uint256)","b3562e6e":"getCrowdsaleTier(uint256)","b356a3a5":"PLATFORM_GROWTH_VESTING_AMOUNT()","b3570116":"mintIfNecessary(uint256)","b357a028":"SCISSORS()","b357a552":"claimAuctionableTokens(uint256)","b357b72f":"setMaxMarketOffers(int32)","b35861b4":"setERC20Address(address,address,uint256,uint256)","b358755e":"testerCanNotReentrant()","b35893f3":"setExporter()","b358e375":"JobsManager(address)","b359cedd":"getTime(string)","b35ae7e8":"ViotToken()","b35e7d45":"setCriticalBucket(uint256)","b35eeb46":"GenHeliosCoin()","b3610f37":"destroyCar()","b36117b2":"create18FilmsTokens()","b36216d3":"allTokensDecimalsBalancesWeights()","b3621e1a":"addAddress(address[])","b36234c2":"AltruismMode(address,uint256,uint256)","b36292eb":"TestingCoin()","b3629f79":"get_proposal_by_row(uint256)","b3643e3a":"createSale(address,uint256)","b36752ee":"addressFoundersShare()","b36763c9":"_owoAmount()","b367fb11":"platformTokens()","b36877c9":"DragonKing(address,address,uint8,uint8,uint8,uint16[])","b368cb10":"getProviderInvitedUser(uint256,address)","b369940c":"wingsETHRewardsPercent()","b3699d0b":"withdrawedTeamCounter()","b369af71":"intervalOf(uint256)","b36a06b5":"preSaleFirstBonus()","b36a0b15":"getSignDetails(uint256,uint8)","b36ada82":"mintingOracle()","b36af005":"Menu04()","b36b9ffd":"bountyManager()","b36ba252":"getSellOrderPrices()","b36c1284":"MaxSupply()","b36c14fe":"getWhitelistUser(address)","b36c8022":"UnfreezeAccount(address)","b36c973e":"payOutWinner(address)","b36d829b":"getwinningaddress01()","b36df681":"ExecutableBase()","b36eaad8":"createUserMeme(address,uint256,string,uint256)","b36f2c30":"maxWeiUnverified()","b36f8e8f":"allowManager()","b36fef76":"promoFishCommission()","b3710a80":"infraEthWallet()","b37139e6":"reduceCD(uint256,uint256)","b37217a4":"getRandomNumber(uint256)","b372bd31":"getCommissionBalanceWEIInfo()","b373a48b":"getOneself()","b373a61c":"priceRandomFight2Death()","b373a6cd":"sendTokens(address[])","b373f167":"transfer(address,uint256,bytes,string,bool)","b3745afa":"changeAllocator(address)","b3746849":"buyTokens(address,bytes)","b374db9a":"secondsTimeLockedDefault()","b3753107":"gweiBBDPriceInWei()","b375603c":"raffleId()","b375a72c":"getHashPicture(bytes32)","b375b95a":"getMaxRankingSpots()","b3760c80":"orderMatch(uint256,uint256,uint256,int256,uint256,uint256,address,uint8,bytes,bytes,int256)","b37610ad":"getKey(uint16,uint16)","b37681fd":"SetPlayerID(bytes32,uint16)","b376feba":"_unsafeTransfer(address,uint256)","b378e89b":"CreateToken(address,uint256)","b37983e2":"gasRequired()","b379d235":"setFlowerAuctionAddress(address)","b37a336d":"VESTING_DIV_RATE()","b37a5de7":"throughputToday()","b37a6a2c":"restartPrivatePlacement()","b37bcd94":"discountPeriod()","b37c191b":"rank(uint256)","b37c7dc0":"sub256(uint256,uint256)","b37cc2f0":"getUserEventsLength(address)","b37d61f8":"checkMyBalance()","b37d97b5":"addMany(address[])","b37dcce2":"trainingFeeMultiplier()","b37edb66":"FundingEntity()","b37edfb6":"checkChangeOwnerArgs(uint256,uint256)","b37f17ee":"migratingAmountBooks(address,address)","b3803956":"showPlayerFullScores(address)","b380b0d4":"setProfitPercentage(bytes32,uint256)","b380beac":"setTotalWizzPandaOf(uint256,uint256)","b380d365":"resolveDisputeSeller(string)","b381cfe5":"iotpowerToken()","b3822da8":"getContents(uint256[])","b38260fe":"totalAngelCardSeries()","b382b0d6":"createContract(uint256,uint8,uint256,uint256,address,address,address,address,address)","b38336de":"getCoinAmount(uint256)","b3834ed4":"getRefunded()","b38400ff":"getEndedGames()","b38415f3":"getConfigBytes(bytes)","b384abef":"vote(uint256,uint256)","b384e9b4":"incentivisationFundAddress()","b3850b2a":"total_reward_amount()","b385e7b6":"playerPrizes(address,uint256)","b387ed6d":"getCompetitionStatusOfHopefuls()","b387ef92":"currentOwner()","b38854be":"ownable()","b38928c5":"Vineyard(address)","b38b2261":"addValidation(bytes32)","b38bf811":"setMessagesSigned(bytes32,bool)","b38c1504":"TOTAL_LBTOKEN_SUPPLY()","b38c7e3a":"getStrong()","b38ce3e7":"deedIds(uint256)","b38d3ab4":"attackeePrizeByToken(bytes32,address,address)","b38de8ce":"DelGoods(uint32)","b38f974a":"buyFood(uint32)","b38fb813":"crowdsaleInit()","b38fced1":"availableThemedSpinners()","b3908dc1":"IPXToken()","b390c0ab":"burn(uint256,uint256)","b391983c":"getLimitAndPrice(uint256)","b3922c42":"TOKEN_INVESTORS()","b3924a58":"GreenMining()","b3927eeb":"Expended()","b3935caa":"trivenewstestToken()","b3936f95":"basis(uint256,uint256)","b3938edc":"changeETHUSD(uint256)","b393a5b5":"setKingdomCreationFeeWeiRP(uint256)","b393a759":"ipfsSet(string)","b393fa46":"fundersClaimed()","b3942cbd":"setTransferAllowed(bool)","b3947c17":"muldiv(uint256,uint256,uint256)","b395cb3c":"vest(address,uint256,uint256,uint256,uint256)","b395f278":"view_get_blockNumbers()","b3965083":"Pothereum(uint256,string,string)","b3965cec":"RefundPeriodStarted()","b3966dc9":"init(address,uint256,uint256,uint256,address,address,uint256)","b396d7ad":"heapSort(uint256[])","b3970f27":"updateHpbNodeBatch(address[],bytes32[],bytes32[])","b397657d":"endInitialization()","b397ffd8":"m_foundersTokensStorage()","b39852f9":"createGame(uint256,uint256,uint256,uint256,uint256,uint8)","b398924d":"RangeGameProcess(address,uint256)","b398e098":"setMaxETHAutoContributions(uint256)","b3997703":"Loser(string,string)","b399a9f8":"setFungibleTokenAddress(address,address)","b399b0bc":"remaining(address)","b39a64cd":"getNumCalled()","b39a69a3":"withdrawPROV(uint256)","b39a7fbe":"setBattleDeciderAddress(address)","b39ad6e0":"DonatorInteract(string)","b39c2944":"requiredAuthorities()","b39c8739":"Strikes()","b39ca258":"createOrder(address,bytes32,bytes32,address,uint256,uint256,uint256)","b39d49fe":"sellNapkins(uint256)","b39d66d0":"LiipCoin()","b39d6b7b":"DukatToken()","b39dcb1d":"showDepositEther()","b39e12cf":"contractManager()","b39e1c6c":"withdrawDirectDebit(address)","b39e7bc1":"RealEstate(uint256)","b39f4171":"payForOther(address)","b39f4483":"setPOOL_edit_28(string)","b3a06e75":"airdropSingleAmount(address,uint256)","b3a0b1ef":"basicInfoGetter()","b3a0e188":"firstReserveTimeLock()","b3a1362a":"setMessage(int256,string)","b3a1584a":"toAddr(bytes)","b3a18632":"stakeAOContent(uint256,uint256,bytes8,uint256,string,string,string,string,uint256,uint256)","b3a196e9":"presaleSupply()","b3a1ca52":"addressFundDigitalMarket()","b3a26071":"LiquetLottery()","b3a27842":"getEntity(uint256)","b3a2a6c0":"setOfficialWebsite(string)","b3a2a999":"nextWithdrawal(bytes16)","b3a3c4f6":"identifierToRentPeriod(uint256)","b3a3d671":"addAllowanceToRecieveToken(address[])","b3a41c65":"power(uint256,uint256,uint256,uint256,uint8)","b3a56077":"vestingPeriodLength()","b3a61c80":"tryNextTimeRange()","b3a6d09d":"tgrSettingsPartContributor()","b3a7cbf6":"XRRsale()","b3a810f7":"tournamentOwnersCut()","b3a844ae":"tokenClose()","b3a9afb7":"getQuickBuyEtherToken()","b3a9b5f6":"multiply(uint256,uint256,uint256)","b3aaa277":"validate(address[4],address,uint256[11],uint256,bytes,uint256)","b3aae830":"deployProject(uint256,string)","b3ab15fb":"setOperator(address)","b3ab715e":"getTileIDbyPosition(uint16,uint8)","b3ac149c":"getCurrBalance()","b3ac7acd":"ownerSetMaxProfitAsPercentOfHouse(uint8)","b3ad4600":"RedCarpetToken()","b3adc716":"is_banned(address)","b3ade772":"shipProducts(string,string)","b3adfa0c":"summLeskiw()","b3ae1d2c":"completeTransaction()","b3ae65d7":"initialBlockNumber()","b3aefb75":"getCap(address)","b3af4426":"jackpotTokenLoseRewardRate()","b3af88f0":"proposalPresent(string)","b3afe437":"SPECIALIST_TWO()","b3b0c83f":"withdrawEndTime()","b3b0cf86":"Birth(uint256,string,address)","b3b0eae5":"getPaidAmount(string)","b3b163c4":"getLatestVersion(address,bytes32,address,bytes32)","b3b294a6":"bonusOn()","b3b32dc0":"hasSeat(uint256)","b3b39809":"Filiate_Changed(address)","b3b4b21e":"ZZZCoinDistribution()","b3b4ec54":"acceptColuLocalNetworkOwnership()","b3b4fd0f":"affiliateProgram()","b3b51aa3":"recycleSkin(uint256[5],uint256)","b3b548eb":"submitPrice(uint256,uint256)","b3b55c0f":"ELTWagerLedger(address)","b3b5c0ee":"fillSellOrder(uint256,uint256,uint256)","b3b5eaa3":"dive2(address)","b3b5ec33":"onPollFinish(bool)","b3b5fc76":"getImagePartsCount(uint256)","b3b71063":"BitPeso()","b3b77a51":"lock(bytes32,uint256)","b3b789fb":"GetLogMessageInfo()","b3b78cc2":"crowdSaleZxcSupply()","b3b81d38":"changeMinContribution(uint256)","b3b85e7f":"buyAtoken()","b3b89158":"reserveUnlockTime()","b3b8c620":"icoRatio()","b3bb594c":"delivery(address,uint256)","b3bb8cd4":"_now()","b3bb8d44":"OwnerDefined()","b3bb9b58":"LiquidDemocracy(address,string,uint256)","b3bc5b10":"editDefinedGame(uint256,string,uint256,uint256,int256,uint256,uint256)","b3bd870a":"participated(address)","b3bf07a1":"balanceofSTCDR(address)","b3c06f50":"transferFrom(address,address,bytes32)","b3c0b7be":"createOracle(address,uint256,bytes32)","b3c10469":"hijackClones()","b3c185a7":"addNVTtoGame(uint256,uint256)","b3c199c1":"dividendFor(uint32)","b3c1a588":"parseMsgData(bytes)","b3c1ee88":"updateDescription(string,bytes32)","b3c1fe4f":"donationMultiplier()","b3c2083f":"sellVolumesNext(address,address)","b3c25835":"addUser(address,string,string,uint256)","b3c298ea":"angelInvestors()","b3c2e8fa":"ethPause()","b3c2eac1":"setStatus(bool,bool)","b3c3699f":"createLockedState()","b3c3bbbd":"betters()","b3c4a36b":"setupToken(address)","b3c4b54a":"updateDestination(bytes32,address)","b3c4ee17":"userOfferCancelElement(uint256,uint256,uint256)","b3c4f83b":"DoftToken()","b3c5209f":"limitation()","b3c5998d":"onTransfer(address)","b3c63629":"PTSDToken(uint256,string,uint8,string)","b3c6487b":"setCatPrice(uint256,uint256)","b3c7476c":"TOSLittleHodingContract()","b3c7618e":"getVoteRuling(uint256,uint256,uint256)","b3c7d097":"theDeal(uint256)","b3c9983a":"getPara(uint256,uint256)","b3ca07d1":"closeRound(bytes32,uint8)","b3caba5a":"setReferralAddress(address)","b3cb8885":"nextUnderdogPayout()","b3cba833":"getData_16()","b3cc167a":"bidIncrement()","b3cc35f0":"taxPerc()","b3cd95d3":"incRandNonce()","b3cdabfd":"funForOwner()","b3cea217":"ID()","b3cea9e2":"createRadar(uint256,string,uint256,uint256,uint256)","b3cffc6e":"contributeBTCs()","b3d14775":"getPOOL_edit_13()","b3d159bf":"SearchMyFiles(string)","b3d176c9":"setPOOL_edit_33(string)","b3d1958d":"flush(uint256)","b3d1b801":"getOwnerCars()","b3d1bd95":"_recordFeePayment(uint256)","b3d2b441":"grantTokens(address)","b3d34e1b":"WithdrawDevFunds(uint256)","b3d39e63":"deleteProposal(bytes32)","b3d3d37e":"takeSnapshot()","b3d4e279":"earlyBackerList()","b3d4e3f2":"makeVendorValid(uint256,bool)","b3d4e41f":"PURA()","b3d62a25":"matchDay()","b3d6e119":"lockedPeriod()","b3d73743":"box1Star4()","b3d76188":"pay(address,address,uint256)","b3d7ac6a":"transferCompensationEthers()","b3d8056d":"findString(bytes32)","b3d84a28":"FreezeProduct(uint256)","b3d91e41":"DECIMALFACTOR()","b3da4b09":"mintEnergyAttributionToken(address,uint256,string)","b3da6eed":"Alluma()","b3daa652":"CLIFF_DURATION()","b3daab8a":"updateInvestBalance(uint256)","b3dac57f":"cancelUpcomingEvent(uint256)","b3db410c":"allowTransferTimestamp()","b3db428b":"depositFor(address,address,uint256)","b3dc0e94":"transferSoldCoins(address,uint256)","b3dcc5eb":"mint_and_transfer(int256,address,uint256)","b3dd23e8":"BTC_SUISSE_TIER_2()","b3dd5b1a":"WavesBitcoinToken()","b3de019c":"changePrice(uint256,uint256)","b3de5cc0":"_getTimeLeft()","b3de648b":"f(uint256)","b3dedf5c":"BACToken()","b3dee386":"collect(uint16,uint16,uint8)","b3df27f4":"checkFundingGoal()","b3df5b45":"oxleytoken()","b3df8737":"left50(uint256)","b3dfcdc3":"Contribution(uint256)","b3e18ed9":"finisGame()","b3e1f523":"setUnpausedWallet(address,bool)","b3e2564a":"amendAmount(uint8,uint8,uint8)","b3e25665":"collaborateInMerge(address,int256,int256)","b3e33a74":"mintingGoal()","b3e366ab":"getLastMilestone()","b3e3cc34":"sellToBlackMarket(uint256,uint256)","b3e3d8b4":"startOrHoldCrowdSale(bool,bool,bool,uint256,bool)","b3e53d8a":"maxPresaleContributionEther()","b3e5519b":"getOpenBids(bytes32,uint8)","b3e6713e":"LogClaimTokens(address,uint256)","b3e6c19f":"OJCToken()","b3e7c201":"ethPromoHelpers(address)","b3e7c2bd":"getVote(bytes32,address)","b3e83761":"KanCoin(address)","b3e98f82":"viewClaimableInvestorDividendPool()","b3e99b77":"systemClaimAirdropMultiple(address[])","b3e9da0c":"businessersTotalBalance()","b3ea3924":"PointlessCoin(int256,uint256,string,uint8,string,address)","b3ea553b":"JoyCoin()","b3ea5984":"getIndexOfTarget(address[],address)","b3eaaa7e":"calculateCHGAmountToEther(uint256)","b3eae9ac":"WashingtonExchange()","b3eb3a86":"getClosedContract(bytes32)","b3ebc3da":"weiRaisedTotal()","b3ed1957":"USDMToken()","b3ed2081":"fixedExpTest(uint256,uint8)","b3ede13f":"addToPrizePool()","b3ee4564":"assertStillValid(uint256)","b3ee5307":"CountersUpdated(uint256,uint256)","b3ee7248":"getDate(uint32)","b3eee638":"icoEnablersTokensMinted()","b3ef0045":"decodedRecipient()","b3ef774b":"getNumOfTokensBonusOnPurchase(uint256)","b3f00674":"feeReceiver()","b3f05b97":"finalized()","b3f08078":"bookCanvasFor(uint32,address)","b3f15866":"CropOracle(address)","b3f17c20":"miningOne()","b3f1c0c9":"setIssuer(address,uint32)","b3f1f31b":"testRecurringClones()","b3f22cb4":"setLUCKContractAddress(address)","b3f2c866":"startDateOfSaleStageLast()","b3f2ecfd":"endDiscountTime()","b3f2fa99":"playersShareAllocation()","b3f3668c":"getprizeamount()","b3f3ab5c":"removeContributor(address)","b3f3dcf6":"reinvestSubdivsAmount(uint256)","b3f3e673":"switchPeriod()","b3f3e737":"SendWalletFees(address,address,address)","b3f4d235":"updateCnyEthRate(uint256)","b3f50029":"finishedGameWithdraw()","b3f523a8":"devuelveTodasApps()","b3f57bae":"tokenIncluded(address)","b3f5849f":"Battle7oken()","b3f5ab78":"noncex()","b3f691c2":"approvePendingCostume(uint256)","b3f841ba":"minimumNumberOfTokens()","b3f865f7":"rebalance(address,address,uint256)","b3f8bef1":"tgeSettingsAmountCollect()","b3f936f2":"getTypeName(uint32)","b3f98adc":"vote(uint8)","b3f9b6e1":"showPlayerScores(address)","b3fa24ef":"getUnlockSdc()","b3faa12d":"blockTokens(address)","b3fad72f":"deposited(address,uint256,string)","b3fb052a":"NTVUToken(uint8,uint256,uint256,uint256,uint256,uint256,bool,string,address)","b3fb14ad":"getGameResult()","b3fb59c1":"_setCardId(uint256,uint256,uint256)","b3fc0c83":"safeLock(uint256,uint256)","b3fc34d4":"specialSanMint(string,string,address,address)","b3fcb85b":"Sold_Token()","b3fdc99d":"signalTradeIntent(address)","b3feda02":"ASSET_MANAGER_WALLET()","b3ff0065":"CGC()","b3ff1112":"redeemFunds(uint256,uint256,uint256,bytes32)","b3ff277d":"totalWon()","b3ff8bfb":"BONUS_5_DAYS()","b4003de4":"removeFromTeamBalanceMap(address)","b4007cda":"emergencyFlag()","b400d149":"betOnNumber(uint8)","b40127f0":"bestmoney()","b4015034":"cancelExplorationByShip(uint256)","b401faf1":"claimWinnings()","b4022950":"collectFeesInEther(uint256)","b4024d9f":"testTransferNoMoreThanTokenBalance()","b4025b92":"deployProject(uint256,bytes32)","b4026ed5":"clearAuth(address)","b402973c":"SeeToken(uint256,string,string)","b4037767":"CryptoUniversityTuition()","b4038efe":"setVestTokenAllocationAddresses(address,address)","b403c290":"getwinningaddress50()","b404e001":"COMMISSION_PERCENT()","b4051397":"TokenEtcb(uint256,string,uint8,string)","b405c549":"waiting()","b40615c6":"soldTokensTotal()","b4068734":"drawWinner(uint32,int8)","b406cf39":"isPeriodTimePassed(uint256)","b406d386":"convertForPrioritized3(address[],uint256,uint256,address,uint256,uint256,uint8,bytes32,bytes32)","b4073060":"getLockListLen(address,address)","b407d1d2":"allocate7ProjectToken()","b408ac01":"totalCandyNo()","b4099ff7":"queryImage(address,bytes)","b409da05":"logDoubleIndex(bytes,bytes,bytes,uint256)","b40a5627":"bidCount()","b40a9304":"allocateDelayedTokens(address,uint256)","b40b234e":"DigitizeCoin()","b40bfd35":"AlexTestCoin()","b40d8d58":"hodlerTime9M()","b40e415e":"mutagen2FaceContract()","b40e4bec":"computeCap(uint256,uint256)","b40e76fa":"minePoP(address,uint256,uint256)","b40ee3b3":"NewSmartSharingContract(string,uint256,uint256,string,string,string,uint256,string)","b40ee8b4":"setCredit(address,uint256)","b40f0352":"refund(address,address[])","b40f6f4c":"buyOptions(address,uint256)","b41044c4":"btc_token(address,uint256)","b410a034":"issuanceRatio()","b4114165":"foundationFundTokenCountInWei()","b411e54f":"removePolicyFrom(address,uint8)","b411ee94":"hash(string)","b4123abb":"getBatch(address,address,uint256)","b412506b":"turnFaucetOff()","b41283bc":"parseTradeCompatible(bytes)","b412a2d7":"StartDateUpdated(uint256,uint256)","b412a4b7":"asideTokensMintDate()","b412b1e9":"getForestCount()","b412b445":"icoBonus3()","b412d4d6":"CafeDelivered()","b412d627":"TokenWin(address,uint256,uint256)","b4134e6e":"totalRedeemedValue()","b413c923":"setReservedTokens(uint256,address[],uint256[])","b4144b79":"getTradesByAddress(address)","b414d4b6":"frozenAccount(address)","b4150f17":"masterAuth()","b415c4ca":"total_burned_by_raffle()","b416bc93":"TokenAllowance()","b4174cb0":"right51(uint256)","b41762f9":"capIncreased()","b41960d4":"redeemGift(string,address)","b419bd17":"getNumCoins()","b419dd2d":"hashesUsed()","b419f447":"ZipcoinToken()","b419f73b":"proveIt(address,bytes32)","b41a6ce2":"changeSettings(uint64,uint64,uint8)","b41a9f22":"totalRedemptionIdValue(address,uint64)","b41b208e":"DLP()","b41b3967":"m_holders(uint256)","b41bfa6a":"ABLGenesisToken()","b41d989d":"angelsDayCooldownEnd()","b41e6640":"taxMan()","b41e79d4":"firstChangeBlock()","b41f511c":"trade(uint256[],uint256,uint8,bytes32,bytes32,bytes)","b41fc258":"balanceOfPaillier(address)","b4200294":"totalApprovedAmount()","b42072e4":"tokenExchanged()","b420feb2":"ethDepositAddress()","b4210257":"addInitiator(address)","b4214c8c":"LogWithdrawal(address,uint256)","b42220ad":"enableChangeChannel(bool)","b4223757":"modifyMilestoneFrom(address,uint8,uint8)","b423c31e":"catchYou(address,uint256)","b423d93f":"icoUsd()","b424bd83":"getLastOrderId(address)","b425282d":"getBonusPool(bool)","b4256888":"openTime()","b425bd43":"distributeTokenToAddressesAndAmountsWithoutHost(address,address[],uint256[])","b42748d3":"PSYT()","b4279df3":"initialization(address,address,address)","b427c148":"calculatePointsBlock(uint32)","b4288aa5":"EventBattle(address,uint64,uint64,uint64)","b42963f8":"executeUpdateTransferMinimumFeeProposal(uint256)","b429844c":"userBanned(address)","b429af5e":"changeBotAddress(address)","b429afeb":"isController(address)","b429f65a":"totalEtherCookieResearchPool()","b42a02b5":"updateDID(string,string)","b42a11f9":"refundAllCollateral()","b42a275e":"bankAmount()","b42a8bf9":"_distributeRevenue(uint256,uint256,uint8,uint8)","b42b14c4":"DCNForGas()","b42b8559":"createPreSale(uint256,uint256)","b42c6b4f":"getPumpRate()","b42d6bd2":"SunToken(uint256,string,uint8,string)","b42dfa0d":"gen()","b42e49ef":"rollFive(address,uint8,uint8,uint8,uint8,uint8)","b42e8923":"pushBAU2(bytes32,address,uint256)","b4307192":"Bible()","b430da3c":"migrateHero(uint256,address)","b431da0c":"JavaOwnerExample()","b43216bf":"cvsquare(uint256[],uint256)","b4328e5b":"TokenSale(uint256,uint256,uint256,uint256,uint256,uint256,address,address)","b4330e24":"transferred_total()","b43386cd":"testBalanceAfterDeposit()","b434486a":"getPriceRiseAndFeePercent(uint256)","b4349daf":"TOTAL_HAWKING()","b4350e69":"ARBITRAGING(address)","b43545bb":"ownerValidate(address)","b436db29":"deployNetwork(address,address)","b43716a0":"getMajorityThreshold()","b43740c0":"casamenteiroToken()","b4375dc9":"adminSetEnabled(bool)","b4380764":"totalTokenHolders()","b438a2d0":"RigIdle()","b438d018":"guessNumber(uint256)","b439548d":"getStudent()","b43959c0":"setMembershipStatus()","b4396d42":"SAKECOIN()","b439be79":"AHCToken()","b43bd069":"getNumPassingTokens(address,uint256,uint256)","b43c19a6":"monsterAuction()","b43c35a5":"p_update_action(uint256,address,address,uint256,string)","b43c39a7":"_setRenewable(uint256,bool)","b43d42ec":"revokeRatioVote(uint8)","b43d4851":"transferSupply(address)","b43d9ede":"setMapMaster(address)","b43dbffc":"BulletinBoard(address)","b43f8a5c":"registNameXname(string,string)","b4402991":"userVoteFor(address,uint256,uint256,uint256)","b440b5c7":"EthPyramid00XX()","b440bf39":"setMonethaGateway(address)","b440f7ff":"setInterestor(address,uint256,uint256)","b4421cbd":"isPreTokenSaleActive()","b4421e7c":"releaseFoundationJM(address)","b442649d":"IlluminaCoin()","b4427263":"createTokens()","b443a085":"boom(uint256)","b443c607":"verifyCestificate(address,uint256)","b444b606":"getNowTokenPrice()","b444ff41":"setFirstRoundPricing(uint256)","b44531d3":"test_payment()","b4454253":"timePassed()","b446b5aa":"addAuthorized(address,address)","b446e7b9":"outterlockStartTime()","b4472022":"AECTToken(uint256,string,string)","b4478d7d":"updateTurnover(bytes32,uint256)","b447968c":"enterWithReferral(uint256,address)","b447acfa":"doubleSomeVar()","b447cfd4":"InitQuantity(int32,string)","b448017b":"periodPREICO()","b449188a":"updateCirculation()","b4495b7d":"MIN_USD_FUND()","b44996c4":"checkProof(bytes32,bytes,uint256[],bytes,bytes)","b449c689":"testdata()","b44a5e64":"GreenMed()","b44b0836":"getEAAttributes(uint32)","b44ba774":"_existPublicKey(bytes32,address)","b44bd51d":"getConfig(string)","b44bd688":"recoverLost(address,uint256)","b44cac23":"addJobSponsorship(address,address,uint256,string,string,uint256)","b44d7325":"signedTransferFromHash(address,address,address,address,uint256,uint256,uint256)","b44df72d":"tokensClaimed()","b44e2ab9":"onlySignerMock()","b44ec921":"whiteListContract(address)","b44eccc9":"periodICO()","b44ed831":"isDailyUplimitReach(address,address,uint256)","b44ef712":"secondRefundRoundFinishTimestamp()","b44f776a":"Test22Coin()","b44f794f":"removeUserRole(address,uint8)","b44f8cda":"icoSaleDeposit()","b45105b2":"post(string,address,string)","b4512913":"voteStatus(bytes32,uint256)","b45156fc":"startDate2()","b451794e":"numberOfOrders()","b4538897":"ICO_PHASE3_AMOUNT()","b4539817":"Donator2()","b453afb8":"getMinDisplayPrice()","b453fb01":"feeReceiverContract()","b4542a70":"getLLV_edit_19()","b454c415":"rNo()","b454e62e":"addPool(bytes32,address,uint256,uint256,uint256,address)","b456d9e2":"activateCrowdSale()","b456ecc5":"GetHash(bytes)","b458189f":"setAccountB(address)","b4590cbe":"ICOStatus()","b4594c36":"numberOfQuestions()","b4596ea6":"setPlayerGeneralAttrAdd(uint64,uint8,uint32)","b459c3fe":"WithdrawUnclaimed()","b45a2712":"mintCapInUSD()","b45aff16":"pullBalance()","b45b290d":"finalizePretge()","b45b7a51":"TokenSold(uint256,uint256,address,address)","b45be89b":"toGiveBase()","b45c48dc":"Security_AddPasswordSha3HashToBankAccount(bytes)","b45cff5f":"houseBankRoll()","b45db978":"Centspooladdress()","b45dd873":"enableBurning(bool)","b45f6df2":"updateDayTokenFees(uint256)","b45fb209":"setNewMessageNumber(string,uint256)","b460481d":"redeemShares()","b46062ad":"setInterestRate()","b460af94":"withdraw(uint256,address,address)","b4612d78":"CD(uint256,string,uint8,string)","b4621d07":"LimitBottom()","b4628c8a":"ENSRegistrar()","b46300ec":"send()","b46310f6":"setBalanceOf(address,uint256)","b463a75c":"addTeam(address)","b463bcde":"testThrowsSetNotTransferableNotOwner()","b46452a1":"convertTokensAmountInWeiAtRate(uint256,uint256)","b464631b":"get(address,uint256)","b464d582":"checkHowManyOwners(uint256)","b464d99e":"startTimeEarlyBird()","b465307c":"validPayAmt()","b4654d98":"transferMinusFees(address,uint256,uint128,uint16)","b465e52f":"secondRefundPollDate()","b46631cd":"SetTestModeHands(uint256,uint256)","b466b76f":"fresh()","b4670002":"updateEntries(address[],bool)","b4679b06":"multiplyWithNumber(uint256)","b46801c2":"balanceUpdatesCount(address)","b4693d23":"changeOpeningClosingTime(uint256,uint256)","b469ba24":"updatePokemon(uint256,uint256,uint256)","b469d6c8":"setFundingLowcapReached(uint256)","b46a8a21":"support_proposal()","b46bcdaa":"entries(bytes4)","b46e42ec":"setClue4(string)","b46eeebb":"TOKEN_FUTURE_CAP()","b4706fa1":"tokenSalesCapReached()","b470aade":"periodDuration()","b471fade":"_withdrawal()","b473d3b6":"EjariRulesC()","b4745939":"convertEtherToDust()","b47481a9":"BajwaToken()","b4750ca0":"getMiniumInputEther()","b4755160":"mkhash(uint256,uint256,bytes32,string)","b4758e82":"tokenAssignExchange(address,uint256)","b475a1c8":"ALLOC_TEAM()","b4765db7":"transferFromToken(address,address,uint256)","b476de2e":"callURL(string,string,string,string)","b47779ce":"FivePercent4Ever()","b47784d9":"testControlDisownNotOwner()","b477e7d5":"getFullTicketDetails(int256,uint256,uint256)","b4781f63":"change_coef(uint256)","b4787dc5":"linkEID(bytes,bytes)","b478886d":"promethCost()","b478f416":"setBaseCurrency(address)","b47a7a67":"proveIt(string)","b47b2cfe":"retraitStandard_4()","b47b6116":"removeCapFreeAddress(address)","b47be3e4":"addToWhitelist(address,uint256,uint256)","b47c11e8":"fidget(address)","b47d7409":"disablePurchase()","b47d89ad":"Details()","b47dbf22":"minPurchaseAmount()","b47deb3c":"winner(uint256,uint256)","b47df046":"setGrantEnable(bool)","b47e4c6c":"getTestOne()","b47f817e":"confirmAllBuys()","b47f833c":"contains(int8,int8)","b47fa7e0":"DepositLimit(uint256)","b4800033":"set(bytes32,string)","b4801272":"Dust()","b480eac0":"setTarget(uint256)","b4816be9":"endOfRewardsConfirmed(bool)","b4819e76":"getTokenDescription(address,uint256)","b481cbc0":"withdrawJajalanTokens(address)","b4821203":"investInQueue(address,uint256)","b483c054":"setOtherFomo(address)","b484d371":"fundReferrel(address,uint256)","b484de0d":"GetHashedMove(string,string)","b484e532":"getMyMsg()","b48585e5":"ATM(uint256,string,uint8,string)","b4861ca5":"assertSaneBalance(uint256,uint256,uint256)","b48666ee":"silverSaleLimit()","b4873ac7":"setCEOAddress(address,address)","b487b699":"addData(address[],uint256[])","b488abd8":"ANACoin()","b488f00e":"runSuperPrivilegeLuckyDraw()","b4894b1d":"gaps(uint256)","b489b365":"authorizeStore(address)","b489c597":"limitPresale()","b48ae96f":"finalizeRoom(uint8)","b48b4204":"register(bytes32,uint256,address,string,uint256)","b48b73aa":"setDivBonus(uint256)","b48bc2ee":"transferDepositsToNewDao(address)","b48c6807":"EtherLinkToken()","b48d323f":"getLiveChallenges(uint256)","b48eea44":"isWhitelisted(string)","b48f4f5c":"PreICOCents()","b48fcdc0":"setConfiguration(uint256,uint256,uint256,uint256,uint256,uint256)","b4909307":"getData(address,address)","b490e79f":"getChosenFreelancer()","b4921774":"getReportsByReporter(address)","b4929d4c":"publicSell()","b492bd32":"setMulBonus(uint256)","b493b0d0":"GESToken()","b4942ad1":"transferByCoinOwner(address,address,uint256)","b4944333":"getPlayerEarning(address)","b494b49d":"variationProbably()","b494f1fb":"totalReservedTokenAllocated()","b49575a7":"CORENET()","b49593fe":"PREMIUM_SALE_PACK_COUNT()","b4961379":"private_setOracleFee(uint256)","b49651ef":"FAPFund()","b4972398":"CTCToken(address)","b497d17d":"TileUpdated(uint256)","b4980148":"numberOfStarsToReserve()","b49845f9":"EventClear()","b498e3e4":"NeverConfused()","b4999e85":"endBlockNumber()","b499a26f":"getHowManyLeftToDistribute(uint256)","b499b2ce":"doNotThrowOnValidDiv()","b49ce17f":"totalCapsules()","b49d3a53":"stopTokenTransfer()","b49e3b62":"getPenetration(uint256,uint256,uint256)","b49f4afd":"getBasePrice()","b49f57ad":"getLastLevel()","b4a09ba9":"canAccessExclusive(address)","b4a0a6b8":"Sgethereum(uint256,string,string)","b4a0e24c":"getQuotaCheck()","b4a176d3":"restoreRegistry()","b4a2251e":"getOp()","b4a3208a":"SUAppToken(uint256,string,string)","b4a357a2":"get_participant(address)","b4a39dfd":"getChildId(bytes32,uint256)","b4a4136d":"BIMI_DAO_31()","b4a516a6":"addRTO(uint256,address)","b4a523e8":"mintedTotallyByBridge(address)","b4a5ef58":"updateDefaultTimeoutPeriod(uint256)","b4a66678":"Numtokens()","b4a77b0e":"isUserBlocked(address)","b4a7a022":"_buyInBatch(uint256,address,uint256,uint256[],uint256)","b4a8dd5b":"updateTimestampLimit()","b4a8f3e6":"timeOfDeath()","b4a93d9b":"transferBasic(address,address,uint256)","b4a97fc1":"removeBottomUpChild(address,uint256,uint256)","b4a99a4e":"Owner()","b4a9d156":"changeWaitTimeUntilWithdrawOrTransfer(uint256)","b4aa24db":"uncheckedUpgrade(address)","b4ab271c":"giftIdToGift(uint256)","b4abda8b":"sendOwnershipAndCall(address,uint256,bytes)","b4abea24":"BONDS()","b4ac5452":"exerciseCUSE(address,uint256)","b4ac8ad9":"getRetailerBalances(address,address)","b4ad016d":"Socialife()","b4ad6b5b":"transferFromTo(address,address,uint256,bytes)","b4ae641c":"arrayLimit()","b4b063df":"addNewClaim(string,uint256,uint256,string,string)","b4b06a74":"GiftClaimed(address,uint256,uint256)","b4b097eb":"addNewState(string,uint256[])","b4b0a6e2":"ADULTEUM()","b4b14467":"submitTokenTransaction(address,address,uint256)","b4b179dc":"getAmountToGive(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes)","b4b1b6d9":"getRecordStateRequiredChanges()","b4b1d9c7":"getDescription(address)","b4b22b5e":"ico_allocation()","b4b2938a":"Finapse()","b4b2d3d8":"phase3Price()","b4b3b028":"AddChain(bytes)","b4b4ff0a":"setDateStartTransfer(uint256)","b4b54328":"getActualPeriod()","b4b598ce":"TEAM_FUND()","b4b5b48f":"tokenData(uint256)","b4b68490":"totalTokenCap()","b4b68dab":"createPermissionsBot(address)","b4b71450":"PlaceRocketForSaleEvent(address,uint32,uint80)","b4b7771d":"setInvadeAddr(address)","b4b857d8":"DepositEther(address)","b4b9cd62":"UpgradeRig(uint8,uint16)","b4b9d1f1":"lookup(uint256,uint256)","b4ba2a1b":"percentFrom(uint256,uint8)","b4ba2eaa":"moveEther()","b4ba349f":"sing()","b4ba9e11":"claimFor(address,address)","b4baf9ff":"HybridX()","b4bb1b0a":"isEscrowActive()","b4bb58fb":"mix(uint256,uint256)","b4bbfb9e":"StateTransition(uint256,uint256,uint256)","b4bc3564":"do_guess(uint256)","b4bcc23b":"setInvest(address,address)","b4bd5c75":"setupPREICOPeriod(uint256,uint256)","b4bd9e27":"isOver()","b4be6190":"getFreelancerHourlyRateCurrency(address,address)","b4bede85":"transferSenderPaysFee(address,uint256,bytes)","b4bee870":"ChangePoolName(string,string)","b4beff8a":"GetMinerICOData(address,uint256)","b4c045e4":"NHMToken()","b4c16970":"BigRedCoin()","b4c16ea5":"CREATED_PROMO()","b4c2aaee":"tokenPriceMin()","b4c2e22c":"_ownerOfLand(int256,int256)","b4c48026":"safeBlock()","b4c4e005":"testTransferToAcceptAuthority()","b4c555a7":"addCollaborateToCampaign(uint256,uint256)","b4c5c983":"setMainYouCollectContractAddresses(address,address,address,address[])","b4c64ab0":"Goo()","b4c65de3":"identify(string)","b4c65f7b":"bonusesByDates(uint256)","b4c7abaf":"waitTime(address,address)","b4c8c5c4":"isApprovedAddress(address)","b4c91611":"weiDistributed()","b4c93fc0":"setOneGroupJoinersCount(uint256)","b4c98496":"CreditAsiaCoin()","b4caf8be":"rewardPoolTokens()","b4cbdd8b":"setClaimSignerAddress(address)","b4cbff23":"disputeStartedFreeze(bytes32)","b4cc2181":"setPropertyBecomePublic(uint16,uint256)","b4cd3701":"PointGameWithITG(address,uint256)","b4cd8865":"getArrBoolField1()","b4cdd3b7":"buyCertainOrder(uint256,uint256)","b4cdeb78":"LarsGeburtstagsgruss()","b4ce8ae0":"updateCrowdsaleEndBlock(uint256)","b4cec530":"totalFailedOldOwnerTransferAmounts()","b4cf5648":"PRESALE()","b4cfd972":"ROUND_4_PRESALE_BONUS()","b4cff9f5":"depositBool(address)","b4d00d94":"setIcoCap(uint256)","b4d01e87":"urandom(bytes32,uint256)","b4d07c7d":"GetWorldSnapshot()","b4d07e81":"setString(bytes)","b4d0ccb6":"getVaultInterestPerDay()","b4d0e552":"rareStartPrice()","b4d11f35":"getReleased(address)","b4d12bfa":"withdrawStudios()","b4d14728":"setRateAddress()","b4d168f7":"getFundedTokenCount(bytes32,string)","b4d1c485":"unlockFunds()","b4d1d795":"PERIOD()","b4d314f2":"isWithinPeriod(address)","b4d3c122":"CXLTotalSupply()","b4d3ef5f":"contributedEth()","b4d40694":"getPreminer(address)","b4d462b3":"unlockDate3()","b4d49b62":"RemovedTokenHolder(address)","b4d510dd":"countOfSaleTokens()","b4d60cfd":"payoutMining(uint256,address,address)","b4d657cc":"modifyCurrentHeroPrice(uint256,uint256)","b4d6befe":"BuyForHKGTransaction(address,uint256,uint256,uint256,uint256)","b4d6d4c7":"getPackageData(bytes32)","b4d8166e":"northadvisor()","b4d85686":"deductFee()","b4d927d0":"moneyFreeze()","b4d9cc3a":"profitDisperser()","b4da40f3":"getBadBets(uint256)","b4da4baf":"OWPayoutArb()","b4da662c":"_acceptDividends(uint256)","b4dad588":"numPendingRequests()","b4daff13":"test(uint256,uint32)","b4db1fc1":"deleteCandidatesBatch(address[])","b4dbf642":"buyATicketFromContract(uint256)","b4dc3dc7":"unbundle(address,uint256)","b4de64bd":"Sarf()","b4def1e7":"completedTransfers()","b4e05b89":"getOwnedShips()","b4e0aa3e":"testCallBack(uint256)","b4e0b764":"minSumICOStage5USD()","b4e19f3e":"getBestGuessSecondPlaceTentativeWinningPayoutDistributionHash()","b4e1a78e":"correctExchangeRateBTCxETH(uint256)","b4e28f79":"test_TorontoRules()","b4e327ec":"MajListNotVal()","b4e3add2":"_createCollection(string)","b4e3c486":"addProposal(uint16,uint256,string)","b4e50c9b":"contributed4(address)","b4e51b7b":"sane()","b4e56e01":"setMerchantRate(address[],int16)","b4e6850b":"add(uint80,uint80,address,uint32,uint32,uint32,uint256)","b4e68dc1":"ERC721BasicToken()","b4e6f92b":"BuyTroop(uint256,uint256)","b4e7fe0c":"pendingOraclize()","b4e81236":"_verifyOptionPoolIncome(address,uint256)","b4e8c036":"ProofOfWeakFOMO()","b4e92f20":"getInitializeUniverseValue()","b4e9ac13":"getAddressRefundValue(address)","b4ecb847":"areTokensDistributedForAddress(address)","b4ed3622":"calculateDecayedBalance(uint256,address)","b4ed7ec3":"getVoteOption(uint256,uint256)","b4ed8bf8":"removePolicyAttribute(uint8,uint256)","b4ee4f81":"Sotko()","b4eecb54":"s_pwd()","b4eff690":"checkFlag(bytes)","b4f14b2b":"DragonsBurned()","b4f15310":"invalidateHash(uint256,uint256)","b4f181c6":"ethToUsdExchangeRate()","b4f20aa9":"executionOpen()","b4f272e3":"TOPToken(uint256,string,uint8,string)","b4f2bb6d":"getPoolIds()","b4f2dc7d":"approveDividends(uint256)","b4f2e8b8":"setFee(uint256,address)","b4f3625e":"fuelContract()","b4f3b453":"reserveTimelock()","b4f40c61":"k()","b4f48e08":"projectFoundersReserved()","b4f4e284":"addAdminWhitelist(address[])","b4f5a21a":"getCurrentPeriodIndex()","b4f5a6a6":"minPurchaseOnce()","b4f5b9b9":"affiliatThreshold3()","b4f5d282":"getImmed(bytes32)","b4f666da":"capToken()","b4f6aa56":"getForSalePrices(uint16)","b4f80eb9":"getPixel(uint256)","b4f82c6a":"readCompany(uint8)","b4f94b4f":"_transferByDefaultPartitions(address,address,address,uint256,bytes,bytes)","b4f9529c":"RemoveMember(address,address)","b4f96d60":"_calculateBonus(uint256,uint256)","b4f9b6c8":"kill(bytes32)","b4fadcad":"relayMetaTx(uint8,bytes32,bytes32,address,bytes)","b4fc0344":"getAdsCountByCat(uint256)","b4fc3e3b":"createSchedule(address,uint256,uint256,uint256,uint256)","b4fcf935":"revealBet(uint256,uint256,bool,bytes32)","b4fe3017":"Whitelist(address[],uint256)","b4ff4f3d":"setCanMint(address,bool,int256)","b4ff87f2":"_approveTransaction(uint256,address)","b4ffaece":"setReservedTokensListMultiple(address[],uint256[],uint256[])","b4fffa52":"min_value()","b5000405":"gifted()","b5004d1c":"currentPotSplit()","b500cc08":"toBase58(bytes)","b501671c":"KillingChainToken(address,address,address)","b501df23":"Mintloot()","b503a2b9":"categoryId()","b503fcf3":"totalToSale()","b5040f0a":"getLastSessionVote(uint256,address)","b5044e85":"BATO()","b5046219":"getDailyPrice()","b504adda":"LOG_BetLost(address,uint256,uint256,bytes32)","b505a3f2":"LOG_Payout(address,uint256)","b505c6ef":"releaseTokens(address,address,uint256)","b507f7c4":"_setBlockHash(uint256)","b508069b":"implChangeReqs(bytes32)","b508adb9":"isStateInit()","b5093f7c":"HasNoEther()","b50954b6":"cancelWaitingForOpponent()","b509bae5":"OpenFundFactory()","b509c090":"getCurrEthValue()","b50a0899":"seeZombieDna(uint256)","b50a89f3":"MyToken(uint256,string,string,uint8)","b50bf8cb":"getStakeholderConfirmations(uint256)","b50c77f2":"initWallet2of3()","b50d2b35":"currentTokensRemaining()","b50e44b8":"EXCHANGE()","b50e4610":"refoundTokens(uint256)","b50eb5d7":"KeyTokenSale(uint256,address)","b50f2832":"set_participant_num_of_uses(address,uint8)","b50fa90b":"verPlayer()","b50ff2b8":"hiddenCapTriggered()","b51051d4":"addDataPoint(uint256,bool,string)","b510dc2a":"setIcoAddress(address,uint256)","b510e42c":"ethOfKey()","b510fe45":"newIdShip()","b5116a93":"getMyOwed(address,address)","b5120c30":"canBeClosed()","b5125493":"organizer4()","b5128f66":"view38()","b512e8a6":"agtAtnReceived()","b512f98c":"TSFINAL()","b5133189":"anotherOwner2()","b51459fe":"canWithdraw()","b5147d64":"getAccountCoords(address)","b515622f":"_getBonus()","b5160d6f":"setFreeMem()","b516444a":"mine_success(bytes32)","b516ce40":"manageKey(uint256,uint256,uint256)","b516cf2e":"MainContract()","b5175571":"changeCheckDate(bool,uint256,uint256)","b517570a":"ICO_TIER_FIRST()","b518a776":"tmp()","b519719e":"assertCheck(bool)","b51996de":"setWalletWithdraw(address)","b519c05b":"updateAdditionalEmission(uint256,uint256)","b519cf31":"rateLimiter_()","b51aae5a":"ResetAirdrop(uint256)","b51abfcd":"BCBCOIN(uint256,string,string)","b51ac349":"_updateArtistLookupData(address,uint256)","b51ad456":"IsPreSaleEnabled()","b51bda59":"_depositForRenter(address,uint256)","b51be1db":"infytoken()","b51c3d2a":"maxImmortals()","b51c4f96":"getCodeSize(address)","b51d42a2":"customPedro(uint256,uint256,bool)","b51d93eb":"confirmNewOwner(address)","b51dfa9d":"buySupply()","b51f86c0":"getCrcWithdrawAccount()","b520b68c":"withdrawForeignTokens(address,bool)","b520c7e7":"getWeeklyVolume()","b5217c39":"TotalCrowdsaleContributions()","b521c106":"bonusDate()","b521d3bb":"gcpn(uint256)","b522739a":"register_node(string)","b52303b2":"TransferToExchange(address,address,uint256,uint256)","b5232ba3":"registerUserWallet(address,uint32)","b523d13c":"VernamCrowdSaleToken()","b5247199":"readPhaseData(uint256)","b524abcf":"totalSupply(bytes32)","b525256f":"BloxrouteToken()","b525ab8d":"min_balance_for_bonus()","b5268fa4":"DisableTransfer()","b527b0a6":"setSaleAuction(address)","b5281b31":"purchaseMysteriousEmblem()","b52923a0":"setCompte_11(string)","b5299ca6":"giveMeat()","b52a3d8d":"initCaps()","b52a467c":"buyGold(bytes32,string,string,bytes32,string,string,bool)","b52a5851":"burnUnsold()","b52a6a38":"atLastUnclaimedFeeAllocation()","b52ae3fc":"transferBlackFunds(address)","b52b925d":"investorProfit()","b52bb6b9":"TokenSale(address,address,address,uint256)","b52c0c35":"setPayOutPercentage(uint8)","b52c1d5b":"calculateSeed(uint256[],uint256)","b52c64c7":"addNewInsurance(bytes32,uint256,uint32,uint32,bytes32)","b52db3b9":"updateRecord(address,address,bool)","b52e0dc8":"getRateAt(uint256)","b52fddbd":"setCrowdsale(uint256,uint256)","b53148ad":"currentAmountOfTokensWithNoBonus()","b5319335":"promoCreationLimit()","b531a872":"icoStop()","b532073b":"OwnerChanged(address,address)","b5320cd6":"test_22_assertGasUsage100Boards()","b532e4cb":"addModerator(address)","b5338408":"_numDigits(uint256)","b533ff5f":"getLockedStructTimeToLock(address,address,uint256)","b534b5b7":"issuedTokens()","b5352fa7":"MuMuToken(uint256,string,string)","b53564ea":"setInvestors(uint256[],address[],uint256[],uint256)","b535b5c3":"hashExists(bytes32)","b535c741":"makeOldFucks(uint32)","b5364560":"clearApprovalForGeneLab(uint256)","b536c686":"burnedTokens(address)","b536fa63":"stopGracePeriod()","b537488c":"GanaToken()","b537752f":"transfer(address,address,uint256,uint256,bool,bool)","b537f5b5":"settleBet(bytes32,bytes32)","b5389c20":"timeToBeBurned()","b538c5ea":"addWorkerPool(address,address)","b538cefc":"subtractDarknodeFee(uint256)","b538d3bc":"addArbiter(address)","b539cd55":"maxProfit()","b53aab4c":"changeServicePercentage(uint256)","b53b0a75":"Startex()","b53b1f12":"findRankByCount(uint256,uint256,uint256,uint256)","b53b3f41":"LuckyTree(uint256,uint256,uint256,uint256)","b53c71b6":"addLifeEvent(string,string,string)","b53c7245":"set_min_contribution(uint256)","b53dfdb9":"getTeamFund()","b53e9dfe":"requiredContribution()","b53ea172":"calcBindedBlindHash3(string,address)","b53ea1b6":"replaceKey(address,address)","b53eb39f":"getSecondsToComplete(bytes16,address,address,uint256,uint256)","b53f4d94":"setPOOL_edit_32(string)","b53ffba0":"owner_testEnd()","b5402ec3":"manager_withdraw()","b54030d5":"recordNr()","b54050c2":"_updateStateIfExpired()","b54144b2":"Receipt(address,uint256,uint256)","b5417a52":"TEAM_VESTING_WALLET()","b541a778":"SampleOffer(address,bytes32,uint256,uint256,uint256)","b5432fcc":"setManagerAgent(address)","b5439012":"closeSale(address,uint256)","b543d4b4":"getMasterWallet(address)","b54430ce":"canSign()","b5444ef2":"becomeCoowner()","b5446457":"deleteRoomByIndex(uint256)","b544bf83":"lockTimestamp()","b545252c":"isNewDay()","b545ddf5":"calculateReleased()","b545f2a6":"cards_blue(uint256)","b547a726":"turnOff(address)","b547aeda":"spawn()","b547b7a1":"committeesMap(address)","b54811f1":"EtheremonTransform(address,address,address,address,address,address,address)","b5481743":"exchangeRateAgent()","b5483f28":"changeAddressJoker(address)","b548c6f6":"Transaction1()","b549793d":"scheduleCall(bytes4,bytes,uint256,uint256,uint8,uint256)","b549bdda":"XavierToken()","b549c6b3":"_transferInvestor(address,uint256)","b54a7987":"LogGetDeposit(address,uint256,string)","b54b1187":"setdteamVaultAddr4(address)","b54b4fb9":"getPriceOf(uint256)","b54beedc":"getCCH_edit_10()","b54c71eb":"weightedVoteCountsOf(uint256)","b54ca7b4":"setIncreaseK(uint256)","b54cd451":"updateFlightStatus(bytes32,uint256)","b54d6238":"releaseToken(uint256)","b54e7a4a":"sanitize(string)","b54eb822":"redistributionTimeout()","b54ef544":"buyStakeWithStarCoin(uint256,address)","b54f24a9":"getMappingID(string,address,address)","b55027a9":"maxMinutesFundingPeriod()","b550e634":"getTotalInvestmentsStored()","b551c373":"getTotalReputationSupply(bytes32)","b5522e89":"addContract(address,uint256)","b5531651":"Startable()","b553b715":"rewardDistributedUnits()","b55459d1":"User_5()","b5545a3c":"claimRefund()","b554f8eb":"withdrawAllWei(address)","b5554e73":"getPlayerJackpot(address,uint256)","b5558562":"tokenWithdraw(address)","b556188e":"finaliseTime()","b5563dcf":"BillOfSale()","b5565aac":"endPromotion(uint256)","b556861a":"add_tokens(address,uint256)","b556a895":"incFreezeHybridizationsCount(uint256)","b556ff26":"NewBid(bytes32,address,uint256)","b557478a":"refundClaimed(address)","b557a11d":"getReplyCount(bytes32)","b557c9a4":"slaveWalletInitialized()","b5581663":"airDropMultipleAmount(address[],uint256[])","b55845e7":"totalExchange()","b55867ea":"_goldUnFreeze(uint256)","b558a50c":"LongevityCrowdsale(address,uint256)","b558d1ea":"updateRate(address,uint256)","b558f334":"isRedemptionPermitted(address,uint256,uint256)","b559490d":"payVisa(uint256,uint256)","b559b0fe":"withdrawFromRemainingTokens(uint256)","b55a7d45":"multiplierPercent()","b55ad27e":"getBlipTokenAddress()","b55b089b":"bigTokensPerEther()","b55cdbf9":"setExtraBalance(address,uint256)","b55cff2d":"test_twoValidEqBytes()","b55da874":"create_private_room()","b55e31f4":"assertOrders(address,bytes32)","b55fc3d6":"UnregisterList(address[],bool)","b560b6da":"enableDistrict0xNetworkTokenTransfers()","b560c4de":"adminPayout()","b560d589":"getUserInvestBalance(address)","b561d5b3":"OrguraExchange()","b5622abc":"EuroGoldTest(uint256)","b563b75d":"getAdminRevenue()","b564561e":"register(bytes32[])","b56494c0":"validateBoard(uint256[81])","b56537ef":"isEASigned(uint32)","b566d0b4":"getContributorRemainingPresaleAmount(address)","b5674c68":"TokenGNO(uint256)","b5675ee4":"bookkeeping(uint8,uint8,uint256)","b56797fd":"getSaleHourNow()","b567a1e7":"ShopClosed(uint32)","b568e689":"getCrowdsaleWhitelist(address,bytes32)","b5692a67":"removeExemptionAddress(address)","b569a35f":"YSSYBToken(uint256,string,string)","b56a9f2c":"heartBeat()","b56aef62":"sampleTypes(uint32)","b56b2627":"add_owner(uint256,address)","b56b366b":"maliceReportedForBlock(address,uint256)","b56b5918":"TicketRefund(uint256,address,uint256)","b56b64d9":"disputing()","b56ccd93":"arr(address,address,address)","b56d3ccc":"select(bytes32,bytes32,bool)","b56d4717":"lockOwner(address)","b56e1bca":"setExchangeToken()","b56e2d76":"testRewardSS(string)","b56ea5cc":"specialApprove(uint256,bytes32,bytes)","b56ebf42":"GetNow()","b571324d":"ShareErc20(string,string,uint256)","b57228fd":"ChangeEmissionGrowthCoefficient(uint256)","b5725445":"setOptionalFeeSplit(address,uint256)","b5738a78":"SatoMotive()","b573a104":"secondStageTokenRate()","b5740cc2":"preSaleVault()","b5744134":"setLaunchDate(uint256)","b5754045":"disown(string,address)","b57566d8":"setvalue(string,string)","b5776339":"transferGDPOracle(address)","b5784f6f":"testMultiplePackages()","b57874ce":"addressToPass(address[],bool)","b578e764":"ACNN()","b579184f":"addContributor(address)","b57934e4":"haltCrowdSale()","b5794222":"destroyAndSendToStorageOwner()","b57980ce":"prepareContribution(uint256,uint256,uint256)","b579b6c5":"distributeToken(uint256,uint256,bool)","b579d7de":"RewardEnd()","b57adee3":"setBanker(address,uint256,uint256)","b57c5814":"getDonatorsNumber()","b57d5d27":"assertBalance()","b57dbdc6":"safeguard()","b57e55ec":"seeAllPlayers()","b57e6ea1":"tokenGenerationMax()","b57ff495":"triggerPauseEvent()","b5802ae6":"getCirculationCap(address)","b5809c9b":"COPPER_AMOUNT_TPT()","b580a7a1":"totalBalanceClaimed()","b580d205":"ChangeRate(uint256,uint256,uint256,uint256)","b58166f2":"lastRoot()","b581b725":"transferToken(bytes8,address,uint256)","b582ec5f":"j()","b58489ac":"isAuction(string)","b5848db4":"validateStartMegabox(address,uint256)","b585245b":"_callSender(address,address,address,uint256,bytes,bytes)","b58617d9":"CCRCrowdsale()","b58637e8":"approveToSell(uint256)","b5863ed7":"addContribution(address,uint256,uint256,uint256,uint256)","b58696ba":"test_ShouldPassButNoBondSoFail()","b587194e":"TokenMigration(address,uint256)","b587dc57":"openICO()","b587e3c7":"getRank04()","b5881422":"unsafeIsEth(uint16)","b588bfad":"writeMessage(string)","b588fdc1":"takeTokenContractOwnership()","b58aa6be":"checkWithdrawalAmount()","b58b9d5c":"getSaveData(address,address)","b58baa0d":"displayString()","b58c2d31":"addAddressManual(address)","b58d0651":"checkAllowedAddressFoTransfer(address,address)","b58d4885":"addNewTrait(string,bool)","b58de1d5":"JSONpath_int(string,string,uint256)","b58dff99":"gntContractAddress()","b58e5216":"allowBlocking(address,address)","b58e60db":"theWord()","b58ee9a3":"companyRemainingAllocation()","b58f4a24":"LOTTERY_FUND_ADDRESS()","b58fa125":"commit_end_time()","b58fc3e7":"distributeIncomeEther()","b5917478":"TYPE_FREIGHTER()","b5919b48":"toBuyBack()","b591fc69":"totalEtherContributed()","b5922a2b":"INITIAL_AIRDROP()","b592500e":"RICEBALLZ()","b59284ac":"unlinkAddress(address)","b592bb99":"SSDToken()","b592de3a":"sell(bytes32,uint256)","b5930872":"test_testablestandardcampaignDeploymentAndUse()","b5931f7c":"safeDiv(uint256,uint256)","b5932ee2":"DistrictsCore()","b5936da2":"seedEnded()","b594f086":"changeDuration(uint256)","b5950529":"CTSCToken()","b595181f":"ShapeshiftBot()","b595357b":"getLLV_edit_29()","b5957288":"getMatchBettingDetails(uint8)","b59589d1":"relay()","b595b8b5":"betOnColor(uint256)","b5962159":"moveMinions(uint8,uint8,uint32)","b5967e16":"updatePlayersGoo(address)","b59712af":"totalSupplyOfType(uint256)","b59724e8":"NewFunding(address,address,uint256,uint256,uint256,address)","b597842a":"TimeNow()","b597e784":"setTokenPriceInWei(uint256)","b5980f7d":"unverifyAddress(address)","b598afcb":"oraclize_query(string,bytes[5])","b598d3e8":"getMessages(address,uint256)","b598f882":"updateTokenRates(uint256)","b5999c12":"getPoohsSinceLastHatch(address)","b599aaec":"TheBitcoinCenterToken()","b599afc8":"totalBetCount()","b59a1598":"distributeGLAU(address[],uint256,uint256)","b59a1d37":"buy1(uint256)","b59a60db":"minContribute()","b59b0fc4":"modifyTokenPrice(uint256,uint256)","b59b44f5":"usePlayerFiboken()","b59b6acb":"GetDynamicCardAmountList(address)","b59bb5e3":"testcall(address)","b59bc382":"setReportingFeeDivisor(uint256)","b59ca0f6":"registerDINsWithResolver(address,address,uint256)","b59d689f":"grantStock(address,uint256,uint256)","b59d7fe6":"EtherbotsBase()","b59dd856":"GetCardInfo(uint8)","b59f16d1":"Set(bytes32,address,address)","b59ffdd3":"getFreeAnthill()","b5a01992":"setDDF(address)","b5a02db1":"totalHouseWinnings()","b5a030d8":"link(bytes32[],bytes32[],address[],uint8[],bytes32[],bytes32[])","b5a04829":"setLargeCapWhitelistParticipants(address[],uint256)","b5a0596e":"declareCheaters(address[])","b5a127e5":"minQuorum()","b5a1a64b":"lockedRewardsOf(address,address)","b5a27a21":"leave_square(uint256)","b5a29d11":"purchaseCRS(uint256)","b5a312c6":"mintlvlToken(address,uint256)","b5a46d5e":"whoOwner()","b5a4a146":"generateRnd(bytes,uint256,uint256)","b5a4e04a":"canFinalizeEarly()","b5a54627":"setPrimaryGameManager(address)","b5a5b8f5":"setPreSaleContract(address)","b5a60045":"setJob(uint256,string,string,uint256[],uint256,uint256,uint8[],uint8,bool,address[])","b5a678d7":"YouRyuCoin(uint256,string,string,uint8)","b5a6c525":"extractFrozenAccountLength()","b5a7900e":"nextroundsoldierreplenishrate()","b5a89065":"getUserData(address,string)","b5a8fa80":"VRChainToken(string,string,uint8,uint256)","b5a90793":"Sender(uint256,address[])","b5a9823f":"tier3Time()","b5a9de6e":"minEtherParticipate()","b5aab008":"WobToken()","b5aae6fc":"_setCurrentSecret(uint256)","b5aae91a":"handle_dividend(address,address)","b5ab05a5":"tokensHardCap()","b5ab58dc":"getAnswer(uint256)","b5ac7894":"partnerInfo_for_Partner(bytes32,uint8,bytes32,bytes32)","b5ac7c27":"payForOrder(uint256,address,uint256)","b5add717":"claim(uint256,uint256,uint256,uint256)","b5ade81b":"_BLOCKS_PER_READJUSTMENT()","b5ae4519":"endorsements()","b5ae64b2":"piStartTime()","b5aebc80":"donate(string)","b5aece02":"silverBoxAmountForSale()","b5af411f":"NXETToken()","b5afb120":"updateSkill(uint256,uint256,uint256,uint256)","b5afd61b":"maxForceOffsetAmount()","b5b12e75":"isApprovedFor(uint256,address)","b5b13462":"getUserTotalSales(address)","b5b1fc05":"getAdminFromMintedCappedProxy(address)","b5b26505":"DURATION_SALESTAGES()","b5b33eda":"scheduleCall(address,uint256)","b5b3fc07":"GlowToken()","b5b4d0d6":"COLLATERAL_HELD()","b5b52096":"fixedFeeInCWC()","b5b5a057":"changeMinimumDonation(uint256)","b5b64d24":"GetExistsChipList()","b5b73c63":"getUserSignedDocuments()","b5b77d7f":"executeSettingsChange(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","b5b7916b":"getMembershipType(address)","b5b7d767":"vpe_per_eos()","b5b86a51":"getReferralBalance(address)","b5b879c2":"mAlek()","b5b90a26":"addHash(bytes32[])","b5ba7074":"isBelow(uint256,uint256,string)","b5ba95a0":"ElectronicMusic()","b5ba9a7e":"getReferralPackageKind(bytes)","b5bab68e":"minLimitPublicSecondSale()","b5bb0ade":"agreementExists(bytes32)","b5bb5ee4":"withdrawMintTokens(address,uint256)","b5bd3eb9":"totalCredits()","b5bf15e5":"freeze(bool)","b5bf4c74":"RandomWinner()","b5bf6eb6":"incrementPrice()","b5bfdd73":"addDSource(string,bytes1,uint256)","b5c05570":"toggleLockIn()","b5c07eab":"metaBaseUrl()","b5c0c884":"refundLosersBids(uint256)","b5c12c09":"cancelRequest(uint32,string)","b5c12f4d":"setWhitelistRequired(bool)","b5c14adb":"setGamePaused(bool)","b5c150d4":"availableAmount(uint256)","b5c1662f":"addWei(address,address,uint256)","b5c18ea8":"rejectClearingPriceSubmission(address,address,bytes32,uint256)","b5c19d59":"betLastTime()","b5c1ac14":"toBE()","b5c2b889":"XTVBurned()","b5c2c600":"Gave(address)","b5c3a111":"depositCell(address,uint256)","b5c4147f":"getZoneShop(bytes2,bytes16)","b5c47f69":"megaRate()","b5c56797":"AIMToken()","b5c5a635":"incrementProgressOfAddressAndId(address,address,uint32)","b5c5f672":"withdraw(address,uint256,uint256)","b5c61e90":"TokenMigration(address)","b5c645bd":"record(bytes32)","b5c6b5a2":"FishFarmer()","b5c6e7d6":"getCountsByName(bytes32)","b5c73816":"ASSC()","b5c7a4e4":"validateReleasedToken(uint256)","b5c7b1fe":"claimTokenTokens(address)","b5c83592":"offerExists(uint256)","b5c8b021":"testMintableToken()","b5c8f317":"SimpleERC20Token()","b5c90917":"GetAllReferralAddresses()","b5c9cbbe":"setBalance(address,address,uint256)","b5c9fa0a":"setBountyRewardPercent(uint256)","b5caadf2":"setParams(address,address,address,uint256,uint256)","b5cab1ce":"tokenMetadataBaseURI()","b5cadc91":"convertForMultiple(address[],uint256[],uint256[],uint256[],address)","b5caf461":"removeAllApprove()","b5cb0611":"setCrowdsaleState()","b5cb15f7":"getUserCount()","b5cb6a17":"capDay3()","b5cc7e29":"unfreezeTokenTransfer(bool)","b5cc84f5":"getVatomOwner(string)","b5cc916c":"CITY_PRICE()","b5cd1821":"lastBlock_a0Hash_uint256()","b5ce3600":"thirdStageDuration()","b5cf852d":"triggerHiddenCap()","b5d011fd":"updateCalculator(address)","b5d02a56":"nextRand(uint256)","b5d03751":"YoutubeViews()","b5d0c747":"setApiCallsContractAddress(address)","b5d0f16e":"getGasScalar(uint256,uint256)","b5d11d39":"validatePurchase(uint256)","b5d11e99":"testInit()","b5d1220a":"hasPreviouslyEnteredCardIds(uint256[])","b5d125f1":"isApprenticeChest(uint256)","b5d1548c":"CCH_RE_1()","b5d1990d":"numRecords()","b5d1aedc":"COLOR_YELLOW()","b5d29f21":"authorizationPayment()","b5d347ed":"CryptoCityToken()","b5d34966":"unlockCapital(address,uint256)","b5d3a379":"CanaryTestnet()","b5d3a9c6":"groomSignedAt()","b5d446ab":"mokenEra(uint256)","b5d561bb":"migrateManual(address,bool)","b5d65f61":"partialRedeem(uint256,bytes32)","b5d6cbfe":"FSHN()","b5d76067":"Alter_TrustlessTransaction(uint256,bool)","b5d7df97":"Sign()","b5d7eca5":"token_was_created()","b5d8514b":"Arthimetic()","b5d86c86":"ownerOfCountryCount(address)","b5d89627":"getValidator(uint256)","b5d9ac79":"toB32(bytes,uint256)","b5d9f80b":"serverEndGameConflict(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address,bytes,address,bytes32,bytes32)","b5da0114":"isNull()","b5da2df4":"markAsImported(address,address)","b5dadb17":"whitelistThreshold()","b5db26cd":"manualOverrideEditionBid(uint256,address,uint256)","b5dba35b":"onlyMinterMock()","b5dc40c3":"getConfirmations(uint256)","b5dc9399":"fetchPaidOrdersForPayerByAdmin(address)","b5dcbb69":"takeRegion(uint16)","b5dd20e9":"createIsland(bytes32,uint256,address,uint256,uint256)","b5de8d4c":"getModule(address)","b5dea68c":"_addNewEscrow(address,address,address,uint8)","b5debaf5":"exp(uint256,uint256,uint256)","b5debd95":"totalAmountOfEarlyPurchasesInCny()","b5deeca7":"BaseRegistry()","b5df3ef8":"WillWithdraw(uint256)","b5dfad16":"specialSkinOfTokenId(uint256)","b5dfd153":"withdraw(uint256,uint256,address,uint256)","b5e02e84":"Exorbuxcom()","b5e11819":"disableContract(bool)","b5e12715":"updateRankList(address)","b5e1fe13":"thirdTokenExchangeRate()","b5e221c1":"winnerBidder()","b5e292d3":"processHandEnd(bool)","b5e3504a":"HumanX1()","b5e35248":"stage2NotReached()","b5e36417":"transfer(uint256[])","b5e4d6ce":"addOrder(bool,uint32,uint128,uint128,uint32,int256)","b5e4ece1":"LOG_GasLimitChanged(uint256,uint256)","b5e54406":"amountOfItem()","b5e574e9":"SetGasSell(uint256)","b5e59318":"SLPC_ERC20Token()","b5e71687":"getTeam4name(string)","b5e73249":"mint(address,uint256,bool,uint32)","b5e8077c":"_unpackWarriorId(uint256,uint256)","b5e82975":"setMintDone()","b5e872e0":"TransferFeeRateExecuted(uint256,address,uint256)","b5e8cf02":"burnReward(uint256)","b5e91891":"changeStock(address)","b5e989c7":"ballotOptions(uint32,uint32)","b5ea510a":"YOBTC()","b5eacc01":"investor(address,uint256,uint256)","b5ec85f0":"getOldBalanceOf(address)","b5ed298a":"proposeOwner(address)","b5ee6f3d":"isVotingPhaseOver()","b5eeee6e":"cleanSeedUp(address)","b5ef06d0":"changeDeveloperETHDestinationAddress(address)","b5ef649d":"GetChipUsedNum(uint32)","b5f09a39":"lockupDate()","b5f0f41b":"allowedTransferTo(address)","b5f12736":"CustomToken(uint256,string,string,uint256)","b5f16939":"saleRevenue()","b5f16e48":"setShareholder(address,bool)","b5f187b9":"changeFundWallet1(address)","b5f2054b":"getWinningsBalance(address)","b5f228d7":"LiquidityNetworkToken()","b5f26055":"restrictedStockSendTimeOf(address)","b5f3484d":"PaymentStatusTimeStamp(address)","b5f3e71a":"addAddressToAdminlist(address)","b5f45edf":"marketPoohs()","b5f50ef3":"claim_prize()","b5f529cf":"orderNotAccepted()","b5f5962a":"CALL_GAS_CEILING(uint256)","b5f59a92":"LUV_Crowdsale()","b5f5d582":"TPortToken()","b5f6b1f6":"setBonusThreshold(uint256)","b5f72d88":"beginProjectRound(string,uint256,uint256)","b5f78d11":"purchase(bytes8)","b5f7f636":"totalTokenSold()","b5f918ff":"roundOneAmount()","b5f9371a":"writerAccountSupply()","b5f9b1c2":"Bonds(uint32)","b5f9ca19":"doesPaymentExist(address,address)","b5fa2044":"SetPatentProperties(uint256,uint256)","b5fa77bd":"SetAddress(string,address)","b5fb19ed":"addressEccles()","b5fbc49f":"isAreaEnabled(string)","b5fcfbcc":"_getProviderAdmin(uint256)","b5fd76bb":"AddLocation(string)","b5fdeb23":"getMsg()","b5fe79db":"getInfoLevels()","b5fea522":"putBtcWithStc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","b5fecc30":"stockSupply(uint256)","b5ffa082":"StorageUpdated(address)","b6010fcd":"getItem(string)","b6013cef":"finalize(uint256,uint256)","b6015204":"receiver2()","b601818b":"newOwner(string)","b601e850":"loanMatured(address)","b6027026":"AOK()","b602a917":"changeTransferStats(bool)","b6030d35":"nProposals(uint256)","b6033daf":"getMintingPowerByAddress(address)","b6034964":"_endContestIfNeeded(address,uint256)","b6037759":"setStudentNumber(uint256)","b603cd80":"killMe()","b604a86e":"ratePublicSaleStage()","b604ad72":"create(string,string,uint8,uint256,address)","b604ed1b":"withdrawByGid(uint256)","b6055167":"receiveExternalProfits()","b6062b5b":"ICO_TOKENS()","b607068c":"getMyDividendRate()","b60710c0":"LogWithdrew(address,uint256)","b60761c4":"Internet(string,string)","b607ea45":"claimTilesForNewUser(bytes32,bytes,bytes32,bytes32,uint16[],address)","b60868be":"getFishAtBase(uint256)","b608c938":"releaseNextShares(uint256)","b6096ce9":"EloTest()","b609d0e6":"lastOracleUpdate()","b60a7405":"_addOwner_(address)","b60a82e0":"addSponsorship(address,uint256,uint256)","b60ad98d":"Board(address,bytes32)","b60afaa4":"distributeLCWP(address[],uint256,uint256)","b60b3c59":"otcPurchaseAndEscrow(uint256,address)","b60b7084":"builtOn()","b60b9fcb":"joinGame(uint256,uint256)","b60b9ff7":"Shopdex()","b60cc68b":"MIN_ICO_SLOGN_COLLECTED()","b60cee3c":"countAllSmartSharingContract()","b60d4288":"fund()","b60e00b9":"disableBets()","b60e2333":"joinTeam(uint256,address,uint256,uint256)","b60e6bc0":"tokenIdToApprovedRecipient(uint256)","b60e72cc":"log(string,uint256)","b60eb800":"addressSCEscrow()","b60f54f4":"SortingCoins()","b60f5b91":"isPreICO()","b60ffa9c":"setDistributeAgent(address)","b61012a9":"preICOparticipated(address)","b610c75e":"incrementTimestamp(uint256)","b611d649":"GteChainERC20()","b61241ed":"allocateTokens(address,uint256,address)","b612ac29":"BONUS_15_DAYS()","b61334b1":"setPayoutsWallet(address)","b6136dca":"alt()","b61386fb":"registerHandle(string)","b6139992":"issue(address,address,uint256)","b613df16":"_finishBet(bool,address)","b614213d":"maxPriceInWeiFromUser()","b615243a":"getExtraTokens(address)","b6172704":"isConfirmedStakeholder(uint256)","b61727ed":"_transferTo(address,address,uint256)","b6176a33":"addStakeholderTransaction(address,bool)","b617a4fd":"getClientCategory()","b617cf42":"removeExchange(address,uint256)","b618214a":"enableService(address)","b618387a":"registerBuyer(string,string)","b618cbba":"EvLoginfo(string,string)","b618d9a4":"checkStatus(address,address,uint256)","b6195134":"changeAdminToo(address)","b61992e7":"setPricePerBlockInWei(uint256)","b61a98cb":"updateMarriageLicenceImageIPFShash(string)","b61c0503":"fireEventLog1()","b61cb058":"setAvatarFee(uint256)","b61cbcd3":"nextGenome()","b61d27f6":"execute(address,uint256,bytes)","b61d4511":"maxPreIcoTokens()","b61daaee":"tokenBase()","b61e96a5":"requester()","b61f16e3":"getEarningsPool()","b61f36f7":"calculateWdxFee(uint256,uint256,uint256)","b61fa7c0":"doAirdrop2(address,address[],uint256)","b6206e67":"unitBattlePLATCost(uint256)","b6213490":"initialDrop()","b6215091":"Test2Token()","b621bd15":"SALES_END()","b622ab4a":"buyWithFunction(bytes4)","b6230a74":"icoStatusUpdated(address,string)","b623f5e5":"checkSetCosignerAddress(address)","b62418a1":"decrementOpenInterest(uint256)","b624fc54":"rafEnd()","b6253539":"needsInitialization()","b62596a2":"fundStorageVaultAddr()","b625dd87":"getUpdateTAOContentStateSignatureAddress(address,bytes32,address,bytes32,uint8,bytes32,bytes32)","b6261d0a":"acceptOffer(address)","b6266248":"refunded(uint32)","b626913f":"buy_block()","b627cf3b":"welcome()","b627ff04":"Sheep(string,string)","b6282d0d":"angelOnBattleboards(uint64)","b628672b":"setPreSaleHalt(bool)","b6288553":"decim()","b6294bde":"AdminGetFee()","b629d741":"transferUnownedPlanet(address,uint256)","b62c0b41":"MintByBTC(uint8,address,uint256)","b62c208f":"CryptoQuantumTradingFund()","b62c3a4f":"FinastraToken()","b62d4301":"testingSelfDestruct()","b62d4ce1":"canLayEgg(uint64,uint32,uint32)","b62eac16":"CrowdsaleProxy(address)","b62f0a6b":"YouTubemasterReq()","b62fc7c0":"buy2(address[],address[],uint256[],bytes,bytes)","b63005ec":"withdrawJuror()","b630230a":"MIN_CROWSALE_TIME()","b6304c2a":"KOINCONEKT()","b6307f0e":"nLuckyVoters()","b630aa48":"tokensSentPresale()","b630d706":"thisisfine(uint256)","b631c8e8":"_generateCastleSale(uint256,uint256,uint256,uint256)","b632d2e0":"SingularityTest20()","b633620c":"getTimestamp(uint256)","b6339418":"storeNumber(uint256)","b633b2ab":"getNextRoundTimestamp()","b633d272":"emitWorkResumed(uint256,uint256)","b633e4cd":"claimBalance(address)","b63423a3":"testCheckoutCart()","b63426b3":"Oxygen()","b634fc77":"FathomToken(address,address,uint256,address)","b6356251":"callThisContractBalance()","b63569c3":"developer_address_for_C(address)","b635a52d":"disconnectOrderPrice(address,address,uint256)","b635ba5f":"getEthValueAmount()","b6363cf2":"isOperator(address,address)","b63688d3":"setValidationOpen(uint256)","b637b269":"maximumValueDuringGuaranteedPeriod()","b637b7c4":"BZToken(uint256,string,string)","b638f72a":"_preICOSale(address,uint256)","b6397a42":"lotteryGiveHunt()","b639c9ec":"burnWarrior(uint256,address)","b63a35bf":"CTX_Cap()","b63a61d3":"auther_user()","b63adb3a":"preico(uint256,address,uint256,uint256)","b63bb5c6":"SNToken(uint256,string,string)","b63c2ac4":"setPowerContract(address)","b63c57f1":"buyForBitcoin(address,uint256)","b63ca981":"setHKGPrice(uint256)","b63cf3ca":"BitcoinDiamond()","b63deb24":"setSendProfitsReward(uint256)","b63df2a0":"approveControllerContractMigration()","b63e0cd8":"start(uint32)","b63e93dc":"ownerClawback()","b63ed405":"getWeiBalance()","b63f0d20":"newcheckToken()","b642c768":"_distributeTeamToken(uint256)","b642d58f":"INIT_DATE()","b6435f00":"getUsersAwaitingForTokensTop150(bool)","b6438092":"ManifestoCount()","b643f2c9":"stopDefrost()","b644ee41":"PRESALE_END_DATE()","b6469620":"getPersiansBattlePoints()","b64698cb":"_resolveAquarium(uint256)","b646c194":"addApprover(address)","b647990a":"countVotes()","b6481a92":"GotingToken()","b6496c6a":"addressLUTSize()","b64a097e":"info(bytes32)","b64afbe5":"participate(address,uint256)","b64b09d5":"invokeFallback(address)","b64bbd9e":"Finalizable()","b64c154a":"Klassicoin()","b64c1e7e":"claimForDeposit(address,address)","b64c4905":"sellVolumesCurrent(address,address)","b64c9326":"projectoperation_beneficiary()","b64d44f1":"TeamLockingPeriod12Months()","b64dc853":"onCompensated(address,uint256)","b64e2fc4":"getIncludes(uint256)","b64e8ad8":"addAllocationPartTwo(uint256)","b64eecb1":"transactionRequestCore()","b64f3cac":"getDSPRegistry()","b64ff429":"consent(bytes32[])","b64ff868":"getAdvertisers(bytes32,uint256)","b650048b":"unpausePlayerContracts(uint256,uint256)","b6506f25":"setLLV_edit_20(string)","b6508067":"lastTotalSupply()","b6509c12":"Ethereum_twelve_bagger()","b650bbef":"safetyInvariantCheck(uint256)","b65177ee":"ERC827Receiver()","b651cbaf":"add_level(address,bytes)","b652c822":"transferPosition(bytes32,address)","b652dc2f":"SOFT_CAP()","b65412b5":"refundPayment()","b65418f5":"raisedIcoValue()","b6549f75":"revoke()","b654bdb0":"HIBA()","b655d0c4":"getBaseRate()","b655e138":"sliceAddress(bytes,uint256)","b655f822":"Ballot()","b655fda2":"updateUserFullName(address,bytes32)","b656850a":"_getStakingEpoch()","b656e9f4":"isInTestMode()","b6576bdf":"getValue(bytes)","b657ae63":"eSendTokens(address,uint256)","b657c996":"control(address)","b6581516":"crossForkDistribution()","b6588ffd":"del()","b65a1350":"rateLastWeek()","b65a34f5":"CeffylToken()","b65ae769":"WithdrawSpecialToken(address,uint256)","b65b3f80":"exchangeAndSpend(address,uint256,address)","b65b4c9a":"sponsoredBonusMax()","b65b99a3":"_verifyDate(string,uint256)","b65bce8b":"ContractDisabledEvent(uint256)","b65be60d":"_updateLots(uint256)","b65c2611":"setUnfreezeTimestamp(uint256)","b65c2b40":"incrementLastTokenId()","b65c3a7f":"calcAmountAt(uint256,uint256,uint256)","b65cb801":"SnailToken(uint256,string,uint8,string)","b65d0807":"Carpio()","b65dc843":"crowdsaleMintingCap()","b65ddf2b":"addTipForDeveloper(uint256)","b65e1ab8":"setGoldmintFeeAccount(string)","b65f3bb5":"executeOffset(address,uint256,address,uint256)","b65f90e3":"split(uint8,bytes6,uint8)","b65ff419":"deleteNick()","b6607cc5":"AML_THRESHOLD()","b6608467":"updateShares(uint256)","b660d77c":"switchMPO(address,address)","b6615acc":"_isAllowed(address,uint256)","b661f55d":"saleTokensHaveBeenMinted()","b6622c0f":"updateDonor(address)","b6629d98":"placeBetEth(bytes)","b6629e20":"purchaseWithEth(uint256)","b662a73c":"freezeUpgrade()","b662dc9b":"OWNER_SUPPLY()","b662ef9c":"InsuranceMasterContract()","b6635be6":"setupComplete()","b663dc0a":"ONE_QUINTILLION()","b6644080":"ADMIN_GET_USD(uint256)","b66578dc":"nextSeedHashB()","b6660af4":"schelling(address,address,bool)","b667486d":"BetClosedNoWinningTeam(address,uint256)","b6674935":"minPot()","b66846fc":"offerToSell(uint256,uint256)","b668efe7":"PI_EDIT_2()","b6693f80":"phase_2_remaining_tokens()","b66a0e5d":"startSale()","b66a261c":"setSpread(uint256)","b66a323c":"claimThrone(string)","b66a94ef":"erc20ECHT(uint8)","b66aae65":"removeHoldByAddress(address)","b66afea3":"getOrCreateFeeWindowByTimestamp(uint256)","b66ce7cc":"Ignite()","b66d887a":"setSTGContractAddress(address)","b66dbdc5":"totalSupplyHistoryLength()","b66dd4b2":"lockFromSelf(uint256,string)","b66deb80":"removeEntry(address)","b66e68f2":"testFirst(bytes)","b66e7524":"getReportingStartTime()","b66f7a8b":"isEnded(uint256)","b6700930":"removeSet(bytes32)","b670a4b1":"unsoldTokens()","b670a910":"frontWindow()","b6712a4f":"gatFoundDeposit()","b6721bc4":"setMinPaymentForAnswer(uint256)","b6725bcf":"bitswift()","b672b4d4":"testTransferToken()","b672cf50":"balanceOf(uint128)","b6738bfb":"presalePiStart()","b673a75c":"crowdsaleAddr()","b673ddb7":"hasAirDropHero(uint16,address)","b674e749":"mock_contains(address,address)","b675271e":"contributeForDcorpMember(address)","b6755038":"_setPotValue(uint256,uint256)","b6757b50":"RocketPoolToken()","b67590aa":"batchTrade(address[11][],uint256[11][],uint8[2][],bytes32[2][],bytes32[2][])","b6761717":"pullEtherFromContract()","b67719fc":"WithdrawFunds(address,uint256,address)","b6791322":"createERC20(uint256,string,uint8,string)","b6791ad4":"getChain(uint256)","b67a77dd":"ART1(address)","b67aa257":"purchasePop(uint256)","b67b1a4d":"withdrawEtherOnlyOwner()","b67b60c7":"nextPrime(uint256)","b67b7163":"approve(string)","b67ba1b5":"killWallet()","b67c2893":"VitalLogging()","b67c838f":"Total_Paid_Out()","b67cb359":"feed1(uint256)","b67d4111":"getItemUri(uint256)","b67d50b5":"referrerBalanceOf(bytes32)","b67d77c5":"sub(uint256,uint256)","b67d8c69":"order_counter()","b67ddf20":"BlockICOdatetime()","b67e2064":"injectEtherFromIco()","b67e5b3b":"validPurchaseBonus(uint256)","b67f4eff":"sendTo(address,uint256,uint256)","b67f8b6d":"Master()","b67fabdf":"scheduleTransaction(address,uint256,uint256,bytes)","b68035a7":"COMMISSION_DIVIDER()","b6813b1c":"setcoe(uint256,uint256)","b6816590":"previousFounders(uint256)","b681f9f6":"resumeContribution()","b6823a66":"tournamentRewards()","b682c019":"pieceWanted()","b682da3e":"feesData()","b682ea1b":"_figthEnemy(address)","b6834572":"EOS()","b684101d":"emitExecuted(address,uint256,uint256,uint256)","b684ccad":"getDisputesToSolve()","b6854f96":"freezeToken(uint256)","b6868a69":"theFunction()","b686a635":"PossContract()","b686c983":"cancelLoanRequestAtIndexByBorrower(uint256)","b686d8b4":"holdingTaxInterval()","b686e44c":"SHA256ofArtwork()","b688524f":"_isCeo(address)","b688578c":"STAGE_3_START()","b6889e48":"globalChanceNo()","b688a363":"join()","b6893f7d":"DataContacts(address,address,address,address,address)","b6898845":"RPESALE_TOKEN_SUPPLY_LIMIT()","b689ca61":"sellsIntermediateGoodWithDepletion(address,uint256,string,uint256)","b689d5ac":"has()","b689d850":"FederatedOracleBytes8(uint8,uint8)","b68a06ba":"transfer_with_extra_gas(address,uint256)","b68c6ae3":"mtcLastDay()","b68cc035":"bonusLimit(uint256)","b68cf49f":"roundResolved()","b68d1809":"getDomain()","b68d1d4d":"addressInArray(address)","b68e15d6":"freezedAccounts(address)","b68e21ac":"FinishLottery()","b68e7f6e":"testCastVote()","b68e8552":"setRegionOwner(uint16,address,uint256)","b68e8760":"setBn(bytes32,bytes32,string)","b68ed11f":"preSaleSoldTokens()","b69065d6":"DevelopeoERC20(uint256,string,uint8,string,bool,bool)","b69147f2":"monthlyMinting()","b6926b52":"RaffleDraw()","b692c89d":"getRaised()","b6932ce7":"solicitaPagamento()","b694dbb5":"fromBytesToBytes32(bytes)","b695ecfd":"HonestHeart()","b696a6ad":"issue(uint256,address)","b6972146":"mul(int128,int128)","b6974d87":"cancelVoteForCashBack()","b6975ddb":"becomeSnakemaster()","b697fc93":"POT_DRAIN_TIME()","b6982c7f":"setup_race(uint256,uint256)","b6984002":"EQU(uint256,string,string)","b6992247":"getStakeholders()","b69924c3":"GetNextWithFunds(uint256,uint256)","b6994dc0":"RomanLanskoj()","b69a375d":"callback(uint256,string)","b69a8107":"setSkcAdderss(address)","b69b5611":"setOwnership(uint256,address,address)","b69ba46d":"publishMetaData(bytes32,bytes32,bytes1)","b69c0896":"BaseScheduler(address,address,uint256)","b69c2115":"approveRequest(bytes32,uint256)","b69e7d70":"random(uint256,uint256,address,uint256)","b69e9b1d":"getStaticElementAt(uint256)","b69ea1e9":"WineSpiritCoin()","b69ec629":"setBpToken(address)","b69ee531":"GBNC(string,string,uint256,uint8)","b69ef8a8":"balance()","b69f5ada":"totalUserProfit()","b69f917d":"addCosToGame(uint256,uint256,string)","b69fae22":"hashTransfer(address,address,bytes,uint256)","b6a0a119":"countDestinations()","b6a12f63":"setTokenMarketMaker(address,address,address,address)","b6a2b110":"SOCXSentToETH()","b6a324e0":"fundMe()","b6a46b3b":"create(string)","b6a48c2a":"abcLottoController()","b6a499ab":"_computePVPWarriorAura(uint256,uint256)","b6a4a0e9":"GogaTokens()","b6a5091a":"HuanHuiToken()","b6a59176":"getUsedCoreSupply()","b6a5d7de":"authorize(address)","b6a65665":"getGameData(uint256)","b6a79409":"necropolisContract()","b6a7b42c":"getMyTomatoes()","b6a8933b":"EXCHANGE_COMMISSION()","b6a96e45":"BuyCarCompleted(address,uint256)","b6a9ed31":"sellAnts()","b6abd4e7":"transfer_close()","b6ac24df":"updatePatchTree(bytes32)","b6ac4984":"tokenTransfersEnabled()","b6ac642a":"setWithdrawFee(uint256)","b6acabc1":"crowdFunding()","b6acc48c":"ICO_TOKEN_CAP()","b6acd931":"payDAPP(address,uint256,address)","b6ad4784":"resignTranscoder(address)","b6ad57d6":"paySmartContract(bytes32,address[],uint256[],bytes32)","b6add0f4":"initPrice()","b6ade100":"notifylvlClients(string,string)","b6ae90fb":"FuturOwner()","b6aeb4a2":"erc20VARA(uint8)","b6aeec7b":"CHATTER()","b6af3643":"setWithdrawalTime(uint256)","b6afd2ca":"listMembers()","b6b0eaca":"SMILEHEART()","b6b0f77b":"idToString(bytes32)","b6b18eff":"founderWithdrawablePhase1()","b6b1e359":"verifyIt(bool)","b6b2210c":"lockSell(bool)","b6b32c07":"presalePurchase(address[],address)","b6b35272":"isWhitelisted(address,address)","b6b3d325":"view40()","b6b425c7":"doSingleMigration(uint256)","b6b55f25":"deposit(uint256)","b6b57c9e":"setWhiteListContractAddress(address)","b6b57ebd":"finalizeWorkOrder(address,string,string,string)","b6b7032e":"rentalAccumulatedPrice()","b6b7e7eb":"toRLPItem(bytes)","b6b7e84d":"SGTExchangerMock(address,address,address)","b6b8c3cd":"m_categoriesCreator()","b6b9d57e":"propertyIndexToData(uint256)","b6ba1a98":"NIMFA_PER_ETH_SALE()","b6ba600a":"lockGNO(uint256)","b6baffe3":"getDifficulty()","b6bb38dc":"approveCetification(address)","b6bb3ade":"multiCall(address[],address,uint256[])","b6bba846":"sellTokensForDash(string,address,uint256,uint256)","b6bbafa2":"CrowdsaleStoneToken()","b6bbcf5b":"benchmarkRandom()","b6bcf354":"getCensuring(uint16)","b6bd387a":"lastRegionId()","b6bdedca":"MagnaChain()","b6be128a":"getPhoto(uint256)","b6beb400":"NuggetsToken()","b6bf1b3a":"mintForDisputeCrowdsourcer(uint256)","b6bf3bb3":"setBlackListERC20(address)","b6bf7318":"clz64(uint64)","b6c05255":"burnOwner(address,uint256)","b6c054ce":"restake(int256)","b6c0eca8":"LogRefund(address,uint256)","b6c1cb03":"transferFromWithComment(address,address,uint256,string)","b6c1eaad":"refundStarted()","b6c238b5":"starts(address)","b6c279ee":"setInputSize(uint256,uint256)","b6c32d71":"startStandardSale()","b6c37e58":"balancesRiskcoins(address)","b6c3987d":"validateHarCap(uint256)","b6c3e8cc":"increaseApprovalInternal(address,uint256)","b6c44bd1":"ZCash()","b6c47da1":"setSuperman(address)","b6c4da52":"addVestingRule(address,address,uint256,uint256)","b6c58236":"getOwner(uint32,int256)","b6c6ecd3":"getDial3Type(uint8)","b6c78f26":"HellaBank()","b6c88977":"finalizeCrowdfund()","b6c9f707":"ContractCreation(address,address)","b6ca878c":"addCard(bytes32,address,uint256,uint256,uint256,uint256)","b6ca8996":"CentrallyIssuedToken(address,string,string,uint256,uint256,uint256)","b6cb3777":"collectAnts(address)","b6cb405b":"getContractor()","b6cb5d72":"NFToken()","b6cb7f41":"fundsVault()","b6cba7eb":"recoverERC20Tokens(address,uint256)","b6ccc6ba":"signVer(address,bytes32,uint256,uint8,bytes32,bytes32)","b6cce5e2":"sponsor(uint256)","b6cd05e5":"withdrawAllTokensOnContract(uint256)","b6cd0b88":"setPersonalHash(bytes)","b6cdc815":"maixiaohetoken(uint256,string,uint8,string)","b6ce5581":"oraclize_query(string,string[5],uint256)","b6ceb489":"OWN_burn(uint256)","b6cf146c":"proposeMint(uint256)","b6cf3579":"PROVISIONING_supply()","b6d1d3d1":"setAirSender(address)","b6d1fbf9":"setXPERContractAddress(address)","b6d2a9b9":"SetupToken(string,string,uint256)","b6d31d97":"addToPrivateSaleWhitelist(address[])","b6d33511":"AKTestEther(address,address,address,uint256,uint256,uint256)","b6d34f12":"Emission(uint256,uint256,uint256)","b6d3faa3":"billingAmount()","b6d42ec3":"setApTime(uint256)","b6d5e8cd":"mintUniqueTokenTo(address,uint256)","b6d6164a":"reject(address,uint256,bytes,uint256)","b6d67a0b":"hasPlayerWon(uint8,uint256,bytes32,bytes32)","b6d6806c":"createEscrow(address,uint256,address)","b6d703ae":"confirmTotalTokenThreshold()","b6d7855a":"TokenName()","b6d7dbb2":"SAtomX()","b6d827bb":"WhitelisterChange(address,bool)","b6d8f59d":"WAN_TOTAL_SUPPLY()","b6d9721c":"getMerkleRootAndUnlockedAmount(bytes)","b6d9ef60":"setOracleFee(uint256)","b6dadbdf":"_createPart(uint8[4],address)","b6dadeb4":"getCardInsurance(uint256)","b6daea6c":"addAgency(address)","b6db75a0":"isAdmin()","b6dc1124":"private_setPauseState(bool)","b6dc572f":"addSubscription(address,bytes32,uint256)","b6dc8e25":"exchangedAmountToReceive(uint256)","b6ddcd14":"icoAccount()","b6ded5c1":"windowPeriodEnd()","b6df4906":"safeOwnerOf(uint256)","b6e087d6":"GunChain()","b6e119ab":"balanceOfEnvelopes()","b6e390ae":"First_pay_bountymanager()","b6e3943a":"AK4EtherDelta(address,address,address,uint256,uint256,uint256)","b6e3ca3c":"UpdatedExchangeRate(uint256)","b6e3cc1a":"authorCount()","b6e456bb":"getUInt()","b6e49fd9":"LocalEthereumEscrows()","b6e54bdf":"majority()","b6e76873":"getAction(uint256)","b6e7d90b":"delegatePass(bytes32,address)","b6e86e13":"createProxyImpl(address,bytes)","b6e8bac7":"anailNathrachOrthaBhaisIsBeathaDoChealDeanaimh(address[],uint256[])","b6e99235":"drawNumbers(uint256)","b6e9c2ac":"getUserBalance(bytes32)","b6ea62de":"kycApprove(address)","b6eb15c7":"gvOptionToken10()","b6eb7dae":"freedWosPoolToWosSystem()","b6ecd81c":"Vets()","b6ed0632":"cancelOrder(uint256,uint256)","b6ed3308":"setPriceOfEther(uint256,string)","b6ed9f15":"PFOffer(address,address,bytes,uint256,uint256,uint128)","b6eda884":"ads()","b6edc68f":"changeMicroPay(address)","b6edd743":"transferTokensTo(address)","b6ee48aa":"setContractSK(string,string)","b6ee8120":"realizedETH(address)","b6eeb6bb":"PREPURCHASER()","b6ef4454":"funderWithdraw()","b6ef78c2":"cancelCounterStack(bytes32,bytes32)","b6f020b2":"checkExistsItems(string)","b6f0391b":"setMap(string,string)","b6f085c7":"usernames(bytes20)","b6f0ecb1":"setAMLWhitelisted(address,bool)","b6f1a927":"CPAWallet()","b6f250ea":"determineWeights()","b6f29d50":"awardSellers()","b6f35624":"boughtAmountOf(address)","b6f36dcf":"owner3()","b6f3c071":"CyCo()","b6f3d256":"lowestBid()","b6f46b61":"claimBeercoins()","b6f46d4c":"RFQ(string,uint256,string)","b6f478de":"lifeVestingStage()","b6f4df34":"totalSupplyEdition(uint256)","b6f4f96c":"fundingThreshold()","b6f50c29":"setICO(address)","b6f529d6":"paused_2()","b6f5e0e6":"showProfileDetails()","b6f681ce":"ChangeOwner(address,address,uint256)","b6f687a2":"rewardKoth()","b6f6e8ae":"getMatches(uint256,bytes3)","b6f73bb9":"devuelveRoles(bytes32)","b6f7600d":"GetAllConsentData()","b6f7bfcd":"ADVISORS_ADDR()","b6f84764":"getRemainingUint(uint8,bytes)","b6f921ad":"check(string)","b6f98e53":"needsAllowancePayment()","b6f9fda5":"timeoutResolve(bytes32,uint256)","b6fac235":"callStcWithBtc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","b6fae6c7":"approveContract(bytes32)","b6fb4a14":"createNewSystem(string,uint8,uint8)","b6fb7e46":"endingBalance()","b6fb9f25":"redeemWithdrawalCertificate(string,uint256,address,bytes)","b6fc1043":"make(bool,uint8,uint256,uint256,bytes16,uint256,uint256)","b6fc276a":"preparationPeriodEquipmentTrainingFeeMultiplier()","b6fca0df":"sendAirDrops(address)","b6fda7ba":"allocateTokenForAdvisor()","b6fe87fb":"remoteBettingClose()","b6fef44c":"increaseArrivalTime(uint256,uint256)","b6ff5087":"notifyDeathCancellation()","b7009613":"canCall(address,address,bytes4)","b700967b":"modexp(uint256[],uint256,uint256[])","b7009c97":"StatPreICO()","b700f67a":"settleApproveRequest(bytes,bytes,bool,uint256)","b7019063":"EthereumDIDRegistry()","b7019744":"payBack(address,uint256)","b701dc14":"setBackEndAddress(address)","b7020c63":"getSpermlordReq()","b7028b1c":"CryptoRideCoin(uint256,string,uint8,string)","b702a879":"draw(uint256,address)","b703aa3a":"stopForge()","b703c75a":"getPresaleNumber()","b704b608":"weiToTokens(uint256,uint256)","b7056765":"implementsERC165InterfaceNoCache(address,bytes4)","b706b764":"HelpCoin()","b706f78e":"_mintTokens(int256,address,uint256)","b7073d2e":"insertCLNtoMarketMaker(address)","b7086f7b":"stopSale(address,uint256)","b70902bc":"debug4()","b7090bb5":"www_experty_io()","b70949c9":"editContributors(address[],uint256[],bool[],uint256[],uint256[])","b7098a32":"Bee()","b709df11":"getValue(address,address,address)","b70a7545":"GIFT(uint256,string,uint8,string)","b70ae49a":"execute_payment(uint256,bytes32)","b70b9717":"voitingStartTime()","b70c9acf":"stream(bytes32)","b70d0b3b":"ownerEdge()","b70d30bf":"returnTokens2(address,uint256)","b70dfb25":"SeleniumRichChain(uint256,string,uint8,string)","b70f0058":"_isApprovedBattle()","b70f4b13":"crowdfundContract()","b70f6ea8":"getDataPoint(uint256,uint256)","b70fadb7":"getAddressFromSan(string)","b70fbda1":"GoldRegistry()","b71051e2":"percentageOf(uint256,uint256)","b7107d00":"setSeller(address,address)","b710e8fe":"_restartsystem()","b711e18a":"_applyRefCredits(address,uint256)","b7133fa9":"test(uint256[5])","b7134feb":"icoMaxCap()","b713ef49":"developer_increase_price(uint256)","b714075e":"transferDevBalance(address,uint256)","b714e3cc":"GetDynamicRatio(uint256)","b71503fc":"FundsDrained(uint256)","b7159185":"shortShare()","b7160dee":"CVR()","b7161cc1":"VitaminTokenNew(uint256,string,string)","b71653a8":"setGalleryThreePrice(uint256)","b7167359":"contributed1(address)","b71698c7":"solutions(uint256)","b716e3f2":"addBoard(address,address)","b716f404":"raceOut(uint256)","b71738f1":"withdrawDthTeller(address)","b717cfe6":"CallTest()","b717dadf":"getEtherCountFor(address)","b7182b95":"getTokenOwner()","b719397f":"IsPreICO()","b719d032":"predecessor()","b719d1d0":"getRegInfo(address)","b71ab971":"getPlayerEarning(uint256)","b71c47a2":"surrender()","b71ce659":"GCA()","b71d1a0c":"_setPendingAdmin(address)","b71e0120":"limitBranchType()","b71e513b":"createGame(string,string,uint16,uint64)","b71e9c23":"throws()","b71f3cde":"onRefund(uint256,address,uint256)","b71f7f1c":"SuperFruit(uint256,string,string)","b71f8010":"setContract3(address)","b720a274":"_endOfICO()","b7213bd4":"readLog(uint256)","b72179ff":"viewFirstLotOfContractState()","b72218e3":"initialHolder()","b722875f":"giveBonus(address,uint256)","b722a9ef":"getPreviousShareholder(address)","b72314a1":"getGroupDescription(uint256)","b7232cd9":"enterBidForStar(uint256)","b723b34e":"mintTo(uint256,address)","b72413e4":"tokenDiscountPercentage(address)","b72481f8":"totalWinnings()","b725d84f":"PRICE_10()","b725e556":"UserOffers(address)","b7266456":"StandardToken()","b7268ef4":"rdiv(uint128,uint128)","b72703ac":"getPrev(address)","b72753d5":"updateItem(uint256,string,uint256,bool)","b7279ca6":"enableSweep(uint8[],bytes32[],bytes32[],address)","b727b194":"initialIssueMinting()","b7288f02":"freezeAccount(bool)","b72916ef":"getMsgValueBefore()","b7297cf3":"gameSettings()","b729d499":"dustPepe(uint256,address)","b72a0026":"APPToken()","b72a97e6":"updateTeamV(address)","b72b5a33":"NewBoardMember(address)","b72bedd0":"validation(uint256)","b72cacde":"approveByA(uint256,string)","b72ceab8":"alwaysRequireCosignature()","b72d0be5":"revocables(address)","b72e717d":"fromAddress(address)","b72f0e06":"LicenseCoin()","b72f547d":"startTransferGet()","b72f8ebb":"changeFreeBetValue(uint256)","b730aaaa":"Counting_CardPoint(uint256)","b730ee7f":"Anemoi()","b73112e5":"setCountryRank(uint256,string,uint256)","b73114b9":"purchaseCenturion(uint256)","b7312707":"fromHexChar(uint256)","b7317598":"claimI()","b7317806":"setEndOfICO(uint256)","b731e848":"left93(uint256)","b7324f8e":"PresaleClaimed(uint256)","b733e6a6":"LaunchContract(address,bool)","b73405a9":"roundMoneyDownNicely(uint256)","b734cbba":"setIcoDates(uint256,uint256,uint256,uint256,uint256)","b736ca82":"initialize(address,address,address,address,address,address,address,uint256,uint256,uint256,uint256)","b7375af7":"PresaleUnlimitedStarted(uint256)","b737ed1b":"getRandom(bytes32)","b737f5bd":"addOldInvestment(address,uint256,uint256)","b738169c":"betOnOddEven(bool,bool)","b7381a2c":"noteTokens(address,uint256)","b7384f6b":"initialOraclizeSettings()","b7387e66":"OpenBox(uint256)","b7388178":"getIsStoreSet(string)","b73974a1":"HIGH()","b73a9dbc":"variationCycle()","b73afe4f":"relocate()","b73b68e5":"lockTokens(address,uint256,bool)","b73c6ce9":"withdrawEarnings()","b73c71b2":"Test1Coin()","b73cb519":"changeIcoCap(uint256)","b73ded75":"setParams()","b73f02e4":"setActiveHashType(bytes32,bool)","b73f1e52":"fourthRelease()","b73fe29c":"getPeriodicalAR()","b73fe963":"noOfWaves()","b73fefe8":"rejectProposalAsHost(uint256)","b7403878":"updateLeaders_(address,uint256)","b741cb36":"setStageStartTime(bytes32,uint256)","b742398b":"trade(address,uint256,bytes,address,uint256,bytes)","b743f7b6":"giveEthCharityAddress()","b744a850":"getAssetTokenByIndex(uint256)","b744d2e6":"WithdrawEther(address)","b744d893":"DigiBlackCoin()","b7462833":"Blarity(address,uint256,uint256,uint256,address[],uint256[])","b7465a19":"setSlackUsersCap(uint256)","b746ec9f":"checkTotalPayouts()","b74746e7":"CharlieToken()","b747e025":"testFailMintNoAuth()","b7482509":"deposit(address,string)","b7491780":"_calculateNewHeroPower(uint256,uint256,uint256,uint256,uint256,bool,uint256)","b7491d65":"BiathlonNode(address,string,string,string)","b749b225":"bountyDrop(address[],uint256[])","b74a3266":"finalizeTemplate()","b74bc710":"LuckyDoubler()","b74bd09e":"rndGap_()","b74bd72b":"canTransfer(uint32,int256,address)","b74bee6a":"Mido()","b74c13f1":"storeAttachment(string)","b74cf3b6":"setVoterCount(uint256)","b74d13a5":"disableCheckArea()","b74d4103":"getForwardUpdateFeesTo()","b74d8e58":"getKittySkillScore(uint256)","b74db274":"VeryToken()","b74e20bb":"xCrypt(address,address,address,address)","b74e452b":"today()","b74e47ac":"getPartsOfOwner(address)","b74e825e":"DIVIDEND_FUND_FRAC_BOT()","b74f010f":"DreamCoin(uint256,string,string)","b74f312e":"changeTotalDistributed(uint256)","b74f32f2":"airdrop(address[],uint256,uint256,uint256)","b74feb18":"getRoundWinnerPot(uint256)","b74ffca7":"bookCab(uint256)","b75014c0":"startIcoMainSale()","b750948d":"canUserReleaseArtwork(address,address)","b750ac85":"LOG_HouseAddressChanged(address,address)","b751ecfc":"DomainIO(uint256,uint256)","b7526b79":"migrateDungeon(uint256,uint256)","b753485f":"currentGen()","b7538f3e":"ChangeClient(address)","b753a98c":"push(address,uint256)","b7540d9f":"freezed()","b756919d":"_handleEnergyTopup(address,uint256,uint256)","b7581c67":"vestingFounderAllocation()","b7595d3f":"getBoolField1()","b7598cca":"AreaPrice(uint256,uint256,uint256)","b759f954":"approve(uint256)","b75a0ac6":"setICOToken(address)","b75baa18":"w_futureDevelopment()","b75c2068":"lockShares()","b75c7d9e":"updateDealer(string,address,uint256)","b75c7dc6":"revoke(bytes32)","b75c7e62":"MedsupplyToken()","b75d7e50":"getExtrasData()","b75ece9c":"startFundingTime()","b75f4084":"finishInvesting()","b75f9b20":"commissionPCT()","b75fdf3a":"liquidityPoolTokens()","b760744f":"MytilcoinStorage()","b760c979":"TokenGranted(address,uint256)","b760e822":"minimumPurchaseInWei()","b760faf9":"depositTo(address)","b7614de7":"stakedByUser(address)","b7618a31":"rvt()","b761962c":"sampleMulti(bool,bytes32,int8,bytes4)","b761a16b":"JustmakeNewAccountsIssuer()","b7629dcb":"investorsAddress()","b762e6e8":"mintTimeLocked(address,uint256,uint256)","b762fbac":"changeFountainContractAddress(address)","b763150d":"registerCustomer(address,address)","b764132e":"CubaLibre()","b764311d":"RITToken()","b7643c5c":"_computePVPPetAura(uint256)","b7645ed4":"changeMaxCapUSD(uint256)","b76467c1":"Haltable()","b764e273":"failSend()","b764e8f5":"read_config()","b76564bd":"app()","b7656808":"minted(address,uint256)","b7656dc5":"transferFromPreSignedHashing(address,address,address,uint256,uint256,uint256)","b7663b08":"startICO_w2()","b7667603":"Goldplatina()","b76689a4":"createInviteID(address)","b766b562":"setBonusReceived(address,bool)","b76803b2":"cgoAddress()","b7682a81":"buyGanToken(uint256)","b768628f":"publishedWinningScoreThreshold()","b7688c8b":"ico_period()","b768cd5d":"modifyStartTime(uint256)","b768ce60":"getTotalVolumeToken()","b7692032":"Facebook()","b769e4c5":"LogCancelTemplateProposal(address,address,uint256)","b76b37dd":"toLotteryPool(uint256)","b76b3e39":"setICObyAddress(address,uint256)","b76b4ee2":"ManagerPermissionGrantedEvent(address,string)","b76b78fb":"getAllElement()","b76bf76b":"distributeTime()","b76c2e39":"LQX()","b76c3764":"NumberGame()","b76c5c9f":"sendAdvisorsBalance(address[],uint256[])","b76c8a2c":"SpartaTeamCoin()","b76c94e1":"fundsOf(uint256)","b76ce26c":"updatesolbuyrate()","b76d0edd":"Log1(address,bytes32,uint256,string,string,uint256,bytes1,uint256)","b76dfb28":"totalRemainInInventory()","b76e1324":"startCreatingAss(string,string,uint256,uint256,uint256)","b76e4890":"Tester()","b76e5e06":"getBA(bytes32)","b7700f33":"getManagerPubkey()","b77030a0":"setTau(address)","b770391b":"MineAffected(uint256,uint256)","b770485f":"specialContract()","b770486f":"investmentGuidesRewardsWithdrawn()","b770c7ef":"giftPlanet(uint256,uint256,address)","b7719ef5":"devWithdrawal(uint256,uint256)","b7742856":"mainSaleprice()","b774d3d7":"BankOwner_GetDonationsBalance()","b775553d":"setDividendCutPercentage(uint256)","b775c9ef":"etxAddress()","b7760c8f":"transfer(uint256,address)","b7764475":"ETHXBT()","b776fc15":"addItem(uint256,string,uint256)","b777b11e":"setBurnStart(bool)","b777cad7":"managerPrimary()","b7782455":"unicornAddress()","b77825d2":"getIndexOrder2(uint256)","b778809b":"initiateContract()","b778d4b4":"releaseToday()","b778e69e":"getPastWinnerEntries()","b77a284c":"transferAndCallWhitelist(address)","b77bf600":"transactionCount()","b77cd1c7":"refreshBalance(address)","b77d09c9":"gameGifIsOver()","b77d1597":"QAcoin()","b77d4876":"startTokensSale(address,uint256)","b77da4a0":"totalDevCoin()","b77e4185":"promotionsAvailable()","b77e60dd":"tokensaleSecondsToStart()","b77ebcbb":"Country_code(uint16)","b77f00b3":"preIcoPhaseCountdown()","b77f39fe":"recoverTokens()","b77fc549":"withdrawAffiliateCommission()","b77ffaf5":"changeInvestNum(uint256)","b7808600":"ClaimCrowdsale(uint256)","b780a659":"cryptoString()","b780ef58":"_transferRobot(address,address,uint256)","b7813355":"getTotalCollectedWei()","b781ad99":"ALLOC_SALE_CORNERSTONE()","b781afa7":"EverhuskCrowdsale(uint256,uint256,uint256,address)","b7825cfc":"addTask(bytes32,string)","b782fc9b":"getFirstActiveDuel2()","b7833cc3":"getWitness(uint256)","b783508c":"receiveAuction(address,uint256,uint256,uint256)","b78376e9":"addPayer(address)","b783969f":"GenkiProjectToken()","b783d6c7":"challengeRegistration(bytes32)","b7840731":"RedeemOraclize(uint256)","b7844170":"getSellUnitsInformations()","b7844aff":"NeuroToken()","b7845c97":"isPhase(uint256,uint256)","b785473c":"satRaised()","b7870845":"getCalculatedFees()","b787b91d":"registerVestingSchedule(address,address,address,uint256,uint256,uint256,uint256)","b7886b37":"checkReceivedUser(address)","b789321a":"priceRound4()","b7897485":"getCurrentBet()","b78aa7f4":"challengeChannel(bytes,bytes,bytes)","b78ae50a":"getCrystalsByKind(address,uint256)","b78b52df":"allocate(address,uint256)","b78b6087":"finalizeMigration()","b78b7232":"addFeedIn(address,address,int256,uint256,uint256)","b78b842d":"kyberNetwork()","b78bd4a5":"breakCookie(string)","b78be802":"emergency_withdraw(uint256,address)","b78be927":"ZYCoin(uint256,string,string)","b78c1517":"reservationFund()","b78c1853":"deleteOwnPeerReview()","b78d27dc":"bond(uint256,address)","b78d32cd":"BET()","b78da386":"withDrawFunds()","b78e4bfd":"jinglesInfo(uint256)","b78e5e26":"transferTokensFromBountyAddress(address,uint256)","b78f8389":"divideUpReward(uint256)","b78f9de7":"Sale()","b78fd7bc":"transferRemainingTokensToUserAdoptionPool(uint256)","b790301a":"PLN_Omnidollar()","b79047cc":"PricePredictionBettingGame(address)","b790505d":"set_compenstation(uint256)","b790634e":"getDepositRate()","b7909898":"allocateInitialBalances(address[],bytes32[],uint256[])","b790a77b":"_withdraw(address,uint256)","b790c32c":"transferAuditorRecord(address,address)","b7915e39":"getAllowedNotaries()","b791e8ed":"calcEffectiveOptionsForEmployee(address,uint32)","b791f3bc":"migrateAmountBooks(address)","b7928b4f":"getReason(uint256)","b792d022":"batchCreateSingleSeedAuction(uint8[],uint8[],uint256[],uint256[],uint256[],uint256)","b792e6ec":"init(uint256,address)","b792f5f6":"ret_luklen()","b7930507":"UNLOCKED_TIME()","b793233b":"icoEndTimestamp()","b7935f0a":"emergencySetDAdmin(bytes32,address)","b794004d":"YOU_BET_MINE_DOCUMENT_PATH()","b7942d78":"RegReader(address)","b79550be":"recoverFunds()","b795dffe":"purchaseKey(bytes32)","b796a339":"addRegistryIntoOwnerIndex(address,address)","b796c9b8":"Withdrawall(uint256,address[])","b7970d80":"rngCallbackGas()","b7975d1f":"getMyToad()","b797b5ba":"tgeCurrentPartInvestor()","b798b129":"finalizeEarlyBirds()","b7992c0b":"finalize3()","b799ba7e":"CalorieCoin(address,address,uint256)","b79a5539":"preTokenSalesCapReached()","b79a6231":"Tier_Basic()","b79af928":"totalSpentEth(address)","b79c5f7f":"IntentionToFund(address,uint256)","b79eb3a4":"AlterContactPubkey(address,bytes32,bytes32,bytes32,bytes32)","b79ec028":"setLevelup(uint8[4])","b7a025f9":"bZxTo0xContract()","b7a139bf":"firstRoundPercent()","b7a1affa":"DACContract()","b7a1c236":"LogChangeIsPayableEnabled(bool)","b7a1d003":"SessionClose(uint256,uint256,uint256,uint256,uint256)","b7a2cbcc":"lockedTransfers()","b7a2d99d":"withdrawAbleEther()","b7a2e1f2":"buy(string,string,uint256,address,address,address,address,bytes2)","b7a311fd":"TimoNetwork(uint256,string,string)","b7a3446c":"oldBalanceOf(address)","b7a40f21":"purchasePlanet(uint256)","b7a55438":"replaceOperator(address,address)","b7a693d7":"MaxSantaRewardPerToken()","b7a6b6a7":"AIREP()","b7a7612c":"setBtcEthRate(uint256)","b7a78911":"testMultitransfer2()","b7a8807c":"openingTime()","b7a90cf9":"BitAseanToken(uint256,string,uint8,string)","b7a9434b":"registerSpawned(uint32,int256)","b7a973bd":"setCompte_13(string)","b7a97a2b":"isValidChannel(uint256)","b7ab4db5":"getValidators()","b7ab7ade":"setAllowedContract(address[])","b7abf606":"modifyLocality(string)","b7ac5d3b":"marketingFundAddress()","b7acbd41":"checkSellerGuarantee(address)","b7acdca6":"addBet(uint256,address)","b7ad2432":"totalWindows()","b7adb169":"getPendingUserlists()","b7adb974":"lightingTransfer(address,address,address,uint256,uint32,bytes32)","b7ae74fd":"FreeCoin(address,uint256,uint256,uint256,uint256,uint256)","b7aec6a5":"scheduleCall(address,bytes,uint256,uint256,uint8,uint256)","b7aec6b1":"getSpecificEscrowTransaction(address,address,uint256)","b7b0422d":"init(uint256)","b7b172b3":"cashout(address,uint256)","b7b1b93f":"_createPixel(uint32,uint8,uint8,uint8,string)","b7b1d7f7":"isCrowdSaleActive()","b7b1e3cc":"getPropertyData(uint16,uint256,uint256)","b7b2a009":"getCardDetails(uint8)","b7b2bbc0":"WinnerSet(uint256,uint256,address)","b7b2c7d6":"batchFillOrders(address[5][],uint256[6][],uint256[],bool,uint8[],bytes32[],bytes32[])","b7b2e501":"makeInvisible(uint128)","b7b33765":"calculationOfPayment()","b7b3a56e":"overflow_lower()","b7b3b89a":"lockedVault()","b7b3ea98":"endContrib()","b7b4557c":"LogMigrationInitiated(address,address,address)","b7b47e31":"batchActivenessUpgrade(uint256[],uint256[])","b7b48388":"addThing(bytes32,bytes32,string,string)","b7b4ceb3":"CPCEIco()","b7b4fe13":"setWhitelistDemoc(address,bool)","b7b5709a":"freezeFrom(address,bool)","b7b57c3f":"getPartnerMessage(address,address,uint256)","b7b5e811":"getProjectBonus()","b7b6700b":"viewPlayerPayout(address)","b7b6e978":"unlockForOrder(address,uint256)","b7b747c5":"testDepositUsingDeployedContract()","b7b8533a":"expireAfter()","b7b96723":"right7(uint256)","b7b9dead":"MyAdvancedToken()","b7ba0ba0":"showAssetEvent(bytes32,uint256)","b7ba6050":"currentTokenOfferingRaised()","b7bae9b7":"exists(bytes,bytes)","b7bb018d":"unlockingBlock()","b7bb208b":"JobitToken()","b7bc2c84":"isFueled()","b7bc7653":"set_pauseDET(bool)","b7bc7cb8":"fixedExp(uint256)","b7bda68f":"taxAddress()","b7bdc7ef":"setDomainPrice(bytes32,uint256)","b7bedaf1":"setPreAddr(address)","b7bf356a":"taskExists(bytes32)","b7c03170":"CurrentState()","b7c14d7a":"payOutJackpot()","b7c251c3":"getRedeemedPeriods(bytes32,address,uint256)","b7c2ccb6":"getNodalblockTimestamp(string)","b7c38d02":"testControlCreateSameIpfsHashAndNonce()","b7c42cf0":"claimTokensICO(address)","b7c4b775":"setMaxGas(uint256,uint256)","b7c4bf17":"readyUp()","b7c52820":"addSentTrade(address,bytes32)","b7c54c6f":"getHKGOwned()","b7c55259":"endGame(uint256,address,address,address)","b7c5b181":"delegatedTransfer(address,address,uint256,string,uint256,bytes32,bytes,uint256)","b7c70c34":"seratioCoin()","b7c74cf6":"_calculatePayment(uint8)","b7c763b5":"getString(uint256)","b7c7986f":"getMarket_CommunitUnusedTokens()","b7c7ecbe":"setTitulaire_Compte_6(uint256)","b7c8561f":"removeDestroyer(address)","b7c8699d":"modifyGovtAccount(address)","b7c8a90a":"removeExclusionFromTokenUnlocks(address[])","b7c93330":"ResourcePoolTester()","b7c940f6":"SolarDaoTokenCrowdsale(address,address,uint256,uint256,uint256)","b7c97930":"registerPool(string,uint256,uint256)","b7c97fa0":"BEN()","b7c9da33":"buyTulips(uint32,uint16)","b7ca3086":"getSelfCount()","b7ca51e8":"starToken()","b7caf50a":"ticketsNum()","b7cb4830":"NERU()","b7cc2312":"bobClaimsPayment(bytes32,uint256,uint256,address,address,bytes20)","b7ccc466":"categoriesCount()","b7ccccaf":"bridgeValidatorsProxyOwner()","b7cce253":"maximumMainSaleRaise()","b7cdddcb":"claimEth()","b7cefd9f":"FlatEarth()","b7d02044":"deployToken(string,string,uint8,uint256)","b7d0628b":"getGameState()","b7d130ff":"isAuthorizedToSell(address)","b7d29e91":"NameChanged(bytes32,string)","b7d3a9c9":"setWhitelistAgent(address)","b7d3cb87":"countAllProposals()","b7d454a4":"setNotTransferable(bytes32)","b7d4dc0d":"unsetBase(address,uint64)","b7d4e5fd":"getX2(uint256)","b7d534a1":"addrToString(address)","b7d5d4c0":"piggyBank()","b7d5d74c":"balanceAtBlock(address,uint256)","b7d5ddc8":"setAssetClaimString(uint256,string,string)","b7d5e804":"remove(uint8,uint8)","b7d5ef4d":"BATokenFactory()","b7d65d17":"setUnitCoinProductionMultiplier(address,address,uint256,uint256,bool)","b7d6f432":"buyCar(address,uint256,bool,address,uint256)","b7d6f6c6":"WHALE(address)","b7d74fda":"DevelCoin(uint256,string,uint8,string)","b7d7acea":"externalGiftEth(address)","b7d89483":"AddressList(string,bool)","b7d8b1d9":"emitWorkStarted(uint256,uint256)","b7d9549c":"incrementPrice(uint256,address)","b7d9d7b9":"roundTwoAmount()","b7da166b":"_mint(address,address,uint256)","b7da5b0d":"TreatzCoin()","b7dacbf1":"setBackup(address)","b7db7f0f":"allowTransfer(address,address,address,uint256,bytes)","b7db87e8":"testFooArray()","b7dc2a9f":"weiMinimum()","b7dc3b18":"buy(uint256,string)","b7dc5c11":"priceGuaranteed()","b7dc8a32":"firstValidBlockNumber()","b7dc9d85":"ORDER_DONE(address,address,address,bool,uint256,uint256,uint256)","b7dcf6a9":"createPromoCollectible(uint8,uint8,uint256,address,uint256,uint256,uint256)","b7dd1d17":"getAllRevisionBlockNumbers(bytes32)","b7ddcb27":"InteractiveCrowdsaleToken(address,string,string,uint8,uint256)","b7de47d3":"getIndex(uint256,uint256)","b7dea35f":"hatchSeeds(address)","b7dec1b7":"GENESIS()","b7ded7cc":"purchaseHero(uint256)","b7df07a6":"receivePlayerInfo(address,string)","b7df7ef8":"AccountUnlocked(address)","b7df9289":"recvShrICO(address,uint256,uint256)","b7dfc8a5":"updateTokenPerEther(uint256)","b7e0308d":"priceStep2()","b7e05277":"private_DelGameBar(uint256)","b7e05d4f":"newProposallog(string)","b7e09773":"devTeamReinvest()","b7e1917c":"tokenAdmin()","b7e1b974":"getStr(uint256)","b7e1bce7":"ReceiverAddressChanged(address)","b7e1ecef":"addAttendantAndTransfer(string,string,bool)","b7e2263b":"getTotalMatches()","b7e24979":"addThing(bytes)","b7e28a3b":"certificationManager()","b7e2f504":"isPreSaleFinalised()","b7e39b4f":"setBalances(address[],uint256[])","b7e43a84":"maximumIssuerReservedUnits()","b7e45353":"forbidChecking(uint256)","b7e4a503":"Determine_Result(uint256,uint256)","b7e5cabb":"contractorsProfitAddress()","b7e621c3":"claimCompanyTokens()","b7e6bd34":"getTopic(bytes15)","b7e6dfe3":"GetApplicantAddress()","b7e82526":"GraybuxToken()","b7e83329":"ExportMaster()","b7e90262":"roleAdminAddress()","b7e92ede":"EtheRoox(address,address,address,uint256,uint256,uint256)","b7e9f193":"nextWithdrawal()","b7eb22b3":"getAccountsSize()","b7eb5e0a":"unlockAddress(address)","b7ec2086":"priceWei()","b7ec44b4":"asyncTransfer(address,uint256)","b7ecbaae":"removeWhitelistAddress(address)","b7ee2552":"ICOpaused()","b7eea206":"openLedgerAddress()","b7ef5fed":"claimRewards(uint16[],address)","b7efc1cd":"authorizeMintToken()","b7eff231":"oraclize_query(string,bytes[3])","b7efff16":"GANAPATI()","b7f01bfc":"tank()","b7f1489e":"setLosePercent(uint256)","b7f1e6af":"preferredSaleEndTime()","b7f2f33c":"transferRightIfApproved(address,bytes)","b7f37983":"getInvestmentRecordListLength()","b7f3ffed":"updateProfiterole(address,uint256)","b7f43a63":"brideVow()","b7f53c91":"CryptoSilver()","b7f545cc":"deployTokenContract(uint256,bool)","b7f603ff":"LimbToken()","b7f63665":"ttToken()","b7f6a75a":"XPAToken(address,address,uint256,uint256,uint256)","b7f6e74d":"unpositionFrom(address,address,uint256)","b7f79374":"DildoToken()","b7f84ae2":"icoPhaseTimeInterval()","b7f90f12":"decrementCount()","b7f927e6":"PROMETHEUS_VOUCHER_LIMIT()","b7f92b71":"reserveFund()","b7f9c4f6":"initCapsule(uint256)","b7fa265a":"_withdraw(bool)","b7fba4d3":"getProxy(address)","b7fc6612":"transferMany(address[],uint256[])","b7fcc321":"CryptoHoleToken()","b7fcfa69":"amountReceivedFromTransfer(uint256)","b7fd45a0":"EscrowICO()","b7fda832":"updateGenVaultAndMask(address,uint256)","b7fde9da":"mintCoins(address,uint256)","b7ff11be":"isAcceptedDcorpMember(address)","b7ff2aed":"withdrawMaker(address,uint256,address)","b8005f38":"execBoard()","b800b2fe":"BEZOS()","b800db55":"__isSenderInRole(uint256)","b8017221":"get_party2_balance()","b804dc56":"setRecallPercent(uint256)","b80509c5":"getCountsById(uint256)","b80540c0":"Adjudicator(address[],uint256,uint256)","b80546c2":"endPeriodA()","b805a5ca":"GetChip(uint32)","b8066bcb":"etherToken()","b8068a5f":"CATServicePaymentCollector(address)","b80756f0":"_calculateLockedBalance(address)","b80777ea":"timestamp()","b8077e28":"getTxOrigin()","b8079d49":"debitWalletLMNO(address,uint256)","b807ed76":"SANKEYSOLUTION()","b80825ff":"TheBittrip()","b808745c":"transferPass(bytes32,address)","b8087ac0":"goalMet()","b80907f2":"getReputationToken()","b809127e":"getQuickPromoBlockInterval()","b8093100":"giveBounty(uint256,address,address)","b80a30b7":"_getInvestorTokenAmount(address)","b80ac7df":"verifyProof(bytes32[],bytes32)","b80aedf2":"setReservedTokensList(address,uint256,uint256,uint256,bool)","b80cdcf6":"finishCrowdsale()","b80ced14":"LPCoinToken()","b80d3181":"annualPrice()","b80e63df":"baseTokenBalance(address)","b80ee369":"createCardForAcquiredPlayer(uint256,address)","b80f3532":"exchnageRate()","b8109e1a":"MeetingsEntity()","b810b81c":"Pixereum()","b810bfa4":"GDC(address,address,address,address,address)","b810d24b":"updMinPurchaseLimit(uint256)","b810fb43":"addressList(uint256)","b811215e":"initialCap()","b81168b4":"CNNTokenBase(uint256,string,string,uint8)","b8121385":"stopOperation()","b8121fe4":"viewPetitionSigner(uint256)","b8126a3e":"addSideService(address,uint256)","b812a6ce":"lastBlock_v11()","b813c627":"releasedSupply()","b813d939":"test_fourValidEqUint(int256)","b8144a72":"getBankRating(address)","b814660e":"AllowTransferLocal()","b8163641":"checkReceive(address)","b8174685":"_claimReward721(address,string)","b817e043":"JobMarket()","b818f9e4":"batchTransferFrom(address[],address[],uint256[])","b8198875":"StreamToken(uint256)","b81af39b":"declineMP(address,int256)","b81b0b6a":"claim(bytes32,string,string,address,bytes32,bytes32,uint8)","b81bb854":"createRequest(address,address[],address[],int256[],address,string)","b81c259e":"PexCash()","b81c6453":"vote(uint8,address)","b81ca723":"InitialCoinOfferingToken()","b81ccdd5":"cashilaTokenSupply()","b81ce8a7":"MicropaymentsNetwork()","b81db9da":"addUserValueName(bytes20)","b81df742":"minBuyLimit()","b81e3b19":"bankMoney()","b81e43fc":"getEventName()","b81ec822":"PRE_SALE_2WEEK_BONUS()","b81f39a8":"addToReserve()","b81ff45b":"getBalanceByAccount(string)","b8205d35":"IncentToken()","b820c41c":"iceToken()","b8216ea8":"redeemMany(address[])","b821da1b":"submitBid(uint256,uint256)","b821f815":"pay_winner(uint256)","b8225dec":"selfDestructInitiated()","b822b28a":"lastBlock_a8Hash_uint256()","b823aac7":"endICOTimestamp()","b823e991":"CourseCertification()","b8240a65":"UpdatedPrice(uint256)","b82465e9":"managerIncome(address)","b8248dff":"isValidOwner(address)","b82545e5":"judgeWin(uint256,uint256)","b8254880":"SurrusContract()","b8261f8f":"myEntityList(uint256)","b826d6d7":"DigiPulseToken()","b82852ec":"changeReserveIAMDestinationAddress(address)","b82864e0":"getHouseEdgeFee(uint8,uint256)","b828cfd2":"PRVTToken(uint256,string,uint8,string)","b8291bda":"Pomzon()","b829528e":"LotteryLog(address,string)","b82a0ce8":"bonusTime()","b82a65b2":"getReportingToken(uint256[])","b82a737c":"communityAmount()","b82b2a07":"makeProposal(uint8,uint8)","b82e6416":"doTimeoutForDefendant(uint256)","b82eb946":"_setStageLimit(uint256)","b82fb745":"saleEndAtBlock()","b82fcdeb":"tokensAllocatedForTeamAndReserve(address)","b82fd275":"removeFrozenTokenConfigurations(address[])","b82fedbb":"register(bytes32,address,bytes32,bytes32)","b8305b43":"HodlCreated(uint256,address,uint256,uint256)","b83069c5":"getStemPrice()","b830b305":"getpersonCount()","b830c538":"unassignRole(address,bytes32,address)","b8314c22":"whaleMax()","b831d137":"saleSharesSold()","b832004d":"setTokenInfoParametersReady()","b832679c":"setKmPards(address)","b832fdde":"NON_VESTED_TEAM_ADVISORS_SHARE()","b833ac27":"PolyToken(address)","b8341628":"mintingPreIcoFinish()","b834f6fb":"isMainChain()","b83506cf":"defaultBuyNowPrice()","b83520b3":"allowIcoExit(bool)","b835a7fe":"RubiksToken()","b8366bd1":"CorruptionCoin()","b837433c":"TEAM_ADVISORS_SHARE()","b837a3b8":"sendProfitsRewardBips()","b837c58e":"payTo()","b837c94f":"ASEBToken()","b8385339":"finalizeStage(uint256)","b8386f3b":"_gambling(uint256,bytes32,uint256)","b8388aca":"findBestRate(address,address,uint256)","b839e0d1":"lockedAllocatable()","b83a1bdc":"lastMineralUpdateTime()","b83a4da9":"totalWeiSale()","b83ace61":"setHouseEdge(uint256,uint256,uint256)","b83b4529":"FundsTransferredToMultisig(address,uint256)","b83c298e":"updateBoolSetting(uint256,bool,address,string,string)","b83d3f2c":"oraclizeSource()","b83dfdc9":"setInvestorData(address,uint256,uint256)","b83e1d14":"CountTokenUser(address,uint256,bool)","b83e4779":"OntologyToken(uint256,string,string)","b83e9662":"ParaTransfer()","b83fc6b6":"CrowdsaleClosed(uint256)","b8406a7e":"balanceOfLotteryNum(address)","b840a1db":"WhitelistChanged(address,bool)","b840b421":"OriginalVirtualOperation()","b8415b0c":"startDistribute()","b8416d2e":"exec(address,bytes32,bytes)","b84172e7":"getH1Bidder()","b842826c":"Built()","b842eef2":"test02BuyToken()","b8435050":"crowdsaleclosed()","b84391de":"setBetEndTime(uint256)","b8441be0":"setTransferAuthPermission(address,bool)","b8444c13":"forceVoidRace()","b845b51e":"IIPToken(uint256)","b845c9a2":"WEI()","b8471085":"PRIVATESALE_START_DATE()","b84738aa":"changeMinPay(uint256)","b848b944":"doSellerCancel(bytes16,address,address,uint256,uint16,uint128)","b8499750":"advisorLock()","b84a6849":"createShareToken(uint256)","b84aac5c":"decreaseApprovalPreSigned(address,uint256,uint256,uint256,uint8,bytes)","b84b05b2":"NetyulCrowdsale(address,uint256,uint256,uint256,address,address)","b84b276d":"second_whitelistSupplier()","b84b8b8c":"buyGoods()","b84c11da":"create(address,string,bytes32,uint256,address)","b84c35b3":"addCode(string,uint256)","b84c743b":"getReferencePrice(address,address)","b84c8246":"setSymbol(string)","b84cc017":"myBonus(uint256)","b84d2106":"shut(bytes32)","b84dda70":"tweakState()","b84dfbd2":"securityToken()","b84e1327":"checkIfContractCreatedHere(address)","b84e44ab":"setProviderLastSupplyID(uint256,uint256)","b84ebd7f":"createMechBTC(uint256,address)","b84ee1a4":"setTransferProxy(uint32,int256,address)","b84f1318":"AddNewCurrency(string,string,string)","b84fe73b":"voteAll(address)","b84fed88":"isMintContract(address)","b8500e5e":"purchaseRecordsNum()","b8506a3f":"tokensPerWei7()","b850ae36":"isRegular(uint256)","b851ed97":"bonusAllowed()","b8522043":"getUserList()","b8534ed1":"contractEndTime()","b8547736":"testBadWithGoodInterface(address,uint256,address,uint256)","b85477c5":"dealStatus()","b857a688":"Eth_Amount()","b858b39f":"PhotoAdded(address,address)","b85926e0":"VESTED_AMOUNT()","b85973c1":"overbidNation(uint8)","b8598f9e":"computeOppositePrice(uint16)","b85a6a20":"numComments()","b85bf538":"ownerSetBankersLimit(uint256)","b85c2f72":"submitEntry(uint256,uint256,uint256,uint256)","b85cf54e":"rewardPoolPercentage()","b85d6275":"RemoveModerator(address)","b85dfb80":"backers(address)","b85e0402":"AppCoinsIAB()","b85e0aca":"legacyRepContract()","b85e5915":"ExitPlincWithLoss(uint256)","b85e7df1":"setPresaleMode()","b85e84c0":"judgeFinality(bytes32[13],bytes32[],bytes32[],bytes32[10],uint256[4])","b85ea983":"countPortfolios(address)","b85eb295":"checkOwnershipAndAvailability(address,uint256[4])","b85ed17d":"getHolderByIndex(uint256,address)","b85f726a":"Cashier()","b861be22":"checkPermissions(address,address)","b8621759":"issueNewCoins(address,uint256)","b862d80d":"minBetVal()","b86397e7":"mFUNDING_CURRENT_DURATION()","b863bd37":"random(uint256)","b8642896":"ETSToken(address)","b864f5a9":"verify(uint256[],uint256[])","b8657988":"MYSUPERTOKEN()","b8661e2d":"getAllTeamsIds()","b86780b3":"restTokensBurned()","b867e8e6":"accrueDividendsPerXTokenETH()","b868723e":"endPrice()","b868a2ff":"update(uint256,uint256,bytes32[])","b8697dbd":"getLockByIndex(uint256)","b869f1e2":"SALE_CAP_IN_USD()","b86a1fb2":"adminPool()","b86a3582":"ETCH3dVs()","b86b14cd":"setRate1(uint256)","b86bc74f":"CERTIFIER()","b86c49e1":"getMarketsItemId(uint256)","b86c6b7b":"calculateCellBuy(uint256,uint256)","b86c9845":"MithrilSword()","b86dab46":"addToApprovedAddress(address)","b86df9db":"RewardRecycled(uint256,address,uint256,uint256,uint256)","b86e0657":"removeServer()","b86e321c":"withdrawReward(address)","b86ec38f":"REIMBURSABLE()","b86eeb69":"bountyTotalSupply()","b86f602c":"submitOrder(bytes,uint64,uint64,uint256,uint256,uint256)","b86f6aa7":"resetCollectedFees()","b8701689":"removeGlobalConstraintPre(int256,address,int256,address)","b870ecbb":"testNormalWhitelistAdd()","b870f613":"back(address,uint256)","b8716f3a":"_teamTransfer(address,uint256)","b8726395":"Mint(int256,uint256)","b873846f":"ArrayPasser(uint8[9])","b873e9a7":"trustedReportingParticipantTransfer(address,address,uint256)","b875a5e0":"rateThirdRound()","b8760ad3":"payStakingFee(address,uint256,uint80,uint80,uint256,address)","b87760ad":"uint256Tostr(uint256)","b8782d49":"PHASE2_RATE()","b8788453":"mainSale_StartDate()","b87aedcc":"recentPlayersFront()","b87b9ac3":"testExchangeRate(uint256)","b87ba329":"getMemoryTraceMeta(uint256)","b87c01e3":"GVPE_address()","b87c03c2":"multiAccessOwners(uint256)","b87c7d43":"setEthAmount(uint256)","b87cbafc":"bn128_check_pairing(uint256[12])","b87d8712":"RulesProposalSubmitted(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","b87dbf81":"handleAffiliate(uint256,uint256,uint256)","b87dddf6":"tokenFallback(address,uint256,bytes,string,uint256)","b87e461c":"scrapPercent()","b87e64ce":"DecentBetVault(address)","b87ee9d6":"setLLV_edit_4(string)","b87f9b98":"_stringToByte(string)","b87fb3db":"start_block()","b87fb721":"LogNewTemplate(uint256,address,string)","b87ff295":"MintTokens(int256,address,uint256)","b8803738":"total_user_eth_cap()","b88064ad":"peMinPerPerson()","b881604d":"removeStrip(uint256)","b8840d3d":"getDrug(uint256)","b88467c2":"getProjectEscrowAddress(bytes32)","b8847e9d":"haltRevealPeriod(bytes32)","b8850556":"ApplyAction(uint32,uint32,uint256,address,address)","b8851fea":"endDateStart()","b8852718":"transferLockedPart(address,uint256)","b8857936":"dtSetEthBalance(address,uint256)","b885acd8":"fourthWeekTokenPrice()","b885d560":"airDeliverStandalone(address[],uint256[])","b8867485":"proxyOf(uint256)","b8871f98":"_createEdition(uint256,bytes32,uint256,uint256,uint256,address,uint256,uint256,string,uint256,bool)","b8872fb7":"reinvest(address)","b8873077":"HUNT(uint256,uint256,uint256,uint256,address)","b88746b0":"previousDrawingClosed()","b8878171":"getPersiansBattlePointsBy(address)","b888690a":"deleteMessage(uint256)","b888a492":"isNewPayoutPeriod()","b888a66b":"tktPrice()","b88903f7":"TokenDrop(address,uint256)","b8894fe3":"mintTokenToBuyer(address,uint256,uint256)","b889d440":"markTokenSold(uint256)","b88a374c":"EarnEnoughMoney()","b88a529b":"getCurrentRate(uint256)","b88a802f":"claimReward()","b88ab668":"TBXToken()","b88c9148":"getFee(address)","b88d0169":"INITIAL_EMISSION_FACTOR()","b88d4fde":"safeTransferFrom(address,address,uint256,bytes)","b88d6aa7":"refund(bytes32,uint8,uint256,uint256)","b88e8518":"FluencePreSale(uint256,uint256,uint256)","b88e962f":"showEmployee(uint256,uint256,uint256)","b88eef53":"registryCreated()","b88f9936":"setMinTms(uint256)","b88fd16e":"developmentFundAddress()","b8901a41":"am_I_locked(address)","b8905649":"Crowdsale(address,uint256,uint256,address,address)","b8906755":"payProviderFee(address)","b890de6b":"thirdLineWrong()","b890ed85":"CryptoSagaCardSwapVer2(address,address,address,address)","b891656e":"thismanyblockstillthspudholderwins()","b8918710":"FangTangCoin(uint256,string,string,uint8,bool,uint256,uint256,uint256,uint256)","b893deb1":"getContestEndTime()","b89503f3":"getDiceWinAmount(uint256,uint256)","b895947a":"Janders()","b895c813":"registIcoAddress(address)","b896149c":"BLUEOS()","b8972db5":"sendToken()","b8973927":"setContractStart(bool)","b89761b8":"encoded_data()","b897b4f5":"multAirdrop(address[],uint256)","b8991ffb":"reject_payment(uint256,bytes32)","b899e1b7":"_setApp(bytes32,bytes32,address)","b89a73cb":"isShareholder(address)","b89bf71d":"safeWithdrawal4(address)","b89c5932":"setRequestLimitInterval(uint256)","b89c70c0":"calculateCoinBuy(uint256,uint256)","b89cd5bd":"icoPartner(address,uint256)","b89e066a":"MINCAP_TOKENS_PRE_ICO()","b89e8cbb":"getRemainingSellingTime()","b89f3025":"investExt(address,uint256)","b89fc89e":"setDistributionAddress(address)","b89fde71":"CheckAmbientTempException(bytes32,uint32)","b8a15b1d":"bobMakesErc20Payment(bytes32,uint256,address,bytes20,address,uint64)","b8a1e355":"doBet(uint256)","b8a1fdb6":"transferAndFreezing(address,uint256,uint256,uint256,uint8)","b8a24252":"checkpoints(uint256)","b8a25119":"setPresaleMode(bool)","b8a268c1":"getCloseFlag(bytes)","b8a32c7e":"claimTile(uint256,uint256,uint256)","b8a358e9":"canMintUtility(address,uint256)","b8a393b8":"openCompetition()","b8a3c6ea":"KPCSAdministrator(string)","b8a4a064":"applauseCashCrowdsale()","b8a4b858":"INVESTOR2()","b8a4db81":"addValueBonus(uint256,uint256)","b8a4f9ae":"addInFutureExpanstionMap(address)","b8a5368a":"gameStart(uint256)","b8a548c5":"SCTokens()","b8a582a9":"EtherMoney()","b8a582af":"logicVersion(address)","b8a67b6e":"GiroToken()","b8a67c3c":"expireDate()","b8a684f8":"CryptoSagaSwapPLAT(address,address,address,address)","b8a76f54":"setIPFSHash(string)","b8a7c78a":"CommunityAddress()","b8a80aac":"getItem(address,uint256)","b8a876ed":"Quitcoin()","b8aa0a34":"getSealDate()","b8aa4da8":"addMemberToBS(address)","b8aaae7a":"PXXToken()","b8aac3a5":"createAndSignBBODocument(bytes,bytes,address[],uint256)","b8ab9203":"secondRoundMayTokensLimit()","b8ab9883":"claimTimeoutEndedWithMove(bytes32,uint256,uint256)","b8aba8cf":"NewPayment(address,uint256)","b8abd184":"getInvestorKey(bytes32,uint8)","b8aca90b":"CurrentGame()","b8ad2abe":"addTokenGrant(address,uint256)","b8ad2fca":"claimMeme()","b8adaa11":"reject(uint256)","b8af146f":"subsm(uint256,uint256)","b8af21b9":"isLotteryClosed()","b8af6bc7":"getAgentsAmount()","b8afae78":"IPM2COIN()","b8afd597":"FinishRoundGamble()","b8b040a1":"xapo()","b8b0f533":"get_bitcoineum_contract_address()","b8b13e6b":"MaximumcoinStart()","b8b18915":"withdrawBonus(address)","b8b199e5":"_userSignUp(string,address,bool)","b8b19c27":"MultiOwnable(address[16],uint256[16])","b8b2052c":"setCrowdsale(address,address)","b8b23120":"getFlagPrice()","b8b27765":"payManagementBodyPercent(uint256)","b8b2bdad":"setBool(string,bool)","b8b2d490":"feePerSec()","b8b3d85b":"getFunderBalance(address)","b8b459bc":"OrderUpdated(uint256)","b8b4f1a0":"signContract()","b8b52652":"startFightA(uint256,uint256,bytes4)","b8b570f1":"Distributed()","b8b690e7":"__targetExchangeCallback(uint256)","b8b798be":"getYearlyUSDSalariesTotal()","b8b7b899":"receiveTransfer(address,uint256,address,bytes)","b8b7edb2":"hashToken()","b8b808cc":"getAddressFromNumber(uint256)","b8b85873":"purchaseArray(uint256)","b8b8d387":"myWeiValue()","b8b8fc3a":"getPI_edit_20()","b8ba427d":"RetDime()","b8ba532f":"developer_edit_name(string)","b8ba7c7f":"createGen0Auction(uint256,uint8,uint8,uint8,uint8)","b8baed2c":"calcTradeFeeMulti(uint256[],uint256[])","b8bb372c":"APIHeaven()","b8bcaad5":"_randomPack(uint256)","b8bce6d0":"dateEcoRelease12()","b8bcf6c9":"ico2ndPrice()","b8bd3dbb":"setMakerFee(uint256)","b8bdd8dd":"close(bytes)","b8bdf701":"initiateCreateSale(uint256,uint256,uint256,uint256)","b8be73ed":"offchainUploaderAddress()","b8beafd6":"buyVolumes(address,address)","b8bf029b":"list(address,uint256,uint256,uint256,uint256)","b8bf0f1f":"getRemainingBlocksUntilPayoutk()","b8c0517a":"splitStake(address,address,address,uint256)","b8c26d0b":"ContractWithParams(address)","b8c2a9e1":"getBidReports(uint256)","b8c375b6":"WavesToken()","b8c48f8c":"setInitialParent(int256,int256,int256)","b8c508e5":"MOBOL()","b8c52477":"_exchange(uint256,uint256)","b8c577ff":"setGrowth(uint32)","b8c58128":"setList(uint256,uint256[])","b8c65462":"preICOSaleStart()","b8c6a67e":"maxPendingParticipants()","b8c6d2e9":"BretCoin()","b8c6f579":"setAuction(address)","b8c766b8":"saleClosed()","b8c78391":"releaseableBalanceOf(address)","b8c7dea3":"stageCurrentSum(uint256)","b8c7e354":"tryToCompleteProject()","b8c86aa6":"getArraySettingResult()","b8c87a06":"setStage3()","b8c8fb73":"solve(uint256,uint256,uint256,uint256)","b8c92537":"acceptBidForCollectible(uint256,uint256,uint256,int256)","b8c9371d":"getPassOwner(bytes32)","b8c963a6":"atxContract()","b8c9c4d2":"burnResource(uint16,uint256)","b8c9d365":"h()","b8c9e4ed":"getStr()","b8c9e694":"getRaceMutation(uint32)","b8cb243d":"escrowTransfer(uint256,address)","b8cb40e0":"getDistributedTotal()","b8cb65ee":"removeTokens(uint256)","b8cc3c12":"depositToSubRound(uint256)","b8ccbd17":"removePermission(bytes4)","b8ccc682":"constructUrl(bytes32,uint256)","b8ccf4c7":"sendPositiveWhuffies(address,string)","b8cd0b94":"DoorLock()","b8cd4a8e":"joinCarveUpTen(uint256)","b8cd81ed":"raffleTokenReward()","b8ce670d":"burn(address,uint256,address)","b8cf14e7":"updateStatusPlayer()","b8cf2515":"currentFundrise()","b8d00d4a":"requestErc20Transfer(address,address,uint256)","b8d04f4e":"getReferrerAddress(address)","b8d08db2":"releaseCount()","b8d0cf4a":"setTokenPriceUSD(uint256)","b8d117fc":"bonusEnds4()","b8d1194c":"tokenGoal()","b8d16dbc":"isLeapYear(uint256)","b8d2f523":"no_aff()","b8d364bb":"allDistinct(address[5])","b8d3bfe3":"MeatGrindersAssociation(address,address,uint256,uint256,uint256,address)","b8d3d08a":"assertEq29(bytes29,bytes29)","b8d400d2":"fromEthers(uint256)","b8d415c9":"bntyMicrodollarPrice()","b8d46c9c":"setOrUpdateRecord2(string,string,string,string,address,uint8,bytes32,bytes32)","b8d4b642":"startICODate()","b8d4efb5":"validate_percent(uint8)","b8d55a91":"CPLToken()","b8d5b7f0":"maximumToken()","b8d73101":"expirationString()","b8d73849":"LogTokenDeposit(address,uint256,bytes)","b8d74f4b":"getAcceptedTokenAmount(address)","b8d85d23":"adminSetAddress(address)","b8d87069":"_removeContributor(uint256)","b8d94039":"writePosition(uint256,int256)","b8d94b95":"buildDSNullMap()","b8d9cbbe":"addMember(address,uint256,uint256,uint256)","b8daf1b1":"cancelChainlinkRequest(bytes32)","b8dbf876":"transferFromOwner(address,address,uint256)","b8dd3c55":"confirmSettingsChange(uint256)","b8dd7a5b":"numberOfWagersToMinimumTimeout()","b8ddc4df":"HPA_TokenERC20(uint256,string,string)","b8ddef1a":"IdeaCoin()","b8de3843":"allAmountRaised()","b8de85d8":"p_setBankOfEthAddress(address)","b8df17f0":"verifySigner(bytes32,uint8,bytes32,bytes32,uint256,uint8,uint256,bool)","b8df5ce3":"ownerInitialBalance()","b8e010de":"set()","b8e046d1":"MinexoDigital()","b8e0d08d":"increaseHardCap(uint256)","b8e0ffbe":"getPaymentsLength()","b8e2cfb1":"getMinMaxInvest()","b8e31ee7":"MithrilGauntlet()","b8e381e5":"subscriptions()","b8e3d8e8":"LOL()","b8e3e6da":"participateCrowdsaleAll()","b8e4189c":"updateHighestMiles_(uint256,address)","b8e42041":"invalidateOrdersBefore(address)","b8e44852":"chargeTokensForManagement()","b8e60467":"LRCMidTermHoldingContract(address,address)","b8e6a433":"calcFactorReward(uint256)","b8e920de":"buyTicketTest2(bytes)","b8e945fc":"setOwnerNick(uint256,string)","b8e9a6f0":"addLockedAccount(uint8,address,uint256)","b8e9ac71":"BICToken(uint256,string,string)","b8e9c22e":"getRate(address,uint256,bool,uint256)","b8eaffcc":"getnodeparam(address)","b8eb115e":"increaseDuration(uint256)","b8eb3546":"maxSell()","b8eb993d":"PUBLIC_SALE_TOKEN_CAP()","b8ebed78":"rightForInterest(uint256,bool)","b8ec59e4":"changeColorOrange()","b8eddde1":"paymentsOwed(address)","b8ef04e7":"_getRandomNumber(uint256,uint256)","b8ef5f4d":"nextGameSeedPercent()","b8ef9fcc":"cardAddressExists(address)","b8f20cfd":"myBalances()","b8f249e2":"testThrowsSaleWalletIncorrectSaleAddress()","b8f2690d":"TestDividendFund()","b8f28531":"notEqual(address,address,string)","b8f2954d":"addData(bytes32[],bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256)","b8f2bbac":"modify_perms(bytes32,bytes32,int256)","b8f3b75d":"buyWithAddress(address)","b8f47481":"withdrawErc20ForAddress(address,address,uint256)","b8f48d3d":"setMaxRoundSize(uint256)","b8f53f36":"maxPrivateSaleStage()","b8f5e56c":"DeClub(uint256,string,string)","b8f6c219":"purchaseDatesToken(uint256)","b8f6d3ef":"getNodalblockData(string)","b8f6e7ff":"changeMarketStatus(uint8)","b8f71f26":"scheduleTransaction(uint256,address)","b8f75c0b":"bountyFactory()","b8f76562":"setWithdrawable(address)","b8f77005":"getQueueLength()","b8f78178":"createNameAndPoint(int256,bytes32,address)","b8f7a665":"isLive()","b8f7f41e":"drpCrowdsaleRecordedBalance()","b8f929ad":"saleWhitelist()","b8fa7778":"for_votes()","b8fbb72d":"COMMON_WITHDRAW_SUPPLY()","b8fbb87d":"isAssociatedAddressFor(uint256,address,address)","b8fbe499":"Cygnus()","b8fc7bd0":"setPresidenteDeMesaVerify(bytes32,uint256,uint256,uint256,bytes32)","b8fcf937":"myToken()","b8fd1e10":"updateBalancesContract(address)","b8fd1ffa":"addressToEtherOwed(address)","b8fe6f93":"triggerTransaction(uint256,uint256)","b8ffc962":"isMaxSupplyLocked()","b8ffd53f":"getStageStartTime(bytes32)","b8ffd64b":"PowTokenBase()","b9002e62":"delegatedFwd(address,bytes,uint256)","b900a870":"getApprenticeChestPrice()","b900da19":"calculateBonusPercentage(uint256)","b9019437":"eitherHaveAttribute(address,address,bytes32)","b9022e44":"updatePresaleWhitelist(address[],bool)","b90291c3":"changeWebsite(string)","b902c833":"switchfor()","b90306ad":"Burn(uint256)","b9037bc2":"unlockTokensForAddress(address)","b903a2a5":"MultiTransfer(address[],uint256)","b904088e":"maximumInvestment()","b9043235":"_create(uint256,address)","b90436ba":"MBT()","b9045c00":"InvestCoin()","b904ef4a":"delUIntValue(bytes32)","b9068d9e":"distributeFunds(uint256,address,address,address)","b906b7b7":"burnPercentage10m()","b9078616":"executeTrade(address,address,uint256,uint256)","b907996a":"Forwarder()","b9089280":"admin_del(address)","b908b008":"verifyTx(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[1])","b9093fc6":"addIdentity(address)","b9098b33":"krs()","b90a4df1":"ApushJoustUser(address,address)","b90ae5a1":"registrarAuth()","b90b0108":"iconcontract()","b90b09c0":"random_bool(uint8)","b90b1248":"extractTokenEth(uint256)","b90b9aea":"EOCToken(uint256,string,string)","b90c1dbb":"getCreationDate()","b90c8566":"Somplak()","b90c86a9":"LogOraclizeCall(uint256,bytes32,string)","b90c92e2":"FysicalToken()","b90cec6d":"AddOfficialApps(address)","b90d3d0c":"data(address)","b90d86b9":"autoMatch()","b90d89a0":"start_seller(address,address,uint32)","b90da496":"getRankTitle(uint256)","b90dcc58":"SAFEToken(uint256,string,string,uint8)","b90e6bd8":"userRound(address,uint256)","b90f1af1":"icoEndUnix()","b90f65a2":"canCancelBet()","b910378d":"getBI(bytes32)","b91038c7":"participate(address)","b9103e1f":"refundAction(bytes32)","b9106dd9":"setAllowAccess(address,bool)","b91070e8":"processEmergencyFundReleaseFinished()","b9119b87":"ChangeSwapperAddress(address)","b911f2fb":"settleCandyGetx(uint256)","b912950e":"buyItemRaffleTicket(uint256)","b91366b0":"upgradeReactor()","b9138584":"Deedcoin()","b9140422":"readMailByAdmin(uint256,bytes16,address)","b9144c96":"TokenMinted(address,uint256)","b9145944":"verifySig(address,bytes32,bytes)","b914cf7c":"leve1(address)","b9156830":"hasPriorDuplicate(string,uint256)","b9166178":"investorWallet(address)","b916c5ff":"redeemCoupons(uint256,string)","b916de59":"reset(address[])","b916e5d0":"goldenTokenId()","b916f8fd":"delistMon(uint64)","b9172dec":"changeStage(uint8)","b9174330":"gco(uint256,address)","b9186d7d":"priceOf(uint256)","b919be66":"useMultipleItem(uint256,uint256,uint256,uint256,uint256)","b91aedab":"transferLocked(address,uint256[],uint256[])","b91bb31c":"initLottery(uint256,uint256,uint256)","b91bf310":"initialChargeFeePool(address)","b91c771f":"replaceProduct(address,address,address,address)","b91d1aed":"createPassport(uint256,bytes32)","b91d3ace":"addDev(address)","b91d4001":"releaseTime()","b91d4a0f":"frontWindowAdjustmentRatio()","b91dee6c":"ResetUpdateState()","b91e3422":"premiumHold()","b91e4087":"validAddresses(address)","b91fe64b":"getLastDepositDate()","b9204d1c":"TeamVestTimeLimit()","b9209e33":"isVerified(address)","b920c799":"Insureum(uint256,uint256)","b9212662":"s13(bytes1)","b921e163":"increaseSupply(uint256)","b9223946":"endVote()","b9224385":"LogResultWinner(uint256,address,uint256,uint256,bytes)","b92289ef":"sendleftmoney(uint256,address)","b9235d08":"FlippedCoin(address,uint256,int256)","b923b205":"setWhitelist()","b9247673":"buyListing(bytes32,uint256)","b9256f7e":"newTickerQueryResult(string,bytes32)","b925af47":"creatorsTotalBalance()","b92620bd":"targetWallet()","b926bd06":"Prepurchased(address,uint256,uint256,uint128,uint256)","b9272a11":"_redeemAdoptedAxies(address,uint8,uint256)","b927ef43":"validatorSetApplyBlock()","b928024d":"tokensPerWeiBonus250()","b9291296":"useMyOldName(string)","b9292158":"getTimestamps(address)","b929709a":"getPOOL_edit_1()","b92984f8":"TokenGame()","b92a3961":"currentRoundBudget()","b92a56bf":"deathData_v10()","b92ae87c":"isSubscribed(address)","b92b9d6c":"replacePublisherRegistry(address)","b92cb5b8":"addBrick(uint256,string,string,uint256,string,bytes32[],uint256)","b92cc8cf":"isExisting(uint256)","b92cd8f1":"officalHolding()","b92ce1a7":"createRandomCharacter()","b92d6c2f":"TWCToken()","b92dd395":"setManagerPowerful(bool)","b92ddee6":"setStartTimeIco(uint256,uint256)","b92e9f9e":"reportWasCalled()","b92edfc6":"NumberOfAuctions()","b92f1986":"IMDEXinvalidateOrdersBefore(address,uint256)","b9308d9e":"updateName(address,string)","b9318b0c":"_born(uint256,uint256)","b931b484":"bountyTokensLeft()","b931bec5":"setContractErc20Token(address,address)","b9324db6":"upgradeCardShield(uint256)","b9330829":"maxUint256()","b935170b":"addShopOwner(string,string)","b93529bc":"tokenTicketPrice()","b9358ba4":"isApper(address)","b9359169":"GayPersonalAds()","b9364835":"getCatOwner(uint256)","b93651bb":"__initFuse()","b9368721":"balancesRiskcoins()","b93806ab":"setWinningNumbers(uint256,string)","b9381f3c":"checkCapsAndUpdate(uint256,uint256)","b93833c3":"changeRewardAmount(uint256)","b9384f12":"changeMinCapUSD(uint256)","b938b469":"SetRewardMultiAD(uint256)","b938bf42":"sendBounty(bytes32)","b93983dd":"StoxSmartTokenSale(address,address,uint256)","b93a4408":"setMintFrequency(uint256)","b93a50b0":"_setApprovalForAll(address,bool)","b93ab165":"getCurrentInfo()","b93c109f":"totalInterests()","b93c3de2":"getHistoryRoundList()","b93c7d42":"sellDividendPercentCandy()","b93dab0b":"getBetCount()","b93dc802":"setEth(uint128[2])","b93e0e39":"ROCK()","b93ea812":"subtract(int256,int256)","b93eb763":"x(int256,int256)","b93f9b0a":"getAddress(uint256)","b93fd2bf":"createCustomAtom(uint64,uint8,uint8,uint8,uint128,uint128,uint32)","b9408373":"USD_PER_ETH()","b940db1a":"sellAllDolAtOnce()","b9413c47":"totalReturnedCredit()","b9420310":"tokenSale()","b942394d":"getPercent2(address)","b94265b8":"addReferrer(address,address)","b9429069":"isFarmer(address)","b94371ec":"getWhitelistOwner()","b9447f7e":"customBuyerForIndex(uint256)","b944ef3c":"initialTraining()","b94512c7":"BioCoin()","b9459b70":"getCurrentLuckyStonePrice()","b9460d04":"updateTicketVault(uint256,uint256)","b94669e5":"interfaceThawTokens(address,uint256)","b9468f7e":"bid(uint256,bool)","b946c19c":"rankDataContract()","b946fab1":"maxAmountPresale()","b9474959":"_isTokenOperator(address,uint256)","b94761b4":"SetupAllowance(address,uint256)","b94776de":"mintUnlockTime(address,uint256,uint256)","b9478ade":"DylanCoin(uint256,string,string)","b948348c":"purchaseTicket(uint256)","b94844dd":"AAAToken()","b9484955":"getInvestorArray()","b9488546":"ownersCount()","b9499cd6":"Midwife()","b94b0a3a":"getFulfillment(uint256,uint256)","b94bae91":"setUser(address[])","b94bc7fe":"proofOfSalt(bytes32,uint8)","b94c3451":"techBuff()","b94cc52f":"mark(address,bytes32)","b94e3516":"TAKCoin()","b94e962a":"allocateTickets(uint256)","b94ee0fc":"Triunvirate(address[])","b94f5a6e":"eventPirze(address,uint8)","b94f969c":"investmentBTC()","b94fa03f":"requiredSharesToBeBoardMember()","b94fb4a3":"WaykiCoin()","b94fdaab":"upload_group_key(uint256[4])","b950556a":"setThingValid(bytes32[],bool)","b950ae2b":"changeTopWithdrawable(uint256)","b950f0a0":"rateTier3()","b95254f6":"setAsLotteryRunner(address,bool)","b952ab7b":"unclaimedTokensForInvestor(address)","b9531df3":"lowTimeBonusLimit()","b953a9ac":"getDocumentProposalCount()","b9541ad5":"resetReferee(address)","b95459e4":"moduleRegistry()","b95460f8":"open(address)","b954ca70":"setcapbounus(uint256,uint256,uint256)","b95594e5":"lineOfPlayers(uint256)","b9559685":"StateHolder()","b955b95c":"getKindOfPackage(address)","b955e60d":"roundData(uint256)","b956a8a6":"easyMineToken()","b9570c01":"transferAndCall(address,uint256,bytes32)","b957aeb6":"getUserReaction(uint256)","b957b886":"stackOffset(uint256)","b9582195":"SFXToken()","b958893e":"XTVAirDropped()","b9588adc":"getStageAttributes(uint8)","b958a5e1":"getPhoneByAddress(address)","b958abd5":"setA(string)","b9592e92":"setGM(address)","b9599f3a":"fetchUndistributedProfit()","b95a4baf":"daysSinceLaunch()","b95a8327":"marketGrapes()","b95af889":"processTransferToICAPResult(address,bytes32,uint256,bool)","b95bb4f8":"price(uint16)","b95c2740":"buy(address,bytes)","b95cbed6":"currentExpiryInterval()","b95d2a53":"deedUri(uint256)","b95f2be8":"_releaseVouchers(address,uint256)","b960a45f":"unpauseTrueUSD()","b960a6d4":"ITTMultisig()","b96144fd":"removeUsername()","b9615878":"getHeader(bytes32)","b961716b":"getActiveTier()","b961b1e0":"teamNamingIncome()","b96297b5":"killya()","b962de9a":"ProsperaToken(uint256,string,uint8,string)","b9632689":"numFunders()","b9635685":"JAJToken()","b963e1d0":"getPurpouse()","b964608d":"get_return_by_level(uint256)","b9649e52":"getPlayerPotWinning(uint256,uint256,uint256)","b96528fd":"pubAddress()","b9653382":"firstPeriodEndDate()","b965817d":"UBSCoin()","b9659d4a":"sibling()","b9668eb2":"settleUnclaimedPerTokenPayouts(address,address)","b966f350":"tokenMintingEnabled()","b96732d9":"TransferToSAToE(uint256)","b9676e72":"SPTToken()","b967a52e":"setContactInformation(string)","b968440a":"Finalized(uint256,uint256)","b968486e":"isLottoStarted()","b96890a1":"airdroptoken()","b96891e5":"getAddressesSize()","b9689cf3":"crowdsaleAirdropAddress()","b968a53c":"getBurnAddresses()","b969d399":"getBattleCooldown(uint64)","b96a39bd":"createPlayer(string,uint256,uint256)","b96b8edf":"changeAirdropQty(uint256)","b96bf2b5":"expressReloadNumSec(uint256,uint256,uint256[],uint256[])","b96c0866":"completeOrder(string)","b96c10ba":"_assign(address,address,address)","b96d64fb":"start_quiz_game(string,string)","b96dc22a":"enableLambo(uint256)","b96dc96d":"delCertificate(string)","b96e988b":"addressBilborough()","b96f54d1":"fixedReverse(uint256[10])","b96f8a39":"Voting()","b970e3d0":"JATICO()","b971667c":"calculateEmissionTokens(uint256,uint256,uint256,uint256)","b9717b23":"setOdd(uint256,uint256,uint256)","b971a1f8":"VivekTestToken()","b971b4e5":"setNotTransferable(bytes20)","b9727dc2":"getProjectClient(uint256)","b9727f50":"saveRevenueShareDistribution(address,uint256)","b97386d1":"reputationProblems(address,bytes32)","b973b286":"Imteaz()","b974b0a3":"allData()","b974ddcb":"getAnimalById(uint256)","b9750acf":"selfDestroy()","b97585d3":"addOldNickname(address,string)","b975ce23":"crownName()","b975d9c7":"setCCH_edit_32(string)","b976b35b":"uponTransfer(address,address,uint256)","b976f464":"authoriseAccount(address)","b9774f7b":"confirmations(uint256)","b9776301":"testTrustedTransferFrom()","b9789d7d":"ChangeDeadLine(uint256,uint256,string)","b97a6c12":"redeemForReportingParticipant()","b97a7d24":"getGoal()","b97af2c8":"setTokenDecimals(uint256)","b97b451e":"increaseApprovalPreSignedCheck(address,address,uint256,uint256,uint256,uint8,bytes)","b97b9df8":"AUACoin()","b97cab2c":"convert2Peony(uint256)","b97ce4d3":"distributionteamFinished()","b97d3627":"TosToken()","b97df70a":"setTokenReward(address,address)","b97e3b43":"setMintAgent(address,address,bool)","b97fd9e1":"releaseWallet(address)","b9812d9a":"getNextReportingWindow()","b981655f":"DebtManager()","b9818be1":"feeOwner()","b982e5c1":"testAddPending()","b9843c7c":"setUnavailable()","b9844d6f":"updateSelfDropStageState(uint256,uint256,uint256,uint256,uint256,uint256)","b9855c76":"restartPeriod()","b9858a28":"addContract(address,address)","b986b611":"withdrawAddressUpdate(address)","b986bb67":"STATUS_DESTROYED()","b9871548":"set_token_address(address,string)","b9879450":"CREATOR_TOKEN()","b987ae02":"fundWithdrawal(uint256)","b987bdac":"InterCrypto()","b987f688":"gettotalCards()","b9883b3f":"main(uint16,uint8,int256)","b988899f":"setBenificiary(address)","b988c505":"newProposal(address,uint256,string,bytes,uint64)","b9890a74":"initBonuses(string)","b989915c":"lastUsdPerEthChangeDate()","b989c7ee":"returnInt32(int32)","b989ffa7":"getArtist(bytes32)","b98a5418":"assignedAmountToAngelInvestment()","b98aacf0":"retreiveHrt(string)","b98b5f9c":"listPrycto1()","b98bafde":"Redeemed(uint32,address)","b98bcf16":"getPubKeyByHash(bytes28)","b98c90c2":"ECOS(address)","b98cb57e":"rinkeby()","b98d49a5":"getSponsorshipCount(address)","b98dbb50":"updateprojectDuration(address,uint256)","b98de7c7":"setLive()","b98e2769":"sketchNoLongerForSale(uint256)","b98ef00d":"disclosureList(uint256)","b98f0992":"TokenRK50Z()","b98f5932":"getUserExp(address)","b98fa504":"AddTower(uint32,uint16,uint16,uint256,uint256,uint16,uint16)","b98fb437":"getethused(address)","b98fdc36":"IconomiToken(uint256,string,uint8,string,uint256)","b990033e":"setNewRegister(string,bytes32,uint256)","b9902eef":"Rate8()","b9908cbb":"maximalIndividualContribution()","b9910c5f":"JixoCoin(uint256,string,string)","b991357c":"isAdvisorsTokensThirdReleased()","b99152d0":"balanceOfToken(address)","b991bc14":"direct_refunds(address[],uint256[])","b991f607":"Bank(uint256,uint256)","b9926d1d":"limitBuy(uint256)","b992812e":"hasIssued(address)","b9931d30":"getPlayerToken(uint32)","b9934b9e":"ownerResumeContract()","b99371a0":"GetPrestigeInfo(uint256)","b993a53e":"preSaleBalancesOf(address)","b993a91f":"migrationAccountCounter()","b993c871":"NGToken()","b995b014":"_exploreUsingEmont(address,uint256,uint256,uint256)","b995ce4d":"returnTokenAddress(uint256)","b99613cb":"getPlayRecordNoTurnData(address,address)","b99798e8":"accFounder()","b9980306":"processARvRevForecast()","b9981a67":"firstBalanceOf(address)","b9997819":"ownerSetHouseEdge(uint16)","b999abbc":"Spole()","b99a8a00":"exchange_coefficient()","b99ac856":"roundin(address)","b99b2f81":"myReferrals()","b99b951d":"claimTokensE(uint8)","b99c2b51":"_getWinAmount(uint8,uint8,uint8,uint24,uint256,uint256,uint256,uint256,uint256)","b99de11e":"endThirdWeek()","b99dfe18":"getPackage(uint256)","b99ec99a":"AuditorRegistryReplaced(address,address)","b99eccc1":"SplitWeighted(uint256)","b99f1d02":"claimClusters()","b99f247d":"ERGCOIN()","b99f48d5":"promisedPop()","b99f6073":"tokenPurchased()","b9a0157e":"setArrayIndexValue(bytes32,uint256,bytes32)","b9a0a708":"testChargesAmountApproved()","b9a0c1bb":"_approveRobot(uint256,address)","b9a1bd86":"registerPrivateContribution(address,uint256)","b9a2131b":"ContractTST()","b9a29d42":"getKevin()","b9a2de3a":"endAuction(uint256)","b9a30afb":"HelloGoldSale(address,address,address,address)","b9a41409":"gcpa(uint256)","b9a45aac":"whitelistAddress(address,bool)","b9a4a755":"afterApproveAction(uint256)","b9a4defe":"changeTargetAddress(address)","b9a52203":"saveRN(uint256)","b9a527b4":"book(address,address,uint256,uint256)","b9a54062":"getMaximumWritesPerStep()","b9a59b83":"isEngineerContract()","b9a5a2d9":"numberOfApprovedSteaks()","b9a5e073":"contracteesSize()","b9a60038":"totalTransactions()","b9a68300":"bountyOnlineWallet()","b9a6e94c":"buyTile(int32,int32)","b9a6f7b0":"BTHB()","b9a804fb":"ArrowTestCoin()","b9a82f80":"buyPepe(uint256)","b9a904f9":"testUnauthorizedSetBetaPackage()","b9aa8236":"getMaxAgonId()","b9aaaeee":"populateTierTokens()","b9ac0524":"icoEtherReceivedTotal()","b9ac38aa":"test_newProposalAndVoting()","b9aceb63":"BuyTicketUseVault(address,uint256)","b9ad36b9":"prophecise(bytes32)","b9ad771c":"registerHWCWit(string)","b9ae4bda":"associatedPubkeys(uint256)","b9ae7364":"pauseAuction()","b9af809e":"getMinEthersInvestment()","b9afd6e1":"returnChildAddressForParent(address)","b9b162c3":"calculateTop5HeroesPower(address,address,uint256)","b9b1c90c":"moveToSafetyWallet()","b9b237c2":"tokenFunded()","b9b26bd2":"registerBroker()","b9b2a331":"setAccPrice(uint256)","b9b2a890":"rewardDaily(uint32,uint32)","b9b2b5cd":"totalFeeCollected()","b9b3ded2":"createDividend(uint256,uint256)","b9b42602":"ethRefunds(address)","b9b43faa":"createInt256s(bytes32[],int256[])","b9b466ab":"myLoveBlockCount()","b9b6990b":"getUserBetsInARazInstance(uint256,uint256)","b9b6c2d4":"getAmountOwed(bytes32,address)","b9b7238b":"addInvestorBonusInPercent(address,uint8)","b9b7569b":"isGameLogicContract()","b9b7b68c":"limitbreak_contrib()","b9b842e5":"setCandyLand(address)","b9b8af0b":"halted()","b9b8c246":"invest(address,uint256)","b9b8e25d":"getRemainingTokensToSell()","b9b94997":"repossessBooking(address,uint256)","b9ba2926":"receivedCollateral()","b9bac5f8":"lockedUntilTime()","b9bcf81f":"getTlength10()","b9bd4f76":"newSale(uint256,uint256,uint8,uint256)","b9bda244":"sumICO()","b9bdbbbb":"FILMToken(uint256,string,uint8,string)","b9beadae":"testCantBuyTokensInEndedSale()","b9beeb8d":"DatingCoinToken()","b9bf068e":"getUncompensatedContributors(uint256,uint256)","b9c009f0":"checkContributorBalance(address)","b9c0d227":"defaultTokensPerWei()","b9c105cf":"getTaskRewardAndStatus(bytes32)","b9c1a60a":"econReserveAllocation()","b9c2c6fb":"removeMember(bytes32)","b9c2ee82":"upgradeController(address)","b9c3395f":"getTokenAmountBonus(uint256)","b9c3515c":"votingActive(bytes32)","b9c390aa":"SaferEcRecover()","b9c3a818":"TEAM_SUPPLY()","b9c4d0a7":"fundOrder(uint256)","b9c53d04":"SECCoin()","b9c5be85":"allocatePurchase(address,uint256,uint256)","b9c5eb90":"updateVoucherMthRate(uint256)","b9c7ce49":"totalIssuingCollateral()","b9c81f1d":"Membership()","b9c8464d":"extractFees(uint256)","b9c8559d":"RocketPoolReserveFund(address)","b9c89ff7":"getTargetRepMarketCapDivisor()","b9c97a44":"UnlockAccount(address)","b9c99e5e":"DepositUnfrozen(address,uint256)","b9caebf4":"del(address)","b9cb385d":"invitedInit(address,address)","b9cb5b5f":"HatchEggs()","b9cbbb62":"testInequalityAddr()","b9cc8b48":"oraclizeOn()","b9ccaed2":"getMesas()","b9cce72c":"addFlag(bool[2])","b9ce10d5":"Fyle(string,string,uint8,uint256)","b9ce795f":"createVoter(string)","b9ceda19":"updateTokenNameAndSymbol(string,string)","b9cf01a1":"Cardiology()","b9cf9d49":"getNextOrderUser(address,address,uint256,address)","b9d0a638":"Bro()","b9d1d49b":"minimumBalance()","b9d1ed4a":"ethDeposits(address)","b9d1fd60":"fundingMaxAmount(address)","b9d2fa35":"disableFundingWallets(address)","b9d3514d":"addEventToUser(address)","b9d36743":"priceToMint(uint256)","b9d414bd":"setSecurityTokensWallet(address)","b9d47fff":"mySubdividends()","b9d5205c":"SASH()","b9d54f6f":"setMinPurchaseLimit(uint256)","b9d5d7fe":"resetUserPicture(string)","b9d6257d":"DeletePool(string)","b9d677f9":"_buyProp(uint256,uint256,uint256)","b9d69a30":"sendTo(address,address,uint256,bytes)","b9d723eb":"startNewPeriod()","b9d7fdf4":"bonusTierSize()","b9d8350e":"getWeiFromUsdCents(uint256)","b9d92de8":"calculate(uint256)","b9da4033":"_randBySeed(uint256)","b9da706e":"LandSale(address,uint256,uint256,uint256)","b9da8360":"_setBattleContract(address,address)","b9db15b4":"getProduct(uint256)","b9db9a6d":"resetAllApproval()","b9dc25c5":"approvedUser()","b9dda7b8":"_ERC20Contract()","b9de1c41":"buyRaffleTicket(uint256)","b9deb729":"isTransferEnable()","b9dedc6a":"shareTransfer(address,address,uint256)","b9df2d22":"isGameRunning()","b9df819f":"receiveFunds(address,address,uint256)","b9dfaf3a":"setPriceChannelMaxSize(uint256)","b9e01aeb":"buySpaceshipUpgrade(uint256,uint16,uint8)","b9e04eea":"withdrawStuckEtherOfAmount(address,uint256)","b9e15a67":"coinAgeForAddress(address,address)","b9e16b65":"issueDescription()","b9e1aa03":"deposit(address,bytes32)","b9e205ae":"updateExchangeRate(uint256)","b9e290f9":"setValue(bytes32,address)","b9e328de":"GIDIDAX()","b9e3a8dd":"isCompositionOnlyWithBaseLayers()","b9e3e2db":"releaseDate()","b9e3ee01":"addNodeToWhitelist(address)","b9e448df":"OpenFund(bytes32,string)","b9e4d098":"setNewEndDate(uint256)","b9e58ab0":"setPropertyOwnerSalePricePrivateModeFlag(uint16,address,uint256,bool,uint8)","b9e5e2c4":"ratePerWeiInPreICO()","b9e6152b":"process(address)","b9e6ac68":"TabTradersToken(address,address)","b9e6edcf":"s15(bytes1)","b9e6f1d9":"get_amount()","b9e70ed6":"setLoanParameters(address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256)","b9e722cd":"caddress()","b9e77649":"OVISBOOKED_TOKENS()","b9e7afd1":"__setSecretaryGeneral(address)","b9e7c061":"tempGetDataToCheck(uint256,uint256)","b9e7e2f9":"Beercoin()","b9e8574f":"getReservedDestinationInfo(address)","b9e95382":"store(uint32)","b9e99231":"EEM()","b9e9d1aa":"futureOwner()","b9e9e441":"exchangeTokensByAddress(uint256,address,address)","b9eb04f3":"hashPosition(uint32,int64,bytes16)","b9eb5511":"setPI_edit_5(string)","b9eca0c8":"gID_()","b9ed6df8":"withdrawEtherFromcontract(uint256)","b9ed93e9":"setWaitTimeBlocks(uint256)","b9edf911":"approveBulk(address[],uint256[])","b9ef7835":"infect(bytes32)","b9f10278":"EtherPredictx()","b9f14557":"unban(address)","b9f1fb62":"transferPrivateReservedUFT(address,uint256)","b9f2086b":"BlockWar()","b9f24e44":"freezeGame(uint256)","b9f256cd":"newProposalInEther(address,uint256,string,bytes)","b9f28076":"historyIdx(address)","b9f2d592":"maxAllowedReservingPercentage()","b9f308f2":"getEtherForTokens(uint256)","b9f37c86":"Registrar()","b9f4657d":"approve_tx(address,bytes)","b9f48cad":"performAction(address,bytes,uint256)","b9f4b5c2":"refundStart()","b9f615d7":"bankRollInvest()","b9f696d5":"setNote(uint256,bytes32,string)","b9f71934":"promotionsOfClaimant(address)","b9f7d242":"restoreAllPersistentTokens(uint256)","b9f89751":"withdrawAsCreator()","b9f96247":"SellMulti(uint256[],address)","b9f9d9a5":"test_insert_findNoHintAtPosition()","b9fa2055":"capETH()","b9fac520":"BIU()","b9fb0579":"Transfer_of_authority(address)","b9fb3ff8":"BOOYAHTEST()","b9fb7b8c":"Deposit_referral()","b9fbe331":"bonusTokenRateLevelOne()","b9fea3bb":"setBaseInfo(address)","b9feeb05":"GetCategoryCount(string)","b9ff5fcf":"getMakerBetDetails(uint256,address)","b9ffc576":"RevalootSwap()","ba001de3":"revokeBountyTokens(address,uint256)","ba00660f":"publicWithdraw()","ba00ab60":"cancelAuthorizations(address,address[])","ba0179b5":"confirm(uint256)","ba02021d":"redeemTicket(uint256,address)","ba029c97":"wei20()","ba02cf47":"MORTU()","ba02e9f2":"Coincirculationchain()","ba02f006":"_concat(string,string)","ba030c8c":"endRefundingingTime()","ba033fe1":"buyAndTransfer(uint256,address,address,bytes)","ba0410fb":"changeExhangeRate(uint8)","ba044799":"setDropable(bool)","ba057826":"MDXToken()","ba065e1f":"expired(uint256)","ba067f59":"setToSendLeft()","ba075da2":"undermineComponent(uint16,uint256)","ba081b8d":"PHOENIX_POOL()","ba086518":"delist(uint16)","ba087b9d":"balanceOfAtType(address,uint256,uint256)","ba08809d":"showTimeLock(address)","ba08f299":"decrementTotalIssuerCount()","ba09591e":"setSellFloor(uint256)","ba0a272b":"icoEtherReceivedPreFirstSale()","ba0a4ca9":"_safeGasStaticCall(address,bytes)","ba0a93a8":"getRankOnePlayer()","ba0b9788":"setTitulaire_Compte_7(uint256)","ba0bafb4":"currentWindow()","ba0bba40":"setup()","ba0bc2f4":"initialCardPrice()","ba0bf0c4":"weiMaxInvestment()","ba0bface":"managementBodyAddress()","ba0c1777":"ecoLock13()","ba0c9b54":"mcs()","ba0cf581":"findDispute(address)","ba0d291b":"CashMateToken()","ba0d46f3":"BoraToken(uint256)","ba0d94a8":"Bcigarcoin()","ba0df427":"sumOf(uint256[])","ba0e0f5e":"removeTrustedAccount(address)","ba0e6cc9":"removeVerified(address,address)","ba0e930a":"transferManager(address)","ba0f5b20":"getDarknodeBond(address)","ba0fbf0d":"_saleTokens()","ba102763":"etherToSendSecurityPool()","ba1066ed":"pendingAmount()","ba10db46":"transferEthHandleOwnership(bytes32,address)","ba112d50":"setDataEquip(address)","ba1162d7":"getFmLength()","ba119e5a":"SEBCToken()","ba11ecde":"preSaleOpen()","ba124401":"FrozenGuard()","ba13a572":"lottery()","ba14d606":"test(address,uint256)","ba151ad9":"USD_PER_TOKEN()","ba157d46":"setWebGiftEtherAmount(uint256)","ba15e52e":"getInfo(bytes20)","ba15fcaa":"Tremendoustoken()","ba16ae2d":"WBET()","ba16d600":"minReward()","ba16e00e":"bonusEnd05()","ba17e592":"performWrite1()","ba1803c1":"setCryptoJinglesContract(address)","ba181ac6":"setWhitelist(address,address)","ba1a2243":"setTokenPaymentCustomer()","ba1ad438":"newFee(uint256)","ba1af80f":"phase4Price()","ba1b44da":"getBoardRating(address,uint256)","ba1b6221":"calcUnMaskedGuEarnings(uint256,uint256)","ba1c0201":"evRefund(address,uint256,address,uint256,bool)","ba1c3b92":"setSalePeriod(uint256,uint256)","ba1ccbee":"getSupportedRolesCount()","ba1cd983":"unitCreationFee()","ba1d8d4f":"createAutoridadElectoral(bytes32,bytes32)","ba1f879f":"privateSale()","ba1fd9f4":"widraw(uint256,address,bytes32)","ba209dab":"rejectCertification(uint256)","ba20dda4":"getBeneficiary(bytes32)","ba21d62a":"Command(address,bytes)","ba2318ca":"totalSaleSupplyCap()","ba236abe":"getMyWinAmount(address)","ba255cd1":"liquidAllocatable()","ba25a585":"EventUpgradeTank(address,uint256,uint8)","ba25d944":"longDescription()","ba278e08":"setStartTime(uint256,uint256)","ba285f5d":"minimalPaymentInWei()","ba286ee3":"testRegisterCustomer()","ba2902fb":"rehancoin()","ba2a730b":"getAddressLastUpdate(address,address)","ba2a98f2":"closeZoneShop(bytes2)","ba2ab079":"changeEndPrivateSale(uint256)","ba2aee26":"addGains(address,uint256)","ba2d5c88":"MINBET_perTX()","ba2e84f9":"publicsalesCap()","ba2eb541":"isExpired(address)","ba2ee51f":"ICO_TOKENS_AMOUNT()","ba2ee65c":"manage()","ba2eebb4":"transferControl(bool)","ba2fa957":"markettingPercentage()","ba3019de":"fwdPaymentAndData(address,bytes)","ba3025d4":"epicenter_works_addr()","ba32348f":"reffUp(address)","ba32694c":"howCoin()","ba33a876":"VBToken()","ba34251b":"usdToEthPrice()","ba344304":"Lydian()","ba344743":"_rawTransfer(address,address,uint256)","ba346d11":"ArenaPool()","ba34c8f1":"setrate(uint256)","ba353925":"paymentDisable()","ba35749c":"deleteOffer(bytes32,address)","ba35b1d3":"TxMessage(uint256,uint8,uint256)","ba35c0be":"changeSelectFight2DeathContract(address)","ba35f38d":"eip20TransferFrom(address,address,address,uint256)","ba3603fd":"usdPerMEth()","ba36f423":"att()","ba3717c0":"setStrF1F2(string,string)","ba376923":"Cez()","ba377731":"getSupplyBalance(address,address)","ba37caa4":"exchangeStaStb(uint256,uint256)","ba386f0b":"propertyIdToAuction(uint256)","ba38743b":"GrabUnallocatedValue()","ba38c599":"announced()","ba391bb2":"perTokenPrice()","ba399ad2":"isInLockStage()","ba3b60ed":"rawVotes()","ba3c0067":"getTopPlayers(uint256)","ba3d0cb5":"retentionMin()","ba3dc67c":"startingPoint()","ba3eb50f":"TokenEther()","ba3eefc5":"makeInvestment(uint256)","ba3f41da":"beginCodeUpdate()","ba3f56f8":"startFinalStage2()","ba3f5a12":"tokenMultiplier()","ba3f8f2c":"getTokenPriceUSDWEI(uint256)","ba3f8f31":"ReleasingScheduleLinearContract(uint256,uint256,uint256)","ba3fc155":"ownerWithdrawal(uint256,address)","ba3fd8f7":"currChampion()","ba3fdb8f":"_createArt(uint256,address)","ba40aaa1":"setGiveAway(uint256)","ba414fa6":"failed()","ba41dc5b":"setwalletOne(address)","ba425379":"Ico_rejected(string)","ba429f33":"getRewardsContractHash(address)","ba42c8e5":"resolveSupervisorVote(uint256)","ba42fdb9":"handleLastProposal()","ba437b5d":"KOKC()","ba441560":"SetRedeemRate(uint256)","ba4442ab":"ReassingTokens(uint256,uint256)","ba44593c":"set(bytes32,address)","ba44bc0b":"UserMinMaxCrowdsale(uint256,uint256)","ba44f6a4":"RETHEN1()","ba452930":"stopPrivatePlacement()","ba454d60":"changeMaxEntries(uint256)","ba457dd1":"BreezeCoin()","ba45b0b8":"transfer(address,address)","ba4611d9":"getClaimCount()","ba463acd":"createPackage(uint256,uint256,uint256,string,uint256)","ba4670da":"onlyOwnerSetAdvWallet(address)","ba46adeb":"exerciseLong(address[2],uint256[7],uint8,bytes32[2])","ba470738":"changeRejectSetting(uint256,bool)","ba47c5f8":"inpreSalePeriod()","ba4823e1":"SoundcoinsToken(address)","ba485844":"func_0C0E()","ba487e62":"newCampaign(uint32,uint96,uint16,uint16)","ba490a03":"SpudToRotator(uint256,address)","ba49e21f":"getAttoTokensAmountPerWei(uint256)","ba4a579d":"canBetOnRound(uint256)","ba4bcd72":"currentAdmin()","ba4c206e":"removeCertificationDocumentInternal(address,bytes32)","ba4c825e":"_transfer(address,address,uint256,bool)","ba4d0c99":"conversion(uint256)","ba4d573f":"addSelctFight2Death(uint256,uint256,uint256)","ba4e1c38":"airdropTotalQty()","ba4feabd":"createEscuela(uint256,address)","ba50f965":"add_creature(uint256,address)","ba5129b9":"ethRateChanger()","ba51a6df":"changeRequirement(uint256)","ba51b1b4":"setTokenSymbol(string)","ba5233b2":"setPartnerQuota(address,uint256)","ba52688d":"approveCycle(bool)","ba53d9f3":"getSpartansOnTheBattlefield(address)","ba554374":"updateTranchRate(uint256,uint256)","ba5595d3":"numTokensAuctioned()","ba5673c3":"getChildrenLength(bytes32)","ba56763e":"getBidInfo(uint64)","ba56f6ee":"god()","ba57225d":"LogCrowdsaleEnd(bool)","ba575a39":"KOREKCHAIN()","ba59a75e":"bn128_map_to_G1(bytes32)","ba59f784":"ChessLotto()","ba5a2d33":"exitPool(address)","ba5abaf8":"startFightB(uint256,uint256,bytes4)","ba5b0e95":"CPCEIcoDeposit()","ba5c3a9d":"distributionList(uint256)","ba5c9bd6":"processReinvest(address,uint256,uint256,uint256)","ba5cb281":"uint32At(bytes,uint256)","ba5cb999":"RealTotalSupply()","ba5e286b":"getShipProductCount()","ba5eceb6":"borrowerBalance(address)","ba5f3e46":"getPlayerBetData(address)","ba61021f":"calcBonus()","ba612493":"getCurrentPassportLogicVersion()","ba61810c":"startNextPhase()","ba61a960":"Launched()","ba622884":"isManufacturerAddress()","ba622ddc":"getPlayerAnimals(address)","ba625fe6":"WineCoin()","ba629113":"contract12function2()","ba6361fb":"payme()","ba639d5a":"supplyRound1()","ba63abd6":"getPInvestedSumByRound(uint256,address)","ba63defb":"etherToSendJackpot()","ba6489e5":"getAccountReferrer(address)","ba65fa25":"getMerchantPublicKeyByAdmin(address)","ba66d7a6":"MDKICO(uint256,uint256,uint256,address,address)","ba6763ce":"withdrawBalanceFromStorageContract()","ba68693f":"PinZhiCoin()","ba693c86":"addsmartContractAdress(address)","ba69fcaa":"deleteStringValue(bytes32)","ba6a7e27":"AOABANK()","ba6afc50":"getIncentivesPool()","ba6b285a":"neuroChainAddresses(address)","ba6b5f96":"getChild(address,uint256,address,uint256)","ba6bbe55":"getPublicSaleTokensAvailable()","ba6c6490":"unlockTeamTokensTime()","ba6ca603":"ALDToken(uint256,string,uint8,string)","ba6cc6c3":"open(bytes32,address,uint32)","ba6dc506":"throwSlammerEvent(bytes32,address,address,uint256[10])","ba6f30e4":"sellCenturion(uint256,uint256)","ba6f4ab0":"burnCarbonDollar(address,uint256)","ba6ff8ad":"RTokenBase(uint256,string,string,uint8)","ba70d049":"DonateAdded(address,address,uint256)","ba70d54a":"ACTIVE_STATUS()","ba71c7f5":"setPricesManually(string)","ba723f99":"stopBid()","ba723fe2":"getRequestHash(bytes,bytes,uint256)","ba72cc36":"teamLock()","ba730e53":"getSellPrice(uint256)","ba7314ae":"AncestorHellNotes()","ba7325be":"indexOf(string,string,uint256)","ba736a99":"fetchOrderByIdWithWithPayer(string,address)","ba73737d":"AndiosCoin(uint256,string,uint8,string)","ba7435d9":"knightEquity()","ba75bbd8":"front()","ba75d0de":"minimumHydroStakeDelegatedUser()","ba76000e":"Add_Patient(uint256,uint256,string,string,string)","ba7607bf":"LogBidAccepted(bytes32,address,bytes32,address,bytes32,uint256)","ba76938b":"freezeDeposit(uint256)","ba76bfb7":"checkWithdrawalAvailable(address)","ba76e19b":"EthereumPrivateToken()","ba770154":"getUserPictureByUsername(string)","ba7705aa":"setIPFS(address,string,string)","ba773a70":"icoPrice_()","ba77ddc9":"PresaleFinalized(uint256)","ba780759":"EtherSportCrowdsale(uint256,uint256,address,address,address)","ba78a98a":"timelockEndTime()","ba78c773":"declineBid(string,uint64)","ba7a8149":"lockEtherPay()","ba7b86b9":"KhuuKoin()","ba7badeb":"nextVersion(address,bytes32)","ba7bd2aa":"withdrawTokens(uint256,uint256)","ba7bde55":"totalSupplyShares()","ba7bf7ff":"addcoinfee()","ba7c4af8":"revokeMyId(bytes32)","ba7cc631":"createKingdom(string,string,uint256,address,bool)","ba7ce849":"drawPool(uint256)","ba7d0b3c":"ETE()","ba7d619c":"returnTokensFromHoldAdditionalAddress(uint256)","ba7da724":"devVUPDestination()","ba7dc45f":"_removeOperation(bytes32)","ba7e424d":"isIcoEnded()","ba7e7cab":"getApprovalCount(uint256)","ba7ed2ff":"setMinInvestment(uint256)","ba7efcdd":"investmentLimit()","ba7fb1df":"getAddressToken()","ba8029bb":"setStartSale(uint256)","ba809390":"AccountReaderAdded(address,address)","ba80d787":"contributor()","ba80e058":"landingDiscount_ppc()","ba8118b1":"goNextRound()","ba81522f":"maxBlockDrift()","ba816496":"last50plusblocknr()","ba818f8d":"affiliateFee()","ba827243":"YangMaoZhuangYuan(uint256,string,uint8,string)","ba82bde2":"bindusertop(address,address)","ba82c897":"updateRewardToken(address,uint256)","ba82f55d":"ethsoccer48()","ba838b01":"EdCoinToken()","ba83c970":"closeSell()","ba83d63d":"getBidFreelancer(uint256)","ba847552":"isAddrCanCallServer(string,address)","ba84cb3f":"MobileApp()","ba85571c":"getPlayerInfoByAddress(address,uint256)","ba8661a2":"TimestampScheduler(address)","ba873f60":"setAssociation(address,bytes32,bytes32)","ba8747b3":"addReport(uint256,string,string)","ba874999":"getGameEngineAddress()","ba87ebfa":"IMDEXsetOwner(address)","ba87fdd4":"getSenderCities(address)","ba885446":"tokensPerAllocation()","ba88d537":"_getSenderStatus(uint256)","ba8a141f":"EnterCoin()","ba8a86c2":"whiteListedAddressPresale(address)","ba8ad39e":"grantToAllowBlocking(address,bool)","ba8af655":"returnAmountPledged(uint256,address)","ba8b7152":"BlockOfLifeToken()","ba8b9712":"adminRefundTokens(address,uint256)","ba8bb22a":"LIRAX(uint256)","ba8c0c9d":"getPropertyLastUpdater(uint16)","ba8c6980":"hasGrantAccess(address)","ba8cded7":"Bet(uint256)","ba8d045a":"tobuy(uint256,address,uint256)","ba8ef244":"getEvaluation(uint64)","ba8fb567":"startPhase2(uint256)","ba904eed":"removeRegistrar(address)","ba9072ea":"crownedTime()","ba907b7e":"testFailCreateWithParentsSameItemId()","ba90d553":"getContractsByType(uint256)","ba90f022":"modifyRecord(uint256,string,string,string,bytes32,int64)","ba9130a6":"execCustom(address,bytes,uint256,uint256)","ba91d87b":"mintForWorker(address,uint256)","ba922e04":"Karma(uint256)","ba92d382":"factory_address()","ba9316b7":"getExp(uint256,uint256)","ba9334a0":"testCombinators()","ba9398e9":"publicSaleEtherRaised()","ba93d980":"swapOpen()","ba941154":"newTapProposalFromCompany(uint256)","ba944118":"TMXGlobalToken(uint256,uint256,string,string,uint8)","ba953bc8":"KanadeCoin()","ba95b235":"sayNo()","ba95d63a":"leftSharePriceRateOfIncrease()","ba95df98":"releaseUserPrivateBonusTokens(address,uint256,address)","ba967a84":"addInit(address,address,address,address,uint256,string)","ba976ae5":"marketToken2018()","ba982c41":"tokensUnsold()","ba996aca":"getPlayerLevel(uint256)","ba99d1a6":"RATE_DAY_0()","ba9a061a":"START()","ba9a4d6e":"hasAddressVotedInBallot(uint32,address)","ba9a8b37":"convertibleTokenCount()","ba9a91a5":"SALT()","ba9a9e03":"StorageEnabled()","ba9ac37f":"mul(uint16,uint16)","ba9bb827":"CONTRIBUTION_MIN()","ba9bf757":"getPlatformBalance()","ba9c4637":"getMyPoints()","ba9d0638":"receivedCount()","ba9d407a":"GetAddressByName(bytes32)","ba9d4c09":"devuelveAppaddr(bytes32)","ba9e0907":"XJF()","ba9e9a86":"binarySearchForChallenge(uint256,uint256,bytes,uint256,bytes32[])","ba9ea413":"purchaseCostFiat(uint256)","baa0181d":"batchCancelOrders(address[5][],uint256[6][],uint256[])","baa0b806":"content(uint256)","baa23ac1":"SpecialDrawingRight()","baa24fce":"rightVotes()","baa28752":"listCenturion(uint256)","baa290d9":"DANSToken(address,address,uint256,uint256,uint256,address,uint256,address,uint256,address,uint256)","baa2e587":"confirmReception()","baa2edaf":"tokensDataProviders()","baa2ff01":"get_blockhash(uint256)","baa30f7b":"jackpotCount()","baa371d0":"DigiPulse()","baa3f7ee":"claimedOf(address)","baa3fc48":"calculate_proportional_reward(uint256,uint256,uint256)","baa40cd4":"mintForPrivateFiat(address,uint256)","baa40e5c":"getVote(string)","baa416b6":"CorsariumCore(address[],uint256[])","baa46bdd":"_createDistrict(uint256,uint256,uint256,uint256)","baa47694":"submitBlock(bytes32)","baa5eb5c":"isDspRegistered(address)","baa61df0":"tokenContractClaimTokens(address)","baa6ab81":"priceByPeriod()","baa70a8b":"LBCoinJ(string,string,uint256)","baa79dd3":"ethOdinRate2()","baa7d1f3":"MULTISIG_ETH()","baa83568":"requestColuLocalNetworkOwnershipTransfer(address)","baa8529c":"give(bytes32,address)","baa90366":"isThereACoinAtCoordinates(uint16,uint16)","baa92a05":"returnsenderbalance()","baa93b56":"crownIfFreeze(address)","baa9a8a9":"EtherbotsCore()","baa9da15":"soldTotal()","baa9e531":"totalTokensBought()","baaa3eef":"setDistValues(string,string,string,string,string)","baaa8b9a":"actualGotTokens(address)","baaac593":"LogWaterTree(uint256,address,uint256)","baab7a3a":"isSuccessDoneState()","baab89d5":"getLockedStructAmount(address,address,uint256)","baac2178":"MNLTToken()","baac274d":"getCustomerBalance(address)","baac4316":"sendTokensToMe(address,uint256)","baac5300":"createTokenProxy(address)","baad0828":"changeControllerInBntyTokenContract(address)","baad1532":"getMatchServer(uint256)","baad6c2e":"setInfoTier(string)","baadbca0":"newTickerQuery(string,bytes32)","baae172c":"setRefreshLockBalance(address)","baaee21f":"getLastN(bytes1,uint8)","baaeecb0":"getAllApproval()","baaefe5b":"priceInc()","baaf2d4f":"transferOtherERC20Token(address,uint256)","baaf4eef":"RESERVES_HOLDER()","bab1d921":"closeCurrentStage()","bab25514":"GRUToken()","bab2f2b5":"containsOnlyAlphaNumerics(string)","bab2f552":"currentCycle()","bab41142":"takerApproves(uint256)","bab41293":"getDataColla_001_002(string)","bab42b54":"test_campaignRules()","bab4e3b1":"getOwnedToken(address,uint256)","bab54f69":"_isExcluded(uint256)","bab5714c":"sendTeamSupplyToken(address,uint256)","bab58ec9":"periodITO_tokenPriceUSD()","bab5b64e":"spenderAddress()","bab5e2af":"LogBTHFoundationWalletChanged(address)","bab6d101":"checkClaimTokenByIndex(uint256)","bab6f9bf":"generateRevokeStakeForDelegationSchemaHash(uint256,uint256)","bab7b237":"totalRelease()","bab86ea8":"test(string,string)","bab8bd04":"clearAllRequests()","bab8fe40":"claimableTokens()","bab92a29":"get_owner_planets(uint256)","bab94366":"AppUpdated(address,string,address,uint256,bool)","bab95dba":"_getFeeAndNetAmount(uint256)","bab99890":"CPollo()","bab9c00c":"SmartSignature()","bab9fc63":"testFailCreateWithParentParentNotInUse()","baba4811":"recieveFunds()","babb019d":"enact_liquidation_less(address,uint256,uint256)","babb3e0b":"updateEthRate(string,string)","babbb78d":"teamTokenWallet()","babcc04c":"getLogsNum()","babcc539":"isAllowed(address)","babd222f":"addressToLarePurchased(address)","babd7012":"activeSupply()","babddb4c":"FundReturn(address,uint256,bool)","babe9394":"EasyMineToken(address,address,address,address)","babf2b2d":"EscrowMyEtherEntityDB()","babf5e37":"changeFree(uint256)","bac02609":"buyEarlyWhitelist(address)","bac03cd7":"totalContractBalance()","bac0b029":"BifreeToken()","bac0b276":"allocate(address,uint256,uint8)","bac127b9":"SecondAddressBalance()","bac15203":"unPauseContract()","bac18f9a":"handToBitmap(uint32)","bac1e2e0":"testBitsAndSuccess()","bac1e9f6":"getChannelSize(address,uint256)","bac21a22":"totalSupplyLimit()","bac37239":"addMarketMakerAddress(address,address)","bac506e0":"rf()","bac55edd":"setDnsDomains(string,string,string)","bac6068c":"inject(address,uint128)","bac6241f":"LookRevToken(address,uint256)","bac756e1":"PresaleToken(uint256,uint256)","bac79651":"setTokens(address,uint256)","bac7bb9f":"checkaddress()","bac7c252":"BTC10kon54()","bac97647":"uncleSafeNr()","bac9dbab":"ROLE_COO()","bacbe2da":"cancelVote(uint256)","bacc2753":"vestTo(address,uint256)","bacc2c42":"participate(uint256,uint256,uint256,uint256,uint256,uint256)","bacc58d7":"backManusOwner()","baccc92b":"RegulatorIfc(address)","bacd2a90":"mallocBudget(address,uint256)","bacd2e97":"executedCount()","bacd70b7":"callSomeFunctionViaInner3()","bacd8d88":"soldPercent()","bace4cf6":"Distribution(uint16,uint256,address)","bacef685":"createTokens(uint32,address)","bacf3f65":"secondPeriodOfICO()","bacf5f84":"_addBaseStats(uint256,uint8[8])","bacfddbc":"isDepositAddress(address)","bad09457":"test3(address[5],uint256[5],uint8,bytes32,bytes32)","bad16031":"isBlackjack()","bad19ead":"copyToAllUnits(uint256,uint256,uint256,uint256,uint256)","bad1f08f":"open(uint256,uint32,uint256)","bad2d6d2":"removeBlacklist(address,address)","bad4d623":"setAltDeposit(uint256)","bad568b1":"allowanceBcoupons(address,address)","bad69502":"getProviderRateHistory(uint256,uint256)","bad6b379":"changeCUSEaddress(address)","bad751bc":"createPeerReviewContract(address,bytes)","bad7726c":"checkDividendPaymentAvailable()","bad7d46a":"CreateOffer(uint8)","bad84416":"eligibleVotes(address)","bad845e6":"deleteProductInternal(bytes32)","bad84c9e":"getNumTicks()","bad9643b":"balance_wirthdraw()","badaba27":"packTable(uint256)","badae9b4":"addArgumentToRequestUint(int256,uint256,bytes32,uint256)","badb2e5a":"UpgradeRigETH(uint8,uint256)","badb97ff":"adminBurn(uint256)","badbaa3c":"setCallData()","badbbf34":"RBACWithAdmin()","badc9a52":"adminChanged(address,address)","badca131":"kill_and_withdraw(address)","badcf391":"sendMail(bytes16,bool)","badcfbcf":"withdrawSnowflakeBalance(address,uint256)","baddee6f":"listMultipleItems(uint256[],uint256,address)","bade1c54":"proposeReparameterization(string,uint256)","bade1ef9":"Birth(address,uint256,uint256,uint256)","bade6033":"propose(bytes,uint256)","bade777c":"Marked(address,address,address,address,uint256,uint256,bytes32)","badec5b4":"HK168coin()","badf3de9":"durationForBetAmount(uint256)","badf8b37":"TwoFactorAuth(string,string)","badfa573":"setAllowTransferTimestamp(uint256)","badfedf2":"genEthsRec(uint256,uint256)","bae07416":"canBeValidated(uint256)","bae0c536":"addSaleAgent(address)","bae118f4":"setHouseInfo(bytes32,uint256,string,bytes32)","bae18880":"getReceipt(address,uint256)","bae18ac3":"setUpgradeFee(uint256)","bae1c1ac":"doSendWithSignature(address,uint256,uint256,bytes,uint256,bytes,bool)","bae1cc74":"multiSubWithdraw(address[])","bae2718f":"WithNoArgumentConstructor()","bae2ddb5":"XBHX()","bae37857":"getEndTimeOfSession(uint256,uint256[],uint256)","bae3791e":"weisHardCap()","bae3c066":"sendInternally(uint256,uint256)","bae3c27f":"weiLimit()","bae4f466":"roundKeys()","bae5e693":"partnersAllocation()","bae5f9dd":"takerAffiliateFee()","bae61714":"setICOWeek3Bonus(uint256)","bae6c2ad":"queueSize()","bae6d62b":"manualOverride()","bae70892":"setMyPubKey(bytes32,bytes32,bytes32,bytes32,bytes32)","bae72565":"readAddress(address,uint256)","bae728b1":"setUnholdDate(uint256)","bae78d7b":"getEntry(uint256)","bae804a7":"transferFromSender(address,uint256)","bae8d888":"createArtefact(uint256)","bae944ba":"globalUnlockTime()","bae971e4":"getWithdrawEtherAmountValue()","bae99efc":"ICO_MAX_CAP()","baea0431":"getMsgDataAfter()","baea3a21":"addToWhitelistInternal(address)","baeb0718":"checkin()","baeb8cad":"deleteGroup(address,address)","baeb91ae":"invest(uint128)","baebcaf0":"getApp(address,uint256)","baec1ced":"depositPresaleWithBonus(address,uint256,uint256)","baec25ee":"ZYHToken()","baecd693":"sendTokensAfterBuy(address,uint256,uint256)","baed8bb1":"getAddressValues(bytes32)","baee193d":"changeCountryLimit(uint256,uint256)","baeeddfc":"Ublasti(uint256,string,string)","baef73e9":"expiryOf(uint256)","baf00f76":"removeAllSubUsers()","baf03586":"calculateBaseGet(uint256,uint256,bool,uint256)","baf05a87":"hodl_interval()","baf11cab":"isCommitted(uint256,address)","baf1256f":"withdrawToPlayer(address)","baf30051":"token_issued()","baf38352":"buy_for(address)","baf3a4d4":"distDivRate()","baf3d262":"Tickets_Sold(string,uint256)","baf3ef13":"disableNode()","baf44453":"FundAccount(address,address,address)","baf4960d":"createPlanet(uint256,address,uint256,uint256,uint256,uint256,uint256)","baf4ec53":"sumICOStage3()","baf4f6d1":"_endContestIfNeededStalemate()","baf539ee":"changeGasLimit(uint256)","baf5fbff":"PreIcobonusEnds()","baf652fe":"bonusThresholdWei()","baf6f9ca":"saleis(bool)","baf6fd32":"setintertoken(address)","baf73c0f":"holdingsOf_BULL(address)","baf79eb4":"removeDealInternal(bytes16)","baf8809b":"releaseTimeLock(address)","baf8c622":"_SUTokenContract()","baf9b369":"post(bytes)","baf9c5a2":"initialSupplyPrivateSale()","baf9d07b":"addAuthorization(address,address)","baf9d0cf":"getRoundAwardTicketNum(uint256)","bafa090d":"breakup(address,uint256)","bafa9c9d":"FighterUpdated(uint256)","bafb8e83":"marketSupply()","bafc1437":"getPurchased(uint256)","bafc7fe9":"zero_fee_transaction(address,address,uint256,uint256)","bafcea6f":"dataSourceGetYellowCards()","bafd244f":"setAmbassadorAddress(address)","bafdaf5e":"_getTargetBlock(uint256)","bafdebf3":"getServerAddress(string)","bafe648d":"BerithCoin(uint256)","bafedcaa":"lastRewardAmount()","baff4609":"lockTokenForNode(uint256,uint256,uint256)","baffa903":"getStartPrice()","bb004abc":"reserveManager()","bb005d4f":"setPlayerResearch(address,uint256)","bb007db9":"getSalaryTokenCount(address,address)","bb00c8f9":"ownerMintAmount()","bb00faca":"bonus02()","bb00fc55":"bookEarnings()","bb013206":"addNewCertificate(uint256,bytes32,bytes32)","bb0165b1":"setContractAddress(uint256,address)","bb01aa39":"unreserve(uint32)","bb01fb1f":"Issue(uint64,address,uint256)","bb043d53":"MinimalPayValue()","bb053484":"getInitializeFeePerEthInAttoethValue()","bb056781":"purchaseGas(address,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","bb057c5e":"proposedImplementation()","bb05ca52":"JadeCoin()","bb061fb5":"addWhite(uint256,uint256,uint256,bool)","bb07576d":"voteToUpdatePrenup()","bb083c2b":"substractFee(uint256,uint256)","bb08b247":"showAuction(string)","bb08c6c3":"o_desafiante(bytes14)","bb0936f7":"first_bonus_amount()","bb09adbb":"privGoal()","bb0a420a":"user(address,address)","bb0a64b6":"batchTransfer(address[],uint256[],address)","bb0bcbff":"AddPoolMember(address,string)","bb0bef19":"validateFile(address,uint256,bytes,bool,bool)","bb0c08b6":"getDebitNonce(bytes32)","bb0c8298":"minimumAmount()","bb0c8893":"claimUnrelatedTokens(address,address)","bb0ce7d3":"TotalHoldersAmount()","bb0d6fb6":"noCount(uint256)","bb0d7f9a":"listTCC()","bb0db551":"add_32(uint32,uint32)","bb0e01fd":"isError(uint8)","bb102aea":"totalSupplyCap()","bb10b2f1":"PRE_SALE_BONUS_PER_CENT()","bb119f6e":"productInfo(uint256)","bb11ed7e":"rescueTokensInMultiplePolls(uint256[])","bb128575":"StopSell()","bb13245f":"decimalsMultiplier()","bb133331":"trusteeContract()","bb1488d8":"_newAuction(uint256,uint256,uint256,uint256)","bb1583fc":"isBatched()","bb158dd5":"addToTokenLocked(address[])","bb15ac8e":"readBool(bytes32)","bb1630f2":"getAllSigs()","bb169da5":"Diploma_landing_page()","bb1757cf":"claim(address,bytes)","bb17a938":"toRlp(uint256)","bb17c8cc":"round2StartTime()","bb17e050":"Nullify(address,address,address,address)","bb18705c":"_buildSettleId(bytes,bytes)","bb1953fe":"updateSeed()","bb1a473b":"VOLUME_25()","bb1a5aad":"flipFinalizedSwitchTo(bool)","bb1ad687":"gateKey()","bb1adf9b":"DURATION_BEFORE_RESTORE_UNSOLD()","bb1af82b":"Test3()","bb1b21ed":"RefCommission(uint256,uint256)","bb1b99ce":"isCurrentUserAdministrator()","bb1c9351":"redeemNativeToken(bytes32,address)","bb1cc065":"buy_lovelock_withLOV(bytes32,string,string,string,uint256)","bb1d1cf9":"tier_rate_3()","bb1d45fc":"setOtherManager(address,uint8)","bb1d7ffa":"weddingdate()","bb1dfeca":"buildId3(address,uint256)","bb1e54bc":"TokenCrowdsale(address)","bb1eeb59":"totalWeiAmountSale2()","bb1f602e":"FailingDeployment()","bb205c84":"getDownVoteCount(bytes12,bytes12)","bb210372":"getPresale(uint256)","bb221cc8":"Hadescoin(address)","bb221e4b":"FuelToken()","bb22d75c":"PROMOTION_PROGRAM()","bb23e3a9":"arr(uint256,uint256,uint256)","bb23ef74":"setOwnerTestValue(uint8)","bb2408e6":"PERCENT_DELIMITER()","bb245283":"getHatchDurationMultiByGeneration()","bb24f0dc":"operationsLength()","bb2559ca":"initialTokenBalanceFetched()","bb256f68":"VaultCountPerProcess()","bb25b143":"DrawReadyToPayout(uint32,uint8,uint8,uint8,uint8,bytes32)","bb25bd15":"addWin(address,uint256)","bb25fd7f":"SODIUMTOKEN()","bb262080":"JaroSleep(address,uint256)","bb27e19e":"getlen(bytes32,bytes32)","bb280cba":"addBackers(address,uint256,uint256)","bb287679":"mainFabricAddress()","bb28c3f2":"setNonce(string,uint256)","bb29998e":"test(address)","bb2a51d1":"setSecurityGuard(address)","bb2a7d0c":"addVestingSchedule(address,uint256[],uint256[])","bb2aebe3":"createAssetPack(bytes32,string,uint256[],bytes32[],uint256)","bb2bded0":"trinityDataContract()","bb2c5ad7":"hasRandom()","bb2ce2f5":"DeedClosed()","bb2ced1b":"previousFounders()","bb2ced25":"startPoll(address,address,bytes32,bytes32,uint256,uint256)","bb2d713e":"sells(uint256)","bb2dc863":"getChildBlock(uint256)","bb2de15a":"TicketsBought(uint8,address,uint16[])","bb2e6904":"hopeCoin(uint256,string,string)","bb2eb4d2":"ONE_PERCENT()","bb2eb982":"impl_rewardsFactor()","bb2ebf83":"CostChip(address,uint32)","bb2f159b":"read_i32()","bb2f3228":"EOCSToken(uint256,string,string)","bb305ef2":"getBondOwner(uint256)","bb3084db":"ICOStarted(uint256)","bb30d796":"releaseAllocation(address)","bb316f06":"contributeForAddress(address)","bb32b6f8":"receivedCWC(address,uint256)","bb33072f":"refundToInvestor()","bb33d729":"unpauseSale()","bb33e730":"MoveTokens(address,address,uint256,string)","bb340909":"initPecul()","bb34534c":"addressOf(bytes32)","bb34e57c":"ROLE_BURN()","bb35783b":"move(address,address,uint256)","bb35b29c":"MintIND(address,address,uint256)","bb35f7ee":"rocketTravelTimeByResource(uint256,uint256)","bb3611e7":"BonusWhiteListCrowdsale(uint256)","bb36a233":"customtransfer(address,uint256)","bb36e5d0":"returnExternalPayments(address,bool,bool)","bb36ef7b":"addManyToKyc(address[])","bb370bad":"orderWasValid(uint256,uint256,uint256,uint256)","bb371fdd":"setMaxDeposit(uint256)","bb37a162":"payAdvertisers(bytes32)","bb389952":"unlockFounder()","bb38be10":"notifyCharge()","bb397161":"createNonRepeatableVpfFactory(string,bytes32,uint256,int256[])","bb39a960":"trade(address,uint256,address,uint256)","bb39c85f":"getTotalOwedTokenRepaidToLender(bytes32)","bb39ea60":"MIN_ACCEPT_ETHER()","bb3a304f":"setFundingLock(bool,address)","bb3a77ae":"ROLE_ARBITER()","bb3b2a35":"withdraw_4()","bb3b8dca":"getCertificateHash(bytes)","bb3ce7fe":"DepositHolder()","bb3cf577":"AddressListed(address,uint256)","bb3d13c5":"addValidation(address,bytes32)","bb3d5af2":"GetClaimCount()","bb3d9326":"YTC()","bb3e409a":"buyEggs(uint256,address)","bb3e443b":"FDataToken()","bb3e5b0a":"setPI_edit_34(string)","bb3f0390":"min_inv()","bb3f5330":"revertFunds()","bb3f5b7d":"totalTransfer()","bb3ff0bd":"TITSCOIN()","bb41f421":"payerPercent()","bb424892":"minimumCost()","bb42de92":"getSubscriberContentCount()","bb43a11e":"getHashOf(address)","bb440b82":"funComputeRoundPrice()","bb445084":"getRDividends(address)","bb449782":"setCommunityAccount(address)","bb44e08d":"updateOrderNumber(uint256)","bb452ea7":"objectDoublet()","bb4534f1":"addrecruit(address,address,address,address)","bb453d5a":"CBCToken()","bb45d09d":"getCurrGameInfo()","bb471d73":"getRealAmountBonus(uint256,uint256,uint256)","bb472219":"resetGame()","bb472c93":"bet2deltaOf(uint256)","bb476637":"deliverTokensAdmin(address,uint256)","bb48156a":"preSaleRound()","bb4872de":"stoppable()","bb48d190":"upgradeToPremium(bytes32)","bb4b236a":"CSToken(uint256,string,uint8,string)","bb4b7bd0":"listForSale(uint256,bytes32)","bb4c006c":"checkDeletable(address)","bb4c9f0b":"multiSend(address[],uint256[])","bb4cbd0b":"gracePeriodStopBlock()","bb4d0cb5":"FSC3()","bb4d4b2f":"addVestingAccount(address,uint256,uint256)","bb4d7cd1":"tag(uint256,string)","bb4d9e22":"WithBonusPeriods()","bb4e3f4d":"add(uint8,uint8)","bb502bac":"EthbetOraclize(address,address,uint256)","bb502dd9":"checkExchangeSupported(bytes32)","bb504317":"divest(address,uint256)","bb50c67a":"crowdsaleRunning()","bb510a77":"createChannel(address,uint256)","bb5166e7":"getPaymentType(address,uint256)","bb5196d6":"setParams(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bb51de39":"IDEAL()","bb51f32d":"withdrawTeam()","bb52ca2c":"getOrgClaimsCount(address)","bb537ced":"matchesDelay()","bb540231":"totalFartsReceived()","bb542ef0":"setOwnerWallet(address)","bb5530c4":"updateCampaign(uint256,string,string,string,address,address,address,string)","bb56a683":"guaranteedBuyersBought()","bb572896":"consolationRewardsRequiredFaith()","bb57349c":"handleSaleClaimCallback(address,uint256)","bb575333":"sessionEndTime()","bb582db6":"mgmtBodyAddress()","bb584a3a":"EventCancelAuction(uint256,address)","bb59b48c":"payableWeiReceived()","bb59d68c":"DariaRotkoToken()","bb5a1149":"myReferee()","bb5a4f4c":"placeBet(uint256,uint256,uint256,uint8,bytes32,bytes32)","bb5a7ca0":"extendEventStartsTime(bytes32,uint256)","bb5adf14":"setProxyManagementContract(address)","bb5b3edc":"emergencyWithdraw(uint256,bool)","bb5b586b":"usdPerKEther()","bb5b6aa4":"myInner2()","bb5c3821":"total_ICO_supply()","bb5d3bcb":"tokensPromotion()","bb5d40eb":"isValid()","bb5d69a0":"setEns(string,address)","bb5ddb0f":"sendMessage(address,bytes)","bb5e0696":"LongTermReserveMinted(address,address,uint256,uint256)","bb5e3d3b":"doThing(string)","bb5e5875":"InseeCoin()","bb5e78a4":"HasSigningPermission(address)","bb5e9dec":"get30Artworks(uint16)","bb5e9eab":"thirdWeek()","bb5f4629":"orders(address,bytes32)","bb5f95fe":"LSECoin()","bb602e80":"Volkscoin()","bb6198dd":"getOrCacheTargetReporterGasCostsWasCalled()","bb632244":"btcs()","bb642f65":"seedCreatedCount()","bb64c09b":"KIMEX(address,address)","bb64c79e":"SearchTimeBlocknumber(string)","bb64e420":"getTransactionByTransactionId(uint256)","bb6534a9":"AMOUNT_TeamSupport()","bb67be65":"AFUN(address,uint256)","bb68b86f":"maxTokensToDistribute()","bb6954ce":"BourseToken()","bb6996a5":"swapWinner(uint256,bool,uint256)","bb6a0853":"GreedPit()","bb6a0f07":"tasksCount()","bb6a1427":"testThrowRestartEnforceRevisions()","bb6a55bd":"_mintToken(address,uint256)","bb6ad6ef":"withdrawTokenId(uint256)","bb6af3da":"limit9()","bb6af543":"setJackpotPayRate(uint256)","bb6b13a1":"tier1()","bb6b38bb":"setAdminAddressForComissions(address)","bb6b4619":"SendETC(address)","bb6c1178":"RentToken()","bb6c4827":"burnThis(uint256)","bb6d0132":"End_Promotion()","bb6d203c":"spend(address,uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","bb6d8c77":"contractPoweredUp()","bb6e7de9":"endContract()","bb6f0f0f":"fetchAllCandidatesBySnapshotBlock(uint256)","bb6f175f":"SimpleAquaPriceOracle(uint256,uint256)","bb6f6c15":"protectedDenominationOfOrigin()","bb7029a9":"gameCollapse()","bb702c8e":"discard()","bb707059":"approveMany(address[])","bb70abfa":"_computePVPBeneficiaryFee(uint256)","bb718861":"scheduleCall(address[2],bytes4,bytes,uint8,uint16,uint256[6])","bb71a7c3":"makeInvestment(address,address,uint256,uint256,address)","bb72680c":"getHasPermission(address,string,string)","bb72b12d":"oldOwnerProfit()","bb731f98":"Excalibur()","bb73703f":"delRoleForUser(address,string)","bb7436a7":"getUsersDroidsIds()","bb74a5a0":"testValidationOfDoubles()","bb74b4e6":"TOKEN_SUPPLY_OWNER()","bb74dcda":"isRefunded(address,address)","bb750232":"allowReceiver(address)","bb75a2a9":"throwMe()","bb76d8a5":"TimeLock()","bb777028":"PRE_ICO_BONUS_TIME_3()","bb777498":"calculateId(string,string,string)","bb77b136":"planetAuction()","bb77d7d8":"ConunToken(uint256,string,uint8,string)","bb784140":"AragonTokenSaleMock(uint256,uint256,address,address,uint256,uint256,uint8)","bb7859b5":"periodThree()","bb785f0e":"AirDropPayBitsR1(address[])","bb78d159":"approveTokenControlInfo(uint256)","bb79428c":"RateUpdate(string,uint256,string,string)","bb7963e3":"hasArbiterVoted(uint256,address)","bb7a6dba":"vestingHasStarted()","bb7c15ab":"createDog(uint256,uint256)","bb7c62cb":"getReferrerBonusTokens()","bb7cb80b":"dropOffset()","bb7d064f":"automatedReport(uint256[])","bb7d4f65":"ICOFFSHORE()","bb7d715b":"startEthToCentsRateUpdateCycle()","bb7dd72d":"finishMintingStruct()","bb7fa4ac":"sellCeiling()","bb7fb08b":"getContributor(address,uint256)","bb7fde71":"mint(address,uint256,uint256,string)","bb7fe5c9":"LotteryAdmin(address)","bb7ff992":"requestSellforETH(uint256)","bb806dc9":"initial()","bb813a9b":"KkkTokenSale(uint256,address)","bb814746":"ICO_TWO()","bb814e9e":"versionExists(bytes32)","bb818ea6":"advancedNETH(uint256,string,string)","bb81926d":"_applyCommission(uint256)","bb822605":"calculateTokensTier(uint256,uint256)","bb826e50":"maxBlockActions()","bb828f11":"setChallengeRewardsPercent(uint256)","bb83a01f":"MyTALToken()","bb843219":"closingDateFunding()","bb84d362":"splitProfitVIP_only_Dev()","bb850e01":"_transferOwnershipOnBuy(address,uint256,address)","bb85931b":"eSTATERToken(address,address)","bb862588":"getCET6ScoreById(uint32)","bb86d8fe":"CPGPEREGRINE_FTL_SPEED()","bb878f2a":"ProposalAdded(uint256,uint256,string)","bb87b5f8":"getPersonalStatus(address)","bb87c1f2":"getAllowedUsers(address,uint256)","bb889341":"ZiberToken()","bb88c016":"decreaseApproval(uint256,address,uint256)","bb898233":"getAct()","bb8ab48c":"Bluechip()","bb8b2b47":"getUserContribution(address)","bb8bbc90":"ContractEFT()","bb8bcc46":"crowdSaleCap()","bb8be064":"HardwareToken()","bb8bedc9":"setMasternodeCandidate()","bb8c256a":"ecadd(uint256,uint256,uint256,uint256)","bb8c7ce4":"ContributionReceived(address,bool,uint256,uint256,uint256)","bb8c869d":"contestOver()","bb8c9797":"claimReward(string)","bb8d35ce":"medibitToken()","bb8dc735":"getNonceCompareOp()","bb8e8f46":"isExecutionAllowed()","bb8f0dd2":"PonziSeller()","bb8f712f":"generateGame(bytes32,bytes32,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bb90617b":"toUINT112(uint256)","bb90cec2":"setNewRound()","bb911607":"percents(uint256,uint256)","bb912454":"setKNCPerEthRate(uint256)","bb913f41":"_setImplementation(address)","bb91f8ae":"ownerTransferAllEther()","bb925c19":"_selectWinner(uint256)","bb94392e":"getRemainingTokenForArticle(string)","bb945177":"produceTokens(address,uint256,uint256)","bb9453a5":"assetProperties(address)","bb95d992":"blockhashes(uint256)","bb963c8a":"transferLibOwnership(bytes,address)","bb969132":"getLandEstateId(uint256)","bb9694f3":"Eth()","bb971094":"finishAirdrops()","bb979c3d":"getHotelsByManager(address)","bb9932a7":"addressReserveSupply()","bb996043":"returnPtSafeXLarge()","bb99999c":"TokenLinked()","bb99dec1":"MoldCoin(uint256,address)","bb9b02a8":"evLockFund(address,uint256)","bb9b13d8":"getTotalInterestAmount(address)","bb9ba82d":"Florijn(uint256,string,string)","bb9c3f2b":"minWager()","bb9c6c3e":"verify(string)","bb9e1edc":"ethBaseBalance(address)","bb9e3547":"setTokenCost(uint256)","bb9e37ec":"TitleApproved(uint256)","bb9efd5e":"bulk(address[],uint256[])","bb9efdc6":"QUAK()","bb9fc9ed":"transferStmpsToOwnerAccount(address,uint256)","bba02bf8":"LyuTestToken()","bba04dc9":"resetExplicitState(uint32,int64,int256,uint64,int8)","bba231ce":"_isPast(uint256)","bba2e907":"prepaymentFee()","bba33ace":"sellerCut()","bba45738":"setOmegaContract(address)","bba46031":"LOFO()","bba4a876":"setStateDistributing()","bba4b31e":"birthBlock()","bba4c282":"RaiblocksClassic()","bba4e4c0":"AddressForReturn()","bba4e9bd":"getTraitCount()","bba52516":"tokenTimelock()","bba570cb":"getDatURL(string)","bba5ad87":"registNameXid(string,uint256)","bba5b24e":"buyTokens(uint8)","bba65ed1":"isbit(uint256,uint256)","bba7a1ab":"getTokenVolumebasedBonusRateForPhase1(uint256)","bba80923":"msub(uint128,uint128)","bba8a065":"insert(uint8,uint8)","bba8b342":"PresaleMidexToken()","bba90086":"updateAndTransferFrom(address,uint256,string,uint256,uint256)","bba91ea7":"getHomeadvIndex(uint256)","bba9a9f6":"zeroFeesTransfer(address,address,uint256)","bba9cfe1":"soldBeforeUnsoldAllocation()","bba9dc60":"deactivateProvider(address)","bba9ffce":"TransactionFailed(address,address,uint256)","bbaa7345":"changeDivestmentFee(uint16)","bbaa7a57":"getHeroAttributes(uint256)","bbaaa787":"claimable(address,bool)","bbaac1e8":"privateSaleTokensAvailable()","bbab867c":"setSubContractAddresses(address,address)","bbac78a9":"setImmutableOwnership(address)","bbad490f":"phase_3_bonus()","bbad6172":"ICOZ()","bbadb845":"updateProduct(uint256,string,uint256,uint256,uint256)","bbaefe9f":"bytePrice()","bbafb379":"updateBatchStartTime(uint256,uint256)","bbb01c9c":"privateIcoMinimumContribution()","bbb0c054":"foundersVestedPayment()","bbb0d58e":"_createNeighbors(int32,int32)","bbb104cf":"FucksToken9()","bbb1c4c0":"withdrawForFiveYear()","bbb21c4d":"explore(uint256,uint256)","bbb28a65":"contributors_count()","bbb37f60":"purchaseLeader(uint256)","bbb37f76":"registerTier2Users(address[])","bbb44989":"Token2GB(address)","bbb50b78":"vraWallet()","bbb655b6":"_setGasPrice(uint256)","bbb7259c":"CrowdsaleLimit(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bbb73e3e":"GetBuyPrice()","bbb7d310":"getCompte_19()","bbb7eb64":"addInventories(uint256,uint256,uint256,uint16)","bbb896ad":"isCurrentAdmin(address)","bbb906f7":"TomSkin()","bbb92642":"BotTradesToken()","bbba3333":"safer_ecrecover(bytes32,uint8,bytes32,bytes32)","bbbc0f55":"_price_tokn_ICO_first()","bbbc67d0":"getParticipantDestination()","bbbc77dd":"intersubtoken(address,uint256)","bbbd2953":"startNewBattle(uint256,uint256,uint256,uint256)","bbbdef70":"FreezoneToken()","bbbe1390":"getEmployerJobsForFreelancerInvite(address,address,address)","bbbeac89":"MastermindAlliancePublishingGroupToken()","bbbf8fbd":"increaseWeiRaised(uint256)","bbbf9384":"BATTLE_CASUALTIES()","bbbfc4db":"mulsm(uint256,uint256)","bbbff4fb":"updateMinAmountWei(uint256)","bbbff571":"changeKey(string)","bbc001c3":"alloc()","bbc0c1a2":"addOrg(string,string,string)","bbc0ebbf":"soldForFirst()","bbc10d1a":"distributeeBitcoinCashSmall(address[])","bbc2402d":"startCrowdsale(uint256)","bbc2986c":"setPrice(uint16,uint256)","bbc2fcf5":"TOKEN_PER_ETH()","bbc30ad8":"getGalleryData(uint256)","bbc32820":"autoPay()","bbc39ab6":"readCharityAddress()","bbc42b3f":"orderToContractor(uint256)","bbc43d41":"pay(uint128,address,bytes1)","bbc49130":"Milestone_OpenTheIco(string)","bbc53086":"csvConcat(string,string,string,string)","bbc5aa5b":"maxTransferAmount(uint256)","bbc5d3d9":"setQuickConverter(address)","bbc6049d":"etherSpin()","bbc620a8":"setNewWithdrawCommission(uint256)","bbc6351e":"MMMC()","bbc64582":"getVotesCount(address,uint256,bytes32)","bbc6df30":"getRoundInfoByID(uint256)","bbc6eb1f":"getDefaultDonation()","bbc7d0b9":"marketingPool()","bbc7f045":"ZenCoin()","bbc84d1a":"voteWorth()","bbc878c4":"totalSeraphims()","bbc894a1":"GuoCoin()","bbc8e3cb":"disallowTransfers(address[])","bbc94fda":"priceProgression()","bbc9f09a":"payPartners()","bbca0a89":"c_endTime()","bbcac1c3":"vipBrokerFee()","bbcb4e3a":"TokenERC20(uint32,string,string)","bbcbce8e":"MIN_GOLD_TO_UPGRADE()","bbcbe572":"d(address,address)","bbcbefd0":"unset()","bbcc69ef":"withdrawTokensByInvestors()","bbcc8cea":"SaiSaiToken(uint256,string,string)","bbcd0f02":"endorseClaim(string,string,string,address,address,string)","bbcd5bbe":"setTokenContract(address)","bbcdd139":"initExploit()","bbcded7a":"left73(uint256)","bbce2c17":"lastBurn()","bbce3fc2":"getLastBet()","bbce67ca":"lastPlayTime()","bbced0d0":"newTopic(string)","bbcef175":"end_redeem_period()","bbd0c939":"computePrice(uint256,uint256)","bbd1e186":"addModule(string)","bbd1e1fc":"editionActive(uint256)","bbd2e01e":"betsLength()","bbd2e059":"impl_transferMSI(address,address,uint256)","bbd31db3":"openAll()","bbd32de0":"massTransfer(address[],uint256)","bbd3684c":"reservedteamtoken()","bbd37e37":"RICO()","bbd37ef3":"getReportingParticipant(uint256)","bbd39ac0":"coinBalanceOf(address)","bbd3b27c":"loveEvent()","bbd3b2ab":"inrSessions()","bbd418e6":"testConcatStorage4Bytes()","bbd425df":"bestUser()","bbd4271f":"setRateAndStart(uint256,uint256,uint256)","bbd46303":"changeStage(uint8,uint256,uint256,uint256)","bbd4e8c9":"numDeposits()","bbd4edb1":"updateRatingCustomer(string,bool)","bbd4f854":"buyShares(bytes32,uint8,uint256,uint256)","bbd5301a":"_devteam()","bbd53bf7":"fairsale_protectionOFF()","bbd5d174":"LogGame(string,string,string,string)","bbd6dd48":"getUserTokenInfos(uint256)","bbd74748":"Ethraffle_v4b()","bbd8b602":"getOracleOutcomes(bytes,address[])","bbd95c32":"inArray(uint256[],uint256)","bbd974cc":"maxAllowedTakerBetsPerMakerBet()","bbd9a5fa":"grantPermission(address,string)","bbda1e9a":"BicycleToken()","bbda33d9":"getGameName()","bbdaebe2":"transferFromInternal(address,address,uint256)","bbdb31cb":"challenge(uint256,address,bool)","bbdb57c3":"batchTransferORSS(address[],uint256[])","bbdbd31e":"beneficiaryAndBirth(bytes32,int256,bytes32)","bbdc02db":"gameType()","bbdc04d8":"getDealData(bytes32)","bbdc7709":"startDispute()","bbdd366a":"DECIMALS_MULTIPLIER()","bbddaca3":"setReferrer(address,address)","bbdefbbb":"AWMVoucher()","bbdfbfba":"delivered()","bbe00af5":"beneficiars()","bbe18d43":"betClosed()","bbe2b727":"burnWholeBalance()","bbe42771":"closeDeed(uint256)","bbe430de":"available(address,address)","bbe437eb":"endICO_w2()","bbe4fd50":"getNow()","bbe562b0":"multiplication(uint256,uint256)","bbe5d9d4":"addSpace(uint256,uint256,bytes)","bbe61730":"get_sale_arbits_total()","bbe7180b":"envio_dinero()","bbe7221e":"orderbookContract()","bbe86e6a":"sendTokensToOne(address,uint256)","bbe8a9b6":"registerSecretBatch(bytes32[])","bbe93d91":"mul(int256,int256)","bbe9c7d6":"takePromille(uint256,uint256)","bbe9f99d":"isTeamMember(address)","bbeadcad":"invalidateVotingAtIndex(uint256)","bbeb5923":"joinFee_()","bbeb76bc":"setMultipleParticipantWhitelist(address[],bool[],uint256[])","bbec3768":"createOrder(uint128,uint16,uint256,uint8,uint256)","bbec9e1b":"deletePriceCredentialItemId(bytes32)","bbececa9":"left78(uint256)","bbed7177":"getContentTimestamp(uint256)","bbee1ab7":"forgiveIt(address)","bbef83cf":"getContractNameById(bytes32)","bbef86b8":"PayForServiceCHL(uint256)","bbf02b00":"level_8_percent()","bbf0f065":"keepEth()","bbf14d67":"tier3Timestamp()","bbf1e6d0":"SetMiningEnable()","bbf2a9a3":"changeAcct3(address)","bbf2ee4e":"lockAddress(uint256)","bbf3ae00":"ccExchangeRate()","bbf48d6f":"convertReward()","bbf58f4d":"foundersVault()","bbf59a41":"personal_withdraw()","bbf646c2":"ethAddr()","bbf7585c":"getDistributionAt(uint256)","bbf76802":"purchaseApprove(address)","bbf78026":"SetMemberInfo(address,address,bytes32)","bbf89803":"addBuyer(address)","bbf9cd8b":"EACCoin()","bbfa6153":"getRegulatorLevel(address)","bbfad256":"updated(uint256)","bbfb2f7a":"getEndtime()","bbfbaaf8":"getWorkSecondsInProgress()","bbfbe6b6":"discountedMiningDifficulty(address)","bbfcc86b":"getHistEthRate(uint256)","bbfe6b75":"externalCall(address,uint256,bytes,uint256,uint256)","bc0111a8":"initEnsRigistrar()","bc014bb9":"earlyBackers()","bc019eed":"getAffiliate(address)","bc01b767":"freezeTransfersUntil(uint256)","bc02844c":"totalRemaining(uint256)","bc032967":"getRetailerByAddress(address,address)","bc03a31e":"superManager(address)","bc04056a":"LockedDayAdded(address,uint256,uint256)","bc0409bf":"addTokens(bytes32,uint256)","bc04562d":"Reclaimer(bytes32)","bc04cb0f":"FEED1()","bc04d77b":"datasetHub()","bc055227":"ownerOfPiranha(uint256)","bc05529b":"SaleDeadline()","bc058968":"updateThingData(bytes32[],bytes32[],uint88)","bc05d087":"registerProduct(uint256,string)","bc063e1a":"MAX_FEE()","bc064863":"getRequestorAddresses()","bc070e83":"minimumBuyIn()","bc084de9":"CrowdsaleAuthorizer(address,uint256,uint256,uint256,uint256,uint256)","bc08afd9":"WebOfTrustToken(address,uint256)","bc09b5ec":"fundPreIco()","bc0aaff2":"setzBytes32(bytes32)","bc0aca61":"setFeeAccount1(address)","bc0ae61e":"GazeBountyCoin()","bc0b45fa":"OSPN()","bc0c868c":"stocksOf(uint256)","bc0cd8d3":"BOOCOIN()","bc0e7adb":"testThrowsDisownNotOwner()","bc0eaf0a":"calcAmountAt(uint256,uint256)","bc0f920a":"AuthSuspend(bool)","bc0fb9a0":"predictWinner(uint256,uint256,uint256)","bc1013db":"m_totalWorkerPoolCount()","bc101ffe":"twentyPercentWithBonus()","bc104f24":"compareItemSlots(uint256,uint256)","bc10a667":"euroRaisedICO()","bc10ce84":"Test(int256)","bc1123fe":"isUInt256ValidIn64(uint256)","bc112fa3":"ALC_FUNDATION_ADDRESS()","bc11f72c":"DABcoin()","bc120fe7":"whitelisted(address,address)","bc126ba1":"totalCents()","bc1292a0":"BonusChange(uint256)","bc129a98":"accountedTokenSales()","bc12d19d":"maxCapTokenPresale()","bc12e3d7":"getAuction(uint64)","bc1351ba":"has_contract_started()","bc13e3a6":"controller2()","bc14016b":"removeAllOps()","bc148094":"PostAdded(address)","bc1558be":"MANHATTANPROXY3RDAVE()","bc15a2dd":"BEAXY()","bc15be93":"firstRoundCosmosDiscount()","bc15e5fe":"get_next_global_audit_document(bytes32)","bc16272d":"requestRegistration(bytes32)","bc168c90":"_setIPFSHash(bytes32,string)","bc174df3":"ProofOfCryptoNick()","bc17991d":"restoreBalances(address[60],uint256[60],uint256[60])","bc17a0b4":"PAST()","bc17bd7e":"SelfDestructible(address,address)","bc17e669":"exiteJugador(address)","bc186dc9":"unlockBalanceByIndex(uint256)","bc18f727":"galleryFive()","bc197c81":"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)","bc19bcbf":"submitBallotWithPk(bytes32,bytes32)","bc19bce5":"resolveName(string)","bc1a3810":"thelnwaonCoins()","bc1af71d":"_maxTokenSoldPreICO()","bc1c002c":"call_contract(address,address)","bc1c9888":"CoOwnerSet(address)","bc1e9ca3":"USD_CENT_PER_TOKEN()","bc1ea063":"LogContractOwnershipChangeInitiated(address)","bc1f71e1":"depositKncForFee(address,uint256)","bc2010cc":"feesC()","bc2017f3":"adjustPriceOfCountryPlayersAfterWin(uint256)","bc201a9d":"addSupport(address)","bc208057":"enter(uint256,uint256,uint256)","bc215cb6":"BBTokenBox()","bc21ce9d":"Aggregation()","bc22df1a":"buySpaceshipUpgrade(bytes5,uint16,uint8)","bc22f570":"poolsToCreate()","bc231983":"Temp()","bc244c11":"shut(address,bytes32)","bc244fc9":"systemAddress(address)","bc24612c":"claimableAmount(address,bytes4)","bc246a36":"hashState(address,uint256,uint256,uint256)","bc24d886":"setSail(uint256,uint256,uint256,uint256,uint256,uint256)","bc25415c":"produce(uint64)","bc25a810":"lock(address,bytes32)","bc25e2fd":"postProof(string)","bc2622b4":"addKeyValue(string,string,string,uint256)","bc2674b1":"LogExchange(address,address,uint256)","bc27c7bb":"buyZoAssets(bytes32)","bc28cfe4":"getTicketSet(address,uint256,uint256)","bc28d878":"rejectProposal(uint256)","bc294a7c":"setCEOAddress(address)","bc2a4dd6":"doBalanceOf(address)","bc2b6913":"donateSkin(uint128[],address[],bool[],uint256[])","bc2bbad7":"getMyNotes(uint64,uint64)","bc2c3a12":"ValidContractAdded(address,address,uint256)","bc2d10f1":"finishEthGet()","bc2d87f5":"Set(string,string,address)","bc2eb3f8":"removeNode(bytes32,bytes32)","bc2fe07b":"transferCardOwnership(address,uint8)","bc300ed3":"setBounty(address)","bc304e55":"serverTransfer(address,address,uint256)","bc308233":"autoreleaseTime()","bc30e4ac":"abcLotto()","bc30f3f8":"modifyPlatformAddr(address)","bc33f8ef":"commonRebate()","bc345e11":"Updated(address,address,bytes,bool)","bc346090":"DigipayToken()","bc346c9c":"Attack(address)","bc34f204":"getP3DBalance()","bc356eea":"VEN()","bc3574d4":"adjustSupply(uint256)","bc3589bf":"TOKEN_FIRST_PRICE_RATE()","bc358af9":"listItem(uint256,uint256,uint8,address)","bc35c57f":"setMinAmount2Round(uint256)","bc3619dd":"onBlockClose(address)","bc364d7b":"tokenVestingAddress()","bc367377":"setTokenBurnApproveReset(address,address,address,address)","bc376bbe":"unlockFor(address,uint256)","bc378a73":"getProposalsLength()","bc37d7b8":"setVendingFee(uint256,uint256,uint256)","bc389b6d":"callWithdraw(uint256)","bc38a991":"testInsert()","bc39d42f":"sigDestinationTransferFrom()","bc3a72a5":"ETHHToken(uint256,string,string)","bc3abbdb":"etherPerMiner()","bc3b0d31":"STCB()","bc3bc814":"changeTolerance(bytes32,uint256)","bc3c2846":"requestMediator(uint256,uint256,address)","bc3d9390":"printBlockHash()","bc3dde2f":"xxx(address)","bc3f7bcb":"moleculartechnologySupply()","bc3f931f":"getVote(uint256,address)","bc4006f5":"erc721Metadata()","bc4076e9":"accountsReceiveableHeld()","bc408ec4":"ElixirUSD()","bc40b52a":"startPreICO()","bc40bac6":"getCrydrViewAddress(string)","bc41f298":"changeControllerAccess(address,bool)","bc427bc8":"setFreezeForFounding(uint256,address,uint256)","bc428ee2":"getTimeOutAuthentication()","bc431846":"getBetPriceID(uint256)","bc4447ef":"getBlackListStatus(address,address)","bc447a6d":"numDragonTypes()","bc448782":"setCrowdsaleAddress(address,address)","bc44e79d":"getStageWinners(uint8,uint16,uint8)","bc44ea9a":"setBank(address,uint256)","bc451844":"BONUS_DURATION_1()","bc456c42":"changePaymentAddress(address,address)","bc45d789":"setConfigUint(int256,bytes32,uint256)","bc466ab2":"setNewEnd(uint256)","bc467a3e":"ownedContract()","bc48bc22":"erc20TokenCount()","bc48f4be":"getLand(int256,int256,address)","bc499814":"generatePrefixedPreimage(bytes32)","bc4998b9":"eth2MNT(string)","bc4a2030":"getCurrentRate(uint256,uint256,uint256,uint256)","bc4af295":"spawnAssetWithCreator(address,uint256,uint256,uint256,address)","bc4afa67":"MBTCToken(address,uint256)","bc4b3365":"addFunds(address,uint256)","bc4b346d":"confirmQuest()","bc4bbad1":"updateCostETH(uint256)","bc4c594b":"tokenManagerAddress()","bc4d76e5":"EPay()","bc4d9b50":"minerLockedAmount()","bc4e3105":"unlockAddressDuringITO(address,address)","bc4f65a3":"addCity(bytes32,uint256,uint256)","bc4fcc4a":"redeemedAt(bytes32)","bc4fe17e":"addressToUser(address,address)","bc50c09e":"playAnyTriples(uint256)","bc517131":"walletVersion()","bc5213b7":"_setCurrentRate(uint256)","bc523229":"ShopDex()","bc525652":"templates(uint256)","bc52b43b":"buyinAs(address)","bc537bae":"getMeOutOfHereStocks()","bc53a93d":"E4Token()","bc54a168":"buyTokensOnInvestorBehalfBatch(address[],uint256[])","bc54f56f":"getTemplateDetails()","bc562b9e":"loseSponsor(uint32)","bc56a240":"walletEtherPresale()","bc56e749":"acceptProposal(uint256,address)","bc57275b":"EthCnyPrice()","bc579103":"totalPayed()","bc57d5f5":"transferFrom(address,address,uint256,uint256,uint256,uint256)","bc597d9f":"getProposalVotesCount(uint256)","bc59afe6":"scanMany(address[],bytes1[])","bc59d45a":"raisedWei()","bc5b75f4":"EtherWorldCup()","bc5bf5bf":"releaseVestingTokens(address)","bc5c0c67":"setDowntime(uint256)","bc5cfd4f":"lastBonusNumber()","bc5d066e":"changeCompanyWallet(address,address)","bc5d0f65":"beginExecution()","bc5dc168":"balanceOfLocked2Y(address)","bc5dfd7d":"getCompte_23()","bc5e4bb4":"_hasSkillsCheck(uint256)","bc5ff5e1":"oraclize_query(string,string[4],uint256)","bc602ab7":"removeRandomClass(uint32)","bc607f7b":"funcFromC2()","bc60878e":"total_received_amount()","bc60a365":"removeAdminAccount(uint256,address)","bc60ac60":"StefyToken()","bc61394a":"fillOrder(address[5],uint256[6],uint256,bool,uint8,bytes32,bytes32)","bc6171df":"sendETHToMultiSig(uint256)","bc62c89a":"getTrainerEarn(address)","bc62d8d8":"parse(string)","bc632a21":"creationTime(address)","bc634abb":"getDocumentProposals()","bc636707":"_explorationTime(uint8,uint8,uint8)","bc63cc90":"starCountsForOwner(address)","bc64059b":"exchangeEtherForHavvensAtRate(uint256,uint256)","bc643df1":"getIncludes(uint256,uint256)","bc649f4c":"grantProvider(address)","bc6548fb":"etherVault()","bc655f54":"getEndDate1()","bc65c559":"preIcoInvestment(address,uint256,uint256)","bc65d6f6":"getSubscriberContentHashes()","bc65e9e1":"PenCoin()","bc6633f7":"setSaleState(uint16,bool)","bc677b46":"viewOwner()","bc67f832":"setMessageSender(address)","bc68118b":"setDeveryRegistryAddress(address)","bc68fad9":"burnBalance()","bc697319":"minimumGoal()","bc69dc89":"BenefyCashToken(string,string,uint8,uint256)","bc6a49a3":"LaunchRocketEvent(address,uint32,int64,int64)","bc6ac112":"calculateRegionInitialSalePixelPrice(address[16],uint256)","bc6b12b3":"odem()","bc6c06e7":"GoodfieldRetail(uint256,string,string)","bc6c4d0f":"totalVotesForCandidate(uint256)","bc6d68ee":"updateSubscription(address,address,bool,uint256)","bc6d80fa":"getLenderAmountForIncreasePositionAtTime(bytes32,uint256,uint32)","bc6e6604":"TOKENS_PER_ETH()","bc6f1699":"clockpos()","bc6f712a":"Attestation(string,bool,address)","bc6f9021":"maxCapTokens()","bc6fd6d9":"MINIMAL_WEI()","bc70ad19":"IMEXX()","bc713f1d":"AddPoolCoOwner(string,address)","bc71b0a6":"DeCenterToken(address,address,address,uint256,uint256)","bc71cdcb":"BAInvestor()","bc7202d7":"_updateSalePrice(uint256,uint256,address)","bc734f0f":"nextSeason()","bc735d90":"setOperator(address,address,bool)","bc73a7e4":"_preValidatePurchase(address,uint256,uint256)","bc73c971":"TierBasicDividendAddress(address)","bc7411b2":"chargeBonuses()","bc745a0d":"nextBonusStepLimit()","bc752b61":"buyTicket(uint256[],uint256)","bc76dca0":"GoWalletProject()","bc77b919":"_mySymbol()","bc77f476":"EVCChain()","bc78ac81":"setPet(string)","bc7a6e35":"_startAuction(bytes32)","bc7b3f86":"NewHighestBid(address,uint256,string)","bc7b6d62":"setResolver(uint256,address)","bc7b801e":"adminUpdateWorldSnapshot()","bc7c322c":"ratePerWei()","bc7c55ed":"listing()","bc7c72d7":"getmessagefromdovie()","bc7d8cb4":"EURSToken(address)","bc7dbc0d":"yearlyFee()","bc7dce06":"setETHPrice(uint256)","bc7e8d3c":"isDeholdable()","bc7f25e4":"getReferrerOf(address)","bc7f3b50":"getDelegate()","bc7f58b1":"addAgreement(address,bytes32,uint32,uint32)","bc802c83":"userManagerContract()","bc80bee8":"setFeerate(uint256[3])","bc81572c":"createPromoScene(address,string,uint256[],uint256)","bc81786f":"addBonusToClient(address,address,uint256,string)","bc81c97b":"failingRefund(address,uint256)","bc81f147":"set_iconiq_arbits_per_ether(uint256)","bc81f2f5":"eraseMatch(uint256)","bc82f4d3":"verifyEmailAddress(address,string)","bc83a6fb":"ekkoBlock1(uint256,string,uint8,string)","bc83d001":"DividendFacial()","bc8409a4":"investWallet()","bc843509":"toByte()","bc84a7ba":"getsometokenn(address,uint256)","bc851718":"hashLast()","bc855006":"SantaiToken()","bc85c055":"queryEOSTokenBalance(address,address)","bc85e064":"merchantWallet()","bc86a23a":"addPrimaryRecord(string,string,string,string,string,string,string)","bc87103a":"removeFunder(address,address)","bc8711fd":"getWinnersLength()","bc87b70f":"oldestGen()","bc88adc4":"getBuyerBalancesOfCurrentAuctions(address[],address[],address)","bc899015":"CappedCrowdsaleImpl(uint256,uint256,uint256,address,uint256)","bc8aa899":"we_token()","bc8b336d":"Ninecoin()","bc8bde64":"_creator()","bc8caa47":"resetDividendsCalculation()","bc8cb3f9":"destTokensReferals()","bc8d7a51":"gemsOfOwner(address)","bc8e1143":"processTransaction(bytes,uint256,address,bytes20)","bc8e9cde":"createGen0Horse(uint256,uint256,uint256,uint256,uint256,uint256,address)","bc8f3bcb":"ZeroDollarHomePage()","bc8fbbf8":"nuke()","bc903cb8":"getProposalInfo(uint256)","bc912e1a":"WHITELIST_SALE_PRICE()","bc9147a4":"Foundation()","bc916a50":"hasOwner(uint16)","bc921d54":"setImageData(uint256,uint16,uint256[])","bc92bea5":"getRandomItems(address,string)","bc944d9e":"newLowestAsk(uint256,address)","bc950708":"totalRaisedInCents()","bc95f178":"make(bytes32,bytes32)","bc9748a1":"pong()","bc978361":"setrteamVaultAddr(address)","bc97a8ac":"JackpotPayout()","bc97fd06":"updateMultipleUsersReward(address[],uint256[])","bc98b8b0":"getTTTInfo(uint256)","bc9904ec":"updateProfile(address,bytes)","bc99249e":"buy(address,bool)","bc9968a2":"dataController()","bc99c8be":"takerAddressAt(uint256)","bc99cc37":"maxInvestors()","bc99d04c":"YRQ(uint256,string,string)","bc9abe67":"completedFlag(uint16)","bc9aed8b":"TokensIssued(address,uint256,uint256,uint256,bool,uint256)","bc9b717e":"TokenPurchase(address,address,uint256)","bc9c278d":"IcoContract(address,address,uint256,uint256,uint256,uint256)","bc9c58f6":"countOrigins()","bc9cbcc8":"setImbalanceStepFunction(address,int256[],int256[],int256[],int256[])","bc9cc1fb":"getAllbetByGtype(uint8)","bc9d8d6a":"getLastWallet()","bc9da641":"testToUint8()","bc9e080e":"setVerifierManager(address)","bc9e6b0f":"_getClientLastPaidRate(address)","bc9f31e3":"mock_throwIfNotRemoved(address,address)","bc9ff567":"InternetWealth(uint256)","bca19900":"tokenHardcapIssued()","bca19ca0":"TAAS_CONTRACT()","bca1f81c":"lockOpen()","bca2b941":"setTokenPrice(uint256,uint256,uint256)","bca2bbc0":"EtherModifierMoops()","bca36985":"ExposureSettled(bytes32,address,uint256)","bca38dab":"createGuess(uint256,string,string,string,uint8,bytes,uint256,uint256,uint256[],bytes32[])","bca3eb24":"setCAO(address)","bca50515":"transferFromPreSigned(bytes,address,address,uint256,uint256,uint256)","bca51abf":"_detectStage(uint256)","bca53fa0":"AIHTeamLockContract()","bca58da8":"change_block()","bca60cf5":"getAgreement()","bca63e50":"mintTotal()","bca65475":"jugar()","bca6e8ec":"sendToReceiver(address,address,uint256)","bca7093d":"withdrawalPeriod()","bca72b59":"revealVote(string,uint256,uint256)","bca76131":"GoCryptobotCore()","bca77cd6":"YUBToken()","bca7a9e2":"lockToken()","bca7bd85":"getAllLockerInfo()","bca7e96b":"needsFinalization()","bca86986":"testSetup()","bca915c7":"createPromoPlayer(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bca9745c":"display_time(bytes32)","bca9a5c5":"getEmployee(uint256)","bca9adef":"vestedAvailableAmount(address,address)","bca9e546":"testControlCreateWithParentParentNotInUse()","bcaa218e":"myFrontEndTokens()","bcaa85df":"lockAccounts(address,bool)","bcab7ad2":"TimeDecayingTokenBoundary(uint256,uint256,uint256,uint256,address)","bcabb54c":"modifyCommunityInfo(uint256,string,string,string,string)","bcabbfb1":"startDonation()","bcae19f4":"base58Address(bytes)","bcae9d43":"theProxy()","bcaedade":"STANDARD()","bcafe9a9":"setIncreaseRepAvailableForExtraBondPayouts(bool)","bcb02b74":"testFailPushWhenStopped()","bcb0a787":"_setSchellingRoundSupply(uint256)","bcb0c2d7":"removeStakeholder(address)","bcb0c7c0":"nomParticipant(uint256)","bcb0f541":"setEarlyBirdDuration(uint256)","bcb1e4f7":"GetSellingTokenUnitPrice()","bcb32828":"emissionAddress()","bcb39621":"currentSeason()","bcb3b5d2":"getGamblesList(uint256)","bcb593f1":"subOnStage(address,uint256)","bcb60fa9":"blockTx(bool)","bcb638cb":"parseImpressions(uint64,bytes)","bcb7b0d4":"pauseICOs()","bcb7f880":"DTCC_ILOW_2()","bcb83450":"createMarriage()","bcb98ba2":"changeChampsName(uint256,string)","bcba53f4":"_createBlock(uint256,uint256,uint256,string,address)","bcba6939":"transferERC20Token(address,uint256)","bcbb64c4":"softCapInToken()","bcbc1585":"_payRoyalty()","bcbc758a":"SixStandardToken(uint256,string,uint8,string)","bcbc9175":"prefixedHash(bytes32)","bcbd3bcd":"_editPersonalNote(string,uint256)","bcbd82e5":"rateForPreICO()","bcbd9881":"setFriendsFingersRate(uint256)","bcbdbf40":"SaleResumed()","bcbea1ad":"transferCardTo(address,address)","bcbf5b90":"totalSupplyForPresale()","bcbf7229":"resetVoteCount(uint256)","bcbfe43c":"openSaleCompleted()","bcc13d1d":"contributionMin()","bcc1480a":"canTransferBalance(address)","bcc17ca0":"getvalues(uint256)","bcc221d0":"getBonusValue()","bcc30409":"processPurchase(address,uint8,uint256)","bcc37dd4":"approvedAccount(address)","bcc38018":"recycleReward(uint256)","bcc38d59":"proxies()","bcc3af24":"hasVotedOnConstitutionPoll(uint8,address)","bcc44a72":"restoreTokenOwnership()","bcc46e83":"addCollateral(uint256)","bcc4e4ab":"getVesting()","bcc4f0ed":"isValidBuy(uint256,uint256)","bcc5601b":"BaktFactory(address,bytes32,address)","bcc5dce5":"stash(uint256)","bcc6092a":"MyEtherBank()","bcc673bd":"GeneralToken(string,string,uint8)","bcc70902":"create(address,uint256,uint256[],uint256)","bcc74a3b":"isAdminAddressExist(address)","bcc7900c":"SystemTest()","bcc7db5a":"cleanupErrorGame(address,uint256,uint256)","bcc91d61":"sendEther(address[],uint256[])","bcc941b6":"totalWinners()","bcc94309":"calculator(uint8,uint256,uint256)","bcc9ed6f":"MAX_PAYOUT_FRAC_TOP()","bcca1fd3":"changeVotingRules(uint256,uint256,int256)","bccb6157":"RedemptionWalletUpdated(address)","bccb8fc0":"vestTokens(address,uint256,address,uint256,uint256,uint256,bool)","bccc85e6":"receiveTokenLoot(uint256,uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","bccda810":"logicContractAddress()","bcce515d":"bulkMint(uint256[])","bccee504":"m_ETHPriceLifetime()","bccf0972":"egrToken()","bccf5aa4":"issueTokenAndTransfer(address)","bcd0b22a":"getSnapsLength()","bcd0ce28":"BitcoinUniversal()","bcd101a6":"getStartDates()","bcd2780b":"addValidContract(address)","bcd2feff":"biotorBiomassToken()","bcd396d1":"adminTrade(uint256[],address[],uint8[],bytes32[])","bcd3d8ca":"Collector(address,address,uint256)","bcd3ff89":"setGameSponsorInfo(address,uint256)","bcd4144b":"giveGreed()","bcd45a76":"HolderVacated(address)","bcd47934":"hasBiometric()","bcd5078c":"get_king_address()","bcd533ae":"newRefundProposal()","bcd5349f":"getCapacity(uint256)","bcd59261":"getDepositBlock()","bcd59b36":"secondsAfterStart()","bcd60f6c":"winningProposal(uint256)","bcd61c6a":"getGoodPrice(bytes32)","bcd789cc":"submitProposal(bytes32,string,address,address,uint256)","bcd85b6d":"getBackerStatus(address)","bcd88a61":"viewInvestorDividendPool()","bcd9cc60":"rejectCetification(address)","bcda601f":"Panicked(address)","bcdac66f":"Power()","bcdaea36":"setOpGas(uint256,uint256,uint256,uint256,uint256)","bcdb446b":"recoverEth()","bcdd6121":"increaseApproval(address,address,uint256)","bcdda53f":"TokenERC20(address,uint256,address)","bcddd64e":"CHECKPOINT_KEY()","bcde18f1":"fundingStart()","bcde87eb":"totalAmountOfTeatokensCreated()","bcdea6f9":"getStageMinimum(uint8)","bcdf266c":"EphronTestCoin()","bcdf43dc":"add_presale_arbits_sold(address,uint256)","bcdf569b":"finalize(address,address)","bcdfe0d5":"Hello()","bce0e87a":"payoutOnPurchase(address,uint256)","bce0fb22":"takeOwnershipWithIndex(uint256,uint256)","bce1cdc3":"getTotalEtherOfAllRounds()","bce24669":"removeGame(address)","bce2b9a3":"purchaseEgg()","bce2bb42":"setCoinTotalsContract(address)","bce2d16d":"koef()","bce32da4":"AndhraToken()","bce3cc67":"TokensReclaimed(uint256)","bce440d5":"TokensContractAddressSet(address,address)","bce49a90":"KKCToken(address)","bce4d041":"updateCancels(address,uint256)","bce5a209":"owners2tokens(address,uint256)","bce5fc53":"UIOCOIN(uint256,string,uint8,string)","bce6158d":"PTransfer(address,uint256)","bce643aa":"developer_new_symbol(string)","bce70868":"buildingIsPublic(uint256)","bce83d2a":"setWhitelist(address,address,string)","bce94649":"getRangeURI(uint256)","bce9ae3d":"NewDeal(uint256,address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bce9ccb9":"GetCitySnapshot(address,uint256)","bcea363d":"killContract(address)","bcea7ea0":"chargingGas(uint256)","bcead63e":"lender()","bceaf1fd":"CLOUDForGas()","bcec1df3":"ROLE_DISTRIBUTOR()","bcecbc65":"getSendersEth(address)","bceceefe":"startCrowdsale0(address)","bcecf667":"usdToEth(uint256)","bced2c8c":"InteractingTokenA(uint256,uint256)","bced9cfd":"guessSeed(uint256)","bcedb86c":"payQuarterFinalWinner(uint256)","bcee2dd4":"getFeeCollected()","bcee6eb9":"validateProposedThroneRules(uint256,uint256,uint256,uint256)","bceeb243":"getUserSSCeducationDetails(string)","bceee05e":"isSuperuser(address)","bceeeb9a":"SearchIPR(string,address)","bcef393a":"balanceOfVault(uint256,address)","bcef84b1":"getMaxBuy(uint256,uint256)","bcefafab":"changeAccountAddressForSponsee(address)","bcf0dd8e":"marketTransfer(address,address,uint256)","bcf0e1ea":"TerrariumCoin()","bcf175c8":"oraclize_cbAddress()","bcf2e323":"sort(bool)","bcf49c72":"dewhitelistAddress(address,address)","bcf599f1":"toUnixtime(bytes32)","bcf610bc":"UnsetAgenda(string,address)","bcf6558c":"releaseMid()","bcf685ed":"setAgent(address)","bcf68f87":"lockCrowdSale()","bcf6b3cd":"changeBaseValue(uint256,uint256,uint256,uint256)","bcf711b2":"CBXToken()","bcf7b67e":"emitFeesClaimed(address,uint256)","bcf7bd0b":"requireEnoughExpForBreeding(uint256)","bcf83634":"basecost()","bcfa87d2":"getBounsEarnings(address)","bcfaa79d":"mintTokens(address)","bcfb0140":"getTokenOrderDataHash(uint256[],uint256,uint256,address,address)","bcfb4ea1":"Million()","bcfb9b61":"voteProposal(uint256,bool)","bcfbd445":"getTrader(uint256)","bcfc5078":"bountiesKey()","bcfcb03e":"allocateFounderTokens()","bcfde742":"setHardCapCHF(uint256)","bcfe070f":"batchCancel(address[],uint256[])","bcfe8fb4":"ArtTokenBurn()","bcfea3e4":"BLMCH()","bcff702b":"salePause()","bcfffab8":"shopStoreNextId()","bd00b0c2":"changeDedeAddress(address)","bd0100c9":"registerAddress(string,address,address)","bd01c7d5":"buyTicketToDraw(uint256,uint256,address)","bd025a79":"setDoge(address)","bd02942f":"allocateAdvisors(address,uint256)","bd02d0f5":"getUint(bytes32)","bd02e4f6":"calcRandomNumberAndGetPreliminaryGameResult(uint256,uint64)","bd041c4d":"vote(address,bool)","bd042ca6":"GigsToken()","bd04923f":"values(uint256,uint256,uint256)","bd05c055":"timeBetweenGames()","bd05cb4d":"createContractItem(string)","bd06aa84":"WithdrawalContract()","bd06e777":"SCORE_REPORT_START_TIME()","bd075b84":"mint(address[])","bd079484":"getmortiesSinceLastHatch(address)","bd079a18":"YTPAY(uint256,string,string)","bd088724":"mintDone()","bd097e21":"fundContract()","bd09f117":"eidooWallet_()","bd0a0e85":"setLeaderboard(uint256,uint256)","bd0ae405":"voterReward(address,uint256)","bd0af85d":"pay(address,address)","bd0b65e4":"sub_id(string,uint256)","bd0c6307":"contrExit(uint256[])","bd0cac13":"updPool(uint8,uint256)","bd0cc4ee":"reverseSplitTokensAfterDistribution(uint256)","bd0e5d07":"deposit4()","bd0e6a0f":"startICO(bool)","bd0fda3d":"EntityCount()","bd102430":"blacklister()","bd102993":"CurrentStageUpdated(uint256)","bd119967":"add_rating(uint256,uint256)","bd11e933":"wingsTokenRewardsPercent()","bd129b92":"batchFillOrders(uint256[],bytes[])","bd12a007":"InterfaceId_ERC721Metadata()","bd131a78":"firstAuctionsExtendableDuration()","bd149031":"LongToken(uint256,string,string,uint256)","bd14fe3e":"hasOwnerAccess(address)","bd153c64":"emitted()","bd15e9ab":"hasMinBudget(address,uint256,uint256[])","bd1607ed":"HashRush(string,string,uint8,uint256)","bd16deaa":"ownerSetMaxBet(uint256)","bd16f1f3":"unfreezeByIndex(uint256)","bd1723e5":"blackBox()","bd17647f":"changeMilestone(uint8,uint256,uint256)","bd17a9d8":"blockAccess(address,bytes32)","bd17d63a":"TokenStorageContract(address,address,address[],uint256,uint256,string,string,uint8)","bd183430":"ArtIs()","bd185612":"changeCertificateHash(address,bytes32,uint256)","bd187e3b":"changeParticipationFeeForRaz(uint256,uint256)","bd189666":"DetailedERC20Mock(string,string,uint8)","bd19036a":"investmentCapIcoPhaseTwoPounds()","bd1a77a8":"sellNac(uint256,address,uint256)","bd1ad05c":"LogRecoveryChanged(address,address,address)","bd1b324c":"NewMyToken()","bd1b768b":"getApprovedAddressesOfList(address[],address)","bd1baedb":"SignumToken()","bd1bca06":"_getCrabData(uint256)","bd1d3432":"FOUNDER_ADDRESS1()","bd1de900":"totalOffer()","bd1f4b52":"withdrawErc20(address,uint256)","bd1f7d52":"GetBoosterData()","bd1fac00":"TOKEN_COMMUNITY()","bd218493":"tokenLimitPerWallet()","bd21a864":"DigitalTradingCoin(address)","bd21fa47":"accountBalances()","bd22b1cb":"millionDollarTokenReward()","bd22d07f":"getTankByTokenId(uint256)","bd22f1cd":"testSubmitHash()","bd2302fc":"transferProposal()","bd23076f":"LamboToken()","bd23eb39":"tokenFallback()","bd242709":"initBob(uint256,uint256)","bd249ff0":"lockedBoardBonusAddress()","bd24b0d0":"ZHORA()","bd24de29":"blockDuelBegin()","bd24f08a":"isInBalanceLimit(address,uint256)","bd2560a0":"_inverseGetTokenAmount(address,uint256)","bd262a20":"setAuthority()","bd272880":"OnUpdateFee()","bd2850ab":"Freeze(address,address,uint256,uint256,string)","bd285ea8":"ReferedCrowdsale()","bd28d688":"TFOA(uint256,string,string)","bd28f504":"_computePet(uint256,uint256,uint256)","bd290d8b":"isValidLenth(string)","bd295f30":"GoodTronToken(address,address)","bd2b4ab7":"DigitalContentsToken()","bd2b6444":"adminUpdateWhiteList(address,address,bool)","bd2c0ead":"removeHolder(address,uint256)","bd2c245e":"privateIcoFinalized()","bd2cef65":"callback_ForPayout(bytes32,string,bytes)","bd2deecb":"create(bytes32,address,address[],address,bytes32)","bd2fffb3":"FlipNA()","bd3124e0":"addToBank()","bd320dde":"firstSaleDelivery(address,uint256)","bd322b77":"enableApi(address)","bd32aa44":"initiateSelfDestruct()","bd336584":"first_release(uint256)","bd338d85":"yearOneMultiplier()","bd33cc91":"requestRefundContributor()","bd345ed9":"setETH(string,uint256)","bd353ce2":"withrawDev()","bd355f43":"amountOfBags()","bd3566b7":"generateToken(address,uint256,string,string)","bd35d570":"GAS_TO_COMPLETE_EXECUTION()","bd366ddc":"reclaimEthicHubTeamFee()","bd36a5cd":"updateSaleStatus()","bd36c881":"bytesToAddress(bytes,bytes)","bd36cc93":"burnCancel(address,address)","bd37fec9":"Protean()","bd382b45":"getWindowAdjRatioForGameId(uint256,bool)","bd3a2ef4":"updateOdds(string,uint256)","bd3a5208":"getOraclizeRoundGasFee()","bd3a9d3c":"_createAuction(uint256,string,uint256)","bd3b5d07":"m_pending()","bd3bef41":"NewLeader(uint256,address,uint256,uint256)","bd3ccfc9":"getWeeklyTransactionVolumeSending()","bd3ce132":"transferManually(uint256,address)","bd3d0ecb":"newName(string,string)","bd3e19d4":"getCost()","bd3e7401":"setupSale(uint256,address)","bd3f0965":"AiraEtherFunds(string,string)","bd3fe562":"getRadarsIds()","bd4074f9":"tokensForCrowdSale()","bd431462":"BuyBSTtokens()","bd45115c":"PGPToken()","bd457de2":"KAPcoin(uint256,string,string)","bd478fcb":"readFromCart(address,uint256)","bd47c1a2":"getAccountListLenght()","bd47dd7a":"lockSeedInvestors()","bd484606":"techWallet()","bd48fa0e":"unpause_3()","bd499af3":"updateOptionsRegistryAddress(address)","bd49f00f":"ownersTokenList(address,uint256)","bd4a359d":"getLatestVersion(bytes32,bytes32)","bd4b6bbd":"transferScoupons(address,uint256)","bd4bb67e":"transferTokensFromKingWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","bd4c0755":"Test68()","bd4cfadf":"getownerInfo(address)","bd4dc024":"landRegistry()","bd4e0b4d":"REFERRAL_TOKENS()","bd4ed6cc":"sumHardCapPreICO2()","bd5021af":"startRecovery(address)","bd5034ff":"Redeem(address,uint256,uint256,uint256)","bd50b3b4":"transferAndLock(address,uint256)","bd513bea":"getTreasure(bytes32)","bd51525e":"typeOf(address,uint256)","bd51654b":"showMyEtherBalance(address)","bd516e04":"addCombat(uint128,uint128,bytes32)","bd5196cf":"createGame(string,string,uint256,uint256,string,address,uint256,string,bytes32[2],bool,string)","bd51d5d0":"hasBalance(address,uint256)","bd51fa4c":"propose(string,string,string)","bd527527":"setLLV_edit_13(string)","bd52d81a":"_emitRoleRemoved(address,uint8)","bd5304e3":"ContributorBalanceChanged(address,uint256)","bd53cb96":"changeUnitsUserCanBuyLimit(uint256)","bd541ad0":"depositEscapedFunds()","bd545f53":"cancelAllOrders(uint256)","bd54bced":"LogN_fnc(address,bytes32,uint256,string,bytes,uint256,bytes1,uint256)","bd550824":"_setPayTo(address)","bd556252":"PRE_ICO_PERIOD()","bd58118f":"allocateAngelTokens(address,uint256)","bd5821ca":"_refund(address)","bd5821f1":"changeActualTokenValue(uint256)","bd583bff":"registerManager(address,address)","bd59434d":"setGame(uint8,address)","bd59fdde":"ITube()","bd5acbd6":"continueOrder(uint128,uint256)","bd5ae945":"NodeSwapCrowdSale(uint256,uint256,uint256,uint256,uint256,address,address,address,address,address,uint256)","bd5b758d":"ObtainChip(uint32)","bd5b948d":"CCH_ILOW_1()","bd5c4e24":"TIMEOUT_DESTROY()","bd5c5420":"setExchangeRate(address,uint256)","bd5ca3a3":"createProxyImpl(address)","bd5d7b1d":"FEELCOIN()","bd5dec98":"withdraw(address[])","bd5e3a80":"GPPHARMTOKEN(uint256,uint256)","bd60527b":"getEmployerContracts(address,uint256[],uint256[])","bd611c73":"TOTAL_ICO_TOKENS()","bd61ff75":"cmpn(uint256,uint256)","bd6206ec":"initialDayWithdraw(uint256)","bd621042":"setUnownedPriceInExoTokens(uint256,uint32)","bd623d68":"encodeData(uint128,uint256,uint24,uint40,uint32)","bd625f1b":"setend(uint256)","bd62fff3":"Nines()","bd632e10":"batchInvest(address[],uint256)","bd633642":"MeissaChallengeToken()","bd639259":"getOwnerAngelCount(address)","bd63c338":"canRecover(uint256)","bd646356":"calculateCommissionToWithdraw(uint32)","bd6501b1":"isValidator(uint64,address)","bd656daf":"Fomo2D()","bd659784":"addToList(address)","bd65fc4c":"stb()","bd66528a":"claim(bytes32)","bd675c0e":"revealMove(uint256,uint8,string)","bd679ab2":"WithdrawGains()","bd679ad6":"burnDragons(uint256)","bd6812a4":"lastBlock_a0()","bd684865":"getAuthByPhone(string)","bd68817f":"clearRAMAll()","bd68eb34":"_spawnAxie(uint256,address)","bd6a9abb":"hasClearingPrice(address,bytes32)","bd6bbc31":"lastCollection()","bd6bf475":"canUpdateCompany(string,address)","bd6c4661":"fetchCancelledOrdersForPayer(address)","bd6c6756":"cardsCount()","bd6cac4f":"isPriorPack(address)","bd6de5a3":"dNextOffer()","bd6e578a":"getPreSaleFund()","bd6e5e03":"calcICO(uint256,uint256,uint256)","bd6edba5":"getUserBalances()","bd6fd20d":"getDeedTimestamp(string)","bd7084b2":"getNextNonce()","bd7095db":"GetCompetitionFunds(uint32)","bd70c53a":"LYFToken()","bd70fce9":"getApprenticeDistributedRandom(uint256)","bd7162b6":"setPixelPrice(uint16,uint16,uint256)","bd7173dd":"addLuckyblock(uint256)","bd719336":"canDistributeReservedTokens()","bd71e476":"ownerSetMinBetMining(uint256)","bd7243f6":"wipeBlacklistedAccount(address)","bd725f6e":"UBSToken()","bd728083":"ShowPurchased(uint256,address,address,uint256,uint256)","bd733dfb":"getUintsOwnerCount(address,address)","bd739a2f":"existsManagedContract(uint256,address)","bd73a9b4":"setTime4(address,uint256)","bd7427f8":"forceRefund()","bd7474ca":"upgradeDeploymentAdmins(address)","bd74c4e7":"setAttribute(address,address,bytes32,bytes,uint256)","bd74dc9d":"servicePaymentWithCharityPercentage(address,uint256)","bd763f59":"addPlayerData(uint256,uint256,string,uint256,uint64,uint64,uint64)","bd76540a":"buyIn(uint8,uint256)","bd76bf19":"addToBuyList(uint256,uint256)","bd778fde":"CoinNext()","bd77ac2c":"disburse(uint256)","bd780d0d":"getLastAttack(uint256,uint256)","bd788c88":"allocate(address,address,uint256,uint8)","bd792db3":"setIcoAddress(address)","bd797e32":"ChangeEmployeeState(address,uint8,uint8)","bd79a42a":"decimalToPreciseDecimal(uint256)","bd79d692":"depositEtherToVault(uint256)","bd7a9fda":"nameRegistry(address)","bd7afb29":"lastBlock_f17()","bd7b09e4":"totalCitizens()","bd7b7849":"addFace(string,string)","bd7be110":"SaveCoin()","bd7c13c6":"phase1MaxEtherCap()","bd7d3836":"pauseCrowdSale()","bd801ed4":"yishiliToken()","bd80d449":"newOK()","bd812166":"getSeasonInfo(uint32[99])","bd815a10":"RecyclerToken(uint256,string,string)","bd820688":"numOperators()","bd826f2b":"currentnumber()","bd837b2b":"approveToPullOutTokens(address,address,uint256)","bd83ea8d":"createMarriage(string,string,string,string,uint256)","bd84d8f6":"ProgressiveIndividualCappedCrowdsale(uint256,uint256)","bd853960":"assertEq14(bytes14,bytes14,bytes32)","bd858288":"orderMatch(uint256,uint256,int256,uint256,uint256,address,uint8,bytes32,bytes32,int256)","bd85948c":"startNewRound()","bd85b039":"totalSupply(uint256)","bd85e163":"FOURTH_USER_CUT()","bd865d29":"end_auction()","bd8697ab":"makeFailed(bool)","bd88f603":"setImageData(address[16],uint256,uint16,uint256[])","bd897671":"KYRIOSToken()","bd89d806":"y_Title()","bd8a79d5":"getFollowingCandidate()","bd8aa780":"whitelist(address[])","bd8b452e":"eatUnicorns()","bd8c1d33":"checkTransferFromToICAPWithReference(address,bytes32,uint256,string)","bd8c5643":"disableMoving()","bd8caabf":"setVirtualReserveBalance(uint256)","bd8cb6ca":"removePlugin(address,address)","bd8d34f5":"fundForTeam()","bd8d585e":"NCO()","bd8d5c7f":"EtherCartel()","bd8d5ce3":"amountReservedTokens()","bd8d86c4":"getlevel(uint256,uint256)","bd8d92c3":"requestDiplomaEntry(uint256,uint256)","bd8e0905":"weiToToken(uint256)","bd8e4725":"IxiniumFT()","bd8e4a51":"getCAORatio()","bd8e68c9":"PRICE_STAGE_FOUR()","bd8f61d8":"PerfectCoin()","bd8f997c":"getTotalQtyIpfsAddresses()","bd902dad":"approveSingleUser(address)","bd90df70":"targetContract()","bd916452":"claimReferrerBonus()","bd9215f4":"highest_bidder()","bd9335c0":"scheduleHangouts()","bd93f493":"LAUNCH_DATE()","bd945430":"OUTINGRESERVE()","bd94b005":"cancelSale(uint256)","bd94fafc":"PRESALE_CAP()","bd952178":"rejectAllocation(address)","bd95264c":"store(address,address,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","bd957585":"declareCrowdsaleEnd()","bd95d909":"sellTokenPerEther()","bd95f042":"sendRemainsToOwner()","bd963442":"handleRefundRequest(address)","bd968eed":"runeToWeiRatio()","bd96b348":"GeBitToken()","bd97ce3a":"changeReferrer(address)","bd987008":"setAccountIsNotFrozenForReturn(address,bool)","bd991fc5":"setGroupRight(string,string,bool)","bd9934f1":"freezeAddress(address,uint256)","bd993f9e":"COREthExchangeRate()","bd998dc8":"CloseSale()","bd9a0158":"setTimeConstants(uint256,uint256)","bd9a11fd":"finalstate()","bd9a548b":"getPrices()","bd9a5673":"oraclize_query(string,string[5])","bd9b49b7":"goalCompletedBlock()","bd9b6d86":"confirmOwner()","bd9b6e85":"tokenTranslate()","bd9c33bc":"_discount(uint8)","bd9c5688":"distributeFee(uint256,address)","bd9ca422":"AIChain(uint256,string,string)","bd9d6b37":"AddNewPresalePackage(uint16,uint256)","bd9d6d7f":"memeData(uint256)","bd9e6bfc":"makeBuyOffer(uint32)","bd9ead1f":"calculateClaimableReward(address,address)","bd9ebfbb":"marketSellOrdersNoThrow(uint256,bytes[])","bd9ec492":"maximumEther()","bd9ef436":"witnessOf(uint256)","bd9f8917":"finalizeEnableRefunds()","bd9fbe7b":"getDefaultAQL()","bda00866":"getAmountOfUnlockedTokens(address)","bda02782":"b(address)","bda1504b":"currentSize()","bda1f35e":"Fleuth()","bda2aa53":"testUnsyncedRate()","bda2e692":"DinosaurFarmerNew()","bda330f7":"refundingStarttime()","bda393d3":"totaldividends()","bda4cf80":"_pfind(address)","bda4fd89":"totalItem()","bda5c450":"calculateDividendTokens(uint256,uint256)","bda5ea03":"tkwins()","bda6642c":"changeStartingPricesLimits(uint256,uint256,uint256)","bda6c497":"borrowerReturnDate()","bda70d92":"destroyOldCoins(address,uint256,string)","bda77531":"changeAdultDragonStage(uint8)","bda7c3ee":"delegateTransfer(address,address,uint256,uint256)","bda81086":"jsonRead(string,string)","bda8bf45":"getWitnessWeiCost()","bda9a055":"getStepsCount(uint256)","bda9b45c":"whitelistMe(uint128,uint8,bytes32,bytes32)","bdaa80c1":"TronX()","bdaacabd":"buyXname()","bdaacbbe":"calculateAdminFee(uint256)","bdaae1e7":"createGame(uint256,uint256,uint256,uint256)","bdab5fb0":"fishLocation(bytes32)","bdace3de":"ChessClubLiveChessCoin()","bdad3db2":"_mintTo(address,uint8,uint256)","bdad4dc3":"allocate(address[],uint256[])","bdad8112":"hashArguments(address,uint40,uint40,uint128,uint256)","bdaeb0a0":"m_GameHidden()","bdaf2fae":"timeBought(uint256)","bdaf78fb":"refundUser(bytes32,bytes32)","bdafcda9":"logClassic(string,address)","bdb001a7":"mana()","bdb00fb9":"blackjack(uint256,uint256,address)","bdb084b2":"startCrowdsaleY1(address)","bdb10825":"MOOVIN(uint256,string,string)","bdb15209":"getNewPrice(uint256,uint256)","bdb27170":"setLockinManagerAddress(address)","bdb337d1":"gameOver()","bdb4dc6e":"getBrickSize()","bdb4f321":"balanceOfStocksAt()","bdb57edc":"TokenRedeem(address,uint256)","bdb5daf5":"OvisAddress()","bdb66236":"pushDividends()","bdb6bce8":"livingSupply()","bdb81203":"newGrant(address,address,uint256,uint256,uint256,uint256,bool)","bdb9c11f":"transferTokensFrom(address,address,uint256,uint256)","bdb9f28d":"setPresaleAddress(address)","bdbaae63":"mint(int256)","bdbb829d":"haltICO(address)","bdbbf429":"escrowHistory(address,uint256,uint256)","bdbbfcad":"stageAmount()","bdbcd001":"testSetValidProvider()","bdbcd192":"PowerEnabled(address,address,address,address)","bdbed722":"getAllTokenIds()","bdbf40a9":"Certify(address,uint256)","bdbf7d4c":"DELETE_NAME_ROLE()","bdc056c0":"BanknadToken()","bdc06de4":"SGTExchanger(address,address,address)","bdc0ba8e":"disableMaintenance()","bdc0f93c":"node_count(uint256)","bdc2866e":"MasterMindAlliance()","bdc2f1e8":"multivestBuy(address,address,uint8,bytes32,bytes32)","bdc31ce8":"Roto2coin()","bdc33928":"placeIndexToApproved(uint256)","bdc441b2":"getItemCount(uint256)","bdc4843a":"lockAddressAfterITO(address,address)","bdc6d9ab":"schedules(uint256)","bdc742fc":"updAcceptDonate(bool)","bdc74e23":"_processTokensAssgin(address,uint256)","bdc850d6":"ALasser()","bdc8e551":"isICOOver()","bdc95b32":"registerIdentity(string,string,string)","bdc963d8":"getUIntValue(bytes32)","bdc99152":"Token_1_Balance(address,address)","bdcab795":"addBeneficiary(address,uint256,uint256,uint256,uint256,bool)","bdcafc55":"setSaleFee(uint256)","bdcbd9d1":"howMuchCanXContributeNow(address)","bdcbda5c":"AccountTransfersThawed(address,bool)","bdcc3439":"add_master(address)","bdcc809a":"setReleaseCompany(uint256,bool)","bdccd1af":"TokenHolder(uint256,address)","bdcd0262":"addRecord(bytes32,bytes32,bool)","bdcd21a1":"spawnRaceManual(uint256,uint256,bool)","bdcd3071":"LogBonusLOTRedemption(address,uint256,uint256)","bdcdc0bc":"updateTotalAvailable(uint256,uint256)","bdce46be":"PriceIncrease(string,uint256,address)","bdced258":"VendCrowdsale(uint256,uint256,uint256,address,uint256)","bdceed0b":"gvToken()","bdcefb62":"FRST_CRWDSALE_RATIO()","bdcfbc37":"ANMInflationVesting()","bdd088e9":"littleMonster()","bdd2ae24":"add(bytes,int256,uint256)","bdd2d286":"drawPlayer(address,address)","bdd30406":"successfulWithdraw()","bdd36562":"getBonusByAddressAndIndex(address,uint256)","bdd3abd9":"MjolnirWebsite()","bdd3fea0":"set_for_sale(uint256)","bdd41d4c":"ParagonCoinToken(address)","bdd50908":"approveWithdrawAddress()","bdd5be2f":"performBuy(address[8],uint256[6],uint256,uint256,uint8,bytes32,bytes32)","bdd5f8da":"weiPerSgd()","bdd62b7b":"defective(bytes32,uint256)","bdd75267":"OPULENCE()","bdd7908b":"getFishParams(uint256,uint256,uint256,address)","bdd7c220":"CryptessaLiquidCoin()","bdd83add":"isAllocated12()","bdd8a366":"g1()","bdd8f051":"SmartOToken()","bdd9f4e7":"batchInnerTransfer(address[],address[],uint256[],uint256)","bddac117":"SetAmount(string,uint256)","bddae40e":"setCommittee(address)","bddba4eb":"grantRole(address,string)","bddbe244":"get_vice_pic(uint8)","bddcfead":"MakeWinner(address,uint256,uint256)","bddd0abd":"ExampleToken(uint256)","bddd1e7e":"WITHDRAWAL_END_TIME()","bddd3202":"_tryTriggerPayout(uint16,uint256)","bddd3a6b":"step7()","bddefc06":"withdrawed(address,uint256,string)","bddf66ff":"claimMigrate()","bde18839":"OHGVientiane()","bde1f585":"endCrowdsalel()","bde236a5":"checkClaimEntitlement()","bde27f4a":"forwardToHotWallet(uint256)","bde2ddf2":"_forwardFunds(address)","bde4e7c2":"tokenAddFee()","bde5c4a2":"_stealCardWithId(uint256)","bde60ac9":"donate(uint64,uint64)","bde66362":"_createNinja(uint256,uint256,uint256,uint256,address)","bde6a5a9":"burnPrice()","bde7ef86":"SynTokenCrowdsale()","bde7fa7d":"removeWhiteListed(uint256)","bde842ac":"getJobStatus(uint256,uint256)","bde86dd1":"tokenExpirationTime(uint256)","bde8a93e":"setBankroll(address)","bde8c509":"mintIdentityTokenDelegated(address,address,uint8,bytes32,bytes32)","bde8cd4d":"icoPool()","bde97455":"SCRefundVault()","bdeb130c":"doPayment(uint256,uint256,address)","bdeb45b8":"expireIfNecessary()","bdeb9fb4":"tokensAvailableForSale()","bdec5cce":"LotteryRoundCompleted(bytes32,uint8,bytes4,uint256)","bdeddb45":"setMyICOContract(address)","bdee21ff":"test_oneValidAssertFalse()","bdef744b":"PriceTwoDisable()","bdf1211e":"getPercentBurn()","bdf1e7cf":"getProviderReward(address,uint256)","bdf27b50":"setPOOL_edit_21(string)","bdf2a0f5":"fundDaoFor(uint256,uint256)","bdf3390e":"checkPwnData()","bdf384a8":"peekUpdated()","bdf391cc":"getPair(uint256)","bdf3c4ae":"stock()","bdf44067":"TCASHx()","bdf499e1":"DappHunt()","bdf4bb73":"DatToDtrcNumerator()","bdf4e7c6":"TaskRegister(address,address,address)","bdf5fba1":"COMMUNITY_POOL_ADDR()","bdf63c15":"RSPLT_F()","bdf692f4":"Propersix()","bdf6fb56":"requestMilestonePayment(uint256)","bdf70087":"getInvestor(bytes32,uint8)","bdf70de1":"SportXToken()","bdf7220f":"getFinalTeams()","bdf75a6a":"PRICE_RATE_FIRST()","bdf7716d":"getNodeHeight(bytes32)","bdf79c9d":"Adapter(address,address,address)","bdf7a8e6":"airdrop(uint256,address[])","bdf7f22f":"puremail()","bdf82b2a":"killFrost()","bdf86a66":"give(address)","bdf88d34":"stopTest()","bdf944b3":"depositAffiliate(uint256)","bdf99bd4":"AntPetTempleToken()","bdf9f646":"disApprove(address)","bdfaa337":"totalAlloc()","bdfb481d":"ABDEL_ALLOCATION()","bdfbab66":"getReferals(address)","bdfc0522":"investBounty(address,uint256)","bdfd582b":"FailClosedVault(address,address,uint256,uint256,address,uint256)","bdfd6257":"settingNameExist(string,address)","bdfdb519":"accept(string,uint256,uint16)","bdfdbf56":"read_u16_array()","bdfe7d47":"addresses(string)","bdff85cf":"ArrAccountIsNotFrozenForReturn(uint256)","bdff9fca":"checkTotalPaid()","bdffd282":"SIZE()","be0043bc":"removeMinterByIndex(uint256)","be007380":"DapdapNiubi()","be01bc87":"carTaxiCrowdsaleAddress()","be02bc3c":"internalTransfer(address,address,uint256,uint256)","be030bd8":"_setToken(address)","be038478":"createPermission(address,address,bytes32,address)","be03c602":"test_get()","be040fb0":"redeem()","be041614":"storedDataInBytes()","be048d04":"getOrganizationalCertAddressByID(string)","be0522e0":"inflation()","be063693":"intermediadorAprovaPagamento(bool)","be0638e4":"WealthShare()","be06ae25":"VirsymCoin()","be06e4e8":"inheritedConstant()","be08728f":"_setRemovalPrice(uint256)","be08d744":"TFcoin(uint256,string,string)","be099e7d":"endICOs()","be0ad4d1":"calculatePayoutVariables()","be0ca01b":"resetChallenge(uint256)","be0d4da4":"produceLottoNumber(uint256,uint256)","be0da251":"CANCELLED_FEE_FLAG()","be0e9d75":"removeWorker(address,address)","be0ecd32":"synthInitiatedExchange(address,bytes4,uint256,bytes4,address)","be0f0a50":"setPriceStep5(uint256)","be0f27cf":"rejectBountyTransfer(address)","be0f6bcb":"End10()","be104849":"AutorizeRefund()","be10862b":"partner()","be10c33d":"LogOperatorRem(address)","be116c3b":"removeProxy(address)","be11ce2f":"minEthContribution()","be1271c4":"setPrice(uint8)","be140381":"firstEntranceToSaleStateUNIX()","be14e5fc":"ETH530on420()","be154a18":"Partial8Transfer()","be160a92":"ERC20token(uint256,string,uint8,string)","be162060":"validCrowdsale()","be163d75":"validPurchase(uint256)","be165566":"setTokenBankrollAddress(uint8,address)","be169856":"getOriginByIndex(uint256)","be16dccd":"tomoDeposit()","be177c6a":"addJoinAirdropQuest(address)","be17a8b1":"doCustomAirdrop(address,address[],uint256[])","be17be5d":"total_minted()","be189035":"modifyIndividualCap(address,uint256)","be18a08b":"finishUpRound(int256,string)","be190032":"timespan()","be19d926":"Britishcoin()","be1abba5":"payoffAmount()","be1b7b4c":"FIRST_UNLOCK()","be1c766b":"getLength()","be1eefbf":"hotStore()","be1ef5c1":"approveWithdraw(address,address)","be1faaaf":"depositCoupon(address[2],uint256[7],uint8,bytes32[2])","be1ff08b":"sbtToken(address)","be20d298":"AxiePresale()","be20f9ac":"getSlotInfo(uint256)","be213c2d":"startBoughtExit(bytes32[],uint256,bytes32[])","be220272":"houseWithdraw()","be22f546":"daiToken()","be22f6aa":"LUYOCrowdsale()","be23d291":"requestPrint(address,uint256)","be241871":"isTxExist(bytes32)","be2430fe":"sendValues()","be25270f":"hash(string,uint256)","be25d0ce":"buyerCapHighEther()","be2671c9":"getUserBonusBalance(address)","be26733c":"Kill()","be268c3f":"batchSubmit(address[])","be275680":"submissionOpen(uint256)","be27b22c":"claim(bytes,bytes)","be28f5db":"makeTokens()","be29184f":"mint(address,uint128)","be292552":"setMintAddress(address,address)","be297530":"Coinname()","be29d81f":"BRL_Omnidollar()","be2a2ff2":"getAccountBlockedFunds(address)","be2b1047":"hodlerTimeStart()","be2b5996":"designateAdmin(address,address)","be2d8b2d":"PowerToken()","be2dbe21":"Raffle()","be2dcd6c":"buyMFCoins(address,uint256)","be2eaad4":"expectedFunds(uint256,bool)","be2ef9f0":"secondWalletPercent()","be2f3059":"RcdGet()","be2fd146":"addMultiRequest(address,uint256,uint256,address)","be2ff4a9":"withdrawBank(uint256)","be30eda8":"transferAndLock(address,address,uint256)","be30f0a6":"setPurchaseLimits(uint256,uint256)","be317e7e":"ICOReserveLockUp()","be31b600":"CART()","be31ffed":"AOSToken()","be32cf8d":"mix()","be32eeba":"getFishIdByPos(uint256)","be3400b8":"CharityCashCoin()","be34dab3":"addBrick(string,string,uint256,string,bytes32[])","be354949":"setReservesForExchangeTokensWallet(address)","be35525d":"setPlayerAffID(uint256,uint256)","be357616":"withdrawFee(uint256)","be361f60":"retrieveChange()","be363e36":"sendMoneyBack()","be36e676":"Set(bytes32,bytes32)","be38e241":"activations()","be3912fa":"registerProduct(uint256,uint256,uint256,bytes,bytes)","be3945e4":"getFee(address,address,uint256)","be395cd5":"setPoliticsForJackpotParticipantsList(bool)","be3c33f4":"ZeroXCoin()","be3c8488":"previousStageIsFinalized()","be3c92a6":"setLimitTokenPurchase(uint256,uint256)","be3ca849":"getFunding(address,uint256)","be3cbb04":"iWantXJade(uint256)","be3daf55":"shouldLiquidate(bytes32,address,address,address,address,uint256,uint256,uint256,uint256)","be3dd131":"migrateFunds(address[])","be3dedae":"changeOwnership(string,uint256,uint256,address,address)","be3e33d5":"play(bytes1)","be3e41b1":"bonusFirstTwoDays()","be3eac25":"WithdrawEnabled()","be3ee935":"addClient(string,string,string,string,uint256,uint256,uint8,uint8)","be3f3471":"total_trades()","be3f34a1":"collectIncome(address)","be400cad":"KudosToken(string,string,string,uint8,address)","be4054b9":"commitReading(address,uint256,uint256,string)","be40887d":"sumDepth(uint128)","be408a5f":"winner_percentage()","be410448":"getERC20Id(uint256,address)","be427b1c":"setFinderFee(uint256)","be4299a6":"Maxsupply()","be4413fc":"Donator3()","be4474b4":"processFee(uint256)","be44e2d6":"getdeptreqscount()","be457017":"validateRefundSignature(uint8,bytes,address)","be45a26f":"variables()","be45af43":"InnovateToken()","be45cdb8":"crowdsaleTokenBalance()","be45d47e":"whitehatRecover()","be45fd62":"transfer(address,uint256,bytes)","be46203e":"Claim_TRAC_900()","be4663a1":"vestContract()","be46b94c":"ROLE_KNOWN_ORIGIN()","be46bffb":"verifyLottery(uint8,bytes32,bytes)","be46e9ca":"starting()","be46ee5f":"postNewAnswer(bytes32,bytes32)","be471027":"limitedSale()","be47dca1":"getNumberOfClients()","be482cc2":"getCurrentLotteryJoiners()","be48acc4":"MAX_PERSIANS()","be48d81e":"team_accounts(uint256)","be490a04":"Banned(address,bool)","be494573":"pureBalanceOf(address)","be4951e4":"setBroker(address,address)","be4a0910":"sendTokensSale(address,uint256)","be4a0b11":"preAssign(address)","be4a471c":"memoryFactor()","be4a6bad":"newOrder(address,uint256,uint256)","be4a7160":"closeDistribution(bool)","be4a90eb":"GoramCoin(uint256,string,uint8,string)","be4aba09":"tokenR6()","be4b1772":"withdrawToken(uint256,address)","be4bb31a":"WAmlingCoin()","be4c3a0c":"getContractOwner(string)","be4c45d5":"changeBuyingPrice(uint256)","be4c9e96":"TRONIC()","be4cbafd":"RichGoldToken()","be4cc281":"ManagerUpdate(address,address)","be4ce05c":"JULY()","be4d06cc":"setLLV_edit_16(string)","be4dbb5e":"getInvestorByValue(address)","be4dbe26":"getBlocklancerContractHolder()","be4ea54d":"setDeveloper(string,uint256)","be4eb0e9":"getUserFromId(uint256)","be4ebda3":"BOUNTY_SHARE()","be4f4fdf":"restrictedShare()","be50af2e":"tokenWithdraw(address,uint256)","be519862":"percDown(uint256)","be51bc0a":"FuncToken()","be523c23":"dungeonPreparationTime()","be5308ea":"BitplusToken(uint256,uint256)","be53874f":"emergencyFundReleased()","be53f968":"getPreSaleStart()","be54c568":"starting(uint256)","be54f214":"monthWithdraw()","be5638ff":"investor_contains(address)","be5648c3":"getResoType()","be571e2e":"BigbomToken(uint256,uint256,address,address,address,address,address,address,address)","be571e8f":"getTokens(address,bytes32,uint256)","be572d52":"addItem(uint256,string)","be576364":"synthInitiatedFeePayment(address,bytes4,uint256)","be592488":"validateName(bytes)","be597faa":"_finishTge()","be59b4b1":"mostRecentCaller()","be5affd1":"address3a()","be5b9c74":"MultiSigWalletMock(address[],uint256)","be5babc2":"CryptoGems()","be5c2423":"failedVerificationSlashAmount()","be5df6cb":"findLover(address)","be5e72e0":"updateBasePrice(uint256,uint256,uint256,uint256)","be5ea335":"betERC20(address,bool,uint256)","be5eb443":"getScriptAction(bytes,uint256)","be5eeb2d":"getSociety(uint256)","be5f3d12":"allocateTokensForAdvisor()","be600276":"move(uint16)","be6002c2":"exec(address,bytes)","be6010f9":"calcHash(uint32,uint8,uint256,uint256,int256,bytes32,bytes32,uint256)","be60988e":"getLotteryByID(uint32)","be60989d":"addCard(string,uint8,string,string,string)","be60be76":"TokenMigration()","be60e771":"ZAMZA()","be616e83":"processAP()","be621764":"TradeRegister()","be62e98e":"MIN_PRICE_SALE()","be6307c8":"getDraw(uint256)","be6340b8":"mintedDirectly()","be63c8ca":"Retire()","be63f7b1":"TobkaCoin()","be640921":"regInitAccount(string,string,string)","be65d234":"Owner_Changed(address)","be65d27a":"vaultDeposit()","be66399f":"setOuverture_effective(uint256)","be676ac6":"transfer_balances(address[])","be67f4fd":"ActualShareManager()","be6872af":"totalTokensForSold()","be6896c3":"PropellerheadSupport()","be692cd3":"erase_data()","be6ad6d2":"ForceEther()","be6b6ba6":"getVestingStageAttributes(uint8)","be6c03ff":"stakedForProposal(address,address,bytes32,bytes32)","be6c554f":"firstCheckpointPrice()","be6c61f5":"unsetIdentity(address,address)","be6c87ad":"item(address,address,uint256,bool,bytes)","be6cef0a":"msgExaminer()","be6d055a":"proxy(address,bytes)","be6d91e6":"getBalanceOfSender()","be6fc181":"getFeeParams()","be71021f":"_crownFreeze(uint256)","be7118a7":"Dilution(address,uint256)","be71248a":"payWinner()","be737f72":"toSmallestShareUnit(uint256)","be7385e3":"getPlayerSpaceships(address)","be73983a":"reservePR()","be73d879":"joinBytes(bytes,bytes)","be74264d":"getFeePercent()","be74381f":"calculatePercents(address)","be743ccb":"MCCPP()","be754ba4":"buy20Price()","be760488":"assign(address,uint256)","be782f58":"setBreedTimeout(uint32)","be78632e":"nstDeposit()","be788e70":"getWithdrawableBalance()","be78bb7a":"transferCallGas()","be78e656":"buyXaddr()","be79ca77":"preSaleBonus3Amount()","be7a1540":"setlvlNfee(uint256)","be7a3164":"getNextAuditRequest()","be7aa7be":"SportStarToken()","be7b4858":"isOpenDistributionClosed()","be7c06ba":"iniOwner()","be7c29c1":"getNewDAOAddress(uint256)","be7ccd7e":"setupMiniGame(uint256,uint256)","be7cddf8":"TwoD()","be7e2848":"SkillChainContributions()","be7edebe":"setURIBase(string)","be7f5d23":"addressesReserving(uint256)","be7fdab1":"returnMoney(address)","be80073a":"SentTo(address,address)","be802f05":"getIcoTokensSold()","be80dcfd":"floatEconony()","be81d5bf":"CROWD_WEEK3_PERIOD()","be82f56b":"drainToken(address,address)","be82fffe":"allPolls()","be8360c5":"_maint_EndPromo()","be83a6b4":"ShitCloneslordReq()","be83b3c6":"LogFinishICO(address,address,address,address)","be83ff83":"vipRate()","be854def":"robPantryT(address,uint256)","be85bf3b":"PaymentWithdrawn(uint256,address,uint256)","be85e4ef":"initEngineer()","be86d5a7":"makerTransferEther(address,uint256)","be86d996":"SINGLE_SALE_MULTIPLIER()","be87662b":"inviteProfit(address)","be87bcfc":"getReport(uint256,uint256)","be87c1ab":"returnBalance(address[2],uint256[7],uint8,bytes32[2])","be882d91":"setQuestionFee(address,uint256)","be888bd7":"devteamReserve()","be89900b":"PIOE()","be8a4737":"withdrawalT4T()","be8a550d":"ICO(address,address)","be8acd3f":"ordersLength()","be8b4f45":"HussyToken()","be8bd3df":"IlumXToken()","be8c1bcc":"batchDrop(address[],uint256[])","be8cd7b8":"participatePresaleNow()","be8db3cf":"deadlineBlockNumber()","be8dd49a":"getTokenUserCounter()","be8ecef3":"requestAddOwner(address,string)","be8eef8e":"hasOpened()","be8f316a":"testmsg()","be90be7f":"clearPoolsDone()","be9117cc":"curryChickenToken()","be912a0a":"getAyantDroitEconomique_Compte_7()","be913b6f":"ETH_FUND(address)","be916531":"test_OverSixtyPercent()","be91de53":"frozenBalanceOf(address)","be91ebe5":"tgrSettingsChangeRequest(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","be92ccfd":"setDisableBet(uint256)","be92f334":"astrSold()","be9413a7":"_cancelRole(address,address)","be95e01a":"payout(uint256,address)","be96031e":"playerinfo(address)","be96bb92":"_isFullOrNull(uint256,uint256)","be96faf7":"AWYManKeepChain()","be975f57":"CreateSTR(address,uint256)","be981ff4":"transferOwnershipForVanityURL(address)","be986420":"quarters()","be987c11":"PriceDecrease(string,uint256,address)","be988dbc":"BroCoin()","be999705":"addFunds(uint256)","be99a797":"setNewRegister(int256,string,string,uint256)","be99a980":"setAddress(bytes32,address,bool)","be99c50f":"purchaseInternal(uint256,address)","be99ed6f":"getCompte_41()","be9a6555":"start()","be9a9a28":"getRequestStatus(uint256,uint256)","be9aa8ac":"setSaleContracts(address,address,address)","be9b076d":"Initialized(uint256)","be9b3282":"cookUpFee()","be9b3e8a":"reclaimEth(uint256)","be9ba97f":"maxContributionPerAddress()","be9c1add":"heldBalanceOf(address)","be9d89c5":"createTokenToMarket()","be9ddfed":"getSanTimeLastMove(uint256)","be9e1080":"_escrowPaymentEarning(address,bytes32,uint256,uint256,address,address,bool)","be9e3774":"deathData_f18()","be9e4697":"getDiscountTrancheDiscount(uint8)","be9f2dc0":"hourPotHighscore()","be9f7a20":"setInsertCar(bytes32,uint256,uint256,uint256,uint16,uint8,uint8,uint8,uint8,uint8)","be9fa8dc":"Ethex(address,address,uint256,uint256,address,uint256)","bea046a1":"cashOutShip(uint32)","bea05440":"CurrentStatus(uint8)","bea10370":"hasRecentPrice(address)","bea124a6":"query(bytes,bytes,int256)","bea1dcf8":"taxCollector()","bea24735":"create_a_new_market(address,uint256,uint256,uint256)","bea28a30":"undoTransferOwner()","bea31228":"ObirumIssued()","bea3c8b3":"PardusNetwork()","bea40bad":"composeJingle(address,uint32[5],uint32[5],string,string,uint8[20])","bea412fa":"RedBUX()","bea433a9":"TriumHolding()","bea4ae88":"saleDue()","bea4c4ee":"setIBalance4(uint256,uint256,uint256)","bea50ae3":"setConfirmationPeriod(uint256)","bea51ec2":"SunnyX()","bea51f81":"addToKYCList(address)","bea5f9cd":"newPokemon(uint256,uint256,uint256)","bea677dd":"MCS()","bea69bb9":"Bal()","bea70578":"getPOOL_edit_16()","bea72c0a":"dsAdd(uint256,uint256)","bea76c3c":"disputeBlockNos(uint256)","bea7c13a":"gasPriceForCompensationAtHomeSide()","bea8bd27":"updateVettingTime(uint256)","bea948c8":"GetGift()","beaa4765":"setComplete(bool)","beab0638":"TokenAllocate(address,uint256)","beab3537":"isClaimed(bytes32,string)","beab9848":"SelfllerySaleFoundation(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint8)","beabacc8":"transfer(address,address,uint256)","beabb2c2":"proxyEnableRefunds()","beabdb7b":"isPermitted(bytes32)","beac4bc3":"pauseUET()","beacf74f":"test_insert_findWithHintPrevDecreased()","bead0513":"leaveCommunity(address)","bead21a6":"lockAtTime()","bead45cf":"deposit_amount()","beadd203":"confirmWarranty(string,string,string)","beadf957":"cancelOperation(bytes32)","beae207f":"startAirdrop(uint256)","beaf56a6":"changeInsurer(address)","beafa2dc":"sacToken(uint256,string,string)","beb08ab9":"projectWallet()","beb0a416":"website()","beb1274d":"medianize(uint256[])","beb2b55d":"balanceHaben(address)","beb2bad6":"SHITP()","beb318a0":"updateSelfDropStageState(string,bool)","beb38b43":"set(bytes12,address)","beb3a38f":"capDay1()","beb40d58":"queryShare(address)","beb5f658":"compare(address,address)","beb6422f":"setClue1(string)","beb7de13":"updateCaps(uint256,uint256,uint256,uint256)","beb7fd4e":"_setMany(address,uint256,uint256[],uint256[],bool)","beb92f55":"setCaller(address)","beb9571c":"User_3()","beb96be5":"releaseFor(address,uint256)","beb9716d":"canMint()","beb9c90d":"wavesGW()","beb9d27e":"prepopulate(address)","beb9df86":"fwdToENS(bytes)","beba0b11":"ScallopCrowdsale(uint256,uint256,address,address)","beba285d":"privatePlacementAllocatingToken()","bebaa421":"setTrustAddress(address)","bebb7756":"RecievedDonation(address,uint256,string)","bebb7e60":"kscBurnFrom(address,uint256,string)","bebc3bfb":"requestWithdrawal(address,uint256,string)","bebc9d93":"buyCopyright(uint256,string,string)","bebcc045":"description(bytes32)","bebd284e":"registerCoinData2(address,uint256,address)","bebda5b9":"WhitelistUpdated(uint256,string,address)","bebdd5ca":"GenericCrowdsale(address,uint256,uint256,uint256)","bebe3c88":"advisorsPeriodLength()","bebe4f6d":"Standard_5()","bebeb73f":"createRoom(uint256,uint256,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bebf10d5":"WorkflowState()","bebf8498":"addCardToRegistry(address,bytes32,uint256)","bebfe207":"publishMessage(string)","bec0d799":"removeBook(uint256)","bec10cde":"increaseStake(uint256,uint256)","bec13af1":"doBuyerCancel(bytes16,address,address,uint256,uint16,uint128)","bec17f69":"isPreIco()","bec24a0d":"payJackpot1()","bec272da":"IotaGoldToken(address)","bec3150e":"EthereumBrilliant()","bec3e6f3":"overStage(uint8)","bec3fa17":"transferTokens(address,uint256)","bec507ce":"switchfun()","bec5e7b2":"playerDataRecord(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","bec60bd2":"change_token_price(uint256)","bec6bc67":"adoptionRequests(bytes5)","bec6eb15":"buyGladiatorChest(uint256)","bec77cb1":"getOwnerCards(address)","bec7abfd":"getBounsEarningsInRound(address,uint256)","bec809ec":"tomoConvertRate()","bec81091":"executeEtherDeltaBuy(uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,bytes32,uint256)","bec823c6":"BitcoinGreen()","beca159b":"registerUser(address,string,uint256,uint256,uint256)","beca40df":"PERC_TOKENS_TO_DEV()","beca4a8e":"TeleGrams()","beca7440":"right52(uint256)","becb1f35":"isForking()","becb44da":"token_sale_start_block()","beccdb77":"lastFeesCollected()","beccdd91":"updateSecPerBlock(uint256)","becd0580":"payEtherToWinner(uint256,address)","becd283f":"getPurchaseCount()","becd7027":"withdrawPurchasedTokens()","becda0ea":"tune(uint256)","bece1b22":"GameData(address,bytes32[],bytes32[],int256[])","bece2ea1":"tokenPriceIncremental()","bececd4e":"updateVerificationStatus(address,bool)","becee565":"GodeCoin(address,address)","becf0426":"registerAffiliate()","becf3add":"bonusPercent()","becf917f":"DistribFundsReceiverAddress()","becf9ce1":"removeFromAccountList(address)","becfbf69":"peekLastNonce()","bed03fdb":"winnerSelect(uint256)","bed09038":"updateMember(address,address,uint256)","bed0a8e5":"testRegisterSwarmEth()","bed0d1b9":"validTransfer(address,uint256)","bed18966":"getCompletedFlag(uint16,uint16)","bed1a924":"totalICOSupply()","bed1b8b9":"convertToInt(string)","bed1cfcd":"addToOwnership(address)","bed230d0":"burningMansCount()","bed25542":"onTokenReceived(address,uint256,bytes)","bed289c9":"CPolloToken()","bed315f8":"setRate(uint16)","bed33cae":"getCancelableAt(uint256)","bed34bba":"compareStrings(string,string)","bed36fee":"test_insert_null()","bed411a0":"CheckPrize(address)","bed43ffa":"CoinCrowdToken()","bed47ed8":"sId()","bed50ef8":"emitFeesWithdrawn(address,uint256)","bed531fd":"playersAmounts(uint256)","bed54a24":"ert()","bed6701f":"lastweek_winner2()","bed7437f":"setHydroTokenAddress(address)","bed866f6":"donations(bytes32)","bed9404f":"calculateAccountLiquidity(address)","bed9588b":"getUint256Max()","bed99850":"burnRate()","bed99dec":"replaceSecurityDepositRegistry(address)","bed9d712":"chargeJNT(address,address,uint256)","bed9d861":"withdrawStake()","beda363b":"dynamicReverse(uint256[])","beda86b9":"removeContributors(uint256[])","bedaa624":"setBZRxToken(address)","bedb86fb":"setPause(bool)","bedbb1a5":"saucePoolTotal()","bedc17ea":"testFailSetName()","bedc7796":"ownerCountOfCard(address,address)","bedca054":"Crowdsale(address,address,uint256)","bedcb4fc":"EthlanceContract(address)","bedcf003":"ownerBalance()","bedd12a5":"depository()","bedda13f":"setData_1(string)","bedddbc4":"darkcoin()","beddf557":"NOLLYCOIN(address)","bede2cac":"joinedCrowdsales(uint256)","bede4bd8":"lockupOf(uint256)","bedecc06":"seatsCount()","bedefffe":"getOwnerName(address)","bedf0f4a":"Stop()","bedf8e75":"Netyul(uint256,string,string)","bee03488":"getAllSSP()","bee066a8":"blocksUntilWin()","bee11672":"allowBundlingMultitoken(uint256)","bee1351e":"_getJYPCBonus()","bee14b3d":"getDevBalance()","bee16cae":"getCodeToken(uint256)","bee200cb":"underLimit(address,uint256)","bee2135e":"prefixedHash(string)","bee23c42":"contain(address[],address)","bee28042":"LVX()","bee2e134":"ethCollected()","bee36f37":"disableMiniSwapLock()","bee40aa4":"setCallType(uint256,uint256)","bee47606":"originalPricesBySpinner(uint256)","bee4bbeb":"unsetIsBuyByAtom(uint256)","bee4cc6b":"getBAB(bytes32,address)","bee588e9":"registerCert(bytes32,bytes,uint256)","bee5cdca":"getProjectById(uint256)","bee5ea6d":"PurgeCoin()","bee604ea":"addGame(address,string,uint256)","bee6348a":"presaleOpen()","bee712da":"buyZone(uint256)","bee96d9f":"updateGoldReferrer(address)","bee98dff":"get(string,int256)","beea7bfb":"newSubdomain(string,string,string,address,address)","beea887c":"totalVCCoin()","beeae9a6":"Ather(uint256,string,string)","beeb0578":"processFundingFailedFinished()","beeb0a82":"SeaCoin()","beeb1b5d":"amountRaisedIsc()","beeb6d87":"withdrawCoin(bytes4,bytes32,uint256)","beebeff7":"tokenForAdvisor()","beec1caa":"issueCertificate(string,string,string)","beee5852":"opponentAmount()","beee9a34":"TIER4()","bef17ed0":"totalTeamContributorIds()","bef19a8b":"narcosByDistrict(uint8)","bef23131":"_createBurnLot(address,uint256)","bef28736":"UpgradedController(address)","bef2e0d8":"Variant()","bef35ccb":"requestClose(uint64)","bef39963":"releasedTokens()","bef3a083":"deadLine()","bef44f18":"transferChild(uint256,address,address,uint256)","bef4876b":"finished()","bef4f95d":"alarms(uint256)","bef5223f":"withdrawTokenToFounder()","bef55ef3":"readData()","bef566ef":"requestForMigration(address)","bef5bb45":"checkHash(address,string)","bef72fa2":"controllerLookupName()","bef7a2f0":"Fee()","bef7c258":"tierStartTime(uint256)","bef80387":"KYCCrowdsale(address)","bef8f7a5":"userAddressAdded(address)","bef90b94":"GetShipsByOwner(address)","bef973e4":"getUnclaimedFunds()","bef97c87":"transfersEnabled()","bef9e4ce":"getPreviousProfit(uint256)","befa1e2f":"totalBets()","befa7d5a":"addressFundDevelopers()","befaed75":"Sell_Offer(uint256,uint256,uint256)","befb6e56":"calCandidate(address)","befbae04":"completeIcoPart2()","befc3e2b":"getInvested()","befc5c32":"getOwnersItemList(address)","befcc34d":"updateSignedDealsCount(address,uint256)","befda2ff":"postIcoPhaseCountdown()","befe0e79":"infinity()","befe6299":"buySPIKE()","befed472":"SKToken(uint256,string,string)","beff6dbf":"getInsurancesCount(bytes32)","beff778e":"CoinBazarCap()","beff90dc":"isVersionContractOrLogic()","beffc416":"set_address2(address,address)","befff6af":"setUseDELEGATECALL(bool)","bf02dbcf":"randNums()","bf03e092":"join_address_pay(uint256,address)","bf03ef7d":"setDailyTokenLimit(uint256)","bf04820b":"totalLosses()","bf050334":"resolveDisputeBuyer(string,address)","bf052a8a":"countConfirmations(uint256)","bf059dc2":"_nonce1()","bf05cbe6":"hasFourStepWithdraw()","bf05d653":"endVesting(address)","bf06444b":"BrokenContract()","bf07aae7":"CQT(uint256,string,uint8,string)","bf082e38":"GICT()","bf084408":"submitProof(bytes32)","bf0872ef":"totalDiscount(uint256,uint256,string)","bf08778c":"seeAllNumbers()","bf09466f":"addEntryIn4WeekPeriods(address,uint256,bool,uint256)","bf0a07bd":"getHardCap()","bf0a53f5":"Notarize(bytes32)","bf0aaaf5":"OWN_ChangeState_locked(bool)","bf0b0c52":"PaisaToken()","bf0b47ce":"getWinLoseAmountByBettingOwnerInGamblingParty(uint256,address)","bf0b88aa":"CanYaDao()","bf0bb225":"recoverAddressFromSignature(bytes32,uint256,address,address,uint256,address,address,uint256,bytes32,bytes32,bytes)","bf0c4343":"dividends_by_type(address,bool)","bf0ce059":"isRootAuthority(address)","bf0d44d5":"testControlCreateWithParentsForeignNotInUse()","bf0d4f03":"EventLevelUp(uint32,uint32,uint32)","bf0d51be":"COINLAW()","bf0dc1c0":"IICToken(uint256,string,string)","bf0df0c1":"Start3()","bf0e4900":"randomWithNonce(uint256)","bf0e63d7":"FastGrowthToken()","bf0e9d61":"getProof(string,string)","bf0f5495":"volunteerWrite()","bf0f88ae":"Google()","bf101b32":"isTransferAuthorized(address,address)","bf1031d9":"proposeTemplate(address,address)","bf10bde1":"calculatePrize(address,uint256,uint256)","bf1152db":"preTransfer(address,address,uint256)","bf11f412":"buyCreditsAndSpendAndRecover(string,uint256,uint8,address,uint256,address)","bf120ae5":"freeze(address,bool)","bf12165e":"fillUpSlot(uint256,uint256)","bf125c49":"balanceIsZero(address,string)","bf12bf4f":"transformContract()","bf13633c":"setvalues(string,string,string,string,string,string)","bf137795":"canSpawnAs(uint32,int256,address)","bf1482fa":"getDonators()","bf14c119":"fund(bytes32)","bf14dcbf":"collectStakingBonusTokens()","bf152765":"userBalance()","bf15a645":"add_numbers(uint256)","bf15d827":"issueTDETokens(address,uint256)","bf15e42a":"CoinClaim(string,string,uint8)","bf15ea76":"transferrableTime()","bf16e9e8":"PccToken()","bf16ec99":"_computeCut(uint128)","bf176c34":"profitAddr()","bf1792b3":"toHex(uint256)","bf187478":"shift_left(uint64,uint256)","bf18dfbe":"PhantomToken()","bf190c8e":"GACToken()","bf1a2e52":"NucleusVisionTokensMinted(address,uint256)","bf1b31c2":"ThirdPartyPlatformAddr()","bf1b5f19":"withdrawRequest(int256,int256)","bf1bb055":"getCCH_edit_14()","bf1c30f5":"applicationNameTaken(string)","bf1c8016":"closedSaleWallet()","bf1cd416":"GrowthPool_Released()","bf1d4c66":"lastPurchaseTimestamp()","bf1dfb8a":"totalBattles()","bf1e799b":"getTimelock(address)","bf1e8497":"preCrowdMinContribution()","bf1fe420":"setGasPrice(uint256)","bf205ebc":"luckyNumber()","bf208e00":"setMinAcceptedAmountInPresale(uint256)","bf2095a4":"sellManually(address,uint256)","bf212637":"getMatronId(uint256)","bf21e45d":"changeCrowdSaleDates(uint8,uint256)","bf22c457":"getJob(uint256)","bf22d670":"boolCallWithArray(bool[4])","bf22f63d":"PasswordChallenge(bytes20,bytes32)","bf23b411":"eosPRIVATE(uint256,uint256)","bf24a794":"getMostVotedOptions()","bf24aad0":"set_maxDETsPerReturnLessThan(uint256)","bf24de3d":"transferTo(address[])","bf251bc6":"foundersPercentOfTotal()","bf251e7f":"TOTAL_CROWDSALE_FUND()","bf254915":"set_Gas(uint256)","bf255974":"GoldRegistry(address)","bf25bf2e":"ethToTokenRest(uint256,uint256)","bf25c597":"VernamToken(uint256)","bf260037":"addressFutureInvest()","bf2699e7":"initValidator(address,address,address)","bf26bf58":"MartinKoTokenHolder()","bf277962":"beneficiary(bytes32,int256)","bf27f585":"totalFundsReceived()","bf27fa7c":"OCoin()","bf2805e3":"getVestingAllocation(address,uint256)","bf2860a4":"allocateProofTokens()","bf28d7ee":"_setOutcome(int256)","bf29a854":"aboutFactoryWorkers(uint256)","bf29b90a":"changeAssociation(address)","bf2b7524":"updatePoolAddressCapTier2(uint256)","bf2c1cc8":"setDailyDepositLimit(uint256)","bf2c3dad":"TransferSellAgentSiteReg(address,uint256)","bf2c7cbe":"rateT4T()","bf2d9e0b":"totalRevenue()","bf2e694f":"getPreviousRequest(address,address)","bf2e727b":"BONUS_LEVEL_1()","bf303d14":"convertCountryIndexToBytes(uint256[])","bf30d943":"changefirst24Percent(uint256)","bf31196f":"offerPunkForSaleToAddress(uint256,uint256,address)","bf314640":"newResolution(string,string)","bf31d573":"send_to_darshil()","bf31fc58":"VestingMasterContract(address,bool)","bf326254":"unlockedCustomer(address)","bf32a4b6":"withdrawOwner2(uint256)","bf32bf97":"FailGuyTax()","bf33589b":"createImageTest()","bf33be97":"balanceOfOrder()","bf34040d":"_depositEthereum(uint256)","bf347404":"engravedToken()","bf34ea7d":"makeBatchPayment(address[],uint256[])","bf354389":"Eplay()","bf35588b":"setDepositRate(uint256)","bf35af36":"vestingOwing()","bf35d5de":"FighterCreated(address,uint256,uint256)","bf35d96b":"Lock(uint256,address,address,uint256,uint256)","bf363b18":"transferFee(address,uint256)","bf368399":"leaderboard(uint256)","bf36c5b0":"offerPieceForSale(uint256)","bf36dd16":"icoStartTimestamp()","bf3724af":"f2(uint256)","bf375fb5":"signFork(uint256,bytes32)","bf37689c":"showArrayLength()","bf37b8f1":"devOwed()","bf381f93":"changeVestingAddress(address,address)","bf385c00":"hasSufficientPaymentInternal(address,uint256)","bf390355":"initCasino()","bf391545":"getBAUU(bytes32,address,uint256)","bf395d3d":"getShipProduct(uint32)","bf3986ba":"TrustlessTransactions_TransactionHeight()","bf39ba48":"PRIVATESALE_SUPPLY()","bf3b1101":"transferWalletOwnership(address)","bf3b397b":"tokensToEthereum_(uint256)","bf3b9e38":"a(uint256,uint256,uint256)","bf3bcc41":"isMod()","bf3c1120":"setBytesValue(string,bytes)","bf3c685f":"TOTAL_VALUE()","bf3d6141":"setParams(uint256[],uint8[],uint256[],uint256[])","bf3d9995":"officialWebsite()","bf3da865":"scannedGoldCaps()","bf3e394e":"withdrawInvestment()","bf3e4a79":"CoreTeamAndFoundersWallet()","bf3e67eb":"Sk8coin()","bf3eea48":"privateFundEnabled()","bf3f493c":"AdminAdded(address,address)","bf40b904":"getIssuedBlock(bytes32)","bf40fac1":"getAddress(string)","bf417b9f":"MINING_SUPPLY()","bf419975":"MBLToken()","bf41e16f":"TOTAL_SHARE()","bf428c17":"addTrustedContractAddress(address)","bf4386a0":"maxMembers()","bf439e80":"mintForEarlyInvestors(address[],uint256[])","bf43e91c":"withdrawAffVault(uint256)","bf43ed4d":"dateInit()","bf43fffb":"getFirstEncounterIdFromDay(uint256)","bf44aa70":"setSellCommission(uint256)","bf44eb03":"liquidityReserveWallet()","bf45db19":"ArtGallery()","bf463341":"GetInitData()","bf4637e5":"jackpotPercent()","bf464090":"getManagerCut(uint256,uint256)","bf466c06":"getIntValueByKey(string,string)","bf46ad1d":"approveSponsorableJob(address,uint256,address,address[])","bf46d3df":"canSwap(uint256,address)","bf474766":"joinGame(bytes32)","bf485e95":"getElementLocation(address)","bf487801":"getContractBalanceOf()","bf48d8b5":"setCurrenseeFoundationAddress(address)","bf49649b":"Galatasaray()","bf49d120":"addReview(string,uint256,address)","bf4a185b":"ClientOrderEvent(address,uint8,uint128)","bf4a5485":"extLockBot(uint256,uint16)","bf4a63f8":"withdrawSOC(uint256)","bf4a79e6":"TimeChain()","bf4aaf86":"DefaultActionDelayed()","bf4aeff2":"payoutPeriodEnd()","bf4b72e3":"metaTransferHash(address,uint256,uint256,uint256)","bf4c06a1":"changeLogOwner(address)","bf4d0abe":"NatoExchangeToken()","bf4d5af4":"failures(uint256)","bf4d89b5":"parseInt(string,uint256)","bf4e9615":"calcPriceFromFactor(uint256)","bf4f7cc0":"onlyStores()","bf503a6e":"crowdSalePercentage()","bf506b47":"registerTXS(uint256,address)","bf5103a1":"AUTH_CANMINT()","bf5124d0":"displayCard(uint256)","bf52439b":"BezantERC20Base(string)","bf530969":"setLabel(string)","bf53253b":"NATIVE_ASSET()","bf5371e3":"sendOnRequest()","bf538b68":"BOXToken()","bf538f6f":"mintingCompleted()","bf539711":"buyTokensPresale(address)","bf53dd15":"HBToken(uint256,string,string,uint256)","bf53e3ba":"harvestQuorumPercent()","bf53fa61":"PRIVATESALE_END_DATE()","bf547894":"transferBatch(address)","bf54bb60":"Bitscor()","bf552230":"_changeAttributes(uint256,uint256)","bf5522da":"bounties(bytes32)","bf55486b":"Tanya()","bf559d11":"startTournament()","bf566599":"changeMyName(string)","bf5671fd":"changeSecOwner(address)","bf568a4c":"endIcoByCap()","bf56ac81":"withdrawAffiliateBalance(address)","bf56cc08":"emergencyClawbackEther(uint256)","bf5772b9":"escape(uint32,uint32)","bf583903":"remainingTokens()","bf58aad8":"privatePreSale()","bf59cdff":"getH3Amount()","bf5a451b":"foreverBlockBattleAddressUpdate()","bf5a4dd3":"unlist(uint256)","bf5a79ee":"_getSchellingRoundDetails(uint256)","bf5abfe3":"SimpleConsent(string,address,address)","bf5b2e5d":"MIND_FOUNDATION_AMOUNT()","bf5b4c0c":"getPendingExploreData(address)","bf5b6016":"addContract(string,address)","bf5b6234":"fillSellOrder(address,address,uint256,uint256,uint256)","bf5bb323":"donationMap()","bf5c7f9b":"emissionProvidersCount()","bf5c844b":"oneweek()","bf5cf791":"AIRDROP_TOKENS_NUMS()","bf5e54d2":"updateTokenImprint(uint256,bytes32,int256)","bf5f0169":"deliverTeamTokens(address)","bf5f2b67":"tradingBalanceOf(address,address)","bf5f4edf":"addMonsterClassExtend(uint32,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8)","bf5f93e7":"twoHightestBidsDifference(string)","bf5fc2ee":"setStartsAt(uint256)","bf604019":"coinTradeStart()","bf606d14":"sendOneEtherToHome()","bf611c78":"OmniDex()","bf61b517":"FEE_SILO()","bf61e4b2":"AsuRaimu()","bf620a45":"lockAccount(address,uint256)","bf6211d9":"StripToken(address)","bf624273":"expiryBlock()","bf6311c2":"_progressAdPrice(uint256)","bf632e67":"stateController()","bf6537a0":"crowdsaleBeneficiary()","bf654aac":"maxFeePercentage()","bf656791":"getMinContrib()","bf65d492":"FileName()","bf65dd32":"_checkAndCallApprove(address,uint256,bytes)","bf664892":"PARSECS_PER_ETHER_BASE()","bf66a5f9":"indSaleDeposit()","bf6713f6":"getGift(uint256)","bf671782":"handleReferrals(address,uint256,uint256)","bf686453":"PAN()","bf6888c8":"VESTED_PERCENT()","bf6896eb":"signAgreement(bytes32)","bf69d707":"punkBids()","bf6a10d7":"validateContributor(address,uint256,uint8,bytes32,bytes32)","bf6a1413":"hasSigned(address)","bf6ad320":"winnerPrice()","bf6ad32b":"getgbyte()","bf6afbaf":"FeePaid(address,address,uint256)","bf6b43a1":"upgradeCrystalMine()","bf6b6536":"SampleContractOther()","bf6c277a":"getTotalAccessorySeries()","bf6c4de9":"newPLCRWithToken(uint256,string,uint8,string)","bf6ca138":"issuedExternallyTokens()","bf6d91be":"addClient(address,uint256,uint256,uint256)","bf6d9abd":"unlockTransfer()","bf6deda4":"createLotto(bytes,bytes,bytes10,bytes10,bytes)","bf6eac2f":"stake(address,address,uint256)","bf6eb070":"MAX_ALLOWED_STAGE_2()","bf6ec777":"takeFee(uint256,address)","bf6edbd9":"mintFrozen(address,uint256)","bf6f7755":"transferBaseOwnership()","bf7035c3":"getSaleContractDepositEtherMin(address)","bf70a985":"PRESALE_ETH_IN_WEI_FUND_MAX()","bf70bd75":"stopPreIco_step2()","bf716708":"TOKEN_SUPPLY_SEED_PRESALE_LIMIT()","bf730997":"modifyGuess(uint256,uint256,uint256)","bf733e29":"oraclize_newRandomDSQuery(uint256,bytes,uint256)","bf735b13":"createSale(bytes32,uint256)","bf737c87":"JackpotWon(address,uint256)","bf7408de":"TAJ()","bf742d56":"canExecuteArbitraryCode()","bf748655":"isPaymentRegistered(bytes32)","bf748e47":"get_pre_kyc_iconiq_bonus_numerator(address)","bf7540d2":"getMoneyCount()","bf754558":"conversionsEnabled()","bf75553a":"sacarWEA()","bf75fdb5":"CreateShortAlias(bytes32)","bf77aa1f":"updateListing(uint256,bytes32,uint256)","bf77afdb":"TokensReserved(uint256)","bf7929a6":"refundeadline()","bf7abee6":"SetAuth(address)","bf7b69ee":"payDebt(address)","bf7ba12a":"LupeShares(address,address)","bf7c734e":"setMinSell(address,uint256)","bf7c775e":"RESERVED_RESERVE_UNLOCK_AT()","bf7e214f":"authority()","bf7e4026":"pizza_machine(uint256,uint256,uint256)","bf7e7f62":"MaxCouponsPaymentUSD()","bf7ea21c":"addWhitelistMember(address[],uint256[])","bf7f10fe":"isTransferShipment()","bf7f3cfe":"getVotesPerProposal()","bf7f8b89":"EthernetCash()","bf7ff81e":"bitwordsWithdrawlAddress()","bf815059":"updateUnidentifiedSaleLimit(uint256)","bf81765c":"adminAddressForComissions()","bf83735c":"changelp19(address)","bf843aed":"BuckyCoin()","bf8554ff":"fireOnOfferingChanged(uint256,bytes32,uint256[])","bf85cc27":"settleCfd(uint128)","bf85e628":"startVesting(uint256,uint256)","bf86d690":"isShutdown()","bf86e013":"createPromoBot(uint256,address)","bf872aee":"revokeConfirmation(uint256,bytes)","bf8783e0":"callAndGetReturn(address,bytes,uint256)","bf884cf5":"exitThisIcoForHalfOfTokenPrice()","bf8853c6":"getUserInterest(address)","bf8869b5":"GetBal()","bf88a6ff":"reward_contract()","bf88fc09":"revokeOwners(address)","bf892eaa":"removeTrustedContract(address)","bf89662d":"refundable()","bf8981c0":"left36(uint256)","bf8af541":"setLockRatio(uint256,uint256)","bf8b6466":"anOfferWeCantRefuse()","bf8b7ec2":"OpenGift()","bf8ba305":"getCodeStorage(uint256)","bf8bcee4":"setMaxLimit(uint256)","bf8bdac1":"setService(address)","bf8bf85e":"latestReleaseChecksum()","bf8c50ff":"scheduleTransaction()","bf8c6b63":"is_diagonal(int8)","bf8ce97f":"_take0xTrade(address,uint256,address[5][],uint256[6][],bytes)","bf8d5df8":"setTickerSymbol(string)","bf8dde4d":"calculatedReward()","bf8e0ea4":"logGive(address,string)","bf8eae55":"ChangeGasReuired(uint256)","bf8ecf9c":"authProposals()","bf8edd85":"setPriceInEth(uint256,uint256)","bf8f09cb":"cancelOrder(address,uint32)","bf8faa9c":"AMLToken(string,string,uint256,uint256,bool)","bf8fc670":"sendToAggregation(uint256)","bf9005ec":"Test6J()","bf907def":"buyGold(bytes32,string,string,string,string,string)","bf90c4e7":"PYRToEth()","bf913c5e":"getFamedStarByMass(uint256)","bf91cbb5":"mineIsBigger()","bf91ef18":"mergeBoostData(uint256)","bf9222d0":"DNT()","bf93a8be":"changeOwnership(address,address)","bf947852":"blockInvestor(address)","bf94de12":"createPoll(address,bytes32,uint256)","bf955038":"Judgement(uint256,uint256,uint256)","bf962302":"addIntTag(bytes32,int32)","bf96ae63":"signUp()","bf981995":"getCountryInfo(uint256)","bf983772":"BaseExchangeRateChanged(uint256)","bf98976e":"test_curatorDoesVeto()","bf989b6e":"setContracts(address,address,address,address)","bf98a50d":"GasReceipt(address)","bf99669d":"DevPromotionsMarketingSupply()","bf99cce1":"buyTokens(address,uint256,bytes32[])","bf9a5fde":"setConfiguration(uint256[],uint256[])","bf9a6958":"createVoterOnElection(uint256,address,address,string,string,string)","bf9ab00c":"getTeamPerfit(uint256)","bf9b8b38":"CrypviserToken(address)","bf9bbe71":"TRE()","bf9befb1":"totalStakes()","bf9c0d44":"RandomLedgerService()","bf9c3949":"createFaucet()","bf9c5001":"authors(address)","bf9d3d39":"setLineUpEnable(uint256)","bf9e6b0e":"TokenSwap(address,uint256)","bf9e7b75":"DeliveredBTC(address,uint256)","bf9f01f8":"buyMasterNodes(uint256,uint256)","bf9fc4e2":"balanceOfRobots(address)","bfa0b133":"salt()","bfa0fc93":"getVoteResult(uint256)","bfa190f3":"mTransfer(address,address,uint256)","bfa1bd62":"stakeAirdropWhileLocked(address,address,uint256,bytes)","bfa3c1e6":"MySale(uint256,uint256,uint256,uint256,uint256,uint256,address,bytes32,address,uint256)","bfa51df9":"isAirdropped(address)","bfa535c7":"apply(string,uint256)","bfa54b3f":"BLB()","bfa5f1f7":"getLandmark(uint256)","bfa814b5":"func()","bfa87e80":"tellPreviousContract(address)","bfa8ad36":"createProof(bytes32,bytes32)","bfaa1763":"FATA()","bfaad84b":"getLastStarOfAssetId(uint32)","bfab3db9":"withdrawContractBalance()","bfab41c9":"getTargetBlock()","bfab4f8b":"isMonsterAuction()","bfabd754":"increaseFrozen(address,uint256)","bfabe6c4":"ShakaliosToken()","bfac0046":"getPlayerWallet(uint256)","bfad16f4":"new_offer(uint256,uint256)","bfae2f0e":"addrAdmin()","bfae8867":"getLockTimestamp(string)","bfaec04e":"publish(string,bytes32)","bfafa8e6":"auditText(uint8,string)","bfafb91c":"changeMaxCoefPlayerForEmission(uint256)","bfafe92f":"_buyCallToOpen(uint256,uint256,uint256,uint256,address)","bfb01f72":"buyWithCustomerId(string)","bfb04c60":"proposeAcceptanceAsMember(uint256)","bfb05e0b":"declineFightApproval(uint256)","bfb0d82e":"__callback(bytes32,address[])","bfb1fcf5":"dmlwallet()","bfb2fad7":"totalDepositTokenAll()","bfb42682":"addPresaleOrder(address,uint256)","bfb460e9":"receiverSetAmountRequired(uint256)","bfb47e72":"CryptoSurprise()","bfb4d66f":"SudjuKoin()","bfb4ebcf":"Foo()","bfb51ac9":"startGame(uint256,bytes32)","bfb65777":"allContacts(address)","bfb68141":"disableTokensTransfer()","bfb77030":"BRM()","bfb7896d":"OQToken()","bfb790b4":"weeklyRate(uint256)","bfb7c227":"Developeo(uint256,string,string,address,address,address,address,address,bool)","bfb7d9f6":"stringandbytes()","bfb80547":"unfreezeAddress(address)","bfb8a319":"withdrawal(bytes32,address)","bfb8c63e":"confirmDeal(bytes16)","bfb909ce":"applyFeeToAddress(address,address)","bfb9f088":"addInvestorList(address[])","bfba1e8d":"gamePlayed()","bfba5dd6":"equal(address,address,string)","bfba9029":"hashBetMax()","bfbaa54d":"MithrilMace()","bfbad8b9":"preSaleEtherRaised()","bfbb6a23":"winEth(address,uint256)","bfbbd489":"setMonsterAuctionAddress(address)","bfbbfb1d":"getWinNumberBySlot(uint256,uint256)","bfbc37f7":"KOSHER()","bfbc793c":"computeNameFuzzyHash(string)","bfbc944c":"oldTokenReward()","bfbccfae":"currentCoinsCreated18Decimals()","bfbcf293":"setChampEC(address,address)","bfbd5074":"getVillain(uint256)","bfbf95cf":"participateICO(address,uint256)","bfbfa8e4":"kBalance()","bfc0a342":"owner_loadFunds()","bfc0cc5c":"sendEcosysSupplyToken(address,uint256)","bfc0e849":"startNextEra(bytes32,uint256,int256)","bfc1f48c":"isCapFree(address)","bfc2a675":"CreateCredo(address,uint256)","bfc2aa2a":"claimedSupply()","bfc303fa":"updatePublicData(uint256,string)","bfc38592":"cancelItemSale(uint256)","bfc3aef0":"setActiveStar(uint256)","bfc3cd2f":"testFailChargeMoreThanApproved()","bfc3d84b":"CT()","bfc47aa0":"tokensCrowdsale()","bfc4d11c":"subJobSponsorshipsBalance(address,uint256,uint256)","bfc54822":"bet(uint256,uint256,uint256)","bfc5624a":"newBadAPM(bytes32,bytes32,address,bool)","bfc6cdd1":"DukevsKansas()","bfc708a0":"reportMalicious(address)","bfc7952f":"outstandingPayouts()","bfc83af4":"setBountyTokenWallet(address)","bfc84528":"juicyBonus()","bfc8bfce":"executeTransaction(uint256,address,bytes,bytes)","bfc99f5b":"unsafeWriteAddress(uint256,address)","bfca33f7":"Court(address[],uint256[])","bfcabcbf":"changeFeeAmountThreshold(uint256)","bfcae563":"dateSaleEnded()","bfcc4ab2":"change_time_stamp(uint256,uint256)","bfcc8b6d":"ownerOfPlayer(uint256)","bfcdbae9":"preICOStartTime()","bfcdca48":"CastVote(bool)","bfce0b7f":"mainSaleEtherCap()","bfce477f":"forwardTransaction(uint256,bytes)","bfce8cbf":"redeemAdoptedAxies(address,uint256,uint256,uint256)","bfcf04cf":"updateId()","bfcf0baf":"testSliceToString()","bfcf63b0":"claimEther(address,uint256)","bfcf73e7":"blocksToLive()","bfd07c38":"LowJackpotHolder()","bfd0a553":"specWallet()","bfd1084f":"BitNauticWhitelist(uint256)","bfd13217":"ethReceivedPresaleOne()","bfd17831":"RECEIVER_ADDRESS()","bfd201f5":"setTransferFees(uint256,uint256,uint256)","bfd2385e":"allowanceOf(address)","bfd24821":"BonusCrowdsale(uint256,uint256)","bfd2ed01":"bountyPercent()","bfd3c5fa":"refundTransactionAfterExpiry(uint256)","bfd3fa6a":"becomeFairymaster()","bfd431d1":"RefundToBuyers()","bfd45540":"BlocHipo()","bfd4d720":"investors_number(uint256)","bfd4dce9":"WhatIsTheBestFoodInTheWorld()","bfd525b3":"stopTimeLength()","bfd6ef3e":"explore(uint256,uint256,uint256)","bfd74534":"getRequest(address,address)","bfd7534f":"developer_address_for_D(address)","bfd75da4":"TrueUSD()","bfd812ec":"suspend(bool)","bfd8222a":"checkReward(uint256,uint256)","bfd8300d":"setBonusInterval(uint256)","bfd85808":"frozenTokens(address)","bfd8a06e":"getFinalWinningReportingToken()","bfd8fc93":"getOwnersLength(bytes32)","bfd90435":"addDataset(address,address)","bfd94c8c":"transferIsAllowed(address)","bfd9726d":"getMntTokenBalance(address)","bfda3b1a":"setSharedStorage(address)","bfdad9a4":"SignedContractVault(string)","bfdadc19":"change_price(uint256)","bfdb8796":"getPoolNameByID(uint256)","bfdc35f2":"onBalance()","bfdcc9a2":"numBuckets()","bfdcd480":"test_invalidProposalDuration()","bfdcdbf5":"subkey(address,uint256)","bfdd1a20":"getPOOL_edit_17()","bfde4f62":"withdrawAllEthToOwner()","bfdecf8c":"purchaseTokenInPresale()","bfdeddaa":"AllowedContributionCheck(uint256,uint8)","bfdf5e80":"communityPot_()","bfe0c27e":"getCurrencyAddress()","bfe10928":"distributor()","bfe1292a":"distributeLenderBot(address[],uint256,uint256)","bfe36f58":"HashCoinToken()","bfe370d9":"bytesToBytes32(bytes)","bfe38df5":"getTotalBet()","bfe3a664":"createCrowdsale(address,uint256[8])","bfe3c39d":"JYKToken()","bfe3e03a":"midGradeHold()","bfe44c4b":"getUserValue(bytes20,uint256)","bfe484de":"judge(uint256,bool,bytes32)","bfe4ed8e":"Razoom(address)","bfe53e5c":"holdersWithdrowsOf(address)","bfe597fe":"genesisBlockCount()","bfe689cf":"lockedValuesAndTime(address,uint256,uint256,uint256)","bfe6b1ac":"acceptOffer(uint16,uint256)","bfe6c0c7":"viewa1(address)","bfe70251":"_checkCertificate(bytes,uint256,bytes4)","bfe713e3":"truecoin()","bfe7e2eb":"BCBCYCoin()","bfe86bbe":"publicGetElement(uint256,uint256,uint256)","bfe8936c":"getAssetDetailsURI(uint256)","bfe8c107":"betOnDozen(bool,bool,bool)","bfe9b7df":"pubkeys1()","bfe9e7f4":"pack(address,bytes)","bfe9f204":"dividendCycleTime()","bfea267a":"getBalanceToMint(address)","bfea8790":"enableScheduler()","bfead4b9":"maxWithoutWhitelistPerUser()","bfeb049c":"IndexOfCurrentDraw()","bfebb947":"unblacklist(bytes32)","bfec83d6":"RoleAdded(address,string)","bfec8b01":"insertSection(bytes32)","bfee3569":"setTokenControlInfo(address,uint256,uint256,uint256)","bfef9627":"set(bytes4,uint8,uint8)","bff04d6f":"testPostpone()","bff05aef":"adminRefundTokens(address,uint256,uint256)","bff0fbb8":"calculateMeat(uint256)","bff10815":"deleteOffer(uint16)","bff179c4":"setJadeCoinZero(address)","bff18c78":"deployFactory()","bff1f9e1":"totalUsers()","bff2c413":"ChangeFoundersWalletAddress(uint256,address)","bff35618":"setTransferLock(bool)","bff41e36":"WEI_RAISED_CAP()","bff44f0d":"confirmAddressChange(address,address)","bff49180":"updateVendorValid(uint256,bool)","bff5e021":"PumpToken()","bff5fb64":"appNickname()","bff5fccd":"myWishes()","bff65668":"isPresaleHolder(address)","bff7df7c":"refundDeadLine()","bff7e179":"multiPurchase(uint32[],uint8[],uint8[],uint8[],string)","bff8314f":"SetMaxPosXblock(uint256)","bff8a36d":"decreaseReserve(uint256)","bff974e8":"getContentReplies(uint256)","bff99c6c":"tokenWallet()","bff9e842":"getSamplesForOwner(address)","bffa02d5":"sendP3D(address,uint256)","bffa4e41":"getMintAmountApproval(address,address)","bffa55d5":"claimRefund(address)","bffa9258":"assetCount(address)","bffb10de":"add_creature(address,string)","bffbe61c":"node(address)","bffc235a":"mintedList(uint256)","bffcd758":"nasdaqo(uint256,string,string)","bffd952a":"transferMaintainer(address)","bffdf3f1":"Test4()","bffeadd6":"move(uint8,uint256,bytes,uint8,bytes32,bytes32)","bffee609":"setSkills(address,uint256,uint256,uint256)","bfff23f2":"CaptainKitty()","bfff374d":"DepositReturned(uint256,address)","bfffe670":"window1StartTime()","c00007b0":"getReward(address)","c0001786":"ownerBurn(address,uint256)","c0012077":"TeamContract()","c002c4d6":"getTicket()","c003598a":"XEN()","c0036137":"ownerProfitPercent()","c003b082":"getMyPlayerID()","c003f540":"sco(uint256,address,uint256)","c00465ab":"CrowdsaleToken(uint256,uint8,address,bool,address)","c004a877":"shiftSalePurchase()","c0056b7b":"updateAccount(uint8,bytes32,bool,bytes32)","c005c686":"validateCompoundContract(uint256)","c005dc7b":"hon2backup()","c00710fa":"userContractsPred(address,uint256[],uint256[],uint256)","c0075772":"setPromoTokenController(address)","c0086b19":"BCP(uint256,string,uint8,string)","c00941d9":"Dominator()","c009b451":"setEventActive(bool,string)","c00ade41":"receiveTransferOwnership()","c00b060c":"getArrBoolField3()","c00c176c":"GoGO()","c00c2ceb":"isRedeemAllowed()","c00c4e9e":"batch(address[],uint256[])","c00ca383":"getByOwner(address,uint256)","c00d5305":"oraclize_setNetwork()","c00d8f3d":"processLotteryReward()","c00daefe":"etherFund(bytes32,string)","c00e4306":"getCurrentTokenAmountForOneEth()","c00ea6ef":"Polaris()","c0112678":"arcToken()","c0116c3c":"doAirdrop(address[],uint256[])","c011cd1c":"getClixToken()","c012e179":"mintDepositAccount()","c0130adb":"addadjacencies(uint16[],uint16[],uint16[])","c0140fd1":"bid(bytes32,address,uint256)","c014464e":"checkFeePeriodRollover()","c014875f":"mint(bytes32,address,uint256,bytes)","c01569f9":"buyPiece()","c01685d4":"FTKTToken()","c01706dd":"getContentByRank(address,uint256,uint256)","c0171112":"timestamp(uint64)","c018d0e6":"getFeeAmount(int256,int256)","c018fe0d":"sub_sessione(string,uint256)","c01a1c5f":"totalSellPrice(uint256,uint256)","c01a8c84":"confirmTransaction(uint256)","c01ae5d3":"drop(address[],uint256[])","c01b3aa4":"STARTING_SNAKE()","c01bc982":"isRestricted(address)","c01c1ca3":"claimRemaining()","c01ca43f":"getPlayerState(address)","c01d1c60":"getTokenExchangeRate()","c01d8280":"get_balance(address,string)","c01de45c":"storeBet(uint256,uint256,uint256)","c01e38e6":"addPlayer(address,uint256,uint256)","c01e3985":"StupidityToken()","c01e8b6a":"Zigit()","c01f475f":"_setClearingPrice(bytes32,uint256)","c01f56d0":"OfferToDisciple(uint256,uint256)","c01f9e37":"proposalDeadline(uint256)","c0204bab":"EasyOsmiumCrowdsale()","c020df48":"updateGas(uint256)","c022215c":"getTotalDeposit()","c0227bd3":"_toTaxes(uint256)","c022abbe":"GetAuction(uint32)","c022ef43":"getTimeLeftToNextLocalBountyCollect(uint16)","c023a231":"BitSTDView(address)","c02515a9":"maxTokenForHold()","c0263163":"ATT(address)","c026327a":"removeBankToken(uint256)","c02738da":"generateTargetTokens(address,uint256,uint256)","c02898a0":"potatoOwner()","c028c674":"right82(uint256)","c028df06":"offer()","c028e3c9":"cordX(uint256)","c0297bc8":"DreamX()","c02aaea1":"totalTokensForSaleDuringPreICO()","c02b04d8":"rescueLostProperty(uint256,address)","c02b5395":"NAMO()","c02bf40c":"FundsDeposited(address,uint256,uint256,uint256,uint256)","c02c89fe":"PreicoClose()","c02cc957":"firstDigit(string)","c02d0140":"buyCard(uint8,string,string,string)","c02d1e02":"a_document(uint256)","c02e580e":"roundEnd()","c02f081a":"shiftBits(bytes,int256)","c02fd500":"E4Lava()","c0309697":"challengeContract(address)","c030d8b8":"setCardContract(address)","c030f3e2":"increaseSaleLimit(uint256)","c031a180":"getBytes(bytes32)","c031a78b":"maxMedalsBurned()","c0324c77":"setParams(uint256,uint256)","c032846b":"getContractStatus()","c0329a3e":"startAirdropFrom(address,address[],uint256)","c032dc30":"execute(uint256,address)","c0338a0c":"transferTileFromOwner(uint16[],address)","c0343b09":"setDisputeInterface(address)","c035340c":"withdraw_1()","c035e492":"onholdBalances(address)","c0362523":"setUpgradedOwner(address,address,address)","c036c100":"NextGenHype()","c03785c3":"MyRefundVault(address)","c03795ba":"departmentrequest(address,string,bool)","c037ae58":"VESTED_AMOUNT_TOTAL()","c037d9ce":"getElementsFromIndex(uint32,uint32)","c038a38e":"totals()","c038f541":"setProperty(string,string,uint256,int256,string)","c03951f7":"FaceWalletToken()","c0395bb5":"isCurrentOrPastAdmin(address)","c039b88c":"_makeSpecialId(address,address,bytes32)","c039bd87":"withdrawTokenFromPkt(address,uint256)","c039d6db":"PutEther()","c039daf6":"tokenCreationMin()","c03a4018":"getGuessInfo(string)","c03aac7a":"setSellDividendPercentageFee(uint8)","c03b70d5":"getTurnover(address)","c03ba041":"BNC(address)","c03bdbae":"setRdFee(uint256,uint256)","c03c3003":"increment(int256)","c03c72aa":"isBattleDecider()","c03ce1d8":"BondingManager(address)","c03ce796":"crowdSaleStage()","c03cf137":"getMyLocker()","c03d00f3":"a_viewCoinSupplyAndFunding(bool)","c03d1b1d":"verifyCertWithID(bytes32,bytes32,bytes32,address)","c03d848c":"convertEthToCents(uint256)","c03e2cbf":"Whitelisted(address,bool,uint256,uint256)","c03e382f":"calculateShare()","c040188f":"preSaleLockEndTime()","c0406226":"run()","c040e6b8":"stage()","c040ebec":"getUserSize()","c04123fb":"checkProposalCode(uint256,address,uint256,uint256,bytes)","c041652d":"getVendorApplicationStatusTrackCount(string)","c04198f3":"getEndDate(string)","c042575f":"ETHmultiplier()","c0435e29":"setDefaultFriendsFingersRate(uint256)","c043c0d9":"changeMaximumPlayers(uint32)","c043df8c":"verifyWithdrawSignature(address,bytes)","c04484fd":"resetInternal(uint256)","c045732c":"addPreIcoMembers(address[])","c0459899":"approvePreSigned(address,uint256,uint256,uint256,uint8,bytes)","c04605b8":"softEndDate()","c0462ec3":"withdrawAllTokensToExchange(address,address,uint256)","c0463711":"lastUpdate()","c0463810":"PalmToken()","c0465f3a":"dateSisterWins()","c046c691":"setMoveProductToWhom(address,uint256,address)","c046d9b5":"borrow(address,uint256,address,bytes)","c0472889":"currentIDnumber()","c047c1d8":"transactionsStatusUpdate(bool)","c0489af5":"foundersTimelock1()","c048dfb8":"postpone(uint256)","c0496e57":"setNotarisationFee(uint256)","c049813a":"preIcoStagePeriod(uint256)","c04a5414":"developmentWallet()","c04aa9b8":"rpow(uint128,uint64)","c04bb954":"rejectionRatio()","c04c5947":"getGames()","c04c68eb":"changeAllowTransferState()","c04c8e43":"SNSCOIN()","c04ca3f5":"_removeAgent(address)","c04cc86b":"collecttaxes(uint256)","c04d90d0":"ownerByIndex(uint256)","c04de318":"slashAddressLikeUsername(string)","c04ecdb8":"promoTokenController()","c04f01fc":"power(uint256,uint256)","c04fcad8":"INITIAL_TOTAL_SUPPLY()","c0506782":"_createArtwork(string,string,uint32,address)","c050f6dc":"admitUser(address)","c0517c5a":"XferMoneyMarketing()","c051f75f":"setSchemaRegistry(address)","c05283ff":"logQuery(bytes32,address)","c0533b5d":"appVersionList(bytes32,address)","c05374f7":"AirChn()","c05390f6":"PRIZE()","c053dc6b":"EtherBags()","c053ebf5":"setProviderClosed(uint256,uint256)","c0567656":"subtractFee(uint256)","c0576b73":"monsters(uint256)","c057b40d":"SpainvsRussia()","c0584e68":"ContributorsSupply()","c0597a55":"freedWosPoolForThirdStage()","c05a30b9":"_processFunds(uint256,uint256)","c05a8e81":"getPosition(uint8[176],uint256)","c05b7cf6":"setCreationProfit(uint256)","c05b8066":"setCompte_18(string)","c05ce08f":"calculatePoints(uint256,uint256)","c05d1f0e":"PRESALE_JOINTTOKENS()","c05dd5d2":"MatchAborted(uint256)","c05e5776":"giveRightToVote(address,address)","c05f486e":"DEV_SUPPLY()","c060ac53":"bytes20ToString(bytes20)","c0615f09":"CPGPEREGRINE_EXTRACTION_BASE()","c0619c70":"setPrimaryManager(address)","c06265d3":"createContractState(string)","c062dc5f":"releaseAmount()","c062ef86":"_random_empty_location()","c062f578":"updateStage()","c0631b12":"moneyWallet()","c0645011":"getPastRound(uint256)","c06474e0":"removeShare(address,uint256)","c06508dc":"QBTCoin(address)","c0652cf9":"EdelRostenCoin()","c0659108":"beneficiariesLength()","c065ecc2":"queryChildLength()","c065fcf1":"RESERVED_PARTNERS_SIDE()","c066bd1a":"addItem(uint256,uint256,address)","c06702dd":"changeStage()","c0670d2c":"calculateDistributionPeriods()","c0675b78":"addBuyTokensRequest(string,uint256)","c0677fb6":"SetIdentifiedContract(address,address)","c0689e2d":"newCrowdFundingCampaign(address,uint256)","c068eae0":"player_collect_winnings(uint256)","c06a22f4":"dollarsForEther()","c06b0d21":"BondToken(address,address,address)","c06b5281":"buyXnameQR(address,bytes32,uint256)","c06c4474":"get_burned(bytes32)","c06c66ca":"bountyFund()","c06d1272":"startPreIco()","c06d1490":"oppositeAnnouncement(uint256)","c06d7744":"getAllSignersCount()","c06dabf8":"_escrowHostPaymentEarning(address,bytes32,uint256,uint256,address,bool,uint256)","c06f146b":"setNumInvalidMarkets(uint256)","c06f1bc4":"updateVoterTimes(address,uint256)","c06f4c1d":"newCampaign(bytes32,bytes32,bytes32,address,uint256,uint256,uint256,address)","c06f8340":"cancelAuctionByAdmin(uint256)","c06fad06":"items()","c06fff76":"proposePauseChange(bool)","c0702d9c":"_mint()","c07097a6":"coindropsLockEndingAt()","c0715d1d":"assertSafe(bool)","c071f3bf":"deliverPurchasedTokens()","c072422d":"buyTokens(bytes32,uint256,uint8,bytes32,bytes32)","c072497a":"claimPlotMultipleWithData(uint256[],uint256,string,string,string,string)","c072dcf3":"ExampleContract()","c073af55":"GetJackpotMin()","c07401f0":"addToPool()","c0740c16":"numElementsOdd()","c0741c53":"test_assetRegistration()","c0743044":"partAllocations(uint256)","c074313f":"pricePerStake()","c074a27e":"proposeTransaction(address,uint256,bytes,string)","c07653af":"Gavinhereum(uint256,string,string)","c076c847":"NorthPoleAF()","c0774df3":"canForward(address,bytes)","c0777545":"balanceAD()","c077b0f9":"getARSchedule()","c079418b":"setTranchWei(uint256[])","c0797ae1":"stakerIncomeShare(bytes32)","c079c318":"adjustFee(uint256)","c07a1f0c":"changeHouseFeeAddress(address)","c07a32c4":"dateIsLegal(uint256)","c07a5537":"MintableTokenWithMinters()","c07b18ca":"PullPaymentMock()","c07b2586":"SAFCOIN(uint256,string,uint8,string)","c07bcfdc":"updateLimitPerDay(bytes32,uint256)","c07dc59c":"withdrawPot(string)","c07dc890":"selfRegisterDINs(uint256)","c07dd842":"buyFactor()","c07e3391":"setMonethaAddress(address,bool)","c07f47d4":"latestVersion()","c07f773a":"totalTokensAllocated()","c080f08f":"complexReturnType(int256,string,bool,string)","c0819961":"Invest()","c081efc1":"hasSellerBeenAccepted(address)","c083455f":"ownerPutInterest(uint256)","c0835106":"isVotable(bytes32)","c08415b1":"ORDER_PLACE(address,address,bool,uint256,uint256,uint256)","c0845e8a":"catchMonster(address,uint32,string)","c0846957":"EtherDeltaTokenBalance(address)","c0851e09":"getEarlyPurchase(uint256)","c0864877":"tokensForOwner()","c088003d":"getMinThresholdOfVoters(uint256)","c0887991":"getOperation(address)","c088df47":"SECRET_BONUS_FACTOR()","c08a86b1":"endGame(bool,uint256)","c08cc02d":"getProposalCount()","c08d1fe5":"timeLimit()","c08dd1dc":"IOU(string,string,uint8)","c08e05aa":"icoRuleCancel(uint256)","c08eea14":"cloneAccount(uint256)","c0905fef":"getStackholders()","c090b4df":"createRecord(string,string)","c090b86d":"createKingdom(string,address,address,address,uint256,uint256,uint256,uint256,uint256)","c090da1e":"Zhennong(address)","c0910475":"PaymentStatusTimeStamp(address,address)","c0916437":"modifyChoice(uint256)","c091c435":"refund(address[],uint256[])","c091e45a":"redenominate()","c0926d40":"HBOToken()","c0929385":"confirmInit(address,address,string,bytes32,uint256)","c092ecf4":"blocksToVest()","c0934c45":"getNextRules()","c0938c1a":"setMintAgent(int256,address,bool)","c0942dfd":"registerNameXIDFromDapp(address,bytes32,uint256,bool)","c0946d54":"AtomCoin()","c094c73e":"VeritaseumToken()","c094df20":"shift(address,uint256)","c0956fd9":"getRealTokenAmount(uint256)","c0963d97":"getTokensAmount(uint256,address)","c0966693":"RoomNonceAdd(uint8)","c096aa81":"fuint8(uint8)","c097d629":"setPI_edit_30(string)","c0981285":"buyComissionUnits()","c098201f":"updateEtherAndtokenAmount(uint256,uint256)","c0997654":"destIndex(address)","c09a4ef4":"latestEthTxRequest()","c09a898d":"SPTS()","c09b2a2c":"weiMinSale(uint256)","c09bdd06":"_escrow(address,address,uint256)","c09d81be":"calculatePoundsTimesEther(uint256)","c09f32e8":"closeQuestion(uint256)","c09fed25":"transferFromBalance(uint256,address)","c0a06ecb":"infoWithdraw4()","c0a0b5fa":"getKilledArray(uint256)","c0a14da4":"isTeamLockInPeriodOverIfTeamAddress(address,address)","c0a150b3":"RovaZoneBToken()","c0a1a949":"x15()","c0a1b72a":"totalSupplyWithOutBonus()","c0a1e525":"createDaoPOLSKAtokens(address)","c0a2203e":"insert(address,address)","c0a239e3":"valuePerShare()","c0a28014":"setTreeStructure(address,address)","c0a2d9b3":"EssentiaToken()","c0a35d62":"burnReturn(address,uint256)","c0a35e8b":"getTokensMintedAt(uint256)","c0a36345":"getTokenOwnerRewardPercent()","c0a39fb0":"blockTransfer(uint256)","c0a41466":"etherSender(address,uint256)","c0a42d91":"SignatureInvalidity()","c0a5bcbd":"DefaultCents()","c0a7639e":"checkIfAddressIsWhiteListed(address)","c0a7f894":"MAVCash(uint256,string,uint8,string)","c0a843a1":"getCurrentUserRefBonus()","c0a8694d":"NamableAddressList(string,bool)","c0a899f2":"transferAsChild(address,uint256,address,uint256,uint256,bytes)","c0a8fb73":"FlightDelayController()","c0a9066b":"LogValentineRequestCreated(string,string,string,address,address)","c0a9581d":"sendFee(uint256)","c0a963c9":"notifyWinner(address,uint256)","c0a99a83":"oneTokenInUsdWei()","c0aa18e7":"History()","c0aa3b21":"ownerTokens()","c0aa7e2e":"cancelInvoice(bytes32)","c0aace0b":"totalKitties()","c0ab5704":"setVesting(address,uint256,uint256,uint256)","c0ab86bd":"SBSolutions()","c0abf829":"tokenCreationMinMile2()","c0ac3d1c":"PRE_ICO_BONUS_RATE()","c0ac9983":"tokenURIPrefix()","c0ad7427":"saleTokenSupply()","c0adb725":"AuthCancel(address,address)","c0adc465":"getCurrentBonusRate()","c0ae6a3a":"ultimateOutcomes(bytes)","c0aee5ba":"THAW_CYCLE_USER()","c0b14de7":"setLandLimit()","c0b204a6":"TeamWalletAmount()","c0b241d7":"icoRate()","c0b332c1":"moveCharge()","c0b3569d":"setAssetProxy(address)","c0b3870a":"withdrawJackpot()","c0b39e68":"unfinalize()","c0b3aff3":"INCREASE_RATE()","c0b3dab3":"Devilsbest()","c0b4d404":"setGrowingControlStartAt(uint256)","c0b4e657":"HongkongerCoin()","c0b4fa6d":"_reward(address[])","c0b6762c":"SILVER_AMOUNT_XPER()","c0b6f0c2":"NextRoundAndEvents()","c0b6f561":"initiateOwnershipTransfer(address)","c0b75b7d":"setMinContributionAmount(uint256)","c0b7eba4":"game_allocation()","c0b82515":"gzeUsd()","c0b84bfe":"setFee(uint256,uint8)","c0b8a80d":"CVAlejandro()","c0b92612":"changePig(address)","c0b9b36a":"bountyTokensBatch(address[],uint256[],string)","c0b9b8ce":"releaseToAdvisor(address,uint256)","c0b9ecc8":"getNames(address,uint256,uint256)","c0ba6adf":"gemDefenseConversion()","c0bac1a8":"isMigrated(string,string)","c0bb20a6":"setBonusSale(uint256,uint256,uint256)","c0bb6c27":"setTotalPersistLimit(uint256)","c0bb8466":"WithdrawFees()","c0bd3f40":"dumpData(uint256,uint256)","c0bd8351":"getGameId()","c0be3e9a":"removeOffChainAddresses(address[])","c0be4b51":"genWeeklySecondPrizeKey(uint8[4])","c0be7ad3":"freezeAccountDirect(address,bool)","c0c116d5":"getStringValue(uint256)","c0c133a8":"DATE_ICO_END()","c0c19d29":"mock_length()","c0c1b107":"changeOraclizeGasPrice(uint256)","c0c1b18e":"getDepositSize(address)","c0c1cf55":"executeAction(uint256)","c0c1eebc":"addToken(address,bytes32)","c0c2c087":"getOrdersInfo()","c0c3da9c":"totalSupplyLocked1Y()","c0c4440a":"totalAmountOfCrowdsalePurchases()","c0c47e12":"getDeal(bytes16)","c0c4d8a8":"Fundraiser(address,address,uint256,uint256,address,uint256,bytes32,uint256,uint256,uint256,uint256,uint256)","c0c53b8b":"initialize(address,address,address)","c0c602d9":"tokenAssigned()","c0c620d2":"DroneToken(uint256,string,string)","c0c6a430":"BadTronToken(address,address)","c0c6a68a":"setMockedBlockNumber(uint256)","c0c76940":"StopperCoin()","c0c77236":"resetHolder(bool)","c0c77b71":"changeRegistrationStatusForGoldWhiteList(address,bool)","c0c81969":"tokenSupplies(uint256)","c0c83c0d":"getDebtById(uint256)","c0c8821a":"icoRuleUpdate(uint256,uint256,uint256,uint256,uint256)","c0c8b567":"registerCertificateHash(address,bytes32)","c0c8ccb3":"PreHELIX()","c0c91e6d":"getMinPriceSale()","c0c95917":"BrinkzSupply()","c0c98d6f":"setProof(uint256,bytes32)","c0cab256":"ZZWHToken()","c0cad302":"setNetworkName(string)","c0cc365d":"setExpirationTime(uint256)","c0cc6eb1":"rejectPayment(bytes8)","c0ccc863":"NacContract(uint256,uint256,uint256,address,uint256,uint256)","c0cd1ec1":"recordLog(uint256,address,uint256,uint256,uint8,uint8)","c0cd2e32":"chargeWeeklyRate(bytes32,address)","c0cd54c6":"GetGameType(address)","c0cf067b":"deathData_v7()","c0cf22e9":"setSendGiftPrice(uint256)","c0cfa7e5":"startDispute(uint256)","c0d061f4":"execute(address,uint256,bytes32)","c0d0aa69":"daoMultisig()","c0d129d4":"BallotPreferential()","c0d13a6d":"MIN_BUY_ETHER()","c0d26946":"randomNumber(address,uint256)","c0d2834b":"DataSource()","c0d3f378":"specialManagerListMap(uint256)","c0d470a6":"setCCH_edit_23(string)","c0d4fa0c":"emitFeePeriodDurationUpdated(uint256)","c0d6568d":"FEATURE_TRANSFERS()","c0d6ce63":"punksRemainingToAssign()","c0d75442":"TOKEN_SALE()","c0d84ce5":"TransferFrom(address,address,uint256)","c0d8b0b8":"setPetAuras(uint64,uint8,uint8,uint8)","c0d910cd":"getTankOwner(uint256)","c0d9f997":"transperrun()","c0dab516":"adminPercent()","c0db4dd7":"TRANSACTION_MIN_IN_ETH()","c0db8dd8":"allowToLock(address,address)","c0dcf63a":"isLastRaceFinsihed()","c0de3d71":"TransactionCancelledICAP(bytes32,uint256,string,address)","c0df77d0":"getRefName(uint256)","c0e06ca3":"whitelistAddressPresale(address,uint256)","c0e093f1":"AirdropMultiple(address[],uint256)","c0e17c61":"TenStepTestCoin()","c0e18579":"ONETIMESOLD(uint256)","c0e19314":"divideFractional(uint256,uint256,uint256)","c0e1e272":"buyToken(uint32,uint32,uint32,address)","c0e22f31":"frozenStatusOf(address)","c0e31001":"avatar(address,uint256,bytes)","c0e3153c":"balanceSub(address,address,uint256)","c0e317fb":"addToBalance()","c0e33275":"perTokenAmountMax()","c0e37b15":"transferData(address,uint256,bytes)","c0e59e4d":"lastRateUpdateTimeForCurrency(bytes4)","c0e5fbb6":"unlockBalanceOf(address)","c0e71f54":"toKeyValue(string,string)","c0e738ef":"summAdvisors()","c0e789cc":"friendsFingersWallet()","c0e793c2":"transferOwnership(string,address)","c0e79a11":"setAllowed(address)","c0e8ad51":"LydianCoin()","c0e9118e":"killAllXAITActivity()","c0e91320":"finishPVEBatch(uint256[])","c0e91569":"GRCToken()","c0ea09d7":"rest()","c0ea537b":"amountOfTokensPoolD()","c0ea6ff5":"test3_search()","c0eaded2":"makeDeal(uint256,uint256,uint256,uint256,uint256,string,address,string,address,uint256,uint256)","c0eb2325":"scheduleTransaction(address,bytes,uint256)","c0ebc67a":"SimpleStateChannel()","c0ebdba1":"InvestedOtherCrypto(address,uint256,uint256)","c0ec55a5":"buyPokemon(address,uint256)","c0ed969a":"updateBackend(address)","c0edec55":"CroatiavsDenmark()","c0ee0b8a":"tokenFallback(address,uint256,bytes)","c0ee57a5":"giveReserveTo(address,uint256)","c0ee6db8":"_lockToken(address,uint256)","c0efa161":"getDeveloperReservedBalanceLimit()","c0f0c21c":"updateMaxTokenLimit(uint256)","c0f0e925":"getPercent3(address)","c0f11a1b":"addressArrayContains(address[],address)","c0f16fab":"checkAllowedContribution(address,address,uint256,uint8)","c0f17d13":"ChessCash()","c0f3622c":"updateRates(uint256,uint256,uint256)","c0f3ab76":"B2BCoinContract()","c0f40163":"issueFTT(address,uint256)","c0f496ac":"ecosystemAllocation()","c0f4bfa4":"nbSellers()","c0f4d29b":"setLocation(uint256,uint256)","c0f4f41e":"changeRefresherFee(uint256)","c0f57529":"eth_seed_amount()","c0f5a9cb":"deleteThing(bytes32[])","c0f5b5f7":"setSecondRoundPricing(uint256)","c0f5dc97":"totalSupplyUnlocked()","c0f64f43":"attachAsset(uint256)","c0f65734":"SignedDigitalAsset(string)","c0f68859":"getMinimumGracePeriod()","c0f6a3f9":"reserveVaultAddr()","c0f6c0da":"getTokensFromEth(uint256)","c0f6c7b8":"getIdArray(address,uint256,string,string)","c0f70d5a":"IOUSupply()","c0f7c498":"create_planet()","c0f8275e":"detailsOf(uint256)","c0f8940c":"decode()","c0f8de32":"shouldThrowOnAttemptToTransferToNullAddress()","c0f96105":"Enabled()","c0fd43b4":"lastNonce(address)","c0fdba2d":"YCBIToken()","c0fe6c92":"isClientAddedBefore(address,address)","c0feb62d":"fundRaisedDuringPublicSale()","c0feee42":"Error(bytes32)","c0ff3ebc":"ILFManager()","c1009f1b":"testInitialLedgerBalance()","c1013658":"createAsset(uint256,bytes32,uint256)","c1021099":"DBDVToken()","c1039215":"PresaleExtended(uint256)","c10435cc":"lastEruptionTimestamp()","c1061561":"shut_down()","c1072279":"unicornBreeding()","c1075329":"withdrawFunds(address,uint256)","c10796df":"_performTransferToICAPWithReference(bytes32,uint256,string,address)","c107aa6f":"addAssociatedAddress(address,address,address,uint8,bytes32,bytes32,uint256)","c107b9b8":"CTCB()","c107e109":"addFactory(string,address)","c1082c00":"YBananaCoin()","c108adab":"setChangeFee(uint256)","c108d542":"distributionFinished()","c1098e2e":"preSaleFirstCap()","c109e024":"blockdif()","c10a0840":"CryptoChallenge()","c10b30c0":"unlockPurchasedTokensClaim()","c10b9358":"saleEnd()","c10be521":"gapFactor()","c10bef22":"ConditionsAdded(address,uint256)","c10c0bd3":"logMatchdayResults(int16,string)","c10c3463":"addProduct(string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","c10c3546":"setEscrow(address)","c10ce2b0":"calculateDiffPercent(uint256,uint256)","c10d0f11":"didChangeCollateral(bytes32,address,uint256)","c10dd4c6":"getEvents(bytes32[],address)","c10e5fe7":"GemCoin()","c10e7dfe":"bonusInited()","c10e9ba0":"isClientIdentRejectedOf(address)","c10eb14d":"_withdraw()","c10efd2f":"compareResults()","c10f1a75":"proxyFactory()","c10f5075":"KudosPoll(string,string,uint8,uint256,uint256,uint256)","c10fa635":"channelParticipantCount(uint64)","c10fa789":"withdrawalsVotes(address,uint256)","c10fbf0e":"reDraw()","c110afe2":"Percent(uint256,uint256)","c110e6a0":"HealthCoin()","c111368b":"vestingsRemainBalance(address)","c112411e":"_clarifyPVPSchedule()","c112601c":"transferLibOwnership(bytes32,address)","c1127f90":"PresalePool(address,uint256,uint256)","c112a083":"finalizeChangeName()","c112dfa3":"changeDecimals(uint8)","c11301d4":"getSaleContractTargetEtherMax(address)","c113d195":"XECToken(string,string,uint8,uint256)","c11403fc":"maxListingSeconds()","c114301c":"icoPlatformWithdraw(uint256)","c115b06c":"CYFToken()","c11645af":"test_threeInvalidAssertFalse()","c116574c":"__update_oraclize(address)","c1165781":"totalSupplyOnIco()","c11737c7":"getFirstBuyer(address)","c11741a9":"submitReview(uint256,bool)","c117cfe2":"TwoDimensions()","c11808da":"getFloor()","c1184537":"changeContracts(address,address,address,address)","c118a9de":"getDiscountOf(uint256)","c119167b":"numberOfExchInEstateNasBob(address,uint256)","c119d019":"collectPayment(address,uint256)","c11a4b47":"Origin()","c11b2252":"equipContract()","c11bd455":"timeOfLastHalving()","c11bf4e3":"execute(uint256,address[],uint256[],uint8[],bytes32[],bytes32[])","c11bf8d6":"CLXToken(uint256,string,string)","c11c0cc1":"getSecondPoints()","c11d9d9f":"minEtherContrib()","c11dde0d":"setManufacturer(address)","c11e1ff3":"getMe()","c11efcdc":"getRaisedForCurrentStage()","c11f49e3":"ETHERNETSUPPLY()","c11fb13e":"trustedProposals(uint256)","c1204caa":"trade(uint256[11],address[4],uint8[2],bytes32[4])","c12076f1":"holderGroupNumber()","c120d1a4":"outingreserveBalance()","c121be4d":"removeAddressManual(address)","c122759f":"issuerDistributedUnits()","c1232366":"gameCloneFee()","c1238940":"bmy(uint256,string,uint8,string)","c123a658":"boostCloneMarket(uint256)","c1243528":"airdropRecord(address)","c1246d39":"simulatePathwayFromBeneficiary()","c124e2ea":"checkBetDozen(uint8)","c1257bad":"testPassingAProposal()","c1258f69":"txCount(address)","c1263215":"calculateObtainedJOY(uint256)","c1266227":"pow2Bounds(int256)","c12692dc":"tokenRaise(address,uint256)","c12719a7":"EthPriceDependent(address[],uint256,bool)","c1273676":"fundingUnlockTime()","c1273ba0":"likeCelebrity(uint256,uint256)","c127ae41":"getSignatureHash()","c127c247":"addMember(address,string)","c127ee20":"SearchUserPurchase(string,string)","c128c9e7":"GetBuildingData(address,uint256)","c1292cc3":"lastId()","c1294224":"payoff(address)","c12954fa":"restartMinting()","c129827b":"_setSpecialityValue21(uint256)","c12a0fd7":"removeReverseRate(address[])","c12ae5e9":"blocksInFirstCapPeriod()","c12af1ce":"fipsRegister(uint256,bytes)","c12b2513":"assignSubBroker(uint256,address)","c12c202c":"getGrapesSinceLastHarvest(address)","c12c2eb3":"abstractENS()","c12c31d6":"listAllAdmins()","c12d7b01":"Error(uint16)","c12d97de":"DevGiveBlockReward()","c12dec39":"_fetchOrdersForMerchant(address)","c12e760e":"agreeFromDrone()","c12eb191":"updateEarlyParticipantWhitelist(address,uint256)","c12edde6":"EURValue()","c12f48e3":"AssetRegistered(address,string,string,string,uint256)","c12fac40":"oneHundredThousand()","c13026b0":"changePresaleCap(uint256)","c13051d7":"getCellsInfo()","c1309aea":"getOfferor(uint256)","c1310951":"createNewDepositContract(uint256)","c131acdf":"GetBestTokenCount(uint8)","c1321111":"setSaleLength(uint256,uint256,uint256,uint256)","c132bc18":"balanceWosPoolForThirdStage()","c132dd4f":"authorizedCreateTokensToPrivate(address,uint256)","c1331bc3":"setBlacklistSpender(address)","c1333a9c":"setPurchaseRequirements(uint8,address[],uint256[])","c134bc92":"hell()","c13517e1":"createDispute(uint256,bytes)","c135a2d8":"getBackgroundValue(uint256)","c135c040":"gzePerEth()","c1374d5a":"EtherUSDPriceFactor()","c138195c":"icoEtherMinCap()","c1381ea3":"DutchExchangeProxy(address)","c13862ea":"setBoardRating(uint256,uint8)","c13982ee":"checkCap()","c13992b4":"Metadium()","c13a135a":"getWinnerOfEvent(bytes32)","c13ab0fe":"WOLF4()","c13afa91":"object_locations(uint256)","c13b22ef":"setTokenTransferFeeAbs(address,address,uint256)","c13b37c7":"updateIsRevertedEndTimeReached()","c13b3895":"getHype(uint256)","c13b72a8":"registerCDP(uint256)","c13c6813":"_addTimelock(address,uint256)","c13ca374":"SimpleSale()","c13e285d":"maxTrialDrops()","c13f4af7":"claim(address,uint128)","c13fb08b":"breedOnAuction(uint256,bool,uint256,bool,string,string)","c140635b":"audit(bytes32)","c1408cda":"getDataFromAddress(address)","c141e6da":"ERC721ReceiverMock(bytes4,bool)","c141ed74":"calculateCrowdAmount(uint256)","c14248a2":"lrcSent()","c1429c11":"ChainStarToken()","c143a372":"TokenTransferFrom(address,address,uint256)","c143ab2c":"crowdSaleStop()","c143f701":"getRequestFundInfo(uint256)","c1440167":"Voterplayer()","c1441172":"setBlackFlagRequest(uint256,uint256)","c144734c":"getUploadTypes(uint256)","c1448284":"approved(address,uint256)","c144a510":"ADDR_WITHDRAWAL2()","c144a5db":"Bytelending(uint256,string,string)","c144d7dc":"buyMine(uint8)","c14634cf":"KudosTokenSale(address,uint256,address)","c1468587":"mainwallet()","c146eb02":"UNOPEN(string,string,uint256,uint256,bool)","c148002c":"latestUnlockStage()","c148e20e":"FCCToken(string,string,uint256,uint256,bool)","c14958cb":"giveUp(address,address)","c1499199":"_uncreditUser(address,uint256)","c14a2455":"balDailyLotto()","c14a3b8c":"mintTimelocked(address,uint256,uint256)","c14a6046":"payerContract()","c14a932f":"signedTransferFromSig()","c14a9f05":"challenge(address,uint256,uint256)","c14ab7a1":"PredictTheFutureCaller(address,uint8)","c14bafb1":"lastPurchaseTime()","c14bfd29":"hasAlreadyVoted(uint256,address)","c14c1ce3":"requestUpdate(uint256)","c14c5574":"Gold(address,address,int256,address)","c14c7bd7":"performRead1()","c14d2358":"init(address,uint256[],uint256,uint8,uint256,bool)","c14d3abe":"enableSuperUser(address,bool)","c14e50ce":"setValidater(address)","c14e61ba":"overdraftTotal()","c14e6cd0":"changeTransferLock(bool)","c14e7a3f":"setCooldown(uint16,uint32)","c14e9f58":"submitBlockHeader(bytes)","c14edad2":"teamDistribute()","c14f42fd":"mLoadAndReturn(bytes32)","c14fbd64":"satoshiMood()","c15185f5":"getAuditPrice(uint256)","c151ac55":"_createMovie(string,address,uint256)","c151c5ad":"getSignerTable()","c15294a1":"creatGameBet(uint256,bytes32)","c152d3eb":"setKYCTeam(address)","c1531ecc":"changeIssuer(address,bool)","c1551fc8":"QuadCoreChain()","c1554658":"changeDepositorLimit(uint256)","c155836d":"LuCyToken(address,string,uint8,string,string)","c155cfde":"_preAllocateTokens(address,uint256)","c1560a14":"hardCapInUSD()","c1562547":"checkUser()","c156ef6b":"_createPainting(address,uint256,uint256,uint8,uint8,uint256,uint256)","c157b869":"totalUsdValueOfAllTokens()","c157d72c":"itemInfo(address,uint256,bytes)","c1596534":"addReserve(address,uint8,bool)","c1598f6a":"newWage(uint16)","c1599011":"conversionRateOfState(uint256)","c1599bd9":"X()","c15a6791":"oneShotTokenRepartition(uint256)","c15ae376":"_shareToDistribution(uint256,address,uint256,uint256)","c15aec44":"totalGasUtilizing()","c15c09b5":"admin_set_exchange_rate(uint256)","c15d0b10":"getLoanValue(bool)","c15d15da":"_isValidSignatureAndData(address,address,bytes)","c15d7bca":"setEthToTokenConversion(uint256)","c15e47c4":"getFirstBatch(address,address)","c15e61c0":"Authorization()","c15f05fb":"changePrimaryArbitrator(address)","c15f618a":"purchasePokemon(uint256)","c15f68f0":"Retired()","c15f817d":"_import_island(bytes32,address[3],uint256[7],uint256[8])","c15f8779":"get_previous_item_in_state_from_item(bytes32,bytes32)","c1614981":"allocateLocked(address,uint256)","c1615945":"setAffiliateContract(address)","c1615c87":"DEFROST_PERIOD()","c161d506":"CollabCoinToken()","c162ba2f":"walletId()","c162bc03":"clearProposal(address)","c163bba7":"publish(string,string)","c163edf7":"OutcomeEvent(string,uint256)","c163fb0e":"ownedHouses(address)","c1640913":"RETAINED_TOKENS()","c166311f":"freeLotterySeconds()","c166c458":"getUserRequestCount(address)","c166ee38":"sweepAccount()","c1670257":"redeemContractSentTokens(address,uint256)","c1674b74":"assertReadyToClose(uint256)","c167d1cd":"getAvailableSupply()","c1684711":"migrateTokens(address)","c16849c0":"tokenSC()","c1687877":"buyTokens(uint256,uint256,address)","c168e037":"getCustomerPremium(uint256)","c1691fc3":"add_bonus(uint256)","c1694bd4":"TransferDetails(string,uint256,string,uint256,uint256,address[])","c16959b2":"_unpackRaceFinishData(uint256)","c1699a99":"stakePeriod()","c1699bf6":"setPrimaryAccount(address)","c169ec0d":"setBuzzCafe(address)","c16ac06f":"CM()","c16ae3ce":"_receiveFrom(address,uint256)","c16b451f":"_checkedTransfer(address,address,uint256)","c16b9374":"regularEndGame(address,uint32,uint8,uint16,uint256,int256,uint256,address)","c16bca13":"MIN_AUDIT_TIME()","c16c0851":"miningOneSelf()","c16d1377":"IS_CND_CONTRACT_MAGIC_NUMBER()","c16d3344":"setMinimumOfferPrice(uint256)","c16d515a":"_createCenturion(address)","c16e50ef":"validate(bytes)","c16f402c":"getEpisodes()","c16fe907":"getTransfer(uint256)","c1707f66":"stateSetOpen(uint32)","c170fd54":"bid(uint40)","c171747b":"convertEthToMet(uint256)","c1717f80":"BC2Token()","c171cfa6":"getBetValueByGamble(uint8,uint8)","c171fb91":"referrerLevel1Percent()","c172085e":"initialization()","c17281d0":"refundPartial(address,uint256,uint256,uint256)","c172aae5":"getIdentifier(uint256)","c172f9c9":"receiveApproval(address,uint256,address,bytes32)","c1733712":"authorizePayment(address,uint256,uint256)","c1733f68":"getToken(string)","c173508b":"removeConnection(address,address,bytes32)","c1736222":"tokenForSPSold()","c1739b69":"InfraOfOwner(address)","c1747585":"testEvent2()","c1751903":"lockBreak()","c1756a2c":"sendEther(address,uint256)","c1758fee":"vest2mlDevelopers(address,address)","c1766657":"addBonusForMultipleHolders(address[],uint256[])","c176b1d8":"deletePriceIdv(bytes32)","c176d42a":"NavGlobalTourCoin()","c176e639":"payout(address[],uint256[])","c176e73b":"pkt()","c177c20f":"CliToken()","c177e804":"WEETtoken()","c177f22e":"findKingdomCalled(string)","c1784a4e":"safekey(uint256)","c1786ab2":"pre(address,bytes32,bytes32)","c178a2d4":"CreationContract()","c178fc87":"setTokenRate(uint256,string)","c1790561":"_getPetBonus2(uint256)","c179186e":"collectWinnings(uint256,uint256,uint256)","c179520c":"ManageAccount()","c17a099b":"presaleBonusTokensDistributed()","c17a893e":"transferAUTOtoken1(address[])","c17b5a93":"ProfitExchange()","c17b9770":"log2Floor(int256)","c17c0456":"ownerCEO()","c17c3521":"setHourlyRate(uint256)","c17ccc6c":"withdrawUnlockedTokens()","c17d8720":"checkBank(string,address)","c17de343":"isStarOwner(uint256,address)","c17e2aa1":"burnAllTokens()","c17e6817":"sendSafe(address,uint256)","c17e92b6":"unregisterFromBlacklist(address)","c17ed7bd":"purchaseSilver()","c17f23e8":"getRoundID()","c17f8891":"setEtherFeeMin(uint256)","c17ffac6":"unsetRegionForSale(uint256,uint256)","c180e1d0":"GCPToken()","c1811783":"FreezableToken()","c1812b15":"reorganizeOwners()","c1826d78":"Collect()","c1829a14":"testFailTooFewConfirms()","c182f531":"GetFreeEther()","c183660c":"cancelJobContract(uint256,string)","c18378a0":"sellTokensFrom(address,uint256)","c18384ec":"setRestricted(address)","c1838e92":"proposeTokenOwner(address)","c1839258":"LogTokenPurchase(uint256,uint256)","c1840b39":"_generateRandom(bytes32)","c1857bf7":"withdrawFoundation(address,uint256)","c185d772":"emissionStages(uint256)","c185e492":"preSaleThirdPrice()","c186dcbf":"getStaticArraySum()","c18715f8":"prolongationPermitted()","c1873e26":"releaseCoreTeamAccount()","c1889ff2":"payAccTax(uint256)","c188f44b":"addproduct(string,string,uint256,string)","c1891ac6":"multiplePing(address[])","c1899ca7":"request_dividend(address)","c18a40c7":"multiowned(uint256,address[])","c18b4136":"AAC()","c18b5279":"KFHToken()","c18b8db4":"listings(bytes32)","c18b9760":"test_insert_findWithHintPrevDecreased(int256)","c18bca5f":"setCollectionAddress(address,address)","c18ca54c":"testEvent(int256,int256,uint256,uint256,string,string)","c18d767a":"weiMinSalePreIco()","c18e8903":"totalWeiRaisedDuringICO4()","c18e94b4":"Keizer()","c18edde1":"saleopeningTime()","c18f4831":"burnFeeDenominator()","c1908360":"createEntry(string,string)","c190b129":"holderState()","c1912433":"acceptAndPay(bytes32,uint256[],uint256[],int256)","c1918e90":"accountAddressForSponsee()","c191cbd7":"TeamTokensAllocated(uint256)","c191d37d":"Escapable(address,address,address)","c1927292":"TIER1_BONUS()","c1929d8c":"ADVISOR_THREE()","c192ca98":"isCS(address)","c1932833":"maxAirdropParticipants()","c19358bb":"setPropertyLastUpdater(uint16,address)","c193fbf8":"pushArray(bytes32,address)","c19455c8":"signedTransferCheck(address,address,uint256,uint256,uint256,bytes32,address)","c1955e62":"spend(uint256,bytes32)","c195dc41":"getStageEndDate()","c19678d5":"canLotteryBeExecuted()","c196b54f":"bound(uint256,uint256)","c1971240":"dailyGrowthUpdated_date()","c197a7b1":"getLastStoragePayDate()","c197cdee":"preSaleTokenLeft()","c1989276":"MaxItems()","c1991040":"getCurrentVotingDescription()","c19a8095":"deleteUser(address,address)","c19bbf50":"getLockStatus(address,address)","c19c9a21":"CCTHCoin()","c19d7808":"MamaBearToken()","c19d93fb":"state()","c19da6b2":"canBuy(address,address)","c19dccd8":"KantrotechCoin1(string,string,uint256,uint256)","c19dd320":"cancel2(uint256)","c19e33ce":"COIN_SUPPLY_ICO_PHASE_0()","c19e7b00":"WeiCapChanged(uint256)","c1a06de3":"Valens()","c1a12d66":"crowdsaleOpen(bool)","c1a21bf3":"sellerBalances(address,address,uint256,address)","c1a2a8f4":"boards()","c1a2babc":"getMemberSince(address)","c1a38768":"STARTUP()","c1a3bb06":"total_bet_withdrawn()","c1a3bda5":"randomQueryID()","c1a6ec6a":"ADVISORY_TEAM_PORTION()","c1a7db7b":"MtcDailyLimitChange(uint256)","c1a82cdb":"reissueCertWithID(bytes32,bytes,bytes32,uint256,bytes32,bytes,bytes32,uint256,bytes32)","c1a85e16":"test_insert_findWithHintNextUpdateTail()","c1a9953f":"checkRokTeam()","c1aa049d":"getIsPurchased(address)","c1aa104e":"OpenRetailContract(uint16,bytes32,string,string)","c1aa5d98":"getGameIdByAddress(address)","c1aa721d":"lockAfterManuallyMint()","c1aaa717":"_bountySupply()","c1ab1b54":"RebateCoin()","c1abbf6a":"addjoinlist_even(address,uint256)","c1ac7902":"playJackpot()","c1ad5bea":"isdeposit()","c1ad7925":"finalizeFunding(address)","c1adb83e":"NecashTokenBase()","c1ae36d0":"carsOf(address)","c1ae4044":"checkBetColor(uint8)","c1af5785":"enterLottery()","c1afdd48":"belowSevenBets()","c1b0510a":"GlobalBusinessSystem()","c1b0561d":"PDTToken()","c1b056b0":"getNodeLeftChild(bytes)","c1b06513":"registerEvent(bytes32[])","c1b07b1a":"receiverOne()","c1b082b6":"issueOfTokens()","c1b0dc2f":"LogPolyClaimed(address,uint8,uint256,uint256,uint256)","c1b15e44":"_setAllowance(uint256)","c1b16cb0":"ownerAddAsset(string)","c1b2dfc1":"gameGiftMaxAmount()","c1b36489":"QuickUnionPayChain()","c1b3e6ab":"blockedSum()","c1b43a17":"secondHighestBidder()","c1b43af8":"IPchainStandardToken(uint256,string,uint8,string)","c1b466d6":"calculate0xbtcReceived(uint256)","c1b4aa51":"burnContractCoins(uint256)","c1b58f6c":"unlockAllAllocationAddresses()","c1b664de":"setStageCount(uint256)","c1b668a9":"getBoardInfo(address,address)","c1b68a7c":"DebitClientOnce(address)","c1b73010":"removePauser_(address)","c1b74ad8":"propose(uint256,bytes32,address)","c1b7a892":"AsiaCoin()","c1b8847b":"setMaxFeeWithdrawal(uint256)","c1b8b704":"updateGlobalMax(uint256)","c1b90c7b":"_sendTokens(uint256,address)","c1b99811":"transferPrimordialToken(address,uint256)","c1b9f177":"bountyReserve()","c1ba93e1":"dbkDeposit()","c1bb95d0":"TransferConfirmed(address,uint256,uint256)","c1bbcbef":"MICKTOKEN(uint256,string,string)","c1bc2664":"ClearView()","c1bd1e85":"killFeed()","c1bd3685":"proposeSolve(uint256,uint256)","c1bd762b":"wantMyEther()","c1bd8186":"crowdsalepricing(address,uint256)","c1bd8ecb":"initializeCrowdsale(address,uint256)","c1bd9b12":"getShareAddressFromId(uint256)","c1bdff26":"onNewLoan(uint256,address)","c1be4031":"XaurumProxyERC20()","c1beb1e1":"MusereumToken()","c1bf1dcf":"setRegistrar(address,bool)","c1bf22a9":"XAUToken()","c1c02a46":"Atlas()","c1c03094":"EventBattleOver()","c1c0e046":"rescueAccount()","c1c0e9c4":"exec()","c1c1066b":"getCommentsCount()","c1c11c96":"getSender(address,uint256,address,uint256,uint256,uint256)","c1c1d218":"BOND()","c1c28d7d":"calNewTokens(uint256)","c1c379ac":"tokenTwitter()","c1c3eccf":"vestingPeriodInMonths()","c1c43648":"addAction(uint256,uint256,uint8[6],uint8[6],uint16[6],uint8[6],uint256,uint256)","c1c4676e":"updateGameCost(uint256)","c1c5897e":"AOMcoinERC20()","c1c5a3b6":"CaptainSell()","c1c5de4a":"tryDeposit()","c1c64ecf":"mintPriceBuffer()","c1c6c749":"changeWhitelistPrivateStatus(address,bool)","c1c6d4e8":"addLoanProduct(uint32,uint32,uint32,uint256,uint32,bool)","c1c723f4":"validateProposedMonarchName(bytes)","c1c74dde":"_setFunds(address,uint256)","c1c7bc68":"addFreeMineralMulti(address[],uint32[])","c1c8277f":"reclaimOwnership()","c1c8b89d":"Recash(uint256,string,string)","c1cbbca7":"contribute(uint256)","c1cbbe6c":"getRoundAvailableToken(uint256)","c1cbdff3":"moreThanSoftLimit()","c1cc0046":"returnOffer(uint64)","c1cc0775":"calculateFeeDynamic(uint256,uint256)","c1cc6958":"leekStealGo()","c1ccaed3":"pageBuyRecordByAccount(address,uint256,uint256)","c1cd1759":"SpicePayroll(address)","c1cda902":"setTradeable()","c1cdaae8":"generate(address,address,address,uint256,uint256)","c1ce53fc":"reflect(string)","c1ce56eb":"addAccount(address,uint256)","c1ce6647":"minAmountToGetBonus()","c1cfb99a":"get_balance()","c1d038b2":"getSkillIdByIndexAndLevel(uint8,uint8)","c1d11037":"updateAddresses(address,address)","c1d1f5c0":"BirdToken()","c1d1faf3":"createAuction(uint40,uint128,uint128,uint40,address)","c1d22403":"_subFromValueHeld(address,uint256,bool)","c1d25c3d":"insert(int256,int256)","c1d298ab":"emitFeesDonated(address,uint256)","c1d32ad5":"Distribute(address,uint256)","c1d34b89":"transferFromAndCall(address,address,uint256,bytes)","c1d357bc":"getMinAllowedBid(uint256)","c1d4691a":"withdrawalTo()","c1d47a21":"submitPayment(bytes8,uint32)","c1d4bc64":"originalsCount()","c1d4f708":"getMwLength()","c1d55af8":"buy(uint256,address,uint256,bool)","c1d5725f":"buyToken(address,address,uint256)","c1d5e84f":"addNewUser(address)","c1d6036b":"contractExchangeRate(address)","c1d63ce6":"deleteArrayBytes32(bytes32,uint256)","c1d66482":"Postman()","c1d6ab37":"setIsContainerForShareToken(bool)","c1d6cbd8":"getPlayerPoint(uint32)","c1d75bea":"IBM()","c1d9e273":"nextFreeCount()","c1da3923":"ICOstartTime()","c1dbbfb3":"withdrawAllFromRoot()","c1dbd9b2":"authorize(address,uint256)","c1dbf5ef":"changePTSBAddress(address)","c1de0842":"quarterThird()","c1de93df":"Forwarded(address,uint256,bytes)","c1de9ef8":"getPositionHeldToken(bytes32)","c1dfacb2":"getQualifiersPoints(uint160)","c1e0e604":"updateUsdPerMEth(uint256)","c1e10f65":"distributeeBitcoinCashMedium(address[])","c1e1955e":"getaddressfocuscardid2(address,address)","c1e1b327":"adminCollectPastShopFund()","c1e31eab":"SERVER_TIMEOUT()","c1e3bd3e":"getParticipants(uint256)","c1e41f38":"COMPANY_TOKENS()","c1e457c8":"experienceDelay()","c1e472be":"returnNotes(uint256)","c1e4884d":"setSecondStageStartsAt(uint256)","c1e4dfda":"setPriceWei(uint256)","c1e50f3c":"internalAddManager(address)","c1e5202a":"isUserMakerFeeEnabled(address,uint256)","c1e52775":"addDenomination(bytes8,address)","c1e5304a":"CreateNewDraw(uint256,bytes)","c1e59a50":"Example4(string)","c1e6102b":"LunyrToken(address,address,uint256,uint256)","c1e65cb9":"BTRS()","c1e68672":"totalWhitelistedFunding()","c1e68e4b":"developer_string_D(string)","c1e6c506":"TokenPriceInWei(uint256,uint256)","c1e70e63":"startManualPeriod(uint256)","c1e71903":"getResults(uint256,string)","c1e7310a":"signEA(uint32)","c1e74d71":"minPresaleContributionEther()","c1e99a0e":"isInitialInvestor(address)","c1e9c53e":"Lottery(uint8,uint256)","c1ea8b93":"preCrowdsaleTokens()","c1eac693":"ArisaCoin()","c1eb1840":"canBurn()","c1eb3534":"batchMintToPool(uint128[],uint256[],uint128[])","c1eb354a":"setlockall(uint256)","c1eb50a7":"LinaAllocation(address,uint256)","c1eb5ddd":"DEV()","c1eb8c89":"wihtdraw()","c1ec10f4":"RigoBlock()","c1ec4a2a":"RegisterContract()","c1ed41fa":"appliedPresale()","c1ed54a1":"isBetValid(uint256,uint256,bytes)","c1ee22dd":"EMISSION_FOR_SALESTAGE5()","c1ee3375":"autoTransferApproved(uint256,uint256)","c1ef098b":"storeHarvestOperationByRegulator(string,string,string,uint32,uint16,uint16,string)","c1f04f3c":"allWeights()","c1f06e89":"changeYUMOAddress(address)","c1f0dac1":"test_largeDeviationNotPermitted()","c1f0e2c3":"createGameRound(uint256)","c1f10663":"withdrawAccumulatedFees(address)","c1f16bdc":"getWeiBalance(address)","c1f18e38":"isExpired(bytes)","c1f19220":"summFounders1()","c1f1d116":"internalVote(bytes32,address,uint256,uint256)","c1f307c9":"_isTime()","c1f45e80":"sendForPreICO(address,uint256)","c1f52604":"winningPrice()","c1f573ca":"bidInAuction(uint256,uint256,uint256)","c1f62946":"getSecretRevealBlockHeight(bytes32)","c1f64cb0":"supportedRoleList(uint256)","c1f77309":"assignedPayoutAddress()","c1f7c539":"initPricer()","c1f8056b":"createAvatar(address,string,uint256)","c1f979ab":"add_recent(uint256)","c1fa1ed0":"assertEq(bytes32,bytes32,string)","c1fae25b":"receiveAirDrop()","c1fb7c34":"hmin(uint128,uint128)","c1fb9b9e":"developer_How_To(string)","c1fcf863":"getSoftwareExecRecord(uint32)","c1fd2580":"spendable_supply()","c1fd4339":"createMarket(bytes32,uint256,uint256,address)","c1fe5281":"minPurchaseNum()","c1ff808d":"changeBonus(uint256)","c1ffc0a5":"MinimumEthereumInvestmentUpdated(uint256,uint256)","c2006a18":"set_fixedFeeInCWC(uint256)","c201293b":"setCollateralPoolContractAddress(address)","c20155df":"ethRate2()","c201df97":"UnLockAddress(address)","c2021d1b":"maxTeamBonusBps()","c203367a":"EnddatePresale()","c2038560":"setOutcome(bytes,bytes)","c203d77f":"setSaleFinishTime(uint256)","c204505a":"testFailRetractLatestRevisionDoesntHaveAdditionalRevisions()","c204642c":"airdrop(address[],uint256)","c204b288":"InvestorChanged(address,address)","c204f9f1":"_transferFromToICAP(address,bytes32,uint256)","c2052403":"payOut()","c20547b3":"getGameAmount(uint256)","c205afd4":"deferredTotalTokens()","c205e64c":"revokeInsertAgentAuthorization(address)","c20615ed":"ownerWithdrawn()","c20652fe":"setApiAddress(address)","c2083f55":"lacksFunds()","c2091d0e":"getPatron(uint256)","c209fbe9":"change_notice(string)","c20a20d6":"setBlipTokenAddress(address)","c20a6ae9":"EDMToken(address,uint256)","c20c0f3a":"betsForLevel(uint256)","c20c1d9b":"newWithdrawCommission(uint256)","c20e346f":"unFrozenToken(address,uint256)","c20ec5dc":"numberOfFriends()","c20f966b":"Utcoin()","c2108a92":"calculateBalance(uint256,uint256)","c210c623":"getKeys(uint32)","c21191ae":"GechainCoin()","c2127e03":"getMyShrimp()","c212bad5":"dropModule(string,bool)","c212cffa":"NUGOLD()","c215290a":"frozenUntil(address)","c215e800":"currentSubRound()","c2161c31":"getStringHash(string)","c2168ecd":"removeMintContract(address)","c216c0d3":"addCredits(address)","c217a724":"spendWithGasAndData(address,uint256,uint256,bytes)","c217c0e1":"ClickGemTokenERC20()","c2190c94":"registerSettlement(uint64,address,address)","c219c28c":"votingTokenAddress()","c219d326":"getData_14()","c21aa2e4":"PoHarj()","c21abf05":"tatalEthFromBuyer()","c21afa55":"MintingManagerRevoked(address)","c21afe12":"schedulePriceUpdatesRolling(uint256,uint256,uint256)","c21bbe56":"SetupDone()","c21c45e3":"iconRate()","c21c5ee1":"fixSpecications(bool)","c21c9c21":"validEvent()","c21d0204":"SetEvaluate(bytes32[],uint8,uint64[])","c21d5ab7":"setNode(address)","c21db033":"removeSupplier(address,address)","c21de274":"transferReverseProxyThirdParty(address[],uint256[],uint8[],bytes32[],bytes32[])","c21e5712":"makeLiquidCor()","c21ea693":"retraitStandard_3()","c21ec92c":"getAssetIpfs(uint256)","c21ed112":"genesisVirus()","c21fb125":"SpecificApproval(address,address,uint256)","c21fcffb":"DIYTubeCoin()","c2205ee1":"_authority()","c2222b80":"claimSubscriptionDeposit(uint256)","c222ef6d":"periods(bytes32)","c2234f67":"CONVERSION_DENOMINATOR()","c2235e74":"getTotalAmountOfChatMessages()","c2236b26":"setICO3Phase()","c2239daa":"setselfdropamount(uint256)","c223f557":"stopRedeeming()","c2248877":"getBarCodeDataCount(bytes32)","c2248c22":"changeOldTokenReward(address)","c2250a99":"transferStoreOwnership(address)","c225752c":"OneChanceCoin(string,string,uint8,address,address)","c22598d2":"BitClemm()","c225bf03":"resetContractDeploymentDate()","c226d279":"setMiniPoolEdit_7(string)","c226d9ee":"doTest()","c2276090":"settleBet(bool)","c227cee0":"shutThatShitDown()","c2289576":"AddTitle(uint256,string,string,string,uint256)","c228bcc6":"getFillVolumes(bool,bytes,uint256,uint256)","c2299e33":"shutdownMarket(bytes32)","c22a146c":"Unlock(address,string,bytes32)","c22a933c":"setBaseDeposit(uint256)","c22ab4e0":"reservedWallet()","c22af7ff":"ComputeBuy(uint256)","c22c4f43":"services(uint256)","c22d6c3c":"setArenaInterface(address)","c22f0ee2":"transferManagers(address)","c22f1c54":"_initializeAccount(address,address,uint256,uint256)","c22f8250":"updateStandard(bytes4,bytes4)","c22fc384":"exitScam()","c2304c4a":"addExplicitPosition(uint32,int64)","c2314be4":"CONFIG_FEES_DIV()","c231bace":"setMigrationTarget(address)","c232209e":"_verify(address,string)","c2328516":"disablePrivateFund()","c2329e5f":"_isNotOnSale(uint256)","c233e870":"isLatestPatchTree(bytes32,bytes32)","c2353918":"getCount(uint256)","c2356d23":"mintChest(address,uint16,uint24,uint24,uint8,uint8)","c235a5c7":"getGameStart(uint256)","c235e858":"VendorInterface(address)","c2362dd5":"lastEpochBlock()","c23693e0":"multiAccessRequired()","c23697a8":"check(address)","c236cc66":"GeneralUpdate(uint256,uint256)","c2370a62":"openGameResult(uint256,string)","c237898d":"getOwnerBalanceInMilliTokens()","c2381296":"beginPwn()","c2385fa6":"right78(uint256)","c238999b":"dislikeTrack(address,bytes32)","c239dfe0":"PermissionAdded(address)","c23a25ba":"getRoundBetOrigin(uint256,uint256)","c23a7427":"createMultipleWikiPages(string[])","c23b4b5b":"bountyShare()","c23c87d5":"play(bool)","c23da3a9":"initialSaleEndDate()","c23de962":"DefaultActionCalled()","c23e1cea":"SaleTokens()","c23ec301":"KSScidTOKEN()","c23f001f":"balances(address,address)","c23fed45":"setEscapeRequest(uint32,int256,uint32)","c2407089":"CursedToken()","c2410a69":"lockCostPerHour()","c2412676":"Token()","c2427f76":"getBidID(address,bytes32,uint256,uint256,uint256,uint256)","c242afaf":"bet(uint256,uint256,uint256[],uint256,address,bytes32)","c243431e":"AnalyticProxy()","c24366f0":"setKYCProvider(address)","c243bdee":"isHolderOwnAddress(bytes32,address,address)","c24504b7":"internalBuyTokens(address,address,uint256)","c245c1bc":"ownerBurnToken()","c2473378":"consortiumPlaceholder()","c247620d":"getArtistInfo(address)","c2490a67":"removeCardOwner(uint64)","c24924d6":"setQueryFee(uint256)","c2494dbf":"transferOnWallet()","c24977cf":"testPrivate()","c2498be6":"conjureAirdrop()","c24a0f8b":"endDate()","c24a8908":"token_airdrop_cnt_max()","c24a9674":"finalizeLastRound()","c24ad463":"Refundpot()","c24becf3":"getLastTier()","c24c153d":"addRound(uint256,uint256,uint256,uint256,uint256,bytes32)","c24d316e":"UNITDummyPaymentGateway(address)","c24de0e4":"halvingSubsidy(uint256)","c24dec82":"TOKEN_BUSINESS()","c24e1fc1":"issuedSupplyRatio()","c24fe21b":"transferLockup()","c2502d34":"claim_price_money()","c2506eee":"setO3(address)","c2507ac1":"getTokenAmount(uint256)","c2507ef7":"_createPanda(uint256,uint256,uint256,uint256[2],address)","c250a312":"active_withdrawable()","c250ef46":"refSystem(uint256,address)","c25193ad":"lcm(int256,int256)","c251a4e9":"G2Ufund()","c252ca75":"getBonusPercent(address)","c252d844":"rest_time()","c253400b":"RPS(address)","c2535bf0":"COOLCOIN()","c254e4db":"SFT()","c2552497":"impl_mining(address,bytes)","c255343e":"targetUser()","c255fa40":"updateTotal()","c255fb17":"getRefBalance(address)","c25615c0":"joinOneLottery()","c256d578":"getLastAuctionWinsDate()","c256ea58":"get_receiverCryptobank(uint256)","c2571a0a":"percUp(uint256)","c2572c51":"advisorsAndPreICO()","c257c851":"calculateEtherReceived(uint256)","c257eabb":"etherPaid()","c257f3ab":"getNumberOfShipsByOwner()","c258ff74":"List()","c2596b1e":"getDragonPrice(uint256,uint256)","c25a796e":"setHardcupFalse()","c25ab8b0":"iOSCoin()","c25acada":"Bithereum()","c25ae09f":"EthealNormalSale(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","c25b345a":"VivekRohitVibhayToken()","c25c22ee":"stageTokenMul(uint256)","c25cf1d0":"changeLockPeriod(uint256)","c25d0ac1":"tgeSettingsPartInvestor()","c25e6908":"ultimateOutcomes(bytes32)","c25f1901":"addThing(bytes32,string,string,string)","c25f1afe":"SponsorAdded(address)","c25f75fc":"pantry()","c25fe1a4":"changeHoldingTax(uint256)","c2606d99":"BITTECHToken()","c2608314":"getJntBeneficiary()","c260f681":"IsBoilerValid(uint256)","c2610cda":"SecretNumber()","c26181e0":"censorUser(address,bool)","c2619a5a":"AdministratorAdded(address,address,bool)","c26298a7":"getBalanceOfResidualBcoupons()","c262a33b":"preSaleCloseTime()","c262b912":"createCampaign(string,uint256[3],uint256[],uint256,uint256,uint256,uint256,string,int256)","c262df45":"isKnownRequest(address,address)","c26317d1":"RoundRevealStarted(uint256,uint256)","c26381f2":"limitETH()","c264786f":"pauseBlockNumber()","c264a063":"withdrawExcess()","c264a77c":"setSettleTimeout(uint256)","c2656473":"CROWDSALE_LIMIT()","c265a6c0":"KRCPreSaleContract(uint256,address,address)","c26613d5":"LogRebalance(address,bytes32,string,uint256,uint256,uint256)","c2664609":"submitStackholderTransaction(address,bool)","c2674780":"freecommunitycoin()","c2676e39":"VAToken()","c267e4b8":"previousWeiBalance()","c26875a4":"calculateCellBuySimple(uint256)","c268e777":"setDailyHourLimit(uint8)","c269014b":"getMemberId(address)","c2695a25":"Rivercoin()","c2699b1d":"getFirstBuyLimit(bytes32)","c269f263":"PRETDESupplyRemaining()","c26a331d":"bonusProvider()","c26aa3c9":"lockUnicorn(uint256)","c26b41e7":"totalUETsSold()","c26b7ce9":"CashTelexToken()","c26bacd1":"removeDriver(address)","c26c12eb":"getQuorum()","c26c7472":"addTimeToExpiry(uint256)","c26c84ec":"setBI(bytes32,int256)","c26d0412":"ethRate1()","c26d0c2c":"emitWorkPaused(uint256,uint256)","c26d69e1":"OnePercentGift()","c26dd189":"jade(uint256)","c26fe7ce":"releaseVestedTokensFor(address)","c270cbeb":"BtcThumb(uint256,string,uint8,string)","c270ce28":"rdCollectorAddress()","c270d7cb":"getPlayerRoundWinningInfo(uint256,address)","c2710949":"calcValuePerShare(uint256,uint256)","c2714a97":"addBRA(address)","c271ca90":"numMomentsOf(uint256)","c2722ecc":"getStore()","c2723d2e":"token_transfer(address,address,uint256,bytes)","c272f73e":"burnSignature(bytes,address,address,address,uint256,uint256,uint256,uint256,bytes)","c27382d9":"buyAndPlayGame(uint256,uint256,address)","c273b05f":"spentParsecs()","c27509cf":"investDirect()","c27549d9":"setRemainders(uint256,uint256)","c276086f":"createProducer(bytes32,uint256,bytes32)","c2761031":"k(uint256,uint256)","c2765b77":"setLegalToken(address)","c276963f":"tabsOneEthCanBuyICO()","c2775347":"haltsTrades()","c2777ce3":"currentEtherRateInCents()","c277f1ac":"fromId(uint256)","c277fe56":"pause(bool,string)","c2783ee5":"viewCrowdSaleLive(bool,bool)","c2784966":"TkoWhitelist(address)","c279d042":"product4_sell()","c27a65c1":"changeEthPriceQueryDelay(uint256)","c27a74d0":"catOwners(uint256)","c27b2c2d":"collectEarnings()","c27bc67c":"configureKeys(uint32,int256,bytes32,bytes32,uint32,bool)","c27bc7b2":"fortifyClaims(address,uint16[],uint256,bool)","c27c327e":"changeNewRubesUntilPayout(uint256)","c27d1580":"getNorsefirePrice()","c27d607b":"lastEvidence()","c27d7721":"create(uint256[101][])","c27e7398":"getLockedTimeUserInfo(address,address)","c27fc305":"f1()","c280541c":"buy(uint256,address,bytes32)","c2808d1a":"MinSum()","c2812f74":"triggerMinCap()","c281309e":"feeTake()","c28196b1":"addImmigration(address)","c281a013":"FinalizableCrowdsale(uint32,uint32,uint256,address)","c281d19e":"cbAddress()","c283226d":"reclaimTokens(string,string)","c2832430":"withdrawForfeited(address,uint8,address)","c2843a14":"addInviterValue(uint256,uint256,address,address)","c2844c60":"emitJobRatingGiven(address,address,uint256,uint8)","c2845184":"SUPPLY_FOR_REFERAL()","c284ab55":"eLYQD()","c284cdc5":"GetDescript(string)","c2852f38":"pauseContract(uint256)","c2856ca9":"presoldMax()","c285a245":"preferredSaleTLYperETH()","c285daf9":"Xoflife()","c286f3d9":"SetLockAddress(address)","c287820a":"kittensSold()","c287fa72":"calcDiviDistribution(uint256,uint256)","c288ab9d":"getUserCurrentMartialId()","c288eeee":"nowPeriod()","c2897b10":"stand()","c289adfa":"getAssetPrice(uint128,uint128)","c289dbe8":"first_withdrawal(uint256)","c28a56f1":"checkReceiptProof(bytes32,bytes,uint256[],bytes,bytes)","c28a9157":"bullsmasterReq()","c28aafb1":"addWallet(address,string)","c28b4369":"giftCard(uint256,address)","c28b4577":"setPermissionById(uint8,bytes32)","c28bfe5a":"testFailCreateSameIpfsHashAndNonce()","c28c770a":"getLockedTokensPerUser(address)","c28cedf3":"DEMO()","c28d38a8":"STARTING_SEEDS()","c28d5644":"LogMinSell(address,uint256)","c28db642":"tocancel(uint256)","c28dbc38":"grantAccessForToken()","c28de2cd":"upgraded()","c28e5022":"collectAndUpdate(address[])","c28e6e39":"ReducingSupplyCoin()","c28eab85":"setMinimumTokenSell(uint16)","c28ec9d7":"respondToChallenge(uint256[9],bytes,bytes32[],bytes,bytes32[],bytes,bytes32[],bytes,bytes,bytes32[])","c28f57ca":"ICOSaleStart()","c28f812c":"getPaycarnita()","c28f8e09":"icoFunded()","c28f9df1":"requestVestingTrusteeOwnershipTransfer(address)","c290367f":"playDiceCombinations(uint256,uint256,uint256)","c290d691":"pay(uint256)","c291ad27":"Notify_Number(string,uint256)","c291bf6d":"AuthDapps(address,bool,int256,bool,bool)","c291df56":"affPercent_()","c29224ea":"roundFailedToStart()","c292aae3":"McrForGasFailed(address,uint256)","c2930f91":"baseUnit()","c29338cf":"cozyTime(uint256,uint256,address)","c293fc0a":"SetBankerPrincipal(uint8,uint256)","c29402f1":"relistGenesisSales(bytes32,uint256)","c2944f69":"_multiSendOwner()","c2944f7a":"registHolderStep(address,uint8,address)","c294c93b":"getSANOwner(uint256)","c2954ff4":"Sent(address,uint256,bytes)","c2955bdf":"setUserBlacklistedStatus(bool)","c296302a":"transferRoot(address)","c296f721":"_buyLandForCandy(address,uint256)","c29721e0":"sendArena(address[],uint256[],uint64)","c297fa0f":"DEFAULT_DURATION()","c2985578":"foo()","c2992300":"setCreatePrice(uint256)","c29988db":"distributeEbyte(address[],uint256)","c299a394":"getNextRank(address)","c29a6fda":"setERC20(address)","c29d350f":"startTimeOf(address)","c29d9d74":"startMultipass(string,string,string,string,string,uint256,address)","c29e8863":"setImplementation(bytes32,bytes32,address,bytes32)","c2a029f0":"setID_control(uint256)","c2a15dbb":"_currentIcoPhaseBonus()","c2a15e7e":"votingEndsInHHMM()","c2a24b33":"Post(address,string,string)","c2a2747b":"p1()","c2a33485":"setReg3(uint256)","c2a394cb":"AuctionSuccessful(uint256,uint256,address,address,uint256)","c2a48c70":"revokeUserRole(bytes32,string,address)","c2a49237":"memberSellToken(uint256)","c2a5e5c2":"setTwitter(string)","c2a63e3b":"getEmployeeCount()","c2a88340":"Deactivate()","c2a8ec80":"betStats()","c2a95cc9":"updateTrustSettings(address,uint256)","c2a960a1":"signSendFlower(bytes32,string,string,address,string,bytes16,uint256)","c2a96ce5":"EscrowVault(address)","c2a98b41":"mymethod(uint256,string)","c2aaf9c4":"receiveEth(uint256)","c2ab66dd":"hasAttribute1ButNotAttribute2(address,bytes32,bytes32)","c2ac0b4a":"intMax(int256)","c2ac3aff":"addEth()","c2ac481c":"disaToken()","c2acc5cf":"mintTokens(address[],uint256[])","c2add678":"getLockerInfo(address)","c2adf34a":"bonusWeiAmount()","c2ae1a53":"sendTransaction(bytes32,uint256,int256)","c2ae7e14":"approvePaillier(address,string)","c2aeb355":"GRAMATON()","c2b06664":"setDS(address)","c2b0c743":"payETHToProvider(address,address,uint256)","c2b12a73":"setBytes32(bytes32)","c2b2fb5e":"editionExists(uint256)","c2b373a7":"seedHash()","c2b4470c":"FINLAB_PRESALE()","c2b477a7":"mintLimitByTemplate(uint256)","c2b4ab4d":"getCountBonus(uint256)","c2b4ddde":"setFundingEnabled(bool)","c2b6b58c":"isClosed()","c2b70850":"QuantiModoToken()","c2b7be16":"addSupportedToken(address,address)","c2b8fd12":"MYRN()","c2b98295":"balanceOfNonKYC(address)","c2ba4744":"canMint(address)","c2ba5b40":"getPackageData(string)","c2ba857e":"setJobAccepted()","c2baa882":"tokensPerCHF()","c2bc2efc":"get(address)","c2bdb862":"verifyProofOfTransitionAgreement(address,uint64,uint256,bytes32,uint256[2],bool,bytes32,bytes32,uint8)","c2bf17b0":"recover(bytes32,uint8,bytes32,bytes32)","c2bf1af7":"freezingStatus()","c2c06f20":"OldRopeToken()","c2c13a70":"LOCKUP_WALLET()","c2c3bd6a":"_v()","c2c4a328":"getInitPrice(bytes32,uint8)","c2c4abe6":"ASSPToken()","c2c4c5c1":"checkpoint()","c2c5143f":"bobMakesEthDeposit(bytes32,address,bytes20)","c2c52055":"ChampionGameStarted(uint256,uint256)","c2c546b8":"sumICOStage6USD()","c2c5b9f1":"setInt(string,int256)","c2c5ec41":"isValidProof(bytes32,string)","c2c5f89f":"BonusAwareCalculator(address,address)","c2c61d01":"agreeToTrade(address)","c2c62562":"setCrowdsaleData(uint256,uint256,uint256)","c2c68ee1":"unlockTrading()","c2c7ca1d":"extraTokensMintedDuringPresale()","c2c7ff0a":"ToperCoin()","c2c8fd40":"increaseWorldLimit(uint256,uint256,uint256)","c2ca058d":"clearBlacklistMapping()","c2cb88bd":"giftMessage()","c2cb9927":"reward(address,uint256,uint256,string)","c2cba306":"TokenAddress()","c2cbb299":"airdrop_auto(address,address)","c2cca62c":"TransferMinersReward()","c2ccb8a8":"isCurrentAccountMinter(address)","c2cd0e01":"issueNewCoins(address,uint256,string)","c2cd7632":"isEmployee(address,address)","c2cdaf24":"start1BonusPeriod1()","c2cdbf01":"SyloToken()","c2cf7326":"hasConfirmed(bytes32,address)","c2cf9bbb":"PotPotato()","c2d0916f":"moveMetadata(address,address)","c2d15d21":"totalIssuanceLastAverageBalance()","c2d23e41":"continuousBacking()","c2d25167":"closeIcoOne()","c2d37428":"withdrawForWinner(uint256)","c2d415e2":"Chicken()","c2d42ef2":"removeAccount(uint256)","c2d4423f":"excludeWhale(address)","c2d4489f":"provider2()","c2d4f851":"calculatePrice(uint256,address)","c2d526aa":"_rank(uint256)","c2d53eb4":"initOwner()","c2d560ab":"stopOraclize()","c2d5baf9":"JJL()","c2d83718":"randomTeam()","c2d83e61":"UserPool(address,address)","c2d86376":"NewDonor(address,uint256,uint256)","c2d8de54":"promisor()","c2d936d9":"MINATOKU()","c2d9c196":"preico_startdate()","c2da621b":"setMeterPoint(address,int256)","c2dab162":"mineit(address,uint256)","c2db0482":"getUnionIdByAddress(address,address)","c2db26fc":"unverifyAccount(address)","c2db2c42":"purchaseToken(uint256)","c2db5890":"breedAxies(uint256,uint256,uint256)","c2db8676":"BloodToken()","c2db9e25":"getMinerHalvingHashRate()","c2dc0470":"KilledTillNow()","c2dc9af4":"hardCapHash()","c2dcdfb4":"preferredSaleTokensLeftForSale()","c2dced85":"numberDecimal18()","c2de2909":"drawRandomWinner()","c2de89b7":"getCleide()","c2def3b9":"getOrganizer()","c2df8815":"Adnity()","c2e0af44":"doMove(address,address,uint256)","c2e12f21":"setDefaultTranches(bytes32[])","c2e171d7":"Save()","c2e28dd1":"setTitulaire_Compte_8(uint256)","c2e2a338":"withdrawRejected()","c2e2a33e":"setPermanentLimitForType(uint32,uint256)","c2e3460d":"Anxxia()","c2e4601a":"getAffiliateRate(uint256)","c2e46379":"transferBountyTokens(address[],uint256[])","c2e4b8fb":"TokensUpgradedFrom(address,uint256)","c2e52206":"getPlayerCount()","c2e55da3":"product3_pot()","c2e5d950":"finalizedRefund()","c2e5ec04":"setTradingEnabled(bool)","c2e5feb5":"KeyReplaced(address,address)","c2e62675":"COTToken()","c2e78f12":"deVerify(address)","c2e800ed":"isContractProxy(address)","c2e88185":"CyberMusicToken()","c2e9fab3":"SubUser()","c2ea2f9c":"halfCentury(address)","c2ea5c9e":"getInvArray()","c2eaaeb3":"computeTxFee(uint256)","c2eac875":"secure(uint256,string)","c2eb10a2":"makeBundle(uint256)","c2ecdf8e":"ownerCMIT()","c2ed2b05":"documents(uint256)","c2eddfd2":"kyberMultiSigWallet()","c2edec0b":"setCharityDonation(uint256)","c2ee0a57":"getBlockList()","c2ee3a08":"ONE()","c2eef08e":"stopLandEthSale()","c2f02b33":"Crowdsale7(address,uint256,uint256,uint256,address,address)","c2f0bb29":"getCardDetails(uint16,uint8,uint256)","c2f0c083":"angelOnLeaderboard(uint64)","c2f0d93f":"icoAbandoned()","c2f0dbe2":"claimPremium(address[2],uint256[7],uint8,bytes32[2])","c2f137f1":"swapAddr()","c2f3ce10":"ADDRESS_LIMIT()","c2f3d788":"read_total_number_of_purchases()","c2f415b5":"CTBoatGame(address,address,uint256)","c2f490e9":"caller_()","c2f4976f":"setRoundFinalScore(uint16,bytes32)","c2f4faf4":"TestOrder(address)","c2f61a9f":"setOraclizeQueryType(string)","c2f666a3":"PriceIncrease()","c2f7c50a":"FindID(address)","c2fa6697":"fundraiserCallData()","c2fa8b2d":"PoetToken()","c2faa691":"Constructor(uint256,string,string)","c2fb538e":"updateFactoryContract(address)","c2fb8f36":"TinyHuman(address,address,address)","c2fbe7bc":"transferFees()","c2fc048a":"transferOwnerToProxy()","c2fcbf37":"isValidateParameter(string,uint256)","c2fce718":"getPartsOfOwnerWithinRange(address,uint256,uint256)","c2fd0263":"isTripleNumber(uint256)","c2fe2022":"getFollowers(address)","c2fe3321":"PRE_ICO_ON()","c2febe49":"QuantorToken()","c2febef5":"removeCountry(uint256)","c2ff0f15":"NewShare(string,bool,string)","c2ff3334":"jump(uint256)","c2ff7a38":"adjustBalanceCheckpoints(address)","c2ffc7bb":"slates(bytes32,uint256)","c2fffd6b":"setCancelFee(uint256)","c30096ef":"calculationTeamsRewards(uint256[])","c3017200":"removeAssociatedAddress(uint256,address,address)","c3027525":"getOwned()","c302a45b":"crowdsaleStopped()","c302f747":"poolPresale()","c30354cb":"VUP_TOKEN_SUPPLY_TIER3()","c30381b9":"setSellCourse(uint256)","c303c3d5":"returnEtherToInvestors()","c303c53a":"withdrawForTwoStep()","c304b368":"updatedRandom(string)","c304ffc4":"CreateICE(address,uint256)","c3059c63":"buyUpgradeCard(uint256)","c306834e":"PRIVATE_SALE_LIMIT()","c306cb90":"sendDevTokens()","c30715d1":"setNumRewardsUsedForAddress(uint256,address,address)","c30718e8":"testIntParser()","c3077c10":"settxpct(uint256)","c307f6ba":"withdrawWbtToken(address,uint256)","c3082e95":"playerOutputAtNow(address)","c308f55b":"fallback(uint256,address,uint256)","c30a990a":"createPaymentChannel(address,uint256,uint256)","c30b06e8":"allMultitokens()","c30b182e":"sendVNET(address,uint256)","c30b8867":"maxPercentPerPlayer()","c30bc5ef":"breedWith(uint40,uint40)","c30bf4d8":"CodeEligible()","c30c0c0c":"checkUsers(address,address)","c30d0ee4":"phiRate()","c30dafd8":"_setTittyForSale(bool,uint256)","c30df14c":"logPurchase(address,uint256)","c30df586":"ZAI()","c30ed0a4":"Getwsic(uint256)","c30f4a5a":"updateURI(string)","c31028dc":"hasFirstUnionIds(bytes32,bytes32)","c31051fe":"teamPeriodLength()","c31053f7":"NNT()","c310b9df":"ProposalAdded(uint256,uint256,string,bytes32)","c311d049":"withdrawEth(uint256)","c312d468":"sendPToken(address,uint256)","c312ffed":"Contributed(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","c31422ac":"calculateTokens(address,uint256)","c3143fe5":"setUserCap(address,uint256)","c31453a7":"_unpackAttackParams(uint256)","c3146814":"pegETHUSD(uint256)","c3153834":"prefixedRecover(uint8,bytes32,bytes32,address)","c315432a":"isGameStarted()","c3155201":"XulCrowdsale(uint256,uint256,uint256,address)","c31592af":"getY(bytes)","c315a082":"KRT()","c3169ef2":"respond(uint256,uint256[4])","c316c98b":"updateCollector(address)","c3173774":"balanceThreshold()","c317464d":"CryptoHearthStone()","c31752c0":"getEmployerJobs(address,uint8)","c3182360":"getTimeBonus(uint256)","c3191f31":"readWelfareAddress(uint256)","c3192c82":"getcurrNumOfUpgrades()","c319618f":"getAllMyPackageIds()","c31989ed":"TronGold()","c319a02c":"right98(uint256)","c319e412":"allowContribution()","c31a0972":"OrpheusRoyalSiamRailways()","c31ad7dc":"voteYes(string)","c31b29ce":"GAME_DURATION()","c31bb2fb":"XEPToken()","c31bb8d6":"percentToTakeAsRake()","c31c0b62":"isSaleComplete()","c31c5221":"approveSetTokenControlInfo()","c31c6855":"presaleBonusTokensClaimed()","c31ce93e":"getExchangeGroups()","c31ceb2a":"numberOfAttendees()","c31d0031":"CrowdFundDAO(string,uint8,string)","c31d309a":"addRequestorAddress(address)","c31d3a6d":"payInvestors()","c31d3e8e":"maxPublicSale()","c31e0547":"quickConverter()","c31e6ee0":"sendTokensToService(address)","c31f3537":"removeBotAddress(address)","c31f586d":"cancelSaleAuction(uint256)","c31fa083":"setIpfs(string)","c32011f0":"unfreezeTeamRecepientBlock()","c3204954":"confirmTransactionByMediatorFee(uint256)","c320c727":"setRegistrationFee(uint256)","c3210eb7":"proposeCount()","c3218f50":"startPreICO(address)","c321dc18":"showParticipantWei(address)","c32221cf":"_newRepo(string,address)","c32377df":"recevoirApprobation(address,uint256,address)","c3237ff4":"emitFeePeriodClosed(uint256)","c32426c9":"ProvideToken()","c324606a":"confirmStakeholderTransaction(uint256)","c324a669":"purchaseSoldiers(uint256,uint256)","c325ae4e":"belongsToUser(address)","c3262dfd":"setUserID(bytes32)","c3283d83":"getStrandContract(uint256)","c32863a7":"every15()","c32935d7":"getBuyPriceTimesByTime(uint256)","c329e4a5":"BoardAddressChanged(address,address,address)","c32a4369":"getAllSamplesForOwner(address)","c32a4c7e":"returnCoke(uint256)","c32a50f9":"setSeed(uint256)","c32a6f6d":"toUint(string)","c32a88ae":"recoveryPaymentDigest(bytes32,uint256)","c32a8edf":"someMethod1(uint256,uint256,uint256,uint256)","c32a9b00":"do_grant_tokens(address,uint256)","c32aaa86":"getNameWriterId(bytes32)","c32b8683":"creatorRequestFundTransfer(uint256,address,uint256)","c32c1e65":"setOperations(address)","c32cc6d5":"investFor12Months(address,uint256,uint256)","c32ceb14":"setQueryIdForAddress(bytes32,address)","c32d88bb":"changeDepositAmount(uint256)","c32d946d":"performTransfer(address,address,uint256,bytes)","c32dee3a":"second_bonus_amount()","c32e16e7":"REQUEST_CANCELED_BY_LENDER_STATUS()","c32e2b42":"SalesAgentRemoved(address)","c32ee591":"isTransferAllowed(address,address,address,address,uint256)","c32f6945":"MiningLevelup(address,uint256,uint256)","c32fb5ea":"getNewAllowancePeriod()","c32ff491":"ServerManager()","c3310517":"reservedTokensDestinationsLen()","c3315b4b":"EasyInvest25()","c3328816":"TeamAdvisorsWallet()","c3332621":"shippingDate()","c3332732":"setNextGame(uint256,uint256,uint256,uint256)","c3336c0f":"transferMultipleSame(address[],uint256)","c3340892":"LogStateChange(uint8)","c334447b":"bytes32ToTokenId(bytes32)","c334e875":"payByErc20(uint256)","c334ea8f":"setMateAdvertisementRate(uint256)","c3354632":"_premoveByIndex(uint256)","c335f0a4":"RKGToken()","c336937d":"Revoked(address,address)","c3369b0d":"issueTokens(uint256,uint256,uint256)","c336e7fb":"NobelToken()","c3380b72":"getDefense(bytes32,bytes32,uint256)","c33818fd":"Controller_Address2()","c338287f":"getUSDPrice()","c33890ff":"StartNewIteration()","c3392f25":"PRCT100_R_TEAM()","c33a4cc8":"PresaleUpdated(uint256,uint256)","c33a5bb6":"RLCPerETH()","c33a66e0":"updatePriceEDEX(uint256)","c33a800b":"createHeldCoins()","c33aa7fe":"submitBid(string)","c33af352":"_getFunc(uint256,uint256,uint256,uint256)","c33b76c6":"rakeAddress()","c33bbe47":"LAM()","c33cfe36":"KolkhaToken(uint256)","c33db789":"_triggerFinishTournament()","c33df4ba":"getNumOfRickHolders()","c33e1844":"BTMC()","c33e40a3":"setBasePoints(uint256)","c33e4942":"definition(bytes32)","c33fb877":"process()","c3403ddf":"endVoting()","c34052e0":"contains(uint256)","c341031a":"Testereum()","c341b9f6":"freezeAccounts(address[],bool)","c3430bce":"validWhiteListedPurchase(address)","c3434883":"buy(uint256,uint256,bool)","c3437e06":"approvedBuyer(address)","c3440022":"WhitelistedAddress()","c34492a7":"buyTokensByOptions(address,uint256,string)","c344bc47":"HonestisNetworkTokenWire3()","c344bc4a":"REALCrowdsale()","c344cdd2":"offerOptionsConversion(address)","c34588ba":"countOfDeeds()","c3458d18":"callRecipient(address,address,address,uint256,bytes,bytes,bool)","c345b571":"_subDai(uint256,address)","c345c54b":"doSafeSend(address,uint256)","c3462818":"PFC(address)","c34764cf":"makerWithdrawERC20Token(address,uint256)","c347fe1f":"addCET4(uint32,uint32,uint32)","c3492908":"BASE_TIME_TO_COOK()","c34a253a":"cardFacevalue(uint8)","c34b6ae0":"setFreeTransferAllowed(bool)","c34ba3e9":"createPromise(address,uint256,uint256)","c34c08e5":"executor()","c34c27ad":"SendOwner()","c34c4417":"registerData(bytes)","c34c6b93":"getDateInfo(uint256)","c34d2732":"MAX_COMMIT_DURATION_IN_SECONDS()","c34da17c":"isBurned()","c34db131":"CSCPreSaleManager()","c34dd141":"percent_reduction()","c34de22d":"genKeysRec(uint256,uint256)","c34debc7":"updatePlayerWin(address,uint256)","c34e6e1b":"OnlyWhiteListedAddresses(address)","c34ef9af":"second_bonus_duration()","c34f1fea":"UnfreezeAmount(address,uint256,uint256)","c34f6b0d":"getPrize()","c34f783d":"allocateToken(address[],uint256[],uint256[])","c34f869b":"Voted(uint256,bool,address,string)","c34fb5ca":"canonizedParameterizer()","c3500745":"refundLockDate()","c3501ff6":"redeemToken(uint256,address)","c3502510":"UsdPerEthChanged(uint256,uint256)","c3508d58":"refundByOwner(address)","c350bbb6":"RoscaERC20(uint256,string,string)","c3513132":"accessTokenFee(uint256)","c351fd77":"setGasPricePctOfBetValue(uint256)","c351fdfd":"setBatchNumber(address[],uint256[])","c3521b1a":"wolkFund()","c352dae2":"getWalletInfo()","c352fbda":"grantMarketingCoins(address,uint256)","c353a89e":"changeMember(address,address)","c353c2de":"unPauseTokenSale()","c353dbb1":"EtherPluscoin()","c3542cad":"SaleStageUp(int256,uint256)","c3548647":"setActivationFee(uint256)","c35506c0":"upgradingEnabled()","c355b107":"cNiceGuy()","c355eaf0":"setEthlanceSponsorWalletContract(address)","c35740f9":"partner2_name()","c3576b41":"setOwnersCommission(uint256)","c35774a1":"setApproval(address,uint256[],bool)","c35789cc":"Close()","c3584d88":"getMaxEtherToInvest()","c358ced0":"isRevealPhase()","c359a2a4":"increaseContribution(address,uint256)","c35a4d46":"DubaiGreenBlockChain()","c35c08bd":"getCrowdsourcer(bytes32)","c35c3265":"novumAddress()","c35cabf4":"littClientId()","c35d1e01":"RESERVE_TOKENS()","c35dcf90":"getWhitelists()","c35e1b33":"MSERToken(uint256,string,string)","c35ef892":"getWriteTimestamp(bytes32)","c35f4bbb":"calculatePrimordialMultiplier(uint256,uint256,uint256,uint256,uint256)","c3602ee5":"delayedRequest(string,uint256)","c36086f0":"initTransaction(address,uint256)","c360c616":"TittyPurchase(address,address)","c3615e39":"set_address(address,address)","c36360f2":"limit8()","c36433e2":"createPromoDrug(bytes32,address,uint256,uint256)","c3645759":"increaseDistrictWeed(uint256,uint256)","c364a25d":"setHash(uint16,bytes32)","c3650a21":"danserviceTeamAddress()","c36572d6":"hasEnded(uint256)","c3657f96":"setBoxCount(uint16,uint16)","c365a646":"_setRiskParameters(uint256,uint256)","c365d4f0":"initWidth()","c36604ed":"secretNumber()","c3662528":"isApproved(bytes32,uint256,bytes)","c3663271":"Icoends()","c366b1d3":"BulkToken()","c3676a02":"mangeWhileList(address,bool)","c367ec17":"rewardAuditor(uint256,address,uint256)","c36800eb":"IdentityCreated(address,address,address,address)","c368109c":"monster_hp(uint256)","c3681e3d":"change_p3(uint256)","c3682ace":"time_end_sale()","c36851bc":"bidOnWonder()","c3685e89":"addMessage(address,string,string)","c3689f01":"testControlSetNotRetractableNotOwner()","c368b160":"disbursement()","c36981f4":"withdrawNacNetfReController(uint256,address)","c369c0c6":"addValidationPreSigned(address,bytes32,uint8,bytes32,bytes32,bytes32)","c36a7b45":"getUserTotalEthVolumeSaldo(address)","c36ad8a6":"deleteStar(uint256)","c36af460":"getLatest()","c36c0155":"get_planet_info(uint256)","c36c09e2":"setTrustedSender(address)","c36ccedc":"approve(address[16],address,uint256)","c36de353":"Ethereumt()","c36de531":"smallestUnitName()","c36e6fe5":"XclusiveCoin()","c36e9546":"SVL()","c36ff164":"claimFoundationToken()","c36fff2d":"availableOptions(uint256)","c37067fa":"donate(bytes32)","c370b0b5":"BbeCoin()","c370c86d":"setTokenName(address,string)","c370d8fe":"ExpandandHarvest(uint256)","c3720290":"giveSignOff()","c37210f4":"getDocumentSign(uint256,uint256)","c3722b1f":"AutoSell()","c3736dfa":"_shiftRight(bytes32,uint256)","c3737054":"changeManagerQuorum()","c373c0ef":"setStartDate(uint32)","c3751729":"mGenerateTokens(address,uint256)","c375ba8a":"getLavaPacketTypehash()","c375c2ef":"removeContract(address)","c3762904":"ethraised()","c37792b5":"generateSecurityToken(string,string,string,bool)","c3787865":"balanceFromToken(uint256)","c378a83b":"EarthToken()","c378ea76":"getFrom(uint256)","c378f1af":"RemoveAll()","c37981b3":"maxFixedSupply()","c37991e3":"ProposalEnd(uint256,string)","c37a676c":"acceptMins(uint256)","c37a6e8d":"signer1_proposal()","c37a832d":"getRoundUserBalance(uint256,address)","c37b0aa7":"modifyPriceCountry(uint256,uint256)","c37bcb1e":"unlockDate1()","c37cb1ae":"airdropsTokens(address[],uint256[])","c37cdcfe":"doDisputeMemoryRead(uint256,bytes32,uint256)","c37d1c8b":"tokensToMint(uint256)","c37d8a7e":"indexReplies()","c37d9044":"create(uint8)","c37db253":"isNotZero(bytes32,string)","c37dfc5b":"fillOrder(uint256,uint256)","c37e7379":"distributePresale(address)","c37e74c7":"getRet()","c37e8cb2":"testExportAuthorized()","c37f7f7f":"doTransferIn(address,address,uint256)","c37ff3d9":"sha(uint256,uint256)","c3800257":"Addmember(string,address,address,uint256,bool,uint256,bool)","c3800fdc":"CurrentToken(address)","c3801938":"getStateRoot(uint256)","c3830618":"reduceStake(uint256)","c3834d89":"setPromo(address,uint256,uint256)","c383b1bb":"summon10SkinAppearance(uint256,uint128)","c383e020":"endContract(address)","c384521f":"tokenCapPhaseTwo()","c384b170":"teamWallet2()","c3858e82":"unregisttIcoAddress(address)","c38672a0":"confirmTokenTransaction(uint256)","c38678c3":"addBuildingToServer(uint256,uint8[10],uint8[10],uint8[10],bytes32[10],uint8)","c386ff7d":"checkFunction(bytes32,uint256)","c38789ba":"example(uint256,address)","c387b2a7":"BatchTransferContract(address)","c3886f61":"checkWithdrawal(address,address,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","c3888bce":"transferTokenToMultiple(address[],uint256)","c388c167":"setNameAndTicker(string,string)","c388cca6":"testBitAndFailIndexOOB()","c38a0306":"devFeeHandle(uint256)","c38a0fcb":"MGLTOKEN()","c38a8afd":"minimumBet()","c38ad273":"priceETH()","c38ad65b":"getHeroPostAddres()","c38bb537":"setPauseStatus(bool)","c38c0fa7":"getParentPayoutDistributionHash()","c38c5813":"registerAdmin(address)","c38c9800":"innerContract(string)","c38caab5":"setPost(string)","c38e52c0":"deletePeerReview(address)","c38e650f":"changeRoundManager(address)","c38f0741":"snapshotDailyGooResearchFunding()","c38f1abf":"waitTokensPeriod()","c391c1b5":"updateOwner(address,address,uint256)","c391d581":"getXPROMO_MULTIPLIER()","c392079f":"removeCoin(string)","c392cf41":"reveal(address)","c392f118":"getSellingStatus(uint256)","c392f5a0":"getAllPackageReleaseHashes(string)","c39387ad":"checkAndUpdateStage()","c3946909":"setTheKingsQuote(string)","c394f6cb":"unclaimedTokens()","c39513af":"setDeprecated(string,address)","c395546c":"authorizedToSpend()","c395a16b":"leaderBid()","c395f336":"processPurchase(uint256,uint256)","c3964372":"startRound(uint256,uint256)","c397ae1b":"holosForWei(uint256)","c39804ac":"generatePreimage(uint256,uint256,uint8)","c39899c1":"isDeadline(uint256)","c398a925":"supportsERC165(address)","c398f030":"expire(uint256,uint8,bytes,bytes,bytes)","c399330d":"getBonusByTime()","c399d7c5":"getAccountTokenStats(address)","c399ec88":"getDeposit()","c39a9d97":"crowdSaleType()","c39afb0b":"BitcoinEther()","c39b79d4":"_contains_(address)","c39cb03f":"ERC827Token(uint256,string,string)","c39cbef1":"changeName(uint256,string)","c39ce8b6":"FranklinFrank()","c39cf53d":"nextrafflenumber()","c39e7394":"addAuctionReward()","c39ffc65":"GVFX()","c3a07df6":"getPermissions()","c3a0ba73":"BlockFilesManagement()","c3a11c51":"etherPriceInUsd()","c3a151de":"getPlayedGamePlayers()","c3a18dec":"PRIVATE_SUPPLY_ADDRESS()","c3a1e7cc":"totalWEIInvested()","c3a25c4c":"computeCntrAmountUsingPacked(uint256,uint16)","c3a267b7":"createEthGlobalDelegation(address,address)","c3a2a665":"retrieve(address,uint256)","c3a2a93a":"getContracts()","c3a2c0c3":"scheduleCall()","c3a35825":"getUint(bytes32,string)","c3a39544":"initialCompanysTokenAllocation()","c3a3ee80":"setPartsToSell(uint256,uint256)","c3a48741":"distributeTKLN(address[],uint256)","c3a4ebf5":"_roundOver()","c3a4f8b5":"hibit(uint256)","c3a5fc4d":"IconFoundation()","c3a62a68":"getDate(bytes10)","c3a69a75":"dividendsDistributor()","c3a6e2a7":"disableToken(bool)","c3a74e6a":"placeSellFciOrder(uint256)","c3a83aab":"getTokensAvailableToMe(address)","c3a869e6":"goldenTicketPrice(uint256)","c3a8da5f":"EthereumMark()","c3a8f536":"rsub(uint128,uint128)","c3a9b1c5":"sayHello(string)","c3a9bd8b":"maximumTokens()","c3a9be6b":"setLimitGame(uint256,string)","c3a9c930":"Gift(uint256,address,address)","c3aa0fe6":"setItemLimitHolding(uint256,uint256)","c3abe888":"sendBatch(address[])","c3ac93df":"QCOToken(address,address,address,address,address,address)","c3ad5ecb":"getTweet(uint256)","c3ae43a0":"buy100tickets()","c3aeacdf":"changeRules(address)","c3aebdd1":"s5(bytes1)","c3aedd92":"updateIsVerifiedInBulk(address[],bool[])","c3af38fa":"changeInfoUrl(uint256,string)","c3af702e":"totalfv()","c3b0f915":"KickToken()","c3b1037b":"ownerSetGasPrice(uint256)","c3b18fb6":"updateSplit(uint256,uint256)","c3b18ff2":"totalSupplyICO()","c3b1d52b":"recipientToGiftIds(address,uint256)","c3b1ff93":"acceptGame(address,uint256,bytes32)","c3b24be0":"Leg()","c3b2556d":"lookup(bytes)","c3b2d337":"_initialSupply()","c3b3271d":"updateStar(uint256,string,string)","c3b35a7e":"withdrawTo(address,address,uint256)","c3b3c656":"kickOutGroup(address,uint256)","c3b4db25":"setSeller(uint256)","c3b55635":"log(string,bool)","c3b57af8":"getStageAmount(uint256,address,address)","c3b66bed":"getProposalVotersCount(uint256)","c3b6f939":"mToken()","c3b7572c":"updateCommission(string,uint8,uint8)","c3b75b8f":"setLockProductActiveState(uint32,bool)","c3b7e378":"startTimeStage2()","c3b8bfe5":"transferIfNoHF(address)","c3b91d15":"AiBank()","c3b9741b":"ModifiedCrowdsale(uint256,uint256,uint256,address)","c3b9e2ed":"powerWithModulus(uint256,uint256,uint256)","c3b9f21e":"p4()","c3ba2368":"transferERC721(address,string)","c3ba65e7":"totalChicken()","c3ba7574":"mintForFund(address)","c3ba938d":"JPY_Omnidollar()","c3bb68cf":"weisPerEther()","c3bb8feb":"releaseSell(uint256)","c3bcb586":"soldKeys()","c3bd0bae":"CapLevelPrice()","c3bdc16f":"setUserRole(address,bytes32,address,uint8)","c3be259f":"ConnectiusToken(uint256)","c3be3c24":"_updateTopUpAvailable()","c3be6e8d":"SetStartTimeTLP1(uint256)","c3be8df3":"addAff(uint256,bytes32)","c3bea9af":"createGen0Auction(uint256)","c3bf32e3":"numberOfHeroClasses()","c3bf504a":"extractEth(uint256)","c3c0198c":"getAssesByOwner(address)","c3c0befb":"dumpPrize()","c3c132b2":"_indexProofId(string)","c3c1d4c7":"withdrawTokensTo(address)","c3c2686c":"preSaleWallets(uint256)","c3c2f066":"block(bytes32)","c3c357f9":"tokenSaleCompleted()","c3c5026c":"depositWEI()","c3c503b7":"becomeBankermaster()","c3c51aca":"cancelSellTokenOrder(uint64)","c3c563f4":"validateAmount(uint256)","c3c59aa9":"walletTimeOf(address)","c3c5a547":"isRegistered(address)","c3c5b40e":"setSaleAddr(address)","c3c63edc":"mintBadge(uint256)","c3c6e202":"indexLastThreads()","c3c6f0c9":"getCustomerTxTimestampPaymentKWh(address,bytes32)","c3c735cb":"BITDRIVE()","c3c74c45":"applyForCertification(string,string,address,string,string,uint256)","c3c75e5c":"setEditionPackSize(uint8,uint8)","c3c88a1d":"disableTransfer(uint256)","c3c8c12b":"setVipInfo(address,uint256)","c3c90e64":"checkReward(address)","c3c95c7b":"getMarket(bytes32)","c3ca3c6a":"SingularityTest3()","c3cad5e7":"senderMIT(address)","c3cb4159":"getICOBonus()","c3cb50ed":"setTileType(uint16,bytes32)","c3cb8c14":"finalizeVault()","c3cbc2c9":"offerSacrifice()","c3cbd341":"create(address,uint256,address,address)","c3cd9996":"CLASS_AQUATIC()","c3ceb939":"view58()","c3cfe00f":"EEB(uint256,string,uint8,string)","c3d014d6":"setContent(bytes32,bytes32)","c3d08f06":"setPermissionByAddress(uint8,address)","c3d0a20a":"NewToken(address,string,string)","c3d0a564":"getAccountBalance(bytes)","c3d23e10":"checkBet()","c3d2c355":"setKey(bytes32)","c3d32e56":"PixelCore()","c3d345c4":"getHangoutAddress()","c3d38586":"newCookie()","c3d4d75a":"getCommitHash(bytes32,address)","c3d54c9a":"paiementConfirmation(bytes32,bytes32)","c3d55adc":"calculateBuyGoldFee(uint256,uint256)","c3d58d95":"runICO()","c3d59369":"setIcoDiscountPercentages(uint8,uint8,uint8,uint8)","c3d5fd39":"getAdminInfo()","c3d68a85":"temporaryKill(address)","c3d69d03":"NatureX()","c3d7ad74":"sendPurchasedTokens(address,uint256)","c3d7e350":"removeAccount(uint256,address)","c3d8c099":"endICOStage5()","c3d97a27":"carsCount()","c3d9820d":"RefillOraclize()","c3d9c4b4":"share(uint256)","c3da42b8":"c()","c3da5153":"getEthartArtReward()","c3daab96":"withdrawBond(uint256)","c3dac9a1":"time_bought()","c3db397f":"unstakePartialContent(bytes32,uint256,uint256,bytes8,uint256)","c3db5ead":"Uruntest()","c3dc0083":"finishDeal(uint256,uint256)","c3dc1040":"orderInternal(uint256,bytes32)","c3dd2395":"maxCapEur()","c3de1ab9":"gamePaused()","c3de7cbf":"checkRedemptionWindow(uint256,uint256)","c3dee67f":"updateAllHoldersShareInfo()","c3defb70":"changePause()","c3df99b6":"upvoteComment(bytes32,bytes32,bytes32)","c3dfb938":"countFortunes()","c3dfbeea":"migratePresaleBalances(address,address,address[])","c3dfdae6":"gameToken()","c3e017c2":"dNextStage(uint32)","c3e053ac":"percentBuyBackTypeTwo()","c3e06be9":"changeReceiveWallet(address)","c3e0ae67":"future_round_percentage()","c3e0bbad":"getContentByName(string)","c3e1d25c":"percentsOfProjectComplete()","c3e2087c":"setManagementCompany(string)","c3e27948":"setTrueUsdFastPause(address)","c3e2f26e":"icoedAmount()","c3e38ae9":"setSEKU(uint256)","c3e3908c":"get_pre_kyc_bonus_numerator(address)","c3e3c7bc":"teamTokens()","c3e50027":"dealConfirm(uint256)","c3e58eec":"blackListSectorExists(uint8[])","c3e6ea31":"BONUS1()","c3e8fb40":"smartToken()","c3e92f9e":"DrawLottery(string,uint256)","c3e93fa3":"depositHelpe(uint256)","c3ea0fca":"promoEthCommission()","c3ea901d":"uint2ToStr(uint256[2])","c3eb0723":"LogNewSecurityToken(string,address,address,address,uint256,uint8)","c3edb4c2":"finalizeChangeInsuranceFees()","c3ee6311":"lockAndCall(string)","c3ef473c":"ShareHolderVoted(address,uint256,bool)","c3ef586a":"Gambit()","c3ef83fc":"executionTimeOf(uint256)","c3f010f7":"numGames()","c3f03fb8":"querySpecialRateForAddress(address,address)","c3f07ba7":"addTokenAddresses(address[])","c3f0dad9":"isGenerator()","c3f17ae8":"getAmountToIssue(uint256)","c3f1a710":"getInvestment()","c3f1b0ea":"changeRequest(bytes32,bytes32,bytes32,string,bytes32,bytes32,uint256)","c3f3310b":"tokensOfFounder(address)","c3f34a50":"Dao(address,uint256,uint256,uint256,uint256,uint256,uint256)","c3f3b854":"maxNumBets()","c3f44c0a":"relayMetaTx(uint8,bytes32,bytes32,address,bytes,address)","c3f51fca":"initMintable(address,address,uint256,uint256)","c3f53e94":"ownerClaimTokensAndRefundForUser(address)","c3f59687":"transferMastership(address)","c3f6263f":"charityCutOf(uint256)","c3f67cde":"withdrawSecond()","c3f6e09c":"sendOnlyHash(string)","c3f7ec97":"addLog(bytes)","c3f7f169":"safeSend(uint256)","c3f843d7":"minVeriAmount()","c3f84c05":"retribution(uint256,address)","c3f90202":"f4()","c3f909d4":"getConfig()","c3f9409f":"signBitcoin(bytes32,uint8,bytes32,bytes32)","c3fa4f27":"sendPowerToken()","c3fa5f93":"BlockScheduler(address,address)","c3fb31a4":"coolDungeon()","c3fb5e5f":"createVestFundFor(address,uint256,uint256,uint256)","c3fbc632":"ICORunning()","c3fc4787":"finalizeFork()","c3fdbef8":"totalInSharedPool()","c3fe3e28":"game()","c3ff05d1":"getBoxCountZIndex(uint8)","c3ff3878":"checkForValidChallenge(address,uint256)","c401a2a3":"destroyforproduction(uint256)","c401d6b0":"totalTokensToSupply()","c4021c13":"topupEnergyByToken(address,uint256,uint256)","c4026d7b":"removeDev(address)","c402e446":"Express_Satisfaction_MediatedTransaction(uint256)","c403adc8":"changeInSale(bytes32,bytes32,uint256)","c403cf6d":"RESERVED_TOTAL_AMOUNT()","c403f90f":"airdropTime()","c4041bc5":"viewauction(uint256)","c4043465":"MYEXCTOKEN()","c404b3f6":"currentTranche()","c4052559":"haraKiri()","c4052a78":"airLiftPrice()","c4057e61":"getData_4()","c40580de":"removeOwners2()","c405b1f0":"addJob(address,uint256,uint256)","c405d30e":"send2marketing(address,address)","c405e11b":"_addAnswerToHistory(bytes32,bytes32,address,uint256,bool)","c4069caf":"getPlayersByTrackId(uint256)","c406d4af":"getPixelToken(uint24)","c407670f":"donorCount()","c4076876":"pay(address,uint256)","c407c6d8":"chop(string)","c4085bf6":"_sell(address,uint256,bytes)","c4086893":"getLockedBalance(address)","c408efba":"isMigrationPhaseOpen()","c40940f4":"pricePerUnicorn()","c409ad08":"exec(bytes,bytes,address[])","c40af29f":"tokenTeamSupporter()","c40b276b":"hasString(string[],string)","c40b4c4d":"minSumPreICOUSD()","c40b716c":"setLLV_edit_14(string)","c40b8868":"changePresale(address,uint256[])","c40b8dcf":"usdToHavPrice()","c40bdc05":"_requestLoans(address,uint256)","c40cf4eb":"memberContract()","c40d19a5":"getAddressSize()","c40d4163":"ArthToken(uint256)","c40d62fe":"OrpheusBlockChainCitySiam()","c40dc8ec":"deadline(uint256)","c40fdc94":"Delisted(uint256)","c40fec3a":"forceOffsetExecuteFeeRate()","c4109843":"OrdersMatched(bytes32,bytes32,address,address,uint256,bytes32)","c4109d48":"baseTokensAllocated()","c411e4d4":"canCancel(uint256)","c4128b6d":"upgradeCount()","c4130ae0":"registerEvent()","c413af2e":"setPreICOPhase()","c413fdf3":"testPayout()","c414dede":"tablets(address,uint256)","c41518f2":"luckyYouToken()","c41559bb":"ETHbalanceOf(address)","c415b95c":"feeCollector()","c4163518":"isMining(address)","c4164365":"investBalanceMax()","c4166ea8":"OBGAllocation(address)","c416a0d7":"emergencySetBBFarm(uint8,address)","c41728a7":"sectorOwnerCut()","c4173548":"preSaleRaised()","c417becd":"RCToken()","c4184def":"BCBToken()","c418c8c9":"TradeToken(address,string,string,uint256,uint256)","c418c93e":"addOnStage(address,uint256,uint256)","c4198161":"setParameters(address,uint256)","c41a360a":"getOwner(uint256)","c41a9892":"bet2()","c41a9dfe":"has_joined()","c41addb5":"newModerator()","c41b0ae7":"getNumberOneArg(address,bytes4,address)","c41c19dc":"trackContributions(address,uint256)","c41c33af":"submitChallengeOrder(bytes,uint64,uint64,uint256,uint256,uint256)","c41c3bde":"setBuyingTime(uint256,uint256)","c41c9a61":"transferERC20Tokens(address,address,uint256)","c41e1d4f":"MAX_NUM_NAVITOKENS()","c41efe08":"getBestSale(bytes32)","c41f48a3":"DinosaurFarmer2()","c41f4cc0":"takerStatus(address)","c41f9482":"getDateTime(uint256)","c41fbbb5":"addFounder(address,uint256,uint256)","c420928d":"EncryptoTelToken()","c420f7fe":"getPlayerShipModelById(uint64)","c421249a":"sui()","c4215398":"publicSaleAddress()","c4218d33":"oraclizeBalance()","c421fa8e":"updateCrowdfundState(uint256,address,uint256)","c421fc6b":"currentStageData(uint8)","c422293b":"finishIssuance()","c422d09b":"ConfirmOwner()","c422ed19":"addFreeBet(address,uint256)","c4236cdc":"catchStarters()","c4254c7b":"CoreWallet()","c4259e2e":"changeOwnerInfo(uint256,uint256,string,string,string,string)","c4264738":"refundSafe()","c426b1e5":"showDepositEther(address)","c426c3e2":"getExtendedAttributesForPlayer(uint256)","c426fbb6":"setCrowdsaleStartBlock(uint256)","c4270574":"userRollDice(uint256,address)","c42791ae":"setBountyOwner(address)","c427a68b":"ExtremeSetupToken()","c427af9b":"outcomeAmounts(address,int256)","c427e699":"getContractsOf()","c42882e3":"getEarlyAccessKitsRemaining()","c42890b6":"setCastleContract(address)","c4290b76":"getAmountWithdrawal(address,bytes32)","c42956d3":"nextExchangeRateIndex()","c4298f89":"ACL(address)","c429e4a3":"TEAM_ALLOWANCE()","c42a0716":"erc20(string,string,uint256,uint256)","c42b5fe1":"registerExternal()","c42bb1e4":"contract_eth_value()","c42bd05a":"newToken()","c42c237a":"CortexCoin()","c42c9905":"register(bytes20,uint32,int24[4],int24[4],uint32[4],bytes32[])","c42cb819":"goldBoxAmountForSale()","c42cce7e":"total_tickets()","c42cd8cf":"etherSplit(address,address)","c42cf535":"setGovernor(address)","c42e04c0":"etherOne()","c42e1ace":"TKP()","c42ed894":"getRoundTargetBlock(uint32)","c42edd61":"payFeesToggle()","c42edf88":"leveRage()","c42f61d3":"RhodoToken(address)","c42fd368":"RateChanged(address,uint256,uint256)","c4305a55":"windowBonusMin()","c430bcda":"whitelistInvestor(address)","c43147c1":"InitializeManifesto(string,string,uint256,bool,bool)","c43148ca":"makeProposal(string,uint256,uint256,uint256,uint256,address,address)","c4319bd8":"AgreementHashEn()","c431f885":"addToContribution()","c4321adb":"investInTheSystem(uint256)","c4329ae5":"totalChangedPixels()","c433793d":"removeWhiteListedAddress(address)","c433e8ca":"remainMintTokenAmount()","c4342252":"latestScheduledUpdate()","c434650c":"_checkOrder(address)","c4359c1b":"marketSeeds()","c435ae0c":"setMaxGoal(uint256)","c435d26f":"GREMToken()","c435d2ac":"publishedTokenOfOwnerByIndex(address,uint256)","c435d68e":"numberOfContracts()","c4366149":"optionBalance(bytes32,address)","c4373c05":"tickRequiredLog(uint256,address,uint256)","c43782e0":"ZipToken()","c437b951":"BytechTechnology()","c43821aa":"issuanceCurrentBalanceSum(address)","c43823e1":"jsonKeyExists(string,string)","c4387936":"edgePigmentB()","c439af4f":"WAVEliteToken()","c43a6a79":"returnsTwoNamed(uint256,uint256)","c43aa319":"startTime_()","c43ae983":"GROWTH_BUMP()","c43b7934":"stagePrice(uint256)","c43bb538":"requestOwnershipTransfer(address,bytes32)","c43c633b":"traderBalances(address,address)","c43c9e12":"addTokenAdmin(address,address)","c43d0575":"scheduleCall(bytes4,uint256)","c43d56bb":"changelp4(address)","c43d9ac9":"TCETest()","c43e0e72":"_withdraw(address,address)","c43e9462":"getRoundNumber(uint256,uint256)","c43eb0e0":"getAvatar(bytes32)","c43ed2c8":"update(bytes)","c43f22c4":"isInvestorAllowed(address)","c440008e":"foundersFund()","c4400ed4":"getProfit(uint8,uint256)","c4405fa7":"_getMaxRarityChance()","c44088fd":"rewardUnitsRatePerYear()","c440e875":"dedeNetworkAddress()","c44193c3":"offerPunkForSale(uint256,uint256)","c44237dc":"EventUpgradeShip(address,uint32,uint8)","c4426a88":"arbitrate(address,address,bytes32,bool)","c44299c7":"preAlphaPrice()","c4432f31":"P3DAddress()","c443a99a":"MicoinNetworkToken(uint256,string,string)","c44412e3":"revokeBonusCreditOf(address,uint256)","c4453bd0":"getPlayerMinions(uint32,uint8)","c4454980":"fundManually(address,uint256)","c4457e47":"load(uint8[],uint256,uint256,uint256,bool)","c445e2ef":"RedPillToken()","c4468f69":"setNewPotWinner()","c4477a11":"Banknote(address,uint256)","c4479812":"batchMultipleAmount(address[],uint256[])","c44828be":"totalAllowance(address,address)","c4489110":"BUYOUT_PRICE()","c448fa85":"isExtraDistribution()","c44a2a10":"ownerCredited()","c44b0290":"setLockPostion1(address,uint256,uint8,uint256,uint8,uint256,uint8,uint256,uint8,uint256,uint8)","c44b10d9":"payoutOdds()","c44c2efd":"burnPLUTUSTOKEN(uint256)","c44cb8fc":"viewTotalPayoutToPlayer(address)","c44cd4df":"sendReaction(address,int8,string)","c44ced7e":"ozr()","c44d36ee":"protectedTransfer(address,uint256,bytes32)","c44d6f87":"PAPER()","c44e6640":"getAuctionCount()","c44e787f":"sideBetPay(bytes32)","c44f7864":"getRemainingTimeInSecond()","c450a08a":"queryLockedTokens(address)","c450a25f":"unfreeze_contract()","c450d98b":"getCommunityReputation(address)","c4522c92":"removeStaff(address)","c45250c8":"icoRound3()","c45330b4":"remainingTotalBonuses()","c453cdd4":"getMyVines()","c4543386":"TUIToken()","c4545e6d":"_replaceModule(address)","c4552791":"proxies(address)","c4561d61":"finishICO()","c456354e":"setEndTimeStamp(uint256)","c4569504":"getKudosOf(address)","c456d394":"getPixelPrice(uint256)","c4576525":"WEC()","c457fb37":"getTokenPrice(uint256)","c45849c2":"doDistribution(uint256,address,uint256)","c458e5f3":"CrowdForceTestToken()","c4590d3f":"setLimits(uint256,uint256)","c4596419":"mintSoldTokens(address,uint256)","c45982b9":"madd(uint128,uint128)","c459b003":"ATTR_PERMANENT()","c459b9e3":"MaxStarIndexAvailable()","c45a0155":"factory()","c45a4047":"batchTrasfer(address[],uint256,uint256)","c45a6f98":"unlockMultiple(address[])","c45aa04c":"queryShareholders(bytes,uint256)","c45ad06a":"etherSince50()","c45b415e":"createRequest(address[4],address,uint256[11],uint256,bytes)","c45c4f58":"balance1()","c45cda5a":"init_fund()","c45d19db":"tokensToBeReturned(address)","c45d32cf":"getRemainingBytesLeadingZs(uint8,bytes)","c45d3d92":"conversionWhitelist()","c45d5fcb":"TwoStageCrowdsale(uint256,uint256,address)","c45d8af4":"getWinIndexFromHash(address,bytes32)","c45d8c8b":"Gryphon()","c45ddd87":"targetDiscountValue4()","c45df8e5":"COSIGN_MAX_TIME()","c45e4a7b":"SwiftDex()","c45ec88c":"Put(bytes32)","c45ef547":"offlineDiscipleSold(uint256,address,uint256)","c46073f7":"LUCYD()","c46093de":"_0xMonacoinToken()","c46180a7":"setBalanceOfActiveToken(address,uint256)","c461889e":"OkLive(uint256,string,string)","c4618978":"MIN_INVEST_ACTIVE()","c4620549":"quaker(address)","c4626ea7":"PumpHodl()","c4628520":"cashoutEOSBetStakeTokens(uint256)","c462a408":"maxParticipantCount()","c462bd11":"setupRules()","c46362fd":"set_merge_mint_threshold(uint256)","c463a1af":"CapitalMatchToken()","c463b008":"triggerTransferEvent(address,address,uint256)","c464fe65":"sellTokens(address,uint256)","c465e742":"UpdatedTokenInformation(bytes32,bytes32)","c466313c":"GetMainSale()","c4664649":"FIXEDREWARD_MM()","c467706d":"startEarlyAdopters()","c467a317":"freezeTeam()","c467b0ff":"_play(uint256,uint256,uint256,uint256,uint256)","c4694ec6":"ecoSupply()","c4697667":"BONUS_WL()","c469eb99":"deleteFromWhiteList(address,address)","c46a23a2":"signedAverage(int256,int256)","c46a2925":"setMinApprovalCount(uint256)","c46a3a0d":"icoPhase1EndTime()","c46a6262":"playEtherOf()","c46aaf38":"PharmaGenome()","c46b2d9d":"denyBundling()","c46b644b":"NewTicketEvent(address,uint8,uint8,uint8)","c46c3c68":"RuffToken()","c46cacae":"initial_time()","c46ce53e":"getOneTotalFeesCollected(uint256)","c46d2235":"serverEndGameConflictImpl(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,bytes32,bytes32,uint256,address)","c46d4cf1":"thawAccountTransfers(address)","c46df008":"walletData(address)","c46e3e85":"unitGooProduction(uint256)","c46e614a":"isCMCT()","c46ed45a":"fee_percentage()","c46f3e25":"lastChanceEnabled()","c4701037":"aaa(bytes)","c47028c1":"TOKEN_RATE_CROWDSALE()","c47031ab":"getKarma()","c4716d0f":"contributedCap(address)","c4725577":"getPrice(uint256,uint256,uint256,uint256)","c472c7e6":"setTotalWithdraw(address,uint256,address,bytes,bytes)","c4735121":"thirdRoundTime()","c4740a95":"removeAccount(address)","c4749079":"_roundDivision(uint256,uint256,uint256)","c4749bbd":"showInvestBalance()","c474e70a":"returnFundsForMultiple(address[])","c4752773":"priceStep3()","c475abff":"renew(uint256,uint256)","c475cdf5":"issueNew(uint256)","c476dd40":"reportMalicious(address,uint256,bytes)","c477d234":"checkIfAlreadyOrderedForDay(uint256,address)","c4784fd4":"setMsg(string)","c4788efe":"resetTotalVotes()","c478b52f":"PLATINUM_AMOUNT_TPT()","c478fc37":"EtherWheel(uint256,uint256,uint8)","c4791421":"changeCooldownEndTime(uint40,uint40)","c47958e2":"ERC20(string)","c479ace6":"updateOwners(uint256,address,address[],uint256,uint8[],bytes32[],bytes32[])","c47af5cf":"ChangeCost(uint256)","c47af732":"setReserved(address,bool)","c47bc007":"add_funds()","c47c4cc7":"getInitialBalanceByAddress(address,address)","c47cf5de":"getAddress(bytes)","c47d5bb8":"unitsUserCanBuyLimitEth()","c47e7bcb":"softcap3Reached()","c47e951f":"adjust_eth(uint256)","c47e9fea":"ContributionRefund(uint256,address)","c47ef875":"activeTokens()","c47f0027":"setName(string)","c47f0f90":"getPurchases()","c47fae76":"autoPlayBot()","c47fc244":"grantInvestorsTokens(address[])","c48029d4":"AddTokensToMember(address,int256)","c4806df4":"createTokenOwner()","c480e583":"revertTransfer(address,uint256)","c4811a0e":"maxICOThirdSupply()","c4813b2c":"StgOnebonusEnds()","c4815c96":"teamAdvTokens()","c4818ae1":"joinPillar(uint256,uint8,uint256)","c4818cdc":"_balanceOf(address,address)","c482299f":"transferAUTOtokens10(address[])","c482ceaf":"reinit()","c4834c30":"teamTotalSupply()","c483b71c":"Map(address)","c483befa":"setParameters(address,string,string,string,address,uint256,uint256)","c4841369":"paymentsByPurchaser(uint128)","c4843365":"getRarity(uint32,uint256)","c48513a4":"getStringConstant()","c485297b":"HelloSystem()","c48590e9":"PARTNER_SUPPLY()","c485ac95":"setWalletForTokens(bytes32,address)","c486301b":"AcceptsExchange(address)","c4864f45":"changeAcceptExchange(bool)","c4868452":"preIcoActive()","c486d133":"round1InitialBonus()","c4871039":"totalWeiRaisedDuringPhase2()","c4882e44":"disableRound0()","c488d6f2":"stopOffering()","c489744b":"getTokenBalance(address,address)","c489a649":"updateAirdrop(address)","c48a0dc0":"OptionToken()","c48a3cbf":"setStackPtr(uint256)","c48a66e0":"transferTimelocked(address,uint256,uint256)","c48a7560":"sellScams(uint256)","c48b1cf0":"test_5_accessRestriction_addMember_shouldThrow()","c48c68ee":"addressFounders4()","c48d5a4a":"_buy(uint256,uint256,uint256,address,uint256)","c48d93d8":"JuraToken(uint256,string,string)","c48d99ca":"DataDumped(address,string,bytes32)","c48db366":"Africacoin()","c48dc5fb":"JackpotAwarded(uint256,address,uint256)","c48e1c4d":"importAddresses(address[],address[])","c48e5ec4":"getPurchaseDetail(uint256,uint256)","c48e819c":"test_openRegistry()","c48eabc0":"getContributionPool()","c48ef17c":"floorId()","c4909a70":"addConfig(bytes32,bytes32)","c490a266":"toUInt(bytes)","c490dfa6":"isVerifiedAddress(address,address)","c491fd18":"FlexibleTokenSale(address,address,uint256,address)","c493afcf":"closeRefund()","c494a080":"totalPlayer()","c494c3f7":"teleportKnight(uint32)","c494f71a":"LedgerFund(uint32,uint32,uint64,uint64)","c49589bb":"rateUSDcETH()","c4969b8f":"setSellerAndAmt(address,uint256)","c4977807":"getFrozenAccount(address)","c4983c65":"updatePoints(address)","c498fcfd":"getUnitDefenseIncreases(address,address,uint256)","c49a1ede":"updateShareValue(address,uint256)","c49a3b04":"OraclizeVerifier(address,string,uint256,uint256)","c49a8fc9":"secureUpdateOrderFunds(address,bool,uint128,uint128,uint128,uint128)","c49b94e9":"getTokenTxn(uint256)","c49c3635":"getEventOutcomeIsSet(uint256,uint256)","c49d3b9f":"memberData()","c49d9ff8":"chatMessages(uint256)","c49ee5b4":"finalUnpause()","c49f91d3":"EIP712DOMAIN_TYPEHASH()","c49fea77":"setVariables(uint8,uint8,uint8,uint8,uint256)","c49fef66":"maxAnimals()","c4a06710":"isKYCPassed(address,address)","c4a0dada":"getOtherName()","c4a13f23":"affiliateBonusPercent()","c4a1ee37":"gasLimitWithdrawConfirm()","c4a1fedf":"increaseWeeklyTransactionVolumeReceiving(uint256)","c4a2c6b4":"Partial23Send()","c4a2d664":"setTransferFeeMax(uint256)","c4a2e641":"confirmTransaction(uint256,bytes)","c4a2fe12":"setversion(uint256)","c4a31557":"packSaleAddress()","c4a381b8":"setTokenRate(uint32)","c4a4cb4e":"countMilk()","c4a4e267":"weaponToApproved(uint256)","c4a4f265":"minimalContribution()","c4a50433":"unprocessedProfits()","c4a5350d":"createNewContract(string,string)","c4a5b138":"approved(address,uint256,address,bytes)","c4a796c1":"setReferee(address)","c4a8158c":"getMyTurtle()","c4a8598e":"BANCOR_X()","c4a85bc1":"allowAccess(address)","c4a89e9e":"lengthOf(uint256,uint256)","c4a8a670":"getEvent(string,uint256)","c4a8b570":"setdteamVaultAddr3(address)","c4a942cb":"chunkSize()","c4a96758":"getByteFromByte32(bytes32,uint8)","c4aa94a6":"withdraw(address,uint256,address[],uint256[])","c4ad32be":"generateTrees(uint256)","c4adb406":"validDestinations(uint256)","c4ae16a8":"getPlayerId(address)","c4ae3168":"togglePause()","c4b05f49":"addThing(string,string,string,string)","c4b06c19":"SeedSale(address)","c4b14e0b":"getSignature(bytes32)","c4b195ab":"r2(address)","c4b24a46":"checkReward()","c4b2841c":"_doTradeWithEth(address,uint256,address)","c4b293db":"getBuyRatio()","c4b296a7":"getInvestorIndex()","c4b2a668":"GlavCryptPoint()","c4b2eccb":"maxAmountAddresses(address)","c4b35f3d":"DIV()","c4b379f7":"earningsOfPlayer()","c4b3a516":"setPercentageAvailableToSell(uint256)","c4b40fb7":"tkcAddress()","c4b4dff1":"PayChain()","c4b54551":"MAX_SPARTANS()","c4b5cde2":"EventBuyShip(address,uint16,uint64)","c4b5f891":"LTBToken()","c4b62bbb":"updateAddressSetting(uint256,address,address,string,string)","c4b67e8a":"generateReport2(int8[],uint32[])","c4b6b5fd":"initChallenge()","c4b6c2f3":"btcPriceProvider()","c4b6fec9":"sendVal()","c4b71cec":"ICO_LEVEL_1()","c4b781a8":"setPercentAllocationFee(uint256,uint256)","c4b7c4cf":"communityVote(bytes32,bool)","c4b80f6e":"incPlayerOwed(address,uint256)","c4b9223f":"setVestingSchedule(address,address,uint256,uint256,uint256,uint256,bool)","c4b9897b":"IagonToken()","c4baa573":"process2(bytes32,uint256[],bytes)","c4baf4a4":"IQT_FUNDATION_ADDRESS()","c4bb0173":"hash_sha3(string,uint256)","c4bc5da5":"resumeContract()","c4bc7b70":"setGlobal(uint64,bool)","c4bd8ebc":"num_monsters()","c4bde5e1":"totalLotteryNumber()","c4bebd69":"pauseLastStart()","c4bff124":"addBlacklistItem(address)","c4c0698d":"withdrawInEmergency()","c4c1b39a":"tokenPriceInitial_()","c4c1c94f":"add(address[])","c4c1d835":"DataAuction(address,address)","c4c22e98":"blockInterval()","c4c24249":"turnLast()","c4c2e702":"execute(uint32)","c4c308be":"getBeneficiaryCash()","c4c3718b":"satoshi_bth_decimals()","c4c39ba7":"SWAP_CAP()","c4c49380":"setCap()","c4c4a89b":"buyNewDrone(uint256)","c4c4d00b":"CRBTTokenLive()","c4c4e3c0":"GOLD_AMOUNT_SKL()","c4c4e438":"oraclize_query(uint256,string,bytes[3])","c4c50acf":"giftTokens(address,uint256)","c4c59c77":"ethIN()","c4c5f3de":"forecastingClosed()","c4c6710d":"buyTicket(uint256,uint256,uint256)","c4c676cf":"TRBToken()","c4c68b44":"getTotalSupplyForType(uint256)","c4c745b6":"getBonusFactor(address,uint256)","c4c842f7":"_emitJobBinded(uint256,uint256,bool)","c4c90d70":"withdrawHouseFee()","c4c90f4c":"tokenUsersSave(address)","c4cae886":"setManualTradingAllowed(bool)","c4cb291e":"unpaid()","c4cbb591":"compot()","c4cbd65b":"isTourUnfreezed(uint256)","c4cbfa44":"isConstructor()","c4cc161b":"SellSnail(uint256)","c4cc5616":"addStory(uint256,string)","c4cc6e53":"TgeOtherReleasingScheduleContract(uint256,uint256)","c4ccf6ea":"getAmountBonus(uint256)","c4cf8a40":"createTradeContract(address,address,uint256,uint256,uint256,bool,bool)","c4cf9385":"MetaMorph()","c4cfc5be":"PGE01NY()","c4d01481":"getPreRemainCoins()","c4d18b18":"calculatePoohBuy(uint256,uint256)","c4d252f5":"cancel(bytes32)","c4d259ad":"setIsAdmin(address,bool)","c4d2783c":"GTTAirdrop(address,address)","c4d2bac9":"HelloToken()","c4d3926a":"currentTokenIdNumber()","c4d42292":"ResidualShare(uint256,string,string)","c4d4fdc0":"getBonusRateForTimeBased()","c4d66de8":"initialize(address)","c4d77090":"nodeAddresses(uint256)","c4d7b98f":"erc20ContractSwitch(address,address,uint256)","c4d8aa44":"VenaCoin()","c4d9102f":"setNextID(uint256,int256)","c4d97470":"PeriodReset(uint256,uint256,uint256,uint256)","c4daa2a6":"roundFees(uint256)","c4dbf622":"buyPrice(uint256)","c4dc1556":"finalizeProposal()","c4dcad1d":"mining(address,uint256)","c4dd3b33":"checkUserSignature(address,string,uint32,string,string,bytes32,bytes32,uint8)","c4dd5acc":"isLastBadgeEle(uint256,uint256)","c4dddedd":"addressVerified(string)","c4ded499":"getActiveBetsAmount(address)","c4df310a":"isWithinTokenAllocLimit(uint256)","c4e11c91":"updateStats(uint256,uint256)","c4e12e1d":"updateMinVotedTokens(uint256)","c4e16b7d":"whitelistToken(address,uint256)","c4e1793f":"_onOverTimeBall(uint8,uint8,uint8,uint8,uint8[3][3][31])","c4e29e66":"getOrderHash(address,uint256,address,uint256,uint256,uint256,address)","c4e34d46":"lockBonusTokens(uint256,address,uint256)","c4e37095":"setSaleState(bool)","c4e3a63b":"firstPeriod()","c4e41b22":"getTotalSupply()","c4e5b7f2":"createAcceptAndPayFromBytes(bytes,address[],uint256[],uint256[])","c4e5fd83":"_safeTransferFromInternal(address,address,uint256,bytes)","c4e627c2":"maxTokenCount()","c4e6aaa6":"setLocationId(uint32)","c4e6c604":"otherAddress()","c4e7099f":"mockTime(uint32)","c4e71adc":"firstReleaseTime()","c4e7d14c":"MultiSender(uint256)","c4e85b63":"flushTokens()","c4e9311b":"bindJobWithBoard(uint256,uint256)","c4e98398":"SimpleRegistrar(bytes32,uint256)","c4e9e80b":"setAutoSell(uint256)","c4eaa978":"_price_token_ICO4()","c4eb2b3c":"putSaveData(address,address,string)","c4eb8ec2":"transfer_ether(address,uint256)","c4ecfbbe":"MonsterChampionship(address)","c4eeeeb9":"isReissuable(bytes32)","c4ef18fc":"setRentAuctionContractAddress(address)","c4ef92d3":"OmiseGOGold()","c4efa665":"decimalPrecision()","c4f06ba9":"makerOf(uint256)","c4f07cff":"getWithdrawTransactionIds(uint256,uint256,bool,bool)","c4f0a043":"BTCPrice()","c4f1215c":"maxGoalReachedAt()","c4f141ff":"setWeiPerCHF(uint256)","c4f14c9c":"restrict(address,address)","c4f1ce79":"clearCurPrize(address,uint256)","c4f2a64f":"blockWait()","c4f2a7af":"GeneScience(address)","c4f35d6c":"WithdrawalToken(uint256)","c4f363bf":"getVersionByte(uint256)","c4f3c097":"setBasicRate(uint256)","c4f54568":"blocktubeTag(string)","c4f5cd82":"firstAllocation()","c4f62031":"setPlayerPrice(uint256,uint256)","c4f7f1e2":"scaledRewardPerToken()","c4f8210e":"_safeTransfer(address,uint256)","c4f8adc7":"consul_nme()","c4f8b9fb":"testAdd(uint256,uint256,uint256)","c4f8f339":"getPercent4(address)","c4f95105":"showUnpayedPercent(address)","c4f987a5":"removeWorker(address)","c4f99aa5":"publicReservedAddress()","c4fa9c6b":"getReservedTokenDestinationList(address,bytes32)","c4faa950":"BrinkToken(uint256,string,uint8,string)","c4fbdaff":"gibLambos(uint256)","c4fc3a3b":"presaleTokenSupply()","c4fc89e1":"bubbled()","c4fce59a":"fourthExtendedBonusSalesEnds()","c4fd262a":"CrowdsaleStarted(uint256,uint256,uint256,uint256)","c4fda23e":"sellTokensIcoWithReferal(address)","c4fdc6b8":"pauseIco()","c4fe2675":"getProtoIdByTokenId(uint256)","c4fed7fb":"addHouseCredits(address,uint256)","c4ff3614":"Wallet(address[],uint256,uint256)","c5007227":"DTToken()","c500ea36":"userPendingCrateNumber(address)","c501024b":"setMinCutValue(uint256)","c5015018":"TEAM_MONTHLY()","c501b87f":"setCreditMcAddress(address)","c503101e":"setCanClaim(bool)","c503772d":"returnUint8(uint8)","c503a868":"getTeamFee(address)","c5043343":"tempSetWinner(uint256,address)","c5044b62":"isDescriptionFinalized()","c50497ae":"SUPPLY()","c50499db":"developer_string_contract_verified(string)","c504bfb8":"ColorsMain()","c50508de":"initialAuctionDuration()","c505c82c":"zxcSold()","c505ebce":"endRate()","c506adae":"migrateInvestorsFromHost(uint256)","c5072172":"justThrow()","c50853f5":"getNumPublications()","c50886ae":"test_ConsensysNotReached()","c508d8f2":"reederemPeriods(uint256)","c5096a69":"feeFor(address,address,uint256)","c509c262":"TokenManager()","c509db3b":"getverifytime(address)","c50aea06":"claimShares(uint256,uint256)","c50bb446":"getNeutralMutation(uint32)","c50bd2e4":"trancheDenominator()","c50be063":"myPlanetList(address,uint256)","c50be16c":"setPublicRelease(uint256)","c50c44cf":"getAuctionSeller(uint256)","c50c97d0":"changeStorage(address)","c50cb9ae":"transferComplex(address,uint256,uint256)","c50d725c":"DACToken()","c50d847e":"POSC()","c50ec10a":"repoAppId()","c50f197b":"charitySplitPercent()","c50f8274":"IWasFirstServiceToken()","c50ff563":"canSubAllocation(address,uint256)","c510187e":"vpfHash(bytes32,uint256,uint256)","c5104c3d":"minPurchaseAmt()","c5105bb5":"TotalEDUSupply()","c510c906":"getEventOutcomeNumeric(uint256,uint256)","c510da62":"getsell(uint256)","c510db20":"userCanStillBuyEth(address)","c510dfeb":"convertAddressFormat(address[8])","c510f746":"createElection(bytes32,bytes32[])","c51131fb":"canBeSet(bytes32)","c511a362":"TransferTargetToken(address,uint256)","c511b016":"SingularDTVToken(address,address,string,string,uint256)","c511ed5e":"closeMarket()","c51215df":"preSaleListTime()","c51226b3":"secondStageMintingDate()","c5129348":"See_price()","c512d1d1":"testCalculateItemId()","c5132a5c":"getCreateMarketDesignatedReporterAddressValue()","c5133802":"mintFraCoins(address,uint256)","c5135ba0":"fuckynum()","c513cde2":"KD1Token()","c513d596":"BountyAdded(bytes32,string)","c513f66e":"EMPTY_PARAM_HASH()","c51450ca":"getTokenIdAtIndex(uint256)","c514ff3f":"EasticoinToken(uint256,string,string)","c515205d":"getValue2()","c515627e":"depositEther(address,uint256,uint256,uint256)","c5160187":"mintStart4()","c5162e1a":"vendre(uint256)","c516358f":"bountyAddress()","c5179027":"team0Points()","c518123a":"financingPeriod()","c519099d":"teamAndFounders()","c519500e":"potSplit_(uint256)","c51a29e0":"getContractType()","c51be90f":"query_withGasLimit(uint256,string,string,uint256)","c51bf934":"CEILING()","c51cc592":"setTransferAllowance(bool)","c51cd5d6":"StarWarsRTscore()","c51cd6ad":"getLockAccount(address,uint256)","c51ce17b":"TelegaOut(address)","c51cf179":"calcBaseFeeForShares(uint256)","c51d16b6":"totalCollectedWei()","c51dc993":"expiryCheck(string)","c52046de":"isDeployed()","c5210e89":"ERC20Standard(uint256,string,uint256,string,bool)","c52141da":"checkSign(address)","c52164c6":"reputation()","c52173de":"xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)","c5231563":"addAddress(uint256,address)","c523d5dd":"setBlockPart(uint64,uint64,uint64,bytes32,bytes)","c523ef11":"VNDCash(uint256,string,uint8,string)","c5241e29":"removeWhitelisted()","c5242acb":"setWithdrawOwner(address)","c524645b":"getTimeBonusAmount(uint256)","c527018b":"jdalevsystemscoin()","c527326e":"PFOffer(address,address,bytes32,uint256,uint256,uint128)","c5277ddd":"isPublisherRegistered(address)","c5282f7a":"generateTokensForPresaleAccounts(address[])","c528fee7":"DRCToken()","c5292c67":"getStart()","c5292ed9":"calculateEggSell(uint256,uint256)","c52987cf":"strikePrice()","c529b80b":"transferWithData(address,uint256,bytes32)","c52ab778":"execute(address,uint256,uint256)","c52adfda":"BobsNVag()","c52bd836":"setDappOwner(bytes32,address)","c52c936c":"removeByIdx(uint256[],uint256)","c52cb003":"OwnerDistribSupply_()","c52cde58":"getRedeemableTokensVoter(bytes32,address)","c52e40d0":"totalWeiExpected()","c52f02ce":"BLS_PRE_ICO()","c52f9fa6":"PartialOwnershipCrowdsale(uint256)","c5312191":"WeiController(address,address,address,uint256,bool)","c531c245":"exists(int256)","c531d52b":"STRUTToken()","c5337992":"setBossHPDefault(uint256)","c5337ed4":"random2()","c5339132":"lastPlayed()","c533fc68":"getLockAccInfo(address)","c5340dcd":"received_wei_with_bonus()","c53467cf":"releasePublicPresaleBonusTokens(address[],uint256)","c5346fb1":"approve_coin(string,bool)","c534ba4b":"destroyBlacklistedTokens(address,uint256)","c5350345":"Magexbit()","c535165f":"revealAndPayout(bytes,bytes)","c5364bc3":"GetChallengeWeightedVolumes(uint256)","c536c952":"getDsitribute(address,uint256)","c536ed5f":"buyDmlCoin(address)","c537a210":"principalOutstanding()","c537f954":"adjustDeployRange(uint256,uint256,uint256)","c53833fe":"getLastContract()","c539607c":"get_internal_block_number()","c53a0292":"increaseNonce()","c53abe29":"tokenOnlyDeploymentCost()","c53ad76f":"Kardashian()","c53adaff":"SingularDTVWorkshop()","c53b12f9":"myEthBalanceOf()","c53b9c04":"maxTimeRemain()","c53bafbb":"setPriceOf(string,string,address)","c53c2556":"getTokenIdFrombBPhash(string)","c53c614d":"canBeWhitelisted(string)","c53ce034":"totalDraw()","c53d6ce1":"getAllBalances(address)","c53d8483":"getActualTotalTokens()","c53dbf82":"disclosureAdded(uint256,bytes32,bytes32,bytes32,bytes16,bytes1,bytes16,bytes32,bytes32)","c53df200":"getArrUintField1()","c53df937":"unshareService(bytes32,address)","c53e4387":"IHODLToken()","c53ee3a5":"_setInitialCardPrice(uint128)","c53f926b":"setByuoutActive(bool)","c53fc65f":"tokensDevelopers()","c53ffe66":"KillerWhale()","c5401559":"setQuantityAdminOnly(uint256,uint256)","c5405f17":"registerUserBonus(address,address,address)","c540f903":"DeployRelay()","c540fb66":"updateBuyNum(bytes32,uint8)","c54110d6":"AcceptsNASDAQ(address)","c54117ac":"REDGILL()","c541783c":"getLockedBalanceOf(address,address)","c541a5bd":"revertAML(address)","c5426124":"getStar(uint256)","c542675e":"fus(uint256)","c54397a4":"changeAffiliate(address,uint256)","c543ae53":"evaluateArea(address,uint8,uint256)","c543b427":"IntegrationOfCredit()","c543c922":"devWithdraw(uint256)","c54421ae":"teamTokensNotDistributed()","c5442f7d":"getRandom(uint16,uint8,address)","c5444ff9":"buyTokens(address,uint128,uint256)","c544682b":"rewardForBurn(uint256)","c544f8d9":"EventRemoveFromBattle(address,uint64)","c5454d11":"Finalize()","c545c09d":"calculatePrice(uint256,uint256,uint256,address)","c5460e71":"getReleasableAmount(uint256,address)","c5465a23":"votingstage()","c546a92e":"testTransferTokensUsingRawCall()","c54704e6":"setLockStartTime(uint256)","c547092b":"setMilestone(uint256)","c547af82":"_totalVouchersSupply()","c547d8f1":"totalWeiAmountSale3()","c547e14d":"setHatchDurationByTimes(uint32[])","c54837a4":"extinguish()","c5487661":"proxyTransferToICAPWithReference(bytes32,uint256,string)","c5494b82":"SCH()","c5498e4e":"setTeamAndAdvisorAndAirdropAddresses(address,address,address)","c54996b7":"refundBond(uint256,address)","c549e4e9":"sellPriceAt(uint256)","c549e6b9":"DAYS()","c549e7a0":"ManualTokenMintRequiresRefund(address,uint256)","c54a068c":"getCurrentRateInternal()","c54a0980":"Total_Entries()","c54b25b0":"claimCancelled(uint16,address)","c54b5658":"toAddress(bytes,bytes,uint256)","c54c80eb":"RxPharma()","c54cd39c":"getSandwichInfoCaloriesPrice(uint256)","c54d59a1":"snt_claimed(address)","c54d8609":"setCoOwner2(address)","c54e73e3":"setPresale(bool)","c54e91c6":"currentPart(address,address)","c54f050c":"_createOrder(address,address,uint256,address,uint256,uint256,uint256)","c54f3409":"getGameEnd(address,uint256)","c54f5344":"OfficialWalletAddr()","c5503e89":"allocateTokensInternally(uint256)","c5505235":"toEther(uint256,uint256,uint256)","c5526d16":"setCrowdsaleWallet(address)","c5530077":"wildcards(uint16)","c55374d0":"oraclizeDelay()","c55425e6":"TotalOwnerSupply()","c5543b22":"powerDayPerPersonCapInWei()","c5546ecd":"transferTokensToParticipants(uint256,uint256,uint256,uint256,address)","c5549cc0":"minDeadline()","c554a600":"initTokenPorter(address,address)","c5566dac":"getNumberOfCourse()","c5575ef0":"checkTransferFrom(address,address,uint256)","c557b985":"icon()","c557d29c":"ByteLocker()","c557e552":"_getWager(address)","c558ae6b":"Airdrop(address[],uint256[])","c5590033":"setStatus(string,string)","c5592be2":"addContract(string,address,address)","c559743a":"included(address)","c559c395":"bitwordsCutOutof100()","c55a02a0":"SNT()","c55b6bb7":"setAdmin(address,address)","c55c1cb6":"queryN_withGasLimit(uint256,string,bytes,uint256)","c55c4115":"FEE_CHARGER_DENOMINATOR()","c55c4f47":"isCrowdsaleSuccessful()","c55d0f56":"getCurrentPrice(uint256)","c55d34d4":"airdropGW()","c55dae63":"baseToken()","c55dd86a":"isLegalPlayer(bytes32,address,address)","c55e0eaa":"bonusPeriodDurationInHours()","c55e4645":"LETOCoins()","c55ed894":"withdraw_to_owner()","c55ee28c":"nextSession()","c55f1f42":"timeLockSend(address,address,uint256,bytes)","c55f3b4c":"GetInventory(address,uint256)","c55f60dc":"checkAndUpdateLimit(uint256)","c55fb39f":"SAFE_PERIOD()","c5620ded":"LogBuy(address,uint256,uint256,uint256)","c56351cd":"createCrowdsale(address,uint32,uint256,address,uint8,address,address)","c5639ed2":"SUB(uint256,uint256)","c56551b6":"pos()","c56597ba":"_v2()","c565eba6":"isRoundTwoSalePeriod(uint256)","c566d43c":"registerPlayer(address,bytes32)","c5671148":"mul64()","c567cd26":"updateStudent(string,bytes32,string)","c567e43a":"show_me_the_money()","c567f304":"approveAddReserveData(uint256)","c5682244":"changeTickPrice(uint256)","c56893fb":"getLockerCount()","c5689e7d":"deWhiteListContract(address)","c56935e2":"showJackpotNextRd()","c5699ac2":"canRestoreUnsoldTokens()","c5699d68":"_compare(int256,bytes,int256)","c569bae0":"right93(uint256)","c569fb36":"setDepositPool(address)","c56a0ffe":"summDevelopers()","c56a3e88":"isManager()","c56af732":"CannabanC()","c56b2dc2":"upgradePony(uint256,uint256,bytes)","c56b4294":"_initialMint()","c56bbda4":"isTransferApprove(uint256)","c56bea64":"setBlacklistedUser(address)","c56c89a2":"ChendeWorld()","c56cf2b2":"getAllSaleAnimals()","c56d0d67":"tokensSoldWhitelist()","c56e3849":"Versioned(string)","c56e610e":"getEscrowBalance()","c56ecdfa":"_isOne(address)","c56ef049":"execBuyBack(uint256)","c56f1578":"UzairToken()","c56fc9c1":"PreSaleDistributed()","c570e952":"CustomPOAToken(string,string,address,address,uint256,uint256,uint256)","c5715483":"bonusMinContribution()","c571627b":"ChangeMainWallet(address)","c572652b":"distributeWithLockup(address,uint256,uint256,uint256,uint256)","c572ca10":"TokenProcurement(address,address,uint256,uint256)","c572dcc3":"getFreeMiner()","c572e9cb":"_decodeBuyData(bytes)","c57380a2":"getControllerAddress()","c573902d":"getInfoPanel()","c573e6bd":"distributeIfNeeded(address,uint256)","c57443fa":"ZRX_EXCHANGE_ADDR()","c574a53c":"addJurisdiction(bytes32[],bool[])","c574d156":"getGameBalance()","c575200d":"setPropertyBecomePublicEarnUntil(uint16,uint256,uint256)","c575c238":"sendToken(address)","c57679fc":"recipientMIT()","c5774a3f":"seedAmount()","c5787fa3":"picops_identity(address,uint256)","c578b2f4":"getTransformTarget_default()","c578f2c8":"SetCityName(address,bytes32)","c5793979":"sendCheck(address,uint256,bytes32)","c57949e2":"AllowanceLedger(address,address)","c57981b5":"FEE()","c57a050e":"fairandeasy()","c57a4a4d":"TOKEN_PUBLIC_SALE_CAP()","c57a8825":"updateRegistryAddress(address)","c57a99e5":"testFailRetractLatestRevisionEnforceRevisions()","c57c3bbd":"addLockProduct(uint32,uint32,uint32,bool)","c57c5f60":"initMultiowned(address[],uint256)","c57c7b62":"mktIssue(address,uint256)","c57d3fb7":"setReFundAddress(address)","c57d5fe9":"addToBalance(address,address,uint256)","c57dead7":"betsLost()","c57fbf90":"tokenRate(address)","c58068d8":"getIdFromStr(string)","c5809312":"setLLV_edit_28(string)","c58156e0":"removeAllocation(address)","c58343ef":"getRequest(uint256)","c5837713":"a_empresa(bytes5)","c583bb53":"RYNO()","c5854113":"MilestonesFactory(address)","c58580aa":"icoAddress1()","c585bb93":"registerAssetProxy(address)","c585de64":"Rate3()","c58684ab":"setPauseEmergence()","c5868754":"is_signed()","c587e3d6":"totalRised()","c587f93e":"softCapCountDownTimer()","c588415e":"phase4EndBlock()","c588953e":"enddate()","c588ba1b":"getLowestGameWithoutQuorum()","c588cabd":"firstBonusPercent()","c5893a8e":"OnPreSaleBuyerCompensated(address,uint256)","c589f1f3":"transferEthersToDao(uint256)","c58a3321":"setAccessControl(address,address,uint8,bool)","c58a34cc":"setTimeout(uint256)","c58a6ce8":"sendPayment(uint256,address)","c58aaae6":"selfDestructBeneficiary()","c58b54ef":"getAssetAttributes(uint256)","c58cc060":"firstBuyers()","c58ce220":"setDeveloper(string)","c58d0be0":"getCompetitionStatusOfRegistrants()","c58d96a5":"whiteListERC223(address)","c58f2f49":"hashTypes(uint8)","c58f520f":"sharingPool()","c5907a34":"Kanicoin()","c590c994":"unfreezeCount()","c5917695":"KevCoin()","c591b3ca":"itemCanVote(address,uint256)","c591c8a3":"getAllJinglesOnSale()","c59255dc":"changeMilestone(uint8,uint256,uint256,uint256)","c592c3ba":"addAmountBoughtAsMember(address,uint256)","c5933658":"registerEmailAddress(address,string)","c59361b9":"getInsurance(address,uint256)","c593dfbf":"queryDataFromId(address,uint256)","c5944f30":"Token(address,uint256)","c5947cd6":"getReportingState()","c594a12d":"areadjacent(uint16,uint16)","c59513a4":"updateMyTimeMintBalance()","c5958bda":"removeFile(bytes)","c595fee6":"adminWithdrawEther()","c5960c29":"buyKeyByAddr(address)","c59671a7":"set_dni(uint256)","c5980b07":"getDRSCoinDividend(uint256)","c5981892":"buyTokensCrowdsale(address)","c59981cd":"edit(uint256,uint256,uint8,uint8,uint8,uint8,string)","c599b77f":"setUserGroup(address,address)","c599d58f":"MAX_NUM_PAYOUT_ATTEMPTS()","c59a9428":"transferTreasurership(address)","c59acae4":"lrcWithdrawn()","c59b2e20":"NEVA()","c59b5562":"buyICO()","c59c1144":"setDefaultKey(address,address,uint8,bytes32,bytes32)","c59d278e":"vehicleDatesByCity(bytes32)","c59d4847":"getStats()","c59d55ad":"releaseTransfer(bytes32,uint8,bytes32,bytes32)","c59d5633":"getPurchasePrice(uint256)","c59d6abe":"getAngelClaims(uint64)","c59e0b87":"setSecondWalletPercent(uint256)","c59e5729":"upAd(uint256)","c59ea269":"snowflakeBalance(string)","c59ee1dc":"raisedAmount()","c59f3a7c":"getConditionsState()","c59f6983":"editMaxItems(uint8)","c59f83cf":"_getNftContract(address)","c5a0a555":"setImageRegionId(uint256,uint256)","c5a0ca8f":"init(address[],uint256[],uint256,address)","c5a0d1c7":"percentageQuarter1()","c5a104d9":"ln_fixed3(uint256,uint256)","c5a1d7f0":"metadataHash()","c5a2d352":"publish(uint256,bytes32)","c5a369b4":"addAddressDescription(string)","c5a46ee6":"value(uint256)","c5a4eb35":"initialPricePaid(uint256)","c5a55152":"distributeRewards(address[])","c5a60ddb":"payout(bytes32,uint256,uint256)","c5a6732b":"_isChallengerAttackFirst(uint256,uint256)","c5a796ac":"set_address_Arina(address,address)","c5a83c2b":"countAssets()","c5a88559":"getWithdrawNum()","c5a8a2ab":"changeStatus(uint256,uint8)","c5a8d421":"RocketFuelToken()","c5a9833e":"trusteeVaultAddr()","c5a988c9":"extendPreSalesPeriodWith(uint256)","c5aa0f17":"setNewJackpot(uint256,uint256,address)","c5aad3be":"getStackPtr()","c5ab4602":"updateBalance(address,address,uint256,bool)","c5ac124d":"cashToEth()","c5ac8a4d":"leftSharePrice()","c5aca3b2":"NYXDecentralizedIdentificationRequest(string,string)","c5ace443":"priceFeedSource()","c5ad94a9":"addressSharesCount(address)","c5ae6e0e":"Kernal()","c5ae7570":"getSaleFinancialData()","c5af3808":"setJntBeneficiary(address)","c5af9000":"Convert()","c5afc0a5":"BonusAllocation(address,string,uint256)","c5afce8b":"ensureInAccountList(address)","c5b045eb":"secondRoundPercent()","c5b05616":"TokenAuction()","c5b15057":"updateSettlementStatus(bool)","c5b15caf":"CIBOS()","c5b1a53c":"deposit(bytes16[],uint64)","c5b1d9aa":"newRound()","c5b1e789":"Unset(string,address)","c5b2333c":"set_status_user(address,address,bool,bool)","c5b2429d":"periodPreITO_tokenPriceUSD()","c5b35556":"bixToken()","c5b3a429":"PresaleStartTimeChanged(uint256)","c5b417ec":"buyPlot(uint256,uint256)","c5b43c39":"CypherX()","c5b53a34":"_setAuthorizedPower(uint256)","c5b748c0":"redemptionPrice()","c5b7589c":"startMiniGame()","c5b7be81":"TruckingCoin()","c5b7c51b":"participateEvent(address)","c5b7f5bf":"presale_eth_fund()","c5b85eb8":"UBSI()","c5b8d7a1":"cyclesStartFrom()","c5b8f772":"isOwnerOf(address,uint256)","c5b930f9":"singletonHash(bytes32)","c5b9cdf8":"SMARTCCCoin()","c5bac421":"pruneInvestors(uint256,uint256)","c5bafbc4":"eosDACToken()","c5bb8af4":"IMDEXsetInactivityReleasePeriod(uint256)","c5bcc4f1":"parentSnapShotBlock()","c5bd8456":"TakeOffWorldWide()","c5bd9089":"redeemCoupons(uint256)","c5bdbd70":"multDenominator()","c5be7a77":"_shareDevCut(uint256)","c5bef690":"_escrowIndex()","c5bef74e":"getHash1(address,uint256,address,uint256,uint256,uint256)","c5bf2249":"wallet(bytes)","c5bf339c":"getLastNonPublished()","c5bfa9d9":"getUserBalanceOnEther(address)","c5bfd5dd":"TokenDrop()","c5bfef39":"initCountry(uint256,uint256)","c5c00ac6":"needVerified()","c5c01169":"checkFrozenAccounts(address)","c5c03af3":"_mode()","c5c09b20":"TestRecover(uint256,uint256,uint8,bytes32,bytes32)","c5c0b859":"pauseMaster()","c5c0db08":"whom()","c5c187f5":"LogApproval(address,address,uint256)","c5c2f6e0":"getTopPlayerScores(uint256)","c5c4412d":"CleanBankerRound(uint8)","c5c4744c":"totalRaised()","c5c5135c":"crystalPrice()","c5c56740":"ROBIET()","c5c593e1":"openGameResultAndNewGame(uint256,uint256,uint256,string,bytes32)","c5c680f3":"testUser()","c5c6b12a":"isInvestorInWhitelist(address)","c5c715e4":"approveBatch(address[],uint256[])","c5c72bf4":"sayAnything(string)","c5c7681f":"Main(address)","c5c78258":"YoloTokenPresaleRound2(uint256,uint256,uint256,uint256,address,address)","c5c80103":"listFaceToFaceAttendants()","c5c8015b":"isNotContract(address)","c5c872ae":"transferFromRobot(address,address,uint256)","c5c87db4":"reinvestReturns(uint256,address)","c5c8a08a":"getExpirationTimeFromAddress(address)","c5c925e2":"StoreRegistry()","c5c93bdc":"Birth(uint256,uint256,uint256)","c5c95c55":"QuantityUnit()","c5c9e3be":"setPreparationPeriodTrainingFeeMultiplier(uint256)","c5c9f617":"walletE()","c5cac386":"Questions()","c5cc52fc":"Indemnisation_5()","c5ccebd3":"smallerPriceComparator(uint256,uint256)","c5cd3bec":"getRevisionTimestamp(bytes20,uint256)","c5cd88db":"missingFundsToEndAuction()","c5ce3911":"productId()","c5cf8c7e":"getCurrentHighscore()","c5d03fc0":"OftenChainToken()","c5d0c68b":"addMaster(uint32,string,string,string,uint8,uint8,uint8,uint8,uint8,uint16,uint64,uint64)","c5d14955":"phase_2_token_price()","c5d22e94":"MAX_TOTAL_AMOUNT_TO_RECEIVE_ETH()","c5d2577c":"newTransfer(bool,address,address,uint256,uint256,uint256)","c5d290d0":"RUNtoken(uint256,string,string)","c5d39a33":"isEating(address)","c5d456d6":"moves(address,uint256,uint256)","c5d46dfc":"computeScore(address)","c5d51586":"loser(address)","c5d5997c":"changeSubUser(address,address)","c5d61ad0":"newGame(uint256,bool,uint256)","c5d65d1a":"approveSponsorableJob(uint256)","c5d6a7f1":"GreatcoinERC20Token()","c5d6c75d":"PunchClock()","c5d7802e":"z()","c5d7dd0a":"Blockcash(string,string,uint256,uint256)","c5d81804":"mintSBIToken(address,uint256)","c5d83794":"setDesign(uint256,string)","c5d8adcb":"EventProduct(uint32,string,uint32,uint32,uint32,uint32,uint32,uint256,uint256,uint256)","c5d953a3":"setCurrentMarketRate(uint256)","c5d9ada3":"IANToken()","c5d9c762":"set_pre_kyc_iconiq_bonus_denominator(address,uint256)","c5dacf68":"getOwnerEth()","c5db22da":"lastBlock(uint64)","c5dba811":"doRandom(address[],address,uint256)","c5dc6b55":"getAccountBonus(address,address)","c5dce83d":"changeAPTController(address)","c5ddb614":"BlockFundIncubatorToken()","c5ddba02":"startDate1()","c5decd37":"ico3Raise()","c5df27ef":"ETHcap()","c5e08ba9":"get_oo_of(address)","c5e12813":"burnAllInvestorTokens(address)","c5e290cd":"_editInfoImpl(string)","c5e2a7db":"updateMetadata(address)","c5e2f418":"disableChanges()","c5e35f42":"Gentingchain(uint256,string,string)","c5e36b7e":"lockMana(uint256)","c5e3adf5":"nFund()","c5e3b1a6":"reclaimOwnership(string,string,bytes32)","c5e3e3f3":"s21(bytes1)","c5e412e5":"createSaleContract(address,uint256,uint256,bool)","c5e42338":"getIncreaseTotalStakeCalled()","c5e4594f":"multiline(uint256,uint256,uint256,bytes32)","c5e634e4":"transferAuditTokens(address,uint256)","c5e7b4fe":"setupPreIco(uint256,uint256)","c5e8b864":"hasEnoughBST(address,address,address)","c5e951a4":"agentOrdersOf(uint256,uint256)","c5e974ed":"transferToken(bytes32,address,address,uint256)","c5e98a4c":"updateIncentiveTokenLimit(uint256)","c5e991a8":"ThirdEtherLimit()","c5ea01c9":"testF2(uint256)","c5ea0b4a":"buySquare(uint8,uint256,address)","c5ea3c65":"maxId()","c5ea6256":"enableSecureMode()","c5ea8e1d":"RefUpdate(string,uint256,uint256,uint256)","c5eab684":"calculateDividends(uint256,uint256)","c5eaccfd":"whitelistAddrAndBuyTokens(address,uint256)","c5ebeaec":"borrow(uint256)","c5ec05fd":"scheduleSale(uint256,uint256)","c5ec365f":"guideInvestmentAttractedShareToPay()","c5ecfc61":"getEscrowDeposit(string)","c5ed7162":"firstPresaleStart()","c5ed8c99":"canCollect(uint256)","c5edd450":"payFor(uint256)","c5ee5688":"setCompte_25(string)","c5ef4c3e":"set(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","c5efaa11":"calculateValue(int256,uint64)","c5efaae8":"buyCredits(address,uint256)","c5efea68":"getAdminStatus(address)","c5f0d3d6":"geneKind()","c5f310c0":"register(bytes12)","c5f39cd7":"rateSecondTier()","c5f40edd":"discountedDealAmount()","c5f4b3da":"RewardPoolAmount()","c5f4c98b":"changeDiscountStep(uint256)","c5f5ce21":"advisorTokenWallet()","c5f60620":"expectedTokens(uint256,bool)","c5f70682":"setByuoutCount(uint256)","c5f713cf":"push(uint256,bool)","c5f7ed63":"NeckCoin()","c5f913fe":"callExitFromUnknownContract(address)","c5f956af":"treasuryAddress()","c5f98a3f":"mega()","c5fa1924":"MMS()","c5fbe723":"result_payto()","c5fc43cb":"Newera()","c5fc98c9":"TOKEN_THIRD_DISCOUNT_MULTIPLIER()","c5feaf60":"PRE_SALE_START_1()","c5fee757":"executeOrder2(uint256)","c5ff2069":"MooTokenSale()","c5ff2222":"playNo()","c600e1dc":"getProfit(address)","c6011633":"setRateFees(uint256,uint256)","c6017a25":"playerRoll(uint256,address)","c601b7f8":"icoPhase1Start()","c60211ee":"MineFinished()","c6028cf3":"nextSaleStage()","c6029e7b":"sendBPESOTokenToMultiAddr(address[],uint256[])","c603a4e3":"getTotalHP(uint256,uint256,uint256,int256)","c603ae14":"jockeyFS(uint256)","c603bd7d":"_executeOrder(address,uint256,uint256,bytes,int256)","c603c97b":"NewPiedPiperCoin(string,string,uint8,uint256)","c6041333":"calculateKnowledgeBuySimple(uint256)","c6046f77":"mintAndTransfer(address,uint256,bytes)","c6049946":"saleExchangeRate1()","c604bec9":"hasExtension(address)","c604e967":"delFilter(uint256)","c605f76c":"helloWorld()","c6062bc3":"sellerRefund(uint256,address)","c60778cf":"RefundRequest(uint256,address,uint256)","c6080b3f":"KiDhon()","c60880e0":"Aster()","c609ab26":"setImageCurrentRegionId(uint256,uint256)","c60aa10d":"newForgeCon(address)","c60b099f":"removeRate(uint256,uint256)","c60b7784":"queryEOSCrowdsaleKey(address,address)","c60bdc7f":"setUsersContract(address)","c60c13a3":"blockAccountFunds(address,uint256)","c60c3aca":"callFor(address,uint256,uint256,bytes)","c60cae29":"changePeriodTime(uint256,uint256)","c60ccb0e":"takerBuyAsset()","c60ce271":"findNextMinute(uint256,bytes)","c60ced1b":"LetsGoChain(string,string,uint256,uint256,uint256,uint256,uint256,uint256)","c60f56b2":"totalAcorns()","c60f6462":"resetRick()","c610bb07":"tranfer(address,uint256)","c6113205":"getTokenByIndex(bytes32,string,uint256)","c6114aaf":"updateIPOPrice(uint256)","c6117d37":"xactionFeeShare()","c611ded7":"reserveTokensAddress()","c6129a5a":"GetVersion()","c612cc4e":"compareDatesWithoutTime(uint256,uint256)","c613089f":"getBetsEvenAndODD(uint256)","c6132eb3":"timeBetweenRewards()","c6137977":"eliminateSmartContractByteCode()","c614b522":"getAllInvestmentPackageIds()","c614da67":"free(bytes12)","c615365f":"EthBetter()","c6159a35":"icoTransfer(address,uint256)","c6169e1f":"maxTournamentContenders()","c616f412":"totalQuantity()","c6178a65":"soldTokensSale()","c617fe6e":"_setAllowance(address,address,uint256)","c6180d27":"silverBoxPrice()","c618210a":"crowdsalepricing(address,uint256,uint256)","c618a1e4":"volume()","c618d15f":"ConvertNumbers(bytes5)","c6195d03":"ONE_DECIMAL_QUANTUM_ABC_TOKEN_PRICE()","c6195d36":"setConfig(address,uint256)","c6199b6d":"getCustomerServiceAddress()","c619bbd3":"GetPower()","c61b06ae":"collectibleIndexToOwner(uint256)","c61b8a44":"rewardGenerationComplete()","c61c3c4b":"buyPackWithETH(bool)","c61e42ae":"mint(uint256,int256)","c61e5be6":"cardSetsInCirculation(uint256)","c61ea7a3":"CrowdfundableToken(uint256,string,string,uint8)","c61efde6":"MsgEngine(uint8)","c61f1103":"foundersTimelock2()","c61f13a1":"setWitdrawGas(uint256)","c61f3a2c":"drpToken()","c61fb3f1":"Moon()","c62072d2":"nfo_transaction(uint256,uint256,address,address,bytes32)","c620b5fe":"isDaySecond()","c620ecc7":"KYCTeam()","c62122eb":"AmberToken()","c621f96e":"deleteDIDHolder(address)","c6220fbd":"dividendDistributionStartTime()","c6221878":"projectCompleted()","c6224757":"issueTreasury(address,address,address)","c622afb0":"getInsertPointForNumTokens(address,uint256)","c6235f8d":"delMarketMaker(address,address)","c623674f":"ipfsHash()","c6236a5c":"scheduleCall(bytes,uint256,uint256,uint8,uint256)","c6240303":"SetAuxOwner(address)","c6253f14":"XXXXXXXX08(uint256)","c625bd27":"transferFromBRXPay(address,address,uint256)","c625e9b1":"buyTokens(uint256,address)","c62631a5":"LicensingToken()","c62662f2":"setTotalCapitalization(uint256)","c6266693":"setCoreContract(address)","c626c52e":"isGame(address)","c6279ab1":"voteClose()","c627d0f8":"setCampaign(uint256,uint256)","c628ddc3":"TAIL()","c629061d":"external_oraclize_randomDS_proofVerify(bytes,bytes32,bytes,string)","c6291223":"fundTransferWithin(address,address,uint256)","c629cdf4":"collectPayout()","c629e770":"donorList()","c62aa67d":"getNodeId(bytes32)","c62c5fda":"setIcoFirstWeekRate(uint256)","c62cfa1d":"getMyNote(uint64)","c62d7407":"frozenOf()","c62dcd5b":"getSentTransactions()","c62dee76":"HumanBlockToken()","c62eac5c":"create(address,uint256,bytes32,int256)","c62fae5d":"getValueInfo(address)","c63012a1":"setHashPiture(uint256,bytes32)","c630f92b":"canEnterPool()","c630f96b":"ZToken(uint256,string,uint8,string)","c6314bf9":"companyAllocation()","c6317f37":"Token_Saled()","c631b292":"closeVoting()","c631e758":"clearRole(address)","c6321979":"buyTokenPack(uint256)","c632e654":"_takeRdFee(uint256)","c633084f":"sendGreeting(address,string)","c6335b26":"startInvasion(uint256,uint256[])","c633eb24":"generateReserve()","c63445f3":"setFeePool(uint256)","c634d032":"mintToken(uint256)","c634fd83":"adminSetDefaultFee(uint256,uint256)","c63545e9":"developer_edit_text_fees(string)","c6354bc0":"addCountries()","c6357b54":"impl_forging(address,uint256,uint256)","c635a9f2":"MinimumDeposit()","c635bf38":"keyGt(bytes32,bytes32)","c635d65e":"StandardToken(address,string,string,uint8,uint256,bool)","c6361267":"mintOneWeek()","c6366ce9":"TOTAL_ICO_CAP()","c636813e":"disapproveSingleUser(address)","c63755e1":"transferPresale(address,uint256)","c6381649":"getChats()","c6384071":"voteCount()","c638529f":"SetProvider()","c6388e6f":"_AtlantisToken()","c6393e62":"migrationSetBoard(bytes32,bytes32,string,uint8,address)","c63998ed":"updateUnitsOneEthCanBuy(uint256)","c6399fc7":"_setItemNotForSale(uint256)","c63a4e05":"getCartLength()","c63c1a27":"calcFight(uint64,uint64,uint256,uint256)","c63ccb3b":"Discount()","c63d04df":"BonusReferred(address,address,uint256,uint256)","c63d99db":"auctionName()","c63e2ebc":"setRoundStart(uint256,uint256)","c63e529b":"buy(string,string)","c63ebcbb":"claimedUnits()","c63f49ab":"LuckyDice()","c63fdcc7":"claimPayment(uint256)","c63ff8dd":"claim(bytes)","c64012a6":"CoinSent(uint256,address,string)","c640487d":"_changeLogicContractAddress(address)","c640752d":"update(address,address)","c641aaca":"addPrivateSaleEndDate(uint256)","c6427474":"submitTransaction(address,uint256,bytes)","c642b103":"treasuryTimelockAddress()","c642f094":"MOT()","c6430e29":"get_firstbytes(address)","c6434660":"isTakePermitted(uint256,uint256,uint256,address,address,uint256,uint256,address)","c643872e":"paymentTo(uint256,bytes,address)","c6440b3e":"sub(uint32,uint32)","c64572b8":"minimalPriceUSD()","c645ecc4":"handleReturnBytes32()","c6461625":"setIV_R4(uint256)","c64743d5":"BlockMined()","c6476fe9":"isMinimumInEther()","c647b20e":"setTaxes(uint256,uint256)","c647c3d9":"t_1st_StageEnd()","c648843a":"current_week()","c6490835":"total_tokens()","c64a2358":"_targetBlock()","c64a3239":"updateExec(address)","c64aace0":"airdropConjured()","c64bf22d":"SummerGreen()","c64bf32f":"distribute_token()","c64d73c6":"JCoin()","c64e03a2":"FAPcoin()","c64e08a0":"CampaignPausd(uint256)","c64e8bc0":"executeN(uint256)","c64f28c8":"createImage(address,uint256,uint16,uint16,uint16,uint16)","c64f9490":"updateAccessoryLock(uint64,bool)","c64fa2e4":"totalDividendShares()","c64fbbce":"_calcRemainingRoundTime()","c65025f8":"isSmartSharingEnded(bytes32)","c6502da8":"basePayment()","c6512a33":"CNC(uint256,string,uint8,string)","c6544e5c":"icoSpecConfirmed()","c6548076":"isUserBlacklisted(address,address)","c65538ec":"afterSTEDistributed()","c655d7aa":"recoverAddress(bytes32,bytes)","c655fd2c":"setSlowDump(uint256)","c6560856":"currentJackpotInWei()","c6567835":"changeVaultWallet(address)","c6570e67":"contractorTransfer_Scoupon(address,uint256)","c65799a4":"ReturnRequested(address,address)","c6580352":"HeroTrained(uint256,address,uint256,uint256,uint256,uint256,uint256,bool,uint256)","c65808b9":"getSpell(uint32)","c6585a27":"updateNotaireAddress(address)","c659ce2b":"setBountyAddress(address)","c659d443":"url(bytes32)","c659dceb":"is_verified()","c65a0fdf":"updatePixelIndex(uint16,uint16)","c65a4068":"_multisig(bytes32,uint256)","c65ac542":"saleUnpause()","c65ad85c":"isReadyToStart(bytes32)","c65b125f":"setContestContractAddress(address,address)","c65b490e":"getBabyMakinPrice(uint256)","c65c6eae":"getReadableContribution()","c65c9567":"gameResult(uint256,uint256)","c65ccc07":"setLtdParams(uint256,uint256,uint256)","c65cec32":"refundTokenToCustomer(address,address,uint256,address)","c65d15b9":"reference()","c65daea0":"allocated6Months()","c65fb380":"isSet()","c6601270":"getMyIceDragon()","c660477b":"GetData(uint256)","c6610dec":"owner_share()","c661deb4":"issueHardcapToken(address,address,uint256)","c661ee4d":"proofAddr()","c661fed3":"isAdvisor(address)","c6620580":"presale_tokens()","c6634ef5":"certify(uint256)","c6638df9":"LogTemplateCreated(address,address,string)","c66485b2":"setDefaultResolver(address)","c6653041":"ParticipantRegistry()","c666c798":"setExtendedTokenCap(uint256)","c6677519":"executeSettingsChange(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","c667ab20":"setFundsRegistry(address)","c6685617":"record(address,uint256)","c6688445":"stringToSignExample()","c668dfd7":"doAirdrop(address,address[],uint256)","c668ee3d":"operatingFundAddress()","c668f71b":"exchFee()","c6699ba8":"addPayTable(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint16)","c669c955":"incentivesIn(address[],uint256[])","c66a431d":"addContract(bytes32,bytes32,bytes32,bytes32,address,bytes32)","c66aaf0f":"sucessor()","c66bd6aa":"updateEthICOThresholds(uint256,uint256,uint256,uint256,uint256)","c66c2536":"doTransferOut(address,address,uint256)","c66c67e9":"setReservedTokensPercent(uint256)","c66e4095":"icoContract()","c66e9260":"ESCCrowdsale()","c66ed8f7":"lockGenesisImports()","c6702187":"CLAIM_SIGNER_KEY()","c6705a00":"signupUsersManually(address)","c6711049":"withdrawTokenManually(uint256)","c67117f5":"InvEnterpriseAddr()","c67146a5":"check_bet(uint256,address,uint8)","c6715f81":"left44(uint256)","c6716590":"DovieBarMitzvah()","c67410fb":"getOwnersLoan(address)","c67415f3":"mineCrystals(uint256)","c674e0c9":"setSmartContractStatus(uint8)","c67685a9":"turnOffCanUpdateDeveloperMiningPower()","c67747a5":"bitGuildAddress()","c6776239":"BitPropertyToken()","c677b207":"addElectedMember(address,string)","c6786e5a":"destroy(address[])","c678ca19":"comfirmIsses(uint256)","c678e618":"sendDividend()","c679580e":"isModuleHandler(address)","c6795b45":"bonusPatterns(uint256)","c67979a5":"PakistanRupee()","c6798033":"dedicatedProxyAddress()","c67acceb":"firstStageEndsAt()","c67b099f":"createWildcard(string,uint256,uint16)","c67b599a":"presaleMinPurchase()","c67bbc24":"getVolume()","c67c6eab":"stopCrowdSale()","c67ce6f5":"FlightDelayNewPolicy(address)","c67d376d":"getClosedCandidates()","c67e43c1":"setExpectedEnd(uint256)","c67f3ba3":"GanLiXia()","c67f3e1f":"totalDistributedinWei()","c67f7df5":"getDepositsCount(address)","c6803622":"wasCalled()","c68098d9":"personalCapEndAt()","c6814aa2":"copyPaper(address,uint256)","c681d68d":"badgeBalanceOf(address)","c68218d1":"setStrF1F2F3(string,string,string)","c6822356":"_createAss(string,uint32,string,uint256,uint256,uint256)","c682a10d":"createRoot(string,string)","c682d0bb":"authorized_updateSaleInfo(uint256,uint256)","c68309a7":"buyICloudSecsAgainstEther()","c683630d":"isWhitelist(address)","c6837a87":"getDepositeTime(address,uint256)","c683d8e4":"enableSale()","c6842868":"registerBroker(address)","c6851889":"Sale(address,uint256)","c68581ea":"addFile(uint256,string,uint256,string,string)","c686554e":"getInfo(address,address)","c687857c":"updateAsset(uint256,string,string,string,uint256)","c687ce9d":"setInitialOwner(address,uint256,uint256)","c6888fa1":"multiply(uint256)","c68890c7":"AcceptGuardianOffer(uint256)","c6891018":"take(uint256,bytes32[])","c68a3c1e":"setShares()","c68a536d":"GetLuckyRewards()","c68ad0a8":"Hold(address,address,uint256,uint8)","c68ae617":"authenticate(address,uint256,uint256,uint256)","c68b82c9":"ethLastUpdate()","c68bf3ea":"eDeposit()","c68cd47e":"COIN_SUPPLY_ICO_TIER_1()","c68cee04":"addArtistToRegistry(bytes32,address,uint256,uint256)","c68deb7e":"saleEndTimestamp()","c68e35b0":"verifyHash(bytes32,uint8,bytes32,bytes32)","c68e52d9":"setTimeStamp(string,uint256)","c68ee9cd":"search(uint256,uint256)","c68eebe3":"getCurrentTokenPriceInCents()","c68f2ada":"getDoc(string,string)","c68f7dfc":"test_hasClaimableShares_zeroClaimableStake()","c68fd307":"minimumContributionPresalePhase1()","c68fe0c1":"WeClosedInto()","c69034ab":"test_21_assertGasUsage50Boards()","c690c9a5":"Apollo()","c6912a39":"confirmRedbullQuest(address)","c692c049":"pushData()","c692d9de":"LogNeumarksIssued(address,uint256,uint256)","c692f4cf":"renounceAgent()","c69493a0":"subSale()","c69500fd":"rewardPay(address,uint256)","c695ff11":"randomAPI_url()","c6960d4c":"winnerid()","c6967c17":"DeviseToken(uint256)","c6969604":"emitBoardCreated(uint256,bytes32,bytes32,address,uint256,uint256,uint256,bool)","c69768dd":"createInkeTrade(bool,uint256,uint256)","c6979c0a":"WhitelistContract()","c697cbec":"_startNextRound()","c6998dc2":"updatePartner1_vows(string)","c69a00be":"setPeggedToken(address,address,address,uint256)","c69a8e13":"erc20BalanceForAddress(address)","c69b3936":"getNumSigs(bytes32)","c69b5df2":"prev_hash()","c69b5dfb":"verifyInvestors(address[])","c69b761f":"admin_set_deposit(address)","c69c7069":"mintPaper(string,string)","c69cd09d":"breedingFee()","c69e06db":"transactionsActive()","c69ed5f2":"executeTransaction(bytes32)","c69f4481":"setBlacklist(uint32,bool)","c69f8623":"convertSignalToMinimal(uint256)","c69fa8a9":"setAuthorizerAddress(address)","c69fbf48":"bountyProgram()","c6a00369":"LRCFoundationIceboxContract(address,address)","c6a05c06":"payOut(uint8,uint256)","c6a09d95":"grantAccess(address,address)","c6a0b13f":"cancelOnSaleCrab(uint256)","c6a0eb24":"test_threeInvalidEqBytes32Message()","c6a118d4":"impl_transferMS(address,address,uint256)","c6a17d2b":"pow10(uint256,uint8)","c6a22681":"getParticipantIndex(uint64,address)","c6a2573d":"oneTokenInEurWei()","c6a2afa7":"TokenECCAC(uint256,string,uint8,string)","c6a470e2":"getDisputeState(uint256)","c6a496bf":"Artwork(bytes32,uint256,string,string,string,uint256,address)","c6a4d345":"setMaxEscrow(uint256)","c6a4f4af":"getCurrentPotInfo()","c6a52959":"gba()","c6a5d5da":"updateBlocksPerDay(uint256)","c6a69931":"verifyCommit(address,uint40,uint256,uint8,bytes32,bytes32)","c6a71577":"WEKUToken(address)","c6a725d8":"confirmTransaction(uint256,bool)","c6a7d3af":"setTokenExcange(address,uint256)","c6a81857":"existsCountsById(uint256)","c6a898c5":"u()","c6a97c60":"SolusToken()","c6a98543":"ICONIC_NIC(uint256,string,string)","c6ab4514":"sendRobust(address,uint256,uint256)","c6ab5429":"KotET2()","c6ab5cdc":"closeBuy()","c6ab5d90":"withdraw(uint8)","c6ab848a":"referralInstance()","c6abc298":"getBetAt(address,uint256)","c6ac53fd":"submitTransaction(address,uint256,bool,bytes)","c6ad1191":"MyOwnCoin()","c6ad5d7c":"expireBid(address)","c6ae3b57":"dEthereumlotteryNet(address,address)","c6ae67ad":"fundcruToken()","c6af3166":"checkDouble(address)","c6af43f9":"updateThresholdNewAuction(uint256)","c6af477c":"get(bytes32,string)","c6afd98a":"requestConversion(uint256)","c6b0263e":"setPublicCapability(address,bytes4,bool)","c6b0a1fa":"checkPricePair(uint256,uint256)","c6b0de7e":"removeFromWhiteList(address,address)","c6b0ffd0":"is_success()","c6b20dc2":"Invacio()","c6b2a5dd":"updateCurrentSupply()","c6b3a7cf":"wplus(uint256,uint256)","c6b3ad7b":"setTWhitelist(address[],uint256[])","c6b4ad80":"ctu_owner()","c6b547e6":"getDocumentName(uint256)","c6b59e9e":"changeParameters(uint256,uint8,uint256)","c6b6005b":"TMSYToken(address,address,address,address,address)","c6b6b1e8":"ICOReserveSupply()","c6b6bc3c":"burnPurchase(uint256)","c6b85d2b":"AtomicX()","c6bbb6ef":"sendTokensTo7(address,address,address,address,address,address,address,uint256)","c6bc8dee":"testInitial2of3()","c6bcd5f7":"INTEGROToken()","c6bcefe5":"otherPoolTotal()","c6bd541f":"supportTeam(uint256,uint256,uint256)","c6bd5a13":"dividendsPaidPerShare(address)","c6bd62f5":"get_CountAllHolderForProfit()","c6bd9187":"closeEvent(bytes32)","c6bec93a":"startLottery(uint256)","c6befedf":"createPoll(bytes32)","c6bf03dd":"changeReleaseAccount(address,address)","c6bf7489":"sendLudumToMany(address[],uint256[])","c6c09252":"_generateCode()","c6c18e31":"PCToken()","c6c1e248":"ProductFactory()","c6c20a75":"getTotalCardValue()","c6c25d04":"artUrlList()","c6c27c71":"_slrByrLmtChk(address,uint256,uint256,address)","c6c2966d":"setFundingEnv(uint256,uint256,uint256)","c6c332f2":"getUserEthVolumeSaldo(address,address)","c6c39bda":"unitsOneEthCanBuyafter()","c6c3bbe6":"mint(address,address,uint256)","c6c3f3f9":"setKyberProxy(address)","c6c4676c":"currentResult()","c6c4bf44":"issueFor(bytes32,address)","c6c55773":"Topplay()","c6c599c1":"changeApprover(address)","c6c65136":"spiderReq()","c6c68eb7":"getAyantDroitEconomique_Compte_2()","c6c6b3ed":"Sale(uint256,uint256,address)","c6c7d143":"cancelRedemptionRequest(uint256)","c6c7f5aa":"impl_amountOfOrderQueue()","c6c85ca5":"updateTokenRate(uint256)","c6c8823c":"getActionPrice(string)","c6c8cdc7":"LogFundTransfer(address,uint256,bool)","c6c99744":"t01_setKey(bytes32)","c6caa959":"sellRock(uint256,uint256)","c6cb7a96":"orderMatchTest(uint256,uint256,int256,uint256,uint256,address,address,uint256,int256)","c6cb7ab8":"getBytesValues(bytes32)","c6cbc52a":"revokeCertificate(bytes32)","c6cbd5f0":"abandonedIcoBalances(address)","c6cc68b9":"BuyStockRocket(uint16,address)","c6cce2e7":"len(address)","c6cd15aa":"frozenVaults()","c6cd712d":"delegatedTransferAndNotify(address,address,uint256,uint256,uint256,bytes32,bytes,uint256)","c6cdbe5e":"categories(uint256)","c6cdc6f6":"fastICO(uint256)","c6cdf77e":"upgradeWeth(address)","c6ce2664":"setBancorRegistry(address)","c6ce81f0":"manualSendTokens(address,address,uint256)","c6ceafef":"setFeedAddress(address)","c6ceb50b":"Decimals()","c6cebebd":"get_info(uint256)","c6ced32b":"getWorkersCount()","c6cf1c7f":"generateRandomPerformance()","c6cf452b":"testInitialA()","c6cf4dd9":"upgradeOnePointZeroBalances()","c6d04634":"BasicCrowdsale(address,address)","c6d0be63":"emergencyCease()","c6d0ffda":"failedTemperaturesLength()","c6d1d23d":"totalPledgedFeesAt(uint256)","c6d2cb6a":"getLavaTypedDataHash(address,address,address,uint256,uint256,uint256,uint256)","c6d32838":"deathData_f3()","c6d3ab9d":"changeTokenSymbol(string)","c6d417de":"NewName(address,string)","c6d44ecc":"_getTokenCountToBuyFromSeller(uint256)","c6d456ec":"Winning_Entry()","c6d48e0d":"getVersionsCount()","c6d69a30":"setTaxRate(uint256)","c6d761d4":"cancelEscape(uint32)","c6d779e6":"getAmountOrdersForDay(uint256)","c6d784cc":"Statustelega(address)","c6d81547":"DecisionTokenSale(uint256,address)","c6d8a203":"setConversionRateAddress(address)","c6d8be5a":"setPricingStrategy()","c6d8f0c4":"getLocks(uint256)","c6d90e70":"AcceptsDailyRoi(address)","c6d9112a":"MAX_DAILY_TOKEN_COSIGN_SPEND()","c6d95512":"ExchangeTokenPushed(address,uint256)","c6dad082":"make()","c6daeeaa":"TIME_TO_HATCH_1SNAIL()","c6dbdf61":"primary()","c6dc3640":"AirDropPayBitsR2(address[])","c6dc437b":"bids_ignored_count()","c6dca1d2":"proposeAsset(string,uint256,uint256)","c6dd5098":"DateCoinCrowdsale(uint256,uint256,uint256,address,address,address,address)","c6dd5db5":"validateOrder(address,uint256,address,address,uint256,address,uint256,uint256)","c6dd8018":"Cygnal()","c6ddcfe8":"publicSellToken()","c6ddd889":"ForeignBridge(uint256,address[])","c6de150b":"soldIdeaWei()","c6de5709":"calc_partnerPercent(address)","c6deeb9d":"contributionAccepted()","c6df66a7":"firstPlay(bytes32,uint8,bytes32)","c6e000b5":"mntpToken()","c6e0329f":"LaoHuiHui(uint256,string,string)","c6e04590":"rateHard()","c6e08ba9":"EligmaCrowdsaleContract()","c6e0c908":"checkTransferFromWithReference(address,address,uint256,string)","c6e0dc6e":"ChangeTransferStatus()","c6e1c178":"TheLuckyOne(bytes)","c6e3a9b3":"_total_sold()","c6e3d1b4":"promotionsOfHost(address)","c6e3e8fd":"getManualByAddress(address,address)","c6e3ffc3":"determinePID()","c6e416b5":"addressGains(address)","c6e5546c":"distributeTokens(uint256,uint256)","c6e68059":"DeAuthorized(address)","c6e68ea6":"createTournament(bytes32,uint256,uint256)","c6e6ab03":"allocateCandyToken(address[],uint256[])","c6e6b803":"grantAt()","c6e715e1":"rechargeDeposit()","c6e81b07":"remainingAuctionable()","c6e8b4f3":"createProxyAndCall(address,address,bytes)","c6e946df":"ComputePharaohReq()","c6e994d7":"shareWithdraw()","c6e9ce11":"NZD_CLEAR()","c6e9ff54":"changeBonusDistributionAddress(address)","c6ea3037":"_createSale(uint256,uint256,uint256,uint256,address)","c6ead8af":"tokensBurnt()","c6eae0c5":"limitEth()","c6eb8a65":"stage2BeginTime()","c6ed3418":"TokenMintPoD()","c6ed8990":"addTokens(uint256)","c6ed8e1b":"getApprovedProxys()","c6eda379":"totalZTKCheckAmounts()","c6ee701e":"getInts()","c6ee7a2c":"Linkable(address,address)","c6eeeb04":"increaseTimeBy()","c6f017e1":"addOrgan(address)","c6f03aaa":"getRegister(string,string)","c6f0557f":"insertarMensaje(uint256,string,string)","c6f067d1":"MVPToken()","c6f3a895":"endFirstPeriodTimestamp()","c6f47486":"getHistoricalPrice(uint256)","c6f482aa":"largeCapDelay()","c6f48866":"isGameOver(bytes32)","c6f4ebb3":"o_minerador(uint256)","c6f54e62":"order(address[2],uint256[4])","c6f5b0e0":"getContributor(uint256)","c6f5d91f":"getAddressWhiteList()","c6f6122d":"transferredManually()","c6f664af":"totalInsuranceFlows()","c6f6d9d9":"lotteryCount()","c6f6f216":"setMaxPerTx(uint256)","c6f70370":"generateRoomNightToken(uint256,uint256,uint256,uint256,uint256,bytes32)","c6f88b0a":"_hasCorrectTreasury(address)","c6f981d7":"setTrap(uint256)","c6f9defe":"futureExpanstion()","c6fadeb3":"fechAllSumNumForEncourage(uint256)","c6faf736":"updatePromoBonus(uint256)","c6fc2bae":"ACEEquityToken(uint256,string,string,uint8)","c6fd2103":"recordImbalance(address,int256,uint256,uint256)","c6fdee56":"isAddress(address,address)","c6fe317f":"changeVanityURL(string)","c6fe7296":"resetPhases(uint256,uint256,bool,uint256,bool)","c6ff3ae3":"EthMark()","c6ff4081":"tokenProcess(address)","c7005f04":"distributeInternal(uint256,uint256,uint256,uint256)","c701672f":"_recordPresalePurchase(address,uint256)","c7021c9e":"submitPresetTransfer(address)","c7024b98":"deleteHybridization(uint256)","c7027329":"isBossWannaCryContract()","c7028f96":"burnAllLeftTokens()","c702d3b4":"Unregistered(address,address,uint256,uint256,uint256,uint256)","c7033721":"genesisRoot()","c70383a5":"takeOwnerShip(uint256)","c7046117":"sendAsGift(address,uint256)","c7047fa7":"metadataUrlPrefix()","c704e04a":"recordingResultsOfBet(bytes16,bytes16[],uint8[])","c704f7ed":"lockName()","c705a1a8":"getMerchandise(uint256)","c705e1a3":"allowToken(address,address,uint256,bool,bool,address)","c7071c3e":"MiningRewardChanged(uint256)","c707936a":"Serpent()","c707bae5":"getTopNames()","c708ed9c":"getPI_edit_15()","c7091c5e":"INITIAL_STAGE()","c70978da":"UnicornBreeding(address)","c7097f62":"linkAddress(address)","c7098e91":"decodeOrderTokenAndIsBuy(uint256)","c709c7b8":"priceStep7()","c70a24af":"ROLE_NEED_LOCK_UP()","c70a3f1a":"whiteHat()","c70a9246":"GetConsentData(uint256)","c70ad05b":"identity_storage()","c70bbc13":"emitRevoke(bytes32,uint256,address)","c70cc560":"storePassword(string)","c70cdad8":"hashBacktestPositions(uint32,int64[])","c70cef3a":"WalamaCoin()","c70d169d":"answerRequest(uint256,bytes)","c70dd8b3":"procureTokens(address)","c70e8640":"amountFundTeam()","c70ef908":"setPI_edit_33(string)","c70f5eaa":"buyCard(uint256)","c70faf90":"EndMinting(uint256)","c70fe6bd":"migrateAuction(uint256,address)","c71029e1":"getBankRequests(string,uint256)","c7102df7":"__stopBlock()","c710a2aa":"marketplace_controller()","c7110035":"multiSigWithdrawal(address,uint256)","c7120bad":"linkAccount(uint8,string,string)","c7120d77":"sendFunds(address,uint256,uint256,uint256,uint256,uint256)","c712f3b3":"TradeId()","c7133f53":"setAccountS(address)","c713a67b":"momentNonceOf(uint256,uint256)","c713aa94":"setEndBlock(uint256)","c713b10f":"isSameSign(int256,int256)","c713bd70":"getMarketerRate()","c7143c41":"notSameSeed(string,string)","c7144269":"changeSettings_only_Dev(uint256,uint256,uint256,uint256,uint16,uint256,uint256,uint256,uint8,uint8)","c7153816":"lowerSupply(uint256)","c715533e":"allFrozenTime()","c71692b6":"capPreICO()","c716b616":"adopt(uint32,uint32)","c7172710":"pouseCrowdsale()","c7178230":"isDeprecated()","c717e9eb":"voidOrRevert(uint256)","c718b272":"Floor(uint32,address)","c718b2bb":"YunToken(address)","c718d0e0":"_setFreezedBalance(address,uint256,uint256)","c7192cda":"EventUpdateWasReset()","c7192e44":"setPaid(address)","c719348b":"safeCheck(uint256)","c71a7aea":"distributedReservedTokensDestinationsLen()","c71ad84d":"vehrespond(uint256,uint256,address,bool)","c71b583b":"closeRequest()","c71ba100":"revokeBalance(address,address,address)","c71bee4c":"OMITokenLock(address,address)","c71bf8ba":"multiplierOfPrice()","c71c0b40":"fundRaised()","c71c3f05":"blackListCompanies()","c71c890a":"weekFourStart()","c71cb0b4":"buildTile(uint16,uint16,uint8,uint16)","c71cbcf3":"recoverAccount(address,address)","c71daccb":"checkBalance()","c71ddb9f":"releaseContract()","c71e48d6":"setOutcome(bytes32,bytes32[])","c71e876b":"VESTING_DURATION_2Y()","c71eef58":"applyForTokenOneDay()","c71f2bae":"AddOpenOrder(uint32)","c71f311c":"setFABAcompanyTokensWallet(address)","c71f4253":"getNumberOfVotes(uint256)","c7216a44":"_generate_special_horsey(address,address,address,bytes32)","c721b34b":"setBattleAddress(address)","c721b6bd":"grantVestedTokens(address,uint256,uint256,uint256,uint256,bool,bool,bool)","c721cfe2":"reClaimBalance()","c721f08d":"activateSale()","c722328d":"withdrawToMultisig()","c722e113":"_transferDivs(uint256,uint256,uint256)","c722e462":"CoinX()","c7238af7":"escapeDestination()","c724772c":"turnOnIco()","c72486d2":"Unexpended()","c724acb7":"calcDifficulty()","c7258d7f":"isUserWhitelisted(address,address)","c726c2b9":"getPI_edit_24()","c726dea8":"memberArray(uint256)","c7277115":"ManagedToken(string,string,uint8)","c727980a":"payDeposit(uint256,address,uint256)","c7280315":"UnauthorizeToTransfer(address)","c7286a21":"removeContribution(address)","c7291b7e":"descriptionHashHistory(uint256)","c729a567":"withdrawFundToAddress(address)","c72a2328":"tier_rate_1()","c72a480e":"DGameController(address[])","c72b5176":"getGroups()","c72b5e4f":"persentRate()","c72be838":"gasForDCN()","c72c1133":"Log(string,uint256,uint256)","c72c757e":"delete_allowedAddress(address,address)","c72e1576":"addAddressInWhitelist(address)","c72e57c7":"lockedTill()","c72e6d03":"p_setRefPercent(uint256,uint256)","c72e8baf":"PRICE_3()","c72e9e45":"setEgeregAddress(address)","c72f0dd9":"Player_HitOrStand(uint256,bool)","c7303c61":"createPost(string)","c7304f37":"changePool(uint88)","c730bbd8":"rateWaiting()","c730dfbb":"WemarkToken()","c731c504":"restoreFunds(address,address,uint256)","c731e124":"rewardslength()","c73202ff":"jpPercentageDivisor()","c732d201":"currentCount()","c7330bf6":"getDepositesCount(address)","c7343754":"getLendingItemLength(address)","c7347832":"asyncTransfer(address,address,uint256)","c734f917":"onTokenTransfer(address,uint256)","c73659be":"RexToken(uint256,address)","c736e118":"bgxWallet()","c7377d80":"Bourneereum(uint256,string,string)","c737b7c6":"getTotalTickets(address)","c7381593":"Multimember(address[],uint256)","c7385f2e":"proofIds(uint256)","c738a836":"changeEnabledAddressStatus(address,bool)","c7395151":"updateMaxAcceptedDeposits(uint256)","c7398dd4":"getCustomValue()","c73992e4":"hasApproved(address)","c73997b1":"changeBaseValue(uint256,uint256,uint256)","c739d31c":"setPrivateSaleAgent(address,bool)","c73a2d60":"disperseToken(address,address[],uint256[])","c73aae86":"get_Release()","c73b187d":"oraclizeMinCallbackGas()","c73b302e":"projectsCount()","c73c27bc":"getNodeId(uint256)","c73c2a45":"WriteBible(uint16,uint16,uint16,uint16,string)","c73c933d":"ChangeBurnBoundsOperationEvent(uint256,uint256,uint256)","c73d3b30":"getAbilities()","c73defce":"ETCHaddress()","c73ea367":"setNickName(string)","c73ec2eb":"minCompositionFee()","c73f0c11":"burnGlobFoneCoin(uint256)","c73f20e3":"issueamount()","c73fcee2":"CLNTotalSupply()","c74073a1":"close(address)","c740bc9f":"setLongtermMinter(address,uint256)","c7410070":"publicbattlestart()","c7411eb4":"calculateAntBuy(uint256,uint256)","c741764c":"oldE4()","c741d70d":"retrieveFounds()","c741e85a":"set_parameter(string,uint256)","c741f0f3":"buyBILL()","c7420a9f":"store(bytes,address,address,uint256,uint8,uint8)","c7423803":"finishRecovery()","c7423f26":"strFundDeposit()","c74266b3":"HanYinToken()","c742bab1":"VUP_TOKEN_SUPPLY_TIER1()","c743092e":"Buy(uint256,address,uint256,uint256,uint256,uint256)","c7430e28":"Trillionix(address,address)","c7431f5c":"changeETXAddress(address)","c74352af":"FileServerManager()","c74370db":"Transfer(address,address,uint48,bytes)","c74442e6":"withdrawNexiums(address)","c7445c22":"getPassportId(address,address)","c7446565":"startAt()","c74590e3":"LogInvestment(address,uint256)","c745ca9a":"transferBack(uint256,address,address)","c745dab9":"MakerDepositedEther(uint256)","c7464e8a":"showRandomWinners()","c746a52d":"showme(uint256,uint256,uint256)","c746b299":"PSCToken()","c746c8f4":"addAllowedSender(address)","c747ef76":"AbieFund(address[])","c747f120":"totalIssuerCollateralisation()","c74803de":"_isContained(bytes32,bytes,bytes32)","c7489441":"closeMarketMaker(uint256)","c748b54b":"PeerWalletsERC20Token()","c74a2449":"canUserAnswerQuestion(address,uint256)","c74a690c":"price_in_wei()","c74a827c":"setMonsterCreatorAddress(address,address)","c74a96eb":"setHGT(address)","c74abe43":"getMyTokensValue()","c74b1e01":"startPresaleTime()","c74b5a3e":"open5Chest()","c74c251f":"addSafely(uint256,uint256)","c74c851a":"isValidInvestment(address,uint256)","c74ca049":"unshareKey(bytes32,address)","c74ce765":"TESTTESTToken(address)","c74e907b":"commit(address,uint256,uint256)","c74fc077":"guards(uint256)","c74fda29":"_distributeAdvisorsToken(uint256)","c7506049":"_processSalePurchase(address,uint256)","c7508ec7":"removeClaim(address,address,bytes32)","c750938e":"shiftcashToken()","c750c3b1":"allocateEndTime()","c750cb79":"getHighestBidder(uint256)","c750df73":"submitContract(bytes32)","c7516da7":"CITY_INCREASE_RATE()","c751e027":"PoolTeam()","c752746e":"tokenHoldersClaimed(address)","c752a999":"MoneyTokenPromo(uint256,string,uint8,string)","c752ff62":"totalUpgraded()","c75363b6":"BEGIN_TIME()","c7542f1d":"GCCToken()","c754fc08":"addGroup(uint256,uint256,uint256)","c75514e8":"executeOptions(address,uint256,string)","c7559da4":"uint256ToBytes(uint256)","c7573e82":"registerStudent(address)","c7574839":"communityWallet()","c7576e8f":"TOBToken()","c7576ed4":"finalizeMigration(address,address)","c75782be":"startup(uint256,address)","c7586cde":"THIRD_USER_CUT()","c758b813":"ausGroupAllocation()","c75902cf":"iwtfundtokens()","c7591d35":"checkGuess()","c7593f01":"SKLAuction()","c75abf24":"setup(uint256,uint256,uint256)","c75bc4fb":"setMaintenanceLock(bool)","c75bc6f8":"UniverseShieldToken(address,address)","c75d9d29":"unlockPurchase()","c75e8d55":"setRecipientString(string)","c75fb740":"Error(bytes)","c75fc22f":"freeEther()","c7600cde":"getInitialReporterAddress()","c7602316":"deploy(string)","c7614487":"MAX_CROWD_FUNDING_ETH()","c761a2f5":"revertFeeCalculatedFlag(bool)","c762547d":"contractCreatedCount()","c762c463":"mUsers(address)","c762d3ea":"calculateReferralBonus(uint256,uint256)","c762d5f7":"setBorrower(address)","c763400e":"endpreIco(bool)","c763e5a1":"chain()","c764427c":"addAllowedContract(address,address)","c764d4c4":"withdrawCountriesToken()","c764ee57":"VIWOZ()","c7656f6e":"startProject()","c765defd":"setBeneficiary(address,bytes32)","c76668cf":"transferCheck(address,address,uint256)","c7669337":"fundMinting(address,uint256)","c766ce02":"addFactProviderToWhitelist(address,address)","c768051a":"gla()","c768a4cd":"upgradeSword(address)","c768ac01":"totalWithdrew()","c76a4bfb":"relayReceiveApproval(address,address,uint256,bytes)","c76a74df":"Bitscoin()","c76b838c":"bulkSell(uint8[],bytes6[],uint32[],uint32[])","c76c1ba5":"placeBet(uint256,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","c76c68d0":"CalcToc(uint256,uint256,uint256)","c76c9269":"ethVest()","c76d0754":"fiatSend(address,uint256,uint256)","c76de3e9":"Start(string,string)","c76df481":"getArmyOwner(uint256)","c76e7f32":"addressToPersonId(address)","c76f0d13":"COSTToken()","c76f80c8":"_createCaptainToken(address,uint256,uint32,uint32,uint32,uint32,uint32,uint32)","c772173a":"ProsperToken()","c7725426":"setAuthorizeMintToken(uint256)","c772af39":"boss()","c7736abf":"windowOpenTime()","c77547f7":"maxTimeIntervalHB()","c7760b11":"getlevel(address)","c77636fc":"PauseOwnerAdmin(bool)","c77684f9":"ClipperCoin(uint256,string,string)","c776cc42":"FREEDOMCoin()","c7775011":"setSlaveWallet(address)","c77810a4":"Pot()","c778427b":"migrationInitiated(address)","c7786275":"Bitansuo()","c778a46b":"doPresaleMinting(address,uint256,int256)","c7798891":"TokensReleased(address,uint256)","c77a0de6":"xfer(uint256)","c77a16ed":"resumeTransfers()","c77ae9bf":"resetRaz(uint256,address,uint256)","c77bd8cc":"acceptAdminToo()","c77bdfce":"bindToken(address,address)","c77c00f8":"openNewBet(address,uint256,uint256)","c77dff62":"shrimpyramid()","c77e7614":"getTotalWithdrawAmount()","c77ef9b8":"setAccessProvider(address)","c77f58c8":"transferMinusComission(address,uint256,uint256)","c77fe4d6":"incentivisingSupply()","c781d7b0":"calculateAntSell(uint256)","c781f97b":"getCurrentCrabPrice()","c7825c3f":"Pruebalillo()","c782fc60":"getExtraBalance(address)","c783dc9e":"pullEther(uint256)","c783fb10":"validBalanceOf(address)","c784648d":"addIdArrayItem(address,uint256,string,string,uint256)","c7847d19":"createAnnoTrade(bool,uint256,uint256)","c7857d27":"setMyName(string)","c786a66f":"_createSchedule(address,uint256,uint256,uint256,uint256)","c786ebd1":"LogPrepareToStart(string,uint256,uint256,address,address)","c7876ea4":"basePrice()","c7878fa0":"setHumanityFund(address)","c7888a07":"claimSuperDragonEggs()","c7891514":"forthWeekMainICOBonusEstimate()","c78974de":"get_test_data_length()","c78982d5":"getIntervalCoefficient(bytes2,uint256)","c789ea87":"acceptFoundation(string)","c78a33e1":"DestroyEvent(address,uint256)","c78a4c98":"icoRaised()","c78a8dfe":"Kardanor()","c78ad77f":"percentage()","c78af2f7":"contributeByProxyContract(address,uint256)","c78b200c":"transferableFromBlock()","c78b616c":"totalListings()","c78bd060":"makeInvestment()","c78c0138":"timestamp_contract_start()","c78c3a83":"getPredictions()","c78cdf66":"mintTimelocked(address,uint256,uint32)","c78d7380":"COINECTToken()","c78d846d":"PTCToken()","c78dc603":"alt_buyCollectible(uint256,uint256,int256)","c78e139a":"setUpgradedContractAddress(address)","c78f3e18":"starteth()","c78fc487":"indexedByOwner(address,uint256)","c791316e":"minFundingAmount()","c791bd21":"AngelToken()","c791cc39":"BOECoin(uint256,string,uint8,string)","c791e16b":"platPriceOracleContract()","c792024a":"tierRates(uint256)","c79343e5":"isSYNVault()","c7939f34":"oddsTotal(uint256,uint256)","c79403f5":"moveFurnaceData(address[],uint16[],uint256[],bool[],uint256[])","c7941a09":"setDelegadoDeEscuela(bytes32,bytes32,uint8,uint8)","c794549e":"setDesignatedReport(bool)","c7946842":"URLOf(uint256)","c794ef10":"purchaseCostEther(uint256)","c794f575":"makeAnnualInvest(uint256)","c7956846":"get_solved(address)","c795dd24":"availableTokenBalance(uint256,uint8)","c7963ae8":"Tabo()","c7968135":"totalNumberOfFunders()","c798b5cf":"CommunityToken()","c7990f70":"SetDevFee(uint16)","c7995a4e":"_registerTrade(uint32,uint256)","c79a68cf":"setPrices(uint256,uint256,string,string)","c79ba27d":"kscTransferFrom(address,address,uint256,string)","c79bb895":"SGACrowdsale()","c79bdb46":"setRewardPercent(uint256,uint256)","c79c9105":"countOfPublicKey(bytes32)","c79eaa22":"sub(uint96,uint96)","c79f5321":"update_data()","c79f7cef":"_postValidatePurchase(address,uint256)","c79f8b62":"error()","c79fc609":"addressC()","c7a02061":"totalEtherCollected()","c7a08487":"_generateRandomDna()","c7a16847":"SetRewardMulti(uint256)","c7a16965":"testUint(uint256)","c7a1865b":"play(bytes32)","c7a1f221":"tokenPriceInCents()","c7a1fb36":"PRE_SALE_CAP()","c7a24403":"Illuminatus()","c7a28247":"stopBuyingTokens()","c7a2a663":"getCodeAtAddress(address)","c7a323fe":"ACTION_INITIAL_BIDDING()","c7a32726":"StartCrowdsale()","c7a37657":"getCfd(uint128)","c7a3778f":"testControlRetractLatestRevisionNotUpdatable()","c7a4af15":"setPrice(uint8,uint128)","c7a4cf8d":"checkOverMaxcap(uint256)","c7a4e4bc":"VIPCHAINToken()","c7a5d285":"extract(address)","c7a6c454":"confirmTransaction()","c7a6c6d4":"_creditTokens(address,uint256)","c7a86dd2":"updateEnergy(uint32,uint32,uint256)","c7a86e33":"signedApproveCheck(address,address,uint256,uint256,uint256,bytes,address)","c7a96920":"stopICO_20_March()","c7a9a64b":"depositNetfRevenue(uint256)","c7a9d6de":"startICO(address)","c7aa278e":"poolInvestors()","c7aaa83f":"Bounty0xToken()","c7abc42a":"getgamecard(uint256)","c7ac0909":"AddedName(address,string,uint256,address,uint256)","c7ac14b1":"dividendCutPercentage()","c7acae2e":"getServerAddress()","c7ad31b0":"LogHodlStartSet(address,uint256)","c7adb61f":"initializeTreeCoinProject(address,uint256,uint256,address,address)","c7adef28":"getCitationRecord(bytes32,uint256)","c7ae3ad5":"fillBuyOrder(uint256,uint256,uint256)","c7ae7451":"addEvent(address)","c7ae9632":"xfer(address,address,uint256)","c7af18f1":"SedPoSToken()","c7af3dd1":"updateCost()","c7afe9f2":"setTokenAddress(address,address)","c7aff0d7":"manuallyProcessTransaction(address,uint256)","c7b0235b":"DPPCrowdsale()","c7b0f0ca":"lockTokensPercent()","c7b0fc5e":"usedItem(uint256)","c7b11fca":"mainMaxContribution()","c7b160db":"getTotalNumberOfAddressesReceivedAirDrop()","c7b1fd00":"usdPerEthLogSize()","c7b23ec6":"initalizeOrgan()","c7b27a25":"IOReceipts()","c7b31ed0":"store(address,address,uint256,uint8,uint8,bytes)","c7b3b0d4":"getCompanyInfo(bytes32)","c7b41aa9":"getSmartCoins()","c7b43f02":"expressBuyNums(uint256,uint256[])","c7b5716d":"createSellOrder(address,uint256,uint256,uint256,uint256)","c7b6084c":"backendOperator()","c7b6ccae":"opetToken()","c7b6fd6a":"subDays(uint256,uint256)","c7b799ae":"addressFunc(address,address)","c7b7d6ca":"sendResearchAndDevelopment()","c7b81f4f":"isEpochDataSet(uint256)","c7b850dd":"whitelistedContributors(address)","c7b87d74":"setOldTokenAddress(address)","c7b97288":"addTokenEmission(uint256,uint256,uint256)","c7b98dec":"right1(uint256)","c7b9bc9e":"Token(uint256,string,uint8,string,string)","c7b9c355":"setSecondBonusPercent(uint256)","c7ba24bc":"claimAndConvert(address[],uint256,uint256)","c7ba9264":"KAL4Token()","c7bb38e7":"setAmount(bytes32,uint256)","c7bb42f7":"TEAM0()","c7bc747d":"retrieveTokenByContract(address,uint256)","c7bce243":"Menu05()","c7bdbb95":"allowTransferOwnership(bool)","c7bdcde9":"IYAKIN()","c7be44fa":"banReferrer(address)","c7be7ae3":"frozenSupply()","c7bec318":"removeAccountAddress(address)","c7c049fc":"saleGoal()","c7c0c5bf":"modifyMarking(bytes32,uint256)","c7c16353":"weiToRaise()","c7c2aa25":"WarriorsBackToHome(address,address,uint256)","c7c2aee3":"personalCap()","c7c3268b":"setBaseUrl(string)","c7c36959":"GubbermentOverthrown(address,address)","c7c3b1c1":"canTerminate()","c7c3b2dd":"setMockedTotalCollected(uint256)","c7c40fbb":"addPassportLogic(string,address)","c7c4ff46":"depositor()","c7c54e4d":"theEBCC(uint256,string,uint8,string)","c7c5f59d":"forBounty()","c7c625ee":"rand(address)","c7c6939c":"LongPlace(address[2],uint256[8],uint8,bytes32[2],uint256)","c7c7322b":"testCantInitiateIncorrectSale()","c7c7e9ea":"getAllowed(address,address)","c7c806cb":"ambassadorAddress()","c7c80f02":"teamLockUp()","c7c83804":"setFinancingsAdd(address)","c7c8b07b":"KillSwitch()","c7c8c424":"ownersEth()","c7c8ff35":"getNeutralMutationCost(uint8)","c7ca07bb":"QuantityAvailable()","c7cb94e3":"GenPlayerRatio(address,uint256)","c7cbb9c8":"_createArea()","c7cc3743":"addContractAddr()","c7cc4ee9":"later()","c7cc63aa":"getBetTitle()","c7ccc559":"upgrade_cap()","c7cd31d5":"setLLV_edit_23(string)","c7ce060b":"publicDeductDeposit(address,uint256)","c7ceac99":"calculateBattleBoost(uint16,address,address)","c7cec7f8":"versions(bytes32)","c7cefbf1":"IDH()","c7cf28fe":"canClaimTimeout()","c7cf6a2a":"LJSToken()","c7cf8075":"getAvailableDevFund()","c7d044be":"AutoChainToken()","c7d128d1":"readTotalNumberOfUserPurchases(address)","c7d20f82":"addMeterpoint(address,int256)","c7d22929":"betOpen(uint256,string,string,string,string)","c7d26e90":"getAccessoryClaims(uint64)","c7d4f68e":"getRobotForUserByIndex(address,uint256)","c7d586c9":"provideProofOfWork(uint256)","c7d5b6f1":"cancelSellOffer()","c7d5c0af":"XVOTOKEN()","c7d5d171":"costRecharge(uint256)","c7d5dd36":"Factory(address,address)","c7d6e988":"fundOwnerWallet()","c7d6faf1":"easyPropose(address,uint256)","c7d77970":"registerNameXaddrFromDapp(address,bytes32,address)","c7d7b5a6":"fillOrder(address[5],uint256[6],uint8,bytes32,bytes32)","c7d96304":"canMateWithViaAuction(uint256,uint256)","c7d9f4d1":"transferableBalanceOf(address)","c7da93b7":"specialTransfer(address,uint256,uint256,uint256)","c7daae0a":"firstFreeAddressIndex()","c7dab436":"vestingTime()","c7daceb1":"acceptBuyNowOffer(uint256)","c7db04d7":"SelfDestructManager()","c7dbbc47":"nextTicket()","c7dbc2be":"minimumPodSize()","c7dd4b4f":"gameID()","c7dddf0f":"itemHistoryOf(uint256)","c7de2d13":"WithdrawToken(address,uint256,address)","c7dea777":"areOldMiningKeysVoted(uint256,address)","c7deda22":"Doug()","c7df0a90":"all_eth()","c7df9054":"getBuyUnitsInformations()","c7dfabcc":"Buy(uint8,string)","c7e04670":"publicSaleTokenPrice()","c7e0635d":"AGENT_STATUS(bytes32,address)","c7e09d9c":"getSides(uint256)","c7e12723":"Erc20Test(string,string,uint8)","c7e210c3":"optionPoolMembersLockTotalOf(address)","c7e22ac4":"setOracleGas(uint256)","c7e284b8":"getTimeLeft()","c7e293d9":"allocateFunds(address,address,uint256)","c7e35a5c":"LOCK_START()","c7e3b6e8":"airdropAndVault()","c7e3ff4b":"pregnantMonsters()","c7e40b3a":"StatXCoin()","c7e416c5":"LOG_SuccessfulSend(address,uint256)","c7e4f453":"TokenFactoryImpl(address)","c7e50dc9":"isLOC(address)","c7e52480":"convertYourTokens()","c7e56740":"_getIndex(address,address)","c7e58644":"getSharesCount()","c7e59334":"toggleAttachedEnforcement(bool)","c7e5fc3b":"GlobalTechToken()","c7e67360":"GAS_BUFFER()","c7e6926e":"_airdropTotal()","c7e6d04f":"ownerConfig(address,uint256,uint256)","c7e73adf":"getParticipantSource()","c7e83451":"matchMultipleOrders(uint64[],uint64[])","c7e92738":"MicroBTC()","c7e975b8":"partner2_voted_update_marriage_status()","c7e9aaaf":"_isSiringPermitted(uint256,uint256)","c7ea07bb":"SealTokenSale(address,address,address,uint256,uint256,uint256,uint256)","c7ea8a68":"EOSToken()","c7ebc8fe":"getWinnings(address,uint256,uint256)","c7ed1e86":"getNoOfMsgs(address)","c7ed4555":"DepositSlot(address)","c7ed4d8c":"distributeVM(address[],uint256,uint256)","c7edaf33":"TheGoDgital()","c7edf88c":"DOW_SAT()","c7ee005e":"prime()","c7ee1c4e":"getPreviousSeed()","c7ee98c2":"trustedBurnTokens(uint256)","c7ef47d7":"isKill()","c7efa689":"getSaleDay(uint256)","c7efb162":"setup(address,address,address,uint256,uint256)","c7efb8ab":"ledger(address,bytes32)","c7f04e65":"purchase(uint32)","c7f132d5":"QuarterCoin()","c7f18d5b":"updateData(uint256,uint256,uint256,uint256,uint256,bytes,bytes)","c7f24b11":"getCCH_edit_8()","c7f2c3d9":"EasyInvest10()","c7f2e6af":"Contribute(bytes20)","c7f300ed":"CrowdSale_ModifyEndDate(uint256)","c7f3166d":"getBetInfo(uint256,uint256)","c7f31f1c":"HandWins(address)","c7f36010":"setupClaim(uint256)","c7f423c7":"setLeaf(uint256,bytes32)","c7f42c64":"battleFee()","c7f43b57":"TIER2_CAP()","c7f46dea":"testRewardBS(bytes32)","c7f5f1e8":"DistributeNextNTokens(uint256)","c7f6f40c":"updateKYCStatus(uint256)","c7f6fa60":"EIDTokenERC20()","c7f71103":"futrMiner()","c7f7475c":"AdminGroup(string)","c7f758a8":"getProposal(uint256)","c7f7be5c":"setGxCoinContract(address)","c7f84605":"___upgradeTo(address)","c7f86c37":"withdrawFundsRP()","c7f8fe65":"getBalanceReleased()","c7fa1d47":"Hedge()","c7fa52de":"setRegistryAddr(address)","c7faa88d":"collectProfit()","c7fb9aab":"displaymultisig()","c7fbad27":"revealStart()","c7fc9ace":"WorldNode()","c7fccd3f":"isAuthorizedForToken(address,address,address)","c7fde81f":"changePOI(address)","c7fe11d4":"_createCaptainToken(address,uint256,uint32,uint32,uint32,uint32,uint32,uint256)","c7fee63e":"updateRate()","c7ff1584":"isHalted()","c7ff1b60":"maxCapReached()","c7ff2086":"getPropertyColorsOfRow(uint16,uint8)","c8004293":"lastKnownPropertyAddress()","c80094b3":"testEquals()","c8016c85":"MAIN_SALE_BONUS_PERCENTAGE_PHASE1()","c8027210":"Malaysia370()","c8028bee":"auditorRegistry()","c803486b":"getAvailableFunds(address)","c803ae2a":"kycComplete()","c803f981":"care(uint256)","c8045941":"changeDescription(string,string)","c8046827":"registerBurn(uint256)","c804a58e":"toggleRefunding()","c8051885":"isWithinContributionRange()","c805801c":"VoipTken()","c805914a":"setRespectRequiredToRecruit(uint256)","c805b6bc":"PRESALE_TOKEN_HARD_CAP()","c805f68b":"setRelay(address)","c806286d":"setFreeze(uint256,bool)","c80667e3":"appendUintToString(string,uint256)","c80675de":"sendDiamond(address,bytes32,string,bytes16,uint256)","c806a91d":"TOKEN_TOTAL_CAP()","c80743c5":"maximumTokenAmount()","c807be58":"endTimeSale2()","c807cb02":"Uninjected(address)","c807e645":"JECKAirdrop()","c8081bd2":"requestMutualJobCancellation(bytes16,address,address,uint256,uint256)","c8088830":"_canPayOraclize(uint256)","c808cf86":"exchangeHelenium(uint256,address)","c80944e5":"buildRight(address,uint256)","c80a589b":"withdrawTokenBalance(uint256,address)","c80bbb17":"ReserveFund()","c80becb6":"enablePreSale()","c80c14a5":"getBankBalanceWEIInfo()","c80c28a2":"getNumberOfParticipants()","c80d3694":"saleWeiCap()","c80db88c":"getSchellingExpansion(uint256)","c80e0ddd":"saveCode(uint256,string)","c80e3e1e":"SingularityTest23()","c80ec522":"withdrawn()","c80f9a4f":"transferPokemon(address,address,uint256)","c81050e6":"checkBranchInEpisode(uint256,uint256)","c8117b5b":"extractBalanceOfLength()","c81196da":"numberOfMilestones()","c8135ba1":"bids_decrypted_count()","c813c30e":"testThrowSomething()","c813e02e":"_isLeapYear(uint16)","c814324c":"timeBought(address)","c81450a0":"RaffleResult(uint256,uint256,address,uint256,uint256,bytes32)","c814864c":"CreateChips(uint256,uint256,uint256,uint256,bool)","c8149cbc":"setMigrationLock(bool)","c8159d70":"Seriality()","c815c9ef":"TerraEcoToken()","c8162068":"setTeamAddr(address)","c8162497":"BETX()","c8166a8a":"Question()","c817d75d":"Transfer(address,address,uint256,uint256,uint256)","c817e84d":"addWhitelisted(address,bool)","c8187cf1":"determineReward(uint256)","c818acf7":"createCloneToken(address,uint256,string,uint8,string,bool,address)","c818faec":"updatedAt(uint256)","c8193841":"addSoftwareVersionRecord(bytes32,bytes32,uint256)","c8199231":"createContractTot(string,uint256)","c8199826":"buyTickets()","c819f6e9":"levToken()","c81a5455":"Milestone_CloseTheIco(string)","c81a7d10":"CurryCoin()","c81bd106":"approveNewOwner()","c81c590d":"getEtherAmount(uint256)","c81caae7":"acceptMember(address,string,string)","c81cbc5c":"MIST()","c81cf764":"getAmountFromBuyer(address,address)","c81d1d5b":"getPunk(uint256)","c81e05ad":"KODO()","c81ede67":"pollBurnQty()","c81f49cb":"getTotalPaid(address,uint256)","c8216f33":"getLineUpEnable_default()","c8226e61":"withdrawEgereg(uint256)","c822bd3d":"transferCost(bytes16,uint256)","c822d7f0":"isRegistered(string)","c8234ac8":"createTokenUri(uint256)","c82467c9":"ComputeTokenPrice()","c8248f8d":"PreICO(address,address,address,address,address)","c824a222":"auctionsOf(address)","c82531a3":"createAuction(uint256,address,uint256,uint256,uint256,address)","c825a939":"fundingRatePredictionBonusPoolInIBC()","c827a7bb":"testExternal(uint256[20])","c82829e0":"setSoftHardCaps(uint256,uint256)","c828371e":"getStartTime()","c828e6ee":"getCurrentlyClaimableAmount(address)","c8290efd":"zen()","c8291dbd":"increment(address,address)","c829958c":"isImported(address,address)","c8299b10":"gotransfer()","c8299ed8":"afterClaim(uint256,uint256,uint256,uint256,uint256)","c829b0e3":"MAX_LAYERS()","c82aac47":"searchByTag(bytes32)","c82b8ec5":"EtherDaruma(address,address,address,uint256,uint256,uint256)","c82bb37b":"PotSplit(uint256,address,bool)","c82bd265":"ContributionAccepted(address,uint256,uint256)","c82c73c1":"isAddressSet(address)","c82cd8e6":"ControllerRetired(address)","c82d81dd":"GICAToken()","c82db402":"ownerSetOraclizeGas(uint256,uint256)","c82f2418":"decodeTokenOrderTokenAndIsBuy(uint256)","c82f8d9e":"distributeToken(address,address,uint256)","c83068eb":"setPre(uint256,uint256,uint256,uint256,uint256)","c8306c89":"set_arbits(address,address,uint256)","c830b89d":"ReleaseDateChanged(address,uint256)","c830c656":"increasePermillage()","c83126ed":"generateVoteForDelegationSchemaHash(uint16,address,bytes32,address)","c831306e":"icoTimeBonusPhase2End()","c831391d":"getPoolOverlapSize()","c83261bd":"claimTokenFor(address)","c83281e9":"UserAccount(bytes32,bytes32,bytes32,bytes32,bytes32)","c832b00d":"limitDateCrowdWeek3()","c8335143":"AlekseiZaitcevPrivateSale(uint256,uint256,uint256,address)","c8335ba0":"setInitSize(uint256)","c833d7b1":"BigbomContributorWhiteList()","c834d03d":"verifyTx(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[3])","c83507a8":"removeAdv(address)","c836292b":"teamMembers(address)","c836efcb":"_permitted()","c83780a2":"crowdsaleCounter()","c838ccb6":"getDelegates()","c839008e":"setPixelPropertyContract(address)","c8391142":"j1Timeout()","c83923c5":"getMetadataChannel(string)","c83927a0":"pdo()","c8393ba9":"initiateWithdrawal(address,uint256)","c8398947":"currentStateActive()","c839c0de":"CreateVersion(bytes,string)","c83a7e94":"AEToken()","c83a9472":"deathData_a11()","c83a981c":"openPool(uint8)","c83abb40":"registerNotary(address,string,string,string)","c83ac557":"ChangeCommunityHolder(address,address)","c83be888":"single_move(uint256,uint8,uint8)","c83cb16c":"_not(bool)","c83ea900":"soldDET(address,uint256,bytes32)","c8401567":"betbucketTwo()","c840b187":"goodsNotReceived(uint256)","c841df4f":"getMonsterStats(uint256)","c8420d2f":"CollectibleIndex5()","c8422c2d":"boostrapParty(address,address)","c8435ba2":"levelOneTokenNum()","c843c0c8":"getMyAlien()","c8443fad":"revokeExchanger(address)","c8449b65":"Gold()","c84640f5":"addtotalCardValue(uint256,uint256)","c846690b":"initialiseToken()","c847259c":"changeClub(address)","c84748f9":"returnFrozenFreeFunds()","c848a0bc":"notifySellToken(uint256,address)","c848fab7":"SeeleToken(address,address,uint256)","c84920cb":"Ubisoft()","c84a6140":"BackdoorBurner(uint256,string,uint8,string)","c84a8766":"setRegionImageDataCloud(uint256,uint256,uint256,string)","c84aba9b":"demurrageBalance(address,address)","c84b0555":"token(address,string,string)","c84b1ce7":"PUBLIC_RESOLVER_LABEL()","c84b470f":"SALE_PERCENTAGE()","c84ba84a":"finishedPurchase()","c84c009b":"Operated(address)","c84c5963":"setPauseCutoffTime(uint256)","c84c692a":"isTradableFciInSession()","c84c9ef5":"LastName()","c84ca867":"getCurrentPriceAttoTokensPerWei()","c84cda0f":"setRate(string,uint256)","c84d56e0":"setRealmSale(uint256,uint256)","c84eb9e5":"invest(address,bytes)","c84f5d6f":"RowanCoin()","c850029e":"returnTokenOwnership()","c85147c5":"mediumCount()","c8517b48":"CNDTTokenDeposit()","c851b643":"legendsToken()","c851ed7c":"startNewVote(uint256,string)","c8520131":"Withdrawable()","c85234c7":"startPreICOStage3()","c853c03d":"newDraw(uint256,uint8[3],uint256,uint256,uint256,uint256)","c8544e81":"addGenesisPairs()","c854db91":"vault_refund(address)","c85501bb":"minThreshold()","c855d689":"returnLongAddress(bytes32,uint8,bytes32[2])","c855e7bb":"tokenForTeamGranted()","c8578967":"setNewChecker(address,address)","c857a88c":"createDataRequest(address,address,uint256,uint256)","c8582572":"affiliateCommission(address)","c8583ad6":"UnregisteredPrefix(string,address)","c8583e69":"getEthUsdRate()","c858c017":"testMsgSenderInVoters()","c859c482":"holdBalanceOf(address)","c85aff48":"tokenNAVMicroUSD()","c85b7941":"totalEthBankrollReceived()","c85bb02a":"isParticipating(uint256,address)","c85bb1f7":"_doMapAuto(address,string)","c85bc22d":"getDefrostFactor()","c85c11eb":"TOKEN_SECOND_PRICE_RATE()","c85c75b2":"completeCodeUpdate()","c85dba67":"getPrefix(uint32,int256)","c85e07b9":"stamp()","c85e0be2":"setHost(address)","c85e1f73":"totalRecalled()","c85ee477":"FileCoinCash()","c85f6a80":"emission(address)","c85fd4f8":"deployToken(string,string,uint8,string,address,bool,address)","c86039da":"redeemedSupply()","c8612b2f":"TOKENS_FOR_SALE()","c861f243":"_getBonus(uint256)","c861f3a0":"houseStake()","c86283c8":"withdrawTo(uint256,address)","c862a134":"feePercent_()","c8643bc2":"MintOperationEvent(address,uint256,uint256,uint256)","c864e760":"recordCommissionEarned(uint256)","c865164b":"StakingPriceFeed(address,address,address)","c865c29b":"HopiumCoin()","c865cadb":"setActiveValueBonus(bool)","c86662a3":"addOwner_(address)","c86779a4":"lastBlock_v14()","c867cccb":"Contribution(address,address,address,address)","c867ea63":"GoldConnect()","c867fa29":"BookERC20EthV1p1Factory()","c86813a8":"PassContractorCreator()","c8685f21":"validUsername(string)","c868a569":"canBreed(uint40,uint256,uint40,uint256)","c8690233":"pubkey(bytes32)","c8691b2a":"getHistory(uint256)","c8695e59":"RPS(bytes32,address)","c86a90fe":"sendCoin(uint256,address)","c86a9dea":"isKickoffEnabled(uint256)","c86b7001":"randomOrgAPIKey()","c86c50f7":"changeAllowInvestment(bool)","c86d0251":"_getTeamSupportAmount(uint256,uint256)","c86dca5a":"isExploring(uint256)","c86e25d7":"tokenCreateContract()","c87022d3":"startMonarchyGame(uint256)","c8705544":"payAmount()","c870ef78":"MINING_POOL_HOLDER()","c8713608":"HELIX()","c87158fa":"_addBlockProducer(uint256,address)","c87235fd":"burnRemaining(address)","c872da3c":"KIND()","c8738351":"uintFloor(uint256,uint256)","c8744434":"lastTransferQueueIndex()","c8750d8a":"testHitSoftCapPresale()","c8756f12":"getTotalSponsorship()","c875b1fb":"distributeBonuses()","c875d16f":"ArthurStandardToken(uint256,string,uint8,string)","c8765ff2":"rateICO()","c87744d9":"_approvedForTransfer(address,address,uint256)","c8781368":"freezedMoment()","c8788134":"discountedPrice()","c878851d":"setCreate(bool)","c878dad9":"multiFreeze(address[],bool[])","c8796572":"collectFees()","c87a31cd":"fillOrder(bytes32,address[5],uint256[6],uint8,bytes32,bytes32)","c87b36ed":"disableBetting()","c87b56dd":"tokenURI(uint256)","c87be1af":"recoverHashSigner(bytes32,bytes)","c87c07de":"deprecateMeleeSubtype(uint8)","c87cfe63":"setData(uint256[])","c87e5613":"setMaxTokenBuyin(uint256)","c87e8bd0":"icoRound6()","c87f9386":"setAllItemActive(address,address,bool)","c8804b7b":"DSC()","c88098f2":"setParticipationFee(uint256)","c880fab1":"dragonTreasureToken()","c8813ffd":"addToVIPList(address[])","c881b3c0":"AllowedGasPriceUpdated(uint256)","c88215e7":"calculateExcessBalance()","c882acc8":"deleteMemberOfGroup(address,uint256)","c882ee8c":"testUint(int256,uint256)","c882ef92":"GameOpened(uint256)","c8830ddf":"ECryptoToken()","c883346e":"_getProviderIsForRent(uint256)","c8833f56":"setTiersInfo(uint8,uint256[],uint256[],uint256[],uint256[],uint8[2])","c883d3fa":"addMappingForPlayerIDs(uint256,uint256,uint256)","c88449a1":"_getTransferFeeAmount(address,uint256)","c8852b5b":"getBirthCut(uint256)","c8857dcd":"setOperateMode()","c885bc58":"withdrawReward()","c885e92d":"contlength()","c8860f41":"getWinningChoice(uint256,uint256)","c886594d":"getNodeEnabledStatus(address)","c8865c0e":"allocated24Months()","c886ec0d":"getTreasureProbabilityType(bytes32)","c888fafd":"bankerDepositPer()","c888fcc3":"getPollResult(uint256)","c8894a0c":"WMToken(address,uint256)","c88961da":"createKingdom(string,address,address,address)","c88996d6":"MessageCallTransaction(bytes,uint256,uint256,address,uint256,uint8,uint256,uint256)","c889e0de":"finishAirdropBy0Eth()","c88b675b":"setMaxAvailableSpot(uint256)","c88b77e0":"grantTeamAdvisorToken(address)","c88b7c8e":"setConversionFee(uint256)","c88bf75a":"applyRaises(uint256[])","c88c5101":"investor_bonus()","c88cc6ac":"getCertification(address)","c88e662e":"externalSales(address,uint256)","c88fd3ec":"changeIcoRate(uint256)","c88fe1fa":"maxCapMintTransfer()","c890635a":"ownerSale(address,uint256)","c890f27e":"GenChipByWeight(uint256,uint8,uint256[])","c891a29d":"setEpochData(uint256,uint256,uint256,uint256[],uint256,uint256)","c8922057":"MAXUM_SUPPLY()","c89231b3":"mintForInvestor(address,uint256,uint256)","c892693b":"setMotAddress(address)","c892cfdf":"amountRised()","c8931355":"setONTExchangeRate(uint256)","c893ae0b":"ptToPtwo()","c894e1e5":"setTransferFeeRate(uint256)","c895304b":"newDaoRulesProposal(uint256,uint256,uint256,uint256,uint256,bool,address,uint256,uint256)","c89547f9":"adminSetTxFeeInviteGame(uint256)","c89550a8":"BMICoin(address,address)","c89605a2":"DEALERWIN()","c8961644":"unBan(address)","c89924da":"totalTokensForSaleDuringICO2()","c8997121":"forwardFunds(uint256)","c899fa77":"hodlerTotalValue3M()","c89a32ab":"releaseTargetToken(uint256)","c89acc86":"send(address,bytes)","c89b50c7":"credit(address[],uint256[])","c89b7d8c":"buyCommonTTWByETH(uint256,address)","c89b989e":"lckTokenAddress()","c89baff5":"GoldenGate()","c89cea99":"getMyAnts()","c89d6063":"claim(bytes32,uint256,address,uint8,bytes32,bytes32,bytes32[])","c89dcfce":"mint(address,bytes32,uint256)","c89e4361":"delegate()","c89e528e":"receiveCreateAuctionFromArray(address,address,uint256[],uint256,uint256)","c89ec68a":"startRecovery(address,address)","c89f2ce4":"funds()","c89f51ef":"createPromoRabbit(uint256,address)","c89f8f08":"testGetController()","c89faa72":"confirmTransferItem(address,address,string)","c89fb5f0":"ethunpause()","c89fcf58":"setNoviceDungeonId(uint256)","c8a1becb":"_monthToNumber(string)","c8a1e1c7":"sendInternally(address,uint256)","c8a2c880":"setCallStack(uint256,uint256)","c8a2cc03":"strikersMetadata()","c8a2e0bc":"addCustomerReqACC(address,address,address,address)","c8a45c44":"tokenMaturityPeriod()","c8a48d71":"removeStep(bytes16)","c8a4ac9c":"mul(uint256,uint256)","c8a4c767":"kickCommitteeVote(address)","c8a4ddc3":"resetBatches(address,address)","c8a4e001":"EarlyPurchaseAmended(uint256)","c8a5e6d7":"transferFundAndEndGame()","c8a635b7":"setWeiRate(uint256)","c8a6dab7":"test_tokenFreeze()","c8a71e14":"bonusCalculationFactor()","c8a73eca":"transferOpen()","c8a7432f":"getPreIcoPurchase(address)","c8a76494":"Bet()","c8a808d6":"avatar(address,address,uint256,uint256,bytes)","c8a814b8":"firstSend(bytes32)","c8a830ba":"max(uint256)","c8a83384":"allowBurns()","c8a90f76":"handlePresaleToken(address,uint256)","c8a9e841":"addCustomerFromKYC(address)","c8aafbc3":"NodeHash()","c8ac7014":"updateMerchantByAdmin(address,string,string)","c8ad27e6":"finishPre()","c8ad9645":"InactivityHolderResetBalance(address)","c8aded5d":"setDiscounts(uint256[],uint256[])","c8ae8774":"_startMegabox(uint256)","c8aef513":"preSendTTC()","c8aeff39":"isMarket()","c8af1538":"fallbackPayout()","c8af46b4":"canAnyoneBurn()","c8b08125":"tokensRemaining()","c8b0e68d":"getCEO()","c8b18b5b":"oneMonth()","c8b19fa8":"ioxToken()","c8b1a635":"pricePerCoin()","c8b21f18":"distributionuserFinished()","c8b26773":"startEnrollment()","c8b2ccba":"addStrand(uint256,address,bytes32,string)","c8b32089":"TokenLiquidityMarket(address,uint256,uint256,uint256)","c8b342ab":"getBid(address)","c8b35c7a":"BANANA()","c8b39eb5":"setEdCoreContract(address)","c8b413ad":"initialize(address[5],address,uint256[12],uint256,bytes)","c8b43c10":"isPausedCrowdsale()","c8b4c5b8":"MarketToken(uint256,uint256)","c8b4eb6e":"withdrawPresale(address)","c8b52bfb":"ChangeCost(uint256,uint256)","c8b56bda":"unregister_contract(bytes32)","c8b5da66":"pressButton()","c8b6a463":"ASUT()","c8b70559":"_endContestIfNeeded()","c8b7c3ee":"MITCoin()","c8b7e8c3":"testMakeBet()","c8b82220":"registerNameIP(string,string)","c8b91531":"MINOR_VERSION()","c8bb73ef":"testGetBitsFailIndexOOB()","c8bb7d51":"unitRareGrowth()","c8bc2452":"LuJiaZuiToken()","c8bc429a":"removeDividendPathway(address,uint256)","c8bc6fa0":"maxCapEth()","c8bd14ef":"totalInvSupply()","c8bd1d13":"VERIME(address)","c8bd3782":"OsherCurrentICOPrice()","c8bdbfb6":"withdrawUnsoldTokens()","c8bdc0c7":"RevokeDOT(bytes32,bytes)","c8bf3388":"totalIRCAllocated()","c8bffa93":"tier1End()","c8c01a55":"request(address,uint256)","c8c08a89":"_isOfficialApps(address)","c8c0b288":"bountyFundManager()","c8c0cbbb":"setLockedAccountThresholdUsd(uint256)","c8c1a400":"infoAboveSpot()","c8c21594":"releaseByStage(address)","c8c2ed54":"tokenAssignmentControl()","c8c2fe6c":"acceptManagement()","c8c365fc":"nowday()","c8c388eb":"RegBase(address,bytes32,address)","c8c3b926":"changeDragoDao(address)","c8c5139d":"setUserDisplay(address,string)","c8c67ca1":"transferValuebyAddr(address)","c8c719d2":"MangachainToken(address,address,address,address,address)","c8c72bb4":"TEAM_RESERVE_FTX()","c8c749ec":"preTgeManager()","c8c75647":"setVerified(address)","c8c79643":"addBurningMan(address,uint256)","c8c89fa5":"secretBids(address)","c8c9b1f8":"shouldVerifySegment(uint256,uint256[2],uint256,bytes32,uint64)","c8c9d745":"userLookup(uint256)","c8ca645f":"getName(string,string,address)","c8cada78":"oraclize_query(uint256,string,bytes[2])","c8cb60bb":"cancelBid(bytes32,uint8,int32,bool)","c8cb7d04":"Kristina()","c8cb8677":"WithdrawMyTokens()","c8cb8a75":"setCreator(address,uint256)","c8cb985a":"callDividend()","c8cc5cd8":"distributeYield(uint256)","c8cc9cc2":"getElement(address)","c8ccaebc":"extendedTimeLock()","c8cd09ae":"TransferredPreBuyersReward(address,uint256)","c8cd65e5":"processDeposit(address,uint256)","c8cddd61":"test_validShouldBe3_increaseTimeBy30000()","c8ce122b":"checkJackpot(address)","c8ce2fec":"lifetimeDeposits()","c8ce30b0":"blocksForWei(uint256)","c8ceaa95":"mint(bytes32,int256,address,uint256)","c8ceae12":"tavernContract()","c8cf4722":"getRequestsLength()","c8cf67a1":"buySmartSpeed()","c8cfb032":"getPlayerByAddr(address)","c8cfd490":"UNLOCK_TEAM()","c8d0ec0a":"reduceAllowance(address,address,uint256)","c8d172d6":"getTokenInfoNonce()","c8d1c017":"addUIntValue(bytes32,uint256)","c8d1cf4a":"tokenPriceForMainICO()","c8d3db82":"getPresaleMaxValue()","c8d47f16":"replaceLogic(address)","c8d4b389":"approveAndCallPreSigned(bytes,address,uint256,bytes,uint256,uint256)","c8d508fa":"test_insert_findNoHintUpdateTail(int256)","c8d50d7c":"nextBackWindowAdjustmentRatio()","c8d52ee3":"refundTransfer(address,uint256)","c8d61985":"setCryptoAgent(address)","c8d689b1":"addAllowedLock(uint256)","c8d840fa":"EventEmergencyContinue()","c8d86e35":"bullToken()","c8d88829":"oslikiFoundation()","c8d8cf88":"appIndex()","c8d942b5":"Travelerscoin()","c8d9c042":"AuctionCreated(uint256,uint256,uint256,uint256,bool)","c8d9ebc4":"getTomato(uint8)","c8db6a42":"functionCalling(address)","c8db6af9":"getCompte_14()","c8dc60ca":"vehiclesByCity(bytes32)","c8dc7e19":"setReconciliationDate(uint256)","c8dd64ea":"daVinciAddress()","c8dd6ce7":"getPlayerDetails(address)","c8dda301":"VOTING_START_BLOCKNR()","c8dda71c":"HistoryUpdated(string,uint256[])","c8ddf66f":"MMChainToken()","c8df5da0":"BOSHICoin()","c8e0f101":"userPlay()","c8e11521":"TripBitToken()","c8e13bb4":"fit()","c8e1fe3f":"getCountriesOfCampaign(bytes32)","c8e2190d":"_cancelOperation(bytes32,address)","c8e2fca0":"use(address,address,uint256,uint256,uint256,uint256,uint256,string)","c8e32074":"returnFrom(address,uint256)","c8e49707":"activateExportFee(address)","c8e4acef":"playerByAddress(address)","c8e55708":"oraclize_query(string,string[1])","c8e566c6":"betInputToBytes(uint40,uint40,uint40,uint40,uint40)","c8e569a8":"stopICO()","c8e56acb":"FAPFundDeposit1()","c8e5f54f":"ArcanaToken()","c8e626f8":"checkDivsBalance()","c8e6b2a8":"logTimestampSet(uint256)","c8e6ba4d":"verifyTx(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[])","c8e6c7d9":"imin(int256,int256)","c8e706e2":"contractWallet()","c8e71424":"MotherDNAShare()","c8e788c1":"RELEASE_EPOCH()","c8e7ca2e":"getMsgData()","c8e7e5ef":"TOTAL_NUM_TOKENS()","c8e8ce63":"outsourceConfirmNode(uint256)","c8e8d6d6":"TheTokenE()","c8e8f487":"missedVerificationSlash(uint256,uint256,uint256)","c8e9fc8b":"testgas()","c8ea0cfa":"CoinmakeToken()","c8ea1f7f":"updateEntity(uint256,bytes32,uint256,bytes32,uint256)","c8ea429e":"closeCdp(uint256,uint256,uint256)","c8eab537":"randomJackpot(uint32,bytes32,uint32)","c8eb747a":"B42Token()","c8ec2eb8":"MUBEX()","c8ec57ed":"revokeConfirm(bytes32)","c8ed6253":"ManagedToken()","c8ede712":"makersAverageRating(address)","c8edf65e":"GetAndReduceFeesByFraction(uint256)","c8ee0c6b":"withdrawBySubscription(address,uint256,bytes32,string)","c8ee2da8":"setReputationIRNNodeShare(uint256)","c8ef8b00":"window2TotalSupply()","c8efd7af":"getResolverFee()","c8f07770":"funcThatReverts()","c8f09634":"visaOfferingsLength(uint256)","c8f099cb":"upgradeEvilMorty(address,address)","c8f0d741":"AlienFarmer()","c8f21d22":"TagadaTsoinTsoinCoin()","c8f2835f":"transferBack(address,uint256)","c8f288ad":"getPoo(uint256)","c8f3a9e1":"getLastRollOutput(address)","c8f3e5f0":"getParameterByTitle(bytes32)","c8f41706":"pausePhase()","c8f478e1":"SetChangePlatformFlag(bool)","c8f490c8":"numOfBalloonsTypes()","c8f5c3f9":"LNCHSale(uint256,uint128,uint256,uint256,uint128,string,uint128,string,uint128,string,uint128,string,uint128,string)","c8f5d8b0":"total_coins()","c8f803f8":"setUnitJadeStealingMultiplier(address,address,uint256,uint256,bool)","c8f87d36":"_register(uint256,address)","c8f88076":"emissionMasOneType(address[],uint256[],bytes32[],uint256)","c8f8d75d":"Config(uint8,address)","c8f98db8":"getWinningFaction()","c8fbbdda":"getGPSStartTime()","c8fca35e":"getBidHash(uint256,uint256,address,address,uint256,uint256)","c8fd39f7":"GetEthShop()","c8fd6ed0":"unstake(uint256,bytes)","c8fdc891":"numberOfMonarchs()","c8fddb80":"updateLemonCoinsRemainingToDrop()","c8fdf67d":"holdTransaction(uint256,uint256,uint256)","c8fe2065":"getSingleBetItemCount(uint256)","c8fea2fb":"collect(address,address,uint256)","c8fed3f6":"withdrawCashReserveFund()","c8ff80a1":"setMonsterClass(uint32,uint256,uint256,bool)","c9000726":"nextStep()","c90109fa":"removeSomeCWCsFrom(address,uint256)","c90189e4":"fechAllVoteResultPreStageByBlock(uint256)","c902c3ae":"bets(bytes32)","c902d1b6":"_checkClientSign(address,bytes32,bytes)","c902ee36":"tokensAvailable(address)","c9030ea0":"addMember(address,bool)","c904a2ee":"minAllowedReservingPercentage()","c906a5aa":"testDeleteVoter()","c906baa3":"GACFund()","c906c873":"limitCrowdsale()","c906cd68":"ForceCoinTransfer(address,address,uint256)","c90755e2":"secretaryGeneral()","c90763f0":"subAllocation(address)","c9079673":"last_payment_timestamp()","c90797ea":"suicideContract(address)","c907d53b":"getTakeOwnershipFee(uint256)","c9085820":"set_owner(bytes12,address)","c908f302":"searchPursesByAddress(address)","c9090c7f":"levelFourTokenNum()","c9099385":"addApplication(string,string,string,string)","c909b929":"closingTimePeriodTwo()","c90a6a8e":"MAIN_SALE_BONUS_PERCENTAGE_PHASE4()","c90c205b":"CLAIM_AMOUNT_ETH()","c90c589a":"OAR()","c90c949b":"checkForBonuses(uint256,uint256)","c90cfb0b":"newFact(string,string)","c90d080a":"registerEvent(bytes)","c90d1431":"MYLASTTOKEN()","c90d2cd9":"createBallot(uint256,address,string,string)","c90de215":"ClockAuction(address,address,uint256,uint256)","c90f34f0":"Bitstarti(uint256,string,string)","c90f793e":"currentAgreement()","c90fc8ee":"allTotalSupply()","c90fda80":"countRC(address)","c9100bcb":"getClaim(bytes32)","c9101f6c":"increaseApproval(uint256,address,uint256)","c9102029":"_getTokens()","c9116b69":"myBalance()","c9116e4a":"yearThreeClaimed()","c911b56e":"isController(address,address)","c913b552":"getVersions(bytes)","c913f364":"addMoonPrizePool(uint256,uint256)","c914ef54":"SetAllow(address)","c91540f6":"getCurrentCompetitionValues(string)","c915fc93":"proposeUpgrade(address)","c91610cd":"transferDelegator(address)","c91752b2":"girlIdToAuction(uint256)","c91813ca":"testToBool(bytes)","c919992d":"changeBrokerImp(address)","c91b0149":"setWhitelister(address,bool)","c91b46c6":"claimHero()","c91bc856":"withdrawCAT()","c91c6fa5":"completeSupply()","c91ca6c7":"calculatePeerTokens()","c91cd9d0":"minimumNumber()","c91d7e9c":"getFee(bytes32[])","c91d956c":"setMinBalance(uint256)","c91e4cc8":"getItemsByTypeAndOwner(string,address)","c91fc619":"getTotalOut(address)","c92015f6":"getAccountUnlockTime(address)","c9206ddf":"setSalvageable(address,bool)","c9219a7a":"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])","c921f647":"GiftSend(uint256,address,address,bytes32,string,bytes16,uint8,bytes24,uint16,uint16,uint256)","c92261b5":"set(bytes32,int256)","c922f446":"emergencyWd()","c9230c5d":"assetName()","c9247058":"MasternodeRewardAddedToRewardPool(uint256)","c924c524":"secondSend(bytes32)","c924d441":"EnableTokenWithdrawals()","c92501b7":"setStopTime(uint256)","c926435c":"bonusInfo()","c926aae6":"kscSell(address,address,uint256,string)","c9270652":"returnLoanLength(uint256)","c92728a1":"_ballotIdToNamespace(uint256)","c9295bc6":"getOrgInfo(address)","c9296d14":"scheduleTransaction(address,uint256,uint256,uint256,bytes)","c929bdac":"notaioAccounts(address)","c929ccf3":"setTokenId(uint256)","c929d55e":"overrideTokenHolders(address[],uint256[])","c92a1ad8":"bonusPriceDeltaPerHour()","c92a1e26":"setting(bytes)","c92aecc4":"chi()","c92ba8b2":"add(address,uint32,uint128,uint128)","c92babd1":"SITMock(address)","c92cd4d3":"getNewTokenBalanceOf(address)","c92d2385":"transferPreSignedHashingWithPrefix(address,address,uint256,uint256,uint256,uint256)","c92d3ea9":"Amazon()","c92db04d":"VanMinhCoin(uint256,string,uint8,string)","c92e365f":"placeBid(address,uint256,uint256,uint256,bytes,int256)","c92f3a0c":"GameICO()","c92f8954":"withdraw(address,uint256[3])","c932c71e":"USDsToken()","c932ca62":"setBuildersAddress(address)","c9330bfb":"ethToTokenConversion()","c9334051":"decodeAssets(bytes32[])","c9335f58":"worldwidegiftcode()","c9351571":"WorldCupToken()","c93685b8":"getQuorumPercent()","c937b0a9":"platinum()","c937da12":"addToPublicWhitelist(address)","c937e091":"SearchUserID(string)","c9380d3e":"DeciserToken()","c938acc8":"checkExistsOwnedPet(uint64)","c9393c62":"NewState(uint8)","c939625b":"LuckCashCrowdsale(uint256,uint256,uint256,address,address)","c939fd50":"remainingIssuableNomins(address)","c93a6c84":"setDefaultFee(uint256)","c93aac88":"setReleasingSchedule(address)","c93ab4c3":"checkTreesWatered(uint256[])","c93b9755":"mintAgents(int256,address)","c93c266e":"updateWalletAddress(address)","c93ce90f":"chefOwnerWithdrawal()","c93ceec8":"collectDividends(address)","c93cff84":"test_validContractBalance()","c93dd31a":"Blammascoin()","c93e253d":"balanceOfBasic(address)","c93e718b":"removeAddressesFromOperators(address[])","c93e8862":"_checkCap(address)","c93e8b15":"getActiveBuyOrders(uint256)","c9406e86":"crowdsaleEnds()","c940c1b7":"addCustomerHash(bytes32,bytes32)","c9410b76":"ClockAuction(address,uint256)","c942940c":"Sukaya()","c944a38e":"CharlyLifeLog(string,int256)","c9456530":"isRespectTimeFrame()","c945b53f":"lottoIdentifier()","c946f3af":"Standard_3()","c94727f0":"getWinChoice(uint256,uint256)","c947db81":"earlyWithdrawalFeePct()","c9498266":"hash_passcode(bytes32)","c949ba9b":"TokenBase()","c949c0c9":"_houseOf(address)","c94a18ba":"kpyGoalReached()","c94a5841":"BITVesting()","c94b0ac1":"CryptoTwitch()","c94b56e3":"isMinCapReached()","c94b5c3d":"cabbageToken()","c94bfdb1":"setTokenDescription(address,uint256,string)","c94c6787":"specialSend(uint256,address)","c94c79dd":"EtherTots()","c94d0eee":"oddEven(uint256,address)","c94dc71e":"Satochi()","c94e643c":"grantTokens(address,uint256)","c94e6567":"fetchBlocks(address)","c94e7b5c":"icoTokenSupply()","c94f2d69":"ILOTContract()","c94f7983":"StillToGo(uint256)","c94fbd4b":"Reek()","c9511b59":"setAddressToken(address,address)","c95292c4":"EthlanceDB()","c95320db":"migrationPhase()","c9537838":"getExpectedBalance(address)","c9553010":"testDistributing()","c955457e":"getRandomArbiter()","c955b514":"addCancelled(bytes32,uint256)","c9567bf9":"openTrading()","c956d497":"helpWithdrawal(address)","c956db57":"WOLF3()","c957012e":"caps(bytes32)","c9580804":"setAccessManager(address)","c9584008":"registerTicker(address,string,string,bytes32)","c959467b":"setInterestDB(address,uint256)","c959ec57":"GetRocketStock(uint16)","c95acadd":"ethAuction()","c95ae083":"isMethodAllowed(bytes4)","c95bd3aa":"closePreSignedHashing(address,bytes32)","c95c0efd":"setBonusUnlockAt(uint256)","c95c0f7b":"getTransactionIds(uint256)","c95c16af":"imported(address)","c95c67dc":"ADVISORS_SUPPLY_LIMIT()","c95c9a83":"ThinkCoin(uint256)","c95d8e40":"clientSign()","c95e0909":"resetPlayer(address)","c95e81cb":"MyBet(uint8,address)","c95f79ba":"closeLeaderboard(uint16)","c95f8b91":"TransferFunds(address,uint256)","c95f95bb":"ComputedGainsRate(address,uint256)","c96027b3":"ethpaused()","c9613733":"startNextEra(bytes32,uint256,int256,uint256,int256,uint256,int256)","c961df66":"contract_period()","c9620770":"doVote(address,uint256,uint256)","c96266e8":"getDragonFight(uint256)","c96304e8":"balancesAddressDescriptionUpdate(string)","c9634f32":"randomContestant(uint256,uint256)","c9644b77":"retireAxie(uint256,bool)","c96492c4":"SspManagerContract(address,address)","c964e493":"getSpaceship(uint256)","c9651729":"firstLineWrong()","c9653bea":"MainExchange()","c96593a0":"The10ETHPyramid()","c965e1d3":"constructAPIParam()","c965ed7b":"OwnerReward()","c9660d07":"ownerSetEdgeRangeAndPayout(uint256,uint256,uint256)","c966865e":"notRandom(uint256)","c9679537":"HafizToken()","c968907f":"grantVestedTokens(address,uint256,uint256,uint256,uint256,uint256,bool)","c968aab3":"makeUntradable(uint8)","c968ac68":"getWin(uint64)","c9693411":"deliverPresaleFuelBalances(address[],uint256[])","c96adb01":"getUserBet(address)","c96c54a7":"airdrop(address[],uint256,uint8)","c96c8a1d":"ownerListMap(uint256)","c96cd46f":"suicide()","c96cea70":"updateUsername(string)","c96d2dfa":"getStateAndProof(bytes,uint256)","c96e5627":"numRegistered()","c96e785f":"setWhitelisted(address,address)","c96e83db":"firstContributorId()","c96e8fee":"Bury(address,uint256)","c96f3238":"getWithdrawAmount(uint256,uint256)","c96f5041":"addHash(string,uint256)","c971442c":"getDBs()","c971aade":"FINALSTSTEST()","c971b12b":"_onRandom(uint256,bytes32)","c9734ebd":"WatchLastPayout()","c97358df":"GGPCToken()","c973851d":"kMaxStake()","c97399d0":"_isOwner(address,uint256)","c973c2e3":"collectorAddress()","c9744029":"getPremium()","c974631b":"platformWithdrawalProposed()","c974947d":"unlockAddress(address[])","c975653d":"StartCity()","c9762f8f":"TooBigPriceDiff(uint256,uint256)","c976b4f9":"slowDump()","c976bbbb":"_compare(int256,bytes2,int256)","c976ce9c":"privateSaleLimit()","c977a7a7":"setUsdToEtherExchangeRate(uint256)","c9788631":"beneficiaryWallet()","c978a7bc":"inviteRate()","c978c45d":"setNewMessage2(string)","c978ee59":"fourthStageMintingDate()","c979113c":"nextStageEmission()","c9791e0d":"confirmBobIndirectPay(uint256)","c97a06ce":"isHardcapReached()","c97aae82":"NulsStandardToken(uint256,string,uint8,string)","c97ab7ca":"isICOClosed()","c97b5278":"XYZSecurities()","c97b6d1f":"updateBatch(int128[],uint128[],uint8[],bytes32[],bytes32[],bool)","c97be180":"lock(address,uint256,uint256,uint256)","c97c1505":"readRate(string)","c97c6353":"testHello()","c97ca645":"updateWeiPerWholeToken(uint256)","c97cc71e":"getTransferRawAddress(bytes)","c97cef81":"Shelter(string,string)","c97dc17b":"DatareumToken()","c97e8480":"delegatedTransfer(address,uint256,uint256,uint256,uint8,bytes32,bytes32)","c97ec033":"changeOverERC228(address,address,uint256,address)","c97f8363":"setBonusAddress(address)","c9801b50":"f_public()","c98031be":"hintURL(int256,bytes32,string)","c980c626":"setImage(uint256,string)","c98165b6":"createTarget()","c98166c0":"ethAmount()","c9818728":"candyCap()","c9819d1e":"GuardaRegistro(bytes32)","c982e353":"getCurrentPrice(uint256,uint8)","c9838930":"setReferralTokenContract(address)","c985c221":"get_all_levels()","c986cf7c":"defrostAdvisorsTokens()","c987a78a":"AISI()","c987c5a1":"userAdd(address)","c988d70f":"getDailyWithdrawLimit()","c9891384":"PendinglinesToLines()","c9894b5c":"taxValue()","c98a79fb":"getBallotLogN(address)","c98b7027":"bgb_per_Keos()","c98bd7da":"isWinner(uint256,uint256)","c98bdd2f":"year5LockAddress()","c98c3083":"OutcomeToken()","c98c6e08":"payAmountForLoanAtIndex(uint256,uint256)","c98cf6e3":"COBToken()","c98d3457":"alliance(address,address)","c98d9b83":"getTokensContractAddress()","c98e4149":"setKingdomFactory(address)","c98f0ad9":"getUnlockedBalanceLimit(address)","c98fc4d9":"adminSetConfig(address,address,address)","c98fefed":"convertFor(address[],uint256,uint256,address)","c99051dc":"getWildcardsRemaining(uint16)","c9912255":"gago()","c99252d3":"joinGame(uint256,uint8,uint8)","c99380c9":"getAttoTokensBoughtInICO()","c994fe31":"setCompanyManager(address)","c995623e":"revealMove(bytes32,uint256)","c9956b05":"FMCToken()","c99749a8":"prepareWithdrawProposalGivenSplitProposalId()","c997c1e2":"mul18(uint256,uint256)","c99842f9":"startPreIco(uint256,uint256,uint256)","c998e9dd":"changeUserKeyFromRecovery(address)","c9991176":"addAdministrator(address)","c99a975d":"optInFcnMinGas()","c99ae8a7":"setFechaTax(uint256)","c99b1f28":"icoWeek4Bonus()","c99b27ad":"updateFirstWallet(address)","c99c3c62":"getCarProductCount()","c99d89fc":"PriceOneEnable()","c99d9ef7":"startIcoDate()","c99db1ba":"_calculateLockedPercentage(uint8)","c99dccf9":"getInvestor(uint256)","c99f3357":"DRAIN_DELAY()","c99ff644":"dilute(uint256)","c9a04e55":"getDailyEthProfit(address)","c9a0e252":"ICOParticipants(address)","c9a1d88b":"placeBet(uint16,uint16,bool)","c9a2ab19":"aragonDevMultisig()","c9a30482":"BurnableCrowdsaleToken(string,string,uint256)","c9a365a7":"foundationlock()","c9a3f228":"SCLCrowdsale(address,address,address,uint256)","c9a43b2b":"m_software(uint256)","c9a4faa6":"AdexContract(address,address,address,uint256,uint256,uint256)","c9a5003c":"lastHello()","c9a52d2c":"setBytesValue(bytes32,bytes)","c9a56efd":"getBetterBettingInfo2(address)","c9a6964a":"initializeOwnable(address)","c9a6b2a8":"addAuction(uint256,uint256,uint256,uint256,address)","c9a6e480":"tokenSupplyFromCheck()","c9a75d90":"setPI_edit_20(string)","c9a7623a":"buyingPrice(bool)","c9a77e3d":"totaleMsg()","c9a815bd":"setSpendingLimit(address,uint256)","c9a82aa8":"markCrowdsaleEnding()","c9a8baae":"myFirstLoop()","c9aa013b":"Start5()","c9aa4cf8":"testHasTokens()","c9aa71b8":"getFlyingUnicorns(bytes32,uint64)","c9ab521f":"AddBook(uint256,string,address)","c9ac836d":"transferPet(address,address,uint64)","c9acab84":"left59(uint256)","c9ad51b5":"TOKEN_AMOUNT_ICO_STAGE1_PRE_SALE3()","c9ae5594":"countHand(uint8[])","c9af089f":"getOrCreateChildUniverse(bytes32)","c9af2418":"checkUp(address,bytes32)","c9b06a4b":"AECloudToken()","c9b0d97b":"canCollect()","c9b0eef4":"oracleItQuery(uint256,string,string,string,uint256,uint256)","c9b110cb":"getAmountOfWithdrawals(address,address)","c9b1a517":"Show_Doctor(uint256)","c9b1b2ae":"etherKing(uint256)","c9b25f0f":"transferEther()","c9b2a580":"UTTotalSupply()","c9b2e522":"getSymbol(address)","c9b31d4b":"getCurrentSecret()","c9b3e736":"getTokenSellPrice()","c9b44821":"FIRETRADES()","c9b46bbb":"test0_adding()","c9b4cb94":"BIBToken(uint256,string,uint8,string)","c9b4ddb2":"receiveLockedAmount(address,uint256)","c9b5e555":"founderAddr()","c9b67627":"NonActivationWithdrawal(address[2],uint256[8],uint8,bytes32[2],uint256)","c9b7ab8b":"getPostLink(uint256)","c9b8020d":"starbaseToken()","c9b86d43":"manualState()","c9b94eb9":"liabilityFinalized(uint256)","c9ba0d4d":"r9kAddress()","c9ba32f4":"COPPER_AMOUNT_NDC()","c9ba73a3":"getmypost(uint256)","c9ba93be":"getIndexFromAddress(uint256,address)","c9bba27b":"manualEmissionEnabled()","c9bbc8c0":"donkeyName(address)","c9bc0883":"transferFromForcibly(address,address,uint256)","c9bc2bf5":"updateSnipCoinToEtherExchangeRate(uint256)","c9bc5dbd":"requestCeilingRaise(uint256)","c9bd2893":"fines()","c9bebd90":"ownerAlias()","c9c08bb7":"tickerAddress()","c9c09ac8":"denyBundlingMultitoken(uint256)","c9c0c77a":"deposit(uint16)","c9c0f25e":"getAllWorkers()","c9c1db4a":"launchFund(uint256)","c9c1ed93":"testControlRegisterContractIdAgain()","c9c1eded":"EPYCOIN()","c9c22deb":"getStarDistanceInLyThousandths(uint8)","c9c286c6":"getUnitRafflePlayers(uint256)","c9c347b9":"EthereumOneToken(string,uint8,string)","c9c4405b":"CariNetPrivilege(uint256,string,string)","c9c447e0":"getGamePrize(address,uint256)","c9c4797d":"ParticipantAuthority()","c9c51578":"buyBronze(uint256,uint256,uint8,bytes32,bytes32)","c9c53232":"totalStakedAt(uint256)","c9c538aa":"to_binary(uint256)","c9c5b5b4":"migrate(string)","c9c6176c":"BidSubmission(address,uint256,uint256)","c9c666aa":"changeCardboardUnicornTokenAddress(address)","c9c798b3":"addToFreelancerAvgRating(address,address,uint8)","c9c7cb74":"_burnTokens(address,uint256)","c9c7ef25":"withdrawtime()","c9c80a56":"adminshipLevel(address,uint8)","c9c8580c":"makeOffer(uint256,bytes32,uint256,address,uint256,uint256,address,address,uint256)","c9c85ec6":"currentGameCost()","c9c8ffd2":"test_increaseBlockNumber30211()","c9c92c12":"transferWineFromVineyardCellar()","c9c92dc5":"getProposal(bytes32,string)","c9ca080d":"Indecoin()","c9cb0043":"supportTokenAmount()","c9cb0e9b":"emitNewSmartToken(address)","c9cb6f47":"distributeDifferentAmountOfTokens(address[],uint256[])","c9cb7204":"unsold()","c9cbc222":"PicAdded(address,uint256,address,bytes32)","c9cbf8c9":"saleExchangeRate3()","c9cc0498":"buyComission()","c9cc0ed5":"setGuardianSale(uint256,uint256)","c9cc1a05":"transferTokensToContributor(uint256)","c9cd40a2":"vestingEntries(address)","c9cda91f":"changeTokenAddress(address)","c9ce1c23":"KUEKeNParty(string)","c9ce624f":"buyBackFund()","c9cf03ce":"refundMoneyForUser(bytes32)","c9cf2d4e":"vault_deposited(address)","c9cfa6ba":"setAllocation(address,address,uint256,uint256[],uint256[])","c9cfac55":"refundCurrency(address,uint256,uint256)","c9cfe755":"sendUnsold(address,uint256)","c9d00764":"TokenPurchased(string,uint256,uint256,uint256)","c9d07650":"NetkingToken(uint256,string,uint8,string)","c9d12d11":"RC(address,uint256,uint256,uint256,uint256)","c9d2373b":"marketKnowledge()","c9d256ae":"tokenSaleLeft()","c9d27afe":"vote(uint256,bool)","c9d27bcf":"doDisputeMemoryAccessSequence(uint256,bytes32)","c9d2d217":"TokenState(address,address)","c9d34622":"diffDays(uint256,uint256)","c9d4623f":"engine()","c9d57328":"managePlayer(uint256)","c9d66690":"RedeemEvent(address,uint256)","c9d68389":"airdropper()","c9d7d862":"drawFundsAfterTransfer(uint64)","c9d82560":"RewardBonusTimePeriod()","c9d82c96":"ICO_DURATION()","c9d96393":"updateGenVault(uint256,uint256)","c9d9c2b4":"deathData_a0()","c9dab438":"Subrosa()","c9dac221":"Bussines_Card(string,uint256,string,address)","c9db1bbf":"setPreICOStartDate(uint256)","c9db2bbd":"addPendingContribution(address,uint256,uint256)","c9dbc259":"ExchangeSwitch(bool)","c9dca9ba":"changeTokenMinter(address)","c9dd3a56":"annualInterestUpdateToken()","c9dd915f":"checkPremium(address)","c9ddd118":"checkPersonalRemaining(address)","c9ddd12f":"getTimestampOfDayEnd(uint256)","c9de31c7":"EOToken()","c9deb567":"collectionsAvailable()","c9dfa731":"lost(uint256,uint256)","c9e01787":"registerAffiliate(address[],uint256[],string)","c9e075c6":"showLockState(address,uint256)","c9e077e6":"bride()","c9e20791":"_setName(bytes32,string)","c9e25251":"buy(bool)","c9e3af7e":"currentBetLimit()","c9e3e66c":"secondCheckpointPrice()","c9e40106":"getConsolationPrizeTokenId(uint256,address)","c9e43221":"MIN_WTH()","c9e4d8bb":"isService(address,address)","c9e525df":"N()","c9e55b4e":"adminFixMaxSupply(uint256)","c9e6bef4":"_endsAt()","c9e7fd4b":"SovTokenCrowdsale()","c9e84346":"bonusLevels(uint256)","c9e904be":"totalEthRaised()","c9e9f4dc":"donateToLottery()","c9e9ff2c":"CPBWallet()","c9ea7c7c":"setMinimumFundingGoal(uint256)","c9ebb5e8":"freeMem()","c9ebeba6":"setIPFSParameter(string,string)","c9ec6cf6":"setOpenCloseHour(uint8,bool)","c9ecc566":"PurchasingAllowed(bool)","c9eda121":"setArrayIndexValue(bytes32,uint256,string)","c9ee21fa":"GUNS()","c9eea77c":"_updatePrice()","c9ef5569":"getVolumeBonusPercent(uint256)","c9efa392":"bonusMilestones()","c9efda2c":"canStartAuction()","c9f09090":"populateTrancheTokens()","c9f0a02d":"burnAuction()","c9f166f8":"ctz32(uint32)","c9f1b7f0":"TeamToken()","c9f21fec":"setAuditTimeout(uint256)","c9f316dc":"getReferenceCodesOfAddress(address)","c9f3d62e":"getCarProductEarning(uint32)","c9f68025":"AMToken()","c9f73464":"maxCandidateId(uint256)","c9f84e1a":"unlockSecondPrivate()","c9f88f27":"invokeContracts(bytes)","c9f8cf20":"getCanvasesWithSellOffer(bool)","c9fa11df":"EventChain()","c9fa595b":"paused_3()","c9fa8f2d":"houseFeeHoldover()","c9faa7c5":"isActivated(address)","c9fb975c":"UnicornsSold(address,uint256,uint256,uint256)","c9fbdc36":"referral_fee()","c9fbe626":"TweetRegistry()","c9fca8a5":"rivetzRegister(uint256,uint256,uint256,address,address)","c9fd1955":"getVestingWalletLength()","c9fd83e2":"lastFeePeriodStartTime()","c9ff34ec":"privateTime()","c9ffb6e3":"claimPocketMoney()","ca001903":"AntarctiCoin()","ca00aad3":"closeLottery(uint256,string)","ca0157cd":"getGameIds(address)","ca01b37c":"DASToken()","ca01ba39":"generateTokens(uint256)","ca02dbe3":"Requestprofit()","ca0370f7":"calculateCompoundContract(uint256,uint256)","ca03dab5":"withdrawSubdivsAmount(uint256)","ca03fdcd":"ShowADV()","ca04d26f":"transferReadable(address,uint256)","ca04e076":"getOwnerPixelCount(address)","ca051844":"withdrawBalance(bytes32,uint256,address,uint256,address,uint256,bytes,bytes)","ca056aed":"addTokens(address,uint256,uint256)","ca06226d":"Ecopackcoin()","ca07218c":"setIt(address)","ca077f72":"allocate4ProjectToken()","ca0781a1":"getRateAndCheckCap()","ca079c52":"Upd(uint256,string,address,uint256,uint256)","ca087b96":"FlexFitRewards()","ca093888":"gameIsSundown()","ca0941b4":"findIdByHostPort(string,uint256)","ca0a992e":"IvyKoinContract()","ca0a9c2d":"makeUser(address,string,string)","ca0b1878":"addValue(address,uint256)","ca0b49ae":"getMyCarsIdx()","ca0c0a49":"gameActiveStrRef(string)","ca0c1e62":"computeMerkle(int256,int256,int256[],int256,int256,int256[])","ca0c2024":"minCapPre()","ca0c601c":"maxGoalInICO()","ca0c74be":"buyForInvestor(address,uint256)","ca0c9b5c":"storeTransactionData(address,address,uint256,uint256)","ca0cd7c0":"setUnlockLater(uint256)","ca0d01a6":"_yearTwoSupply()","ca0d0d82":"getMilestoneInfo(uint8)","ca0d6e48":"Mariton()","ca0d9564":"removeAdminList(address[])","ca0dcf16":"mintRate()","ca0e5c27":"ViewProjects()","ca0f1215":"initialSaleDuration()","ca0fe62a":"CryptoMemes()","ca0fe751":"switchRankings(uint8,uint64,uint64,uint64,uint64,uint64,uint64)","ca1149d1":"getUserEntryStatuses()","ca1314af":"getMax(uint256[])","ca13b818":"setWinningTeam()","ca13fb0f":"minInvestCents()","ca154008":"AssetContract()","ca15fb65":"getCardPower(uint256,uint256)","ca1637f5":"getGDemocsN()","ca169e66":"Voodka()","ca17cad1":"getBoxPrice(uint256,uint256)","ca185022":"foundersFundAddress()","ca1861aa":"stockCancelBuyOrder(uint256,uint256,uint256)","ca18da3f":"setGender(uint8,string)","ca18ebbf":"preICOPrice()","ca1929aa":"LogBeerRedeemed(address,bytes32,uint256)","ca1938e5":"houseCutPercentage()","ca1a2eb4":"localPaiementConfirmation(bytes32,bytes32)","ca1a3086":"transferChickenFrom(address,address,uint256)","ca1a4942":"CountExecs()","ca1a9433":"addZiekenhuis(address)","ca1aa5bb":"distributeReservedTokens()","ca1ab2ef":"divideByZero(uint256)","ca1ac5cb":"_createWhale(string,address,uint256)","ca1ad32c":"setPartnerPercent(address,uint16)","ca1b06b2":"ActionAuctionPlat(address,address)","ca1b5aa7":"allowUpgrading(bool)","ca1bf69f":"froze(address,uint256)","ca1c3bb3":"testNonExistingVoteWeight()","ca1c8895":"setPriceOfToken(uint256)","ca1d209d":"fund(uint256)","ca1d6f73":"doTeamMinting(address)","ca1e5bb7":"mintTokensByETHExternal(address,uint256)","ca1e9738":"getPricePerToken()","ca1ea20e":"dataMigration(address,address,address[])","ca1eb8be":"marketaWallet()","ca209c8b":"Bullexi()","ca2145a7":"CoinHot()","ca215005":"getIndividualPrice(address,uint256)","ca2156bd":"redenominate(uint256)","ca2177ef":"NSPFallback(address,uint256,uint256)","ca219b16":"XsearchToken()","ca2317dd":"changeReserveTeamRecepient(address)","ca2322c2":"mashToken()","ca2392f8":"sell(uint8,bytes6,uint32,uint32)","ca24034b":"deathData_v17()","ca2527e5":"batchTransfer2(address[])","ca256771":"weiPerUSDinTGE()","ca2571af":"lockedEarningsOf(address)","ca25bf6f":"IncubatorGlobalGas()","ca25e9c5":"setPurchaseRatios(address[],uint256[])","ca263a49":"registerDomain(bytes8,string)","ca265c0f":"getCurrentSpend(address)","ca267f28":"getRecordCount()","ca2748bd":"transferAndFreeze(address,uint256,uint256,uint256,uint256,uint256)","ca276c07":"updateTierMinimum(uint256,uint256)","ca2785bf":"flushHouseFees()","ca278feb":"VanityURL()","ca27b214":"LucksToken()","ca27eb1c":"createListing(bytes32,uint256,address)","ca281fd9":"renounceControl()","ca28d2ae":"SEKCapitalToken()","ca292622":"getCompany(bytes32)","ca29cae8":"bufferWallet()","ca2a2f99":"_inMoney(uint256)","ca2acfff":"_getTokenAmountWithoutBonus(uint256)","ca2bf047":"predictPacks(uint256)","ca2c139c":"getCurrentQuickPromoBonus()","ca2cd9d3":"marketactive()","ca2cef51":"MiningWarContract()","ca2d553a":"setAccessControl(address,address,uint8)","ca2dfd0a":"removeVerifier(address)","ca2dfff1":"notforked()","ca2e2f49":"firstVestedLockUpAmount()","ca2e8cc5":"markRedeemed(address)","ca2f281b":"FMC(uint256,string,string)","ca2f5a07":"PubRejected(address,string)","ca2f5cb4":"_addPauser(address)","ca2f6487":"Zettabyte()","ca2fd584":"getCommanderPot()","ca30597d":"BoomstarterPreICO(address[],address,address,uint256,bool)","ca30a279":"setTgeAsSaleAgent()","ca313539":"EMISSION_FOR_SALESTAGE2()","ca315ca6":"slashStake(uint256,address)","ca3181e0":"mint(address,uint32,uint256)","ca31879d":"claimToken(address,address)","ca3228d7":"_updatePlayersMilk(address)","ca325469":"destinationAddress()","ca3261c6":"giveAuthorization(address)","ca330563":"isRedeemed(address)","ca33a817":"_guardianVendPrice(uint256,uint256)","ca343d2b":"getICOBonusAmount(uint256,uint256)","ca34a0e3":"iterate_next(uint256)","ca34e1d6":"WineMarket(address)","ca35271c":"numDebtors(address)","ca35bff2":"setCaps(uint256,uint256,uint256,uint256,uint256)","ca36226d":"removeCrowdsaleContract(address,address)","ca3654e7":"requestBonus()","ca36695c":"setUsdPerEth(uint256)","ca368538":"randN()","ca37a9eb":"setWeiPerCent(uint256)","ca37dfad":"crossBalance()","ca37f7d9":"reserverWallet()","ca386496":"setPassword(string,string)","ca392c49":"setPreITO(address)","ca39e5ef":"fight(uint256,uint256)","ca3a3f0d":"_payTicketByEarnings(uint256,address)","ca3aa607":"LendToken()","ca3b5c91":"hasRelation(bytes,bytes,address)","ca3c7519":"getReffName(address)","ca3c8e11":"BRONZE_AMOUNT_NDC()","ca3c9147":"ownerHistoryEntry(uint256,uint256)","ca3dd175":"approveAuthority(address)","ca3e1176":"DaoRulesProposals(uint256)","ca3e1733":"ico1Tokens()","ca3e5333":"isFundManager()","ca3fc092":"CheckPrivilegeAccomplishment(uint256)","ca4028da":"BabyBorn(string,uint256)","ca414006":"setData_11(string)","ca41d16f":"SMTfundAfterPreICO()","ca4223ad":"LATIME()","ca42afda":"getGErc20ToDemocs(address)","ca43801a":"SelfDesctructionContract()","ca4398e3":"StellarToken(uint256,string,uint8,string)","ca43b191":"armySatelitesCount(uint256)","ca4401f1":"investor_addRefBonus(address,uint256)","ca441b85":"randomBlockStart(uint256)","ca446dd9":"setAddress(bytes32,address)","ca448a88":"revokeAsset(bytes32,uint256)","ca44c8e4":"testMemoryIntegrityCheck4Bytes()","ca46e41f":"CROSAIR_VOUCHER_LIMIT()","ca4742f1":"getRN(uint256)","ca482264":"GetApplicant(uint32)","ca482849":"_finalSupply()","ca4858af":"evacuateTokens(address)","ca48b0be":"setupToken(address,address,address)","ca4938fb":"totalFreezed()","ca495022":"weiFromExchange()","ca4a0298":"maxAirDrop()","ca4a2bf7":"NewTokensSold(uint256,address,uint256)","ca4a3df3":"winlose()","ca4b208b":"developer()","ca4b4fd6":"remove(bytes32[],bytes32)","ca4bc6ae":"getBurritoData(uint256)","ca4bd513":"FundsRefunded(uint256)","ca4c8fc6":"OneTestCoin()","ca4cbf67":"getUint(address,string)","ca4d1435":"GWGF(uint256,string,string)","ca4e02d0":"Jump(address,uint256,uint256)","ca4e4863":"VECTORZILLA_RESERVE()","ca4f0911":"preICOPush(address,uint256)","ca4ff630":"priceForStage(uint8)","ca5271a1":"funcWithoutArguments()","ca52cc86":"CollectibleOffered(uint256,uint256,uint256,address,uint256)","ca53135a":"min_bet()","ca5397c7":"cancelSellOffer(uint32)","ca5450ce":"any_customer_payments_yet()","ca5454db":"createTransferAgreement(uint256,uint256,address)","ca54ea4e":"pointOf(uint256)","ca5541c1":"nextRoundReserve()","ca555f2c":"setInitLockedAccount()","ca558b25":"DataContacts(address)","ca55954c":"getTokenHolder(uint256)","ca56106c":"testCopy()","ca561d4d":"KiemTraNamNhuan(uint16)","ca579642":"GroupBuy(address)","ca585774":"RewardForum(uint256)","ca588f14":"delAdmin(address,address)","ca58a06c":"managerKey()","ca58d2b4":"FUNDS()","ca58da1a":"changeReserve(address)","ca59f45b":"transferRecord(bytes32,address,uint256)","ca59fa8d":"_distributedTo(address,uint16)","ca5a3b4a":"isAllowedWhitelist(uint256,uint256)","ca5a3f38":"getDaysPassedSinceLastRefundBallot()","ca5a899c":"totalStashedPayouts()","ca5adadc":"processEthPulicFunding(address)","ca5b4207":"log8(uint8)","ca5b428f":"Police_2()","ca5b8a52":"REGULAR_CATEGORY()","ca5c058d":"founderTokensLockedUntil()","ca5c1547":"preSaleFirstPrice()","ca5c7a34":"getLand(int256,int256)","ca5c7b91":"lockedSupply()","ca5d0880":"airDrop()","ca5eb5e1":"setDelegate(address)","ca5f4282":"amountWanted()","ca607c4e":"transfer_other(address,address,uint256)","ca60f409":"CurrentIcePrice()","ca61295b":"removeFRA(address)","ca615662":"testFailCreateWithForeignParentNotInUse()","ca6158cb":"itemId()","ca61cdac":"testSub()","ca61e9b3":"verifyHashWithPrefix(bytes32,uint8,bytes32,bytes32)","ca621ac3":"DEVELOPER_RESERVED()","ca626232":"exchangeAdapterManager()","ca628c78":"withdrawToken()","ca632cc5":"bountyPaid()","ca639025":"getNujaRegistry()","ca63a55b":"getHotelsLength()","ca63b5b8":"freezingCount(address)","ca63f057":"DISCOUNT_STAGE_ONE()","ca6490cf":"elementFunction()","ca64a02d":"withdrawBalances(address)","ca64a095":"viewNextRelease(address)","ca64ad89":"getNotPayableTime(uint256)","ca64cd34":"marketCapRed()","ca6528cc":"increaseBalanceOrWithdraw(address,address,uint256,uint256)","ca6649c5":"joinGame(uint256,uint8)","ca668eb2":"MyERC20Token(string,string,uint256,uint256)","ca66a9c7":"blocktubeCoin(uint256,string,uint8,uint256,string,string)","ca67065f":"tokensAreFrozen()","ca67628f":"presaleFemaleEnd()","ca68968e":"ConversionRates(address)","ca68a45d":"createLastWill(address,string,string,string,uint256,uint256)","ca698873":"countWhitelists()","ca699de1":"StagedRefundVault(address)","ca69e323":"maxToken()","ca6ad198":"oraclizeMinCallbackGasPrice()","ca6ad1e4":"setCustomGasPrice(uint256)","ca6b72fd":"XtracoinToken()","ca6c7400":"getBuyerSignature(string)","ca6cf796":"startWinery(string,string,string,uint256)","ca6cfd95":"_createToken(string)","ca6d56dc":"addMember(address)","ca6d5d0c":"getLockedTokensInGroup_(address,uint256)","ca6f8295":"RDOToken()","ca7044c3":"RelentlessConscience2Token()","ca708230":"funnel()","ca709a25":"getFeeToken()","ca710013":"hasAllowanceToRecieveTokens(address,address)","ca7140ad":"playerForceGameEnd(uint8,uint256,uint256,int256,uint256,uint256)","ca722cdc":"settleBet(uint256,bytes32)","ca7230e9":"transferFromRegister(address,uint256)","ca7275cc":"SpiceHours(address)","ca733c32":"commandAddress()","ca73419e":"addAddressesToBlacklist(address[])","ca7390ab":"mulDivCeil(uint256,uint256,uint256)","ca740c8b":"IncreaseFunding(uint256,uint256)","ca74124c":"addUser(uint256,uint256,uint256,string,string)","ca7430ea":"transferunlock()","ca758f42":"stcMaxBonus(uint256)","ca75b954":"PRESALE_HOLDER()","ca75cbfe":"submitTransaction(address,uint256,address)","ca75d770":"m_Owner()","ca760021":"withdrawChamp(uint256,address)","ca761365":"getDebris(bytes32,uint8)","ca76e548":"updateRest()","ca76ecce":"gettotalBondDivs(uint256)","ca7729f7":"_parseIntScientificWei(string)","ca77a6e8":"handleALU(uint256,int256,uint256,uint256,uint256,uint256)","ca77ab65":"calculate()","ca77ab8a":"getNextFile(bytes)","ca77ba31":"totalIssuanceCurrentBalanceSum()","ca77ea25":"createTokenByAtes(address,uint256,string)","ca78e65b":"disableManuallyMintTokens()","ca790380":"AstatosToken(address)","ca792754":"_assign(address,uint256)","ca79e2f2":"mintLongTermTokens(address,uint256)","ca79f967":"abortInactiveFight(uint256)","ca7a08ef":"compensate(address)","ca7b15da":"tokenRate5()","ca7bfc5d":"FinanceChain(uint256,string,string)","ca7c4dba":"getEtherPrice()","ca7c4e35":"OmenoToken()","ca7c8d07":"Medcash(address,address)","ca7c9296":"calculateFundedValueTokenToken(address,address,uint256,uint256,address,uint256)","ca7c95f2":"PRE_SALE_20_BONUS_MIN()","ca7ca5b4":"removeMember(address,bytes32)","ca7d18fe":"CORPayCoin()","ca7dc5b1":"getNumberOfTweets()","ca7e321f":"startBuyBackDate()","ca7e88ba":"setOutcome(bytes32,uint8)","ca80b489":"setGenes(uint256,uint256)","ca8127d4":"tradingFeeModifiers(address,address)","ca819d35":"getUserIDByWallet(address)","ca82a7c8":"rentModified(uint256)","ca82b5aa":"playBps(uint8)","ca84c176":"bonusAfterPresale()","ca84d17d":"payLeaderAndDev()","ca855a57":"SecureEgg()","ca85dbfc":"quickSetStarterClasses()","ca862298":"BitcoinWorld()","ca8695a4":"resetNewTokens()","ca8786c9":"bacancyToken()","ca879753":"burnMe()","ca87cb2a":"MRASToken()","ca87e67e":"setSaleTime(uint256,uint256)","ca87eb50":"Seo(address,uint256)","ca8836d2":"isPending(uint256)","ca88552d":"stock(address)","ca887dc4":"getAllGameStatistic()","ca88a7b0":"_shareToReferer(address,uint256,uint256)","ca88b3b2":"destructAll()","ca88bd5b":"isAccountBlocked(address)","ca88c5bd":"_getChallengeSuccess(uint256,uint256,uint256)","ca8a2c08":"createEstate(int256[],int256[],address)","ca8ab933":"countInstructors()","ca8b39c8":"setRegionBlockUpdatedAt(uint256,uint256)","ca8b42e4":"max_index()","ca8ee75a":"read_u8_array()","ca8f8ff3":"isExist(uint256)","ca8f9651":"voterVotingTime(address)","ca922078":"fundingStage(bytes32)","ca929e12":"transform(uint8,uint8)","ca92a136":"result_hash()","ca940bba":"getPastBet(uint256)","ca94452d":"setCrowdsaleTransfer(address,uint256)","ca94692d":"abiSignature()","ca949a1d":"blackjackValue(uint8)","ca94a927":"UnicornManagement(address)","ca95402d":"ExpRegistrar()","ca965c3f":"transferCEO(address)","ca96d7fc":"claim(bytes32,bytes32,uint8)","ca970bac":"donateDivs()","ca972cd4":"registerNewAccount()","ca97a248":"MoveRerolled(uint256,uint256,uint256)","ca97d274":"updateTokens3PerEth(uint256)","ca990859":"getPlayedInfo(address)","ca997200":"getForecastData(bytes32,bytes32,bytes12,uint8)","ca9a06df":"calcReservedTokens(uint256,uint256)","ca9a9386":"getNickname(address,address)","ca9c2862":"getCrydrController()","ca9c4b33":"hatchEgg()","ca9ccd3d":"secondRoundTime()","ca9d07ba":"refill(uint256)","ca9d0f8d":"process2(uint256,address)","ca9defb7":"ownerTransferZTH(address,uint256)","ca9e1993":"_transfer()","ca9ec138":"toEthSignedMessageHashBytes(bytes)","ca9efc73":"left81(uint256)","ca9f0803":"reservedInvestors(address)","ca9fa49e":"halfyearteam_trade_date()","caa02e08":"winnerCount()","caa035d6":"getTokenSaleType()","caa03a3e":"getPlayerId(string)","caa0f0af":"devAllocateTokenInMinutes(address,uint256,uint256)","caa0f92a":"getNextTokenId()","caa14e36":"setGiveBirthType(bool)","caa25756":"registerProductContract(address,address)","caa3b6e4":"TicTacToe()","caa3d559":"TRCExchangeRate()","caa4041e":"getAccountLimit(address)","caa4c5d0":"assumeControl()","caa5aba2":"ConfigurableParameters(uint256,uint256)","caa648b4":"getTotalValue()","caa67873":"CreateKDT(address,uint256)","caa6fea4":"emergency()","caa7590d":"MIN_INVEST_BOARD()","caa774ed":"petOnLeaderboards(uint64)","caa7b4b8":"ABToken(uint256,string,uint8,string)","caa7be13":"ClientPaymentEvent(address,uint8,uint8,int256)","caa7fd06":"cancelBid(uint256,uint256,bool)","caa82ab2":"TokenSendFail(uint256)","caa872ae":"_takeAll(address,address,uint256)","caa877e7":"buyFor(address,address)","caa8e084":"div(uint32,uint32)","caaa2045":"addressToNumTowns(address)","caaacb12":"totalForMining()","caab0acc":"testThrowCreateRetracted()","caab21d2":"Ore()","caabe889":"inAllocationLockPeriod()","caac87d0":"airdropPlays()","caad5b18":"withDrawEther(uint256)","caade55b":"AddrPartnerPocket()","caaed302":"rejectMilestone(uint256)","caaee91c":"setProxyOwner(address)","caaf2dd7":"getInitialAnswerResult(uint256)","caaf6d21":"numLoveItems()","caafa055":"ROUND_7_PRESALE_BONUS()","caafc163":"process2(uint256,address,address)","cab0198f":"emitTokensToOtherWallet(address,uint256,uint256)","cab067c0":"initialiseCrowdsale(uint256,uint256,address,address)","cab09273":"getUsedPaymentSupply()","cab0f632":"changeSponseeAddress(address)","cab17220":"VotesNecessary()","cab36e92":"addHash(uint256,string)","cab37586":"partnerWithdrawed(address)","cab39db9":"_updatePhase(bool)","cab3ad2c":"BONUS_ICO_WEEK_ONE()","cab47da7":"RATE_FOR_WEEK2()","cab54df1":"testHitPresaleCapPreDistribute()","cab5c0f1":"_incrementState()","cab60267":"getGameCalculatedStats(uint256)","cab63661":"setPublisher(address)","cab6eade":"_destroyDeed()","cab7e3d9":"purchaseCars(uint256,uint256,bool)","cab7f0cc":"test_insert_findWithHintNextRemoved(int256)","cab7f521":"invoke()","cab896dc":"gameCost()","cab925a3":"BurnReceipt(address,uint256)","cab9c32a":"sellLimit(uint256,uint256)","caba203d":"Loyalty()","cabb3a3a":"isAlphaNumeric(string)","cabc0f43":"isLotteryOpen()","cabc737c":"_addMaster(address)","cabcaaa0":"associateWithFile(bytes32)","cabd27de":"Motion(address)","cabd734f":"reject(bytes32)","cabe0452":"getCampaign(bytes32)","cabe2c0a":"levelEndDate()","cabf72e5":"WSBCCoin()","cabf8493":"balancesImporter4()","cabfb934":"replace(address)","cabfd1bf":"allocateTokens(address)","cac07bbf":"distributeTeamCut(bool,uint256)","cac12d2d":"tokenGenerationCap()","cac35112":"tokenRelease()","cac37f93":"totalTokensWithdrawn()","cac3e64a":"checkToken()","cac3f6c9":"percOf(uint256,uint256,uint256)","cac625e6":"transferTokenOwnership(address,address,uint16)","cac6d78f":"ToexCoin()","cac6edd8":"rightLottery()","cac77df7":"__transferFromToICAPWithReference(address,bytes32,uint256,string)","cac7db8a":"addUserToList(address)","cac7fc71":"allBalances(address,address,address[])","cac8d538":"setERC20Contract(address)","cac92fe1":"Aeroneum(address,address)","cac952ae":"isValidCustomerTxPaymentForMCW(address,bytes32)","cac98d6d":"getCCH_edit_24()","cac9a94e":"changeWalletOwnerAddress(address)","cac9ffbd":"fillIndexedBid(uint256)","cac9ffee":"unWhitelistAddress(address)","caca66bd":"transferPlatformship(address)","cacb27f4":"_D_sendToTeamEthContract()","cacc24eb":"transferFromViaProxy(address,address,address,uint256)","cacca238":"getBaseAmount(uint256)","cacca4a0":"approveTransfer(uint256)","caccd7f7":"developerAddress()","caccd805":"daoPOLSKAtokens()","cacd7a66":"creatUserID(string)","cace467e":"cancelSell(uint256,uint256,uint256,uint256)","cace7bd3":"claimRewardK(uint256)","cace8f37":"dragonGirlLotteryNumber()","cacf1e0e":"getPaymentsCount()","cacf5a33":"calculateVestedAmount()","cacf66ab":"genesisTimestamp()","cacfa24a":"_isBuilt(uint256)","cacfb535":"unpackAll(uint256)","cacfd8e9":"playTypes(uint256)","cad079ed":"investedUSD()","cad0899b":"sum(uint256,uint256)","cad1c663":"getChildOperation(bytes32,uint8,uint8)","cad1d39b":"getPersonalAirdropUnlockTimestamp(address,address)","cad2042f":"O2OToken(uint256,string,string)","cad27ae1":"random(uint64,uint8)","cad283a0":"EtherBetIO(address)","cad3d24d":"calculateBoatFee(uint256)","cad41357":"darknodeBond(address)","cad461ea":"setWeiPerUSD(uint256)","cad4ae37":"_addToBlacklist(address)","cad60d17":"freezeTokens(uint256,uint256)","cad66781":"NumOfStudentsRequests()","cad6dd1f":"sumPreICOUSD()","cad7214d":"supplyRound4()","cad80024":"left58(uint256)","cad916ec":"DEVELOP_CAP()","cad93688":"Test2(uint256)","cad9639d":"DEXK()","cad9642b":"getReportCount()","cad987f5":"updateAppreciationStep()","cadaacbf":"g(address)","cadb1166":"modifyWhiteList(address[],bool)","cadb3031":"timeoutY()","cadb48d9":"contractCreationBlockTime()","cadb5236":"vestToAddressEx(address,uint128,uint8,uint32)","cadbead4":"Pentacoin()","cadc958f":"VoteOnTransferStarted(address)","cadca796":"setShareHolders(bool,uint256,uint256)","cadcbce4":"PartComplete()","cadd888b":"getRewardToken(uint256,uint256)","cade3a5d":"_createPixel(uint24,uint32,address)","cade4f31":"collected_crowd_vitas()","cade77fa":"readAddress(address)","cadec1b2":"Registrar(address)","caded61f":"saleRatio()","caded711":"subOpenRoomCount(address)","cadf338f":"valueOf(uint256)","cadf74e2":"_unclaimedChickenOf(address)","cae039eb":"getWishTime(uint256)","cae07d2a":"TOKEN_SCALE()","cae15051":"tokenReceived(address,uint256)","cae20b59":"getAnimalIdsWithPendingCostume()","cae21530":"fightZeroMonster()","cae270b6":"sell(address,address,uint256)","cae342f6":"dontShowMeInTrace()","cae3c254":"publicFundingWhiteList(address)","cae3d482":"vehicles()","cae44e83":"EthereumCoin()","cae4d676":"sendRefund(address)","cae523c1":"testOwnedTryAuthUnauthorized()","cae57913":"addTwo(uint256)","cae5c8c3":"APP_STORE()","cae6047f":"INVERSE_BASIS_POINT()","cae61d2e":"offer(string,uint256,uint256,address)","cae6b9c5":"tapPoll()","cae6ff18":"SKPT()","cae774b3":"maxInterval()","cae8e284":"newProposal(address,uint256,string,bytes32)","cae8eb2f":"ctrtToken()","cae96610":"WorldWifi()","cae96926":"is_creator(address)","cae98d4f":"r1(address)","cae9a07d":"changeManager()","cae9ca51":"approveAndCall(address,uint256,bytes)","caeafe6a":"stageStartTime()","caeb2539":"PreSaleBuy(address)","caeb2e2c":"_emitSkillAreasSet(address,uint256)","caeb30e9":"Configurator()","caebb256":"channelManagerByAsset(address,address)","caec390e":"getinfolaff(address)","caec3c79":"getBatchTransfer(address,address)","caecc5aa":"turnrefund()","caed4f9f":"DataService()","caed80df":"registries(address)","caee04b5":"AddGameCategory(string)","caee1daf":"creationRateOnTime()","caee262c":"sharesRec(uint256,uint256)","caee3305":"firstVestStartsAt()","caee4e18":"CommunityVotes(uint256)","caee7c78":"grantsCreated()","caef2181":"GetTimeMultiplier(uint256)","caef5dec":"getSubPayeesCount(bytes32)","caef6a84":"ETHMONEY()","caefb79e":"setCaps(uint256,uint256,uint256)","caefc5d5":"SemfaxToken()","caefdbe9":"FWDaddrETH()","caf05ce3":"isStopPlay()","caf0887d":"split(uint256,uint256,uint256)","caf19e5a":"toText(bool)","caf1bb7c":"repoBase()","caf29765":"PERCENTAGE_DIVISOR()","caf306c2":"ratePerWeiInMainICO()","caf439cb":"angelBurn(address,uint256)","caf44683":"test2(uint256)","caf597f3":"INVEToken(address)","caf66171":"bigRoundMaxRoundNum()","caf6cb3f":"marketDefaultFeeHigh()","caf6e1c9":"setClosedManually(bool)","caf6fe1a":"randomGenes()","caf71743":"createSellOrder(address,uint256,uint256,uint8[],address[5][],uint256[6][],uint256[],uint8[],bytes32[],bytes32[])","caf798d7":"transferRegion(uint16,address)","caf7caf1":"_multiplyDecimalRound(uint256,uint256,uint256)","caf807a1":"closeEth()","caf91b30":"airdrop(uint8,bytes32,bytes32,uint256)","caf9bf58":"getContributionsCount(address)","cafa1cde":"PajCoin223()","cafa22d7":"setLeftICOTokens(uint256)","cafab7e1":"viewPetitionShareholderWithAddress(address)","cafaed51":"deadlineParticipation()","cafb2202":"invested()","cafbc49d":"createProduct(bytes32,string,address,uint256,uint8,uint256)","cafbcc8a":"inInnerScope(uint256,uint256)","cafc0fbd":"isRegulated(address)","cafd3d52":"setUpCrowdsale()","cafe0e90":"setFee(string,uint256)","cafe2f19":"setReachCapped()","caff4b03":"Response(bytes32,uint256)","cb009d2c":"KellerWilliams(uint256,uint256)","cb00e7f8":"MCTContractToken(uint256,address)","cb0177a0":"disableAllocationModificationsForEver()","cb0195ee":"changeDeveloperTemplateAmountLimit(uint256)","cb01a9bf":"payRent(bytes32,string)","cb01c70c":"episodesNum()","cb01cd02":"masscreate(uint256,uint256)","cb01f15c":"GetLogMessageWarning()","cb01f431":"maxTokensToSaleInClosedPreSale()","cb0210a0":"updateReputation()","cb029785":"Aphrodite()","cb02ba28":"multiSend(uint256,address[])","cb03e43b":"AnimalFoodToken()","cb040e0b":"createTemplate(string,bytes32,bool,address,bytes32,uint256,uint256,uint8,uint256)","cb05b93e":"getEth()","cb07b94b":"getLastRegionId()","cb09abc2":"resolveProp(uint256)","cb09b0d0":"ownerAPI()","cb0a2d95":"HashtagToken(uint256)","cb0a3889":"setPreIcoStart(uint256)","cb0ab425":"getIPFSHash(address)","cb0b6161":"_calcRelease()","cb0b7b03":"setContributionMinimum(uint256)","cb0cedb8":"getFineLevelOfAddress(address)","cb0d3133":"setEscrowedProjectBalances(uint256,uint256)","cb0d3981":"getMintForReportingParticipantTargetValue()","cb0ef7d0":"hgtRates(uint256)","cb0f86ab":"cards_black(uint256)","cb0fb059":"getNumberTwoArgs(address,bytes4,address,address)","cb10e0c5":"getLastDuel1()","cb10fa76":"safeToMul(uint256,uint256)","cb11526d":"moving()","cb117f0c":"approveAndCallAsContract(address,uint256,bytes)","cb122a09":"setFee(uint8)","cb12b48f":"me()","cb12be81":"prometheusShipMinted()","cb12fc1d":"LAMDEN_DECIMALS()","cb1374a2":"claimTokens(address[],uint256[])","cb146814":"baseETHBalance()","cb149b09":"unlockWorker(address,address)","cb14a5cf":"treeDetails(uint256)","cb14b170":"SubscriptionModuleImpl()","cb14d93b":"getHash(bytes,address,uint256)","cb1579ec":"checkOrderBatch(uint256[48])","cb15d07b":"getOfferAmount(uint256)","cb161f8a":"AddDiv()","cb16415f":"fundsToOwner(uint256)","cb1650b4":"createThread(string,string)","cb16d4a2":"sendEther(uint256,address)","cb16e6d0":"earlyParticipantWhitelist(address)","cb170735":"createBools(bytes32[],bool[])","cb19bf53":"Testtoken5()","cb1a32a4":"aotLength()","cb1a7b1d":"tokenDelta(address,address,address,uint256,uint256,uint256)","cb1aaa31":"distributed_bounty()","cb1ab340":"setFinancialAdmin(address)","cb1b82b7":"getuserbalance(address,address)","cb1ba60f":"voteOnElection(address,address,address,address,uint256)","cb1be21a":"configureWallet(address)","cb1c2b5c":"MIN_STAKE()","cb1c8b6a":"purchaseDefense()","cb1d8418":"getForkingMarket()","cb1d9d63":"setENGCommunityAddress(address)","cb1de087":"transferFromFST(address,address,uint256)","cb1e4389":"isMajorityConfirmed(bytes)","cb1fa715":"setSingleWithdraw(uint256)","cb1faac1":"leftVotes()","cb1fc276":"createPassportByOwner(address)","cb1fc7bc":"totalSzaboInBids()","cb207166":"LifeFactor_iv()","cb227cae":"getPOOL_edit_18()","cb22c0aa":"setBudget(address,string)","cb22d392":"windowFinalBlock(uint256)","cb22d41b":"numBeneficiaries()","cb22fd59":"setFeeCharge(uint64)","cb238ffa":"returnHashLong(address,uint256[3])","cb2410b9":"changeContentData(uint256,uint256,bytes32)","cb244f65":"koreanCitizen()","cb24e8f1":"Foorp()","cb25d9a2":"JFDToken()","cb27bdc1":"revealDeadline(bytes32)","cb27f28a":"endCrowdFund()","cb282253":"totalEthContributed()","cb28ba6a":"AIToken(uint256)","cb28c716":"createKycData(address,string,string,uint256,uint256,string,string,string,string,int256,uint256)","cb293e7a":"rentRentable(bytes32,address)","cb294dc5":"ULTRONEUM()","cb2971b1":"eosTokenAddress()","cb297ef0":"_performRenewal(uint256,uint256)","cb29881c":"createEggScheme(uint256,uint256,uint256,uint256,uint256,uint256,bool,bool)","cb29eee0":"medsupply()","cb2b34d6":"setSalary(uint256)","cb2b5668":"EVBChain()","cb2b9031":"addressToBytes(address,address)","cb2bea55":"setEmergencySecrets(uint256,uint256)","cb2c05dc":"viewInitialPricePerShare()","cb2c8723":"addUtilityHolder(address)","cb2e0814":"iii(address)","cb2e1d10":"icoRound4()","cb2e46f3":"endTimer()","cb2ec895":"deposit(bytes32,address,uint256,bool)","cb2f7b87":"update(uint32,uint128,uint128)","cb2f7c49":"hashDifficulty(bytes32)","cb2fe520":"remainingTokenBurnt()","cb31b6cd":"multiTransferFrom(address,address[],uint256[])","cb3204a8":"getKycHash(uint256)","cb338436":"doSendProfits(address)","cb33e7fa":"doTrade(address,address,uint256)","cb35ef2c":"demotest()","cb3687df":"core(uint256,uint256,uint256,uint256)","cb3694ba":"getManualInvestorsCount()","cb379765":"tsauction(uint256)","cb381b61":"teamETHUnlock1()","cb381c3c":"setGas4Token(uint256)","cb388b9b":"test_callIt()","cb38c7b4":"getWithdrawalList(address)","cb393ecb":"Dice5()","cb3993be":"decreaseApprovalAndCall(address,uint256,bytes)","cb39aafb":"validateRequest(bytes32[8],bytes,bytes,bytes)","cb3a11f9":"withdrawUserSpecifiedFunds(string,uint256,uint8)","cb3ab271":"WYQToken(uint256,string,string)","cb3ae150":"Playforbulktoken()","cb3b0c79":"LotToken()","cb3bc227":"LogBeerBought(uint256,address)","cb3c28c7":"trade(address,uint256,address,address,uint256,uint256,address)","cb3cb085":"validateTrade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,address)","cb3ce26e":"m_owners()","cb3cf99a":"decode(bytes,uint256,uint256,uint256,uint256,uint256,uint256)","cb3d6b5f":"devTeamWithdraw()","cb3e394d":"transferFromWithFee(address,address,uint256,uint256)","cb3e64fd":"unhalt()","cb3ebec2":"ownerDividend()","cb3eecc9":"getNewInstance()","cb3eef2c":"allWorkers()","cb3fcb56":"setGrowthTokensPercent(uint256)","cb4153e9":"destroyNinja(uint256)","cb421a21":"denemekontrat()","cb424c24":"HZRToken(address)","cb42a77b":"stringTobytes32(string)","cb43269d":"getRegistryImplementation()","cb4360d9":"allocateToken(address,uint256,uint256)","cb43e079":"drain_block()","cb44211e":"addApproval(address)","cb44b53d":"ResolutionProposals()","cb457d47":"unlimited()","cb45a294":"getSecondTokens()","cb4717b2":"SetProperty(bytes32,uint256,uint256,uint256)","cb4735f2":"estimatedFundingAmount(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","cb4799f2":"getMetadata(uint256,string)","cb47a8ce":"MultiChampion()","cb47abc7":"getTotalNumberOfTransactions()","cb48e1a5":"assignShareTokens(uint256)","cb4a15c5":"checkStringLength(string,uint256,uint256)","cb4b0105":"Unhold(address,uint256)","cb4b3710":"setStopSelling()","cb4b9db1":"EchoChainToken()","cb4bc2e9":"tryauthenticate(bytes)","cb4bd883":"updateRef(bytes32,string)","cb4be0bb":"getTurtlemasterReq()","cb4c86b7":"funding()","cb4c88ae":"MediatedTransferStatusModified(uint256,bool)","cb4c8ee4":"isRSPScience()","cb4d3d67":"AddedTokenHolder(address,uint256)","cb4de968":"ICO_BASE_PRICE_IN_WEI()","cb4e75bb":"smbl()","cb4e7fdc":"icoIsRunning()","cb4f1d85":"getPolicyHolder(bytes)","cb50301a":"unsoldAddr()","cb510e97":"isStaff(address)","cb51c418":"_toString(address)","cb51f777":"TOKEN_PRICE_NUM()","cb526229":"RefundChequeByHash(uint256)","cb52926a":"getBoughtAssetPacks(address,address)","cb52c25e":"updateAmountRemainingForSale(uint256)","cb553ac9":"sweepWizardCommission(uint256)","cb55adfb":"getStrategyTokenAndWeightByIndex(uint256,uint256)","cb560ac4":"winningMultiplier()","cb562fb3":"Uniond()","cb56d626":"testFailBlobStoreNotRegistered()","cb56dd79":"getFinalState(uint256)","cb56e40b":"getTrader(uint8)","cb574b8c":"buyUpgrade()","cb577480":"prepare(uint256)","cb5829ab":"Revision()","cb5853a8":"claimTaxex(uint256,uint256)","cb58594e":"airDropShadowMoney()","cb586251":"MintableMultiownedToken(address[],uint256,address)","cb5b6bef":"setPriceStep8(uint256)","cb5bf9b8":"EthersRaised()","cb5cf43f":"supplyReady()","cb5d0646":"Presale2Sold()","cb5e4805":"NvcFundCoin()","cb5e7d2d":"newMember(address,bytes20,uint64)","cb5e891f":"_setActiveSupply(uint256)","cb5f18db":"get_ads()","cb5fa63f":"getRoundEth(uint256)","cb5fd01f":"TestToken(address,address,address,address)","cb5fe36e":"VESTING_2_DATE()","cb60f8b4":"sellStartTime()","cb6142c9":"freezeAllAccountInEmergency(bool)","cb61522d":"MILLIODS()","cb61b42d":"updateShares(uint256,uint256,uint256)","cb61b49e":"_setRate(address,address,uint256)","cb6291cb":"ownerSendTokens(address,uint8,uint256)","cb6308f1":"approveVersion(address)","cb6367d1":"verifySignatures(bytes32,uint8[],bytes32[],bytes32[])","cb637d85":"changeAccountService(address)","cb639322":"realReserve()","cb63da4e":"ALLOC_RES()","cb63ddb6":"makeProposal(uint8,uint256)","cb642180":"_updateNodeHeight(bytes32)","cb645ae2":"addOneRequest(address)","cb64a37b":"createSeratioStake()","cb64d74d":"etherFeePercent()","cb656a13":"adviserSold()","cb65ad66":"MobileAppSupply()","cb65c0f5":"withdraw_excess_tokens(uint256)","cb662fe1":"claimedList(uint256)","cb67f20f":"SaleClosed(uint256)","cb67f948":"unlockTokens(address)","cb68780f":"GetICOData(uint256)","cb6890d9":"setAccount(address,uint256)","cb6ad855":"log10Ceiling(int256)","cb6af4cb":"createChannel(string)","cb6b1f05":"cf2Wallet2Pct()","cb6b25f3":"votePassed(uint256)","cb6b8699":"getPI_edit_5()","cb6bfa03":"BNIToken()","cb6bfd23":"CyTestCoin(uint256,string,uint8,string)","cb6c1655":"tokensFor1EthP1()","cb6cec4b":"getIpfsAfterTitle(bytes32)","cb6d0c5f":"minimumDurationInBlocks()","cb6da9da":"takerCount()","cb6e3fa9":"shouldUpdateFunder(address)","cb70d9a7":"changeUserCertificate(bytes32)","cb712535":"_transferFrom(address,address,uint256)","cb7129a3":"resolvePriorBets()","cb724422":"testPayTokens()","cb739476":"MAGExCoin()","cb739c0f":"changeRateLoss(uint256)","cb740c61":"grant(address,uint256,uint256,uint256)","cb742358":"virtualBalanceOf(address)","cb752679":"buyTokensWithPoly(uint256)","cb757e92":"REGO()","cb758a89":"addDataPoint(uint256,bytes32)","cb76937c":"getUserBetsTimeStampInARazInstance(uint256,uint256)","cb7729d3":"shiny()","cb774d47":"startingIndex()","cb775d5a":"consumePower(uint256)","cb77ed34":"_getProviderSupply(uint256)","cb78bebc":"USER_BUY_LIMIT()","cb78c9f0":"flips()","cb795a64":"allowedBuy()","cb79d573":"maxCompanyValue()","cb79e31b":"votingRightsOf(address)","cb7a0a6f":"getPlayerSpaceshipBattleModeById(uint256)","cb7aac1e":"transferTokensFromProjectFundAddress(address,uint256)","cb7acdd9":"hola()","cb7b3f0a":"readPaymentChannels()","cb7b3fb9":"KinguinIco()","cb7b4ad4":"canCPCreateInFactory(address,address)","cb7b8673":"setTokenExchangeRate(uint256)","cb7bba39":"lockaddress(address)","cb7bba61":"prove(string,string)","cb7c05e7":"verify_fund()","cb7c225e":"Send_TrustlessTransaction(address,uint256)","cb7c30f2":"m_D_n()","cb7d38ac":"changeStartPreSale(uint256)","cb7d8ef2":"spark()","cb7e70fa":"buyTokensOnInvestorBehalf(address,uint256)","cb7e9057":"dispatcher()","cb7e9bf1":"rewardHistoryMapOf(address,uint256)","cb7ef63d":"Coinage(uint256,uint256,uint256,uint256,uint256,uint256)","cb7fd9db":"checkVeracity(string)","cb802c8b":"getInvoice(bytes32)","cb80bd60":"LogRefundFailed(address,uint256)","cb810ea9":"sendTokensSingleValue(address,address,address[],uint256)","cb81fecf":"lockRequestCount()","cb821f03":"calculateClaimByIndex(address,uint256)","cb82d5df":"canMakeNoFeeTransfer(address,address)","cb84e69e":"setMessageMaxCharacters(uint256)","cb8523c6":"addAllowed(address)","cb856252":"getFreezeList()","cb859c09":"getGameRules()","cb85f175":"WhiteListedInvestorAdded(address,string)","cb86df95":"moveStartDate(uint256)","cb8820ef":"setWriterId(address,bytes32,bytes32)","cb884207":"deathData_f5()","cb885a36":"Crowdsale(address,uint256,uint256,uint256,address,address,uint256)","cb89558d":"AgreementHashRu()","cb899024":"defrostToken()","cb8a67ed":"ownersForChange()","cb8b4b83":"CollectERC20(address)","cb8b99b2":"_addCryptantFragments(address,uint256)","cb8c2982":"getMyKebabers()","cb8c478a":"activeTime()","cb8cb4a3":"getGoals(address)","cb8cd7cb":"transferFee_()","cb8d0f46":"tstop()","cb8ff46f":"koinconekt()","cb908d78":"_updateEthereumPrice()","cb912ffb":"tokenCountSet()","cb918634":"setDrawP(uint256)","cb91a6ba":"setGemPerMiner(uint256)","cb91aec7":"getFreelancerContracts(address,address)","cb91f1c2":"periodPreITO_endTime()","cb92042c":"removeShare(address)","cb923813":"saled()","cb92bfa1":"_computeCurrentPrice(uint256,uint256,uint256,uint256)","cb92c28d":"rewardEvery1000Draw7(uint256)","cb92cb52":"BuyBackStart(uint256,uint256,uint256)","cb930934":"KopihitamToken()","cb93abb2":"BUYER_STEP_1(bytes32)","cb93e347":"CryptoGamesMarket()","cb93f7ef":"withdrawDevFee()","cb944e24":"saleCapUsd()","cb945312":"testEqual()","cb949213":"addressToPurchasedTokens(address)","cb949e51":"getCustomer(address)","cb950c37":"updateValidMCAmount(uint256)","cb9580e0":"TotalPaid()","cb95a6f6":"Bounty(address)","cb96012e":"hashTo256(bytes32)","cb965ae9":"allKeys()","cb96b0d6":"MAX_EXCHANGE_FEE_PERCENTAGE()","cb96f11d":"Oversight()","cb9756ad":"buyClimateCoinsAgainstEther()","cb9854a2":"confirmSwap()","cb985708":"investorWalletAddress()","cb985dd1":"MARKET_SHARE()","cb990457":"holdersByIndices(uint256,uint256,bool)","cb99cbac":"startServer(uint256)","cb9a20d0":"MINI_GAME_ADD_TIME_DEFAULT()","cb9a3251":"finalizeMany(uint64[])","cb9a32a5":"promoMasterpiecesCreatedCount()","cb9a5edd":"availableLand()","cb9aac64":"usesLibrary()","cb9ae707":"latestDifficultyPeriodStarted()","cb9b3a3c":"getCCH_edit_4()","cb9bdf45":"tokenSoftcapIssued()","cb9c8505":"throwIfStartPastBlocktime()","cb9d6176":"LogDelete(address,uint256)","cb9d86e2":"BlockRefunded(address)","cb9dd1a0":"setMoving()","cb9e2755":"deleteEntity(uint256)","cba01a49":"LunarLink()","cba0e996":"isExcluded(address)","cba1fa10":"set_iconiq_presale_open(address,bool)","cba25e79":"presaleHardcap()","cba2c735":"createPurse(string)","cba456df":"casinoProxy(address,address,address)","cba4bc94":"_setHowManyOwnersDecide(uint256)","cba4f643":"changePreIcoRate(uint256)","cba50fd1":"generateUserRelation(address,uint256)","cba58ab6":"disableService()","cba59827":"Reject()","cba5b465":"endContract(address,uint256)","cba6582e":"Ellomiun()","cba66250":"FTV(address,address,address,address)","cba66e14":"sliceBytes20(bytes,uint256)","cba6a3a2":"setTransferAuthorized(address,address,uint256)","cba74da1":"getResource(bytes32,uint256,bytes32)","cba88872":"countdown()","cba8901b":"getPayoutKeys()","cba8be1c":"setServerAdmin(address)","cba91a35":"roundTwoTime()","cba9a794":"handleReturnBool()","cba9c0e0":"presale_start_block()","cbaa0b25":"playerAttack(uint256,uint256)","cbaa0bec":"amendSingleResult(int16,string)","cbaba70f":"EADC()","cbac21b8":"periodPreITO_mainCapInUSD()","cbac8816":"tokenRate20()","cbaca250":"RewardSplit(uint256)","cbacb269":"stopBonusCompaign()","cbacffe4":"addToPayeeBalance(address,uint256)","cbad3779":"getPublisherRegistry()","cbad60b6":"spread(uint8)","cbad7bf6":"cg(address,uint256,uint256,uint256)","cbaddbaa":"BurnMe()","cbae0163":"readPosition(uint256,int256)","cbae0978":"NewResolver(uint256,address)","cbae1467":"deleteAllAvatars()","cbaeadb4":"getRewardHistory(address)","cbaedd3c":"slashUsername(bytes)","cbaf4742":"OPERATE_SUPPLY()","cbaf5104":"_isClosed(bytes)","cbaf566d":"updateRentInfo(uint256,uint256,uint256)","cbafee8a":"tokensToMint()","cbb01884":"setDefault(uint8,address)","cbb04cbd":"debtPaid()","cbb05527":"totalCapInWei()","cbb0c95a":"getPlayerWithdrawEarning(uint256)","cbb105d6":"NewWorld()","cbb1d761":"confirmBySigner(bytes32,address)","cbb2fd5d":"TRTToken()","cbb31da9":"maker(address)","cbb433ea":"DeepToken()","cbb45120":"TOTAL_WINS()","cbb45444":"test_transfer_to_contract_without_fallback()","cbb50d30":"teamAllocationTokenSend(address,uint256)","cbb6e5c9":"transferTopLevelDomainOwnership(bytes32,address)","cbb70c92":"addLOC(address)","cbb8b158":"TESTH()","cbb9818c":"turn_flag_ON()","cbb9dbb9":"depositCoupon(address[2],uint256[8],uint8,bytes32[2])","cbba3f4b":"DCSToken()","cbbacd48":"cliffs(address)","cbbaed1b":"incentiveDistributionMaxRounds()","cbbb2698":"checkBlackAccount(address)","cbbc1bf3":"setCosignerAddressForUser(address)","cbbc8504":"GnosisTalk()","cbbc8a51":"setForeignDailyLimit(uint256)","cbbcdf77":"addCurrency(uint256)","cbbd809c":"approvedAddressInLUT(uint256)","cbbda00e":"Ptest()","cbbdca36":"Upgradable(address)","cbbe2199":"ActualTokenManager()","cbbe2569":"Bogocoin()","cbbe300b":"FooMintToken()","cbbe974b":"unlockUnixTime(address)","cbbea348":"getModeratorAtIndex(uint256)","cbbf879c":"getNumParentOperation(bytes32,uint8)","cbbf9420":"distributeVES(address[],uint256,uint256)","cbbfe168":"getOrder(uint256,address)","cbc066ab":"_transferOrderMoney(uint256,address)","cbc12d13":"maxRingSize()","cbc1cfd2":"emergency_withdraw()","cbc24224":"MuskToken()","cbc264f2":"nestedFirstAllToAll(uint256)","cbc265ac":"revealSeckey(bytes32)","cbc3b73e":"delegateHasValidSignature()","cbc3fb0d":"blind_sha256(string,address)","cbc44835":"PlateMate()","cbc469de":"STRToken()","cbc52ee4":"EtherIslands()","cbc598c5":"isAmountAllowed(address,uint256)","cbc61daf":"mintForMarket(address,uint256)","cbc69c8d":"SocialMediaToken()","cbc6c267":"ejenfwdToken()","cbc7755c":"registerNameXnameFromDapp(address,bytes32,bytes32,bool,uint8)","cbc7854e":"setTokens(address,address)","cbc846d9":"setBoosters(address)","cbc85c97":"getAllCardsClaimContender()","cbc8ae5f":"TOKEN_SUPPLY_ICO()","cbc9023c":"forceRoll()","cbc91e98":"sendTokensAfterBuyExp(address,uint256,uint256)","cbc9c89c":"Claim_TRAC_3800()","cbca02d3":"trasnferFromOwner(address,uint256)","cbcaacab":"checkTransferWithReference(address,uint256,string)","cbcabc13":"changeMdtTeamAddress(address)","cbcb3171":"tokenReserve()","cbcc65eb":"ACL_APP_ID()","cbccf9d6":"Simpletoken()","cbcd5dfe":"MintableMasterToken()","cbcdc2e4":"transferBalanceToOwner(uint256)","cbce2fcf":"setAmountBasedBonus(uint256[],uint256[],uint256[])","cbcf4d25":"icoAccounts(address)","cbcf8ece":"setAccountBonus(address,address,uint256)","cbcf98e6":"changeSecondaryWallet(address)","cbcffd2f":"ShowInfo(uint256,string)","cbd076f8":"depositForUser(address,uint256)","cbd07fd8":"paidDividends(address,uint32)","cbd08c8c":"config(uint256,uint256,uint256,uint256)","cbd1b782":"test_claimShare_notTranscoder()","cbd21f00":"JBartContract()","cbd243b4":"SetWhy(uint32)","cbd2ac68":"confirmWhitelistRemoval(bytes32)","cbd2bdfd":"getAllAuctions()","cbd2c73b":"signUserKeyChange(address)","cbd2ecd2":"transferAllowance(address,address,uint256)","cbd3b403":"getLuck(address)","cbd3faef":"amountOwedForApiForBuyer(uint256,address)","cbd49462":"_sender()","cbd5131b":"sponsoredBonusAmount()","cbd57134":"KTCToken()","cbd5bb2b":"setRound(uint8)","cbd6cc67":"SendDataToken(uint256,string,uint8,string)","cbd85c76":"bytesToBytes4(bytes,uint256)","cbd8877e":"stakeMinAge()","cbd8e690":"setTokenAmountPerHeritor(address,address,uint256)","cbd8ff79":"ContributionToPrizeFund()","cbd9597d":"GenChipLevel_Special(uint256,uint256,uint256)","cbd9d2e0":"InvalidCaller(address)","cbda1d85":"fundingGoalHardCap()","cbdb2469":"_getPetBonus1(uint256)","cbdb4f72":"GetClientBalance()","cbdc5aa4":"tokensTradeable()","cbdd3268":"genesisImportsComplete()","cbdd69b5":"tokensPerEth()","cbde2ff0":"isUnfreezed(uint256)","cbdf02fb":"rejectCertificate(address,address)","cbdf3878":"goldLevelBonusIsUsed()","cbdf8692":"Lockup()","cbe0a1aa":"totalEthCharityCollected()","cbe0e49a":"presaleGranteesMapKeys(uint256)","cbe211ec":"adPriceWeek()","cbe230c3":"isAllowedToken(address)","cbe239ed":"setIcoPaymentStatus(bool)","cbe23b94":"cards_start_total()","cbe29f34":"advisorsSupply()","cbe2e97e":"setGameStatus(bool)","cbe324d8":"_setSuggestedAdPrice(uint256,uint256)","cbe335c1":"verifyDocument(bytes32,bytes,uint16)","cbe37e25":"BYBToken()","cbe3a072":"add(uint32)","cbe3be97":"KeplerCoin()","cbe40622":"setup(address,address,uint256)","cbe432b0":"ico3Tokens()","cbe44fa2":"setWhitelisted(address,uint16)","cbe5404f":"setAccountFrozen(address,bool)","cbe56377":"amendLock(uint256,uint256)","cbe566de":"deleteCascade(uint256)","cbe7a150":"getCryptoMatch(uint256)","cbe7b838":"YunKaiCoin()","cbe8047e":"testValidation()","cbe8623f":"divUp(uint256,uint256)","cbe9ef39":"BasicCoin(uint256,address)","cbea4412":"getItemHolders(uint256)","cbeb5749":"ShoreCoin(uint256,string,uint8,string)","cbebc563":"computeTraitScore(uint256,uint256,uint256)","cbec09a7":"bonus01()","cbec455f":"continueCrowdsale()","cbec72f3":"ownerHasClaimedTokens()","cbec78b9":"requestPrice(string,string,int256)","cbed1568":"addAdminWhitelist(address)","cbedbf5a":"sendMoney()","cbeea68c":"permit(address,address,bytes32)","cbefe55c":"calcTokenRate()","cbf09802":"rateOf(address)","cbf0b0c0":"kill(address)","cbf0fa2d":"totalWageredForAddress(address)","cbf1304d":"balances(address,uint256)","cbf1382f":"founderStorageVault()","cbf1591d":"setDenyContract(bool)","cbf21837":"isSelling()","cbf26c0b":"DeviceOwner()","cbf2ad23":"confirmedBy()","cbf2b203":"Crowdsale(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)","cbf346cc":"_sellCrowd(uint256,address)","cbf4531d":"dividendsAmount(address)","cbf66a02":"withdrawRune()","cbf6fff9":"SALE_SUPPLY()","cbf7c9a7":"isUserKyc(address)","cbf7cc2e":"deployFinished()","cbf7f009":"FAPFounder()","cbf89ed8":"DividendDeposited(address,uint256,uint256,uint256,uint256)","cbf9051c":"setPublisherRewardPool(bytes32,uint256)","cbf93c9b":"_claimExploreItemUsingEMont(uint256,uint256)","cbf97572":"HipsterFarmer()","cbf9a125":"queryChibiAdd(uint256)","cbf9b6dd":"getRecorderAddress(uint32)","cbfa18ea":"contractRefundFinished()","cbfa3c9c":"scaling()","cbfba0e1":"withdrawFee(bytes8)","cbfc12ba":"Soniq()","cbfd14a2":"publicSaleSupply()","cbfd79e2":"AirdropFan()","cbfe6d41":"documentExists(bytes32)","cbfebb34":"setETHRate(uint256,uint256)","cbff17fa":"_setMinted(uint256,address)","cbff2cfc":"_getValueEther(uint256,uint256)","cbff69db":"contributionAt(uint256,uint256)","cbffb1ae":"updateConflictResolution(address)","cc00814d":"setPublicOfferLimit(uint256,uint256)","cc00ce12":"set_arbits_sale_open(bool)","cc01e39f":"availableAmountToCollect(uint256)","cc0238be":"getsumdata2(bytes32)","cc027cc9":"register(address,uint256,address,address)","cc02d73f":"setColorContract(address)","cc03477d":"nMsgsWaiting()","cc03c342":"setPlatformAddress(address)","cc05d836":"executeOrder(bool,address[3],uint256[4],uint256,uint8,bytes32,bytes32)","cc062b58":"enableSelling()","cc06c359":"maxLevel()","cc06f5ea":"getPeriodReceivedBalanceFor(uint256,address)","cc071051":"purchaseWolk()","cc075fa7":"stopTeamTrade()","cc07a94d":"_createMobster(string,address,uint256,uint256)","cc07dc37":"userReferralsWei(address,address)","cc08ebf6":"CryptoSportZ()","cc09c6b3":"OXO(uint256,string,string)","cc0a26d1":"CurrentMined()","cc0b2c9f":"tokenToOwner(uint256)","cc0b5a5f":"cancel(uint256,address,address)","cc0b94b7":"getChannelStatus(bytes32)","cc0b9dff":"addExitToQueue(uint256,address,address,uint256,uint256)","cc0bb8e5":"proof_of_public_key2()","cc0d0c90":"BlueTitaniumClassic()","cc0e13e2":"enableMaintenance()","cc0e1f66":"startOver()","cc0e24e1":"CheckDOT(bytes32)","cc0e97c9":"logicContract()","cc0f1786":"feeDecimals()","cc0f65f7":"GetMinerData(address)","cc10145f":"ownerWithdrawRune()","cc1027ea":"_validateReferrer(address)","cc105441":"MMOcoin()","cc10d53d":"IsPatient(address)","cc10e401":"create(string,bool)","cc11298e":"getRewards(uint256,uint256)","cc121ac1":"unsoldTokensVault()","cc129f4d":"radd(uint128,uint128)","cc130482":"SUNX()","cc131be1":"CreateNewDraw(uint256)","cc135555":"currentGene()","cc1423bf":"releaseBubToken()","cc143ce9":"NewXRateProvider(address,uint16,address)","cc147334":"payAllRewards()","cc148bf4":"awardBalanceOf(address,uint8)","cc14a7a3":"paidAddress()","cc151c82":"tokensToSellOnce()","cc15bee7":"isPurchasingPaused()","cc15c26c":"buyTokensReserve()","cc15d080":"getEmployeeInformation(uint256)","cc1602df":"lotteryCore()","cc16e6e1":"TOTAL_RESERVE_FUND()","cc16f5db":"Burn(address,uint256)","cc17aa28":"numAdoptedAxies(address,uint8,bool)","cc181ca8":"king()","cc189d00":"Vault(address,uint256)","cc198380":"totalSoldSlogns()","cc1b63d5":"setStakeStartTime(uint256)","cc1b8de6":"freedWosPoolToTeam()","cc1bc747":"deallocate(address,address)","cc1c0937":"NeuralToken()","cc1d050d":"startBlockProfit()","cc1d1e18":"_getCurrentTokenPrice()","cc1d4c02":"certified(address)","cc1ef080":"startPreSTOSale()","cc204cc2":"amountsWithdrew(address)","cc20d075":"getChannelId(address,address,uint8)","cc212a48":"disburseFunds(uint256)","cc21a9a2":"_weekFor(uint256)","cc21e972":"US_INSTITUTIONAL()","cc234ee1":"setICORunning(bool)","cc23a690":"releaseValue2()","cc23b75b":"HARD_CAP_IN_TOKEN()","cc242f40":"CardsRead()","cc24f571":"releaseTenPercent()","cc255b38":"testBazMethodId()","cc25decd":"SampleOffer(address,bytes,uint256,uint256,uint256,uint256,uint256)","cc268393":"setDescendant(address)","cc2761a4":"test_me(int256)","cc27f97b":"LSYP()","cc289fa9":"getPartnerAddressStatus(address)","cc293aea":"setRenewalsCreditAffiliatesFor(uint256)","cc2942da":"SetAElfCommunityMultisig(address,address)","cc29a0e6":"transferTTProduction(address,address,uint256)","cc2a9192":"LogWinnerPaid(address)","cc2aa2c7":"NAMINORI()","cc2b20ff":"refferBonusFunction(uint256)","cc2c2058":"addSpinner(string,uint256,address,uint256,uint8,uint8,uint8)","cc2c2bcf":"MotionFactory(string,string,string)","cc2c5453":"add_sword(uint16)","cc2dcd7e":"removeSideService(address,uint256)","cc2e08ea":"getRecTransactionData(uint256)","cc2e15cc":"getSponsorableJobs(address)","cc2eacb1":"setReferralPercent(uint16)","cc2f5029":"updateNoteMetadata(uint64,uint16)","cc2f5186":"Balances(address,address,address)","cc2fd120":"unofficialUserSignUp(string)","cc304924":"DocumentAdded(uint256,string,uint256)","cc305ae6":"userAssignElement(uint256,uint256,address)","cc308a54":"whitelistStartBlock()","cc3154f8":"attendeesList()","cc326e1c":"currentPhaseRate()","cc328f2f":"b531647b()","cc32f8ad":"transferMoneyForTaskSolutions(string,uint256)","cc33ad3d":"DSP(uint256,string,string)","cc33c875":"tokenInfo(uint256)","cc341430":"coordinatorAgreeForEmission(address)","cc342eba":"RoseToken()","cc3451d6":"MultiverseToken()","cc3471af":"maxClaimBlock()","cc348429":"Ethmall(address,address,address,uint256,uint256,uint256)","cc34a247":"icoEndTimestampStage1()","cc34f810":"AllstocksToken()","cc361cc4":"getTotalBonusPerShare()","cc364f48":"getRange(uint256)","cc36809f":"fee_msg()","cc36a328":"team0Query()","cc36f8eb":"ArtCoin()","cc373d79":"withdrawCommissions(uint256)","cc38639f":"newTuneOption(uint32,uint32,uint256,bool,bool,uint128,uint64)","cc38c8a0":"insuranceAccount()","cc3938f9":"chkLockedA(address,uint256)","cc397ed3":"getCurrentFor(address)","cc3a0c8d":"customerExchangeEther(uint256,address,string)","cc3ad9a1":"unPackParams(uint256)","cc3b8806":"getCertificateMetaDataCount(bytes32,bytes32,bytes32)","cc3bb31a":"crowdsaleStart()","cc3bde3d":"TOTAL_SUPPLY_LIMIT()","cc3bf9e9":"redeem(bytes32,address)","cc3c2c01":"getValidityBondFloor()","cc3c59cc":"Paymec()","cc3c7098":"createTokenToMarket2021()","cc3c74a1":"proposalNonce()","cc3ccf57":"previous_owner()","cc3d2721":"minWithdraw()","cc3d574b":"ElectedBoardController(address,address[],uint256,address)","cc3d967b":"getUserDetails(address)","cc3df01f":"issueToken(uint256)","cc3e378e":"hasEnoughFundsToStart()","cc3eacbb":"getOraclizeFee()","cc3efd6b":"PUKCoin()","cc3f44bf":"getGoldStatusMinted(address)","cc3f51d0":"hitPotProcess(string,bool,uint256)","cc3fa0fd":"NobleAssetsCoin(uint256,string,string)","cc3fdd4c":"buyFeePercent()","cc41a396":"rateStage3()","cc41d3b2":"refundPreIco()","cc422cc2":"coeRemainingAtCurrentRate()","cc423c28":"setSchellingExpansion(uint256,uint256)","cc42e83a":"withdrawWinnings()","cc436196":"initialFundsReleaseDenominator()","cc436e42":"memberIsActive(uint8)","cc442c3f":"ICO_PRICE4()","cc445611":"purchase(bytes32)","cc44b15b":"setCode(address,bytes32,uint256)","cc44fd2b":"changeManagement(address)","cc451581":"getCurrentBigPromoBonus()","cc4580c8":"getBetsLength()","cc459696":"contentCount()","cc466256":"_roll(address,uint256,uint256,bytes32,bytes32,bytes,bytes32,uint256)","cc4720c7":"calculateRewardTokens(uint256,uint8)","cc47a40b":"reserve(address,uint256)","cc47de73":"ExpandT()","cc490e64":"getSplitCount()","cc494291":"setJobController(address)","cc4999ea":"getTradingInfo(uint256)","cc49ede7":"getVesting(address)","cc4aa005":"getDestroySharesOwnerValue()","cc4aa204":"ERC20()","cc4b998a":"titleIds()","cc4bf6a3":"miningTen()","cc4c1c05":"SwytchToken()","cc4cc05f":"collectToken()","cc4d233c":"Reclaimed()","cc4d819c":"tokensPurchased()","cc4da8f4":"EventWinReward(address,uint256)","cc4e0008":"Ticket(address)","cc4fa81b":"exchangeCalculator(uint256,uint256,uint256)","cc4fbc43":"acceptTokenPayment(address,uint256,address,uint256)","cc5061da":"voteForUser(uint16,address)","cc50dacb":"buyCar(uint32)","cc50fc28":"mintInternal(int256,address,uint256)","cc537821":"buyNextRank()","cc539eb1":"replaceAccount(address,address)","cc552c8e":"setHardCapUSD(uint256)","cc5530eb":"endPreSaleStage()","cc577f38":"addPresaleAmount(address,uint256)","cc57e4f8":"increasePregnantCounter()","cc58bcf8":"getCurrentLevel(uint256,uint256,uint256)","cc5a7051":"_setMinDailyPerUser(uint256)","cc5a7804":"payoutTokens(address,uint256,uint256)","cc5aba27":"ConstructorTest(uint256,uint256,string,string)","cc5b13a0":"PAYOUT_DELAY_INTERVAL()","cc5b2292":"DepositForDividends(uint256)","cc5b542e":"toBeDistributed()","cc5c095c":"mintableSupply()","cc5c4224":"setFreezingManager(address)","cc5c4a6b":"attachPresale(address,address)","cc5cab33":"userRewarders(address,uint32)","cc5cee0a":"calculateEthereumReceived(uint256,uint256)","cc5f09fb":"getNbCitizensLocation(string)","cc5fc0d7":"updateInvestBalance()","cc603ed5":"collectRate(address)","cc61d0cb":"changeMinWithdraw(uint256)","cc620704":"joinToTrack(bytes32)","cc6266a1":"getHashFromData(bytes32,bytes32)","cc6305ed":"getNumTicketsPurchased(uint256,address,address)","cc634dac":"get_kek()","cc63604a":"canExecute(uint256)","cc638e03":"rublaJEPoken()","cc63996e":"getHairValue(uint256)","cc63a3c9":"set_token(address)","cc642cc2":"numHolders()","cc64cfcb":"getDeployedMarriages()","cc64e2d5":"depositEthers(address)","cc657697":"GetMatchLength()","cc657e62":"sendToken(uint256,uint256)","cc668524":"verifyPosition(uint8,uint64,uint64,uint64)","cc66d3c7":"buyEngineer(uint256[8])","cc66ec47":"TerraformReserve(address)","cc677679":"setEMAPeriods(uint256)","cc679ffc":"TUPC()","cc67b1bf":"getTransferPerc()","cc69084f":"PHASE_CLOSED()","cc691763":"draw(uint32,uint8,bytes32)","cc6c010d":"ATMGold(uint256,string,uint8,string)","cc6c8e31":"NFXCoinToken()","cc6ca7b7":"specialBaseLayer(uint256)","cc6cf340":"BERTCLUBCOIN()","cc6d7850":"burnILF(address,uint256)","cc6d8ba6":"inheritInvestorPosition(uint256)","cc6da375":"recipientVIP(address)","cc6db55f":"setJackpotModulo(uint256)","cc6e15e5":"setDelayedTokenAllocator(address)","cc6e6f25":"Withdraw_5()","cc6e70e8":"MSTCOIN()","cc6e8593":"lawSupportProfitAddress()","cc6ec39a":"switchToGame(string)","cc6eced7":"priceOfTeam(uint256)","cc6f0ed0":"BirthdayCandy()","cc70993d":"earlyTimeLock()","cc70bb1a":"publish(string,string,string,address)","cc70decb":"showBonus(address)","cc7188a5":"unLinkFromMasterWallet(address)","cc724b27":"isTesting()","cc72c918":"queryOwnerAddr()","cc72ecb0":"purchaseStartBlock()","cc741c9c":"getDidClaimBooty(address,uint256)","cc743a86":"ICO_PROMO_REWARDS()","cc74e2ca":"min_refund_block()","cc750395":"setMonthOpen(uint256,uint256,uint8,uint256,uint256)","cc754a28":"ICOStartTimeChanged(uint256)","cc755b70":"releaseFrozenBalance()","cc759458":"unconfirm(address)","cc759f88":"removeBools(bytes32[])","cc75ac19":"_withdrawAffVault(uint256)","cc75c4b1":"abc(uint256)","cc75cc9b":"SendmoneyCall(uint256)","cc764986":"updateEmaDailyYield(uint256)","cc774681":"mapCompletionNumberForWithdraw(address)","cc77b82d":"BEEFYToken()","cc783c5e":"setBankrollerContractOnce(address)","cc78cc98":"multisigPreICO()","cc7949ae":"round_count()","cc797d8e":"setMaxAttackPrizePercent(uint256)","cc798890":"queryAccounts()","cc79aa04":"getProposal(bytes32,bytes32)","cc79eaf0":"getColors(uint32)","cc7a060f":"ethersCollecteds()","cc7a2049":"permissionManager()","cc7b2ee7":"initAirdropAndEarlyAlloc()","cc7b41ec":"changeRollUnder(uint256)","cc7b60fe":"_emitWorkFinished(uint256,uint256)","cc7c4c39":"gotWinner()","cc7cd9f8":"fundingEthGoal()","cc7cddb8":"dive3(address)","cc7d1a0f":"currentHighestBid()","cc7e1b9a":"setRedemptionAddress(address)","cc7e2208":"Order()","cc7e492e":"refillInstantMintPool()","cc7e930c":"commitmentsOf(address,address)","cc7f365c":"VLADALINA()","cc7f593c":"setRequiredMajority(uint256)","cc7f608d":"setSaleType(uint8,uint8,uint32,uint256,uint256)","cc7f8266":"read_i8_array()","cc7fa928":"nbMonthsPay()","cc7fe38c":"addPresaleInvestor(address,uint256,uint256)","cc80f6f3":"show()","cc80f9e8":"ownerOfID(uint256)","cc81dbb5":"DEFROST_FACTOR_TEAMANDADV()","cc822f54":"changeYDistAddress(address)","cc826160":"ownershipDistributed()","cc82e72e":"SetPlatformInformation(string)","cc833e69":"Cryptonationz(string,string,uint8,address,address,address,address,address)","cc851cac":"SecuritiesVaultBank()","cc863948":"withdrawTokenShare()","cc86566c":"tempMngr()","cc8658b3":"chkStaff(address,address)","cc865b71":"withdrawRoundController(uint256,address)","cc872b66":"issue(uint256)","cc876ded":"born(uint256,uint256)","cc87ed82":"checkNumCards(uint256,uint8,uint8,bytes32,bytes32)","cc8818f6":"setReservefund(uint256)","cc88be52":"NuoBaoChainToken(uint256,string,uint8,string)","cc891023":"depositLock(address)","cc896494":"_setGameOver()","cc89698c":"getTopicCount()","cc897e40":"END_SKO1_UNITS()","cc89d596":"getCryptantFragments(address)","cc89e8bc":"ecosystemTokens()","cc8a86a0":"Y2_release()","cc8af0fe":"bytesToUInt(bytes,bytes)","cc8b34ab":"CrowdCoin()","cc8b96e5":"prepare(uint256,address,address)","cc8baf63":"m_tokenDistributor()","cc8bd060":"setUnitsOneEthCanBuy(uint256)","cc8c0f9f":"transferLocked(address,uint256,uint8)","cc8c3c45":"getTokenIdsLength()","cc8c49aa":"sc(uint256,uint256,uint256,uint256,uint256)","cc8cd5c5":"withdrawDragonsFilm()","cc8ce27e":"CryptoChamps()","cc8ce862":"allowedGasPrice()","cc8e4bc2":"LOCKAMOUNT3()","cc8eb425":"newuser(address,address)","cc8f0b48":"withdraw(bytes32,address,uint8,bytes32,bytes32)","cc90050e":"GetCurrentRoomAndRound(address)","cc9062f9":"finalizeTransferChildrenOwnership()","cc90da29":"bonusNum()","cc90e725":"addProject(string,address)","cc91e91c":"Freezable()","cc925957":"logAccess(string,string,uint256)","cc92bad4":"updateParkingRate(uint256)","cc92ebad":"createCrowdsale(uint256,uint256,uint256,uint256,address,address,address)","cc937ccd":"Doves()","cc93ee70":"forwardCoins(uint256)","cc93f66e":"endTournament(uint256,uint256)","cc9415d0":"commitOn(uint256)","cc9425b7":"OCTACryptoToken()","cc949797":"balanceAffiliateOf(address)","cc94d923":"createTransaction(address,uint256,bytes32,address,address,address)","cc94e4a2":"set_sale_address(address,address)","cc954820":"changeFallbackDeposit(uint256)","cc95d8d1":"s36(bytes1)","cc96019f":"referralTokenWallet()","cc96b943":"offerOptionsToEmployee(address,uint32,uint32,uint32,bool)","cc976620":"usdPerEthCoinmarketcapRate()","cc97b38f":"BANCOR_X_UPGRADER()","cc97edbf":"bmi()","cc98c893":"developer_Transfer_ownership(address)","cc98ff20":"purchaseVillage(uint256)","cc991d8a":"BTestToken(uint256,string,uint8,string)","cc996d1b":"bids()","cc9a31a7":"isRepresentor(address)","cc9a88c9":"canSend(uint32,uint32,int256)","cc9ab267":"voteForCandidate(bytes32)","cc9ac376":"addLock(address,uint256,uint256)","cc9ae3f6":"getMyReward()","cc9b31c9":"exchangeFeeIncurred(uint256)","cc9b714c":"ClearAuth(address)","cc9b71c2":"TaskCoin()","cc9b7826":"setGuaranteedAddress(address,uint256)","cc9ba6b2":"buyRef()","cc9c0936":"startedWorkTS()","cc9c437c":"get_orderAddress(address,uint256,uint256,uint256,uint256)","cc9d7519":"getTierInfo(uint256)","cc9d858d":"FundsRegistryTestHelper(address[],uint256,address)","cc9de25d":"bytesToUint256(bytes)","cc9e735f":"decrementDate()","cc9f28ea":"getDeletedTeams()","cc9fd9d9":"onSetCredit(address,uint256)","cca07f44":"setSpecialLimits(address,uint256,uint256)","cca08d55":"updatesolsforhire()","cca0feb6":"updateTax(uint256)","cca10ba5":"getMultiSigBalance()","cca213a1":"setTranchTime(uint256[])","cca2194c":"getInvestorContribution(address)","cca26917":"getRoundBalance(address,address,uint256)","cca3e832":"_balanceOf(address)","cca40111":"_recharge(address,uint256)","cca41651":"addressPrivateSale()","cca470d2":"roundInvestorInfoByAddress(uint32,uint32,address)","cca4f3c5":"winthdraw(address,address,uint256)","cca5020b":"totalLBSold_PRIVATE()","cca5dcb6":"isTransferEnabled()","cca63f4f":"buyXname(uint256,uint256,string)","cca6ae0b":"getGPSMinEth()","cca746df":"getAnnualFee()","cca78d53":"getActiveListLength()","cca794da":"setGzeBonusOnList(uint256)","cca91579":"PlaceHolder(address)","cca97025":"_performTransferFromWithReference(address,address,uint256,string,address)","cca9943c":"wei25()","ccaa5135":"LIFECOIN()","ccaa5c65":"LomeliToken()","ccaab1ca":"companyPercent()","ccaaef45":"purchaseCompanyAdv(uint256,string,string)","ccab1be7":"SubmissionAccepted(address)","ccab841b":"divf(int256,int256,uint256)","ccabcfca":"XMLYBadge()","ccac77f5":"GooLaunchPromotion()","ccad19e4":"sendEtherFromAddContract(address)","ccadd6b1":"bet1Of(uint256)","ccadef15":"_setOCPTokenContract(address)","ccae794a":"showFPCount()","ccaee929":"JihoyContract()","ccaf4b03":"setIreg(uint256)","ccb00344":"changeEtsAddress(address)","ccb07cef":"crowdsaleClosed()","ccb0893d":"isUIntPrivate()","ccb13cbd":"_acceptAnchorAdmin()","ccb1c0a1":"getQuestion(string)","ccb1cbbc":"testFailBurnNoAuth()","ccb20e8e":"StormBrewCoin()","ccb22e37":"description3()","ccb2e9a4":"insertAccount(bytes32,string,uint256,string,string)","ccb3449e":"NewPresaleAllocation(address,uint256)","ccb50a29":"SIGMA_MAX_CARGO()","ccb53365":"startICOPhase()","ccb60e39":"rentOutMultiple(address,uint256,uint256[])","ccb61dad":"MICRO_DOLLARS_PER_BNTY_MAINSALE()","ccb64997":"isBCDCToken()","ccb6cbe8":"icoBottomIntegerPrice()","ccb767ae":"transferTo(address,uint32)","ccb783a9":"setGPSStartTime(uint16,uint8,uint8,uint8,uint8,uint8)","ccb98ffc":"setEndTime(uint256)","ccbac9f5":"randomNumber()","ccbae5f6":"createEscrow(address,address,uint256,uint256)","ccbb41d0":"TOC()","ccbb52f5":"getGroupRates(uint256)","ccbba441":"setMigrateStage()","ccbd5152":"bankrollBeneficiaryAmount()","ccbd8d25":"setDropAmount(uint256)","ccbd8d29":"tokenAvatar()","ccbda1af":"getChannelByName(string)","ccbde432":"delete_candidate(uint8)","ccbe2a68":"kill(uint8[176],uint8)","ccbe4968":"Withdawal(address,uint256)","ccbfc6ed":"revokeSignature(bytes)","ccc08913":"Restricted()","ccc08974":"setGameActive(bool)","ccc108d7":"reopen()","ccc11f11":"hasAssetRights(address,bytes32)","ccc13814":"max(int256[])","ccc39b5d":"DonationClaimed(address[2],uint256[8],uint8,bytes32[2],uint256,uint256)","ccc51afb":"lookupFillingRing(address,uint256)","ccc54d69":"LOCKUP_3M_ICO_TIMESTAMP()","ccc55189":"Nation(address,address)","ccc5d05f":"testNoTokensNoCalls()","ccc61bef":"REWARD_WIN_MULTIPLE_PER()","ccc62bbe":"assertEq2(bytes2,bytes2,bytes32)","ccc643d7":"updateSaleTime(uint256,uint256)","ccc6ddf3":"createPromoPow(address,string,uint256,uint256,uint256,uint256)","ccc72302":"AUDITED_AND_REJECTED()","ccc8b33c":"buyXnameQR(address)","ccc924ef":"TokensUndelegated(address,uint256,address)","ccc9735d":"ERCSpammer(uint256,uint256,string,string)","ccc98790":"w(uint256)","ccca123b":"waitTime()","ccca237c":"foundationAsset()","cccb987f":"withdrawTwice()","cccc020f":"changeInsuranceFeesOperation()","cccc8f91":"getDappId()","ccccc36b":"createAcceptAndAdditionalsFromBytes(bytes,bytes,bytes,uint256[])","cccd2ea8":"getProductData(address)","ccce413b":"symbols(uint256)","ccce6458":"createKingdom(string,string,uint256,bool)","ccceee48":"lastBlock_v1Hash_uint256()","cccf3a94":"gasForCLOUD()","cccf7a8e":"has(uint256)","ccd15921":"addTransferAndCallWhitelist(address)","ccd1a621":"addguess(uint256)","ccd30a62":"getWhitelistedAddresses(uint256)","ccd331bf":"bountyAmount()","ccd385f5":"staff_3()","ccd3948b":"removeRestaurant(address)","ccd39537":"dilute(address,uint256)","ccd4020c":"PassTokenReborn(address)","ccd46ae4":"BuyTicketUseVault(uint256,uint256)","ccd65296":"initialize(uint256,uint256,uint256,uint256,address)","ccd6559b":"newRandom(string)","ccd65c0a":"activateMainSale()","ccd68f3b":"stamps(uint256)","ccd6aca4":"preSaleSecondCap()","ccd71e8c":"armySubmarinesCount(uint256)","ccd75361":"setFooInt(uint256)","ccd89ecd":"calculateManyHash(address,address[],uint256[],uint256,uint256)","ccd8ad0c":"setGenTime(uint256)","ccd8c186":"DebitCoinTokenGenesis(address)","ccd8e2cf":"AnmiToken()","ccd8ead7":"addToCategorie2(address,address)","ccd93998":"getRequiredSignatures()","ccd95a50":"sendTokenToMultiAddr(address[],uint256[])","ccd96ab0":"cite(bytes32,string)","ccd9aa68":"passedKYC(address)","ccd9d08f":"MLIOU()","ccda4b99":"getMethodValue(string)","ccda696b":"ownersTransfer(address,uint256)","ccdaeab0":"getTechBonus3(uint256)","ccdb05d4":"NokuCustomERC20(string,string,uint8,address,address)","ccdb3f45":"newAddress()","ccdbbff5":"securityTokensWallet()","ccdc535e":"placeBetV1(uint256,uint256,uint256)","ccdd1979":"multisend(address,address[],uint256)","ccdd49f2":"StyToken(address,address)","ccdd95d6":"releaseEnjinTeamTokens()","ccdf68f3":"isOutcomeSet()","ccdfcfa4":"returnFundsForAll()","cce0244d":"setSafeContract(address,bool)","cce0a1ca":"isPresaleSetup()","cce0c0fa":"addOneGame(string,uint256)","cce0cd0c":"blockVersion()","cce106f8":"AmountToLittle()","cce1dfd2":"minimum_token_sell()","cce21eda":"DividendsWithdrawal(uint256,address,uint256,uint256,uint256,uint256)","cce2270a":"isSecondStageFinalized()","cce2771e":"redeemUTXO(bytes32,uint8,uint256,bytes,bytes,bool,uint8,bytes32,bytes32)","cce29ea7":"preSaleEndTime()","cce2f8e3":"checkAddressMisused(address)","cce356b5":"getHodlers()","cce3906b":"hasWithdrawnRake()","cce48e65":"GeeTestCoin()","cce4bd52":"reclaimFunds()","cce7db58":"swipe(address)","cce7ec13":"buy(address,uint256)","cce81927":"EtherDice(address,address)","cce91957":"take(bytes)","cce93ae1":"PeriodChanged(uint256,uint256)","cceb6368":"receiveTicket(address)","cceb9214":"setAuctionStatus(bytes32,uint8)","ccebca11":"Foo(address,bytes32,address)","ccec1461":"bulkEtherSender(address[],uint256[])","ccecc71f":"getPlayerPoints(bytes32)","cced2bb6":"LogOwnerRemoved(address)","cced9b63":"setBestMatch(uint256,uint256,address)","cceda56c":"CAPPED_SUPPLY()","ccedf3d2":"getChainCode(string)","ccee31e8":"setNbKingdomsType(uint256,address,bool)","ccee8047":"settleCall(uint256,uint256,address)","ccef6d63":"_isClientPaidUp(address)","ccf053ba":"TOTAL_TOKEN_SUPPLY()","ccf06abf":"canCompose(string,uint256[],address)","ccf0768a":"transferDividends(address)","ccf12304":"set_mint(uint256)","ccf1454a":"addressOf(string)","ccf1ab9b":"usurpation()","ccf1e80b":"JUNE()","ccf20872":"ChainKey(uint256,string,string)","ccf24838":"updateOwner(uint256,address,address)","ccf27a4e":"setPrice2(uint256)","ccf2b87b":"sendWithFreeze(address,address,uint256,uint256)","ccf41499":"TokenFactory(uint256,string,uint8,string)","ccf4a941":"getVendorApplication(string)","ccf4b70a":"RATE1()","ccf4f413":"setSubRegistrar(string,address)","ccf53a84":"getFile(uint8)","ccf5401e":"checkQuest(address)","ccf5c5cf":"registerConsumer(address,uint32)","ccf64316":"playerRollDiceSingle(uint256)","ccf670f8":"setLevelUpFee(uint256)","ccf69e9b":"randomContract()","ccf6b8b3":"CCCoinToken(string,string,uint256,uint256,address,address,address,address,uint256)","ccf7ba0f":"recoverPrice(address,address)","ccf7d0d4":"sendTokensAfterCrowdsale()","ccf7fe56":"JustinCoin()","ccf82afd":"WataexToken()","ccf8bcf3":"transferOVISBookedTokens()","ccf8e5d0":"CLITOKEN()","ccf8ef24":"undelegateVote()","ccf9f35f":"awardsCount()","ccfa8e71":"addBank(string,address,string)","ccfaa72f":"setRentalPricePerHour(uint256)","ccfbdb9e":"CrowdSaleDapCar()","ccfc0053":"withdrawMILs(uint256)","ccfc1e4e":"preSaleWeiCap()","ccfc811b":"registerParticipant()","ccfc8729":"registerWithToken(address,uint256,address)","ccfc9556":"USDChain(uint256,string,uint8,string)","ccfcbdbe":"canMakerTerminate(bytes32)","ccfdca9a":"setMinPaymentAmount(uint256)","ccfe4691":"CtfToken()","ccfed305":"CMDToken()","ccff361f":"AibitbankToken()","ccff42b2":"isValidAdapter(address)","cd008f1a":"getMine()","cd00ee0d":"startToken()","cd027be5":"getAllowAmount(address)","cd034234":"refundRequest()","cd0389fd":"metadataToken()","cd03b093":"getSupportersForTopic(string)","cd041ae9":"removeCooldown()","cd048de6":"setWord(string)","cd04ccfc":"newProposalEthUSDOracle()","cd05c214":"TOKEN_FOURTH_PRICE_RATE()","cd05d1eb":"shopPants()","cd062734":"getCallABISignature(bytes32)","cd0643ee":"takeInvestments()","cd066fd6":"computeInitialPrice(uint256)","cd0699e9":"OysterPrePearl()","cd06a7bf":"rewardsupply()","cd076620":"mint(address,uint256,int16,int16,int16,int16,int16,int16,uint256)","cd0845fd":"bool2str(bool)","cd09039b":"PayForFlag(string)","cd09263f":"rate_toCap()","cd0a314b":"walletBalance()","cd0c5896":"etherBalance(address)","cd0c870d":"XAP()","cd0e761d":"getCurrentContextAddress()","cd0e8900":"DEFACTO()","cd0ee59b":"_payByErc20(uint256)","cd0f26c6":"setRedemptionContract(address,address)","cd0f5abd":"DTCC()","cd0fdc24":"getPaintingArtistId(uint256)","cd0ffdba":"NukTestToken()","cd103b4d":"RateToken(uint256)","cd11731d":"setPlayerBookAddress(address)","cd11c85d":"timeTillNextAttack()","cd12efc8":"getsecond(uint256[])","cd132aad":"addPrivateSale(uint256)","cd133c8f":"buyXid(uint256)","cd13592a":"claimTokensByUser()","cd152c0a":"getPreAuthorizedAmount(address)","cd154c59":"mainSaleExchangeRate()","cd15c6ab":"MANACrowdsale(uint256,uint256,uint256,uint256,uint256,address)","cd15fc71":"ContractFeatures()","cd16ecbf":"setNum(uint256)","cd17c4b6":"numOfTokens()","cd180fdc":"transferTokensFromAdvisorsAddress(address,uint256)","cd1814d7":"selfDestroyTime()","cd187043":"_price_token_ICO1()","cd18c168":"TakeEth(address,uint256)","cd18d5a4":"airDrop(address)","cd197ff6":"fechVoteInfoForVoter(address)","cd1a4e4d":"setHyperDisbursementAddress(address)","cd1a5cad":"PricingStrategy(uint256,uint256,uint256,uint256,uint256,uint256)","cd1a8ad7":"EGGS_TO_HATCH_1SNAKE()","cd1b9311":"challenge(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[])","cd1ce6d5":"setAdvisorFee(uint256)","cd1dc527":"isTokenAddressAlreadyInList(address)","cd1e0355":"totalRefundedAmount()","cd1e0717":"getRequester()","cd1e484b":"reserveStarsForOwner(uint256)","cd1f63dc":"getMinBuy(uint256,uint256)","cd1f8393":"logsCount()","cd1f9a57":"totalContractHolders()","cd1fca94":"BETNetworkTeamAddress()","cd1fdc14":"_claimReward20(address,string)","cd2057d0":"fail(bytes)","cd20b24b":"saosao5()","cd22ccea":"GameRoll(address,uint256,uint8,uint8,uint256)","cd22f418":"_getAllRevisionTimestamps(bytes32)","cd22f536":"addProductByRegulator(string,uint256,string,string,string,string)","cd230ebd":"tokensClaimableAfter()","cd233e25":"oraclize_gaslimit()","cd257213":"RemoveTickets(uint256)","cd25f56e":"OptionExercise(address,uint256)","cd26e1a8":"SECURITY_ETHER_CAP()","cd271488":"newSaleProjects(string,string,string,uint256)","cd277e6c":"addSolution(bytes32,address,uint32)","cd27d1a0":"setMaxRaiseAmount(uint256)","cd27f1d9":"cappedTokenSupply()","cd29c71a":"metadataUrl()","cd2a0c29":"purchase_with_eth(uint256,address,uint256,uint256,uint256,address,bytes)","cd2a11be":"EnableTrade(bool)","cd2a68e5":"withdrawBillionsCoins()","cd2a7a61":"broadcastState(bytes)","cd2ab49e":"setupBankrollInterface(address)","cd2b5a82":"weiToDistribute()","cd2cdd5b":"claimOwnershi()","cd2cde48":"authorizeIcoBurn()","cd2d5291":"walletAdvisor()","cd2d8a2d":"historyId()","cd2ec3fe":"runAnnualInflation()","cd2f0710":"getItemById(uint256)","cd2f5f2b":"clearFooArray()","cd2f7357":"tokenTransfer(address,uint256,uint256)","cd2f7c1a":"Census()","cd306137":"initialiseGlobals()","cd31037c":"BlockScheduler(address,address,address)","cd313ad9":"listOfFunds(uint256)","cd31f391":"SixtyPercentRules(address)","cd3265a3":"setUpgradeTarget(address)","cd327398":"addExceptions(address[])","cd3293de":"reserve()","cd336707":"reopenContributions()","cd342917":"Lesson(address,uint256)","cd35c5e9":"Eurotrad()","cd3651a7":"setLevelBonusJPYC(uint256,uint256,uint256,uint256)","cd367936":"fundICO(address)","cd37dcb8":"peCap()","cd3882d5":"stage4()","cd38aa87":"chooseWinner()","cd394a41":"ETH10K()","cd395a96":"_transferAndLock(address,address,uint256,uint256)","cd3a1dde":"MaxAirDropXblock()","cd3a376a":"changeSeller(address)","cd3a7531":"loadVotesForParticipantVerify(bytes32,bytes32,uint8)","cd3b0309":"CTokenCoin()","cd3c3011":"getPublishTime(bytes32)","cd3ce306":"redeemEther(bytes32,address)","cd3de8d5":"payToController()","cd3e0155":"BucketDestroyed(bytes32,uint256)","cd3e45c5":"getTop10Messages()","cd3f7a50":"DepositMTU(uint256)","cd3fe21d":"getTotalNumberPlayed(uint256,uint256)","cd40137f":"resetTimeSeal()","cd402189":"list_files()","cd402c8e":"payoutSize(address)","cd40a48d":"send1Mil(address)","cd41ada1":"addressDividendReserve()","cd4217c1":"freezeOf(address)","cd423c99":"getDistributedOreBalances(address)","cd42693d":"victorieumToken()","cd43def3":"updateServiceTokensPerCredit(address,uint32,uint256)","cd43ebf9":"totalSpankStaked()","cd43ee99":"isAffiliateProgram()","cd45376c":"sellWine(uint256)","cd45e561":"CHSToken()","cd45fcdb":"Fxxk2Token()","cd46abe4":"ecosystemPercentOfTotal()","cd46d7e5":"approveByIndex(uint256)","cd474b04":"chainStartBlockNumber()","cd47c0e1":"cooRemoveReviewer(address)","cd47f390":"rescueLostKydy(uint256,address)","cd482d9f":"getLLV_edit_2()","cd48578f":"MaxEth()","cd495391":"setNonlistedUser(address)","cd496e35":"votePositionOf(uint256,uint256)","cd497999":"isHardCapGoalReached()","cd499523":"userList(address,uint256)","cd4aed30":"errorWithMessage()","cd4b3c57":"newSubdomain(string,string,address,address)","cd4b6914":"getRandom(uint256)","cd4c04c6":"Appoint(uint256,address)","cd4c4c0c":"getCurrentBucket()","cd4d0570":"getbuynode(address)","cd4d1664":"EconomyRebated(string,string,string,string,string)","cd4d4b46":"BONUS_CAP()","cd4d6895":"verifyEIP20(address)","cd4e28b5":"setNextBidExpireBlockLength(uint256)","cd4e396b":"USER_ACQUISITION()","cd4f5e90":"MTToken()","cd4fb3be":"newBurnableOpenPayment(address,string,uint256,uint8,uint256)","cd501bf7":"SignalsCrowdsale(address,address,address,address)","cd503c0b":"claimFees(bytes4)","cd50d44f":"CheckRepresentment()","cd51bcae":"setBuyRequestLimit(uint256)","cd51f084":"owner_freeze_term()","cd5286d0":"getAsset(string)","cd53a3b7":"makerWithdrawAsset(uint256)","cd53ac45":"MANHATTANPROXYFDR()","cd53e455":"receivedEther()","cd5406e4":"getBalanceAtSnapshot(address)","cd54c54e":"setCirculationCap(address,uint256)","cd550cc8":"XferMoneyTeamAddress()","cd55205b":"KotET()","cd559561":"getPeers()","cd55cda2":"determineFinalOutcome(uint256)","cd56028f":"ArjToken()","cd560862":"EZ25COIN()","cd5617b6":"STCDR()","cd5655da":"setPixelBlock(uint256[],uint256[],uint256[],uint256[])","cd565bc5":"determineAffID(uint256,uint256)","cd5681d5":"mintRefs(bytes32)","cd568d0f":"submit(string,int8,int8,int16,string)","cd56f019":"getDefaultClaim(address)","cd572a07":"BOF()","cd575c32":"mintGem(uint256,string,uint256,bool,uint256)","cd576dd0":"IPAC()","cd5777e2":"allocateTokensToInvestors(address,uint256)","cd57a448":"SwapContract(address,uint256)","cd57a650":"BasilNetwork()","cd584045":"enableApproval()","cd586a50":"OnliCoinToken()","cd58a867":"internalAssignTokens(address,uint256,uint256,uint256,uint256)","cd58e75b":"newBurnableOpenPayment(address,uint256,uint8,uint256,string)","cd591822":"CanaryV7Fast()","cd59bf5b":"getNowFromOwner()","cd5a489d":"killContract(bool)","cd5a57cb":"registerOpinion(uint256,string)","cd5a9bf3":"isCurrentOrPastAccountMinter(address)","cd5ab612":"buyEmptyPixelArea(uint256,uint256,uint256,uint256)","cd5acd4d":"setKey(bytes32,bytes32,bytes)","cd5b4ae0":"zHQPreSale()","cd5b8837":"distributeGREEN(address[],uint256,uint256)","cd5ba752":"firstPlacePot()","cd5ba978":"presale_end_block()","cd5bfb63":"tokenIdOf(bytes32)","cd5bfbe4":"initialVestAmount()","cd5c222f":"msgMap(uint256)","cd5c4c70":"deleteOwner(address)","cd5d6c2b":"betInfoIsLocked()","cd5d950f":"TaxiToken()","cd5dba1e":"WhiteElephant()","cd5dd1d0":"showMsgSender()","cd5e2038":"t_ImmlaTokenDepository2()","cd5e3c5d":"roll()","cd5ebd93":"calculateTimeout()","cd5ecd60":"theWinnernumber()","cd5f49d5":"transferRewards(address,uint256,uint256)","cd5f5c4a":"tryGet(bytes12)","cd60aa75":"TokenPurchase(address,uint256,uint256)","cd60fe35":"MAX_TOTAL()","cd619681":"count_nodes()","cd61a95a":"sellOrder(uint256,uint256)","cd61cb3a":"setTokenUpgrader(address)","cd62b382":"Sunset(bool)","cd634920":"buyLeader(uint256,uint256)","cd635b71":"ownerShipTransfer(address)","cd639e6c":"EthFundTransfer(uint256)","cd639e8c":"transferByInternal(address,address,uint256)","cd63acf9":"buyChest()","cd63d930":"distributionCap()","cd64b135":"_depositToken(address,uint256)","cd64d952":"buildConnection(address,address,address,int256,uint256,uint256)","cd6566b0":"battle(bytes8,bytes5,bytes8,bytes5)","cd65908e":"changeIPFS(string)","cd65bb67":"ViewToken()","cd67571c":"accept(address,uint256)","cd679413":"ASHLEY_ALLOCATION()","cd67e55e":"LSTRatePerWEI()","cd67f3bc":"LimingCoin()","cd68100c":"lastAddress()","cd69859e":"vestedAdvisors()","cd69a7f1":"weightsApportionDecimals()","cd6a7ca7":"allowance(address,address,address,address)","cd6c4bb0":"startSettlementPreparation()","cd6c8343":"getAttributeValue(address,uint256)","cd6d7f81":"PRICE_FACTOR()","cd6dc687":"initialize(address,uint256)","cd6dca9e":"SaleFinalised(address,address,uint256)","cd6e05e2":"totalPotAwayTeam()","cd6e4dad":"LBCToken(address,address)","cd6e8855":"setMedications(bool)","cd6ebff6":"betAmountAtNow()","cd6ee0c2":"WISDOM()","cd6f4e0d":"dragoCount()","cd6f7c50":"GeneNuggetsToken()","cd6f7fdb":"applyKarmaDiff(address,uint256[2])","cd6fafa2":"XXXXXXXX04()","cd6fc2d1":"addMiningWarPrizePool(uint256)","cd704cb4":"getGeneralRelation(uint32)","cd71a397":"contract6function1()","cd71a471":"withdrawMkt(address,uint256)","cd72250d":"multiTransfer(address[],address[],uint256[])","cd728815":"setSubContractAddresses(address)","cd7292a0":"ChessLottery()","cd729a91":"unlockedTeamAllocationTokens()","cd72ab69":"etherRaised()","cd73d26c":"blocksPerDeal()","cd73df78":"getAllUsers(bool)","cd74096a":"getDataHoldersRefBonus(address)","cd755b41":"subs(address,address)","cd761b9c":"Grass()","cd762827":"joinGame(address,uint256)","cd76635b":"_setAddr(address)","cd76aa16":"getTotalCollected(uint64,address)","cd76faf5":"listActiveEggs()","cd7724c3":"getEthToTokenInputPrice(uint256)","cd77521a":"setFSTAddress(address)","cd77a0c8":"purchaseToken(address)","cd7805bc":"pinged(address,uint256,uint256,uint256)","cd781bf3":"pullEntry(uint256)","cd784d1b":"isSuperUser(address)","cd78a3b7":"processVote(bool)","cd79f86d":"submitPkgHash(string,string)","cd7a2c3b":"ResumeICO()","cd7b6744":"lockGlobalToken()","cd7ba8fd":"currentBlockHashCst()","cd7c92e3":"requestPrice(uint256)","cd7d5b92":"STARTING_SWORD()","cd7da845":"throwsWhenFinalizingWithIncorrectCap()","cd7da914":"renounceArbiter(address)","cd7dfa31":"setStarDeleted(uint256)","cd7e3184":"getValueBonus(uint256)","cd7e9fa6":"RefondCoin(uint256,string,string)","cd7eac3a":"house_fee_pct()","cd7ec171":"developer_string_C(string)","cd7ecda0":"grantPromoPack(address,uint8)","cd7f85fa":"budgetMultiSigWithdraw(uint256)","cd7fa74b":"setPendingReview()","cd7fb38c":"isValidMatingPair(uint256,uint256)","cd7ff921":"stringIndexOf(string,string)","cd80da82":"tokenShare(address)","cd819bdd":"setaddrFWD(address)","cd82a778":"_allowTimelock(address,address)","cd836e15":"SHARDING_REWARD()","cd838f0f":"getNames()","cd83b57c":"TacoCoin()","cd84cff4":"wwwithdrawww(uint256)","cd852330":"buyFromTrusterDealer(address,uint256,uint256)","cd854072":"affiliatThreshold1()","cd8550b8":"setBonus(bool)","cd85e945":"EtalonToken()","cd863e25":"startOffering(uint256)","cd866ee1":"MaximCoin()","cd868648":"setEndBlockNumber(uint256)","cd86eee2":"tokenCreationMinMile1()","cd871b16":"matchBytes32Prefix(bytes32,bytes,uint256,bytes)","cd875247":"OffGridParadise(string,string)","cd880b1e":"kcck256stradd(string,address)","cd881742":"teamTokensReleased()","cd88333e":"coldStore(uint256)","cd887739":"getExpertiseId(uint256)","cd88bac4":"teamTokensLockAddress()","cd897b75":"withdrawSubRound(uint256)","cd8aa272":"Icarus()","cd8b02c8":"Revoce()","cd8b0a77":"getProjectJudge(uint256)","cd8c063b":"isTransferAllowed()","cd8cc844":"lotteryStart()","cd8cdccd":"XiiPay()","cd8d3918":"calcLuckyCoinBenefit(uint256)","cd8d8da0":"tokenFallbackExchange(address,uint256,uint256)","cd8db998":"isDepositBlock(uint256)","cd8df8ec":"activateLastSale()","cd8e250a":"frozenBalancesOf(address)","cd8ed6f6":"addMarking(bytes32,bytes32,int256)","cd8f8b3c":"updateMintingAgent(address,bool)","cd8fce49":"Consents()","cd905dff":"isOperational()","cd9063f6":"replaceToken(address)","cd906676":"changelp1(address)","cd90b99d":"spawnInstance(address,uint256,uint256,uint256)","cd91672d":"firstStageDatetime()","cd91866a":"_startGameRound()","cd9217f7":"eventListener()","cd928f69":"updateAllowedTransfers(address,bool)","cd92dec0":"WaterMeterAcorn(address)","cd92eba9":"debtLedgerLength()","cd932c9c":"parseTimestampParts(uint256)","cd93307a":"EthereumSmart(uint256,string,string)","cd9354e4":"successesOf(address)","cd9380d5":"testSetBalanceSetsSupplyCumulatively()","cd93f6f3":"SetPoolEntryFee(string,uint256)","cd943e54":"transferToLock(address,uint256,uint256)","cd944e3b":"EXPERTS_POOL_TOKENS()","cd94a2a4":"owlToken()","cd953744":"getZTKCheck(address,address)","cd9548ce":"CompanyURL(string,string)","cd955faa":"hasSantaCoins(address)","cd9679dd":"issuePRETDETokens(address)","cd9745f2":"voteForTransaction(uint256)","cd9847bc":"testAccessControl()","cd98b214":"getMarketCreatorSettlementFeeInAttoethPerEth()","cd997aa3":"getData_31()","cd9a1b63":"devBalance()","cd9a1fa6":"countOfOwners()","cd9a27ba":"defaultRegionTax()","cd9a3c98":"any(bool[7])","cd9a7a56":"revokeOperatorByTranche(bytes32,address)","cd9b2f05":"addContributors(address[],bytes32[])","cd9c8d80":"VerifiedInfoHash(bytes32)","cd9d12f2":"icoStartUnix()","cd9d27ed":"setDelegadoDeDistritoVerify(bytes32,bytes32,uint8)","cd9ea342":"testMode()","cd9f05b8":"balanceEtherAddress(address)","cda0574e":"emitNominUpdated(address)","cda0eeaa":"gameMinBetAmount()","cda113ed":"globalBet()","cda2695a":"sponsor(address,uint256,uint256,uint256)","cda35494":"bonusMintingAgent()","cda368c3":"teamV()","cda3c001":"getUnsoldPeriod()","cda4351b":"ViewBetByID(uint256)","cda43ec5":"returnHrt(address,string)","cda4beef":"createAuction(uint256,uint256,uint256)","cda68e5d":"LogDecreaseCap(uint256)","cda6e92a":"sendTransaction(address,uint256,uint256,string,bytes)","cda78dea":"DTransport()","cda8300e":"Transfer_data_enabled()","cda87e33":"getConfigBoolz(bytes)","cda95d80":"Reserve()","cdab73b5":"blackList()","cdab9b5b":"setProviderName(uint256,string)","cdaba786":"addBet(uint256)","cdad5f94":"sendState(bytes,uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","cdad6576":"changeBountyArbiter(uint256,address)","cdadb0fa":"right58(uint256)","cdaeb47d":"removeAddressFromMaster(address)","cdaf4028":"getMigrationCount()","cdb0ec6b":"getLinkedWallets(address)","cdb0fed9":"Livetest()","cdb230be":"DHAMAR()","cdb23c2d":"getMonarchyFactory()","cdb2867b":"canVote(uint256,address)","cdb294a2":"startDeal(bytes32,address)","cdb30482":"setBalancesUSD(address,address,uint256)","cdb3344a":"createGravatar(string,string)","cdb38f4f":"preICOTokenIssuedTotal()","cdb532b9":"deleteCharity(uint256)","cdb58e21":"DUBI()","cdb616b2":"ForkDelta(address,address,uint256,uint256,address)","cdb627b2":"showRecastConfigs()","cdb62c16":"getCashOutAmount(uint256)","cdb6753b":"setNav(uint32)","cdb75f2b":"NemoXXToken()","cdb7699a":"manualTransferTokensToWithBonus(address,uint256,uint256,uint256)","cdb78a2a":"giveNxc(address,uint256)","cdb7ef81":"getMinAuditPriceMax()","cdb80c51":"_service()","cdb88ad1":"setPauseState(bool)","cdb986cc":"getExperience()","cdb99909":"fstPrivateSalePortionNumerator()","cdbaed5a":"_isValidDepositCountry(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","cdbb02af":"getAddressCount()","cdbccf50":"unfreeze_end_date()","cdbce03d":"checkOwner()","cdbcff6d":"getQuotas()","cdbd0f0e":"getRatioOf(address)","cdbd1031":"craftTwoCards(uint256,uint256)","cdbd3fc9":"bax()","cdbd7516":"allowUsers(address,address[])","cdbdc7a4":"DeveciToken()","cdbdd569":"SetLastRoomAndRound(address,uint8,uint256,bool)","cdbdf391":"left34(uint256)","cdbf9c42":"multiply13(uint256)","cdbfd448":"memberLog()","cdc04961":"setStates(address[],uint8[],uint8[])","cdc0563a":"presaleTokenRate()","cdc06bdd":"CrypviserICO(address[],uint256)","cdc07bbc":"_destroy(address,uint256)","cdc18424":"withdrawer()","cdc25845":"setBuyPrices(uint256)","cdc26dcb":"dorcasToken()","cdc2895c":"getOffer()","cdc39f4a":"addCardSet(uint256,uint256,uint256,bytes32,string,address,uint8)","cdc3e046":"balanceMaxSupply()","cdc57fd3":"modifyTokenPrice(uint256)","cdc5c7cd":"updateLinkHash(uint256,bytes32)","cdc62c03":"getFeeToTokenConversion(uint256)","cdc62d39":"ballotDetails(uint32)","cdc68b85":"create_all()","cdc7076d":"getMilk()","cdc81bc2":"totalInVaults()","cdc86ec4":"tokenCreationMinPayment()","cdc89404":"round5StartTime()","cdcb3cdb":"crowdsaleSupply()","cdcb7c8f":"chase()","cdcb8788":"nextRoundFee()","cdcbac0d":"phase3StartingAt()","cdcc599b":"YunnimToken()","cdcc5d3e":"getTokenHolderTribunal()","cdcd77c0":"baz(uint32,bool)","cdcda9a8":"DogeCash(uint256,string,string)","cdcdb463":"getRiskParameters(bytes32)","cdce240c":"WillCoin(string,uint256,string,uint8)","cdce5206":"getUserNum()","cdcf0c4a":"dispute(string,address)","cdcf4b9b":"priceDenominator()","cdcf5794":"checkCooldown(address,address)","cdd11b83":"roundTotalWinnings()","cdd13589":"batchDistributeWithAmount(address[],uint256[])","cdd13673":"rewardReductionRate()","cdd13701":"getEventHashes(uint256[256])","cdd1b539":"getSequenceNumber(uint256,address)","cdd2067e":"getVendingAmountSold(uint256)","cdd247a9":"offerAd(uint256,uint256)","cdd2ef0c":"starBuy()","cdd3574a":"crowdsaleStartBlock()","cdd3ab58":"addDistributionSources(address[])","cdd432d0":"rewardNumerator()","cdd63344":"moveTo(uint256)","cdd6d079":"_tokensForEth(uint256,uint256)","cdd72253":"getVoters()","cdd739f6":"tokenCapForPreICO()","cdd7b1fd":"init(uint256,uint256,uint256,address)","cdd8750e":"getDueTime(bytes32)","cdd8b2b2":"registerBeneficiary(address)","cdd8cc49":"debug_string(string)","cdd8d4e8":"mgmtRewardPercentage()","cdd90fbb":"firstRoundWMDiscount()","cdd93332":"getTradingStart()","cdd977e0":"addrService()","cdda62ad":"FutureBlockCall(address,uint256,uint8,address,bytes4,bytes,uint256,uint256,uint16,uint256,uint256)","cdda96cf":"TokenPriceETH()","cddaf241":"distributeReservedTokens(uint256)","cddb4e44":"getDataAddress()","cddb523b":"changeTeamWallet(address,address)","cddb8e94":"buyProduct(address,uint256)","cddbe729":"game(uint256)","cddbff7c":"CRYPTODUBAI()","cddc028b":"IndexEmpireToken()","cddc37c1":"withdrawForTwoYear()","cddce877":"TOKEN_SHARE_OF_LEGALS()","cdde5413":"updateTileTimeStamp(uint16)","cdde76f7":"hasAnyAttrs(uint256,bytes2)","cdde9294":"avgTokenWinValue()","cddeaba0":"setTokenPrice(uint256,uint256,uint256,uint256)","cddfbaaf":"AirDropAFTKSeven()","cde02b25":"totaldivineTokensIssued()","cde0a4f8":"setRegulator(address)","cde180a9":"listContractByModuleId(string)","cde1d97a":"ChangeTokenVaultAddress(address)","cde25f8a":"getWineOwner(address)","cde2c35a":"rewardBobaBase(uint256)","cde2d72a":"receiveBTC(address,string,address,uint256,string)","cde2e8d7":"A2ACrowdsalePartner()","cde4018e":"AgriChainData()","cde40bc8":"bonusFirstWeek()","cde43f28":"mintTokens(uint256,int256,address,uint256)","cde4efa9":"flip()","cde596b2":"Pay(address)","cde5f58f":"RELEASE_INTERVAL()","cde68041":"hasPermission(address,address)","cde74e51":"licenses(bytes32)","cde7da75":"claimActingPlayerOutOfTime(uint256)","cde7f980":"save(string,address,uint256)","cde93eec":"NewIssue(address,uint256)","cde99727":"calculateROI()","cde9f2ea":"startdate()","cdea76d6":"buyLong(address[2],uint256[2],uint8,bytes32[3])","cdeb1485":"massTransfer(address[],uint256[],bytes32)","cdeb7bac":"MaiToken2()","cdebf885":"Rent(address,uint256,uint256,uint256)","cdecd1d7":"FUN()","cded6986":"_getBridgeTokenFee(uint256)","cded6fa5":"JesusCrowdsale()","cdeda055":"_assert(bool)","cdee2112":"CyberToken()","cdee2b92":"saleclosingTime()","cdee5c4a":"raceRegistration(uint256,address)","cdee8973":"Swapped(address,uint256)","cdef3911":"assignTokenOperator(address)","cdef9423":"create(address,address,address,address,address,address,address,uint8,string)","cdef9fb6":"SimpleStore(uint256)","cdefa007":"FondoNetwork(uint256,string,string)","cdefa4de":"ParaD2Test()","cdefe704":"getLOCbyID(uint256)","cdf016ca":"minimumBounty()","cdf05ab5":"voteTime(uint256)","cdf20e1e":"currentSyndicateValue()","cdf32cab":"totalInvestedWei()","cdf3bc6f":"revise()","cdf3bdab":"GetMyAcorn()","cdf45c03":"FourLeafClover()","cdf46344":"mint(address,string,string,uint256,uint64,uint64,uint64)","cdf4d6b4":"registerKYC(address[])","cdf574f1":"purchase(uint256,bytes7)","cdf6ddb4":"activeCrowdsalePhase1(uint256)","cdf744b2":"setFounderPercent(uint256)","cdf90e02":"Roles2LibraryAndERC20LibraryAdapter(address,address)","cdf93c0f":"EtherBlock()","cdf99413":"CrowdsaleToken(string,string,uint256,uint256,bool)","cdf9b77e":"getCurrency(uint256)","cdfb0a21":"PRVTSToken()","cdfb2b4e":"enableWhitelist()","cdfb5832":"setClaimer(address)","cdfbc437":"setMaxBetAmount(uint256,uint256)","cdfbc8f1":"MINIMAL_PURCHASE()","cdfbe22c":"isAnExchanger(address)","cdfc20aa":"addHashType(uint8,string)","cdfd293b":"BOUTSPRO_AMOUNT()","cdfd72e8":"calcTeamEarnings(uint256,uint256)","cdfd7474":"SONICToken(string,uint8,string)","cdfdb7d6":"increaseAllowance(address,uint256,address)","cdfe2815":"createVip(address,uint256,uint256,uint256)","cdff1be4":"pauseWithdrawal(address,address)","cdff5857":"updateUint256s(bytes32[],uint256[])","ce00d49c":"_transferWithRate(address,address,uint256)","ce017242":"updateICOPrice()","ce01e1ec":"set2(uint256)","ce021384":"numberOfReferralCodes(address)","ce0457fe":"NewOwner(bytes32,bytes32,address)","ce04a8c5":"isDAppReady()","ce04c10e":"highContributionAward(address)","ce05264f":"createInterceptorFromVault()","ce05369b":"releaseTokenHolder()","ce058d0d":"ChangeLEXTokenAddress(address)","ce0617ec":"lockedUntil()","ce072163":"collectPayments()","ce07d2b4":"proxyTransfer(address,address,uint256,bytes)","ce098093":"createtoken(string,string,string,address)","ce0a191a":"setLotteryTokensPercent(uint256)","ce0b5bd5":"cancelWhitelistRemoval(bytes32)","ce0bb9c4":"looksCoin()","ce0bd51f":"bancorConverterFactory()","ce0befcf":"remainTokens()","ce0d5f78":"addAddressToBlacklist(address,address)","ce0df06b":"FreezeAccount(address)","ce0e19ba":"appendString(string)","ce0f802d":"MaazBTC()","ce0f92b7":"hashOrder(bytes,uint64,uint64,uint256,uint256,uint256)","ce0ff8d8":"CSStoken(uint256,string,string)","ce10814c":"wmax(uint128,uint128)","ce109195":"internalDoesEventExist(bytes32)","ce10cf88":"getAddressByIndex(uint256)","ce11f2bb":"vote(uint256[])","ce120afb":"_safeTransferPaymnt(address,uint256)","ce139296":"icoPhaseDiscountPercentage1()","ce13bfb7":"cancelLoanOffering(address[9],uint256[7],uint32[4],uint256)","ce144eb9":"spiceUp(string)","ce146d3d":"getTotalWins()","ce148564":"TIER3END()","ce148c1f":"tempTokensPeriodOf()","ce14a46e":"totalPeriod()","ce14d404":"PieTokenBase()","ce14eeb8":"BASE_HARD_CAP_PER_ROUND()","ce14f10b":"disabled(uint256)","ce15647a":"getTeam(uint8)","ce158ba2":"approveCompanyAllocation(address)","ce160edd":"searchAndBid(uint256,uint256)","ce1619f8":"_lockPaymentTokens(address,uint256,uint256)","ce161b57":"AngelTestToken()","ce165894":"updateExpectedAmount(bytes32,uint8,int256)","ce17f01e":"Hostblock()","ce18eb0b":"stage1Deadline()","ce19419b":"testThrowsSetNotUpdatableNotOwner()","ce1a70a3":"SimplePreTGEContract()","ce1aafc0":"VinaexToken()","ce1afbe1":"_transferToken(address,address,uint256)","ce1b088a":"withdrawDonations()","ce1bd789":"DestroyTransferFeeCoin()","ce1c1538":"getCardByOwner(address)","ce1c93af":"abandon(string)","ce1cf229":"SimpleMultiSigWallet()","ce1d6ea0":"testAppendTranch()","ce1ed182":"getLastMilestoneStartsAt()","ce1ed2bb":"BecomeSquirrelDuke()","ce1f561c":"holdingTaxDecimals()","ce1ffcd9":"setTransferEnable(bool)","ce203b83":"officialUserSignUp(string,address)","ce204b78":"defrozen(address)","ce204bf1":"TOKEN_LOCKING_PERIOD()","ce20fd84":"query(bytes2,int256)","ce21abf3":"sendUnsoldPRETDETokensToTDE()","ce21fbf4":"GolemToken()","ce220ecf":"testAddBalanceFailsAboveOverflow()","ce2293ca":"EIB(string,string,uint8,uint256)","ce230030":"unlockSupervisedFunds(address)","ce233452":"limitPurchasing(uint256,uint256)","ce23e8bc":"LIQUIDATION_TOKENS_PER_ETH()","ce23f2b2":"newLoan(bytes32,address,uint256,uint256,uint256,uint256,uint256,uint256)","ce241d7c":"LogSetOwner(address)","ce248843":"removeOne(address)","ce255bba":"setsafekey(uint256)","ce266af8":"tom()","ce267b55":"ecdsaVerify(address,bytes,uint8,bytes32,bytes32)","ce2777a3":"BigchatToken(uint256,string,uint8,string)","ce27a21a":"setLogoPrice(uint256)","ce289284":"Result(bytes1)","ce2a9f62":"totalEthCollected()","ce2c6ad5":"getChainFeeArray()","ce2ce3fc":"getLocation()","ce2d173f":"setSelfOff()","ce2d3fa1":"returnKVTToOwner()","ce2dfd00":"createFootballerStar(uint256,uint256,uint256,uint256)","ce2fc873":"setArticleHash(uint256,string)","ce2fc8b1":"RequestC(bytes32,bytes32)","ce2fce38":"getTransferInfo(address,uint256)","ce3099fa":"testNBool()","ce3174ca":"revokeSubmission(address,address)","ce329570":"byzantineCloseChannel(bytes32)","ce347a65":"fund(uint16)","ce3498b8":"DelegatedIdentity(address)","ce356e3a":"addTeam2(uint64,uint64,uint64,uint16)","ce371431":"queryFunds(address)","ce373b95":"heroOfThePit()","ce376aa3":"buy_king()","ce3800e1":"moonLevel()","ce383ec7":"view68()","ce389e53":"getTokenAddHold()","ce394696":"calculateCost(uint256,uint256)","ce39952a":"disableSecureMode()","ce39976d":"getUrlAtIndexOf(address,address,uint256)","ce3a7076":"Cancelot(address,address)","ce3b0475":"changePriceDecraseTime2Action(uint256)","ce3be6bb":"withdrawWallet1()","ce3cc3aa":"changeTolerance(address,bytes32,uint256)","ce3ccfd0":"shouldReturnDefault(bytes32)","ce3cd997":"setStage(uint8)","ce3cef0d":"stopTakeToken()","ce3d9237":"mintMarginTokens(bytes32,address[7],uint256[8],uint32[2],bool,bytes,bytes)","ce3e82a4":"KorkToken()","ce3f865f":"collect(uint256)","ce3fff35":"ONTTotalSupply()","ce4150eb":"migrateMarketInFromSibling()","ce419871":"openKYC()","ce41d75d":"NewIntelTechMedia(address)","ce4254ce":"terminationTime()","ce429429":"generateOrderByMerchant(address,uint256,string,string,string)","ce42bb11":"getLockedDevFundAmount()","ce42fa88":"Telcoin(address)","ce435f4b":"SetParticipantAgrHash(address,address,bytes32)","ce43b0c0":"creditorAddresses(uint256)","ce43c032":"getUsername(address)","ce43c097":"CradTimeLock(address)","ce44573a":"GenChipByRandomWeight(uint256,uint8,uint256[])","ce45a260":"CryptoDime()","ce45f981":"MooAdvToken(uint256,string,string)","ce468922":"transferCat(bytes5,address,address,uint256)","ce46e046":"isPayable()","ce471aee":"kompitechToken()","ce47befd":"checkoutCart(string)","ce47e604":"sendAliceBlue(address,uint16,uint256)","ce483c42":"statusI()","ce483e88":"incrementOpenInterest(uint256)","ce48a54d":"getHeroLevel(address,address)","ce49735a":"distributeAlliniTokens()","ce4a6f09":"offerCanvasForSaleToAddress(uint32,uint256,address)","ce4a9206":"minPayInterval()","ce4ae74a":"setRewardMinter(address,uint256)","ce4c4a74":"TrueFlipToken(address)","ce4cf4c8":"advisorTotal()","ce4d01a3":"validate(uint256)","ce4d66b9":"roundBonus(uint256)","ce4d6fdf":"maritalStatus()","ce4dbdff":"securityTokenRegistry()","ce4ddabd":"updateTimeRC(address,uint256,uint256)","ce4e42d2":"BountyManager(address)","ce4e5aa4":"findBestMatch()","ce4e84a3":"STARTING_CHICKEN()","ce4e8c1a":"createNextPremiumSale(uint8,uint256)","ce4eb657":"updateXDRRate(uint256)","ce4ef577":"tokensAllocatedForAs(address,address,address,address,address,address,address,address,address)","ce4efe62":"insert(uint256,bytes32,bytes32)","ce507401":"oraclizeGasPrice()","ce50f72d":"getAvailableBalanceOf(address,address)","ce50f926":"getMinLimit()","ce510d46":"neededAmountTotal()","ce513b6f":"withdrawable(address)","ce52242e":"gotchinfo(address)","ce522f22":"updateWeiCap(uint256)","ce52c4ef":"createDelegation(address,uint256)","ce52cf84":"encoding_format()","ce53ee2d":"voteNoLockByAdmin(address,address,uint256)","ce5478a4":"lockedCapitalOf(address)","ce5494bb":"migrate(address)","ce5566c5":"cash(uint256,uint256)","ce557031":"purchaseTokens(address)","ce5570ec":"isWallet(address)","ce563036":"BaseContract()","ce5659bc":"changePartner2(address)","ce56c454":"withdrawEther(uint256,address)","ce56f3fb":"moneybuy(address,uint256)","ce5774c6":"Proposal(string)","ce578cd6":"managementContractAddress()","ce57d8d5":"getSingleInvestor(address)","ce5910f3":"unfreez()","ce592586":"setThresold(uint256,uint256)","ce5968da":"onMint(int256,address,uint256)","ce597164":"normalDemurrageAmount(uint256)","ce5a5df7":"createUnicorn(address)","ce5a63ff":"purchaseBlock(uint256,uint256)","ce5ac32d":"Firmament()","ce5c073d":"setMintMaster(address)","ce5c2c33":"performTransaction(uint256)","ce5c4fd8":"finalizeSale(uint256,uint256)","ce5c5201":"cryptogsAddress()","ce5d80e6":"stealCardWithId(uint256)","ce5e13aa":"getPlayerProfit(address)","ce5e4190":"set_tokens_per_ether(uint256)","ce5e6393":"tgrSetFinished()","ce5e84a3":"activate(bool)","ce5e9ffb":"CORRECTION()","ce5f9454":"numerator()","ce5fa1e9":"secondExchangeRatePeriod()","ce5fd7f3":"OfferContract()","ce606ee0":"contractOwner()","ce60f78d":"createMarriage(bytes,bytes,uint256,bytes,bytes)","ce622ec5":"announceWinner(string)","ce6236ca":"getRoundLength()","ce627bd9":"mineblocksAddr()","ce629a6b":"_computeTournamentBooty(uint256,uint256,uint256)","ce63066f":"test_6_basicTransfer_increaseBlocksBy1000()","ce6342f3":"getAbiVersion()","ce63cc89":"postTask(string,string,uint256,uint256)","ce649b39":"setEthereumRate(uint256)","ce655952":"_cancelSale(uint256)","ce665dd8":"OFFSET()","ce67bda6":"testNop(int256,int256,uint256)","ce686e40":"IcoToken(string,string,uint256,string)","ce686e62":"BurnableOpenPayment(address,uint256,bool,uint256,string)","ce691294":"kRate()","ce6933d5":"fetchPaidOrdersForPayer()","ce695d7f":"_addArea(address,uint256)","ce699a41":"releaseVestedTokens(address)","ce69cd20":"MIN_BID()","ce6a9bd6":"proofType_Ledger()","ce6b3467":"withdrawExcessToken(address)","ce6c0b64":"_getTokenNumberWithBonus(uint256)","ce6c2589":"_emitOracleRemoved(address)","ce6c9a89":"changeMinimalWei(uint256)","ce6d35d1":"migrateToken(address,address)","ce6d41de":"getMessage()","ce6eaef5":"startSecondSale()","ce6eaff9":"YOU_BET_MINE_DOCUMENT_SHA512()","ce6efb07":"AmountLimitCrowdsale(uint256,uint256)","ce6f149c":"WEEKS_26()","ce6f899d":"EventLogin(address,string)","ce709c9b":"proposalCreateTime(uint256)","ce70faec":"createUltimateOracle(address,address,uint8,uint256,uint256,uint256)","ce71b83c":"TianqibaoTokenERC20(uint256,string,string)","ce71caee":"juryOperator()","ce72a696":"ICO_PERCENTAGE_1()","ce73a61d":"setWhitelistExpiration(uint256)","ce73b41a":"addBuyTokensRequest(address,string,uint256,uint256)","ce742222":"SCARABToken2()","ce744ba5":"SellOffer(address,address,uint256,uint256,uint256,uint256)","ce746024":"recover()","ce7462e9":"setStarSellPrice(uint256,uint256)","ce749c29":"defund()","ce774030":"raiseCoinsAdded(address,uint32,uint256)","ce77cf42":"Rafflecoin()","ce782e08":"floorLog2Test(uint256)","ce784216":"scrapCount()","ce7842f5":"referralBonus()","ce784564":"findPositionInMaxExpArray(uint256)","ce78b752":"ActivatedEvent(bool)","ce7917d7":"GEOCOIN()","ce794294":"multisignature()","ce799b0a":"changeStakeRate(bytes32,uint256)","ce79add1":"givableBalanceOf(address)","ce79d17d":"Storesumdata(bytes32,bytes32,uint64)","ce7a0697":"_internalTgeSetLive()","ce7a2b02":"processPayment(address,address)","ce7a60ab":"unlockBalance(address)","ce7a94eb":"SliceByte32(bytes,uint32)","ce7aa79f":"PXMCToken(uint256,string,uint8,string)","ce7ab6a7":"set_refunded(bool)","ce7ba916":"_initBadges(address,uint256,uint256,uint256)","ce7c2ac2":"shares(address)","ce7c5d7f":"transferEthToOwner(uint256)","ce7ca615":"FoundationAddress()","ce7ca665":"medalBoost()","ce7cdbb7":"getIndexRoot(bytes32)","ce7d3539":"AVMDisputeProcess()","ce7e23a0":"UnityToken(address,uint256,uint256)","ce7e51e3":"uint256ToString(uint256)","ce7f6e82":"CoinPulseToken()","ce7fc203":"accForTeam()","ce803a70":"noOfSeats()","ce806176":"setPurchasing(bool)","ce809e4e":"ETH_DECIMALS_FACTOR()","ce813d8f":"addTurretParts(uint8[])","ce816706":"X4BToken()","ce818ed5":"SiringClockAuction(address,uint256)","ce82eb33":"ico4Bonus()","ce830f5b":"_unlockToken(address)","ce845d1d":"currentBalance()","ce85e801":"MAX_PRICE_SALE()","ce85fbe2":"joojinta()","ce860a62":"getShipIdsByOwner()","ce869a64":"fails()","ce8721b2":"daoAccounts(address)","ce873a67":"processReferer(address)","ce8775a4":"win(uint256,uint256,uint256,bytes,uint256)","ce87f626":"replaceWizardRP(address)","ce8804c9":"setAdvertAddr(address)","ce8883af":"potFee(uint256)","ce88a9ce":"setProduction()","ce88b145":"getAccount(uint256)","ce89a2a2":"changeSettings(uint256,uint8)","ce89b5de":"buy100()","ce89c80c":"calcKeysReceived(uint256,uint256)","ce8ac033":"getAvatar(address)","ce8ae9f3":"giveReward(address,uint256)","ce8b5b60":"setLockAfterManuallyMint(bool,int256)","ce8b7151":"isHF()","ce8b7be4":"consultantsAllocation()","ce8bbe4b":"bobMakesErc20Deposit(bytes32,uint256,address,bytes20,address)","ce8bcae3":"allFundsCanBeUnlocked()","ce8d054e":"_setupNoCallback()","ce8d096d":"redeemVestableToken(address)","ce8d1910":"claimFromSeveral(uint256,address[])","ce8d388d":"disableWithdraw()","ce8d73de":"o_labirinto(uint256)","ce8dc388":"TOTAL_ROUNDS()","ce8e120a":"thawTransfers()","ce8e2fd8":"SaintArnouldToken(address,uint256,uint256)","ce8e5170":"burnedAfterSaleCount()","ce8e95d4":"updateRegion(uint256,uint256,uint256[],bool,bool,uint8[128],bool,address)","ce8ebfc8":"makeSchoolToken()","ce8ff29b":"TicTacToeAdjudicator(address,address,address,address,uint256)","ce90203c":"computeSellPrice()","ce906c6a":"listPrycto5()","ce909980":"checkTimeout(address)","ce90bafa":"topUpERC20(address,uint32,uint192)","ce912692":"createNew(address,address,address,uint256,uint256,uint256)","ce916d85":"icoTokensReceived(address)","ce91e4b3":"freezeaccount(address,bool)","ce923728":"setDealMembers(address,address,address,uint256)","ce92dced":"newBid(bytes32)","ce93b0e4":"returnAdvisorTokens(address,uint256)","ce952345":"icoAssignReservedBounty(address,uint256)","ce95aad2":"isOnCraftingAuction(uint256)","ce95b475":"getBalanceByAdress(address,address)","ce96c8e4":"set_deposit_manager(address)","ce96ec6b":"setRefer(address)","ce972050":"token_orderSheet(address,uint32)","ce972f33":"Menu01(address,uint256)","ce97f61a":"submitTally(uint256,uint256,uint256)","ce9822c7":"Magic10(uint256,address)","ce99151e":"p_wallet()","ce9a3b0f":"special()","ce9a6ac8":"putOn(uint256,uint256,address)","ce9ae667":"PharmaWit()","ce9ae91c":"getARed(uint256,uint256)","ce9af2b9":"isReserved(string,address,string,bytes32)","ce9b4321":"calculateCommission(uint256)","ce9c39c9":"stepTwoStartTime()","ce9e673b":"forceOffsetBasicFeeRate()","ce9e6bb7":"setEndTimeIcoStage2(uint256)","ce9f24dc":"SilentNotaryCrowdsale(address,address,address,uint256)","ce9fb088":"TransferSellAgentBounty(address,uint256)","cea024d9":"tokenPriceNum()","cea08621":"changeDailyLimit(uint256)","cea10af7":"hardFundingGoal()","cea15706":"DarkrenlandCoin()","cea16c83":"endFinalStage2()","cea198c8":"LogBidCanceled(bytes32)","cea22b51":"ico_stage()","cea289db":"debugInt(uint256)","cea2ed48":"CreatedPet(uint64)","cea4b687":"updateListingWithSender(address,uint256,bytes32,uint256)","cea5033c":"_requestTokens(address,uint256)","cea5b151":"getLabelHash(string)","cea5d64b":"shift_right(uint256,uint256)","cea63361":"transactionFeeRateM()","cea65e97":"addressIsOwner(address)","cea67184":"getHydroId(address,address)","cea7555b":"distributedFundariaStakes()","cea81ab1":"generateContestForDelegationSchemaHash(address,uint256,bytes32)","cea876ba":"EthMatch(uint256)","cea943ee":"getSaleConfig()","cea9707a":"getMyTicketList(bool,uint256,uint256)","cea99275":"hasInitMartial()","cea9b7af":"ICO_EOS_AIRDROP()","cea9d26f":"rescueTokens(address,address,uint256)","cea9f621":"setVars(address,address)","ceaa50d4":"getLastPayoutAmountAndReset()","ceaae25d":"massChangeRegistrationStatusForGoldWhiteList(address[],bool)","ceaafb67":"AnonymousDeposit(address,uint256)","ceab09d8":"set_participant(address,uint256,uint256,uint256,bool,uint8)","ceab4ea7":"VOODOO()","ceac2aed":"submit_payment(uint256,uint256,bytes32,bytes32,uint256,address,bytes32)","ceacc749":"calcCurrentMinBid()","cead2c29":"get_ptc_balance(address)","cead4620":"putBtoWithSto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","ceadd9c8":"donateAsWithChecksum(address,bytes4)","ceae3424":"balanceSoll(address)","ceae7f64":"thirdStageMinting()","ceaf0bfb":"admAccount(address,bool)","ceaf1e94":"_transferToAddress(address,uint256)","ceaf9519":"needToGetFree()","ceafb18d":"getCard(address)","ceb0884d":"getSolution(address,uint32)","ceb10f1c":"preIcoCap()","ceb21433":"Activate(address,address,address,address)","ceb22fa0":"meteredEarn(uint256)","ceb24797":"getKycLevel(address)","ceb2731a":"purchaseCrate()","ceb35b0f":"addAddress(string,address)","ceb408b4":"_set5()","ceb41385":"getHashLeftPad()","ceb44d04":"checkSplitEnd(uint256)","ceb51f0a":"setApproved(address,uint256)","ceb60654":"getGroup(uint256)","ceb6dbc3":"time_of_token_swap_end()","ceb791d9":"priceRate()","ceb7bc87":"tokenTransferFrom(address,address,uint256,address[])","ceb7e43c":"getAddOnComplete(uint16)","ceb88ff4":"setContribution(address,uint256)","ceb8ee8b":"durationInMinutes()","ceb98dc7":"unbuy()","ceb9a5fd":"getGameCurrentRoundId(uint256)","ceba1794":"MAX_LOAN_AMOUNT()","ceba30b5":"scheduleTransaction(address,bytes,uint256[4],uint256)","ceba5029":"MOBTokenIssue(address)","cebac2f2":"LRCLongTermHoldingContract(address,address)","cebae575":"GLAU()","cebb8bb0":"testControlRestartEnforceRevisions()","cebbbce5":"ClaimAirdrop(address,uint256)","cebc141a":"devCount()","cebc9a82":"getDelay()","cebce72d":"token(uint64)","cebd31bc":"getStartingPrice()","cebe09c9":"quota()","cebf3bb7":"minRaise()","cebfa61e":"month18companyUnlock()","cec0213e":"HealthDataChain(uint256,string,string)","cec0f734":"setTransferToken(uint256)","cec10c11":"setFees(uint256,uint256,uint256)","cec1365a":"ShortLimit(uint256)","cec17a12":"ChrisBell(uint256,string,uint8,string)","cec33f4e":"getPatentFee(address,uint16[5],uint256)","cec3638d":"VotingChallenge()","cec36cb4":"refundPoweredUp()","cec4a1cc":"pauseRefund(bool)","cec4ab9c":"whitelistEnable()","cec63cea":"NamoToken()","cec68824":"registerFull()","cec7260b":"move_monster(uint16,uint16)","cec77ad5":"ALLOC_ADVISOR()","cec7b4e8":"Deposit(uint256,address,uint256,string)","cec8d277":"decrypt(address,bytes,string)","cec95aa1":"getReleaseHashForPackage(string,uint256)","cec9b4ef":"_executeTransaction(uint256)","cec9df89":"getAddressBetsForEvent(bytes32,address,string,string)","ceca122d":"activate(bool,bool,bool)","ceca7e8e":"fundLock(address,uint256)","cecaf395":"buildBlocks(int32,int32,bytes16)","cecb06d0":"mintOwner()","cecc33e7":"issueTickets(address,uint256,uint256)","ceccc10e":"getHoldersNameAddr()","cecd0264":"executePayment(string)","cecd0ab5":"_processFundsOverflow(address,uint256)","cecd9dd4":"_isNeededNewLottery()","cecdc6aa":"TEAM()","ced095d6":"getContest(string)","ced0a3a5":"setHookOperatorContract(address)","ced0bcc3":"MangaCoin()","ced0c0c2":"subscriptionRate()","ced0d31d":"setFeeRate(uint256,uint256,uint256,uint256,uint256,uint256)","ced11e40":"addMemory(string,bytes)","ced1a60b":"pooja()","ced29978":"LogFrozenAccount(address,bool)","ced32b0c":"setSender(address)","ced39558":"buyLand(uint256)","ced3fb9c":"isAddressAuthorized(address)","ced444bf":"offerStarForSaleToAddress(uint256,uint256,address)","ced4c064":"withdrawTo(string,address)","ced4f4b8":"sellEther()","ced659b6":"burnMktCoins()","ced72f87":"getFee()","ced78ed1":"getImageData(uint256,uint16)","ced7d018":"reFundByOther(address)","ced80aca":"updateMultipleReservedTokens(address[],uint256[],uint256[],uint256[])","ced84a71":"addInvestor(address,uint256,uint256)","ced92670":"changeMultiplier(uint256)","ced9f7c0":"mokenNoName(uint256)","ceda4a03":"NovioCoin_TEST()","cedadaca":"SingularityTest6()","cedbbeee":"createTokens(address)","cedc01ae":"getActivator(address)","cedc2ce1":"setMaxTransfers(uint256)","cedc7277":"getBuyPrice(address)","cedcbd99":"ACTION_BUY_OFFER_ACCEPTED()","cedcd770":"foundationWithdraw(uint256)","cedd90f6":"purchase(bool,bool)","ceddd07d":"balanceOfUnlocked(address)","cedf222e":"congressMemberThreshold()","cee024dc":"getNumberOfVotes()","cee02a86":"SOFTCAP_ETH_LIMIT()","cee0b4fe":"CRTSTAL_MINING_PERIOD()","cee13e28":"Conversion(address,address,address,uint256,uint256,int256,uint256,uint256)","cee24e31":"gambler1()","cee26ed5":"sellers(uint256)","cee2a9cf":"isInvestor(address)","cee401ef":"enableICO()","cee594c8":"addStage(uint256,uint256,uint256,uint64,uint64,uint256)","cee6b0d9":"AcceptsSunny2(address)","cee6b53c":"updateLastActivity()","cee6ee38":"aEthereumlotteryNet()","cee6f794":"SEKEM()","cee6f93c":"getResultOfLastFlip()","cee73630":"buyTPT(uint256,uint256,uint8,bytes32,bytes32)","cee749bc":"withdrawTokenRefund(uint256,address)","cee80356":"min4payout()","cee829ea":"refundMany(address[])","cee8fa1f":"Funding_Setting_cashback_time_end()","cee93e23":"isActive(uint32,int256)","cee96f49":"setissuedSupplyRatio(uint256)","ceea3914":"lookupUserDonationHistoryByCampaignID(address)","ceead4b6":"setCompte_10(string)","ceeafd9d":"withdrawFundsAdvancedRP(address,uint256,uint256)","ceeb7066":"setJoinFee(uint256)","ceebe28d":"repoInterfaceVersion()","ceec8f8f":"removeProduct(string,string)","ceee4119":"getUsersRadarsIds()","ceee9658":"rotate_right(uint256,uint256)","ceeea0ea":"completeAttack(bytes32)","ceef3800":"calculateBonusTierQuotient()","ceef3d93":"changelp7(address)","ceef644c":"LIFEINVIDER()","ceefbbd6":"prePreIcoEndAt()","cef037fd":"setContinueSelling()","cef062fc":"reserveVault()","cef0e9e2":"getFalconmasterReq()","cef24cac":"AmountToFund(uint256)","cef29521":"PRICE_MULTIPLIER_ICO4()","cef2e559":"marketplace_storage()","cef42254":"getContribution(uint256)","cef4be3c":"partialClaim(address,uint256)","cef55ae1":"newComp(uint8)","cef5ed69":"changeServiceAgent(address)","cef6a39a":"createMinerAuction()","cef6cfb2":"addToWhiteList(string,address)","cef75d9f":"myCardDividends()","cef7a4d0":"LogTemplateSet(address,address,address)","cef7e760":"initialCaps()","cef887b0":"storeBlockWithFee(bytes,int256)","cef8d343":"buyShare(uint256,bool)","cef94360":"updatefundingEndTime(uint256)","cef9601f":"timeTillNextSteal()","cef9ca6b":"ThreeDLPrivate()","cef9db6d":"TOKEN_SUPPLY_TOTAL()","cefa624b":"getPlayerAirdropGameData(address)","cefa80fc":"foundersTeam()","cefaba7f":"prc(uint256)","cefad386":"_accountOkayChecks(bytes32,uint64)","cefb09b6":"getBrokerInfo(uint256)","cefb3605":"vaultToWallet()","cefce1f2":"GameOver(string)","cefd2239":"unlocktoken(address,address,address)","cefddda9":"isGenesisValidator(address)","cefdfcf3":"testControlRetractNotRetractable()","cefe23dd":"HarjCoin()","cefeb6f7":"MeshPointManager(int256)","cefed526":"Atlantide(uint256,string,string)","ceff149b":"getRoundLuckyPot(uint256)","ceff6fe6":"cancelApproveForAddress(uint256)","ceffbaf1":"isReleaseApproved()","cf0023ec":"pvt_plmt_max_in_Wei()","cf007460":"nextClaim(address)","cf00c197":"stageOneEnd()","cf00cba0":"BlocksquareSeriesA()","cf00d4b9":"prizePoolPercent()","cf011b26":"excludedAddresses(address)","cf02ba9d":"optionsPerShare()","cf034b1d":"transferFromTrustedContract(address,uint256)","cf03e589":"Registered(address,string,address)","cf03f5f4":"activateMasterKey(address)","cf04dd7e":"DAPSTOKEN()","cf04fb94":"changeVerifier(address)","cf054fb2":"hardCapAmount()","cf0682bc":"warning()","cf06b141":"assertEq17(bytes17,bytes17,bytes32)","cf06b3ba":"KOIOSToken(string,string,uint256,uint256)","cf071005":"showLastPoolAddress(address)","cf07fbb6":"HUToken()","cf082176":"ETHERION()","cf083591":"listAllAttendants()","cf086765":"getPatronsCount()","cf094497":"betCount()","cf09c6dd":"lastBlock_f10Hash_uint256()","cf09e0d0":"createdAt()","cf09e6e1":"SetBigContract(address)","cf09e820":"getPropertyOwnerSalePrice(uint16)","cf0a07b2":"Choon(address,address,address)","cf0a50d3":"DopeToken()","cf0aed0e":"setMinimumBuyValue(uint256)","cf0cb613":"finalUnlockTransfer()","cf0dbc27":"getH2Bidder()","cf0e4076":"findAddress(address,address[])","cf0e4be5":"eggsInTimeSlot(uint8)","cf0e80fe":"getClaimedBalance(address)","cf0f0593":"shl8(uint8,uint8)","cf0f34c4":"setMaxDuration(uint256)","cf0f864e":"battleCardIdRange()","cf0fc7d5":"_fetchOrderByIdWithMerchant(string,address)","cf0fdacb":"getRarityBonusValue(uint256)","cf100287":"payToManager(uint256)","cf112453":"canUpdateNextGameInitalMinBetSize()","cf124ba3":"tokenSaleIsFinished()","cf1259d8":"badge_obj()","cf12789a":"percOf(uint256,uint256)","cf12b725":"releaseTokenPrivate()","cf12d99f":"xorexs()","cf12e870":"giveAccess(address)","cf134a06":"totalLicensePurchases()","cf136426":"IagonTestToken()","cf1405fe":"firstDay()","cf14b191":"recoverAddressOfSigner(address,address,uint256,uint8,bytes32,bytes32)","cf14cecc":"whitelistMaxTok(uint256,address)","cf1578dc":"getOwnerFunds()","cf157942":"endsigning()","cf158fe9":"scheduleTransaction(uint256,uint256,uint256)","cf15b87d":"IcoCompleted()","cf160cf2":"addModerator(address,string)","cf16b4a2":"_packPlayerData(address,uint256)","cf16cc83":"getRoundStart(uint256)","cf16e955":"buyOnBehalf(address)","cf187228":"_createChar(string,address,uint256)","cf187df1":"addFrozenBalances(address,uint256)","cf18811f":"getTrusteeIndex()","cf1893de":"TimeBasedContract()","cf191540":"retraitStandard_5()","cf19463d":"newPokemonMaster(address)","cf195101":"Zchain()","cf195e34":"issuedToDate()","cf1a6243":"MIOTCrowdsales(address,address)","cf1b037c":"registerCallback(address)","cf1b11e8":"tokensPerWeiPlusBonus(uint256)","cf1b3f08":"withdrawTop(uint256)","cf1b45c3":"User(address,address)","cf1c13ce":"setBonusRate()","cf1c316a":"addAuthorized(address)","cf1c9f52":"pauseDET()","cf1cd249":"secureSend(address)","cf1d21c0":"ETHER_ADDRESS()","cf1d567f":"cosmicDice()","cf1d8294":"setPresaleParticipantWhitelist(address[],bool)","cf1e3bcb":"projectReserve()","cf1eba78":"promoMap(bytes32)","cf1ec58d":"usdPerEthLog(uint256)","cf1edfea":"checkIfLockCanBeRemoved(address)","cf1ee6f9":"OVISRESERVED_TOKENS()","cf1eef50":"UpdateRateAgent(address)","cf1f335e":"sendLiquidityFund(address,uint256)","cf1f3dd7":"ledgerName()","cf200e9f":"getBalancesSeller(uint256)","cf202727":"myfirsttoken()","cf20ac40":"citadelBalance()","cf210e16":"restrictedAcct()","cf216207":"tokensToTransfer(address,address,address,uint256,bytes,bytes)","cf21977c":"mint(address,uint256,uint256,uint256,uint256,string)","cf225109":"getSellAgents(uint256)","cf22c803":"Election(bytes32[],uint256,uint256,uint256)","cf2317d5":"nBallots(bytes32)","cf235743":"whitelist(address[],uint256[])","cf23616e":"enableTimelock(uint256)","cf25e4e8":"getActiveBusinessesPerType(uint256)","cf26ac9b":"getLinkOwner(address)","cf27539e":"LBL(uint256,string,string)","cf278430":"split(address,bytes32,uint8,uint256)","cf279ff1":"inserirOuvidoriaNoCadastro(address,bytes32,uint8,bytes32,bytes32,int256)","cf27d016":"isInGracePeriod()","cf282878":"_createNode()","cf2887e5":"transferTo(address,address[],uint256)","cf28b18e":"p_update_tokensRewardsAllocated(uint256)","cf295a5c":"mintbuy(address,uint256)","cf299d04":"joinPre()","cf2a8612":"two(uint256)","cf2affca":"changeRequiredAdmin(uint256,bool,bytes)","cf2b16d9":"Game(address)","cf2b3b47":"createRoomQuick()","cf2b8c05":"getRealisation_effective()","cf2c52cb":"deposit(address,bytes)","cf2d03ae":"minJump()","cf2d31fb":"register(bytes32,string)","cf2d5d66":"TestSelfDropToken()","cf2d5eb4":"ICO_TRIGGER()","cf2d923f":"ADVISORS_AND_CONTRIBUTORS_ADDRESS()","cf2e011e":"link(string)","cf2e161c":"DOWN_winBets()","cf2e3efc":"GetBankAccountBalance()","cf2e80cc":"_setSentReveal(uint256,address,bool)","cf2f856e":"gracePeriodMinTran()","cf2f9a4a":"transferTokenContractOwnership(address,address)","cf2fb7ca":"setDIDTokenAddress(address)","cf3006a1":"setEthPriceInDollar(uint256)","cf309012":"locked()","cf310642":"Police_1()","cf314b6a":"verifyAccount(address,bool)","cf317b7e":"getSellerInfo(address)","cf31e9fe":"getOutputHash()","cf31ff86":"isAddressValid(address)","cf32b062":"deadlines()","cf32b957":"LockInventory()","cf33babc":"VotingStarted(uint256)","cf351c1d":"setFeeTokenAddress(address)","cf35238a":"googleSupply()","cf356f83":"parcelGzeWithBonusOnList()","cf357364":"getOrderType(bytes32)","cf35bdd0":"assets(uint256)","cf35f275":"transferFromStakedisbursementfund(address,uint256)","cf3630b4":"setNextStartTime(uint256)","cf36fe8e":"bobMakesEthPayment(bytes32,address,bytes20)","cf3743c6":"DuxToken()","cf38b609":"priceChibi()","cf397201":"addLockedTokeA(address,uint8,uint256)","cf39bff5":"accoutToSummonNum(address)","cf3b1967":"TOKEN_DECIMALS_UINT8()","cf3b70e6":"CreatedIAM(address,uint256)","cf3c6fd3":"distributeFounderTokens(address,uint256)","cf3ca0fa":"blockDotGasLimit()","cf3cb33f":"exchangeToken(address,uint256)","cf3d1e3c":"sellOffline(address,uint256)","cf3d29ea":"SNTMock(address)","cf3d3849":"getNumInvalidMarkets()","cf3d82e5":"setMaxStage1AllocationPerInvestor(uint256)","cf3e172b":"getTokenInfo(address,bytes32)","cf3e194d":"calculateMultiplierAfterConversion(address,uint256)","cf3e52b8":"ValidateWorldSnapshotInternal(uint256)","cf3e52d9":"topWizard()","cf3e9519":"lrcUnlockPerMonth()","cf40bb58":"currentTimeIndex()","cf40f290":"EventLuckyNumberUpdated(uint256,uint256,uint8)","cf4186cb":"rejectMint(uint256,uint256)","cf41d6f8":"getPaid()","cf4228ea":"isSignedByAll()","cf4246a6":"ethereum2USDprice()","cf424b16":"releaseForSeed(address,uint256)","cf427d1b":"currentPenalty(address)","cf4315bb":"MINBET_perROLL()","cf43f4aa":"TrustedhealthToken()","cf44f5f7":"updateKeyMasks(uint256,uint256,uint256,uint256)","cf456865":"createCompany(bytes32,bytes32,uint256)","cf45f83b":"MADToken()","cf460fa5":"right16(uint256)","cf462616":"isVestingSet(address)","cf464997":"safeAssert(bool)","cf46827e":"getStakingMetrics(address,bytes32)","cf46bd24":"TransferContractOwnership(address,address)","cf46db5b":"isAllowed(uint8,address)","cf46dca7":"setProducer(address,bool)","cf47810c":"deleteAvatar(uint256)","cf478921":"addSpecialFeeTake(address,uint256,uint256)","cf47c326":"generateCryptsyToken()","cf488329":"BITCASH(string,string,uint8,uint256)","cf48d1a6":"setVox(address)","cf4a1612":"scheduleTransaction(uint256,address,bytes,uint256)","cf4baa4b":"kemnagToken()","cf4c3eac":"reservedWeis()","cf4cc8fb":"BitBallCoin()","cf4cea67":"dateBonus(uint256,uint256,uint256)","cf4d3a88":"PeopleSeedCapitalCoin()","cf4d6c0b":"AcceptsHyperDivs(address)","cf4e593a":"getPlayedGameJackpot()","cf4e964a":"cardStructs(uint8)","cf4e9ec3":"endCallRequestDate(address)","cf4fab1f":"PERFORMANCE_FEE_RATE()","cf504d48":"projectActive(uint256)","cf509b9d":"gracePeriodAmount()","cf51ee7a":"removeValueBonus(uint8)","cf51f582":"NucleusVisionAirDrop()","cf52a7b2":"whiteListAddress(address)","cf52ab0b":"New(address,uint256,uint256)","cf5303cf":"checker()","cf530bc3":"LOG_NewBet(address,uint256,uint256,bytes32)","cf53951d":"test_registrationInformationAccurate()","cf53d630":"getBetInfoByID(uint256)","cf54aaa0":"getDecimals(address)","cf561cea":"TestKToken()","cf564ab5":"getVehicleByAddress(address)","cf5713b6":"whatsMyName()","cf58802f":"getOverview(uint256,uint256)","cf58a045":"memberBuyToken()","cf58fbeb":"test_insert_findWithHintNextRemovedUpdateTail()","cf5ae516":"PauseICO()","cf5b5a77":"medalUnFreeze()","cf5b8018":"summSupporters()","cf5b90f0":"sendToken(address[])","cf5ba53f":"create(bytes)","cf5bd8e6":"EthBlockExplorer()","cf5c1b52":"setForSale(uint256,bool,uint256)","cf5c2ac7":"usdCentsBalance()","cf5c8b99":"CuratorRules(address,address[])","cf5cb132":"getRegisteredAssets()","cf5d4e4d":"BarterCoin()","cf5d57db":"changeReward(uint256)","cf5e36df":"getWeiContributed(uint16,address)","cf5f2201":"unMinedPop()","cf5f87d0":"updateConsumable(uint256,uint256,uint8)","cf6036fd":"length(bytes1)","cf62277c":"ThePiContract()","cf62d4e3":"changeMaxBetDoubleDice(uint256)","cf6304d4":"endPreTokensale()","cf6346cb":"presaleMinValue()","cf63bb83":"neymarHasMinted(uint256)","cf63edea":"tokenIdExist(uint256)","cf64c42f":"endCrowdsalePhase1Date()","cf64da7f":"HOVERCRAFT_TYPE()","cf652d1d":"setDefaultBoxNumber(uint256)","cf654886":"getHeroLevel(uint256)","cf65952c":"deactivateDevice(address)","cf662b5e":"JGCoinOld()","cf665443":"nextMint()","cf6661fb":"getNativeAsset()","cf67805c":"MumsTheWord()","cf682b3c":"VMVToken()","cf69318a":"left60(uint256)","cf693418":"_teamJackpot(uint256)","cf69443c":"getCurrentUserTotalReward()","cf69df28":"getDataRequestLength()","cf6a8722":"removeBytes32(bytes32)","cf6ad876":"cancelAgreement()","cf6b1081":"proxyGetRefund()","cf6b3822":"WatchCollectedFeesInSzabo()","cf6b70cf":"many_payments()","cf6b8bbf":"XYT()","cf6bd8b9":"view62()","cf6d06a1":"transferFree(address,uint256)","cf6e4488":"custodianChangeReqs(bytes32)","cf6efb49":"getCdRate()","cf6f3fe4":"distance_driven()","cf6fbb9d":"Mint(address,uint256,uint256,bytes32)","cf6fbeea":"takeAway(address,address)","cf6fcbb0":"calculateAveragePixelPrice(uint256,uint256)","cf7018d4":"setAdURI(uint256,string)","cf70ba36":"tokenZNT()","cf710b34":"showTeam()","cf710b73":"test_setMaxSize_update()","cf72085f":"deliverTokensBatch(address[],uint256[])","cf7209c5":"KyberHandler(address)","cf724096":"transferEthers(address,address,uint256)","cf72b511":"get_refund_deposit_addr_amount(uint256)","cf7315c6":"retract(bytes20)","cf731bd7":"Temgean()","cf73a1bc":"managerAddress()","cf756935":"determineLuckyVoters()","cf763d1c":"periodLimit()","cf76a3b9":"TokenState(uint256,uint8)","cf76cb7d":"simInstallments(bytes)","cf76ebf9":"carsGifted()","cf7730f1":"reserveFundSupply()","cf775255":"configureDomainFor(string,uint256,uint256,address,address)","cf77c8db":"setAffiliateContract(address,address)","cf78044d":"setMaxIndex(uint256)","cf783d8a":"allAccounts()","cf78a450":"unlockBBK(uint256)","cf78cf0d":"ContractCreated(address)","cf7956ab":"SIEToken(address,address)","cf79d8b4":"completeRemainingTokens()","cf7a8965":"steal()","cf7aebea":"transferAntique(address,bytes32)","cf7b38a2":"resumeCollectToken()","cf7b8c5f":"player_count()","cf7bb192":"canStakeExisting(address,bool,uint256,uint256,uint256,uint256,bytes8,uint256)","cf7c2985":"setAuctionPriceLimit(uint256)","cf7c2b31":"paymentOf(address)","cf7d0304":"MintableLazyCoderToken()","cf7d23a3":"Withdrawn(uint256,address,uint256)","cf7dcc15":"distributeEth(uint256,uint256)","cf7e01ba":"ICO1Period()","cf7e06cb":"setCapForParticipants(address[],uint256[])","cf7e69f8":"changeCooldownIndex(uint40,uint16)","cf7e9242":"getAgreements()","cf7efb4c":"SketchMarket()","cf7f12ea":"getBidCountForSketchesWithHolder(address)","cf808000":"iWantXKeys(uint256)","cf81377d":"eosDASH(uint256,uint256)","cf813e3f":"getLockTime(uint8)","cf81978b":"recipientMIT(address)","cf81f24d":"iWannaLiveForever()","cf820461":"txFee()","cf82601b":"removeInstitutionAsset(string,string)","cf82731f":"getPic(uint256)","cf832ce2":"ownerRefundPlayer(bytes32,address,uint256,uint256)","cf837fad":"contractLock()","cf8407c9":"registerFund()","cf854969":"rate1()","cf866d6f":"LastProposalCanDiscard()","cf86a95a":"transferMintership(address)","cf876b72":"setAccountUrl(string)","cf879e83":"isRevoke(address,address)","cf881ad9":"fUseAmount()","cf88eebe":"enableBuyBackMode(address)","cf8951d1":"CollateralTransfered(uint256)","cf89744f":"MaxBetUpdate(uint256)","cf89956e":"Base(uint256,string,uint8,string)","cf8a24de":"emulatePurchase(address,address,uint256,uint256,uint256)","cf8bc918":"getCrowdsalesLength()","cf8c9cc8":"submitTransaction(address,address,uint256,uint256,bytes)","cf8d652c":"tokenCreationRate()","cf8d8ca0":"walletName()","cf8e9996":"MuellerFiredby51()","cf8eb597":"AccountIsFrozen(address)","cf8eeb7e":"subBalance(address,uint256)","cf8f4d4f":"getParticipantRegistry()","cf8f8f12":"finishICOInternal()","cf8fee11":"getBasicRate(address,bool)","cf904e7d":"delCertAdmin(address)","cf9057f7":"findNextYear(uint256,bytes4)","cf905858":"hasIdentity(address,address)","cf90bfc9":"DatPayToken()","cf90e741":"Presale(uint256,uint256,address)","cf910b37":"_getRandom(bytes32[4],uint8)","cf913ae7":"setKoikeToken(uint256,address)","cf914a87":"ownerSetOverride(address,bool)","cf91e331":"TransferGenesis(address)","cf92e19b":"maxPlayableGameId()","cf934d67":"newIndex(bytes32,uint256)","cf934fb8":"sendToBeneficiaryContract()","cf94e395":"set_hosp(uint256,string)","cf951c9f":"initAsset(uint256,string,string,string)","cf9530d0":"totalSupplyOf(address)","cf957ce0":"ROSCA(uint16,uint128,uint256,address[],uint16)","cf9676c1":"setMintRequestUintMap(uint256,int256,string,uint256)","cf96ce03":"setHouseEdgePercent(uint256)","cf9779cd":"accountFor(address,bool)","cf984f16":"testFailRestartEnforceRevisions()","cf98e120":"calculateStagePrice()","cf991259":"BRANDS_ADDR()","cf99a4d9":"buybackTypeTwo()","cf99cd2e":"iterateThroughSwarm(address,uint256)","cf99d935":"finalizeIfNecessary()","cf9a60d4":"ETH_USD_EXCHANGE_RATE_IN_CENTS()","cf9ac727":"logPrice(address,address,uint256)","cf9ac928":"bbd36484()","cf9b62d9":"OwnerOf(uint256)","cf9b9e0a":"FDCToken()","cf9d33d8":"GeniusInvest()","cf9df5eb":"insert(address,address,address,address,uint256,address,bytes32,uint256)","cf9f3db2":"PresaleTimeRangeChanged(address,uint256,uint256)","cf9f5ef6":"MANW()","cf9faf1d":"ownerSetRate(uint256)","cfa0136f":"setPresaleEndTime(uint256)","cfa01baf":"prepareForEarlyFinalization()","cfa059ee":"getIssuanceIds(bool,bool,bool,bool,uint256,uint256)","cfa06700":"_emitAccessBlocked(address,bytes32)","cfa084b0":"setTransferOwnership(address)","cfa12510":"returnHash(address[2],uint256[7])","cfa24ee3":"setFighterCoreAddress(address)","cfa3bfce":"_validateLockupStages()","cfa3c132":"parentOf(uint256)","cfa446ec":"Standard_2()","cfa46990":"getSellUnicornFullPrice(uint256)","cfa4a6a6":"getPools(bytes32)","cfa4f3e8":"setRelease(uint256)","cfa517df":"getOwnerByAnimalId(uint256)","cfa5cfd3":"balanceInSpecificTier(uint256)","cfa5d53b":"blocktubeTransfer(address,uint256)","cfa5df4b":"swapAbleToken()","cfa5f02a":"exchangeETH()","cfa675cc":"_revealBid(bytes32,address,uint256,address,address,address,uint256,uint256)","cfa7074b":"BuyRateChanged(uint256,uint256)","cfa75d43":"developer_add_string_B(string)","cfa83079":"minHpDeducted()","cfa86845":"RedeemingTimeLimit()","cfa9fa85":"percentageHumanityFund()","cfaa234c":"_isNotMixing(uint256,uint256)","cfaa759d":"privateIcoStartTime()","cfaaa266":"TransferOwnership(address)","cfaaff4c":"ADZbuzzCommunityToken()","cfab3056":"guesses(int256)","cfab472f":"isUserEnabledForContract(address,address)","cfab6554":"sumElements(uint16[])","cfab8862":"pfcController()","cfabe67b":"acceptVestingTrusteeOwnership()","cfac2280":"uniqueJingles(bytes32)","cfad5277":"totalAddresses()","cfae2c65":"dispenseTokensToInvestorAddressesByValue(address[],uint256[])","cfae3217":"greet()","cfae52e1":"createFirstDay()","cfaed1e2":"minAllowedBetInEth()","cfaf7315":"BuyEggs()","cfaf8a33":"sellTile(uint256)","cfb009cf":"Obredis()","cfb079d3":"DX()","cfb27084":"switchAirDrop(bool)","cfb3647b":"tokenMinter()","cfb3a493":"getMyBounty(uint256)","cfb3b886":"jack_nonce()","cfb45e3c":"_cancelOperation(bytes32,uint256)","cfb51928":"stringToBytes32(string)","cfb5a5f8":"getShare(uint256)","cfb64dfc":"addCustomerFromProviderAdmin(address)","cfb6e9af":"LogBet(address,uint256,uint256)","cfb75c92":"slavenAdress()","cfb7b9e9":"PROM()","cfb9147d":"exploreFastenETHFee()","cfb9e26f":"getStateOfPlan()","cfba0279":"hasSkill(address,uint256,uint256,uint256)","cfba24ac":"isSenderBiometricLocked()","cfba4fe0":"findBalance(address)","cfba99dc":"getQuoteAsset()","cfbb2047":"currentSmartSpeedNumber()","cfbb4b24":"Invent()","cfbb7d36":"teamWithdraw()","cfbb9f37":"DOW_THU()","cfbbbd9e":"PASS()","cfbbd902":"calcWinNumbers(string)","cfbbda3d":"seekApproval()","cfbd4885":"revokeMinter(address)","cfbe2cb3":"walletDeposit(address,uint256,uint256)","cfbed755":"getCard(uint64)","cfbef67d":"extract(bytes,uint256)","cfbf92a9":"getNodeStake(address)","cfbf9a36":"getBetRecord(uint256)","cfc05b56":"setTokensSoldGoal(uint256)","cfc0cc34":"getStrategy(uint256)","cfc19710":"closeMtr()","cfc220b6":"SpermLabs()","cfc2a93e":"dividendRoundsBeforeFoundersStakeUnlock()","cfc2aad2":"generateBonusForGene(uint256)","cfc41c91":"reb()","cfc450af":"maxInvestmentInWei()","cfc45610":"Makindo()","cfc4af05":"blt()","cfc4af55":"tau()","cfc4d0ec":"getOrderHash(address[5],uint256[6])","cfc54848":"sendEth(uint256)","cfc5a969":"bytesToUint(bytes32)","cfc5e7c8":"getSellCount(address)","cfc72007":"selfdestruct(address)","cfc7e2da":"getMinAmount()","cfc9cb7f":"ForestingToken(address)","cfca375c":"NooCrowdsale()","cfcb2b7e":"createController(address,address,address,uint256,uint256,uint256,uint256,uint256)","cfcb69d1":"TelegramTON()","cfcba2f8":"firstRefundRoundFinishTimestamp()","cfcc09a9":"simpleICO(string,string,uint8,address,uint256[],uint256[],int256)","cfcc57ad":"maxFundsThatCanBeWithdrawnByOwners()","cfcc7720":"rechargeRobot(uint256)","cfcccb32":"escrowList(address)","cfcd84a9":"collectibleIndexToPrice(uint256)","cfcd8c2d":"init(address,uint256,uint256,uint256,uint256,uint256,uint256,bool,address,bool)","cfcdde19":"PRICE_PREBUY_BONUS()","cfd00530":"isContractSignedBySigner(string,address)","cfd0a970":"TierClassicDividendAddress(address)","cfd129f8":"stageSoftcap(uint8)","cfd28966":"getMigrateOutDestinationValue()","cfd2eb49":"StoreComission(address,uint256)","cfd32aa0":"removeFunder()","cfd32ef7":"isMember(address,bytes32)","cfd3c17d":"currentLuckyStoneNumber()","cfd447d7":"startSale(uint256,bool)","cfd4ca6b":"contract_md5()","cfd4edcf":"ProofOf()","cfd550a3":"ICO_ENABLERS_CAP()","cfd56a13":"_sell(address,uint256,uint256)","cfd5cb77":"userAttackMonsterCDSeconds()","cfd65fdb":"assertEq19(bytes19,bytes19)","cfd6eea2":"QDCoin()","cfd7ab91":"STARTTIME()","cfd7be04":"backNewHopeOwner()","cfd7f1fb":"_chkBuyerLmtsAndFinl(address,uint256,uint256)","cfd8a175":"betPrice()","cfd8d6c0":"setProvider(address)","cfd938df":"Channel(string)","cfd94b01":"votersLen()","cfd9e0ea":"getStateForTime(uint256)","cfda7175":"getArbiterFeeAmount(uint256,uint8,uint256,address)","cfdac910":"getSketchesWithAuthor(address)","cfdacb58":"SetCryptoPrice(uint256,uint256)","cfdafde4":"saleIsFinished()","cfdb2eb7":"freeClaimAllowanceOf(address)","cfdb35ed":"setLKCExchangeRate(uint256)","cfdba320":"getRemainLockedOf(address)","cfdbf254":"MAX_BATCH_SIZE()","cfdd4520":"showCurrentBidValue()","cfdd7557":"CountOfAlastayaToken()","cfdd7e8a":"createFirstCommonsForum()","cfdf35b6":"removeLog(string)","cfe01e23":"anyAuditRequestMatchesPrice(uint256)","cfe0a5dc":"tokenKoef()","cfe0d487":"backup_finishIcoVars()","cfe0eeb7":"startSale(uint32,uint64,uint64)","cfe186b2":"finishGame(uint256)","cfe1887b":"delListReq(string,uint256,uint256)","cfe2b37a":"setIntF1ArrBoolF2AddressF1(int256,bool[],address)","cfe2f4e2":"Nicks()","cfe30939":"houseEarnings()","cfe3b8fb":"sTks(address,uint256)","cfe3d16d":"_register(address,address)","cfe3e683":"GWBCoin()","cfe4fb8e":"VECTORZILLA_RESERVE_VZT()","cfe52bdd":"sendFunds(address)","cfe5344a":"updateNovaAddress(address)","cfe60c87":"LookRevToken()","cfe643ac":"getRightAndRoles()","cfe67587":"getWeeklySellVolume()","cfe6f220":"CertificateAddresses(bytes32)","cfe7b770":"getBetInfo()","cfe7e7a0":"createLamboSale(uint256,uint256)","cfe8c535":"giveAnimals(uint8,address)","cfe9a7b8":"getPackageName(uint256)","cfea3bb6":"swapTokenInfo(address)","cfea751f":"getIsAllTransfersLocked()","cfeaa5ea":"setBonusList(address)","cfeaaca1":"newCampaign(string,uint256,uint256,address)","cfeb93a8":"delABaddress(uint256,address,address)","cfeb9a97":"setSubFreezingTime(uint64)","cfeb9ec0":"BSmartValueCirculateAssets()","cfebb88b":"recallVoteToFreezeFund()","cfebc813":"changeExplain(string)","cfebf24d":"optionOf(address)","cfec22f8":"minSum()","cfec6ca3":"calculateProfitGameType1(uint256,uint256)","cfec8d83":"GetUserPELOAmount(address)","cfec934a":"runCrowdsale()","cfecd73d":"EtherIncPrivate()","cfed9199":"timePassed(uint256)","cfedc04a":"neverdieToken()","cfee88db":"closeClaims()","cfefaa8b":"Executed(string,uint256)","cfefb3d5":"payout(bytes32)","cfefcfb0":"VotedForProposal(uint256,address)","cfefe48b":"transferableTokensNow(address)","cfefe5a2":"isContribPeriodRunning()","cfefeb60":"airDropTime()","cff068a3":"random(uint256,uint256,address,uint8)","cff07771":"getEvaluationCount()","cff0ab96":"params()","cff12797":"setIcoPhase3(uint256,uint256)","cff13efb":"newCar(string,bytes17)","cff1b6ef":"updateAdminFee(uint256)","cff29dfd":"bidders(uint256)","cff2fa42":"_returnFee(address,uint256)","cff382ae":"AICrypto()","cff3d4d8":"stage1()","cff410b4":"Exit()","cff4d6cd":"payoutTotal()","cff5b28e":"FLUX()","cff61fb6":"batchExchange(address[])","cff72e67":"changeDevelopersRecipient(address)","cff76d67":"totalEthBankrollRecieved()","cff82e22":"getTicketCount(address)","cff9293a":"vote(uint32,uint32)","cff941fc":"Configured(address,address)","cffa4346":"DIETCoin()","cffc9997":"SetBuildingData(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","cffdc976":"WithdrawOwnerFunds(uint256)","cffe02cf":"setCrowdsaleRate(uint256)","cffe764c":"Insure()","cffee328":"successfulDeals()","cfff25bb":"getNumReserves()","cfff63ca":"assignMediator(address)","cfff8974":"mintToInfluencer(address,uint256,string)","cfffa030":"lanch_atak()","d0005aa4":"salesStart()","d0008a6d":"addNewMember(address,uint256)","d000a404":"PT(uint256,string,string)","d001425a":"bank2()","d0015500":"ownerSecondary()","d002462b":"setDeploymentFee(uint256)","d002a41c":"getUnReportedMatches()","d00408b7":"StandardToken(address)","d0044f9a":"_getLuckyList(uint256,uint8)","d0045341":"totalMintAmount()","d0047acf":"mint(address,uint256,uint32)","d004f0f7":"swap(address,uint256)","d004f38b":"setRates(uint256,uint256,uint256)","d0064c00":"maxDebt()","d0068f80":"getClient(uint256)","d0072e59":"forceReturn(address)","d007c644":"payInterest(address)","d007ff4b":"showJackpotBalance()","d0089141":"ovedclaimBountyairdrop(address,uint256)","d008d7a2":"BosToken()","d00910a3":"yearlyTeamTokensPaid(uint256)","d0095cc6":"genNumber()","d00a9058":"getOwnTokens()","d00cce41":"roleExists(string)","d00d20f4":"getTokensCrowdsaled()","d00eef6a":"TokenGranted(address,uint256,string)","d00ef880":"setShareTokenAddress(address,address)","d01296d9":"addmember(uint256,address)","d0130009":"Subtraction(uint256,uint256)","d013a182":"getServerBuildingWeapon(uint256,uint8,uint8)","d0142c47":"ImperialCreditToken()","d014c01f":"enter(address)","d014d667":"XCDT()","d0158b87":"fetchCancelledOrdersForMerchantByAdmin(address)","d015d86f":"getRoundStats()","d015f6dd":"NorthPoleAddress()","d01678f0":"raiseDay2()","d0169c1e":"lockAsset(bytes32)","d0169f4c":"start_POSTICO()","d016ec40":"vipBrokerNum()","d017c2b4":"returnTokensToWallet()","d017cdcf":"acquireFame(uint256)","d017e20d":"processing(address,uint256,uint256,uint256)","d017f49b":"JustOneToken2()","d01860d0":"isFinishedSuccessfully()","d018a00f":"redeemBeer(bytes32)","d018db3e":"attack(address)","d0198c33":"getFunctionIdentifier(string)","d019d2c4":"MRT()","d01a69c9":"totalBeneficiaries()","d01a9453":"BitAirToken(address,string,string,uint256,uint256)","d01ab2e6":"_cancelOrder(address,address,uint256,address,uint256,uint256,uint256)","d01ab31a":"ICOStart()","d01b555d":"setSalePause(bool)","d01bbdc9":"setOracleCallbackGasLimit(uint256)","d01c0904":"FujintoToken(uint256,string,uint8,string)","d01d0175":"StorageConsumer(address)","d01d6b86":"amountOfRegisters()","d01e2df9":"testContains()","d01ec886":"importPresaleContribution(address)","d01f4c9f":"hoursSinceTimestamp(uint256)","d01f4ffe":"stopSecondSale()","d01f63f5":"getWhitelist()","d02041f3":"advisorsPeriodAmount()","d02042a3":"relief()","d020ae40":"gameTotalGen()","d020dc3b":"rejectMessage(uint256,string)","d02143ed":"getRefToLength(address,address)","d0216dce":"XXXXXXXX07(address)","d021d8da":"Coinbase()","d0220b1c":"setCreateChampFee(uint256)","d0225e9e":"MAX_LRC_DEPOSIT_PER_ADDRESS()","d0237ab8":"EtherLiteSupply()","d023d2bd":"getGladiatorChestPrice()","d023d32c":"setEndAfterSecond(uint256)","d024768f":"computePropertyHash(string,string)","d024cd02":"startAuctionDirect(uint256,uint256,uint256,uint64,address)","d02528e6":"GetGameIndexesToProcess()","d02721cb":"withdrawProvider()","d0280037":"buyin(uint8,bytes32,bytes32)","d0286ab2":"setEmissionTime(uint256)","d028754b":"Withdraw_1()","d028a625":"deathData_v11()","d028c246":"Compaq()","d028f571":"getTokenForTeam(address)","d0297bc6":"changeMaximumContribution(uint256)","d02982cf":"isMember()","d029a530":"buyUnicornWithCandy(uint256)","d02a4f84":"bcn()","d02a6db7":"TokenLongExercised(address[2],uint256[7],uint8,bytes32[2],uint256,uint256)","d02a9889":"getDateOfFirstPayment()","d02b1653":"enablePrivateFund()","d02b97aa":"withdrawPromoter()","d02bf162":"spinTheWheel()","d02bf828":"lotteryTokensWallet()","d02c438a":"enableTokenSupport(bool)","d02c8cdf":"cancelMatch(uint256)","d02cc69f":"playWar(uint256)","d02d08b2":"hasCrowdsaleFinished()","d02d1382":"getPlayerCard(uint8)","d02d3892":"ApolloSeptemBaseCrowdsale(address,address)","d02d4554":"createUser(address,address)","d02d518d":"setArtEvt(string,string)","d02dade4":"getProviderCounter()","d02ddc12":"insert(bytes1,bytes1)","d02e140a":"finalizePrivatesale()","d02e5cfb":"mtcDailySpent()","d02e8f70":"MONUMENT_CITY_FEE()","d02ea39e":"DuckToken()","d02ecbb5":"ObitanChainxToken()","d02f5463":"pillarTokenFactory()","d02f8b98":"getApplications(address,bytes32,address)","d02fcad9":"wdiv(uint128,uint128)","d0302051":"rewardPercent()","d031370b":"reserveTokens(uint256)","d0315658":"getShareDistributionWithTimestamp(bytes)","d031babf":"LikeCrowdsale(address,uint256,uint256,uint256)","d031d8c4":"_transferLand(uint256,uint256,address)","d032ae76":"doAirDrop(address[])","d033c456":"addAddress(address,string)","d033d277":"OwnerNamed()","d033e6ee":"preAllocate(address,uint256,uint256)","d033f913":"getRoundSeedHash(uint32)","d034536e":"logFileClosing(string,uint256,string,string)","d0356fa8":"createVestingGrants()","d035bed4":"validContract(address,uint32)","d035e45f":"token_escape(address)","d0360e59":"drainContract()","d036261f":"amountBonuses(uint256)","d036bce2":"_calculateTokens(uint256)","d0376283":"onlyApprovedOrOwnerOfToken(uint256,address,bool)","d0378d07":"decreaseReserve(uint256,uint256)","d038906a":"FloraFicToken()","d0399bb8":"endGame(uint256)","d03b41a9":"bountyBalance()","d03bf119":"RANGESTART_11()","d03c8e34":"addAngel(address)","d03cff97":"devMiningRewardPerETHBlock()","d03d5231":"raffleDraw()","d03d9604":"maskIt(address,uint256)","d03e1021":"ORACLIZE_GASPRICE_GWEY()","d03e3059":"someMethod3(uint256,uint256,uint256)","d03e6817":"Volkstest()","d03e9bcc":"LogReceiveFunds(address,uint8,uint256)","d03e9fff":"plusTourFreezingTime(uint256)","d03ffefb":"createDeposit()","d04148d6":"m_account()","d04206f3":"CROSS_RESERVE()","d042a795":"multiSendA(uint256,uint256)","d042ce2c":"currentStageTokensBoughtByAddress()","d04301f2":"Annexe_SO_DIVA_SAS_5()","d0431cf5":"_openBox(uint256)","d0435cb0":"MonsterTokenCrowdsale(uint256,address,address,uint256,uint256)","d043d028":"toBytes4(bytes,bytes,uint256)","d045e1ff":"_inverse()","d046065e":"addBet(uint256,uint256,address,uint256)","d0471ee1":"Leverages(address[])","d04737bd":"Yuzhuralzoloto_2()","d0479abc":"burnUnsoldTokens(uint256)","d047a0d0":"getEmergencyTransferSigner(address,uint256)","d04807e9":"Heronium()","d0481f82":"hasLicenseTerms(bytes32,bytes32)","d048bc87":"inAngelPeriod()","d048db37":"getOfferCount()","d04a419b":"getDegree(bytes32)","d04a46b0":"sendFutureExpanstionBalance(address,uint256)","d04b019e":"getWalletResourceBalance(address)","d04bfc9c":"buyer_pay()","d04c9115":"getLoyaltyPoints(address)","d04cb43f":"withdraw_all_token(address,address)","d04d26fe":"updateStrength(uint256,uint8)","d04d2ca3":"BlacklistParticipant(address)","d04d8667":"authorized_recordPlatformFee()","d04dbdea":"Testtoken4()","d04e5586":"MEAManager()","d04f0535":"PisticciCash()","d04fe107":"getActiveAds()","d050498e":"assertEq24(bytes24,bytes24,bytes32)","d050557d":"bulkRegisterPoA(bytes32,bytes32,bytes,uint256)","d05144c8":"getMakeCount()","d0516650":"frozen(address)","d0516b82":"maxPresaleAmount()","d051dfd3":"prizes(uint256,address)","d052fbf6":"getHistory(string,uint256)","d05391d2":"admin_transferFrom(address,address,uint256)","d05407d4":"SetStepFunctionWrapper(address,address)","d054261e":"_generateRandomHash(string)","d05461a6":"mintForReportingParticipant(int256,address,uint256)","d0549602":"scheduleTransaction(address,uint256,uint256,uint256)","d054cd87":"badBoardSent(bytes10,uint256,uint8,bytes32,bytes32,bytes10,uint256,uint8,bytes32,bytes32)","d0569bc8":"getWinResults(uint256)","d056cc69":"stateCode(uint256)","d0578df9":"SMGC()","d0587032":"tablet_length()","d0590bad":"generateMessageToSign(address,uint256)","d05b7ca4":"uintToChar(uint8,uint256)","d05ba4da":"addPokemonToSellingList(address,uint256)","d05c78da":"safeMul(uint256,uint256)","d05c9342":"_getATxToken()","d05c9ad6":"setNumRewardsAvailableForAddress(uint256,address,address)","d05cb545":"registry(address,uint256)","d05d996f":"TXDELAY()","d05ec6c5":"getBonus4(uint256)","d05ee727":"teamAccount()","d05efd40":"directorA()","d0600560":"AD()","d060a2a5":"doSmallDrop(uint256,uint256,uint256,uint256)","d0610ac9":"interpolate(uint256,uint256,uint256,uint256,uint256)","d0617f2f":"OMICrowdsale(uint256,address,address,address)","d062c7ab":"CleanBankerCandidate(uint8)","d06301d3":"__resolve(uint256)","d063f55f":"toLittleEndian(uint64)","d06426d5":"convertUsdToEther(uint256)","d0647f30":"_createDebt(bytes,bytes,uint256)","d06544d0":"getCoinAddress(string)","d0658850":"ListingDB(uint64,uint64,address)","d066c841":"GenesisBuyPriceHistory(address,uint256)","d06760da":"isPartOfOrg()","d0676647":"ProposalClosed(uint256,uint256,uint256,uint256,bool,uint256)","d06798f2":"fourweeks()","d0679d34":"send(address,uint256)","d0683428":"executeRulingA(uint256)","d0692775":"gamesLeft(address)","d06980f1":"LogHodlClaimed(address,address,uint256)","d06982b2":"setDemurrageAmount(uint256)","d0699c98":"calcFees(uint256,uint256,uint256)","d06a0f5b":"setDynamicCeilingAddress(address)","d06a57b0":"pauseAllTokens(bool,string)","d06a89a4":"maxLength()","d06b3ea0":"whackingPool()","d06b44a6":"YKCToken(uint256,string,string,uint256)","d06b6f7e":"setMinTokensToSale(uint256)","d06ba559":"WrestleCoin()","d06c54fb":"acceptNextOwner()","d06c7b5b":"signalToken()","d06c91e4":"multisigEther()","d06ca26c":"managedWallets()","d06cdc73":"LuckyNumberService()","d06d4612":"jak()","d06f887b":"destroyMyToken(uint256)","d06f9734":"setTreasurer(address,bool)","d0707c61":"PerformingDrop(uint256)","d0708e31":"DocumentCertoChainContract(string,string,string,string)","d071f7b1":"recover(bytes32)","d073c531":"IMOSToken()","d073ca3d":"SUCCESS_FLAG()","d074443f":"DeathFactor_i()","d0747a9c":"getGoldmintFeeAccount()","d074a38d":"biddingTime()","d074de8c":"Testico()","d074f215":"PHASE_1_PRICE()","d075c11c":"viewNoncsallocations(address)","d0774f74":"GENSIS_TOTAL_COUNT()","d077814b":"divBase()","d0785dd7":"getNumberOfPlayersInCurrentGame()","d07866d2":"sizeOf(uint256)","d0799bee":"setRole(string,string)","d07a8bd7":"RisingToken()","d07ac4c4":"oraclize_query(uint256,string,bytes[4],uint256)","d07adab3":"getOutAmount()","d07bff0c":"getVoter(uint256)","d07c53b6":"thinkMode()","d07e7d7c":"setTTCTokenAddress(address)","d07e9f90":"getJobsCount()","d07f29e5":"addFounderAccounts(address,uint256)","d07f2ff6":"GreenWorldFarm()","d07f3a8f":"RobBanker(uint8,uint256,uint256,uint8)","d07f8181":"decreasePaymentsBalance(address,uint256)","d07fdfb0":"October12_2017()","d081b681":"vows()","d081b9f5":"networkState()","d081f2b8":"BOUNTY()","d0821b0e":"bet(uint8)","d08275f1":"WolframAlpha()","d08279b0":"unpauseTournament()","d082ea8c":"setExchangeAddress(address)","d083955c":"adjustMintRates()","d084f670":"getLocked(bytes16)","d085835a":"timeLock()","d085b82f":"TIMECOIN(address)","d085c8b8":"StartDistribution()","d085e66e":"GetPart(bytes32,uint256)","d0863580":"blocksRemaining()","d0868223":"returnATXChanges()","d086a201":"main_ico(address,uint256)","d087d288":"getNonce()","d088070a":"checkWhitelist(address,uint256)","d088f50d":"getNumeroCeldas()","d0894297":"EARLY_INVESTOR_WALLET()","d0897347":"engrave(bytes32,string,string,bytes32)","d089e11a":"accountRegistry()","d08a787c":"bytes32ToString(bytes32,bytes)","d08b89f3":"disableStopping()","d08bc007":"logRef(address,uint256)","d08bfe26":"CrowdsaleClose(uint256,bool)","d08c6803":"deletePerson(uint256)","d08d66ec":"setBonusState(uint256)","d08d6753":"mdtRewardAmount()","d08e2354":"goldPercentage()","d08f2c67":"getHistoryAt(uint256)","d0900033":"COLONERToken()","d09119b4":"mortgage(address)","d0914c8d":"RelestToken()","d091b550":"newOwnerCandidate()","d0937598":"getLuckyblockBase(bytes32)","d09398ee":"transferCDP(address,uint256)","d093e04b":"payJackpot(uint256)","d0940a5d":"best()","d0946d00":"subFreeMineral(address)","d0949f99":"UINT256_MAX()","d094dd21":"getLLV_edit_14()","d095761f":"withdrawNetIncome()","d095d499":"profit3eggs()","d095edb2":"initializeModuleAddresses(address[])","d09677df":"TankSellMaster()","d09685b0":"getEntriesCount()","d096b8f0":"setupRaffle()","d0973af8":"transferTokensFromContract(address,uint256)","d09812e1":"settlementRegistry()","d0982feb":"tokenLockDuration()","d0983f4b":"tokenRatios()","d0988149":"MANHATTANPROXYMADISONAVE()","d0995198":"returnMinGoal(uint256)","d0995b33":"refundBalances(address[])","d09a6a62":"transferUnlock()","d09b0ae4":"RealEstate()","d09cb807":"isCurrentAdmin(address,address)","d09de08a":"increment()","d09e21ee":"ignore(bytes4,bool)","d09e3526":"setStatusI(address)","d09eae58":"SCAMToken()","d09edf31":"authorizer()","d09ef241":"getOrder(uint256)","d09f85ca":"Eventine()","d09f872a":"VenusToken(uint256,string,string)","d09f8b8b":"addXY(uint256,uint256,uint256,uint256)","d09fb45e":"setApprovedContracts(address,bool)","d09fbcee":"HumanTokenAllocator(address,address,address,address,address)","d0a05fea":"setI_S(uint256)","d0a06fb9":"cloneCard(address,uint256)","d0a1adf4":"contains(bytes1,bytes1)","d0a27473":"teamUnlock1()","d0a2da8e":"give(address,uint256,string,string)","d0a2f2c4":"getAllInvestors()","d0a45f84":"getVersionImplementation(address,bytes32,address,bytes32,bytes32)","d0a4a81b":"setTellerModerator(address)","d0a56299":"GetAssetTypeAverageSalePrice(uint256)","d0a579fb":"releaseForEarlyInit(address[],uint256)","d0a5eb4e":"setMainWallet(address)","d0a61995":"sell_(address,uint256)","d0a62566":"approveIndexed(address,uint256)","d0a63663":"incrementLimitBranch()","d0a6f018":"LogBalanceChange(address,uint256,uint256)","d0a6fa54":"getPriceById(bytes32)","d0a7b467":"setAragonDevMultisig(address)","d0a826f3":"setWildcardList(address,address,bool)","d0a835e3":"buyShip(uint32)","d0a8c801":"fshare()","d0aa0313":"setCompte_38(string)","d0aa407f":"withdrawEther(bytes32,uint256,uint256,uint256[])","d0aac5cf":"teamProfile(uint256)","d0ab0066":"calcFlexibleReward(uint256)","d0ab48e9":"toB32(bytes,uint256,bytes,address)","d0ab8432":"whitelistRegisteredAmount(address)","d0ac01ac":"setOfferExpiry(uint256)","d0ac2252":"getShipEarning(uint32)","d0ad7fb8":"buyTicket(uint256[],address)","d0ade72d":"assertEquals(uint256,uint256)","d0ae4356":"getRequestStatus(address,address)","d0ae9aec":"setMinInvest(uint256)","d0aff67d":"setNeverdieContractAddress(address)","d0b01e68":"__setBeneficiary(address)","d0b02abc":"createProductionUnit3()","d0b06f5d":"lastUpdated()","d0b0c0d5":"unlockDevTokenSupply()","d0b18fbf":"transferByForce(address,address,uint256)","d0b1b910":"FXSToken()","d0b2b579":"seedFund()","d0b368a0":"addToApproveList(address)","d0b3da99":"join(uint256,bool)","d0b4755c":"RATE_SALESTAGE1()","d0b52156":"getIpfsHash(address,address)","d0b5981f":"closePreICOPublic()","d0b68efb":"yoobaTokenAddress()","d0b6ba2a":"moveFunds()","d0b74806":"claimA()","d0b753f3":"sendPreSaleBonus(address,address)","d0b7ca57":"mintToken(address,uint256,bytes,bytes)","d0b83db9":"insertUser(address,bytes32)","d0b86d15":"FaradEscrow()","d0b91ca7":"showBurnedCoins(address)","d0b94ffe":"web3ViewRoll(bytes32,bytes32,uint256,uint256,uint256)","d0b99ee2":"_distributeLandholderTax(uint256)","d0b9e58b":"SspContract(address,address,address,uint256,string)","d0b9e792":"returnBorrowedEth()","d0bb1d40":"airdropsCount()","d0bc1a88":"addMoney(uint256)","d0bc97d0":"isCrowdsaleFull(uint256,uint256)","d0bcebc8":"collectBack3()","d0bcfc0c":"Bankroll()","d0bec975":"countBid(uint8)","d0bf4d95":"SmokeExchangeCoin(uint256,address,address,uint256,uint256,uint256)","d0bf9502":"btcLastUpdate()","d0bff051":"testSetBalanceDb()","d0c03f35":"multisigVault()","d0c0c39c":"countTokens(uint256,address)","d0c1c844":"getLimitedBalanceOf(address)","d0c1d117":"editAddressDescription(address,string,address)","d0c24e93":"setNotUpdatable(bytes20)","d0c3033c":"generalBounty()","d0c32dd3":"otcPurchase(uint256,address)","d0c32ea9":"SearchALLFileLength()","d0c39f14":"Lottery(address)","d0c412ec":"ENDOairdrop()","d0c426e6":"burnAllRemainingIBC()","d0c475e5":"addRecordStrict(uint256)","d0c5c585":"getBurnAmount()","d0c5c946":"refundBpToken(address)","d0c75ea2":"verifyCommonTransaction(bytes32,uint256,address,address,uint256,address,address,uint256,bytes,bytes)","d0c7b012":"placeGame(uint24,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes32,bytes32)","d0c7c635":"mintToTeamAndAdvisors()","d0c8a7a5":"randgen()","d0c9bb92":"releaseTCLRinTeamTokens()","d0ca12ba":"ICO_START()","d0ca1982":"getCrowdsaleInfo(address,bytes32)","d0ca4dd7":"ownerWithdrawTokens(address,address,uint256)","d0ca5e7a":"createTokenToMarket2020()","d0ca7379":"mintReferralShare(uint256,address,uint256)","d0cac952":"HouseManaged()","d0cb874a":"getTokenByMineID()","d0ccf4bc":"createInstance(bytes32,bytes32,address,bytes,bytes32,bytes32,address,bytes,bytes32,uint256,uint256,bytes)","d0ce659f":"SwitzerlandvsCostaRica()","d0ce7360":"closeContract(uint256)","d0cf49e9":"zoLastRefreshTime()","d0d0ed05":"withdrawVault()","d0d13e87":"smartContractIsForSale(uint256)","d0d1ea70":"setTrustee(address)","d0d2e745":"manualExchange(address,uint256)","d0d38b65":"setFirstRankForFree(bool)","d0d390bf":"HubToken(address)","d0d3b9df":"IfModuleRegist(address)","d0d3f5ba":"removeNode()","d0d44cca":"setPOOL_edit_34(string)","d0d511f9":"getGoalsCount()","d0d529a7":"openWindow()","d0d552dd":"setAsset(address)","d0d68241":"betALenght()","d0d832ad":"fundraiseType()","d0d89ce3":"cummulativeTokensSold()","d0d968c0":"burnFromReserve(uint256)","d0d98276":"revokeOffer(address)","d0d9e21d":"emitCapabilityAdded(address,bytes4,uint8)","d0d9fcf7":"RANGE_STAT_MAX()","d0da3e86":"getNextAntiReplayTag(uint256)","d0dad7e1":"maxCapMain()","d0db5083":"hatch()","d0dc0a04":"all_creatures_for_species(uint256)","d0dc5c65":"updateTotalSupply()","d0dd38ad":"setDepositGasCost(uint8)","d0de7b29":"MetadiumVesting(address,uint256,uint256,uint256,bool)","d0def521":"mint(address,string)","d0e075c7":"BitcoinPurple()","d0e0813a":"promote(address)","d0e0ba95":"setId(uint256)","d0e0e8f6":"isLockedConfig()","d0e2bef0":"initFactorReward(uint256,uint256,uint256,uint256)","d0e2dc64":"playAway()","d0e30db0":"deposit()","d0e33b1b":"testGetResults()","d0e3cbbe":"getCurrentTotalEther()","d0e3f734":"setPubkey(string)","d0e4567e":"activeGroups()","d0e46235":"buyCardsAndSendGift(uint8,address)","d0e4713d":"CEC()","d0e55727":"changeOfferTime(uint256,uint256)","d0e6cfec":"bountyTokenWallet()","d0e709b6":"initialTransfer(address,uint256,uint256)","d0e7a5cb":"editPrice(uint256,uint256)","d0e95ded":"MithrilOre()","d0e9f00f":"BNTBalance()","d0ebdbe7":"setManager(address)","d0ec057e":"getFeeAmount(uint256,bool)","d0ec1607":"cancelPoll(uint256)","d0ed5c2f":"walletContract()","d0edf912":"createTransaction(address,uint256,uint256,uint256,uint256)","d0ee32c4":"getSymbolFromAddress(address)","d0ef1048":"_getRand()","d0ef368d":"setAllocation(address,address,uint256,uint256,uint256)","d0eff891":"weiToEther(uint256)","d0f040c4":"checkOwnerAllowance(address)","d0f0efcb":"buyPredictXname(bytes32,uint8)","d0f13638":"minimumPrepaidClaimedPercent()","d0f15e9e":"WalletWithEmergencyTransfer()","d0f17d41":"contributionMaximum()","d0f2019c":"hasToken(address,address)","d0f3235d":"_transferAirdrop(address[],uint256,bytes)","d0f3aa80":"allowSale()","d0f46c0b":"getUsersContract()","d0f4f99c":"solvePuzzle(uint256)","d0f5f4cd":"getPixelColor(uint16,uint16)","d0f6fc40":"QuantityFactorSet(uint256,uint256,address)","d0f76bb8":"End3()","d0f7a601":"etherRate()","d0f817db":"getOrgCertificatesCount(address)","d0f86c9d":"getUser(int256)","d0f86ea8":"getMemoryRead(uint256,uint256)","d0f86fec":"ENKToken()","d0f87ce7":"periodPreITO_mainCapInWei()","d0f89c6d":"setWhiteBackersByList(address[],bool[])","d0f8c714":"add(bytes32,uint256,bytes,bytes8)","d0f8e6a4":"DelegationTransferred(address,address)","d0f96983":"composite(uint256,uint256,uint8)","d0f96f6b":"DigitalPadlock(string)","d0fa968a":"s14(bytes1)","d0fab480":"meg()","d0fb8909":"activations(address)","d0fbe7fe":"buyTickets(uint256[])","d0fc1e7d":"getFrequency(bytes32)","d0fc2782":"multisigs(uint256)","d0fc35cf":"StandardFormula()","d0fc899a":"presaleInvestorsETH(address)","d0fca0ca":"gogo(bytes,bytes,address[])","d0fe3e85":"releaseTokensTo(address)","d0febda9":"getModerator(address)","d0febe4c":"buyTokens()","d0fef78f":"Visor()","d0ffecaa":"setWhaleMax(uint256)","d10032dc":"getTokeRate()","d1013fec":"endTimeSale1()","d101d3b2":"timelock(address,uint256,uint256,uint256,bool)","d1026aa8":"YESToken()","d10271a1":"OxProtocol()","d103449c":"addURL(string)","d1037a11":"swap(uint256,address,address,address,address,uint256,uint256,bytes,bytes,bytes)","d1042e31":"getUserReward(address,address,bool,bool,bool)","d1047434":"getFactoryCount()","d1048bc9":"reserveVanityURLByOwner(address,string)","d104a136":"getBase()","d104bca2":"getUnitsAttack(address,uint256,uint256)","d1051a68":"DynamicToken()","d10523b7":"GoldenLightChainToken(uint256,string,uint8,string)","d105350b":"getLockedBalance(address,uint8)","d10541ab":"changeIdentityEthAddress(address)","d1058e59":"claimAll()","d1073bdb":"setBitwordsCut(uint256)","d107a5cc":"freezeAllowance(address,uint256)","d108177a":"removeEmployee(address)","d10865a7":"endSecondWeek()","d108b7d4":"KyberContributorWhitelist()","d108ffc0":"tokenToWei(uint256)","d1092be8":"transferAllowedDelete(address)","d1096155":"requireOnce()","d10a5e1d":"lockBalance(uint256,bool)","d10ac7eb":"balanceOfComisionDone(address)","d10adfe3":"setPricing()","d10aee9c":"mainPlayer()","d10bc924":"seeCurrentParticipants()","d10c3d1d":"removeFromInitialSupply(uint256)","d10c504f":"has_voted(address)","d10ceb47":"setConsolationRewardsPercent(uint256)","d10d42eb":"Dividend(address)","d10da303":"_createLinglongCatWithTime(uint256,uint256,uint256,uint256,address,uint256,uint256)","d10db2e1":"addCar(address,uint8,uint16)","d10e10b3":"testCanFinalizeEndedSale()","d10e23c8":"ClothingCoin()","d10e73ab":"createIdentity(address,address)","d10e99fe":"mint(int256,bytes32)","d10f6de9":"_requestSignature(bytes32[8],bytes)","d1100691":"BookCafe()","d1104bd3":"SLRC()","d110f0e6":"LEGAL()","d1110c5f":"buyMicroKeysWithHandle(string,string)","d11127c0":"lastBlock_f18()","d1120db0":"size2()","d112cf30":"PCNCoin()","d114751e":"getWeightRange(uint256,uint256,uint256)","d1153f25":"bugFund()","d1159747":"PREICOstart()","d115cac6":"joinTournament(uint256)","d115f02d":"updateMinReward(uint256)","d116c8c4":"releasePayment()","d11711a2":"participate()","d1180c98":"Lotoblock()","d11831c3":"generateHash()","d1190b7f":"changeTransferStepLock(bool)","d1195c48":"transferNashOut(address,uint256)","d119db4c":"addScore(address,uint256)","d11bd1a6":"sendContingencyFunds()","d11bee0f":"STSTEST6()","d11cd4c6":"changeStartPrice(uint256)","d11db83f":"getPendingTransactions()","d11e77e4":"REIToken()","d11f13df":"numberOfParticipantsWaitingForPayout()","d11f5b9f":"VictorieumNewICOToken()","d11ffc55":"referralSupply()","d1206a29":"unlockRewardTokenMany(address[])","d120a284":"getBytesFromNumbers(uint8[3])","d120a4f2":"setUnderCollaterizedPosition()","d1211a71":"Solarex()","d1226567":"bulletAmount(address)","d1237220":"LogId(address,uint48)","d1239730":"mintEnabled()","d123b6e2":"ensureRegulated(address)","d1241e67":"getProductIdAt(uint256)","d125a7e2":"partialRefund(uint256)","d1260edd":"userDeposit(address)","d126ae0c":"TRLCOIN_DECIMALS()","d126dac4":"cashout(address,address,uint256)","d1279ea8":"AddTrust(address,uint256)","d127bb9d":"currentElement()","d12892e4":"setGiftMode(bool)","d128f2de":"cancelOwner()","d128fc20":"allocateTokensForFounder()","d1295eca":"ENDRoot()","d1295f13":"DTRACK()","d129ee38":"MediatedTransaction_Protection_Seconds()","d12a0a2e":"icoClosed()","d12a6049":"setWeiLockSeconds()","d12a7b42":"whitelistResolver(address)","d12b51c0":"changeUserEduExp(bytes32)","d12b88a6":"SelimToken()","d12c08bf":"EGGS_TO_HATCH_1BULLS()","d12c1e28":"badgesOf(address)","d12c7b52":"WarToken()","d12d5c47":"ReferredBonusTokensEmitted(address,uint256)","d12d9510":"DFTBToken()","d12e0b2a":"MultiOwnable()","d12f6938":"crowdSaleStatus()","d12f7029":"STARTING_PRICE()","d1301074":"grantTokenOwnership(address)","d13091ed":"newGoal(bytes)","d1314ee0":"getBroker()","d1315ea3":"ISRA()","d131a803":"FetchlastHacker()","d131ab1e":"UpdatedTokenInformation(string,string)","d131af30":"precisionMinimum()","d131dfb8":"setFirstStageStartsAt(uint256)","d13209f9":"unhold()","d132391a":"setSaleEndTime(uint256)","d132a8f4":"totalBuyTokens()","d132eb02":"ProposalPassed(address,address,uint256)","d13319c4":"getHash()","d1342958":"refuseKyc(address)","d134474c":"winnings()","d134f4aa":"challengeCanBeResolved(string)","d1351e94":"getRoundPlayerKeys(uint256)","d1354f64":"ReceiveTips(address,uint256)","d135ae6e":"isSignedByToly()","d135cc4b":"withdrawLocked()","d135df42":"CONEGTY()","d1366f17":"sellerRequestCancel(uint16,address,address)","d136a579":"claimEarlyIncomebyAddressRound(address,uint256)","d1375f76":"COIN_SUPPLY_ICO_TOTAL()","d1376daa":"getClosingLine()","d13782a7":"addStage(uint256,uint256,uint256)","d137874b":"getDiscount()","d1382092":"getNumTokens(address,uint256)","d1384eb6":"institution()","d13936fe":"connectOrderPrice(address,address,uint256,uint256)","d1397162":"icoOverview()","d13a3386":"withdrawSale2()","d13a64d3":"getYanCoefficient(uint256,uint32)","d13a73c4":"numberOfStages()","d13b54b7":"getGameAmount(address,uint256)","d13bf769":"foundersFundTimelock2Address()","d13c9c1e":"allocatePresaleTokens(address,uint256,uint256,uint256)","d13cb1fb":"fundings(uint256)","d13d1ace":"scheduleCall(bytes,bytes,uint16,uint8,uint256,uint256,uint256,uint256,uint256)","d13daa79":"TestTokenERC20()","d13e0808":"nextCommonTTMTokenId8()","d13e2a6a":"Wei_Remaining_To_ICO_Cap()","d13e5846":"tokenHolderCount()","d13e79ec":"getUSDRaised()","d13ea9ca":"setMinesPrice()","d13f092e":"setRaffleLimit(uint256)","d13f90b4":"initialize(address,address,uint256,uint256,uint256)","d13f9d55":"newIteration(uint256,string,bytes32,bytes32,bytes32,string,uint256,uint256)","d1407bec":"TraceCrowdsale()","d141138e":"getServerMoneyBag(uint256)","d14192ba":"numParameters()","d141b610":"MembershipPaid(address,uint8,uint256)","d1428e7a":"ratioFor(uint256,uint256,uint256)","d142bc5c":"individualWeiCollected(address)","d143dad0":"getLineSum(uint256)","d1442e93":"getStrField2()","d1472046":"CollectChips(address,uint256)","d14779c4":"signDigitalContract(string)","d1477f7b":"setInitialTokenValue(uint64)","d1479575":"creditcoinLimitInFrac()","d1482791":"updateInterest()","d148288f":"setHoldingPeriod(uint256)","d14ac7c4":"crowdSaleAllowance()","d14b2f9b":"addBonusToken(address,uint256)","d14b691d":"_resetReleaseTime(address)","d14cd233":"tokenSpread()","d14e1784":"paymentForWeek(uint256)","d14e62b8":"setCount(uint256)","d14ebab3":"NXE_Coin()","d14f17f7":"airdrop(address[],address)","d14f56f1":"moveUnsold()","d14f9219":"ham()","d150f835":"currentDonation()","d150fbe6":"convertToInd()","d151ec28":"getMadeTXFund(uint256)","d152865b":"getLastDIVDPeriod()","d15334a5":"firstVestAmount()","d15376a7":"lastBlock_f14()","d15392b2":"forceRelease(uint256)","d153ab40":"addMultipleTier1Members(address[])","d153b60c":"proposedOwner()","d153d118":"MyDice()","d1541264":"getManagerForCount(address)","d1555f1f":"approveCommitmentTransfer(address)","d1558b7c":"referrersCount()","d155908b":"addone()","d155feec":"EdisonCoin()","d156549f":"setExpiredAndWithdraw()","d1571996":"multisigOwner()","d1572e4c":"setResource(string,string,address)","d1577656":"purchaseTo(address)","d157e816":"MiningExtended(uint256,uint256,uint256)","d157f27d":"sendAdvisorsSupplyToken(address)","d157f645":"setPaymentInterval(uint256)","d1594403":"manualTransferTokensTo(address,uint256,uint256,uint256)","d15b506b":"TokenROC()","d15b95b4":"delegateDklBidAuction(uint256,uint256,bytes,uint256,uint16)","d15b9614":"GetLogMessageError()","d15c11e5":"providerRegistry(address)","d15c82e3":"reserveManyTokens(uint256[],uint256,address)","d15cfa25":"ChronoMint(int256,address,address,address)","d15d2745":"CLE_Beta_Pictoris()","d15d62a7":"getLibrary(uint256)","d15db5fb":"_computeBackground(uint256)","d15e06a0":"registerCrowdsales(address,uint256,uint256)","d15e1014":"marketingTokensPercent()","d15e9459":"stopAddressesTotal()","d15ecbc2":"simulatedBlockNumber()","d15ee9ff":"setUsersCanTrade(bool)","d15fc954":"wallet_Address()","d16058df":"getPayOrderKey(uint256)","d1613036":"releaseTokenTransfer(bool)","d1613731":"adminGetBalance()","d1614df3":"individualMinCap()","d1615300":"startWeekTwo()","d161b56a":"tokensMintedDuringICO()","d1631361":"ms0()","d1632f67":"assignFundReceiver(address,uint256)","d16352af":"getProtocol()","d163b764":"row(uint32)","d163fcab":"getCurrentHero()","d1650f7f":"test_oneValidEqStringNoLog()","d1651786":"donateUnicorns(uint256)","d165288e":"setAllowMining(bool)","d165d7cd":"registerNameXnameFromDapp(address,bytes32,bytes32)","d1660f99":"safeTransfer(address,address,uint256)","d166539b":"_migrate(uint256)","d16712ed":"maxGoalReached()","d16782f6":"testMetered()","d1682600":"StandardToken(uint256,string,uint8,string)","d16856ca":"addAdmin(address,string)","d16865a3":"PRIORITY_ADDRESS_LIST()","d168f699":"Glv(uint256,string,uint8,string)","d1698430":"revokeAllTokenGrants(address)","d169a020":"evMgmtIssueBountyToken(address,uint256,address,uint256,bool)","d169c869":"endOfPreSale()","d16a7a4b":"FreezeAccount(address,bool)","d16a8fe7":"kickMember(address)","d16a9624":"winBidEth(address,address,uint256,uint256)","d16b04cf":"myCoinAge()","d16b6473":"getOnTokenTransferToValue()","d16be71b":"teamTokensDelivered()","d16c4cf5":"FOUNDER1()","d16e1ded":"requestTransferItem(address,address,string)","d16e443a":"previousDelegates()","d16e92db":"createCrowdsale(uint256,uint256,address,address,address,address,uint256,uint256,bool)","d16edc15":"chargeFeePool()","d16f8669":"crowdsaleClose()","d16ff4c8":"nextCandidateId()","d1701397":"Flip1Token()","d17222dc":"CATContract()","d1724881":"getBroker(address)","d17291bd":"icoRunning()","d1729a4a":"sendTokensManually(address,uint256)","d172d6fc":"playFast()","d1734eac":"isInNextGeneration(address)","d173707d":"hasPhysicalAddress(address)","d1738b72":"wroomWroom()","d173d531":"Amalgam()","d173e578":"setInitialAllocationLock(address)","d173fc82":"setTokenAdmin(address,address,address,address)","d1746107":"teamTokenRatio()","d174c388":"tokensaleToOtherCoinUser(address,uint256)","d1759141":"massEthFund()","d175958f":"cancelApproveForAll(uint256)","d175d38d":"calculateBonus(uint32)","d176be98":"DonorCrowdsale(uint256,uint256,uint256,address,uint256)","d1776731":"userToRobots(address,uint256)","d1778ed7":"UltrixCoin()","d177e6a6":"fillOrder(address,address,uint256,uint256)","d1786610":"getTokenRemaining()","d1789176":"AMOUNT()","d179eb71":"clonedFrom()","d17a1b5b":"SetAccessType(uint32)","d17a79c1":"totalNormalEtherCollected()","d17aa842":"GetDivPerCoinLarge()","d17ab3c6":"free2Of(uint256)","d17be133":"getAllHousing()","d17cf29f":"retrieveWarriors(address,address,uint8)","d17d0d29":"SITExchangerMock(address,address,address)","d17d25de":"marketingTokenAddress()","d17e45fb":"s23(bytes1)","d17e4889":"decodeProps(uint256)","d17f5d9d":"indice_vincitore()","d17f7142":"isLocked(uint256,uint256,address,address)","d17fd539":"_newInterest(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d1802d79":"mintEGAS()","d18063cd":"registerParticipantAgent(address)","d1809fe8":"depositLiquidateThePool()","d180be1d":"isMemberOf(address,address,string)","d180d0bc":"_deliverTokens(address)","d180ebca":"FinishIco()","d1812be7":"newCustomFutureLottery(uint256,uint256,address,uint256)","d18165f6":"OEN()","d1818aed":"setPresidenteDeMesa(bytes32,uint256,uint256,uint256)","d181c37e":"NecroToken()","d182b4ff":"CurrencyHedge()","d182d253":"ICO_PHASE1_LIMIT()","d183434d":"accountsBalances(uint256,address)","d1835b8c":"left21(uint256)","d184194b":"Smw()","d184935d":"getDebug()","d184adf6":"distributeToAddressesAndAmounts(address[],uint256[])","d184b88e":"AddedPrepaidTokensEvent(address,uint256,uint256,uint256)","d185c583":"ownerWithdrawFees()","d185f378":"_owns(bytes32,uint256)","d18611d6":"reactivate()","d1866019":"GetReferredCount()","d186659d":"setRateIcoMainSale(uint256)","d186899a":"issueAndLock(address,uint256)","d18746ed":"BonusChanged(string,uint256)","d188f550":"setPlayerGeneralLv(uint64,uint8)","d1893d23":"oldusesr(address,address)","d189b98d":"firstPrivateReleaseTime()","d189c1b0":"createUserByEmail(bytes32,bytes32,uint256)","d18a5563":"depositsStack(uint256)","d18ad4de":"getPlayerAff(address)","d18b07b2":"calculateCommission(uint256,uint256)","d18b93e6":"_owns(address,uint256,uint256)","d18c5da7":"FrogDaruma(address,address,address,uint256,uint256,uint256)","d18d944b":"setHardCap(uint256)","d18df96c":"vault_enableRefunds()","d18dfdc9":"parrot(uint256)","d18e031e":"verifyDeed(string)","d18e142d":"Announcements(uint256)","d18e81b3":"currentTime()","d18ffb8d":"inversorIsKyc(address)","d19003e5":"_endOfPreICO()","d1900a04":"TRCTotalSupply()","d191b336":"AdjustBetAmounts(uint256)","d191d7f4":"OPERATIONS_SHARE()","d191e11d":"rateSystem(address,uint256)","d192367b":"randomA()","d1925b80":"YACHT()","d1933a1b":"goalManagment(bool)","d19370bb":"resetKYC(address)","d193a0ca":"splitsSingle(uint256,uint256)","d1940a16":"announce(uint256)","d195bbd5":"AywakeToken(address,address)","d195ef83":"mintAdminApproval()","d195fd28":"RESERVED_BOUNTY_SIDE()","d1976a6f":"completeGame(uint256,uint256,string,address)","d19853c7":"exchangeBounty(address,uint256)","d1987a28":"setTradeRobot(address)","d1988b6a":"getGameHash(uint256)","d199168d":"claimedTokens(address,uint256)","d199c81d":"TokenSale(uint256,uint256,uint256,uint256,address,uint256,uint256,address)","d19b8d87":"refundManagerContractAddress()","d19b99b5":"turnMigrateOff()","d19c395f":"capPreICOTrasferred()","d19d1912":"getSelfGroupsContributedTo()","d19d8e1a":"Ethereumbonus()","d19e09ce":"setDefaultAccountingPeriodSettings(bytes2,bytes2,bytes2,bytes2,bytes2,bytes2,bytes2)","d19e1ad4":"_calculateNewPrice(uint256)","d19e2364":"addDonateTokenAddress(address)","d19e6cf0":"ChangeDeadLine(uint256,uint256,uint256,string,uint256)","d1a0cc5c":"processPayment(address,address,uint256)","d1a0e8c8":"setFeeRebatePercent(address,uint8)","d1a132f9":"enableNodeRegistration()","d1a1beb4":"mint(address,uint256,bool)","d1a1f5ba":"addSongData(string,string,string,string)","d1a2749c":"Crowdsale(address,uint256,uint256,address,address,uint256,uint256,uint256,uint256)","d1a2bfaf":"Wallet_Initial_Supply()","d1a2dfd2":"isExistingDataIdentifier(bytes32)","d1a3d3ad":"assertEq9(bytes9,bytes9)","d1a3fb20":"updateUserRatio(uint256,address)","d1a40ce1":"_rewardVote(address,address,uint256)","d1a4a98c":"BeBitcoin(uint256,string,uint8,string)","d1a61025":"tradeBookOf(address)","d1a634e6":"OVC()","d1a69455":"get_enode_by_row(uint256)","d1a75e0d":"VOTE_FOR()","d1a75fea":"createTreatyRequest(uint8,string,uint256)","d1a7d1a8":"MyPinerTokenTest2()","d1a8d447":"get_all_bet_values()","d1a94e58":"TXOtoken()","d1a9eb19":"withdrawToContractOwner(uint256)","d1a9f5be":"createFileWithContents(string,uint256,bytes32[],uint256)","d1aadb6a":"setColour(uint8,uint8,uint8)","d1ab0457":"AddSoftware(string,string,bytes32,bytes32,bytes32)","d1abdab8":"divideDecimal(uint256,uint256)","d1acb464":"CreatedLoan(uint256,address,address)","d1ae0488":"transferBecauseOfAggregate(address,uint256,address,uint32,uint256[],uint256[])","d1ae956f":"isPayed(uint256)","d1ae9607":"LFSTYLToken()","d1aea543":"forwardFunds(address)","d1af8a5a":"LinkerExample()","d1afaf1f":"addusertime(address)","d1afdb86":"buyAllowed()","d1b12b4e":"extCreateBot(uint256,uint256,uint256,uint256,address)","d1b1a22b":"set(string,uint256[],uint256[],uint256[],bool[],uint256[])","d1b1b65a":"rangeETHAmount()","d1b31a63":"cryptobank(bytes32,bytes32)","d1b33094":"addAccessor(address,uint8)","d1b33afa":"_calculateDayPass()","d1b39ae5":"decimalOffset()","d1b4ff7e":"multiAccessRevokeD(bytes32,address)","d1b5e2be":"testFailRegisterContractIdAgain()","d1b648cd":"contractSendGas()","d1b6a51f":"finishEthGetToken()","d1b6dd30":"airdropClaimed(address)","d1b7cb9b":"transferBatch(address[])","d1b878e9":"getresult(uint256)","d1b9c430":"OPEN()","d1ba656b":"minimumTransferInWei()","d1ba8257":"SIX()","d1baaf58":"communityRoundStartDate()","d1bab4cc":"batchApprove(address,uint256[],uint256[],uint256[])","d1baceac":"DepositBank(address,uint256)","d1bb0433":"preSaleTokensPurchased()","d1bb5cf1":"marketplaceContract()","d1bb7b59":"tokensPerWeiBonus111()","d1bb8688":"ICO_SHARE()","d1bba64f":"Investment()","d1bc2cc4":"transferGift(address,address)","d1bc4157":"KanZhang()","d1bc5c8e":"KryptoroToken()","d1bc62de":"EARLY_FOUNDERS_USD()","d1bc76a1":"recipients(uint256)","d1bcbf6c":"_isReady()","d1bd328b":"bonusFirstIco()","d1bd56c1":"TripleT()","d1bdf639":"cards_black_check(address)","d1be7cc4":"serverPortUpdate()","d1bf942a":"rok()","d1bf9aba":"nextRune()","d1c01b26":"Crowdsale(address,address,uint256,uint256)","d1c06b2f":"availablePositions()","d1c1132f":"lockInTreasury()","d1c13abd":"returnRental()","d1c15acf":"OWNERS_AND_PARTNERS_SUPPLY()","d1c19fbc":"Withdrawn(address,address,uint256)","d1c1f19f":"NewPlay(address,uint256,bool)","d1c2babb":"merge(uint256,uint256)","d1c31f10":"tokenLockUp(bool)","d1c332c7":"preDistriToAcquiantancesStartTime()","d1c43558":"TheExtraordinarySpacemen()","d1c46916":"releaseLock(address)","d1c484f6":"proposedRecoveryKeyPendingUntil()","d1c4c206":"setRoute(string,address,bool)","d1c5e119":"getMyAnotherDragon()","d1c673e9":"transferAndCall(address,uint256,uint256,bytes)","d1c693f8":"TOTAL_TOKENS_FOR_PRICE()","d1c699aa":"exerciseFee()","d1c6b0ca":"setBonusAmount(uint256)","d1c6f448":"updateInitialRate(uint256)","d1c72c89":"isInRoundTwoState()","d1c73322":"tokenHardcapReached()","d1c7a6ac":"ActivationWithdrawal(address[2],uint256[8],uint256,uint256)","d1c7be4d":"_pushLuckyInfo(uint256,uint8,address,uint256)","d1c85478":"GGRocketToken(address,string,string,uint256,uint256)","d1c8e7e6":"charityDonation()","d1ca0218":"issueToken(uint256,uint256,uint256)","d1cb0f0f":"getAllTombs()","d1cb923c":"HUNDREDTIMES(uint256)","d1cb993d":"grantAllowance(address,uint256)","d1cbfc66":"getOneTotalFeesDistributed(uint256)","d1cbfe65":"setRefferal(address)","d1cc9976":"isTerminated()","d1cd19cf":"advisorCut()","d1cd7bfa":"setSUTokenContract(address)","d1cdcf71":"PRICE_STAGE_FOUR_BONUS()","d1cdfe84":"Bonus_PoolTransfer(address,uint256)","d1ce017c":"getABIHashForMod(bytes32)","d1ce36aa":"unLockIdx()","d1ce65ab":"isCryptoRomeLandComposableNFT()","d1cec3ac":"CrowdSaleTest()","d1cf113e":"multiAccessSetRecipient(address)","d1cfe644":"EventCashOutTank(address,uint256)","d1d115ac":"test_fourInvalidEqUint(int256)","d1d1c8ae":"ConvertNumbers(bytes)","d1d1f264":"setSubscriptionStatus(bool,bytes32)","d1d2bd55":"calculateRangeLength()","d1d3a898":"_createElement(uint256,string,address,uint256,uint256)","d1d3bb92":"testSetPkg()","d1d3d8a6":"MintLog(address,uint256)","d1d422f6":"roundEvent(address[6],bytes32[6])","d1d46d2b":"setChestPrice(uint16,uint256)","d1d4c4c6":"safeDiv(int256,int256)","d1d5190c":"changeStart(uint256)","d1d53493":"setMaximalInvestmentTimeTreshold(uint256)","d1d566cf":"allocateExtraTokens(address)","d1d5824d":"maxBetThresholdPct()","d1d58b25":"claimable(uint256)","d1d675e4":"setMaximumCoinsPerAddress(uint256)","d1d6d639":"EstimateGas()","d1d6e44a":"paintGraffiti(uint256,string,string)","d1d80fdf":"setAddr(address)","d1d8fd65":"TransferCoins(address,uint8)","d1d93318":"createAvatar(string,uint256)","d1da09ee":"extractImportFeeChargeLength()","d1da8436":"setAdData(uint256,string,string)","d1db1cc4":"LogRefundingOpened(uint256)","d1db99b6":"INR_Omnidollar()","d1dbcd70":"isNodeTLDOfRegistrar()","d1dc3706":"LogReceivedETH(address,uint256)","d1dc72a0":"METAHASHCOIN()","d1dd2794":"buy_end_time()","d1ddb24e":"recordResult(address,address,address)","d1de5011":"getAccount(bytes32)","d1de592a":"add(bytes32,bytes32)","d1defff2":"_educatedToken()","d1df1252":"ringBell()","d1df306c":"burnToken(address,uint256)","d1df81df":"getPlayerInfo()","d1dfdc07":"patentSaleTimeDelay()","d1e0363d":"_createLock(uint32,address,uint256)","d1e040ec":"ConvertColouredBkp(address)","d1e07bcb":"onlyCapperMock()","d1e15045":"sendBack()","d1e191a4":"withdrawEverything()","d1e19ab2":"distributeAllTokensToContributor()","d1e2eb5e":"countInvestor()","d1e34733":"GCOXACMToken(string,string,uint8,uint256)","d1e400f4":"ecoSystemAddress()","d1e4b8da":"importBalance(address)","d1e58e0f":"preIcoRate()","d1e692eb":"lastLottoTime()","d1e6a64f":"leftForSale()","d1e7e81f":"selfLock()","d1e83b8b":"ChangeInterest(uint256,uint256,uint256,uint256,bool)","d1e8acb4":"ABC(uint256,string,uint8,string)","d1e9822c":"RESERVE_WALLET()","d1e99563":"BACKLEAF()","d1e9ab13":"Swift()","d1e9dcbf":"serverForceGameEnd(address,uint256)","d1e9f75b":"testHitSoftCap()","d1ea2786":"offerSketchForSale(uint256,uint256)","d1ea8b89":"QNTUsdRate()","d1eabc94":"CardToken(uint256,string,string,string,string)","d1eb6404":"donationsFrom(address)","d1eba9c9":"getDeployedAuctions()","d1ec32ed":"secondsToHold()","d1eca85e":"startIcoPreICO()","d1ecdec6":"m_OwnerFees()","d1ed3dad":"getIndex(address,address)","d1ed74ad":"retrieve(bytes32)","d1ee2bf9":"icoDiscountTime()","d1ee32c3":"issueTokensForICO(uint256)","d1ef4e91":"vestTokens(address,uint256,uint256)","d1ef752d":"Post(address,address,address,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","d1efb5cd":"_getChamp(uint256)","d1efd30d":"secret()","d1f0bb2d":"populateAllowedFreeExchanges()","d1f1ef34":"setPrivateSale()","d1f1fff8":"minBalanceForTxFee()","d1f276d3":"releaseAgent()","d1f2a7e2":"isUserPolicyAccepted()","d1f2efd5":"isMainSale()","d1f2f971":"calculateDivi()","d1f34b14":"__uintToBytes(uint256)","d1f38097":"CTGToken()","d1f461d5":"getUsernameFromAddress(address)","d1f4df47":"grantBountyTokens(address)","d1f55764":"shareContract()","d1f59db9":"isLatestMinorTree(bytes32,bytes32)","d1f61c44":"Totalizeum()","d1f61ed5":"dropRoute(uint32)","d1f6424f":"configurationCrowdsale(address,uint256,uint256,address,uint256[],uint256,uint256,uint8,uint256)","d1f69902":"getHeroClassId(uint256)","d1f6d676":"ExchangeContract(address,address,uint256,uint256)","d1f70760":"setAdditionalTokensFromCommonPoolWallet(address)","d1f7a4e4":"createCertificate(bytes)","d1f8a208":"removeOrganisation(address)","d1f92cab":"timereumDelta()","d1f95204":"propertyIndexToOwner(uint256)","d1f9c24d":"gameState()","d1f9f3a0":"bitdncToken()","d1fa338d":"TokenStorage(address)","d1fa74d2":"SimpleEscrow()","d1fa94d0":"setLockStatus(bool)","d1fa9cad":"Partners()","d1fae327":"CofounderSwitchedEvent(address)","d1fb386a":"_recordStashedPayout(uint256,uint256)","d1fb5646":"releaseTo(address)","d1fc0ddf":"prevOracle()","d1fc8cf3":"endDispute()","d1fccf9e":"bonusedPurchases()","d1fd260e":"getLotteriesByOwner(address)","d1fd3b12":"_rotateCauldron(uint8)","d1fe43ba":"migrateDueToNoReports()","d1fea3d5":"setReleased(bool)","d1feb5ee":"deleteArrayBytes32()","d1feca67":"addSpendingRequest(address)","d1ff535e":"PURCHASER_MAX_TOKEN_CAP()","d1ff8151":"getNumTanks()","d1ff9605":"setAdminFeePercent(uint256)","d1ffb796":"_ListingRemoved(bytes32)","d2004f8c":"getChance(uint256,uint256)","d20058af":"ESCBAirdropper(uint256,address)","d2008118":"logPromiseConfirmed(uint256)","d202158d":"keyHasPurpose(bytes32,uint256)","d2038d4d":"finalize4()","d2051f8e":"updatePassword(uint256,string,string,string)","d205ad7d":"proposeDissolve(bytes)","d205bcb0":"isPendingOracle(address)","d205f1e6":"testFail_set_price_without_token()","d2064e2f":"getStamp(uint256)","d2077782":"changeRequestCount()","d2079c0f":"playersLength()","d207e757":"ownerSetOraclizeSafeGas(uint32)","d2080ccd":"pauseWhitelist()","d20838f4":"setRegistryContractAddress(address)","d208fd60":"getMessageSender(uint256)","d209a566":"BP_PERSIAN()","d20ae2b5":"getMyWorks(bytes32,bytes32)","d20c34de":"TaylorToken()","d20cd8e5":"Solved(address,string,string)","d20d6119":"createTokenUri(uint8,uint8,uint8,uint8,uint8)","d20db416":"_approvePurchaser(address,uint256)","d20de0bc":"nextParticipantIndex()","d20e54a8":"startBet(uint256)","d20f5029":"advisorsTokensAddress()","d21077f3":"areFundsReleasedToBeneficiary()","d211483f":"RoleRemoved(address,string)","d211fd18":"capital()","d211fe86":"icoEndtime()","d21220a7":"token1()","d212a69a":"_fees()","d2134b26":"expTx(uint256,uint256,uint256)","d2135356":"isValidRelease(uint256)","d213ed96":"manageApprovedMintingModule(address,bool)","d213f109":"calcAmtReclaimable(address)","d21407fa":"crowdSalesCompleted()","d214326f":"GetWinners()","d214becb":"charactersCountOf(address)","d2161687":"reflectSwitch()","d2164302":"forgeWeaponPureDamage(uint256,uint256,uint256,uint256)","d216995b":"determineBonus(uint256,uint256)","d2169d2f":"getMonsterLevel(uint64)","d2169dfd":"RETURN_DATE()","d216a47d":"decreaseApproveAndCall(address,uint256,bytes)","d216a86c":"publicEventActive()","d216d55d":"etherandomExec(bytes32,bytes32,uint256)","d21705ff":"admin_proportion()","d2178b08":"get2()","d217b149":"managerUnset()","d218e144":"calculateRanking()","d218f92d":"checkinter()","d219f103":"collectedEtherFrom(address)","d21ad1ed":"calculateWinnerCut(uint256,uint256)","d21b84ac":"createNewDAO(address)","d21b93df":"Hypes()","d21b96ab":"ringhashRegistryAddress()","d21bdee4":"Bitforce()","d21c39a1":"acceptPayment(address,uint256,address,uint256,uint256)","d21c700f":"stopToken()","d21cacdf":"referrerOf(address)","d21cbffc":"getIfVoted(uint256,address)","d21ceba0":"RemainingTokensReceiverAddress()","d21cf24f":"setSingleWithdrawMax(uint256)","d21d2cd1":"lifePoints()","d21d7950":"changeGasLimitOfSafeSend(uint256)","d21e17a6":"_payEthereum(uint256)","d21efc35":"endPhase()","d21fa4e1":"contract_alive_until_this_block()","d2201c3b":"CreateLUNETS(address,uint256,uint256)","d22057a9":"register(bytes32,address)","d220b727":"ProposalTallied(uint256,int256,uint256,bool)","d2225635":"getBetterNumOfWinnings(address)","d22290a4":"feeBips()","d222dc04":"requiredSignedAddress()","d2231919":"TransactionRefundedByMediator(uint256,uint256)","d22341a9":"withdrawDeveloperPot(address)","d2234b37":"withdrawal2()","d2235998":"_cancelAuction(address,uint256,address)","d223926f":"buyBooster(uint256)","d224118f":"PrepareDraw()","d224c3e0":"gen0Step()","d224f1ed":"proxiesCount(address)","d2254db0":"DDEToken()","d22591c8":"addBook(string,address)","d226d11f":"foundEvidence()","d226ff1b":"User(string)","d2273f37":"_changeTuneOption(uint32,uint32,uint256,bool,bool,uint128,bool,uint64,uint256)","d2282dc5":"setUint256(uint256)","d228cfc5":"claimHodlRewardFor(address)","d229a94a":"lockTokensForTradingMarketContract(address,uint256)","d22a1180":"finanReserveAllocation()","d22ac06f":"_approveEscrow(bytes32,uint256)","d22b1a0f":"secondVestStartsAt()","d22b32e9":"hivePerEther()","d22b3c8b":"ownerArmyCount(address)","d22b3de6":"setTitulaire_Compte_10(uint256)","d22b64a2":"getDonationByAddress(address,address)","d22b9177":"getImageRegionId(uint256)","d22bdce2":"_getNextStage()","d22c391a":"validateProposedThroneRules(uint256,uint256,uint256,uint256,uint256)","d22c78f8":"getPlanetDetails(uint256,uint256)","d22d9c6d":"tokensInUse()","d22dee48":"claimProfit(uint256)","d22e7b69":"validatePublisher(address,bool,string)","d2305f07":"getCloneArray(uint256[])","d230e875":"MaxValue()","d232790d":"setLastWinner(address,uint256,uint256,uint256)","d232a8f5":"firstStageCap()","d23376ec":"getPOOL_edit_14()","d233e5c0":"oxen(address)","d233fc0b":"changeRecovery()","d23628f1":"CyberRailNET()","d2368f64":"Billing(uint256,uint256)","d237a427":"TT()","d237b43f":"reclaimResourceDeposits(address)","d237bc74":"paymentSizeC()","d238cd1b":"redeemVoucherSingle(uint256,address,address,uint256)","d238ec90":"HWGLToken()","d2395dcd":"buyTokens(address,uint256,uint256)","d239ea8b":"getSchemasLenght()","d23ad39d":"setCommons(address)","d23b8f5c":"drawDailyWinner()","d23dcee0":"_generateTokenURI(bytes32[],uint256)","d23df2d1":"RENEX_SETTLEMENT_ID()","d23e09f5":"trioContract()","d23e8489":"transferOwnership(uint256)","d23ea159":"eGoldchainStart()","d23ef360":"setExchangeRegulatorWallet(address)","d23f0abb":"issueTokensForPresale(uint256)","d23f1bba":"noBets()","d23f4450":"scoreDown(address)","d24155c1":"getAmountBonusRate()","d2415852":"TheDivine()","d241ead8":"testMinReturn0WithReturn()","d242448c":"transferredCrowdsale()","d24257c0":"betAmount()","d2427db5":"checkTotalPayout(address)","d242b051":"reserveWaveLockup()","d243ec26":"payDev()","d244059a":"whiteListLimit()","d245a084":"TransactionRefundedAfterDispute(uint256,uint256)","d245aa92":"endBlockBonus3()","d245da28":"updateEarlyParicipantWhitelist(address,address,uint256)","d2467e31":"GetSellingTokenDecimals()","d246a8c9":"lastNegativeVoting()","d246b379":"calculateRevenue(uint256,uint256,uint256)","d246d411":"burnAddr()","d247160a":"ethertoteDevelopmentTransferComplete()","d24876b7":"sellCMTAgainstEther(uint256)","d248cf1f":"DASHABI(uint256,string,string)","d24987fc":"getNewTokenPrice(uint256)","d24999ca":"getkillerPriceConversionFee()","d249a52e":"update(bytes,uint256[],uint256[])","d24ac764":"getRejectionCount(uint256)","d24b06b7":"registryRequestCustodian()","d24b08cc":"callstoredaddress()","d24b62a8":"lotteryReset()","d24b7090":"_payEtherAndDistribute(uint256)","d24b7e7a":"setEthPrice(uint128)","d24bcb15":"usechainWallet()","d24bcf54":"getEarlyIncomeByAddressRound(address,uint256)","d24c8fe4":"_getCurrentStage()","d24d11ad":"BattleProvider(address,uint256,uint256,uint256,uint256,uint256)","d24ddcfe":"buyKissBTC()","d24ecc10":"initializeSale(uint256,uint256,uint256,uint256,address)","d24ef4f3":"PLATFORM_DEVELOPMENT()","d24f8a17":"convertShortedTokensToLiquidationToken(uint256)","d2500033":"RISE()","d25090ff":"withdrawContribution(uint256)","d25119c7":"getMsgHash(address,string,string)","d2521034":"marriageStatus()","d2526418":"getFeePercent(address)","d2531590":"CANCEL_EXTRA_GAS()","d2536893":"setDividendWinners(uint256[],uint256[],uint8[],uint256)","d2548393":"team2019TokenCreated()","d255494a":"removeInventory(bytes32)","d25570f2":"AliceToken(uint256)","d2558fca":"Token3D()","d2559533":"WinancesToken()","d256451c":"setRates(uint256,bytes32[],uint256[])","d256c7a5":"setTokensPerEther(uint256,uint256)","d2571062":"setAllContracts()","d2577fec":"_getRoleSignature(address,bytes32,address)","d258d7b6":"test_4_generateTokensAccrossBlocksAfterDestroy_increaseBlocksBy1000()","d258f2f4":"TeTeToken()","d2591068":"TLCMarketCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","d259224a":"ssstt()","d2598c4c":"removeTrader(uint8)","d2599312":"initShareRule4Publicity()","d259d761":"changeAdminContract(address)","d25a1212":"revokeAttributeSigned(address,uint8,bytes32,bytes32,string,bytes)","d25a13b4":"roundTwoBlock()","d25a5be9":"airdropTotalSupply()","d25b3ee1":"AcademiCon()","d25b4f2a":"CrowdsaleRC()","d25c0767":"isSaleAuction()","d25d19e2":"SetThrdOwner(address)","d25d603c":"cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32,string)","d25dc056":"transferToWinner(address,address,uint256)","d25e3443":"ISLToken(uint256,string,string)","d25f08b1":"adminAddICO(uint256,uint256,uint256,uint256,uint256,uint256[],uint256[],bool)","d25f1c35":"CPGPEREGRINE_MAX_CARGO()","d25f82a0":"getAirdrop()","d25ff342":"MNXToken()","d2602930":"RockPaperScissors()","d26031ab":"phase2EndingAt()","d261de38":"NVCTToken()","d261fbed":"addressCallWithArray(address[3])","d2620e2d":"holdOf(bytes32)","d2625fce":"pendingOracleB()","d2631e42":"changeRewardManager(address)","d263b7eb":"ownerkill()","d263be48":"myWallets()","d263d2a4":"setWildCardToken(uint256)","d264a878":"getOraclizeWinnerTimeOffset()","d264cfdc":"lockAccountOf(address)","d264e05e":"forward()","d2650fe5":"RedeemEvent(address,uint256,uint256,uint256,uint256)","d2651855":"changeERC20(address)","d2654219":"getCurrencyDenominated()","d2656069":"SmartContract_Allowed(address)","d26574ac":"setCardPerkText(uint256,string)","d266e83b":"isActive(address,uint256)","d2670025":"REQ()","d2676711":"getCommentAccountsLength()","d2689abc":"ecdsaverify(uint256,uint256,uint256,uint256,uint256)","d269ae55":"MAX_ALLOWED_TOTAL()","d26c8a8a":"coinBalance()","d26cbe1e":"Contributed(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)","d26cfeae":"setMinAmount4Round(uint256)","d26da39e":"isRequestFromOwnerOrMeterKey(address)","d26dbd2a":"preSaleTokensDisbursed()","d26ee061":"getAvailableFundsForTheTeam()","d26f9cd7":"backofficeRedeem(uint256)","d26ff86e":"submit(bytes32,bytes32)","d270085e":"addNoFeeAddress(address[],address[])","d270b8e8":"tokenDistributionEndTime()","d270cbaf":"buyAAC()","d270e7ab":"mainContract()","d271011d":"transferEthers()","d2715a6b":"getEmblemOwner()","d2718fbe":"setOwnerFlag(uint256,uint8)","d271900d":"linkContract(address)","d2719d22":"btcRate()","d271b067":"ln(int128)","d2727e6c":"_oneTokenInWei()","d2728f90":"Bought(uint256,address,uint256)","d273285b":"createdWallets()","d27399b5":"countAddressesSet()","d27416ec":"verify(bytes32,uint8[5],bytes32)","d27482a4":"claimOwner(address)","d274b230":"registerFor(address,address,uint256,uint256,uint256)","d274fa91":"amendRetention(uint256,uint256)","d2756e11":"finalizeNumber(uint256)","d2758538":"createOneDrink(string)","d2760b64":"_isBuying()","d27626fd":"pushToken(address[],uint256,uint256)","d2769df1":"isValidComposition(uint256[],uint256)","d276a3e1":"auctionedEth()","d2789aa5":"getPrivilegeState(string)","d279830c":"addMilestone(uint256,uint256,uint256)","d279c191":"claimReward(address)","d27a43f6":"_checkWin(uint256,address)","d27a6f28":"ZyPPACrowdsale(uint256,uint256,uint256)","d27aa18e":"Secure()","d27bf2e3":"getCurrentLocation()","d27d1bc4":"proposalsNumber()","d27d3e88":"bulkSend(address[],uint256[])","d27f41cd":"CharityInProgressWallet()","d27fcf96":"gmtFundAddress()","d27ffef1":"OLIFEToken()","d282866a":"whichTick(uint256)","d282db01":"_withdrawal(address)","d2835c58":"P4P()","d283833d":"toekensForTeam()","d283859d":"removeBlack(address)","d2840362":"addAdvisors(address,uint256,uint256)","d28442ef":"ownerProfit()","d2846c7b":"isProxyContract()","d285b7b4":"loan()","d286dbf2":"internalNewRound(uint256,uint256)","d2871105":"tokensIssuedBySTO()","d2874e49":"withdraw(address,address,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","d2879f47":"_getContractTokenBalance()","d2886ebc":"getUserSkills(address)","d288c878":"blackListERC20(address)","d289ade2":"payFee(uint256)","d289eb82":"buyMultipleItems(uint8)","d289f187":"_addBonus(address,uint256)","d28a4f9e":"setKyberContractAddress(address)","d28ae9ef":"calcMiningSharesAmount(uint256,uint256)","d28b5317":"setCampaign(bytes32,uint256,uint256,uint256,uint256,bool,address,string,int256)","d28be797":"getShitClonelordReq()","d28c25d4":"changeGreeting(string)","d28c2aaa":"fix_parents(uint256,bool)","d28cb7b5":"availableWallet(address)","d28cbded":"ERC20Token(uint256,string,uint8,string)","d28d4e0c":"queryAllAccounts()","d28d8852":"_name()","d28dcdea":"haltPurchase()","d28e4355":"updateClaimable(uint256)","d28e88bd":"freezeDateOf(address)","d28f95ba":"withdrawalEth()","d28fa960":"withdraw_all_funds()","d28fdde8":"updatePrice(uint256[])","d2901c47":"RATE_SOFT()","d290ee06":"revokeTokenTimelock(address,uint256)","d291fa81":"GetMinerAt(uint256)","d29208d4":"MasterCoin()","d292515d":"totalMintNums()","d292b920":"CryptaurMigrations()","d292e6cb":"_sendPriceUpdate(address,uint256)","d294cb0f":"accountBalance(address)","d294f093":"claimFees()","d2953f84":"assetByIndex(address,uint256)","d29543af":"FolioNinjaToken(address,address,uint256,uint256)","d296853a":"whitelistPreSaleAddress(address,bool)","d2970120":"getSettlingTimeoutBlock(bytes32)","d29709fb":"returnDeposit(address,uint256)","d2973f93":"setUserType(address,uint256)","d2983dfd":"LoadedRefund(address,uint256)","d299dac0":"blake2b(bytes,bytes,uint64)","d29b5d2f":"mintReputation(uint256,address,bytes32)","d29c8c96":"createdBlockOnCommitsPhase(uint256,address)","d29cafe1":"ZilliqaToken(address,uint256)","d29cbd60":"getMonsterBaseStats(uint64)","d29d44ee":"_transferOwnership(address)","d29d503c":"addHolder(address,uint256,uint8,uint256)","d29d91ca":"getNarcoHomeLocation(uint256)","d29db7e4":"_processPurchase(address,uint256)","d29dd76d":"whitelistAdmins(address)","d29e2746":"place_buy_order(uint16,string,address,string,string)","d29e319c":"TOKEN_ICO3_LIMIT()","d29e6803":"secretHash()","d29ebd2e":"privateOfferingSupply()","d29f541d":"getPosition(uint256,address)","d2a09b96":"_updateReferrals(uint256,uint256)","d2a17959":"transferTokensFromVault(address,uint256)","d2a1e045":"FuBi()","d2a2feaa":"STRI()","d2a32c12":"bonus_amount()","d2a3899c":"payOrder(uint256,uint256,uint256)","d2a3b190":"SAToken()","d2a569c3":"startAirdrop()","d2a6629c":"playerActiveGames(address,uint256)","d2a6cf5e":"internalTrade(uint256,uint256,uint256,uint256,uint256,uint256,bool,address,address,bytes32)","d2a718ec":"isRefundLocked()","d2a753e4":"cancelBid(address,bytes32,int32,bool)","d2a764d1":"contributeInBNB()","d2a79e57":"tixPresaleDeposit()","d2a7d38a":"MIN_FUNDING_AMOUNT()","d2a7ea17":"setSelfAsPureShareholder(string)","d2a86985":"_ORAK()","d2a9b6ed":"getVotingFor(address)","d2aa24b6":"getControlInfoMaxPerBlockImbalanceList()","d2ab6be1":"start(uint8)","d2ab78b7":"getGameName(address)","d2ac0f59":"setHeroContract(address)","d2ac1c8e":"addApprovedAddress(address)","d2ac2d8a":"heldOf(address)","d2acbc0d":"card_metal_minamount()","d2accad3":"_changeText(uint256,string)","d2ace0cc":"_newVoting(bytes,string)","d2ae5f65":"earlyInvestorTokenRaised()","d2ae8eaa":"getGenesForSale()","d2aeb90f":"removePoweruser(address)","d2aee00b":"getCanAttackMonsterIds()","d2afa8c1":"isERC721()","d2afeeeb":"createBoard(bytes32,bytes32,uint256,uint256,uint256)","d2b001fb":"PREMIUM_TYPE_COUNT()","d2b022d5":"pendingWithdrawalsBalance()","d2b0d554":"getDisclaimer()","d2b10b75":"AirDropContract(address,address)","d2b1569e":"redeemRewardedAxies(address,uint256)","d2b3fe93":"updateRoundLimits(uint256)","d2b420ce":"isOfferSorted(uint256)","d2b4a460":"getJackpotFee(uint256)","d2b50743":"DOW_FRI()","d2b5c227":"AsideTokensHaveBeenAllocated(address,uint256)","d2b5d9e1":"refferalFee()","d2b73cea":"getActiveContractAddress(uint256)","d2b74f70":"CryptoFamousStorage()","d2b75b70":"_upsert(address,uint256,bool,bool,uint256)","d2b77264":"pollMap(bytes32)","d2b78529":"getContractNetBalance()","d2b7d957":"executeDelegatecall(address,uint256,bytes)","d2b8035a":"draw(uint256,uint256)","d2b8915c":"offerPosition(uint256,uint32,uint256)","d2b8b867":"doPayment(uint256)","d2b93303":"EternalToken()","d2b962f2":"createLiability(bytes,bytes)","d2b9da84":"Office(string,string,uint256)","d2ba499c":"IS_SIGNATURER(address)","d2ba5537":"numberOfClaimants()","d2ba8073":"minbid()","d2bafbe6":"setMaxCoordinate(uint256)","d2bb6fd5":"timeTier2()","d2bbda29":"registerName(string,address,string)","d2bbf6df":"getIndexId(address,bytes32)","d2bd3dd9":"YAP()","d2bec28c":"startCraftingAuction(uint256,uint256,uint256,uint256)","d2bf779f":"getKingdomInformations(string)","d2bfd24b":"setgamecard(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d2c03c01":"auto_withdraw(address)","d2c0e032":"set(address,string,string)","d2c18e0b":"api()","d2c18f59":"emergencyManager()","d2c33eb2":"claimRaisedWei(address,address)","d2c37621":"getUserLocalTokenBalance(address)","d2c3a1ec":"updateStageInfo(uint256,uint256)","d2c411d3":"closeBatch(uint256)","d2c49b7f":"getTimeUntilEnd(uint256)","d2c51c72":"withhold()","d2c5c368":"testFailRestartNotUpdatable()","d2c5ce31":"dateTimeAddr()","d2c73093":"createTokens(uint256,address)","d2c731d9":"TermsOfUse()","d2c877f8":"setDollarRate(uint256)","d2c87b02":"MB(address,address,address,address,address)","d2c936ff":"currentBonusLevel()","d2c94ec5":"C4FToken()","d2ca159a":"listUnconferences()","d2ca2115":"periodLength()","d2cad255":"BankDeposit(address,uint256)","d2cad6da":"bonusCalculate(uint256)","d2caeea8":"aomucoin()","d2cafe2d":"allAssetsOf(address)","d2cbcea6":"getSSP(address)","d2cc7015":"placeMove(uint8)","d2cc718f":"accumulatedInput()","d2cced90":"getAnnualInterest(uint256)","d2cd9673":"totalMining()","d2cd96bd":"changeQuorum(uint256)","d2cdf580":"setKYCpassed(address)","d2ce89e5":"logoURL()","d2cf7704":"BanAttempt(address,address,uint256)","d2cfe5a7":"posscoin()","d2d0ded1":"referrerBonusPercent()","d2d0e066":"deposit(address,uint256,uint16)","d2d10162":"initialize(address,address,uint256,uint256,address,address)","d2d10be8":"TGEToken(string,string)","d2d153a4":"Grand_Solar_Minimum()","d2d26edc":"Cloudcoin()","d2d3b8e0":"multiAllowance(address,address[],address[])","d2d42074":"getExchangeContractAddress()","d2d44955":"Cindicator()","d2d4bd72":"getCrossRate(bytes,bytes)","d2d5a55c":"ownerValidator()","d2d7231f":"calculateReward(uint256)","d2d791c0":"payBatch(bytes32[],uint256[],address,address,bytes)","d2d85cf2":"rootsMatch(address,address)","d2d8cb67":"TOKEN_PRICE()","d2d8fd0a":"settleFrom(address,address,uint256)","d2d92f24":"getWhitelistEntry(uint256)","d2d93f90":"ethRate()","d2d976da":"webpage()","d2d97d9f":"coldStorage()","d2d9b8c6":"setCompte_24(string)","d2d9d44e":"awardTitanium(address,address,address)","d2da29c7":"hostAddress()","d2db29af":"claimFutureUse()","d2dc0869":"add(string,uint256,string,string,address)","d2dcd933":"totalSupplyAtTime(uint256)","d2dd8d2a":"authorized_updateCardClaimerAddress(uint256,address)","d2dd9f79":"transferVault(address)","d2ddf1ae":"TradingForest(address)","d2de6cca":"getArrayValueByKey(string,string)","d2de6ec5":"distribute(uint256,uint256,uint256)","d2de9989":"stopPreIoc()","d2df254c":"weiToUSD(uint256)","d2df9222":"recoverStockKey(bytes12)","d2df9cc1":"startTimeSaleNoBonus()","d2e013d9":"Execution(string,string,string,string,string,string)","d2e01b2f":"getLockPosition(address)","d2e0637b":"createContractTot(string)","d2e10879":"getReceiptRoot(uint256)","d2e1d201":"setstring(string,string)","d2e2acf5":"_proxyTransferEvent(uint256,uint256,uint256,bytes32)","d2e3646c":"optionsConverter()","d2e474b3":"PROMOTORS_POOL()","d2e73d78":"withdrawDepositorFunds(address,uint256)","d2e78ace":"DestructionContract()","d2e80494":"setConversionRate(uint256)","d2e81bf9":"initPlayer(address)","d2e8309e":"test_messageSenderEq()","d2e90d0f":"startTimeICO()","d2e91b85":"getset()","d2e9236b":"sendEthValue(address,bytes,uint256)","d2e9953a":"setAdmin(address,address,bool)","d2ea7f7f":"CreditDAOfund(address)","d2eb6483":"EVMDB()","d2ecb4f9":"initialAllocation()","d2ed2d30":"setWorst(uint8)","d2eda057":"checkBool(bool[])","d2eeead7":"PatrickTestCoin()","d2ef0669":"denyAccess(address,address)","d2ef3b0d":"getCreateShareTokenMarketValue()","d2ef7398":"challenge()","d2efeef3":"TradableTokens()","d2f03bf6":"registerWithETH(address)","d2f0be99":"getRefund(uint256)","d2f1f189":"ICOAddress()","d2f1f712":"getVoters(uint128)","d2f27cf4":"setCelebrityPrice(uint256,uint256)","d2f28141":"calculateBonus(uint256,address)","d2f2d549":"CLPTestNetToken()","d2f32d94":"get_card()","d2f343c7":"timeWindow()","d2f3b963":"dateICOEnded()","d2f3ea43":"getPurchaseAmount(uint256)","d2f40cab":"getFunctioName()","d2f4a50a":"wallets()","d2f65fbc":"setMockBytes32(bytes4,bytes32)","d2f6f67d":"mintingContract()","d2f7265a":"exchange()","d2f7c5db":"GetDetail(address)","d2f7f377":"testRegisterNickWalletEth()","d2f80c15":"addDivisionJurisdiction(bytes32[],bool[])","d2f82026":"quickSortBids()","d2f8dd45":"Owned(address)","d2fa1f8b":"proxyPurchases(bytes32)","d2fa635e":"setMaxGasPrice(uint256)","d2fa9a67":"RESERVED_TOKENS_FOR_FURTHER_TECH_DEVELOPMENT()","d2fabaec":"VITToken()","d2faf216":"withdrawBuyer(address[2],uint256[7],uint8,bytes32[2])","d2fafb19":"setAmount(address,uint256)","d2fb32c2":"getGen0ObjInfo(uint64)","d2fb8787":"recordExists(bytes)","d2fbbc51":"ADVISORS_TOKENS_PERCENT()","d2fbd0ed":"payOrder(uint256,uint256)","d2ff5d4f":"allWETHbalances(address,address[])","d2ff8fd8":"ICOtokensSold()","d2ffca2d":"currentTotalExcess()","d2ffd541":"mintAdminCancel(address,address)","d30047bc":"firstPreSaleEndDate()","d3006dea":"ValueFinalized(bytes8)","d300746f":"pullTokensBack()","d300a034":"oraclize_query(string,bytes[])","d300a968":"isSecurityToken(address)","d3017193":"addUser(address,uint256)","d301c85f":"ownerAllocateTokensForList(address[],uint256[],uint256[])","d30272b8":"signAgency(uint256)","d302af4a":"isAirdropContract()","d302b0dc":"unFreeze(uint256)","d303b750":"Coupon(address,uint256,uint256)","d303e3b2":"checkMidiNoteValue(uint8)","d3050195":"_ownsRobot(address,uint256)","d305399d":"addToWhitelist(address,uint16,uint256)","d305577e":"GSSingle(uint256)","d305671a":"Dario(uint256,int256,uint256)","d3057859":"trade(uint8[2],bytes32[4],uint256[8],address[6])","d30592c6":"_trim(uint256[],uint256)","d3059c91":"maxTokensForCommand()","d305a45d":"requestDivident()","d3062b24":"getIndicesWithClaimableTokensForBuyers(address,address,address,uint256)","d3066879":"withdrawVestings(address)","d306967b":"TokenCreated(uint256,string,uint256,address)","d30792d4":"bonusesMapPos(bytes32)","d30796a2":"OwnerTransfer(address,address,uint256)","d307cd53":"_b4(string,uint256)","d3087ff5":"startOpenPpTime()","d3088b52":"transferWithMessageAndRequestAddress(address,uint256,address,bytes)","d3088b5f":"CesaireToken()","d30895e4":"player1()","d308cbe2":"withdrawMoneyByAdmin(uint256,address)","d30920c1":"contractTotalInvested()","d3098883":"memberFee()","d30a119b":"calculateBonusTokens(uint256)","d30a1325":"checkProposalExistence(string)","d30a512e":"betOnColumnOrDozen(bool,bool,bool)","d30a969a":"RemiCoin(uint256,string,string,uint8)","d30b5386":"payFee(bytes32,uint256,address)","d30bbde8":"checkWorkingInfra(uint256,uint256)","d30beffa":"unholdGold(address,uint256)","d30bf323":"setTaskRewardPaid(bytes32)","d30cad77":"nextRoundDuration()","d30e2004":"setRegionUrl(uint256,uint8[128])","d30e268b":"saleTokensPerUnit()","d30e9302":"distributionTokens()","d30f945a":"setNewManager(address)","d30fa946":"fulfillDeliverable(bytes32)","d30fbd0d":"safeSubtract(uint256,uint256)","d30fc8a1":"FundsAdded(uint256)","d3100538":"YOLOCASH()","d3109af3":"drainWei()","d310bc32":"releaseName(string)","d3111d3f":"_getLockedAmount(address,address)","d3115524":"_bptc(uint256,uint256,uint256,uint256,address)","d3118a5a":"addDoc(string,string)","d3119dc0":"minEtherForAccounts()","d311b44d":"everyBidFee()","d312846b":"uniqueContributors()","d313f235":"terminateTokenSale()","d3140a65":"createOpenLockAndDraw(address,address,uint256)","d3146a46":"Claim_TRAC_9600()","d316e912":"deleteGrantee(address)","d3183864":"calculateMultiplierAfterBurn(address,uint256)","d3195184":"_canNowTransfer()","d3195c82":"refundTransactionAfterDisputeFee(uint256)","d319ab75":"getProposalContractor(uint16,uint16)","d31a8be1":"setCentsPerEther(uint256)","d31af484":"updateTokenUri(uint256,string)","d31b3320":"getUserTokenInfo(address)","d31c153c":"AllocateAgentChanged(address,bool)","d31cfed6":"initialMonthWithdraw(uint256)","d31d7b0a":"MoonCatRescue()","d31efc7e":"createHero(string,uint16,uint16,uint16)","d31f0f38":"RamenCoin()","d31fdffd":"setHammer(address)","d31feea1":"OpenLongevity()","d31ff13c":"changeContractOwner(address,string)","d320ac9a":"DonationDeposited4Matching(address,uint256)","d321fe29":"getAmount()","d3220144":"newPriceDecreaseRate(uint256,uint256)","d3226425":"DuMangoCoin()","d324191c":"Codexstandard()","d3251aa2":"setHelpCoinAddress(address)","d3257034":"AgriChainCultivation()","d3258b9e":"DevDorothyCoin()","d325c2e8":"revertPurchase(address)","d3261592":"dripRate()","d32632fd":"migrationGate()","d327523a":"getTotalNumberOfBoards()","d329ce51":"developer_cycle(address,uint256)","d32a7ee0":"updateLand(uint256,uint256,uint256,uint256)","d32a9cd9":"settle(bytes32,bytes32)","d32ab21d":"voteFor(uint8,uint8,uint8)","d32aba42":"getPresaleBonusAmount(uint256)","d32b607c":"sumElements(uint32[])","d32b8575":"_startAuction(uint256)","d32c943a":"resolveChallenge(bytes32)","d32cb0fe":"exercise()","d32cbabb":"Ast()","d32e245b":"getContributorRemainingCap(uint256)","d32e29de":"setApproveFee(uint256)","d32e48c0":"LockOpen(address)","d32ef1e5":"RhodonToken(address)","d3309a7e":"productTribe(string)","d3313802":"EtheraffleDisbursal(address)","d331aeb3":"getAllFiatTransactionsCount()","d331b696":"computeNameFuzzyHashET(string)","d33219b4":"timelock()","d333d7cf":"destroyShares(address,uint256)","d333ec79":"changeServiceAccount(address)","d334d75b":"expireLoan()","d3363dd7":"icoThresholdBonus3()","d3364687":"PRESALE_START()","d33656e0":"primaryOperator()","d336ac80":"getPersonInfo(uint256)","d337616e":"resetLottery()","d337b9c9":"myWeapons()","d337ce86":"addProject(uint256,string,address,uint256,uint256)","d337e72e":"EtherToken2()","d3382a55":"whitelistRate()","d3392545":"spawnItem(uint256,uint256,address)","d33abd33":"t_2nd_StageEnd()","d33b79d9":"addBallotAndVoterNoPk(bytes32)","d33c0a4d":"getMyCells()","d33c449f":"gesamtGuthaben()","d33ca02b":"externalCall(address,uint256,uint256,bytes)","d33cf9fa":"MultiSigMint(address)","d33d1aac":"getWeeklyTokensForWebsitesAmount()","d33d5f3e":"CLOSE_TIME()","d33d6732":"totalSupplyMintTransfer()","d33d6f65":"Delivery(address,uint256,uint256,int256,int256,int256,int256,address)","d33e1a48":"genRNGContractAddress()","d33ecfee":"setResume()","d3400a1d":"etherRatioForOwner()","d34047b6":"mint(address,string,bytes32)","d340ab41":"addInvestorBonusInTokens(address,uint256)","d340dd8a":"getCCH_edit_13()","d340e8f8":"setDistributionPercentage(uint256,uint256,uint256)","d341281a":"ALH()","d3418fb7":"capOfTotalSupply()","d3419bf3":"prices()","d3419d4e":"TokenAiContribution(address,address,address,address,address,address,address)","d341e052":"JoyGameDemo(address,address)","d342275e":"setProgress(uint256)","d342c598":"Bou(address)","d342e4f4":"runInOneDay()","d3437bd3":"ProofOfStableClone()","d3437fe0":"assertFact(uint256,bytes)","d3446856":"tournamentPaused()","d344e01b":"stopTransferToken()","d3451379":"updatePower(uint256)","d3456121":"amountInContract()","d3462259":"howManyTokens(uint256,address)","d346feb8":"changeCertBot(address)","d3471035":"KarmaToken()","d347c205":"transferableTokens(address,uint64)","d347de03":"setPlayerGeneralCd(uint64,uint32)","d3481bd0":"buyBlock(uint256,uint256)","d3484c1c":"TOKEN_SUPPLY_MAINSALE_LIMIT()","d348b409":"calculatePrice()","d348ee9a":"correctResult(int16)","d349f8b4":"MobileGoToken()","d34a280a":"setPreAmounts(uint256,uint256)","d34a412c":"switchRankings(uint16,uint8,uint64,uint64,uint64,uint64,uint64,uint64)","d34acd12":"functionCalls(uint256)","d34b1537":"minFundingReached()","d34b1aef":"returnUnsoldSafeLarge()","d34b2451":"BurritoPurchased(uint256,address,uint256)","d34b6cd3":"BBDToken(uint256,uint256,uint256,uint256)","d34b7e25":"checkWin(uint256[])","d34bb772":"EndsAtChanged(uint256)","d34be5be":"startVotingPrepare(address)","d34cc179":"updateDaoContract(address,string)","d34d8e43":"oracleItQuery(string,string,uint256,uint256)","d34dd1f0":"safeWithdrawal(address,uint256)","d34e4b20":"getWinnerHistory(uint256)","d34ed095":"getSoilTempException(bytes32)","d35066e6":"rsrvToSale(uint256)","d3511f82":"getRoundBetNumber(uint256,uint256,uint256)","d3516b7e":"setVote(uint256,bool)","d3525adf":"setMetadata(bytes32,bytes32)","d35262ef":"getInt256Min()","d3528d9b":"createBetAcrossDeposit(bytes16,bytes16,bytes16,bytes16,uint256,uint256)","d352a862":"ownerOfTwitterId(uint256)","d3535452":"buyPosition(address)","d353a1cb":"finish(uint256)","d3554dd5":"NieShichaoToken()","d35590c2":"sponsors(address)","d355f139":"requestBatchLoans(uint256)","d3565934":"YANG()","d3568560":"calcDates(uint256,uint256)","d356a28b":"addSERAPHIM(address)","d356a879":"removeAddressByIndex(uint256)","d357aa15":"raise2ndAppeal()","d357f0ce":"_checkPixelLeft(uint256)","d357ff87":"sweepRoundsActive(bool)","d359b0c7":"XeniaToken()","d359be70":"distributeExternal(uint256)","d359f82c":"updateExpiry(uint256)","d35ada32":"addParticipant(address,address)","d35b9d83":"codeAt(address)","d35bcf88":"addCET4(uint32,uint64,uint64,uint64,uint16,uint16,uint8,uint8,uint8)","d35c7372":"theCeiling(uint256,uint256)","d35c9a07":"withdrawProfit(address,uint256)","d35cf913":"mint_tokens(address,uint256)","d35d031e":"SellerChanged(address,address)","d35d90ba":"MPKToken()","d35e29d7":"mint(address,uint32)","d35e48e6":"PLBToken()","d35e6537":"IONIATOKEN()","d35e656b":"userNameTaken(string)","d35f4a99":"mint(int256,address,uint256)","d35fbbfb":"range(uint256,uint256,uint256)","d3604bc9":"yesContract()","d3614854":"getAdministratorETH()","d3617e7a":"MyToken(address)","d361ab64":"sendFreeTokens(address,uint256)","d3626d09":"getyestoday()","d3631e00":"refundUnconfirmed()","d3637c27":"icoArray(uint256)","d3650fb8":"approvers(uint256)","d365a08e":"masterAddress()","d366f83b":"allSidesPledgedAmount()","d366fbab":"startLottery(bytes32,uint256,uint256,uint256,uint256,bool)","d3670cb4":"BitcoinBlackToken()","d3671166":"PurchaseSuccessful(address,uint256)","d367a398":"NVTAddr()","d3695161":"deleteUser(string)","d369a744":"CCtestToken(address)","d36a1fa8":"ALKACOIN()","d36a35c9":"strikersBaseContract()","d36a8026":"Phoenix()","d36ae26b":"commBallotPriceWei()","d36afad5":"hasKey(address)","d36b96a9":"controllerFailed()","d36b9e64":"contributorsPeriodsElapsed()","d36bed21":"getGameAddressById(uint256)","d36bf8a1":"increaseWithdrawalChunk()","d36d9b19":"request_callback(uint8)","d36dbc0c":"addWineryOperation(string,string,string,uint256,uint16,string)","d36e0f39":"EIP20Token()","d36e9ac3":"burnUnused()","d36e9b2a":"RentalAgreement()","d36ef2cc":"PolicyPalNetworkCrowdsale(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d36f0e9c":"etherForCharity()","d36f5c87":"stitch(int256,int256,bool)","d36f69eb":"getEthInCents()","d3701ff2":"TongToken()","d3707129":"_removeShareFromLastOwner(address,uint256,uint256)","d3708487":"setInfoAboveSpot(uint256)","d37194f5":"getTotalDepositsAmountLeft()","d371d551":"addAddressToCappedAddresses(address)","d372e3a0":"isCrydrViewAddress(address)","d3732642":"FastRealisticPyramid()","d373507b":"setAllowSell(bool)","d37360a0":"efw()","d3749a15":"user_contract()","d375b921":"orderUsable(address[8],uint256[6])","d3775371":"has_reading()","d377bc5f":"lockedMoney(bytes16)","d377dedd":"currentNiceGuy()","d378f4e0":"NOOR()","d37990ce":"setGenerationSeasonController(uint256)","d379be23":"claimer()","d37a9bb0":"restrictTransfers()","d37aff82":"changeStatus(uint8,bytes32)","d37b34d7":"blacklistAccount(address)","d37b8a96":"deploy(string,string,uint8,string,address)","d37cd1d9":"TalentCoin(address,uint256,string,uint256,string,uint256)","d37d753f":"spin(address,uint256)","d37fe6cb":"balanceOfWithoutUpdate(address)","d3807fa5":"NameChange(string)","d380e036":"marketDefaultFeeLow()","d3811c0f":"setMetadataBase(string)","d38159b8":"testPass()","d38185d3":"_buyXid(uint256,uint256,bytes32)","d381ba7c":"setRootUser(address,bool)","d381c67e":"isRentAuction()","d383f646":"issue()","d384077d":"_closeProvider(address)","d384af87":"checkpopa()","d384d177":"haveCommonPrefixUntilZero(bytes32,bytes32)","d385293d":"confirmTokenTransferToBooking(bytes32,string,bytes32,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d38537cf":"TimerAuction(string,uint256)","d385fac9":"bwin()","d38609f9":"unhaltFX()","d386130c":"Encrypt(uint256)","d38685ee":"unlockGlobalToken()","d3872d57":"getLandRevenue(uint256)","d387978d":"cancelled(address,bytes32)","d387c4c1":"getOwnedTokens(address,address)","d3884c3f":"removeService(bytes32)","d38875ec":"addDeal(uint256,uint256,string,string,uint256,string,bytes32)","d388e416":"getAccountReferalsStats(address)","d3890a43":"DaoCasinoToken(uint256,uint256,uint256,address)","d3895c91":"changeConversionRate(uint256)","d38ac5ac":"WayBackToken()","d38bd9f0":"newTokenOwner()","d38bee56":"PlaceSell(address,address,uint256,uint256,uint256)","d38c3253":"ownerSelfDestruct()","d38c4cca":"removeFromTokenTransferDisallowedAddresses(address)","d38cba4b":"paymentRewardTokensPriority(uint256,uint256)","d38d0f28":"updateSplit(uint256)","d38e5ab7":"TransferDisable()","d38eb9d3":"escrowFrom(address,uint256)","d38f3b68":"getMedications()","d38fe43f":"setMembershipContract(address)","d390021d":"getLastTimeUpdated()","d390e819":"disableDonationContract()","d391014b":"ROLE_ADMIN()","d391a970":"removeFromOwnedTokens(address,uint256)","d391ce7a":"CrowdsaleContract()","d3927c15":"reimburse()","d392c5a2":"getNumOptionChains()","d3933154":"MYL(uint256,string,string)","d393c871":"register(string,address,uint256)","d393cde5":"wholeLineWrong()","d393f628":"changeDemurringFeeOwner(address)","d3943976":"getSGCUsers(address)","d3943ab4":"setIntArr(uint256,uint256)","d3943c83":"numberOfWithdrawls()","d3946ea4":"manuallyEndAuction()","d394a12e":"secondPresaleStart()","d39502bb":"AIBITTECH()","d3953822":"getThisAddress()","d395ee0f":"setQuickBuyPath(address[])","d3964ca1":"operationsEthWallet()","d397e9e4":"getDisputeCrowdsourcer()","d397f861":"TRAC_Tokens_left()","d3980d87":"ReferenceToken(string,string,uint256,address[],address)","d398806d":"updateMinJump(uint256)","d399354b":"KYC_USD_LMT()","d39aa15c":"_getTransferFeeAmount(address,address,uint256)","d39b0cbb":"Start10()","d39b1d48":"setDistributeAmount(uint256)","d39b7e4f":"setBPAddress(address)","d39bbf06":"MAX_INVESTOR()","d39c7880":"setAddressOfERC20Token(address)","d39c9afd":"OwnerKill()","d39cb111":"getShortId(bytes32)","d39cce1c":"calculateSaleReturn(uint256,uint256,uint16,uint256)","d39ce83a":"paymentMixed(uint256,uint256,uint256)","d39cee11":"benchTransfer(address[],uint256[])","d39d8fce":"presaleStart_6_December()","d39de6e9":"getAuthorizedAddresses()","d39e4607":"LogIcoCompleted()","d39eb301":"getStatus(uint8,uint8)","d39ebe2c":"setup(uint8,uint8)","d39ec1fe":"currentTethers(address,uint256)","d39f4149":"fxpMul(uint256,uint256,uint256)","d39f532d":"SafeGift(uint256,string,string)","d3a057c8":"isConfigured()","d3a05872":"AutoFareCalculator()","d3a0d0ab":"RTokenBase(uint256,string,string,uint8,bool)","d3a2d050":"addData(uint256[])","d3a3086e":"ActorCoin()","d3a39686":"getAddress(bytes32,bytes32)","d3a516d3":"viewSuperOwner()","d3a56ec3":"processRequest(uint256,uint256,uint256)","d3a5768b":"RoundWinner(address,uint256)","d3a57b9f":"showRdWonNum(uint256)","d3a5dcb0":"EQUITRADER()","d3a60bd5":"Exchange(address,uint256,uint256,uint256,address,address)","d3a61150":"setDatabaseDownloadUrl(string)","d3a699cd":"PePaDe()","d3a6be66":"donotXXXDappToken()","d3a6c234":"benWallet()","d3a70dba":"getReaderId(bytes32)","d3a73d12":"modifyLevelCaps(uint256[])","d3a85394":"currentPeriodTokenCollected()","d3a86386":"minimumBid()","d3a871e9":"REELToken()","d3a9187e":"mintTemplate(uint256,int256,uint256,uint256,uint256,string)","d3a99388":"JcashUpgradeableToken(address)","d3aa22c7":"transferTLA(string,address)","d3aa831f":"testOwnedTryAuth()","d3aceae2":"_balance(address)","d3ae2814":"LogTokensFrozen(bool)","d3aefeeb":"pauseUnpauseICO()","d3af4dc7":"processRequest(uint256,uint256)","d3b0d9eb":"refundFunds(address)","d3b15dd6":"Millet()","d3b19ee1":"dislike_trackable(address)","d3b234fc":"getAttoTokensToBeFounder()","d3b246d0":"upgradeEvilMorty()","d3b25696":"tradeIntentOf()","d3b302e7":"applyForMembership(string)","d3b3809c":"EscrowGoods(address,uint256,uint256,uint256,uint16,uint256)","d3b3eccb":"isARTDistributed()","d3b4be21":"Obtener_Reputacion(address)","d3b5305c":"setAgriChainDistribution(address)","d3b5695c":"setOraclizeCallbackGasLimit(uint256)","d3b58024":"RepeatCustomerToken()","d3b5c016":"submitSolution(uint256,string)","d3b5dc3b":"precision()","d3b6486a":"setLeastFund(uint256)","d3b6664a":"purchaseTrophy(uint256)","d3b6ac97":"defenceElementBySubtypeIndex(uint256)","d3b6fbc2":"MOVIECREDITS()","d3b7576c":"update(uint256,bytes32)","d3b7bcf1":"preAllocation()","d3b7bfb4":"fundingAddress()","d3b7ef5e":"SCE(uint256,string,string)","d3ba95ce":"throwsWhenFinalizingIfNotMultisig()","d3bac6e3":"coordinatorAccountCount()","d3bbb2c8":"b13ToBytes(bytes13)","d3bc89b7":"GetGuestTokenNo()","d3bc9aca":"addCourse(uint256,string,uint256,uint256,string,string)","d3bca884":"addBalance(address,address,uint256)","d3bced2c":"withdrawBotFee(uint256)","d3bd5a4b":"resetUserPromoBonus(address)","d3bd6e23":"newUpdater(address,address)","d3bd7713":"setCapAtDuration(uint256)","d3bdbd8f":"editMilestone(uint256,uint256,uint256,uint256,uint256,string)","d3bdd242":"isMovingEnable()","d3bf0ce6":"AAP()","d3bfe76a":"revokeApproval(address,address)","d3c0715b":"vote(uint256,bool,string)","d3c13c25":"GCOXAPLToken(string,string,uint8,uint256)","d3c18378":"getPlayersBalance(address)","d3c1c838":"batchTransfer(address[])","d3c33c52":"ipc()","d3c4055d":"VITE()","d3c41dae":"FindCourseBaseOnIdStudent(uint256)","d3c564ad":"tokenZLT()","d3c567c1":"cancelVoteForCandidateByStage(address,uint256,uint256)","d3c5ea45":"ICO_PHASE3_PERIOD()","d3c62676":"MiamiToken()","d3c65384":"ContributedAmount()","d3c65737":"sumICOStage4USD()","d3c683e5":"LOG_FailedDraw(address,uint256)","d3c6a6d6":"getWitnessCount()","d3c764f2":"buyPixelBlock(uint256,uint256,uint256,bytes32)","d3c78097":"startDistribuion()","d3c7adf9":"JimatCoin()","d3c7c2c7":"getSupportedTokens()","d3c7ca2f":"Allinone()","d3c8dd69":"Parent()","d3c8e99e":"_shareDiscountPrice(uint256,address)","d3c9ad17":"REBALANCE()","d3c9cc26":"getTokens(uint256)","d3caee1b":"currencyToToken(address,bytes16,uint256,bytes)","d3cc8d1c":"claimTokensFromSeveralAuctionsAsBuyer(address[],address[],uint256[],address)","d3cce1d2":"setOldContractData(address)","d3cd6052":"getProposalCount(bytes32)","d3cdb97b":"partIndexToOwner(uint256)","d3cde1a5":"updateReferral(address,uint256)","d3cde1c0":"getIndexAndCheckIfAllowedToPublish(uint256,uint256)","d3cdf6c5":"calculateTokenAmount(uint256,uint8)","d3ce71df":"buyCozy(uint256,uint256,bool,address)","d3ce77fe":"destroyTokens(address,uint256)","d3cea787":"setContractServerBlackWhiteListType(string,uint256)","d3cecc4d":"checkVestingCondition(address)","d3cedfee":"sspCount()","d3d10d87":"OwnerChanged(bytes32,address)","d3d18836":"publicLock(address,uint256)","d3d19965":"deleteCroupier(address)","d3d2172e":"total_reward()","d3d37a31":"setSaleCap(uint256)","d3d3b01c":"ToRent(uint256,uint256,uint256,address)","d3d3d412":"getGateAddress(address)","d3d43efa":"returnLoanStatus(uint256)","d3d44e8b":"getBlockCount(uint256,uint256,bytes32)","d3d54129":"setPCAddress(address)","d3d55493":"calculateRefundAmount(uint256,uint256)","d3d6a975":"testThrowsTransferNotEnabled()","d3d70c3c":"setPrivelegedWallet(address)","d3d77f98":"setCoeff(uint8,uint128,uint8,bytes32,bytes32)","d3d864f5":"isFundingOpen()","d3d8aa55":"IG()","d3d8acf8":"checkMyVestingPeriod()","d3d9e741":"SuperCoin()","d3da927f":"isRegistered(address,address)","d3daa8aa":"EtheremonPayment(address,address,address,address,address)","d3db2371":"DHCSToken()","d3dbc861":"Initiate()","d3dc9794":"pendingTxs()","d3dcc175":"devTeam()","d3dccb03":"ERC20Token(string,string,uint8,uint256,address,uint256,address[],uint256[])","d3dcd55a":"calcTokensFromEth(uint256)","d3dd9a18":"addManyAuthorizeToWhitelist(address[])","d3ddebce":"STATE_BET_DISABLED()","d3de5834":"disableFeesForUser(address,uint256)","d3deedfd":"MANHATTANPROXY2NDST()","d3df2d01":"maxUsdFundingReached()","d3e00f4b":"stampBirth(uint256,address)","d3e0996a":"checkProductGenuine(address,address,uint256)","d3e141e0":"left5(uint256)","d3e15747":"setLock(uint256)","d3e212c5":"bidExchange(uint256,uint256)","d3e242c2":"_confirmTransaction(uint256,address)","d3e2846a":"LINKFund()","d3e3623b":"earlyBackersAmountLeft()","d3e65414":"contributedToken(address)","d3e65b6c":"buyTicketByOther(uint256,bytes32,bytes32,bytes32)","d3e66a9e":"startCompetition()","d3e6dda7":"removeFound(address)","d3e6f49f":"isReadyToBreed(uint256)","d3e73312":"allocatedFounders()","d3e7d44d":"tokensBurnedTotal()","d3e82be8":"getMinPrivateSaleBuy()","d3e837cb":"setChecksOn(bool)","d3e848f1":"systemAddress()","d3e89483":"policies(uint256)","d3e8b207":"distributeWithLockup(address,uint256,uint256,uint256)","d3e91a98":"destroyAllTokens(address)","d3ea3322":"testBuildTokenSystemCost()","d3eb11d6":"payoutsWallet()","d3eb667e":"BigBoobsToken()","d3eb6f61":"isGoalReached()","d3ebd2dc":"transferFron(address,address,uint256)","d3ebf454":"LotteryRoundDraw(address,bytes4)","d3ecb95f":"wc()","d3ed0ea2":"setAuthor(uint256,string)","d3edcb0a":"_wholeToken(address)","d3edcb5b":"getCreditorAddresses()","d3ee86e7":"mmax(uint128,uint128)","d3eee5ad":"lockForDays(uint256,uint256)","d3efa856":"CreditBIT()","d3efbd7f":"freezeContract(bool,uint256,uint8[],bytes32[],bytes32[])","d3f01fbd":"calcToken()","d3f045d2":"Player(address,uint32,uint32,uint32,uint32,uint256,uint256)","d3f06def":"uploadFile(uint256,uint256,bytes32,bytes32[],bytes32[],uint256)","d3f16925":"setDevLimit(uint256)","d3f189bd":"COMMUNITY_ADDRESS()","d3f1a78c":"updateDelayTime(uint256)","d3f1fbd7":"updateLastMiningTime(uint256)","d3f233af":"burnOf(address,uint256)","d3f297d6":"claimLiquidityReward()","d3f2b996":"PTH(uint256,string,uint8,string)","d3f2e7cf":"runningRound()","d3f3bea2":"distributionRealized()","d3f40a02":"denyAccess(uint256,uint256)","d3f4fcd9":"claimInitialAllotment(string,string)","d3f60667":"trackBuyBack(uint256,uint256)","d3f60d9c":"startTimeRound2()","d3f6a157":"setWallets(address,address)","d3f6be9f":"LogDeposit(address)","d3f6c328":"AMOCoin(address)","d3f6dc52":"oracleItQuery(string,string,string)","d3f71ecc":"checkIsOnSale(uint256)","d3f73bd4":"getOwnerCEO()","d3f8868b":"getFrequency(uint256)","d3f8cc95":"exhaustAfterFusion(uint256,uint256,uint256)","d3f92288":"WhiteList()","d3f9ba69":"processOneCombat(uint32,uint32)","d3f9fc33":"ownerRecoverTokens(address,uint256)","d3faaeca":"softCapInTokens()","d3fbf39d":"mintNFTNotForSale(uint256,string)","d3fc310a":"_addExtraReceiver(address)","d3fc9864":"mint(address,uint256,string)","d3fd311e":"trading_deactivated()","d3fd9eba":"transferAuction(address,address,uint256)","d3fe1ae1":"updateMember(address,uint256,uint256,uint256)","d3ff09a5":"setTotalTaskEscrow(uint256)","d40027ec":"lockoutPeriod()","d401defe":"getBasicInfo(address)","d40224ec":"triggerSale(bool)","d402be57":"calcMode()","d402f87c":"setTotalProfit(address,uint256)","d4030114":"tableSize()","d40394be":"batchAddWhitelistedTransfer(address[])","d404d6c2":"pushEther()","d404ea23":"hashKey()","d405a069":"grantInitialAllocations()","d405d6f4":"Chally()","d40619b8":"getUsersScannersIds()","d4065763":"returnRemainingMoney()","d406e403":"test_startBlock()","d407d212":"claimJ()","d408746a":"GetContractAddr()","d4088e33":"setPrice(uint256,uint256,uint64)","d4092dd2":"getPOOL_edit_29()","d409a12c":"Kcoin()","d409ddda":"EtherizationUtils()","d40a71fb":"step1()","d40b9d9a":"OwnerHeartbeated(address)","d40c0a58":"saveTeamSpent(address,uint256)","d40c3084":"fundValues()","d40d4d76":"etherToSendBankRoll()","d40dc870":"MAX_AMOUNT()","d40e35da":"Interest_Rate()","d40e985d":"decompose(uint256)","d40e9b9c":"rakeEventPlaceholderAddress()","d40fa8bf":"ZRX()","d40fd402":"salarySent()","d41097e3":"disbandTo(address)","d4112c56":"changeUtilityAccount(address)","d41212c8":"_insertTokenMetadata(uint256,string)","d41376e1":"withdrawl(address,address,bytes32)","d4138673":"IkuraTransferToken(address,address,uint256)","d413bd66":"OfflineMultiSig(address,address,address[],uint256)","d414da2a":"addPatternUserIndex(address,bytes32)","d41584ab":"LogCertifierRemoved(address)","d416c997":"_stringsEqual(string)","d416d1a6":"lastInvestorPaidOut(uint256)","d416d4f3":"Balance(address,address)","d416efdb":"donationTo(address)","d417f18d":"getTopicNameAndVotesAt(uint256)","d4186ba4":"test_oneValidEqInt3()","d41977cd":"contractFee()","d419ef9f":"WinToken(address)","d41b6853":"enter(address,uint256,uint8,uint8,uint8,uint32[11])","d41bcb81":"phaseEndTime(uint256)","d41bdea7":"unlock(bytes32,bytes32,bytes32)","d41be98d":"createDebtToken(string,string,uint256,uint256,uint256,uint256,uint256,uint256,address)","d41c85fa":"__redeem()","d41cc314":"EventUpgradeTank(address,uint32,uint8)","d41e3281":"DocumentManager()","d4200f94":"setCreditBitContract(address)","d4203561":"transferFee(uint256)","d420e4e0":"BCaaS()","d420e527":"BuyLimitsCrowdsale(uint256,uint256)","d4212e93":"storeInitialClaim(address,uint16[],uint256,bool)","d4214d1b":"releaseUnclaimedBounty(address)","d42151b0":"FFCTToken()","d4229b1a":"appBase(bytes32)","d422cf58":"numLocks()","d422e4e0":"takeFee(address,uint256,string)","d422e810":"exchange_commission_wallet()","d423740b":"setter(uint256)","d423754b":"removeFactProviderFromWhitelist(address,address)","d4245e5b":"transferringETH(address)","d424f628":"fundingGoalReached()","d4269986":"getPuzzle(uint8)","d426b04e":"largeContribThreshold()","d426bb47":"allocateForPrivateSale(uint256)","d42706bd":"Batix()","d4270d60":"recall()","d427ccbf":"getEventAddress()","d427ce74":"getBylawsProjectDevelopmentStart()","d428bf3b":"SetdivForPrice(uint256)","d4291e0c":"num_hosts()","d429bfae":"currentTokenOffered()","d42a5011":"setPackLimit(uint16)","d42a9dd5":"ICO_PHASE1_PERIOD()","d42aa2f6":"getHealth(uint8[176],uint8)","d42ad6ea":"getMinAuditPriceMin()","d42b31b9":"_DeclineInsurance()","d42bd8a4":"receivedUETreturn(address,uint256)","d42bf301":"doTriggerTryAuth()","d42c334e":"DepositMasterContract(address)","d42cc0d1":"Planetagro_Exchange(address)","d42cda15":"getOnMintTargetValue(int256)","d42cfc41":"transferFeeDenominator()","d42d24fc":"auditContract()","d42d4c10":"PASSToken()","d42d8eed":"tag(address,uint256)","d42db190":"versionAddresses(bytes32,bytes32,address)","d42dca55":"getAuditors(uint256)","d42e26f5":"initializePresaleFundraiser(uint256,uint256,uint256,uint256)","d42e87ed":"callOnSignUp()","d42ed758":"MixManager()","d42eeb4f":"EtherDrugs()","d4300225":"publicGetBalance(address)","d430381b":"mayorCutPercentage()","d4313945":"setProviderInvitedUser(uint256,address,bool)","d431b1ac":"setPause()","d431ba8e":"lastBlock_v8()","d432a885":"withdrawedFoundationCounter()","d4331c21":"setSubTourFreezingTime(uint64)","d4332f50":"changeBPaddress(address)","d4335bd2":"getSevenCount()","d433ea6a":"CueCrypto()","d4346010":"verifiedTransferFrom(address,address,uint256,uint256,uint256,uint256)","d43503ab":"Sunset()","d4357107":"address_to_tokens_prev_week1(address)","d43582c8":"removeNOSPackage(uint256)","d4365b4b":"Weaver()","d436b6e2":"EtherAdvance()","d4371968":"MAX_IMMORTALS()","d4384156":"UbexToken(uint256)","d438fdbd":"offlineSales(uint256,uint256)","d439390c":"MIN_PURCHASE()","d43948ee":"transferGainedEther()","d439ef55":"distributionMinimum()","d43a0b4c":"hodlerTotalValue9M()","d43a7c16":"finalizePrivateIco()","d43c3bb9":"getData_30()","d43c45b8":"withdrawSurprisePot(address)","d43c5a4a":"setTeamVault(address,address,uint64)","d43ea9e1":"levelTwoTokenNum()","d43ef6b9":"__mulmod(bytes,bytes,bytes)","d43f24b0":"removeApprovedContractAddress(address)","d4403495":"OWN_mintToken(uint256)","d440c6f3":"getWorkerAffectation(address)","d441ea62":"CleanBankerProfit(uint8)","d4430bc7":"tokenSaleOngoing()","d443173d":"requestUnFreezeAccount(address,string)","d4434387":"PolyCompliance()","d443f64a":"Start_Resume_PreICO()","d443fc85":"acceptGuardianVend(uint256)","d4440991":"callTransfer(address,uint256)","d44512e3":"changePrestige(address)","d445afdc":"week1Price()","d445cc78":"unfreezeTransfer()","d44750f5":"bonus_price()","d448273c":"mineForMany(address[],bytes32[])","d4483263":"secondRoundMayStart()","d4492c57":"addInvestorGrant(address,uint256,uint256,uint256)","d449844d":"XbitfwdToken()","d449a832":"decimals(address)","d449ce7c":"Administered()","d44a2863":"changeBooking(string,uint256[],uint256,address,bytes32)","d44aadf7":"initROS()","d44aecb0":"ico1_startdate()","d44b01ec":"safeWithdrawERC721(address,uint256,address,address)","d44bc088":"getTaskId(uint256)","d44cf3dc":"_setPriceFactor(uint256,uint256)","d44d3394":"WIDTH()","d44dbbaf":"addStringComparison(bytes32,bytes32,bytes1)","d44dd681":"beginLiquidation()","d44f2d3d":"getInitialWithdrawalDone()","d45036c7":"viewTeamTokens()","d4508698":"driveCar()","d4524c72":"manualEtherWithdraw()","d45294f5":"charityAmtToCharity()","d45318b9":"scoringDuration()","d4538051":"_emitHolderAddressAdded(bytes32,address,uint256)","d454f92e":"mNumVoters()","d4550efd":"addEngineerQuest(address)","d455b973":"changeStageBlock()","d4565916":"activateproduct(uint256)","d45769b8":"N2Contract()","d4582b56":"Token(string,uint8,string)","d4589835":"sellMorties()","d458c522":"participantCapTier1()","d459197b":"distributeALCTokenBatch(uint256)","d4595aaa":"blockExpiration()","d459654a":"techSupport()","d45973f4":"turretElementBySubtypeIndex(uint256)","d4597aa1":"tokenFrozenUntilTime()","d45a717e":"topGoodsId()","d45b1ae4":"StandardGasPriceLimit(uint256)","d45b5f71":"getIcoStep(uint256)","d45baeab":"Deposit(uint8)","d45bcac1":"listAddresses(address[],uint256[],uint256[])","d45c1b06":"Bank(string)","d45c241c":"minBonus()","d45c4435":"getTimestamp(bytes32)","d45e09c1":"canTransfer(address,uint256)","d45efad5":"getAccessControl(address,address,uint8)","d4607048":"buyForEverybody()","d461518c":"p_setGameDuration(uint256)","d4616967":"deployCode(bytes)","d4620041":"getFirstRoundReleaseTime()","d4625a3a":"equals()","d4629ae7":"ddftFund()","d46300fd":"getA()","d4631019":"_startCounter()","d4638401":"oneImpInWei()","d4638fea":"operatorRedeemByTranche(bytes32,address,uint256,bytes,bytes)","d463ca18":"findSsp(address)","d463eeb3":"numLoans()","d464520c":"PowX()","d4649fde":"expire(uint256,uint8,bytes32,bytes32,bytes32)","d4653a3b":"EXToken()","d465abca":"notInArray(address)","d466a03f":"citizensAmounts(uint256)","d466a046":"LogBidExpired(bytes32)","d466ab6b":"ROLE_BOUNCER()","d467cc00":"calculateRate(uint256,uint256)","d467cc64":"DoubleOrNothingImpl()","d4683f6d":"ArticCoin(uint256,string,string)","d4686534":"LYNIA()","d46a005a":"addWhiteListUser(address,uint256,uint256)","d46a5d7e":"vote(uint256,bool,uint256)","d46aa610":"buyInMarket(uint256)","d46b2987":"Luvtoken()","d46b9b84":"lifeN(uint256)","d46ba0c9":"etherRaisedPerWallet(address)","d46c0f40":"finishPrivatePlacement()","d46cddd4":"capPresale()","d46d0393":"getNextRegionId()","d46d0a22":"setV_S(uint256)","d46d79bb":"withdrawAllEth(address)","d46dbca1":"developerTemplateAmountLimit()","d46dd5bb":"showCurrentWinner()","d46ea4a4":"EXP_18()","d46eb119":"wrap()","d46f8eb1":"getSource(string,string,string,string)","d46ff2f1":"getTweetsDiff(uint256)","d470097c":"lastLargestHODLER()","d4701c35":"activate_kill_switch(string)","d4702576":"calculateTokens(uint256,uint256,uint256)","d4724a57":"TokenTransferForFounder(address,uint256,address,address)","d472d6bf":"get_token_balance(address)","d472fa26":"lockTokenToDate(address,uint256,uint256)","d472fe7e":"totalTokensICO1()","d4735d92":"Transfer(bytes32,address)","d4737d11":"setSampleRegistry(address)","d47380e0":"_mintToken(address,uint256,uint256,string)","d4740b78":"getAmountWeekly(uint32)","d4747f0a":"IQC()","d474a352":"submitBlockHeader(bytes,uint256)","d47510c0":"UNICORN_ID()","d475526f":"numActiveGames()","d475b1ab":"phase5Price()","d475bfa8":"proxyClaimTokens(address,address)","d47637f7":"getLittafiContent(bytes32,uint256)","d476620b":"winnerKey()","d476758f":"extractablePercentage()","d4768994":"soldIdeaWeiPostIco()","d477e3d4":"checkAddERC20(address)","d477f05f":"setDev(address)","d47875d0":"getScore(address)","d4788cc3":"HGT_Reserve()","d478f533":"allowFreezing(address)","d4793a9b":"getNextGuessId()","d4798327":"getPendingBattleRewardsCount(address)","d47a2010":"bnbRaised()","d47b44c3":"Fool()","d47bb75c":"TOKENERC20(uint256,string,string)","d47c0fb0":"onIncome()","d47c9e11":"eastadsCREDITS()","d47cc085":"sameNum()","d47cc9d7":"start_the_race()","d47cf598":"setDayThird()","d47d3202":"releaseINATokenToTeam()","d47d5cfe":"swarmTree()","d47d996e":"addCrowdSale(uint256)","d47dbde2":"buyerFundRelease(uint256,address)","d47e813d":"SteveCoin()","d47e81eb":"blockSettlement(uint64,uint64)","d47eb8ee":"validCall(uint256,bytes)","d47eca0a":"checkDiv()","d47ee6c1":"numberOfLeaderboardPlayers()","d47f269e":"getHand(uint256)","d4807fb2":"initializeRound()","d4810b61":"PRE_ICO_START()","d48210bc":"perValue()","d4821432":"endICOStage8()","d4849a8b":"newEthBackedLoan(uint32)","d484a285":"PRE_ICO_SLGN_LESS()","d48599e3":"setdrawadm(address)","d4859dbc":"UniversalFunctionSecure(uint8,bytes32,bytes32,bytes32,bytes32,bytes32)","d4859dc5":"disableManager(address)","d48675f3":"minGoal()","d4867694":"updateship(uint256,uint256)","d48684d8":"changeLimit(uint256,uint256)","d4868c32":"tokenReserved3Deposit()","d486d129":"releaseVesting(address)","d4871517":"BTCLotto(address,uint256)","d487758a":"forgive(uint16,uint32)","d4878cac":"_transferChild(address,address,uint256)","d487b21a":"assets_controller()","d4884b56":"getEventEnd()","d4897729":"getCET4InfoById(uint32)","d489a018":"adminAddWorldBalance()","d489b701":"starEthRate()","d489b83f":"teamOneShares()","d489c0bf":"getBuyCount(address)","d489e180":"getPendingPartCrateLength()","d489fc8b":"_useOraclize()","d48a1f6e":"returnPurchasedEther()","d48a9340":"SaveCryptoToken()","d48b2e92":"Identify()","d48b55e5":"calculateTokenOnlySellPrice(uint256)","d48b7a9d":"CryptoMyWord()","d48bb321":"next(bytes2,bytes2,bytes2,bytes2,bytes2,bytes2,bytes4,uint256)","d48bfca7":"addToken(address)","d48c4193":"addWhitelistedTransfer(address,address)","d48d02f6":"withinLimits(uint256)","d48e638a":"getCreator(uint256)","d48e6a1b":"TEAM_TOKENS_PERCENT()","d48e9cd5":"OMG()","d48ea599":"getBeneficiaryByTime(address,uint256)","d48f08e5":"disableRegulator(address)","d48f7196":"numHodlers()","d48fb85c":"FIVE_YEAR_KEEPING()","d48fe280":"OK()","d4912ab1":"SNTPlaceHolderMock(address,address,address,address)","d491461a":"Gnosis()","d492283f":"switchLock(bool)","d4923d4e":"getUserVote(address)","d493b9ac":"transferAnyERC20Token(address,address,uint256)","d494c388":"setMinBuyAmount(uint256)","d49620ec":"RoundFinalized(uint256)","d49636c2":"san()","d496a4f1":"cashBackVotes()","d496bde4":"mainSaleTime()","d496f9d2":"PlayReferred(uint8,uint8,uint8,uint8,address)","d4971613":"HashBounty()","d49758d6":"use_bounty_token(address,uint256)","d4975d71":"changeVoter(address,address,string)","d4981928":"WorkOrder(uint256,address,address,address,address,uint256,string,address,address)","d499555b":"getFirstActiveDuel()","d49982cc":"sendPreSaleBonusMany(address[])","d499b2c3":"pks(uint256)","d49ab244":"ICOWhitelisted(address)","d49ad161":"addTokenDetails(uint256,address[],uint256[],uint256[],uint256[])","d49c51b7":"claimedMK(address)","d49ce78d":"WiggaToken()","d49d1836":"openegg(uint256,uint256)","d49d1bac":"transferERC223(uint256,address,address,uint256,bytes)","d49d5181":"MAX()","d49dbb5c":"minBalanceToSell()","d49dd9a8":"getStateofContract()","d49dd9e4":"SonnetCoin()","d49edbd8":"lastPrizeGiven()","d4a03f60":"acceptAdoptionRequest(bytes5)","d4a04ff4":"importFromOld(address,address,address,address,address[],uint256[])","d4a226c3":"bountyManagerDistributionContract()","d4a2498d":"addData(string)","d4a24f06":"checkPermissions()","d4a28823":"EOSSale(uint256,uint128,uint256,uint256,uint128,string)","d4a2f3ca":"getShipAuctionEntity(uint32)","d4a34564":"start3BonusPeriod3()","d4a34a9e":"tokenDecimalsLeft()","d4a3e9d7":"capture()","d4a436cc":"_countBits(uint256)","d4a4513e":"fpct_packet_size()","d4a61d61":"OnlineCasinoCoin()","d4a631ab":"ContractLogEvent(int256,int256,uint256,string,string)","d4a67930":"openBuy()","d4a6fd3e":"has_presale_started()","d4a8d9ba":"Inbox(string)","d4a9991f":"requestDividends()","d4a99d61":"finishDelivery()","d4aa6b59":"Button(uint64,uint64,uint64,uint64,uint64,address)","d4aa7394":"GameStatusUpdate(bool)","d4aa7d38":"City(uint256,string,string)","d4aae0c4":"kernel()","d4ab4a89":"_migrateRobot(string)","d4ac6af5":"MAX_REFERRAL_TOKENS()","d4acaf6c":"ecrecoverFromSig(bytes32,bytes)","d4acfa01":"tokenFrozenSinceBlock()","d4ad678e":"addItem(bytes16,uint16,uint16,bool)","d4ae1061":"getPurseDetails(uint256)","d4afc8b6":"retrieveERC(address)","d4b03d34":"changeValueBonus(uint8,uint256,uint256)","d4b088f9":"ICO_PHASE2_AMOUNT()","d4b0a23b":"addWhitelists(address[],uint256[])","d4b0c6e5":"stringToBytes10(string)","d4b0e966":"changeSaleStart(uint256,uint256)","d4b15ee0":"LogRefund(address,uint256,uint256)","d4b175d4":"mineTokens(address,uint256)","d4b182d4":"block(address,bytes32)","d4b1a462":"LogBought(uint256)","d4b1cdcc":"isResolverFor(uint256,address)","d4b1d19f":"testThrowsTransferDisabled()","d4b2931c":"tokenSEEDcap()","d4b2d5f0":"SQR_TOKEN()","d4b3f5b6":"tokenWithdraw(address,uint256,uint256)","d4b572be":"RESERVE_TOKENS_SUPPLY()","d4b64f35":"getBalanceOfModifiedWeth()","d4b71aa9":"maxPresaleWei()","d4b795c0":"getCurrentRoundEntry()","d4b83992":"target()","d4b8a6f1":"setFeeSchedule(uint256,uint256,uint256,uint256)","d4b9e410":"coiner()","d4ba15ad":"earlyPariticipantWeiPrice()","d4ba769c":"getLatestComponent(string)","d4badfad":"totumAllocation()","d4bb02e4":"changeRatePreSale(uint256)","d4bb1f28":"FCOIN1346Token(uint256,string,string,uint256)","d4bc0942":"withdrawOracleFunds()","d4bc87d9":"currentPriceChangeNumber()","d4bcffe4":"AbxyjoyCoin()","d4bd5a0d":"addCollaborator(uint256,address)","d4bdb879":"tokenSaleHasFinished()","d4bdc45f":"downvote(uint256,int256)","d4bde313":"ownBalance()","d4bdfe00":"ETCTransfer(address,address,uint256)","d4be5f68":"ATL_PER_ATP()","d4be6356":"authentication(bytes8)","d4be7714":"bornFamedStar(uint256)","d4bffa5a":"STATE_INITIAL_BIDDING()","d4c0cbce":"NovaCoinTransfer(address,uint256)","d4c1089b":"WorldRecord(string,bytes32,address)","d4c24db7":"StarterTokenSale()","d4c2b6b1":"scheduleTransaction(address,bytes,uint256[5],uint256)","d4c30ceb":"getFeeBalance()","d4c3eea0":"totalValue()","d4c46fa6":"setDeploymentPriceYear(uint256)","d4c49094":"WithrawDevToken()","d4c50f00":"coinPerEth()","d4c55f56":"wkaToken()","d4c6d9ad":"getbetresult(bytes32)","d4c72e7f":"etherollBeneficiary()","d4c76e8b":"MaxToken()","d4c80edf":"amountWagered()","d4c8fdae":"saleEtherRaised()","d4c9b1f2":"setMainAddress(address,address)","d4ca68ea":"replacePolicyTo(address,uint8)","d4cab39b":"AddedPrecommitment(address,uint256)","d4cae6e2":"getMetadataURL(bytes,uint256)","d4caf2a4":"setCodeSize(uint256)","d4cd5509":"CulturalCoinCrowdsale(uint256,uint256,uint32,uint32,address,address,address,uint256,uint256,uint256,uint256,uint256)","d4cdeb3c":"isInPresale()","d4ce1415":"detectTransferRestriction(address,address,uint256)","d4ce545a":"random(bytes32)","d4cf02ef":"getStringToSignWithKey(string,int256)","d4d0aced":"transferPartOfUnsoldTokens(address,uint256)","d4d0d6e6":"addTrusted(address)","d4d0e931":"resetAllVotes()","d4d1b7da":"approveTokensFromAnyWithSignature(address,address,address,uint256,uint256,uint256,uint256,bytes)","d4d227de":"PBToken()","d4d2af8d":"sellCoin(uint16)","d4d2e23c":"LogRandom(uint64)","d4d30bd9":"GreenX(address,address,address)","d4d33ece":"isRebirthAllowed(uint256,uint256)","d4d37883":"sendSurplusTokens()","d4d42658":"getTokenRateEther()","d4d42c91":"SetupML(uint256,uint256,uint256,uint256)","d4d5d32a":"collectFee()","d4d64f2b":"getRevokeHash(bytes,uint256)","d4d6adc0":"SiliconXCoin()","d4d6cdc4":"getStageTotal()","d4d6d366":"metadataUrlSuffix()","d4d6f5ee":"deleteChannel(address,address,address)","d4d70128":"totalContributions(uint256)","d4d728fe":"IsClaimed(bytes32)","d4d7b19a":"isHolder(address)","d4d81a13":"ClownCore()","d4d82dae":"MCFitCrowdsale(uint256,uint256,uint256,address)","d4d84da5":"addTokenShop(address,uint256)","d4d90bd5":"MINIMUM_PURCHASE_AMOUNT_IN_WEI()","d4d91bdd":"_createOpinion(string,address,uint256)","d4d92b14":"mintInternal(address,uint256)","d4d96ac5":"flag(string)","d4d9748d":"NeoToken()","d4d9bdcd":"approveHash(bytes32)","d4d9f559":"addWhiteListAddSetAuctionObj(address,uint256,uint256)","d4db3791":"processTransferResult(address,address,uint256,bool)","d4dc8e83":"walletCreateSnap(uint256,uint256)","d4dca69b":"thisAddress()","d4dcbc60":"declineApproval(uint256)","d4dd1594":"updateLandData(int256,int256,string)","d4dd26fb":"initKYCUser(uint256)","d4dd5d99":"LiteXTokenVesting(address,uint256,uint256,uint256,uint256,bool)","d4dd707f":"upgrade_node(address,address,string)","d4dd92a9":"TeamAllocation()","d4def0ba":"escrowedTokens()","d4df0c6d":"setSaleAuctionAddress(address,address)","d4df1be8":"getETHNeedPay(uint256,uint256)","d4df6152":"getInvestorByIndex(uint256,uint256)","d4df89e2":"messageBoard1(string)","d4dfadbf":"getMarket(address)","d4dfc4b9":"MinimalManuscript(bytes32,string)","d4e12f2e":"approve(address,int256)","d4e17e6d":"closeBuy(bool)","d4e19bd1":"HART_NETWORK_ID()","d4e30489":"NewYorkCoin()","d4e32938":"subuser(address,uint256)","d4e4716f":"_setWhitelistedUser(address)","d4e4841d":"tokenToEthTransferOutput(uint256,uint256,uint256,address)","d4e678b8":"refundTransaction(uint256)","d4e75363":"NextDistribution(uint256)","d4e77133":"SendCoin(uint32,uint32,uint32,address)","d4e78272":"Draw()","d4e7b9cf":"amountAvailableToCashout()","d4e823a3":"createVendingItem(uint256,uint256,uint256,uint256,uint256)","d4e8b749":"periodITO_weiPerToken()","d4e8e063":"startGrantAuthentication(address)","d4e90e24":"CCTC()","d4e93292":"withdrawal()","d4ea7b08":"_emitPublicCapabilityRemoved(address,bytes4)","d4eaa9fd":"approveAndCall(uint256,bytes)","d4eb139d":"migrateSet()","d4eb21ff":"PonderAirdropToken()","d4eb4186":"setB0xAddresses(address,address,address,address)","d4eb4540":"BLOCKTIMEOUT()","d4eb487e":"getProtectHourglass(bytes32,uint8)","d4eba667":"updateNovaContractAddress(address)","d4ebc5ff":"voteUp(uint256)","d4ed0b46":"setCRaddress(address)","d4ed2cf5":"candidateTillExchange()","d4ed8990":"updatePoolAddressCapTier1(uint256)","d4ee025f":"resetRequest()","d4ee1d90":"newOwner()","d4ee4041":"removeBlock(address)","d4ee9415":"addPurchased(uint256,uint256)","d4ee9fba":"existPublicKey(bytes32,address)","d4eec5a6":"optOut()","d4efcfe4":"getAccountInformation(uint256)","d4f04289":"ownerSellArmy(uint256,uint256)","d4f06298":"UpdatedMainAccount(address)","d4f0ca3f":"onlyTestSetTimestamp(uint256)","d4f0ebe6":"getWeaponNb(uint8[176],uint8)","d4f114a6":"numOfBoundaries()","d4f11ab2":"updateCompanyWallet(address)","d4f2e67c":"ico(address,uint256)","d4f2f1da":"EthereumNano()","d4f397b5":"getLootClaimed(uint256,address)","d4f3d6b8":"updateEditionType(uint256,uint256)","d4f3dd84":"_generation()","d4f50f98":"getVoter(address)","d4f639ea":"run2()","d4f6aa98":"getLargePaymentBonus(uint256)","d4f7329e":"minttoken(uint256)","d4f74bf4":"curatorAccount()","d4f77b1c":"joinGame()","d4f96a09":"giveawayAddr()","d4fa83c3":"setWhitelistTx(address)","d4fa9021":"DeductABS(uint256,uint256)","d4fac45d":"getBalance(address,address)","d4fb0bc1":"payOut(uint256,uint256)","d4fb0d23":"totalGuess()","d4fb9a01":"tradingStatus()","d4fbe1e0":"devAllocation(address,uint256)","d4fbeb19":"registerToken(address,string)","d4fc5822":"userWeiSpent(address)","d4fdbcff":"ViewDividendPoolEnds()","d4fef717":"APC(uint256,string,string)","d4ff60cb":"URB()","d4ff88d5":"TokenSent(address,uint256)","d4ffd1bd":"updateStrategy(uint256,string,string,string,address[],uint256[],bytes32)","d5002f2e":"getTotalShares()","d50030ad":"getMyDividends()","d5005c35":"COINVR()","d5009584":"getManager()","d500ca00":"assignReward(address,uint256)","d500dd6a":"challengeTimeout(uint256,bool,address)","d500f861":"buyFromWallet(uint256,bytes32)","d501953d":"poolTokenAmount()","d5020ce8":"daysMinutesTilExpiryTime()","d5025625":"terms()","d502db97":"getAddr(string)","d5034f2f":"changeRegistrationStatuses(address[],uint256[])","d503d33f":"MyPoolBalance()","d503e948":"developer_edit_text_minimum_period(string)","d503ef95":"getCategoryEvaluation(address,uint256,uint256,address)","d50495f4":"addTransaction(bytes)","d504cb65":"currentBet()","d504ea1d":"getArray()","d5050493":"tokenOf(address,address)","d505c1cf":"currJackpotBetID()","d506355c":"getRentInfo()","d5064037":"BitcoinVision()","d5065090":"setVendingStartPrice(uint256,uint256)","d5072607":"auditTimeout()","d5089396":"Token(string,string,uint8,uint256)","d509b16c":"testWithdraw()","d509b1f9":"like(address,address,uint256,string,address)","d50a04f4":"dataPerUsd()","d50a3d2c":"privateSale(address,uint256)","d50b3065":"addTokenBalance(address,uint256)","d50b65d7":"startBlockjack()","d50b7123":"testLockTokensForTrading()","d50bb794":"getComponent(uint256,uint256,uint256,uint256)","d50cb88b":"priceMultiplier()","d50d4822":"revokeParticipation(address)","d50e38c6":"IbkToken()","d50e829e":"setStopped(bool)","d50f6bf0":"transferETH(address)","d50f6d3a":"getPartner(address)","d50f7c73":"lastBlock_v10()","d5102704":"testRenameStore()","d51033db":"getTuple()","d5119402":"PUBLIC_SALES_3_PERIOD_END()","d511beec":"WithdrawICOEarnings()","d511cc49":"DAILY_PURCHASE_LIMIT()","d511f6c0":"startBuyingTokens(bool,uint256,uint256)","d5144eca":"updateUserBio(string,string)","d515b1ce":"Team(address)","d515be39":"getTokenName(address,uint256)","d5167b26":"partialTrade(uint256)","d5170fcc":"BonusFinalizeAgent(uint256,address)","d5171523":"euroteambet()","d517bc6f":"calcPointShamir(uint256,uint256,uint256,uint256)","d5182b70":"blocked(uint256)","d5185115":"forwardTokens(address,address,uint256)","d51902cf":"fallbackAccount()","d5193235":"mintUserAdoptionTokens()","d519bdcb":"distributeSML(address[],uint256)","d519fdc5":"alterGiveKarmaFee(uint256)","d51abbd9":"updateMaxTxGas(uint256)","d51c2454":"stepOne(int256)","d51c86e7":"setData_12(string)","d51d4fa8":"Securities_3()","d51e1737":"creedex(address,address,address,uint256,uint256,uint256)","d51eda9a":"AMC()","d51f5abd":"BEXMToken(uint256,string,string)","d52230c4":"totalContributionsBySender(address)","d5235a04":"contractEnable()","d5246eba":"queryRandom()","d5250364":"checkWrapperBalance()","d52550a4":"TokenPool(address,address,address)","d525aa32":"conditionalTransitions()","d5260eea":"getChannelAddress(string)","d526b9bd":"_allow()","d526c08e":"uv()","d526c40c":"_denyPublishSecret()","d526d332":"getLogic(uint256)","d526eaeb":"getMaximumReadsPerStep()","d5280c28":"AuthorizedCreate(address,uint256)","d529a072":"buyAddress(address,bytes8,uint256)","d529debb":"subOnHold(uint256)","d52a3524":"addAction(bytes32,bytes32,string,uint256,bool,uint256,uint256)","d52a5fc4":"decomission()","d52a7cbf":"setWallet1(address)","d52a7e86":"totalRewardedAxies(bool)","d52b38cd":"updateVendorApplicationStatus(string,string,string,string,string,string)","d52b5cb4":"_addLegitRace(address)","d52b79bd":"XTT()","d52b8a0e":"addVineyardEndorsement(string,uint256,bool,string,string)","d52b9e40":"activateTokenSwitch()","d52c6c08":"approCertificate(uint256)","d52e4633":"futureRoundTokensRelease()","d52f7122":"myCredit()","d52f916f":"setAddressCrowdsale(address,address)","d530040a":"createAddressHash(address,bytes32)","d5307b0c":"weiContributed(address)","d53087b2":"JANUS()","d531eeaa":"icoBonus1()","d5320300":"getWithdrawableAmountANPES(address)","d532968f":"_chkSellerLmts(address,uint256)","d532df3c":"setCraftAuctionAddress(address)","d532e481":"activateFrozenAccount(address)","d533d0db":"changeUserLangAbility(bytes32)","d534831c":"sumOfWeights()","d5349606":"removeDeadTurns(uint16)","d535268d":"BUZZ()","d5353792":"setWithdrawGasCost(uint8)","d5356b7d":"TOKENS_PER_USD()","d5356fe1":"tokenFallback(address,address,uint256)","d53590a7":"durationPreSale()","d5364231":"forcedRedeem(address,uint256)","d536c3ae":"beginPhaseTwo(uint256)","d5370904":"getAvailableTokenCount()","d5375a5c":"getHigherInstance()","d537c3e3":"blockLockActive()","d537df3c":"claimTwitterIdIfNeededThenStealCardWithTwitterId(uint256,address,uint8,bytes32,bytes32,uint256)","d537e131":"calculateMatchPrice_(address[14],uint256[18],uint8[8],bytes,bytes,bytes,bytes,bytes,bytes)","d538359e":"Copeland()","d5387acb":"buy4(address[],address[],uint256[],bytes,bytes,bytes,bytes)","d539a014":"SSDTokenSwap()","d539a226":"assertEq10(bytes10,bytes10,bytes32)","d53a9b85":"tokensPerCents()","d53aaec2":"cPT()","d53abe1b":"stopRound(bool)","d53b2679":"activated_()","d53b4ab4":"communityAllocation()","d53b932a":"percentLeft()","d53bb6ac":"EthBita()","d53bc605":"testMultitransfer1()","d53beee4":"isOk(bytes1)","d53c61bf":"slasherAddress()","d53ca3c7":"setDiscountMember(address,address,string,bool)","d53ce956":"setOperationAddress(address)","d53dbe8e":"publishier()","d53e963b":"buyCore(uint256,uint256)","d53f1cbd":"getBidFee(uint256)","d53f8208":"fundaria()","d541ca5d":"BONUS_PCT_IN_ICONIQ_SALE()","d5420df4":"drawToHand(uint256,uint32,uint256)","d5425571":"gasonBuffPercentage()","d543f9d6":"setTeamPerfitAddress(address)","d544361e":"increaseShares(uint256,address)","d544e010":"removeAuthority(address)","d5456bc6":"lastBlock_a14Hash_uint256()","d545782e":"updateTokenRate(address,uint256,uint256)","d545ee2d":"CustomToken(string,string)","d54604ae":"min_fundingGoal()","d54656d5":"startTrade(address,address,uint256,uint256,uint256)","d546c975":"getCharacterServer(uint256)","d5472a5e":"userRewardAccountBalance(address,address)","d5472fcb":"removeWhiteLister(address,address)","d5477d37":"getColdWalletAddress()","d54839bf":"FEE_DEV()","d54a6bfb":"setHmcAddress(address)","d54ac04d":"get_master(bytes32)","d54ad2a1":"totalClaimed()","d54ad593":"getgamecardintro(uint256)","d54b02ec":"weiToCollectByInvestor(address)","d54b066f":"calcAmount(uint256)","d54c03a9":"NOORToken()","d54c2a63":"improveCard(uint256,uint256,uint256)","d54c4726":"usageCost()","d54c7099":"TVContract()","d54c7b4f":"_triggerCooldown(uint256)","d54c8c87":"emitApprove(address,address,bytes32,uint256)","d54ced9c":"canContributeAmount(address,uint256)","d54cefc1":"transferTokens(address,address[],uint256[])","d54dc5eb":"REGISTRATION_COST()","d54dd8f9":"slice4(bytes,uint256)","d54e583a":"transferFrom(address,address,uint256[],uint256[])","d54f4dd6":"TestVeryCoin3()","d550172a":"verifySig(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address,bytes,address,address)","d5503d5f":"payBalance()","d550668d":"setContract(bytes32,uint256,address,address)","d550f044":"setAllowLocalBuy(bool)","d55108be":"JOLDEAME()","d5518feb":"RequestCollectInterface(address)","d551f601":"_auth_mode()","d552844b":"signTrueloveByCOO(bytes32,string,string)","d55321db":"newGame(address,string,string,uint256,uint256,uint8,uint8,uint8,uint256)","d5537c0d":"setUsersCap(uint256)","d553adf0":"frozenFunds(address)","d5544f94":"getFundsAndAvailable(address)","d5547587":"ReviewToken(uint256,string,uint8,string,address)","d554ba86":"round_b_begin_date()","d554f8b4":"changeDeDeStorageAddress(address)","d5551518":"CapitalMiningToken(string,uint8,string,string,uint256,uint256,uint256,uint256,uint256,uint256)","d5556544":"offset()","d5562901":"getFeeSchedule()","d5563f31":"createAuction(uint256)","d556c8f5":"getHashID(address,bytes32)","d5572bd6":"closeCrowd()","d5582205":"getCertifiedStudentAtIndex(uint256)","d5582965":"stopMint()","d55a772d":"getCurrentOwner(string)","d55ac94c":"WhiteBullsToken()","d55b7703":"privateIcoCap()","d55b9f4d":"DISCOUNT_PRIVATE_PRESALE()","d55bc06a":"LDEX()","d55bdc5f":"getCampaignPriceById(bytes32)","d55c4af8":"_p3dSellPercentage(uint256)","d55c980f":"submitEntry(bytes,string)","d55c9c84":"confirmWinner()","d55cc3e2":"JSONpath_raw(string,string)","d55d1fed":"EGGS_TO_HATCH_1Dragon()","d55e62a0":"removeTrusted(address)","d55e725b":"initialFunds()","d55ec654":"wash_list(uint128)","d55ec697":"upgrade()","d55edcfd":"freezeChangesToVesting(address)","d55fe582":"isAssociated(address)","d560f696":"releaseRoto(address,bytes32)","d561be54":"createVestingContractWithConstantPercent(address,uint256,uint256,address,uint256)","d561ef2b":"setMinBuyableAmount(uint256)","d562a121":"calcTokens(uint256)","d562de0b":"investor_insert(address,uint256)","d562deef":"getAffiliateFee()","d5630f71":"AlpenCash()","d5635444":"getCoupon(string)","d5656ccf":"getWager()","d5666b5f":"versionBase(bytes32,bytes32,address)","d5667d8a":"updateUSDWEI(uint256)","d5668a92":"_checkTransactions(address)","d5670f59":"VisualChainToken()","d567c0e1":"cashBackWeight(address)","d5687efd":"WhitelistSetDay(address,uint8,uint256)","d5698726":"LogSetPicosPerEther(uint256)","d56a0a88":"bipedaljoe()","d56a4555":"setLink(uint256[2])","d56a62cf":"getPurchases(address,uint256)","d56a9314":"transfer_m(address,uint256,string)","d56b2889":"finish()","d56b7577":"BM_ICO()","d56b7746":"mintTokenCollection(string)","d56bd142":"getPayments()","d56cd796":"addNewCourse(int128,string,string,string,string)","d56d229d":"nftContract()","d56de6ed":"adminAllowance()","d56e3068":"getTotalDonated()","d56ea1b0":"pausePending()","d56efabf":"LockableToken()","d56f279f":"resignOwnMembership()","d5708d5a":"setMinAmount(address,uint256)","d571829e":"mintTokensToEralyInvestors()","d571a9a9":"Hawaii()","d571dbac":"getHeadInfo()","d571e645":"validStoreBuff()","d571edb0":"getExchangeGroupsLength()","d572056e":"testItem(bytes)","d5722518":"setUintsOwnerCount(address,address,uint256,bool)","d5723bf7":"finishGame(uint256,uint256)","d572fd99":"getPlayerCardsNumber()","d574bcdf":"reLoadXname(uint256,bytes32)","d575af74":"getSubscriptionServiceId(bytes32)","d575f332":"updateCampaign(address)","d5762230":"overStakeAgeBurn()","d5767fb6":"_emitCapabilityAdded(address,bytes4,uint8)","d576dc58":"TOKEN_SALE_LIMIT()","d5775f5c":"getCurrentSellPrice()","d5778d37":"preIcoTokens()","d5778efa":"STASHToken()","d5778f07":"transferAdvocatedTAOLogos(address,address,address)","d5779b7f":"imageUploadComplete(address[16],uint256)","d577ab70":"authorizeEscrowService(address)","d577d785":"setJPYC(address)","d57869d4":"findTrustedContract(address,address)","d578ec6c":"uploadData(bytes32[100])","d578f434":"BONUS_PCT_IN_VREO_SALE_PHASE_2()","d579f9e8":"changeBinary(uint256)","d579fd44":"approveNextOwner(address)","d57a0577":"TEAM_BONUS_PER_CENT()","d57a12f5":"testCheckSigs()","d57a9e4f":"LATER_AUCTIONS_INITIAL_PERCENTAGE()","d57ad588":"hashToSign_(bytes32)","d57b8932":"leaseBlock(uint256,uint256,uint256,bytes32,bytes32,bytes32,bytes32)","d57bde79":"highestBid()","d57c00de":"PayForServiceETH()","d57c1ea2":"addIssue(uint256)","d57c25f8":"UnderratedToken()","d57f62ff":"getPeriodLockedBalanceFor(uint256,address)","d5812ae1":"positionPrice()","d5813323":"traded(bytes32)","d583644b":"upgradeStrength(uint256)","d5838ca7":"addPublicKey(address)","d5847d33":"conversionRatesContract()","d585b852":"DAOToken()","d586bd4e":"donateP3D()","d586d2e4":"cancelRequest(uint256,uint256)","d586e30f":"calcNextReward()","d587dbf9":"change_specific_addy(address,uint256)","d588acc4":"claimMiningReward()","d588b892":"testCount(uint256)","d588d4d8":"hasHash(bytes10,uint8)","d5893bb2":"tradeEventEnabled()","d58b8282":"roundFiveTime()","d58b82bb":"getCampaignDailyPrice(address)","d58bf09a":"redeem(bytes32,address,bool[4])","d58c4b85":"siteAccount()","d58d1566":"subsidyHalvingInterval()","d58e1758":"totalConvertLotsByAddress(address)","d59070f8":"mintCopieExecutoire(bytes32)","d5909149":"CerberusNetwork()","d590bf49":"deleteCase(uint256)","d590df4a":"setFirstPeriodCap(uint256)","d591221f":"testTransfer()","d59138ef":"markReleased()","d59167f6":"claimComputation(bytes,bytes32)","d591d777":"finanVestingStages()","d592c243":"Issuance(address,uint256,uint256,uint256)","d592f5fd":"reserveFullMintAllowance()","d593c953":"revenueShareIdentifierList(address)","d5949bf3":"RegistroBlockchain()","d595c331":"burnSupply(uint256)","d5969f2b":"grantEnable()","d596c862":"toggleRedeemActive()","d59768a3":"updateAddress()","d597b634":"ETC()","d597b8c8":"getOffer(bytes32)","d597c6bb":"_generateSpaceship(uint16,address)","d598aef8":"TESTToken()","d598b2c5":"getTopCompanyStartBlock()","d598cae5":"ACTIVE_LOAN_CANCELED_BY_LENDER_STATUS()","d598d2ab":"Reward(address,address,uint256,string,uint256)","d598d4c9":"service()","d5992ef5":"isSuited(uint8,uint8)","d5996502":"TheMLMDemo()","d59aec08":"notesOf(address)","d59b5d4e":"getDocumentIdWithContentHash(string)","d59ba0df":"setDistributor(address,bool)","d59cf17f":"WeAPOWH()","d59e31ed":"totalETHSold()","d59e6461":"addRoot(bytes32)","d59f1844":"content_intro()","d59f1f3f":"proposalsByShareholder(address,uint256)","d59f2827":"isTokenOwner(uint256,address)","d59f37e0":"verifyCanRemoveOrderById(uint32)","d59f4e68":"setPaintingArtist(uint256,string)","d59f5c6e":"OmegaNode()","d59f9cc7":"getFullAddressList()","d59fde06":"CredoIco(address,uint256,uint256)","d5a056d8":"AddOrigin(address)","d5a18e4c":"setMany(address,uint256,uint256[],uint256[])","d5a2040e":"AKM()","d5a31956":"commissionArt(uint256,uint256)","d5a34dfb":"VPC0x()","d5a3b734":"dataSourceAddress()","d5a41695":"fetchVoteNumForCandidateBySnapshotBlock(address,uint256)","d5a4726b":"sumICO2()","d5a4a3c6":"findRecentBet(address)","d5a506d0":"regionExists(uint16)","d5a53dec":"ACTION_SELL_OFFER_ACCEPTED()","d5a5825d":"currentEtherBalance()","d5a632b5":"addPartnerSaleWallet(address)","d5a683c0":"addDividends(uint256)","d5a6c97a":"setWhitelistModerator(address,uint8)","d5a73fdd":"getVestedAmount(address)","d5a7b500":"softCapTriggered()","d5a81428":"sellPriceInWei()","d5a841f9":"setFaucetThresholdSecs(uint256)","d5a8487f":"getSquareWins(uint256,uint256)","d5a849e9":"getRewardBalance(address)","d5a8c0d9":"Ghcwchain(uint256,string,string)","d5a9f356":"testTemp3()","d5aa1a26":"getRouteSize()","d5aa1aca":"setmmVaultAddr(address)","d5aa7803":"isGuessesOpen()","d5aaadd1":"finishMintingRequestSetup()","d5ab7f30":"crowdsaleSuccessful()","d5abaa27":"JoinTheFray(address)","d5abeb01":"maxSupply()","d5acdeb2":"allocateCorporateToken(address,uint256)","d5aceaac":"closeBattleboard(uint16)","d5ad2e00":"m_wcStored()","d5ad3ad0":"setServiceController(address)","d5ae1085":"updateNextOrderPrice(address,address,uint256,uint256)","d5af8f24":"createAndSellAllAmountBuyEth(address,address,address,uint256,address,uint256)","d5afd6bc":"startOperation()","d5b014f8":"MoonTrail()","d5b01c99":"existIdAtCurrentVersion(bytes32)","d5b0c0d5":"numberOf(bytes16)","d5b1402c":"ViralTokenSale()","d5b235d0":"test_claimShares_emptyRewardPool_isTranscoder()","d5b2a01a":"ownerFee()","d5b2c102":"sendCoin(bytes32,bytes32,uint256)","d5b36845":"stage3Bonus()","d5b36eeb":"TEHToken()","d5b3b317":"minutestotal()","d5b40406":"signUpForAirdrops()","d5b42496":"enableShowValue(bool)","d5b4ea20":"USDcRaised()","d5b5dc49":"companyReserve()","d5b61da0":"PRE_SALE_MIN_ETHER()","d5b74699":"library1function()","d5b85b2d":"setBAAU(bytes32,address,address,uint256)","d5b89bc8":"Issuance(address,uint256,uint256)","d5b8a884":"ASStokenICO(address)","d5b9df87":"LEADER_FEE()","d5ba4d21":"changeHold(address,uint256,uint8,uint256,bool)","d5ba5f82":"getBattleCard(address)","d5bab53d":"xtestTransferToken()","d5bb7f67":"updateFeatures(uint256)","d5bc0a07":"LYBTToken(uint256,string,uint8,string)","d5bcecab":"setLeagueRosterAndSaleAndTeamContractAddress(address,address,address)","d5bcf8ef":"setGameRunning(bool)","d5bd3443":"newOption(address,uint256,bool)","d5bd57a1":"getCardsDetails()","d5bde837":"registerPoA(string,bytes32,uint64[],uint64[],address,address,string,bytes2)","d5be4153":"buyAd(uint256)","d5bec84e":"weiPixelPrice()","d5bee9f5":"randomAddress()","d5bf158a":"affiliateName(address)","d5bf2dbe":"setFeeParameters(uint256,uint256,uint256,uint256)","d5bf4da1":"eTicket()","d5bf5fc3":"sendBountySupplyToken(address)","d5c06d30":"icoEnabled()","d5c14391":"getAvailableAmount(uint256)","d5c166d5":"getExchgComisnMulByThousand()","d5c21c4f":"setMinAuditPrice(address,uint256)","d5c2d2b6":"TEAM_INCENTIVES_AMOUNT()","d5c2e3ca":"destroyContract(string)","d5c2ee21":"hasLanguage(address,uint256,uint256)","d5c34755":"LogAuthCreate(address,uint256)","d5c4098d":"enableRenounceOwnership()","d5c44898":"updateLastPrice(uint256)","d5c469f8":"isP2SH(bytes,uint256,uint256)","d5c53c44":"DETEX()","d5c5d8e1":"yetAnotherFunction()","d5c60c97":"ShowInfoBool(bool)","d5c61301":"say(string)","d5c61881":"enableWithdrawl()","d5c655c9":"lastTaskIndex()","d5c7aece":"CertAdminDeleted(address)","d5c7bcc8":"coinIssuedEtc()","d5c80423":"lockDeposit(bytes32,string)","d5c813dc":"sellerfee()","d5c96b36":"gettotalCardValue()","d5c9712f":"getBytesLE(bytes,uint256,uint256)","d5c98db1":"setPropertyOwner(uint16,address)","d5c999f8":"getBanque()","d5c9b239":"getAllShops()","d5c9c144":"SetGasFeeReimbursed(uint256)","d5ca35bc":"withdraw(address,uint256,uint256,address,uint8,bytes32,bytes32)","d5cb4a04":"getParticipantTransactions(address,address)","d5cc1d49":"upload(bytes32,bytes32,bytes32,bytes32)","d5cc8813":"startingPriceOf()","d5cce45a":"showbuyPrice()","d5cd3243":"addUser(bytes32,bytes32,uint256)","d5cdd2c7":"tokenToPoint(uint256,address,uint256)","d5ce3389":"from()","d5ce44c1":"totalEthReceivedinWei()","d5ce6719":"AC(uint256,string,string,address)","d5ce6a34":"LogAddressTokenCapCalculated(uint256,uint256,string)","d5ce91fd":"isRegistered(address,bool)","d5ceecea":"ERC777DemoToken(string,string,uint256,uint256)","d5cef133":"requestRefund()","d5cf5c72":"setSoftCap(uint256)","d5cfa94e":"claimAdmin(string)","d5cfad68":"getUserCertificationDetails(string)","d5cfc01b":"lockAddressByKYC(address,address)","d5cfee3e":"playerIsRegistered(address)","d5d067b0":"createRequestAsPayerAction(address[],int256[],address,uint256[],uint256[],string)","d5d09021":"isCrowdsaleFull()","d5d0da83":"KingsToken(uint256)","d5d1b95a":"convertRegularToRewardTokens(address,uint256)","d5d1e770":"confirmOwnership()","d5d21e18":"createTokenContract()","d5d2f528":"setTokenCounts(uint256,uint256)","d5d434c9":"SocialXBounty()","d5d4dfad":"balanceHistoryLength(address)","d5d55931":"ETXCrowdsale()","d5d55c8a":"PurchaseConfirmed()","d5d5913c":"getCCH_edit_2()","d5d5cefa":"cancelOptionOrder(address[3],uint256[3],uint256[2],bool)","d5d5f469":"getDocumentIdWithIPFSdirectoryHash(string)","d5d66031":"Wp()","d5d75cad":"_changeWallet(address)","d5d8a751":"Gallery_MuYi_No3()","d5da9e82":"teamLockTransferFrom(address,address,uint256)","d5db3fe2":"LogTrade(address,address,uint256,uint256,uint8,uint8,uint256,int256,uint256,int256)","d5db72eb":"isRegistrar(address)","d5db9366":"cancelCollateralTransfer(uint256)","d5db9410":"ChangeProtectionTime(uint256,uint128)","d5dbb1ad":"solveBet(address,uint8,bool,uint8,bytes32,bytes32)","d5dbe634":"incrementTotalSupply(uint256)","d5dc7139":"Scratch()","d5dcc638":"StrongHands()","d5dcf127":"setAge(uint256)","d5dd5127":"managerNotSetInApp()","d5de30e0":"evMgmtInvestProject(address,uint256,address,uint256,bool)","d5de78bc":"getGrantBalanceOf(address)","d5df7559":"removeDocument(uint256)","d5df7bcc":"newFootballMatch(uint256)","d5e05c89":"isSpaceshipUpgradeAllowed(bytes5,uint16,uint8)","d5e0b616":"getAnyElementByIndex(uint256)","d5e0d8fc":"setCompositionPrice(uint256,uint256)","d5e0e131":"totalAdvisorsSupply()","d5e38f60":"lpFeeBp()","d5e3fbb2":"payfee()","d5e45a83":"positionFrom(address,address,uint256)","d5e4a36e":"isPreSaleRunning()","d5e4b342":"trexdevshopWaited1Years()","d5e5e6e6":"preciseUnit()","d5e83d9c":"RisikoCoin()","d5e99dac":"rateLoss()","d5e9abfd":"mustKyc(address)","d5e9eb9c":"IPM()","d5ea36f9":"offMaintenance()","d5eb0cbf":"isContractPermanent(string)","d5ec40af":"buyToken(uint32,uint32,address)","d5ec7e1d":"left22(uint256)","d5ec8d82":"_estIntegerSqrt(uint64,uint64,int256)","d5ecc1bd":"papu()","d5ed289d":"getClaimRate(uint256)","d5ed9cba":"setLandRegistry(address)","d5edca54":"Games(uint256,uint256)","d5ee739d":"tokenRateWei()","d5f0400e":"validClaim(bytes32,string,string,address,bytes32,bytes32,uint8)","d5f07396":"checkIfReferee(address)","d5f12812":"setSpend(address,uint256)","d5f17df2":"selectFight2DeathContract()","d5f1e8d8":"hardCapEther()","d5f24708":"gotake()","d5f37f95":"sign(uint256,uint256,address)","d5f39488":"deployer()","d5f404c7":"update_power()","d5f47a51":"Ethraffle_v3b()","d5f48e76":"cancelSynthesizingAuction(uint256)","d5f4f0b3":"addTokens()","d5f52d51":"withDrawMyBalance()","d5f5b788":"maxCapUSD()","d5f5df2a":"checkFiscal(bytes32)","d5f6b538":"getClaimsCountForStory(bytes12)","d5f72b2e":"addMany(address,uint256,uint256[],uint256[])","d5f7b144":"_burnToken(address,uint256)","d5f827e2":"TBrate()","d5f868b7":"removeReverseRate(address)","d5f87242":"assertInvalidState()","d5f9ac43":"transferFromTangibleAssetfund(address,uint256)","d5f9bdf1":"TokenCreated(address,address)","d5f9e6c7":"ProjectName()","d5fa2b00":"setAddr(bytes32,address)","d5fa2da5":"newEscrow(uint256)","d5fb1a1c":"ByteLockerShares()","d5fbe080":"_getEnd(int256)","d5fcc7b6":"setPresale(address)","d5fd5351":"WithdrawAddressApproved(address,address,bool)","d5fdb334":"getOpenGameIds()","d5fdfdbc":"setResult(string,string,string)","d5fe6062":"claimTusdProxyOwnership()","d5fec406":"abdicate(uint64,address)","d5ff0e7b":"transferToContract(address,address,uint256,bytes)","d5ff38ae":"migrateBasicData(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d5ff56f8":"allowChange()","d600630c":"registerInstitution(string,address,address)","d6006e88":"send(address[],uint256[],uint256)","d6006e8e":"preSaleSuccess(address,uint256,uint256,uint256)","d600c846":"JingzhiContract()","d60207c7":"getLowestUnitPriceIdxFromBuy()","d6026ac1":"getPRewardedSumByRound(uint256,address)","d6030d57":"BOUNTY_CAMPAIGN_SHARE()","d6039a41":"totalsigs()","d603f872":"buyPreICO()","d603fd28":"sendToAddressWithTime(address,uint256,uint256)","d6046836":"setAllowBuy(bool)","d604d6a8":"getSkillRating(address,uint256,uint256,uint256,uint256)","d604d8d1":"checkHash(bytes32)","d605787b":"rng()","d6063225":"Ktx(uint256,string,uint8,string)","d606f34b":"century(address)","d60743b1":"read_total_number_of_user_purchases(address)","d6077912":"RRRToken()","d608b3b2":"totalCharity()","d609ea93":"stakingEpochDuration()","d609fe59":"OEO(uint256,string,string)","d60bf518":"Test3(address)","d60d7044":"_char(bytes1)","d60dcb5d":"Switch()","d60df5be":"xmr()","d60e1447":"supplyBezNolei()","d60f0e5a":"BonusWhiteList(address,address,uint256,uint256)","d60f2eae":"buyPBTTAgainstEther()","d60f6cd9":"sendNumber(uint16,address,address)","d60fa784":"Voicecoin()","d60fd1be":"Hopecoin()","d6103b26":"_newPepe(uint256[2],uint64,uint64,uint64,address)","d6106696":"withdrawal_last_voter()","d6106b3e":"buys(uint256)","d611225b":"addContract(string)","d61191bd":"distributeValidityBond()","d612be77":"dpToken()","d612cff5":"permissionHash(address,address,bytes32)","d613ac91":"buybackTypeOne()","d613be0a":"forceChangeContractOwnership(address)","d6142c5b":"createProvider(bool,string,string,string,string,uint8,bool,address)","d615950d":"mintUpdateToken(uint256)","d61647f2":"developer_string_golos(string)","d617ad7d":"getPatentFee(address,uint16[5])","d618996b":"orderEnd()","d6192c6c":"hodlerStakes(address)","d619d216":"retrieveEth()","d619f6b3":"sendIndividualAmount(address[],uint256[])","d61a4524":"setdissolveaddress(address)","d61bd8fb":"getAvlShares(bool)","d61ca7eb":"RYH()","d61ccf84":"RABAToken()","d61e7201":"updateStatus(uint256)","d61e9274":"SetRate(uint32)","d61f92a3":"getJoinAddr(uint256)","d61fb0bf":"dateIT()","d620c7c8":"LogNewContractProposal(address,address,address,uint256)","d620caaa":"walletFromTeam()","d621b83f":"_createKydy(uint256,uint256,uint256,uint256,address)","d621c878":"improvementContract()","d621e813":"tradeEnabled()","d6223305":"ReleaseableToken(uint256,uint256,address)","d6224a6b":"getPixelText(uint256)","d6233491":"getPaid(string,address)","d6236ad0":"MetisCoin()","d62457f6":"callValue()","d624fdb6":"approveUser(address)","d625a7a6":"BetAdded(uint256,address,uint256,uint256,uint256)","d625c654":"migrateLosingTokenRepToWinningToken()","d6264b75":"transferBack(uint256,address)","d626db79":"setPublicWhitelistAbility(bool)","d6271727":"processUpgrade(address,uint256)","d628e0a6":"WatchBalance()","d628ecd7":"multiValueAirDrop(address[],uint256[])","d6291f6f":"VitalKey()","d629bc12":"iNf4mation()","d62a13ac":"ExhaustionCoin()","d62a7127":"getlastid()","d62ac58c":"AdvisorsPartners()","d62b255b":"setOwner(address,string)","d62b6f7e":"Main()","d62c6523":"cancelReservedTokens(address,uint256)","d62d3115":"testCreate()","d62f0f22":"getMyRice()","d62f146b":"updateSkill(uint256,uint256,uint16)","d6300201":"getPercent(address)","d630bd53":"pledgeApprove(uint256)","d630d100":"releaseAdmPercent()","d630efbc":"getAllTotalPrize()","d63124d7":"checkMidiNotesValue(uint8[])","d631eed7":"withdrawEthForUser(uint256)","d631f6d4":"DeleteProject(string)","d63241a6":"EtherCheque()","d63249ee":"_placeBet(uint256,address,bytes)","d632f639":"_privateSale()","d632fd1d":"PIP()","d6349dd6":"referralDividendsOf(address)","d634ba22":"baseNumber()","d6351433":"getRichToken(uint256)","d635357e":"TestContract(int256,string)","d63547e6":"GetFreeCnt()","d63581de":"setPricePoints(uint64[])","d63587a2":"randomNum(uint256)","d635b69f":"preValidatePurchase(uint256)","d635fc63":"getReveralSupply()","d6362e97":"getMin()","d6370149":"_errorAndRefund(string,uint256,uint8)","d6380f37":"complete(uint256,uint256)","d6387a3e":"getMinersAt(uint32,uint32)","d638d981":"SingularityTest24()","d63900d5":"getTileLocation(uint16,uint16,address,address)","d6391a01":"Total_TokenSupply()","d639bf80":"Bitstocksmarket()","d63a1389":"mintFeeFlat()","d63a6ccd":"usd()","d63a8e11":"allowed(address)","d63bed4c":"_setPermissionManager(address,address,bytes32)","d63d4af0":"getOwnerTokens(address)","d63e6ce7":"increasePeriod()","d63e7cc1":"priceICO()","d63ebe92":"StepVesting(address,uint256,uint256,uint256,uint256,uint256,uint256,bool)","d63eea42":"MAX_NUMBER_BETTERS()","d63fe1c7":"TARGET_TOTAL_SUPPLY()","d64196f8":"minInvestedLimit()","d641f3e4":"playGame(uint256,uint256,uint256,bytes32)","d64232c0":"option10name()","d6424ea7":"calculateAmount(string,uint64)","d6427c24":"randomPlayer()","d6449e15":"cancelTXwithCode(bytes32)","d644af34":"withdrawAndSend()","d644c46f":"wuxiaMasterPrice()","d644e356":"index(uint256,address,uint256,uint256)","d645ddf6":"mint(string,string,string)","d64637c7":"distributeDivident(uint256)","d6464b7c":"getSellerOfToken(uint256)","d6475c3a":"returnTokensForDay(uint256,uint256)","d647bb22":"Customcoin()","d647e2da":"test_set_get_RiskParameters()","d6481502":"setFreezingPercentage(uint8)","d648a647":"fundingStartBlock()","d648d7fd":"post(address,uint256)","d6495676":"emitPaymentReleased(uint256)","d64b12cf":"MAX_UNICORNS_TO_GIFT()","d64bcc1a":"releaseIcoTokens()","d64c2018":"setNextImagePart(uint256,uint16,uint16,uint16,uint256[])","d64c34fc":"getLockAmount()","d64d136d":"wnFromGas(uint256)","d64d6968":"isReferrer(address)","d64dc79f":"bidDkl(uint256,uint256,uint256,bytes,uint256)","d64e4e1b":"PKTToken()","d64ee8d2":"unBlockContract()","d64f5135":"In(address)","d64f86c0":"nextTransferFeeProp(uint256)","d64fe5ea":"getLockedWalletReleased(address)","d650cb2e":"forgiveMe()","d652818d":"ZYMToken()","d6528231":"FACTOR_3()","d6545ede":"hbtoken()","d6555687":"migrateUserData()","d655c786":"cancelOrderInternal(uint80,bool,bool)","d656a794":"stopForce()","d657ae0c":"actualTotalSupply()","d6582d0d":"isWeekDay(uint256)","d658d2e9":"hashes(bytes32)","d658d3ed":"setLedgerValue(string,address,address,uint256)","d65995ed":"attemptBeginLoanAtIndex(uint256)","d659afb6":"_isCooldownReady(address)","d659d968":"is_open()","d65a16c0":"isOneToken()","d65a4184":"tokenSaleActive()","d65aabc1":"t_Slava2()","d65ab5f2":"startGame()","d65b476c":"Governable()","d65b48fd":"ReceivedTokens(address,uint256,address,bytes)","d65c0035":"removeAddressFromWhitelist(uint256,address)","d65c8c6c":"claimDiamond(uint64,uint64)","d65f86f2":"setLeed(string)","d6604881":"whitelistBonusLockPeriod()","d660521c":"depositStake(uint256,bytes)","d660c897":"theRichest()","d660ea36":"lastBlock_v1()","d661952a":"removePrivilegeAddress(address)","d6619ffb":"funds_address()","d661d206":"INITIAL_FOUNDER_SUPPLY()","d661dd31":"MULTIPLIER_DIVISOR()","d661f244":"getRoomName()","d6636307":"stateSetOver()","d66495cd":"getSpaceshipProductTotalSoldByModel(uint16)","d6649861":"tokenTransfertoACC(address,uint256)","d664cd89":"askMembership()","d6661999":"securityTokenOffering(address,uint256,uint256)","d6664653":"landmarkToOwner(uint256)","d667dcd7":"houseEdge()","d6680a69":"getAllIntel()","d6682007":"getGameNumSides(uint256)","d66847df":"distributeARTToken()","d668a461":"escapeHatch(bool)","d668e654":"LogTokenReceiver(address,uint256)","d669133f":"PotSplit(uint256)","d669899c":"sendLudumToSingle(address[],uint256)","d6699f48":"addPolicy(uint8,uint256,uint8)","d669e1d4":"MAX_CAP()","d66b0b51":"komission()","d66b2207":"escrowTransferInfo(address,uint256)","d66bd524":"reserves(address)","d66c7faa":"ICO_PHASE3_LIMIT()","d66c9cc2":"transferSenderPaysFee(address,uint256)","d66cac2b":"invest(uint32,uint32,uint64,uint16)","d66cb9e1":"renewbeginnerprotection(uint256)","d66d9e19":"leave()","d66e5726":"getWriter()","d66f146d":"refundPoll()","d66f3afa":"addEmployee(address,string,uint256[3],uint256)","d66fd10d":"LogVote(address)","d6714924":"calculateBoardScore(uint256)","d6721000":"addCommissionToPendingWithdrawals(uint32)","d6728d51":"developer_EKN()","d673c93b":"split(address,uint256,uint256,uint256)","d6740de5":"mint_for_testing()","d674d6a1":"RimuoviNegoziante(address)","d6755434":"remainingCapInWei()","d6757f39":"_existPlatform(bytes32)","d675ecbd":"addPrivateInvestor(address,uint256)","d67601ac":"starsRemainingToAssign()","d67772d3":"PennyEther()","d6779b01":"winningsClaimable(address)","d6779d6f":"isWarrantyValid(string)","d678724f":"getGameNumberOfEntries(uint256)","d6787711":"betHash()","d678ba48":"depositLRC()","d679677a":"currentTier()","d6798645":"set_cooldown(uint256)","d679c4f2":"claimDividendPercentage()","d67a073f":"Drain()","d67a10e3":"etherDelta()","d67a1140":"getMultiBalances(address)","d67a12d4":"getStrategyHiddenState(bytes32)","d67a1694":"getBountyChance(uint256)","d67a7e5f":"updateSignedDealsCountInBulk(address[],uint256[])","d67ae54d":"EUR(uint256)","d67b534e":"socialIdentityToCardId(uint256,uint256)","d67b9a89":"ONLY600Coin()","d67bf1ad":"coinBurnMkt()","d67bf379":"getByUser(address)","d67c1a7a":"finishCrowdSale()","d67c4497":"_approveTransfer(uint256,address,address)","d67c7f35":"p_update_mResaleMultipler(uint256)","d67c9961":"pass(uint256)","d67cbec9":"release(uint32,uint32,uint32,bytes20)","d67d0bb9":"tokenCreationMaxCap()","d67d3af8":"cancelRequest(address,address)","d67d73e0":"removeAllowedContract(address,address)","d67d78cd":"addCard(uint32,uint32,uint32,uint32,uint32,uint256)","d67f4d1b":"TittyFarmer()","d67fd89e":"setout(bool)","d6805f49":"novaTransfer(address,uint256)","d680914d":"SLABToken()","d6816cc1":"fixSpecications(uint256,bool)","d68199dc":"gameStats()","d681ffa7":"getDefinition(uint256)","d6820709":"beginTimeTS()","d6823455":"minQuanValues()","d682b601":"auditContract(address,bytes32,bytes,bool)","d6830af3":"setSettingTAOId(address)","d68314ea":"setReserveWeight(uint32)","d68352d2":"BeatTokenIcoPhase1Started()","d683d1a2":"markRedemptionFulfilled(bytes32)","d6847cd8":"getWithdrawalCoolingPeriod()","d68526c8":"withdrawGemmyMusic(address,uint256)","d68561a3":"_isOwnerOf(address,address,uint256)","d6858850":"AlphabetConvert(address)","d6872352":"sendEtherManually(address,address,uint256,uint256)","d6875520":"reclaimUnwantedGift()","d687a9b3":"_deleteAddress(bytes32)","d687b57e":"interSend(address,uint256)","d689cfe1":"_setClientPaidUpTo(address,uint256)","d68a9fb8":"getFreeTokensAmountOfUser(address)","d68c967f":"addAddressToBackEnd(address)","d68d961a":"ROLE_MINT()","d68e0ff7":"DestroyCoin(address,uint256)","d68e462c":"withhold(address,uint256)","d68e9b1e":"createGen0Token(uint8)","d68f30a7":"recordMoment(address,uint256,uint256)","d68f65f8":"SHAToken(uint256,string,string)","d68f6aac":"salers(uint256)","d68f93df":"changeBonuses(uint256[],uint256[])","d68fac6d":"knuckReward()","d68fbe5c":"testCannotGetTokensInNotInitiatedSale()","d6906295":"withdrawCloneTokens(address)","d691092a":"predictExploreReward(uint256)","d6914217":"getServerUserIndex(address,uint256)","d6916c34":"airDrop(address,uint256[],address[])","d6938c18":"StagebleCrowdsale()","d693dca2":"setAllowCnsContract(address,bytes32,address,bytes32,bool)","d693e17f":"internalSend(uint8,address,uint256)","d6940c8c":"_RemovedFromGeneration(address,uint256)","d69450d5":"setUUID4Bytes(bytes)","d6948c47":"winningTeamId()","d69570e2":"durationOfState(uint256)","d6960697":"confirmPurchase()","d6965ff7":"shops()","d696888a":"EpietherCrowdsale()","d697a9f1":"CooCoinToken(uint256,string,string)","d69932a3":"getLpBidPrice()","d699c00e":"transferWeiToWallet(uint256)","d699fe3d":"setPhase(uint256,uint256,uint256,uint256)","d69a0d2f":"getMostExpensiveCryptoGamer()","d69a1a5f":"getNextPayoutEstimation()","d69b6cf4":"IdolToken()","d69c3d30":"nextNonce()","d69c9275":"extraDistributionPart()","d69d895e":"NUM_RESERVED_COIN()","d69dbf63":"getIssuanceBlockTimestamp(bytes32)","d69dc9a5":"balance_(address)","d69dd156":"setInt256(int256,int256)","d6a02bc2":"getSignedSubscribers()","d6a039f0":"Qbase()","d6a0810f":"ContractPurchased()","d6a0dec5":"buyTicketByOther(uint256,bytes32,bytes32,bytes32,bytes32)","d6a15231":"getIcedInfos(address)","d6a1f6a7":"breakIdUniqueness(uint256,uint256,address)","d6a2a596":"CrowdSale(address,uint256,uint256)","d6a30fb4":"start_quiz_quest(string,string)","d6a39db0":"lockUp(bool)","d6a3b623":"HONORABLE_LOSS_BONUS()","d6a3bc16":"finalReserveWallet()","d6a3f374":"dividendRate()","d6a43a3e":"setPermissionById(uint8,bytes32,bool)","d6a45623":"setAuctionsEnabled(bool)","d6a527eb":"share1()","d6a55e10":"sub_arbits(address,address,uint256)","d6a595ac":"payto2()","d6a5e546":"emergencyRefundContract()","d6a619e3":"transferIfPuritanical(address)","d6a62445":"confirmReturnToken(bytes32,string,bytes32,bytes32,uint256,uint256,uint256,uint256,uint256)","d6a6a520":"undoUpgrade()","d6a6da3e":"angelInvestorsTokens()","d6a75d82":"winningsClaimable()","d6a78004":"burnRemaining()","d6a83613":"bytes20ToString(bytes20,bytes20)","d6a90bcf":"tokenMultisigWallet()","d6a9c807":"_createDog(uint256,uint256,uint256,uint256,address,uint8,uint256,bool)","d6a9de51":"getSeller(uint256)","d6a9e9d1":"teamPercentage()","d6aab015":"getBonusPool()","d6abe110":"tokenDetails()","d6ac2394":"payoutInvestor(uint256)","d6ad00a9":"DOJC()","d6ad5e5e":"MIN_ACCEPTED_VALUE()","d6ae5f29":"getUsedReserveSupply()","d6aefb61":"setBatchTransfer(address,address,bool)","d6af9411":"Rouleth()","d6afc9b1":"getProfile()","d6b0f363":"OpusToken(address)","d6b0f484":"disableWhitelist()","d6b1deac":"KTOCrowdsale()","d6b1e4a9":"buyMinersWithEther(uint64)","d6b224f2":"getNextActiveBuyDetails(bytes32,uint64)","d6b2b242":"Realize(uint256)","d6b2e2ba":"PARSEC_CREDITS_PER_ETHER()","d6b33f59":"getNextActiveSellDetails(bytes32,uint64)","d6b44859":"scheduleUndoIt(uint256)","d6b4ec12":"getDailyWithdrawalLimit()","d6b52d9a":"partnerETHRewardsPercent()","d6b53175":"UpdatePoolState(uint8)","d6b5983d":"checkAmount(address,uint256)","d6b5abc9":"weiToPonzi(uint256,uint256)","d6b645bc":"react(address)","d6b6f9f1":"secondXRChangeBlock()","d6b74865":"watcher()","d6b7c81d":"BountyIssued(address,uint256)","d6b867e6":"exchange(uint256,address,uint256)","d6b8ae26":"jexp(uint256,uint256,uint256)","d6b8ec66":"presaleEth()","d6b92187":"_syncLockedDepositsAmount(bytes32)","d6b93d43":"fillBuy(address[8],uint256[6],uint8,bytes32,bytes32)","d6b94aba":"TTT(string,string,uint8,uint256)","d6bacb0e":"getTxRoot(bytes32)","d6bafa0c":"ECommercePaymentSystem()","d6bb0ad5":"CrowdsaleGummy(address,address)","d6bb358e":"LuckyBaby()","d6bb9eff":"getMartialCardTypeIdList(uint256)","d6bc1b39":"setPrices(bool,uint256)","d6bc1e57":"fromWei(address,address,uint256)","d6bd603c":"getBalance(address,address,address)","d6bd64fc":"test_get_expired()","d6bd8727":"getUrl()","d6be178d":"rateStage2()","d6be6bd5":"birth(bytes32)","d6bea5fd":"rangeToProposalID(uint256)","d6bec803":"setExpiredAndWithdraw(address)","d6beebf7":"buyTokens_ETH(address,uint256,uint256,bytes8)","d6bf28e4":"_sendMonsterPrize(uint256,address)","d6bf7530":"getEthDepositAddress()","d6bfc2d4":"oykooshi()","d6c0ceab":"changeBountyDeadline(uint256,uint256)","d6c12f88":"pricingPlan()","d6c1869b":"s33(bytes1)","d6c19fe0":"build(bytes,uint256,uint256,address)","d6c1be92":"gameEarnings()","d6c242d6":"approveViewer(uint256,address)","d6c2479a":"donationsAddress()","d6c3453c":"addTrancheRateAndTokens(uint256,uint256,uint256)","d6c54bf7":"destroyTokens(address,address,uint256)","d6c5a41e":"tier3End()","d6c5d823":"getScientificData(uint256)","d6c6f48e":"mintAgents()","d6c75abf":"RiskPrices(address[],uint128[])","d6c7b4ad":"receiver1()","d6c7b65b":"addInfo(address,address,uint256,string)","d6c8976b":"changeTokenController(address)","d6c8f93c":"getCooldownIndex(uint256)","d6c9d27a":"addCountry(uint256,uint256)","d6ca8ccb":"disown(bytes20)","d6cb56e6":"FishCoin()","d6cb9ec2":"viewContractState()","d6ccb332":"FED(uint256,string,uint8,string)","d6ccf7a7":"addTokenTime(uint256,uint256)","d6cd4a02":"listAgents()","d6cf18e7":"createPiranhaTokens()","d6cf5297":"oracleItSetNetwork()","d6cfece1":"preBonus()","d6d02c51":"whois(string)","d6d13ac0":"Split(bytes32,uint8)","d6d14171":"initialTimestamp()","d6d1b8bb":"TCLRToken()","d6d1f369":"Test4(uint256)","d6d1fc2a":"SoSoCoin()","d6d21dfd":"who()","d6d22fa4":"MetaCoin()","d6d25008":"coldStoreLast()","d6d30a51":"increaseJackpot(uint256)","d6d3286c":"geProposalInfo(uint256)","d6d329b9":"ships(uint64)","d6d34c7c":"coOwner()","d6d3e19c":"DigitalKeyCoinKO()","d6d4136a":"checkPos()","d6d5c8d5":"DEFROST_MONTHS()","d6d65f3d":"getCurrentMilestoneIndex()","d6d6945e":"doPurchase(address,uint256,uint256)","d6d707a6":"BaseStoreToken()","d6d76ed5":"status(address,bytes32)","d6d76fb7":"ArtCertificate(address,bytes32,string,string,string,string,string,address)","d6d7d525":"get(bytes)","d6d80f0b":"withdrawal_party_a_gets()","d6d86646":"UpdatePolicyState(address,string,string,uint8)","d6d902c4":"claimThroneFor(bytes,address)","d6d9266a":"setNewUseIndex()","d6d98ffc":"CosmicExperiencePoints()","d6da0805":"registerName(bytes32)","d6dad4cb":"BCFLeague(address,uint256,uint256,uint256,uint256)","d6db71e9":"allowRefund(address)","d6db85af":"fracExp(uint256,uint256,uint256,uint256)","d6db8ab6":"dividendPayouts(uint256)","d6dbf1c2":"getPOOL_edit_9()","d6dd1f0f":"ConnectLeaf(uint256,uint256)","d6dda33d":"isPremine()","d6ddbd2d":"purchaseAdv(uint256,uint256,string,string)","d6ddd21b":"vestingStartTimestamp()","d6de8dc4":"getPlayBlockNumber()","d6dfb77a":"getIndexToken(uint256,uint256)","d6e0bf29":"OwnerDeposit()","d6e0d73c":"mintA()","d6e20a56":"confirmKYC(address)","d6e2bcb5":"SwordMaster()","d6e325ae":"joinClub()","d6e38114":"addBet(address)","d6e3bb94":"addAudit(address,address)","d6e3dd77":"balancesImporter3()","d6e4ddc5":"ownerOf(address[16],uint256)","d6e5fe98":"setStakeRequirements(uint128,uint128)","d6e67215":"newCajutel()","d6e78eb0":"setGasMin(uint256)","d6e871ff":"loser(address,uint256)","d6e898ad":"vest2team(address,address)","d6e89cf0":"setTransferStatus(uint256)","d6e8a0b0":"incrementBid(uint256)","d6e95f77":"isSellable()","d6e9b019":"getDisputeData()","d6ea53b1":"changePayer(address)","d6ea5a0e":"distributionEntryCount()","d6ea8c90":"decimalOddsForOutcome(uint8)","d6eab9f2":"setHostFee(uint256)","d6eac4cd":"initTokenGrants()","d6eafd08":"scheduleCall(address,bytes,bytes,uint8,uint256[4])","d6eb1bbf":"authorised(address)","d6eb748c":"setRelation(address,address)","d6ec0065":"CHN()","d6ecb38a":"firstAddressFromDeployer(address)","d6ecff50":"Identified()","d6ed8f52":"addAirdropList(address,uint256)","d6edb047":"addAllocationPartOne(uint256,uint256)","d6ef25d5":"addVersion(uint64[3],address,bytes)","d6ef3de2":"Stocks()","d6ef7af0":"withdrawRewards(address,uint256)","d6efb030":"sendEthToContract(address)","d6efc8eb":"marketBuyOrders(uint256,bytes[])","d6effa2b":"ICOwei()","d6f0b484":"serverEndGame(uint32,uint8,uint16,uint256,int256,bytes32,bytes32,uint256,address,address,bytes)","d6f12a6a":"refundT4T()","d6f15469":"setBuyEnabled(bool)","d6f22e69":"getChecksumPairCount()","d6f327cc":"swapCardForReward(address,uint8)","d6f35eb4":"setMinAmountSale(uint256)","d6f3c45f":"tokenCrowdsaleCap()","d6f42038":"PhoneToAddress()","d6f4472d":"BTCS_PORTION_MAX()","d6f4c235":"setInstructor(string,uint256,string)","d6f4e56e":"allTokensSold()","d6f50ed6":"registrarApp(bytes32,address,bytes32[])","d6f5792d":"isCurrentAccountReader(address)","d6f5c939":"tie()","d6f6b6e7":"closeFailedVotingAndWithdraw()","d6f7ddf9":"topUp(address,uint256)","d6f8307f":"requesters(address)","d6f8560d":"withdraw_eth()","d6f8ecae":"time2()","d6fa3efa":"requiredTimeBetweenDraws()","d6fb1678":"mineableSupply()","d6fb69b9":"_sendWinnerJackpot(address)","d6fbf202":"startingPrice()","d6fc2e62":"rateProjectSecondParty(bytes32,uint8)","d6fd1fe9":"saleAction()","d6fd8822":"threeTimes(address,uint256)","d6fe3d6d":"afterForkRescueContractBalance()","d6fea306":"weiICOMaximum()","d6febde8":"buy(uint256,uint256)","d6feecde":"ret_len()","d700071a":"minorPartnerAddress()","d7003222":"unitCost()","d700ed39":"isStarterClaimed(address)","d70108a6":"getCmd_control()","d702087f":"setSecretSigner(address)","d7020b0c":"setarg_3(uint256)","d7020d2a":"approveEscrow(bytes16,address,address,uint256)","d702b63d":"for_longterm()","d702db81":"UserRetireHodl(uint256)","d702e364":"setPreICOSoldAmount(uint256,uint256)","d7052e17":"GotTokens(address,uint256,uint256)","d705d6d7":"MainSale(address,uint256,uint256,uint256)","d70657ac":"getBalanceHolder()","d7067dc5":"crowdSalePaused()","d70695bb":"swarmRedistribution(address,uint256)","d706df8c":"BioStem()","d7074aaf":"GetCard(uint32)","d70754ec":"node()","d7079ee7":"startPublicsale(uint256,uint256)","d707d466":"allocToMember(address,uint256)","d7081e03":"transferAmount(address,uint256)","d7085e05":"SafeSend(address)","d70907b0":"freezeWithTimestamp(address,uint256)","d70925b4":"teamEthTransferComplete()","d70948b5":"_create_drug(bytes32,address,uint256,uint256)","d7098154":"claimPrize(uint256)","d70afa96":"FEE_ADMIN()","d70b6342":"minInvEth()","d70cf105":"moveBalance(address,address,uint256)","d70d2e26":"DetherTx()","d70d37e6":"OptedIn(address,address)","d70d532b":"provideAccess(address,uint8)","d70d9254":"isBetClosed()","d70d9604":"Sales()","d70dbf7d":"Aequitas()","d70e0f90":"disableAuto()","d70e62eb":"lowLimit()","d70ed38a":"withdraw(bytes32,uint256,address,address,uint256,uint256,bytes32,bytes,bytes,bytes32)","d70efa86":"_inRateFallEffectLimit(uint256,uint256)","d70fe207":"cancelOrdersOnOption(uint256,uint256)","d710999d":"SiliconValleyCoin()","d7109dda":"getCurrentSaleDay()","d710e2f0":"sendAllToOwner(address)","d710eaac":"NewWallet(address,address,address)","d71186b9":"Fund_Contract()","d7121f4b":"HolikopterToken()","d7123dff":"_createBuilding(uint256,uint256,uint256,uint256,uint256,uint256,address,bool)","d712800f":"setLockValue(address,uint256,string)","d712d06d":"tokenDestroyed(address,uint256,string)","d712eb4a":"voteWeight()","d7130651":"getCity(uint256)","d7131e5f":"createToken(uint256,address,string,string)","d71331c2":"getCountPlayerByTrackId(bytes32)","d715c8b2":"ownerHistoryCount(uint256)","d716222c":"is_owner(uint256,address)","d716e9ca":"getTotalInvoices()","d71710e0":"countAttributeTypes()","d717b05e":"exchangeLimit()","d71801d4":"gallerySix()","d7182850":"ownerTokensAllocated()","d7186f2b":"KNTTToken()","d718e763":"FinalizableCrowdsale(address,address)","d719213e":"preBuyPrice1()","d719843f":"getVendingStepPrice(uint256)","d71a0d7c":"HolahopxToken()","d71c14aa":"_isAOContentUsageType(bytes32)","d71c4028":"DRPCrowdsale(address,address,uint256)","d71cdd78":"BONUS_HI_QTY()","d71cf1e4":"getFee(uint256,address,address,address,address)","d71d3b3c":"CrowdSalePreICO()","d71d6cc5":"blendbacktest(uint32[],bytes32[],bytes32[],uint64[],bytes32)","d71d9e8a":"buyFlower(uint256)","d71db8aa":"getBonusPerShare(address)","d71df760":"oraclize_newRandomDSQuery(uint256,uint256,uint256)","d71e58f8":"admin_set_exchange_rate(uint256[])","d71e8296":"canIWithdraw()","d71e930c":"teamAddressTwo()","d71eb6ab":"recursive_store(uint32,uint256)","d71f1bd6":"LottesyAddress()","d71fcbe6":"BaseBountyContract(address)","d7203294":"ZeroXEth()","d7206124":"setInvestorLock(bool)","d721b0af":"batchExchange(address[],uint256[])","d721c760":"IssueAssigneeLoaded(bytes32,string)","d7228bb5":"doSucceedingTransferFrom()","d7237e45":"invitedByReferalBonus()","d723879c":"icoOver2()","d723bb73":"fetchVoteInfoForVoterBySnapshotBlock(address,uint256)","d72473f3":"Added(uint256,string,address,uint256,bool)","d72503ba":"buyCat(uint256)","d725a9f0":"crowdSaleaddress()","d725f10d":"curse(address,address)","d7260cba":"refundGame(uint256)","d726755b":"moveFloor(uint256)","d726f7c7":"mainCoinSentToEther()","d7276479":"battlesOwner()","d727d64b":"disputeSettledTerminate(bytes32,address,uint8,address,uint8,bool,address)","d7289cb4":"FundsReturned(address,uint256)","d728b6db":"getCatOfferPrices()","d728cc72":"novaCoinAddress()","d7290181":"emptyWrongToken(address)","d7299009":"isCustomerHasACCfromWL(address)","d7299ef7":"pausePresale(bool)","d72ad259":"unlockFunds(address)","d72ad623":"getReferrerReward()","d72b11bd":"reserveWallet()","d72b6d3b":"CREATION_LIMIT()","d72bdc53":"initialize(address,string,string,uint8,uint256)","d72c83c0":"SmokeExchangeCoinCrowdsale(uint256,uint256,address,uint256,uint256,uint256,address)","d72c9391":"confirmTransactionSig()","d72d04db":"addGame(address)","d72d8dd6":"numRegistries()","d72dec33":"changeVaccinHistory(address)","d72e2b78":"soldTokensWithoutBonus()","d72e3de1":"createCustomReservation(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d72e4167":"getCompte_38()","d72eabb8":"minimalToken()","d72f7958":"fortune_break_current()","d73019e9":"icoStartDate()","d7303eaf":"nicole()","d7304b09":"cleanupOdd()","d730bfe2":"RabbitCoin()","d7311963":"m_controller()","d7315d60":"totaldeposited()","d731a779":"removeTRA(address)","d732a3fa":"newRound(uint256,bytes32)","d732d30e":"getGamblingPartyInfo(uint256)","d732d955":"decrease()","d73478f8":"userToNumTowns(bytes32)","d735140d":"fourthTokenExchangeRate()","d7353371":"PeerLicensing()","d7354b49":"getBirthDay()","d735875d":"Start_quiz_g(string,string)","d735dc92":"multiAirdrop(address[],uint256[])","d735fa25":"wholeSaleValueLeft()","d7365f9b":"_purchaseMake(uint256)","d737035d":"holdersBonus(uint8)","d73792a9":"FEE_DENOMINATOR()","d7379999":"permissionAt(uint8,int256)","d737c2b0":"setContractInfo(bytes32,address,bytes20)","d737d0c7":"msgSender()","d7385abd":"placeBet(int8,int8,uint32,uint256)","d7397a72":"setUrl(address,uint256,string)","d739aaf8":"getGameInfoById(uint256)","d73a24fc":"canBeWithdrawn()","d73a2901":"setManagedVote(uint256,uint152,bool)","d73b0cf2":"buyerFundRelease(uint256)","d73b1dc9":"decreaseAllowance(address,address,uint256)","d73b3a67":"withdrawal_Eth(uint256)","d73c277c":"storageName()","d73cbc6b":"testLen()","d73cbcba":"daCall()","d73cedd4":"SPECTRUMZ()","d73dd623":"increaseApproval(address,uint256)","d73e0c89":"getBookCount()","d73f0b25":"lookupCampaignPart1(uint256)","d73f3408":"SimpleMultiSig(uint256,address[])","d73fe0aa":"getShares()","d73ff0db":"preSaleBfPlatform()","d740547e":"mintBonusTokensForGames(uint256)","d740766e":"testNoTokenTransferIfNotApproved()","d741e2f9":"pip()","d743015a":"createAssetPack(bytes32,uint256[],bytes32[],uint256,string)","d743ca38":"newWinner(uint256,address,uint256,uint256,uint256)","d7441753":"getTypicalItemById(string,uint256)","d744f2a3":"wantMyToken(uint256)","d744f330":"IdClaveChain(address)","d744f47c":"validateMessage(string,bytes32,uint8,bytes32,bytes32)","d744fcb8":"ClaimFeesFromSharesBought(uint256)","d74543f0":"communityusersCap()","d7463573":"getOpeningTime()","d746a38b":"getMicroModuleByIdPart1(uint256)","d7471ad2":"nemocoin()","d7480aa4":"AuctusEtherVesting(address,uint256,uint256,uint256)","d748d1f6":"revokeEditorRights(address)","d74a960e":"BGFTToken(uint256,string,string)","d74a99d4":"create(uint256,string,uint8,string)","d74ae98e":"redeemShip(uint256)","d74afaa1":"newowner()","d74b2722":"setRefunder(address)","d74be848":"maskSender(address)","d74c894e":"setSecurityWallet(address)","d74d763e":"setUCCoinPerEther(uint256)","d74d7e79":"calculateRewardAt(uint256)","d74e0d9e":"SetBanker(uint8,address)","d74ea11e":"addMockPendingWinner(address,uint256)","d74f8e9a":"getLastPayments(uint256)","d74f8edd":"MAX_OWNER_COUNT()","d7504385":"validateToAddress(address)","d7508a55":"prepareAuctionForNonOGChain()","d7517caa":"getPresaleStatus()","d751b8de":"Request(uint16[],string,address,uint32[],uint256)","d7520298":"SetfirstTTaxAmount(uint256)","d7522582":"isCurrentTierCapReached()","d752dd8e":"AFSBToken()","d75318f8":"SecretCoin()","d75320b1":"_subtractFromMintPool(uint256)","d7533595":"keccak_f(uint256[25])","d7533751":"UnvestedSkyeCrypto(uint256,string,string)","d75352e1":"marginCall()","d75446fe":"etherGet()","d7546da7":"Commitment(address,address,address)","d754a6bc":"adminResetEmail(address,address,string)","d754f0ac":"LOCKOUT_PERIOD()","d754f3d5":"currentEraIndex()","d75528a5":"addSpecial(uint256,uint256,uint256)","d7554a68":"addUser(address,string,string)","d7557f18":"closeCampaign()","d755cc4a":"buyGOP(address,string,uint256,uint256,uint256)","d755e021":"getPlayerShipBattleById(uint64)","d7560f2b":"numRewardsUsed(address)","d7575592":"addr_teamPartToken()","d757579e":"XxxTokenSale()","d7578295":"Cashpayz()","d75b2b18":"takeCollateral(address)","d75b363f":"userRewardCount(address,address)","d75b5d9d":"RAFEND()","d75b80cc":"a_incognita(uint256)","d75d93f6":"registerMeOnToken(address,uint256,string)","d75de4ab":"isAddressInWhitelist(address,address)","d75e30cf":"drawFee()","d75e662f":"OverpayRefund(address,uint256)","d75e7afd":"calDivs(address,uint256)","d75e87ef":"PersonalInfoAdded(address,string,string,string,string,string,string,string)","d75ebde2":"joinGameFromBalance(uint256)","d75f0dd6":"SixtusToken()","d75fabb0":"RewardOffer(address,address,bytes32,uint256,uint256,uint128,uint256)","d7625c88":"hasMigrated(address)","d762755d":"minimumContributionWeiByOneInvestor()","d7638b73":"phase2Cap()","d763f92d":"FintechChain()","d7642ae2":"COIN_COST_ICO_TIER_3()","d7643e18":"protoCount()","d7651471":"Notes()","d7655b98":"OmixToken(uint256)","d7669119":"NewPrice(uint256,string)","d767aee0":"bbb()","d767ee4d":"updateLogic(uint256)","d7682701":"_cancelPermissions(address,address[])","d768729d":"getRecentDiary()","d7688d31":"destEthFoundationDev()","d7689460":"CryptoRex()","d768d95b":"finaliseContract()","d768d95e":"fetchVoteMainInfoForVoterBySnapshotBlock(address,uint256)","d768dd4b":"Stage3Allocation()","d769ae1b":"SLCAdvancedToken(uint256,string,string)","d769f32a":"mulXY(uint256,uint256,uint256)","d76a0cb8":"HybridBlock()","d76a130a":"TokenCDCQ(uint256,string,string)","d76a69e2":"Fund(address,address,address,address,address,address,address,address,address[])","d76b6095":"phase1Rate()","d76bce7c":"dropEth(address[],uint256[])","d76d6ee0":"query(bytes32,bytes2,int256)","d76dc2eb":"LOCKAMOUNT1()","d76dc656":"GDCAcc02()","d76dddd3":"unfreezeTime()","d76e5765":"getUserIpfsFromId(uint256)","d76f288f":"metaBurnHash(address,uint256,uint256,uint256)","d76f94aa":"toAlphabet(uint8[])","d7717750":"tokenLogic()","d7723231":"getIcoPurchase(address)","d772ddc0":"setProcessorAddress(address)","d7730236":"maxEthRaised()","d7734855":"getDiff(uint256,uint256)","d77371e0":"GoodDayToken()","d774c038":"multisend(address[],address)","d775db2a":"testThrowsSaleWalletIncorrectMultisig()","d7760500":"partnersRelease()","d7768c47":"prepare(bytes)","d77727de":"seeOwner(uint256)","d7777c29":"startPreICOStage1()","d77844f6":"isLimitationPeriodActive()","d77849c7":"tokenTakeback(address,uint256)","d7787f33":"setUpgradeContract(address,address)","d7789a9f":"unsetEndorsement(address,uint256)","d778c911":"price3()","d7790c11":"waipaytoken()","d7796915":"checkWithdrawValueFX(uint256)","d779ca24":"payoutBonusesToHolders()","d77a39c9":"addPresaleTokens(address[],uint256[],uint256)","d77a80a8":"lastFunder()","d77a86a0":"sendTo(address,uint64)","d77ac32d":"discountSum(uint256)","d77b0ff7":"keyAtIndexHasNext(uint256)","d77bd1ae":"ProposalAdded(uint256,address,string)","d77bf0cf":"CONFIG_PRICE()","d77c96f8":"mainICOThirdWeekEndTime()","d77d0012":"getBankPercent()","d77d3f79":"KoaStandardToken(uint256,string,uint8,string)","d77da4f4":"withdrawToTeam(uint256)","d77e2f55":"pendingEtherForCroupier()","d77e8986":"isExistsEscrow(bytes16,address,address,uint256)","d77ec4a4":"executeWithdrawTransaction(uint256)","d77fc50f":"checkZeroValue(uint256)","d77ff9ea":"eventCardRangeMin()","d7800fa2":"PurchaseRegistered(bytes32,address,uint256)","d7815ba4":"shareholdersHolding1y()","d7816f45":"transferlocked()","d781be46":"endDatetime()","d781d0f4":"YaoToken(uint256,string,string)","d781f3f4":"FootScoutCrowdsale()","d781fbf9":"removeERC223(uint256,address,uint256)","d78235cf":"setconfigurationEtherPrice(uint256)","d78276c6":"withdrawERC20(uint256)","d782cc54":"setNewBonusLevel(uint256,uint256)","d782d647":"createdTokens(uint256)","d7837ec9":"withdrawNonTop(uint256)","d783aacf":"ItalyToken()","d783b53b":"addSupporter(address)","d784601a":"myEthBalanceOfNoFee()","d784d426":"setImplementation(address)","d78506ce":"RoyaltysOwing(address)","d785c19c":"worldCupResultPart1()","d785e5c9":"m_isCirculating()","d78724d6":"getUserContractCount(address)","d7872745":"GumToken()","d788a945":"_isLongitude(int256)","d7892b6a":"changePeaceRelayAddr(address)","d789479d":"celtic_cross()","d78996d8":"getUtilizationAndAnnualBorrowRate(uint256,uint256)","d789b4c1":"uintMax(uint256)","d78b16a1":"emitTokens(uint256)","d78c15d9":"isPromoted()","d78c20ff":"voteApprove(uint256)","d78cb1b2":"buyXgoldTokens(address)","d78d610b":"getRecipients()","d78db648":"multStore(int256)","d78e1bb1":"teamPot_()","d78ed508":"getShipProductStartPriceByModel(uint16)","d78efa67":"addrecruit(uint256,uint256)","d7901260":"closePreICOPrivate()","d7901645":"GetDappinfo(string)","d790dce7":"endOfSaleFullWithdrawal()","d79185d7":"StartGuess_wis(string,string)","d791de63":"unlock(address[])","d791ed7a":"BaoBaoToken(uint256,string,string)","d792b356":"teamTokenAllocation(uint256)","d793f7a9":"preICOamountBonusMultipierInPercent(uint256)","d7942050":"Setuppresale(uint256,uint256)","d79521e8":"getPokemonDetails(uint256)","d7955eaf":"Santal()","d7959cf9":"ipfs()","d7963f94":"changeOwners(address)","d7982a6c":"unlockEscrow()","d7984cff":"CappedAndBurnableToken(uint256)","d79875eb":"sell(uint256,uint256)","d7988c98":"makeGrant(address,uint256,uint256,uint256,uint8)","d7989a93":"advancedTokensPerEth()","d79941d8":"getQueryRandomCallbackGas()","d79964c3":"addDeprecation(uint256,address,address,address,uint256,address)","d79b5bc6":"DonationSentButNotMatched(address,uint256)","d79bd499":"retrieveBalance()","d79c1f7f":"batchReclaimExpiredSwaps(bytes32,bytes32[])","d79cb6fd":"buyScams()","d79d5c7a":"COMPANY_TOKENS_PERCENT()","d79d63be":"getCardPrice()","d79d8e6c":"set(bytes32,address,bytes32)","d79e1e7d":"sumElements(uint64[])","d79e3755":"totalPromo()","d79e5de8":"HeliumToken()","d79e7894":"isAfterICO()","d79f5678":"DazzioCoin()","d7a084e0":"isWhiteListGame(address)","d7a08641":"checkCanRelease(bool,uint256,uint256)","d7a10acb":"balances2(uint256)","d7a1192d":"STAGE3_TIME_END()","d7a14a05":"totalAmountOfEarlyPurchases()","d7a15951":"winnerReward(address,uint256)","d7a17187":"ico2Raise()","d7a1cfe1":"addFriend(address)","d7a23fd4":"getActivityCount(uint256)","d7a42b54":"isEntity(uint256)","d7a4a09d":"detectJanuary(uint8)","d7a58658":"changeHouseedge(uint8)","d7a5afcf":"holderPartnershipsTokens()","d7a5f278":"slashInvalidUsername(bytes,uint256)","d7a5fdee":"DGPTokenOldContract()","d7a66ebe":"readContent()","d7a71868":"setManualPrice(uint256)","d7a78db8":"freeze(uint256)","d7a8560f":"invoicesStackCount()","d7aa6d74":"ShitCloneFarmer()","d7aa8273":"getTransactionInfo(uint256)","d7aae0e6":"executeProposal(uint256,address)","d7ab2770":"fetchGiven(address,bytes32)","d7ac79ba":"deleteHeir(address)","d7ad28ec":"GSMulti(uint256,uint256)","d7ad4931":"buyNow(bytes32)","d7ae339b":"ForecastChainToken()","d7ae76b6":"DING()","d7af26f8":"getPlayersBalances()","d7b03000":"resetCards()","d7b0a358":"shiggidyToken()","d7b0ca65":"last50plusblokhack()","d7b0e692":"set_new_admin(address)","d7b11125":"pwr(uint64,uint64)","d7b12454":"checkContract(address)","d7b12f38":"PRICE_STAGE_TWO_BONUS()","d7b15a88":"getLockedFundsLastSpending()","d7b1b9c4":"foundationTokensAllocated()","d7b1bb22":"cadastrar(bytes32,uint8,bytes32,bytes32,int256)","d7b2aae6":"setContactInfo(string)","d7b2f360":"getEncounterDetails()","d7b32f5f":"GetPrivateSale()","d7b33f66":"updatePercentToTakeAsSeed(uint256)","d7b33f94":"PRE_ICO_AMOUNT()","d7b40107":"auctionByAssetId(uint256)","d7b4750c":"getFunder(uint256)","d7b4a7f6":"MinerOneCrowdsale(address)","d7b4c9b1":"lookupKittyDetails1(uint256)","d7b53081":"closeSaleAnyway()","d7b5507d":"blockchaincertified()","d7b701b6":"SarahCoin()","d7b7024d":"approvedWithdrawAddresses(bytes32)","d7b7913b":"f3(uint256)","d7b7961c":"getPairHash(address,address)","d7b84f68":"moveDataContractBalanceToWorld()","d7b8cdf4":"MinimumContributionChanged(uint256)","d7b8de00":"setMaxCollectable(uint256)","d7b91bcc":"buyTokensICO()","d7b96d4e":"locker()","d7b97db1":"setDistributionTime(uint256)","d7ba30b2":"rateAirDrop()","d7ba42fc":"addActionAccount(address)","d7ba95ca":"share2()","d7baa041":"PublicLayer()","d7bb913f":"accountTokensPurchased(address)","d7bb99ba":"contribute()","d7bbce2a":"setOrCacheDesignatedReportStake(uint256)","d7bc23af":"newParameters(int256,uint256,uint256,uint256)","d7bd6d0d":"addExchangeAccounts(address,address)","d7bd8987":"testTransfering()","d7bdaaa6":"WLMWallet()","d7bdc3fa":"addVolumeDiscount(uint256,uint8)","d7be503f":"_tokePerEth()","d7be708c":"BoulePreSale(address,uint256,uint256,uint256,address)","d7be8ceb":"performFetch()","d7bea56a":"totalExcessEth()","d7bfc8c5":"BabyDragon()","d7c01c3e":"SetTakePot(uint256)","d7c0302e":"numOfCitizensWhoReceivedDrops()","d7c06439":"AriumToken()","d7c06919":"getAuctions()","d7c0d42d":"ControlledToken(uint256,string,uint8,string)","d7c0f72b":"getTitulaire_Compte_5()","d7c23572":"historyTimesPlayed(address)","d7c23578":"addSig(bytes32,bytes32,bytes32,uint8)","d7c26adb":"oraclize_setProof(bytes1)","d7c2a887":"MANAGEMENT_FEE_RATE()","d7c35657":"EthsqrGate()","d7c39cc6":"totalSellingItem()","d7c482ef":"Defroze(address,bool)","d7c48e2b":"preseller()","d7c4e7ac":"HarlleriumCoin()","d7c4f9d3":"SignatureAdded(string,string,uint256)","d7c5b986":"LogContribution(uint8,address,uint256)","d7c61e7b":"CreateSaleAvgPrice(uint256,uint256,uint256,uint256,uint64,address)","d7c7159c":"buyWithKYCData(bytes,uint8,bytes32,bytes32)","d7c74279":"deployChildren(address)","d7c8112d":"WithdrawAllFunds(uint256)","d7c81b55":"gameId()","d7c81fdc":"MSCCStandardToken(uint256,string,uint8,string)","d7c8843b":"getEggsSinceLastHatch(address)","d7c8e90c":"voteAmendment(uint256)","d7c8f959":"CreateEmployee(address,uint32,uint32,uint16)","d7c94efd":"teamFee()","d7c97fb4":"erc721Contract()","d7c9a0e3":"getMyMoney()","d7ca01b5":"confirm(address,uint256)","d7ca3a90":"CelebrityMarket(address)","d7ca7cc5":"changeLockingPeriod(uint256)","d7ca9949":"totalSoldTokens()","d7cb55a2":"AToken()","d7cbac05":"BONUS_ICO_STAGE1_PRE_SALE1()","d7cbbb73":"getAllCardsAddress()","d7cc43bf":"aSetStart(uint256)","d7cc8362":"isLatestMajorTree(bytes32,bytes32)","d7ccc2c3":"getLastPayment()","d7cd6c13":"burnFundAccount(address,uint256)","d7cd7209":"newGroup(address,bytes32,address[])","d7ce330b":"Deco()","d7cea877":"monthStr(uint256)","d7cee31e":"houseAddress()","d7cf1d20":"HDT_Token()","d7cf61d7":"assertSignedByBoth(uint256,bytes32,uint8,bytes32,bytes32)","d7cf7bcb":"purchaseSafe(uint256,uint256)","d7cff986":"submitAnswerCommitment(bytes32,bytes32,uint256,address)","d7d0afa4":"_fetchCreatedOrdersForMerchant(address)","d7d12297":"taskTotalBalance()","d7d15059":"functionName()","d7d1b48c":"_setWingsValue12(uint256)","d7d1bdbd":"getUnsoldOwner()","d7d23155":"owner_linkage()","d7d29315":"drawReuslt(uint256,address[],address[],uint256,uint256,uint256)","d7d319e4":"CWCreturnQuery()","d7d3c4d5":"pvpContenderRemoved(uint256)","d7d40523":"HardwareWallet()","d7d43b41":"MoedaToken()","d7d49532":"lastBlock_a9()","d7d5878d":"revokeSchedule(address,address)","d7d7442f":"updateThreshold(uint256)","d7d7be34":"oraclize_query(string,bytes[1])","d7d88043":"endSaleDate()","d7d8cdd5":"addTRA(address)","d7d90fb1":"ClearCLevelSignature()","d7d96a12":"StarToken()","d7d9fef0":"scheduleTimelock(address,uint256,uint256)","d7dae83c":"active_withdraw(address)","d7dbb88b":"getn2Exception(bytes32)","d7dbdbe3":"setVicepresidenteDeMesa(bytes32,uint256,bytes32)","d7dc6203":"calculateInterest(address,uint256)","d7dcaa19":"BuToken()","d7dccb1e":"EthSplit(address[],address)","d7dd2ae3":"ValidateCitySnapshotInternal(address,uint256)","d7dd8652":"refundCrowdsale()","d7dde189":"StartupToken()","d7de57c6":"challengeWithFutureCustody(address,uint256,bytes32[],uint256[],bytes32[])","d7de9c6e":"setOracleQueryString(string)","d7df7ef9":"_createWonder(address)","d7dfa0dd":"logic()","d7e07d5f":"destTokensReserve()","d7e0b6e3":"registerUser(address,bytes32)","d7e0d83d":"setPrvd(address)","d7e0e776":"getBalanceOfInstance()","d7e11e9d":"AddTicket(bytes)","d7e25c36":"isCapReached()","d7e2f000":"preallocationsWhitelist()","d7e30832":"TankTransfer(address)","d7e31d67":"setRewardChance(uint256)","d7e3aab2":"VestedMultisigWallet(address[],uint256,uint256)","d7e4e1f7":"setSail(uint16,uint16,bool)","d7e5c07d":"allocateTokens(uint256,uint256,address)","d7e64c00":"investorCount()","d7e7088a":"setUpgradeAgent(address)","d7e751ff":"tokenWithdraw(uint256)","d7e8015a":"FuckToken(uint256,string,uint8,string)","d7e84fbf":"builder()","d7e8553a":"_deleteValidator(address)","d7e9ec6e":"RemovedBlackList(address)","d7ea39c6":"referralDone()","d7ea977b":"V1ChainToken()","d7ea97e2":"setBTHFoundationWallet(address)","d7ead1de":"right74(uint256)","d7eae6db":"setUnPauseEmergence()","d7eaef90":"LGTToken()","d7ebf53d":"countActiveCastle()","d7ec1fac":"CrowdSaleTokenSoldout()","d7ecb5e3":"MINI_GAME_BETWEEN_TIME()","d7ecba0c":"numBarriersPerBoard()","d7ecc129":"supplyTo(address,uint256)","d7ed3fb1":"get_participant_topl_address(address)","d7ed7453":"redeemWinnings(uint256)","d7edddb2":"withdrawAdministratorMoney(uint256)","d7edf88c":"replenishEth()","d7ef1356":"best_adjustment(bool)","d7ef4a04":"CreateCredoIco(address,uint256)","d7efbf34":"transition()","d7f08eed":"unlistSubName(bytes32)","d7f0d86b":"attackUnit(uint256,uint256)","d7f0df73":"Betcash(uint256,string,uint8,string)","d7f0f01b":"fund(uint8,uint8,uint8)","d7f31eb9":"forward(address,uint256,bytes)","d7f3c770":"Mesut()","d7f42ee2":"getBBLibVersion()","d7f56ef7":"partnershipsTokenAddress()","d7f59fd0":"tgeSettingsBlocksPerStage()","d7f6f81c":"getProviderBadge(address)","d7f746ce":"tickingBomb()","d7f7582c":"totalCapitalization()","d7f7f3aa":"markTransferTokens(address,uint256)","d7f8a053":"TokenRate(uint256)","d7f9d655":"Divies()","d7fa1007":"setHash(bytes32,bytes32)","d7fa445e":"claimBidReward(uint256)","d7fb4f1d":"endTime_()","d7fb5ef5":"angelSupply()","d7fb7427":"transferNewCoin(address,uint256)","d7fb8dc0":"messageForReason(uint8)","d7fc1b9b":"register(string,string,bool)","d7fc23a2":"createNewAsset(string,string,uint256)","d7fc98c3":"subscribeIndividual(bool)","d7fd00b0":"TEAMS_PER_ENTRY()","d7fd0e77":"requestTime()","d7fe270e":"multipleTokensSend(address[],uint256[])","d7febcb9":"TestUserBitFlag(address,uint256)","d7ff4d7a":"WODECESHIBI(uint256,string,uint8,string)","d7ffbbaa":"setInformation(string)","d8013c4e":"addNote(bytes32,bytes20,string,string)","d80162fc":"setRecommendStatus(bool)","d8018c42":"getReleaseTimes(address)","d801aa84":"isWalletFromUser(string)","d8020a18":"marketingPercent()","d80326a9":"VentanaToken()","d80364ba":"LogRegister(address,string)","d8047a07":"RobotChain()","d80528ae":"stats()","d8055812":"votesDecline()","d8058712":"UnicornAccessControl(address)","d8063ea6":"addDelegate(address,address,string,address,uint256)","d8070c40":"IcoPrice()","d807a688":"wper(uint256,uint256)","d8085306":"mintTokensForSecondStage()","d8085f78":"ownerCanClaimCard(address,address,address[3],uint256)","d8085fee":"multiMerge(address[])","d80866da":"isValidZ(uint16)","d8090cbf":"resetReclaim()","d809d248":"startNextGame()","d80a5c3b":"MyContribution()","d80ad1ed":"getSponsorshipProportionalAmount(address,uint256,uint256)","d80aea31":"_setCreatedBlockOnRevealsPhase(uint256,address,bool)","d80b1a68":"createAndEndowC1(uint256,uint256)","d80b2056":"emptyWrongEther()","d80cc340":"retainBalance()","d80d3025":"changeBonusSystem(uint256[],uint256[])","d80d9c55":"changeSecondsInBlock(uint256)","d80e821c":"reevaluateICO(uint256)","d80e8700":"CurrentTime()","d80ffb20":"drawNumber()","d8104e19":"GetMyEarning()","d810f298":"computeSettlementAmount()","d81111ab":"BuyTokens()","d8112523":"sendIncentive()","d811b100":"getHouseAddressOne()","d811b7ca":"transferToOtherBucketContract(address)","d811f09e":"ownershipTransferAllowed()","d811fcf0":"farmer()","d81230c8":"shareactive()","d812d961":"getSanName(uint256)","d812f2b0":"setDelegadoDeEscuela(bytes32,uint256,uint256)","d8132807":"_getMinAuctionStartPrice()","d8134a23":"removeAcceptedToken(address)","d813b4b9":"setArtIdt(string,string)","d8145062":"squirrelmasterReq()","d8148166":"DistributionMint(address,uint256)","d81494ba":"blacklist_addys(address[])","d8149fe7":"dive1(address)","d814ebed":"TruUpgradeableToken(address)","d8152cbc":"createBalanceSnapshot()","d816187f":"PreIcoWallet()","d8162db7":"lockedUntilBlock()","d8174150":"MAX_PRESALES_EXTENSION()","d8175101":"ownerHasCardSimple(address,address)","d81849b8":"additionalTokenRate()","d818eb63":"Fundraiser(address,address,uint256,uint256,uint256)","d818ecee":"setDisputed(address,string)","d81a91e9":"get_party2()","d81ab0c1":"invoke(uint256,address,address,bytes)","d81ad101":"IMPACT_REGISTRY_ADDRESS()","d81b1020":"setForceContract(address)","d81c2232":"icoPhase2TimeBonusInPercentage()","d81c6741":"removeAddressFromBonuslist(address)","d81d5062":"relayBuyerCancel(bytes16,address,address,uint256,uint16,uint128,uint8,bytes32,bytes32)","d81d8f89":"getSalaryTokensTotalValue(address)","d81dd9f7":"destroyGame(uint256)","d81dfe30":"LOCKED_TIME()","d81e8423":"get(address,address)","d81efdc4":"euroCentsInOneEther()","d81f53fd":"EtherId()","d81f84b7":"getAddr(uint256)","d81f9830":"BONUS_WINDOW_2_END_TIME()","d8207301":"MyWishCrowdsale(uint256,uint256,uint256)","d820ab95":"secondStageReserve()","d8211b0d":"BENZCoin()","d821b9f9":"initialAllocations(address)","d82277cc":"createInvestment(address,uint256)","d823eec9":"TEAM_TOKEN_CAP()","d825b510":"addDisagree(bytes32)","d825ebc3":"calculateMinting(uint256)","d826505d":"isEthNoEnc(uint16)","d8267fef":"letItRain(address[],uint256[])","d826853e":"sellKeys(uint256,uint256,string)","d826f88f":"reset()","d826fdf1":"checkRefundExistanceByOwner()","d8270dce":"creationTime()","d82745c8":"withdrawCooldown(address)","d828435d":"getNonce(address,address)","d8291e97":"CHELSCOIN()","d8294ede":"minimumTimeout()","d82974f8":"moveUnsoldTokensToFoundation()","d829f1e0":"blendWithOthers(address,uint256,uint256,uint256)","d82a6d56":"isOBR()","d82b394f":"createShip(uint256)","d82beb9e":"sender_enode()","d82c6df4":"inactivate()","d82ce857":"getPI_edit_26()","d82e3962":"calculateReward(address)","d82ed7eb":"unwhitelistAddressPresale(address)","d82f6a3f":"maxWeiInvestment()","d82f94a3":"deleteMinter(address)","d82fa3f1":"doInvest(address)","d831a158":"ownerCtuContract()","d831b714":"withdrawDeklaBalance(address,bytes)","d832d0c8":"isFoundation(address)","d833590f":"totalSupplyPretty()","d833c736":"tripleRoomMax()","d833dbe9":"preSaleRate()","d834e619":"min(uint256[])","d834f1e8":"setConfiguration(string,string,uint256)","d8353b75":"vestingDateEnd()","d83616b2":"TokenSaleLockTransfer(uint256,uint256,uint256)","d83623dd":"startDistribution()","d83678ac":"tradeToken()","d8367d41":"startIncomeDistribution()","d836b12d":"getInvestorTokenPercentage(address,uint256)","d836f06a":"VestingKYCSetted(address,uint256)","d836f794":"sellKebabs()","d836fbe8":"changeHatchEscapeCaller(address)","d8381df0":"createCastle(uint256,string,uint64,uint64,uint64,uint64,uint64,uint64)","d8389dc5":"hash(bytes32)","d8392c92":"WithCoin()","d83a223a":"changeFounderWalletAddress(address)","d83a7f67":"getDepositAddress(address)","d83a8d11":"testProposing()","d83aabbe":"getWagerCount()","d83c68b9":"Pilendthereum(uint256,string,string)","d83cb681":"getMixer(bytes32,uint256)","d83d2afc":"leftoverWeiAmount(address)","d83edd70":"refundEth(address)","d83f24a2":"multiMerge(address[],uint256[])","d83fcfa3":"TMN()","d8412808":"HazzaTokenInterface()","d84201bf":"buy5()","d8420e3a":"_isValidWithCompositions(uint256[],uint256)","d8436663":"destroyIBTCToken(address,uint256)","d8439165":"upgradePonyResult(uint8,uint256)","d843dcbb":"ELF()","d843e40a":"getRoundNum()","d843e721":"convertToATK(uint256)","d844a0fa":"TierionNetworkToken()","d845a4b3":"request(uint256)","d8460e8c":"Menu09()","d8464746":"getEyesValue(uint256)","d847e48f":"BlingTokenSale()","d8485ed6":"FCOIN1519Token(uint256,string,string)","d84891da":"EM122()","d8489a81":"MaxDistribPublicSupply_()","d848dee7":"setDeprecated(bool)","d8493983":"GroverBucks()","d849eeba":"gotResult()","d84acf20":"restoreAllTempTokens(uint256)","d84bd737":"xcc()","d84cb6ad":"ETH_Rate_Factor()","d84d2a47":"spreadMultiplier()","d84d95ba":"confirmMultipleTransactions(uint256,uint256)","d84dbdc3":"verifyInvestor(address)","d84f93cb":"priceOfOfficalCardSold()","d84fdbed":"getSponsorships(address,address,bool)","d850288b":"etherlist_top()","d8507a8d":"unfrezee()","d851eb5d":"betPlaced(address,uint256)","d8523fc2":"askForMatch(uint256)","d8526677":"MintMasterTransferred(address,address)","d852748c":"totalPoolOptions()","d8528af0":"allowedSpenders(address)","d85349f7":"cliffDuration()","d8542d51":"oldTokenAddress()","d8550112":"putServerAddress(string,address,uint256)","d855c059":"setExtraConfig(uint256,uint256,uint256,uint256,uint256)","d85633ec":"releaseOwnership()","d8567213":"chargeAll(uint256)","d856cbae":"ICOMinTresholdReached(uint256,string)","d8574e16":"addressD()","d857561d":"enableWithdrawal()","d8578d14":"showPlayerSafeById(uint256,uint256)","d857eba6":"getTagAt(uint256)","d8583895":"getNumberOfDeposits()","d85874b9":"badgerAmount()","d8589be3":"CoinFlipper()","d858b5c8":"order_sell(uint256,uint256)","d858ebf4":"createVisaOffering(uint256,bytes32,bytes32,uint256,uint256,bytes32)","d8590f93":"clearingPrice(address,bytes32)","d8592d79":"closeWormhole()","d85a82f6":"processDIVD()","d85b07e0":"stopIcoAndBurn()","d85b228e":"testCreateGame(string,string,bool)","d85b559f":"startSelection()","d85ba798":"getCutieId(bytes)","d85bd526":"running()","d85c8966":"ownerTransfer(address,uint256)","d85d3d27":"mint(string)","d85d656f":"getSMPTokensAmountPerWei(uint256)","d85d6d41":"finishLocking()","d85e5486":"privateCap()","d85e88db":"item(address,uint256,bool,bytes)","d85edab6":"m_investors(uint256)","d85f4450":"numberOfWins()","d860ced1":"TIER1END()","d86123e1":"setMany(address[])","d8615e5b":"transferAndPay(address,uint256,bytes)","d86202cb":"getUserProductAtIndex(bytes32,uint256)","d8627542":"intialSupply()","d862b611":"extraMint()","d8632388":"allPlayCount()","d8632ae3":"sign(uint8,bytes32,bytes32)","d863f7f4":"DigiPeso()","d86491fc":"testReentracy()","d864c322":"changeAccountStorage(address)","d864e740":"committee()","d8650f49":"tokenGenerationLock()","d865897c":"_getHashKey(address,uint256)","d865a374":"instruct_1()","d865ae9b":"hasRole(address,bytes32,bytes32)","d865dc4f":"tokensSoldCount()","d8674554":"tokenTransfertoKYC(address,uint256)","d867bb25":"getONG(bytes32)","d8682e69":"returnTimeLeft()","d86892a7":"setSellerGuarantee(uint256)","d868c718":"scheduleFight()","d8690c22":"isAvailableLockSlot(address,uint256)","d8692f17":"calcMerkleDefault(bytes32[],uint256,uint256,bytes32)","d869c681":"issuedTokenBalance()","d869d86d":"getAmountsForChangeWeight(address,address,uint256)","d86afbbb":"giveItem(address,uint256)","d86b2982":"numbersCount()","d86b3721":"getblock()","d86b8739":"redeemedTokens()","d86bc1b0":"cancelByAdmin(uint256[])","d86c31e5":"BOXSToken(address,address,int256)","d86c5bf7":"angelWheelFinanceSupply()","d86df333":"deleteAccounts(address,address,address[])","d86e1850":"AuditBalances()","d86e762d":"getTotalAmountRaised()","d86e79c3":"createFixedPeriodVpfFactory(string,bytes32,uint256,uint256,int256[],uint256,uint256,uint256)","d86eb3b7":"reservedTokensAddress()","d86ec25a":"setNotaryParcel(uint256)","d86f26f2":"BigBucksToken()","d86f8ccd":"getAccountLockState(address)","d86fb89d":"updateRoundsInformation(uint256)","d871e94b":"tokenClaimWaitingPeriod()","d8730ef2":"getMaxCommunityTokens()","d8737d8a":"buyEthUnit(uint256,uint256)","d873f0d6":"tokenSaleMin()","d874082a":"fundtransfer()","d8743fad":"weiMinContribution()","d87522ae":"pauseEnd()","d8754716":"createNewTankHull()","d87574e0":"airDropPot_()","d87624ba":"buyGrimReapersAgainstEther()","d87692d9":"transferAllAndCall(address,bytes)","d876c9c0":"SECOND_AUCTIONS_INITIAL_PERCENTAGE()","d8772e79":"get_transaction_count()","d8774d99":"restrict(bool)","d8783b04":"PRICE_MULTIPLIER_ICO6()","d8787fde":"nextContract()","d8788e68":"getTokensForSaleCap()","d879380d":"timeoutRegistration()","d879914a":"getBidsLength()","d879e911":"JORDAN()","d87a253b":"registerNameXnameFromDapp(address,bytes32,bool)","d87adaa0":"registerPubKey(address,bytes)","d87b5c29":"getSpawnCount(uint32,int256)","d87bc4cd":"WEGC()","d87bca3f":"VictorieumToken()","d87be21b":"lastBlock_a4Hash_uint256()","d87c3df5":"applyBonus(uint256)","d87c5df6":"assignTokensWallet(address,address,uint256)","d87c5fb9":"balanceOfBuyer(address)","d87c9478":"getStageAverageBonus(uint8)","d87ce037":"round1Cap()","d87d2a66":"ETH_CRWDTOKEN()","d87d2b8d":"BuyMOYTokens()","d87d9a66":"get_account_balance_eth(address)","d87ddccc":"WithdrawEvent(string)","d87e568a":"setHWCDeposit(address,uint256)","d87f8da5":"cancelAuction(uint256,bytes)","d880285e":"sPeriodEndDate()","d880610c":"appendKeyValue(string,address)","d88080ed":"ERC20Standard(uint256,string,string,uint256)","d880b0b0":"LogChangePCWallet(address)","d8819e0a":"maxTrainerLevel()","d8822727":"CarDeregistered(uint256)","d882ad5e":"Valeriumcoin()","d883e789":"PayWins(address)","d8844241":"getTotalCategories()","d884a322":"betMaxAmount()","d886daa2":"revokeAccessDeposit(address,address)","d8879dd8":"isValidString(string,string,uint256)","d8879fdc":"deleteBio(bytes3)","d887ac35":"mUpgradeCostFactor()","d8887efc":"withdrawForTrexdevshop()","d88905fa":"sanMint(string,string)","d8894bb5":"fraction()","d88a3af9":"register(address,string,string,uint256,string,string,bytes32,address,address)","d88ae250":"setProjectsContractAddress(address)","d88b0815":"numberOfCrySolObjects()","d88b2da2":"_registerReferral(string,address)","d88b8676":"addTrustedAccount(address)","d88b9732":"BUXCOIN()","d88bfbad":"ContractDisabledBlock()","d88c271e":"isWhitelistedUser(address)","d88c5237":"VenusCoin()","d88cdbd6":"setMe(uint256)","d88dc1c6":"winner_announced(address,uint256)","d88e92a7":"OmegaProtocol()","d8909e74":"withdrawMyDeposit(uint256)","d8910b70":"getTransferProxy(uint32,int256)","d89135cd":"totalBurned()","d8915fc5":"DCAssetBackend(bytes32,bytes32)","d8916bb9":"etherToWei(uint256)","d89397b1":"btcsBuyRecipient(address)","d893b9f1":"soldTokensPreSale()","d894e937":"setSomeValue(string)","d894f861":"costFunds()","d895530c":"getCurrentCandidateForPrize()","d8959512":"getConnectorBalance(address)","d8966ad3":"getTombByOwner(address)","d896dd64":"setStatus(uint256,uint8)","d89739b1":"Marketplace(address)","d897833e":"setSaleStatus(bool)","d898e1b9":"_depositEther()","d899299e":"realUnicornAddress()","d899d312":"Testimony()","d899e112":"target3()","d89ab6d3":"YouCollectCoins()","d89b465c":"getUnitAttackIncreases(address,address,uint256)","d89b8057":"setOscar(address)","d89b908d":"checkFundingCap()","d89bcaaa":"BATsPerEth()","d89cca38":"assignLawyer(string)","d89d4404":"_payEther(uint256)","d89dc0ad":"MarketOpen(address)","d89ea0f5":"setClearingPriceComponent(address)","d89edecf":"returnAmountPlusInterest(uint256)","d89ef018":"addUsersWhitelistA(address[])","d89f9719":"getOrderOtherArguments()","d89fb919":"episodePurchase(uint256,address,uint256)","d89fda34":"Fish()","d89fec58":"aboutCurrentPack()","d8a0aa6c":"getPositionById(address)","d8a119b9":"ownerSetVisible(string,string)","d8a140f9":"peony()","d8a1e70a":"widthrawDev()","d8a2848d":"setPaymentEscrow(address)","d8a351de":"_getDefaultPartitions(address)","d8a3daa0":"createEntry(uint256,uint256[])","d8a3f0bf":"getFactoryPrice()","d8a489d9":"pauseTournament()","d8a506f3":"thirdStageDiscountPriceOfTokenInWei()","d8a52178":"ContractManager()","d8a54360":"totalRemaining()","d8a5cca1":"Finalised(address,uint256)","d8a6021c":"transferTreasury(address)","d8a7233e":"addBook(string,string)","d8a74c7c":"getGamblingPartySummarizeInfo(uint256)","d8a74f3b":"ThrowError()","d8a79d87":"wolf3Balance()","d8a865f6":"getElementAt(uint256)","d8a8e03a":"move(uint256,address)","d8a9e45e":"getProductContractUser(address)","d8aa9f85":"totalForOutcome(uint8)","d8ab8274":"getStates()","d8ab9208":"addressByIndex(uint256)","d8aba1c6":"partFees()","d8ac1bb3":"buyTokensReferral(address,string)","d8ac26c0":"ForksTestContract()","d8ac289f":"frozenWallet4y()","d8ac5b4e":"tokensPerCents_gte5kUsd()","d8ad1c5c":"getCapAmount()","d8ae6139":"WavesPay()","d8aeedf5":"freezingBalanceOf(address)","d8afc2fe":"getAdminVariables()","d8afd392":"advisorySupply()","d8b0403a":"Bithemoth(address,address)","d8b0b499":"country()","d8b11d54":"AddItemExtra(uint32,uint16,uint256,uint16,uint16,string,address)","d8b120c1":"getMeshPointByName(int256,string)","d8b163d0":"eventsAdmin()","d8b29324":"unlockAmount(string,uint8)","d8b3315f":"public_withdraw(uint256)","d8b3a2eb":"isOdd(uint256)","d8b3ad77":"setDateTimeLib(address)","d8b3d69a":"getVendorApplicationScoringTrack(string,uint256)","d8b3e417":"USD20TestToken()","d8b4e580":"uploadBalances(address[],uint256[])","d8b50a63":"addAction(string,uint256)","d8b5cf43":"beneficiary_modify(address)","d8b66ae1":"sendTokens(address[],uint256[])","d8b79543":"FxxkToken()","d8b86753":"getOrderCount(address)","d8b964e6":"approved(address)","d8b98118":"CRLperEther()","d8b98fca":"AirDrop(address)","d8b9a2a0":"addContract(address,address,uint256)","d8b9a7e8":"CLC(uint256,string,string)","d8ba6de2":"Endorsements()","d8ba8ce3":"setNextDiscountTTMTokenId6(uint64)","d8baa905":"getAreaEvaluation(address,uint256,address)","d8bad5bd":"userLoans(address,uint256)","d8bbae03":"getTransferValueFor(address)","d8bd4761":"createCurrency(string,string,uint8,uint256)","d8be2838":"unSuspend(address)","d8be30fc":"getUserMessage(address)","d8bea898":"addReferredInvestor(string,address)","d8bf0568":"level1Bonus()","d8bf0ef8":"finishBurning()","d8bf1773":"calculatePoohBuySimple(uint256)","d8bf63b7":"START_BLOCK_NUMBER()","d8c02572":"Gallery_MuYi_No2()","d8c1c3c2":"getNumberOfTx(uint256)","d8c1fad1":"StakeIt()","d8c251b5":"isNotRegistered(address)","d8c2c1c1":"getcoeffcient(address,uint256)","d8c2c878":"PlexCoin(uint256,string,uint8,string)","d8c30700":"getCurrentCap()","d8c34127":"isKnownSignature(string)","d8c35273":"getHumanNumber()","d8c37ecd":"calculateMarketPixelPrice(address[16],uint256)","d8c3c1ed":"finalizeIto(uint256,uint256,uint256)","d8c42e42":"doublePrice(uint256)","d8c4661c":"getNID()","d8c4c34e":"KaraOmToken()","d8c4cd7d":"saveStudent(uint256,string,string,address,address)","d8c57892":"getDecision(bytes32)","d8c5c6f8":"disapproveInternal()","d8c65cbb":"_setEyesValue4(uint256)","d8c6bd6f":"checkMine(uint256)","d8c90762":"addTrustedIssuer(address,string)","d8c929a8":"getCurrentRoundRewards()","d8c9334b":"TextChanged(bytes32,string,string)","d8c94cd5":"_addToken(address,uint256)","d8c97f34":"transferFromVest(uint256)","d8ca713a":"getStringMember()","d8ca8a55":"distributeIQTTokenBatch(uint256)","d8cb2d4a":"STOCoin()","d8cb4aa3":"bonus(address)","d8cb52d3":"getFreeRabbit(uint32,uint256,uint8,bytes32,bytes32)","d8cba0ba":"transferWallet(address)","d8cba7a2":"phase3Cap()","d8cbce53":"calculateDividendsFor(address)","d8ccd0f3":"free(uint256)","d8cdac0d":"window0StartTime()","d8cecc7b":"MdedicalChainCoin()","d8cf9184":"getServerCreationFee()","d8cfd15a":"LogB(bytes32)","d8cff716":"NBAT101(address,address,address,address,address)","d8d07637":"poll(uint32)","d8d0819f":"CoinVilla()","d8d1d507":"whiteListContracts(address)","d8d1efea":"releaseTimeSecond()","d8d34c89":"ManualTransfer(address,uint256)","d8d3b1a4":"TIER1()","d8d40cee":"gameNumber()","d8d45d13":"setShipping(string)","d8d4a75e":"AUD_Omnidollar()","d8d4ec02":"checkVesting(address)","d8d5740c":"XMLYToken()","d8d5a200":"payBountyManager()","d8d736c5":"_makeDepositForPeriod(bytes32,uint256,uint256)","d8d777f2":"_attack(uint32,uint8,uint64)","d8d8e2f2":"test_23_assertGasUsage200Boards()","d8d9159d":"pr0coinAddress()","d8da3bc0":"getCurrentPotSize()","d8da708f":"preico_enddate()","d8db583f":"getFreelancerSkills(address,address)","d8dbb475":"JSONpath_string(string,string)","d8dbb712":"OfferCancel_internal(uint8,bool)","d8dbe4c9":"setContractManager(address)","d8dd2b79":"emitTransferFeeRateUpdated(uint256)","d8de5a41":"splTransferFrom(address,address,uint256,uint256,uint256)","d8df44fd":"maxTimeBonus()","d8df5dc1":"lockAmount()","d8df9aad":"setDayWithdrawCount(uint256)","d8e09dac":"setTrustee(address,bool)","d8e1b9ba":"explore2(uint256,address,bool)","d8e20e2c":"brickPrice()","d8e223b5":"issueMedal(address)","d8e2e392":"admin_set_isRequireData(bool)","d8e30740":"ETH_RECEIVED_CAP()","d8e3c1c8":"buyPlatinum(uint256,uint256,uint8,bytes32,bytes32)","d8e3c33f":"gridToIndex(uint256,uint256)","d8e476ab":"icoPhaseDiscountPercentage2()","d8e4ab0d":"isOmegaContract()","d8e4f9d9":"teamTwo()","d8e5ae6a":"Etheramid()","d8e5c048":"scheduleCall(address,uint256,uint256)","d8e5c797":"concat(string,string,string,string)","d8e5e64e":"getAsAddressOrZero(bytes32)","d8e60616":"OFNOG()","d8e6b249":"findPossibleDelegatorsOf(address)","d8e71b35":"ico3receivedTotal()","d8e74ed7":"monsterStrength()","d8e86854":"setPrices(uint256,uint256,uint256,uint256)","d8e8752a":"resetUsedToday(uint8,uint8)","d8e8b177":"interestOf(address)","d8e9602b":"tierCap(uint256)","d8e963b3":"PRE_ICO_END_TIME()","d8e97a56":"averageTimestamp()","d8eb3a98":"withdrawAuctionBalance()","d8eb6af3":"redeemEthers(address,uint256)","d8ebfe5a":"interaddmoney(address,uint256,uint256)","d8ec55ed":"meh()","d8ec696f":"__address1__()","d8edbd79":"ZTToken()","d8ee2ff4":"_buys(uint256,uint256)","d8ee796f":"founderAllocatedTime()","d8eea572":"getMinInt64()","d8eebd8d":"spentBalance()","d8eef28b":"ordersFor(uint256,uint256)","d8f012c6":"StatelessFactory(string,string,string)","d8f06b52":"closeAfterWhitelisted(address)","d8f0b9c4":"amountToBeneficiary()","d8f0c358":"getSetupParametersCount()","d8f163ab":"totalTokensDistributed()","d8f248b8":"getForge(uint256)","d8f2cd12":"onceSetOwners()","d8f2f09f":"china()","d8f306a1":"setAvailableToken(uint256)","d8f342be":"getBTCETH(uint256)","d8f3790f":"ethBalance(address)","d8f42fca":"SzeToken(address,address)","d8f45fdb":"LICToken()","d8f5d098":"privateUnlock(address)","d8f6d596":"getSale(uint256)","d8f6dcf2":"getTaskById(bytes32)","d8f71809":"MAX_COMMISION()","d8f9659b":"withdrawnTokens(address[],address)","d8f9d144":"changeOwner(string,address)","d8f9e51b":"EkoBeerCoin()","d8fa191b":"setProviderDetailFields(uint256,bool,bool,uint256)","d8faefc9":"fixDistribution(uint8,uint256)","d8fbbf31":"removeContractFromWhiteList(address,uint256)","d8fbe994":"transferFromAndCall(address,address,uint256)","d8fbff9f":"createDroneFromVault()","d8fce0d4":"pinchVillain(uint256,uint256)","d8fcfd6b":"convertRealTo256(int128)","d8fd1ed9":"creatorReward()","d8fd2043":"getSkullyById(uint256)","d8fd7ae3":"subtractAllowed(address,address,uint256)","d8fe1558":"BaseICOTokenWithBonus(uint256)","d8fe511f":"tithes()","d8fed39e":"tokenSoftcap()","d90025d1":"DIVIDEND_FUND_FRAC_TOP()","d900a6ae":"hgtSold()","d901402b":"getCommitHash(address,uint256)","d9019530":"request(address,uint32)","d901b98c":"test_1_generationAcrossBlocks_increaseBlocksBy100()","d902ac2e":"insert_data()","d9037441":"setEthFundDeposit(address)","d9037522":"removeVoter(address,string)","d903c5ae":"minimumTDEContributionInWei()","d904094e":"ownerCancelArmyMarketplace(uint256)","d9057007":"supportsInterface(address,bytes4)","d9067fbd":"initCongress(address)","d9076129":"secondBonusPercent()","d907e02e":"_cancelBet(uint256)","d9082962":"totalRefunded()","d9089b11":"_processDividends(uint256)","d9099f67":"endPreICOStage3()","d90a8224":"getNumberOfSuccessfulDeals()","d90a88cd":"getContentReplies(uint256,uint256)","d90b02aa":"left80(uint256)","d90b4958":"completeProject(bytes32)","d90c1759":"dayFor(uint256)","d90c2861":"Albertheijn()","d90cdfb4":"getCanvasInfo(uint32)","d90d5b58":"copyright(address)","d90d870b":"adminSetPercent(uint256)","d9106264":"clearAuth(string)","d910c805":"MAX_POWERBALL_NUMBER()","d9114476":"addAudit(bytes32,uint256,bytes32)","d912d248":"transfertOwnership(address)","d912ebb2":"tokensIssuedIco()","d9134c46":"isGlobalConstraintRegistered(int256,address,int256,address)","d9135493":"AdPotato()","d913dea2":"UsdRateSet(uint256)","d9144448":"upgradeProposal(address,address,address,uint256)","d9144712":"numberClaimToken()","d914cd4b":"addPool(address)","d915562b":"isControlled()","d9159f60":"sealedBy()","d915cdbd":"investBalances(address)","d916d8fd":"getPlayersCountByGame(uint256)","d916ec32":"getEmissionProviders()","d917863e":"addExchangeTestAccounts(address,address)","d9178993":"maxPeriodDuration()","d917deb5":"Donate()","d91921ed":"addBalance(uint256)","d9194d2c":"toggleTransferable(bool)","d9194fcb":"setCEO(address,bytes)","d91aee02":"getTotalGamesParticipated()","d91c98d3":"startingBlock()","d91ca13e":"EquinoxCoin()","d91d81c6":"preIcoEndAt()","d91dc952":"timeLock(address,uint256)","d91e1c63":"totalGambles()","d91e24c2":"TIMEToken(address,uint256)","d91f3f33":"BookERC20EthV1Dec()","d91f68a2":"currentMessageNumber()","d92126fc":"NewFees(uint256,uint256,uint256)","d9214848":"CONFIGURE(bytes32,bytes32)","d921eb78":"isRefund()","d922aa30":"core(uint256,address,uint256)","d922b6ab":"stage_1_tokens_scaled()","d922cd12":"InsightChainToken()","d922d5c8":"TimeLockedController(address)","d922f603":"Purpose()","d923a0be":"setLoyaltyWallet(address)","d923c99e":"getRecordByRow(uint256)","d9244bf9":"maximumHodlDuration()","d9246bec":"activateICO(uint256)","d9249e7e":"PuppiesCore()","d924c660":"shift_right(uint32,uint32)","d9269cb4":"at_permille(uint256)","d92782ac":"sumICOStage5()","d927b5ad":"addDistributionPeriod()","d928a3d8":"_getSchellingRoundSupply()","d928e32e":"ERC20Basic(string,string,uint8,uint256)","d9296e45":"totalWeiFunded()","d92c4f7c":"AirContactToken(uint256,string,uint8,string)","d92ca5b4":"tokensTeam()","d92d5bb3":"ADSToken()","d92d7056":"option20name()","d92da722":"processBuyRequestFiat(string,uint256,address,uint256,uint256)","d92da8f8":"bountySupplyRemaining()","d92dc325":"MintAndTransferToken(address,uint256,bytes32)","d92ebe46":"createDAO(address,uint256,uint256,uint256,string,string,uint8)","d92ec71b":"addDeal(uint256,string,string,uint256,bytes32,string)","d92ed48d":"rebalanceBuckets()","d92fb5e9":"newClaimer()","d9300e30":"checkIfAllALCDistributed()","d9305ba7":"LOG_OwnerDeposit(uint256)","d930a90b":"testFailMoveBalanceDueToInsufficientFunds()","d93112e3":"totalEarlyStage()","d9326337":"PiaoPiaoToken()","d932b248":"AssetISR()","d932ed92":"MarriageCertificates()","d933b5f2":"SLABSToken()","d933c1fb":"XYOracleBonus()","d933dac7":"view26()","d9359419":"payoutERC20(string)","d935bac3":"test1Vote()","d935c8b4":"totalEthSales()","d935e0a7":"BBCC(uint256,string,uint8,string)","d936547e":"whitelisted(address)","d9368ba2":"getUserOptState(address,address)","d93761fb":"transferSKM()","d937ed44":"grantVestedEDEXContract()","d9386789":"coreTeamMemberTwo()","d9386c9f":"cofounderVUPDestination()","d939727d":"setMaxTokenNumbers()","d939c960":"fundRecipient()","d93a0a8e":"newClassPlayer(uint256,uint256,uint32,uint32,uint32,uint32,uint32,uint32,uint32)","d93a64a2":"updateDebris(bytes32,uint8,bytes32,address)","d93b4451":"Authorise(bytes16,address,address)","d93d6ad0":"isKeyHolder(address)","d93da7f0":"ROUND_5_PRESALE_BONUS()","d93dbeff":"calculateLevel(bytes8,bytes5)","d93debd5":"registerDappAddress(address)","d93e5aeb":"count_next_address(address,uint256)","d93e7573":"disown(bytes32)","d93eeb5c":"safeTransferManyFrom(address,address,uint256[],bytes)","d93ef85f":"Photos()","d93fabfa":"addSeller(address)","d94073d4":"PT()","d94085cc":"FindMyFish_EnterBarcode(bytes32)","d9409bc5":"WFCC()","d940c3ee":"processPayroll(address,uint256)","d94123b8":"channel_api()","d94178c2":"getvalue(string)","d9417b6a":"balanceWosPoolToWosSystem()","d9417d69":"wikiRemoveTokenFrom(address,uint256)","d941c4ad":"prepare(bytes32)","d94288de":"totalFeatures()","d94389bd":"__char(bytes1)","d94395e2":"lastCitizenPaid()","d943c8b6":"oldHolders(address)","d9441f14":"playerMsgs(uint256)","d944534a":"generate(uint256,address,string)","d944c749":"ADVISOR_FOUR()","d945799f":"removeLockFund(address)","d94585bd":"proveAndClaim(bytes,bytes,bytes)","d9468475":"findRecentInterest(address)","d946af8f":"addNodeAddress(uint256,address)","d9474ad7":"unlockedProvider(address)","d9479692":"contract_name()","d947c8d1":"transferSketch(address,uint256)","d947e234":"offerGuardianVend(uint256,uint256)","d948d468":"forward(bytes)","d94929fe":"setTokenSaleRounds(uint256[5],uint256[5],uint256[5],uint256[5],uint256[5],uint256[5])","d94a0a7d":"findNextwaitPairBetIDs(uint256,uint256)","d94a75bc":"MELON_CONTRACT()","d94acc0a":"distributeVSN(address[],uint256)","d94b9843":"toContractAddr()","d94c7c29":"updateTokPerLockRate(uint256)","d94ca0f9":"approvePrimordialTokenAndCall(address,uint256,bytes)","d94d0316":"timeIncrease()","d94d0787":"EthlyteToken()","d94fd026":"applyPixelChange(uint256,uint256,uint256,uint256,uint256[])","d94fe832":"idOf(address)","d95030cb":"ticketTransfers(uint256,uint256)","d9506c5f":"startSettle(bytes,uint8[2],bytes32[2],bytes32[2])","d950aec6":"splitWinnings(uint256)","d950c432":"multiFreezeWithTimestamp(address[],uint256[])","d950cc3c":"getUserCap()","d9510215":"withdraws()","d9515238":"forward_funds(uint256)","d951d39a":"tokensIssuedForBonusRangeThree()","d951e357":"bonusFourthWeek()","d9520c9a":"allTokenOwnerOnStart()","d9527fa7":"buyShares()","d95374ce":"pendingJackpotForHouse()","d95402e7":"Redeem()","d95405f2":"lockTokenDays(address,uint256,uint256)","d95425e6":"TXwithCode(bytes32)","d95431cd":"lookupFeaturedSprites(uint256)","d9548e53":"isExpired(uint256)","d954a949":"setDeal(address,bool,uint256,uint256,uint256)","d954af09":"revealBid(bytes32,uint256,address,address,address,uint256,uint256)","d954bd4a":"ICO_TIER_LAST()","d954cbcb":"amountInvested()","d95514a8":"Regulator()","d955ec17":"setMiniumInputEther(uint256)","d95660be":"timeNow()","d956634f":"claimTokensAndRefund()","d9573c1a":"taxEth(uint256,address)","d9575ec5":"registerNameXID(string,uint256,bool,uint8)","d95808f0":"lastBlock_f3()","d9583497":"acceptFulfillment(uint256,uint256)","d9592676":"packKey(uint8,uint128)","d9597016":"multisetCustomGasPrice(uint256[],address[])","d95983c3":"Destroy(address,address,uint256)","d959868a":"total_no_of_CTD()","d959cbd2":"fMul(uint256,uint256)","d959e244":"left25(uint256)","d95a0aa5":"setDirectMintLimit(uint256)","d95a2d42":"lendGovernmentMoney(address)","d95a820f":"LogStartPreICO()","d95ab72d":"getMemberWallet(address)","d95ace6f":"checkSigned(bytes32,uint8,bytes32,bytes32)","d95b6371":"isOperatorFor(address,address)","d95c6092":"StartreasureToken(uint256,string,uint8,string)","d95efb98":"genesisAddress(address)","d95ffc08":"myEthBalance()","d9606ca1":"WINE(uint256,string,string)","d96073cf":"swap(uint256,uint256)","d960924d":"dtAddEthBalance(address,uint256)","d960ede1":"sectionPrice(uint256)","d96152c3":"executeRuling(uint256,uint256)","d961de44":"domainConnector(bytes32)","d9629e06":"casinoGames(uint256)","d962a68b":"buyTokensByUSD(address,uint256)","d962c51e":"redeemByTranche(bytes32,uint256,bytes)","d962dd99":"setCompte_43(string)","d9637826":"safe_sub(uint256,uint256)","d964f28a":"TokenAiNetworkToken(address,address)","d9652cb1":"startTimestampOfBonusPeriod()","d965ea00":"getMemberLength()","d9663f6a":"START_PREICO_TIMESTAMP()","d966cfc3":"totalAllocatedToAdvisors()","d967f752":"rentMachine(address,uint256,uint256,uint256)","d968595f":"isValidProposal(uint256)","d968dab1":"chipBalanceOf(address,address)","d9696054":"readInfoList(address,uint256,uint256)","d969b919":"Etherplanet()","d969ead4":"countpro(uint256)","d96a094a":"buy(uint256)","d96a22b8":"windowBonusStep1()","d96a8687":"XMPToken()","d96aee49":"MultipleConstructorTest()","d96bcd8f":"randomTargetAssign()","d96bfbb3":"resetUser(uint256,address)","d96c0991":"quitFromAirdrops()","d96c26c9":"submitTransaction(address,uint256,bytes,bytes,bytes)","d96c30a4":"checkTime(address,uint256)","d96c550a":"_preValidatePurchase(address,uint256,uint8)","d96cb018":"icoCap()","d96cc905":"toB32(uint256,uint256,bytes,address)","d96d7ea2":"PRE_EXECUTION_GAS()","d96db2ec":"OfferToRealm(uint256,uint256)","d96de4ce":"AdminDrawError()","d96e1f76":"icoStatus()","d96e5565":"testThrowsRetractNotRetractable()","d96ed505":"minGasPrice()","d97036c2":"ARM1Token()","d9703dac":"getResoMethod()","d97049bb":"regs(uint256)","d97095f3":"AST()","d970c19b":"raiseCoinsSeeded(address,uint32,uint256,uint256)","d9710278":"TwoFucksToken()","d9719e56":"CROWDSALE_SHARE()","d971da94":"priceUSDcETH()","d972bc59":"setICO_Contract(address)","d972e8ad":"getTranche(uint256)","d972ea3e":"dragon()","d9740383":"SAWJewelleryChain()","d9741bd9":"PinMoToken()","d975767b":"eLitecoin()","d975f3b7":"withdr(uint256)","d977076e":"getExtraBets()","d9779fbe":"currentTokenSupply()","d977a59c":"getCurrentRateByStage()","d9784223":"getEscrowAndHash(bytes16,address,address,uint256,uint16)","d9785451":"timerMax()","d978a0d3":"setFinancialOfficer(address)","d9795f66":"usersNTD()","d9797076":"CoinBroSupply()","d979e906":"getXNKPurchased()","d979f5aa":"setHolder(address)","d97a9c39":"resetContent(string,address,string,string,string,uint256,uint256)","d97b0a6e":"Workcoin()","d97b14f0":"sendAdvisory(address,uint256)","d97c5be5":"losePooling()","d97cec3f":"transferMultiSameValue(address[],uint256)","d97cf075":"onlyBouncerExecuteCall(address,uint256,uint256,bytes)","d97d4f52":"FOUNDERS_LOCK_DATES(uint256)","d97dec19":"transferAll(address,address,uint256,address,uint256,uint256,address)","d97e38d6":"getApprovedBuyerForIndex(address,uint256)","d97fc929":"CommitSolutionHash(bytes32)","d9803cb2":"addOfficer(address)","d9823996":"withdraw(uint152,address,uint256)","d982466d":"getPlayerAwardByRndNo(uint256,address)","d98299a0":"RedBlue()","d9829cbc":"getRewardAndPrepareWithdraw()","d982a84e":"citadelAddress()","d9844e25":"hexAddress(bytes32)","d9852ca9":"nbDispute()","d985f122":"RelayToolsTest()","d9875c93":"stageNow()","d988a0f9":"Payoutnextrefund()","d989f5f2":"productOwners(address,uint256)","d98a977d":"TestWorldSnapshotInternal(uint256)","d98ae811":"transferDay(uint16,address)","d98b094c":"communityPeriodsNumber()","d98b2fbf":"getOverviewsCounter(uint256)","d98b43f7":"removeOracleAddress()","d98b9bb5":"placeBid(address,uint256)","d98bce37":"batchBurnAssets(uint256[])","d98bf529":"LimitTop()","d98c08b5":"CryptaurDepositoryTest()","d98c1524":"getPortfolio(bytes32,address)","d98d011d":"getCandidateKey(bytes,bytes,bytes,bytes)","d98de8a5":"isCrydrViewRegistered(string)","d98e14bd":"STAT_COUNT()","d98e2997":"addMiningToken(address,uint256)","d98f47fe":"recieveEscrowTransfer(address,uint256)","d98f4ea2":"sumICOStage7USD()","d98f6088":"blockDelay()","d9901ce4":"DappToken(uint256)","d991c58f":"mintMaster()","d9923a16":"Account_timePayout(address)","d992aa70":"createBounty(string,uint256[])","d992bd5b":"testResultNotZero()","d9934a8c":"holdAddress4()","d993693c":"LOTTYcoin()","d9946793":"shareHolderBalanceOfAtTime(address,uint256)","d9946a79":"PERSONAL_CAP()","d9948af7":"sumICOStage1USD()","d9964d92":"getResourceName(uint16)","d9969061":"prove(bytes32,uint256)","d9971e92":"reject(uint64,string)","d99727cc":"removeBonus(uint8)","d9972b96":"isAuthorized(address,bytes4)","d997598b":"HoChiMinh()","d997933f":"canBreedWith(uint40,uint40)","d997a153":"transferBatchIdempotent(address[],uint256[],bool)","d997ccb3":"payMe()","d9987c07":"ReturnToOwner(address,uint256)","d998d0d5":"chunkNr()","d99929db":"getAssetIdTypeSequenceId(uint256)","d99969df":"DUNE_BUGGY()","d999741e":"grantFoundationToken()","d999b17e":"CROWDSALE_PHASE_3_START()","d999f132":"optionDescription(uint256)","d99a8dc3":"submit(string)","d99a9d20":"_setTransferFeeProp(uint256)","d99bb9f7":"removeOwnership()","d99c6c76":"_invest(address)","d99d83e3":"txsPerHour(uint256)","d99dbdbe":"changeBookState(uint256,uint256)","d99dd314":"companyTimeLock()","d99f8bd8":"VarnixToken()","d99fe20d":"dexTestApprove(address,address,uint256)","d9a0b299":"deactivateClaim()","d9a18f6d":"totalTokensForSaleDuringICO1()","d9a19a7a":"MMOTOKEN()","d9a2a083":"TeamWalletUpdated(address,address)","d9a2fff5":"airDropPercent()","d9a3988d":"LogPollApproved(bytes32)","d9a3c199":"testSaleToken()","d9a457fe":"endRound(address)","d9a4ad8b":"shouldHadBalance(address)","d9a4cc33":"_finalizeSale(bool)","d9a50120":"SaniCoin()","d9a52ab3":"getForkMigrationPercentageBonusDivisor()","d9a569f5":"OfferPlay(address,uint8,uint8)","d9a57382":"propertyIdToEscrow(uint256)","d9a5b0a7":"testHighestTranchNotExact()","d9a6c6db":"FactbarDeed()","d9a6cf81":"transferableUntil()","d9a6e2de":"VST(string,string,uint8,uint256)","d9a7556f":"indexThreads()","d9a8748c":"fundAccount()","d9a8e212":"GOLDQ()","d9a96c92":"LegalToken()","d9a96f9b":"saleManagerAddress()","d9aa1881":"tokenDestroyed()","d9aa5543":"newDoc(bytes32,uint256,string)","d9ab1ec9":"smallCount()","d9aba9ce":"getProduct(address)","d9abedb4":"take_fees_eth_dev()","d9ac03a6":"getCurrentCertificateNonce(address,address)","d9ac9a88":"getAuctionTotal()","d9aea707":"modifyCeo(address)","d9af3691":"verifyCertificate(address,uint256)","d9afa38b":"payDividends(address,uint256)","d9b02ddf":"setGeneral(uint32,uint8,uint8,uint16,uint16,uint16,uint16,uint32[4],uint32[4],uint8)","d9b058bd":"setOraclizeGasprice(uint256)","d9b158b1":"angelInvestorsWallet()","d9b238ea":"test_insert_findWithHintNotTightBound(int256)","d9b25a24":"proxyBuyTokens(address)","d9b36043":"TJFucks()","d9b4abf5":"marketplace_controller_v2()","d9b5134c":"getTotalExchanged(address)","d9b5618c":"TimeBroker()","d9b596c7":"generateRand()","d9b5b5ca":"exponential(uint256,uint256)","d9b5c4a5":"nodeRegistry()","d9b627dd":"CancelledByBuyer(bytes32)","d9b6aec4":"allInvestments()","d9b6b197":"tempAdvisorsTeam()","d9b7d154":"applyForTask(uint256)","d9b7d41b":"createFootballer()","d9ba32fc":"getWhitelistStatus(address)","d9ba8ea4":"finishLastRound()","d9bb57c6":"removeGameManually(address,address)","d9bb6102":"HealthCashMock()","d9bc9873":"getCanvasPaintedPixelsCount(uint32)","d9bcc65b":"setSeedContract(address)","d9bccfd6":"getWarrantyPrice(address,uint256,uint256,uint256)","d9bd0799":"clearPeriods()","d9bd2468":"getToken(uint256,address)","d9bdc10c":"getPlayerHasGetFree(address,address)","d9bdd6fa":"createCDPLeveragedAllDai()","d9be976c":"GainmersTOKEN(uint256,uint256,address)","d9bf3187":"setOutcome(int256,uint8,bytes32,bytes32)","d9bf8238":"setWinery(address,bool)","d9bfa73e":"orderEpoch(address,address)","d9c01911":"mintIdentityToken()","d9c090a0":"updateRoleName(address,bytes32)","d9c1a344":"balanceTotalOf(address)","d9c1ac25":"transferAllERC20Token(address,uint256)","d9c24acb":"_unlockedAmount(uint256)","d9c263f8":"purchaseWithEth(uint256,uint256,uint256,address,bytes)","d9c27cc6":"setPep(address)","d9c3193d":"setSpaceshipPrice(uint16,uint256)","d9c397f6":"gmtFund()","d9c39fca":"setSilverContractAddress(address)","d9c3d3c9":"checkReturn()","d9c4870e":"beneficiaryAddress()","d9c522ec":"daiRate()","d9c52d27":"getDiscountTrancheEnd(uint8)","d9c55ce1":"fill()","d9c57bcc":"importExchangeSale(uint256,address,uint256)","d9c67404":"getMerkleRoot(bytes)","d9c682a7":"borrowerReturnFiatPerEthRate()","d9c6925e":"AccountIsNotFrozenForReturn(address)","d9c693cb":"emergencyLock()","d9c7041b":"ownbalance()","d9c76d61":"coolHero()","d9c779ce":"_buyP3D(uint256)","d9c7ddfa":"_updateBurnRate()","d9c850f4":"getItemKindCount()","d9c88e14":"ownerWithdraw(address,uint256)","d9c97699":"__callback(bytes32,string,uint256)","d9ca0b7f":"transferRoutingCode(bytes32,address)","d9caa3d2":"submit(bytes32)","d9caaada":"minPreContribution()","d9caed12":"withdraw(address,address,uint256)","d9cba1a1":"MulTraToken()","d9ccf695":"strayToken()","d9cd6046":"BuyTicketSeed()","d9cd98b0":"withdrawDevFees(address)","d9ce2451":"setLeaf2(uint256,uint256)","d9cea519":"getDealInfo(uint32,uint64,uint64,uint64)","d9cfc182":"getHighestPriceAt(uint256)","d9cff93a":"last_result(address,address)","d9d0b091":"AddMarking(bytes32,bytes32,int256,uint256)","d9d14d37":"numOfMiningTimes()","d9d1ceaa":"draw(uint256,bytes32[])","d9d1d4bb":"getCompte_28()","d9d1e0e5":"createBlock(uint256,uint256,bytes32,bytes32,bytes32,bytes32)","d9d1f5d9":"removePendingExplore(uint256,uint256)","d9d210b8":"changeHelper(address,bool)","d9d2d058":"Splitter()","d9d34ce1":"isForkingMarketFinalized()","d9d3cc78":"seriesByName()","d9d578e5":"airDropSetup(address,uint32,uint256)","d9d60b52":"getGameState(address)","d9d61655":"getOwnedTokens(address)","d9d61a10":"GetUserSafesLength(address)","d9d73887":"Diana()","d9d770bb":"_triggerPVEStart(uint256)","d9d84531":"getRemainingKingdoms()","d9d8b2ee":"creationInvestmenting()","d9d958ec":"setUint8(uint8,uint8)","d9da0142":"cancelEscrow(bytes20)","d9da2738":"changeOfficialAddressIfNecessary(address)","d9da486a":"initialEcologyAccount(uint8)","d9da76de":"DailyMint()","d9daa497":"getStageTargetAmount(uint256)","d9daae78":"CCH_Seaport_1()","d9dac92c":"acceptDiscipleVend(uint256)","d9dad80d":"ownerOf(uint256,uint256)","d9db1f55":"deprecate(string,string,string)","d9db9d89":"globalSupplyAfterPercentageLogic()","d9dbd382":"FUTX()","d9dc7fcd":"EVM()","d9ddafb3":"exchangeTransfer(address,uint256)","d9de1e98":"HuuumanStandardToken(uint256,string,uint8,string)","d9def89a":"buyShitClones()","d9df2878":"CryptoCollectorContract()","d9e0dc59":"getLocation(address)","d9e19a91":"setAccountValue(uint16,uint8,uint8,int64)","d9e34038":"ODCToken()","d9e39e50":"getTransferDetails(address)","d9e4fa6a":"setUsdPerKEther(uint256)","d9e50186":"setWeiMin(uint256)","d9e55f7a":"getAllowedToMine(address)","d9e5a50b":"getSnakemasterReq()","d9e68b44":"left100(uint256)","d9e73095":"MiracleToken()","d9e79c72":"admin_dividend(uint256)","d9e7c8ca":"createRace(uint256,uint256,uint256)","d9e7ee1c":"new_game(uint256,uint256)","d9e8843f":"payRent(uint256)","d9e947f3":"kickOutMember(address)","d9e95a98":"addVoter(address,string)","d9ea1b47":"Raffle_Finished()","d9ea372b":"myfichain()","d9ea9bfa":"createBtcAddressHex(uint256,int256,uint256,int256)","d9eac337":"MegaWattContract()","d9ead22b":"accountForClose(uint256)","d9eb547b":"extractCLNfromMarketMaker(address,uint256)","d9eb5947":"flatFee()","d9ec0508":"testThrowTransferNotEnabled()","d9ec3018":"submitSpendLimit(uint256)","d9ece4c7":"changeMaximumContributionForPrivatePhase(uint256)","d9ee369a":"withdrawDifferentToken(address,bool)","d9ef1ee3":"insert(string,uint256)","d9ef58a5":"thisAddr()","d9f00023":"SBGToken()","d9f01878":"centralMinter()","d9f02210":"StarbaseMarketingCampaign()","d9f0354d":"buildMilestone(uint256,uint256,uint256)","d9f035aa":"cardList(uint256)","d9f0cf04":"createAuctionWhenPaused(address,address,uint256,uint256,uint256,uint256)","d9f165dc":"updateFactory(address)","d9f1a1a9":"PublicBallot(address,string,string)","d9f2ac8a":"decr()","d9f300ce":"referedRateBonus()","d9f38388":"RequirementChanged(uint256,bytes32)","d9f3afff":"addCurrency(string,uint8)","d9f47e41":"totalDevelopmentFundBalance()","d9f4ecbb":"lastProfit()","d9f4f56e":"_ethRefund()","d9f58923":"GlobalConstraintRegistrar()","d9f69e4e":"addUserWhoBuy(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","d9f754a3":"LogSetWithdrawLimit(address,uint256)","d9f7e285":"returnExcedent(uint256,address)","d9f7eacf":"removeGains(address,uint256)","d9f80c65":"setMinInvesment(uint256)","d9f81b83":"timeWithoutUpdate()","d9f861b1":"getFreelancerInvoices(address,uint8)","d9f884bf":"BIONICCOIN()","d9f8a3c3":"lastTransactionReceivedInWei()","d9f8a4e2":"calcCurrentTokenPrice()","d9fa1e78":"PractiParlezCrowdSale()","d9fa8c54":"unClaimedToken(address)","d9fa9335":"houseKeeping()","d9facbe0":"isObserver(address)","d9facc80":"MerchantWallet(address,string,address)","d9fb6963":"stateSetLocked()","d9fb7413":"lockTimeLeft()","d9fc4b61":"safeTransferFrom(address,address,address,uint256)","d9fc8026":"getPubKeyArr(bytes32,uint256,uint256[])","d9fca769":"setWinner(address)","d9fcb31f":"comm_channel()","d9fdd155":"isLegendaryPart(uint256,uint256)","d9fe0137":"_transfer_byProxy(address,address,uint256,bytes)","d9fe1045":"MidasDiscountToken()","d9fe60f3":"DTHPool(address,address,uint256,string,string,string)","d9feb8ce":"loserTwo()","d9feeeb6":"fillMyOrder(uint256)","d9fefb93":"getData_34()","d9fefbf8":"addData(uint256,uint256,bytes32)","d9fefd6c":"bountyTokenTimelock()","d9ff4ad8":"burnFrom(address,uint256,bytes)","d9ff8e9d":"setWalletOut2(address)","d9ff8ffc":"BetAnB()","d9ff94b7":"setRegionPurchasedAt(uint256,uint256)","da00586b":"houseKeep()","da00a1f4":"setGetFree(bool)","da0225db":"belongsTo(address,uint256)","da0239a6":"remainingSupply()","da025051":"freelancePlayer(address)","da02b6cf":"computeWinner(address,uint256,uint256,address,uint256,uint256,uint256)","da02f5f3":"updateIsVerified(address,bool)","da0321cd":"addresses()","da037fd1":"confirmPerfectReception()","da040c0f":"purchasingAllowed()","da04197e":"Duration(uint256)","da04f82b":"addUserManager(address)","da05277e":"ImpactRegistry(address)","da05f535":"RefundCrowdsaleFactory(address)","da062d68":"ExCToken11()","da06d96c":"_tokensToEthereum(uint256)","da074874":"getRemainingEthAvailable()","da0774ad":"getCallFeeScalar(uint256,uint256)","da081204":"littAdmins()","da08c5a3":"setTransferWhitelist(address)","da09118e":"addTokenGrant(address,uint256,uint128,uint16,uint16)","da09c72c":"devAddr()","da0a599e":"EjariRules()","da0a5fe0":"TestToken(string,string,uint256)","da0b0682":"beginGame()","da0b0c36":"getNumDesignatedReportNoShows()","da0bba7b":"changeOraclizeConfig(bytes32)","da0bba90":"sendPrize(address[],uint256[],uint64)","da0d76f8":"betContractDOWN()","da0e1451":"distributionForRefers(uint256,uint256,uint256)","da0ef68b":"ICO_END_DATE()","da0f039d":"MaxTotalSupply()","da0f3877":"postFreezeDevCATDestination()","da0f57d0":"confirmWithdraw(uint256)","da0fab61":"BlockContract()","da1070da":"newEscrow(address,address,bytes32)","da11f709":"bank1()","da122e02":"Fishbank(address,address,address)","da128527":"finalizeUpdateState()","da12e9ef":"TokenHolder(address,uint256)","da13610c":"rewarding(address)","da1441cd":"KudosBank(uint256)","da147d32":"tradeTracker()","da14c723":"setCustomBuyer(address,uint256)","da14e3b2":"transferAndFreezeTokens(address,uint256)","da16241b":"Platopay()","da17835f":"FermionToken()","da178cb0":"plot()","da17c21b":"BlockchainMoneyEngine(uint256,string,string)","da18bcef":"getMin(uint256[])","da1919b3":"mintFor(address,uint256)","da1a13ce":"fitsTokensForSaleCap(uint256)","da1aaa59":"_withdraw(address)","da1b2d9d":"comDrop(uint256,uint256,uint256,uint256)","da1b4359":"uploadFinish()","da1b620b":"getTarget(string)","da1b95a6":"DAO(address,address,bytes32,bytes32,address,address,address)","da1bd8ab":"setupTrustedAccounts()","da1d7711":"createHive()","da1eb542":"ceil1(int256,int256)","da1edb38":"shareLastTen(uint256,uint256)","da1ee417":"MoveChain(uint256,string,uint8,string)","da1f149c":"SECURRO()","da1f6433":"AtomUX()","da1fe7d5":"configureDomain(string,uint256,uint256)","da1ff555":"cliffTeamTokensRelease()","da2216ef":"getContractCreatedTimeById(bytes32)","da2242b8":"createActivity(uint256,string,uint256,uint256)","da228f9c":"bountyTokensCreated()","da22ec07":"storing()","da233128":"getCrowdsaleContract()","da23c057":"editAd(uint256,string,string,string,string,bool,bytes32,bytes2,uint8,bytes4)","da23d18b":"updateOnSaleSupply(uint256)","da2424ae":"setPI_edit_22(string)","da24b08c":"UsdPerKEtherUpdated(uint256,uint256)","da257cb4":"setMinRevenue(uint256)","da25c0cd":"ThisExternalAssembly()","da25de3c":"remainingBalance()","da262f58":"setTokenInfo(string,string)","da26358a":"unregisterVendor()","da26663a":"getPrice(uint32)","da26c241":"approvePauseChange(bool)","da26d0b9":"addAuction(uint256,address,uint128,uint128,uint64,uint64)","da26ebc2":"getPayeeCount()","da26f7f6":"CIFR()","da274488":"getMotd()","da27ab1f":"getFreeShitClone()","da27cb0f":"Lottery(string,uint256,uint256)","da280fe5":"resetHasAutoVote()","da284dcc":"expirationTime()","da28c81a":"updateKYClist(address[])","da293136":"TestCrowdsaleController(uint256,address,uint256)","da2a97d8":"GetCurrentNumbers()","da2aa615":"addRandomFight2Death(address,uint256)","da2b2589":"GenExtWeightList(uint8)","da2b7416":"testBitsAndFailIndexOOB()","da2bbfc7":"setTokenURIBase(string)","da2c0460":"gameGiftOnceAmount()","da2d7b70":"userSubscriptionsLength(address)","da2d8720":"payJackpot2()","da2d8c88":"updateRestrictedStockSendTime(address,uint256)","da2dcea6":"returnTokenMulti(address[])","da302fc3":"lighthouseLib()","da306946":"ShareDATA(string)","da30d418":"cancelDist()","da311588":"getCoin(uint256)","da31cf2a":"getStageEtherRaised()","da323c94":"getSketch(uint256)","da328377":"ownerSetStakeCommence(uint256)","da333ca6":"payOut(uint256)","da337465":"getPenguinsByOwner(address)","da34b7f3":"_transfer(uint256)","da35762a":"getPI_edit_16()","da359dc8":"setBytes(bytes)","da35d581":"DaoHubAccount()","da3678df":"transferTokenByContract(uint256,address)","da36d217":"lockupTok(address,uint256)","da36fd03":"FundingAccepted(address,uint256,uint256)","da374157":"changePopulous(address)","da38abb3":"randomGen(address)","da38daba":"getLeftCoordinate(bytes1)","da38f805":"TaskToken()","da38fe31":"ConsentDirectory()","da392f06":"availableNow()","da397985":"CBOToken()","da3986e4":"getTAOIds(uint256,uint256)","da3b6b35":"totalHashRate()","da3c300d":"currentFee()","da3cbf96":"getShipClass(uint32)","da3cd674":"GetDChainDOTHash(bytes32,uint8)","da3d18e8":"PlusUltra()","da3d23a9":"GetEnd()","da3d7d7f":"reconfigure(uint256,uint256)","da3e0fd1":"getAuctionsById(uint32[])","da3e3397":"approveToken(address,address,uint256)","da3f8c38":"Amethycoin()","da3fb6f7":"mainSaleRateP2()","da4077b9":"finishHim()","da421df5":"pageFiles(uint256,uint256)","da42eea5":"setRedeemWallet(address)","da440a1d":"wallcoinToken()","da446958":"totalTokensCap()","da4493f6":"activationTime()","da44d275":"viewWinners()","da44e034":"maximumTokensForForth()","da46098c":"setAllowance(address,address,uint256)","da465d3f":"saleSharesAvail()","da46a73c":"setGameOperator(address)","da46e48e":"setGLA(uint32)","da46e6c4":"transferFeeIncurred(uint256)","da46eda1":"setBlockDotDifficulty(uint256)","da46fe62":"ethereumToTokens(uint256,uint256)","da4751c0":"setMinPrivateSaleCompanyBuy(uint256)","da4778c2":"delayHours()","da4793ac":"setMaxSecurityGuardDelay(uint256)","da47d856":"getService(bytes32)","da481ce0":"DemeterCrowdsale(uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,uint256,uint256)","da489997":"addAsset(address,address)","da49613c":"ownedfunction()","da498084":"addTokenHolder(address)","da499f6f":"SupportAddOn(uint256,address,uint256)","da49cdb5":"getLostTokens(address)","da4a22dc":"MXN_Omnidollar()","da4a76c0":"becomeGameSponsor()","da4a77aa":"isRatifier(address)","da4a8ef6":"SettingsSet(address,uint256,uint256)","da4b5e29":"contains()","da4d0756":"vehicleExist(address,string)","da4d2615":"Gomblot()","da4f2899":"isUserInGroup(bytes32,address)","da5136b8":"setWhitelistAddress(address,address)","da5140fc":"lockTokensForAddress(address,uint256,uint256)","da5196e0":"getmemreqdetails(uint256,uint256)","da51bbd9":"luckyPendingIndex()","da51f168":"GetDayReward()","da5269a6":"getListOfConsents()","da5341a8":"issueMaxNomins()","da53462c":"initialize(address,address,uint256,uint256,uint256,uint256,address,address,uint256)","da535758":"lockUp(address,uint256,uint256,uint256)","da547dcf":"preIcoHardcap()","da548e29":"priceExpirationBlockNumber()","da5520cd":"HeroNodeToken()","da57736f":"stageThree()","da5950a4":"tokenBought(uint256,uint256)","da5a9366":"getAppBase(bytes32)","da5abf5d":"payment_returned(uint256)","da5b1f5c":"buy50()","da5c0a7c":"testDisown()","da5c7ec2":"WNCT()","da5da3b9":"initializeTokenSaleWithToken(uint256,uint256,uint256,uint256,address,address)","da5db748":"firstRelease()","da5e4489":"resetListing(string)","da5e9c62":"whitelistDayMaxStake(uint8)","da5ea40c":"computeMerkle(bytes32,uint256,bytes32[])","da5f3ac1":"GAME_END()","da5f838d":"weisRaised()","da60278a":"receivable(address)","da60d7e8":"BOARD_2()","da62a246":"rewardsTokenSupply()","da640668":"checkNameOccupied(bytes32)","da6443ad":"addAddressToWhitelist(address,address)","da649c63":"startSalePhase(uint256,uint256)","da652b4a":"summBilborough()","da6585ff":"calcSrcQty(uint256,uint256,uint256,uint256)","da658f22":"birthPerHundred()","da66cb3e":"secondRoundICOTokensLimit()","da67ac42":"MIPCoinToken()","da682aeb":"onApprove(address,address,uint256)","da6838ff":"getIfBonus()","da683c63":"Token(string,bytes32)","da68d47d":"licenseNFT()","da69f1c8":"arrayTest(address[])","da6aabbe":"set_sale_address(address,string)","da6b31b9":"testErrorTransferToNullAuthority()","da6babca":"setNextPrice(uint256,uint256)","da6c5832":"CROSAIR_MAX_PRICE()","da6d8ca4":"LotteryRecharge()","da6dfea7":"setRate(address[],address[],uint256[],uint256[],bool)","da6e11a5":"approveFactoryContract(address,bool)","da6efb01":"winAddressOf()","da6f76b5":"updateEpisode(string,uint256)","da70db17":"HireGoToken()","da710422":"getTokenAmountForWei(uint256)","da7150b9":"Qwidex(address,address,address,uint256,uint256,uint256)","da721672":"checkFloatingSupply(address,uint256,bool,uint256)","da72c1e8":"adminTransfer(address,address,uint256)","da7360df":"paymentInternal(bytes32,uint256[],uint256)","da73630e":"addTeam(address,string)","da73f0f9":"conversion_rate()","da748b10":"pausedUntil()","da74c5a1":"citiesSold()","da74ce27":"tokenCapForFourthMainStage()","da7545d0":"titleCount()","da756ba7":"BEAT()","da75b901":"deployStepTwo()","da76d5cd":"withdrawBalance(uint256)","da7855a3":"reclaimLocalNodeFee()","da78d655":"owner1OK()","da7911e1":"getOrderListLengthFactor()","da79a9fc":"setTxAsSpent(bytes32,bytes32,uint256)","da7bd3e9":"getVestingScheduleEntry(address,uint256)","da7c0ad4":"SaleScheduled(uint256,uint256)","da7c6a42":"registrations(bytes32)","da7ccce9":"test_oneValidEqInt1()","da7d0082":"isCertification(address,bytes32)","da7d249f":"UnsetBlockForSale(uint256,uint256,address)","da7d57f9":"startRareRaffle(uint256,uint256)","da7d7827":"getSubscriptions(address,string)","da7d86fd":"softDelete(bytes32)","da7e019e":"AlterContactName(address,bytes32)","da7e6fdf":"TokenDrop(address[],uint256[])","da7eadd4":"totalAffiliateDDT()","da7fc24f":"setBackend(address)","da7fc7c5":"payoutCompleted()","da7fd1f0":"gemmyMusicSupply()","da7ffbd4":"generateRandomSpell(uint8[14],uint32)","da801f20":"approveAndCall(address,uint256,address,address,bytes32,uint256,uint256,uint256)","da81b09b":"lastPeriodStarDate()","da8267e3":"hasDirectorAccess(address)","da82a035":"sweepCommission()","da8300d2":"initialEnemyCombination()","da832237":"SMALLEST_TOKEN()","da834ac4":"getPayoutNumerator(uint256)","da83a649":"onlyAdmin(bool)","da850601":"MKYCToken()","da8567cb":"AldiyoCoin()","da857f2c":"reduceLastWeekStake(address,uint256)","da85868e":"fifthExchangeRate()","da883e6a":"addItems(uint256[],uint256[],address)","da88a831":"updateBaseTokensPerEther(uint256)","da89970b":"hasntStarted()","da8a01a5":"CROWD_WEEK2_BONUS()","da8a46e0":"listUserRecastsFrom(address,bytes32,uint256,bool)","da8ad6b6":"getTAO(address)","da8c229e":"controllers(address)","da8d2f35":"ChannelDeleted(address,address)","da8e2890":"payNihilum()","da8e44d8":"registerColor(string,uint256)","da8ee786":"transferFromContract(uint256)","da8f410a":"ApprovedToken()","da8f54d8":"testVali(address,uint256)","da8f9fe5":"DetailedERC20(uint256,string,string,uint8)","da8fb7cd":"ASSToken(uint256,string,uint8,string)","da8fbf2a":"pauseMinting()","da909b09":"setExchanger(address)","da91254c":"whoAmI()","da918f76":"placeBlock(uint16,uint16)","da9287d1":"acceptHybridization(uint256,uint256)","da9332bb":"addCompanyURL(string,string)","da93d0d1":"setPrice()","da93dfcf":"give(address,bytes32,address)","da93f938":"maxAppeals()","da942ab3":"issueTokensExternal(address,uint256)","da94e770":"YBVToken()","da9534b4":"Stex()","da9590cb":"addPublicSaleWallet(address)","da95ebf7":"requestWithdrawal(address,uint256)","da96bbcd":"publicEventTokens()","da977038":"volumeBasedBonus(uint256)","da979b8d":"SpecialRate(address,address,uint256,uint256)","da98655e":"getNullAddress()","da9893dd":"Resource(address,string,string,string)","da9ab565":"changeId(string)","da9ad094":"changeParameter(uint32,uint32)","da9b3cb4":"getGameBid(uint256,uint256)","da9b90c4":"TOKEN_FIRST_DISCOUNT_MULTIPLIER()","da9bca21":"numActiveMembers()","da9bdbfc":"CKCoin()","da9bf54c":"icoPhaseDiscountPercentage4()","da9c273d":"cancelInvoice(uint256)","da9c6a46":"getReplyCount(uint256)","da9c87fa":"changePayRate(uint256)","da9d0f6b":"withdrawCustom(uint256,address)","da9d56d7":"getBidIds()","da9d95bc":"commonWithdraw(address,uint256)","da9da572":"tryAirdrop()","da9dd8bf":"isAddressVerified(address)","da9e13aa":"getProviderSales(address)","da9eadac":"remit(address,uint256,bytes)","da9eeaeb":"PetroNetworkToken()","da9f40b8":"setAssetFileLink(string)","da9f4875":"freezeTokens()","da9f6918":"MultiSigWallet(address[],uint256,uint256)","da9f7550":"requestRandom()","da9f84a6":"rerollValue(uint256)","daa0ab0e":"majorityForTeam()","daa0f79f":"LEGAL_EXPENSES_ADDR_1()","daa147f3":"redeemLevAndFeeByStaker()","daa170ca":"difficultyBalance()","daa17f49":"marketplaceAddress()","daa1d7d4":"maximumPercentageOfDaysSupply()","daa21e0e":"testBitSetSuccess()","daa232ac":"_bonusRatio1()","daa283c8":"__callback(bytes,string)","daa3a163":"isUpgradeable()","daa44bf8":"getInStreamOf(address)","daa45281":"_addTo(address,uint256)","daa4cf88":"getCurrentStageIndex()","daa50ee0":"DSTMultisig()","daa5f48b":"findbit(uint256)","daa69c9e":"killDividentContract(uint256)","daa6f417":"howMuchTokensAvailableForExchangeFromStock()","daa7370f":"onFailure()","daa86216":"getAllowedContractsCount()","daa89fef":"issueNewHeldCoins(address,uint256)","daa94ab1":"frozenAccountProfit(address)","daa9604d":"byPonzi(address)","daaa50c9":"transferWithCustomReservingNet(address,uint256,uint256)","daaa6b5d":"setReleasedAddress(address,address)","daaadd8e":"arr(address,address)","daab88a6":"createEngine(uint256)","daac1f64":"reqfee()","daac518a":"playerTokenAddress()","daacb24f":"right42(uint256)","daad98f4":"socibit()","daae717c":"setIndividualMinCap(uint256)","daae7e98":"setCompte_20(string)","daaf3d2e":"attack(uint256,uint256,address)","daafe0a5":"setPrice(uint32)","dab0537b":"change_p2(uint256)","dab09999":"returnMyEthBalance(address)","dab122de":"dInit(address,address,bool)","dab12beb":"SmartSweep()","dab23f7c":"__callback(bytes32)","dab306b1":"votingFee()","dab30ccc":"addBonusPeriod(uint64,uint64,uint256,uint8,uint256,uint8)","dab41935":"TootyrToken()","dab43e6d":"PreSale3DAPP(address)","dab46553":"removeOracle()","dab4c65e":"totalDowSold()","dab4cb87":"gameValue()","dab4d1c1":"PixelPrice(uint16,uint16,address,uint256)","dab5cec2":"setExtraTokensPercent(uint256)","dab5f340":"setRoot(bytes32)","dab5fdc4":"DOWN_totalBets()","dab680dc":"getGlobalInfo()","dab78820":"ERC20Rescue(address,uint256)","dab80075":"Signature(address,string,string)","dab80d6f":"addSponsor(address)","dab8263a":"weiPerToken()","dab83b9a":"selltokens0()","dab88ad7":"VI6()","dab8a18b":"specialTransfer(address,uint256,uint256)","dab8c01a":"Zorro01Token()","dab8ef38":"addRooms(string,uint256)","dab8fa73":"setPackage(string,uint64[3])","dab91e87":"linkToMasterWallet(address)","dab93a93":"PolarisDEX(address,address,address,uint256,uint256,uint256)","dab951ba":"arrayFunc(int256[10])","dab9938e":"setIcoBeginDate(uint256)","dab9afa4":"Test12Address()","dabb0531":"getCharacter(uint256)","dabb37d4":"Lakshmi(uint256,string,string)","dabb624b":"rate_ETHUSD()","dabb6360":"percentage_of_three()","dabb6778":"vestingTeamWallet()","dabbbd0b":"sharesChainToken()","dabbd2bd":"removePlayerFromServer(uint256)","dabbd670":"team2Token()","dabc0c37":"isPassOwner(bytes32,address)","dabc706e":"getProposalCost()","dabd2719":"setDiscount(uint256)","dabd2eb2":"changePrice(bytes32,uint256)","dabd5d65":"addDays(uint256)","dabdc1f2":"ChangeActiveDigger(address)","dabecd8d":"_newBid(bytes32)","dabf7dc8":"PayoutDividendEarly(uint256,bool)","dabf7ec4":"helper(uint256)","dabf8246":"EventAuction(address,uint256,uint256,uint256,uint256,uint256)","dac00420":"maxHalvings()","dac05adc":"test_1_ensureVoteWorks_increaseBlocksBy100()","dac1182e":"signBBODocument(bytes,bytes)","dac17430":"lastVoteTime()","dac194f1":"setAutoInvest()","dac1e5e5":"_computePVPReward(uint256,uint256)","dac32ba9":"modifyPolicyTo(address,uint8,uint8)","dac34674":"setNextGameSettings(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","dac3ab88":"getCurrencyHash(uint256)","dac3f6d2":"queryFusionData_ext(uint256)","dac47a71":"SetGiftTime(uint256)","dac4fcdb":"getNewCustomPrice(address,address)","dac54daa":"OPLTest()","dac5b8ae":"TokenSale(address,uint256,uint256,uint256)","dac645bd":"getBUI(bytes32,uint256)","dac649c8":"NEWC()","dac6af5e":"SWIFTH(address,address[],address)","dac796bb":"getInvestorBalance(address,address)","dac7c858":"TOKEN_TRANSFER_PROXY_ADDR()","dac84ee4":"moveToReceiver(address,address,uint256)","dac8df25":"DEVELOPER_CUT()","dac90466":"_error(bytes32)","dac9555d":"allocate_slot(address)","dac9882a":"offChainAddresesValidCount()","daca5ce0":"bonusTokensPercent()","dacaeb07":"pledge(bool,uint256)","dacc8e11":"getTPrice(uint256)","dacd06fc":"KongQiCoin()","dacd4472":"PixoArenaFounderToken()","dacdbb93":"removeAccountSearch(address)","dace4557":"setUnlockTime(uint256)","dacef51b":"payincount()","dacf18c7":"getDeathCoin()","dacf9483":"getUIntValueConverted(bytes32,uint8,uint256)","dacfa06f":"manualDraw()","dad0128d":"calculateAdjustedFiguresForBattle(address[3],address[3])","dad03cb0":"returnError()","dad13822":"setMonsterClassSiteSet(uint256,uint256)","dad22781":"AdvancedArtificialIntelligenceSafetyDefense()","dad24541":"PresaleToken()","dad2771d":"signReceipt(uint256,int256)","dad30cfc":"test_transfer_to_contract_with_fallback()","dad38294":"PowTokenHashedBase()","dad39151":"multiApprove(address,address[],uint256[])","dad52c72":"_itemCancelMarkets(uint256)","dad59f35":"raisedEthers()","dad5c2e3":"validAstroCount()","dad5c3ee":"chainyShortLink(uint256,string)","dad5fda3":"vester()","dad6b482":"userHasPositveBalance(address)","dad72332":"claimUnsold()","dad7ad9e":"aix()","dad7c095":"transferWithAllowance(address,address,address,uint256)","dad7e4d2":"Aaa()","dad86b45":"teamETHUnlock3()","dad90035":"withdrawalRequests()","dad901be":"callWithdraw()","dad950f4":"InvestorPart()","dad98b52":"MonsterBitToken()","dad99119":"ddf()","dad99989":"burnCoins(address)","dad9a423":"setDuesIn(uint256)","dada85c3":"setAirdropOn(uint8)","dadad8fe":"addNewStreetName(string)","dadb20be":"ChangeTokenName(address)","dadc89eb":"setPreIcoDates(uint256,uint256)","dadcb460":"bumpPointer()","dadce8b0":"setExpiration(uint64)","dadd9e8e":"withdraw_some_amount(address,uint256)","daddff33":"claimController()","daded88e":"addMessageRequest(address,address[],string)","dae072d9":"GameWon(address,uint256)","dae1bd84":"AddChip(address,uint32)","dae1ddd2":"check_period(address,address)","dae1f17a":"getShopOwner(string)","dae21454":"toEthereumSignedMessage(string)","dae37abc":"cancelParticipation()","dae37fac":"spendAvailable()","dae392ee":"softFundingGoal()","dae3f7e2":"Gralaxious()","dae595e5":"getAuctionStart(address,address)","dae611c4":"lockUnlockMatchGPForBetting(uint256,bool)","dae6f081":"setScrapMinStartPrice(uint256)","dae79483":"getMemsize()","dae7e05d":"_bonusAll(uint256)","dae8865c":"ETHERCToken()","dae89f18":"coordinatorAccountIndex(uint256)","dae8af77":"getFeeWindowId(uint256)","dae9c31b":"ProofPresale()","dae9e379":"getFundBalance()","daea85c5":"approve(address)","daeab905":"issueReceipts(address,uint256)","daeb1c98":"PlusToken()","daeb860d":"versionAddresses(bytes32,bytes32)","daec4582":"AuctionEnded(address,uint256)","daec75f3":"buyXwithdraw(bytes32,uint256)","daec8128":"mintTokensForFounders()","daecc910":"getCKOwner(uint256)","daed6726":"ETHCollected()","daee4dd6":"readCheck(address,uint256)","daee9e35":"level2Bonus()","daeed3a6":"rateFinalStage2()","daef0e92":"stopCurrentGame(uint256)","daef4df8":"addCar(string,address,uint256,uint256,uint256)","daef569f":"insChainTokenLedger()","daf017a9":"GetRocket(uint32)","daf059c6":"createGuess(uint16,uint64,uint64,uint16)","daf13a47":"reserveLockup()","daf161e2":"getThirdAdmin()","daf1af19":"Current_balance()","daf1db09":"readyForFinish()","daf22f4d":"identify(bytes32)","daf32370":"getPurchaseAddress(uint256)","daf47ba3":"incGenLabFace(uint256)","daf488b1":"setReferrerPercent(uint256)","daf49451":"BINGToken()","daf4f66e":"isLimitEnabled()","daf64aa5":"getCompanyDetails(uint256)","daf69093":"BLOCKCHAIN_DEPOSIT_BETA_1M()","daf6ca30":"saleContract()","daf6e5ae":"DeepBrain()","daf760d0":"getData_6()","daf7f103":"_error(uint256)","daf8f438":"startRedeeming()","daf9812f":"updateBincentiveErrand(address)","daf9a535":"getData_20()","dafa1d2d":"burn(string)","dafa55a1":"creatureIndexToOwner(uint256)","dafae408":"checkThreshold(uint256)","dafba12f":"setMAGContractAddress(address)","dafc5608":"TransferFeeRateConfirmed(uint256,address,uint256)","dafc64c4":"ERC223MintableTokenFactory(address)","dafd54a6":"ExaEUR()","dafd70c9":"RESERVED_UTILITY_GROUP()","dafea207":"smax256(int256,int256)","daff0093":"setReference(address,address,bytes32)","db006a75":"redeem(uint256)","db00758a":"getSGNTokenManager()","db00b848":"_performGeneric(bytes,address)","db00d1a9":"_preValidateCancellation()","db0251e9":"contributeMsgValue()","db035918":"deployForeignBridge(address)","db041965":"fightBetaMonster()","db0436c2":"RUNEToken()","db04aef4":"getHoldersLength()","db051653":"setEtherFeePercent(uint256)","db054134":"mintForReportingParticipant(uint256)","db059dfb":"createSsp(address,uint256,string)","db05ccfc":"setValue(address,uint256,uint256,uint256)","db060e1a":"RESERVED_TOKENS_FOR_FINANCIAL_INSTITUTION()","db068e0e":"setExchangeRate(uint256)","db06f0c2":"doPresaleMinting(address,uint256,uint256)","db078f08":"toggleKey(address,bool)","db0827e9":"ashcashToken()","db0834cf":"lockedAllocation()","db08444a":"toUint(int256,string)","db087ad5":"getCurrentPricePerWei()","db08ccec":"enjinTeamAddress()","db0a087c":"getTypeName()","db0aa668":"Bittwatt()","db0ad29c":"SocialMediaMarketToken(uint256)","db0c154a":"hitCharacter(uint16,uint16,uint8)","db0c9a02":"marketSell(uint256)","db0d5175":"getTransfer(address)","db0d7ce5":"LotteryRoundCreated(address,string)","db0db014":"dividendsForAmountAndTime(uint256,uint256)","db0dd71e":"addAbility(string,bool,uint8,uint8,uint8,uint256,uint256)","db0e127a":"openDoor()","db0e16f1":"emergencyERC20Drain(address,uint256)","db0ec968":"transfer(address,uint16[])","db0edd08":"PubKeyHashAdded(bytes20,uint8)","db0fb107":"updateSafeSender(address)","db107371":"DecentrEx(address,address,address,uint256,uint256,uint256)","db11040f":"LogRegError(address,string)","db112977":"Project_Info(uint256)","db11ead1":"markContribution()","db1227da":"initGameReferred(address,uint8)","db122ad4":"committeeJoinVotes(address)","db123b1a":"ZRX_ASSET_DATA()","db12630a":"fundariaCap()","db12999b":"airdropTokens(address,address[],bool)","db1366bf":"buyExchangeRate()","db136b1e":"createAsset(address,uint256)","db15520d":"TPTContributors()","db15b72d":"getDInfo(bytes32)","db165a76":"createLand(address,uint256)","db16d0fe":"optionExist(uint256,uint256)","db171211":"returnToSender()","db171754":"vestedAddress()","db180b2b":"LOCKAMOUNT2()","db18c972":"play4(address,uint256)","db18f962":"updateSplitandSend()","db192761":"Clockpay()","db1a71ae":"trackable_likes(address)","db1b569f":"previousSender()","db1bdd1d":"TheTokenG()","db1c45f9":"getAllGames()","db1c53e2":"isTransferedUser(address)","db1d0fd5":"alpha()","db1d68b5":"countryWinnerID()","db1eeb51":"MizeCoin()","db1f6689":"authorContentByIndex(uint256)","db201648":"AppicsFund()","db21fc9c":"gettimeback()","db22032f":"rentalTimeRemaining()","db2307b6":"changeRecvEthStatus(bool)","db230b52":"viewScore(address)","db239951":"cbAddresses(address)","db23c5d7":"icoRuleAdd(uint256,uint256,uint256,uint256)","db23f7e3":"veztUserArrayIdentifier(address)","db246fda":"withdrawalTimeOf(address)","db248091":"assignBonus(address,uint256)","db25b407":"listActive()","db25c328":"joinToProvider(uint256,address)","db25e637":"Strikes(address[])","db264a36":"s10(bytes1)","db27b8dd":"vestingManager()","db299492":"IGFC(uint256,string,uint8,string)","db29fd6e":"increaseDistrictCoke(uint256,uint256)","db29fe12":"addShareholder(address)","db2a0cb7":"HumanStandardTokenFactory()","db2ac8d8":"WINTOKENADDRESS()","db2becb0":"getWalletFeeSignatures()","db2c4e2d":"complexScaleObsTest(address)","db2d10a5":"PreICOTokenPushed(address,uint256)","db2d5841":"batchRelease(address[])","db2e21bc":"emergencyWithdraw()","db2ea20e":"arrayTestMulti(address[],address[],uint256[])","db2ea5c0":"_callERC165SupportsInterface(address,bytes4)","db2f1d83":"TalkCrypto()","db3119bb":"manageLink(uint256,uint256)","db318833":"_ecAdd(uint256,uint256,uint256,uint256,uint256,uint256)","db31dd17":"removeAddressFromWhitelist(address,string)","db31fb03":"excessEth(address)","db3268d8":"getBU(bytes32)","db32be98":"refundICO()","db330794":"addToVestMap(address,uint256,uint256,uint256,uint256)","db3359f0":"makeNonFungible(uint256,address)","db35132c":"WithdrawEther(address,uint256)","db3543f5":"setFoundation(address)","db35a03d":"allowedSpenders()","db36c2e5":"destroyOldCoins(address,uint256)","db37ceec":"maxEthContribution()","db37e42f":"multisetProofType(uint256[],address[])","db383bf2":"MyNewToken()","db38b877":"testRsplit()","db395d2e":"bonusPercentForWeiAmount(uint256)","db39a8e8":"getTokenTransferInsByAddress(address,address,uint256)","db39ceac":"MyBalance2(address,address)","db3b73db":"getPlatformName()","db3c1b94":"EtmPerBtc()","db3d8421":"getTotalAngelCardSeries()","db3e7f4f":"forgeTokens(address,uint256)","db3fd0b8":"usedReserveSupply()","db403747":"mintForYear(address,uint256)","db40e896":"stopExchange()","db40ed24":"WeGoldToken()","db412f39":"preSaleDelivery(address,uint256)","db420fe3":"serverAddress()","db422e0b":"sendTokensAndRefund(address)","db447c04":"getPurchaseDetail(uint256,uint256,address)","db45479b":"closeChannel(uint256,address,bytes32,uint256,bytes32,bytes)","db456f77":"extraReceiverByIndex(uint256)","db45a30f":"buyPlanet(uint256)","db475044":"SHITcoin()","db478d08":"levelTwoBonus()","db47b9c9":"isTokenSupported(address,address)","db480704":"HCTToken()","db4844f3":"setRequestFailed(uint256)","db491d49":"ContributionReward()","db491de9":"daysToUnfreeze(address,address)","db491e80":"getNote(uint256,uint256)","db4ad99f":"constructUserIdentity(address,string,uint32,string,string,bytes32,bytes32,uint8)","db4bb866":"bitskiToken()","db4bd421":"trackable_record(address,uint256)","db4c528b":"increasePositionOnBehalfOf(address,bytes32,uint256)","db4cacec":"Other()","db4ce763":"DTRExpensiveWallet(uint256)","db4cf8e6":"getAccountAddress(uint256)","db4d1296":"confirmAdminTx(uint256)","db4e1df5":"setBTTSToken(address)","db4ecbc1":"CONTRACT_ADDRESS()","db518db2":"withdrawFor(address,uint256)","db51d62b":"OpenTime()","db52e130":"saveString(string)","db530222":"nextEndTime()","db536d2f":"getDefaultKey(address)","db5370c3":"EEAcoin(address)","db543fdc":"adviserAndBounty()","db5517b0":"snapshots(address,uint256)","db5549d8":"TokenBurn(address,uint256,bool)","db55bd2d":"authoriseNextAction()","db56702b":"firstWeekEndTime()","db56c29d":"Billionstrader()","db56d26c":"ChangeFiliate(address)","db57c429":"createPromoGameItem(address,string,uint256,uint256)","db5861ed":"ULA(uint256,string,string)","db589907":"setCosts(uint256,uint256)","db589bbe":"getInternalDrawings(uint256)","db59190d":"C1(uint256)","db5a2778":"adminAddCountry(string)","db5ad407":"setData(bytes32,uint256,uint256,uint256,uint8[])","db5b4183":"oracleOutcomes(bytes,address)","db5b5799":"setClientSupply(address,uint256)","db5b7635":"TokenMacroansyPower()","db5c9442":"TRIAL()","db5cf9de":"getSpaceshipProductClassByModel(uint16)","db5d855b":"getReceiptId(address,address,uint256)","db5df447":"redemptionPriceCalculate(uint256)","db5eef61":"PredictionMarket()","db5f2f31":"calcExchangeRate()","db5f5d7c":"usedAPI()","db606931":"pointRootNode(address)","db618c08":"TestAuditor()","db623bd5":"ErrorSendingETH(address,uint256)","db624887":"W()","db62df0e":"likeTrack(address,bytes32)","db6380ec":"tokenCapForMainICO()","db638e51":"resetUserRefBalance(address,address)","db63e149":"EmployeeWallet(string)","db641ab4":"Game_balance_in_Ethers()","db642bce":"GoddessToken()","db6648c0":"collateralisation(address)","db66ef59":"getPublicKeyN()","db6727c1":"myBitFoundationPercentage()","db680e3d":"getMeterInfoByMonth(uint8,uint256)","db681e1d":"GameScored(bytes32,int256,int256,uint256)","db681e54":"getGenerationForCall(bytes32)","db681e9f":"sendRefund(uint256)","db6997ae":"getCitiesData(uint256[])","db6a3652":"addOrder(address,uint256)","db6aef35":"amountOfWorkpointQueue()","db6bb289":"Zygoma()","db6bbeb2":"abx_token()","db6be534":"end_ts()","db6be871":"getAmountByCoupon(bytes32)","db6bed22":"addPresaleWallets(address[],uint256[])","db6c1831":"bonusSystem(bytes5,uint256)","db6c709c":"updateExchangeRates(uint256,uint256)","db6c71d6":"rspContract(address,uint256)","db6c7286":"CTokenGB()","db6c9416":"AgoraToken()","db6f1e74":"getUser(uint32)","db6f7537":"getPOOL_edit_22()","db6f9deb":"rewarded(uint256,address)","db6fcf01":"is_destroyed(uint256)","db7057fb":"rngId()","db714efe":"getBlocks(uint256,uint256)","db71c776":"setRateIcoPreICO(uint256)","db71d8b6":"FEE_SELECT_LRC()","db723e73":"personalMincap()","db72496f":"cancelSubscription(uint256,uint256)","db737c78":"getToken(uint256,bool)","db73bfce":"gameInfo()","db7400a5":"createAppInstance(bytes32,bytes)","db747f21":"setOraGasLimit(uint256)","db74847d":"distributeTratok(address[],uint256[])","db74c27a":"backRedPillTokenOwner()","db75dd5f":"AQBToken()","db76790f":"setAdvisorWallet(address)","db76e9c2":"setMemberLevel(address)","db77032d":"RATE_SALESTAGE4()","db775041":"donation(bytes32,uint256)","db775410":"setTypedJackpotWinner(address,uint256)","db7757cf":"valueRaised()","db78d0ce":"getAirdropAtSnapshot(address)","db78f5ef":"withdrawOnBehalf(uint256,string,uint256,uint8,bytes32,bytes32)","db79a65f":"resetUserWhiteListAmount()","db79e673":"getTradeOfferRecipientItems(uint256)","db7a0855":"MZToken()","db7a2f42":"projectAgent()","db7a4605":"getWallets()","db7a80f8":"getContributionUSD(address)","db7b87ff":"init(address,uint256,bytes32,uint256,uint256,uint256,bool,bool,address)","db7bc073":"refundWhenNotClosed(address)","db7ca38a":"XaurmProxyContract()","db7d2665":"FundTransfer(address,uint256,address)","db7d9065":"assignedAmountToCooperativePartner()","db7ed9e7":"addAssessorToPool(address)","db7ef562":"_2_nation()","db7ef7c6":"verifyEscrowVendor(uint256,address)","db7f1e6b":"getInitialEnemyCombination()","db7fea95":"WALLET_T8EX_RESERVED()","db803a86":"post(string,address[])","db80813f":"set(bytes32)","db80a787":"emitCourtUpdated(address)","db80fbc9":"balanceOfLockup()","db82967c":"createUsingProxy(address,bytes)","db8298f3":"_commissionTarget()","db833e3a":"sellShares(bytes32,uint8,uint256,uint256)","db83694c":"getSaleInfo()","db8374ee":"buyOracleFor(bytes,address,address)","db83d02f":"VREO_SALE_CLOSING_TIME()","db84252c":"tokenCreator()","db852ee7":"pieceSold(address,address,uint256)","db856759":"depositOldTokensFor(address,uint256,address)","db856f28":"_updateCard(address,uint256)","db85bd78":"registerTraderAccount(address)","db86d850":"transferGoo(address,uint256)","db87cbcc":"GetPermissionsList(address,address)","db88176f":"getQuestion(uint256)","db8850bc":"_merge(uint256,uint256)","db886f23":"Marketing()","db89c044":"reputationOf(address)","db89edb2":"BitDailyBot()","db8a61d4":"APP_BASES_NAMESPACE()","db8b6ccf":"addSubjectMatter(string)","db8b7fae":"transform(address)","db8bcec4":"MAX_TIME_RANGE_COUNT()","db8cee5e":"_generateRandomDna(uint256)","db8cfa5a":"HAVtoUSD(uint256)","db8d55f1":"getFees()","db8d7c39":"disableRestriction()","db8e9043":"SetOutRate(uint256)","db8ecf34":"registerFreelancer(string,string,bytes32,uint256,uint256,uint256[],string,string,bool,string,uint256,uint8,uint256[],uint256[],string)","db8ed8a7":"withdraw_a_bit(uint256)","db8ee692":"_price_tokn_ICO()","db8f0301":"getAEth(uint256,uint256)","db8f2f75":"EthStorageContract(address,address,address[],uint256,uint256,string,string,uint8)","db8f5a35":"feesAndBountySupplyRemaining()","db8f7fb5":"preDiscountPercentage()","db9078b4":"CheckGenChip(uint32)","db9090a7":"devTokenWithdraw(uint256)","db91095e":"LVXToken()","db91774c":"setMinValue(uint256)","db9254a5":"_buy(address,uint256,uint256)","db9311c2":"getBlocksToNextRound()","db93f375":"startTokenVotes(address[],uint256,uint256,uint256,address[])","db946a11":"PlayStationChain()","db958f18":"FootCoin(uint256,string,string)","db95937d":"orderContractorProposal(uint256)","db967d05":"endOfPhase3()","db97c24d":"uzziToken()","db98abd8":"testThrowCancelSellOrderTwice()","db98d73f":"setRecordAddress(address)","db99800c":"fetchCreatedOrdersForMerchant(address)","db9a21bb":"CreateRZM(address,uint256)","db9abbd4":"arr(bytes32,bytes32)","db9b6775":"testMintThis(int256)","db9cc410":"createAsset(string,uint256)","db9cc99d":"AuctionCancelled(uint256,uint256)","db9cd8d3":"tab()","db9d28d5":"numDigits(uint256)","db9d5d31":"AdminRemoved(address,address)","db9dfb35":"newTeamOnEnd(uint16,uint64,uint64,uint64)","db9f16a8":"takeOffItem(uint256,uint8)","dba01cfe":"distributePENT(address[],uint256,uint256)","dba07858":"_removeFromList(address[],address)","dba0e9bb":"ethertoteDevelopmentWallet()","dba1a5f9":"allocateFunds()","dba1ac3d":"getEnforceRevisions(bytes20)","dba21586":"ProofOfTrevonJames()","dba21657":"askForEther(uint256)","dba22cb0":"transferPlanet(address,uint256,uint256,uint256)","dba232e3":"POPToken()","dba2a570":"_tune(uint256,uint256)","dba2d875":"forcedRefund()","dba31911":"bookSpaVisit(uint256)","dba33c03":"saleTokensCents()","dba3e704":"setMinimumContribution(uint256)","dba4c85c":"GetWithdrawBalance(address)","dba56cb8":"buyTokensFromContract(address,uint256)","dba5e917":"SelfDestruct()","dba6f7be":"verifyCreateSig(address,uint256,uint256,bytes32,bytes)","dba72a4e":"ICONIQ_SALE_OPENING_TIME()","dba7ef7d":"Bookie(address,address)","dba86ab6":"claimCardboard(uint64)","dba8be6e":"chickenTokenDelegator()","dba989ca":"_bonusTime2()","dba9a8a2":"setTrCut(uint256)","dba9daab":"pickBigWinner()","dbaaa2dd":"MIN_CONTRIBUTION_PRESALE()","dbaab3e1":"setMarketingAdmin(address)","dbaad1e5":"ownerDied()","dbab2f97":"merge(address[],bytes32,bytes32,int256,int256)","dbab7f1b":"UserInfoContract()","dbac248b":"MannaCoin()","dbac4cbf":"GetContractStateTerminatedSecDep()","dbac7806":"milestone()","dbacc237":"holderOf(uint256)","dbad21af":"tickets1kprice()","dbaea636":"UVPToken()","dbaec0fd":"createPattern(bytes32,string,address,string)","dbaf023d":"LogoVote()","dbaf2145":"requestWithdrawal()","dbaf5ce7":"changeRatesToken(uint8,uint256)","dbaf7247":"getValueByIndex(uint256)","dbafd0f2":"getTotalSeconds()","dbafdbb6":"setBalanceLimit(address,uint256)","dbb094ef":"Crowdsale(address,uint256,address,address)","dbb173d9":"test_updateKey_decreaseNoHint(int256)","dbb183c2":"setAuthorizedLogicContractAddress(address)","dbb24554":"updatePriceDenominator(uint256)","dbb3cef3":"developer_update_Terms_of_service(string)","dbb47d77":"claimPlayerWinnings()","dbb57a4b":"transferOne(address,uint256)","dbb61238":"maxDelay(uint256)","dbb62f24":"setDataMining(address)","dbb633f1":"ownerWithdrawalDate()","dbb72f67":"nullify(address)","dbb80e42":"allTokensLength()","dbb82429":"_randByRange(uint256,uint256)","dbb833df":"investWithoutId()","dbb8a305":"getBetName(uint256)","dbb98cae":"limit7()","dbb9deda":"goNext()","dbbabdfe":"getnum(uint256)","dbbb119c":"addMaster(uint32,string,string,string,uint8,uint8,uint8,uint8,uint8,uint16,uint32,uint32)","dbbb206f":"buy(address,address,address,address,address)","dbbbe8df":"transferByCrowdsale(address,uint256)","dbbc6fcc":"isPayableEnabled()","dbbc853b":"tokenURISuffix()","dbbd3a71":"addClaim(address,bytes32,string,string,address,uint256)","dbbd4865":"isEarlyBirdsStage()","dbbd78da":"getAccountNickname(address)","dbbd7934":"findItem(address[],address)","dbbd9a04":"ALLOC_MAX_PRE()","dbbdad8c":"generateReleaseTokensSchemaHash(address,address,uint256,bytes32)","dbbdae63":"updateSeller(address)","dbbdf083":"register(uint256,address)","dbbe2ff9":"setCirculationShares(string)","dbbf01b2":"setAddUsers(address,address,string,string,uint256)","dbbfcd7c":"getCOR()","dbc02821":"XTVNetworkContractAddress()","dbc0c085":"teamMultisig()","dbc139be":"LogMigration(address,uint256)","dbc1f226":"suicide(address)","dbc27799":"pendingNewRound()","dbc2783d":"DoNotDeployThisGetTheRightOneCosParityPutsThisOnTop()","dbc2d042":"consumerAddress()","dbc2ef49":"getNotUsedToken_()","dbc38940":"executeTxn(uint256)","dbc45228":"newProposal(address,uint256,bytes,bytes)","dbc488e2":"ESlotsCrowdsale(address)","dbc53c07":"read(uint16,uint16)","dbc56297":"claim(address,bytes32,bytes32,uint8,bytes32,bytes32)","dbc57971":"getIcoStatus()","dbc5d002":"sendQuery(string,uint256,uint256)","dbc65f85":"preBuyPrice2()","dbc69521":"totContribution()","dbc837c5":"insurer()","dbc8817d":"GOLDENRATIO()","dbc91396":"cancelOrder(uint128)","dbc91ed1":"subset(string,uint256,uint256)","dbc933bc":"p_withdrawDevHoldings()","dbc9ef42":"_removeAuction(uint40)","dbca1207":"getLastSeed()","dbcbaca4":"investorInfo(address)","dbcbb362":"setTransperRun(uint256)","dbcc4658":"getSmartContractByPosition(uint256)","dbcc6caf":"second_release(uint256)","dbccb926":"CreatedToken(address,uint256)","dbcd258d":"blocksPerHour()","dbce1ff7":"referralRateInviter()","dbceb005":"split(uint256)","dbcf0531":"ContractFullfilled(address,int256)","dbcf194a":"GetInventoryCount(address)","dbd01de1":"cluster()","dbd05767":"RBA()","dbd0e1b6":"getSeller()","dbd16774":"IGMathsContract()","dbd19619":"round_earnings(uint256)","dbd1be77":"getDrone(uint256)","dbd1df92":"setTitulaire_Compte_1(uint256)","dbd229ff":"totalSupplyMarket()","dbd2ac60":"distributeCallback(uint256,uint256)","dbd3100e":"getBuilding()","dbd3313e":"PizzaPoll()","dbd3c372":"safeMulticastTransfer(address[],uint256[],uint256[],bytes)","dbd3cd62":"withdrawPayment(uint256)","dbd3d021":"findNextSecond(uint256,bytes2)","dbd42da5":"ranked()","dbd4a422":"synthetixState()","dbd4a8ea":"setBase(address,uint64,bool)","dbd54b62":"setMasterAuth(address)","dbd55fb3":"ACTION()","dbd594bb":"FoundsTransferd(address,uint256)","dbd5ef6d":"setFeeConfig(uint256,uint256,uint256,uint256)","dbd64ae9":"closeSale3()","dbd6da8c":"isUidSet(string)","dbd6f5c1":"allocationAddress()","dbd760ca":"PriceThreeDisable()","dbd7fd13":"saleMilk()","dbd84659":"receiveTokenByClientAccount(string,uint256,address)","dbd848e3":"ICO_Ended()","dbd8987c":"contractFeePercentage()","dbd8c25f":"BasicTokenImpl()","dbd91792":"multiowned()","dbd9a4d4":"setAllowances()","dbdb8b56":"eosGAS()","dbdb96c2":"updated_policy_payload()","dbdc275d":"createB()","dbdd5ae6":"actOnBehalf(bytes,uint256,uint8,bytes32,bytes32)","dbdd5d74":"swapsFor(address)","dbddcdb7":"getScouponBalances(address)","dbde1988":"transferFromWithoutReward(address,address,uint256)","dbdef054":"setFinalizeAgent()","dbdf7fce":"resetCounter()","dbdf8538":"_emitWorkStarted(uint256,uint256)","dbdff2c1":"getRandomNumber()","dbe01790":"getAllHpbNodes()","dbe1053d":"sendEthBackToUsers()","dbe201c7":"getAllBidsByAdslot(uint256)","dbe2bc84":"_suspendMarket(address)","dbe2c85b":"checkFiscalVerify(bytes32)","dbe2e296":"pushToPot()","dbe3010c":"WINNER_SHARE()","dbe3071a":"Kitchen()","dbe3117a":"tier2Timestamp()","dbe35007":"getAuctionsLength()","dbe3e92f":"provenanceOf(address)","dbe54524":"set_CWC_Address(address)","dbe55e56":"platformAddress()","dbe587b9":"CashPokerProPreICO()","dbe5bab5":"getOpenOrders()","dbe5ca78":"POAP()","dbe5fe9d":"setMaxCoinSides(uint8)","dbe6c02f":"isOwnerOrOperator(address,address)","dbe705ea":"fetchCreatedOrdersForMerchantByAdmin(address)","dbe992af":"updateEntry(uint256,address,uint256)","dbe9eebf":"getPricePointsLength()","dbea52d8":"lotteryPrice()","dbeab275":"createRoutingCode(bytes32)","dbeabd21":"getPplsAddr(uint32)","dbecc372":"Example(uint256)","dbecfb25":"koth_v1b()","dbed1e88":"getUnlockTime(address)","dbed3a30":"GamePoolAddress()","dbedf9e4":"TB01()","dbee0dea":"releaseTimeLock()","dbeea819":"tokenGrantees(uint256)","dbef0790":"returnUnsoldTokens(address)","dbefe789":"NUM_OF_PHASE()","dbf14295":"claimSilver(uint64,uint64,uint64,uint64,uint64,uint64)","dbf14dd9":"buyfloaksAgainstEther()","dbf1b00b":"claimBeer()","dbf1bfee":"ballotFee()","dbf1ede3":"_getLogTokenContract(uint256)","dbf1f780":"_hasEntryForCompetition(address,uint256)","dbf1fe48":"calculateTokensFromWei(uint256,uint256)","dbf27e0c":"updateConstitutionPoll(address)","dbf2c9da":"isValidAuthority(address)","dbf2f3c2":"get_reward(address)","dbf323dd":"DEDToken()","dbf35430":"ownedOwnershipTransferred()","dbf44530":"isWhite(address,address)","dbf45aa3":"EthBank()","dbf4c54c":"batchTransfer(address[],address[],uint256)","dbf502c0":"getCentsPerETH()","dbf517a2":"_connectModule()","dbf53a0e":"StandardTokenMock(address,uint256)","dbf552aa":"LOG_InvestorEntrance(address,uint256,uint256)","dbf5b91b":"setSafeGas(uint256)","dbf5eb1c":"closeTokenSale(address)","dbf63340":"availableSynthCount()","dbf675c9":"bonusAddresses(address)","dbf724c7":"setReceiver2(address)","dbf76c03":"bountyOfflineWallet()","dbf79dcd":"StatusCow(address,uint256)","dbf7dc0c":"getEntityList(bytes32[],uint8[])","dbf81cc6":"foundersTokensAddress()","dbf8d2fa":"sendTips()","dbf98f6a":"totalSupplyBonds()","dbfa5863":"_endDate()","dbfa6226":"interfaceInstances(uint256)","dbfa980b":"Slogan(string)","dbfab65b":"AvalonToken()","dbfb129e":"ChecksumDatabase(string,string,string)","dbfb18e7":"GoblinChainToken()","dbfc74cb":"ORACLIZEGASPRICE()","dbfccd16":"ethersplay(uint8)","dbfdb6e5":"getIcoTokensAmount(uint256,uint256,address)","dbfdef01":"TechnoEng()","dbfe791b":"confirmed(bytes32)","dbfeb17f":"eth_cap()","dbfec8b7":"CHEXToken(address,uint256,uint256)","dbfef710":"getDefaultRequiredGas()","dbff4182":"seedCoins(address,uint32,string,uint256)","dc00adef":"buyLand(bytes32,int256[],int256[],address)","dc00b602":"EllipseMarketMaker(address,address,address)","dc00e43b":"BananaBasket()","dc012626":"ballotOf(address)","dc015851":"minimumContributionPhase4()","dc01bd0c":"calculateAmountForDAI(uint256)","dc021628":"setFund()","dc02511e":"addPermittedContracts(address[])","dc02f456":"decodeTransfer(bytes)","dc042405":"getNames(address[],address)","dc048cf2":"withdraw(uint256,string)","dc0527de":"NDEX()","dc06269f":"showWhaleAddr()","dc06b859":"numMarketMakers()","dc06d8f8":"lnTest(uint256,uint256)","dc06e754":"_setRspTokenAddress(address)","dc070657":"changeBeneficiary(address)","dc08a80b":"safeToAdd(int256,int256)","dc08b611":"EXAC()","dc08e2c5":"getVIPOwner(uint256)","dc08e5ff":"getStockCount()","dc09426c":"GetGameInfo()","dc09996c":"escrowDatabase(address,uint256)","dc09d8fd":"showInvestorsComission()","dc0b3564":"players()","dc0b48c1":"startPubTrade()","dc0ba228":"change(bytes,uint256[])","dc0bd011":"collectDonations()","dc0bd38e":"appendDecryptedBids(uint256[],uint256[],uint256[],address[],address,uint256[],uint256[],uint256[])","dc0bd75f":"arr(address,uint256,uint256)","dc0c1a27":"numberOfMajorEvents()","dc0c7735":"isPreSaleTokenSet()","dc0d3dff":"funders(uint256)","dc0d4cb6":"merculetContract()","dc0eb1a3":"PredictTheFutureChallenge()","dc0f5ffc":"get_candidate_pic(uint8)","dc11a496":"changeAdmin(address,bool)","dc11b386":"getDailyTarget(uint256,uint256)","dc11be24":"smallSize()","dc126e63":"unlockVestedTokens(address)","dc1279d4":"getPureFromGene(uint256[2])","dc129870":"Loom()","dc12a805":"right57(uint256)","dc12abb5":"setPresaleDates(uint256,uint256)","dc132be8":"getAmountofTotalParticipants()","dc13352a":"TeamSupply()","dc13f85f":"getMaxPriceSale()","dc14af38":"setIncrEth(uint256)","dc1542aa":"testSafeAdd()","dc154918":"_computeTournamentContenderCut(uint256)","dc154a19":"buyAndSetDivPercentage(uint256,address,uint8,string)","dc15c635":"getdeptinfo(uint256,address)","dc165652":"bountyTokensVault()","dc1790e3":"getdeptreqdetails(uint256,address)","dc17c9ca":"getTokenOwner(address)","dc17e808":"getPaidOrderByIndex(uint256)","dc183d64":"setBridgeValidatorsImplementation(address)","dc184e70":"reserveAccount()","dc190074":"setsafemode(uint256)","dc19266f":"Total_of_Players()","dc199335":"checkIdentifier(string)","dc1abb6e":"MAX_AUDIT_TIME()","dc1b93cb":"COREXCoin()","dc1bba17":"getTxAmountMCW(bytes32)","dc1bebe6":"creditExecutedFundsLessFees(uint128,uint256,uint256)","dc1c1389":"acceptOfferForCity(uint256,uint16,uint256)","dc1cb47b":"priceTLP2()","dc1d672d":"mQueue(uint256)","dc1d70c3":"presaleBonusLock()","dc1d83b3":"changeTelephone(address)","dc1df3f6":"myTokens(address)","dc1eab83":"standardSale()","dc1fb5a5":"community()","dc1fca7e":"dateSaleStarted()","dc1fdff0":"commissionSum()","dc201838":"QuickPrice()","dc206e5f":"oraclize_query(uint256,string,string[])","dc20d6e7":"updateRandomNumber(uint256)","dc20f957":"assetIncome(bytes32)","dc21b3de":"preIcoBonus(uint256,uint256)","dc22aca5":"GalaxiumCoin()","dc22cb6a":"series(uint256)","dc22eba6":"register(uint256,uint256,uint256,uint256,uint256)","dc2424fc":"setPositionPrice(uint256)","dc242e38":"calTotalSupply(uint256)","dc2811cd":"KDOU()","dc2816b7":"AddNewChip(uint32,uint8,uint8,uint8)","dc28d0c9":"tokenToValue(address,uint256)","dc298682":"createCategory(string)","dc29a89e":"concatBytes(bytes,bytes,bytes,bytes,bytes,bytes,bytes)","dc29da22":"getNodeHash(address)","dc29ec37":"tokenReserve(address,uint256)","dc29f1de":"topUp()","dc2a3056":"setTripleRoomMax(uint256)","dc2a60f6":"isReadOnly()","dc2af3de":"getCEOAddress()","dc2b32e6":"getWeiInvested(address)","dc2ba357":"SetupQDA(string,string,uint256,uint256,uint256,address,address,uint256)","dc2c928a":"pausePlayerContracts(uint256,uint256)","dc2cf3f5":"timeElapsed()","dc2d46f8":"getWeiAmount()","dc2df955":"get_project_information(uint256)","dc2e47c8":"save4(address,bytes,string)","dc2e7b33":"cal(uint256,uint256)","dc2ebcbc":"whitelistMainSaleAddressMany(address[],bool)","dc2f56cf":"transferAgreement(bytes32,address)","dc2f7867":"setMaxLength(uint256)","dc2f8744":"bounties(uint256)","dc2f8a38":"setResult(uint256,uint8,int8)","dc30685e":"gas4Token()","dc3080f2":"spentAllowance(address,address)","dc30e253":"doFinalizeSale(uint256,uint256)","dc30f912":"addTokenization(string,string,uint8)","dc3134ae":"getIslandBattleStats(uint256)","dc31adee":"releaseMarketingTokens()","dc31e06c":"NEKOCOIN()","dc31e473":"opmAddress()","dc322802":"stage2Bonus()","dc32c72f":"secondReserveTimeLock()","dc3496d7":"allHashTypes(uint256)","dc35213f":"change(address,uint256[])","dc35a6bd":"LOWER_PRICE_RESET_PERCENTAGE()","dc35a900":"createOffer(uint256,uint256,uint256)","dc35ea16":"bonusInPhase1()","dc371e54":"deleteName(bytes32)","dc376392":"ETCCoin()","dc3774b3":"availableBalances(address)","dc382cbf":"sumAcceptedContrib()","dc391176":"delayedPayments()","dc39537a":"AVAILABLE_BONUS2_SUPPLY()","dc39d06d":"transferAnyERC20Token(address,uint256)","dc39e5fe":"removeOperationType(uint32)","dc3a1cad":"setIBalances2(uint256[],uint256[])","dc3a8372":"controllerApproval(address,uint256)","dc3a9433":"lockedFundsPercent()","dc3ab866":"checkEarnings(address)","dc3acebe":"getApp(address)","dc3c39aa":"TCDC()","dc3ccfdd":"transfer_tokens_from_contract(address,uint256)","dc3d1a2a":"addNewEmployeeWallet(address,address)","dc3d2b5c":"MiniMeIrrVesDivToken(address,address,uint256,string,uint8,string,bool)","dc3d4203":"createPatient(bytes32,bytes32,uint256,uint256,uint256,bytes32,uint256)","dc3d6305":"_transferFromAllArgs(address,address,uint256,address)","dc3da6e9":"IcoAddressSet(address)","dc3ecbb4":"debug_wei()","dc3ef685":"feePromille()","dc3f65d3":"createdByMe()","dc3f7536":"AdamToken()","dc40af1f":"oneTimeTickets(address)","dc414448":"_addToParticipants(address)","dc415804":"setFiscal(bytes32,uint256,uint256,uint256)","dc419fd8":"cancelOrder(bool,uint256)","dc41e726":"IndoJek()","dc420fd2":"withdrawPayoutFromBet(uint256)","dc4243f1":"setSalaryToken(address,address,address,uint256)","dc441754":"addDocument(bytes32,string,string,uint256,uint256)","dc44bb1c":"createEscrowFrom(address,address,uint256,uint256)","dc454c13":"EDROP()","dc45b93a":"contributorsCompleteCount()","dc45bfb3":"buyPack(uint256)","dc45d08e":"getEtherBalance(address)","dc45e27f":"getBonusBalanceByType(uint256,uint256,bytes1)","dc460933":"assignRole(address,bytes32,address)","dc46a76d":"getIdeasSinceLastDeploy(address)","dc46c813":"TwoExRush()","dc46d984":"numGamesCanceled()","dc47b3c1":"numberOfTokenIds()","dc47e5b7":"approveAndCall(address,address,address,uint256,uint256,uint256,uint256,bytes,bytes)","dc489c9b":"setAirdropper(address)","dc493790":"advisoryWallet()","dc4a307c":"createCommonAuction(uint256,string)","dc4b3115":"thirdPriceTime()","dc4baedd":"checkVerify(address)","dc4bc06e":"getUserCategory(address)","dc4c4005":"RemoveUser(address,address)","dc4d2ccd":"DiscountPercentToken(uint256,string,string)","dc4ece27":"BONUS_3_DAYS()","dc4ee13f":"overallTakenEther()","dc4f63cc":"cap_max()","dc502d64":"ethToBeDistributed()","dc50af26":"against()","dc51fba8":"SetherFinalized()","dc52696f":"tokenSupplyChanged()","dc52c514":"batchCreateDrawings()","dc533342":"reconciliationDateSet()","dc53903b":"fundsReceived(uint256)","dc540979":"POFOMO()","dc5418b1":"view32()","dc541eb7":"SelfllerySale()","dc542a79":"isMaximumGoalReached()","dc542c0f":"ALIToken()","dc547301":"setCurrentSupply(uint256)","dc54d919":"long_tokens(uint256)","dc555090":"updateTime()","dc555766":"createWithdraw(address,uint256)","dc566787":"topdownAndCashout(address,uint256)","dc570aad":"setPermission(address,string,bool)","dc57726f":"TokenGenerationEnabled()","dc57c1ef":"CopyrightToken(uint256,string,string)","dc57c323":"nextInputProfit()","dc57d553":"epochLast()","dc583801":"doubleyour5()","dc585713":"EtherFundMeIssueTokensCrowdfunding(string,string,string,uint256,uint256,uint256,address,address,string,string,uint256,uint256,uint256,uint256)","dc5936f0":"addCountry(bytes2)","dc596304":"NineLTDevToken()","dc597b47":"getAnimals(uint8)","dc5a2199":"ICO_WALLET()","dc5aa474":"lastBlock_f2Hash_uint256()","dc5acb90":"getOrThrow(string)","dc5b041b":"validationPassed(address)","dc5b0662":"getIndexByShip(uint256)","dc5b87cf":"getPartnerAllocation(uint256)","dc5bc461":"RadToken()","dc5bcafb":"UnicornToken(address)","dc5bf961":"totalTokensLocked()","dc5c3e06":"setFundraiseLimits(uint256,uint256)","dc5c9677":"changeSellerProposedValue(uint256)","dc5d184f":"setID(uint256)","dc5d9bfe":"migrationStep(uint256)","dc5df3fd":"ExperimentalPreICO(address,uint256,uint256,uint256,uint256,uint256,address)","dc5dff36":"LottoComplete(address,uint256,uint256)","dc5fced4":"totalRake()","dc5fe025":"forward(address,bytes,uint256)","dc5fe349":"releaseManyStakes(uint256[],address[],address[],uint256[])","dc602df2":"tokenValueMultiplier()","dc6037d1":"setbaseconfig(uint256,uint256,uint256,uint256,uint256)","dc60457c":"publicIssue(address,uint256)","dc6055dd":"BOUNTY_WALLET()","dc61164d":"getMySperm()","dc61456c":"cooAddCro(address)","dc622bcc":"setTokensAllocation(address,uint256,address[],uint256[])","dc62da61":"checkGameListed(address)","dc63a62c":"getFileListHead()","dc63f0be":"getSatOwed(address)","dc646367":"endSale(bool)","dc64752d":"collectsAccountDividends(address)","dc659907":"useModule(address)","dc661aaa":"mainICOFirstWeekEndTime()","dc6668db":"make_anonymous_withdraw(uint256)","dc667d0c":"getCountriesCount()","dc669dd4":"EndorToken()","dc689d3c":"getBaseDenomination()","dc693ca7":"totalWeiAmountSale1()","dc69a2d6":"tearDown(uint256)","dc69aa23":"SudanGoldCoinCrowdsale(uint256,uint256,uint256,address)","dc6b1cbd":"setUser(address,address,uint256,uint256)","dc6b7fb4":"LockedAccountThresholdUsdUpdated(uint256,uint256)","dc6b9b29":"notesLength()","dc6bbdf5":"totalContributionInWei()","dc6bc372":"TokenChangerBNT(address,address)","dc6bfbb5":"nextBallotId()","dc6c0cdd":"Share()","dc6c3ee4":"setMaxTokenCap(uint256)","dc6dd152":"playerRollDice(uint256)","dc6e7262":"refundTransactionByMediatorFee(uint256)","dc6e9cf9":"_MINIMUM_TARGET()","dc6f39a3":"TriggerCooldown()","dc6ff38e":"MAIN_MAX_CAP()","dc7049bf":"annualManagementFee()","dc706a3a":"VictusToken()","dc70ab02":"setTotalExecutedPerDay(uint256,uint256)","dc718791":"changeRules(uint256,uint256,uint256,uint256,uint256)","dc71db43":"worldCupResultPart2()","dc720528":"AgriChainProduction()","dc726205":"rates(bytes32)","dc730c50":"initialSingleWithdraw(uint256)","dc73e49c":"swapToken()","dc7454dd":"amountReleased()","dc74665e":"totalLeaderboards()","dc75f2db":"multiowned(address[],uint256)","dc760edf":"hardCapCrowdSale()","dc76dc8d":"applyForCertification(string,string,string,uint256)","dc76fabc":"getSpotPrice()","dc77e5e1":"serviceTokensBurn(address)","dc787bba":"getCountTempHolders()","dc799f88":"BaseCertoChainContract()","dc79b176":"getUserGroup(address)","dc79c2ef":"addUser(bytes32,bytes32,bytes32,bytes32,bytes32)","dc79d069":"investorSupply()","dc7abeb3":"OPENSOURCE_TOKENS()","dc7ac1ba":"lendVault()","dc7b808e":"callLibSet(uint256)","dc7bbd72":"hasThreeStepWithdraw()","dc7cbfab":"priceCounter()","dc7df9d8":"testToUint(int256,bytes)","dc7e5762":"goNextPeriod()","dc7e88e8":"amountOfBooked(address)","dc7fc898":"bankermasterReq()","dc80035d":"setFoo(uint256)","dc801db6":"MyYLCToken(uint256,string,uint8,string)","dc80aaee":"DeltaToken()","dc81e2b8":"DarenHui()","dc82697c":"getContractValue()","dc835df5":"Sense()","dc8369ce":"myStakesOnCountry(uint256)","dc8452cd":"required()","dc845934":"getPlayerBetResult(uint256)","dc846d95":"Own()","dc84e79e":"raisedPreSaleUSD()","dc851b02":"itcERC20()","dc85561b":"firstRoomAvailable(string,uint256[])","dc85b996":"window1EndTime()","dc86e6f0":"baseUnit(bytes32)","dc87cfbf":"executeTransaction(uint256,bytes)","dc885527":"burnUnmintedTokens(uint256)","dc88e838":"getOAR()","dc8a0f65":"change_game_dice(string)","dc8b0203":"clearApprovalAndTransfer(address,address,uint256)","dc8bc70d":"finalizeSale(address)","dc8c06d8":"addEmployerFeedback(address,uint256,address,string,uint8)","dc8d1095":"simpleSubmit(uint256)","dc8d2696":"inboxSize(address)","dc8d26ad":"changeICODates(uint8,uint256,uint256)","dc8ee41e":"coldWallet1()","dc8f2ae0":"addExplicitPosition(uint32,int64[2])","dc8fbb44":"deathData_f12()","dc903eb7":"addChunk5ToWhiteList()","dc904e69":"waveCap3()","dc90e42f":"restrictedStockOf(address)","dc91868f":"backTo(address)","dc91b634":"Ticketh()","dc91ea68":"PayerStringUpdated(string)","dc92beec":"setManyWhitelist(address[])","dc93f7c9":"feePayedPerReserve(address)","dc94b4a4":"doPay(bytes32,uint256,uint256)","dc94e45d":"setDistrito(uint256)","dc9513c1":"JustifyClaimWithWitness(uint8)","dc951fdc":"totalOverthrows()","dc9564d5":"buy(uint256,string,address,address,address,address)","dc9590f0":"_START_TARGET()","dc965479":"FooContractCall(address)","dc97a4f9":"getTotalUnPayedDividendsAmount()","dc97d962":"getInt(bytes32)","dc97e366":"stageIndex()","dc9861db":"updateMeDao(address)","dc988b40":"allowWorkerToContribute(address,address,address)","dc992aa0":"minUSD()","dc998901":"SaveData()","dc9a1535":"isPublic()","dc9a190e":"isAllowedTrade(address)","dc9a1df3":"SafecontractsTREXToken()","dc9ac994":"iconiqSaleOngoing()","dc9ae17d":"burn(bytes,address,uint256)","dc9b6d68":"getTimeSinceLastEvent(address)","dc9bb7db":"noKing()","dc9c6e15":"_myinitialSupply()","dc9d625b":"setMaintainance(bool)","dc9deea3":"amountPurchasedWithDecimals()","dc9deeff":"setPresellPrice(uint256)","dc9e7a87":"TransferedERC20(address,address,uint256)","dc9e9ba0":"allowStart()","dc9eb903":"Tbond1()","dc9ebff7":"getTotalInvestedEther()","dc9f0622":"transferManual(address,uint256,string)","dca0b866":"TwoPersonContract(address,address,bytes32)","dca27d5e":"setV_R4(uint256)","dca44b39":"setPerOneEther(uint256)","dca5f188":"AddressBook()","dca60034":"isMapped(string)","dca6058c":"canSetTransferable()","dca67e5d":"_createResident(string,string)","dca6f378":"withdrawTokensFromPool(uint96)","dca703d0":"LogSetQuestionFee(address,uint256)","dca73e6b":"getMyStores()","dca7bcbe":"getWords()","dca80bc6":"EtheremonRankBattle(address,address,address)","dca92eb5":"terminateLiquidation()","dca95419":"recoverSigner(bytes32,string)","dca9fd5b":"editStatus(uint256,string,uint256,uint256,int8)","dcaa5620":"findNextWeekday(uint256,bytes)","dcaabed7":"getLastDeedByAddress(string)","dcabf93f":"refundstate()","dcac652e":"setOwnerShare(address,uint256)","dcac69c3":"inheritedPure(uint256,uint256)","dcace702":"getClientLastPaidRate(address)","dcacf19a":"finalizeAndRestart(address)","dcae2cb4":"getWinningPrize(uint256)","dcaee066":"setStakeDisbursementAddress(address)","dcaeea15":"setadmin()","dcaf391e":"totalAirDropToken()","dcafa43e":"SaxoToken()","dcafaec2":"setCostToCreateGame(uint256)","dcafee05":"killBalance()","dcb01759":"salesEth(address)","dcb032ce":"addNodeGroup(string)","dcb04503":"testConcatStorage33Bytes()","dcb12421":"isSoftcapOn()","dcb1c012":"ChowSale()","dcb27883":"CallAborted(address,bytes32)","dcb31b82":"isConfig()","dcb35d06":"getTransactionApproveCount(uint256)","dcb36063":"crowdsaleMinter()","dcb3ff58":"updateDividendBalance(uint256,address,address,uint256)","dcb46e38":"setWorstCaseRateFactor(uint256)","dcb4775e":"tokenPartner()","dcb4876f":"removeAddresses(bytes32[])","dcb5930a":"ratingContractAddress()","dcb6af48":"calcAverageICOPhaseKeyPrice(uint256)","dcb7e083":"teamTokensInitial()","dcb7f86f":"getWinningPayoutDistributionHashFromFork()","dcb814ef":"presaleWhitelistDiscount()","dcb951de":"pushDividends(address)","dcb9528e":"getBiddingInfo(address)","dcb9d457":"updateClientOfContractorManagers(uint256,uint256)","dcba03da":"MINEA()","dcbac60c":"winPrizes(uint256)","dcbad97b":"setEndIcoMainICO(uint256)","dcbc1288":"m_SMR()","dcbc1c05":"Deposit(address,address,uint256,uint256)","dcbc84ab":"coinsIssuedMkt()","dcbda04c":"setCrowdsaleInterface(address)","dcbe7cf1":"addInsuranceProduct(uint256,uint256,uint256,string,string,bytes32)","dcbf16d4":"Normal(uint8)","dcbfa4b7":"addSkills(bytes32[])","dcbfe3d5":"clearRequests(bytes32)","dcc0ccf3":"Dao(address)","dcc0e622":"setTokensForCrowdSale(uint256)","dcc1fd02":"angelSaled()","dcc23730":"setCurrency(uint256)","dcc279c8":"setHalted(bool)","dcc33e0b":"updateOperationalAddress(address)","dcc42e9b":"cards_blue_total()","dcc439cf":"updatePlayersGooFromPurchase(address,uint256)","dcc5237b":"FlatPricing(uint256)","dcc53305":"getMail(uint256)","dcc60128":"getProjects()","dcc6131c":"checkBalance(uint256[],address)","dcc66b4b":"addRelationshipBindingWineryOperation(bytes32,uint256,bytes32,int256)","dcc66cc2":"getDelegate(uint256)","dcc6762c":"withdrawalInitiate()","dcc6e7ad":"refundEth(uint256)","dcc71ed4":"AdvisorsAndFounders(address,uint256)","dcc76a92":"Ranking()","dcc7f6b0":"Ethen(address)","dcc819c8":"computeCntrAmountUsingUnpacked(uint256,uint16,int8)","dcc8592c":"KOCMOCToken()","dcc8a508":"partnerBonus(uint8)","dcc9a58c":"testCreateGame(string,string,bool,string,address,string)","dccb0c89":"test_1_someTest()","dccb37f1":"initialTokenBalance()","dccb5afb":"_emitTimeAdded(uint256,uint256)","dccb70a7":"setEnableAllTransfers(bool)","dccb98da":"SparkToken()","dccbb14b":"payInterests()","dccbfa2a":"minInvestedCap()","dccc6c94":"fireCloseProposalEvent(address,uint256)","dcccb41d":"setTransferAddress(string,address)","dccd4315":"startingAt()","dccdc893":"setNewWhiteList(address)","dcceaaa8":"sendShipmentTo(address,uint256)","dccee5b2":"posibleDividendsOf(address)","dccf77ce":"setCurrentBlock()","dccfbb62":"overthrow(bytes23)","dcd0fa9e":"get_arbits_min_contribution(address)","dcd1e670":"checkAmount(uint256)","dcd320a0":"bouncyCoinToken()","dcd3c2e5":"QLALA()","dcd4090b":"getStage3Start()","dcd4eb14":"addNewTicket(uint256,bytes32,uint256,uint256,uint256,bytes32,string)","dcd58e2f":"FUTURE_ME_ADDRESS()","dcd65479":"numPeriods()","dcd6561d":"currentSaleSold()","dcd7dd2e":"setKYCLevel(address,uint8)","dcd8023c":"TokenBranch(uint256,uint8)","dcd93691":"retrieveOnFail()","dcd9c289":"getBAA(bytes32,address)","dcda0c8f":"requestDiplomaByNr(uint256)","dcda2385":"TransferSellAgentCreators(address,uint256)","dcda4554":"dazoToken()","dcda4bf3":"mOwner()","dcdaa35b":"mintAmount2()","dcdb622b":"MessageSet(string,uint256,uint256,address)","dcdbbe37":"lockTransferFor(address,uint256)","dcdc055a":"doBuy(address,uint256)","dcdc7254":"admin_set_shopStorePrice(uint256)","dcdc7dd0":"mint(address,uint256,bytes,bytes)","dcdd6d38":"getHolderAddresses(bytes32)","dcdd9af2":"DEX(address,address,address,uint256,uint256,uint256)","dcdda6d7":"teamUnfreeze()","dcde0019":"disapprove()","dcde835e":"NewSale(uint256,uint256,uint256,uint256)","dce0b4e4":"creationFee()","dce11375":"emitter()","dce1d3c6":"addTokenPendingToken()","dce23e97":"getPriceValue(bytes32)","dce293a7":"minLength(uint256)","dce2b4c1":"getMarkup(uint256)","dce2f2dd":"Vouched(address,bytes32)","dce388b6":"payeePartsToSell()","dce4a447":"at(address)","dce4ae87":"DigixConfiguration()","dce4b34e":"submitAnswerByArbitrator(address,bytes32,bytes32,address)","dce4fa38":"IcoTokens()","dce57755":"getBlockLength()","dce579d1":"extendIco(uint256)","dce59311":"didOwnerEndCrowdsale()","dce59c00":"addPayee(address)","dce5c5a9":"norsefirePrice()","dce5c757":"cool()","dce5f277":"investorsAddress(uint256)","dce6417d":"DebitCoinToken(string,string,uint8)","dce722dd":"getJobSkills(uint256)","dce77d84":"getCurrentRate(address)","dce85216":"moveUnsoldTokens()","dce98784":"NiewGold()","dce9f6c3":"SuperConductToken()","dcea0a64":"ADX()","dcea7113":"buyOutPrice()","dcea80a5":"exchangeIEO()","dceacb93":"_createNewBadge(address,uint256)","dceaf74c":"youAre(address)","dceb3e7d":"getConfirmations(bytes32,address)","dcebb122":"extendSale(uint56)","dcec5ecc":"calcNewEmployeePoolOptions(uint256)","dcec7204":"EtherNeo()","dced2f1a":"currentCharId()","dceda27b":"getRegularCarSupply(uint256)","dcede2c3":"testIsSameSign()","dcedeeed":"claimIfNeededThenSteal(uint256,uint256,address,uint8,bytes32,bytes32,uint256,uint256)","dceeeae8":"ServiceController(address,address,address,address)","dcef8165":"CoinBirdDEX()","dcefa538":"buyTokens(address,address,uint256)","dcefcb8e":"extractCallData(bytes)","dcf00b6e":"getAccreditationActive(bytes32,bytes32)","dcf1579c":"thirdBonusPercent()","dcf1a9ef":"commissionBalance()","dcf1df05":"showValue(address,address)","dcf219f2":"setLootboxFee(uint256)","dcf34a91":"SpendingUnblockedEvent(address)","dcf3fb2a":"revoke(address,address)","dcf537b1":"multiply7(int256)","dcf63591":"course()","dcf6a592":"isGreaterThan(uint256,uint256)","dcf72c10":"buyTo(address)","dcf73856":"generateGroups()","dcf7bb5c":"changeTarget(address)","dcf7c0d0":"TokenTrader(address,uint256,address,uint256,uint256,uint256,bool,bool)","dcf7c2f9":"asset(uint8,string,bytes)","dcf8045e":"tiersInitialized()","dcf8113e":"campaignEndedSuccessfully()","dcf86587":"_transferWallet(address)","dcf8f13a":"getCurrentItemPrice(uint256)","dcf90793":"IcoWallet()","dcf91ea9":"MoftakToken()","dcf946c2":"getAllParentIds(bytes32)","dcf97439":"revealX(uint256,uint256)","dcf988d6":"GetFeeBalance(uint256)","dcf9bbec":"hasVerifiedAttributeIndex(address,uint256)","dcf9e836":"setProviderLimits(address,uint256,uint256)","dcfa6ac4":"buyChamp(uint256,address)","dcfa9222":"transferAccessTo(address,address)","dcfa9cc0":"testProxyCall()","dcfac095":"CPX(uint256,string,string,address)","dcfc3b46":"getAdIdByUser(address,uint256)","dcfc4430":"groomAddr()","dcfcda2b":"changeEscrow(address)","dcfda779":"allowCrowdsaleAddress(address)","dcfe63a9":"finishPrivateSale()","dcfe64e9":"SHA256()","dcfe8eb4":"SetIPR(string,string,address,string,string,uint256,string,string)","dcff2f76":"createAndJoinCDP()","dcff5581":"NewFeeAddress(address)","dcfff171":"setDelegadoDeDistrito(bytes32)","dd001254":"nameToTokenId(string)","dd00182b":"dogeAddress()","dd004ca8":"_endEdit()","dd009f48":"recursiveCeil(uint256,uint256,uint256)","dd00a9dc":"close(uint256,uint256,bytes)","dd00b605":"normalCheck()","dd012a15":"setIt(uint256)","dd01f781":"goToWork(uint256)","dd01f9e4":"LogNeededBalance(uint256)","dd022727":"getGameByIndex(uint256,bool)","dd029560":"CoreLayer()","dd02e30d":"isValidTxPaymentForKWh(bytes32)","dd03447f":"DiamondCash()","dd052519":"withdrawAllPlayers()","dd05db9a":"amountPerRelease()","dd0669d4":"getZCount(uint8,uint8)","dd0702d6":"changeTeamPoolForFrozenTokens(address)","dd083f20":"teamPart()","dd0860a8":"IsOwner(address)","dd08b5c9":"disableRedemption()","dd090981":"setName(uint256,uint256,bytes32)","dd09de33":"soldTokensOnIco()","dd09e13c":"totalRegistrationBonusAmount()","dd0a1019":"isReserveGenerated()","dd0ac8ac":"HoldCrowdsale(uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,address)","dd0b1af5":"setMythexTokenAddress(address)","dd0b281e":"start(address)","dd0b7ffe":"setBuyNowPrice(uint256)","dd0c189c":"updateFirstExhangeRate(uint256)","dd0c42ab":"updateRequiredEntries(uint16)","dd0cf15d":"sendFund()","dd0cf7d4":"stopGuess(uint32,bool)","dd0d74ff":"IssueBank(address)","dd0e2373":"voterAddresses(uint256)","dd0e3902":"setData_6(string)","dd0e7832":"transferWithChange(uint256,address,address,address,uint256,uint256,bytes,bytes,bytes)","dd0f0808":"genEvent()","dd0f5a9a":"presalePiEnd()","dd0fa641":"winning_bets_total()","dd100efa":"getIcoEnded()","dd10d97e":"getPlayerWaiting()","dd11247e":"totalTickets()","dd114c22":"publish(address,uint256,address,uint256)","dd1219fd":"powerSwitch(bool)","dd12b51f":"getPermissionCheck()","dd137b5d":"toBase58(uint256,uint8)","dd13e20a":"forgeWeaponRarity(uint256,uint256,uint256,uint256)","dd13fd5f":"_acceptContribution(address,uint256,uint8)","dd14ab79":"updateTimestamp(bytes32,uint256)","dd151d1e":"pushAddressArray(bytes32,address)","dd155f3f":"removeAddress(uint256,address[])","dd15b66c":"MyWill(address,string,string,string,address,uint256,uint256)","dd15f993":"depositUSD(address,uint256)","dd16d981":"isCampaignValid(bytes32)","dd16fe09":"getCashBackObject(uint256)","dd17e151":"sendabr(uint256)","dd17eaec":"setMultipleRates(bytes32[],uint256[])","dd18b250":"getIdArray(address,address,string,string)","dd192de7":"affiliatesAddress()","dd193e7b":"addPerSell(uint16,uint256,bool)","dd1956b0":"InfiniviToken()","dd1a293a":"burnTokensFrom(address,uint256,uint256)","dd1a56a7":"WellnessToken()","dd1a5f0d":"_grandPVPLoserReward(uint256)","dd1a68c1":"report(uint16,uint16,uint8)","dd1aa549":"PARTNERS_WALLET()","dd1b1928":"getInputSize(uint256)","dd1b6137":"push(uint256,uint256)","dd1b7a0f":"nonFungibleContract()","dd1b89c6":"freezeExists(uint256)","dd1b9c4a":"POOL_FEE()","dd1bb3d1":"confiscateBalance(address)","dd1bb6f5":"TokenICOGAT()","dd1c35bc":"recycle(uint256)","dd1cdf84":"keybasePubURL(string)","dd1d5e64":"incGenLabFight(uint256)","dd1dbc3a":"calcUnMaskedEarnings(uint256)","dd1dc0ad":"RequestSale()","dd1dffb7":"getFundsCollected()","dd1e2651":"getUserKey(uint256)","dd1e4e11":"_getRandom(uint256)","dd1ee3d7":"whaleAddress()","dd1eee44":"couponTokenSaleAddr()","dd1f969b":"PURCHASE_AMOUNT_RATE_REFERENCE()","dd1fc642":"_approvedFor(address,address,uint256)","dd20a53e":"createTournament(uint256)","dd215410":"getWinnersIndex(uint256)","dd217ce1":"getAddusers()","dd218ff2":"addPreIcoPurchaseInfo(uint256,uint256)","dd21f395":"t_3rd_StageEnd()","dd22148f":"investedSumOnPreIco()","dd228801":"setAffiliateRate(uint256,uint256)","dd234dc7":"PixelBought(uint256,bytes32,uint256,address,address)","dd23795f":"bobMakesEthDeposit(bytes32,address,bytes20,uint64)","dd238603":"unsetWhitelist(address)","dd2407d3":"sendOnlyHash(bytes32)","dd242fa4":"staff_4()","dd253cd0":"setTransferMinimumFee(uint8)","dd2594af":"changeTokenApproves(uint256)","dd27efa0":"_packPVPData()","dd27fcad":"EternalCoin(uint256,string,string)","dd280c7a":"requestDetachmentOnPause(uint256)","dd288173":"doStore(uint256,uint256,bytes32)","dd28d12b":"ZILINGGOSupply()","dd28d14d":"getMembersInGroup(uint256)","dd294142":"institutionTimeLock()","dd2a07a0":"LCS()","dd2ac276":"genToLuck(uint256,uint256)","dd2ad311":"scheduleCall(bytes,uint256)","dd2bcae0":"DeviceIsDeactivated(address)","dd2c4d3d":"AdoptionRequestCancelled(bytes5)","dd2c888e":"balanceHistory(address,uint256)","dd2d2a12":"minimum(uint256,uint256)","dd2d4ea0":"tokensMain()","dd2e0ac0":"unlockToken(uint256)","dd2f4ebd":"getNumberOfGames()","dd300c6d":"getSettingChangeConfirmationCount(uint256)","dd301057":"noOfTiers()","dd3032bc":"RoundCHardCap()","dd30651f":"activateUser(address,uint256)","dd3129a9":"calculateAllBuyBackSum()","dd31f462":"clearDebt()","dd321018":"levelItemClass()","dd324fe7":"PieceStandardToken(uint256,string,uint8,string)","dd3260fc":"checkOpenTimer()","dd32858e":"withdrawWinner()","dd34abd3":"transferDirectorA(address)","dd34c9a3":"capFlex()","dd34dab8":"startTimeOfSaleLot4()","dd34e129":"PriceTest()","dd34e7be":"Vault(address,uint256,uint256)","dd365b8b":"pwn()","dd36b59c":"getPlanetOwner(uint256)","dd36e18b":"ContractStatus()","dd37be12":"mod(uint32,uint32)","dd3840ef":"PRIVATEPLACEMENT()","dd386239":"manuallySetNumRewardsAvailableForChildAddress(address,uint256)","dd397e03":"preIcoTarget()","dd3b014c":"getLatestVersion(bytes32)","dd3bd008":"getReadyTime()","dd3c407f":"_set7()","dd3ccd84":"percentForHelpCoin()","dd3d0bee":"changelp18(address)","dd3e5f47":"_sharesValid(uint256,uint256)","dd3ef6a6":"deathData_v12()","dd3f2893":"_processTokensPurchase(address,uint256)","dd3f8608":"FloatGameToken(bytes32,address)","dd3f9526":"_controller()","dd3fa136":"ship(string)","dd3ff4f6":"sendFeeToWallet(address,address)","dd413da0":"Vendi(uint256)","dd4198f4":"getScore(uint8,bytes32)","dd41cc2f":"getQuestionCount()","dd41e1c7":"redeemFrom(address,uint256,string)","dd420fc5":"auditorComment()","dd4253f7":"MeosunToken()","dd42c228":"totalLockedFund()","dd42faf7":"window3TokenExchangeRate()","dd4314b2":"unique_players()","dd443c7b":"cancelMarkets(uint256)","dd449a83":"allower()","dd44a15c":"allocateTokensForContributor(address)","dd450d4e":"transferFromBankToAccount(bytes32,uint256)","dd457c7f":"balancesSet()","dd45e247":"getUserListSize()","dd462e2d":"withdrawAmountHashing(uint256,uint256)","dd467064":"lock(uint256)","dd473d2b":"withdraw_all()","dd47fe15":"sendToTarget(address,address,address,address,uint256)","dd48087f":"balanceOfContract(address)","dd486c35":"ownerWantMyEther()","dd489e44":"setSystemStartingPriceMin(uint256)","dd48d911":"totalSellOrders()","dd49756e":"depositTokens(uint256)","dd49f1c8":"BooMToken()","dd4a055b":"buySale(uint8,address)","dd4a8361":"setWhitelistEntries(address[],bool)","dd4a8f61":"contractorManager()","dd4aac73":"SELLER_STEP_2_GET_PASS()","dd4aeb92":"manageMinting(bool)","dd4bc101":"weightOf(address)","dd4bd4b7":"getProjectMilestoneStartWindow(bytes32)","dd4c97a0":"approveNode(address)","dd4dfb62":"kUnit()","dd4e6993":"leerGat()","dd4e8823":"poiLockup()","dd4f1f2a":"multipleHomocide()","dd4f5f0f":"withdrawBBO()","dd4f8f74":"roundStartTime()","dd506e09":"changeRound()","dd50e9d4":"clearSummonNum()","dd510361":"setTransformTarget_pool(address,uint256)","dd5108d1":"addressToTotalDonationAmount(address)","dd510e98":"newLockUpAddress(address)","dd515cdb":"checkVotingForStartPayment()","dd51faa2":"setGas(uint256)","dd523559":"devuelveAddressUsuario(bytes32)","dd5244b4":"testTryProxyCallWithValue()","dd53c301":"mintContract(address,address,uint256)","dd54291b":"tokenCap()","dd54a62f":"content(string)","dd54cc0c":"advBtyWallet()","dd550958":"getOwnerAddress(uint256)","dd55f11b":"deleteCitizen(uint256)","dd55fba0":"createSecondPromoCollectible(uint256,address,uint256,address)","dd563726":"GoingGems(uint256,address)","dd57d5c5":"setTrust(address)","dd585e7b":"newincomelog(uint256,string)","dd5891b3":"join(address,string,string)","dd58f5d9":"isIcoFinish()","dd592a32":"topUpAmount()","dd595328":"untransform(uint16)","dd59c954":"mintBatch(bytes32,bytes32,bytes32,bytes32,bytes32,address)","dd5a4efd":"GameRefunded(uint256,uint256,uint256)","dd5a7f40":"getContractCreationTxGasprice()","dd5ac448":"payoutReferrer()","dd5b23df":"transferBond(address,uint256)","dd5b29b7":"toB32(uint256,bytes)","dd5c2678":"KappyKoin()","dd5ca673":"setMintRequestStringMap(uint256,int256,string,string)","dd5cba71":"CHXTokenSale()","dd5dcd52":"findActiveRange(address)","dd5dd552":"_cancelOrder(address)","dd5dd8f2":"timeGap()","dd5ddfe8":"setPermission(address,uint8)","dd5df59c":"nonEtherBuy(address,uint256)","dd5e403c":"IcoFund()","dd5e8410":"jackpotMedium()","dd5ea752":"burnAndConvertToQUA(uint256)","dd5f63fd":"niceguy3()","dd5f9a22":"STSTEST5()","dd604fcb":"EgyptianPound()","dd60b394":"giveFreezePermission(address[],bool)","dd60c898":"participantsCount()","dd611e8d":"Setter(uint256)","dd616a45":"ZeroCap()","dd62b1a0":"LalaToken()","dd62ed3e":"allowance(address,address)","dd62f6f3":"getPayoutDistributionHash()","dd63133a":"onPurchase(uint16,uint16,uint8,address,uint256)","dd63f7d0":"functionReturningValue(bytes32)","dd644f72":"basisPointsRate()","dd66111d":"gameRoundEnd()","dd67a360":"OrderLifeCycle()","dd681e51":"ecosystemGrantsReserveWallet()","dd68b386":"TransactionRefundedAfterExpiry(uint256,uint256)","dd6996a3":"LOL3()","dd6ad764":"withdraw(uint8,address)","dd6afdfe":"Chou(uint8)","dd6b2fc6":"isBarCodeData(bytes32)","dd6b996d":"endDividendPool()","dd6c1394":"GazeCoinCrowdsaleWhitelist()","dd6e66d0":"tokenHoldersTotal(address)","dd6e8e6a":"_markRedemptionFulfilled(bytes32)","dd6ed59a":"initSubPayees(bytes32,address[],int256[])","dd6f0f19":"ApplicationIsInDevelopment()","dd719d2c":"airDrop(address,address,address[],uint256[])","dd722127":"adminRemove(address,string)","dd7221e8":"LogPause(bool)","dd727ea6":"runJackpot()","dd729530":"add_shield(uint16)","dd72ae4e":"availableICO_w1()","dd73d17b":"getComment(address,address)","dd751310":"isRegisteredPublicKey(uint256)","dd75e7ff":"getENow()","dd75ecce":"getVestingAmount(address,uint256)","dd76d2fa":"setIdArray(address,uint256,string,string,address[])","dd787875":"setupSale(uint256,uint256,address)","dd791ce5":"tokenDec()","dd796b07":"indexOfCardAddress(address)","dd79cc6a":"secretBidCount()","dd79e33e":"splitIdentifiers(string)","dd7a1722":"accountLocked()","dd7aabc8":"_transferHelper(address,uint256)","dd7b3e97":"buyoutsEnabledFromTimestamp()","dd7b3f26":"bytes32ToBytes(bytes32,bytes32)","dd7bff82":"removeCandidates()","dd7d168a":"getEthBullet(string)","dd7d6bb0":"getLpAskPrice()","dd7db870":"addFreeVineyard(address)","dd7dde04":"maxTeamSize()","dd7e11be":"InternationalPaymentToken()","dd7eba7a":"ValentineRegistry()","dd7f2225":"MiCarsICO()","dd7f88ee":"date_start()","dd80f2a6":"Vibrancier()","dd817963":"lastBlock_f0Hash_uint256()","dd819721":"setNFTbyTokenId(uint256,string,bool)","dd838808":"endMigrationPeriod()","dd83a303":"cancelMortgage(uint256)","dd83c825":"backersAddresses()","dd8432fe":"getRemainingTokensForSale()","dd847dfe":"get_contract_money()","dd84acaa":"addressesAllowed(address)","dd859739":"SetBeneficiary(string,string,string,string,string,string,string,string,string,string,address,string)","dd85b1dd":"setServiceProvider(address)","dd85b82e":"EthealWhitelist(address)","dd8617ca":"payether(address,uint256)","dd86210a":"medalSymbol()","dd864883":"changeApprovalCore(address,uint256,uint256)","dd86f719":"COMMUNITY_BOUNTY_HOLDER()","dd87c9f0":"exeStatus()","dd897767":"isRealWorldPlayerMintingEnabled(uint128)","dd898fa2":"MinterStorePoolCrowdsale()","dd89daa5":"getBBFarmID(bytes4)","dd8a0c56":"vacate(address)","dd8ad12a":"executeAppReturn(bytes32)","dd8b0ff6":"rmax(uint128,uint128)","dd8bd8cb":"Patient(address)","dd8bf1f5":"setDistrict0xNetworkToken(address)","dd8c8855":"addWarehouse(uint256,uint256,bytes32)","dd8d11e2":"isValidSubscription(bytes32)","dd8d149d":"tokenCrowdsaleRate()","dd8d1cef":"totalUserCampaigns(address)","dd8d4c40":"getCallers()","dd8e668c":"FUND_FRAC_BOT()","dd8ee602":"log(bytes,uint256)","dd8ef66b":"cancelTrade(address)","dd8f3195":"HyperChipsToken()","dd8fee14":"regulator()","dd905097":"organisationWallet()","dd90c403":"getAccountFeed(address,uint256,uint256)","dd9180ea":"tokenReservationAllocated()","dd91f1f5":"toggleAuthorization(address,address,bytes32)","dd924594":"distributeAirdrop(address[],uint256[])","dd92a8b0":"confirmSell(uint256)","dd932c5b":"voteEnd(uint256)","dd93890b":"setMeta(uint256,bytes32,bytes32)","dd93c74a":"setInactivityReleasePeriod(uint256)","dd946033":"right81(uint256)","dd952089":"getTaxDataSignatures()","dd9546b1":"minInvestments()","dd9555f1":"withdrawBidForCollectible(uint256,uint256,int256)","dd955c44":"sellEth(address,uint256)","dd955d4c":"rawTransfer(address,bytes32)","dd9568b0":"messageInfo(uint256)","dd96440e":"DDD()","dd967b0b":"refundLoan()","dd9815a2":"claimPlayerProfit()","dd982bdf":"FaceBookCoin()","dd999ade":"cleanUpRounding()","dd9a76ff":"pay(address,address,uint256,uint256)","dd9a9e2c":"CORReserveAccount()","dd9bc47e":"finish(address,address)","dd9bf998":"authorizeTradingAccounts(uint256)","dd9bfb04":"bakanceOfBeer(address)","dd9cfc4b":"tokenSalesByAsset(address,uint256)","dd9d687e":"namehash(bytes32)","dd9dd688":"calcStopPrice()","dd9e3848":"NewHolder(address)","dd9e4094":"makeMemChange1(uint256,uint256,uint256,int256)","dd9e7b1b":"max_raised_amount()","dd9ea299":"getLastDepositId()","dda0268d":"queryBetUnit()","dda0c1d6":"adminAmendBallot(uint32,string,uint256,uint256)","dda0e4ba":"finishAllGames()","dda0f1bb":"sendToTicker()","dda13903":"GoldOwner()","dda2d923":"setIcoAddress(address,address)","dda3342b":"ReplicatorFactory()","dda342bb":"list(address,uint256,uint256)","dda38380":"CFTRAD()","dda3baff":"showlevel(address)","dda44b10":"buyRecipient(address,uint8,bytes32,bytes32)","dda477fd":"walletTransfer(address)","dda4fa8f":"setReserveWallet(address)","dda5062c":"userIds()","dda51424":"right80(uint256)","dda55b18":"GxTraders(address)","dda5d5cb":"saosao2()","dda5d799":"PRT()","dda6020b":"freezeMintUntil()","dda61c00":"getIsSecurityWalletReg(address)","dda63359":"setSellToContract(bool)","dda69410":"add(address,uint16,uint8,uint8)","dda6abb8":"sendToVestingContract()","dda6c3ce":"checkWinning(uint256)","dda72292":"BONUS_TIER_6_LIMIT()","dda81c15":"TIER_4_BUYIN()","dda89912":"setExchangeDetails(bytes32,bytes32)","dda943d6":"maxSet()","dda9939c":"Store(address[])","dda9f1a3":"HODLRegistration()","ddaa26ad":"START_TIME()","ddaa4c48":"granularPreallocate(address,uint256,uint256)","ddaa7e02":"GetTickSize3(uint256)","ddaaff27":"generateSection()","ddac6654":"validUntil()","ddad2ffe":"newNode(address)","ddad3ca1":"tokenMaxCap()","ddae2e26":"__save128(uint256[])","ddafaf4d":"reclaimNtvuEther(uint8)","ddb12a35":"countPayOrder()","ddb141c2":"execute_transfer(uint256)","ddb1bdc8":"credit(address,uint256,uint256)","ddb1ede9":"canceledBookingfc(uint256)","ddb22537":"withdrawDeadBids()","ddb25d71":"GBPproxy()","ddb31cea":"TEAM_TOKENS_LOCK_PERIOD()","ddb4897a":"NitroCoins()","ddb49f98":"SpiceNinja()","ddb5b3ac":"SellTokens()","ddb62333":"readTaskState(string)","ddb6af4c":"setTimeStamp(uint256,uint256)","ddb6e116":"vote(uint16)","ddb72188":"chAirDropLimit(uint256)","ddb792a0":"admin_from_To_transfer(address,address,uint256)","ddb863be":"multiPartySend(address[],uint256[],bytes)","ddb8b099":"itemNameOf(uint256)","ddb8f090":"GlobalTransfersUnlocked(bool)","ddb9341b":"SetBuildingDataArray(uint256[])","ddb9769c":"_settingsApplied()","ddba8c45":"verifyEscrow(uint256,address,address)","ddbb4ab4":"_bytes32ArrayToString(bytes32[])","ddbbc35c":"searchByName(string)","ddbcb5cb":"registerAs(address,bytes32,address)","ddbcb5fa":"MIN_AMOUNT()","ddbcf3a1":"ensNode()","ddbdf242":"traders()","ddbe7c41":"NeverEndingApp()","ddbe8f09":"voteEnd()","ddbe92d3":"setBondFundAddress(address)","ddbf5856":"completeLottery()","ddbf5c8f":"checkFee(uint256,uint256)","ddbfbdbf":"ETHERKUN()","ddbfd63e":"AddGoods(uint32,uint32,uint256,uint32,uint32,uint32,uint32,uint8,uint8,uint8)","ddc002e8":"TokenSold(address,uint256,uint256,bool,bool)","ddc0db14":"AmountBonusPricing(uint256[])","ddc12019":"_triggerCooldown()","ddc23059":"SchemeRegistrar()","ddc23ddd":"erc165InterfaceSupported_NoCache(address,bytes4)","ddc33450":"MNLTGUNE()","ddc35950":"setOwner(uint32,address)","ddc3e344":"_sellPutToClose(uint256,uint256,uint256,uint256,address)","ddc4aacf":"token4Gas()","ddc53c2c":"lastFreeBlock()","ddc541dd":"publisher(address)","ddc63262":"harvest(uint256)","ddc645f8":"CollateralReturned(uint256)","ddc6a171":"allowance(address,uint256)","ddc6f83e":"setIdent(string)","ddc6ffaa":"SecuredLedgerToken()","ddc86af6":"extractById(int128)","ddc8bb54":"PriceOf1000TokensInUSD()","ddc8d7a6":"_removePauser(address)","ddc983f2":"bonusEnds50()","ddca15de":"ServiceContract()","ddca337e":"SetMaxChequeValue(uint256)","ddca3f43":"fee()","ddcb1a94":"serviceBurn(uint256)","ddcbf794":"addScore(uint256,uint256)","ddcd3681":"getRemainingTrialDrops(address,address)","ddcd7ee9":"lastJson()","ddcd8763":"requestBuywithETH()","ddcd887b":"testMiddleTranchNotExact()","ddceafa9":"recovery()","ddcfa217":"newRecurringBillingContract(address)","ddd1002e":"LogStart()","ddd113f4":"numMarriages()","ddd1527b":"transferFromOwner(uint256)","ddd1b67e":"getCurrentMonth()","ddd35de8":"tokensPerBTC()","ddd41ef6":"transferDirector(address)","ddd505f6":"addTransaction(address,uint256,uint256,string,uint256,bytes)","ddd53cc5":"setupICOPrices(uint256,uint256,uint256,uint256)","ddd57872":"setTimeStamp(string)","ddd5e1b2":"claim(uint256,address)","ddd5e68b":"transferEthersToOwner(uint256)","ddd641b0":"tierName(uint256)","ddd6d79a":"remainingWithdraw()","ddd7c879":"claimWei(uint256)","ddd81f82":"registerProxy()","ddd83259":"_normalDistribution(uint256,uint256)","ddd9537d":"getUsdEthExchangeRate()","ddda66db":"setMerchantWallet(address)","dddac167":"VotingFinished(uint256,uint256)","dddaf901":"wcapToken()","dddb983b":"testFailCreateWithParentsForeignNotInUse1()","dddbb753":"getAdsCount()","dddd3594":"ConsentDirective(address,uint256)","dddd3de8":"getvalid()","dddf31f1":"lastClaims(address)","dddf33cc":"offerCatForSale(uint256,uint256)","dddfb2f2":"buyEIT()","dddff84c":"StandardCrowdsale(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","dde0523f":"changeVisitCosts(uint256,uint256,uint256,uint256,uint256,uint256)","dde05a67":"TinaCoin()","dde070e8":"getClaimAmount(address)","dde0d085":"mathTransfer(address[],uint256)","dde107c2":"stampIndextotransactions(uint256)","dde1589c":"icoTokensPrice()","dde26ec9":"createGrant(address,uint256,uint256)","dde27e29":"distributeTokens2(address[],uint256[])","dde2b332":"setTransferFrozen(bool)","dde2fc22":"DLCToken()","dde37357":"MultiOwner(address[],uint256)","dde3ae6d":"changeAssetOwner(address)","dde41aa9":"canonizedRegistry()","dde42067":"paidTokensOf(address)","dde43cba":"REVISION()","dde49979":"unlockFor(address)","dde4a70b":"getSell(uint256)","dde4dc8e":"Show_Patient(uint256,uint256)","dde4f41a":"releaseMultiWithStage(address[],address[])","dde5a65d":"purchase(address,address)","dde68e2e":"refundETHToCustomer(address,uint256)","dde6b340":"calculateLoanerInterest(uint256)","dde6e256":"getCarProduct(uint32)","dde6f449":"GlobfoneCoin()","dde6f484":"setMainAccount(uint256,address)","dde7af32":"warriorGold()","dde82c2d":"coinsRemaining()","dde8535f":"getMemberStatus(address)","dde8c8d6":"getUserVote(uint256,uint160,bool)","dde8dab2":"BEERCOIN()","dde9394c":"returnOwners()","ddea6df3":"isHumanToken(address)","ddeae033":"claimFor(address)","ddeae8ca":"markDone(uint16)","ddeb5094":"pause(bool,bool)","ddeb63b5":"setEscrowAddress(address)","ddec280e":"fetchAssetPrice(address)","ddec60d9":"Parents()","ddecc5d9":"getTradingTime()","dded49cb":"setadmin(address)","dded5dd8":"isAdminForGame(uint256,address)","ddedfc19":"TheLightToken()","ddeed1a4":"projectFailed(uint16)","ddef6421":"adventureContract()","ddef880f":"getDeepInfo(uint256)","ddef8f29":"HOTTO()","ddefdb90":"fillOrKill(address[5],uint256[6],uint256,uint8,bytes32,bytes32)","ddf0432f":"startPresale(address,uint256)","ddf063c8":"collectedEth()","ddf08ebc":"checkCaptain(address,uint32)","ddf09e89":"NelsonChenTestToken()","ddf0c070":"addBalances(address[],uint256[])","ddf187b0":"dogFight()","ddf1be5f":"setIII_R1(uint256)","ddf252ad":"Transfer(address,address,uint256)","ddf25ce9":"renExBalancesContract()","ddf27259":"LogCertificationDbUnRegistered(address)","ddf29872":"teamvalue()","ddf2d8cd":"setDesignatedReportReceivedTime(uint256)","ddf31394":"lockToken(address,uint16)","ddf33cc7":"TEAM_TOKENS1()","ddf34ab0":"getAgreedCompletionDate(bytes16,address,address,uint256,uint256)","ddf41bf4":"migrateHolders(uint256)","ddf4a032":"changeSettings(uint256,uint64,uint8,uint8,uint8,uint8)","ddf4b011":"TIME_UPDATE(bytes32)","ddf5cc29":"ActivationWithdrawal(address[2],uint256[8],uint256)","ddf6e5a0":"GEN_0_LIMIT()","ddf7e1a7":"tokenToTokenSwapInput(uint256,uint256,uint256,uint256,address)","ddf9d613":"getCustomBuyerLimit(address,address)","ddfa3a60":"getCrystalWeights()","ddfa53e4":"hardcapInWei()","ddfafa96":"getRates(address,uint256)","ddfb8b9b":"Start_quiz_qz(string,string)","ddfc50df":"setByte(bytes1,bytes8,bytes32)","ddfd72f8":"setHashByWriter(bytes32,address,bytes32)","de002aa6":"pushWork(uint256)","de0099a3":"heldTokens(address)","de009e7f":"offerToChannel(address,uint256)","de00a094":"controlled()","de0123bf":"AddMultipleAddresseseToWhitelist(address[])","de01ec28":"setStateMigrated()","de024515":"DEMT()","de02ae96":"bytes32ToBytes(bytes32[],bytes32)","de02f1fc":"PER_ACCOUNT_ADDITIONAL_TOKENS()","de0498d3":"Date_Started()","de05905b":"doSetName(bytes32)","de06b7f4":"doTakerPayment()","de06ef49":"whaleStartTime()","de07a886":"DEFROST_MONTH_IN_MINUTES()","de080401":"SethTokenPurchase(address,address,uint256,uint256)","de089aee":"userMaximumPurchaseAmountNg(address)","de08a6d8":"metaTransfer(address,uint256,bytes,uint256,uint256)","de08c364":"removeAdminister(address)","de08f188":"storageStep()","de090b25":"LockInExpiry()","de0a1c5d":"changeVuePayETHDestinationAddress(address)","de0a7cc6":"purchasedTicket(address)","de0b18f2":"getAssetAttachment(uint256)","de0b5af2":"BONUS_COEFF()","de0bffc2":"GlobaLiquids()","de0cf58b":"callerAllocationStartBlock()","de0d0802":"getWeightAndUpdate(address)","de0d50e4":"incGen0PresaleCount()","de0d7083":"Alter_MediatedTransaction(uint256,bool)","de0e9a3e":"unwrap(uint256)","de0f2b49":"setCertifierStatus(address,bool)","de0f725d":"removeContract(address,address)","de0fe922":"addHashType(string)","de0ff7c5":"getEther()","de1079b3":"vestFromTime()","de10f04b":"eraseNode(bytes32[])","de117fb1":"buyDirector(uint256)","de11823a":"GoldAllocation(uint256,uint256)","de11892b":"isAuthorized(address,bytes32)","de11c94a":"factoryContract()","de121554":"addLike(uint256,bool)","de12b52c":"getTopBlock()","de12b839":"GetPie()","de13bec6":"getApiByName(string)","de1446e8":"view54()","de14bbf7":"randomGen(uint256,uint256)","de14c818":"approvePayment(uint256)","de14d323":"confirmAlice(uint256)","de14e54d":"setActivity(address,bool)","de150d5d":"throwSlammer(bytes32,bytes32,bytes32)","de154352":"getBlocksTillMattew()","de154761":"upgradeManager()","de1565fe":"MainnetProtocol()","de1682a5":"PTLC()","de170570":"getTiers()","de176643":"_advisorsSupply()","de179108":"allSaleCompleted()","de17dfa9":"setCryptaurToken(address)","de1881a8":"processingFee()","de18af92":"getEmployerInvoices(address,uint8)","de18bec6":"BeneficiaryChange(address)","de18dd18":"refuseSale(address[])","de192a20":"ARChain(uint256,string,string)","de1955df":"reclaimByReceiver(address,bytes32)","de1ac2fd":"checkOperator(address)","de1b0486":"withdrawFrom(address)","de1b27f5":"SALE_ALLOCATION()","de1bee1b":"dogexSupply()","de1c237f":"getarg_2_input()","de1c78fb":"batch_send(address[],uint256)","de1c7f70":"getEns(address)","de1c977a":"testPreDistribute()","de1e46e6":"placeBet(uint256,uint256,uint8,int256)","de1e8de8":"MINIMAL_INVESTMENT()","de1eb2d0":"withdrawQuantity()","de1f892a":"adjust_ERC223Transfer(bool)","de1ff163":"isCurrentOrPastAccountReader(address,address)","de2037a7":"createSensor(uint256,uint256,uint256)","de20555f":"getGoldStatusCustodianverify(address)","de20bc92":"Stake()","de2111e2":"got()","de217625":"setAssets(address[])","de2184bf":"voting(address,uint256,string)","de21cd78":"allItems(uint256,uint256)","de21dc6f":"fundit(address)","de2237d3":"getVotersLength()","de223f63":"transferPauseOperator(address)","de242ff4":"allowance()","de24d3ba":"WEBCOIN()","de255778":"relocationActive()","de26bbb2":"percentage(uint256,uint8)","de271ee0":"depositAngelInvestmentEth()","de272835":"advisorIssue(address,uint256)","de2831f2":"getRemainingBonus()","de283b21":"current_transferred()","de28431c":"priceLastUpdate()","de287359":"acl()","de28ba54":"MorpheusTokenFAKE()","de28fc1d":"icoSender()","de2904de":"CapUpdated(uint256,bytes32,uint256)","de292789":"getResult()","de2994c4":"unfreezingTimestamp()","de2a4a43":"RLLToken(uint256,string,string,address)","de2a9778":"createProxy(address,address,uint256,uint256,uint256,uint256,uint256,address,uint256,string,uint8,string,bool)","de2b2cd2":"changeDonor(address)","de2b4473":"setSaleDepositsAllowed(bool)","de2c1d09":"SendERC20ToDex(address)","de2c1e85":"_packWarriorCommonData(uint256,uint256)","de2e6136":"sendGift(address)","de2ed893":"totalDonations()","de2f827e":"saveChickenOf(address)","de301e8c":"getRTEBonusTokenVaultBalance()","de306341":"createMineForToken(uint256,uint256,uint256,uint256,uint256)","de31482a":"tokenHasDistributed()","de318242":"Mani()","de326c1e":"movePatentData(uint16[],address[],uint256[],bool[],uint256[],uint256[],uint256[])","de329396":"ownerSetMaxProfit(uint256)","de33d8d8":"Print(string,address)","de341661":"unpause_2()","de346a40":"whiteListERC20(address)","de34bacd":"cardPrice()","de35a696":"Child(string,address)","de35be81":"submitSellOrder(bytes32,uint256,uint256)","de377015":"maxIcoTokensSold()","de37ca12":"MyFirstSmartContract()","de37e977":"thisTokenBalance()","de38460b":"nextSaleAgent()","de3849be":"owner_AirdropUpdateToken(address[],uint256)","de385438":"calculateEmission(uint256,uint256)","de38a5f4":"verifyKYC(bytes32,bytes32,bytes32,bytes32,bytes32)","de38c771":"setFundingAmount(uint256)","de38eb3a":"MAX_TIMEOUT()","de3989f5":"CalledA()","de39acea":"get32(bytes,uint256)","de3a8511":"teamKeepingSupply()","de3ab731":"evaluateAfterQuery(bool,uint256)","de3b5061":"updateBuyType(address,address,int256)","de3b653a":"IsReleaseToken()","de3bcb97":"takeAll()","de3bec59":"baseowner()","de3d0290":"gwtoken(uint256,string,uint8,string)","de3dac84":"freezeAccount(uint256)","de3ea04a":"SAGAToken()","de3f18e2":"winningTeam()","de3f26eb":"oracleRegistryContract()","de3fbdee":"addRate(uint256,uint256)","de400629":"createListingWithSender(address,bytes32,uint256,address)","de4125b0":"addWineryOperationEndorsement(string,uint256,bool,string,string)","de4138de":"getCurrentStateId()","de41e1a1":"assignOwner(address[],uint256,address)","de42dcc9":"LuckCashToken(uint256)","de42f045":"auditTimeoutInBlocks()","de43844b":"fixedExp(int256)","de44a17e":"setNewModifier(address)","de44bf01":"getCreateUniverseParentUniverseValue()","de459c9b":"RATE_SALESTAGE6()","de469071":"hashBetSum()","de47864c":"testSafeAdd(uint256,uint256)","de47e0bf":"withdrawBaseETH()","de48ff52":"updateState(int128,uint128,uint8,bytes32,bytes32,bool)","de494190":"getCommentIdByAd(uint256,uint256)","de49bd54":"BurnTokensAndSetAmountForNewBlockchain(address)","de4b3262":"setBasePrice(uint256)","de4b3a73":"defaultText()","de4b4073":"devSend()","de4b45fa":"finalizeReclaim()","de4c0574":"migrateAllowancesFromLegacyRep(address[],address[])","de4cd094":"convertToDecimal(uint256)","de4d51a5":"setSaleType_Airdrop(uint8,uint8,uint32,uint8,int256,uint256,int256)","de4f4d2b":"totalEthHandled()","de4f9383":"transferEtherFrom(address,address,uint256)","de5007ff":"sweepMsg()","de50f2fe":"KycClaveChain(address)","de5101af":"timestampToDate(uint256)","de51f57e":"setValueStep3(uint256)","de52ccbe":"NGX()","de530bbb":"EMISSION_FOR_SALESTAGE4()","de534744":"tokenDistribution(address,uint256)","de563b89":"removeRatio()","de56a245":"editionOptionalCommission(uint256)","de571e48":"getCollectedAmount()","de575a02":"dismissRoom(uint256)","de576c8a":"CREATED_STAR5()","de5785d5":"feesAvailableForWithdraw()","de578a90":"ApodTokenContract()","de57e8b4":"releaseEscrow(bytes16,address,address,uint256)","de583ed3":"_improveCard(uint256,uint256,uint256)","de5866f9":"s19(bytes1)","de589fa9":"TokenLongExercised(address[2],uint256[8],uint8,bytes32[2],uint256,uint256)","de58d156":"createAsset(string,string,string)","de5990ca":"INTREPID_VOUCHER_LIMIT()","de59a5cb":"SaleClockAuction(address,address,address,uint256,uint256)","de5ac86d":"createWager(bytes32)","de5b71f7":"distributeReward(address,uint256,uint256)","de5b9987":"getUnitDefenseMultiplier(address,address,uint256)","de5b9e4f":"BitMEDSmartToken()","de5bb5a2":"nEdits()","de5c995e":"Y2_lockedTokenReleaseTime()","de5cb7ed":"DutchAuctionPoD()","de5cf247":"giveTokens(address,address,uint256,string)","de5d953a":"logSingleIndex(bytes,bytes,uint256)","de5da0cf":"nextGiftId()","de5dc6c8":"tokenCapped()","de5dead6":"reduceInventories(uint256,uint256,uint256,uint16)","de5e21df":"timerStart()","de5e7ac4":"getOutcome(address)","de5eaa83":"donate(uint8,bytes32,bytes32)","de5eeb6e":"preICOAddress()","de5f3ec6":"buy10Price()","de5f5517":"lad(bytes32)","de5f72fd":"faucet()","de5f9866":"getTokensLeft()","de605ecc":"changeSettings(uint256,uint256,uint32)","de60a67d":"maxCapIco()","de620676":"_sellprice()","de622de4":"tgeStarted()","de62319c":"IQT_CONTRACT_ADDRESS()","de625d1f":"totalReceivedWei()","de628e3b":"tokensCalculator(uint256,uint256,uint256,uint256)","de629235":"getCertificationDocumentAtIndex(address,uint256)","de637901":"poptxs(address,uint256)","de63dc35":"setPartnerFromPreICOAffiliate(address[],bytes32[],uint256[])","de640e19":"Investment(uint256)","de642b5a":"cbdc(uint256,string,string)","de644ebd":"firstMintRound0For(address[],uint256[],uint8[])","de648b87":"setSKLContractAddress(address)","de656b71":"BecomeSnailmaster()","de658979":"_updateCompany(bytes32,bytes32)","de6595b2":"WhitelistedUpdated(uint256,bool)","de65da20":"purchaseGame()","de661217":"left75(uint256)","de667e70":"setBuyer(uint256,address)","de66b5f7":"unidentifiedSaleLimit()","de66ed0d":"getTargetReporterGasCosts()","de6746a5":"founders(address)","de6764ba":"Swanroll()","de67fd05":"deleteLayer(uint256)","de683a7d":"change(address,uint256,address)","de68c43f":"noFee(address,address,uint256)","de6a1b19":"landmarkPoolTotal()","de6a9d83":"CheckResultCalled(bytes32,address)","de6ab39c":"INITIALSUPPLY()","de6b8a2e":"getOrderLength(address)","de6b978d":"POA20(string,string,uint8)","de6baccb":"transferWithLock(address,uint256,uint256)","de6bd0e8":"redistributeEthForAddresses(uint256,address[])","de6c4f4b":"reset(address,address,address,address,address,address,address)","de6ca3f0":"_setCommit(uint256,address,bytes32)","de6cdd2e":"getExchangeInfo(bytes32)","de6eb4be":"NBAONLINE()","de6ed7dc":"GoldIssueBurnFee(string)","de6ef007":"amountTokensPerEth()","de6f24bb":"sendMessage(address,string)","de7086f6":"TemplateToken()","de70b36c":"RevokeViewingPrivelege(address)","de718e3f":"initialWeiRais(uint256)","de71c467":"presentObject(bytes,bytes32)","de71d56b":"getStandartComponent(uint256,uint256)","de72a01d":"Agt()","de72b83d":"totalBountyAmount()","de72cab0":"finishBonusPeriod()","de733397":"allowClaiming()","de7337a1":"changeFloor(uint256)","de7383e0":"handleTokensReceived()","de742c2d":"getFreeAlien()","de74880c":"platformUnfreeze()","de74e57b":"listings(uint256)","de750f6f":"getNine(uint256)","de758458":"IPFSProxy(address[],uint256,uint256)","de75c36e":"addressMasterNodes()","de763a40":"getEtherFeeForPriceInCandy()","de77229f":"MinterOwnershipTransferred(address,address)","de77743d":"needsbeneficiary(uint256)","de7874f3":"plyr_(uint256)","de78be15":"onSoftCapReached(uint256)","de78e78a":"tokenLaunched()","de78ed85":"actual_balance(address)","de795edd":"prova()","de79fb92":"UKTTokenVoting(uint256,bytes32[],address[],uint256[])","de7a5956":"getWinnerTeam()","de7ae335":"WithdrawDividendsAndCouponsTo(address)","de7b1a77":"finalizeTokenSaleManager()","de7b24b8":"ICOFailed(uint256,uint256,string)","de7b89bd":"GetUserExtraData1(address)","de7bea74":"getThreshold(uint8)","de7c2ed2":"TEAM_VESTING_DURATION()","de7c99c3":"releasePrivateBonusTokens(address[],uint256[])","de7cb327":"Proof()","de7d4fc4":"getGameNumber()","de7dd576":"etherPriceInPoundPences()","de7fe3e7":"getItemInfo(uint256)","de803198":"setFunderSmartToken(address)","de80344d":"startStage(uint256,uint256,uint256,uint256)","de80b0a5":"promo()","de812733":"createBaby(uint256,uint256,uint256,uint256)","de81333e":"claimHeldBalance()","de815e61":"FourArt(address,address,address,address,address,address,address,address,address,address,address)","de81aaaa":"hardCapUSD()","de821a35":"_updateGenerationSeasonFlag(uint256,uint8)","de8248fb":"FEE_PERMILLE()","de824f93":"TimeLeft()","de82b54d":"cancelSellToConsumer(address)","de82efb4":"gimme()","de831ee7":"changeMinTransfer(uint256)","de840f11":"NassauToken()","de850c71":"dequeueAlternately()","de852afe":"revokeAccessDeploy(address)","de854065":"Portfolio(address)","de85a4a9":"tokenIssuedMkt()","de866db1":"buyContract()","de86ba28":"_addMintedTotallyByBridge(uint256,address)","de874962":"EOS_Silver()","de8801e5":"presaleStart()","de887bba":"getSecretBet(address)","de889d50":"refundWallet(address)","de88a342":"payDividends()","de894d3a":"_transferDividends(address,address,uint256)","de8a1c2e":"OMIToken()","de8a6fa2":"baseEthCapPerAddress()","de8b1d5c":"createCustomPresale(uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","de8b888e":"freezeTokenTransfers()","de8ba6d1":"getAndDel(bytes32)","de8bb64f":"TEFC()","de8bf3b6":"noRoundMiniGame()","de8c85ea":"operationToken()","de8f50a1":"verify(bytes,bytes,bytes)","de8f55af":"dailyDistribution()","de8fa431":"getSize()","de901104":"setLLV_edit_15(string)","de9122f7":"wipeAttributes(string,bytes32[])","de917978":"SafecontractsTREXFund()","de91af7b":"totalPoolCap()","de91bb10":"CardManger()","de92af4b":"LongBought(address[2],uint256[3],uint256)","de931662":"callToken()","de934416":"balancePrivate(address)","de934d86":"BOT_ELEMENT_1()","de9364f4":"testFailBurnGuyWithoutTrust()","de940c29":"renounceOwnershipForever(uint8)","de942e62":"getLLV_edit_6()","de944520":"getBurnAmountApproval(address,address)","de9476dd":"addNewAirdrop(string,uint256,uint256,address,uint256)","de94b800":"backToken(address,uint256)","de957cf4":"setChunkSize(uint256)","de9652b1":"getcoinSortinglength()","de96587e":"removeAmbassador(address)","de96e823":"StarbaseCrowdsale(address)","de981f1b":"getContract(uint8)","de98bc4f":"LogMintingStopped()","de990bda":"etherMaximum()","de995b90":"sendOwnershipFrom(address,address,uint256)","de998dd0":"_affiliateProgramIsActive()","de9a1bdb":"MyToken(string,string,uint8,uint256)","de9b33f9":"getWithdrawNonce(bytes32)","de9b9364":"max_investment_eth()","de9d0e85":"_setPendingAnchor(address,uint256)","de9daf91":"setEmissionLimit(uint256)","de9db5d3":"projectShare()","de9eade3":"totalInitialAddresses()","de9ee13e":"calculateMaximumPayment(address,address)","de9f28e4":"getJobTotalSkills(uint256)","de9f4248":"identities()","de9f57f5":"LogBroker(address)","dea011f5":"updateService(address,address)","dea01b3e":"removeOneSecret(bytes32)","dea06188":"NumberOfBlockAlreadyMined()","dea09ef3":"takeFee(address,address,address,uint256,uint256)","dea0a837":"SetParticipantURL(address,address,string)","dea0cbd7":"viewMaxGasPrice()","dea1bd69":"setValidity(uint256)","dea216af":"nestedSecond(uint256)","dea2356c":"setInvestorGain(uint256)","dea37fb0":"Force()","dea3ce27":"setEligibleForReimburse(bool)","dea4267b":"addCourse(string,string,string,string,string)","dea5408f":"paymentSizeB()","dea5de80":"phase_4_Time()","dea6aec7":"getTargetSupply()","dea7b768":"submitBallotNoPk(bytes32)","dea89056":"holdMax()","dea8d6b6":"testCannotSetPresaleTokensAfterSaleStarts()","dea90acf":"getEmergencyTransferSignersCount(address)","dea95ff8":"setRoundNum(uint256)","dea97078":"getPendingTransactionsSellerAddresses()","dea9b464":"depositCollateral(bytes32,uint256)","dea9c72b":"getLatestPreReleaseTree(bytes32,uint32,uint32,uint32)","dea9ecd6":"DeanCoin(uint256,string,uint8,string)","deaa0d0a":"withdrawal1()","deaa59df":"setWallet(address)","deab5a78":"TEGTY()","deac4659":"inArray(address)","deaca58e":"settlvlement(address,uint256,address,string,string)","dead98f6":"part_to_vehicle(uint256,string,uint256)","dead9f93":"setParams(uint256,uint256,address,address)","deadc3dc":"currentStepIndexByDate()","deae5d4d":"networkPlaceholder()","deaf5a5e":"transferDocument(bytes32,address)","deb06c3a":"gameActive(uint256)","deb077b9":"nextSaleId()","deb081df":"getIslands()","deb0e09b":"getVotingDuration()","deb209f6":"isProviderValid(uint256)","deb2432b":"zecId()","deb2e0b9":"MedNet()","deb36e32":"startVesting()","deb41f8d":"setTuple(uint256,uint256,bytes32)","deb43874":"Heritable(uint256)","deb52738":"finaliseFirstPhase()","deb53ab4":"BeneficiaryStake(uint256)","deb5d6c2":"inviterReg()","deb60627":"MhpCoin()","deb6930c":"PriceTicker()","deb77083":"stage2Bounty()","deb775a7":"tokenEmission(uint256,uint256)","deb80111":"transfer_asset(address,uint256)","deb80d66":"ProvidencePresale()","deb83bcc":"crowdsaleEndLockTime()","deb931a2":"getOwner(bytes32)","deb93b5b":"balanceOfOn()","deb979ac":"mktValueupdated(uint256)","deba5e95":"addCandidate(address,bytes32,string)","debad25e":"TeslaTest()","debad27f":"getProducts(uint256)","debaeb0e":"bonusLevel1PercentModifier()","debbc6eb":"btcRelay()","debc74f6":"buyRateZeroQuantity(uint256)","debc94ff":"Buckcoin()","debcbdcf":"preSaleStartdate()","debd122e":"setUp(uint256)","debe1c69":"setAccountingParams(uint256,uint256,uint256)","debe9768":"mintTokensLockedMultiple(uint256,int256,address[],uint256[],uint256[])","debf5b9f":"phase_4_rate()","dec0257d":"deleteContract(bytes32)","dec04b9b":"testNow()","dec10357":"currentCandyTotalSupply()","dec18b46":"second_withdrawal(uint256)","dec22b07":"forceExecuteRandomQuery()","dec24118":"lastCallBlock()","dec26d55":"LifeSet_003()","dec32ae8":"byTokens()","dec4b436":"subAttack(uint256,uint256)","dec57e94":"QTUM()","dec5cf53":"Exile()","dec6bc91":"EthernautsPreSale()","dec6c2d8":"updatedDistributee(address,uint256)","dec74ae9":"eurId()","dec7542f":"changePermission(address,address,bytes32,bool)","dec7ee57":"convert2Platinum(uint256)","dec7fa11":"minimumTokenAmount()","dec8f52e":"getVested(address)","dec96e7b":"setTitulaire_Compte_3(uint256)","dec9ba44":"createBet()","deca15db":"calcQueryCost(uint256,uint256)","deca6e76":"adminsInitialized()","decadbcc":"mainstreetCrowdfund()","decb3a90":"winAmount()","decb4803":"Tipcoin()","decbd169":"createPet(uint8,string)","decd8785":"addPartnerAddress(address)","decd8a25":"MINI_GAME_PRIZE_CRYSTAL()","decde7c0":"GetCert(uint32)","decdffbb":"_emitJobRatingGiven(address,address,uint256,uint8)","dece296f":"RET_DIV()","dece2e67":"releaseFundsSeller()","dece3355":"MinePoS(address,uint256)","decebbce":"getFunds(address)","decf1e64":"minimumPledgeAmount()","decfe0d4":"destroyEnabled()","ded04fe9":"testFailCreateNewRevisionNotOwner()","ded05da5":"changeIcoAddress(address)","ded1588c":"OwnerWithdrawTokens(address,address,uint256)","ded1c11b":"startFinalStage1()","ded1d0b8":"createMiniTicket(address,uint256)","ded1e438":"checkRatio(uint256,uint256)","ded1e4de":"DisputeResolver(address[],address)","ded1e7e3":"innerGreet()","ded1f580":"Unregister(address,bool)","ded24016":"getDynamicArrayElement(uint256)","ded2d0f4":"awardToken(address,uint256)","ded30375":"setectoken(address)","ded317a8":"minCapUSD()","ded37745":"maybeAnotherTime(uint256)","ded4980f":"withdrawInvestmentsBeneficiary(address,address)","ded54a4c":"stitch(uint256,uint256,bool)","ded5bc6c":"getBdpImageStorage(address[16])","ded5bd14":"setApp(string,uint256,address)","ded78d3d":"trade(address,uint256,address,uint256,uint256,address,uint8,bytes32,bytes32,uint256)","ded8454a":"addressToBytes(address)","ded8f76d":"_sort(uint256,uint256)","ded94688":"showOwner()","ded9b075":"getAllDepositesCount()","deda0b5a":"mockSetResult(string)","deda20de":"doPurchaseFor(address)","deda2f9d":"triggerStealManually(uint32)","dedb7e25":"_ifEvenThenOddTooFlags(uint256)","dedc440f":"getEscuela(uint256,uint256)","deddab12":"withdrawalToken(uint256)","dede12a4":"startWeekOne()","dedeb3ca":"referralRateInvitee()","dedf141e":"setDates(uint256,uint256)","dedfb567":"multiFreezeAccount(address[],uint256)","dee023e2":"transferAllArgsNoAllowance(address,address,uint256)","dee1bfbe":"totalLendingFiatAmount()","dee1cfd8":"icoStartTimestampStage()","dee1f2af":"addToken(address,uint256,uint256)","dee2596b":"changeBonusTokenAddress(address)","dee2b058":"setCapacity(uint256,uint256)","dee3a226":"finalizeSto()","dee3efb2":"getWorkerPoolByIndex(uint256)","dee4b246":"buyTokens(uint64,uint256,uint8,bytes32,bytes32)","dee5216e":"applyRuntimeUpdate(address,address,uint64,uint64)","dee54b68":"WalletAddressUpdated(address,address)","dee555bf":"discountRateIco()","dee5a9e7":"PRICE_STAGE_THREE_BONUS()","dee6e5a4":"toggleKYC(address,bool)","dee73dbb":"AcceptedOwnership(address)","dee751ce":"createHoldToken(address,uint256)","dee7e59b":"LogWithdrawTokens(address,uint256)","dee81a13":"Local()","dee846c5":"updateJoinedCrowdsales(address)","dee8575c":"getNumBits(uint256)","dee86dfb":"marketIdeas()","dee8bd51":"ReleaseICO()","dee9f53f":"idOf(uint256)","deeb7124":"MDAToken()","deebeac9":"transferToken(address)","deec4c20":"getCardsInfo(uint256)","deecb187":"KyberNetworkProxy(address)","deed18e2":"isReadyToFinalize()","deed2be0":"getDailyPlayers()","deed4b80":"isFirstLockTimeEnd()","deee9adb":"setPOOL_edit_10(string)","deef6c99":"ZigguratToken(uint256,string,uint8,string)","def04570":"TheFrozenDeadShitCoin()","def0defa":"getOwnerHistoryCountOf(bytes32)","def18101":"currentBid()","def1a2da":"vc3Wallet4Pct()","def2489b":"convert(address)","def2be48":"getBAAAU(bytes32,address,address,address)","def4ba32":"utrTestToken()","def51dc2":"CIC()","def59575":"manualyAddReferral(address,uint256)","def59ea5":"addMember(address,address,uint256)","def5bbd0":"strConcats(string,string,string,string,string)","def7eb44":"maxChangeFee()","def843ef":"createOfAthleteCard(string,address,uint256,uint256,uint256)","def86cbb":"modifyWhitelist(address[],address[])","def871ef":"AirDrop(uint256)","def9176c":"team1Balance()","def92c69":"MAX_BALANCE()","def98a72":"recipientExtraMIT()","def9c7e2":"_escrowStakeOwnerPaymentEarning(address,bytes32,uint256,uint256,address,bool)","defa92ee":"depositDividends()","defaa5f2":"_transferEthereum(uint256,uint256,uint256)","defafa37":"setRefundTimelock(uint256)","defb9584":"PROMO_CREATION_LIMIT()","defbc073":"weiUnlocked()","defc876e":"removeAddressFromCaller(address)","defc8ae9":"BuyOffer(address,address,uint256,uint256,uint256,uint256)","defce6d8":"FlagAddress(address)","defe2883":"totalSupplyByAsset(bytes32)","defe2c47":"_checkRecommend(bool,uint256)","defefe96":"payCompoundTerm(uint256,uint8,uint8)","deff30c6":"sellTokens(address)","deff3a37":"purchaseReject(address)","deff41c1":"m_owner()","deff5757":"setPartnersRelease(uint256)","deff71b8":"setAllFlagPairs(bool[2][])","deff7f2f":"CrowdFundings()","deffbaee":"addOwnershipChest(address,uint256)","df000ff7":"acceptParityOwnership()","df013fab":"setDelegadoDeEscuela(bytes32,bytes32,uint256,uint256)","df018dbd":"process(address,address,address,string,string)","df022cbc":"hello1()","df034586":"lockCount(address)","df034cd0":"updater()","df034db8":"aCASATest()","df037443":"timeoutX()","df0441cc":"_checkUnlock(address)","df054797":"securityAudit()","df0584af":"ClimateCoinAddress()","df065d78":"TEST_PLAYER()","df06c1d8":"plotsOwned(address,uint256)","df06f906":"numBets()","df0795aa":"setKycProvider(address)","df08ce62":"give(address[],uint256[])","df09176b":"ActualizePrice(uint256,uint256,uint256,uint256)","df0969dc":"clearPlayerPrize(address)","df09921f":"institutionAllocation()","df0a2bda":"refundIgnoredBids(uint256)","df0a8589":"dealAmount()","df0ad3de":"upgradeabilityAdmin()","df0b1344":"SchmeckleTokenSale()","df0b52c8":"keyAddress()","df0bcf4d":"setAvatar(uint256)","df0c428c":"releaseAdvisorsTeamTokens()","df0c7a55":"nextPrice(uint16)","df0cd37b":"Etheremojis()","df0d05d9":"EmporioExchage()","df0d1078":"volumeType1()","df0da20e":"BONUS_WINDOW_1_END_TIME()","df0efbf5":"rateForSale(uint256)","df0f093b":"purchasePeriod()","df0f26f9":"getBalanceAddr(uint256)","df0f3227":"DurationAltered(uint256)","df0f3c19":"getGameCountdown()","df0f3e1c":"isFalse(bool,string)","df109ee1":"AuctionManager()","df10dd6e":"checkSubAvailability(bytes32)","df117c47":"updateSuperPrivilegeParams(uint256,uint256)","df11d258":"witness(bytes32,bytes32,bytes32,bytes32,uint8,bytes32,bytes32)","df12b94e":"investBalance()","df133cf9":"minesPrice(uint256)","df1340a0":"QTR_Token()","df13569d":"FACTOR_6()","df13994e":"callback(bytes32)","df143fb7":"HackerGold(address)","df148cdb":"setPonziAddress(address)","df155488":"startLockTime()","df15c37e":"getWinners()","df15f87e":"FiatRaisedUpdated(address,uint256)","df1614cf":"setLendFee(uint256)","df1673e9":"CHINESE_EXCHANGE_4()","df175e9b":"newCampaign(address,uint256,uint256)","df17c4b1":"delegateTransferAndCall(uint256,uint256,address,uint256,bytes,uint8,bytes32,bytes32)","df181831":"staff_1()","df1836ca":"referrerAndOwnerPercent()","df18e215":"updateTokenStore(address)","df190048":"getAdPrice(uint256)","df19b71c":"digitToNumber(uint8)","df19df5d":"ownerOperationsLength(address)","df1a5aab":"reservedTokensClaimStage()","df1abf83":"revertTokensByKYC(address)","df1b817e":"setupCutie(uint40,uint16)","df1c455c":"unallocated()","df1cd2b5":"volumeBonusesTokens(address)","df1cf293":"addAuction(uint32,uint256,uint256,uint256)","df1d4559":"setFOUNDATION_POOL_ADDR(address)","df1dbbc9":"ShareToken()","df1dd826":"trade(uint256)","df1e36c6":"unlockDeposit(string,address)","df1ead82":"disinvest()","df1ec3ea":"BesideERC20(uint256,string,string)","df1f4a6e":"getTimestring(uint256)","df1fc781":"KickicoCrowdsale(address,address,address,address,address,address,address,address,address)","df201a46":"simple()","df203ff7":"depositGasCost()","df20b119":"balanceEthCrowd(address)","df20c021":"addNewChannelAndRankofuser(address,string,int256)","df20d738":"BokkyPooBahsEtherRefundablePrize()","df221223":"setWeiExchangeRate(uint256)","df22bf83":"canUseTokens(address,uint256)","df23128f":"adjustTranche(uint256)","df234815":"tokensAvailableAtTierInternal(uint8,uint256,uint256)","df2436b3":"isExistByBytes(bytes32)","df247c5d":"CareerXonToken(uint256,uint256,uint256,uint256)","df25322d":"getFundReceiver()","df25ecf8":"DSTContract(string,string)","df25ee23":"getIndexId(address,bytes)","df25f3f0":"minPerTx()","df26ca08":"emitError(uint256)","df28aef7":"withdrawLiquidatePool(uint256)","df28d6fa":"Dex2(address)","df294588":"get_Gains(address,address)","df294cad":"allocateNominalToken(address,uint256)","df295080":"changeAbstractStorage(address)","df29b982":"emergencyWithdrawERC20(address,uint256)","df29dfc4":"get_start_time()","df2a201b":"setSystemOraGasLimit(uint256)","df2a2753":"LDGToken()","df2a29da":"getDenominationToken()","df2a6e4f":"kscBatchSellByOtherCoin(address,address[],uint256[],uint256,uint256[],string)","df2b1cf8":"toBytes(uint256,uint256)","df2bf12b":"totalBatchOf(bytes32)","df2c05a9":"UbermenschPrefundToken(address)","df2c7fc1":"AuctionFinished(address,uint256,uint256,uint256,uint64,uint256,address)","df2cdbed":"_setBidState(bytes32,uint8)","df2d33d5":"isBreakingCap(uint256)","df2d44af":"EthLongExercised(address[2],uint256[7],uint8,bytes32[2],uint256,uint256)","df2df29a":"CEO_Signature()","df2dfb20":"canIBuy()","df2e5c0f":"changePricePerUnicorn(uint256)","df2f0a4a":"getDecisionBlockNumber(uint256,uint256)","df2fbae6":"totalAvaliableSupply()","df300b46":"getThing(bytes32[])","df305680":"clearProposalLocked(address)","df30e592":"isValidContributorId(uint256)","df31566e":"setUInt(string,uint256)","df3164c6":"Release()","df31b589":"bonusForPreICO()","df320b29":"refundBet(bytes32)","df32754b":"owned()","df32dc5c":"withdrawEarning(uint256)","df331545":"reservedOperationalExpenses()","df334093":"acceptingDeposits()","df36318a":"exchangeStart()","df3864d5":"ticketsSold(uint256)","df390d63":"encodeData(uint128,uint256,uint24,uint40)","df3959f5":"setInitializeUniverseValue()","df3a4fa1":"maxSubdivisions()","df3a635a":"removeDeed(address,uint256)","df3a6b10":"testMemberAddedEvent()","df3aa1fc":"FTXToken(address)","df3b75f0":"test_standardCampaignDeploymentAndUse()","df3be668":"productLimits(bytes32)","df3be9e8":"ERCFW()","df3c211b":"calculateVestedTokens(uint256,uint256,uint256,uint256,uint256)","df3c3a30":"mintLocked()","df3c5a42":"supplyICOContract(address)","df3c8620":"num_challenges()","df3cc390":"setUsdRate(uint256)","df3e0a1d":"completeEscrow(uint256)","df3f5974":"readPublicRecord(bytes32,bytes32)","df3fb59e":"DSPRegistryReplaced(address,address)","df40503c":"getRemainCoins()","df40a089":"setDrawAddress(address,address)","df41765e":"circulatingTokensFromSale()","df418fbf":"returnBytes1(bytes)","df41d979":"ico_distribution(address,uint256)","df426401":"founderTokenUnlockPhase2()","df428e3b":"createChildUniverse(uint256[],bool)","df42dfa9":"initialARXSupplyInWei()","df42e80e":"Asset()","df43b699":"setInvoiceCancelled(address,address,uint256)","df43b830":"absolutCBD()","df444df1":"createEscrowBySeller(address,uint256)","df462098":"setNextCommonTTMTokenId7(uint64)","df463ed3":"buyService(uint64,uint64)","df47a924":"DiaToken()","df482ad5":"privateFundSupply()","df483622":"addLotteryParticipant(address,uint256)","df487962":"FibokenCreated(uint8,address,uint256)","df48a2b0":"setReinvestmentAddress(address)","df49804a":"mtv()","df49dfe3":"updateTransferMinimumFee(uint8)","df4a2ecc":"hasNext()","df4aaf04":"COIN_SUPPLY_ICO_TIER_2()","df4adb94":"getOutcomeByIndex(uint256)","df4b2970":"getRabbitMother(uint32)","df4b3351":"collectEtherBack(address)","df4bcf58":"isMigrationAgent()","df4bd18d":"setPriceAndRate(uint256,uint256)","df4bef32":"searchInList(address)","df4c2164":"mintableAddress()","df4c98b5":"createRentAuction(uint256,uint256,uint256,uint256,uint256)","df4cbb96":"commitProposal(bytes32,string)","df4d17dc":"initToken(address)","df4dfa7f":"PRE_ICO_TOKENS_AMOUNT()","df4e79fa":"VESTED_TOKENS()","df4ebd9d":"buyWanCoin(address)","df4ec249":"step3()","df4f0088":"guardVillain(uint256,uint256)","df4f011c":"licenseIds(uint256)","df4f5a72":"refunder()","df4fc373":"SetIPR(string,string,address,string,string,uint256,address)","df4fcf8e":"newFeePercentageIsSet(uint256)","df5055e6":"adminVer()","df506768":"payTeam(address)","df506801":"preSaleThirdCap()","df50a8c1":"updateFundraiser(address,bool)","df50afa4":"setAllowTransfers(bool)","df51d46b":"setUnlockEarlier(uint256)","df520efc":"pricePerTokenInWei()","df52f321":"CinociCoin(uint256,string,string)","df53623f":"_unlockContract()","df5483ad":"setImageWidth(uint256,uint16)","df54c659":"TransferredFoundersTokens(address,uint256)","df55b41a":"owner(string)","df55f529":"UNLOCK_TEN_PERCENT_PERIOD()","df565ca2":"rateRatioCVSThreshold()","df571e33":"postSoftRate()","df57904a":"GoodfieldNewRetail(uint256,string,string)","df57a6ec":"_generateRandomDna(string)","df57b742":"getReverse(bytes32)","df58471d":"increaseFundingGoal(uint256)","df58d236":"WipedAccount(address,uint256)","df590d89":"KnowHowChain()","df591e82":"goForward()","df59cbeb":"OwnedUpgradeabilityProxy()","df5a1417":"PLAYERWIN()","df5b588c":"PublishWinnersScoreThres(uint16)","df5cc291":"get4(bytes,uint256)","df5cf723":"delegation()","df5d3e89":"subBuy(bytes32,bytes32,address)","df5d3ec7":"setSaleEnd(uint32)","df5dd1a5":"addOracle(address)","df5dd98f":"refFeeVal()","df5e3569":"hasBet(uint256)","df5f0603":"retrieveEth(uint256)","df5f53f1":"checkWithdrawal(address,address,address,uint8,bytes32,bytes32,uint8,bytes32,bytes32)","df603769":"reconcile(uint256,address[],int256[],uint8[],bytes32[],bytes32[])","df61f51b":"TokensIssued(address,uint256,uint256,uint256)","df6378e9":"getAuctionAddress(uint256)","df63d908":"testYBool()","df63e659":"deleteAllMessages()","df642cad":"setCost(uint8,uint256,uint32)","df65d1ef":"getLuckBoyAddrList()","df66fc14":"sendTokenTeamAdvisor(address)","df67184a":"getRequiredBalance(uint256)","df673d35":"SISA_token()","df67ae3d":"GetStuffList(address)","df67d82d":"minETH()","df68a516":"viable_print(int256,uint256,uint256,uint64)","df68c1a2":"canTransfer()","df68fd99":"popElementWithPos(uint256)","df6a000d":"safe_withdraw(uint256)","df6a6002":"fourthMonthEnd()","df6a6b38":"redeemed(address,uint256)","df6ab3d5":"masssend(address[],uint256[])","df6abd34":"icoHardcap()","df6adc2a":"JackpotWinner()","df6af7d1":"getUnclaimedBuyerFunds(address,address,address,uint256)","df6afed9":"replaceArtwork(uint16)","df6b1ebb":"analyzeCondition(uint8)","df6c13c3":"getMinFunding()","df6c7cf4":"changeAssembly(uint256,uint64[],uint64[])","df6cf923":"IXTPayment()","df6d3afa":"setAngelHolder(address)","df6d4843":"getMaxLimit()","df6da6f9":"tokenSellData(address)","df6e1331":"drawGame(uint256,string)","df6e7a5f":"setTokenDelegation(address,address)","df6ee5f2":"lend(bytes32,bytes,address,uint256,bytes)","df6ee6b7":"addStage(uint256,uint256,uint256,uint256,uint256,uint256)","df6f023d":"reLoadCore(uint256,uint256,uint256,uint256)","df700074":"setadmin(address,address)","df706f77":"JTrex()","df708f01":"setMainContract(address,address)","df70ab71":"increasePositionOnBehalfOfRecurse(address,address,bytes32,uint256)","df70f3b5":"Jumanji()","df713abd":"get_time_locked_contract_size(address)","df7447dd":"createTicker(uint256)","df7458cd":"addReply(bytes32,string,uint256,address)","df745d28":"releaseBatch(address[])","df752519":"MANHATTANPROXY1STST()","df75574a":"buyItem3()","df755a98":"prPercent()","df75f3fb":"setPreSaleDurance(uint256)","df761fff":"TokensClaimedEvent(address,uint256,uint256,uint256)","df76d18d":"RegisterIP(bytes32,string)","df775a93":"skipInitBecauseIAmNotOg(address,address,uint256,uint256,uint256,uint256,bytes8,uint256)","df776689":"BasicIterator()","df77a290":"OddsAndEvens()","df77e074":"GetBetInfo(uint8,uint256,address)","df77eb1e":"transferHomeViaRelay(address,uint256)","df78c1dd":"payIn(uint256)","df79d8fa":"initialInvestorAccount(uint8)","df7ae3d8":"debugVal()","df7b70ab":"writesExercised(bytes32,address)","df7be446":"_removeNFToken(address,uint256)","df7bf704":"matchResult()","df7c5fca":"checkPeriodic()","df7cc70d":"ethUnPause()","df7cec28":"cancelBid(bytes32)","df7dbd70":"prTokens()","df7dfef7":"deleteAction(uint256)","df7efed8":"WeiinEth()","df8011b2":"HOWL()","df8089ef":"setAdministrator(address)","df811d7d":"numberOfPlayersInCurrentRound()","df816206":"getGiftIdsByRecipient(address)","df817e54":"checkPreIcoStatus()","df821cf7":"BIDCOIN()","df833a1a":"createGato(uint256)","df8344fe":"allAllowancesForManyAccounts(address[],address,address[])","df84807a":"templateIdOf(uint256)","df851f03":"calcNextPrice(uint256)","df8713ed":"addPot(uint256)","df88126f":"lockedInBets()","df8812c7":"addStageAmount(uint256)","df88401c":"KillahyToken()","df885536":"nxtAddr()","df888f4e":"AO()","df88f5b8":"setNotConstant()","df88fb44":"exchangeByPet(uint256,uint256,address)","df8b7771":"initialiseValues()","df8bb140":"cancelCampaign(bytes32)","df8d66e4":"addPlatform(bytes32)","df8dc370":"Reservation(address,address[])","df8de3e7":"claimTokens(address)","df8e03b1":"BasicWhitelist()","df8e739d":"bitzToken()","df8e9261":"_testItem()","df8f4376":"calcSTQAmount(uint256)","df8f4eb7":"originalTotalSupply()","df8f7971":"ProfileOwner()","df8f8a81":"setETCLockingAddr(address)","df90061b":"onSaleTokens()","df90c98d":"whiteListEndTime()","df90f719":"mln()","df91f2ab":"SggCoin()","df9204b6":"powerStatus()","df922744":"ScamSeal()","df922f3a":"changeCommission(uint256)","df93c9aa":"testrevert()","df957b04":"_couldWithdrawFromHolder(address,uint256)","df958553":"burnForGateway(address,string,uint64,uint64)","df9669e0":"setCrowdsaleEndDate(uint32)","df969bc0":"ADVISOR_TWO()","df96a336":"Bitkeun()","df979b92":"setIncreaseTotalWinningStake(bool)","df98ba00":"m_opNum()","df98ef33":"getResource(bytes,uint256,bytes)","df990c33":"becomeOwlmaster()","df9933e5":"SetPwd(bytes32)","df998f59":"checkSertificate(address,address)","df99f8bf":"TradeToken()","df9a4f56":"registerAuditor(address)","df9abaa0":"smallUintFunc(uint8,uint256)","df9b0774":"SwapResumed(uint256)","df9b2931":"FANBASE()","df9b3bae":"ZperToken(address,uint256,uint256)","df9b5fe9":"ALH3()","df9d3580":"accountBuyLimit()","df9e33e8":"getForeverRose()","df9f3139":"out4Done()","df9f92fb":"Scan(address[],uint256[])","dfa0ca14":"swapProject(uint256)","dfa13498":"LeasedBlock(uint256,uint256,uint256,uint256,bytes32,bytes32,bytes32,bytes32,address)","dfa15809":"databaseAddress()","dfa15b58":"RESERVED_OTHERS_SIDE()","dfa22fed":"buyFromOwner(string)","dfa24e8e":"sendEther(address,uint256,uint256)","dfa38fea":"NANI(address)","dfa4591c":"removeLogicVersion(uint256)","dfa54594":"getStandartRobot(uint256)","dfa5a25d":"purchaseCoffee()","dfa6bc72":"LoggedPhaseICO(uint256,uint256,uint256,string,string,uint8,bool,bool)","dfa72237":"innerPlayerFlight(uint256,uint16,uint256)","dfa78bf5":"savior()","dfa8be5f":"hackEducated(address)","dfa93d64":"relayContractAddress()","dfa9b440":"addAddressToWhiteList(address[])","dfaa3136":"addToMap(uint256[])","dfadb43c":"candyLandSaleAddress()","dfae7dc1":"vestingWhitelister()","dfaeaf67":"ThrowProxy(address)","dfaf3658":"closeCdp(address,uint256,uint256)","dfaf734a":"lastReleaseTime()","dfafaa72":"sendTo(address,uint256,address)","dfafb31d":"QUANTH()","dfafcf7e":"isMinion(address)","dfafe10f":"addParticipant(address)","dfb01c8f":"BCC()","dfb03cf7":"put(address,address)","dfb06d85":"AgentContract(address,address,address,uint256,uint256)","dfb0fb28":"ANGEL_ADDRESS()","dfb1913d":"withdrawFor(address[],uint256[])","dfb1abc0":"distributeReservedTokens(address,uint256)","dfb1c0e5":"buyToKen(uint256)","dfb259de":"SmartPoolToken(uint256,address)","dfb2866d":"priceFactor()","dfb29935":"sendHash(string)","dfb30c14":"getPlayerSpaceshipModelById(uint256)","dfb3557b":"BNB_MIN_CONTRIB()","dfb36b0b":"villagePrice()","dfb41e7c":"getForecast(bytes32,uint8,uint256)","dfb4a12e":"updateCandidateInfo(address)","dfb4ae3a":"WHOM()","dfb4b2f0":"deadline_status()","dfb59249":"EthRental()","dfb5a995":"countStureq()","dfb5f420":"Crowdsale(address,uint256,uint256,uint256)","dfb685cb":"BIT()","dfb69cb2":"colors(uint8)","dfb873fb":"getPrizeByToken(uint256)","dfb87be1":"setEndRate(uint256)","dfb8a38d":"getTokenPackPrice()","dfb8c6c2":"battleContractAddressCanBeUpdated()","dfb9560c":"right24(uint256)","dfb9bdca":"exchange(address,address[],uint256[],uint256)","dfba3be1":"pvpFinished(uint256[],uint256)","dfba9570":"removeStaff(string)","dfba9798":"withdrawMytoken(uint256)","dfbb3036":"currentRoundInformation()","dfbb4021":"checkGrid(uint8)","dfbb70c9":"timeOfLastIncrease()","dfbc3de1":"applyMember()","dfbcb8d9":"transferCard(address,address,address)","dfbd5c69":"EggsRedeemed(address,uint256)","dfbd6150":"subowner()","dfbd9973":"pageByAccount(address,uint256,uint256,uint256)","dfbde5a7":"FedCoup()","dfbe0587":"sellPorftolio(uint256,uint256)","dfbebd07":"licenseExpirationTime(uint256)","dfbec00e":"requestTopic(string)","dfbed623":"updateCaller(address,bool)","dfbef8de":"AllowExchanger(address)","dfbf53ae":"winner()","dfc027ef":"replayAnser(uint256,uint256[])","dfc0bedb":"setCode(uint256)","dfc10ea8":"callerAllocationEndBlock()","dfc119b0":"testRfind()","dfc28653":"NucleusVisionTokenUnlocked()","dfc2a146":"ORACON(uint256,uint256)","dfc366e8":"tenthousandths()","dfc3a987":"cntMembers()","dfc42f7c":"OmegaContract()","dfc4a516":"doApprove(address,address,uint256)","dfc6fbaa":"presaleBalanceOf(address)","dfc6ffc6":"CharlieCoin()","dfc74cb4":"testPlaceBet()","dfc75b9c":"sendJigouByOwner(address,uint256)","dfc765dc":"getMatchers_by_index(uint256)","dfc78bdc":"ProposalTallied(uint256,bool,uint256)","dfc7d488":"getTransactionFee(uint256)","dfc86d56":"UsdToEtherConvert(uint256)","dfc89632":"PresidentElections()","dfc8bff1":"updateLock(uint256)","dfca2f53":"LookAtPrizes()","dfca685a":"unlockPrivate()","dfca8fd2":"contributeForMakers(address)","dfcb4157":"saleAfterRefundPeriod()","dfcb737f":"allocateMarket_CommunitTokens()","dfcbb794":"TrustFund(address,uint256,address)","dfcbc298":"CancelBuyOrder(bytes32,address,uint256,uint256,address)","dfcc4b86":"ConcludeChallenge(uint256)","dfcc525d":"info_SeeTINAmotleyLine(uint256)","dfccdef5":"collectedETH()","dfcdc7f2":"regReferrer(address)","dfcdde5e":"calcAmount()","dfce5a7a":"changeGrantsController(address)","dfce791a":"counterWagerAndDeposit(uint256)","dfce8ac3":"fipsLegacyRegister(bytes20,address,bytes)","dfceb5ba":"refund_and_die()","dfcefd7e":"indexOf(uint64[],uint64,bool)","dfd024c1":"allocateInvestors()","dfd0c510":"ICOReward()","dfd142c1":"IncreaseWithdrawalAmount(uint256)","dfd17111":"ConstructZCashClue(bytes32)","dfd17f2b":"buyInBatch(uint256,uint256,uint256[],uint256)","dfd1be58":"platformFundingPerEpoch()","dfd200c5":"setRunning(bool)","dfd2ddec":"setForeignBridgeProxyOwner(address)","dfd4715e":"setDAdmin(bytes32,address)","dfd4e0f6":"setPrivateSaleHalt(bool)","dfd50f52":"contestants(uint256)","dfd52b74":"_getIcoAddr()","dfd5d3b0":"creditMcAddress()","dfd5dd6b":"ranksCount()","dfd6e6c5":"getIcoPhaseOneThreeDayIndex(uint256)","dfd80665":"whitelistAgent()","dfd84c13":"sendGain()","dfd8d516":"IsThisInternal()","dfd92f8a":"registerProduct()","dfd94849":"addNewSpinner(uint256)","dfd9e184":"droneIndexToApproved(uint256)","dfdadcb9":"isValidPurchase()","dfdadec6":"AlphaCarToken()","dfdb27da":"FoundGameCoin()","dfdb5f17":"doBurn(address,uint256)","dfdc349d":"getLestCommonMul(uint256,uint256)","dfdc99c7":"setKpopCelebContractAddress(address,address)","dfdce77b":"setScrapPercent(uint8)","dfdd3997":"maxETHAutoContributions()","dfde567f":"processAR(uint256)","dfdfb261":"addEsgoTX(address,uint256,uint256,uint256,uint256)","dfe0f0ca":"transferWithSender(address,address,uint256)","dfe1304c":"HumanStandardToken123(uint256,string,uint8,string)","dfe1b17e":"dequeueOrder()","dfe1dcf6":"adminSendEthtoAddContract()","dfe1f357":"checkHash(address,uint256,address,uint256,uint256,uint256)","dfe2de30":"boughtTime(address)","dfe333bd":"copiesSold(uint256)","dfe33748":"TokensAreFrozen()","dfe346d0":"NicksTastyToken()","dfe3a52b":"CUTOFF_PRESALE_TWO()","dfe3e746":"setMasterNode(address)","dfe4858a":"constuctor()","dfe4c261":"approveTransaction(uint256,uint256,string)","dfe525a2":"addHandler(address,address,string,string)","dfe5ef48":"issue(address,uint256,uint256)","dfe699b1":"SetApplicant(string,string,string,int256,string)","dfe6af85":"testThrow_testablePayoutCaseShouldBeFailure()","dfe6d366":"gamblers()","dfe71183":"createCDPLeveraged()","dfe71486":"displayuserdetails(address)","dfe81a26":"GnarlyTimes()","dfe921cb":"lifeReserveTimeLock()","dfea6ec2":"placeBetWithInviter(uint256,uint256,uint256,uint8,bytes32,bytes32,address)","dfea8483":"Countout()","dfeade00":"AceEquityToken(uint256,string,string,uint8)","dfeb1719":"getNotaire()","dfeb1fd3":"getUserVotes(address,string,string)","dfeb34b6":"stakeFailOverRestrictionLifted()","dfeb3c49":"getNonces(address,address)","dfebb4ee":"viewMostRelevantClauses()","dfec375e":"calcCurPointsForAcct(address)","dfedff20":"getTwit(address,uint256)","dfee01d8":"mUpgradeSpeedup()","dfee2bad":"phaseReleaseAmount()","dfee6348":"COMMUNITY_PLUS_PRIORITY_SALE_CAP_ETH()","dfef54a3":"TihoToken(uint256,string,uint8,string)","dfef58a6":"registration(bytes32,uint256,address)","dfef5f69":"mintingStartTime()","dfefaf3f":"secureUnapprove(address)","dff0259f":"donationSum()","dff05de4":"pctDIDOwned(address,address)","dff114dd":"investedCrowdsaleTokenOf(address)","dff18fe0":"provideTeamHolderToken(address)","dff1ab15":"checkProposalCode(uint256,address)","dff2db71":"binaryAddress()","dff3f3b9":"ownerWithdrawal(uint256)","dff3f83e":"resolveRawDelegation(bytes32,uint256)","dff44b2f":"divorce()","dff4a5e8":"getRestaurant(address)","dff53231":"love()","dff538e6":"_currentDay()","dff5f5cb":"updateStartPhase(uint256)","dff649dc":"NameChanged(address,uint256,string,string,uint256)","dff675c2":"getDelivery()","dff79905":"LogTokenRemover(address,uint256)","dff90b5b":"sendFees()","dffa771f":"_setWeaponValue9(uint256)","dffb0bd1":"getPlayerTotalDividend(address)","dffbbef5":"stopDistribution()","dffbd9de":"TokenAdded(address,address)","dffcf9a7":"transferableHavvens(address)","dffd5e57":"buyToken(bytes32)","dffd6054":"changeGameAddress(address)","dffd722f":"totalEarn()","dffd9b8e":"CEO_TEAM_SHARE()","dffdc75d":"forward(address,bytes,uint256,bool)","dffe0a63":"getStatGames()","dffeadd0":"main()","dfff2f79":"autoReinvestFor(address)","dfffcbdb":"triggered(uint256)","e0004f43":"batchTransferTokenS(address,address[],uint256[])","e000eec3":"createPixel(uint24,uint32)","e0018f2f":"showPlayerSeasonScores(address,int8)","e001ddf1":"teamTokensCurrent()","e0020f1a":"tokensPerEthPublicSale()","e0024ae3":"_mine(uint256,address)","e002a486":"changeForwardTo(address)","e002f2ee":"cpCap()","e0031b1d":"GetDOTDelegatedRevoker(bytes32,uint8)","e003604e":"close(address,uint32,uint192,bytes)","e0036d1d":"verifyPosition(uint16,uint8,uint64)","e0041396":"slice(bytes,uint256,uint256)","e004b76f":"PermissionRemoved(address)","e004fe97":"CarRegistry(string)","e004feb0":"testFailMintGuyWhenStopped(int256)","e0056019":"setLand(uint8,uint8,uint8,bool,uint8[])","e0063224":"vouchers(bytes32,uint256)","e0068052":"division(uint256,uint256)","e00686e4":"rewardPerBlockPerAddress()","e006997c":"authenticate(string,bytes)","e007b330":"sterilize(uint256[])","e0081b8c":"approve(bytes32,bytes32,uint256)","e00824bb":"payCreator()","e0089ce7":"UCtestCoin(uint256,string,uint8,string)","e008cdf3":"SBSCoin()","e00a7fc5":"transferFromOwn(address,uint256)","e00ab6dd":"private_setminBet(uint256)","e00ac9a3":"thirdTime()","e00bc0f4":"setIsContainerForMarket(bool)","e00bc7fb":"vota_un_candidato(address)","e00be2a9":"getErc20Rate(string)","e00cb0bc":"etherReceivedPrivate()","e00d0aed":"TalosToken()","e00d7e5c":"ExampleToken()","e00dd161":"currentId()","e00f882c":"numberOfExchInEstateNasAlice(address,uint256)","e00fe2eb":"getText()","e01060f8":"transferOwnership(uint8[],bytes32[],bytes32[],uint256,address[])","e010c686":"newProposal(uint256,uint256,bytes32)","e011171d":"setDOwner(bytes32,address)","e0117441":"setRegistrationPrice(uint256)","e011ac87":"amountLeft()","e01330bb":"testMul(uint256,uint256,uint256)","e014a39f":"weiRaisedIncludingFiatCurrencyRaised()","e014a83f":"takeToken(address,uint256,string)","e01546a8":"fromFraction(int256,int256)","e01567cf":"ethBioxRate1()","e015c62a":"calculatePrice(uint256,uint256,uint256)","e015d863":"variation()","e016603f":"createMultipleShows(uint256[])","e0179e6c":"etherValue(uint256)","e0180115":"culcurateBonusRate()","e0182436":"cancelEscrow(uint256)","e0187d18":"third_partner_address()","e018c36c":"buyFirstPackFromReferral(address,bool)","e0192072":"Rescue(address,address,uint256)","e0195a53":"maxRandom(uint256,address,uint256)","e01964d0":"sterile(uint256)","e019ac29":"setKycCertifier(address)","e01a38c6":"ecrecoverSigner(bytes32,bytes,uint256)","e01ac5a4":"giveReward(bytes32,address,uint8)","e01b1b10":"ICODays()","e01bb918":"_withdrawAll(uint256,address)","e01bc60b":"totalCustomBuyersMapping()","e01c6d4e":"cashin()","e01c979a":"GuneToken()","e01cd37a":"cancelSellingToken(address)","e01cdfaa":"getEmployeeInfoById(uint256)","e01cff84":"getTransferringForCount(address)","e01d1f3d":"MultiSigWallet(address[],uint256,uint256,string)","e01dd67b":"AMBASSADOR_THREE()","e01e0618":"feeDiv(uint256,uint256)","e01e92d2":"abs(int128)","e01ea00c":"getDarknodesFromEpochs(address,uint256,bool)","e01ef1f8":"addInventory(bytes32,string,string,string,string,uint256,uint256)","e01fff13":"familyContract()","e0201e07":"Eclipse()","e0204585":"get_bet(address,address)","e020b8a3":"contract_date()","e02163e7":"etherContributionOf(address)","e021b8cb":"useWeapon(uint8,uint8,uint8,uint8,uint8[176])","e021deff":"meta(address)","e02243ee":"buyInternal(address,uint256)","e023094f":"createDroid(uint256,string,uint256,uint256,uint256)","e023f90e":"getCity(uint16)","e02426c1":"getSignatureHash(bytes4,uint256)","e024ec5a":"getFmmsDetail(bytes32)","e0256835":"balancesCrowd(address)","e02584bf":"listPairForReserve(address,address,bool,bool,bool)","e025a666":"rewardPercentageDivisor()","e027034d":"isWithinIEO()","e028222f":"CreateABet(address,uint256)","e028ff3b":"lotteryGiveHuntMinimalNumber()","e0299621":"GBIToken(uint256,string,string)","e02b8b29":"HardcapToken()","e02ba030":"excess_token()","e02bc1c6":"bidDeposit(bytes32)","e02bcd3e":"getLendTokenBalance()","e02c3b5d":"getAllLeftLeg()","e02c7e1f":"timelockAllocationAddress(address,uint32)","e02c85a4":"_checklottery(uint32,uint32)","e02cec51":"refund(address[])","e02d1c0e":"tradeStarttime(uint256)","e02d306f":"getUNTSQM()","e02df495":"MAX_ETHER_24H()","e02f8d33":"PRICE_STAGE_THREE()","e02f9027":"iTime()","e02fab06":"anubisToken()","e0300fc4":"unregisterFor(address,bytes32,address,uint256,uint256,uint256)","e0303a2e":"getFirstTwoOutputs(bytes)","e0304542":"oddEven(uint8)","e0307e94":"gcsp(uint256)","e030bbd5":"tokenToPointByMetaMask(uint256,uint256)","e030dfb9":"emergency(bytes32,bytes1)","e03179b4":"LogContribution(uint256,uint256)","e031d6f0":"isICOFinished()","e0328c5f":"setRecovery()","e0328c80":"hasRedeemed(address,address,uint256)","e033192c":"gettransferableStartTime()","e03335b4":"_calculatePricePerPixel(uint256)","e0340a05":"Maya_Preferred()","e035e1ac":"thirdBonusEnds()","e03652c2":"isTransactionPending()","e0376e74":"LOG_EmergencyWithdrawalSucceeded(address,uint256)","e037a71c":"withdrawLimit(address,uint8)","e03827d2":"left70(uint256)","e0389a47":"removeAccountMilestone(address)","e038c75a":"circulating_supply()","e0391b6f":"trackable_dislikes(address)","e03992fd":"nextForkUrl()","e039967c":"migrateTransfer(address,address,uint256,uint256)","e039e4a1":"getOwner(uint8,uint8)","e039f224":"isFork()","e03b3044":"setAyantDroitEconomique_Compte_7(uint256)","e03bc7e1":"_registerDevice(address,bytes32,bytes32,bytes32)","e03c151e":"LogSetSTOContract(address,address,address,uint256,uint256)","e03c1c4b":"setLineStartTime(uint256,uint256)","e03c639c":"addPreSaleWallet(address)","e03cca4d":"setChallengeFormulaContract(address)","e03d890b":"_addTokenToAllTokensEnumeration(uint256)","e03e09a8":"_createAuction(address,address,uint256,uint256,uint256)","e03ec01d":"getTargetWallet(address)","e0401918":"SMRToken()","e0402d26":"validDoHash(bytes32)","e04093d6":"updateOracleWithENS()","e040c164":"createT513(uint256,uint256,address)","e040f3e1":"_humanSender(address)","e0412a54":"setBonusRound2(uint256)","e0429b6c":"ShinySquirrels()","e042ad58":"operationWallet()","e0443e92":"LogCreate(address,address,uint256,uint256)","e044c2de":"newLoan(bytes,address,uint256,uint256,uint256,uint256,uint256,uint256)","e044c47f":"playerRollDice()","e0453376":"hasFourYearWithdraw()","e0457049":"trustedInput()","e0457884":"betResolution(uint8,uint8,uint8,bool)","e0462547":"setEndPreSale(uint256)","e0462d0a":"coreTeamMemberOne()","e046c4dc":"Delete()","e046f06f":"deathData_a1()","e0470e02":"matureDragon(uint256)","e0472e36":"swapProposal(uint256)","e0475e27":"holderMarketingTokens()","e048d0fc":"voteCancelCurrent()","e0495a64":"getNormalBuyers()","e04a1942":"test_fourValidEqUint()","e04a2525":"NoahDividend(address)","e04a8c08":"Sold()","e04ac09e":"BountyIssued(uint256)","e04c130b":"token_transferFrom(address,address,address,uint256)","e04c1830":"findNextHour(uint256,bytes2)","e04cd07c":"BOLTH(address,address[],address)","e04d5105":"calculateSeedBuySimple(uint256)","e04f31e9":"forward(address,uint256,bytes,bool)","e04fac0c":"aVideoCost()","e0504910":"buyWithTokens(address)","e050674c":"_deliverWhitelistBonus(address)","e0522012":"getAdjustedPotAsFixedPointForGameId(uint256,bool)","e052a587":"isNotExpired(uint256,uint256)","e052f0c8":"setParams(string,string,string,string,uint256,address,uint256)","e053178a":"XCPlugin()","e0539225":"preicoPrice()","e054057d":"LogBuy(uint256,address,uint256)","e0540d85":"CDreamingICO()","e054c029":"changejp2(address)","e055bba4":"turnId()","e056989a":"OfferUpdated(uint256,bytes,uint256,address)","e056c1eb":"isGlobalPause()","e056f2ff":"takerFeeRateE4()","e0576665":"addLen(string)","e0585ce8":"BetcoinICO()","e058cc59":"setMemeTemplate(string)","e0591ddc":"gizerItemsContract()","e059c868":"private_UpdateGameBarLimit(uint256,uint256)","e05a48cd":"unregisterVendor(address,address)","e05b4c5f":"GetReferredAt(uint256)","e05b5456":"ChenToken(address,address)","e05bac82":"amountReceivedFromExchange(uint256)","e05c5a83":"sellerOf(uint256)","e05cb6f4":"Mitrav()","e05d769e":"expirationSeconds()","e05e3028":"getCommunityManagement(uint256)","e05e91e0":"returnUint64(uint64)","e05ea744":"frost()","e05ee7a4":"RATEotu()","e05f149e":"getTotalRuns()","e05f7d67":"setPCoinContractAddress(address,address)","e05fad90":"decode(bytes,uint256,uint256)","e0607290":"confirmChangeOracle()","e06174e4":"settings()","e0619859":"At(uint256,bytes32)","e061ddca":"getSensorAddress()","e0623632":"UNSOLD_ADDRESS()","e062aff8":"startTimeNumber()","e06309bb":"ValueOwners()","e06375c8":"_fDist()","e063a439":"_computeFee(uint128)","e06452d0":"Completed()","e064bc82":"setFoundersTokensWalletSlave(address)","e064c1ec":"denyChanges()","e065029e":"PokemonPow()","e0655fe5":"changeBuyFee(uint256)","e065914c":"isPersonalLock(address)","e065e388":"NewBOP(address)","e067ea46":"Etherep(address,uint256,address,uint256)","e067f631":"intervalUpdate()","e06868e2":"numberOfBet()","e06902fa":"ito()","e06a09ec":"calculateInterestIndex(uint256,uint256,uint256,uint256)","e06a60ff":"HumanityCard()","e06aa145":"TokenBurned(address,uint256,uint256,uint256)","e06af204":"BetlyCoin()","e06b5837":"getCanSellUnit(address,address,uint256)","e06b7e39":"getInitOrInput()","e06b850c":"testIntParserTwoDecimal()","e06c0fd2":"SatoshiToken()","e06c5808":"burnFromAddress(uint256)","e06d8de9":"acquisitionsLockEndingAt()","e06e0051":"withdrowETH()","e06e0e43":"overLimit()","e06e3873":"encrypt(uint256[])","e06e6b20":"Like(bytes32,bytes32,uint256)","e06e82b2":"teamNIMFAAddress()","e06e9d22":"addCustomerTokenAmount(address,uint256)","e06ec0bb":"isListing()","e06f3d38":"ownerA()","e06fa13d":"ETCL()","e06fa68e":"updateAfter(uint256)","e06fc6d4":"mainsaleRemaining()","e0709589":"blink_block()","e0715a86":"unlocksCount()","e071681d":"setManyAccountsVerified(address[])","e071c0ca":"transferVaultOwnership(address)","e072830c":"FUNDING_ETH_HARD_CAP()","e0728801":"ANV()","e072bd10":"getPlayerInventory(address)","e073ef69":"pubKeyToBitcoinAddress(bytes,bool)","e0741187":"createBreedingAuction(uint256,uint256,uint256,uint256)","e074278d":"setOwnerAddr(address)","e074b027":"hasExecuted(uint256)","e074bb47":"removePermission(address)","e074ee55":"getPeriodsToPay(bytes32,address,uint256)","e0755792":"Permission(bytes32,address[],bytes4[])","e0755b35":"WePOW()","e076c0ae":"queryNow()","e0772f6a":"CROWDSALE_TOKEN_IN_WEI()","e0775be1":"create(address,address,address,address,address,address,address)","e0778211":"_releasableAmount(address,uint256)","e077ca97":"fx()","e078c549":"getNumberOfTokensToIssue(uint256)","e07959bd":"setGainsRate(uint256)","e079e334":"getNewCoinFee()","e079e7e5":"addStock(string,uint256,uint256,uint256,uint8)","e07a2671":"migrationSetPlayer(bytes32,uint256,bytes32,address,uint256,uint256,uint256)","e07a31c7":"getWinningCount(uint256,uint256)","e07a5d29":"CLRCoin()","e07be247":"createSellENS(string,uint256)","e07c80fb":"getKindAddress()","e07ccdeb":"totalPartnerWithdrawSupply()","e07cd936":"ArtcoinPlaceholder(address,address)","e07d4f6b":"saveCarDataTransaction(address,address)","e07f0b66":"SendMessage(uint256,string,address)","e07f0f13":"ZhangPeiPei(uint256,string,uint8,string)","e07f0f5e":"transferToken(address[],uint256[])","e07f3dd6":"go(uint8)","e07fa3c1":"withdrawFund()","e080241c":"setNFTDetached(uint256)","e080b60c":"apiCallsContractAddress()","e0812c75":"migrateInvestorFromHost(address,address)","e0813e25":"getRandomInt(uint256)","e0813e5e":"updateTokensPerEthOnce(uint256)","e08155dd":"ICO_PERCENTAGE_4()","e0815ca9":"findNextMinute(uint256,bytes2)","e0818669":"lps()","e081b569":"DiceOnline()","e081fdfe":"availableBalanceOf(uint256,uint256)","e082707c":"_uintToString(uint256)","e0832cf6":"getWinCount(address)","e0834ea4":"WatchBalanceInEther()","e083a1b5":"_createEstate(int256[],int256[],address,string)","e083d4c8":"dividendBalanceOf(address)","e084a819":"prepareCrowdsale()","e08503ec":"calculateNextPrice(uint256)","e085448f":"FIRST_USER_CUT()","e085942a":"getSubjectMattersSize()","e085c539":"getPlayerScore(address)","e085f82b":"rejectCertificate(address)","e086141d":"Assigned(address,uint256)","e0862fd7":"getNumBadBets(uint256)","e086e5ec":"withdrawETH()","e0873c06":"reissueAsset(bytes32,uint256)","e08761f5":"dtValidateCitySnapshot(address,uint256)","e087cd55":"withdrawIncentives()","e0882af8":"airDrop(address,address[],uint256[])","e0886f90":"at(uint256)","e088747b":"withdraw(address,uint256,string)","e088a96b":"claimerUnset()","e08a5f9e":"startPresaleDate()","e08ac014":"unlockPeriodNum()","e08b63ad":"getAddTokenNonce()","e08bc3fe":"parseInt(bytes)","e08d28d3":"maxInvestmentICO()","e08d8497":"ICO_LEVEL_2()","e08e433a":"transferTime()","e08ed5f9":"withdrawBid(int256,int256,int256)","e090318c":"setFacts()","e090ebab":"VUO()","e0911183":"devTeamAutoBuy(uint256,uint256)","e091de56":"MDA()","e091f453":"setDividend(uint256)","e0929b95":"claimFreeFirstCard(address)","e093a157":"abs(uint256,uint256)","e09413ba":"totalDistributedAirdrop()","e0945a80":"wbcoin()","e0950ddf":"getBet(uint256,address)","e095f814":"etherToToken(uint256)","e0963ced":"LinkEyeStandardToken(uint256,string,uint8,string)","e09678fd":"setIcoContract(address)","e097e7b9":"sendTokensBack()","e098161b":"getRareCoinAddress()","e09874c0":"setPlayConfigs(uint256,uint256,uint256)","e0987873":"BurnedAllRemainedTokens()","e098c76d":"optionPoolTotalMax()","e09adc70":"ethToTokenRate()","e09ca60c":"secureApprove(bytes32,uint256)","e09ceada":"_newAuction(uint256,uint256,uint256)","e09cffcf":"SingularityTest18()","e09d0b75":"compareLeaf(uint256,uint256,uint256,uint256)","e09dbfa4":"checkPatternExistance(bytes32)","e09dd024":"FNCTToken()","e09ded57":"lengthOfCommonPrefix3232(bytes32,bytes32)","e09e9490":"releasePendingTransfer()","e09ea701":"BaseMonoretoCrowdsale(uint256,uint256,uint256)","e09ee57f":"feePercentageMax()","e09ef83e":"promoCutieCreatedCount()","e09f0020":"subCreditScore(uint256,string)","e09f310a":"get_iconiq_presale_open(address)","e09f6f49":"successAtBlock()","e0a09c1f":"Crowdsale(address,address)","e0a0f50d":"setSlaveWalletPercent(uint256)","e0a1a292":"addressAdvisors()","e0a1be53":"updateTargetedMoneyReached()","e0a1ca6e":"winningChance()","e0a1fdad":"unset(bytes12)","e0a21739":"setBlackFundsWallet(address)","e0a27b2c":"withdrawWinnings(uint256,uint256)","e0a29e23":"owner_freeze_start()","e0a3bff7":"RollCount()","e0a3e7ec":"computeDeferBlock()","e0a49f14":"setMatchOutcome(uint256,string)","e0a4aacb":"ExacoreContract(uint256,string,string)","e0a53397":"createSingle(uint256)","e0a550fc":"closeMainSaleICO()","e0a60ea3":"BITTOToken()","e0a62339":"getSha256_UInt(uint256,uint256)","e0a668b4":"setVesting(address,uint256,uint256)","e0a70811":"restart(bytes20,bytes)","e0a73a93":"premium()","e0a7527d":"updateCABoxToken(address)","e0a7b2c3":"startChallenge()","e0a802ba":"scanInputs(bytes,uint256,uint256)","e0a827c6":"RxI()","e0a8299f":"galleryTwo()","e0a82ea8":"setMinBetPerRoll(uint256)","e0a8aa72":"channelOpened(uint64)","e0a8f6f5":"cancelProposal(uint256)","e0aa5654":"getCountReadyPlayerByTrackId(bytes32)","e0abdf66":"setBlockTimestamp(uint256)","e0ac2b72":"HaHaChainToken()","e0ac50cb":"isTreasureBox(address)","e0ac61bb":"changeOwnerSharePerThousandForMating(uint256)","e0acac7f":"withdrawSum()","e0ad411d":"assets(bytes)","e0ae751f":"setAuthorizedContract(string,address,bool)","e0ae96e9":"din()","e0b1cccb":"updateBalance(address,uint256)","e0b1cecd":"DataToken()","e0b30178":"OVCLockAllocation(uint256,address,address,address)","e0b3198c":"serverPort()","e0b3c49c":"acceptTermsAndJoinDXF()","e0b3cc90":"priceOf(uint32)","e0b438ef":"removeNameByOwner(string)","e0b45487":"_setValidator(address)","e0b490f7":"getAccountId(address)","e0b4cf0a":"setMinMaxBet(uint256,uint256)","e0b6cddd":"LLV_311_EDIT_2()","e0b78225":"RemoveTrustedContractAddress(address,address)","e0b86c53":"decreaseLock(uint256,uint256,address)","e0b999a1":"getAmount(address,uint256)","e0b9e83d":"update(address,address,address,uint256,uint256,address)","e0bab523":"for_rewards()","e0bb933b":"getDragon(uint256)","e0bc6c44":"claimInsurance(bytes32)","e0bc6dea":"removeTransferableAddress(address)","e0bd3015":"getClaimableBalance()","e0bd53be":"sellTokensForZec(string,address,uint256,uint256)","e0bd7d15":"addContributor(address,uint256)","e0bede59":"firstPeriodSupply()","e0bfa1f7":"removeUtilityHolder(address)","e0bfe9ad":"MAX_TOKENS_RESERVE()","e0c012ff":"modifyairdrop(uint256,uint256)","e0c104ad":"DONC()","e0c2bc77":"CDEos(uint256,string,uint8,string)","e0c2dcbd":"last_win_wei()","e0c4cea8":"GrowToken()","e0c5f3a0":"add256(uint256,uint256)","e0c6046c":"donateToProject(uint16)","e0c6190d":"checkTime()","e0c63902":"Ok()","e0c67b9c":"ROKToken()","e0c68db0":"shr(uint32,uint8)","e0c6d1ed":"migrateForInvestor()","e0c78337":"XITOToken(address)","e0c7c117":"Randao()","e0c82651":"RWToken()","e0cb3aa0":"buyWithLimit(uint256,uint256)","e0cbbde7":"makeCode(uint256,string)","e0cbf845":"testAddLocked()","e0cc4e1b":"LifCrowdsale(uint256,uint256,uint256,uint256,uint256,uint256,address,address)","e0cd34f6":"getBlockBuildFee(uint256)","e0cd6eff":"board_size()","e0ce0b79":"processSeason(uint32)","e0ce72cb":"_fConfig()","e0ceb25b":"fairsaleProtection()","e0cec919":"setDailySupply(uint256)","e0cee23f":"SuccessfullyTransferedFromCompanyInventory(address,uint256,bytes32)","e0cf1316":"_transferPlayer(address,address,uint256)","e0cf17a5":"totalStoredDDT()","e0cf1e4c":"removeMembers(bytes32,address[])","e0cf715d":"EtherTrend()","e0cf72e1":"ERC20Token(uint256,string,string)","e0cfc05c":"testThrowsRetractLatestRevisionDoesntHaveAdditionalRevisions()","e0cfde22":"setRestrictedParticipationCap(address[],uint256)","e0d05c51":"MemoireClement()","e0d1ba52":"Rate_Eth()","e0d2771d":"MINIMUMINVESTMENTPRESALE()","e0d29d38":"STARTING_POOH()","e0d3558e":"GetBoosterData(uint256)","e0d370ac":"site()","e0d4ea37":"getSeed(uint256)","e0d4ea7e":"addDestructionProposal(string)","e0d54970":"getInstructions()","e0d5af94":"ownerWithdrawAll()","e0d669d8":"tradesLock(address)","e0d6d530":"setContracts()","e0d751da":"returnBets()","e0d77ff6":"hasBeenBooted(uint32)","e0d79d38":"addcertifieddata(string,string,string)","e0d872b7":"getSideServices()","e0d9bc7b":"sybmol()","e0da260c":"widthdraw(uint256)","e0da4abd":"getDefaultExchangeRate()","e0db6781":"offerDraw(bytes32)","e0db874d":"moneyBack(address)","e0dba60f":"setController(address,bool)","e0dbbea2":"search(uint256,bytes32)","e0dc892c":"GiftHasBeenSent()","e0dcf2d8":"processInitialDistribution()","e0dd31da":"MDCSToken(uint256,string,uint8,string)","e0dda563":"GetContractStagePreMoveIn()","e0ddaa0e":"MAX_TOKEN_BUYIN()","e0dec0c0":"contractValue()","e0df51bb":"test_oneValidAndInvalidEqAddress()","e0df53b9":"LotteryRoundStarted(bytes32,bytes32,uint256,string)","e0df5b6f":"setTokenURI(string)","e0dfd0a6":"GIFTCOIN()","e0e04685":"setOldContract(address)","e0e081d7":"marketStatus()","e0e0e2d3":"random(uint8)","e0e1104d":"tierWhitelist(uint256)","e0e11a14":"newVowIdFlag(address,uint256,uint256)","e0e1593c":"decayedPriceFrom(uint256,uint256)","e0e16f91":"TestContract(address,uint256)","e0e1a7f0":"testSHA3()","e0e267e5":"minimumWei()","e0e29ac1":"SLMICO(address)","e0e32504":"isDaySixtyChecked()","e0e34e06":"getGlobalConstraintParameters(address,int256,address)","e0e3671c":"checkOwner(address)","e0e3b9d7":"ImmutableShares()","e0e3ba5a":"getLosesShare(address)","e0e3feae":"skimALittleOffTheTop(uint256)","e0e40349":"name(address,bytes32)","e0e4704e":"RequestDetachmentOnPause(uint256)","e0e4731a":"TokenGoalReached()","e0e4c438":"sendInternally(address,uint256,uint256)","e0e58009":"BookingPoC(address,address,uint256)","e0e5fffd":"preSale4()","e0e69937":"setDefaultVestingParameters(uint256,uint256,uint256,uint256,bool)","e0e6d6cb":"requireValidIndex(uint256,uint256)","e0e7127a":"getContractOwnerAddress()","e0e722b7":"MAX_ALLOWED_STAGE_3()","e0e81ccb":"getCurrentSchellingRoundID()","e0e848c0":"checkDone()","e0e84e81":"changeCompanyWalletAddress(address)","e0e85fe8":"StatEventA(string,address)","e0e8823c":"withdrawDai(uint256,address)","e0e8a555":"KAL3Token()","e0e9b349":"getReportRegistrationFee()","e0ea129e":"militaryToken()","e0eb3035":"registerAudits(bytes32[],bytes,bool)","e0eb60b2":"initialSpinners(uint256)","e0eb6613":"PresalePool(address,uint256[],uint256)","e0eb9449":"mateAnimal(uint256,uint256,string,string)","e0ebd259":"discountValue()","e0ebdbff":"getAuditRequestor(uint256)","e0ec289a":"creditsExchanged()","e0ed78d1":"setRouletteRules(address)","e0ee74e9":"changeActualQueue(address)","e0ee94e9":"PocketCoin()","e0eef0b9":"BOOKIE_POOL_COMMISSION()","e0efdaf9":"softCapTokensAmount()","e0f0497d":"currentTokenSaleId()","e0f06352":"testIsContractAddress()","e0f20a65":"etherLock()","e0f31fae":"isDoneReporting(address)","e0f32198":"runSweepStake()","e0f3691d":"thisEther()","e0f426fa":"numMCApplied()","e0f47580":"withdrawCommisionToAddress(address,uint256)","e0f4a1a2":"minimumPRETDEContributionInWei()","e0f4ed01":"parcelEth()","e0f50bac":"senderWithdrawal(uint256)","e0f609d4":"unsafeIsEncrypted()","e0f6cc07":"isChain(string)","e0f74cde":"BONUS_TIMES_VALUES(uint256)","e0f771c9":"Bithumb(uint256,string,string)","e0f7b44d":"PreTgeExperty()","e0f898e4":"totalTokenLossValue()","e0f8c670":"getFirstPaymentAmount()","e0f8da97":"sponsoredBonusToken()","e0f9210b":"batchDistributeReward(address[],uint256[],uint256)","e0faf0a8":"getOnSaleIds()","e0fb8459":"recevedEthFromExchange(address,uint256)","e0fce922":"deliver(address,uint256,uint256)","e0fd59bf":"disableAdminForever()","e0fddf81":"setemployee(address,string,uint256)","e0fdf336":"finalReserveTimeLock()","e0fe01f4":"makePrediction(int8,string)","e0fe075e":"payoutReady()","e0fe42be":"existsPriceOnAssetPair(address,address)","e0fe4a84":"updateStrategyCategory(bytes15,uint256)","e0fe6d07":"SideBridge(uint256,address[])","e0fe9ccf":"WaltonTokenLocker()","e0ff5b8b":"getBook(uint256)","e0ff5d2f":"setMaxRacers(uint8)","e0ffa0da":"lastBlock_f13()","e0ffe8e3":"newOrder(string,string,uint256,uint256,string,string,string)","e1005556":"allowTransferWhitelist()","e1017332":"sellPaused()","e1021b53":"getLuckyRecordSize()","e10289b8":"addContributor(uint256,address,uint256)","e102baab":"setTokenController(address)","e102d950":"getNameHash()","e1036f86":"tax_distributed()","e1041d86":"__throw()","e106fae9":"lottoLowestNumber()","e106fb4b":"stringToBytes(string)","e1082335":"to(bytes32,address)","e1089240":"Csts()","e108d2d6":"setMintAdminApproval(address,address,address)","e1094ff6":"DGZTokensSold(address,uint256)","e1097249":"initStage()","e109ef24":"setTokenOperatorApprovals(address,address,bool,bool)","e10a70b7":"LogRedeemVIBE(address,uint256,uint256,uint256)","e10aa985":"Elyxr()","e10b650b":"winnerWithdraw()","e10bcc2a":"startMilestone(bytes32,uint256,address,uint32)","e10be707":"changeGoodBye(string)","e10c7bb5":"EventStore()","e10d29ee":"queue()","e10d416f":"enablePurchasing(bool)","e10d4c0b":"isSaler(address)","e10e274a":"CrazyEarning()","e10e5dce":"_build(bytes)","e10e66e6":"changeWeiPerToken(uint256)","e10e8ffe":"doOraclize()","e10e95c9":"fundingEnabled()","e10eda7a":"IOCFundIndex()","e10f1b06":"isTournament(address)","e10fb98f":"testMul()","e1103422":"retractRewards()","e11074cb":"initFund()","e1108706":"rfind()","e1112648":"record(bytes)","e1115aa5":"addUserRewards(uint256,uint256,address)","e1134799":"claimDaoStakeSupply(address)","e11398e8":"burnLeftovers()","e113c6fd":"ICO_SINCE()","e11443cb":"UWNToken(uint256,string,string,address)","e1152343":"payout(uint256)","e11527d4":"linkedContract()","e11583b7":"TokenOPSSaleAddress()","e116b17e":"getKudosLeftForProject(address,address)","e1175a79":"getMyTickets(string,address)","e117e6f9":"MyToken(uint256,string,uint8,string,uint256,uint8,uint256,string,string,string,string,string,string,string)","e1181c73":"faucetLif()","e1187e2e":"getCollectibleWithMeta(uint256)","e118eda4":"featuredSpritesLength()","e118fba2":"redeemPurchases()","e119f8bb":"migrateMarketInFromNibling()","e11a5a4f":"allocateStartBlock()","e11aa56d":"getDeedTimestampByAddress(string,uint256)","e11b09e0":"softCapCompleted()","e11b53af":"getContributionsCount()","e11dba54":"messagesLength()","e11df80d":"batchVipWithLock(address[],uint256[],bool)","e11e1b0c":"escrowBalance()","e11efa06":"getProgress(uint256)","e11f493e":"reentrancy()","e11f6398":"MAXIMUM_PERCENT()","e11fe9ec":"hasItem(uint256,uint256)","e12073a0":"getAllDetails(address)","e12097b7":"getCurrSale()","e121c102":"incentives(uint256)","e1221400":"getCoinInfo(string)","e1226164":"getFamilyById(address)","e122c028":"totalLBSold_GENERAL_2()","e122f1b2":"GoldenCurrencyToken()","e123182b":"purchase(bytes32,uint256)","e1248d52":"DYLC_ERC20Token()","e124e37b":"add_allowedAddress(address,address)","e124f899":"toPool()","e1252b9b":"make_anonymous_registration(uint256,uint256)","e1254fba":"getDeposit(address)","e125501f":"refundParticipants(uint256)","e125f88b":"aoccoin()","e1266042":"setTakeOwnershipFeePercents(uint256)","e126eb7d":"referralCodeFromAddress(address)","e1270b6e":"approval(address,address)","e1281280":"setAddressUIntMapping(address,uint256)","e12849b2":"getMineGenesis()","e1287520":"getBets(uint256,uint256)","e128f0d6":"getTogetherDate()","e12925a9":"setUnownedNickname(uint256,string)","e129330b":"factorContributed()","e129c99d":"notaryBookSize()","e129f783":"NameRegistered(address,bytes32)","e12a3bbe":"icoAllocation(uint256)","e12a894e":"CbdStandardToken(uint256,string,uint8,string)","e12badcf":"PlatformInformation()","e12bcd68":"relayerName()","e12bceeb":"performEqual(address,address[],uint256)","e12cbb3c":"SIGNAL_DELAY()","e12cbb9e":"updateOrderBatch(bool[],uint32[],uint128[],uint128[],uint32[],int256)","e12ed13c":"currentBlock()","e12ee8d7":"totalAmountRaked()","e12f3a61":"getClaimableAmount(address)","e12f670f":"DiscourzeToken()","e13044fb":"changeEth_to_usd(uint256)","e13062c2":"getInvoices(address,uint256[])","e1313dfb":"additionalInfo(uint256)","e13245b1":"getCommunityBallotsEnabled()","e13251b9":"listAssetsFrom(uint256,bytes32,uint256,bool)","e132db41":"checkRate()","e1332ab9":"setParameter(string,string)","e13380e9":"EmClassic()","e133ad53":"extendCost(uint256)","e1345b02":"SMARTGold()","e134c9ff":"shutdownMarket(address,bytes32)","e134e33d":"reason()","e1351c05":"pay_coin()","e1370365":"makeLogFill(address,address,address,address,address,uint256,uint256,uint256,uint256,uint256)","e137047b":"RESELLING_LOCK_UP_PERIOD()","e1376da2":"updateFirstActiveGamble(uint256)","e137cdd9":"totalTokenCreationCap()","e138efb2":"setAllowStart(bool)","e139e569":"getPriceAndTime()","e13a7716":"testReturn()","e13aba48":"testBurn()","e13bd03c":"delCashier(address,address)","e13da09f":"HARJToken(string,uint8,string)","e13dc28b":"testValidTransfers()","e13e2ecf":"dev_issueTo(address,uint256)","e13ec1fa":"RoundChanged(uint256)","e13efb79":"getReferenceHash(bytes32)","e13fafdb":"marketCoins()","e13fe91c":"REALPlaceHolderMock(address,address,address)","e1404b41":"setNewMembers(address,address,uint256,uint256)","e1419546":"makeLiquid()","e1421a45":"makeIntString(string,uint256,string)","e142967e":"addClaim(uint32,int256,string,string,bytes)","e1437b00":"calculateCurrentMarketPixelPrice(address[16])","e143b3a1":"createNewEscrow(address,address,address)","e1444721":"minGoalReached(uint256,string)","e1472d88":"increaseBalance(address)","e1479d07":"megoAddress()","e1479ebe":"is_registered(bytes32)","e1482188":"showCollectedFee()","e1486ea8":"getContest(uint32)","e1489191":"commission()","e148bae9":"assignClientIfNotAssigned(address)","e148fe28":"transferTokensFromReserveAddress(address,uint256)","e1496d16":"TEAM_NAMES(uint256)","e149fbfa":"ShapeshiftBotSolo(string)","e14a147e":"addPokemon(string,address,uint256)","e14acc04":"getCanLoanAmount()","e14b238a":"EITToken()","e14b7571":"stage_3_price()","e14b983e":"LevelToken()","e14c4675":"rateForMainICO()","e14c5e17":"setcreatorAddr(address)","e14ca10e":"oraclizeCallbackGasLimit()","e14df8b7":"subDepotEth(address,uint256)","e14e1ba7":"_getTokenAmountWithReferal(uint256,uint8)","e14e5ca4":"BETHER()","e14ed045":"getContributionOf(address)","e14f680f":"sendAll()","e151fb62":"_updateMetadata(uint256,string)","e153591c":"FairyFarmer()","e1538b32":"gasPayback()","e1539c53":"claim(bytes32,string,string)","e153b74e":"tokenFallback(address,uint48,bytes)","e154179e":"addToTrusted(string)","e1541b7d":"testDiacritcs()","e1541bc3":"setTdeIssuer(address)","e154d17d":"heldTokens(address,uint256)","e155999e":"getFreeCrocs()","e155b66c":"ConvnertToSecret(uint8,string)","e15618b9":"founderWithdrawablePhase4()","e1567997":"kscBatchTransferToBounty(address,address[],uint256[],uint256,uint256[],string)","e1568024":"totalAmountOfCrowdsalePurchasesWithoutBonus()","e1569f6b":"testThrowsSetNotRetractableNotOwner()","e15746af":"TJCUToken(uint256,string,uint8,string)","e157819a":"distributeCOMIKETCOIN(address[],uint256)","e1587aae":"maxFinneyPerSaleLessThan()","e158a24e":"ethTransfertoACC(uint256)","e1590ed7":"mainEtherReceived()","e15a307c":"killAndRefund()","e15cba26":"_pay(bytes32,address,uint256,uint256,uint256)","e15d051f":"adminUnsigned(address)","e15e9d47":"depositFlag(address,uint256,uint256)","e15f3ec2":"Sent(address,address,int256)","e1606013":"issueCert(uint256,bytes)","e160a1d6":"manaPerEth()","e160e146":"createContractToken(string)","e161c3bf":"getPercentage(uint256)","e1621b04":"getDatePosted(uint256)","e163698a":"setTokenForPublicSale(uint256)","e16385fc":"destroyTokens(uint256,address)","e163b75b":"settleBet(bytes20,bytes20,bytes32)","e164483f":"numberOfBlocksToStartGame()","e164ac50":"teamPercent()","e1654fad":"roundIn(uint256,string)","e1661eff":"getClaim(address,address,bytes32)","e1661ff2":"Later(address)","e1662aa6":"saveMsgByUser(string,string)","e166b756":"ownerMethod()","e166bebd":"BINOToken()","e1674588":"getTokenURIs(uint256,bool)","e1675421":"changeFsTKAuthority(address)","e167dbca":"exchangeTokens()","e168a31a":"getOwnedArea(address)","e168ae8a":"_isPreICO()","e168c3ec":"votes()","e16b924d":"sellBonds(uint256,bool)","e16ba8c6":"privateSale1Hardcap()","e16bd3b7":"getSales(address)","e16c7d5e":"signedApprove(address,address,address,uint256,uint256,uint256,bytes,address)","e16c7d98":"getContract(bytes32)","e16c8053":"setTransfer(uint256,uint256)","e16c8d4b":"viewMyShares(bool)","e16c93e5":"Swarm(address,address,uint256)","e16dbb2f":"Multiplication(uint256,uint256)","e16dd936":"getVestingSchedule(address,address)","e16e2843":"setdividendFee(uint8)","e16e9340":"getAddressArrayIndex(bytes32,uint256)","e16e93aa":"DU30Token(string,uint8,string)","e16f374c":"getHarborLocation(uint16,uint16)","e16f5fe9":"DeathFactor_iv()","e16fb2f9":"recordInvestment(address,uint256,uint256)","e16fe580":"CalcHash(bytes)","e1703521":"setPriceMoreThanOneETH(bool)","e170dd81":"MintingSale(address)","e1725c92":"decimalPlaces()","e1726faa":"pushDividendPayment(uint256,uint256,uint256)","e1727807":"splitPot()","e1727fc6":"contractDeployedTime()","e172a57e":"updateGenerationStopTime(uint256,uint8)","e172dac8":"ethOdinRate1()","e173b0d0":"reserveAll()","e17463c2":"changelp5(address)","e174f106":"ManualMigration(address)","e1757a3c":"TIMEOUTBLOCKS()","e1758bd8":"nativeToken()","e175c86a":"getInviteInfo()","e1765073":"getPath(uint256)","e17682eb":"StablePrice(uint8)","e177246e":"setDelay(uint256)","e17755c4":"zrxTokenContract()","e177573c":"setHatchTime(uint64,uint256)","e177644a":"TimeStamp()","e177b18b":"minCoordinatorCount()","e177b707":"Valdela()","e177bb9b":"registerCode(string)","e17928ba":"BOBOTOKEN()","e17a3ccf":"paused_4()","e17a5894":"yoobaTeamAddress()","e17a7c70":"stage3_start()","e17b25af":"setMetadataAddress(address)","e17b3054":"creatorOwner(address)","e17b35ed":"isMint(address)","e17bf87a":"testRewardBB(bytes32)","e17cb777":"rewardRetweet(address)","e17e1274":"testTransferToRejectAuthority()","e17e1a86":"SetupWWC(string,string,uint256,uint256,uint256,address,address,uint256)","e17e7a20":"setTotalStaked(uint256)","e17fc704":"canMintFoundation(uint256)","e17fe6a0":"getCreatorReward()","e17fec26":"Unregistered(bytes32)","e180819e":"setBuyTime(uint256)","e18099e1":"ethTokenRate()","e180dbbd":"isEarlyBird(address,address)","e180e23b":"Annexe_CPS_6()","e182e27a":"fastHatchingPrice()","e182fd01":"tokensBankPartners()","e184c9be":"expiry()","e1851b83":"getMaximumFundsInEuroCents()","e1859169":"communityContributionQuota()","e185a890":"widthdrawRefunds(address)","e185b24c":"emptyIndex(address[])","e1863b19":"MultisigWalletMock(address[],uint256,uint256)","e186fb27":"checkcitizendetails(uint256,string,string,string,string)","e1878925":"isDeregisterable(address)","e187a550":"logCall(uint256,uint256)","e187eaf7":"addMoreTime(uint256,uint16)","e1883433":"withdrawEther(uint64)","e189dba1":"sellIssuerTokens(uint256)","e18a9134":"getLockProducts(uint256)","e18af2b8":"PHPCoin(uint256,string,string)","e18b170e":"tune(uint256,uint256,uint256,uint256,uint256)","e18b7fcf":"receiveFee()","e18c52ae":"testControlTransferNotTransferable()","e18c8cf9":"etherInWei()","e18d38ce":"getPlayerName(address)","e18dc0f6":"pricingStrategyAddress()","e18e34d5":"setPayoutFee(uint256)","e18ed57b":"_calculateTax(uint256)","e18f1355":"TestERC20Token(uint256,string,uint8,string)","e18fb814":"setFixPrice(uint256)","e18fe709":"AirRewardTotalSupply()","e190264f":"newCampaignAccount(uint256)","e1909035":"GetCompetitionResults(uint32,bool)","e190d1b5":"claimFreeCrab()","e1911d70":"METADATA_URL()","e19136a4":"urbitAdminAddress()","e191548d":"AnimecardCore()","e192c4e0":"investor_Refund()","e1938b14":"oraclizeSetWinner()","e193b735":"tokensDonated()","e1948e44":"ethRateExpiration()","e194e369":"getFamedStarByName(string)","e19593e5":"cashout(uint256,address,address,address,uint256,bytes,bytes)","e195d096":"tokenReserved()","e195f2ec":"howManyFees()","e1980d15":"setBuyAuctionAddress(address)","e199b7e4":"getMasterAdress()","e199c8a8":"SafiraToken()","e19a7bc8":"stopMigration()","e19ab767":"totalDistrictSupply()","e19aca85":"takeDividends(address)","e19bb964":"priceIncreasingRatio()","e19bc813":"bonusesCount()","e19bc8e5":"initPrivateIco(uint256,uint256,uint256,uint256,uint256)","e19d36ff":"removeAsset(bytes32,address)","e19eaf79":"blocknumber(address)","e19f1c55":"EstatePurchased(uint256,address,uint256)","e19fb933":"MentalHealthLifeToken(uint256)","e19fd3c5":"determinePurchase()","e1a05087":"getImpactUnmatchedValue(string)","e1a05344":"createSaddle6(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","e1a1cd8d":"crowdfundEndDate()","e1a27ad3":"needsAdministration()","e1a283d6":"mintingPaused()","e1a29a3f":"setVariationAddress(address,address)","e1a2c446":"lockRewardTokenMany(address[])","e1a382f4":"ZTHToken(uint256,string,string,uint8)","e1a3e55c":"buy(string,address)","e1a44749":"setOptions(uint256)","e1a566f4":"challengeExists(string)","e1a57611":"tokenReceivers(uint32)","e1a58a74":"flowerContract()","e1a63c14":"PixelMap()","e1a67cd3":"overrideTokenHolder(address,uint256)","e1a69d88":"level_1_amount()","e1a6ddcd":"isValidContribution()","e1a6df9e":"FLIGHT_NUMBER()","e1a6e625":"TradingStart(uint256)","e1a6f014":"offer(uint256,address,uint256,address,uint256,bool)","e1a7739c":"getExercisePeriodDeadline()","e1a8af8a":"getWinnerPrize(uint256)","e1a9109d":"setSeedPrice(uint256)","e1a9a2b1":"endRound(uint256,uint256)","e1a9f9b9":"_buyCallToClose(uint256,uint256,uint256,uint256,address)","e1aa1098":"GuardaRegistro(string)","e1aa1bcc":"refundDeadline()","e1aa60dc":"lastBlock_v3()","e1aa7e95":"createNewUser(bytes32,bytes,address)","e1ab5860":"declarePublicOfferingPlan(uint256,uint256)","e1ab690e":"ANRToken()","e1ab7cda":"OnetVN()","e1aba68e":"newProposal(address,string)","e1abf819":"GetWinner(bytes32,address,bytes32,address)","e1ac48ad":"saleableTokens()","e1aca6fb":"quickSort(uint256,uint256)","e1ad1162":"transfer(address,uint256,bool)","e1ad7699":"setPayload(string)","e1ad84a0":"GetFixedPrice(uint256)","e1addfbb":"priceOfreservations(address)","e1ae91b3":"TestToken(address,uint256,uint256)","e1af0121":"associationOf(address)","e1af915d":"changeGenes(uint40,uint256)","e1afb08c":"unlock(bytes16)","e1b0d4b2":"setTransactionsAllowed(bool)","e1b27e6b":"COO()","e1b3f338":"undoPending(address)","e1b40a76":"ipfsAddress()","e1b41513":"LIVEToken()","e1b4d6cb":"HOTCRYPTO()","e1b5265a":"PutForExchange(address,uint256)","e1b53078":"makerAffiliateFee()","e1b54285":"endDateOfVipPlacement()","e1b5989d":"FastLoan()","e1b5ce0f":"buy(uint256,string,string)","e1b7535f":"getDepositor()","e1b7abda":"HOST_SHARE()","e1b8347b":"testFundsAreTransferrableAfterSale()","e1b84ac3":"_storeSettingCreation(address,uint8,string,address,address,string)","e1b8708f":"OwnerChanged(address,address,bytes32)","e1b92b21":"LogOmegaEggSale(address,uint256)","e1b9dc08":"setCallbackGasLimit(uint256,uint256)","e1b9dea4":"Globglogabgalab()","e1b9ed9d":"_buyTokens(address,uint256,uint16)","e1ba84a9":"testFallbackThenAdd()","e1baa2a0":"ownerAngelTransfer(address,uint64)","e1baa9cb":"CNT_Common()","e1baed1a":"hireBountyHunter(uint256)","e1bc048e":"clones_to_create_one_idea()","e1bc3003":"reveal(bytes,string)","e1bccc7f":"FccToken()","e1bd5af9":"contractHolderAddress()","e1bdc3c9":"addAddressMappingProposal(address,address)","e1be7467":"bounties()","e1bedf2a":"AlarmTester(address)","e1bf34e9":"transferToKnownContract(address,uint256,bytes32[])","e1bf4f50":"upgradeM5Logic(address)","e1bf50c8":"_transferChamp(address,address,uint256)","e1bfc31e":"acceptOp()","e1c0669d":"getJobSponsorshipId(address,address,uint256)","e1c093da":"getMinerBlock()","e1c1451a":"tokensIssuedMkt()","e1c18c42":"setEarned_money(uint256)","e1c1b939":"verifyTransaction(bytes32,uint256,address,address,uint256,address,address,uint256,bytes,bytes)","e1c33523":"xpaFundDeposit()","e1c3aedc":"updateRewardVaultContract(address)","e1c3bac6":"stakeMaxAge()","e1c3fb91":"_hasClosed()","e1c49dde":"previousRounds()","e1c4a6a6":"getIsRemoved(bytes32)","e1c4c9fe":"remainingReward()","e1c52dc6":"Confirmation(address,bytes32)","e1c5d838":"createOrgan(string)","e1c621c0":"_rewardTokens(address,uint256)","e1c66292":"Create(uint32,address)","e1c68f31":"findFloorKey(uint256)","e1c6b14b":"addToOtherMap(uint256,uint256)","e1c70b29":"_createPow(string,address,uint256,uint256,uint256)","e1c7392a":"init()","e1c7f06a":"AddSharedAccount(bytes32,bytes32,bytes32,address)","e1c80391":"setArtcoin(address,address,address)","e1c941b0":"batchSendWebGiftToken(address[],uint256)","e1c95bb9":"updateThresholdNewTokenPair(uint256)","e1c9ccaa":"ShopalToken()","e1ca1b7d":"FilmoljupciCoin()","e1ca6f6f":"distribute_100_tokens_to_many(address[])","e1ca8b57":"setNewPriceFuncAddress(address)","e1caa0c7":"createAndCall(string,bytes)","e1cb0e52":"getVal()","e1cb5515":"newArticle(string,string,string,address)","e1cba8d2":"TUBECOINcontract()","e1cd5fc0":"PROJECTOPERATION_SUPPLY()","e1cda468":"createRequestFromBytes(bytes)","e1ce95c8":"summon10SkinAppearance(uint256)","e1cf0b3b":"refundAllPlayers()","e1d001eb":"mintAllowance(int256)","e1d03d11":"setUnlockedAddress(address)","e1d07058":"_modifySpendLimit(uint256)","e1d10d85":"getMyTickets()","e1d10f79":"calluseraddress(address)","e1d1e8ef":"getCurrentUnitPrice()","e1d2d3e4":"SocialMedia()","e1d2f649":"restartAuction(uint256,uint256,uint256)","e1d30979":"wolkInc()","e1d35155":"ProudofYourCoin()","e1d4efc4":"YHT()","e1d5988e":"discount(uint256,uint256,uint256,uint256,uint256)","e1d5e8eb":"rollDices(uint256)","e1d5ec4c":"seedShare()","e1d6aceb":"transferWithComment(address,uint256,string)","e1d6e166":"getContracts(address,uint256)","e1d76c8e":"getBlocksByOwnerDesc(uint256,uint256,address)","e1d7ce2c":"EthCentsUpdated(uint256)","e1d7fadc":"disqualifyHopeful(uint256)","e1d81736":"addUser(uint256)","e1d94d94":"ownerChangeSlogan(string)","e1d9627f":"ReputationChanged(address,int32,int32)","e1da4135":"bountyFundAddress()","e1da4f85":"setStartStage2(uint256)","e1da5637":"setPercentWeiJackpot(uint256)","e1dace1a":"rewiewToken()","e1db206c":"limitTier1()","e1db8e7e":"getCreatedPayoutNumerators()","e1db8ff2":"mineForMany(address[],address[],uint8[],bytes32[],bytes32[])","e1dbc281":"changeBank(uint256)","e1dc7792":"OptedOut(address,address)","e1dcafa3":"setDefaultReputationReward(uint256)","e1dcf3de":"NewBooking(address,uint256,uint8,uint256)","e1de02f3":"_exit(address)","e1de373f":"addPlayerName(string)","e1df4517":"WealthChainToken()","e1df507c":"calculateAmounts(uint256)","e1df7f60":"startstopICO(bool)","e1e073b6":"amountTokenIssued()","e1e09299":"addUserRole(address,uint8)","e1e158a5":"MIN_DEPOSIT()","e1e1f977":"parseTx(address[4],uint256[3],uint32[4])","e1e29558":"completeTask(uint256)","e1e2ccd2":"sellDrugs()","e1e3f915":"parameterizer()","e1e46351":"mvpLaunchedAt()","e1e46f24":"tokenRate2()","e1e471eb":"BankingPayToken()","e1e4d737":"setTokenFront(address)","e1e5c093":"controlSum()","e1e7c320":"getGamesPlayerBids(uint256,address)","e1e85c4b":"splitProfit(uint256)","e1e867e5":"getFees(uint256,uint256,address)","e1e87c28":"refundToBuyers()","e1e87f40":"LogDividend(address,uint256,uint256)","e1e87f60":"_getBid(address,uint256,uint256)","e1e902af":"transferToLock(address,uint256,string)","e1e93604":"atomicMatch_(address[14],uint256[14],uint8[6],bytes,bytes,bytes,bytes,bytes,bytes,uint8[2],bytes32[5])","e1e9e249":"encodeAddress(address,address)","e1ea0a57":"TOKKA()","e1ea5e05":"token_fallback(address,address,uint256,bytes)","e1eb5f87":"NewPrice()","e1ebdb6d":"setWhitelistA(address,address)","e1ec12c7":"TopPlayerToken()","e1ed7fcb":"setBagMultiplier(uint256,uint256)","e1eddc6d":"_rand(uint256)","e1ee9284":"getOwnCard(address)","e1ee9a3d":"isPreIcoDate()","e1ef42b1":"Total_Investors()","e1efda6d":"airaSend(address,address,uint256)","e1f0ae1b":"NexoToken()","e1f0c376":"gameDuration()","e1f11822":"carnumOf(address)","e1f16616":"invcoinSentToEther()","e1f21c67":"approve(address,address,uint256)","e1f4895a":"getCostToken()","e1f4a9b1":"set_pre_kyc_bonus_denominator(uint256)","e1f51aca":"listTokenByRank()","e1f5760b":"horsesRemaining(uint256)","e1f57846":"com_fee_transaction(address,address,address,uint256,uint256)","e1f5eb3f":"convertTokens(uint256,address)","e1f5ebc5":"_projectAddNew(address,uint256)","e1f6452e":"AggiungiNegoziante(address,bool)","e1f69952":"voteSvp02(bool)","e1f7d0e1":"PRE_SALE_END()","e1f7ec5a":"getStored()","e1f82d60":"publicReservedToken()","e1f86887":"getPortfolioTable()","e1f87904":"getNextDouble(address)","e1f8922e":"transferName(address,string)","e1f8926b":"depositEthPool(uint256)","e1fa70ef":"endCloseSale()","e1fa7638":"attack(uint256,uint256)","e1fa78e9":"AgriChainLabelInt()","e1fa82d0":"transferFromFlower(address,address,uint256)","e1fa8b02":"distribute(uint256,address)","e1fa8e84":"register(bytes32)","e1fb070e":"MtTaborToken()","e1fbeaed":"CUCUX()","e1fcad6a":"_equipUpOne(address,uint256)","e1fcb86d":"YouTube()","e1fd3d4e":"emergencySetDOwner(bytes32,address)","e1fd632f":"EDU_KYC_BONUS()","e1fdb4b4":"refundBet(uint256)","e1ff98f2":"getTotalCounter()","e1ffdecb":"tokensPerTranche()","e20056e6":"replaceOwner(address,address)","e200cee8":"setBossWannaCryInterface(address)","e201be98":"airDropToken()","e201d466":"MultiToken(uint256,string,uint256,string,string,uint256)","e2021f66":"getAttack(bytes32,bytes32,uint256)","e2022d3a":"storeNewVesting(address,address,address,string,uint256)","e202e1eb":"contractPartOne(uint256)","e20314ed":"trade(uint256[10],address[4],uint256[6],bytes32[4])","e2034834":"RemoveRocketForSale(uint32)","e203f335":"leafPrice()","e2045452":"setUsername(address,string)","e2045b5e":"getBadgeInfo(uint256)","e2047589":"assertEq(address,address,bytes32)","e204ce12":"transferExtra(address,uint256,uint256)","e2056c46":"ExtraBalToken()","e2059fdf":"showIssueDetail(address,bytes32)","e2069734":"destroyRemainingTokens()","e2087a44":"receiveApprovalTest(address,uint256,address,bytes)","e209bf22":"addMeme(string,string)","e20a4bcd":"recoverAddressFromCooperativeSettleSignature(bytes32,address,uint256,address,uint256,bytes)","e20a5ac2":"bonusFourthWeekPeriod()","e20a9ae9":"Tesoro()","e20acc79":"changeInterval()","e20b7d3c":"checkPoolAddressTierCap(uint8,uint256)","e20bbd8d":"RecoveryWithTenant()","e20bc67b":"autoUnlock(address)","e20bce0a":"lowTimeBonusValue()","e20c6d3d":"getMessageData()","e20ccec3":"pending()","e20cfc4a":"payedDividendsUSD()","e20d35ad":"CellBlocksToken()","e20dc05b":"globalOperator()","e20de6eb":"addrLockedFunds()","e20e1dc3":"createProxy(address[],uint256)","e20e36a0":"ExchangeAdapterBase(address,address)","e20e54a5":"getMHTHoldersNumber()","e20ff6f7":"fetchCurrentSatoshiState()","e2101509":"getSketchesWithHolder(address)","e211003d":"processOffChainPurchase(address,uint256)","e2119c80":"computeRealCap(uint256,uint256)","e2121de1":"withdrawAny()","e2130d1e":"unlockTeamTokens()","e21316ea":"mortal(address)","e213beb7":"transferCoOwnership(address)","e213e10a":"_createMeme(uint256,string,address,uint256)","e2153231":"SahilToken()","e2155c14":"galleassMint(address,uint256)","e21608be":"ReserveToken()","e2164700":"currentRewardNum()","e216bf4d":"SetBlockForSale(uint256,uint256,uint256,address)","e2172000":"left63(uint256)","e2179b8e":"g()","e21827a1":"unmintedTokens()","e218519c":"getref()","e2187e6e":"endTimeLockedTokensTeam()","e2188190":"CROWD_WAVE3_PERIOD()","e219aa11":"GetEscrowETHBalance()","e219b9e1":"rebateOneFenmu_()","e21a430b":"publicRelease()","e21aaa0f":"_getShipPrice(uint256,uint256)","e21ac8a1":"AvatechToken()","e21b0b95":"updateGlobalMinContribution(uint256)","e21b63b2":"setNewMint()","e21b9d08":"m_changeable()","e21be4f4":"CBMTToken()","e21c4783":"isPermitted(address,bytes32)","e21e221b":"ContributionRegistration(address)","e21f37ce":"message()","e21f44f4":"PoolCreated(uint8,uint256,uint256)","e21f8e56":"get_game_fees()","e21fd9fc":"_owns(address,uint256)","e2202a4d":"jester()","e2211592":"TWO_DAYS()","e2217114":"forwardEther(uint256)","e2217d5c":"payeth()","e2219773":"webGiftOnceMaxAmount()","e221d5d5":"getDukeNickName(string)","e222b00c":"blocksPerPayPeriod()","e22325ad":"transferBase(bytes32,address)","e2233ada":"smartDoor(address[])","e223b547":"calcFixedReward(uint256)","e223cb37":"AddBill(uint256,uint256,uint256,bool)","e223ed87":"getPetValue(uint256)","e223facb":"USER_GAME_WITH_TOKEN(uint256)","e224179e":"icoOverride()","e22497e4":"removeFromPublicSaleWhitelist(address[])","e225c56b":"KudosToken()","e225e588":"TNCN()","e226a1b6":"getAddressStatus(address)","e226cdec":"sellOffline(address,address,uint256)","e226ed22":"balanceOfERC20(uint256,address)","e227b5d1":"ETHContributed(address)","e228647f":"olty_6()","e228a6f4":"withdraw(uint256,uint8,uint16)","e228d627":"nextTokenAddress()","e228ecb4":"lockBalance()","e22938bd":"ShareManager()","e22955c6":"MultiplyContract(address,uint256,uint256,uint256,uint256,uint256)","e2298591":"xIPFSPublicKey()","e22a3af8":"canClaimTokens()","e22a6231":"addCandidate(address,string,string)","e22a9877":"getHWCAddress(address)","e22aa47a":"lockTokensForCs(address,address,address)","e22ad518":"startNextPremiumSale()","e22ae31d":"FrameCoin()","e22b0c46":"verify(uint256,uint256,uint8,bytes,bytes)","e22b3fb4":"changeOwner(bytes)","e22b94e8":"ForceCryptoInvestmentCoin()","e22baa56":"nonZero(uint256)","e22bda35":"eventVenue()","e22c6128":"getIncome(address)","e22d1581":"saleEnd2()","e22e8046":"getLunckyIndex()","e22ed995":"createStudent(string,string,string,uint32,bytes1)","e22f8dc9":"buy_lovelock(string,string,string,uint256)","e22fb860":"CJXToken()","e22fcd08":"useItems(uint32,uint256,address,uint256)","e23000a0":"buyBackPrice()","e2301d02":"subApproval(address,uint256)","e2306253":"o1Address()","e230dfbd":"setETHUSD(uint256)","e230e246":"cutFor(address,uint256,uint256,uint256)","e2311a78":"Payperblock()","e2313d1f":"ClaimOrichalcum()","e231bff0":"redeemed()","e2322c73":"firstPeriodWindows()","e2326909":"addCourse(string,string,string,uint256,uint8,uint8,uint16,uint8,uint8)","e2331332":"AortaToken()","e2332120":"secondUnlockTime()","e233ee0d":"publicFillOrder(bytes32,uint256,bytes32)","e2356efd":"holdTokensOnStage()","e235847a":"addSourceForTimeline(uint256,uint256,string,bool)","e235ca59":"revealsCount(uint256)","e236de22":"distributorWallet()","e2376be1":"sendMon(address,address,uint64)","e2387bb6":"AuctionHouse()","e238c7ed":"setAllowanceAdmin(address,address,uint256)","e238def9":"getReleasedBalance()","e23941bc":"testDepositWithdraw()","e239421d":"Lotthereum(uint256,uint256,uint256,uint256,bytes32)","e239ccba":"Disco()","e23a15b5":"logSigned(string,bytes16)","e23a4916":"getMainLockup()","e23a7785":"approveAndBuy(uint256,address,uint256,bool)","e23a845a":"getExpirationTime()","e23c5063":"getAttributeValue(address,bytes32)","e23caa06":"getLotteryDetailsA(int256)","e23cbad1":"getArkData(uint256)","e23d0996":"getDBallotID(bytes32,uint256)","e23d0b23":"week2Price()","e23da75a":"setTokenApproval(uint256,address)","e23e231f":"TOKENS_NOT_FOR_SALE()","e23e3229":"investorIndex()","e23eaae6":"SmogToken()","e23eb0c5":"_calculateFEE2Distribute()","e23f5e49":"checkLucky(address,uint256,uint256)","e23f61f6":"isCurrentOrPastAdmin(address,address)","e23fc908":"_setBurnFeeAbs(uint256)","e2418c15":"throwsWhenNetworkPlaceholderIsBad()","e241c1d9":"deriveKey(uint256,uint256,uint256)","e241e9c5":"_getUt(address)","e2420bd2":"setTwitterBot(address)","e242df57":"MiracleTeleToken(uint256)","e242fbbb":"addHuman(string,uint8)","e244054a":"trade(bool,bytes,uint256,uint256)","e2442441":"VpaxContract()","e24459ce":"rakugoPresaleAddress()","e2449c13":"createSqr(uint256,address,uint256,uint256)","e244fe89":"addToCommunitySaleWhitelist(address[])","e2454522":"verify(uint8,bytes32,bytes32)","e2457f50":"changeZS(address,address,uint256,uint256)","e24613ea":"getNexOrdertUser(address,address,uint256,address)","e2466cb6":"invalidateAnnouncement(uint256)","e24670eb":"EthToCentsUpdated(uint256)","e246ddba":"icoFinishTime()","e246f71a":"EventAddManager(address,address)","e247a2e2":"updateVolume(uint256)","e248b435":"setCCH_edit_15(string)","e2496d5b":"tokensWeiRaised()","e2499b98":"stakedContentById(bytes32)","e249a575":"setTermsNumber(uint256)","e24a1d1e":"deauthoriseMaker(address)","e24a5042":"transmuted(uint256)","e24b4403":"_emitDeposited(address,uint256,address)","e24b7721":"addressLeskiw()","e24c36d0":"flushEra()","e24cddd6":"getCartLength(address)","e24cf226":"closeEscrow(uint256)","e24f8313":"addReputation(address,uint256)","e24fe110":"Decentralized()","e24fed00":"assertEq(bytes,bytes,string)","e2506eab":"setEMAValue(uint256)","e250ecfe":"Cogenero(uint256,uint256,uint256,address)","e251e358":"preIcoSoftCap()","e25209b6":"roundOneLimit()","e253c21d":"ZBCToken()","e253dd6b":"setBonusRound4(uint256)","e2542f03":"updatePurchasePossible(bool)","e2550156":"smallBlind()","e25520a7":"LocklistAddressdisable(address)","e2558086":"calculateLandmarkPrice(uint256)","e255d5ad":"maxBuyRateInPrecision()","e25665da":"earlyBackersPoolAddress()","e256888f":"PERCENTAGE_PRECISION()","e2573266":"withdrawRC()","e2575e48":"_isMultiple(uint256)","e2576998":"changeMaxCoefPartnerForEmission(uint256)","e2583070":"balanceImportsComplete()","e25876d3":"weiToFinney(uint256)","e258a0f0":"createItem(string,uint256,uint256,uint256[6])","e258aa02":"createPromoRegion(address,string,uint256)","e258be32":"removeBookSigner(bytes16,address)","e259501e":"contributorsWallet()","e2595235":"addPack(uint8,uint128,uint256)","e259d074":"endauctionother(uint256)","e25a2a99":"updateTier(uint256,uint256,uint256)","e25a51b6":"setCompositeReputation(string,uint32)","e25ade5f":"issueTokens(address,uint256,uint256,bool)","e25b5cbd":"STAKE_APR()","e25bc771":"_transferCard(address,uint256,uint256)","e25bd409":"receivePositionOwnership(address,bytes32)","e25c80d0":"_currentIcoPhaseMinimum()","e25c9c33":"getBadgeLevel(bytes32,uint256)","e25d4dac":"mintFund(address,uint256)","e25f0a98":"requestedForMigrationAt()","e25fe175":"step()","e2616387":"MPY(uint256,uint256)","e26176d9":"FundRanking(address)","e261fc63":"UserRank(address)","e2621a66":"HPBToken(address)","e26259a4":"updateMyHns(string,address)","e264172c":"drainETH()","e26422fe":"DaysToDestroy()","e2646a9f":"getICOStage()","e2649caf":"voteToFreezeFund()","e264a2f4":"KIN_PER_USD()","e264fc07":"_buyFillet(address,uint256,bytes)","e2651539":"priceCreatingChannel()","e26534bf":"whaleExchangeRate()","e2659324":"require_email(bool)","e265c5e2":"getTotalTokenWithdrawByAddress(address)","e2664254":"priceDivisor(uint256,uint256)","e26659da":"getAllBaller()","e26693ac":"stakeDice()","e266e5ad":"Mystical()","e267761f":"unmintedGBT()","e267dd9b":"addAgent(uint256,uint256,uint256,address)","e26814d8":"withdrawCoins(address,uint256)","e26835ce":"giveToken(address)","e2684f08":"_isPaused()","e268ea6b":"SOFT_CAP_T()","e269053a":"getNumberOfAssets()","e2693180":"DHANACOIN()","e269f929":"recoverRevokeHash(bytes,bytes,uint256)","e26a687f":"BP_IMMORTAL()","e26ba086":"getTargetInvalidMarketsDivisor()","e26bc039":"numRegisteredModules()","e26c2da9":"TerraToken()","e26c551e":"publishConditions(string)","e26c8434":"AdminStartDraw(string,bytes)","e26dee0e":"IcoExt()","e26e7b50":"calculateCritMassRewards(uint256)","e26e8d84":"FillSellOrder(address,address,uint256,uint256,uint256,uint256,uint256)","e26f0342":"ArrayTypesTest(uint256[10])","e26f21bf":"setHoldPercentage(uint256)","e26fdc12":"equipDown(uint256)","e27008c2":"_createRareCard(address,uint256,uint256,uint256,uint256)","e270398a":"emitJobPosted(uint256,address,uint256,uint256,uint256,bytes32,bool)","e270bc81":"resumeICO(address)","e270f88c":"_getFreezeTime(uint256)","e27131f9":"MintCoin()","e2725161":"calculateOdds(uint8)","e2726e94":"minSumICOStage4USD()","e272b892":"pauseContract(bool)","e2734c93":"getPlayerBalance(address)","e273f117":"SetServiceProviderFee(address,uint256)","e2749799":"GBank(uint256)","e274a3e7":"Papergold()","e274fa4e":"BitcoinXL()","e274fd24":"eventContract()","e2757a50":"PepFarmer()","e275a016":"check_data(string)","e275f296":"transferFromMulti(address[],address[],uint256[])","e27671ff":"hillpayout()","e276729d":"getPeriodStarted(uint256)","e276c799":"getx()","e2775da5":"getMartialOwner()","e2776ab8":"CryptoPhoenixes(address)","e2786d65":"refundSplitMembers()","e278c0f2":"setInvestorsFee(uint256)","e278d283":"getLineUpEnable_pool(address)","e278fe6f":"closeRound()","e2790853":"OX()","e27929b6":"addRecord(bytes32,string,string)","e27a8aca":"addWhiteListedInvestor(address,string)","e27a9c74":"setOwnerName(uint256,string)","e27b73f0":"issueWithExternalFoundation(address,uint256,bytes32)","e27c5b17":"testSlice()","e27da9c6":"current_tier()","e27e3fd3":"CancelGame()","e27ecfcc":"LogStartDate(uint256,uint256)","e27f0236":"agingBalanceOf(address,uint256)","e27f1692":"Bitsonatoken()","e27f3853":"timeFreezeTeamTokens()","e27fe50f":"startAuctions(bytes32[])","e280b58f":"tokenIssuedLockUp()","e280d66b":"updateWonNums(uint256,uint256)","e2812256":"Monarch()","e281d7e4":"CryptoSlotsGame()","e282348c":"w_Founders()","e282726b":"reserveAddr()","e282938d":"founderLockEndTime()","e282969e":"getPerson(uint256,bool)","e282cda6":"calculateBucketId(bytes32[])","e283d1ec":"registerEscrow(string,string)","e2842d79":"getAllUsers()","e28435c4":"ownerETHCashout(address)","e284cbfa":"getAllAdIdsByCat(uint256)","e2861c8d":"cashOutProfit()","e2865b4d":"growCost()","e2868c54":"Airdrop2(uint256)","e2869853":"RefID(string,string)","e2869f70":"setCrowdsaleAndVesting(address,address,address)","e2877e04":"transferFactoryResourceAmount(uint16,address,uint256)","e287adf4":"addSig(address,bytes32)","e2889c82":"setTimeLimit(uint256)","e2894a8a":"OwnerAnnounce(string)","e2896598":"leaderTimestamp()","e289fcb6":"contractActive()","e28a5e63":"sellDeadline1()","e28ab336":"MAX_INVEST_SHARE()","e28b0d9a":"updateFundingEndBlock(uint256)","e28b2b76":"ipoPlatform()","e28b7555":"CapiterContract()","e28d717b":"transferETH()","e28d8c4b":"claimBonusTokens()","e28deda5":"sweepTokenAmount(address,uint256)","e28e6b3a":"masterTotalEarning()","e28fa27d":"setHardcap(uint256)","e28fed1e":"userRescues(address)","e29121de":"ADVISOR_TOKENS()","e2912367":"_getValuePartByPercent(uint256,uint256)","e292c740":"setLargeInvestorWei(uint256)","e2935edb":"getUpgradeCardList(address)","e2948c21":"marketingTeamTokens()","e29532c1":"getDataFromCode(string)","e2954a14":"purchaseSeconds()","e29581aa":"getNodes()","e2958974":"read_transfer_config()","e295c9d6":"getActiveBanners()","e297273a":"getBlockHashOrZero(uint256)","e298287f":"senderAddressIsSecretContract(address)","e2982c21":"payments(address)","e2985596":"angelCardDataContract()","e298d85c":"discountBlock()","e2996879":"HuoNiu()","e299beb3":"SimpleIndex()","e29a2e89":"publishMessage(string,string,string)","e29a82d3":"BigFishRoll()","e29bfe13":"submitWithdrawTransaction(address,uint256)","e29c6a7b":"addYearToken()","e29caee2":"currentStageTokensRate()","e29e1345":"amountPerDay()","e29e1864":"PresaleCapChanged(address,uint256)","e29e3a4c":"artistsArtworkCount()","e29e436a":"setWorldCupTeamDesc(uint256,string)","e29eb836":"totalCollected()","e29f5182":"byte32ToString(bytes32)","e29f610d":"end1Timestamp()","e29f99f0":"tokenAdd()","e29f9da6":"_getrand09()","e29fa4b4":"setOriginalOwner(uint256,address,address)","e29fb547":"scheduleCall(bytes4,uint256,uint256,uint8,uint256)","e2a034dd":"participantsFirst(uint256)","e2a0d56d":"FundsBurned(uint256)","e2a27ca8":"_setBorderValue14(uint256)","e2a288c0":"placeCoin(uint16,uint16)","e2a2adc2":"divisionRoundedUp(uint256,uint256)","e2a3382f":"holdedOf(address)","e2a376ec":"addContributor(address,uint256,uint256,uint256,uint256)","e2a38a4b":"removeTokens(address,address,uint256)","e2a4853a":"setUint(bytes32,uint256)","e2a51b8f":"amountOfParticipants()","e2a5c39f":"revealPeriodStartedTimestamp(bytes32)","e2a71f12":"accountDelete()","e2a8215b":"purchaseTokens(address,uint256,address)","e2a9ba05":"getBoosterDuration(uint256)","e2a9bb53":"CreateBattleCards(uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)","e2a9ca4c":"disableTokenTransfer()","e2aa2dcf":"CryptoPeopleName()","e2aa6003":"gameResult(uint256,uint256,uint256,bool,uint256,uint256)","e2aa6c66":"createPasswordChallenge(bytes20,bytes32)","e2aa99ab":"startCrowdsaleY2(address)","e2ab691d":"lock(address,uint256,uint256)","e2acf75d":"auctionCancel(bytes32)","e2ad0699":"addCertification(address,bytes32,bytes,bytes32)","e2ae0c79":"setParentID(uint256,uint16)","e2ae9de0":"deleteArrayUint(bytes32,uint256)","e2b05077":"getSaleDate(bytes,uint256)","e2b0caef":"when()","e2b13fa0":"ManagerPermissionRevokedEvent(address,string)","e2b178a0":"getAuthority()","e2b202bf":"deleteUint(bytes32)","e2b20a72":"SecretToken()","e2b2579b":"isClean(address)","e2b26323":"proceedToNewStage(int256)","e2b375a9":"transferOwnership2(address)","e2b43e23":"setDepositInterface(address)","e2b4b30d":"getvaluejoinlist_odd(uint256)","e2b4f4b5":"lockedTeamUFT()","e2b770b4":"updateUSDMonthlySalaries(address,uint256,uint256)","e2b7713f":"Midel()","e2b863cf":"calculatePayout(bytes32,uint256)","e2b8766c":"testFailTransferNotTransferable()","e2b91318":"createOptionAndUnderwrite(bool,address,uint128,uint128,address,uint64,uint256)","e2b9e186":"name_()","e2b9e322":"bondsOutstanding(address)","e2ba53f0":"winnerName()","e2ba600e":"starting_giveaway()","e2ba6ce8":"m_KYCProvider()","e2bbb158":"deposit(uint256,uint256)","e2bc1971":"getGamblerGameIds(address)","e2bca77e":"calculatePrizeAmount(uint256,uint256,uint256)","e2bd505b":"setTitulaire_Compte_2(uint256)","e2bd8e43":"CodysToken()","e2c03ace":"itemsCount()","e2c14bdd":"getMapping(bytes32)","e2c1f02c":"buySuperDragon()","e2c1f7d7":"firstCapEndingBlock()","e2c20836":"updateAndGetHodlTotalValue()","e2c2ae5a":"isBuyPrice(uint16)","e2c2d72c":"setChallengeScienceContract(address)","e2c31be6":"icssale(address)","e2c345e2":"originalContract()","e2c38eaf":"findProductIndexById(uint256)","e2c3941a":"DOG_Token()","e2c3f9a8":"RATE_PUBLIC_SALE()","e2c41dbc":"depositFunds()","e2c516be":"icoReceivedWei()","e2c518fa":"lastMovement(address)","e2c5449e":"chanceNo()","e2c61114":"setImportFee(address,uint256)","e2c6d41c":"council()","e2c718d8":"right20(uint256)","e2c76bb0":"SpeculateCoin()","e2c7f7ae":"majorOwnerShares()","e2c86092":"ifoodCommunity()","e2c8a8ad":"contributorPoolMintQuota()","e2c8dd34":"dividendsWallet()","e2c8e54a":"senderIsPosition(address,address)","e2c8f7c8":"ARIWallet()","e2c92a52":"distribute(address,uint256,uint256)","e2c9b07d":"ChangeBillLeasingInfo(uint256,uint256,uint256,bool)","e2c9bc9e":"GenesisTransfersCount()","e2ca01f0":"addNewOrUpdateHolder(uint256,bytes32,bytes32,bytes32)","e2ca481c":"swaps(address,bytes20)","e2cbb9b7":"evCreatedToken(address,uint256,address,uint256)","e2cc20bd":"dealerHit()","e2cc7a51":"signingPrefix()","e2cdd42a":"vote(uint256,address,bool)","e2ce7e67":"read_i16_array()","e2cf8b0d":"createBundle()","e2d07a33":"QYKToken()","e2d0d519":"sendOwnership(address,uint256)","e2d17ab1":"checkGoals()","e2d1da31":"createBuildingOmni(uint32,uint8,uint8,uint8,uint8,uint8,address,bool)","e2d2a868":"autoRefundCrowdsaleContributor(address)","e2d2dcca":"removeMemberAcct(address)","e2d2e219":"dividendsPerShare()","e2d31df4":"getTeamPerfitAmuont()","e2d45f7b":"transferMultipleDelegated(address,address[],uint256[],uint256,uint256,uint256,bytes)","e2d56060":"balanceInWei()","e2d5d11b":"revealCap(uint256,uint256)","e2d6eddc":"get_row_col(uint256,uint256,uint256)","e2d7a7c0":"setAttrCustom(uint256,uint256,uint256,uint256)","e2d7c64c":"darknodeRegisteredAt(address)","e2d84e23":"getLink()","e2daeb9c":"NICTO()","e2dbbf62":"changeIcoDiscountLevels(uint256,uint256)","e2dc35e0":"transferFund(address,uint256)","e2dc5da5":"finishMintingTokens()","e2dc7763":"freeze(address[],bool)","e2dc9aa1":"addTransaction(string,uint64,string)","e2dea715":"getMinerId(address)","e2deaa81":"set_reference(uint256,uint256,uint256)","e2deb962":"signUp(uint256,bytes32)","e2dede94":"getNode(uint256,uint256)","e2df0463":"changeTrancheAdmin(address)","e2df15d6":"setRewardClosed(uint256)","e2df20d1":"setAvailable(bool)","e2df2472":"Aurum()","e2df6c6f":"getBonus3(uint256)","e2e0c049":"UpdateSellAgent(address)","e2e15f2e":"Reward()","e2e1ff4d":"getBallotsNum(address)","e2e267fc":"SintToken(uint256)","e2e29ffe":"assertThat(bool)","e2e2e5cf":"UpdateMinBalance(uint256)","e2e39498":"_verifySignature(bytes,bytes,bytes)","e2e51348":"LogContractCreated(address,uint256)","e2e54288":"getCertificationList(bytes32,bytes32)","e2e5bd42":"setBetBasic(uint256)","e2e5fade":"presaleSales()","e2e616bb":"whiteListEnabled()","e2e68372":"IAM_PER_ETH_PRE_SALE_RATE()","e2e686d0":"safeAdd32(uint32,uint32)","e2e71098":"_FCTOKEN(uint256,string,uint8,string)","e2e794c3":"setPremiumMultiplier(uint8)","e2e79a02":"level2(address,address)","e2e7ab3a":"setEthlanceInvoiceContract(address)","e2e831cf":"genders(uint8)","e2e8b978":"sizeOfUint(uint16)","e2e9e6e8":"updateMaxMinComparables(uint256,uint256,uint256)","e2eb3336":"_performPurchase(uint256,uint256,address,uint256,address)","e2eb91cc":"removeAddressFromOwners(address)","e2ec6ec3":"addAddressesToWhitelist(address[])","e2ecb311":"createEscrow(address,uint256,uint256)","e2ecef03":"boleno()","e2edfc20":"collectAirDropTokenBack(uint256)","e2ee2e89":"isPlayerInRound(uint256,address)","e2ee9941":"tap(bytes20)","e2ef9241":"FawnCoin()","e2f0a05a":"TokenCLC(uint256,string,uint8,string)","e2f1d298":"_addGroupToMember(address,bytes32)","e2f23224":"isEnableBuySell()","e2f273bd":"updateAdmin(address)","e2f2eb27":"NUMBER_OF_BOOSTERS()","e2f31829":"updateStatus(uint256,uint256)","e2f35f17":"teamAccountAddress()","e2f36034":"calculateRevenueAtBlock(uint256)","e2f45eba":"PrettyGirl(uint256,string,string)","e2f60706":"specialPurchase()","e2f60c26":"getMintAuditApproval(address,address)","e2f779f3":"withdrawTokensFromCustody(address,uint256,address,address)","e2f77ae2":"setPriceInExoTokens(uint256,uint32)","e2f8a017":"payInstallment(uint256)","e2f8b790":"buyBlueStarEgg(uint256,uint16)","e2f8fa16":"getPendingTaxData()","e2f8feb2":"internal_tester(int256)","e2f90632":"notTooLongSinceUpdated()","e2fa5398":"pack(uint16,uint64,uint64)","e2fa5fb1":"secondDiscountCap()","e2fa6f90":"_removeTokenFromOwnersList(address,uint256)","e2fa9ee0":"openShop(uint256)","e2faf044":"createDAO(address,uint256,uint256,uint256)","e2fb3d4a":"setReferralSmartContract(address)","e2fc2691":"upvotePost(bytes32)","e2fc421d":"crowdsaleStartTime()","e2fc5d19":"setConfirmations(bytes32,bool,bool)","e2fc6f68":"beneficiaryBalance()","e2fd38e9":"startEvent()","e2fd3c08":"OmVPNToken()","e2fdcc17":"escrow()","e2fdf807":"purchasableTokens()","e2fecdf3":"copy(bytes,uint256,uint256,uint256)","e2ffe3f3":"storageToUint(string)","e3004b57":"depositToken(address,bytes)","e30081a0":"setAddress(address)","e3038aaf":"calcOrderToMsAmount(uint256)","e303a92b":"drawLottery(uint256)","e303cccd":"sellKun(uint256)","e303e81e":"authorizeForTier(uint256,address[])","e30443bc":"setBalance(address,uint256)","e3049b6f":"getFighters(uint32)","e3049ded":"AllyNetworkToken()","e305044f":"disableServiceMode()","e3059cef":"recover(uint8,bytes32,bytes32,address)","e305c210":"getPositionFromBattleboard(uint16,uint8)","e30637d6":"REFF_TOKENS()","e30651b4":"COMMUNITY_CAPPED_VALUE()","e3069e4d":"HTX()","e306f779":"EIP712_DOMAIN_HASH()","e308262a":"kycPassed(address,address)","e3083fb5":"removeFromContribution(uint256)","e308700f":"thresholdEtherLimitForSeedRound()","e308c213":"getBag(uint256)","e30922fc":"isGameLocked(address)","e309396b":"addSchema(string,string)","e3098986":"totalSold_()","e309aa15":"RefundSent(address,uint256)","e309d1b5":"tierTwoRate()","e309f318":"spermlordAddress()","e30addb4":"set_property_layout(uint256,string,string,string)","e30b407e":"payWinningGladiator(uint256,uint256)","e30bd740":"reverse(address)","e30c36f1":"bubbleSort(uint256[])","e30c3978":"pendingOwner()","e30c7b0a":"TronXtended(uint256,uint256)","e30ca7cb":"getBalanceOfContractInSzabo()","e30cfa40":"isExecuted(uint256,uint256)","e30dd27a":"EpsBonus()","e30dfb94":"callAndFailWithoutReason()","e30e3334":"BonusTokens()","e30f4e2b":"addMultipleAddressesToWhitelist(address[])","e30f4f84":"addWhiteBacker(address)","e30f7c8b":"startAirdrop(address[],uint256)","e30fe37a":"setQueryAddress(address)","e310c2ca":"emissionPay(uint256)","e312e00f":"approve(address,uint256,bytes,string)","e3140c51":"PCHAIN()","e31418be":"rateMap(uint256)","e31430c0":"acceptEscrow(address,address,uint256)","e314d852":"mintWithMemo(string,address,uint256)","e3153827":"reading_card_reversed_at(uint8)","e316bd56":"hashMsg(bytes32,address,bytes32,address,uint256,bytes32,string)","e316e9c0":"Issue(uint256,address,uint256,uint256)","e31743d7":"setTransferBlocked(bool)","e31870dc":"mlDevelopers()","e318a74c":"RACEFORETH()","e318b52b":"swapOwner(address,address,address)","e318de73":"getString(address,bytes32)","e3199044":"setGoalsPlayed(uint256,uint256,uint256,bool)","e319b0e2":"advisorsUnlockedAfterCliff()","e31a0292":"getostToken()","e31a7c01":"triggerTransfer(address,address,uint256)","e31a8116":"getMinPrice()","e31a9d92":"lastID()","e31b1aae":"ChangeInterest(uint256,uint256,uint256,bool)","e31bfa00":"next_id()","e31c60e3":"Request(address,uint256)","e31c71c4":"safeToSub(uint256,uint256)","e31d3460":"addused(uint256)","e31d3938":"MINT_INTERVAL_SEC()","e31e0c46":"set_end_block(uint256)","e31e2d6d":"func_0A93()","e31e450d":"checkBoard(uint256)","e31f28ef":"getTransferInfoTime(address,uint256)","e31f3e0c":"startUpgradePoll(address)","e31f4263":"theCamp()","e31ff6c2":"recordOffChainContribute(uint256,address,uint256)","e3206975":"bet_MAX()","e321045a":"_storeSettingDeprecation(uint256,address,address,address,uint256,address)","e321192b":"addTransaction(address,uint256,uint256,string,bytes)","e3218219":"DungeonTokenAuction(uint256)","e321adb3":"_canTransfer(uint256,address)","e3224ac3":"piecesOwned(address)","e32381b6":"kscMintTo(address,uint256,string)","e32497c4":"getArtefactsIds()","e3252a76":"oraclize_randomDS_proofVerify__sessionKeyValidity(bytes,uint256)","e32540b4":"OptionTransfer(address,address,uint256,uint256)","e3256429":"COMPANY_RESERVE_FOR()","e325fb4b":"bonusCap()","e326acbf":"uintFloor(uint256,uint256,uint256)","e326e6ad":"DEFAULT_PRESALES_DURATION()","e32754a0":"MyFreeCoin112(uint256,string,uint8,string)","e327a46f":"breakdown(uint256)","e3280126":"addOrder(string,bool)","e328cc5c":"getActiveArbiters()","e328ef67":"INDInflationVesting()","e3296684":"transferToPie(uint256)","e329e871":"endTime1()","e32a29bb":"burnClosedTokenMultiple(bytes32[])","e32aa56a":"acceptLastMilestone(bytes32)","e32ae93b":"getQueueOpening()","e32af410":"CSClosed(bool)","e32b349a":"JCB()","e32b6325":"releaseForIco(address,uint256)","e32c5f01":"managePID(uint256,uint256)","e32c65f2":"tokensPerWei15()","e32cb7fc":"decimalPlace()","e32d264e":"addDefaultOperatorByTranche(bytes32,address)","e32d5cf8":"setApprovals(address,address,uint256)","e32d76de":"validBeneficiary(address)","e32e68ec":"isNewSchool(uint256)","e32e9f22":"setDeploymentReward(uint256)","e32ecd18":"LEXT()","e32ef3c5":"refereesCount(address)","e33051dd":"setGasPriceLimit(address)","e3306a6f":"CurrentStatus()","e330a737":"setCrowdsaleCloseTimerFor(uint256)","e332dfe9":"Token0901(uint256,string,string)","e3343501":"_playRealOdds(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","e3349637":"addshop(uint256,string,string,string)","e334cd92":"getAstrosLength()","e334f32e":"encodeString(string)","e3350d7c":"setValidKYC()","e3353f3e":"increaseBlockTarget()","e335b5e9":"allocateSupply()","e335e1f8":"LogFundsLocked(address,uint256,uint256)","e33607da":"saleMarket()","e336e01d":"saleQuantity()","e33734fd":"changeProposalDeposit(uint256)","e337db6e":"NANJCOIN()","e337dd35":"SendingBounty(bytes32,uint256)","e337eca6":"TalkBounty(bytes32)","e3380b7e":"joinPillarCore(uint256,uint256,uint8)","e3386a98":"trustedToken()","e338a490":"DEVELOPER_FEE_FRAC_BOT()","e3393a6d":"voting(string)","e3396d2f":"updatePlayersCoin(address)","e339886c":"ADDR_WITHDRAWAL1()","e3399538":"ArithValue()","e33a9ab7":"createOffer(uint16,uint256)","e33b7de3":"totalReleased()","e33b8707":"append(uint256)","e33ba574":"hashSecret(bool,bytes32)","e33bb62a":"BRDCoin()","e33c7ae2":"scheduleTransaction(uint256,uint256,bytes)","e33c9755":"getActionIds(bool,bool,bool)","e33d27e4":"complete_sell_exchange(uint256)","e33d28d7":"vestBalanceOf(address)","e33dafbf":"emitters(bytes4)","e33e59d8":"getInsuranceContracts()","e33e5c5e":"getAddressUInt8(bytes32,bytes32)","e33f6aaf":"getOnBurnAmountValue()","e3407276":"bigModExp(uint256[6])","e340c2fb":"bidETHIncrement()","e340d0d6":"renewDec(uint256,uint256)","e3419202":"redits()","e342c2e6":"investorWhiteList()","e343fea6":"contractPays()","e344606b":"hashtagCommission()","e34486f8":"isActivePoll()","e344ce6b":"updateWhiteLists(address[],bool[])","e3450e13":"lastPlayer()","e34514ba":"getVirtualBalance(address)","e345514c":"CreateTokenToTax(address,uint256)","e345f098":"showLastBidder()","e34639cb":"AllocatedCappedCrowdsale(uint256,address,address,uint256,uint256,uint256,uint256,address,address,address,address,uint256)","e3464b1b":"Drop()","e346b380":"totalPreSale()","e346f79e":"submitTokens(address)","e3470882":"markFirstSaleComplete()","e347a773":"shares(bytes32,bytes32)","e3489a4f":"setII_R1(uint256)","e3495569":"MAX_DISCOUNT()","e3499381":"checkPlayerPayout(address)","e349c313":"addPlayerToBoard(bytes32,bytes32)","e349c7df":"settleUncle(bytes32,bytes32)","e349cb12":"change_name(string)","e349f108":"jokerAddress()","e34a90a7":"distributeBounty()","e34ac873":"avatarTransferState()","e34ad653":"EmissiveToken(address,string,uint8,string,string)","e34b7983":"doPremine()","e34c3896":"FundUpdated(uint256)","e34c8dbf":"distributionDate()","e34da795":"claimTokens4mBTC(address,uint256)","e34dd755":"CrowdsaleAddress()","e34e1700":"StarlightToken()","e34e32c0":"assignOwnership(address)","e34e5786":"test_testableStandardCampaignPayoutToBeneficiary()","e34e7889":"unlistDomain(string)","e34e7cda":"maxRoundDelta()","e34f2a9e":"fundingStartTimestamp()","e34f7137":"_performApprove(address,uint256,address)","e34f947d":"repairCar(bytes17,string,string,uint256)","e34f9dcc":"GCOXPACToken(string,string,uint8,uint256)","e34ffcb8":"changeMinAmount(uint256)","e3500b48":"setResolver()","e35060d9":"RequestEthereumCollect(address)","e350b490":"gameToWinner(uint256)","e3524d36":"getCurrentDiscountPercent()","e3528455":"burnPrimordialTokenFrom(address,uint256)","e3530e9c":"spendFromMultisig(bytes32,uint256,address)","e3539dcc":"LogReceivedETH(address,uint256,uint256)","e3546ac5":"isRatio()","e354a3f2":"freezeAccount(address,bool,string)","e35501be":"activate_admin_commission()","e3552808":"RoboToken(uint256)","e35568cb":"getAvailableTokens()","e355cd4a":"SharkPool()","e35694c0":"callFunction(address,address,uint256,bytes32)","e3577e71":"setPaymentSettings(string,string)","e3579ea5":"publish(string,string,address,uint256)","e3583870":"replaceDecomissioned(address)","e358b0e1":"withdrawPreICOEth()","e358d75a":"getFairymasterReq()","e3599c21":"updateGame(uint8,uint8[],uint32,uint8,uint8)","e359cbbb":"hasEnoughBalance(address,uint256)","e35b37fe":"TRANSFER_COST()","e35b8717":"GolixTokenDistribution(uint256,uint256,uint256,address,address,address)","e35b9699":"Namek()","e35c606b":"JiggsR()","e35c96d4":"NextToken(address)","e35ca326":"cancelOrder(uint80,bool)","e35d3590":"AddSocialAccount(bytes32,bytes32,bytes32)","e35d75a9":"tokensToEthereum_3(uint256,uint256)","e35e6078":"tokenPerUsdDenominator()","e35e6e0c":"setPrice(uint16,uint16,uint8,bytes32,uint256)","e35f0254":"numberOfProposals(string)","e35f4db3":"developer_edit_text_amount(string)","e3602077":"withdrawInWei(address,uint256)","e360736e":"getHistory(string)","e360a49e":"latestUpdate()","e361112a":"isPaying()","e3611578":"testFooKill()","e36255e2":"_checkGeneralRequirements(uint256,uint8,uint8)","e3625dee":"REFERPAYToken()","e362bc9a":"confiscateDeposit()","e362efdc":"getTotalPayout()","e362f168":"CoinAdvisorPreIco(address,address,uint256,uint256)","e362fcaa":"Creditors(address)","e3637435":"supportAccount()","e3643106":"getLatest(uint256,uint256)","e364bd01":"KEOS()","e3650781":"setGasForGR(uint256)","e3651ef3":"fetchRecentSubmittals()","e3659e69":"CNIFCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","e365fd7f":"setMiniPoolEdit_8(string)","e3661586":"confirmManager()","e3669d7c":"Ballot(string,bytes32[])","e3677664":"transferPiece(uint256,address)","e3685ef7":"PocketMoneyContract()","e3686b49":"PopeCoin(uint256,string,uint8,string,address)","e3688d7a":"maxNumMC()","e3692473":"setMockedDate(uint256)","e3699763":"_addAddress(address)","e36a0e6e":"hasPermissionFrom(address)","e36af50d":"betsKeys()","e36b0b37":"stopSale()","e36ba174":"updateMaxCapEthOnce(uint256)","e36c2072":"countCourses()","e36c3f70":"BENEFITToken(uint256,uint256,uint256,uint256,uint256)","e36d036c":"mintPresale(uint256,address)","e36d3844":"CardCreated(address,uint256,uint256,uint256)","e36d392c":"DeliverInfo(uint64,uint256,uint256,uint256,uint256,bytes32,uint64,bytes32)","e36d3a43":"SENDING_BLOCK()","e36db785":"creditor()","e36dd1f9":"withdrawalMoneyBack()","e36e1051":"setcardsalemoney(uint256,uint256)","e36e5d18":"showTopsPlayer()","e36f3177":"maxIssuingSupply()","e36f3e7c":"getAddressDescription(address)","e3710599":"SendTokens(string)","e371817e":"calculateTokenAmount(uint256,address)","e371c0e6":"transferPermissions(address,uint256)","e371cdd4":"luke(uint256,string,string)","e371dfdb":"allFamily(uint256,address)","e372d0eb":"ownersOfArea(uint256,uint256,uint256,uint256)","e37362ab":"NRB_Main()","e37426d4":"StopCrowdsale()","e374e8d4":"isMyWalletLocked_Receive()","e375dfed":"StarbaseCrowdsale(address,address)","e377ac31":"legal()","e3787c61":"TestContract(string)","e378f045":"window0TokenCreationCap()","e37a7fff":"newPlayer(uint256,uint256)","e37aa618":"distributeValue()","e37aca99":"BOXICOIN()","e37b346d":"redistribution()","e37b71ce":"getFundTX(address,uint256)","e37bddc3":"changeEnd(uint256)","e37c6cf8":"redeemDisavowedTokens(address)","e37c8613":"balanceOfPendingToken(address)","e37ccac7":"getSuperseded(address)","e37cd202":"getBonusRate(uint256)","e37d46bd":"myDivs()","e37d4fed":"withdrawToFounders(uint256)","e37d883a":"NumbersToken()","e37e26cc":"_buyFromMarket(uint256,bool,uint256)","e37e60d1":"testControlRetractNotOwner()","e37e7d1a":"init(address,uint256[],uint256,uint8)","e380575a":"presaleFundsRaisedInWei()","e380ae96":"setNow(uint256)","e380b7bd":"balanceOfToken(address,uint256)","e38138a2":"startPurchaseTokens()","e38180ec":"addToPayeeBalance(address,address,uint256)","e381a8d9":"StegoCoin()","e38296e4":"changeDelegate(address)","e382b854":"_setPackedTimestamp(bytes20,uint256)","e382c3e6":"getPeriodBonus()","e382fe45":"deathData_v4()","e383da38":"totalAffiliateTokensSent()","e3843f6e":"myLoseShare()","e3844a61":"isBetPossible(bool)","e3848e5b":"thing(string,string,string)","e385b43a":"DistributionNextPos()","e385f7d2":"SendResult(uint64,bytes18,bytes32,bytes11)","e3877391":"DDJETHToken()","e3877acd":"frozenDaysForAdvisor()","e38787aa":"internalBurnTokens(address,uint256)","e387d31a":"estateRegistry()","e388cbb9":"swpFundDeposit()","e389b63f":"transfer(address,uint256,bytes,string,uint256)","e38bc1f0":"timeThatFinishGuaranteedPeriod()","e38c35b6":"getLockedUserBalance(bytes32)","e38c4585":"JointICOContractAddress()","e38c9825":"maxgame()","e38cc06b":"testDiv()","e38d0fbd":"FirstTradingEcosystem()","e38d6b5c":"maxPrice()","e38d7e99":"_next_id()","e38da1a1":"storeDoi(bytes32,bytes32)","e38e2cfb":"step(uint16)","e38f4861":"initLock()","e38fbdf6":"addBoundary(address)","e38ff5dc":"updateInvestor()","e39062f5":"MDTKAirdrop(address,address)","e3906b3d":"mintNextCard()","e390e263":"disableWhiteListForever()","e3914699":"dEthereumlotteryNetWinners(address)","e391a7c4":"revokeSignaturePreSigned(bytes,bytes,uint256)","e391b3d1":"ssword(string)","e391bda5":"transferImpl(address,address,uint256)","e39253e6":"SampleToken(uint256,string,uint8,string)","e392a521":"indexPrice(uint8)","e3945eba":"planetLife(uint256,uint256,uint256)","e395983a":"bountyTokensBatch(address[],uint256[])","e39608af":"ETUToken(string,string,uint256,uint256)","e3961174":"tokensCreationCap()","e3964b8c":"ERC20Token(string,string,uint8,uint256,address)","e3967d6a":"currentTimeBonus()","e3967eed":"totalUserNumber()","e396bd60":"LogEscrowWeiReq(uint256)","e396da73":"checkProof(bytes32,bytes32[],uint256)","e3973b5a":"NiteshToken()","e397dfd1":"updatetoken(uint256,string,string,uint256)","e39898d1":"checkSaleValid()","e399331b":"coinAllocation()","e3994993":"addDiary(string)","e399cb0d":"initializeCappedFundraiser(uint256)","e399daab":"zoomraffleFee()","e39a686c":"ChainBackedOption()","e39b2284":"ZEONPrivateSale(address,address,address,uint256,uint256)","e39b40d8":"_createCard(string,uint256,address,address,bool)","e39bbf68":"dividedBy(uint256,uint256)","e39bdfab":"getCutie(uint40)","e39c6d80":"batchTransfer(address,uint256[],uint256[])","e39c742a":"_caluLocktime(uint8)","e39cbe80":"senderAdminAndSaleNotFinal()","e39d2a98":"nextCommonTTMTokenId2()","e39dcc21":"blah()","e39ebde9":"FOLIToken()","e39fa059":"queryRandomCallback(bytes32,string,bytes)","e39fbd88":"tokensDispensed()","e39fff72":"Divs()","e3a0a148":"giveOwnership(address)","e3a0de36":"admin(string,string,string,string)","e3a12480":"getBalance(uint8)","e3a135b9":"_bid(uint256,uint256,uint256,uint256,address)","e3a199d6":"testThrowCreateNewRevisionNotUpdatable()","e3a2a327":"SmartCityCrowdsale(address,address,address,uint256)","e3a37ea2":"newIndex(bytes32)","e3a47b00":"standing()","e3a531a3":"setSaleAuctionContractAddress(address)","e3a70ec1":"max_goal_amount()","e3a71e32":"deliverBonusTokens(address[])","e3a75485":"TORUE()","e3a797f1":"getCandidateMemberInfo(uint256)","e3a79840":"finishPresale(uint256,uint256)","e3a7f45a":"ecrecoverWrapper(bytes32,uint8,bytes32,bytes32)","e3a83290":"SALE_address()","e3a861a4":"setCrydrView(address,string)","e3a87f8b":"secondPrivateReleaseTime()","e3a8b13a":"core(uint256,uint256,address,uint256,string,uint256)","e3a8b345":"emptyContract()","e3a8e29c":"addBorrower(address)","e3a8e50b":"Subscription(bytes,address,bytes)","e3a94e9f":"addPacksToStandardSale(uint32[])","e3a9744b":"mintTokens(int256,uint256,address,bool)","e3a97893":"secondPresaleEnd()","e3a99d2b":"updata(uint256,uint256)","e3a9b508":"EnableDisableTokenProxy()","e3a9db1a":"depositsOf(address)","e3aa018e":"setRank(address,uint256)","e3aa3c6e":"initialBonuslistTokens()","e3aa3fbb":"startEscrow(string,uint256,uint64)","e3aa62b1":"responsavel()","e3aae11b":"isStartGame()","e3ab8492":"requestGWAPrice(string)","e3abeaf3":"setAllowedTransferTo(address,bool)","e3ac3880":"backupfarmItems(address[],uint256[])","e3ac5d26":"prize()","e3ac8e16":"setFinalizationTime(uint256)","e3acc49a":"catIndexToPriceException(uint256)","e3adf4ea":"ChangeICOEnd(uint256)","e3ae1667":"commRate()","e3ae85f0":"winReward()","e3aec30c":"ballotStarted()","e3aeedc4":"lastMintedTokens()","e3aef2bd":"checkUnlockedTokensData()","e3af2ed9":"TWToken()","e3b08f56":"concatYearMonth(uint16,uint8)","e3b09a85":"HungrCoin()","e3b10447":"GITToken()","e3b2594f":"fundingCap()","e3b26a8c":"SocialNetwork()","e3b3847c":"SubmitProofOfOwnership(bytes32)","e3b3932a":"bookKeeper()","e3b45ab7":"MIN_TOKEN_AMOUNT()","e3b460c9":"hookOperator()","e3b49a03":"rollSystem(uint256)","e3b55276":"AdminBuyForSomeone(uint16,address)","e3b5a153":"lastEpochTX()","e3b6040e":"amountSlicesCount()","e3b61135":"reinvestProfit()","e3b62158":"TokenVault(address)","e3b71ded":"setMaxContributionCrowdsaleAddress(address)","e3b7b668":"_setMaxDailyPerUser(uint256)","e3ba3398":"importTokens(address)","e3ba80d0":"purchaseImpl(uint16,uint64,address)","e3bb01ac":"viewCancelledList(address)","e3bb3445":"releaseSupply(uint256,uint256)","e3bbab85":"test_smallDeviationPermitted()","e3bbb4f1":"MAX_GAS_PRICE()","e3bc2bb5":"newPassword(string,uint256)","e3bd9638":"getContract(address,address,uint256)","e3bea282":"callnotchecked()","e3bfdcfe":"pollBurnInc()","e3c04c32":"getNota(uint256)","e3c08adf":"getPlayerLAff(uint256)","e3c10714":"setMinContrib(uint256)","e3c2e4b9":"_setCreatedBlockOnCommitsPhase(uint256,address,bool)","e3c33a9b":"hasRole(string)","e3c3ec92":"BONUS_REWARD()","e3c3f180":"_setPurchasePremiumRate(uint128)","e3c4b1ae":"minSumICOStage2USD()","e3c517a9":"lockFlag()","e3c5862b":"setCAO(uint256,uint256,uint256,uint256,uint256,uint256)","e3c5a852":"buyTickets(uint256[],uint256,uint256)","e3c5d11a":"MIN_BUY_TOKENS()","e3c6e66d":"discountedIcoStartBlock()","e3c73d32":"minimumPriceCount()","e3c79a20":"enterOnBehalfOf(uint256[],uint256,address)","e3c82106":"becomeDuke(string,string)","e3ca12c6":"sendtoB(uint256)","e3cafbb0":"TOKEN_EARLYSUPPORTERS()","e3cb0cf0":"maxTransferPerTimeframe()","e3cb49f9":"setBlockingState(address,uint256,uint256)","e3cb8563":"playToken()","e3cbe744":"updatePlayersCoinByOut(address)","e3cc3570":"mintMigrationTokens(int256,address,uint256)","e3cc65e2":"getInvestorsLength()","e3cc83cf":"withdrawWhenFinished(address)","e3ccb809":"voteOnProposal(bool)","e3cd30f6":"getBuilding(uint8[176],uint8,uint8)","e3cd7c03":"getPass(address)","e3ce9714":"proxyWithdraw(address,uint256,uint8,bytes32,bytes32)","e3ceb06d":"YesNo(bytes32,address,string,address,uint256)","e3cf1ad3":"changeRegistrationStatus(address,uint256)","e3cf6644":"sendKmPards()","e3cfef60":"timeRemaining()","e3cff634":"test(uint32)","e3d021d5":"purchaseTicket(uint16[])","e3d0252b":"defaultTriggerTime()","e3d0799c":"PLATFORM_FEE_PER_10000()","e3d0be5c":"EARLY_INV_BONUS()","e3d1072c":"Giveafuck()","e3d13592":"newTechSupport()","e3d1e6d6":"hasProof(bytes32)","e3d2a98c":"setCurrentFundingGoal(uint256)","e3d2c1bf":"presaleTokensPerDollar()","e3d33fc9":"transferCount()","e3d3f4cd":"bidGift(uint256,address)","e3d4187f":"Buy(address,uint256)","e3d5d88b":"getServerBuildingName(uint256,uint8,uint8)","e3d5e6a3":"year2Unlock()","e3d670d7":"balance(address)","e3d6ce2b":"addFiatTransaction(string,int256)","e3d6e4a3":"setFundsCreditBitContract(address)","e3d74457":"releaseTimeFirst()","e3d7f159":"FIRST_TIER_DISCOUNT()","e3d86998":"declareNewerVersion()","e3d91ebf":"bonusPoolsOf(address)","e3d9e8ea":"drawnArbiter(address,uint256)","e3da41b5":"sortWinningNumbers(uint8[5])","e3da5399":"left90(uint256)","e3da9f8f":"tranchesOf(address)","e3dac959":"makeTapTop()","e3db17b8":"updateContract(address)","e3db6670":"isHardCapTokensReached()","e3dbaff1":"tokensSpent()","e3dbda67":"setArtistsControlAddress(uint256,address,address)","e3dcd2c8":"maxPaymentInEther()","e3dd164e":"setNewTokenImporter(address)","e3de18b2":"withdrawMyClosedDeposits()","e3dea4b7":"setMcrAmountForGas(uint256)","e3debbbe":"getSubscriptionServiceID(bytes32)","e3e06c45":"PayPayCoin()","e3e10762":"calculateIdeaBuySimple(uint256)","e3e1dcb3":"getRouteNameByIndex(uint256)","e3e2342f":"callTokenHolderTribunal(string)","e3e28bab":"setTimes(uint256[],uint256[])","e3e2b1ba":"add_number(uint256)","e3e4001b":"buyWithReward(address)","e3e42b0c":"ZenAD()","e3e4a1b4":"burnUserTokens(uint256)","e3e4b9fb":"claimJob(uint256)","e3e5075c":"depositBattleValue(address)","e3e5439c":"specDWallet()","e3e54ac2":"CarDeregistrationFaled(uint256)","e3e5c9c1":"WhiteListBonusTokensEmitted(address,uint256)","e3e7399e":"addWinner(address,bytes4,uint256)","e3e7519c":"getTokenPriceforDapp()","e3e77055":"MultipleTokenVesting(uint256,uint256,uint256,address,uint256)","e3e7903f":"updateScore(address)","e3e7b439":"cryptoWillToken()","e3e7c665":"makeMoney()","e3e7d4f4":"leaderboardEntries(uint256)","e3e88734":"SigUser(address)","e3e9800d":"_cancelSellOfferInternal(uint32,bool)","e3e98cad":"COSSToken()","e3e9bc3f":"becomeSponsor()","e3e9cb4c":"Birth(address,uint256)","e3ea6496":"newCarProductID()","e3ea67d4":"STARTING_TURTLES()","e3eba060":"allowedToSpend(address,address)","e3ec0251":"subtraction()","e3ec0666":"clearJackpotParticipants()","e3ec5046":"DECIMALCOUNT()","e3ec7584":"showTokensUnfreezeDate(address)","e3ecbd7e":"isEditionEnabled(uint256)","e3ed14db":"getDiamond(uint256)","e3ed48a4":"getTokenScope(uint256)","e3edbfd3":"getAmountDue(address)","e3f037d8":"FlightDelayUnderwrite(address)","e3f0920a":"coinMaster()","e3f0b761":"walletF()","e3f0dd48":"getMult(bytes32,bytes32,uint256)","e3f10188":"updateFlagCount(address,address,uint256)","e3f16a61":"GRPlaceholder(address,address)","e3f25f01":"_delegateforward(address)","e3f2e4a4":"ante()","e3f310c7":"priceToSpend(uint256)","e3f38dd6":"GetSignVersion(string,address,uint256)","e3f4937f":"outOverRoundId()","e3f4ffdc":"GeezerToken()","e3f5009f":"payWithMileagePoint(uint256)","e3f508f5":"setLeaf(uint256,uint256)","e3f52c99":"warrior()","e3f563f6":"generateCompoundTerms(uint256)","e3f596a4":"ownerPrice()","e3f61948":"getStartIndex(uint64)","e3f688d3":"ThingschainToken(address)","e3f6b544":"member()","e3f7faaf":"calculatePrice(uint256,uint16)","e3f954be":"buyICOTokens()","e3f96400":"getTotalOwnerAccounts()","e3f9ba0e":"returnEth()","e3f9cd17":"lockTokenForExchange(address)","e3fa5882":"tryWithdraw(uint256)","e3fc03a8":"Guess(address,uint256,int256,int256,uint256)","e3fc43b2":"ended(bool)","e3fcbac1":"getSharesPercentage(address)","e3fcf122":"_sctc(uint256,uint256,uint256,uint256,address)","e3fe0317":"_setAllocationFee(bytes32,uint256)","e3fe48a1":"loadWhiteList(address[],bytes32[])","e3fe6a9e":"sehrRaised()","e3fe9740":"icoThresholdReached()","e3ff2f05":"weiExchangeRate()","e3ff9ac2":"MACHToken()","e3ffc9a3":"sendEtherToOwner()","e3ffcb84":"loserOf(uint256,uint256)","e3ffefe3":"ZeroReturnProfit()","e4002b30":"commitEuro()","e4007949":"buyRegistration()","e4019e07":"BOB()","e40205d6":"roundEndTime()","e4020804":"isHealthy()","e4024194":"returnedData()","e4027126":"mSumRawSpeed()","e40418a0":"trustedContractAddr()","e4043b37":"updateProduct(uint256,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","e4048049":"createBool(bytes32,bool)","e4062df5":"SkychainToken()","e4063140":"getAllActivity(uint256)","e40652e3":"creatUserPurchase(address,string)","e4065c4c":"Alias()","e406bb4b":"minedTokenCount()","e407ccb9":"Repayment(uint256)","e40819af":"lastTokenCreated()","e4083daf":"create_game_invite(bytes32,address,uint32,uint32,uint8,uint16,uint8,address,uint256)","e408de80":"buyInWithAllBalanced()","e40906ed":"getBorrowBasicInfo(uint256)","e4098655":"getCallCalledAtBlock(bytes32)","e409edf1":"chooseWinnerDeadline()","e40a72d4":"_internalToken()","e40a7545":"collectBuyFee(uint256,address)","e40a955c":"grantTeamTokens(address)","e40b4523":"activateVault(address,uint256,uint256,uint256,uint256)","e40c231e":"StoneToken()","e40d3692":"contributedAmountOf(address)","e40d835e":"getPositionIdFromNonce(uint256)","e40d8fc3":"addICOEndDate(uint256)","e40dd35b":"isGameApproved(address)","e40e56d3":"regular_coins()","e40e8457":"requestBurnerContract()","e4105ed5":"setToken(uint8,address)","e410a0c6":"setup(address,uint16)","e4115a8c":"ApcrdaZebichain()","e4120220":"getTokenTrust(address)","e412828a":"Shark()","e412c526":"set_pre_kyc_bonus_numerator(address,uint256)","e415f4ee":"_addDai(uint256,address)","e4160e48":"admin_active_withdrawable()","e4165e15":"ownerDeactivateToken()","e416d173":"PreICO(uint256,uint256,address,address,uint256)","e416f6b4":"_startRound()","e416faa0":"getBetNum()","e4171746":"major_partner_address()","e417291b":"undelegateDAOTokens(uint256)","e41765de":"addBotAddress(address)","e417c38c":"Reward(address,uint256,uint256,uint256)","e417c62c":"ProofFund(address)","e4187d02":"multiplyDecimal(uint256,uint256)","e418f592":"receiveToken(address,uint256,bytes)","e419f189":"multiAccessIsOwner(address)","e41adb25":"PoolPreICO()","e41b1d28":"noAccountedWithdraw()","e41c02c9":"determineFirstPeriodOutcome(uint256)","e41cc093":"getItemStore(bytes12)","e41d0944":"acceptDonate()","e41d65e0":"payWinnerManually()","e41eaa41":"fakeNow()","e41ee46a":"MAX_QUANTITY()","e41f7dc1":"ethPriceProvider()","e41fb842":"comunityMintedTokens()","e420264a":"g(uint256)","e420a904":"FirstToken()","e420dcc5":"tokenDrian()","e4218416":"redemptionPayouts(uint256)","e422d6b8":"createRareCard(uint256,uint256,uint256)","e422ebe9":"getBot()","e422f311":"secondWeekEndTime()","e422f699":"toBE(uint256)","e4232069":"MAX_INPUT_USERS_COUNT()","e4246ad2":"canContractExchange(address)","e4246ba0":"setPaymentContract(uint8,address)","e4251361":"getTodayInvestment()","e4254585":"MFNToken()","e4274453":"PUBLIC_CROWDSALE_SOFT_CAP()","e4277f78":"backToOldOwner()","e427a197":"previousMinters(address)","e428ad8a":"ReferralReward(uint256)","e428fd5f":"takeBackMoney()","e42996d1":"redeemCoinsToICO(uint256)","e429bd8b":"getUsableAmount(address,address)","e429cef1":"addAuditor(address)","e42a4556":"KKTokenNew()","e42a8bc9":"dAddBallot(bytes32,uint256,uint256)","e42a9156":"AppleproToken()","e42a96e7":"escrowContract()","e42b0193":"test_insert_findWithHintNextIncreased(int256)","e42bb93f":"StarUniteChain(uint256,string,uint8,string)","e42bff66":"mintBadge(address,uint256)","e42c04f4":"Cryptshopper()","e42c08f2":"tokenBalanceOf(address)","e42c1337":"getSalary(string)","e42c1b76":"BountyActivated(uint256,address)","e42cb9f3":"statement()","e42d5be0":"getPaymentOf(address)","e42d674d":"refundIco()","e42d6efa":"unregisterUsers(address[])","e42d70ba":"safeAddCheck(uint256,uint256)","e42def21":"CryptoHill()","e42f4cc0":"addPersonalInfo(address,string,string,string,string,string,string,string)","e4309307":"fortifyClaims(uint16[],uint256,bool)","e430bb5b":"getFreeCoins()","e4310205":"addMastercardUser(address)","e431af36":"_addMember(address,uint256)","e431d241":"validateAndRegisterClaim(address,bytes32,uint8,bytes32,bytes32)","e4322464":"MatchBettingFactory(address)","e43252d7":"addToWhitelist(address)","e432f0e5":"queryOracle(string)","e4330545":"dump()","e433bb3a":"HAVY()","e4340e6a":"Wallet5()","e435f2c9":"takeOwnershipMultiple(uint256[])","e4360fc8":"getFileListElement(bytes)","e43650b6":"changeILFManager(address,bytes32)","e436a3f7":"getRoot2_16(uint256)","e436bdf3":"Draws(uint256)","e4372d0f":"setRestrictedAcct(address,uint256)","e437d1a7":"unRedeem(uint256)","e437d815":"getDsitributeMulti(address[],uint256[])","e438ff55":"changeINAWallet(address)","e43926fb":"refundTokenToCustomer(address,uint256)","e439501e":"AntmineToken()","e4397db1":"getBetsState()","e43a0bb2":"pullFunds()","e43a8897":"DonatedBanner()","e43aa5ff":"Medban()","e43ac447":"DirectConnectionFactory()","e43ae642":"deleteDIDHolderWhenBalanceZero(address)","e43b72b4":"discountedInvestors(address)","e43ba0bd":"isStrategy(bytes15)","e43bb0f6":"link(uint256,address,address)","e43bc1e9":"functionName3(bytes32)","e43c74a4":"BRoyalCoin()","e43cd900":"PoolBounty()","e43d68ce":"GetBanker(uint8)","e43dfebf":"burningTokens()","e43f696e":"setWhiteList(address[],bool)","e43f8424":"burnGoldTokens(address,uint256)","e4403507":"tokenContractBalance()","e44171b1":"Arina_amount_judgment(uint8,uint256)","e4424c9e":"createNew(bytes32,address)","e443253a":"DataFromSetting(uint8)","e443348e":"ONE_TOKEN()","e4440a86":"marketWallet()","e4444feb":"removeAllowedAddress(address,address)","e444504c":"nextClaim()","e44451ba":"removeAddressFromAdminlist(address)","e444a2e1":"_birthPerson(string,string,uint64,bool,bool)","e44501c4":"inactive_dividend(address)","e4454fdc":"GetMaxStageEthAmount()","e44591f0":"isNonFungible(uint256)","e4480dd8":"withdrawl(uint256)","e448ee26":"joinChallenge(uint256)","e4492fcd":"TokensPerETH()","e4495b15":"confirmSetIssuer()","e449c52a":"getStr(string)","e449de9f":"prevContract()","e44a94d3":"minContributionPresale()","e44ac1e4":"addLock(address[])","e44b974f":"placeBet(uint8,uint256,uint256,uint8,bytes32,bytes32)","e44bc43f":"stepOneRate()","e44c333a":"DreamTeam()","e44c96c9":"addInitialOwners(address[])","e44caea6":"balances3(uint256)","e44d3084":"testFailure()","e44d311b":"ticketPrices(uint256)","e44d6f04":"beatTeamWallet()","e44dbb75":"addAddressListItem(uint256,address)","e44de421":"buyTokenFrom(address,address,uint256)","e44f777c":"returnETHforUnqualifiedBuyers(uint256,uint256)","e450056c":"tokenPartition(uint256)","e4503da4":"startPhaseMaximumcontribution()","e4504f62":"dogCore()","e451197a":"OrdoCoin()","e451ecfa":"swapTokenValueForCredits(address,address,uint256,address,string,uint256,uint8,address)","e45285cf":"setAIRDROPBounce(uint256)","e4536316":"removeARA(address)","e4536b84":"BalanceReader()","e453877e":"_approveTransfer(uint256)","e4538c6c":"addUndergraduateTo(address,string,string,string,uint8,uint8,uint8,uint8,uint8,uint8,uint32,uint32)","e454158c":"futureSaleAllocation()","e4543410":"setIncrementPercentage(uint256)","e4547443":"releaseTimeLock(address,uint256)","e4547f98":"documentExists(bytes)","e45499c1":"updatePriceOfToken(uint256)","e4556f2d":"MaturityPrice(uint256,uint32,bool,bool,bool)","e455d26c":"getCurrentNeedsCount()","e455fce7":"extractOversightAddressesIndexLength()","e4560388":"endTimeMain()","e45648ac":"exchangeOldVersion()","e4564a4a":"returnAddressBonuses()","e4569c4e":"eeeeeeeeeeee()","e4578590":"SplitPaymentMock(address[],uint256[])","e457e1e5":"charge(uint256)","e458c754":"whitelists(uint8,address)","e45a4fb4":"isMultipleOf(uint256,uint256)","e45a93cc":"GIT()","e45aa608":"tokensForfortis()","e45ab391":"Technology5G(address)","e45b1d1b":"openClosedToken()","e45b7388":"subscribers_TO_HATCH_1CraigGrant()","e45b8134":"transfersFrozen()","e45bc0ae":"dollcoin()","e45be8eb":"minPrice()","e45bf7a6":"forwardTo()","e45c1879":"getAuctionsCount()","e45c210c":"LogFunderInitialized(address,string,uint256)","e45c47b9":"SetPermissionsList(address,address,uint8)","e45ce7e3":"refillTxFeeMinimum()","e45ceec1":"getUnreadMessages(address)","e45d0550":"getAddressArray(address,string,string)","e45d4717":"withdrawLogic(bytes32,uint256,uint256,uint256[])","e45da0be":"freezeAddress()","e45dbabd":"addAddressesToWhitelist(uint256,address[])","e45ebe93":"checkVoteStatus()","e45ef4ad":"bobClaimsPayment(bytes32,uint256,address,address,bytes20)","e45fc71f":"getPeriodCycle(uint256)","e460382c":"importBalanceBatch(address[])","e4614066":"MelonToken(address,address,uint256,uint256)","e46164c5":"waitingForPayout()","e4626c8f":"like(address,uint256)","e462c888":"createEscrowByBuyer(address,uint256)","e463b659":"EtownCoinTest(uint256,string,uint8,string)","e463fa6b":"AddWhitelist(address)","e464dcc8":"userHasLuckyStone(address)","e4651465":"addEthTeller(address,uint256)","e46523f2":"_isNeighbor(uint8,uint8)","e46537ba":"JJCOIN()","e465c465":"like(address)","e46617b6":"releaseMultiAccounts(address[],address)","e4662939":"CLBToken()","e46638e6":"canTransfer(address,address,uint256)","e46694e8":"lastStakePriceUSCents()","e46751e3":"exp(int256)","e467f7e0":"mint(address[],uint256[])","e4682f00":"cancelSpendLimit(uint256)","e4683a79":"refund(bytes32,bytes32)","e4684d8f":"AXNETToken()","e468688e":"addTotalSupply(uint256)","e46871f1":"governingLaw()","e468cb72":"FUTM()","e468dc16":"Testokenmaking()","e4690a0b":"popRequest()","e469185a":"updateReserveRatio(uint8)","e4693e98":"endFundingTime()","e4698ee7":"start5Phase2020()","e46a5c21":"getArmyBattles(uint256)","e46c2cc4":"bytarr28(bytes28[])","e46d1939":"napoleonXAdministrator()","e46d6cb1":"canChangeRecoveryAddress(uint256)","e46da1b9":"MeiJiuToken(uint256,string,uint8,string)","e46dcfeb":"initWallet(address[],uint256,uint256)","e46dea92":"BlockChainPay()","e46f20dc":"getTransferHash(address,uint256,address,address,uint256,uint256)","e46f9ecf":"enableCodeExport()","e46fbe76":"burnSomeEther()","e46feb2c":"orgy1f(string,string)","e4706e3a":"TokenRateChange(uint256)","e470ddf8":"totalKittiesBurned()","e47112bd":"sendTokens()","e471a5b9":"putIntoPackage(uint256,uint256,address)","e471d770":"StopTheFakesPromo()","e472311b":"handleHTLCUpdateTx(address,bytes32,bytes32)","e4723828":"TestMath()","e4725ba1":"accept(bytes32)","e4745970":"transfer(uint256,address,string)","e474777e":"applyForCertification(string,string,bool,string,address,string,string)","e474f97a":"setPreicoAddress(address,uint256)","e4752159":"DigitusToken()","e475222e":"activeGames()","e476137b":"windUp()","e476af5c":"revokeAttributeSigned(address,uint8,bytes32,bytes32,bytes32,bytes)","e476cb86":"_mintTokens(address,uint256)","e4772ae3":"getDailyCount(address)","e4779d73":"register_user(address)","e4788384":"CancelAuction(address,uint256,uint256,uint256,uint64,uint256,address)","e478b578":"ProofofConcept()","e47a192e":"FactomIssued()","e47a6a9f":"disbursementPeriod()","e47bc32b":"ShanHuCoin()","e47c0c20":"GetCityData(address)","e47c5902":"ecverify(bytes32,bytes)","e47ca4eb":"LogNewAnswer(bytes32,bytes32,bytes32,address,uint256,uint256,bool)","e47cb18f":"PointToken(uint256,string,string,uint256)","e47d8085":"isCurrentUser(address)","e47d914a":"fechVoteInfoForVoter()","e47da59e":"consumeTicket(address,string,uint256)","e47dace5":"totalLenderBalance()","e47dea1d":"setWithdraw(address)","e47e1c0b":"getAssetIds()","e47e7e66":"ask(uint256)","e47ea649":"isICOfinalized()","e47f0d64":"list_products()","e47f18d0":"CryptoTorchToken()","e47ffb64":"setSoft_Cap(uint256)","e480ba6a":"isDailySettlementOnGoing()","e4818a5d":"totalUnreleasedTokens()","e4818e4b":"secondPeriod()","e481c884":"ACFWallet()","e481ebf0":"getOwnedActiveEntry(uint256)","e48225ce":"startStakingAt(uint256)","e4828367":"buyEther(uint256)","e48341db":"getUpdateCount(bytes32)","e4845c2f":"Sperm()","e4849b32":"sell(uint256)","e4852b9b":"transferAccount(address)","e4860339":"tokens(address)","e486387a":"ReferenceToken(string,string,uint256)","e486869b":"setstoredaddress(address,address)","e487624b":"EarnedGNS(address,uint256)","e487c88b":"CROWDSALE_UNVERIFIED_USER_CAP()","e487e87b":"activateICOStatus()","e487eb58":"getOwner(bytes20)","e487fdb6":"participant1SentTokensCount()","e4881813":"cat()","e489c5ff":"haltIco()","e489d510":"MAX_TOKEN_SUPPLY()","e489fc68":"NdexSupply()","e48a1d60":"assertPaymentIndexInRange(uint256)","e48a4a29":"mayjaKill()","e48c09fe":"getFiltersLength()","e48c3c5c":"lockInDays()","e48cf65f":"_setClassViewValue2(uint256)","e48d81a8":"multisigwallet()","e48db5d4":"ProofVote(address)","e48e0d69":"ownerRetrieveTokenDetails()","e48e603f":"right54(uint256)","e49013b3":"jigoutuihuan(address,uint256)","e490c513":"getEntityState(bytes32)","e49168f3":"whichEpoch(uint256)","e4917fd2":"provenAddresseList(address[],bool)","e491936f":"getDisputeTX(uint256)","e49280cb":"close(address,uint256)","e4928550":"daylimit()","e4929aa4":"FCC(address)","e4932abe":"INC()","e493ef8c":"Q()","e4942930":"SetMinLot(uint256)","e4952ddb":"transferDataOwnership(address)","e495f08e":"getHouseInfo(bytes32)","e495faf4":"bonusesPayed()","e496f510":"oraclize_query(uint256,string,bytes[3],uint256)","e4983e27":"HEOContract()","e498922f":"getExp(uint256)","e498b98f":"setRedeemRequestLimit(uint256)","e498f5de":"FrozenFunds(address,bool,uint256)","e4995a1d":"ProdTokensale()","e4997dc5":"removeBlackList(address)","e4998173":"blockHalving(uint256)","e499f542":"distribute_reward(uint256,uint256)","e49b4c64":"ownerModAdmin(address,bool)","e49b606c":"claimWinnings(bytes32)","e49c9529":"underwrite(uint256,uint256[6],bytes)","e49cc6a9":"getUserBalancesLastBet()","e49dcee9":"fixTokens()","e49f6e91":"editContact(address,string)","e49fdaa8":"setClaimLimit(address,address,uint256)","e4a008a0":"cancelEthOffer()","e4a05c1f":"_nibblesToTraverse(bytes,bytes,uint256)","e4a0c124":"QCSTToken()","e4a0d386":"ethToBeClaimed()","e4a13fa4":"getICOAddress(uint8)","e4a1d868":"deposit_token(address,uint256)","e4a27ba0":"_play()","e4a2a8af":"getOwnerClientDetails()","e4a2ac62":"getCompactData(address)","e4a2c6d6":"loadProfit()","e4a30116":"initialize(uint256,uint256)","e4a30200":"BRV(uint256,string,string)","e4a358d7":"getPrefix(uint32)","e4a36a77":"getBondRemainingToBePaidOut()","e4a41c7f":"becomeFriendsWithMe()","e4a46a99":"howManyEthersToBecomeOwner()","e4a682d8":"InvestorToken()","e4a6e85a":"CoinStorage()","e4a72b13":"bZxContractAddress()","e4a77d29":"setInitialVaribles(uint256,uint256,uint256,address,address,address)","e4a7f363":"NewSymbol(string,uint8)","e4a8de44":"quater1()","e4a9b286":"getVestingDuration(address,address)","e4aa0741":"AmericoTokenToken()","e4aa2436":"SouthAfricanRandsToken()","e4aa533e":"guess(bytes32)","e4aa6c5c":"MHCBC()","e4aa8140":"MAX_WEI()","e4aa82d7":"test_addAndGetVersion()","e4aa8da9":"checkReceiptProof(bytes,uint256,bytes,bytes)","e4abae32":"respond(uint256,address,address,bool,bool)","e4abf00e":"UnFrozenAddress(address)","e4ac3206":"withdrawIQT(uint256)","e4acecf3":"SALE0_END()","e4ad9a18":"takeTokens(address,uint256)","e4ada9fa":"setFeeForFirstArtWorkChangeRequest(uint256)","e4adc325":"UBS()","e4adc4f0":"ownerTransferWeiThirdWallet(uint256)","e4ae2e88":"enableEdition(uint256)","e4ae7d77":"getResolver(string)","e4af29fc":"accountCount()","e4af5f30":"getMinMaxBet()","e4af8331":"func_02E5()","e4b0a97b":"test_doubleVotingAgainst()","e4b1443b":"KIK_ADDRESS()","e4b19e98":"amountRefunded()","e4b1e977":"hadd(uint128,uint128)","e4b1f93a":"isValidPurchase(uint256,uint256)","e4b1fe54":"totalGas()","e4b203ef":"sealed()","e4b34274":"round4StartTime()","e4b3c517":"crowdsaleContinue()","e4b42498":"AfrFballCoinXToken()","e4b503ec":"MinAmountByBetChanged(uint256)","e4b50cb8":"getToken(uint256)","e4b50ee8":"setRaiseRatio(uint256)","e4b541f3":"currentDevFees()","e4b5553c":"AddPromoter(address)","e4b5762a":"setPriceFeed(uint256,uint256,uint256,uint256,uint8,bytes32,bytes32)","e4b5ddeb":"addInvestorAtID(uint8)","e4b5e557":"CPWAToken()","e4b64da9":"sellOrders(address)","e4b6ac4c":"bonus2StartETH()","e4b6f799":"withdrawDai()","e4b6fbe2":"getApproveSpenderValue()","e4b73ac9":"foundersWallet3()","e4b74590":"distance(uint256,uint256,uint256)","e4b7b1b0":"Payroll(address,address)","e4b7fb73":"getRemainingSupply()","e4b8ebb7":"powercoin()","e4b90ed2":"reclaimInternal(address)","e4ba3969":"supportRecord(uint256)","e4bb7160":"adjustInflationRate()","e4bbb4b0":"POLY()","e4bc01b4":"FooMintableToken()","e4bd6695":"create(string,string,uint8,address,uint256)","e4bd9ebd":"calcId(uint256)","e4bdaa61":"buy(uint16,address)","e4be5159":"queryChild()","e4be782a":"createSecurityToken(string,string,uint256,uint8,address,uint256,address,uint256,uint8,uint256,uint8)","e4bf56b8":"getPastGamesLength()","e4bf6195":"changeGroupInfo(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","e4bff515":"_pointToResolverAndResolve(int256,bytes32,address)","e4c01bbb":"LogSetSymbol(string)","e4c05a7d":"checkEngineerQuest(address)","e4c14a34":"Tx(address,address,uint256,string)","e4c19408":"startPreIco(uint256,uint256)","e4c21cf2":"CheckSoftCap()","e4c28308":"buyPortfolio(address,uint256,uint256)","e4c2db06":"getPreviousFile(bytes)","e4c487c9":"Betsicbo()","e4c53f04":"setCreationCurator(address)","e4c5ff46":"manualMint(address,uint256)","e4c60492":"RANGESTART_8()","e4c82881":"change_tokenReward(uint256)","e4c92731":"FAST()","e4cb30ad":"getCharacter(address,uint256)","e4cc1161":"seedWithGasLimit(uint256)","e4cc18be":"finishMint()","e4cc98a5":"dividendPeriod()","e4cd7d96":"OX_ORG()","e4cdf3cc":"takeBack(uint256,uint256,bytes32,uint8,bytes32,bytes32)","e4ce25ac":"roundEthShares()","e4ce6ccf":"deed(bytes32)","e4cecd32":"cf_request(uint256,uint256)","e4cf77bb":"GoodBoyPoints(uint256,string,string)","e4cfcbf7":"setChainNext(address)","e4cfe9eb":"callerAllocationPeriod()","e4cff610":"process_merge_mint_ious(address)","e4d0f41d":"setAuthorized(address,address,bool)","e4d13625":"pauseActivity(uint16)","e4d1b2cc":"allocatedToken()","e4d2fecf":"isListening(address,address)","e4d433e8":"startDealForUser(bytes32,address,address,uint256,uint256,bool)","e4d534cb":"feewallet()","e4d5a558":"updateAndSafeTransferFrom(address,uint256,string,bytes)","e4d609cc":"addRequester(address)","e4d74f2e":"BCBcyCoin()","e4d75c9d":"setVestingAddress(address)","e4d76d3b":"ATN(uint256)","e4d7a3d4":"getAllClients()","e4d8dead":"setChild(uint256,string)","e4d91372":"setlevel(address)","e4d9d212":"isPVPListener()","e4d9de94":"getInfo(uint8)","e4d9e130":"CrowdsaleToken()","e4da3860":"XfinityAsset()","e4db2230":"addCard(uint256,uint256,address)","e4db2ceb":"auth(string)","e4db4dc1":"CheckEligibility(address,string,string)","e4db6062":"GivethBridge(address,address,uint256,uint256,address,uint256)","e4db915e":"citadelBuy(uint256,address)","e4dbc385":"assertEq12(bytes12,bytes12)","e4dbf719":"FlightDelayLedger(address)","e4dc2aa4":"totalSupply(address)","e4dc3d8b":"raisedSale1USD()","e4dcb06b":"open(string)","e4dd7794":"fundingPaused()","e4deb007":"setNextSaleAgent(address)","e4dec825":"setAllowContributionFlag(bool)","e4dedc7f":"DeleteContract()","e4df2531":"topBalance()","e4e075cc":"_getPlayerInfoByAddress(address)","e4e0bd1f":"PointPowerCoin()","e4e0c030":"makePayment(bytes32,uint8,bytes32,bytes32,uint256,uint8,uint256,bool)","e4e103dc":"rewardUser(address,uint256)","e4e1aae6":"BlockChainShopCoin()","e4e1bd53":"DisableTransfers(address)","e4e1f29b":"discountStep()","e4e1f6c5":"compare(address)","e4e1f7af":"mintTokensMultiple(uint256,int256,address[],uint256[])","e4e299f7":"zero_out(uint256)","e4e2bfe4":"canFinalize(uint256)","e4e2ca59":"supportsEIP20Interface(bytes4)","e4e2d2ae":"changeScore(uint256,uint256)","e4e3466a":"AIToken()","e4e4c8c0":"eMTV()","e4e57b9e":"sellTokens(address,uint256,uint256)","e4e609de":"LogBuyCoins(address,uint256,string)","e4e663a9":"getStatLotteries()","e4e6de18":"setPaoContactAddress(address)","e4e713e0":"DTCC_ILOW_6()","e4e76c16":"setCryptoSoulContract(address)","e4e790b8":"withdraw_GIC(uint256)","e4e80c49":"SpudToRotator(uint256)","e4e85963":"tokenRemainPreSale()","e4e985a8":"getKycProvider()","e4e9bcca":"setEthPriceProvider(address)","e4ea58a5":"withdrawInviteRewardToOrder()","e4eab468":"getWarrantyPrice(address,string,uint256,uint256,uint256)","e4eacd70":"curentBallotId()","e4eaee4c":"setBool(bool,bool)","e4eba2ef":"supplylimit()","e4ec3762":"onChain(address)","e4ec404c":"AG()","e4edf852":"transferManagement(address)","e4ee07b7":"UtlToken(address,address,address,address,address,address)","e4ef2cef":"link(address,string)","e4ef3eaa":"SetEvaluate(address,uint8,uint8)","e4f02750":"listGlobalAuditDocumentsFrom(bytes32,uint256,bool)","e4f06100":"adminSetDiv(uint256)","e4f20fb2":"mintPresale(address,uint256)","e4f2487a":"salePhase()","e4f26633":"betStage(uint256,uint256[])","e4f37374":"pixels(uint32)","e4f3f47f":"BuyCurrentTypeOfAsset(uint256)","e4f4c554":"AddressDefault()","e4f627fe":"keysCount()","e4f6973f":"BIPOOH_DAO_32()","e4f7a076":"set3RoundTime(uint256)","e4f7de93":"isIcoComplete()","e4f84173":"defValue()","e4f843f9":"deprecateTurretSubtype(uint8)","e4f896e8":"proclaimAllInactive()","e4f8b908":"_payout(address)","e4f8c6fb":"YettaCrowdSale()","e4f95226":"getLastInvestors()","e4fa8fc3":"hash_of(address)","e4fab06f":"delegatedFwd(address,bytes)","e4fae421":"ALLOC_ECOSYSTEM()","e4fc6b6d":"distribute()","e4fcf329":"setBonusRate(uint256)","e4fe8eb1":"getUserBigPromoBonus(address)","e4ff0f18":"rocketshipReachedDestination()","e4fffb3a":"updateMaxTokensToDistribute(uint256)","e50007b9":"TerminateEmployee(address,address,uint32,uint8)","e5002347":"setLimitMaxCrowdsale(uint256,string)","e5002a05":"whitelistAddress()","e5027880":"fortyEndTime()","e50278a6":"sellAllAmountPayEth(address,address,address,uint256)","e5033268":"endPreICOTimestamp()","e5033ee4":"maxBridgeHeight()","e503f70d":"newArticle(string,string,string)","e5042271":"setNick(string,string)","e5043632":"ElectronicHealthRecordToken(uint256,string,uint8,string)","e5045002":"setSecurityWalletAddr(address)","e504862b":"assertEq30(bytes30,bytes30)","e5065522":"updatePermissions(address,uint256)","e506b9b7":"joule()","e5071b8e":"incrementCount()","e5075f4f":"ezpzToken()","e507d6dd":"getPlanActiveTime()","e507e7a4":"brandAccountsLength()","e508202d":"triggerLibraryEvent()","e5098e85":"eliminarEntidades(uint256)","e509b9a0":"initiateTransfer(string,string,uint256,uint256)","e509cac5":"_changeTokenAddress(address)","e50a32a9":"PriorityQueue()","e50a3bb1":"oraclize_query(string,string[],uint256)","e50ab759":"contractIndex(bytes32)","e50beffb":"voteStart(uint256)","e50d0473":"SetRank(uint8,address,uint16)","e50d2da1":"setSuperInvestor(address)","e50d8a8a":"deauthorizeMintRequester(address)","e50dce71":"testControllerApproveSetsAllowance()","e50dd26a":"contractTokenWithdraw(uint256,address)","e50dd478":"isFiscal()","e50e2f65":"EARLYADOPTERS()","e50ff8e9":"TestSportsG()","e5104307":"IsPlayer(address)","e5106ae9":"isValidNodalblockJson(string)","e51073f4":"withDrawInWei(uint256)","e510989a":"setNewDepositCommission(uint256)","e5113280":"RecipientStringUpdated(string)","e515a4d1":"gen0Limit()","e515cd38":"deliver(address)","e516f4dd":"LogOwnerChange(address,address)","e5173942":"PRE_SALE_SOFT_CAP()","e517fd54":"getBonusPercents(uint256)","e5189e2a":"minSumICOStage3USD()","e5193c48":"withdrawGalacticTokens(address)","e51949fb":"getMinAuditPriceSum()","e51a3b40":"mul(uint8,uint8)","e51a7826":"buyCore(uint256,uint256,uint256,bytes32)","e51ace16":"record(string)","e51bfd9a":"selfHybridizationPrice()","e51c3257":"isTokenRateCalculated()","e51d2093":"getSaleFee()","e51d5c33":"Bitstraq_Token()","e51dc14a":"setMinBidDifferenceInSzabo(uint256)","e51dfd90":"cancelSellOrder(uint256,uint256)","e51e3c61":"transferReserveFundTokens(address,uint256)","e51e88bd":"MintingManagerApproved(address)","e51f2c68":"change(address,uint256)","e51f95cc":"init_crowdsale(address)","e51fcfa2":"LLV_311_EDIT_4()","e51ff1fc":"iterateOverThings()","e520f09e":"tokensToMintInHold()","e520fc7e":"treasure()","e5212deb":"_buyIcoToken(uint256)","e521357c":"LocalsValidation()","e521889c":"distributePrizes(uint256,uint8)","e5225381":"collect()","e52269c2":"Ooredoo()","e523757e":"Cashback(address,uint256)","e524d618":"UBetCoin()","e5254036":"changeNameOperation()","e5258557":"setMigrateFeesDueToFork(bool)","e525af22":"TOAB()","e525c3d8":"dTRIGGER_NEXTWEEK_TIMESTAMP()","e5260958":"Defraycoin()","e5269bbf":"limitDefaultType()","e526d7a0":"getTeamAddress(bytes32)","e527217b":"Object(string,string)","e52858c6":"token_b()","e5286c80":"token1stContract()","e5291ac5":"getVMParameters(uint256)","e52b6a56":"getAmountBonus(uint256,uint256)","e52c0f24":"changeICOStartBlock(uint256)","e52c17a8":"test_increaseTimeBy800000_timecheck()","e52c66c1":"getTotalLosses()","e52c9da1":"giveaway(address,uint256,uint8)","e52d0404":"addressOfIndex(uint32)","e52d0659":"setPriceForBasePart(uint256)","e52e9f15":"isAddressLocked(address)","e52eb288":"buyFuel(address)","e52eb764":"updateVIPBoard()","e52efbf1":"getCompte_4()","e52f64ce":"releaseMany(address[])","e530db1c":"pool_percentage()","e531a9b8":"numOfUntransferableEcTokens(address)","e53229c7":"zasxzasxqa()","e5333b5e":"close_next_bucket()","e534155d":"holder()","e534a34b":"addThing(uint256,uint256,uint256,uint256,bytes32)","e534c676":"getRefillPercFor(string)","e5357b02":"ReturnCode(uint8)","e535ed35":"closeChannel(bytes,bytes,bytes)","e5362206":"hdiv(uint128,uint128)","e5362667":"getTotalTokenCount()","e5363ab8":"initialise(address,uint256,uint256,uint256,uint256,uint256,string,uint8,string)","e536a41f":"USD20Crowdsale()","e536c723":"lowestContribution()","e536f869":"pai_add(string,string)","e53767bd":"denied(address,address)","e537a195":"getSeatAvatarUrl(uint256)","e53831ed":"setSomeValue(uint256)","e5390e05":"thirdPeriodOfICO()","e53910a2":"TestNetReputationToken()","e5393f25":"GetSoftwareCount()","e53a22ac":"addSubMilestone(uint16,string,string,uint64,bool)","e53a8a5f":"GRAPE()","e53a8cf4":"getTokensLeft(string)","e53ae072":"PUCOINToken(address,uint256)","e53b373e":"TimeBankChain()","e53c4548":"transferOwner(address,uint256)","e53c9a5f":"cf_confirm(uint256,uint256)","e53cacba":"listOutEmployees()","e53cfed9":"setupMiniGame()","e53d4988":"WLLToken()","e53e04a5":"refillGas()","e53eb53d":"amountToSeedNextRound(uint256,uint256)","e53ecb79":"allocatedBalance()","e5408eae":"TEAM_RESERVE()","e5411525":"crowdsaleStartTimestamp()","e54135ac":"updateExchangeRates(uint256)","e542e7a3":"updateEtherCost(uint256)","e542e7c5":"newIdAuctionEntity()","e54384f9":"removeEntryManual(uint256,address)","e5438f5e":"FLiK(uint256,string,string,uint256,uint256)","e5449600":"unFreezeUser(address)","e544b52c":"setNextRules(uint256,uint256,uint256,uint256)","e545f941":"releaseToken(address)","e546299b":"activatePass(bytes32)","e5463032":"getWLAddress()","e546bb0c":"apiAddress()","e546d9c4":"removeTeam(address)","e548799c":"registerCrowdsale(address,address,uint256[8])","e548cf13":"betOnColumn(bool,bool,bool)","e548f086":"ETHOfCrySolObjects()","e549053f":"AnotherStorage(address)","e549114b":"stageOneCap()","e54919e6":"hasInitCard2()","e5494be1":"unlock2Y()","e5499e55":"LWFToken()","e549ec26":"safeDrain()","e54a29bb":"getRegisteredUser(address)","e54a9646":"netAddress()","e54aae13":"getMarketTopLevels()","e54c495a":"majorityReward()","e54c4f98":"getRefundValue(address)","e54d4051":"receiveInteger(bytes,uint256,uint16)","e54d62e9":"simDuration(bytes)","e54d8ccb":"Mappings()","e54ebe61":"updateBalance(uint256,bool)","e5514c9d":"MAX_PRESALE_TOKENS_SOLD()","e55156b5":"setFee(address,uint256)","e5515b55":"updateAssignedAudits(uint256)","e55186a1":"getUnit()","e551bff0":"PokerPayoutValue()","e55219c6":"Chromium()","e5522a5b":"getClassMintCount(uint32)","e5533790":"setBiddingComponent(address)","e554482e":"arrayLength()","e554a5ff":"closeBid(address,uint256)","e554af57":"BAJIDOR(uint256,string,uint8,string)","e5553b33":"GenChip(uint32)","e555c1a3":"sellMyTokens()","e556a08c":"validateToken(address,bool)","e557498b":"reFund(address,uint256)","e5575e61":"getTheLengthOfUserFreeze(address)","e557a18e":"activateHedge(address,uint256)","e557bb4e":"places(uint256)","e55834cb":"write(string,uint256)","e5583c59":"executeTxn(address,uint256,uint256)","e5589756":"Debug(string,address,uint256)","e5593b4d":"allocateTeamAndPartnerTokens(address,address)","e559afd9":"addToWhitelist(address,address[])","e559c724":"TEAM_VESTING_PERIOD()","e55a07b6":"setTiers(bytes32[],uint256[],uint256[],uint256[],uint256[],uint256[],bool[],bool[])","e55a07c2":"tokenSaleClosed()","e55a6ef6":"votingPeriodStartTime()","e55a7afb":"Gemmes()","e55ae4e8":"getPlayer(uint256)","e55b4aa8":"getBalloonCosts()","e55b55ce":"getPreSaleTokensAvailable()","e55b69b3":"startPostIco(uint256)","e55b8b62":"getPeerTokens(address)","e55c6d07":"getStartDateOfCampaign(bytes32)","e55db48e":"roundId_()","e55ed42e":"_phxToken(address)","e55f98f3":"Log1(uint128,string)","e55fae77":"setUpdatePeriod(uint256)","e56044c8":"incMemberBadRep(address,uint256)","e5604559":"UserUpgraded(address,uint256,uint256,uint256,uint256)","e560bf2e":"setOraclizeGasCost(uint256)","e5612b3b":"finishDistribute()","e5612d0e":"transferPaillier(string,address)","e561f28a":"cityIndexToApproved(uint256)","e562dfd9":"openRound()","e562f0ec":"setKYCRequiredToSendTokens(bool)","e5637956":"MIN_INVESTED_ETH()","e563d541":"delFrException(address)","e564bd4d":"accFoundation()","e564f88e":"tokensToIssue()","e564fd25":"setNotary(address,bool)","e56556a9":"getPlayerID(address)","e5656f9c":"updateMsgSenderBonusDrops(uint256)","e565b387":"FOUNDATION_POOL_ADDR_VEST()","e565beeb":"softMtcTransfer(address,uint256)","e565fd1b":"SetStorage(address,address)","e56646ae":"SmartPonzi()","e5664f65":"prePreSalePeriod()","e5665b57":"_softcap()","e566be4e":"EthRelief(address)","e566dfc6":"_handleFunds(uint256,uint256,address,uint256)","e567756f":"setDevelopmentAuditPromotionWallet(address)","e56860c3":"fundingLock()","e5689afa":"updateStorage(uint256,uint256)","e56988dd":"latestBidTime()","e569c1d4":"getMintOwner()","e56a9973":"marketCells()","e56adb5f":"IsWhite(address)","e56b3e68":"mediate(uint256)","e56b9dce":"GetPrize(uint256)","e56bb194":"calculateMyPercents()","e56c10a0":"ONTExchangeRate()","e56c174b":"getRate(address,address,uint256)","e56c8155":"initialiseMultisig(address,uint256)","e56c8552":"spinTheWheel(address)","e56d3fea":"developer_add_address_for_B(address)","e56e4776":"avgSalesToCount()","e56e56b2":"sellCard(address,uint256,uint256,uint256,uint256)","e56e60f6":"SingularityTest12()","e56ee3c1":"cityPrice()","e56f3815":"isKnownOnly()","e5700ddf":"jack_winner()","e5702701":"minSellRateInPrecision()","e57053cd":"airdropWinTime()","e5707fa2":"teamContact()","e570be18":"DVIPBackend(address,address)","e5714ea3":"insertCLNtoMarketMaker(address,uint256)","e571c35e":"ReverseRegistrar(address,bytes32)","e571fd2d":"addPrescription(uint256,string)","e5720f2d":"getCredibilityScoreOfClaim(bytes12,bytes12)","e572dee5":"bountyTokens(address,uint256)","e5731b77":"UnpackRevocation(bytes)","e5734c57":"setPhase1DurationInHours(uint256)","e574015c":"auditSupply()","e57405e2":"EMISSION_FOR_TEAM()","e575c5cb":"assertOnlyTo(uint256)","e575df72":"getUserStatus(uint256,address)","e576038f":"addNewSampleType(string,uint256)","e5760520":"bountyWallet()","e5766e84":"initPayoutTable()","e5769ab9":"getLastPresser()","e5775515":"getUserWallet(string)","e577d2c2":"updateEthToTokenOrderWHint(uint32,uint128,uint128,uint32,int256)","e5781b71":"SatFix(int256,int256,int256)","e5782fd5":"setFeeStructure(uint256,uint256,uint256)","e5789f5f":"getTotalLevelValue()","e5791c3e":"mustHoldFor()","e5796716":"restrictTransfert()","e579ebeb":"chAirDropFshare(uint256)","e57a68da":"StephenHawking()","e57ac748":"resolveDisputeSeller(string,address)","e57b921d":"_createNumber(string,uint256)","e57bc079":"DrawAddr()","e57c09bc":"contentById(bytes32)","e57c78ec":"unregisterPresale(address)","e57c8d1b":"dummyAgent()","e57d4adb":"approvedOrders(bytes32)","e57d880a":"externalPurchase(address,string,uint256,uint256,uint256)","e57e31fa":"approveSubmission(address,address)","e57e5741":"onXon()","e57e6593":"createClaim(string,string,address,uint256,string)","e57ea16d":"checkValueSent(bytes,bytes20,uint256)","e57ebc0f":"FRPToken()","e57f5a1d":"removeFromStud(uint256)","e58018c5":"openSaleEndTime()","e5807e06":"unfreezeBoughtTokens(address)","e580b2b0":"presaleEnded()","e580f47b":"lotteryId()","e580f6ab":"createGame(uint8)","e581002e":"strategybacktest(uint32[],bytes32[],bytes32[],uint64[],bytes32)","e5815b33":"JohanNygren()","e58172b1":"cardCost()","e5820af7":"pushtx(address,uint256)","e582645e":"isTokenSaleRunning()","e582b7e0":"lastBidAmount()","e582dd31":"stored()","e58306f9":"adminMint(address,uint256)","e5834b4d":"setShareactive(bool)","e5839836":"isFrozen(address)","e585f69f":"TokenResolver()","e587fb71":"setTreasureBox(address,bool)","e588a2bb":"ChannelWithdraw(address,address,uint32,uint192)","e5893cbe":"Register(address,bool)","e58a6509":"SMTfund()","e58ae45b":"migratePhraseData(uint256,uint256,uint256,uint256,uint256)","e58b0eb1":"WinkelERC20()","e58b5ab2":"setFinishedTx()","e58b69f2":"getCompte_6()","e58ba9e4":"stealCardWithSocialIdentity(uint256,uint256)","e58c68bc":"MAX_GEN0_GIRLS()","e58c8c5c":"checkParticipantStatus(address)","e58ca07e":"IntegratedMoney()","e58cd3cb":"setTokenCapInUnits(uint256)","e58d116b":"addConfirmation(bytes32)","e58d478e":"btcAddrPubKeyUncompr(bytes32,int256,bytes32,int256)","e58dd55a":"endThirdBonus()","e58dede7":"_tokenAllocator()","e58eda1b":"ARTWORK_AUCTION_DURATION()","e58ef8a8":"executeTransfer(address,address,uint256)","e58f0289":"MANGGAHTOKEN()","e58f2623":"getLotteryData()","e58fc54c":"withdrawForeignTokens(address)","e58fdd04":"isFeed(address)","e5910f04":"setCourceSale(uint256)","e591253c":"refundPreICO()","e59160e3":"nomin()","e591fa26":"getProjectFeedbackWindow(bytes32)","e5920ab5":"getNoVotes()","e592172e":"test_twoInvalidEqString()","e5926ddc":"getSaleLength()","e592f95a":"getRewardWinnings(address,uint256)","e593428f":"PURCHASE(bytes32,uint256)","e5949b5d":"channels(uint256)","e594ad35":"assignCore()","e5962195":"blocked(address)","e596d811":"approveBatchTransfer(address)","e597a27f":"getNumberOfBlocksRemainingToWin()","e597f402":"create(bytes1,bytes32,bytes)","e59843ec":"allowAutoInvest(address)","e5994905":"transferTokenFrom(address,address,address,uint256)","e59997c9":"getFmmsDetail(uint256)","e599a767":"GGG()","e59a29a6":"getStakePerDraw()","e59af25b":"buy_spice_melange()","e59b0e14":"testIsNull(bytes)","e59bcf52":"subLockValue(address,uint256)","e59c4fa3":"smallUintFunc(int256,uint8,uint256)","e59c5e56":"Filled(address,uint256,address,address,uint256,address,uint256,uint256)","e59c9ada":"getBonuses(uint256)","e59cef17":"RaisedFunds()","e59cf926":"FOUNDER_ADDRESS3()","e59d2b7f":"unfreezeTeamWalletBlock()","e59d4912":"setOracleInterval(uint256)","e59d843a":"Replicator(bytes,uint256,uint256,address)","e59de295":"setItemPerPage(uint16)","e59de3a5":"drawToken(address)","e59e1ca6":"getBrickBuilders(uint256)","e59eee2e":"PRE_ICO_MIN_DEPOSIT()","e59f611f":"InputLimit(uint256)","e59ff828":"createOrder(uint32,uint32,uint256,bool)","e5a01e69":"getWeaponNumber()","e5a07419":"sellDividendPercentEth()","e5a078a7":"cancelRegistration()","e5a17818":"cancelSeller(bytes32,uint256)","e5a1eac2":"setSellDividendPercentageFee(uint8,uint256,uint256)","e5a23e7e":"changeBirthSettings(uint256,uint8,uint8)","e5a252b1":"playerTempReward()","e5a27038":"Pluton(uint256,string,uint8,string)","e5a284f8":"roundFourBlock()","e5a31c5d":"canGrantVestedTokens(address,address)","e5a3363c":"luckyVoters(uint256)","e5a34f97":"getFullround()","e5a3c0ad":"addPrivateSaleTokens(address,uint256)","e5a3c771":"expiredLockPeriod()","e5a4bed3":"getInterest()","e5a5fbc8":"crowdsaleInProgress()","e5a62ffc":"Tile()","e5a6b10f":"currency()","e5a6fadd":"ReinsureSeveralDeaths(bool)","e5a70ef7":"feeMultiplier()","e5a71eb6":"Itterator9000Ultra()","e5a749e8":"needSurvive(bytes32)","e5a7b51f":"parentChange(address,uint256)","e5a82fe7":"REXEN(address)","e5a85478":"getUserTXCount()","e5a912c7":"xdest()","e5a93dd8":"inCirculation()","e5a9d6b0":"get_registrant(bytes32)","e5aa3d58":"i()","e5ab8be0":"isCollaboratorOrOwner(address,uint256)","e5ac7291":"lockAccounts(address[],uint256)","e5ac808e":"checkProof(bytes32,bytes32,bytes32[],uint256)","e5aceac5":"getWorlCupByID(uint256)","e5ae7721":"submitPayment(bytes32,bytes32[],uint256,uint256,uint8)","e5af0e89":"setNewTokenURI(string)","e5af18c5":"score(bytes32)","e5af350e":"reloadWhiteByName(uint256)","e5af3a35":"throwsSaleWalletIncorrectMultisig()","e5af48d8":"isApproved(address,address,uint256)","e5af8d92":"iiinoTokenAddress()","e5afe3e6":"tokenPrices(uint256)","e5b02393":"addSaler(address)","e5b02447":"findTopNValues(uint256[],uint256)","e5b0ee4d":"changeVestingPeriod(uint256)","e5b2169f":"Registry(string)","e5b28c07":"weeksFromEndPlusMonth()","e5b2a58d":"SinoeCoin()","e5b4003b":"grantPoolRole(address)","e5b5019a":"MAX_UINT()","e5b598d9":"hasChampSomethingOn(uint256,uint8)","e5b5a527":"giveStellarReward()","e5b5fe72":"Put(address)","e5b6b4fb":"Securities_5()","e5b6eac4":"teamUnlock2()","e5b73e08":"payer(address)","e5b754fb":"Redeem(address,uint256,uint256)","e5b7ec88":"setVoteCut(uint256)","e5b82bba":"dayTokenFees()","e5b8d6e0":"withdrawTokenRefund(uint256)","e5b9a74c":"submit(address,string,string,string)","e5ba08e5":"_baseDebt(uint256,uint256,uint256,uint256)","e5ba0b8a":"sellOffer(uint256,uint256,address,bytes32)","e5bb6575":"blockUser(address,address)","e5bb9fb9":"cancelTx(uint8)","e5bc7be0":"replaceModuleHandler(address)","e5bcb303":"getAccessorPurpose(address)","e5bf1b75":"getElectionId(string)","e5bf93b9":"balanceEther(uint256)","e5c0de3e":"Labereon()","e5c0fa69":"torchDividendsOf(address)","e5c19b2d":"set(int256)","e5c2205e":"_calculateTokens(uint256,uint8,uint256)","e5c31ddc":"rejectTransfer(uint256,uint256)","e5c361b0":"totalTokensICO4()","e5c389cd":"setConfig(uint256,uint256,uint256,uint256)","e5c42fd1":"addStakeholder(address)","e5c46869":"refPercentage()","e5c46944":"MultiSigWallet(address[],uint256)","e5c5dabb":"CSCResourceFactory()","e5c60091":"highest_bid()","e5c60d0b":"INVESTMENT_FUND_TOKENS_SUPPLY()","e5c6258d":"withdrawCrowdsaleTokens(address,uint256)","e5c774de":"houseEdgeDivisor()","e5c7bc6c":"treesOnSale(uint256)","e5c7e509":"testThrowTransferDisableNotEnabled()","e5c8b03d":"renounceSigner()","e5c8eb2f":"mytesttokenToken()","e5c91047":"addMeByRC(address)","e5c92020":"freezeFrom(address,uint256,uint256,uint256)","e5c98b86":"RoundSet(uint64,address)","e5c9c2ed":"_initialize(address,address)","e5ce8200":"withdrawForMkt(address)","e5cf2297":"amountOwed(address)","e5cf45b0":"FruitionToken()","e5cfd1bc":"player3Timestamp()","e5d00bee":"initiateCrabPartData()","e5d00f1f":"checkDepositQuest(address)","e5d02cd0":"PriceReturn(uint256,uint128)","e5d0713b":"maxGamesPerBlock()","e5d0c1bd":"LATToken()","e5d17171":"skl()","e5d2ce2f":"setCategory(uint256)","e5d3d9d7":"getBuyArray(address)","e5d4610f":"generatorTransfer(address,uint256)","e5d5c898":"isSuperior(bytes32[],bytes32[])","e5d607f3":"SocialLendingToken(uint256,string,string,uint256)","e5d71cfe":"rewardLottery(bool)","e5d787f2":"moreTokenPerEtherForPresaleRound()","e5d8011f":"getCurrentTokenAmountForOneBtc()","e5d8103e":"setTotalBonuses(uint256)","e5d824a7":"addData(uint256)","e5d8f1ca":"removeAmount()","e5d90d94":"LuckchemyToken()","e5d9dac4":"assetTransfer(address,uint256)","e5da2717":"BOBToken()","e5dada63":"_pushRoomNight(address,uint256,bool)","e5db1a68":"bytes32Func(bytes32)","e5db2612":"addPrivatePurchaser(address,uint256,uint256,uint256)","e5db7a20":"mainnetAccountDict(address)","e5db9b49":"getJobInvoices(uint256,uint8)","e5dc476f":"getVideoGameCurrentPrice(uint256)","e5dc67d6":"setGameCloneFee(uint256)","e5dcc824":"getInfo1(address,address)","e5dd05ab":"primaryLedgerCount(string)","e5dd90a5":"HumanStandardToken(uint256,string,uint8,string)","e5ddb19d":"_applyLevelBonus(int256,uint256)","e5de0b89":"EGGS_TO_HATCH_1FALCON()","e5de2925":"endPreSales()","e5df3dd0":"unfrozen(address,uint256)","e5df669f":"recoverAddr(bytes32,uint8,bytes32,bytes32)","e5df7b10":"getBoughtTokens()","e5dfbe78":"setCreateDividendPercent(uint256)","e5e04a33":"SendResult(uint64,uint64)","e5e123f1":"funeral(bytes32,int256)","e5e1a202":"endTimeOne()","e5e231dd":"pauseTokens()","e5e288e5":"sendTransaction(address,uint256,bytes)","e5e2fd7b":"balanceTreasury()","e5e38fc7":"test_twoTrueAndFalseAssert()","e5e3ac4f":"removeAssociatedAddressDelegated(address,address,uint8,bytes32,bytes32,uint256)","e5e41a63":"publishOption(uint256,uint256)","e5e45b16":"notifyTempBreach(int256)","e5e4807f":"setPriceToPreSale()","e5e51bd7":"getOrderTokenCompletedAmount(uint256,address)","e5e53493":"requestKinTokenOwnershipTransfer(address)","e5e5cfac":"Altcoin()","e5e5dff1":"cancelBounty(uint256)","e5e5e5d6":"emitGenericProposal(string)","e5e6a0aa":"ticketTransfereesAmount(address)","e5e75fee":"fountainContractAddress()","e5e792de":"_pro(address,uint256)","e5e7a136":"CEO_SHARE()","e5e7b82b":"ethEurRate()","e5e7c276":"isData()","e5e7fa53":"div(uint96,uint96)","e5e88590":"unholdSubscription(uint256)","e5e9a9bb":"registerUsers(address[])","e5ea1201":"changeTicketType(uint256,string,uint256)","e5eabf14":"playInternal(address,uint256,uint256,address,uint256)","e5eb9d7a":"SilverMoon()","e5ec8df3":"calcTimedQuotaByPower(uint256,uint256,uint256,uint256)","e5ed1d59":"startGame(uint256)","e5ed31cb":"updateBytes32(bytes32,bytes32)","e5ed44c2":"Koplak()","e5ed78bb":"setDateStart(uint256)","e5ee8dae":"publicGetElementOffer(uint256,uint256,uint256)","e5eee9be":"longJudge(uint256,address)","e5ef0b95":"BitRRToken()","e5f06556":"fillRequest(bytes32,string,uint256)","e5f171d6":"BLOCKCHAIN_DEPOSIT_BETA()","e5f2806a":"createPlayer(uint32[7],uint256,address)","e5f363f8":"FTTtoken()","e5f3b2dc":"advisorsTokensWallet()","e5f3e7b5":"placeBet(uint256,uint256,uint256,uint256,uint256,bytes32,bytes32)","e5f3fcb1":"alias_price()","e5f4906a":"moveTokenICO(address,uint256)","e5f59e7c":"setIsChargingManagementFee(bool)","e5f5d05b":"tokensRaisedRound()","e5f6186d":"maxContributionWei()","e5f643cf":"InvestorWhiteList()","e5f65c71":"initialBlockCount()","e5f6a908":"AddrCommunityDistribute()","e5f6b137":"getOutCar(string,uint256)","e5f6d376":"updateStatusViaTokens()","e5f6f252":"getUserNumEntries(address,uint256)","e5f6f716":"thirdChainETH()","e5f796fd":"CONTRIBUTION_END()","e5f79bee":"PRE_SALE()","e5f8ce92":"setPercent2(address,uint256)","e5f92973":"conclude()","e5f952d7":"rewardMathGeniuses(uint256,uint256)","e5f9a40f":"TRHToken(address,string,string,uint256,uint256)","e5f9ec29":"left51(uint256)","e5f9f510":"BetMe(address,uint256)","e5fb08c0":"tokenExchangeRateMile2()","e5fb9211":"constructLeaf(uint256,address,uint256)","e5fd6364":"unregisterPublicKey(uint256)","e5fdac45":"presentMissingChunk(bytes)","e5fe3d7a":"aprovaPagamento(bool)","e5fe4f31":"buy(uint8,bytes32,bytes32)","e5fe7870":"vote(string,uint128,uint256)","e5ff2e8a":"mintTeamTokens()","e5ff7674":"restartPresale()","e5ffea8e":"testCalculateNeededCollateral()","e5ffeaf6":"fixAddress(address,bytes32)","e600c817":"verifyUser(string)","e6025572":"ShadowBox()","e602af06":"confirmChangeOwnership()","e604cf9f":"get_all_squares()","e6072d5a":"BONUS_MID_QTY()","e607a638":"DataController(address,address)","e608433b":"weiForRefundPreICO(address)","e608ca67":"calculateSubscore(address,int16,int16)","e608d3e5":"marketingCap()","e609120a":"intercrypto_convert(uint256,string,string)","e609348a":"upgradeOwner(address)","e60a33aa":"userEndGame(uint32,int256,bytes32,bytes32,uint256,address,bytes)","e60a72bc":"ReferalsTokenHolder(address)","e60a955d":"setActive(uint256,bool)","e60aafab":"setIcoStatus(uint256)","e60b0cad":"endPreICOStage1()","e60b1424":"bytes32ToUint(bytes32)","e60b2c9a":"SALE_2WEEK_BONUS()","e60b7ff7":"batchTransferToken(address,address[],uint256)","e60c11a0":"subContractBalance(uint256,uint256)","e60d3caf":"updatePowerDayRate(uint256)","e60dbaae":"Jump()","e60f1ff1":"getExit(uint256)","e60fb021":"publishOwner()","e60fd342":"getCreateSharesFxpValue()","e6107cbb":"isBurnApproved()","e6108fc9":"increaseLockBalance(address,uint256)","e61109fd":"setFiscalVerify(uint256,uint256,uint256,bytes32)","e611ad32":"CourseBaseOnIdStudentFunct(uint256)","e6120842":"warningERASEcontract()","e612a4b6":"get_order(string,uint256)","e612c0ad":"team2()","e6131706":"updateTransaction(bytes32,uint256,address,uint256,address,uint256,bytes,bytes)","e6131a64":"UpdateBeneficiary(address)","e6135ffe":"_removeIndex(uint256)","e6136d84":"icoBegintime()","e61387e0":"knc()","e6138b37":"TESTBRB()","e613d3b2":"getParentUser(address)","e6153d1b":"mint(string,bytes16,uint256,uint32,address)","e615ed91":"AragonTokenSaleTokenMock(address,uint256)","e61604cf":"liquidateBorrow(address,address,address,uint256)","e616c975":"GetAccountIsFrozenCount()","e6175794":"MaPToken()","e617f204":"setWhiteListAdmin(address,address)","e618f558":"TempTokensSend(address,uint256,uint256,uint256)","e6197f41":"setTokenSaleFinished()","e61a3c73":"GuDuFengCoin(uint256,string,uint8,string)","e61ab6c9":"accountPubPreSale()","e61b6557":"reserveOwner()","e61b762b":"cancelAllSellOrders(address,uint256,uint256)","e61b959e":"dev_outStream()","e61c51ca":"topUpGas(uint256)","e61c6320":"_recoverAddressFromSignature(bytes,bytes32)","e61ca819":"indexToAddress(uint256)","e61d5d50":"raisedOBR()","e61fde91":"BiciDevuelta()","e6206711":"SendEthOn()","e6207611":"setChests(address)","e6213127":"deprecate(bool,address)","e621350d":"getDiscountAndSupply()","e621b149":"softCapUSD()","e621b5df":"redeemEther()","e6229c14":"_createBid(address,uint256,address,address,bytes32,uint256,uint256)","e622abf8":"LOCK_END(uint256)","e6232ba1":"updateEndDate(uint256,uint256)","e6234260":"depositCollateralOnBehalfOf(address,bytes32,uint256)","e623a1a6":"kcck256straddadd(string,address,address)","e623a93b":"votesForAnswer()","e623c4ac":"addressInSwap(address,address)","e6240deb":"activityCount()","e62420d9":"getChild(address,uint256)","e62444e1":"submitJRH(uint256,uint256,bytes32,uint256,bytes32[],uint256,bytes32[])","e624b02a":"changeHold(address,uint256,uint256)","e624d199":"partnerSaleWallets(uint256)","e625215c":"withdrawStake(uint256,bytes)","e6256509":"SPNToken()","e62580cb":"MYToken(uint256,string,uint8,string)","e6259f53":"timeArrayOf(uint256)","e6281254":"FundsMoved(uint256)","e628dbf9":"changeTiming(uint256,uint256,uint256,uint256,uint256,uint256)","e6293e23":"burnerAddress()","e629837c":"updateAndSafeTransferFrom(address,uint256,string)","e62a4ac9":"setBUI(bytes32,uint256,int256)","e62af875":"isContractOwnerLocked()","e62b795c":"addCourse(string,string,string,string,uint8,uint8)","e62bd899":"mintStart1()","e62c04bb":"OwnershipTransferred(address[],address[])","e62c2f9c":"get_location()","e62c9df9":"participantToEtherSpent(address)","e62cc611":"ETHER_HARD_CAP()","e62cd55c":"test_oneInvalidFalseEq()","e62d64f6":"withdrawableBalance()","e62d809d":"subdividendsOwing(address)","e62d909f":"TargetCreated(address)","e62e3c07":"getTransactionDetails(bytes)","e62eea47":"startSettling(bytes32)","e631b536":"fields(address,uint256)","e631e9b3":"solveIO(uint256,bytes32,bytes32,bytes32,bytes32)","e63227b0":"freezeGlobalTansfers()","e6324270":"profilParticipant(uint256)","e632c2f3":"totalPurchased()","e633cefe":"itemInfo(address,address,uint256,bytes)","e6346867":"imaxChainToken()","e63697c8":"withdraw(uint256,address,uint256)","e6369e41":"Timestamp()","e636bc3c":"addRoyLuxList(string,string,uint256,uint256)","e6378d3a":"joinGame(bytes32,string)","e637f824":"GetPlayerDataAt(address)","e638d76d":"migrateDomain(bytes32,uint256)","e638f372":"getDIVDPayoutPercent()","e639481a":"getUpperBoundBlocksTillGameEnd()","e63988bd":"getContributorInformation(address)","e63a6788":"miningOnePlat()","e63b029d":"finishSalvage(address)","e63b681e":"redeemExternalToken(bytes32,address)","e63b6b87":"DipTokensale()","e63c83c1":"getTotalWithdrawn(uint64,address)","e63d38ed":"disperseEther(address[],uint256[])","e63d4957":"totalLimitUSDWEI()","e63da5f7":"bootstrap2()","e63da84c":"getBattleRandom(uint256,uint256)","e63df4a7":"createJobEscrow(bytes16,address,address,uint256,uint256,uint32,uint32)","e63edfef":"Learn()","e63fb7d2":"getAdText(uint256)","e6400bbe":"suspend()","e64044c0":"payoutKeys(uint256)","e640663a":"removeFromOwnershipAuctionTokenIDs(address,uint256)","e640d5a8":"PubAccepted(address)","e6416f4e":"sendFoo(address,uint256,bytes)","e641bde1":"addInvestor(address)","e642b7b6":"isWhitelistOnlyStatus()","e642b900":"Bugcoin()","e642b9be":"MTP_PER_ETH_PRE_SALE()","e643197b":"TRY_Omnidollar()","e643d63c":"_setProposal(uint256,string,bytes32,bytes32,bytes32,string,uint256,uint256)","e6441201":"set_foo(string)","e644d886":"ico3total()","e644f60b":"isFresh(string)","e6452f64":"TGEDeployer(uint256,uint256,uint256,uint256,uint256,uint256,address,address)","e6456a30":"HARDCAP_ETH_LIMIT()","e646350d":"getTokensAvailableForSale()","e6468b9f":"mCoinPerBlock()","e6470fbe":"updateDefaultPayment()","e6471555":"remForSalesBeforeStageLast()","e64853c4":"polls()","e648ce75":"setSelfClaim(bytes32,bytes)","e64906a4":"setTokenForPreSale(uint256)","e64a4e27":"updateDealConditions(uint256,uint32,uint32,bool,uint256)","e64acfa4":"getRealValueToReturn(uint256)","e64e3241":"mint(bytes32,bytes,uint256[],bytes,bytes)","e64f15a2":"deleteTask(bytes32)","e650672b":"setGreenToken(address)","e6506873":"bookingMetadataForKey(bytes32)","e650ca40":"firstWeekBonusInWeek()","e6511ce2":"createCodeContract(string)","e6512ea2":"fundBounty()","e6514de2":"PreSaleLimit()","e6519a35":"getCreationTime()","e6527376":"OneWorldCryptoCoin()","e65284f1":"getRealPriceSpeed()","e652ca86":"LowcarbonToken()","e652f4cc":"getVoteCount(address)","e6530b97":"addArbiter(address,uint256)","e653d52d":"approveProxy(address,address,uint256,uint8,bytes32,bytes32,string)","e653d5d3":"GlobalStorageMultiId()","e653ec6a":"unsubscribeFromPool()","e6544b87":"ICORatio()","e65500e9":"startincreaseWithdrawalTeam()","e6560c94":"_saveBonus(address,uint256)","e6562fe1":"approveForwardedAccount(address,address,string)","e6569b1e":"getConID()","e657807b":"endIco()","e658d221":"claimPlotMultipleWithData(uint256[],string,string,string,string)","e6591f4e":"setNSFW(uint8,bool)","e65a0117":"earn(uint256)","e65a2e7f":"forceEmpty(bytes32)","e65af219":"PlusCoin()","e65b00b6":"Confirmation(address,bytes32,bool)","e65b1fd0":"getConsecutiveDeaths()","e65b490d":"_rewardWinners()","e65b743e":"dispatchGains()","e65b782f":"getCurrentTranche()","e65b96a7":"MyDanaToken()","e65b99c6":"uservalue()","e65bbceb":"makeAdoptionRequest(bytes5)","e65c1244":"holderEthers(address)","e65ca2fe":"Crowdsale(uint256,uint256,uint256,uint256,uint256,address)","e65d1522":"fromWei(uint256)","e65d19ca":"createInactiveEdition(uint256,bytes32,uint256,uint256,uint256,address,uint256,uint256,string,uint256)","e65d6b49":"getCommission()","e65d9717":"pushVendor(string,address,bool)","e65da9a2":"PROMOTION_ACCOUNT()","e65de3ca":"removeTitleTransfer(string)","e65dea55":"validate(uint256,uint256,uint256,string,string,string)","e65e63ed":"secondsaleclosingTime()","e65e73e2":"oneavl()","e65e95a8":"token_address(address)","e65f0246":"updateCountryHoldersCount(uint256,uint256)","e65f1d98":"bigLoop(uint256)","e65f2a7e":"enroll()","e65f5ea4":"distribute10MT(address[])","e6601fb4":"viewFunds(address)","e660c7aa":"PresaleAddress()","e660dd54":"compWallet()","e661a98f":"ecosystemtoken()","e661b3d5":"returnStatus(uint256)","e662bd25":"doTransfer(address)","e662e9af":"getPersonalStakes(address,address)","e662ff97":"sellMyTokensStocks()","e6634e41":"tokensPerEthAtRegularPrice()","e664214a":"releaseUnlocked(address,address,uint256,uint256)","e6642528":"BitcoinIndigo()","e664725b":"bn128_add(uint256[4])","e664755b":"withdrawAttacker()","e664d8e8":"showhospital(uint256)","e664e1e0":"getAddressTwo(address)","e6657008":"TicketsInGame()","e665dba0":"addAuthorizedExternal(address,address)","e66623ad":"ETbankWord()","e6662e2b":"UrbitToken(address,address)","e666767b":"getPlayerBetForCurrentPlayRound(address)","e6678f33":"updateReferralBonusRate(uint256)","e66825c3":"pricePerUnit()","e668a547":"SingularityTest8()","e668a7af":"buyFrom(address,uint256)","e668e1f3":"noContestTime()","e6690fb1":"nextAuction(uint256)","e6691249":"getCompte_5()","e66a5e6b":"waveCap1()","e66a6b22":"isSigned()","e66aa720":"pureBalance(address)","e66bf416":"DLK()","e66c4175":"LargeCapStartTimeChanged(uint256)","e66c66d9":"setMonsterCreatorAddress(address)","e66caeb4":"payFortune(uint256)","e66d1b84":"countHoldAmount(address)","e66d4694":"gymContract()","e66d9874":"REQUEST_REJECTED_BY_HOST()","e66dda4e":"wallocked()","e66dde38":"startRound(bool)","e66e00f8":"getAdminDashboard()","e66f51fd":"AxieERC721Metadata()","e66f53b7":"curator()","e66f6e75":"getIsAttack()","e66f7bba":"oracleItQuery(uint256,string,string)","e670f7cd":"checkHash(string)","e6714f63":"eth_min()","e6717d3f":"setPresidenteDeMesa(bytes32,uint256,bytes32)","e671ac23":"getMonthClaimed(address)","e671f510":"onEtherandomExec(bytes32,bytes32,uint256)","e6722531":"checkBoosterQuest(address)","e672eb49":"GetBetInformation(uint256)","e673f646":"setContributor(address,address,bool,uint8,uint8,address)","e6744035":"booleanToUInt()","e6748da9":"setBytes(bytes32)","e674a0bd":"unlock(address,address)","e67524a3":"mintTokens(address,uint256,string)","e6758649":"revokeStakeholderConfirmation(uint256)","e676d53f":"GRAD()","e6774e1e":"setCapTab(uint256,uint256)","e677d67d":"decode(bytes,uint256)","e679366f":"setExchangeTime(uint16,uint8,uint8,uint8,uint8,uint8)","e67ad254":"airBegintime()","e67bcfb6":"viewPreSaleCancelledList(address)","e67c4f96":"_createItem(string,address,uint256)","e67cdfb7":"moveOldUser(uint256)","e67d35c6":"UmeTravelNet()","e67d5b16":"SpeedJump()","e67e04f9":"startAcceptingDonation()","e67e3d56":"ethTaxRate()","e67e8aaf":"cliffPercent()","e67eed44":"getTicketOwner(int256,uint256)","e67f3cde":"about(address)","e67fcd10":"createSale(string,uint256,uint256,uint256,uint256)","e6807ca9":"checkBlacklist(address)","e68122e2":"createConsent(address,string,string)","e681e906":"_disableModule(bool)","e681f989":"saveMetaData(address,bytes32,bytes32)","e6821bf5":"videos(uint256)","e6824b0d":"REAPER_INTREPID()","e682c9ea":"rescindVote(bytes32)","e682e290":"getWhitelistStatus(address,address)","e682e2b2":"PingToken()","e6838ffa":"CbDataStandardToken(uint256,string,uint8,string)","e684aa5c":"amountAlreadyPaidBack()","e684d75d":"from_Initialisation_to_Lifecycle()","e685f2fe":"SilcCrowdsale(uint256,uint256,uint256,address,uint256,uint256)","e686b89a":"stage_2_price()","e6885aad":"Notary()","e688aab4":"changeOperative(address)","e688d097":"activekey(address)","e688f89d":"getMax(uint256)","e6890105":"addRefundTransaction(uint256,uint88)","e6891995":"KStarCoin()","e6891a55":"underwritePriceOf(uint256)","e6898a7d":"getSex(uint256[2])","e689928e":"seventyeight()","e689aa66":"isAllocated9()","e68a471d":"getLatestTokenPayday(address,address,address)","e68a555d":"UpdateUserPELOAmount(address,uint256)","e68a655c":"setEtherDeltaFees()","e68a7c3b":"getAccounts(uint256,uint256)","e68a9610":"releaseTokensTo(address,address)","e68c32b3":"cgadmin(address)","e68d3ae3":"escrow(uint256,string,address,uint256)","e68e64cb":"getCurrentUserReward(bool,bool)","e68f05fe":"SetCrowdsaleAddress()","e68f08a0":"MatchGetted(uint256,bool,uint256,uint256,uint256)","e68fb207":"makeOrder(address,address,uint256,uint256)","e690833a":"getPropertyRatingTuple()","e690d9bf":"Rollercoaster()","e6917e67":"tierOnePurchase()","e691bed4":"get_arbits(address,address)","e693e4d1":"neironixProfitAddress()","e69405fd":"_endDutchAuction(uint256,uint256)","e69432c8":"getMyNormalDragons()","e694d107":"getlastDividendPoints()","e694f694":"distributeLRNX(address[],uint256)","e69506aa":"Tokens_Per_Dollar_Denominator()","e6955d7c":"XYCC()","e6957514":"mergedMinerValidatorAddress()","e695c00c":"assertEq29(bytes29,bytes29,bytes32)","e696d10d":"processPurchase(address,address,uint256)","e696fb9a":"_6_friends()","e696fd64":"change_ico_finish(uint256)","e6972dbb":"readEventFromDatabase(uint64)","e6979b90":"multiAdd(address[],uint256[])","e697b5d8":"referrals(address,uint256)","e69852d0":"getUserNameOf(address)","e698816f":"getTokenIdOfCR(string)","e69932e5":"getFreeSeeds()","e6997f6d":"rootUTXOMerkleTreeHash()","e699e8c3":"removeDefaultOperator(address)","e69a2d9a":"Lent(uint256,address)","e69b414b":"issuedTokensAmount()","e69b9b65":"exchangeableTokensFromSale()","e69d09cf":"releasedForTransfer()","e69d27a8":"lifeFactor_v()","e69d849d":"donate(address,uint256)","e69e04b3":"defaultPrice()","e69e4640":"calculateBalance(uint256,uint256,uint256)","e69e9337":"PERSONAToken()","e69fde41":"KentraToken(uint256,uint256)","e69ffce8":"changeRegulator(bool)","e6a0525f":"getStudentID(bytes)","e6a1e811":"newBet(uint8)","e6a27cf2":"getUserEarningsInfo()","e6a33268":"secondRate()","e6a3afe8":"sendTreasuryTokens()","e6a43d63":"crowdsaleSoftCap()","e6a45026":"fetchStageIndexBySnapshotBlock(uint256)","e6a50d84":"getAddressFromIndex(uint256,uint8)","e6a5d78d":"_getMerkleRoot(bytes32,bytes32[])","e6a605df":"PreTgeEnable()","e6a6d4c8":"getExecutedTransactions()","e6a7638c":"eucledianDistance(uint256,uint256,uint256,uint256)","e6a8fe04":"evHarvest(address,uint256)","e6a9026b":"submitTransaction(address,uint256,string,bytes)","e6a9627c":"setAgentAddress(address,address)","e6a9b2d8":"createTAO(string,string,string,string,bytes32,address,uint256)","e6aa216c":"getExchangeRate()","e6aa96a5":"CRS()","e6aaae81":"tokensSoftCap()","e6aac98f":"currentDayTS()","e6ab96ed":"unstakeContent(bytes32)","e6abaaba":"tier_cap_2()","e6ac17a1":"tokens_total()","e6acca00":"_finishBet(address)","e6acf0c1":"determineOutcome(bytes32,uint8[],uint8[])","e6ad204e":"vestingAccounts(address,uint256)","e6ad5bc7":"getFrozenTimestamp(address)","e6adde32":"setIsHiddenMessages(bool)","e6ae0536":"UpdateBackedAmount(uint256)","e6ae1a97":"getTokenAmount(address)","e6ae89b4":"getPlayerInfoInRound(uint256)","e6ae92b0":"getItem(address,address)","e6ae967b":"updateOrder(bool,uint32,uint128,uint128,uint32,int256)","e6af2d5d":"TRICToken()","e6af35f0":"calculateFee()","e6b09e92":"setAd(string,string)","e6b1602f":"buyOneRabbit(uint256)","e6b18f52":"LongTermProjectTokensAddress()","e6b1c48d":"Amal()","e6b1e71c":"jackpot(uint256,uint256)","e6b35875":"getAllbetByGtype(int8)","e6b55ff3":"TokenEmissionEvent(address,uint256,bool)","e6b6f9d5":"baseDiscounts(uint256,uint256,string)","e6b71e45":"changeIncrease(address[],uint256[])","e6b827a6":"becomeSpermlord()","e6b950f3":"_computeCooldownRemainingTime(uint256)","e6b96447":"updateMaxNum(uint32)","e6b96fe3":"setupFund(bytes32,address,uint256,uint256,address,address,address[],address[],uint8,bytes32,bytes32)","e6b972f5":"userName(address)","e6ba54c1":"specialInfo(uint256)","e6bb64b4":"generateChampionTokens(address,uint256,uint256)","e6bb88b3":"setMinEscrow(uint256)","e6bbe9dd":"getMinThreshold()","e6bc2cc9":"Marcela_Birthday(string,string,string,string)","e6bc5269":"CrypexToken()","e6bc7d2a":"FairDistributionToken()","e6bcbc65":"mostSignificantBit(uint256)","e6bcc297":"STARTING_BANKER()","e6bd0eca":"newUser(address,string,uint256)","e6bd11b2":"availableBuyInShares()","e6bf3fdc":"removeFarmer(address)","e6bf6ca2":"check_deadline()","e6bf70e2":"register(bytes20,uint96,uint32,bytes32[],uint16)","e6c01488":"addComment(bytes32,bytes32,string)","e6c0459a":"right79(uint256)","e6c0e6d5":"discountRate()","e6c0e9e1":"randomDS_sessionPubKeysHash(uint256)","e6c160dc":"RateSetter()","e6c1beb4":"prepend(address)","e6c1d7fc":"getHedgeIndices(address)","e6c21c24":"isCertified(uint256,uint256)","e6c22a11":"district0xNetworkToken()","e6c25aa1":"totalPhase2Donations()","e6c28db4":"getPlayerSpaceshipCount(address)","e6c2dee8":"Vish()","e6c2f4fe":"SendmoneySend(uint256)","e6c3329d":"EthaToken()","e6c35a91":"batchAirDrop(address[],uint256[])","e6c3b4ab":"testBalanceAuth()","e6c4498b":"LOCKING_UNLOCK_TIME()","e6c4a46a":"_addRecord(bytes32,address,string,string)","e6c4c2c7":"admin_tokenAdd(uint256)","e6c50020":"callAllFromMew(uint256,address)","e6c52016":"setToken(address,uint256,address)","e6c54139":"BitmassXToken()","e6c57a08":"timeIncreasePerTx()","e6c5e94c":"setinterval(uint256,uint256)","e6c63912":"lastBlock_a17Hash_uint256()","e6c721e4":"senderDelegates(address,address)","e6c75c6b":"triggerEvent(string)","e6c7c456":"balanceOfContract()","e6c88b31":"auditor(uint256,bytes32)","e6c89d4a":"makeOfferForCityForSomeone(uint16,uint256,address)","e6c8fcf1":"getExpirationRequest(uint256)","e6c9f6ee":"shelf(string,address)","e6ca00b5":"_abortAllRounds()","e6ca0f47":"setStages()","e6cb9013":"safeAdd(uint256,uint256)","e6cbcba9":"PlusOnePonzi()","e6cbd74c":"TokenSold(uint256,uint256,uint256,uint256)","e6cbe351":"saleAuction()","e6cda5ff":"countDays()","e6ce1622":"ProcessMarkings(bytes32,uint256,uint256,uint256)","e6d04d5e":"whitelistedParticipants(uint256)","e6d09529":"getTTTCount()","e6d0a37d":"RemovePoolMember(address,string)","e6d0dfda":"setDiscountTime(uint256)","e6d1092d":"vestedTeam(uint256)","e6d17238":"specialWallet()","e6d17cfc":"_updateToken(uint256,uint256)","e6d18a7a":"nihilumBalanceOf(address)","e6d20a23":"king_of_returning_shirts()","e6d26bc6":"setTeamContractAddress(address,address)","e6d2ceab":"set_pool_percentage(uint8)","e6d30bf2":"finishMinting(bool,bool)","e6d343a5":"getTransContractLocked()","e6d3b85b":"getOwnershipForCloning(uint256)","e6d3f673":"distributeGeneratedPower(uint256)","e6d41b39":"isApprovedTransferer(address,uint64)","e6d44122":"limitPreSale()","e6d4d217":"addAddressToWhitelist(address,string)","e6d54815":"delSpecialPrice(address)","e6d55f3a":"buy10ktickets()","e6d61f70":"resetInactivityTimer()","e6d660dc":"UBT(uint256,string,uint8,string)","e6d66ac8":"sendTokens(address,address,uint256)","e6d76a76":"withdrawSynthetix(uint256)","e6d78add":"tokensPerWei5()","e6d7fd33":"TokenERC20(uint256)","e6d8a47a":"MIN_INVEST_BUY()","e6d8d435":"AMBASSADOR_ONE()","e6d944a7":"computeCurrentPrice(uint16)","e6d95eb8":"DSAuthorized()","e6d970aa":"registry(address,address,bytes32)","e6d9bb0f":"secondsUntilEnd()","e6da89cd":"addVestingForBeneficiary(address,uint256)","e6dab965":"startTrack(bytes32,uint256)","e6dad824":"withdrawFrom(uint256)","e6db38c7":"purchaseFromTime(uint256)","e6dba7e8":"EX()","e6dbf486":"setCLC(address)","e6dc3655":"_validateUrl(string)","e6dc85a3":"weiTotal()","e6dc992d":"buySquareAtAuction(uint8,uint256,address)","e6dd672c":"enterMainSale()","e6dd9a8d":"endBookings()","e6deb223":"addPlayerMapping(string,string,uint256,uint256)","e6deefa9":"deposit(address,uint16)","e6dff3b4":"whitelistInvestor(address,bool)","e6e05562":"getIslandPreviousOwners(uint256)","e6e08ba4":"openPreICOPrivate()","e6e13795":"_addEntry(bytes32)","e6e261b2":"getFundAllTx(uint256)","e6e2c041":"_removeDiscount(uint256)","e6e2e1cd":"VestFFTokens(uint256,uint256)","e6e35407":"startCoinFlip(bytes32,bytes32,bytes32)","e6e45ea2":"MyHumanStandardToken(uint256,string,uint8,string)","e6e46238":"idCount()","e6e5b492":"AirwayBill()","e6e623d5":"setTokenSymbol(address,bytes32)","e6e68cb3":"map(uint256,uint8)","e6e7237f":"claim_time_victory(uint256)","e6e84bf8":"Suren3Token()","e6e88593":"_contractStatus()","e6e8c692":"computeResponseFirstHalf(uint256,uint16)","e6e91cfc":"voidFailedPayment(uint256)","e6e93b14":"setbetEnd()","e6eb00ce":"drawingNo()","e6eb6867":"updateKey(bytes)","e6ecc9c1":"getReservedAmount(address)","e6ecf8a0":"CONTENT_FUND()","e6ed4746":"setBonus(uint8)","e6ed51b7":"createToken(uint256,address,address)","e6ed6c74":"getRabbit(uint256)","e6ee78bd":"approveRemoveOwnerRequest()","e6effbe9":"createAuction(address,uint256,uint256,uint256,uint256,address)","e6f02bf9":"computeBonuses(uint256)","e6f041c1":"testLessThan()","e6f0823c":"deleteNota(uint256)","e6f091f9":"isAccepted(address)","e6f0b6cf":"individualCapInWei()","e6f0beeb":"sort(uint8[4])","e6f1a189":"isCustomToken()","e6f3ae3c":"neighbor(uint256,uint8)","e6f46410":"RBC()","e6f47613":"multiSubWithdrawFor(address[],address[])","e6f4c4a7":"setOtherSettingOwner(address)","e6f602ff":"benTook()","e6f6266a":"numMinters()","e6f67ef2":"payOrganizer()","e6f6b789":"setInterfaceImplementation(string,address)","e6f6e19f":"emissionStage()","e6f7bf89":"GetOwnerAddress()","e6f7ec75":"populateTierRates()","e6f8263e":"JackpotPeriods()","e6f8298c":"cancelActiveLoanAtIndex(uint256)","e6f82ca3":"_clearBridgeTokenFee(uint256)","e6f859e7":"descriptions(uint256)","e6f9476a":"getContribPeriod()","e6f9f265":"areNoncesValid(bytes,uint64[],uint64[])","e6fafef0":"ContributionMinimumUpdated(uint256)","e6fb5c4a":"CHLToken()","e6fbf441":"transferFromSenderPaysFee(address,address,uint256)","e6fd2982":"initialReserve()","e6fd42ee":"currentHalving()","e6fd48bc":"startTimestamp()","e6fd604c":"cut()","e6febc9b":"investorWithdraw(uint256)","e6ff0853":"advisorsTokenWallet()","e6ffd50d":"OXGOLD()","e6fff409":"TetherGBP()","e7001b84":"setOwnedCount(address,uint256,uint256,bool)","e700d63a":"FeesConverted(uint256,uint256,uint256)","e700efc4":"MaxSupply(address,uint256,bool)","e701900c":"refundTransaction(bool)","e701a6d3":"handlePresaleTokenMany(address[],uint256[])","e701d051":"setMarketerRate(uint256)","e70265a5":"FRACTION_ETHER()","e7031501":"jackpotWinPercent()","e703e9c3":"CheckActivate()","e704430d":"numberOfTreasuryOfficials()","e70468b1":"cancelOpenBids()","e7046bf0":"setFx(address)","e704f151":"burnContributorTokens(address)","e7058e15":"Rollback()","e705a519":"SALE_1WEEK_BONUS()","e7062263":"checkEndorsementExists(bytes32,bytes32)","e706918c":"testToggleBitSuccess()","e7073a4c":"MarketplaceV2(address)","e7074de2":"FOUNDATION_TOKENS()","e7084b7e":"closeTimeout()","e7092b41":"getAllowance(address,address,address)","e7095e97":"mintTo(address,string,uint256,uint256)","e70990d7":"summon10()","e7099763":"client_wallet()","e70addec":"right87(uint256)","e70b11df":"revokeAllocation(address)","e70b5259":"mapHeight()","e70b793a":"blankbreedingdata(uint256,bool)","e70c052a":"ethFundDepositAddress()","e70c3276":"HyipProfitTokenTeamAddress()","e70cd5ec":"destroyItemsStorage()","e70e690a":"set_gas_price_max(uint256)","e70e6ece":"BOURSETOKEN()","e70eb392":"claimReward(uint256,address)","e70f5d95":"setIV_R3(uint256)","e70fe5e3":"GenesisToken(address,uint256)","e7105795":"_raceOpened(uint256)","e710efc6":"regSpot(uint16,bytes32)","e711da27":"writeToStorage()","e71264fa":"addNewTokens(uint256)","e7127e29":"addressToTrainer(address)","e712bbad":"enterArena(uint256[4],address)","e71346f4":"removeAnimalIdFromCountry(uint256,uint256)","e7137dbf":"withdrawETH(address,address,uint256)","e713cda8":"returnUint32(uint32)","e714a028":"cancelWithdrawalRequest()","e7151828":"deathData_v1()","e7152a5c":"transferStar(address,uint256)","e715920f":"doBuy(address)","e717db5c":"CheetahCoin()","e717dc3d":"tax_fund()","e717ea61":"getCurrentAddress()","e718234d":"tokenLock()","e71897cd":"alfatokenteam()","e718ad01":"ReclaimPeriodChanged(uint256,uint256)","e7199f82":"transferCentralBanking(address)","e71a02e1":"DELAY_PERIOD()","e71a402e":"mul_float_power(uint256,uint8,uint8,uint8)","e71a5577":"getNumPullRequests()","e71a7811":"completeOwnershipTransfer()","e71b49ad":"ADDR_TKG_ORG()","e71b7913":"expireTransfer(address)","e71b8b93":"bye()","e71bbf48":"TokenSyndicateFactory()","e71bdf41":"addDelegate(address)","e71c3b38":"LogSetRBInformationStoreAddress(address)","e71c9697":"placeBet(uint256,uint256,uint256)","e71d3ae2":"CYFR()","e71d77a7":"PRICE_CHANGE_TIME_STEP()","e71d7bf0":"testControlTransferNotEnabled()","e71df6d6":"acceptMembership(address,uint8,uint256)","e71e592b":"replaceDelegates(address[],address[])","e71ecf6e":"revenueShareCurrency(address)","e71efd18":"Mytoken(uint32,string,uint8,string,address)","e7201d7d":"masterOwner()","e720b4a7":"DEEM()","e720e1b3":"marmoOf(address)","e7211134":"createDAO(uint256,string,bytes32)","e7212728":"getFreeChicken()","e7225175":"timeoutSEC()","e722a522":"createContractPeriodicTable(string)","e7233ce7":"getAdIds()","e7239ed2":"getTimebasedBonusRate()","e723a8f9":"setFundraising(address)","e724529c":"freezeAccount(address,bool)","e7255ef9":"desiredOutcome()","e7271c34":"removeArts(address)","e7278231":"DesToken()","e727de55":"setEggPrice(uint128)","e7299675":"DroplexToken()","e729b416":"lockIndexes(uint256)","e729ebe8":"getSignatureParts(bytes)","e72b0e23":"CreateTUBE(address,uint256)","e72b6091":"extendSaleTime()","e72c40dc":"CoreTeamMinted(address,address,uint256,uint256)","e72c81cf":"demo1(address,uint256,bytes,string)","e72cba6e":"ICO_PHASE1_AMOUNT()","e72e46fd":"ImmlaIco(address,address,uint256,uint256,uint256)","e72eb439":"DogTestToken()","e72f4f2a":"s38(bytes1)","e72f5f63":"maxRandom()","e72f7a78":"finishCurrentGame()","e72f99ac":"deathData_a18()","e72fd4e1":"developerCut()","e72fee5d":"massTeamMsgHash()","e7302541":"convertOldToken(address)","e730e87a":"stageOneSupply()","e73140c1":"setPublicOfferingDate(uint256,uint256,uint256)","e7316a95":"_set10()","e731b034":"HawalaKickoffTime()","e731bb09":"cpn(uint256)","e7320f9e":"getGameMaxNumberOfBets(uint256)","e7326806":"transferOracle(address)","e7328000":"userTokenBalances(address)","e7329e71":"scheduleCall(bytes,bytes,uint256,uint256,uint8,uint256)","e732a7e1":"preAllocationsPending()","e7334156":"processNextDeposit(address)","e73471fa":"_mintNativeCoinsByErcToNativeBridge()","e735b48a":"updateDescription(string)","e735f667":"destroyChildren(uint256)","e7368a1f":"isOnSale(uint16,uint64)","e736f03c":"actived()","e7377ccb":"vestingMembers(address)","e7383c91":"ICOStarted(uint256,string)","e73886b0":"addLocked(address,uint256)","e738a7a5":"createDungeon(uint256,uint256,uint256,uint256,address)","e738cb69":"EventLogged(string,uint8,uint256,address)","e738d2b3":"claimingFee()","e7398fa3":"setTokenRate(address,uint256)","e73995cd":"setSale(uint256,uint256,uint256,address)","e739a4fe":"initialSeed()","e73a914c":"setDAO(address)","e73b7d77":"testControlCreateNewRevisionNotUpdatable()","e73b9e2f":"bridgeAmount(address)","e73c032b":"PRESALE_TOKENCAP()","e73c3c53":"pingOracle(uint256)","e73c6353":"Payroll(address,uint256,uint256)","e73c99a0":"METADOLLAR()","e73cba34":"getTicketRound(uint256)","e73cc2eb":"walletPeriodOf(address)","e73cf000":"EMIToken()","e73de430":"releaseAccount(uint8,address)","e73e5063":"setRewardManagerLimit(uint256)","e73fc0c3":"getTokenByName(string)","e740ce26":"DSToken()","e740f4fc":"card_start_first()","e7416f01":"lastBlock_a18Hash_uint256()","e7422d29":"sendBalance()","e742b943":"ispackagesaleSetup()","e742db66":"tokenTaxRate()","e742f18a":"Task(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)","e743892b":"escrowExpiration(bytes32)","e744052b":"FalconFarmer()","e745656b":"removeImmigration(address)","e7463688":"MasharibTestCoin()","e7477f1c":"WithdrawDeposit(uint256)","e74799b4":"TOKEN_MIN()","e747f31c":"debit(uint256,uint256)","e74803db":"putSaleRequest(uint256,uint256)","e74915d0":"distribute(address,uint256,address)","e74997a8":"transferInternal(string,address,string,address,string,uint256,uint256)","e74a19fa":"AirdropTokensHolder(address,address,address)","e74a48be":"reservedTokens(address,uint256)","e74a5847":"getGladiatorCooldown(address)","e74a84ea":"issueToken(address,uint256)","e74ab046":"increasePrice_20_January()","e74ac94a":"RetailLoyaltySystemToken()","e74b981b":"setFeeRecipient(address)","e74b9d11":"safeToSubtract(uint256,uint256)","e74ba7b3":"getMntTokensPerEth(uint256)","e74baeef":"Upgrade(address,bytes)","e74cd692":"testNextRune()","e74ceb77":"EGGS_TO_HATCH_1CHICKEN()","e74d6d1b":"getLeader(address)","e74e66d7":"toB32(uint256)","e74e6e9e":"GBMToken()","e74f3fbb":"claimVestedTokens()","e74f8eff":"firstDayTokenLimit()","e74ffbd5":"getPart(bytes32,uint256)","e750b5c0":"getProjectAddress(string)","e7514287":"IsGenesisAddress(address,address)","e7519ac0":"_setTokenName(address,uint256,string)","e751f271":"execute(bytes32)","e75235b8":"getThreshold()","e75303a5":"recentWinners()","e7530cfc":"_batch3_icosaleStartTimestamp()","e7542782":"Recovery(address)","e754a4e5":"presale2_startdate()","e75528cc":"buyBuilding(uint256,uint256)","e75539e7":"Schrodinger()","e7556704":"GPSToken()","e755aaaf":"takePoint(uint32,int256,bool)","e755e077":"MKToken()","e75623d8":"setDeploymentAdminsContract(address)","e75705c7":"submitFakeHeader()","e7572230":"getPrice(uint256)","e7574128":"abcToken()","e757835e":"Yotra()","e7579c24":"totalBuyerSupply()","e757c17d":"preSalePrice()","e75864e4":"StarsICO(uint256,uint256,uint256,address,address,address,address,uint256)","e758d445":"getCurrentTierInfo(address,bytes32)","e759dfb8":"investorsBatchSize()","e75a0747":"Staker()","e75afb65":"endCrowdfund(address)","e75b4642":"_decreaseAllowance(address,uint256)","e75bd44a":"currentPrize(address)","e75bf79b":"ESEVENTYSEVEN()","e75bf820":"extraTokensHolder()","e75cdd7b":"isAddressInServer(uint256,address)","e75d1721":"vevcoin()","e75dcb19":"partnerSaleTokenPrice()","e75e69d6":"TryCoin()","e75ea9da":"preICOEndDate()","e75ef9b2":"trackSpend(uint256)","e75f02e3":"UraniumPlus()","e75f1634":"pearlSend(address)","e75f6e21":"totalMfr()","e7609c16":"getFarmer(address)","e760a11a":"attachContracts(address,address,address,address,address)","e760d284":"BOOKIES(uint256)","e760da9d":"createCP(address,string,string)","e760fb06":"groveAddress()","e7619fad":"allTokenIds()","e761eec6":"RecordTransfer(address,address,uint256)","e76240a4":"calcZWCAmountByToken(address,address,uint256)","e76261fb":"GetContractStateCancelledByLandlord()","e7637b5b":"deleteInfo(uint256,bytes32)","e7638445":"getRaffleTimeLeft()","e7651d7a":"normalProcess()","e7657e15":"ids()","e765bc5a":"thirdStageEnd()","e765c69a":"betOnDozen(uint256)","e765cb44":"auctionMinPrice()","e7663079":"owner_()","e766d79e":"CrowdsaleEndChanged(uint256,uint256)","e767b578":"createPlayerAndAssign(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,bytes,string,address)","e76895bf":"OwnerAdded(address,bytes32)","e7694493":"is_white_listed(address,uint256,bytes)","e7696a29":"updateWeedTotal(uint256,bool,uint16)","e769dfbd":"buyTransferFee()","e769f61f":"private_withdrawAll(address)","e76abcb9":"presaleBonusTier2()","e76b8126":"finish(address,address,address,address)","e76cc0d3":"failWithoutReason()","e76dd3ef":"returnBet(uint64)","e76e337d":"Honolulu()","e76e5ecf":"__DEBUG_BAL()","e76e9286":"depositPresale(address,uint256,uint256)","e76eabe5":"finishPreIcoAndStartIco()","e76ece01":"setInvestStart(uint256)","e76ed0e3":"DividendToken()","e76f0836":"getcurrNumOfCards()","e76f3d5a":"REFERRED_BONUS_PERMILLE()","e76f62cd":"Reissue(uint256)","e770390d":"deleteMultitoken(uint256)","e771066f":"marriageProof(bytes)","e7712a94":"MDTCrowdsale(address)","e7718594":"totalAccessories()","e771e193":"GetCountryCode(uint16)","e7722f9b":"isAddressInvited(address)","e773c82f":"bonusEnds2()","e773ffd5":"queryPlayerUnAwakeSkillIds(uint32[11])","e7740cf9":"revealPaper(string)","e7751e48":"ownershipAuctionCount(address)","e775781b":"getPopularity(bytes32)","e775f01f":"CAPToken()","e776a5b5":"wallet_address()","e776fa22":"AlphaconCrowdsale(bytes32[5])","e77772fe":"tokenFactory()","e777b97b":"LogRegisteredInterval(uint64,uint64)","e777d060":"removeProviderAdmin(address)","e7781f3c":"ToppedUp()","e77900e9":"projectMemberAddress()","e779a8cf":"airLimitCount()","e77a6daa":"tokenCalculate(uint256)","e77a912f":"prefilled()","e77aaee2":"enterRecoveryMode()","e77b077f":"canExchange(address)","e77b8d94":"ipow(int128,int64)","e77ba2c9":"checkIfMegaJackpotWinner()","e77c646d":"redeem(uint256,bytes)","e77cfa1c":"weiPending()","e77db232":"isKYCApproved(address)","e77dd5b3":"setSoftCapUSD(uint256)","e77df041":"LykkeTokenBase(address,string,uint8,string,string)","e77e02d3":"giveAdvisorsTokens(address,uint256)","e77ef21f":"drawdown()","e77f9906":"gameListOf(address)","e77ff2f6":"centralAuthority()","e77ff818":"privateSaleEndTime()","e780377e":"liquidityPoolAllocation()","e7804444":"allowMigrate()","e780f6c9":"setDestructionAddress(address)","e7810318":"updateInitialBonus(uint256)","e781d8c5":"getPC()","e7827e85":"unfreezeTokens(uint256)","e7829152":"prometh(address)","e782b172":"transferWithLockBatch(address[],uint256[],uint256[],uint256[])","e783bfb1":"totalAllocatedToTeam()","e7843949":"STATE_PAYOUT()","e784a923":"thisweek()","e7850f2d":"Sunny()","e78562c0":"dividendRecentBuyersPercentageDecreaseFactor()","e785bab2":"withdrawAdminRevenue()","e785daaf":"setUnownedPurchaseableMode(uint256,bool)","e786140e":"setBio(bytes3,bytes)","e78631fb":"changePhaseToICOweek2()","e78686eb":"reclaimContribution(address)","e78721af":"getSmartSharingByID(uint256)","e7873b58":"tokensBurned()","e787418a":"isSubmitted(uint256)","e787654c":"_forumIdToAddr(string)","e787887b":"initialRewardFraction()","e787b523":"CLKToken(address)","e788b5eb":"emitAreaSet(uint256,bytes32)","e78bfee0":"allocate(address,uint256,uint128,uint256)","e78c1136":"CreateLCD(address,uint256)","e78c219b":"takeBuy(address,uint256,uint256,address)","e78c3462":"betsOff(uint256)","e78ce8db":"getCarEarning(uint32)","e78ce986":"KOK()","e78cea92":"bridge()","e78d6306":"getBountyTransfers(uint256)","e78dd6f1":"mainSaleTokenLocked()","e78e3ab1":"ESOPOpened(address)","e78f5412":"_whichCourse(uint256)","e78fd9a8":"submitMint(address,uint256)","e78ff581":"getProposalPayloadHash(bytes32,uint256)","e790aa9e":"joinMountain(bytes32,address)","e791b66c":"Wemark()","e79206e6":"finishElections(uint256)","e7921023":"getHolderLink(address)","e79248ea":"setRelationFrom(uint8,address)","e7930d21":"DeliverToken()","e7933601":"getOverBalanceWEIInfo()","e7933d58":"setIcoPhaseAddress(address)","e7938b82":"minAllowedStakeInPercentage()","e79487da":"checkInvariant()","e7950ede":"logs(bytes)","e795c149":"FinalToken(uint256)","e79609e2":"getOrCacheDesignatedReportStake()","e7964b49":"sendeth(uint256)","e796570b":"isClearingPriceValidator(address)","e796818e":"AEFTOKEN()","e79695da":"WhitelistUpdate(address,bool)","e796a6eb":"refund(uint256,address,uint256)","e796c43c":"_cancelActiveAuction(uint40,address)","e797398f":"IsMultiFreeze(address,address[])","e797496b":"sigDestinationApproveAndCall()","e7977701":"setLotteryOptions(uint8,uint256,uint16,uint256)","e7979efa":"LOG_BetWon(address,uint256,uint256,bytes32)","e797ec1b":"enableMinting()","e7984a3b":"updateRewardForContributor(address,uint256,string)","e7986466":"setSupportedToken(address,bool)","e798f4eb":"webpud()","e7990596":"getAddressAndBalance(address)","e7992845":"pendingInstallments()","e7996f07":"removeAttribute(bytes32)","e799f374":"fundingMaxInWei()","e79a198f":"unregister()","e79ab547":"bulkTokenSender(address[],address[],uint256[])","e79b4388":"LogBidExpired(uint256)","e79d0860":"partnerCount()","e79e0a22":"getEthers(uint256)","e79e2bd3":"updateArea(uint256)","e79e770f":"EmergencySafe()","e79faa58":"unpause(string)","e79fb53c":"setUSDEtherPrice(uint256)","e79ffa11":"_dev()","e79ffa99":"getpurchasersLength()","e7a01215":"right2(uint256)","e7a01352":"adjustHardCap(uint256)","e7a02352":"MintDarioToken(address,int256,uint256)","e7a0459a":"setCatalogPlayersAddress(address)","e7a05f08":"isTokenSaleToken(address)","e7a17d83":"emitTaskCreated(uint256,uint256)","e7a25bfc":"JustEscrowTestCoin()","e7a2e28e":"fishbank()","e7a33822":"seal(address,uint256)","e7a35405":"managerAddressNumberMap(address)","e7a3c218":"testFail_mint_without_add_authority_to_controller()","e7a4581a":"getCirculationSupply()","e7a49c2b":"trustedTransferTokens(address,uint256)","e7a4d9d3":"LIQUID_TOKENS()","e7a60a9c":"getValidatorAtIndex(uint256)","e7a6e75c":"ETH_USD_rate()","e7a7043d":"addPrecommitmentAdjustment(address,uint256)","e7a83c74":"AT()","e7a8a5cb":"setTier(uint256)","e7a95a7f":"WHOLESALE_THRESHOLD()","e7aa3afc":"getProjectStatus()","e7aa8ed5":"CrowdsaleMCS()","e7aab290":"set_s(string)","e7ab4f1c":"getShareholderArray()","e7ac4df8":"launchInvestment(uint256)","e7ac81e5":"productSold(uint64,uint32,string)","e7acaa1e":"createJob(bytes32,address,address,uint256)","e7acb2b4":"ZitronSupply()","e7acdcd0":"deleteInvest(uint32,uint32)","e7aef169":"refreshInvestor(address,address,uint256)","e7aefd01":"allowTransfersEnabled(bool)","e7af4540":"ChiyouCulturalAcchain(uint256,string,uint8,string)","e7afae52":"WayCellToken()","e7b0f666":"totalPaid()","e7b172ed":"GAS_PRICE_LIMIT()","e7b1983e":"giveReward(uint256[4],uint32,uint8,bool,uint32[4])","e7b1a7ae":"collect_fee(string)","e7b1d43c":"withdrawVotingRights(uint256)","e7b1d6dd":"setServerStatus(string,uint256)","e7b2d7e5":"deprecateAndUpgrade(address)","e7b3387c":"getVoteCount()","e7b379c6":"TokensUnlocked(address,uint256)","e7b43c44":"changePuzzle(uint8,uint8,uint8,uint8,uint8)","e7b48d98":"getBurningMans()","e7b48f74":"get(int256,address)","e7b4e5ab":"entrants(uint256)","e7b512ec":"setAddress(bytes32,bytes32,address,bool)","e7b6135d":"getClown(uint256)","e7b6805b":"OriginalMyIdRepository()","e7b686a7":"UnpackEntity(bytes)","e7b69e74":"interest(uint256)","e7b6ff08":"beerAndHookersCap()","e7b70b38":"getPurchaseInfo(uint256,uint256,uint256,bool,uint256,uint256)","e7b7aea5":"changesp2(address)","e7b7c2a6":"setup(uint256,uint256,uint256,address,uint256,uint256,string,address,address)","e7b808ea":"getAccountFeeModifiers(address)","e7b83730":"tokenAmount(uint256,uint256)","e7b89977":"setFeeAccount2(address)","e7b8d977":"editionsOfType(uint256)","e7b94df4":"donationWallet()","e7b9aaef":"FIRST_VOLUME_BONUS()","e7b9db8d":"confirmBurning(uint256)","e7ba1012":"supplyController()","e7ba2cc8":"BelottoCrowdsale(uint256,uint256,uint256,uint256,uint256,address,address,address,address,address,address)","e7ba6c46":"resetReservations(address,bool)","e7bb22cd":"getValidClassId(uint64,address)","e7bb5233":"crowdsaleState()","e7bbda11":"heroCore()","e7bd85ca":"PFGC(uint256,string,string,bool)","e7be5617":"setOracleReference(address,address)","e7bf5352":"_withdraw(uint128,address,uint256,uint128)","e7bf7b08":"GroupCreated(uint32,uint256)","e7bf7dfc":"getProductPrice(uint256)","e7bfcf57":"HighCoin()","e7bfdc93":"clearLevels()","e7c0bd15":"SeedLog(address,bytes32,uint256)","e7c0dad5":"checkApprovalRatio()","e7c0e558":"BoomerangLiquidity(uint256,address)","e7c12837":"getPOOL_edit_24()","e7c158c6":"_setStrengthValue18(uint256)","e7c17972":"btcToTokens_(uint256)","e7c4118a":"certIssued()","e7c5c27f":"saleOpen(address)","e7c5d907":"Broker(bool)","e7c6229a":"publicOfferingHolder()","e7c6978e":"RSCCoinCrowdsale(address,address)","e7c77c80":"getAmountDailybyNum(uint32,uint8[4])","e7c8d171":"getTotalWidth(uint16,uint16)","e7c8dd6d":"GemsToken()","e7c8f61e":"enableAura(uint256,uint256)","e7c957c0":"MultiTransact(address,bytes32,uint256,address,bytes)","e7ca1343":"setReserveForCompany(address)","e7ca438d":"getUserDisplay(address)","e7cc62bd":"total_users()","e7cc862b":"storehouseIndex(uint256)","e7cc8ded":"generateLockupTokensDelegationSchemaHash(address,uint256,bytes32)","e7cd4a04":"addWhiteList(address)","e7ceaeab":"getTrackOwner(bytes32)","e7cf0171":"enableTokenClaiming(bool)","e7cf514d":"setMinOrderEthAmount(uint256)","e7cf548c":"getBurnCount()","e7cf6fcb":"changeEtherTxLimit(uint256)","e7cf7b34":"ICO_PRICE3()","e7cfafce":"getBirthMonth()","e7d00518":"FinishTokensale()","e7d0242b":"totalWeiCollected()","e7d03e93":"setMaxiumInputEther(uint256)","e7d0c552":"getRoyaltyPartners()","e7d0c7e7":"timeStampOfCrowdSaleStart()","e7d11a44":"getFutureTransByIdx(uint256)","e7d137ec":"balancesAddressDescription(address)","e7d1a024":"NewOne(address,uint256,uint256)","e7d2340f":"playervanity(address)","e7d29d8b":"withdrawExtraToken(address)","e7d29e38":"addHolderAddress(bytes32,address)","e7d2c590":"showCompany(uint256)","e7d2f315":"totalSupplys(address[])","e7d3fe6b":"mint(uint256,uint256,address)","e7d4761b":"unhalt_15day()","e7d47c2e":"selflleryManagerWallet()","e7d48741":"allOldUsers(uint256)","e7d4fd91":"getTokenControlInfo(address)","e7d50e5c":"FarmShare()","e7d53fcb":"privateSale(address)","e7d5a62b":"testNot()","e7d80c70":"getOrderCreator(bytes32)","e7d854af":"setWithdrawABIHash(bytes32)","e7d86204":"registerTeamScores(uint256[])","e7d87cda":"arbTokenExists(uint256)","e7d8c7db":"MicroToken()","e7da257f":"highestBidderCC()","e7daaa5a":"OwnerManager()","e7dac983":"submitClaim(uint256,uint256,uint256,uint256,uint256)","e7dafdb6":"transfer_token(address,address,uint256)","e7db6770":"startWork(uint256,bytes32,bytes32,address)","e7dde9a3":"_setDailyLimit(uint256)","e7de559c":"contrDividends(uint256[])","e7de72a4":"createFlag(uint16,uint256)","e7dee968":"KittyCore()","e7df2f3e":"disburseAddr()","e7e00d1d":"assignTestAddresses(bool)","e7e024ce":"janwin(uint256,uint256)","e7e0ca7b":"tariffIndexForAmount(uint256)","e7e10490":"cancelSale()","e7e1e69f":"commitBid(bytes32,string)","e7e2aa0e":"buyer_cancel()","e7e31d52":"setNinjaKindCount(uint8)","e7e31e7a":"addSpender(address)","e7e3411d":"fechBalanceByAddress(address[])","e7e3e167":"rate(address,int256)","e7e481c5":"BP_SPARTAN()","e7e52369":"firstMembershipPurchase()","e7e6aed1":"test_testableStandardCampaignContribution()","e7e766ca":"CSCRarePreSaleManager()","e7e7e3e8":"ETHEREMON_PROCESSOR()","e7e8116e":"forceTransferTokenOwnership()","e7e96a43":"getPOOL_edit_2()","e7e9e106":"rewardVote(address,address,uint256)","e7e9f385":"notarise(bytes32)","e7ea3d2d":"usernames(bytes16)","e7ea4406":"Civiq()","e7ea8065":"setNameRefer(string,address)","e7ea8122":"isStateInitializing()","e7eaaa05":"totalAvailableForSale()","e7eb285f":"stepEtherValue()","e7ebc348":"nonActivationWithdrawal(address[2],uint256[8],uint8,bytes32[2])","e7ec8182":"issueTeamTokens()","e7edab45":"_cancelParticipation()","e7ee6ad6":"rate(uint256)","e7ee85a5":"quickBuyPath(uint256)","e7eed1f7":"getCurrentPot()","e7efcfc2":"totalPayoutAmount()","e7f034c1":"getUri(address,uint256)","e7f0a865":"transfertokenContract(address)","e7f1111e":"initializeHolding(address)","e7f18249":"insertShareholder(address)","e7f1c468":"UserSold(address,uint256,uint256,uint256,uint256)","e7f23cb1":"getCallStack(uint256)","e7f35484":"NewAquarium(address)","e7f4037a":"demintTokens(address,uint8)","e7f40d35":"IntervalBytecodes()","e7f44523":"ReceivedLTC(address,uint256,string)","e7f4767c":"delimiter()","e7f56111":"ClaimPayout(uint8[],bytes32[],bytes32[],bytes)","e7f578e1":"createDoc(string,string,string)","e7f6edbd":"holdingTax()","e7f9e408":"stopTransfer()","e7fa443e":"unlockCashpledge(bytes32)","e7fa6883":"investFor24Months(address,uint256,uint256)","e7fa7969":"assertEq25(bytes25,bytes25)","e7fac728":"friendsFingersRatePerMille()","e7faecec":"testFailInsufficientFundsTransfers()","e7fb5388":"exit(string)","e7fb74c7":"buyItem(uint256)","e7fbee28":"checkIfCustodiesServedBBD(address[])","e7fc4b64":"ricardianVoucher(uint256,string,uint8,string,string,string,uint8,uint8)","e7fcde9b":"setFeeType(uint256,uint256,uint256)","e7fcf520":"signToResetTokenControlInfo()","e7fd9a13":"addEmployee(address,uint256)","e7fdc514":"buyFromVault(uint256,uint256,uint256)","e7fde97a":"_withdrawDividends(address)","e7ff0e38":"bountyDistributed()","e7ff8901":"transferWine(address,bytes32)","e80080d0":"cancelBurnRequest(uint256,string)","e80160ab":"order(bytes32)","e8017bb7":"getHTLCSpendingHash(int256,bytes32)","e801a361":"tileTimeoutTimestamp(uint256,address)","e8022dc9":"PLAgreements(address,address)","e8024468":"getHeroRequiredGoldForLevelUp(uint256)","e8024d75":"eNomCoin()","e8025d77":"changeStatus(uint256)","e8038e25":"TokenSale(uint256,uint256,address)","e803b708":"setDetails(string,uint256)","e803bcc6":"SetPriceIncrease(uint16)","e8046759":"decimals_multiplier()","e8055e9c":"burnExcess(uint256)","e8069e84":"verify(bytes32,bytes,address,address)","e806c603":"robottradingToken()","e8071f30":"exponential_decay(uint256,uint256)","e8078d94":"addLiquidity()","e8083863":"finalizeAuction(uint256)","e8088ca2":"GetEvaluate(bytes32,uint8)","e808aef7":"isIcoSuccess()","e808d671":"crowdsaleTokenMint()","e809046f":"NumeraireBackend(address[],uint256,uint256)","e80919d5":"mintUnderCap(uint256,uint256)","e80a4df7":"NotusNetwork()","e80b128f":"tournamentsAddr()","e80b7ab6":"clearArray()","e80bd3e5":"addCertificationDocumentToSelf(bytes32)","e80c4182":"ShresterToken()","e80d2ef8":"calculatesubscribersell(uint256)","e80d47dd":"USDSTEMPRICE()","e80d60b8":"CryptohomaToken()","e80db5db":"coreContract()","e80f23aa":"tokenApprovalWithSignature(address,address,address,uint256,uint256,uint256,bytes32,bytes)","e80fd970":"etherToSendDev()","e810267a":"dateEcoRelease6()","e8107ed4":"ElectriumToken(uint256,string,uint8,string)","e81140a8":"setPreICOStartTime(uint256)","e811f50a":"collectedFee()","e8125eb9":"updateContractTokenBalance()","e814018d":"getCrowdsaleHardCap()","e8141f93":"logUint(int256,uint256)","e8144c42":"advisorsTokensLock()","e8147a25":"changeMinBet(uint256)","e814c941":"removeParticipant(address[])","e815b60d":"SencToken()","e8168177":"lastBlock_a2()","e816a515":"takeFlight()","e816f76f":"Association(address,uint256,uint256)","e8171f37":"valueOfScheme(uint256)","e81766e8":"AgriChainDataContract()","e8179abf":"getStar(uint256,string,string)","e819172a":"TestCoin2()","e8197a4b":"totalSuppliedAfterLock()","e81a6c58":"issueRefundIfNecessary(uint256)","e81b34af":"_deployContract()","e81b3c88":"CardCount()","e81b53d0":"computeCost(address,bytes32,bool)","e81ba080":"updateMaxCap(uint256)","e81c17a1":"setOwnerAt(uint16,uint16,uint8,address)","e81c2fec":"reDistribution()","e81ca129":"consumeTicket(address,uint256)","e81cf24c":"replace(uint256,uint256)","e81d53cf":"arr()","e81d6c6f":"reserveY2()","e81dd181":"callSoftCap()","e81e0a09":"Win(address,uint8,uint256)","e81e1ccc":"withdrawDonation()","e81e935a":"summPrivateSale()","e81ecb4c":"received(uint64)","e81f0154":"pipeIndex()","e81f02b6":"withdrawFrom(address,address)","e81f35fd":"setLastTokenId(uint256)","e81fdd77":"restCandy()","e8203e38":"emitWithdrawn(address,uint256,address)","e820a32f":"vetoPayout(uint256,uint256)","e820ce4a":"setCTime(uint256)","e8223468":"sha3clone(bytes)","e8227611":"setRealisation_effective(uint256)","e8238688":"setTokenVestingFactory(address)","e823b9bf":"toInt256Safe(uint256)","e823da03":"VKBToken()","e823fa20":"checkDragonStatus(uint256,uint8)","e824b9c7":"moftakToken()","e827653c":"referalCount(address)","e827b3e2":"latestPost(address)","e827f7f3":"request(bytes32,string,uint256)","e827ff89":"HDToken99(uint256,address)","e82898b3":"loser()","e828a293":"TestyToken()","e82906b3":"ISCoin(address)","e82935da":"like(uint256)","e8294aad":"bonus1Ends()","e8297da2":"defaultLockInDuration()","e829945a":"buyProperty(uint16,uint256)","e829a171":"MIN_GET_AMOUNT_FINNEY()","e829d86d":"releaseAgents(address)","e82a7d8d":"submitAnswer(address,uint256)","e82aa31f":"createTeam(uint256[])","e82b7cb2":"proxySetCosignerAddress(address,bytes32)","e82bef29":"fundAddress()","e82c6e7b":"totalTokenSales()","e82c6e8a":"mintFirstTokens(address,uint256,uint256[])","e82cc47f":"getFundInfo(bytes32,string,address,address)","e82d777c":"FHCContract()","e82db7a0":"Batman(uint256,string,string)","e82ed40c":"communityContributionWithdraw(uint256)","e82f7dd4":"testThrowsRetractLatestRevisionNotUpdatable()","e83029bb":"checkbalance(address)","e8303659":"ETHER_CAP()","e8307d00":"setMinPurchase(uint256)","e8315742":"maxTokens()","e831884e":"getPhaseAtTime(uint256)","e832b482":"channelConfiguration(uint64)","e832fda3":"select_at(uint256)","e833bb53":"FLKDForGas()","e833cc12":"getNamespace(uint256)","e83400f6":"getBudgetOfCampaign(bytes32)","e83447d0":"breakLink()","e834a834":"claimed()","e834e89c":"FlexCoin()","e8350fae":"proclaimInactive(uint8)","e8358025":"isCrowdSaleFinalized()","e835852b":"LogQueryFeeSet(uint256,uint256)","e835dd27":"STAKE_MIN_AGE()","e837ab59":"getParticipantByAddress(address)","e8380983":"BChain(uint256,string,uint8,string)","e8387af8":"_mint(int256,address,uint256)","e839554e":"getBasicCentsPricePer30Days()","e839e65e":"query2(string,string,string)","e83b2adf":"PTestYankeeCoin(uint256,string,string)","e83ba1fe":"stageFundGoalReached(uint8)","e83c0bba":"setEmployeeTokenAllocation(address,address,address[],uint256[])","e83c272c":"setTime2(address,uint256)","e83c460d":"TimeWeekOne()","e83c78d4":"toggleContractStopped()","e83ce1f9":"addAddressAlias(address,address)","e83cf468":"sendBattleTokens(address,uint256)","e83d1c5e":"LatestRechargeTime()","e83d589b":"getLLV_edit_24()","e83ded8e":"balanceOfLockTime(address)","e83dfe5a":"ConcludeChallenge(uint256,string)","e83e0359":"dividendsRightsFixUpdate_(address,uint256)","e83e34b1":"maxFees()","e83e92ac":"setSalesFee(uint256)","e83f682a":"beginContinuousSale()","e8400be5":"startBetting(uint32,uint32)","e840c116":"SocialNote()","e8421b94":"PlayToken()","e84221ef":"playBigOrSmall(uint256,uint256)","e8425467":"USDDecimals()","e8429510":"TokenForInvestor(uint256,uint256,uint256)","e8436936":"StatsMinted()","e8436ca5":"setMainCampaignStatus(bool)","e8443708":"PaygineHasDeployed(uint256)","e844ca34":"withdrawTokensToAdvisors()","e844cb18":"batatacoin()","e844d097":"addCandidate(uint256)","e845105c":"countriesLockEndingAt()","e846e7c0":"drawPeriod()","e846f1f4":"collectPercent(uint256)","e846f997":"contributionWallet()","e8474230":"getHybridizationFullPrice(uint256)","e8477bda":"setBuyMaxLimit(uint256)","e847ca9c":"BAXI()","e84818bc":"largeContribPercentage()","e8489626":"setProxy(address,address,bytes32)","e848aba2":"addWhiteListUsers(address[],uint256[],uint256[])","e849ec8c":"ChangeTokenContractOwner(address)","e84a481b":"adddotchtooffer(uint256,uint256)","e84b53bd":"addItemTo(address,uint256,uint256,uint256,uint256)","e84b69e4":"editTimer(uint8,uint256)","e84c9d5c":"removeWhitelister(address,address)","e84d2abf":"inMainSalePeriod()","e84d90c0":"checkDisabledStatus()","e84d92e8":"_getBridgeNativeFee(uint256)","e84f7054":"refundMyIcoInvestment()","e84f82f0":"emitBegin()","e85034a2":"walletTrade(address,uint256,address,address,uint256,uint256,bool,bytes32)","e85061ca":"playerAction(uint256,uint8)","e850899a":"StartPreSale()","e850a8ef":"payTo(address[])","e850e4c4":"GetContractStateEarlyTerminatedByLandlord()","e850efaf":"setRegionTax(uint16,uint8)","e850f3ae":"getGenerationIdForCall(bytes32)","e851808e":"CHARITYSEACOIN()","e8518341":"transferOwnershipWithHowMany(address[],uint256)","e8518be0":"requestReplaceOwner(address,address,string)","e8518dc6":"rateWithBonus()","e85230e9":"minETHin()","e85353e1":"admin_set_withdraw(address,bool)","e85365d5":"firstblock()","e8539244":"SetPayrollLocked(bool)","e85393d7":"WithdrawEmergency()","e853cda3":"checkKncArbitrageRate(uint256)","e853ce64":"joinTeam(uint256,uint256)","e854d135":"executeWill(address)","e854dfb4":"Order(address,uint256,uint256)","e854eeb3":"fciDecimals()","e85501d8":"revokeRequest()","e8554e8b":"getRaceBaseStats(uint256)","e855aee5":"_mint(uint256,address)","e8561d36":"cashBackFromProject(address,address)","e856528a":"mul(uint128,uint128)","e8580dd4":"Survey(address,uint256,string,bytes32[])","e85ac5b0":"ownerSetAuditor(address)","e85b26c0":"createClaim(address,uint256)","e85ca2a4":"bitcoin_multisig_vault()","e85dcfe8":"ScheduleTransaction(string,uint256,uint256)","e85de8e7":"valueInUSD()","e85e0bd7":"addToken(uint256,uint256,uint256)","e85e3d92":"LongClosed(address,uint256)","e85efc50":"assertEq(uint256,uint256,bytes32)","e85f3be6":"TOSPrivateHoldingContract()","e85f3fb0":"setAuthorizedSpender(address)","e86142b5":"orderOnSaleAuction(uint256)","e861c4f1":"dividendEndTime()","e861e34d":"minInvestInWei()","e861f077":"HaltStatus(bool)","e8625060":"testDisputedInvalidSequenceWrongWriteValue()","e863051c":"SmartForestCoin()","e86310eb":"exp(address,address,uint256)","e863a122":"getPercentageCW()","e863d8cc":"repeatedPayment(address,uint256,uint256,uint256)","e863f0d3":"acknowledgeOrder(uint256)","e8641652":"strCompare(string,string)","e86434ef":"startRefundPayment(uint256,uint256)","e864f2b6":"exchange(address,uint128)","e864fd27":"checkCap(uint256)","e8665638":"bonusVestingPeriod()","e866d302":"setJackpotWinCount(uint256)","e86701e0":"playerFlight(uint256,uint16)","e8672de9":"removeRatePlan(uint256)","e8679512":"getTransformInfo(uint32)","e867ecda":"setPricing(uint256)","e8685ba1":"getNumOfCandidates()","e8689bf8":"_emitUserRatingGiven(address,address,uint256)","e868b55e":"createReaderWriter(bytes32,address,address,bytes32)","e868cd17":"ManUnitedSC()","e86994ea":"getPropertyColors(uint16)","e869d45f":"registerScheme(address,bytes32,bytes4,address)","e86a3b8b":"WSIPrivateEquityShare()","e86a9b1e":"Custodian(address[],uint256,uint256,address)","e86afde0":"description(uint64)","e86ba262":"getTimeLimitForReplyOnProposal()","e86bf267":"takeCfd(uint128,address)","e86c6431":"isTransferManager(address)","e86c87d3":"func_0778()","e86cf04b":"TinyProxy(address,uint256)","e86d24ca":"getSmartSharingByHash(bytes32)","e86d86ea":"totalTransferWhitelistMapping()","e86dad29":"assetArray(uint256)","e86dea4a":"feeNumerator()","e86e3f2a":"setArrIntF1StrF2(int256[],string)","e86f2c75":"mainSaleSecondBonus()","e86f6699":"isWhitelistedAddress(bytes32,uint8,bytes32,bytes32)","e870a88e":"setnumMax(uint16)","e870bec1":"logging(uint256)","e871614a":"getResponseUint(uint256,bytes32)","e871f35f":"addCourse(string,uint256,uint256,string,string)","e872a05e":"addrMine()","e873d02d":"cap2(address)","e8742b55":"setComment(string)","e87508be":"investorDeposit()","e8755d00":"setServiceFee(uint256,uint256)","e8756037":"finishExchange()","e8757d19":"donations()","e875bfbc":"getMinimumFunds()","e8763023":"ProofOfAwareness()","e876bdef":"getEtherRaised()","e876c273":"TotalSupplySet(uint256)","e876e3f1":"investorsFee()","e87752f4":"icsToken()","e8777158":"grantVested(address,address)","e877e541":"bankuToken()","e877f910":"sendToContract(address,uint256,bytes)","e8787040":"ElevenElevenToken()","e8789d88":"getEndTimeOfStage(address,uint256)","e878d65f":"QIUToken()","e879790a":"HHRFallback(address,uint256,uint256)","e87a0a59":"EIB()","e87a9d84":"phase1AccountTokensMax()","e87aa769":"_getShinyPurity(uint16,uint16)","e87b0242":"ADVISORS_LOCK_DATES(uint256)","e87bbdbb":"spawn(bytes32,address,address)","e87c05c6":"restSupply()","e87c0ee6":"getGameCount()","e87c1463":"bidTicket(uint256)","e87da468":"addChild(bytes32,bytes32)","e87df70e":"fivetimes()","e87e77fe":"switchAirdrop()","e87ea055":"checkCurrentStage()","e87ed8b5":"RTB2()","e87f41bb":"deleteInvestorTokens(address[],uint256[])","e87ff056":"getTeamByPosition(uint8)","e8801360":"soldTokensCounter()","e8814606":"CryptosisToken(uint256,string,string)","e882f844":"DINAR()","e883429a":"isTransferAllowedteam()","e8836183":"blockLock()","e88390aa":"coinSendDifferentValue(address,address[],uint256[])","e883d157":"outstandingPower()","e88499a9":"claimPayout()","e8850978":"reportMissingChunk(bytes32,uint256,uint8,bytes32,bytes32)","e8853e32":"getData_28()","e8854cfd":"getPointer(uint256)","e885910f":"trackCrowdsale(address)","e885b81f":"Bonuslist(address)","e8862924":"decodedLocksroot()","e886dade":"bulkTransfer(address,address[],uint256[])","e887841e":"to(uint256)","e8878b11":"wakeUpProxy()","e88810ff":"presalePiDiscount()","e8884aee":"_useFromDailyLimit(uint256)","e88885fa":"price1Of(uint256)","e888e445":"CatalogoOuvidorias(bytes32,uint8,bytes32,bytes32,int256)","e88a728f":"getAssetIdOwnerAndOIndex(uint256)","e88ab341":"contributorsVestTokenAllocation()","e88b0067":"mintInvestment(string,string,uint256,address,uint256)","e88b8ac6":"confirmAndCheck(bytes)","e88b9436":"MYR_Omnidollar()","e88bc2ba":"Variation(address,address)","e88c6a8a":"moveToken(address)","e88d27eb":"registerProperty(string,string,string,string,string)","e88d9567":"changeDepositFee(uint256)","e88eff06":"setUserRoles(address[],bytes32[],address[],uint8[])","e88f3a86":"addBonusToBlock(uint256,uint256,uint256)","e88f4510":"LigerToken(address,address,address,address,address)","e88f4c6f":"usedCoreSupply()","e88f97bd":"query2_fnc(uint256,string,string,string,uint256)","e8903656":"executeSubscription(uint256)","e8906a2d":"addSigners(address[])","e89152ac":"ItemReceived()","e8916af9":"addLicenseTerms(bytes32,bytes32,bool,uint256,bool,uint256)","e891c9db":"validateWithdrawalSignature(address,uint256,address,address,bool,uint256,uint8,bytes32,bytes32)","e8927fbc":"increase()","e8928f7a":"setMaxWei(uint256)","e8930efd":"Investors(address)","e8932ea1":"burnClosedTokenInternal(bytes32)","e8936b29":"liveSince()","e894000b":"authorizedPower()","e89401a1":"multihash(bytes32)","e894326c":"addDepositCreator(address)","e8944564":"test_insert_findWithHintPrevRemoved()","e894f117":"TokenTimelock(address,address,uint64)","e8959b94":"addUser(int256)","e8974832":"levelTwoBonus(uint256)","e89826ac":"addGame(string)","e89876d6":"POSController(address,uint256,uint256,uint256,uint256)","e89927ef":"voteForCandidate(string)","e8992d40":"additionalTotalSupply(uint256)","e8997dbd":"setFeesController(address)","e899e848":"Fastmarketnetwork()","e89a49e2":"setPrivateName(bytes32)","e89a4e92":"getFeeRatioForJS(address)","e89ac5dd":"OrganizeFunds()","e89aeaca":"redeemLand(address)","e89b0e1e":"addAccount(address)","e89b2564":"Rate5()","e89b3ecb":"withdrawPUB()","e89b5d4b":"incrementInventory(uint256,uint256)","e89b727c":"myTotalStakeAmount()","e89b9ff6":"errCounter()","e89bc86b":"getBooleanMapCount(string)","e89c9b5d":"doThrow(string)","e89cdff5":"setTeamName(uint256,string)","e89d0d17":"getTeamLeaders()","e89d7f23":"payDividend(uint256,uint256)","e89df228":"shippingService()","e89f0f40":"DTR()","e89f3477":"grip()","e89f38d4":"BonusToken()","e89f5329":"createDebt(uint256,address,uint256)","e89f7672":"fight(bytes32,bytes32,bytes32)","e89f98a2":"TokenContractChanged(address)","e8a01f11":"BagSold(uint256,uint256,uint256,uint256,address,address)","e8a0aed3":"createToken(string,string,uint8)","e8a0cf44":"getScannersIds()","e8a0d312":"issueIndividualTokens(address,uint256)","e8a0e3c9":"BigbomPrivateSaleList()","e8a12479":"CBCT()","e8a1c08f":"nibbleToChar(uint256)","e8a207ad":"freeTokensAvailable()","e8a21157":"setNonEtherController(address)","e8a21382":"calculateInstantBonusAmount(uint256,address)","e8a2a5ba":"Resolved(address,uint256,uint256,bool)","e8a43960":"elixor()","e8a478ad":"round0Bonus()","e8a481bd":"edit(address,bytes32,bytes32,bytes32,bytes10,bytes32,bytes32,bytes32)","e8a4b797":"isTokenApproved(address,uint256)","e8a5282d":"setConfig(bytes32)","e8a55471":"_transfer(address,uint40)","e8a61357":"testInternal(uint256)","e8a61cc8":"refundBuyer()","e8a62235":"storeAction(address)","e8a6d7dc":"START_RATE()","e8a71012":"switchCrowdSaleStage()","e8a7228b":"hasEnoughValidSignatures(bytes,uint8[],bytes32[],bytes32[])","e8a748e7":"whitelistOneAddress(address)","e8a7be57":"MRVToken(address,address)","e8a7e256":"ownerTopUp()","e8a9594f":"rateOfEmissionPerYear()","e8a96b46":"getHolder(uint256)","e8a97ea8":"StateChanged(uint8,uint8)","e8aa1f5e":"makeOwnerBitmapBit(address)","e8aa377b":"storeHarvestOperation(string,string,uint32,uint16,uint16,string)","e8aa58ce":"vaultToWallet(address,uint256)","e8aa6b6f":"TeamtokenRelease4()","e8aabf9c":"ownerTransferWeiSecondWallet(uint256)","e8aada0c":"ViewBet(address)","e8aadc3f":"locationId()","e8ab245b":"WarriorsAssignedToBattlefield(address,address,uint256)","e8ac0e76":"getPropose(address)","e8ac764b":"twoMillionFourHundredThousand()","e8aca46a":"addReferral(address)","e8aca672":"getNodalblockURL()","e8acee9e":"fundPreSale()","e8ad1015":"__FindProjects(string)","e8ad2369":"getCaseAtIndex(uint256)","e8ad6912":"setGasForCLOUD(uint256)","e8ad7bcc":"secondTTax()","e8adf589":"getRateScale()","e8ae7dd2":"getCCH_edit_22()","e8ae8c6e":"DescriptionInt()","e8af214a":"fundingRemainingAvailableInEth()","e8afedd9":"setCommissionTarget(address)","e8b0a262":"ICO2Period()","e8b13c44":"getChainyTimestamp(string)","e8b1d0f3":"relayCall(address,bytes4,bytes)","e8b23632":"playerRefundAll()","e8b3891e":"userTransferUser(address)","e8b3ed65":"addDoc(string,string,string,string)","e8b49df2":"payWithEth(uint256,address)","e8b4c9d7":"OPEN_PACKAGE_PRICE()","e8b50802":"PRESALE_END()","e8b5e51f":"invest()","e8b611d6":"dailySupply()","e8b69081":"checkActionIsAuthorisedAndReset()","e8b6bbe4":"feeToSeconds(uint256)","e8b6fa80":"claim(int256,int256,int256,int256)","e8b9d536":"SingularityNetToken()","e8ba2fc9":"FundWallet(address,address)","e8ba854f":"updateWallets(address,address)","e8ba8f8b":"fixPlayerSurname(uint256,string)","e8bba4f6":"getDepositedOf(address)","e8bc0d40":"activateNextRound()","e8bccab3":"Neglect(address,uint256,uint256,int256)","e8bd09ff":"GetPlayerNumber(uint8)","e8bd5cc4":"NTRYPerEther()","e8be2e8e":"NewsContractEntity()","e8be3853":"setOffchainPayment(address,bool)","e8be73dc":"BenkiICO(address)","e8beef5b":"fireEventLog3Anonym()","e8befc0d":"getDividends(bool,address)","e8bfe5b8":"landmarkPriceStepNumerator()","e8bfebec":"ISSUE_METHOD()","e8c0485f":"profile(string)","e8c09c0d":"verificationHoldersValueMap(address)","e8c0a0df":"totalDepositBalance()","e8c23649":"referralName(string)","e8c28358":"calculateDispensedTokensForGasPrice(uint256)","e8c2cb16":"equal(string,string,string)","e8c32d13":"DoacaoEvento()","e8c3a65f":"save1(address,bytes,string)","e8c3e34d":"GetProperty(bytes32,uint256,uint256)","e8c494f1":"calcPresaleTokenSupply()","e8c4d328":"airDropNumber()","e8c4fa04":"coinIssuedGemmyMusic()","e8c5ff96":"jackpotLarge()","e8c61c4e":"actionB(uint256)","e8c66cac":"fundingReserve()","e8c67216":"getRateLimit()","e8c6ed14":"niceGuy()","e8c78934":"disableReservePurchases(address,bool)","e8c7df8a":"admin_token_add(uint256)","e8c80880":"VestingAddressChanged(address,address)","e8c8a52a":"reinvestDivs(uint256)","e8c8bb52":"_getRegistry()","e8c93aa9":"createProductionUnit7()","e8c96256":"Lesson_2(address,uint256)","e8c9a3e5":"withdrawnTokens(address)","e8c9f9de":"LocalToken(uint256,uint256,string,string,string,address,address,address)","e8ca1609":"startNewPayoutPeriod()","e8ca3bbb":"auctionsContract()","e8cb635b":"checkRequestSignature(bytes,bytes,uint256,bytes)","e8cc00ad":"withdrawOwner()","e8cf0aca":"depositEthersFor(address)","e8cf56a9":"C2L()","e8cf86ff":"MyTestCoin()","e8cf958e":"setBwMarketValidCaller(address)","e8cfc40d":"EtherPrice(uint256,uint8)","e8d03e91":"deployBoard()","e8d07525":"getLockerAddr(uint256)","e8d0affb":"addOwner(address,bool,bytes)","e8d0ed31":"sendInvestor(address,uint256)","e8d11d9c":"DavidCoin()","e8d1891b":"removeOracle(address,uint256)","e8d199ec":"BetterBitcoin()","e8d1e961":"lockAccount(uint256)","e8d320e6":"coinBalanceOf(address,uint8)","e8d3280f":"decrement(address)","e8d34f5d":"ensureCollateralBalance(uint256)","e8d375fe":"week_in_blocs()","e8d3a5a9":"joinboard(string)","e8d3cad5":"getDepositsLength(address)","e8d47923":"fAdd(uint256,uint256)","e8d50403":"ChangeDates(uint256,uint256,uint256,uint256)","e8d59fae":"PROMO_TOKEN_AMOUNT()","e8d663a4":"requalify(address)","e8d6b5aa":"TORCToken()","e8d6f62d":"p1Of(uint256)","e8d70569":"setGameAddress(uint8,address)","e8d83383":"whitelistMaxContribAmount()","e8d88bd4":"Race()","e8d8c3a7":"decreaseApprovalAllArgs(address,uint256,address)","e8d9d76a":"WCMY()","e8dc800c":"setReadings(bytes32,uint256,bool)","e8dca673":"throwsWhenSaleIsNotTokenController()","e8dcd15f":"NeuralProtocol()","e8ddb731":"myshowindex(address)","e8ddf15a":"withdrawEthBalance()","e8de636c":"add(bytes20,address)","e8df0ca1":"checkRefundPollDate()","e8dfa50d":"addPigment(address,uint256,uint256,uint256,uint256)","e8e03280":"window0EndTime()","e8e09563":"PresaleToken(address,address)","e8e0d5bf":"getConversionInfo(string)","e8e44248":"transferMiner(address,uint256)","e8e5882e":"SmartpoolVersion(address[3])","e8e7426e":"Presale(address)","e8e7c73d":"useMonthlyAccess()","e8e81fe4":"setTelegram(string)","e8e9eeae":"getPremiumCentsPricePer30Days()","e8ea0675":"redeemedEscrow(bytes32)","e8eb2284":"amountOf(uint256)","e8ebf3c5":"iii()","e8ecea05":"getSpecialNum()","e8ed024e":"LoopringToken(address)","e8ed1cdd":"getAccountQuantity()","e8edb2ff":"geneticallyEngineer(string)","e8edc816":"spender()","e8ee8b44":"MIS()","e8ee8c75":"deleteCandidateBySnapshotBlock(address,uint256)","e8eecf4c":"maxTxValue()","e8eed374":"hashTerms(string,string)","e8ef51db":"getCCH_edit_15()","e8efc1a0":"updatedValue(bytes32)","e8efe846":"blocksOwners(uint256)","e8f00990":"calcPlayerDivs(uint256)","e8f04e84":"disableLotteryGiveHunt()","e8f09e24":"getDisableBet(uint256)","e8f1736c":"TakeMoney()","e8f1bd8c":"getNeighbourhoodOf(uint256)","e8f1dc9a":"_unpackMakeData(uint256)","e8f35f2c":"updateUSeqvol()","e8f3cd59":"getFunderContributionClaimed(address)","e8f4bc12":"InitUpgradeCard()","e8f54364":"JJ(uint256,string,string)","e8f5cf36":"changeWCT2Controller(address)","e8f62764":"feesController()","e8f62f46":"someMethod2(uint256,uint256,uint256)","e8f64680":"purchaseFor(address,bytes32,uint256)","e8f6bc2e":"changeAccountLevelsAddr(address)","e8f72850":"interactWithXYZ()","e8f88890":"dev_inStream()","e8f8a1d2":"buyBuyerTokens()","e8f95666":"transferPreSigned(address,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","e8fa1d51":"handleCloseChannel(address,bytes32,uint256,address,uint256,address,uint256)","e8fac4cd":"transfer(address,address,address,address[],uint256,uint256)","e8faf89c":"ETHER_MAX_CONTRIB_USA()","e8fb02d2":"sellFeeMilliPercent()","e8fbc67d":"MultisigWallet(address[],uint256,uint256)","e8fc0780":"_malloc(uint256)","e8fc451a":"init(uint256,uint256,address,uint256,uint256,uint256,uint256)","e8fc9273":"verify(address,string)","e8fc9c10":"UnicornContract(address,address,address)","e8fcda45":"_set8()","e8fe6b66":"getCode(bytes32)","e8fe9473":"test_threeInvalidEqUint(int256)","e8ff269e":"setMaxAvatarNumber(uint8)","e900604d":"claimTokenOwnership(address)","e9007d4e":"settleGame(uint256,uint256,string,uint256)","e9013cf7":"getFreelancerInvoicesByStatus(address,address,uint8)","e9024691":"recoverPreSignedHash(address,bytes4,address,uint256,uint256,uint256)","e9024ff5":"modifyMessage(string)","e90352eb":"_transferCheck(address,address,uint256)","e90389bd":"setWaitingTimeBuffer(uint256)","e90459f8":"emitError(bytes32)","e906c804":"_distributeBridgeFee(uint256,bool,bool)","e906e664":"getx2Policy(address,uint256,uint256,uint256)","e90799d2":"unlock4Circulate(uint256)","e9083a41":"drainMe()","e9084739":"economyBoost(uint16,uint16)","e9085957":"RANGESTART_1()","e9087eb7":"canMove(address)","e908a6d6":"Initialize_PlayUnit(uint256,uint256,uint256)","e9092bca":"weeOneEthCanBuy()","e90956cf":"setCurator(address)","e909ebfa":"addDelegate(address,address)","e909f2cc":"updateCancelDistFlag()","e90a3cf2":"addressCashwolf()","e90ab7fe":"lunetReserve()","e90acd53":"bidder(bytes32)","e90bcb32":"senderToProxy(address)","e90cb9b9":"setBurnAddress(address,address)","e90d2120":"etcWallet()","e90dae86":"TokenAUC(uint256,string,uint8,string)","e90dd9e2":"tokenState()","e90e5453":"rand(uint256,uint256,uint256)","e90ecfce":"EvoToken(address)","e90f84bd":"getETHFromTokens(uint256)","e9105cf1":"unblockTokens()","e9108538":"mintSilcToken(address,uint256)","e91208ad":"galleryFour()","e9121758":"token_holders_array(uint256)","e9121b12":"transferAndApply(address,uint256)","e9126154":"returnLoan(uint256)","e912ae4f":"getLastPaidTransaction()","e9130d4a":"test_twoInvalidEqBytes()","e9140274":"stakeTAOContent(uint256,uint256,bytes8,uint256,string,string,string,string,uint256,address)","e914575b":"endPublicIcoForTesing()","e9149e34":"investedWei()","e914d828":"TimeMoneyToken()","e9156cfe":"getMutation(uint32)","e916d0f0":"doBalance(address)","e916d29e":"matchBytes32Prefix(bytes32,bytes)","e91710aa":"DogCoinCrowdsale(uint256,uint256,uint256,uint256,address)","e9171abb":"airdropRecipientCount()","e91723b2":"aggiungi_candidato(string)","e9177f1b":"HTCToken()","e917b027":"setProjectManager(address)","e917f82d":"OxyCoin()","e918268b":"changeDrawer(address)","e9187ef4":"refundAction(bytes32,uint256)","e9198076":"fillBuyOrderPartially(uint256,uint256,uint256)","e919ca10":"getMyDiscount()","e91a08a2":"grantedParsecCredits()","e91a68bf":"getAllRightLeg()","e91b3ac5":"getMutalbeInfo()","e91b6987":"addNewObj(address,uint32)","e91bb26e":"redeemEgg(address)","e91c3a3e":"getStatusInfo()","e91cc17c":"withdrawFunder(address)","e91ccdc0":"allFundingProcessed()","e91cd09d":"thisbalanceETH()","e91d1ea0":"downtime()","e91dcba1":"MDL()","e91df414":"Nurucoin()","e91df8da":"AuctionSoldOut(uint256)","e91e10af":"allocationFinished()","e91e13a9":"CHUNK_SIZE()","e91f9d96":"getNftsByOwner(address)","e91ff7ca":"STORAGE_WALLET()","e921528e":"evTransfer(address,uint256,address,address,uint256)","e921b4f8":"buyByAddress(address)","e922248e":"MinterFunc(address,uint256)","e92254ba":"finaliseFunding()","e922ee6f":"removeParent(address)","e9233a65":"getNameIds(uint256,uint256)","e92340b5":"ICO_BONUS_TIME_2()","e923c3d6":"_setUint(bytes4,uint256)","e923e707":"hardCapWei()","e9253156":"force_deduct_fees()","e9262dae":"changeMinApproval(uint8)","e9263f9d":"ifcoinToken()","e9266fca":"collectRobot(uint256,uint256,uint256,uint256,uint256)","e92704e8":"setGason(uint32,bool)","e927a8c0":"changeContracts(address,address,address)","e927ca04":"addVesting(address,address,address,string,uint256)","e927da3f":"buyPackWithKitty(uint256)","e927ea7a":"ballotVoteCount(uint32,uint32)","e927f1f9":"getLeaderBoardData(address)","e927fc5c":"creatorAddress()","e9288d72":"pushToBank(address)","e928ad47":"createEthBidAuction(uint256,uint256,uint16)","e9298b97":"changePermissions(address,uint8)","e92a5d74":"createTimeDecayingToken(uint256,uint256,uint256,uint256,uint256,string,uint8,string,uint8)","e92b6818":"CONTRIB_PERIOD1_STAKE()","e92b7f4b":"AddVoters(string)","e92ba335":"airdropCountLimit1()","e92bb686":"_CallAborted(address,bytes32,bytes18)","e92bf2a8":"saveData(uint256,bytes32,uint8,bytes32,bytes32,bytes32,address,address)","e92c02cf":"startOpenWindow(uint256,uint256)","e92d5178":"bankerBeginTime()","e92dfb23":"LimitBalance(uint256)","e92e4505":"test_9b_testGoodTransfer_thenInvalid()","e92e4d63":"setReservingStep(uint256)","e92e5c34":"getVoterCount(uint256)","e92e5f03":"PRESALE_TOKEN_SUPPLY_LIMIT()","e92f2904":"Compra()","e92f7447":"isDayThird()","e92f8cfc":"MIN_BUYBACK_VALUE()","e92f9c1d":"getWarriorsFromIndex(uint256,uint256)","e92fdeaa":"ethRec(uint256,uint256,uint256)","e930f06f":"setToSaleWallet(address)","e930f3a6":"ethContractBalance()","e93119d9":"balanceOf(address,address,uint256)","e931f1ba":"secondRoundMayEnd()","e931fa0c":"setMonsterGene(uint64,uint256)","e93239d3":"outputWalletAddress()","e9324444":"preSaleState()","e93314ab":"getS()","e9333fab":"set_admin(address)","e9339de5":"Moneda(address,address,address)","e933cfb0":"mintCard(uint256,address)","e933e6eb":"checkPriceCrowdsale(uint256,uint256)","e9347e31":"_sellKeys(uint256,uint256,bytes32)","e9348532":"kncRateBlocksTrade()","e934ab0c":"ActualCommitteeRoom()","e9353cb7":"createProductionUnit3Beta()","e9358b01":"newENS(address)","e9360096":"cancelCompetition(uint256)","e9361d34":"ethartRevenueReward()","e93680d5":"_my_transfer(address,address,uint8)","e936e878":"disburser()","e9377aca":"mtEndTime()","e937f689":"_getElement(string,uint256)","e9391db9":"getBenificiary()","e9395679":"uintToString(uint256)","e93a1906":"buyFeeMilliPercent()","e93ab977":"bids_ignored_refunded()","e93b9c89":"stepVestingPercent()","e93ba042":"distributePrices(uint256)","e93ba06f":"getWhitelistAt(uint256)","e93c5973":"UpdateRequiredSignatures(uint256)","e93c980d":"tokenUnit()","e93d3e5f":"setNextRoundFee(uint256)","e93e25fe":"zilleriumToken()","e93e40db":"offerCollectibleForSale(uint256,uint256,uint256)","e93e7b26":"Stage3Deadline()","e93f29bd":"_setPartitionControllers(bytes32,address[])","e93f3f8d":"setBuyPrice(uint256,uint256)","e93f57b9":"capAmount()","e94087d6":"joinAsBroker()","e941fa78":"withdrawFee()","e94200f1":"burnAllOwnerTokens()","e94233f6":"oraclizeGasCost()","e942b516":"set(string,string)","e942c564":"getWei(uint256)","e9433ab6":"endDonations()","e943cc01":"powerDayEndTime()","e944267c":"FourArt()","e9445d5a":"createAudit(uint256,uint256,uint256)","e94479a9":"MinterRemoved(address)","e944a6d7":"claimSpecialResource(uint256)","e944f52d":"addressToBytes(address,address,address)","e94559b1":"ETToken()","e945c391":"setEndTime(uint64)","e945e26c":"CCH_OLI_1()","e946115b":"flushVault(uint256,address)","e946ad4a":"getUpgradesOwned(address,uint256)","e947962b":"pushRefIncome(address)","e9482aa6":"UsingANormalStruct()","e9485982":"canBePurchasedByETH(uint16)","e949fba1":"_getPurchaseToken(address,uint256)","e94a4db1":"isSuitableGen(uint256,uint256)","e94acf0e":"TinyRouter(address)","e94aea8a":"lastStealBlockNumber()","e94b6aef":"getLayEggInfo(uint32)","e94c8dc0":"NXX()","e94d7af6":"getCountAllBuildings(uint256,bool)","e94dc568":"freeBalancesOf(address)","e94e4bf1":"maxDailyCap()","e94e80fa":"playerIndexToApproved(uint256)","e94e83d8":"Answer(string)","e94f1dc6":"setWhitelistInternal(address,address,uint256)","e95015b9":"spawnMonster(uint256,address)","e9506c73":"_investAsBonusProgram(address,uint256)","e9519a6b":"FirexToken()","e951c35b":"NewAppleToken()","e9523c97":"getAllAdmins()","e952f74f":"airdropCount()","e9540395":"getRewardDivisor()","e9546d08":"increaseK()","e95502fb":"lockedShares()","e9556430":"SECONDS_PER_MINUTE()","e9559803":"getShipById(uint256)","e955ee03":"revertNoncsallocation(address)","e9560b3b":"getParticipantBalance(address)","e95626c5":"Lizun()","e95715cb":"jackpotSend()","e9577a11":"getHistBtcRate(uint256)","e95823ad":"safe(bytes32)","e958d15f":"partnerMessagesCount(address,address)","e958d1ae":"TreeContract()","e9592a9f":"AuctionStarted(uint64,uint64,address)","e9596db3":"betInfo(bytes32)","e95a644f":"checkIn(uint256)","e95ac9f7":"LBToken(address,uint256)","e95af01b":"identify(address,address)","e95b2bb8":"Ethraffle_v2b()","e95b4aa8":"nameOf(address,address)","e95bcfb1":"UVDICO()","e95bd5f2":"testToData(bytes)","e95bee59":"checkFormat(string)","e95d0a59":"MarbleEarth(address,address)","e95d716c":"FEE_SELECT_MARGIN_SPLIT()","e95d74e0":"set_coin_minimum_trade(string,uint256)","e95db6f9":"buyKey()","e95f206e":"MIN_WEI_AMOUNT()","e95f2c7d":"getMaxLoanAmount(uint256)","e95f6414":"dayPotExpiration()","e95f72e3":"ROD()","e95fa798":"SellerCancelDisabled(bytes32)","e9600f12":"release(bytes16,address,address,uint256,uint16)","e960127e":"set2RoundTime(uint256)","e960b940":"DoubleSixToken()","e960bb48":"balanceOfLocked(address)","e9616fb0":"changeFreezingAgent(address,bool)","e962867d":"BillionsToken()","e9629d7f":"phase1Cap()","e96309e7":"gatherOldBalanceOf(address)","e9639c80":"releaseTheOriginal(uint256)","e963f3e8":"MAX_BUYIN_GAS_PRICE()","e9653482":"hasValidProfile(address)","e966668c":"advisorset()","e9668128":"isTransactionsAllowed()","e9677b6b":"safeExecuteOrder(address,uint256,uint256,bytes,int256)","e967a9b7":"dataSourceCallbackExtras(uint256,uint16)","e967bb18":"refundAllMoney()","e967e60c":"placeBid(string)","e968ab95":"enableTokenTransferability()","e968d087":"shrink128(uint256)","e968e1ec":"setPLATPrice(uint256)","e9698f62":"setBurnAmountApproval(address,address,uint256)","e969c871":"swapTokens(address[],uint256[])","e96a6b38":"getSignerFlagFor(address)","e96b462a":"isOwner(address,bytes32)","e96b5e13":"SERENITY()","e96b8aa6":"bitwordsWithdrawalAddress()","e96bf86d":"lastHour()","e96cd01c":"SoraToken()","e96d01d4":"setPlayerOverrideId(uint256,uint256)","e96d36ac":"communityAllocating()","e96d6e4f":"publicKeys()","e96da99e":"reply(bytes32,uint256)","e96e5950":"getEventHash()","e96fefec":"resetTransferToValues()","e9703701":"byteToUint(bytes1)","e970754b":"getTxs(uint256,uint256)","e970e86d":"testBlockNumber()","e9715de9":"referralBonusPercent()","e97193a6":"removeAuthor(address)","e971c252":"issue(address[],uint256[])","e972261d":"calculateProfit(uint256,uint256)","e9734172":"createWagerAndDeposit(bytes32)","e9739db7":"getTokenRate(uint256)","e973b7ba":"node_height(uint256)","e973f2c4":"reinvest_color(uint256,uint256,uint256)","e9742d23":"createGun(uint256)","e9748e58":"renewalsCreditAffiliatesFor()","e974c000":"checkIsOnlyOwner(bytes32)","e97758a2":"thirdRewardPeriodEndBlock()","e977992d":"Doubler()","e9779b76":"depositOldTokens(address,uint256)","e977a11c":"wavesAssetId()","e977fa76":"_forceTransfer(address,address,uint256)","e9794dc1":"CreateHash(uint8,string)","e9799993":"Wafflecoin()","e979af97":"pushArray(bytes32,string)","e979bac1":"getCustomerBankRating(string)","e979fed6":"ownerstake()","e97a4779":"evaluateProposalPreCondition(uint256)","e97b2190":"add_wall(uint16)","e97b7689":"getTotalBuyers()","e97b97fe":"neumark()","e97cf883":"calculate(uint256,uint256,uint256)","e97cfab4":"withdrawDivs(uint256)","e97d87d5":"releaseStartTime()","e97db66e":"setJackpot()","e97dcb62":"enter()","e97e490c":"canuse(address)","e97e6dca":"applyPresale()","e97ed99c":"TurtleFarmer()","e97f6313":"token_airdrop_amount_each()","e97fe114":"tradeModifiers(address,address)","e98096fc":"numberOfNames()","e980c2e0":"littafiContentCommit(bytes32,string,string,string,string,bool)","e9813f9c":"_distinctOwners(address,address)","e981c803":"rejectPauseChange(bool)","e982d5a9":"transferOwnership1(address)","e9835ee1":"LogAgreementAmended(address,string)","e9841bd8":"certifyTradeAsCounterparty(bytes32,address)","e98444e8":"BIMI_DAO_31_a()","e984d794":"setRarity(uint256,uint256)","e984dd74":"ZenixSupply()","e985e367":"saleToken()","e985e9c5":"isApprovedForAll(address,address)","e9874106":"pricePerTicket()","e98799e0":"Mejasa()","e987cc45":"getfrom(address)","e9884b44":"depositClient()","e9886064":"_sendPrimordialTokenAndRewardDev(uint256,address)","e988998a":"refreeze()","e9892821":"isSpendableFrozenCell(address,uint256)","e9893c67":"awardAmount()","e98a0de7":"setGitHub(string)","e98a1439":"priceOfMultiple(uint256[])","e98ae339":"cancelMarginCall(bytes32)","e98b1679":"set_pre_kyc_bonus_denominator(address,uint256)","e98b7f4d":"getKitty(uint256)","e98bf38e":"test_insert_zeroKey()","e98c365b":"totalMigratedOut()","e98c7608":"mod9710(bytes)","e98cab50":"burnIndexed(uint256)","e98cf987":"turnOnSale()","e98d3112":"OwnableWithDAO()","e98dcba2":"approveExchange(address,address,uint256)","e98e130c":"GetCandidatePrincipal(uint8)","e98e8a64":"getKeccak(bytes32)","e98ebdd5":"numResponses()","e98f402c":"getClassCheckOwner(uint64,address)","e98f5708":"Dgp(address)","e98fe5ce":"AgriChainType()","e9900714":"sendIBTCToken(address,uint256)","e991ae55":"valid_weights(int256[],uint256,uint256,uint256[])","e9922f12":"getCoinInfoFromId(uint16)","e992ae5a":"INCXToken()","e992d8d8":"KNC()","e992f6cd":"pos(address[],uint256)","e99358a5":"TeamtokenRelease2()","e9938919":"EnterBetsForRaz(uint256,uint256[])","e9938e11":"getPricePerCoin(uint80)","e99392c0":"localsAvatar(bytes32,address,bytes32)","e993a9c0":"change_flag_hash(bytes32)","e993c056":"SaloniToken()","e9947583":"addAuditorToMultiRequestAssignment(uint256,address)","e995064e":"changeEmployee2(address)","e995194f":"transfer(address,uint256,uint256,int256)","e99543aa":"Trash(uint256)","e9958314":"getRequest(uint32)","e9959105":"setMintHelper(address,int256)","e99667ad":"OwnershipTransfer(string,address,address)","e99671ad":"movePermission(address)","e9970b6c":"isLessThan(uint256,uint256)","e99718d8":"addressOf(address,bytes32)","e9986f90":"activeStarGenome(address)","e9989220":"viewShareholderListing(uint256)","e998d2fa":"revokeVerification(address)","e998db2a":"directMessage(uint8,string)","e99a7a72":"createCeleb(string,uint256,address,uint256[6],uint256[6])","e99a7dca":"lastCampaignID()","e99b9ab7":"getProposalCreatedOn(address,uint256)","e99d2866":"setSeller(address)","e99d2db4":"universalToken()","e99d7333":"BlitzCrypto()","e99ebee2":"dist_multiple_airdrop(address[],uint256)","e99ed199":"getAddressLiquidatePool()","e9a0dd77":"cancelBid(bytes32,int32,bool)","e9a158a6":"currentETHPrice()","e9a1e689":"PreICO(uint256,uint256,uint256,uint256,address,address)","e9a241cc":"checkRoundsNumberToRun()","e9a24e24":"userlength()","e9a3773c":"setBotContract(address)","e9a3f454":"setAgriChainSeal(string)","e9a51c0d":"call1(uint256)","e9a5605d":"WheelOfFortune(uint256)","e9a58c40":"fun(uint256,uint256)","e9a59b32":"participantRoundAmount(address,address,uint256)","e9a5c776":"THETOKEN()","e9a62ba6":"MEGAMALLCOIN()","e9a6cce4":"getClaimKeysCount()","e9a6fdc3":"addressAt(bytes,uint256)","e9a765eb":"checkICOStatus()","e9a76ff7":"getInputName(uint256,uint256)","e9a78a1e":"decodedNonce()","e9a909a2":"setOraclizeAddrResolverI(address)","e9a9c1b4":"get_party1_balance()","e9a9c50c":"redeemTokens()","e9aa80b1":"contributorsAddress()","e9ab04a8":"hatchEgg(uint256,string)","e9ab1bd7":"True()","e9ab77e5":"getTimes()","e9ac31f2":"msgdata()","e9ac5918":"whatDidJasonSay()","e9ad1b38":"findAddressByEndpoint(string,int256)","e9ad72d7":"_canLotteryFree(address)","e9aeb932":"dUpgradeToPremium(bytes32)","e9afa7a1":"signedApprove(address,address,uint256,uint256,uint256,bytes,address)","e9afad38":"getTotalVesting()","e9b00581":"LogStartWeek(string)","e9b04e69":"addSourceForBudget(uint256,uint256,string,bool)","e9b07bbf":"transfer(address,uint256,bytes,bytes)","e9b0c0e1":"adminContractSecurity(address,bool,bool,bool)","e9b18084":"Diary(address,bytes)","e9b1f1ce":"updateRandomSource(uint256)","e9b23b8b":"updateLeaderboard(address,address)","e9b29a9d":"setAPI(address)","e9b2f0ad":"unfreezeTokens(address,uint256)","e9b32a3f":"HOUSE_EDGE_DIVISOR()","e9b3fd39":"TradeBox()","e9b48288":"insertMessage(string,bool)","e9b4a028":"payAirdrop(address[],uint256)","e9b54840":"viewReferral(address,uint256)","e9b58225":"extDestroyBot(uint256)","e9b5a2f7":"firstWithdraw()","e9b62f13":"lastBlock_f4()","e9b6953b":"team1Token()","e9b85cf4":"SimpleOwnedStorage(string)","e9b93569":"OwnerGetFee()","e9b991cc":"refundPct()","e9ba267e":"distributeETHP(address[])","e9ba2e9b":"Storage(uint256)","e9ba77fb":"receiveToken()","e9ba8698":"TheBillionCoinCash()","e9bacc1a":"freeBalances(address)","e9bb4aac":"WaltonTokenLocker(string,address,address,uint256)","e9bb84c2":"transferEth(address,uint256)","e9bbc19e":"Example3(string)","e9bc13b8":"_createCanvasInternal(address)","e9bc63f7":"getSellInfo(uint256)","e9bc9598":"totaltransactions()","e9bce432":"yetAnotherTransferTo(address,uint256)","e9bd48b8":"VLTToken()","e9bd97dc":"getData_24()","e9bdab6a":"tips(address,bytes32)","e9bec833":"setCrowdsalePause(bool)","e9c003d2":"indexOf(bytes32[],bytes32)","e9c1a9c4":"ProcessGame(address,address,bool,uint256)","e9c24166":"executeRequest(bytes32)","e9c26893":"setValidDurationData(uint256)","e9c2fbd5":"Banned(string)","e9c31315":"checkBetParity(uint8,address,bytes32,bytes32)","e9c33249":"ReceivedBTC(address,string,uint256,string)","e9c33dfe":"getHouseEdgeFee(uint256,uint256)","e9c35ea8":"universalCall(string)","e9c4a3ac":"dispatch()","e9c54384":"doesContractImplementInterface(address,bytes4)","e9c63b9c":"requestPeerBalance()","e9c64ad7":"evRecord(address,uint256,string)","e9c6c176":"addBlock(uint256,uint256,bytes32)","e9c6ed11":"withdrawNomins(uint256)","e9c714f2":"_acceptAdmin()","e9c771f2":"KBItoken()","e9c801e1":"refundInternal(uint256)","e9c9262e":"_productExists(uint256)","e9c93ce7":"cbtFundDeposit()","e9c9db5c":"ICOcontroller()","e9c9f4e0":"_finalizeFailure(uint32,string)","e9ca9b2a":"phase1StartingAt()","e9cac389":"onlyWhitelistedCanDoThis()","e9cafac2":"deleteArray()","e9cb364f":"lastTip(address,bytes32)","e9cbd678":"_resetBalanceDivis(address)","e9cddb1d":"EARLY_BET_INCENTIVE_COMMISSION()","e9ceef50":"createCanvas()","e9cf287a":"sellerGuaranteeEther()","e9cfa745":"calculateNetworkTokenBonusAmount(uint256,uint256,uint256,uint256,uint256)","e9cfb399":"SoupToken(string,string)","e9d16224":"maxFundedValue()","e9d1c598":"isEligibleForAirdrop(address)","e9d1d700":"assertFunction()","e9d1e422":"JZCoin()","e9d36c56":"transferredAmountToReceive(uint256)","e9d41d48":"getAuthorizationDataSource()","e9d56d2e":"releaseDividendsRightsForce(address,uint256)","e9d5d43b":"getWinnerByDrawBlockNumber(uint256)","e9d724e5":"changePreIcoEndDate(uint256)","e9d7d79a":"SRNT_per_ETH()","e9d7f309":"addRemainingTokens()","e9d862b0":"_updateTokensAvailable(uint256)","e9d8d3d7":"MAX_CONTRIBUTION_DURATION()","e9d8dbfd":"isService(address)","e9d979dd":"CioCoinERC21Token(uint256,string,string,uint256)","e9d9c4a9":"devTokenTimelock()","e9d9d5ec":"releaseBBT(address,uint256)","e9da12ab":"ATRToken()","e9db5d79":"Steak()","e9db5f5a":"addSpecialAccount(address)","e9db787b":"cancelStack(bytes32)","e9dc0614":"vote(bytes)","e9dc2e49":"createItem(uint256,uint256,uint256,uint256,uint32)","e9dc438e":"confirmAllSells()","e9dd7b6c":"getUID(uint256)","e9de432f":"testGasPrice()","e9de5c0f":"gen(bytes32,uint256)","e9de78fd":"TestRobotarCrowdsale()","e9deb98c":"presaleConcluded()","e9dff847":"withdrawMatingRequest(uint256)","e9e04195":"GEEKSID()","e9e041f3":"getTotalWeightedContribution()","e9e22362":"setWinPercent(uint256[])","e9e2990e":"bankManager()","e9e2c786":"returnMessage(uint256)","e9e30746":"withdrawBankroll(address,uint256)","e9e32bfb":"firstLevelPrice()","e9e3b1cf":"checkAuthenticity(string)","e9e43eef":"getLLV_edit_10()","e9e44349":"hashLicenseTerms(bytes32,bytes32)","e9e48842":"token_unlock_time()","e9e48880":"BOUNTY_AMOUNT()","e9e55c71":"PRESALE_LEVEL_1()","e9e69a48":"getCurrentPageSize()","e9e7a667":"get_stake(bytes32)","e9e7e908":"BlockOfLifeToken(uint256,string,string)","e9e972d9":"fileLink()","e9e98e76":"WSKYCoin()","e9e99d81":"getChannelFeed(address,uint256,uint256,uint256)","e9e9b5bc":"setIntF1F2(int256,int256)","e9ea666b":"test_remove_singleNode()","e9eaa69b":"sweepToOwner()","e9ebeafe":"greet(bytes32)","e9ec9e8b":"renounceBurner()","e9ecc0cf":"getInvestorsTokens(address)","e9ecd32b":"RajTest()","e9ed8281":"getDiniRequest(uint256)","e9ed8667":"balanceLocks(address)","e9ed9b64":"setProposer(address,bool)","e9edd759":"CCoinToken()","e9edf4cd":"hardwareWallet()","e9ee6eeb":"transferAdmin(address,address)","e9ef5318":"_isValidLandID(uint8)","e9efdd6b":"getByFrom(uint256,uint256)","e9f0509f":"Commit(uint256,address,bytes32)","e9f0ee56":"addPrice(uint256)","e9f12ed3":"itemsByName(string)","e9f1c4c3":"f2(uint256,uint256)","e9f21537":"setUint(bytes32,bytes32,uint256,bool)","e9f29b7b":"setTokenUriPref(string)","e9f2dbfb":"makeCommitment(uint256,bytes32,address,address)","e9f3b9ee":"triggerSteal(uint32,uint256)","e9f4043f":"buyTokens(address,uint8)","e9f50b02":"_transferHelper(address,address,uint256)","e9f58a52":"rotate_left(uint256,uint256)","e9f6af47":"getZethrTokenBankroll(uint256)","e9f6bd0b":"numberOfDays()","e9f702f2":"createDiamond(string,address,string,string,string,string)","e9f84c5b":"ClearToken()","e9f88ca5":"ICHAINToken()","e9f89121":"getWeeklyJackpot(uint32)","e9f8cd70":"addTokenPair(address,address,uint256,uint256,uint256,uint256)","e9f90fe6":"listPokemons(address)","e9f998ce":"checkInventory(uint256)","e9f9d8e2":"unidentifyParticipant(address)","e9fa6277":"updateMasks(uint256,uint256,uint256,uint256)","e9fa65aa":"updateNextStealTime(uint32)","e9fad716":"itemPrice(address,address,uint256,uint256)","e9fad8ee":"exit()","e9fb078e":"setFreeTime(uint256,uint256)","e9fca283":"buy(uint256,bytes32)","e9fcc787":"buyCoinsAtICO()","e9fd3434":"Cedex()","e9fd4e1f":"setAllowCnsContract(bytes32,address,bytes32,bool)","e9fd74dc":"create(string,string,uint8,uint256,address,string,address)","e9fe799e":"registrantRemove(address)","e9fee16f":"refundAll(uint256)","e9ffd6de":"allBlockCoordinates(uint256)","e9ffdf28":"Erc20Dist()","ea00a289":"getStateofContractString()","ea00cdb2":"DrazenToken()","ea00fad4":"callSender(address,bytes4)","ea011db4":"isCustomerHasKYCfromWL(address)","ea014645":"PTYC(uint256,string,string)","ea020f7b":"WindToken()","ea0217cf":"setVotingPeriod(uint256)","ea02db0f":"communityPoolAddress()","ea03918c":"AGC(uint256,string,string)","ea03c115":"getFunctionType()","ea045f34":"CROSS_RESERVE_FTX()","ea048256":"PROCOIN()","ea049958":"stakeScale(address,uint256)","ea05667a":"maximumPurchaseFraction()","ea0570e0":"convertToBytes32(uint256)","ea0599c7":"buyIt()","ea05cd01":"addCarProduct(string,uint32,uint32,uint32,uint32,uint32,uint256,uint256)","ea061e77":"changeNeat(address)","ea06ad02":"postBuyTokens()","ea071ac0":"depositShares()","ea083b86":"contract_enabled()","ea08bb89":"creatureCosts(uint8)","ea08ec2c":"accountModifiers(address)","ea0930f2":"_currentTime()","ea0a5237":"announce(string)","ea0a73d2":"TokenGMCT(uint256,string,string)","ea0a93e2":"miningLeader()","ea0aee14":"BuyStockRocketEvent(address,uint32,uint32,address)","ea0d0015":"_bill_all_participants()","ea0d1027":"calculateSumToWithdraw()","ea0d1702":"verifyEscrowCustomer(uint256,address)","ea0d18b0":"CurrenXToken()","ea0d5dcd":"getUserStatus(address)","ea0d6ad2":"setErrorROFR(bytes)","ea0d8da4":"amountReserved()","ea0d98aa":"changeParticipants(uint256)","ea0f5449":"Transaction(bytes32,address,address,uint256,uint256)","ea107240":"deleteRegionData(uint256)","ea10b18f":"withdrawMainDivi()","ea10d246":"get_orders_sell_amount(address)","ea110eda":"setOraclizeGasLimit(uint256,uint256)","ea112b6c":"updateCrowdsaleAddress(address)","ea116243":"_setCampaign(bytes32,uint256,uint256,uint256,uint256,bool,address)","ea118590":"vote_proposed_address(string)","ea11e00e":"LogMatchingEnabled(bool)","ea1325be":"createTokenUri(uint8,uint8,uint64,uint64)","ea135eeb":"computeSha3(uint256[16],uint256[8])","ea14457e":"emitRecovery(address,address,address)","ea149ab5":"bank2Val()","ea14bc11":"box1Star5()","ea15f262":"ETHEREAL()","ea1642f8":"getManyBalances(address[])","ea16c148":"isIcoAgent(address)","ea16cee5":"migratestate()","ea177073":"nextMaxPlay()","ea18e3d5":"getFreeSword()","ea19efb5":"startVoting(bytes32)","ea1a20d5":"shareholdersWallet()","ea1a9537":"IOBSTestToken()","ea1b28e0":"maxStake()","ea1bbe35":"getIndex(string)","ea1bf386":"getNextSellerBOTdata(uint256)","ea1c0379":"maximumAllocationPerParticipant()","ea1c1690":"timestampToDateTime(uint256)","ea1c41be":"RxEALSaleContract()","ea1cf495":"ImagodeiToken()","ea1d64b8":"startPostIco()","ea1da8b9":"updatePresaleMinWei(uint256)","ea1df439":"timestampFirst()","ea1e4c2d":"Transaction2()","ea1e572b":"addOrderBasicFields(uint256,address,uint256,uint256,bytes32)","ea1e74ef":"withdrawEtherToIfPossible(address,uint256)","ea1eaecb":"buyMinersWithGem(uint64)","ea1ecff4":"sendByTranches(bytes32[],address,uint256[],bytes)","ea1f2954":"transferSnowflakeBalance(string,uint256)","ea1f4082":"RGXToken(string,string,uint256,uint256,uint8)","ea1f9b3e":"NoxonInit()","ea2028b7":"changeSaleHardcap(uint256)","ea212b1e":"withdrawRequest(address,bytes32)","ea217d4d":"logSaleStart(uint256,uint256)","ea21c6be":"find_and_or_register_user(address,address)","ea21d12d":"deleteUncompletableRequest(bytes32)","ea222fde":"getAmbientLightControlLimits(bytes32)","ea22ee15":"LOG_EmergencyWithdrawalVote(address,bool)","ea23c473":"scheduleUpgrade(address,string,string,bytes32,uint256)","ea2470ab":"priceLocked()","ea251c2f":"owner_BurnUpdateTokenFrom(address,uint256)","ea25415a":"getAcceptedGames()","ea25f24a":"TokenCreation(uint256,uint256,address)","ea26b575":"Eth_Collected()","ea273277":"setAyantDroitEconomique_Compte_8(uint256)","ea274a6b":"processBuy(address,uint256)","ea27a881":"getMinimumEndowment(uint256,uint256,uint256,uint256)","ea28baee":"getRealWorldPlayerRosterIndex(uint128)","ea295ec2":"calcRevenue(address)","ea29a210":"TokenVesting(address,uint256,uint256,uint256)","ea2a31fc":"NMK()","ea2a33fc":"getInitialREPSupply()","ea2a9599":"callThisToStart()","ea2bc862":"optionDescription(uint256,uint256)","ea2c23da":"createAccounts(uint256)","ea2c2f36":"doubleBonus(address)","ea2c4357":"newTokenUnlockPercent(uint256)","ea2c69d1":"Marijuaneum()","ea2ce651":"isTokenUpgrader()","ea2d4cf8":"__DeployerFunctions(address,address,uint256)","ea2da598":"NLToken()","ea2e34f2":"isTransformAgent()","ea2ea847":"testChallengeFinalize()","ea2f28d3":"countWeeks()","ea2f43c3":"currentIncreaseWithdrawalTeamBallot()","ea2f9ebe":"retrievePoolFee(uint256)","ea2fe1a2":"nay()","ea3015b8":"burnUnusedTokens()","ea304511":"changeParameters(uint256[],uint256[],uint256[],uint256[])","ea30e2e6":"XiaoMuMuToken()","ea316027":"creditWalletUserLMNO(address,uint256)","ea317f6d":"setdissolveprice(uint256)","ea31b291":"getCreatorByTrackId(uint256)","ea31c53c":"_openGameLoop()","ea31ccb6":"rICO(address,address,address)","ea31d56b":"mintTrusted(address,uint256)","ea326431":"Neulaut()","ea32a8f4":"addshares(uint256,address)","ea32c95e":"EMPTY_PUBLIC_KEY_ID()","ea3367ae":"divMasterAmt()","ea337cdb":"batchChangeHoldPeriod(uint256)","ea33dd24":"developer_increase_prices(uint256,uint256)","ea341309":"catsRemainingToAssign()","ea348da6":"FuckERsToken33()","ea352634":"closeChannel(bytes32,uint256,address,uint256,address,uint256,bytes,bytes)","ea359082":"End4()","ea35df16":"unlockBlock()","ea35e805":"calculateWinner()","ea364a9a":"addSingleApprovedAddress(address,address,uint8)","ea36ad91":"transferERCXTokenInitiation(string,address,address,uint256)","ea383176":"month30Allocated()","ea391420":"endIcoRound()","ea3b3a91":"recoverAddress(bytes32,uint256[3])","ea3b9ba1":"enter(uint256,address)","ea3bd5df":"purchase(uint256,uint256,address)","ea3c281a":"removePartner(address)","ea3d2827":"selectWinner(string)","ea3d4109":"rateIsStale(bytes4)","ea3d508a":"selector()","ea3d7e2c":"getOraclizeGas()","ea3d895f":"vestingBonusMultiplier()","ea3ebae6":"getConfigBool(bytes32)","ea3f190e":"devFee2(uint256)","ea3f6ce0":"joinGroupAndInvest(uint32,address)","ea4061cc":"calculateToFund(address,uint256)","ea4099e4":"QuantumPigBlockchain()","ea40c9e7":"ARCHETYPALXToken()","ea414b28":"setTaxWallet(address)","ea41bca5":"doStake(address,uint256,uint256,address,address)","ea42418b":"settlementContract()","ea428bad":"ACLYDcidTOKEN()","ea4354dc":"totalDividendWinners()","ea43671d":"watchPercent()","ea439e10":"transactionRawToBytes(uint256,address,address,uint256,bool,bool)","ea43b069":"PRIVATE_SALE_TOTAL()","ea43b79f":"unhaltDirectTrade()","ea448370":"setUserEmail(string)","ea454da8":"WonderDogToken(uint256,string,uint8,string)","ea46193e":"getEtherBalance()","ea46336b":"ShiversToken(uint256,string,uint8,string)","ea4634a7":"MarginlessCrowdsale(address)","ea46d7b9":"TACOS()","ea470d33":"voteForAnswer(uint256,address,bool)","ea4796b9":"revertIfReturnLessThanMinAndDie()","ea47cb24":"ownerAccount()","ea486cb1":"moderList()","ea490b84":"ethereumForkArbiter()","ea49ac03":"allScamsForSale()","ea4a294f":"addCard(uint256,uint256)","ea4a6aad":"LogQuantity(uint256,string)","ea4af029":"ConferenceCertification()","ea4afc54":"reserves(address,address)","ea4b466b":"admin_deposit(int256,int256)","ea4b9dce":"getLastBetNumber()","ea4ba8eb":"getOutcome(bytes)","ea4c4388":"createCredit(uint256,address,uint256)","ea4cc26d":"CryptoPayment()","ea4cc7eb":"divvy(uint256,address,uint256)","ea4ce239":"totalSale()","ea4dfce9":"benAddress()","ea4e6ded":"getListOfSupportedTokens()","ea4ef51f":"relockPart(address,uint256,uint256,uint256,int256)","ea4efa5d":"ganeshrajToken()","ea4f0882":"clearVolumeDiscounts()","ea503429":"privateSaleWallet()","ea5136a1":"adminUpdateSettings(address,address)","ea515c98":"pgoUnlockedLiquidityWallet()","ea51c343":"verifyLoanOffering(address[9],uint256[7],uint32[4],bytes32,bytes)","ea520b18":"totalDrop()","ea5366c1":"set_contract2address(address,address)","ea56a44d":"changeUpgradeMaster(address)","ea57712a":"SetFreeMKI(uint256)","ea57d818":"EmilToken()","ea5815f5":"getDatesForUser(address)","ea584ee6":"changeFreeZombiewCount(uint16)","ea58c644":"EUSD()","ea58c955":"powerDayRate()","ea58ca03":"DATE_01_JUN_2018()","ea593025":"giveKarma(uint256,string,string)","ea595672":"_transfer(address,address,uint32)","ea596a34":"EBIT()","ea598cb0":"wrap(uint256)","ea599cb3":"totalAward()","ea59a4e8":"GetPlayer_FromAddr(address,uint8)","ea5a13aa":"coindropsTokens()","ea5a22eb":"mintax()","ea5b2ae2":"checkIsWinner(uint256)","ea5b561f":"guardian1Vote()","ea5c204b":"MecStandardToken(uint256,string,uint8,string)","ea5c3204":"foundersAmount()","ea5ea470":"payFunding(uint256)","ea60e4ab":"Yusuf()","ea60e79b":"preICOLimit()","ea612545":"setBorrowAgreement(uint256,uint256,string)","ea62f24c":"unlockTeamAdvisorsPartnersTokens()","ea636aca":"setNinjaContract(address)","ea63ceb6":"allowAccount(address,bool)","ea64ad37":"totalUserTransfered()","ea64aee5":"GameBidAccepted(address,uint256,uint256,uint256,bytes,bool)","ea64faca":"init(string,string,address,uint256,uint256,address,uint256,address)","ea650378":"getTokenIDRelateWithTx(bytes32)","ea650c7d":"tokenToExchangeSwapOutput(uint256,uint256,uint256,uint256,address)","ea663631":"openTimerElapsed()","ea66543f":"isEmployee(address)","ea669a8a":"setTusdRegistry(address)","ea6723cd":"usdMnr()","ea680080":"firstAuctionsReferrer()","ea681932":"weiWantedOf()","ea6825aa":"VieToken()","ea6955e5":"ownerWithdrawUnspentCredits()","ea6a49ea":"setBetPrices(uint256[])","ea6b1377":"MAXTOKENSOLD()","ea6be96f":"estimateTokens(uint256)","ea6c1258":"setFSTKCentral(address)","ea6c9750":"transferToInvester()","ea6ca182":"addAgingTimesForPool(address,uint256)","ea6cc6e9":"delayedTokenAllocator()","ea6dee80":"addKey(address,address)","ea6ef2fe":"teamShare()","ea6f0725":"initCompoundContract(address,uint256,uint256,uint256)","ea6f1c4a":"sponsorLevel()","ea6f67e1":"SingularityTes26()","ea6f7f3e":"addAllValidShaHashes()","ea7000d6":"buyTokens(bytes32)","ea70b4af":"pendingCount()","ea70bdad":"attackTileForExistingUser(uint16,uint256,bool,bool)","ea726acb":"getReferrerAddr(address)","ea727ba2":"changeInterest(uint256[])","ea72d9de":"SENS_PER_ETH_BASE_RATE()","ea737b54":"getCompte_42()","ea74329c":"tokensRemainingPreCrowd()","ea74838a":"setControllers(address[])","ea7553f0":"vault_wallet()","ea75d311":"isBuyOrder(bytes32)","ea760a6b":"kkICOTest80()","ea760df8":"partner1_vows()","ea769e97":"changeTradeState(bool)","ea76a36f":"Mahjongcoin()","ea770a4c":"getNewCoinsIssued(uint256,uint256,uint256)","ea773d9e":"blink()","ea77d01a":"buyWarriorChest(uint256)","ea780bf2":"overloadedMethod(address,uint256,string)","ea782500":"curr_number()","ea7858f5":"player_cancelGame(uint256)","ea7873db":"addCompany()","ea794ef4":"constructWeaponTokenIdForWinner(uint256,uint256)","ea79dd79":"equal(bytes32,bytes32,string)","ea79f33d":"uniquenessIndex()","ea7a0142":"setRemark1(string)","ea7a7184":"testGetBalanceDb()","ea7b5df3":"pecunioTokenBalance()","ea7c2115":"lookupKittyDetails2(uint256)","ea7cabdd":"checkAllOwner(uint256[],address)","ea7ceaf7":"stopRefunds()","ea7f4d27":"right13(uint256)","ea7f537a":"percentOfGoal()","ea7f7a59":"finalizeLottery(uint256)","ea7f9244":"getRank08()","ea801802":"AviaC01n()","ea8037d6":"batchEscrowToTeamContract(address,uint32[])","ea8118ba":"Trustcoin(address)","ea8269f4":"balanceAddress(address,address)","ea82fa2a":"VestingScheduleConfirmed(address,address,uint256,uint256,uint256,uint256)","ea83add4":"DoTrade(address,address,uint256,address,uint256,address)","ea842e65":"deleteTeam(uint256)","ea8466dc":"LBQ(uint256,string,string)","ea84a6cd":"memberShare(uint256)","ea84bfee":"update(address,bool)","ea851885":"buyStake(bool)","ea85b367":"create(address,int256,address,address)","ea85b581":"Deadpool2RottenorFresh()","ea85c7ac":"getOriginalSpinnerPrice(uint256)","ea863e62":"JorgeToken()","ea87003c":"setRenamingCosts(uint256)","ea871246":"LOW_RANGE_RATE()","ea87152b":"register(string,uint256)","ea879634":"getCode()","ea87a0aa":"updateItemsPrices(uint256[],uint256[])","ea88246d":"Transction()","ea885b55":"UNDERWAY_STATUS()","ea89c6bc":"TrackChain()","ea8a0a23":"PlotTerrainUpdate(uint256,uint256,address,uint256,bytes32)","ea8a1af0":"cancel()","ea8a4305":"Zigicoin()","ea8a66c7":"absoluteMinTimeLock()","ea8ab096":"XEV()","ea8acb67":"_transferToContract(address,address,uint256)","ea8af87d":"sumPreICO1()","ea8b03c2":"innerGuess(uint256,uint256,uint256,address)","ea8b3e9f":"setFlag(string,uint256)","ea8b4627":"playerLastScoredGame(address)","ea8b5ca3":"isContractExpired()","ea8b73df":"createEthCommunityTokenAndMint(string,uint8,string,uint8,uint256)","ea8c1516":"isBlockedAccount(address)","ea8d103f":"transferFundToAccount(address)","ea8dc8d0":"buyTicket(uint256,uint8)","ea8e84a1":"RecoveryEvent(string,address)","ea8eb4be":"blockingDuration()","ea8eee87":"updatePrivateExhangeRate(uint256)","ea8ef515":"airdropSameAmount(address[],uint256)","ea8ef6be":"getBranch()","ea8f6691":"mintSpecificCard(address,uint8,uint256)","ea903c78":"setEndStage3(uint256)","ea905308":"LogSaleCapReached(uint256)","ea90ad7e":"FAUT()","ea91ec69":"TokensReleased(uint256,uint256,uint256)","ea91f8c7":"showMyTokenBalance()","ea920b2b":"betSummary()","ea92dd1d":"withdaw(uint256)","ea932954":"withdraw_token(address,uint256)","ea9362de":"maxMintingTime()","ea93a324":"getCreateShareTokenCounter()","ea941538":"TradeExecute(address,address,uint256,address,uint256,address)","ea94c696":"distributeAmount(address[],uint256)","ea94eaa2":"CreateTokenByAtes(address,uint256,string)","ea95e4d8":"BreezeCoinICO()","ea961d78":"decreaseTokensMulti(address[],address,uint256[])","ea963a21":"ReconCongress(uint256,uint256,int256)","ea9707a3":"getCaptainIndexToCount(uint32)","ea9746a2":"FNTCrowdsale(uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,address,address)","ea983f7f":"Alfacoin()","ea985057":"BountiesMinted(address,address,uint256,uint256)","ea98847b":"withdraw2()","ea988ebd":"mine1000(uint256)","ea98de9f":"runDividendPayment()","ea98e540":"proxyTransferFromToICAPWithReference(address,bytes32,uint256,string)","ea98fcf9":"tokenForBounty()","ea9960d8":"participate(bytes32[],bytes32[])","ea996c9c":"approvedRewardSources(address)","ea99e689":"withdrawFeeRate()","ea9a3eb5":"AFWToken()","ea9ac537":"emitExchangeFeeUpdated(uint256)","ea9ae72e":"setPosTokens(uint256)","ea9b4be5":"Rearden()","ea9b6025":"burnTimeChange()","ea9c2859":"CurrentGoldPercentIncrease()","ea9c3bb3":"ico2_startdate()","ea9c8e63":"addSmartContracts(address[])","ea9ce8fd":"redeemToken(bytes)","ea9e107a":"acceptRegistrarTransfer(bytes32,address,uint256)","ea9e372f":"withdrawImpl(address,address)","ea9eb855":"setWLMTPrice(uint256)","ea9f0c4c":"Partial20Send()","ea9f4968":"withinLimit(uint256)","ea9fa768":"newWeiController(address,address,uint256,bool)","eaa0e760":"automaticWithdrawLoop(uint256,uint256)","eaa1f9fe":"reqisterListening(address)","eaa26f0f":"withdrawal_delay()","eaa2b2f6":"kill(string)","eaa2f447":"BelottoCoin(address)","eaa37394":"create(bytes,bytes32,bool,bool,bool,bool,bool)","eaa382c2":"isMintingManager(address)","eaa40283":"getNewsContractAddress()","eaa4077a":"SetICOPhase(address,uint256,uint256,uint256,uint256,uint256)","eaa42a15":"_setSnapshotStakeAmount(uint256,address,address,uint256)","eaa47de2":"RickAndMortyShrimper()","eaa59c74":"rejectShipping(uint256,string)","eaa61dc2":"changeLicenseTerms(bytes32,bytes32,bool,uint256,bool,uint256)","eaa61e91":"BagpackicoToken()","eaa643d5":"StandingOrder(address,address,uint256,uint256,uint256,string)","eaa8e6d8":"LifeFactor_iii()","eaa968cc":"closeBet()","eaa9b9a7":"timestamp_ack()","eaaad8e9":"masterKeys(address)","eaabd05e":"setTokenSwarmHash(address,bytes32)","eaac77a7":"priceTokenWeiPreICO()","eaac77ea":"supply_cap()","eaacc753":"verifyHolder(address,string)","eaae46e5":"clearClaims(uint32)","eaaf2489":"_registerContributors(uint256,address)","eaaf88c1":"setTeleportContractAddress(address)","eaaff394":"getListing(uint64)","eab07d42":"GetDayCount(uint256)","eab15085":"setData_9(string)","eab184b8":"JLCToken()","eab228b9":"PRE_ICO_TIER_LAST()","eab23779":"validateAndGetTransferFee(address,address,address,uint256)","eab27a7c":"getMigrateInReporterValue()","eab2d378":"setPauseMode(bool)","eab4fb18":"THIRD_PARTY_LOCKUP()","eab5cd84":"createHONtokens(address)","eab65fb2":"EmpAgreements(address)","eab88624":"lockMoney(address,uint256,uint256)","eab8d67b":"GetPlayerAt(uint256)","eab9eb2d":"sellGrapes()","eabbcb4b":"startIco(uint256,uint256,uint256,uint256)","eabc8b8e":"canBeBidden(uint256)","eabd11af":"RandomNumGenerated(uint64)","eabd5dd6":"superman()","eabd94ba":"tryUnlock()","eabd9e60":"BlackNWhite()","eabdd572":"withdrawDAI(address,uint256)","eabe09ad":"addr1()","eabf1ce3":"Approved(address,address,uint256,string)","eabf4240":"mintableTokenAddress()","eabffab6":"VestingScheduleRegistered(address,address,uint256,uint256,uint256,uint256)","eac037b2":"tierBudget()","eac046ce":"AFFBToken()","eac116c4":"createKingdom(string,address,address,address,address)","eac12cae":"stage1Tokens()","eac1e58f":"PRICE_BTCS()","eac24932":"setEarlyParicipantWhitelist(address,bool)","eac257dc":"StandardTokenImpl()","eac2f8d9":"MultiOwnable(address)","eac34569":"redeemLottery(uint256)","eac38f75":"_rotateRight(bytes32)","eac3e799":"target1()","eac449d9":"revoke(address,uint256)","eac471a0":"cycleLength()","eac472bf":"p_setDevPercent(uint256,uint256)","eac48278":"mintToFounders()","eac50c47":"setOnSale(uint256,bool,uint256)","eac533e1":"privateSell2Token()","eac5426f":"setOwnTheDayContract(address)","eac58572":"transferDuringIntialOffer(address,uint256)","eac5a89d":"checkWhitelisted(bytes32,bytes)","eac5ab43":"verifyModule(address,bool)","eac60b27":"AddTag(address,string)","eac66cd8":"getNumberContracts()","eac80b2d":"changeVariables(uint256,uint256)","eac8221e":"previousRoundsCount()","eac8f5b8":"getAsset(uint256)","eac9d94c":"averageGen0SalePrice()","eaca7a0f":"setBaseTokens(address,address)","eacb05d8":"Total_ICOSupply()","eacb6c08":"addressToSubscriberCount(address)","eacba6c7":"setFounderUser(address)","eacbc236":"emitTransferToICAP(address,address,bytes32,uint256,string)","eacbe9ca":"removeDeal(bytes16)","eacc25e7":"Team_Wallet()","eacc501a":"setTransferFeeReceiver(address,address)","eacc5b3b":"safeSend(address,uint256,uint256)","eaccb2e8":"transferOperationsFunction(address)","eacccaf0":"setReward(address,uint256)","eacd2141":"ReasignTokens(int256,int256)","eacd2ff3":"addCar(string,address,uint256,uint256,uint256,bool)","eacde2cb":"tokenIdByIndex(uint256)","eace4827":"player_make_bet(uint8)","eaced5b7":"setSoldTokens(uint256)","eacf7d8a":"MAX_EXPIRE_DELAY()","eacfb78a":"getServerName(uint256)","eacfc0ae":"Authorized()","ead0327d":"getNickName(address)","ead04e44":"addressIsSplitter(address)","ead0f75a":"capFinalized()","ead17f58":"bonusWindow3EndTime()","ead1ed5b":"registerPayment(address,uint256,uint256)","ead2a439":"getUniqueAddressByIndex(uint256,address)","ead2bfdc":"getGamePrize(uint256)","ead2fba4":"setApprove(address,address,address,address,uint256)","ead3a1de":"QYQ(uint256,string,string,address)","ead3c2cf":"multiMint(int256,address[],uint256[])","ead490ad":"recoverLeftoversICO()","ead491ac":"getMarketDataByTokenIdx(uint256)","ead4c32c":"dividendCalculation(uint256)","ead4faaf":"Starmid(uint256,string,string,uint8)","ead50da3":"frequency()","ead5d359":"withdraw(address,uint256,bool)","ead710c4":"greet(string)","ead81e86":"addCourse(uint256,uint256,string,string,string)","ead956c1":"_orderTokens(address,uint256,uint256)","eadb2481":"TransfersEnabled()","eadb6e84":"startRitual()","eadb6fa9":"deleteAccountsInBulk(address[])","eadb80b8":"ownerOfChild(address,uint256)","eadc56d2":"betting(uint256)","eadcbf39":"MFTcreator()","eadd2f91":"distributionTwo(address)","eadd94ec":"usdRaised()","eadd9c8d":"CabChain()","eadddb3c":"getRoomCount()","eaddf568":"WhitelistAddressRemoved(address,address)","eaddf7b9":"getNextImageId()","eadf1f39":"lastBlockRewarded()","eadf4672":"checkScope(address,address)","eadf9760":"setUint(bytes32,string,uint256)","eae00565":"getVotesResult()","eae19df4":"tokenReceived()","eae3d479":"createItem(uint256,uint256,uint256,uint256)","eae445ed":"masternodeInfo(uint256)","eae45561":"setWhitelistedBatch(address[])","eae4c19f":"deployedAt()","eae4e5ce":"getPersonalAirdropAmount(address,address)","eae5a62d":"getProposedOwner()","eae6754a":"totalEthDeposited()","eae70d5e":"setprize(address,uint256)","eae7236f":"transferBack(uint256)","eae81c37":"getDeployedGames()","eae8675d":"getCompanyToken(uint256)","eae8a3d6":"setMigrate(address)","eae8cf88":"Zitron()","eae903e3":"CreatePayroll(address)","eae9dbec":"RESERVED_BUSINESS_GROUP()","eaea25ec":"blockSubsidy(uint256)","eaeb83a2":"User_4()","eaec3fc8":"addCantonEmployee(address)","eaec75aa":"finalizeBuyback()","eaecfca7":"changeBackend(address)","eaed2210":"TransactionCancelled(address,uint256,string,address)","eaefea72":"addStringTag(bytes32,bytes32)","eaf03fc5":"withdrawFromFeeBalance()","eaf0ded9":"presale_price_in_wei()","eaf16303":"DYC(uint256,string,string)","eaf18c45":"setTTMTokenAddress(address)","eaf214ea":"changeTxnTax(uint256)","eaf2402d":"_getStartIndex(uint64)","eaf2a5ef":"itemNum()","eaf39a14":"setCustomBonus(uint256)","eaf4170c":"implementsSaleClockAuctionListener()","eaf4181a":"stopPortalGunAndRick()","eaf4438f":"SuperEdge()","eaf44931":"TokenReturned(address,uint256)","eaf49a82":"numAnimalsXType()","eaf4b6df":"allocate3ProjectToken()","eaf5815a":"recoverAddr(bytes32,bytes)","eaf59375":"returnUnsoldSafe()","eaf626c2":"Set(bytes32,address,address,uint256)","eaf6d212":"getCertificateSince()","eaf7e325":"getNumItems()","eaf82213":"getContributionsForAddress(address)","eaf8294b":"fundTransfer(uint256)","eaf86db3":"isSellingState()","eaf8b774":"getAllbetByNum(int8,int8)","eaf97475":"disableAutoReinvest()","eaf98d23":"FEE_PERCENT()","eaf994b2":"mintReputation(uint256,address,address)","eaf9d194":"updateNameAndSymbol(string,string)","eafac339":"ICOendtime()","eafb2b7a":"setMembershipType(address,uint256)","eafb704f":"majorEventFunc(uint256,bytes32,bytes32)","eafc99a7":"frenzyContract()","eafde28c":"unwrapEth()","eafe5eec":"joinGameWithBalance(uint256)","eaff4b37":"FundsWithdrawn(address,uint256)","eaffb3f9":"rebond(uint256)","eaffd429":"getOrganisations()","eb0030b3":"Paydata(address,uint256,bytes,uint256)","eb009642":"mapInvestors(address)","eb00f20e":"utilityAccount()","eb0166d9":"AccountBalance(string,string,uint256,string,string,uint256,uint256)","eb01d83b":"getBidAmount()","eb01f42d":"KOIOSTokenPreSale(address,uint256,uint256,uint256,uint256,address)","eb0207e3":"hPayMultiSig()","eb02c301":"getPosition(uint256)","eb03085b":"set_bonus_received()","eb0331d5":"destroyAccount()","eb03791b":"BastetToken()","eb03db73":"suicideFunds(address)","eb03e351":"purchased_snt(address)","eb03fb71":"winningValue()","eb045789":"ChannelSeries(address)","eb04c36c":"fundingRaised()","eb04df1d":"setRNGCallbackGasConfig(uint256,uint256)","eb053fad":"calc(bytes4,bytes32,uint256,address,bytes24)","eb05920e":"func_2(string)","eb05bfc0":"disableSaleOwner(address)","eb0616e5":"gimmePizza()","eb068fe5":"F0001Token()","eb06980f":"userAtIndex(uint256)","eb06e65e":"allowanceFromProxy(address,address,address)","eb06ec32":"rewardTaskCompletion(uint256,address)","eb08aa3b":"preSaleAddress()","eb08b304":"changeMeatProvider(address)","eb08dbfc":"emitBurned(address,uint256)","eb09ad46":"EthernautsExplore()","eb09b5bc":"FUNCToken(uint256,string,string)","eb0a70c1":"hasVersion(string)","eb0bfa38":"setRegionPrice(uint16,uint256)","eb0c9e5a":"verifySignature(address,uint256,uint8,bytes32,bytes32)","eb0db6ac":"setChemistryAddress(address)","eb0e9240":"checkNumber(uint256)","eb0eea61":"Securities_4()","eb0f2100":"sweep(uint256,address,uint256,uint8[],bytes32[],bytes32[])","eb0f46cc":"revokeAccessMint(address,address)","eb0f4b33":"numOwnershipStatuses()","eb0f5186":"_determineDefence(uint256)","eb0fb0a3":"setTokenToOwner(uint256,address,bool)","eb1098b8":"packLimit()","eb10b4bd":"getSettingDeprecation(uint256)","eb11dd7b":"squirrelReq()","eb121e2f":"update(uint256,uint256[101][])","eb1257c5":"create(int256,int256)","eb12d61e":"addSigner(address)","eb12fd82":"setRates(address[],address,uint256[])","eb12fef5":"nAddressLog()","eb1301a2":"addAddressToUncappedAddresses(address)","eb142e36":"_setUserInfo(address,uint64,uint256,address)","eb14367d":"layEgg(uint64)","eb14b353":"setGenesis(address)","eb14f53e":"batchTransferEther(address[],uint256[])","eb15d21b":"QiToken()","eb1635ed":"getMintingPrice(uint256)","eb18747a":"getGoldStatusCode(address)","eb18ebdf":"product4()","eb18fbe7":"setPreIcoEnd(uint256)","eb195635":"IQT_DECIMALS()","eb1ab91b":"AtomicSwap(address,uint256,bytes32,uint256)","eb1bb9d9":"hybridizationListSize()","eb1cae39":"EvNewPrice(uint256,uint256)","eb1cfa82":"setMaxDrops(uint256)","eb1d380e":"callContractFunctionByAddress(address,string,address,address,uint256,uint256,bool,string,bytes32)","eb1d74c8":"UpdatedBonusAccount(address)","eb1de3e5":"ICDStopTime()","eb1e2cd9":"getPlayerAccountBalance(address)","eb1ea5be":"clearTracks()","eb1ebd93":"BLS_TOTAL_CAP()","eb1edd61":"FEE_ADDRESS()","eb1f9c78":"HasDelegateAuthority()","eb1fa690":"queryVestingRemain(uint256,uint256)","eb1ff845":"changeId(uint256,uint256,uint256)","eb222098":"ProGenTech()","eb229f1e":"totalSupplyFromInventory()","eb230b2d":"bobClaimsDeposit(bytes32,uint256,bytes32,bytes20,address,address)","eb239d9a":"timeAdjustNeg()","eb245d91":"custodianTransfer(address,address)","eb24ffdd":"getCountriesData(uint256[])","eb26df0a":"updateDiscounts(uint256[],uint256[])","eb28615e":"createCommunityToken(string,uint8,string,uint8)","eb28d249":"setMissions(uint256,uint16)","eb28ddcf":"_isTAOSignatureAddressValid(address,address,address,uint256)","eb290e12":"Mimicoin(uint256,string,string)","eb295b27":"getChannelId(address)","eb29d9ea":"transferWithEther(address,uint256)","eb2a783e":"canBuyExistentToken(uint256)","eb2a7c4a":"freeLottery(uint256)","eb2b381a":"toDecimals(uint256)","eb2b6e95":"PUNDI()","eb2bab77":"increasePot()","eb2bdbab":"getBUU(bytes32,uint256)","eb2bef47":"BetterAuction(address,address,address,uint256,uint256)","eb2c0223":"upgradeContract(address)","eb2c118a":"ExtTokenPurchase(address,address,uint256,uint256,uint256)","eb2c6a19":"setInvestorWhitelist(address,bool)","eb2c87a4":"partner2_vows()","eb2cf098":"get_data_item()","eb2f3038":"buyout(address,uint256)","eb2f4817":"requestAccess()","eb2f8696":"_getCurrentSecret()","eb2ff2d2":"softCapPreSale()","eb3087bf":"buyFci(address,uint256)","eb30db7b":"trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,string)","eb30f57d":"maxEthToRaise()","eb31f3d0":"Zoltan()","eb321173":"claimStake()","eb32cf9b":"saleExchangeRate2()","eb338f4e":"raiseMaxNumInterests(uint256)","eb343301":"registerCertWithID(bytes32,bytes,bytes32,uint256,bytes32)","eb34967a":"gameGeneration()","eb34c173":"firstAuctionsStartDate()","eb34fa12":"CurrentTLSNProof(address,string)","eb357e99":"payment_time()","eb35a849":"getSignerby()","eb36622d":"readBytes32(bytes32)","eb36d549":"WINR()","eb36f8e8":"stringToBytes64(string)","eb3721be":"getMarketOrder(uint256)","eb37df4f":"getGiftsByTemplateId(uint256)","eb381429":"mint(int256,uint256,bytes32)","eb38615b":"setLiveTx(address)","eb39bc90":"setPropertyColors(uint16,uint256[5])","eb39f443":"startMintingDate()","eb3a2345":"setFunding(bool)","eb3a733f":"responseOptions(uint256)","eb3a867b":"LogVote(bytes32,bool,address)","eb3a88dc":"lockupTokens(address,uint256)","eb3b0ab3":"setFeeLocked(bool)","eb3b41be":"OrderFulfilled(uint256,uint256)","eb3b6891":"throwsWhenTransferingDuringSale()","eb3beb29":"silo()","eb3c8d7d":"changeMaximumValueWithoutProofOfAddress(uint256)","eb3cd55c":"setEveryBidFee(uint256)","eb3d032d":"FAPFundDeposit4()","eb3de344":"whitelistInvestor(address,string,string)","eb3f1b61":"allocateAngelWheelFinanceToken(address[],uint256[])","eb3f2427":"plainPay()","eb3fa926":"manager_()","eb3fee82":"setCompte_16(string)","eb40a9c8":"setRecommenderAllow()","eb41fbca":"changeTargets(uint256,uint256)","eb42b0cb":"payBeneficiaries()","eb4435a3":"Github()","eb4439fb":"enableVoting()","eb446ad8":"WHITELIST_SUPPLIER()","eb4475a1":"reducerunmoney(address,uint256)","eb44bb04":"frozenPool()","eb44dd5d":"preSale5Finished()","eb44fdd3":"getMarket(uint256)","eb455dc6":"sendBitcoin(string,uint256)","eb464316":"TOKENSALE_BLACKLIST()","eb46a11a":"setInvestorId(address,bytes32)","eb470ebf":"getTimeStamp(address)","eb473fc7":"alreadyAvailedOffer(address,address)","eb49168f":"getIntervals(bytes32,uint256)","eb496a80":"exploitMe(bytes8)","eb4999f4":"ticket1price()","eb4a2935":"getScribes()","eb4b41b2":"disableAmbassadorMode()","eb4b8091":"payWinners(address[20],uint256[20])","eb4be616":"CanBaoToken()","eb4c5593":"FREEZE_END()","eb4c5ab9":"createShapeShiftConversionPost(string,string)","eb4c9ae7":"claimUpdateToken()","eb4d0e32":"redemptionFund()","eb4dd8f2":"confirm(address)","eb4defcb":"returnCoupon(address[2],uint256[7],uint8,bytes32[2])","eb4df824":"getOwnItemCount(address)","eb4e64d6":"amendAgreement(string)","eb4eecec":"altarFund()","eb4f16b5":"addStake(uint256)","eb4f17e7":"saleProceedsEtherAllowStale(uint256)","eb4f54b2":"TokenRUSD(uint256,string,uint8,string)","eb4fe500":"logoVote()","eb502d45":"transferProxy(address,address,uint256,uint256,uint8,bytes32,bytes32)","eb5068f2":"exitWallet()","eb50849e":"setCanAcceptTokens(address,address,bool)","eb508932":"lastPayouts(uint256)","eb51e2e4":"_popularitySetting(uint256,uint8)","eb51e575":"getNextPrizePool()","eb5230d7":"ETHERFUNDME_FEE()","eb52835b":"nextShareTime()","eb52e404":"adminTrade(uint256[8],address[4],uint8[2],bytes32[4])","eb531996":"getConversation(address,address,uint32)","eb53367a":"delABaddress(string)","eb533750":"extLockNinja(uint256,uint16)","eb5392ff":"Leonardo()","eb53a9a3":"getInitializeNumTicksValue()","eb53d273":"getServerNb()","eb55b2a3":"replaySweep(address[],address)","eb56105d":"marketSize()","eb5625d9":"safeApprove(address,address,uint256)","eb5653d7":"tokenIdToApproved(uint256)","eb570b05":"currentSalePriceInWei()","eb57d309":"TenantTerminateMisrep(string)","eb581c8f":"ScudoCoin()","eb58705b":"_performTransferFromToICAPWithReference(address,bytes32,uint256,string,address)","eb5904c0":"setProfitDistributionContract(address)","eb59ec82":"setLastMint(address,uint256)","eb5a458e":"unregisterByList(address[])","eb5a662e":"getAllowance(address)","eb5a7033":"getPrefixedHash(address)","eb5b135b":"tFinalized()","eb5b62b4":"BOPToken(address,uint256)","eb5ba3b4":"polyTokenAddress()","eb5ba56e":"creator_tablets_count(address)","eb5baebf":"MAX_SUPPLY_DECIMAL()","eb5bbef8":"withdrawInternal(uint256,bool)","eb5bdda0":"allocateAdvisorTokens(address,uint256,uint64,uint64)","eb5ce181":"Sample()","eb5dd1e3":"shouldPass()","eb5dd94f":"updateController(bytes32,address)","eb5ea1c0":"RemovePoolCoOwner(string,address)","eb5edde3":"bonusPreICO()","eb5f2cf8":"InsertCard(uint32,uint32,uint8,uint16,uint16,uint16,uint16,uint32[])","eb60082b":"profitsSendable()","eb601c70":"Vogeldubastardtoken()","eb605e9f":"hasPlayerWagered(address)","eb60764f":"getDayCount()","eb60c5d7":"DadsToken()","eb60e2c7":"setCountPlayersInPosition(uint256)","eb614fc7":"locked_allocation()","eb6157f7":"Abloxx()","eb6192a9":"getMTUBal(address)","eb62a013":"Offer(address,address,bytes32,uint256,uint256,uint128,uint256)","eb62df61":"acceptOffer()","eb639fd0":"luckyPot()","eb63e140":"getBuyPriceAfterTax()","eb63eadd":"setValue(uint256,uint256,uint256)","eb6443a3":"getIntelsByProvider(address)","eb64922b":"sendTeamTokens(address)","eb64d3e0":"TokenDrain(address,address,uint256)","eb64d5ce":"getUnitsStealingCapacity(address,uint256,uint256)","eb65a2c7":"crownDecimals()","eb663cf2":"LOOMIA_REMAINDER()","eb665994":"_0xBitcoinToken()","eb6779d4":"test_oneFalseAssert()","eb67cee8":"contractSize(address)","eb680744":"nextCheckpoint()","eb6855e3":"BossToken()","eb685867":"withdrawForFourYear()","eb685c47":"setTokenPrice(uint256,uint256)","eb68ce95":"processRegisterUser(address,address,address)","eb6a145b":"extractPartsFromGene(uint256)","eb6b192f":"ownerByAddress(address)","eb6bbd78":"getUserImages(address)","eb6c4bc8":"monsterIdToGeneration(uint256)","eb6d509e":"Test(uint8)","eb6d9fb5":"constructOwned()","eb6dc7c4":"processBurn(address,uint256)","eb6ecc03":"triggerTokenFallbackIfNeeded(address,address,uint256)","eb6ed29a":"setCanGetMoneyBack(bool)","eb6f80f1":"setPreferredSaleTLYperETH(uint256)","eb700331":"getLockTokenSupply()","eb70095d":"showVault()","eb7085cb":"teamReserveTokens()","eb70bc86":"BountyFulfilled(uint256,address,uint256)","eb70e13e":"_unpackStrengthValue(uint256)","eb70e498":"observer()","eb712a48":"etherTransfer(uint256,address[])","eb71b7e4":"prepayProposal(address)","eb727714":"trustNet()","eb73900b":"Whitelist(address)","eb7402f5":"multiAccessHasConfirmed(bytes32,address)","eb7492d1":"testTotalSupply()","eb74fa0b":"BCAClubCoin(uint256,string,string)","eb7550d8":"manualFinishGame(uint256)","eb75c410":"getOffer(address)","eb75dc03":"TOKEN_PRESALE_CAP()","eb76607d":"creationCap()","eb7698e2":"RaffleBitcoinBook(string,uint256)","eb770d0c":"setEntryFee(uint256)","eb780d3c":"SMILO_FOUNDATION_AMOUNT()","eb782d8c":"ContentSeries(address)","eb78a26d":"blackFundsWallet()","eb78a2af":"checkrespond(uint256,address)","eb794dd7":"addBlack(address)","eb795549":"safeTransfer(address,uint256,bytes)","eb799177":"gasOraclize()","eb79ec7c":"withdrawStocks()","eb7a10b1":"test_36_assertGasUsage2000Boards()","eb7a6471":"getPersonalAirdrop(address,address)","eb7a7241":"last_mint()","eb7b7006":"getRefundInfo(address)","eb7bb9fb":"CrowdsaleHardCapReached(uint256)","eb7bdc37":"withdrawSfowns(address)","eb7c244d":"amount5kUsdInCents()","eb7c6525":"ZbzStandardToken(uint256,string,uint8,string)","eb7c6f72":"step6()","eb7cdb56":"rankDown(uint256,uint256)","eb7db21b":"flip32(bytes32)","eb7ea41b":"showLastGlobalAuditTime()","eb7f3905":"tradeWithTips(uint256[10],address[4],uint256[10],bytes32[4])","eb7f4c0d":"CrowdsalePorto(address,address)","eb7fabd7":"getMax(uint64[])","eb800846":"setLLV_edit_18(string)","eb807339":"getRiskId(uint256)","eb80b3d1":"raceDistCon()","eb810864":"addTokensMulti(address[],address,uint256[])","eb8136f3":"stockTokens()","eb81e95a":"controllerBurn(address,bytes32,uint256)","eb8222eb":"spendMoney()","eb823572":"ProfitContainerAdapter(address,address,address)","eb8266b5":"addNumberToDynamicBytes(uint256)","eb829aef":"MPTToken(address,address,uint256,string,uint8,string)","eb83e2b5":"receiveApproval(address,uint32,address,bytes)","eb83f015":"castleContract()","eb845c17":"gen0AuctionDuration()","eb854131":"mbtcToUsd(uint256)","eb8571c8":"trans(address,address,uint256)","eb85c61e":"GUIDEToken()","eb85d999":"IVE()","eb869b8b":"Scheduled(uint256,uint256)","eb87073a":"verifyImages(bytes32,uint256,uint8,uint256,bool)","eb87ec01":"newStatus(address)","eb880380":"checkCooSeed(uint32)","eb886568":"signatureCheckerFreezed()","eb88d688":"createCommitment(uint256)","eb88e84d":"LatiumSeller()","eb89022e":"endDate1()","eb8ac921":"test(uint256,uint256)","eb8b12d4":"PLATFORM_WALLET()","eb8ba66c":"insertStage(uint8,uint256,uint256)","eb8bbd28":"getTotalFunds()","eb8cad45":"doMarriage()","eb8cb983":"LogPauseICO()","eb8d2444":"saleIsActive()","eb8d3321":"start_PRIVATESALE()","eb8e1660":"getPlayerOption()","eb8eea15":"totalMainSaleTokenIssued()","eb8fa486":"contributionInCauldron(uint8,address)","eb8fb32c":"setPercentageToKill(uint8)","eb8fb3ec":"getConstraint(bytes32,address,address)","eb90450f":"getFirstBuyerAddress(uint256)","eb907398":"changeSoftCap(uint256,uint256)","eb90fff8":"blockContract()","eb91385a":"UnauthorizedAccess(address,bytes4)","eb91b5ac":"ALUXToken(uint256,string,string)","eb91d37e":"getCurrentPrice()","eb9220ab":"updateRent(uint256)","eb9253c0":"seize(address,uint256)","eb931024":"passKYC(address)","eb935e70":"bigbrother()","eb93c515":"burnUpdateToken(uint256)","eb944e4c":"revokeTokenGrant(address,uint256)","eb947f19":"ExampleResourcePool()","eb94eecb":"isContributionAllowed()","eb95264c":"consolationRewardsPercent()","eb95b7d5":"Bounty(address,address)","eb95d4e6":"purchaseTokens(uint256,address,address)","eb95f0bf":"getCurRoundId()","eb965c5e":"Orientation(bytes32[])","eb967a2a":"refundsClaimed()","eb968ac7":"change(address,int256)","eb96ada7":"gameUnpause()","eb975390":"lockedTokenTransfer(address[],uint256[])","eb9763ed":"transferby(address,address,uint256)","eb981fea":"withdrawFromToken(uint256)","eb987ca7":"placeBet(address,uint256,string)","eb98c8d6":"getGoldsSinceLastCollect(address)","eb990c59":"initialize(address,address,uint256,uint256)","eb9969a8":"getAllBalance()","eb9a5211":"DonationMatched(address,address,uint256)","eb9aec0a":"oraclizeIds(uint32)","eb9af834":"removePolicy(uint8,uint256)","eb9bc6ff":"partyCount(address)","eb9c9708":"SisterToken(uint256,string,string)","eb9df7db":"updateContractOwner(address)","eb9e0398":"mint(int256,uint256,address)","eba0184f":"issuable()","eba052e7":"RefreshChipUnableList(uint8)","eba068ce":"addBountyForHunter(address,uint256)","eba2a91b":"superMintBulk(address[],uint256[])","eba36dbd":"setAddr(uint256,address)","eba37aff":"nrMeasurements()","eba37dbd":"getAllReportersDisputeBondToken()","eba38402":"finishEvent(address,uint256)","eba3cdfe":"bundle(address,uint256)","eba4ae3b":"NewDungeonFloor(uint256,uint256,uint32,uint128,uint256)","eba56302":"tier1Total()","eba60632":"drawNow()","eba66dc9":"JOTUNSupply()","eba6a307":"getQuotePrice()","eba74c0b":"updateCodeWeight(string,uint256)","eba898a0":"_authenticate(string,uint256)","eba9a4a8":"DiamondBond()","ebaa32f3":"submission_stage_block_size()","ebaa4470":"getOwnerAuctions(address)","ebaac771":"write(string)","ebab43e4":"isPreSaleTime()","ebabfb0b":"volumeType6()","ebad6612":"m_ETHPriceInCents()","ebaddea7":"unlockAccounts(address[])","ebadfd3d":"checkGivenAway()","ebae35a6":"DAOTokenCreationProxyTransferer(address,address)","ebae46be":"finishFunding()","ebae743b":"addCET6To(address,uint32,uint32)","ebae7bf1":"addHpbNode(address,bytes32,bytes32,bytes32)","ebaf0e74":"dInit(address,bool)","ebaf7f2f":"returnReward(uint256)","ebafefb1":"makeInitAccount()","ebb045fa":"PublicResolver(address)","ebb05f9c":"setItemApproveForAll(uint256,bool)","ebb0a856":"leastSwap()","ebb0e631":"dtGetCityData(address)","ebb11c93":"_build(address,uint256,bytes)","ebb1b7ed":"apiAuthorized()","ebb1dc21":"ERC20ByteCode()","ebb240ef":"ExampleUpgradeable23Token(address,uint256,bytes32,bytes32,uint256)","ebb31418":"disableTicker()","ebb32c65":"FooAbi(address)","ebb332be":"getFunStr()","ebb3fd8d":"kingdomName()","ebb44389":"bulkMintVested(uint256,address[],uint256[])","ebb4ac3c":"ForwarderFactory(address,bytes32,address)","ebb4f484":"ROLE_SUPERUSER()","ebb5a996":"setUsdLockAccountThreshold(uint256)","ebb5f11c":"explore(uint256,address,bool)","ebb689a1":"clearAll()","ebb6b338":"certifiedPartner()","ebb6c59f":"right72(uint256)","ebb6dc3a":"returnEther()","ebb71194":"withdrawFees(bytes32)","ebb741cb":"getChannelSize(uint256)","ebb75afc":"debugLog(string,uint256)","ebb85502":"GAME_START_TIME()","ebb88b97":"getABaddressByName(string)","ebb8c22c":"Win(address,uint256,uint256,uint256,uint256)","ebb940e6":"BuyBackContract()","ebb9ab25":"moveState(uint256,uint256)","ebb9b466":"phase_5_Time()","ebb9ba80":"calculateRewardForLevel(uint8,uint256)","ebba1400":"setIntegerValue(uint256)","ebba5184":"WuZeFoundation()","ebbaa1fc":"AdvancedToken()","ebbb76c8":"LongTermProjectTokens()","ebbbe00b":"testNopUnroll16(int256,int256,uint256)","ebbc4965":"acceptOwner()","ebbc9543":"_getPersonalAirdropUnlockTimestamp(address,address)","ebbe05d0":"setMinWeiAmount(uint256)","ebbf2f6a":"PixelColor(uint16,uint16,address,uint24)","ebbfb637":"Registered(bytes32,uint256,address)","ebbfb994":"startTokenSale(uint256,uint256)","ebbfcfef":"tomoDepositAddress()","ebc04649":"ChangeDatabase(address)","ebc16c5c":"getDrugsSinceLastCollect(address)","ebc1b4f1":"ForexCoin()","ebc20426":"minCapWei()","ebc26c95":"ToniToken()","ebc33c51":"minContrib()","ebc46fdb":"detachControllerForever()","ebc56c33":"_hardRequire(bool,bytes32)","ebc56eec":"set_allow_refunds(bool)","ebc58f62":"MSXAdvanced()","ebc59f32":"configPerShares()","ebc66bac":"Payreum()","ebc697d1":"testControlRestartNotOwner()","ebc6a661":"endICOStage2()","ebc6e332":"AuctionCreated(address,uint256,uint256,uint256,uint256,address)","ebc73e65":"setWaitingTime(uint256)","ebc824a2":"killItWithFire()","ebc8b934":"add_player(bytes32)","ebc97c36":"advisorsPeriodsNumber()","ebc98117":"getUserId(uint256)","ebcbee16":"totalRaisedInWei()","ebcc0de1":"closingPrices(address,address,uint256)","ebcc8eb6":"ETHCONEarlyBirdDonation(address)","ebcc9a31":"ICOweek2End()","ebccb566":"Halo3DPotPotato(address)","ebcd8d8a":"setStarInitialPrice(uint256)","ebce79ff":"enableBlacklist(address[])","ebcfd89e":"AGCoin()","ebcfd922":"playerEther()","ebd03c55":"changePlatPrice(uint32,uint256)","ebd057fa":"owner_withdrawal(uint256)","ebd062de":"removeOwnerAddress(address)","ebd0f599":"asktoken()","ebd3d58a":"InitPeculiumAdress(address)","ebd46d64":"encodeTokenId(uint256,uint256)","ebd4d009":"TotalFloatingInt()","ebd56581":"bitservice()","ebd58975":"sub2(uint256,uint256)","ebd66a9c":"MAX_ALLOWED_PRE_SALE()","ebd7cda4":"cTime()","ebd83378":"get_blocks_for(uint256)","ebd863ac":"DccbtcToken()","ebd8d7a0":"getRefReservedTokens()","ebd8fde3":"calculatePriceIncrease(uint256)","ebd9954c":"tgrStageBlockLeft()","ebda6686":"referrerLevel3Percent()","ebdac090":"depositFees(uint256)","ebdb6063":"lastIssuance()","ebdb730d":"weiPerFee()","ebdbc7d6":"CurrentTokenOwner()","ebdbd65e":"update_private_room(bytes32)","ebdcc8ac":"testrc(bytes32,uint8,bytes32,bytes32)","ebdd3f77":"triggerRecoveryAddressChange(uint256,address,bool)","ebde0bce":"MultiUser()","ebde609b":"LykkeTokenErc223Base(address,string,uint8,string,string,uint256)","ebdf0d5d":"endianConvert32bit(uint256)","ebdf86ca":"add(string,string)","ebdfa455":"joinedCrowdsalesLen()","ebdfd722":"whitelistEndTime()","ebdfe5ad":"picops_is_verified(bool)","ebe010b8":"_setStakeHolder(address)","ebe02377":"submissionPool()","ebe09a93":"getGoldTransaction(string,uint256)","ebe14170":"EdgelessToken()","ebe1df4f":"LLV_v31_4()","ebe22b12":"unsale()","ebe24dfd":"deployCtorContract()","ebe25056":"isWarlordChest(uint256)","ebe29383":"initializeSomeAddress(address,address,address)","ebe347d1":"lastTimeWithdrawal()","ebe36cb0":"read_price_floor()","ebe41b73":"deposit(uint8)","ebe4c0d1":"dividendsSumForUser(address)","ebe4c597":"VestingRevoked(address,uint256,uint256)","ebe599aa":"updateAppExec(bytes32,address)","ebe5a4b2":"toB32(bytes,address)","ebe64f97":"draw_random_card(uint8,uint8[])","ebe65f60":"withdrawOffer(uint256,uint256,bytes32)","ebe6ba07":"deprecateInterface()","ebe6f3cc":"setDappTokenContractAddr(address)","ebe749d3":"tokenLockTime()","ebe74b21":"PRE_SALE_30_ETH()","ebe771da":"setPercent5(address,uint256)","ebe7e852":"calculateResult(uint256,uint256,uint256)","ebe87ca4":"between(address)","ebe89597":"validate(uint256,bytes32,address,bytes32,bytes32)","ebe955fe":"simFrequency(bytes)","ebea3815":"setDays(uint256)","ebea3d30":"setFixedRate()","ebeac0c8":"marketCapBlue()","ebeac2b5":"reactivate(address)","ebead05f":"getOrderSharesEscrowed(bytes32)","ebeb0838":"delFromWhiteList(address)","ebeb0f48":"lockTotalSupply()","ebeb1b5e":"transferTokenToMultisig(address,address)","ebeb76bb":"assignMeta(string,uint256)","ebec7352":"numVideos()","ebed561b":"engineRunning()","ebed7a95":"mineral2Shares(uint256)","ebedef1a":"approvalFallback(address,uint256,bytes)","ebef28aa":"BID_DELAY_TIME()","ebf04917":"tranches()","ebf056e3":"revoke(bytes32,address,bool)","ebf06bcb":"spawnSite(uint256,uint256,address)","ebf0c717":"root()","ebf0da65":"erc223()","ebf0e5f1":"SimplePriceFeed(address,address,address)","ebf1356e":"minMineSize()","ebf1a495":"sendEthTweet(uint256,bool,string,bool,string,uint256)","ebf31253":"getMoneyness()","ebf469dc":"issue(address,uint256,string)","ebf5128c":"mintUnICOLeftToken(address,address,address)","ebf522b8":"_newJockey(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","ebf53e0e":"countAllCliDrm()","ebf5cdfd":"jackpotGuard(uint256)","ebf652cc":"lockInTime1()","ebf6e91d":"hit(uint256)","ebf70010":"ChangeWhiteList(address,bool)","ebf701e0":"getAccountBalance(bytes32)","ebf76522":"selfDestroy(address,address)","ebf81d30":"_Withdrawal(bytes32,uint256,uint256)","ebf88de4":"removeHeir()","ebf89fa9":"withdrawPonzi(uint256)","ebf95043":"balanceOfMorty(address)","ebfa3c1b":"maxRandomRound()","ebfaacce":"uncappedBuyerList(address)","ebfb3630":"vernamCrowdsaleToken()","ebfd288a":"getVerifiedReceipt(bytes,bytes,bytes)","ebfda085":"LOOT()","ebfdc657":"foundersAddress()","ebfe0f39":"makeCoin(uint256)","ebfed9f2":"motionVoting(uint256)","ebff2602":"Withdraw(address,address,uint256,uint256,uint256)","ebff410d":"bonusAccountBalances(address)","ebffd7e3":"getStage1Cap()","ec000bb5":"getPrizes()","ec003704":"getVestingStart(address,address)","ec005255":"boolToInt(bool,bool)","ec00d2a4":"frozenRecordsCount()","ec017820":"TransferToBTCoE(address,uint256)","ec01f75f":"initOperated(address)","ec0274ed":"CreateBatch(uint256,string)","ec0317ff":"AidCoin()","ec034bed":"donationAddress()","ec035393":"_getAllRevisionBlockNumbers(bytes20)","ec035aac":"bonusOver3ETH()","ec0373c6":"adminGetPlayerCount()","ec041a24":"getOrModifyBlocked(address)","ec0484ef":"roiEscrow(bytes32)","ec049219":"AtmanToken()","ec0493f7":"_populateTokenData(uint256,bytes16,uint256,uint32)","ec062ac0":"getMaxProfit()","ec066a4c":"ALLYToken()","ec0904f7":"releaseFor(address)","ec096f8d":"addTransaction(address,uint256,bytes)","ec0a0b50":"TOKENS_SUPPLY()","ec0a12d3":"JKToken()","ec0b3d21":"testThrowsIfPlaceholderIsBad()","ec0b3de4":"deletePetition(uint256)","ec0b4153":"getMoneyness(int256,uint256,uint256)","ec0b4207":"initCountTokens()","ec0b529f":"lockMinSiteTipPercentage()","ec0ba006":"countEgg(uint64)","ec0be13d":"Location()","ec0c6a72":"issue(bytes32,int256,string,bytes,uint256)","ec0cfd0b":"getProperties()","ec0d69e3":"train(uint256,bool,uint8)","ec0da0cd":"registerOptionPair(address,uint256,address,uint256,uint256)","ec0da330":"testSafeSub(uint256,uint256)","ec0de26e":"foundationTimelock()","ec0ea816":"breed(uint256,bool,uint256,bool,string,string)","ec0f1025":"testBitsOrSuccess()","ec0f60d9":"ICOcontributors()","ec1024d1":"censoredChatMessages(uint256)","ec10286d":"PointlessCoin(uint256,string,uint8,string,address)","ec109249":"RefundableAllocatedCappedCrowdsale(uint256,address,address,uint256,uint256,uint256,uint256,address,address,address,address,uint256)","ec112460":"_updateDistribution()","ec1182c2":"freezePrice()","ec11d0cf":"DeltaBalances()","ec12f1ef":"increaseMaxAvailableTokens(uint256,string,uint256)","ec132ce3":"unconfirm(uint256)","ec13cc7b":"freeze(bytes32)","ec13df6b":"setExecutiveOfficer(address)","ec140a1f":"BTSJToken()","ec149de9":"Ethereumwhocoin()","ec14f974":"MAX_CARS()","ec1553d1":"mintCoin(address,uint256)","ec15afe1":"filmpaid()","ec15c6ba":"substring(string,uint256,uint256,uint256,uint256)","ec164625":"_clearTotalBonusTokensByAddress(address)","ec176dee":"weiToTokenFactor()","ec17a7a3":"addressSCICO()","ec17b20e":"setStartingBlock(uint256)","ec1847b6":"getWorkerIndex(address)","ec1893b4":"getProps()","ec18ca9c":"lastPresser()","ec1938a8":"AddNewSegment(address,address,uint256,uint256,uint256,string)","ec1ad474":"removeFromWallet(address,uint256)","ec1b375a":"spardosenName()","ec1d9bf4":"isGoldRegistry(address)","ec1e4861":"assignWinnings(uint256)","ec1e6a4f":"tearDown()","ec1e74a7":"commitThreshold()","ec204f87":"_getTokenAmount(uint256,uint8)","ec20b457":"addInvestor(address,uint256)","ec20fc35":"populationIncrease()","ec216c34":"checkOwnerIndex(uint256)","ec21a913":"setUint256(int256,uint256)","ec22f94f":"getRedeemableReputationVoter(bytes32,address)","ec23ba66":"Kapitalexote()","ec24aa01":"startPrivateSaleStage()","ec25adf4":"addtokens()","ec271be2":"charityWalletAddress()","ec277ce7":"Resilience()","ec27bdd3":"challengingInput()","ec27f6d8":"LegacyRepContract()","ec280bf6":"moreMinFunds(uint256)","ec28118e":"nextDiscountTTMTokenId1()","ec2929fb":"divbonus()","ec29781e":"deliveryId()","ec29ff7c":"getMaxiumInputEther()","ec2a4062":"setOpenBlock(uint256)","ec2ac54e":"deposit(address,uint256,bytes32,uint256)","ec2af44d":"test_oneValidEqBool()","ec2b189c":"GetURL(address,uint256)","ec2b50bf":"setUserLibrary(address)","ec2bb963":"openPrize()","ec2bcd22":"addressCanContribute(address)","ec2c28b4":"checkBuy(uint256)","ec2c8fec":"getEggsOff(address)","ec2c9016":"getMarkets()","ec2cdb87":"initialSaleComplete()","ec2ec781":"testFailGetUnsetToken()","ec2efe40":"MinPayment()","ec2f39b4":"isICOStarted()","ec2f81ac":"createGroup(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","ec300fcc":"MediChainToken(uint256)","ec309038":"canStart()","ec30ad95":"EthsqrCore()","ec30c4e3":"getPointsToSpend()","ec3178f9":"getMemesByOwner(address)","ec322a88":"tokenlenth()","ec32d68f":"xrateProviders(uint256)","ec32e4e8":"admin_inactive_withdrawable()","ec332488":"openForPublicTrade()","ec342ad0":"BASE()","ec343a97":"Rate4()","ec35576e":"GetProfitFunds()","ec3575ec":"soccer()","ec357c64":"getIsCoinReg(string)","ec36196e":"toSpread()","ec3743f1":"setTeamFund()","ec38027e":"MadToken()","ec384a3e":"tokenToExchangeTransferInput(uint256,uint256,uint256,uint256,address,address)","ec38e855":"mintOperations(uint256)","ec3a0489":"PAYToken()","ec3a6d64":"getGoodDecision(bytes32)","ec3a6f73":"numRegistrants()","ec3adf65":"editUser(bytes32,bytes32,bytes32,bytes10,bytes32,bytes32,bytes32)","ec3af4a9":"getProjectKudos(address)","ec3bb11a":"maximumRaised()","ec3c155e":"ERC20TokenMock(uint256,string,uint8,string)","ec3d21e1":"kycPass(address)","ec3d45e8":"setMinParticipants(uint256)","ec3d5ffb":"stillAllowedReadable()","ec3f3636":"firstStage()","ec3f5d62":"withdrawRestOfBalance()","ec3fdf1d":"getExpiredAddressIndexes(address)","ec40c43d":"SmartPool(uint256,uint256,uint256)","ec40db16":"HedgeContract1(uint256,address,address)","ec412e00":"targetDiscountValue2()","ec42f82f":"finishIco()","ec439d67":"countAllUsers()","ec43eeb6":"getAddressOfId(uint256)","ec443813":"BytesToAddress(bytes)","ec449e67":"currentPriceInfoOf(uint256,uint256)","ec44acf2":"trading()","ec46009d":"EstateX()","ec4673d1":"approveWithdraw(uint256)","ec46bf8f":"emergency_withdraw(uint256)","ec47297e":"_CallCancelled(bytes32)","ec4754c6":"endetoken()","ec47a795":"getLockedStages(address)","ec47e7ed":"EtherWithdraw(uint256,address)","ec480557":"readTotalNumberOfPurchases()","ec486c23":"NewBToken()","ec4a79cf":"unlockaddress(address)","ec4aca2a":"bancorTradingContract()","ec4b48ad":"testCanDeposit(address)","ec4baa83":"StaticEthAvailable()","ec4bfdd4":"calculateOptionsComponents(uint256[9],uint32,uint32,bool)","ec4c76bb":"setInitialBuyoutPrice(uint256,uint256)","ec4cd0cf":"isSuccessful()","ec4d88d7":"usernames(bytes32)","ec4e530d":"_decodePriceData(bytes)","ec4eb442":"author(uint256)","ec4fb7a0":"totalTokensPresale()","ec4fd09d":"getEtherDog(uint256)","ec503611":"profitsSent()","ec505f58":"INDOCASH()","ec5134ca":"processStep()","ec51431f":"Unvault(uint256,uint256)","ec530de6":"countAddresses()","ec5325c1":"getDarknodes(address,uint256)","ec53589d":"FhnwCoin()","ec54a36a":"updateTimer(uint256)","ec54fa5e":"listCOFI()","ec556889":"proxy()","ec559176":"setEthBalance(address,uint256)","ec560828":"monarchyEndReward()","ec56a373":"contracts(bytes32)","ec56c6b0":"contracteventcount()","ec56eb93":"getComponentCount(uint256)","ec57e25b":"Magzia()","ec582a00":"IkuraStorage()","ec58b996":"encodeMessage(uint256,uint256,uint16[])","ec58f4b8":"addSolver(address)","ec591b20":"cancelSellCard(uint8)","ec59565f":"BinaryOptionV2(address,address,address)","ec597128":"addition()","ec5975c6":"getTokensReserve()","ec5a25e0":"WalletLibrary()","ec5aceab":"createOrder(address,address[3],uint256[5],int256)","ec5c71b3":"getChildIds(address,uint256,uint256)","ec5c9036":"Crowdsale(address,uint256,uint256)","ec5d9cc8":"balanceAvailableTokens(address)","ec5d9e58":"organisationName()","ec5dfaa2":"initHolders(address[],uint96[])","ec5dfb84":"bbBalance()","ec5ffac2":"minimumStake()","ec607f7d":"nextPeriod()","ec60bcf3":"burnFrom(address,address,uint256)","ec61c430":"YudiToken(uint256,string,string)","ec620eb3":"setClaimBlocks(uint256,uint256)","ec622892":"disableInvestment(address[])","ec62558d":"adminBurnToken(uint256)","ec62b216":"PRE_ICO_BONUS_PERCENTAGE()","ec647d42":"JESToken()","ec64f52f":"brag()","ec6507d7":"debug_transfer(address,address,uint256)","ec651551":"PVP(uint256,uint256,uint256)","ec653833":"totalAuctionItems()","ec654389":"tokenBountyAllocated()","ec654e38":"accident()","ec65b7a0":"FINALIZE(bytes32)","ec664694":"GooToken(uint256)","ec672cf6":"setAddressArray(bytes32,address[])","ec67abe4":"MOMCoin()","ec67e37a":"assignRevenueContract()","ec68197b":"setGameAddrt(address,bool)","ec688e8f":"walletNotLocked(address)","ec68a73d":"totalSpecies()","ec698a28":"__transferFromWithReference(address,address,uint256,string,address)","ec6a4487":"setMoneyWallet(address,address)","ec6acb33":"reputationClear(address,string)","ec6afc22":"oraclize_query(uint256,string,string[3])","ec6b16ca":"pMinInFp()","ec6b1d1e":"findAddress(bytes32)","ec6b393d":"subWeiRaised(uint256)","ec6be06e":"setBeneficiaryAddress(address)","ec6c18fc":"TOKEN_DECIMALS_MULTIPLIER()","ec6c32cd":"amendArticleItem(uint256,uint256,bytes)","ec6e43ae":"PRICE_CHANGE_ENDING_TIME()","ec6e5d09":"SellerHistory(address,address,uint256,uint256)","ec6e7bbf":"getTargetSite(address,uint256,uint256,uint256)","ec6eb411":"adjustBalance(address)","ec6f3a8c":"originalTokenHolder()","ec6f509e":"IcoStartTime()","ec6f772d":"addVirus(address,uint256)","ec704095":"getMyCrocs()","ec714926":"setTargetDiscountValue8(uint256)","ec715a31":"releaseToken()","ec7219a1":"growthReserveTokenSend(address,uint256)","ec727000":"getApprovalDB()","ec736b67":"validPerc(uint256)","ec737576":"finalizeMintUtility(address,uint256)","ec7380d9":"transferManually(uint256,address,address)","ec747b09":"getPaymentById(uint256,uint256)","ec74b818":"rbInformationStore()","ec756ee5":"getOrCacheValidityBondWallCalled()","ec759b80":"getOwners(uint8)","ec76312a":"sendInvestorIndex()","ec76bd65":"volumeType5()","ec77537b":"finalizeDispute()","ec77809f":"removeAssetPartOwner(bytes32,address)","ec77a89f":"GoldTokenLedger()","ec78626f":"setPOOL_edit_11(string)","ec788712":"toAddress(bytes,uint8)","ec789ef3":"sellpr0coinsAgainstEther(uint256)","ec796908":"tokensArray(uint256)","ec79efa8":"candidateETHAssets()","ec79f9bd":"setDisputeThresholdForFork(uint256)","ec7a3ab6":"calcBurnFee(uint256)","ec7b2843":"kvcMul(uint256,uint256)","ec7b8c40":"deleteFrozenAddresses(address)","ec7b9655":"spiritual_guidance()","ec7bb2ac":"setGen0Limit()","ec7bbcd2":"TradeAdsCoin()","ec7bf78d":"SetWorldSnapshot(uint256,bool,uint256,uint256,uint256)","ec7c06be":"doMigrate()","ec7c2ef7":"withdraw_excess_tokens()","ec7c637d":"getBalanceLimit(address)","ec7dd7bb":"getOrderDetails(uint256)","ec7de1e9":"masterOfCeremonyPending()","ec7df86e":"hasSDCC(address,address,uint256)","ec7dfb4d":"weiGoal()","ec7ecec5":"getPlayerState(uint256)","ec7f2ae7":"LogTransactionComplete(bytes32,address,uint256,bytes)","ec7f9906":"changeFreeAnimalsLimit(uint256)","ec7fea7b":"BiXuTo()","ec7fec8b":"defineWinner()","ec7ff617":"getMatchIdx()","ec801286":"BITHELPTOKEN()","ec810684":"registrationVote(address,uint256)","ec8120c9":"totalItemsForSale()","ec814f4e":"doDevelopFunds(uint256)","ec81aadb":"deployedTokens(uint256)","ec81b483":"CAP()","ec81e22e":"returnmoneycreator(uint8,uint256)","ec824ca9":"hashNumber(uint8)","ec82bf91":"_pay_token_commission(uint256)","ec82cf4e":"setDepositPpm(uint32)","ec841fe0":"LogTokensPerEthUpdated(uint256)","ec845dd8":"totalSubscription()","ec847fe8":"divholder()","ec854a04":"DogToken()","ec85d2f2":"regulatorStatus()","ec85d464":"returnAmountRaisedSoFar(uint256)","ec866d28":"isApproveOnly()","ec867b27":"isTokenVerified(address)","ec86e1d7":"getReleaseType(address)","ec86fdbd":"getOrCacheMarketCreationCost()","ec87543b":"lockedCZRMap(address,uint256)","ec875f98":"addCourses(string,address[])","ec881472":"Validator(string)","ec8861e7":"switchDelegate(bool)","ec88abc8":"SOVv11Token()","ec8909c0":"setShort(address)","ec89c8f0":"MicheleToken(uint256,string,string)","ec8a2c88":"investments()","ec8ac4d8":"buyTokens(address)","ec8b283c":"give(address,address,uint256)","ec8b8f4e":"addMinerTokens(uint64,address[],uint64[])","ec8be5b9":"canClaim(bytes32,uint256,address,bytes)","ec8cae23":"changeHolderCount(uint256)","ec8cb281":"openDate()","ec8d82f8":"oraclize_query(string,bytes[],uint256)","ec8e1afa":"interfaceInstanceCount()","ec8edf7a":"changeWalletAddress(address)","ec8f3fa5":"getWithdrawalAddress()","ec8f4d04":"onApprove(address,address,uint256,uint256)","ec8f850b":"withdrew()","ec8fb8ef":"withdrawOldTokens(address,uint256)","ec8fe065":"buyItem(address,uint8,uint256)","ec901017":"mintTokensWithTimeBasedVesting(address,uint256,uint256,uint256,uint256)","ec902779":"scribes(address)","ec9029a3":"minerToken(address,uint256)","ec90a79a":"recv_from_side_chain(uint256,bytes)","ec912d61":"markCredit(address,uint256)","ec91b550":"miningThree()","ec92b98d":"bancorErc20Eth()","ec933789":"ParticipantAgent(string,address)","ec93a081":"HelperSearchToken()","ec93b3f8":"GetCardType(uint8,uint8,uint8)","ec93cfae":"FountainOfWealth()","ec941ef8":"BXZToken()","ec94ce4b":"enabledMintTokens(bool)","ec9723ad":"setSalePeriod(uint256,uint256,uint256)","ec972a07":"lastBlock_f15()","ec972fb0":"timeOfLastDistribution()","ec973642":"enable(address,bool)","ec979082":"marketCount()","ec97cff7":"addCertificationDocument(address,bytes32)","ec985c99":"minfinney()","ec98618e":"getDial1Type(uint8)","ec98eefc":"createTokenContract(address,uint256)","ec993f3d":"changeDiscount(uint8)","ec9974eb":"getTotalWEIEther()","ec99bfe9":"setPreSaleParams(uint256,uint256,uint256,uint256)","ec99c60c":"getMatchFromList(uint256)","ec9a6e87":"setDefaultPartitions(bytes32[])","ec9b5cb2":"publicSaleEnd()","ec9be5fe":"setPotatoOwner(address)","ec9c677d":"checkDeck(uint256,uint8[],bytes32)","ec9d35aa":"transferWithCommission(address,uint256)","ec9d7fd2":"getAccumulatedServiceFee()","ec9da59e":"setMainContractAddress(address)","ec9e7971":"kycAdmin()","ec9edfc2":"addSmallInvestor(address,uint256,uint256)","eca001dd":"checkWhitelisted(address,uint256,uint256,uint8,bytes32,bytes32)","eca0290b":"rawSetAttribute(bytes32,bytes32,bytes)","eca058cc":"tokensForWei(uint256)","eca0be47":"TEAM_GROUP_WALLET()","eca10286":"loseNum()","eca1ada7":"getPlayersCount(uint256)","eca25f42":"TARGET_ADDRESS()","eca28cb7":"AleaPrivateSale(uint256,uint256,uint256,address,uint256,address)","eca2e604":"makeWorkStage(uint256,uint256)","eca38e0c":"ethSent()","eca3ee2c":"currentFundingAmount()","eca4742a":"getApprovedAddress(uint256)","eca49641":"TurnBasedGame(bool)","eca5339d":"mintExtraTokens(uint256)","eca5c793":"testErrorUnauthorizedNameRegister()","eca6e42d":"set_minimum_trade(uint256)","eca73f64":"currentBonus()","eca85419":"_getAllChildIds(bytes32)","eca90ffc":"LogGetEther(address,uint256,string)","eca95377":"generateRandom(string,uint256,uint256)","ecaa0e45":"OXGOLDSupply()","ecaaf6c8":"newIdTankHull()","ecab1a06":"_getExpProportion(int256)","ecabaf24":"NewHighestBid(uint256,address)","ecac7f4b":"symbolsCount()","ecacb3e0":"BitcoinSinhalaToken()","ecad17c1":"HurtleCoin()","ecad78a2":"paydCouponsETH(address)","ecaeacf6":"RESERVED_TOKENS_FOR_CYNOTRUST()","ecaeb904":"getDeltaMonth(uint256,uint256)","ecaf76b8":"minReferAmount()","ecb0116a":"getExitFee()","ecb0256b":"relayTx(bytes,int256,int256[],int256,int256,bytes,int256,int256[],int256,int256)","ecb071cf":"mainSaleStartdate()","ecb0b862":"payContract()","ecb14519":"payToken(address,address)","ecb15644":"GasFiles()","ecb1b31c":"TRONIC1()","ecb20de7":"takeBuyTokenOrder(address[3],uint256[3],uint256,uint8,bytes32,bytes32)","ecb389e0":"mmVaultAddr()","ecb39cba":"developer_edit_stake_reward_rate(string)","ecb3dc88":"depositCounter()","ecb4136e":"NotAnotherPonzi()","ecb42795":"MANA()","ecb42914":"STAGE_1_MAXCAP()","ecb46858":"buyGolds()","ecb58c74":"ownerAllocate(address,uint256)","ecb5fff6":"DELTA()","ecb62e49":"defaultParameters(uint256)","ecb63011":"receiveApproval(address,uint256,address,uint8)","ecb6af21":"accountB()","ecb6b50c":"RAVI_ADDRESS()","ecb6c47a":"allStop()","ecb70a98":"tokensByDashTx(string)","ecb70fb7":"hasEnded()","ecb75089":"jackpotRoundNumber(uint256)","ecb828ea":"lastTokensIssued()","ecb87dc4":"cjTeamWallet()","ecb98714":"random_damage(uint256)","ecb9d6a3":"_cancelTknOffer(address)","ecba18c0":"closeCrowdsale(bool)","ecbb06c9":"setPlayerGeneralAttr(uint64,uint32,uint32,uint32,uint32)","ecbb596a":"DecentralizedCrowdFunding(address,uint256,string,uint256,uint256)","ecbbcdda":"processFundsIfAny()","ecbbd1ca":"calculateMaximumBurnAmount(address)","ecbc1481":"calcVIPBenefit(uint256,uint256)","ecbc3177":"shitFundAddress()","ecbc328d":"totalCardValue(uint256)","ecbc8fa7":"adjustBalance(address,int256)","ecbca55d":"setConversionFee(uint32)","ecbd15fd":"alterTokenGrant(address,uint256)","ecbdb633":"getDataHolders(address)","ecbdbb32":"balanceETH()","ecbdee9b":"setWeiPerSatoshi(uint256)","ecbee997":"getPlayerBetInfo(address)","ecbf171c":"setSiteRewards(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","ecbfc077":"startClaim()","ecc06c76":"setFormula(address)","ecc0ee18":"fortune_setimgnme(uint256,bytes32[144],bytes32)","ecc137db":"getRandomAdversary(uint256,uint8)","ecc18582":"exitContest(uint32)","ecc1caef":"founderReward()","ecc1cfaf":"withdrawALC(uint256)","ecc21830":"setBuyoutFeePercentage(uint256)","ecc258dd":"removeSecondAdvisorLock(address)","ecc2c47c":"outSdcForUser(uint256)","ecc2e57d":"classVariants(uint256)","ecc310ae":"kittyActions(uint256,uint256)","ecc38a1f":"REFERER_PERCENT()","ecc4029b":"getSpentAmount(address,address)","ecc46d1b":"DEBATE_PERIOD_MINUTES()","ecc4a6c2":"getSelled(uint256)","ecc54067":"TopTokenBase()","ecc55e4b":"setBool2(bool)","ecc57df4":"_fetchOrderByIdWithPayer(string,address)","ecc5aaaa":"startMint(uint256,bool,int256,uint256)","ecc7296b":"rebalanceMargin()","ecc72b0f":"getSentTrade(address,uint256)","ecc73f48":"collectedSum()","ecc7e7bc":"TestTokenToken()","ecc91c28":"addEtherBroAuction(uint256,uint128)","ecc9665b":"maxWithoutWhitelist()","ecc98ce4":"ERC721_RECEIVED()","ecc99af0":"getNegID()","ecca031f":"hasVoted(uint256)","ecca9c2e":"getPrizeAmount()","eccaa8b5":"getSpellAbility(uint32)","eccb15bc":"SatPosition(int256,int256)","eccb6bd0":"addTicket(uint256,address)","eccbc596":"maxAttackPrizePercent()","eccbf4cc":"getTokenCountFor(address)","eccc32f2":"DD()","eccd162e":"Fortune(string)","eccd1a8d":"NEWT()","eccd8e0d":"getExchangeRate(uint256,uint256,uint256)","ecce7e63":"setWinningTeam(uint256)","eccf1b29":"CrystalDoubler()","eccf93c0":"updateCrowdsale(uint256,uint256,uint256,uint256)","ecd08bc3":"rap()","ecd0c0c3":"_token()","ecd13b89":"discountDivisor()","ecd1a83a":"getUserCoolDown(address)","ecd1c4a5":"availableZLT()","ecd22328":"weiCrowded()","ecd27189":"freeToUseTokens()","ecd370bd":"withdrawCoinToOwner(address,uint256)","ecd4eb74":"sendFees(uint256)","ecd57ec1":"setMinMaxDays(uint8,uint8)","ecd59d9b":"OTHERCRUISER()","ecd63757":"makePresale(string,address,uint256,uint256,string,string)","ecd747de":"getFishByPos(uint256)","ecd75c59":"FourWaySplit(address,address,address,address,address,address,address,address)","ecd79066":"getRedeemableReputationProposer(bytes32)","ecd7df06":"ICOweek4End()","ecd9297d":"withdrawAffBonus()","ecd9442e":"setMaxWeiAllowed(uint256)","ecd9c155":"transferDistributorship(address)","ecda10f5":"deploymentTime()","ecda249b":"UIWishSale(address,uint256,uint256,uint256,uint256,uint256,uint256,address,address)","ecda3055":"start_ICO1(uint256)","ecda58c2":"withdraw_3Completed()","ecda5fb6":"prizeFundFactor()","ecda6635":"owner_MIN_LIMIT()","ecdb065b":"bitNot(bytes32)","ecdb620d":"offlineRealmSold(uint256,address,uint256)","ecdc7135":"GoldeaBonusCalculator(uint256,uint256)","ecdd9549":"bonusOver10ETH()","ecdd9632":"generateOrder(address,address,address,uint256,string,string,string)","ecdf419a":"doCoinage()","ecdf5459":"awardReferralBonus(address,address,uint256)","ecdf6fed":"shareDividends()","ecdfca06":"tokensPreSale()","ecdfdc27":"ROLE_ADMINISTRATOR()","ece02921":"queryGameHistory(uint256)","ece0d561":"CashSaved(uint256)","ece11912":"getBetValue(uint256,uint256,uint256)","ece1d6e5":"maxRate()","ece1de44":"appeal(bytes32)","ece2064c":"setCurrentRewardTokens()","ece20f36":"nullify()","ece2ea40":"nextCapTime()","ece35d01":"sessionDuration()","ece44b81":"numCollected()","ece4f10d":"LULUCOIN()","ece5ca56":"getData_33()","ece62017":"sTCBonus(uint256,uint256)","ece66346":"CryptoSagaHero(address)","ece67270":"countdownIsUp()","ece7c397":"SurveyTokenSale()","ece7fa5d":"registerToken(address,string,string,uint256,uint256)","ece84fd5":"crowdsaleFinished()","ece866b9":"l()","ece8a1d9":"baby()","ece8a29d":"addCourse(string,string,string,string,string,string)","ece9aed4":"crearJuegosPublico()","eceadfd1":"ONEX()","eceae9bf":"setRequiredGoldIncreaseFactor(uint256)","eceb2945":"checkProposalCode(uint256,address,uint256,bytes)","eceb9eef":"SweetTokenLogic(address,address,address,address[],uint256[])","eceba876":"getChildUniverse(bytes32)","ececa529":"mainFundPrecent()","eced0280":"getPhase()","eced2967":"calculateAndRegisterEarlyBonuses(uint256)","eced5526":"SCALE()","eced6c57":"extraTokensPerUnit()","ecedafcb":"SampleCrowdsale(uint256,uint256,uint256,uint256,uint256,address)","ecedf7b2":"initialisation(address,address)","ecee4eb1":"calculateNoOfTokensToSend(uint256)","eceebc3f":"setAllowTrading(bool)","ecef0e54":"DigixbotUsers(address)","ecef615b":"sellTransferFee()","ecf0848f":"MIN_PRESALE()","ecf12669":"FinToken()","ecf1e0fd":"addManyUsers(address[],uint256[])","ecf1fca0":"tradeProfileImplementation()","ecf1fdea":"setper(uint256,uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","ecf24ec0":"Contribution(address,address,address,uint256)","ecf41c8c":"createOption(uint256,bytes32)","ecf42e5a":"ETHRLINK(address,address)","ecf477d5":"CrowdsaleStarted(address)","ecf56d82":"etherToTokens_(uint256)","ecf59b83":"ico3Min()","ecf6512f":"modify_Presale2StartDate(uint256)","ecf68eb8":"TokenTransferAllowed(uint256,address)","ecf6eb22":"setConfigAddress(bytes,address)","ecf6f108":"bigToken()","ecf6f2f8":"Bitgram()","ecf7105e":"etherBounty(address,uint256)","ecf7b873":"_airdropUnlocked(address)","ecf82c91":"setPixelDistributor(address)","ecf836ba":"updateInstance(bytes32,bytes32,bytes32)","ecf862cc":"stopSweepStake()","ecf88111":"setConfig(address,uint256,uint256,uint256)","ecf90824":"testegy(uint256,string,string)","ecf9d3e9":"getDesignatedReportPayoutHash()","ecf9ea1d":"expanded()","ecfa3292":"Forwarder(address,bytes32,address)","ecfb49a3":"totalPool()","ecfb5d17":"deleteFromWhitelist(address)","ecfbe70c":"withdrawERC20Token(address,address)","ecfc5964":"incTotalSupply(uint256)","ecfc7ecc":"placeBid()","ecfce7b4":"addProductEndorsement(string,uint256,int256,bool,string,string)","ecfd0a56":"account1()","ecfd8928":"contributorCount()","ecfef21a":"Mojito()","ecff39af":"START_WEEK_1()","ecff537f":"getGen0COnfig(uint32)","ecff58df":"countProjects()","ecff7531":"BankerFarmer()","ecffc18a":"RussianCash()","ed007cb6":"AggiungiMiner(address)","ed00b73f":"EbolaToken()","ed016620":"EtherToken1()","ed01bf29":"budget()","ed02a732":"doBountyairdrop(address,uint256)","ed02ad37":"numberOfGuesses()","ed02ada4":"TransferCoinsFrom(address,address,uint8)","ed02dded":"lossToCharity(uint256,address)","ed032ad2":"lastCharNoZero(string)","ed03a5b3":"cloneArray(uint256[],uint256)","ed03d0da":"withdrawShares(address)","ed045a3c":"doRefund(uint256,uint256,uint256)","ed047efd":"assignAnotherOwner1(address)","ed04d9f2":"getBuyingAmountRanges()","ed05084e":"setWinner()","ed05582b":"getHash(address,uint256)","ed05ae78":"getDepositBalance(address)","ed060ac1":"batchMount(address,uint256[],uint256)","ed0668fb":"getMyTurtles()","ed06a62c":"confirmBobDirectPay(uint256)","ed06d4dc":"KiwiTestToken()","ed06fb91":"PART_REWARD_CHANCE()","ed07e7b6":"arbifi(uint256,bool)","ed081329":"vote(address[])","ed09d19a":"get3(uint256)","ed0ad321":"releasedOf(address)","ed0b01cf":"MINERS_STAKE()","ed0b1cb3":"LLV_311_EDIT_1()","ed0bce14":"Cryptolotto1Day(address,address,address,address)","ed0c4123":"tokensPaid(address)","ed0c7091":"resignOwnership()","ed0cc2e1":"balancesUploaded()","ed0cdfdb":"MonsterAuction(address,uint256)","ed0e4665":"AVAILABLE_ADVISOR_SUPPLY()","ed0e92e5":"removeControllerContract(address)","ed0f22d5":"Start6()","ed1062ba":"CallExecuted(address,bytes32)","ed10e33c":"unLock()","ed11a690":"STARTING_TURTLE()","ed11d089":"Fortecoin()","ed129c2d":"printMarket()","ed12e8ef":"getVaultBalance()","ed1426e6":"purchasePixel(uint256,uint256,uint256)","ed148ea7":"testEnsFail()","ed149514":"setPartners(address,address)","ed14b6a5":"takeOver()","ed14d17e":"collectRevenue()","ed156449":"HeroCoin(address,address,address,address)","ed15863a":"bookWeekVisit(uint256)","ed15c31d":"Token10xAmin()","ed15c5e6":"targetDiscountValue6()","ed15dafd":"LBToken()","ed1627e9":"closeThisTurn()","ed17dab7":"tokensDistributedPresale()","ed17faa8":"setPlayerDayEthInLimit(uint256)","ed180443":"getUint256(int256)","ed185562":"presaleDeadline()","ed18838c":"setAutoBuy()","ed188f33":"cSale()","ed18bc3f":"Slot(address)","ed18ecae":"scan(address,bytes1)","ed18f0a7":"blue()","ed190746":"testSplit()","ed1923ee":"mediumRate()","ed1a9ca1":"returnsOneUnnamed(uint256,uint256)","ed1b71ea":"registerUser(address,address,address)","ed1ba837":"PensionFundRelease(address[],address,address,uint8,uint256,uint256,uint8,address)","ed1d4870":"changeReceiver(uint256,address)","ed1d840d":"getPriceForAssetAmount(address,uint256)","ed1ece04":"mineCard()","ed1eee68":"getFee(string)","ed1f1656":"totalaccumulated()","ed1f2229":"distributeForBountiesAndAdvisors()","ed1f9991":"getParticipantIndexAddress(uint256)","ed20f370":"debundleAndWithdraw(uint256)","ed21187a":"getInvestorsCount()","ed21248c":"Deposit()","ed214fff":"getParticipantList()","ed21a7e7":"Airsavecoin()","ed225a8a":"equipmentTrainingFeeMultiplier()","ed22671d":"set(bytes32,bytes32,bytes32,bytes)","ed22c02f":"SGEPreICO()","ed23378b":"getMarketCreatorMailbox()","ed234e20":"addCompany(address,string)","ed23e5b7":"requestObjectRoot(bytes32,uint256,uint8,bytes32,bytes32)","ed244fcd":"getAccountValues(uint16,uint8)","ed24e3e0":"CryptoABS()","ed25ba8c":"blinc_block()","ed25e6c2":"expand(uint32[4],uint32[26])","ed2648d3":"setCCH_edit_14(string)","ed26cae8":"contains(address,address)","ed26e60d":"GetReserveAmount(address)","ed26fc86":"SnowBall()","ed287795":"transferFromAndLock(address,address,uint256,uint256,uint256)","ed28d37f":"TokenOne()","ed28ef51":"addManyUsers(address[])","ed29c12b":"MFI()","ed2a2d64":"nonceOf(address)","ed2b5a3c":"getBorrowRate(address,uint256,uint256)","ed2b8e0b":"getPoolRotationDelay()","ed2c92b1":"finalizeLastCampaign()","ed2cbf06":"_deliverTokens(address,uint256)","ed2d1d9e":"goodNightSweetPrince()","ed2d4a1b":"process_game()","ed2ddeae":"claimAllSupporterTokensByOwner(address)","ed2de952":"setInvestorsStorage(address)","ed2df26d":"getGameResult(uint256)","ed2e3f7e":"ChainBankToken(uint256)","ed2e5a97":"read(uint256)","ed2eb843":"withdrawEther(address,address,uint256)","ed2f2369":"activeStakes()","ed2f5b1a":"getRestoredTransactionStatus(uint256)","ed2fbf96":"timesno()","ed3058e0":"transferRight(address,bytes)","ed30ec8f":"_validFee(uint256,uint256)","ed319520":"_validateTokensLimits(uint256)","ed3375f5":"RSPLT_I()","ed338ff1":"saleEndTime()","ed3390ea":"findBest(uint256,uint256)","ed33e00c":"participantClaimCredits()","ed33fba7":"PitisCoin()","ed3411dc":"register(bytes20,uint24,uint32,bytes32[],uint16)","ed3437f8":"scalingFactor()","ed343f65":"totalDropPerUnlockedToken()","ed34ca2e":"ThePlat()","ed355b0b":"getBestInvestor()","ed361694":"failSafeMode()","ed361c17":"burningCapableAccount(address[])","ed3643d6":"checkSignersByName(bytes32,uint256,uint256,uint256)","ed36a874":"getOracleAddressByName(string)","ed3788c9":"futureDevelopmentPoolAddress()","ed39eab3":"HGT()","ed3a2164":"PrincelyGoldenDollar()","ed3a865e":"raceId()","ed3ad43e":"finalizeDeprecation(uint256,address)","ed3b4eca":"setMinAmount1Round(uint256)","ed3d4dc1":"POWM()","ed3e3e0b":"update_counts(uint256)","ed3e46ae":"tipHash()","ed3f1c87":"allowAccess(address,address)","ed3f443f":"getMyBetRecordCount()","ed3fd0d7":"EVMScriptRegistryFactory()","ed40175d":"testFailOnFailedCall()","ed4080b1":"getPreminerAllocation(address,uint256)","ed40a8c8":"getWord()","ed4127df":"CANVAS_HEIGHT()","ed429d1b":"_amountCourse()","ed43191d":"DataRecordStructs(bytes32)","ed442e14":"getDividends()","ed45747f":"editCell(address,uint256)","ed45c9be":"getAllTheThings()","ed45e578":"getAttoTokensLeftForICO()","ed46eb52":"deleteCaller(uint256)","ed47ca94":"debug_verifySharesTreeSubmission(uint256[],uint256[],uint256,uint256,uint256,uint256)","ed49196b":"auctionleader()","ed498fa8":"userTokens(address)","ed49d2f8":"maxDelay()","ed4ae6b5":"isValidVoting(address)","ed4b1d0d":"scheduleTransaction(uint256)","ed4c1cdd":"xauToEur()","ed4c1d97":"syncToken()","ed4c87ac":"startProject(string,address,address,address,bytes,uint8,uint8,uint8,bool)","ed4dd2ab":"SECOND_TIER_DISCOUNT()","ed4e65fb":"noStoreIsActive()","ed4e73da":"signedTransferFrom(address,address,address,address,uint256,uint256,uint256,bytes,address)","ed4f114d":"ConversionRateChange(uint256)","ed4f2b33":"setup(uint8,bytes32[])","ed4f415e":"Holahop()","ed505d3e":"totalAmountOfPresalePurchasesWithoutBonus()","ed50dd4e":"ChiSale(address,uint256[],uint256[])","ed52068c":"revokeBurnDelegate(address)","ed526601":"greenOnFanChun()","ed54746e":"lastAuction()","ed550443":"proxyContract()","ed561fe5":"receiveSecurityDeposit(address)","ed56531a":"pause(bytes32)","ed5667b4":"transferOfPower(address)","ed5677f6":"tierThreeMin()","ed56de8c":"withdrawZRX(uint256)","ed5850b9":"register(address,uint8,bytes32[5],address)","ed5863f6":"agaisnt_votes()","ed58bad8":"setAuthorizedMinter(address,bool)","ed58c840":"transferGu(address,uint256)","ed58d5ec":"setLendingContract(address)","ed59313a":"setUsername(string)","ed598be7":"TenantMoveIn(string)","ed59eda1":"_addSuperInvestor(address)","ed5bc87b":"fundedProxy()","ed5c58f3":"set0xTokenProxy(address)","ed5d2289":"latchFciUser(uint256)","ed5d3f1a":"pow_10(uint256)","ed5d6fbc":"completion()","ed5da4f9":"computeReturnBonus(uint256)","ed5dc952":"getIsRoundOver(uint256)","ed5e68f9":"closeAnnualInvest()","ed5e7691":"CrowdCoinPreICO(address,address,address)","ed5e8437":"locks(bytes32)","ed5eafa2":"ClinicalTrial(address,address,uint256,uint256,uint256,bytes32,bytes)","ed5ec919":"voidTransaction(uint256)","ed60ade6":"bidOnSiringAuction(uint256,uint256)","ed611895":"ManualChangeUnholdDate(uint256,uint256)","ed6183bf":"isWinner(uint8,uint8[5],uint8[5])","ed621591":"KaratBankCoin()","ed621ae1":"PriceWeekFour()","ed621df6":"GuessNumber()","ed621e9a":"addWhitelistUsers(address[],uint256[])","ed621f0f":"YUN(uint256,string,uint8,string)","ed62543d":"bttsToken()","ed62986b":"_getBattleResult(int256,int256,int256,int256,uint256)","ed62cf1f":"setCanCall(address,address,bytes,bool)","ed62f501":"maxPendingPayouts()","ed6302be":"left98(uint256)","ed63455c":"stringContains(string,string)","ed644025":"X5Coins(uint256,string,string)","ed64b36b":"left15(uint256)","ed64bea4":"JamCoin()","ed64c08c":"clearBudget(address)","ed653164":"releaseEscrow(uint256)","ed666e96":"artsCreatedCount()","ed67bca3":"_finalize()","ed684cc6":"trigger(uint256)","ed68ece1":"newFeed(string)","ed68ff2c":"setRequireSignedAddress(bool,address)","ed6a2bc9":"LLToken(uint256,uint256,address)","ed6a2d35":"Blincoin()","ed6a897d":"teamTokensHolder()","ed6b2d7d":"extractTokens(address,address)","ed6b40c0":"PRICER_DELAY()","ed6b5ad5":"pauseSwap()","ed6bcd84":"TransactionPending(uint256,address,address,uint256,uint256)","ed6bd807":"phase2StartTime()","ed6be066":"charitySpaceToken()","ed6bf091":"changeEndDate(uint32)","ed6bfa2b":"toggleDeposit(bool)","ed6c3e84":"blockStart(uint64)","ed6cb909":"transferAddress(address)","ed6cd66d":"CreateUKGEvent(address,uint256)","ed6d4055":"SBIBank(address)","ed6d8521":"VULToken()","ed6d9169":"pushBounty(uint256)","ed6d969a":"addSegmentation(address,uint256,uint256,uint256)","ed6db106":"_HUNDRED()","ed6e7f7a":"processMutuallyAgreedJobCancellation(bytes16,address,address,uint256,uint256,uint8,bytes,bytes)","ed6e85c7":"installDonationContract(address)","ed6eba84":"getLockedUserDeposits(bytes32)","ed6f0792":"askOracle()","ed70d83c":"setRefProgram(address)","ed70e032":"_removeAvatar(address)","ed713d55":"ZerroXBToken()","ed71cfb3":"isDepositContract()","ed724103":"isRoundOneSalePeriod(uint256)","ed7305ea":"Enrium(uint256,string,uint8,string)","ed732ddb":"placeBet(uint256,uint256,string)","ed73b6a6":"PariMutuel()","ed743556":"YISSToken(address,uint256)","ed74de9d":"clone(address,uint256,uint256)","ed7510a0":"registerContributorPool(address,uint256)","ed7546b7":"_checkEvenIfCommBallot(bytes32)","ed769922":"buypr0coinsAgainstEther()","ed782750":"ICONIQ_TOKENS_NEEDED_PER_INVESTED_WEI()","ed785e29":"PresaleBREMP(address,uint256)","ed786cd6":"getCurrentWeek(uint256,uint256)","ed78cf4a":"potSwap()","ed793207":"_burnRemainingTokens(uint256)","ed7a1548":"updateSecondExhangeRate(uint256)","ed7a4e0b":"winnerAddress()","ed7a96e7":"saleInProgress()","ed7ad2d2":"createDeposit(uint256,bytes)","ed7b4753":"BULL()","ed7caa8e":"profitOrgPay()","ed7ce71a":"KWRT()","ed7dd693":"PlaceNewForecast(bytes32,bytes32,bytes32,bytes12)","ed7eff2b":"setConvertContract(address)","ed7f8deb":"refRewardL1Per100()","ed80577d":"offerBtc(address,uint256,bytes32)","ed806207":"isInt128ValidIn64(int128)","ed810cfa":"emitBurnEvent(address,uint256)","ed810d02":"tokensSentMain()","ed815d83":"query(bytes)","ed81a68e":"edgeRange()","ed81cdda":"rootOwnerOfChild(address,uint256)","ed81f681":"currentDayOfWeek()","ed824f2f":"tokenETHAmount()","ed82cac9":"toEthers(uint256)","ed83e9aa":"YDHTOKEN(string,string,uint256)","ed83eb7d":"FileStorage()","ed84115e":"publisherMessage()","ed857bfd":"BitmassExchangeToken()","ed861328":"submitStack(uint256,uint256,uint256,uint256,uint256,bool)","ed861e13":"managerCountInt()","ed86d9c7":"playSpecificTriples(uint256,uint256)","ed879c77":"computeNextSystemSalePrice()","ed885897":"getTotalPot(uint256)","ed88c68e":"donate()","ed8991fb":"balanceMap()","ed89b2a0":"calculateQuantityBonuses(uint256)","ed89e864":"SupplyChanged(uint256,uint256)","ed8a4116":"_resetPotatoes()","ed8a73a3":"developer_edit_text_crowdsale(string)","ed8a9c0f":"clearExpiredFreezing(address)","ed8b6556":"getJackpotAmount()","ed8b9059":"set_withdrawal_gas(uint256)","ed8bfa4d":"drainSMS()","ed8c2aed":"closePoll()","ed8d806b":"largestHODLERAddress()","ed8df164":"New(string,bytes32)","ed8e690b":"MessageUpdated(uint256,address,string)","ed8e873c":"gvAgent()","ed8e9f2c":"LogUnfinalized(uint256)","ed8f02d0":"tokenValuePublish(uint256,string,uint256)","ed8f10df":"testSign()","ed8f11de":"Evocoin()","ed8fe3c1":"totalTRsWon()","ed8fee35":"MSCE()","ed90c7b7":"deleteProduct(uint256)","ed918136":"Pilfered(uint256,uint256,uint256)","ed91c906":"stopGo()","ed927dae":"bytes32ToString(bytes32,bytes32,bytes32)","ed92f0a0":"BTC7500on49()","ed93a8c9":"Bet0xgame(string,string,uint256,uint256,string)","ed93ca26":"startTimeDay()","ed950638":"whitelistRegistry()","ed952728":"getProposalHash(address,uint256,bytes)","ed953b69":"keyLocked()","ed95f52b":"startMark()","ed981d4f":"calculateNeededCollateral(uint256,uint256,uint256,int256,uint256)","ed98f12c":"EthearnalRepTokenCrowdsale(address[],address,address)","ed996590":"processWhenStop()","ed9978c7":"language()","ed9980a6":"numPayTables()","ed9a3ac1":"bidProxy()","ed9a3d2e":"isCustomerinBL(address,address)","ed9a6a65":"tokenVendor1()","ed9b0107":"get_senderCryptobank(uint256)","ed9bb8d7":"getTweets(uint256)","ed9beb05":"setICO(bool)","ed9c6d53":"getCCH_edit_9()","ed9c7c11":"validateTAOSignature(string,uint256,address,string,uint8,bytes32,bytes32)","ed9ca4ff":"setAllowedToPurchase(bool)","ed9cf58c":"setToken()","ed9d2d79":"transferTeamTokens(address,uint256)","ed9d7dd3":"transferCommissionGetter(address)","ed9da760":"uniq(uint128[])","ed9e3ca2":"addAuditAddress(address,address)","ed9f18fb":"setMinStake(bytes32,uint256)","ed9f4010":"getATokenHolder(uint256)","ed9ff004":"privateStage()","eda003ce":"setSaleController(address)","eda0576b":"seeZombieRole(uint256)","eda09d80":"SELLER_CHECK_STEP(bytes32)","eda1122c":"redeem(bytes32)","eda14233":"timeStampOfCrowdSaleEnd()","eda20bc9":"completeFailed()","eda23f20":"getListTempHolders()","eda2a0af":"calcPayouts(bool[])","eda30c9e":"delGame(address)","eda4597f":"fake_airdrop(address,address,uint256)","eda4e6d6":"periodStart()","eda50e33":"addDescription(string,uint256)","eda5d80b":"test_startNumber()","eda5de7c":"toggleDrain()","eda5ffdc":"newWork(uint256,uint256,uint256,address)","eda6e2db":"EarlyContribReceipt(address,uint256,bytes32)","eda70f7e":"expiredCount()","eda71f6e":"getEstimateObligation(bytes32)","eda8669e":"setAtomCool(uint256,uint8)","eda89279":"getAuctionEnd(uint256)","edaa6a8d":"Sylence()","edaaeed2":"DT()","edac3cb3":"popExperience()","edac985b":"addWhitelist(address[])","edacfd25":"invalidateHashes(bytes32[])","edad7f9b":"VestingContract()","edad8585":"tokenIssuedPreFirstIco()","edadeb26":"initCommunityAddr(address)","edae7771":"setKingdomCreationFeeWei(uint256)","edaebc20":"getTrait(uint32)","edaee1dc":"buyAnimalsFromUser(uint256)","edafe588":"feeSharingBps()","edb04c12":"OpenWindow(uint256,uint256,address)","edb08434":"mint(int256,address,uint256,bool,uint32)","edb0bb3a":"updatePrice(uint256,uint256,uint256,uint256,uint256)","edb0f2ca":"MockGetTogether()","edb1072e":"buyWithTokensBy(address,address)","edb17d10":"join_refund(uint256)","edb25841":"getOrder(address,uint256)","edb27f4e":"switchWizard(address)","edb2b809":"nextGameCost()","edb3623f":"goldTransfer(address,uint256)","edb41dec":"onRoundEnd()","edb5d946":"fillSell(address[8],uint256[6],uint8,bytes32,bytes32)","edb649de":"updateReferalBonus(uint256)","edb78e36":"claimBonus(address,address,uint256)","edb9548c":"_increasePrice(uint256)","edb961ff":"toHexString(bytes32)","edbae7c6":"setSaleAdvertisementRate(uint256)","edbb1d43":"savings_goal()","edbe32c4":"getTradeOfferState(uint256)","edbea0b1":"mintWallets(address,address,address,address,address,address,address,address)","edbeee22":"getItemTypeIdByTypeAndId(string,uint256)","edbf4ac2":"initialize(address,address,uint256,uint256,uint256,uint256,uint256)","edc0aee6":"createPlayerMatch(uint256,uint256,uint256,uint256,uint256)","edc11a11":"isReadyToFight(uint256)","edc19a81":"safeTransferFromWithFees(address,address,address,uint256)","edc1ab6a":"announce_therand(uint32,bytes32)","edc1e4f9":"setAllowanceSheet(address)","edc25f42":"calcRefill(string,uint256)","edc2ee4e":"configOf(uint256)","edc31e14":"testExecuteSellOrderShouldIncreaseSellerBalance()","edc3b4db":"getCharacterNuja(uint256)","edc41d06":"canCloseVoteRevealPhase(address,bytes32,bytes32)","edc423e6":"cancelChangeOracle()","edc427fc":"pullEtherFromContractAfterPreICOPublic()","edc42b2d":"changeWhitelistedContract(address)","edc48941":"buyByAtom(uint256)","edc62aaf":"_generateRandomPart(uint256,address)","edc6454d":"SaleToken(string,string,uint256)","edc65c83":"setOraclizeCallbackGas(uint256)","edc74092":"determineOutcome(uint256,uint256,uint256,bool)","edc7bcf5":"EscrowContract(address,address,uint256,address)","edc7d4ab":"changeOriginWalletIdForAthlete(uint256,address)","edc922a9":"getProviders()","edc93066":"CompShare1()","edc94527":"TgeProxy()","edc9f182":"migrate(address,uint40,uint40)","edca1e40":"blike()","edca371d":"BuySeed()","edca914c":"buyTicket()","edcb3c08":"IsInitAssign()","edcb9e9e":"updatePayout(address)","edce50de":"deposit(bytes32,uint256,uint256,address,uint256)","edcf2ad4":"_addLegitOwner(address)","edcf4d56":"deletePriceValue(bytes32)","edcf6b26":"getVersion(string,string,uint256)","edcfd050":"advisors()","edd004e5":"next(uint256)","edd0b5cb":"getFeeRatio(address)","edd0d90d":"__max__(uint256,uint256)","edd13e38":"mediumFunding()","edd19ded":"PaymentManagerUpdated(address,address)","edd1d02e":"getNextFeeWindow()","edd20050":"LOG_SuccessfulDraw(address,uint256)","edd21840":"calculateKnowledgeSell(uint256)","edd27b8f":"setDestroyThreshold(uint256)","edd36afd":"ProjectValidation(address,address,address,address[],address)","edd3896c":"ShowWhaleAddress()","edd3def5":"setTmpWriteTimestamp(bytes32,uint256)","edd3ff84":"isSponsorableJobApproved(address,uint256,address[])","edd403a9":"TOP1000()","edd40c3c":"setMnyTiers(address)","edd57e32":"_decodeTokenId(uint256)","edd5ede6":"passTo(uint256,uint16[],uint8,bytes32,bytes32,address)","edd634b8":"fullPrice()","edd637ca":"CreateCRS(address,uint256)","edd637d0":"bonus(address,address)","edd6705a":"changeExchangeRate(uint256,uint256)","edd6cfb1":"removeStudent(string)","edd6fb16":"countConfirmed()","edd70a75":"removeContractRole(bytes32,string)","edd7716a":"checkVotingForChangeBuySellPrice()","edd7bb75":"changeBet(uint256)","edd7ca6f":"getInterest(address,address)","edd7fcc4":"_createPermission(address,address,bytes4,address)","edd8dd89":"CalculationUpdate(uint256,uint256,uint256,uint256,uint256,uint256)","edd94fb9":"setBaseEthCap(uint256)","edd9e183":"feedUnicorn(uint256)","eddb00d4":"placeBuyOrder(uint256,uint256,uint256,uint256)","eddb53e1":"TokenWithdrawal(address,uint256)","eddce76b":"testFailDisownNotTransferable()","eddd0d9c":"setMintFee(uint256)","eddd2d39":"getResourceERC20Address(uint16)","eddd9d82":"tokenController()","edddb350":"getAccessorySeries(uint8)","edde6407":"_transfer_byProxy(address,address,uint256)","edde8349":"random_num()","edde9145":"PlaceSellOrder(uint32,uint256)","eddf3a48":"BsToken_STN()","eddfcffa":"getDealsLength()","ede02b71":"bleach(uint128,uint128)","ede05887":"getActiveContractRecordConcat(string)","ede2271c":"DOO()","ede340ec":"getEloRating(address,address)","ede38421":"totalStakedForAt(address,uint256)","ede3d9d5":"returnDynamic()","ede42186":"gettotal_Supply()","ede48fb7":"triggerEvent()","ede5a07d":"getSquareArea(uint256)","ede5f66f":"getNumberMilestones(uint256)","ede729ad":"expertTokensPerEth()","ede778d2":"EventCancelAuction(uint32)","ede78573":"EDT2()","ede8acdb":"startAuction(bytes32)","ede8af01":"getNextGameId()","ede8cf8f":"RaidenToken(address,address,address,address,uint256)","ede8e035":"FITN()","ede8ebf3":"checkApprove(address,uint256)","ede8eed4":"MemberAdded(address,uint256)","ede930c9":"changeOwnershipto(address)","ede963d1":"isAddressExpired(address,uint32)","edea3e5d":"createFincontractWithParties(address,address,bytes32)","edeb34f7":"GrantsControlled()","edeb4ea9":"howMany(uint256)","edeb797c":"getNumOptions(uint256)","edebb8c5":"generateCryptsyToken(uint32,uint32,uint32)","edecde0e":"withdrawAllChannels(address)","eded5d9e":"getColor(uint256,uint256)","ededb770":"payeeWithdrawInterest(uint256)","edede601":"testBalance()","edeeb143":"minPlay()","edef8bdd":"teamStakesFrozen()","edeff589":"giveMeSomeBBUCKs()","edf049f7":"sendPer3()","edf0b0df":"getPositionCount(address,address)","edf0d328":"setBlockDotCoinbase(address)","edf0ede3":"withdrawTokenUser(address,uint256,address)","edf1da66":"GxOrderList(address)","edf1eeb0":"oraclize_useCoupon(string)","edf26d9b":"addresses(uint256)","edf2d2a2":"setWithdrawGasOverhead(uint256)","edf2f745":"notifyTerminate(uint256)","edf3cbb1":"TeamDisqualified(address)","edf4a403":"getRateWithBonus()","edf53886":"addressToUser(address)","edf576d1":"MaybePerformClose()","edf5c0c0":"getChannelList()","edf6466d":"NewMayor(address,address)","edf6601c":"getMintRequestStatus(uint256,int256)","edf69f2b":"iCarChain(uint256,string,string)","edf6fb4b":"isBiometricCompleted(bytes32)","edf8333d":"transferFromNonprofitdisbursementfund(address,uint256)","edf87aff":"createUint256s(bytes32[],uint256[])","edf89793":"routingCodeMap(bytes32)","edf92ff3":"rentModified(address,uint256)","edfa45e6":"GetMyProd()","edfab4fc":"receivedWeiCap()","edfb4175":"getRollResults(uint256,uint8,uint8,uint256,address)","edfb4191":"getInterestCount()","edfbda27":"_addNFToken(address,uint256)","edfbf7b6":"setVotingDeadline(uint256)","edfbf9cf":"addService(string,string,int256,uint256,uint256)","edfceace":"deleteStrategy(bytes15)","edfd2f81":"percentageRecipient3()","edfd786e":"uint2str()","edfdd9d8":"coolduwnUP(uint32)","edfe5483":"IQFToken()","edfe676b":"refundPlayersAfterVeryLongGame()","edfea70c":"playerProfit()","edff2702":"window0TokenExchangeRate()","edffe3e8":"setAddressF1F2(address,address)","edfffca0":"minedToken()","ee00362f":"strToOperator(bytes32)","ee007a54":"pickRandomAssets(uint256,bytes32[])","ee00adcd":"ICOEndedSuccessfuly(uint256,uint256,string)","ee00dd43":"getEventFirst(uint256)","ee0145f3":"calcETCtoCOR(uint256)","ee0186b6":"buyPreSale(address,uint256)","ee029de1":"exchangeInterval()","ee0446b2":"approvedAmount(address)","ee0465d3":"BetComplete(bool,uint256,uint256,uint256,address,uint256)","ee04b4b9":"rescueIndex()","ee069097":"getAllFunding()","ee06eece":"Opulentos()","ee070805":"disabled()","ee0715ed":"updateRenExBalances(address)","ee071aad":"hasCollectedWinnings(address)","ee07a22c":"MakeDai(address,address,uint256,uint256,uint256)","ee07bf22":"Supply()","ee08022a":"getNumRegularTokensBought(address,address)","ee08388e":"parentOf(address)","ee08fcf3":"getAttributesForAssets(uint256[])","ee091034":"IcoDiscountPercentagesChanged(address,uint8,uint8,uint8)","ee095c0e":"endRaffle()","ee09ae4a":"ethFundManager()","ee09d27c":"Result(address,string)","ee0a8011":"grantCoins(address,uint256)","ee0b04be":"claimTokensFor(address)","ee0b0eb0":"IotWifitoken()","ee0b5d8b":"getPlayerInfoByAddress(address)","ee0c0346":"changeSupervisor(address)","ee0c3e02":"tradeEventHandler(address,uint256,address,uint256,address,address,bytes32,uint256)","ee0cb64c":"weekFourthRate()","ee0d605c":"authenticate(bytes)","ee0d93ce":"optionInitialSupply()","ee0d9c61":"withdrawXPI(uint256)","ee0dc478":"testSetEnforceRevisions()","ee0e21a0":"Amount(uint256)","ee0ebe0c":"packageCount()","ee0f1d6b":"checkPlayerClaimed(uint256,address)","ee0f809e":"buyTulip(bytes32,uint16)","ee0fcc75":"setScore(address,uint256)","ee0fdd0f":"pledgeTokens(uint256,uint256)","ee10a45d":"EMPresale()","ee112b59":"Aereum(uint256,string,string)","ee11ab9d":"getCEdetails(bytes32)","ee1333a1":"setProviderWebsite(uint256,string)","ee1374a2":"transferAdvisor2Tokens(address,uint256)","ee13e042":"Vix18Coin()","ee15b84b":"TokenFulfillment(address[2],uint256[8],uint8,bytes32[2],uint256)","ee15ee31":"PartnersAddress()","ee166bba":"setOfferSize(uint256)","ee16bf57":"FailSafeActivated(bool)","ee16c7bd":"GetTickSize(uint256,uint256,uint256)","ee172546":"totalRewardsDistributed()","ee174697":"winnerAnnounced()","ee179857":"addVestingGrant(address,uint256,uint256,uint256)","ee1879ef":"makeRecorderID()","ee196fb8":"doApproval()","ee1971ea":"getOwnersBalance()","ee19a7fc":"getReleaseBlock(address)","ee19bfb5":"increaseWorldCorner(uint64,uint64,uint64)","ee19c6dd":"setTether(address,uint256,uint32,uint256)","ee19fbec":"stop_service(uint256,uint32)","ee19fe96":"minSiteTipPercentage()","ee1a4b5a":"sT2()","ee1a6295":"bonusEndTime()","ee1ae93b":"executeRecallCapital(address,uint256)","ee1b4828":"closeBooks()","ee1bb82f":"SetURI(uint256,string)","ee1c888a":"setEnableBuyAndSell(bool)","ee1ce841":"getKeyCount()","ee1d036c":"getVestingQuantity(address,uint256)","ee1df50d":"poolStartDate()","ee1df98e":"LTO()","ee1e61b2":"currentFundingStage()","ee1ec46c":"MembersLength()","ee1f5a7f":"setEtherWallet(address)","ee1fae7f":"setMaxBatchAssignment(uint256)","ee1fc2e6":"decreasePreSaleSupply(uint256)","ee1fe2ad":"mint(address,address)","ee207e07":"getTimeBonus()","ee2089b2":"setPresale(address,bool)","ee20e493":"CloudX()","ee20e784":"setAllowance(address)","ee20f05c":"generatePseudoRand()","ee2127c8":"RATE_TIER2()","ee216932":"getIcoPhaseOneTokenPriceInPoundPences(uint256)","ee216ff5":"setPresaleClosingTime(uint256)","ee21aa64":"_getBalance(address)","ee224707":"withdrawAllocation()","ee22610b":"executeTransaction(uint256)","ee2269e5":"returnPtSafeLarge()","ee228dec":"createQueue(bytes32,bytes32,bool,bytes32,bytes32,bool)","ee22adf8":"_recomputeAccountLastAverageBalance(address)","ee2316db":"rand2()","ee2383a6":"CreateCampaign(uint16,uint16)","ee23a94a":"setSpecialPrice(address,uint256,uint256)","ee23e7f7":"runTime()","ee245b53":"setFishbank(address)","ee24b5e4":"historyBlue(uint256)","ee24bba8":"htoa(address)","ee255c57":"controllerAddr()","ee25f580":"consumeMsg()","ee2661ca":"operationalSplitPercent()","ee2679bc":"auctionStarted()","ee26ab66":"distributeEbyteForEBYTE(address[])","ee26bf68":"LogSetup(address,uint256,uint256)","ee27ab57":"endFirstDayICO()","ee27ac98":"set_new_dividend_share(uint256)","ee27e707":"buy(uint8,bytes)","ee280f89":"lotteryByETH(address)","ee28b744":"getClaimable()","ee28ea62":"acceptEscrow(uint256)","ee295b32":"Erc20Token(string,string,uint8)","ee298d19":"winningChanseSt()","ee29ce15":"shareKey(bytes32,address)","ee2a0c12":"setPrivateSaleAddress(address)","ee2a1ec1":"_removeTokenFromBarn(uint256,address)","ee2aab77":"canSend(bytes32,address,address,uint256,bytes,bytes)","ee2af3fb":"set_factory(address)","ee2b78a1":"minPurchaseQty()","ee2c4fec":"PARTNER_SALES()","ee2d2490":"bidfailure()","ee2dbd8c":"_addSigner(address)","ee2dbf86":"hasvote()","ee2e66c7":"CryptoSlotsCrowdsale()","ee2eba5b":"updateUserClaimInBulk(address[],uint256[])","ee2ee146":"unlockTokenForExchange(address)","ee2ef6ec":"makeItSellable(uint256)","ee2ef9d9":"midasDepositAddress()","ee2f00a8":"totalPresaleCount()","ee2faf74":"setCrowdsaleBlocks(uint256,uint256,uint256,uint256)","ee2fbf3a":"privateFundingSupply()","ee30839f":"IkuraMint(address,uint256)","ee314997":"calculateTotalGamePrize()","ee31bf00":"quickChange(uint256,address[],uint256)","ee31eb04":"setBrickAddress(address)","ee31f9f6":"totalSupplyTmp()","ee331490":"Addition(uint256,uint256)","ee339fd7":"Pruebacoin123()","ee33a04e":"recordId(address)","ee33c5f0":"_updateCompanies(bytes32[],bytes32[])","ee34c6ad":"hybridizationExists(uint256)","ee35478a":"tokenMarketPool()","ee355b1f":"cancelTicket(uint256)","ee359959":"refundGameAfterLongInactivity()","ee360ff0":"transferTokensToDividendManager(address)","ee362d3d":"ACATokenSale(address,uint256,uint256,uint256,address)","ee36d4ab":"placeBuyOrder(uint256,uint256)","ee3711be":"Storage()","ee3743ab":"nextStage()","ee378610":"etherToTokens(uint256)","ee37e271":"setSaleType_Presale(uint8,uint8,uint32,uint256,uint256)","ee38232f":"updateNota(uint256,string,string)","ee386beb":"TokensPerKEtherUpdated(uint256)","ee389b94":"TenToken()","ee38c7d3":"BONUS_ICO_STAGE1_PRE_SALE5()","ee38cad3":"setYxName(address,address,string)","ee39e7a0":"getK()","ee3a0229":"processBTCTransaction(bytes,uint256,address,bytes20)","ee3a5075":"removeEthInvestorRequest(uint256)","ee3a8816":"TheSwifthDAICO(address,address,address,address,address,address,address,address)","ee3c3bad":"isAllowedPurchase(address,uint256)","ee3cc63d":"MSP(address)","ee3d2f07":"massClaim()","ee3e3e2a":"tokensPerOneEther()","ee3e8a02":"enableSaleOwner(address)","ee3ec146":"calculateAccountValuesInternal(address)","ee3f1bc7":"changeVoters(address,string)","ee4024db":"setAdmin(bytes32,address)","ee40a13c":"addNewReport(string)","ee40b9bc":"TestRo(uint256,string,uint8,string)","ee40d7c6":"SvelteyCoin(uint256,string,uint8,string)","ee41858e":"addBlock(address,uint256,uint256,uint256,uint256)","ee41ed47":"insertCase(uint256)","ee422f13":"borrowItem(uint256)","ee428514":"CPTestCoin()","ee42b10b":"act()","ee42c2d9":"getRewardMatrix()","ee4350ed":"sellBonds(uint256)","ee43d30f":"allocateRestOfTokens()","ee44b7d1":"removeSubOwner(address,address)","ee44de25":"BaseExspaceToken()","ee4516d9":"getChannelParticipantInfo(uint256,address,address)","ee453126":"setErc20token(address)","ee45487b":"coinsIssued()","ee460c64":"isStored()","ee47c809":"BEZOP_EXCHANGE()","ee47dcec":"ClubTeamLockContract()","ee4827ea":"getCardInfo(uint256,uint256,uint256)","ee4833d8":"setupStorage(uint256,uint256)","ee48a6e6":"setActivationTime(uint256,uint256)","ee4a0122":"chkAdmin(address,address)","ee4a8fda":"IncreaseSupply(uint256,uint256,uint256)","ee4aa327":"TOKENS_PER_ETHER_DAY_ONE()","ee4ae2c9":"sendMoney(address,uint256)","ee4be288":"claimBounty()","ee4c1ed3":"stakeGLX(address,address)","ee4ca97e":"setupAssetProxy(address)","ee4d09d9":"Floxytoken()","ee4d2823":"burnGold(uint256)","ee4d3c7f":"spiceUp(uint256,string)","ee4d9402":"addComment(address,uint256,bytes32,bytes32,bytes32)","ee4de756":"getEtherollAddress()","ee4e4416":"isMaintaining()","ee4eabce":"updateContractBalance(uint256)","ee4fb202":"NARCoin(address,address)","ee51575e":"getUnapprovedUsersTop150(bool)","ee51b879":"ceilingStrategy()","ee5200a1":"testEggIds()","ee52ecae":"generateWinNumberTest(uint256,uint256,uint256,uint256,uint256)","ee5301d5":"mint(address,bytes32,bytes32,bytes32[],bytes)","ee532f31":"transferFromWithData(address,address,uint256,bytes)","ee533a4d":"lockTip(bytes32)","ee53b1ad":"getExitFee2()","ee53d244":"validCourses(address)","ee53d619":"CollectChips(address)","ee5418f0":"getRandomCase(uint256,uint256[])","ee54876e":"ALXToken()","ee5493b6":"isRegisteredFirm(string)","ee54d54f":"isVendor(address)","ee552390":"getUser(uint64)","ee556b5b":"saveMetaData(address,bytes32,bytes32,bytes32,bytes32,uint32,uint256,uint256,bytes32,uint256)","ee55efee":"closeSale()","ee564544":"_slotCancelNew()","ee57e4df":"emptyActiveUserList()","ee5845cc":"makeOfferForCity(uint16,uint256)","ee588b69":"PORNO()","ee594a50":"darknodePublicKey(address)","ee59da42":"withdrawERC20(uint256,uint256,address,uint256)","ee5c3dfd":"recentWins(uint256)","ee5c9654":"changeIncomesSplits(uint256,uint256,uint256,uint256,uint256,uint256)","ee5e1551":"BICOIN()","ee5e2988":"FreezeTokens()","ee5e862f":"purchaseExactWolk(uint256)","ee5f013e":"addOptionChain(uint256,uint256,string,uint256,uint256,bytes32,address,int256[])","ee5f8c8f":"roundTime()","ee607ab1":"lowEtherBonusLimit()","ee60b201":"operatorSendByTranches(bytes32[],address,address,uint256[],bytes,bytes)","ee60bfd0":"CELLS_TO_MAKE_1_SPERM()","ee61873c":"distributeBonusTokens(address,uint256)","ee620965":"presaleAddr()","ee6392ce":"getWhitelistTotal()","ee64f2a4":"ManagersChanged(string,address)","ee650248":"vote(uint256,int8)","ee65eec2":"ProtoTrailToken()","ee66a18d":"setDynamicArrayElement(int8,uint256)","ee66dc36":"_updateReputationScore(bytes32,bytes32)","ee67575f":"transferWeb3js(address,uint256)","ee67aa5a":"_lockToken(uint256,uint256,uint256)","ee67fcda":"testBuyManyTimes()","ee683d2d":"_clearAllRequest()","ee684830":"pollEnded(uint256)","ee68702c":"CHRTToken(uint256,string,uint8,string)","ee6891af":"transferByThirdParty(uint256,address,uint256,uint8,bytes32,bytes32)","ee68edad":"Pacul()","ee69590f":"setMarketCreatorSettlementFeeDivisor(uint256)","ee699681":"SellableToken(address,address,uint256,uint256,uint256,uint256)","ee6a5e54":"setBirthDate(address)","ee6ab4a6":"win(address,uint256)","ee6c2f49":"getFreeSummonTimestamp(address,address)","ee6c5a8b":"totalDestinationBalance()","ee6d2641":"sendWithExtraGasExt(address,uint256,uint256)","ee6d84c5":"getBlack()","ee6e1bba":"initBloomFilter()","ee6ef19f":"init_dev_and_presale_allocation(address,address,address)","ee6f5dac":"currentAmountRaised()","ee70f392":"managerSecondary()","ee712f59":"balanceIsNotZero(address,string)","ee718c60":"CAC()","ee7203b8":"startlistUploaded()","ee720837":"Sendmoney(uint256)","ee72302b":"_getBidIdList()","ee725d44":"toChannelID(string)","ee737c12":"TOKEN_DESK_BONUS()","ee73c117":"getTokensDistributedPlusTrickleDownBonuses()","ee74612b":"PayFreelancer(int256)","ee749b26":"putToBank()","ee75caa9":"SoldNoBonuses()","ee76ac07":"setCalleeContract(address)","ee76c2d6":"getInventory(uint256,uint256,uint256)","ee777c99":"decreaseRate(uint256,address)","ee7782f1":"getPK(uint256)","ee77cc51":"_creditUser(address,uint256,uint32)","ee77fe86":"scheduleCall(address,bytes4,bytes,uint256,uint256,uint8)","ee783c14":"getPriceUSDcETH()","ee784123":"getTwo()","ee786838":"initialize(address[4],address,uint256[12],uint256,bytes,address)","ee78b99c":"setGameConfigContract(address,address)","ee790db2":"getDesignatedReportDueTimestamp()","ee7a301d":"oldUsers(bytes32)","ee7c0db0":"getTokensSold()","ee7c1786":"isBidFinal()","ee7cf9f2":"kingBlock()","ee7d72b4":"setGasLimit(uint256)","ee7d92b8":"GenesisAddressTransfer(address,address,uint256)","ee7e18df":"drawRound(uint256,string)","ee7e2039":"createNewAuction(uint256,uint256)","ee7e508a":"getFirstCommonsForum()","ee7e94f3":"logging()","ee7f371c":"JadeCoinToken()","ee7f9c47":"view48()","ee7fc5a3":"mulRate(uint256,uint256)","ee80d7cb":"currentPreSale()","ee815eae":"setAutoPayFee(bool)","ee81f3ec":"returnTokenAmount(address[2],uint256,uint256[8],uint8,bytes32[2])","ee81f57c":"getCreateUnicornPriceInCandy()","ee828cdb":"UnFreeze(address,uint256,uint256)","ee82ac5e":"getBlockHash(uint256)","ee82ea2d":"performRead3()","ee832165":"lastEfficientBlockNumber()","ee8327fd":"KpopCeleb()","ee836fbc":"DummyToken(string,string,uint256,uint256)","ee83ce87":"getToJackpot(uint256)","ee84c008":"Boostmi()","ee86eccc":"getLastRoundAddress()","ee8734d0":"turnFaucetOn()","ee87c3b3":"marginBalanceOf(address)","ee880879":"getCommAuction()","ee882a99":"getSecondsRemaining(bytes32)","ee889ed0":"endPreSale()","ee89bb87":"unlockVoterMusic(uint256)","ee89dab4":"getInitialized()","ee8a0a30":"setArrayLimit(uint256)","ee8a4ee2":"releaseAllatOnce()","ee8b39f6":"withdrawFreeBalance()","ee8b7cd9":"updateProfileName(string)","ee8bd1f6":"AddTickets(uint256)","ee8bd224":"obtainBounty(address,uint256)","ee8c24b8":"getTokenAddresses()","ee8c4bbf":"getBounty(uint256)","ee8c4c6d":"testPayTeam()","ee8cbc9d":"addLimitedWalletAddress(address)","ee8cdd4e":"setNewPrice(uint256)","ee8d75ff":"emissionFundsAmount()","ee8e520f":"confirmPurchase(uint256,address)","ee8e993c":"updateBonusPercent(uint256)","ee8f31c3":"createNullTile(uint16)","ee8f997b":"importPresaleBalances(address[],uint256[],address)","ee8ff562":"setMaxProfit()","ee91877c":"usernames(address)","ee919d50":"setA(uint256)","ee91afab":"getNameHash(address)","ee91b8a7":"pausedToPublic()","ee9267d1":"airdropBalance()","ee92d2b5":"setLastAlert(string,int256,string)","ee92d484":"isCreator()","ee92ef5c":"auctioneerCut()","ee92fda1":"getUid(address,address)","ee93114c":"thresholdNewAuction()","ee947a7c":"lockupPeriod()","ee94bdaf":"switchUpgradeAgentLocked(bool)","ee94c797":"getMerkleTreeRoot(bytes20)","ee94d631":"addPetIdMapping(address,uint64)","ee94d7ba":"carousalRatio()","ee94ee98":"LogFundingSuccessful(uint256)","ee95a9de":"registerNewMerchant(address,address)","ee95feaf":"isSeller(address)","ee97adbc":"loadEarlyPurchases()","ee97f7f3":"master()","ee987ffc":"setNextDiscountTTWTokenId1(uint64)","ee98aee6":"endCrowdSale()","ee99205c":"stakingContract()","ee992fd8":"tokensOfCaptain(uint32)","ee994a54":"Omisgo()","ee9a5432":"markMilestoneComplete(uint256)","ee9a8489":"getLastDrawBlockNumber()","ee9adde1":"medalTransfer(address,uint256)","ee9b26bd":"transferPointer()","ee9b4152":"MIN_HOLDER_TOKENS()","ee9c087a":"bittToken()","ee9c26d6":"getmypostlastid()","ee9c7f43":"isValidGid(uint8)","ee9cb414":"LogEscrowWei(uint256)","ee9ce090":"decodeIndirect(bytes)","ee9cebde":"unitEthCost(uint256)","eea0168a":"completeContract(bool)","eea086ba":"currentContextAddress()","eea0d168":"deployMiners(address,uint32[],uint32[],uint32[])","eea147c7":"getCompoundContract(uint256)","eea17587":"getFreelancerContractsByStatus(address,address,uint256[],uint256[])","eea19185":"getMaxDisplayPrice()","eea21c6e":"EICToken(uint256,string,uint8,string)","eea23d8a":"setPromoMoney(uint256)","eea2a3ff":"ChangedFeePercentage(uint256)","eea327e0":"untrust(address)","eea42151":"getCompte_43()","eea4b1ad":"setPayloadFrom(address,string)","eea4cf1c":"subDev()","eea5ac01":"SuperiorBit()","eea5d10e":"DepositorLimitChanged(uint256,uint256)","eea6753b":"accept(address,uint256,uint256)","eea6c540":"getRandomNumber(uint256,address,uint256,uint256,uint256)","eea7570e":"gasReserve()","eea7e46b":"setAirAmount(uint256)","eea8465a":"tokensCommunity()","eea8c4da":"changeBSTRequirement(address,uint256)","eea95aaa":"unsafeWriteUint(uint256,uint256)","eeaa75b9":"getTaskFromToken(bytes32)","eeaaf19d":"vote(bytes32,bytes32)","eeab221c":"getFreePlumber()","eeab57bf":"ALLOC_COMMUNITY()","eeaba083":"updatePositions(address,address,int256,uint256)","eeac6d78":"FakeZRX()","eeac848b":"ChestsStore(address)","eeae1f4c":"allPlayerTokenContracts()","eeae5e4d":"sharesOfScheme(uint256)","eeaec245":"testInitial2of2()","eeaee3e4":"LIMIT_PER_USER()","eeafe7b0":"setACL(address,uint8)","eeb046b3":"BidAccepted(uint256,uint256)","eeb0af89":"amountMintPerDuration()","eeb2d26b":"getRateAt()","eeb3c910":"requestRedemption(uint256)","eeb415ee":"batchNewAuctions(uint128[],uint256[],uint256[],uint256[])","eeb441a4":"updateLoveStory(bytes16,bytes32,bytes32)","eeb46634":"getHolding(address)","eeb522aa":"ido()","eeb57139":"CollectMoney(uint256)","eeb58410":"AGCoin(uint256,string,string)","eeb64f0c":"PONADistributionContract()","eeb6588a":"donationsStartTime()","eeb72866":"identify()","eeb7ab0c":"checkImageInput(uint256,uint256,uint256[],bool,bool)","eeb7beb2":"designarHeredero(address)","eeb8a8a9":"upRoundID(uint256)","eeb8b934":"priceMultiplier(uint256)","eeb92294":"WithdrawalAfterGoalReached()","eeb9635c":"mintTokens()","eebb7fe9":"BDragon()","eebba256":"HOURLY_VALUE_DECAY_RATE()","eebbd2b7":"_transferFunc(address,address,uint256)","eebc20d2":"createCopyright(string,address,uint256,uint256,string,string,string,uint256,uint256)","eebc5a26":"_getFinance()","eebc7a39":"getPendingValidators()","eebcd477":"setIsBuying()","eebddedd":"Redemption(address,uint256,uint256)","eebdff04":"_bonusLucy(uint256)","eebe18cf":"startGamGetToken()","eebe41e0":"changePrefererForTask(address,uint256,address)","eebed750":"wDiamond()","eebf9808":"PiggyBank()","eec03444":"enableBundling()","eec0ddd7":"Holders(address)","eec11f64":"ABCTokenContract(address,address,uint256,uint256)","eec13165":"tokenTest()","eec1a391":"addBond()","eec2898a":"getRefundGasAmount(uint256)","eec2b628":"beforeExecute(address)","eec3589d":"_updateSaleInfo(uint256,uint256)","eec38cec":"set_pauseSale(bool)","eec3cb41":"placeBet(bool[],uint256,uint256)","eec3e2e8":"setLLV_edit_29(string)","eec3fcff":"CloseCrowdSale(uint256)","eec48ca5":"setReferralBonuses(uint256,uint256)","eec4bcef":"setMaxPrivateSaleBuy(uint256)","eec5d076":"getTotalUnvestedAndUnreleasedTokens(address)","eec5f1dc":"audit(address)","eec65b98":"transferToMainViaRelay(address)","eec65c58":"getOrderMakerTokenAmount()","eec69548":"BBTCToken()","eec6d500":"multiSend(address,address,address[],uint256[])","eec7006f":"roundThreeBlock()","eec71bea":"LogTokenIssued(address,uint256,uint256,uint256)","eec78546":"buy_Exchg_booking(address,uint256,uint256,address,uint256)","eec7faa1":"tokenAmount()","eec809ff":"setMonthWithdraw(uint256)","eec8d544":"CROWDSALE_TARGET()","eeca6afd":"CPSToken()","eeca6df7":"getFreeVines()","eecb24ec":"priceDecreaseRate()","eecb4a65":"GRETToken()","eecb7005":"useAsBankroll()","eecc3135":"DAICOCap()","eecc3be8":"all_creatures()","eecd2789":"left86(uint256)","eecd8876":"GexAlloc(address)","eece1e1f":"scheduleShuffling()","eece203a":"disableTransferAgreement(uint256)","eeced605":"addPrediction(bytes32,uint256,uint256,uint8,uint256,address,address)","eecf78b3":"makePurchase(uint256,address,string)","eecfb384":"icoBonus5EndDate()","eed02e4b":"joinGroup(uint256)","eed04e69":"preBuyPrice3()","eed0c172":"FoodSafetyChain()","eed0fc03":"generateFinalTokens(uint256)","eed11836":"getTreeSize()","eed331f7":"tokenOwnerNumberMax()","eed3f79e":"gameRefund(uint256)","eed45ca8":"setIsShareToken(bool)","eed47127":"TOTAL_MIND_TOKEN_SUPPLY()","eed50a32":"delegation(address)","eed65c11":"auctionSize()","eed7128c":"_generateRandomGenes()","eed72217":"addressToMinimumTextDonation(address)","eed7eaea":"getAirdropStatus(address)","eed857e1":"surrender(address,bytes32,uint256)","eed92ad5":"AdrenalinCoin(uint256,string,string)","eeda0e21":"earningsFromNumberOfCells(address,address)","eeda149c":"Register(address)","eeda22c6":"ownerPauseRecommend(bool)","eeda6357":"betCount_()","eedb1743":"removeSaler(address)","eedb714c":"CO_FOUNDER_PORTION()","eedb95c9":"changeZS(address,uint256)","eedb9ed5":"minPremium()","eedbd7eb":"ClosePatent(bytes32)","eedbe31d":"getCurrentStage()","eedc966a":"tokenBalance(address)","eedc9a8d":"IndorseToken()","eedcf50a":"mainDAO()","eedd1dd3":"doesProofExist(uint256,string,string,uint256,bytes32)","eede471e":"goToSleep(uint256)","eedf504d":"BG1Token()","eee007e2":"initialSingleWithdrawMax(uint256)","eee09758":"setMyCut(uint256,uint256)","eee0b552":"resetCallsCount()","eee0d9e2":"Elements()","eee14119":"PROSH()","eee144df":"getInitialSeedAsFixedPointForGameId(uint256)","eee187fd":"getMemberIdxOfUser(address)","eee1c59d":"oneHourAfterStartTime()","eee1e7e5":"calculateBurnAmount()","eee1f5f9":"getOwnedWineCountOf(address)","eee24219":"rateContract()","eee24570":"getPet(address)","eee2cc46":"returnEverything()","eee3671b":"wadmin_withdrawFund(uint256)","eee392c8":"initialTransfer(address,uint256)","eee3c4c9":"stageThreeCap()","eee428c0":"MAX_FUND_ASSETS()","eee457f7":"getContributionFromHash(bytes32)","eee56b7a":"takeout(uint256)","eee59ccf":"ownerAccessoryTransfer(address,uint64)","eee6ce93":"PRESALE_ETH_IN_WEI_ACCEPTED_MIN()","eee78595":"transferCustomToken(address,address,uint256)","eee881e8":"_stand(uint256,uint8[],bytes32,uint8,uint8,bytes32,bytes32,bool)","eee908ed":"changePriceCurveSettings(uint256,uint256,uint256,uint256,uint256)","eee92395":"fund(uint256,address)","eee94805":"getTokens(uint256,uint256,bool)","eee95f6d":"setbtyctoken(address)","eee97206":"double(uint256)","eeeb17e7":"deauthorizeMintFulfiller(address)","eeeb4f36":"ASTC()","eeebb30c":"changeRateWin(uint256)","eeec0e24":"relay(address,uint256)","eeed1767":"whiteListInvestor(address)","eeed1b26":"extensionTime()","eeed908a":"PublisherUnregistered(address)","eeee7cc0":"depositFiat(address,uint256,bytes32)","eeef9d55":"getAuctionIdArray(uint64,uint64)","eef017f1":"getCompte_2()","eef05f65":"setTokenIpfsHash(address,bytes)","eef0ef1e":"changeTeamPoolInstant(address)","eef0fdbe":"closeLoanOnBehalfOfRecurse(address,address,address,bytes32,uint256)","eef1812d":"settingsIco(uint256,address,uint256,uint256,uint256)","eef21cd2":"removeCaller(address)","eef22a79":"MultiAirDropToken(uint256,string,uint8,string)","eef27913":"ContractFeeChanged(uint256,uint256)","eef3a0fa":"PPPC(uint256,string,uint8,string)","eef3c914":"DelegatedTo(address)","eef44945":"Sudosucks()","eef49ee3":"deposited()","eef547d7":"deal_details(uint32)","eef55c72":"getBallotOfSender()","eef5a499":"createProductionUnit6()","eef5acb4":"SubscriptionDepositReturned(uint256,uint256,address,address)","eef5bfae":"UpdateSavingsBank()","eef68db5":"gameFinished(uint256,uint256,uint256,uint256)","eef6f89d":"bonusClosingTime1()","eef719b1":"getQuarterResult(uint256)","eef72a3c":"claimTokens(address[])","eef73ebb":"setSaleRate(uint256)","eef73ff9":"Devs_Supply()","eef7dd0a":"GetBetId(uint256,uint256)","eef80bbc":"getData_11()","eef892aa":"tokenMint(address,uint256)","eef8e35f":"setChainyURL(string)","eef90cbe":"tokenPublicSale()","eef93611":"GetDChainRevokableHash(bytes32,uint32)","eef9495c":"CABoxToken()","eef94a21":"createT513many(uint256,uint256,address)","eef9c27c":"requestTokens(uint256)","eefa597b":"isToken()","eefa5dfc":"PingPaid()","eefb9538":"setData_32(string)","eefc3083":"tokenColors(address)","eefe3818":"createOpenAndLock(address,address)","eefe8527":"MysteriumPricing(uint256)","eefea6b7":"feeFromTotalCostForAccount(uint256,uint256,address)","ef006b65":"presaleBonusTier4()","ef0143a3":"sendPixelsToMarket(bytes32,uint256)","ef01db0e":"assignItemRafflePrize(address)","ef02ad08":"getTokenInfoDataTracking()","ef02ce46":"Rafatar()","ef02d5d6":"durationCrowdSale()","ef0377fd":"SomaIco(address,address,address,uint256,uint256,uint256)","ef043c5a":"Netkrone()","ef04fdb7":"buyShares(bytes,uint8,uint256,uint256)","ef051f0c":"BlankCanvas()","ef057245":"SECUREOURSCHOOLS(uint256,string,uint8,string)","ef0582b6":"addEpisodeData(uint256,uint256,uint256,string)","ef058f52":"getGoldInfoVendor(address)","ef05bf0e":"ROUND_2_PRESALE_BONUS()","ef05dc2f":"modX(uint256)","ef0614b9":"getItemIds()","ef069ae3":"changeSaleMinimum(uint256)","ef07a81f":"getDonation(uint256)","ef084006":"unholdDate()","ef0901b8":"_gapOfCubeSum(uint256,uint256)","ef096063":"PollCreated(uint256,uint256,uint256,uint256)","ef0a14f8":"removeAddressFromAdmin(address)","ef0a3046":"sendOutEther()","ef0ad164":"testContractOrNormal(address)","ef0aea3c":"getisPlay(bytes32)","ef0b2368":"bytes32ToStr(bytes32)","ef0b44db":"bonus2Ends()","ef0b4db3":"markAsProject(address)","ef0b5420":"getOwedDividend(address)","ef0dbcbb":"setContractAt(uint16,uint16,uint8,address,address)","ef0dd241":"minCapTokens()","ef0dddba":"earlybonus()","ef0e239b":"getService(uint256)","ef0f52bc":"hodlAdded(uint256,address,uint256,uint256)","ef110f49":"TotalDeposits()","ef115542":"clearStorage(uint256[])","ef11e18b":"log_transfer(address,address,uint256)","ef11e55b":"isEarlyBonus()","ef11ef3d":"HubiiNetworkTokens()","ef125360":"removeWhiteListed(address)","ef12af52":"ReentrancyMock()","ef1367dd":"setLanguages(bytes3[])","ef14124f":"getAmountToUpdate(uint8)","ef14a0f6":"CBITToken()","ef14adc7":"sellingEnable(uint256)","ef15c51c":"deleteRoomByRoomID(uint256)","ef1706ce":"drainTokens()","ef18374a":"getOwnerCount()","ef18e458":"frozenTransferFrom(address,address,uint256,uint256,bool)","ef18e9ed":"acceptOrder(uint256)","ef1961b4":"Dropped(bytes32,address)","ef19792a":"licenseTerms(bytes32)","ef19c332":"_checkSigned(bytes32,uint256,uint8,bytes32,bytes32)","ef1ad460":"DAPPStoreToken()","ef1bfef9":"m_sharedDividendBalance()","ef1e5663":"updateBalances(address,uint256)","ef1e7e3f":"deauthorizeBurnFulfiller(address)","ef1e8dae":"lastBlock_a13()","ef2025c2":"burnTokenStatus()","ef20bff8":"getSpawnLimit(uint32,uint256)","ef21059e":"cancelEth(uint256)","ef220233":"getGrid8()","ef228e1a":"UCASH()","ef229dc7":"setStepMoney(uint256)","ef22b87f":"executeTransaction(address,uint256,uint256)","ef233f5c":"RELEASE_THRESHOLD()","ef23b3a3":"quotaOf(address)","ef24b77c":"RegisterNewKey(address,address)","ef24bd6b":"ESCBTokenSale(uint256,uint256,address,uint256)","ef2573fc":"calculateHouseCutAmount(uint256)","ef265d6d":"burn(uint256,address,address)","ef26e41d":"whiteLister()","ef284d8f":"DiscardToken()","ef289d8d":"NewKing(uint256,address,string,uint256,uint256,uint256)","ef29a7e5":"emitWorkFinished(uint256,uint256)","ef29d2bb":"setNeighbourRewardPercentage(uint256)","ef2a9147":"balancesListAddressMap(uint256)","ef2b04d1":"callBtcWithStc(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","ef2b7d65":"publicGetParticipant(uint256,uint256)","ef2bbbdf":"updateEndDate(uint256)","ef2bd19e":"getDisapprovalsFor(address)","ef2c5842":"_getTknAddr()","ef2cc977":"MAX_AIRDROP_TOKENS()","ef2d44c3":"setChampForSale(uint256,uint256)","ef2d5786":"createDelegation(address,uint64,address)","ef2d8700":"getDocuments()","ef2ddb55":"presaleUnfreeze(uint256)","ef2de6f8":"ownsPlayerTokens(uint32)","ef2e2059":"resetGenesisBlock(uint256)","ef2e3fbc":"getTokenInfoHeritor(address)","ef2e7321":"INITIALGASFORORACLIZE()","ef2e7c48":"IMDEXtrade(uint256[8],address[4])","ef2e95d7":"ubdateBTC()","ef2f2750":"request_payout_users()","ef2f92ad":"forfeitShares(uint256)","ef2fa169":"setServiceFee(address,uint256)","ef2fd54d":"viewVotes()","ef303553":"athleteCanClaimPercent()","ef3088d1":"AirDropRedeemAFTK2()","ef31bfd1":"isValidSignatureAndMethod(address,address,bytes)","ef3229db":"addTokenFunds()","ef323d85":"getPlotPrice()","ef326c6d":"isOps(address)","ef3336f5":"paymentsByBenefactor(address)","ef3377ca":"devWalletLocked()","ef338b88":"seekOdd(uint256,uint256)","ef339fc4":"getTokenProxyAddress()","ef33f8f0":"bet1000_001eth()","ef343588":"trade(uint256[8],address[4],uint8[2],bytes32[4])","ef34ded2":"lottoLength()","ef35b59d":"_withdrawTokensToWallet()","ef35cdbb":"getLLV_edit_30()","ef35d902":"preIcoEnds()","ef35fc16":"HIGH_RANGE_RATE()","ef3613c3":"allEth()","ef36a883":"termsAndConditionsAreSigned(address,uint8,bytes32,bytes32)","ef36fa39":"fpart(int256)","ef37052d":"isArrAccountIsNotFrozen(address)","ef37cfe9":"getBetsCountAndValue()","ef37f061":"IPOcoinHotelShares()","ef387a50":"rateIco()","ef38a306":"genWallet()","ef38d089":"UpdateSellAgent(address,address)","ef394e1b":"getFastest(uint16,uint8,uint8)","ef39fe35":"updateSaleStageManually(uint256)","ef3a6031":"testBaseToken()","ef3aaf54":"setHouseAddress(address)","ef3adfb3":"XPAAssets()","ef3b70bc":"setMultiRequestRegistrar(uint256,address)","ef3bec3d":"endow(address,uint256)","ef3c0531":"contentHostById(bytes32)","ef3c64a8":"IcoTokenMock()","ef3cbc39":"minOrderEthAmount_()","ef3cdb2f":"upgradeM5Token(address)","ef3d622b":"EOSBetBankroll(address,address)","ef3e8869":"claimStarter(string,uint256)","ef3f7c55":"TokenSold(uint256,string,uint256,uint256,address,address)","ef406d01":"TokenEBU(uint256,string,string)","ef4080bd":"init_pre_ico(address)","ef40c3e6":"tokenSwapLock()","ef416aec":"firstMonthEnd()","ef41e06f":"testThrowSetEnforceRevisionsNotOwner()","ef41ea7e":"feePerc()","ef41f95a":"newProposal(string,address,uint256,address,uint256,bytes)","ef427776":"internalCalculateBonus(uint256,uint256,uint256)","ef42b5da":"withdrawFunds(address[])","ef430aa6":"category()","ef431437":"lastDayPaid()","ef43a2b8":"ChangeEmissionRateCoefficient(uint256)","ef449888":"allowsNewGames()","ef4592fb":"getResult(bytes)","ef464e19":"internalRelease(uint256)","ef46e0ca":"executeOrder(uint256,uint256)","ef474056":"changeOpenString(string)","ef47492b":"summFoundersShare()","ef4787a1":"getIsLimited()","ef47ff4b":"balance(uint8)","ef4886ef":"retrieveVanityForWallet(address,address)","ef48eee6":"pay(uint256,uint256)","ef49567e":"E_Bid(address,uint256)","ef49b414":"isGladiatorChest(uint256)","ef4a0c61":"ico_starting_supply()","ef4b31d8":"proxySetup()","ef4b6831":"callModifiedDeposit(uint256)","ef4b91c0":"ProxySender(address)","ef4ba598":"offerPriceEth(uint256)","ef4bdfdd":"Set_your_game_number_between_1_15(string)","ef4c8685":"LogNewWallet(address)","ef4d6149":"investedAmoun(address)","ef4e679b":"totalNtsSold()","ef4ec047":"addFounder(address)","ef4ef103":"bankrollExternalUpdateTokens(uint256,uint256)","ef4f0c5f":"changeExtraBets(uint256)","ef4f6e9c":"calcUnMaskedEarnings(uint256,uint256)","ef4fac01":"calcTotalTokens(uint256,uint256)","ef4ffee2":"Honestgamble()","ef5121b3":"appreciationRateWei()","ef520aba":"getall_horsesCount()","ef52ad21":"MintMade(uint256,uint256,uint256)","ef52b0dc":"RuneToken()","ef532a47":"addBagAndGift(uint256,address)","ef538593":"NeptaToken()","ef54801b":"getGrantBeneficiaries()","ef548aaf":"PLAYER_TURN_SINGLE_PERIOD()","ef54af8b":"TieToken(address)","ef551b38":"PaymentAddress(address,bytes4)","ef556029":"testFallbackIsCalledOnTransfer()","ef5793c2":"LOG_OwnerWithdraw(address,uint256)","ef57cbec":"BARToken()","ef5850c7":"stakersForPoll(bytes32)","ef589693":"getSMPTokensBoughtInICO()","ef599ba5":"getCoinBalance(bytes4,bytes32)","ef59f8c8":"setRaffleAddress(address,address)","ef5a3a88":"dividendsIndex()","ef5a625b":"disqualify(address)","ef5a80af":"ProductAdded(address,address,address,string,bool)","ef5a8fb5":"sellLand()","ef5ba9ed":"ALLOC_AIRDROP()","ef5c2010":"SelfPayPreSale(uint256,uint256,uint256,uint256,uint256,address,address)","ef5d5331":"isHashValid(bytes32)","ef5daf01":"_dumpToCompany()","ef5f937c":"OpportyToken()","ef5fad95":"DaWeiToken(uint256,string,string)","ef5fb05b":"sayHello()","ef5fbdb2":"stopPlaying()","ef5fd51b":"getKeys(uint32,int256)","ef61041c":"_approveAllArgs(address,uint256,address)","ef616584":"getPurchaseETHNum()","ef6506db":"credit(address,uint256)","ef660169":"withdrawRest()","ef660ab8":"deliverCandidate(uint256,uint256)","ef674e66":"isWhiteListed()","ef67caa0":"reservedTokensFounders()","ef685294":"addCascade(address,uint256)","ef688df5":"addFundraiser(address)","ef68913c":"dronesDeployed()","ef69f408":"protectedTransfer(address,address,uint256)","ef69f7d9":"ManagerRemoved(address)","ef6a676d":"allowTransferToken()","ef6a6bcc":"LogAddressCapExceeded(address,uint256,string)","ef6a88de":"AbstractQuintessenceToken(uint256,uint256)","ef6ac0f0":"run(bytes32)","ef6b141a":"setStarted(bool)","ef6b329a":"close_down()","ef6c4b93":"addLimitAddress(address)","ef6d1cc8":"QZToken(string,string,uint8,uint256)","ef6d7b3b":"emitCancelled(address,uint256,uint256)","ef6da43c":"setIsWeiAccepted(bool,uint256)","ef6f1f36":"setData_25(string)","ef6f8e92":"Creative()","ef6face6":"privateContribution()","ef706adf":"cancelOffer(uint256)","ef70aebf":"endMinting()","ef71a1f2":"BCREWARDS(uint256,string,string)","ef7293d7":"SELLER_STEP_4_ACCEPT(bytes32)","ef739d0f":"changeCountry(uint256,bytes2)","ef7507c8":"testWinner(uint256)","ef765af8":"erc20ApproveChecking()","ef76c060":"HPQToken(address)","ef778d30":"createProject(address,string,string,bytes32)","ef77b601":"SHAREFIDENCE()","ef77ed99":"isFundingState()","ef78a5b2":"singleUserSignUp(address,address)","ef78d4fd":"period()","ef79a35f":"getNumberOfLocks(address)","ef7a4a32":"logoId()","ef7a5956":"BRONZE_AMOUNT_SKL()","ef7a5a2a":"getIudexScoreAll(address,bytes32)","ef7ac0e5":"enableTransfer(bool)","ef7c7797":"getSaleContractDepositAddressVerified(address)","ef7c9ecd":"preIcoTotalSupply()","ef7d47a5":"setMinBlockPurchaseInOneGo(uint256)","ef7dbc54":"listCompetitors()","ef7dd831":"SUPPLY_FOR_ADVISORSL()","ef7e1e89":"pow()","ef7f23a6":"numberOfBlocksBetweenSupplies()","ef7f2e1c":"addHashrate(address,uint256)","ef7f3834":"grantInitialAuthentication(address)","ef80027e":"Members_info(address)","ef802e62":"tokensRemainingStage2()","ef804ead":"testInequalityBytes()","ef80c53a":"earlyReserveBeginTime()","ef80f1ab":"LitmusCrowdsale()","ef80ff18":"tokenExchangeAddress()","ef816fd9":"isState(uint256,uint8)","ef817f2a":"EtherZaarFactory()","ef81eb57":"removeLastSaleOnlyNotActivated()","ef82c8a8":"geProposalCount()","ef82f95c":"setFront(address)","ef8322fd":"queryRoles(address)","ef84e27f":"getWorkpointSupportCancel()","ef8594be":"setPriceStep6(uint256)","ef85fdad":"IRC_PER_ETH_SALE()","ef869443":"investWithCustomerId(address,uint128)","ef8700e5":"tokensForDevelopment()","ef885772":"GCCERC20(uint256,string,string)","ef890cc8":"isGameFinished()","ef898355":"revealHiddenPosition(uint32,int64[2],bytes16)","ef89d6e3":"getArmorValue(uint256)","ef8a22ac":"mineableTokens()","ef8a9235":"currentStatus()","ef8a9c8f":"allocatedStage()","ef8b0e15":"processContribution(address,uint256,uint256)","ef8c1d86":"ownerWithdrawParsecs(uint256)","ef8c2c58":"openModifyCountdown()","ef8c8944":"setPlayerId(uint256)","ef8d4a49":"getAssetIDForTypeSequenceID(uint256,uint256)","ef8dcc2e":"LogTransactionConfirmed(bytes32,address,uint256)","ef8dd09b":"deleteEntry(bytes32)","ef8e8069":"smallPrice()","ef8ea3d0":"NewRegistration(uint256,address)","ef8f1229":"EMISSION_FOR_SALESTAGE3()","ef8fdfd8":"Bonus()","ef902a0c":"ShowBool(bool)","ef9089d6":"nextPrice()","ef90aa46":"givenBountyTokens()","ef9124e1":"TrinityToken()","ef9130b9":"getBetItemCount()","ef921826":"setMaxDuration(uint32)","ef922305":"DACCToken()","ef92742e":"ICOmint()","ef92b384":"saveGenCode(address,uint256)","ef940837":"payday(uint256,address,uint256)","ef941dca":"issueTokens(uint256,string)","ef943909":"PublisherAddress()","ef94ce1e":"addMenu(string)","ef9521ea":"GruffinzContact()","ef95aa5d":"getManifest(address,bytes32,uint256)","ef961367":"registerForCompetition(address,uint8,bytes32,bytes32)","ef982eba":"settournamentPrizeAddress(address)","ef984923":"transferTenuousTokenOwnership(address)","ef98dea3":"getAuctionManagerAddress()","ef99c9ef":"DACVest()","ef9b0214":"read_i32_array()","ef9b559a":"CLX()","ef9bfe1a":"returnInvestors()","ef9c3512":"falconmasterReq()","ef9c4446":"cancelProposeTo()","ef9c52ea":"maxIco()","ef9c79da":"getFileNum()","ef9cb474":"changeWorkerPoolPolicy(uint256,uint256,uint256,uint256)","ef9da13d":"getPeriodOwnerLockedBalance(uint256)","ef9e7f95":"self_readyTime()","ef9f6023":"PUBLICSALE_SUPPLY()","ef9fc1de":"DelegateChanged(address,address)","ef9fc50b":"addNumbers(uint256,uint256)","ef9fe3ac":"setCompte_8(string)","efa08854":"companyShare()","efa0a1ef":"SettankImposedMax(uint256)","efa0e659":"EthX()","efa1c34c":"destroyChannel(address)","efa227ca":"finish(uint16)","efa25196":"getDevidends()","efa390f6":"createNewEvent(bytes32,string,uint256,uint256,string,string)","efa3d586":"add(address,uint8,uint256)","efa3dccd":"totalDividendsPerCoin()","efa408de":"setReservedTokensListMultiple(address[],uint256[],uint256[],uint256[],bool[])","efa40c2a":"engine(string,string,address)","efa4f94d":"computeDeadline()","efa52fb3":"iterateGet(uint256)","efa56a1e":"use_OEM_Parts(bytes32,uint256,uint256)","efa6fd63":"perTransactionRate()","efa726e8":"setEggLimit(uint16,uint16)","efa74f1f":"getTokenBySymbol(string)","efa7e56b":"GameEnds()","efa85335":"Registrar_Oraculo(address)","efa8d998":"GetEtherSpent(address)","efa94e47":"createToken(bytes32,string,string)","efa99ecf":"SubModuleSuspended(uint256)","efaa55a0":"joinGame(uint256)","efaa86b1":"claimTeamTokens(address)","efab1e50":"getInvestorDetails(address)","efab4b91":"_unpackIntelligenceValue(uint256)","efabaa89":"sortTrusted()","efac0fd0":"PowerEvent(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address[],uint256[])","efac4db4":"add(address[],uint256)","efacd73b":"_createRocHunting(uint256,uint256)","efad6df3":"cycleLimit()","efada80b":"getRunDetails(uint256)","efada94b":"setParentPayoutDistributionHash(bytes32)","efae0f2f":"AIR_1()","efaf8e22":"isSenderRegisteredAgent(address)","efaf90c8":"DAYS_31()","efb0cdd9":"MeTooToken()","efb109d4":"privlocatum(string,string,uint8,uint256)","efb173d4":"addCompany(uint256,string)","efb1900d":"deleteThisContract()","efb20f6a":"Worldcoin1()","efb23d73":"getFirstHexByte(bytes1)","efb2bfd3":"signatureChecker()","efb369c7":"transferFundsByOwner(address,address)","efb588e4":"presaleMaxValue()","efb610bc":"isExternalBuyer(address)","efb7601d":"getExchangeRate(address)","efb7e8b3":"mistakenTokens()","efb7fa77":"unLinkFromMasterWallet(address,address)","efb8b6b1":"after10Seconds()","efb95ced":"masterRewardsPercent()","efb98bcf":"getRemainingTime()","efba9bd2":"recoverLeftovers()","efbb5f17":"retrait_2()","efbb6108":"transferStbToOwner(uint256)","efbbbd65":"getLambo(uint256)","efbbe160":"abiDecodeRegister(bytes)","efbc0075":"transferOwnerShipToPendingOwner()","efbc5469":"addTransaction(address,uint256,uint256)","efbcae98":"deleteMemberOfCommunity(address,uint256)","efbcebe5":"ObsToken()","efbd4bff":"priceForRect(uint256,uint256,uint256,uint256)","efbd863e":"setRealTokenPrice(int128)","efbd8a92":"setPriceFactor(uint256)","efbd9ec2":"changeList(address,bool)","efbe1c1c":"end()","efbe31d5":"removeHoldByAddressIndex(address,uint256)","efbe3894":"MakePatient()","efbe4262":"_removeSuperInvestor(address)","efbe584d":"isDEditor(bytes32,address)","efbe62e8":"validate(uint256,bytes)","efbe8fd1":"createToken(string,string,string,uint256)","efbec487":"payBoss(uint256)","efbee9b3":"_stake(address,bytes32,uint256)","efbf7d83":"GrowGuildToken()","efc018cc":"coupDetat(address)","efc0712c":"activateGladiator(address)","efc139cd":"SmartBooking()","efc1ba92":"FakeMembershipRegistry(address)","efc1c0ab":"SimpleNameRegistry()","efc2fd2a":"getRefillStatFor(string)","efc3323c":"createEvent(bytes16,bytes16[],bytes16[],uint256[])","efc3d252":"GetLuckyLandIds()","efc4cbdd":"Fiocoin()","efc4f1dc":"switchSaleState()","efc58aea":"spawnAsset(address,uint256,uint256,uint256)","efc5c693":"executeSell()","efc63bd3":"_rawGetGlobalDelegation(address)","efc65b3a":"CindicatorIssued()","efc7285c":"mintPresaleWithBlock(address,uint256,uint256,uint256,uint256)","efc7652e":"getBAU2(bytes32,address,uint256)","efc77f3f":"LTHToken()","efc78401":"isSenderAllowed(address)","efc81a8c":"create()","efc82381":"FirstTimeTransfer()","efc8d3c6":"amountReservedRefsTokens()","efc927b9":"ShowEmissionRate(uint256)","efca0214":"HotPotToken()","efca2eed":"totalDistributed()","efca9f09":"minimumPurchaseLimit()","efcb6cde":"changeOwner(bytes32,bytes32,bytes32,address,string,bytes32,bytes32)","efcc3c7f":"getMiniPoolEdit_3()","efcceaae":"getGamePaused()","efcd1cd9":"signatureSplit(bytes)","efcd2ddd":"changeOracleAdd(address)","efcd853f":"DogezerPreICOCrowdsale(address,address,address,address)","efce0688":"createPrometh(address)","efce079e":"doQuest(uint256)","efce1d66":"BitEyeEx(address)","efce6e78":"PinkyToken()","efce828e":"skinCreatedNum()","efcee869":"vote(bool,string)","efcefb40":"withdrawAllFor(address[])","efcf095c":"viewNumberOfMemories()","efcf2479":"trim(string,string)","efcf2730":"_premint(address,uint256)","efcf4f41":"getPixel(uint16)","efcf6d68":"finanReserveTimeLock()","efd0c851":"getPayoutReadyState()","efd0f455":"getChStatus()","efd12624":"startPostICO()","efd2abec":"calculateAntBuySimple(uint256)","efd2fb9b":"DeltaToken1()","efd46e1d":"E4RowEscrow()","efd4d0a6":"finishedloading()","efd6479a":"publicGetUserInfo(address)","efd64af9":"getReportingWindow()","efd71eb0":"updateVaultWallet(address)","efd7313d":"setExists(bytes32,bool)","efd73adc":"MigrationFund()","efd76499":"_cancelOrder(address,uint256)","efd8871a":"revoke(bytes32,address)","efd8c379":"userXRTBalance(address)","efd979cb":"setMinimumEtherToAccept(uint256)","efd9d7e0":"KoosAlbertsToken()","efdc4d01":"extraReceiversLength()","efdc5b77":"change_nodelist(address)","efdcb506":"getMsgGasBefore()","efdcc0f8":"getTeamTokens(uint256)","efdcd974":"setFeeReceiver(address)","efde6dcf":"Rejected()","efde9d6e":"InitChallengeAddress(address[10],address,uint256[10])","efdea046":"test_3_someTest()","efdecd9b":"check_withdrawdao()","efdee94f":"deployerAddress()","efdff7bb":"getContractAddressById(bytes32)","efe08a7d":"changeAddress(address,address)","efe0e495":"calculateVestedTokensNumber(uint256,uint256,uint256,uint256,uint256)","efe1525e":"viewFeaturedLength()","efe213a9":"_getCurrentPeriod()","efe2c8a4":"setConsumerAddress(address)","efe37d6f":"ELTTokenImpl()","efe3f4f4":"determineInterfaceImplementationStatus(address,bytes4)","efe43338":"determineWinner(uint256)","efe4e0a1":"iterateThroughSwarm(address,uint256,uint256)","efe51cca":"state2()","efe6bfa3":"sellOrders(bytes32)","efe6c772":"MAX_PLAYERS_PER_STAGE()","efe79268":"PRICE_STANDARD()","efe7a504":"END()","efe7c791":"RANGESTART_5()","efe86dd5":"batchPunchOut(address[],uint64[])","efe89d5a":"tokens2owners(address)","efe8c94f":"_safeSub(uint256,uint256)","efe93036":"getListTeamByPlayType(uint256)","efe998b9":"ethDividendAmount()","efe9b08d":"dissolve(address)","efe9e86b":"MyPinerTokenTest3()","efea0172":"startIco(bool)","efea835a":"devfeesoutstanding()","efeb4ad7":"onMoneySent()","efeb5e58":"beneficiaries(uint256)","efeb5f1f":"addWallet(address)","efeb941d":"ICOstart()","efebc720":"swapEndTime()","efecab8a":"addSale(address,uint256)","efed160f":"func_0431()","efed7b0a":"fondPlatform()","efedf429":"admin_member_isWithdraw(address,bool)","efeecb51":"getNumberOfTokens()","efef39a1":"purchase(uint256)","efef445b":"transferDataFrom(address,address,uint256,bytes)","eff02ec5":"returnBorroweedEth()","eff134ee":"withdrawTokenOwnerReward()","eff14c78":"submitValue(bytes8)","eff24744":"getTaskAddress(bytes32)","eff26a3b":"checkExist(address)","eff35f75":"setTickTime(uint256)","eff38f92":"getQuestion()","eff3c4e7":"openForPublic()","eff413ad":"setGoldMigrated(address,bool,string)","eff5c266":"addToMemeList(string)","eff60f56":"LRXCOIN()","eff631cf":"setNewPeriod(uint256)","eff6be2f":"changeBaseFee(uint256)","eff6e83d":"getIndexOrder(uint256)","eff7ed65":"setExchangeRateETHToUSD(uint256,uint256)","eff841d1":"setReserveWeight(uint256)","eff867e5":"CruzeiroToken()","eff877e2":"calcTokenPriceInWei()","eff883bd":"takerSellAsset(uint256)","eff8e748":"discountRate(address)","eff91c7e":"getLatestId()","effa00a6":"isIQTDistributed()","effb8415":"set_recivers(address,uint256)","effbbf92":"enableDisableTokenProxy()","effc4c1f":"throwIfLocked()","effcd413":"wallstreet2()","effd88b7":"ethToWei()","effda074":"addFactoryToCP(address,address)","effe031e":"payBankRoll()","efff1fb9":"_collect(address,uint32,uint32,uint32)","efff718d":"BITBIX()","efff78a5":"setRule(uint16,uint256,uint256,uint256,uint256)","effff82f":"valueToken()","f0004ab4":"PRIVATESALE_TOKENCAP()","f0006707":"setWriteTimestamp(bytes32,uint256)","f000999e":"upgrade(address,address,address)","f0024677":"deleteTellerMods(address)","f0032567":"computeFare(uint16)","f00388f7":"give(address,uint256)","f003a487":"unpauseCrowdsale(address)","f004073a":"performAction(uint256)","f00423ac":"XXXcoin()","f0044924":"BitGemPlayToken(address,address)","f004b12b":"CrowdFund(uint256,uint256,address)","f0061866":"deleteCourse(address)","f006228c":"guardian3()","f00648b8":"withdrawCoreTeamTokens()","f0072795":"itemsRange(uint256,uint256)","f007557f":"IPXTokenBase()","f0075829":"isValidPubKey(bytes)","f0083250":"canImplementInterfaceForAddress(address,bytes32)","f0086703":"setNextMilestone(uint256,uint256)","f008be46":"currentTierDiscountPercentage()","f009347d":"KudosProxy(address)","f00989a8":"FOUNDING_TEAM()","f00aac7f":"ArrayRR()","f00ac1da":"Login()","f00acc47":"prepareRoll(uint256,uint256)","f00c67fc":"Bounty0xEscrow()","f00c7669":"lastBlock_v2()","f00c9e67":"testStoresChallengeOwner()","f00d2823":"TokenMinted(uint256)","f00d4b5d":"changeOwner(address,address)","f00d7326":"isSenderInvestor(address,address[])","f00db260":"underwriter()","f00e4129":"EmergencyFundingReleaseApproved()","f00e6a2a":"getTarget()","f00e6f0a":"getResultData(uint8)","f00e8651":"createRequest(address[2],address,uint256[11],uint256,bytes)","f00f087f":"operationsPercent()","f00f7b33":"loseOdd()","f00f9b4d":"transferForMining(address)","f00ff174":"verifyWithdraw(bytes32,bytes32)","f0109f84":"valueAirDrop()","f010b6e5":"wipeBlackListedTrueUSD(address)","f011a7af":"claimProfit()","f011e270":"_payoutWinner(uint256,uint256,uint256,uint256)","f0123bc2":"dtStart()","f0137edf":"tokensFor1EthP3()","f013e0e1":"setWhitelist(address[],uint256[])","f0141d84":"getDecimals()","f0144a91":"dataset_md5checksum()","f0149751":"getTotal(bytes32)","f0149b9d":"ZenswapNetwork()","f01551f6":"difficultyAdjustmentPeriod()","f015bc93":"PRESALE_ADDRESS()","f0163621":"changeDomain(uint256,uint256,address)","f0163a82":"getNobleBalance()","f0173703":"ROLE_ORACLE()","f0174a25":"initMetadataDisable()","f018f741":"isPresidenteDeMesa(bytes32)","f019bd5e":"_generateOrder(address,address,address,uint256,string,string,string)","f019c267":"decreaseApproval(address,address,uint256)","f019c5da":"expReward()","f019c941":"SLAV()","f01b896f":"ambi2()","f01cc531":"setMonarchyRewards(uint256,uint256)","f01dbd03":"rewardAddressesSet()","f01de8c3":"getNextBattleTime(uint64)","f01e0648":"Voted(address,address,bool)","f01e341b":"addPostOnUser(address,address)","f01e66ec":"getAvgPrice()","f01eddda":"claimMyApis()","f01ee2cf":"sendERC20Tweet(uint256,string,string,string,string)","f01f20df":"burnPercentage()","f01fe692":"create(uint256,address)","f020044f":"gameActive()","f02011a8":"StatusContributionMock()","f0204007":"allocateTokens(uint256)","f0206a0d":"DayToken(string,string,uint256,uint8,bool,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","f0207fb1":"_commission()","f020bfe1":"McCringleToken()","f020d093":"applyInsurance(bytes32)","f020f279":"balanceWinPoolForSecondStage()","f02137c8":"updateTicketPrice(uint256)","f02152ab":"sponsorOpinion(uint256,uint8,bool)","f02175c7":"checkNewOwnerArgs(uint256,uint256,uint256)","f0217c32":"changeSaleBlocks(uint256,uint256,uint256)","f0217ce5":"permit(bytes32,bytes32,bytes32)","f02286c1":"topUpLuck(uint256)","f022a694":"ToxbtcToken()","f022a867":"unholdMntp(address,uint256)","f022d9f6":"setContractProtection(bool)","f023d600":"purchase_address()","f0247f78":"maxQtyInFp()","f02694f6":"SetStartVesting(uint256)","f027c7e0":"initOptionProgram()","f027d1f0":"setC4FContractOwner(address,address)","f0285b96":"_ownerSupply()","f02895e4":"ICO_ADDRESS()","f0296bfa":"setRefBonus(uint256,uint256)","f029e102":"SandwichShop()","f02a306e":"timeoutXEnabled()","f02a4463":"SkyExchange()","f02d7ef0":"issued(address)","f02dd53f":"getLand(uint256)","f02e0b3c":"SALE_IN_PROGRESS()","f02f1b6f":"getDailyLotteryParticipants(uint256)","f02f3a89":"oem_share()","f02f85c5":"timeOfLastBlock()","f02fc78f":"batchRegularTransfers(bytes32[],bytes32[])","f02fff9d":"Fcoin()","f0303452":"approveAll(address,uint256[])","f0314df0":"addTrustedContract(address)","f031a4d2":"TasksHandler(address,uint256,uint256,uint256,uint256)","f0330d54":"claimTwitterBonus()","f03342ad":"initiatedBy(address)","f0342179":"setPriceUnits(uint256)","f0349d5f":"setupStages()","f0350c04":"transfer_ownership(address)","f03529c3":"setMasterFeeContract(address)","f0356a36":"balanceOfContractFeeEth()","f036417f":"setTokenSymbol(address,string)","f0366c45":"imageExists(uint256)","f0369550":"getStage0Cap()","f036b592":"getBonusFactor(uint256,uint256)","f036ed56":"addResources(address,address[],bytes4[])","f0375c55":"SudanGoldCoinToken()","f038a969":"createScanner(uint256,string,uint256,uint256,uint256)","f038e106":"CKAOTToken()","f039218a":"Robycoin_test1()","f039d9d5":"totalPicks()","f03a1bc6":"addBet(address,uint256)","f03a5687":"reinvestDividend()","f03a6872":"bitmask_add(address,uint256)","f03aa262":"noContributors()","f03b0c0b":"setMultiSigWallet(address)","f03b7c70":"addComment(string,address,bool,uint256)","f03b8bf5":"UoBAMZNToken()","f03bcc7f":"submitAudit(address,bytes32,bool)","f03c0e8f":"D3JDemo(uint256,string,uint8,string)","f03c58ca":"test_feePoolShare_isTranscoder()","f03c7c6e":"pit()","f03c867a":"ownerDisablePayee(address)","f03d43ed":"updateTokenTicketPrice(uint256)","f03d7d2f":"transferReferralFee(address,uint256)","f03dc3d3":"getUsedReveralSupply()","f03dc4e4":"private_setMinGamePlayAmount(uint256)","f03dc5ef":"publicKeys(bytes32)","f03dd010":"WithdrawalETH(uint256)","f03de5fe":"buyHLPMT()","f03e5de5":"isDisputeActive()","f03e786a":"approveAndCall(bytes,address,address,address,uint256,uint256,uint256,uint256,bytes)","f03fbf2f":"CheckChangePlatformFlagAndAddAccountsInfo(address,address,uint256)","f03fed22":"nwmToken()","f040d973":"ERC20Token(string,string,uint8,uint256,address,address)","f0413191":"badge(uint8,string,bytes)","f04182d8":"insertProposal(address,uint256,address)","f0419588":"reply(uint256,uint8)","f0425fe1":"swappedTokens()","f04303e3":"setSealableProperty(address,uint256,bytes32,bytes32)","f0437a36":"getMyCommitmentHash(uint256)","f0439e0f":"removeExpiredName(string)","f044632f":"loikikdid()","f0446e02":"testFailMintNoAuth(int256)","f0456691":"PrevOwner()","f0459440":"readPermissions(address,uint256)","f046395a":"subscriptions(address)","f04646fe":"roll(bytes)","f04686aa":"LogOrderCreated(address,address,address)","f046cdec":"private_setHouseEdge(uint256)","f0474350":"proposalWeight(uint256)","f0479392":"poolAdd(uint256)","f047a528":"isRoundingErrorCeil(uint256,uint256,uint256)","f047d077":"cancelBuyNowOffer(uint256)","f0485328":"setAccessory(uint8,address)","f04893c2":"modCFOAddress(address)","f048b97f":"userPurchaseNumMap(address)","f04961ba":"getEther(uint256)","f04991f0":"deposit(int256)","f04aa255":"_transferAvailable(address,address,address)","f04be582":"tokentBalance(address,address)","f04bf0c5":"updateTrustScoreInBulk(address[],uint256[],uint256[])","f04cb80c":"setInvestorDataAndIssueNewToken(address,uint256,uint256,uint256)","f04d4d55":"deactivateLineItem()","f04da65b":"getShares(address)","f04e2b45":"_init(address)","f04e42cd":"allocateCoins(address[],uint256[])","f04e7476":"BSBCoin()","f04e8c6f":"payoutPeriodStart()","f04ed952":"typeSize(uint256)","f0502ff7":"tokensRequiredForAllWins()","f05168e6":"getAddTokenResetSignatures()","f052a76b":"setSpecialOffer(uint256,uint256,uint256,uint256,uint256)","f052d65a":"getCreature(uint256)","f0534e0a":"addWalletBonus(address,string)","f05396ac":"currentOperation()","f05492e0":"_getMaker(bytes32,uint8,bytes32,bytes32)","f054d139":"decimalsFactor()","f055d324":"walletBountyProgram()","f0560ea0":"approvedRatio(uint256,uint256,uint256,uint256)","f056a5c7":"declareRF(string)","f0575008":"Locked(bytes32,bytes32,bytes32)","f05764a0":"Currenttask()","f05834d6":"setReservedTokensListMultiple(address[],uint256[],uint256[],uint256[])","f05854ba":"SealToken()","f0586f0d":"doThrow(bool)","f058e6d1":"TXOsale()","f0591308":"getMem()","f0594d38":"PrizeAwarded(uint256,address,uint256)","f059bb6d":"buyTokensPreHook(address,uint256)","f059cf2b":"spentToday()","f05a2818":"changeMinimumBetAmount(uint256)","f05a64bc":"potTime()","f05a781d":"acceptNewOwner()","f05aa334":"cofounderA()","f05ad9f3":"communityTotal()","f05b854f":"LogSquareWinsUpdated(uint256,uint256,uint256)","f05ccd75":"onDecreaseApproval(address,address,uint256)","f05d16f7":"setTxFee(uint256)","f05d5547":"named(string)","f05d68c1":"_newIncomingTransaction(address,address,uint256,string)","f05d85d6":"atmToken()","f05dd6d5":"LogWinner(address,uint256)","f05dda57":"XeinToken()","f05f3e77":"developer_voting_info(string)","f05f45b1":"authoriseEntrants(address[])","f05fae68":"getStoreBalance()","f06067ac":"transferByLock(address,uint256,uint256,uint256)","f060ccb5":"escFundAddress()","f060f617":"setCursedContract(address)","f0611c44":"lockAfterMinting(uint256,uint256)","f06186c7":"testReality()","f0624097":"checkBlockEmpty(uint256,uint256)","f062e26b":"check_darkdao()","f0640355":"AddTeamAccount(address,address)","f0646a3c":"DART()","f064b971":"tryToCloseProject()","f065c36e":"MonopolyBank(uint256,string,uint8,string,address)","f0664a4f":"ownerOne()","f0666fba":"burnedBitcoin(address,uint256)","f066719f":"arbTrade(address[],uint256[],uint8[],bytes32[])","f066844e":"_emitAreaEvaluated(address,address,uint8,uint256)","f066cb83":"treeBuild(address,address)","f0685bf0":"TestFund()","f068a3a6":"setNextSmartContract(address)","f068dc81":"authorizeRequestorAddress(address)","f069629c":"generalSaleStartDate()","f06a1e13":"QUOTE_ASSET()","f06b0901":"interRefreshLock()","f06b53e9":"saveDividends()","f06b9ca6":"avgTokenBetValue()","f06bbf75":"EXTERNAL_QUERY_GAS_LIMIT()","f06c5610":"constructionTime()","f06d335e":"_recoverAccount(address,address)","f06d56ae":"ICO3Period()","f06ea69c":"toUint16(bytes,bytes,uint256)","f06ebc38":"setKv(uint256,uint256)","f06ef632":"fundOrderInternal(address,address,uint256)","f06fc103":"sendTokens(address,uint256,uint256)","f0704f02":"week3Price()","f0705249":"updateSspAbi(string)","f07065b3":"writeToDiary(uint256,bool)","f0715594":"_addAdminAccount(uint256,address)","f071b5fb":"LogEscrowReq(uint256)","f071cacb":"_setClientSupply(address,uint256,uint256)","f071db5a":"feesCollected()","f071ecc5":"AFTER_MAX_GOAL_DURATION()","f07227dc":"release(address[],address,uint256[])","f07255e3":"nextBoundaryAmount()","f073b277":"euroRaisedRc()","f07494a0":"bla()","f0757a91":"TOKEN_PRICE_THOUSANDTH()","f075f253":"QRRial()","f07629f8":"eventsHistory()","f076ba9c":"ethercrowdfund()","f077ae0f":"removeSample(address,uint256)","f07819a3":"setMesa(uint256)","f0782640":"getCompanyCount()","f0793782":"modifyHorseyDna(uint256,bytes32)","f0794ca6":"getRocOwnerItem(uint256)","f07a019d":"ownerRecoverTokens(address,address)","f07b454c":"divMultiplier()","f07b4608":"destruirContrato()","f07b9a04":"certAuthIssuesCerticate(address,address,uint256,string,string,string,string,uint256)","f07b9f20":"MapleCoin()","f07c0b21":"AgriChainLabel()","f07c44c2":"appropriate(uint256)","f07d0c49":"Logs(address,uint256,string)","f07edbf4":"maximumAdminBalance()","f0803358":"TSpaceCoin()","f080f860":"MAYA()","f081d9bd":"HaraKiri()","f081fc2e":"MAX_TOTAL_AMOUNT_GET_ETH()","f082650b":"setStarData(uint256,uint16,uint16,uint32,uint32,uint32,uint64,uint64)","f0829c37":"VeraCoin()","f083156c":"LYBToken(string,uint8,string)","f083e8f2":"addressFundFounder()","f0843ba9":"quickConvert(address[],uint256,uint256)","f085b2a1":"clearTokenLock(address)","f0863c08":"maxPowerUserAddress()","f0869641":"normal_trade_date()","f086965e":"changeOwner(bytes32)","f08697a3":"QuyDau()","f0876747":"KocoCoin()","f087d2ec":"STREAMING()","f088d547":"buy(address)","f0893de2":"maxTradingStartTime()","f089b7dd":"hashtag()","f089d566":"AdmineTeamTokens()","f089e2ed":"getProject(string,uint256)","f089e972":"currentNetfRound()","f08a5faa":"getSmartHash(string)","f08b82e6":"getTotalTokens()","f08c9e2e":"deathData_f2()","f08ccd02":"allocatePresaleTokens(address,uint256,uint64,uint64,bool,bool)","f08d5a25":"initialLockedValues(address,address,address,address,address,address,address,address)","f08e362f":"transferFunds(uint256,address)","f08ea4cc":"_startContract(uint256)","f08fa322":"investors_deliveryDate(address)","f090cee8":"addInvestor()","f091e5a2":"CoinMeet()","f0920a41":"wminus(uint256,uint256)","f0921b80":"habichnet1()","f09304b5":"setIntervalSchedulePresale(uint256,uint256,uint256)","f0932bd7":"setNextRoundLength(uint256)","f0933ab9":"isInActiveStage()","f093fd0a":"_bidEth(uint256,uint256)","f0942d35":"gameStatus(bytes32)","f0947680":"lockstatus()","f095ed3c":"cancelAndEndEvent(bytes32)","f09649ed":"getStateLength()","f0965328":"transferFor(address,uint256)","f0970566":"createDklAuction(uint256,address,uint256)","f097e106":"maxBuyingDate()","f098efb3":"ICOActive()","f098f8e4":"finalWindowTime()","f09915d4":"assign(uint256,uint256)","f0995961":"notarize(bytes32,uint256)","f099ce67":"getGladiatorDistributedRandom(uint256)","f099fbbd":"callBurnTokens(uint256)","f09a1f87":"hashOrderTyped(uint8,address,uint256,uint256,uint256,uint256)","f09a4016":"init(address,address)","f09a58f8":"internalSellTokenFromAdmin(address,uint256,bool)","f09a9b3c":"addGoal()","f09bea14":"totalCities()","f09bfcc2":"distributeFixed(address[],uint256)","f09c25e6":"playerCheckProvablyFair(uint256,bytes)","f09c3152":"NerdShitCoin()","f09c5829":"swaps(uint256)","f09cac98":"receiveApproval(address,uint8)","f09d3103":"royaltyTracking(address)","f09dd7c6":"withdrawAffiliateCommision()","f09dd844":"revealPurchaseOrder(bytes32,uint256,uint256,bytes32,address)","f09e34f0":"addReleaseAgent(address)","f09e65f1":"setAtomFath(uint256,uint64)","f09ea2a6":"offer(uint256,address,uint256,address)","f09ecf10":"Contract_Owner()","f0a03aa3":"ITE()","f0a0a299":"VIPFee()","f0a15f10":"TIER2_RATE()","f0a233d4":"SharesChainToken(address)","f0a279ae":"phase1EndingAt()","f0a2bea2":"testCheckRokBalance()","f0a2c430":"inGameRewardAddress()","f0a32e7b":"maxRefundStageDuration()","f0a3563c":"userClaims(address)","f0a3ce5d":"distributeDivs(uint256,uint256)","f0a3d4fd":"freezeAPI(uint256,string)","f0a3dfa4":"isStartTimeCorrect(uint256,uint256[])","f0a42aa0":"_upgradeLevel(uint256,uint16,uint16,uint16,uint16,uint16,uint16,uint16)","f0a43714":"whitelistSize()","f0a45cff":"report_death(uint256,uint256)","f0a71ef6":"getPrevBlock(bytes)","f0a78538":"scheduleTransaction(uint256,bytes)","f0a7975f":"setDayQualitys(address)","f0aadcda":"AIMcoin()","f0aaf4ec":"getOptionsForModel(uint64)","f0abb382":"isHotWallet(address,address)","f0acc83a":"QCSCToken()","f0acfea2":"piranhasTotalSupply()","f0ad243e":"getCoefficient(bytes2,uint256)","f0adcedb":"executeWinningProposal()","f0adda7d":"setNextVersionAddress(address)","f0ae03be":"robotCoin()","f0af0844":"addTimeUnequalledDefence(address,uint256)","f0af50c9":"stoppedSale()","f0af7e65":"cancelAgon(uint64)","f0afbf84":"newFutureLottery(uint256,uint256,uint256)","f0afd95a":"_2_education()","f0b01d56":"VINEYARD_ADDRESS()","f0b05bfd":"getGamesOfPlayer(address)","f0b070ca":"createAppeal(uint256)","f0b087c5":"getConfigUint(bytes)","f0b0cfa3":"readSoftwareInformation(address,address,uint256)","f0b1adbe":"registerEarnings(uint256)","f0b1b42e":"createContractPow(string,uint256,uint256,uint256)","f0b24181":"totalSupplySale2()","f0b25186":"shopKnife()","f0b30f69":"saveLockedERC20Tokens(address,address,uint256)","f0b32c69":"test_threeValidEqBytes32()","f0b37c04":"unauthorize(address)","f0b3a7ba":"hardCapToken()","f0b3adee":"updateRewardRate(address,uint256)","f0b5165f":"delayOfPreICO()","f0b53256":"SoftCap()","f0b534cb":"getApprovedVotes()","f0b620a2":"isPaymentCompleted(address)","f0b6e707":"ORDER_CANCEL(address,address,uint256)","f0b7e532":"withdrawTaker(address,uint256)","f0b80000":"PRESALE_START_DATE()","f0b85b19":"setDefaultLockInDuration(uint256)","f0b9e5ba":"onERC721Received(address,uint256,bytes)","f0ba23e6":"minterChangeable()","f0ba958c":"Error(uint8)","f0ba96ff":"performPayouts()","f0bae2c5":"doIssueDividend()","f0bae787":"_receiveBuyRank(address,uint256)","f0bbab3b":"HSHToken()","f0bbe08b":"phasePublicSale2_To()","f0bbe877":"Deployed(address,uint256,string)","f0bc6cfb":"isReferred(address)","f0bc9cc5":"receivedDETreturn(address,uint256)","f0bcaf75":"UsingDB(address)","f0bd9ab5":"pushToken(address,bool)","f0bf1aea":"Paint(uint256,bytes3)","f0bf4df4":"setMinEnterFee(uint256)","f0bf611b":"transferDao(address)","f0bfd737":"Testtoken(uint256,string,string)","f0c001df":"proofType_Android()","f0c0546c":"closedRound()","f0c06aa5":"distrust(address)","f0c1d1c7":"setContributionPool(address)","f0c295fd":"seeZombieColor(uint256)","f0c388c7":"convertMainchain(string,string)","f0c413dd":"balanceOfContract(address,address,address)","f0c41bb2":"getChampsByOwner(address)","f0c45472":"modifiyEndFundingTime(uint256)","f0c4c04e":"extractFunds()","f0c4c339":"getFreezeSinceDetails()","f0c4fcc5":"mustToSellCourses()","f0c4fd0c":"isAttributesValid(uint256)","f0c5a46b":"periodPreITO_period()","f0c5a77b":"updateBurnableStatus(bool)","f0c69e8d":"calculateWithdrawable()","f0c71318":"zenOSCrowdsale()","f0c87852":"moveData(uint128[],address[],bool[],uint256[])","f0c95bc1":"setAdminVariables(uint256,uint256,uint256,uint256,uint256)","f0c99750":"endICOStage4()","f0ca618e":"Indemnisation_3()","f0caea2b":"SmartRoulette()","f0cafe0e":"tokenGNO()","f0cb556c":"updateLatestRevision(bytes32,bytes)","f0cb740a":"isJobStart(bytes)","f0cb8e77":"savedAddresses(address)","f0cbe059":"proxyTransferFromWithReference(address,address,uint256,bytes32,string)","f0ccc21a":"chunk5IsAdded()","f0cd58b7":"AuthAddr(address)","f0cd5c17":"cancelTx()","f0cd8057":"OACC()","f0ce6231":"XIAOZHI4()","f0cecafc":"privateSale2Hardcap()","f0cf198a":"RemoveSubscriber(address)","f0cfcaa8":"_getNewEstateId()","f0d02ce9":"AVG_BLOCKS_02W()","f0d07014":"allItemsForSale()","f0d0dd3f":"subDomainOwner(string,string)","f0d1c8ce":"hasTrade()","f0d1d021":"set_stoptransfer(bool)","f0d1eaaf":"getChannelById(bytes32)","f0d22ade":"isRepeated(int256)","f0d30786":"getPositionCallTimeLimit(bytes32)","f0d3a9df":"getBuyersCount()","f0d474f9":"underdogCount()","f0d4753e":"TOKEN_OFFERING_ALLOWANCE()","f0d4c92d":"setTimeBonus(uint256)","f0d4d1a6":"lotteryParticipants()","f0d504eb":"lookupKitty(uint256)","f0d5511c":"isArrAccountIsFrozenByDate(address)","f0d655f8":"_calculateTokenAmountAndRemainderBudget(uint256)","f0d6cc70":"endFullBonusTime()","f0d6ff48":"MeetOneTokenBase()","f0d7c9ff":"setPreviousSurplus(address[],uint256[])","f0d7f3eb":"auctionPause()","f0d85c89":"setRecovery(address)","f0d89e67":"LogRedeemTicket(uint256,address,string)","f0d8d4af":"sendTest()","f0d8e968":"getLastLease(uint8)","f0d90937":"usdAmount()","f0d97469":"setTokenExchange(address)","f0d9bb20":"yesToken()","f0da84f8":"getTransferable(bytes32)","f0daa286":"doubleXY(uint256,uint256)","f0daba01":"merchantIdHash()","f0dc4171":"collectTokens(address[],uint256[])","f0dd7a5d":"borrowBook(uint256,address,address)","f0dda65c":"mintTokens(address,uint256)","f0ddc0c6":"InjurymapCoin()","f0df232f":"buyMessage()","f0df6929":"RequireHuman()","f0e02bd6":"WEI_MAXIMUM_EARLYPURCHASE()","f0e10c0d":"play(address,uint256)","f0e1354c":"removeFromEggPhase(uint256)","f0e1691a":"addEvent(string,uint256)","f0e1ba2c":"priceLimit()","f0e1f84d":"setVotingProxy(uint32,int256,address)","f0e231b5":"Datenow()","f0e26f80":"getBattleDetails(uint256)","f0e3d1ba":"setEnd(bool)","f0e3fff8":"totalWon(address)","f0e40662":"getTotalAmount(uint256)","f0e42a1f":"getDividendTransactionLeft()","f0e4c4fe":"setGatewayI(address)","f0e53489":"integrity()","f0e5eeac":"ico2total()","f0e61771":"tokenFreezing(address,bool)","f0e6c2dc":"CASToken()","f0e769dc":"resumeSwap()","f0e7cf13":"adminClaimAirdropMultiple(address[])","f0e86f93":"ICOBlacklisted(address)","f0e959f9":"TokenSales(address)","f0ea0294":"setStage2Start(uint256)","f0ea433a":"sendQualifiedPartnerCommissionFee(address,uint256)","f0ea4bfc":"raised()","f0eb29fb":"_communitySupply()","f0eb737a":"getCurrentDiscount()","f0ebce5a":"getEnum()","f0ec03ae":"tokenWeiSold()","f0ec747e":"VETRA()","f0ec94cf":"edgePerPosition()","f0ecadaf":"comprueba(address,bytes32)","f0ecadcc":"voteSvp03(bool)","f0ed029e":"DebugUint(uint256)","f0ed14e0":"right95(uint256)","f0edb7cf":"admin_set_Apply_Store_Id_Fee(address)","f0ee7df2":"setMaxWin(uint256)","f0ef7621":"FishOne()","f0f0fe10":"ownerSetRecommendProportion(uint256)","f0f21344":"right27(uint256)","f0f2805f":"isOnSale(uint256)","f0f3f2c8":"getProject(uint256)","f0f44260":"setTreasury(address)","f0f46302":"shopHelmet()","f0f53ee4":"setBool(bytes32,bytes32,bool)","f0f5af8b":"calculateObtainedAMIS(uint256)","f0f7bd31":"LibertyToken()","f0f87e98":"TokenWithoutStart(string,string,uint8)","f0f8aff9":"getPriceForAssetAmountMulCollatRatio(address,uint256)","f0f8b7a5":"betX5()","f0f967e8":"canCall(address,address,bytes)","f0f9a729":"dividendsOf()","f0fa55a9":"setSlippage(uint256)","f0fb4372":"RatingStore(address,address)","f0fb8efd":"allowDefaultToken(address,bool)","f0fbc8ac":"indInflationDeposit()","f0fbe2e4":"addressAirdrop()","f0fbfd3a":"targetDiscountValue5()","f0fc1438":"tradeComplete(address,uint256,address,uint256,address,address,uint256,uint256)","f0fc6bca":"claimDividend()","f0fcc6bb":"pay(address,uint256,address)","f0fdb32f":"canStartWork()","f0fdc689":"setInv2(address)","f0fdf834":"a(uint256)","f0fe3d68":"metaBurnCarbonDollar(address,uint256,bytes,uint256,uint256)","f0fee1f7":"LogMigrate(address,address,uint256)","f0feef96":"closeChannel(bytes,uint256,uint8,bytes32,bytes32)","f0ff4840":"LuckchemyCrowdsale(address)","f0ff6ac4":"withdrawal(uint256,address,uint128)","f1001f8c":"getTotalLockedBalance(address)","f10143e1":"TokenToppedUp(address,uint256,uint256)","f101618a":"getMiniPoolEdit_8()","f1018c6f":"boughtNum()","f101b269":"appstore_share()","f103b433":"updateMaxSupply(uint256)","f104c836":"setAssetTransferGas(address,uint256)","f1052af5":"isRegisteredContract(address)","f105c981":"get_contrib_arbits_min()","f105e23b":"PVE_COMPENSATION()","f1068454":"pid()","f10700c2":"shouldCompleteDay()","f1076703":"getVerificationId(address,bytes,bytes)","f107941b":"buyTest(address,uint256)","f107b5e7":"getMaximumLimit()","f108a7d2":"withdraw(uint256,address,string)","f109517c":"delegatedTxHashesUsed(bytes32)","f10968ea":"assertEq(bool,bool,bytes32)","f10a4f0a":"WALLET_PARTNER()","f10a7798":"setAuth(address,address)","f10a9848":"currentNumberOfUpgrades()","f10ae2ab":"__dig_then_proxy(uint256,address,bytes)","f10ca95a":"close(bytes32,bytes32)","f10cb3da":"ObjectToken(uint256,string,uint8,string)","f10cb5dc":"DomainChanged(address,uint256,uint256)","f10ce7c4":"registration(address,string)","f10d1de1":"setUnbondingPeriod(uint64)","f10e5ceb":"getNumAdd(uint8)","f10ecc65":"chainlinkToken()","f10fae62":"setLLV_edit_21(string)","f10fdf5c":"getContribution()","f11079cf":"createType(address)","f110bbdf":"SetupAccounts()","f1112e70":"payYearlyJackpot(address)","f1115c7e":"transferMSI(address,uint256)","f112ddc0":"GJMI()","f113c854":"icoThresholdBonus1()","f113f700":"advisoryReserveTokens()","f113fccd":"trueGods()","f1144ce0":"HCoinToken()","f1145727":"buyStarterPack()","f1147bae":"withdrawRoyalty()","f1156cdf":"getCurrentVoting()","f115f06a":"WhiteListSet(address,bool)","f1160dc2":"ParticipantAuthority(string,address)","f116260f":"CryptoTreasure()","f1167e0d":"createPlayerIfNeeded(address)","f1168e11":"_createMobster(string,address,uint256,uint256,uint256,string)","f1173928":"RemovedFromGeneration(address,uint256)","f11745df":"totalHolder()","f117c924":"totalInvestedInWei()","f1183e21":"assertEq0(bytes,bytes,bytes32)","f118e465":"LogCreateVIBEX(address,uint256)","f118f7d6":"setDestinationMultisigWallet(address)","f119a48d":"toUnixtime(uint32,uint8,uint8,uint8,uint8,uint8)","f119ada4":"addTeam(string)","f119fcaa":"isMintableNFT()","f11a8911":"accountTxs(uint256)","f11a97ef":"MinerToken()","f11af32a":"EuroToken()","f11b9b46":"FRPTOKEN()","f11b9fc8":"emitTokens(address,uint256)","f11bdfa4":"_isValidHeight(uint8)","f11be7c1":"getTrustedContracts()","f11c2cec":"changeOwner(address,address,address)","f11c4482":"approveFromProxy(address,address,uint256)","f11c46f4":"How_to_interact_with_Smartcontract()","f11c8de8":"ZENT()","f11cfc56":"Vicky()","f11d5039":"place_holder()","f11d5b33":"reward(address,bytes32,uint256)","f11dd6ac":"viewGiveKarmaFee()","f11eb099":"preIcoAllocation()","f11ef5cf":"reserve(uint8)","f11f7d2d":"maximumBidAllowed()","f12001ae":"Testereumx()","f1204db6":"maximumJackpot()","f1208af8":"drawWeeklyWinner()","f120974e":"CHENDE()","f1215d25":"deposit(uint256,string)","f122ed60":"send_message(address,string)","f1233b79":"updateTimeBetweenGames(uint256)","f12479ac":"getPhase(uint8)","f124a300":"setPayable(bool)","f124eab5":"ETD()","f125561d":"notifyReceiver(address,address,uint256,bytes)","f12585f5":"getStageVolumeBoundaries(uint256)","f12611f1":"XID(address)","f1261fce":"permitTransfers()","f1272f35":"ICOBlaster()","f127328a":"totalTokenCollected()","f12782b2":"EPXAirDrop()","f127e53c":"LunchMoney()","f1280c23":"getCCH_edit_32()","f1287aef":"Ethmoji()","f129c5d7":"getGeneScienceAddress()","f12a1580":"withdrawDevReward()","f12a15b1":"heapify(int128[])","f12acca2":"upgradePonyHashing(uint256,uint256)","f12b3d3c":"SentFeeToPlatform(uint256)","f12b60f2":"TEAM_POOL_INIT()","f12c095b":"developer_string_A(string)","f12c87eb":"planetIndexToOwner(uint256)","f12d15c3":"transwerFunds(uint256)","f12d394f":"execute(uint8[],bytes32[],bytes32[],address,uint256,bytes)","f12ddd2b":"sendTokensToOwner(uint256)","f12e5eaa":"withdrawPartial(bytes32,address,uint256)","f12f5409":"accrueInvestorsTokens(address,address,uint256)","f12f6925":"NokuFlatPlan(uint256,uint256,address,address)","f13016d5":"internalPresale(address,uint256)","f1309dc0":"transferTokens(address,uint256,uint256,uint256)","f130da53":"GreenXToken()","f13101e9":"_delegate(address)","f1311a2e":"pgoMonthlyInternalVault()","f1317352":"setVCX(address,address,uint256)","f1317c09":"halt_purchases()","f1319892":"CoinifinexToken()","f131a7ae":"clearGame()","f1320af2":"exempt(address)","f13375bd":"addApprovedWalletAddress(address)","f13397b4":"EmeraldToken(string,string,uint256)","f133a7c6":"_update(uint256,uint256)","f133c38c":"testIntParserOneDecimal()","f1348138":"DoAirDrop(address,uint256)","f13497d6":"notifyCollateralNotTransfered(uint256)","f1349955":"externalTxs(uint256,bytes32)","f136a874":"approvedAddresses(address)","f137005f":"EOCHToken()","f13707b3":"adminGetPlayer(uint256)","f1378efa":"QuanYToken()","f137c236":"DSNCOIN()","f137d1a3":"getVestedAmount(uint256,uint256)","f13837f6":"ALPToken()","f1388f14":"mtrx()","f138fca5":"resetKoth()","f1395f3f":"tokensForDevteam()","f1398db1":"MbbToken()","f13a38a6":"getConstant()","f13ab647":"doMakerPayment(address)","f13ad3bf":"RemoveAllHeaders()","f13b68e8":"getPurchaseableMode(uint256)","f13b8d66":"removePerformer(address)","f13ba6a9":"_calcPhase()","f13c310c":"_createPlayer(string,uint256)","f13c7f57":"returnAllBalance()","f13c8fef":"weiTokensRaised()","f13c9b2b":"gcFundAmount()","f13ca4b8":"setEtherAmount()","f13cc606":"buyNOS(uint256)","f13d111f":"reverse(uint8[])","f13d22c1":"getModuleByName(string)","f13dc2e2":"watermark()","f13fc23b":"FINX()","f14053ad":"minVal()","f140b8ea":"getSentTransfer(uint256)","f141d076":"DURATION_DECREASE_PER_ETHER()","f14210a6":"withdrawETH(uint256)","f1437bd0":"setFrom(address)","f143e6db":"clearRequest(uint256)","f143ffe9":"ProfToken()","f14467fb":"ViewMyPrivateKeys(string)","f1448e10":"requestExecution(bytes)","f1455328":"CappedCrowdsale(uint256,uint256)","f145761c":"StartedGame(uint256,uint256)","f145cae9":"updateStoreFee(uint256)","f145ff23":"getDistributedTokens()","f1469382":"updateRates(uint256,uint256)","f147decc":"buscarAssinatura(string)","f147df3b":"get_king_address(address)","f1496070":"getAuctionArray(uint64,uint64)","f14ae17d":"isPresalePurchase(address)","f14b1c01":"upgradeFactory(uint256)","f14bd85d":"resignFromGroup()","f14be97f":"setTgeAddr(address)","f14ca7d7":"getVestingReleaseInterval(address,uint256)","f14ca885":"preICOcontributors()","f14d147f":"tokenSaleWeiMax()","f14dc176":"setDestructionCurator(address)","f14e96f1":"getBestBid(uint256)","f14eb30d":"SaleClockAuction()","f14f58f1":"removeAsset(uint256)","f14faf6f":"donate(uint256)","f14fcbc8":"commit(bytes32)","f14ff5cf":"getSeatMessageUrl(uint256)","f1508105":"Ohni(uint256,string,uint8,string)","f1518627":"anotherOwner()","f151e4ae":"devuelveToken()","f1522d53":"redeemablevilsinfo(address)","f1533936":"BNTPrice()","f153d3ad":"BurnupHoldingAccessControl()","f15467c4":"WelCoinICO(uint256,uint256,address,address)","f15627a1":"mintArray(address[],uint256[])","f156deb2":"miningTokensOf(address)","f1572e7d":"getQuoteKey()","f15732b8":"REAL()","f157c54b":"operatorRedeemByTranche(bytes32,address,uint256,bytes)","f157ea0b":"forkAddress()","f158458c":"getMinimumEndowment(uint256,uint256)","f15886db":"addressToReceiverToAllowedSprite(address,address,uint256)","f1588d66":"getPurchaseAmount(address,uint256)","f158e478":"destroyCampaign(bytes32)","f159eb84":"KVCToken()","f159f38f":"getTracks2()","f15a1b59":"tokenForTeam()","f15a691d":"validPurchase()","f15a9ae8":"maxPVPContenders()","f15ae568":"addEntry(address)","f15afa50":"fpMulI(int256,int256)","f15b2bda":"approveMintLocked(address,uint256)","f15beecf":"payNode(bytes32,uint32)","f15bf739":"getShareholderArrayLength()","f15caaa9":"insertDate(uint256)","f15cfe33":"KRWT_Token()","f15d775d":"changeMedianier(address)","f15e3af1":"getMatchAtRoundIdAtIndex(uint256,uint256)","f15f14c5":"Dividends()","f15f2bf0":"blockEndICO()","f15f56a7":"calcBingo()","f1608682":"updateUserDetailsInBulk(address[],uint256[],uint256[],uint256[],bool[])","f1610120":"next_giveaway()","f1625534":"deactivateRound(uint256)","f16270c3":"VITTokenSale(address,uint256,uint256,uint256,uint256,address[20])","f162c5a1":"totalScaleStaked()","f1637630":"withdrawBatch(bytes32[],address)","f1644b6c":"getFaucets()","f16638ec":"UselessReserveBank()","f1665a48":"NewVestedToken(address,address,uint256,uint256)","f166dc27":"Bid(address,string,uint256)","f1671b56":"getWeightRange()","f16787bc":"readFromCards(uint256,uint256)","f1679095":"getTransferAddressUser(address)","f167d695":"sacarDoacoes()","f1684237":"Ownable(address)","f1686296":"Hodor(string)","f1687a8d":"tokenSellCost()","f1694b3d":"updateResearch(address,uint256)","f16b6482":"gameCountdown(address)","f16b9422":"_recordFailedOldOwnerTransfer(address,uint256)","f16bdb9c":"validate(bytes20,uint96,uint32,bytes32[],uint16)","f16bdba9":"isCustomerinBLFromWL(address,address)","f16c5e8d":"issuerGuiveToken(address,uint256)","f16d9aca":"khabibToken()","f16dfbe9":"verifyAccount(address)","f16e74ac":"minDividendEtherAmount()","f16f9b53":"signedApproveAndCall(address,address,uint256,bytes,uint256,uint256,bytes,address)","f16fa66a":"updateLotteryData(address)","f16fa954":"debug_resizeRealPrefix(uint256,uint256)","f1700f94":"getInfoF1(address)","f1703d24":"addEntity(address)","f170c83c":"famedStarAddress()","f1714e97":"preserveTokens(address,uint256)","f1714fcc":"AddCommitteeToMapAndArrayEvent(address)","f171a730":"transferEvent_(address,uint256,bool)","f171ba5d":"verdictExecuted(address,bool)","f172f58f":"getPositionOwner(bytes32)","f172f84f":"jockeyLevel(address)","f17313e6":"unFrozenAddress(address)","f1736d86":"m_dailyLimit()","f17382ae":"SUPPLY_FOR_RESERVE()","f1739cae":"transferProxyOwnership(address)","f17401de":"init_multiowned(address[],uint256)","f17454b0":"UserAdded(bytes20)","f174683a":"VTrust()","f174b333":"buscarDocumentoPorId(uint256)","f1751688":"showReportForDevice(uint16)","f17520e5":"changeWhitelistAdmin(address)","f1753550":"supportsInterface(bytes32)","f175e6a9":"getTwitter()","f1762e5d":"bnbRefundEnabled()","f1765b22":"acceptSale(address[])","f1771cf0":"BURNABLE_UP_TO()","f177e837":"to62Encoding(uint256)","f177fc4f":"PornSceneToken()","f1781c72":"removeLockedTime(address,uint256)","f179a86e":"setEtherToTokenAllowed(bool)","f179c6ef":"confirmBatch(address[])","f179f9f1":"parsecCreditContract()","f17a1ff5":"BAG_TRANSFER_FEE()","f17a3c4b":"FTST()","f17b1d63":"BacCara()","f17b5bb0":"assertMatchingBalance(uint256,uint256)","f17b6d9b":"relayCMCT(address,uint256,bytes32)","f17ba16b":"approveByAddress(address,address,uint256)","f17cc54b":"TestLib()","f17ccd73":"DNMC()","f17d186c":"withdrawAllFundsFromContract()","f17e48ec":"adminTransfer(address,uint256)","f17f29d0":"getGoldDataSerial()","f17f3ca3":"AUCTION_WHEN_PERCENTAGE_LOGIC_STARTS()","f17f6f8a":"escapeCaller()","f1806a21":"getUnapprovedUsers()","f180743a":"tokensForFounder()","f1807e35":"removePermission(uint8)","f18166c2":"TRADE_REWARD()","f181b388":"setTotalWithdraw(uint256,address,uint256,bytes,bytes)","f181f396":"unspentAmounts(uint256)","f182dd3b":"releaseTokens4Sender(uint256)","f183452c":"releaseTokenByOwner(address)","f1835db7":"verify(bytes32,uint8,bytes32,bytes32)","f1838a15":"burnFeatureDeactivation()","f1838fe4":"getExpectedRates(address,address[],address[],uint256[])","f1850af8":"getTokenSymbol()","f1860118":"tradeExecuted(address,uint256)","f1861749":"nextDiscountTTMTokenId6()","f18697cf":"IdolCoin()","f186a625":"transferContentOwnership(bytes32,address,address,string)","f186bb79":"getPixelPrice(uint16,uint16)","f186c67f":"permit(address,bool)","f186d77e":"setStarContract(address)","f1870e0c":"contractFinalized()","f187650d":"DeskBellPresale()","f18771de":"NujaRegistry()","f1880128":"getSTMPDecimals()","f1880b24":"checkToken(address)","f189348a":"teleportCharacter(uint32)","f1895e08":"__issueTokens(address,uint256)","f1898fda":"TOKEN_CONTROLLER_INTERFACE()","f18ab544":"pendingList(address)","f18ad6fb":"getRecord()","f18b7bde":"SplitDividendsAmongstOwners(uint256)","f18ba98c":"handleSaleCompletionCallback(uint256)","f18cbe08":"_byteToString(bytes32)","f18d03cc":"transfer(address,address,address,uint256)","f18d20be":"adminWithdraw()","f18d4dbb":"addTokenSupply(uint256)","f18d5a93":"TokensSent(address,uint256)","f18dd512":"PERSONAL_FIRST_HOUR_CAP()","f18df6bb":"increaseAllowanceToken(address,uint256)","f18e120b":"setMaxTokensPerAccount(uint256)","f18ecf80":"OfferToken(uint256,string,string)","f190a793":"companyTokenWallet()","f190ac5f":"mintToAddresses(address[],uint256)","f190b4d3":"newUserRewardPool()","f1914dc5":"StaticEthAvailable(uint128,uint128)","f191c26d":"CPT()","f192866a":"sellTicket(uint256)","f192e91c":"forfeit(bytes32)","f1931b9e":"LAFIN()","f193a3f7":"changeBank(address,address)","f19414d5":"admin_inactive_dividend(address)","f194c23f":"_getCurrentAltarRecordId()","f1952473":"AcoraidaMonicaWantsToKnowTheNewQuestion(string)","f195995c":"isValidGeneration(uint8)","f195f0f9":"slice2(bytes,uint256,uint256)","f19674f6":"PatronThreeWithdrawal()","f19798ab":"numRolls()","f1979de8":"setPixelAreaColor(uint256,uint256,uint256,uint256,uint32[])","f197bbdd":"deadlineOne()","f1991a27":"saleStartTokenCreationRate()","f199265f":"internalExecuteCall(address,uint256,uint256,bytes)","f199f56d":"roundReward()","f19a5810":"changeBaseTokenPrice(uint256)","f19ab230":"Bcoin()","f19ac52d":"newDepositCommission(uint256)","f19be31b":"btcAddrPubKeyCompr(bytes32,bytes32)","f19be5d5":"JackpotCore(uint256,uint256,uint256,uint256)","f19c020d":"returnTokensAll(address)","f19c78b5":"contributorsKeys()","f19cfeff":"RepossessionBounty(address,uint256)","f19d2bcd":"EOS_address()","f19d736e":"Prosper()","f19dd75b":"lspToken()","f19e3c9f":"LogSnapshotCreated(uint256)","f19e75d4":"ownerMint(uint256)","f19e774e":"isValidBet(uint256)","f19eb731":"TKT_TokenERC20(uint256,string,string)","f19ee2a9":"_getAsset()","f19efc43":"getRoundInProgress()","f19f3246":"rejectOwnership()","f19fb157":"withdrawnow()","f19fc6ab":"gonIIToken()","f19fe69b":"withdrawTokenTo(address,address)","f19fefbc":"Hodling(address,address,uint256)","f1a00a53":"unregisterListening(address)","f1a0a85c":"div(uint64,uint64)","f1a138f4":"Airdropsamount()","f1a252b8":"getMoneyBack()","f1a3de09":"register_minting(address)","f1a5158b":"Contest()","f1a570b8":"DividendRecycled(uint256,address,uint256,uint256,uint256)","f1a5fc99":"bytesToInt(bytes)","f1a63733":"createBountyToken(address,uint256)","f1a6ed46":"ORIGIN_ETH_BRT_RATIO()","f1a9af89":"startPrice()","f1a9d749":"LRCCcoin(uint256,string,string)","f1aaea1c":"updateLabAddress(address)","f1ab36b4":"getSaleInformation()","f1ace1a1":"ART_DECIMALS()","f1ad3334":"storeETH()","f1ade50c":"VelesCoin()","f1ae5437":"changeTakeFee(uint256)","f1ae72a5":"minAcceptedEthAmount()","f1ae8c55":"startRaffle(uint256)","f1afc4f6":"ShareHolderController(address,address[],uint256[],address,uint256,uint256,uint256,uint256,uint256,uint256)","f1b0202e":"TalkToExpertPayment(address)","f1b07f96":"deblacklistAddress(address,address)","f1b12493":"IcoContract(address,address,uint256,uint256,uint256,uint256,uint256)","f1b234ad":"setWallet(address,address)","f1b2b03c":"start_ts()","f1b2d6a3":"getListings()","f1b3ea6f":"asyncDebit(address,uint256)","f1b3f968":"getRaceEndBlock()","f1b3fd80":"momentTimeOf(uint256,uint256)","f1b46bc8":"generateRandomCard(uint32)","f1b4d548":"isValidTeam(uint256[])","f1b50c1d":"enableTransfer()","f1b541c2":"startPublicSaleStage()","f1b5bc17":"mintAmount4()","f1b5c777":"contributeWasCalled()","f1b5d7de":"pre_prices(uint256)","f1b6315e":"StartRoulette(uint8)","f1b676a4":"ico3Ended()","f1b6cee5":"winPot(uint256[])","f1b74348":"addExisitingContributors(address[],address,uint256[])","f1b75173":"getLegacy(uint256)","f1b8a5bf":"commitPhaseMinVotes()","f1b9ee24":"setInactive()","f1bab09c":"setExtraBonus(uint256)","f1bab410":"manualSale(address,uint256)","f1bba50a":"GoldBlocksTickets()","f1bba6f9":"account(string)","f1bbc663":"tokenSaleClosedTime()","f1bca30f":"removeManyAdmins(address[])","f1bca7a4":"doCall(uint256)","f1bcb6e5":"createContractor(address,address,bool,address,string,string)","f1bd4c04":"getJackPot()","f1bd5978":"__address3__()","f1be1679":"getMarket()","f1be42f1":"numCharacters()","f1bf18db":"availableZNT()","f1bfb9cd":"listSingleCard()","f1c05831":"authoriseSale(uint256,uint256,address,uint256)","f1c10c24":"infoTokens(address)","f1c16deb":"validPurchase(address,uint256,uint256,uint256,uint256,uint256)","f1c21077":"PROBABILITY_DIVISOR()","f1c22a05":"setNewPixelPrice(uint256)","f1c30ec0":"reclaim(bytes)","f1c36ce0":"burnFromAddress(address)","f1c3dd3e":"fuckTest()","f1c41b68":"setConsensusRules(uint256[6])","f1c461c7":"mesasCreatedVerify()","f1c4d6b0":"DOG_Crowdsale()","f1c4ecb4":"maxCapWei()","f1c53a3a":"UpdateUserExtraData1(address,bytes32)","f1c55931":"reserveFunds(address)","f1c5d07b":"totalLoveBlocks()","f1c61958":"DIGITALCASH()","f1c6aeb7":"SetApplicant(string,uint32,uint256,int256,string)","f1c6c520":"runningauctions(uint256)","f1c760ae":"fixBalanceInternal(address)","f1c7689e":"CandyRate()","f1c94b45":"lastBlock_a7Hash_uint256()","f1c9cc11":"lockMin()","f1ca9410":"gen0CreatedCount()","f1cca8aa":"setTakerFee(uint256)","f1ce37d9":"eachUserWeight()","f1ce9595":"TIME_PERIOD_IN_SEC()","f1cea858":"TCLRToken(address,address,address,address,address,address)","f1cf5b38":"setWethContractAddress(address)","f1cfb100":"remainingEscrow(bytes32)","f1cff4b5":"testBitsNotSetSuccess()","f1d02a8c":"MiningToken(string,string)","f1d08bfa":"setOpenForSale(bool)","f1d15f1f":"setLandPrice(uint256,uint256)","f1d1768c":"updatePresaleListMapping(address[],address,bool)","f1d18a42":"safediv(uint256,uint256)","f1d20d4d":"provider(bool,address,address,address)","f1d2165f":"SaleActive()","f1d22be0":"freezeAll(address)","f1d2b3c2":"Owner1()","f1d2b8ab":"seePurchase(uint256)","f1d308d5":"SingularityTest17()","f1d35260":"setGovernor(uint8,address)","f1d3a853":"PalliumCrowdsale(uint256,address)","f1d588c5":"setRoleManager(address)","f1d59443":"getUSETTotalSupply()","f1d61850":"confirmationPeriodOver()","f1d61f23":"timeLockAdvisor(address)","f1d71b73":"betBlueCoin()","f1d73540":"Quiz(string,string)","f1d841f1":"minAcceptedAmount()","f1d89857":"RequestFactory(address,address)","f1d91942":"setInfoUrlPrefix(string)","f1da588a":"PrivateCoin()","f1da7e63":"getMortgageRate(address)","f1daa1f0":"writeDefinitions(uint256,string)","f1daa5ba":"calculateAmountForETH(uint256)","f1db23dc":"totalProceeds()","f1dbd547":"FINAL_AML_DAYS()","f1dbd647":"receiveDividends(uint256,uint256)","f1dc24ae":"getMeshPointByCreator()","f1dd08b4":"transferCommissionReceiver(address)","f1dd6147":"buyTokensIco(address)","f1de75e3":"getPrefixOwner(string)","f1dfcddb":"testTransferGasIssue()","f1dffed7":"setIntValue(int256)","f1e02620":"setFirstTime(uint256)","f1e03d67":"createEscrow(bytes16,address,address,uint256,uint16,uint32,uint32,uint8,bytes32,bytes32)","f1e253dd":"brickIds()","f1e298c3":"addFee(address,uint256,address,uint256)","f1e2ac12":"evalParam(bytes32,uint32,address,address,bytes32,uint256[])","f1e2e921":"_Owned()","f1e328f9":"left68(uint256)","f1e4a540":"unsetCoordinator()","f1e50ce9":"saveMe()","f1e69009":"registerDsp(address,uint8,bytes32[5])","f1e6bb1c":"getVoteOptions(uint256)","f1e6f4cd":"right40(uint256)","f1e7ae1f":"modifyMemberLimits(address,uint256,uint256)","f1e8ace7":"decodeBillingMetadata(uint256)","f1e954d8":"increaseTokenSaleAllocation()","f1e9951f":"getActionCount(bool,bool,bool)","f1e9a514":"VREO_SALE_PHASE_2_END_TIME()","f1ea43e7":"TCSCCoin()","f1ea6cbd":"creationMinCap()","f1ead3d6":"getAuctionsFor(address)","f1eae25c":"mortal()","f1eae64a":"openSell()","f1eb0ed9":"newInitialPlayerOffering(string,string,uint256,uint256,address,uint256,uint8)","f1ebe451":"ChooseB()","f1ecff08":"BastoneToken()","f1ed9923":"isEcoAllocated6()","f1eeec2e":"insureClient(address,uint64)","f1ef9881":"hashSecret()","f1ef9a08":"preicoAddresses(address)","f1efb76a":"getPayTo()","f1f05a3f":"getAttr(bytes32,uint256)","f1f0b290":"lockToken(bool)","f1f1e30f":"ethForKey(uint256)","f1f201e8":"getArtworkInfo(uint256)","f1f33565":"ENG()","f1f339ef":"doCheck()","f1f3ae31":"novaContractAddress()","f1f49033":"deductDeposit(address,uint256)","f1f4e25d":"OctaBlock()","f1f62f10":"isWalletLocked_Send(address)","f1f6d945":"webAddress()","f1f732cb":"BONUS_TOKENS_RESERVED()","f1f76438":"checkNumber(address)","f1f87fc9":"BitMix()","f1f9539f":"KittyRace(address)","f1fa1744":"sellpause()","f1fa906c":"getProjectName(uint256)","f1fb3ace":"minEth()","f1fb5219":"_calculateContribution(uint32,uint8,uint64)","f1fbf2a3":"calculateObtainedSBT(uint256)","f1fc4db4":"updateCutoff(uint24)","f1fd9614":"getNumData(uint256)","f1fe42b8":"TransactionRequest(address[3],address,uint256[11],uint256,bytes)","f1fea32a":"setPOOL_edit_7(string)","f1fec2b8":"nodePrice()","f1ff3d4b":"totalNumberMinted()","f1ff4a67":"releaseWithheldTokens(address,bool)","f1ff732b":"setBanker(address)","f1ffde45":"BasicBallot(address,string,string)","f20001b0":"Menu08()","f2016a4f":"updateMinEthPerNotification(uint256)","f201da0d":"newChannel(address,address,uint256,uint256,uint256,address)","f2020275":"users()","f2021550":"QBankChain()","f2022905":"toldYouItWouldWork()","f20341a8":"getRemainingTarget()","f203af26":"registerImport(bytes8,bytes8,uint256)","f203c19d":"usersAddress()","f203c857":"getSpeaker(address)","f20431c8":"MyTotalNTD()","f2057179":"changeInstitutionOwner(string,address,address)","f20652a1":"nxcSold()","f2068bfc":"addUniqueSpinner(string,uint256,address,uint256,uint8,uint8,uint8)","f206cf74":"MINIMUM_ETH_SOFT_CAP()","f206e7c9":"fechAllVoteResultBySnapshotBlock(uint256)","f20717e9":"getNbTrade()","f207564e":"register(uint256)","f2080ba6":"Pong(int8)","f2083220":"activeTranscoderTotalStake(address,uint256)","f2091083":"dollaryDanToken()","f2097550":"bucketExists(bytes32)","f2097b9b":"doesAddressOwnSpinner(address,uint256)","f209fc1f":"purchaserWhiteList(address)","f20b4368":"AllocateMainSale(address,uint256)","f20b93ea":"getInvoiceAmountPaid(bytes32)","f20d5385":"endCrowdsalePhase2Date()","f20d5943":"s0(bytes1)","f20d5e57":"distributeToReferreal(uint256,address)","f20dde7b":"updateCostETH()","f20de9d6":"openGameLoop()","f20e5e35":"getAuctionDetails(uint256)","f20e5f51":"PeriodChanged(uint8)","f20eaeb8":"output()","f20f24ec":"pauseTokenSale()","f2102390":"SOFTCAP_RATE()","f2107f83":"getStakingInfoPayload(bytes)","f2108aa8":"FraCoin()","f2114752":"viewSecondLotOfContractState()","f21153d2":"withdrawSettle(bytes32,uint256,address,address,uint256,uint256,bytes32,bytes,bytes,bytes32)","f211c9ed":"releaseMultiByStage(address[])","f2125f40":"SEELE()","f212c216":"setSystemAuctionDuration(uint256)","f213159c":"depositTo(address,address,uint256)","f2139abf":"getBigPromoBlockInterval()","f213aad2":"dayWithdrawCount()","f2141ab9":"lossToCharity(uint256)","f21439b5":"envokeTokenAllocation()","f2147f7b":"currentPeriodPrice()","f21502e5":"ZTHTKNADDR()","f2153fae":"BNKCToken()","f215bc3e":"genEstKeyBlockNr(uint256)","f21632e1":"icoEtherReceived()","f2166ab1":"xpanda(uint256,string,string)","f216b203":"TokenSyndicate(address,uint256,uint256,uint256,uint256)","f216bfd6":"updateUportInfo(string)","f216f45d":"nextStageBonus()","f21711f3":"currentRating()","f217d6a3":"standardDailyLimit()","f217f15c":"doCreate(uint256,bytes)","f2180c61":"versionCode()","f2181e23":"initializeGasPriceLimitFundraiser(uint256)","f219fa66":"depositERC20(address,address,uint256,uint256)","f21a1468":"getOutcomeTokens()","f21aaee6":"MinerChain()","f21aefd2":"isDebug()","f21af007":"unWhitelist(address)","f21b422a":"unregisterCustodian(address,address)","f21b64ad":"DepositETH(uint256)","f21b9379":"setRoundAvailableToken(uint256,uint256)","f21baec7":"withdrawPreIcoFounds()","f21c27a7":"CTAMToken()","f21cdf6f":"defrost()","f21d5dea":"withrawAll()","f21ddc7a":"teamBalanceOf(address)","f21f537d":"startedAt()","f21f80d0":"setGenome(uint256,uint256)","f21f8236":"getRefTo(address,address)","f2204d35":"getWalletsFromUser()","f220cbe0":"GetIsPaused()","f2218819":"getAddressAndSharePriceOfFunds()","f221abef":"isReachedThreshold()","f221b25b":"addSponsorshipsTotalRefunded(address,uint256,uint256)","f221b75a":"addCET4(uint32,string,uint32,uint32,uint32,uint32)","f221fda0":"totalRooms(string)","f2225500":"FHCoin()","f222d0b9":"getNumberOfBets()","f223446c":"start_game(bytes32,uint8,uint32,uint16,address,uint256,uint8)","f2234f6e":"confirmAdmin()","f223885a":"deposit(uint256[],uint256[])","f225138b":"littCapsuleGet(bytes32)","f22513a7":"withdrawLatium(uint256)","f225415a":"getFrozenBalanceByAddress(address,address)","f2260031":"lockAddress(address,bool)","f2263e12":"refundedFunding()","f2269c8e":"_createFootballerStar(uint256,uint256,uint256,uint256)","f2269dba":"airdropCooldownEnd()","f2274abb":"getReservedIsVested(address)","f227b198":"CreateWEE(address,uint256)","f229abbd":"enableBurn(bool)","f22a0b31":"getDays(uint256)","f22a598f":"changePriceUpdateTimeline(uint256)","f22aa38b":"getSDCCSupply()","f22aae52":"_memcpy(uint256,uint256,uint256)","f22b0c94":"setBonusOff()","f22b258a":"trustedMarketTransfer(address,address,uint256)","f22b683e":"delKycVerifiedInvestor(address)","f22c0f7d":"isValidTxPaymentForMCW(bytes32)","f22c10d7":"setShareHolders(uint256,address,uint256,bool)","f22c618e":"isItemStopped()","f22c6a7c":"STE(string,string)","f22c71e5":"finalizeLottery(uint16,bytes32,uint256)","f22c8f63":"FINANCE_CAP()","f22d022b":"burnIcoCoins()","f22dbfe6":"forLoyalty()","f22f264d":"setMinBalance()","f22ffd1d":"TLN_TOKEN_DECIMALS()","f23008ca":"CarBonCash()","f2309723":"setUserApproval(address,address,string)","f2316472":"transferMyTokens()","f2325244":"VULCAN_PROMETHEUS_MAX_CARGO()","f232880d":"reserveWaveTokens()","f232a84d":"getAmountAttempted(address)","f232e351":"initializeBalances()","f23342d8":"checkHashExists(bytes32)","f2335e9d":"setAvgGas(uint8,uint16)","f2342bba":"getBagDetails(uint256)","f2342cd5":"Contributor(string,address,address)","f234bac5":"tokenCreationCapUpdate(uint256)","f235bdfd":"getRetailerTotalBalances(address)","f235bfa4":"addAccount(address,string,uint256)","f236e2fb":"UTCT()","f2371fb3":"grantGiveableKudos(address,uint256)","f2371fd1":"newEmployer(bytes32)","f238683f":"lastKing()","f238dbea":"minimum_payment()","f2393d55":"getKebabsSincelastKebab(address)","f239c5dd":"crowdsaleMinted()","f239e528":"sendOneEtherHome()","f23a6e61":"onERC1155Received(address,address,uint256,uint256,bytes)","f23a8155":"internalInvest(address,uint256,uint256)","f23a8aa6":"getOwnerLink(address)","f23b55c3":"BB8Token()","f23b6fa2":"emitApprovalEvent(address,address,uint256)","f23b872e":"tvc()","f23ba8e6":"hire(address,uint256)","f23bc4f8":"acceptOffer(uint64)","f23c51cd":"setReceiverContractAddress(address)","f23ca012":"becomeNorsefire()","f23e22a7":"rescheduleTransaction(uint256,uint256)","f23f16e6":"appealCost(uint256,bytes)","f23f2cbe":"withdrawWithFee(address,uint256,uint256,bool)","f2405395":"STAGE_THREE_ETHRaised()","f2408d6b":"PIN(uint256,string,string,uint256,uint256,uint256)","f2409d65":"getMileagePoint(address,address)","f240d0f5":"feesWithdrawn()","f240f7c3":"dispute()","f24113c6":"updateProfile(bytes32,bytes32)","f241335d":"calculatePrice(string,uint88)","f2414cbd":"YASToken()","f24150ae":"VoxelDestroyed(uint8,uint8,uint8)","f2415183":"Tithe()","f2416f64":"oracleItCallbackAddress()","f242432a":"safeTransferFrom(address,address,uint256,uint256,bytes)","f2429b1c":"buyCryptopinions(address)","f2430fe5":"Plumix()","f243c170":"buyTokens2(address)","f243c2a7":"tokenIssuer()","f244815e":"setBuyUnfreezePeriodSeconds(uint256)","f245036e":"setPools(address)","f2451a43":"addOwnerNotations(string)","f2455807":"setDesignatedReporter(address)","f24570e0":"approvedFactories()","f245b9e4":"DVIP(address)","f245d8c6":"NewHero(address)","f2460172":"_removeAssetFrom(address,uint256)","f246080a":"addvehicles(address,string,string,string,string,string,string)","f246317c":"SafeTimeLock()","f247016c":"isVoteOngoing()","f2477f7c":"BLOCKREWARD()","f24818cb":"unholdTime()","f2491377":"MAX_SINGLE_ISSUED_FROM_OTHER_CURRENCIES()","f249cf19":"get_all_challenges()","f24a0faa":"balance3()","f24a534e":"Oracle()","f24a6997":"maxGasRefund()","f24ae640":"countAccounts()","f24b5779":"removeTrustedIssuer(address,string)","f24b6782":"updateCrowdsaleTimeline(uint256,uint256)","f24d2532":"changeRegistrationStatus(address,bool)","f24e4a15":"Purge()","f24e7fd9":"activateKillSwitch()","f24edfd6":"setWhitelistedAddressPre(address[],bool)","f24f9abe":"grantBonusTokens(address,uint256)","f24ff92c":"withdrawal(uint256,address,uint256)","f2505211":"oracleItQuery(uint256,string,string,string)","f2513ee9":"cancelMarketsWhenPaused(uint256)","f2518983":"reinvestEther()","f251bc8c":"addPack(address[],uint16)","f251fc8c":"totalContributors()","f25214e4":"CRYPTODOL()","f2523e7a":"setUseRegistry(bool)","f2529e55":"Fidget(address,address,uint256,uint256,uint256,uint256)","f2530d1d":"claimableDividend()","f2534e47":"changeCertifier(address)","f253e6ae":"Daric()","f2540e39":"_unfollow(address,address)","f2556289":"endDutchAuction(uint256,uint256)","f255c21f":"Offer(address,string,uint256,uint256)","f2561a43":"voteSuicide(address)","f25633dd":"year1Unlock()","f256b130":"marketingFund()","f256b48e":"getBalanceOfDist(bytes32)","f257bf3b":"getAuthorityIndex(address)","f2582ef5":"UserStatus(string,address,uint256)","f258a4ea":"investorAccounts(uint256)","f2590315":"ClockAuction(address,address,uint256)","f25a7815":"MockSale(address,bool,uint256,uint256,uint256,uint256,uint256,uint256[])","f25acb35":"acceptDeal(bytes16)","f25aed54":"accountWithUpdatePermissions()","f25b278b":"fetchHash(uint256)","f25b3f99":"blocks(uint256)","f25c130a":"createOnRound(uint256)","f25c870a":"MyERC223(string,string,uint8,uint256)","f25dafd1":"drainAUC(uint256)","f25e34a9":"checkJuryVoted(address)","f25e7bb4":"getState(bytes20)","f25e9ed2":"getMaster(address)","f25eb5c1":"removeReverse()","f25ebdad":"isProxyManager(address)","f25ee28d":"MySecondToken()","f25efc49":"frozenRecords(uint256)","f25f4b56":"feeWallet()","f25fbe6f":"MetaGold()","f260ad05":"titanToken()","f260bd94":"validateRequestParams(address[3],address,uint256[12],uint256,bytes,uint256)","f261a8c0":"withdrawbymanager()","f2624067":"LogIncreaseCap(uint256)","f2624b5d":"whitelistCount()","f262521f":"PHASE_5_PRICE()","f262de8c":"add_staircase(uint16)","f2634485":"setGameRules(uint256,uint256,uint256,uint256)","f26377ed":"kittyGym()","f2642d0f":"decayedTransfer(address,uint256,address)","f2653966":"createReleaseAuction(uint256,uint256,uint256,uint256,uint256)","f26557d8":"AdeelaTestCoin()","f2659bd1":"GetCityLandNums()","f265d351":"rateSetter()","f2663a03":"TERSERAH()","f267035f":"BOARD_1()","f267215a":"_getProviderClosed(uint256)","f267ded5":"TokenStarted(address)","f268225c":"setBountyWalletAddress(address)","f26835d4":"tokensRemainingInHolding(address)","f26a058d":"U21Y()","f26b9834":"ENOM()","f26baecc":"_capLevelEth()","f26bb53d":"setCityPlan(address,uint256)","f26bbde8":"WHOMCrowdsale(address)","f26c159f":"freezeAccount(address)","f26c6aed":"newChannel(address,uint256)","f26cbe9a":"raiseDollarsDeducted(address,uint160,int160)","f26df083":"finalIntervalForTokenGen()","f26e5e85":"GetUpgradeCost(uint256,uint256)","f26e787e":"sendDelayedTransactions()","f26f336e":"MINING_RESERVE()","f26f4f61":"threshold(bytes32,address)","f26f6334":"setCraftingAddress(address)","f26fb705":"getPayoutRoundId()","f270bcda":"getClosingBlockNumber(uint256)","f2711812":"milion()","f27197ab":"getIsAvailable()","f272404d":"_approve(address,uint256,address)","f2729497":"numberOfFarmers()","f2729d8a":"getMinutes(address)","f272a60c":"addBagDelayed(uint256,uint256)","f272fe18":"Campaign(uint256,uint256,uint256,address)","f273515c":"Cyberminer(uint256,string,string)","f273fbbc":"perform_withdraw()","f27402e9":"bchRaised()","f274a828":"icoPhase3Start()","f274d00c":"LAWCoin(uint256,string,string,address)","f2759ee2":"transferDomainBackToSeller(string)","f2760d9c":"shareHoldersWallet()","f2761444":"MathUtil()","f2766051":"lastFinish()","f276e1c7":"voteResultPublish(address[],uint256[])","f276f36b":"getGameDataByIndex(uint256)","f276fdde":"onTaxTransfer(address,uint256)","f277010d":"percentFeeTimes100()","f27715b4":"updateMultiSig(address)","f2787d33":"feeAccountToken()","f278bd02":"newBooleanValue()","f279648b":"setConstraint(int256,bytes32,bool,bool)","f279fac5":"internaltransfer(address,address,uint256)","f27a4188":"icoSucceed()","f27a73ca":"frozenCell(address,uint256)","f27a8a99":"updateEmployeeInfo(uint256,string)","f27ac4d9":"decrease(address,uint256)","f27ae77d":"DGDIssued()","f27b6d8f":"Message(string,address,uint256)","f27b8084":"walletWebydo()","f27b9341":"getTeamPlayersNum()","f27c24ed":"startCloseSale()","f27c3bf6":"oneYear()","f27c85bc":"getQuickPromoPercent()","f27d0afe":"deleteArbitrator(address)","f27d3977":"NEOBleu()","f27db8c9":"getWinnerPayout()","f27e2ef6":"nextMineEvent()","f27e4b1e":"SwitchTokenTransactionsOn()","f27ee76c":"lastPot()","f27eede0":"getTotalBid(address,uint256)","f27f974b":"Margaret()","f2801fe7":"getUserInfo(address,address)","f28063ce":"getMemeHolders()","f28075af":"get_player_address(uint256)","f280efaf":"addressToBytes1(address)","f28109d1":"ConsentTemplate(string,string,uint256,string,string,string)","f281c386":"_percent(uint256,uint256,uint256)","f282f551":"setCrowdsaleTokenExtv1(address)","f2836e1c":"contributorStatement(uint256,string)","f28386bf":"Nexium()","f2853292":"ChangeOwner(address)","f2856a2a":"getTeamPlayers(uint256)","f285d98e":"unlockSecret()","f285f25c":"tokenMetadataHash(uint256)","f286c1c5":"addtoOwners(address,address)","f287900d":"LogContribution(address,address,uint256,uint256,uint256,uint256)","f288753d":"centsPerEth()","f2888dbb":"unstake(address)","f2891b3d":"assetRegistrant(bytes32)","f28a2f75":"_allocateUnspentRefTokens()","f28a7912":"quick2()","f28ac86a":"token(string,string,uint256)","f28adc4d":"Attack()","f28afb1e":"pushAngelInvestmentData(address,uint256)","f28b325d":"admin_set_shopStoreRegister(address)","f28b7a9c":"disbursementAmount()","f28b824e":"MAT_TOTAL_SUPPLY_LIMIT()","f28c0716":"approveDeal(bytes32)","f28ce253":"is_min_goal_reached()","f28d253d":"getDividents()","f28e59c9":"get_sale_owner(address)","f28ee00c":"permittedSender()","f28f0f6a":"bulkCreateLambo(uint256,address,uint64,uint256,uint256)","f29143ad":"Project_ChangeOwner(uint256,address)","f2928eea":"CaptainPreSell()","f2934817":"HalalPenny()","f293bab5":"numberofnews()","f294aa26":"EndoSHARD()","f295206f":"_unsafeSend(address,uint256)","f295587e":"giveITup()","f29617da":"registrationDeposit(address)","f2965a2c":"BurnupGameCore(address)","f296c1f2":"buyTokens(address,uint256,uint256,string)","f297109d":"RESERVED_TEAM_LOCKED_SIDE()","f2977c97":"approve(address,bytes32,bool)","f298083b":"setLottery(address)","f2980eb2":"getPRewardLength(address)","f29a72ff":"_addTokenToPartition(address,bytes32,uint256)","f29b2040":"export(address,bytes8,address,address,uint256,uint256,bytes)","f29c1bc2":"setIsChargingTokenTransferFee(bool)","f29c7870":"setRefineCost(uint256)","f29d2f28":"setTokenHolder(address)","f29f1fa2":"RecievedEth(address,uint256,uint256)","f29f4d0b":"lastBuyTime()","f29f7b1b":"remove_coin(uint256)","f29fdb8a":"createSeason(uint32,uint64,uint64,address[8],uint256[8],uint16[8],address[8])","f29fe77e":"testMintGuy(int256)","f2a0928d":"preICOduration()","f2a0a987":"GCNYToken()","f2a16d5a":"GetNonce(uint8)","f2a38dac":"setKYCAdmin(address,address)","f2a4a82e":"item()","f2a5630a":"BallotUp()","f2a5c79c":"getViewDatas()","f2a6517f":"updateTokenContractAddr(address)","f2a69417":"cancelFoundationTransfer()","f2a6e605":"evenDistThresh()","f2a724b1":"SnoqualmieCoin(uint256,string,string)","f2a75fe4":"empty()","f2a7e624":"approvedWallet()","f2a9a8c7":"allowance(bytes32,bytes32)","f2ab3e60":"incomeOf10k()","f2ab59d9":"contributionTarget_()","f2ab9384":"sumElements(uint256[])","f2abd01d":"initialBeating()","f2ac9427":"pricesToCommit(address[])","f2adc939":"removeBoundary(uint256)","f2af0e2f":"getProviderCurrentSupply(address)","f2af59bf":"fourthStage()","f2afe985":"LEBRON()","f2b0318e":"_getNibbleArray(bytes)","f2b05c15":"getTopicCount(address)","f2b0a55d":"getPlotData(uint256)","f2b175c0":"sendTokenTeam(address,uint256)","f2b1be45":"setAquariumCost(uint256)","f2b265ca":"playGame(uint256,string,string,string)","f2b26d8f":"nextEtherForSale()","f2b29993":"getMineral(uint256)","f2b2f40c":"allowPurchase(uint256)","f2b2ff1b":"platformReferral()","f2b3ddfa":"getCET4ByAddr(address)","f2b40209":"RATE3()","f2b445ad":"rowround(uint256,uint256)","f2b45ac1":"startCrowdSale()","f2b45ec5":"DonQuixoteToken()","f2b47d52":"geneScience()","f2b4c1b9":"isValidDataHash(bytes32,bytes)","f2b559ac":"printQuotation(int256)","f2b6e8b6":"emitSynthetixUpdated(address)","f2b7a54b":"destTokensAirdrop()","f2b841c0":"isPlayerIdle(address,uint256)","f2b85515":"addNewGame(address)","f2b904c3":"checkBetColumn(uint8,address,bytes32,bytes32)","f2b9541f":"createEthCommunityToken(string,uint8,string,uint8)","f2b9b40f":"enableRegistration()","f2b9f903":"_getParticipantRoles(address,address)","f2b9fdb8":"supply(address,uint256)","f2ba18ed":"calculateVotes()","f2ba31ea":"Marine()","f2ba478d":"EtherCashPay(address,address,address,uint256,uint256,uint256)","f2ba810e":"PRE_SALE_30_BONUS_MIN()","f2baaa07":"createBet(uint32,uint256)","f2bb5ce1":"maxMintProofOfStake()","f2bbca67":"checkVotingForChangeBuySellLimits()","f2bbdab4":"N2C()","f2bcd022":"withdrawalAddress()","f2bddf66":"redemptionInfo(address,uint64)","f2be600d":"getNumTanksType(uint256)","f2bea1fc":"MANAGER_SUPPLY()","f2bee03d":"set_sale_address(address)","f2bf7e7a":"TokenGAC(uint256,string,string)","f2bff63b":"ico_tokens()","f2c00979":"_emitTransferred(address,address,uint256,address)","f2c0cdbe":"dividendsPercent()","f2c0d168":"newOwner(address,address)","f2c1d74e":"FansToken()","f2c298be":"register(string)","f2c2dff2":"testFailSetNotRetractableNotOwner()","f2c340f2":"chfCentsPerToken()","f2c3e6d9":"requireTokenFuel()","f2c402b6":"todayReserved()","f2c44e77":"UpgradeEnabled(address)","f2c4c45d":"makeInvestment(address,uint256,address,address,uint256,uint256,address)","f2c51f9d":"DNAc()","f2c5925d":"setNext(bytes12)","f2c6bab0":"doCallNumber()","f2c70bda":"addInvestorIfNotExists(address)","f2c7d331":"receiveDividends(uint256)","f2c80435":"addToUnminted(uint256)","f2c816ae":"addAddressToBlacklist(address)","f2c8257e":"getcapname()","f2c8a87b":"SYC2ndEarlyPurchase()","f2c8b676":"FACTOR_8()","f2c8d247":"convertibleToken(uint16)","f2c9e0ed":"SkrumbleToken()","f2c9ecd8":"getNumber()","f2cba6a6":"REPUTATION_DECIMALS()","f2ccaed5":"getSaleContractEndBlock(address)","f2cd84d5":"tokenHoldersToClaim(address)","f2cedaa0":"destroyCoins(address,address,uint256)","f2cee589":"TIER1_PERCENT()","f2cf687a":"MAXPERWEI()","f2cfe267":"setEpochData(uint128[],uint64[],uint64[],uint256[])","f2d05f2b":"playerIndexToOwner(uint256)","f2d06540":"setBitpaintingStorage(address,address)","f2d15c48":"setLicenceTellerPrice(bytes2,uint256)","f2d213c8":"BONUSED_PURCHASES_LIMIT()","f2d2e1a7":"QSHU()","f2d2fa91":"privateSaleMaxContrAmount()","f2d386b9":"getjournalists()","f2d439d8":"PokerPayout()","f2d50151":"verifyRs1Hash(bytes,bytes32)","f2d578dc":"RHToken()","f2d57adf":"setClaimInterval(uint256)","f2d5866d":"ATTR_EXPLORABLE()","f2d5d56b":"pull(address,uint256)","f2d68ee0":"withdrawCollateralFromPool(address,uint256)","f2d6cd26":"CEO_Trader()","f2d6e0ab":"__process(bytes,address)","f2d701a7":"giveaway(uint256,uint256,uint256,bool,address)","f2d73dc6":"VoteZoneToken()","f2d7f637":"closePosition(bytes32,uint256,address,address,bool,bytes)","f2d805d5":"firstStageRaisedInWei()","f2d906cc":"addressFounders2()","f2d93fb0":"setRushTimeFloorCount(uint256)","f2d9f46e":"flipPayingDoublrs(bool)","f2da1f0a":"imageAddress(address)","f2da67db":"setMany(uint256,int256,uint256,bytes20,address,bytes)","f2da877d":"dataOfSell(address,uint256)","f2dabd26":"multipleMint(address[],uint256[])","f2dadd3d":"FundRequestPrivateSeed(uint256,address)","f2db5493":"VGS()","f2dbe0f8":"options(bytes32,address,address)","f2dc8878":"setTokenSaleAmount(address,uint256)","f2dd4be8":"publish(string,bytes32,uint256)","f2dd6585":"garanteSystemDepositInAllFunds()","f2ddc772":"confirm(bytes)","f2dddd95":"BLDAToken(uint256,string,uint8,string)","f2de12fc":"getFxUSDAmount(string,uint256)","f2dfa136":"STATUS_DEAL_WAIT_CONFIRMATION()","f2dfd7f5":"cancelWarranty(string,string,address)","f2e03ad0":"openProvider(address,bool,string,string,uint256,string,uint8,bool,address)","f2e09c7a":"activatePoint(uint32,int256)","f2e0d636":"registerSponsor(uint32,int256,bool,uint32)","f2e1192a":"wolkSale()","f2e12a39":"setRole(uint8,address)","f2e1b1cc":"getWinSlot(uint256)","f2e1be50":"GDPOracle()","f2e22ae0":"messageBoard(string)","f2e253ec":"FUTURE_ME_TOKENS()","f2e27b33":"signedTransferHash(address,address,address,uint256,uint256,uint256)","f2e28e16":"BrianexToken()","f2e2e5ea":"trustedAddressInLUT(uint256)","f2e34909":"PRICE_CUTOFF()","f2e4ff30":"isValidAuction(uint256)","f2e552a5":"verifyUpdateTransaction(bytes32,uint256,address,uint256,address,uint256)","f2e55ac1":"getDestinationByIndex(uint256)","f2e62772":"admin_address()","f2e650ff":"PerpetualTestCoin()","f2e6e170":"addressesImported(address,uint256,uint256)","f2e6fecd":"Ethernational()","f2e7514c":"buyByName(string)","f2e79ab7":"ETHealth()","f2e84f24":"_byrne(uint256)","f2e998df":"ownerRevealOverride(uint256)","f2ea83e6":"executeRecursive(address,address,bytes32,int256)","f2eae773":"getLockedWalletAmount(address)","f2eaee02":"applyWait()","f2eb32fb":"addOffChainContribution(address,uint256,uint256,string)","f2eb3e34":"init1()","f2eb5dd3":"tokenUSDRate()","f2ebde57":"tryExec(address,bytes)","f2ec602c":"feeWithdrawn()","f2ec6264":"ownerAddressLUT(uint256)","f2ecebea":"ratePreIco()","f2ed2148":"newGateway()","f2edb7c7":"purchaseWonder(uint256)","f2ee8be9":"setSubmissionOpen(uint256)","f2eea5c1":"setupAccreditedAddress(address,uint256)","f2eec570":"transferredAmount(address)","f2eec69b":"CTOAddress()","f2f03877":"commit(uint256,bytes32)","f2f0967b":"setLifToken(address)","f2f18af2":"Withdraws(address,uint256)","f2f254c7":"getLatestMinorTree(bytes32,uint32)","f2f2a043":"setUserCommissionRate(uint256)","f2f3384e":"_getGen0Address(uint256)","f2f3a1d2":"Erc20Token(string,string,uint8,uint256)","f2f3c773":"vestInterval()","f2f48e20":"Update_START_PRESALE_TIMESTAMP(uint256)","f2f4eb26":"core()","f2f56ffe":"getCommit(uint256,address)","f2f62ac7":"TOSPrivateIncentiveContract()","f2f65960":"setGracePeriod(uint256)","f2f6861b":"WinbitTest()","f2f6ccda":"getBalanceFromOwner()","f2f6ff15":"COLOR_BLACK()","f2f70594":"disableMintForever()","f2f8569f":"buyAndTransfer(address,address,bytes)","f2f85fce":"GRAND()","f2f921e6":"snapshotDailyGooDepositFunding()","f2f977a7":"getBetsByCategory(string)","f2fa8f69":"TokenPolicy(address)","f2fc6deb":"weiToTokensBono(uint256)","f2fc9100":"init(address,string,string,uint8,uint256,bool)","f2fd2a49":"galleryThree()","f2fdddf4":"setEncryptContract(address)","f2fde38b":"transferOwnership(address)","f2fdfe34":"createSpecies(uint256,string,address)","f2fe1a1d":"geSoftwareVersionRecordsLength()","f2fec913":"collectMKR(uint256)","f2ff0912":"getHolderAtIndex(uint256)","f2ffb4fc":"stopLive()","f30000f9":"NewCloneToken(address)","f300cf1d":"addUserToMeta(address,uint256)","f301ac65":"hashBid(address,uint256,address,address,bytes32,uint256,uint256)","f3022de8":"setNewContractAddress(address)","f3025556":"newDeveloper(address,uint64,bool)","f3025f10":"dataOfBuy(address)","f302be42":"startTokenRaffle(uint256,address,uint256)","f3036c24":"UTORN()","f30398ef":"Wishcoin()","f30416ca":"setSaleAuctionContractAddress(address,address)","f30431b5":"addAdminAccount(uint256,address)","f3052d26":"getCategory(uint256)","f30562b6":"updateRecord(string,string,string)","f3072020":"partner_1_name()","f3074b58":"withdrawSDTfromcontract()","f307946d":"hardCapMainSale()","f3083c44":"GetMyEarnings()","f308846f":"registeredCallbacks(address)","f3095511":"GetTokenPriceCents()","f309782b":"LescovexAddr()","f309caca":"icoEndOfStageB()","f309e3c5":"allocateUnsold()","f30a4a70":"getSoldToken()","f30a7166":"multiTransferFrom(address,address[],address[],uint256[])","f30ba854":"tokensPerEther_numerator()","f30bb8af":"GoalReached()","f30c0ee6":"getRank05()","f30d3ad4":"crowdSaleAmountRaised()","f30d4d3f":"signedTransferFromCheck(address,address,address,uint256,uint256,uint256,bytes,address)","f30df155":"calculateBorrowAmountWithFee(uint256)","f30f8508":"setReservedTokensList(address,uint256,uint256)","f30faff6":"SetExtra(uint256)","f31011ac":"ANTS_TO_COLLECT_1ANTHILL()","f310348e":"_removeFrom(address,uint256)","f3106780":"DoDividend(uint256,uint256,uint256)","f3107c48":"nestedFirstAnyToAny2(uint256)","f310a19d":"getPlayerVaultsHelper(uint256,uint256)","f31174ee":"inactivityReleasePeriod()","f3125a1f":"deposit(address,uint256,bytes,uint256)","f31294a4":"announcementURI()","f3130ba5":"setTokensSoldInPresale(uint256)","f3147b00":"totalICOAmount()","f314bf46":"setReleaseDb(address)","f314e2c0":"CoinExchangeToken(uint256,string,uint8,string)","f314e976":"parcelGzeWithoutBonus()","f315e81d":"getStage1End()","f31604c7":"setData()","f3161022":"convertToEther(uint256)","f3164eb6":"transferAndFrozen(address,uint256)","f31660e9":"getOrganisationsSize()","f3169506":"readPurchaseAtIndex(uint256)","f316ea78":"buyOrderTotal()","f317b85b":"ownerAddressNumberMap(address)","f3181001":"founderAndTeamSent()","f3182d6c":"setFeeRate(address,uint256,uint256)","f31887e6":"tokenTransferByAdmin(address,uint256)","f318c75f":"dvipAddress()","f318cc4a":"invite(uint256,uint256,uint256)","f3191443":"toggleMigrationStatus()","f3199e98":"setMinWeiForDInit(uint256)","f319a899":"NameProvider(address)","f31a044d":"test_bytes(bytes,bytes)","f31a18a5":"endICOStage7()","f31b4e89":"updateEpisode(uint256,string,uint256)","f31bac4d":"SwitchLoanOwner(address,uint256)","f31bebaf":"BugBountyOneBreaker()","f31df3f8":"AddItem(uint32,uint16,uint256,uint16,uint16,string)","f31e3e84":"AML()","f31e731e":"attack(address,bytes32,uint256)","f31ed9e6":"DescartesToken()","f31fe982":"endGround(uint256)","f3200a1c":"change_symbol(string)","f3201424":"register(address,address,address)","f3203dc0":"MultisigsChanged(address,address)","f3205c93":"isUserBanned()","f320d963":"assertEq(string,string)","f32106f0":"TemplateToken(uint256,string,uint8,string)","f32113d5":"setBgxWalletAddress(address)","f3214652":"NHSToken()","f321653a":"setCommunityBallotStatus(bool)","f3217345":"getShowText()","f32188a5":"reinvest(address,bool)","f3221c7f":"hasHash(address,bytes32)","f322770c":"LogWhitelistAdd(address,uint256,address)","f3227dc4":"cancelDeal(string)","f322a1cf":"BlueChainToken()","f322c755":"daoManager()","f32306d2":"registerNameXID(string,uint256)","f3236460":"closeUp()","f323a061":"lottoQueue()","f3269716":"year()","f326be05":"Centaure()","f3278191":"BuyFST(address,uint256,uint256,uint256)","f32784cd":"getGratitudeOf(address,uint256)","f327b7fc":"isNotZero(address,string)","f3283fba":"setMultisig(address)","f32a547c":"getBuy(uint256)","f32a72eb":"airDropMembers(address)","f32a9f77":"ReceiveEther(address,uint256)","f32b85e8":"timeScale()","f32d61eb":"setDevTokensPercent(uint256)","f32e8038":"setPercentIncrease(uint256,uint256,uint256)","f32eca11":"revokeAccessDeposit(address)","f32efd3c":"recoverUser(address,address,uint256,uint8,bytes32,bytes32)","f32f6a23":"olympus()","f32fc856":"Wanchain()","f32fe995":"left96(uint256)","f3302a4d":"ChangeTransferStatus(bool)","f3305ae2":"setName(bytes32,address)","f331020c":"GAMEPAUSED()","f3310628":"allocateTokensInternal(address)","f33146af":"test_twoTrueAsserts()","f3316ef5":"countStudentRequest()","f3318fed":"ThrowsInConstructor(bool)","f3319243":"decimalFraction(uint256,uint256)","f331de4c":"addShare(address,uint256,uint256,uint256)","f332511f":"getTxcode(uint256)","f33261ac":"stageCount()","f33280b2":"etherLimit()","f332a245":"unbanToken(address)","f3332d1c":"burnTokensExp(uint256,uint256)","f3333e7f":"etherProceedsAccount()","f33376c6":"createNext(address,string)","f333fe08":"getCertificate(bytes32)","f3358ac4":"getNum(uint256)","f33670aa":"sharesAddress()","f336bc7e":"maxDecreasePct()","f336e80a":"setMaximumVotingWindow(uint256)","f3372898":"dtrade(address,uint8,uint8,uint256[],address[],bytes32[])","f337616c":"PETER()","f337a0bb":"getLLV_edit_4()","f337c2e1":"calculateNextEtherValue(uint256)","f33801e0":"setCoachPrice(uint256,uint256)","f3382694":"isCamp()","f3388e75":"timelockController()","f338c984":"initialBountyAmount()","f3391998":"hasHash(uint256)","f339292f":"mintingStopped()","f3396905":"lockedNowBalanceOf(address)","f339c504":"lockBalance(uint256)","f33aa95d":"setIsTransferEnabled(bool)","f33ae7fd":"auctionOf(uint256)","f33b1ea5":"rewardUsers(uint256,address[],uint256[])","f33d0f3a":"requiredBet()","f33d9a52":"get_data_benefited(address,string)","f33dc1fa":"founderTokensAllocated()","f33f8f26":"setpubprize(uint256)","f33f9522":"readCoin(uint256)","f33ffc16":"addSpecialBonusConditions(address,uint256,uint256)","f34080b3":"MIN_INVESTMENT_ICO_PHASE_TWO_POUNDS()","f3408110":"transferWithFee(address,address,uint256)","f340fa01":"deposit(address)","f3412942":"accountLevelsAddr()","f34186c8":"endEthGet()","f341cae8":"setEmergencyAccount(bytes32,bytes32)","f341d3ba":"bandwidthFactor()","f3433ff2":"callbackTime()","f3436873":"totalAxiesRewarded()","f3436c85":"TKXToken()","f343ccbd":"CrystalSkull()","f3444701":"newTankType()","f344f4fa":"HARDCAPPED_SUPPLY()","f345d06b":"getTileHp(uint16,uint8)","f3463272":"signupFee()","f3465181":"preSeedAllocation()","f3466b47":"setTotalCollected(uint256)","f346fd74":"TraceChain()","f34839d1":"C50()","f3492915":"confirmSpendLimit(uint256)","f34969d1":"minimumFundingCHF()","f349e3e3":"own(address)","f34a5e85":"MercuryToken()","f34b95b3":"register(string,address,bytes32)","f34c7010":"commitSecurity(address,uint256,uint256)","f34d22d0":"getQuickPromoRemainingBlocks()","f34df94e":"Version(string,address,address,bool)","f34e2699":"isPresaleFinalized()","f34e3723":"release(string)","f34e4c60":"currNumOfBattleCards()","f34ed4e6":"RanDAOPlus(address)","f34f43f6":"getRepTokenAddress()","f34f5f45":"Election(string)","f3512ce0":"multiLock(address[])","f351d166":"_depositEscrow(uint256)","f3522656":"getRejections(uint256)","f353108b":"fechVoteResultForCandidate(address,uint256)","f353ae48":"goodluck()","f354040c":"SpreadToken()","f3541901":"execute(address,bytes,uint256,uint256)","f3548cd3":"getBagCount()","f354e2c3":"_getSeason()","f355b92d":"BuyTokens(address)","f356d6cc":"getPI_edit_18()","f356e8de":"placeNewSurvey(bytes32,uint256,uint32,uint256)","f3574a20":"TokenTransacted(address,address,bytes32,address,uint256,address)","f3576220":"withdrawls()","f3582373":"getTokenAddressesLength()","f3586fb9":"_isAuthorized(address,uint256)","f35898bd":"PreviousPayout()","f358b3de":"REKTMultiSigWallet()","f359671c":"withdrawWithReference(address,uint256,string)","f359b03c":"recalcBonuses()","f359d66d":"driverCount()","f35a8796":"removeHouseHold(uint256)","f35b3b51":"Bullioncoin()","f35b6068":"selectWinningNumber()","f35ba5d3":"acceptCeoOwnership()","f35c172e":"getSecondHexByte(bytes1)","f35d606c":"ETFToken(address[],uint256[],uint256)","f35dad40":"totalRedeemed()","f35e3945":"SRHCoin(uint256,string,string)","f35e4a6e":"setStartBlock(uint256)","f360234c":"compare(uint256,uint256)","f3604e54":"advisorsKey()","f36089ec":"getConversionRate()","f3608b57":"_getEthToUsdPrice(uint256)","f360c183":"setNonce(uint256)","f360e22f":"celebrityCount()","f3611719":"confirmFriendship(string)","f3616a90":"UpdateHOLDer(address,address)","f362b9af":"StartNewMiner()","f362d78f":"testBitNotEqualSuccess()","f3634033":"token_b_amount()","f363441f":"getCreatorDotBalance()","f363449f":"reservationSupply()","f3635a02":"vc2Wallet4Pct()","f3637d51":"setPayLock(bool)","f3647597":"setGrantVestedEDEXContract(address)","f364e7f4":"_investAsEarlybird(address,uint256)","f36631e7":"createHero(uint16,address)","f3667517":"getMinter()","f3669ec9":"hopefuls(uint256)","f36706cb":"SENSToken(address,address,uint256,uint256)","f3678cd3":"updateOffChainTokens(uint256)","f36a1fd9":"_allowBuyDirect()","f36a4bd3":"ReceivingContractTokenFallbackFailed(address,address,uint256)","f36b135d":"PRICE_EXPONENT()","f36c0810":"RANDOM_BYTES_COUNT()","f36c83f0":"getPuppy(uint256)","f36d1b8e":"SignStopDividend()","f36d1e4e":"setRewards(uint256,uint256,uint256)","f36d29e7":"triggerTansferEvent(address,address,uint256)","f36db900":"gameStarterDividendPercentage()","f36e20db":"getStage1Start()","f36e8dea":"MedicalCannabis()","f36f235d":"getLedger()","f36fd108":"editTitle(uint256,string)","f370031e":"BetOnATeam(address,uint256,uint256)","f3701da2":"build(address)","f3702b82":"setBonusPattern(uint256[],uint256[])","f3703a69":"LogGrantCreated(bytes32,uint256)","f3706bb7":"killTransaction(bytes32,bytes32,string,string)","f370ff51":"LogTokenPurchase(address,address,uint256,uint256)","f371475a":"initialiGnSupply()","f371ec49":"pausedB()","f3737ffd":"setDiscount(uint256[],uint256[])","f3746947":"giveBirth(uint256,uint256[2],uint256[2])","f3746ff7":"advisorReserve()","f375bcaa":"failedTimestampSeconds()","f37633f9":"Internet()","f376daa8":"MMX(uint256,string,string)","f3773466":"endIcoRoundManually()","f377f5b7":"setAirdropTotalSupply(uint256)","f3781697":"HubiiCrowdsale(address,uint256,uint256)","f3784dec":"withdrawFailed(address)","f378ff76":"random(uint32,uint32)","f3791477":"OLD_TOKEN()","f3794914":"mintParticularPart(uint8[4],address)","f37a7d4d":"boosters()","f37a9c1c":"ALLOW_BETA()","f37b0427":"CryptrustToken()","f37b437b":"scheduleCall(address,bytes,uint256,uint256,uint8,uint256,uint256)","f37b74ca":"authorizePayment(string,bytes32,address,address,uint256,uint256)","f37b916a":"tokenCreateUtcTimeInSec()","f37bdaac":"transferSig(bytes32,uint256,address)","f37bf1be":"getParticipateName(uint256)","f37cc477":"calcOutput(uint256,uint256)","f37d11cc":"canTransferFrom(address,address,uint256)","f37e592d":"shopStoreId(address)","f37e741e":"projectWeight(uint256)","f37f8345":"getTokenRates(address,address[])","f37fda1b":"setUser(address,address,bool)","f37fdaf5":"calculateProfitPercent(uint256)","f37ff01b":"getLLV_edit_13()","f380729d":"claimB2()","f3813163":"proxyTakeEtherBack(address)","f3817b23":"getWizzPandaCountOf(uint256)","f381a3e2":"FuelingToDate(uint256)","f381f2a5":"minimumCap()","f38323bb":"bountyDurationInBlocks()","f383c7b3":"setCrowdsaleStart(uint256)","f383d6b9":"OwnerValidatorImpl()","f384632c":"updateContestTeam(uint32,uint32,uint8[],uint32[])","f384764c":"oraclize_query(string,bytes[2])","f3850fda":"receiveTokens(uint256,uint256)","f385d890":"cnt_registrations()","f3868555":"orderEthOf(address)","f386b8fd":"TestToken2()","f3873e7b":"PublicBattle()","f38780e2":"winnerPaid()","f388b046":"currentTask()","f388ef80":"updateXPLPerEther(uint256)","f389057f":"_setMouthValue5(uint256)","f3898a97":"convert(address[],uint256,uint256)","f38a6163":"IncMainSupply(uint256)","f38a8262":"grantPermission(address,bytes32)","f38afbf7":"setModuleEnable(string,uint256)","f38b0585":"withdrawAdvisorFunds()","f38b0600":"fireEventLog3()","f38b2ef0":"testTheFirstMultiplier()","f38d5cb9":"_getHash(address,address,address,address)","f38db3d8":"setRunningInternal(bool)","f38e5ca2":"getBlobStoreFromFullBlobId(bytes32)","f38fb65b":"revertCall()","f3905b82":"ibaMultisig()","f390cae4":"ADDR_TKG_TECH_FUND()","f390e4b4":"getResidentNumber()","f3913e69":"tokenTransferFrom(address,address,address,uint256)","f391f074":"accountIdForAddress(address,address)","f3922cde":"addExceptAddress(address)","f39259d0":"_batch2_icosaleStartTimestamp()","f393b3b0":"_DataRegistered(bytes32)","f393f022":"icoStartP5()","f3942753":"addTxToCustomerRegistry(address,bytes32,uint256,uint256)","f3945ca0":"addEndorsement(bytes32,bytes32)","f39460c4":"setCheckMinContribution(bool)","f3956a71":"isMEH()","f396282d":"signupVerify(bytes32,bytes32)","f396cd66":"weiAmountShare()","f396e81b":"SALES_DURATION()","f397884b":"preIcoOpeningTime()","f3983e44":"createAmountFromTmedForAddress(uint256,address,address)","f398dc28":"aprovarUsuario(address,uint256)","f398faaa":"getRank09()","f3993d11":"batchTransferFrom(address,address,uint256[])","f39981e1":"burnStake(address)","f3998918":"getPreSaleTokenAmount(uint256)","f39992e4":"Blackwood()","f399c7e6":"startGame(address,uint256)","f39afaba":"GCV()","f39b1e74":"CQMVValueCirculateAssets()","f39b5b9b":"ethToTokenSwapInput(uint256,uint256)","f39b7fb1":"get_dati_articolo(bytes,bytes,bytes10)","f39bfb52":"giveBountyTokens(address,uint256)","f39c2197":"numberOfPartners()","f39cce01":"convertLotIdsByAddress(address)","f39d359b":"initDemoc(string)","f39d9f19":"CSES1()","f39e6e1e":"OwnerAddition(address)","f39e9fa6":"setERC223Activated(bool)","f39ec1f7":"lookup(bytes32)","f39f421e":"FIBKAD()","f3a04af4":"PUBLIC_TOKENS()","f3a133a9":"setStartAt(uint256)","f3a16c3e":"tokenCreationCapWithOutBonus()","f3a1b4b2":"setCrowdsaleStartandDuration(uint256,uint256)","f3a1d297":"addToken(address,string,string,uint8,string)","f3a1f828":"EventRandomLedgerRequested(address,uint256,uint256,uint8,address)","f3a247cb":"ZooToken(uint256)","f3a27963":"unpauseMints()","f3a3abc6":"setWhitelistTransfer(address,address,bool)","f3a3bef4":"innerScope()","f3a3de38":"EMACCrowdsale(uint256,uint256,uint256,address)","f3a44fe1":"withdrawForWorkshop()","f3a49f90":"sendOwner()","f3a504f2":"funded()","f3a53cd8":"ICOWIZARD(string,string,uint8,uint256)","f3a5626b":"addPurchased(bytes32,uint256)","f3a5644d":"crowdsaleEndedTime()","f3a5950e":"testHighestTranch()","f3a5f262":"setMemberTier(address,uint256)","f3a60cb4":"unLockAddrOwner(address)","f3a670cd":"Redeemed(address,uint256,uint256)","f3a67ad2":"subAccountBalance(address,uint256)","f3a8041f":"Crowdsale(address,uint256,uint256,uint256,uint256,uint256)","f3a87492":"AntiFakeLabelToken(address,uint256)","f3a8bcaa":"_logGameGiftInfo(address)","f3a9bf03":"verifyImage(address,string)","f3aa4420":"_grandTournamentBooty(uint256,uint256,uint256,uint256)","f3aa67ad":"buyTokensOraclePayIn(address,uint256)","f3ab7ea9":"seeker()","f3ac2732":"confirmed(uint256)","f3ac3df5":"prizeFund()","f3ac9ee4":"parseOpenTx(address[11],uint256[10],uint32[4],bool,bytes)","f3acc06b":"retrait_1()","f3acc477":"addTotalEtherValue()","f3ad0dd8":"multiTransferToken(address[],uint256[])","f3adcc46":"getMinerHashRateCurrentHalving()","f3ae2415":"isManager(address)","f3ae5acd":"LastExtractTime()","f3aee9f9":"tokensUnlockPeriod()","f3afe129":"hourPotExpiration()","f3aff181":"collectBagHolderFund(uint256)","f3b07bb1":"maxEthPerTransaction()","f3b15ffd":"test_insert_containsId()","f3b16265":"onDraw()","f3b303cd":"AdvanceToken()","f3b35100":"voteOf(address)","f3b3a9fa":"maxReserve()","f3b423d5":"updateReloadAmount(uint256)","f3b42c40":"isOnSaleAny3(uint256,uint256,uint256)","f3b4735e":"lotteryAddresses(uint256)","f3b4eccb":"ChallengeFund()","f3b50c04":"rescind()","f3b55007":"TDx(uint256,string,uint8,string)","f3b5678f":"ETHER_MAX_CONTRIB()","f3b585cc":"nSteps()","f3b5a5af":"bonusForEveryone()","f3b600ec":"_allocateTokens(address,uint256,uint256)","f3b6a748":"unpauseFrom(uint256)","f3b75ee3":"totalCommunityFundMinted()","f3b77f30":"close(bytes,bytes)","f3b849d6":"_allocateReferralTokens(address,uint256)","f3b8b2a9":"weiBuysHowManySeconds(uint256)","f3b978c1":"checkProof(bytes32[],bytes32[])","f3ba138e":"MineLevel(uint256)","f3baa092":"RemoveRequestEvent(address,address)","f3bb9741":"commitmentCampaign(uint256,bytes32)","f3bbc84c":"tierNum()","f3bd27a4":"secondStageMinting()","f3bda50a":"getSetNewTerrainPrice(uint256,uint256,bytes32)","f3bdc228":"destroyBlackFunds(address)","f3bdea04":"burnICACOIN(uint256)","f3be07eb":"getDefaultTranches(address)","f3be1e35":"VIVAToken(uint256)","f3becb59":"C(address)","f3bf6b73":"proposalChecked(address,uint256,uint256)","f3bf78e7":"setBAAAU(bytes32,address,address,address,uint256)","f3bf93a0":"forceReleaseAdmin(bytes32)","f3bfddb7":"getById(string)","f3bfe75e":"BeatTokenIcoFinalized()","f3c0efe9":"tokenToTokenTransferOutput(uint256,uint256,uint256,uint256,address,address)","f3c156f3":"purchaseDigitalArtSellingItem(uint256)","f3c15f49":"getLiability()","f3c16e54":"Resolve(bytes32)","f3c1c7c0":"LogCoinsEmited(address,uint256)","f3c20de0":"tokens(uint16)","f3c274a6":"isPut()","f3c37bd5":"Verifier(address,uint256,uint8)","f3c505c2":"updateInventories(uint256,uint256,uint256,uint16)","f3c50ce0":"CobeFriendCore()","f3c51c84":"_EnvoisTokens(uint256,uint256)","f3c537c5":"fint8(int8)","f3c64850":"amendedEarlyPurchaseIndexes(uint256)","f3c6a223":"Bifrost1Token()","f3c74496":"logWorkerStatement(string)","f3c78091":"AcceptingDepositsChanged(bool)","f3c7d275":"prenup(string,string,string,string,string,address,address)","f3c7e538":"set_successful_verifier(address)","f3c85eba":"compound(uint256,uint256,uint256)","f3c8f3ef":"startListing()","f3c8ffaa":"endPreICOStage()","f3c957f2":"haltCommitPeriod(address,bytes32,bytes32)","f3c95c60":"isValidUser(address)","f3c9a5cc":"CrowdsaleController(uint256,address,address,bytes32)","f3ca29b1":"ownerDailyWithdrawal()","f3ca2b54":"test_twoValidEqString()","f3ca5679":"Fund(address,string,address,uint256,uint256,address,address,address,address,address[],address[])","f3ca7425":"exercisePriceOf(uint256)","f3ca824c":"setStartCloseSale(uint256)","f3caad03":"isCitizen(address)","f3cb1805":"bidOnBreedingAuction(uint40,uint40)","f3cb8c31":"addEmployee(address)","f3cbc040":"checkVerify(bytes32,uint256,uint256,uint256)","f3cbe7b5":"exchangeableTokensFromStock()","f3cc2436":"maxPoolTotal()","f3cc6860":"setHash(bytes32,uint256,bytes32)","f3cca49a":"restoreUnsoldTokens(address)","f3cca5b4":"crowdSaleSoldAmount()","f3cca85a":"getInputAddress()","f3ccaac0":"image()","f3ccb401":"DistributeAirdropMultiple(address[],uint256)","f3ccc2f2":"buscarDocumentoPorQM(string)","f3cd1c28":"setTransfersAllowed(bool)","f3cd543f":"sendBoughtTokens(address,uint256)","f3ce2bc6":"_updateSaleAvgHistory(uint256,uint256)","f3ce40eb":"setSchellingRoundSupply(uint256)","f3ce782e":"LongBought(address[2],uint256[5],uint256)","f3cee129":"getOwnerServer()","f3cee64d":"setCmd(uint256)","f3d2f17b":"getData_22()","f3d2f824":"setXQU(string)","f3d305b4":"getBoostedProposalsCount(address)","f3d3402a":"changeBountyData(uint256,string)","f3d38a7b":"setBTBAddress(string)","f3d3d448":"setControllerAddress(address)","f3d3fce7":"settleLend(bytes,bytes,address,uint256,bytes,bytes,bytes,bytes)","f3d448d2":"countryInfo(uint256)","f3d47d1b":"transferAllFrom(address,uint256[])","f3d490db":"transferByPartition(bytes32,address,uint256,bytes)","f3d4b942":"emergencyFreeze()","f3d544d2":"FRTToken(uint256,string,string)","f3d6b54e":"setAirdropPrize(uint256,uint256)","f3d6cb29":"setLLV_edit_34(string)","f3d791ea":"submitTrade(address,uint256,address,bytes)","f3d79244":"frozenProfitDate(address)","f3d7bf1d":"privateStageTokensSold()","f3d7c6f7":"claimPrivateTokens(address[],uint256[])","f3d7e464":"EARLY_CONTRIBUTOR_VESTING_PERIOD()","f3d838a0":"Copyright()","f3d89c49":"setAutoCreationFee(uint256)","f3d91708":"isEligibleForUpgrade(address)","f3d97a25":"cancelTrade(address,address,uint256,uint256,uint256)","f3d9bc65":"sendBountyTokens(address,uint256)","f3d9eeec":"CourseChanged(uint256,uint256)","f3db09b8":"invoice(bytes32,address,address,uint256,uint256,uint256,uint64,uint64)","f3db4f2b":"retrievePieceFromEscrow(uint256)","f3dbaf0d":"removeVestingAdmin(address)","f3dd3d8a":"newCurrency(string,string,uint8)","f3ddb946":"bets_total()","f3de56de":"createNewSociety(string)","f3df0bbe":"startNewBallot(bytes32,bool,bytes32[])","f3df29b6":"periodITO_endTime()","f3e1cb63":"rsVerifyPublic(bytes32,uint256[2],uint256[],uint256[],uint256[],uint256[])","f3e1efbf":"validation_inviter(address)","f3e238d2":"StrongKek()","f3e2aa83":"requestReclaimEther()","f3e3c629":"testBalanceOfStartsAtZero()","f3e41a99":"addRound()","f3e4877c":"distribution(address[],uint256)","f3e4cac4":"_getTokenPrice()","f3e5c15e":"screenstate()","f3e62640":"buyToken(uint256,address,uint256)","f3e664c9":"setSaasApiProfitAddress(address)","f3e68264":"getSignerOfBalanceHash(address,uint8,uint256,bytes)","f3e71756":"checkTickets()","f3e84c4c":"FundingClosed()","f3e84cf3":"createNewRevision(bytes32,bytes)","f3e94596":"LogReferral(address,address,uint256)","f3ea1241":"releaseFirst()","f3ea4c68":"set_symbol(string)","f3eac094":"defaultAuctionPrice()","f3eb2445":"SimpleToken(string,string,uint256,address)","f3ec3f4a":"whitelistPreSaleAddressMany(address[],bool)","f3ecda21":"ITSM()","f3ece9f4":"addBlockList(address)","f3ed064a":"bonus01End()","f3edf112":"changeHelper(address)","f3ee6305":"removeCertificationDocument(address,bytes32)","f3eeb84b":"lastBlock_f9Hash_uint256()","f3eef981":"_init(uint40,uint40)","f3f10da7":"Balance(string,uint256,address)","f3f11048":"ethAddressPublicKey(bytes32,int256,bytes32,int256)","f3f16a15":"voted(address,bool)","f3f18615":"verifyTrustedSender(uint256,address,uint256,uint8,bytes32,bytes32)","f3f1b5a7":"CongressOwned()","f3f1d909":"redeemCoin(uint256,address,bool)","f3f1e4ea":"MenglaToken(address)","f3f2e656":"setAttributeSigned(address,uint8,bytes32,bytes32,string,bytes,uint256)","f3f2f0bc":"beneficiary2()","f3f31853":"getPayTable(uint16)","f3f43703":"pendingWithdrawals(address)","f3f458f8":"cycleCount_()","f3f480d9":"challengePeriod()","f3f4aef3":"getUserIDAndInviterEarnings()","f3f52865":"getPersonalStakeAmounts(address,address)","f3f6f0d7":"lastIndex()","f3f70674":"oracle_call(uint256)","f3f7650d":"fetchOrdersForMerchant(address)","f3f79a97":"setDebtIncreasingFactor(uint256)","f3f9240b":"investAs(address)","f3f969a0":"setRegisteredAuthority(string,address,bool)","f3f9c004":"reffalPool()","f3fa1e7b":"bulkApproveTransfers(uint256[])","f3fa2c37":"getUpdateHash(uint256,uint256,uint256,uint256)","f3fac412":"_calcEndTime(uint256)","f3fb9a02":"setInfo(uint256,uint256)","f3fbabb5":"setDedicatedProxy(address)","f3fbfc60":"SFTSEV()","f3fc536d":"revokeConfirmation(bytes32)","f3fc7fb2":"Ordient()","f3fce3b5":"setC4FContractProviderCompleted(address,bool)","f3fd826f":"transferFromTokens(address,address,address[],uint256[])","f3fde261":"onTransition(bytes32)","f3fe12c9":"claim(string)","f3fe5bc2":"totalWitdrowedToken()","f3fef3a3":"withdraw(address,uint256)","f3ff10bf":"UseQuantity(int32)","f4009d99":"changeMainStartTime(uint256)","f400a3d7":"finishDate()","f400d37b":"yesVoteSum()","f400fde4":"amount1()","f4010db0":"deleteTile(uint16)","f4016ac3":"setInitialState(address)","f4016b17":"destroyBPESOToken(address,uint256)","f4025568":"approveCertificate(uint256)","f4029e92":"getMonsterReturn(uint64)","f40314f4":"tokenCurrentStage()","f4044697":"xrateProviders()","f404d1e2":"transferAndCall(address,uint256,bytes,string)","f404df8e":"_getExpectedRate(address,address,uint256)","f405311b":"Made(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)","f405a275":"EventJoinedBattle(address,uint256)","f4064471":"messagePreSignedHashing(bytes8,address,address,uint256,uint256,uint256,uint8)","f4071928":"mintAuditApproval(address,address,uint256)","f407c81d":"tokenNoByAddress(address)","f408ebe9":"dev_reset()","f409a609":"internalMintToken(uint256)","f409ab66":"getDepositedCount()","f409e633":"SetENGDevAddress(address,address)","f40a049d":"triple(uint256)","f40a9112":"whaleIncreaseLimit()","f40c0843":"subscribe(address,uint8,bytes32)","f40d71f1":"releaseTokens(address,uint256)","f40d8d8f":"updateAllowance()","f40e0b6e":"coinsToSell()","f40e28f2":"createGen0Auction(uint256,uint256,uint256,uint256,address)","f40e8d8b":"retryWinner(uint256)","f40ea5cb":"setReservePricing(uint256)","f40ebcf3":"setBalanceOfValueFor(address,uint256)","f40ef739":"preIcoEndsAt()","f41017fc":"finalize(uint24)","f410a26b":"receive(address,uint8,uint32[])","f410aa39":"_issueByPartition(bytes32,address,address,uint256,bytes,bytes)","f4116381":"setFiscal(bytes32)","f411fb21":"freezeWithdraw(address,uint256,bool)","f41293c7":"getIndexForTeamId(uint32,uint32)","f412af91":"getOuvidoriaEndpoint(address)","f41377ca":"setFoundationAddress(address)","f41440d9":"setCreator(address,address)","f414cccb":"removeFreezableAddresses(address[])","f4156757":"TeamPoolAddress()","f415ed14":"slash(bytes32)","f4162530":"nodeFee()","f4163340":"isFailed()","f416d2cb":"emitTokensSince()","f417614a":"validateAndReturnContribution()","f418b153":"replaceMarketingToken(uint256,uint256,uint128)","f418cf4e":"recordSenderIfNecessary()","f4199bb8":"initializeWhitelist(address[])","f419c69d":"_createPony(uint256,uint256,uint256,uint256,address)","f41a12c8":"_takeOwnership(address,uint256)","f41b536e":"getRecipientString()","f41bfa9e":"mint(int256,uint256,string)","f41c1c93":"setAnswerFee(uint256)","f41c639e":"sendMsg()","f41d0b0c":"getInfluencer(string)","f41d1a82":"partner1_name()","f41d97fc":"getPriceOfTokenInLastAuction(address)","f41db329":"addAuction(uint40,uint40,uint128,uint40)","f41dc25f":"totalWeiLose()","f41e3494":"hasFailed(uint256)","f41e60c5":"enableTransfers(bool)","f41e8fc8":"periodAmount()","f41f4b10":"retrieveHouseTake()","f41fa999":"TTest()","f4201c3c":"isVIP(address)","f4206706":"withdrawEthers(uint256)","f420977d":"noOfTokenAlocatedForSeedRound()","f420c5b1":"getCloneWallets(uint8)","f420d9d2":"setNumRewardsAvailableForAddress(address,address)","f4217648":"setWhitelist(address[])","f421e02b":"testCantFinalizeWithIncorrectCap()","f42206d1":"HouseEdgeUpdate(uint256)","f422878a":"addressIsStakeDiceGameContract(address)","f42355a4":"isSaleInitialized()","f4239eec":"affiliatePercent()","f4246be4":"addToBundle(bytes32,bytes32)","f4250f75":"AgriChainPrevData()","f42541be":"promoToonsMinted()","f42598f0":"get_mintable()","f4268e46":"g17token()","f426ceee":"award(bytes32,uint256,address,bool,uint256)","f426d8ac":"withinHomeLimit(uint256)","f426f03a":"setFrequency(uint256)","f427211c":"getTime2(address)","f4279d1f":"updateEthUSDOracle()","f42a2c42":"removeAssetListing(uint256)","f42aa287":"getBlobStore(bytes12)","f42ac1de":"minQuorum(uint256)","f42b1ae0":"unPauseGame()","f42b9999":"icoMinInvest()","f42c051e":"submitTokenToEthOrderWHint(uint128,uint128,uint32,int256)","f42c0f02":"MARKETING_SHARE()","f42c56c2":"cbrt(uint256)","f42ca2ee":"sub_32(uint32,uint32)","f42d1d30":"creditorAmounts(uint256)","f42eb765":"getAgreement(bytes32)","f42ef9ec":"emitWithrawalRequestEvent(address,address)","f42f0c7d":"lengthOfCommonPrefix32(bytes32,bytes)","f430511a":"setMaxAddresses(int32)","f43098af":"resetTokenOwnership()","f4320f00":"getProjectUnusedTokens()","f4325417":"App(address,string,uint256,string)","f4325d67":"reserveToken()","f43313b6":"assertEq31(bytes31,bytes31,bytes32)","f433262f":"updateFromRegistry()","f4338e89":"getAllTeamCosts()","f433e12e":"marketingTokenWallet()","f4347267":"getX(bytes)","f434e028":"PreICOProxyBuyer(address,uint256,uint256,uint256)","f4351908":"InitialRateChange(uint256,uint256)","f4351e15":"addAndMintPlayers(uint128[],bool[],uint256,uint256,uint256)","f43532ac":"changeWaveVoteContract(address,string)","f435d012":"setUnitJadeStealingIncreases(address,address,uint256,uint256,bool)","f435f5a7":"lock(address)","f436de14":"setAllowanceValue(uint256)","f437bc59":"host()","f437d6bc":"objectShield()","f4381136":"DeferredPresaleTokenPurchase(address,address,uint256,uint256)","f4385912":"getPlayerId(uint256)","f4385eaf":"KPISToken()","f4387d86":"arbitrateApproveMilestone(uint256)","f4395dbc":"bitmcoinToken()","f4399f2d":"MDIToken()","f43a72b0":"setactive(bool)","f43abdf3":"getCrowdsaleUserCap()","f43acb52":"checkLottery(uint256)","f43b1620":"addUserAuto()","f43b4808":"viewPassword(uint256)","f43b7a76":"AdmineAdvisorTokens()","f43bac53":"poolFeeIncurred(uint256)","f43e34b2":"unFreezeAll(address)","f43e3918":"MELON()","f43e98c7":"refunding()","f43f523a":"mod(uint256,uint256)","f43fd7e0":"_handleTrainingFailure(uint256,uint256,uint256)","f4412803":"currentTotalAirDrop()","f44191f0":"getAccessoryByIndex(address,uint256)","f441b1c8":"currentAmount()","f4424cac":"getNumberOfLogEntries()","f44349dd":"angelTokenSupply()","f44376a2":"preFixed(address,uint256)","f443ea83":"MindHacker()","f444c136":"createDklAuction(uint256,address,uint16,uint256)","f444ea30":"allowBack()","f4451628":"buyHSShop(uint256)","f44544b3":"fundPos()","f4462d04":"periodicity()","f44637ba":"addBurner(address)","f4463fb7":"emergencySelfDestruct()","f446c1d0":"A()","f449619e":"collectPrize(uint256)","f449958d":"deliverManagementTokens(address)","f449c3cb":"_presaleSupply()","f449ffe4":"setPresaleRate(uint256)","f44a06b9":"endIcoSaleRound1()","f44a6ca9":"addProduct(address)","f44b43f8":"approveAmount(uint256,address,uint256)","f44b54ca":"functionName1(bytes32)","f44b79b3":"withdrawalAll()","f44bd811":"TRCERC20(uint256,string,string)","f44dc562":"_addKey(address,uint256)","f44e1351":"setEpisodeManager(address)","f44f13d8":"assert2()","f44f8be9":"sendNegReq(uint256,uint256,uint256,string)","f44ff712":"blockHeight()","f450096f":"updateOraclizeGas(uint256,uint256)","f4500eb5":"ETHERCFeeModifiers()","f4508082":"_price_token()","f4509fc2":"LOCKED_1Y_DATE()","f450b574":"_mixer()","f450cfee":"disablePrivileged()","f450d53a":"allFinalised()","f450e5f8":"TOKENS_SOLD_LIMIT()","f4510455":"STQPreICO2TestHelper(address,address[])","f4514ca6":"buySome(uint256,uint256,uint256,uint256,uint256)","f4519035":"betOdd()","f452b69c":"getCommandTokens()","f452f32d":"getByTo(uint256,uint256)","f45346dc":"deposit(address,uint256,address)","f45392fb":"getReportingWindowByMarketEndTime(uint256,bool)","f453c827":"getAddressField3()","f4544255":"refer(address,address)","f454c32c":"teamReserveTokensDistributed()","f4559619":"newOwnerTemp()","f4560403":"Zero()","f456106d":"ProdCToken()","f4572664":"changeMinimumPurchaseAmount(uint256)","f457361a":"paidversion()","f457547a":"spreadPercent()","f457688d":"can_i_jump()","f4577298":"EthGet()","f457ee5a":"donation(address)","f45811bd":"Voyager()","f4586cba":"setVestingRevokeDate(address,address,uint256)","f4591074":"finishInvite()","f45934b6":"cards_gold_total()","f45984fd":"TOKEN_UNIT_RATIO()","f459eb61":"generateKeccak256(bytes)","f459f517":"dividendsPoolAddress()","f45a729c":"getEtherValue(uint256)","f45b106a":"increaseMonthlyTransactionVolumeReceiving(uint256)","f45b4fba":"setPersonalBonus(address,uint256,address,uint256)","f45b96a0":"financePeriodsCount()","f45c85e5":"currentOwnerFeePercent()","f45ce8d7":"setAddressKYC(address,bool)","f45dae6e":"parseLoanOfferRates(uint256[7],uint32[4])","f45e29bb":"hashCoin()","f45e8dc4":"buyWarlordChest(uint256)","f45eb5b4":"_generateRandomhashNumber(string)","f45ef033":"nextReduceSupply()","f45efe88":"stage1Bounty()","f45f74f8":"VerityToken()","f460473e":"fillArray()","f460590b":"updateSigner(address,bool)","f460c5e4":"listItem(uint256,uint256,uint8)","f460e5d0":"setRamenContract(address)","f461847c":"DatGirl()","f4619e71":"NokuCustomERC20Service(address)","f461db0e":"teamAllocatedTime()","f4623e0b":"addBalance(address,address,uint256,uint256)","f462671e":"isAuthDisabled(uint256,uint256)","f46332e0":"test_claimShare_emptyFeeAndRewardPools()","f4635674":"countryOwnersOf()","f4637003":"transferChildren(address)","f463be37":"setSecondAddressBalance(address)","f463edd1":"createDocument(uint256)","f464e64e":"premiumPacks(uint256)","f464e7db":"sellToken(address,uint256)","f4656219":"PRICE_RATE_FOURTH()","f4660ff5":"timeVault()","f4662f71":"canUnshelf(string,address)","f466f106":"addHouseHold(uint256,uint256,uint256)","f4674b89":"withdrawByAdmin(address,uint256,address)","f4686b42":"GxAdminOperations(address)","f468e9b3":"inICO()","f469707f":"addToGoldList(address)","f46b5321":"calculatePoolAmount(uint256)","f46b986a":"secondExtendedBonusSalesEnds()","f46bbc09":"thirdStageTokenRate()","f46c0f29":"compensate(uint256)","f46c50dc":"doFail()","f46c858a":"addAdvisor(address)","f46d1982":"setup(address,uint256)","f46d91f4":"TokenBurn(uint256)","f46da084":"createName(string,string,string,string,bytes32)","f46de44a":"Etherumchain()","f46eccc4":"minters(address)","f46f16c2":"MARKET()","f46ff44f":"dollarToEtherRatio()","f4700d3e":"lpMaxVolume()","f4703d26":"numbersCountMax()","f47073f4":"setTotalIncomeFeePercent(uint256)","f470fd5e":"BLU()","f47125f5":"StableICO()","f471e626":"disapproveByC(uint256,string)","f47279d2":"capRemaining()","f47289e1":"_ecDouble(uint256,uint256,uint256)","f472d615":"enableIco()","f472e136":"fraction(int64,int64)","f4734818":"_random(uint256,uint256,uint256,uint256,uint256)","f4736429":"changeUnicornRanchAddress(address)","f473c484":"BatchDetachAssets(uint256[10])","f4749624":"dist_list_set(address[],uint256[])","f474b6b2":"aboutWorker(address)","f4752806":"convert2PeonyToken(uint256)","f4757a49":"HighestBidIncreased(address,uint256)","f47599db":"WLMTBounce()","f4773d26":"AESSignatum(uint256,string,string)","f47760ac":"forceGame(uint256,uint256)","f47795f3":"CommonTokensale(address,address,address)","f477a6b7":"depositEthers()","f477c2b9":"setColdWalletAddress(address)","f4784b37":"placeCube(uint256,uint256,uint256,uint256,uint256)","f478cef1":"leader_2()","f47a6e84":"getReleased()","f47aa124":"AutoSplitCurator(address)","f47b7740":"information()","f47c84c5":"MAX_TOKENS()","f47cd133":"AMBASSADOR_FOUR()","f47ce310":"getRoomCurrentSet(uint256)","f47efbca":"getMemberLinks(address)","f47f5921":"exerciseOption(address[3],uint256[3])","f4807a4d":"downTickTest(address,uint256)","f4812eb9":"tokenIdToPrice(uint256)","f4814444":"_withdrawBalance()","f481d2d0":"BaseFareCalculator()","f4833360":"getTeamInfoByID(uint256)","f48339e4":"MintingEnded()","f4835aea":"postHardRate()","f4838452":"loseWager(address,uint256,uint256,bool,uint256)","f484e827":"slashSmallUsername(bytes)","f48513ed":"setFundOnContract(bool)","f4869726":"buyWithSignedAddress(uint128,uint8,bytes32,bytes32)","f487404f":"oldOwner()","f487c403":"DataStore(string)","f487e4b6":"SendERC20ToAsset(address)","f4880b22":"transferStatus()","f489faf9":"addAddressToBonuslist(address)","f48a3f2b":"PlazaToken(uint256,string,string)","f48aa044":"upgradeEthCost(uint256)","f48b4391":"SBToken(address,address)","f48be22b":"initialiseAllocations()","f48c157d":"createGame(string,bytes32[])","f48c2afa":"PVCCrowdsale(uint256,address,address)","f48c3054":"proxyPayment(address)","f48c4633":"disableRefunds()","f48d11af":"removeFromVIPList(address[])","f48d371c":"create(uint256,uint256,int256,address,address)","f48d60ca":"hasOwner(uint256)","f48e20f2":"getCreateFeeWindowUniverseValue()","f48e5f27":"infoWithdraw1()","f48e9c33":"ETPotatoPresale(address,uint256,uint256)","f48edf0c":"partner(address,address)","f48f3ced":"HFCoin(string,string)","f4903ca0":"newContract(string,address[],string,bytes32,uint256)","f4914919":"incrementContinuityNumber(uint32)","f4915f5f":"BHM()","f4916f05":"VoteSvp002(address,uint256,uint256)","f49259b7":"UpgradeableToken(address)","f49296ae":"WasHere()","f4929cc5":"initPair(address)","f492a72f":"signUp(address[],uint256[],string)","f493c848":"transferMultiply(address[],uint256[])","f49501f3":"soldOnCurrentSale()","f4954387":"setHalt(bool)","f49627be":"Technology4G()","f4970e71":"approveWithdrawal(address,uint256)","f49727bd":"getSkillEvaluation(address,uint256,uint256,uint256,address)","f497463a":"setVariables(uint256,uint256,uint256,uint256)","f49808ea":"addEthForPayment()","f4993bbd":"executeEmergencyWithdrawal()","f499a349":"NewPrefixPrice(uint256,uint256)","f49a5504":"permittedInvestors(address)","f49a616c":"updateFeePayoutAddress(address,address)","f49a66fd":"_pushLandId(uint256,uint256)","f49b728e":"setAllResourceERC20Addresses(address)","f49b8e10":"BelezaNetwork()","f49bb5a8":"numberPlateExist(address,string)","f49bbb23":"getUserClientsCount(address)","f49bff7b":"getBounty()","f49d1d19":"viewSellOffersAtExchangeMacroansy(address,bool)","f49dec70":"buyPepeAffiliated(uint256,address)","f49e8135":"calculateTokenBuySimple(uint256)","f49eee20":"priceFactorB()","f49f0974":"proxyList()","f4a011be":"transferWithReserving(address,uint256)","f4a05f8f":"_transferAsset(uint256,address,bool)","f4a1585b":"setNextCycle()","f4a222e9":"icoRaisedETH()","f4a32ef8":"bonusTokensSold()","f4a43448":"getEstateSize(uint256)","f4a475cb":"t_ImmlaTokenDepository()","f4a4b8c7":"OfferUnHold(uint256,bytes,bool,address)","f4a67395":"showAddresses()","f4a6ef99":"logBytes(bytes32)","f4a81d08":"getKudosGiven(address)","f4a8619a":"prep(address,uint8)","f4a8a699":"_mint_with_uri(address,uint256,string)","f4a8cbc0":"tokensToWei(uint256,uint256)","f4a92020":"rawApprove(address,bytes32)","f4a972de":"softEthTransfer(address,uint256)","f4a9c919":"startThinking()","f4a9df62":"annul(address)","f4aa1291":"withdrawFundsAdvanced(address,uint256,uint256)","f4aa956c":"preIcoIsRunning()","f4aac034":"charityFraction()","f4ab2928":"isContractPaused()","f4ab2b19":"releaseAllOldBalanceOf(address[])","f4ab4d1d":"_getPetAura(uint256)","f4ab9adf":"addVoter(address)","f4ac6560":"batchVipWtihLock(address[],uint256[],bool)","f4acc2ed":"setContractAdmin(address,bool)","f4accda5":"order(uint256,uint256,address)","f4ace1a5":"processContribution(address,uint256)","f4ad2212":"EthereumEmerald()","f4ad8e37":"listings(uint64)","f4ae0d2f":"getTechBonus1(uint256)","f4ae2164":"EDToken()","f4ae67a1":"setTargetDiscountValue9(uint256)","f4af9146":"setDefaultTranche(bytes32[])","f4afbdca":"assets_explorer_controller()","f4b0ce03":"NewIssue(address,uint256,bytes)","f4b103d4":"SimpleStorage(uint256)","f4b186a7":"setProfitOwner(address)","f4b272db":"licenseAttributes(uint256)","f4b28747":"CaptainToken()","f4b2dfea":"Matching_Finneys()","f4b2f5b6":"maxTokenSupplyICO1()","f4b43268":"phrase()","f4b432b8":"validUser(string)","f4b489e7":"upgraded(address)","f4b4d77e":"cutOf(uint256)","f4b5cbc4":"setCrowdSale(address)","f4b74ae9":"updateBestInvestor(address,uint256)","f4b79379":"generalRate()","f4b86c48":"isMarketplace()","f4b95676":"IsReady()","f4b96570":"greet_omar(uint256)","f4b97c4c":"insertNode(bytes32,bytes32,bytes32)","f4b9fa75":"dai()","f4ba89f9":"escrow_fee_numerator()","f4bbd5d4":"getDealByNumber(uint256)","f4bbfd6a":"scheduleCall(bytes,bytes)","f4bd0bcf":"isConditionMet()","f4bd0eb2":"getSplit(uint256,uint256,uint256,uint256)","f4bd65a7":"_updatePhaseTimes()","f4bd9429":"unassignOwner(address,address)","f4bead6e":"percentageToToteLiquidatorWallet()","f4bebac2":"winner_bids()","f4bffad6":"bonusForMainICO()","f4c06c8e":"removeConfirm(bytes)","f4c140b2":"setArtistFees(uint256)","f4c28ea3":"lowerLimitForToday()","f4c2ebdd":"createLandAndAuction(address,uint256,address,uint256,uint256)","f4c38aa1":"initLending(address,uint256,uint256)","f4c3f3f7":"fetchAllDataForCustomer(address)","f4c52644":"requestRefundDonator()","f4c5ab7c":"validateCallGas(uint256,uint256)","f4c679db":"Gidnist(address)","f4c6f423":"requestWarranty(string,address,uint256,uint256)","f4c7f92c":"newRubesUntilPayout()","f4c84d19":"update(string,string)","f4c91807":"calculateCurrentPrice_(address[7],uint256[7],uint8,uint8,uint8,bytes,bytes,bytes)","f4c97199":"updateNextGamePotSplit(uint256)","f4c99177":"setBlocksPerPayPeriod(uint256)","f4c9b1fd":"campaignState()","f4caee88":"isParticipating(address)","f4cb09cf":"setAmbassadors(address,bool)","f4cb4ae3":"tokenCreationMaxPrivateSale()","f4ccbc4f":"getWithdrawals(address,address)","f4ce66e0":"extractUint(bytes,uint256,uint256)","f4ce7c1c":"purchaseWithEther(uint256)","f4ce7d4a":"ChannelContractAddressChanged(address,address)","f4cebdc2":"HeroCore()","f4cee3b5":"jasontestToken()","f4d0b2a5":"RefundInvestorsBallot(address)","f4d0b67f":"SetTime(uint256)","f4d176e1":"mapMaster()","f4d21515":"submitQuery(uint256)","f4d218f9":"lastBlockClaimed()","f4d22b02":"transferMoreETH(address,uint256)","f4d24fea":"setItem(uint8,uint8,uint256)","f4d26fec":"upgradable()","f4d28ab0":"Update_START_PREICO_TIMESTAMP(uint256)","f4d2cac3":"setBonusSale(uint256)","f4d3e94f":"weiRaisedInPresale()","f4d44b72":"getBoardsCount()","f4d48c0d":"channelParticipant(uint64,uint64)","f4d56a51":"isIdValid(bytes16)","f4d5d6ce":"seriesBSupply()","f4d64745":"HgcToken()","f4d76b60":"postValidatePurchase(address,uint256)","f4d7b725":"GasPrice()","f4d87f8a":"WW3Token()","f4d92886":"test_shutDownVersion()","f4d94699":"EndowmentRetriever()","f4d957a5":"test_validProxyFundTransfer()","f4da6a54":"AUTHORSIGHASH()","f4da834c":"cancelAuctionToBuy(uint256)","f4daa98c":"BitcoinFuture()","f4dadc61":"locks(uint256)","f4dae266":"total_wei_given()","f4dafe71":"update_hash(bytes32)","f4db9ad1":"bountyOnlineTokens()","f4dba182":"take(uint256,uint256[])","f4dbeb9d":"getCredRanksByContents(address,uint256[])","f4dc2d21":"Deed(uint256)","f4dd0fe9":"ico1Max()","f4ddca3c":"shortenBonusPreIco(uint256)","f4ddff1c":"_teamID()","f4de8dfe":"generateUID(uint256,uint256,uint256,uint32)","f4def44b":"getStaff(uint256)","f4df1fb2":"themedSpinners(uint256)","f4df80ee":"subUserTokens(address,uint256)","f4e0f412":"exec(address,uint256)","f4e1358a":"transfer_enabled()","f4e2d68b":"ltcBalance()","f4e340ac":"RedFoo()","f4e36afd":"findThroneByNameHash(uint256)","f4e3be2d":"getSpawnProxy(uint32)","f4e42844":"ResetTransferState()","f4e50a4d":"getSupportedTokenByIndex(uint256)","f4e62c34":"OrigoToken()","f4e68486":"weiICOMinimum()","f4e6a70d":"addAnimalType(uint128,uint8)","f4e6d3f9":"calculateLockedPercentage(uint8)","f4e733c3":"lifeTime()","f4e75b79":"OwnershipTransferProposed(address,address)","f4e76a46":"getBalanace(bytes32,address)","f4e83593":"Volunteertimedollartocken()","f4e96093":"IntimateShoppe(uint256,uint256,uint256,address,address,address,address,uint256,uint8)","f4e9c944":"PRE_ICO_START_TIME()","f4ea7263":"Take_share_team_AES()","f4ea77f3":"coinPool()","f4ea95b9":"validateReleaseVersion(uint32[3])","f4eb20da":"SNC()","f4eb6889":"description1()","f4ebed78":"currentReward(uint64)","f4ec186d":"MoonCoin()","f4ec593d":"ICOCrowdsale(uint256,uint256,address,address)","f4ed0f46":"editionSize()","f4ed216c":"removeExchangePartnerTargetAddress(address)","f4ed660f":"testIfElse()","f4eda76a":"traitIdxToName(uint256)","f4edb15b":"narcosByOwner(address)","f4ee82ee":"TOKEN_SECOND_DISCOUNT_MULTIPLIER()","f4ee9efe":"mintPartOfEmission(address,uint256,uint256)","f4eef932":"deptcheckapproval(string)","f4efa24c":"getConsensusDetails(address)","f4f0b6e5":"investorDate(address)","f4f0dafd":"T0XToken()","f4f0fc21":"raiseCap(uint256,uint256)","f4f22662":"setPersonalBonus(address,uint8)","f4f27042":"open(address,address,uint256)","f4f3122e":"startSale(uint256,uint256)","f4f3b97c":"updateSubjectMatter(uint256,string)","f4f3bdc1":"minus(uint256,uint256)","f4f3c8a4":"comment()","f4f42246":"percentageCut()","f4f4d237":"getById(uint256)","f4f572ae":"CMO_Signature()","f4f59992":"m_analytics()","f4f5b30f":"unitTestGetAvailableReward(uint256,uint256)","f4f5e1c1":"SHARE_BOUNTY()","f4f61563":"setInviteeCount(address,uint256)","f4f6d6fe":"weiMinSale()","f4f724b3":"getEmployerJobsByStatus(address,address,uint8)","f4f7c6c2":"disagreeWithdraw(uint256)","f4f864f0":"STARBITToken(address)","f4f87730":"create_token(uint256)","f4f94a40":"ownerSetRandomGenerateMethod(uint256)","f4f96d29":"smartWallet()","f4f98ad5":"commit(uint256)","f4f996d5":"WandtChain(uint256,string,uint8,string)","f4fa6c1d":"blockheight()","f4fa8603":"fabricTokenSafe()","f4fab748":"end2Timestamp()","f4fb6789":"tknfwdToken()","f4fb7d4e":"m_nonEtherController()","f4fba1bc":"executeProof(bytes32[],uint256)","f4fc3570":"disableController(address)","f4fc5d13":"RevealBet(string)","f4fd326c":"SuperCarbonCoinToken()","f4fde3b6":"sendMoneyOwner()","f4feccbb":"LogUserUnRegistered(address)","f4ff56f4":"ProposalCloned(uint256,uint256,uint256,string,bytes32)","f4ff78bf":"changeMaster(address)","f4ffa7a9":"getMountTokenIds(uint256,address)","f50059b6":"reconcileDividend(address)","f500a0a3":"VeritasToken()","f5012d4b":"sendOtherTokens(address,uint256)","f5015000":"setMaxCharacters(uint16)","f5018d1c":"IronHands2()","f501af70":"OpenLongevityPresale()","f501d8b8":"transferFromICO(address,uint256)","f5023de9":"founder2Wallet()","f50249fc":"totalSupplyMax()","f502cdc0":"distributeNIM(address[],uint256,uint256)","f5037b2a":"addressLength(address,address)","f503a994":"leaveTeam(uint256,uint256)","f5042801":"setAsRefunded(address,uint256,uint256)","f504b089":"memberKeys(uint256)","f504e0da":"load_level(uint16)","f504efa7":"popHatch()","f50522ca":"setNote(uint256,bytes32,string,string)","f5059560":"makeProject(string,uint256,uint256)","f505a299":"getLLV_edit_32()","f505a92d":"reserveFor(address,uint256)","f505eb6e":"WolkDestroyed(address,uint256)","f505f5f7":"quicksort_core(uint256[],uint256,uint256)","f506d7e5":"getCompte_31()","f506fc54":"acceptValentineRequest(address)","f5074f41":"destroyAndSend(address)","f5088730":"copy(uint256,uint256,uint256)","f509078f":"isForAuction(uint256)","f5093ab4":"UpdateState(uint8,uint8)","f509b627":"confirm(address,uint224,uint32,address)","f509c554":"PIPSCHAIN()","f50a2644":"canCompleteContribution(address)","f50aac53":"register(address,string,uint8,string)","f50ab247":"StopGame()","f50ab7b0":"updateCoupleImageIPFShash(bytes)","f50acfa0":"transferToParent(address,address,uint256,uint256,bytes)","f50b486d":"getTokenIdsIndex(uint256)","f50b5308":"PRICE_MULTIPLIER_ICO1()","f50b769e":"lastEditionOf(uint256)","f50bab3f":"distributeCRTM(address[],uint256,uint256)","f50ca46a":"hasICOFinished()","f50d3914":"resetFoundationtList()","f50ebd21":"OHGLuangPrabang()","f50ecf0b":"basicIncomeLimit()","f50f1ba9":"_getRevisionTimestamp(bytes32,uint256)","f50fc02e":"flipsLost()","f510371a":"deleteOperation(bytes32)","f510c329":"EmitTransactionDetails(address,uint256,uint256,uint256,string,string,string)","f510ccd3":"CancelAuction()","f51119db":"checkAuditor()","f5112373":"testFloatArray()","f5112f87":"welcomeBonus()","f512106a":"testStringKeyValue()","f5122232":"LogAccess(address,bytes32,address,bytes4,bool)","f513a671":"soldItems()","f5143b1c":"HNContract()","f514e92c":"TARGET_DURATION_BETTING_BLOCK()","f514f0f9":"STAGE_THREE_TIME_END()","f5156fba":"CECToken(uint256,string,string)","f5166eea":"reservedTokensLockedPeriod()","f516e9ec":"ethDeltaDepositAddress()","f5173120":"TOKEN_FIFTH_PRICE_RATE()","f518e66d":"_addStakeholder(address)","f5194ae2":"MainToken()","f5195b62":"c_dateTo()","f5196002":"getBOPCount()","f519618f":"addMultipleTier2Members(address[])","f51b793a":"get_appuration(uint8)","f51c2907":"affiliatThreshold2()","f51c755b":"testConcatMemory33Bytes()","f51cbc72":"Level()","f51d0c6f":"_awardForRecommender(bool,uint256,uint256)","f51d1399":"reduceBalance(address,address,uint256)","f51d401f":"getStageStartTime(int256)","f51d4cb1":"getCurrentVUPRate()","f51d61ff":"Thanatos()","f51d7d5f":"getTitle(address)","f51dcaa7":"AVGONE()","f51e181a":"scale()","f51f4738":"setCompleted(bool)","f51f5e78":"addPlayer(bytes32,bytes32,bytes6)","f51f96dd":"salePrice()","f51fb6a1":"leftInTier()","f5207c31":"businessPlannedPeriodDuration()","f5218ec2":"increaseRepAvailableForExtraBondPayouts(uint256)","f522ec0e":"_refundTokens(address)","f52343f4":"flipExecutionSwitchTo(bool)","f5235a46":"withdrawFoundersTeamAndAdvisors()","f5238546":"stopInvest()","f5238660":"totalMarketingFundMinted()","f524613f":"freeze(address,uint256,uint8)","f5251269":"ETHDividends()","f5254af8":"startPriceForHLPMT()","f5258aee":"ContractAdded(address,uint256)","f525cb68":"poolCount()","f525dcf1":"setLockFund(address,uint256)","f52706c9":"setMinResalePercentage(uint256)","f527c856":"TOKENS_PER_KETHER()","f527dd6c":"_emitSkillSet(uint256,uint256,uint256,bytes32)","f5292748":"_stakeContent(address,bytes32,uint256,uint256,bytes8,uint256,uint256)","f5298aca":"burn(address,uint256,uint256)","f529d448":"changeBalance(address,uint256)","f52a41f3":"mintOWL(address,uint256)","f52ad690":"badgeUnFreeze()","f52ae24b":"transmute(address,uint256)","f52b8d1f":"tokenReserved1Deposit()","f52bbc2d":"withdraw(address,address,uint256,uint256,address)","f52bd7cb":"addSwap(bytes5,bytes5,bytes32,bytes32,bytes12,bytes32,bytes32,bytes12)","f52c456f":"_createClown(uint256,uint256,uint256,uint256,address)","f52f2526":"exerciseOption(uint256)","f52f77b2":"createEntity(address,address)","f52fa89b":"evolveGeneration(uint16)","f52ff1da":"SDT(address)","f530259e":"isBlacklistDestroyer(address)","f5308c7d":"removeTransferLock()","f5318389":"setEmbassyCtrl(address)","f531aff2":"THINK_TANK_FUND_TOKENS()","f531cc63":"LogCreateEVN(address,uint256)","f531dbbf":"TOKEN_SWAP_DURATION_HOURS()","f5323da4":"phase_5_bonus()","f532e888":"getBookForUser(uint256)","f5336737":"BFTcoin()","f5341b4e":"UserTipped(address,bytes32,uint256,bytes32,bool)","f5343752":"exchangeEnabled()","f534b022":"burnleftToken()","f534d187":"girlBasicToken()","f536c61a":"deleteAllChildren()","f5370884":"WithdrawalVotedEvent(uint256,address,uint256,uint256)","f5376e49":"TestingToken(uint256)","f53773dc":"withdrawBattleValue(uint256)","f5383f3a":"getFoundationStatus(address)","f5385345":"acceptOwnershipOffer()","f53995ff":"setIncludeAuctions(bool)","f53a93f8":"MyFinalizableCrowdsale(address)","f53b0b3a":"_regularDonationsTotal()","f53b396b":"SimpleTokenCoin()","f53b8ded":"mintPreSaleTokens(address[],uint256[],uint256[])","f53bc835":"setMaxBuy(uint256)","f53bde25":"RATE_PRIVATE()","f53c5c87":"setTileContract(uint16,uint16,uint8,address)","f53d0a8e":"administrator()","f53d9d58":"AddLiquidity(uint256)","f53da97e":"currentSalePhase()","f53f43d9":"setcapname(string)","f53fb0cb":"isCollectionAllowedAt(bytes8,bytes8,uint256)","f53fbaf6":"send_ETH_from_contract(address)","f53fd201":"_modifyPixelColor(uint24,uint32,address)","f54011f5":"blockExternalTransfer()","f54095a7":"standart()","f5414023":"claimReward(bytes32)","f5419108":"view46()","f543d3c6":"Stockfinex(uint256,string,uint8,string)","f544cf4f":"decayedPriceOfCard(uint256)","f545118b":"subdividendsOf(address)","f54575d6":"addAdvisor(address,uint256)","f54580cc":"card_blue_minamount()","f5459d6b":"INVESTOR1()","f5462105":"isFundedMax()","f546232d":"ComputeMyEggs(address)","f5465992":"totalTokenBalance(address)","f5470d7b":"itemType()","f5486860":"nextPrizeTime()","f548a578":"removeBurnupGame(address)","f549dd0e":"Vitamin()","f54a2ddc":"setRefundable(address,uint256)","f54b384d":"withdrawBuildingTokens(address)","f54cc2d0":"mintTokensForServices()","f54d28ae":"OPSPoolAddress()","f54d41db":"updateInventories(uint256,uint256[],uint16)","f54da8ee":"addWasteType(string)","f54dbf4c":"Emission(address,uint256)","f54dd191":"Flag()","f54dd974":"setResourceERC20Address(uint16,address)","f54e3977":"BTML()","f54e7a40":"offlineTransaction(address,uint256)","f550cb45":"rank(address,uint256)","f551924c":"testpidgeon()","f5519e8d":"WanChainToken()","f55206a5":"validatePurchase(address)","f5521bf1":"loanDuration()","f5529d3f":"ESIT()","f552b2ba":"threads(uint256)","f552d91b":"tokenToTokenTransferInput(uint256,uint256,uint256,uint256,address,address)","f5537ede":"transferToken(address,address,uint256)","f5539407":"getInvestorInforAddr(uint16)","f554567f":"getTeller(address)","f554e8cc":"officialHold()","f554e934":"TOKEN_COMPANY_OWNED()","f55523e7":"fiat_contract()","f5552b42":"wotDay(uint256)","f5556d78":"Vegas()","f555b815":"rate2()","f5562753":"getClaimAmountForBlock(uint256)","f5582870":"CENTS()","f559417c":"finalizebackup()","f559468c":"initiallyLockedAmount(address)","f5596659":"HoloWhitelist()","f5597e21":"addProperty(string,string,uint64,uint64,uint64)","f55ab987":"penalizeInactiveJuror(address,uint256,uint256[])","f55b23c0":"externalLeave()","f55b39a3":"PetCore()","f55b8fc9":"setraisedAmount(uint256)","f55bddcc":"NFTAuctionBase()","f55befee":"TOURNAMENT_TOKENS_PERCENT()","f55c9f60":"developerReserve()","f55ecf06":"setExchangeRate(uint256,uint256)","f55f41f9":"Version(string,address,address,address,address,address)","f560783d":"getLastProfit()","f560aa57":"setTokenPrices(uint256[],uint256[])","f560d415":"privateSalePrice()","f5610668":"currNumOfCards()","f56142b3":"burnPrivate(uint256,uint256,uint256)","f561e2f9":"refundTransactionFee(uint256)","f5620ed6":"addItemTo(address,uint256,uint256,uint256,string)","f562db76":"wct1()","f56311d7":"getMntpMigration(uint256)","f5632ab4":"receivedEth()","f563424e":"fetchBilateral(address,bytes32)","f564bb8c":"getNodeIdx(string)","f564dca9":"setUrls(string,string)","f564ea7e":"get_bank_data(address)","f5653a79":"_presentValue(uint256)","f56585de":"transferOtherTokens(address)","f56589d5":"PupToken()","f56613e4":"lockBetInfo()","f5663819":"minContributionETH()","f566c1b5":"_normalizeDecimals(uint256,uint256)","f5672f92":"garbageCollect()","f567a72a":"listMultipleItems(uint256[],uint256[],uint256,address)","f568006f":"generateBalanceHash(address,uint8,uint256)","f5681f9d":"Deposited(address,address,uint256,uint256)","f5685061":"startPreICOnow()","f56898fe":"getCompte_40()","f5689a80":"TOKEN_CREATED_MIN()","f5691b07":"_bidDkl(uint256,uint256)","f569626d":"sanTTTCost()","f569a2fc":"withdraw1(address)","f56a5176":"getMostRecentAuctionStart()","f56b8a46":"TEAM_BONUS_PERCENT()","f56c66b1":"parseInt128(string)","f56d7abe":"PaceCoin()","f56e0609":"WorldCup(bytes32,bytes32,bytes32)","f56e4cb1":"blockTokens()","f56e8421":"currentSquirrelOwner()","f56eba15":"SGEToken()","f5710cc5":"setInitialBalance(uint256)","f5716958":"updateSplits(uint256,uint256,uint256,uint256)","f571da7f":"confirmAssessor()","f5720769":"setDrawer(address)","f57213d8":"subsafe(uint256,uint256)","f57271cd":"LogEnded(bool)","f5727f5c":"chainLedger()","f572ae2e":"toggleInPlayJoining()","f573864f":"PrandexBountyToken()","f5738bcd":"setInstructions(string)","f5743c4c":"incrementNonce(address)","f574c691":"KCoinToken()","f5751524":"unfixTokenPriceInWei()","f575c810":"finishPrivateSaleAndStartPreSale(address,uint256,uint256,uint256)","f57688b6":"communityVesting4Years()","f576f722":"getCurrentTierInfo()","f577990d":"passoverEndTime()","f577a5d0":"publicTokens()","f578fd7c":"applyForToken()","f578fd85":"assertEq0(bytes,bytes)","f57a1ccc":"f4(uint256,uint256)","f57ac2df":"World2()","f57ad503":"resetRole(address)","f57ad6ea":"deposit_token(uint256)","f57ae7b9":"buildId2(address,address,address,uint256,bytes)","f57be85d":"ownerActivateToken()","f57d74d8":"blaze()","f57d76d5":"RestrictedShares(string,string,uint256,uint256)","f57db6e1":"signLoan(address)","f57e2368":"bonusAvailable()","f57e63e2":"eventEnded()","f57ee77b":"getRoundId()","f57fc26a":"lccxTeamTokensVesting()","f5804c35":"test_someTest()","f5811447":"createAuction()","f5812687":"distributeTokenFunds(address,address,uint256)","f5813085":"getTotalTokensByAddress(address)","f5818d94":"EtherModifierPandee()","f581ec95":"FIRST_VOLUME_EXTRA_BONUS()","f581f1ef":"setPicopsCertifier(address)","f5823b0b":"parseOrder(bytes,address,address)","f582d293":"buyEnabled()","f582fe70":"PundiXToken()","f58339c1":"_generateGuardianSale(uint256,uint256,uint256,uint256,uint256)","f5836761":"DGBLY()","f58431fd":"Citizen(address)","f584bf09":"Softcap()","f58589ff":"setAirdrop(uint256,uint256,uint256,uint256,uint256)","f58590e9":"ReturnChametz(address,uint256,uint256)","f5866066":"setStringValue(bytes32,string)","f5868e49":"Administrable(address)","f586c6d9":"getPoolAddress()","f586df65":"checkMembership(bytes32,bytes32,uint64,bytes)","f5877bdb":"maintaining()","f5878d40":"maxSCount()","f587c53f":"_generateGene(uint64,uint64,uint256,uint256)","f58951d1":"approve_reject_deleteCertificate(uint256)","f589cbbe":"addPick(uint256)","f58a1adb":"setup(uint256,uint256,uint256,address,uint256,uint256,bytes,address,address)","f58a535f":"phasePublicSale2_From()","f58adfe5":"CharityReservesSupply()","f58b4554":"userPayout()","f58bb0c9":"dealInitialCards()","f58c251c":"sentinel()","f58d3321":"usersCanUnFreeze(bool)","f58e2327":"foundationTokenHolder()","f58edbca":"ISBParentsCoin()","f58fc2f2":"LimorToken()","f58fef8e":"Destroy()","f590aacc":"preBuy()","f5923a6e":"withdrawEth(address,address,uint256)","f5933f66":"changeFlagArraySize(uint256)","f5938baf":"getRemainingBlocks()","f593efec":"briqcoin()","f594ba7b":"assignManagement(address)","f594f13f":"votedFor(address)","f595f1cc":"pendingFees(address,uint256)","f5963aa5":"isJson(string)","f5965d55":"windowOf(uint256)","f5967a2f":"holdPeriod()","f596d10a":"parseSignature(bytes)","f597a499":"UserDatabase(uint256)","f597d097":"streamerContractMaxAmount()","f597f97d":"fractionalBits(int256)","f59823cf":"Congress(uint256,uint256,int256)","f598e201":"finishDividend()","f5991a05":"sellCoins()","f59ae82c":"getTokenPurchase(address)","f59da238":"MBDCToken(uint256,string,string,uint8)","f59db647":"precommitmentAdjusted()","f59dfdfb":"feed(uint256)","f59e0894":"sendSecond(address,uint256)","f59e38b7":"balanceOfToken(address,address)","f59e754c":"setAuctionFee(uint256)","f59ed863":"privateSaleDate()","f59f5e65":"createWheelBetHash(uint256,uint256,uint256)","f59f99ee":"createNextGeneration()","f59faf9e":"GrainToken()","f5a0ea6c":"createMatch(uint256,uint256)","f5a1c96d":"nextFeesPerMillion()","f5a1f5b4":"setNewOwner(address)","f5a23083":"listMOT()","f5a23af0":"myColorIs()","f5a2d3c7":"DomainSale(address)","f5a30cee":"individualMaxCap()","f5a332f6":"endICO(uint256)","f5a486f3":"issueResolved(bytes32,string)","f5a5438e":"dist_airdrop(address,uint256)","f5a647aa":"sendTokensToSevenAddresses(address,address,address,address,address,address,address,uint256)","f5a79767":"getAmount(address)","f5a7ffeb":"dontPanic()","f5a8ea09":"viewClaimedThisPool()","f5a908f0":"getOraclePrice(string)","f5a91ef7":"getEmailAddressOwner(string)","f5a956d8":"swap(uint256[],uint256,uint256)","f5a98558":"restrictionRemoved()","f5a9e21f":"canUpdateCompanyPreferences(string,address)","f5aa0200":"makeClaim()","f5aa19b7":"reclaimUnclaimed()","f5aab219":"currentIcoRate()","f5ab16cc":"rewardTokens(address)","f5ab4c62":"participationEndTimestamp()","f5ab69c8":"thirdPlacePot()","f5ab865a":"tokensAirdrop()","f5ac0b6b":"BasketFactory(address,address,uint256)","f5ac481d":"leaveTeam(uint256,address,uint256,uint256)","f5ac6319":"_raised()","f5ac9db6":"tradeable()","f5ad9034":"TokenTranchePricing(uint256[])","f5adad57":"BdpControllerHelper(bytes8)","f5aec88c":"getUserTokenBalance(address)","f5af374b":"withdrawEth(address,uint256[],uint256[])","f5af4035":"sellTokensForEth(address,uint256)","f5af6289":"EAI_TokenERC20(uint256,string,string)","f5af6621":"getEscapeRequest(uint32)","f5af6de6":"firstStageEnd()","f5affc60":"claimHash(bytes32)","f5b01fd7":"TruCrowdSale(uint256,uint256,address,address,uint256,uint256)","f5b0f72d":"Ethername()","f5b12540":"STATE_NOT_STARTED()","f5b33d0a":"MicroDex()","f5b3beba":"OverAllPerSell()","f5b41aaa":"set_iconiq_token_amount(address,uint256)","f5b45714":"currentKing()","f5b490d5":"roundLockAmount()","f5b4f3c1":"WFC(string,string,uint8,uint256)","f5b53e17":"getInt256()","f5b53fc1":"checkMonsterAttack(uint16,uint8,uint8)","f5b56c56":"highestBindingBid()","f5b57a8d":"transferFeeDenum()","f5b5af16":"closePlayerGame(bytes32)","f5b5bfb9":"provideDividend(uint256)","f5b61230":"escapeHatchDestination()","f5b85ad8":"RoundToken()","f5b944eb":"ROLE_MANAGER()","f5b9644c":"PRE_ICO_RATE()","f5babff2":"convertBytesToBytes32(bytes)","f5bade66":"setDeposit(uint256)","f5bae6b6":"equal(int256,int256,string)","f5bb02b2":"ICODepositContract()","f5bb5aac":"TokenStore(uint256,address)","f5bbc6d5":"isArbiter(address)","f5bd48c4":"totalLotsByAddress(address)","f5bd4931":"transferFlower(address,uint256)","f5bd8f5f":"_isTrue(address)","f5bdeca1":"SetGasLimit(uint256)","f5be3193":"totalIssued()","f5bea782":"userWithdrawPendingTransactions()","f5bee4e6":"priceTokenToCoin()","f5bf6d63":"totalIssuerSupply()","f5bf7413":"close(address,address,uint256)","f5bf7e3d":"registerDINs(address,uint256)","f5c15237":"isPlatformManager(address)","f5c217da":"lastSaleTimestamp()","f5c233f1":"transferAndLock(address,uint256,uint256,uint256)","f5c256ca":"sendPrepaidERC20Tweet(uint256,string,string,uint256)","f5c3f206":"setApprovers(string,string,address[])","f5c454ca":"ProjectDescriptionUpdated(address,string,bytes32)","f5c476f9":"totalLockedTokens()","f5c4ceda":"SimpleConstructorArray(uint256[3],uint256[3])","f5c57382":"nameOf(address)","f5c5ad83":"decrementCounter()","f5c60309":"YuChainToken()","f5c6ca08":"sendTokens(uint256)","f5c6cd0a":"GlobexSciICO()","f5c6cf05":"changeTokenForSale(uint256)","f5c758c4":"getKycApproved(uint256)","f5c86d2a":"ledgerTransfer(address,address,uint256)","f5c87d20":"setAdminPayout(uint8)","f5c89f83":"StartMiningByIdArray(uint256[])","f5c8d71b":"forceMove(address,address,uint256)","f5c901db":"ck()","f5c91f5a":"init(address,uint256,uint256,uint256,uint256,uint256)","f5c972ac":"setUserInfo(address,uint256,uint256)","f5c98aff":"GreeterB(bytes)","f5c9d5f1":"refundPart(address)","f5ca6cd4":"TOKEN_SALE_ALLOCATION()","f5caccad":"gatherCollateral()","f5cb0daa":"queryWaitingTimeBuffer()","f5cb3dff":"getAddressFromData(bytes)","f5cb911d":"divideByNumber(uint256)","f5cbf6cc":"construtor(uint256)","f5cc4056":"BSMinting()","f5cce54d":"preSaleCoinCap()","f5ce0d5b":"onRemoval(string,uint256)","f5cf673b":"setClaimer(address,address)","f5d00ccf":"NewPatent(bytes32)","f5d05f7e":"foundationVestedPayment()","f5d09857":"createDungeon(uint256,uint256,uint256,uint256,uint256,address)","f5d09ff7":"bancorETHToken()","f5d17f10":"get_term_deposit_end_date()","f5d1d299":"setProviderTitle(bytes32)","f5d241d3":"update(uint80,address,uint32,uint32,uint32,uint256)","f5d36a57":"quorumVersion()","f5d3c79a":"setReinvest(bool)","f5d50f86":"balanceAsSupporter()","f5d5edc4":"deployService(bytes32,address)","f5d60a51":"accessPolicy()","f5d60acd":"EtherTakeAfterSoftcap()","f5d67a20":"currentCrowdsale()","f5d6fa14":"whichPrice(uint256)","f5d72a28":"setTakeRewardsPeriod(uint256)","f5d73261":"transferAnyTokens(address,uint256)","f5d78625":"getPersonalInfo(address)","f5d82b6b":"add(address,uint256)","f5d9356e":"newKrakenPriceTicker(string)","f5d97789":"changeBinaryAddress(address)","f5d9d3fd":"formated_data_url()","f5da16e9":"RECHToken()","f5da210c":"getClientData(address)","f5dabc58":"transferDistributePxl(address,uint256,bool,string)","f5db370f":"setSanityRates(address[],uint256[])","f5db8bc7":"depositedETH(address)","f5db9820":"firstTarget()","f5dd7650":"_computeTournamentBeneficiaryFee(uint256)","f5ddff92":"getReputationUpdateLogEntry(uint256)","f5df1d10":"getCollectibleTypeBalance(address,uint256,uint256)","f5df1f1d":"PresalePool(uint256,uint256,uint256,address[])","f5df6618":"newUser(string,string,string)","f5e1713e":"sale_state()","f5e27f5f":"emperor()","f5e3394f":"getUnicornGenByte(uint256,uint256,bytes1)","f5e33a9d":"createPot(string)","f5e3542b":"lookup()","f5e37d57":"_doTradeForEth(address,uint256,address,uint256)","f5e47f96":"getTicketsByAddress(address)","f5e493aa":"getCrowdsaleTierList(address,bytes32)","f5e53f2b":"register(bytes7)","f5e736ed":"tacoPoolTotal()","f5e7b8e3":"setScoringThreshold(uint256)","f5e7ce99":"canPerform(address,address,bytes4)","f5e7ef7a":"getCountCities()","f5e82554":"executeFill(address,address[5],uint256[8],uint256,uint8,bytes32,bytes32)","f5e8e8a9":"NASRToken()","f5e998f7":"FuckCoin()","f5ea15d3":"setContracts(address[16])","f5ea25f0":"setTokenAcceptanceRate(address,uint256)","f5eacece":"create2()","f5eb2313":"UrlHint()","f5eb42d1":"ExecLog(address,bytes32,uint256,bytes32,bytes32,uint256)","f5eb8890":"balanceUser(address)","f5ec2eed":"companyName()","f5ec8685":"claimAfter45days()","f5ece00a":"cryptoChallenge()","f5edc92f":"subwooferUSBToken()","f5ee3348":"setLive(bool)","f5eeaea3":"openChannel(address,uint256,uint8)","f5eed98d":"publisherCount()","f5ef98ea":"setDeathBlock(uint256)","f5efbd2d":"addModule(address,bytes,uint256,uint256)","f5f06acc":"airDropTokens()","f5f0f1e9":"firstBuyPrice()","f5f23b52":"makeTradable(uint8)","f5f2669b":"isAddressNotEmpty(address)","f5f2b62f":"nextSale()","f5f2de34":"ethReceived()","f5f3e58f":"preSale1()","f5f4123f":"_createAvatar(address,string,uint256)","f5f5ba72":"getContractName()","f5f5bb3b":"hashBid(address,uint256,address,bytes32,bytes32,uint256,uint256)","f5f5c622":"setDErc20(bytes32,address)","f5f5f123":"changeMaximumContributionForPublicPhase(uint256)","f5f6ea26":"EthOne()","f5f83a61":"transferManyLandToEstate(int256[],int256[],uint256)","f5fb17f2":"offerPieceForSaleByAddress(address,uint256)","f5fb1b74":"buyname(string)","f5fb22ca":"claimMobsterFunds()","f5fb9137":"donate_step()","f5fc20c6":"canUse(uint256)","f5fc32c8":"getAllot(bytes32,uint8)","f5fc3d47":"giftToken(address,address,uint256)","f5fc58c4":"totalLosts()","f5fd118e":"coordinatorSetAgreeForEmission(uint256)","f5fd1936":"countZTKChecks()","f5fd2108":"ethToBeDistributedSet()","f5fd9343":"Reco()","f5fda5da":"test_35_assertGasUsage1400Boards()","f5fda8cd":"testPublic()","f5ff3dc7":"setOraclizeWinnerTimeOffset(uint8)","f5ff5c76":"agent()","f5ff8977":"renameArtwork(uint256,string)","f60203c6":"createUser(uint256,uint64,uint64)","f602467e":"FundWithdrawal(address,uint256,bool)","f602c312":"erc20Store()","f602e325":"reserveAdress()","f6030aeb":"mint(address,uint256,int256)","f60381a1":"stra2cbor(string[])","f603fa92":"toggleAttachedEnforement(bool)","f60436cd":"reduceTime()","f604498a":"getClientSupply(address,uint256,uint256)","f604620a":"getTicketsAtAdress(address)","f604e6a6":"withdrawXNK(address)","f6054027":"IFLTSidechain()","f605ef93":"LongBought(address[2],uint256[5],uint8,bytes32[3],uint256)","f606b648":"transferTokensFromSpecialAddress(address,address,uint256)","f60744d5":"verifySignature(bytes32,uint256,uint256,uint8,bytes32,bytes32)","f607e88a":"_tokenPurchase()","f60957c0":"HowLongIsDisputeStillRunning(uint256)","f609a1a1":"extraMintArray(address[])","f609bad6":"newDaoRulesProposal(uint256,uint256,uint256,uint256,uint256,bool,address,uint256)","f609bf42":"getSecondsTimeLocked(bytes4)","f60a696d":"migrateUsers(address[10])","f60b0714":"EscrowContract(address,address,uint256,uint256)","f60b9406":"vestingStartUnixTimestamp()","f60ba338":"setOpenTime(uint256)","f60bb720":"receiveFees()","f60ca60d":"project()","f60ca6b6":"distory()","f60cdcf6":"totalPlayers()","f60daa71":"dutchAuctionToCraft()","f60e28f7":"checkUserAndInitIfNecessary(address,address)","f60edb0e":"proposedController()","f60f1ccb":"useregister(address,string)","f60f49bb":"PayToken()","f6105254":"CryptoSagaArenaVer1(address,address,address,address,address,address,uint32,uint256,uint32,uint256,bool)","f610e52a":"acceptInvite(bytes)","f612a62d":"getSaleContractIsFinalised(address)","f613f7a0":"mintUsingSignature(uint256,uint8,bytes32,bytes32)","f6142990":"altDeposited(address)","f614fd72":"assertEq24(bytes24,bytes24)","f6150d17":"payedAmount()","f6151ff6":"transferTokenTo()","f6153ccd":"totalDeposit()","f615e369":"selectDeliverer(uint256)","f615ed54":"subSeconds(uint256,uint256)","f616b7b7":"report(string)","f616ce3c":"candy()","f616f29f":"transferEthFeeAndRefund(uint256,uint256,uint256,address)","f6174b90":"transferCheques(address,address,uint256,uint256)","f617642b":"getlevellen(uint256)","f617a0e9":"BoSenCoin_Test(uint256,string,uint8,string)","f6187006":"crowdSaleIsRunning()","f618c39f":"PartiallyForgived(address,address,uint256)","f619304a":"getSellOrdersBlackMarket()","f61a3e2b":"roundWithdraw(uint256)","f61a7f6f":"fixSaleCompleted()","f61ac3a4":"checkForReceivedTokens()","f61adfdd":"UnitedfansToken(address)","f61b7483":"M5Logic()","f61b9aed":"transferFrom(address,address,uint256,bool,uint256)","f61c266b":"getExpiry()","f61c6c4b":"LobsterFarm()","f61ca773":"transferWithPurpose(address,uint256,bytes)","f61ca87a":"setUserValue(bytes20,uint256,uint256)","f61cd7de":"callerTokenAmountAtBlock(uint256)","f61d9afc":"Errors()","f61ed985":"Kill(uint256)","f61f019d":"GitBitToken()","f61f35dd":"FOG()","f61f54c2":"SendEtherToFund(uint256)","f61ff377":"AccountFilledWithBonus(address,uint256,int256)","f6205042":"storeClaimSeed()","f622a105":"createDApp(bytes32,uint32)","f622cc82":"declareWinningOutcome(uint8)","f6232556":"Security_GetNumberOfAttemptsToConnectBankAccountToANewOwnerAddress()","f6233016":"DomenoToken()","f623d7a7":"TrustlessTransactions_Log(uint256)","f625ee28":"startMasterCopyCountdown(address)","f625f472":"MultiownedControlled(address[],uint256,address)","f6261a0f":"_isValidWithdrawLimits(uint256,uint256,uint256)","f62732b8":"index(address,address[])","f627fe6c":"returnSomething()","f6281a9b":"getTierWhitelist(uint256)","f62847f4":"TerrionFund()","f6288422":"commission_system()","f628e8e8":"startDonations()","f62a92fa":"testRevertTx()","f62bc2dc":"ICTA()","f62cce34":"_clearRecordHierarchy(uint256,bytes32[],bytes32)","f62cec27":"setStartPreICO(uint256)","f62de0c3":"weiPerUSD()","f62e037c":"BETTING_CLOSES()","f62eded9":"buyStar(uint256,uint256)","f62ee1af":"burnFrom(address,uint32)","f62eec09":"rejectLastDeliverable(bytes32)","f62f47ab":"UDF_PORTION()","f62f9dbb":"tokenRatios(uint256)","f63051ff":"FXTOKEN(address,uint256)","f630a468":"setAtomIsRent(uint256,uint128)","f630e0f5":"submitTransaction(address,uint256,bytes,bytes,bytes,uint256)","f6310813":"transferDoc(uint256,address,address)","f631345b":"setlargeBonusStopTime(uint256)","f6326fb3":"depositETH()","f633adc1":"getRegister(int256,string)","f6340be4":"updateProvision(address,uint32,uint256,uint256)","f634bd29":"sec_addr()","f635052f":"colorPrice()","f635d160":"setPOOL_edit_20(string)","f635f50c":"minedTokenStartTime()","f6360d37":"requestDiploma(uint256)","f6366b9f":"OwnerTokensAllocated(uint256)","f6368f8a":"transfer(address,uint256,bytes,string)","f636931e":"PineapplePoints()","f6373296":"applySettings(uint256,uint256,uint256,uint256)","f637b7da":"collectedWei()","f637d950":"getAssetInfo(uint256)","f63841e4":"featurePrice()","f6384cb8":"sendReferallFundBalance(address,uint256)","f63850d0":"GanaTokenPublicSale(address,address,address,uint256,uint256)","f639365d":"testSetGet()","f63a43c0":"TokensPurchased(address,uint16,uint256,uint256,uint256,uint256,uint256)","f63a5d22":"divideDecimalRoundPrecise(uint256,uint256)","f63b1f7c":"GoldenLightCoin(uint256,string,uint8,string)","f63c2659":"PriceCalculator(uint256)","f63c533c":"Cost()","f63c5532":"incrementStat(uint256,uint256)","f63cb8a3":"requireTokenFuel(address[])","f63da25b":"Emailer()","f63df2e9":"createStandardToken(address,uint256)","f63ef744":"sendCharityETH(bytes)","f63f0e62":"turnOffCanUpdateNextGameInitalMinBetSize()","f640b81e":"test_oneInvalidEqBytes32Message()","f640d508":"transferToken(address,uint256,address)","f6413e46":"getFaucetAmountValue()","f6418b0b":"buyLandForEth()","f641d753":"changeElementName(uint256,string)","f6420e15":"tc()","f6432b8c":"publishLawyersInAttendance(string)","f6436a7c":"BONUS_ICO_PERIOD_TWO()","f643cf3d":"NEToken(address,uint256,uint256,uint256)","f64402c4":"setVicepresidenteDeMesa(bytes32)","f6444bcc":"isDeploying()","f6446614":"withDrawToPoolOwner(uint256)","f6448391":"getAllERC20(uint256)","f644c926":"SarmayehaaToken()","f6454620":"add_certifications(string,string)","f645496e":"giveawayFee()","f645835b":"beneficiaryAddresses(address)","f6458c6a":"toZ1(uint256[3],uint256)","f6460964":"teamKeepingPerEpoch()","f64623f1":"getBalanceB(bytes)","f646286b":"getPlayerShipOwnerById(uint64)","f6469342":"_setPackedBlockNumber(bytes32,uint256)","f64820f9":"addAttendant(string)","f6486cad":"burnReserveFees(address)","f6487e4e":"rejectCampaign(address,string)","f648f20b":"agencyWallet()","f64ab21a":"getOnMintAmountValue(int256)","f64b5c16":"distDay()","f64bfaba":"getBuyers()","f64c08b1":"onThrone()","f64ccca6":"payToken(address,address,uint256,uint256)","f64cd26b":"gcmp(uint256,uint256)","f64e167e":"getTextCount()","f64efacb":"icoHardCapInWei()","f64fca2e":"getNodeId(bytes)","f64fe563":"asyncSend(address,uint256,uint256)","f64ffde4":"getAccountPendingValue(address)","f6503662":"safeApprove(address,uint256,uint256)","f65045df":"totalClosedBID()","f6508be6":"tokensPerWei(uint256)","f651bf44":"move_to(uint16)","f652076b":"_getTokensAmount(uint256,uint256)","f652badb":"bitSSAToken()","f653279c":"TOKENS_FOUNDERS()","f653d286":"toggleTokenSaleOnHold()","f6560449":"evaluateProposalMetricEnd(uint256)","f65625ae":"changeWinnerPrizeMoneyForRaz(uint256,uint256)","f6577774":"BonusCrowdsaleImpl(uint256,uint256,uint256,address)","f6585116":"bytesFunc(bytes)","f658b1d5":"calculateContribution(uint256)","f659a45f":"airdropTokens(address,uint256)","f65bed0d":"initNewGame(uint8[16])","f65bffc3":"checkDividend(address)","f65c4d42":"Participate(uint256)","f65d1488":"setMarketingProfitAddress(address)","f65d226f":"getTotalBetAmount(bytes32,bytes32)","f65d6d4f":"MAX_MINT_NUMBER()","f65e2761":"RandomNumberGuessed(uint256,address)","f65e8d4d":"potMembers()","f65f5eeb":"choose(bytes32,bool)","f6618bab":"getBuyRequestsLength()","f661b886":"testCanTransfer()","f661e767":"villainIndexToApproved(uint256)","f6621121":"setSlammerTime(address)","f6623552":"getWalletBonuses(address)","f6626856":"LTT()","f662a12a":"oraclize_randomDS_proofVerify__returnCode(bytes32,string,bytes)","f662b881":"commitmentOf(address)","f662f291":"getInit(address,address)","f66302a2":"releaseMe(uint256)","f6631c64":"PPBC_Ether_Claim()","f6644c5a":"STARTING_FAIRY()","f6648d4c":"publishMixerType(bytes32)","f66597c2":"listTrophy(uint256,uint256,uint256,uint256)","f665a541":"coinsAdded(address)","f6660246":"fundOrderInternal(address,uint256)","f666323e":"UUIDProvider()","f669052a":"maxTokensToMint()","f66a79a0":"secondaryWallet()","f66afcac":"isTheAO(address,address,address)","f66b48da":"getHorseData(uint256)","f66bf229":"minBuyAmount()","f66c3af1":"getAddTokenApproveSignatures()","f66c6691":"shortTimeLock()","f66c75e5":"refund(bytes20,address)","f66cce0e":"adjustKPIs(uint256,uint256)","f66d0076":"getNumberOfCE()","f66d1f65":"releaseToEarlyInvestors(address,uint256)","f66d278e":"AgriChainDescriptionInt()","f66e86bb":"withdrawGasPayback()","f66f0bd9":"MingYuanToken(uint256,string,uint8,string)","f66f2449":"THANKSTEST4()","f66f640e":"pregnantZodiacs()","f66f83f6":"latestSeriesForUser()","f67028be":"trade(uint256,uint256,bool,bool)","f67187ac":"lookup(string)","f671cae4":"setIcoThirdWeekRate(uint256)","f671f5b3":"deleteEntireGlofile()","f6724a55":"totalAmountInvested()","f6729bf2":"canChangeLocked()","f672c1aa":"totalBountyCount()","f672e4d8":"changeAdminUser(address)","f6731d62":"intCallWithArray(int256,uint8[4])","f673745a":"edoPerWei_()","f674cfe5":"VOLUME_60()","f674d799":"removeManyFromWhitelist(address[])","f67501f7":"changePet(uint256,uint256,uint256,uint256)","f6757cff":"getEmployeeInfo(uint256)","f6761151":"Withdraw(address)","f676d539":"get_dati_lotto(bytes)","f6774660":"calculateNumDIDToIssue(uint256,uint256)","f677cf0d":"isDistributed()","f678142a":"ethLandSaleOpen()","f6783518":"KYCToken()","f678462f":"termsAndConditions()","f6785de7":"newPayOutPercentageIsSet(uint256)","f678cf02":"setRelation(uint8,address)","f6791858":"tgeStartTime()","f679791d":"playerRoll(uint256,uint256,address)","f67a1d37":"BlockChainChallenge()","f67a7782":"periodOne()","f67a81ea":"Bigba()","f67abd87":"entryDetails(uint256)","f67b3047":"setItemActive(address,address,string,bool)","f67d5a8d":"sendDividendsWithRefBonus(address,uint256,uint256)","f67e3d0d":"howManyShips()","f67e8db2":"getEthToTokenOrderList()","f67f83a8":"updateFileds(uint256,uint256)","f67ff0af":"_llTransferFrom(address,address,address,uint256)","f68009b9":"getRoundBetAmount(uint256,uint256,uint256)","f68016b7":"gasLimit()","f68036f0":"FaucetManager()","f6806074":"withdrawBonds(uint256)","f680b106":"RateEth()","f6814165":"castToInt(uint256)","f681f6e7":"capitalRaised()","f68297f3":"emergy_withdraw(address)","f6832c4a":"DO()","f683b247":"openSecret(bytes32,bytes32,string)","f68445dd":"myContract2()","f685e618":"_crownUnFreeze(uint256)","f685f942":"ZNCoin()","f685f9ad":"Moac()","f6860955":"emitAborted()","f686640b":"getCrabsOfOwner(address)","f686f019":"getCompte_9()","f686fa10":"verifyBBODocument(bytes,bytes)","f6879623":"addBountyReward(uint256)","f688bb2b":"setAirDrop(uint256,uint256,uint256,uint256)","f68975a9":"Total_Savers()","f68abb25":"approveToFight(uint256,uint256)","f68c021b":"EtherXeum()","f68c5b6a":"equalBytes32ToBytes(bytes32,bytes)","f68ce40b":"turtlemasterReq()","f68da9a0":"AthenaLabsICO(uint256,uint256[7],uint256,address,address[3])","f68dcd2b":"MHTHolders(uint256)","f68e63e3":"PRICE_MUL()","f68f1a0c":"recoverETH_SendbyMistake()","f68f8e42":"dataSourceGetGroupResult(uint256)","f6903c9c":"processEndOfYear(uint256)","f691b30b":"lockReleaseDate6Month()","f691e362":"EtherDOGEICO()","f692715c":"getGameResult(uint64)","f6928070":"numberOfGames()","f6933c7d":"isICOActive()","f694211c":"Composed(uint256,address,uint256[5],uint256[5],string,string)","f6946940":"jack_pot()","f694b761":"createPool(string,address,uint256,uint256,uint256,uint256,uint256,uint256)","f694c4be":"NSEToken()","f6950d5f":"LIFEWORLD()","f6951038":"testCreateWithParentsForeign1()","f696c4ed":"fightAgon(uint64,uint64,uint256,uint256)","f6973532":"setAddOwnerRequest(address)","f6978685":"HashnodeTestCoin_new()","f697a0ed":"ppb(uint256,uint256)","f697ddb2":"firstAddress()","f69871e9":"WithConstructorArguments(uint256,bytes32)","f6988b79":"getDeveloperReservedLockInfo(uint256)","f698bceb":"getMintable()","f698da25":"domainSeparator()","f698e626":"WrapReadTokenData()","f699ad94":"setupFundingInfo(uint256,uint256)","f69a3c7b":"termsAndConditionsAreSigned(uint8,bytes32,bytes32)","f69a6982":"getVirtualTradesSummed(bytes32,uint256)","f69adce6":"dinoToken()","f69b9dd8":"safeWithdrawalTokens(uint256)","f69ba02c":"toB32(address,uint256)","f69bbf16":"setContributions(address,uint256,bool)","f69bf03b":"issuePartnerTokens(uint256)","f69c3b24":"registerEarlyContrib(address,uint256,bytes32)","f69d03c9":"ETCWalletCreated(address)","f69d5f0e":"icoPhases(uint256)","f69da37e":"toRefer()","f69e672e":"modifyContactManual(uint256,address,string)","f69e739e":"voteForCandidate(uint256,address,address)","f69e8384":"ceoRemoveCoo(address)","f69e98d7":"bite(uint256,uint256)","f69f1027":"PRESALE_WEI_GOAL()","f69f18a6":"timesIsOver(address)","f69f190c":"getWorkerStatus(address)","f69f64f7":"setInfo(uint256)","f69f7cab":"createTokenVault(uint32)","f69f8a5c":"approvedBuyerForIndex(uint256)","f6a01234":"TokenStorage(uint256,address)","f6a03ebf":"setStart(uint256)","f6a08ced":"OracleBitfinex()","f6a0be88":"NCRCoin()","f6a0e8a4":"DTCC_ILOW_7()","f6a10249":"TransferedEth(address,uint256)","f6a12b48":"MatchmakerPrevails(address,address,uint256,uint256,uint256)","f6a14bf7":"getNumberOfTokensForTheTeam()","f6a176ae":"fpMul(uint256,uint256)","f6a25127":"test_set_label()","f6a29b81":"EntropyTxDetails(address,string,uint256)","f6a30e3e":"minTicket()","f6a31715":"Revocation(address,uint256)","f6a31b9c":"transferManagerContract()","f6a33253":"changeRatio(uint256)","f6a3b1dd":"totalHardcap()","f6a3d24e":"exists(address)","f6a3e8c8":"lockInfo(address,uint64)","f6a46c2e":"settleBaseDeliveries()","f6a47e9a":"MongoliaNationalToken()","f6a5546a":"testBilibirdaToken()","f6a56bcf":"TianLianCoin(uint256,uint256)","f6a58558":"withdrawRemainingRtc()","f6a5b13e":"m_beneficiary()","f6a5fa30":"subShares(uint256)","f6a60d89":"resumeCrowdsale()","f6a74ed7":"removeController(address)","f6a84013":"totalMEATonsSupply()","f6a8aea7":"financialStrategy()","f6a92de9":"mycontracts(uint32,address)","f6a94ecb":"notifyOfArbitrationRequest(bytes32,address,uint256)","f6ab4243":"buyCastle(uint256,uint256,uint256)","f6ac54dd":"checkRegPeriod(bytes32)","f6ac6684":"getStringZero(uint256,uint256)","f6ad660b":"f3(uint256,uint256)","f6ada1ad":"rewardDaysLeft()","f6adab61":"delayOfICO1()","f6af18f5":"montly_pay()","f6af2718":"Quantastic()","f6afad47":"getDatabase(uint256)","f6afe805":"PRE_SALE_GMRP_TOKEN_CAP()","f6b09195":"preicoTokensPerEth()","f6b098f8":"nextAttackTimestamp()","f6b10854":"safeWithdrawAll()","f6b12f28":"gameOwner()","f6b15fe6":"getProfit(uint256,uint256)","f6b19c74":"drain(uint256)","f6b2b334":"upgradeTo(address,uint256)","f6b2c3b6":"VendTitle(uint256)","f6b39b3c":"ContractTotalMined()","f6b3e080":"roundOneRate()","f6b44d03":"validFactories()","f6b4c691":"getPendingCratesForUser(address)","f6b4dfb4":"contractAddress()","f6b5460f":"withdrawTrackOf(string)","f6b55a93":"hotWalletAddress()","f6b69697":"importPreviousWinners(uint256[],address[],uint256[])","f6b6daf1":"supportedTokens(uint256,uint256)","f6b70702":"LightComplexAirdrop()","f6b781a1":"Bolton()","f6b87500":"internalCalc(int256,int256)","f6b911bc":"burn(address,address,uint256)","f6b91944":"walletLists()","f6b924f8":"EventAuction(address,uint32,uint256,uint256,uint256,uint256)","f6b94cb4":"negotiate(uint32)","f6b9571a":"remove_owner(address)","f6b97131":"redemptionCount(address)","f6b9d05d":"bountyAllocation()","f6b9fd79":"STARTING_VINES()","f6ba13a5":"lastBlockNumberInRound()","f6ba3b6c":"addThing(string,string,bytes32,string)","f6bb3cc4":"deleteString(bytes32)","f6bd5893":"getGas(uint256)","f6be4776":"CannabizToken()","f6be71d1":"setDuration(uint256)","f6bea5dd":"LOCKEDiN()","f6bed059":"mixer()","f6bf0edd":"removecantonEmployee(address)","f6bffff8":"_createTombWithData(address,string)","f6c05625":"isValidNumber(uint8)","f6c0736b":"register_token(address,string)","f6c0d6a3":"_getChainLength(uint256)","f6c1acdf":"proofFor(string)","f6c1db4c":"GetChequeInfoByHash(uint256)","f6c28241":"BuyForFriend(address,address,uint256,uint256,uint256)","f6c3f6cd":"readUserPurchaseAtIndex(address,uint256)","f6c42713":"changeExpiredLimit(uint256)","f6c50d8b":"_ownersTokens()","f6c536a0":"sendBonusMany(address[],uint256[])","f6c5c80d":"cleanUp()","f6c6b731":"activeFirstRound()","f6c7430e":"JAPACHELOR()","f6c8f62e":"TransferBack(address,uint256,uint256)","f6c976d2":"test_1_assertGasUsage50Boards()","f6c98dd7":"WikiToken()","f6c99dad":"SETUP()","f6c9e930":"approveSender(address,address,bool,uint256,uint256)","f6ca75d8":"AkonCoin()","f6cabaa0":"burnedToDate()","f6cb86db":"whitelistTransferPrimordialTokenFrom(address,address,uint256)","f6cbcab0":"mintParts(int256,uint16,address)","f6cbea50":"ErrorReturningEth(address,uint256)","f6cc7d60":"setUnitDefenseIncreases(address,address,uint256,uint256,bool)","f6cdf281":"returnPtSafeMedium()","f6ceecc4":"TokenAdminContract(address,address[],uint256,uint256)","f6cf3a7d":"setDeveloperCut(uint256)","f6cf4570":"BoughtBlock(uint256,uint256,uint256,address,bytes32,bytes32,bytes32,bytes32)","f6cf5411":"startTimePreIco()","f6d0bf2f":"GetContractBalance()","f6d2eb65":"_validateQualityConsensus(bytes32,bytes32)","f6d2ff9d":"setFreelancer(address,address,bool,string,uint256,uint8,uint256[],uint256[],string)","f6d339e4":"setAddress(bytes32,string,address)","f6d361cc":"ENTRY_FEE()","f6d3d52d":"RatesChanged(address,uint32,uint32)","f6d3df65":"ownerStartsCrowdsale(uint256)","f6d4a265":"addLacks(uint16[],int64[],uint16[],int256,int64[],int256,int64[],uint8[])","f6d51638":"getRocIdToTokenId(uint256)","f6d5959b":"getActionStatus(uint256)","f6d68fca":"balanceWinPoolForThirdStage()","f6d6d5aa":"claimableToken()","f6d72acd":"setVoter(uint256,address,uint256)","f6d860d1":"approveUserKYCAndSetReferrer(address,address)","f6d89563":"airdropTotalCurrent()","f6d956df":"buy(uint8,uint256,uint256)","f6da1c0a":"getPriceSMPTokensPerWei()","f6dab356":"getGPSEndTime()","f6db2bac":"LOG_BetLost(address,uint256)","f6db6e50":"ponziToWei(uint256,uint256)","f6dbc252":"MOREToken()","f6dcb32c":"sendRewardTokens()","f6dd0187":"getSubject(uint256)","f6ddac74":"updateLocation(string,string)","f6ddcee5":"_generate_seed(uint256)","f6df0d50":"setFrozenAccountICO(bool)","f6df26d2":"kickOutCommunity(address,uint256)","f6dfafe1":"getShareHolder(uint256)","f6dfcff7":"getCooldownEndTime(uint40)","f6e158b9":"getPickedAssetsAndFinalSeed(bytes32[],uint256[],uint256,uint256)","f6e212ea":"addCrystal(address,uint256)","f6e4641f":"purchaseFor(address)","f6e4a3dd":"tradeBalances(address,uint256,address,uint256,address,address,uint256)","f6e5c6a4":"totalWeiDonated()","f6e5e112":"startingEtherValue()","f6e5e298":"setScientificData(uint256,string)","f6e66c17":"totalAwards()","f6e681a9":"IkuraApproval(address,address,uint256)","f6e72981":"mintManyTo(address,string,uint256[],uint256[])","f6e7b785":"tdeStarted()","f6e7f69d":"test_insert_findWithHintPrevRemoved(int256)","f6e87f81":"SkillChainToken()","f6e898b0":"getIcedAddresses()","f6e9b85c":"doSetCanCreateGrants(address,bool)","f6ea1a3f":"CryptoSpin(address)","f6ea6252":"MINER_END_PRICE()","f6eb1337":"TokenBought(address,uint256,uint256,uint256,uint256)","f6eb13b3":"VietnamToken(uint256,string,uint8,string)","f6eb58de":"TransferManagerRevoked(address)","f6ebe41a":"defaultURIStart()","f6ec91d5":"developerAccount()","f6ecb9ee":"getprizemoney(address)","f6ecd724":"init(address,uint256,bytes32,uint256,uint256,uint256,uint256,bool,bool,address)","f6ecebf2":"LeagueAdministrator()","f6ed4b71":"getBasketDetails(address)","f6ed5342":"updateEscrow(uint64,uint256)","f6ed8fe7":"grantsUnlock()","f6ee2d8d":"developersTokensWallet()","f6ee439f":"registerAssetComment(int256,string,string,uint256)","f6ee87b8":"_0xEtherToken()","f6ee8c59":"FirstBonus()","f6eeb89c":"addBid(string,string,uint256,address)","f6eeff1e":"punkNoLongerForSale(uint256)","f6ef97ff":"transferEthToWallet(uint256)","f6efcb7a":"setKeyData(bytes32,bytes32,bytes32)","f6f0fa8d":"teamReleased()","f6f10a26":"topUpWithEtherAndTokensForHolders(address,uint256)","f6f15ec9":"Larbaoui()","f6f17bba":"distributePreSoldShares()","f6f1995d":"onlyOwnerSetBountyWallet(address)","f6f3144d":"GetEthBalance(address)","f6f32cc4":"CICToken(string,string)","f6f36641":"setV_R5(uint256)","f6f3973f":"fundIco()","f6f494c9":"getTermsContract(bytes32)","f6f505c4":"RaffleResult(uint256,uint256,address,uint256,uint256,uint256,uint256,uint256,uint256,address,address,bytes32)","f6f54833":"HighEndTreasureChain()","f6f55ada":"TokenDistributed(address,uint256)","f6f5eb59":"transferableStartTime()","f6f5f567":"SMPAcquired(address,uint256,uint256)","f6f65f1a":"ASTRN_TOKEN()","f6f6edd4":"issuerDecimals()","f6f6fc74":"holderTeamTokens()","f6f7301e":"getById(int128)","f6f82ecb":"massChangeRegistrationStatusForSilverWhiteList(address[],bool)","f6f844e4":"setOp(bytes32)","f6f8ca07":"burnPXL(address,uint256)","f6f91737":"MAX_FREE_REFERRAL_PACKS()","f6f94a85":"ScaleFactor()","f6f94b47":"MiningPayout(address,uint256,uint256)","f6f96d91":"rateOfEther()","f6f98e34":"calcReleaseToken(address,uint256,uint256)","f6fb2c72":"buyGuardian(uint256,uint256,uint256)","f6fb4c9a":"_createFilm(string,address,uint256)","f6fb6ecf":"buildHouse()","f6fbc06a":"getWeiInvested(address,address)","f6fc8160":"addSeed(uint256)","f6fc96ad":"mainsale()","f6fcbee1":"getArrayUint(bytes32)","f6fcc14e":"agTechWallet()","f6fe3a01":"getUint256Min(int256)","f6fee732":"getAccountNote(address)","f7008156":"_haveEveryoneDeposited()","f700abf1":"addBudget(uint256,uint256)","f700ead9":"withdrawTokenMulti(address[],uint256[])","f702dd8a":"hkchain(uint256,string,string)","f703601e":"safe_add(uint256,uint256)","f703e773":"changeLifeExpectancy(uint256)","f7044bae":"getShareHolderCount()","f7048161":"checkRefundSignature(uint8,bytes,address)","f704b57a":"Bitconnect()","f704cb98":"addInvitation(address,address,uint256,address,string)","f70532fe":"getContractsOf(address,uint256)","f705fb87":"preICOend()","f7066121":"lastJackpotRound()","f706b476":"set_pauseUET(bool)","f706b814":"PARSEC_CREDIT_DECIMALS()","f7073490":"buyLink()","f7074919":"seenHereA()","f70794ea":"acceptHelp(uint256)","f707a308":"tierTwoMin()","f7086dd1":"SmigesToken()","f70904b4":"sale1Accepting()","f7095d9d":"updateTentativeWinningChildUniverse(bytes32)","f709dd51":"getTrademark()","f70ad595":"team_release_epoch()","f70b0a07":"setTrustedLateCloser(address,bool)","f70b13c5":"vestedTokens(uint64)","f70bbb9a":"getProposalExternalToken(bytes32,address)","f70bbdaf":"create(string,string,uint32,int256,string,address)","f70bdba7":"AdidasCoin()","f70c92de":"GOSHUIN()","f70ccc6e":"MaptPricing()","f70d7629":"_verifyOwnershipOfTokens(uint256,address,uint256)","f70dbb77":"isPresalePeriod()","f70dd1fe":"isAllocated6()","f70eabff":"addTeamAndAdvisorsAllocation(address,uint256)","f70f1821":"weeksFromEnd()","f70fa221":"getInitializeCashValue()","f71143ca":"isSaleLive()","f712d7ff":"testFailControllerTransferFromWithoutApproval()","f712f3e8":"implementsERC165Interface(address,bytes4)","f7138eaf":"createArtworkAuction(string,string,uint32)","f71441a5":"maxGoal()","f7146269":"testGetRandomDragon(uint256)","f7149220":"RNG()","f714a96e":"myCompany()","f714bf3d":"overflowOwner()","f714de9c":"MultiAccess()","f7160766":"getCompte_13()","f716171c":"createTrade(uint16,address,address,uint256,uint16,uint32)","f7164029":"upgradePrefixPreSignedFirst(uint8,bytes)","f716c400":"getCrowdsaleUniqueBuyers()","f716fe43":"s37(bytes1)","f717442a":"previousPriceOf(uint256)","f717c310":"freezeTransfersSince(uint256,string)","f71868da":"Ethereumcapital()","f719254d":"cancelEthToTokenOrder(uint32)","f719e111":"useOraclize()","f719edfb":"firstPublish()","f71ad40e":"icoCapInWei()","f71b041c":"refundUser(bytes32,uint8,uint256,uint256)","f71b382c":"PIEXTREAM()","f71be837":"sign(address)","f71c60bd":"AMBASSADOR_FIVE()","f71cc3a5":"setUserStatus(address,uint256)","f71db383":"setArbitrationContractAddress(address)","f71dcb10":"CreatedMTP(address,uint256)","f71f7a25":"set(bytes32,bytes32)","f71f9c38":"SupplyChanged(uint256)","f72047ff":"_enableRefunds(address)","f72084b2":"foundationShare()","f720a453":"senderStake()","f720d563":"endAttack(address,bool,uint256,uint256,uint256,uint256,uint256,uint256[])","f720ef08":"setTokenAiNetworkToken(address)","f720f3d2":"tokensToEther(uint256,uint256)","f720f80b":"isMaster(address)","f7213db6":"orderFills(bytes32)","f72457af":"CertifierDb()","f7253071":"lastBlock_f0()","f725839f":"multiGenerate(address,address[],bytes)","f7260d3e":"receiver()","f7265042":"getUsersShipsIds()","f726af40":"MilestoneAmountRaised()","f726f715":"distributeFunds(uint256)","f727550e":"determineOutcome(uint256)","f72755fe":"getRequest(int256)","f72758e7":"getBracketDataMiddleTeamIds(uint8)","f72860ca":"modifyCustomer(string,string)","f7286888":"getPhaseNumber()","f72918ef":"addVoterVote(address)","f729688e":"_hasFlags(uint256,uint256)","f729b216":"moreTokenPerEtherForSeedRound()","f729cf0d":"getJob(bytes32)","f72a244d":"handleAllowance(string,uint256)","f72ae72c":"remainingTokenForSale()","f72b7ab9":"SbloccaConto(address)","f72c436f":"isHuman(address)","f72c75a5":"delegateVestingContractOwner(address)","f72d2c22":"BONUS_HI()","f72d3b15":"LamboPresale(uint256,uint256,uint256,address)","f72d50a9":"getPOOL_edit_4()","f72d53ba":"getNumMatches()","f72db5a3":"getLLV_edit_8()","f72e460a":"getBUUU(bytes32,uint256,uint256)","f72e695b":"setPoolCut(uint256)","f72f30e1":"Vesting(address)","f72f34db":"getDCountedBasicBallotsN(bytes32)","f72f6826":"ChangeEnd(uint256)","f72fc599":"_isThereAnOnGoingTapProposal()","f73052e8":"totalSoldCount()","f73079a6":"Auto(address,string)","f73089b9":"sale2Stopped()","f7309f29":"testLedgerUnderPayback()","f731c3bd":"lotteries(uint32)","f731d33c":"ApzCoin()","f7326286":"getARInvIndexTable()","f73294b8":"isValidatorAlreadyVoted(address,address)","f732eb66":"getPayoutDenominator()","f7342cd3":"SGF()","f7362152":"testThrow_testableContributionCaseExpectFailure()","f73770e7":"is_contract_paused()","f737f274":"getBuyDemand(uint256)","f73857cc":"deauthorizeAddress(address)","f738e5ca":"ownerTakeProfit()","f739a501":"snapShot(uint256,address)","f739ba2f":"picops_withdraw_excess()","f739c261":"legendary()","f739ed4c":"id_for_user_version(uint256,uint256)","f73a590c":"distributed_team()","f73b5541":"bulkWhitelist(address[])","f73baf62":"proxy_initialization()","f73c30e3":"getESOP()","f73c8dfd":"pvpQueueSize()","f73cc97c":"AddDOT(bytes)","f73d05db":"getSha()","f73d594c":"ERC20Base()","f73e05dd":"RetrieveCommissions()","f73f4ebc":"processBuyRequest(string,address,uint256,uint256,bool)","f74034df":"purchaseGen0Token(uint256)","f7407178":"get_banlance(address)","f740fbc9":"test_validPerc()","f74100e3":"getBits(bytes)","f741b602":"denyInvestor(address)","f742048b":"NlvToken(uint256,string,string)","f7426b62":"unlock(bytes32,bytes,uint256[],bytes,bytes,bytes,uint256[],bytes,bytes)","f74279b0":"totalEarning()","f7434ea9":"arbitrationCost(bytes)","f743d334":"BancorBuy()","f744538d":"submitClearingPrice(address,bytes32,uint256)","f7448a31":"transferERC20(address,uint256)","f745630f":"update(uint256,string)","f746e28d":"fundSchool(uint256)","f746f365":"icoSoldCap()","f746fcdb":"presaleMade(string,uint256)","f74715cb":"ApproveERC20(address)","f7474d00":"payEther()","f74758ef":"safeSendCard(uint256,address)","f7477435":"TokensWorldCoin()","f747a5eb":"auctionBid(bytes32)","f747b744":"investFromWallet(uint256)","f749013e":"dateStartContract()","f7493c6a":"UpdatePremiumLimit(uint256,uint256)","f749bdc1":"BUYER_CHECK_STEP(bytes32)","f749d980":"LastExecuted()","f74a4e63":"transferToMint(uint256)","f74b766a":"createBet(uint256,uint256,uint256,bool,string)","f74c67b3":"getAddressKYCState(address)","f74c753f":"dontReturn()","f74d73ec":"issueSertificate(address,address)","f74deae3":"MultiSigWallet(address,string,uint256,uint256,string)","f74e8655":"setWhitelistAgent(address,bool)","f74e9bde":"pwr(uint256,uint256)","f74f4702":"changeRequiredMajor(uint256,bool,bytes)","f74fbb47":"StateChanged(bool)","f74fc598":"listSharesForSale(uint256,uint256)","f750aaa6":"withdrawEverything(address)","f75165c6":"right22(uint256)","f751758b":"getCurrentTokenPrice()","f751b26a":"unclaimedRoyalty()","f751c2f5":"MAC()","f751cd8f":"drop()","f752644c":"aelfCommunityMultisig()","f752fdc3":"wdivide(uint256,uint256)","f75316b4":"CobinhoodToken()","f754f766":"setBonus(uint8,uint8,uint8,uint8)","f7553098":"voteForOutcome(int256,uint256)","f755a76e":"createBoard(bytes32)","f755a98b":"setCrowdsaleEndBlock(uint256)","f75640b3":"crowdsaleCanceled()","f7566b49":"getBet(address)","f756b574":"getDropAmount()","f7572cf3":"newCampaign(address,uint256)","f757342c":"setRewardWasSent(address)","f758ff59":"SentDeveloperFee(uint256,uint256)","f759e298":"getNumberOfBlocksPerKick()","f75a275b":"reservedLPT()","f75b8d3c":"getExpiredCratesForUser(address)","f75beacf":"HuaTuo()","f75ccbf0":"checkErrors(bytes32)","f75cf7d5":"IndecoinBounty()","f75d34bb":"ICOChanged(address)","f75e5d85":"selfDestruct(uint8,bytes32,bytes32)","f75eb240":"removeCallSpenderWhitelist(address)","f75ec528":"getSpaceInfo(uint256)","f75fa5e1":"xorReduce(bytes32[],uint256)","f75fb878":"preICOwei()","f75fdcaa":"cancelMilestone(uint256)","f760d2a2":"_incrementBlockStats(bytes16,uint8)","f761720a":"isEquiped(address,uint256)","f7618a40":"LIMIT_PROMO()","f7620435":"inquire_length(uint256)","f7627da2":"startUnlimitedSale(uint256)","f7628949":"B2ANDcoin()","f762e147":"addAsset(uint256,uint256,bytes)","f7637bec":"AccountReaderRemoved(address,address)","f764531d":"saleStartAtBlock()","f7647f36":"acceptPurchase(uint256,uint256)","f764e8a0":"partPos()","f764eb93":"LogDepositForDividend(uint256,uint256)","f765088f":"UpdateClientAddress(address)","f7654176":"split()","f76543e9":"hasOpening()","f7658e0f":"bonusDecreaseDay()","f765b6b1":"getEventInfo(bytes32)","f765e6e4":"return_pause()","f765ec6f":"lastBlock_a11Hash_uint256()","f766658d":"finalizePreIcoDate()","f76692a6":"dtTestCitySnapshot(address,uint256)","f766cd3e":"minInvestorCap()","f766eca7":"EtherDeltaApproveToken(address,uint256)","f7670b0c":"updateAuth(address,address,bool)","f7678fda":"setNewRegister(string,string,uint256)","f767fdcf":"KRYPT()","f767fe97":"MarketingAddr()","f7682aa5":"CURVE_CUTOFF_DURATION()","f7683b37":"ETTCE()","f768402a":"addProduct(address,string,string,uint256,string)","f768923a":"ignite()","f76a24e6":"isTesting(uint16)","f76aae2f":"addVerifiedAddress(address)","f76b8c5e":"destinationOf(uint256)","f76bd7d1":"disableIssuance()","f76bf292":"StormToken(address)","f76bf757":"registerPage(bytes8,string,bytes32,string)","f76c0f4e":"updateFlipTokenRewardAmount(uint256)","f76c1ea5":"setReceiptLiablity(address,address)","f76c84eb":"manualChangeMonth(uint256)","f76c906b":"mCurrentSnapshotId()","f76ce123":"ERC20Template()","f76cf4bf":"BiToro()","f76d270e":"_setTokenBudget(address,uint256)","f76d3569":"auditorDelegate()","f76e8d29":"createSplitAgreement(address,address,address)","f76e9183":"VitalSkin()","f76f8d78":"SYMBOL()","f76f950e":"uint2str(uint256)","f76ffe7a":"startMintingData()","f77014da":"setGVE(uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32,uint32)","f7701b47":"downloadPriceInWei()","f7701ce8":"batchDistribute(address[],uint256)","f770a865":"FaradCryptoken()","f770c96f":"TDESupply()","f771bc6b":"minerSaleCount()","f772547b":"addressToSubscriptions(address,uint256)","f77267ea":"sendTokensToWorkers(uint8,uint8)","f77282ab":"finalizeAuction()","f773a3fb":"maxAssignedRequests()","f773ab80":"isPVPProvider()","f773c770":"TMSYToken(address,address)","f77404e5":"totalCommonWithdrawSupply()","f7745f88":"BudCoin()","f7746e36":"cars(uint256)","f7749e32":"rocketTimeUntilMoon(uint256)","f7750bd5":"startEthGetToken()","f7759c84":"maxTokenSupplyPreICO()","f7768580":"EventTransferAction(address,address,uint32,uint8)","f7770906":"buy_energy_core(address,uint32,uint32,uint64,uint32,uint64)","f778f32b":"addAlgo(uint256)","f7791010":"approveWriter(uint256,address)","f779a68d":"_deposit(address,address,uint256,bytes)","f779abf7":"DaoUpgraded(address)","f77a0923":"BitcoinProcessor(address)","f77a490d":"setMinPurchaseInWei(uint256)","f77aa0ad":"changeRedTeamAddress(address)","f77abd74":"getMatchPointsGroups(uint256,uint192)","f77b1856":"getAddTokenData()","f77b6f61":"getCRhashOfCRTokenId(address,uint256)","f77c1dc6":"unknownInvestors(uint256)","f77c4791":"controller()","f77c4ff9":"_firstRoundFight()","f77ca208":"managerIsPaused()","f77d62f0":"roundNumber_()","f77da6d5":"claimImmediateTokens(address)","f77dc854":"setHookableTokenAddress(address)","f77dff06":"joinPillarWithEarnings(uint256,uint8,uint256)","f77e4d8b":"test_YayIsNotOverSixtyPercent()","f77e8b83":"addPlayer(string)","f77f29b1":"getFeeWindow()","f77f2f2e":"setRewardStatus(address,bool)","f7800e69":"fundVault()","f780259e":"totalPrayers()","f780d867":"add_coin(string,string,address,uint8)","f7815fae":"getIntField2()","f782b2ea":"_confirm(address)","f784cae5":"Fetish()","f784dd61":"RealeaseTime()","f78525a1":"getFaucetByName(string)","f785ef72":"decimals_()","f785f03d":"setMigrating(bool)","f7860bb1":"addToBounty()","f7862ec2":"feeWindowBurn(address,uint256)","f7868884":"FOUNDERS_REWARD()","f786bb62":"Hiken(uint256,string,uint8,string)","f786becd":"MAJOR_VERSION()","f786cb82":"updateLemontokensRemainingToDrop()","f7870c5b":"Unlock(address,uint256,uint256)","f7888aec":"balanceOf(address,address)","f7892887":"phase_1_Time()","f7899d9e":"_buyCommonTTM(uint256,uint256,address,address)","f78a706a":"extraEmission(uint256)","f78a7a55":"createBurnRequest(address,uint256,string)","f78c6b54":"donations(bytes32,uint256)","f78cc9cf":"getTokenNextPrice(uint256)","f78d1c6a":"managePID(uint256)","f78d5494":"approveNewMintRequest()","f78dd0c1":"MovieCoin(uint256,uint256)","f78e4210":"test_oneValidEqAddress()","f78ed322":"regNameWOwner(string,address,address)","f78fa141":"_uintToSPDStr(uint256)","f78fadc6":"HXC()","f78fe0e9":"stand(uint8[],bytes32,uint8[])","f7903871":"RevTokens()","f7908f00":"verifyTransaction()","f79098f4":"getEditionLimits(uint256)","f793595a":"ThreeAT()","f7935969":"getRank(address,uint256)","f793fb64":"valInt()","f79480f8":"lastBlock_f19Hash_uint256()","f794e7f2":"addDefenceParts(uint8[])","f794eb58":"getBonusRate()","f7963e8a":"testNewCounterValueIszero()","f7966eef":"changeReputation(address,int32)","f7969147":"currentBurned()","f796e06f":"calculateAndRegisterBonuses(uint256)","f79710fd":"extraTokens(address,address,uint256)","f797ac0e":"addSellingItem(uint256,uint256,uint256)","f797b617":"buyInvestorPack(uint256)","f797f7b6":"ETH_SIGN_TYPED_DATA_ARGHASH()","f7981bdd":"indSeed()","f7982243":"addRecipient(address,uint256)","f7987a03":"applySetMaxFeeWithdrawal()","f798abce":"teamLockAddr()","f79915ce":"kkTestICO91()","f7992d85":"eta()","f7996163":"joinSinceOf(uint256)","f79a2b84":"setFirstMile(address,address)","f79a3c25":"voteForDisable()","f79a97fc":"isSpentTxPaymentForMCW(bytes32)","f79acad3":"approveInvestorsInBulk(address[])","f79b22e0":"betOnATeam(uint256)","f79cfaea":"STLToken(string,string,uint8,uint256)","f79d0a8b":"callSomeFunctionViaInner1()","f79d6687":"removeTokenTime(uint256)","f79dcf8d":"earliest_buy_time()","f79e2b32":"inListAsOf(address,uint256)","f79ea94d":"VoipToken()","f79ebd7f":"tokenPriceDenom()","f79ed94b":"reserveAddress()","f79f528b":"getMinAuctionValue()","f79fc70d":"testBaseStoreTokenUsingDeployedContract()","f7a01b93":"StateMachine()","f7a06a88":"setSellerGuarantee(bool,uint256)","f7a0715f":"DoneToken()","f7a084c0":"AIRDROP_START_AT()","f7a0b2da":"updatePeloExtenstionContract(address)","f7a0ee1c":"maxtokens()","f7a0fa0a":"getShareDistribution(bytes)","f7a268c4":"freezeAccount(address,bool,bool)","f7a33598":"round(uint256[4])","f7a34573":"setAction(string,uint256)","f7a40e99":"moveERC721Tokens(address,address,uint256)","f7a4c45c":"calculateSaleReturn(uint256,uint256,uint8,uint256)","f7a6a046":"backOrenCoinOwner()","f7a7408b":"BuyLevel()","f7a7ec12":"fund_color(address,address,uint256,uint256,uint256)","f7a80784":"addProduct(string,uint8)","f7a8b34d":"planetName(uint256,uint256,uint256)","f7a919be":"createRegion(address[16],address,uint256,uint256,uint256,uint256)","f7a9a152":"count_users()","f7aa4e0e":"MithrilArrows()","f7aad9ed":"amendBalances(address[])","f7ab6ec6":"getOfferingByProposal(address,uint8)","f7abab9e":"tokenTotalSupply()","f7ac5611":"pushStatus(string,uint256,uint256,int8)","f7ac9c2e":"approvePreSignedHashing(address,address,uint256,uint256,uint256)","f7ad7d8f":"getAllowedAmountByTeam()","f7ad906f":"contractTransfer(address,address,uint256)","f7adc48f":"test3(uint256)","f7ae24ae":"FundWithdrawal(address,uint256)","f7ae9421":"checkInvestorBalance(address)","f7aeea14":"removeGlobalConstraint(address,int256,address)","f7af21c9":"cancelCrowdsale()","f7af630b":"GetBindTokensAccountEvent(address,string)","f7b09d33":"giveReserveFund(address,uint256)","f7b14066":"setup(uint256,uint256,uint256,uint256,uint256,uint8,uint256,uint256,uint256,uint256)","f7b188a5":"unPause()","f7b22fa2":"getCurrentBeneficiaryCap()","f7b28073":"moleculartechnology()","f7b2a7be":"rewardAmount()","f7b42d08":"set_price_and_sell(uint256,uint256)","f7b43abf":"PRESALE_ICO_PORTION()","f7b47870":"setPublicOfferingHolder(address)","f7b4b087":"purchaseFirstTokens(uint256)","f7b4feec":"FaucetsToken()","f7b53431":"feesTaken()","f7b54065":"getInvestmentCurrentValue(address)","f7b578ee":"LiveCoin()","f7b6302e":"getInvestorTokensPurchase(address,uint256)","f7b75258":"withdrawlsEnabled()","f7b77a21":"MasternodeRegistered(address,uint256)","f7b822db":"setDEditor(bytes32,address,bool)","f7b89a3e":"getTotalCosts()","f7b8a600":"payAltCoin(bytes32,uint256,bytes)","f7b8eeb7":"getWhale(uint256)","f7b92f34":"CandidToken()","f7b95d35":"setRNGCallbackGas(uint256)","f7ba8896":"random(uint256,uint256,address)","f7bada53":"randomChoiceFromticketPool()","f7bbd1c1":"setMinAcceptEther(uint256)","f7bc2003":"releaseApprove(bytes32,uint8,bytes32,bytes32)","f7bc39bf":"owns(address)","f7bd2361":"LookAtBalance()","f7c0085b":"changeRandomOrgAPIKey(string)","f7c00e2f":"presaleWeiRaised()","f7c07442":"getReferrals(address[])","f7c0f4c6":"calculateRates()","f7c0fa4a":"requireCorrectReceipt(uint256)","f7c2b38c":"seconds_left()","f7c360e0":"fee_claimer()","f7c38052":"createBuyOrder(address,uint256,uint8[],address[5][],uint256[6][],uint256[],uint8[],bytes32[],bytes32[])","f7c3b210":"ENCKToken(uint256,string,uint8,string)","f7c3ee7a":"immortality()","f7c42ac8":"onChainIdentities(address)","f7c46a73":"totalhospital()","f7c58b62":"weiPerEther()","f7c5f4b6":"getPreICOBonus()","f7c618c1":"rewardToken()","f7c68ffb":"isReleasedOnce()","f7c824f1":"CombineCard(uint32)","f7c8a091":"forPresale()","f7c8af48":"destroyItem(uint256)","f7c8d634":"tab(bytes32)","f7c9a7be":"drawTertiaryCWinners(uint256)","f7c9afa2":"onlyOwnerGetAdvWallet()","f7c9f1da":"setPonziPriceinWei(uint256)","f7c9f74a":"insert_contribution(address,uint256)","f7cab847":"getRule(bytes32)","f7cb5709":"CoinsLimitUnalterableInteger()","f7cb789a":"roundDuration()","f7cb8e66":"testIt()","f7cbcb8f":"withdrawCrowdsaleOsherCoins()","f7cc8c13":"MobSquads2()","f7cc8f40":"nbBackerWithMoreOrEqualTen()","f7cdf47c":"ETHEREUM()","f7ce25bb":"cardAndChecklistIdsForOwner(address)","f7ce4479":"setCommunityAddress(address)","f7cf0aa1":"updateMinBet(uint256)","f7cf9a1c":"Create(address,uint256,address,string)","f7cfd902":"removalBlackList(address)","f7d08eae":"distributeReserveSupply(uint256,address)","f7d0e04b":"setReputation(address)","f7d4c7e3":"getBracketDataFinals()","f7d518b5":"StartNewGame(string,string,string)","f7d5e485":"airdropToken(address[],uint256)","f7d6dbe5":"UpgradeProposals()","f7d7477b":"sumAmounts(uint256[])","f7d8417d":"MYRED(uint256,string,uint8,string)","f7d871df":"NucleusVisionAirDropTokensMinted(address,uint256)","f7d8c883":"breedWithAuto(uint256,uint256)","f7d9078e":"mintToSpecialFund(address)","f7d91cd4":"allocateReserveCompanyTokens()","f7d97577":"setPrice(uint256,uint256)","f7d978a2":"changeEntryFee(uint256)","f7d9a5ae":"BtcToken()","f7dadf7d":"setBurnFormula(address)","f7daef72":"getIndexBatchByUsername(bytes20[])","f7db7348":"preapprove(address,uint256,uint256,uint16)","f7dba1dc":"nullifyProduct(bytes32)","f7dc0455":"transferInitialAllocation(address,uint256)","f7dc909b":"createNewEvent(bytes32,string,string,uint256,string,string)","f7dd2e28":"BAG_TRANSFER_MINIMUM_AMOUNT_OF_BUYS()","f7ddfb4b":"meltingContract()","f7decfd1":"blacklistSwitch()","f7defe8c":"pickTheWinner()","f7df8f87":"vestingFounderAddress()","f7e0bc92":"COLOR_CUSTOM()","f7e0e743":"removeFirstAdvisorLock(address)","f7e23677":"catAttributes(uint256,uint256)","f7e23778":"PresaleEnd(uint256)","f7e28f8b":"weiRaisedAfterDiscountRounds()","f7e2ed66":"mOnTransfer(address,address,uint256)","f7e2ff00":"userWithdrawalStartTime()","f7e3c068":"PrestigeUp()","f7e3f00e":"PUBLIC_SALES_2_RATE()","f7e42647":"updateTrustRank(uint256)","f7e498f6":"verifyProof(bytes32,bytes,bytes,uint256,bytes32[])","f7e4a4a9":"hardCapPreSale()","f7e502cb":"HALToken()","f7e5951e":"_calcRemainReward()","f7e6af80":"_getOwner()","f7e74e65":"updateEmployee(uint256,uint256,string)","f7e77e44":"releaseMyVestedTokens()","f7e78e78":"verifyDeal(bytes32,bytes)","f7e7d6d8":"Noscam()","f7e80582":"enableAutoReinvest(uint256)","f7e83aee":"verify(bytes,bytes)","f7e95364":"updateGuMasks(uint256,uint256,uint256)","f7e98d15":"YELLOWLAMBO()","f7ea7a3d":"setTotalSupply(uint256)","f7ead092":"totalWinAmount()","f7eaec4f":"removeAgent(address,uint256)","f7eb4017":"findAddressByEndpoint(int256,string)","f7ebc39a":"isTransferAllowed(address,address,uint256)","f7ec221e":"authorizedToDraw()","f7ec2f35":"isContract()","f7ec7b51":"create_new_deal(uint32,uint256,uint32)","f7ecc428":"mintForInvestor(address,uint256)","f7ed6031":"getRoundDividendShare()","f7ed71d0":"left40(uint256)","f7edbbe6":"nextLapId()","f7ee503e":"editTicketPrice(uint256)","f7efd150":"create(address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)","f7efd408":"votesIter(uint256)","f7f03516":"EasyHashingCoin()","f7f15304":"ARCD_FUND()","f7f1962e":"firstAuctionsInitialDuration()","f7f2210c":"openBetIndex()","f7f2741c":"AFTCoin()","f7f32916":"computeTokenWithBonus(uint256)","f7f33c54":"CriptaliaRewards()","f7f3815c":"setOperation(address)","f7f3ad16":"FixBet51()","f7f3da3b":"TestContractOne()","f7f4b9d4":"saleEnd1()","f7f50faa":"chunksAlreadyVested()","f7f5886e":"initializeS4FE(address)","f7f59411":"purchaseExistent(uint256)","f7f59b0f":"LogCustomerVerified(address,address,uint8)","f7f6d4da":"GreenEarthEconomyFund()","f7f74b56":"closeVoring()","f7f7915d":"setNextRoundFee(uint32)","f7f8303b":"product1_sell()","f7f87361":"DepositProxy(address,address)","f7f8aae9":"SudoEnabled(bool)","f7f9cb1c":"wrappedContract()","f7fad9fc":"UpdateState(uint256)","f7fb07b0":"getCurrentRate()","f7fb4801":"firstRoundWMEnd()","f7fc1bd6":"PROMETHEUS_SHIP_PRICE()","f7fc7783":"SanityPricing(address)","f7fc8a91":"haveShelf(string)","f7fca4f4":"setFeeFormula(address)","f7fca8d3":"ratePublicSale()","f7fce4da":"raffle_addr()","f7fd2e19":"TCoin()","f7fd3d01":"releaseCarbonDollar(uint256)","f7fe2e32":"newBurnableOpenPayment(address,uint256,uint256,string,string)","f7fe3477":"assertEq(bool,bool)","f7fe6f39":"fibo()","f7feeb31":"amendEntry(uint256,bytes32,bytes32,bytes32,bytes16,bytes1,bytes16,bytes32,bytes32)","f7ff50e2":"transaction_count()","f7ffaa5b":"ExTokeA()","f7ffbd85":"amountRemaining()","f7ffc366":"executeRulingB(uint256)","f80176ab":"GetEthereum(address,uint256)","f8018a79":"prepend(address,address)","f801fae9":"_fCancelDist()","f802075f":"requiredEndowment()","f8024d10":"getMemberAtIndex(uint256)","f80334ae":"selfDestruction()","f803bef0":"forceUpdateWinners(address[])","f803f97e":"transferAUTOtokens5(address[])","f8058bdf":"_CROWDSALE_PAUSED()","f805b300":"SALE_4WEEK_BONUS()","f8065ed6":"setStopMatchBetting()","f8083bab":"simulatedWithdrawal(address,address)","f8085c58":"updateStakerRanking(address)","f80979d6":"isPreSalePeriod(uint256)","f809c826":"managerToFunds(address)","f80af907":"roundThreeAmount()","f80b3564":"returnAddress(bytes32,uint8,bytes32[2])","f80b3cfa":"checkBetLowhigh(uint8)","f80bb2a7":"activateSubRound(uint256)","f80bbedc":"ethToToken(uint256,uint256)","f80d6e90":"GPHToken()","f80d9e58":"PVE_BATTLE()","f80db825":"AffiliateCoinMultiSigWallet()","f80dfdc2":"getTmpWriteTimestamp(bytes32)","f80e77d2":"updateETHNZD(uint256)","f80ea517":"getDealerInfo(string)","f80eba7c":"getTrapid(uint256,uint8)","f80f44f3":"right97(uint256)","f80f4ea8":"mintAdminApproval(address,address,uint256)","f80f5d4a":"EightteenToken()","f80f5dd5":"addWhitelist(address)","f80f96f6":"returnGanaBeforeSale(address)","f80fb7ae":"addCET4To(address,uint32,uint32)","f81126a7":"periodICOStage3()","f8115814":"TOKToken()","f8115891":"getSatTokensOwed(address)","f8125093":"set_devcon_map()","f8129cd2":"send(address,address[],uint256[])","f812f423":"advanceEndTime(uint256)","f8132b66":"lockCycle()","f813f027":"requestedTokens()","f813fcfa":"changeFooIntArrayDynamicSize(uint256)","f8140a7e":"standardFee()","f814530b":"_allocateETH(uint8,bool)","f81501f8":"smartContractPriceIsSet(uint256)","f815e6ab":"kdtFundDeposit()","f816f0aa":"gameCancelled(uint256)","f8185a13":"getBatches(address)","f818d723":"transferPower(address)","f8193547":"transferAndExecute(address,uint256,string,string)","f81a1860":"killOnUnsupportedFork()","f81a95db":"setReferrerFee(uint256)","f81b1998":"StopTransferGuard(address[])","f81bfa3f":"killThisContract()","f81d0292":"setParentAddress(address,address)","f81d087d":"prepareLottery()","f81d29df":"GambangCoin()","f81dc03f":"QuizwinToken()","f81de228":"getInvestorPacksAvailable()","f81dee03":"set_koef(uint256)","f81e8775":"resolveAddress(address)","f81ed6ae":"updateStart(uint256)","f81f8101":"initializedTime()","f81f8bf6":"burnReputation(uint256,address,bytes32)","f81ff8e7":"CurrentCoinPrice()","f8201a32":"requestLoan(uint128,address,address,address,uint256,uint64,bytes)","f821a17c":"getVotingNetworkDetails()","f821c423":"sendAirdrops(address[],uint256[])","f822372e":"Lab51TestToken()","f8225a05":"_setTransferFeeAbs(uint256)","f8226dbf":"TC(uint256,string,string)","f822841e":"PropertySet(address,bytes32,bytes32)","f8228f14":"assignSpartansToBattle(uint256)","f8229eba":"addAuthByCode(string,string,string)","f8241d7e":"updateAddresses(bytes32[],address[])","f8242c32":"addChallenge(address)","f824384a":"addInvestorAtID(uint256)","f8247299":"getIudexScoreAll(address,address)","f8256121":"publicResolver()","f8264772":"getTokenss()","f828500d":"isValidMessageLength(string)","f828c3fa":"scheduleCall(address,bytes4,bytes32,uint256)","f829d1a0":"walletSplitPercentage()","f82a4707":"secondsBetweenMints()","f82a7496":"giveMeCDP(uint256)","f82ab2ec":"PRIVATE_SALE_PRICE()","f82b2c31":"confirmByC(uint256,string)","f82bffa0":"get_merkle_proof(uint256)","f82c09a3":"PresentToCEO()","f82c2301":"resignFromCommunity()","f82c50f1":"log(uint256)","f82de7b0":"mineBlocks(uint256)","f82e4a4f":"Cointum(address,address,address,uint256,uint256,uint256)","f82ec3e6":"Norm()","f82edc1b":"unSign(address,address)","f82f396f":"sha(string,string)","f82f7a4b":"startDepositExit(uint256,address,uint256)","f82fb363":"icoController(address)","f82fe152":"PLAYER_METADATA()","f83064c7":"transferMintship(address)","f830c325":"updateToken(string,string)","f830d489":"depositExit(uint256,bytes32,bytes,bytes)","f83186f5":"HoryouToken()","f831aee6":"kingdomCreationFeeInFinney()","f831e962":"getWebStats()","f831ebab":"freezeTokens(address,uint256,uint256)","f831fe32":"updateApp(string,address,uint256,bool)","f833061b":"RESELLING_LOCKUP_PERIOD()","f8333e0e":"Aramco()","f8339005":"getSaddle(uint256)","f833f984":"OSEToken()","f8341fca":"BezantToken(string)","f8347242":"betsNum()","f834db41":"getBeneficiaryManage()","f834e212":"setGamePrize(uint256,uint256)","f8351daf":"winningCard()","f8354a82":"nextArenaTime()","f835a686":"setSaleEnd()","f835eb1b":"New(string,uint256,uint256,string,string)","f83629e0":"EBLCreation(uint256,string,string)","f83761e5":"setBAU2(bytes32,address,uint256,uint256)","f837e7c1":"battleAdd(uint256)","f838b0e9":"get_allowance_expires(address,address)","f838ea1a":"setDefaultMaxJump()","f838f6dd":"AssignBurnFees(address,uint256)","f8392303":"changeTicketMag(uint256)","f839407b":"setRateRoundSeed(uint256)","f83944ab":"LogEggAcquisition(address,uint256)","f839686d":"STSTEST7()","f839dc62":"pauseWork(uint256)","f839eb1a":"Referral(uint256,address,address,address)","f83a4c8a":"claimBet(uint8,uint8)","f83a768d":"addDiceRoll(uint256,uint256)","f83b5dce":"ec()","f83c4f82":"enableCirculation()","f83c6f64":"MIATOKEN()","f83ce05d":"deauthorizeBurnRequester(address)","f83d08ba":"lock()","f83d14e6":"buySketch(uint256)","f83d69db":"intMin(int256)","f83d96c1":"InsuranceAgent()","f83e3f5a":"SetProjectName(string)","f83e5793":"caged()","f83e9a20":"lock_period()","f83eb5dc":"forcedRefund(address)","f83fcdea":"setPrice(uint256,uint256,address)","f84038b1":"getMinimumContribution()","f8407634":"checkFunderAccount(address,address)","f8408a8d":"Funding_Setting_cashback_time_start()","f843545c":"active_payable()","f843b1b6":"singleWithdraw()","f843d4ec":"setEthereumBalance(uint256,bool)","f843dad6":"phaseTwoEnd()","f843ea4d":"updatePhaseSupplyAndBalance(uint256)","f844a9f4":"requestArbitration(bytes32,uint256,address,address)","f84501e0":"prosperaTokenAddress()","f84564f6":"RGTOKEN()","f845862f":"newUser(bytes32)","f8469646":"slice(address[],uint256,uint256)","f847b16d":"INAToken()","f848091a":"claimERC20(address,address,uint256)","f8482ca5":"Payroll()","f848d541":"withdrawLimit()","f84907d7":"tokens_backed(address)","f849acb8":"overrideLock(bool)","f84a0e74":"BSWCValueCirculateAssets()","f84a6519":"requiredDownPayment()","f84ad0fb":"ProvideWorkOrder(address,address,address,address,address,uint128)","f84af7f3":"isAssetIdOwnerOrApproved(address,uint256)","f84b2f51":"disqualified()","f84b624e":"ProjectCoin()","f84b903e":"distributed()","f84bcb11":"setEtherReceivers(address,address[])","f84ce165":"setEndStage1(uint256)","f84dcb1e":"CFToken()","f84ddf0b":"lastTokenId()","f84f30c4":"_isCorrectBuyin(uint256)","f84f420b":"getRandomNumber(address,uint256)","f84fce56":"isDraw()","f850a136":"get_lose_coefs()","f850a7a4":"_addUser(address,address)","f850b7f8":"ERC20YSLToken()","f851019a":"BONUS_50_100()","f8515cfc":"destroyFactory()","f8515eca":"Operable(address[])","f8516c6c":"groupPolicyInstance()","f851a440":"admin()","f8524236":"DeleteImage(uint256)","f852b976":"_updateState()","f853343d":"addStakeAD(uint256,address)","f8536b94":"participated(uint256,address)","f8538662":"signup(bytes32,bytes32)","f853ee49":"rateUSD()","f8542f5e":"getCopaCoreAddress()","f8548bea":"quarterFirst()","f8548e36":"transfer(uint256,address,uint256)","f854d74c":"withdrawCommunityTokens(address,uint256)","f856d605":"tokensPerEther()","f8570b01":"_newEpoch(uint256)","f85771b2":"removeManager(address,address)","f8579af8":"test_percPoints()","f8588593":"isSuperContract(address,address)","f85905ac":"testEqualityUint(int256)","f85a253f":"setTEx(address)","f85a3dea":"totalAmountOfEarlyPurchasesWithBonus()","f85aefba":"testBitsSetFailIndexOOB()","f85b2160":"recoverFailedLock()","f85c6b3b":"_safeGasCall(address,bytes)","f85cb0b5":"Start2()","f85cd33e":"timelockTokens()","f85d9cc7":"setReviveFee(uint256)","f85daa38":"authorityContractAddress()","f85e4854":"tokenIssuedPreSecondIco()","f85ef43b":"modifyPolicyAttribute(uint8,uint256,uint8)","f85f0972":"FoxicoPool(uint256,uint256,address)","f85f3b7f":"defaultIcoDeadline()","f85f8a3a":"BiTianToken()","f8605230":"getNewTeamPositionAndCheck(uint16,uint8,uint64)","f860a6d8":"withdrawlBalance()","f860e64a":"Lottery(uint256,uint256,uint256)","f8615d24":"getBio(address,bytes3)","f861d2bf":"MIRC()","f86282da":"doStateChanges()","f862d780":"addIn(address)","f862f6f4":"cap_nuru()","f86325ed":"BASE_PRICE()","f8635ece":"openSession()","f86418e5":"_privateSaleTransferFromOwner(address,uint256)","f864bc65":"lastBlock_a5Hash_uint256()","f864ca14":"withdrawToWallet(uint256)","f864e729":"getAvailableTokenForUser(address)","f8651d56":"Prether()","f868061e":"setICOExchangeRate(uint256)","f8688ddd":"setTargetFeePeriodDuration(uint256)","f869b11a":"declareVictor(uint256,uint256)","f869b3ff":"AdvisorsFund()","f86a3529":"totalStages()","f86a3eeb":"MyGaoguans()","f86a6334":"setCampaignStartDateById(bytes32,uint256)","f86abfd9":"mainSaleRateP4()","f86ae8b2":"TokenSaleStop()","f86b0669":"burner_addr()","f86b5ebc":"DANSSold()","f86c4354":"GovcTechnicalGases()","f86c8ed3":"blocksUntilNewPotentialWinner()","f86ccd41":"amountDeposited()","f86cd33d":"noThrowCall(address,bytes4)","f86da6ed":"checkTotalBets()","f86db133":"forwardWithRevert(address,uint256,bytes)","f86e898c":"hasMinCreatedOn(address,uint256,uint256)","f8702fe1":"calcFees(uint256,string,uint256)","f870849d":"GetBankerPrincipal(uint8)","f871cca9":"_check(uint8)","f871e0e1":"DutchAuction(address,address,address)","f8721a4e":"calcReturnValue(uint256,uint256)","f8721f1e":"nAlarms()","f8725493":"GCA1()","f872bec0":"sn()","f872c9dd":"Vote(address,string,uint256)","f8732d3e":"goodLuck(address,uint256)","f8737bc0":"nextUnlockTime()","f87394d6":"DonateEther()","f873d7e6":"initializeTrueUSD(uint256)","f8742a14":"hivePerUSD()","f87482e1":"changeMigrate(address)","f875c421":"delegateReferalTokens(address,uint88)","f876101c":"setConstantsContract(address)","f876250a":"getNumClonesInWild(uint256)","f876fe1a":"availableHavvens(address)","f8779524":"addNewGame(string,int8)","f87876c5":"resignFromMatch(uint256)","f8788382":"payService(uint256,uint32,string,uint64,uint64,uint64,uint64,uint64,uint64)","f8789e1a":"_createUnitHelper(uint256,address)","f878fcc2":"migrationAllowed()","f87aa82f":"_setBuyPrice(uint256)","f87aad3e":"SetAllLock(bool)","f87aba30":"placeBet(uint256,uint256,uint256,bool)","f87c77c0":"getVirtualChannel(bytes32)","f87d7236":"addCapFreeAddress(address)","f87e7446":"Houton()","f87eac7f":"lastBlock_v15()","f87f31c3":"mintMiniICOTokens(address,uint256)","f87f44b9":"setWebsite(string)","f87ffb74":"gameIdCntr()","f88001d4":"reopenSale()","f8801631":"getTotalDonateWEIInfo()","f8806544":"getBioLanguages(address)","f880f920":"calcMax()","f8811c36":"registerNewAccount(address)","f88218e0":"claimPheonix(address)","f8823353":"_isListed(address,address)","f88339a5":"CBOPToken(address)","f8833efd":"probabilities(uint256)","f88351d9":"getDividendsBalance(address)","f88371e8":"balancesLocked1Y()","f883dfb5":"initializeLevel()","f8840c38":"TopforceCoin(uint256,string,uint8,string)","f88489a6":"getBidIdsByToken(address)","f884e54a":"giveCat(bytes5,address)","f88573c8":"Administration()","f885eaf2":"returnAllowedTime()","f88607e4":"ICO_PRICE2()","f88649a1":"getLastWinner()","f8868778":"change(uint256[])","f886cbda":"reado()","f886e9b6":"removeRelation(address)","f8887cd3":"TransferToken(address,address,address,address,uint256)","f8895cc8":"schema()","f8896ea6":"Interim()","f8897945":"min()","f889ac54":"JP_sum()","f88a067f":"registerHotel(string)","f88a742b":"insertStage(uint8,uint256,uint256,uint256)","f88b07a3":"SoldToken()","f88b1f38":"balances6(uint256)","f88bf15a":"removeLiquidity(uint256,uint256,uint256,uint256)","f88bfe3e":"getCountStages()","f88cc87c":"decline(bytes32,bytes32)","f88cf827":"getVendorProducts(address,uint256,uint256,uint256,uint256,uint256,bool)","f88d2047":"cancelOrder(uint256,bool)","f88d6732":"dice(uint256)","f88e0b09":"getTransferValueValue()","f88e9fbf":"divide(uint256,uint256)","f88edaf2":"mMultiSigWallet()","f89005e7":"depositWithReference(string)","f8900ddd":"godAddress()","f89037a9":"TureTreasureChain()","f8907491":"isCollectionAllowed(bytes8,bytes8)","f890e286":"oracleOf(address)","f8910119":"AuctionStarted(uint256,uint256)","f8910241":"_getTokenAmountForBuyer(uint256,bool)","f892ee05":"subDevTwo()","f894d957":"signedApproveCheck(address,address,uint256,uint256,uint256,bytes32,address)","f895436a":"setLotteryParameters(uint256,uint256,uint256,uint256,bool)","f8956a67":"getBonus(address,address,uint256)","f896503a":"getConfigAddress(bytes32)","f896680c":"testInitialEtherBalanceShouldBeZero()","f8975cd9":"ZanteCoin()","f8976385":"RokToken()","f897ae8c":"numEmptyIndexes()","f897c998":"lastSaleTime()","f897ebbc":"setDelegatedFromOperation()","f8981789":"setCompliance(address)","f8984677":"_calculateMinimumprice()","f898e574":"incentiveDistributionDate()","f898f8ab":"Escapable(address,address)","f8995981":"ABAS()","f899b607":"FxdCoin()","f899e9f3":"annihilateShares(address,uint256)","f89a053b":"setAccountFeeModifiers(address,uint256,uint256)","f89a5100":"RGP()","f89a77b1":"removeValidator(address,bool)","f89be593":"softcap()","f89ca001":"revealMove(bytes32,uint256,bytes32)","f89e4df3":"saleMilk(uint256,uint256)","f89e6512":"CMDCrowdsale()","f89ea906":"_refundExcess(address,uint256)","f89eae17":"testStop()","f89f2a65":"addExchanger(address)","f89f3834":"getAccountChartDetailsByEntityId(address)","f89f74bf":"MATCHES_PER_ROUND()","f89f7cb3":"updateDrawPeriod(uint256)","f89fdabc":"TokenTransferContract(address,address)","f8a09cd0":"settlementDetails(uint64)","f8a0cdee":"addUserRewardPayouts(address,uint256)","f8a17d7f":"League(address,uint256)","f8a21631":"PrivateCoinSupply()","f8a321e1":"checkInvestorContribution(address)","f8a34b26":"presale(address,uint256)","f8a35b35":"maximumSubscription()","f8a39a6e":"test_twoTrueAssertNoMessage()","f8a3ce82":"resetSession()","f8a40b7d":"requestSetWithdrawalLimit(address,uint256,string)","f8a46568":"HashnodeProCoin()","f8a47213":"VnixNetwork()","f8a4cc33":"withdrawPoly(uint256)","f8a4e608":"verifiedKYCAddresses(address)","f8a5399a":"settleExtraToken(address)","f8a56efd":"balanceOfRaws(address)","f8a5a8dd":"getTranchesLength()","f8a6172e":"receiveToken(address,uint256,address,bytes)","f8a6c595":"constructor(address)","f8a6fca8":"confirmImperfectReception(uint256)","f8a777f5":"batchCreateInternalDrawings()","f8a8fd6d":"test()","f8a9972a":"selectWinner20()","f8a9c6ae":"golix()","f8aa0a59":"updatebalance()","f8aa836b":"THRESHOLD2()","f8aabbd9":"makeTJs(address)","f8ab02dd":"isRefAvailable(address)","f8ab745e":"validTransfer(uint256)","f8abb93d":"hasVotedOnUpgradePoll(uint8,address)","f8abe7f2":"testSandwichOrder(uint256,address)","f8ac6570":"tokensBoughtInEarlybird()","f8ad69a8":"HetherToken()","f8adb686":"earlyBackerSupplyRemaining()","f8adccdb":"doPartnerShares(uint256)","f8aed03a":"btcsPortionTotal()","f8af2514":"IsItConstantinople()","f8af56b7":"_finish()","f8af9e6f":"setAdv(uint256,string,string)","f8b096bb":"setupRegion(uint256,uint256,uint256[],bool,uint8[128])","f8b0c0b6":"getTransferStat()","f8b10464":"pause_PRIVATESALE()","f8b11853":"getGenerationStartAt(uint256)","f8b14500":"EmissionProvider(address,address,address,uint256,uint256,uint256,uint256)","f8b1db8f":"donationBoxes(bytes32)","f8b28c26":"getSecretByHash(bytes32)","f8b2cb4f":"getBalance(address)","f8b2e259":"lowCapWei()","f8b332ad":"onpayInstallment(uint256,address,uint256)","f8b367c1":"categoryCap(uint256)","f8b3d3b1":"receiveInitialFunds()","f8b45b06":"totalsData()","f8b4ab7a":"updateTotalSupply(uint256,uint256)","f8b4cfc6":"lock(uint8,uint256)","f8b4e080":"changeRateOfToken(uint256)","f8b542c8":"_0xPeriheliaToken()","f8b608a1":"addTournamentContender(address,uint256[])","f8b71c64":"rewardTo(address,uint256)","f8b746dd":"BdpEntryPoint(address[16],bytes8)","f8b89dfb":"setStep(uint8)","f8b991e8":"firstRewardPeriodEndBlock()","f8ba7317":"sealManualMigration()","f8ba8e6a":"getAllowanceAmount(address)","f8bb201c":"setCroupier(address)","f8bb9160":"TIGER()","f8bbca99":"multivestBuy(address,uint256,uint256)","f8bc0505":"left76(uint256)","f8bc8548":"getPOOL_edit_31()","f8bd4498":"AMOUNT_BASETEAM()","f8bd526e":"setCoinageContract(address)","f8bd71c7":"unstop()","f8bdbb60":"assertEq10(bytes10,bytes10)","f8bdc9dd":"get_shares()","f8bf77ae":"managedContracts(uint256,address)","f8bfb34c":"getBorderValue(uint256)","f8c1c186":"isSale()","f8c206b0":"killFaucet(address,address,string,address)","f8c25c48":"changeCreatorBalance(uint256)","f8c28ce0":"releaseOperation()","f8c32ccb":"APG()","f8c34050":"priceIncrease()","f8c3a293":"ADVISORS_AND_PARTNERS_PER_CENT()","f8c439dc":"ETH_EUR()","f8c46eff":"FinalizableToken(string,string,uint8,uint256)","f8c4892f":"transferProxy(address,address,uint256,uint256,uint8,bytes32,bytes32,string)","f8c4ab92":"getNewCumulativeAllowance()","f8c52125":"deriveMarketCreatorFeeAmount(uint256)","f8c587ac":"paper()","f8c5e217":"getSellRatio()","f8c64800":"signTwo()","f8c65bae":"Bgc(uint256,string,string)","f8c75351":"transferViaProxy(address,address,address,uint256)","f8c80d26":"privateCreation()","f8c8282b":"transfer_storage_ownership(address)","f8c8765e":"initialize(address,address,address,address)","f8c8de10":"stringToUint8(string)","f8c95160":"tokenEmission5(address,uint256,address,uint256,address,uint256,address,uint256,address,uint256)","f8ca3e22":"CustomCrowdsale(uint256,uint256,uint256,uint256,address,address)","f8ca9442":"getBalance_in_token()","f8cbd580":"freezeIndex(uint256)","f8cc1055":"transferCallership(address,uint256)","f8ccb027":"AdminTransferred(address,address)","f8ccbd38":"validPurchaseForManual()","f8ce3164":"accumulatedFee()","f8ce5894":"updatePrizePool(address)","f8cf0e1c":"unlockAddr(address)","f8d09593":"Kikicoin(uint256,string,string)","f8d1f5f0":"setProvider(uint8,address)","f8d29219":"fundingStartUnixTimestamp()","f8d29f8a":"hasProfilePicture(address,address)","f8d3277d":"removeFromWhitelist(address,address)","f8d3a26a":"QuasaCoinExchanger()","f8d3afa4":"numberOfTransactions()","f8d3e256":"publicLockEnd()","f8d420a1":"cancelGame(uint32)","f8d50542":"addToWhitelist(address[],uint256[])","f8d506e1":"TCNYCoin()","f8d578f0":"registerContribution(bytes32,address,uint256)","f8d599eb":"appendContribution(address,uint256)","f8d609b2":"assert_ex(bool)","f8d67506":"Shop(uint256,address)","f8d6b70a":"setAyantDroitEconomique_Compte_5(uint256)","f8d7f790":"COMMUNITY()","f8d86bbc":"setNewEndtime(address,uint256,uint256,uint256)","f8d93136":"Savings(uint256,uint256)","f8d95520":"extUnlockNinja(uint256,uint16)","f8d970b6":"checkTemplateRequirements(bytes32,bytes32,bool,uint8)","f8d988d6":"toExchange(address)","f8daa0ee":"transferGroupCommune(uint256,address)","f8dad3db":"MAXIMUMINVESTMENTSALLOWED()","f8db188b":"MeetToken()","f8db5d07":"unlockKyc(address)","f8db71b5":"getStatusContract(address)","f8dc11cc":"soldTokenInPublicsale()","f8dc5dd9":"removeOwner(address,address,uint256)","f8dcbddb":"setStep(uint256)","f8dcc3e0":"getLinkStatus(bytes32,address)","f8dcc9a9":"potato()","f8dd1764":"ClearToken(address,address,address,address,address)","f8ddd288":"s31(bytes1)","f8de2dfd":"destroyCoins(address,uint256)","f8dea17f":"startraffle()","f8df084d":"ZUR()","f8dfaa1e":"ret_img(uint256)","f8e0cc1c":"getPI_edit_32()","f8e1badd":"getCrowdsalePrice()","f8e1ec40":"CTOcoin()","f8e217c4":"getDivBalance(address)","f8e29885":"get_game_balance()","f8e2d041":"maxNumberMembers()","f8e2dc6a":"rangeOfBets(uint256,uint256)","f8e39177":"intrepidShipMinted()","f8e3aa92":"sendNugget(address,uint256)","f8e43382":"icoRunningStatus()","f8e4500a":"getTokenIssued(address)","f8e48488":"returnDevelopersCut(uint256)","f8e4ed5f":"escrowDecision(uint256,uint256,address)","f8e5521a":"getBlockHashOddOrEven(uint256)","f8e58024":"colors()","f8e65295":"storeIt(string)","f8e6a8cf":"payETH(address)","f8e6b331":"jtest()","f8e7577d":"FIBToken()","f8e76cc0":"_exists(uint256)","f8e8b93d":"setTrueUSD(address)","f8e8e035":"COSHACNYToken(address)","f8ea5daf":"withdrawalEnabled()","f8eac151":"Multiply(uint256,uint256)","f8ead7cf":"getUserAverageDividendRate(address)","f8eb5fc5":"getSalePrice(uint256)","f8ebabcd":"_setPixelBlockPrice(uint256,uint256,uint256)","f8ebf282":"changeHSShopPrice(uint256,uint256)","f8ec4bf2":"setAllowTransactions(bool)","f8ec4cd5":"withdrawBidForCollectible(uint256,uint256)","f8ec6911":"buyback()","f8ec7e83":"test_updateKey_zeroNewKey()","f8ecb558":"getFishByAddress(address)","f8eee5d6":"returnPaidBackBlock(uint256)","f8ef13f4":"EthbetToken()","f8ef9a3d":"getPaymentLog(uint256)","f8efaf2b":"partner_2_name()","f8eff67c":"takeInvest()","f8f079bb":"reserveAllocation()","f8f122ba":"numCompletedRequests()","f8f1939d":"PRESALE_TOKEN_CAP()","f8f1d927":"multiERC20TransferTightlyPacked(address,bytes32[])","f8f1f151":"testToAddress(bytes)","f8f2d5e4":"preIcoTokensCount()","f8f32de6":"revealAssertion(uint128,uint256,uint256,uint256,string)","f8f46b5f":"getCurrentMinerAddress()","f8f53ce7":"nestedSecondAnyToAny(uint256)","f8f5cefd":"updateNextMemberPayment(address,uint256,uint256)","f8f63375":"YXLToken()","f8f6773b":"calculatePurchaseBonus(uint256)","f8f6882e":"LavaWallet()","f8f6e080":"UnclaimedDividendTransfer(uint256,uint256)","f8f7312d":"ChangeBurnBoundsEvent(uint256,uint256)","f8f73808":"create(address[],uint256)","f8f8a912":"GetBalance()","f8f9271c":"changeRegistrationStatusForSilverWhiteList(address,bool)","f8f9456c":"CrowdsaleFactory(address)","f8f96a55":"lastBlock_v6Hash_uint256()","f8f9be36":"settlementRegistration(uint64)","f8fb1d0f":"countUsers()","f8fb1f07":"sponsorsOf(uint256)","f8fb3366":"stopPreSale()","f8fb491f":"setSaleAddress(address)","f8fb4ab7":"NBAT001(address,address,address,address,address)","f8fbdbb6":"getChkLockedTokens(address,uint256)","f8fc16ef":"minWeiToAccept()","f8fc6fcd":"QNBAI()","f8fc94aa":"refundTransactionAfterExpiryFee(uint256)","f8fd72ac":"getCompte_44()","f8fdebd3":"weiMaxCap()","f8fe2f9d":"KyberGenesisToken(address)","f8fe63b0":"getERC721Id(uint256,address)","f8ff612e":"WithdrawToHolder(address,uint256)","f8ffe42a":"SetCoefRew(uint256)","f900592a":"ToggleTransferAllowance(bool)","f900b5d6":"getUserTotalPaid(address,address)","f9010d19":"joinEvent()","f901a18f":"setSale(uint256,uint256)","f9020e33":"saleStatus()","f9039f33":"update_current_rate(uint256,string)","f904b9ff":"GXDHRPToken()","f9059832":"isSaleEnded()","f906a440":"getInvoice(string)","f9079685":"SPCoin()","f9081ba2":"safeContract()","f908326b":"payRewardForAddress(address,address)","f9084729":"pvt_plmt_token_generated()","f9094303":"finishVoting()","f909640c":"InitialPriceDisable()","f909d60d":"getMinimumGasLimit()","f90a2f30":"usedNonce(address,uint256)","f90b2bfe":"dissolve(uint256)","f90b2e74":"setInitialTime()","f90c3f27":"FUNDING_PERIOD()","f90ce548":"SmartDeposit()","f90cf0a4":"Land(address)","f90ddee2":"tokenBurners(address)","f90e292c":"stage3Start()","f90f11b7":"withdrawNVTfromGame(uint256,uint256)","f90f3278":"resetUsername(string)","f90f4560":"placeBet()","f90f4a30":"Matthew()","f90fa5dd":"sendTokensToAdvisorsLock(address)","f910feaa":"safeTransfer()","f912e58c":"setPreCrowdsaleAddress(address)","f912ed00":"lockMe()","f913a879":"getBidsNum(address)","f913b919":"setAssetLevel(uint16,uint256)","f9146b2f":"newRefPayStation(address)","f9153fbc":"changeHouse(address)","f9154476":"__redeemAmount(address)","f915cf42":"MINIMUM_BET_VALUE()","f9163e64":"lockUpAmountStrOf(address,address)","f9172266":"setOldSeelToken(address)","f9174551":"cooperativeSettle(address,address,uint256,address,address,uint256,bytes,bytes)","f9177aad":"CreateFBL(address,uint256)","f9190fcc":"smartSponsor(address)","f9191b18":"revealVotes(address,bytes32,bytes32,address[],uint256[],uint256[])","f9195a30":"doFunding(bytes32,string,address,uint256,address)","f91a545b":"getLossTokenAmount()","f91a792e":"decryptHand(string,uint256,uint256,uint256)","f91b853b":"upgradeFrom2To3()","f91bcd76":"getMintForReportingParticipantAmountValue()","f91c022b":"secondTokenCap()","f91c26a5":"dLogN()","f91c339e":"calculateTxHash(address,address[],uint256[])","f91cb3d6":"proposalAvatar(bytes32)","f91d4db7":"TokenTracker(uint256)","f91e89db":"maxMonsterHit()","f91f681f":"targetFromBits(uint32)","f91f87f2":"tokenDistributionDuration()","f9215676":"paymentsByCustomer(uint128)","f921991c":"transferTokensWithOffsetAndLimit(uint256,uint256)","f922501a":"CRYPTOBULL()","f9226daf":"LogWithdrawal(address,uint256,uint256)","f922da7e":"addTokensToCampaign(bytes32,uint256)","f922f216":"disableERC20()","f923058c":"get_total_supply()","f923b8aa":"setBCY(uint256)","f9244a9b":"sendToMinter(uint256)","f9249fbf":"initiateTeamVesting(address)","f924c276":"fechStageIndexBySnapshotBlock(uint256)","f92561f3":"lambosBuildCount()","f9261d3f":"setProviderDetails(address,string,string,string,uint8,address)","f9268170":"setEdgePerPosition(uint256)","f926ac20":"totalInWei()","f9271fd3":"changeFundAddress(address)","f928655b":"transferA2B(address,address)","f92883a2":"mint(address,uint256,uint256,uint256,uint256)","f9297a40":"getPrice(bytes,int256)","f92a373b":"payForOption(address,address,address,uint256)","f92a69ec":"createPolicy(address,uint256,uint8,bytes32,bytes32)","f92a73d7":"ICONIQ_SALE_CLOSING_TIME()","f92a7595":"fxpMul(int256,int256,int256)","f92a79ff":"getExecutor(bytes)","f92a9de5":"developmentFunds()","f92abed9":"GetEvaluate(uint32,uint8)","f92ad219":"initialize(address,uint256,uint256,uint256,uint256)","f92b359a":"instrumentManifest()","f92b9dc7":"TVThreshold()","f92bb8c9":"getConfigUint(bytes32)","f92c33f7":"EventLuckyNumberRevealed(address,uint256,uint256,address)","f92c45b7":"reservedAmount()","f92c6bb6":"getGuessStatus(uint256,uint256)","f92c9b47":"TOKENS_FUTURE()","f92caf3a":"UploadIMG()","f92cd2b2":"airdropTokensBatch(address[],uint256[])","f92ec991":"preEtherReceived()","f92fff12":"requestEtherToUSD(bool,uint256,uint256)","f9307837":"setMaxcap(uint256)","f930a3d2":"presaleMint(address,uint256,uint256)","f9319a88":"SECOND_TIER_RATE()","f931eaef":"untokenizeProperty(string)","f931edb4":"ClaimedTokens(address,address,uint256)","f93231ba":"GetAskingTokenMutiplier()","f932380e":"RoyalPanties(uint256,string,string)","f9323a32":"_selling()","f9324c5f":"EarlyBird(bool)","f9327b9f":"preSaleDeadline()","f933b844":"_addToVesting(address,address,uint256,uint256)","f9355dca":"functionFour()","f93589ce":"didWin(bytes)","f935ae8b":"requestExchangeRate(string,string)","f935fd94":"WeiTransfer(address,uint256)","f937a6eb":"setLockup_investors(address,uint256,uint256)","f938075c":"weiToRecoverPreICO(address)","f9391d24":"AllPayAuction()","f939499d":"backupfarmSingle(address,address,uint256)","f9394c10":"getCarrotCredits()","f93a2109":"ADT()","f93a8d96":"EtheeraCrowdsale(uint256,address)","f93acbe9":"SubBankerProfit(uint8,uint256)","f93af357":"updateSigners(address,bool)","f93b4466":"LudumToken(address,address,address,address)","f93ca568":"ActualQueue()","f93d029a":"sendICOByOwner(address,uint256)","f93de2c3":"updateMinimumQuota(uint256)","f93e2d31":"adminEditCity(uint16,string,uint256,address)","f93e6715":"freeUntilDate()","f93ee24c":"addMinerTokens(uint32,address[],uint32[])","f93f1391":"getPokemonBetTimes(uint256)","f93f1b02":"incByTwo()","f93f7ab5":"saleRateFirstDay()","f93f9a76":"WhitelistUpdated(address,bool)","f93fc97b":"test_updateKey_increaseNoHint(int256)","f940e385":"withdraw(address,address)","f9419088":"mintNonFungible(uint256,address[])","f941c01a":"getOwnerToken()","f942be1c":"endDayOneTime()","f9432517":"transferLimit()","f94497fe":"testCreateWithParentsForeign0()","f944f4c7":"removeUser()","f9454f3f":"register(address,uint256,uint256)","f9455301":"setHoldTime(uint256)","f945b274":"jackpotTokenEthRate()","f945ba2d":"avatarFee()","f945e8b2":"getCurrentRound(uint256,uint256)","f946372c":"TOKENS_SALE_HARD_CAP()","f946d61c":"logReputationTokensTransferredCalled()","f94789bf":"KungfuToken()","f948d276":"changeShare(address,uint256)","f948e51a":"implementation2()","f949116d":"ICDCap()","f94a3223":"submitCro(bytes32,bytes32)","f94a360d":"MAXIMUM_BET_SIZE()","f94aa8bf":"BliBliToken(address,uint256)","f94b97c9":"IntoQueue(address,address)","f94c12cb":"cancelPendingChange()","f94c81c3":"RobotTradingToken(address)","f94c9e13":"getChannelInfo(address,address)","f94d2d44":"formatNumber(uint24,uint256)","f94d71a0":"unregisterObserver(address)","f94d7a10":"setTransferFromWhiteList(address,bool)","f94df54f":"importersBanksLetterOfCredit()","f94df678":"getAuthorizedEditAgents()","f94df97f":"Lotery(uint256,uint256,uint256,uint256,address,uint256)","f94e08d0":"queryWaitingTime()","f94e45de":"Scaltinof()","f94f04e4":"sendPresaleTokens(address,uint256)","f94f1e9a":"LifePasswordAI()","f94f6910":"POINTS_TO_LEVEL()","f9500927":"eth_amount_judgment(uint8)","f950db2b":"unfreezeUpgrade()","f951410d":"setBcouponTransferCost(uint256)","f9514ec9":"ApprovedBy(address)","f9515f1b":"addGroup(address)","f951f856":"getPeriodTotalReceived(uint256)","f952279e":"cancelOffer(bytes32)","f952f938":"CreateCreature(uint256,address)","f953927e":"openRoom(uint256,uint256,address)","f95440ba":"decimalPoints(bytes32)","f954501f":"validRouletteBetData(bytes,uint256)","f95547fa":"getGameFees(uint256)","f9565aec":"NewTokenGrant(address,address,uint256,uint256)","f9566392":"WeightedSubmission()","f956a1b5":"EthereumPinkToken()","f956c139":"getMatchIndex(uint256)","f956ecde":"invalidatePurchase(uint256)","f956fc52":"didWithdrawCollateral(bytes32,address,uint256)","f957417e":"activateToken()","f957ddba":"withdrawAllFrom(address)","f958530f":"bountyTransferToken(address[],uint256[])","f9586eaa":"setScouponAllocationFactor(uint256)","f9587219":"SetPetCardDataContact(address)","f9589eb3":"onceOuttime()","f95918eb":"indexOfUserInfo(uint256)","f959300b":"calculateSetupAllowedUntil(uint256)","f959fe4b":"admin_set_dividend(address,bool)","f95a5504":"buyandearn(uint256)","f95a77e5":"MALCoin(uint256,string,string)","f95a78fd":"milestone(uint64)","f95af64c":"freezeUpdateTokenAccount(address,bool)","f95af865":"selfWithdrawBalance()","f95afe2c":"getPortion(uint256)","f95b4309":"get_selected_player()","f95b5a58":"getInitialAnswer(uint256)","f95b5e0d":"mintTokensWithReferal(address,address,uint256)","f95bbc9c":"activeValueBonus()","f95c1a73":"allocationForESCBbyStage()","f95e0a54":"update(uint256,string,string)","f95e6306":"processInterval()","f95fbf67":"registerBarcode(bytes32,string,string,string,string,string,string)","f95fe2e7":"AddNewChallenge(uint256,uint256,uint256,uint256,bool)","f9609f08":"deposit(address,address)","f9614ac5":"content(string,address,uint256)","f9616bfa":"AidEvaCoin()","f9618364":"DGDb_Auction(address,address,address,address,uint256)","f9619147":"InbestDistribution(uint256,address)","f9639d80":"getCanAcceptAmount(address)","f963aac6":"CONFIG_MAX_PLAYERS()","f96512cc":"createPerDay()","f9654378":"TokenWithValidityPeriod(string,string,uint8,uint256,address,string,address)","f965e32e":"changeValue(uint256)","f9660347":"fetchAllBlocks()","f9662c8f":"returnInterest(uint256)","f9672443":"getMyEntityParents(uint256)","f9672820":"distributeARTTokenBatch(uint256)","f9676db4":"purchaseWithDai(uint256,uint256,uint256,uint256,address,bytes)","f96777d4":"payJackpotToWinner(address,uint256)","f9677e22":"computeSecret(uint256,address,address)","f96803d3":"getJobInvoicesByStatus(address,uint256,uint8)","f9683828":"coinback(uint256)","f968adbe":"maxPerTx()","f968f493":"unlockTokens()","f96a181e":"getContact(address)","f96abf0c":"deleteCrowdsaleContract(address)","f96b636d":"GILLIONTOKEN()","f96c166c":"isInPresalePhase()","f96cecc1":"returnAmount(address,uint256,bytes32)","f96d1c94":"closeStage()","f96ddf7a":"getSigner(bytes32,uint8,bytes32,bytes32)","f96eb003":"migrateManual(address)","f96f143e":"RELEASE_GAS_FEES()","f96f2fa1":"Shareable(address[],uint256)","f9706844":"recommendFundToPlayer(uint256,address,uint256)","f970bbfc":"removeDiscountStruct(uint256)","f97110a3":"getDeployedBlogs()","f9715458":"minActivatedToken()","f9718fc8":"returnTokens()","f971b054":"StoxSmartToken()","f972e2bf":"dateTransferable()","f974a1a2":"PURCHASE_AMOUNT_UNIT()","f974ae3c":"PrivateSaleExchangeRate(uint256)","f975a024":"openNonceId()","f975f3a2":"INITIAL_TOKEN_SUPPLY()","f976104f":"revokeDelegate(address,address,bytes32,address)","f976c371":"ZLHToken()","f9778d0d":"fixPlayerCountryId(uint256,uint256)","f9781eae":"test_curators()","f9782191":"fifth()","f978e842":"_addAdmin(address)","f97944e0":"CREATE_AMOUNT()","f9794660":"finneyToWei(uint256)","f9795a95":"minSlippageFactorInBps()","f979764d":"blockDotNumber()","f97a02fa":"inActive()","f97a9d38":"bonusSubscription()","f97b392a":"unregisterEmployee(address)","f97b65da":"closeShortPosition()","f97b7390":"getCurrentDiscountTrancheIndex()","f97bf9e4":"close(address,uint256,uint256,bytes)","f97c72b1":"_onBall(uint8,uint8,uint8,uint8,uint8[3][3][31])","f97cebed":"BellaStandardToken(uint256,string,uint8,string)","f97d0591":"parseTimestamp(uint256)","f97d8aee":"WriteBond(uint256,address,address)","f97e17d9":"payRate()","f97ea6fc":"getIndicesWithClaimableTokensForSellers(address,address,address,uint256)","f97f8e17":"takeOrder(address,address[5],uint256[8],bytes32,uint8,bytes32,bytes32)","f97fa1bd":"FrozenTokenEvent(address,uint256)","f98038ee":"howManyDicks()","f980a012":"mainSaleRateP1()","f980e52d":"clam()","f98139be":"getCensuredByCount(uint16)","f98157bd":"GetDeadline()","f9819884":"toggleDeathConfirmationByProxy()","f981aaca":"addDeal(uint256,string,string,uint256,string,bytes32)","f981f0c0":"_getAddress(address,bytes32)","f9820cc1":"Nothing()","f983c0fa":"run1()","f98456d2":"unenableTransfers()","f9854bfc":"creditsBalanceOf(address)","f985779c":"sin(uint16)","f985f5fc":"authorized_createCard(uint256,uint256,address,address)","f9869165":"ELIPSToken()","f9870705":"getProject(address)","f98765b2":"BotRemoved(address)","f988279c":"isAce(uint8)","f9888687":"raiseethamount()","f9889f78":"batchTransferFixedAmount(address,address[],uint256)","f988da4a":"TopsToken(uint256,string,uint8,string)","f9892c28":"ProofOfStableCoin()","f98a4eca":"executeVote(uint256)","f98b19f4":"publishBatch(uint16,uint16,string,string,bytes3)","f98b26a9":"submitProposal(address,uint256,uint256)","f98bbc60":"commit(address,bytes32,bytes,bytes32,uint8,bytes32,bytes32)","f98c48c1":"setData_18(string)","f98cbf76":"closeEXORImports()","f98d28bb":"priorityWallet()","f98d7c75":"SALE_STAKE()","f98e09a6":"listResources()","f98e17a7":"PerSellOver(uint16[])","f98e87ba":"hashedParameters()","f98eaa9c":"ClaimTokens(address,address,uint256)","f98f5b92":"setWhitelister(address)","f99031a7":"isWhiteList(address)","f9907274":"allTokenAddress()","f9909915":"bulkStoreHeader(bytes,int256,bytes,int256)","f990b73b":"end_crowdsale()","f991a43f":"currentTadpoleOwner()","f992905d":"deployContracts(uint256,address)","f9937c2b":"getCertificateKeys()","f9938192":"reenduser()","f993bef3":"postDeadline()","f993d955":"BTC_SUISSE_TIER_3()","f9943133":"MeltingContract()","f99450b9":"getEOSIO_USERNAME(uint256)","f994789a":"proposeRewardsWithdrawal(address)","f994bffa":"addCard(string,string,uint8,string,string)","f99514e2":"noInputReturn()","f9952ecf":"changeBoat(address)","f9953de5":"addOrg(string)","f9956289":"PRESALE_OPENING_TIME()","f99638a5":"bTest()","f9965dbf":"giveBounty(address[],uint256)","f996c697":"THRESHOLD1()","f9974d9d":"calculateWineSellSimple(uint256)","f9977329":"CROWDSALE_AMOUNT()","f997e136":"safeAdd(int256,int256)","f997f0c1":"_minHouseEdge()","f997f7eb":"ojiletoken()","f998393c":"Icostart()","f9983a12":"GetMyInvestmentBalance()","f9991f33":"AddProject(uint256,address)","f999ad04":"CreatePCC(address,uint256)","f999eead":"donateToDivs()","f99b7f0b":"getAllMatches(uint256)","f99ca1ee":"productionOf(address)","f99ca808":"totalDonationsWithBonuses()","f99cc96e":"tokenMaxSupply()","f99d18eb":"VIUREFoundersTokenSale(uint256,uint256,address)","f99d948f":"gameExpirationTime()","f99e574b":"BCEK(uint256,string,string)","f99ebb71":"testFailUpdateLatestRevisionEnforceRevisions()","f99ec32c":"lastFreezeSeq(uint8)","f99ee846":"KEACoin(uint256,uint256)","f99f128c":"make_initial_deposit(uint256)","f99f977c":"bountyPercentOfTotal()","f99fc046":"dEthereumlotteryNet()","f99fddae":"isValidUser(address,uint256)","f99ff180":"readMail(uint256,bytes16)","f99ff4df":"paged(uint256,uint256)","f9a01e94":"mintReward(address,uint256,uint256,uint256,uint256,uint256)","f9a075dc":"releaseETH(uint256)","f9a0fcc7":"RequestEthereum(address,address)","f9a191c8":"giveDirectoryTokenAllowance(uint256,address,uint256)","f9a2916f":"getInitiated()","f9a2cbd5":"INTREPID_SHIP_LIMIT()","f9a32246":"_transferFromToICAPWithReference(address,bytes32,uint256,string,address)","f9a329a6":"toVault()","f9a381e2":"CurrentToken()","f9a3e07d":"getObjInfoWithBp(uint64)","f9a42b8b":"_updateSpaceshipPrice(uint256)","f9a56fd8":"GamersCoin1()","f9a57ae4":"notDistributedAmount()","f9a596dd":"validatePrograms(uint256[])","f9a6da0c":"pks()","f9a794ad":"EtherLovers()","f9a7a2ef":"named(bytes)","f9a7c906":"setBonusTokenRateLevelTwo(uint256)","f9a86856":"maxWeiSMSVerified()","f9a87d4f":"buyAllAmountBuyEth(address,address,uint256,address,uint256)","f9a8b0ba":"latchTotalFci(uint256)","f9a8b611":"moveUnsold(address)","f9a8c5b9":"teamSum()","f9a8e898":"slashReservedUsername(bytes,bytes32[])","f9a8f797":"setLatestContract(address)","f9a94d43":"finalisePreSale()","f9a94ecd":"SellTokenToRaj()","f9ab21e2":"indexOf(uint32[],uint32,bool)","f9ac71bf":"allowNorthPoleMinting()","f9add1b9":"ourLastWinner()","f9ae77ff":"supportNewPurge(address,address,uint256)","f9aef74e":"PureGold()","f9b04f72":"reinvestByProxy(address)","f9b07b9b":"TeikhosBounty()","f9b16430":"HonestisNetworkETHpreICO()","f9b18e72":"RentableProvider(string,string)","f9b207f6":"Teepee()","f9b290b6":"PDPCointoken()","f9b2b19a":"getCns()","f9b2d1ee":"buyForFriend(address)","f9b2ec8e":"MinStarIndexAvailable()","f9b35ca3":"seed_traded_token()","f9b3e7f0":"hashAccountId(string)","f9b41139":"getBoxCount(uint16)","f9b4257d":"newXcat(bytes32,address,string,uint256,string,uint256,uint256)","f9b4d63a":"ownerOff(address)","f9b5c633":"ICONClassicToken()","f9b6b0c4":"create(address,uint256,uint256,uint256,uint256)","f9b71e73":"tankImposedMax()","f9b7fb56":"MarketboardListingBuyback(address,uint256)","f9b83323":"getNumberOfChecks()","f9b8659f":"detach(uint32,int256)","f9b87d40":"setKeys(uint32,bytes32,bytes32,uint32)","f9b8d639":"getMemberBonus(address)","f9b9a626":"getTotalWithdraws()","f9ba134d":"subtractAmount(address,uint256,uint256)","f9baa6ec":"freezingAgent(address)","f9bacc1c":"totalBonuses()","f9bb656b":"crowdSaleState()","f9bb84f5":"areWeekdaysOpen(uint256[],uint256[],uint256,uint256)","f9bbcc6d":"setMinVoteWeightK(uint256)","f9bcb4b1":"symbolLocked()","f9bd9338":"onFrozenAccount(address,bool)","f9be029f":"disableWhitelistAddress(address)","f9be437a":"UpdateTokenAddress(address)","f9befdef":"ownerSetGasLimit(uint256)","f9bfc71b":"mulUIntValue(bytes32,uint256)","f9bffc0f":"phID_()","f9c113cb":"ReadContent(string)","f9c12dda":"collectAll(uint8)","f9c1437e":"test5_searchAcrossNodes()","f9c1a197":"TransferEthToAddr(address,uint256)","f9c29e66":"hashOrder_(address[7],uint256[7],uint8,uint8,uint8,bytes,bytes,bytes)","f9c38ebf":"APTest1()","f9c397f8":"VoteInOrganizationScheme()","f9c3a68e":"setminimumAmount(uint256)","f9c447a9":"PurchasedTokens(address,uint256)","f9c58926":"_emitJobOfferPosted(uint256,address,uint256,uint256,uint256)","f9c5e0aa":"updateAttribute(bytes32,bytes32)","f9c6046a":"setForDutchSale(uint256,uint256,uint256)","f9c638ea":"globalMin()","f9c71f79":"isEquipedAny3(address,uint256,uint256,uint256)","f9c78097":"betToken(address)","f9c809fe":"addTip(address,bytes32,uint256)","f9c811f1":"regWL(address,uint256)","f9c8dec3":"KYC_ROLE()","f9c926c1":"has(address,address)","f9c935cf":"discountValue5()","f9c9b9de":"ExperimentalToken()","f9cb1b48":"getTotalInvestment()","f9cb6d7a":"reservedTokensAreDistributed()","f9cbcef0":"setStages(uint32[],uint8[],uint32[])","f9cbec43":"transferLandToEstate(int256,int256,uint256)","f9cc0605":"getAvailable()","f9cc2e66":"setPlatformFeePer10000(uint256)","f9cc6fce":"TestIOTACoin()","f9cd3ceb":"oracleFee()","f9cdbc4e":"paySmartContract(bytes32,uint256[])","f9ce67dd":"compareToIgnoreCase(string,string)","f9ce733b":"Pets()","f9ce7813":"transfer(address,address,uint256,address)","f9cee7b5":"totalScammedQuantity()","f9d09126":"updateTopicAssetClass(bytes15,bytes15)","f9d0fed4":"allowanceProvider()","f9d13bf0":"validate(address[4],address,uint256[12],uint256,uint256)","f9d176b4":"setManualWithdraw(bool)","f9d20590":"distributeFinancialAward(bytes12,int256,bytes12)","f9d38868":"exy()","f9d3b4e9":"obol()","f9d429ee":"NO_BATTLE_LOG()","f9d49797":"whitelistMaxWei(address)","f9d53ac8":"addPaper(address)","f9d593c8":"setNAVAdmin(address,address)","f9d5b4bb":"LogContribution(address,uint256,uint256,uint8,uint8)","f9d5e08b":"adminUsrCount()","f9d630a1":"TUI_ALLOCATION()","f9d6de48":"WALLET_LB_COMMUNITY()","f9d70200":"buyCrystal(uint256,uint256)","f9d75f25":"editDailyLimit(uint256)","f9d7f0fc":"CSES2()","f9d80dcd":"getInstanceImplementation(bytes32)","f9d8241c":"renterExists(address)","f9dbe5e9":"_updateStage(uint256,uint256)","f9dc0793":"getCustomerBankName(string)","f9dc5d43":"getAllPayment(uint256)","f9dca989":"becomeOwner()","f9dcef27":"cityPoolCutPercentage()","f9df65eb":"nullified()","f9df6c33":"calculateTokensAmount(uint256,bool)","f9df816a":"changeWhitelistPrivateStatuses(address[],bool)","f9dfa4a3":"setMaximumEtherToAccept(uint256)","f9dfb361":"preSaleStartBlock()","f9dfcfcc":"transferContract(address,address,address)","f9dfd0a5":"Token(address,string,string,uint8,uint256)","f9dfea54":"relockGroup(uint256)","f9dfecb9":"preICOTokens(uint256,uint256)","f9e0093d":"multiWithdraw(address[])","f9e05ed9":"sha(uint128)","f9e13de4":"doMigration(uint256,uint256)","f9e19fa5":"resetState()","f9e1ceda":"getBalancePercentRate()","f9e24dc2":"balanceOfMineral()","f9e27106":"investmentEntryCost()","f9e37733":"_createUnicorn(address)","f9e3c1e9":"setNextAddr(address)","f9e40a21":"allWon()","f9e4fb34":"fundTransferIn(address,address,uint256)","f9e51b1d":"withdraw(uint128,string,uint32)","f9e54282":"dropUsername(bytes32)","f9e68952":"createDrone()","f9e73764":"airdropExecute(address,address[],uint256)","f9e84395":"unexempt(address)","f9e856ae":"oldE4RecycleBin()","f9e8ad7c":"isPreIcoStage()","f9e9d34a":"getUserRefBalance(address,address)","f9ea3a18":"getHTLCSpendingData(uint256,int256,bytes32)","f9ea8839":"AlphaMarketCoinExchanger(address[],address)","f9eab09f":"setChickenHunt(address)","f9eb4ee2":"APPROVAL(address,address)","f9eba935":"debit(string,uint256)","f9ebdc8b":"isConfirmed(bytes32,address,address)","f9ec2edb":"startNewBoss()","f9eec610":"next(string,string,string,string,string,string)","f9eee901":"setClaimTreshold(uint256)","f9ef04be":"free(address,bytes32,uint256)","f9ef2c7d":"HTC()","f9ef33ff":"walletOEM()","f9ef66f5":"getRoundWinnings(address,uint256)","f9f03556":"ERC20(uint256,string,string)","f9f0507f":"timeLockedStart()","f9f14f6a":"library14function()","f9f16ef2":"numberOfTokens()","f9f20540":"setInvestTokenLimit(uint256)","f9f22d6c":"createNamespace(string,address)","f9f286f9":"setMultisigMain(address)","f9f2c161":"setGod(address)","f9f2c93c":"santaClaus()","f9f2ecb6":"getExtendAddr(address)","f9f39a9c":"initialize_bannable(address)","f9f411d8":"userTokens(address,uint256)","f9f447eb":"getCallDataHash(bytes32)","f9f53be0":"ChangeAmountPrice(uint256)","f9f5e8c8":"changeToCoin(address,address,uint256)","f9f71423":"increasePlayersGooProduction(uint256)","f9f73135":"get_heap(uint256)","f9f7d9de":"TOTAL_PERCRENTS()","f9f81a73":"setAccountCoords(string)","f9f86baf":"airdrop(address[],uint256[],uint8)","f9f8b586":"JMToken()","f9f8bdb7":"currentRate()","f9f8f895":"switchOn()","f9f90a60":"durationInBlocks()","f9f92be4":"blacklist(address)","f9f94bc6":"bioUnlock(bytes32,uint8,bytes32,bytes32)","f9fae4f7":"TOKEN_CREATION_CAP()","f9fafb59":"LogBidFinal(address,uint256,uint256,uint256)","f9fb12ad":"TestXRPCoin()","f9fb3c95":"transferBonus(address,uint256)","f9fb452f":"productID()","f9fbd554":"test(string)","f9fc0d07":"processRewards()","f9fc4816":"withdrawAmountETH(uint256)","f9fd41d8":"setRevolution(address)","f9fd5250":"DOW_MON()","f9fef3b3":"withMod(uint256)","f9ff1378":"solicitaDevolucao()","f9ffabca":"NewAdmin(address,address)","fa003b2e":"SCCAIToken(address,address)","fa006d87":"newPlaySeed(address)","fa009e36":"xxx7Coin()","fa0196eb":"OsherCoinAward(uint256)","fa01dc06":"revoked(address)","fa01dd3c":"BRTToken()","fa02955f":"registerMeOnEther(string)","fa02c4b7":"approveTransfer(address,uint256)","fa02dcc1":"TankWithdrawAll()","fa030ef1":"baba()","fa03446c":"tokensFromEther()","fa036370":"Athereum()","fa043b0f":"checkSig(bytes32,bytes32,uint8,bytes32,bytes32,address)","fa044862":"requireOk(bytes1)","fa048a18":"addHpbNode(address,bytes32,bytes32)","fa05064e":"setBountyDistributionContract(address)","fa058795":"logAdr(address)","fa061d48":"isReadyToSynthesize(uint256)","fa066fbd":"AccountGasLimitReached()","fa097028":"_burnRemainingTokens()","fa09cb30":"PatCoin()","fa09e630":"withdrawAll(address)","fa0a6cfe":"AFEBToken()","fa0a8f26":"calculateNextPrice(uint256,uint8)","fa0b5e55":"registerUser(address,uint256)","fa0b6211":"hasRoundEnded()","fa0bad28":"onholdBalance()","fa0bc8e1":"ownerOfSocialIdentity(uint256,uint256)","fa0c3034":"GenoPay()","fa0c498e":"refundJobSponsorships(uint256,uint256)","fa0c76c5":"calcUserDivsAvailable(address)","fa0cdc81":"getManifestById(bytes32)","fa0d5b52":"BerryLakeCoin()","fa0d80fc":"icoDenominatorPrice()","fa1026dd":"getCommitment(address)","fa107a41":"Cajutel(uint256,string,string,address,address,address,uint256,uint256)","fa113488":"setCMTForGas(uint256)","fa113773":"BlackSeaCoin()","fa1152f3":"MoregainCoin(uint256,string,string)","fa11c471":"holdsValidLicense(address)","fa12d782":"openGame()","fa130b68":"developer_edit_text_price(string)","fa133fdb":"massTransferTokens(address[],uint256)","fa13af97":"InServiceToken()","fa140e3d":"MitToken()","fa1456a9":"transferKROContractOwnership(address,string)","fa147e5e":"remainingTokensAndCost()","fa14df6b":"getChangeRecipientFee()","fa169ec8":"getHashDigest(string)","fa16ab6c":"Platform()","fa16c53b":"DiscrashCredit()","fa17a19d":"forceStand()","fa188644":"whitelist5Addresses(address[5])","fa188df2":"addMinter(address,address)","fa1896f4":"getOneTokenInWei()","fa18dd2b":"isSetupMode()","fa193a6e":"Voter()","fa198656":"roundingPercent(uint256,uint256,uint256)","fa1a5f59":"soldAmount()","fa1acb5c":"_startTime()","fa1ad09e":"fundTransferOut(address,address,uint256)","fa1b3eb8":"gamesOf(address)","fa1ba1e1":"burn(uint256,bool,uint256,uint256)","fa1bde89":"test_set_get_OraclizeCallback()","fa1c594e":"disableRegistryUpdate(bool)","fa1ca37e":"_transferCeo(address)","fa1cee57":"approveKNCRateRange(uint256)","fa1d9cf8":"getZoneTeller(bytes2,bytes16)","fa1db1e7":"SendResult(uint64,bytes32,bytes32)","fa1e4fcb":"holdoverBalance()","fa1eae3c":"newSchellingRound(bool)","fa1f919f":"pre_enddate()","fa2073ad":"getAnswerCounts()","fa208cc5":"KickTheCoin()","fa20e77d":"burntTokens()","fa2299ee":"soldSupply()","fa23023b":"lockSales()","fa233620":"RENTALTOKEN(uint256,string,string)","fa24e7a0":"xyjtoken(uint256,string,string)","fa255179":"getCheckResultMessage()","fa25fd57":"settleOrder(uint256,uint256)","fa26db7e":"setMinAllowedReservingPercentage(uint256)","fa26fe32":"delivery(string)","fa27e070":"removeProxyForSender(address,address)","fa28a6b6":"checkTrainingPrice(uint256,bool)","fa28ba0d":"validateReleaseLockfileURI(string)","fa29141b":"minSellAmount()","fa292c44":"BitcoinPower()","fa2a68d2":"QToken()","fa2a8997":"isReleased()","fa2a9be6":"createPoll(bytes,uint16,uint256,uint256)","fa2acd87":"G(uint64[16],uint256,uint256,uint256,uint256,uint64,uint64)","fa2af9da":"platformWallet()","fa2b579d":"at_percentile(uint256)","fa2b76e2":"tokenReserved2()","fa2c7f9b":"getLender(uint256)","fa2cac28":"rejectEthTransactionRequest()","fa2cc19e":"calculate_price(uint256,uint256)","fa2d7efa":"AdlasToken()","fa2d84b6":"addBlacklistAddress(address,address)","fa2dedec":"SATS_TO_TOKENS()","fa2e9db8":"sunsetWithdrawDate()","fa2f29b6":"claimEOSclassicFor(address)","fa2f3e9a":"numAccountsInfo()","fa2f7a8f":"renounceContract()","fa307fcb":"sendMultipleMessages(address[],string,string,uint256)","fa309571":"delegateGetTokens(address,uint256)","fa30b251":"buyTicket(string)","fa314c67":"newAtomFee()","fa31b371":"deletePublicKey(bytes32,address)","fa31e684":"releaseTokensSaleCount()","fa3276bc":"isModifiedInRound(address,address,uint64)","fa332152":"giftSendIndex()","fa33bcf3":"isInList(address)","fa34b345":"walletsDelegate()","fa34b37b":"bonusPreviousOwner(uint256,uint256,uint256)","fa34da5e":"getTarget(bytes32,bytes4)","fa352dec":"tokensToEthereum_(uint256,uint256)","fa3559f7":"attestToContract(uint256,bool,string)","fa355d1c":"_distributeFloatWalletToken(uint256)","fa358c24":"refundPaused()","fa35a310":"Contributed(address,uint256,uint256)","fa35aa94":"deathData_f10()","fa36316e":"setFiatPerEthRate(uint256)","fa368e6d":"isWMSale()","fa369e66":"batchTransfer(bytes32[])","fa3754ca":"getCurrentDiscountRate()","fa37668f":"createContract(bytes32,bytes20,bytes20,uint256,uint256,uint256)","fa391c64":"isCompleted()","fa3a0f78":"getCreateMarketController()","fa3a3a7e":"DemoPreSale(uint256,uint256,address,address,address,uint256,uint256,uint256)","fa3b8f2c":"AdvertisementPayout(uint256)","fa3c6320":"intercrypto_recover()","fa3c8251":"TimeDecayingTokenEnvironment(uint256)","fa3c9bbc":"getHostRoomLists(address,address)","fa3e9b45":"setCreditDao(address)","fa3ed04d":"getDArbitraryData(bytes32,bytes)","fa3f1e99":"testBlobStoreRegistered()","fa3f5acf":"sendMsg(string,string)","fa3f998c":"redeem_deposit(uint256)","fa3fa196":"transferCreator(address)","fa404e34":"revokePoolRole(address)","fa407c19":"NRCToken()","fa40ce34":"addAllowedContracts(address[])","fa4125f7":"activateNextRound(uint256)","fa41fd32":"lastCallstopPreICO()","fa42f3e5":"map_address(string)","fa448f7a":"_handleAffiliate(address,uint256,uint256,uint256)","fa45858e":"changeSellPOPPrice(uint256,uint256)","fa45aa00":"executeWithdrawal()","fa461f33":"setValueStep2(uint256)","fa462e95":"mintStepPrice()","fa46b8b4":"SellRateChanged(uint256,uint256)","fa472bad":"SkillCoinTest()","fa47c564":"confirmERC20(bytes32)","fa48b4bf":"mintEtherBro()","fa48dfcd":"setLockup_jiedians(address,uint256,uint256)","fa49841d":"ownerAdmin()","fa49a13a":"Vulgus()","fa4a2e36":"ShyneTokens(uint256,string,string)","fa4a80f1":"Matrioska()","fa4ac15d":"withdrawAffVault(uint256,string)","fa4bb165":"setRoundNumber(uint256)","fa4c4271":"reClaimIFS(address)","fa4c5dc0":"addMessage(string,uint8,uint8,uint8)","fa4d0c3c":"lockDeadline()","fa4d300d":"ICOSplit()","fa4d3698":"setOwners(address[])","fa4de094":"KPOP_ARENA_CONTRACT_ADDRESS()","fa4e5e5a":"notify(uint8,string,string)","fa4f34a0":"GetChallengeTimings(uint256)","fa4f5511":"campaignUrl()","fa4f96c4":"ActivatedEvent(bool,bool)","fa4fb369":"addPreSaleTokens(address,uint256)","fa4feb65":"icoTokens()","fa502cf7":"addBidToStack()","fa5064be":"submitProposal(uint256,uint256,uint256,uint8,uint64,string)","fa5083fe":"getMaximumBetRate()","fa508d3e":"dnnToken()","fa509eda":"nextonetogetpaid()","fa509ff7":"collected_eth()","fa50b335":"IS_TIER_CONTRACT_MAGIC_NUMBER()","fa518054":"_addToWhitelist(address)","fa51a2bf":"setSupplyLock(bool)","fa51ae86":"RATE_CORNERSTONE()","fa5201e1":"LuckToken(uint256,string,string)","fa5252e4":"pbWinner()","fa52bcb3":"ICSTCrowSale()","fa52c7d8":"validators(address)","fa52caf6":"HECoin(address)","fa53bb1b":"setauctionother(uint256)","fa544161":"getOwner(address)","fa550659":"approvalForAll()","fa552d8e":"withdrawSale1()","fa556996":"TimeClock(string,uint256,uint256,uint256,uint256)","fa55afe2":"setABIHashForMod(bytes32,bytes)","fa55f4d4":"modifyEligibility(uint256)","fa566ddd":"doAllowance(address,address)","fa56780d":"getPurseContributions(uint256,uint256)","fa57e2ab":"resolved(bytes32,bytes32,uint256)","fa57ff82":"ownerSetJackpotToken(address,uint256,uint256,uint256)","fa58f510":"getFeeMake(uint256)","fa5919a8":"DAOSecurity(address,address,bytes32,uint256,uint256,uint128)","fa59d199":"removeHash(string)","fa5a1db6":"save(uint256,uint256,uint256)","fa5b344e":"assignSubMember(address,uint256)","fa5ba0f9":"stepPrice()","fa5bbcd2":"crowdsaleCreators(address)","fa5bc660":"offerDiscipleVend(uint256,uint256)","fa5be8f8":"setBonus(uint256,uint256,uint256)","fa5bfc1e":"claimedRewardHook(uint256,address,address,uint256)","fa5c0c70":"getSaleOrder(uint256)","fa5cd179":"join_address(uint256)","fa5cdc2b":"OLTestSynatax()","fa5da441":"incrementedIndexOfName(string)","fa5e288c":"ABBC()","fa5ed321":"_pointToResolverAndResolve(bytes32,address)","fa5ef276":"getVotedData(address,uint256,address)","fa5f090b":"SmartIdeaTokenERC20(uint256,string,string)","fa5f2d80":"AOG(address,address,address,address,address,address,address)","fa607442":"timeOneSession()","fa608890":"withdrawRemainingRewards(uint256)","fa60a16e":"serviceAddressOf(address,uint256)","fa60fb0b":"getTxRoot(uint256)","fa6140dd":"weekPotLeader()","fa6171e4":"superMint(address,uint256)","fa62a1ff":"revokeAdminStatus(address)","fa640427":"setPermissionsProvider(address)","fa64dffa":"getDestQty(address,address,uint256,uint256)","fa65d336":"hasFreePlaces()","fa6669b7":"updateAccountData(uint256,uint16,bytes32,uint256,uint16,bytes32)","fa667907":"changeOwnerSharePerThousandForBuying(uint256)","fa66be4e":"countryLengthOf()","fa66e143":"employeeSignsToESOP()","fa671e5f":"deathData_v19()","fa671f6b":"validPurchaseIco(uint256)","fa6799f2":"revokeVesting(address,uint256)","fa67ae5a":"setBlockDelay(uint256)","fa67ba6f":"getSecondsTimeLockedByTx(uint256)","fa6878a7":"setBAB(bytes32,address,bytes)","fa68829a":"UnKoin()","fa68b4ce":"lookupISO3116_1_alpha_3(bytes)","fa691a26":"totalRoundsPassed()","fa695dd7":"createItem(string,uint256,uint256,bool,bool,string,uint256)","fa696d98":"ART_FOUNDATION_ADDRESS()","fa69ede9":"setNewRatesBase(uint256)","fa6a0712":"setOwnerPrice(uint128)","fa6ab63b":"getTokenSum()","fa6ac98e":"test_0_testBasicTxProposal()","fa6ad04c":"PRCT_BOUNTY()","fa6b129d":"tokenGenerationEvent(address)","fa6b535d":"deleteContact(bytes32,address)","fa6bdbf8":"_transfer(address,address,uint256,bytes)","fa6d373c":"LeaderHash()","fa6d8f1f":"callAndReward_1(string,string,uint256)","fa6e01a2":"ARTCToken()","fa6e5776":"haveExtension(string)","fa6ec547":"registeredAddress(address,bool)","fa6f3522":"EthimalFounderEggs()","fa6f3936":"isModerator(address)","fa6fc037":"prepareToBreed(uint256,bool,uint256,bool,uint256)","fa6fcc50":"_startBetBlock()","fa70466e":"getMonsters(uint16)","fa70f6da":"STRATToken()","fa712f71":"isBattleboardLive(uint16)","fa713023":"IEICrowdsale(uint256,uint256,uint256)","fa725ea3":"requireValidAddress(address)","fa7299f7":"getOwnerVirusLength(address)","fa729b5b":"CNY_Omnidollar()","fa72c53e":"providerFeePerEth()","fa73af0b":"GRANT_BATCH_SIZE()","fa73cb37":"ptxToken()","fa73f074":"useAddr()","fa76b253":"getAddressForAccount(string)","fa779bd6":"checkBalanceTier(address)","fa77c074":"shaThree(string)","fa785263":"checkRemoveOwnerArgs(uint256,uint256,uint256)","fa785928":"_revealBid(bytes32,address,uint256,address,bytes32,bytes32,uint256,uint256)","fa7860da":"etherHardCap()","fa78b172":"drawSecondaryWinners()","fa796124":"BitLumensCrowdsale(address,address)","fa796fa1":"CryptoZoo(address,address,address)","fa7a6cd3":"developer_string_symbol(string)","fa7ae620":"cryptaurReserveFund()","fa7af6fe":"investInternal(address,address)","fa7c31af":"withdrawCommunity(uint256)","fa7ca492":"preICOStats()","fa7d68f1":"getAccountInfo(uint256,uint256)","fa7e4eaa":"BELIBELA()","fa7e8f7c":"EtradeMarketsCoin()","fa7f6b96":"tokensLocked(address,uint256)","fa80918b":"computeNodeId(bytes,bytes)","fa81b200":"masterOfCeremony()","fa825185":"getChargers()","fa82e9fc":"organizer1()","fa83c01b":"setStopSendWebGift(bool)","fa848fb0":"startDayOneTime()","fa849243":"targetDiscountValue1()","fa85d33e":"istransferAllowed()","fa878e8f":"TOKEN_RATE_10_PERCENT_BONUS()","fa885329":"setTableSize(uint256)","fa885868":"addPreminer(address,address,uint256,uint256)","fa888c74":"callIt(uint256)","fa89401a":"refund(address)","fa894c08":"balanceWosPoolForSecondStage()","fa8a3c1c":"rateC()","fa8a975d":"forcedTransferAll(address,address)","fa8ad6b9":"unsetIsRentByAtom(uint256)","fa8b72ff":"setBountyTokensWallet(address)","fa8dc33a":"checkRecordExists(bytes)","fa8ec0b2":"_transfer(address,address,uint256,string,uint256)","fa8edab6":"checkBalance(address,address,uint256,uint256)","fa8fc08d":"GxCoin(address)","fa8fd2b5":"LockRequestable()","fa90693b":"isBlockRedeemed(uint256)","fa912743":"feesStrategy()","fa922e66":"pickaxe()","fa923d10":"FutureCoin()","fa92fb6e":"IssueRejected(uint256)","fa93019c":"getBlocks(uint8,uint8)","fa93185f":"LockedDayRemoved(address,uint256,uint256)","fa93f883":"getMinute(uint256)","fa967415":"nextUpgradeMaster()","fa968eea":"minBetAmount()","fa96a49e":"totalSupplyUpgraded()","fa9768c9":"getOnMintAmountValue()","fa9789cf":"trainKitty(uint256)","fa984da8":"SujiToken()","fa985a2f":"p_update_mNewPlotDevPercent(uint256)","fa9907ad":"pay500Winners(uint256)","fa99d7ae":"enterDungeon(uint256[4],uint32)","fa9a4c35":"getPOOL_edit_21()","fa9acb05":"addressInArray(address,address)","fa9aecfb":"isUnowned(uint256)","fa9af30f":"getGoldXchgRate()","fa9b44b7":"PendingETHs(address[])","fa9ba8b4":"FunFaceToken()","fa9ce7e7":"moveTokensFromStockToExchange(uint256)","fa9d2352":"hasRequiredStateChanges()","fa9df423":"setShp(address)","fa9e6f11":"Exafire()","fa9e82cf":"uploadStartlist(uint256[])","fa9f117f":"setNextRoundMaxDonors(uint256)","fa9f245c":"CappedToken(uint256)","fa9fd8b2":"incremental(uint256,uint256)","faa06c06":"GetCityName(address)","faa0a264":"burnToken()","faa10f43":"require(bool)","faa1a8ff":"getOwnedBot(address,uint256)","faa3981a":"boolMemoryArray(bool)","faa458f4":"submittedHashes(bytes32,uint256,uint256)","faa51485":"isValidTraderAddress(address)","faa5369d":"getBorrowingItem(uint256)","faa5c564":"register(uint256,uint256,uint256)","faa5ca93":"erc20Buy(address,uint256,string,string)","faa5d0ea":"updAmountBonusEnabled(bool)","faa5e124":"ref_percent()","faa5e74a":"TokenPurchaseWithGuarantee(address,address,uint256,uint256)","faa62d3f":"setPercentageToLock(uint256)","faa679bf":"TraceToken()","faa7fc61":"bustRange()","faaa4d22":"distributePCY(address[],uint256,uint256)","faaa58da":"RemovePauser(address)","faaad90f":"getBlocksUntilNextRound()","faaad91d":"convertToPrimordial(uint256)","faab806f":"emergencyStopSale(address)","faab9d39":"setRegistrar(address)","faabc195":"updateContract(uint256,address,uint256)","faac90ec":"StorageFactory()","faacf0fd":"toChar(bytes1)","faad4a49":"setDividends(uint256,uint256)","faad6eb5":"updateAgent(address,bool)","faadb14a":"getCustomerTxPaymentKWh(address,bytes32)","faae4c17":"usernamesToAddresses(bytes32)","faaebd29":"Fight_Results(uint256,address,address,uint128,uint128,uint32,uint256,uint32,uint256,uint8)","faaf027b":"getAddressTokenSaleId(address,address)","faaf1921":"updateEthToCentsRateCycleStarted()","faaf71e6":"checkSoftCapOk()","faafa08f":"CatICO(address)","fab0568c":"GIFTToken(uint256,string,uint8,string)","fab14b36":"saleBalance()","fab18075":"numLots()","fab2c469":"getSlots()","fab2cb36":"totalSharesIssued()","fab2e425":"GAMESPLAYED()","fab2f86b":"stopVoting()","fab37154":"setMintAddress(address)","fab3be9a":"WETCToken()","fab3ebb1":"NULL_ENCRYPTION_ALGORITHM_DESCRIPTION_URI_SET_ID()","fab4087a":"parse(bytes)","fab425e7":"external_to_internal_block_number(uint256)","fab43cb1":"getPongAddress()","fab4969f":"amountRaisedPhase()","fab4cb39":"getWarrantyPrice(string,uint256,uint256,uint256)","fab55a49":"addr_forge()","fab57a21":"truebitAddress()","fab5ccb1":"submitBlock(bytes32,bytes)","fab67bb6":"hasNotEnded()","fab825c6":"setCanvasName(uint32,string)","fab88d39":"STS(uint256,string,uint8,string)","fab8cbe4":"splitTokensBeforeDistribution(uint256)","fab93805":"ballotLog(bytes32[2])","fab9b243":"isUpgradable(address,address,string)","fab9caaf":"JungleScratch(address)","fab9f0c4":"DigiWillToken()","faba1f16":"_createPow(string,address,uint256,uint256,uint256,uint256)","fabacf0d":"Yetxkd1601()","fabae696":"updatefxFee(uint256)","fabb25fa":"x_constructor(address)","fabb7952":"setPaintingName(uint256,string)","fabbdc5b":"COIN_COST_ICO_TIER_2()","fabc1cbc":"unpause(uint256)","fabcc880":"update(uint256,int256[2],uint256[2],int256,bytes32,address,uint256,uint256,uint256[3])","fabde80c":"coinBalance(address)","fabe1416":"canClaimToken()","fabec44a":"getCurrentVersion()","fabee62d":"taxTo(address)","fabf00c3":"NewGrant(address,address,uint256)","fabf5ea5":"maxInvestedLimit()","fabf657a":"approveAddress(address)","fabfbefb":"lastPayoutIndex()","fac08874":"BPTestCoin()","fac20ab8":"getGameWinner(uint256)","fac2548b":"updateMember(address,uint256,bool,string)","fac28349":"setInvite(address,uint256,uint256)","fac2b5f8":"setEplay(address)","fac333ac":"ids(uint256)","fac34ff6":"throwFoo()","fac3a4db":"changeWithdrawableNetfRe(uint256)","fac3c1f4":"setOracleName(address,string)","fac416ab":"PriceThreeEnable()","fac50e4c":"StgTwobonusEnds()","fac5235b":"teamTokensAllocated()","fac52bfd":"my_name()","fac57fc9":"hasUpgraded(address)","fac5bb92":"getPreRelease(bytes32)","fac5fbc7":"ContractDisabled(uint256)","fac647cc":"testLongerJson()","fac65256":"wavesTokens()","fac66f01":"getConditions(uint256,uint256)","fac67cf6":"updateVIPRank(address)","fac6a8a2":"withdrawExchangesToken()","fac6fe0c":"level_6_percent()","fac78d83":"tierModifiable(uint256)","fac7abe3":"latestAuctionIndices(address,address)","fac7b20a":"maxCapTokenTotal()","fac8a800":"isTeller(address)","fac952c5":"getLastWithdraw()","fac97122":"ownerSetJackpotAddress(address)","fac9d2c7":"Blockkonnect()","faca7cfa":"prevBalance()","facaa838":"IsEscrowActive()","facb2195":"setIntF1(int256)","facbf93b":"totalBlocks()","facc7905":"unLockTime()","facce5bb":"wingsTokenRewards()","facd0934":"BONUS_250_500()","facd743b":"isValidator(address)","face030b":"SpinTheWheel(address)","face873f":"getAllActiveSales()","face9e8e":"hash_sha256(string,uint256)","facef32a":"IGI()","facf55e6":"getMyClones()","fad09ab3":"closeProvider(address)","fad15673":"UmkaToken(string,string,uint8,uint256)","fad18e7b":"registerNameXaddrFromDapp(address,bytes32,address,bool,uint8)","fad239ac":"PermTokenTest()","fad356f8":"testTransferFromSelf()","fad35818":"calcInviterBenefit(uint256)","fad3f8f7":"maxPreSale()","fad4b99a":"updateChannelMinimum(address,uint256)","fad4e1f2":"getIDMapping(uint256,uint256)","fad5a2af":"isClosedAndValid()","fad6049b":"_transferFrom(uint256,address,uint256)","fad60615":"roundProfitByAddr(address,uint256)","fad774ee":"BONUS_LEVEL_2()","fad7ed8c":"_A_tokenSaleCompleted()","fad8200e":"userToNumCelebs(address)","fad88be7":"VOISE()","fad8b32a":"revokeOperator(address)","fad9100c":"FOMOed()","fad992ea":"claimINRDividends()","fad9aba3":"dust()","fad9bf9e":"storeBlockWithFeeAndRecipient(bytes,int256,int256,bytes,int256,int256)","fada2c18":"transferBond(uint256)","fada4b76":"quater3()","fada5da1":"collectEth()","fadc0700":"InitiateMakes()","fadc51cf":"isAlpha(bytes1)","fadc554b":"updateNonClosingBalanceProof(uint256,address,address,bytes32,uint256,bytes32,bytes,bytes)","fadcd861":"createMarriage(string,string,string,string)","fadcf13c":"startBounty()","fadd3235":"gameEndBlock()","fadda208":"getMemberAdresse(uint256)","fadeb59c":"getListingDB(uint8)","fadf4cb2":"batchAssignTokens(address[],uint256[],bool[])","fadf4f3b":"GECToken(address,uint256)","fadf617b":"reveal(int128,string)","fadf87b1":"testGetBitsSuccess()","fae14192":"changeFeePercentage(uint256)","fae17e21":"createBid(uint256,address,address,address,uint256,uint256)","fae21f0a":"initBank()","fae24454":"removeFromManagementWhitelist(address)","fae25444":"getNumberOfOffers()","fae29ee8":"setWebInfo(string,string)","fae2dd4b":"myName()","fae429af":"NinjaCoinNC()","fae4a213":"buyWithAddressAndFunction(address,bytes4)","fae53222":"addPlayerGeneral(address,uint32,uint32,uint8)","fae59753":"transferOwnershipMessage(address)","fae6edcf":"getI2()","fae72303":"totalWeiRaisedDuringPhase3()","fae73549":"Burnt_Token()","fae8529a":"maxprice()","fae860db":"transferToLockedBalance(address,uint256,uint256,uint256,uint256,uint256,uint256)","fae8c29e":"setPromoPause()","fae8f9a2":"setInitialParent(int256,int256,int256,int256,int256,int256)","fae92612":"setMarketAddress(address)","fae95a71":"participationPresaleHistory(address)","fae9c6b3":"preICOTokenRemaining()","fae9d06d":"calculateTxFee(uint256,address)","faea1878":"cooRemoveCro(address)","faea624c":"VestTokens(address,uint256,uint256,uint256,bool,string,uint256)","faea9129":"Syndicate()","faed08a9":"reLoadXname(uint256)","faed1922":"purchaseWhaleCard()","faed77ab":"wipeAndFree(address,bytes32,uint256,uint256)","faed86ab":"strConcats(string,string,string,string)","faede6a1":"Y2_lockedTokenAmount()","faee13b9":"set(int8)","faee4402":"donateToWhale(uint256)","faee4a10":"initialBankroll()","faef2ad2":"getCategoryHash(address)","faeff650":"phase1TokenPriceInEth()","faf0952b":"testThrowRestartNotOwner()","faf21148":"ValoremICO()","faf236c7":"emitTokensFor(address,uint256,uint256,uint256)","faf27bca":"greeter(string)","faf3d174":"upgradeStart(address)","faf42125":"setTokenURIAffixes(string,string)","faf5115f":"setBank(address,address)","faf81ba5":"applyBonus(uint256,uint256)","faf87b8a":"payoutEF()","faf880ad":"SoftcapReached(address,uint256)","faf924cf":"proof()","faf95e3d":"PayForServiceETHEvent(address,uint256)","faf9859c":"NIU(uint256,string,uint8,string)","faf9b5cf":"mintSendTokens()","faf9f330":"accrueTeamTokens(address,address,uint256)","fafa4c82":"defaultTransferGas()","fafa8e1a":"removeDat(string)","fafaacfa":"hasConfirmed(bytes32,address,uint256)","fafb2330":"setPayout(uint256,uint256)","fafb3c7a":"giftCar(address,uint256,bool)","fafb76dd":"getOffsetIndex()","fafb9334":"roll_normal(address,uint256,uint256,bytes32,bytes32,bytes,bytes32,uint256)","fafbb62b":"create(string,string,uint8,uint256,address,string,address,address)","fafbb9a3":"getNextPayoutTime()","fafbcc08":"IBNZDEVELOPERSERC20_Crowdsale()","fafc56d9":"setStepTwoRate(uint256)","fafcdc34":"dist(address)","fafd2efb":"cashoutable(address,address)","fafd4bba":"RESERVED_TOKENS_FOR_CRYPTO_EXCHANGES()","fafd6bcb":"isConfirmedBy(bytes,address)","fafdb3af":"PlayerBalance(uint8,uint256,uint256)","fafe029f":"getWtotalTransCnt(uint8)","fafe0902":"gift_ClaimTINAmotleyLine(uint256)","fafe805e":"BLOCK_PER_PHASE()","fafe8845":"StateChanged(uint256,uint8)","faff50a8":"rootNode()","faff660e":"isPrivate()","fb007107":"CanMint(bool)","fb00cc67":"search_winner_bid_address(uint8)","fb00fec6":"getStatusForRootHash(bytes32)","fb0101c4":"getUserSpaceIds(uint256)","fb01badd":"companyShares()","fb01f4b1":"developerPrizeClaim()","fb02191c":"addRepo(bytes32,string)","fb03735e":"contractTokenReward()","fb03eaea":"getDisputeThresholdForFork()","fb048705":"itemOf(uint256)","fb04f22c":"secondReleaseDone()","fb054439":"canBearWith(uint256,uint256)","fb05594f":"STARTING_SHRIMP()","fb062a84":"offerOptionsToEmployeeOnlyExtra(address,uint32,uint32,uint32)","fb064161":"advisorsAllocation()","fb06603c":"modifyToken(address,uint256,string,string,string,string,bool)","fb070d0d":"CatFarmer()","fb0720dc":"icoStartP1()","fb072d2a":"random(uint256,uint8)","fb07ac86":"realPriceOracle()","fb083fdc":"EtherDelta()","fb088558":"contributeWithoutVesting()","fb08937c":"tokenTransfer(address,address,address,uint256)","fb08f3a1":"whitelistRequired()","fb08fdaa":"replaceContract(address)","fb099c84":"newInvestor()","fb09b1ac":"testBalanceOfReflectsTransfer()","fb09c964":"getXQU()","fb09db11":"setActiveWhitelist()","fb0a0344":"mockBuy()","fb0a2e3c":"buyerDecimals()","fb0a3867":"updateClientAddress()","fb0a8c62":"addGenerator()","fb0b0220":"outFromPool(uint256)","fb0b02cd":"destroyBucket(bytes32)","fb0b6b6d":"confirmTransactionByMediator(uint256)","fb0c0782":"buy2(uint256)","fb0c1faa":"LearnX()","fb0cf7ab":"getStagePrice(uint8)","fb0d7e43":"initialBonus()","fb0f6f42":"s1(bytes1)","fb0f9363":"getAuctions(address)","fb0f97a8":"depositToken(address,address,uint256)","fb0fcd8c":"triggerRselfdestructRefund()","fb101581":"transferToCharity(address)","fb10b0d3":"currentMaximumSalePercentage()","fb114f57":"oraclize_query(uint256,string,string[3],uint256)","fb11613e":"getGamesByDay(uint256)","fb1161f1":"bountyCap()","fb1291c3":"getPixels(bytes32)","fb12ee85":"amountOfOpenRFQs()","fb13a707":"changeVestingWhitelister(address)","fb13bfae":"getFreezeInfo(address)","fb1478e5":"changeSaleEndBlock(uint256)","fb14cbca":"check(bytes32,uint256,address,uint32,uint32,bytes32[])","fb14f058":"addVestingAdmin(address)","fb15e737":"boolToBytes32(bool,bool)","fb1641d6":"rejectGame(address,uint256)","fb1669ca":"setBalance(uint256)","fb1684f9":"lockTextKey(string,uint256)","fb173712":"SetRate(address,address,uint256,uint256)","fb176b69":"paleyer1show(uint8,uint8,uint8,uint8,uint8)","fb17905f":"DemolishByCredits(uint256,uint256)","fb18962d":"setSoftwareTokensPercent(uint256)","fb1ace34":"notarize(bytes)","fb1ae783":"getWinnerTeam(uint256)","fb1c3461":"_calculatePercent(uint256,uint256)","fb1ce13a":"TestEOSCoin()","fb1ce2ea":"NotifyMe(address,uint256)","fb1d8201":"addClaim(uint32,string,string,bytes)","fb1d9eea":"transferFundsTokens(address,address,uint256)","fb1db11f":"updateEarlyParticipantWhitelist(address,address,uint256)","fb1de995":"solveTask(uint256,uint256,uint256,int256,uint256,int256)","fb1e3804":"FULL_TOKEN_AMOUNT()","fb1e61ca":"getRequest(bytes32)","fb1f41f9":"info_OwnerTINAmotleyLine(uint256)","fb1fad50":"halt(uint256)","fb1fdc2e":"lengthNotEqual(address[],uint256,string)","fb2004f2":"BCOExtendedToken(address,string,string,uint256,uint256)","fb20b70d":"setBonusDate2(uint256)","fb20d071":"registerVestingSchedule(address,address,uint256,uint256,uint256,uint256,uint256)","fb20d98f":"deleteEditor(address)","fb20dc80":"setPriceForVerification(uint256)","fb213549":"confirmApplication(address)","fb21364b":"allocate2ProjectToken()","fb214f4c":"presetGymTrainer()","fb218f5f":"storeData(string)","fb21eefd":"fwdData(address,bytes)","fb222d48":"extractVaultTokens(address,address)","fb236bba":"_deleteOffer(uint256)","fb237eb2":"isUserWhitelisted(address)","fb23bbb1":"BONUS_WINDOW_3_END_TIME()","fb241406":"RedPen()","fb25b62c":"LineToken()","fb2643c0":"DragonKing(address,address,uint8,uint8,uint8,uint16[],uint16[])","fb26c00f":"Treasury(address)","fb26c3f8":"minimumPresaleWeiDeposit()","fb26e2d8":"tgrStartBlock()","fb274654":"offerCollectibleForSaleToAddress(uint256,uint256,int256,uint256,address)","fb277a24":"testMintInvalid(int256)","fb27961c":"softCapAmount()","fb279ef3":"tip(uint256,address,uint256)","fb282a17":"distributeCallback(uint256,address[])","fb282f92":"solveGame(uint256,uint256)","fb283111":"setRunSwitch(bool)","fb2861ff":"MINTTIME()","fb2898e4":"startSaleDepo(uint256)","fb28be72":"SetupQPY(string,string,uint256,uint256,uint256,address,address,uint256)","fb293a34":"backGamePlayerCoinOwner()","fb29aa97":"getNumLoveItems()","fb2c95b6":"PlayX3()","fb2cb34e":"transferPaused()","fb2dfa45":"getKitties()","fb2e0078":"withdrawalFunds(bool)","fb2e3240":"setDOwnerFromClaim(bytes32,address)","fb2ee901":"getBattleFee()","fb2eff20":"PhoenixFund()","fb2f3a8a":"MAX_BOUNTY_SUPPLY()","fb2f5064":"getPendingTokens(address)","fb2fbf49":"registerEOSAddress(string)","fb305569":"UbiqIssued()","fb30d070":"setNewAge(int256)","fb31a6cc":"executeOffer(address)","fb31b262":"VuePayTokenSale()","fb31ff37":"getFullRecord(bytes32)","fb3220fe":"addNodalblockData(string)","fb32ade3":"releaseLockedTokensFor(address)","fb32aedb":"voteB()","fb32f4f5":"ARK_FLAGGER_1_00()","fb3458d1":"extractElementsFromGene(uint256)","fb346eab":"totalSpent()","fb34d075":"channelCloseTimeout(uint64)","fb34fc6f":"WatchNextBlockReward()","fb350502":"calculateWalletTokens()","fb35370b":"transferDari(address,address,uint256)","fb3551ff":"getAgent(address)","fb357f74":"EBLLToken(address,uint256)","fb35a4ba":"KKToken(uint256,string,uint8,string)","fb35b4e4":"totalDeployments()","fb35d545":"unlockDate4()","fb3650c2":"grab(address[],uint256[])","fb368e8f":"getServiceName(bytes32)","fb36eba1":"createCard(address,uint16,uint16)","fb36fae4":"setJpycContactAddress(address)","fb37baa1":"whitelistUserForTransfers(address)","fb386216":"getSeatAddress(uint256)","fb38ec94":"founder3()","fb3918d7":"fillReserve()","fb3979f0":"updateAccountChartAgainstExistingEntity(address,uint256,uint256,uint256)","fb3a1fb2":"getReleaseDb()","fb3a3ff3":"HODLERAddress(address)","fb3ab12b":"setEndSale(uint256)","fb3b11af":"CWCCToken()","fb3ba9b3":"LogNewBlacklistedAddress(address,address)","fb3bc400":"myProfitsReceived()","fb3c0d70":"transferFromToken(address,address,address,uint256)","fb3d8b6e":"SiringClockAuction(address,address,uint256,uint256)","fb3dc0b3":"Leader(string,address,bytes32)","fb3ea59b":"acceptBatched(address[],bool)","fb3ed5c7":"airdropSupply()","fb3f1fd6":"nextroundblocksbeforenewpay()","fb3f4d29":"tokenApprove(address,address,uint256)","fb3f71c8":"addContract(address,uint256,string)","fb3fd6a1":"m_bIsLock()","fb402c26":"BuyTokensWithTokens(address,address,uint256,uint256)","fb40340d":"totalNormalTokenGenerated()","fb40c22a":"getAllCases()","fb4101c0":"reward(address,bytes32)","fb43b2a2":"approveBreeding(address,uint40)","fb4460dd":"getVoterStakes(address,uint256)","fb45d080":"pieBalanceOf(address)","fb468340":"getTotalMember()","fb46d4c5":"tweet(string)","fb46f492":"emissionMas(address[],uint256[],bytes32[],uint256[])","fb470a92":"FlukeCoins()","fb471ce5":"ERC223Transfer_enabled()","fb47a067":"_getRevisionBlockNumber(bytes20,uint256)","fb486c7b":"setGivenName(uint256,string)","fb48ca1d":"NewSuggestion(address,string,uint256)","fb48cf0e":"getVoter(uint256,uint32)","fb490695":"griefCost()","fb497ad2":"stage_1_TokensSold()","fb49dc4a":"AEFFTOKEN()","fb4a18a2":"setCrowdfundPayout(address,uint256)","fb4a6cde":"StarbaseEarlyPurchase()","fb4a86bc":"amountToBeRaised(bytes32)","fb4aa0a1":"fundReceiver()","fb4b7693":"sendSeedAndHash(string)","fb4cd8e2":"numBidders()","fb4ce0a9":"addAssetsOwner(address)","fb4da5b7":"pay(address,string)","fb4fbcd8":"getClaimTradingProceedsWaitTime()","fb4fd984":"requestPrize(bytes32,uint8,bytes32,bytes32)","fb50aec5":"getVendorApplicationStatus(string)","fb51a1ea":"read_total_purchased_today(address)","fb5209bf":"trickleUp(address)","fb524c32":"GetMaximumBet()","fb54047c":"getCustomExtraData(bytes32,uint256,bytes32)","fb557c8c":"PrideToken()","fb5589b4":"memCopy(uint256,uint256,uint256)","fb55d09d":"EtherGames()","fb55ed2a":"transferBlocToUser(address)","fb58674d":"Npole()","fb598f87":"createPost(uint256,uint256)","fb5a3282":"restFinish(address)","fb5b82d0":"setCollector(address)","fb5bd32b":"withdrawDevBalance()","fb5d5729":"getPongvalTransactional()","fb5d5999":"getDepositary_function_control()","fb5d7376":"step4()","fb5f39dd":"offlineSell(address,uint256)","fb5f8a13":"changeAddressKnight(address)","fb5fef42":"distributeALCToken()","fb6021ae":"ICO(string,string,uint8,uint256)","fb60938f":"getSumAmountOfSuccessfulDeals()","fb6139b5":"setServerFee(string,uint256)","fb6168ac":"BUY_ME()","fb621f14":"getSecurityTokenAddress(string)","fb6287d2":"setWalletAddresses(address,address,address)","fb62e083":"addWhiteListed(address)","fb632ef9":"transferrableBalanceOf(address)","fb63c4fc":"MESSAGE_PRICE()","fb63e4b1":"CEZA(uint256,string,string)","fb640453":"_getTotalBmcDaysAmount(uint256,uint256)","fb644a14":"Force(address)","fb64e072":"recordTransfer(address,address,uint256,uint256)","fb64e6b1":"icoAddr()","fb656067":"genesisCallerAddress()","fb659c3a":"addArticleItem(uint256,bytes)","fb65a1a3":"teamdistr(address,uint256)","fb65a3cb":"createCampaign(bytes32,uint256,address)","fb65e4b1":"Contribution()","fb674cf4":"emissionEnabled()","fb67983c":"fuckingClaim1(bytes,bytes)","fb687c24":"refundMethodABI()","fb68aa89":"hasInitCard1()","fb690dcc":"donated(address)","fb6a53d2":"multiBurn(uint256[])","fb6aeb42":"PRE_PUBLIC_LOCKUP_PERIOD()","fb6b18c0":"totalAirDrop()","fb6b4afd":"getWeaponModel(uint256)","fb6bbbce":"Crowdsale()","fb6c2b6f":"stopMarket(uint32)","fb6cae8e":"NetkillerToken(uint256,string,string,uint256)","fb6d0e8f":"pullShares(address)","fb6e155f":"availableVolume(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)","fb6e6558":"holderNumber(address)","fb6f6875":"deleteHotel(address)","fb6f71a3":"setCharity(address)","fb6f93a4":"setEthUsdRate(uint256)","fb6f9579":"Increase()","fb702ed1":"multiDistribute(uint256[])","fb7043ea":"isRefundPossible()","fb709d2e":"charities(uint256)","fb70f765":"foundationTokenSupply()","fb70ff96":"increasePieceCount(uint256)","fb71807f":"setUser(string,string,bytes32,uint256,uint256,uint256[],string,string)","fb719113":"deathData_f17()","fb7248cb":"playerGuess(address,int16)","fb72d24e":"shift_right(uint64,uint256)","fb72fdfe":"setTotalAllowed(address,uint256)","fb73a593":"modifyAllLevelCaps(uint256[],uint256)","fb741504":"IndividualCapCrowdsale(uint256,uint256)","fb7450be":"setBtcToken(address)","fb74da7e":"setTentativeWinningPayoutDistributionHash(bytes32)","fb74e6f7":"ADVISOR_STAKE_FOUR()","fb756f97":"Tokenomicx()","fb75b2c7":"rewardWallet()","fb77269e":"periodITO_period()","fb77378a":"SCOOP()","fb775b46":"giver()","fb77eae2":"startTimeSaleWithBonus()","fb78eb53":"Oncology()","fb78f85c":"mgrCount()","fb791b0b":"withdrawOrder(uint256)","fb794281":"gas_amount()","fb79e70f":"superNovaSupply()","fb7a2c1f":"addQuestion(string,uint256,uint256,string)","fb7a5f4f":"getEndBlock()","fb7a809c":"buyStageDataRecord(uint256,uint256,uint256,uint256,uint256,uint256)","fb7ae31e":"getCurrentRoundLeft()","fb7baf70":"initRegistMatch(uint8,uint8,uint8,uint256)","fb7c0a3f":"doBuy(uint256)","fb7cb850":"setMaxMerge(uint8)","fb7cf694":"buyPriceInWei()","fb7e54eb":"vcx()","fb7e7456":"endOfLockProjectToken()","fb7f21eb":"logo()","fb80d66f":"SQR_TOKEN_MULTIPLIER()","fb80fe9e":"test(uint256,address)","fb81299b":"setAllMarketsFinalized(bool)","fb815503":"withdrawWin()","fb81563b":"SpaceImpulseERC20()","fb84da41":"createSketch(string,string)","fb850fab":"newCampaign(uint32,uint256)","fb8621df":"push(bytes32,string,bytes)","fb8632b8":"availableEmission()","fb867165":"getSaveData(address)","fb86a404":"hardCap()","fb87bf7b":"LLX()","fb87d5ea":"TransactionRequest(address[4],address,uint256[11],uint256,bytes)","fb87eb0b":"setRefundsActive(bool)","fb88e7c1":"updateBestPromouter(address,uint256)","fb890a17":"YUPToken(address,address,address,address,address)","fb89fb28":"yield7Day()","fb8a5bf8":"H2OC()","fb8a5f1c":"createTransaction(address,uint256,bytes32,address,address)","fb8b0197":"claimReceivables(address[])","fb8bc297":"getInvestorPackPrice()","fb8c7420":"GetRandomNumber()","fb8dd3bb":"createEvent(bytes32,bytes32[],address,uint256,uint256,uint256,uint256)","fb8e4f1a":"BountyChanged(uint256)","fb8e7870":"buyKebabs()","fb8e82b4":"min(uint32,uint32)","fb9073eb":"reLoadXname(bytes32,uint256)","fb913d14":"sendByTranche(bytes32,address,uint256,bytes)","fb920ad1":"reclaimAndBurn(address,uint256)","fb92488b":"ChangePrice(uint256)","fb92507d":"daytime(uint256)","fb92e4fb":"_isGoodAddress(address)","fb932108":"distribute(address,uint256)","fb950559":"getAffiliation(address)","fb950a7f":"addGrantableAllocation(address,uint256,bool)","fb95adeb":"testFailBlockhashInsuffiecientFee()","fb95d9e7":"addConfigEntryAddr(bytes32,address)","fb961571":"ICOStartBlockChanged(uint256)","fb969b0a":"bootstrap()","fb9734fc":"confirmProposal(address,bytes32,uint256)","fb979ba2":"ROUND_1_PRESALE_BONUS()","fb97b61f":"lpAskVolume()","fb98a409":"skinContract()","fb990288":"_newInterest(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","fb9a2ce2":"getSellPosition(bytes32,uint256)","fb9a4595":"GitHubBounty()","fb9ab10b":"EpsToken()","fb9b4ab8":"createrAddress()","fb9ba033":"checkAllowedAddressForMinting(address,address)","fb9ba7bc":"removeAccreditedInvestor(address)","fb9bbeaf":"RaiSed()","fb9c7303":"completeInvestment()","fb9ca16b":"MarianaKey(uint256,string,uint8,string)","fb9cb15d":"numChipsMinted()","fb9dd851":"getGameInfoByIndex(uint256)","fb9ded46":"totalWeiRaisedDuringICO3()","fb9e1270":"investmentIdLastAttemptedToSettle()","fb9ec0a8":"assignPersiansToBattle(uint256)","fb9efcf0":"setCustodianForeign(address)","fba06849":"fipsPublishDataMulti(bytes20[],bytes)","fba07791":"fiatCost()","fba0aa5b":"txFeeSentInWei()","fba0ce5e":"setLinkedIn(string)","fba12c17":"minerLockAddress()","fba13bd0":"depositBalanceOf(address)","fba17fc9":"Flye()","fba246de":"DepositETH()","fba26207":"setUint64(int64,uint64)","fba2a2d2":"setPeriod(uint16)","fba2b18b":"_getplayersurplus()","fba2fb66":"newPolicy(bytes32,bytes32,uint256,uint256,uint8,bytes32)","fba36b31":"payWithRef(address)","fba4734f":"withdrawEthereum(uint256)","fba4abb2":"payoutBalanceCheck(address,uint256)","fba52ff1":"getInvestorClaimedTokens(address)","fba5de1c":"cancelGetTogether()","fba5ee24":"getSinistre_effectif()","fba5f1f6":"weaponModels(uint256)","fba6651c":"getCommunityTaxes(uint256)","fba6748c":"getMaxPrivateSaleBuy()","fba6e51b":"_getFinalAddress(uint256[],address[],uint256)","fba70381":"adventureByToken(address,uint256,uint256,uint256,uint64,uint64)","fba71fe9":"periodICOStage6()","fba74490":"PoseidonQuark()","fba779f6":"armyHelicoptersCount(uint256)","fba79777":"test1cash()","fba7c1ab":"addMake(string,address,uint256,uint256)","fba7cc79":"getIsActive()","fba84b2a":"LjwStandardToken()","fba90629":"totalSupplyPrivateSale()","fba906c5":"HiroyukiCoin()","fba939f8":"_goal()","fba9ce40":"donateToDev()","fba9cea9":"someAction(address)","fba9dbbb":"chnageSpecialFeeTake(uint256,address,uint256,uint256)","fba9ecac":"getFreeBanker()","fbaa0ece":"weekTwoRate()","fbaa89d3":"LogBidRemoved(address,uint256)","fbabc444":"PeaceChainToken(uint256,string,string)","fbabdb06":"disapprove(address,uint256)","fbac3951":"isBlocked(address)","fbac7d1d":"setCampaign(bytes32,uint256,uint256,uint256,uint256,bool,address)","fbac89f6":"unlock(bool)","fbacc43f":"getBases()","fbad8983":"sendyum(address)","fbae5e7d":"Investors(uint256)","fbaeac89":"newOwnerAPI()","fbaf094a":"provider(address)","fbaf12a7":"_removeBlacklistedUser(address)","fbb0eb8b":"mintingNonce()","fbb11f29":"setTokenGbi(address)","fbb1c5c4":"XBCOMMUNITY()","fbb26d00":"releaseBasicAccount()","fbb39f6e":"offerTrade(uint256,uint256)","fbb4d51b":"OverseasReturneesUnion()","fbb4dc6b":"secondMonthEnd()","fbb4f0e3":"NuToken()","fbb58c5c":"STARTING_FALCON()","fbb5d52d":"sellCoinsToICO(uint256)","fbb5f682":"KUNTEStandardToken(uint256,string,uint8,string)","fbb6272d":"tokens(uint32)","fbb65708":"freedWinPoolForSecondStage()","fbb78719":"private_setmaxBet(uint256)","fbb8932a":"getSeatMessage(uint256)","fbbb75c5":"getClaimedOwners()","fbbc3448":"getWrefundIndex(uint8)","fbbcb4de":"GointoMigration(address)","fbbd6545":"pushHatch(address,uint32,uint16,uint16)","fbbdb68c":"hiddenOwner()","fbbdbf22":"_setTimes()","fbbe20a9":"breeding(uint256,uint256)","fbbe7887":"NewBOP(address,address,uint256,uint8,uint256,string)","fbbedf5c":"ERC20Token(string,string,uint8,uint256)","fbbf119b":"BTCCCoin()","fbbf93a0":"getDetails()","fbbfa45e":"destory(address)","fbbfe830":"refundTokenHolder()","fbc00b4a":"GACC()","fbc032ab":"GCFcoinF(uint256,string,string)","fbc09b26":"m_totalDatasetCount()","fbc34d1c":"artistsArtworkCount(address)","fbc3d0ef":"frozenReserveTeamWallet()","fbc402fc":"updateDarknodeBond(address,uint256)","fbc44458":"setTransferAuthorizations(address)","fbc449a7":"FirstContract()","fbc47e56":"tokenListContract()","fbc4f981":"ReceivedBTC(address,uint256,string)","fbc53c8e":"Arascacoin(uint256,string,string)","fbc5db95":"lowestAskTime()","fbc6c0f0":"firstChipBonus()","fbc6d0ff":"confirmTransactionWithSignatures(bytes32,uint8[],bytes32[])","fbc7ad3e":"finishedLoading()","fbc805ee":"changeMaximumContributionForAllPhases(uint256)","fbc80af6":"FakeNewsToken()","fbc94bd1":"icoFinishInternal(uint256)","fbc94f24":"changeTokenPrice(uint256)","fbc990d0":"_removeMember(address)","fbc9c601":"requestAccess(address,int256,address)","fbca6ba6":"maintenance(uint256)","fbcbc0f1":"getAccount(address)","fbcc3775":"isMyWalletLocked_Send()","fbccc2b1":"setBoolF1UintF1StrF2Intf3(bool,uint256,string,int256)","fbcebd02":"delegatedRefund(address)","fbcece85":"freeTokens(address,uint256)","fbceff0e":"WangWangCoin(uint256,string,uint8,string)","fbcf1594":"UNLOCK_TEAM_2()","fbcfa0d7":"createCard(string,uint256,address,address,bool)","fbd06cb6":"s42(bytes1)","fbd0c5d7":"SaleClockAuction(address,address,uint256)","fbd0e7df":"Reimburse()","fbd15163":"lengthMessages()","fbd1df54":"TotalCount()","fbd1eb7b":"deployAgentWallet()","fbd22407":"EscrowRaj()","fbd275f8":"randomGen(address,uint8)","fbd2dbad":"previousDelegates(uint256)","fbd395f8":"pauseToken(uint256)","fbd3c51a":"left83(uint256)","fbd3d51b":"setMasterAddress(address,address)","fbd4200c":"base_token_is_seeded()","fbd42e0f":"releaseLockedTokens()","fbd4e0f0":"chkdrawadm(address)","fbd54a63":"sendAmount(address[],uint256)","fbd59425":"ETLToken()","fbd668a9":"setMaxProfit(uint256)","fbd6d77e":"addCoordinator(address)","fbd6fdde":"reLoadCore(uint256,uint256)","fbd70768":"___setProxyOwner(address)","fbd7b853":"setTokenSupplyLimit(uint256)","fbd7c5f1":"priceT3()","fbd7d081":"TOKEN_HODL_3M()","fbd81564":"logger(string)","fbd902f2":"_distributeTokenToPurchaser(address,address,uint256)","fbd95a39":"sendToAddress(address,address,uint256)","fbd9c625":"changeAddressPaladin(address)","fbd9c902":"vendi()","fbda68e2":"numberOfMessages()","fbdafaf9":"getInvestorAtIndex(uint256)","fbdb70fb":"KRWT()","fbdbad3c":"lastCompletedMigration()","fbdc03fe":"nettingContractsByAddress(address,address)","fbdc562a":"setCanChange(bool)","fbdd3982":"s17(bytes1)","fbdd7852":"Ownership()","fbdd8508":"PriceAccepted(uint256,uint256)","fbdda15a":"isTrustedContractAddress(address)","fbde47f6":"FEE_RANGE()","fbde5b64":"gameLength()","fbde8ad4":"pStartBlock()","fbde8d75":"manualWithdrawTokens(uint256)","fbdeecab":"endTimePreIco()","fbdf0378":"getAllChildren(bytes32)","fbdf45c8":"ZoosCoinToken()","fbe00e8e":"receiveEtherFromGameAddress()","fbe04e1c":"boolFunc(bool,bool,bool)","fbe0508c":"toggleActive(bool)","fbe093dc":"targetFeePeriodDurationSeconds()","fbe2e125":"addBet(uint256,uint8,uint256,bool)","fbe334f8":"getNumFulfillments(uint256)","fbe3462c":"minBuyRateInPrecision()","fbe3549c":"addWeight()","fbe38ffb":"canEscapeTo(uint32,int256,uint32)","fbe3bb40":"TSTOraclzAPI()","fbe3e1a2":"_setCap(uint256,string)","fbe413e4":"createMember(address,bytes20,uint64)","fbe45b48":"unitPLATCost(uint256)","fbe5ce0a":"removeOwner(address,address)","fbe5d87e":"getTotalCollected()","fbe6529f":"findOldest()","fbe6a9b2":"winners_count()","fbe7913f":"Accept_Payment()","fbe89965":"GoldenCoinToken()","fbe8dab9":"getProfitForDay(uint256,uint256)","fbe9bb6d":"_isValidDepositCountry(uint256,uint256,uint256)","fbeaa807":"RefundSent(uint256,address,uint256)","fbeaaed2":"VersionedAgreementControll()","fbeac9c9":"setRefBonus(address,uint256)","fbeaebc6":"murder()","fbeb89dd":"tournamentContract()","fbebc9af":"getPixelAuthor(uint32,uint32)","fbec4769":"MatchpoolAdministrator()","fbec51bc":"requestRedemption(address)","fbec6f21":"gold()","fbec9121":"maxRandom(uint256)","fbece99f":"abortive(uint256,uint256)","fbee7b58":"giftIsFrom()","fbeecb47":"safeTransferByContract(address,address,uint256)","fbeee7e4":"isPeriodClosed(uint256)","fbef0195":"_calcDelta(uint256,uint256,uint256,uint256)","fbef957b":"ada()","fbf05e69":"GasLog(string,uint256,uint256)","fbf0ade1":"setOwnerFee(uint256)","fbf0f7da":"buildOutAddress()","fbf184c6":"getBankermasterReq()","fbf1a44b":"holyBountyFundDeposit()","fbf1f78a":"unapprove(address)","fbf22dea":"issueSoftcapToken(address,address,uint256)","fbf2360c":"isMessageEnabled()","fbf2dd6a":"depositTokensForAccount(address,address,address,uint256)","fbf350e2":"TokenBBBasic()","fbf3c88d":"getSignedPublicEncKey(address)","fbf405b0":"pinakion()","fbf42072":"CashPoints1()","fbf44a1b":"setOraclizeGas(uint256)","fbf552db":"hint()","fbf561fe":"developer_add_address_for_A(address)","fbf58b3e":"transfer(string,address)","fbf69367":"FuleexToken()","fbf788d6":"cash(address,uint256,uint8,bytes32,bytes32)","fbf7980f":"setChainsAddresses(address,int256)","fbf7ba65":"claimExploreItem(uint256)","fbf7e985":"ExaUSD()","fbf80773":"isUserRoot(address)","fbf82d31":"WorldWideCoin()","fbf9180e":"getLastAuditTime(address)","fbf94ce1":"GlaidexToken()","fbf9dab7":"getBetters()","fbf9dc12":"GoldBank()","fbfa49a8":"icoWithdraw()","fbfa4b7f":"requestsCount()","fbfa77cf":"vault()","fbfb76c4":"GUAEX(uint256,string,string)","fbfb77d7":"setArquivo(bytes)","fbfb7e70":"market_WithdrawForSale(uint256)","fbfb8b02":"createMintRequest()","fbfbb62e":"BASE_CLB_TO_ETH_RATE()","fbfc1653":"XBLToken()","fbfd1da4":"getKeccak256Uint(uint256,uint256)","fbfd45f5":"PRE_SALE_START_2()","fbfd90cb":"finishBurningByCreator()","fbff728f":"HodboCrowdsale()","fbffb355":"testBitsEqualFailIndexOOB()","fc00234e":"icoStage()","fc006216":"MODICOIN()","fc01157c":"firstCrowdSaleEndDate()","fc017495":"EmployeeOptionsExercised(address,address,uint32,bool)","fc018c05":"makePublic()","fc01987b":"setLockAccount(address)","fc01abbe":"stringToBytes32(string,string)","fc01ce83":"increaseClaimsBalance(address,address,uint256)","fc01dfbb":"mintUpto(address,uint256)","fc0262e0":"CpublicGold()","fc02c1df":"assertExpectations()","fc03441c":"allDecimals()","fc034bd8":"getPoolOwners()","fc036d7c":"SECURITY()","fc037776":"assertEq31(bytes31,bytes31)","fc03c7ec":"setLockend1(uint256)","fc03fb11":"MacBookOracle()","fc043830":"getNetworkFee()","fc043cad":"setPullPaymode()","fc04771a":"RT()","fc04a2ec":"_getOriginAddressHash(address,address,string)","fc04c0c4":"partnerTransfer(uint256,bytes32,address,uint256)","fc04c62e":"offerAsSacrificeFromVault(address)","fc05a6fc":"getPeopleBeforeMe(address,address)","fc06013a":"updateTokenEmission(uint256,uint256,uint256,uint256)","fc0656c9":"candyTokenAddress()","fc06a877":"createApp(string,uint256,string)","fc06d2a6":"sunrise()","fc078bd4":"GDCAcc05()","fc0808e5":"bet_MIN()","fc091b71":"MitCoin()","fc09ff9e":"submitTransaction(address,string,string,uint8[],bytes32[],bytes32[])","fc0a39b7":"isJackpot(bytes32,uint256)","fc0c3460":"CryptoSoft()","fc0c38a7":"Dsocial()","fc0c50fe":"getCallPtr()","fc0c546a":"token()","fc0d0117":"masterWallet()","fc0dce74":"ATL(address)","fc0e3d90":"getStake()","fc0e4262":"___AllBalance()","fc0e64de":"setInitialGasForOraclize(uint256)","fc0e74d1":"shutdown()","fc0ea853":"processWithITG(address,uint256)","fc0f392d":"activateSafeMode()","fc100eb2":"inxToken()","fc10655e":"actual_feedin()","fc10881a":"CXCoin()","fc108f70":"GamblerPerAddress(address)","fc10d4d5":"getFeeRecipientById(uint256)","fc11f71c":"setInstructor(address,address,uint256,bytes16,bytes16)","fc122892":"deleteOpenAction(string,address,string)","fc12c7da":"blocknumbersOf(uint256)","fc12dfc7":"weiDelivered()","fc13440c":"HealthCharityToken(uint256,string,uint8,string)","fc136941":"EmergencyWithdrawalProposed()","fc13a76a":"testFailAddForeignChildNotInUse()","fc14230f":"wei2euroCents(uint256)","fc143f2b":"defrostOwner()","fc14a47c":"CTBToken()","fc14ed71":"updateForSale(uint256)","fc157b13":"getOrganFunction(uint256)","fc15dcef":"resAmount()","fc1711f2":"setWeight(uint256)","fc176c4c":"getAdsCountByUser(address)","fc177bd6":"resetArray()","fc178f2a":"MoonTokenERC20(uint256,string,string)","fc17ce26":"Panthercoin()","fc17d2ac":"setFunctionEightPrice(uint256)","fc184fff":"addPhenomenon(string,string,string,uint8)","fc190261":"getIntervalsForWindow(uint256,uint256,uint256,uint256,int256)","fc190d6e":"newUpdate(string,bool)","fc192fb0":"setMinimumWithdrawal(uint256)","fc196cf3":"getNoInvestor()","fc1a1110":"currentLiquidInDeal()","fc1a142d":"adPriceHour()","fc1a3f0a":"decreaseTokenLock(address,uint256)","fc1adfdf":"invest(address,uint256,uint256,uint256)","fc1b8a7e":"richestPlayer()","fc1b9286":"rewardActivityEnd()","fc1c01b2":"setCrowdsaleParams(uint256,uint256,uint256)","fc1c2180":"setHotWalletAddress(address)","fc1c32fa":"fundariaBonusFundAddress()","fc1c5218":"RemoveOpenOrder(uint32)","fc1c9620":"depositOrWithdraw(address)","fc1da46a":"parcipateCrowdsaleAll()","fc1dfdf1":"extraData1FromHash(string)","fc1e1a32":"NetfBalance()","fc1e2ce9":"getGameAmounts(uint256)","fc1eb4d1":"withdrawPoly()","fc1ed437":"initialAmount()","fc1f2a70":"Add(uint256,string,string)","fc1f2d46":"setAllowTransferWhitelist(bool)","fc1f5c9c":"personalSegmentHash(string,uint256,bytes32)","fc1f5e53":"resetTimeLockValue(address)","fc1f7652":"_isBoardMember(address)","fc200a55":"mintWithTimeLock(address,uint256,uint256)","fc201122":"_setOwner(address)","fc204334":"sendAwardToLastOne()","fc207c8f":"periodAt(uint256)","fc21fa40":"getAmountByCurrency(uint256)","fc223410":"doBet(uint256[],uint256[],uint256[],uint256)","fc22545c":"getPreICOFundersCount()","fc22a9f8":"initialIssuance()","fc22d0e5":"migrate(address,uint256,uint256)","fc23466d":"search_data()","fc235fb8":"timeWaitApply4Redeem(address)","fc236188":"setData_7(string)","fc23f5b1":"getAddressByID(uint256)","fc248fd6":"RegisterNode(bytes32)","fc24e589":"badgeTotalSupply()","fc2525ab":"get(address,string)","fc252b94":"_getBuyPrice()","fc257baa":"traderWithdrawalSignals(address,address)","fc2584a2":"fillOrMarket(address)","fc26088e":"K_INITIAL_SUPPLY()","fc2615d5":"getRemainTime()","fc2634b7":"callURL(string,string,string)","fc26d522":"tip_total()","fc26fe01":"setairDropManagerLimit(uint256)","fc27ea83":"defaultAmount()","fc281217":"TokenInformation(address)","fc284d07":"earlyBackers(uint256)","fc28bc8f":"staffContract()","fc2b8b7b":"initTokenSupply(uint256)","fc2b8cc3":"quit()","fc2bd7ae":"sendtoMultiWallets(address[],uint256[])","fc2c1ddb":"setItemAvailable(uint256,bool)","fc2c3e08":"getIteration()","fc2d2b69":"SmartBondsToken()","fc2d64e3":"getProviderData(address)","fc2df281":"withdrawICOEth()","fc2e5bf2":"OfferOnHold(uint256,bool,address)","fc2ea8a5":"airdropAmount()","fc2f5e67":"recoveryAllowed()","fc300522":"getCallFee(bytes32)","fc303ef1":"destroyBottle()","fc3087f8":"withdrawAll2()","fc317cbe":"mainSaleDate()","fc322d73":"challengers(bytes32)","fc324642":"__createNewToken(address,string,uint256,uint256,uint256,uint256)","fc325efd":"getItemByIndex(uint256)","fc3280c2":"getDegreeAtIndex(uint256)","fc32f09c":"MyShareToken()","fc331ebb":"transfererc20(address,address,uint256)","fc334e8c":"reveal(bytes32,bytes32)","fc335bb5":"OrmeCash()","fc337f5a":"getFreeCat()","fc342947":"renewFeatured(uint256)","fc34b908":"TOTAL_BONUS_SUPPLY_ETH()","fc366a2a":"RETZE()","fc36cc9d":"setCoolHero(uint32)","fc36e15b":"vote(string)","fc37987b":"buyRate()","fc380d96":"addBonusTokens(uint256,uint256)","fc384b7c":"executeStackholderTransaction(uint256)","fc385d51":"changeRelease6m(address)","fc3880ae":"priceWithBonus()","fc38ce19":"validPurchaseTokens(uint256)","fc38d4a4":"upgradeAgility(uint256,uint256)","fc395c90":"AddBillModerator(address)","fc3b7379":"lastBlock_a18()","fc3c28af":"devPercent()","fc3c8561":"testDistribute(uint256,address[],uint8[])","fc3d9f9f":"calcUnMaskedKeyEarnings(uint256,uint256)","fc3daf81":"_CalcDiv()","fc3f162b":"unregisterAuditor(address)","fc3fc168":"DIVIDEND()","fc3fc4ed":"getAuctionInfo(uint256)","fc4116bb":"p_update_mResalePlotTaxPercent(uint256)","fc416159":"coreERC()","fc42b58f":"getTransferFee(address,uint256)","fc4333cd":"clean()","fc434891":"unWhitelistAddresses(address[])","fc43bbfb":"setWhitelistAddress(address,uint256)","fc442ec3":"getFlavor()","fc44e41b":"RANDOMFACTToken()","fc44fd28":"payBalanceToReturnWallet()","fc450ae6":"MummyAccountWithdraw()","fc45c822":"getDividends(address,address)","fc470105":"TestcoinToken()","fc47b9d2":"brulerDe(address,uint256)","fc47fcf5":"total_devidend()","fc48b653":"authorizedTransfer(address,address,uint256)","fc49926f":"getCountdowns()","fc4a089c":"newPermission(bytes32,address[],bytes4[])","fc4a4a1e":"StartTime()","fc4b01ff":"addTicketsToDraw(uint256,uint8,uint8)","fc4b2473":"ALC_CONTRACT_ADDRESS()","fc4bd9d7":"throwIfSetPresaleTokensAfterSaleStarts()","fc4c0daa":"_agent()","fc4d20f5":"addMonsterObj(uint32,address,string)","fc4d705b":"COLOR_GOLD()","fc4db64e":"SendAmount(address,address,uint256)","fc504655":"getPriceInWei()","fc512b92":"postCrowdsaleWithdraw(uint256)","fc515d93":"approvedAddressSize()","fc51b9c5":"cancelOrder(address[3],uint256[5],int256,int256)","fc51daef":"getCurrentRoundWinner()","fc523f7a":"settte(uint256,address)","fc525c75":"Ammbr(string,string,uint8)","fc52be0a":"getLatestTokenAllocation(address,address)","fc52cc1d":"incPreSell(address,uint256)","fc52f2eb":"DogRacingToken()","fc5378bb":"getEmployeeInfoById(address)","fc539a4a":"getInstances(bytes32)","fc53c821":"getMembersLength()","fc53f958":"ADMIN_ALLOWANCE()","fc53fe51":"_authorizePayment(address,uint128)","fc548f08":"changeArbitrator(address)","fc55c8d6":"buyPixel(uint256,bytes32)","fc55ea9d":"removeCustomer(string)","fc56200e":"JCFv1(uint256,string,string,uint8)","fc563658":"getNumber(uint256)","fc578323":"getProposalProposedBy(bytes32,bytes32)","fc57fadf":"IsValidAddress(address)","fc58452e":"castVote(bytes32,uint16)","fc58edea":"FoundationAddressFreezeTime()","fc58fc49":"setUser(address,address,string,uint256)","fc59116d":"setTokenTypes(uint16,uint16,uint16)","fc5a0152":"div256(uint256,uint256)","fc5ab1c6":"_unlockOther(address)","fc5b57a6":"removeStackholder(address)","fc5b652a":"LogNeumarksBurned(address,uint256,uint256)","fc5be8ec":"bonuscalico(uint256)","fc5c0cde":"allTimeDiscount(uint256)","fc5d9244":"totalBonusTokens()","fc5e2cce":"calculatWithdrawForPeriod(uint8,uint256,uint256)","fc5eb846":"currentHunterNumber()","fc5faa82":"ProWalletToken()","fc5fc345":"getPlayerIds()","fc5fc8ae":"preICOEnds()","fc601902":"_isAdmin()","fc608e17":"getAllocatedTokenCount(address,address)","fc60bb36":"_removeGroupFromMember(address,bytes32)","fc60e82c":"calculatePrize(uint256,uint256,uint256,uint256)","fc612a8d":"priceUpdater()","fc623ef8":"hashToSign(bytes32)","fc632647":"MNToken(uint256,string,uint8,string)","fc63977a":"getAddressFromUsername(bytes32)","fc63d4fb":"order(bool,uint32,uint128)","fc63dad6":"getLastBuyer(bytes32,uint8)","fc65169a":"phase4Duration()","fc65b3ac":"all_team_accounts()","fc65ee05":"marginCallOnBehalfOfRecurse(address,address,bytes32,uint256)","fc65f812":"_currentPrice(uint256)","fc6634b9":"setSellPrice(uint256)","fc673c4f":"operatorBurn(address,uint256,bytes,bytes)","fc676652":"Embassy(address,address)","fc67af2d":"withdrawCommunityBalance()","fc68521a":"f(address)","fc687311":"betOn(int8)","fc688e87":"logAccount(address,uint256)","fc6a0ca6":"changeTeamSize(uint8)","fc6a3ff7":"ticketsOwnedByUser(address)","fc6b72b6":"bringCat(uint256)","fc6c403b":"getMySalePrice(bytes32)","fc6d0dd0":"getLightingWithdraw(address,address,bytes32,bytes32,uint256,uint32)","fc6d1892":"setArrUintField1(uint256[])","fc6def15":"decider()","fc6e33ee":"MAX_SALE_DURATION()","fc6ef5a5":"getUserTokenLocalBalance(address)","fc6f46a0":"addTether(address,string,uint256,uint32,string)","fc6f9468":"adminAddress()","fc6fadec":"LoggedReward(uint256,string,uint8,string,bool,bool)","fc700dc0":"createBucketLender(bytes32,address,address,address,uint32[7],address[],address[])","fc70b462":"viewReputation(address)","fc722b2b":"trustedDarknodeRegistry()","fc72c1ef":"ERC20Base(uint256)","fc735e99":"verify()","fc7368fa":"reopenBet(uint256)","fc73c86e":"getInvestments(address)","fc73ec00":"changeDividend(uint256)","fc741c7c":"makerFee()","fc749323":"NTC()","fc74dadd":"delegateProxy(address,bytes)","fc74f55c":"IexecHubAccessor(address)","fc753ce3":"NAME_ARK()","fc756c69":"createship(uint256,address)","fc7596a8":"GoldBoxToken()","fc76501a":"preIco1Raise()","fc76687c":"jinglesOnSale(uint256)","fc77060d":"withdrawEtherHomeExternal()","fc772c8b":"reclaim(address)","fc773166":"GCoin()","fc78b430":"delegateVote(address,address,uint256)","fc792719":"hasBeenClaimed()","fc794183":"timesfucky()","fc79c8eb":"TBCoin()","fc7ae9f5":"presaleMaxContribution(address)","fc7b78b1":"changeVestingAgent(address)","fc7b9c18":"totalDebt()","fc7ba686":"affiliatesCutOutof100()","fc7c1c80":"getParentB(uint256)","fc7c41af":"doDisown()","fc7cb268":"PoSToken()","fc7d07ce":"AllocateFounderTokens()","fc7d2b3a":"EtherOcrend()","fc7d6518":"getLockSdc()","fc7e061f":"convertPresaleTokens(address,uint256,uint256,string)","fc7e4768":"saleMinShares()","fc7f1a88":"increaseBurnApproval(address,uint256)","fc7f7957":"callMeMaybe()","fc7fcae1":"extractFund(uint256)","fc800df4":"getBuyerbyaddress(address,address)","fc818684":"burnFromContract(uint256)","fc8234cb":"_unpause()","fc82d0f7":"currentIterationSupplyLimit()","fc836563":"SendTokens()","fc845834":"GoldenCoin()","fc860e96":"emissionTime()","fc862027":"setNameTAOLookupAddress(address)","fc86a7a5":"getTokenSoldPrice(uint256)","fc87790f":"addToWithoutFee(address)","fc8791c0":"change_p1(uint256)","fc87c766":"addressCap(address)","fc880be0":"SetCommissionValue(uint256)","fc882dff":"ownerHashed()","fc88ee77":"optionExerciseOf(address)","fc891b97":"MosesToken()","fc892cfe":"setup_token()","fc89aff6":"submitVerifiedUsers(address[])","fc89f349":"ORZToken()","fc8aaa76":"disableManualEmission(bytes32)","fc8ad37c":"changeParameters(uint256,uint256,uint256)","fc8b4a90":"checkDuplicateMatchId(address,uint256,uint256)","fc8bbb6d":"AddresstoAsciiString(address)","fc8c2f0d":"AlphaMarketTeamBountyWallet(address[],address)","fc8cddf2":"ARCADIA()","fc8d4f4f":"getShareHoldersInfo(uint256)","fc8dae84":"AllAmericanCoin()","fc8f3a94":"_getPayTo()","fc8f616e":"XXX()","fc8fc6f7":"KittyCoins()","fc906720":"setSiringWithId(uint256,uint32)","fc906897":"StageDistributed(uint8,uint256)","fc909fc7":"EtherGrand()","fc912461":"_setControllers(address[])","fc914949":"ValidContractRemoved(address,address,uint256)","fc91a274":"getAmountByToken(bytes32,string,address)","fc91e03d":"EtherDeltaWithdraw(uint256)","fc94dd18":"verifyHumanStandardToken(address)","fc959d9a":"getMin(uint32[])","fc961664":"setPI_edit_7(string)","fc966d45":"uintToStr(uint256)","fc970859":"PacBall()","fc976827":"TOTAL_TOKEN_AMOUNT()","fc9774c1":"dividendShares(address)","fc98f71e":"developerLock()","fc99342e":"create_table()","fc9937e5":"orders_sell_total()","fc996557":"goldContract()","fc998981":"sendBountyBalance(address[],uint256[])","fc9bfaa6":"externalCallFlag()","fc9c473d":"limitPerHolder()","fc9c8d39":"caller()","fc9dab52":"soldSale()","fc9dc608":"setRoundTime(uint256,uint256)","fc9e53df":"setNextRegistrar(address)","fc9ede65":"getPropertyBecomePublic(uint16)","fc9f8cae":"_isApprovedPack()","fc9ffe02":"getWalletList()","fca062d3":"blockBeforeChange()","fca10682":"randomGen(uint256,uint256,uint256)","fca129a3":"finalizeDescription()","fca16c3b":"getBuyPrice(uint256,uint256,uint256)","fca2452b":"change_b(address)","fca2d9f5":"senttest()","fca2efd5":"DocnotaPresale(address,address)","fca346af":"SetupCrowdSale()","fca3644a":"verifyMessage(uint8,uint256,bytes32[4])","fca3b5aa":"setMinter(address)","fca495f0":"receivePurchase(uint256)","fca5d057":"migrateTokensV1(address,uint256)","fca5d21f":"playSlot()","fca5e61e":"drugs(uint256)","fca64947":"setMetaBet(uint256)","fca69afa":"CYCLE_CAP()","fca6d4e2":"LogAccess(address)","fca76c26":"lockMaxSupply()","fca7c355":"MUSTToken(address,string,string,uint256,uint256)","fca7cdba":"pgoMonthlyPresaleVault()","fca865dd":"aSetProportion(uint16)","fca981f6":"setStepFunctions()","fca9bb5f":"FACTOR_1()","fcaa7664":"getStage()","fcaa96fa":"withdrawForThreeStep()","fcac1c77":"DragonKing(address,address,address,address,uint8,uint8,uint8,uint16[],uint16[])","fcad399f":"TheFlashToken(uint256,string,string)","fcad8cf3":"RentOffice()","fcae08e1":"fundTokens()","fcae4484":"unsubscribe()","fcae8c06":"takeMoney()","fcb0339e":"icoMinCap()","fcb0368c":"BuyToken(uint256)","fcb0a7ad":"getMinAuditPrice(address)","fcb0e55c":"_validGenes(uint256)","fcb163c7":"ExecuteOptions(address,uint256,string,uint8)","fcb1804d":"getRateAndTimeRemaining(uint256,uint256,uint256,uint256)","fcb1b62d":"arbiterAcceptCount()","fcb1cba0":"GetQuota()","fcb2931b":"LockupContract(address,address,address)","fcb2acd5":"_preValidatePurchase(address,uint256)","fcb2cafc":"verifyAddress(address)","fcb300e6":"_activate()","fcb36ce2":"buyCalcAndPayout(address,uint256,uint256,uint256,uint256,bool)","fcb3a3a3":"setCrowdsaleMinter(address)","fcb5bc29":"startPhase2()","fcb5ced3":"saveToCW()","fcb5d44d":"doExchange(uint256)","fcb6323a":"unclaim(address[])","fcb71ea9":"balanceOfHolder(address)","fcb750cf":"REFUND_DIVISION_RATE()","fcb806ac":"ReserveManager()","fcb80d16":"getCurrentFgcCap()","fcb899d7":"LEGAL_EXPENSES_ADDR()","fcb8b1e1":"NewHardCap(uint256)","fcb927aa":"addPublisher(string,bytes,address,address[],uint256[],address,uint32[])","fcb941c9":"setGenomeContractAddress(address,address)","fcb94dbb":"toBytes(address,address)","fcbc1bc4":"Standard23TokenMock(address,uint256)","fcbcf436":"clearSums()","fcbd06aa":"supportersMap(address)","fcbd2731":"transferToProxy(uint256)","fcbe0f5f":"BRD()","fcbeaaa7":"buyTile(uint16,uint16,uint8)","fcbf3131":"private_setBankAddress(address)","fcbf323a":"ScienceToken()","fcc01cce":"getExpectedAmount(bytes32)","fcc101ba":"getCommunityDescription(uint256)","fcc11241":"addOrder(uint256,uint256,uint256,uint256,uint256,uint8)","fcc15c8e":"Strike(uint16,uint32,uint16,uint8)","fcc1cc9b":"removeLockMultiple(address[])","fcc21e56":"withdrawToTeam()","fcc29ae8":"setMaxContributor(uint256)","fcc2a69b":"BankuNetwork()","fcc34e89":"migrateCrowdsale(address)","fcc36c49":"refuseInvestment()","fcc47803":"removeSpecialOffer(address)","fcc4a54c":"getDeedIds()","fcc4dec9":"refound(uint256)","fcc550c6":"CreateCCM(address,uint256)","fcc5b5ad":"investContracts(uint256)","fcc60b6a":"isInited()","fcc648f6":"withdrawEtherToReserveEscrow()","fcc6b5d5":"fillTheirOrder(address)","fcc73637":"updateExchangeRate(uint256,uint256)","fcc8221f":"getfromsun(address,uint256,uint256)","fcc830be":"getMyRickAndMorty()","fcc89710":"LogTokenSaleInitialized(address,address,uint256,uint256,uint256)","fcc9b48c":"isIcoFailed()","fcca4040":"tokenCapReached()","fcca8949":"p_setDevPercent_out(uint256,uint256)","fccc2813":"BURN_ADDRESS()","fcccc68f":"LoveBite()","fcce0492":"AdminTransferredOwnership(address,address)","fcce2622":"challengeAnswer(uint256,bytes)","fcceea26":"communitySupply()","fccf5a68":"SmartBinding()","fccf6e67":"newOrdersContract(address)","fccf82a4":"endDateOfPreSale()","fcd0a747":"RICTToken()","fcd10753":"_getProviderSupply(uint256,uint256,uint256)","fcd13382":"OsherCoinPresaleAward(uint256)","fcd13d65":"setContractRegistry(address)","fcd14456":"teamVestingPeriod()","fcd24400":"lookupCampaignPart2(uint256)","fcd307c4":"processReferral(address,address,uint256)","fcd3533c":"burn(uint256,address)","fcd41502":"requiredMajorityPercent()","fcd41c1f":"officialAddress()","fcd45807":"isTokenRegisteredBySymbol(string)","fcd47e79":"getnowcardcount()","fcd51a4e":"_setIntelligenceValue16(uint256)","fcd58363":"refundCancelledGame(uint32,uint32[])","fcd6e339":"giveBlockReward()","fcd6ec11":"HELLO()","fcd735dd":"transferVesting(address,uint256,uint256,uint256)","fcd778da":"setCardsAddress(address,address)","fcd792f4":"nextAvailableId(uint256)","fcd830c4":"setCCH_edit_28(string)","fcd8c9d4":"_goldTotalSupply()","fcd92992":"resync()","fcd936b1":"Simple()","fcd9da44":"setParameters(uint256,uint256,uint256,uint256)","fcd9f4ce":"withdraw(bytes32,string,string)","fcda4ded":"showBankAmount()","fcdb2c04":"getMyGameInfo()","fcddd056":"payIn()","fcde22fa":"_eachPrize(uint32,uint256,uint8,uint32,uint256)","fcde2ff6":"getPI_edit_23()","fcde6831":"addTokens(address[],bytes32[],uint256[],uint256)","fcde6ebe":"createSalesTierConfigMap()","fcde7b69":"TokenFRT(address)","fcde9925":"proposalOwner(uint256)","fcdf350b":"EGGS_TO_HATCH_1FAIRY()","fcdf9750":"createDispute()","fce14069":"partnerBonusPercent()","fce1cc35":"setInt(int256,int8,int16,int32,int256)","fce1ccca":"voting()","fce1e3e9":"setPatentFees(uint256[9])","fce20190":"_refund(uint256,uint256,uint256,uint256)","fce22c4c":"generatePseudoRand(bytes32)","fce266cb":"artworksFactory(address)","fce33f01":"withdrawLimit(address)","fce3b91e":"IdolToken1()","fce3bbb5":"setSelling(bool)","fce44634":"isValidHashType(uint8)","fce48558":"countryOf(uint256)","fce4c128":"checkInvestmentRequired(uint16,bool)","fce4f84f":"sellToConsumer(address,uint256,uint256)","fce59d0c":"MangoRepo()","fce6d586":"LogClaim(address,uint256)","fce78e5e":"TurtleToken(uint256,string,string)","fce846e8":"getExtraBonus()","fce87fb0":"tokenUriPrefix()","fce897e5":"payBid(address,uint256,bytes)","fce908ad":"whitelistTx(address,address)","fce927f3":"issueReservedTokens(uint256)","fce9fbff":"minWeiPerContributor()","fce9fdd9":"MPYCreation(address,uint256)","fceb9852":"isToOffChainAddresses(address[])","fcec617a":"conflictEndFine()","fcec962e":"adminWithdraw(address,uint256,uint256)","fceca4a0":"VICOXToken(uint256,address)","fcecbb61":"getReceipt(bytes32)","fced4a86":"CryptoHuntIco(uint256,uint256,address,address)","fced5694":"FOUNDER1_STAKE()","fced6ad2":"KARMAtoken()","fcee45f4":"getFee(uint256)","fcef09d6":"BlipCompetition(address)","fcef56a4":"createBar()","fcf07c6b":"foundationAddress()","fcf0f55b":"eventOracles(bytes32,uint256)","fcf23a92":"LogOwnerChanged(address,address)","fcf23d63":"getMatchInfoList03()","fcf2f85f":"requiredDevSignatures()","fcf32769":"adminWithdraw(address[4],uint256[5],uint8,bytes32,bytes32)","fcf3438c":"setSmsCertifier(address)","fcf36918":"doCall(bytes32)","fcf40170":"cleanWallets()","fcf4333a":"updateHashrate(address)","fcf43ce2":"setValidTransferAddress(address)","fcf4b576":"getVaultAccess(address)","fcf516aa":"VuePayToken()","fcf5462e":"SuperUltraUltraCoin()","fcf56577":"setRequesterLock(bool)","fcf7e73d":"addBeneficiary(address,uint256,uint256,uint256,uint256,bool,string)","fcf84962":"InvestAddEvent(address,uint256)","fcf8566e":"unsoldCleanUp()","fcf911e7":"delAddressValue(bytes32)","fcf9c44d":"soldUET(address,uint256,bytes32)","fcfa2bfe":"SALES_START()","fcfa63e3":"getResourceAddress(string)","fcfbc962":"Unset(string,string,address)","fcfc1577":"masterFns(bytes32)","fcfc208e":"unclockAddressDuringITO(address,address)","fcfd3a4c":"PreICO(address)","fcfdaa52":"successfulTime()","fcfdbc23":"perform_withdraw(address)","fcfdcf8a":"removeOpenMakeOrder(address,address)","fcfdeba8":"changeGameEnable(uint256)","fcfdf7c5":"decApprove(address,address,uint256)","fcfe2247":"setContributionDates(uint256,uint256)","fcfe6af1":"transfer(address,uint256,address,address,uint256,uint8,bytes32,bytes32)","fcff1eaf":"increaseGasSpent(bytes32,uint128)","fcff5ed6":"createChannelDelegate(address,address,uint192)","fcffb14e":"getNormalPayout(uint256)","fcfff16f":"open()","fd004f2d":"IRONtoken()","fd01249c":"createGen0Auction(uint256,uint256)","fd01d4a1":"ownerDivRate()","fd0326b4":"m_nextSale()","fd036052":"modPass(uint256,uint256,string,string,string)","fd037bc5":"changeIsPayableEnabled()","fd03846e":"setCreditBondContract(address)","fd03c006":"agreeCount()","fd03d762":"resumeWork(uint256)","fd03e721":"referraltokencontract()","fd049319":"distribute1BTCO(address[])","fd04a902":"totaletherstransacted()","fd05ddfc":"CCCRCoin()","fd062d3b":"handleFees(uint256,address,address)","fd06c6a9":"issuePass(address,bytes32,uint8)","fd070667":"tournamentResult(uint32[3][11][32])","fd074c28":"removeWeapon(uint8[176],uint8,uint8)","fd074e8e":"checkIfMissionCompleted()","fd0801c1":"appendNumToString(string,uint256)","fd080993":"submit(bytes32,bytes32,bytes32)","fd083748":"isGason(uint64)","fd084b16":"etherPartition(uint256)","fd085b41":"minSaleAmount()","fd08921b":"getYear()","fd090e47":"DEPOSIT_PERIOD()","fd0998de":"Totalbalance()","fd09b6f0":"JNDToken()","fd09d013":"CROWDSALE_ALLOCATION()","fd0a7f3e":"grantGrantableAllocations()","fd0aeb34":"EderCoin()","fd0b9dc2":"verifyWithdrawUpdate(bytes32,bytes32,uint256,uint256)","fd0bb752":"getBonusReceived()","fd0c1edb":"_setVault(address)","fd0c2a76":"Crowdsale(uint256,uint256,uint256,address,address)","fd0c78c2":"secondaryOperator()","fd0cdcdb":"withdrawRemaining(address)","fd0cfa91":"baseFeeDivisor()","fd0d1322":"WETCC()","fd0dd4d0":"btnSupply()","fd0e4695":"_canceloffer(address)","fd0edbd6":"refundSeller(address,address,uint256)","fd0f267b":"deathData_v0()","fd0f5a81":"updateWEIAmount(uint256)","fd1075d0":"setTokenRewardRate(uint256)","fd1094a9":"JaiHoToken()","fd12c1cb":"ethFnkRate2()","fd1343f1":"ESOPAndCompanySet(address,address)","fd138223":"remainingBountySupply()","fd13a7ce":"isPurchaseWithinCap(uint256,uint256)","fd14492a":"DinoTokenSale()","fd14ecfe":"balanceOfSPS()","fd15e091":"changeSymbolName(string)","fd17f289":"teamTokenSupply()","fd186de6":"StoToken(address,address)","fd18b484":"VitaToken()","fd19368a":"isEditionAvailable(uint8)","fd1a0a55":"JINGJING()","fd1aaa72":"sendToOwnerBalance(address,uint256)","fd1bd9b0":"getAmountLeft()","fd1c50e0":"sellAtIndex(uint256,uint256)","fd1c66da":"getCertificateIssued()","fd1ccaf3":"HideraNetwork(uint256,string,string)","fd1dc137":"settoken(address,bool)","fd1e582d":"ownertransfer(address,uint256)","fd1e5e7a":"getOrCacheDesignatedReportNoShowBond()","fd1f4ba5":"setAgenda(string)","fd1fb2fa":"rateB()","fd1fc4a0":"airDrop(address[],uint256)","fd203906":"getCarState(string)","fd208ca7":"endprivateIco(bool)","fd214edd":"collect(uint64,address[],address[],address)","fd221031":"tap()","fd221889":"priceFactorA()","fd222745":"melonport()","fd225cfd":"CoCoCoin()","fd228c0b":"isMintAgent(address)","fd22a6cf":"openGames(uint256)","fd23022a":"Orocoin()","fd232b59":"getEscrowPayments(uint256)","fd241e2b":"mintWithLocked(address,uint256,uint256)","fd2457d7":"clearStorage(bytes32[])","fd253492":"leadingHitCount()","fd255683":"getAddressValue(string)","fd260dfc":"getCertificationDbStatus(address)","fd263390":"setBank(address,bool)","fd26c460":"set_game(string,string)","fd275dd5":"TokenFreezerRules(address)","fd277399":"isService(bytes32)","fd27b51e":"getMarketSize()","fd27ce93":"checkRelease(address,uint256)","fd27d1d3":"getBlockPrice(uint256)","fd282afe":"batchSingleAmount(address[],uint256)","fd28392a":"changeSweepAccount(address)","fd289797":"_canSynthesizeWithViaAuction(uint256,uint256)","fd28feb3":"createInitialItems()","fd2994f7":"totalPointsPerToken()","fd2b4f23":"TheTestCompany()","fd2b6b19":"crowdSaleEnded()","fd2b863d":"produceUnitSeconds()","fd2c3abb":"targetDiscountValue8()","fd2c80ae":"updateInterval()","fd2ce18e":"getPayloadFrom(address)","fd2cee78":"pollEnded(bytes32)","fd2cf77a":"COLOR_BLUE()","fd2d39c5":"positionOf(address)","fd2db3f4":"countTotalInvestorsInCrowdsale()","fd2dba2f":"largeRate()","fd2e9caf":"PendingETH()","fd2ecc3f":"_setLastDate(uint256)","fd2edd76":"TOTAL_LOCKS()","fd306ca7":"transferProfitToHouse()","fd30929a":"disable(address[])","fd32649f":"cleanLog()","fd330b26":"Total_Gamblers()","fd338726":"updatePlayerRewards(address,address)","fd339d18":"testAuthorityTryAuthUnauthorized()","fd345fc2":"totalNominees()","fd34e22e":"addrToForumId(address)","fd35c16d":"createLibra(bytes32[],bytes16[],uint256[])","fd35e71b":"entryPayoutDue(uint256)","fd367f7d":"toggleFeatured()","fd36c3f9":"burnFromAdmin(uint256)","fd37f1d0":"setInv1(address)","fd38af55":"testDebugClock()","fd39b40b":"GameScored(bytes32,int256,int256)","fd39ba59":"totalPreICOSupply()","fd3a77db":"acceptManagership()","fd3ab282":"q()","fd3acb5c":"getRoundOfSixteenResult(uint256)","fd3b34e6":"AddEntity(bytes)","fd3bbba5":"openOrCloseSale(bool)","fd3c1391":"flushShareNext()","fd3c1c43":"wolkAddress()","fd3c4277":"BattleDromeICO()","fd3c4cbf":"bidERC20(uint256,uint256)","fd3c88bd":"MultiVault(address,uint256)","fd3c9144":"intervalTime()","fd3cabc0":"_triggerPVEFinish(uint256)","fd3cb5d1":"doCommunityMinting(address,uint256,int256)","fd3d0dbf":"ioxis()","fd3d8cdc":"registerNameXID(string,bool)","fd3e2d86":"EpayToken(uint256,string,string,uint8)","fd3e50a7":"deliver()","fd3e6a0a":"transfers(address,address,uint256)","fd3ecae6":"changeExtendedTime(uint256)","fd3eefe9":"getAvailableAmount(string)","fd3f1a04":"unapprove(uint256)","fd3f2f66":"changePrivateContribution(uint256)","fd408767":"fireEventLog4()","fd40a1e9":"addMarketItem(bytes16,bytes16,bytes16[])","fd413596":"addBulk(address[])","fd41477f":"previligedLock(address,uint256)","fd414a29":"TOKEN_RATE_20_PERCENT_BONUS()","fd425dd5":"initCopper()","fd42657a":"_currentOwner()","fd426e40":"remainingTokensVIPs()","fd4446f3":"ICOSALE_JOINTTOKENS()","fd460302":"internalPresaleVesting(address,uint256,uint256,uint256,uint256,uint256)","fd4649ae":"UpdateUserPELOBonus(address,uint256)","fd46544a":"deleteAllBioTranslations()","fd467473":"setupFundingRate(uint256,uint256)","fd468aaa":"setPeriods(uint8)","fd473852":"TaiChiCoin()","fd475875":"newInversor(address,address)","fd475fa2":"requestAddAdmin(address,string)","fd478ca9":"getNumParticipants()","fd48cc45":"challenge(bytes32,uint256,string)","fd4931a3":"getUintUsername(address,address)","fd4a343d":"extraMint(uint256)","fd4ad523":"recentlyEndedGames(uint256)","fd4b9d4d":"smalobox()","fd4bd17b":"calculateWineBuySimple(uint256)","fd4c5c9f":"MIN_LEADER_FRAC_BOT()","fd4c8c30":"PlayX20()","fd4d603c":"PS_PRICE()","fd4dabef":"solved(uint256,bytes32[])","fd4dbdf2":"T20coin(uint256,string,uint8,string)","fd4e165e":"RiceFarmer()","fd4e4d75":"addressA()","fd4eeb8f":"isOMICrowdsaleContract()","fd4f4125":"totalEtherHasBeenReceived()","fd4faee0":"Chain1()","fd4ff437":"addWhitelistBulk(address[],uint256[])","fd50299a":"addFeedback(address,uint256,address,string,uint8)","fd507f75":"airdropMultiple(address[])","fd50b005":"buyForWhitelisted()","fd52b3cd":"olumla()","fd52bdd5":"TweetherToken()","fd530c17":"Deposit(bytes20,uint256)","fd531e93":"getCertificate(address)","fd535203":"refundEther(uint256)","fd53e7b4":"admin_active_withdraw(address)","fd54fab8":"calculateBonusTokensAmount(uint256,uint256)","fd554229":"getGidOfRarity(uint8,uint8)","fd55714d":"getTotalCampaignsByCountry(string)","fd557d39":"queryCost()","fd56317d":"ANMvesting()","fd56d4c8":"getControlInfoPerToken(uint256)","fd57e9f9":"deleteElement()","fd57ee6d":"timelock(address,uint256,uint256)","fd58e63a":"setBonusMultiplier(uint256)","fd5a6019":"testUser(address)","fd5a60e1":"killDragon(uint256)","fd5c0663":"distributeBalanceToInvestors()","fd5c40ea":"ELIX_ADDRESS()","fd5c6694":"createGennezise(uint32)","fd5cb32c":"ItemBought(address,uint256,uint256,uint256,uint256)","fd5d173b":"MAX_NUM_OZT_TOKENS()","fd5d3e01":"getContractOrigin()","fd5eddf3":"supplyTokens(uint256)","fd5f1e03":"getParticipantLockedAmount(address,address,bytes32)","fd5f7256":"adminRetrieveContractConfig2()","fd5fde65":"mintTimeLockedTokens(address,uint256,uint256)","fd600107":"BONUS_TIER2()","fd600408":"tpe()","fd607594":"min_payment()","fd609b91":"DelVoteMemberCandidate(uint256)","fd60e1a8":"getReferralCounts()","fd6133a6":"updateTokensAvailable()","fd6180cb":"tokenDividendsOf(address)","fd619dce":"sigBountyProgramAddress()","fd61a725":"getMinimumReportingFeeDivisor()","fd626a86":"sellKWHAgainstEther(uint256)","fd6273a3":"ERC20KKToken()","fd6358ce":"setPricingStrategy(uint256,uint256,uint256,uint256,uint256,uint256)","fd636975":"addWeight(address,uint256)","fd637f02":"TEAM2()","fd63f640":"getLLV_edit_5()","fd645193":"RegistrationBonus(address)","fd64eccb":"isForwarder()","fd651d2c":"TransferBy(address,address,uint256)","fd655073":"balancesForWithdraw(address)","fd6673f5":"getNumberOfPlayers()","fd669810":"close(address,address,uint8,uint256)","fd67db81":"getCharity(uint256)","fd68610f":"getEtherBack()","fd6887af":"queenPrestige()","fd68a422":"returnmoneycreator(uint8,uint128)","fd68e463":"FeitebiToken(uint256,uint8,string,string)","fd68f377":"ethyclos()","fd69f3c2":"getMarketCount()","fd6aad25":"indexOf(address)","fd6b7ef8":"safeWithdrawal()","fd6ba459":"mintCard(address,uint8[14])","fd6bb46c":"addWeb(string)","fd6dd889":"marketTokenCreated()","fd6e1b50":"reportBenign(address)","fd6e3bfe":"setNFTAddress(address,address)","fd6ecb7b":"getReceiptDetails(bytes)","fd6efe80":"DiscCoin()","fd6f4137":"getAdvocate(address)","fd6f5270":"CouponDeposit(address[2],uint256[7],uint8,bytes32[2],uint256)","fd6f5430":"setContent(string,bytes32)","fd70813b":"setTermsAndConditions(string)","fd70b40d":"HashToken(address)","fd70f406":"citiesCount()","fd71b579":"LockMechanism(address,uint256)","fd720090":"right86(uint256)","fd7230d6":"create(uint256,bytes)","fd72a11a":"TorusCoin(uint256,address)","fd72e22a":"operationsWallet()","fd735602":"executeN()","fd7394ae":"IndividualityToken()","fd743f2b":"Coke()","fd747c0b":"rsaVerify(bytes,bytes,uint256,bytes)","fd74a151":"ETH_FUND_DEPOSIT()","fd7560ca":"distributeEarningsBasedOnScore(address,address)","fd75b8d4":"calculateGrantClaim(address)","fd7611c7":"withdrawContractTokens(address)","fd764e68":"transfer(uint256,address,address[],uint256[],uint8[],bytes32[],bytes32[])","fd77905c":"setColorMetadata(uint256,string)","fd7801df":"getCitationLength()","fd782de5":"Proxy()","fd7903a0":"getTeamFromLeaderboard(uint16,uint8)","fd790923":"keyImageUsedUpdate(uint256[2])","fd791031":"gamesFund()","fd793c76":"btg()","fd79c2a9":"ContractName()","fd7a1b00":"forbidDeploy(address)","fd7ab1ad":"chiudi_votazioni()","fd7ac203":"TestToken()","fd7af387":"canTransferBetweenUsers()","fd7c074f":"changeReceivingAddress(address)","fd7c460d":"ciberLottery()","fd7caf4d":"loyaltyCap()","fd7d7948":"getTranformedId(uint64)","fd7e1bee":"freezeTime()","fd7f611e":"createCompany(string)","fd7fc0e0":"invest(uint32)","fd7fe115":"grantAccess(address,bool)","fd7feb35":"cancelWonderSale(uint256)","fd7ffdb8":"recordSystemOnSaleToken(uint256)","fd8055d2":"updateBOTBillingInfo(uint256,string,address,string,string,uint256)","fd809759":"getYearIdx()","fd810eb3":"logAccess(bytes32,string)","fd8113e9":"checkprevowner(address)","fd812e7c":"revealHash(uint256,uint256,bytes4)","fd814dbd":"GameXToken()","fd8258bd":"canIssue(address,address,address,uint256)","fd82902d":"MeowCoin()","fd82a59f":"advisorsTokensVault()","fd83915e":"changeOwnership(bytes32,address)","fd83da09":"lastSaleDate(uint256)","fd83f3e3":"QueueUserMayBeDeliveryDroneCotnrol()","fd842125":"ricardianVoucher()","fd854148":"periodDuration(uint256)","fd85b1a7":"openChannel(uint256)","fd8663d2":"setBuyBackFund(address)","fd86e49d":"token_is_active(address)","fd872458":"PK(address,uint8,bytes32)","fd874a7b":"blockedTimeForBountyTokens()","fd87f2cb":"ADXProxy()","fd8828eb":"rawSetPrice(bytes32,uint256)","fd89a9b5":"enableImpairedTokenContract(address,bool)","fd89d17f":"THIRD_SUPPLY()","fd8ac8d0":"capDay2()","fd8acc42":"buyAuction(uint256)","fd8ae24b":"getTimeLeftInQ1()","fd8b09c2":"ENBToken()","fd8bb681":"earlyBackerList(uint256)","fd8bcf6d":"requestCancelationTime()","fd8be237":"CrowdsaleToken(string,string,uint256)","fd8c6fe4":"RexToken(uint256,address,address)","fd8d4bff":"MoyOpenDistribution()","fd902d1e":"setCutoffs(uint256)","fd904207":"OPTCToken()","fd906c0f":"createClone(address,string,string,string,address,uint256)","fd906ec9":"participate(bytes1[64])","fd909594":"icoGoal()","fd90a668":"allowManuallyMintTokens()","fd911997":"make(uint256,address,address,bytes32,bytes32,uint256,uint256)","fd9133f3":"LOCKTokenCOIN()","fd9168a9":"setRef(uint256)","fd9177b5":"LogMoveMade(uint256,uint8,uint8,uint8,uint8)","fd922a42":"server()","fd923a9e":"setCentsExchangeRate(uint256)","fd925795":"pvt_plmt_remaining_in_Wei()","fd9304cd":"minInvestmentValue()","fd93236b":"bankerEndTime()","fd9393c3":"init(uint256,string,string)","fd93bdb1":"changeRestricted(address)","fd94c80b":"priEtherReceived()","fd958695":"isAlphaNumeric(bytes1)","fd97a008":"autoDividendsFor(address)","fd97c61a":"getgamecardcount()","fd97d3c1":"giveCrypto()","fd9923ce":"asmTransfer(address,address,uint256)","fd994513":"executeVote(uint256[])","fd99a746":"transactionsCount()","fd99c012":"USDTUBESupply()","fd99c6a4":"upgradeCar(uint32,uint8)","fd9a4e61":"transferTokens(uint256)","fd9b41ff":"getCurrentFieldBalanceAndTarget()","fd9b8763":"Multiplier()","fd9be522":"withdrawFee(address,uint256)","fd9bf0a4":"_setPermissions(address,address[])","fd9bf3aa":"mint(address,int256)","fd9e2120":"initPara(uint256,uint256,uint256,uint256,address,uint256,uint256)","fd9e5fbf":"setTimeStaked(uint256,address)","fd9e8ff7":"Shard()","fd9f12b0":"isYellow()","fd9f6856":"lastDepositor()","fd9f9b87":"isOption(address)","fda0078f":"AKTestEther1(address,address,address,uint256,uint256,uint256)","fda03476":"luckySevenBets()","fda08958":"isServer(address)","fda0c61d":"setupWhitelist(address)","fda237f8":"genesisToken()","fda263e8":"timeEnd()","fda27af2":"claimSiteToken(uint8,uint256)","fda49eb4":"treasurer()","fda69fae":"getInt(string)","fda76eef":"RewardsGiftToken()","fda78599":"ecoSystemWallet()","fda79925":"complianceAddress()","fda80435":"c_MinInvestment()","fda86c95":"internalRevokeCert(bytes32,bytes,bytes32,bool,uint256)","fda92d3e":"ErrorMsg(string)","fda962d3":"totalGenesisRecipients()","fda9aafe":"WyzonCredit()","fdaa2632":"UploadURL(uint256,string)","fdaa94de":"deleteAddr(address,bytes)","fdaacf1b":"transferOwnerMoney(address)","fdab1b7b":"getCurrentAuctionPrice(address,address,uint256)","fdab5627":"_approveCertificate(uint256,bool)","fdac0025":"cups(bytes32)","fdac3a20":"set_eth(uint256)","fdac9ff7":"setAttributeValue(address,bytes32,uint256)","fdacbecd":"geteths(address)","fdacd576":"setCompleted(uint256)","fdad711d":"setFinalPayoutDistributionHash(bytes32)","fdade29f":"BuyBooster()","fdae3b70":"proofOfSms()","fdae8a4c":"isAddressInBlackList(string,address)","fdaed331":"getTransferedUser(uint256)","fdaed778":"testConcatStorage32Bytes()","fdaf150c":"abc_initNetwork()","fdaf22e8":"minutos()","fdb04023":"closeVirtualChannel(bytes32,bytes32)","fdb31d10":"_createToken(string,bytes5,string,string,string,string,string,address,uint256)","fdb357be":"getVotingForCount(address)","fdb39c40":"userNameHashTaken(bytes32)","fdb406cb":"outstandingTokens(address)","fdb473b1":"unsetMyName()","fdb4dbe0":"totalEgg()","fdb5a03e":"reinvest()","fdb7b065":"marketDataOracle()","fdb7d435":"TEC(uint256,string,string)","fdb837e8":"GetTotalClicks()","fdb89360":"ParkCoin(uint256,string,string)","fdb914e2":"capPreSale()","fdb986cc":"NiobiumToken()","fdbab5f5":"PUBLICSALE_ENDTIMESTAMP()","fdbaf779":"internalBuyTokens(address,address)","fdbb16fd":"setEthPercent(uint256)","fdbb5aee":"ChannelNewBalance(address,address,uint256,uint256)","fdbb9fdb":"UNJUST(string,string,uint256,uint256,bool)","fdbc368a":"_ensureNewUser()","fdbc4006":"getCandidateList()","fdbc6530":"updaterAddress()","fdbc938d":"BlessingChainAlliance()","fdbd2534":"acceptCoinSale()","fdbd8dd8":"investInternal(address,uint256)","fdbd956d":"oraclize_query(uint256,string,bytes[],uint256)","fdbda9a7":"parentChange(address)","fdbdc112":"backersIndex(uint256)","fdbf0765":"hash(bytes20,uint96,uint32,bytes32[],uint16)","fdbf17d0":"computeFinalStake(uint256)","fdc0713b":"getMinAuditPriceCount()","fdc193a4":"test3Fails()","fdc202f1":"Ticket(string,uint256)","fdc24095":"returnMasterNodes(address,uint256)","fdc272fe":"getTokenVolumebasedBonusRateForPhase3(uint256)","fdc292ea":"token(address,address)","fdc35112":"LogBuy(address,uint256,uint256)","fdc37c85":"securityCheckURI()","fdc3d8d7":"nextTaskId()","fdc40466":"maxInterestTime_()","fdc4741b":"addRecToQueue(address,uint256)","fdc487a7":"FundWithdrawl(address,address,uint256)","fdc4b338":"authorizeExtension(uint256,bool,string)","fdc4c3eb":"reservedWithdraw()","fdc5bf2c":"releaseToBuyer()","fdc61dd1":"coinAddress()","fdc63c5c":"aprobarMensaje(uint256,uint8,string)","fdc65c8c":"stakingBonusTokens()","fdc69291":"_adjustSupply(address,uint256)","fdc89f73":"toPowerOfThreeHalves(uint256)","fdc967e5":"jDallyCoin()","fdc98399":"getCurrentBuyerRateInPermilles(bool)","fdc99064":"unregisterNotary(address)","fdc9d0f4":"Telegram()","fdc9e72d":"_ownMint(uint256)","fdcb6068":"accessManager()","fdcb7539":"contruibuteData(bytes)","fdcbd0ec":"_deleteMinion(uint32,uint8,uint64)","fdcbd9b0":"GatewayStatusUpdated(bool)","fdcc6be3":"claimedPreICO(address)","fdccf45e":"computeCurrentPriceImpl(uint16,uint64)","fdcd0a18":"isRefundsEnabled()","fdcd649e":"EthAnte()","fdcd86ab":"addBets(bytes32)","fdce7f5e":"JinglesOpened(address,address,uint256)","fdce8e02":"checkHash1(address,uint256,address,uint256,uint256,uint256)","fdce9565":"determineWinner(uint256[7][],uint256[7][])","fdcea342":"fixPlayerMiddlename(uint256,string)","fdced779":"KozzProjectToken()","fdcf154c":"SODCOIN()","fdcf6f16":"getTopCompanyAtIndex(uint256)","fdd0298e":"PresaleAdded(address,uint256,uint256)","fdd080a4":"activateSaleContract(address)","fdd12c5e":"r(address,address)","fdd1a4e9":"externalCheckSign(bytes32,bytes,address)","fdd245ee":"referralLinkMinimum()","fdd2f2b0":"TIME_MULTIPLIER()","fdd3a879":"quick()","fdd3af8f":"fillTrade(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)","fdd3c1a1":"distributeTimelockedTokens(address,uint256,uint256)","fdd3e3ff":"_removeAuction(uint256)","fdd3ea94":"submitPeerReview()","fdd42e29":"TokenOTBC(uint256,string,uint8,string)","fdd4fd69":"penaltyDisbursalAddress()","fdd5828f":"massPay(address[],uint256)","fdd6a803":"readowners()","fdd6df8c":"mul2Require(uint256)","fdd7d87b":"decline(address,address)","fdd868df":"getTracks(uint256,uint256)","fdd8a733":"TokenCoinExchanger()","fdd8ed02":"BetPlaced(uint256,uint256,address,uint256)","fdd96ae0":"compensateContributors(uint256,uint256)","fdda3d8a":"setVicepresidenteDeMesa(bytes32,uint256,uint256,uint256)","fddaf68a":"getTipperPercentage(uint256,uint256)","fddb4683":"ERC20(string,string,uint256)","fddb7ef0":"mainSaleBonuses(uint256)","fddbcca5":"pause_4()","fddc4686":"getOwnedAssetsLength()","fddc5545":"BitHaus()","fddcbd09":"burnByCreator(address,uint256)","fddcc148":"iterator()","fdddb3ae":"Athena()","fddf0fc0":"ethRaised()","fddf16b7":"INTERFACE_SIGNATURE_ERC721()","fddf4e3b":"_packCombinedParams(int256,int256,int256,int256,int256)","fddfec78":"allowTransfer(address,address)","fde045b9":"HODLaddress()","fde07212":"Betting()","fde074c8":"betAddrsCount_()","fde0a64d":"admin_inactive_payable()","fde1276a":"removeDiscount(address)","fde17733":"demiseCEO(address)","fde1ee44":"addAttestation(string,bool,address)","fde20b6c":"tipPercentageLocked()","fde34dc4":"finalize(uint256,uint256,bytes32)","fde3cbd6":"NucleusVisionCoreToken()","fde440bb":"setPayoutNumeratorsValue(uint256[])","fde45344":"untrustContract(address)","fde46b03":"_set1()","fde4b39d":"updateStages()","fde4d9bf":"setAutoPrice()","fde5ca7d":"calcDevReward(uint256)","fde5e124":"t_Andrey2()","fde63e96":"CreateSpecialPlayer(bytes32,uint8,uint8,uint256,uint256,address)","fde6adb1":"placeBet(uint256,uint256,uint256,uint256)","fde7c834":"increase_bounty(address)","fde83a34":"tokensForTeam()","fde90733":"isRequestingEscapeTo(uint32,uint32)","fde9683d":"ICO_DAYS()","fde99668":"removeOrder(bytes32)","fde9ba41":"transfer(bytes,address,uint256)","fde9cded":"whichAuction(uint256)","fde9e506":"calcDividendsSum(address)","fdea8e0b":"presale()","fdeb49b0":"allocationsLength()","fded813c":"getInvoiceBalance(bytes32)","fdee38a9":"ETH_TLD_NODE()","fdee4ff9":"setExpectedReturn(uint256)","fdee579c":"MINfinney()","fdee5c22":"THAWING_DURATION()","fdee60e9":"peloExtenstion()","fdee69f4":"calResult()","fdef9106":"hasPermission(address,address,bytes32,bytes)","fdf061f0":"adminWithdrawBalance()","fdf0d8e0":"get_account_balance_token(address)","fdf1a434":"updateMinInvestmentForIco(uint256)","fdf1aba0":"check1(uint256,uint256)","fdf31b39":"incrementTasksCompleted(address)","fdf372ad":"niceguy2()","fdf3b97f":"calculateVestedTokens(uint256,uint256,uint256,uint256)","fdf3fa53":"RemoveCategory(uint256)","fdf54c98":"SocialNode()","fdf55523":"numRefCredits(address,bool)","fdf56d57":"voteElection(uint256)","fdf58814":"getLLV_edit_3()","fdf62f05":"createEngine(uint256,string,uint256,uint256,uint256,uint256)","fdf6393c":"removeExistingDiscount(address)","fdf762bb":"TEAM_AND_ANGEL_SUPPLY()","fdf78f70":"unlockStatus(address)","fdf7983a":"safeTransferChild(address,address,uint256,bytes)","fdf8e11c":"getTotalAngels()","fdf97cb2":"trustee()","fdfa571e":"getDrawStatus(uint32)","fdfac8e5":"BMC()","fdfcb425":"activate(address,uint256,uint256,uint256,bool,bool)","fdfd5b43":"determineWinnerScript()","fdfecb0c":"isEcoAllocated12()","fdff31ed":"getPairSellLoyaltyPerc(address,address)","fdff6b30":"testInitialBalanceUsingNewContract()","fdff85b4":"CONFIG_RETURN()","fdff9b4d":"managers(address)","fe0030d9":"IRPToken()","fe00344a":"AuctionCompleted(uint256,uint256,address)","fe006839":"INITIAL_SUPPLLY()","fe00779e":"removeBountyAddresses(address[])","fe007eeb":"SmartRouletteTokenDividend()","fe00b3a3":"kosacafToken()","fe0149a0":"ZQCToken()","fe01ee96":"Clearing(address,uint256)","fe01f1ff":"TokenTester()","fe01ff62":"verifyTx(uint256[2],uint256[2],uint256[2][2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2],uint256[2])","fe02739c":"releaseJackpot()","fe029156":"swap(address,address,uint256,uint256)","fe038093":"createTeams()","fe04a5bc":"senderMIT()","fe04cb1d":"setStatusPrice(uint256)","fe052bc6":"minimumInvestmentInWei()","fe05e8b1":"assertFact(uint256,string)","fe05f7c2":"destroyforeth(uint256)","fe06a915":"totalMTPAllocated()","fe082a21":"SFEscrow()","fe085775":"PresaleAllocation(address,uint256,uint256)","fe08e5fe":"setGalleryTwoPrice(uint256)","fe0904e6":"minerDifficulty()","fe094708":"Map(address,address,uint256,uint256)","fe098371":"findFrozenCell(address,uint128,uint128)","fe0a2c30":"returnArrayBytes1(uint8)","fe0a5ab0":"BLOCKS_BUCKET_SIZE()","fe0ba34e":"placeSellRequest(uint256,uint256,uint256)","fe0c4085":"vestingEnded(address)","fe0d94c1":"execute(uint256)","fe0dadd7":"teamTwoTotalPlayers()","fe0f2fab":"ChangeClaimAddress(address,address)","fe10d836":"setTokensToBeClaimed()","fe110116":"transferToPool()","fe12aeec":"SalesAgentAppointed(address,address)","fe1391ad":"generateFixtures()","fe13a823":"computeResponseFirstHalf(uint16)","fe13b118":"beginDutchAuction(uint256,uint256)","fe13baf7":"_encodeTokenId(int256,int256)","fe1439b4":"setCTO(address)","fe14b085":"walletUserCount()","fe164a5b":"setWhitelistThresholdBalance(uint256)","fe168eef":"_isNoNeedInCountryLimitChange(uint256,uint256,uint256,uint256,uint256,uint256,uint256)","fe16e862":"transactionsOnForHolderUpdate(address,uint256)","fe173b97":"gasPrice()","fe1798a7":"randomAttack()","fe1829b6":"extendPublicSaleDiscountEndTime(uint256)","fe1865cd":"setCompte_26(string)","fe188184":"lastWinner()","fe18d6e6":"convertToEth(uint256)","fe18f82a":"getReceivedFunds(address)","fe192f1e":"parseIntRound(string,uint256)","fe195767":"distributeEPAL(address[])","fe19f495":"VESTING_CLIFF_DURATION()","fe1b0a5c":"setHardCap(address)","fe1b588f":"CoinExchange()","fe1b602a":"getPVPCycles(uint32[])","fe1b6f8f":"getVendorName(address)","fe1bae83":"callforhelp(uint256)","fe1c5aac":"SetParticipantURI(address,address,string)","fe1c91fa":"performWithdrawAccounting(uint256,address)","fe1cdbb8":"Module(address)","fe1ce5d7":"checkOwner(address,address)","fe1d2295":"BankWithdrawal(address,uint256)","fe1d470d":"calculateDiceProfit(uint256,uint256)","fe1da528":"tokensByEurTx(string)","fe1dcbb1":"AuthorizeOperator(address,address,bool)","fe1e079e":"getNumAnimalsXPlayer(address)","fe1ebb04":"augmintReserves()","fe1f06ea":"IQIAN(uint256,string,uint8,string)","fe1f11f1":"getNbits(bytes)","fe1f6a0b":"createGame(bytes32,address)","fe1fd352":"validEmitBuff()","fe211279":"testPrintableToken()","fe213712":"USER_GET_PRIZE()","fe229b61":"_softRequire(bool,bytes32)","fe229f7c":"RecToken()","fe22fcd8":"issuanceLastModified(address)","fe230675":"hasRecord(address)","fe23583d":"fechVoteResultForCandidate(address)","fe23b262":"currentPreICObalance()","fe23baea":"setHashByWriter(address,bytes32,address,bytes32)","fe23c6d1":"BetWon(address,uint256)","fe2450c1":"challengeRewardsPercent()","fe2506a4":"buyFromBal(uint256,uint256,bytes32)","fe2545dc":"purchaseFromVault(uint256)","fe25e00a":"arbiter()","fe26063f":"getTradeAndHash(uint16,address,address)","fe261ab0":"boolToUInt(bool,bool)","fe2622a5":"AgriChainDocuments()","fe2644c6":"creator_fee()","fe26cdeb":"And(bytes32,bytes32)","fe26da0c":"publicGetState()","fe26f16f":"withdrawABIHash()","fe275280":"Silver()","fe277aba":"chAllowAirdrop(bool)","fe280f2b":"roundInfo(uint32,uint32)","fe2830d3":"PausableCrowdsaleImplPaused(uint256,uint256,uint256,address)","fe28d1d8":"CROWD_WAVE2_BONUS()","fe29fc12":"CategoryCapSet(uint256,uint256)","fe2a4e62":"lockAndDistributeTokens(address,uint256,uint256,uint256)","fe2b6246":"updateMaxMinComparables(uint256,uint256,uint256,uint256)","fe2c6198":"price(string)","fe2ca553":"setBalances(uint256,uint256)","fe2cce6f":"PaylessMinisplit()","fe2cec21":"NeobitToken()","fe2d8933":"preIcoInvestors(address)","fe2da970":"getUserByUsername(bytes32)","fe2dac15":"LogNewQuestion(bytes32,address,uint256,string,bytes32,address,uint32,uint32,uint256,uint256)","fe2dc64b":"finalizeProposalVoteResults(bytes32,bytes32)","fe2e306b":"playe2Bid()","fe2e5db4":"SwapyExchange(address,address)","fe2edc1e":"retrieveFinished()","fe2fdf0b":"determineAllocation(address[],uint256[])","fe2ff4cf":"TokenSold(address,uint256)","fe31da3b":"disapproveByB(uint256,string)","fe32a6a7":"pushICO(uint256)","fe32c448":"TokenHolder(address)","fe332a0c":"backDARFtokenOwner()","fe33ada9":"isExistFounder(address)","fe353a5e":"checkWithdrawValueForAddressFX(address,uint256)","fe353d28":"_computeNextGen0Price(uint256)","fe35530c":"setUserWithdrawalAccount(address)","fe35804e":"createLottery(uint256,uint256)","fe37f21a":"changelp17(address)","fe389e09":"removeContract()","fe38ed66":"MarketManager()","fe396c71":"mintEarlySupportersTokens(address,uint256)","fe399121":"referrerEarnings_()","fe3b24b1":"createBBODocument(bytes32,uint256)","fe3c333b":"getActiveJudgmentByParty(address)","fe3c458e":"addContract(bytes32,address,bytes32)","fe3c51df":"getTeamId(string)","fe3c5d80":"becomeSnailmaster()","fe3c6ad4":"addclip(address,string,string,string)","fe3c9b6b":"setIcoEndTime(uint256)","fe3ce632":"lookup(bytes4,bytes)","fe3d002b":"AllocateAngelTokens(address,address,uint256)","fe3d07e4":"decrementInventory(uint256,uint256)","fe3d2236":"Oracle_ChangePeriod()","fe3e0efd":"TestERC20Token(string,string,uint256)","fe3ead72":"interreducemoney(address,uint256)","fe415139":"ProdPublicSale()","fe4170bc":"setDepositLock(bool)","fe417fa5":"claimTokens(address,uint256)","fe41b2da":"setInitialValidators(address[])","fe4215f7":"read_recast_config()","fe4259e3":"isMntpMigrated(address)","fe42cb2d":"setTokenExpectedFee(address,uint256,uint256,address)","fe42da15":"deleted(string,string,address,uint256)","fe435f6b":"getLLV_edit_33()","fe43be3f":"startDestruction()","fe442478":"sendFromContract(address,address,uint256)","fe44a664":"generateWithdrawalHash(string,uint256,address,uint256)","fe44d401":"MoncionToken()","fe4520ad":"_getOwnerTokens(address)","fe45c996":"reVerifiPost(uint256,bool,bool)","fe460201":"getTermsAndConditions()","fe4667e9":"getMaxLossAfterTrade(address,uint256,uint256,int256,int256)","fe47a2ad":"multiRequestAudit(string,uint256,uint256)","fe47a8a7":"totalFunding()","fe47c806":"processFunding(address,uint256,uint256)","fe47d34f":"USC(uint256,string,string)","fe49a9be":"ethGiven(address)","fe49ba1c":"getUnlockIdentifier(uint256,address,address)","fe49dd5f":"halveEntryPrice()","fe49e949":"requestChangeInsuranceFees(uint80,uint80,uint80,uint80,uint256,uint80,uint80,uint256)","fe4a3ac9":"setExecPrice(uint256)","fe4a3e5c":"TokenrateUpd(uint256,uint256)","fe4b84df":"initialize(uint256)","fe4c39fe":"setMaxArenaOneDay(uint256)","fe4c6b08":"_deliverTokens(address,uint256,uint256,uint256)","fe4caa64":"isAborted()","fe4cee66":"numberOfPartitions()","fe4d2a02":"_setupStages()","fe4d62f9":"getMiningKing()","fe4dd8d9":"getTokenApproval(uint256)","fe4e4a84":"exchangeIsRegistered(address)","fe4e6bf9":"queueMint(address,uint256,uint256)","fe4ee216":"transferTips(address,uint256,address,uint256,uint8,bytes32,bytes32)","fe4f7e11":"KangenToken()","fe501c6f":"ChannelSettled(uint256)","fe50cc72":"getGreeting()","fe50ce60":"getBloodlineFromParents(bytes32,bytes32)","fe51717a":"releasePause()","fe51c588":"changeFactoryAdmin(address)","fe52ee70":"setStartingTokensAmount(uint256)","fe530027":"trusteeWithdraw(uint256)","fe536ebe":"setPreferredSaleStartAndEndTime(uint256,uint256)","fe537a82":"upgradeTarget()","fe549815":"pendingTokenBalance()","fe54b5fc":"kyberHash()","fe553250":"adminTransferWorldBalance(uint256)","fe556cf0":"CirculationSupply()","fe55932a":"setName(uint256,string)","fe562ee6":"moveBlockValue(address,uint8,uint8,uint8,uint8,uint256)","fe5675cc":"toNext()","fe56e232":"setManagementFee(uint256)","fe56f5a0":"setEntranceFee(uint256)","fe5709c2":"getSlotWeight(uint256,uint256)","fe5709cd":"createPainting(uint256)","fe575a87":"isBlacklisted(address)","fe5815a6":"hasFinished()","fe58d3a3":"timeLimitEnable()","fe599559":"updateEthToUsdExchangeRate(uint256)","fe5a4e2d":"contractorReleaseFunds(bytes16,address,address,uint256,uint256)","fe5aa8e0":"getUserIndexOnToken(address,address)","fe5ba303":"reservesPerUnitToken()","fe5d5868":"XZBX()","fe5daae6":"_queAmount(uint256)","fe5e1853":"totalBet()","fe5e7e3e":"endICO14()","fe5f1dc4":"PRESALEPLUSCROWDSALE_EVE()","fe5f2e88":"refund(string)","fe5ff154":"recruitHeroFee()","fe602c65":"is_proposal_supported()","fe60d12c":"reserved()","fe60ed81":"changeUserGroup(address,uint256)","fe6129d5":"setPromoBonus(address,uint256)","fe61303b":"createGuardianSale(uint256,uint256,uint256,uint256,uint256,uint256)","fe6214c4":"LDTCrowdsale()","fe62a0a6":"transferFromPretgefund(address,uint256)","fe63300a":"registerExternalBill(uint256,address,address,uint256,uint256,uint256)","fe637e5e":"getScoreChange(int256,int256)","fe63d701":"removeQueueElement(uint256)","fe647394":"setTeamProfitAddress(address)","fe64d6ff":"changeAddress(address)","fe65066e":"setUsdMnr(uint256)","fe65bb65":"cashHistory()","fe669c26":"addPhase(uint256,uint256,uint256,uint256)","fe675deb":"Exchange(address,address,address,address,bytes32,uint256,address)","fe675f13":"toggleFieldActivation(string)","fe67a189":"finalizedTime()","fe67a54b":"endAuction()","fe687b2b":"teamc()","fe68b528":"getExchangeInformation(address)","fe68e285":"toNextStage()","fe68f73b":"getTargetBudget(uint256,uint256)","fe69c926":"onFrozenToken(address,uint256,uint256)","fe69dacd":"validDraws(address,uint256,uint256[])","fe6a0cd6":"hasNextSeedHashB()","fe6ad6c6":"isNotarized(bytes32)","fe6bca8f":"AllTest7()","fe6c19a4":"HelixexToken()","fe6cf9ee":"Krypticion()","fe6d4305":"ALC_DECIMALS()","fe6dcdba":"top()","fe6e0441":"minimalWeiTLP1()","fe6f0d82":"testConstructorEvent()","fe6f1b05":"percentDivider()","fe6f2a60":"matches(bytes32,bytes32)","fe6fef44":"setTokenQuota(uint256)","fe7009f2":"getSupplier(address)","fe704c1f":"RWQToken(uint256)","fe70a123":"KilledTokens(address)","fe70f417":"getNewForkReputationGoal()","fe71aec5":"LittleCactus()","fe71be6e":"monarchToken()","fe72277d":"addHashType(bytes32)","fe7279b1":"setTokenTransferFeeReceiver(address,address,address,address)","fe72ac7f":"newPrice(uint256)","fe72e717":"toDie(bytes)","fe72f3be":"addMember(string,string,string,uint256,string,string,uint256,string)","fe73bf21":"developer_edit_text_Exchanges_links(string)","fe73e3ec":"preliminaryGameResult(uint64)","fe73f74c":"withdrawTokenFromTAR(address,uint256)","fe742c6a":"millionInCents()","fe74f05b":"assertEq(int256,int256)","fe757fb5":"lastClaimPrice()","fe758a1e":"_timelimitCal(address)","fe75dff6":"GcoinProto()","fe75ff54":"runLottery(uint256)","fe76fbe3":"setStageOpeningTime(uint8,uint32)","fe777bcd":"etherForSale()","fe77adda":"reloadTickets(uint256,uint256,uint256)","fe77f5e5":"getCostToNextLevel(uint256)","fe7805f2":"MultiSigWallet()","fe786c5f":"prependUnderscore(string)","fe79bfd0":"giftCode(string,address)","fe7baf8e":"RemoveAuthorityAddress(address)","fe7bf05e":"deathData_v6()","fe7ccb79":"CCN()","fe7cd999":"registerForICO(address[],uint8)","fe7d1587":"canCall(address,address,address,address,bytes4)","fe7d8740":"getFreelancerContracts(address,uint256[],uint256[])","fe7e187f":"add_kycer(address)","fe7eba06":"getCurrencyLength(uint256)","fe7f0d14":"DST_BOUNTY()","fe800489":"totalUnitsLeft()","fe802d7f":"isMHTHolder(address)","fe8190ce":"test_v1()","fe8252f3":"withdrawlEnabled()","fe830334":"initToken(string,string,uint8,address,uint256,bool)","fe8311db":"sendLimitTokensToPartner(uint256)","fe8312c1":"validateWallet(address,bool,string)","fe836931":"freezeAmount()","fe8370bb":"NinjaCoin()","fe84bff5":"getTransferValue(uint256)","fe84c5ec":"fixedExpUnsafe(uint256,uint8)","fe853650":"getRandomHashesLength()","fe856722":"gasPrc()","fe859472":"PractiParlezToken()","fe86338c":"cancelOrderList(bytes32[],uint64[])","fe86de13":"testTrade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,address,bool)","fe8705d5":"throwOnIncompatibleContract()","fe87ee28":"endRC()","fe8806f5":"removeRequest(address,address)","fe882fe2":"getValueAndBox(address)","fe88fc00":"balancsHolder(address)","fe892327":"DML_TOTAL_SUPPLY()","fe8925f4":"interestFeePercent()","fe89a6c1":"MAX_ALLOWED_STAGE_1()","fe8a7458":"_isLowercaseLetter(bytes1)","fe8b2707":"depositedEtherGeneric(address,bytes4,address)","fe8b6642":"setEnforceRevisions(bytes32)","fe8beb71":"getVersionFor(address)","fe8cbe18":"LogBidWithdrawn(address,uint256,uint256)","fe8d640c":"setifoodCommunityAddress(address)","fe8d8c77":"setShouldGateGuard(bool)","fe8e6a63":"quarryCities(uint256)","fe8e992f":"unpackAllocation(bytes32)","fe8f4763":"ROYBOITokenIToken()","fe8f4bbe":"freedWinPoolToWinSystem()","fe8fb49f":"setLastMaxInvestments(uint256)","fe908b7a":"pay(bytes32,address,address,uint256,uint256,bytes)","fe90f3df":"WPAYCoin()","fe91d37f":"semanticVersionHash(uint16[3])","fe92049d":"submitAnswerByArbitrator(bytes32,bytes32,address)","fe925e80":"createLoan(address,address,address,uint256,string,uint256,uint256,uint256,uint256,uint256,uint256)","fe937fa4":"setEndMintDate(uint256)","fe949159":"sendMessageToChannel(string,string)","fe94e504":"setColor(uint8,string)","fe95112c":"faythe()","fe95a5ce":"hat()","fe95cbdd":"getAgentsWithService(uint256)","fe95ec9c":"popcnt32(uint32)","fe968ade":"putStcWithBto(uint256,uint256,bytes32,uint256,uint256,uint256,uint256,bytes32,bytes32,uint8)","fe972054":"create(string,string,uint8,uint256,address,uint256,uint256,uint256)","fe972f11":"_toMill(uint256)","fe97bcf4":"RandomNumberGenerated(uint256,uint8)","fe97e481":"maxCap_MInt()","fe97ee88":"hasPhone(address)","fe98184d":"trustedUniverseTransfer(address,address,uint256)","fe985cb9":"buyin(address)","fe98f1d1":"testCantFinalizeIfNotMultisig()","fe99049a":"transferFrom(address,address,uint256,uint256)","fe992c98":"balanceOfAll(address)","fe996956":"PMET(uint256,string,string)","fe9a3664":"supportList(address)","fe9b7f2f":"maxAmountETH()","fe9bb2da":"setCSCFactoryERC721(address)","fe9bf404":"createManager(address,address)","fe9c3c28":"purchaseHalted()","fe9cc7f4":"VebEX()","fe9ccc1e":"maxBetWei()","fe9d2828":"getPI_edit_11()","fe9d7121":"StorageEther(address,address,address[],uint256,string,string,uint8)","fe9d744d":"buyBulkRegularCar(address,uint256[],address)","fe9d9303":"burn(uint256,bytes)","fe9e1c0f":"buyTokens_Vault(address,uint256,bytes8)","fe9fa16f":"testThrowExecuteSellOrderTwice()","fe9fab4d":"setPrices(string)","fe9fbb80":"isAuthorized(address)","fea1377d":"USD_HARD_CAP()","fea22ae4":"newMinimumTokens(uint256)","fea277dc":"withdrawERC721(address,uint256,address,address)","fea2920e":"createNewDraw()","fea45621":"changeTotsupp(uint256)","fea5d7b1":"mgmtIssueBountyToken(address,uint256)","fea5d9e0":"lengthEqual(uint256[],uint256,string)","fea708f6":"totalPeriods()","fea78df4":"buyGold(uint256,uint256,uint8,bytes32,bytes32)","fea7bcfb":"additional(uint256)","fea8ae97":"MakerWithdrewERC20Token(address,uint256)","fea9b572":"MAX_NUMBER()","feaa29d8":"insertProfitHere()","feaa4cf3":"updateIntention(uint256,string,string,string)","feaaa476":"BurnToken(address[])","feac36d7":"insert(bytes32,bytes32)","feaceab4":"addPayment(string,address,string,uint256,uint256)","fead0097":"setTotalUnvestedAndUnreleasedTokens(address,uint256)","feadce9c":"servicePause()","feadfdbd":"getTimeFromPrize()","feaea586":"recoverToken(address,address)","feaed589":"releasedMarketingTokens()","feaf0872":"getTokenTransferCount()","feaf1fe1":"registerToBlacklist(address)","feaf653d":"sendEth(address[],uint256)","feafb79b":"foundationAddr()","feb03fe1":"_handleProductionIncrease(address,uint256)","feb088ab":"openingTimePeriodTwo()","feb2432a":"addMediator(address)","feb272e4":"noDuplicates(bytes)","feb27ac9":"Proof_of_Tacos()","feb2a20c":"apiAccessDisabled()","feb31939":"attack(address,uint256,uint256[])","feb371cd":"VUP_TOKEN_SUPPLY_TIER2()","feb4ad89":"addEarlyPurchases()","feb4c708":"nextIdentityAccount()","feb50430":"getLevitatingKittens(bytes32,uint64)","feb5d106":"getBPCount()","feb7267b":"deleteMintable(address)","feb7d2fb":"KoniosToken(uint256,string,string)","feb80ee4":"stakeFromTokenContract(address,uint256)","feb99390":"add(uint128,uint128)","feba95fb":"purchaseFor(uint128,address)","febb0f7e":"bar()","febb1315":"gasLimitInWei()","febb5407":"currentLiquidity(address)","febc14b1":"roundCounter()","febc2980":"calculateWinnersCount(uint256)","febc8c39":"feeAffiliate()","febc9dec":"stringEquals(string,string)","febdb9b8":"rewardWinner()","febe4909":"approve(uint256,address)","febe8129":"destrcut()","febec059":"GetCurrentTypeSaleCount(uint256)","febefd61":"startAuctionsAndBid(bytes32[],bytes32)","fec07cb2":"calculateTally(address,uint256)","fec0cc19":"setIcoPhase4(uint256,uint256)","fec1aa12":"codetokenIndexToApproved(uint256)","fec1c41f":"AddNewBooster(uint256,int256,uint256,uint256,uint256,uint256,uint256)","fec2e27b":"acceptManagement(string)","fec320f4":"ListPairsForReserve(address,address,address,bool)","fec35182":"Crowdsale(address,uint256,uint256,uint256,uint256,address,address)","fec3e941":"MintAndTransferIAC(address,uint256,bytes32)","fec3fbe2":"functionTwo(uint256,uint256,uint256,uint256)","fec5438c":"costToCallOraclizeInWei()","fec568d4":"TransactionCompleted(uint128,uint256,uint256,string)","fec5c5f7":"FINX2Token()","fec5d3b0":"BTCRate()","fec69a87":"OneStandardToken(uint256,string,uint8,string)","fec6c66e":"applyFromCertificate(string,string,string,uint256)","fec74d31":"eolBlockNumber()","fec7c0a2":"FRPRUPEES()","fec7fc8e":"isSigned(bytes16,address)","fec84aac":"LogUserAddedToWhiteList(address)","fec8db83":"C3_TokenCreate(uint256,string,string)","fec966df":"countSmartSharingContract()","fec97c03":"finishFundraiser(uint256)","fec9cd77":"allowanceToBurn(address,address)","fec9dc1f":"updateNewToken(address,address)","fecab4bf":"vreoSaleOngoing()","fecadafd":"pushAtom(uint64,uint8,uint8,uint8,uint32,uint64,uint64,uint128,uint128,uint32)","fecc36c0":"fun(int256)","fecca5a5":"checkMyDonation()","fecd3486":"getTulip(uint256)","fecd817c":"cancelBuy()","fece5543":"mock_remove(address,address)","fecf9959":"withdrawTokens(uint256,address,uint256)","fed03118":"getTDETokenExchangeRate(uint256)","fed0827e":"RoseCoin()","fed09b2f":"isFemaleSale()","fed0b877":"distributeAirdropMulti(address[],uint256[])","fed0d2a1":"sellMultiplier()","fed1c977":"blockTransfering()","fed1cec2":"addWinners(uint256)","fed2063c":"mintDataStream(address,uint256,bytes32,bytes32,uint256)","fed23223":"sellFirst(uint256)","fed26772":"zeroFeeTransferByowner(address,address,uint256)","fed39929":"productOwner(string)","fed3a300":"right89(uint256)","fed3b141":"Coinbase(uint256)","fed3f18d":"admin_inactive_withdraw(address)","fed4614b":"funeral(bytes,int256)","fed4de76":"addAuthorizeRole(string,string,string)","fed503cd":"transferCoinInStages(address,address,uint256,uint256)","fed73b54":"getPlayerIdOfIndex(uint256,uint256)","fed7bb07":"getSeedAmountForGameId(uint256)","fed82ef3":"setSanityBounds(uint256)","fed8a53b":"callbackInsertApproveAndDistribute(uint256,address[],uint256[])","fed8b30a":"canSettleOrder(uint256,uint256)","fed8f40f":"invalidateMail(uint256)","fed9981e":"setDemocAdminEmergency(bytes32,address)","fed9d44f":"ARBITRARY_VALUATION_IN_ETH()","feda1045":"slaveWallet()","feda38bc":"setCrowdsaleOpen(bool)","fedabacf":"claimPrepaid(uint256,uint256,uint256,string,uint256)","fedb6dfd":"TACTICALCRUISER_FTL_SPEED()","fedbceba":"getRankLandLimit(uint256)","fedc2a28":"_rewardWinners(string,uint8,address[])","fedce093":"TheNextBlock()","fedda73b":"HC8ICO()","fedda89c":"claimVesting()","feddb41c":"peculOld()","fede04c3":"reject(uint32,int256)","fede5cc6":"issueInternal(address,uint256,bool)","fedeac70":"handleQuickCloseChannel(address,bytes32,address,uint256,address,uint256,uint256)","fedf1ed8":"getCompte_21()","fedfd535":"Config()","fedfe46c":"vote(address,uint256,uint256,uint256)","fedffec0":"currentReferralPercent()","fee01177":"getTopics()","fee0596f":"createContractCompany(string)","fee13823":"ChargeTreasure()","fee1396b":"registerNewRecord(bytes32)","fee160be":"CarFare(uint16,uint16)","fee16841":"showDeposit(address)","fee21471":"getDayIndex_(uint256)","fee24454":"sendNowLastCount()","fee2cb05":"R2()","fee3154c":"setTransferWhitelist(address,address,bool)","fee35ff8":"newInvest(uint256,address,uint256)","fee4f84d":"CryptopusToken()","fee692a3":"getAutomatedReportDisputeDueTimestamp()","fee6d28c":"addSnapshot(string)","fee7e35d":"tokenURISafe(uint256)","fee8775b":"Ping(address)","fee87e3b":"addresstoBytes(address)","fee99898":"getFee(address,address)","fee99e93":"HPAToken(uint256,string,uint8,string)","fee9aa44":"calculateRewardForAddress(address,address)","fee9ca13":"continueSale()","feea01b9":"create(bytes16,uint64,bytes)","feea799b":"rejectTransaction(uint256,bytes)","feec6fc1":"Tegchain(uint256,string,string)","feec756c":"updateRecipient(address)","feec7680":"changeFeesAddress(address)","feed5561":"getContributorsCount()","feed58ff":"setBackgroundColors(bytes3[])","feeda367":"addMarketTo()","feee8139":"setColors(uint32[],uint8[])","feefee1b":"firstExchangeRatePeriod()","fef038e8":"piggyBank(address)","fef10b95":"poolReward()","fef1dc7d":"seekerValue()","fef28cac":"Yudhacoin()","fef2cc97":"getPreAuthorizedAmount(address,address)","fef47e38":"CREATE_NAME_ROLE()","fef4b969":"refundFromSeveral(uint256,address[])","fef5ae43":"enterCurrentRound()","fef5b185":"updateUserEducation(string,uint256,string,uint16)","fef5f1e7":"validateRequestParams(address[4],address,uint256[12],uint256,bytes,uint256)","fef636a8":"stage2Start()","fef64e37":"packedToStartTime(uint256)","fef7d5a8":"findEmptyBenefactorIndex()","fef8383e":"gameOpponent()","fef88502":"hommie()","fef9b5ae":"changeminpublicsale(uint256)","fef9cfe1":"setAvailableAfterStart(uint256)","fefa69a0":"batchCancelOrders()","fefa7d1c":"isLockup(address)","fefa7e41":"countDrugs()","fefa9bb1":"addReferrer(address)","fefaa293":"reservedTokensTeam()","fefaa626":"gameFinishedTime()","fefacee1":"MediatorFees()","fefb130e":"srb(uint256)","fefb8dc3":"publishPost(string,string)","fefb94a5":"PFAToken()","fefba6dd":"transferAnyERC223Token(address,uint256)","fefc38fd":"startActivated()","fefc7089":"AVAILABLE_RESERVE_SUPPLY()","fefc8b41":"test_insert_findWithHintNotTightBound()","fefd336c":"getSettingValues()","fefd41b9":"balanceOfRick(address)","fefd51b2":"getBrick(uint256)","fefd6e9a":"allocateEqual(address[],uint256)","feff0506":"addListing(string,string,uint256,address)","feffd402":"fetchVoteMainInfo()","ff00c592":"setNumRewardsAvailableForAddress(uint256,address)","ff01f11a":"finalUnpaused()","ff01ff08":"setGameVars(uint256,uint256,uint256,uint256,uint256)","ff01ffa8":"refundCrowdsaleContributor()","ff02326f":"MoonDustDividends()","ff025819":"numberOfActiveProposals(bytes32)","ff026158":"setSale(uint256,address)","ff044add":"oldCratesSold()","ff056949":"decreaseBalance(address,uint256)","ff05a9f0":"giftPlot(uint256,uint256,address)","ff05edd8":"inflateSupply(uint256)","ff069b4c":"getPetbyTileId(uint16,uint8)","ff06bb57":"setEthInCents(uint256)","ff07061b":"LUC()","ff08d2b0":"PayMiners()","ff09068f":"SMRTCoin()","ff0935b1":"checkFeeSchedule(address)","ff0938a7":"isPause()","ff097659":"getServerInfo(uint256)","ff09ff99":"purchaseCity(uint256)","ff0a22db":"_shareProfit(uint256,uint256,address)","ff0b3fc5":"intervalLength()","ff0b9c90":"createCheckpoint()","ff0bfc91":"mayGenerateAddr()","ff0c5a4b":"ContributionReceived(bytes32,address,address,uint256,uint256)","ff0cd868":"ShareEstateToken()","ff0ec23e":"setEditionName(uint8,string)","ff0efd6c":"submitDistance(uint256[])","ff0f27de":"setIDChain(address,address)","ff0f2e80":"getNumOrdersByPayee()","ff0f2f71":"setTTCAddress(address)","ff102896":"tokenRedemption(address,string)","ff10dc66":"quickTrade(address,address,uint256)","ff11e1db":"collectEther()","ff12128a":"step(int256,bool)","ff125c8a":"transferAllowed(address,address,uint256)","ff13c6c6":"RefundLoaded(uint256)","ff1401cc":"OdinCoin(address)","ff163aca":"AcquinomToken(address)","ff176844":"ThanosXToken()","ff1780ec":"rescueToken(address[],uint256[])","ff178834":"testApproveWillModifyAllowance()","ff17bc98":"burnOwnerTokens()","ff184b5d":"EthPerToken()","ff18539b":"setDepositCreator(address)","ff186b2e":"ethPrice()","ff190061":"balanceOfActiveToken(address)","ff192bc8":"isFreeze(address)","ff197bc3":"presaleTokenSold()","ff1ad781":"deadbids(address)","ff1ad7fa":"claimRewardBy(address,uint256,string)","ff1b01a6":"bet1000(uint256)","ff1b4341":"easyPropose(address,uint256,uint256)","ff1b636d":"Admin()","ff1c52d8":"Queue(bytes32,bytes32,bool,bytes32,address)","ff1c559e":"ChampionGameFinished(uint256,address,uint256,uint256)","ff1ca005":"supportComponent(uint16,uint256)","ff1d20b5":"getSecondStageWallet()","ff1d2712":"versionIndex()","ff1d83ae":"getTokenGranteesLength()","ff1d91b4":"ccStartTime()","ff1d9dd4":"updatePoolContract(address)","ff1e28a4":"createStamp(address,uint256)","ff1f7046":"requiresAuction(string)","ff1fd974":"getPayAmount(address,address,uint256)","ff2073d7":"fundRaiser()","ff208fa5":"test_insert_findWithHintNextAtPosition(int256)","ff213498":"FlowingHair()","ff21984a":"testMintAuth(int256)","ff21f27f":"issueToken(uint256,uint256,uint256,uint256)","ff22028b":"requireOwnerUnlockedAmount(uint256)","ff2258cb":"diffYears(uint256,uint256)","ff2263b7":"firstRoundStartTimestamp()","ff2311a4":"GetPatient()","ff238839":"showDelegateMsgSender(address)","ff23c7f2":"createArtefact(uint256,string,uint256,uint256,uint256)","ff23e1eb":"ShalloToken()","ff249bb0":"getTokenPacksAvailable()","ff25af24":"migrateAccount(bytes32,bytes32,uint256,uint256,address)","ff25e16d":"getLogErrorArguments()","ff25f859":"KIN_FOUNDATION_ADDRESS()","ff262ea5":"construct(uint256)","ff266d26":"reopen(address)","ff272ad4":"__toDecimals(uint256)","ff27848a":"GoldToken(address)","ff27c476":"shiftBitsRight(bytes,uint256)","ff27cbda":"getPI_edit_4()","ff28bcc2":"increaseReward()","ff28cdaf":"WCT(address)","ff28d625":"releaseEarning(bytes32,bytes32,bytes32,bool,address,address)","ff29507d":"fundingStopBlock()","ff299a63":"BTCUToken(uint256,string,uint8,string)","ff29bc95":"assignBalance(address,uint256,uint256)","ff29c104":"getTotalLeaderboards()","ff2a3776":"claimAllUnsold()","ff2b0571":"doFreeExtension(bytes32)","ff2b247f":"addNewTicket(uint256,bytes32,uint256,uint256,uint256)","ff2b350d":"acceptGiftTokens(address)","ff2d4b71":"addDoctor(uint32,string,string,string,uint8,uint8,uint8,uint8,uint8,uint16,uint32,uint32)","ff2eff94":"Cow()","ff2f7a35":"getDeed(bytes32)","ff30feef":"walletTranslate()","ff31e930":"prizePoolAddress()","ff31f9e6":"getSecurityDepositRegistry()","ff332ab7":"getTokenDetails()","ff34ef7d":"PrimaToken()","ff359cb8":"RATE_SALESTAGE2()","ff36cf59":"contributeETH(address)","ff377705":"getNumEntries(address,address,uint256)","ff37839b":"getTxt(uint256)","ff37d31d":"escrowDeed(uint64)","ff394153":"transferEthersToDividendManager(uint256)","ff39ae55":"EthereumExtreme()","ff3a5eea":"isIco()","ff3a91d9":"getOwnerPicture(bytes32)","ff3adc83":"GazeCoinCrowdsale()","ff3af97f":"setBonusToken(address,uint256,uint256,uint256,address,uint256,uint256,uint256)","ff3bf1f4":"sitePercent_()","ff3c1a8f":"getTitle()","ff3c9472":"adduser(string,string,address)","ff3d1be0":"stopPreIco_step1()","ff3d398c":"buyTokensByAtes(address,uint256,string)","ff3e51c8":"ZULICC()","ff3e8ba1":"_transferDirect(uint256,uint256,uint256,bytes32)","ff3ef460":"_userOwnsToken(address,uint256)","ff3f427c":"createMobsterWithOwner(string,address,uint256,uint256,uint256,string)","ff3fb765":"testUpdateCase()","ff40807b":"getAccumulator()","ff40fcf6":"buyBBC(address)","ff41f5cc":"HUT34_RETAIN()","ff423357":"withdrawAmount(uint256,address)","ff429fc8":"getCooldown(uint16)","ff42fd41":"getTotalLockedAmounts(address)","ff4329ee":"receiveCashback(address)","ff4408ee":"stopCrowding()","ff46f210":"isUnfrozenAccount(address)","ff470507":"VaultbankVotingToken()","ff48fd9c":"mintGreen(address,uint256)","ff49b26e":"createEvent(uint256,uint256,uint8,uint32,address,uint256,uint8)","ff49b8ef":"KyberWhiteList(address)","ff4a6638":"followTrader(bytes,address,bytes32,uint256,address,uint256)","ff4a7a7c":"Blin()","ff4ab29c":"setMarketFees(uint256)","ff4b6fea":"_shiftLeft(bytes32,uint256)","ff4bd173":"dealBuyContract(uint256,uint256,string,uint256,uint256,string)","ff4bf170":"TechieCoin()","ff4c9fa5":"getCurrentPriceForToken(uint256)","ff4cfa5e":"onSignUp(string,uint256)","ff4d7404":"sell(uint8,string,uint256,uint256,uint32)","ff4dddc4":"tokensInWeiSold()","ff4ea29e":"migrateTokens(address[])","ff4f03a9":"developeo()","ff507efa":"Consulteth(uint256,uint256)","ff508d76":"renderWeb()","ff50abdc":"totalDeposited()","ff50fcb6":"usedIcoSupply()","ff510ad8":"isOnTrade(uint256)","ff51d18c":"getFlightConnections(uint16)","ff523cb2":"oraclizeQueryGas(uint256)","ff53c5a3":"refundInvestor(address)","ff552482":"GennovaToken()","ff556ecb":"releaseUnicorn(uint256)","ff55da1c":"assertOnlySpecifiedCaller(address,bytes32)","ff55e2ee":"setCasinoAddress(address)","ff5639c4":"optInFromClassic()","ff56b59a":"start6Phase2025()","ff56b65a":"getTxPaymentKWh(bytes32)","ff5732a5":"calculateTokenGet(uint256,uint256,uint256,bool,bytes32)","ff574213":"YeekFormula()","ff584597":"setGameResult(bytes32,int256,int256)","ff585caf":"callback(uint256)","ff592125":"issuedNum()","ff596069":"computeAddressBonus(uint16)","ff597790":"getSold(uint256)","ff598a06":"betTotalGasprice_()","ff59f3cc":"theCyberGatekeeper()","ff5a478b":"finalizeTge()","ff5b98b8":"setAvgReportingGasPrice(uint256)","ff5bc8a7":"getSaleContractTokensLimit(address)","ff5ce378":"_addTokenTo(address,uint256)","ff5d2c39":"to62Encoding(uint256,uint256)","ff5de44b":"getStockBalance(address,address,uint256)","ff5e51b3":"VTOSToken(uint256,string,string)","ff5e7d4d":"lockedFundsSeconds()","ff5f1346":"forSell()","ff5f8b4b":"takeOwnership(uint256,address)","ff5fcf01":"initializeNewSale(uint256,uint256,address,address)","ff5feb3e":"getVoterVotesCount(address)","ff5ff81f":"LastWillContractOraclize(address,address[],uint8[],uint256)","ff600081":"getValuePerMicroKey()","ff60af84":"setNewMinDeposite(uint256)","ff60cdf6":"get1TokenSellPrice()","ff615b87":"SECOND_PHASE_PRICE_FACTOR()","ff61ad09":"getRoomBalance(uint256)","ff62d2cf":"rewardAdjustmentPeriod()","ff630748":"setStepLimits(uint256,uint256)","ff6307f8":"angelFoundationShareDenominator()","ff6387ad":"setconfigurationTokenPrice(uint256)","ff6395a4":"assigned_bids()","ff63ac3b":"_getTime()","ff6417c1":"paidAddress(uint256)","ff6477be":"getScam(uint256)","ff64d469":"weR()","ff65226c":"canBuy()","ff655320":"withdrawFirst()","ff65e44a":"purchaseBronze()","ff668cbe":"donacionTeleton()","ff66a305":"setBountyManager(address)","ff67577a":"Appoint_Mediator(uint256)","ff67c9f5":"getRequirementTime(address)","ff6867c0":"startAndSetStopTime(uint256)","ff69ac36":"currentTokenAmount()","ff69e2bc":"CurrentPrice()","ff69f35e":"CryptoEmojis()","ff6a6df7":"MultiValidator()","ff6c33e6":"TOKEN_OWNER()","ff6c8b87":"MPGame(uint8)","ff6d24b1":"SedPOWToken()","ff6d6f63":"BCTToken(uint256,string,string)","ff6f0d54":"TipSmart()","ff6f2914":"foundersRewardsAccount()","ff7070eb":"_processIncomingEther(address,uint256)","ff70bd9c":"PirateNinjaCoin(string,uint8,string,uint256,uint256)","ff70c4d1":"getBuyerAddress(uint16,uint16)","ff70e8d9":"STAKE_MULTIPLIER()","ff70fa49":"setDeveloper(address)","ff71c6b0":"WALLET_T8EX_COMMUNITY()","ff722b08":"getSkillTypeCnt()","ff72c845":"bat()","ff739e40":"minEnterFee()","ff73d2d8":"getIsRevenuePaid(address,uint256)","ff74927b":"strConcat(string,string)","ff74c0b8":"subTotalInvoiced(address,uint256,uint256)","ff74e915":"NewContent(string)","ff75567b":"participant2SentEtherCount()","ff757d59":"kittenContract()","ff776f55":"regist(address)","ff77898a":"numberOfContractors()","ff7835bf":"SmartCoinCash()","ff78461c":"initSilver()","ff786f2d":"LogTradeError(address,address,uint256,uint256,uint16)","ff7885e8":"withdraw(address,address,address)","ff78d5ed":"mdtComparable()","ff78e48b":"setIsParentOf(bool)","ff79d600":"BATAGOR()","ff7b5730":"getSCF()","ff7c9329":"setMintingCompleted()","ff7c977f":"admin_dividend(int256,int256)","ff7e17b6":"endTimeTLP1()","ff7e5abd":"vestingIsCompleted(address,uint256)","ff7f5f2a":"EtherizationUtils2()","ff8028b3":"megaCandyToken()","ff80b69a":"minPresaleAmount()","ff81c554":"coinMinted()","ff81fb91":"unhint(int256,bytes32)","ff82b174":"getUserBigPromoBonus(address,address)","ff83ce17":"ManagerSet(address,bool)","ff83f562":"acceptOwnership(string)","ff840553":"roundid()","ff8489df":"tokensForFinalize()","ff848eaf":"newDeal(uint256,uint256,uint256,uint256)","ff84990c":"MRDSCoinToken()","ff84d49f":"setMiniPoolEdit_3(string)","ff84ed36":"Identity(address,address)","ff855ac3":"withdrawTokens1(uint256)","ff85bd39":"Free()","ff85fba2":"forceStart()","ff862839":"modifyairdrop(uint256)","ff8872c2":"accountEthAmount(address)","ff895a62":"deActivate()","ff897dbd":"updateMinAmount(uint256)","ff89a720":"ECCToken(uint256,string,string)","ff8bfffc":"sendEthTweet(uint256,bool,string,bool,string,string,string)","ff8cffc1":"returnBorrowerPaidLate(uint256)","ff8ed0f7":"Map(address,uint256)","ff8ee507":"EthernalLoveParent()","ff8f7551":"FINCO()","ff8f9b9f":"LOL10()","ff8f9de7":"BuyRTCtokens()","ff8fa0dd":"transferFromWithData(address,address,uint256,bytes32)","ff8fec7f":"setHashByProvider(bytes32,bytes32)","ff9151dd":"retrait_4()","ff91b949":"nonPublicSupply()","ff91bb45":"castVote(address,uint256)","ff92eb2c":"selleth(uint256)","ff938f4a":"addClientAuthority(address)","ff93a512":"createEvent(uint256,uint256,uint256,uint256,uint256,uint256,address[])","ff947525":"isShutDown()","ff94e502":"getIdByIndex(uint256)","ff950e90":"batchSpawnAsset(address[],uint256[],uint256[],uint256)","ff95a8d2":"grantFounderTeamToken()","ff96b467":"setLockup_contributors(address,uint256,uint256)","ff97278f":"_timeLimit(uint256)","ff981099":"getVotes(uint256)","ff9852bf":"balanceOwed(address)","ff989a0d":"safeDecrement(uint256,uint256)","ff9913e8":"allow(address)","ff992ef5":"addInvestorList(address,uint256)","ff993272":"bonus10end()","ff993a18":"ChangeBuyRate(uint256)","ff9a6773":"DexToken(address,address,address,uint256,uint256,uint256)","ff9b3acf":"house()","ff9c1c5c":"preICODataInitialized()","ff9c8437":"releaseStake(uint256,address,address,uint256)","ff9e1b38":"addUndergraduate(uint32,string,string,string,uint8,uint8,uint8,uint8,uint8,uint16,uint32,uint32)","ff9e3948":"phase_3_remaining_tokens()","ff9e7fe1":"MaxPowerCoin()","ff9f0e5c":"updateToken()","ff9f3055":"generateDna(uint256[])","ff9f633f":"lockedAddresses(address,uint256)","ffa05698":"get_back()","ffa08cb7":"checkPendingWithdrawal()","ffa094fb":"highestBidIsCC()","ffa1ad74":"VERSION()","ffa230b0":"totalCharitySent()","ffa2548a":"LifeSet_008()","ffa2f5c2":"coindropsStatus()","ffa309e4":"currentFiscalYear()","ffa32d1c":"DST_ADVISERS()","ffa34f7c":"isFreezing(address)","ffa39d27":"ElectricCoin()","ffa39d3f":"_isAuthorized(address,bytes4)","ffa40a4c":"pregnantPandas()","ffa49c6a":"expiryEpoch()","ffa61f69":"AllowSuccess(address,address)","ffa640d8":"tradeContract()","ffa651b6":"setEngineerInterface(address)","ffa67f6c":"crowdsaleUnpause()","ffa68839":"initDate()","ffa696d3":"exits(bytes32)","ffa6ae80":"isIdRegistered(bytes16)","ffa72707":"startBuying(uint256)","ffa82f78":"advisorsTokenAmount()","ffa89a00":"permissionToChange(address,address,uint256)","ffa8acde":"StrongHold()","ffa8c44a":"MINSALESCAP()","ffa90f7f":"redeemFrom(address,uint256,bytes,bytes)","ffa97aca":"getInvoice(address,bytes32)","ffaa3608":"voteFor()","ffaa67d4":"deployVesting(address,string,uint256,bool,bool,bool,address)","ffaa9c22":"setAllSupply(uint256)","ffaad6a5":"depositTo(address,uint256)","ffab0959":"backersRedeemed()","ffab3269":"EthRefunded(address,uint256)","ffab7dcd":"setPlayerGeneralDt(uint64,uint32)","ffab984d":"preIcoBuyPrice()","ffacade4":"setFilter(uint256,address)","fface4a3":"rowQuiter()","ffacf300":"doCrowdsaleMinting(address,uint256,int256)","ffad4fc1":"batchLock(address[],uint256)","ffad75eb":"finishICO(bool)","ffae15ba":"e()","ffae2c5b":"getAuthority(uint256)","ffae399e":"shouldRevert(bool)","ffaef25e":"addDataResponse(address,address,string)","ffaf78c2":"_createPiranha(string,address,uint256,uint8,uint256,uint8)","ffaf862f":"getProductWeiRaised(address)","ffb00df1":"TOKENS_LOCKED_2Y_TOTAL()","ffb05c6f":"minRequiredBlockQueueTime()","ffb0885d":"forceTransfer(address,uint256)","ffb171fb":"verifyBalanceProof(address,uint256,bytes)","ffb1a06d":"priceIsStale()","ffb1a6cb":"getWins(address)","ffb24446":"setMaxTicket(uint256)","ffb2c479":"process(uint256)","ffb2d35d":"allowRefund()","ffb308ef":"writeDocument(uint128,uint16,uint256,bytes32[],string,string,string)","ffb31c62":"BetterAuction()","ffb3401d":"SimpleAuction(uint256,address)","ffb38e84":"_setMinter(address,bool)","ffb391fe":"HM(uint256)","ffb40152":"contract_verified()","ffb4c857":"_confirmAndCheck(bytes32)","ffb4e44d":"get_participant(address,address)","ffb54a99":"tradingOpen()","ffb58247":"Ektcoin(uint256,uint256)","ffb5fc2a":"changeDeDeNetwork(address)","ffb747f0":"updateBatches(address,address,uint256)","ffb7bfba":"watchProposal(uint256)","ffb87173":"pixelPrice()","ffb92678":"commFoundAddr()","ffba376c":"unfreezeTokens()","ffbac044":"KickCommitteeFromMapAndArrayEvent(address)","ffbafdfe":"updateState(uint256,uint8)","ffbb62a3":"withdrawCoins()","ffbd26ce":"addReinforcedWhitelist(address[])","ffbd400b":"boolToUInt(bool)","ffbd4dd5":"checkCertificate(string)","ffbd6f72":"splice(uint8[],uint256,uint256)","ffbd73d0":"OSUniEDUSupply()","ffbd8c37":"buyBNNTokens()","ffbfd19e":"accUserReward()","ffbfd38b":"FooStdToken()","ffc0060e":"QingFengCabve(uint256,string,uint8,string)","ffc0483d":"CoreAddress()","ffc0d035":"hgtDecimals()","ffc1b038":"blacklistInvestor(address)","ffc31215":"getStore(string)","ffc3a769":"transfer(address[],uint256[])","ffc3f1f2":"HyperToken()","ffc42904":"MarketContract()","ffc48c61":"buyerAddressTransfer(string,address,address)","ffc4bbb3":"FirstLevelCost()","ffc52a1f":"registerByList(address[],uint256[])","ffc54ea4":"setTokenActive(uint256,bool)","ffc6ff1e":"closeSubmission()","ffc797e4":"setLowerBondPrice(uint256,uint256)","ffc85dc5":"finalizeDeposits()","ffc8bcd7":"getRefToById(address,address,uint256)","ffc8c4cb":"totalConsume()","ffc9152e":"isRefunded(address)","ffc92376":"subEmployerTotalInvoiced(address,address,uint256)","ffc9896b":"getUserData(address)","ffca2968":"ExternalSaleSha3(uint8,bytes32,address,uint256,uint256)","ffcab3e9":"getValidDurationSignatures()","ffcad44e":"getGroupFileCount(string)","ffcb1edb":"getDividendTokenSupply()","ffcb39c2":"tier0(address)","ffcbb5df":"printStats()","ffcc7bbf":"getUserAtIndex(uint256)","ffcc8484":"nextroundERCtradeactive()","ffcce369":"changeIPFSHash(string)","ffcd64e5":"_issueByTranche(bytes32,address,address,uint256,bytes,bytes)","ffcdcb51":"AhooleeTokenPreSale(uint256,uint256,address,address,uint256,uint256,uint256,uint256,uint256)","ffcecf09":"PRE_SALE_START_3()","ffcf1ade":"logPromiseCanceled(uint256)","ffcf21a9":"eventOracles(bytes,uint256)","ffd10e07":"enterPool(address)","ffd19e8c":"isAlreadyProcessed(uint256)","ffd40b56":"allocatorBalance(address)","ffd4185c":"QuantumXICO()","ffd45f16":"calculateTokenCount(uint256,uint256)","ffd479bb":"setBaseInfo(uint256,bool,bool)","ffd48b73":"buyInternal(address,uint256,uint256)","ffd48f40":"setDelegadoDeDistritoVerify(bytes32)","ffd4e0e2":"getTotalIcoTokens()","ffd4e799":"HTJToken()","ffd4f4b2":"withdrawTokensFromContract(uint256)","ffd571ca":"ethersContributed()","ffd68462":"readCheckList(address,uint256,uint256)","ffd6a052":"ChangeAdminWalletAddress(uint256,address)","ffd71e13":"loadCoreAddress(address)","ffd740df":"removeNode(uint256)","ffd7b5e6":"investWithCustomerId(address,string)","ffd85b68":"setControllerDelegate(address)","ffd864d3":"chief()","ffd9ca40":"register(bytes20,uint64,bytes)","ffdaa1b8":"TokenWithdraw(address,uint256,address,uint256)","ffdab909":"removeEntry(uint256)","ffdb0eb3":"getXRateProviderLength()","ffdcf095":"transferWithNarrative(address,uint256,string)","ffdd108b":"addEvent(uint256,string)","ffdd5cf1":"getInfo(address)","ffde0c74":"getGameState(uint256)","ffde8eae":"dismissBunner(address)","ffe0a9f2":"contractSymbolUpdate(string,bool)","ffe0fa66":"CarRegistry()","ffe189ef":"prev(uint80)","ffe280ee":"setWeight(uint256,uint256,bytes)","ffe2d77e":"directorLock()","ffe302d1":"setPlz(string)","ffe34512":"getNumChannels(address)","ffe3acc7":"changeGeneralSaleStartDate(uint256)","ffe3c6fd":"zKill()","ffe45b14":"getHTLCInvalidationTimeoutExtension(uint256,int256,bytes32,bytes32)","ffe48c76":"getBCDTRateForCurrentRound()","ffe4914a":"hdivide(uint256,uint256)","ffe496f2":"setMarginSpend(uint256)","ffe4fe4c":"roundFor(uint256)","ffe55303":"unfreezeCreditScore(uint256,string)","ffe575b1":"Daxther()","ffe57c16":"byuoutActive()","ffe619df":"buyPixelToken(uint24,uint256,uint24)","ffe648d4":"releaseAllOnceLock(address)","ffe6bbd8":"myEarnings()","ffe8ee35":"SetDivTime(uint256)","ffe90ba6":"offsetIndex()","ffe94af0":"burnPass(bytes32,address)","ffe99ca7":"getCitiesStrings(uint256[])","ffea632b":"initialize(address,address,uint8,address)","ffeb7d75":"setUpgradeMaster(address)","ffec34e3":"TokenMintPoD(int256)","ffecf516":"addBot(address)","ffed6ed7":"buyAd(uint8,uint8)","ffeddd49":"addPolicy(bytes32,uint32,uint32,uint256,string)","ffee7c97":"getBookLength()","ffeea273":"withdrawWallet2()","ffeeac82":"info_Name()","ffeecfaa":"Log1(address,bytes32,uint256,string,string,uint256,bytes1)","ffef2b00":"SortCompetitionScores(uint32)","ffef8f88":"Share(uint256)","ffef9b3c":"_checkMaxRoundSupply(uint256)","fff04a87":"test_invalidBalanceNotZero()","fff07241":"playerExist(address)","fff10aba":"getEventsHistory()","fff28137":"reclaimToken()","fff311b1":"ownerSetjackpotContract(address)","fff35670":"icoLaunchTimestamp()","fff3a01b":"transfer(address,string,uint256)","fff3ad33":"getAddTokenDataTracking()","fff3c457":"readMessages(uint256)","fff43b4e":"_setBurnPool(uint256)","fff57ba3":"withdrawSettle(bytes32,bytes32,bytes32)","fff57fe1":"claimableOCDividend(address,address)","fff6a540":"LongBCoin(uint256,string,uint8,string)","fff6fb54":"TTOH()","fff78f9c":"doThrow()","fff7a97e":"addWallet(address,address)","fff83edf":"founderAmounts(uint256)","fff85d49":"addChunk1ToWhiteList()","fff8d42b":"phase2StartingAt()","fff93ec3":"setLandingPage(string)","fff95ce3":"getIsPoop()","fff9627d":"PRESALE_VAULT_START()","fff9d5b9":"confirmProofOfWork(uint256)","fffa932b":"withdrowTo(address)","fffa9d0c":"setGood(bytes32,uint256,uint256)","fffb5183":"initialize(uint256,address,uint256)","fffcde7c":"EOSINT()","fffce84f":"bountyFreeze(address,bool)","fffd52c6":"reading()","fffda870":"lastHorseSex()","fffdbe2c":"frozenTokensSupply()","fffe088d":"saleAddress()","fffeb1ca":"externalCheckSignBool(bytes32,bytes,address)","ffff6b04":"vestingSchedule(address)","ffffce47":"exchangeRateOracle()"} \ No newline at end of file diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi.go deleted file mode 100644 index eb531535..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package fourbyte - -import ( - "bytes" - "encoding/json" - "fmt" - "regexp" - "strings" - - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" -) - -// decodedCallData is an internal type to represent a method call parsed according -// to an ABI method signature. -type decodedCallData struct { - signature string - name string - inputs []decodedArgument -} - -// decodedArgument is an internal type to represent an argument parsed according -// to an ABI method signature. -type decodedArgument struct { - soltype abi.Argument - value interface{} -} - -// String implements stringer interface, tries to use the underlying value-type -func (arg decodedArgument) String() string { - var value string - switch val := arg.value.(type) { - case fmt.Stringer: - value = val.String() - default: - value = fmt.Sprintf("%v", val) - } - return fmt.Sprintf("%v: %v", arg.soltype.Type.String(), value) -} - -// String implements stringer interface for decodedCallData -func (cd decodedCallData) String() string { - args := make([]string, len(cd.inputs)) - for i, arg := range cd.inputs { - args[i] = arg.String() - } - return fmt.Sprintf("%s(%s)", cd.name, strings.Join(args, ",")) -} - -// verifySelector checks whether the ABI encoded data blob matches the requested -// function signature. -func verifySelector(selector string, calldata []byte) (*decodedCallData, error) { - // Parse the selector into an ABI JSON spec - abidata, err := parseSelector(selector) - if err != nil { - return nil, err - } - // Parse the call data according to the requested selector - return parseCallData(calldata, string(abidata)) -} - -// selectorRegexp is used to validate that a 4byte database selector corresponds -// to a valid ABI function declaration. -// -// Note, although uppercase letters are not part of the ABI spec, this regexp -// still accepts it as the general format is valid. It will be rejected later -// by the type checker. -var selectorRegexp = regexp.MustCompile(`^([^\)]+)\(([A-Za-z0-9,\[\]]*)\)`) - -// parseSelector converts a method selector into an ABI JSON spec. The returned -// data is a valid JSON string which can be consumed by the standard abi package. -func parseSelector(selector string) ([]byte, error) { - // Define a tiny fake ABI struct for JSON marshalling - type fakeArg struct { - Type string `json:"type"` - } - type fakeABI struct { - Name string `json:"name"` - Type string `json:"type"` - Inputs []fakeArg `json:"inputs"` - } - // Validate the selector and extract it's components - groups := selectorRegexp.FindStringSubmatch(selector) - if len(groups) != 3 { - return nil, fmt.Errorf("invalid selector %s (%v matches)", selector, len(groups)) - } - name := groups[1] - args := groups[2] - - // Reassemble the fake ABI and constuct the JSON - arguments := make([]fakeArg, 0) - if len(args) > 0 { - for _, arg := range strings.Split(args, ",") { - arguments = append(arguments, fakeArg{arg}) - } - } - return json.Marshal([]fakeABI{{name, "function", arguments}}) -} - -// parseCallData matches the provided call data against the ABI definition and -// returns a struct containing the actual go-typed values. -func parseCallData(calldata []byte, abidata string) (*decodedCallData, error) { - // Validate the call data that it has the 4byte prefix and the rest divisible by 32 bytes - if len(calldata) < 4 { - return nil, fmt.Errorf("invalid call data, incomplete method signature (%d bytes < 4)", len(calldata)) - } - sigdata := calldata[:4] - - argdata := calldata[4:] - if len(argdata)%32 != 0 { - return nil, fmt.Errorf("invalid call data; length should be a multiple of 32 bytes (was %d)", len(argdata)) - } - // Validate the called method and upack the call data accordingly - abispec, err := abi.JSON(strings.NewReader(abidata)) - if err != nil { - return nil, fmt.Errorf("invalid method signature (%s): %v", abidata, err) - } - method, err := abispec.MethodById(sigdata) - if err != nil { - return nil, err - } - values, err := method.Inputs.UnpackValues(argdata) - if err != nil { - return nil, err - } - // Everything valid, assemble the call infos for the signer - decoded := decodedCallData{signature: method.Sig(), name: method.Name} - for i := 0; i < len(method.Inputs); i++ { - decoded.inputs = append(decoded.inputs, decodedArgument{ - soltype: method.Inputs[i], - value: values[i], - }) - } - // We're finished decoding the data. At this point, we encode the decoded data - // to see if it matches with the original data. If we didn't do that, it would - // be possible to stuff extra data into the arguments, which is not detected - // by merely decoding the data. - encoded, err := method.Inputs.PackValues(values) - if err != nil { - return nil, err - } - if !bytes.Equal(encoded, argdata) { - was := common.Bytes2Hex(encoded) - exp := common.Bytes2Hex(argdata) - return nil, fmt.Errorf("WARNING: Supplied data is stuffed with extra data. \nWant %s\nHave %s\nfor method %v", exp, was, method.Sig()) - } - return &decoded, nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi_test.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi_test.go deleted file mode 100644 index 4bd8a776..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/abi_test.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package fourbyte - -import ( - "math/big" - "reflect" - "strings" - "testing" - - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" -) - -func verify(t *testing.T, jsondata, calldata string, exp []interface{}) { - abispec, err := abi.JSON(strings.NewReader(jsondata)) - if err != nil { - t.Fatal(err) - } - cd := common.Hex2Bytes(calldata) - sigdata, argdata := cd[:4], cd[4:] - method, err := abispec.MethodById(sigdata) - if err != nil { - t.Fatal(err) - } - data, err := method.Inputs.UnpackValues(argdata) - if err != nil { - t.Fatal(err) - } - if len(data) != len(exp) { - t.Fatalf("Mismatched length, expected %d, got %d", len(exp), len(data)) - } - for i, elem := range data { - if !reflect.DeepEqual(elem, exp[i]) { - t.Fatalf("Unpack error, arg %d, got %v, want %v", i, elem, exp[i]) - } - } -} - -func TestNewUnpacker(t *testing.T) { - type unpackTest struct { - jsondata string - calldata string - exp []interface{} - } - testcases := []unpackTest{ - { // https://solidity.readthedocs.io/en/develop/abi-spec.html#use-of-dynamic-types - `[{"type":"function","name":"f", "inputs":[{"type":"uint256"},{"type":"uint32[]"},{"type":"bytes10"},{"type":"bytes"}]}]`, - // 0x123, [0x456, 0x789], "1234567890", "Hello, world!" - "8be65246" + "00000000000000000000000000000000000000000000000000000000000001230000000000000000000000000000000000000000000000000000000000000080313233343536373839300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000004560000000000000000000000000000000000000000000000000000000000000789000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20776f726c642100000000000000000000000000000000000000", - []interface{}{ - big.NewInt(0x123), - []uint32{0x456, 0x789}, - [10]byte{49, 50, 51, 52, 53, 54, 55, 56, 57, 48}, - common.Hex2Bytes("48656c6c6f2c20776f726c6421"), - }, - }, { // https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI#examples - `[{"type":"function","name":"sam","inputs":[{"type":"bytes"},{"type":"bool"},{"type":"uint256[]"}]}]`, - // "dave", true and [1,2,3] - "a5643bf20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000464617665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003", - []interface{}{ - []byte{0x64, 0x61, 0x76, 0x65}, - true, - []*big.Int{big.NewInt(1), big.NewInt(2), big.NewInt(3)}, - }, - }, { - `[{"type":"function","name":"send","inputs":[{"type":"uint256"}]}]`, - "a52c101e0000000000000000000000000000000000000000000000000000000000000012", - []interface{}{big.NewInt(0x12)}, - }, { - `[{"type":"function","name":"compareAndApprove","inputs":[{"type":"address"},{"type":"uint256"},{"type":"uint256"}]}]`, - "751e107900000000000000000000000000000133700000deadbeef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", - []interface{}{ - common.HexToAddress("0x00000133700000deadbeef000000000000000000"), - new(big.Int).SetBytes([]byte{0x00}), - big.NewInt(0x1), - }, - }, - } - for _, c := range testcases { - verify(t, c.jsondata, c.calldata, c.exp) - } -} - -func TestCalldataDecoding(t *testing.T) { - // send(uint256) : a52c101e - // compareAndApprove(address,uint256,uint256) : 751e1079 - // issue(address[],uint256) : 42958b54 - jsondata := ` -[ - {"type":"function","name":"send","inputs":[{"name":"a","type":"uint256"}]}, - {"type":"function","name":"compareAndApprove","inputs":[{"name":"a","type":"address"},{"name":"a","type":"uint256"},{"name":"a","type":"uint256"}]}, - {"type":"function","name":"issue","inputs":[{"name":"a","type":"address[]"},{"name":"a","type":"uint256"}]}, - {"type":"function","name":"sam","inputs":[{"name":"a","type":"bytes"},{"name":"a","type":"bool"},{"name":"a","type":"uint256[]"}]} -]` - // Expected failures - for i, hexdata := range []string{ - "a52c101e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000042", - "a52c101e000000000000000000000000000000000000000000000000000000000000001200", - "a52c101e00000000000000000000000000000000000000000000000000000000000000", - "a52c101e", - "a52c10", - "", - // Too short - "751e10790000000000000000000000000000000000000000000000000000000000000012", - "751e1079FFffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - // Not valid multiple of 32 - "deadbeef00000000000000000000000000000000000000000000000000000000000000", - // Too short 'issue' - "42958b5400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000042", - // Too short compareAndApprove - "a52c101e00ff0000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000042", - // From https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI - // contains a bool with illegal values - "a5643bf20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000464617665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003", - } { - _, err := parseCallData(common.Hex2Bytes(hexdata), jsondata) - if err == nil { - t.Errorf("test %d: expected decoding to fail: %s", i, hexdata) - } - } - // Expected success - for i, hexdata := range []string{ - // From https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI - "a5643bf20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000464617665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003", - "a52c101e0000000000000000000000000000000000000000000000000000000000000012", - "a52c101eFFffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "751e1079000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "42958b54" + - // start of dynamic type - "0000000000000000000000000000000000000000000000000000000000000040" + - // uint256 - "0000000000000000000000000000000000000000000000000000000000000001" + - // length of array - "0000000000000000000000000000000000000000000000000000000000000002" + - // array values - "000000000000000000000000000000000000000000000000000000000000dead" + - "000000000000000000000000000000000000000000000000000000000000beef", - } { - _, err := parseCallData(common.Hex2Bytes(hexdata), jsondata) - if err != nil { - t.Errorf("test %d: unexpected failure on input %s:\n %v (%d bytes) ", i, hexdata, err, len(common.Hex2Bytes(hexdata))) - } - } -} - -func TestMaliciousABIStrings(t *testing.T) { - tests := []string{ - "func(uint256,uint256,[]uint256)", - "func(uint256,uint256,uint256,)", - "func(,uint256,uint256,uint256)", - } - data := common.Hex2Bytes("4401a6e40000000000000000000000000000000000000000000000000000000000000012") - for i, tt := range tests { - _, err := verifySelector(tt, data) - if err == nil { - t.Errorf("test %d: expected error for selector '%v'", i, tt) - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte.go deleted file mode 100644 index d1642212..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2019 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -//go:generate go-bindata -nometadata -o 4byte.go -pkg fourbyte 4byte.json -//go:generate gofmt -s -w 4byte.go - -// Package fourbyte contains the 4byte database. -package fourbyte - -import ( - "encoding/hex" - "encoding/json" - "fmt" - "io/ioutil" - "os" -) - -// Database is a 4byte database with the possibility of maintaining an immutable -// set (embedded) into the process and a mutable set (loaded and written to file). -type Database struct { - embedded map[string]string - custom map[string]string - customPath string -} - -// newEmpty exists for testing purposes. -func newEmpty() *Database { - return &Database{ - embedded: make(map[string]string), - custom: make(map[string]string), - } -} - -// New loads the standard signature database embedded in the package. -func New() (*Database, error) { - return NewWithFile("") -} - -// NewFromFile loads signature database from file, and errors if the file is not -// valid JSON. The constructor does no other validation of contents. This method -// does not load the embedded 4byte database. -// -// The provided path will be used to write new values into if they are submitted -// via the API. -func NewFromFile(path string) (*Database, error) { - raw, err := os.Open(path) - if err != nil { - return nil, err - } - defer raw.Close() - - db := newEmpty() - if err := json.NewDecoder(raw).Decode(&db.embedded); err != nil { - return nil, err - } - return db, nil -} - -// NewWithFile loads both the standard signature database (embedded resource -// file) as well as a custom database. The latter will be used to write new -// values into if they are submitted via the API. -func NewWithFile(path string) (*Database, error) { - db := &Database{make(map[string]string), make(map[string]string), path} - db.customPath = path - - blob, err := Asset("4byte.json") - if err != nil { - return nil, err - } - if err := json.Unmarshal(blob, &db.embedded); err != nil { - return nil, err - } - // Custom file may not exist. Will be created during save, if needed. - if _, err := os.Stat(path); err == nil { - if blob, err = ioutil.ReadFile(path); err != nil { - return nil, err - } - if err := json.Unmarshal(blob, &db.custom); err != nil { - return nil, err - } - } - return db, nil -} - -// Size returns the number of 4byte entries in the embedded and custom datasets. -func (db *Database) Size() (int, int) { - return len(db.embedded), len(db.custom) -} - -// Selector checks the given 4byte ID against the known ABI methods. -// -// This method does not validate the match, it's assumed the caller will do. -func (db *Database) Selector(id []byte) (string, error) { - if len(id) < 4 { - return "", fmt.Errorf("expected 4-byte id, got %d", len(id)) - } - sig := hex.EncodeToString(id[:4]) - if selector, exists := db.embedded[sig]; exists { - return selector, nil - } - if selector, exists := db.custom[sig]; exists { - return selector, nil - } - return "", fmt.Errorf("signature %v not found", sig) -} - -// AddSelector inserts a new 4byte entry into the database. If custom database -// saving is enabled, the new dataset is also persisted to disk. -// -// Node, this method does _not_ validate the correctness of the data. It assumes -// the caller has already done so. -func (db *Database) AddSelector(selector string, data []byte) error { - // If the selector is already known, skip duplicating it - if len(data) < 4 { - return nil - } - if _, err := db.Selector(data[:4]); err == nil { - return nil - } - // Inject the custom selector into the database and persist if needed - db.custom[hex.EncodeToString(data[:4])] = selector - if db.customPath == "" { - return nil - } - blob, err := json.Marshal(db.custom) - if err != nil { - return err - } - return ioutil.WriteFile(db.customPath, blob, 0600) -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte_test.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte_test.go deleted file mode 100644 index 3ce042e7..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/fourbyte_test.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package fourbyte - -import ( - "fmt" - "io/ioutil" - "strings" - "testing" - - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" -) - -// Tests that all the selectors contained in the 4byte database are valid. -func TestEmbeddedDatabase(t *testing.T) { - db, err := New() - if err != nil { - t.Fatal(err) - } - for id, selector := range db.embedded { - abistring, err := parseSelector(selector) - if err != nil { - t.Errorf("Failed to convert selector to ABI: %v", err) - continue - } - abistruct, err := abi.JSON(strings.NewReader(string(abistring))) - if err != nil { - t.Errorf("Failed to parse ABI: %v", err) - continue - } - m, err := abistruct.MethodById(common.Hex2Bytes(id)) - if err != nil { - t.Errorf("Failed to get method by id (%s): %v", id, err) - continue - } - if m.Sig() != selector { - t.Errorf("Selector mismatch: have %v, want %v", m.Sig(), selector) - } - } -} - -// Tests that custom 4byte datasets can be handled too. -func TestCustomDatabase(t *testing.T) { - // Create a new custom 4byte database with no embedded component - tmpdir, err := ioutil.TempDir("", "signer-4byte-test") - if err != nil { - t.Fatal(err) - } - filename := fmt.Sprintf("%s/4byte_custom.json", tmpdir) - - db, err := NewWithFile(filename) - if err != nil { - t.Fatal(err) - } - db.embedded = make(map[string]string) - - // Ensure the database is empty, insert and verify - calldata := common.Hex2Bytes("a52c101edeadbeef") - if _, err = db.Selector(calldata); err == nil { - t.Fatalf("Should not find a match on empty database") - } - if err = db.AddSelector("send(uint256)", calldata); err != nil { - t.Fatalf("Failed to save file: %v", err) - } - if _, err = db.Selector(calldata); err != nil { - t.Fatalf("Failed to find a match for abi signature: %v", err) - } - // Check that the file as persisted to disk by creating a new instance - db2, err := NewFromFile(filename) - if err != nil { - t.Fatalf("Failed to create new abidb: %v", err) - } - if _, err = db2.Selector(calldata); err != nil { - t.Fatalf("Failed to find a match for persisted abi signature: %v", err) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation.go deleted file mode 100644 index 6b8168cc..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package fourbyte - -import ( - "bytes" - "errors" - "fmt" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/signer/core" -) - -// ValidateTransaction does a number of checks on the supplied transaction, and -// returns either a list of warnings, or an error (indicating that the transaction -// should be immediately rejected). -func (db *Database) ValidateTransaction(selector *string, tx *core.SendTxArgs) (*core.ValidationMessages, error) { - messages := new(core.ValidationMessages) - - // Prevent accidental erroneous usage of both 'input' and 'data' (show stopper) - if tx.Data != nil && tx.Input != nil && !bytes.Equal(*tx.Data, *tx.Input) { - return nil, errors.New(`ambiguous request: both "data" and "input" are set and are not identical`) - } - // Place data on 'data', and nil 'input' - var data []byte - if tx.Input != nil { - tx.Data = tx.Input - tx.Input = nil - } - if tx.Data != nil { - data = *tx.Data - } - // Contract creation doesn't validate call data, handle first - if tx.To == nil { - // Contract creation should contain sufficient data to deploy a contract. A - // typical error is omitting sender due to some quirk in the javascript call - // e.g. https://github.com/ethereum/go-ethereum/issues/16106. - if len(data) == 0 { - // Prevent sending ether into black hole (show stopper) - if tx.Value.ToInt().Cmp(big.NewInt(0)) > 0 { - return nil, errors.New("tx will create contract with value but empty code") - } - // No value submitted at least, critically Warn, but don't blow up - messages.Crit("Transaction will create contract with empty code") - } else if len(data) < 40 { // arbitrary heuristic limit - messages.Warn(fmt.Sprintf("Transaction will will create contract, but payload is suspiciously small (%d bytes)", len(data))) - } - // Method selector should be nil for contract creation - if selector != nil { - messages.Warn("Transaction will create contract, but method selector supplied, indicating intent to call a method") - } - return messages, nil - } - // Not a contract creation, validate as a plain transaction - if !tx.To.ValidChecksum() { - messages.Warn("Invalid checksum on recipient address") - } - if bytes.Equal(tx.To.Address().Bytes(), common.Address{}.Bytes()) { - messages.Crit("Transaction recipient is the zero address") - } - // Semantic fields validated, try to make heads or tails of the call data - db.validateCallData(selector, data, messages) - return messages, nil -} - -// validateCallData checks if the ABI call-data + method selector (if given) can -// be parsed and seems to match. -func (db *Database) validateCallData(selector *string, data []byte, messages *core.ValidationMessages) { - // If the data is empty, we have a plain value transfer, nothing more to do - if len(data) == 0 { - return - } - // Validate the call data that it has the 4byte prefix and the rest divisible by 32 bytes - if len(data) < 4 { - messages.Warn("Transaction data is not valid ABI (missing the 4 byte call prefix)") - return - } - if n := len(data) - 4; n%32 != 0 { - messages.Warn(fmt.Sprintf("Transaction data is not valid ABI (length should be a multiple of 32 (was %d))", n)) - } - // If a custom method selector was provided, validate with that - if selector != nil { - if info, err := verifySelector(*selector, data); err != nil { - messages.Warn(fmt.Sprintf("Transaction contains data, but provided ABI signature could not be matched: %v", err)) - } else { - messages.Info(info.String()) - db.AddSelector(*selector, data[:4]) - } - return - } - // No method selector was provided, check the database for embedded ones - embedded, err := db.Selector(data[:4]) - if err != nil { - messages.Warn(fmt.Sprintf("Transaction contains data, but the ABI signature could not be found: %v", err)) - return - } - if info, err := verifySelector(embedded, data); err != nil { - messages.Warn(fmt.Sprintf("Transaction contains data, but provided ABI signature could not be varified: %v", err)) - } else { - messages.Info(info.String()) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation_test.go b/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation_test.go deleted file mode 100644 index bdbc6b5b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/signer/fourbyte/validation_test.go +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of go-ethereum. -// -// go-ethereum is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// go-ethereum is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with go-ethereum. If not, see . - -package fourbyte - -import ( - "math/big" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/signer/core" -) - -func mixAddr(a string) (*common.MixedcaseAddress, error) { - return common.NewMixedcaseAddressFromString(a) -} -func toHexBig(h string) hexutil.Big { - b := big.NewInt(0).SetBytes(common.FromHex(h)) - return hexutil.Big(*b) -} -func toHexUint(h string) hexutil.Uint64 { - b := big.NewInt(0).SetBytes(common.FromHex(h)) - return hexutil.Uint64(b.Uint64()) -} -func dummyTxArgs(t txtestcase) *core.SendTxArgs { - to, _ := mixAddr(t.to) - from, _ := mixAddr(t.from) - n := toHexUint(t.n) - gas := toHexUint(t.g) - gasPrice := toHexBig(t.gp) - value := toHexBig(t.value) - var ( - data, input *hexutil.Bytes - ) - if t.d != "" { - a := hexutil.Bytes(common.FromHex(t.d)) - data = &a - } - if t.i != "" { - a := hexutil.Bytes(common.FromHex(t.i)) - input = &a - - } - return &core.SendTxArgs{ - From: *from, - To: to, - Value: value, - Nonce: n, - GasPrice: gasPrice, - Gas: gas, - Data: data, - Input: input, - } -} - -type txtestcase struct { - from, to, n, g, gp, value, d, i string - expectErr bool - numMessages int -} - -func TestTransactionValidation(t *testing.T) { - var ( - // use empty db, there are other tests for the abi-specific stuff - db = newEmpty() - ) - testcases := []txtestcase{ - // Invalid to checksum - {from: "000000000000000000000000000000000000dead", to: "000000000000000000000000000000000000dead", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", numMessages: 1}, - // valid 0x000000000000000000000000000000000000dEaD - {from: "000000000000000000000000000000000000dead", to: "0x000000000000000000000000000000000000dEaD", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", numMessages: 0}, - // conflicting input and data - {from: "000000000000000000000000000000000000dead", to: "0x000000000000000000000000000000000000dEaD", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", d: "0x01", i: "0x02", expectErr: true}, - // Data can't be parsed - {from: "000000000000000000000000000000000000dead", to: "0x000000000000000000000000000000000000dEaD", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", d: "0x0102", numMessages: 1}, - // Data (on Input) can't be parsed - {from: "000000000000000000000000000000000000dead", to: "0x000000000000000000000000000000000000dEaD", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", i: "0x0102", numMessages: 1}, - // Send to 0 - {from: "000000000000000000000000000000000000dead", to: "0x0000000000000000000000000000000000000000", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", numMessages: 1}, - // Create empty contract (no value) - {from: "000000000000000000000000000000000000dead", to: "", - n: "0x01", g: "0x20", gp: "0x40", value: "0x00", numMessages: 1}, - // Create empty contract (with value) - {from: "000000000000000000000000000000000000dead", to: "", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", expectErr: true}, - // Small payload for create - {from: "000000000000000000000000000000000000dead", to: "", - n: "0x01", g: "0x20", gp: "0x40", value: "0x01", d: "0x01", numMessages: 1}, - } - for i, test := range testcases { - msgs, err := db.ValidateTransaction(nil, dummyTxArgs(test)) - if err == nil && test.expectErr { - t.Errorf("Test %d, expected error", i) - for _, msg := range msgs.Messages { - t.Logf("* %s: %s", msg.Typ, msg.Message) - } - } - if err != nil && !test.expectErr { - t.Errorf("Test %d, unexpected error: %v", i, err) - } - if err == nil { - got := len(msgs.Messages) - if got != test.numMessages { - for _, msg := range msgs.Messages { - t.Logf("* %s: %s", msg.Typ, msg.Message) - } - t.Errorf("Test %d, expected %d messages, got %d", i, test.numMessages, got) - } else { - //Debug printout, remove later - for _, msg := range msgs.Messages { - t.Logf("* [%d] %s: %s", i, msg.Typ, msg.Message) - } - t.Log() - } - } - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/builder_test.go b/vendor/github.com/ethereum/go-ethereum/statediff/builder_test.go deleted file mode 100644 index b4df80f8..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/builder_test.go +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package statediff_test - -import ( - "bytes" - "math/big" - "reflect" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/statediff" - "github.com/ethereum/go-ethereum/statediff/testhelpers" -) - -var ( - contractLeafKey common.Hash - emptyAccountDiffEventualMap = make(statediff.AccountDiffsMap) - emptyAccountDiffIncrementalMap = make(statediff.AccountDiffsMap) - block0Hash, block1Hash, block2Hash, block3Hash common.Hash - block0, block1, block2, block3 *types.Block - builder statediff.Builder - miningReward = int64(2000000000000000000) - burnAddress = common.HexToAddress("0x0") - burnLeafKey = testhelpers.AddressToLeafKey(burnAddress) -) - -func TestBuilder(t *testing.T) { - _, blockMap, chain := testhelpers.MakeChain(3, testhelpers.Genesis) - contractLeafKey = testhelpers.AddressToLeafKey(testhelpers.ContractAddr) - defer chain.Stop() - block0Hash = common.HexToHash("0xd1721cfd0b29c36fd7a68f25c128e86413fb666a6e1d68e89b875bd299262661") - block1Hash = common.HexToHash("0xbbe88de60ba33a3f18c0caa37d827bfb70252e19e40a07cd34041696c35ecb1a") - block2Hash = common.HexToHash("0x34ad0fd9bb2911986b75d518c822641079dea823bc6952343ebf05da1062b6f5") - block3Hash = common.HexToHash("0x9872058136c560a6ebed0c0522b8d3016fc21f4fb0fb6585ddd8fd4c54f9909a") - - block0 = blockMap[block0Hash] - block1 = blockMap[block1Hash] - block2 = blockMap[block2Hash] - block3 = blockMap[block3Hash] - builder = statediff.NewBuilder(testhelpers.Testdb, chain) - - type arguments struct { - oldStateRoot common.Hash - newStateRoot common.Hash - blockNumber int64 - blockHash common.Hash - } - - var ( - balanceChange10000 = int64(10000) - balanceChange1000 = int64(1000) - block1BankBalance = int64(99990000) - block1Account1Balance = int64(10000) - block2Account2Balance = int64(1000) - nonce0 = uint64(0) - nonce1 = uint64(1) - nonce2 = uint64(2) - nonce3 = uint64(3) - originalContractRoot = "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - contractContractRoot = "0x821e2556a290c86405f8160a2d662042a431ba456b9db265c79bb837c04be5f0" - newContractRoot = "0x71e0d14b2b93e5c7f9748e69e1fe5f17498a1c3ac3cec29f96af13d7f8a4e070" - originalStorageLocation = common.HexToHash("0") - originalStorageKey = crypto.Keccak256Hash(originalStorageLocation[:]).Bytes() - updatedStorageLocation = common.HexToHash("2") - updatedStorageKey = crypto.Keccak256Hash(updatedStorageLocation[:]).Bytes() - originalStorageValue = common.Hex2Bytes("01") - updatedStorageValue = common.Hex2Bytes("03") - account1, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce0, - Balance: big.NewInt(balanceChange10000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - burnAccount1, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce0, - Balance: big.NewInt(miningReward), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - bankAccount1, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce1, - Balance: big.NewInt(testhelpers.TestBankFunds.Int64() - balanceChange10000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - account2, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce0, - Balance: big.NewInt(balanceChange1000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - contractAccount, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce1, - Balance: big.NewInt(0), - CodeHash: common.HexToHash("0x753f98a8d4328b15636e46f66f2cb4bc860100aa17967cc145fcd17d1d4710ea").Bytes(), - Root: common.HexToHash(contractContractRoot), - }) - bankAccount2, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce2, - Balance: big.NewInt(block1BankBalance - balanceChange1000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - account3, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce2, - Balance: big.NewInt(block1Account1Balance - balanceChange1000 + balanceChange1000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - burnAccount2, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce0, - Balance: big.NewInt(miningReward + miningReward), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - account4, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce0, - Balance: big.NewInt(block2Account2Balance + miningReward), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - contractAccount2, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce1, - Balance: big.NewInt(0), - CodeHash: common.HexToHash("0x753f98a8d4328b15636e46f66f2cb4bc860100aa17967cc145fcd17d1d4710ea").Bytes(), - Root: common.HexToHash(newContractRoot), - }) - bankAccount3, _ = rlp.EncodeToBytes(state.Account{ - Nonce: nonce3, - Balance: big.NewInt(99989000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash(originalContractRoot), - }) - ) - - var tests = []struct { - name string - startingArguments arguments - expected *statediff.StateDiff - }{ - { - "testEmptyDiff", - arguments{ - oldStateRoot: block0.Root(), - newStateRoot: block0.Root(), - blockNumber: block0.Number().Int64(), - blockHash: block0Hash, - }, - &statediff.StateDiff{ - BlockNumber: block0.Number().Int64(), - BlockHash: block0Hash, - CreatedAccounts: emptyAccountDiffEventualMap, - DeletedAccounts: emptyAccountDiffEventualMap, - UpdatedAccounts: emptyAccountDiffIncrementalMap, - }, - }, - { - "testBlock1", - //10000 transferred from testBankAddress to account1Addr - arguments{ - oldStateRoot: block0.Root(), - newStateRoot: block1.Root(), - blockNumber: block1.Number().Int64(), - blockHash: block1Hash, - }, - &statediff.StateDiff{ - BlockNumber: block1.Number().Int64(), - BlockHash: block1.Hash(), - CreatedAccounts: statediff.AccountDiffsMap{ - testhelpers.Account1LeafKey: { - Key: testhelpers.Account1LeafKey.Bytes(), - Value: account1, - Proof: [][]byte{{248, 113, 160, 87, 118, 82, 182, 37, 183, 123, 219, 91, 247, 123, 196, 63, 49, 37, 202, 215, 70, 77, 103, 157, 21, 117, 86, 82, 119, 211, 97, 27, 128, 83, 231, 128, 128, 128, 128, 160, 254, 136, 159, 16, 229, 219, 143, 44, 43, 243, 85, 146, 129, 82, 161, 127, 110, 59, 185, 154, 146, 65, 172, 109, 132, 199, 126, 98, 100, 80, 156, 121, 128, 128, 128, 128, 128, 128, 128, 128, 160, 17, 219, 12, 218, 52, 168, 150, 218, 190, 182, 131, 155, 176, 106, 56, 244, 149, 20, 207, 164, 134, 67, 89, 132, 235, 1, 59, 125, 249, 238, 133, 197, 128, 128}, - {248, 107, 160, 57, 38, 219, 105, 170, 206, 213, 24, 233, 185, 240, 244, 52, 164, 115, 231, 23, 65, 9, 201, 67, 84, 139, 184, 242, 59, 228, 28, 167, 109, 154, 210, 184, 72, 248, 70, 128, 130, 39, 16, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{14, 9, 2, 6, 13, 11, 6, 9, 10, 10, 12, 14, 13, 5, 1, 8, 14, 9, 11, 9, 15, 0, 15, 4, 3, 4, 10, 4, 7, 3, 14, 7, 1, 7, 4, 1, 0, 9, 12, 9, 4, 3, 5, 4, 8, 11, 11, 8, 15, 2, 3, 11, 14, 4, 1, 12, 10, 7, 6, 13, 9, 10, 13, 2, 16}, - Storage: []statediff.StorageDiff{}, - }, - burnLeafKey: { - Key: burnLeafKey.Bytes(), - Value: burnAccount1, - Proof: [][]byte{{248, 113, 160, 87, 118, 82, 182, 37, 183, 123, 219, 91, 247, 123, 196, 63, 49, 37, 202, 215, 70, 77, 103, 157, 21, 117, 86, 82, 119, 211, 97, 27, 128, 83, 231, 128, 128, 128, 128, 160, 254, 136, 159, 16, 229, 219, 143, 44, 43, 243, 85, 146, 129, 82, 161, 127, 110, 59, 185, 154, 146, 65, 172, 109, 132, 199, 126, 98, 100, 80, 156, 121, 128, 128, 128, 128, 128, 128, 128, 128, 160, 17, 219, 12, 218, 52, 168, 150, 218, 190, 182, 131, 155, 176, 106, 56, 244, 149, 20, 207, 164, 134, 67, 89, 132, 235, 1, 59, 125, 249, 238, 133, 197, 128, 128}, - {248, 113, 160, 51, 128, 199, 183, 174, 129, 165, 142, 185, 141, 156, 120, 222, 74, 31, 215, 253, 149, 53, 252, 149, 62, 210, 190, 96, 45, 170, 164, 23, 103, 49, 42, 184, 78, 248, 76, 128, 136, 27, 193, 109, 103, 78, 200, 0, 0, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{5, 3, 8, 0, 12, 7, 11, 7, 10, 14, 8, 1, 10, 5, 8, 14, 11, 9, 8, 13, 9, 12, 7, 8, 13, 14, 4, 10, 1, 15, 13, 7, 15, 13, 9, 5, 3, 5, 15, 12, 9, 5, 3, 14, 13, 2, 11, 14, 6, 0, 2, 13, 10, 10, 10, 4, 1, 7, 6, 7, 3, 1, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - }, - DeletedAccounts: emptyAccountDiffEventualMap, - UpdatedAccounts: statediff.AccountDiffsMap{ - testhelpers.BankLeafKey: { - Key: testhelpers.BankLeafKey.Bytes(), - Value: bankAccount1, - Proof: [][]byte{{248, 113, 160, 87, 118, 82, 182, 37, 183, 123, 219, 91, 247, 123, 196, 63, 49, 37, 202, 215, 70, 77, 103, 157, 21, 117, 86, 82, 119, 211, 97, 27, 128, 83, 231, 128, 128, 128, 128, 160, 254, 136, 159, 16, 229, 219, 143, 44, 43, 243, 85, 146, 129, 82, 161, 127, 110, 59, 185, 154, 146, 65, 172, 109, 132, 199, 126, 98, 100, 80, 156, 121, 128, 128, 128, 128, 128, 128, 128, 128, 160, 17, 219, 12, 218, 52, 168, 150, 218, 190, 182, 131, 155, 176, 106, 56, 244, 149, 20, 207, 164, 134, 67, 89, 132, 235, 1, 59, 125, 249, 238, 133, 197, 128, 128}, - {248, 109, 160, 48, 191, 73, 244, 64, 161, 205, 5, 39, 228, 208, 110, 39, 101, 101, 76, 15, 86, 69, 34, 87, 81, 109, 121, 58, 155, 141, 96, 77, 207, 223, 42, 184, 74, 248, 72, 1, 132, 5, 245, 185, 240, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{0, 0, 11, 15, 4, 9, 15, 4, 4, 0, 10, 1, 12, 13, 0, 5, 2, 7, 14, 4, 13, 0, 6, 14, 2, 7, 6, 5, 6, 5, 4, 12, 0, 15, 5, 6, 4, 5, 2, 2, 5, 7, 5, 1, 6, 13, 7, 9, 3, 10, 9, 11, 8, 13, 6, 0, 4, 13, 12, 15, 13, 15, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - }, - }, - }, - { - "testBlock2", - //1000 transferred from testBankAddress to account1Addr - //1000 transferred from account1Addr to account2Addr - arguments{ - oldStateRoot: block1.Root(), - newStateRoot: block2.Root(), - blockNumber: block2.Number().Int64(), - blockHash: block2Hash, - }, - &statediff.StateDiff{ - BlockNumber: block2.Number().Int64(), - BlockHash: block2.Hash(), - CreatedAccounts: statediff.AccountDiffsMap{ - testhelpers.Account2LeafKey: { - Key: testhelpers.Account2LeafKey.Bytes(), - Value: account2, - Proof: [][]byte{{248, 177, 160, 177, 155, 238, 178, 242, 47, 83, 2, 49, 141, 155, 92, 149, 175, 245, 120, 233, 177, 101, 67, 46, 200, 23, 250, 41, 74, 135, 94, 61, 133, 51, 162, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 114, 57, 32, 11, 115, 232, 140, 238, 165, 222, 121, 226, 208, 2, 192, 216, 67, 198, 179, 31, 181, 27, 208, 243, 99, 202, 48, 148, 207, 107, 106, 177, 128, 128, 128, 128, 128, 160, 10, 173, 165, 125, 110, 240, 77, 112, 149, 100, 135, 237, 25, 228, 116, 7, 195, 9, 210, 166, 208, 148, 101, 23, 244, 238, 84, 84, 211, 249, 138, 137, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 107, 160, 57, 87, 243, 226, 240, 74, 7, 100, 195, 160, 73, 27, 23, 95, 105, 146, 109, 166, 30, 251, 204, 143, 97, 250, 20, 85, 253, 45, 43, 76, 221, 69, 184, 72, 248, 70, 128, 130, 3, 232, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{12, 9, 5, 7, 15, 3, 14, 2, 15, 0, 4, 10, 0, 7, 6, 4, 12, 3, 10, 0, 4, 9, 1, 11, 1, 7, 5, 15, 6, 9, 9, 2, 6, 13, 10, 6, 1, 14, 15, 11, 12, 12, 8, 15, 6, 1, 15, 10, 1, 4, 5, 5, 15, 13, 2, 13, 2, 11, 4, 12, 13, 13, 4, 5, 16}, - Storage: []statediff.StorageDiff{}, - }, - contractLeafKey: { - Key: contractLeafKey.Bytes(), - Value: contractAccount, - Proof: [][]byte{{248, 177, 160, 177, 155, 238, 178, 242, 47, 83, 2, 49, 141, 155, 92, 149, 175, 245, 120, 233, 177, 101, 67, 46, 200, 23, 250, 41, 74, 135, 94, 61, 133, 51, 162, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 114, 57, 32, 11, 115, 232, 140, 238, 165, 222, 121, 226, 208, 2, 192, 216, 67, 198, 179, 31, 181, 27, 208, 243, 99, 202, 48, 148, 207, 107, 106, 177, 128, 128, 128, 128, 128, 160, 10, 173, 165, 125, 110, 240, 77, 112, 149, 100, 135, 237, 25, 228, 116, 7, 195, 9, 210, 166, 208, 148, 101, 23, 244, 238, 84, 84, 211, 249, 138, 137, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 105, 160, 49, 20, 101, 138, 116, 217, 204, 159, 122, 207, 44, 92, 214, 150, 195, 73, 77, 124, 52, 77, 120, 191, 236, 58, 221, 13, 145, 236, 78, 141, 28, 69, 184, 70, 248, 68, 1, 128, 160, 130, 30, 37, 86, 162, 144, 200, 100, 5, 248, 22, 10, 45, 102, 32, 66, 164, 49, 186, 69, 107, 157, 178, 101, 199, 155, 184, 55, 192, 75, 229, 240, 160, 117, 63, 152, 168, 212, 50, 139, 21, 99, 110, 70, 246, 111, 44, 180, 188, 134, 1, 0, 170, 23, 150, 124, 193, 69, 252, 209, 125, 29, 71, 16, 234}}, - Path: []byte{6, 1, 1, 4, 6, 5, 8, 10, 7, 4, 13, 9, 12, 12, 9, 15, 7, 10, 12, 15, 2, 12, 5, 12, 13, 6, 9, 6, 12, 3, 4, 9, 4, 13, 7, 12, 3, 4, 4, 13, 7, 8, 11, 15, 14, 12, 3, 10, 13, 13, 0, 13, 9, 1, 14, 12, 4, 14, 8, 13, 1, 12, 4, 5, 16}, - Storage: []statediff.StorageDiff{ - { - Key: originalStorageKey, - Value: originalStorageValue, - Proof: [][]byte{{227, 161, 32, 41, 13, 236, 217, 84, 139, 98, 168, 214, 3, 69, 169, 136, 56, 111, 200, 75, 166, 188, 149, 72, 64, 8, 246, 54, 47, 147, 22, 14, 243, 229, 99, 1}}, - Path: []byte{2, 9, 0, 13, 14, 12, 13, 9, 5, 4, 8, 11, 6, 2, 10, 8, 13, 6, 0, 3, 4, 5, 10, 9, 8, 8, 3, 8, 6, 15, 12, 8, 4, 11, 10, 6, 11, 12, 9, 5, 4, 8, 4, 0, 0, 8, 15, 6, 3, 6, 2, 15, 9, 3, 1, 6, 0, 14, 15, 3, 14, 5, 6, 3, 16}, - }, - }, - }, - }, - DeletedAccounts: emptyAccountDiffEventualMap, - UpdatedAccounts: statediff.AccountDiffsMap{ - testhelpers.BankLeafKey: { - Key: testhelpers.BankLeafKey.Bytes(), - Value: bankAccount2, - Proof: [][]byte{{248, 177, 160, 177, 155, 238, 178, 242, 47, 83, 2, 49, 141, 155, 92, 149, 175, 245, 120, 233, 177, 101, 67, 46, 200, 23, 250, 41, 74, 135, 94, 61, 133, 51, 162, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 114, 57, 32, 11, 115, 232, 140, 238, 165, 222, 121, 226, 208, 2, 192, 216, 67, 198, 179, 31, 181, 27, 208, 243, 99, 202, 48, 148, 207, 107, 106, 177, 128, 128, 128, 128, 128, 160, 10, 173, 165, 125, 110, 240, 77, 112, 149, 100, 135, 237, 25, 228, 116, 7, 195, 9, 210, 166, 208, 148, 101, 23, 244, 238, 84, 84, 211, 249, 138, 137, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 109, 160, 48, 191, 73, 244, 64, 161, 205, 5, 39, 228, 208, 110, 39, 101, 101, 76, 15, 86, 69, 34, 87, 81, 109, 121, 58, 155, 141, 96, 77, 207, 223, 42, 184, 74, 248, 72, 2, 132, 5, 245, 182, 8, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{0, 0, 11, 15, 4, 9, 15, 4, 4, 0, 10, 1, 12, 13, 0, 5, 2, 7, 14, 4, 13, 0, 6, 14, 2, 7, 6, 5, 6, 5, 4, 12, 0, 15, 5, 6, 4, 5, 2, 2, 5, 7, 5, 1, 6, 13, 7, 9, 3, 10, 9, 11, 8, 13, 6, 0, 4, 13, 12, 15, 13, 15, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - testhelpers.Account1LeafKey: { - Key: testhelpers.Account1LeafKey.Bytes(), - Value: account3, - Proof: [][]byte{{248, 177, 160, 177, 155, 238, 178, 242, 47, 83, 2, 49, 141, 155, 92, 149, 175, 245, 120, 233, 177, 101, 67, 46, 200, 23, 250, 41, 74, 135, 94, 61, 133, 51, 162, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 114, 57, 32, 11, 115, 232, 140, 238, 165, 222, 121, 226, 208, 2, 192, 216, 67, 198, 179, 31, 181, 27, 208, 243, 99, 202, 48, 148, 207, 107, 106, 177, 128, 128, 128, 128, 128, 160, 10, 173, 165, 125, 110, 240, 77, 112, 149, 100, 135, 237, 25, 228, 116, 7, 195, 9, 210, 166, 208, 148, 101, 23, 244, 238, 84, 84, 211, 249, 138, 137, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 107, 160, 57, 38, 219, 105, 170, 206, 213, 24, 233, 185, 240, 244, 52, 164, 115, 231, 23, 65, 9, 201, 67, 84, 139, 184, 242, 59, 228, 28, 167, 109, 154, 210, 184, 72, 248, 70, 2, 130, 39, 16, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{14, 9, 2, 6, 13, 11, 6, 9, 10, 10, 12, 14, 13, 5, 1, 8, 14, 9, 11, 9, 15, 0, 15, 4, 3, 4, 10, 4, 7, 3, 14, 7, 1, 7, 4, 1, 0, 9, 12, 9, 4, 3, 5, 4, 8, 11, 11, 8, 15, 2, 3, 11, 14, 4, 1, 12, 10, 7, 6, 13, 9, 10, 13, 2, 16}, - Storage: []statediff.StorageDiff{}, - }, - burnLeafKey: { - Key: burnLeafKey.Bytes(), - Value: burnAccount2, - Proof: [][]byte{{248, 177, 160, 177, 155, 238, 178, 242, 47, 83, 2, 49, 141, 155, 92, 149, 175, 245, 120, 233, 177, 101, 67, 46, 200, 23, 250, 41, 74, 135, 94, 61, 133, 51, 162, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 114, 57, 32, 11, 115, 232, 140, 238, 165, 222, 121, 226, 208, 2, 192, 216, 67, 198, 179, 31, 181, 27, 208, 243, 99, 202, 48, 148, 207, 107, 106, 177, 128, 128, 128, 128, 128, 160, 10, 173, 165, 125, 110, 240, 77, 112, 149, 100, 135, 237, 25, 228, 116, 7, 195, 9, 210, 166, 208, 148, 101, 23, 244, 238, 84, 84, 211, 249, 138, 137, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 113, 160, 51, 128, 199, 183, 174, 129, 165, 142, 185, 141, 156, 120, 222, 74, 31, 215, 253, 149, 53, 252, 149, 62, 210, 190, 96, 45, 170, 164, 23, 103, 49, 42, 184, 78, 248, 76, 128, 136, 55, 130, 218, 206, 157, 144, 0, 0, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{5, 3, 8, 0, 12, 7, 11, 7, 10, 14, 8, 1, 10, 5, 8, 14, 11, 9, 8, 13, 9, 12, 7, 8, 13, 14, 4, 10, 1, 15, 13, 7, 15, 13, 9, 5, 3, 5, 15, 12, 9, 5, 3, 14, 13, 2, 11, 14, 6, 0, 2, 13, 10, 10, 10, 4, 1, 7, 6, 7, 3, 1, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - }, - }, - }, - { - "testBlock3", - //the contract's storage is changed - //and the block is mined by account 2 - arguments{ - oldStateRoot: block2.Root(), - newStateRoot: block3.Root(), - blockNumber: block3.Number().Int64(), - blockHash: block3.Hash(), - }, - &statediff.StateDiff{ - BlockNumber: block3.Number().Int64(), - BlockHash: block3.Hash(), - CreatedAccounts: statediff.AccountDiffsMap{}, - DeletedAccounts: emptyAccountDiffEventualMap, - UpdatedAccounts: statediff.AccountDiffsMap{ - testhelpers.Account2LeafKey: { - Key: testhelpers.Account2LeafKey.Bytes(), - Value: account4, - Proof: [][]byte{{248, 177, 160, 101, 223, 138, 81, 34, 40, 229, 170, 198, 188, 136, 99, 7, 55, 33, 112, 160, 111, 181, 131, 167, 201, 131, 24, 201, 211, 177, 30, 159, 229, 246, 6, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 32, 135, 108, 213, 150, 150, 110, 44, 170, 65, 75, 154, 74, 249, 94, 65, 74, 107, 100, 115, 39, 5, 3, 26, 22, 238, 138, 114, 254, 21, 6, 171, 128, 128, 128, 128, 128, 160, 4, 228, 121, 222, 255, 218, 60, 247, 15, 0, 34, 198, 28, 229, 180, 129, 109, 157, 68, 181, 248, 229, 200, 123, 29, 81, 145, 114, 90, 209, 205, 210, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 113, 160, 57, 87, 243, 226, 240, 74, 7, 100, 195, 160, 73, 27, 23, 95, 105, 146, 109, 166, 30, 251, 204, 143, 97, 250, 20, 85, 253, 45, 43, 76, 221, 69, 184, 78, 248, 76, 128, 136, 27, 193, 109, 103, 78, 200, 3, 232, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{12, 9, 5, 7, 15, 3, 14, 2, 15, 0, 4, 10, 0, 7, 6, 4, 12, 3, 10, 0, 4, 9, 1, 11, 1, 7, 5, 15, 6, 9, 9, 2, 6, 13, 10, 6, 1, 14, 15, 11, 12, 12, 8, 15, 6, 1, 15, 10, 1, 4, 5, 5, 15, 13, 2, 13, 2, 11, 4, 12, 13, 13, 4, 5, 16}, - Storage: []statediff.StorageDiff{}, - }, - contractLeafKey: { - Key: contractLeafKey.Bytes(), - Value: contractAccount2, - Proof: [][]byte{{248, 177, 160, 101, 223, 138, 81, 34, 40, 229, 170, 198, 188, 136, 99, 7, 55, 33, 112, 160, 111, 181, 131, 167, 201, 131, 24, 201, 211, 177, 30, 159, 229, 246, 6, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 32, 135, 108, 213, 150, 150, 110, 44, 170, 65, 75, 154, 74, 249, 94, 65, 74, 107, 100, 115, 39, 5, 3, 26, 22, 238, 138, 114, 254, 21, 6, 171, 128, 128, 128, 128, 128, 160, 4, 228, 121, 222, 255, 218, 60, 247, 15, 0, 34, 198, 28, 229, 180, 129, 109, 157, 68, 181, 248, 229, 200, 123, 29, 81, 145, 114, 90, 209, 205, 210, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 105, 160, 49, 20, 101, 138, 116, 217, 204, 159, 122, 207, 44, 92, 214, 150, 195, 73, 77, 124, 52, 77, 120, 191, 236, 58, 221, 13, 145, 236, 78, 141, 28, 69, 184, 70, 248, 68, 1, 128, 160, 113, 224, 209, 75, 43, 147, 229, 199, 249, 116, 142, 105, 225, 254, 95, 23, 73, 138, 28, 58, 195, 206, 194, 159, 150, 175, 19, 215, 248, 164, 224, 112, 160, 117, 63, 152, 168, 212, 50, 139, 21, 99, 110, 70, 246, 111, 44, 180, 188, 134, 1, 0, 170, 23, 150, 124, 193, 69, 252, 209, 125, 29, 71, 16, 234}}, - Path: []byte{6, 1, 1, 4, 6, 5, 8, 10, 7, 4, 13, 9, 12, 12, 9, 15, 7, 10, 12, 15, 2, 12, 5, 12, 13, 6, 9, 6, 12, 3, 4, 9, 4, 13, 7, 12, 3, 4, 4, 13, 7, 8, 11, 15, 14, 12, 3, 10, 13, 13, 0, 13, 9, 1, 14, 12, 4, 14, 8, 13, 1, 12, 4, 5, 16}, - Storage: []statediff.StorageDiff{ - { - Key: updatedStorageKey, - Value: updatedStorageValue, - Proof: [][]byte{{248, 81, 128, 128, 160, 79, 197, 241, 58, 178, 249, 186, 12, 45, 168, 139, 1, 81, 171, 14, 124, 244, 216, 93, 8, 204, 164, 92, 205, 146, 60, 106, 183, 99, 35, 235, 40, 128, 160, 205, 69, 114, 89, 105, 97, 21, 35, 94, 100, 199, 130, 35, 52, 214, 33, 41, 226, 241, 96, 68, 37, 167, 218, 100, 148, 243, 95, 196, 91, 229, 24, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}, - {226, 160, 48, 87, 135, 250, 18, 168, 35, 224, 242, 183, 99, 28, 196, 27, 59, 168, 130, 139, 51, 33, 202, 129, 17, 17, 250, 117, 205, 58, 163, 187, 90, 206, 3}}, - Path: []byte{4, 0, 5, 7, 8, 7, 15, 10, 1, 2, 10, 8, 2, 3, 14, 0, 15, 2, 11, 7, 6, 3, 1, 12, 12, 4, 1, 11, 3, 11, 10, 8, 8, 2, 8, 11, 3, 3, 2, 1, 12, 10, 8, 1, 1, 1, 1, 1, 15, 10, 7, 5, 12, 13, 3, 10, 10, 3, 11, 11, 5, 10, 12, 14, 16}, - }, - }, - }, - testhelpers.BankLeafKey: { - Key: testhelpers.BankLeafKey.Bytes(), - Value: bankAccount3, - Proof: [][]byte{{248, 177, 160, 101, 223, 138, 81, 34, 40, 229, 170, 198, 188, 136, 99, 7, 55, 33, 112, 160, 111, 181, 131, 167, 201, 131, 24, 201, 211, 177, 30, 159, 229, 246, 6, 128, 128, 128, 128, 160, 179, 86, 53, 29, 96, 188, 152, 148, 207, 31, 29, 108, 182, 140, 129, 95, 1, 49, 213, 15, 29, 168, 60, 64, 35, 160, 158, 200, 85, 207, 255, 145, 160, 32, 135, 108, 213, 150, 150, 110, 44, 170, 65, 75, 154, 74, 249, 94, 65, 74, 107, 100, 115, 39, 5, 3, 26, 22, 238, 138, 114, 254, 21, 6, 171, 128, 128, 128, 128, 128, 160, 4, 228, 121, 222, 255, 218, 60, 247, 15, 0, 34, 198, 28, 229, 180, 129, 109, 157, 68, 181, 248, 229, 200, 123, 29, 81, 145, 114, 90, 209, 205, 210, 128, 160, 255, 115, 147, 190, 57, 135, 174, 188, 86, 51, 227, 70, 22, 253, 237, 49, 24, 19, 149, 199, 142, 195, 186, 244, 70, 51, 138, 0, 146, 148, 117, 60, 128, 128}, - {248, 109, 160, 48, 191, 73, 244, 64, 161, 205, 5, 39, 228, 208, 110, 39, 101, 101, 76, 15, 86, 69, 34, 87, 81, 109, 121, 58, 155, 141, 96, 77, 207, 223, 42, 184, 74, 248, 72, 3, 132, 5, 245, 182, 8, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{0, 0, 11, 15, 4, 9, 15, 4, 4, 0, 10, 1, 12, 13, 0, 5, 2, 7, 14, 4, 13, 0, 6, 14, 2, 7, 6, 5, 6, 5, 4, 12, 0, 15, 5, 6, 4, 5, 2, 2, 5, 7, 5, 1, 6, 13, 7, 9, 3, 10, 9, 11, 8, 13, 6, 0, 4, 13, 12, 15, 13, 15, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - }, - }, - }, - } - - for _, test := range tests { - arguments := test.startingArguments - diff, err := builder.BuildStateDiff(arguments.oldStateRoot, arguments.newStateRoot, arguments.blockNumber, arguments.blockHash) - if err != nil { - t.Error(err) - } - fields := []string{"BlockNumber", "BlockHash", "DeletedAccounts", "UpdatedAccounts", "CreatedAccounts"} - - for _, field := range fields { - reflectionOfDiff := reflect.ValueOf(diff) - diffValue := reflect.Indirect(reflectionOfDiff).FieldByName(field) - - reflectionOfExpected := reflect.ValueOf(test.expected) - expectedValue := reflect.Indirect(reflectionOfExpected).FieldByName(field) - - diffValueInterface := diffValue.Interface() - expectedValueInterface := expectedValue.Interface() - - if !equals(diffValueInterface, expectedValueInterface) { - t.Logf("Test failed: %s", test.name) - t.Errorf("field: %+v\nactual: %+v\nexpected: %+v", field, diffValueInterface, expectedValueInterface) - } - } - } -} - -func equals(actual, expected interface{}) (success bool) { - if actualByteSlice, ok := actual.([]byte); ok { - if expectedByteSlice, ok := expected.([]byte); ok { - return bytes.Equal(actualByteSlice, expectedByteSlice) - } - } - - return reflect.DeepEqual(actual, expected) -} - -/* -contract test { - - uint256[100] data; - - constructor() public { - data = [1]; - } - - function Put(uint256 addr, uint256 value) { - data[addr] = value; - } - - function Get(uint256 addr) constant returns (uint256 value) { - return data[addr]; - } -} -*/ diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/service_test.go b/vendor/github.com/ethereum/go-ethereum/statediff/service_test.go deleted file mode 100644 index 79e2f4db..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/service_test.go +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package statediff_test - -import ( - "bytes" - "math/big" - "math/rand" - "reflect" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/statediff" - "github.com/ethereum/go-ethereum/statediff/testhelpers/mocks" -) - -func TestServiceLoop(t *testing.T) { - testErrorInChainEventLoop(t) - testErrorInBlockLoop(t) -} - -var ( - eventsChannel = make(chan core.ChainEvent, 1) - - parentRoot1 = common.HexToHash("0x01") - parentRoot2 = common.HexToHash("0x02") - parentHeader1 = types.Header{Number: big.NewInt(rand.Int63()), Root: parentRoot1} - parentHeader2 = types.Header{Number: big.NewInt(rand.Int63()), Root: parentRoot2} - - parentBlock1 = types.NewBlock(&parentHeader1, nil, nil, nil) - parentBlock2 = types.NewBlock(&parentHeader2, nil, nil, nil) - - parentHash1 = parentBlock1.Hash() - parentHash2 = parentBlock2.Hash() - - testRoot1 = common.HexToHash("0x03") - testRoot2 = common.HexToHash("0x04") - testRoot3 = common.HexToHash("0x04") - header1 = types.Header{ParentHash: parentHash1, Root: testRoot1} - header2 = types.Header{ParentHash: parentHash2, Root: testRoot2} - header3 = types.Header{ParentHash: common.HexToHash("parent hash"), Root: testRoot3} - - testBlock1 = types.NewBlock(&header1, nil, nil, nil) - testBlock2 = types.NewBlock(&header2, nil, nil, nil) - testBlock3 = types.NewBlock(&header3, nil, nil, nil) - - event1 = core.ChainEvent{Block: testBlock1} - event2 = core.ChainEvent{Block: testBlock2} - event3 = core.ChainEvent{Block: testBlock3} -) - -func testErrorInChainEventLoop(t *testing.T) { - //the first chain event causes and error (in blockchain mock) - builder := mocks.Builder{} - blockChain := mocks.BlockChain{} - service := statediff.Service{ - Builder: &builder, - BlockChain: &blockChain, - QuitChan: make(chan bool), - Subscriptions: make(map[rpc.ID]statediff.Subscription), - } - testRoot2 = common.HexToHash("0xTestRoot2") - blockChain.SetParentBlocksToReturn([]*types.Block{parentBlock1, parentBlock2}) - blockChain.SetChainEvents([]core.ChainEvent{event1, event2, event3}) - service.Loop(eventsChannel) - if !reflect.DeepEqual(builder.BlockHash, testBlock2.Hash()) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", builder.BlockHash, testBlock2.Hash()) - } - if !bytes.Equal(builder.OldStateRoot.Bytes(), parentBlock2.Root().Bytes()) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", builder.OldStateRoot, parentBlock2.Root()) - } - if !bytes.Equal(builder.NewStateRoot.Bytes(), testBlock2.Root().Bytes()) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", builder.NewStateRoot, testBlock2.Root()) - } - //look up the parent block from its hash - expectedHashes := []common.Hash{testBlock1.ParentHash(), testBlock2.ParentHash()} - if !reflect.DeepEqual(blockChain.ParentHashesLookedUp, expectedHashes) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", blockChain.ParentHashesLookedUp, expectedHashes) - } -} - -func testErrorInBlockLoop(t *testing.T) { - //second block's parent block can't be found - builder := mocks.Builder{} - blockChain := mocks.BlockChain{} - service := statediff.Service{ - Builder: &builder, - BlockChain: &blockChain, - QuitChan: make(chan bool), - Subscriptions: make(map[rpc.ID]statediff.Subscription), - } - - blockChain.SetParentBlocksToReturn([]*types.Block{parentBlock1, nil}) - blockChain.SetChainEvents([]core.ChainEvent{event1, event2}) - service.Loop(eventsChannel) - - if !bytes.Equal(builder.BlockHash.Bytes(), testBlock1.Hash().Bytes()) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", builder.BlockHash, testBlock1.Hash()) - } - if !bytes.Equal(builder.OldStateRoot.Bytes(), parentBlock1.Root().Bytes()) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", builder.OldStateRoot, parentBlock1.Root()) - } - if !bytes.Equal(builder.NewStateRoot.Bytes(), testBlock1.Root().Bytes()) { - t.Error("Test failure:", t.Name()) - t.Logf("Actual does not equal expected.\nactual:%+v\nexpected: %+v", builder.NewStateRoot, testBlock1.Root()) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/helpers.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/helpers.go deleted file mode 100644 index 5126c655..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/helpers.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package testhelpers - -import ( - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/params" -) - -// MakeChain creates a chain of n blocks starting at and including parent. -// the returned hash chain is ordered head->parent. In addition, every 3rd block -// contains a transaction and every 5th an uncle to allow testing correct block -// reassembly. -func MakeChain(n int, parent *types.Block) ([]common.Hash, map[common.Hash]*types.Block, *core.BlockChain) { - blocks, _ := core.GenerateChain(params.TestChainConfig, parent, ethash.NewFaker(), Testdb, n, testChainGen) - headers := make([]*types.Header, len(blocks)) - for i, block := range blocks { - headers[i] = block.Header() - } - chain, _ := core.NewBlockChain(Testdb, nil, params.TestChainConfig, ethash.NewFaker(), vm.Config{}, nil) - - hashes := make([]common.Hash, n+1) - hashes[len(hashes)-1] = parent.Hash() - blockm := make(map[common.Hash]*types.Block, n+1) - blockm[parent.Hash()] = parent - for i, b := range blocks { - hashes[len(hashes)-i-2] = b.Hash() - blockm[b.Hash()] = b - } - return hashes, blockm, chain -} - -func testChainGen(i int, block *core.BlockGen) { - signer := types.HomesteadSigner{} - switch i { - case 0: - // In block 1, the test bank sends account #1 some ether. - tx, _ := types.SignTx(types.NewTransaction(block.TxNonce(TestBankAddress), Account1Addr, big.NewInt(10000), params.TxGas, nil, nil), signer, TestBankKey) - block.AddTx(tx) - case 1: - // In block 2, the test bank sends some more ether to account #1. - // account1Addr passes it on to account #2. - // account1Addr creates a test contract. - tx1, _ := types.SignTx(types.NewTransaction(block.TxNonce(TestBankAddress), Account1Addr, big.NewInt(1000), params.TxGas, nil, nil), signer, TestBankKey) - nonce := block.TxNonce(Account1Addr) - tx2, _ := types.SignTx(types.NewTransaction(nonce, Account2Addr, big.NewInt(1000), params.TxGas, nil, nil), signer, Account1Key) - nonce++ - tx3, _ := types.SignTx(types.NewContractCreation(nonce, big.NewInt(0), 1000000, big.NewInt(0), ContractCode), signer, Account1Key) - ContractAddr = crypto.CreateAddress(Account1Addr, nonce) //0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476592 - block.AddTx(tx1) - block.AddTx(tx2) - block.AddTx(tx3) - case 2: - // Block 3 is empty but was mined by account #2. - block.SetCoinbase(Account2Addr) - //get function: 60cd2685 - //put function: c16431b9 - data := common.Hex2Bytes("C16431B900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003") - tx, _ := types.SignTx(types.NewTransaction(block.TxNonce(TestBankAddress), ContractAddr, big.NewInt(0), 100000, nil, data), signer, TestBankKey) - block.AddTx(tx) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/blockchain.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/blockchain.go deleted file mode 100644 index cececde6..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/blockchain.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package mocks - -import ( - "errors" - - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// BlockChain is a mock blockchain for testing -type BlockChain struct { - ParentHashesLookedUp []common.Hash - parentBlocksToReturn []*types.Block - callCount int - ChainEvents []core.ChainEvent -} - -// AddToStateDiffProcessedCollection mock method -func (blockChain *BlockChain) AddToStateDiffProcessedCollection(hash common.Hash) {} - -// SetParentBlocksToReturn mock method -func (blockChain *BlockChain) SetParentBlocksToReturn(blocks []*types.Block) { - blockChain.parentBlocksToReturn = blocks -} - -// GetBlockByHash mock method -func (blockChain *BlockChain) GetBlockByHash(hash common.Hash) *types.Block { - blockChain.ParentHashesLookedUp = append(blockChain.ParentHashesLookedUp, hash) - - var parentBlock *types.Block - if len(blockChain.parentBlocksToReturn) > 0 { - parentBlock = blockChain.parentBlocksToReturn[blockChain.callCount] - } - - blockChain.callCount++ - return parentBlock -} - -// SetChainEvents mock method -func (blockChain *BlockChain) SetChainEvents(chainEvents []core.ChainEvent) { - blockChain.ChainEvents = chainEvents -} - -// SubscribeChainEvent mock method -func (blockChain *BlockChain) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription { - subErr := errors.New("Subscription Error") - - var eventCounter int - subscription := event.NewSubscription(func(quit <-chan struct{}) error { - for _, chainEvent := range blockChain.ChainEvents { - if eventCounter > 1 { - time.Sleep(250 * time.Millisecond) - return subErr - } - select { - case ch <- chainEvent: - case <-quit: - return nil - } - eventCounter++ - } - return nil - }) - - return subscription -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/builder.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/builder.go deleted file mode 100644 index e9668629..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/builder.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package mocks - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/statediff" -) - -// Builder is a mock state diff builder -type Builder struct { - OldStateRoot common.Hash - NewStateRoot common.Hash - BlockNumber int64 - BlockHash common.Hash - stateDiff statediff.StateDiff - builderError error -} - -// BuildStateDiff mock method -func (builder *Builder) BuildStateDiff(oldStateRoot, newStateRoot common.Hash, blockNumber int64, blockHash common.Hash) (statediff.StateDiff, error) { - builder.OldStateRoot = oldStateRoot - builder.NewStateRoot = newStateRoot - builder.BlockNumber = blockNumber - builder.BlockHash = blockHash - - return builder.stateDiff, builder.builderError -} - -// SetStateDiffToBuild mock method -func (builder *Builder) SetStateDiffToBuild(stateDiff statediff.StateDiff) { - builder.stateDiff = stateDiff -} - -// SetBuilderError mock method -func (builder *Builder) SetBuilderError(err error) { - builder.builderError = err -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/publisher.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/publisher.go deleted file mode 100644 index 3ea18abf..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/publisher.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package mocks - -import "github.com/ethereum/go-ethereum/statediff" - -// Publisher mock -type Publisher struct { - StateDiff *statediff.StateDiff - publisherError error -} - -// PublishStateDiff mock method -func (publisher *Publisher) PublishStateDiff(sd *statediff.StateDiff) (string, error) { - publisher.StateDiff = sd - return "", publisher.publisherError -} - -// SetPublisherError mock method -func (publisher *Publisher) SetPublisherError(err error) { - publisher.publisherError = err -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service.go deleted file mode 100644 index 5882f7e9..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service.go +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package mocks - -import ( - "bytes" - "errors" - "fmt" - "sync" - - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/statediff" -) - -// MockStateDiffService is a mock state diff service -type MockStateDiffService struct { - sync.Mutex - Builder statediff.Builder - ReturnProtocol []p2p.Protocol - ReturnAPIs []rpc.API - BlockChan chan *types.Block - ParentBlockChan chan *types.Block - QuitChan chan bool - Subscriptions map[rpc.ID]statediff.Subscription -} - -// Protocols mock method -func (sds *MockStateDiffService) Protocols() []p2p.Protocol { - return []p2p.Protocol{} -} - -// APIs mock method -func (sds *MockStateDiffService) APIs() []rpc.API { - return []rpc.API{ - { - Namespace: statediff.APIName, - Version: statediff.APIVersion, - Service: statediff.NewPublicStateDiffAPI(sds), - Public: true, - }, - } -} - -// Loop mock method -func (sds *MockStateDiffService) Loop(chan core.ChainEvent) { - //loop through chain events until no more -HandleBlockChLoop: - for { - select { - case block := <-sds.BlockChan: - currentBlock := block - parentBlock := <-sds.ParentBlockChan - parentHash := parentBlock.Hash() - if parentBlock == nil { - log.Error("Parent block is nil, skipping this block", - "parent block hash", parentHash.String(), - "current block number", currentBlock.Number()) - break HandleBlockChLoop - } - - stateDiff, err := sds.Builder.BuildStateDiff(parentBlock.Root(), currentBlock.Root(), currentBlock.Number().Int64(), currentBlock.Hash()) - if err != nil { - log.Error("Error building statediff", "block number", currentBlock.Number(), "error", err) - } - rlpBuff := new(bytes.Buffer) - currentBlock.EncodeRLP(rlpBuff) - blockRlp := rlpBuff.Bytes() - stateDiffRlp, _ := rlp.EncodeToBytes(stateDiff) - payload := statediff.Payload{ - BlockRlp: blockRlp, - StateDiffRlp: stateDiffRlp, - Err: err, - } - // If we have any websocket subscription listening in, send the data to them - sds.send(payload) - case <-sds.QuitChan: - log.Debug("Quitting the statediff block channel") - sds.close() - return - } - } -} - -// Subscribe mock method -func (sds *MockStateDiffService) Subscribe(id rpc.ID, sub chan<- statediff.Payload, quitChan chan<- bool) { - log.Info("Subscribing to the statediff service") - sds.Lock() - sds.Subscriptions[id] = statediff.Subscription{ - PayloadChan: sub, - QuitChan: quitChan, - } - sds.Unlock() -} - -// Unsubscribe mock method -func (sds *MockStateDiffService) Unsubscribe(id rpc.ID) error { - log.Info("Unsubscribing from the statediff service") - sds.Lock() - _, ok := sds.Subscriptions[id] - if !ok { - return fmt.Errorf("cannot unsubscribe; subscription for id %s does not exist", id) - } - delete(sds.Subscriptions, id) - sds.Unlock() - return nil -} - -func (sds *MockStateDiffService) send(payload statediff.Payload) { - sds.Lock() - for id, sub := range sds.Subscriptions { - select { - case sub.PayloadChan <- payload: - log.Info("sending state diff payload to subscription %s", id) - default: - log.Info("unable to send payload to subscription %s; channel has no receiver", id) - } - } - sds.Unlock() -} - -func (sds *MockStateDiffService) close() { - sds.Lock() - for id, sub := range sds.Subscriptions { - select { - case sub.QuitChan <- true: - delete(sds.Subscriptions, id) - log.Info("closing subscription %s", id) - default: - log.Info("unable to close subscription %s; channel has no receiver", id) - } - } - sds.Unlock() -} - -// Start mock method -func (sds *MockStateDiffService) Start(server *p2p.Server) error { - log.Info("Starting statediff service") - if sds.ParentBlockChan == nil || sds.BlockChan == nil { - return errors.New("mock StateDiffingService requires preconfiguration with a MockParentBlockChan and MockBlockChan") - } - chainEventCh := make(chan core.ChainEvent, 10) - go sds.Loop(chainEventCh) - - return nil -} - -// Stop mock method -func (sds *MockStateDiffService) Stop() error { - log.Info("Stopping statediff service") - close(sds.QuitChan) - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service_test.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service_test.go deleted file mode 100644 index f310eb06..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/mocks/service_test.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package mocks - -import ( - "bytes" - "math/big" - "sync" - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/statediff" - "github.com/ethereum/go-ethereum/statediff/testhelpers" -) - -var block0, block1 *types.Block -var burnLeafKey = testhelpers.AddressToLeafKey(common.HexToAddress("0x0")) -var emptyAccountDiffEventualMap = make(statediff.AccountDiffsMap) -var account1, _ = rlp.EncodeToBytes(state.Account{ - Nonce: uint64(0), - Balance: big.NewInt(10000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"), -}) -var burnAccount1, _ = rlp.EncodeToBytes(state.Account{ - Nonce: uint64(0), - Balance: big.NewInt(2000000000000000000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"), -}) -var bankAccount1, _ = rlp.EncodeToBytes(state.Account{ - Nonce: uint64(1), - Balance: big.NewInt(testhelpers.TestBankFunds.Int64() - 10000), - CodeHash: common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes(), - Root: common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"), -}) - -func TestAPI(t *testing.T) { - _, blockMap, chain := testhelpers.MakeChain(3, testhelpers.Genesis) - defer chain.Stop() - block0Hash := common.HexToHash("0xd1721cfd0b29c36fd7a68f25c128e86413fb666a6e1d68e89b875bd299262661") - block1Hash := common.HexToHash("0xbbe88de60ba33a3f18c0caa37d827bfb70252e19e40a07cd34041696c35ecb1a") - block0 = blockMap[block0Hash] - block1 = blockMap[block1Hash] - blockChan := make(chan *types.Block) - parentBlockChain := make(chan *types.Block) - serviceQuitChan := make(chan bool) - mockService := MockStateDiffService{ - Mutex: sync.Mutex{}, - Builder: statediff.NewBuilder(testhelpers.Testdb, chain), - BlockChan: blockChan, - ParentBlockChan: parentBlockChain, - QuitChan: serviceQuitChan, - Subscriptions: make(map[rpc.ID]statediff.Subscription), - } - mockService.Start(nil) - id := rpc.NewID() - payloadChan := make(chan statediff.Payload) - quitChan := make(chan bool) - mockService.Subscribe(id, payloadChan, quitChan) - blockChan <- block1 - parentBlockChain <- block0 - expectedBlockRlp, _ := rlp.EncodeToBytes(block1) - expectedStateDiff := &statediff.StateDiff{ - BlockNumber: block1.Number().Int64(), - BlockHash: block1.Hash(), - CreatedAccounts: statediff.AccountDiffsMap{ - testhelpers.Account1LeafKey: { - Key: testhelpers.Account1LeafKey.Bytes(), - Value: account1, - Proof: [][]byte{{248, 113, 160, 87, 118, 82, 182, 37, 183, 123, 219, 91, 247, 123, 196, 63, 49, 37, 202, 215, 70, 77, 103, 157, 21, 117, 86, 82, 119, 211, 97, 27, 128, 83, 231, 128, 128, 128, 128, 160, 254, 136, 159, 16, 229, 219, 143, 44, 43, 243, 85, 146, 129, 82, 161, 127, 110, 59, 185, 154, 146, 65, 172, 109, 132, 199, 126, 98, 100, 80, 156, 121, 128, 128, 128, 128, 128, 128, 128, 128, 160, 17, 219, 12, 218, 52, 168, 150, 218, 190, 182, 131, 155, 176, 106, 56, 244, 149, 20, 207, 164, 134, 67, 89, 132, 235, 1, 59, 125, 249, 238, 133, 197, 128, 128}, - {248, 107, 160, 57, 38, 219, 105, 170, 206, 213, 24, 233, 185, 240, 244, 52, 164, 115, 231, 23, 65, 9, 201, 67, 84, 139, 184, 242, 59, 228, 28, 167, 109, 154, 210, 184, 72, 248, 70, 128, 130, 39, 16, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{14, 9, 2, 6, 13, 11, 6, 9, 10, 10, 12, 14, 13, 5, 1, 8, 14, 9, 11, 9, 15, 0, 15, 4, 3, 4, 10, 4, 7, 3, 14, 7, 1, 7, 4, 1, 0, 9, 12, 9, 4, 3, 5, 4, 8, 11, 11, 8, 15, 2, 3, 11, 14, 4, 1, 12, 10, 7, 6, 13, 9, 10, 13, 2, 16}, - Storage: []statediff.StorageDiff{}, - }, - burnLeafKey: { - Key: burnLeafKey.Bytes(), - Value: burnAccount1, - Proof: [][]byte{{248, 113, 160, 87, 118, 82, 182, 37, 183, 123, 219, 91, 247, 123, 196, 63, 49, 37, 202, 215, 70, 77, 103, 157, 21, 117, 86, 82, 119, 211, 97, 27, 128, 83, 231, 128, 128, 128, 128, 160, 254, 136, 159, 16, 229, 219, 143, 44, 43, 243, 85, 146, 129, 82, 161, 127, 110, 59, 185, 154, 146, 65, 172, 109, 132, 199, 126, 98, 100, 80, 156, 121, 128, 128, 128, 128, 128, 128, 128, 128, 160, 17, 219, 12, 218, 52, 168, 150, 218, 190, 182, 131, 155, 176, 106, 56, 244, 149, 20, 207, 164, 134, 67, 89, 132, 235, 1, 59, 125, 249, 238, 133, 197, 128, 128}, - {248, 113, 160, 51, 128, 199, 183, 174, 129, 165, 142, 185, 141, 156, 120, 222, 74, 31, 215, 253, 149, 53, 252, 149, 62, 210, 190, 96, 45, 170, 164, 23, 103, 49, 42, 184, 78, 248, 76, 128, 136, 27, 193, 109, 103, 78, 200, 0, 0, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{5, 3, 8, 0, 12, 7, 11, 7, 10, 14, 8, 1, 10, 5, 8, 14, 11, 9, 8, 13, 9, 12, 7, 8, 13, 14, 4, 10, 1, 15, 13, 7, 15, 13, 9, 5, 3, 5, 15, 12, 9, 5, 3, 14, 13, 2, 11, 14, 6, 0, 2, 13, 10, 10, 10, 4, 1, 7, 6, 7, 3, 1, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - }, - DeletedAccounts: emptyAccountDiffEventualMap, - UpdatedAccounts: statediff.AccountDiffsMap{ - testhelpers.BankLeafKey: { - Key: testhelpers.BankLeafKey.Bytes(), - Value: bankAccount1, - Proof: [][]byte{{248, 113, 160, 87, 118, 82, 182, 37, 183, 123, 219, 91, 247, 123, 196, 63, 49, 37, 202, 215, 70, 77, 103, 157, 21, 117, 86, 82, 119, 211, 97, 27, 128, 83, 231, 128, 128, 128, 128, 160, 254, 136, 159, 16, 229, 219, 143, 44, 43, 243, 85, 146, 129, 82, 161, 127, 110, 59, 185, 154, 146, 65, 172, 109, 132, 199, 126, 98, 100, 80, 156, 121, 128, 128, 128, 128, 128, 128, 128, 128, 160, 17, 219, 12, 218, 52, 168, 150, 218, 190, 182, 131, 155, 176, 106, 56, 244, 149, 20, 207, 164, 134, 67, 89, 132, 235, 1, 59, 125, 249, 238, 133, 197, 128, 128}, - {248, 109, 160, 48, 191, 73, 244, 64, 161, 205, 5, 39, 228, 208, 110, 39, 101, 101, 76, 15, 86, 69, 34, 87, 81, 109, 121, 58, 155, 141, 96, 77, 207, 223, 42, 184, 74, 248, 72, 1, 132, 5, 245, 185, 240, 160, 86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33, 160, 197, 210, 70, 1, 134, 247, 35, 60, 146, 126, 125, 178, 220, 199, 3, 192, 229, 0, 182, 83, 202, 130, 39, 59, 123, 250, 216, 4, 93, 133, 164, 112}}, - Path: []byte{0, 0, 11, 15, 4, 9, 15, 4, 4, 0, 10, 1, 12, 13, 0, 5, 2, 7, 14, 4, 13, 0, 6, 14, 2, 7, 6, 5, 6, 5, 4, 12, 0, 15, 5, 6, 4, 5, 2, 2, 5, 7, 5, 1, 6, 13, 7, 9, 3, 10, 9, 11, 8, 13, 6, 0, 4, 13, 12, 15, 13, 15, 2, 10, 16}, - Storage: []statediff.StorageDiff{}, - }, - }, - } - expectedStateDiffRlp, _ := rlp.EncodeToBytes(expectedStateDiff) - select { - case payload := <-payloadChan: - if !bytes.Equal(payload.BlockRlp, expectedBlockRlp) { - t.Errorf("payload does not have expected block\r\actual: %v\r\nexpected: %v", payload.BlockRlp, expectedBlockRlp) - } - if !bytes.Equal(payload.StateDiffRlp, expectedStateDiffRlp) { - t.Errorf("payload does not have expected state diff\r\actual: %v\r\nexpected: %v", payload.StateDiffRlp, expectedStateDiffRlp) - } - case <-quitChan: - t.Errorf("channel quit before delivering payload") - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/test_data.go b/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/test_data.go deleted file mode 100644 index 17dac847..00000000 --- a/vendor/github.com/ethereum/go-ethereum/statediff/testhelpers/test_data.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package testhelpers - -import ( - "math/big" - "math/rand" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/rlp" - "github.com/ethereum/go-ethereum/statediff" -) - -// AddressToLeafKey hashes an returns an address -func AddressToLeafKey(address common.Address) common.Hash { - return common.BytesToHash(crypto.Keccak256(address[:])) -} - -// Test variables -var ( - BlockNumber = rand.Int63() - BlockHash = "0xfa40fbe2d98d98b3363a778d52f2bcd29d6790b9b3f3cab2b167fd12d3550f73" - CodeHash = common.Hex2Bytes("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") - NewNonceValue = rand.Uint64() - NewBalanceValue = rand.Int63() - ContractRoot = common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - StoragePath = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes() - StorageKey = common.HexToHash("0000000000000000000000000000000000000000000000000000000000000001").Bytes() - StorageValue = common.Hex2Bytes("0x03") - storage = []statediff.StorageDiff{{ - Key: StorageKey, - Value: StorageValue, - Path: StoragePath, - Proof: [][]byte{}, - }} - emptyStorage = make([]statediff.StorageDiff, 0) - address = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476592") - ContractLeafKey = AddressToLeafKey(address) - anotherAddress = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476593") - AnotherContractLeafKey = AddressToLeafKey(anotherAddress) - testAccount = state.Account{ - Nonce: NewNonceValue, - Balance: big.NewInt(NewBalanceValue), - Root: ContractRoot, - CodeHash: CodeHash, - } - valueBytes, _ = rlp.EncodeToBytes(testAccount) - CreatedAccountDiffs = statediff.AccountDiffsMap{ - ContractLeafKey: { - Key: ContractLeafKey.Bytes(), - Value: valueBytes, - Storage: storage, - }, - AnotherContractLeafKey: { - Key: AnotherContractLeafKey.Bytes(), - Value: valueBytes, - Storage: emptyStorage, - }, - } - - UpdatedAccountDiffs = statediff.AccountDiffsMap{ContractLeafKey: { - Key: ContractLeafKey.Bytes(), - Value: valueBytes, - Storage: storage, - }} - - DeletedAccountDiffs = statediff.AccountDiffsMap{ContractLeafKey: { - Key: ContractLeafKey.Bytes(), - Value: valueBytes, - Storage: storage, - }} - - TestStateDiff = statediff.StateDiff{ - BlockNumber: BlockNumber, - BlockHash: common.HexToHash(BlockHash), - CreatedAccounts: CreatedAccountDiffs, - DeletedAccounts: DeletedAccountDiffs, - UpdatedAccounts: UpdatedAccountDiffs, - } - Testdb = rawdb.NewMemoryDatabase() - - TestBankKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - TestBankAddress = crypto.PubkeyToAddress(TestBankKey.PublicKey) //0x71562b71999873DB5b286dF957af199Ec94617F7 - BankLeafKey = AddressToLeafKey(TestBankAddress) - TestBankFunds = big.NewInt(100000000) - Genesis = core.GenesisBlockForTesting(Testdb, TestBankAddress, TestBankFunds) - - Account1Key, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a") - Account2Key, _ = crypto.HexToECDSA("49a7b37aa6f6645917e7b807e9d1c00d4fa71f18343b0d4122a4d2df64dd6fee") - Account1Addr = crypto.PubkeyToAddress(Account1Key.PublicKey) //0x703c4b2bD70c169f5717101CaeE543299Fc946C7 - Account2Addr = crypto.PubkeyToAddress(Account2Key.PublicKey) //0x0D3ab14BBaD3D99F4203bd7a11aCB94882050E7e - Account1LeafKey = AddressToLeafKey(Account1Addr) - Account2LeafKey = AddressToLeafKey(Account2Addr) - ContractCode = common.Hex2Bytes("608060405234801561001057600080fd5b50602060405190810160405280600160ff16815250600090600161003592919061003b565b506100a5565b826064810192821561006f579160200282015b8281111561006e578251829060ff1690559160200191906001019061004e565b5b50905061007c9190610080565b5090565b6100a291905b8082111561009e576000816000905550600101610086565b5090565b90565b610124806100b46000396000f3fe6080604052348015600f57600080fd5b5060043610604f576000357c01000000000000000000000000000000000000000000000000000000009004806360cd2685146054578063c16431b9146093575b600080fd5b607d60048036036020811015606857600080fd5b810190808035906020019092919050505060c8565b6040518082815260200191505060405180910390f35b60c66004803603604081101560a757600080fd5b81019080803590602001909291908035906020019092919050505060e0565b005b6000808260648110151560d757fe5b01549050919050565b8060008360648110151560ef57fe5b0181905550505056fea165627a7a7230582064e918c3140a117bf3aa65865a9b9e83fae21ad1720506e7933b2a9f54bb40260029") - ContractAddr common.Address -) diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/api/client/client_test.go b/vendor/github.com/ethereum/go-ethereum/swarm/api/client/client_test.go deleted file mode 100644 index 9c9bde5d..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/api/client/client_test.go +++ /dev/null @@ -1,597 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package client - -import ( - "bytes" - "io/ioutil" - "os" - "path/filepath" - "reflect" - "sort" - "testing" - - "github.com/ethereum/go-ethereum/swarm/testutil" - - "github.com/ethereum/go-ethereum/swarm/storage" - "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/swarm/api" - swarmhttp "github.com/ethereum/go-ethereum/swarm/api/http" - "github.com/ethereum/go-ethereum/swarm/storage/feed" -) - -func serverFunc(api *api.API) swarmhttp.TestServer { - return swarmhttp.NewServer(api, "") -} - -// TestClientUploadDownloadRaw test uploading and downloading raw data to swarm -func TestClientUploadDownloadRaw(t *testing.T) { - testClientUploadDownloadRaw(false, t) -} - -func TestClientUploadDownloadRawEncrypted(t *testing.T) { - if testutil.RaceEnabled { - t.Skip("flaky with -race on Travis") - // See: https://github.com/ethersphere/go-ethereum/issues/1254 - } - - testClientUploadDownloadRaw(true, t) -} - -func testClientUploadDownloadRaw(toEncrypt bool, t *testing.T) { - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - defer srv.Close() - - client := NewClient(srv.URL) - - // upload some raw data - data := []byte("foo123") - hash, err := client.UploadRaw(bytes.NewReader(data), int64(len(data)), toEncrypt) - if err != nil { - t.Fatal(err) - } - - // check we can download the same data - res, isEncrypted, err := client.DownloadRaw(hash) - if err != nil { - t.Fatal(err) - } - if isEncrypted != toEncrypt { - t.Fatalf("Expected encyption status %v got %v", toEncrypt, isEncrypted) - } - defer res.Close() - gotData, err := ioutil.ReadAll(res) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(gotData, data) { - t.Fatalf("expected downloaded data to be %q, got %q", data, gotData) - } -} - -// TestClientUploadDownloadFiles test uploading and downloading files to swarm -// manifests -func TestClientUploadDownloadFiles(t *testing.T) { - testClientUploadDownloadFiles(false, t) -} - -func TestClientUploadDownloadFilesEncrypted(t *testing.T) { - testClientUploadDownloadFiles(true, t) -} - -func testClientUploadDownloadFiles(toEncrypt bool, t *testing.T) { - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - defer srv.Close() - - client := NewClient(srv.URL) - upload := func(manifest, path string, data []byte) string { - file := &File{ - ReadCloser: ioutil.NopCloser(bytes.NewReader(data)), - ManifestEntry: api.ManifestEntry{ - Path: path, - ContentType: "text/plain", - Size: int64(len(data)), - }, - } - hash, err := client.Upload(file, manifest, toEncrypt) - if err != nil { - t.Fatal(err) - } - return hash - } - checkDownload := func(manifest, path string, expected []byte) { - file, err := client.Download(manifest, path) - if err != nil { - t.Fatal(err) - } - defer file.Close() - if file.Size != int64(len(expected)) { - t.Fatalf("expected downloaded file to be %d bytes, got %d", len(expected), file.Size) - } - if file.ContentType != "text/plain" { - t.Fatalf("expected downloaded file to have type %q, got %q", "text/plain", file.ContentType) - } - data, err := ioutil.ReadAll(file) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(data, expected) { - t.Fatalf("expected downloaded data to be %q, got %q", expected, data) - } - } - - // upload a file to the root of a manifest - rootData := []byte("some-data") - rootHash := upload("", "", rootData) - - // check we can download the root file - checkDownload(rootHash, "", rootData) - - // upload another file to the same manifest - otherData := []byte("some-other-data") - newHash := upload(rootHash, "some/other/path", otherData) - - // check we can download both files from the new manifest - checkDownload(newHash, "", rootData) - checkDownload(newHash, "some/other/path", otherData) - - // replace the root file with different data - newHash = upload(newHash, "", otherData) - - // check both files have the other data - checkDownload(newHash, "", otherData) - checkDownload(newHash, "some/other/path", otherData) -} - -var testDirFiles = []string{ - "file1.txt", - "file2.txt", - "dir1/file3.txt", - "dir1/file4.txt", - "dir2/file5.txt", - "dir2/dir3/file6.txt", - "dir2/dir4/file7.txt", - "dir2/dir4/file8.txt", -} - -func newTestDirectory(t *testing.T) string { - dir, err := ioutil.TempDir("", "swarm-client-test") - if err != nil { - t.Fatal(err) - } - - for _, file := range testDirFiles { - path := filepath.Join(dir, file) - if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil { - os.RemoveAll(dir) - t.Fatalf("error creating dir for %s: %s", path, err) - } - if err := ioutil.WriteFile(path, []byte(file), 0644); err != nil { - os.RemoveAll(dir) - t.Fatalf("error writing file %s: %s", path, err) - } - } - - return dir -} - -// TestClientUploadDownloadDirectory tests uploading and downloading a -// directory of files to a swarm manifest -func TestClientUploadDownloadDirectory(t *testing.T) { - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - defer srv.Close() - - dir := newTestDirectory(t) - defer os.RemoveAll(dir) - - // upload the directory - client := NewClient(srv.URL) - defaultPath := testDirFiles[0] - hash, err := client.UploadDirectory(dir, defaultPath, "", false) - if err != nil { - t.Fatalf("error uploading directory: %s", err) - } - - // check we can download the individual files - checkDownloadFile := func(path string, expected []byte) { - file, err := client.Download(hash, path) - if err != nil { - t.Fatal(err) - } - defer file.Close() - data, err := ioutil.ReadAll(file) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(data, expected) { - t.Fatalf("expected data to be %q, got %q", expected, data) - } - } - for _, file := range testDirFiles { - checkDownloadFile(file, []byte(file)) - } - - // check we can download the default path - checkDownloadFile("", []byte(testDirFiles[0])) - - // check we can download the directory - tmp, err := ioutil.TempDir("", "swarm-client-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmp) - if err := client.DownloadDirectory(hash, "", tmp, ""); err != nil { - t.Fatal(err) - } - for _, file := range testDirFiles { - data, err := ioutil.ReadFile(filepath.Join(tmp, file)) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(data, []byte(file)) { - t.Fatalf("expected data to be %q, got %q", file, data) - } - } -} - -// TestClientFileList tests listing files in a swarm manifest -func TestClientFileList(t *testing.T) { - testClientFileList(false, t) -} - -func TestClientFileListEncrypted(t *testing.T) { - testClientFileList(true, t) -} - -func testClientFileList(toEncrypt bool, t *testing.T) { - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - defer srv.Close() - - dir := newTestDirectory(t) - defer os.RemoveAll(dir) - - client := NewClient(srv.URL) - hash, err := client.UploadDirectory(dir, "", "", toEncrypt) - if err != nil { - t.Fatalf("error uploading directory: %s", err) - } - - ls := func(prefix string) []string { - list, err := client.List(hash, prefix, "") - if err != nil { - t.Fatal(err) - } - paths := make([]string, 0, len(list.CommonPrefixes)+len(list.Entries)) - paths = append(paths, list.CommonPrefixes...) - for _, entry := range list.Entries { - paths = append(paths, entry.Path) - } - sort.Strings(paths) - return paths - } - - tests := map[string][]string{ - "": {"dir1/", "dir2/", "file1.txt", "file2.txt"}, - "file": {"file1.txt", "file2.txt"}, - "file1": {"file1.txt"}, - "file2.txt": {"file2.txt"}, - "file12": {}, - "dir": {"dir1/", "dir2/"}, - "dir1": {"dir1/"}, - "dir1/": {"dir1/file3.txt", "dir1/file4.txt"}, - "dir1/file": {"dir1/file3.txt", "dir1/file4.txt"}, - "dir1/file3.txt": {"dir1/file3.txt"}, - "dir1/file34": {}, - "dir2/": {"dir2/dir3/", "dir2/dir4/", "dir2/file5.txt"}, - "dir2/file": {"dir2/file5.txt"}, - "dir2/dir": {"dir2/dir3/", "dir2/dir4/"}, - "dir2/dir3/": {"dir2/dir3/file6.txt"}, - "dir2/dir4/": {"dir2/dir4/file7.txt", "dir2/dir4/file8.txt"}, - "dir2/dir4/file": {"dir2/dir4/file7.txt", "dir2/dir4/file8.txt"}, - "dir2/dir4/file7.txt": {"dir2/dir4/file7.txt"}, - "dir2/dir4/file78": {}, - } - for prefix, expected := range tests { - actual := ls(prefix) - if !reflect.DeepEqual(actual, expected) { - t.Fatalf("expected prefix %q to return %v, got %v", prefix, expected, actual) - } - } -} - -// TestClientMultipartUpload tests uploading files to swarm using a multipart -// upload -func TestClientMultipartUpload(t *testing.T) { - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - defer srv.Close() - - // define an uploader which uploads testDirFiles with some data - data := []byte("some-data") - uploader := UploaderFunc(func(upload UploadFn) error { - for _, name := range testDirFiles { - file := &File{ - ReadCloser: ioutil.NopCloser(bytes.NewReader(data)), - ManifestEntry: api.ManifestEntry{ - Path: name, - ContentType: "text/plain", - Size: int64(len(data)), - }, - } - if err := upload(file); err != nil { - return err - } - } - return nil - }) - - // upload the files as a multipart upload - client := NewClient(srv.URL) - hash, err := client.MultipartUpload("", uploader) - if err != nil { - t.Fatal(err) - } - - // check we can download the individual files - checkDownloadFile := func(path string) { - file, err := client.Download(hash, path) - if err != nil { - t.Fatal(err) - } - defer file.Close() - gotData, err := ioutil.ReadAll(file) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(gotData, data) { - t.Fatalf("expected data to be %q, got %q", data, gotData) - } - } - for _, file := range testDirFiles { - checkDownloadFile(file) - } -} - -func newTestSigner() (*feed.GenericSigner, error) { - privKey, err := crypto.HexToECDSA("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef") - if err != nil { - return nil, err - } - return feed.NewGenericSigner(privKey), nil -} - -// Test the transparent resolving of feed updates with bzz:// scheme -// -// First upload data to bzz:, and store the Swarm hash to the resulting manifest in a feed update. -// This effectively uses a feed to store a pointer to content rather than the content itself -// Retrieving the update with the Swarm hash should return the manifest pointing directly to the data -// and raw retrieve of that hash should return the data -func TestClientBzzWithFeed(t *testing.T) { - - signer, _ := newTestSigner() - - // Initialize a Swarm test server - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - swarmClient := NewClient(srv.URL) - defer srv.Close() - - // put together some data for our test: - dataBytes := []byte(` - // - // Create some data our manifest will point to. Data that could be very big and wouldn't fit in a feed update. - // So what we are going to do is upload it to Swarm bzz:// and obtain a **manifest hash** pointing to it: - // - // MANIFEST HASH --> DATA - // - // Then, we store that **manifest hash** into a Swarm Feed update. Once we have done this, - // we can use the **feed manifest hash** in bzz:// instead, this way: bzz://feed-manifest-hash. - // - // FEED MANIFEST HASH --> MANIFEST HASH --> DATA - // - // Given that we can update the feed at any time with a new **manifest hash** but the **feed manifest hash** - // stays constant, we have effectively created a fixed address to changing content. (Applause) - // - // FEED MANIFEST HASH (the same) --> MANIFEST HASH(2) --> DATA(2) - // - `) - - // Create a virtual File out of memory containing the above data - f := &File{ - ReadCloser: ioutil.NopCloser(bytes.NewReader(dataBytes)), - ManifestEntry: api.ManifestEntry{ - ContentType: "text/plain", - Mode: 0660, - Size: int64(len(dataBytes)), - }, - } - - // upload data to bzz:// and retrieve the content-addressed manifest hash, hex-encoded. - manifestAddressHex, err := swarmClient.Upload(f, "", false) - if err != nil { - t.Fatalf("Error creating manifest: %s", err) - } - - // convert the hex-encoded manifest hash to a 32-byte slice - manifestAddress := common.FromHex(manifestAddressHex) - - if len(manifestAddress) != storage.AddressLength { - t.Fatalf("Something went wrong. Got a hash of an unexpected length. Expected %d bytes. Got %d", storage.AddressLength, len(manifestAddress)) - } - - // Now create a **feed manifest**. For that, we need a topic: - topic, _ := feed.NewTopic("interesting topic indeed", nil) - - // Build a feed request to update data - request := feed.NewFirstRequest(topic) - - // Put the 32-byte address of the manifest into the feed update - request.SetData(manifestAddress) - - // Sign the update - if err := request.Sign(signer); err != nil { - t.Fatalf("Error signing update: %s", err) - } - - // Publish the update and at the same time request a **feed manifest** to be created - feedManifestAddressHex, err := swarmClient.CreateFeedWithManifest(request) - if err != nil { - t.Fatalf("Error creating feed manifest: %s", err) - } - - // Check we have received the exact **feed manifest** to be expected - // given the topic and user signing the updates: - correctFeedManifestAddrHex := "747c402e5b9dc715a25a4393147512167bab018a007fad7cdcd9adc7fce1ced2" - if feedManifestAddressHex != correctFeedManifestAddrHex { - t.Fatalf("Response feed manifest mismatch, expected '%s', got '%s'", correctFeedManifestAddrHex, feedManifestAddressHex) - } - - // Check we get a not found error when trying to get feed updates with a made-up manifest - _, err = swarmClient.QueryFeed(nil, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb") - if err != ErrNoFeedUpdatesFound { - t.Fatalf("Expected to receive ErrNoFeedUpdatesFound error. Got: %s", err) - } - - // If we query the feed directly we should get **manifest hash** back: - reader, err := swarmClient.QueryFeed(nil, correctFeedManifestAddrHex) - if err != nil { - t.Fatalf("Error retrieving feed updates: %s", err) - } - defer reader.Close() - gotData, err := ioutil.ReadAll(reader) - if err != nil { - t.Fatal(err) - } - - //Check that indeed the **manifest hash** is retrieved - if !bytes.Equal(manifestAddress, gotData) { - t.Fatalf("Expected: %v, got %v", manifestAddress, gotData) - } - - // Now the final test we were looking for: Use bzz:// and that should resolve all manifests - // and return the original data directly: - f, err = swarmClient.Download(feedManifestAddressHex, "") - if err != nil { - t.Fatal(err) - } - gotData, err = ioutil.ReadAll(f) - if err != nil { - t.Fatal(err) - } - - // Check that we get back the original data: - if !bytes.Equal(dataBytes, gotData) { - t.Fatalf("Expected: %v, got %v", manifestAddress, gotData) - } -} - -// TestClientCreateUpdateFeed will check that feeds can be created and updated via the HTTP client. -func TestClientCreateUpdateFeed(t *testing.T) { - - signer, _ := newTestSigner() - - srv := swarmhttp.NewTestSwarmServer(t, serverFunc, nil) - client := NewClient(srv.URL) - defer srv.Close() - - // set raw data for the feed update - databytes := []byte("En un lugar de La Mancha, de cuyo nombre no quiero acordarme...") - - // our feed topic name - topic, _ := feed.NewTopic("El Quijote", nil) - createRequest := feed.NewFirstRequest(topic) - - createRequest.SetData(databytes) - if err := createRequest.Sign(signer); err != nil { - t.Fatalf("Error signing update: %s", err) - } - - feedManifestHash, err := client.CreateFeedWithManifest(createRequest) - if err != nil { - t.Fatal(err) - } - - correctManifestAddrHex := "0e9b645ebc3da167b1d56399adc3276f7a08229301b72a03336be0e7d4b71882" - if feedManifestHash != correctManifestAddrHex { - t.Fatalf("Response feed manifest mismatch, expected '%s', got '%s'", correctManifestAddrHex, feedManifestHash) - } - - reader, err := client.QueryFeed(nil, correctManifestAddrHex) - if err != nil { - t.Fatalf("Error retrieving feed updates: %s", err) - } - defer reader.Close() - gotData, err := ioutil.ReadAll(reader) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(databytes, gotData) { - t.Fatalf("Expected: %v, got %v", databytes, gotData) - } - - // define different data - databytes = []byte("... no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero ...") - - updateRequest, err := client.GetFeedRequest(nil, correctManifestAddrHex) - if err != nil { - t.Fatalf("Error retrieving update request template: %s", err) - } - - updateRequest.SetData(databytes) - if err := updateRequest.Sign(signer); err != nil { - t.Fatalf("Error signing update: %s", err) - } - - if err = client.UpdateFeed(updateRequest); err != nil { - t.Fatalf("Error updating feed: %s", err) - } - - reader, err = client.QueryFeed(nil, correctManifestAddrHex) - if err != nil { - t.Fatalf("Error retrieving feed updates: %s", err) - } - defer reader.Close() - gotData, err = ioutil.ReadAll(reader) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(databytes, gotData) { - t.Fatalf("Expected: %v, got %v", databytes, gotData) - } - - // now try retrieving feed updates without a manifest - - fd := &feed.Feed{ - Topic: topic, - User: signer.Address(), - } - - lookupParams := feed.NewQueryLatest(fd, lookup.NoClue) - reader, err = client.QueryFeed(lookupParams, "") - if err != nil { - t.Fatalf("Error retrieving feed updates: %s", err) - } - defer reader.Close() - gotData, err = ioutil.ReadAll(reader) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(databytes, gotData) { - t.Fatalf("Expected: %v, got %v", databytes, gotData) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/api/http/test_server.go b/vendor/github.com/ethereum/go-ethereum/swarm/api/http/test_server.go deleted file mode 100644 index 97fdf0d8..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/api/http/test_server.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package http - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "testing" - - "github.com/ethereum/go-ethereum/swarm/api" - "github.com/ethereum/go-ethereum/swarm/storage" - "github.com/ethereum/go-ethereum/swarm/storage/feed" -) - -type TestServer interface { - ServeHTTP(http.ResponseWriter, *http.Request) -} - -func NewTestSwarmServer(t *testing.T, serverFunc func(*api.API) TestServer, resolver api.Resolver) *TestSwarmServer { - swarmDir, err := ioutil.TempDir("", "swarm-storage-test") - if err != nil { - t.Fatal(err) - } - - storeParams := storage.NewDefaultLocalStoreParams() - storeParams.DbCapacity = 5000000 - storeParams.CacheCapacity = 5000 - storeParams.Init(swarmDir) - localStore, err := storage.NewLocalStore(storeParams, nil) - if err != nil { - os.RemoveAll(swarmDir) - t.Fatal(err) - } - fileStore := storage.NewFileStore(localStore, storage.NewFileStoreParams()) - // Swarm feeds test setup - feedsDir, err := ioutil.TempDir("", "swarm-feeds-test") - if err != nil { - t.Fatal(err) - } - - feeds, err := feed.NewTestHandler(feedsDir, &feed.HandlerParams{}) - if err != nil { - t.Fatal(err) - } - - swarmApi := api.NewAPI(fileStore, resolver, feeds.Handler, nil) - apiServer := httptest.NewServer(serverFunc(swarmApi)) - - tss := &TestSwarmServer{ - Server: apiServer, - FileStore: fileStore, - dir: swarmDir, - Hasher: storage.MakeHashFunc(storage.DefaultHash)(), - cleanup: func() { - apiServer.Close() - fileStore.Close() - feeds.Close() - os.RemoveAll(swarmDir) - os.RemoveAll(feedsDir) - }, - CurrentTime: 42, - } - feed.TimestampProvider = tss - return tss -} - -type TestSwarmServer struct { - *httptest.Server - Hasher storage.SwarmHash - FileStore *storage.FileStore - dir string - cleanup func() - CurrentTime uint64 -} - -func (t *TestSwarmServer) Close() { - t.cleanup() -} - -func (t *TestSwarmServer) Now() feed.Timestamp { - return feed.Timestamp{Time: t.CurrentTime} -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/network/discovery.go b/vendor/github.com/ethereum/go-ethereum/swarm/network/discovery.go deleted file mode 100644 index 54ecf257..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/network/discovery.go +++ /dev/null @@ -1,220 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package network - -import ( - "context" - "fmt" - "sync" - - "github.com/ethereum/go-ethereum/swarm/pot" -) - -// discovery bzz extension for requesting and relaying node address records - -var sortPeers = noSortPeers - -// Peer wraps BzzPeer and embeds Kademlia overlay connectivity driver -type Peer struct { - *BzzPeer - kad *Kademlia - sentPeers bool // whether we already sent peer closer to this address - mtx sync.RWMutex // - peers map[string]bool // tracks node records sent to the peer - depth uint8 // the proximity order advertised by remote as depth of saturation -} - -// NewPeer constructs a discovery peer -func NewPeer(p *BzzPeer, kad *Kademlia) *Peer { - d := &Peer{ - kad: kad, - BzzPeer: p, - peers: make(map[string]bool), - } - // record remote as seen so we never send a peer its own record - d.seen(p.BzzAddr) - return d -} - -// HandleMsg is the message handler that delegates incoming messages -func (d *Peer) HandleMsg(ctx context.Context, msg interface{}) error { - switch msg := msg.(type) { - - case *peersMsg: - return d.handlePeersMsg(msg) - - case *subPeersMsg: - return d.handleSubPeersMsg(msg) - - default: - return fmt.Errorf("unknown message type: %T", msg) - } -} - -// NotifyDepth sends a message to all connections if depth of saturation is changed -func NotifyDepth(depth uint8, kad *Kademlia) { - f := func(val *Peer, po int) bool { - val.NotifyDepth(depth) - return true - } - kad.EachConn(nil, 255, f) -} - -// NotifyPeer informs all peers about a newly added node -func NotifyPeer(p *BzzAddr, k *Kademlia) { - f := func(val *Peer, po int) bool { - val.NotifyPeer(p, uint8(po)) - return true - } - k.EachConn(p.Address(), 255, f) -} - -// NotifyPeer notifies the remote node (recipient) about a peer if -// the peer's PO is within the recipients advertised depth -// OR the peer is closer to the recipient than self -// unless already notified during the connection session -func (d *Peer) NotifyPeer(a *BzzAddr, po uint8) { - // immediately return - if (po < d.getDepth() && pot.ProxCmp(d.kad.BaseAddr(), d, a) != 1) || d.seen(a) { - return - } - resp := &peersMsg{ - Peers: []*BzzAddr{a}, - } - go d.Send(context.TODO(), resp) -} - -// NotifyDepth sends a subPeers Msg to the receiver notifying them about -// a change in the depth of saturation -func (d *Peer) NotifyDepth(po uint8) { - go d.Send(context.TODO(), &subPeersMsg{Depth: po}) -} - -/* -peersMsg is the message to pass peer information -It is always a response to a peersRequestMsg - -The encoding of a peer address is identical the devp2p base protocol peers -messages: [IP, Port, NodeID], -Note that a node's FileStore address is not the NodeID but the hash of the NodeID. - -TODO: -To mitigate against spurious peers messages, requests should be remembered -and correctness of responses should be checked - -If the proxBin of peers in the response is incorrect the sender should be -disconnected -*/ - -// peersMsg encapsulates an array of peer addresses -// used for communicating about known peers -// relevant for bootstrapping connectivity and updating peersets -type peersMsg struct { - Peers []*BzzAddr -} - -// String pretty prints a peersMsg -func (msg peersMsg) String() string { - return fmt.Sprintf("%T: %v", msg, msg.Peers) -} - -// handlePeersMsg called by the protocol when receiving peerset (for target address) -// list of nodes ([]PeerAddr in peersMsg) is added to the overlay db using the -// Register interface method -func (d *Peer) handlePeersMsg(msg *peersMsg) error { - // register all addresses - if len(msg.Peers) == 0 { - return nil - } - - for _, a := range msg.Peers { - d.seen(a) - NotifyPeer(a, d.kad) - } - return d.kad.Register(msg.Peers...) -} - -// subPeers msg is communicating the depth of the overlay table of a peer -type subPeersMsg struct { - Depth uint8 -} - -// String returns the pretty printer -func (msg subPeersMsg) String() string { - return fmt.Sprintf("%T: request peers > PO%02d. ", msg, msg.Depth) -} - -// handleSubPeersMsg handles incoming subPeersMsg -// this message represents the saturation depth of the remote peer -// saturation depth is the radius within which the peer subscribes to peers -// the first time this is received we send peer info on all -// our connected peers that fall within peers saturation depth -// otherwise this depth is just recorded on the peer, so that -// subsequent new connections are sent iff they fall within the radius -func (d *Peer) handleSubPeersMsg(msg *subPeersMsg) error { - d.setDepth(msg.Depth) - // only send peers after the initial subPeersMsg - if !d.sentPeers { - var peers []*BzzAddr - // iterate connection in ascending order of disctance from the remote address - d.kad.EachConn(d.Over(), 255, func(p *Peer, po int) bool { - // terminate if we are beyond the radius - if uint8(po) < msg.Depth { - return false - } - if !d.seen(p.BzzAddr) { // here just records the peer sent - peers = append(peers, p.BzzAddr) - } - return true - }) - // if useful peers are found, send them over - if len(peers) > 0 { - go d.Send(context.TODO(), &peersMsg{Peers: sortPeers(peers)}) - } - } - d.sentPeers = true - return nil -} - -// seen takes a peer address and checks if it was sent to a peer already -// if not, marks the peer as sent -func (d *Peer) seen(p *BzzAddr) bool { - d.mtx.Lock() - defer d.mtx.Unlock() - k := string(p.Address()) - if d.peers[k] { - return true - } - d.peers[k] = true - return false -} - -func (d *Peer) getDepth() uint8 { - d.mtx.RLock() - defer d.mtx.RUnlock() - return d.depth -} - -func (d *Peer) setDepth(depth uint8) { - d.mtx.Lock() - defer d.mtx.Unlock() - d.depth = depth -} - -func noSortPeers(peers []*BzzAddr) []*BzzAddr { - return peers -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/network/discovery_test.go b/vendor/github.com/ethereum/go-ethereum/swarm/network/discovery_test.go deleted file mode 100644 index 04e1b36f..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/network/discovery_test.go +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package network - -import ( - "crypto/ecdsa" - crand "crypto/rand" - "encoding/binary" - "fmt" - "math/rand" - "net" - "sort" - "testing" - "time" - - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/p2p/protocols" - p2ptest "github.com/ethereum/go-ethereum/p2p/testing" - "github.com/ethereum/go-ethereum/swarm/pot" -) - -/*** - * - * - after connect, that outgoing subpeersmsg is sent - * - */ -func TestSubPeersMsg(t *testing.T) { - params := NewHiveParams() - s, pp, err := newHiveTester(params, 1, nil) - if err != nil { - t.Fatal(err) - } - - node := s.Nodes[0] - raddr := NewAddr(node) - pp.Register(raddr) - - // start the hive and wait for the connection - pp.Start(s.Server) - defer pp.Stop() - - // send subPeersMsg to the peer - err = s.TestExchanges(p2ptest.Exchange{ - Label: "outgoing subPeersMsg", - Expects: []p2ptest.Expect{ - { - Code: 1, - Msg: &subPeersMsg{Depth: 0}, - Peer: node.ID(), - }, - }, - }) - - if err != nil { - t.Fatal(err) - } -} - -const ( - maxPO = 8 // PO of pivot and control; chosen to test enough cases but not run too long - maxPeerPO = 6 // pivot has no peers closer than this to the control peer - maxPeersPerPO = 3 -) - -// TestInitialPeersMsg tests if peersMsg response to incoming subPeersMsg is correct -func TestInitialPeersMsg(t *testing.T) { - for po := 0; po < maxPO; po++ { - for depth := 0; depth < maxPO; depth++ { - t.Run(fmt.Sprintf("PO=%d,advertised depth=%d", po, depth), func(t *testing.T) { - testInitialPeersMsg(t, po, depth) - }) - } - } -} - -// testInitialPeersMsg tests that the correct set of peer info is sent -// to another peer after receiving their subPeersMsg request -func testInitialPeersMsg(t *testing.T, peerPO, peerDepth int) { - // generate random pivot address - prvkey, err := crypto.GenerateKey() - if err != nil { - t.Fatal(err) - } - - defer func(orig func([]*BzzAddr) []*BzzAddr) { - sortPeers = orig - }(sortPeers) - sortPeers = testSortPeers - pivotAddr := pot.NewAddressFromBytes(PrivateKeyToBzzKey(prvkey)) - // generate control peers address at peerPO wrt pivot - peerAddr := pot.RandomAddressAt(pivotAddr, peerPO) - // construct kademlia and hive - to := NewKademlia(pivotAddr[:], NewKadParams()) - hive := NewHive(NewHiveParams(), to, nil) - - // expected addrs in peersMsg response - var expBzzAddrs []*BzzAddr - connect := func(a pot.Address, po int) (addrs []*BzzAddr) { - n := rand.Intn(maxPeersPerPO) - for i := 0; i < n; i++ { - peer, err := newDiscPeer(pot.RandomAddressAt(a, po)) - if err != nil { - t.Fatal(err) - } - hive.On(peer) - addrs = append(addrs, peer.BzzAddr) - } - return addrs - } - register := func(a pot.Address, po int) { - addr := pot.RandomAddressAt(a, po) - hive.Register(&BzzAddr{OAddr: addr[:]}) - } - - // generate connected and just registered peers - for po := maxPeerPO; po >= 0; po-- { - // create a fake connected peer at po from peerAddr - ons := connect(peerAddr, po) - // create a fake registered address at po from peerAddr - register(peerAddr, po) - // we collect expected peer addresses only up till peerPO - if po < peerDepth { - continue - } - expBzzAddrs = append(expBzzAddrs, ons...) - } - - // add extra connections closer to pivot than control - for po := peerPO + 1; po < maxPO; po++ { - ons := connect(pivotAddr, po) - if peerDepth <= peerPO { - expBzzAddrs = append(expBzzAddrs, ons...) - } - } - - // create a special bzzBaseTester in which we can associate `enode.ID` to the `bzzAddr` we created above - s, _, err := newBzzBaseTesterWithAddrs(prvkey, [][]byte{peerAddr[:]}, DiscoverySpec, hive.Run) - if err != nil { - t.Fatal(err) - } - - // peerID to use in the protocol tester testExchange expect/trigger - peerID := s.Nodes[0].ID() - // block until control peer is found among hive peers - found := false - for attempts := 0; attempts < 20; attempts++ { - if _, found = hive.peers[peerID]; found { - break - } - time.Sleep(1 * time.Millisecond) - } - - if !found { - t.Fatal("timeout waiting for peer connection to start") - } - - // pivotDepth is the advertised depth of the pivot node we expect in the outgoing subPeersMsg - pivotDepth := hive.saturation() - // the test exchange is as follows: - // 1. pivot sends to the control peer a `subPeersMsg` advertising its depth (ignored) - // 2. peer sends to pivot a `subPeersMsg` advertising its own depth (arbitrarily chosen) - // 3. pivot responds with `peersMsg` with the set of expected peers - err = s.TestExchanges( - p2ptest.Exchange{ - Label: "outgoing subPeersMsg", - Expects: []p2ptest.Expect{ - { - Code: 1, - Msg: &subPeersMsg{Depth: uint8(pivotDepth)}, - Peer: peerID, - }, - }, - }, - p2ptest.Exchange{ - Label: "trigger subPeersMsg and expect peersMsg", - Triggers: []p2ptest.Trigger{ - { - Code: 1, - Msg: &subPeersMsg{Depth: uint8(peerDepth)}, - Peer: peerID, - }, - }, - Expects: []p2ptest.Expect{ - { - Code: 0, - Msg: &peersMsg{Peers: testSortPeers(expBzzAddrs)}, - Peer: peerID, - Timeout: 100 * time.Millisecond, - }, - }, - }) - - // for values MaxPeerPO < peerPO < MaxPO the pivot has no peers to offer to the control peer - // in this case, no peersMsg will be sent out, and we would run into a time out - if len(expBzzAddrs) == 0 { - if err != nil { - if err.Error() != "exchange #1 \"trigger subPeersMsg and expect peersMsg\": timed out" { - t.Fatalf("expected timeout, got %v", err) - } - return - } - t.Fatalf("expected timeout, got no error") - } - - if err != nil { - t.Fatal(err) - } -} - -func testSortPeers(peers []*BzzAddr) []*BzzAddr { - comp := func(i, j int) bool { - vi := binary.BigEndian.Uint64(peers[i].OAddr) - vj := binary.BigEndian.Uint64(peers[j].OAddr) - return vi < vj - } - sort.Slice(peers, comp) - return peers -} - -// as we are not creating a real node via the protocol, -// we need to create the discovery peer objects for the additional kademlia -// nodes manually -func newDiscPeer(addr pot.Address) (*Peer, error) { - pKey, err := ecdsa.GenerateKey(crypto.S256(), crand.Reader) - if err != nil { - return nil, err - } - pubKey := pKey.PublicKey - nod := enode.NewV4(&pubKey, net.IPv4(127, 0, 0, 1), 0, 0) - bzzAddr := &BzzAddr{OAddr: addr[:], UAddr: []byte(nod.String())} - id := nod.ID() - p2pPeer := p2p.NewPeer(id, id.String(), nil) - return NewPeer(&BzzPeer{ - Peer: protocols.NewPeer(p2pPeer, &dummyMsgRW{}, DiscoverySpec), - BzzAddr: bzzAddr, - }, nil), nil -} - -type dummyMsgRW struct{} - -func (d *dummyMsgRW) ReadMsg() (p2p.Msg, error) { - return p2p.Msg{}, nil -} -func (d *dummyMsgRW) WriteMsg(msg p2p.Msg) error { - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/network/hive_test.go b/vendor/github.com/ethereum/go-ethereum/swarm/network/hive_test.go deleted file mode 100644 index d03db42b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/network/hive_test.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package network - -import ( - "io/ioutil" - "os" - "testing" - "time" - - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/p2p" - p2ptest "github.com/ethereum/go-ethereum/p2p/testing" - "github.com/ethereum/go-ethereum/swarm/state" -) - -func newHiveTester(params *HiveParams, n int, store state.Store) (*bzzTester, *Hive, error) { - // setup - prvkey, err := crypto.GenerateKey() - if err != nil { - return nil, nil, err - } - addr := PrivateKeyToBzzKey(prvkey) - to := NewKademlia(addr, NewKadParams()) - pp := NewHive(params, to, store) // hive - - bt, err := newBzzBaseTester(n, prvkey, DiscoverySpec, pp.Run) - if err != nil { - return nil, nil, err - } - return bt, pp, nil -} - -// TestRegisterAndConnect verifies that the protocol runs successfully -// and that the peer connection exists afterwards -func TestRegisterAndConnect(t *testing.T) { - params := NewHiveParams() - s, pp, err := newHiveTester(params, 1, nil) - if err != nil { - t.Fatal(err) - } - - node := s.Nodes[0] - raddr := NewAddr(node) - pp.Register(raddr) - - // start the hive - err = pp.Start(s.Server) - if err != nil { - t.Fatal(err) - } - defer pp.Stop() - - // both hive connect and disconect check have time delays - // therefore we need to verify that peer is connected - // so that we are sure that the disconnect timeout doesn't complete - // before the hive connect method is run at least once - timeout := time.After(time.Second) - for { - select { - case <-timeout: - t.Fatalf("expected connection") - default: - } - i := 0 - pp.Kademlia.EachConn(nil, 256, func(addr *Peer, po int) bool { - i++ - return true - }) - if i > 0 { - break - } - time.Sleep(time.Millisecond) - } - - // check that the connection actually exists - // the timeout error means no disconnection events - // were received within the a certain timeout - err = s.TestDisconnected(&p2ptest.Disconnect{ - Peer: s.Nodes[0].ID(), - Error: nil, - }) - - if err == nil || err.Error() != "timed out waiting for peers to disconnect" { - t.Fatalf("expected no disconnection event") - } -} - -// TestHiveStatePersistance creates a protocol simulation with n peers for a node -// After protocols complete, the node is shut down and the state is stored. -// Another simulation is created, where 0 nodes are created, but where the stored state is passed -// The test succeeds if all the peers from the stored state are known after the protocols of the -// second simulation have completed -// -// Actual connectivity is not in scope for this test, as the peers loaded from state are not known to -// the simulation; the test only verifies that the peers are known to the node -func TestHiveStatePersistance(t *testing.T) { - dir, err := ioutil.TempDir("", "hive_test_store") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - const peersCount = 5 - - startHive := func(t *testing.T, dir string) (h *Hive) { - store, err := state.NewDBStore(dir) - if err != nil { - t.Fatal(err) - } - - params := NewHiveParams() - params.Discovery = false - - prvkey, err := crypto.GenerateKey() - if err != nil { - t.Fatal(err) - } - - h = NewHive(params, NewKademlia(PrivateKeyToBzzKey(prvkey), NewKadParams()), store) - s := p2ptest.NewProtocolTester(prvkey, 0, func(p *p2p.Peer, rw p2p.MsgReadWriter) error { return nil }) - - if err := h.Start(s.Server); err != nil { - t.Fatal(err) - } - return h - } - - h1 := startHive(t, dir) - peers := make(map[string]bool) - for i := 0; i < peersCount; i++ { - raddr := RandomAddr() - h1.Register(raddr) - peers[raddr.String()] = true - } - if err = h1.Stop(); err != nil { - t.Fatal(err) - } - - // start the hive and check that we know of all expected peers - h2 := startHive(t, dir) - defer func() { - if err = h2.Stop(); err != nil { - t.Fatal(err) - } - }() - - i := 0 - h2.Kademlia.EachAddr(nil, 256, func(addr *BzzAddr, po int) bool { - delete(peers, addr.String()) - i++ - return true - }) - if i != peersCount { - t.Fatalf("invalid number of entries: got %v, want %v", i, peersCount) - } - if len(peers) != 0 { - t.Fatalf("%d peers left over: %v", len(peers), peers) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/network/protocol.go b/vendor/github.com/ethereum/go-ethereum/swarm/network/protocol.go deleted file mode 100644 index ad3f8df8..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/network/protocol.go +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package network - -import ( - "context" - "errors" - "fmt" - "math/rand" - "sync" - "time" - - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/p2p/protocols" - "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/swarm/log" - "github.com/ethereum/go-ethereum/swarm/state" -) - -const ( - DefaultNetworkID = 3 - // timeout for waiting - bzzHandshakeTimeout = 3000 * time.Millisecond -) - -var DefaultTestNetworkID = rand.Uint64() - -// BzzSpec is the spec of the generic swarm handshake -var BzzSpec = &protocols.Spec{ - Name: "bzz", - Version: 8, - MaxMsgSize: 10 * 1024 * 1024, - Messages: []interface{}{ - HandshakeMsg{}, - }, -} - -// DiscoverySpec is the spec for the bzz discovery subprotocols -var DiscoverySpec = &protocols.Spec{ - Name: "hive", - Version: 8, - MaxMsgSize: 10 * 1024 * 1024, - Messages: []interface{}{ - peersMsg{}, - subPeersMsg{}, - }, -} - -// BzzConfig captures the config params used by the hive -type BzzConfig struct { - OverlayAddr []byte // base address of the overlay network - UnderlayAddr []byte // node's underlay address - HiveParams *HiveParams - NetworkID uint64 - LightNode bool - BootnodeMode bool -} - -// Bzz is the swarm protocol bundle -type Bzz struct { - *Hive - NetworkID uint64 - LightNode bool - localAddr *BzzAddr - mtx sync.Mutex - handshakes map[enode.ID]*HandshakeMsg - streamerSpec *protocols.Spec - streamerRun func(*BzzPeer) error -} - -// NewBzz is the swarm protocol constructor -// arguments -// * bzz config -// * overlay driver -// * peer store -func NewBzz(config *BzzConfig, kad *Kademlia, store state.Store, streamerSpec *protocols.Spec, streamerRun func(*BzzPeer) error) *Bzz { - bzz := &Bzz{ - Hive: NewHive(config.HiveParams, kad, store), - NetworkID: config.NetworkID, - LightNode: config.LightNode, - localAddr: &BzzAddr{config.OverlayAddr, config.UnderlayAddr}, - handshakes: make(map[enode.ID]*HandshakeMsg), - streamerRun: streamerRun, - streamerSpec: streamerSpec, - } - - if config.BootnodeMode { - bzz.streamerRun = nil - bzz.streamerSpec = nil - } - - return bzz -} - -// UpdateLocalAddr updates underlayaddress of the running node -func (b *Bzz) UpdateLocalAddr(byteaddr []byte) *BzzAddr { - b.localAddr = b.localAddr.Update(&BzzAddr{ - UAddr: byteaddr, - OAddr: b.localAddr.OAddr, - }) - return b.localAddr -} - -// NodeInfo returns the node's overlay address -func (b *Bzz) NodeInfo() interface{} { - return b.localAddr.Address() -} - -// Protocols return the protocols swarm offers -// Bzz implements the node.Service interface -// * handshake/hive -// * discovery -func (b *Bzz) Protocols() []p2p.Protocol { - protocol := []p2p.Protocol{ - { - Name: BzzSpec.Name, - Version: BzzSpec.Version, - Length: BzzSpec.Length(), - Run: b.runBzz, - NodeInfo: b.NodeInfo, - }, - { - Name: DiscoverySpec.Name, - Version: DiscoverySpec.Version, - Length: DiscoverySpec.Length(), - Run: b.RunProtocol(DiscoverySpec, b.Hive.Run), - NodeInfo: b.Hive.NodeInfo, - PeerInfo: b.Hive.PeerInfo, - }, - } - if b.streamerSpec != nil && b.streamerRun != nil { - protocol = append(protocol, p2p.Protocol{ - Name: b.streamerSpec.Name, - Version: b.streamerSpec.Version, - Length: b.streamerSpec.Length(), - Run: b.RunProtocol(b.streamerSpec, b.streamerRun), - }) - } - return protocol -} - -// APIs returns the APIs offered by bzz -// * hive -// Bzz implements the node.Service interface -func (b *Bzz) APIs() []rpc.API { - return []rpc.API{{ - Namespace: "hive", - Version: "3.0", - Service: b.Hive, - }} -} - -// RunProtocol is a wrapper for swarm subprotocols -// returns a p2p protocol run function that can be assigned to p2p.Protocol#Run field -// arguments: -// * p2p protocol spec -// * run function taking BzzPeer as argument -// this run function is meant to block for the duration of the protocol session -// on return the session is terminated and the peer is disconnected -// the protocol waits for the bzz handshake is negotiated -// the overlay address on the BzzPeer is set from the remote handshake -func (b *Bzz) RunProtocol(spec *protocols.Spec, run func(*BzzPeer) error) func(*p2p.Peer, p2p.MsgReadWriter) error { - return func(p *p2p.Peer, rw p2p.MsgReadWriter) error { - // wait for the bzz protocol to perform the handshake - handshake, _ := b.GetOrCreateHandshake(p.ID()) - defer b.removeHandshake(p.ID()) - select { - case <-handshake.done: - case <-time.After(bzzHandshakeTimeout): - return fmt.Errorf("%08x: %s protocol timeout waiting for handshake on %08x", b.BaseAddr()[:4], spec.Name, p.ID().Bytes()[:4]) - } - if handshake.err != nil { - return fmt.Errorf("%08x: %s protocol closed: %v", b.BaseAddr()[:4], spec.Name, handshake.err) - } - // the handshake has succeeded so construct the BzzPeer and run the protocol - peer := &BzzPeer{ - Peer: protocols.NewPeer(p, rw, spec), - BzzAddr: handshake.peerAddr, - lastActive: time.Now(), - LightNode: handshake.LightNode, - } - - log.Debug("peer created", "addr", handshake.peerAddr.String()) - - return run(peer) - } -} - -// performHandshake implements the negotiation of the bzz handshake -// shared among swarm subprotocols -func (b *Bzz) performHandshake(p *protocols.Peer, handshake *HandshakeMsg) error { - ctx, cancel := context.WithTimeout(context.Background(), bzzHandshakeTimeout) - defer func() { - close(handshake.done) - cancel() - }() - rsh, err := p.Handshake(ctx, handshake, b.checkHandshake) - if err != nil { - handshake.err = err - return err - } - handshake.peerAddr = rsh.(*HandshakeMsg).Addr - handshake.LightNode = rsh.(*HandshakeMsg).LightNode - return nil -} - -// runBzz is the p2p protocol run function for the bzz base protocol -// that negotiates the bzz handshake -func (b *Bzz) runBzz(p *p2p.Peer, rw p2p.MsgReadWriter) error { - handshake, _ := b.GetOrCreateHandshake(p.ID()) - if !<-handshake.init { - return fmt.Errorf("%08x: bzz already started on peer %08x", b.localAddr.Over()[:4], p.ID().Bytes()[:4]) - } - close(handshake.init) - defer b.removeHandshake(p.ID()) - peer := protocols.NewPeer(p, rw, BzzSpec) - err := b.performHandshake(peer, handshake) - if err != nil { - log.Warn(fmt.Sprintf("%08x: handshake failed with remote peer %08x: %v", b.localAddr.Over()[:4], p.ID().Bytes()[:4], err)) - - return err - } - // fail if we get another handshake - msg, err := rw.ReadMsg() - if err != nil { - return err - } - msg.Discard() - return errors.New("received multiple handshakes") -} - -// BzzPeer is the bzz protocol view of a protocols.Peer (itself an extension of p2p.Peer) -// implements the Peer interface and all interfaces Peer implements: Addr, OverlayPeer -type BzzPeer struct { - *protocols.Peer // represents the connection for online peers - *BzzAddr // remote address -> implements Addr interface = protocols.Peer - lastActive time.Time // time is updated whenever mutexes are releasing - LightNode bool -} - -func NewBzzPeer(p *protocols.Peer) *BzzPeer { - return &BzzPeer{Peer: p, BzzAddr: NewAddr(p.Node())} -} - -// ID returns the peer's underlay node identifier. -func (p *BzzPeer) ID() enode.ID { - // This is here to resolve a method tie: both protocols.Peer and BzzAddr are embedded - // into the struct and provide ID(). The protocols.Peer version is faster, ensure it - // gets used. - return p.Peer.ID() -} - -/* - Handshake - -* Version: 8 byte integer version of the protocol -* NetworkID: 8 byte integer network identifier -* Addr: the address advertised by the node including underlay and overlay connecctions -*/ -type HandshakeMsg struct { - Version uint64 - NetworkID uint64 - Addr *BzzAddr - LightNode bool - - // peerAddr is the address received in the peer handshake - peerAddr *BzzAddr - - init chan bool - done chan struct{} - err error -} - -// String pretty prints the handshake -func (bh *HandshakeMsg) String() string { - return fmt.Sprintf("Handshake: Version: %v, NetworkID: %v, Addr: %v, LightNode: %v, peerAddr: %v", bh.Version, bh.NetworkID, bh.Addr, bh.LightNode, bh.peerAddr) -} - -// Perform initiates the handshake and validates the remote handshake message -func (b *Bzz) checkHandshake(hs interface{}) error { - rhs := hs.(*HandshakeMsg) - if rhs.NetworkID != b.NetworkID { - return fmt.Errorf("network id mismatch %d (!= %d)", rhs.NetworkID, b.NetworkID) - } - if rhs.Version != uint64(BzzSpec.Version) { - return fmt.Errorf("version mismatch %d (!= %d)", rhs.Version, BzzSpec.Version) - } - return nil -} - -// removeHandshake removes handshake for peer with peerID -// from the bzz handshake store -func (b *Bzz) removeHandshake(peerID enode.ID) { - b.mtx.Lock() - defer b.mtx.Unlock() - delete(b.handshakes, peerID) -} - -// GetHandshake returns the bzz handhake that the remote peer with peerID sent -func (b *Bzz) GetOrCreateHandshake(peerID enode.ID) (*HandshakeMsg, bool) { - b.mtx.Lock() - defer b.mtx.Unlock() - handshake, found := b.handshakes[peerID] - if !found { - handshake = &HandshakeMsg{ - Version: uint64(BzzSpec.Version), - NetworkID: b.NetworkID, - Addr: b.localAddr, - LightNode: b.LightNode, - init: make(chan bool, 1), - done: make(chan struct{}), - } - // when handhsake is first created for a remote peer - // it is initialised with the init - handshake.init <- true - b.handshakes[peerID] = handshake - } - - return handshake, found -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/network/protocol_test.go b/vendor/github.com/ethereum/go-ethereum/swarm/network/protocol_test.go deleted file mode 100644 index b562a425..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/network/protocol_test.go +++ /dev/null @@ -1,332 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package network - -import ( - "crypto/ecdsa" - "flag" - "fmt" - "os" - "sync" - "testing" - "time" - - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/p2p/enr" - "github.com/ethereum/go-ethereum/p2p/protocols" - p2ptest "github.com/ethereum/go-ethereum/p2p/testing" - "github.com/ethereum/go-ethereum/swarm/pot" -) - -const ( - TestProtocolVersion = 8 -) - -var TestProtocolNetworkID = DefaultTestNetworkID - -var ( - loglevel = flag.Int("loglevel", 2, "verbosity of logs") -) - -func init() { - flag.Parse() - log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(os.Stderr, log.TerminalFormat(true)))) -} - -func HandshakeMsgExchange(lhs, rhs *HandshakeMsg, id enode.ID) []p2ptest.Exchange { - return []p2ptest.Exchange{ - { - Expects: []p2ptest.Expect{ - { - Code: 0, - Msg: lhs, - Peer: id, - }, - }, - }, - { - Triggers: []p2ptest.Trigger{ - { - Code: 0, - Msg: rhs, - Peer: id, - }, - }, - }, - } -} - -func newBzzBaseTester(n int, prvkey *ecdsa.PrivateKey, spec *protocols.Spec, run func(*BzzPeer) error) (*bzzTester, error) { - var addrs [][]byte - for i := 0; i < n; i++ { - addr := pot.RandomAddress() - addrs = append(addrs, addr[:]) - } - pt, _, err := newBzzBaseTesterWithAddrs(prvkey, addrs, spec, run) - return pt, err -} - -func newBzzBaseTesterWithAddrs(prvkey *ecdsa.PrivateKey, addrs [][]byte, spec *protocols.Spec, run func(*BzzPeer) error) (*bzzTester, [][]byte, error) { - n := len(addrs) - cs := make(map[enode.ID]chan bool) - - srv := func(p *BzzPeer) error { - defer func() { - if cs[p.ID()] != nil { - close(cs[p.ID()]) - } - }() - return run(p) - } - mu := &sync.Mutex{} - nodeToAddr := make(map[enode.ID][]byte) - protocol := func(p *p2p.Peer, rw p2p.MsgReadWriter) error { - mu.Lock() - defer mu.Unlock() - nodeToAddr[p.ID()] = addrs[0] - bzzAddr := &BzzAddr{addrs[0], []byte(p.Node().String())} - addrs = addrs[1:] - return srv(&BzzPeer{Peer: protocols.NewPeer(p, rw, spec), BzzAddr: bzzAddr}) - } - - s := p2ptest.NewProtocolTester(prvkey, n, protocol) - var record enr.Record - bzzKey := PrivateKeyToBzzKey(prvkey) - record.Set(NewENRAddrEntry(bzzKey)) - err := enode.SignV4(&record, prvkey) - if err != nil { - return nil, nil, fmt.Errorf("unable to generate ENR: %v", err) - } - nod, err := enode.New(enode.V4ID{}, &record) - if err != nil { - return nil, nil, fmt.Errorf("unable to create enode: %v", err) - } - addr := getENRBzzAddr(nod) - - for _, node := range s.Nodes { - log.Warn("node", "node", node) - cs[node.ID()] = make(chan bool) - } - - var nodeAddrs [][]byte - pt := &bzzTester{ - addr: addr, - ProtocolTester: s, - cs: cs, - } - for _, n := range pt.Nodes { - nodeAddrs = append(nodeAddrs, nodeToAddr[n.ID()]) - } - - return pt, nodeAddrs, nil -} - -type bzzTester struct { - *p2ptest.ProtocolTester - addr *BzzAddr - cs map[enode.ID]chan bool - bzz *Bzz -} - -func newBzz(addr *BzzAddr, lightNode bool) *Bzz { - config := &BzzConfig{ - OverlayAddr: addr.Over(), - UnderlayAddr: addr.Under(), - HiveParams: NewHiveParams(), - NetworkID: DefaultTestNetworkID, - LightNode: lightNode, - } - kad := NewKademlia(addr.OAddr, NewKadParams()) - bzz := NewBzz(config, kad, nil, nil, nil) - return bzz -} - -func newBzzHandshakeTester(n int, prvkey *ecdsa.PrivateKey, lightNode bool) (*bzzTester, error) { - - var record enr.Record - bzzkey := PrivateKeyToBzzKey(prvkey) - record.Set(NewENRAddrEntry(bzzkey)) - record.Set(ENRLightNodeEntry(lightNode)) - err := enode.SignV4(&record, prvkey) - if err != nil { - return nil, err - } - nod, err := enode.New(enode.V4ID{}, &record) - addr := getENRBzzAddr(nod) - - bzz := newBzz(addr, lightNode) - - pt := p2ptest.NewProtocolTester(prvkey, n, bzz.runBzz) - - return &bzzTester{ - addr: addr, - ProtocolTester: pt, - bzz: bzz, - }, nil -} - -// should test handshakes in one exchange? parallelisation -func (s *bzzTester) testHandshake(lhs, rhs *HandshakeMsg, disconnects ...*p2ptest.Disconnect) error { - if err := s.TestExchanges(HandshakeMsgExchange(lhs, rhs, rhs.Addr.ID())...); err != nil { - return err - } - - if len(disconnects) > 0 { - return s.TestDisconnected(disconnects...) - } - - // If we don't expect disconnect, ensure peers remain connected - err := s.TestDisconnected(&p2ptest.Disconnect{ - Peer: s.Nodes[0].ID(), - Error: nil, - }) - - if err == nil { - return fmt.Errorf("Unexpected peer disconnect") - } - - if err.Error() != "timed out waiting for peers to disconnect" { - return err - } - - return nil -} - -func correctBzzHandshake(addr *BzzAddr, lightNode bool) *HandshakeMsg { - return &HandshakeMsg{ - Version: TestProtocolVersion, - NetworkID: TestProtocolNetworkID, - Addr: addr, - LightNode: lightNode, - } -} - -func TestBzzHandshakeNetworkIDMismatch(t *testing.T) { - lightNode := false - prvkey, err := crypto.GenerateKey() - if err != nil { - t.Fatal(err) - } - s, err := newBzzHandshakeTester(1, prvkey, lightNode) - if err != nil { - t.Fatal(err) - } - node := s.Nodes[0] - - err = s.testHandshake( - correctBzzHandshake(s.addr, lightNode), - &HandshakeMsg{Version: TestProtocolVersion, NetworkID: 321, Addr: NewAddr(node)}, - &p2ptest.Disconnect{Peer: node.ID(), Error: fmt.Errorf("Handshake error: Message handler error: (msg code 0): network id mismatch 321 (!= %v)", TestProtocolNetworkID)}, - ) - - if err != nil { - t.Fatal(err) - } -} - -func TestBzzHandshakeVersionMismatch(t *testing.T) { - lightNode := false - prvkey, err := crypto.GenerateKey() - if err != nil { - t.Fatal(err) - } - s, err := newBzzHandshakeTester(1, prvkey, lightNode) - if err != nil { - t.Fatal(err) - } - node := s.Nodes[0] - - err = s.testHandshake( - correctBzzHandshake(s.addr, lightNode), - &HandshakeMsg{Version: 0, NetworkID: TestProtocolNetworkID, Addr: NewAddr(node)}, - &p2ptest.Disconnect{Peer: node.ID(), Error: fmt.Errorf("Handshake error: Message handler error: (msg code 0): version mismatch 0 (!= %d)", TestProtocolVersion)}, - ) - - if err != nil { - t.Fatal(err) - } -} - -func TestBzzHandshakeSuccess(t *testing.T) { - lightNode := false - prvkey, err := crypto.GenerateKey() - if err != nil { - t.Fatal(err) - } - s, err := newBzzHandshakeTester(1, prvkey, lightNode) - if err != nil { - t.Fatal(err) - } - node := s.Nodes[0] - - err = s.testHandshake( - correctBzzHandshake(s.addr, lightNode), - &HandshakeMsg{Version: TestProtocolVersion, NetworkID: TestProtocolNetworkID, Addr: NewAddr(node)}, - ) - - if err != nil { - t.Fatal(err) - } -} - -func TestBzzHandshakeLightNode(t *testing.T) { - var lightNodeTests = []struct { - name string - lightNode bool - }{ - {"on", true}, - {"off", false}, - } - - for _, test := range lightNodeTests { - t.Run(test.name, func(t *testing.T) { - prvkey, err := crypto.GenerateKey() - if err != nil { - t.Fatal(err) - } - pt, err := newBzzHandshakeTester(1, prvkey, false) - if err != nil { - t.Fatal(err) - } - - node := pt.Nodes[0] - addr := NewAddr(node) - - err = pt.testHandshake( - correctBzzHandshake(pt.addr, false), - &HandshakeMsg{Version: TestProtocolVersion, NetworkID: TestProtocolNetworkID, Addr: addr, LightNode: test.lightNode}, - ) - - if err != nil { - t.Fatal(err) - } - - select { - - case <-pt.bzz.handshakes[node.ID()].done: - if pt.bzz.handshakes[node.ID()].LightNode != test.lightNode { - t.Fatalf("peer LightNode flag is %v, should be %v", pt.bzz.handshakes[node.ID()].LightNode, test.lightNode) - } - case <-time.After(10 * time.Second): - t.Fatal("test timeout") - } - }) - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/storage/ldbstore_test.go b/vendor/github.com/ethereum/go-ethereum/swarm/storage/ldbstore_test.go deleted file mode 100644 index 70b0d6bb..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/storage/ldbstore_test.go +++ /dev/null @@ -1,785 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package storage - -import ( - "bytes" - "context" - "encoding/binary" - "fmt" - "io/ioutil" - "os" - "strconv" - "strings" - "testing" - - "github.com/ethereum/go-ethereum/swarm/testutil" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/swarm/chunk" - "github.com/ethereum/go-ethereum/swarm/log" - "github.com/ethereum/go-ethereum/swarm/storage/mock/mem" - ldberrors "github.com/syndtr/goleveldb/leveldb/errors" -) - -type testDbStore struct { - *LDBStore - dir string -} - -func newTestDbStore(mock bool, trusted bool) (*testDbStore, func(), error) { - dir, err := ioutil.TempDir("", "bzz-storage-test") - if err != nil { - return nil, func() {}, err - } - - var db *LDBStore - storeparams := NewDefaultStoreParams() - params := NewLDBStoreParams(storeparams, dir) - params.Po = testPoFunc - - if mock { - globalStore := mem.NewGlobalStore() - addr := common.HexToAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed") - mockStore := globalStore.NewNodeStore(addr) - - db, err = NewMockDbStore(params, mockStore) - } else { - db, err = NewLDBStore(params) - } - - cleanup := func() { - if db != nil { - db.Close() - } - err = os.RemoveAll(dir) - if err != nil { - panic(fmt.Sprintf("db cleanup failed: %v", err)) - } - } - - return &testDbStore{db, dir}, cleanup, err -} - -func testPoFunc(k Address) (ret uint8) { - basekey := make([]byte, 32) - return uint8(Proximity(basekey, k[:])) -} - -func testDbStoreRandom(n int, mock bool, t *testing.T) { - db, cleanup, err := newTestDbStore(mock, true) - defer cleanup() - if err != nil { - t.Fatalf("init dbStore failed: %v", err) - } - testStoreRandom(db, n, t) -} - -func testDbStoreCorrect(n int, mock bool, t *testing.T) { - db, cleanup, err := newTestDbStore(mock, false) - defer cleanup() - if err != nil { - t.Fatalf("init dbStore failed: %v", err) - } - testStoreCorrect(db, n, t) -} - -func TestMarkAccessed(t *testing.T) { - db, cleanup, err := newTestDbStore(false, true) - defer cleanup() - if err != nil { - t.Fatalf("init dbStore failed: %v", err) - } - - h := GenerateRandomChunk(chunk.DefaultSize) - - db.Put(context.Background(), h) - - var index dpaDBIndex - addr := h.Address() - idxk := getIndexKey(addr) - - idata, err := db.db.Get(idxk) - if err != nil { - t.Fatal(err) - } - decodeIndex(idata, &index) - - if index.Access != 0 { - t.Fatalf("Expected the access index to be %d, but it is %d", 0, index.Access) - } - - db.MarkAccessed(addr) - db.writeCurrentBatch() - - idata, err = db.db.Get(idxk) - if err != nil { - t.Fatal(err) - } - decodeIndex(idata, &index) - - if index.Access != 1 { - t.Fatalf("Expected the access index to be %d, but it is %d", 1, index.Access) - } - -} - -func TestDbStoreRandom_1(t *testing.T) { - testDbStoreRandom(1, false, t) -} - -func TestDbStoreCorrect_1(t *testing.T) { - testDbStoreCorrect(1, false, t) -} - -func TestDbStoreRandom_1k(t *testing.T) { - testDbStoreRandom(1000, false, t) -} - -func TestDbStoreCorrect_1k(t *testing.T) { - testDbStoreCorrect(1000, false, t) -} - -func TestMockDbStoreRandom_1(t *testing.T) { - testDbStoreRandom(1, true, t) -} - -func TestMockDbStoreCorrect_1(t *testing.T) { - testDbStoreCorrect(1, true, t) -} - -func TestMockDbStoreRandom_1k(t *testing.T) { - testDbStoreRandom(1000, true, t) -} - -func TestMockDbStoreCorrect_1k(t *testing.T) { - testDbStoreCorrect(1000, true, t) -} - -func testDbStoreNotFound(t *testing.T, mock bool) { - db, cleanup, err := newTestDbStore(mock, false) - defer cleanup() - if err != nil { - t.Fatalf("init dbStore failed: %v", err) - } - - _, err = db.Get(context.TODO(), ZeroAddr) - if err != ErrChunkNotFound { - t.Errorf("Expected ErrChunkNotFound, got %v", err) - } -} - -func TestDbStoreNotFound(t *testing.T) { - testDbStoreNotFound(t, false) -} -func TestMockDbStoreNotFound(t *testing.T) { - testDbStoreNotFound(t, true) -} - -func testIterator(t *testing.T, mock bool) { - var i int - var poc uint - chunkcount := 32 - chunkkeys := NewAddressCollection(chunkcount) - chunkkeysResults := NewAddressCollection(chunkcount) - - db, cleanup, err := newTestDbStore(mock, false) - defer cleanup() - if err != nil { - t.Fatalf("init dbStore failed: %v", err) - } - - chunks := GenerateRandomChunks(chunk.DefaultSize, chunkcount) - - for i = 0; i < len(chunks); i++ { - chunkkeys[i] = chunks[i].Address() - err := db.Put(context.TODO(), chunks[i]) - if err != nil { - t.Fatalf("dbStore.Put failed: %v", err) - } - } - - for i = 0; i < len(chunkkeys); i++ { - log.Trace(fmt.Sprintf("Chunk array pos %d/%d: '%v'", i, chunkcount, chunkkeys[i])) - } - i = 0 - for poc = 0; poc <= 255; poc++ { - err := db.SyncIterator(0, uint64(chunkkeys.Len()), uint8(poc), func(k Address, n uint64) bool { - log.Trace(fmt.Sprintf("Got key %v number %d poc %d", k, n, uint8(poc))) - chunkkeysResults[n] = k - i++ - return true - }) - if err != nil { - t.Fatalf("Iterator call failed: %v", err) - } - } - - for i = 0; i < chunkcount; i++ { - if !bytes.Equal(chunkkeys[i], chunkkeysResults[i]) { - t.Fatalf("Chunk put #%d key '%v' does not match iterator's key '%v'", i, chunkkeys[i], chunkkeysResults[i]) - } - } - -} - -func TestIterator(t *testing.T) { - testIterator(t, false) -} -func TestMockIterator(t *testing.T) { - testIterator(t, true) -} - -func benchmarkDbStorePut(n int, mock bool, b *testing.B) { - db, cleanup, err := newTestDbStore(mock, true) - defer cleanup() - if err != nil { - b.Fatalf("init dbStore failed: %v", err) - } - benchmarkStorePut(db, n, b) -} - -func benchmarkDbStoreGet(n int, mock bool, b *testing.B) { - db, cleanup, err := newTestDbStore(mock, true) - defer cleanup() - if err != nil { - b.Fatalf("init dbStore failed: %v", err) - } - benchmarkStoreGet(db, n, b) -} - -func BenchmarkDbStorePut_500(b *testing.B) { - benchmarkDbStorePut(500, false, b) -} - -func BenchmarkDbStoreGet_500(b *testing.B) { - benchmarkDbStoreGet(500, false, b) -} - -func BenchmarkMockDbStorePut_500(b *testing.B) { - benchmarkDbStorePut(500, true, b) -} - -func BenchmarkMockDbStoreGet_500(b *testing.B) { - benchmarkDbStoreGet(500, true, b) -} - -// TestLDBStoreWithoutCollectGarbage tests that we can put a number of random chunks in the LevelDB store, and -// retrieve them, provided we don't hit the garbage collection -func TestLDBStoreWithoutCollectGarbage(t *testing.T) { - capacity := 50 - n := 10 - - ldb, cleanup := newLDBStore(t) - ldb.setCapacity(uint64(capacity)) - defer cleanup() - - chunks, err := mputRandomChunks(ldb, n) - if err != nil { - t.Fatal(err.Error()) - } - - log.Info("ldbstore", "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt) - - for _, ch := range chunks { - ret, err := ldb.Get(context.TODO(), ch.Address()) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(ret.Data(), ch.Data()) { - t.Fatal("expected to get the same data back, but got smth else") - } - } - - if ldb.entryCnt != uint64(n) { - t.Fatalf("expected entryCnt to be equal to %v, but got %v", n, ldb.entryCnt) - } - - if ldb.accessCnt != uint64(2*n) { - t.Fatalf("expected accessCnt to be equal to %v, but got %v", 2*n, ldb.accessCnt) - } -} - -// TestLDBStoreCollectGarbage tests that we can put more chunks than LevelDB's capacity, and -// retrieve only some of them, because garbage collection must have partially cleared the store -// Also tests that we can delete chunks and that we can trigger garbage collection -func TestLDBStoreCollectGarbage(t *testing.T) { - - // below max ronud - initialCap := defaultMaxGCRound / 100 - cap := initialCap / 2 - t.Run(fmt.Sprintf("A/%d/%d", cap, cap*4), testLDBStoreCollectGarbage) - - if testutil.RaceEnabled { - t.Skip("only the simplest case run as others are flaky with race") - // Note: some tests fail consistently and even locally with `-race` - } - - t.Run(fmt.Sprintf("B/%d/%d", cap, cap*4), testLDBStoreRemoveThenCollectGarbage) - - // at max round - cap = initialCap - t.Run(fmt.Sprintf("A/%d/%d", cap, cap*4), testLDBStoreCollectGarbage) - t.Run(fmt.Sprintf("B/%d/%d", cap, cap*4), testLDBStoreRemoveThenCollectGarbage) - - // more than max around, not on threshold - cap = initialCap + 500 - t.Run(fmt.Sprintf("A/%d/%d", cap, cap*4), testLDBStoreCollectGarbage) - t.Run(fmt.Sprintf("B/%d/%d", cap, cap*4), testLDBStoreRemoveThenCollectGarbage) - -} - -func testLDBStoreCollectGarbage(t *testing.T) { - params := strings.Split(t.Name(), "/") - capacity, err := strconv.Atoi(params[2]) - if err != nil { - t.Fatal(err) - } - n, err := strconv.Atoi(params[3]) - if err != nil { - t.Fatal(err) - } - - ldb, cleanup := newLDBStore(t) - ldb.setCapacity(uint64(capacity)) - defer cleanup() - - // retrieve the gc round target count for the db capacity - ldb.startGC(capacity) - roundTarget := ldb.gc.target - - // split put counts to gc target count threshold, and wait for gc to finish in between - var allChunks []Chunk - remaining := n - for remaining > 0 { - var putCount int - if remaining < roundTarget { - putCount = remaining - } else { - putCount = roundTarget - } - remaining -= putCount - chunks, err := mputRandomChunks(ldb, putCount) - if err != nil { - t.Fatal(err.Error()) - } - allChunks = append(allChunks, chunks...) - ldb.lock.RLock() - log.Debug("ldbstore", "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt, "cap", capacity, "n", n) - ldb.lock.RUnlock() - - waitGc(ldb) - } - - // attempt gets on all put chunks - var missing int - for _, ch := range allChunks { - ret, err := ldb.Get(context.TODO(), ch.Address()) - if err == ErrChunkNotFound || err == ldberrors.ErrNotFound { - missing++ - continue - } - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(ret.Data(), ch.Data()) { - t.Fatal("expected to get the same data back, but got smth else") - } - - log.Trace("got back chunk", "chunk", ret) - } - - // all surplus chunks should be missing - expectMissing := roundTarget + (((n - capacity) / roundTarget) * roundTarget) - if missing != expectMissing { - t.Fatalf("gc failure: expected to miss %v chunks, but only %v are actually missing", expectMissing, missing) - } - - log.Info("ldbstore", "total", n, "missing", missing, "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt) -} - -// TestLDBStoreAddRemove tests that we can put and then delete a given chunk -func TestLDBStoreAddRemove(t *testing.T) { - ldb, cleanup := newLDBStore(t) - ldb.setCapacity(200) - defer cleanup() - - n := 100 - chunks, err := mputRandomChunks(ldb, n) - if err != nil { - t.Fatalf(err.Error()) - } - - for i := 0; i < n; i++ { - // delete all even index chunks - if i%2 == 0 { - ldb.Delete(chunks[i].Address()) - } - } - - log.Info("ldbstore", "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt) - - for i := 0; i < n; i++ { - ret, err := ldb.Get(context.TODO(), chunks[i].Address()) - - if i%2 == 0 { - // expect even chunks to be missing - if err == nil { - t.Fatal("expected chunk to be missing, but got no error") - } - } else { - // expect odd chunks to be retrieved successfully - if err != nil { - t.Fatalf("expected no error, but got %s", err) - } - - if !bytes.Equal(ret.Data(), chunks[i].Data()) { - t.Fatal("expected to get the same data back, but got smth else") - } - } - } -} - -func testLDBStoreRemoveThenCollectGarbage(t *testing.T) { - t.Skip("flaky with -race flag") - - params := strings.Split(t.Name(), "/") - capacity, err := strconv.Atoi(params[2]) - if err != nil { - t.Fatal(err) - } - n, err := strconv.Atoi(params[3]) - if err != nil { - t.Fatal(err) - } - - ldb, cleanup := newLDBStore(t) - defer cleanup() - ldb.setCapacity(uint64(capacity)) - - // put capacity count number of chunks - chunks := make([]Chunk, n) - for i := 0; i < n; i++ { - c := GenerateRandomChunk(chunk.DefaultSize) - chunks[i] = c - log.Trace("generate random chunk", "idx", i, "chunk", c) - } - - for i := 0; i < n; i++ { - err := ldb.Put(context.TODO(), chunks[i]) - if err != nil { - t.Fatal(err) - } - } - - waitGc(ldb) - - // delete all chunks - // (only count the ones actually deleted, the rest will have been gc'd) - deletes := 0 - for i := 0; i < n; i++ { - if ldb.Delete(chunks[i].Address()) == nil { - deletes++ - } - } - - log.Info("ldbstore", "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt) - - if ldb.entryCnt != 0 { - t.Fatalf("ldb.entrCnt expected 0 got %v", ldb.entryCnt) - } - - // the manual deletes will have increased accesscnt, so we need to add this when we verify the current count - expAccessCnt := uint64(n) - if ldb.accessCnt != expAccessCnt { - t.Fatalf("ldb.accessCnt expected %v got %v", expAccessCnt, ldb.accessCnt) - } - - // retrieve the gc round target count for the db capacity - ldb.startGC(capacity) - roundTarget := ldb.gc.target - - remaining := n - var puts int - for remaining > 0 { - var putCount int - if remaining < roundTarget { - putCount = remaining - } else { - putCount = roundTarget - } - remaining -= putCount - for putCount > 0 { - ldb.Put(context.TODO(), chunks[puts]) - ldb.lock.RLock() - log.Debug("ldbstore", "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt, "cap", capacity, "n", n, "puts", puts, "remaining", remaining, "roundtarget", roundTarget) - ldb.lock.RUnlock() - puts++ - putCount-- - } - - waitGc(ldb) - } - - // expect first surplus chunks to be missing, because they have the smallest access value - expectMissing := roundTarget + (((n - capacity) / roundTarget) * roundTarget) - for i := 0; i < expectMissing; i++ { - _, err := ldb.Get(context.TODO(), chunks[i].Address()) - if err == nil { - t.Fatalf("expected surplus chunk %d to be missing, but got no error", i) - } - } - - // expect last chunks to be present, as they have the largest access value - for i := expectMissing; i < n; i++ { - ret, err := ldb.Get(context.TODO(), chunks[i].Address()) - if err != nil { - t.Fatalf("chunk %v: expected no error, but got %s", i, err) - } - if !bytes.Equal(ret.Data(), chunks[i].Data()) { - t.Fatal("expected to get the same data back, but got smth else") - } - } -} - -// TestLDBStoreCollectGarbageAccessUnlikeIndex tests garbage collection where accesscount differs from indexcount -func TestLDBStoreCollectGarbageAccessUnlikeIndex(t *testing.T) { - - capacity := defaultMaxGCRound / 100 * 2 - n := capacity - 1 - - ldb, cleanup := newLDBStore(t) - ldb.setCapacity(uint64(capacity)) - defer cleanup() - - chunks, err := mputRandomChunks(ldb, n) - if err != nil { - t.Fatal(err.Error()) - } - log.Info("ldbstore", "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt) - - // set first added capacity/2 chunks to highest accesscount - for i := 0; i < capacity/2; i++ { - _, err := ldb.Get(context.TODO(), chunks[i].Address()) - if err != nil { - t.Fatalf("fail add chunk #%d - %s: %v", i, chunks[i].Address(), err) - } - } - _, err = mputRandomChunks(ldb, 2) - if err != nil { - t.Fatal(err.Error()) - } - - // wait for garbage collection to kick in on the responsible actor - waitGc(ldb) - - var missing int - for i, ch := range chunks[2 : capacity/2] { - ret, err := ldb.Get(context.TODO(), ch.Address()) - if err == ErrChunkNotFound || err == ldberrors.ErrNotFound { - t.Fatalf("fail find chunk #%d - %s: %v", i, ch.Address(), err) - } - - if !bytes.Equal(ret.Data(), ch.Data()) { - t.Fatal("expected to get the same data back, but got smth else") - } - log.Trace("got back chunk", "chunk", ret) - } - - log.Info("ldbstore", "total", n, "missing", missing, "entrycnt", ldb.entryCnt, "accesscnt", ldb.accessCnt) -} - -func TestCleanIndex(t *testing.T) { - capacity := 5000 - n := 3 - - ldb, cleanup := newLDBStore(t) - ldb.setCapacity(uint64(capacity)) - defer cleanup() - - chunks, err := mputRandomChunks(ldb, n) - if err != nil { - t.Fatal(err) - } - - // remove the data of the first chunk - po := ldb.po(chunks[0].Address()[:]) - dataKey := make([]byte, 10) - dataKey[0] = keyData - dataKey[1] = byte(po) - // dataKey[2:10] = first chunk has storageIdx 0 on [2:10] - if _, err := ldb.db.Get(dataKey); err != nil { - t.Fatal(err) - } - if err := ldb.db.Delete(dataKey); err != nil { - t.Fatal(err) - } - - // remove the gc index row for the first chunk - gcFirstCorrectKey := make([]byte, 9) - gcFirstCorrectKey[0] = keyGCIdx - if err := ldb.db.Delete(gcFirstCorrectKey); err != nil { - t.Fatal(err) - } - - // warp the gc data of the second chunk - // this data should be correct again after the clean - gcSecondCorrectKey := make([]byte, 9) - gcSecondCorrectKey[0] = keyGCIdx - binary.BigEndian.PutUint64(gcSecondCorrectKey[1:], uint64(1)) - gcSecondCorrectVal, err := ldb.db.Get(gcSecondCorrectKey) - if err != nil { - t.Fatal(err) - } - warpedGCVal := make([]byte, len(gcSecondCorrectVal)+1) - copy(warpedGCVal[1:], gcSecondCorrectVal) - if err := ldb.db.Delete(gcSecondCorrectKey); err != nil { - t.Fatal(err) - } - if err := ldb.db.Put(gcSecondCorrectKey, warpedGCVal); err != nil { - t.Fatal(err) - } - - if err := ldb.CleanGCIndex(); err != nil { - t.Fatal(err) - } - - // the index without corresponding data should have been deleted - idxKey := make([]byte, 33) - idxKey[0] = keyIndex - copy(idxKey[1:], chunks[0].Address()) - if _, err := ldb.db.Get(idxKey); err == nil { - t.Fatalf("expected chunk 0 idx to be pruned: %v", idxKey) - } - - // the two other indices should be present - copy(idxKey[1:], chunks[1].Address()) - if _, err := ldb.db.Get(idxKey); err != nil { - t.Fatalf("expected chunk 1 idx to be present: %v", idxKey) - } - - copy(idxKey[1:], chunks[2].Address()) - if _, err := ldb.db.Get(idxKey); err != nil { - t.Fatalf("expected chunk 2 idx to be present: %v", idxKey) - } - - // first gc index should still be gone - if _, err := ldb.db.Get(gcFirstCorrectKey); err == nil { - t.Fatalf("expected gc 0 idx to be pruned: %v", idxKey) - } - - // second gc index should still be fixed - if _, err := ldb.db.Get(gcSecondCorrectKey); err != nil { - t.Fatalf("expected gc 1 idx to be present: %v", idxKey) - } - - // third gc index should be unchanged - binary.BigEndian.PutUint64(gcSecondCorrectKey[1:], uint64(2)) - if _, err := ldb.db.Get(gcSecondCorrectKey); err != nil { - t.Fatalf("expected gc 2 idx to be present: %v", idxKey) - } - - c, err := ldb.db.Get(keyEntryCnt) - if err != nil { - t.Fatalf("expected gc 2 idx to be present: %v", idxKey) - } - - // entrycount should now be one less - entryCount := binary.BigEndian.Uint64(c) - if entryCount != 2 { - t.Fatalf("expected entrycnt to be 2, was %d", c) - } - - // the chunks might accidentally be in the same bin - // if so that bin counter will now be 2 - the highest added index. - // if not, the total of them will be 3 - poBins := []uint8{ldb.po(chunks[1].Address()), ldb.po(chunks[2].Address())} - if poBins[0] == poBins[1] { - poBins = poBins[:1] - } - - var binTotal uint64 - var currentBin [2]byte - currentBin[0] = keyDistanceCnt - if len(poBins) == 1 { - currentBin[1] = poBins[0] - c, err := ldb.db.Get(currentBin[:]) - if err != nil { - t.Fatalf("expected gc 2 idx to be present: %v", idxKey) - } - binCount := binary.BigEndian.Uint64(c) - if binCount != 2 { - t.Fatalf("expected entrycnt to be 2, was %d", binCount) - } - } else { - for _, bin := range poBins { - currentBin[1] = bin - c, err := ldb.db.Get(currentBin[:]) - if err != nil { - t.Fatalf("expected gc 2 idx to be present: %v", idxKey) - } - binCount := binary.BigEndian.Uint64(c) - binTotal += binCount - - } - if binTotal != 3 { - t.Fatalf("expected sum of bin indices to be 3, was %d", binTotal) - } - } - - // check that the iterator quits properly - chunks, err = mputRandomChunks(ldb, 4100) - if err != nil { - t.Fatal(err) - } - - po = ldb.po(chunks[4099].Address()[:]) - dataKey = make([]byte, 10) - dataKey[0] = keyData - dataKey[1] = byte(po) - binary.BigEndian.PutUint64(dataKey[2:], 4099+3) - if _, err := ldb.db.Get(dataKey); err != nil { - t.Fatal(err) - } - if err := ldb.db.Delete(dataKey); err != nil { - t.Fatal(err) - } - - if err := ldb.CleanGCIndex(); err != nil { - t.Fatal(err) - } - - // entrycount should now be one less of added chunks - c, err = ldb.db.Get(keyEntryCnt) - if err != nil { - t.Fatalf("expected gc 2 idx to be present: %v", idxKey) - } - entryCount = binary.BigEndian.Uint64(c) - if entryCount != 4099+2 { - t.Fatalf("expected entrycnt to be 2, was %d", c) - } -} - -// Note: waitGc does not guarantee that we wait 1 GC round; it only -// guarantees that if the GC is running we wait for that run to finish -// ticket: https://github.com/ethersphere/go-ethereum/issues/1151 -func waitGc(ldb *LDBStore) { - <-ldb.gc.runC - ldb.gc.runC <- struct{}{} -} diff --git a/vendor/github.com/ethereum/go-ethereum/swarm/version/version.go b/vendor/github.com/ethereum/go-ethereum/swarm/version/version.go deleted file mode 100644 index 9729342a..00000000 --- a/vendor/github.com/ethereum/go-ethereum/swarm/version/version.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package version - -import ( - "fmt" -) - -const ( - VersionMajor = 0 // Major version component of the current release - VersionMinor = 3 // Minor version component of the current release - VersionPatch = 15 // Patch version component of the current release - VersionMeta = "unstable" // Version metadata to append to the version string -) - -// Version holds the textual version string. -var Version = func() string { - return fmt.Sprintf("%d.%d.%d", VersionMajor, VersionMinor, VersionPatch) -}() - -// VersionWithMeta holds the textual version string including the metadata. -var VersionWithMeta = func() string { - v := Version - if VersionMeta != "" { - v += "-" + VersionMeta - } - return v -}() - -// Git SHA1 commit hash of the release, will be set by main.init() function -var GitCommit string - -// ArchiveVersion holds the textual version string used for Swarm archives. -// e.g. "0.3.0-dea1ce05" for stable releases, or -// "0.3.1-unstable-21c059b6" for unstable releases -func ArchiveVersion(gitCommit string) string { - vsn := Version - if VersionMeta != "stable" { - vsn += "-" + VersionMeta - } - if len(gitCommit) >= 8 { - vsn += "-" + gitCommit[:8] - } - return vsn -} - -func VersionWithCommit(gitCommit string) string { - vsn := Version - if len(gitCommit) >= 8 { - vsn += "-" + gitCommit[:8] - } - return vsn -} diff --git a/vendor/github.com/ethereum/go-ethereum/tests/block_test_util.go b/vendor/github.com/ethereum/go-ethereum/tests/block_test_util.go deleted file mode 100644 index 81dd7b1d..00000000 --- a/vendor/github.com/ethereum/go-ethereum/tests/block_test_util.go +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package tests implements execution of Ethereum JSON tests. -package tests - -import ( - "bytes" - "encoding/hex" - "encoding/json" - "fmt" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/rlp" -) - -// A BlockTest checks handling of entire blocks. -type BlockTest struct { - json btJSON -} - -// UnmarshalJSON implements json.Unmarshaler interface. -func (t *BlockTest) UnmarshalJSON(in []byte) error { - return json.Unmarshal(in, &t.json) -} - -type btJSON struct { - Blocks []btBlock `json:"blocks"` - Genesis btHeader `json:"genesisBlockHeader"` - Pre core.GenesisAlloc `json:"pre"` - Post core.GenesisAlloc `json:"postState"` - BestBlock common.UnprefixedHash `json:"lastblockhash"` - Network string `json:"network"` - SealEngine string `json:"sealEngine"` -} - -type btBlock struct { - BlockHeader *btHeader - Rlp string - UncleHeaders []*btHeader -} - -//go:generate gencodec -type btHeader -field-override btHeaderMarshaling -out gen_btheader.go - -type btHeader struct { - Bloom types.Bloom - Coinbase common.Address - MixHash common.Hash - Nonce types.BlockNonce - Number *big.Int - Hash common.Hash - ParentHash common.Hash - ReceiptTrie common.Hash - StateRoot common.Hash - TransactionsTrie common.Hash - UncleHash common.Hash - ExtraData []byte - Difficulty *big.Int - GasLimit uint64 - GasUsed uint64 - Timestamp uint64 -} - -type btHeaderMarshaling struct { - ExtraData hexutil.Bytes - Number *math.HexOrDecimal256 - Difficulty *math.HexOrDecimal256 - GasLimit math.HexOrDecimal64 - GasUsed math.HexOrDecimal64 - Timestamp math.HexOrDecimal64 -} - -func (t *BlockTest) Run() error { - config, ok := Forks[t.json.Network] - if !ok { - return UnsupportedForkError{t.json.Network} - } - - // import pre accounts & construct test genesis block & state root - db := rawdb.NewMemoryDatabase() - gblock, err := t.genesis(config).Commit(db) - if err != nil { - return err - } - if gblock.Hash() != t.json.Genesis.Hash { - return fmt.Errorf("genesis block hash doesn't match test: computed=%x, test=%x", gblock.Hash().Bytes()[:6], t.json.Genesis.Hash[:6]) - } - if gblock.Root() != t.json.Genesis.StateRoot { - return fmt.Errorf("genesis block state root does not match test: computed=%x, test=%x", gblock.Root().Bytes()[:6], t.json.Genesis.StateRoot[:6]) - } - var engine consensus.Engine - if t.json.SealEngine == "NoProof" { - engine = ethash.NewFaker() - } else { - engine = ethash.NewShared() - } - chain, err := core.NewBlockChain(db, &core.CacheConfig{TrieCleanLimit: 0}, config, engine, vm.Config{}, nil) - if err != nil { - return err - } - defer chain.Stop() - - validBlocks, err := t.insertBlocks(chain) - if err != nil { - return err - } - cmlast := chain.CurrentBlock().Hash() - if common.Hash(t.json.BestBlock) != cmlast { - return fmt.Errorf("last block hash validation mismatch: want: %x, have: %x", t.json.BestBlock, cmlast) - } - newDB, err := chain.State() - if err != nil { - return err - } - if err = t.validatePostState(newDB); err != nil { - return fmt.Errorf("post state validation failed: %v", err) - } - return t.validateImportedHeaders(chain, validBlocks) -} - -func (t *BlockTest) genesis(config *params.ChainConfig) *core.Genesis { - return &core.Genesis{ - Config: config, - Nonce: t.json.Genesis.Nonce.Uint64(), - Timestamp: t.json.Genesis.Timestamp, - ParentHash: t.json.Genesis.ParentHash, - ExtraData: t.json.Genesis.ExtraData, - GasLimit: t.json.Genesis.GasLimit, - GasUsed: t.json.Genesis.GasUsed, - Difficulty: t.json.Genesis.Difficulty, - Mixhash: t.json.Genesis.MixHash, - Coinbase: t.json.Genesis.Coinbase, - Alloc: t.json.Pre, - } -} - -/* See https://github.com/ethereum/tests/wiki/Blockchain-Tests-II - - Whether a block is valid or not is a bit subtle, it's defined by presence of - blockHeader, transactions and uncleHeaders fields. If they are missing, the block is - invalid and we must verify that we do not accept it. - - Since some tests mix valid and invalid blocks we need to check this for every block. - - If a block is invalid it does not necessarily fail the test, if it's invalidness is - expected we are expected to ignore it and continue processing and then validate the - post state. -*/ -func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error) { - validBlocks := make([]btBlock, 0) - // insert the test blocks, which will execute all transactions - for _, b := range t.json.Blocks { - cb, err := b.decode() - if err != nil { - if b.BlockHeader == nil { - continue // OK - block is supposed to be invalid, continue with next block - } else { - return nil, fmt.Errorf("Block RLP decoding failed when expected to succeed: %v", err) - } - } - // RLP decoding worked, try to insert into chain: - blocks := types.Blocks{cb} - i, err := blockchain.InsertChain(blocks) - if err != nil { - if b.BlockHeader == nil { - continue // OK - block is supposed to be invalid, continue with next block - } else { - return nil, fmt.Errorf("Block #%v insertion into chain failed: %v", blocks[i].Number(), err) - } - } - if b.BlockHeader == nil { - return nil, fmt.Errorf("Block insertion should have failed") - } - - // validate RLP decoding by checking all values against test file JSON - if err = validateHeader(b.BlockHeader, cb.Header()); err != nil { - return nil, fmt.Errorf("Deserialised block header validation failed: %v", err) - } - validBlocks = append(validBlocks, b) - } - return validBlocks, nil -} - -func validateHeader(h *btHeader, h2 *types.Header) error { - if h.Bloom != h2.Bloom { - return fmt.Errorf("Bloom: want: %x have: %x", h.Bloom, h2.Bloom) - } - if h.Coinbase != h2.Coinbase { - return fmt.Errorf("Coinbase: want: %x have: %x", h.Coinbase, h2.Coinbase) - } - if h.MixHash != h2.MixDigest { - return fmt.Errorf("MixHash: want: %x have: %x", h.MixHash, h2.MixDigest) - } - if h.Nonce != h2.Nonce { - return fmt.Errorf("Nonce: want: %x have: %x", h.Nonce, h2.Nonce) - } - if h.Number.Cmp(h2.Number) != 0 { - return fmt.Errorf("Number: want: %v have: %v", h.Number, h2.Number) - } - if h.ParentHash != h2.ParentHash { - return fmt.Errorf("Parent hash: want: %x have: %x", h.ParentHash, h2.ParentHash) - } - if h.ReceiptTrie != h2.ReceiptHash { - return fmt.Errorf("Receipt hash: want: %x have: %x", h.ReceiptTrie, h2.ReceiptHash) - } - if h.TransactionsTrie != h2.TxHash { - return fmt.Errorf("Tx hash: want: %x have: %x", h.TransactionsTrie, h2.TxHash) - } - if h.StateRoot != h2.Root { - return fmt.Errorf("State hash: want: %x have: %x", h.StateRoot, h2.Root) - } - if h.UncleHash != h2.UncleHash { - return fmt.Errorf("Uncle hash: want: %x have: %x", h.UncleHash, h2.UncleHash) - } - if !bytes.Equal(h.ExtraData, h2.Extra) { - return fmt.Errorf("Extra data: want: %x have: %x", h.ExtraData, h2.Extra) - } - if h.Difficulty.Cmp(h2.Difficulty) != 0 { - return fmt.Errorf("Difficulty: want: %v have: %v", h.Difficulty, h2.Difficulty) - } - if h.GasLimit != h2.GasLimit { - return fmt.Errorf("GasLimit: want: %d have: %d", h.GasLimit, h2.GasLimit) - } - if h.GasUsed != h2.GasUsed { - return fmt.Errorf("GasUsed: want: %d have: %d", h.GasUsed, h2.GasUsed) - } - if h.Timestamp != h2.Time { - return fmt.Errorf("Timestamp: want: %v have: %v", h.Timestamp, h2.Time) - } - return nil -} - -func (t *BlockTest) validatePostState(statedb *state.StateDB) error { - // validate post state accounts in test file against what we have in state db - for addr, acct := range t.json.Post { - // address is indirectly verified by the other fields, as it's the db key - code2 := statedb.GetCode(addr) - balance2 := statedb.GetBalance(addr) - nonce2 := statedb.GetNonce(addr) - if !bytes.Equal(code2, acct.Code) { - return fmt.Errorf("account code mismatch for addr: %s want: %v have: %s", addr, acct.Code, hex.EncodeToString(code2)) - } - if balance2.Cmp(acct.Balance) != 0 { - return fmt.Errorf("account balance mismatch for addr: %s, want: %d, have: %d", addr, acct.Balance, balance2) - } - if nonce2 != acct.Nonce { - return fmt.Errorf("account nonce mismatch for addr: %s want: %d have: %d", addr, acct.Nonce, nonce2) - } - } - return nil -} - -func (t *BlockTest) validateImportedHeaders(cm *core.BlockChain, validBlocks []btBlock) error { - // to get constant lookup when verifying block headers by hash (some tests have many blocks) - bmap := make(map[common.Hash]btBlock, len(t.json.Blocks)) - for _, b := range validBlocks { - bmap[b.BlockHeader.Hash] = b - } - // iterate over blocks backwards from HEAD and validate imported - // headers vs test file. some tests have reorgs, and we import - // block-by-block, so we can only validate imported headers after - // all blocks have been processed by BlockChain, as they may not - // be part of the longest chain until last block is imported. - for b := cm.CurrentBlock(); b != nil && b.NumberU64() != 0; b = cm.GetBlockByHash(b.Header().ParentHash) { - if err := validateHeader(bmap[b.Hash()].BlockHeader, b.Header()); err != nil { - return fmt.Errorf("Imported block header validation failed: %v", err) - } - } - return nil -} - -func (bb *btBlock) decode() (*types.Block, error) { - data, err := hexutil.Decode(bb.Rlp) - if err != nil { - return nil, err - } - var b types.Block - err = rlp.DecodeBytes(data, &b) - return &b, err -} diff --git a/vendor/github.com/ethereum/go-ethereum/tests/difficulty_test_util.go b/vendor/github.com/ethereum/go-ethereum/tests/difficulty_test_util.go deleted file mode 100644 index fe6e90b0..00000000 --- a/vendor/github.com/ethereum/go-ethereum/tests/difficulty_test_util.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package tests - -import ( - "fmt" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/params" -) - -//go:generate gencodec -type DifficultyTest -field-override difficultyTestMarshaling -out gen_difficultytest.go - -type DifficultyTest struct { - ParentTimestamp uint64 `json:"parentTimestamp"` - ParentDifficulty *big.Int `json:"parentDifficulty"` - UncleHash common.Hash `json:"parentUncles"` - CurrentTimestamp uint64 `json:"currentTimestamp"` - CurrentBlockNumber uint64 `json:"currentBlockNumber"` - CurrentDifficulty *big.Int `json:"currentDifficulty"` -} - -type difficultyTestMarshaling struct { - ParentTimestamp math.HexOrDecimal64 - ParentDifficulty *math.HexOrDecimal256 - CurrentTimestamp math.HexOrDecimal64 - CurrentDifficulty *math.HexOrDecimal256 - UncleHash common.Hash - CurrentBlockNumber math.HexOrDecimal64 -} - -func (test *DifficultyTest) Run(config *params.ChainConfig) error { - parentNumber := big.NewInt(int64(test.CurrentBlockNumber - 1)) - parent := &types.Header{ - Difficulty: test.ParentDifficulty, - Time: test.ParentTimestamp, - Number: parentNumber, - UncleHash: test.UncleHash, - } - - actual := ethash.CalcDifficulty(config, test.CurrentTimestamp, parent) - exp := test.CurrentDifficulty - - if actual.Cmp(exp) != 0 { - return fmt.Errorf("parent[time %v diff %v unclehash:%x] child[time %v number %v] diff %v != expected %v", - test.ParentTimestamp, test.ParentDifficulty, test.UncleHash, - test.CurrentTimestamp, test.CurrentBlockNumber, actual, exp) - } - return nil - -} diff --git a/vendor/github.com/ethereum/go-ethereum/tests/gen_btheader.go b/vendor/github.com/ethereum/go-ethereum/tests/gen_btheader.go deleted file mode 100644 index f2e086a7..00000000 --- a/vendor/github.com/ethereum/go-ethereum/tests/gen_btheader.go +++ /dev/null @@ -1,130 +0,0 @@ -// Code generated by github.com/fjl/gencodec. DO NOT EDIT. - -package tests - -import ( - "encoding/json" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/core/types" -) - -var _ = (*btHeaderMarshaling)(nil) - -// MarshalJSON marshals as JSON. -func (b btHeader) MarshalJSON() ([]byte, error) { - type btHeader struct { - Bloom types.Bloom - Coinbase common.Address - MixHash common.Hash - Nonce types.BlockNonce - Number *math.HexOrDecimal256 - Hash common.Hash - ParentHash common.Hash - ReceiptTrie common.Hash - StateRoot common.Hash - TransactionsTrie common.Hash - UncleHash common.Hash - ExtraData hexutil.Bytes - Difficulty *math.HexOrDecimal256 - GasLimit math.HexOrDecimal64 - GasUsed math.HexOrDecimal64 - Timestamp math.HexOrDecimal64 - } - var enc btHeader - enc.Bloom = b.Bloom - enc.Coinbase = b.Coinbase - enc.MixHash = b.MixHash - enc.Nonce = b.Nonce - enc.Number = (*math.HexOrDecimal256)(b.Number) - enc.Hash = b.Hash - enc.ParentHash = b.ParentHash - enc.ReceiptTrie = b.ReceiptTrie - enc.StateRoot = b.StateRoot - enc.TransactionsTrie = b.TransactionsTrie - enc.UncleHash = b.UncleHash - enc.ExtraData = b.ExtraData - enc.Difficulty = (*math.HexOrDecimal256)(b.Difficulty) - enc.GasLimit = math.HexOrDecimal64(b.GasLimit) - enc.GasUsed = math.HexOrDecimal64(b.GasUsed) - enc.Timestamp = math.HexOrDecimal64(b.Timestamp) - return json.Marshal(&enc) -} - -// UnmarshalJSON unmarshals from JSON. -func (b *btHeader) UnmarshalJSON(input []byte) error { - type btHeader struct { - Bloom *types.Bloom - Coinbase *common.Address - MixHash *common.Hash - Nonce *types.BlockNonce - Number *math.HexOrDecimal256 - Hash *common.Hash - ParentHash *common.Hash - ReceiptTrie *common.Hash - StateRoot *common.Hash - TransactionsTrie *common.Hash - UncleHash *common.Hash - ExtraData *hexutil.Bytes - Difficulty *math.HexOrDecimal256 - GasLimit *math.HexOrDecimal64 - GasUsed *math.HexOrDecimal64 - Timestamp *math.HexOrDecimal64 - } - var dec btHeader - if err := json.Unmarshal(input, &dec); err != nil { - return err - } - if dec.Bloom != nil { - b.Bloom = *dec.Bloom - } - if dec.Coinbase != nil { - b.Coinbase = *dec.Coinbase - } - if dec.MixHash != nil { - b.MixHash = *dec.MixHash - } - if dec.Nonce != nil { - b.Nonce = *dec.Nonce - } - if dec.Number != nil { - b.Number = (*big.Int)(dec.Number) - } - if dec.Hash != nil { - b.Hash = *dec.Hash - } - if dec.ParentHash != nil { - b.ParentHash = *dec.ParentHash - } - if dec.ReceiptTrie != nil { - b.ReceiptTrie = *dec.ReceiptTrie - } - if dec.StateRoot != nil { - b.StateRoot = *dec.StateRoot - } - if dec.TransactionsTrie != nil { - b.TransactionsTrie = *dec.TransactionsTrie - } - if dec.UncleHash != nil { - b.UncleHash = *dec.UncleHash - } - if dec.ExtraData != nil { - b.ExtraData = *dec.ExtraData - } - if dec.Difficulty != nil { - b.Difficulty = (*big.Int)(dec.Difficulty) - } - if dec.GasLimit != nil { - b.GasLimit = uint64(*dec.GasLimit) - } - if dec.GasUsed != nil { - b.GasUsed = uint64(*dec.GasUsed) - } - if dec.Timestamp != nil { - b.Timestamp = uint64(*dec.Timestamp) - } - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/tests/gen_difficultytest.go b/vendor/github.com/ethereum/go-ethereum/tests/gen_difficultytest.go deleted file mode 100644 index cd15ae31..00000000 --- a/vendor/github.com/ethereum/go-ethereum/tests/gen_difficultytest.go +++ /dev/null @@ -1,68 +0,0 @@ -// Code generated by github.com/fjl/gencodec. DO NOT EDIT. - -package tests - -import ( - "encoding/json" - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" -) - -var _ = (*difficultyTestMarshaling)(nil) - -// MarshalJSON marshals as JSON. -func (d DifficultyTest) MarshalJSON() ([]byte, error) { - type DifficultyTest struct { - ParentTimestamp math.HexOrDecimal64 `json:"parentTimestamp"` - ParentDifficulty *math.HexOrDecimal256 `json:"parentDifficulty"` - UncleHash common.Hash `json:"parentUncles"` - CurrentTimestamp math.HexOrDecimal64 `json:"currentTimestamp"` - CurrentBlockNumber math.HexOrDecimal64 `json:"currentBlockNumber"` - CurrentDifficulty *math.HexOrDecimal256 `json:"currentDifficulty"` - } - var enc DifficultyTest - enc.ParentTimestamp = math.HexOrDecimal64(d.ParentTimestamp) - enc.ParentDifficulty = (*math.HexOrDecimal256)(d.ParentDifficulty) - enc.UncleHash = d.UncleHash - enc.CurrentTimestamp = math.HexOrDecimal64(d.CurrentTimestamp) - enc.CurrentBlockNumber = math.HexOrDecimal64(d.CurrentBlockNumber) - enc.CurrentDifficulty = (*math.HexOrDecimal256)(d.CurrentDifficulty) - return json.Marshal(&enc) -} - -// UnmarshalJSON unmarshals from JSON. -func (d *DifficultyTest) UnmarshalJSON(input []byte) error { - type DifficultyTest struct { - ParentTimestamp *math.HexOrDecimal64 `json:"parentTimestamp"` - ParentDifficulty *math.HexOrDecimal256 `json:"parentDifficulty"` - UncleHash *common.Hash `json:"parentUncles"` - CurrentTimestamp *math.HexOrDecimal64 `json:"currentTimestamp"` - CurrentBlockNumber *math.HexOrDecimal64 `json:"currentBlockNumber"` - CurrentDifficulty *math.HexOrDecimal256 `json:"currentDifficulty"` - } - var dec DifficultyTest - if err := json.Unmarshal(input, &dec); err != nil { - return err - } - if dec.ParentTimestamp != nil { - d.ParentTimestamp = uint64(*dec.ParentTimestamp) - } - if dec.ParentDifficulty != nil { - d.ParentDifficulty = (*big.Int)(dec.ParentDifficulty) - } - if dec.UncleHash != nil { - d.UncleHash = *dec.UncleHash - } - if dec.CurrentTimestamp != nil { - d.CurrentTimestamp = uint64(*dec.CurrentTimestamp) - } - if dec.CurrentBlockNumber != nil { - d.CurrentBlockNumber = uint64(*dec.CurrentBlockNumber) - } - if dec.CurrentDifficulty != nil { - d.CurrentDifficulty = (*big.Int)(dec.CurrentDifficulty) - } - return nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/trie/database_test.go b/vendor/github.com/ethereum/go-ethereum/trie/database_test.go deleted file mode 100644 index 81c46950..00000000 --- a/vendor/github.com/ethereum/go-ethereum/trie/database_test.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2019 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package trie - -import ( - "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethdb/memorydb" -) - -// Tests that the trie database returns a missing trie node error if attempting -// to retrieve the meta root. -func TestDatabaseMetarootFetch(t *testing.T) { - db := NewDatabase(memorydb.New()) - if _, err := db.Node(common.Hash{}); err == nil { - t.Fatalf("metaroot retrieval succeeded") - } -} diff --git a/vendor/github.com/ethereum/go-ethereum/trie/encoding_test.go b/vendor/github.com/ethereum/go-ethereum/trie/encoding_test.go deleted file mode 100644 index add89afc..00000000 --- a/vendor/github.com/ethereum/go-ethereum/trie/encoding_test.go +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package trie - -import ( - "bytes" - "testing" -) - -func TestHexCompact(t *testing.T) { - tests := []struct{ hex, compact []byte }{ - // empty keys, with and without terminator. - {hex: []byte{}, compact: []byte{0x00}}, - {hex: []byte{16}, compact: []byte{0x20}}, - // odd length, no terminator - {hex: []byte{1, 2, 3, 4, 5}, compact: []byte{0x11, 0x23, 0x45}}, - // even length, no terminator - {hex: []byte{0, 1, 2, 3, 4, 5}, compact: []byte{0x00, 0x01, 0x23, 0x45}}, - // odd length, terminator - {hex: []byte{15, 1, 12, 11, 8, 16 /*term*/}, compact: []byte{0x3f, 0x1c, 0xb8}}, - // even length, terminator - {hex: []byte{0, 15, 1, 12, 11, 8, 16 /*term*/}, compact: []byte{0x20, 0x0f, 0x1c, 0xb8}}, - } - for _, test := range tests { - if c := hexToCompact(test.hex); !bytes.Equal(c, test.compact) { - t.Errorf("hexToCompact(%x) -> %x, want %x", test.hex, c, test.compact) - } - if h := compactToHex(test.compact); !bytes.Equal(h, test.hex) { - t.Errorf("compactToHex(%x) -> %x, want %x", test.compact, h, test.hex) - } - } -} - -func TestHexKeybytes(t *testing.T) { - tests := []struct{ key, hexIn, hexOut []byte }{ - {key: []byte{}, hexIn: []byte{16}, hexOut: []byte{16}}, - {key: []byte{}, hexIn: []byte{}, hexOut: []byte{16}}, - { - key: []byte{0x12, 0x34, 0x56}, - hexIn: []byte{1, 2, 3, 4, 5, 6, 16}, - hexOut: []byte{1, 2, 3, 4, 5, 6, 16}, - }, - { - key: []byte{0x12, 0x34, 0x5}, - hexIn: []byte{1, 2, 3, 4, 0, 5, 16}, - hexOut: []byte{1, 2, 3, 4, 0, 5, 16}, - }, - { - key: []byte{0x12, 0x34, 0x56}, - hexIn: []byte{1, 2, 3, 4, 5, 6}, - hexOut: []byte{1, 2, 3, 4, 5, 6, 16}, - }, - } - for _, test := range tests { - if h := keybytesToHex(test.key); !bytes.Equal(h, test.hexOut) { - t.Errorf("keybytesToHex(%x) -> %x, want %x", test.key, h, test.hexOut) - } - if k := hexToKeyBytes(test.hexIn); !bytes.Equal(k, test.key) { - t.Errorf("hexToKeyBytes(%x) -> %x, want %x", test.hexIn, k, test.key) - } - } -} - -func BenchmarkHexToCompact(b *testing.B) { - testBytes := []byte{0, 15, 1, 12, 11, 8, 16 /*term*/} - for i := 0; i < b.N; i++ { - hexToCompact(testBytes) - } -} - -func BenchmarkCompactToHex(b *testing.B) { - testBytes := []byte{0, 15, 1, 12, 11, 8, 16 /*term*/} - for i := 0; i < b.N; i++ { - compactToHex(testBytes) - } -} - -func BenchmarkKeybytesToHex(b *testing.B) { - testBytes := []byte{7, 6, 6, 5, 7, 2, 6, 2, 16} - for i := 0; i < b.N; i++ { - keybytesToHex(testBytes) - } -} - -func BenchmarkHexToKeybytes(b *testing.B) { - testBytes := []byte{7, 6, 6, 5, 7, 2, 6, 2, 16} - for i := 0; i < b.N; i++ { - hexToKeyBytes(testBytes) - } -} diff --git a/vendor/github.com/facebookgo/atomicfile/.travis.yml b/vendor/github.com/facebookgo/atomicfile/.travis.yml new file mode 100644 index 00000000..e3632ac5 --- /dev/null +++ b/vendor/github.com/facebookgo/atomicfile/.travis.yml @@ -0,0 +1,20 @@ +language: go + +go: + - 1.4 + +before_install: + - go get -v golang.org/x/tools/cmd/vet + - go get -v golang.org/x/tools/cmd/cover + - go get -v github.com/golang/lint/golint + +install: + - go install -race -v std + - go get -race -t -v ./... + - go install -race -v ./... + +script: + - go vet ./... + - $HOME/gopath/bin/golint . + - go test -cpu=2 -race -v ./... + - go test -cpu=2 -covermode=atomic ./... diff --git a/vendor/github.com/facebookgo/atomicfile/atomicfile.go b/vendor/github.com/facebookgo/atomicfile/atomicfile.go new file mode 100644 index 00000000..9294460d --- /dev/null +++ b/vendor/github.com/facebookgo/atomicfile/atomicfile.go @@ -0,0 +1,59 @@ +// Package atomicfile provides the ability to write a file with an eventual +// rename on Close (using os.Rename). This allows for a file to always be in a +// consistent state and never represent an in-progress write. +// +// NOTE: `os.Rename` may not be atomic on your operating system. +package atomicfile + +import ( + "io/ioutil" + "os" + "path/filepath" +) + +// File behaves like os.File, but does an atomic rename operation at Close. +type File struct { + *os.File + path string +} + +// New creates a new temporary file that will replace the file at the given +// path when Closed. +func New(path string, mode os.FileMode) (*File, error) { + f, err := ioutil.TempFile(filepath.Dir(path), filepath.Base(path)) + if err != nil { + return nil, err + } + if err := os.Chmod(f.Name(), mode); err != nil { + f.Close() + os.Remove(f.Name()) + return nil, err + } + return &File{File: f, path: path}, nil +} + +// Close the file replacing the configured file. +func (f *File) Close() error { + if err := f.File.Close(); err != nil { + os.Remove(f.File.Name()) + return err + } + if err := os.Rename(f.Name(), f.path); err != nil { + return err + } + return nil +} + +// Abort closes the file and removes it instead of replacing the configured +// file. This is useful if after starting to write to the file you decide you +// don't want it anymore. +func (f *File) Abort() error { + if err := f.File.Close(); err != nil { + os.Remove(f.Name()) + return err + } + if err := os.Remove(f.Name()); err != nil { + return err + } + return nil +} diff --git a/vendor/github.com/facebookgo/atomicfile/license b/vendor/github.com/facebookgo/atomicfile/license new file mode 100644 index 00000000..d8c91007 --- /dev/null +++ b/vendor/github.com/facebookgo/atomicfile/license @@ -0,0 +1,30 @@ +BSD License + +For atomicfile software + +Copyright (c) 2015, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/facebookgo/atomicfile/patents b/vendor/github.com/facebookgo/atomicfile/patents new file mode 100644 index 00000000..50637e6f --- /dev/null +++ b/vendor/github.com/facebookgo/atomicfile/patents @@ -0,0 +1,33 @@ +Additional Grant of Patent Rights Version 2 + +"Software" means the atomicfile software distributed by Facebook, Inc. + +Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software +("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable +(subject to the termination provision below) license under any Necessary +Claims, to make, have made, use, sell, offer to sell, import, and otherwise +transfer the Software. For avoidance of doubt, no license is granted under +Facebook’s rights in any patent claims that are infringed by (i) modifications +to the Software made by you or any third party or (ii) the Software in +combination with any software or other technology. + +The license granted hereunder will terminate, automatically and without notice, +if you (or any of your subsidiaries, corporate affiliates or agents) initiate +directly or indirectly, or take a direct financial interest in, any Patent +Assertion: (i) against Facebook or any of its subsidiaries or corporate +affiliates, (ii) against any party if such Patent Assertion arises in whole or +in part from any software, technology, product or service of Facebook or any of +its subsidiaries or corporate affiliates, or (iii) against any party relating +to the Software. Notwithstanding the foregoing, if Facebook or any of its +subsidiaries or corporate affiliates files a lawsuit alleging patent +infringement against you in the first instance, and you respond by filing a +patent infringement counterclaim in that lawsuit against that party that is +unrelated to the Software, the license granted hereunder will not terminate +under section (i) of this paragraph due to such counterclaim. + +A "Necessary Claim" is a claim of a patent owned by Facebook that is +necessarily infringed by the Software standing alone. + +A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, +or contributory infringement or inducement to infringe any patent, including a +cross-claim or counterclaim. diff --git a/vendor/github.com/facebookgo/atomicfile/readme.md b/vendor/github.com/facebookgo/atomicfile/readme.md new file mode 100644 index 00000000..24a2544d --- /dev/null +++ b/vendor/github.com/facebookgo/atomicfile/readme.md @@ -0,0 +1,9 @@ +atomicfile [![Build Status](https://secure.travis-ci.org/facebookgo/atomicfile.png)](https://travis-ci.org/facebookgo/atomicfile) +========== + +Documentation: https://godoc.org/github.com/facebookgo/atomicfile + +NOTE: This package uses `os.Rename`, which may or may not be atomic on your +operating system. It is known to not be atomic on Windows. +https://github.com/natefinch/atomic provides a similar library that is atomic +on Windows as well and may be worth investigating. diff --git a/vendor/github.com/fjl/memsize/bitmap_test.go b/vendor/github.com/fjl/memsize/bitmap_test.go deleted file mode 100644 index 72c669ad..00000000 --- a/vendor/github.com/fjl/memsize/bitmap_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package memsize - -import ( - "fmt" - "math/rand" - "testing" -) - -func TestBitmapBlock(t *testing.T) { - marks := map[uintptr]bool{ - 10: true, - 13: true, - 44: true, - 128: true, - 129: true, - 256: true, - 700: true, - } - var b bmBlock - for i := range marks { - b.mark(i) - } - for i := uintptr(0); i < bmBlockRange; i++ { - if b.isMarked(i) && !marks[i] { - t.Fatalf("wrong mark at %d", i) - } - } - if count := b.count(0, bmBlockRange-1); count != len(marks) { - t.Fatalf("wrong onesCount: got %d, want %d", count, len(marks)) - } -} - -func TestBitmapBlockCount(t *testing.T) { - var b bmBlock - // Mark addresses (90,250) - for i := 90; i < 250; i++ { - b.mark(uintptr(i)) - } - // Check counts. - tests := []struct { - start, end uintptr - want int - }{ - {start: 0, end: 0, want: 0}, - {start: 0, end: 10, want: 0}, - {start: 0, end: 250, want: 160}, - {start: 0, end: 240, want: 150}, - {start: 0, end: bmBlockRange - 1, want: 160}, - {start: 100, end: bmBlockRange - 1, want: 150}, - {start: 100, end: 110, want: 10}, - {start: 100, end: 250, want: 150}, - {start: 100, end: 211, want: 111}, - {start: 111, end: 211, want: 100}, - } - for _, test := range tests { - t.Run(fmt.Sprintf("%d-%d", test.start, test.end), func(t *testing.T) { - if c := b.count(test.start, test.end); c != test.want { - t.Errorf("wrong onesCountRange(%d, %d): got %d, want %d", test.start, test.end, c, test.want) - } - }) - } -} - -func TestBitmapMarkRange(t *testing.T) { - N := 1000 - - // Generate random non-overlapping mark ranges. - var ( - r = rand.New(rand.NewSource(312321312)) - bm = newBitmap() - ranges = make(map[uintptr]uintptr) - addr uintptr - total uintptr // number of bytes marked - ) - for i := 0; i < N; i++ { - addr += uintptr(r.Intn(bmBlockRange)) - len := uintptr(r.Intn(40)) - total += len - ranges[addr] = len - bm.markRange(addr, len) - } - - // Check all marks are set. - for start, len := range ranges { - for i := uintptr(0); i < len; i++ { - if !bm.isMarked(start + i) { - t.Fatalf("not marked at %d", start) - } - } - } - - // Check total number of bits is reported correctly. - if c := bm.countRange(0, addr+ranges[addr]); c != total { - t.Errorf("countRange(0, %d) returned %d, want %d", addr, c, total) - } - - // Probe random addresses. - for i := 0; i < N; i++ { - addr := uintptr(r.Uint64()) - marked := false - for start, len := range ranges { - if addr >= start && addr < start+len { - marked = true - break - } - } - if bm.isMarked(addr) && !marked { - t.Fatalf("extra mark at %d", addr) - } - } -} - -func BenchmarkBitmapMarkRange(b *testing.B) { - var addrs [2048]uintptr - r := rand.New(rand.NewSource(423098209802)) - for i := range addrs { - addrs[i] = uintptr(r.Uint64()) - } - - doit := func(b *testing.B, rlen int) { - bm := newBitmap() - for i := 0; i < b.N; i++ { - addr := addrs[i%len(addrs)] - bm.markRange(addr, uintptr(rlen)) - } - } - for rlen := 1; rlen <= 4096; rlen *= 8 { - b.Run(fmt.Sprintf("%d", rlen), func(b *testing.B) { doit(b, rlen) }) - } -} diff --git a/vendor/github.com/fjl/memsize/memsize_test.go b/vendor/github.com/fjl/memsize/memsize_test.go deleted file mode 100644 index cdf1e857..00000000 --- a/vendor/github.com/fjl/memsize/memsize_test.go +++ /dev/null @@ -1,359 +0,0 @@ -package memsize - -import ( - "testing" - "unsafe" -) - -const ( - sizeofSlice = unsafe.Sizeof([]byte{}) - sizeofMap = unsafe.Sizeof(map[string]string{}) - sizeofInterface = unsafe.Sizeof((interface{})(nil)) - sizeofString = unsafe.Sizeof("") - sizeofWord = unsafe.Sizeof(uintptr(0)) - sizeofChan = unsafe.Sizeof(make(chan struct{})) -) - -type ( - struct16 struct { - x, y uint64 - } - structptr struct { - x uint32 - cld *structptr - } - structuint32ptr struct { - x *uint32 - } - structmultiptr struct { - s1 *structptr - u1 *structuint32ptr - s2 *structptr - u2 *structuint32ptr - s3 *structptr - u3 *structuint32ptr - } - structarrayptr struct { - x *uint64 - a [10]uint64 - } - structiface struct { - s *struct16 - x interface{} - } - struct64array struct{ array64 } - structslice struct{ s []uint32 } - structstring struct{ s string } - structloop struct{ s *structloop } - structptrslice struct{ s *structslice } - array64 [64]byte -) - -func TestTotal(t *testing.T) { - tests := []struct { - name string - v interface{} - want uintptr - }{ - { - name: "struct16", - v: &struct16{}, - want: 16, - }, - { - name: "structptr_nil", - v: &structptr{}, - want: 2 * sizeofWord, - }, - { - name: "structptr", - v: &structptr{cld: &structptr{}}, - want: 2 * 2 * sizeofWord, - }, - { - name: "structptr_loop", - v: func() *structptr { - v := &structptr{} - v.cld = v - return v - }(), - want: 2 * sizeofWord, - }, - { - name: "structmultiptr_loop", - v: func() *structmultiptr { - v1 := &structptr{x: 1} - v2 := &structptr{x: 2, cld: v1} - return &structmultiptr{s1: v1, s2: v1, s3: v2} - }(), - want: 6*sizeofWord /* structmultiptr */ + 2*2*sizeofWord, /* structptr */ - }, - { - name: "structmultiptr_interior", - v: func() *structmultiptr { - v1 := &structptr{x: 1} - v2 := &structptr{x: 2} - return &structmultiptr{ - // s1 is scanned before u1, which has a reference to a field of s1. - s1: v1, - u1: &structuint32ptr{x: &v1.x}, - // This one goes the other way around: u2, which has a reference to a - // field of s3 is scanned before s3. - u2: &structuint32ptr{x: &v2.x}, - s3: v2, - } - }(), - want: 6*sizeofWord /* structmultiptr */ + 2*2*sizeofWord /* structptr */ + 2*sizeofWord, /* structuint32ptr */ - }, - { - name: "struct64array", - v: &struct64array{}, - want: 64, - }, - { - name: "structptrslice", - v: &structptrslice{&structslice{s: []uint32{1, 2, 3}}}, - want: sizeofWord + sizeofSlice + 3*4, - }, - { - name: "array_unadressable", - v: func() *map[[3]uint64]struct{} { - v := map[[3]uint64]struct{}{ - {1, 2, 3}: struct{}{}, - } - return &v - }(), - want: sizeofMap + 3*8, - }, - { - name: "structslice", - v: &structslice{s: []uint32{1, 2, 3}}, - want: sizeofSlice + 3*4, - }, - { - name: "structloop", - v: func() *structloop { - v := new(structloop) - v.s = v - return v - }(), - want: sizeofWord, - }, - { - name: "array64", - v: &array64{}, - want: 64, - }, - { - name: "byteslice", - v: &[]byte{1, 2, 3}, - want: sizeofSlice + 3, - }, - { - name: "slice3_ptrval", - v: &[]*struct16{{}, {}, {}}, - want: sizeofSlice + 3*sizeofWord + 3*16, - }, - { - name: "map3", - v: &map[uint64]uint64{1: 1, 2: 2, 3: 3}, - want: sizeofMap + 3*8 /* keys */ + 3*8, /* values */ - }, - { - name: "map3_ptrval", - v: &map[uint64]*struct16{1: {}, 2: {}, 3: {}}, - want: sizeofMap + 3*8 /* keys */ + 3*sizeofWord /* value pointers */ + 3*16, /* values */ - }, - { - name: "map3_ptrkey", - v: &map[*struct16]uint64{{x: 1}: 1, {x: 2}: 2, {x: 3}: 3}, - want: sizeofMap + 3*sizeofWord /* key pointers */ + 3*16 /* keys */ + 3*8, /* values */ - }, - { - name: "map_interface", - v: &map[interface{}]interface{}{"aa": uint64(1)}, - want: sizeofMap + sizeofInterface + sizeofString + 2 /* key */ + sizeofInterface + 8, /* value */ - }, - { - name: "pointerpointer", - v: func() **uint64 { - i := uint64(0) - p := &i - return &p - }(), - want: sizeofWord + 8, - }, - { - name: "structstring", - v: &structstring{"123"}, - want: sizeofString + 3, - }, - { - name: "slices_samearray", - v: func() *[3][]byte { - backarray := [64]byte{} - return &[3][]byte{ - backarray[16:], - backarray[4:16], - backarray[0:4], - } - }(), - want: 3*sizeofSlice + 64, - }, - { - name: "slices_nil", - v: func() *[2][]byte { - return &[2][]byte{nil, nil} - }(), - want: 2 * sizeofSlice, - }, - { - name: "slices_overlap_total", - v: func() *[2][]byte { - backarray := [32]byte{} - return &[2][]byte{backarray[:], backarray[:]} - }(), - want: 2*sizeofSlice + 32, - }, - { - name: "slices_overlap", - v: func() *[4][]uint16 { - backarray := [32]uint16{} - return &[4][]uint16{ - backarray[2:4], - backarray[10:12], - backarray[20:25], - backarray[:], - } - }(), - want: 4*sizeofSlice + 32*2, - }, - { - name: "slices_overlap_array", - v: func() *struct { - a [32]byte - s [2][]byte - } { - v := struct { - a [32]byte - s [2][]byte - }{} - v.s[0] = v.a[2:4] - v.s[1] = v.a[5:8] - return &v - }(), - want: 32 + 2*sizeofSlice, - }, - { - name: "interface", - v: &[2]interface{}{uint64(0), &struct16{}}, - want: 2*sizeofInterface + 8 + 16, - }, - { - name: "interface_nil", - v: &[2]interface{}{nil, nil}, - want: 2 * sizeofInterface, - }, - { - name: "structiface_slice", - v: &structiface{x: make([]byte, 10)}, - want: sizeofWord + sizeofInterface + sizeofSlice + 10, - }, - { - name: "structiface_pointer", - v: func() *structiface { - s := &struct16{1, 2} - return &structiface{s: s, x: &s.x} - }(), - want: sizeofWord + 16 + sizeofInterface, - }, - { - name: "empty_chan", - v: func() *chan uint64 { - c := make(chan uint64) - return &c - }(), - want: sizeofChan, - }, - { - name: "empty_closed_chan", - v: func() *chan uint64 { - c := make(chan uint64) - close(c) - return &c - }(), - want: sizeofChan, - }, - { - name: "empty_chan_buffer", - v: func() *chan uint64 { - c := make(chan uint64, 10) - return &c - }(), - want: sizeofChan + 10*8, - }, - { - name: "chan_buffer", - v: func() *chan uint64 { - c := make(chan uint64, 10) - for i := 0; i < 8; i++ { - c <- 0 - } - return &c - }(), - want: sizeofChan + 10*8, - }, - { - name: "closed_chan_buffer", - v: func() *chan uint64 { - c := make(chan uint64, 10) - for i := 0; i < 8; i++ { - c <- 0 - } - close(c) - return &c - }(), - want: sizeofChan + 10*8, - }, - { - name: "chan_buffer_escan", - v: func() *chan *struct16 { - c := make(chan *struct16, 10) - for i := 0; i < 8; i++ { - c <- &struct16{x: uint64(i)} - } - return &c - }(), - want: sizeofChan + 10*sizeofWord + 8*16, - }, - { - name: "closed_chan_buffer_escan", - v: func() *chan *struct16 { - c := make(chan *struct16, 10) - for i := 0; i < 8; i++ { - c <- &struct16{x: uint64(i)} - } - close(c) - return &c - }(), - want: sizeofChan + 10*sizeofWord + 8*16, - }, - { - name: "nil_chan", - v: func() *chan *struct16 { - var c chan *struct16 - return &c - }(), - want: sizeofChan, - }, - } - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - size := Scan(test.v) - if size.Total != test.want { - t.Errorf("total=%d, want %d", size.Total, test.want) - t.Logf("\n%s", size.Report()) - } - }) - } -} diff --git a/vendor/github.com/fjl/memsize/memsizedemo/main.go b/vendor/github.com/fjl/memsize/memsizedemo/main.go deleted file mode 100644 index fbcd3a6e..00000000 --- a/vendor/github.com/fjl/memsize/memsizedemo/main.go +++ /dev/null @@ -1,21 +0,0 @@ -package main - -import ( - "log" - "net/http" - - "github.com/fjl/memsize/memsizeui" -) - -func main() { - byteslice := make([]byte, 200) - intslice := make([]int, 100) - - h := new(memsizeui.Handler) - s := &http.Server{Addr: "127.0.0.1:8080", Handler: h} - h.Add("byteslice", &byteslice) - h.Add("intslice", &intslice) - h.Add("server", s) - log.Println("listening on http://127.0.0.1:8080") - s.ListenAndServe() -} diff --git a/vendor/github.com/fjl/memsize/type_test.go b/vendor/github.com/fjl/memsize/type_test.go deleted file mode 100644 index fc674b4c..00000000 --- a/vendor/github.com/fjl/memsize/type_test.go +++ /dev/null @@ -1,78 +0,0 @@ -package memsize - -import ( - "reflect" - "testing" -) - -var typCacheTests = []struct { - val interface{} - want typInfo -}{ - { - val: int(0), - want: typInfo{isPointer: false, needScan: false}, - }, - { - val: make(chan struct{}, 1), - want: typInfo{isPointer: true, needScan: true}, - }, - { - val: struct{ A int }{}, - want: typInfo{isPointer: false, needScan: false}, - }, - { - val: struct{ S string }{}, - want: typInfo{isPointer: false, needScan: true}, - }, - { - val: structloop{}, - want: typInfo{isPointer: false, needScan: true}, - }, - { - val: [3]int{}, - want: typInfo{isPointer: false, needScan: false}, - }, - { - val: [3]struct{ A int }{}, - want: typInfo{isPointer: false, needScan: false}, - }, - { - val: [3]struct{ S string }{}, - want: typInfo{isPointer: false, needScan: true}, - }, - { - val: [3]structloop{}, - want: typInfo{isPointer: false, needScan: true}, - }, - { - val: struct { - a [32]uint8 - s [2][]uint8 - }{}, - want: typInfo{isPointer: false, needScan: true}, - }, -} - -func TestTypeInfo(t *testing.T) { - // This cache is shared among all test cases. It is used - // to verify that putting many different types into the cache - // doesn't change the resulting info. - sharedtc := make(typCache) - - for i := range typCacheTests { - test := typCacheTests[i] - typ := reflect.TypeOf(test.val) - t.Run(typ.String(), func(t *testing.T) { - tc := make(typCache) - info := tc.info(typ) - if !reflect.DeepEqual(info, test.want) { - t.Fatalf("wrong info from local cache:\ngot %+v, want %+v", info, test.want) - } - info = sharedtc.info(typ) - if !reflect.DeepEqual(info, test.want) { - t.Fatalf("wrong info from shared cache:\ngot %+v, want %+v", info, test.want) - } - }) - } -} diff --git a/vendor/github.com/gogo/protobuf/AUTHORS b/vendor/github.com/gogo/protobuf/AUTHORS new file mode 100644 index 00000000..3d97fc7a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/AUTHORS @@ -0,0 +1,15 @@ +# This is the official list of GoGo authors for copyright purposes. +# This file is distinct from the CONTRIBUTORS file, which +# lists people. For example, employees are listed in CONTRIBUTORS, +# but not in AUTHORS, because the employer holds the copyright. + +# Names should be added to this file as one of +# Organization's name +# Individual's name +# Individual's name + +# Please keep the list sorted. + +Sendgrid, Inc +Vastech SA (PTY) LTD +Walter Schulze diff --git a/vendor/github.com/gogo/protobuf/CONTRIBUTORS b/vendor/github.com/gogo/protobuf/CONTRIBUTORS new file mode 100644 index 00000000..1b4f6c20 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/CONTRIBUTORS @@ -0,0 +1,23 @@ +Anton Povarov +Brian Goff +Clayton Coleman +Denis Smirnov +DongYun Kang +Dwayne Schultz +Georg Apitz +Gustav Paul +Johan Brandhorst +John Shahid +John Tuley +Laurent +Patrick Lee +Peter Edge +Roger Johansson +Sam Nguyen +Sergio Arbeo +Stephen J Day +Tamir Duberstein +Todd Eisenberger +Tormod Erevik Lea +Vyacheslav Kim +Walter Schulze diff --git a/vendor/github.com/gogo/protobuf/GOLANG_CONTRIBUTORS b/vendor/github.com/gogo/protobuf/GOLANG_CONTRIBUTORS new file mode 100644 index 00000000..b368efb7 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/GOLANG_CONTRIBUTORS @@ -0,0 +1,5 @@ +The contributors to the Go protobuf repository: + +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/LICENSE b/vendor/github.com/gogo/protobuf/LICENSE new file mode 100644 index 00000000..f57de90d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/LICENSE @@ -0,0 +1,35 @@ +Copyright (c) 2013, The GoGo Authors. All rights reserved. + +Protocol Buffers for Go with Gadgets + +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/github.com/gogo/protobuf/gogoproto/Makefile b/vendor/github.com/gogo/protobuf/gogoproto/Makefile new file mode 100644 index 00000000..0b4659b7 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/Makefile @@ -0,0 +1,37 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:../../../../ --proto_path=../../../../:../protobuf/:. *.proto + +restore: + cp gogo.pb.golden gogo.pb.go + +preserve: + cp gogo.pb.go gogo.pb.golden diff --git a/vendor/github.com/gogo/protobuf/gogoproto/doc.go b/vendor/github.com/gogo/protobuf/gogoproto/doc.go new file mode 100644 index 00000000..081c86fa --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/doc.go @@ -0,0 +1,169 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package gogoproto provides extensions for protocol buffers to achieve: + + - fast marshalling and unmarshalling. + - peace of mind by optionally generating test and benchmark code. + - more canonical Go structures. + - less typing by optionally generating extra helper code. + - goprotobuf compatibility + +More Canonical Go Structures + +A lot of time working with a goprotobuf struct will lead you to a place where you create another struct that is easier to work with and then have a function to copy the values between the two structs. +You might also find that basic structs that started their life as part of an API need to be sent over the wire. With gob, you could just send it. With goprotobuf, you need to make a parallel struct. +Gogoprotobuf tries to fix these problems with the nullable, embed, customtype and customname field extensions. + + - nullable, if false, a field is generated without a pointer (see warning below). + - embed, if true, the field is generated as an embedded field. + - customtype, It works with the Marshal and Unmarshal methods, to allow you to have your own types in your struct, but marshal to bytes. For example, custom.Uuid or custom.Fixed128 + - customname (beta), Changes the generated fieldname. This is especially useful when generated methods conflict with fieldnames. + - casttype (beta), Changes the generated fieldtype. All generated code assumes that this type is castable to the protocol buffer field type. It does not work for structs or enums. + - castkey (beta), Changes the generated fieldtype for a map key. All generated code assumes that this type is castable to the protocol buffer field type. Only supported on maps. + - castvalue (beta), Changes the generated fieldtype for a map value. All generated code assumes that this type is castable to the protocol buffer field type. Only supported on maps. + +Warning about nullable: According to the Protocol Buffer specification, you should be able to tell whether a field is set or unset. With the option nullable=false this feature is lost, since your non-nullable fields will always be set. It can be seen as a layer on top of Protocol Buffers, where before and after marshalling all non-nullable fields are set and they cannot be unset. + +Let us look at: + + github.com/gogo/protobuf/test/example/example.proto + +for a quicker overview. + +The following message: + + package test; + + import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + + message A { + optional string Description = 1 [(gogoproto.nullable) = false]; + optional int64 Number = 2 [(gogoproto.nullable) = false]; + optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false]; + } + +Will generate a go struct which looks a lot like this: + + type A struct { + Description string + Number int64 + Id github_com_gogo_protobuf_test_custom.Uuid + } + +You will see there are no pointers, since all fields are non-nullable. +You will also see a custom type which marshals to a string. +Be warned it is your responsibility to test your custom types thoroughly. +You should think of every possible empty and nil case for your marshaling, unmarshaling and size methods. + +Next we will embed the message A in message B. + + message B { + optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; + repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; + } + +See below that A is embedded in B. + + type B struct { + A + G []github_com_gogo_protobuf_test_custom.Uint128 + } + +Also see the repeated custom type. + + type Uint128 [2]uint64 + +Next we will create a custom name for one of our fields. + + message C { + optional int64 size = 1 [(gogoproto.customname) = "MySize"]; + } + +See below that the field's name is MySize and not Size. + + type C struct { + MySize *int64 + } + +The is useful when having a protocol buffer message with a field name which conflicts with a generated method. +As an example, having a field name size and using the sizer plugin to generate a Size method will cause a go compiler error. +Using customname you can fix this error without changing the field name. +This is typically useful when working with a protocol buffer that was designed before these methods and/or the go language were avialable. + +Gogoprotobuf also has some more subtle changes, these could be changed back: + + - the generated package name for imports do not have the extra /filename.pb, + but are actually the imports specified in the .proto file. + +Gogoprotobuf also has lost some features which should be brought back with time: + + - Marshalling and unmarshalling with reflect and without the unsafe package, + this requires work in pointer_reflect.go + +Why does nullable break protocol buffer specifications: + +The protocol buffer specification states, somewhere, that you should be able to tell whether a +field is set or unset. With the option nullable=false this feature is lost, +since your non-nullable fields will always be set. It can be seen as a layer on top of +protocol buffers, where before and after marshalling all non-nullable fields are set +and they cannot be unset. + +Goprotobuf Compatibility: + +Gogoprotobuf is compatible with Goprotobuf, because it is compatible with protocol buffers. +Gogoprotobuf generates the same code as goprotobuf if no extensions are used. +The enumprefix, getters and stringer extensions can be used to remove some of the unnecessary code generated by goprotobuf: + + - gogoproto_import, if false, the generated code imports github.com/golang/protobuf/proto instead of github.com/gogo/protobuf/proto. + - goproto_enum_prefix, if false, generates the enum constant names without the messagetype prefix + - goproto_enum_stringer (experimental), if false, the enum is generated without the default string method, this is useful for rather using enum_stringer, or allowing you to write your own string method. + - goproto_getters, if false, the message is generated without get methods, this is useful when you would rather want to use face + - goproto_stringer, if false, the message is generated without the default string method, this is useful for rather using stringer, or allowing you to write your own string method. + - goproto_extensions_map (beta), if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension + - goproto_unrecognized (beta), if false, XXX_unrecognized field is not generated. This is useful in conjunction with gogoproto.nullable=false, to generate structures completely devoid of pointers and reduce GC pressure at the cost of losing information about unrecognized fields. + - goproto_registration (beta), if true, the generated files will register all messages and types against both gogo/protobuf and golang/protobuf. This is necessary when using third-party packages which read registrations from golang/protobuf (such as the grpc-gateway). + +Less Typing and Peace of Mind is explained in their specific plugin folders godoc: + + - github.com/gogo/protobuf/plugin/ + +If you do not use any of these extension the code that is generated +will be the same as if goprotobuf has generated it. + +The most complete way to see examples is to look at + + github.com/gogo/protobuf/test/thetest.proto + +Gogoprototest is a seperate project, +because we want to keep gogoprotobuf independent of goprotobuf, +but we still want to test it thoroughly. + +*/ +package gogoproto diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go new file mode 100644 index 00000000..e352808b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go @@ -0,0 +1,874 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: gogo.proto + +package gogoproto + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +var E_GoprotoEnumPrefix = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 62001, + Name: "gogoproto.goproto_enum_prefix", + Tag: "varint,62001,opt,name=goproto_enum_prefix", + Filename: "gogo.proto", +} + +var E_GoprotoEnumStringer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 62021, + Name: "gogoproto.goproto_enum_stringer", + Tag: "varint,62021,opt,name=goproto_enum_stringer", + Filename: "gogo.proto", +} + +var E_EnumStringer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 62022, + Name: "gogoproto.enum_stringer", + Tag: "varint,62022,opt,name=enum_stringer", + Filename: "gogo.proto", +} + +var E_EnumCustomname = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumOptions)(nil), + ExtensionType: (*string)(nil), + Field: 62023, + Name: "gogoproto.enum_customname", + Tag: "bytes,62023,opt,name=enum_customname", + Filename: "gogo.proto", +} + +var E_Enumdecl = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 62024, + Name: "gogoproto.enumdecl", + Tag: "varint,62024,opt,name=enumdecl", + Filename: "gogo.proto", +} + +var E_EnumvalueCustomname = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumValueOptions)(nil), + ExtensionType: (*string)(nil), + Field: 66001, + Name: "gogoproto.enumvalue_customname", + Tag: "bytes,66001,opt,name=enumvalue_customname", + Filename: "gogo.proto", +} + +var E_GoprotoGettersAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63001, + Name: "gogoproto.goproto_getters_all", + Tag: "varint,63001,opt,name=goproto_getters_all", + Filename: "gogo.proto", +} + +var E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63002, + Name: "gogoproto.goproto_enum_prefix_all", + Tag: "varint,63002,opt,name=goproto_enum_prefix_all", + Filename: "gogo.proto", +} + +var E_GoprotoStringerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63003, + Name: "gogoproto.goproto_stringer_all", + Tag: "varint,63003,opt,name=goproto_stringer_all", + Filename: "gogo.proto", +} + +var E_VerboseEqualAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63004, + Name: "gogoproto.verbose_equal_all", + Tag: "varint,63004,opt,name=verbose_equal_all", + Filename: "gogo.proto", +} + +var E_FaceAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63005, + Name: "gogoproto.face_all", + Tag: "varint,63005,opt,name=face_all", + Filename: "gogo.proto", +} + +var E_GostringAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63006, + Name: "gogoproto.gostring_all", + Tag: "varint,63006,opt,name=gostring_all", + Filename: "gogo.proto", +} + +var E_PopulateAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63007, + Name: "gogoproto.populate_all", + Tag: "varint,63007,opt,name=populate_all", + Filename: "gogo.proto", +} + +var E_StringerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63008, + Name: "gogoproto.stringer_all", + Tag: "varint,63008,opt,name=stringer_all", + Filename: "gogo.proto", +} + +var E_OnlyoneAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63009, + Name: "gogoproto.onlyone_all", + Tag: "varint,63009,opt,name=onlyone_all", + Filename: "gogo.proto", +} + +var E_EqualAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63013, + Name: "gogoproto.equal_all", + Tag: "varint,63013,opt,name=equal_all", + Filename: "gogo.proto", +} + +var E_DescriptionAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63014, + Name: "gogoproto.description_all", + Tag: "varint,63014,opt,name=description_all", + Filename: "gogo.proto", +} + +var E_TestgenAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63015, + Name: "gogoproto.testgen_all", + Tag: "varint,63015,opt,name=testgen_all", + Filename: "gogo.proto", +} + +var E_BenchgenAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63016, + Name: "gogoproto.benchgen_all", + Tag: "varint,63016,opt,name=benchgen_all", + Filename: "gogo.proto", +} + +var E_MarshalerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63017, + Name: "gogoproto.marshaler_all", + Tag: "varint,63017,opt,name=marshaler_all", + Filename: "gogo.proto", +} + +var E_UnmarshalerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63018, + Name: "gogoproto.unmarshaler_all", + Tag: "varint,63018,opt,name=unmarshaler_all", + Filename: "gogo.proto", +} + +var E_StableMarshalerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63019, + Name: "gogoproto.stable_marshaler_all", + Tag: "varint,63019,opt,name=stable_marshaler_all", + Filename: "gogo.proto", +} + +var E_SizerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63020, + Name: "gogoproto.sizer_all", + Tag: "varint,63020,opt,name=sizer_all", + Filename: "gogo.proto", +} + +var E_GoprotoEnumStringerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63021, + Name: "gogoproto.goproto_enum_stringer_all", + Tag: "varint,63021,opt,name=goproto_enum_stringer_all", + Filename: "gogo.proto", +} + +var E_EnumStringerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63022, + Name: "gogoproto.enum_stringer_all", + Tag: "varint,63022,opt,name=enum_stringer_all", + Filename: "gogo.proto", +} + +var E_UnsafeMarshalerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63023, + Name: "gogoproto.unsafe_marshaler_all", + Tag: "varint,63023,opt,name=unsafe_marshaler_all", + Filename: "gogo.proto", +} + +var E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63024, + Name: "gogoproto.unsafe_unmarshaler_all", + Tag: "varint,63024,opt,name=unsafe_unmarshaler_all", + Filename: "gogo.proto", +} + +var E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63025, + Name: "gogoproto.goproto_extensions_map_all", + Tag: "varint,63025,opt,name=goproto_extensions_map_all", + Filename: "gogo.proto", +} + +var E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63026, + Name: "gogoproto.goproto_unrecognized_all", + Tag: "varint,63026,opt,name=goproto_unrecognized_all", + Filename: "gogo.proto", +} + +var E_GogoprotoImport = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63027, + Name: "gogoproto.gogoproto_import", + Tag: "varint,63027,opt,name=gogoproto_import", + Filename: "gogo.proto", +} + +var E_ProtosizerAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63028, + Name: "gogoproto.protosizer_all", + Tag: "varint,63028,opt,name=protosizer_all", + Filename: "gogo.proto", +} + +var E_CompareAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63029, + Name: "gogoproto.compare_all", + Tag: "varint,63029,opt,name=compare_all", + Filename: "gogo.proto", +} + +var E_TypedeclAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63030, + Name: "gogoproto.typedecl_all", + Tag: "varint,63030,opt,name=typedecl_all", + Filename: "gogo.proto", +} + +var E_EnumdeclAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63031, + Name: "gogoproto.enumdecl_all", + Tag: "varint,63031,opt,name=enumdecl_all", + Filename: "gogo.proto", +} + +var E_GoprotoRegistration = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63032, + Name: "gogoproto.goproto_registration", + Tag: "varint,63032,opt,name=goproto_registration", + Filename: "gogo.proto", +} + +var E_MessagenameAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63033, + Name: "gogoproto.messagename_all", + Tag: "varint,63033,opt,name=messagename_all", + Filename: "gogo.proto", +} + +var E_GoprotoSizecacheAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63034, + Name: "gogoproto.goproto_sizecache_all", + Tag: "varint,63034,opt,name=goproto_sizecache_all", + Filename: "gogo.proto", +} + +var E_GoprotoUnkeyedAll = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63035, + Name: "gogoproto.goproto_unkeyed_all", + Tag: "varint,63035,opt,name=goproto_unkeyed_all", + Filename: "gogo.proto", +} + +var E_GoprotoGetters = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64001, + Name: "gogoproto.goproto_getters", + Tag: "varint,64001,opt,name=goproto_getters", + Filename: "gogo.proto", +} + +var E_GoprotoStringer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64003, + Name: "gogoproto.goproto_stringer", + Tag: "varint,64003,opt,name=goproto_stringer", + Filename: "gogo.proto", +} + +var E_VerboseEqual = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64004, + Name: "gogoproto.verbose_equal", + Tag: "varint,64004,opt,name=verbose_equal", + Filename: "gogo.proto", +} + +var E_Face = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64005, + Name: "gogoproto.face", + Tag: "varint,64005,opt,name=face", + Filename: "gogo.proto", +} + +var E_Gostring = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64006, + Name: "gogoproto.gostring", + Tag: "varint,64006,opt,name=gostring", + Filename: "gogo.proto", +} + +var E_Populate = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64007, + Name: "gogoproto.populate", + Tag: "varint,64007,opt,name=populate", + Filename: "gogo.proto", +} + +var E_Stringer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 67008, + Name: "gogoproto.stringer", + Tag: "varint,67008,opt,name=stringer", + Filename: "gogo.proto", +} + +var E_Onlyone = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64009, + Name: "gogoproto.onlyone", + Tag: "varint,64009,opt,name=onlyone", + Filename: "gogo.proto", +} + +var E_Equal = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64013, + Name: "gogoproto.equal", + Tag: "varint,64013,opt,name=equal", + Filename: "gogo.proto", +} + +var E_Description = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64014, + Name: "gogoproto.description", + Tag: "varint,64014,opt,name=description", + Filename: "gogo.proto", +} + +var E_Testgen = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64015, + Name: "gogoproto.testgen", + Tag: "varint,64015,opt,name=testgen", + Filename: "gogo.proto", +} + +var E_Benchgen = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64016, + Name: "gogoproto.benchgen", + Tag: "varint,64016,opt,name=benchgen", + Filename: "gogo.proto", +} + +var E_Marshaler = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64017, + Name: "gogoproto.marshaler", + Tag: "varint,64017,opt,name=marshaler", + Filename: "gogo.proto", +} + +var E_Unmarshaler = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64018, + Name: "gogoproto.unmarshaler", + Tag: "varint,64018,opt,name=unmarshaler", + Filename: "gogo.proto", +} + +var E_StableMarshaler = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64019, + Name: "gogoproto.stable_marshaler", + Tag: "varint,64019,opt,name=stable_marshaler", + Filename: "gogo.proto", +} + +var E_Sizer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64020, + Name: "gogoproto.sizer", + Tag: "varint,64020,opt,name=sizer", + Filename: "gogo.proto", +} + +var E_UnsafeMarshaler = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64023, + Name: "gogoproto.unsafe_marshaler", + Tag: "varint,64023,opt,name=unsafe_marshaler", + Filename: "gogo.proto", +} + +var E_UnsafeUnmarshaler = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64024, + Name: "gogoproto.unsafe_unmarshaler", + Tag: "varint,64024,opt,name=unsafe_unmarshaler", + Filename: "gogo.proto", +} + +var E_GoprotoExtensionsMap = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64025, + Name: "gogoproto.goproto_extensions_map", + Tag: "varint,64025,opt,name=goproto_extensions_map", + Filename: "gogo.proto", +} + +var E_GoprotoUnrecognized = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64026, + Name: "gogoproto.goproto_unrecognized", + Tag: "varint,64026,opt,name=goproto_unrecognized", + Filename: "gogo.proto", +} + +var E_Protosizer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64028, + Name: "gogoproto.protosizer", + Tag: "varint,64028,opt,name=protosizer", + Filename: "gogo.proto", +} + +var E_Compare = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64029, + Name: "gogoproto.compare", + Tag: "varint,64029,opt,name=compare", + Filename: "gogo.proto", +} + +var E_Typedecl = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64030, + Name: "gogoproto.typedecl", + Tag: "varint,64030,opt,name=typedecl", + Filename: "gogo.proto", +} + +var E_Messagename = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64033, + Name: "gogoproto.messagename", + Tag: "varint,64033,opt,name=messagename", + Filename: "gogo.proto", +} + +var E_GoprotoSizecache = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64034, + Name: "gogoproto.goproto_sizecache", + Tag: "varint,64034,opt,name=goproto_sizecache", + Filename: "gogo.proto", +} + +var E_GoprotoUnkeyed = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64035, + Name: "gogoproto.goproto_unkeyed", + Tag: "varint,64035,opt,name=goproto_unkeyed", + Filename: "gogo.proto", +} + +var E_Nullable = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65001, + Name: "gogoproto.nullable", + Tag: "varint,65001,opt,name=nullable", + Filename: "gogo.proto", +} + +var E_Embed = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65002, + Name: "gogoproto.embed", + Tag: "varint,65002,opt,name=embed", + Filename: "gogo.proto", +} + +var E_Customtype = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65003, + Name: "gogoproto.customtype", + Tag: "bytes,65003,opt,name=customtype", + Filename: "gogo.proto", +} + +var E_Customname = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65004, + Name: "gogoproto.customname", + Tag: "bytes,65004,opt,name=customname", + Filename: "gogo.proto", +} + +var E_Jsontag = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65005, + Name: "gogoproto.jsontag", + Tag: "bytes,65005,opt,name=jsontag", + Filename: "gogo.proto", +} + +var E_Moretags = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65006, + Name: "gogoproto.moretags", + Tag: "bytes,65006,opt,name=moretags", + Filename: "gogo.proto", +} + +var E_Casttype = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65007, + Name: "gogoproto.casttype", + Tag: "bytes,65007,opt,name=casttype", + Filename: "gogo.proto", +} + +var E_Castkey = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65008, + Name: "gogoproto.castkey", + Tag: "bytes,65008,opt,name=castkey", + Filename: "gogo.proto", +} + +var E_Castvalue = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 65009, + Name: "gogoproto.castvalue", + Tag: "bytes,65009,opt,name=castvalue", + Filename: "gogo.proto", +} + +var E_Stdtime = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65010, + Name: "gogoproto.stdtime", + Tag: "varint,65010,opt,name=stdtime", + Filename: "gogo.proto", +} + +var E_Stdduration = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65011, + Name: "gogoproto.stdduration", + Tag: "varint,65011,opt,name=stdduration", + Filename: "gogo.proto", +} + +var E_Wktpointer = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65012, + Name: "gogoproto.wktpointer", + Tag: "varint,65012,opt,name=wktpointer", + Filename: "gogo.proto", +} + +func init() { + proto.RegisterExtension(E_GoprotoEnumPrefix) + proto.RegisterExtension(E_GoprotoEnumStringer) + proto.RegisterExtension(E_EnumStringer) + proto.RegisterExtension(E_EnumCustomname) + proto.RegisterExtension(E_Enumdecl) + proto.RegisterExtension(E_EnumvalueCustomname) + proto.RegisterExtension(E_GoprotoGettersAll) + proto.RegisterExtension(E_GoprotoEnumPrefixAll) + proto.RegisterExtension(E_GoprotoStringerAll) + proto.RegisterExtension(E_VerboseEqualAll) + proto.RegisterExtension(E_FaceAll) + proto.RegisterExtension(E_GostringAll) + proto.RegisterExtension(E_PopulateAll) + proto.RegisterExtension(E_StringerAll) + proto.RegisterExtension(E_OnlyoneAll) + proto.RegisterExtension(E_EqualAll) + proto.RegisterExtension(E_DescriptionAll) + proto.RegisterExtension(E_TestgenAll) + proto.RegisterExtension(E_BenchgenAll) + proto.RegisterExtension(E_MarshalerAll) + proto.RegisterExtension(E_UnmarshalerAll) + proto.RegisterExtension(E_StableMarshalerAll) + proto.RegisterExtension(E_SizerAll) + proto.RegisterExtension(E_GoprotoEnumStringerAll) + proto.RegisterExtension(E_EnumStringerAll) + proto.RegisterExtension(E_UnsafeMarshalerAll) + proto.RegisterExtension(E_UnsafeUnmarshalerAll) + proto.RegisterExtension(E_GoprotoExtensionsMapAll) + proto.RegisterExtension(E_GoprotoUnrecognizedAll) + proto.RegisterExtension(E_GogoprotoImport) + proto.RegisterExtension(E_ProtosizerAll) + proto.RegisterExtension(E_CompareAll) + proto.RegisterExtension(E_TypedeclAll) + proto.RegisterExtension(E_EnumdeclAll) + proto.RegisterExtension(E_GoprotoRegistration) + proto.RegisterExtension(E_MessagenameAll) + proto.RegisterExtension(E_GoprotoSizecacheAll) + proto.RegisterExtension(E_GoprotoUnkeyedAll) + proto.RegisterExtension(E_GoprotoGetters) + proto.RegisterExtension(E_GoprotoStringer) + proto.RegisterExtension(E_VerboseEqual) + proto.RegisterExtension(E_Face) + proto.RegisterExtension(E_Gostring) + proto.RegisterExtension(E_Populate) + proto.RegisterExtension(E_Stringer) + proto.RegisterExtension(E_Onlyone) + proto.RegisterExtension(E_Equal) + proto.RegisterExtension(E_Description) + proto.RegisterExtension(E_Testgen) + proto.RegisterExtension(E_Benchgen) + proto.RegisterExtension(E_Marshaler) + proto.RegisterExtension(E_Unmarshaler) + proto.RegisterExtension(E_StableMarshaler) + proto.RegisterExtension(E_Sizer) + proto.RegisterExtension(E_UnsafeMarshaler) + proto.RegisterExtension(E_UnsafeUnmarshaler) + proto.RegisterExtension(E_GoprotoExtensionsMap) + proto.RegisterExtension(E_GoprotoUnrecognized) + proto.RegisterExtension(E_Protosizer) + proto.RegisterExtension(E_Compare) + proto.RegisterExtension(E_Typedecl) + proto.RegisterExtension(E_Messagename) + proto.RegisterExtension(E_GoprotoSizecache) + proto.RegisterExtension(E_GoprotoUnkeyed) + proto.RegisterExtension(E_Nullable) + proto.RegisterExtension(E_Embed) + proto.RegisterExtension(E_Customtype) + proto.RegisterExtension(E_Customname) + proto.RegisterExtension(E_Jsontag) + proto.RegisterExtension(E_Moretags) + proto.RegisterExtension(E_Casttype) + proto.RegisterExtension(E_Castkey) + proto.RegisterExtension(E_Castvalue) + proto.RegisterExtension(E_Stdtime) + proto.RegisterExtension(E_Stdduration) + proto.RegisterExtension(E_Wktpointer) +} + +func init() { proto.RegisterFile("gogo.proto", fileDescriptor_592445b5231bc2b9) } + +var fileDescriptor_592445b5231bc2b9 = []byte{ + // 1328 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x49, 0x6f, 0x1c, 0x45, + 0x14, 0x80, 0x85, 0x48, 0x64, 0x4f, 0x79, 0x8b, 0xc7, 0xc6, 0x84, 0x08, 0x44, 0xe0, 0xc4, 0xc9, + 0x3e, 0x45, 0x28, 0x65, 0x45, 0x96, 0x63, 0x39, 0x56, 0x10, 0x0e, 0xc6, 0x89, 0xc3, 0x76, 0x18, + 0xf5, 0xf4, 0x94, 0xdb, 0x8d, 0xbb, 0xbb, 0x9a, 0xee, 0xea, 0x10, 0xe7, 0x86, 0xc2, 0x22, 0x84, + 0xd8, 0x91, 0x20, 0x21, 0x09, 0x04, 0xc4, 0xbe, 0x86, 0x7d, 0xb9, 0x70, 0x61, 0xb9, 0xf2, 0x1f, + 0xb8, 0x00, 0x66, 0xf7, 0xcd, 0x17, 0xf4, 0xba, 0xdf, 0xeb, 0xa9, 0x69, 0x8f, 0x54, 0x35, 0xb7, + 0xf6, 0xb8, 0xbe, 0x6f, 0xaa, 0xdf, 0xeb, 0x7a, 0xef, 0x4d, 0x33, 0xe6, 0x49, 0x4f, 0x4e, 0xc6, + 0x89, 0x54, 0xb2, 0x5e, 0x83, 0xeb, 0xfc, 0x72, 0xdf, 0x7e, 0x4f, 0x4a, 0x2f, 0x10, 0x53, 0xf9, + 0x5f, 0xcd, 0x6c, 0x75, 0xaa, 0x25, 0x52, 0x37, 0xf1, 0x63, 0x25, 0x93, 0x62, 0x31, 0x3f, 0xc6, + 0xc6, 0x70, 0x71, 0x43, 0x44, 0x59, 0xd8, 0x88, 0x13, 0xb1, 0xea, 0x9f, 0xae, 0x5f, 0x3f, 0x59, + 0x90, 0x93, 0x44, 0x4e, 0xce, 0x47, 0x59, 0x78, 0x47, 0xac, 0x7c, 0x19, 0xa5, 0x7b, 0xaf, 0xfc, + 0x72, 0xf5, 0xfe, 0xab, 0x6e, 0xe9, 0x5f, 0x1e, 0x45, 0x14, 0xfe, 0xb7, 0x94, 0x83, 0x7c, 0x99, + 0x5d, 0xd3, 0xe1, 0x4b, 0x55, 0xe2, 0x47, 0x9e, 0x48, 0x0c, 0xc6, 0xef, 0xd1, 0x38, 0xa6, 0x19, + 0x8f, 0x23, 0xca, 0xe7, 0xd8, 0x50, 0x2f, 0xae, 0x1f, 0xd0, 0x35, 0x28, 0x74, 0xc9, 0x02, 0x1b, + 0xc9, 0x25, 0x6e, 0x96, 0x2a, 0x19, 0x46, 0x4e, 0x28, 0x0c, 0x9a, 0x1f, 0x73, 0x4d, 0x6d, 0x79, + 0x18, 0xb0, 0xb9, 0x92, 0xe2, 0x9c, 0xf5, 0xc3, 0x27, 0x2d, 0xe1, 0x06, 0x06, 0xc3, 0x4f, 0xb8, + 0x91, 0x72, 0x3d, 0x3f, 0xc9, 0xc6, 0xe1, 0xfa, 0x94, 0x13, 0x64, 0x42, 0xdf, 0xc9, 0x4d, 0x5d, + 0x3d, 0x27, 0x61, 0x19, 0xc9, 0x7e, 0x3e, 0xbb, 0x2b, 0xdf, 0xce, 0x58, 0x29, 0xd0, 0xf6, 0xa4, + 0x65, 0xd1, 0x13, 0x4a, 0x89, 0x24, 0x6d, 0x38, 0x41, 0xb7, 0xed, 0x1d, 0xf1, 0x83, 0xd2, 0x78, + 0x6e, 0xb3, 0x33, 0x8b, 0x0b, 0x05, 0x39, 0x1b, 0x04, 0x7c, 0x85, 0x5d, 0xdb, 0xe5, 0xa9, 0xb0, + 0x70, 0x9e, 0x47, 0xe7, 0xf8, 0x8e, 0x27, 0x03, 0xb4, 0x4b, 0x8c, 0x3e, 0x2f, 0x73, 0x69, 0xe1, + 0x7c, 0x19, 0x9d, 0x75, 0x64, 0x29, 0xa5, 0x60, 0xbc, 0x8d, 0x8d, 0x9e, 0x12, 0x49, 0x53, 0xa6, + 0xa2, 0x21, 0x1e, 0xc8, 0x9c, 0xc0, 0x42, 0x77, 0x01, 0x75, 0x23, 0x08, 0xce, 0x03, 0x07, 0xae, + 0x83, 0xac, 0x7f, 0xd5, 0x71, 0x85, 0x85, 0xe2, 0x22, 0x2a, 0xfa, 0x60, 0x3d, 0xa0, 0xb3, 0x6c, + 0xd0, 0x93, 0xc5, 0x2d, 0x59, 0xe0, 0x97, 0x10, 0x1f, 0x20, 0x06, 0x15, 0xb1, 0x8c, 0xb3, 0xc0, + 0x51, 0x36, 0x3b, 0x78, 0x85, 0x14, 0xc4, 0xa0, 0xa2, 0x87, 0xb0, 0xbe, 0x4a, 0x8a, 0x54, 0x8b, + 0xe7, 0x0c, 0x1b, 0x90, 0x51, 0xb0, 0x21, 0x23, 0x9b, 0x4d, 0x5c, 0x46, 0x03, 0x43, 0x04, 0x04, + 0xd3, 0xac, 0x66, 0x9b, 0x88, 0x37, 0x36, 0xe9, 0x78, 0x50, 0x06, 0x16, 0xd8, 0x08, 0x15, 0x28, + 0x5f, 0x46, 0x16, 0x8a, 0x37, 0x51, 0x31, 0xac, 0x61, 0x78, 0x1b, 0x4a, 0xa4, 0xca, 0x13, 0x36, + 0x92, 0xb7, 0xe8, 0x36, 0x10, 0xc1, 0x50, 0x36, 0x45, 0xe4, 0xae, 0xd9, 0x19, 0xde, 0xa6, 0x50, + 0x12, 0x03, 0x8a, 0x39, 0x36, 0x14, 0x3a, 0x49, 0xba, 0xe6, 0x04, 0x56, 0xe9, 0x78, 0x07, 0x1d, + 0x83, 0x25, 0x84, 0x11, 0xc9, 0xa2, 0x5e, 0x34, 0xef, 0x52, 0x44, 0x34, 0x0c, 0x8f, 0x5e, 0xaa, + 0x9c, 0x66, 0x20, 0x1a, 0xbd, 0xd8, 0xde, 0xa3, 0xa3, 0x57, 0xb0, 0x8b, 0xba, 0x71, 0x9a, 0xd5, + 0x52, 0xff, 0x8c, 0x95, 0xe6, 0x7d, 0xca, 0x74, 0x0e, 0x00, 0x7c, 0x0f, 0xbb, 0xae, 0x6b, 0x9b, + 0xb0, 0x90, 0x7d, 0x80, 0xb2, 0x89, 0x2e, 0xad, 0x02, 0x4b, 0x42, 0xaf, 0xca, 0x0f, 0xa9, 0x24, + 0x88, 0x8a, 0x6b, 0x89, 0x8d, 0x67, 0x51, 0xea, 0xac, 0xf6, 0x16, 0xb5, 0x8f, 0x28, 0x6a, 0x05, + 0xdb, 0x11, 0xb5, 0x13, 0x6c, 0x02, 0x8d, 0xbd, 0xe5, 0xf5, 0x63, 0x2a, 0xac, 0x05, 0xbd, 0xd2, + 0x99, 0xdd, 0xfb, 0xd8, 0xbe, 0x32, 0x9c, 0xa7, 0x95, 0x88, 0x52, 0x60, 0x1a, 0xa1, 0x13, 0x5b, + 0x98, 0xaf, 0xa0, 0x99, 0x2a, 0xfe, 0x7c, 0x29, 0x58, 0x74, 0x62, 0x90, 0xdf, 0xcd, 0xf6, 0x92, + 0x3c, 0x8b, 0x12, 0xe1, 0x4a, 0x2f, 0xf2, 0xcf, 0x88, 0x96, 0x85, 0xfa, 0x93, 0x4a, 0xaa, 0x56, + 0x34, 0x1c, 0xcc, 0x47, 0xd9, 0x9e, 0x72, 0x56, 0x69, 0xf8, 0x61, 0x2c, 0x13, 0x65, 0x30, 0x7e, + 0x4a, 0x99, 0x2a, 0xb9, 0xa3, 0x39, 0xc6, 0xe7, 0xd9, 0x70, 0xfe, 0xa7, 0xed, 0x23, 0xf9, 0x19, + 0x8a, 0x86, 0xda, 0x14, 0x16, 0x0e, 0x57, 0x86, 0xb1, 0x93, 0xd8, 0xd4, 0xbf, 0xcf, 0xa9, 0x70, + 0x20, 0x82, 0x85, 0x43, 0x6d, 0xc4, 0x02, 0xba, 0xbd, 0x85, 0xe1, 0x0b, 0x2a, 0x1c, 0xc4, 0xa0, + 0x82, 0x06, 0x06, 0x0b, 0xc5, 0x97, 0xa4, 0x20, 0x06, 0x14, 0x77, 0xb6, 0x1b, 0x6d, 0x22, 0x3c, + 0x3f, 0x55, 0x89, 0x03, 0xab, 0x0d, 0xaa, 0xaf, 0x36, 0x3b, 0x87, 0xb0, 0x65, 0x0d, 0x85, 0x4a, + 0x14, 0x8a, 0x34, 0x75, 0x3c, 0x01, 0x13, 0x87, 0xc5, 0xc6, 0xbe, 0xa6, 0x4a, 0xa4, 0x61, 0xb0, + 0x37, 0x6d, 0x42, 0x84, 0xb0, 0xbb, 0x8e, 0xbb, 0x66, 0xa3, 0xfb, 0xa6, 0xb2, 0xb9, 0xe3, 0xc4, + 0x82, 0x53, 0x9b, 0x7f, 0xb2, 0x68, 0x5d, 0x6c, 0x58, 0x3d, 0x9d, 0xdf, 0x56, 0xe6, 0x9f, 0x95, + 0x82, 0x2c, 0x6a, 0xc8, 0x48, 0x65, 0x9e, 0xaa, 0xdf, 0xb8, 0xc3, 0xb5, 0x58, 0xdc, 0x17, 0xe9, + 0x1e, 0xda, 0xc2, 0xfb, 0xed, 0x1c, 0xa7, 0xf8, 0xed, 0xf0, 0x90, 0x77, 0x0e, 0x3d, 0x66, 0xd9, + 0xd9, 0xad, 0xf2, 0x39, 0xef, 0x98, 0x79, 0xf8, 0x11, 0x36, 0xd4, 0x31, 0xf0, 0x98, 0x55, 0x0f, + 0xa3, 0x6a, 0x50, 0x9f, 0x77, 0xf8, 0x01, 0xb6, 0x0b, 0x86, 0x17, 0x33, 0xfe, 0x08, 0xe2, 0xf9, + 0x72, 0x7e, 0x88, 0xf5, 0xd3, 0xd0, 0x62, 0x46, 0x1f, 0x45, 0xb4, 0x44, 0x00, 0xa7, 0x81, 0xc5, + 0x8c, 0x3f, 0x46, 0x38, 0x21, 0x80, 0xdb, 0x87, 0xf0, 0xbb, 0x27, 0x76, 0x61, 0xd3, 0xa1, 0xd8, + 0x4d, 0xb3, 0x3e, 0x9c, 0x54, 0xcc, 0xf4, 0xe3, 0xf8, 0xe5, 0x44, 0xf0, 0x5b, 0xd9, 0x6e, 0xcb, + 0x80, 0x3f, 0x89, 0x68, 0xb1, 0x9e, 0xcf, 0xb1, 0x01, 0x6d, 0x3a, 0x31, 0xe3, 0x4f, 0x21, 0xae, + 0x53, 0xb0, 0x75, 0x9c, 0x4e, 0xcc, 0x82, 0xa7, 0x69, 0xeb, 0x48, 0x40, 0xd8, 0x68, 0x30, 0x31, + 0xd3, 0xcf, 0x50, 0xd4, 0x09, 0xe1, 0x33, 0xac, 0x56, 0x36, 0x1b, 0x33, 0xff, 0x2c, 0xf2, 0x6d, + 0x06, 0x22, 0xa0, 0x35, 0x3b, 0xb3, 0xe2, 0x39, 0x8a, 0x80, 0x46, 0xc1, 0x31, 0xaa, 0x0e, 0x30, + 0x66, 0xd3, 0xf3, 0x74, 0x8c, 0x2a, 0xf3, 0x0b, 0x64, 0x33, 0xaf, 0xf9, 0x66, 0xc5, 0x0b, 0x94, + 0xcd, 0x7c, 0x3d, 0x6c, 0xa3, 0x3a, 0x11, 0x98, 0x1d, 0x2f, 0xd2, 0x36, 0x2a, 0x03, 0x01, 0x5f, + 0x62, 0xf5, 0x9d, 0xd3, 0x80, 0xd9, 0xf7, 0x12, 0xfa, 0x46, 0x77, 0x0c, 0x03, 0xfc, 0x2e, 0x36, + 0xd1, 0x7d, 0x12, 0x30, 0x5b, 0xcf, 0x6d, 0x55, 0x7e, 0xbb, 0xe9, 0x83, 0x00, 0x3f, 0xd1, 0x6e, + 0x29, 0xfa, 0x14, 0x60, 0xd6, 0x9e, 0xdf, 0xea, 0x2c, 0xdc, 0xfa, 0x10, 0xc0, 0x67, 0x19, 0x6b, + 0x37, 0x60, 0xb3, 0xeb, 0x02, 0xba, 0x34, 0x08, 0x8e, 0x06, 0xf6, 0x5f, 0x33, 0x7f, 0x91, 0x8e, + 0x06, 0x12, 0x70, 0x34, 0xa8, 0xf5, 0x9a, 0xe9, 0x4b, 0x74, 0x34, 0x08, 0x81, 0x27, 0x5b, 0xeb, + 0x6e, 0x66, 0xc3, 0x65, 0x7a, 0xb2, 0x35, 0x8a, 0x1f, 0x63, 0xa3, 0x3b, 0x1a, 0xa2, 0x59, 0xf5, + 0x1a, 0xaa, 0xf6, 0x54, 0xfb, 0xa1, 0xde, 0xbc, 0xb0, 0x19, 0x9a, 0x6d, 0xaf, 0x57, 0x9a, 0x17, + 0xf6, 0x42, 0x3e, 0xcd, 0xfa, 0xa3, 0x2c, 0x08, 0xe0, 0xf0, 0xd4, 0x6f, 0xe8, 0xd2, 0x4d, 0x45, + 0xd0, 0x22, 0xc5, 0xaf, 0xdb, 0x18, 0x1d, 0x02, 0xf8, 0x01, 0xb6, 0x5b, 0x84, 0x4d, 0xd1, 0x32, + 0x91, 0xbf, 0x6d, 0x53, 0xc1, 0x84, 0xd5, 0x7c, 0x86, 0xb1, 0xe2, 0xd5, 0x08, 0x84, 0xd9, 0xc4, + 0xfe, 0xbe, 0x5d, 0xbc, 0xa5, 0xd1, 0x90, 0xb6, 0x20, 0x4f, 0x8a, 0x41, 0xb0, 0xd9, 0x29, 0xc8, + 0x33, 0x72, 0x90, 0xf5, 0xdd, 0x9f, 0xca, 0x48, 0x39, 0x9e, 0x89, 0xfe, 0x03, 0x69, 0x5a, 0x0f, + 0x01, 0x0b, 0x65, 0x22, 0x94, 0xe3, 0xa5, 0x26, 0xf6, 0x4f, 0x64, 0x4b, 0x00, 0x60, 0xd7, 0x49, + 0x95, 0xcd, 0x7d, 0xff, 0x45, 0x30, 0x01, 0xb0, 0x69, 0xb8, 0x5e, 0x17, 0x1b, 0x26, 0xf6, 0x6f, + 0xda, 0x34, 0xae, 0xe7, 0x87, 0x58, 0x0d, 0x2e, 0xf3, 0xb7, 0x4a, 0x26, 0xf8, 0x1f, 0x84, 0xdb, + 0x04, 0x7c, 0x73, 0xaa, 0x5a, 0xca, 0x37, 0x07, 0xfb, 0x5f, 0xcc, 0x34, 0xad, 0xe7, 0xb3, 0x6c, + 0x20, 0x55, 0xad, 0x56, 0x86, 0xf3, 0xa9, 0x01, 0xff, 0x6f, 0xbb, 0x7c, 0x65, 0x51, 0x32, 0x90, + 0xed, 0x07, 0xd7, 0x55, 0x2c, 0xfd, 0x48, 0x89, 0xc4, 0x64, 0xd8, 0x42, 0x83, 0x86, 0x1c, 0x9e, + 0x67, 0x63, 0xae, 0x0c, 0xab, 0xdc, 0x61, 0xb6, 0x20, 0x17, 0xe4, 0x52, 0x5e, 0x67, 0xee, 0xbd, + 0xd9, 0xf3, 0xd5, 0x5a, 0xd6, 0x9c, 0x74, 0x65, 0x38, 0x05, 0xbf, 0x3c, 0xda, 0x2f, 0x54, 0xcb, + 0xdf, 0x21, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xaf, 0x70, 0x4e, 0x83, 0x15, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden new file mode 100644 index 00000000..f6502e4b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.golden @@ -0,0 +1,45 @@ +// Code generated by protoc-gen-go. +// source: gogo.proto +// DO NOT EDIT! + +package gogoproto + +import proto "github.com/gogo/protobuf/proto" +import json "encoding/json" +import math "math" +import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" + +// Reference proto, json, and math imports to suppress error if they are not otherwise used. +var _ = proto.Marshal +var _ = &json.SyntaxError{} +var _ = math.Inf + +var E_Nullable = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 51235, + Name: "gogoproto.nullable", + Tag: "varint,51235,opt,name=nullable", +} + +var E_Embed = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 51236, + Name: "gogoproto.embed", + Tag: "varint,51236,opt,name=embed", +} + +var E_Customtype = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 51237, + Name: "gogoproto.customtype", + Tag: "bytes,51237,opt,name=customtype", +} + +func init() { + proto.RegisterExtension(E_Nullable) + proto.RegisterExtension(E_Embed) + proto.RegisterExtension(E_Customtype) +} diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto new file mode 100644 index 00000000..b80c8565 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto @@ -0,0 +1,144 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto2"; +package gogoproto; + +import "google/protobuf/descriptor.proto"; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "GoGoProtos"; +option go_package = "github.com/gogo/protobuf/gogoproto"; + +extend google.protobuf.EnumOptions { + optional bool goproto_enum_prefix = 62001; + optional bool goproto_enum_stringer = 62021; + optional bool enum_stringer = 62022; + optional string enum_customname = 62023; + optional bool enumdecl = 62024; +} + +extend google.protobuf.EnumValueOptions { + optional string enumvalue_customname = 66001; +} + +extend google.protobuf.FileOptions { + optional bool goproto_getters_all = 63001; + optional bool goproto_enum_prefix_all = 63002; + optional bool goproto_stringer_all = 63003; + optional bool verbose_equal_all = 63004; + optional bool face_all = 63005; + optional bool gostring_all = 63006; + optional bool populate_all = 63007; + optional bool stringer_all = 63008; + optional bool onlyone_all = 63009; + + optional bool equal_all = 63013; + optional bool description_all = 63014; + optional bool testgen_all = 63015; + optional bool benchgen_all = 63016; + optional bool marshaler_all = 63017; + optional bool unmarshaler_all = 63018; + optional bool stable_marshaler_all = 63019; + + optional bool sizer_all = 63020; + + optional bool goproto_enum_stringer_all = 63021; + optional bool enum_stringer_all = 63022; + + optional bool unsafe_marshaler_all = 63023; + optional bool unsafe_unmarshaler_all = 63024; + + optional bool goproto_extensions_map_all = 63025; + optional bool goproto_unrecognized_all = 63026; + optional bool gogoproto_import = 63027; + optional bool protosizer_all = 63028; + optional bool compare_all = 63029; + optional bool typedecl_all = 63030; + optional bool enumdecl_all = 63031; + + optional bool goproto_registration = 63032; + optional bool messagename_all = 63033; + + optional bool goproto_sizecache_all = 63034; + optional bool goproto_unkeyed_all = 63035; +} + +extend google.protobuf.MessageOptions { + optional bool goproto_getters = 64001; + optional bool goproto_stringer = 64003; + optional bool verbose_equal = 64004; + optional bool face = 64005; + optional bool gostring = 64006; + optional bool populate = 64007; + optional bool stringer = 67008; + optional bool onlyone = 64009; + + optional bool equal = 64013; + optional bool description = 64014; + optional bool testgen = 64015; + optional bool benchgen = 64016; + optional bool marshaler = 64017; + optional bool unmarshaler = 64018; + optional bool stable_marshaler = 64019; + + optional bool sizer = 64020; + + optional bool unsafe_marshaler = 64023; + optional bool unsafe_unmarshaler = 64024; + + optional bool goproto_extensions_map = 64025; + optional bool goproto_unrecognized = 64026; + + optional bool protosizer = 64028; + optional bool compare = 64029; + + optional bool typedecl = 64030; + + optional bool messagename = 64033; + + optional bool goproto_sizecache = 64034; + optional bool goproto_unkeyed = 64035; +} + +extend google.protobuf.FieldOptions { + optional bool nullable = 65001; + optional bool embed = 65002; + optional string customtype = 65003; + optional string customname = 65004; + optional string jsontag = 65005; + optional string moretags = 65006; + optional string casttype = 65007; + optional string castkey = 65008; + optional string castvalue = 65009; + + optional bool stdtime = 65010; + optional bool stdduration = 65011; + optional bool wktpointer = 65012; + +} diff --git a/vendor/github.com/gogo/protobuf/gogoproto/helper.go b/vendor/github.com/gogo/protobuf/gogoproto/helper.go new file mode 100644 index 00000000..390d4e4b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/helper.go @@ -0,0 +1,415 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gogoproto + +import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import proto "github.com/gogo/protobuf/proto" + +func IsEmbed(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Embed, false) +} + +func IsNullable(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Nullable, true) +} + +func IsStdTime(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Stdtime, false) +} + +func IsStdDuration(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Stdduration, false) +} + +func IsStdDouble(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.DoubleValue" +} + +func IsStdFloat(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.FloatValue" +} + +func IsStdInt64(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.Int64Value" +} + +func IsStdUInt64(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.UInt64Value" +} + +func IsStdInt32(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.Int32Value" +} + +func IsStdUInt32(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.UInt32Value" +} + +func IsStdBool(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.BoolValue" +} + +func IsStdString(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.StringValue" +} + +func IsStdBytes(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) && *field.TypeName == ".google.protobuf.BytesValue" +} + +func IsStdType(field *google_protobuf.FieldDescriptorProto) bool { + return (IsStdTime(field) || IsStdDuration(field) || + IsStdDouble(field) || IsStdFloat(field) || + IsStdInt64(field) || IsStdUInt64(field) || + IsStdInt32(field) || IsStdUInt32(field) || + IsStdBool(field) || + IsStdString(field) || IsStdBytes(field)) +} + +func IsWktPtr(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Wktpointer, false) +} + +func NeedsNilCheck(proto3 bool, field *google_protobuf.FieldDescriptorProto) bool { + nullable := IsNullable(field) + if field.IsMessage() || IsCustomType(field) { + return nullable + } + if proto3 { + return false + } + return nullable || *field.Type == google_protobuf.FieldDescriptorProto_TYPE_BYTES +} + +func IsCustomType(field *google_protobuf.FieldDescriptorProto) bool { + typ := GetCustomType(field) + if len(typ) > 0 { + return true + } + return false +} + +func IsCastType(field *google_protobuf.FieldDescriptorProto) bool { + typ := GetCastType(field) + if len(typ) > 0 { + return true + } + return false +} + +func IsCastKey(field *google_protobuf.FieldDescriptorProto) bool { + typ := GetCastKey(field) + if len(typ) > 0 { + return true + } + return false +} + +func IsCastValue(field *google_protobuf.FieldDescriptorProto) bool { + typ := GetCastValue(field) + if len(typ) > 0 { + return true + } + return false +} + +func HasEnumDecl(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { + return proto.GetBoolExtension(enum.Options, E_Enumdecl, proto.GetBoolExtension(file.Options, E_EnumdeclAll, true)) +} + +func HasTypeDecl(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Typedecl, proto.GetBoolExtension(file.Options, E_TypedeclAll, true)) +} + +func GetCustomType(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Customtype) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func GetCastType(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Casttype) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func GetCastKey(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Castkey) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func GetCastValue(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Castvalue) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func IsCustomName(field *google_protobuf.FieldDescriptorProto) bool { + name := GetCustomName(field) + if len(name) > 0 { + return true + } + return false +} + +func IsEnumCustomName(field *google_protobuf.EnumDescriptorProto) bool { + name := GetEnumCustomName(field) + if len(name) > 0 { + return true + } + return false +} + +func IsEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) bool { + name := GetEnumValueCustomName(field) + if len(name) > 0 { + return true + } + return false +} + +func GetCustomName(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Customname) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func GetEnumCustomName(field *google_protobuf.EnumDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_EnumCustomname) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func GetEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) string { + if field == nil { + return "" + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_EnumvalueCustomname) + if err == nil && v.(*string) != nil { + return *(v.(*string)) + } + } + return "" +} + +func GetJsonTag(field *google_protobuf.FieldDescriptorProto) *string { + if field == nil { + return nil + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Jsontag) + if err == nil && v.(*string) != nil { + return (v.(*string)) + } + } + return nil +} + +func GetMoreTags(field *google_protobuf.FieldDescriptorProto) *string { + if field == nil { + return nil + } + if field.Options != nil { + v, err := proto.GetExtension(field.Options, E_Moretags) + if err == nil && v.(*string) != nil { + return (v.(*string)) + } + } + return nil +} + +type EnableFunc func(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool + +func EnabledGoEnumPrefix(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { + return proto.GetBoolExtension(enum.Options, E_GoprotoEnumPrefix, proto.GetBoolExtension(file.Options, E_GoprotoEnumPrefixAll, true)) +} + +func EnabledGoStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoStringer, proto.GetBoolExtension(file.Options, E_GoprotoStringerAll, true)) +} + +func HasGoGetters(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoGetters, proto.GetBoolExtension(file.Options, E_GoprotoGettersAll, true)) +} + +func IsUnion(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Onlyone, proto.GetBoolExtension(file.Options, E_OnlyoneAll, false)) +} + +func HasGoString(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Gostring, proto.GetBoolExtension(file.Options, E_GostringAll, false)) +} + +func HasEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Equal, proto.GetBoolExtension(file.Options, E_EqualAll, false)) +} + +func HasVerboseEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_VerboseEqual, proto.GetBoolExtension(file.Options, E_VerboseEqualAll, false)) +} + +func IsStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Stringer, proto.GetBoolExtension(file.Options, E_StringerAll, false)) +} + +func IsFace(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Face, proto.GetBoolExtension(file.Options, E_FaceAll, false)) +} + +func HasDescription(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Description, proto.GetBoolExtension(file.Options, E_DescriptionAll, false)) +} + +func HasPopulate(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Populate, proto.GetBoolExtension(file.Options, E_PopulateAll, false)) +} + +func HasTestGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Testgen, proto.GetBoolExtension(file.Options, E_TestgenAll, false)) +} + +func HasBenchGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Benchgen, proto.GetBoolExtension(file.Options, E_BenchgenAll, false)) +} + +func IsMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Marshaler, proto.GetBoolExtension(file.Options, E_MarshalerAll, false)) +} + +func IsUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Unmarshaler, proto.GetBoolExtension(file.Options, E_UnmarshalerAll, false)) +} + +func IsStableMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_StableMarshaler, proto.GetBoolExtension(file.Options, E_StableMarshalerAll, false)) +} + +func IsSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Sizer, proto.GetBoolExtension(file.Options, E_SizerAll, false)) +} + +func IsProtoSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Protosizer, proto.GetBoolExtension(file.Options, E_ProtosizerAll, false)) +} + +func IsGoEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { + return proto.GetBoolExtension(enum.Options, E_GoprotoEnumStringer, proto.GetBoolExtension(file.Options, E_GoprotoEnumStringerAll, true)) +} + +func IsEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { + return proto.GetBoolExtension(enum.Options, E_EnumStringer, proto.GetBoolExtension(file.Options, E_EnumStringerAll, false)) +} + +func IsUnsafeMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_UnsafeMarshaler, proto.GetBoolExtension(file.Options, E_UnsafeMarshalerAll, false)) +} + +func IsUnsafeUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_UnsafeUnmarshaler, proto.GetBoolExtension(file.Options, E_UnsafeUnmarshalerAll, false)) +} + +func HasExtensionsMap(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoExtensionsMap, proto.GetBoolExtension(file.Options, E_GoprotoExtensionsMapAll, true)) +} + +func HasUnrecognized(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoUnrecognized, proto.GetBoolExtension(file.Options, E_GoprotoUnrecognizedAll, true)) +} + +func IsProto3(file *google_protobuf.FileDescriptorProto) bool { + return file.GetSyntax() == "proto3" +} + +func ImportsGoGoProto(file *google_protobuf.FileDescriptorProto) bool { + return proto.GetBoolExtension(file.Options, E_GogoprotoImport, true) +} + +func HasCompare(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Compare, proto.GetBoolExtension(file.Options, E_CompareAll, false)) +} + +func RegistersGolangProto(file *google_protobuf.FileDescriptorProto) bool { + return proto.GetBoolExtension(file.Options, E_GoprotoRegistration, false) +} + +func HasMessageName(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Messagename, proto.GetBoolExtension(file.Options, E_MessagenameAll, false)) +} + +func HasSizecache(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoSizecache, proto.GetBoolExtension(file.Options, E_GoprotoSizecacheAll, true)) +} + +func HasUnkeyed(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_GoprotoUnkeyed, proto.GetBoolExtension(file.Options, E_GoprotoUnkeyedAll, true)) +} diff --git a/vendor/github.com/gogo/protobuf/io/full.go b/vendor/github.com/gogo/protobuf/io/full.go new file mode 100644 index 00000000..550726a3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/io/full.go @@ -0,0 +1,102 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package io + +import ( + "github.com/gogo/protobuf/proto" + "io" +) + +func NewFullWriter(w io.Writer) WriteCloser { + return &fullWriter{w, nil} +} + +type fullWriter struct { + w io.Writer + buffer []byte +} + +func (this *fullWriter) WriteMsg(msg proto.Message) (err error) { + var data []byte + if m, ok := msg.(marshaler); ok { + n, ok := getSize(m) + if !ok { + data, err = proto.Marshal(msg) + if err != nil { + return err + } + } + if n >= len(this.buffer) { + this.buffer = make([]byte, n) + } + _, err = m.MarshalTo(this.buffer) + if err != nil { + return err + } + data = this.buffer[:n] + } else { + data, err = proto.Marshal(msg) + if err != nil { + return err + } + } + _, err = this.w.Write(data) + return err +} + +func (this *fullWriter) Close() error { + if closer, ok := this.w.(io.Closer); ok { + return closer.Close() + } + return nil +} + +type fullReader struct { + r io.Reader + buf []byte +} + +func NewFullReader(r io.Reader, maxSize int) ReadCloser { + return &fullReader{r, make([]byte, maxSize)} +} + +func (this *fullReader) ReadMsg(msg proto.Message) error { + length, err := this.r.Read(this.buf) + if err != nil { + return err + } + return proto.Unmarshal(this.buf[:length], msg) +} + +func (this *fullReader) Close() error { + if closer, ok := this.r.(io.Closer); ok { + return closer.Close() + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/io/io.go b/vendor/github.com/gogo/protobuf/io/io.go new file mode 100644 index 00000000..6dca519a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/io/io.go @@ -0,0 +1,70 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package io + +import ( + "github.com/gogo/protobuf/proto" + "io" +) + +type Writer interface { + WriteMsg(proto.Message) error +} + +type WriteCloser interface { + Writer + io.Closer +} + +type Reader interface { + ReadMsg(msg proto.Message) error +} + +type ReadCloser interface { + Reader + io.Closer +} + +type marshaler interface { + MarshalTo(data []byte) (n int, err error) +} + +func getSize(v interface{}) (int, bool) { + if sz, ok := v.(interface { + Size() (n int) + }); ok { + return sz.Size(), true + } else if sz, ok := v.(interface { + ProtoSize() (n int) + }); ok { + return sz.ProtoSize(), true + } else { + return 0, false + } +} diff --git a/vendor/github.com/gogo/protobuf/io/uint32.go b/vendor/github.com/gogo/protobuf/io/uint32.go new file mode 100644 index 00000000..fc43857d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/io/uint32.go @@ -0,0 +1,138 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package io + +import ( + "encoding/binary" + "io" + + "github.com/gogo/protobuf/proto" +) + +const uint32BinaryLen = 4 + +func NewUint32DelimitedWriter(w io.Writer, byteOrder binary.ByteOrder) WriteCloser { + return &uint32Writer{w, byteOrder, nil, make([]byte, uint32BinaryLen)} +} + +func NewSizeUint32DelimitedWriter(w io.Writer, byteOrder binary.ByteOrder, size int) WriteCloser { + return &uint32Writer{w, byteOrder, make([]byte, size), make([]byte, uint32BinaryLen)} +} + +type uint32Writer struct { + w io.Writer + byteOrder binary.ByteOrder + buffer []byte + lenBuf []byte +} + +func (this *uint32Writer) writeFallback(msg proto.Message) error { + data, err := proto.Marshal(msg) + if err != nil { + return err + } + + length := uint32(len(data)) + this.byteOrder.PutUint32(this.lenBuf, length) + if _, err = this.w.Write(this.lenBuf); err != nil { + return err + } + _, err = this.w.Write(data) + return err +} + +func (this *uint32Writer) WriteMsg(msg proto.Message) error { + m, ok := msg.(marshaler) + if !ok { + return this.writeFallback(msg) + } + + n, ok := getSize(m) + if !ok { + return this.writeFallback(msg) + } + + size := n + uint32BinaryLen + if size > len(this.buffer) { + this.buffer = make([]byte, size) + } + + this.byteOrder.PutUint32(this.buffer, uint32(n)) + if _, err := m.MarshalTo(this.buffer[uint32BinaryLen:]); err != nil { + return err + } + + _, err := this.w.Write(this.buffer[:size]) + return err +} + +func (this *uint32Writer) Close() error { + if closer, ok := this.w.(io.Closer); ok { + return closer.Close() + } + return nil +} + +type uint32Reader struct { + r io.Reader + byteOrder binary.ByteOrder + lenBuf []byte + buf []byte + maxSize int +} + +func NewUint32DelimitedReader(r io.Reader, byteOrder binary.ByteOrder, maxSize int) ReadCloser { + return &uint32Reader{r, byteOrder, make([]byte, 4), nil, maxSize} +} + +func (this *uint32Reader) ReadMsg(msg proto.Message) error { + if _, err := io.ReadFull(this.r, this.lenBuf); err != nil { + return err + } + length32 := this.byteOrder.Uint32(this.lenBuf) + length := int(length32) + if length < 0 || length > this.maxSize { + return io.ErrShortBuffer + } + if length >= len(this.buf) { + this.buf = make([]byte, length) + } + _, err := io.ReadFull(this.r, this.buf[:length]) + if err != nil { + return err + } + return proto.Unmarshal(this.buf[:length], msg) +} + +func (this *uint32Reader) Close() error { + if closer, ok := this.r.(io.Closer); ok { + return closer.Close() + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/io/varint.go b/vendor/github.com/gogo/protobuf/io/varint.go new file mode 100644 index 00000000..e81e296e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/io/varint.go @@ -0,0 +1,133 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package io + +import ( + "bufio" + "encoding/binary" + "errors" + "github.com/gogo/protobuf/proto" + "io" +) + +var ( + errSmallBuffer = errors.New("Buffer Too Small") + errLargeValue = errors.New("Value is Larger than 64 bits") +) + +func NewDelimitedWriter(w io.Writer) WriteCloser { + return &varintWriter{w, make([]byte, binary.MaxVarintLen64), nil} +} + +type varintWriter struct { + w io.Writer + lenBuf []byte + buffer []byte +} + +func (this *varintWriter) WriteMsg(msg proto.Message) (err error) { + var data []byte + if m, ok := msg.(marshaler); ok { + n, ok := getSize(m) + if ok { + if n+binary.MaxVarintLen64 >= len(this.buffer) { + this.buffer = make([]byte, n+binary.MaxVarintLen64) + } + lenOff := binary.PutUvarint(this.buffer, uint64(n)) + _, err = m.MarshalTo(this.buffer[lenOff:]) + if err != nil { + return err + } + _, err = this.w.Write(this.buffer[:lenOff+n]) + return err + } + } + + // fallback + data, err = proto.Marshal(msg) + if err != nil { + return err + } + length := uint64(len(data)) + n := binary.PutUvarint(this.lenBuf, length) + _, err = this.w.Write(this.lenBuf[:n]) + if err != nil { + return err + } + _, err = this.w.Write(data) + return err +} + +func (this *varintWriter) Close() error { + if closer, ok := this.w.(io.Closer); ok { + return closer.Close() + } + return nil +} + +func NewDelimitedReader(r io.Reader, maxSize int) ReadCloser { + var closer io.Closer + if c, ok := r.(io.Closer); ok { + closer = c + } + return &varintReader{bufio.NewReader(r), nil, maxSize, closer} +} + +type varintReader struct { + r *bufio.Reader + buf []byte + maxSize int + closer io.Closer +} + +func (this *varintReader) ReadMsg(msg proto.Message) error { + length64, err := binary.ReadUvarint(this.r) + if err != nil { + return err + } + length := int(length64) + if length < 0 || length > this.maxSize { + return io.ErrShortBuffer + } + if len(this.buf) < length { + this.buf = make([]byte, length) + } + buf := this.buf[:length] + if _, err := io.ReadFull(this.r, buf); err != nil { + return err + } + return proto.Unmarshal(buf, msg) +} + +func (this *varintReader) Close() error { + if this.closer != nil { + return this.closer.Close() + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/proto/Makefile b/vendor/github.com/gogo/protobuf/proto/Makefile new file mode 100644 index 00000000..00d65f32 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/Makefile @@ -0,0 +1,43 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +install: + go install + +test: install generate-test-pbs + go test + + +generate-test-pbs: + make install + make -C test_proto + make -C proto3_proto + make diff --git a/vendor/github.com/gogo/protobuf/proto/clone.go b/vendor/github.com/gogo/protobuf/proto/clone.go new file mode 100644 index 00000000..a26b046d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/clone.go @@ -0,0 +1,258 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Protocol buffer deep copy and merge. +// TODO: RawMessage. + +package proto + +import ( + "fmt" + "log" + "reflect" + "strings" +) + +// Clone returns a deep copy of a protocol buffer. +func Clone(src Message) Message { + in := reflect.ValueOf(src) + if in.IsNil() { + return src + } + out := reflect.New(in.Type().Elem()) + dst := out.Interface().(Message) + Merge(dst, src) + return dst +} + +// Merger is the interface representing objects that can merge messages of the same type. +type Merger interface { + // Merge merges src into this message. + // Required and optional fields that are set in src will be set to that value in dst. + // Elements of repeated fields will be appended. + // + // Merge may panic if called with a different argument type than the receiver. + Merge(src Message) +} + +// generatedMerger is the custom merge method that generated protos will have. +// We must add this method since a generate Merge method will conflict with +// many existing protos that have a Merge data field already defined. +type generatedMerger interface { + XXX_Merge(src Message) +} + +// Merge merges src into dst. +// Required and optional fields that are set in src will be set to that value in dst. +// Elements of repeated fields will be appended. +// Merge panics if src and dst are not the same type, or if dst is nil. +func Merge(dst, src Message) { + if m, ok := dst.(Merger); ok { + m.Merge(src) + return + } + + in := reflect.ValueOf(src) + out := reflect.ValueOf(dst) + if out.IsNil() { + panic("proto: nil destination") + } + if in.Type() != out.Type() { + panic(fmt.Sprintf("proto.Merge(%T, %T) type mismatch", dst, src)) + } + if in.IsNil() { + return // Merge from nil src is a noop + } + if m, ok := dst.(generatedMerger); ok { + m.XXX_Merge(src) + return + } + mergeStruct(out.Elem(), in.Elem()) +} + +func mergeStruct(out, in reflect.Value) { + sprop := GetProperties(in.Type()) + for i := 0; i < in.NumField(); i++ { + f := in.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i]) + } + + if emIn, ok := in.Addr().Interface().(extensionsBytes); ok { + emOut := out.Addr().Interface().(extensionsBytes) + bIn := emIn.GetExtensions() + bOut := emOut.GetExtensions() + *bOut = append(*bOut, *bIn...) + } else if emIn, err := extendable(in.Addr().Interface()); err == nil { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } + } + + uf := in.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return + } + uin := uf.Bytes() + if len(uin) > 0 { + out.FieldByName("XXX_unrecognized").SetBytes(append([]byte(nil), uin...)) + } +} + +// mergeAny performs a merge between two values of the same type. +// viaPtr indicates whether the values were indirected through a pointer (implying proto2). +// prop is set if this is a struct field (it may be nil). +func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) { + if in.Type() == protoMessageType { + if !in.IsNil() { + if out.IsNil() { + out.Set(reflect.ValueOf(Clone(in.Interface().(Message)))) + } else { + Merge(out.Interface().(Message), in.Interface().(Message)) + } + } + return + } + switch in.Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + if !viaPtr && isProto3Zero(in) { + return + } + out.Set(in) + case reflect.Interface: + // Probably a oneof field; copy non-nil values. + if in.IsNil() { + return + } + // Allocate destination if it is not set, or set to a different type. + // Otherwise we will merge as normal. + if out.IsNil() || out.Elem().Type() != in.Elem().Type() { + out.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T) + } + mergeAny(out.Elem(), in.Elem(), false, nil) + case reflect.Map: + if in.Len() == 0 { + return + } + if out.IsNil() { + out.Set(reflect.MakeMap(in.Type())) + } + // For maps with value types of *T or []byte we need to deep copy each value. + elemKind := in.Type().Elem().Kind() + for _, key := range in.MapKeys() { + var val reflect.Value + switch elemKind { + case reflect.Ptr: + val = reflect.New(in.Type().Elem().Elem()) + mergeAny(val, in.MapIndex(key), false, nil) + case reflect.Slice: + val = in.MapIndex(key) + val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) + default: + val = in.MapIndex(key) + } + out.SetMapIndex(key, val) + } + case reflect.Ptr: + if in.IsNil() { + return + } + if out.IsNil() { + out.Set(reflect.New(in.Elem().Type())) + } + mergeAny(out.Elem(), in.Elem(), true, nil) + case reflect.Slice: + if in.IsNil() { + return + } + if in.Type().Elem().Kind() == reflect.Uint8 { + // []byte is a scalar bytes field, not a repeated field. + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value, and should not + // be merged. + if prop != nil && prop.proto3 && in.Len() == 0 { + return + } + + // Make a deep copy. + // Append to []byte{} instead of []byte(nil) so that we never end up + // with a nil result. + out.SetBytes(append([]byte{}, in.Bytes()...)) + return + } + n := in.Len() + if out.IsNil() { + out.Set(reflect.MakeSlice(in.Type(), 0, n)) + } + switch in.Type().Elem().Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + out.Set(reflect.AppendSlice(out, in)) + default: + for i := 0; i < n; i++ { + x := reflect.Indirect(reflect.New(in.Type().Elem())) + mergeAny(x, in.Index(i), false, nil) + out.Set(reflect.Append(out, x)) + } + } + case reflect.Struct: + mergeStruct(out, in) + default: + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to copy %v", in) + } +} + +func mergeExtension(out, in map[int32]Extension) { + for extNum, eIn := range in { + eOut := Extension{desc: eIn.desc} + if eIn.value != nil { + v := reflect.New(reflect.TypeOf(eIn.value)).Elem() + mergeAny(v, reflect.ValueOf(eIn.value), false, nil) + eOut.value = v.Interface() + } + if eIn.enc != nil { + eOut.enc = make([]byte, len(eIn.enc)) + copy(eOut.enc, eIn.enc) + } + + out[extNum] = eOut + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/custom_gogo.go b/vendor/github.com/gogo/protobuf/proto/custom_gogo.go new file mode 100644 index 00000000..24552483 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/custom_gogo.go @@ -0,0 +1,39 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import "reflect" + +type custom interface { + Marshal() ([]byte, error) + Unmarshal(data []byte) error + Size() int +} + +var customType = reflect.TypeOf((*custom)(nil)).Elem() diff --git a/vendor/github.com/gogo/protobuf/proto/decode.go b/vendor/github.com/gogo/protobuf/proto/decode.go new file mode 100644 index 00000000..63b0f08b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/decode.go @@ -0,0 +1,427 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for decoding protocol buffer data to construct in-memory representations. + */ + +import ( + "errors" + "fmt" + "io" +) + +// errOverflow is returned when an integer is too large to be represented. +var errOverflow = errors.New("proto: integer overflow") + +// ErrInternalBadWireType is returned by generated code when an incorrect +// wire type is encountered. It does not get returned to user code. +var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") + +// DecodeVarint reads a varint-encoded integer from the slice. +// It returns the integer and the number of bytes consumed, or +// zero if there is not enough. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func DecodeVarint(buf []byte) (x uint64, n int) { + for shift := uint(0); shift < 64; shift += 7 { + if n >= len(buf) { + return 0, 0 + } + b := uint64(buf[n]) + n++ + x |= (b & 0x7F) << shift + if (b & 0x80) == 0 { + return x, n + } + } + + // The number is too large to represent in a 64-bit value. + return 0, 0 +} + +func (p *Buffer) decodeVarintSlow() (x uint64, err error) { + i := p.index + l := len(p.buf) + + for shift := uint(0); shift < 64; shift += 7 { + if i >= l { + err = io.ErrUnexpectedEOF + return + } + b := p.buf[i] + i++ + x |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + p.index = i + return + } + } + + // The number is too large to represent in a 64-bit value. + err = errOverflow + return +} + +// DecodeVarint reads a varint-encoded integer from the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) DecodeVarint() (x uint64, err error) { + i := p.index + buf := p.buf + + if i >= len(buf) { + return 0, io.ErrUnexpectedEOF + } else if buf[i] < 0x80 { + p.index++ + return uint64(buf[i]), nil + } else if len(buf)-i < 10 { + return p.decodeVarintSlow() + } + + var b uint64 + // we already checked the first byte + x = uint64(buf[i]) - 0x80 + i++ + + b = uint64(buf[i]) + i++ + x += b << 7 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 7 + + b = uint64(buf[i]) + i++ + x += b << 14 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 14 + + b = uint64(buf[i]) + i++ + x += b << 21 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 21 + + b = uint64(buf[i]) + i++ + x += b << 28 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 28 + + b = uint64(buf[i]) + i++ + x += b << 35 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 35 + + b = uint64(buf[i]) + i++ + x += b << 42 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 42 + + b = uint64(buf[i]) + i++ + x += b << 49 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 49 + + b = uint64(buf[i]) + i++ + x += b << 56 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 56 + + b = uint64(buf[i]) + i++ + x += b << 63 + if b&0x80 == 0 { + goto done + } + + return 0, errOverflow + +done: + p.index = i + return x, nil +} + +// DecodeFixed64 reads a 64-bit integer from the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) DecodeFixed64() (x uint64, err error) { + // x, err already 0 + i := p.index + 8 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-8]) + x |= uint64(p.buf[i-7]) << 8 + x |= uint64(p.buf[i-6]) << 16 + x |= uint64(p.buf[i-5]) << 24 + x |= uint64(p.buf[i-4]) << 32 + x |= uint64(p.buf[i-3]) << 40 + x |= uint64(p.buf[i-2]) << 48 + x |= uint64(p.buf[i-1]) << 56 + return +} + +// DecodeFixed32 reads a 32-bit integer from the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) DecodeFixed32() (x uint64, err error) { + // x, err already 0 + i := p.index + 4 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-4]) + x |= uint64(p.buf[i-3]) << 8 + x |= uint64(p.buf[i-2]) << 16 + x |= uint64(p.buf[i-1]) << 24 + return +} + +// DecodeZigzag64 reads a zigzag-encoded 64-bit integer +// from the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) DecodeZigzag64() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = (x >> 1) ^ uint64((int64(x&1)<<63)>>63) + return +} + +// DecodeZigzag32 reads a zigzag-encoded 32-bit integer +// from the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) DecodeZigzag32() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31)) + return +} + +// DecodeRawBytes reads a count-delimited byte buffer from the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) { + n, err := p.DecodeVarint() + if err != nil { + return nil, err + } + + nb := int(n) + if nb < 0 { + return nil, fmt.Errorf("proto: bad byte length %d", nb) + } + end := p.index + nb + if end < p.index || end > len(p.buf) { + return nil, io.ErrUnexpectedEOF + } + + if !alloc { + // todo: check if can get more uses of alloc=false + buf = p.buf[p.index:end] + p.index += nb + return + } + + buf = make([]byte, nb) + copy(buf, p.buf[p.index:]) + p.index += nb + return +} + +// DecodeStringBytes reads an encoded string from the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) DecodeStringBytes() (s string, err error) { + buf, err := p.DecodeRawBytes(false) + if err != nil { + return + } + return string(buf), nil +} + +// Unmarshaler is the interface representing objects that can +// unmarshal themselves. The argument points to data that may be +// overwritten, so implementations should not keep references to the +// buffer. +// Unmarshal implementations should not clear the receiver. +// Any unmarshaled data should be merged into the receiver. +// Callers of Unmarshal that do not want to retain existing data +// should Reset the receiver before calling Unmarshal. +type Unmarshaler interface { + Unmarshal([]byte) error +} + +// newUnmarshaler is the interface representing objects that can +// unmarshal themselves. The semantics are identical to Unmarshaler. +// +// This exists to support protoc-gen-go generated messages. +// The proto package will stop type-asserting to this interface in the future. +// +// DO NOT DEPEND ON THIS. +type newUnmarshaler interface { + XXX_Unmarshal([]byte) error +} + +// Unmarshal parses the protocol buffer representation in buf and places the +// decoded result in pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// Unmarshal resets pb before starting to unmarshal, so any +// existing data in pb is always removed. Use UnmarshalMerge +// to preserve and append to existing data. +func Unmarshal(buf []byte, pb Message) error { + pb.Reset() + if u, ok := pb.(newUnmarshaler); ok { + return u.XXX_Unmarshal(buf) + } + if u, ok := pb.(Unmarshaler); ok { + return u.Unmarshal(buf) + } + return NewBuffer(buf).Unmarshal(pb) +} + +// UnmarshalMerge parses the protocol buffer representation in buf and +// writes the decoded result to pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// UnmarshalMerge merges into existing data in pb. +// Most code should use Unmarshal instead. +func UnmarshalMerge(buf []byte, pb Message) error { + if u, ok := pb.(newUnmarshaler); ok { + return u.XXX_Unmarshal(buf) + } + if u, ok := pb.(Unmarshaler); ok { + // NOTE: The history of proto have unfortunately been inconsistent + // whether Unmarshaler should or should not implicitly clear itself. + // Some implementations do, most do not. + // Thus, calling this here may or may not do what people want. + // + // See https://github.com/golang/protobuf/issues/424 + return u.Unmarshal(buf) + } + return NewBuffer(buf).Unmarshal(pb) +} + +// DecodeMessage reads a count-delimited message from the Buffer. +func (p *Buffer) DecodeMessage(pb Message) error { + enc, err := p.DecodeRawBytes(false) + if err != nil { + return err + } + return NewBuffer(enc).Unmarshal(pb) +} + +// DecodeGroup reads a tag-delimited group from the Buffer. +// StartGroup tag is already consumed. This function consumes +// EndGroup tag. +func (p *Buffer) DecodeGroup(pb Message) error { + b := p.buf[p.index:] + x, y := findEndGroup(b) + if x < 0 { + return io.ErrUnexpectedEOF + } + err := Unmarshal(b[:x], pb) + p.index += y + return err +} + +// Unmarshal parses the protocol buffer representation in the +// Buffer and places the decoded result in pb. If the struct +// underlying pb does not match the data in the buffer, the results can be +// unpredictable. +// +// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal. +func (p *Buffer) Unmarshal(pb Message) error { + // If the object can unmarshal itself, let it. + if u, ok := pb.(newUnmarshaler); ok { + err := u.XXX_Unmarshal(p.buf[p.index:]) + p.index = len(p.buf) + return err + } + if u, ok := pb.(Unmarshaler); ok { + // NOTE: The history of proto have unfortunately been inconsistent + // whether Unmarshaler should or should not implicitly clear itself. + // Some implementations do, most do not. + // Thus, calling this here may or may not do what people want. + // + // See https://github.com/golang/protobuf/issues/424 + err := u.Unmarshal(p.buf[p.index:]) + p.index = len(p.buf) + return err + } + + // Slow workaround for messages that aren't Unmarshalers. + // This includes some hand-coded .pb.go files and + // bootstrap protos. + // TODO: fix all of those and then add Unmarshal to + // the Message interface. Then: + // The cast above and code below can be deleted. + // The old unmarshaler can be deleted. + // Clients can call Unmarshal directly (can already do that, actually). + var info InternalMessageInfo + err := info.Unmarshal(pb, p.buf[p.index:]) + p.index = len(p.buf) + return err +} diff --git a/vendor/github.com/gogo/protobuf/proto/deprecated.go b/vendor/github.com/gogo/protobuf/proto/deprecated.go new file mode 100644 index 00000000..35b882c0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/deprecated.go @@ -0,0 +1,63 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2018 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import "errors" + +// Deprecated: do not use. +type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 } + +// Deprecated: do not use. +func GetStats() Stats { return Stats{} } + +// Deprecated: do not use. +func MarshalMessageSet(interface{}) ([]byte, error) { + return nil, errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func UnmarshalMessageSet([]byte, interface{}) error { + return errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func MarshalMessageSetJSON(interface{}) ([]byte, error) { + return nil, errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func UnmarshalMessageSetJSON([]byte, interface{}) error { + return errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func RegisterMessageSetType(Message, int32, string) {} diff --git a/vendor/github.com/gogo/protobuf/proto/discard.go b/vendor/github.com/gogo/protobuf/proto/discard.go new file mode 100644 index 00000000..fe1bd7d9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/discard.go @@ -0,0 +1,350 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2017 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "fmt" + "reflect" + "strings" + "sync" + "sync/atomic" +) + +type generatedDiscarder interface { + XXX_DiscardUnknown() +} + +// DiscardUnknown recursively discards all unknown fields from this message +// and all embedded messages. +// +// When unmarshaling a message with unrecognized fields, the tags and values +// of such fields are preserved in the Message. This allows a later call to +// marshal to be able to produce a message that continues to have those +// unrecognized fields. To avoid this, DiscardUnknown is used to +// explicitly clear the unknown fields after unmarshaling. +// +// For proto2 messages, the unknown fields of message extensions are only +// discarded from messages that have been accessed via GetExtension. +func DiscardUnknown(m Message) { + if m, ok := m.(generatedDiscarder); ok { + m.XXX_DiscardUnknown() + return + } + // TODO: Dynamically populate a InternalMessageInfo for legacy messages, + // but the master branch has no implementation for InternalMessageInfo, + // so it would be more work to replicate that approach. + discardLegacy(m) +} + +// DiscardUnknown recursively discards all unknown fields. +func (a *InternalMessageInfo) DiscardUnknown(m Message) { + di := atomicLoadDiscardInfo(&a.discard) + if di == nil { + di = getDiscardInfo(reflect.TypeOf(m).Elem()) + atomicStoreDiscardInfo(&a.discard, di) + } + di.discard(toPointer(&m)) +} + +type discardInfo struct { + typ reflect.Type + + initialized int32 // 0: only typ is valid, 1: everything is valid + lock sync.Mutex + + fields []discardFieldInfo + unrecognized field +} + +type discardFieldInfo struct { + field field // Offset of field, guaranteed to be valid + discard func(src pointer) +} + +var ( + discardInfoMap = map[reflect.Type]*discardInfo{} + discardInfoLock sync.Mutex +) + +func getDiscardInfo(t reflect.Type) *discardInfo { + discardInfoLock.Lock() + defer discardInfoLock.Unlock() + di := discardInfoMap[t] + if di == nil { + di = &discardInfo{typ: t} + discardInfoMap[t] = di + } + return di +} + +func (di *discardInfo) discard(src pointer) { + if src.isNil() { + return // Nothing to do. + } + + if atomic.LoadInt32(&di.initialized) == 0 { + di.computeDiscardInfo() + } + + for _, fi := range di.fields { + sfp := src.offset(fi.field) + fi.discard(sfp) + } + + // For proto2 messages, only discard unknown fields in message extensions + // that have been accessed via GetExtension. + if em, err := extendable(src.asPointerTo(di.typ).Interface()); err == nil { + // Ignore lock since DiscardUnknown is not concurrency safe. + emm, _ := em.extensionsRead() + for _, mx := range emm { + if m, ok := mx.value.(Message); ok { + DiscardUnknown(m) + } + } + } + + if di.unrecognized.IsValid() { + *src.offset(di.unrecognized).toBytes() = nil + } +} + +func (di *discardInfo) computeDiscardInfo() { + di.lock.Lock() + defer di.lock.Unlock() + if di.initialized != 0 { + return + } + t := di.typ + n := t.NumField() + + for i := 0; i < n; i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + + dfi := discardFieldInfo{field: toField(&f)} + tf := f.Type + + // Unwrap tf to get its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic(fmt.Sprintf("%v.%s cannot be a slice of pointers to primitive types", t, f.Name)) + } + + switch tf.Kind() { + case reflect.Struct: + switch { + case !isPointer: + panic(fmt.Sprintf("%v.%s cannot be a direct struct value", t, f.Name)) + case isSlice: // E.g., []*pb.T + discardInfo := getDiscardInfo(tf) + dfi.discard = func(src pointer) { + sps := src.getPointerSlice() + for _, sp := range sps { + if !sp.isNil() { + discardInfo.discard(sp) + } + } + } + default: // E.g., *pb.T + discardInfo := getDiscardInfo(tf) + dfi.discard = func(src pointer) { + sp := src.getPointer() + if !sp.isNil() { + discardInfo.discard(sp) + } + } + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%v.%s cannot be a pointer to a map or a slice of map values", t, f.Name)) + default: // E.g., map[K]V + if tf.Elem().Kind() == reflect.Ptr { // Proto struct (e.g., *T) + dfi.discard = func(src pointer) { + sm := src.asPointerTo(tf).Elem() + if sm.Len() == 0 { + return + } + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + DiscardUnknown(val.Interface().(Message)) + } + } + } else { + dfi.discard = func(pointer) {} // Noop + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%v.%s cannot be a pointer to a interface or a slice of interface values", t, f.Name)) + default: // E.g., interface{} + // TODO: Make this faster? + dfi.discard = func(src pointer) { + su := src.asPointerTo(tf).Elem() + if !su.IsNil() { + sv := su.Elem().Elem().Field(0) + if sv.Kind() == reflect.Ptr && sv.IsNil() { + return + } + switch sv.Type().Kind() { + case reflect.Ptr: // Proto struct (e.g., *T) + DiscardUnknown(sv.Interface().(Message)) + } + } + } + } + default: + continue + } + di.fields = append(di.fields, dfi) + } + + di.unrecognized = invalidField + if f, ok := t.FieldByName("XXX_unrecognized"); ok { + if f.Type != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + di.unrecognized = toField(&f) + } + + atomic.StoreInt32(&di.initialized, 1) +} + +func discardLegacy(m Message) { + v := reflect.ValueOf(m) + if v.Kind() != reflect.Ptr || v.IsNil() { + return + } + v = v.Elem() + if v.Kind() != reflect.Struct { + return + } + t := v.Type() + + for i := 0; i < v.NumField(); i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + vf := v.Field(i) + tf := f.Type + + // Unwrap tf to get its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic(fmt.Sprintf("%T.%s cannot be a slice of pointers to primitive types", m, f.Name)) + } + + switch tf.Kind() { + case reflect.Struct: + switch { + case !isPointer: + panic(fmt.Sprintf("%T.%s cannot be a direct struct value", m, f.Name)) + case isSlice: // E.g., []*pb.T + for j := 0; j < vf.Len(); j++ { + discardLegacy(vf.Index(j).Interface().(Message)) + } + default: // E.g., *pb.T + discardLegacy(vf.Interface().(Message)) + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%T.%s cannot be a pointer to a map or a slice of map values", m, f.Name)) + default: // E.g., map[K]V + tv := vf.Type().Elem() + if tv.Kind() == reflect.Ptr && tv.Implements(protoMessageType) { // Proto struct (e.g., *T) + for _, key := range vf.MapKeys() { + val := vf.MapIndex(key) + discardLegacy(val.Interface().(Message)) + } + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%T.%s cannot be a pointer to a interface or a slice of interface values", m, f.Name)) + default: // E.g., test_proto.isCommunique_Union interface + if !vf.IsNil() && f.Tag.Get("protobuf_oneof") != "" { + vf = vf.Elem() // E.g., *test_proto.Communique_Msg + if !vf.IsNil() { + vf = vf.Elem() // E.g., test_proto.Communique_Msg + vf = vf.Field(0) // E.g., Proto struct (e.g., *T) or primitive value + if vf.Kind() == reflect.Ptr { + discardLegacy(vf.Interface().(Message)) + } + } + } + } + } + } + + if vf := v.FieldByName("XXX_unrecognized"); vf.IsValid() { + if vf.Type() != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + vf.Set(reflect.ValueOf([]byte(nil))) + } + + // For proto2 messages, only discard unknown fields in message extensions + // that have been accessed via GetExtension. + if em, err := extendable(m); err == nil { + // Ignore lock since discardLegacy is not concurrency safe. + emm, _ := em.extensionsRead() + for _, mx := range emm { + if m, ok := mx.value.(Message); ok { + discardLegacy(m) + } + } + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/duration.go b/vendor/github.com/gogo/protobuf/proto/duration.go new file mode 100644 index 00000000..93464c91 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/duration.go @@ -0,0 +1,100 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// This file implements conversions between google.protobuf.Duration +// and time.Duration. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Range of a Duration in seconds, as specified in + // google/protobuf/duration.proto. This is about 10,000 years in seconds. + maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) + minSeconds = -maxSeconds +) + +// validateDuration determines whether the Duration is valid according to the +// definition in google/protobuf/duration.proto. A valid Duration +// may still be too large to fit into a time.Duration (the range of Duration +// is about 10,000 years, and the range of time.Duration is about 290). +func validateDuration(d *duration) error { + if d == nil { + return errors.New("duration: nil Duration") + } + if d.Seconds < minSeconds || d.Seconds > maxSeconds { + return fmt.Errorf("duration: %#v: seconds out of range", d) + } + if d.Nanos <= -1e9 || d.Nanos >= 1e9 { + return fmt.Errorf("duration: %#v: nanos out of range", d) + } + // Seconds and Nanos must have the same sign, unless d.Nanos is zero. + if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) { + return fmt.Errorf("duration: %#v: seconds and nanos have different signs", d) + } + return nil +} + +// DurationFromProto converts a Duration to a time.Duration. DurationFromProto +// returns an error if the Duration is invalid or is too large to be +// represented in a time.Duration. +func durationFromProto(p *duration) (time.Duration, error) { + if err := validateDuration(p); err != nil { + return 0, err + } + d := time.Duration(p.Seconds) * time.Second + if int64(d/time.Second) != p.Seconds { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + if p.Nanos != 0 { + d += time.Duration(p.Nanos) + if (d < 0) != (p.Nanos < 0) { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + } + return d, nil +} + +// DurationProto converts a time.Duration to a Duration. +func durationProto(d time.Duration) *duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &duration{ + Seconds: secs, + Nanos: int32(nanos), + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/duration_gogo.go b/vendor/github.com/gogo/protobuf/proto/duration_gogo.go new file mode 100644 index 00000000..e748e173 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/duration_gogo.go @@ -0,0 +1,49 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "reflect" + "time" +) + +var durationType = reflect.TypeOf((*time.Duration)(nil)).Elem() + +type duration struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *duration) Reset() { *m = duration{} } +func (*duration) ProtoMessage() {} +func (*duration) String() string { return "duration" } + +func init() { + RegisterType((*duration)(nil), "gogo.protobuf.proto.duration") +} diff --git a/vendor/github.com/gogo/protobuf/proto/encode.go b/vendor/github.com/gogo/protobuf/proto/encode.go new file mode 100644 index 00000000..3abfed2c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/encode.go @@ -0,0 +1,203 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "errors" + "reflect" +) + +var ( + // errRepeatedHasNil is the error returned if Marshal is called with + // a struct with a repeated field containing a nil element. + errRepeatedHasNil = errors.New("proto: repeated field has nil element") + + // errOneofHasNil is the error returned if Marshal is called with + // a struct with a oneof field containing a nil element. + errOneofHasNil = errors.New("proto: oneof field has nil value") + + // ErrNil is the error returned if Marshal is called with nil. + ErrNil = errors.New("proto: Marshal called with nil") + + // ErrTooLarge is the error returned if Marshal is called with a + // message that encodes to >2GB. + ErrTooLarge = errors.New("proto: message encodes to over 2 GB") +) + +// The fundamental encoders that put bytes on the wire. +// Those that take integer types all accept uint64 and are +// therefore of type valueEncoder. + +const maxVarintBytes = 10 // maximum length of a varint + +// EncodeVarint returns the varint encoding of x. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +// Not used by the package itself, but helpful to clients +// wishing to use the same encoding. +func EncodeVarint(x uint64) []byte { + var buf [maxVarintBytes]byte + var n int + for n = 0; x > 127; n++ { + buf[n] = 0x80 | uint8(x&0x7F) + x >>= 7 + } + buf[n] = uint8(x) + n++ + return buf[0:n] +} + +// EncodeVarint writes a varint-encoded integer to the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) EncodeVarint(x uint64) error { + for x >= 1<<7 { + p.buf = append(p.buf, uint8(x&0x7f|0x80)) + x >>= 7 + } + p.buf = append(p.buf, uint8(x)) + return nil +} + +// SizeVarint returns the varint encoding size of an integer. +func SizeVarint(x uint64) int { + switch { + case x < 1<<7: + return 1 + case x < 1<<14: + return 2 + case x < 1<<21: + return 3 + case x < 1<<28: + return 4 + case x < 1<<35: + return 5 + case x < 1<<42: + return 6 + case x < 1<<49: + return 7 + case x < 1<<56: + return 8 + case x < 1<<63: + return 9 + } + return 10 +} + +// EncodeFixed64 writes a 64-bit integer to the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) EncodeFixed64(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24), + uint8(x>>32), + uint8(x>>40), + uint8(x>>48), + uint8(x>>56)) + return nil +} + +// EncodeFixed32 writes a 32-bit integer to the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) EncodeFixed32(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24)) + return nil +} + +// EncodeZigzag64 writes a zigzag-encoded 64-bit integer +// to the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) EncodeZigzag64(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +// EncodeZigzag32 writes a zigzag-encoded 32-bit integer +// to the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) EncodeZigzag32(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) +} + +// EncodeRawBytes writes a count-delimited byte buffer to the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) EncodeRawBytes(b []byte) error { + p.EncodeVarint(uint64(len(b))) + p.buf = append(p.buf, b...) + return nil +} + +// EncodeStringBytes writes an encoded string to the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) EncodeStringBytes(s string) error { + p.EncodeVarint(uint64(len(s))) + p.buf = append(p.buf, s...) + return nil +} + +// Marshaler is the interface representing objects that can marshal themselves. +type Marshaler interface { + Marshal() ([]byte, error) +} + +// EncodeMessage writes the protocol buffer to the Buffer, +// prefixed by a varint-encoded length. +func (p *Buffer) EncodeMessage(pb Message) error { + siz := Size(pb) + p.EncodeVarint(uint64(siz)) + return p.Marshal(pb) +} + +// All protocol buffer fields are nillable, but be careful. +func isNil(v reflect.Value) bool { + switch v.Kind() { + case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + return v.IsNil() + } + return false +} diff --git a/vendor/github.com/gogo/protobuf/proto/encode_gogo.go b/vendor/github.com/gogo/protobuf/proto/encode_gogo.go new file mode 100644 index 00000000..0f5fb173 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/encode_gogo.go @@ -0,0 +1,33 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +func NewRequiredNotSetError(field string) *RequiredNotSetError { + return &RequiredNotSetError{field} +} diff --git a/vendor/github.com/gogo/protobuf/proto/equal.go b/vendor/github.com/gogo/protobuf/proto/equal.go new file mode 100644 index 00000000..d4db5a1c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/equal.go @@ -0,0 +1,300 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Protocol buffer comparison. + +package proto + +import ( + "bytes" + "log" + "reflect" + "strings" +) + +/* +Equal returns true iff protocol buffers a and b are equal. +The arguments must both be pointers to protocol buffer structs. + +Equality is defined in this way: + - Two messages are equal iff they are the same type, + corresponding fields are equal, unknown field sets + are equal, and extensions sets are equal. + - Two set scalar fields are equal iff their values are equal. + If the fields are of a floating-point type, remember that + NaN != x for all x, including NaN. If the message is defined + in a proto3 .proto file, fields are not "set"; specifically, + zero length proto3 "bytes" fields are equal (nil == {}). + - Two repeated fields are equal iff their lengths are the same, + and their corresponding elements are equal. Note a "bytes" field, + although represented by []byte, is not a repeated field and the + rule for the scalar fields described above applies. + - Two unset fields are equal. + - Two unknown field sets are equal if their current + encoded state is equal. + - Two extension sets are equal iff they have corresponding + elements that are pairwise equal. + - Two map fields are equal iff their lengths are the same, + and they contain the same set of elements. Zero-length map + fields are equal. + - Every other combination of things are not equal. + +The return value is undefined if a and b are not protocol buffers. +*/ +func Equal(a, b Message) bool { + if a == nil || b == nil { + return a == b + } + v1, v2 := reflect.ValueOf(a), reflect.ValueOf(b) + if v1.Type() != v2.Type() { + return false + } + if v1.Kind() == reflect.Ptr { + if v1.IsNil() { + return v2.IsNil() + } + if v2.IsNil() { + return false + } + v1, v2 = v1.Elem(), v2.Elem() + } + if v1.Kind() != reflect.Struct { + return false + } + return equalStruct(v1, v2) +} + +// v1 and v2 are known to have the same type. +func equalStruct(v1, v2 reflect.Value) bool { + sprop := GetProperties(v1.Type()) + for i := 0; i < v1.NumField(); i++ { + f := v1.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + f1, f2 := v1.Field(i), v2.Field(i) + if f.Type.Kind() == reflect.Ptr { + if n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 { + // both unset + continue + } else if n1 != n2 { + // set/unset mismatch + return false + } + f1, f2 = f1.Elem(), f2.Elem() + } + if !equalAny(f1, f2, sprop.Prop[i]) { + return false + } + } + + if em1 := v1.FieldByName("XXX_InternalExtensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_InternalExtensions") + if !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) { + return false + } + } + + if em1 := v1.FieldByName("XXX_extensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_extensions") + if !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) { + return false + } + } + + uf := v1.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return true + } + + u1 := uf.Bytes() + u2 := v2.FieldByName("XXX_unrecognized").Bytes() + return bytes.Equal(u1, u2) +} + +// v1 and v2 are known to have the same type. +// prop may be nil. +func equalAny(v1, v2 reflect.Value, prop *Properties) bool { + if v1.Type() == protoMessageType { + m1, _ := v1.Interface().(Message) + m2, _ := v2.Interface().(Message) + return Equal(m1, m2) + } + switch v1.Kind() { + case reflect.Bool: + return v1.Bool() == v2.Bool() + case reflect.Float32, reflect.Float64: + return v1.Float() == v2.Float() + case reflect.Int32, reflect.Int64: + return v1.Int() == v2.Int() + case reflect.Interface: + // Probably a oneof field; compare the inner values. + n1, n2 := v1.IsNil(), v2.IsNil() + if n1 || n2 { + return n1 == n2 + } + e1, e2 := v1.Elem(), v2.Elem() + if e1.Type() != e2.Type() { + return false + } + return equalAny(e1, e2, nil) + case reflect.Map: + if v1.Len() != v2.Len() { + return false + } + for _, key := range v1.MapKeys() { + val2 := v2.MapIndex(key) + if !val2.IsValid() { + // This key was not found in the second map. + return false + } + if !equalAny(v1.MapIndex(key), val2, nil) { + return false + } + } + return true + case reflect.Ptr: + // Maps may have nil values in them, so check for nil. + if v1.IsNil() && v2.IsNil() { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return equalAny(v1.Elem(), v2.Elem(), prop) + case reflect.Slice: + if v1.Type().Elem().Kind() == reflect.Uint8 { + // short circuit: []byte + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value. + if prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte)) + } + + if v1.Len() != v2.Len() { + return false + } + for i := 0; i < v1.Len(); i++ { + if !equalAny(v1.Index(i), v2.Index(i), prop) { + return false + } + } + return true + case reflect.String: + return v1.Interface().(string) == v2.Interface().(string) + case reflect.Struct: + return equalStruct(v1, v2) + case reflect.Uint32, reflect.Uint64: + return v1.Uint() == v2.Uint() + } + + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to compare %v", v1) + return false +} + +// base is the struct type that the extensions are based on. +// x1 and x2 are InternalExtensions. +func equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool { + em1, _ := x1.extensionsRead() + em2, _ := x2.extensionsRead() + return equalExtMap(base, em1, em2) +} + +func equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool { + if len(em1) != len(em2) { + return false + } + + for extNum, e1 := range em1 { + e2, ok := em2[extNum] + if !ok { + return false + } + + m1, m2 := e1.value, e2.value + + if m1 == nil && m2 == nil { + // Both have only encoded form. + if bytes.Equal(e1.enc, e2.enc) { + continue + } + // The bytes are different, but the extensions might still be + // equal. We need to decode them to compare. + } + + if m1 != nil && m2 != nil { + // Both are unencoded. + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + continue + } + + // At least one is encoded. To do a semantically correct comparison + // we need to unmarshal them first. + var desc *ExtensionDesc + if m := extensionMaps[base]; m != nil { + desc = m[extNum] + } + if desc == nil { + // If both have only encoded form and the bytes are the same, + // it is handled above. We get here when the bytes are different. + // We don't know how to decode it, so just compare them as byte + // slices. + log.Printf("proto: don't know how to compare extension %d of %v", extNum, base) + return false + } + var err error + if m1 == nil { + m1, err = decodeExtension(e1.enc, desc) + } + if m2 == nil && err == nil { + m2, err = decodeExtension(e2.enc, desc) + } + if err != nil { + // The encoded form is invalid. + log.Printf("proto: badly encoded extension %d of %v: %v", extNum, base, err) + return false + } + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + } + + return true +} diff --git a/vendor/github.com/gogo/protobuf/proto/extensions.go b/vendor/github.com/gogo/protobuf/proto/extensions.go new file mode 100644 index 00000000..686bd2a0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/extensions.go @@ -0,0 +1,604 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Types and routines for supporting protocol buffer extensions. + */ + +import ( + "errors" + "fmt" + "io" + "reflect" + "strconv" + "sync" +) + +// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message. +var ErrMissingExtension = errors.New("proto: missing extension") + +// ExtensionRange represents a range of message extensions for a protocol buffer. +// Used in code generated by the protocol compiler. +type ExtensionRange struct { + Start, End int32 // both inclusive +} + +// extendableProto is an interface implemented by any protocol buffer generated by the current +// proto compiler that may be extended. +type extendableProto interface { + Message + ExtensionRangeArray() []ExtensionRange + extensionsWrite() map[int32]Extension + extensionsRead() (map[int32]Extension, sync.Locker) +} + +// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous +// version of the proto compiler that may be extended. +type extendableProtoV1 interface { + Message + ExtensionRangeArray() []ExtensionRange + ExtensionMap() map[int32]Extension +} + +// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto. +type extensionAdapter struct { + extendableProtoV1 +} + +func (e extensionAdapter) extensionsWrite() map[int32]Extension { + return e.ExtensionMap() +} + +func (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) { + return e.ExtensionMap(), notLocker{} +} + +// notLocker is a sync.Locker whose Lock and Unlock methods are nops. +type notLocker struct{} + +func (n notLocker) Lock() {} +func (n notLocker) Unlock() {} + +// extendable returns the extendableProto interface for the given generated proto message. +// If the proto message has the old extension format, it returns a wrapper that implements +// the extendableProto interface. +func extendable(p interface{}) (extendableProto, error) { + switch p := p.(type) { + case extendableProto: + if isNilPtr(p) { + return nil, fmt.Errorf("proto: nil %T is not extendable", p) + } + return p, nil + case extendableProtoV1: + if isNilPtr(p) { + return nil, fmt.Errorf("proto: nil %T is not extendable", p) + } + return extensionAdapter{p}, nil + case extensionsBytes: + return slowExtensionAdapter{p}, nil + } + // Don't allocate a specific error containing %T: + // this is the hot path for Clone and MarshalText. + return nil, errNotExtendable +} + +var errNotExtendable = errors.New("proto: not an extendable proto.Message") + +func isNilPtr(x interface{}) bool { + v := reflect.ValueOf(x) + return v.Kind() == reflect.Ptr && v.IsNil() +} + +// XXX_InternalExtensions is an internal representation of proto extensions. +// +// Each generated message struct type embeds an anonymous XXX_InternalExtensions field, +// thus gaining the unexported 'extensions' method, which can be called only from the proto package. +// +// The methods of XXX_InternalExtensions are not concurrency safe in general, +// but calls to logically read-only methods such as has and get may be executed concurrently. +type XXX_InternalExtensions struct { + // The struct must be indirect so that if a user inadvertently copies a + // generated message and its embedded XXX_InternalExtensions, they + // avoid the mayhem of a copied mutex. + // + // The mutex serializes all logically read-only operations to p.extensionMap. + // It is up to the client to ensure that write operations to p.extensionMap are + // mutually exclusive with other accesses. + p *struct { + mu sync.Mutex + extensionMap map[int32]Extension + } +} + +// extensionsWrite returns the extension map, creating it on first use. +func (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension { + if e.p == nil { + e.p = new(struct { + mu sync.Mutex + extensionMap map[int32]Extension + }) + e.p.extensionMap = make(map[int32]Extension) + } + return e.p.extensionMap +} + +// extensionsRead returns the extensions map for read-only use. It may be nil. +// The caller must hold the returned mutex's lock when accessing Elements within the map. +func (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) { + if e.p == nil { + return nil, nil + } + return e.p.extensionMap, &e.p.mu +} + +// ExtensionDesc represents an extension specification. +// Used in generated code from the protocol compiler. +type ExtensionDesc struct { + ExtendedType Message // nil pointer to the type that is being extended + ExtensionType interface{} // nil pointer to the extension type + Field int32 // field number + Name string // fully-qualified name of extension, for text formatting + Tag string // protobuf tag style + Filename string // name of the file in which the extension is defined +} + +func (ed *ExtensionDesc) repeated() bool { + t := reflect.TypeOf(ed.ExtensionType) + return t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 +} + +// Extension represents an extension in a message. +type Extension struct { + // When an extension is stored in a message using SetExtension + // only desc and value are set. When the message is marshaled + // enc will be set to the encoded form of the message. + // + // When a message is unmarshaled and contains extensions, each + // extension will have only enc set. When such an extension is + // accessed using GetExtension (or GetExtensions) desc and value + // will be set. + desc *ExtensionDesc + value interface{} + enc []byte +} + +// SetRawExtension is for testing only. +func SetRawExtension(base Message, id int32, b []byte) { + if ebase, ok := base.(extensionsBytes); ok { + clearExtension(base, id) + ext := ebase.GetExtensions() + *ext = append(*ext, b...) + return + } + epb, err := extendable(base) + if err != nil { + return + } + extmap := epb.extensionsWrite() + extmap[id] = Extension{enc: b} +} + +// isExtensionField returns true iff the given field number is in an extension range. +func isExtensionField(pb extendableProto, field int32) bool { + for _, er := range pb.ExtensionRangeArray() { + if er.Start <= field && field <= er.End { + return true + } + } + return false +} + +// checkExtensionTypes checks that the given extension is valid for pb. +func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error { + var pbi interface{} = pb + // Check the extended type. + if ea, ok := pbi.(extensionAdapter); ok { + pbi = ea.extendableProtoV1 + } + if ea, ok := pbi.(slowExtensionAdapter); ok { + pbi = ea.extensionsBytes + } + if a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b { + return fmt.Errorf("proto: bad extended type; %v does not extend %v", b, a) + } + // Check the range. + if !isExtensionField(pb, extension.Field) { + return errors.New("proto: bad extension number; not in declared ranges") + } + return nil +} + +// extPropKey is sufficient to uniquely identify an extension. +type extPropKey struct { + base reflect.Type + field int32 +} + +var extProp = struct { + sync.RWMutex + m map[extPropKey]*Properties +}{ + m: make(map[extPropKey]*Properties), +} + +func extensionProperties(ed *ExtensionDesc) *Properties { + key := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field} + + extProp.RLock() + if prop, ok := extProp.m[key]; ok { + extProp.RUnlock() + return prop + } + extProp.RUnlock() + + extProp.Lock() + defer extProp.Unlock() + // Check again. + if prop, ok := extProp.m[key]; ok { + return prop + } + + prop := new(Properties) + prop.Init(reflect.TypeOf(ed.ExtensionType), "unknown_name", ed.Tag, nil) + extProp.m[key] = prop + return prop +} + +// HasExtension returns whether the given extension is present in pb. +func HasExtension(pb Message, extension *ExtensionDesc) bool { + if epb, doki := pb.(extensionsBytes); doki { + ext := epb.GetExtensions() + buf := *ext + o := 0 + for o < len(buf) { + tag, n := DecodeVarint(buf[o:]) + fieldNum := int32(tag >> 3) + if int32(fieldNum) == extension.Field { + return true + } + wireType := int(tag & 0x7) + o += n + l, err := size(buf[o:], wireType) + if err != nil { + return false + } + o += l + } + return false + } + // TODO: Check types, field numbers, etc.? + epb, err := extendable(pb) + if err != nil { + return false + } + extmap, mu := epb.extensionsRead() + if extmap == nil { + return false + } + mu.Lock() + _, ok := extmap[extension.Field] + mu.Unlock() + return ok +} + +// ClearExtension removes the given extension from pb. +func ClearExtension(pb Message, extension *ExtensionDesc) { + clearExtension(pb, extension.Field) +} + +func clearExtension(pb Message, fieldNum int32) { + if epb, ok := pb.(extensionsBytes); ok { + offset := 0 + for offset != -1 { + offset = deleteExtension(epb, fieldNum, offset) + } + return + } + epb, err := extendable(pb) + if err != nil { + return + } + // TODO: Check types, field numbers, etc.? + extmap := epb.extensionsWrite() + delete(extmap, fieldNum) +} + +// GetExtension retrieves a proto2 extended field from pb. +// +// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil), +// then GetExtension parses the encoded field and returns a Go value of the specified type. +// If the field is not present, then the default value is returned (if one is specified), +// otherwise ErrMissingExtension is reported. +// +// If the descriptor is not type complete (i.e., ExtensionDesc.ExtensionType is nil), +// then GetExtension returns the raw encoded bytes of the field extension. +func GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) { + if epb, doki := pb.(extensionsBytes); doki { + ext := epb.GetExtensions() + return decodeExtensionFromBytes(extension, *ext) + } + + epb, err := extendable(pb) + if err != nil { + return nil, err + } + + if extension.ExtendedType != nil { + // can only check type if this is a complete descriptor + if cerr := checkExtensionTypes(epb, extension); cerr != nil { + return nil, cerr + } + } + + emap, mu := epb.extensionsRead() + if emap == nil { + return defaultExtensionValue(extension) + } + mu.Lock() + defer mu.Unlock() + e, ok := emap[extension.Field] + if !ok { + // defaultExtensionValue returns the default value or + // ErrMissingExtension if there is no default. + return defaultExtensionValue(extension) + } + + if e.value != nil { + // Already decoded. Check the descriptor, though. + if e.desc != extension { + // This shouldn't happen. If it does, it means that + // GetExtension was called twice with two different + // descriptors with the same field number. + return nil, errors.New("proto: descriptor conflict") + } + return e.value, nil + } + + if extension.ExtensionType == nil { + // incomplete descriptor + return e.enc, nil + } + + v, err := decodeExtension(e.enc, extension) + if err != nil { + return nil, err + } + + // Remember the decoded version and drop the encoded version. + // That way it is safe to mutate what we return. + e.value = v + e.desc = extension + e.enc = nil + emap[extension.Field] = e + return e.value, nil +} + +// defaultExtensionValue returns the default value for extension. +// If no default for an extension is defined ErrMissingExtension is returned. +func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) { + if extension.ExtensionType == nil { + // incomplete descriptor, so no default + return nil, ErrMissingExtension + } + + t := reflect.TypeOf(extension.ExtensionType) + props := extensionProperties(extension) + + sf, _, err := fieldDefault(t, props) + if err != nil { + return nil, err + } + + if sf == nil || sf.value == nil { + // There is no default value. + return nil, ErrMissingExtension + } + + if t.Kind() != reflect.Ptr { + // We do not need to return a Ptr, we can directly return sf.value. + return sf.value, nil + } + + // We need to return an interface{} that is a pointer to sf.value. + value := reflect.New(t).Elem() + value.Set(reflect.New(value.Type().Elem())) + if sf.kind == reflect.Int32 { + // We may have an int32 or an enum, but the underlying data is int32. + // Since we can't set an int32 into a non int32 reflect.value directly + // set it as a int32. + value.Elem().SetInt(int64(sf.value.(int32))) + } else { + value.Elem().Set(reflect.ValueOf(sf.value)) + } + return value.Interface(), nil +} + +// decodeExtension decodes an extension encoded in b. +func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) { + t := reflect.TypeOf(extension.ExtensionType) + unmarshal := typeUnmarshaler(t, extension.Tag) + + // t is a pointer to a struct, pointer to basic type or a slice. + // Allocate space to store the pointer/slice. + value := reflect.New(t).Elem() + + var err error + for { + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + wire := int(x) & 7 + + b, err = unmarshal(b, valToPointer(value.Addr()), wire) + if err != nil { + return nil, err + } + + if len(b) == 0 { + break + } + } + return value.Interface(), nil +} + +// GetExtensions returns a slice of the extensions present in pb that are also listed in es. +// The returned slice has the same length as es; missing extensions will appear as nil elements. +func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) { + epb, err := extendable(pb) + if err != nil { + return nil, err + } + extensions = make([]interface{}, len(es)) + for i, e := range es { + extensions[i], err = GetExtension(epb, e) + if err == ErrMissingExtension { + err = nil + } + if err != nil { + return + } + } + return +} + +// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order. +// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing +// just the Field field, which defines the extension's field number. +func ExtensionDescs(pb Message) ([]*ExtensionDesc, error) { + epb, err := extendable(pb) + if err != nil { + return nil, err + } + registeredExtensions := RegisteredExtensions(pb) + + emap, mu := epb.extensionsRead() + if emap == nil { + return nil, nil + } + mu.Lock() + defer mu.Unlock() + extensions := make([]*ExtensionDesc, 0, len(emap)) + for extid, e := range emap { + desc := e.desc + if desc == nil { + desc = registeredExtensions[extid] + if desc == nil { + desc = &ExtensionDesc{Field: extid} + } + } + + extensions = append(extensions, desc) + } + return extensions, nil +} + +// SetExtension sets the specified extension of pb to the specified value. +func SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error { + if epb, ok := pb.(extensionsBytes); ok { + newb, err := encodeExtension(extension, value) + if err != nil { + return err + } + bb := epb.GetExtensions() + *bb = append(*bb, newb...) + return nil + } + epb, err := extendable(pb) + if err != nil { + return err + } + if err := checkExtensionTypes(epb, extension); err != nil { + return err + } + typ := reflect.TypeOf(extension.ExtensionType) + if typ != reflect.TypeOf(value) { + return fmt.Errorf("proto: bad extension value type. got: %T, want: %T", value, extension.ExtensionType) + } + // nil extension values need to be caught early, because the + // encoder can't distinguish an ErrNil due to a nil extension + // from an ErrNil due to a missing field. Extensions are + // always optional, so the encoder would just swallow the error + // and drop all the extensions from the encoded message. + if reflect.ValueOf(value).IsNil() { + return fmt.Errorf("proto: SetExtension called with nil value of type %T", value) + } + + extmap := epb.extensionsWrite() + extmap[extension.Field] = Extension{desc: extension, value: value} + return nil +} + +// ClearAllExtensions clears all extensions from pb. +func ClearAllExtensions(pb Message) { + if epb, doki := pb.(extensionsBytes); doki { + ext := epb.GetExtensions() + *ext = []byte{} + return + } + epb, err := extendable(pb) + if err != nil { + return + } + m := epb.extensionsWrite() + for k := range m { + delete(m, k) + } +} + +// A global registry of extensions. +// The generated code will register the generated descriptors by calling RegisterExtension. + +var extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc) + +// RegisterExtension is called from the generated code. +func RegisterExtension(desc *ExtensionDesc) { + st := reflect.TypeOf(desc.ExtendedType).Elem() + m := extensionMaps[st] + if m == nil { + m = make(map[int32]*ExtensionDesc) + extensionMaps[st] = m + } + if _, ok := m[desc.Field]; ok { + panic("proto: duplicate extension registered: " + st.String() + " " + strconv.Itoa(int(desc.Field))) + } + m[desc.Field] = desc +} + +// RegisteredExtensions returns a map of the registered extensions of a +// protocol buffer struct, indexed by the extension number. +// The argument pb should be a nil pointer to the struct type. +func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc { + return extensionMaps[reflect.TypeOf(pb).Elem()] +} diff --git a/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go b/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go new file mode 100644 index 00000000..53ebd8cc --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go @@ -0,0 +1,368 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "bytes" + "errors" + "fmt" + "io" + "reflect" + "sort" + "strings" + "sync" +) + +type extensionsBytes interface { + Message + ExtensionRangeArray() []ExtensionRange + GetExtensions() *[]byte +} + +type slowExtensionAdapter struct { + extensionsBytes +} + +func (s slowExtensionAdapter) extensionsWrite() map[int32]Extension { + panic("Please report a bug to github.com/gogo/protobuf if you see this message: Writing extensions is not supported for extensions stored in a byte slice field.") +} + +func (s slowExtensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) { + b := s.GetExtensions() + m, err := BytesToExtensionsMap(*b) + if err != nil { + panic(err) + } + return m, notLocker{} +} + +func GetBoolExtension(pb Message, extension *ExtensionDesc, ifnotset bool) bool { + if reflect.ValueOf(pb).IsNil() { + return ifnotset + } + value, err := GetExtension(pb, extension) + if err != nil { + return ifnotset + } + if value == nil { + return ifnotset + } + if value.(*bool) == nil { + return ifnotset + } + return *(value.(*bool)) +} + +func (this *Extension) Equal(that *Extension) bool { + if err := this.Encode(); err != nil { + return false + } + if err := that.Encode(); err != nil { + return false + } + return bytes.Equal(this.enc, that.enc) +} + +func (this *Extension) Compare(that *Extension) int { + if err := this.Encode(); err != nil { + return 1 + } + if err := that.Encode(); err != nil { + return -1 + } + return bytes.Compare(this.enc, that.enc) +} + +func SizeOfInternalExtension(m extendableProto) (n int) { + info := getMarshalInfo(reflect.TypeOf(m)) + return info.sizeV1Extensions(m.extensionsWrite()) +} + +type sortableMapElem struct { + field int32 + ext Extension +} + +func newSortableExtensionsFromMap(m map[int32]Extension) sortableExtensions { + s := make(sortableExtensions, 0, len(m)) + for k, v := range m { + s = append(s, &sortableMapElem{field: k, ext: v}) + } + return s +} + +type sortableExtensions []*sortableMapElem + +func (this sortableExtensions) Len() int { return len(this) } + +func (this sortableExtensions) Swap(i, j int) { this[i], this[j] = this[j], this[i] } + +func (this sortableExtensions) Less(i, j int) bool { return this[i].field < this[j].field } + +func (this sortableExtensions) String() string { + sort.Sort(this) + ss := make([]string, len(this)) + for i := range this { + ss[i] = fmt.Sprintf("%d: %v", this[i].field, this[i].ext) + } + return "map[" + strings.Join(ss, ",") + "]" +} + +func StringFromInternalExtension(m extendableProto) string { + return StringFromExtensionsMap(m.extensionsWrite()) +} + +func StringFromExtensionsMap(m map[int32]Extension) string { + return newSortableExtensionsFromMap(m).String() +} + +func StringFromExtensionsBytes(ext []byte) string { + m, err := BytesToExtensionsMap(ext) + if err != nil { + panic(err) + } + return StringFromExtensionsMap(m) +} + +func EncodeInternalExtension(m extendableProto, data []byte) (n int, err error) { + return EncodeExtensionMap(m.extensionsWrite(), data) +} + +func EncodeExtensionMap(m map[int32]Extension, data []byte) (n int, err error) { + o := 0 + for _, e := range m { + if err := e.Encode(); err != nil { + return 0, err + } + n := copy(data[o:], e.enc) + if n != len(e.enc) { + return 0, io.ErrShortBuffer + } + o += n + } + return o, nil +} + +func GetRawExtension(m map[int32]Extension, id int32) ([]byte, error) { + e := m[id] + if err := e.Encode(); err != nil { + return nil, err + } + return e.enc, nil +} + +func size(buf []byte, wire int) (int, error) { + switch wire { + case WireVarint: + _, n := DecodeVarint(buf) + return n, nil + case WireFixed64: + return 8, nil + case WireBytes: + v, n := DecodeVarint(buf) + return int(v) + n, nil + case WireFixed32: + return 4, nil + case WireStartGroup: + offset := 0 + for { + u, n := DecodeVarint(buf[offset:]) + fwire := int(u & 0x7) + offset += n + if fwire == WireEndGroup { + return offset, nil + } + s, err := size(buf[offset:], wire) + if err != nil { + return 0, err + } + offset += s + } + } + return 0, fmt.Errorf("proto: can't get size for unknown wire type %d", wire) +} + +func BytesToExtensionsMap(buf []byte) (map[int32]Extension, error) { + m := make(map[int32]Extension) + i := 0 + for i < len(buf) { + tag, n := DecodeVarint(buf[i:]) + if n <= 0 { + return nil, fmt.Errorf("unable to decode varint") + } + fieldNum := int32(tag >> 3) + wireType := int(tag & 0x7) + l, err := size(buf[i+n:], wireType) + if err != nil { + return nil, err + } + end := i + int(l) + n + m[int32(fieldNum)] = Extension{enc: buf[i:end]} + i = end + } + return m, nil +} + +func NewExtension(e []byte) Extension { + ee := Extension{enc: make([]byte, len(e))} + copy(ee.enc, e) + return ee +} + +func AppendExtension(e Message, tag int32, buf []byte) { + if ee, eok := e.(extensionsBytes); eok { + ext := ee.GetExtensions() + *ext = append(*ext, buf...) + return + } + if ee, eok := e.(extendableProto); eok { + m := ee.extensionsWrite() + ext := m[int32(tag)] // may be missing + ext.enc = append(ext.enc, buf...) + m[int32(tag)] = ext + } +} + +func encodeExtension(extension *ExtensionDesc, value interface{}) ([]byte, error) { + u := getMarshalInfo(reflect.TypeOf(extension.ExtendedType)) + ei := u.getExtElemInfo(extension) + v := value + p := toAddrPointer(&v, ei.isptr) + siz := ei.sizer(p, SizeVarint(ei.wiretag)) + buf := make([]byte, 0, siz) + return ei.marshaler(buf, p, ei.wiretag, false) +} + +func decodeExtensionFromBytes(extension *ExtensionDesc, buf []byte) (interface{}, error) { + o := 0 + for o < len(buf) { + tag, n := DecodeVarint((buf)[o:]) + fieldNum := int32(tag >> 3) + wireType := int(tag & 0x7) + if o+n > len(buf) { + return nil, fmt.Errorf("unable to decode extension") + } + l, err := size((buf)[o+n:], wireType) + if err != nil { + return nil, err + } + if int32(fieldNum) == extension.Field { + if o+n+l > len(buf) { + return nil, fmt.Errorf("unable to decode extension") + } + v, err := decodeExtension((buf)[o:o+n+l], extension) + if err != nil { + return nil, err + } + return v, nil + } + o += n + l + } + return defaultExtensionValue(extension) +} + +func (this *Extension) Encode() error { + if this.enc == nil { + var err error + this.enc, err = encodeExtension(this.desc, this.value) + if err != nil { + return err + } + } + return nil +} + +func (this Extension) GoString() string { + if err := this.Encode(); err != nil { + return fmt.Sprintf("error encoding extension: %v", err) + } + return fmt.Sprintf("proto.NewExtension(%#v)", this.enc) +} + +func SetUnsafeExtension(pb Message, fieldNum int32, value interface{}) error { + typ := reflect.TypeOf(pb).Elem() + ext, ok := extensionMaps[typ] + if !ok { + return fmt.Errorf("proto: bad extended type; %s is not extendable", typ.String()) + } + desc, ok := ext[fieldNum] + if !ok { + return errors.New("proto: bad extension number; not in declared ranges") + } + return SetExtension(pb, desc, value) +} + +func GetUnsafeExtension(pb Message, fieldNum int32) (interface{}, error) { + typ := reflect.TypeOf(pb).Elem() + ext, ok := extensionMaps[typ] + if !ok { + return nil, fmt.Errorf("proto: bad extended type; %s is not extendable", typ.String()) + } + desc, ok := ext[fieldNum] + if !ok { + return nil, fmt.Errorf("unregistered field number %d", fieldNum) + } + return GetExtension(pb, desc) +} + +func NewUnsafeXXX_InternalExtensions(m map[int32]Extension) XXX_InternalExtensions { + x := &XXX_InternalExtensions{ + p: new(struct { + mu sync.Mutex + extensionMap map[int32]Extension + }), + } + x.p.extensionMap = m + return *x +} + +func GetUnsafeExtensionsMap(extendable Message) map[int32]Extension { + pb := extendable.(extendableProto) + return pb.extensionsWrite() +} + +func deleteExtension(pb extensionsBytes, theFieldNum int32, offset int) int { + ext := pb.GetExtensions() + for offset < len(*ext) { + tag, n1 := DecodeVarint((*ext)[offset:]) + fieldNum := int32(tag >> 3) + wireType := int(tag & 0x7) + n2, err := size((*ext)[offset+n1:], wireType) + if err != nil { + panic(err) + } + newOffset := offset + n1 + n2 + if fieldNum == theFieldNum { + *ext = append((*ext)[:offset], (*ext)[newOffset:]...) + return offset + } + offset = newOffset + } + return -1 +} diff --git a/vendor/github.com/gogo/protobuf/proto/lib.go b/vendor/github.com/gogo/protobuf/proto/lib.go new file mode 100644 index 00000000..d17f8020 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/lib.go @@ -0,0 +1,967 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package proto converts data structures to and from the wire format of +protocol buffers. It works in concert with the Go source code generated +for .proto files by the protocol compiler. + +A summary of the properties of the protocol buffer interface +for a protocol buffer variable v: + + - Names are turned from camel_case to CamelCase for export. + - There are no methods on v to set fields; just treat + them as structure fields. + - There are getters that return a field's value if set, + and return the field's default value if unset. + The getters work even if the receiver is a nil message. + - The zero value for a struct is its correct initialization state. + All desired fields must be set before marshaling. + - A Reset() method will restore a protobuf struct to its zero state. + - Non-repeated fields are pointers to the values; nil means unset. + That is, optional or required field int32 f becomes F *int32. + - Repeated fields are slices. + - Helper functions are available to aid the setting of fields. + msg.Foo = proto.String("hello") // set field + - Constants are defined to hold the default values of all fields that + have them. They have the form Default_StructName_FieldName. + Because the getter methods handle defaulted values, + direct use of these constants should be rare. + - Enums are given type names and maps from names to values. + Enum values are prefixed by the enclosing message's name, or by the + enum's type name if it is a top-level enum. Enum types have a String + method, and a Enum method to assist in message construction. + - Nested messages, groups and enums have type names prefixed with the name of + the surrounding message type. + - Extensions are given descriptor names that start with E_, + followed by an underscore-delimited list of the nested messages + that contain it (if any) followed by the CamelCased name of the + extension field itself. HasExtension, ClearExtension, GetExtension + and SetExtension are functions for manipulating extensions. + - Oneof field sets are given a single field in their message, + with distinguished wrapper types for each possible field value. + - Marshal and Unmarshal are functions to encode and decode the wire format. + +When the .proto file specifies `syntax="proto3"`, there are some differences: + + - Non-repeated fields of non-message type are values instead of pointers. + - Enum types do not get an Enum method. + +The simplest way to describe this is to see an example. +Given file test.proto, containing + + package example; + + enum FOO { X = 17; } + + message Test { + required string label = 1; + optional int32 type = 2 [default=77]; + repeated int64 reps = 3; + optional group OptionalGroup = 4 { + required string RequiredField = 5; + } + oneof union { + int32 number = 6; + string name = 7; + } + } + +The resulting file, test.pb.go, is: + + package example + + import proto "github.com/gogo/protobuf/proto" + import math "math" + + type FOO int32 + const ( + FOO_X FOO = 17 + ) + var FOO_name = map[int32]string{ + 17: "X", + } + var FOO_value = map[string]int32{ + "X": 17, + } + + func (x FOO) Enum() *FOO { + p := new(FOO) + *p = x + return p + } + func (x FOO) String() string { + return proto.EnumName(FOO_name, int32(x)) + } + func (x *FOO) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FOO_value, data) + if err != nil { + return err + } + *x = FOO(value) + return nil + } + + type Test struct { + Label *string `protobuf:"bytes,1,req,name=label" json:"label,omitempty"` + Type *int32 `protobuf:"varint,2,opt,name=type,def=77" json:"type,omitempty"` + Reps []int64 `protobuf:"varint,3,rep,name=reps" json:"reps,omitempty"` + Optionalgroup *Test_OptionalGroup `protobuf:"group,4,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` + // Types that are valid to be assigned to Union: + // *Test_Number + // *Test_Name + Union isTest_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` + } + func (m *Test) Reset() { *m = Test{} } + func (m *Test) String() string { return proto.CompactTextString(m) } + func (*Test) ProtoMessage() {} + + type isTest_Union interface { + isTest_Union() + } + + type Test_Number struct { + Number int32 `protobuf:"varint,6,opt,name=number"` + } + type Test_Name struct { + Name string `protobuf:"bytes,7,opt,name=name"` + } + + func (*Test_Number) isTest_Union() {} + func (*Test_Name) isTest_Union() {} + + func (m *Test) GetUnion() isTest_Union { + if m != nil { + return m.Union + } + return nil + } + const Default_Test_Type int32 = 77 + + func (m *Test) GetLabel() string { + if m != nil && m.Label != nil { + return *m.Label + } + return "" + } + + func (m *Test) GetType() int32 { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_Test_Type + } + + func (m *Test) GetOptionalgroup() *Test_OptionalGroup { + if m != nil { + return m.Optionalgroup + } + return nil + } + + type Test_OptionalGroup struct { + RequiredField *string `protobuf:"bytes,5,req" json:"RequiredField,omitempty"` + } + func (m *Test_OptionalGroup) Reset() { *m = Test_OptionalGroup{} } + func (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) } + + func (m *Test_OptionalGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" + } + + func (m *Test) GetNumber() int32 { + if x, ok := m.GetUnion().(*Test_Number); ok { + return x.Number + } + return 0 + } + + func (m *Test) GetName() string { + if x, ok := m.GetUnion().(*Test_Name); ok { + return x.Name + } + return "" + } + + func init() { + proto.RegisterEnum("example.FOO", FOO_name, FOO_value) + } + +To create and play with a Test object: + + package main + + import ( + "log" + + "github.com/gogo/protobuf/proto" + pb "./example.pb" + ) + + func main() { + test := &pb.Test{ + Label: proto.String("hello"), + Type: proto.Int32(17), + Reps: []int64{1, 2, 3}, + Optionalgroup: &pb.Test_OptionalGroup{ + RequiredField: proto.String("good bye"), + }, + Union: &pb.Test_Name{"fred"}, + } + data, err := proto.Marshal(test) + if err != nil { + log.Fatal("marshaling error: ", err) + } + newTest := &pb.Test{} + err = proto.Unmarshal(data, newTest) + if err != nil { + log.Fatal("unmarshaling error: ", err) + } + // Now test and newTest contain the same data. + if test.GetLabel() != newTest.GetLabel() { + log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) + } + // Use a type switch to determine which oneof was set. + switch u := test.Union.(type) { + case *pb.Test_Number: // u.Number contains the number. + case *pb.Test_Name: // u.Name contains the string. + } + // etc. + } +*/ +package proto + +import ( + "encoding/json" + "fmt" + "log" + "reflect" + "sort" + "strconv" + "sync" +) + +// RequiredNotSetError is an error type returned by either Marshal or Unmarshal. +// Marshal reports this when a required field is not initialized. +// Unmarshal reports this when a required field is missing from the wire data. +type RequiredNotSetError struct{ field string } + +func (e *RequiredNotSetError) Error() string { + if e.field == "" { + return fmt.Sprintf("proto: required field not set") + } + return fmt.Sprintf("proto: required field %q not set", e.field) +} +func (e *RequiredNotSetError) RequiredNotSet() bool { + return true +} + +type invalidUTF8Error struct{ field string } + +func (e *invalidUTF8Error) Error() string { + if e.field == "" { + return "proto: invalid UTF-8 detected" + } + return fmt.Sprintf("proto: field %q contains invalid UTF-8", e.field) +} +func (e *invalidUTF8Error) InvalidUTF8() bool { + return true +} + +// errInvalidUTF8 is a sentinel error to identify fields with invalid UTF-8. +// This error should not be exposed to the external API as such errors should +// be recreated with the field information. +var errInvalidUTF8 = &invalidUTF8Error{} + +// isNonFatal reports whether the error is either a RequiredNotSet error +// or a InvalidUTF8 error. +func isNonFatal(err error) bool { + if re, ok := err.(interface{ RequiredNotSet() bool }); ok && re.RequiredNotSet() { + return true + } + if re, ok := err.(interface{ InvalidUTF8() bool }); ok && re.InvalidUTF8() { + return true + } + return false +} + +type nonFatal struct{ E error } + +// Merge merges err into nf and reports whether it was successful. +// Otherwise it returns false for any fatal non-nil errors. +func (nf *nonFatal) Merge(err error) (ok bool) { + if err == nil { + return true // not an error + } + if !isNonFatal(err) { + return false // fatal error + } + if nf.E == nil { + nf.E = err // store first instance of non-fatal error + } + return true +} + +// Message is implemented by generated protocol buffer messages. +type Message interface { + Reset() + String() string + ProtoMessage() +} + +// A Buffer is a buffer manager for marshaling and unmarshaling +// protocol buffers. It may be reused between invocations to +// reduce memory usage. It is not necessary to use a Buffer; +// the global functions Marshal and Unmarshal create a +// temporary Buffer and are fine for most applications. +type Buffer struct { + buf []byte // encode/decode byte stream + index int // read point + + deterministic bool +} + +// NewBuffer allocates a new Buffer and initializes its internal data to +// the contents of the argument slice. +func NewBuffer(e []byte) *Buffer { + return &Buffer{buf: e} +} + +// Reset resets the Buffer, ready for marshaling a new protocol buffer. +func (p *Buffer) Reset() { + p.buf = p.buf[0:0] // for reading/writing + p.index = 0 // for reading +} + +// SetBuf replaces the internal buffer with the slice, +// ready for unmarshaling the contents of the slice. +func (p *Buffer) SetBuf(s []byte) { + p.buf = s + p.index = 0 +} + +// Bytes returns the contents of the Buffer. +func (p *Buffer) Bytes() []byte { return p.buf } + +// SetDeterministic sets whether to use deterministic serialization. +// +// Deterministic serialization guarantees that for a given binary, equal +// messages will always be serialized to the same bytes. This implies: +// +// - Repeated serialization of a message will return the same bytes. +// - Different processes of the same binary (which may be executing on +// different machines) will serialize equal messages to the same bytes. +// +// Note that the deterministic serialization is NOT canonical across +// languages. It is not guaranteed to remain stable over time. It is unstable +// across different builds with schema changes due to unknown fields. +// Users who need canonical serialization (e.g., persistent storage in a +// canonical form, fingerprinting, etc.) should define their own +// canonicalization specification and implement their own serializer rather +// than relying on this API. +// +// If deterministic serialization is requested, map entries will be sorted +// by keys in lexographical order. This is an implementation detail and +// subject to change. +func (p *Buffer) SetDeterministic(deterministic bool) { + p.deterministic = deterministic +} + +/* + * Helper routines for simplifying the creation of optional fields of basic type. + */ + +// Bool is a helper routine that allocates a new bool value +// to store v and returns a pointer to it. +func Bool(v bool) *bool { + return &v +} + +// Int32 is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it. +func Int32(v int32) *int32 { + return &v +} + +// Int is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it, but unlike Int32 +// its argument value is an int. +func Int(v int) *int32 { + p := new(int32) + *p = int32(v) + return p +} + +// Int64 is a helper routine that allocates a new int64 value +// to store v and returns a pointer to it. +func Int64(v int64) *int64 { + return &v +} + +// Float32 is a helper routine that allocates a new float32 value +// to store v and returns a pointer to it. +func Float32(v float32) *float32 { + return &v +} + +// Float64 is a helper routine that allocates a new float64 value +// to store v and returns a pointer to it. +func Float64(v float64) *float64 { + return &v +} + +// Uint32 is a helper routine that allocates a new uint32 value +// to store v and returns a pointer to it. +func Uint32(v uint32) *uint32 { + return &v +} + +// Uint64 is a helper routine that allocates a new uint64 value +// to store v and returns a pointer to it. +func Uint64(v uint64) *uint64 { + return &v +} + +// String is a helper routine that allocates a new string value +// to store v and returns a pointer to it. +func String(v string) *string { + return &v +} + +// EnumName is a helper function to simplify printing protocol buffer enums +// by name. Given an enum map and a value, it returns a useful string. +func EnumName(m map[int32]string, v int32) string { + s, ok := m[v] + if ok { + return s + } + return strconv.Itoa(int(v)) +} + +// UnmarshalJSONEnum is a helper function to simplify recovering enum int values +// from their JSON-encoded representation. Given a map from the enum's symbolic +// names to its int values, and a byte buffer containing the JSON-encoded +// value, it returns an int32 that can be cast to the enum type by the caller. +// +// The function can deal with both JSON representations, numeric and symbolic. +func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { + if data[0] == '"' { + // New style: enums are strings. + var repr string + if err := json.Unmarshal(data, &repr); err != nil { + return -1, err + } + val, ok := m[repr] + if !ok { + return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) + } + return val, nil + } + // Old style: enums are ints. + var val int32 + if err := json.Unmarshal(data, &val); err != nil { + return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) + } + return val, nil +} + +// DebugPrint dumps the encoded data in b in a debugging format with a header +// including the string s. Used in testing but made available for general debugging. +func (p *Buffer) DebugPrint(s string, b []byte) { + var u uint64 + + obuf := p.buf + sindex := p.index + p.buf = b + p.index = 0 + depth := 0 + + fmt.Printf("\n--- %s ---\n", s) + +out: + for { + for i := 0; i < depth; i++ { + fmt.Print(" ") + } + + index := p.index + if index == len(p.buf) { + break + } + + op, err := p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: fetching op err %v\n", index, err) + break out + } + tag := op >> 3 + wire := op & 7 + + switch wire { + default: + fmt.Printf("%3d: t=%3d unknown wire=%d\n", + index, tag, wire) + break out + + case WireBytes: + var r []byte + + r, err = p.DecodeRawBytes(false) + if err != nil { + break out + } + fmt.Printf("%3d: t=%3d bytes [%d]", index, tag, len(r)) + if len(r) <= 6 { + for i := 0; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } else { + for i := 0; i < 3; i++ { + fmt.Printf(" %.2x", r[i]) + } + fmt.Printf(" ..") + for i := len(r) - 3; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } + fmt.Printf("\n") + + case WireFixed32: + u, err = p.DecodeFixed32() + if err != nil { + fmt.Printf("%3d: t=%3d fix32 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix32 %d\n", index, tag, u) + + case WireFixed64: + u, err = p.DecodeFixed64() + if err != nil { + fmt.Printf("%3d: t=%3d fix64 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix64 %d\n", index, tag, u) + + case WireVarint: + u, err = p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: t=%3d varint err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d varint %d\n", index, tag, u) + + case WireStartGroup: + fmt.Printf("%3d: t=%3d start\n", index, tag) + depth++ + + case WireEndGroup: + depth-- + fmt.Printf("%3d: t=%3d end\n", index, tag) + } + } + + if depth != 0 { + fmt.Printf("%3d: start-end not balanced %d\n", p.index, depth) + } + fmt.Printf("\n") + + p.buf = obuf + p.index = sindex +} + +// SetDefaults sets unset protocol buffer fields to their default values. +// It only modifies fields that are both unset and have defined defaults. +// It recursively sets default values in any non-nil sub-messages. +func SetDefaults(pb Message) { + setDefaults(reflect.ValueOf(pb), true, false) +} + +// v is a struct. +func setDefaults(v reflect.Value, recur, zeros bool) { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + + defaultMu.RLock() + dm, ok := defaults[v.Type()] + defaultMu.RUnlock() + if !ok { + dm = buildDefaultMessage(v.Type()) + defaultMu.Lock() + defaults[v.Type()] = dm + defaultMu.Unlock() + } + + for _, sf := range dm.scalars { + f := v.Field(sf.index) + if !f.IsNil() { + // field already set + continue + } + dv := sf.value + if dv == nil && !zeros { + // no explicit default, and don't want to set zeros + continue + } + fptr := f.Addr().Interface() // **T + // TODO: Consider batching the allocations we do here. + switch sf.kind { + case reflect.Bool: + b := new(bool) + if dv != nil { + *b = dv.(bool) + } + *(fptr.(**bool)) = b + case reflect.Float32: + f := new(float32) + if dv != nil { + *f = dv.(float32) + } + *(fptr.(**float32)) = f + case reflect.Float64: + f := new(float64) + if dv != nil { + *f = dv.(float64) + } + *(fptr.(**float64)) = f + case reflect.Int32: + // might be an enum + if ft := f.Type(); ft != int32PtrType { + // enum + f.Set(reflect.New(ft.Elem())) + if dv != nil { + f.Elem().SetInt(int64(dv.(int32))) + } + } else { + // int32 field + i := new(int32) + if dv != nil { + *i = dv.(int32) + } + *(fptr.(**int32)) = i + } + case reflect.Int64: + i := new(int64) + if dv != nil { + *i = dv.(int64) + } + *(fptr.(**int64)) = i + case reflect.String: + s := new(string) + if dv != nil { + *s = dv.(string) + } + *(fptr.(**string)) = s + case reflect.Uint8: + // exceptional case: []byte + var b []byte + if dv != nil { + db := dv.([]byte) + b = make([]byte, len(db)) + copy(b, db) + } else { + b = []byte{} + } + *(fptr.(*[]byte)) = b + case reflect.Uint32: + u := new(uint32) + if dv != nil { + *u = dv.(uint32) + } + *(fptr.(**uint32)) = u + case reflect.Uint64: + u := new(uint64) + if dv != nil { + *u = dv.(uint64) + } + *(fptr.(**uint64)) = u + default: + log.Printf("proto: can't set default for field %v (sf.kind=%v)", f, sf.kind) + } + } + + for _, ni := range dm.nested { + f := v.Field(ni) + // f is *T or T or []*T or []T + switch f.Kind() { + case reflect.Struct: + setDefaults(f, recur, zeros) + + case reflect.Ptr: + if f.IsNil() { + continue + } + setDefaults(f, recur, zeros) + + case reflect.Slice: + for i := 0; i < f.Len(); i++ { + e := f.Index(i) + if e.Kind() == reflect.Ptr && e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + + case reflect.Map: + for _, k := range f.MapKeys() { + e := f.MapIndex(k) + if e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + } + } +} + +var ( + // defaults maps a protocol buffer struct type to a slice of the fields, + // with its scalar fields set to their proto-declared non-zero default values. + defaultMu sync.RWMutex + defaults = make(map[reflect.Type]defaultMessage) + + int32PtrType = reflect.TypeOf((*int32)(nil)) +) + +// defaultMessage represents information about the default values of a message. +type defaultMessage struct { + scalars []scalarField + nested []int // struct field index of nested messages +} + +type scalarField struct { + index int // struct field index + kind reflect.Kind // element type (the T in *T or []T) + value interface{} // the proto-declared default value, or nil +} + +// t is a struct type. +func buildDefaultMessage(t reflect.Type) (dm defaultMessage) { + sprop := GetProperties(t) + for _, prop := range sprop.Prop { + fi, ok := sprop.decoderTags.get(prop.Tag) + if !ok { + // XXX_unrecognized + continue + } + ft := t.Field(fi).Type + + sf, nested, err := fieldDefault(ft, prop) + switch { + case err != nil: + log.Print(err) + case nested: + dm.nested = append(dm.nested, fi) + case sf != nil: + sf.index = fi + dm.scalars = append(dm.scalars, *sf) + } + } + + return dm +} + +// fieldDefault returns the scalarField for field type ft. +// sf will be nil if the field can not have a default. +// nestedMessage will be true if this is a nested message. +// Note that sf.index is not set on return. +func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) { + var canHaveDefault bool + switch ft.Kind() { + case reflect.Struct: + nestedMessage = true // non-nullable + + case reflect.Ptr: + if ft.Elem().Kind() == reflect.Struct { + nestedMessage = true + } else { + canHaveDefault = true // proto2 scalar field + } + + case reflect.Slice: + switch ft.Elem().Kind() { + case reflect.Ptr, reflect.Struct: + nestedMessage = true // repeated message + case reflect.Uint8: + canHaveDefault = true // bytes field + } + + case reflect.Map: + if ft.Elem().Kind() == reflect.Ptr { + nestedMessage = true // map with message values + } + } + + if !canHaveDefault { + if nestedMessage { + return nil, true, nil + } + return nil, false, nil + } + + // We now know that ft is a pointer or slice. + sf = &scalarField{kind: ft.Elem().Kind()} + + // scalar fields without defaults + if !prop.HasDefault { + return sf, false, nil + } + + // a scalar field: either *T or []byte + switch ft.Elem().Kind() { + case reflect.Bool: + x, err := strconv.ParseBool(prop.Default) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default bool %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Float32: + x, err := strconv.ParseFloat(prop.Default, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float32 %q: %v", prop.Default, err) + } + sf.value = float32(x) + case reflect.Float64: + x, err := strconv.ParseFloat(prop.Default, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Int32: + x, err := strconv.ParseInt(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int32 %q: %v", prop.Default, err) + } + sf.value = int32(x) + case reflect.Int64: + x, err := strconv.ParseInt(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.String: + sf.value = prop.Default + case reflect.Uint8: + // []byte (not *uint8) + sf.value = []byte(prop.Default) + case reflect.Uint32: + x, err := strconv.ParseUint(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint32 %q: %v", prop.Default, err) + } + sf.value = uint32(x) + case reflect.Uint64: + x, err := strconv.ParseUint(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint64 %q: %v", prop.Default, err) + } + sf.value = x + default: + return nil, false, fmt.Errorf("proto: unhandled def kind %v", ft.Elem().Kind()) + } + + return sf, false, nil +} + +// mapKeys returns a sort.Interface to be used for sorting the map keys. +// Map fields may have key types of non-float scalars, strings and enums. +func mapKeys(vs []reflect.Value) sort.Interface { + s := mapKeySorter{vs: vs} + + // Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps. + if len(vs) == 0 { + return s + } + switch vs[0].Kind() { + case reflect.Int32, reflect.Int64: + s.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() } + case reflect.Uint32, reflect.Uint64: + s.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() } + case reflect.Bool: + s.less = func(a, b reflect.Value) bool { return !a.Bool() && b.Bool() } // false < true + case reflect.String: + s.less = func(a, b reflect.Value) bool { return a.String() < b.String() } + default: + panic(fmt.Sprintf("unsupported map key type: %v", vs[0].Kind())) + } + + return s +} + +type mapKeySorter struct { + vs []reflect.Value + less func(a, b reflect.Value) bool +} + +func (s mapKeySorter) Len() int { return len(s.vs) } +func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] } +func (s mapKeySorter) Less(i, j int) bool { + return s.less(s.vs[i], s.vs[j]) +} + +// isProto3Zero reports whether v is a zero proto3 value. +func isProto3Zero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return !v.Bool() + case reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint32, reflect.Uint64: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.String: + return v.String() == "" + } + return false +} + +// ProtoPackageIsVersion2 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const GoGoProtoPackageIsVersion2 = true + +// ProtoPackageIsVersion1 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const GoGoProtoPackageIsVersion1 = true + +// InternalMessageInfo is a type used internally by generated .pb.go files. +// This type is not intended to be used by non-generated code. +// This type is not subject to any compatibility guarantee. +type InternalMessageInfo struct { + marshal *marshalInfo + unmarshal *unmarshalInfo + merge *mergeInfo + discard *discardInfo +} diff --git a/vendor/github.com/gogo/protobuf/proto/lib_gogo.go b/vendor/github.com/gogo/protobuf/proto/lib_gogo.go new file mode 100644 index 00000000..b3aa3919 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/lib_gogo.go @@ -0,0 +1,50 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "encoding/json" + "strconv" +) + +type Sizer interface { + Size() int +} + +type ProtoSizer interface { + ProtoSize() int +} + +func MarshalJSONEnum(m map[int32]string, value int32) ([]byte, error) { + s, ok := m[value] + if !ok { + s = strconv.Itoa(int(value)) + } + return json.Marshal(s) +} diff --git a/vendor/github.com/gogo/protobuf/proto/message_set.go b/vendor/github.com/gogo/protobuf/proto/message_set.go new file mode 100644 index 00000000..f48a7567 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/message_set.go @@ -0,0 +1,181 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Support for message sets. + */ + +import ( + "errors" +) + +// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID. +// A message type ID is required for storing a protocol buffer in a message set. +var errNoMessageTypeID = errors.New("proto does not have a message type ID") + +// The first two types (_MessageSet_Item and messageSet) +// model what the protocol compiler produces for the following protocol message: +// message MessageSet { +// repeated group Item = 1 { +// required int32 type_id = 2; +// required string message = 3; +// }; +// } +// That is the MessageSet wire format. We can't use a proto to generate these +// because that would introduce a circular dependency between it and this package. + +type _MessageSet_Item struct { + TypeId *int32 `protobuf:"varint,2,req,name=type_id"` + Message []byte `protobuf:"bytes,3,req,name=message"` +} + +type messageSet struct { + Item []*_MessageSet_Item `protobuf:"group,1,rep"` + XXX_unrecognized []byte + // TODO: caching? +} + +// Make sure messageSet is a Message. +var _ Message = (*messageSet)(nil) + +// messageTypeIder is an interface satisfied by a protocol buffer type +// that may be stored in a MessageSet. +type messageTypeIder interface { + MessageTypeId() int32 +} + +func (ms *messageSet) find(pb Message) *_MessageSet_Item { + mti, ok := pb.(messageTypeIder) + if !ok { + return nil + } + id := mti.MessageTypeId() + for _, item := range ms.Item { + if *item.TypeId == id { + return item + } + } + return nil +} + +func (ms *messageSet) Has(pb Message) bool { + return ms.find(pb) != nil +} + +func (ms *messageSet) Unmarshal(pb Message) error { + if item := ms.find(pb); item != nil { + return Unmarshal(item.Message, pb) + } + if _, ok := pb.(messageTypeIder); !ok { + return errNoMessageTypeID + } + return nil // TODO: return error instead? +} + +func (ms *messageSet) Marshal(pb Message) error { + msg, err := Marshal(pb) + if err != nil { + return err + } + if item := ms.find(pb); item != nil { + // reuse existing item + item.Message = msg + return nil + } + + mti, ok := pb.(messageTypeIder) + if !ok { + return errNoMessageTypeID + } + + mtid := mti.MessageTypeId() + ms.Item = append(ms.Item, &_MessageSet_Item{ + TypeId: &mtid, + Message: msg, + }) + return nil +} + +func (ms *messageSet) Reset() { *ms = messageSet{} } +func (ms *messageSet) String() string { return CompactTextString(ms) } +func (*messageSet) ProtoMessage() {} + +// Support for the message_set_wire_format message option. + +func skipVarint(buf []byte) []byte { + i := 0 + for ; buf[i]&0x80 != 0; i++ { + } + return buf[i+1:] +} + +// unmarshalMessageSet decodes the extension map encoded in buf in the message set wire format. +// It is called by Unmarshal methods on protocol buffer messages with the message_set_wire_format option. +func unmarshalMessageSet(buf []byte, exts interface{}) error { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m = exts.extensionsWrite() + case map[int32]Extension: + m = exts + default: + return errors.New("proto: not an extension map") + } + + ms := new(messageSet) + if err := Unmarshal(buf, ms); err != nil { + return err + } + for _, item := range ms.Item { + id := *item.TypeId + msg := item.Message + + // Restore wire type and field number varint, plus length varint. + // Be careful to preserve duplicate items. + b := EncodeVarint(uint64(id)<<3 | WireBytes) + if ext, ok := m[id]; ok { + // Existing data; rip off the tag and length varint + // so we join the new data correctly. + // We can assume that ext.enc is set because we are unmarshaling. + o := ext.enc[len(b):] // skip wire type and field number + _, n := DecodeVarint(o) // calculate length of length varint + o = o[n:] // skip length varint + msg = append(o, msg...) // join old data and new data + } + b = append(b, EncodeVarint(uint64(len(msg)))...) + b = append(b, msg...) + + m[id] = Extension{enc: b} + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go b/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go new file mode 100644 index 00000000..b6cad908 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go @@ -0,0 +1,357 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build purego appengine js + +// This file contains an implementation of proto field accesses using package reflect. +// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can +// be used on App Engine. + +package proto + +import ( + "reflect" + "sync" +) + +const unsafeAllowed = false + +// A field identifies a field in a struct, accessible from a pointer. +// In this implementation, a field is identified by the sequence of field indices +// passed to reflect's FieldByIndex. +type field []int + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return f.Index +} + +// invalidField is an invalid field identifier. +var invalidField = field(nil) + +// zeroField is a noop when calling pointer.offset. +var zeroField = field([]int{}) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { return f != nil } + +// The pointer type is for the table-driven decoder. +// The implementation here uses a reflect.Value of pointer type to +// create a generic pointer. In pointer_unsafe.go we use unsafe +// instead of reflect to implement the same (but faster) interface. +type pointer struct { + v reflect.Value +} + +// toPointer converts an interface of pointer type to a pointer +// that points to the same target. +func toPointer(i *Message) pointer { + return pointer{v: reflect.ValueOf(*i)} +} + +// toAddrPointer converts an interface to a pointer that points to +// the interface data. +func toAddrPointer(i *interface{}, isptr bool) pointer { + v := reflect.ValueOf(*i) + u := reflect.New(v.Type()) + u.Elem().Set(v) + return pointer{v: u} +} + +// valToPointer converts v to a pointer. v must be of pointer type. +func valToPointer(v reflect.Value) pointer { + return pointer{v: v} +} + +// offset converts from a pointer to a structure to a pointer to +// one of its fields. +func (p pointer) offset(f field) pointer { + return pointer{v: p.v.Elem().FieldByIndex(f).Addr()} +} + +func (p pointer) isNil() bool { + return p.v.IsNil() +} + +// grow updates the slice s in place to make it one element longer. +// s must be addressable. +// Returns the (addressable) new element. +func grow(s reflect.Value) reflect.Value { + n, m := s.Len(), s.Cap() + if n < m { + s.SetLen(n + 1) + } else { + s.Set(reflect.Append(s, reflect.Zero(s.Type().Elem()))) + } + return s.Index(n) +} + +func (p pointer) toInt64() *int64 { + return p.v.Interface().(*int64) +} +func (p pointer) toInt64Ptr() **int64 { + return p.v.Interface().(**int64) +} +func (p pointer) toInt64Slice() *[]int64 { + return p.v.Interface().(*[]int64) +} + +var int32ptr = reflect.TypeOf((*int32)(nil)) + +func (p pointer) toInt32() *int32 { + return p.v.Convert(int32ptr).Interface().(*int32) +} + +// The toInt32Ptr/Slice methods don't work because of enums. +// Instead, we must use set/get methods for the int32ptr/slice case. +/* + func (p pointer) toInt32Ptr() **int32 { + return p.v.Interface().(**int32) +} + func (p pointer) toInt32Slice() *[]int32 { + return p.v.Interface().(*[]int32) +} +*/ +func (p pointer) getInt32Ptr() *int32 { + if p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) { + // raw int32 type + return p.v.Elem().Interface().(*int32) + } + // an enum + return p.v.Elem().Convert(int32PtrType).Interface().(*int32) +} +func (p pointer) setInt32Ptr(v int32) { + // Allocate value in a *int32. Possibly convert that to a *enum. + // Then assign it to a **int32 or **enum. + // Note: we can convert *int32 to *enum, but we can't convert + // **int32 to **enum! + p.v.Elem().Set(reflect.ValueOf(&v).Convert(p.v.Type().Elem())) +} + +// getInt32Slice copies []int32 from p as a new slice. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) getInt32Slice() []int32 { + if p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) { + // raw int32 type + return p.v.Elem().Interface().([]int32) + } + // an enum + // Allocate a []int32, then assign []enum's values into it. + // Note: we can't convert []enum to []int32. + slice := p.v.Elem() + s := make([]int32, slice.Len()) + for i := 0; i < slice.Len(); i++ { + s[i] = int32(slice.Index(i).Int()) + } + return s +} + +// setInt32Slice copies []int32 into p as a new slice. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) setInt32Slice(v []int32) { + if p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) { + // raw int32 type + p.v.Elem().Set(reflect.ValueOf(v)) + return + } + // an enum + // Allocate a []enum, then assign []int32's values into it. + // Note: we can't convert []enum to []int32. + slice := reflect.MakeSlice(p.v.Type().Elem(), len(v), cap(v)) + for i, x := range v { + slice.Index(i).SetInt(int64(x)) + } + p.v.Elem().Set(slice) +} +func (p pointer) appendInt32Slice(v int32) { + grow(p.v.Elem()).SetInt(int64(v)) +} + +func (p pointer) toUint64() *uint64 { + return p.v.Interface().(*uint64) +} +func (p pointer) toUint64Ptr() **uint64 { + return p.v.Interface().(**uint64) +} +func (p pointer) toUint64Slice() *[]uint64 { + return p.v.Interface().(*[]uint64) +} +func (p pointer) toUint32() *uint32 { + return p.v.Interface().(*uint32) +} +func (p pointer) toUint32Ptr() **uint32 { + return p.v.Interface().(**uint32) +} +func (p pointer) toUint32Slice() *[]uint32 { + return p.v.Interface().(*[]uint32) +} +func (p pointer) toBool() *bool { + return p.v.Interface().(*bool) +} +func (p pointer) toBoolPtr() **bool { + return p.v.Interface().(**bool) +} +func (p pointer) toBoolSlice() *[]bool { + return p.v.Interface().(*[]bool) +} +func (p pointer) toFloat64() *float64 { + return p.v.Interface().(*float64) +} +func (p pointer) toFloat64Ptr() **float64 { + return p.v.Interface().(**float64) +} +func (p pointer) toFloat64Slice() *[]float64 { + return p.v.Interface().(*[]float64) +} +func (p pointer) toFloat32() *float32 { + return p.v.Interface().(*float32) +} +func (p pointer) toFloat32Ptr() **float32 { + return p.v.Interface().(**float32) +} +func (p pointer) toFloat32Slice() *[]float32 { + return p.v.Interface().(*[]float32) +} +func (p pointer) toString() *string { + return p.v.Interface().(*string) +} +func (p pointer) toStringPtr() **string { + return p.v.Interface().(**string) +} +func (p pointer) toStringSlice() *[]string { + return p.v.Interface().(*[]string) +} +func (p pointer) toBytes() *[]byte { + return p.v.Interface().(*[]byte) +} +func (p pointer) toBytesSlice() *[][]byte { + return p.v.Interface().(*[][]byte) +} +func (p pointer) toExtensions() *XXX_InternalExtensions { + return p.v.Interface().(*XXX_InternalExtensions) +} +func (p pointer) toOldExtensions() *map[int32]Extension { + return p.v.Interface().(*map[int32]Extension) +} +func (p pointer) getPointer() pointer { + return pointer{v: p.v.Elem()} +} +func (p pointer) setPointer(q pointer) { + p.v.Elem().Set(q.v) +} +func (p pointer) appendPointer(q pointer) { + grow(p.v.Elem()).Set(q.v) +} + +// getPointerSlice copies []*T from p as a new []pointer. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) getPointerSlice() []pointer { + if p.v.IsNil() { + return nil + } + n := p.v.Elem().Len() + s := make([]pointer, n) + for i := 0; i < n; i++ { + s[i] = pointer{v: p.v.Elem().Index(i)} + } + return s +} + +// setPointerSlice copies []pointer into p as a new []*T. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) setPointerSlice(v []pointer) { + if v == nil { + p.v.Elem().Set(reflect.New(p.v.Elem().Type()).Elem()) + return + } + s := reflect.MakeSlice(p.v.Elem().Type(), 0, len(v)) + for _, p := range v { + s = reflect.Append(s, p.v) + } + p.v.Elem().Set(s) +} + +// getInterfacePointer returns a pointer that points to the +// interface data of the interface pointed by p. +func (p pointer) getInterfacePointer() pointer { + if p.v.Elem().IsNil() { + return pointer{v: p.v.Elem()} + } + return pointer{v: p.v.Elem().Elem().Elem().Field(0).Addr()} // *interface -> interface -> *struct -> struct +} + +func (p pointer) asPointerTo(t reflect.Type) reflect.Value { + // TODO: check that p.v.Type().Elem() == t? + return p.v +} + +func atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} +func atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} +func atomicLoadMergeInfo(p **mergeInfo) *mergeInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} +func atomicLoadDiscardInfo(p **discardInfo) *discardInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} + +var atomicLock sync.Mutex diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go b/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go new file mode 100644 index 00000000..7ffd3c29 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go @@ -0,0 +1,59 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build purego appengine js + +// This file contains an implementation of proto field accesses using package reflect. +// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can +// be used on App Engine. + +package proto + +import ( + "reflect" +) + +// TODO: untested, so probably incorrect. + +func (p pointer) getRef() pointer { + return pointer{v: p.v.Addr()} +} + +func (p pointer) appendRef(v pointer, typ reflect.Type) { + slice := p.getSlice(typ) + elem := v.asPointerTo(typ).Elem() + newSlice := reflect.Append(slice, elem) + slice.Set(newSlice) +} + +func (p pointer) getSlice(typ reflect.Type) reflect.Value { + sliceTyp := reflect.SliceOf(typ) + slice := p.asPointerTo(sliceTyp) + slice = slice.Elem() + return slice +} diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go new file mode 100644 index 00000000..d55a335d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go @@ -0,0 +1,308 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build !purego,!appengine,!js + +// This file contains the implementation of the proto field accesses using package unsafe. + +package proto + +import ( + "reflect" + "sync/atomic" + "unsafe" +) + +const unsafeAllowed = true + +// A field identifies a field in a struct, accessible from a pointer. +// In this implementation, a field is identified by its byte offset from the start of the struct. +type field uintptr + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return field(f.Offset) +} + +// invalidField is an invalid field identifier. +const invalidField = ^field(0) + +// zeroField is a noop when calling pointer.offset. +const zeroField = field(0) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { + return f != invalidField +} + +// The pointer type below is for the new table-driven encoder/decoder. +// The implementation here uses unsafe.Pointer to create a generic pointer. +// In pointer_reflect.go we use reflect instead of unsafe to implement +// the same (but slower) interface. +type pointer struct { + p unsafe.Pointer +} + +// size of pointer +var ptrSize = unsafe.Sizeof(uintptr(0)) + +// toPointer converts an interface of pointer type to a pointer +// that points to the same target. +func toPointer(i *Message) pointer { + // Super-tricky - read pointer out of data word of interface value. + // Saves ~25ns over the equivalent: + // return valToPointer(reflect.ValueOf(*i)) + return pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]} +} + +// toAddrPointer converts an interface to a pointer that points to +// the interface data. +func toAddrPointer(i *interface{}, isptr bool) pointer { + // Super-tricky - read or get the address of data word of interface value. + if isptr { + // The interface is of pointer type, thus it is a direct interface. + // The data word is the pointer data itself. We take its address. + return pointer{p: unsafe.Pointer(uintptr(unsafe.Pointer(i)) + ptrSize)} + } + // The interface is not of pointer type. The data word is the pointer + // to the data. + return pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]} +} + +// valToPointer converts v to a pointer. v must be of pointer type. +func valToPointer(v reflect.Value) pointer { + return pointer{p: unsafe.Pointer(v.Pointer())} +} + +// offset converts from a pointer to a structure to a pointer to +// one of its fields. +func (p pointer) offset(f field) pointer { + // For safety, we should panic if !f.IsValid, however calling panic causes + // this to no longer be inlineable, which is a serious performance cost. + /* + if !f.IsValid() { + panic("invalid field") + } + */ + return pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))} +} + +func (p pointer) isNil() bool { + return p.p == nil +} + +func (p pointer) toInt64() *int64 { + return (*int64)(p.p) +} +func (p pointer) toInt64Ptr() **int64 { + return (**int64)(p.p) +} +func (p pointer) toInt64Slice() *[]int64 { + return (*[]int64)(p.p) +} +func (p pointer) toInt32() *int32 { + return (*int32)(p.p) +} + +// See pointer_reflect.go for why toInt32Ptr/Slice doesn't exist. +/* + func (p pointer) toInt32Ptr() **int32 { + return (**int32)(p.p) + } + func (p pointer) toInt32Slice() *[]int32 { + return (*[]int32)(p.p) + } +*/ +func (p pointer) getInt32Ptr() *int32 { + return *(**int32)(p.p) +} +func (p pointer) setInt32Ptr(v int32) { + *(**int32)(p.p) = &v +} + +// getInt32Slice loads a []int32 from p. +// The value returned is aliased with the original slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) getInt32Slice() []int32 { + return *(*[]int32)(p.p) +} + +// setInt32Slice stores a []int32 to p. +// The value set is aliased with the input slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) setInt32Slice(v []int32) { + *(*[]int32)(p.p) = v +} + +// TODO: Can we get rid of appendInt32Slice and use setInt32Slice instead? +func (p pointer) appendInt32Slice(v int32) { + s := (*[]int32)(p.p) + *s = append(*s, v) +} + +func (p pointer) toUint64() *uint64 { + return (*uint64)(p.p) +} +func (p pointer) toUint64Ptr() **uint64 { + return (**uint64)(p.p) +} +func (p pointer) toUint64Slice() *[]uint64 { + return (*[]uint64)(p.p) +} +func (p pointer) toUint32() *uint32 { + return (*uint32)(p.p) +} +func (p pointer) toUint32Ptr() **uint32 { + return (**uint32)(p.p) +} +func (p pointer) toUint32Slice() *[]uint32 { + return (*[]uint32)(p.p) +} +func (p pointer) toBool() *bool { + return (*bool)(p.p) +} +func (p pointer) toBoolPtr() **bool { + return (**bool)(p.p) +} +func (p pointer) toBoolSlice() *[]bool { + return (*[]bool)(p.p) +} +func (p pointer) toFloat64() *float64 { + return (*float64)(p.p) +} +func (p pointer) toFloat64Ptr() **float64 { + return (**float64)(p.p) +} +func (p pointer) toFloat64Slice() *[]float64 { + return (*[]float64)(p.p) +} +func (p pointer) toFloat32() *float32 { + return (*float32)(p.p) +} +func (p pointer) toFloat32Ptr() **float32 { + return (**float32)(p.p) +} +func (p pointer) toFloat32Slice() *[]float32 { + return (*[]float32)(p.p) +} +func (p pointer) toString() *string { + return (*string)(p.p) +} +func (p pointer) toStringPtr() **string { + return (**string)(p.p) +} +func (p pointer) toStringSlice() *[]string { + return (*[]string)(p.p) +} +func (p pointer) toBytes() *[]byte { + return (*[]byte)(p.p) +} +func (p pointer) toBytesSlice() *[][]byte { + return (*[][]byte)(p.p) +} +func (p pointer) toExtensions() *XXX_InternalExtensions { + return (*XXX_InternalExtensions)(p.p) +} +func (p pointer) toOldExtensions() *map[int32]Extension { + return (*map[int32]Extension)(p.p) +} + +// getPointerSlice loads []*T from p as a []pointer. +// The value returned is aliased with the original slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) getPointerSlice() []pointer { + // Super-tricky - p should point to a []*T where T is a + // message type. We load it as []pointer. + return *(*[]pointer)(p.p) +} + +// setPointerSlice stores []pointer into p as a []*T. +// The value set is aliased with the input slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) setPointerSlice(v []pointer) { + // Super-tricky - p should point to a []*T where T is a + // message type. We store it as []pointer. + *(*[]pointer)(p.p) = v +} + +// getPointer loads the pointer at p and returns it. +func (p pointer) getPointer() pointer { + return pointer{p: *(*unsafe.Pointer)(p.p)} +} + +// setPointer stores the pointer q at p. +func (p pointer) setPointer(q pointer) { + *(*unsafe.Pointer)(p.p) = q.p +} + +// append q to the slice pointed to by p. +func (p pointer) appendPointer(q pointer) { + s := (*[]unsafe.Pointer)(p.p) + *s = append(*s, q.p) +} + +// getInterfacePointer returns a pointer that points to the +// interface data of the interface pointed by p. +func (p pointer) getInterfacePointer() pointer { + // Super-tricky - read pointer out of data word of interface value. + return pointer{p: (*(*[2]unsafe.Pointer)(p.p))[1]} +} + +// asPointerTo returns a reflect.Value that is a pointer to an +// object of type t stored at p. +func (p pointer) asPointerTo(t reflect.Type) reflect.Value { + return reflect.NewAt(t, p.p) +} + +func atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo { + return (*unmarshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} +func atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo { + return (*marshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} +func atomicLoadMergeInfo(p **mergeInfo) *mergeInfo { + return (*mergeInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} +func atomicLoadDiscardInfo(p **discardInfo) *discardInfo { + return (*discardInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go new file mode 100644 index 00000000..aca8eed0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go @@ -0,0 +1,56 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build !purego,!appengine,!js + +// This file contains the implementation of the proto field accesses using package unsafe. + +package proto + +import ( + "reflect" + "unsafe" +) + +func (p pointer) getRef() pointer { + return pointer{p: (unsafe.Pointer)(&p.p)} +} + +func (p pointer) appendRef(v pointer, typ reflect.Type) { + slice := p.getSlice(typ) + elem := v.asPointerTo(typ).Elem() + newSlice := reflect.Append(slice, elem) + slice.Set(newSlice) +} + +func (p pointer) getSlice(typ reflect.Type) reflect.Value { + sliceTyp := reflect.SliceOf(typ) + slice := p.asPointerTo(sliceTyp) + slice = slice.Elem() + return slice +} diff --git a/vendor/github.com/gogo/protobuf/proto/properties.go b/vendor/github.com/gogo/protobuf/proto/properties.go new file mode 100644 index 00000000..c9e5fa02 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/properties.go @@ -0,0 +1,599 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "fmt" + "log" + "os" + "reflect" + "sort" + "strconv" + "strings" + "sync" +) + +const debug bool = false + +// Constants that identify the encoding of a value on the wire. +const ( + WireVarint = 0 + WireFixed64 = 1 + WireBytes = 2 + WireStartGroup = 3 + WireEndGroup = 4 + WireFixed32 = 5 +) + +// tagMap is an optimization over map[int]int for typical protocol buffer +// use-cases. Encoded protocol buffers are often in tag order with small tag +// numbers. +type tagMap struct { + fastTags []int + slowTags map[int]int +} + +// tagMapFastLimit is the upper bound on the tag number that will be stored in +// the tagMap slice rather than its map. +const tagMapFastLimit = 1024 + +func (p *tagMap) get(t int) (int, bool) { + if t > 0 && t < tagMapFastLimit { + if t >= len(p.fastTags) { + return 0, false + } + fi := p.fastTags[t] + return fi, fi >= 0 + } + fi, ok := p.slowTags[t] + return fi, ok +} + +func (p *tagMap) put(t int, fi int) { + if t > 0 && t < tagMapFastLimit { + for len(p.fastTags) < t+1 { + p.fastTags = append(p.fastTags, -1) + } + p.fastTags[t] = fi + return + } + if p.slowTags == nil { + p.slowTags = make(map[int]int) + } + p.slowTags[t] = fi +} + +// StructProperties represents properties for all the fields of a struct. +// decoderTags and decoderOrigNames should only be used by the decoder. +type StructProperties struct { + Prop []*Properties // properties for each field + reqCount int // required count + decoderTags tagMap // map from proto tag to struct field number + decoderOrigNames map[string]int // map from original name to struct field number + order []int // list of struct field numbers in tag order + + // OneofTypes contains information about the oneof fields in this message. + // It is keyed by the original name of a field. + OneofTypes map[string]*OneofProperties +} + +// OneofProperties represents information about a specific field in a oneof. +type OneofProperties struct { + Type reflect.Type // pointer to generated struct type for this oneof field + Field int // struct field number of the containing oneof in the message + Prop *Properties +} + +// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec. +// See encode.go, (*Buffer).enc_struct. + +func (sp *StructProperties) Len() int { return len(sp.order) } +func (sp *StructProperties) Less(i, j int) bool { + return sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag +} +func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] } + +// Properties represents the protocol-specific behavior of a single struct field. +type Properties struct { + Name string // name of the field, for error messages + OrigName string // original name before protocol compiler (always set) + JSONName string // name to use for JSON; determined by protoc + Wire string + WireType int + Tag int + Required bool + Optional bool + Repeated bool + Packed bool // relevant for repeated primitives only + Enum string // set for enum types only + proto3 bool // whether this is known to be a proto3 field + oneof bool // whether this is a oneof field + + Default string // default value + HasDefault bool // whether an explicit default was provided + CustomType string + CastType string + StdTime bool + StdDuration bool + WktPointer bool + + stype reflect.Type // set for struct types only + ctype reflect.Type // set for custom types only + sprop *StructProperties // set for struct types only + + mtype reflect.Type // set for map types only + MapKeyProp *Properties // set for map types only + MapValProp *Properties // set for map types only +} + +// String formats the properties in the protobuf struct field tag style. +func (p *Properties) String() string { + s := p.Wire + s += "," + s += strconv.Itoa(p.Tag) + if p.Required { + s += ",req" + } + if p.Optional { + s += ",opt" + } + if p.Repeated { + s += ",rep" + } + if p.Packed { + s += ",packed" + } + s += ",name=" + p.OrigName + if p.JSONName != p.OrigName { + s += ",json=" + p.JSONName + } + if p.proto3 { + s += ",proto3" + } + if p.oneof { + s += ",oneof" + } + if len(p.Enum) > 0 { + s += ",enum=" + p.Enum + } + if p.HasDefault { + s += ",def=" + p.Default + } + return s +} + +// Parse populates p by parsing a string in the protobuf struct field tag style. +func (p *Properties) Parse(s string) { + // "bytes,49,opt,name=foo,def=hello!" + fields := strings.Split(s, ",") // breaks def=, but handled below. + if len(fields) < 2 { + fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s) + return + } + + p.Wire = fields[0] + switch p.Wire { + case "varint": + p.WireType = WireVarint + case "fixed32": + p.WireType = WireFixed32 + case "fixed64": + p.WireType = WireFixed64 + case "zigzag32": + p.WireType = WireVarint + case "zigzag64": + p.WireType = WireVarint + case "bytes", "group": + p.WireType = WireBytes + // no numeric converter for non-numeric types + default: + fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s) + return + } + + var err error + p.Tag, err = strconv.Atoi(fields[1]) + if err != nil { + return + } + +outer: + for i := 2; i < len(fields); i++ { + f := fields[i] + switch { + case f == "req": + p.Required = true + case f == "opt": + p.Optional = true + case f == "rep": + p.Repeated = true + case f == "packed": + p.Packed = true + case strings.HasPrefix(f, "name="): + p.OrigName = f[5:] + case strings.HasPrefix(f, "json="): + p.JSONName = f[5:] + case strings.HasPrefix(f, "enum="): + p.Enum = f[5:] + case f == "proto3": + p.proto3 = true + case f == "oneof": + p.oneof = true + case strings.HasPrefix(f, "def="): + p.HasDefault = true + p.Default = f[4:] // rest of string + if i+1 < len(fields) { + // Commas aren't escaped, and def is always last. + p.Default += "," + strings.Join(fields[i+1:], ",") + break outer + } + case strings.HasPrefix(f, "embedded="): + p.OrigName = strings.Split(f, "=")[1] + case strings.HasPrefix(f, "customtype="): + p.CustomType = strings.Split(f, "=")[1] + case strings.HasPrefix(f, "casttype="): + p.CastType = strings.Split(f, "=")[1] + case f == "stdtime": + p.StdTime = true + case f == "stdduration": + p.StdDuration = true + case f == "wktptr": + p.WktPointer = true + } + } +} + +var protoMessageType = reflect.TypeOf((*Message)(nil)).Elem() + +// setFieldProps initializes the field properties for submessages and maps. +func (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, lockGetProp bool) { + isMap := typ.Kind() == reflect.Map + if len(p.CustomType) > 0 && !isMap { + p.ctype = typ + p.setTag(lockGetProp) + return + } + if p.StdTime && !isMap { + p.setTag(lockGetProp) + return + } + if p.StdDuration && !isMap { + p.setTag(lockGetProp) + return + } + if p.WktPointer && !isMap { + p.setTag(lockGetProp) + return + } + switch t1 := typ; t1.Kind() { + case reflect.Struct: + p.stype = typ + case reflect.Ptr: + if t1.Elem().Kind() == reflect.Struct { + p.stype = t1.Elem() + } + case reflect.Slice: + switch t2 := t1.Elem(); t2.Kind() { + case reflect.Ptr: + switch t3 := t2.Elem(); t3.Kind() { + case reflect.Struct: + p.stype = t3 + } + case reflect.Struct: + p.stype = t2 + } + + case reflect.Map: + + p.mtype = t1 + p.MapKeyProp = &Properties{} + p.MapKeyProp.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) + p.MapValProp = &Properties{} + vtype := p.mtype.Elem() + if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice { + // The value type is not a message (*T) or bytes ([]byte), + // so we need encoders for the pointer to this type. + vtype = reflect.PtrTo(vtype) + } + + p.MapValProp.CustomType = p.CustomType + p.MapValProp.StdDuration = p.StdDuration + p.MapValProp.StdTime = p.StdTime + p.MapValProp.WktPointer = p.WktPointer + p.MapValProp.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) + } + p.setTag(lockGetProp) +} + +func (p *Properties) setTag(lockGetProp bool) { + if p.stype != nil { + if lockGetProp { + p.sprop = GetProperties(p.stype) + } else { + p.sprop = getPropertiesLocked(p.stype) + } + } +} + +var ( + marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() +) + +// Init populates the properties from a protocol buffer struct tag. +func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { + p.init(typ, name, tag, f, true) +} + +func (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) { + // "bytes,49,opt,def=hello!" + p.Name = name + p.OrigName = name + if tag == "" { + return + } + p.Parse(tag) + p.setFieldProps(typ, f, lockGetProp) +} + +var ( + propertiesMu sync.RWMutex + propertiesMap = make(map[reflect.Type]*StructProperties) +) + +// GetProperties returns the list of properties for the type represented by t. +// t must represent a generated struct type of a protocol message. +func GetProperties(t reflect.Type) *StructProperties { + if t.Kind() != reflect.Struct { + panic("proto: type must have kind struct") + } + + // Most calls to GetProperties in a long-running program will be + // retrieving details for types we have seen before. + propertiesMu.RLock() + sprop, ok := propertiesMap[t] + propertiesMu.RUnlock() + if ok { + return sprop + } + + propertiesMu.Lock() + sprop = getPropertiesLocked(t) + propertiesMu.Unlock() + return sprop +} + +// getPropertiesLocked requires that propertiesMu is held. +func getPropertiesLocked(t reflect.Type) *StructProperties { + if prop, ok := propertiesMap[t]; ok { + return prop + } + + prop := new(StructProperties) + // in case of recursive protos, fill this in now. + propertiesMap[t] = prop + + // build properties + prop.Prop = make([]*Properties, t.NumField()) + prop.order = make([]int, t.NumField()) + + isOneofMessage := false + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + p := new(Properties) + name := f.Name + p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false) + + oneof := f.Tag.Get("protobuf_oneof") // special case + if oneof != "" { + isOneofMessage = true + // Oneof fields don't use the traditional protobuf tag. + p.OrigName = oneof + } + prop.Prop[i] = p + prop.order[i] = i + if debug { + print(i, " ", f.Name, " ", t.String(), " ") + if p.Tag > 0 { + print(p.String()) + } + print("\n") + } + } + + // Re-order prop.order. + sort.Sort(prop) + + type oneofMessage interface { + XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{}) + } + if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); isOneofMessage && ok { + var oots []interface{} + _, _, _, oots = om.XXX_OneofFuncs() + + // Interpret oneof metadata. + prop.OneofTypes = make(map[string]*OneofProperties) + for _, oot := range oots { + oop := &OneofProperties{ + Type: reflect.ValueOf(oot).Type(), // *T + Prop: new(Properties), + } + sft := oop.Type.Elem().Field(0) + oop.Prop.Name = sft.Name + oop.Prop.Parse(sft.Tag.Get("protobuf")) + // There will be exactly one interface field that + // this new value is assignable to. + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Type.Kind() != reflect.Interface { + continue + } + if !oop.Type.AssignableTo(f.Type) { + continue + } + oop.Field = i + break + } + prop.OneofTypes[oop.Prop.OrigName] = oop + } + } + + // build required counts + // build tags + reqCount := 0 + prop.decoderOrigNames = make(map[string]int) + for i, p := range prop.Prop { + if strings.HasPrefix(p.Name, "XXX_") { + // Internal fields should not appear in tags/origNames maps. + // They are handled specially when encoding and decoding. + continue + } + if p.Required { + reqCount++ + } + prop.decoderTags.put(p.Tag, i) + prop.decoderOrigNames[p.OrigName] = i + } + prop.reqCount = reqCount + + return prop +} + +// A global registry of enum types. +// The generated code will register the generated maps by calling RegisterEnum. + +var enumValueMaps = make(map[string]map[string]int32) +var enumStringMaps = make(map[string]map[int32]string) + +// RegisterEnum is called from the generated code to install the enum descriptor +// maps into the global table to aid parsing text format protocol buffers. +func RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) { + if _, ok := enumValueMaps[typeName]; ok { + panic("proto: duplicate enum registered: " + typeName) + } + enumValueMaps[typeName] = valueMap + if _, ok := enumStringMaps[typeName]; ok { + panic("proto: duplicate enum registered: " + typeName) + } + enumStringMaps[typeName] = unusedNameMap +} + +// EnumValueMap returns the mapping from names to integers of the +// enum type enumType, or a nil if not found. +func EnumValueMap(enumType string) map[string]int32 { + return enumValueMaps[enumType] +} + +// A registry of all linked message types. +// The string is a fully-qualified proto name ("pkg.Message"). +var ( + protoTypedNils = make(map[string]Message) // a map from proto names to typed nil pointers + protoMapTypes = make(map[string]reflect.Type) // a map from proto names to map types + revProtoTypes = make(map[reflect.Type]string) +) + +// RegisterType is called from generated code and maps from the fully qualified +// proto name to the type (pointer to struct) of the protocol buffer. +func RegisterType(x Message, name string) { + if _, ok := protoTypedNils[name]; ok { + // TODO: Some day, make this a panic. + log.Printf("proto: duplicate proto type registered: %s", name) + return + } + t := reflect.TypeOf(x) + if v := reflect.ValueOf(x); v.Kind() == reflect.Ptr && v.Pointer() == 0 { + // Generated code always calls RegisterType with nil x. + // This check is just for extra safety. + protoTypedNils[name] = x + } else { + protoTypedNils[name] = reflect.Zero(t).Interface().(Message) + } + revProtoTypes[t] = name +} + +// RegisterMapType is called from generated code and maps from the fully qualified +// proto name to the native map type of the proto map definition. +func RegisterMapType(x interface{}, name string) { + if reflect.TypeOf(x).Kind() != reflect.Map { + panic(fmt.Sprintf("RegisterMapType(%T, %q); want map", x, name)) + } + if _, ok := protoMapTypes[name]; ok { + log.Printf("proto: duplicate proto type registered: %s", name) + return + } + t := reflect.TypeOf(x) + protoMapTypes[name] = t + revProtoTypes[t] = name +} + +// MessageName returns the fully-qualified proto name for the given message type. +func MessageName(x Message) string { + type xname interface { + XXX_MessageName() string + } + if m, ok := x.(xname); ok { + return m.XXX_MessageName() + } + return revProtoTypes[reflect.TypeOf(x)] +} + +// MessageType returns the message type (pointer to struct) for a named message. +// The type is not guaranteed to implement proto.Message if the name refers to a +// map entry. +func MessageType(name string) reflect.Type { + if t, ok := protoTypedNils[name]; ok { + return reflect.TypeOf(t) + } + return protoMapTypes[name] +} + +// A registry of all linked proto files. +var ( + protoFiles = make(map[string][]byte) // file name => fileDescriptor +) + +// RegisterFile is called from generated code and maps from the +// full file name of a .proto file to its compressed FileDescriptorProto. +func RegisterFile(filename string, fileDescriptor []byte) { + protoFiles[filename] = fileDescriptor +} + +// FileDescriptor returns the compressed FileDescriptorProto for a .proto file. +func FileDescriptor(filename string) []byte { return protoFiles[filename] } diff --git a/vendor/github.com/gogo/protobuf/proto/properties_gogo.go b/vendor/github.com/gogo/protobuf/proto/properties_gogo.go new file mode 100644 index 00000000..40ea3dd9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/properties_gogo.go @@ -0,0 +1,36 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "reflect" +) + +var sizerType = reflect.TypeOf((*Sizer)(nil)).Elem() +var protosizerType = reflect.TypeOf((*ProtoSizer)(nil)).Elem() diff --git a/vendor/github.com/gogo/protobuf/proto/skip_gogo.go b/vendor/github.com/gogo/protobuf/proto/skip_gogo.go new file mode 100644 index 00000000..5a5fd93f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/skip_gogo.go @@ -0,0 +1,119 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "fmt" + "io" +) + +func Skip(data []byte) (n int, err error) { + l := len(data) + index := 0 + for index < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[index] + index++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + index++ + if data[index-1] < 0x80 { + break + } + } + return index, nil + case 1: + index += 8 + return index, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[index] + index++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + index += length + return index, nil + case 3: + for { + var innerWire uint64 + var start int = index + for shift := uint(0); ; shift += 7 { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[index] + index++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := Skip(data[start:]) + if err != nil { + return 0, err + } + index = start + next + } + return index, nil + case 4: + return index, nil + case 5: + index += 4 + return index, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} diff --git a/vendor/github.com/gogo/protobuf/proto/table_marshal.go b/vendor/github.com/gogo/protobuf/proto/table_marshal.go new file mode 100644 index 00000000..9b1538d0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/table_marshal.go @@ -0,0 +1,3006 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "errors" + "fmt" + "math" + "reflect" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "unicode/utf8" +) + +// a sizer takes a pointer to a field and the size of its tag, computes the size of +// the encoded data. +type sizer func(pointer, int) int + +// a marshaler takes a byte slice, a pointer to a field, and its tag (in wire format), +// marshals the field to the end of the slice, returns the slice and error (if any). +type marshaler func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) + +// marshalInfo is the information used for marshaling a message. +type marshalInfo struct { + typ reflect.Type + fields []*marshalFieldInfo + unrecognized field // offset of XXX_unrecognized + extensions field // offset of XXX_InternalExtensions + v1extensions field // offset of XXX_extensions + sizecache field // offset of XXX_sizecache + initialized int32 // 0 -- only typ is set, 1 -- fully initialized + messageset bool // uses message set wire format + hasmarshaler bool // has custom marshaler + sync.RWMutex // protect extElems map, also for initialization + extElems map[int32]*marshalElemInfo // info of extension elements + + hassizer bool // has custom sizer + hasprotosizer bool // has custom protosizer + + bytesExtensions field // offset of XXX_extensions where the field type is []byte +} + +// marshalFieldInfo is the information used for marshaling a field of a message. +type marshalFieldInfo struct { + field field + wiretag uint64 // tag in wire format + tagsize int // size of tag in wire format + sizer sizer + marshaler marshaler + isPointer bool + required bool // field is required + name string // name of the field, for error reporting + oneofElems map[reflect.Type]*marshalElemInfo // info of oneof elements +} + +// marshalElemInfo is the information used for marshaling an extension or oneof element. +type marshalElemInfo struct { + wiretag uint64 // tag in wire format + tagsize int // size of tag in wire format + sizer sizer + marshaler marshaler + isptr bool // elem is pointer typed, thus interface of this type is a direct interface (extension only) +} + +var ( + marshalInfoMap = map[reflect.Type]*marshalInfo{} + marshalInfoLock sync.Mutex + + uint8SliceType = reflect.TypeOf(([]uint8)(nil)).Kind() +) + +// getMarshalInfo returns the information to marshal a given type of message. +// The info it returns may not necessarily initialized. +// t is the type of the message (NOT the pointer to it). +func getMarshalInfo(t reflect.Type) *marshalInfo { + marshalInfoLock.Lock() + u, ok := marshalInfoMap[t] + if !ok { + u = &marshalInfo{typ: t} + marshalInfoMap[t] = u + } + marshalInfoLock.Unlock() + return u +} + +// Size is the entry point from generated code, +// and should be ONLY called by generated code. +// It computes the size of encoded data of msg. +// a is a pointer to a place to store cached marshal info. +func (a *InternalMessageInfo) Size(msg Message) int { + u := getMessageMarshalInfo(msg, a) + ptr := toPointer(&msg) + if ptr.isNil() { + // We get here if msg is a typed nil ((*SomeMessage)(nil)), + // so it satisfies the interface, and msg == nil wouldn't + // catch it. We don't want crash in this case. + return 0 + } + return u.size(ptr) +} + +// Marshal is the entry point from generated code, +// and should be ONLY called by generated code. +// It marshals msg to the end of b. +// a is a pointer to a place to store cached marshal info. +func (a *InternalMessageInfo) Marshal(b []byte, msg Message, deterministic bool) ([]byte, error) { + u := getMessageMarshalInfo(msg, a) + ptr := toPointer(&msg) + if ptr.isNil() { + // We get here if msg is a typed nil ((*SomeMessage)(nil)), + // so it satisfies the interface, and msg == nil wouldn't + // catch it. We don't want crash in this case. + return b, ErrNil + } + return u.marshal(b, ptr, deterministic) +} + +func getMessageMarshalInfo(msg interface{}, a *InternalMessageInfo) *marshalInfo { + // u := a.marshal, but atomically. + // We use an atomic here to ensure memory consistency. + u := atomicLoadMarshalInfo(&a.marshal) + if u == nil { + // Get marshal information from type of message. + t := reflect.ValueOf(msg).Type() + if t.Kind() != reflect.Ptr { + panic(fmt.Sprintf("cannot handle non-pointer message type %v", t)) + } + u = getMarshalInfo(t.Elem()) + // Store it in the cache for later users. + // a.marshal = u, but atomically. + atomicStoreMarshalInfo(&a.marshal, u) + } + return u +} + +// size is the main function to compute the size of the encoded data of a message. +// ptr is the pointer to the message. +func (u *marshalInfo) size(ptr pointer) int { + if atomic.LoadInt32(&u.initialized) == 0 { + u.computeMarshalInfo() + } + + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + if u.hasmarshaler { + // Uses the message's Size method if available + if u.hassizer { + s := ptr.asPointerTo(u.typ).Interface().(Sizer) + return s.Size() + } + // Uses the message's ProtoSize method if available + if u.hasprotosizer { + s := ptr.asPointerTo(u.typ).Interface().(ProtoSizer) + return s.ProtoSize() + } + + m := ptr.asPointerTo(u.typ).Interface().(Marshaler) + b, _ := m.Marshal() + return len(b) + } + + n := 0 + for _, f := range u.fields { + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { + // nil pointer always marshals to nothing + continue + } + n += f.sizer(ptr.offset(f.field), f.tagsize) + } + if u.extensions.IsValid() { + e := ptr.offset(u.extensions).toExtensions() + if u.messageset { + n += u.sizeMessageSet(e) + } else { + n += u.sizeExtensions(e) + } + } + if u.v1extensions.IsValid() { + m := *ptr.offset(u.v1extensions).toOldExtensions() + n += u.sizeV1Extensions(m) + } + if u.bytesExtensions.IsValid() { + s := *ptr.offset(u.bytesExtensions).toBytes() + n += len(s) + } + if u.unrecognized.IsValid() { + s := *ptr.offset(u.unrecognized).toBytes() + n += len(s) + } + + // cache the result for use in marshal + if u.sizecache.IsValid() { + atomic.StoreInt32(ptr.offset(u.sizecache).toInt32(), int32(n)) + } + return n +} + +// cachedsize gets the size from cache. If there is no cache (i.e. message is not generated), +// fall back to compute the size. +func (u *marshalInfo) cachedsize(ptr pointer) int { + if u.sizecache.IsValid() { + return int(atomic.LoadInt32(ptr.offset(u.sizecache).toInt32())) + } + return u.size(ptr) +} + +// marshal is the main function to marshal a message. It takes a byte slice and appends +// the encoded data to the end of the slice, returns the slice and error (if any). +// ptr is the pointer to the message. +// If deterministic is true, map is marshaled in deterministic order. +func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte, error) { + if atomic.LoadInt32(&u.initialized) == 0 { + u.computeMarshalInfo() + } + + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + if u.hasmarshaler { + m := ptr.asPointerTo(u.typ).Interface().(Marshaler) + b1, err := m.Marshal() + b = append(b, b1...) + return b, err + } + + var err, errLater error + // The old marshaler encodes extensions at beginning. + if u.extensions.IsValid() { + e := ptr.offset(u.extensions).toExtensions() + if u.messageset { + b, err = u.appendMessageSet(b, e, deterministic) + } else { + b, err = u.appendExtensions(b, e, deterministic) + } + if err != nil { + return b, err + } + } + if u.v1extensions.IsValid() { + m := *ptr.offset(u.v1extensions).toOldExtensions() + b, err = u.appendV1Extensions(b, m, deterministic) + if err != nil { + return b, err + } + } + if u.bytesExtensions.IsValid() { + s := *ptr.offset(u.bytesExtensions).toBytes() + b = append(b, s...) + } + for _, f := range u.fields { + if f.required { + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { + // Required field is not set. + // We record the error but keep going, to give a complete marshaling. + if errLater == nil { + errLater = &RequiredNotSetError{f.name} + } + continue + } + } + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { + // nil pointer always marshals to nothing + continue + } + b, err = f.marshaler(b, ptr.offset(f.field), f.wiretag, deterministic) + if err != nil { + if err1, ok := err.(*RequiredNotSetError); ok { + // Required field in submessage is not set. + // We record the error but keep going, to give a complete marshaling. + if errLater == nil { + errLater = &RequiredNotSetError{f.name + "." + err1.field} + } + continue + } + if err == errRepeatedHasNil { + err = errors.New("proto: repeated field " + f.name + " has nil element") + } + if err == errInvalidUTF8 { + if errLater == nil { + fullName := revProtoTypes[reflect.PtrTo(u.typ)] + "." + f.name + errLater = &invalidUTF8Error{fullName} + } + continue + } + return b, err + } + } + if u.unrecognized.IsValid() { + s := *ptr.offset(u.unrecognized).toBytes() + b = append(b, s...) + } + return b, errLater +} + +// computeMarshalInfo initializes the marshal info. +func (u *marshalInfo) computeMarshalInfo() { + u.Lock() + defer u.Unlock() + if u.initialized != 0 { // non-atomic read is ok as it is protected by the lock + return + } + + t := u.typ + u.unrecognized = invalidField + u.extensions = invalidField + u.v1extensions = invalidField + u.bytesExtensions = invalidField + u.sizecache = invalidField + isOneofMessage := false + + if reflect.PtrTo(t).Implements(sizerType) { + u.hassizer = true + } + if reflect.PtrTo(t).Implements(protosizerType) { + u.hasprotosizer = true + } + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + if reflect.PtrTo(t).Implements(marshalerType) { + u.hasmarshaler = true + atomic.StoreInt32(&u.initialized, 1) + return + } + + n := t.NumField() + + // deal with XXX fields first + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Tag.Get("protobuf_oneof") != "" { + isOneofMessage = true + } + if !strings.HasPrefix(f.Name, "XXX_") { + continue + } + switch f.Name { + case "XXX_sizecache": + u.sizecache = toField(&f) + case "XXX_unrecognized": + u.unrecognized = toField(&f) + case "XXX_InternalExtensions": + u.extensions = toField(&f) + u.messageset = f.Tag.Get("protobuf_messageset") == "1" + case "XXX_extensions": + if f.Type.Kind() == reflect.Map { + u.v1extensions = toField(&f) + } else { + u.bytesExtensions = toField(&f) + } + case "XXX_NoUnkeyedLiteral": + // nothing to do + default: + panic("unknown XXX field: " + f.Name) + } + n-- + } + + // get oneof implementers + var oneofImplementers []interface{} + // gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler + if m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); ok && isOneofMessage { + _, _, _, oneofImplementers = m.XXX_OneofFuncs() + } + + // normal fields + fields := make([]marshalFieldInfo, n) // batch allocation + u.fields = make([]*marshalFieldInfo, 0, n) + for i, j := 0, 0; i < t.NumField(); i++ { + f := t.Field(i) + + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + field := &fields[j] + j++ + field.name = f.Name + u.fields = append(u.fields, field) + if f.Tag.Get("protobuf_oneof") != "" { + field.computeOneofFieldInfo(&f, oneofImplementers) + continue + } + if f.Tag.Get("protobuf") == "" { + // field has no tag (not in generated message), ignore it + u.fields = u.fields[:len(u.fields)-1] + j-- + continue + } + field.computeMarshalFieldInfo(&f) + } + + // fields are marshaled in tag order on the wire. + sort.Sort(byTag(u.fields)) + + atomic.StoreInt32(&u.initialized, 1) +} + +// helper for sorting fields by tag +type byTag []*marshalFieldInfo + +func (a byTag) Len() int { return len(a) } +func (a byTag) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byTag) Less(i, j int) bool { return a[i].wiretag < a[j].wiretag } + +// getExtElemInfo returns the information to marshal an extension element. +// The info it returns is initialized. +func (u *marshalInfo) getExtElemInfo(desc *ExtensionDesc) *marshalElemInfo { + // get from cache first + u.RLock() + e, ok := u.extElems[desc.Field] + u.RUnlock() + if ok { + return e + } + + t := reflect.TypeOf(desc.ExtensionType) // pointer or slice to basic type or struct + tags := strings.Split(desc.Tag, ",") + tag, err := strconv.Atoi(tags[1]) + if err != nil { + panic("tag is not an integer") + } + wt := wiretype(tags[0]) + sizr, marshalr := typeMarshaler(t, tags, false, false) + e = &marshalElemInfo{ + wiretag: uint64(tag)<<3 | wt, + tagsize: SizeVarint(uint64(tag) << 3), + sizer: sizr, + marshaler: marshalr, + isptr: t.Kind() == reflect.Ptr, + } + + // update cache + u.Lock() + if u.extElems == nil { + u.extElems = make(map[int32]*marshalElemInfo) + } + u.extElems[desc.Field] = e + u.Unlock() + return e +} + +// computeMarshalFieldInfo fills up the information to marshal a field. +func (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructField) { + // parse protobuf tag of the field. + // tag has format of "bytes,49,opt,name=foo,def=hello!" + tags := strings.Split(f.Tag.Get("protobuf"), ",") + if tags[0] == "" { + return + } + tag, err := strconv.Atoi(tags[1]) + if err != nil { + panic("tag is not an integer") + } + wt := wiretype(tags[0]) + if tags[2] == "req" { + fi.required = true + } + fi.setTag(f, tag, wt) + fi.setMarshaler(f, tags) +} + +func (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofImplementers []interface{}) { + fi.field = toField(f) + fi.wiretag = math.MaxInt32 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire. + fi.isPointer = true + fi.sizer, fi.marshaler = makeOneOfMarshaler(fi, f) + fi.oneofElems = make(map[reflect.Type]*marshalElemInfo) + + ityp := f.Type // interface type + for _, o := range oneofImplementers { + t := reflect.TypeOf(o) + if !t.Implements(ityp) { + continue + } + sf := t.Elem().Field(0) // oneof implementer is a struct with a single field + tags := strings.Split(sf.Tag.Get("protobuf"), ",") + tag, err := strconv.Atoi(tags[1]) + if err != nil { + panic("tag is not an integer") + } + wt := wiretype(tags[0]) + sizr, marshalr := typeMarshaler(sf.Type, tags, false, true) // oneof should not omit any zero value + fi.oneofElems[t.Elem()] = &marshalElemInfo{ + wiretag: uint64(tag)<<3 | wt, + tagsize: SizeVarint(uint64(tag) << 3), + sizer: sizr, + marshaler: marshalr, + } + } +} + +type oneofMessage interface { + XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{}) +} + +// wiretype returns the wire encoding of the type. +func wiretype(encoding string) uint64 { + switch encoding { + case "fixed32": + return WireFixed32 + case "fixed64": + return WireFixed64 + case "varint", "zigzag32", "zigzag64": + return WireVarint + case "bytes": + return WireBytes + case "group": + return WireStartGroup + } + panic("unknown wire type " + encoding) +} + +// setTag fills up the tag (in wire format) and its size in the info of a field. +func (fi *marshalFieldInfo) setTag(f *reflect.StructField, tag int, wt uint64) { + fi.field = toField(f) + fi.wiretag = uint64(tag)<<3 | wt + fi.tagsize = SizeVarint(uint64(tag) << 3) +} + +// setMarshaler fills up the sizer and marshaler in the info of a field. +func (fi *marshalFieldInfo) setMarshaler(f *reflect.StructField, tags []string) { + switch f.Type.Kind() { + case reflect.Map: + // map field + fi.isPointer = true + fi.sizer, fi.marshaler = makeMapMarshaler(f) + return + case reflect.Ptr, reflect.Slice: + fi.isPointer = true + } + fi.sizer, fi.marshaler = typeMarshaler(f.Type, tags, true, false) +} + +// typeMarshaler returns the sizer and marshaler of a given field. +// t is the type of the field. +// tags is the generated "protobuf" tag of the field. +// If nozero is true, zero value is not marshaled to the wire. +// If oneof is true, it is a oneof field. +func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, marshaler) { + encoding := tags[0] + + pointer := false + slice := false + if t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 { + slice = true + t = t.Elem() + } + if t.Kind() == reflect.Ptr { + pointer = true + t = t.Elem() + } + + packed := false + proto3 := false + ctype := false + isTime := false + isDuration := false + isWktPointer := false + validateUTF8 := true + for i := 2; i < len(tags); i++ { + if tags[i] == "packed" { + packed = true + } + if tags[i] == "proto3" { + proto3 = true + } + if strings.HasPrefix(tags[i], "customtype=") { + ctype = true + } + if tags[i] == "stdtime" { + isTime = true + } + if tags[i] == "stdduration" { + isDuration = true + } + if tags[i] == "wktptr" { + isWktPointer = true + } + } + validateUTF8 = validateUTF8 && proto3 + if !proto3 && !pointer && !slice { + nozero = false + } + + if ctype { + if reflect.PtrTo(t).Implements(customType) { + if slice { + return makeMessageRefSliceMarshaler(getMarshalInfo(t)) + } + if pointer { + return makeCustomPtrMarshaler(getMarshalInfo(t)) + } + return makeCustomMarshaler(getMarshalInfo(t)) + } else { + panic(fmt.Sprintf("custom type: type: %v, does not implement the proto.custom interface", t)) + } + } + + if isTime { + if pointer { + if slice { + return makeTimePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeTimePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeTimeSliceMarshaler(getMarshalInfo(t)) + } + return makeTimeMarshaler(getMarshalInfo(t)) + } + + if isDuration { + if pointer { + if slice { + return makeDurationPtrSliceMarshaler(getMarshalInfo(t)) + } + return makeDurationPtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeDurationSliceMarshaler(getMarshalInfo(t)) + } + return makeDurationMarshaler(getMarshalInfo(t)) + } + + if isWktPointer { + switch t.Kind() { + case reflect.Float64: + if pointer { + if slice { + return makeStdDoubleValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdDoubleValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdDoubleValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdDoubleValueMarshaler(getMarshalInfo(t)) + case reflect.Float32: + if pointer { + if slice { + return makeStdFloatValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdFloatValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdFloatValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdFloatValueMarshaler(getMarshalInfo(t)) + case reflect.Int64: + if pointer { + if slice { + return makeStdInt64ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt64ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdInt64ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt64ValueMarshaler(getMarshalInfo(t)) + case reflect.Uint64: + if pointer { + if slice { + return makeStdUInt64ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt64ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdUInt64ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt64ValueMarshaler(getMarshalInfo(t)) + case reflect.Int32: + if pointer { + if slice { + return makeStdInt32ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt32ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdInt32ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt32ValueMarshaler(getMarshalInfo(t)) + case reflect.Uint32: + if pointer { + if slice { + return makeStdUInt32ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt32ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdUInt32ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt32ValueMarshaler(getMarshalInfo(t)) + case reflect.Bool: + if pointer { + if slice { + return makeStdBoolValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBoolValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdBoolValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBoolValueMarshaler(getMarshalInfo(t)) + case reflect.String: + if pointer { + if slice { + return makeStdStringValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdStringValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdStringValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdStringValueMarshaler(getMarshalInfo(t)) + case uint8SliceType: + if pointer { + if slice { + return makeStdBytesValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBytesValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdBytesValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBytesValueMarshaler(getMarshalInfo(t)) + default: + panic(fmt.Sprintf("unknown wktpointer type %#v", t)) + } + } + + switch t.Kind() { + case reflect.Bool: + if pointer { + return sizeBoolPtr, appendBoolPtr + } + if slice { + if packed { + return sizeBoolPackedSlice, appendBoolPackedSlice + } + return sizeBoolSlice, appendBoolSlice + } + if nozero { + return sizeBoolValueNoZero, appendBoolValueNoZero + } + return sizeBoolValue, appendBoolValue + case reflect.Uint32: + switch encoding { + case "fixed32": + if pointer { + return sizeFixed32Ptr, appendFixed32Ptr + } + if slice { + if packed { + return sizeFixed32PackedSlice, appendFixed32PackedSlice + } + return sizeFixed32Slice, appendFixed32Slice + } + if nozero { + return sizeFixed32ValueNoZero, appendFixed32ValueNoZero + } + return sizeFixed32Value, appendFixed32Value + case "varint": + if pointer { + return sizeVarint32Ptr, appendVarint32Ptr + } + if slice { + if packed { + return sizeVarint32PackedSlice, appendVarint32PackedSlice + } + return sizeVarint32Slice, appendVarint32Slice + } + if nozero { + return sizeVarint32ValueNoZero, appendVarint32ValueNoZero + } + return sizeVarint32Value, appendVarint32Value + } + case reflect.Int32: + switch encoding { + case "fixed32": + if pointer { + return sizeFixedS32Ptr, appendFixedS32Ptr + } + if slice { + if packed { + return sizeFixedS32PackedSlice, appendFixedS32PackedSlice + } + return sizeFixedS32Slice, appendFixedS32Slice + } + if nozero { + return sizeFixedS32ValueNoZero, appendFixedS32ValueNoZero + } + return sizeFixedS32Value, appendFixedS32Value + case "varint": + if pointer { + return sizeVarintS32Ptr, appendVarintS32Ptr + } + if slice { + if packed { + return sizeVarintS32PackedSlice, appendVarintS32PackedSlice + } + return sizeVarintS32Slice, appendVarintS32Slice + } + if nozero { + return sizeVarintS32ValueNoZero, appendVarintS32ValueNoZero + } + return sizeVarintS32Value, appendVarintS32Value + case "zigzag32": + if pointer { + return sizeZigzag32Ptr, appendZigzag32Ptr + } + if slice { + if packed { + return sizeZigzag32PackedSlice, appendZigzag32PackedSlice + } + return sizeZigzag32Slice, appendZigzag32Slice + } + if nozero { + return sizeZigzag32ValueNoZero, appendZigzag32ValueNoZero + } + return sizeZigzag32Value, appendZigzag32Value + } + case reflect.Uint64: + switch encoding { + case "fixed64": + if pointer { + return sizeFixed64Ptr, appendFixed64Ptr + } + if slice { + if packed { + return sizeFixed64PackedSlice, appendFixed64PackedSlice + } + return sizeFixed64Slice, appendFixed64Slice + } + if nozero { + return sizeFixed64ValueNoZero, appendFixed64ValueNoZero + } + return sizeFixed64Value, appendFixed64Value + case "varint": + if pointer { + return sizeVarint64Ptr, appendVarint64Ptr + } + if slice { + if packed { + return sizeVarint64PackedSlice, appendVarint64PackedSlice + } + return sizeVarint64Slice, appendVarint64Slice + } + if nozero { + return sizeVarint64ValueNoZero, appendVarint64ValueNoZero + } + return sizeVarint64Value, appendVarint64Value + } + case reflect.Int64: + switch encoding { + case "fixed64": + if pointer { + return sizeFixedS64Ptr, appendFixedS64Ptr + } + if slice { + if packed { + return sizeFixedS64PackedSlice, appendFixedS64PackedSlice + } + return sizeFixedS64Slice, appendFixedS64Slice + } + if nozero { + return sizeFixedS64ValueNoZero, appendFixedS64ValueNoZero + } + return sizeFixedS64Value, appendFixedS64Value + case "varint": + if pointer { + return sizeVarintS64Ptr, appendVarintS64Ptr + } + if slice { + if packed { + return sizeVarintS64PackedSlice, appendVarintS64PackedSlice + } + return sizeVarintS64Slice, appendVarintS64Slice + } + if nozero { + return sizeVarintS64ValueNoZero, appendVarintS64ValueNoZero + } + return sizeVarintS64Value, appendVarintS64Value + case "zigzag64": + if pointer { + return sizeZigzag64Ptr, appendZigzag64Ptr + } + if slice { + if packed { + return sizeZigzag64PackedSlice, appendZigzag64PackedSlice + } + return sizeZigzag64Slice, appendZigzag64Slice + } + if nozero { + return sizeZigzag64ValueNoZero, appendZigzag64ValueNoZero + } + return sizeZigzag64Value, appendZigzag64Value + } + case reflect.Float32: + if pointer { + return sizeFloat32Ptr, appendFloat32Ptr + } + if slice { + if packed { + return sizeFloat32PackedSlice, appendFloat32PackedSlice + } + return sizeFloat32Slice, appendFloat32Slice + } + if nozero { + return sizeFloat32ValueNoZero, appendFloat32ValueNoZero + } + return sizeFloat32Value, appendFloat32Value + case reflect.Float64: + if pointer { + return sizeFloat64Ptr, appendFloat64Ptr + } + if slice { + if packed { + return sizeFloat64PackedSlice, appendFloat64PackedSlice + } + return sizeFloat64Slice, appendFloat64Slice + } + if nozero { + return sizeFloat64ValueNoZero, appendFloat64ValueNoZero + } + return sizeFloat64Value, appendFloat64Value + case reflect.String: + if validateUTF8 { + if pointer { + return sizeStringPtr, appendUTF8StringPtr + } + if slice { + return sizeStringSlice, appendUTF8StringSlice + } + if nozero { + return sizeStringValueNoZero, appendUTF8StringValueNoZero + } + return sizeStringValue, appendUTF8StringValue + } + if pointer { + return sizeStringPtr, appendStringPtr + } + if slice { + return sizeStringSlice, appendStringSlice + } + if nozero { + return sizeStringValueNoZero, appendStringValueNoZero + } + return sizeStringValue, appendStringValue + case reflect.Slice: + if slice { + return sizeBytesSlice, appendBytesSlice + } + if oneof { + // Oneof bytes field may also have "proto3" tag. + // We want to marshal it as a oneof field. Do this + // check before the proto3 check. + return sizeBytesOneof, appendBytesOneof + } + if proto3 { + return sizeBytes3, appendBytes3 + } + return sizeBytes, appendBytes + case reflect.Struct: + switch encoding { + case "group": + if slice { + return makeGroupSliceMarshaler(getMarshalInfo(t)) + } + return makeGroupMarshaler(getMarshalInfo(t)) + case "bytes": + if pointer { + if slice { + return makeMessageSliceMarshaler(getMarshalInfo(t)) + } + return makeMessageMarshaler(getMarshalInfo(t)) + } else { + if slice { + return makeMessageRefSliceMarshaler(getMarshalInfo(t)) + } + return makeMessageRefMarshaler(getMarshalInfo(t)) + } + } + } + panic(fmt.Sprintf("unknown or mismatched type: type: %v, wire type: %v", t, encoding)) +} + +// Below are functions to size/marshal a specific type of a field. +// They are stored in the field's info, and called by function pointers. +// They have type sizer or marshaler. + +func sizeFixed32Value(_ pointer, tagsize int) int { + return 4 + tagsize +} +func sizeFixed32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint32() + if v == 0 { + return 0 + } + return 4 + tagsize +} +func sizeFixed32Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint32Ptr() + if p == nil { + return 0 + } + return 4 + tagsize +} +func sizeFixed32Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + return (4 + tagsize) * len(s) +} +func sizeFixed32PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return 0 + } + return 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize +} +func sizeFixedS32Value(_ pointer, tagsize int) int { + return 4 + tagsize +} +func sizeFixedS32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + if v == 0 { + return 0 + } + return 4 + tagsize +} +func sizeFixedS32Ptr(ptr pointer, tagsize int) int { + p := ptr.getInt32Ptr() + if p == nil { + return 0 + } + return 4 + tagsize +} +func sizeFixedS32Slice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + return (4 + tagsize) * len(s) +} +func sizeFixedS32PackedSlice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + if len(s) == 0 { + return 0 + } + return 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize +} +func sizeFloat32Value(_ pointer, tagsize int) int { + return 4 + tagsize +} +func sizeFloat32ValueNoZero(ptr pointer, tagsize int) int { + v := math.Float32bits(*ptr.toFloat32()) + if v == 0 { + return 0 + } + return 4 + tagsize +} +func sizeFloat32Ptr(ptr pointer, tagsize int) int { + p := *ptr.toFloat32Ptr() + if p == nil { + return 0 + } + return 4 + tagsize +} +func sizeFloat32Slice(ptr pointer, tagsize int) int { + s := *ptr.toFloat32Slice() + return (4 + tagsize) * len(s) +} +func sizeFloat32PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toFloat32Slice() + if len(s) == 0 { + return 0 + } + return 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize +} +func sizeFixed64Value(_ pointer, tagsize int) int { + return 8 + tagsize +} +func sizeFixed64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint64() + if v == 0 { + return 0 + } + return 8 + tagsize +} +func sizeFixed64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint64Ptr() + if p == nil { + return 0 + } + return 8 + tagsize +} +func sizeFixed64Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + return (8 + tagsize) * len(s) +} +func sizeFixed64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return 0 + } + return 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize +} +func sizeFixedS64Value(_ pointer, tagsize int) int { + return 8 + tagsize +} +func sizeFixedS64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + if v == 0 { + return 0 + } + return 8 + tagsize +} +func sizeFixedS64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toInt64Ptr() + if p == nil { + return 0 + } + return 8 + tagsize +} +func sizeFixedS64Slice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + return (8 + tagsize) * len(s) +} +func sizeFixedS64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return 0 + } + return 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize +} +func sizeFloat64Value(_ pointer, tagsize int) int { + return 8 + tagsize +} +func sizeFloat64ValueNoZero(ptr pointer, tagsize int) int { + v := math.Float64bits(*ptr.toFloat64()) + if v == 0 { + return 0 + } + return 8 + tagsize +} +func sizeFloat64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toFloat64Ptr() + if p == nil { + return 0 + } + return 8 + tagsize +} +func sizeFloat64Slice(ptr pointer, tagsize int) int { + s := *ptr.toFloat64Slice() + return (8 + tagsize) * len(s) +} +func sizeFloat64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toFloat64Slice() + if len(s) == 0 { + return 0 + } + return 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize +} +func sizeVarint32Value(ptr pointer, tagsize int) int { + v := *ptr.toUint32() + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarint32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint32() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarint32Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint32Ptr() + if p == nil { + return 0 + } + return SizeVarint(uint64(*p)) + tagsize +} +func sizeVarint32Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + tagsize + } + return n +} +func sizeVarint32PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeVarintS32Value(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS32Ptr(ptr pointer, tagsize int) int { + p := ptr.getInt32Ptr() + if p == nil { + return 0 + } + return SizeVarint(uint64(*p)) + tagsize +} +func sizeVarintS32Slice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + tagsize + } + return n +} +func sizeVarintS32PackedSlice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeVarint64Value(ptr pointer, tagsize int) int { + v := *ptr.toUint64() + return SizeVarint(v) + tagsize +} +func sizeVarint64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint64() + if v == 0 { + return 0 + } + return SizeVarint(v) + tagsize +} +func sizeVarint64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint64Ptr() + if p == nil { + return 0 + } + return SizeVarint(*p) + tagsize +} +func sizeVarint64Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + n := 0 + for _, v := range s { + n += SizeVarint(v) + tagsize + } + return n +} +func sizeVarint64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(v) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeVarintS64Value(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toInt64Ptr() + if p == nil { + return 0 + } + return SizeVarint(uint64(*p)) + tagsize +} +func sizeVarintS64Slice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + tagsize + } + return n +} +func sizeVarintS64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeZigzag32Value(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + return SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize +} +func sizeZigzag32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + if v == 0 { + return 0 + } + return SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize +} +func sizeZigzag32Ptr(ptr pointer, tagsize int) int { + p := ptr.getInt32Ptr() + if p == nil { + return 0 + } + v := *p + return SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize +} +func sizeZigzag32Slice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize + } + return n +} +func sizeZigzag32PackedSlice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeZigzag64Value(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + return SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize +} +func sizeZigzag64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize +} +func sizeZigzag64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toInt64Ptr() + if p == nil { + return 0 + } + v := *p + return SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize +} +func sizeZigzag64Slice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize + } + return n +} +func sizeZigzag64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63))) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeBoolValue(_ pointer, tagsize int) int { + return 1 + tagsize +} +func sizeBoolValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toBool() + if !v { + return 0 + } + return 1 + tagsize +} +func sizeBoolPtr(ptr pointer, tagsize int) int { + p := *ptr.toBoolPtr() + if p == nil { + return 0 + } + return 1 + tagsize +} +func sizeBoolSlice(ptr pointer, tagsize int) int { + s := *ptr.toBoolSlice() + return (1 + tagsize) * len(s) +} +func sizeBoolPackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toBoolSlice() + if len(s) == 0 { + return 0 + } + return len(s) + SizeVarint(uint64(len(s))) + tagsize +} +func sizeStringValue(ptr pointer, tagsize int) int { + v := *ptr.toString() + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeStringValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toString() + if v == "" { + return 0 + } + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeStringPtr(ptr pointer, tagsize int) int { + p := *ptr.toStringPtr() + if p == nil { + return 0 + } + v := *p + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeStringSlice(ptr pointer, tagsize int) int { + s := *ptr.toStringSlice() + n := 0 + for _, v := range s { + n += len(v) + SizeVarint(uint64(len(v))) + tagsize + } + return n +} +func sizeBytes(ptr pointer, tagsize int) int { + v := *ptr.toBytes() + if v == nil { + return 0 + } + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeBytes3(ptr pointer, tagsize int) int { + v := *ptr.toBytes() + if len(v) == 0 { + return 0 + } + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeBytesOneof(ptr pointer, tagsize int) int { + v := *ptr.toBytes() + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeBytesSlice(ptr pointer, tagsize int) int { + s := *ptr.toBytesSlice() + n := 0 + for _, v := range s { + n += len(v) + SizeVarint(uint64(len(v))) + tagsize + } + return n +} + +// appendFixed32 appends an encoded fixed32 to b. +func appendFixed32(b []byte, v uint32) []byte { + b = append(b, + byte(v), + byte(v>>8), + byte(v>>16), + byte(v>>24)) + return b +} + +// appendFixed64 appends an encoded fixed64 to b. +func appendFixed64(b []byte, v uint64) []byte { + b = append(b, + byte(v), + byte(v>>8), + byte(v>>16), + byte(v>>24), + byte(v>>32), + byte(v>>40), + byte(v>>48), + byte(v>>56)) + return b +} + +// appendVarint appends an encoded varint to b. +func appendVarint(b []byte, v uint64) []byte { + // TODO: make 1-byte (maybe 2-byte) case inline-able, once we + // have non-leaf inliner. + switch { + case v < 1<<7: + b = append(b, byte(v)) + case v < 1<<14: + b = append(b, + byte(v&0x7f|0x80), + byte(v>>7)) + case v < 1<<21: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte(v>>14)) + case v < 1<<28: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte(v>>21)) + case v < 1<<35: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte(v>>28)) + case v < 1<<42: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte(v>>35)) + case v < 1<<49: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte(v>>42)) + case v < 1<<56: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte((v>>42)&0x7f|0x80), + byte(v>>49)) + case v < 1<<63: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte((v>>42)&0x7f|0x80), + byte((v>>49)&0x7f|0x80), + byte(v>>56)) + default: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte((v>>42)&0x7f|0x80), + byte((v>>49)&0x7f|0x80), + byte((v>>56)&0x7f|0x80), + 1) + } + return b +} + +func appendFixed32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFixed32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFixed32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, *p) + return b, nil +} +func appendFixed32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + } + return b, nil +} +func appendFixed32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(4*len(s))) + for _, v := range s { + b = appendFixed32(b, v) + } + return b, nil +} +func appendFixedS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(v)) + return b, nil +} +func appendFixedS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(v)) + return b, nil +} +func appendFixedS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := ptr.getInt32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(*p)) + return b, nil +} +func appendFixedS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(v)) + } + return b, nil +} +func appendFixedS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(4*len(s))) + for _, v := range s { + b = appendFixed32(b, uint32(v)) + } + return b, nil +} +func appendFloat32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float32bits(*ptr.toFloat32()) + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFloat32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float32bits(*ptr.toFloat32()) + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFloat32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toFloat32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, math.Float32bits(*p)) + return b, nil +} +func appendFloat32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed32(b, math.Float32bits(v)) + } + return b, nil +} +func appendFloat32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(4*len(s))) + for _, v := range s { + b = appendFixed32(b, math.Float32bits(v)) + } + return b, nil +} +func appendFixed64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFixed64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFixed64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, *p) + return b, nil +} +func appendFixed64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + } + return b, nil +} +func appendFixed64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(8*len(s))) + for _, v := range s { + b = appendFixed64(b, v) + } + return b, nil +} +func appendFixedS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(v)) + return b, nil +} +func appendFixedS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(v)) + return b, nil +} +func appendFixedS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toInt64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(*p)) + return b, nil +} +func appendFixedS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(v)) + } + return b, nil +} +func appendFixedS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(8*len(s))) + for _, v := range s { + b = appendFixed64(b, uint64(v)) + } + return b, nil +} +func appendFloat64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float64bits(*ptr.toFloat64()) + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFloat64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float64bits(*ptr.toFloat64()) + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFloat64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toFloat64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, math.Float64bits(*p)) + return b, nil +} +func appendFloat64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed64(b, math.Float64bits(v)) + } + return b, nil +} +func appendFloat64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(8*len(s))) + for _, v := range s { + b = appendFixed64(b, math.Float64bits(v)) + } + return b, nil +} +func appendVarint32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarint32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarint32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(*p)) + return b, nil +} +func appendVarint32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarint32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarintS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := ptr.getInt32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(*p)) + return b, nil +} +func appendVarintS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarintS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarint64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + b = appendVarint(b, wiretag) + b = appendVarint(b, v) + return b, nil +} +func appendVarint64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, v) + return b, nil +} +func appendVarint64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, *p) + return b, nil +} +func appendVarint64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, v) + } + return b, nil +} +func appendVarint64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(v) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, v) + } + return b, nil +} +func appendVarintS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toInt64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(*p)) + return b, nil +} +func appendVarintS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarintS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendZigzag32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + return b, nil +} +func appendZigzag32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + return b, nil +} +func appendZigzag32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := ptr.getInt32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + v := *p + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + return b, nil +} +func appendZigzag32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + } + return b, nil +} +func appendZigzag32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + } + return b, nil +} +func appendZigzag64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + return b, nil +} +func appendZigzag64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + return b, nil +} +func appendZigzag64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toInt64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + v := *p + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + return b, nil +} +func appendZigzag64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + } + return b, nil +} +func appendZigzag64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63))) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + } + return b, nil +} +func appendBoolValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBool() + b = appendVarint(b, wiretag) + if v { + b = append(b, 1) + } else { + b = append(b, 0) + } + return b, nil +} +func appendBoolValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBool() + if !v { + return b, nil + } + b = appendVarint(b, wiretag) + b = append(b, 1) + return b, nil +} + +func appendBoolPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toBoolPtr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + if *p { + b = append(b, 1) + } else { + b = append(b, 0) + } + return b, nil +} +func appendBoolSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toBoolSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + if v { + b = append(b, 1) + } else { + b = append(b, 0) + } + } + return b, nil +} +func appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toBoolSlice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(len(s))) + for _, v := range s { + if v { + b = append(b, 1) + } else { + b = append(b, 0) + } + } + return b, nil +} +func appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toString() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toString() + if v == "" { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toStringPtr() + if p == nil { + return b, nil + } + v := *p + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toStringSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + return b, nil +} +func appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + v := *ptr.toString() + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + v := *ptr.toString() + if v == "" { + return b, nil + } + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + p := *ptr.toStringPtr() + if p == nil { + return b, nil + } + v := *p + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + s := *ptr.toStringSlice() + for _, v := range s { + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBytes() + if v == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendBytes3(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBytes() + if len(v) == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendBytesOneof(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBytes() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendBytesSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toBytesSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + return b, nil +} + +// makeGroupMarshaler returns the sizer and marshaler for a group. +// u is the marshal info of the underlying message. +func makeGroupMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + p := ptr.getPointer() + if p.isNil() { + return 0 + } + return u.size(p) + 2*tagsize + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + p := ptr.getPointer() + if p.isNil() { + return b, nil + } + var err error + b = appendVarint(b, wiretag) // start group + b, err = u.marshal(b, p, deterministic) + b = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group + return b, err + } +} + +// makeGroupSliceMarshaler returns the sizer and marshaler for a group slice. +// u is the marshal info of the underlying message. +func makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getPointerSlice() + n := 0 + for _, v := range s { + if v.isNil() { + continue + } + n += u.size(v) + 2*tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getPointerSlice() + var err error + var nerr nonFatal + for _, v := range s { + if v.isNil() { + return b, errRepeatedHasNil + } + b = appendVarint(b, wiretag) // start group + b, err = u.marshal(b, v, deterministic) + b = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group + if !nerr.Merge(err) { + if err == ErrNil { + err = errRepeatedHasNil + } + return b, err + } + } + return b, nerr.E + } +} + +// makeMessageMarshaler returns the sizer and marshaler for a message field. +// u is the marshal info of the message. +func makeMessageMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + p := ptr.getPointer() + if p.isNil() { + return 0 + } + siz := u.size(p) + return siz + SizeVarint(uint64(siz)) + tagsize + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + p := ptr.getPointer() + if p.isNil() { + return b, nil + } + b = appendVarint(b, wiretag) + siz := u.cachedsize(p) + b = appendVarint(b, uint64(siz)) + return u.marshal(b, p, deterministic) + } +} + +// makeMessageSliceMarshaler returns the sizer and marshaler for a message slice. +// u is the marshal info of the message. +func makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getPointerSlice() + n := 0 + for _, v := range s { + if v.isNil() { + continue + } + siz := u.size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getPointerSlice() + var err error + var nerr nonFatal + for _, v := range s { + if v.isNil() { + return b, errRepeatedHasNil + } + b = appendVarint(b, wiretag) + siz := u.cachedsize(v) + b = appendVarint(b, uint64(siz)) + b, err = u.marshal(b, v, deterministic) + + if !nerr.Merge(err) { + if err == ErrNil { + err = errRepeatedHasNil + } + return b, err + } + } + return b, nerr.E + } +} + +// makeMapMarshaler returns the sizer and marshaler for a map field. +// f is the pointer to the reflect data structure of the field. +func makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) { + // figure out key and value type + t := f.Type + keyType := t.Key() + valType := t.Elem() + tags := strings.Split(f.Tag.Get("protobuf"), ",") + keyTags := strings.Split(f.Tag.Get("protobuf_key"), ",") + valTags := strings.Split(f.Tag.Get("protobuf_val"), ",") + stdOptions := false + for _, t := range tags { + if strings.HasPrefix(t, "customtype=") { + valTags = append(valTags, t) + } + if t == "stdtime" { + valTags = append(valTags, t) + stdOptions = true + } + if t == "stdduration" { + valTags = append(valTags, t) + stdOptions = true + } + if t == "wktptr" { + valTags = append(valTags, t) + } + } + keySizer, keyMarshaler := typeMarshaler(keyType, keyTags, false, false) // don't omit zero value in map + valSizer, valMarshaler := typeMarshaler(valType, valTags, false, false) // don't omit zero value in map + keyWireTag := 1<<3 | wiretype(keyTags[0]) + valWireTag := 2<<3 | wiretype(valTags[0]) + + // We create an interface to get the addresses of the map key and value. + // If value is pointer-typed, the interface is a direct interface, the + // idata itself is the value. Otherwise, the idata is the pointer to the + // value. + // Key cannot be pointer-typed. + valIsPtr := valType.Kind() == reflect.Ptr + + // If value is a message with nested maps, calling + // valSizer in marshal may be quadratic. We should use + // cached version in marshal (but not in size). + // If value is not message type, we don't have size cache, + // but it cannot be nested either. Just use valSizer. + valCachedSizer := valSizer + if valIsPtr && !stdOptions && valType.Elem().Kind() == reflect.Struct { + u := getMarshalInfo(valType.Elem()) + valCachedSizer = func(ptr pointer, tagsize int) int { + // Same as message sizer, but use cache. + p := ptr.getPointer() + if p.isNil() { + return 0 + } + siz := u.cachedsize(p) + return siz + SizeVarint(uint64(siz)) + tagsize + } + } + return func(ptr pointer, tagsize int) int { + m := ptr.asPointerTo(t).Elem() // the map + n := 0 + for _, k := range m.MapKeys() { + ki := k.Interface() + vi := m.MapIndex(k).Interface() + kaddr := toAddrPointer(&ki, false) // pointer to key + vaddr := toAddrPointer(&vi, valIsPtr) // pointer to value + siz := keySizer(kaddr, 1) + valSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, tag uint64, deterministic bool) ([]byte, error) { + m := ptr.asPointerTo(t).Elem() // the map + var err error + keys := m.MapKeys() + if len(keys) > 1 && deterministic { + sort.Sort(mapKeys(keys)) + } + + var nerr nonFatal + for _, k := range keys { + ki := k.Interface() + vi := m.MapIndex(k).Interface() + kaddr := toAddrPointer(&ki, false) // pointer to key + vaddr := toAddrPointer(&vi, valIsPtr) // pointer to value + b = appendVarint(b, tag) + siz := keySizer(kaddr, 1) + valCachedSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1) + b = appendVarint(b, uint64(siz)) + b, err = keyMarshaler(b, kaddr, keyWireTag, deterministic) + if !nerr.Merge(err) { + return b, err + } + b, err = valMarshaler(b, vaddr, valWireTag, deterministic) + if err != ErrNil && !nerr.Merge(err) { // allow nil value in map + return b, err + } + } + return b, nerr.E + } +} + +// makeOneOfMarshaler returns the sizer and marshaler for a oneof field. +// fi is the marshal info of the field. +// f is the pointer to the reflect data structure of the field. +func makeOneOfMarshaler(fi *marshalFieldInfo, f *reflect.StructField) (sizer, marshaler) { + // Oneof field is an interface. We need to get the actual data type on the fly. + t := f.Type + return func(ptr pointer, _ int) int { + p := ptr.getInterfacePointer() + if p.isNil() { + return 0 + } + v := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct + telem := v.Type() + e := fi.oneofElems[telem] + return e.sizer(p, e.tagsize) + }, + func(b []byte, ptr pointer, _ uint64, deterministic bool) ([]byte, error) { + p := ptr.getInterfacePointer() + if p.isNil() { + return b, nil + } + v := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct + telem := v.Type() + if telem.Field(0).Type.Kind() == reflect.Ptr && p.getPointer().isNil() { + return b, errOneofHasNil + } + e := fi.oneofElems[telem] + return e.marshaler(b, p, e.wiretag, deterministic) + } +} + +// sizeExtensions computes the size of encoded data for a XXX_InternalExtensions field. +func (u *marshalInfo) sizeExtensions(ext *XXX_InternalExtensions) int { + m, mu := ext.extensionsRead() + if m == nil { + return 0 + } + mu.Lock() + + n := 0 + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + n += len(e.enc) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + n += ei.sizer(p, ei.tagsize) + } + mu.Unlock() + return n +} + +// appendExtensions marshals a XXX_InternalExtensions field to the end of byte slice b. +func (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) { + m, mu := ext.extensionsRead() + if m == nil { + return b, nil + } + mu.Lock() + defer mu.Unlock() + + var err error + var nerr nonFatal + + // Fast-path for common cases: zero or one extensions. + // Don't bother sorting the keys. + if len(m) <= 1 { + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + b = append(b, e.enc...) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, ei.wiretag, deterministic) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E + } + + // Sort the keys to provide a deterministic encoding. + // Not sure this is required, but the old code does it. + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, k := range keys { + e := m[int32(k)] + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + b = append(b, e.enc...) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, ei.wiretag, deterministic) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E +} + +// message set format is: +// message MessageSet { +// repeated group Item = 1 { +// required int32 type_id = 2; +// required string message = 3; +// }; +// } + +// sizeMessageSet computes the size of encoded data for a XXX_InternalExtensions field +// in message set format (above). +func (u *marshalInfo) sizeMessageSet(ext *XXX_InternalExtensions) int { + m, mu := ext.extensionsRead() + if m == nil { + return 0 + } + mu.Lock() + + n := 0 + for id, e := range m { + n += 2 // start group, end group. tag = 1 (size=1) + n += SizeVarint(uint64(id)) + 1 // type_id, tag = 2 (size=1) + + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + msgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint + siz := len(msgWithLen) + n += siz + 1 // message, tag = 3 (size=1) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + n += ei.sizer(p, 1) // message, tag = 3 (size=1) + } + mu.Unlock() + return n +} + +// appendMessageSet marshals a XXX_InternalExtensions field in message set format (above) +// to the end of byte slice b. +func (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) { + m, mu := ext.extensionsRead() + if m == nil { + return b, nil + } + mu.Lock() + defer mu.Unlock() + + var err error + var nerr nonFatal + + // Fast-path for common cases: zero or one extensions. + // Don't bother sorting the keys. + if len(m) <= 1 { + for id, e := range m { + b = append(b, 1<<3|WireStartGroup) + b = append(b, 2<<3|WireVarint) + b = appendVarint(b, uint64(id)) + + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + msgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint + b = append(b, 3<<3|WireBytes) + b = append(b, msgWithLen...) + b = append(b, 1<<3|WireEndGroup) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic) + if !nerr.Merge(err) { + return b, err + } + b = append(b, 1<<3|WireEndGroup) + } + return b, nerr.E + } + + // Sort the keys to provide a deterministic encoding. + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, id := range keys { + e := m[int32(id)] + b = append(b, 1<<3|WireStartGroup) + b = append(b, 2<<3|WireVarint) + b = appendVarint(b, uint64(id)) + + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + msgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint + b = append(b, 3<<3|WireBytes) + b = append(b, msgWithLen...) + b = append(b, 1<<3|WireEndGroup) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic) + b = append(b, 1<<3|WireEndGroup) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E +} + +// sizeV1Extensions computes the size of encoded data for a V1-API extension field. +func (u *marshalInfo) sizeV1Extensions(m map[int32]Extension) int { + if m == nil { + return 0 + } + + n := 0 + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + n += len(e.enc) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + n += ei.sizer(p, ei.tagsize) + } + return n +} + +// appendV1Extensions marshals a V1-API extension field to the end of byte slice b. +func (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, deterministic bool) ([]byte, error) { + if m == nil { + return b, nil + } + + // Sort the keys to provide a deterministic encoding. + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + var err error + var nerr nonFatal + for _, k := range keys { + e := m[int32(k)] + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + b = append(b, e.enc...) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, ei.wiretag, deterministic) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E +} + +// newMarshaler is the interface representing objects that can marshal themselves. +// +// This exists to support protoc-gen-go generated messages. +// The proto package will stop type-asserting to this interface in the future. +// +// DO NOT DEPEND ON THIS. +type newMarshaler interface { + XXX_Size() int + XXX_Marshal(b []byte, deterministic bool) ([]byte, error) +} + +// Size returns the encoded size of a protocol buffer message. +// This is the main entry point. +func Size(pb Message) int { + if m, ok := pb.(newMarshaler); ok { + return m.XXX_Size() + } + if m, ok := pb.(Marshaler); ok { + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + b, _ := m.Marshal() + return len(b) + } + // in case somehow we didn't generate the wrapper + if pb == nil { + return 0 + } + var info InternalMessageInfo + return info.Size(pb) +} + +// Marshal takes a protocol buffer message +// and encodes it into the wire format, returning the data. +// This is the main entry point. +func Marshal(pb Message) ([]byte, error) { + if m, ok := pb.(newMarshaler); ok { + siz := m.XXX_Size() + b := make([]byte, 0, siz) + return m.XXX_Marshal(b, false) + } + if m, ok := pb.(Marshaler); ok { + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + return m.Marshal() + } + // in case somehow we didn't generate the wrapper + if pb == nil { + return nil, ErrNil + } + var info InternalMessageInfo + siz := info.Size(pb) + b := make([]byte, 0, siz) + return info.Marshal(b, pb, false) +} + +// Marshal takes a protocol buffer message +// and encodes it into the wire format, writing the result to the +// Buffer. +// This is an alternative entry point. It is not necessary to use +// a Buffer for most applications. +func (p *Buffer) Marshal(pb Message) error { + var err error + if p.deterministic { + if _, ok := pb.(Marshaler); ok { + return fmt.Errorf("proto: deterministic not supported by the Marshal method of %T", pb) + } + } + if m, ok := pb.(newMarshaler); ok { + siz := m.XXX_Size() + p.grow(siz) // make sure buf has enough capacity + p.buf, err = m.XXX_Marshal(p.buf, p.deterministic) + return err + } + if m, ok := pb.(Marshaler); ok { + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + var b []byte + b, err = m.Marshal() + p.buf = append(p.buf, b...) + return err + } + // in case somehow we didn't generate the wrapper + if pb == nil { + return ErrNil + } + var info InternalMessageInfo + siz := info.Size(pb) + p.grow(siz) // make sure buf has enough capacity + p.buf, err = info.Marshal(p.buf, pb, p.deterministic) + return err +} + +// grow grows the buffer's capacity, if necessary, to guarantee space for +// another n bytes. After grow(n), at least n bytes can be written to the +// buffer without another allocation. +func (p *Buffer) grow(n int) { + need := len(p.buf) + n + if need <= cap(p.buf) { + return + } + newCap := len(p.buf) * 2 + if newCap < need { + newCap = need + } + p.buf = append(make([]byte, 0, newCap), p.buf...) +} diff --git a/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go b/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go new file mode 100644 index 00000000..997f57c1 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go @@ -0,0 +1,388 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "reflect" + "time" +) + +// makeMessageRefMarshaler differs a bit from makeMessageMarshaler +// It marshal a message T instead of a *T +func makeMessageRefMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + siz := u.size(ptr) + return siz + SizeVarint(uint64(siz)) + tagsize + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + b = appendVarint(b, wiretag) + siz := u.cachedsize(ptr) + b = appendVarint(b, uint64(siz)) + return u.marshal(b, ptr, deterministic) + } +} + +// makeMessageRefSliceMarshaler differs quite a lot from makeMessageSliceMarshaler +// It marshals a slice of messages []T instead of []*T +func makeMessageRefSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + e := elem.Interface() + v := toAddrPointer(&e, false) + siz := u.size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + var err, errreq error + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + e := elem.Interface() + v := toAddrPointer(&e, false) + b = appendVarint(b, wiretag) + siz := u.size(v) + b = appendVarint(b, uint64(siz)) + b, err = u.marshal(b, v, deterministic) + + if err != nil { + if _, ok := err.(*RequiredNotSetError); ok { + // Required field in submessage is not set. + // We record the error but keep going, to give a complete marshaling. + if errreq == nil { + errreq = err + } + continue + } + if err == ErrNil { + err = errRepeatedHasNil + } + return b, err + } + } + + return b, errreq + } +} + +func makeCustomPtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + m := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom) + siz := m.Size() + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + m := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom) + siz := m.Size() + buf, err := m.Marshal() + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + return b, nil + } +} + +func makeCustomMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + m := ptr.asPointerTo(u.typ).Interface().(custom) + siz := m.Size() + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + m := ptr.asPointerTo(u.typ).Interface().(custom) + siz := m.Size() + buf, err := m.Marshal() + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + return b, nil + } +} + +func makeTimeMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return 0 + } + siz := Size(ts) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return nil, err + } + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeTimePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return 0 + } + siz := Size(ts) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return nil, err + } + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeTimeSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(time.Time) + ts, err := timestampProto(t) + if err != nil { + return 0 + } + siz := Size(ts) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(time.Time) + ts, err := timestampProto(t) + if err != nil { + return nil, err + } + siz := Size(ts) + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeTimePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return 0 + } + siz := Size(ts) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return nil, err + } + siz := Size(ts) + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeDurationMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + d := ptr.asPointerTo(u.typ).Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + d := ptr.asPointerTo(u.typ).Interface().(*time.Duration) + dur := durationProto(*d) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeDurationPtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + d := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + d := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration) + dur := durationProto(*d) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeDurationSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(time.Duration) + dur := durationProto(d) + siz := Size(dur) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(time.Duration) + dur := durationProto(d) + siz := Size(dur) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeDurationPtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/table_merge.go b/vendor/github.com/gogo/protobuf/proto/table_merge.go new file mode 100644 index 00000000..f520106e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/table_merge.go @@ -0,0 +1,657 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "fmt" + "reflect" + "strings" + "sync" + "sync/atomic" +) + +// Merge merges the src message into dst. +// This assumes that dst and src of the same type and are non-nil. +func (a *InternalMessageInfo) Merge(dst, src Message) { + mi := atomicLoadMergeInfo(&a.merge) + if mi == nil { + mi = getMergeInfo(reflect.TypeOf(dst).Elem()) + atomicStoreMergeInfo(&a.merge, mi) + } + mi.merge(toPointer(&dst), toPointer(&src)) +} + +type mergeInfo struct { + typ reflect.Type + + initialized int32 // 0: only typ is valid, 1: everything is valid + lock sync.Mutex + + fields []mergeFieldInfo + unrecognized field // Offset of XXX_unrecognized +} + +type mergeFieldInfo struct { + field field // Offset of field, guaranteed to be valid + + // isPointer reports whether the value in the field is a pointer. + // This is true for the following situations: + // * Pointer to struct + // * Pointer to basic type (proto2 only) + // * Slice (first value in slice header is a pointer) + // * String (first value in string header is a pointer) + isPointer bool + + // basicWidth reports the width of the field assuming that it is directly + // embedded in the struct (as is the case for basic types in proto3). + // The possible values are: + // 0: invalid + // 1: bool + // 4: int32, uint32, float32 + // 8: int64, uint64, float64 + basicWidth int + + // Where dst and src are pointers to the types being merged. + merge func(dst, src pointer) +} + +var ( + mergeInfoMap = map[reflect.Type]*mergeInfo{} + mergeInfoLock sync.Mutex +) + +func getMergeInfo(t reflect.Type) *mergeInfo { + mergeInfoLock.Lock() + defer mergeInfoLock.Unlock() + mi := mergeInfoMap[t] + if mi == nil { + mi = &mergeInfo{typ: t} + mergeInfoMap[t] = mi + } + return mi +} + +// merge merges src into dst assuming they are both of type *mi.typ. +func (mi *mergeInfo) merge(dst, src pointer) { + if dst.isNil() { + panic("proto: nil destination") + } + if src.isNil() { + return // Nothing to do. + } + + if atomic.LoadInt32(&mi.initialized) == 0 { + mi.computeMergeInfo() + } + + for _, fi := range mi.fields { + sfp := src.offset(fi.field) + + // As an optimization, we can avoid the merge function call cost + // if we know for sure that the source will have no effect + // by checking if it is the zero value. + if unsafeAllowed { + if fi.isPointer && sfp.getPointer().isNil() { // Could be slice or string + continue + } + if fi.basicWidth > 0 { + switch { + case fi.basicWidth == 1 && !*sfp.toBool(): + continue + case fi.basicWidth == 4 && *sfp.toUint32() == 0: + continue + case fi.basicWidth == 8 && *sfp.toUint64() == 0: + continue + } + } + } + + dfp := dst.offset(fi.field) + fi.merge(dfp, sfp) + } + + // TODO: Make this faster? + out := dst.asPointerTo(mi.typ).Elem() + in := src.asPointerTo(mi.typ).Elem() + if emIn, err := extendable(in.Addr().Interface()); err == nil { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } + } + + if mi.unrecognized.IsValid() { + if b := *src.offset(mi.unrecognized).toBytes(); len(b) > 0 { + *dst.offset(mi.unrecognized).toBytes() = append([]byte(nil), b...) + } + } +} + +func (mi *mergeInfo) computeMergeInfo() { + mi.lock.Lock() + defer mi.lock.Unlock() + if mi.initialized != 0 { + return + } + t := mi.typ + n := t.NumField() + + props := GetProperties(t) + for i := 0; i < n; i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + + mfi := mergeFieldInfo{field: toField(&f)} + tf := f.Type + + // As an optimization, we can avoid the merge function call cost + // if we know for sure that the source will have no effect + // by checking if it is the zero value. + if unsafeAllowed { + switch tf.Kind() { + case reflect.Ptr, reflect.Slice, reflect.String: + // As a special case, we assume slices and strings are pointers + // since we know that the first field in the SliceSlice or + // StringHeader is a data pointer. + mfi.isPointer = true + case reflect.Bool: + mfi.basicWidth = 1 + case reflect.Int32, reflect.Uint32, reflect.Float32: + mfi.basicWidth = 4 + case reflect.Int64, reflect.Uint64, reflect.Float64: + mfi.basicWidth = 8 + } + } + + // Unwrap tf to get at its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic("both pointer and slice for basic type in " + tf.Name()) + } + + switch tf.Kind() { + case reflect.Int32: + switch { + case isSlice: // E.g., []int32 + mfi.merge = func(dst, src pointer) { + // NOTE: toInt32Slice is not defined (see pointer_reflect.go). + /* + sfsp := src.toInt32Slice() + if *sfsp != nil { + dfsp := dst.toInt32Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []int64{} + } + } + */ + sfs := src.getInt32Slice() + if sfs != nil { + dfs := dst.getInt32Slice() + dfs = append(dfs, sfs...) + if dfs == nil { + dfs = []int32{} + } + dst.setInt32Slice(dfs) + } + } + case isPointer: // E.g., *int32 + mfi.merge = func(dst, src pointer) { + // NOTE: toInt32Ptr is not defined (see pointer_reflect.go). + /* + sfpp := src.toInt32Ptr() + if *sfpp != nil { + dfpp := dst.toInt32Ptr() + if *dfpp == nil { + *dfpp = Int32(**sfpp) + } else { + **dfpp = **sfpp + } + } + */ + sfp := src.getInt32Ptr() + if sfp != nil { + dfp := dst.getInt32Ptr() + if dfp == nil { + dst.setInt32Ptr(*sfp) + } else { + *dfp = *sfp + } + } + } + default: // E.g., int32 + mfi.merge = func(dst, src pointer) { + if v := *src.toInt32(); v != 0 { + *dst.toInt32() = v + } + } + } + case reflect.Int64: + switch { + case isSlice: // E.g., []int64 + mfi.merge = func(dst, src pointer) { + sfsp := src.toInt64Slice() + if *sfsp != nil { + dfsp := dst.toInt64Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []int64{} + } + } + } + case isPointer: // E.g., *int64 + mfi.merge = func(dst, src pointer) { + sfpp := src.toInt64Ptr() + if *sfpp != nil { + dfpp := dst.toInt64Ptr() + if *dfpp == nil { + *dfpp = Int64(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., int64 + mfi.merge = func(dst, src pointer) { + if v := *src.toInt64(); v != 0 { + *dst.toInt64() = v + } + } + } + case reflect.Uint32: + switch { + case isSlice: // E.g., []uint32 + mfi.merge = func(dst, src pointer) { + sfsp := src.toUint32Slice() + if *sfsp != nil { + dfsp := dst.toUint32Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []uint32{} + } + } + } + case isPointer: // E.g., *uint32 + mfi.merge = func(dst, src pointer) { + sfpp := src.toUint32Ptr() + if *sfpp != nil { + dfpp := dst.toUint32Ptr() + if *dfpp == nil { + *dfpp = Uint32(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., uint32 + mfi.merge = func(dst, src pointer) { + if v := *src.toUint32(); v != 0 { + *dst.toUint32() = v + } + } + } + case reflect.Uint64: + switch { + case isSlice: // E.g., []uint64 + mfi.merge = func(dst, src pointer) { + sfsp := src.toUint64Slice() + if *sfsp != nil { + dfsp := dst.toUint64Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []uint64{} + } + } + } + case isPointer: // E.g., *uint64 + mfi.merge = func(dst, src pointer) { + sfpp := src.toUint64Ptr() + if *sfpp != nil { + dfpp := dst.toUint64Ptr() + if *dfpp == nil { + *dfpp = Uint64(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., uint64 + mfi.merge = func(dst, src pointer) { + if v := *src.toUint64(); v != 0 { + *dst.toUint64() = v + } + } + } + case reflect.Float32: + switch { + case isSlice: // E.g., []float32 + mfi.merge = func(dst, src pointer) { + sfsp := src.toFloat32Slice() + if *sfsp != nil { + dfsp := dst.toFloat32Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []float32{} + } + } + } + case isPointer: // E.g., *float32 + mfi.merge = func(dst, src pointer) { + sfpp := src.toFloat32Ptr() + if *sfpp != nil { + dfpp := dst.toFloat32Ptr() + if *dfpp == nil { + *dfpp = Float32(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., float32 + mfi.merge = func(dst, src pointer) { + if v := *src.toFloat32(); v != 0 { + *dst.toFloat32() = v + } + } + } + case reflect.Float64: + switch { + case isSlice: // E.g., []float64 + mfi.merge = func(dst, src pointer) { + sfsp := src.toFloat64Slice() + if *sfsp != nil { + dfsp := dst.toFloat64Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []float64{} + } + } + } + case isPointer: // E.g., *float64 + mfi.merge = func(dst, src pointer) { + sfpp := src.toFloat64Ptr() + if *sfpp != nil { + dfpp := dst.toFloat64Ptr() + if *dfpp == nil { + *dfpp = Float64(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., float64 + mfi.merge = func(dst, src pointer) { + if v := *src.toFloat64(); v != 0 { + *dst.toFloat64() = v + } + } + } + case reflect.Bool: + switch { + case isSlice: // E.g., []bool + mfi.merge = func(dst, src pointer) { + sfsp := src.toBoolSlice() + if *sfsp != nil { + dfsp := dst.toBoolSlice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []bool{} + } + } + } + case isPointer: // E.g., *bool + mfi.merge = func(dst, src pointer) { + sfpp := src.toBoolPtr() + if *sfpp != nil { + dfpp := dst.toBoolPtr() + if *dfpp == nil { + *dfpp = Bool(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., bool + mfi.merge = func(dst, src pointer) { + if v := *src.toBool(); v { + *dst.toBool() = v + } + } + } + case reflect.String: + switch { + case isSlice: // E.g., []string + mfi.merge = func(dst, src pointer) { + sfsp := src.toStringSlice() + if *sfsp != nil { + dfsp := dst.toStringSlice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []string{} + } + } + } + case isPointer: // E.g., *string + mfi.merge = func(dst, src pointer) { + sfpp := src.toStringPtr() + if *sfpp != nil { + dfpp := dst.toStringPtr() + if *dfpp == nil { + *dfpp = String(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., string + mfi.merge = func(dst, src pointer) { + if v := *src.toString(); v != "" { + *dst.toString() = v + } + } + } + case reflect.Slice: + isProto3 := props.Prop[i].proto3 + switch { + case isPointer: + panic("bad pointer in byte slice case in " + tf.Name()) + case tf.Elem().Kind() != reflect.Uint8: + panic("bad element kind in byte slice case in " + tf.Name()) + case isSlice: // E.g., [][]byte + mfi.merge = func(dst, src pointer) { + sbsp := src.toBytesSlice() + if *sbsp != nil { + dbsp := dst.toBytesSlice() + for _, sb := range *sbsp { + if sb == nil { + *dbsp = append(*dbsp, nil) + } else { + *dbsp = append(*dbsp, append([]byte{}, sb...)) + } + } + if *dbsp == nil { + *dbsp = [][]byte{} + } + } + } + default: // E.g., []byte + mfi.merge = func(dst, src pointer) { + sbp := src.toBytes() + if *sbp != nil { + dbp := dst.toBytes() + if !isProto3 || len(*sbp) > 0 { + *dbp = append([]byte{}, *sbp...) + } + } + } + } + case reflect.Struct: + switch { + case !isPointer: + mergeInfo := getMergeInfo(tf) + mfi.merge = func(dst, src pointer) { + mergeInfo.merge(dst, src) + } + case isSlice: // E.g., []*pb.T + mergeInfo := getMergeInfo(tf) + mfi.merge = func(dst, src pointer) { + sps := src.getPointerSlice() + if sps != nil { + dps := dst.getPointerSlice() + for _, sp := range sps { + var dp pointer + if !sp.isNil() { + dp = valToPointer(reflect.New(tf)) + mergeInfo.merge(dp, sp) + } + dps = append(dps, dp) + } + if dps == nil { + dps = []pointer{} + } + dst.setPointerSlice(dps) + } + } + default: // E.g., *pb.T + mergeInfo := getMergeInfo(tf) + mfi.merge = func(dst, src pointer) { + sp := src.getPointer() + if !sp.isNil() { + dp := dst.getPointer() + if dp.isNil() { + dp = valToPointer(reflect.New(tf)) + dst.setPointer(dp) + } + mergeInfo.merge(dp, sp) + } + } + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic("bad pointer or slice in map case in " + tf.Name()) + default: // E.g., map[K]V + mfi.merge = func(dst, src pointer) { + sm := src.asPointerTo(tf).Elem() + if sm.Len() == 0 { + return + } + dm := dst.asPointerTo(tf).Elem() + if dm.IsNil() { + dm.Set(reflect.MakeMap(tf)) + } + + switch tf.Elem().Kind() { + case reflect.Ptr: // Proto struct (e.g., *T) + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + val = reflect.ValueOf(Clone(val.Interface().(Message))) + dm.SetMapIndex(key, val) + } + case reflect.Slice: // E.g. Bytes type (e.g., []byte) + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) + dm.SetMapIndex(key, val) + } + default: // Basic type (e.g., string) + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + dm.SetMapIndex(key, val) + } + } + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic("bad pointer or slice in interface case in " + tf.Name()) + default: // E.g., interface{} + // TODO: Make this faster? + mfi.merge = func(dst, src pointer) { + su := src.asPointerTo(tf).Elem() + if !su.IsNil() { + du := dst.asPointerTo(tf).Elem() + typ := su.Elem().Type() + if du.IsNil() || du.Elem().Type() != typ { + du.Set(reflect.New(typ.Elem())) // Initialize interface if empty + } + sv := su.Elem().Elem().Field(0) + if sv.Kind() == reflect.Ptr && sv.IsNil() { + return + } + dv := du.Elem().Elem().Field(0) + if dv.Kind() == reflect.Ptr && dv.IsNil() { + dv.Set(reflect.New(sv.Type().Elem())) // Initialize proto message if empty + } + switch sv.Type().Kind() { + case reflect.Ptr: // Proto struct (e.g., *T) + Merge(dv.Interface().(Message), sv.Interface().(Message)) + case reflect.Slice: // E.g. Bytes type (e.g., []byte) + dv.Set(reflect.ValueOf(append([]byte{}, sv.Bytes()...))) + default: // Basic type (e.g., string) + dv.Set(sv) + } + } + } + } + default: + panic(fmt.Sprintf("merger not found for type:%s", tf)) + } + mi.fields = append(mi.fields, mfi) + } + + mi.unrecognized = invalidField + if f, ok := t.FieldByName("XXX_unrecognized"); ok { + if f.Type != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + mi.unrecognized = toField(&f) + } + + atomic.StoreInt32(&mi.initialized, 1) +} diff --git a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go new file mode 100644 index 00000000..bb2622f2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go @@ -0,0 +1,2245 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "errors" + "fmt" + "io" + "math" + "reflect" + "strconv" + "strings" + "sync" + "sync/atomic" + "unicode/utf8" +) + +// Unmarshal is the entry point from the generated .pb.go files. +// This function is not intended to be used by non-generated code. +// This function is not subject to any compatibility guarantee. +// msg contains a pointer to a protocol buffer struct. +// b is the data to be unmarshaled into the protocol buffer. +// a is a pointer to a place to store cached unmarshal information. +func (a *InternalMessageInfo) Unmarshal(msg Message, b []byte) error { + // Load the unmarshal information for this message type. + // The atomic load ensures memory consistency. + u := atomicLoadUnmarshalInfo(&a.unmarshal) + if u == nil { + // Slow path: find unmarshal info for msg, update a with it. + u = getUnmarshalInfo(reflect.TypeOf(msg).Elem()) + atomicStoreUnmarshalInfo(&a.unmarshal, u) + } + // Then do the unmarshaling. + err := u.unmarshal(toPointer(&msg), b) + return err +} + +type unmarshalInfo struct { + typ reflect.Type // type of the protobuf struct + + // 0 = only typ field is initialized + // 1 = completely initialized + initialized int32 + lock sync.Mutex // prevents double initialization + dense []unmarshalFieldInfo // fields indexed by tag # + sparse map[uint64]unmarshalFieldInfo // fields indexed by tag # + reqFields []string // names of required fields + reqMask uint64 // 1< 0 { + // Read tag and wire type. + // Special case 1 and 2 byte varints. + var x uint64 + if b[0] < 128 { + x = uint64(b[0]) + b = b[1:] + } else if len(b) >= 2 && b[1] < 128 { + x = uint64(b[0]&0x7f) + uint64(b[1])<<7 + b = b[2:] + } else { + var n int + x, n = decodeVarint(b) + if n == 0 { + return io.ErrUnexpectedEOF + } + b = b[n:] + } + tag := x >> 3 + wire := int(x) & 7 + + // Dispatch on the tag to one of the unmarshal* functions below. + var f unmarshalFieldInfo + if tag < uint64(len(u.dense)) { + f = u.dense[tag] + } else { + f = u.sparse[tag] + } + if fn := f.unmarshal; fn != nil { + var err error + b, err = fn(b, m.offset(f.field), wire) + if err == nil { + reqMask |= f.reqMask + continue + } + if r, ok := err.(*RequiredNotSetError); ok { + // Remember this error, but keep parsing. We need to produce + // a full parse even if a required field is missing. + if errLater == nil { + errLater = r + } + reqMask |= f.reqMask + continue + } + if err != errInternalBadWireType { + if err == errInvalidUTF8 { + if errLater == nil { + fullName := revProtoTypes[reflect.PtrTo(u.typ)] + "." + f.name + errLater = &invalidUTF8Error{fullName} + } + continue + } + return err + } + // Fragments with bad wire type are treated as unknown fields. + } + + // Unknown tag. + if !u.unrecognized.IsValid() { + // Don't keep unrecognized data; just skip it. + var err error + b, err = skipField(b, wire) + if err != nil { + return err + } + continue + } + // Keep unrecognized data around. + // maybe in extensions, maybe in the unrecognized field. + z := m.offset(u.unrecognized).toBytes() + var emap map[int32]Extension + var e Extension + for _, r := range u.extensionRanges { + if uint64(r.Start) <= tag && tag <= uint64(r.End) { + if u.extensions.IsValid() { + mp := m.offset(u.extensions).toExtensions() + emap = mp.extensionsWrite() + e = emap[int32(tag)] + z = &e.enc + break + } + if u.oldExtensions.IsValid() { + p := m.offset(u.oldExtensions).toOldExtensions() + emap = *p + if emap == nil { + emap = map[int32]Extension{} + *p = emap + } + e = emap[int32(tag)] + z = &e.enc + break + } + if u.bytesExtensions.IsValid() { + z = m.offset(u.bytesExtensions).toBytes() + break + } + panic("no extensions field available") + } + } + // Use wire type to skip data. + var err error + b0 := b + b, err = skipField(b, wire) + if err != nil { + return err + } + *z = encodeVarint(*z, tag<<3|uint64(wire)) + *z = append(*z, b0[:len(b0)-len(b)]...) + + if emap != nil { + emap[int32(tag)] = e + } + } + if reqMask != u.reqMask && errLater == nil { + // A required field of this message is missing. + for _, n := range u.reqFields { + if reqMask&1 == 0 { + errLater = &RequiredNotSetError{n} + } + reqMask >>= 1 + } + } + return errLater +} + +// computeUnmarshalInfo fills in u with information for use +// in unmarshaling protocol buffers of type u.typ. +func (u *unmarshalInfo) computeUnmarshalInfo() { + u.lock.Lock() + defer u.lock.Unlock() + if u.initialized != 0 { + return + } + t := u.typ + n := t.NumField() + + // Set up the "not found" value for the unrecognized byte buffer. + // This is the default for proto3. + u.unrecognized = invalidField + u.extensions = invalidField + u.oldExtensions = invalidField + u.bytesExtensions = invalidField + + // List of the generated type and offset for each oneof field. + type oneofField struct { + ityp reflect.Type // interface type of oneof field + field field // offset in containing message + } + var oneofFields []oneofField + + for i := 0; i < n; i++ { + f := t.Field(i) + if f.Name == "XXX_unrecognized" { + // The byte slice used to hold unrecognized input is special. + if f.Type != reflect.TypeOf(([]byte)(nil)) { + panic("bad type for XXX_unrecognized field: " + f.Type.Name()) + } + u.unrecognized = toField(&f) + continue + } + if f.Name == "XXX_InternalExtensions" { + // Ditto here. + if f.Type != reflect.TypeOf(XXX_InternalExtensions{}) { + panic("bad type for XXX_InternalExtensions field: " + f.Type.Name()) + } + u.extensions = toField(&f) + if f.Tag.Get("protobuf_messageset") == "1" { + u.isMessageSet = true + } + continue + } + if f.Name == "XXX_extensions" { + // An older form of the extensions field. + if f.Type == reflect.TypeOf((map[int32]Extension)(nil)) { + u.oldExtensions = toField(&f) + continue + } else if f.Type == reflect.TypeOf(([]byte)(nil)) { + u.bytesExtensions = toField(&f) + continue + } + panic("bad type for XXX_extensions field: " + f.Type.Name()) + } + if f.Name == "XXX_NoUnkeyedLiteral" || f.Name == "XXX_sizecache" { + continue + } + + oneof := f.Tag.Get("protobuf_oneof") + if oneof != "" { + oneofFields = append(oneofFields, oneofField{f.Type, toField(&f)}) + // The rest of oneof processing happens below. + continue + } + + tags := f.Tag.Get("protobuf") + tagArray := strings.Split(tags, ",") + if len(tagArray) < 2 { + panic("protobuf tag not enough fields in " + t.Name() + "." + f.Name + ": " + tags) + } + tag, err := strconv.Atoi(tagArray[1]) + if err != nil { + panic("protobuf tag field not an integer: " + tagArray[1]) + } + + name := "" + for _, tag := range tagArray[3:] { + if strings.HasPrefix(tag, "name=") { + name = tag[5:] + } + } + + // Extract unmarshaling function from the field (its type and tags). + unmarshal := fieldUnmarshaler(&f) + + // Required field? + var reqMask uint64 + if tagArray[2] == "req" { + bit := len(u.reqFields) + u.reqFields = append(u.reqFields, name) + reqMask = uint64(1) << uint(bit) + // TODO: if we have more than 64 required fields, we end up + // not verifying that all required fields are present. + // Fix this, perhaps using a count of required fields? + } + + // Store the info in the correct slot in the message. + u.setTag(tag, toField(&f), unmarshal, reqMask, name) + } + + // Find any types associated with oneof fields. + // TODO: XXX_OneofFuncs returns more info than we need. Get rid of some of it? + fn := reflect.Zero(reflect.PtrTo(t)).MethodByName("XXX_OneofFuncs") + // gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler + if fn.IsValid() && len(oneofFields) > 0 { + res := fn.Call(nil)[3] // last return value from XXX_OneofFuncs: []interface{} + for i := res.Len() - 1; i >= 0; i-- { + v := res.Index(i) // interface{} + tptr := reflect.ValueOf(v.Interface()).Type() // *Msg_X + typ := tptr.Elem() // Msg_X + + f := typ.Field(0) // oneof implementers have one field + baseUnmarshal := fieldUnmarshaler(&f) + tags := strings.Split(f.Tag.Get("protobuf"), ",") + fieldNum, err := strconv.Atoi(tags[1]) + if err != nil { + panic("protobuf tag field not an integer: " + tags[1]) + } + var name string + for _, tag := range tags { + if strings.HasPrefix(tag, "name=") { + name = strings.TrimPrefix(tag, "name=") + break + } + } + + // Find the oneof field that this struct implements. + // Might take O(n^2) to process all of the oneofs, but who cares. + for _, of := range oneofFields { + if tptr.Implements(of.ityp) { + // We have found the corresponding interface for this struct. + // That lets us know where this struct should be stored + // when we encounter it during unmarshaling. + unmarshal := makeUnmarshalOneof(typ, of.ityp, baseUnmarshal) + u.setTag(fieldNum, of.field, unmarshal, 0, name) + } + } + } + } + + // Get extension ranges, if any. + fn = reflect.Zero(reflect.PtrTo(t)).MethodByName("ExtensionRangeArray") + if fn.IsValid() { + if !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() { + panic("a message with extensions, but no extensions field in " + t.Name()) + } + u.extensionRanges = fn.Call(nil)[0].Interface().([]ExtensionRange) + } + + // Explicitly disallow tag 0. This will ensure we flag an error + // when decoding a buffer of all zeros. Without this code, we + // would decode and skip an all-zero buffer of even length. + // [0 0] is [tag=0/wiretype=varint varint-encoded-0]. + u.setTag(0, zeroField, func(b []byte, f pointer, w int) ([]byte, error) { + return nil, fmt.Errorf("proto: %s: illegal tag 0 (wire type %d)", t, w) + }, 0, "") + + // Set mask for required field check. + u.reqMask = uint64(1)<= 0 && (tag < 16 || tag < 2*n) { // TODO: what are the right numbers here? + for len(u.dense) <= tag { + u.dense = append(u.dense, unmarshalFieldInfo{}) + } + u.dense[tag] = i + return + } + if u.sparse == nil { + u.sparse = map[uint64]unmarshalFieldInfo{} + } + u.sparse[uint64(tag)] = i +} + +// fieldUnmarshaler returns an unmarshaler for the given field. +func fieldUnmarshaler(f *reflect.StructField) unmarshaler { + if f.Type.Kind() == reflect.Map { + return makeUnmarshalMap(f) + } + return typeUnmarshaler(f.Type, f.Tag.Get("protobuf")) +} + +// typeUnmarshaler returns an unmarshaler for the given field type / field tag pair. +func typeUnmarshaler(t reflect.Type, tags string) unmarshaler { + tagArray := strings.Split(tags, ",") + encoding := tagArray[0] + name := "unknown" + ctype := false + isTime := false + isDuration := false + isWktPointer := false + proto3 := false + validateUTF8 := true + for _, tag := range tagArray[3:] { + if strings.HasPrefix(tag, "name=") { + name = tag[5:] + } + if tag == "proto3" { + proto3 = true + } + if strings.HasPrefix(tag, "customtype=") { + ctype = true + } + if tag == "stdtime" { + isTime = true + } + if tag == "stdduration" { + isDuration = true + } + if tag == "wktptr" { + isWktPointer = true + } + } + validateUTF8 = validateUTF8 && proto3 + + // Figure out packaging (pointer, slice, or both) + slice := false + pointer := false + if t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 { + slice = true + t = t.Elem() + } + if t.Kind() == reflect.Ptr { + pointer = true + t = t.Elem() + } + + if ctype { + if reflect.PtrTo(t).Implements(customType) { + if slice { + return makeUnmarshalCustomSlice(getUnmarshalInfo(t), name) + } + if pointer { + return makeUnmarshalCustomPtr(getUnmarshalInfo(t), name) + } + return makeUnmarshalCustom(getUnmarshalInfo(t), name) + } else { + panic(fmt.Sprintf("custom type: type: %v, does not implement the proto.custom interface", t)) + } + } + + if isTime { + if pointer { + if slice { + return makeUnmarshalTimePtrSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalTimePtr(getUnmarshalInfo(t), name) + } + if slice { + return makeUnmarshalTimeSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalTime(getUnmarshalInfo(t), name) + } + + if isDuration { + if pointer { + if slice { + return makeUnmarshalDurationPtrSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalDurationPtr(getUnmarshalInfo(t), name) + } + if slice { + return makeUnmarshalDurationSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalDuration(getUnmarshalInfo(t), name) + } + + if isWktPointer { + switch t.Kind() { + case reflect.Float64: + if pointer { + if slice { + return makeStdDoubleValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdDoubleValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdDoubleValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdDoubleValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Float32: + if pointer { + if slice { + return makeStdFloatValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdFloatValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdFloatValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdFloatValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Int64: + if pointer { + if slice { + return makeStdInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt64ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Uint64: + if pointer { + if slice { + return makeStdUInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdUInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt64ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Int32: + if pointer { + if slice { + return makeStdInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt32ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Uint32: + if pointer { + if slice { + return makeStdUInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdUInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt32ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Bool: + if pointer { + if slice { + return makeStdBoolValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBoolValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdBoolValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBoolValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.String: + if pointer { + if slice { + return makeStdStringValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdStringValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdStringValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdStringValueUnmarshaler(getUnmarshalInfo(t), name) + case uint8SliceType: + if pointer { + if slice { + return makeStdBytesValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBytesValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdBytesValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBytesValueUnmarshaler(getUnmarshalInfo(t), name) + default: + panic(fmt.Sprintf("unknown wktpointer type %#v", t)) + } + } + + // We'll never have both pointer and slice for basic types. + if pointer && slice && t.Kind() != reflect.Struct { + panic("both pointer and slice for basic type in " + t.Name()) + } + + switch t.Kind() { + case reflect.Bool: + if pointer { + return unmarshalBoolPtr + } + if slice { + return unmarshalBoolSlice + } + return unmarshalBoolValue + case reflect.Int32: + switch encoding { + case "fixed32": + if pointer { + return unmarshalFixedS32Ptr + } + if slice { + return unmarshalFixedS32Slice + } + return unmarshalFixedS32Value + case "varint": + // this could be int32 or enum + if pointer { + return unmarshalInt32Ptr + } + if slice { + return unmarshalInt32Slice + } + return unmarshalInt32Value + case "zigzag32": + if pointer { + return unmarshalSint32Ptr + } + if slice { + return unmarshalSint32Slice + } + return unmarshalSint32Value + } + case reflect.Int64: + switch encoding { + case "fixed64": + if pointer { + return unmarshalFixedS64Ptr + } + if slice { + return unmarshalFixedS64Slice + } + return unmarshalFixedS64Value + case "varint": + if pointer { + return unmarshalInt64Ptr + } + if slice { + return unmarshalInt64Slice + } + return unmarshalInt64Value + case "zigzag64": + if pointer { + return unmarshalSint64Ptr + } + if slice { + return unmarshalSint64Slice + } + return unmarshalSint64Value + } + case reflect.Uint32: + switch encoding { + case "fixed32": + if pointer { + return unmarshalFixed32Ptr + } + if slice { + return unmarshalFixed32Slice + } + return unmarshalFixed32Value + case "varint": + if pointer { + return unmarshalUint32Ptr + } + if slice { + return unmarshalUint32Slice + } + return unmarshalUint32Value + } + case reflect.Uint64: + switch encoding { + case "fixed64": + if pointer { + return unmarshalFixed64Ptr + } + if slice { + return unmarshalFixed64Slice + } + return unmarshalFixed64Value + case "varint": + if pointer { + return unmarshalUint64Ptr + } + if slice { + return unmarshalUint64Slice + } + return unmarshalUint64Value + } + case reflect.Float32: + if pointer { + return unmarshalFloat32Ptr + } + if slice { + return unmarshalFloat32Slice + } + return unmarshalFloat32Value + case reflect.Float64: + if pointer { + return unmarshalFloat64Ptr + } + if slice { + return unmarshalFloat64Slice + } + return unmarshalFloat64Value + case reflect.Map: + panic("map type in typeUnmarshaler in " + t.Name()) + case reflect.Slice: + if pointer { + panic("bad pointer in slice case in " + t.Name()) + } + if slice { + return unmarshalBytesSlice + } + return unmarshalBytesValue + case reflect.String: + if validateUTF8 { + if pointer { + return unmarshalUTF8StringPtr + } + if slice { + return unmarshalUTF8StringSlice + } + return unmarshalUTF8StringValue + } + if pointer { + return unmarshalStringPtr + } + if slice { + return unmarshalStringSlice + } + return unmarshalStringValue + case reflect.Struct: + // message or group field + if !pointer { + switch encoding { + case "bytes": + if slice { + return makeUnmarshalMessageSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalMessage(getUnmarshalInfo(t), name) + } + } + switch encoding { + case "bytes": + if slice { + return makeUnmarshalMessageSlicePtr(getUnmarshalInfo(t), name) + } + return makeUnmarshalMessagePtr(getUnmarshalInfo(t), name) + case "group": + if slice { + return makeUnmarshalGroupSlicePtr(getUnmarshalInfo(t), name) + } + return makeUnmarshalGroupPtr(getUnmarshalInfo(t), name) + } + } + panic(fmt.Sprintf("unmarshaler not found type:%s encoding:%s", t, encoding)) +} + +// Below are all the unmarshalers for individual fields of various types. + +func unmarshalInt64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + *f.toInt64() = v + return b, nil +} + +func unmarshalInt64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + *f.toInt64Ptr() = &v + return b, nil +} + +func unmarshalInt64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + s := f.toInt64Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + s := f.toInt64Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalSint64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + *f.toInt64() = v + return b, nil +} + +func unmarshalSint64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + *f.toInt64Ptr() = &v + return b, nil +} + +func unmarshalSint64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + s := f.toInt64Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + s := f.toInt64Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalUint64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + *f.toUint64() = v + return b, nil +} + +func unmarshalUint64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + *f.toUint64Ptr() = &v + return b, nil +} + +func unmarshalUint64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + s := f.toUint64Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + s := f.toUint64Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalInt32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + *f.toInt32() = v + return b, nil +} + +func unmarshalInt32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + f.setInt32Ptr(v) + return b, nil +} + +func unmarshalInt32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + f.appendInt32Slice(v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + f.appendInt32Slice(v) + return b, nil +} + +func unmarshalSint32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + *f.toInt32() = v + return b, nil +} + +func unmarshalSint32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + f.setInt32Ptr(v) + return b, nil +} + +func unmarshalSint32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + f.appendInt32Slice(v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + f.appendInt32Slice(v) + return b, nil +} + +func unmarshalUint32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + *f.toUint32() = v + return b, nil +} + +func unmarshalUint32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + *f.toUint32Ptr() = &v + return b, nil +} + +func unmarshalUint32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + s := f.toUint32Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + s := f.toUint32Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalFixed64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + *f.toUint64() = v + return b[8:], nil +} + +func unmarshalFixed64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + *f.toUint64Ptr() = &v + return b[8:], nil +} + +func unmarshalFixed64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + s := f.toUint64Slice() + *s = append(*s, v) + b = b[8:] + } + return res, nil + } + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + s := f.toUint64Slice() + *s = append(*s, v) + return b[8:], nil +} + +func unmarshalFixedS64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + *f.toInt64() = v + return b[8:], nil +} + +func unmarshalFixedS64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + *f.toInt64Ptr() = &v + return b[8:], nil +} + +func unmarshalFixedS64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + s := f.toInt64Slice() + *s = append(*s, v) + b = b[8:] + } + return res, nil + } + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + s := f.toInt64Slice() + *s = append(*s, v) + return b[8:], nil +} + +func unmarshalFixed32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + *f.toUint32() = v + return b[4:], nil +} + +func unmarshalFixed32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + *f.toUint32Ptr() = &v + return b[4:], nil +} + +func unmarshalFixed32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + s := f.toUint32Slice() + *s = append(*s, v) + b = b[4:] + } + return res, nil + } + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + s := f.toUint32Slice() + *s = append(*s, v) + return b[4:], nil +} + +func unmarshalFixedS32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + *f.toInt32() = v + return b[4:], nil +} + +func unmarshalFixedS32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + f.setInt32Ptr(v) + return b[4:], nil +} + +func unmarshalFixedS32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + f.appendInt32Slice(v) + b = b[4:] + } + return res, nil + } + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + f.appendInt32Slice(v) + return b[4:], nil +} + +func unmarshalBoolValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + // Note: any length varint is allowed, even though any sane + // encoder will use one byte. + // See https://github.com/golang/protobuf/issues/76 + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + // TODO: check if x>1? Tests seem to indicate no. + v := x != 0 + *f.toBool() = v + return b[n:], nil +} + +func unmarshalBoolPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + v := x != 0 + *f.toBoolPtr() = &v + return b[n:], nil +} + +func unmarshalBoolSlice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + v := x != 0 + s := f.toBoolSlice() + *s = append(*s, v) + b = b[n:] + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + v := x != 0 + s := f.toBoolSlice() + *s = append(*s, v) + return b[n:], nil +} + +func unmarshalFloat64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + *f.toFloat64() = v + return b[8:], nil +} + +func unmarshalFloat64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + *f.toFloat64Ptr() = &v + return b[8:], nil +} + +func unmarshalFloat64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + s := f.toFloat64Slice() + *s = append(*s, v) + b = b[8:] + } + return res, nil + } + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + s := f.toFloat64Slice() + *s = append(*s, v) + return b[8:], nil +} + +func unmarshalFloat32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + *f.toFloat32() = v + return b[4:], nil +} + +func unmarshalFloat32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + *f.toFloat32Ptr() = &v + return b[4:], nil +} + +func unmarshalFloat32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + s := f.toFloat32Slice() + *s = append(*s, v) + b = b[4:] + } + return res, nil + } + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + s := f.toFloat32Slice() + *s = append(*s, v) + return b[4:], nil +} + +func unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toString() = v + return b[x:], nil +} + +func unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toStringPtr() = &v + return b[x:], nil +} + +func unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + s := f.toStringSlice() + *s = append(*s, v) + return b[x:], nil +} + +func unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toString() = v + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +func unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toStringPtr() = &v + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +func unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + s := f.toStringSlice() + *s = append(*s, v) + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +var emptyBuf [0]byte + +func unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + // The use of append here is a trick which avoids the zeroing + // that would be required if we used a make/copy pair. + // We append to emptyBuf instead of nil because we want + // a non-nil result even when the length is 0. + v := append(emptyBuf[:], b[:x]...) + *f.toBytes() = v + return b[x:], nil +} + +func unmarshalBytesSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := append(emptyBuf[:], b[:x]...) + s := f.toBytesSlice() + *s = append(*s, v) + return b[x:], nil +} + +func makeUnmarshalMessagePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + // First read the message field to see if something is there. + // The semantics of multiple submessages are weird. Instead of + // the last one winning (as it is for all other fields), multiple + // submessages are merged. + v := f.getPointer() + if v.isNil() { + v = valToPointer(reflect.New(sub.typ)) + f.setPointer(v) + } + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + return b[x:], err + } +} + +func makeUnmarshalMessageSlicePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := valToPointer(reflect.New(sub.typ)) + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + f.appendPointer(v) + return b[x:], err + } +} + +func makeUnmarshalGroupPtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireStartGroup { + return b, errInternalBadWireType + } + x, y := findEndGroup(b) + if x < 0 { + return nil, io.ErrUnexpectedEOF + } + v := f.getPointer() + if v.isNil() { + v = valToPointer(reflect.New(sub.typ)) + f.setPointer(v) + } + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + return b[y:], err + } +} + +func makeUnmarshalGroupSlicePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireStartGroup { + return b, errInternalBadWireType + } + x, y := findEndGroup(b) + if x < 0 { + return nil, io.ErrUnexpectedEOF + } + v := valToPointer(reflect.New(sub.typ)) + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + f.appendPointer(v) + return b[y:], err + } +} + +func makeUnmarshalMap(f *reflect.StructField) unmarshaler { + t := f.Type + kt := t.Key() + vt := t.Elem() + tagArray := strings.Split(f.Tag.Get("protobuf"), ",") + valTags := strings.Split(f.Tag.Get("protobuf_val"), ",") + for _, t := range tagArray { + if strings.HasPrefix(t, "customtype=") { + valTags = append(valTags, t) + } + if t == "stdtime" { + valTags = append(valTags, t) + } + if t == "stdduration" { + valTags = append(valTags, t) + } + if t == "wktptr" { + valTags = append(valTags, t) + } + } + unmarshalKey := typeUnmarshaler(kt, f.Tag.Get("protobuf_key")) + unmarshalVal := typeUnmarshaler(vt, strings.Join(valTags, ",")) + return func(b []byte, f pointer, w int) ([]byte, error) { + // The map entry is a submessage. Figure out how big it is. + if w != WireBytes { + return nil, fmt.Errorf("proto: bad wiretype for map field: got %d want %d", w, WireBytes) + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + r := b[x:] // unused data to return + b = b[:x] // data for map entry + + // Note: we could use #keys * #values ~= 200 functions + // to do map decoding without reflection. Probably not worth it. + // Maps will be somewhat slow. Oh well. + + // Read key and value from data. + var nerr nonFatal + k := reflect.New(kt) + v := reflect.New(vt) + for len(b) > 0 { + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + wire := int(x) & 7 + b = b[n:] + + var err error + switch x >> 3 { + case 1: + b, err = unmarshalKey(b, valToPointer(k), wire) + case 2: + b, err = unmarshalVal(b, valToPointer(v), wire) + default: + err = errInternalBadWireType // skip unknown tag + } + + if nerr.Merge(err) { + continue + } + if err != errInternalBadWireType { + return nil, err + } + + // Skip past unknown fields. + b, err = skipField(b, wire) + if err != nil { + return nil, err + } + } + + // Get map, allocate if needed. + m := f.asPointerTo(t).Elem() // an addressable map[K]T + if m.IsNil() { + m.Set(reflect.MakeMap(t)) + } + + // Insert into map. + m.SetMapIndex(k.Elem(), v.Elem()) + + return r, nerr.E + } +} + +// makeUnmarshalOneof makes an unmarshaler for oneof fields. +// for: +// message Msg { +// oneof F { +// int64 X = 1; +// float64 Y = 2; +// } +// } +// typ is the type of the concrete entry for a oneof case (e.g. Msg_X). +// ityp is the interface type of the oneof field (e.g. isMsg_F). +// unmarshal is the unmarshaler for the base type of the oneof case (e.g. int64). +// Note that this function will be called once for each case in the oneof. +func makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) unmarshaler { + sf := typ.Field(0) + field0 := toField(&sf) + return func(b []byte, f pointer, w int) ([]byte, error) { + // Allocate holder for value. + v := reflect.New(typ) + + // Unmarshal data into holder. + // We unmarshal into the first field of the holder object. + var err error + var nerr nonFatal + b, err = unmarshal(b, valToPointer(v).offset(field0), w) + if !nerr.Merge(err) { + return nil, err + } + + // Write pointer to holder into target field. + f.asPointerTo(ityp).Elem().Set(v) + + return b, nerr.E + } +} + +// Error used by decode internally. +var errInternalBadWireType = errors.New("proto: internal error: bad wiretype") + +// skipField skips past a field of type wire and returns the remaining bytes. +func skipField(b []byte, wire int) ([]byte, error) { + switch wire { + case WireVarint: + _, k := decodeVarint(b) + if k == 0 { + return b, io.ErrUnexpectedEOF + } + b = b[k:] + case WireFixed32: + if len(b) < 4 { + return b, io.ErrUnexpectedEOF + } + b = b[4:] + case WireFixed64: + if len(b) < 8 { + return b, io.ErrUnexpectedEOF + } + b = b[8:] + case WireBytes: + m, k := decodeVarint(b) + if k == 0 || uint64(len(b)-k) < m { + return b, io.ErrUnexpectedEOF + } + b = b[uint64(k)+m:] + case WireStartGroup: + _, i := findEndGroup(b) + if i == -1 { + return b, io.ErrUnexpectedEOF + } + b = b[i:] + default: + return b, fmt.Errorf("proto: can't skip unknown wire type %d", wire) + } + return b, nil +} + +// findEndGroup finds the index of the next EndGroup tag. +// Groups may be nested, so the "next" EndGroup tag is the first +// unpaired EndGroup. +// findEndGroup returns the indexes of the start and end of the EndGroup tag. +// Returns (-1,-1) if it can't find one. +func findEndGroup(b []byte) (int, int) { + depth := 1 + i := 0 + for { + x, n := decodeVarint(b[i:]) + if n == 0 { + return -1, -1 + } + j := i + i += n + switch x & 7 { + case WireVarint: + _, k := decodeVarint(b[i:]) + if k == 0 { + return -1, -1 + } + i += k + case WireFixed32: + if len(b)-4 < i { + return -1, -1 + } + i += 4 + case WireFixed64: + if len(b)-8 < i { + return -1, -1 + } + i += 8 + case WireBytes: + m, k := decodeVarint(b[i:]) + if k == 0 { + return -1, -1 + } + i += k + if uint64(len(b)-i) < m { + return -1, -1 + } + i += int(m) + case WireStartGroup: + depth++ + case WireEndGroup: + depth-- + if depth == 0 { + return j, i + } + default: + return -1, -1 + } + } +} + +// encodeVarint appends a varint-encoded integer to b and returns the result. +func encodeVarint(b []byte, x uint64) []byte { + for x >= 1<<7 { + b = append(b, byte(x&0x7f|0x80)) + x >>= 7 + } + return append(b, byte(x)) +} + +// decodeVarint reads a varint-encoded integer from b. +// Returns the decoded integer and the number of bytes read. +// If there is an error, it returns 0,0. +func decodeVarint(b []byte) (uint64, int) { + var x, y uint64 + if len(b) == 0 { + goto bad + } + x = uint64(b[0]) + if x < 0x80 { + return x, 1 + } + x -= 0x80 + + if len(b) <= 1 { + goto bad + } + y = uint64(b[1]) + x += y << 7 + if y < 0x80 { + return x, 2 + } + x -= 0x80 << 7 + + if len(b) <= 2 { + goto bad + } + y = uint64(b[2]) + x += y << 14 + if y < 0x80 { + return x, 3 + } + x -= 0x80 << 14 + + if len(b) <= 3 { + goto bad + } + y = uint64(b[3]) + x += y << 21 + if y < 0x80 { + return x, 4 + } + x -= 0x80 << 21 + + if len(b) <= 4 { + goto bad + } + y = uint64(b[4]) + x += y << 28 + if y < 0x80 { + return x, 5 + } + x -= 0x80 << 28 + + if len(b) <= 5 { + goto bad + } + y = uint64(b[5]) + x += y << 35 + if y < 0x80 { + return x, 6 + } + x -= 0x80 << 35 + + if len(b) <= 6 { + goto bad + } + y = uint64(b[6]) + x += y << 42 + if y < 0x80 { + return x, 7 + } + x -= 0x80 << 42 + + if len(b) <= 7 { + goto bad + } + y = uint64(b[7]) + x += y << 49 + if y < 0x80 { + return x, 8 + } + x -= 0x80 << 49 + + if len(b) <= 8 { + goto bad + } + y = uint64(b[8]) + x += y << 56 + if y < 0x80 { + return x, 9 + } + x -= 0x80 << 56 + + if len(b) <= 9 { + goto bad + } + y = uint64(b[9]) + x += y << 63 + if y < 2 { + return x, 10 + } + +bad: + return 0, 0 +} diff --git a/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go b/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go new file mode 100644 index 00000000..00d6c7ad --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go @@ -0,0 +1,385 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "io" + "reflect" +) + +func makeUnmarshalMessage(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + // First read the message field to see if something is there. + // The semantics of multiple submessages are weird. Instead of + // the last one winning (as it is for all other fields), multiple + // submessages are merged. + v := f // gogo: changed from v := f.getPointer() + if v.isNil() { + v = valToPointer(reflect.New(sub.typ)) + f.setPointer(v) + } + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + return b[x:], err + } +} + +func makeUnmarshalMessageSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := valToPointer(reflect.New(sub.typ)) + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + f.appendRef(v, sub.typ) // gogo: changed from f.appendPointer(v) + return b[x:], err + } +} + +func makeUnmarshalCustomPtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.New(sub.typ)) + m := s.Interface().(custom) + if err := m.Unmarshal(b[:x]); err != nil { + return nil, err + } + return b[x:], nil + } +} + +func makeUnmarshalCustomSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := reflect.New(sub.typ) + c := m.Interface().(custom) + if err := c.Unmarshal(b[:x]); err != nil { + return nil, err + } + v := valToPointer(m) + f.appendRef(v, sub.typ) + return b[x:], nil + } +} + +func makeUnmarshalCustom(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + + m := f.asPointerTo(sub.typ).Interface().(custom) + if err := m.Unmarshal(b[:x]); err != nil { + return nil, err + } + return b[x:], nil + } +} + +func makeUnmarshalTime(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(t)) + return b[x:], nil + } +} + +func makeUnmarshalTimePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&t)) + return b[x:], nil + } +} + +func makeUnmarshalTimePtrSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&t)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeUnmarshalTimeSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(t)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeUnmarshalDurationPtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&d)) + return b[x:], nil + } +} + +func makeUnmarshalDuration(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(d)) + return b[x:], nil + } +} + +func makeUnmarshalDurationPtrSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&d)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeUnmarshalDurationSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(d)) + slice.Set(newSlice) + return b[x:], nil + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/text.go b/vendor/github.com/gogo/protobuf/proto/text.go new file mode 100644 index 00000000..0407ba85 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/text.go @@ -0,0 +1,928 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// Functions for writing the text protocol buffer format. + +import ( + "bufio" + "bytes" + "encoding" + "errors" + "fmt" + "io" + "log" + "math" + "reflect" + "sort" + "strings" + "sync" + "time" +) + +var ( + newline = []byte("\n") + spaces = []byte(" ") + endBraceNewline = []byte("}\n") + backslashN = []byte{'\\', 'n'} + backslashR = []byte{'\\', 'r'} + backslashT = []byte{'\\', 't'} + backslashDQ = []byte{'\\', '"'} + backslashBS = []byte{'\\', '\\'} + posInf = []byte("inf") + negInf = []byte("-inf") + nan = []byte("nan") +) + +type writer interface { + io.Writer + WriteByte(byte) error +} + +// textWriter is an io.Writer that tracks its indentation level. +type textWriter struct { + ind int + complete bool // if the current position is a complete line + compact bool // whether to write out as a one-liner + w writer +} + +func (w *textWriter) WriteString(s string) (n int, err error) { + if !strings.Contains(s, "\n") { + if !w.compact && w.complete { + w.writeIndent() + } + w.complete = false + return io.WriteString(w.w, s) + } + // WriteString is typically called without newlines, so this + // codepath and its copy are rare. We copy to avoid + // duplicating all of Write's logic here. + return w.Write([]byte(s)) +} + +func (w *textWriter) Write(p []byte) (n int, err error) { + newlines := bytes.Count(p, newline) + if newlines == 0 { + if !w.compact && w.complete { + w.writeIndent() + } + n, err = w.w.Write(p) + w.complete = false + return n, err + } + + frags := bytes.SplitN(p, newline, newlines+1) + if w.compact { + for i, frag := range frags { + if i > 0 { + if err := w.w.WriteByte(' '); err != nil { + return n, err + } + n++ + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + } + return n, nil + } + + for i, frag := range frags { + if w.complete { + w.writeIndent() + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + if i+1 < len(frags) { + if err := w.w.WriteByte('\n'); err != nil { + return n, err + } + n++ + } + } + w.complete = len(frags[len(frags)-1]) == 0 + return n, nil +} + +func (w *textWriter) WriteByte(c byte) error { + if w.compact && c == '\n' { + c = ' ' + } + if !w.compact && w.complete { + w.writeIndent() + } + err := w.w.WriteByte(c) + w.complete = c == '\n' + return err +} + +func (w *textWriter) indent() { w.ind++ } + +func (w *textWriter) unindent() { + if w.ind == 0 { + log.Print("proto: textWriter unindented too far") + return + } + w.ind-- +} + +func writeName(w *textWriter, props *Properties) error { + if _, err := w.WriteString(props.OrigName); err != nil { + return err + } + if props.Wire != "group" { + return w.WriteByte(':') + } + return nil +} + +func requiresQuotes(u string) bool { + // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. + for _, ch := range u { + switch { + case ch == '.' || ch == '/' || ch == '_': + continue + case '0' <= ch && ch <= '9': + continue + case 'A' <= ch && ch <= 'Z': + continue + case 'a' <= ch && ch <= 'z': + continue + default: + return true + } + } + return false +} + +// isAny reports whether sv is a google.protobuf.Any message +func isAny(sv reflect.Value) bool { + type wkt interface { + XXX_WellKnownType() string + } + t, ok := sv.Addr().Interface().(wkt) + return ok && t.XXX_WellKnownType() == "Any" +} + +// writeProto3Any writes an expanded google.protobuf.Any message. +// +// It returns (false, nil) if sv value can't be unmarshaled (e.g. because +// required messages are not linked in). +// +// It returns (true, error) when sv was written in expanded format or an error +// was encountered. +func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) { + turl := sv.FieldByName("TypeUrl") + val := sv.FieldByName("Value") + if !turl.IsValid() || !val.IsValid() { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + b, ok := val.Interface().([]byte) + if !ok { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + parts := strings.Split(turl.String(), "/") + mt := MessageType(parts[len(parts)-1]) + if mt == nil { + return false, nil + } + m := reflect.New(mt.Elem()) + if err := Unmarshal(b, m.Interface().(Message)); err != nil { + return false, nil + } + w.Write([]byte("[")) + u := turl.String() + if requiresQuotes(u) { + writeString(w, u) + } else { + w.Write([]byte(u)) + } + if w.compact { + w.Write([]byte("]:<")) + } else { + w.Write([]byte("]: <\n")) + w.ind++ + } + if err := tm.writeStruct(w, m.Elem()); err != nil { + return true, err + } + if w.compact { + w.Write([]byte("> ")) + } else { + w.ind-- + w.Write([]byte(">\n")) + } + return true, nil +} + +func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { + if tm.ExpandAny && isAny(sv) { + if canExpand, err := tm.writeProto3Any(w, sv); canExpand { + return err + } + } + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < sv.NumField(); i++ { + fv := sv.Field(i) + props := sprops.Prop[i] + name := st.Field(i).Name + + if name == "XXX_NoUnkeyedLiteral" { + continue + } + + if strings.HasPrefix(name, "XXX_") { + // There are two XXX_ fields: + // XXX_unrecognized []byte + // XXX_extensions map[int32]proto.Extension + // The first is handled here; + // the second is handled at the bottom of this function. + if name == "XXX_unrecognized" && !fv.IsNil() { + if err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Field not filled in. This could be an optional field or + // a required field that wasn't filled in. Either way, there + // isn't anything we can show for it. + continue + } + if fv.Kind() == reflect.Slice && fv.IsNil() { + // Repeated field that is empty, or a bytes field that is unused. + continue + } + + if props.Repeated && fv.Kind() == reflect.Slice { + // Repeated field. + for j := 0; j < fv.Len(); j++ { + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + v := fv.Index(j) + if v.Kind() == reflect.Ptr && v.IsNil() { + // A nil message in a repeated field is not valid, + // but we can handle that more gracefully than panicking. + if _, err := w.Write([]byte("\n")); err != nil { + return err + } + continue + } + if len(props.Enum) > 0 { + if err := tm.writeEnum(w, v, props); err != nil { + return err + } + } else if err := tm.writeAny(w, v, props); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Map { + // Map fields are rendered as a repeated struct with key/value fields. + keys := fv.MapKeys() + sort.Sort(mapKeys(keys)) + for _, key := range keys { + val := fv.MapIndex(key) + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + // open struct + if err := w.WriteByte('<'); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + // key + if _, err := w.WriteString("key:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, key, props.MapKeyProp); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + // nil values aren't legal, but we can avoid panicking because of them. + if val.Kind() != reflect.Ptr || !val.IsNil() { + // value + if _, err := w.WriteString("value:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, val, props.MapValProp); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + // close struct + w.unindent() + if err := w.WriteByte('>'); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 { + // empty bytes field + continue + } + if props.proto3 && fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice { + // proto3 non-repeated scalar field; skip if zero value + if isProto3Zero(fv) { + continue + } + } + + if fv.Kind() == reflect.Interface { + // Check if it is a oneof. + if st.Field(i).Tag.Get("protobuf_oneof") != "" { + // fv is nil, or holds a pointer to generated struct. + // That generated struct has exactly one field, + // which has a protobuf struct tag. + if fv.IsNil() { + continue + } + inner := fv.Elem().Elem() // interface -> *T -> T + tag := inner.Type().Field(0).Tag.Get("protobuf") + props = new(Properties) // Overwrite the outer props var, but not its pointee. + props.Parse(tag) + // Write the value in the oneof, not the oneof itself. + fv = inner.Field(0) + + // Special case to cope with malformed messages gracefully: + // If the value in the oneof is a nil pointer, don't panic + // in writeAny. + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Use errors.New so writeAny won't render quotes. + msg := errors.New("/* nil */") + fv = reflect.ValueOf(&msg).Elem() + } + } + } + + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + + if len(props.Enum) > 0 { + if err := tm.writeEnum(w, fv, props); err != nil { + return err + } + } else if err := tm.writeAny(w, fv, props); err != nil { + return err + } + + if err := w.WriteByte('\n'); err != nil { + return err + } + } + + // Extensions (the XXX_extensions field). + pv := sv + if pv.CanAddr() { + pv = sv.Addr() + } else { + pv = reflect.New(sv.Type()) + pv.Elem().Set(sv) + } + if _, err := extendable(pv.Interface()); err == nil { + if err := tm.writeExtensions(w, pv); err != nil { + return err + } + } + + return nil +} + +// writeAny writes an arbitrary field. +func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error { + v = reflect.Indirect(v) + + if props != nil { + if len(props.CustomType) > 0 { + custom, ok := v.Interface().(Marshaler) + if ok { + data, err := custom.Marshal() + if err != nil { + return err + } + if err := writeString(w, string(data)); err != nil { + return err + } + return nil + } + } else if len(props.CastType) > 0 { + if _, ok := v.Interface().(interface { + String() string + }); ok { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + _, err := fmt.Fprintf(w, "%d", v.Interface()) + return err + } + } + } else if props.StdTime { + t, ok := v.Interface().(time.Time) + if !ok { + return fmt.Errorf("stdtime is not time.Time, but %T", v.Interface()) + } + tproto, err := timestampProto(t) + if err != nil { + return err + } + propsCopy := *props // Make a copy so that this is goroutine-safe + propsCopy.StdTime = false + err = tm.writeAny(w, reflect.ValueOf(tproto), &propsCopy) + return err + } else if props.StdDuration { + d, ok := v.Interface().(time.Duration) + if !ok { + return fmt.Errorf("stdtime is not time.Duration, but %T", v.Interface()) + } + dproto := durationProto(d) + propsCopy := *props // Make a copy so that this is goroutine-safe + propsCopy.StdDuration = false + err := tm.writeAny(w, reflect.ValueOf(dproto), &propsCopy) + return err + } + } + + // Floats have special cases. + if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { + x := v.Float() + var b []byte + switch { + case math.IsInf(x, 1): + b = posInf + case math.IsInf(x, -1): + b = negInf + case math.IsNaN(x): + b = nan + } + if b != nil { + _, err := w.Write(b) + return err + } + // Other values are handled below. + } + + // We don't attempt to serialise every possible value type; only those + // that can occur in protocol buffers. + switch v.Kind() { + case reflect.Slice: + // Should only be a []byte; repeated fields are handled in writeStruct. + if err := writeString(w, string(v.Bytes())); err != nil { + return err + } + case reflect.String: + if err := writeString(w, v.String()); err != nil { + return err + } + case reflect.Struct: + // Required/optional group/message. + var bra, ket byte = '<', '>' + if props != nil && props.Wire == "group" { + bra, ket = '{', '}' + } + if err := w.WriteByte(bra); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + if v.CanAddr() { + // Calling v.Interface on a struct causes the reflect package to + // copy the entire struct. This is racy with the new Marshaler + // since we atomically update the XXX_sizecache. + // + // Thus, we retrieve a pointer to the struct if possible to avoid + // a race since v.Interface on the pointer doesn't copy the struct. + // + // If v is not addressable, then we are not worried about a race + // since it implies that the binary Marshaler cannot possibly be + // mutating this value. + v = v.Addr() + } + if etm, ok := v.Interface().(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = w.Write(text); err != nil { + return err + } + } else { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + if err := tm.writeStruct(w, v); err != nil { + return err + } + } + w.unindent() + if err := w.WriteByte(ket); err != nil { + return err + } + default: + _, err := fmt.Fprint(w, v.Interface()) + return err + } + return nil +} + +// equivalent to C's isprint. +func isprint(c byte) bool { + return c >= 0x20 && c < 0x7f +} + +// writeString writes a string in the protocol buffer text format. +// It is similar to strconv.Quote except we don't use Go escape sequences, +// we treat the string as a byte sequence, and we use octal escapes. +// These differences are to maintain interoperability with the other +// languages' implementations of the text format. +func writeString(w *textWriter, s string) error { + // use WriteByte here to get any needed indent + if err := w.WriteByte('"'); err != nil { + return err + } + // Loop over the bytes, not the runes. + for i := 0; i < len(s); i++ { + var err error + // Divergence from C++: we don't escape apostrophes. + // There's no need to escape them, and the C++ parser + // copes with a naked apostrophe. + switch c := s[i]; c { + case '\n': + _, err = w.w.Write(backslashN) + case '\r': + _, err = w.w.Write(backslashR) + case '\t': + _, err = w.w.Write(backslashT) + case '"': + _, err = w.w.Write(backslashDQ) + case '\\': + _, err = w.w.Write(backslashBS) + default: + if isprint(c) { + err = w.w.WriteByte(c) + } else { + _, err = fmt.Fprintf(w.w, "\\%03o", c) + } + } + if err != nil { + return err + } + } + return w.WriteByte('"') +} + +func writeUnknownStruct(w *textWriter, data []byte) (err error) { + if !w.compact { + if _, err := fmt.Fprintf(w, "/* %d unknown bytes */\n", len(data)); err != nil { + return err + } + } + b := NewBuffer(data) + for b.index < len(b.buf) { + x, err := b.DecodeVarint() + if err != nil { + _, ferr := fmt.Fprintf(w, "/* %v */\n", err) + return ferr + } + wire, tag := x&7, x>>3 + if wire == WireEndGroup { + w.unindent() + if _, werr := w.Write(endBraceNewline); werr != nil { + return werr + } + continue + } + if _, ferr := fmt.Fprint(w, tag); ferr != nil { + return ferr + } + if wire != WireStartGroup { + if err = w.WriteByte(':'); err != nil { + return err + } + } + if !w.compact || wire == WireStartGroup { + if err = w.WriteByte(' '); err != nil { + return err + } + } + switch wire { + case WireBytes: + buf, e := b.DecodeRawBytes(false) + if e == nil { + _, err = fmt.Fprintf(w, "%q", buf) + } else { + _, err = fmt.Fprintf(w, "/* %v */", e) + } + case WireFixed32: + x, err = b.DecodeFixed32() + err = writeUnknownInt(w, x, err) + case WireFixed64: + x, err = b.DecodeFixed64() + err = writeUnknownInt(w, x, err) + case WireStartGroup: + err = w.WriteByte('{') + w.indent() + case WireVarint: + x, err = b.DecodeVarint() + err = writeUnknownInt(w, x, err) + default: + _, err = fmt.Fprintf(w, "/* unknown wire type %d */", wire) + } + if err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + return nil +} + +func writeUnknownInt(w *textWriter, x uint64, err error) error { + if err == nil { + _, err = fmt.Fprint(w, x) + } else { + _, err = fmt.Fprintf(w, "/* %v */", err) + } + return err +} + +type int32Slice []int32 + +func (s int32Slice) Len() int { return len(s) } +func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } +func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +// writeExtensions writes all the extensions in pv. +// pv is assumed to be a pointer to a protocol message struct that is extendable. +func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error { + emap := extensionMaps[pv.Type().Elem()] + e := pv.Interface().(Message) + + var m map[int32]Extension + var mu sync.Locker + if em, ok := e.(extensionsBytes); ok { + eb := em.GetExtensions() + var err error + m, err = BytesToExtensionsMap(*eb) + if err != nil { + return err + } + mu = notLocker{} + } else if _, ok := e.(extendableProto); ok { + ep, _ := extendable(e) + m, mu = ep.extensionsRead() + if m == nil { + return nil + } + } + + // Order the extensions by ID. + // This isn't strictly necessary, but it will give us + // canonical output, which will also make testing easier. + + mu.Lock() + ids := make([]int32, 0, len(m)) + for id := range m { + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) + mu.Unlock() + + for _, extNum := range ids { + ext := m[extNum] + var desc *ExtensionDesc + if emap != nil { + desc = emap[extNum] + } + if desc == nil { + // Unknown extension. + if err := writeUnknownStruct(w, ext.enc); err != nil { + return err + } + continue + } + + pb, err := GetExtension(e, desc) + if err != nil { + return fmt.Errorf("failed getting extension: %v", err) + } + + // Repeated extensions will appear as a slice. + if !desc.repeated() { + if err := tm.writeExtension(w, desc.Name, pb); err != nil { + return err + } + } else { + v := reflect.ValueOf(pb) + for i := 0; i < v.Len(); i++ { + if err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { + return err + } + } + } + } + return nil +} + +func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error { + if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + return nil +} + +func (w *textWriter) writeIndent() { + if !w.complete { + return + } + remain := w.ind * 2 + for remain > 0 { + n := remain + if n > len(spaces) { + n = len(spaces) + } + w.w.Write(spaces[:n]) + remain -= n + } + w.complete = false +} + +// TextMarshaler is a configurable text format marshaler. +type TextMarshaler struct { + Compact bool // use compact text format (one line). + ExpandAny bool // expand google.protobuf.Any messages of known types +} + +// Marshal writes a given protocol buffer in text format. +// The only errors returned are from w. +func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error { + val := reflect.ValueOf(pb) + if pb == nil || val.IsNil() { + w.Write([]byte("")) + return nil + } + var bw *bufio.Writer + ww, ok := w.(writer) + if !ok { + bw = bufio.NewWriter(w) + ww = bw + } + aw := &textWriter{ + w: ww, + complete: true, + compact: tm.Compact, + } + + if etm, ok := pb.(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = aw.Write(text); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil + } + // Dereference the received pointer so we don't have outer < and >. + v := reflect.Indirect(val) + if err := tm.writeStruct(aw, v); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil +} + +// Text is the same as Marshal, but returns the string directly. +func (tm *TextMarshaler) Text(pb Message) string { + var buf bytes.Buffer + tm.Marshal(&buf, pb) + return buf.String() +} + +var ( + defaultTextMarshaler = TextMarshaler{} + compactTextMarshaler = TextMarshaler{Compact: true} +) + +// TODO: consider removing some of the Marshal functions below. + +// MarshalText writes a given protocol buffer in text format. +// The only errors returned are from w. +func MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) } + +// MarshalTextString is the same as MarshalText, but returns the string directly. +func MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) } + +// CompactText writes a given protocol buffer in compact text format (one line). +func CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) } + +// CompactTextString is the same as CompactText, but returns the string directly. +func CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) } diff --git a/vendor/github.com/gogo/protobuf/proto/text_gogo.go b/vendor/github.com/gogo/protobuf/proto/text_gogo.go new file mode 100644 index 00000000..1d6c6aa0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/text_gogo.go @@ -0,0 +1,57 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "fmt" + "reflect" +) + +func (tm *TextMarshaler) writeEnum(w *textWriter, v reflect.Value, props *Properties) error { + m, ok := enumStringMaps[props.Enum] + if !ok { + if err := tm.writeAny(w, v, props); err != nil { + return err + } + } + key := int32(0) + if v.Kind() == reflect.Ptr { + key = int32(v.Elem().Int()) + } else { + key = int32(v.Int()) + } + s, ok := m[key] + if !ok { + if err := tm.writeAny(w, v, props); err != nil { + return err + } + } + _, err := fmt.Fprint(w, s) + return err +} diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go new file mode 100644 index 00000000..1ce0be2f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -0,0 +1,1018 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// Functions for parsing the Text protocol buffer format. +// TODO: message sets. + +import ( + "encoding" + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +// Error string emitted when deserializing Any and fields are already set +const anyRepeatedlyUnpacked = "Any message unpacked multiple times, or %q already set" + +type ParseError struct { + Message string + Line int // 1-based line number + Offset int // 0-based byte offset from start of input +} + +func (p *ParseError) Error() string { + if p.Line == 1 { + // show offset only for first line + return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message) + } + return fmt.Sprintf("line %d: %v", p.Line, p.Message) +} + +type token struct { + value string + err *ParseError + line int // line number + offset int // byte number from start of input, not start of line + unquoted string // the unquoted version of value, if it was a quoted string +} + +func (t *token) String() string { + if t.err == nil { + return fmt.Sprintf("%q (line=%d, offset=%d)", t.value, t.line, t.offset) + } + return fmt.Sprintf("parse error: %v", t.err) +} + +type textParser struct { + s string // remaining input + done bool // whether the parsing is finished (success or error) + backed bool // whether back() was called + offset, line int + cur token +} + +func newTextParser(s string) *textParser { + p := new(textParser) + p.s = s + p.line = 1 + p.cur.line = 1 + return p +} + +func (p *textParser) errorf(format string, a ...interface{}) *ParseError { + pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} + p.cur.err = pe + p.done = true + return pe +} + +// Numbers and identifiers are matched by [-+._A-Za-z0-9] +func isIdentOrNumberChar(c byte) bool { + switch { + case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': + return true + case '0' <= c && c <= '9': + return true + } + switch c { + case '-', '+', '.', '_': + return true + } + return false +} + +func isWhitespace(c byte) bool { + switch c { + case ' ', '\t', '\n', '\r': + return true + } + return false +} + +func isQuote(c byte) bool { + switch c { + case '"', '\'': + return true + } + return false +} + +func (p *textParser) skipWhitespace() { + i := 0 + for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { + if p.s[i] == '#' { + // comment; skip to end of line or input + for i < len(p.s) && p.s[i] != '\n' { + i++ + } + if i == len(p.s) { + break + } + } + if p.s[i] == '\n' { + p.line++ + } + i++ + } + p.offset += i + p.s = p.s[i:len(p.s)] + if len(p.s) == 0 { + p.done = true + } +} + +func (p *textParser) advance() { + // Skip whitespace + p.skipWhitespace() + if p.done { + return + } + + // Start of non-whitespace + p.cur.err = nil + p.cur.offset, p.cur.line = p.offset, p.line + p.cur.unquoted = "" + switch p.s[0] { + case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': + // Single symbol + p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] + case '"', '\'': + // Quoted string + i := 1 + for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { + if p.s[i] == '\\' && i+1 < len(p.s) { + // skip escaped char + i++ + } + i++ + } + if i >= len(p.s) || p.s[i] != p.s[0] { + p.errorf("unmatched quote") + return + } + unq, err := unquoteC(p.s[1:i], rune(p.s[0])) + if err != nil { + p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) + return + } + p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] + p.cur.unquoted = unq + default: + i := 0 + for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { + i++ + } + if i == 0 { + p.errorf("unexpected byte %#x", p.s[0]) + return + } + p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] + } + p.offset += len(p.cur.value) +} + +var ( + errBadUTF8 = errors.New("proto: bad UTF-8") +) + +func unquoteC(s string, quote rune) (string, error) { + // This is based on C++'s tokenizer.cc. + // Despite its name, this is *not* parsing C syntax. + // For instance, "\0" is an invalid quoted string. + + // Avoid allocation in trivial cases. + simple := true + for _, r := range s { + if r == '\\' || r == quote { + simple = false + break + } + } + if simple { + return s, nil + } + + buf := make([]byte, 0, 3*len(s)/2) + for len(s) > 0 { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", errBadUTF8 + } + s = s[n:] + if r != '\\' { + if r < utf8.RuneSelf { + buf = append(buf, byte(r)) + } else { + buf = append(buf, string(r)...) + } + continue + } + + ch, tail, err := unescape(s) + if err != nil { + return "", err + } + buf = append(buf, ch...) + s = tail + } + return string(buf), nil +} + +func unescape(s string) (ch string, tail string, err error) { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", "", errBadUTF8 + } + s = s[n:] + switch r { + case 'a': + return "\a", s, nil + case 'b': + return "\b", s, nil + case 'f': + return "\f", s, nil + case 'n': + return "\n", s, nil + case 'r': + return "\r", s, nil + case 't': + return "\t", s, nil + case 'v': + return "\v", s, nil + case '?': + return "?", s, nil // trigraph workaround + case '\'', '"', '\\': + return string(r), s, nil + case '0', '1', '2', '3', '4', '5', '6', '7': + if len(s) < 2 { + return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) + } + ss := string(r) + s[:2] + s = s[2:] + i, err := strconv.ParseUint(ss, 8, 8) + if err != nil { + return "", "", fmt.Errorf(`\%s contains non-octal digits`, ss) + } + return string([]byte{byte(i)}), s, nil + case 'x', 'X', 'u', 'U': + var n int + switch r { + case 'x', 'X': + n = 2 + case 'u': + n = 4 + case 'U': + n = 8 + } + if len(s) < n { + return "", "", fmt.Errorf(`\%c requires %d following digits`, r, n) + } + ss := s[:n] + s = s[n:] + i, err := strconv.ParseUint(ss, 16, 64) + if err != nil { + return "", "", fmt.Errorf(`\%c%s contains non-hexadecimal digits`, r, ss) + } + if r == 'x' || r == 'X' { + return string([]byte{byte(i)}), s, nil + } + if i > utf8.MaxRune { + return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) + } + return string(i), s, nil + } + return "", "", fmt.Errorf(`unknown escape \%c`, r) +} + +// Back off the parser by one token. Can only be done between calls to next(). +// It makes the next advance() a no-op. +func (p *textParser) back() { p.backed = true } + +// Advances the parser and returns the new current token. +func (p *textParser) next() *token { + if p.backed || p.done { + p.backed = false + return &p.cur + } + p.advance() + if p.done { + p.cur.value = "" + } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) { + // Look for multiple quoted strings separated by whitespace, + // and concatenate them. + cat := p.cur + for { + p.skipWhitespace() + if p.done || !isQuote(p.s[0]) { + break + } + p.advance() + if p.cur.err != nil { + return &p.cur + } + cat.value += " " + p.cur.value + cat.unquoted += p.cur.unquoted + } + p.done = false // parser may have seen EOF, but we want to return cat + p.cur = cat + } + return &p.cur +} + +func (p *textParser) consumeToken(s string) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != s { + p.back() + return p.errorf("expected %q, found %q", s, tok.value) + } + return nil +} + +// Return a RequiredNotSetError indicating which required field was not set. +func (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError { + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < st.NumField(); i++ { + if !isNil(sv.Field(i)) { + continue + } + + props := sprops.Prop[i] + if props.Required { + return &RequiredNotSetError{fmt.Sprintf("%v.%v", st, props.OrigName)} + } + } + return &RequiredNotSetError{fmt.Sprintf("%v.", st)} // should not happen +} + +// Returns the index in the struct for the named field, as well as the parsed tag properties. +func structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) { + i, ok := sprops.decoderOrigNames[name] + if ok { + return i, sprops.Prop[i], true + } + return -1, nil, false +} + +// Consume a ':' from the input stream (if the next token is a colon), +// returning an error if a colon is needed but not present. +func (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ":" { + // Colon is optional when the field is a group or message. + needColon := true + switch props.Wire { + case "group": + needColon = false + case "bytes": + // A "bytes" field is either a message, a string, or a repeated field; + // those three become *T, *string and []T respectively, so we can check for + // this field being a pointer to a non-string. + if typ.Kind() == reflect.Ptr { + // *T or *string + if typ.Elem().Kind() == reflect.String { + break + } + } else if typ.Kind() == reflect.Slice { + // []T or []*T + if typ.Elem().Kind() != reflect.Ptr { + break + } + } else if typ.Kind() == reflect.String { + // The proto3 exception is for a string field, + // which requires a colon. + break + } + needColon = false + } + if needColon { + return p.errorf("expected ':', found %q", tok.value) + } + p.back() + } + return nil +} + +func (p *textParser) readStruct(sv reflect.Value, terminator string) error { + st := sv.Type() + sprops := GetProperties(st) + reqCount := sprops.reqCount + var reqFieldErr error + fieldSet := make(map[string]bool) + // A struct is a sequence of "name: value", terminated by one of + // '>' or '}', or the end of the input. A name may also be + // "[extension]" or "[type/url]". + // + // The whole struct can also be an expanded Any message, like: + // [type/url] < ... struct contents ... > + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + if tok.value == "[" { + // Looks like an extension or an Any. + // + // TODO: Check whether we need to handle + // namespace rooted names (e.g. ".something.Foo"). + extName, err := p.consumeExtName() + if err != nil { + return err + } + + if s := strings.LastIndex(extName, "/"); s >= 0 { + // If it contains a slash, it's an Any type URL. + messageName := extName[s+1:] + mt := MessageType(messageName) + if mt == nil { + return p.errorf("unrecognized message %q in google.protobuf.Any", messageName) + } + tok = p.next() + if tok.err != nil { + return tok.err + } + // consume an optional colon + if tok.value == ":" { + tok = p.next() + if tok.err != nil { + return tok.err + } + } + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + v := reflect.New(mt.Elem()) + if pe := p.readStruct(v.Elem(), terminator); pe != nil { + return pe + } + b, err := Marshal(v.Interface().(Message)) + if err != nil { + return p.errorf("failed to marshal message of type %q: %v", messageName, err) + } + if fieldSet["type_url"] { + return p.errorf(anyRepeatedlyUnpacked, "type_url") + } + if fieldSet["value"] { + return p.errorf(anyRepeatedlyUnpacked, "value") + } + sv.FieldByName("TypeUrl").SetString(extName) + sv.FieldByName("Value").SetBytes(b) + fieldSet["type_url"] = true + fieldSet["value"] = true + continue + } + + var desc *ExtensionDesc + // This could be faster, but it's functional. + // TODO: Do something smarter than a linear scan. + for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) { + if d.Name == extName { + desc = d + break + } + } + if desc == nil { + return p.errorf("unrecognized extension %q", extName) + } + + props := &Properties{} + props.Parse(desc.Tag) + + typ := reflect.TypeOf(desc.ExtensionType) + if err := p.checkForColon(props, typ); err != nil { + return err + } + + rep := desc.repeated() + + // Read the extension structure, and set it in + // the value we're constructing. + var ext reflect.Value + if !rep { + ext = reflect.New(typ).Elem() + } else { + ext = reflect.New(typ.Elem()).Elem() + } + if err := p.readAny(ext, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + ep := sv.Addr().Interface().(Message) + if !rep { + SetExtension(ep, desc, ext.Interface()) + } else { + old, err := GetExtension(ep, desc) + var sl reflect.Value + if err == nil { + sl = reflect.ValueOf(old) // existing slice + } else { + sl = reflect.MakeSlice(typ, 0, 1) + } + sl = reflect.Append(sl, ext) + SetExtension(ep, desc, sl.Interface()) + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + continue + } + + // This is a normal, non-extension field. + name := tok.value + var dst reflect.Value + fi, props, ok := structFieldByName(sprops, name) + if ok { + dst = sv.Field(fi) + } else if oop, ok := sprops.OneofTypes[name]; ok { + // It is a oneof. + props = oop.Prop + nv := reflect.New(oop.Type.Elem()) + dst = nv.Elem().Field(0) + field := sv.Field(oop.Field) + if !field.IsNil() { + return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name) + } + field.Set(nv) + } + if !dst.IsValid() { + return p.errorf("unknown field name %q in %v", name, st) + } + + if dst.Kind() == reflect.Map { + // Consume any colon. + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Construct the map if it doesn't already exist. + if dst.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } + key := reflect.New(dst.Type().Key()).Elem() + val := reflect.New(dst.Type().Elem()).Elem() + + // The map entry should be this sequence of tokens: + // < key : KEY value : VALUE > + // However, implementations may omit key or value, and technically + // we should support them in any order. See b/28924776 for a time + // this went wrong. + + tok := p.next() + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + switch tok.value { + case "key": + if err := p.consumeToken(":"); err != nil { + return err + } + if err := p.readAny(key, props.MapKeyProp); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + case "value": + if err := p.checkForColon(props.MapValProp, dst.Type().Elem()); err != nil { + return err + } + if err := p.readAny(val, props.MapValProp); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + default: + p.back() + return p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) + } + } + + dst.SetMapIndex(key, val) + continue + } + + // Check that it's not already set if it's not a repeated field. + if !props.Repeated && fieldSet[name] { + return p.errorf("non-repeated field %q was repeated", name) + } + + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Parse into the field. + fieldSet[name] = true + if err := p.readAny(dst, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + if props.Required { + reqCount-- + } + + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + + } + + if reqCount > 0 { + return p.missingRequiredFieldError(sv) + } + return reqFieldErr +} + +// consumeExtName consumes extension name or expanded Any type URL and the +// following ']'. It returns the name or URL consumed. +func (p *textParser) consumeExtName() (string, error) { + tok := p.next() + if tok.err != nil { + return "", tok.err + } + + // If extension name or type url is quoted, it's a single token. + if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { + name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) + if err != nil { + return "", err + } + return name, p.consumeToken("]") + } + + // Consume everything up to "]" + var parts []string + for tok.value != "]" { + parts = append(parts, tok.value) + tok = p.next() + if tok.err != nil { + return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) + } + if p.done && tok.value != "]" { + return "", p.errorf("unclosed type_url or extension name") + } + } + return strings.Join(parts, ""), nil +} + +// consumeOptionalSeparator consumes an optional semicolon or comma. +// It is used in readStruct to provide backward compatibility. +func (p *textParser) consumeOptionalSeparator() error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ";" && tok.value != "," { + p.back() + } + return nil +} + +func (p *textParser) readAny(v reflect.Value, props *Properties) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == "" { + return p.errorf("unexpected EOF") + } + if len(props.CustomType) > 0 { + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + tc := reflect.TypeOf(new(Marshaler)) + ok := t.Elem().Implements(tc.Elem()) + if ok { + fv := v + flen := fv.Len() + if flen == fv.Cap() { + nav := reflect.MakeSlice(v.Type(), flen, 2*flen+1) + reflect.Copy(nav, fv) + fv.Set(nav) + } + fv.SetLen(flen + 1) + + // Read one. + p.back() + return p.readAny(fv.Index(flen), props) + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + custom := reflect.New(props.ctype.Elem()).Interface().(Unmarshaler) + err := custom.Unmarshal([]byte(tok.unquoted)) + if err != nil { + return p.errorf("%v %v: %v", err, v.Type(), tok.value) + } + v.Set(reflect.ValueOf(custom)) + } else { + custom := reflect.New(reflect.TypeOf(v.Interface())).Interface().(Unmarshaler) + err := custom.Unmarshal([]byte(tok.unquoted)) + if err != nil { + return p.errorf("%v %v: %v", err, v.Type(), tok.value) + } + v.Set(reflect.Indirect(reflect.ValueOf(custom))) + } + return nil + } + if props.StdTime { + fv := v + p.back() + props.StdTime = false + tproto := ×tamp{} + err := p.readAny(reflect.ValueOf(tproto).Elem(), props) + props.StdTime = true + if err != nil { + return err + } + tim, err := timestampFromProto(tproto) + if err != nil { + return err + } + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + if t.Elem().Kind() == reflect.Ptr { + ts := fv.Interface().([]*time.Time) + ts = append(ts, &tim) + fv.Set(reflect.ValueOf(ts)) + return nil + } else { + ts := fv.Interface().([]time.Time) + ts = append(ts, tim) + fv.Set(reflect.ValueOf(ts)) + return nil + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + v.Set(reflect.ValueOf(&tim)) + } else { + v.Set(reflect.Indirect(reflect.ValueOf(&tim))) + } + return nil + } + if props.StdDuration { + fv := v + p.back() + props.StdDuration = false + dproto := &duration{} + err := p.readAny(reflect.ValueOf(dproto).Elem(), props) + props.StdDuration = true + if err != nil { + return err + } + dur, err := durationFromProto(dproto) + if err != nil { + return err + } + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + if t.Elem().Kind() == reflect.Ptr { + ds := fv.Interface().([]*time.Duration) + ds = append(ds, &dur) + fv.Set(reflect.ValueOf(ds)) + return nil + } else { + ds := fv.Interface().([]time.Duration) + ds = append(ds, dur) + fv.Set(reflect.ValueOf(ds)) + return nil + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + v.Set(reflect.ValueOf(&dur)) + } else { + v.Set(reflect.Indirect(reflect.ValueOf(&dur))) + } + return nil + } + switch fv := v; fv.Kind() { + case reflect.Slice: + at := v.Type() + if at.Elem().Kind() == reflect.Uint8 { + // Special case for []byte + if tok.value[0] != '"' && tok.value[0] != '\'' { + // Deliberately written out here, as the error after + // this switch statement would write "invalid []byte: ...", + // which is not as user-friendly. + return p.errorf("invalid string: %v", tok.value) + } + bytes := []byte(tok.unquoted) + fv.Set(reflect.ValueOf(bytes)) + return nil + } + // Repeated field. + if tok.value == "[" { + // Repeated field with list notation, like [1,2,3]. + for { + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + err := p.readAny(fv.Index(fv.Len()-1), props) + if err != nil { + return err + } + ntok := p.next() + if ntok.err != nil { + return ntok.err + } + if ntok.value == "]" { + break + } + if ntok.value != "," { + return p.errorf("Expected ']' or ',' found %q", ntok.value) + } + } + return nil + } + // One value of the repeated field. + p.back() + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + return p.readAny(fv.Index(fv.Len()-1), props) + case reflect.Bool: + // true/1/t/True or false/f/0/False. + switch tok.value { + case "true", "1", "t", "True": + fv.SetBool(true) + return nil + case "false", "0", "f", "False": + fv.SetBool(false) + return nil + } + case reflect.Float32, reflect.Float64: + v := tok.value + // Ignore 'f' for compatibility with output generated by C++, but don't + // remove 'f' when the value is "-inf" or "inf". + if strings.HasSuffix(v, "f") && tok.value != "-inf" && tok.value != "inf" { + v = v[:len(v)-1] + } + if f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil { + fv.SetFloat(f) + return nil + } + case reflect.Int8: + if x, err := strconv.ParseInt(tok.value, 0, 8); err == nil { + fv.SetInt(x) + return nil + } + case reflect.Int16: + if x, err := strconv.ParseInt(tok.value, 0, 16); err == nil { + fv.SetInt(x) + return nil + } + case reflect.Int32: + if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { + fv.SetInt(x) + return nil + } + + if len(props.Enum) == 0 { + break + } + m, ok := enumValueMaps[props.Enum] + if !ok { + break + } + x, ok := m[tok.value] + if !ok { + break + } + fv.SetInt(int64(x)) + return nil + case reflect.Int64: + if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { + fv.SetInt(x) + return nil + } + + case reflect.Ptr: + // A basic field (indirected through pointer), or a repeated message/group + p.back() + fv.Set(reflect.New(fv.Type().Elem())) + return p.readAny(fv.Elem(), props) + case reflect.String: + if tok.value[0] == '"' || tok.value[0] == '\'' { + fv.SetString(tok.unquoted) + return nil + } + case reflect.Struct: + var terminator string + switch tok.value { + case "{": + terminator = "}" + case "<": + terminator = ">" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + // TODO: Handle nested messages which implement encoding.TextUnmarshaler. + return p.readStruct(fv, terminator) + case reflect.Uint8: + if x, err := strconv.ParseUint(tok.value, 0, 8); err == nil { + fv.SetUint(x) + return nil + } + case reflect.Uint16: + if x, err := strconv.ParseUint(tok.value, 0, 16); err == nil { + fv.SetUint(x) + return nil + } + case reflect.Uint32: + if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { + fv.SetUint(uint64(x)) + return nil + } + case reflect.Uint64: + if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { + fv.SetUint(x) + return nil + } + } + return p.errorf("invalid %v: %v", v.Type(), tok.value) +} + +// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb +// before starting to unmarshal, so any existing data in pb is always removed. +// If a required field is not set and no other error occurs, +// UnmarshalText returns *RequiredNotSetError. +func UnmarshalText(s string, pb Message) error { + if um, ok := pb.(encoding.TextUnmarshaler); ok { + return um.UnmarshalText([]byte(s)) + } + pb.Reset() + v := reflect.ValueOf(pb) + return newTextParser(s).readStruct(v.Elem(), "") +} diff --git a/vendor/github.com/gogo/protobuf/proto/timestamp.go b/vendor/github.com/gogo/protobuf/proto/timestamp.go new file mode 100644 index 00000000..9324f654 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/timestamp.go @@ -0,0 +1,113 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// This file implements operations on google.protobuf.Timestamp. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Seconds field of the earliest valid Timestamp. + // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + minValidSeconds = -62135596800 + // Seconds field just after the latest valid Timestamp. + // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + maxValidSeconds = 253402300800 +) + +// validateTimestamp determines whether a Timestamp is valid. +// A valid timestamp represents a time in the range +// [0001-01-01, 10000-01-01) and has a Nanos field +// in the range [0, 1e9). +// +// If the Timestamp is valid, validateTimestamp returns nil. +// Otherwise, it returns an error that describes +// the problem. +// +// Every valid Timestamp can be represented by a time.Time, but the converse is not true. +func validateTimestamp(ts *timestamp) error { + if ts == nil { + return errors.New("timestamp: nil Timestamp") + } + if ts.Seconds < minValidSeconds { + return fmt.Errorf("timestamp: %#v before 0001-01-01", ts) + } + if ts.Seconds >= maxValidSeconds { + return fmt.Errorf("timestamp: %#v after 10000-01-01", ts) + } + if ts.Nanos < 0 || ts.Nanos >= 1e9 { + return fmt.Errorf("timestamp: %#v: nanos not in range [0, 1e9)", ts) + } + return nil +} + +// TimestampFromProto converts a google.protobuf.Timestamp proto to a time.Time. +// It returns an error if the argument is invalid. +// +// Unlike most Go functions, if Timestamp returns an error, the first return value +// is not the zero time.Time. Instead, it is the value obtained from the +// time.Unix function when passed the contents of the Timestamp, in the UTC +// locale. This may or may not be a meaningful time; many invalid Timestamps +// do map to valid time.Times. +// +// A nil Timestamp returns an error. The first return value in that case is +// undefined. +func timestampFromProto(ts *timestamp) (time.Time, error) { + // Don't return the zero value on error, because corresponds to a valid + // timestamp. Instead return whatever time.Unix gives us. + var t time.Time + if ts == nil { + t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp + } else { + t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() + } + return t, validateTimestamp(ts) +} + +// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. +// It returns an error if the resulting Timestamp is invalid. +func timestampProto(t time.Time) (*timestamp, error) { + seconds := t.Unix() + nanos := int32(t.Sub(time.Unix(seconds, 0))) + ts := ×tamp{ + Seconds: seconds, + Nanos: nanos, + } + if err := validateTimestamp(ts); err != nil { + return nil, err + } + return ts, nil +} diff --git a/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go b/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go new file mode 100644 index 00000000..38439fa9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go @@ -0,0 +1,49 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "reflect" + "time" +) + +var timeType = reflect.TypeOf((*time.Time)(nil)).Elem() + +type timestamp struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *timestamp) Reset() { *m = timestamp{} } +func (*timestamp) ProtoMessage() {} +func (*timestamp) String() string { return "timestamp" } + +func init() { + RegisterType((*timestamp)(nil), "gogo.protobuf.proto.timestamp") +} diff --git a/vendor/github.com/gogo/protobuf/proto/wrappers.go b/vendor/github.com/gogo/protobuf/proto/wrappers.go new file mode 100644 index 00000000..b175d1b6 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/wrappers.go @@ -0,0 +1,1888 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "io" + "reflect" +) + +func makeStdDoubleValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*float64) + v := &float64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdDoubleValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64) + v := &float64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdDoubleValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float64) + v := &float64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float64) + v := &float64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdDoubleValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdDoubleValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdDoubleValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdDoubleValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdDoubleValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdFloatValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*float32) + v := &float32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdFloatValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32) + v := &float32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdFloatValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float32) + v := &float32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float32) + v := &float32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdFloatValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdFloatValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdFloatValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdFloatValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdFloatValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*int64) + v := &int64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64) + v := &int64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int64) + v := &int64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int64) + v := &int64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*uint64) + v := &uint64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64) + v := &uint64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint64) + v := &uint64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint64) + v := &uint64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdUInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdUInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*int32) + v := &int32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32) + v := &int32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int32) + v := &int32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int32) + v := &int32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*uint32) + v := &uint32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32) + v := &uint32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint32) + v := &uint32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint32) + v := &uint32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdUInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdUInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBoolValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*bool) + v := &boolValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBoolValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool) + v := &boolValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBoolValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(bool) + v := &boolValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(bool) + v := &boolValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBoolValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBoolValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdBoolValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdBoolValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBoolValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdStringValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*string) + v := &stringValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdStringValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string) + v := &stringValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdStringValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(string) + v := &stringValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(string) + v := &stringValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdStringValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdStringValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdStringValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdStringValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdStringValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBytesValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*[]byte) + v := &bytesValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBytesValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte) + v := &bytesValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBytesValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().([]byte) + v := &bytesValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().([]byte) + v := &bytesValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBytesValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBytesValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdBytesValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdBytesValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBytesValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go b/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go new file mode 100644 index 00000000..c1cf7bf8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go @@ -0,0 +1,113 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +type float64Value struct { + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *float64Value) Reset() { *m = float64Value{} } +func (*float64Value) ProtoMessage() {} +func (*float64Value) String() string { return "float64" } + +type float32Value struct { + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *float32Value) Reset() { *m = float32Value{} } +func (*float32Value) ProtoMessage() {} +func (*float32Value) String() string { return "float32" } + +type int64Value struct { + Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *int64Value) Reset() { *m = int64Value{} } +func (*int64Value) ProtoMessage() {} +func (*int64Value) String() string { return "int64" } + +type uint64Value struct { + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *uint64Value) Reset() { *m = uint64Value{} } +func (*uint64Value) ProtoMessage() {} +func (*uint64Value) String() string { return "uint64" } + +type int32Value struct { + Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *int32Value) Reset() { *m = int32Value{} } +func (*int32Value) ProtoMessage() {} +func (*int32Value) String() string { return "int32" } + +type uint32Value struct { + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *uint32Value) Reset() { *m = uint32Value{} } +func (*uint32Value) ProtoMessage() {} +func (*uint32Value) String() string { return "uint32" } + +type boolValue struct { + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *boolValue) Reset() { *m = boolValue{} } +func (*boolValue) ProtoMessage() {} +func (*boolValue) String() string { return "bool" } + +type stringValue struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *stringValue) Reset() { *m = stringValue{} } +func (*stringValue) ProtoMessage() {} +func (*stringValue) String() string { return "string" } + +type bytesValue struct { + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *bytesValue) Reset() { *m = bytesValue{} } +func (*bytesValue) ProtoMessage() {} +func (*bytesValue) String() string { return "[]byte" } + +func init() { + RegisterType((*float64Value)(nil), "gogo.protobuf.proto.DoubleValue") + RegisterType((*float32Value)(nil), "gogo.protobuf.proto.FloatValue") + RegisterType((*int64Value)(nil), "gogo.protobuf.proto.Int64Value") + RegisterType((*uint64Value)(nil), "gogo.protobuf.proto.UInt64Value") + RegisterType((*int32Value)(nil), "gogo.protobuf.proto.Int32Value") + RegisterType((*uint32Value)(nil), "gogo.protobuf.proto.UInt32Value") + RegisterType((*boolValue)(nil), "gogo.protobuf.proto.BoolValue") + RegisterType((*stringValue)(nil), "gogo.protobuf.proto.StringValue") + RegisterType((*bytesValue)(nil), "gogo.protobuf.proto.BytesValue") +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile new file mode 100644 index 00000000..3496dc99 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile @@ -0,0 +1,36 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + go install github.com/gogo/protobuf/protoc-gen-gostring + protoc --gogo_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto + protoc --gostring_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go new file mode 100644 index 00000000..a85bf198 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go @@ -0,0 +1,118 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package descriptor provides functions for obtaining protocol buffer +// descriptors for generated Go types. +// +// These functions cannot go in package proto because they depend on the +// generated protobuf descriptor messages, which themselves depend on proto. +package descriptor + +import ( + "bytes" + "compress/gzip" + "fmt" + "io/ioutil" + + "github.com/gogo/protobuf/proto" +) + +// extractFile extracts a FileDescriptorProto from a gzip'd buffer. +func extractFile(gz []byte) (*FileDescriptorProto, error) { + r, err := gzip.NewReader(bytes.NewReader(gz)) + if err != nil { + return nil, fmt.Errorf("failed to open gzip reader: %v", err) + } + defer r.Close() + + b, err := ioutil.ReadAll(r) + if err != nil { + return nil, fmt.Errorf("failed to uncompress descriptor: %v", err) + } + + fd := new(FileDescriptorProto) + if err := proto.Unmarshal(b, fd); err != nil { + return nil, fmt.Errorf("malformed FileDescriptorProto: %v", err) + } + + return fd, nil +} + +// Message is a proto.Message with a method to return its descriptor. +// +// Message types generated by the protocol compiler always satisfy +// the Message interface. +type Message interface { + proto.Message + Descriptor() ([]byte, []int) +} + +// ForMessage returns a FileDescriptorProto and a DescriptorProto from within it +// describing the given message. +func ForMessage(msg Message) (fd *FileDescriptorProto, md *DescriptorProto) { + gz, path := msg.Descriptor() + fd, err := extractFile(gz) + if err != nil { + panic(fmt.Sprintf("invalid FileDescriptorProto for %T: %v", msg, err)) + } + + md = fd.MessageType[path[0]] + for _, i := range path[1:] { + md = md.NestedType[i] + } + return fd, md +} + +// Is this field a scalar numeric type? +func (field *FieldDescriptorProto) IsScalar() bool { + if field.Type == nil { + return false + } + switch *field.Type { + case FieldDescriptorProto_TYPE_DOUBLE, + FieldDescriptorProto_TYPE_FLOAT, + FieldDescriptorProto_TYPE_INT64, + FieldDescriptorProto_TYPE_UINT64, + FieldDescriptorProto_TYPE_INT32, + FieldDescriptorProto_TYPE_FIXED64, + FieldDescriptorProto_TYPE_FIXED32, + FieldDescriptorProto_TYPE_BOOL, + FieldDescriptorProto_TYPE_UINT32, + FieldDescriptorProto_TYPE_ENUM, + FieldDescriptorProto_TYPE_SFIXED32, + FieldDescriptorProto_TYPE_SFIXED64, + FieldDescriptorProto_TYPE_SINT32, + FieldDescriptorProto_TYPE_SINT64: + return true + default: + return false + } +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go new file mode 100644 index 00000000..cacfa392 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go @@ -0,0 +1,2865 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: descriptor.proto + +package descriptor + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type FieldDescriptorProto_Type int32 + +const ( + // 0 is reserved for errors. + // Order is weird for historical reasons. + FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 + FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 + FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 + FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 + FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 + FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 + FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 + FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 + // New in version 2. + FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 + FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 + FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 + FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 + FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 + FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 + FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 +) + +var FieldDescriptorProto_Type_name = map[int32]string{ + 1: "TYPE_DOUBLE", + 2: "TYPE_FLOAT", + 3: "TYPE_INT64", + 4: "TYPE_UINT64", + 5: "TYPE_INT32", + 6: "TYPE_FIXED64", + 7: "TYPE_FIXED32", + 8: "TYPE_BOOL", + 9: "TYPE_STRING", + 10: "TYPE_GROUP", + 11: "TYPE_MESSAGE", + 12: "TYPE_BYTES", + 13: "TYPE_UINT32", + 14: "TYPE_ENUM", + 15: "TYPE_SFIXED32", + 16: "TYPE_SFIXED64", + 17: "TYPE_SINT32", + 18: "TYPE_SINT64", +} + +var FieldDescriptorProto_Type_value = map[string]int32{ + "TYPE_DOUBLE": 1, + "TYPE_FLOAT": 2, + "TYPE_INT64": 3, + "TYPE_UINT64": 4, + "TYPE_INT32": 5, + "TYPE_FIXED64": 6, + "TYPE_FIXED32": 7, + "TYPE_BOOL": 8, + "TYPE_STRING": 9, + "TYPE_GROUP": 10, + "TYPE_MESSAGE": 11, + "TYPE_BYTES": 12, + "TYPE_UINT32": 13, + "TYPE_ENUM": 14, + "TYPE_SFIXED32": 15, + "TYPE_SFIXED64": 16, + "TYPE_SINT32": 17, + "TYPE_SINT64": 18, +} + +func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { + p := new(FieldDescriptorProto_Type) + *p = x + return p +} + +func (x FieldDescriptorProto_Type) String() string { + return proto.EnumName(FieldDescriptorProto_Type_name, int32(x)) +} + +func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type") + if err != nil { + return err + } + *x = FieldDescriptorProto_Type(value) + return nil +} + +func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{4, 0} +} + +type FieldDescriptorProto_Label int32 + +const ( + // 0 is reserved for errors + FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 + FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 + FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 +) + +var FieldDescriptorProto_Label_name = map[int32]string{ + 1: "LABEL_OPTIONAL", + 2: "LABEL_REQUIRED", + 3: "LABEL_REPEATED", +} + +var FieldDescriptorProto_Label_value = map[string]int32{ + "LABEL_OPTIONAL": 1, + "LABEL_REQUIRED": 2, + "LABEL_REPEATED": 3, +} + +func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { + p := new(FieldDescriptorProto_Label) + *p = x + return p +} + +func (x FieldDescriptorProto_Label) String() string { + return proto.EnumName(FieldDescriptorProto_Label_name, int32(x)) +} + +func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label") + if err != nil { + return err + } + *x = FieldDescriptorProto_Label(value) + return nil +} + +func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{4, 1} +} + +// Generated classes can be optimized for speed or code size. +type FileOptions_OptimizeMode int32 + +const ( + FileOptions_SPEED FileOptions_OptimizeMode = 1 + // etc. + FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 + FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 +) + +var FileOptions_OptimizeMode_name = map[int32]string{ + 1: "SPEED", + 2: "CODE_SIZE", + 3: "LITE_RUNTIME", +} + +var FileOptions_OptimizeMode_value = map[string]int32{ + "SPEED": 1, + "CODE_SIZE": 2, + "LITE_RUNTIME": 3, +} + +func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { + p := new(FileOptions_OptimizeMode) + *p = x + return p +} + +func (x FileOptions_OptimizeMode) String() string { + return proto.EnumName(FileOptions_OptimizeMode_name, int32(x)) +} + +func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode") + if err != nil { + return err + } + *x = FileOptions_OptimizeMode(value) + return nil +} + +func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{10, 0} +} + +type FieldOptions_CType int32 + +const ( + // Default mode. + FieldOptions_STRING FieldOptions_CType = 0 + FieldOptions_CORD FieldOptions_CType = 1 + FieldOptions_STRING_PIECE FieldOptions_CType = 2 +) + +var FieldOptions_CType_name = map[int32]string{ + 0: "STRING", + 1: "CORD", + 2: "STRING_PIECE", +} + +var FieldOptions_CType_value = map[string]int32{ + "STRING": 0, + "CORD": 1, + "STRING_PIECE": 2, +} + +func (x FieldOptions_CType) Enum() *FieldOptions_CType { + p := new(FieldOptions_CType) + *p = x + return p +} + +func (x FieldOptions_CType) String() string { + return proto.EnumName(FieldOptions_CType_name, int32(x)) +} + +func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType") + if err != nil { + return err + } + *x = FieldOptions_CType(value) + return nil +} + +func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{12, 0} +} + +type FieldOptions_JSType int32 + +const ( + // Use the default type. + FieldOptions_JS_NORMAL FieldOptions_JSType = 0 + // Use JavaScript strings. + FieldOptions_JS_STRING FieldOptions_JSType = 1 + // Use JavaScript numbers. + FieldOptions_JS_NUMBER FieldOptions_JSType = 2 +) + +var FieldOptions_JSType_name = map[int32]string{ + 0: "JS_NORMAL", + 1: "JS_STRING", + 2: "JS_NUMBER", +} + +var FieldOptions_JSType_value = map[string]int32{ + "JS_NORMAL": 0, + "JS_STRING": 1, + "JS_NUMBER": 2, +} + +func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { + p := new(FieldOptions_JSType) + *p = x + return p +} + +func (x FieldOptions_JSType) String() string { + return proto.EnumName(FieldOptions_JSType_name, int32(x)) +} + +func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType") + if err != nil { + return err + } + *x = FieldOptions_JSType(value) + return nil +} + +func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{12, 1} +} + +// Is this method side-effect-free (or safe in HTTP parlance), or idempotent, +// or neither? HTTP based RPC implementation may choose GET verb for safe +// methods, and PUT verb for idempotent methods instead of the default POST. +type MethodOptions_IdempotencyLevel int32 + +const ( + MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 + MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 + MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 +) + +var MethodOptions_IdempotencyLevel_name = map[int32]string{ + 0: "IDEMPOTENCY_UNKNOWN", + 1: "NO_SIDE_EFFECTS", + 2: "IDEMPOTENT", +} + +var MethodOptions_IdempotencyLevel_value = map[string]int32{ + "IDEMPOTENCY_UNKNOWN": 0, + "NO_SIDE_EFFECTS": 1, + "IDEMPOTENT": 2, +} + +func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { + p := new(MethodOptions_IdempotencyLevel) + *p = x + return p +} + +func (x MethodOptions_IdempotencyLevel) String() string { + return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x)) +} + +func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel") + if err != nil { + return err + } + *x = MethodOptions_IdempotencyLevel(value) + return nil +} + +func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{17, 0} +} + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +type FileDescriptorSet struct { + File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} } +func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) } +func (*FileDescriptorSet) ProtoMessage() {} +func (*FileDescriptorSet) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{0} +} +func (m *FileDescriptorSet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FileDescriptorSet.Unmarshal(m, b) +} +func (m *FileDescriptorSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FileDescriptorSet.Marshal(b, m, deterministic) +} +func (m *FileDescriptorSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileDescriptorSet.Merge(m, src) +} +func (m *FileDescriptorSet) XXX_Size() int { + return xxx_messageInfo_FileDescriptorSet.Size(m) +} +func (m *FileDescriptorSet) XXX_DiscardUnknown() { + xxx_messageInfo_FileDescriptorSet.DiscardUnknown(m) +} + +var xxx_messageInfo_FileDescriptorSet proto.InternalMessageInfo + +func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto { + if m != nil { + return m.File + } + return nil +} + +// Describes a complete .proto file. +type FileDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` + // Names of files imported by this file. + Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` + // Indexes of the public imported files in the dependency list above. + PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` + // All top-level definitions in this file. + MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` + Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} } +func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*FileDescriptorProto) ProtoMessage() {} +func (*FileDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{1} +} +func (m *FileDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FileDescriptorProto.Unmarshal(m, b) +} +func (m *FileDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FileDescriptorProto.Marshal(b, m, deterministic) +} +func (m *FileDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileDescriptorProto.Merge(m, src) +} +func (m *FileDescriptorProto) XXX_Size() int { + return xxx_messageInfo_FileDescriptorProto.Size(m) +} +func (m *FileDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_FileDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_FileDescriptorProto proto.InternalMessageInfo + +func (m *FileDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FileDescriptorProto) GetPackage() string { + if m != nil && m.Package != nil { + return *m.Package + } + return "" +} + +func (m *FileDescriptorProto) GetDependency() []string { + if m != nil { + return m.Dependency + } + return nil +} + +func (m *FileDescriptorProto) GetPublicDependency() []int32 { + if m != nil { + return m.PublicDependency + } + return nil +} + +func (m *FileDescriptorProto) GetWeakDependency() []int32 { + if m != nil { + return m.WeakDependency + } + return nil +} + +func (m *FileDescriptorProto) GetMessageType() []*DescriptorProto { + if m != nil { + return m.MessageType + } + return nil +} + +func (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { + if m != nil { + return m.EnumType + } + return nil +} + +func (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto { + if m != nil { + return m.Service + } + return nil +} + +func (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { + if m != nil { + return m.Extension + } + return nil +} + +func (m *FileDescriptorProto) GetOptions() *FileOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { + if m != nil { + return m.SourceCodeInfo + } + return nil +} + +func (m *FileDescriptorProto) GetSyntax() string { + if m != nil && m.Syntax != nil { + return *m.Syntax + } + return "" +} + +// Describes a message type. +type DescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` + NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` + OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` + Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` + ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DescriptorProto) Reset() { *m = DescriptorProto{} } +func (m *DescriptorProto) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto) ProtoMessage() {} +func (*DescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{2} +} +func (m *DescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DescriptorProto.Unmarshal(m, b) +} +func (m *DescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DescriptorProto.Marshal(b, m, deterministic) +} +func (m *DescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescriptorProto.Merge(m, src) +} +func (m *DescriptorProto) XXX_Size() int { + return xxx_messageInfo_DescriptorProto.Size(m) +} +func (m *DescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_DescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_DescriptorProto proto.InternalMessageInfo + +func (m *DescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *DescriptorProto) GetField() []*FieldDescriptorProto { + if m != nil { + return m.Field + } + return nil +} + +func (m *DescriptorProto) GetExtension() []*FieldDescriptorProto { + if m != nil { + return m.Extension + } + return nil +} + +func (m *DescriptorProto) GetNestedType() []*DescriptorProto { + if m != nil { + return m.NestedType + } + return nil +} + +func (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto { + if m != nil { + return m.EnumType + } + return nil +} + +func (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { + if m != nil { + return m.ExtensionRange + } + return nil +} + +func (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { + if m != nil { + return m.OneofDecl + } + return nil +} + +func (m *DescriptorProto) GetOptions() *MessageOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { + if m != nil { + return m.ReservedRange + } + return nil +} + +func (m *DescriptorProto) GetReservedName() []string { + if m != nil { + return m.ReservedName + } + return nil +} + +type DescriptorProto_ExtensionRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} } +func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto_ExtensionRange) ProtoMessage() {} +func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{2, 0} +} +func (m *DescriptorProto_ExtensionRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DescriptorProto_ExtensionRange.Unmarshal(m, b) +} +func (m *DescriptorProto_ExtensionRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DescriptorProto_ExtensionRange.Marshal(b, m, deterministic) +} +func (m *DescriptorProto_ExtensionRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescriptorProto_ExtensionRange.Merge(m, src) +} +func (m *DescriptorProto_ExtensionRange) XXX_Size() int { + return xxx_messageInfo_DescriptorProto_ExtensionRange.Size(m) +} +func (m *DescriptorProto_ExtensionRange) XXX_DiscardUnknown() { + xxx_messageInfo_DescriptorProto_ExtensionRange.DiscardUnknown(m) +} + +var xxx_messageInfo_DescriptorProto_ExtensionRange proto.InternalMessageInfo + +func (m *DescriptorProto_ExtensionRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *DescriptorProto_ExtensionRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +func (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { + if m != nil { + return m.Options + } + return nil +} + +// Range of reserved tag numbers. Reserved tag numbers may not be used by +// fields or extension ranges in the same message. Reserved ranges may +// not overlap. +type DescriptorProto_ReservedRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_ReservedRange{} } +func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto_ReservedRange) ProtoMessage() {} +func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{2, 1} +} +func (m *DescriptorProto_ReservedRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DescriptorProto_ReservedRange.Unmarshal(m, b) +} +func (m *DescriptorProto_ReservedRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DescriptorProto_ReservedRange.Marshal(b, m, deterministic) +} +func (m *DescriptorProto_ReservedRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_DescriptorProto_ReservedRange.Merge(m, src) +} +func (m *DescriptorProto_ReservedRange) XXX_Size() int { + return xxx_messageInfo_DescriptorProto_ReservedRange.Size(m) +} +func (m *DescriptorProto_ReservedRange) XXX_DiscardUnknown() { + xxx_messageInfo_DescriptorProto_ReservedRange.DiscardUnknown(m) +} + +var xxx_messageInfo_DescriptorProto_ReservedRange proto.InternalMessageInfo + +func (m *DescriptorProto_ReservedRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *DescriptorProto_ReservedRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +type ExtensionRangeOptions struct { + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} } +func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) } +func (*ExtensionRangeOptions) ProtoMessage() {} +func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{3} +} + +var extRange_ExtensionRangeOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ExtensionRangeOptions +} + +func (m *ExtensionRangeOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExtensionRangeOptions.Unmarshal(m, b) +} +func (m *ExtensionRangeOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExtensionRangeOptions.Marshal(b, m, deterministic) +} +func (m *ExtensionRangeOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtensionRangeOptions.Merge(m, src) +} +func (m *ExtensionRangeOptions) XXX_Size() int { + return xxx_messageInfo_ExtensionRangeOptions.Size(m) +} +func (m *ExtensionRangeOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ExtensionRangeOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtensionRangeOptions proto.InternalMessageInfo + +func (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +// Describes a field within a message. +type FieldDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` + Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` + Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} } +func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*FieldDescriptorProto) ProtoMessage() {} +func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{4} +} +func (m *FieldDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldDescriptorProto.Unmarshal(m, b) +} +func (m *FieldDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldDescriptorProto.Marshal(b, m, deterministic) +} +func (m *FieldDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldDescriptorProto.Merge(m, src) +} +func (m *FieldDescriptorProto) XXX_Size() int { + return xxx_messageInfo_FieldDescriptorProto.Size(m) +} +func (m *FieldDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_FieldDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldDescriptorProto proto.InternalMessageInfo + +func (m *FieldDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FieldDescriptorProto) GetNumber() int32 { + if m != nil && m.Number != nil { + return *m.Number + } + return 0 +} + +func (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { + if m != nil && m.Label != nil { + return *m.Label + } + return FieldDescriptorProto_LABEL_OPTIONAL +} + +func (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { + if m != nil && m.Type != nil { + return *m.Type + } + return FieldDescriptorProto_TYPE_DOUBLE +} + +func (m *FieldDescriptorProto) GetTypeName() string { + if m != nil && m.TypeName != nil { + return *m.TypeName + } + return "" +} + +func (m *FieldDescriptorProto) GetExtendee() string { + if m != nil && m.Extendee != nil { + return *m.Extendee + } + return "" +} + +func (m *FieldDescriptorProto) GetDefaultValue() string { + if m != nil && m.DefaultValue != nil { + return *m.DefaultValue + } + return "" +} + +func (m *FieldDescriptorProto) GetOneofIndex() int32 { + if m != nil && m.OneofIndex != nil { + return *m.OneofIndex + } + return 0 +} + +func (m *FieldDescriptorProto) GetJsonName() string { + if m != nil && m.JsonName != nil { + return *m.JsonName + } + return "" +} + +func (m *FieldDescriptorProto) GetOptions() *FieldOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a oneof. +type OneofDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } +func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*OneofDescriptorProto) ProtoMessage() {} +func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{5} +} +func (m *OneofDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OneofDescriptorProto.Unmarshal(m, b) +} +func (m *OneofDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OneofDescriptorProto.Marshal(b, m, deterministic) +} +func (m *OneofDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_OneofDescriptorProto.Merge(m, src) +} +func (m *OneofDescriptorProto) XXX_Size() int { + return xxx_messageInfo_OneofDescriptorProto.Size(m) +} +func (m *OneofDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_OneofDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_OneofDescriptorProto proto.InternalMessageInfo + +func (m *OneofDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *OneofDescriptorProto) GetOptions() *OneofOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes an enum type. +type EnumDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + ReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:"bytes,4,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} } +func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*EnumDescriptorProto) ProtoMessage() {} +func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{6} +} +func (m *EnumDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumDescriptorProto.Unmarshal(m, b) +} +func (m *EnumDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumDescriptorProto.Marshal(b, m, deterministic) +} +func (m *EnumDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumDescriptorProto.Merge(m, src) +} +func (m *EnumDescriptorProto) XXX_Size() int { + return xxx_messageInfo_EnumDescriptorProto.Size(m) +} +func (m *EnumDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_EnumDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumDescriptorProto proto.InternalMessageInfo + +func (m *EnumDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { + if m != nil { + return m.Value + } + return nil +} + +func (m *EnumDescriptorProto) GetOptions() *EnumOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange { + if m != nil { + return m.ReservedRange + } + return nil +} + +func (m *EnumDescriptorProto) GetReservedName() []string { + if m != nil { + return m.ReservedName + } + return nil +} + +// Range of reserved numeric values. Reserved values may not be used by +// entries in the same enum. Reserved ranges may not overlap. +// +// Note that this is distinct from DescriptorProto.ReservedRange in that it +// is inclusive such that it can appropriately represent the entire int32 +// domain. +type EnumDescriptorProto_EnumReservedRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumDescriptorProto_EnumReservedRange) Reset() { *m = EnumDescriptorProto_EnumReservedRange{} } +func (m *EnumDescriptorProto_EnumReservedRange) String() string { return proto.CompactTextString(m) } +func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} +func (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{6, 0} +} +func (m *EnumDescriptorProto_EnumReservedRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Unmarshal(m, b) +} +func (m *EnumDescriptorProto_EnumReservedRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Marshal(b, m, deterministic) +} +func (m *EnumDescriptorProto_EnumReservedRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Merge(m, src) +} +func (m *EnumDescriptorProto_EnumReservedRange) XXX_Size() int { + return xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Size(m) +} +func (m *EnumDescriptorProto_EnumReservedRange) XXX_DiscardUnknown() { + xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumDescriptorProto_EnumReservedRange proto.InternalMessageInfo + +func (m *EnumDescriptorProto_EnumReservedRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +// Describes a value within an enum. +type EnumValueDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` + Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} } +func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*EnumValueDescriptorProto) ProtoMessage() {} +func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{7} +} +func (m *EnumValueDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumValueDescriptorProto.Unmarshal(m, b) +} +func (m *EnumValueDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumValueDescriptorProto.Marshal(b, m, deterministic) +} +func (m *EnumValueDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumValueDescriptorProto.Merge(m, src) +} +func (m *EnumValueDescriptorProto) XXX_Size() int { + return xxx_messageInfo_EnumValueDescriptorProto.Size(m) +} +func (m *EnumValueDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_EnumValueDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumValueDescriptorProto proto.InternalMessageInfo + +func (m *EnumValueDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *EnumValueDescriptorProto) GetNumber() int32 { + if m != nil && m.Number != nil { + return *m.Number + } + return 0 +} + +func (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a service. +type ServiceDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` + Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} } +func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*ServiceDescriptorProto) ProtoMessage() {} +func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{8} +} +func (m *ServiceDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ServiceDescriptorProto.Unmarshal(m, b) +} +func (m *ServiceDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ServiceDescriptorProto.Marshal(b, m, deterministic) +} +func (m *ServiceDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServiceDescriptorProto.Merge(m, src) +} +func (m *ServiceDescriptorProto) XXX_Size() int { + return xxx_messageInfo_ServiceDescriptorProto.Size(m) +} +func (m *ServiceDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_ServiceDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_ServiceDescriptorProto proto.InternalMessageInfo + +func (m *ServiceDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { + if m != nil { + return m.Method + } + return nil +} + +func (m *ServiceDescriptorProto) GetOptions() *ServiceOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a method of a service. +type MethodDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` + OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` + Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` + // Identifies if client streams multiple client messages + ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` + // Identifies if server streams multiple server messages + ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} } +func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*MethodDescriptorProto) ProtoMessage() {} +func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{9} +} +func (m *MethodDescriptorProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MethodDescriptorProto.Unmarshal(m, b) +} +func (m *MethodDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MethodDescriptorProto.Marshal(b, m, deterministic) +} +func (m *MethodDescriptorProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_MethodDescriptorProto.Merge(m, src) +} +func (m *MethodDescriptorProto) XXX_Size() int { + return xxx_messageInfo_MethodDescriptorProto.Size(m) +} +func (m *MethodDescriptorProto) XXX_DiscardUnknown() { + xxx_messageInfo_MethodDescriptorProto.DiscardUnknown(m) +} + +var xxx_messageInfo_MethodDescriptorProto proto.InternalMessageInfo + +const Default_MethodDescriptorProto_ClientStreaming bool = false +const Default_MethodDescriptorProto_ServerStreaming bool = false + +func (m *MethodDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MethodDescriptorProto) GetInputType() string { + if m != nil && m.InputType != nil { + return *m.InputType + } + return "" +} + +func (m *MethodDescriptorProto) GetOutputType() string { + if m != nil && m.OutputType != nil { + return *m.OutputType + } + return "" +} + +func (m *MethodDescriptorProto) GetOptions() *MethodOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *MethodDescriptorProto) GetClientStreaming() bool { + if m != nil && m.ClientStreaming != nil { + return *m.ClientStreaming + } + return Default_MethodDescriptorProto_ClientStreaming +} + +func (m *MethodDescriptorProto) GetServerStreaming() bool { + if m != nil && m.ServerStreaming != nil { + return *m.ServerStreaming + } + return Default_MethodDescriptorProto_ServerStreaming +} + +type FileOptions struct { + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` + // This option does nothing. + JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` // Deprecated: Do not use. + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` + OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` + JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` + PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` + PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=0" json:"cc_enable_arenas,omitempty"` + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` + // Namespace for generated classes; defaults to the package. + CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be used + // for determining the namespace. + PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FileOptions) Reset() { *m = FileOptions{} } +func (m *FileOptions) String() string { return proto.CompactTextString(m) } +func (*FileOptions) ProtoMessage() {} +func (*FileOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{10} +} + +var extRange_FileOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_FileOptions +} + +func (m *FileOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FileOptions.Unmarshal(m, b) +} +func (m *FileOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FileOptions.Marshal(b, m, deterministic) +} +func (m *FileOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileOptions.Merge(m, src) +} +func (m *FileOptions) XXX_Size() int { + return xxx_messageInfo_FileOptions.Size(m) +} +func (m *FileOptions) XXX_DiscardUnknown() { + xxx_messageInfo_FileOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_FileOptions proto.InternalMessageInfo + +const Default_FileOptions_JavaMultipleFiles bool = false +const Default_FileOptions_JavaStringCheckUtf8 bool = false +const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED +const Default_FileOptions_CcGenericServices bool = false +const Default_FileOptions_JavaGenericServices bool = false +const Default_FileOptions_PyGenericServices bool = false +const Default_FileOptions_PhpGenericServices bool = false +const Default_FileOptions_Deprecated bool = false +const Default_FileOptions_CcEnableArenas bool = false + +func (m *FileOptions) GetJavaPackage() string { + if m != nil && m.JavaPackage != nil { + return *m.JavaPackage + } + return "" +} + +func (m *FileOptions) GetJavaOuterClassname() string { + if m != nil && m.JavaOuterClassname != nil { + return *m.JavaOuterClassname + } + return "" +} + +func (m *FileOptions) GetJavaMultipleFiles() bool { + if m != nil && m.JavaMultipleFiles != nil { + return *m.JavaMultipleFiles + } + return Default_FileOptions_JavaMultipleFiles +} + +// Deprecated: Do not use. +func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool { + if m != nil && m.JavaGenerateEqualsAndHash != nil { + return *m.JavaGenerateEqualsAndHash + } + return false +} + +func (m *FileOptions) GetJavaStringCheckUtf8() bool { + if m != nil && m.JavaStringCheckUtf8 != nil { + return *m.JavaStringCheckUtf8 + } + return Default_FileOptions_JavaStringCheckUtf8 +} + +func (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { + if m != nil && m.OptimizeFor != nil { + return *m.OptimizeFor + } + return Default_FileOptions_OptimizeFor +} + +func (m *FileOptions) GetGoPackage() string { + if m != nil && m.GoPackage != nil { + return *m.GoPackage + } + return "" +} + +func (m *FileOptions) GetCcGenericServices() bool { + if m != nil && m.CcGenericServices != nil { + return *m.CcGenericServices + } + return Default_FileOptions_CcGenericServices +} + +func (m *FileOptions) GetJavaGenericServices() bool { + if m != nil && m.JavaGenericServices != nil { + return *m.JavaGenericServices + } + return Default_FileOptions_JavaGenericServices +} + +func (m *FileOptions) GetPyGenericServices() bool { + if m != nil && m.PyGenericServices != nil { + return *m.PyGenericServices + } + return Default_FileOptions_PyGenericServices +} + +func (m *FileOptions) GetPhpGenericServices() bool { + if m != nil && m.PhpGenericServices != nil { + return *m.PhpGenericServices + } + return Default_FileOptions_PhpGenericServices +} + +func (m *FileOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_FileOptions_Deprecated +} + +func (m *FileOptions) GetCcEnableArenas() bool { + if m != nil && m.CcEnableArenas != nil { + return *m.CcEnableArenas + } + return Default_FileOptions_CcEnableArenas +} + +func (m *FileOptions) GetObjcClassPrefix() string { + if m != nil && m.ObjcClassPrefix != nil { + return *m.ObjcClassPrefix + } + return "" +} + +func (m *FileOptions) GetCsharpNamespace() string { + if m != nil && m.CsharpNamespace != nil { + return *m.CsharpNamespace + } + return "" +} + +func (m *FileOptions) GetSwiftPrefix() string { + if m != nil && m.SwiftPrefix != nil { + return *m.SwiftPrefix + } + return "" +} + +func (m *FileOptions) GetPhpClassPrefix() string { + if m != nil && m.PhpClassPrefix != nil { + return *m.PhpClassPrefix + } + return "" +} + +func (m *FileOptions) GetPhpNamespace() string { + if m != nil && m.PhpNamespace != nil { + return *m.PhpNamespace + } + return "" +} + +func (m *FileOptions) GetPhpMetadataNamespace() string { + if m != nil && m.PhpMetadataNamespace != nil { + return *m.PhpMetadataNamespace + } + return "" +} + +func (m *FileOptions) GetRubyPackage() string { + if m != nil && m.RubyPackage != nil { + return *m.RubyPackage + } + return "" +} + +func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type MessageOptions struct { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementions still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MessageOptions) Reset() { *m = MessageOptions{} } +func (m *MessageOptions) String() string { return proto.CompactTextString(m) } +func (*MessageOptions) ProtoMessage() {} +func (*MessageOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{11} +} + +var extRange_MessageOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MessageOptions +} + +func (m *MessageOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MessageOptions.Unmarshal(m, b) +} +func (m *MessageOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MessageOptions.Marshal(b, m, deterministic) +} +func (m *MessageOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_MessageOptions.Merge(m, src) +} +func (m *MessageOptions) XXX_Size() int { + return xxx_messageInfo_MessageOptions.Size(m) +} +func (m *MessageOptions) XXX_DiscardUnknown() { + xxx_messageInfo_MessageOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_MessageOptions proto.InternalMessageInfo + +const Default_MessageOptions_MessageSetWireFormat bool = false +const Default_MessageOptions_NoStandardDescriptorAccessor bool = false +const Default_MessageOptions_Deprecated bool = false + +func (m *MessageOptions) GetMessageSetWireFormat() bool { + if m != nil && m.MessageSetWireFormat != nil { + return *m.MessageSetWireFormat + } + return Default_MessageOptions_MessageSetWireFormat +} + +func (m *MessageOptions) GetNoStandardDescriptorAccessor() bool { + if m != nil && m.NoStandardDescriptorAccessor != nil { + return *m.NoStandardDescriptorAccessor + } + return Default_MessageOptions_NoStandardDescriptorAccessor +} + +func (m *MessageOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_MessageOptions_Deprecated +} + +func (m *MessageOptions) GetMapEntry() bool { + if m != nil && m.MapEntry != nil { + return *m.MapEntry + } + return false +} + +func (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type FieldOptions struct { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // For Google-internal migration only. Do not use. + Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldOptions) Reset() { *m = FieldOptions{} } +func (m *FieldOptions) String() string { return proto.CompactTextString(m) } +func (*FieldOptions) ProtoMessage() {} +func (*FieldOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{12} +} + +var extRange_FieldOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_FieldOptions +} + +func (m *FieldOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldOptions.Unmarshal(m, b) +} +func (m *FieldOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldOptions.Marshal(b, m, deterministic) +} +func (m *FieldOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldOptions.Merge(m, src) +} +func (m *FieldOptions) XXX_Size() int { + return xxx_messageInfo_FieldOptions.Size(m) +} +func (m *FieldOptions) XXX_DiscardUnknown() { + xxx_messageInfo_FieldOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldOptions proto.InternalMessageInfo + +const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING +const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL +const Default_FieldOptions_Lazy bool = false +const Default_FieldOptions_Deprecated bool = false +const Default_FieldOptions_Weak bool = false + +func (m *FieldOptions) GetCtype() FieldOptions_CType { + if m != nil && m.Ctype != nil { + return *m.Ctype + } + return Default_FieldOptions_Ctype +} + +func (m *FieldOptions) GetPacked() bool { + if m != nil && m.Packed != nil { + return *m.Packed + } + return false +} + +func (m *FieldOptions) GetJstype() FieldOptions_JSType { + if m != nil && m.Jstype != nil { + return *m.Jstype + } + return Default_FieldOptions_Jstype +} + +func (m *FieldOptions) GetLazy() bool { + if m != nil && m.Lazy != nil { + return *m.Lazy + } + return Default_FieldOptions_Lazy +} + +func (m *FieldOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_FieldOptions_Deprecated +} + +func (m *FieldOptions) GetWeak() bool { + if m != nil && m.Weak != nil { + return *m.Weak + } + return Default_FieldOptions_Weak +} + +func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type OneofOptions struct { + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OneofOptions) Reset() { *m = OneofOptions{} } +func (m *OneofOptions) String() string { return proto.CompactTextString(m) } +func (*OneofOptions) ProtoMessage() {} +func (*OneofOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{13} +} + +var extRange_OneofOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OneofOptions +} + +func (m *OneofOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OneofOptions.Unmarshal(m, b) +} +func (m *OneofOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OneofOptions.Marshal(b, m, deterministic) +} +func (m *OneofOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_OneofOptions.Merge(m, src) +} +func (m *OneofOptions) XXX_Size() int { + return xxx_messageInfo_OneofOptions.Size(m) +} +func (m *OneofOptions) XXX_DiscardUnknown() { + xxx_messageInfo_OneofOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_OneofOptions proto.InternalMessageInfo + +func (m *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type EnumOptions struct { + // Set this option to true to allow mapping different tag names to the same + // value. + AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumOptions) Reset() { *m = EnumOptions{} } +func (m *EnumOptions) String() string { return proto.CompactTextString(m) } +func (*EnumOptions) ProtoMessage() {} +func (*EnumOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{14} +} + +var extRange_EnumOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_EnumOptions +} + +func (m *EnumOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumOptions.Unmarshal(m, b) +} +func (m *EnumOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumOptions.Marshal(b, m, deterministic) +} +func (m *EnumOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumOptions.Merge(m, src) +} +func (m *EnumOptions) XXX_Size() int { + return xxx_messageInfo_EnumOptions.Size(m) +} +func (m *EnumOptions) XXX_DiscardUnknown() { + xxx_messageInfo_EnumOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumOptions proto.InternalMessageInfo + +const Default_EnumOptions_Deprecated bool = false + +func (m *EnumOptions) GetAllowAlias() bool { + if m != nil && m.AllowAlias != nil { + return *m.AllowAlias + } + return false +} + +func (m *EnumOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_EnumOptions_Deprecated +} + +func (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type EnumValueOptions struct { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } +func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } +func (*EnumValueOptions) ProtoMessage() {} +func (*EnumValueOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{15} +} + +var extRange_EnumValueOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_EnumValueOptions +} + +func (m *EnumValueOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumValueOptions.Unmarshal(m, b) +} +func (m *EnumValueOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumValueOptions.Marshal(b, m, deterministic) +} +func (m *EnumValueOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumValueOptions.Merge(m, src) +} +func (m *EnumValueOptions) XXX_Size() int { + return xxx_messageInfo_EnumValueOptions.Size(m) +} +func (m *EnumValueOptions) XXX_DiscardUnknown() { + xxx_messageInfo_EnumValueOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumValueOptions proto.InternalMessageInfo + +const Default_EnumValueOptions_Deprecated bool = false + +func (m *EnumValueOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_EnumValueOptions_Deprecated +} + +func (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type ServiceOptions struct { + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } +func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } +func (*ServiceOptions) ProtoMessage() {} +func (*ServiceOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{16} +} + +var extRange_ServiceOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ServiceOptions +} + +func (m *ServiceOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ServiceOptions.Unmarshal(m, b) +} +func (m *ServiceOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ServiceOptions.Marshal(b, m, deterministic) +} +func (m *ServiceOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServiceOptions.Merge(m, src) +} +func (m *ServiceOptions) XXX_Size() int { + return xxx_messageInfo_ServiceOptions.Size(m) +} +func (m *ServiceOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ServiceOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_ServiceOptions proto.InternalMessageInfo + +const Default_ServiceOptions_Deprecated bool = false + +func (m *ServiceOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_ServiceOptions_Deprecated +} + +func (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type MethodOptions struct { + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MethodOptions) Reset() { *m = MethodOptions{} } +func (m *MethodOptions) String() string { return proto.CompactTextString(m) } +func (*MethodOptions) ProtoMessage() {} +func (*MethodOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{17} +} + +var extRange_MethodOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MethodOptions +} + +func (m *MethodOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MethodOptions.Unmarshal(m, b) +} +func (m *MethodOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MethodOptions.Marshal(b, m, deterministic) +} +func (m *MethodOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_MethodOptions.Merge(m, src) +} +func (m *MethodOptions) XXX_Size() int { + return xxx_messageInfo_MethodOptions.Size(m) +} +func (m *MethodOptions) XXX_DiscardUnknown() { + xxx_messageInfo_MethodOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_MethodOptions proto.InternalMessageInfo + +const Default_MethodOptions_Deprecated bool = false +const Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN + +func (m *MethodOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_MethodOptions_Deprecated +} + +func (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { + if m != nil && m.IdempotencyLevel != nil { + return *m.IdempotencyLevel + } + return Default_MethodOptions_IdempotencyLevel +} + +func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +type UninterpretedOption struct { + Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` + PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` + NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` + DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` + StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` + AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } +func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } +func (*UninterpretedOption) ProtoMessage() {} +func (*UninterpretedOption) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{18} +} +func (m *UninterpretedOption) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UninterpretedOption.Unmarshal(m, b) +} +func (m *UninterpretedOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UninterpretedOption.Marshal(b, m, deterministic) +} +func (m *UninterpretedOption) XXX_Merge(src proto.Message) { + xxx_messageInfo_UninterpretedOption.Merge(m, src) +} +func (m *UninterpretedOption) XXX_Size() int { + return xxx_messageInfo_UninterpretedOption.Size(m) +} +func (m *UninterpretedOption) XXX_DiscardUnknown() { + xxx_messageInfo_UninterpretedOption.DiscardUnknown(m) +} + +var xxx_messageInfo_UninterpretedOption proto.InternalMessageInfo + +func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { + if m != nil { + return m.Name + } + return nil +} + +func (m *UninterpretedOption) GetIdentifierValue() string { + if m != nil && m.IdentifierValue != nil { + return *m.IdentifierValue + } + return "" +} + +func (m *UninterpretedOption) GetPositiveIntValue() uint64 { + if m != nil && m.PositiveIntValue != nil { + return *m.PositiveIntValue + } + return 0 +} + +func (m *UninterpretedOption) GetNegativeIntValue() int64 { + if m != nil && m.NegativeIntValue != nil { + return *m.NegativeIntValue + } + return 0 +} + +func (m *UninterpretedOption) GetDoubleValue() float64 { + if m != nil && m.DoubleValue != nil { + return *m.DoubleValue + } + return 0 +} + +func (m *UninterpretedOption) GetStringValue() []byte { + if m != nil { + return m.StringValue + } + return nil +} + +func (m *UninterpretedOption) GetAggregateValue() string { + if m != nil && m.AggregateValue != nil { + return *m.AggregateValue + } + return "" +} + +// The name of the uninterpreted option. Each string represents a segment in +// a dot-separated name. is_extension is true iff a segment represents an +// extension (denoted with parentheses in options specs in .proto files). +// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents +// "foo.(bar.baz).qux". +type UninterpretedOption_NamePart struct { + NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` + IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOption_NamePart{} } +func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } +func (*UninterpretedOption_NamePart) ProtoMessage() {} +func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{18, 0} +} +func (m *UninterpretedOption_NamePart) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UninterpretedOption_NamePart.Unmarshal(m, b) +} +func (m *UninterpretedOption_NamePart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UninterpretedOption_NamePart.Marshal(b, m, deterministic) +} +func (m *UninterpretedOption_NamePart) XXX_Merge(src proto.Message) { + xxx_messageInfo_UninterpretedOption_NamePart.Merge(m, src) +} +func (m *UninterpretedOption_NamePart) XXX_Size() int { + return xxx_messageInfo_UninterpretedOption_NamePart.Size(m) +} +func (m *UninterpretedOption_NamePart) XXX_DiscardUnknown() { + xxx_messageInfo_UninterpretedOption_NamePart.DiscardUnknown(m) +} + +var xxx_messageInfo_UninterpretedOption_NamePart proto.InternalMessageInfo + +func (m *UninterpretedOption_NamePart) GetNamePart() string { + if m != nil && m.NamePart != nil { + return *m.NamePart + } + return "" +} + +func (m *UninterpretedOption_NamePart) GetIsExtension() bool { + if m != nil && m.IsExtension != nil { + return *m.IsExtension + } + return false +} + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +type SourceCodeInfo struct { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendent. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } +func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } +func (*SourceCodeInfo) ProtoMessage() {} +func (*SourceCodeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{19} +} +func (m *SourceCodeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SourceCodeInfo.Unmarshal(m, b) +} +func (m *SourceCodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SourceCodeInfo.Marshal(b, m, deterministic) +} +func (m *SourceCodeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_SourceCodeInfo.Merge(m, src) +} +func (m *SourceCodeInfo) XXX_Size() int { + return xxx_messageInfo_SourceCodeInfo.Size(m) +} +func (m *SourceCodeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_SourceCodeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_SourceCodeInfo proto.InternalMessageInfo + +func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { + if m != nil { + return m.Location + } + return nil +} + +type SourceCodeInfo_Location struct { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` + TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` + LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} } +func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } +func (*SourceCodeInfo_Location) ProtoMessage() {} +func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{19, 0} +} +func (m *SourceCodeInfo_Location) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SourceCodeInfo_Location.Unmarshal(m, b) +} +func (m *SourceCodeInfo_Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SourceCodeInfo_Location.Marshal(b, m, deterministic) +} +func (m *SourceCodeInfo_Location) XXX_Merge(src proto.Message) { + xxx_messageInfo_SourceCodeInfo_Location.Merge(m, src) +} +func (m *SourceCodeInfo_Location) XXX_Size() int { + return xxx_messageInfo_SourceCodeInfo_Location.Size(m) +} +func (m *SourceCodeInfo_Location) XXX_DiscardUnknown() { + xxx_messageInfo_SourceCodeInfo_Location.DiscardUnknown(m) +} + +var xxx_messageInfo_SourceCodeInfo_Location proto.InternalMessageInfo + +func (m *SourceCodeInfo_Location) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *SourceCodeInfo_Location) GetSpan() []int32 { + if m != nil { + return m.Span + } + return nil +} + +func (m *SourceCodeInfo_Location) GetLeadingComments() string { + if m != nil && m.LeadingComments != nil { + return *m.LeadingComments + } + return "" +} + +func (m *SourceCodeInfo_Location) GetTrailingComments() string { + if m != nil && m.TrailingComments != nil { + return *m.TrailingComments + } + return "" +} + +func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { + if m != nil { + return m.LeadingDetachedComments + } + return nil +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +type GeneratedCodeInfo struct { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} } +func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo) ProtoMessage() {} +func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{20} +} +func (m *GeneratedCodeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeneratedCodeInfo.Unmarshal(m, b) +} +func (m *GeneratedCodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeneratedCodeInfo.Marshal(b, m, deterministic) +} +func (m *GeneratedCodeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeneratedCodeInfo.Merge(m, src) +} +func (m *GeneratedCodeInfo) XXX_Size() int { + return xxx_messageInfo_GeneratedCodeInfo.Size(m) +} +func (m *GeneratedCodeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GeneratedCodeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GeneratedCodeInfo proto.InternalMessageInfo + +func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { + if m != nil { + return m.Annotation + } + return nil +} + +type GeneratedCodeInfo_Annotation struct { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Identifies the filesystem path to the original source .proto. + SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_Annotation{} } +func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} +func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { + return fileDescriptor_308767df5ffe18af, []int{20, 0} +} +func (m *GeneratedCodeInfo_Annotation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeneratedCodeInfo_Annotation.Unmarshal(m, b) +} +func (m *GeneratedCodeInfo_Annotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeneratedCodeInfo_Annotation.Marshal(b, m, deterministic) +} +func (m *GeneratedCodeInfo_Annotation) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeneratedCodeInfo_Annotation.Merge(m, src) +} +func (m *GeneratedCodeInfo_Annotation) XXX_Size() int { + return xxx_messageInfo_GeneratedCodeInfo_Annotation.Size(m) +} +func (m *GeneratedCodeInfo_Annotation) XXX_DiscardUnknown() { + xxx_messageInfo_GeneratedCodeInfo_Annotation.DiscardUnknown(m) +} + +var xxx_messageInfo_GeneratedCodeInfo_Annotation proto.InternalMessageInfo + +func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *GeneratedCodeInfo_Annotation) GetSourceFile() string { + if m != nil && m.SourceFile != nil { + return *m.SourceFile + } + return "" +} + +func (m *GeneratedCodeInfo_Annotation) GetBegin() int32 { + if m != nil && m.Begin != nil { + return *m.Begin + } + return 0 +} + +func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +func init() { + proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value) + proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value) + proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) + proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) + proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) + proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value) + proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet") + proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto") + proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto") + proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange") + proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange") + proto.RegisterType((*ExtensionRangeOptions)(nil), "google.protobuf.ExtensionRangeOptions") + proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto") + proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto") + proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto") + proto.RegisterType((*EnumDescriptorProto_EnumReservedRange)(nil), "google.protobuf.EnumDescriptorProto.EnumReservedRange") + proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto") + proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto") + proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto") + proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions") + proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions") + proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions") + proto.RegisterType((*OneofOptions)(nil), "google.protobuf.OneofOptions") + proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions") + proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions") + proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions") + proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions") + proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption") + proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart") + proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo") + proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location") + proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo") + proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") +} + +func init() { proto.RegisterFile("descriptor.proto", fileDescriptor_308767df5ffe18af) } + +var fileDescriptor_308767df5ffe18af = []byte{ + // 2522 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0xdb, 0xc8, + 0x15, 0x5f, 0x7d, 0x5a, 0x7a, 0x92, 0x65, 0x7a, 0xec, 0x75, 0x18, 0xef, 0x47, 0x1c, 0xed, 0x66, + 0xe3, 0x24, 0xbb, 0xca, 0xc2, 0x49, 0x9c, 0xac, 0x53, 0x6c, 0x2b, 0x4b, 0x8c, 0x57, 0xa9, 0xbe, + 0x4a, 0xc9, 0xdd, 0x64, 0x8b, 0x82, 0x18, 0x93, 0x23, 0x89, 0x09, 0x45, 0x72, 0x49, 0x2a, 0x89, + 0x83, 0x1e, 0x02, 0xf4, 0x54, 0xa0, 0x7f, 0x40, 0x51, 0x14, 0x3d, 0xf4, 0xb2, 0x40, 0xff, 0x80, + 0x02, 0xed, 0xbd, 0xd7, 0x02, 0xbd, 0xf7, 0x50, 0xa0, 0x05, 0xda, 0x3f, 0xa1, 0xc7, 0x62, 0x66, + 0x48, 0x8a, 0xd4, 0x47, 0xe2, 0x5d, 0x20, 0xd9, 0x93, 0x3d, 0xef, 0xfd, 0xde, 0x9b, 0x37, 0x8f, + 0xbf, 0x79, 0xf3, 0x66, 0x04, 0x82, 0x46, 0x5c, 0xd5, 0xd1, 0x6d, 0xcf, 0x72, 0x2a, 0xb6, 0x63, + 0x79, 0x16, 0x5a, 0x1b, 0x5a, 0xd6, 0xd0, 0x20, 0x7c, 0x74, 0x32, 0x19, 0x94, 0x5b, 0xb0, 0x7e, + 0x4f, 0x37, 0x48, 0x3d, 0x04, 0xf6, 0x88, 0x87, 0xee, 0x40, 0x7a, 0xa0, 0x1b, 0x44, 0x4c, 0xec, + 0xa4, 0x76, 0x0b, 0x7b, 0x1f, 0x56, 0x66, 0x8c, 0x2a, 0x71, 0x8b, 0x2e, 0x15, 0xcb, 0xcc, 0xa2, + 0xfc, 0xef, 0x34, 0x6c, 0x2c, 0xd0, 0x22, 0x04, 0x69, 0x13, 0x8f, 0xa9, 0xc7, 0xc4, 0x6e, 0x5e, + 0x66, 0xff, 0x23, 0x11, 0x56, 0x6c, 0xac, 0x3e, 0xc6, 0x43, 0x22, 0x26, 0x99, 0x38, 0x18, 0xa2, + 0xf7, 0x01, 0x34, 0x62, 0x13, 0x53, 0x23, 0xa6, 0x7a, 0x2a, 0xa6, 0x76, 0x52, 0xbb, 0x79, 0x39, + 0x22, 0x41, 0xd7, 0x60, 0xdd, 0x9e, 0x9c, 0x18, 0xba, 0xaa, 0x44, 0x60, 0xb0, 0x93, 0xda, 0xcd, + 0xc8, 0x02, 0x57, 0xd4, 0xa7, 0xe0, 0xcb, 0xb0, 0xf6, 0x94, 0xe0, 0xc7, 0x51, 0x68, 0x81, 0x41, + 0x4b, 0x54, 0x1c, 0x01, 0xd6, 0xa0, 0x38, 0x26, 0xae, 0x8b, 0x87, 0x44, 0xf1, 0x4e, 0x6d, 0x22, + 0xa6, 0xd9, 0xea, 0x77, 0xe6, 0x56, 0x3f, 0xbb, 0xf2, 0x82, 0x6f, 0xd5, 0x3f, 0xb5, 0x09, 0xaa, + 0x42, 0x9e, 0x98, 0x93, 0x31, 0xf7, 0x90, 0x59, 0x92, 0x3f, 0xc9, 0x9c, 0x8c, 0x67, 0xbd, 0xe4, + 0xa8, 0x99, 0xef, 0x62, 0xc5, 0x25, 0xce, 0x13, 0x5d, 0x25, 0x62, 0x96, 0x39, 0xb8, 0x3c, 0xe7, + 0xa0, 0xc7, 0xf5, 0xb3, 0x3e, 0x02, 0x3b, 0x54, 0x83, 0x3c, 0x79, 0xe6, 0x11, 0xd3, 0xd5, 0x2d, + 0x53, 0x5c, 0x61, 0x4e, 0x2e, 0x2d, 0xf8, 0x8a, 0xc4, 0xd0, 0x66, 0x5d, 0x4c, 0xed, 0xd0, 0x3e, + 0xac, 0x58, 0xb6, 0xa7, 0x5b, 0xa6, 0x2b, 0xe6, 0x76, 0x12, 0xbb, 0x85, 0xbd, 0x77, 0x17, 0x12, + 0xa1, 0xc3, 0x31, 0x72, 0x00, 0x46, 0x0d, 0x10, 0x5c, 0x6b, 0xe2, 0xa8, 0x44, 0x51, 0x2d, 0x8d, + 0x28, 0xba, 0x39, 0xb0, 0xc4, 0x3c, 0x73, 0x70, 0x61, 0x7e, 0x21, 0x0c, 0x58, 0xb3, 0x34, 0xd2, + 0x30, 0x07, 0x96, 0x5c, 0x72, 0x63, 0x63, 0xb4, 0x05, 0x59, 0xf7, 0xd4, 0xf4, 0xf0, 0x33, 0xb1, + 0xc8, 0x18, 0xe2, 0x8f, 0xca, 0x7f, 0xce, 0xc2, 0xda, 0x59, 0x28, 0x76, 0x17, 0x32, 0x03, 0xba, + 0x4a, 0x31, 0xf9, 0x6d, 0x72, 0xc0, 0x6d, 0xe2, 0x49, 0xcc, 0x7e, 0xc7, 0x24, 0x56, 0xa1, 0x60, + 0x12, 0xd7, 0x23, 0x1a, 0x67, 0x44, 0xea, 0x8c, 0x9c, 0x02, 0x6e, 0x34, 0x4f, 0xa9, 0xf4, 0x77, + 0xa2, 0xd4, 0x03, 0x58, 0x0b, 0x43, 0x52, 0x1c, 0x6c, 0x0e, 0x03, 0x6e, 0x5e, 0x7f, 0x55, 0x24, + 0x15, 0x29, 0xb0, 0x93, 0xa9, 0x99, 0x5c, 0x22, 0xb1, 0x31, 0xaa, 0x03, 0x58, 0x26, 0xb1, 0x06, + 0x8a, 0x46, 0x54, 0x43, 0xcc, 0x2d, 0xc9, 0x52, 0x87, 0x42, 0xe6, 0xb2, 0x64, 0x71, 0xa9, 0x6a, + 0xa0, 0xcf, 0xa6, 0x54, 0x5b, 0x59, 0xc2, 0x94, 0x16, 0xdf, 0x64, 0x73, 0x6c, 0x3b, 0x86, 0x92, + 0x43, 0x28, 0xef, 0x89, 0xe6, 0xaf, 0x2c, 0xcf, 0x82, 0xa8, 0xbc, 0x72, 0x65, 0xb2, 0x6f, 0xc6, + 0x17, 0xb6, 0xea, 0x44, 0x87, 0xe8, 0x03, 0x08, 0x05, 0x0a, 0xa3, 0x15, 0xb0, 0x2a, 0x54, 0x0c, + 0x84, 0x6d, 0x3c, 0x26, 0xdb, 0xcf, 0xa1, 0x14, 0x4f, 0x0f, 0xda, 0x84, 0x8c, 0xeb, 0x61, 0xc7, + 0x63, 0x2c, 0xcc, 0xc8, 0x7c, 0x80, 0x04, 0x48, 0x11, 0x53, 0x63, 0x55, 0x2e, 0x23, 0xd3, 0x7f, + 0xd1, 0x8f, 0xa6, 0x0b, 0x4e, 0xb1, 0x05, 0x7f, 0x34, 0xff, 0x45, 0x63, 0x9e, 0x67, 0xd7, 0xbd, + 0x7d, 0x1b, 0x56, 0x63, 0x0b, 0x38, 0xeb, 0xd4, 0xe5, 0x5f, 0xc0, 0xdb, 0x0b, 0x5d, 0xa3, 0x07, + 0xb0, 0x39, 0x31, 0x75, 0xd3, 0x23, 0x8e, 0xed, 0x10, 0xca, 0x58, 0x3e, 0x95, 0xf8, 0x9f, 0x95, + 0x25, 0x9c, 0x3b, 0x8e, 0xa2, 0xb9, 0x17, 0x79, 0x63, 0x32, 0x2f, 0xbc, 0x9a, 0xcf, 0xfd, 0x77, + 0x45, 0x78, 0xf1, 0xe2, 0xc5, 0x8b, 0x64, 0xf9, 0x37, 0x59, 0xd8, 0x5c, 0xb4, 0x67, 0x16, 0x6e, + 0xdf, 0x2d, 0xc8, 0x9a, 0x93, 0xf1, 0x09, 0x71, 0x58, 0x92, 0x32, 0xb2, 0x3f, 0x42, 0x55, 0xc8, + 0x18, 0xf8, 0x84, 0x18, 0x62, 0x7a, 0x27, 0xb1, 0x5b, 0xda, 0xbb, 0x76, 0xa6, 0x5d, 0x59, 0x69, + 0x52, 0x13, 0x99, 0x5b, 0xa2, 0xcf, 0x21, 0xed, 0x97, 0x68, 0xea, 0xe1, 0xea, 0xd9, 0x3c, 0xd0, + 0xbd, 0x24, 0x33, 0x3b, 0xf4, 0x0e, 0xe4, 0xe9, 0x5f, 0xce, 0x8d, 0x2c, 0x8b, 0x39, 0x47, 0x05, + 0x94, 0x17, 0x68, 0x1b, 0x72, 0x6c, 0x9b, 0x68, 0x24, 0x38, 0xda, 0xc2, 0x31, 0x25, 0x96, 0x46, + 0x06, 0x78, 0x62, 0x78, 0xca, 0x13, 0x6c, 0x4c, 0x08, 0x23, 0x7c, 0x5e, 0x2e, 0xfa, 0xc2, 0x9f, + 0x52, 0x19, 0xba, 0x00, 0x05, 0xbe, 0xab, 0x74, 0x53, 0x23, 0xcf, 0x58, 0xf5, 0xcc, 0xc8, 0x7c, + 0xa3, 0x35, 0xa8, 0x84, 0x4e, 0xff, 0xc8, 0xb5, 0xcc, 0x80, 0x9a, 0x6c, 0x0a, 0x2a, 0x60, 0xd3, + 0xdf, 0x9e, 0x2d, 0xdc, 0xef, 0x2d, 0x5e, 0xde, 0x2c, 0xa7, 0xca, 0x7f, 0x4a, 0x42, 0x9a, 0xd5, + 0x8b, 0x35, 0x28, 0xf4, 0x1f, 0x76, 0x25, 0xa5, 0xde, 0x39, 0x3e, 0x6c, 0x4a, 0x42, 0x02, 0x95, + 0x00, 0x98, 0xe0, 0x5e, 0xb3, 0x53, 0xed, 0x0b, 0xc9, 0x70, 0xdc, 0x68, 0xf7, 0xf7, 0x6f, 0x0a, + 0xa9, 0xd0, 0xe0, 0x98, 0x0b, 0xd2, 0x51, 0xc0, 0x8d, 0x3d, 0x21, 0x83, 0x04, 0x28, 0x72, 0x07, + 0x8d, 0x07, 0x52, 0x7d, 0xff, 0xa6, 0x90, 0x8d, 0x4b, 0x6e, 0xec, 0x09, 0x2b, 0x68, 0x15, 0xf2, + 0x4c, 0x72, 0xd8, 0xe9, 0x34, 0x85, 0x5c, 0xe8, 0xb3, 0xd7, 0x97, 0x1b, 0xed, 0x23, 0x21, 0x1f, + 0xfa, 0x3c, 0x92, 0x3b, 0xc7, 0x5d, 0x01, 0x42, 0x0f, 0x2d, 0xa9, 0xd7, 0xab, 0x1e, 0x49, 0x42, + 0x21, 0x44, 0x1c, 0x3e, 0xec, 0x4b, 0x3d, 0xa1, 0x18, 0x0b, 0xeb, 0xc6, 0x9e, 0xb0, 0x1a, 0x4e, + 0x21, 0xb5, 0x8f, 0x5b, 0x42, 0x09, 0xad, 0xc3, 0x2a, 0x9f, 0x22, 0x08, 0x62, 0x6d, 0x46, 0xb4, + 0x7f, 0x53, 0x10, 0xa6, 0x81, 0x70, 0x2f, 0xeb, 0x31, 0xc1, 0xfe, 0x4d, 0x01, 0x95, 0x6b, 0x90, + 0x61, 0xec, 0x42, 0x08, 0x4a, 0xcd, 0xea, 0xa1, 0xd4, 0x54, 0x3a, 0xdd, 0x7e, 0xa3, 0xd3, 0xae, + 0x36, 0x85, 0xc4, 0x54, 0x26, 0x4b, 0x3f, 0x39, 0x6e, 0xc8, 0x52, 0x5d, 0x48, 0x46, 0x65, 0x5d, + 0xa9, 0xda, 0x97, 0xea, 0x42, 0xaa, 0xac, 0xc2, 0xe6, 0xa2, 0x3a, 0xb9, 0x70, 0x67, 0x44, 0x3e, + 0x71, 0x72, 0xc9, 0x27, 0x66, 0xbe, 0xe6, 0x3e, 0xf1, 0xbf, 0x92, 0xb0, 0xb1, 0xe0, 0xac, 0x58, + 0x38, 0xc9, 0x0f, 0x21, 0xc3, 0x29, 0xca, 0x4f, 0xcf, 0x2b, 0x0b, 0x0f, 0x1d, 0x46, 0xd8, 0xb9, + 0x13, 0x94, 0xd9, 0x45, 0x3b, 0x88, 0xd4, 0x92, 0x0e, 0x82, 0xba, 0x98, 0xab, 0xe9, 0x3f, 0x9f, + 0xab, 0xe9, 0xfc, 0xd8, 0xdb, 0x3f, 0xcb, 0xb1, 0xc7, 0x64, 0xdf, 0xae, 0xb6, 0x67, 0x16, 0xd4, + 0xf6, 0xbb, 0xb0, 0x3e, 0xe7, 0xe8, 0xcc, 0x35, 0xf6, 0x97, 0x09, 0x10, 0x97, 0x25, 0xe7, 0x15, + 0x95, 0x2e, 0x19, 0xab, 0x74, 0x77, 0x67, 0x33, 0x78, 0x71, 0xf9, 0x47, 0x98, 0xfb, 0xd6, 0xdf, + 0x24, 0x60, 0x6b, 0x71, 0xa7, 0xb8, 0x30, 0x86, 0xcf, 0x21, 0x3b, 0x26, 0xde, 0xc8, 0x0a, 0xba, + 0xa5, 0x8f, 0x16, 0x9c, 0xc1, 0x54, 0x3d, 0xfb, 0xb1, 0x7d, 0xab, 0xe8, 0x21, 0x9e, 0x5a, 0xd6, + 0xee, 0xf1, 0x68, 0xe6, 0x22, 0xfd, 0x55, 0x12, 0xde, 0x5e, 0xe8, 0x7c, 0x61, 0xa0, 0xef, 0x01, + 0xe8, 0xa6, 0x3d, 0xf1, 0x78, 0x47, 0xc4, 0x0b, 0x6c, 0x9e, 0x49, 0x58, 0xf1, 0xa2, 0xc5, 0x73, + 0xe2, 0x85, 0xfa, 0x14, 0xd3, 0x03, 0x17, 0x31, 0xc0, 0x9d, 0x69, 0xa0, 0x69, 0x16, 0xe8, 0xfb, + 0x4b, 0x56, 0x3a, 0x47, 0xcc, 0x4f, 0x41, 0x50, 0x0d, 0x9d, 0x98, 0x9e, 0xe2, 0x7a, 0x0e, 0xc1, + 0x63, 0xdd, 0x1c, 0xb2, 0x13, 0x24, 0x77, 0x90, 0x19, 0x60, 0xc3, 0x25, 0xf2, 0x1a, 0x57, 0xf7, + 0x02, 0x2d, 0xb5, 0x60, 0x04, 0x72, 0x22, 0x16, 0xd9, 0x98, 0x05, 0x57, 0x87, 0x16, 0xe5, 0x5f, + 0xe7, 0xa1, 0x10, 0xe9, 0xab, 0xd1, 0x45, 0x28, 0x3e, 0xc2, 0x4f, 0xb0, 0x12, 0xdc, 0x95, 0x78, + 0x26, 0x0a, 0x54, 0xd6, 0xf5, 0xef, 0x4b, 0x9f, 0xc2, 0x26, 0x83, 0x58, 0x13, 0x8f, 0x38, 0x8a, + 0x6a, 0x60, 0xd7, 0x65, 0x49, 0xcb, 0x31, 0x28, 0xa2, 0xba, 0x0e, 0x55, 0xd5, 0x02, 0x0d, 0xba, + 0x05, 0x1b, 0xcc, 0x62, 0x3c, 0x31, 0x3c, 0xdd, 0x36, 0x88, 0x42, 0x6f, 0x6f, 0x2e, 0x3b, 0x49, + 0xc2, 0xc8, 0xd6, 0x29, 0xa2, 0xe5, 0x03, 0x68, 0x44, 0x2e, 0xaa, 0xc3, 0x7b, 0xcc, 0x6c, 0x48, + 0x4c, 0xe2, 0x60, 0x8f, 0x28, 0xe4, 0xeb, 0x09, 0x36, 0x5c, 0x05, 0x9b, 0x9a, 0x32, 0xc2, 0xee, + 0x48, 0xdc, 0xa4, 0x0e, 0x0e, 0x93, 0x62, 0x42, 0x3e, 0x4f, 0x81, 0x47, 0x3e, 0x4e, 0x62, 0xb0, + 0xaa, 0xa9, 0x7d, 0x81, 0xdd, 0x11, 0x3a, 0x80, 0x2d, 0xe6, 0xc5, 0xf5, 0x1c, 0xdd, 0x1c, 0x2a, + 0xea, 0x88, 0xa8, 0x8f, 0x95, 0x89, 0x37, 0xb8, 0x23, 0xbe, 0x13, 0x9d, 0x9f, 0x45, 0xd8, 0x63, + 0x98, 0x1a, 0x85, 0x1c, 0x7b, 0x83, 0x3b, 0xa8, 0x07, 0x45, 0xfa, 0x31, 0xc6, 0xfa, 0x73, 0xa2, + 0x0c, 0x2c, 0x87, 0x1d, 0x8d, 0xa5, 0x05, 0xa5, 0x29, 0x92, 0xc1, 0x4a, 0xc7, 0x37, 0x68, 0x59, + 0x1a, 0x39, 0xc8, 0xf4, 0xba, 0x92, 0x54, 0x97, 0x0b, 0x81, 0x97, 0x7b, 0x96, 0x43, 0x09, 0x35, + 0xb4, 0xc2, 0x04, 0x17, 0x38, 0xa1, 0x86, 0x56, 0x90, 0xde, 0x5b, 0xb0, 0xa1, 0xaa, 0x7c, 0xcd, + 0xba, 0xaa, 0xf8, 0x77, 0x2c, 0x57, 0x14, 0x62, 0xc9, 0x52, 0xd5, 0x23, 0x0e, 0xf0, 0x39, 0xee, + 0xa2, 0xcf, 0xe0, 0xed, 0x69, 0xb2, 0xa2, 0x86, 0xeb, 0x73, 0xab, 0x9c, 0x35, 0xbd, 0x05, 0x1b, + 0xf6, 0xe9, 0xbc, 0x21, 0x8a, 0xcd, 0x68, 0x9f, 0xce, 0x9a, 0xdd, 0x86, 0x4d, 0x7b, 0x64, 0xcf, + 0xdb, 0x5d, 0x8d, 0xda, 0x21, 0x7b, 0x64, 0xcf, 0x1a, 0x5e, 0x62, 0x17, 0x6e, 0x87, 0xa8, 0xd8, + 0x23, 0x9a, 0x78, 0x2e, 0x0a, 0x8f, 0x28, 0xd0, 0x75, 0x10, 0x54, 0x55, 0x21, 0x26, 0x3e, 0x31, + 0x88, 0x82, 0x1d, 0x62, 0x62, 0x57, 0xbc, 0x10, 0x05, 0x97, 0x54, 0x55, 0x62, 0xda, 0x2a, 0x53, + 0xa2, 0xab, 0xb0, 0x6e, 0x9d, 0x3c, 0x52, 0x39, 0x25, 0x15, 0xdb, 0x21, 0x03, 0xfd, 0x99, 0xf8, + 0x21, 0xcb, 0xef, 0x1a, 0x55, 0x30, 0x42, 0x76, 0x99, 0x18, 0x5d, 0x01, 0x41, 0x75, 0x47, 0xd8, + 0xb1, 0x59, 0x4d, 0x76, 0x6d, 0xac, 0x12, 0xf1, 0x12, 0x87, 0x72, 0x79, 0x3b, 0x10, 0xd3, 0x2d, + 0xe1, 0x3e, 0xd5, 0x07, 0x5e, 0xe0, 0xf1, 0x32, 0xdf, 0x12, 0x4c, 0xe6, 0x7b, 0xdb, 0x05, 0x81, + 0xa6, 0x22, 0x36, 0xf1, 0x2e, 0x83, 0x95, 0xec, 0x91, 0x1d, 0x9d, 0xf7, 0x03, 0x58, 0xa5, 0xc8, + 0xe9, 0xa4, 0x57, 0x78, 0x43, 0x66, 0x8f, 0x22, 0x33, 0xde, 0x84, 0x2d, 0x0a, 0x1a, 0x13, 0x0f, + 0x6b, 0xd8, 0xc3, 0x11, 0xf4, 0xc7, 0x0c, 0x4d, 0xf3, 0xde, 0xf2, 0x95, 0xb1, 0x38, 0x9d, 0xc9, + 0xc9, 0x69, 0xc8, 0xac, 0x4f, 0x78, 0x9c, 0x54, 0x16, 0x70, 0xeb, 0xb5, 0x35, 0xdd, 0xe5, 0x03, + 0x28, 0x46, 0x89, 0x8f, 0xf2, 0xc0, 0xa9, 0x2f, 0x24, 0x68, 0x17, 0x54, 0xeb, 0xd4, 0x69, 0xff, + 0xf2, 0x95, 0x24, 0x24, 0x69, 0x1f, 0xd5, 0x6c, 0xf4, 0x25, 0x45, 0x3e, 0x6e, 0xf7, 0x1b, 0x2d, + 0x49, 0x48, 0x45, 0x1b, 0xf6, 0xbf, 0x26, 0xa1, 0x14, 0xbf, 0x7b, 0xa1, 0x1f, 0xc0, 0xb9, 0xe0, + 0xa1, 0xc4, 0x25, 0x9e, 0xf2, 0x54, 0x77, 0xd8, 0x5e, 0x1c, 0x63, 0x7e, 0x2e, 0x86, 0x6c, 0xd8, + 0xf4, 0x51, 0x3d, 0xe2, 0x7d, 0xa9, 0x3b, 0x74, 0xa7, 0x8d, 0xb1, 0x87, 0x9a, 0x70, 0xc1, 0xb4, + 0x14, 0xd7, 0xc3, 0xa6, 0x86, 0x1d, 0x4d, 0x99, 0x3e, 0x51, 0x29, 0x58, 0x55, 0x89, 0xeb, 0x5a, + 0xfc, 0x0c, 0x0c, 0xbd, 0xbc, 0x6b, 0x5a, 0x3d, 0x1f, 0x3c, 0x3d, 0x1c, 0xaa, 0x3e, 0x74, 0x86, + 0xb9, 0xa9, 0x65, 0xcc, 0x7d, 0x07, 0xf2, 0x63, 0x6c, 0x2b, 0xc4, 0xf4, 0x9c, 0x53, 0xd6, 0x71, + 0xe7, 0xe4, 0xdc, 0x18, 0xdb, 0x12, 0x1d, 0xbf, 0x99, 0x8b, 0xcf, 0x3f, 0x52, 0x50, 0x8c, 0x76, + 0xdd, 0xf4, 0x12, 0xa3, 0xb2, 0x03, 0x2a, 0xc1, 0x4a, 0xd8, 0x07, 0x2f, 0xed, 0xd1, 0x2b, 0x35, + 0x7a, 0x72, 0x1d, 0x64, 0x79, 0x2f, 0x2c, 0x73, 0x4b, 0xda, 0x35, 0x50, 0x6a, 0x11, 0xde, 0x7b, + 0xe4, 0x64, 0x7f, 0x84, 0x8e, 0x20, 0xfb, 0xc8, 0x65, 0xbe, 0xb3, 0xcc, 0xf7, 0x87, 0x2f, 0xf7, + 0x7d, 0xbf, 0xc7, 0x9c, 0xe7, 0xef, 0xf7, 0x94, 0x76, 0x47, 0x6e, 0x55, 0x9b, 0xb2, 0x6f, 0x8e, + 0xce, 0x43, 0xda, 0xc0, 0xcf, 0x4f, 0xe3, 0x67, 0x1c, 0x13, 0x9d, 0x35, 0xf1, 0xe7, 0x21, 0xfd, + 0x94, 0xe0, 0xc7, 0xf1, 0x93, 0x85, 0x89, 0x5e, 0x23, 0xf5, 0xaf, 0x43, 0x86, 0xe5, 0x0b, 0x01, + 0xf8, 0x19, 0x13, 0xde, 0x42, 0x39, 0x48, 0xd7, 0x3a, 0x32, 0xa5, 0xbf, 0x00, 0x45, 0x2e, 0x55, + 0xba, 0x0d, 0xa9, 0x26, 0x09, 0xc9, 0xf2, 0x2d, 0xc8, 0xf2, 0x24, 0xd0, 0xad, 0x11, 0xa6, 0x41, + 0x78, 0xcb, 0x1f, 0xfa, 0x3e, 0x12, 0x81, 0xf6, 0xb8, 0x75, 0x28, 0xc9, 0x42, 0x32, 0xfa, 0x79, + 0x5d, 0x28, 0x46, 0x1b, 0xee, 0x37, 0xc3, 0xa9, 0xbf, 0x24, 0xa0, 0x10, 0x69, 0xa0, 0x69, 0xe7, + 0x83, 0x0d, 0xc3, 0x7a, 0xaa, 0x60, 0x43, 0xc7, 0xae, 0x4f, 0x0a, 0x60, 0xa2, 0x2a, 0x95, 0x9c, + 0xf5, 0xa3, 0xbd, 0x91, 0xe0, 0x7f, 0x9f, 0x00, 0x61, 0xb6, 0x77, 0x9d, 0x09, 0x30, 0xf1, 0xbd, + 0x06, 0xf8, 0xbb, 0x04, 0x94, 0xe2, 0x0d, 0xeb, 0x4c, 0x78, 0x17, 0xbf, 0xd7, 0xf0, 0xfe, 0x99, + 0x84, 0xd5, 0x58, 0x9b, 0x7a, 0xd6, 0xe8, 0xbe, 0x86, 0x75, 0x5d, 0x23, 0x63, 0xdb, 0xf2, 0x88, + 0xa9, 0x9e, 0x2a, 0x06, 0x79, 0x42, 0x0c, 0xb1, 0xcc, 0x0a, 0xc5, 0xf5, 0x97, 0x37, 0xc2, 0x95, + 0xc6, 0xd4, 0xae, 0x49, 0xcd, 0x0e, 0x36, 0x1a, 0x75, 0xa9, 0xd5, 0xed, 0xf4, 0xa5, 0x76, 0xed, + 0xa1, 0x72, 0xdc, 0xfe, 0x71, 0xbb, 0xf3, 0x65, 0x5b, 0x16, 0xf4, 0x19, 0xd8, 0x6b, 0xdc, 0xea, + 0x5d, 0x10, 0x66, 0x83, 0x42, 0xe7, 0x60, 0x51, 0x58, 0xc2, 0x5b, 0x68, 0x03, 0xd6, 0xda, 0x1d, + 0xa5, 0xd7, 0xa8, 0x4b, 0x8a, 0x74, 0xef, 0x9e, 0x54, 0xeb, 0xf7, 0xf8, 0xd3, 0x46, 0x88, 0xee, + 0xc7, 0x37, 0xf5, 0x6f, 0x53, 0xb0, 0xb1, 0x20, 0x12, 0x54, 0xf5, 0x2f, 0x25, 0xfc, 0x9e, 0xf4, + 0xc9, 0x59, 0xa2, 0xaf, 0xd0, 0xae, 0xa0, 0x8b, 0x1d, 0xcf, 0xbf, 0xc3, 0x5c, 0x01, 0x9a, 0x25, + 0xd3, 0xd3, 0x07, 0x3a, 0x71, 0xfc, 0x97, 0x20, 0x7e, 0x53, 0x59, 0x9b, 0xca, 0xf9, 0x63, 0xd0, + 0xc7, 0x80, 0x6c, 0xcb, 0xd5, 0x3d, 0xfd, 0x09, 0x51, 0x74, 0x33, 0x78, 0x36, 0xa2, 0x37, 0x97, + 0xb4, 0x2c, 0x04, 0x9a, 0x86, 0xe9, 0x85, 0x68, 0x93, 0x0c, 0xf1, 0x0c, 0x9a, 0x16, 0xf0, 0x94, + 0x2c, 0x04, 0x9a, 0x10, 0x7d, 0x11, 0x8a, 0x9a, 0x35, 0xa1, 0xed, 0x1c, 0xc7, 0xd1, 0xf3, 0x22, + 0x21, 0x17, 0xb8, 0x2c, 0x84, 0xf8, 0x8d, 0xfa, 0xf4, 0xbd, 0xaa, 0x28, 0x17, 0xb8, 0x8c, 0x43, + 0x2e, 0xc3, 0x1a, 0x1e, 0x0e, 0x1d, 0xea, 0x3c, 0x70, 0xc4, 0xaf, 0x1e, 0xa5, 0x50, 0xcc, 0x80, + 0xdb, 0xf7, 0x21, 0x17, 0xe4, 0x81, 0x1e, 0xc9, 0x34, 0x13, 0x8a, 0xcd, 0xef, 0xd3, 0xc9, 0xdd, + 0xbc, 0x9c, 0x33, 0x03, 0xe5, 0x45, 0x28, 0xea, 0xae, 0x32, 0x7d, 0x7e, 0x4f, 0xee, 0x24, 0x77, + 0x73, 0x72, 0x41, 0x77, 0xc3, 0xa7, 0xcb, 0xf2, 0x37, 0x49, 0x28, 0xc5, 0x7f, 0x3e, 0x40, 0x75, + 0xc8, 0x19, 0x96, 0x8a, 0x19, 0xb5, 0xf8, 0x6f, 0x57, 0xbb, 0xaf, 0xf8, 0xc5, 0xa1, 0xd2, 0xf4, + 0xf1, 0x72, 0x68, 0xb9, 0xfd, 0xb7, 0x04, 0xe4, 0x02, 0x31, 0xda, 0x82, 0xb4, 0x8d, 0xbd, 0x11, + 0x73, 0x97, 0x39, 0x4c, 0x0a, 0x09, 0x99, 0x8d, 0xa9, 0xdc, 0xb5, 0xb1, 0xc9, 0x28, 0xe0, 0xcb, + 0xe9, 0x98, 0x7e, 0x57, 0x83, 0x60, 0x8d, 0xdd, 0x6b, 0xac, 0xf1, 0x98, 0x98, 0x9e, 0x1b, 0x7c, + 0x57, 0x5f, 0x5e, 0xf3, 0xc5, 0xe8, 0x1a, 0xac, 0x7b, 0x0e, 0xd6, 0x8d, 0x18, 0x36, 0xcd, 0xb0, + 0x42, 0xa0, 0x08, 0xc1, 0x07, 0x70, 0x3e, 0xf0, 0xab, 0x11, 0x0f, 0xab, 0x23, 0xa2, 0x4d, 0x8d, + 0xb2, 0xec, 0xfd, 0xe2, 0x9c, 0x0f, 0xa8, 0xfb, 0xfa, 0xc0, 0xb6, 0xfc, 0xf7, 0x04, 0xac, 0x07, + 0x37, 0x31, 0x2d, 0x4c, 0x56, 0x0b, 0x00, 0x9b, 0xa6, 0xe5, 0x45, 0xd3, 0x35, 0x4f, 0xe5, 0x39, + 0xbb, 0x4a, 0x35, 0x34, 0x92, 0x23, 0x0e, 0xb6, 0xc7, 0x00, 0x53, 0xcd, 0xd2, 0xb4, 0x5d, 0x80, + 0x82, 0xff, 0xdb, 0x10, 0xfb, 0x81, 0x91, 0xdf, 0xdd, 0x81, 0x8b, 0xe8, 0x95, 0x0d, 0x6d, 0x42, + 0xe6, 0x84, 0x0c, 0x75, 0xd3, 0x7f, 0xf1, 0xe5, 0x83, 0xe0, 0x85, 0x25, 0x1d, 0xbe, 0xb0, 0x1c, + 0xfe, 0x0c, 0x36, 0x54, 0x6b, 0x3c, 0x1b, 0xee, 0xa1, 0x30, 0xf3, 0x7e, 0xe0, 0x7e, 0x91, 0xf8, + 0x0a, 0xa6, 0x2d, 0xe6, 0xff, 0x12, 0x89, 0x3f, 0x24, 0x53, 0x47, 0xdd, 0xc3, 0x3f, 0x26, 0xb7, + 0x8f, 0xb8, 0x69, 0x37, 0x58, 0xa9, 0x4c, 0x06, 0x06, 0x51, 0x69, 0xf4, 0xff, 0x0f, 0x00, 0x00, + 0xff, 0xff, 0x88, 0x17, 0xc1, 0xbe, 0x38, 0x1d, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go new file mode 100644 index 00000000..165b2110 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go @@ -0,0 +1,752 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: descriptor.proto + +package descriptor + +import ( + fmt "fmt" + github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" + proto "github.com/gogo/protobuf/proto" + math "math" + reflect "reflect" + sort "sort" + strconv "strconv" + strings "strings" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func (this *FileDescriptorSet) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.FileDescriptorSet{") + if this.File != nil { + s = append(s, "File: "+fmt.Sprintf("%#v", this.File)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FileDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 16) + s = append(s, "&descriptor.FileDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Package != nil { + s = append(s, "Package: "+valueToGoStringDescriptor(this.Package, "string")+",\n") + } + if this.Dependency != nil { + s = append(s, "Dependency: "+fmt.Sprintf("%#v", this.Dependency)+",\n") + } + if this.PublicDependency != nil { + s = append(s, "PublicDependency: "+fmt.Sprintf("%#v", this.PublicDependency)+",\n") + } + if this.WeakDependency != nil { + s = append(s, "WeakDependency: "+fmt.Sprintf("%#v", this.WeakDependency)+",\n") + } + if this.MessageType != nil { + s = append(s, "MessageType: "+fmt.Sprintf("%#v", this.MessageType)+",\n") + } + if this.EnumType != nil { + s = append(s, "EnumType: "+fmt.Sprintf("%#v", this.EnumType)+",\n") + } + if this.Service != nil { + s = append(s, "Service: "+fmt.Sprintf("%#v", this.Service)+",\n") + } + if this.Extension != nil { + s = append(s, "Extension: "+fmt.Sprintf("%#v", this.Extension)+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.SourceCodeInfo != nil { + s = append(s, "SourceCodeInfo: "+fmt.Sprintf("%#v", this.SourceCodeInfo)+",\n") + } + if this.Syntax != nil { + s = append(s, "Syntax: "+valueToGoStringDescriptor(this.Syntax, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *DescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 14) + s = append(s, "&descriptor.DescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Field != nil { + s = append(s, "Field: "+fmt.Sprintf("%#v", this.Field)+",\n") + } + if this.Extension != nil { + s = append(s, "Extension: "+fmt.Sprintf("%#v", this.Extension)+",\n") + } + if this.NestedType != nil { + s = append(s, "NestedType: "+fmt.Sprintf("%#v", this.NestedType)+",\n") + } + if this.EnumType != nil { + s = append(s, "EnumType: "+fmt.Sprintf("%#v", this.EnumType)+",\n") + } + if this.ExtensionRange != nil { + s = append(s, "ExtensionRange: "+fmt.Sprintf("%#v", this.ExtensionRange)+",\n") + } + if this.OneofDecl != nil { + s = append(s, "OneofDecl: "+fmt.Sprintf("%#v", this.OneofDecl)+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.ReservedRange != nil { + s = append(s, "ReservedRange: "+fmt.Sprintf("%#v", this.ReservedRange)+",\n") + } + if this.ReservedName != nil { + s = append(s, "ReservedName: "+fmt.Sprintf("%#v", this.ReservedName)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *DescriptorProto_ExtensionRange) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&descriptor.DescriptorProto_ExtensionRange{") + if this.Start != nil { + s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") + } + if this.End != nil { + s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *DescriptorProto_ReservedRange) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.DescriptorProto_ReservedRange{") + if this.Start != nil { + s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") + } + if this.End != nil { + s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ExtensionRangeOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.ExtensionRangeOptions{") + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FieldDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 14) + s = append(s, "&descriptor.FieldDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Number != nil { + s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n") + } + if this.Label != nil { + s = append(s, "Label: "+valueToGoStringDescriptor(this.Label, "FieldDescriptorProto_Label")+",\n") + } + if this.Type != nil { + s = append(s, "Type: "+valueToGoStringDescriptor(this.Type, "FieldDescriptorProto_Type")+",\n") + } + if this.TypeName != nil { + s = append(s, "TypeName: "+valueToGoStringDescriptor(this.TypeName, "string")+",\n") + } + if this.Extendee != nil { + s = append(s, "Extendee: "+valueToGoStringDescriptor(this.Extendee, "string")+",\n") + } + if this.DefaultValue != nil { + s = append(s, "DefaultValue: "+valueToGoStringDescriptor(this.DefaultValue, "string")+",\n") + } + if this.OneofIndex != nil { + s = append(s, "OneofIndex: "+valueToGoStringDescriptor(this.OneofIndex, "int32")+",\n") + } + if this.JsonName != nil { + s = append(s, "JsonName: "+valueToGoStringDescriptor(this.JsonName, "string")+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *OneofDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.OneofDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *EnumDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&descriptor.EnumDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Value != nil { + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.ReservedRange != nil { + s = append(s, "ReservedRange: "+fmt.Sprintf("%#v", this.ReservedRange)+",\n") + } + if this.ReservedName != nil { + s = append(s, "ReservedName: "+fmt.Sprintf("%#v", this.ReservedName)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *EnumDescriptorProto_EnumReservedRange) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.EnumDescriptorProto_EnumReservedRange{") + if this.Start != nil { + s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") + } + if this.End != nil { + s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *EnumValueDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&descriptor.EnumValueDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Number != nil { + s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ServiceDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&descriptor.ServiceDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.Method != nil { + s = append(s, "Method: "+fmt.Sprintf("%#v", this.Method)+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *MethodDescriptorProto) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 10) + s = append(s, "&descriptor.MethodDescriptorProto{") + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") + } + if this.InputType != nil { + s = append(s, "InputType: "+valueToGoStringDescriptor(this.InputType, "string")+",\n") + } + if this.OutputType != nil { + s = append(s, "OutputType: "+valueToGoStringDescriptor(this.OutputType, "string")+",\n") + } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } + if this.ClientStreaming != nil { + s = append(s, "ClientStreaming: "+valueToGoStringDescriptor(this.ClientStreaming, "bool")+",\n") + } + if this.ServerStreaming != nil { + s = append(s, "ServerStreaming: "+valueToGoStringDescriptor(this.ServerStreaming, "bool")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FileOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 25) + s = append(s, "&descriptor.FileOptions{") + if this.JavaPackage != nil { + s = append(s, "JavaPackage: "+valueToGoStringDescriptor(this.JavaPackage, "string")+",\n") + } + if this.JavaOuterClassname != nil { + s = append(s, "JavaOuterClassname: "+valueToGoStringDescriptor(this.JavaOuterClassname, "string")+",\n") + } + if this.JavaMultipleFiles != nil { + s = append(s, "JavaMultipleFiles: "+valueToGoStringDescriptor(this.JavaMultipleFiles, "bool")+",\n") + } + if this.JavaGenerateEqualsAndHash != nil { + s = append(s, "JavaGenerateEqualsAndHash: "+valueToGoStringDescriptor(this.JavaGenerateEqualsAndHash, "bool")+",\n") + } + if this.JavaStringCheckUtf8 != nil { + s = append(s, "JavaStringCheckUtf8: "+valueToGoStringDescriptor(this.JavaStringCheckUtf8, "bool")+",\n") + } + if this.OptimizeFor != nil { + s = append(s, "OptimizeFor: "+valueToGoStringDescriptor(this.OptimizeFor, "FileOptions_OptimizeMode")+",\n") + } + if this.GoPackage != nil { + s = append(s, "GoPackage: "+valueToGoStringDescriptor(this.GoPackage, "string")+",\n") + } + if this.CcGenericServices != nil { + s = append(s, "CcGenericServices: "+valueToGoStringDescriptor(this.CcGenericServices, "bool")+",\n") + } + if this.JavaGenericServices != nil { + s = append(s, "JavaGenericServices: "+valueToGoStringDescriptor(this.JavaGenericServices, "bool")+",\n") + } + if this.PyGenericServices != nil { + s = append(s, "PyGenericServices: "+valueToGoStringDescriptor(this.PyGenericServices, "bool")+",\n") + } + if this.PhpGenericServices != nil { + s = append(s, "PhpGenericServices: "+valueToGoStringDescriptor(this.PhpGenericServices, "bool")+",\n") + } + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.CcEnableArenas != nil { + s = append(s, "CcEnableArenas: "+valueToGoStringDescriptor(this.CcEnableArenas, "bool")+",\n") + } + if this.ObjcClassPrefix != nil { + s = append(s, "ObjcClassPrefix: "+valueToGoStringDescriptor(this.ObjcClassPrefix, "string")+",\n") + } + if this.CsharpNamespace != nil { + s = append(s, "CsharpNamespace: "+valueToGoStringDescriptor(this.CsharpNamespace, "string")+",\n") + } + if this.SwiftPrefix != nil { + s = append(s, "SwiftPrefix: "+valueToGoStringDescriptor(this.SwiftPrefix, "string")+",\n") + } + if this.PhpClassPrefix != nil { + s = append(s, "PhpClassPrefix: "+valueToGoStringDescriptor(this.PhpClassPrefix, "string")+",\n") + } + if this.PhpNamespace != nil { + s = append(s, "PhpNamespace: "+valueToGoStringDescriptor(this.PhpNamespace, "string")+",\n") + } + if this.PhpMetadataNamespace != nil { + s = append(s, "PhpMetadataNamespace: "+valueToGoStringDescriptor(this.PhpMetadataNamespace, "string")+",\n") + } + if this.RubyPackage != nil { + s = append(s, "RubyPackage: "+valueToGoStringDescriptor(this.RubyPackage, "string")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *MessageOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&descriptor.MessageOptions{") + if this.MessageSetWireFormat != nil { + s = append(s, "MessageSetWireFormat: "+valueToGoStringDescriptor(this.MessageSetWireFormat, "bool")+",\n") + } + if this.NoStandardDescriptorAccessor != nil { + s = append(s, "NoStandardDescriptorAccessor: "+valueToGoStringDescriptor(this.NoStandardDescriptorAccessor, "bool")+",\n") + } + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.MapEntry != nil { + s = append(s, "MapEntry: "+valueToGoStringDescriptor(this.MapEntry, "bool")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FieldOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 11) + s = append(s, "&descriptor.FieldOptions{") + if this.Ctype != nil { + s = append(s, "Ctype: "+valueToGoStringDescriptor(this.Ctype, "FieldOptions_CType")+",\n") + } + if this.Packed != nil { + s = append(s, "Packed: "+valueToGoStringDescriptor(this.Packed, "bool")+",\n") + } + if this.Jstype != nil { + s = append(s, "Jstype: "+valueToGoStringDescriptor(this.Jstype, "FieldOptions_JSType")+",\n") + } + if this.Lazy != nil { + s = append(s, "Lazy: "+valueToGoStringDescriptor(this.Lazy, "bool")+",\n") + } + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.Weak != nil { + s = append(s, "Weak: "+valueToGoStringDescriptor(this.Weak, "bool")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *OneofOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.OneofOptions{") + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *EnumOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&descriptor.EnumOptions{") + if this.AllowAlias != nil { + s = append(s, "AllowAlias: "+valueToGoStringDescriptor(this.AllowAlias, "bool")+",\n") + } + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *EnumValueOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.EnumValueOptions{") + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ServiceOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.ServiceOptions{") + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *MethodOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&descriptor.MethodOptions{") + if this.Deprecated != nil { + s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") + } + if this.IdempotencyLevel != nil { + s = append(s, "IdempotencyLevel: "+valueToGoStringDescriptor(this.IdempotencyLevel, "MethodOptions_IdempotencyLevel")+",\n") + } + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *UninterpretedOption) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 11) + s = append(s, "&descriptor.UninterpretedOption{") + if this.Name != nil { + s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") + } + if this.IdentifierValue != nil { + s = append(s, "IdentifierValue: "+valueToGoStringDescriptor(this.IdentifierValue, "string")+",\n") + } + if this.PositiveIntValue != nil { + s = append(s, "PositiveIntValue: "+valueToGoStringDescriptor(this.PositiveIntValue, "uint64")+",\n") + } + if this.NegativeIntValue != nil { + s = append(s, "NegativeIntValue: "+valueToGoStringDescriptor(this.NegativeIntValue, "int64")+",\n") + } + if this.DoubleValue != nil { + s = append(s, "DoubleValue: "+valueToGoStringDescriptor(this.DoubleValue, "float64")+",\n") + } + if this.StringValue != nil { + s = append(s, "StringValue: "+valueToGoStringDescriptor(this.StringValue, "byte")+",\n") + } + if this.AggregateValue != nil { + s = append(s, "AggregateValue: "+valueToGoStringDescriptor(this.AggregateValue, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *UninterpretedOption_NamePart) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.UninterpretedOption_NamePart{") + if this.NamePart != nil { + s = append(s, "NamePart: "+valueToGoStringDescriptor(this.NamePart, "string")+",\n") + } + if this.IsExtension != nil { + s = append(s, "IsExtension: "+valueToGoStringDescriptor(this.IsExtension, "bool")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *SourceCodeInfo) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.SourceCodeInfo{") + if this.Location != nil { + s = append(s, "Location: "+fmt.Sprintf("%#v", this.Location)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *SourceCodeInfo_Location) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&descriptor.SourceCodeInfo_Location{") + if this.Path != nil { + s = append(s, "Path: "+fmt.Sprintf("%#v", this.Path)+",\n") + } + if this.Span != nil { + s = append(s, "Span: "+fmt.Sprintf("%#v", this.Span)+",\n") + } + if this.LeadingComments != nil { + s = append(s, "LeadingComments: "+valueToGoStringDescriptor(this.LeadingComments, "string")+",\n") + } + if this.TrailingComments != nil { + s = append(s, "TrailingComments: "+valueToGoStringDescriptor(this.TrailingComments, "string")+",\n") + } + if this.LeadingDetachedComments != nil { + s = append(s, "LeadingDetachedComments: "+fmt.Sprintf("%#v", this.LeadingDetachedComments)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *GeneratedCodeInfo) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.GeneratedCodeInfo{") + if this.Annotation != nil { + s = append(s, "Annotation: "+fmt.Sprintf("%#v", this.Annotation)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *GeneratedCodeInfo_Annotation) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&descriptor.GeneratedCodeInfo_Annotation{") + if this.Path != nil { + s = append(s, "Path: "+fmt.Sprintf("%#v", this.Path)+",\n") + } + if this.SourceFile != nil { + s = append(s, "SourceFile: "+valueToGoStringDescriptor(this.SourceFile, "string")+",\n") + } + if this.Begin != nil { + s = append(s, "Begin: "+valueToGoStringDescriptor(this.Begin, "int32")+",\n") + } + if this.End != nil { + s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringDescriptor(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func extensionToGoStringDescriptor(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) + if e == nil { + return "nil" + } + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" + keys := make([]int, 0, len(e)) + for k := range e { + keys = append(keys, int(k)) + } + sort.Ints(keys) + ss := []string{} + for _, k := range keys { + ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) + } + s += strings.Join(ss, ",") + "})" + return s +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go new file mode 100644 index 00000000..e0846a35 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go @@ -0,0 +1,390 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package descriptor + +import ( + "strings" +) + +func (msg *DescriptorProto) GetMapFields() (*FieldDescriptorProto, *FieldDescriptorProto) { + if !msg.GetOptions().GetMapEntry() { + return nil, nil + } + return msg.GetField()[0], msg.GetField()[1] +} + +func dotToUnderscore(r rune) rune { + if r == '.' { + return '_' + } + return r +} + +func (field *FieldDescriptorProto) WireType() (wire int) { + switch *field.Type { + case FieldDescriptorProto_TYPE_DOUBLE: + return 1 + case FieldDescriptorProto_TYPE_FLOAT: + return 5 + case FieldDescriptorProto_TYPE_INT64: + return 0 + case FieldDescriptorProto_TYPE_UINT64: + return 0 + case FieldDescriptorProto_TYPE_INT32: + return 0 + case FieldDescriptorProto_TYPE_UINT32: + return 0 + case FieldDescriptorProto_TYPE_FIXED64: + return 1 + case FieldDescriptorProto_TYPE_FIXED32: + return 5 + case FieldDescriptorProto_TYPE_BOOL: + return 0 + case FieldDescriptorProto_TYPE_STRING: + return 2 + case FieldDescriptorProto_TYPE_GROUP: + return 2 + case FieldDescriptorProto_TYPE_MESSAGE: + return 2 + case FieldDescriptorProto_TYPE_BYTES: + return 2 + case FieldDescriptorProto_TYPE_ENUM: + return 0 + case FieldDescriptorProto_TYPE_SFIXED32: + return 5 + case FieldDescriptorProto_TYPE_SFIXED64: + return 1 + case FieldDescriptorProto_TYPE_SINT32: + return 0 + case FieldDescriptorProto_TYPE_SINT64: + return 0 + } + panic("unreachable") +} + +func (field *FieldDescriptorProto) GetKeyUint64() (x uint64) { + packed := field.IsPacked() + wireType := field.WireType() + fieldNumber := field.GetNumber() + if packed { + wireType = 2 + } + x = uint64(uint32(fieldNumber)<<3 | uint32(wireType)) + return x +} + +func (field *FieldDescriptorProto) GetKey3Uint64() (x uint64) { + packed := field.IsPacked3() + wireType := field.WireType() + fieldNumber := field.GetNumber() + if packed { + wireType = 2 + } + x = uint64(uint32(fieldNumber)<<3 | uint32(wireType)) + return x +} + +func (field *FieldDescriptorProto) GetKey() []byte { + x := field.GetKeyUint64() + i := 0 + keybuf := make([]byte, 0) + for i = 0; x > 127; i++ { + keybuf = append(keybuf, 0x80|uint8(x&0x7F)) + x >>= 7 + } + keybuf = append(keybuf, uint8(x)) + return keybuf +} + +func (field *FieldDescriptorProto) GetKey3() []byte { + x := field.GetKey3Uint64() + i := 0 + keybuf := make([]byte, 0) + for i = 0; x > 127; i++ { + keybuf = append(keybuf, 0x80|uint8(x&0x7F)) + x >>= 7 + } + keybuf = append(keybuf, uint8(x)) + return keybuf +} + +func (desc *FileDescriptorSet) GetField(packageName, messageName, fieldName string) *FieldDescriptorProto { + msg := desc.GetMessage(packageName, messageName) + if msg == nil { + return nil + } + for _, field := range msg.GetField() { + if field.GetName() == fieldName { + return field + } + } + return nil +} + +func (file *FileDescriptorProto) GetMessage(typeName string) *DescriptorProto { + for _, msg := range file.GetMessageType() { + if msg.GetName() == typeName { + return msg + } + nes := file.GetNestedMessage(msg, strings.TrimPrefix(typeName, msg.GetName()+".")) + if nes != nil { + return nes + } + } + return nil +} + +func (file *FileDescriptorProto) GetNestedMessage(msg *DescriptorProto, typeName string) *DescriptorProto { + for _, nes := range msg.GetNestedType() { + if nes.GetName() == typeName { + return nes + } + res := file.GetNestedMessage(nes, strings.TrimPrefix(typeName, nes.GetName()+".")) + if res != nil { + return res + } + } + return nil +} + +func (desc *FileDescriptorSet) GetMessage(packageName string, typeName string) *DescriptorProto { + for _, file := range desc.GetFile() { + if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) { + continue + } + for _, msg := range file.GetMessageType() { + if msg.GetName() == typeName { + return msg + } + } + for _, msg := range file.GetMessageType() { + for _, nes := range msg.GetNestedType() { + if nes.GetName() == typeName { + return nes + } + if msg.GetName()+"."+nes.GetName() == typeName { + return nes + } + } + } + } + return nil +} + +func (desc *FileDescriptorSet) IsProto3(packageName string, typeName string) bool { + for _, file := range desc.GetFile() { + if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) { + continue + } + for _, msg := range file.GetMessageType() { + if msg.GetName() == typeName { + return file.GetSyntax() == "proto3" + } + } + for _, msg := range file.GetMessageType() { + for _, nes := range msg.GetNestedType() { + if nes.GetName() == typeName { + return file.GetSyntax() == "proto3" + } + if msg.GetName()+"."+nes.GetName() == typeName { + return file.GetSyntax() == "proto3" + } + } + } + } + return false +} + +func (msg *DescriptorProto) IsExtendable() bool { + return len(msg.GetExtensionRange()) > 0 +} + +func (desc *FileDescriptorSet) FindExtension(packageName string, typeName string, fieldName string) (extPackageName string, field *FieldDescriptorProto) { + parent := desc.GetMessage(packageName, typeName) + if parent == nil { + return "", nil + } + if !parent.IsExtendable() { + return "", nil + } + extendee := "." + packageName + "." + typeName + for _, file := range desc.GetFile() { + for _, ext := range file.GetExtension() { + if strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) { + if !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) { + continue + } + } else { + if ext.GetExtendee() != extendee { + continue + } + } + if ext.GetName() == fieldName { + return file.GetPackage(), ext + } + } + } + return "", nil +} + +func (desc *FileDescriptorSet) FindExtensionByFieldNumber(packageName string, typeName string, fieldNum int32) (extPackageName string, field *FieldDescriptorProto) { + parent := desc.GetMessage(packageName, typeName) + if parent == nil { + return "", nil + } + if !parent.IsExtendable() { + return "", nil + } + extendee := "." + packageName + "." + typeName + for _, file := range desc.GetFile() { + for _, ext := range file.GetExtension() { + if strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) { + if !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) { + continue + } + } else { + if ext.GetExtendee() != extendee { + continue + } + } + if ext.GetNumber() == fieldNum { + return file.GetPackage(), ext + } + } + } + return "", nil +} + +func (desc *FileDescriptorSet) FindMessage(packageName string, typeName string, fieldName string) (msgPackageName string, msgName string) { + parent := desc.GetMessage(packageName, typeName) + if parent == nil { + return "", "" + } + field := parent.GetFieldDescriptor(fieldName) + if field == nil { + var extPackageName string + extPackageName, field = desc.FindExtension(packageName, typeName, fieldName) + if field == nil { + return "", "" + } + packageName = extPackageName + } + typeNames := strings.Split(field.GetTypeName(), ".") + if len(typeNames) == 1 { + msg := desc.GetMessage(packageName, typeName) + if msg == nil { + return "", "" + } + return packageName, msg.GetName() + } + if len(typeNames) > 2 { + for i := 1; i < len(typeNames)-1; i++ { + packageName = strings.Join(typeNames[1:len(typeNames)-i], ".") + typeName = strings.Join(typeNames[len(typeNames)-i:], ".") + msg := desc.GetMessage(packageName, typeName) + if msg != nil { + typeNames := strings.Split(msg.GetName(), ".") + if len(typeNames) == 1 { + return packageName, msg.GetName() + } + return strings.Join(typeNames[1:len(typeNames)-1], "."), typeNames[len(typeNames)-1] + } + } + } + return "", "" +} + +func (msg *DescriptorProto) GetFieldDescriptor(fieldName string) *FieldDescriptorProto { + for _, field := range msg.GetField() { + if field.GetName() == fieldName { + return field + } + } + return nil +} + +func (desc *FileDescriptorSet) GetEnum(packageName string, typeName string) *EnumDescriptorProto { + for _, file := range desc.GetFile() { + if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) { + continue + } + for _, enum := range file.GetEnumType() { + if enum.GetName() == typeName { + return enum + } + } + } + return nil +} + +func (f *FieldDescriptorProto) IsEnum() bool { + return *f.Type == FieldDescriptorProto_TYPE_ENUM +} + +func (f *FieldDescriptorProto) IsMessage() bool { + return *f.Type == FieldDescriptorProto_TYPE_MESSAGE +} + +func (f *FieldDescriptorProto) IsBytes() bool { + return *f.Type == FieldDescriptorProto_TYPE_BYTES +} + +func (f *FieldDescriptorProto) IsRepeated() bool { + return f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REPEATED +} + +func (f *FieldDescriptorProto) IsString() bool { + return *f.Type == FieldDescriptorProto_TYPE_STRING +} + +func (f *FieldDescriptorProto) IsBool() bool { + return *f.Type == FieldDescriptorProto_TYPE_BOOL +} + +func (f *FieldDescriptorProto) IsRequired() bool { + return f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REQUIRED +} + +func (f *FieldDescriptorProto) IsPacked() bool { + return f.Options != nil && f.GetOptions().GetPacked() +} + +func (f *FieldDescriptorProto) IsPacked3() bool { + if f.IsRepeated() && f.IsScalar() { + if f.Options == nil || f.GetOptions().Packed == nil { + return true + } + return f.Options != nil && f.GetOptions().GetPacked() + } + return false +} + +func (m *DescriptorProto) HasExtension() bool { + return len(m.ExtensionRange) > 0 +} diff --git a/vendor/github.com/gorilla/websocket/.gitignore b/vendor/github.com/gorilla/websocket/.gitignore new file mode 100644 index 00000000..cd3fcd1e --- /dev/null +++ b/vendor/github.com/gorilla/websocket/.gitignore @@ -0,0 +1,25 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe + +.idea/ +*.iml diff --git a/vendor/github.com/gorilla/websocket/.travis.yml b/vendor/github.com/gorilla/websocket/.travis.yml new file mode 100644 index 00000000..a49db51c --- /dev/null +++ b/vendor/github.com/gorilla/websocket/.travis.yml @@ -0,0 +1,19 @@ +language: go +sudo: false + +matrix: + include: + - go: 1.7.x + - go: 1.8.x + - go: 1.9.x + - go: 1.10.x + - go: 1.11.x + - go: tip + allow_failures: + - go: tip + +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d .) + - go vet $(go list ./... | grep -v /vendor/) + - go test -v -race ./... diff --git a/vendor/github.com/gorilla/websocket/AUTHORS b/vendor/github.com/gorilla/websocket/AUTHORS new file mode 100644 index 00000000..1931f400 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/AUTHORS @@ -0,0 +1,9 @@ +# This is the official list of Gorilla WebSocket authors for copyright +# purposes. +# +# Please keep the list sorted. + +Gary Burd +Google LLC (https://opensource.google.com/) +Joachim Bauch + diff --git a/vendor/github.com/gorilla/websocket/LICENSE b/vendor/github.com/gorilla/websocket/LICENSE new file mode 100644 index 00000000..9171c972 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/gorilla/websocket/README.md b/vendor/github.com/gorilla/websocket/README.md new file mode 100644 index 00000000..20e391f8 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/README.md @@ -0,0 +1,64 @@ +# Gorilla WebSocket + +Gorilla WebSocket is a [Go](http://golang.org/) implementation of the +[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. + +[![Build Status](https://travis-ci.org/gorilla/websocket.svg?branch=master)](https://travis-ci.org/gorilla/websocket) +[![GoDoc](https://godoc.org/github.com/gorilla/websocket?status.svg)](https://godoc.org/github.com/gorilla/websocket) + +### Documentation + +* [API Reference](http://godoc.org/github.com/gorilla/websocket) +* [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat) +* [Command example](https://github.com/gorilla/websocket/tree/master/examples/command) +* [Client and server example](https://github.com/gorilla/websocket/tree/master/examples/echo) +* [File watch example](https://github.com/gorilla/websocket/tree/master/examples/filewatch) + +### Status + +The Gorilla WebSocket package provides a complete and tested implementation of +the [WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. The +package API is stable. + +### Installation + + go get github.com/gorilla/websocket + +### Protocol Compliance + +The Gorilla WebSocket package passes the server tests in the [Autobahn Test +Suite](http://autobahn.ws/testsuite) using the application in the [examples/autobahn +subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn). + +### Gorilla WebSocket compared with other packages + + + + + + + + + + + + + + + + + + +
github.com/gorillagolang.org/x/net
RFC 6455 Features
Passes Autobahn Test SuiteYesNo
Receive fragmented messageYesNo, see note 1
Send close messageYesNo
Send pings and receive pongsYesNo
Get the type of a received data messageYesYes, see note 2
Other Features
Compression ExtensionsExperimentalNo
Read message using io.ReaderYesNo, see note 3
Write message using io.WriteCloserYesNo, see note 3
+ +Notes: + +1. Large messages are fragmented in [Chrome's new WebSocket implementation](http://www.ietf.org/mail-archive/web/hybi/current/msg10503.html). +2. The application can get the type of a received data message by implementing + a [Codec marshal](http://godoc.org/golang.org/x/net/websocket#Codec.Marshal) + function. +3. The go.net io.Reader and io.Writer operate across WebSocket frame boundaries. + Read returns when the input buffer is full or a frame boundary is + encountered. Each call to Write sends a single frame message. The Gorilla + io.Reader and io.WriteCloser operate on a single WebSocket message. + diff --git a/vendor/github.com/gorilla/websocket/client.go b/vendor/github.com/gorilla/websocket/client.go new file mode 100644 index 00000000..2e32fd50 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/client.go @@ -0,0 +1,395 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "bytes" + "context" + "crypto/tls" + "errors" + "io" + "io/ioutil" + "net" + "net/http" + "net/http/httptrace" + "net/url" + "strings" + "time" +) + +// ErrBadHandshake is returned when the server response to opening handshake is +// invalid. +var ErrBadHandshake = errors.New("websocket: bad handshake") + +var errInvalidCompression = errors.New("websocket: invalid compression negotiation") + +// NewClient creates a new client connection using the given net connection. +// The URL u specifies the host and request URI. Use requestHeader to specify +// the origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies +// (Cookie). Use the response.Header to get the selected subprotocol +// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). +// +// If the WebSocket handshake fails, ErrBadHandshake is returned along with a +// non-nil *http.Response so that callers can handle redirects, authentication, +// etc. +// +// Deprecated: Use Dialer instead. +func NewClient(netConn net.Conn, u *url.URL, requestHeader http.Header, readBufSize, writeBufSize int) (c *Conn, response *http.Response, err error) { + d := Dialer{ + ReadBufferSize: readBufSize, + WriteBufferSize: writeBufSize, + NetDial: func(net, addr string) (net.Conn, error) { + return netConn, nil + }, + } + return d.Dial(u.String(), requestHeader) +} + +// A Dialer contains options for connecting to WebSocket server. +type Dialer struct { + // NetDial specifies the dial function for creating TCP connections. If + // NetDial is nil, net.Dial is used. + NetDial func(network, addr string) (net.Conn, error) + + // NetDialContext specifies the dial function for creating TCP connections. If + // NetDialContext is nil, net.DialContext is used. + NetDialContext func(ctx context.Context, network, addr string) (net.Conn, error) + + // Proxy specifies a function to return a proxy for a given + // Request. If the function returns a non-nil error, the + // request is aborted with the provided error. + // If Proxy is nil or returns a nil *URL, no proxy is used. + Proxy func(*http.Request) (*url.URL, error) + + // TLSClientConfig specifies the TLS configuration to use with tls.Client. + // If nil, the default configuration is used. + TLSClientConfig *tls.Config + + // HandshakeTimeout specifies the duration for the handshake to complete. + HandshakeTimeout time.Duration + + // ReadBufferSize and WriteBufferSize specify I/O buffer sizes. If a buffer + // size is zero, then a useful default size is used. The I/O buffer sizes + // do not limit the size of the messages that can be sent or received. + ReadBufferSize, WriteBufferSize int + + // WriteBufferPool is a pool of buffers for write operations. If the value + // is not set, then write buffers are allocated to the connection for the + // lifetime of the connection. + // + // A pool is most useful when the application has a modest volume of writes + // across a large number of connections. + // + // Applications should use a single pool for each unique value of + // WriteBufferSize. + WriteBufferPool BufferPool + + // Subprotocols specifies the client's requested subprotocols. + Subprotocols []string + + // EnableCompression specifies if the client should attempt to negotiate + // per message compression (RFC 7692). Setting this value to true does not + // guarantee that compression will be supported. Currently only "no context + // takeover" modes are supported. + EnableCompression bool + + // Jar specifies the cookie jar. + // If Jar is nil, cookies are not sent in requests and ignored + // in responses. + Jar http.CookieJar +} + +// Dial creates a new client connection by calling DialContext with a background context. +func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { + return d.DialContext(context.Background(), urlStr, requestHeader) +} + +var errMalformedURL = errors.New("malformed ws or wss URL") + +func hostPortNoPort(u *url.URL) (hostPort, hostNoPort string) { + hostPort = u.Host + hostNoPort = u.Host + if i := strings.LastIndex(u.Host, ":"); i > strings.LastIndex(u.Host, "]") { + hostNoPort = hostNoPort[:i] + } else { + switch u.Scheme { + case "wss": + hostPort += ":443" + case "https": + hostPort += ":443" + default: + hostPort += ":80" + } + } + return hostPort, hostNoPort +} + +// DefaultDialer is a dialer with all fields set to the default values. +var DefaultDialer = &Dialer{ + Proxy: http.ProxyFromEnvironment, + HandshakeTimeout: 45 * time.Second, +} + +// nilDialer is dialer to use when receiver is nil. +var nilDialer = *DefaultDialer + +// DialContext creates a new client connection. Use requestHeader to specify the +// origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies (Cookie). +// Use the response.Header to get the selected subprotocol +// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). +// +// The context will be used in the request and in the Dialer +// +// If the WebSocket handshake fails, ErrBadHandshake is returned along with a +// non-nil *http.Response so that callers can handle redirects, authentication, +// etcetera. The response body may not contain the entire response and does not +// need to be closed by the application. +func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { + if d == nil { + d = &nilDialer + } + + challengeKey, err := generateChallengeKey() + if err != nil { + return nil, nil, err + } + + u, err := url.Parse(urlStr) + if err != nil { + return nil, nil, err + } + + switch u.Scheme { + case "ws": + u.Scheme = "http" + case "wss": + u.Scheme = "https" + default: + return nil, nil, errMalformedURL + } + + if u.User != nil { + // User name and password are not allowed in websocket URIs. + return nil, nil, errMalformedURL + } + + req := &http.Request{ + Method: "GET", + URL: u, + Proto: "HTTP/1.1", + ProtoMajor: 1, + ProtoMinor: 1, + Header: make(http.Header), + Host: u.Host, + } + req = req.WithContext(ctx) + + // Set the cookies present in the cookie jar of the dialer + if d.Jar != nil { + for _, cookie := range d.Jar.Cookies(u) { + req.AddCookie(cookie) + } + } + + // Set the request headers using the capitalization for names and values in + // RFC examples. Although the capitalization shouldn't matter, there are + // servers that depend on it. The Header.Set method is not used because the + // method canonicalizes the header names. + req.Header["Upgrade"] = []string{"websocket"} + req.Header["Connection"] = []string{"Upgrade"} + req.Header["Sec-WebSocket-Key"] = []string{challengeKey} + req.Header["Sec-WebSocket-Version"] = []string{"13"} + if len(d.Subprotocols) > 0 { + req.Header["Sec-WebSocket-Protocol"] = []string{strings.Join(d.Subprotocols, ", ")} + } + for k, vs := range requestHeader { + switch { + case k == "Host": + if len(vs) > 0 { + req.Host = vs[0] + } + case k == "Upgrade" || + k == "Connection" || + k == "Sec-Websocket-Key" || + k == "Sec-Websocket-Version" || + k == "Sec-Websocket-Extensions" || + (k == "Sec-Websocket-Protocol" && len(d.Subprotocols) > 0): + return nil, nil, errors.New("websocket: duplicate header not allowed: " + k) + case k == "Sec-Websocket-Protocol": + req.Header["Sec-WebSocket-Protocol"] = vs + default: + req.Header[k] = vs + } + } + + if d.EnableCompression { + req.Header["Sec-WebSocket-Extensions"] = []string{"permessage-deflate; server_no_context_takeover; client_no_context_takeover"} + } + + if d.HandshakeTimeout != 0 { + var cancel func() + ctx, cancel = context.WithTimeout(ctx, d.HandshakeTimeout) + defer cancel() + } + + // Get network dial function. + var netDial func(network, add string) (net.Conn, error) + + if d.NetDialContext != nil { + netDial = func(network, addr string) (net.Conn, error) { + return d.NetDialContext(ctx, network, addr) + } + } else if d.NetDial != nil { + netDial = d.NetDial + } else { + netDialer := &net.Dialer{} + netDial = func(network, addr string) (net.Conn, error) { + return netDialer.DialContext(ctx, network, addr) + } + } + + // If needed, wrap the dial function to set the connection deadline. + if deadline, ok := ctx.Deadline(); ok { + forwardDial := netDial + netDial = func(network, addr string) (net.Conn, error) { + c, err := forwardDial(network, addr) + if err != nil { + return nil, err + } + err = c.SetDeadline(deadline) + if err != nil { + c.Close() + return nil, err + } + return c, nil + } + } + + // If needed, wrap the dial function to connect through a proxy. + if d.Proxy != nil { + proxyURL, err := d.Proxy(req) + if err != nil { + return nil, nil, err + } + if proxyURL != nil { + dialer, err := proxy_FromURL(proxyURL, netDialerFunc(netDial)) + if err != nil { + return nil, nil, err + } + netDial = dialer.Dial + } + } + + hostPort, hostNoPort := hostPortNoPort(u) + trace := httptrace.ContextClientTrace(ctx) + if trace != nil && trace.GetConn != nil { + trace.GetConn(hostPort) + } + + netConn, err := netDial("tcp", hostPort) + if trace != nil && trace.GotConn != nil { + trace.GotConn(httptrace.GotConnInfo{ + Conn: netConn, + }) + } + if err != nil { + return nil, nil, err + } + + defer func() { + if netConn != nil { + netConn.Close() + } + }() + + if u.Scheme == "https" { + cfg := cloneTLSConfig(d.TLSClientConfig) + if cfg.ServerName == "" { + cfg.ServerName = hostNoPort + } + tlsConn := tls.Client(netConn, cfg) + netConn = tlsConn + + var err error + if trace != nil { + err = doHandshakeWithTrace(trace, tlsConn, cfg) + } else { + err = doHandshake(tlsConn, cfg) + } + + if err != nil { + return nil, nil, err + } + } + + conn := newConn(netConn, false, d.ReadBufferSize, d.WriteBufferSize, d.WriteBufferPool, nil, nil) + + if err := req.Write(netConn); err != nil { + return nil, nil, err + } + + if trace != nil && trace.GotFirstResponseByte != nil { + if peek, err := conn.br.Peek(1); err == nil && len(peek) == 1 { + trace.GotFirstResponseByte() + } + } + + resp, err := http.ReadResponse(conn.br, req) + if err != nil { + return nil, nil, err + } + + if d.Jar != nil { + if rc := resp.Cookies(); len(rc) > 0 { + d.Jar.SetCookies(u, rc) + } + } + + if resp.StatusCode != 101 || + !strings.EqualFold(resp.Header.Get("Upgrade"), "websocket") || + !strings.EqualFold(resp.Header.Get("Connection"), "upgrade") || + resp.Header.Get("Sec-Websocket-Accept") != computeAcceptKey(challengeKey) { + // Before closing the network connection on return from this + // function, slurp up some of the response to aid application + // debugging. + buf := make([]byte, 1024) + n, _ := io.ReadFull(resp.Body, buf) + resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n])) + return nil, resp, ErrBadHandshake + } + + for _, ext := range parseExtensions(resp.Header) { + if ext[""] != "permessage-deflate" { + continue + } + _, snct := ext["server_no_context_takeover"] + _, cnct := ext["client_no_context_takeover"] + if !snct || !cnct { + return nil, resp, errInvalidCompression + } + conn.newCompressionWriter = compressNoContextTakeover + conn.newDecompressionReader = decompressNoContextTakeover + break + } + + resp.Body = ioutil.NopCloser(bytes.NewReader([]byte{})) + conn.subprotocol = resp.Header.Get("Sec-Websocket-Protocol") + + netConn.SetDeadline(time.Time{}) + netConn = nil // to avoid close in defer. + return conn, resp, nil +} + +func doHandshake(tlsConn *tls.Conn, cfg *tls.Config) error { + if err := tlsConn.Handshake(); err != nil { + return err + } + if !cfg.InsecureSkipVerify { + if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/gorilla/websocket/client_clone.go b/vendor/github.com/gorilla/websocket/client_clone.go new file mode 100644 index 00000000..4f0d9437 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/client_clone.go @@ -0,0 +1,16 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.8 + +package websocket + +import "crypto/tls" + +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + return cfg.Clone() +} diff --git a/vendor/github.com/gorilla/websocket/client_clone_legacy.go b/vendor/github.com/gorilla/websocket/client_clone_legacy.go new file mode 100644 index 00000000..babb007f --- /dev/null +++ b/vendor/github.com/gorilla/websocket/client_clone_legacy.go @@ -0,0 +1,38 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.8 + +package websocket + +import "crypto/tls" + +// cloneTLSConfig clones all public fields except the fields +// SessionTicketsDisabled and SessionTicketKey. This avoids copying the +// sync.Mutex in the sync.Once and makes it safe to call cloneTLSConfig on a +// config in active use. +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + return &tls.Config{ + Rand: cfg.Rand, + Time: cfg.Time, + Certificates: cfg.Certificates, + NameToCertificate: cfg.NameToCertificate, + GetCertificate: cfg.GetCertificate, + RootCAs: cfg.RootCAs, + NextProtos: cfg.NextProtos, + ServerName: cfg.ServerName, + ClientAuth: cfg.ClientAuth, + ClientCAs: cfg.ClientCAs, + InsecureSkipVerify: cfg.InsecureSkipVerify, + CipherSuites: cfg.CipherSuites, + PreferServerCipherSuites: cfg.PreferServerCipherSuites, + ClientSessionCache: cfg.ClientSessionCache, + MinVersion: cfg.MinVersion, + MaxVersion: cfg.MaxVersion, + CurvePreferences: cfg.CurvePreferences, + } +} diff --git a/vendor/github.com/gorilla/websocket/compression.go b/vendor/github.com/gorilla/websocket/compression.go new file mode 100644 index 00000000..813ffb1e --- /dev/null +++ b/vendor/github.com/gorilla/websocket/compression.go @@ -0,0 +1,148 @@ +// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "compress/flate" + "errors" + "io" + "strings" + "sync" +) + +const ( + minCompressionLevel = -2 // flate.HuffmanOnly not defined in Go < 1.6 + maxCompressionLevel = flate.BestCompression + defaultCompressionLevel = 1 +) + +var ( + flateWriterPools [maxCompressionLevel - minCompressionLevel + 1]sync.Pool + flateReaderPool = sync.Pool{New: func() interface{} { + return flate.NewReader(nil) + }} +) + +func decompressNoContextTakeover(r io.Reader) io.ReadCloser { + const tail = + // Add four bytes as specified in RFC + "\x00\x00\xff\xff" + + // Add final block to squelch unexpected EOF error from flate reader. + "\x01\x00\x00\xff\xff" + + fr, _ := flateReaderPool.Get().(io.ReadCloser) + fr.(flate.Resetter).Reset(io.MultiReader(r, strings.NewReader(tail)), nil) + return &flateReadWrapper{fr} +} + +func isValidCompressionLevel(level int) bool { + return minCompressionLevel <= level && level <= maxCompressionLevel +} + +func compressNoContextTakeover(w io.WriteCloser, level int) io.WriteCloser { + p := &flateWriterPools[level-minCompressionLevel] + tw := &truncWriter{w: w} + fw, _ := p.Get().(*flate.Writer) + if fw == nil { + fw, _ = flate.NewWriter(tw, level) + } else { + fw.Reset(tw) + } + return &flateWriteWrapper{fw: fw, tw: tw, p: p} +} + +// truncWriter is an io.Writer that writes all but the last four bytes of the +// stream to another io.Writer. +type truncWriter struct { + w io.WriteCloser + n int + p [4]byte +} + +func (w *truncWriter) Write(p []byte) (int, error) { + n := 0 + + // fill buffer first for simplicity. + if w.n < len(w.p) { + n = copy(w.p[w.n:], p) + p = p[n:] + w.n += n + if len(p) == 0 { + return n, nil + } + } + + m := len(p) + if m > len(w.p) { + m = len(w.p) + } + + if nn, err := w.w.Write(w.p[:m]); err != nil { + return n + nn, err + } + + copy(w.p[:], w.p[m:]) + copy(w.p[len(w.p)-m:], p[len(p)-m:]) + nn, err := w.w.Write(p[:len(p)-m]) + return n + nn, err +} + +type flateWriteWrapper struct { + fw *flate.Writer + tw *truncWriter + p *sync.Pool +} + +func (w *flateWriteWrapper) Write(p []byte) (int, error) { + if w.fw == nil { + return 0, errWriteClosed + } + return w.fw.Write(p) +} + +func (w *flateWriteWrapper) Close() error { + if w.fw == nil { + return errWriteClosed + } + err1 := w.fw.Flush() + w.p.Put(w.fw) + w.fw = nil + if w.tw.p != [4]byte{0, 0, 0xff, 0xff} { + return errors.New("websocket: internal error, unexpected bytes at end of flate stream") + } + err2 := w.tw.w.Close() + if err1 != nil { + return err1 + } + return err2 +} + +type flateReadWrapper struct { + fr io.ReadCloser +} + +func (r *flateReadWrapper) Read(p []byte) (int, error) { + if r.fr == nil { + return 0, io.ErrClosedPipe + } + n, err := r.fr.Read(p) + if err == io.EOF { + // Preemptively place the reader back in the pool. This helps with + // scenarios where the application does not call NextReader() soon after + // this final read. + r.Close() + } + return n, err +} + +func (r *flateReadWrapper) Close() error { + if r.fr == nil { + return io.ErrClosedPipe + } + err := r.fr.Close() + flateReaderPool.Put(r.fr) + r.fr = nil + return err +} diff --git a/vendor/github.com/gorilla/websocket/conn.go b/vendor/github.com/gorilla/websocket/conn.go new file mode 100644 index 00000000..d2a21c14 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/conn.go @@ -0,0 +1,1165 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "bufio" + "encoding/binary" + "errors" + "io" + "io/ioutil" + "math/rand" + "net" + "strconv" + "sync" + "time" + "unicode/utf8" +) + +const ( + // Frame header byte 0 bits from Section 5.2 of RFC 6455 + finalBit = 1 << 7 + rsv1Bit = 1 << 6 + rsv2Bit = 1 << 5 + rsv3Bit = 1 << 4 + + // Frame header byte 1 bits from Section 5.2 of RFC 6455 + maskBit = 1 << 7 + + maxFrameHeaderSize = 2 + 8 + 4 // Fixed header + length + mask + maxControlFramePayloadSize = 125 + + writeWait = time.Second + + defaultReadBufferSize = 4096 + defaultWriteBufferSize = 4096 + + continuationFrame = 0 + noFrame = -1 +) + +// Close codes defined in RFC 6455, section 11.7. +const ( + CloseNormalClosure = 1000 + CloseGoingAway = 1001 + CloseProtocolError = 1002 + CloseUnsupportedData = 1003 + CloseNoStatusReceived = 1005 + CloseAbnormalClosure = 1006 + CloseInvalidFramePayloadData = 1007 + ClosePolicyViolation = 1008 + CloseMessageTooBig = 1009 + CloseMandatoryExtension = 1010 + CloseInternalServerErr = 1011 + CloseServiceRestart = 1012 + CloseTryAgainLater = 1013 + CloseTLSHandshake = 1015 +) + +// The message types are defined in RFC 6455, section 11.8. +const ( + // TextMessage denotes a text data message. The text message payload is + // interpreted as UTF-8 encoded text data. + TextMessage = 1 + + // BinaryMessage denotes a binary data message. + BinaryMessage = 2 + + // CloseMessage denotes a close control message. The optional message + // payload contains a numeric code and text. Use the FormatCloseMessage + // function to format a close message payload. + CloseMessage = 8 + + // PingMessage denotes a ping control message. The optional message payload + // is UTF-8 encoded text. + PingMessage = 9 + + // PongMessage denotes a pong control message. The optional message payload + // is UTF-8 encoded text. + PongMessage = 10 +) + +// ErrCloseSent is returned when the application writes a message to the +// connection after sending a close message. +var ErrCloseSent = errors.New("websocket: close sent") + +// ErrReadLimit is returned when reading a message that is larger than the +// read limit set for the connection. +var ErrReadLimit = errors.New("websocket: read limit exceeded") + +// netError satisfies the net Error interface. +type netError struct { + msg string + temporary bool + timeout bool +} + +func (e *netError) Error() string { return e.msg } +func (e *netError) Temporary() bool { return e.temporary } +func (e *netError) Timeout() bool { return e.timeout } + +// CloseError represents a close message. +type CloseError struct { + // Code is defined in RFC 6455, section 11.7. + Code int + + // Text is the optional text payload. + Text string +} + +func (e *CloseError) Error() string { + s := []byte("websocket: close ") + s = strconv.AppendInt(s, int64(e.Code), 10) + switch e.Code { + case CloseNormalClosure: + s = append(s, " (normal)"...) + case CloseGoingAway: + s = append(s, " (going away)"...) + case CloseProtocolError: + s = append(s, " (protocol error)"...) + case CloseUnsupportedData: + s = append(s, " (unsupported data)"...) + case CloseNoStatusReceived: + s = append(s, " (no status)"...) + case CloseAbnormalClosure: + s = append(s, " (abnormal closure)"...) + case CloseInvalidFramePayloadData: + s = append(s, " (invalid payload data)"...) + case ClosePolicyViolation: + s = append(s, " (policy violation)"...) + case CloseMessageTooBig: + s = append(s, " (message too big)"...) + case CloseMandatoryExtension: + s = append(s, " (mandatory extension missing)"...) + case CloseInternalServerErr: + s = append(s, " (internal server error)"...) + case CloseTLSHandshake: + s = append(s, " (TLS handshake error)"...) + } + if e.Text != "" { + s = append(s, ": "...) + s = append(s, e.Text...) + } + return string(s) +} + +// IsCloseError returns boolean indicating whether the error is a *CloseError +// with one of the specified codes. +func IsCloseError(err error, codes ...int) bool { + if e, ok := err.(*CloseError); ok { + for _, code := range codes { + if e.Code == code { + return true + } + } + } + return false +} + +// IsUnexpectedCloseError returns boolean indicating whether the error is a +// *CloseError with a code not in the list of expected codes. +func IsUnexpectedCloseError(err error, expectedCodes ...int) bool { + if e, ok := err.(*CloseError); ok { + for _, code := range expectedCodes { + if e.Code == code { + return false + } + } + return true + } + return false +} + +var ( + errWriteTimeout = &netError{msg: "websocket: write timeout", timeout: true, temporary: true} + errUnexpectedEOF = &CloseError{Code: CloseAbnormalClosure, Text: io.ErrUnexpectedEOF.Error()} + errBadWriteOpCode = errors.New("websocket: bad write message type") + errWriteClosed = errors.New("websocket: write closed") + errInvalidControlFrame = errors.New("websocket: invalid control frame") +) + +func newMaskKey() [4]byte { + n := rand.Uint32() + return [4]byte{byte(n), byte(n >> 8), byte(n >> 16), byte(n >> 24)} +} + +func hideTempErr(err error) error { + if e, ok := err.(net.Error); ok && e.Temporary() { + err = &netError{msg: e.Error(), timeout: e.Timeout()} + } + return err +} + +func isControl(frameType int) bool { + return frameType == CloseMessage || frameType == PingMessage || frameType == PongMessage +} + +func isData(frameType int) bool { + return frameType == TextMessage || frameType == BinaryMessage +} + +var validReceivedCloseCodes = map[int]bool{ + // see http://www.iana.org/assignments/websocket/websocket.xhtml#close-code-number + + CloseNormalClosure: true, + CloseGoingAway: true, + CloseProtocolError: true, + CloseUnsupportedData: true, + CloseNoStatusReceived: false, + CloseAbnormalClosure: false, + CloseInvalidFramePayloadData: true, + ClosePolicyViolation: true, + CloseMessageTooBig: true, + CloseMandatoryExtension: true, + CloseInternalServerErr: true, + CloseServiceRestart: true, + CloseTryAgainLater: true, + CloseTLSHandshake: false, +} + +func isValidReceivedCloseCode(code int) bool { + return validReceivedCloseCodes[code] || (code >= 3000 && code <= 4999) +} + +// BufferPool represents a pool of buffers. The *sync.Pool type satisfies this +// interface. The type of the value stored in a pool is not specified. +type BufferPool interface { + // Get gets a value from the pool or returns nil if the pool is empty. + Get() interface{} + // Put adds a value to the pool. + Put(interface{}) +} + +// writePoolData is the type added to the write buffer pool. This wrapper is +// used to prevent applications from peeking at and depending on the values +// added to the pool. +type writePoolData struct{ buf []byte } + +// The Conn type represents a WebSocket connection. +type Conn struct { + conn net.Conn + isServer bool + subprotocol string + + // Write fields + mu chan bool // used as mutex to protect write to conn + writeBuf []byte // frame is constructed in this buffer. + writePool BufferPool + writeBufSize int + writeDeadline time.Time + writer io.WriteCloser // the current writer returned to the application + isWriting bool // for best-effort concurrent write detection + + writeErrMu sync.Mutex + writeErr error + + enableWriteCompression bool + compressionLevel int + newCompressionWriter func(io.WriteCloser, int) io.WriteCloser + + // Read fields + reader io.ReadCloser // the current reader returned to the application + readErr error + br *bufio.Reader + readRemaining int64 // bytes remaining in current frame. + readFinal bool // true the current message has more frames. + readLength int64 // Message size. + readLimit int64 // Maximum message size. + readMaskPos int + readMaskKey [4]byte + handlePong func(string) error + handlePing func(string) error + handleClose func(int, string) error + readErrCount int + messageReader *messageReader // the current low-level reader + + readDecompress bool // whether last read frame had RSV1 set + newDecompressionReader func(io.Reader) io.ReadCloser +} + +func newConn(conn net.Conn, isServer bool, readBufferSize, writeBufferSize int, writeBufferPool BufferPool, br *bufio.Reader, writeBuf []byte) *Conn { + + if br == nil { + if readBufferSize == 0 { + readBufferSize = defaultReadBufferSize + } else if readBufferSize < maxControlFramePayloadSize { + // must be large enough for control frame + readBufferSize = maxControlFramePayloadSize + } + br = bufio.NewReaderSize(conn, readBufferSize) + } + + if writeBufferSize <= 0 { + writeBufferSize = defaultWriteBufferSize + } + writeBufferSize += maxFrameHeaderSize + + if writeBuf == nil && writeBufferPool == nil { + writeBuf = make([]byte, writeBufferSize) + } + + mu := make(chan bool, 1) + mu <- true + c := &Conn{ + isServer: isServer, + br: br, + conn: conn, + mu: mu, + readFinal: true, + writeBuf: writeBuf, + writePool: writeBufferPool, + writeBufSize: writeBufferSize, + enableWriteCompression: true, + compressionLevel: defaultCompressionLevel, + } + c.SetCloseHandler(nil) + c.SetPingHandler(nil) + c.SetPongHandler(nil) + return c +} + +// Subprotocol returns the negotiated protocol for the connection. +func (c *Conn) Subprotocol() string { + return c.subprotocol +} + +// Close closes the underlying network connection without sending or waiting +// for a close message. +func (c *Conn) Close() error { + return c.conn.Close() +} + +// LocalAddr returns the local network address. +func (c *Conn) LocalAddr() net.Addr { + return c.conn.LocalAddr() +} + +// RemoteAddr returns the remote network address. +func (c *Conn) RemoteAddr() net.Addr { + return c.conn.RemoteAddr() +} + +// Write methods + +func (c *Conn) writeFatal(err error) error { + err = hideTempErr(err) + c.writeErrMu.Lock() + if c.writeErr == nil { + c.writeErr = err + } + c.writeErrMu.Unlock() + return err +} + +func (c *Conn) read(n int) ([]byte, error) { + p, err := c.br.Peek(n) + if err == io.EOF { + err = errUnexpectedEOF + } + c.br.Discard(len(p)) + return p, err +} + +func (c *Conn) write(frameType int, deadline time.Time, buf0, buf1 []byte) error { + <-c.mu + defer func() { c.mu <- true }() + + c.writeErrMu.Lock() + err := c.writeErr + c.writeErrMu.Unlock() + if err != nil { + return err + } + + c.conn.SetWriteDeadline(deadline) + if len(buf1) == 0 { + _, err = c.conn.Write(buf0) + } else { + err = c.writeBufs(buf0, buf1) + } + if err != nil { + return c.writeFatal(err) + } + if frameType == CloseMessage { + c.writeFatal(ErrCloseSent) + } + return nil +} + +// WriteControl writes a control message with the given deadline. The allowed +// message types are CloseMessage, PingMessage and PongMessage. +func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) error { + if !isControl(messageType) { + return errBadWriteOpCode + } + if len(data) > maxControlFramePayloadSize { + return errInvalidControlFrame + } + + b0 := byte(messageType) | finalBit + b1 := byte(len(data)) + if !c.isServer { + b1 |= maskBit + } + + buf := make([]byte, 0, maxFrameHeaderSize+maxControlFramePayloadSize) + buf = append(buf, b0, b1) + + if c.isServer { + buf = append(buf, data...) + } else { + key := newMaskKey() + buf = append(buf, key[:]...) + buf = append(buf, data...) + maskBytes(key, 0, buf[6:]) + } + + d := time.Hour * 1000 + if !deadline.IsZero() { + d = deadline.Sub(time.Now()) + if d < 0 { + return errWriteTimeout + } + } + + timer := time.NewTimer(d) + select { + case <-c.mu: + timer.Stop() + case <-timer.C: + return errWriteTimeout + } + defer func() { c.mu <- true }() + + c.writeErrMu.Lock() + err := c.writeErr + c.writeErrMu.Unlock() + if err != nil { + return err + } + + c.conn.SetWriteDeadline(deadline) + _, err = c.conn.Write(buf) + if err != nil { + return c.writeFatal(err) + } + if messageType == CloseMessage { + c.writeFatal(ErrCloseSent) + } + return err +} + +func (c *Conn) prepWrite(messageType int) error { + // Close previous writer if not already closed by the application. It's + // probably better to return an error in this situation, but we cannot + // change this without breaking existing applications. + if c.writer != nil { + c.writer.Close() + c.writer = nil + } + + if !isControl(messageType) && !isData(messageType) { + return errBadWriteOpCode + } + + c.writeErrMu.Lock() + err := c.writeErr + c.writeErrMu.Unlock() + if err != nil { + return err + } + + if c.writeBuf == nil { + wpd, ok := c.writePool.Get().(writePoolData) + if ok { + c.writeBuf = wpd.buf + } else { + c.writeBuf = make([]byte, c.writeBufSize) + } + } + return nil +} + +// NextWriter returns a writer for the next message to send. The writer's Close +// method flushes the complete message to the network. +// +// There can be at most one open writer on a connection. NextWriter closes the +// previous writer if the application has not already done so. +// +// All message types (TextMessage, BinaryMessage, CloseMessage, PingMessage and +// PongMessage) are supported. +func (c *Conn) NextWriter(messageType int) (io.WriteCloser, error) { + if err := c.prepWrite(messageType); err != nil { + return nil, err + } + + mw := &messageWriter{ + c: c, + frameType: messageType, + pos: maxFrameHeaderSize, + } + c.writer = mw + if c.newCompressionWriter != nil && c.enableWriteCompression && isData(messageType) { + w := c.newCompressionWriter(c.writer, c.compressionLevel) + mw.compress = true + c.writer = w + } + return c.writer, nil +} + +type messageWriter struct { + c *Conn + compress bool // whether next call to flushFrame should set RSV1 + pos int // end of data in writeBuf. + frameType int // type of the current frame. + err error +} + +func (w *messageWriter) fatal(err error) error { + if w.err != nil { + w.err = err + w.c.writer = nil + } + return err +} + +// flushFrame writes buffered data and extra as a frame to the network. The +// final argument indicates that this is the last frame in the message. +func (w *messageWriter) flushFrame(final bool, extra []byte) error { + c := w.c + length := w.pos - maxFrameHeaderSize + len(extra) + + // Check for invalid control frames. + if isControl(w.frameType) && + (!final || length > maxControlFramePayloadSize) { + return w.fatal(errInvalidControlFrame) + } + + b0 := byte(w.frameType) + if final { + b0 |= finalBit + } + if w.compress { + b0 |= rsv1Bit + } + w.compress = false + + b1 := byte(0) + if !c.isServer { + b1 |= maskBit + } + + // Assume that the frame starts at beginning of c.writeBuf. + framePos := 0 + if c.isServer { + // Adjust up if mask not included in the header. + framePos = 4 + } + + switch { + case length >= 65536: + c.writeBuf[framePos] = b0 + c.writeBuf[framePos+1] = b1 | 127 + binary.BigEndian.PutUint64(c.writeBuf[framePos+2:], uint64(length)) + case length > 125: + framePos += 6 + c.writeBuf[framePos] = b0 + c.writeBuf[framePos+1] = b1 | 126 + binary.BigEndian.PutUint16(c.writeBuf[framePos+2:], uint16(length)) + default: + framePos += 8 + c.writeBuf[framePos] = b0 + c.writeBuf[framePos+1] = b1 | byte(length) + } + + if !c.isServer { + key := newMaskKey() + copy(c.writeBuf[maxFrameHeaderSize-4:], key[:]) + maskBytes(key, 0, c.writeBuf[maxFrameHeaderSize:w.pos]) + if len(extra) > 0 { + return c.writeFatal(errors.New("websocket: internal error, extra used in client mode")) + } + } + + // Write the buffers to the connection with best-effort detection of + // concurrent writes. See the concurrency section in the package + // documentation for more info. + + if c.isWriting { + panic("concurrent write to websocket connection") + } + c.isWriting = true + + err := c.write(w.frameType, c.writeDeadline, c.writeBuf[framePos:w.pos], extra) + + if !c.isWriting { + panic("concurrent write to websocket connection") + } + c.isWriting = false + + if err != nil { + return w.fatal(err) + } + + if final { + c.writer = nil + if c.writePool != nil { + c.writePool.Put(writePoolData{buf: c.writeBuf}) + c.writeBuf = nil + } + return nil + } + + // Setup for next frame. + w.pos = maxFrameHeaderSize + w.frameType = continuationFrame + return nil +} + +func (w *messageWriter) ncopy(max int) (int, error) { + n := len(w.c.writeBuf) - w.pos + if n <= 0 { + if err := w.flushFrame(false, nil); err != nil { + return 0, err + } + n = len(w.c.writeBuf) - w.pos + } + if n > max { + n = max + } + return n, nil +} + +func (w *messageWriter) Write(p []byte) (int, error) { + if w.err != nil { + return 0, w.err + } + + if len(p) > 2*len(w.c.writeBuf) && w.c.isServer { + // Don't buffer large messages. + err := w.flushFrame(false, p) + if err != nil { + return 0, err + } + return len(p), nil + } + + nn := len(p) + for len(p) > 0 { + n, err := w.ncopy(len(p)) + if err != nil { + return 0, err + } + copy(w.c.writeBuf[w.pos:], p[:n]) + w.pos += n + p = p[n:] + } + return nn, nil +} + +func (w *messageWriter) WriteString(p string) (int, error) { + if w.err != nil { + return 0, w.err + } + + nn := len(p) + for len(p) > 0 { + n, err := w.ncopy(len(p)) + if err != nil { + return 0, err + } + copy(w.c.writeBuf[w.pos:], p[:n]) + w.pos += n + p = p[n:] + } + return nn, nil +} + +func (w *messageWriter) ReadFrom(r io.Reader) (nn int64, err error) { + if w.err != nil { + return 0, w.err + } + for { + if w.pos == len(w.c.writeBuf) { + err = w.flushFrame(false, nil) + if err != nil { + break + } + } + var n int + n, err = r.Read(w.c.writeBuf[w.pos:]) + w.pos += n + nn += int64(n) + if err != nil { + if err == io.EOF { + err = nil + } + break + } + } + return nn, err +} + +func (w *messageWriter) Close() error { + if w.err != nil { + return w.err + } + if err := w.flushFrame(true, nil); err != nil { + return err + } + w.err = errWriteClosed + return nil +} + +// WritePreparedMessage writes prepared message into connection. +func (c *Conn) WritePreparedMessage(pm *PreparedMessage) error { + frameType, frameData, err := pm.frame(prepareKey{ + isServer: c.isServer, + compress: c.newCompressionWriter != nil && c.enableWriteCompression && isData(pm.messageType), + compressionLevel: c.compressionLevel, + }) + if err != nil { + return err + } + if c.isWriting { + panic("concurrent write to websocket connection") + } + c.isWriting = true + err = c.write(frameType, c.writeDeadline, frameData, nil) + if !c.isWriting { + panic("concurrent write to websocket connection") + } + c.isWriting = false + return err +} + +// WriteMessage is a helper method for getting a writer using NextWriter, +// writing the message and closing the writer. +func (c *Conn) WriteMessage(messageType int, data []byte) error { + + if c.isServer && (c.newCompressionWriter == nil || !c.enableWriteCompression) { + // Fast path with no allocations and single frame. + + if err := c.prepWrite(messageType); err != nil { + return err + } + mw := messageWriter{c: c, frameType: messageType, pos: maxFrameHeaderSize} + n := copy(c.writeBuf[mw.pos:], data) + mw.pos += n + data = data[n:] + return mw.flushFrame(true, data) + } + + w, err := c.NextWriter(messageType) + if err != nil { + return err + } + if _, err = w.Write(data); err != nil { + return err + } + return w.Close() +} + +// SetWriteDeadline sets the write deadline on the underlying network +// connection. After a write has timed out, the websocket state is corrupt and +// all future writes will return an error. A zero value for t means writes will +// not time out. +func (c *Conn) SetWriteDeadline(t time.Time) error { + c.writeDeadline = t + return nil +} + +// Read methods + +func (c *Conn) advanceFrame() (int, error) { + // 1. Skip remainder of previous frame. + + if c.readRemaining > 0 { + if _, err := io.CopyN(ioutil.Discard, c.br, c.readRemaining); err != nil { + return noFrame, err + } + } + + // 2. Read and parse first two bytes of frame header. + + p, err := c.read(2) + if err != nil { + return noFrame, err + } + + final := p[0]&finalBit != 0 + frameType := int(p[0] & 0xf) + mask := p[1]&maskBit != 0 + c.readRemaining = int64(p[1] & 0x7f) + + c.readDecompress = false + if c.newDecompressionReader != nil && (p[0]&rsv1Bit) != 0 { + c.readDecompress = true + p[0] &^= rsv1Bit + } + + if rsv := p[0] & (rsv1Bit | rsv2Bit | rsv3Bit); rsv != 0 { + return noFrame, c.handleProtocolError("unexpected reserved bits 0x" + strconv.FormatInt(int64(rsv), 16)) + } + + switch frameType { + case CloseMessage, PingMessage, PongMessage: + if c.readRemaining > maxControlFramePayloadSize { + return noFrame, c.handleProtocolError("control frame length > 125") + } + if !final { + return noFrame, c.handleProtocolError("control frame not final") + } + case TextMessage, BinaryMessage: + if !c.readFinal { + return noFrame, c.handleProtocolError("message start before final message frame") + } + c.readFinal = final + case continuationFrame: + if c.readFinal { + return noFrame, c.handleProtocolError("continuation after final message frame") + } + c.readFinal = final + default: + return noFrame, c.handleProtocolError("unknown opcode " + strconv.Itoa(frameType)) + } + + // 3. Read and parse frame length. + + switch c.readRemaining { + case 126: + p, err := c.read(2) + if err != nil { + return noFrame, err + } + c.readRemaining = int64(binary.BigEndian.Uint16(p)) + case 127: + p, err := c.read(8) + if err != nil { + return noFrame, err + } + c.readRemaining = int64(binary.BigEndian.Uint64(p)) + } + + // 4. Handle frame masking. + + if mask != c.isServer { + return noFrame, c.handleProtocolError("incorrect mask flag") + } + + if mask { + c.readMaskPos = 0 + p, err := c.read(len(c.readMaskKey)) + if err != nil { + return noFrame, err + } + copy(c.readMaskKey[:], p) + } + + // 5. For text and binary messages, enforce read limit and return. + + if frameType == continuationFrame || frameType == TextMessage || frameType == BinaryMessage { + + c.readLength += c.readRemaining + if c.readLimit > 0 && c.readLength > c.readLimit { + c.WriteControl(CloseMessage, FormatCloseMessage(CloseMessageTooBig, ""), time.Now().Add(writeWait)) + return noFrame, ErrReadLimit + } + + return frameType, nil + } + + // 6. Read control frame payload. + + var payload []byte + if c.readRemaining > 0 { + payload, err = c.read(int(c.readRemaining)) + c.readRemaining = 0 + if err != nil { + return noFrame, err + } + if c.isServer { + maskBytes(c.readMaskKey, 0, payload) + } + } + + // 7. Process control frame payload. + + switch frameType { + case PongMessage: + if err := c.handlePong(string(payload)); err != nil { + return noFrame, err + } + case PingMessage: + if err := c.handlePing(string(payload)); err != nil { + return noFrame, err + } + case CloseMessage: + closeCode := CloseNoStatusReceived + closeText := "" + if len(payload) >= 2 { + closeCode = int(binary.BigEndian.Uint16(payload)) + if !isValidReceivedCloseCode(closeCode) { + return noFrame, c.handleProtocolError("invalid close code") + } + closeText = string(payload[2:]) + if !utf8.ValidString(closeText) { + return noFrame, c.handleProtocolError("invalid utf8 payload in close frame") + } + } + if err := c.handleClose(closeCode, closeText); err != nil { + return noFrame, err + } + return noFrame, &CloseError{Code: closeCode, Text: closeText} + } + + return frameType, nil +} + +func (c *Conn) handleProtocolError(message string) error { + c.WriteControl(CloseMessage, FormatCloseMessage(CloseProtocolError, message), time.Now().Add(writeWait)) + return errors.New("websocket: " + message) +} + +// NextReader returns the next data message received from the peer. The +// returned messageType is either TextMessage or BinaryMessage. +// +// There can be at most one open reader on a connection. NextReader discards +// the previous message if the application has not already consumed it. +// +// Applications must break out of the application's read loop when this method +// returns a non-nil error value. Errors returned from this method are +// permanent. Once this method returns a non-nil error, all subsequent calls to +// this method return the same error. +func (c *Conn) NextReader() (messageType int, r io.Reader, err error) { + // Close previous reader, only relevant for decompression. + if c.reader != nil { + c.reader.Close() + c.reader = nil + } + + c.messageReader = nil + c.readLength = 0 + + for c.readErr == nil { + frameType, err := c.advanceFrame() + if err != nil { + c.readErr = hideTempErr(err) + break + } + if frameType == TextMessage || frameType == BinaryMessage { + c.messageReader = &messageReader{c} + c.reader = c.messageReader + if c.readDecompress { + c.reader = c.newDecompressionReader(c.reader) + } + return frameType, c.reader, nil + } + } + + // Applications that do handle the error returned from this method spin in + // tight loop on connection failure. To help application developers detect + // this error, panic on repeated reads to the failed connection. + c.readErrCount++ + if c.readErrCount >= 1000 { + panic("repeated read on failed websocket connection") + } + + return noFrame, nil, c.readErr +} + +type messageReader struct{ c *Conn } + +func (r *messageReader) Read(b []byte) (int, error) { + c := r.c + if c.messageReader != r { + return 0, io.EOF + } + + for c.readErr == nil { + + if c.readRemaining > 0 { + if int64(len(b)) > c.readRemaining { + b = b[:c.readRemaining] + } + n, err := c.br.Read(b) + c.readErr = hideTempErr(err) + if c.isServer { + c.readMaskPos = maskBytes(c.readMaskKey, c.readMaskPos, b[:n]) + } + c.readRemaining -= int64(n) + if c.readRemaining > 0 && c.readErr == io.EOF { + c.readErr = errUnexpectedEOF + } + return n, c.readErr + } + + if c.readFinal { + c.messageReader = nil + return 0, io.EOF + } + + frameType, err := c.advanceFrame() + switch { + case err != nil: + c.readErr = hideTempErr(err) + case frameType == TextMessage || frameType == BinaryMessage: + c.readErr = errors.New("websocket: internal error, unexpected text or binary in Reader") + } + } + + err := c.readErr + if err == io.EOF && c.messageReader == r { + err = errUnexpectedEOF + } + return 0, err +} + +func (r *messageReader) Close() error { + return nil +} + +// ReadMessage is a helper method for getting a reader using NextReader and +// reading from that reader to a buffer. +func (c *Conn) ReadMessage() (messageType int, p []byte, err error) { + var r io.Reader + messageType, r, err = c.NextReader() + if err != nil { + return messageType, nil, err + } + p, err = ioutil.ReadAll(r) + return messageType, p, err +} + +// SetReadDeadline sets the read deadline on the underlying network connection. +// After a read has timed out, the websocket connection state is corrupt and +// all future reads will return an error. A zero value for t means reads will +// not time out. +func (c *Conn) SetReadDeadline(t time.Time) error { + return c.conn.SetReadDeadline(t) +} + +// SetReadLimit sets the maximum size for a message read from the peer. If a +// message exceeds the limit, the connection sends a close message to the peer +// and returns ErrReadLimit to the application. +func (c *Conn) SetReadLimit(limit int64) { + c.readLimit = limit +} + +// CloseHandler returns the current close handler +func (c *Conn) CloseHandler() func(code int, text string) error { + return c.handleClose +} + +// SetCloseHandler sets the handler for close messages received from the peer. +// The code argument to h is the received close code or CloseNoStatusReceived +// if the close message is empty. The default close handler sends a close +// message back to the peer. +// +// The handler function is called from the NextReader, ReadMessage and message +// reader Read methods. The application must read the connection to process +// close messages as described in the section on Control Messages above. +// +// The connection read methods return a CloseError when a close message is +// received. Most applications should handle close messages as part of their +// normal error handling. Applications should only set a close handler when the +// application must perform some action before sending a close message back to +// the peer. +func (c *Conn) SetCloseHandler(h func(code int, text string) error) { + if h == nil { + h = func(code int, text string) error { + message := FormatCloseMessage(code, "") + c.WriteControl(CloseMessage, message, time.Now().Add(writeWait)) + return nil + } + } + c.handleClose = h +} + +// PingHandler returns the current ping handler +func (c *Conn) PingHandler() func(appData string) error { + return c.handlePing +} + +// SetPingHandler sets the handler for ping messages received from the peer. +// The appData argument to h is the PING message application data. The default +// ping handler sends a pong to the peer. +// +// The handler function is called from the NextReader, ReadMessage and message +// reader Read methods. The application must read the connection to process +// ping messages as described in the section on Control Messages above. +func (c *Conn) SetPingHandler(h func(appData string) error) { + if h == nil { + h = func(message string) error { + err := c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) + if err == ErrCloseSent { + return nil + } else if e, ok := err.(net.Error); ok && e.Temporary() { + return nil + } + return err + } + } + c.handlePing = h +} + +// PongHandler returns the current pong handler +func (c *Conn) PongHandler() func(appData string) error { + return c.handlePong +} + +// SetPongHandler sets the handler for pong messages received from the peer. +// The appData argument to h is the PONG message application data. The default +// pong handler does nothing. +// +// The handler function is called from the NextReader, ReadMessage and message +// reader Read methods. The application must read the connection to process +// pong messages as described in the section on Control Messages above. +func (c *Conn) SetPongHandler(h func(appData string) error) { + if h == nil { + h = func(string) error { return nil } + } + c.handlePong = h +} + +// UnderlyingConn returns the internal net.Conn. This can be used to further +// modifications to connection specific flags. +func (c *Conn) UnderlyingConn() net.Conn { + return c.conn +} + +// EnableWriteCompression enables and disables write compression of +// subsequent text and binary messages. This function is a noop if +// compression was not negotiated with the peer. +func (c *Conn) EnableWriteCompression(enable bool) { + c.enableWriteCompression = enable +} + +// SetCompressionLevel sets the flate compression level for subsequent text and +// binary messages. This function is a noop if compression was not negotiated +// with the peer. See the compress/flate package for a description of +// compression levels. +func (c *Conn) SetCompressionLevel(level int) error { + if !isValidCompressionLevel(level) { + return errors.New("websocket: invalid compression level") + } + c.compressionLevel = level + return nil +} + +// FormatCloseMessage formats closeCode and text as a WebSocket close message. +// An empty message is returned for code CloseNoStatusReceived. +func FormatCloseMessage(closeCode int, text string) []byte { + if closeCode == CloseNoStatusReceived { + // Return empty message because it's illegal to send + // CloseNoStatusReceived. Return non-nil value in case application + // checks for nil. + return []byte{} + } + buf := make([]byte, 2+len(text)) + binary.BigEndian.PutUint16(buf, uint16(closeCode)) + copy(buf[2:], text) + return buf +} diff --git a/vendor/github.com/gorilla/websocket/conn_write.go b/vendor/github.com/gorilla/websocket/conn_write.go new file mode 100644 index 00000000..a509a21f --- /dev/null +++ b/vendor/github.com/gorilla/websocket/conn_write.go @@ -0,0 +1,15 @@ +// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.8 + +package websocket + +import "net" + +func (c *Conn) writeBufs(bufs ...[]byte) error { + b := net.Buffers(bufs) + _, err := b.WriteTo(c.conn) + return err +} diff --git a/vendor/github.com/gorilla/websocket/conn_write_legacy.go b/vendor/github.com/gorilla/websocket/conn_write_legacy.go new file mode 100644 index 00000000..37edaff5 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/conn_write_legacy.go @@ -0,0 +1,18 @@ +// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.8 + +package websocket + +func (c *Conn) writeBufs(bufs ...[]byte) error { + for _, buf := range bufs { + if len(buf) > 0 { + if _, err := c.conn.Write(buf); err != nil { + return err + } + } + } + return nil +} diff --git a/vendor/github.com/gorilla/websocket/doc.go b/vendor/github.com/gorilla/websocket/doc.go new file mode 100644 index 00000000..dcce1a63 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/doc.go @@ -0,0 +1,180 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package websocket implements the WebSocket protocol defined in RFC 6455. +// +// Overview +// +// The Conn type represents a WebSocket connection. A server application calls +// the Upgrader.Upgrade method from an HTTP request handler to get a *Conn: +// +// var upgrader = websocket.Upgrader{ +// ReadBufferSize: 1024, +// WriteBufferSize: 1024, +// } +// +// func handler(w http.ResponseWriter, r *http.Request) { +// conn, err := upgrader.Upgrade(w, r, nil) +// if err != nil { +// log.Println(err) +// return +// } +// ... Use conn to send and receive messages. +// } +// +// Call the connection's WriteMessage and ReadMessage methods to send and +// receive messages as a slice of bytes. This snippet of code shows how to echo +// messages using these methods: +// +// for { +// messageType, p, err := conn.ReadMessage() +// if err != nil { +// log.Println(err) +// return +// } +// if err := conn.WriteMessage(messageType, p); err != nil { +// log.Println(err) +// return +// } +// } +// +// In above snippet of code, p is a []byte and messageType is an int with value +// websocket.BinaryMessage or websocket.TextMessage. +// +// An application can also send and receive messages using the io.WriteCloser +// and io.Reader interfaces. To send a message, call the connection NextWriter +// method to get an io.WriteCloser, write the message to the writer and close +// the writer when done. To receive a message, call the connection NextReader +// method to get an io.Reader and read until io.EOF is returned. This snippet +// shows how to echo messages using the NextWriter and NextReader methods: +// +// for { +// messageType, r, err := conn.NextReader() +// if err != nil { +// return +// } +// w, err := conn.NextWriter(messageType) +// if err != nil { +// return err +// } +// if _, err := io.Copy(w, r); err != nil { +// return err +// } +// if err := w.Close(); err != nil { +// return err +// } +// } +// +// Data Messages +// +// The WebSocket protocol distinguishes between text and binary data messages. +// Text messages are interpreted as UTF-8 encoded text. The interpretation of +// binary messages is left to the application. +// +// This package uses the TextMessage and BinaryMessage integer constants to +// identify the two data message types. The ReadMessage and NextReader methods +// return the type of the received message. The messageType argument to the +// WriteMessage and NextWriter methods specifies the type of a sent message. +// +// It is the application's responsibility to ensure that text messages are +// valid UTF-8 encoded text. +// +// Control Messages +// +// The WebSocket protocol defines three types of control messages: close, ping +// and pong. Call the connection WriteControl, WriteMessage or NextWriter +// methods to send a control message to the peer. +// +// Connections handle received close messages by calling the handler function +// set with the SetCloseHandler method and by returning a *CloseError from the +// NextReader, ReadMessage or the message Read method. The default close +// handler sends a close message to the peer. +// +// Connections handle received ping messages by calling the handler function +// set with the SetPingHandler method. The default ping handler sends a pong +// message to the peer. +// +// Connections handle received pong messages by calling the handler function +// set with the SetPongHandler method. The default pong handler does nothing. +// If an application sends ping messages, then the application should set a +// pong handler to receive the corresponding pong. +// +// The control message handler functions are called from the NextReader, +// ReadMessage and message reader Read methods. The default close and ping +// handlers can block these methods for a short time when the handler writes to +// the connection. +// +// The application must read the connection to process close, ping and pong +// messages sent from the peer. If the application is not otherwise interested +// in messages from the peer, then the application should start a goroutine to +// read and discard messages from the peer. A simple example is: +// +// func readLoop(c *websocket.Conn) { +// for { +// if _, _, err := c.NextReader(); err != nil { +// c.Close() +// break +// } +// } +// } +// +// Concurrency +// +// Connections support one concurrent reader and one concurrent writer. +// +// Applications are responsible for ensuring that no more than one goroutine +// calls the write methods (NextWriter, SetWriteDeadline, WriteMessage, +// WriteJSON, EnableWriteCompression, SetCompressionLevel) concurrently and +// that no more than one goroutine calls the read methods (NextReader, +// SetReadDeadline, ReadMessage, ReadJSON, SetPongHandler, SetPingHandler) +// concurrently. +// +// The Close and WriteControl methods can be called concurrently with all other +// methods. +// +// Origin Considerations +// +// Web browsers allow Javascript applications to open a WebSocket connection to +// any host. It's up to the server to enforce an origin policy using the Origin +// request header sent by the browser. +// +// The Upgrader calls the function specified in the CheckOrigin field to check +// the origin. If the CheckOrigin function returns false, then the Upgrade +// method fails the WebSocket handshake with HTTP status 403. +// +// If the CheckOrigin field is nil, then the Upgrader uses a safe default: fail +// the handshake if the Origin request header is present and the Origin host is +// not equal to the Host request header. +// +// The deprecated package-level Upgrade function does not perform origin +// checking. The application is responsible for checking the Origin header +// before calling the Upgrade function. +// +// Compression EXPERIMENTAL +// +// Per message compression extensions (RFC 7692) are experimentally supported +// by this package in a limited capacity. Setting the EnableCompression option +// to true in Dialer or Upgrader will attempt to negotiate per message deflate +// support. +// +// var upgrader = websocket.Upgrader{ +// EnableCompression: true, +// } +// +// If compression was successfully negotiated with the connection's peer, any +// message received in compressed form will be automatically decompressed. +// All Read methods will return uncompressed bytes. +// +// Per message compression of messages written to a connection can be enabled +// or disabled by calling the corresponding Conn method: +// +// conn.EnableWriteCompression(false) +// +// Currently this package does not support compression with "context takeover". +// This means that messages must be compressed and decompressed in isolation, +// without retaining sliding window or dictionary state across messages. For +// more details refer to RFC 7692. +// +// Use of compression is experimental and may result in decreased performance. +package websocket diff --git a/vendor/github.com/gorilla/websocket/json.go b/vendor/github.com/gorilla/websocket/json.go new file mode 100644 index 00000000..dc2c1f64 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/json.go @@ -0,0 +1,60 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "encoding/json" + "io" +) + +// WriteJSON writes the JSON encoding of v as a message. +// +// Deprecated: Use c.WriteJSON instead. +func WriteJSON(c *Conn, v interface{}) error { + return c.WriteJSON(v) +} + +// WriteJSON writes the JSON encoding of v as a message. +// +// See the documentation for encoding/json Marshal for details about the +// conversion of Go values to JSON. +func (c *Conn) WriteJSON(v interface{}) error { + w, err := c.NextWriter(TextMessage) + if err != nil { + return err + } + err1 := json.NewEncoder(w).Encode(v) + err2 := w.Close() + if err1 != nil { + return err1 + } + return err2 +} + +// ReadJSON reads the next JSON-encoded message from the connection and stores +// it in the value pointed to by v. +// +// Deprecated: Use c.ReadJSON instead. +func ReadJSON(c *Conn, v interface{}) error { + return c.ReadJSON(v) +} + +// ReadJSON reads the next JSON-encoded message from the connection and stores +// it in the value pointed to by v. +// +// See the documentation for the encoding/json Unmarshal function for details +// about the conversion of JSON to a Go value. +func (c *Conn) ReadJSON(v interface{}) error { + _, r, err := c.NextReader() + if err != nil { + return err + } + err = json.NewDecoder(r).Decode(v) + if err == io.EOF { + // One value is expected in the message. + err = io.ErrUnexpectedEOF + } + return err +} diff --git a/vendor/github.com/gorilla/websocket/mask.go b/vendor/github.com/gorilla/websocket/mask.go new file mode 100644 index 00000000..577fce9e --- /dev/null +++ b/vendor/github.com/gorilla/websocket/mask.go @@ -0,0 +1,54 @@ +// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. Use of +// this source code is governed by a BSD-style license that can be found in the +// LICENSE file. + +// +build !appengine + +package websocket + +import "unsafe" + +const wordSize = int(unsafe.Sizeof(uintptr(0))) + +func maskBytes(key [4]byte, pos int, b []byte) int { + // Mask one byte at a time for small buffers. + if len(b) < 2*wordSize { + for i := range b { + b[i] ^= key[pos&3] + pos++ + } + return pos & 3 + } + + // Mask one byte at a time to word boundary. + if n := int(uintptr(unsafe.Pointer(&b[0]))) % wordSize; n != 0 { + n = wordSize - n + for i := range b[:n] { + b[i] ^= key[pos&3] + pos++ + } + b = b[n:] + } + + // Create aligned word size key. + var k [wordSize]byte + for i := range k { + k[i] = key[(pos+i)&3] + } + kw := *(*uintptr)(unsafe.Pointer(&k)) + + // Mask one word at a time. + n := (len(b) / wordSize) * wordSize + for i := 0; i < n; i += wordSize { + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&b[0])) + uintptr(i))) ^= kw + } + + // Mask one byte at a time for remaining bytes. + b = b[n:] + for i := range b { + b[i] ^= key[pos&3] + pos++ + } + + return pos & 3 +} diff --git a/vendor/github.com/gorilla/websocket/mask_safe.go b/vendor/github.com/gorilla/websocket/mask_safe.go new file mode 100644 index 00000000..2aac060e --- /dev/null +++ b/vendor/github.com/gorilla/websocket/mask_safe.go @@ -0,0 +1,15 @@ +// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. Use of +// this source code is governed by a BSD-style license that can be found in the +// LICENSE file. + +// +build appengine + +package websocket + +func maskBytes(key [4]byte, pos int, b []byte) int { + for i := range b { + b[i] ^= key[pos&3] + pos++ + } + return pos & 3 +} diff --git a/vendor/github.com/gorilla/websocket/prepared.go b/vendor/github.com/gorilla/websocket/prepared.go new file mode 100644 index 00000000..74ec565d --- /dev/null +++ b/vendor/github.com/gorilla/websocket/prepared.go @@ -0,0 +1,102 @@ +// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "bytes" + "net" + "sync" + "time" +) + +// PreparedMessage caches on the wire representations of a message payload. +// Use PreparedMessage to efficiently send a message payload to multiple +// connections. PreparedMessage is especially useful when compression is used +// because the CPU and memory expensive compression operation can be executed +// once for a given set of compression options. +type PreparedMessage struct { + messageType int + data []byte + mu sync.Mutex + frames map[prepareKey]*preparedFrame +} + +// prepareKey defines a unique set of options to cache prepared frames in PreparedMessage. +type prepareKey struct { + isServer bool + compress bool + compressionLevel int +} + +// preparedFrame contains data in wire representation. +type preparedFrame struct { + once sync.Once + data []byte +} + +// NewPreparedMessage returns an initialized PreparedMessage. You can then send +// it to connection using WritePreparedMessage method. Valid wire +// representation will be calculated lazily only once for a set of current +// connection options. +func NewPreparedMessage(messageType int, data []byte) (*PreparedMessage, error) { + pm := &PreparedMessage{ + messageType: messageType, + frames: make(map[prepareKey]*preparedFrame), + data: data, + } + + // Prepare a plain server frame. + _, frameData, err := pm.frame(prepareKey{isServer: true, compress: false}) + if err != nil { + return nil, err + } + + // To protect against caller modifying the data argument, remember the data + // copied to the plain server frame. + pm.data = frameData[len(frameData)-len(data):] + return pm, nil +} + +func (pm *PreparedMessage) frame(key prepareKey) (int, []byte, error) { + pm.mu.Lock() + frame, ok := pm.frames[key] + if !ok { + frame = &preparedFrame{} + pm.frames[key] = frame + } + pm.mu.Unlock() + + var err error + frame.once.Do(func() { + // Prepare a frame using a 'fake' connection. + // TODO: Refactor code in conn.go to allow more direct construction of + // the frame. + mu := make(chan bool, 1) + mu <- true + var nc prepareConn + c := &Conn{ + conn: &nc, + mu: mu, + isServer: key.isServer, + compressionLevel: key.compressionLevel, + enableWriteCompression: true, + writeBuf: make([]byte, defaultWriteBufferSize+maxFrameHeaderSize), + } + if key.compress { + c.newCompressionWriter = compressNoContextTakeover + } + err = c.WriteMessage(pm.messageType, pm.data) + frame.data = nc.buf.Bytes() + }) + return pm.messageType, frame.data, err +} + +type prepareConn struct { + buf bytes.Buffer + net.Conn +} + +func (pc *prepareConn) Write(p []byte) (int, error) { return pc.buf.Write(p) } +func (pc *prepareConn) SetWriteDeadline(t time.Time) error { return nil } diff --git a/vendor/github.com/gorilla/websocket/proxy.go b/vendor/github.com/gorilla/websocket/proxy.go new file mode 100644 index 00000000..bf2478e4 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/proxy.go @@ -0,0 +1,77 @@ +// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "bufio" + "encoding/base64" + "errors" + "net" + "net/http" + "net/url" + "strings" +) + +type netDialerFunc func(network, addr string) (net.Conn, error) + +func (fn netDialerFunc) Dial(network, addr string) (net.Conn, error) { + return fn(network, addr) +} + +func init() { + proxy_RegisterDialerType("http", func(proxyURL *url.URL, forwardDialer proxy_Dialer) (proxy_Dialer, error) { + return &httpProxyDialer{proxyURL: proxyURL, fowardDial: forwardDialer.Dial}, nil + }) +} + +type httpProxyDialer struct { + proxyURL *url.URL + fowardDial func(network, addr string) (net.Conn, error) +} + +func (hpd *httpProxyDialer) Dial(network string, addr string) (net.Conn, error) { + hostPort, _ := hostPortNoPort(hpd.proxyURL) + conn, err := hpd.fowardDial(network, hostPort) + if err != nil { + return nil, err + } + + connectHeader := make(http.Header) + if user := hpd.proxyURL.User; user != nil { + proxyUser := user.Username() + if proxyPassword, passwordSet := user.Password(); passwordSet { + credential := base64.StdEncoding.EncodeToString([]byte(proxyUser + ":" + proxyPassword)) + connectHeader.Set("Proxy-Authorization", "Basic "+credential) + } + } + + connectReq := &http.Request{ + Method: "CONNECT", + URL: &url.URL{Opaque: addr}, + Host: addr, + Header: connectHeader, + } + + if err := connectReq.Write(conn); err != nil { + conn.Close() + return nil, err + } + + // Read response. It's OK to use and discard buffered reader here becaue + // the remote server does not speak until spoken to. + br := bufio.NewReader(conn) + resp, err := http.ReadResponse(br, connectReq) + if err != nil { + conn.Close() + return nil, err + } + + if resp.StatusCode != 200 { + conn.Close() + f := strings.SplitN(resp.Status, " ", 2) + return nil, errors.New(f[1]) + } + return conn, nil +} diff --git a/vendor/github.com/gorilla/websocket/server.go b/vendor/github.com/gorilla/websocket/server.go new file mode 100644 index 00000000..a761824b --- /dev/null +++ b/vendor/github.com/gorilla/websocket/server.go @@ -0,0 +1,363 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "bufio" + "errors" + "io" + "net/http" + "net/url" + "strings" + "time" +) + +// HandshakeError describes an error with the handshake from the peer. +type HandshakeError struct { + message string +} + +func (e HandshakeError) Error() string { return e.message } + +// Upgrader specifies parameters for upgrading an HTTP connection to a +// WebSocket connection. +type Upgrader struct { + // HandshakeTimeout specifies the duration for the handshake to complete. + HandshakeTimeout time.Duration + + // ReadBufferSize and WriteBufferSize specify I/O buffer sizes. If a buffer + // size is zero, then buffers allocated by the HTTP server are used. The + // I/O buffer sizes do not limit the size of the messages that can be sent + // or received. + ReadBufferSize, WriteBufferSize int + + // WriteBufferPool is a pool of buffers for write operations. If the value + // is not set, then write buffers are allocated to the connection for the + // lifetime of the connection. + // + // A pool is most useful when the application has a modest volume of writes + // across a large number of connections. + // + // Applications should use a single pool for each unique value of + // WriteBufferSize. + WriteBufferPool BufferPool + + // Subprotocols specifies the server's supported protocols in order of + // preference. If this field is not nil, then the Upgrade method negotiates a + // subprotocol by selecting the first match in this list with a protocol + // requested by the client. If there's no match, then no protocol is + // negotiated (the Sec-Websocket-Protocol header is not included in the + // handshake response). + Subprotocols []string + + // Error specifies the function for generating HTTP error responses. If Error + // is nil, then http.Error is used to generate the HTTP response. + Error func(w http.ResponseWriter, r *http.Request, status int, reason error) + + // CheckOrigin returns true if the request Origin header is acceptable. If + // CheckOrigin is nil, then a safe default is used: return false if the + // Origin request header is present and the origin host is not equal to + // request Host header. + // + // A CheckOrigin function should carefully validate the request origin to + // prevent cross-site request forgery. + CheckOrigin func(r *http.Request) bool + + // EnableCompression specify if the server should attempt to negotiate per + // message compression (RFC 7692). Setting this value to true does not + // guarantee that compression will be supported. Currently only "no context + // takeover" modes are supported. + EnableCompression bool +} + +func (u *Upgrader) returnError(w http.ResponseWriter, r *http.Request, status int, reason string) (*Conn, error) { + err := HandshakeError{reason} + if u.Error != nil { + u.Error(w, r, status, err) + } else { + w.Header().Set("Sec-Websocket-Version", "13") + http.Error(w, http.StatusText(status), status) + } + return nil, err +} + +// checkSameOrigin returns true if the origin is not set or is equal to the request host. +func checkSameOrigin(r *http.Request) bool { + origin := r.Header["Origin"] + if len(origin) == 0 { + return true + } + u, err := url.Parse(origin[0]) + if err != nil { + return false + } + return equalASCIIFold(u.Host, r.Host) +} + +func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header) string { + if u.Subprotocols != nil { + clientProtocols := Subprotocols(r) + for _, serverProtocol := range u.Subprotocols { + for _, clientProtocol := range clientProtocols { + if clientProtocol == serverProtocol { + return clientProtocol + } + } + } + } else if responseHeader != nil { + return responseHeader.Get("Sec-Websocket-Protocol") + } + return "" +} + +// Upgrade upgrades the HTTP server connection to the WebSocket protocol. +// +// The responseHeader is included in the response to the client's upgrade +// request. Use the responseHeader to specify cookies (Set-Cookie) and the +// application negotiated subprotocol (Sec-WebSocket-Protocol). +// +// If the upgrade fails, then Upgrade replies to the client with an HTTP error +// response. +func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (*Conn, error) { + const badHandshake = "websocket: the client is not using the websocket protocol: " + + if !tokenListContainsValue(r.Header, "Connection", "upgrade") { + return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'upgrade' token not found in 'Connection' header") + } + + if !tokenListContainsValue(r.Header, "Upgrade", "websocket") { + return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'websocket' token not found in 'Upgrade' header") + } + + if r.Method != "GET" { + return u.returnError(w, r, http.StatusMethodNotAllowed, badHandshake+"request method is not GET") + } + + if !tokenListContainsValue(r.Header, "Sec-Websocket-Version", "13") { + return u.returnError(w, r, http.StatusBadRequest, "websocket: unsupported version: 13 not found in 'Sec-Websocket-Version' header") + } + + if _, ok := responseHeader["Sec-Websocket-Extensions"]; ok { + return u.returnError(w, r, http.StatusInternalServerError, "websocket: application specific 'Sec-WebSocket-Extensions' headers are unsupported") + } + + checkOrigin := u.CheckOrigin + if checkOrigin == nil { + checkOrigin = checkSameOrigin + } + if !checkOrigin(r) { + return u.returnError(w, r, http.StatusForbidden, "websocket: request origin not allowed by Upgrader.CheckOrigin") + } + + challengeKey := r.Header.Get("Sec-Websocket-Key") + if challengeKey == "" { + return u.returnError(w, r, http.StatusBadRequest, "websocket: not a websocket handshake: `Sec-WebSocket-Key' header is missing or blank") + } + + subprotocol := u.selectSubprotocol(r, responseHeader) + + // Negotiate PMCE + var compress bool + if u.EnableCompression { + for _, ext := range parseExtensions(r.Header) { + if ext[""] != "permessage-deflate" { + continue + } + compress = true + break + } + } + + h, ok := w.(http.Hijacker) + if !ok { + return u.returnError(w, r, http.StatusInternalServerError, "websocket: response does not implement http.Hijacker") + } + var brw *bufio.ReadWriter + netConn, brw, err := h.Hijack() + if err != nil { + return u.returnError(w, r, http.StatusInternalServerError, err.Error()) + } + + if brw.Reader.Buffered() > 0 { + netConn.Close() + return nil, errors.New("websocket: client sent data before handshake is complete") + } + + var br *bufio.Reader + if u.ReadBufferSize == 0 && bufioReaderSize(netConn, brw.Reader) > 256 { + // Reuse hijacked buffered reader as connection reader. + br = brw.Reader + } + + buf := bufioWriterBuffer(netConn, brw.Writer) + + var writeBuf []byte + if u.WriteBufferPool == nil && u.WriteBufferSize == 0 && len(buf) >= maxFrameHeaderSize+256 { + // Reuse hijacked write buffer as connection buffer. + writeBuf = buf + } + + c := newConn(netConn, true, u.ReadBufferSize, u.WriteBufferSize, u.WriteBufferPool, br, writeBuf) + c.subprotocol = subprotocol + + if compress { + c.newCompressionWriter = compressNoContextTakeover + c.newDecompressionReader = decompressNoContextTakeover + } + + // Use larger of hijacked buffer and connection write buffer for header. + p := buf + if len(c.writeBuf) > len(p) { + p = c.writeBuf + } + p = p[:0] + + p = append(p, "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: "...) + p = append(p, computeAcceptKey(challengeKey)...) + p = append(p, "\r\n"...) + if c.subprotocol != "" { + p = append(p, "Sec-WebSocket-Protocol: "...) + p = append(p, c.subprotocol...) + p = append(p, "\r\n"...) + } + if compress { + p = append(p, "Sec-WebSocket-Extensions: permessage-deflate; server_no_context_takeover; client_no_context_takeover\r\n"...) + } + for k, vs := range responseHeader { + if k == "Sec-Websocket-Protocol" { + continue + } + for _, v := range vs { + p = append(p, k...) + p = append(p, ": "...) + for i := 0; i < len(v); i++ { + b := v[i] + if b <= 31 { + // prevent response splitting. + b = ' ' + } + p = append(p, b) + } + p = append(p, "\r\n"...) + } + } + p = append(p, "\r\n"...) + + // Clear deadlines set by HTTP server. + netConn.SetDeadline(time.Time{}) + + if u.HandshakeTimeout > 0 { + netConn.SetWriteDeadline(time.Now().Add(u.HandshakeTimeout)) + } + if _, err = netConn.Write(p); err != nil { + netConn.Close() + return nil, err + } + if u.HandshakeTimeout > 0 { + netConn.SetWriteDeadline(time.Time{}) + } + + return c, nil +} + +// Upgrade upgrades the HTTP server connection to the WebSocket protocol. +// +// Deprecated: Use websocket.Upgrader instead. +// +// Upgrade does not perform origin checking. The application is responsible for +// checking the Origin header before calling Upgrade. An example implementation +// of the same origin policy check is: +// +// if req.Header.Get("Origin") != "http://"+req.Host { +// http.Error(w, "Origin not allowed", http.StatusForbidden) +// return +// } +// +// If the endpoint supports subprotocols, then the application is responsible +// for negotiating the protocol used on the connection. Use the Subprotocols() +// function to get the subprotocols requested by the client. Use the +// Sec-Websocket-Protocol response header to specify the subprotocol selected +// by the application. +// +// The responseHeader is included in the response to the client's upgrade +// request. Use the responseHeader to specify cookies (Set-Cookie) and the +// negotiated subprotocol (Sec-Websocket-Protocol). +// +// The connection buffers IO to the underlying network connection. The +// readBufSize and writeBufSize parameters specify the size of the buffers to +// use. Messages can be larger than the buffers. +// +// If the request is not a valid WebSocket handshake, then Upgrade returns an +// error of type HandshakeError. Applications should handle this error by +// replying to the client with an HTTP error response. +func Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header, readBufSize, writeBufSize int) (*Conn, error) { + u := Upgrader{ReadBufferSize: readBufSize, WriteBufferSize: writeBufSize} + u.Error = func(w http.ResponseWriter, r *http.Request, status int, reason error) { + // don't return errors to maintain backwards compatibility + } + u.CheckOrigin = func(r *http.Request) bool { + // allow all connections by default + return true + } + return u.Upgrade(w, r, responseHeader) +} + +// Subprotocols returns the subprotocols requested by the client in the +// Sec-Websocket-Protocol header. +func Subprotocols(r *http.Request) []string { + h := strings.TrimSpace(r.Header.Get("Sec-Websocket-Protocol")) + if h == "" { + return nil + } + protocols := strings.Split(h, ",") + for i := range protocols { + protocols[i] = strings.TrimSpace(protocols[i]) + } + return protocols +} + +// IsWebSocketUpgrade returns true if the client requested upgrade to the +// WebSocket protocol. +func IsWebSocketUpgrade(r *http.Request) bool { + return tokenListContainsValue(r.Header, "Connection", "upgrade") && + tokenListContainsValue(r.Header, "Upgrade", "websocket") +} + +// bufioReaderSize size returns the size of a bufio.Reader. +func bufioReaderSize(originalReader io.Reader, br *bufio.Reader) int { + // This code assumes that peek on a reset reader returns + // bufio.Reader.buf[:0]. + // TODO: Use bufio.Reader.Size() after Go 1.10 + br.Reset(originalReader) + if p, err := br.Peek(0); err == nil { + return cap(p) + } + return 0 +} + +// writeHook is an io.Writer that records the last slice passed to it vio +// io.Writer.Write. +type writeHook struct { + p []byte +} + +func (wh *writeHook) Write(p []byte) (int, error) { + wh.p = p + return len(p), nil +} + +// bufioWriterBuffer grabs the buffer from a bufio.Writer. +func bufioWriterBuffer(originalWriter io.Writer, bw *bufio.Writer) []byte { + // This code assumes that bufio.Writer.buf[:1] is passed to the + // bufio.Writer's underlying writer. + var wh writeHook + bw.Reset(&wh) + bw.WriteByte(0) + bw.Flush() + + bw.Reset(originalWriter) + + return wh.p[:cap(wh.p)] +} diff --git a/vendor/github.com/gorilla/websocket/trace.go b/vendor/github.com/gorilla/websocket/trace.go new file mode 100644 index 00000000..834f122a --- /dev/null +++ b/vendor/github.com/gorilla/websocket/trace.go @@ -0,0 +1,19 @@ +// +build go1.8 + +package websocket + +import ( + "crypto/tls" + "net/http/httptrace" +) + +func doHandshakeWithTrace(trace *httptrace.ClientTrace, tlsConn *tls.Conn, cfg *tls.Config) error { + if trace.TLSHandshakeStart != nil { + trace.TLSHandshakeStart() + } + err := doHandshake(tlsConn, cfg) + if trace.TLSHandshakeDone != nil { + trace.TLSHandshakeDone(tlsConn.ConnectionState(), err) + } + return err +} diff --git a/vendor/github.com/gorilla/websocket/trace_17.go b/vendor/github.com/gorilla/websocket/trace_17.go new file mode 100644 index 00000000..77d05a0b --- /dev/null +++ b/vendor/github.com/gorilla/websocket/trace_17.go @@ -0,0 +1,12 @@ +// +build !go1.8 + +package websocket + +import ( + "crypto/tls" + "net/http/httptrace" +) + +func doHandshakeWithTrace(trace *httptrace.ClientTrace, tlsConn *tls.Conn, cfg *tls.Config) error { + return doHandshake(tlsConn, cfg) +} diff --git a/vendor/github.com/gorilla/websocket/util.go b/vendor/github.com/gorilla/websocket/util.go new file mode 100644 index 00000000..354001e1 --- /dev/null +++ b/vendor/github.com/gorilla/websocket/util.go @@ -0,0 +1,237 @@ +// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package websocket + +import ( + "crypto/rand" + "crypto/sha1" + "encoding/base64" + "io" + "net/http" + "strings" + "unicode/utf8" +) + +var keyGUID = []byte("258EAFA5-E914-47DA-95CA-C5AB0DC85B11") + +func computeAcceptKey(challengeKey string) string { + h := sha1.New() + h.Write([]byte(challengeKey)) + h.Write(keyGUID) + return base64.StdEncoding.EncodeToString(h.Sum(nil)) +} + +func generateChallengeKey() (string, error) { + p := make([]byte, 16) + if _, err := io.ReadFull(rand.Reader, p); err != nil { + return "", err + } + return base64.StdEncoding.EncodeToString(p), nil +} + +// Octet types from RFC 2616. +var octetTypes [256]byte + +const ( + isTokenOctet = 1 << iota + isSpaceOctet +) + +func init() { + // From RFC 2616 + // + // OCTET = + // CHAR = + // CTL = + // CR = + // LF = + // SP = + // HT = + // <"> = + // CRLF = CR LF + // LWS = [CRLF] 1*( SP | HT ) + // TEXT = + // separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> + // | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT + // token = 1* + // qdtext = > + + for c := 0; c < 256; c++ { + var t byte + isCtl := c <= 31 || c == 127 + isChar := 0 <= c && c <= 127 + isSeparator := strings.IndexRune(" \t\"(),/:;<=>?@[]\\{}", rune(c)) >= 0 + if strings.IndexRune(" \t\r\n", rune(c)) >= 0 { + t |= isSpaceOctet + } + if isChar && !isCtl && !isSeparator { + t |= isTokenOctet + } + octetTypes[c] = t + } +} + +func skipSpace(s string) (rest string) { + i := 0 + for ; i < len(s); i++ { + if octetTypes[s[i]]&isSpaceOctet == 0 { + break + } + } + return s[i:] +} + +func nextToken(s string) (token, rest string) { + i := 0 + for ; i < len(s); i++ { + if octetTypes[s[i]]&isTokenOctet == 0 { + break + } + } + return s[:i], s[i:] +} + +func nextTokenOrQuoted(s string) (value string, rest string) { + if !strings.HasPrefix(s, "\"") { + return nextToken(s) + } + s = s[1:] + for i := 0; i < len(s); i++ { + switch s[i] { + case '"': + return s[:i], s[i+1:] + case '\\': + p := make([]byte, len(s)-1) + j := copy(p, s[:i]) + escape := true + for i = i + 1; i < len(s); i++ { + b := s[i] + switch { + case escape: + escape = false + p[j] = b + j++ + case b == '\\': + escape = true + case b == '"': + return string(p[:j]), s[i+1:] + default: + p[j] = b + j++ + } + } + return "", "" + } + } + return "", "" +} + +// equalASCIIFold returns true if s is equal to t with ASCII case folding. +func equalASCIIFold(s, t string) bool { + for s != "" && t != "" { + sr, size := utf8.DecodeRuneInString(s) + s = s[size:] + tr, size := utf8.DecodeRuneInString(t) + t = t[size:] + if sr == tr { + continue + } + if 'A' <= sr && sr <= 'Z' { + sr = sr + 'a' - 'A' + } + if 'A' <= tr && tr <= 'Z' { + tr = tr + 'a' - 'A' + } + if sr != tr { + return false + } + } + return s == t +} + +// tokenListContainsValue returns true if the 1#token header with the given +// name contains a token equal to value with ASCII case folding. +func tokenListContainsValue(header http.Header, name string, value string) bool { +headers: + for _, s := range header[name] { + for { + var t string + t, s = nextToken(skipSpace(s)) + if t == "" { + continue headers + } + s = skipSpace(s) + if s != "" && s[0] != ',' { + continue headers + } + if equalASCIIFold(t, value) { + return true + } + if s == "" { + continue headers + } + s = s[1:] + } + } + return false +} + +// parseExtensions parses WebSocket extensions from a header. +func parseExtensions(header http.Header) []map[string]string { + // From RFC 6455: + // + // Sec-WebSocket-Extensions = extension-list + // extension-list = 1#extension + // extension = extension-token *( ";" extension-param ) + // extension-token = registered-token + // registered-token = token + // extension-param = token [ "=" (token | quoted-string) ] + // ;When using the quoted-string syntax variant, the value + // ;after quoted-string unescaping MUST conform to the + // ;'token' ABNF. + + var result []map[string]string +headers: + for _, s := range header["Sec-Websocket-Extensions"] { + for { + var t string + t, s = nextToken(skipSpace(s)) + if t == "" { + continue headers + } + ext := map[string]string{"": t} + for { + s = skipSpace(s) + if !strings.HasPrefix(s, ";") { + break + } + var k string + k, s = nextToken(skipSpace(s[1:])) + if k == "" { + continue headers + } + s = skipSpace(s) + var v string + if strings.HasPrefix(s, "=") { + v, s = nextTokenOrQuoted(skipSpace(s[1:])) + s = skipSpace(s) + } + if s != "" && s[0] != ',' && s[0] != ';' { + continue headers + } + ext[k] = v + } + if s != "" && s[0] != ',' { + continue headers + } + result = append(result, ext) + if s == "" { + continue headers + } + s = s[1:] + } + } + return result +} diff --git a/vendor/github.com/gorilla/websocket/x_net_proxy.go b/vendor/github.com/gorilla/websocket/x_net_proxy.go new file mode 100644 index 00000000..2e668f6b --- /dev/null +++ b/vendor/github.com/gorilla/websocket/x_net_proxy.go @@ -0,0 +1,473 @@ +// Code generated by golang.org/x/tools/cmd/bundle. DO NOT EDIT. +//go:generate bundle -o x_net_proxy.go golang.org/x/net/proxy + +// Package proxy provides support for a variety of protocols to proxy network +// data. +// + +package websocket + +import ( + "errors" + "io" + "net" + "net/url" + "os" + "strconv" + "strings" + "sync" +) + +type proxy_direct struct{} + +// Direct is a direct proxy: one that makes network connections directly. +var proxy_Direct = proxy_direct{} + +func (proxy_direct) Dial(network, addr string) (net.Conn, error) { + return net.Dial(network, addr) +} + +// A PerHost directs connections to a default Dialer unless the host name +// requested matches one of a number of exceptions. +type proxy_PerHost struct { + def, bypass proxy_Dialer + + bypassNetworks []*net.IPNet + bypassIPs []net.IP + bypassZones []string + bypassHosts []string +} + +// NewPerHost returns a PerHost Dialer that directs connections to either +// defaultDialer or bypass, depending on whether the connection matches one of +// the configured rules. +func proxy_NewPerHost(defaultDialer, bypass proxy_Dialer) *proxy_PerHost { + return &proxy_PerHost{ + def: defaultDialer, + bypass: bypass, + } +} + +// Dial connects to the address addr on the given network through either +// defaultDialer or bypass. +func (p *proxy_PerHost) Dial(network, addr string) (c net.Conn, err error) { + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + + return p.dialerForRequest(host).Dial(network, addr) +} + +func (p *proxy_PerHost) dialerForRequest(host string) proxy_Dialer { + if ip := net.ParseIP(host); ip != nil { + for _, net := range p.bypassNetworks { + if net.Contains(ip) { + return p.bypass + } + } + for _, bypassIP := range p.bypassIPs { + if bypassIP.Equal(ip) { + return p.bypass + } + } + return p.def + } + + for _, zone := range p.bypassZones { + if strings.HasSuffix(host, zone) { + return p.bypass + } + if host == zone[1:] { + // For a zone ".example.com", we match "example.com" + // too. + return p.bypass + } + } + for _, bypassHost := range p.bypassHosts { + if bypassHost == host { + return p.bypass + } + } + return p.def +} + +// AddFromString parses a string that contains comma-separated values +// specifying hosts that should use the bypass proxy. Each value is either an +// IP address, a CIDR range, a zone (*.example.com) or a host name +// (localhost). A best effort is made to parse the string and errors are +// ignored. +func (p *proxy_PerHost) AddFromString(s string) { + hosts := strings.Split(s, ",") + for _, host := range hosts { + host = strings.TrimSpace(host) + if len(host) == 0 { + continue + } + if strings.Contains(host, "/") { + // We assume that it's a CIDR address like 127.0.0.0/8 + if _, net, err := net.ParseCIDR(host); err == nil { + p.AddNetwork(net) + } + continue + } + if ip := net.ParseIP(host); ip != nil { + p.AddIP(ip) + continue + } + if strings.HasPrefix(host, "*.") { + p.AddZone(host[1:]) + continue + } + p.AddHost(host) + } +} + +// AddIP specifies an IP address that will use the bypass proxy. Note that +// this will only take effect if a literal IP address is dialed. A connection +// to a named host will never match an IP. +func (p *proxy_PerHost) AddIP(ip net.IP) { + p.bypassIPs = append(p.bypassIPs, ip) +} + +// AddNetwork specifies an IP range that will use the bypass proxy. Note that +// this will only take effect if a literal IP address is dialed. A connection +// to a named host will never match. +func (p *proxy_PerHost) AddNetwork(net *net.IPNet) { + p.bypassNetworks = append(p.bypassNetworks, net) +} + +// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of +// "example.com" matches "example.com" and all of its subdomains. +func (p *proxy_PerHost) AddZone(zone string) { + if strings.HasSuffix(zone, ".") { + zone = zone[:len(zone)-1] + } + if !strings.HasPrefix(zone, ".") { + zone = "." + zone + } + p.bypassZones = append(p.bypassZones, zone) +} + +// AddHost specifies a host name that will use the bypass proxy. +func (p *proxy_PerHost) AddHost(host string) { + if strings.HasSuffix(host, ".") { + host = host[:len(host)-1] + } + p.bypassHosts = append(p.bypassHosts, host) +} + +// A Dialer is a means to establish a connection. +type proxy_Dialer interface { + // Dial connects to the given address via the proxy. + Dial(network, addr string) (c net.Conn, err error) +} + +// Auth contains authentication parameters that specific Dialers may require. +type proxy_Auth struct { + User, Password string +} + +// FromEnvironment returns the dialer specified by the proxy related variables in +// the environment. +func proxy_FromEnvironment() proxy_Dialer { + allProxy := proxy_allProxyEnv.Get() + if len(allProxy) == 0 { + return proxy_Direct + } + + proxyURL, err := url.Parse(allProxy) + if err != nil { + return proxy_Direct + } + proxy, err := proxy_FromURL(proxyURL, proxy_Direct) + if err != nil { + return proxy_Direct + } + + noProxy := proxy_noProxyEnv.Get() + if len(noProxy) == 0 { + return proxy + } + + perHost := proxy_NewPerHost(proxy, proxy_Direct) + perHost.AddFromString(noProxy) + return perHost +} + +// proxySchemes is a map from URL schemes to a function that creates a Dialer +// from a URL with such a scheme. +var proxy_proxySchemes map[string]func(*url.URL, proxy_Dialer) (proxy_Dialer, error) + +// RegisterDialerType takes a URL scheme and a function to generate Dialers from +// a URL with that scheme and a forwarding Dialer. Registered schemes are used +// by FromURL. +func proxy_RegisterDialerType(scheme string, f func(*url.URL, proxy_Dialer) (proxy_Dialer, error)) { + if proxy_proxySchemes == nil { + proxy_proxySchemes = make(map[string]func(*url.URL, proxy_Dialer) (proxy_Dialer, error)) + } + proxy_proxySchemes[scheme] = f +} + +// FromURL returns a Dialer given a URL specification and an underlying +// Dialer for it to make network requests. +func proxy_FromURL(u *url.URL, forward proxy_Dialer) (proxy_Dialer, error) { + var auth *proxy_Auth + if u.User != nil { + auth = new(proxy_Auth) + auth.User = u.User.Username() + if p, ok := u.User.Password(); ok { + auth.Password = p + } + } + + switch u.Scheme { + case "socks5": + return proxy_SOCKS5("tcp", u.Host, auth, forward) + } + + // If the scheme doesn't match any of the built-in schemes, see if it + // was registered by another package. + if proxy_proxySchemes != nil { + if f, ok := proxy_proxySchemes[u.Scheme]; ok { + return f(u, forward) + } + } + + return nil, errors.New("proxy: unknown scheme: " + u.Scheme) +} + +var ( + proxy_allProxyEnv = &proxy_envOnce{ + names: []string{"ALL_PROXY", "all_proxy"}, + } + proxy_noProxyEnv = &proxy_envOnce{ + names: []string{"NO_PROXY", "no_proxy"}, + } +) + +// envOnce looks up an environment variable (optionally by multiple +// names) once. It mitigates expensive lookups on some platforms +// (e.g. Windows). +// (Borrowed from net/http/transport.go) +type proxy_envOnce struct { + names []string + once sync.Once + val string +} + +func (e *proxy_envOnce) Get() string { + e.once.Do(e.init) + return e.val +} + +func (e *proxy_envOnce) init() { + for _, n := range e.names { + e.val = os.Getenv(n) + if e.val != "" { + return + } + } +} + +// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address +// with an optional username and password. See RFC 1928 and RFC 1929. +func proxy_SOCKS5(network, addr string, auth *proxy_Auth, forward proxy_Dialer) (proxy_Dialer, error) { + s := &proxy_socks5{ + network: network, + addr: addr, + forward: forward, + } + if auth != nil { + s.user = auth.User + s.password = auth.Password + } + + return s, nil +} + +type proxy_socks5 struct { + user, password string + network, addr string + forward proxy_Dialer +} + +const proxy_socks5Version = 5 + +const ( + proxy_socks5AuthNone = 0 + proxy_socks5AuthPassword = 2 +) + +const proxy_socks5Connect = 1 + +const ( + proxy_socks5IP4 = 1 + proxy_socks5Domain = 3 + proxy_socks5IP6 = 4 +) + +var proxy_socks5Errors = []string{ + "", + "general failure", + "connection forbidden", + "network unreachable", + "host unreachable", + "connection refused", + "TTL expired", + "command not supported", + "address type not supported", +} + +// Dial connects to the address addr on the given network via the SOCKS5 proxy. +func (s *proxy_socks5) Dial(network, addr string) (net.Conn, error) { + switch network { + case "tcp", "tcp6", "tcp4": + default: + return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network) + } + + conn, err := s.forward.Dial(s.network, s.addr) + if err != nil { + return nil, err + } + if err := s.connect(conn, addr); err != nil { + conn.Close() + return nil, err + } + return conn, nil +} + +// connect takes an existing connection to a socks5 proxy server, +// and commands the server to extend that connection to target, +// which must be a canonical address with a host and port. +func (s *proxy_socks5) connect(conn net.Conn, target string) error { + host, portStr, err := net.SplitHostPort(target) + if err != nil { + return err + } + + port, err := strconv.Atoi(portStr) + if err != nil { + return errors.New("proxy: failed to parse port number: " + portStr) + } + if port < 1 || port > 0xffff { + return errors.New("proxy: port number out of range: " + portStr) + } + + // the size here is just an estimate + buf := make([]byte, 0, 6+len(host)) + + buf = append(buf, proxy_socks5Version) + if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 { + buf = append(buf, 2 /* num auth methods */, proxy_socks5AuthNone, proxy_socks5AuthPassword) + } else { + buf = append(buf, 1 /* num auth methods */, proxy_socks5AuthNone) + } + + if _, err := conn.Write(buf); err != nil { + return errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + if _, err := io.ReadFull(conn, buf[:2]); err != nil { + return errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + if buf[0] != 5 { + return errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0]))) + } + if buf[1] == 0xff { + return errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication") + } + + // See RFC 1929 + if buf[1] == proxy_socks5AuthPassword { + buf = buf[:0] + buf = append(buf, 1 /* password protocol version */) + buf = append(buf, uint8(len(s.user))) + buf = append(buf, s.user...) + buf = append(buf, uint8(len(s.password))) + buf = append(buf, s.password...) + + if _, err := conn.Write(buf); err != nil { + return errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + if _, err := io.ReadFull(conn, buf[:2]); err != nil { + return errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + if buf[1] != 0 { + return errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password") + } + } + + buf = buf[:0] + buf = append(buf, proxy_socks5Version, proxy_socks5Connect, 0 /* reserved */) + + if ip := net.ParseIP(host); ip != nil { + if ip4 := ip.To4(); ip4 != nil { + buf = append(buf, proxy_socks5IP4) + ip = ip4 + } else { + buf = append(buf, proxy_socks5IP6) + } + buf = append(buf, ip...) + } else { + if len(host) > 255 { + return errors.New("proxy: destination host name too long: " + host) + } + buf = append(buf, proxy_socks5Domain) + buf = append(buf, byte(len(host))) + buf = append(buf, host...) + } + buf = append(buf, byte(port>>8), byte(port)) + + if _, err := conn.Write(buf); err != nil { + return errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + if _, err := io.ReadFull(conn, buf[:4]); err != nil { + return errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + failure := "unknown error" + if int(buf[1]) < len(proxy_socks5Errors) { + failure = proxy_socks5Errors[buf[1]] + } + + if len(failure) > 0 { + return errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure) + } + + bytesToDiscard := 0 + switch buf[3] { + case proxy_socks5IP4: + bytesToDiscard = net.IPv4len + case proxy_socks5IP6: + bytesToDiscard = net.IPv6len + case proxy_socks5Domain: + _, err := io.ReadFull(conn, buf[:1]) + if err != nil { + return errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + bytesToDiscard = int(buf[0]) + default: + return errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr) + } + + if cap(buf) < bytesToDiscard { + buf = make([]byte, bytesToDiscard) + } else { + buf = buf[:bytesToDiscard] + } + if _, err := io.ReadFull(conn, buf); err != nil { + return errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + // Also need to discard the port number + if _, err := io.ReadFull(conn, buf[:2]); err != nil { + return errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error()) + } + + return nil +} diff --git a/vendor/github.com/gxed/hashland/LICENSE b/vendor/github.com/gxed/hashland/LICENSE new file mode 100644 index 00000000..ee9d3fac --- /dev/null +++ b/vendor/github.com/gxed/hashland/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 Lawrence E. Bakst + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/github.com/gxed/hashland/keccak/LICENSE b/vendor/github.com/gxed/hashland/keccak/LICENSE new file mode 100644 index 00000000..9cbcfb5f --- /dev/null +++ b/vendor/github.com/gxed/hashland/keccak/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2013 Barry Allard + +Except for keccak_test.go, .h and .c files are licensed seperately + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/gxed/hashland/keccakpg/go.mod b/vendor/github.com/gxed/hashland/keccakpg/go.mod new file mode 100644 index 00000000..da524d9d --- /dev/null +++ b/vendor/github.com/gxed/hashland/keccakpg/go.mod @@ -0,0 +1 @@ +module github.com/gxed/hashland/keccakpg diff --git a/vendor/github.com/gxed/hashland/keccakpg/keccak.go b/vendor/github.com/gxed/hashland/keccakpg/keccak.go new file mode 100644 index 00000000..e97a49a4 --- /dev/null +++ b/vendor/github.com/gxed/hashland/keccakpg/keccak.go @@ -0,0 +1,224 @@ +// Package keccak implements the Keccak (SHA-3) hash algorithm. +// http://keccak.noekeon.org. +package keccakpg + +import ( + _ "fmt" + "hash" +) + +const stdRounds = 24 + +var roundConstants = []uint64{ + 0x0000000000000001, 0x0000000000008082, + 0x800000000000808A, 0x8000000080008000, + 0x000000000000808B, 0x0000000080000001, + 0x8000000080008081, 0x8000000000008009, + 0x000000000000008A, 0x0000000000000088, + 0x0000000080008009, 0x000000008000000A, + 0x000000008000808B, 0x800000000000008B, + 0x8000000000008089, 0x8000000000008003, + 0x8000000000008002, 0x8000000000000080, + 0x000000000000800A, 0x800000008000000A, + 0x8000000080008081, 0x8000000000008080, + 0x0000000080000001, 0x8000000080008008, +} + +var rotationConstants = [24]uint{ + 1, 3, 6, 10, 15, 21, 28, 36, + 45, 55, 2, 14, 27, 41, 56, 8, + 25, 43, 62, 18, 39, 61, 20, 44, +} + +var piLane = [24]uint{ + 10, 7, 11, 17, 18, 3, 5, 16, + 8, 21, 24, 4, 15, 23, 19, 13, + 12, 2, 20, 14, 22, 9, 6, 1, +} + +type keccak struct { + S [25]uint64 + size int + blockSize int + rounds int + buf []byte +} + +func newKeccak(bitlen, rounds int) hash.Hash { + var h keccak + h.size = bitlen / 8 + h.blockSize = (200 - 2*h.size) + h.rounds = rounds + if rounds != stdRounds { + //fmt.Printf("keccak: warning non standard number of rounds %d vs %d\n", rounds, stdRounds) + } + return &h +} + +func NewCustom(bits, rounds int) hash.Hash { + return newKeccak(bits, rounds) +} + +func New160() hash.Hash { + return newKeccak(160, stdRounds) +} + +func New224() hash.Hash { + return newKeccak(224, stdRounds) +} + +func New256() hash.Hash { + return newKeccak(256, stdRounds) +} + +func New384() hash.Hash { + return newKeccak(384, stdRounds) +} + +func New512() hash.Hash { + return newKeccak(512, stdRounds) +} + +func (k *keccak) Write(b []byte) (int, error) { + n := len(b) + + if len(k.buf) > 0 { + x := k.blockSize - len(k.buf) + if x > len(b) { + x = len(b) + } + k.buf = append(k.buf, b[:x]...) + b = b[x:] + + if len(k.buf) < k.blockSize { + return n, nil + } + + k.f(k.buf) + k.buf = nil + } + + for len(b) >= k.blockSize { + k.f(b[:k.blockSize]) + b = b[k.blockSize:] + } + + k.buf = b + + return n, nil +} + +func (k0 *keccak) Sum(b []byte) []byte { + + k := *k0 + + last := k.pad(k.buf) + k.f(last) + + buf := make([]byte, len(k.S)*8) + for i := range k.S { + putUint64le(buf[i*8:], k.S[i]) + } + return append(b, buf[:k.size]...) +} + +func (k *keccak) Reset() { + for i := range k.S { + k.S[i] = 0 + } + k.buf = nil +} + +func (k *keccak) Size() int { + return k.size +} + +func (k *keccak) BlockSize() int { + return k.blockSize +} + +func rotl64(x uint64, n uint) uint64 { + return (x << n) | (x >> (64 - n)) +} + +func (k *keccak) f(block []byte) { + + if len(block) != k.blockSize { + panic("f() called with invalid block size") + } + + for i := 0; i < k.blockSize/8; i++ { + k.S[i] ^= uint64le(block[i*8:]) + } + + for r := 0; r < k.rounds; r++ { + var bc [5]uint64 + + // theta + for i := range bc { + bc[i] = k.S[i] ^ k.S[5+i] ^ k.S[10+i] ^ k.S[15+i] ^ k.S[20+i] + } + for i := range bc { + t := bc[(i+4)%5] ^ rotl64(bc[(i+1)%5], 1) + for j := 0; j < len(k.S); j += 5 { + k.S[i+j] ^= t + } + } + + // rho phi + temp := k.S[1] + for i := range piLane { + j := piLane[i] + temp2 := k.S[j] + k.S[j] = rotl64(temp, rotationConstants[i]) + temp = temp2 + } + + // chi + for j := 0; j < len(k.S); j += 5 { + for i := range bc { + bc[i] = k.S[j+i] + } + for i := range bc { + k.S[j+i] ^= (^bc[(i+1)%5]) & bc[(i+2)%5] + } + } + + // iota + k.S[0] ^= roundConstants[r] + } +} + +func (k *keccak) pad(block []byte) []byte { + + padded := make([]byte, k.blockSize) + + copy(padded, k.buf) + padded[len(k.buf)] = 0x01 + padded[len(padded)-1] |= 0x80 + + return padded +} + +func uint64le(v []byte) uint64 { + return uint64(v[0]) | + uint64(v[1])<<8 | + uint64(v[2])<<16 | + uint64(v[3])<<24 | + uint64(v[4])<<32 | + uint64(v[5])<<40 | + uint64(v[6])<<48 | + uint64(v[7])<<56 + +} + +func putUint64le(v []byte, x uint64) { + v[0] = byte(x) + v[1] = byte(x >> 8) + v[2] = byte(x >> 16) + v[3] = byte(x >> 24) + v[4] = byte(x >> 32) + v[5] = byte(x >> 40) + v[6] = byte(x >> 48) + v[7] = byte(x >> 56) +} diff --git a/vendor/github.com/gxed/hashland/keccakpg/package.json b/vendor/github.com/gxed/hashland/keccakpg/package.json new file mode 100644 index 00000000..9bc01c5d --- /dev/null +++ b/vendor/github.com/gxed/hashland/keccakpg/package.json @@ -0,0 +1,14 @@ +{ + "author": "whyrusleeping", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/gxed/hashland/keccakpg" + }, + "gxVersion": "0.10.0", + "language": "go", + "license": "", + "name": "keccakpg", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.0.1" +} + diff --git a/vendor/github.com/gxed/hashland/murmur3/LICENSE b/vendor/github.com/gxed/hashland/murmur3/LICENSE new file mode 100644 index 00000000..2a46fd75 --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/LICENSE @@ -0,0 +1,24 @@ +Copyright 2013, Sébastien Paolacci. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the library nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/gxed/hashland/murmur3/README.md b/vendor/github.com/gxed/hashland/murmur3/README.md new file mode 100644 index 00000000..1edf6230 --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/README.md @@ -0,0 +1,84 @@ +murmur3 +======= + +Native Go implementation of Austin Appleby's third MurmurHash revision (aka +MurmurHash3). + +Reference algorithm has been slightly hacked as to support the streaming mode +required by Go's standard [Hash interface](http://golang.org/pkg/hash/#Hash). + + +Benchmarks +---------- + +Go tip as of 2014-06-12 (i.e almost go1.3), core i7 @ 3.4 Ghz. All runs +include hasher instantiation and sequence finalization. + +
+
+Benchmark32_1        500000000     7.69 ns/op      130.00 MB/s
+Benchmark32_2        200000000     8.83 ns/op      226.42 MB/s
+Benchmark32_4        500000000     7.99 ns/op      500.39 MB/s
+Benchmark32_8        200000000     9.47 ns/op      844.69 MB/s
+Benchmark32_16       100000000     12.1 ns/op     1321.61 MB/s
+Benchmark32_32       100000000     18.3 ns/op     1743.93 MB/s
+Benchmark32_64        50000000     30.9 ns/op     2071.64 MB/s
+Benchmark32_128       50000000     57.6 ns/op     2222.96 MB/s
+Benchmark32_256       20000000      116 ns/op     2188.60 MB/s
+Benchmark32_512       10000000      226 ns/op     2260.59 MB/s
+Benchmark32_1024       5000000      452 ns/op     2263.73 MB/s
+Benchmark32_2048       2000000      891 ns/op     2296.02 MB/s
+Benchmark32_4096       1000000     1787 ns/op     2290.92 MB/s
+Benchmark32_8192        500000     3593 ns/op     2279.68 MB/s
+Benchmark128_1       100000000     26.1 ns/op       38.33 MB/s
+Benchmark128_2       100000000     29.0 ns/op       69.07 MB/s
+Benchmark128_4        50000000     29.8 ns/op      134.17 MB/s
+Benchmark128_8        50000000     31.6 ns/op      252.86 MB/s
+Benchmark128_16      100000000     26.5 ns/op      603.42 MB/s
+Benchmark128_32      100000000     28.6 ns/op     1117.15 MB/s
+Benchmark128_64       50000000     35.5 ns/op     1800.97 MB/s
+Benchmark128_128      50000000     50.9 ns/op     2515.50 MB/s
+Benchmark128_256      20000000     76.9 ns/op     3330.11 MB/s
+Benchmark128_512      20000000      135 ns/op     3769.09 MB/s
+Benchmark128_1024     10000000      250 ns/op     4094.38 MB/s
+Benchmark128_2048      5000000      477 ns/op     4290.75 MB/s
+Benchmark128_4096      2000000      940 ns/op     4353.29 MB/s
+Benchmark128_8192      1000000     1838 ns/op     4455.47 MB/s
+
+
+ + +
+
+benchmark              Go1.0 MB/s    Go1.1 MB/s  speedup    Go1.2 MB/s  speedup    Go1.3 MB/s  speedup
+Benchmark32_1               98.90        118.59    1.20x        114.79    0.97x        130.00    1.13x
+Benchmark32_2              168.04        213.31    1.27x        210.65    0.99x        226.42    1.07x
+Benchmark32_4              414.01        494.19    1.19x        490.29    0.99x        500.39    1.02x
+Benchmark32_8              662.19        836.09    1.26x        836.46    1.00x        844.69    1.01x
+Benchmark32_16             917.46       1304.62    1.42x       1297.63    0.99x       1321.61    1.02x
+Benchmark32_32            1141.93       1737.54    1.52x       1728.24    0.99x       1743.93    1.01x
+Benchmark32_64            1289.47       2039.51    1.58x       2038.20    1.00x       2071.64    1.02x
+Benchmark32_128           1299.23       2097.63    1.61x       2177.13    1.04x       2222.96    1.02x
+Benchmark32_256           1369.90       2202.34    1.61x       2213.15    1.00x       2188.60    0.99x
+Benchmark32_512           1399.56       2255.72    1.61x       2264.49    1.00x       2260.59    1.00x
+Benchmark32_1024          1410.90       2285.82    1.62x       2270.99    0.99x       2263.73    1.00x
+Benchmark32_2048          1422.14       2297.62    1.62x       2269.59    0.99x       2296.02    1.01x
+Benchmark32_4096          1420.53       2307.81    1.62x       2273.43    0.99x       2290.92    1.01x
+Benchmark32_8192          1424.79       2312.87    1.62x       2286.07    0.99x       2279.68    1.00x
+Benchmark128_1               8.32         30.15    3.62x         30.84    1.02x         38.33    1.24x
+Benchmark128_2              16.38         59.72    3.65x         59.37    0.99x         69.07    1.16x
+Benchmark128_4              32.26        112.96    3.50x        114.24    1.01x        134.17    1.17x
+Benchmark128_8              62.68        217.88    3.48x        218.18    1.00x        252.86    1.16x
+Benchmark128_16            128.47        451.57    3.51x        474.65    1.05x        603.42    1.27x
+Benchmark128_32            246.18        910.42    3.70x        871.06    0.96x       1117.15    1.28x
+Benchmark128_64            449.05       1477.64    3.29x       1449.24    0.98x       1800.97    1.24x
+Benchmark128_128           762.61       2222.42    2.91x       2217.30    1.00x       2515.50    1.13x
+Benchmark128_256          1179.92       3005.46    2.55x       2931.55    0.98x       3330.11    1.14x
+Benchmark128_512          1616.51       3590.75    2.22x       3592.08    1.00x       3769.09    1.05x
+Benchmark128_1024         1964.36       3979.67    2.03x       4034.01    1.01x       4094.38    1.01x
+Benchmark128_2048         2225.07       4156.93    1.87x       4244.17    1.02x       4290.75    1.01x
+Benchmark128_4096         2360.15       4299.09    1.82x       4392.35    1.02x       4353.29    0.99x
+Benchmark128_8192         2411.50       4356.84    1.81x       4480.68    1.03x       4455.47    0.99x
+
+
+ diff --git a/vendor/github.com/gxed/hashland/murmur3/go.mod b/vendor/github.com/gxed/hashland/murmur3/go.mod new file mode 100644 index 00000000..bef23952 --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/go.mod @@ -0,0 +1 @@ +module github.com/gxed/hashland/murmur3 diff --git a/vendor/github.com/gxed/hashland/murmur3/murmur.go b/vendor/github.com/gxed/hashland/murmur3/murmur.go new file mode 100644 index 00000000..f99557cc --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/murmur.go @@ -0,0 +1,65 @@ +// Copyright 2013, Sébastien Paolacci. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Native (and fast) implementation of Austin Appleby's MurmurHash3. + +Package murmur3 implements Austin Appleby's non-cryptographic MurmurHash3. + + Reference implementation: + http://code.google.com/p/smhasher/wiki/MurmurHash3 + + History, characteristics and (legacy) perfs: + https://sites.google.com/site/murmurhash/ + https://sites.google.com/site/murmurhash/statistics +*/ +package murmur3 + +type bmixer interface { + bmix(p []byte) (tail []byte) + Size() (n int) + reset() +} + +type digest struct { + clen int // Digested input cumulative length. + tail []byte // 0 to Size()-1 bytes view of `buf'. + buf [16]byte // Expected (but not required) to be Size() large. + bmixer +} + +func (d *digest) BlockSize() int { return 1 } + +func (d *digest) Write(p []byte) (n int, err error) { + n = len(p) + d.clen += n + + if len(d.tail) > 0 { + // Stick back pending bytes. + nfree := d.Size() - len(d.tail) // nfree ∈ [1, d.Size()-1]. + if nfree < len(p) { + // One full block can be formed. + block := append(d.tail, p[:nfree]...) + p = p[nfree:] + _ = d.bmix(block) // No tail. + } else { + // Tail's buf is large enough to prevent reallocs. + p = append(d.tail, p...) + } + } + + d.tail = d.bmix(p) + + // Keep own copy of the 0 to Size()-1 pending bytes. + nn := copy(d.buf[:], d.tail) + d.tail = d.buf[:nn] + + return n, nil +} + +func (d *digest) Reset() { + d.clen = 0 + d.tail = nil + d.bmixer.reset() +} diff --git a/vendor/github.com/gxed/hashland/murmur3/murmur128.go b/vendor/github.com/gxed/hashland/murmur3/murmur128.go new file mode 100644 index 00000000..16c34d6f --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/murmur128.go @@ -0,0 +1,189 @@ +package murmur3 + +import ( + //"encoding/binary" + "hash" + "unsafe" +) + +const ( + c1_128 = 0x87c37b91114253d5 + c2_128 = 0x4cf5ad432745937f +) + +// Make sure interfaces are correctly implemented. +var ( + _ hash.Hash = new(digest128) + _ Hash128 = new(digest128) + _ bmixer = new(digest128) +) + +// Hack: the standard api doesn't define any Hash128 interface. +type Hash128 interface { + hash.Hash + Sum128() (uint64, uint64) +} + +// digest128 represents a partial evaluation of a 128 bites hash. +type digest128 struct { + digest + h1 uint64 // Unfinalized running hash part 1. + h2 uint64 // Unfinalized running hash part 2. +} + +func New128() Hash128 { + d := new(digest128) + d.bmixer = d + d.Reset() + return d +} + +func (d *digest128) Size() int { return 16 } + +func (d *digest128) reset() { d.h1, d.h2 = 0, 0 } + +func (d *digest128) Sum(b []byte) []byte { + h1, h2 := d.h1, d.h2 + return append(b, + byte(h1>>56), byte(h1>>48), byte(h1>>40), byte(h1>>32), + byte(h1>>24), byte(h1>>16), byte(h1>>8), byte(h1), + + byte(h2>>56), byte(h2>>48), byte(h2>>40), byte(h2>>32), + byte(h2>>24), byte(h2>>16), byte(h2>>8), byte(h2), + ) +} + +func (d *digest128) bmix(p []byte) (tail []byte) { + h1, h2 := d.h1, d.h2 + + nblocks := len(p) / 16 + for i := 0; i < nblocks; i++ { + t := (*[2]uint64)(unsafe.Pointer(&p[i*16])) + k1, k2 := t[0], t[1] + + k1 *= c1_128 + k1 = (k1 << 31) | (k1 >> 33) // rotl64(k1, 31) + k1 *= c2_128 + h1 ^= k1 + + h1 = (h1 << 27) | (h1 >> 37) // rotl64(h1, 27) + h1 += h2 + h1 = h1*5 + 0x52dce729 + + k2 *= c2_128 + k2 = (k2 << 33) | (k2 >> 31) // rotl64(k2, 33) + k2 *= c1_128 + h2 ^= k2 + + h2 = (h2 << 31) | (h2 >> 33) // rotl64(h2, 31) + h2 += h1 + h2 = h2*5 + 0x38495ab5 + } + d.h1, d.h2 = h1, h2 + return p[nblocks*d.Size():] +} + +func (d *digest128) Sum128() (h1, h2 uint64) { + + h1, h2 = d.h1, d.h2 + + var k1, k2 uint64 + switch len(d.tail) & 15 { + case 15: + k2 ^= uint64(d.tail[14]) << 48 + fallthrough + case 14: + k2 ^= uint64(d.tail[13]) << 40 + fallthrough + case 13: + k2 ^= uint64(d.tail[12]) << 32 + fallthrough + case 12: + k2 ^= uint64(d.tail[11]) << 24 + fallthrough + case 11: + k2 ^= uint64(d.tail[10]) << 16 + fallthrough + case 10: + k2 ^= uint64(d.tail[9]) << 8 + fallthrough + case 9: + k2 ^= uint64(d.tail[8]) << 0 + + k2 *= c2_128 + k2 = (k2 << 33) | (k2 >> 31) // rotl64(k2, 33) + k2 *= c1_128 + h2 ^= k2 + + fallthrough + + case 8: + k1 ^= uint64(d.tail[7]) << 56 + fallthrough + case 7: + k1 ^= uint64(d.tail[6]) << 48 + fallthrough + case 6: + k1 ^= uint64(d.tail[5]) << 40 + fallthrough + case 5: + k1 ^= uint64(d.tail[4]) << 32 + fallthrough + case 4: + k1 ^= uint64(d.tail[3]) << 24 + fallthrough + case 3: + k1 ^= uint64(d.tail[2]) << 16 + fallthrough + case 2: + k1 ^= uint64(d.tail[1]) << 8 + fallthrough + case 1: + k1 ^= uint64(d.tail[0]) << 0 + k1 *= c1_128 + k1 = (k1 << 31) | (k1 >> 33) // rotl64(k1, 31) + k1 *= c2_128 + h1 ^= k1 + } + + h1 ^= uint64(d.clen) + h2 ^= uint64(d.clen) + + h1 += h2 + h2 += h1 + + h1 = fmix64(h1) + h2 = fmix64(h2) + + h1 += h2 + h2 += h1 + + return h1, h2 +} + +func fmix64(k uint64) uint64 { + k ^= k >> 33 + k *= 0xff51afd7ed558ccd + k ^= k >> 33 + k *= 0xc4ceb9fe1a85ec53 + k ^= k >> 33 + return k +} + +/* +func rotl64(x uint64, r byte) uint64 { + return (x << r) | (x >> (64 - r)) +} +*/ + +// Sum128 returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New128() +// hasher.Write(data) +// return hasher.Sum128() +func Sum128(data []byte) (h1 uint64, h2 uint64) { + d := &digest128{h1: 0, h2: 0} + d.tail = d.bmix(data) + d.clen = len(data) + return d.Sum128() +} diff --git a/vendor/github.com/gxed/hashland/murmur3/murmur32.go b/vendor/github.com/gxed/hashland/murmur3/murmur32.go new file mode 100644 index 00000000..bc89d268 --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/murmur32.go @@ -0,0 +1,154 @@ +package murmur3 + +// http://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/hash/Murmur3_32HashFunction.java + +import ( + "hash" + "unsafe" +) + +// Make sure interfaces are correctly implemented. +var ( + _ hash.Hash = new(digest32) + _ hash.Hash32 = new(digest32) +) + +const ( + c1_32 uint32 = 0xcc9e2d51 + c2_32 uint32 = 0x1b873593 +) + +// digest32 represents a partial evaluation of a 32 bites hash. +type digest32 struct { + digest + h1 uint32 // Unfinalized running hash. +} + +func New32() hash.Hash32 { + d := new(digest32) + d.bmixer = d + d.Reset() + return d +} + +func (d *digest32) Size() int { return 4 } + +func (d *digest32) reset() { d.h1 = 0 } + +func (d *digest32) Sum(b []byte) []byte { + h := d.h1 + return append(b, byte(h>>24), byte(h>>16), byte(h>>8), byte(h)) +} + +// Digest as many blocks as possible. +func (d *digest32) bmix(p []byte) (tail []byte) { + h1 := d.h1 + + nblocks := len(p) / 4 + for i := 0; i < nblocks; i++ { + k1 := *(*uint32)(unsafe.Pointer(&p[i*4])) + + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + + h1 ^= k1 + h1 = (h1 << 13) | (h1 >> 19) // rotl32(h1, 13) + h1 = h1*5 + 0xe6546b64 + } + d.h1 = h1 + return p[nblocks*d.Size():] +} + +func (d *digest32) Sum32() (h1 uint32) { + + h1 = d.h1 + + var k1 uint32 + switch len(d.tail) & 3 { + case 3: + k1 ^= uint32(d.tail[2]) << 16 + fallthrough + case 2: + k1 ^= uint32(d.tail[1]) << 8 + fallthrough + case 1: + k1 ^= uint32(d.tail[0]) + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + h1 ^= k1 + } + + h1 ^= uint32(d.clen) + + h1 ^= h1 >> 16 + h1 *= 0x85ebca6b + h1 ^= h1 >> 13 + h1 *= 0xc2b2ae35 + h1 ^= h1 >> 16 + + return h1 +} + +/* +func rotl32(x uint32, r byte) uint32 { + return (x << r) | (x >> (32 - r)) +} +*/ + +// Sum32 returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New32() +// hasher.Write(data) +// return hasher.Sum32() +func Sum32(data []byte) uint32 { + + var h1 uint32 = 0 + + nblocks := len(data) / 4 + var p uintptr + if len(data) > 0 { + p = uintptr(unsafe.Pointer(&data[0])) + } + p1 := p + uintptr(4*nblocks) + for ; p < p1; p += 4 { + k1 := *(*uint32)(unsafe.Pointer(p)) + + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + + h1 ^= k1 + h1 = (h1 << 13) | (h1 >> 19) // rotl32(h1, 13) + h1 = h1*5 + 0xe6546b64 + } + + tail := data[nblocks*4:] + + var k1 uint32 + switch len(tail) & 3 { + case 3: + k1 ^= uint32(tail[2]) << 16 + fallthrough + case 2: + k1 ^= uint32(tail[1]) << 8 + fallthrough + case 1: + k1 ^= uint32(tail[0]) + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + h1 ^= k1 + } + + h1 ^= uint32(len(data)) + + h1 ^= h1 >> 16 + h1 *= 0x85ebca6b + h1 ^= h1 >> 13 + h1 *= 0xc2b2ae35 + h1 ^= h1 >> 16 + + return h1 +} diff --git a/vendor/github.com/gxed/hashland/murmur3/murmur64.go b/vendor/github.com/gxed/hashland/murmur3/murmur64.go new file mode 100644 index 00000000..fdd4398e --- /dev/null +++ b/vendor/github.com/gxed/hashland/murmur3/murmur64.go @@ -0,0 +1,45 @@ +package murmur3 + +import ( + "hash" +) + +// Make sure interfaces are correctly implemented. +var ( + _ hash.Hash = new(digest64) + _ hash.Hash64 = new(digest64) + _ bmixer = new(digest64) +) + +// digest64 is half a digest128. +type digest64 digest128 + +func New64() hash.Hash64 { + d := (*digest64)(New128().(*digest128)) + return d +} + +func (d *digest64) Sum(b []byte) []byte { + h1 := d.h1 + return append(b, + byte(h1>>56), byte(h1>>48), byte(h1>>40), byte(h1>>32), + byte(h1>>24), byte(h1>>16), byte(h1>>8), byte(h1)) +} + +func (d *digest64) Sum64() uint64 { + h1, _ := (*digest128)(d).Sum128() + return h1 +} + +// Sum64 returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New64() +// hasher.Write(data) +// return hasher.Sum64() +func Sum64(data []byte) uint64 { + d := &digest128{h1: 0, h2: 0} + d.tail = d.bmix(data) + d.clen = len(data) + h1, _ := d.Sum128() + return h1 +} diff --git a/vendor/github.com/hashicorp/errwrap/LICENSE b/vendor/github.com/hashicorp/errwrap/LICENSE new file mode 100644 index 00000000..c33dcc7c --- /dev/null +++ b/vendor/github.com/hashicorp/errwrap/LICENSE @@ -0,0 +1,354 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor†+ + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version†+ + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution†+ + means Covered Software of a particular Contributor. + +1.4. “Covered Software†+ + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses†+ means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form†+ + means any form of the work other than Source Code Form. + +1.7. “Larger Work†+ + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License†+ + means this document. + +1.9. “Licensable†+ + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications†+ + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims†of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License†+ + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form†+ + means the form of the work preferred for making modifications. + +1.14. “You†(or “Yourâ€) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You†includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control†means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is†basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses†Notice + + This Source Code Form is “Incompatible + With Secondary Licensesâ€, as defined by + the Mozilla Public License, v. 2.0. + diff --git a/vendor/github.com/hashicorp/errwrap/README.md b/vendor/github.com/hashicorp/errwrap/README.md new file mode 100644 index 00000000..444df08f --- /dev/null +++ b/vendor/github.com/hashicorp/errwrap/README.md @@ -0,0 +1,89 @@ +# errwrap + +`errwrap` is a package for Go that formalizes the pattern of wrapping errors +and checking if an error contains another error. + +There is a common pattern in Go of taking a returned `error` value and +then wrapping it (such as with `fmt.Errorf`) before returning it. The problem +with this pattern is that you completely lose the original `error` structure. + +Arguably the _correct_ approach is that you should make a custom structure +implementing the `error` interface, and have the original error as a field +on that structure, such [as this example](http://golang.org/pkg/os/#PathError). +This is a good approach, but you have to know the entire chain of possible +rewrapping that happens, when you might just care about one. + +`errwrap` formalizes this pattern (it doesn't matter what approach you use +above) by giving a single interface for wrapping errors, checking if a specific +error is wrapped, and extracting that error. + +## Installation and Docs + +Install using `go get github.com/hashicorp/errwrap`. + +Full documentation is available at +http://godoc.org/github.com/hashicorp/errwrap + +## Usage + +#### Basic Usage + +Below is a very basic example of its usage: + +```go +// A function that always returns an error, but wraps it, like a real +// function might. +func tryOpen() error { + _, err := os.Open("/i/dont/exist") + if err != nil { + return errwrap.Wrapf("Doesn't exist: {{err}}", err) + } + + return nil +} + +func main() { + err := tryOpen() + + // We can use the Contains helpers to check if an error contains + // another error. It is safe to do this with a nil error, or with + // an error that doesn't even use the errwrap package. + if errwrap.Contains(err, "does not exist") { + // Do something + } + if errwrap.ContainsType(err, new(os.PathError)) { + // Do something + } + + // Or we can use the associated `Get` functions to just extract + // a specific error. This would return nil if that specific error doesn't + // exist. + perr := errwrap.GetType(err, new(os.PathError)) +} +``` + +#### Custom Types + +If you're already making custom types that properly wrap errors, then +you can get all the functionality of `errwraps.Contains` and such by +implementing the `Wrapper` interface with just one function. Example: + +```go +type AppError { + Code ErrorCode + Err error +} + +func (e *AppError) WrappedErrors() []error { + return []error{e.Err} +} +``` + +Now this works: + +```go +err := &AppError{Err: fmt.Errorf("an error")} +if errwrap.ContainsType(err, fmt.Errorf("")) { + // This will work! +} +``` diff --git a/vendor/github.com/hashicorp/errwrap/errwrap.go b/vendor/github.com/hashicorp/errwrap/errwrap.go new file mode 100644 index 00000000..a733bef1 --- /dev/null +++ b/vendor/github.com/hashicorp/errwrap/errwrap.go @@ -0,0 +1,169 @@ +// Package errwrap implements methods to formalize error wrapping in Go. +// +// All of the top-level functions that take an `error` are built to be able +// to take any error, not just wrapped errors. This allows you to use errwrap +// without having to type-check and type-cast everywhere. +package errwrap + +import ( + "errors" + "reflect" + "strings" +) + +// WalkFunc is the callback called for Walk. +type WalkFunc func(error) + +// Wrapper is an interface that can be implemented by custom types to +// have all the Contains, Get, etc. functions in errwrap work. +// +// When Walk reaches a Wrapper, it will call the callback for every +// wrapped error in addition to the wrapper itself. Since all the top-level +// functions in errwrap use Walk, this means that all those functions work +// with your custom type. +type Wrapper interface { + WrappedErrors() []error +} + +// Wrap defines that outer wraps inner, returning an error type that +// can be cleanly used with the other methods in this package, such as +// Contains, GetAll, etc. +// +// This function won't modify the error message at all (the outer message +// will be used). +func Wrap(outer, inner error) error { + return &wrappedError{ + Outer: outer, + Inner: inner, + } +} + +// Wrapf wraps an error with a formatting message. This is similar to using +// `fmt.Errorf` to wrap an error. If you're using `fmt.Errorf` to wrap +// errors, you should replace it with this. +// +// format is the format of the error message. The string '{{err}}' will +// be replaced with the original error message. +func Wrapf(format string, err error) error { + outerMsg := "" + if err != nil { + outerMsg = err.Error() + } + + outer := errors.New(strings.Replace( + format, "{{err}}", outerMsg, -1)) + + return Wrap(outer, err) +} + +// Contains checks if the given error contains an error with the +// message msg. If err is not a wrapped error, this will always return +// false unless the error itself happens to match this msg. +func Contains(err error, msg string) bool { + return len(GetAll(err, msg)) > 0 +} + +// ContainsType checks if the given error contains an error with +// the same concrete type as v. If err is not a wrapped error, this will +// check the err itself. +func ContainsType(err error, v interface{}) bool { + return len(GetAllType(err, v)) > 0 +} + +// Get is the same as GetAll but returns the deepest matching error. +func Get(err error, msg string) error { + es := GetAll(err, msg) + if len(es) > 0 { + return es[len(es)-1] + } + + return nil +} + +// GetType is the same as GetAllType but returns the deepest matching error. +func GetType(err error, v interface{}) error { + es := GetAllType(err, v) + if len(es) > 0 { + return es[len(es)-1] + } + + return nil +} + +// GetAll gets all the errors that might be wrapped in err with the +// given message. The order of the errors is such that the outermost +// matching error (the most recent wrap) is index zero, and so on. +func GetAll(err error, msg string) []error { + var result []error + + Walk(err, func(err error) { + if err.Error() == msg { + result = append(result, err) + } + }) + + return result +} + +// GetAllType gets all the errors that are the same type as v. +// +// The order of the return value is the same as described in GetAll. +func GetAllType(err error, v interface{}) []error { + var result []error + + var search string + if v != nil { + search = reflect.TypeOf(v).String() + } + Walk(err, func(err error) { + var needle string + if err != nil { + needle = reflect.TypeOf(err).String() + } + + if needle == search { + result = append(result, err) + } + }) + + return result +} + +// Walk walks all the wrapped errors in err and calls the callback. If +// err isn't a wrapped error, this will be called once for err. If err +// is a wrapped error, the callback will be called for both the wrapper +// that implements error as well as the wrapped error itself. +func Walk(err error, cb WalkFunc) { + if err == nil { + return + } + + switch e := err.(type) { + case *wrappedError: + cb(e.Outer) + Walk(e.Inner, cb) + case Wrapper: + cb(err) + + for _, err := range e.WrappedErrors() { + Walk(err, cb) + } + default: + cb(err) + } +} + +// wrappedError is an implementation of error that has both the +// outer and inner errors. +type wrappedError struct { + Outer error + Inner error +} + +func (w *wrappedError) Error() string { + return w.Outer.Error() +} + +func (w *wrappedError) WrappedErrors() []error { + return []error{w.Outer, w.Inner} +} diff --git a/vendor/github.com/hashicorp/errwrap/go.mod b/vendor/github.com/hashicorp/errwrap/go.mod new file mode 100644 index 00000000..c9b84022 --- /dev/null +++ b/vendor/github.com/hashicorp/errwrap/go.mod @@ -0,0 +1 @@ +module github.com/hashicorp/errwrap diff --git a/vendor/github.com/hashicorp/go-multierror/.travis.yml b/vendor/github.com/hashicorp/go-multierror/.travis.yml new file mode 100644 index 00000000..304a8359 --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/.travis.yml @@ -0,0 +1,12 @@ +sudo: false + +language: go + +go: + - 1.x + +branches: + only: + - master + +script: make test testrace diff --git a/vendor/github.com/hashicorp/go-multierror/LICENSE b/vendor/github.com/hashicorp/go-multierror/LICENSE new file mode 100644 index 00000000..82b4de97 --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/LICENSE @@ -0,0 +1,353 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor†+ + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version†+ + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution†+ + means Covered Software of a particular Contributor. + +1.4. “Covered Software†+ + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses†+ means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form†+ + means any form of the work other than Source Code Form. + +1.7. “Larger Work†+ + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License†+ + means this document. + +1.9. “Licensable†+ + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications†+ + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims†of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License†+ + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form†+ + means the form of the work preferred for making modifications. + +1.14. “You†(or “Yourâ€) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You†includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control†means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is†basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses†Notice + + This Source Code Form is “Incompatible + With Secondary Licensesâ€, as defined by + the Mozilla Public License, v. 2.0. diff --git a/vendor/github.com/hashicorp/go-multierror/Makefile b/vendor/github.com/hashicorp/go-multierror/Makefile new file mode 100644 index 00000000..b97cd6ed --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/Makefile @@ -0,0 +1,31 @@ +TEST?=./... + +default: test + +# test runs the test suite and vets the code. +test: generate + @echo "==> Running tests..." + @go list $(TEST) \ + | grep -v "/vendor/" \ + | xargs -n1 go test -timeout=60s -parallel=10 ${TESTARGS} + +# testrace runs the race checker +testrace: generate + @echo "==> Running tests (race)..." + @go list $(TEST) \ + | grep -v "/vendor/" \ + | xargs -n1 go test -timeout=60s -race ${TESTARGS} + +# updatedeps installs all the dependencies needed to run and build. +updatedeps: + @sh -c "'${CURDIR}/scripts/deps.sh' '${NAME}'" + +# generate runs `go generate` to build the dynamically generated source files. +generate: + @echo "==> Generating..." + @find . -type f -name '.DS_Store' -delete + @go list ./... \ + | grep -v "/vendor/" \ + | xargs -n1 go generate + +.PHONY: default test testrace updatedeps generate diff --git a/vendor/github.com/hashicorp/go-multierror/README.md b/vendor/github.com/hashicorp/go-multierror/README.md new file mode 100644 index 00000000..ead5830f --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/README.md @@ -0,0 +1,97 @@ +# go-multierror + +[![Build Status](http://img.shields.io/travis/hashicorp/go-multierror.svg?style=flat-square)][travis] +[![Go Documentation](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)][godocs] + +[travis]: https://travis-ci.org/hashicorp/go-multierror +[godocs]: https://godoc.org/github.com/hashicorp/go-multierror + +`go-multierror` is a package for Go that provides a mechanism for +representing a list of `error` values as a single `error`. + +This allows a function in Go to return an `error` that might actually +be a list of errors. If the caller knows this, they can unwrap the +list and access the errors. If the caller doesn't know, the error +formats to a nice human-readable format. + +`go-multierror` implements the +[errwrap](https://github.com/hashicorp/errwrap) interface so that it can +be used with that library, as well. + +## Installation and Docs + +Install using `go get github.com/hashicorp/go-multierror`. + +Full documentation is available at +http://godoc.org/github.com/hashicorp/go-multierror + +## Usage + +go-multierror is easy to use and purposely built to be unobtrusive in +existing Go applications/libraries that may not be aware of it. + +**Building a list of errors** + +The `Append` function is used to create a list of errors. This function +behaves a lot like the Go built-in `append` function: it doesn't matter +if the first argument is nil, a `multierror.Error`, or any other `error`, +the function behaves as you would expect. + +```go +var result error + +if err := step1(); err != nil { + result = multierror.Append(result, err) +} +if err := step2(); err != nil { + result = multierror.Append(result, err) +} + +return result +``` + +**Customizing the formatting of the errors** + +By specifying a custom `ErrorFormat`, you can customize the format +of the `Error() string` function: + +```go +var result *multierror.Error + +// ... accumulate errors here, maybe using Append + +if result != nil { + result.ErrorFormat = func([]error) string { + return "errors!" + } +} +``` + +**Accessing the list of errors** + +`multierror.Error` implements `error` so if the caller doesn't know about +multierror, it will work just fine. But if you're aware a multierror might +be returned, you can use type switches to access the list of errors: + +```go +if err := something(); err != nil { + if merr, ok := err.(*multierror.Error); ok { + // Use merr.Errors + } +} +``` + +**Returning a multierror only if there are errors** + +If you build a `multierror.Error`, you can use the `ErrorOrNil` function +to return an `error` implementation only if there are errors to return: + +```go +var result *multierror.Error + +// ... accumulate errors here + +// Return the `error` only if errors were added to the multierror, otherwise +// return nil since there are no errors. +return result.ErrorOrNil() +``` diff --git a/vendor/github.com/hashicorp/go-multierror/append.go b/vendor/github.com/hashicorp/go-multierror/append.go new file mode 100644 index 00000000..775b6e75 --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/append.go @@ -0,0 +1,41 @@ +package multierror + +// Append is a helper function that will append more errors +// onto an Error in order to create a larger multi-error. +// +// If err is not a multierror.Error, then it will be turned into +// one. If any of the errs are multierr.Error, they will be flattened +// one level into err. +func Append(err error, errs ...error) *Error { + switch err := err.(type) { + case *Error: + // Typed nils can reach here, so initialize if we are nil + if err == nil { + err = new(Error) + } + + // Go through each error and flatten + for _, e := range errs { + switch e := e.(type) { + case *Error: + if e != nil { + err.Errors = append(err.Errors, e.Errors...) + } + default: + if e != nil { + err.Errors = append(err.Errors, e) + } + } + } + + return err + default: + newErrs := make([]error, 0, len(errs)+1) + if err != nil { + newErrs = append(newErrs, err) + } + newErrs = append(newErrs, errs...) + + return Append(&Error{}, newErrs...) + } +} diff --git a/vendor/github.com/hashicorp/go-multierror/flatten.go b/vendor/github.com/hashicorp/go-multierror/flatten.go new file mode 100644 index 00000000..aab8e9ab --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/flatten.go @@ -0,0 +1,26 @@ +package multierror + +// Flatten flattens the given error, merging any *Errors together into +// a single *Error. +func Flatten(err error) error { + // If it isn't an *Error, just return the error as-is + if _, ok := err.(*Error); !ok { + return err + } + + // Otherwise, make the result and flatten away! + flatErr := new(Error) + flatten(err, flatErr) + return flatErr +} + +func flatten(err error, flatErr *Error) { + switch err := err.(type) { + case *Error: + for _, e := range err.Errors { + flatten(e, flatErr) + } + default: + flatErr.Errors = append(flatErr.Errors, err) + } +} diff --git a/vendor/github.com/hashicorp/go-multierror/format.go b/vendor/github.com/hashicorp/go-multierror/format.go new file mode 100644 index 00000000..47f13c49 --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/format.go @@ -0,0 +1,27 @@ +package multierror + +import ( + "fmt" + "strings" +) + +// ErrorFormatFunc is a function callback that is called by Error to +// turn the list of errors into a string. +type ErrorFormatFunc func([]error) string + +// ListFormatFunc is a basic formatter that outputs the number of errors +// that occurred along with a bullet point list of the errors. +func ListFormatFunc(es []error) string { + if len(es) == 1 { + return fmt.Sprintf("1 error occurred:\n\t* %s\n\n", es[0]) + } + + points := make([]string, len(es)) + for i, err := range es { + points[i] = fmt.Sprintf("* %s", err) + } + + return fmt.Sprintf( + "%d errors occurred:\n\t%s\n\n", + len(es), strings.Join(points, "\n\t")) +} diff --git a/vendor/github.com/hashicorp/go-multierror/go.mod b/vendor/github.com/hashicorp/go-multierror/go.mod new file mode 100644 index 00000000..2534331d --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/go.mod @@ -0,0 +1,3 @@ +module github.com/hashicorp/go-multierror + +require github.com/hashicorp/errwrap v1.0.0 diff --git a/vendor/github.com/hashicorp/go-multierror/go.sum b/vendor/github.com/hashicorp/go-multierror/go.sum new file mode 100644 index 00000000..85b1f8ff --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/go.sum @@ -0,0 +1,4 @@ +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce h1:prjrVgOk2Yg6w+PflHoszQNLTUh4kaByUcEWM/9uin4= +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= diff --git a/vendor/github.com/hashicorp/go-multierror/multierror.go b/vendor/github.com/hashicorp/go-multierror/multierror.go new file mode 100644 index 00000000..89b1422d --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/multierror.go @@ -0,0 +1,51 @@ +package multierror + +import ( + "fmt" +) + +// Error is an error type to track multiple errors. This is used to +// accumulate errors in cases and return them as a single "error". +type Error struct { + Errors []error + ErrorFormat ErrorFormatFunc +} + +func (e *Error) Error() string { + fn := e.ErrorFormat + if fn == nil { + fn = ListFormatFunc + } + + return fn(e.Errors) +} + +// ErrorOrNil returns an error interface if this Error represents +// a list of errors, or returns nil if the list of errors is empty. This +// function is useful at the end of accumulation to make sure that the value +// returned represents the existence of errors. +func (e *Error) ErrorOrNil() error { + if e == nil { + return nil + } + if len(e.Errors) == 0 { + return nil + } + + return e +} + +func (e *Error) GoString() string { + return fmt.Sprintf("*%#v", *e) +} + +// WrappedErrors returns the list of errors that this Error is wrapping. +// It is an implementation of the errwrap.Wrapper interface so that +// multierror.Error can be used with that library. +// +// This method is not safe to be called concurrently and is no different +// than accessing the Errors field directly. It is implemented only to +// satisfy the errwrap.Wrapper interface. +func (e *Error) WrappedErrors() []error { + return e.Errors +} diff --git a/vendor/github.com/hashicorp/go-multierror/prefix.go b/vendor/github.com/hashicorp/go-multierror/prefix.go new file mode 100644 index 00000000..5c477abe --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/prefix.go @@ -0,0 +1,37 @@ +package multierror + +import ( + "fmt" + + "github.com/hashicorp/errwrap" +) + +// Prefix is a helper function that will prefix some text +// to the given error. If the error is a multierror.Error, then +// it will be prefixed to each wrapped error. +// +// This is useful to use when appending multiple multierrors +// together in order to give better scoping. +func Prefix(err error, prefix string) error { + if err == nil { + return nil + } + + format := fmt.Sprintf("%s {{err}}", prefix) + switch err := err.(type) { + case *Error: + // Typed nils can reach here, so initialize if we are nil + if err == nil { + err = new(Error) + } + + // Wrap each of the errors + for i, e := range err.Errors { + err.Errors[i] = errwrap.Wrapf(format, e) + } + + return err + default: + return errwrap.Wrapf(format, err) + } +} diff --git a/vendor/github.com/hashicorp/go-multierror/sort.go b/vendor/github.com/hashicorp/go-multierror/sort.go new file mode 100644 index 00000000..fecb14e8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/sort.go @@ -0,0 +1,16 @@ +package multierror + +// Len implements sort.Interface function for length +func (err Error) Len() int { + return len(err.Errors) +} + +// Swap implements sort.Interface function for swapping elements +func (err Error) Swap(i, j int) { + err.Errors[i], err.Errors[j] = err.Errors[j], err.Errors[i] +} + +// Less implements sort.Interface function for determining order +func (err Error) Less(i, j int) bool { + return err.Errors[i].Error() < err.Errors[j].Error() +} diff --git a/vendor/github.com/ipfs/bbloom/.gitignore b/vendor/github.com/ipfs/bbloom/.gitignore new file mode 100644 index 00000000..6540f71c --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/.gitignore @@ -0,0 +1 @@ +words.txt diff --git a/vendor/github.com/ipfs/bbloom/.travis.yml b/vendor/github.com/ipfs/bbloom/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/bbloom/README.md b/vendor/github.com/ipfs/bbloom/README.md new file mode 100644 index 00000000..6d77e146 --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/README.md @@ -0,0 +1,129 @@ +## bbloom: a bitset Bloom filter for go/golang +=== + +package implements a fast bloom filter with real 'bitset' and JSONMarshal/JSONUnmarshal to store/reload the Bloom filter. + +NOTE: the package uses unsafe.Pointer to set and read the bits from the bitset. If you're uncomfortable with using the unsafe package, please consider using my bloom filter package at github.com/AndreasBriese/bloom + +=== + +changelog 11/2015: new thread safe methods AddTS(), HasTS(), AddIfNotHasTS() following a suggestion from Srdjan Marinovic (github @a-little-srdjan), who used this to code a bloomfilter cache. + +This bloom filter was developed to strengthen a website-log database and was tested and optimized for this log-entry mask: "2014/%02i/%02i %02i:%02i:%02i /info.html". +Nonetheless bbloom should work with any other form of entries. + +~~Hash function is a modified Berkeley DB sdbm hash (to optimize for smaller strings). sdbm http://www.cse.yorku.ca/~oz/hash.html~~ + +Found sipHash (SipHash-2-4, a fast short-input PRF created by Jean-Philippe Aumasson and Daniel J. Bernstein.) to be about as fast. sipHash had been ported by Dimtry Chestnyk to Go (github.com/dchest/siphash ) + +Minimum hashset size is: 512 ([4]uint64; will be set automatically). + +###install + +```sh +go get github.com/AndreasBriese/bbloom +``` + +###test ++ change to folder ../bbloom ++ create wordlist in file "words.txt" (you might use `python permut.py`) ++ run 'go test -bench=.' within the folder + +```go +go test -bench=. +``` + +~~If you've installed the GOCONVEY TDD-framework http://goconvey.co/ you can run the tests automatically.~~ + +using go's testing framework now (have in mind that the op timing is related to 65536 operations of Add, Has, AddIfNotHas respectively) + +### usage + +after installation add + +```go +import ( + ... + "github.com/AndreasBriese/bbloom" + ... + ) +``` + +at your header. In the program use + +```go +// create a bloom filter for 65536 items and 1 % wrong-positive ratio +bf := bbloom.New(float64(1<<16), float64(0.01)) + +// or +// create a bloom filter with 650000 for 65536 items and 7 locs per hash explicitly +// bf = bbloom.New(float64(650000), float64(7)) +// or +bf = bbloom.New(650000.0, 7.0) + +// add one item +bf.Add([]byte("butter")) + +// Number of elements added is exposed now +// Note: ElemNum will not be included in JSON export (for compatability to older version) +nOfElementsInFilter := bf.ElemNum + +// check if item is in the filter +isIn := bf.Has([]byte("butter")) // should be true +isNotIn := bf.Has([]byte("Butter")) // should be false + +// 'add only if item is new' to the bloomfilter +added := bf.AddIfNotHas([]byte("butter")) // should be false because 'butter' is already in the set +added = bf.AddIfNotHas([]byte("buTTer")) // should be true because 'buTTer' is new + +// thread safe versions for concurrent use: AddTS, HasTS, AddIfNotHasTS +// add one item +bf.AddTS([]byte("peanutbutter")) +// check if item is in the filter +isIn = bf.HasTS([]byte("peanutbutter")) // should be true +isNotIn = bf.HasTS([]byte("peanutButter")) // should be false +// 'add only if item is new' to the bloomfilter +added = bf.AddIfNotHasTS([]byte("butter")) // should be false because 'peanutbutter' is already in the set +added = bf.AddIfNotHasTS([]byte("peanutbuTTer")) // should be true because 'penutbuTTer' is new + +// convert to JSON ([]byte) +Json := bf.JSONMarshal() + +// bloomfilters Mutex is exposed for external un-/locking +// i.e. mutex lock while doing JSON conversion +bf.Mtx.Lock() +Json = bf.JSONMarshal() +bf.Mtx.Unlock() + +// restore a bloom filter from storage +bfNew := bbloom.JSONUnmarshal(Json) + +isInNew := bfNew.Has([]byte("butter")) // should be true +isNotInNew := bfNew.Has([]byte("Butter")) // should be false + +``` + +to work with the bloom filter. + +### why 'fast'? + +It's about 3 times faster than William Fitzgeralds bitset bloom filter https://github.com/willf/bloom . And it is about so fast as my []bool set variant for Boom filters (see https://github.com/AndreasBriese/bloom ) but having a 8times smaller memory footprint: + + + Bloom filter (filter size 524288, 7 hashlocs) + github.com/AndreasBriese/bbloom 'Add' 65536 items (10 repetitions): 6595800 ns (100 ns/op) + github.com/AndreasBriese/bbloom 'Has' 65536 items (10 repetitions): 5986600 ns (91 ns/op) + github.com/AndreasBriese/bloom 'Add' 65536 items (10 repetitions): 6304684 ns (96 ns/op) + github.com/AndreasBriese/bloom 'Has' 65536 items (10 repetitions): 6568663 ns (100 ns/op) + + github.com/willf/bloom 'Add' 65536 items (10 repetitions): 24367224 ns (371 ns/op) + github.com/willf/bloom 'Test' 65536 items (10 repetitions): 21881142 ns (333 ns/op) + github.com/dataence/bloom/standard 'Add' 65536 items (10 repetitions): 23041644 ns (351 ns/op) + github.com/dataence/bloom/standard 'Check' 65536 items (10 repetitions): 19153133 ns (292 ns/op) + github.com/cabello/bloom 'Add' 65536 items (10 repetitions): 131921507 ns (2012 ns/op) + github.com/cabello/bloom 'Contains' 65536 items (10 repetitions): 131108962 ns (2000 ns/op) + +(on MBPro15 OSX10.8.5 i7 4Core 2.4Ghz) + + +With 32bit bloom filters (bloom32) using modified sdbm, bloom32 does hashing with only 2 bit shifts, one xor and one substraction per byte. smdb is about as fast as fnv64a but gives less collisions with the dataset (see mask above). bloom.New(float64(10 * 1<<16),float64(7)) populated with 1<<16 random items from the dataset (see above) and tested against the rest results in less than 0.05% collisions. diff --git a/vendor/github.com/ipfs/bbloom/bbloom.go b/vendor/github.com/ipfs/bbloom/bbloom.go new file mode 100644 index 00000000..2bff5945 --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/bbloom.go @@ -0,0 +1,315 @@ +// The MIT License (MIT) +// Copyright (c) 2014 Andreas Briese, eduToolbox@Bri-C GmbH, Sarstedt + +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +package bbloom + +import ( + "bytes" + "encoding/json" + "errors" + "math" + "sync" + "unsafe" +) + +// helper +var mask = []uint8{1, 2, 4, 8, 16, 32, 64, 128} + +func getSize(ui64 uint64) (size uint64, exponent uint64) { + if ui64 < uint64(512) { + ui64 = uint64(512) + } + size = uint64(1) + for size < ui64 { + size <<= 1 + exponent++ + } + return size, exponent +} + +func calcSizeByWrongPositives(numEntries, wrongs float64) (uint64, uint64) { + size := -1 * numEntries * math.Log(wrongs) / math.Pow(float64(0.69314718056), 2) + locs := math.Ceil(float64(0.69314718056) * size / numEntries) + return uint64(size), uint64(locs) +} + +var ErrUsage = errors.New("usage: New(float64(number_of_entries), float64(number_of_hashlocations)) i.e. New(float64(1000), float64(3)) or New(float64(number_of_entries), float64(ratio_of_false_positives)) i.e. New(float64(1000), float64(0.03))") +var ErrInvalidParms = errors.New("One of parameters was outside of allowed range") + +// New +// returns a new bloomfilter +func New(params ...float64) (bloomfilter *Bloom, err error) { + var entries, locs uint64 + if len(params) == 2 { + if params[0] < 0 || params[1] < 0 { + return nil, ErrInvalidParms + } + if params[1] < 1 { + entries, locs = calcSizeByWrongPositives(math.Max(params[0], 1), params[1]) + } else { + entries, locs = uint64(params[0]), uint64(params[1]) + } + } else { + return nil, ErrUsage + } + size, exponent := getSize(uint64(entries)) + bloomfilter = &Bloom{ + sizeExp: exponent, + size: size - 1, + setLocs: locs, + shift: 64 - exponent, + bitset: make([]uint64, size>>6), + } + return bloomfilter, nil +} + +// NewWithBoolset +// takes a []byte slice and number of locs per entry +// returns the bloomfilter with a bitset populated according to the input []byte +func NewWithBoolset(bs *[]byte, locs uint64) (bloomfilter *Bloom) { + bloomfilter, err := New(float64(len(*bs)<<3), float64(locs)) + if err != nil { + panic(err) // Should never happen + } + ptr := uintptr(unsafe.Pointer(&bloomfilter.bitset[0])) + for _, b := range *bs { + *(*uint8)(unsafe.Pointer(ptr)) = b + ptr++ + } + return bloomfilter +} + +// bloomJSONImExport +// Im/Export structure used by JSONMarshal / JSONUnmarshal +type bloomJSONImExport struct { + FilterSet []byte + SetLocs uint64 +} + +// +// Bloom filter +type Bloom struct { + Mtx sync.RWMutex + bitset []uint64 + sizeExp uint64 + size uint64 + setLocs uint64 + shift uint64 + + content uint64 +} + +func (bl *Bloom) ElementsAdded() uint64 { + return bl.content +} + +// <--- http://www.cse.yorku.ca/~oz/hash.html +// modified Berkeley DB Hash (32bit) +// hash is casted to l, h = 16bit fragments +// func (bl Bloom) absdbm(b *[]byte) (l, h uint64) { +// hash := uint64(len(*b)) +// for _, c := range *b { +// hash = uint64(c) + (hash << 6) + (hash << bl.sizeExp) - hash +// } +// h = hash >> bl.shift +// l = hash << bl.shift >> bl.shift +// return l, h +// } + +// Update: found sipHash of Jean-Philippe Aumasson & Daniel J. Bernstein to be even faster than absdbm() +// https://131002.net/siphash/ +// siphash was implemented for Go by Dmitry Chestnykh https://github.com/dchest/siphash + +// Add +// set the bit(s) for entry; Adds an entry to the Bloom filter +func (bl *Bloom) Add(entry []byte) { + bl.content++ + l, h := bl.sipHash(entry) + for i := uint64(0); i < (*bl).setLocs; i++ { + bl.set((h + i*l) & (*bl).size) + } +} + +// AddTS +// Thread safe: Mutex.Lock the bloomfilter for the time of processing the entry +func (bl *Bloom) AddTS(entry []byte) { + bl.Mtx.Lock() + defer bl.Mtx.Unlock() + bl.Add(entry[:]) +} + +// Has +// check if bit(s) for entry is/are set +// returns true if the entry was added to the Bloom Filter +func (bl *Bloom) Has(entry []byte) bool { + l, h := bl.sipHash(entry) + res := true + for i := uint64(0); i < bl.setLocs; i++ { + res = res && bl.isSet((h+i*l)&bl.size) + // Branching here (early escape) is not worth it + // This is my conclusion from benchmarks + // if !res { + // return false + // } + } + return res +} + +// HasTS +// Thread safe: Mutex.Lock the bloomfilter for the time of processing the entry +func (bl *Bloom) HasTS(entry []byte) bool { + bl.Mtx.RLock() + defer bl.Mtx.RUnlock() + return bl.Has(entry[:]) +} + +// AddIfNotHas +// Only Add entry if it's not present in the bloomfilter +// returns true if entry was added +// returns false if entry was allready registered in the bloomfilter +func (bl *Bloom) AddIfNotHas(entry []byte) (added bool) { + l, h := bl.sipHash(entry) + contained := true + for i := uint64(0); i < bl.setLocs; i++ { + prev := bl.getSet((h + i*l) & bl.size) + contained = contained && prev + } + if !contained { + bl.content++ + } + return !contained +} + +// AddIfNotHasTS +// Tread safe: Only Add entry if it's not present in the bloomfilter +// returns true if entry was added +// returns false if entry was allready registered in the bloomfilter +func (bl *Bloom) AddIfNotHasTS(entry []byte) (added bool) { + bl.Mtx.Lock() + defer bl.Mtx.Unlock() + return bl.AddIfNotHas(entry[:]) +} + +// Clear +// resets the Bloom filter +func (bl *Bloom) Clear() { + bl.Mtx.Lock() + defer bl.Mtx.Unlock() + for i, _ := range (*bl).bitset { + bl.bitset[i] = 0 + } + bl.content = 0 +} + +// Set +// set the bit[idx] of bitsit +func (bl *Bloom) set(idx uint64) { + ptr := unsafe.Pointer(uintptr(unsafe.Pointer(&bl.bitset[idx>>6])) + uintptr((idx%64)>>3)) + *(*uint8)(ptr) |= mask[idx%8] +} + +func (bl *Bloom) getSet(idx uint64) bool { + ptr := unsafe.Pointer(uintptr(unsafe.Pointer(&bl.bitset[idx>>6])) + uintptr((idx%64)>>3)) + res := *(*uint8)(ptr)&mask[idx%8] > 0 + *(*uint8)(ptr) |= mask[idx%8] + return res +} + +// IsSet +// check if bit[idx] of bitset is set +// returns true/false +func (bl *Bloom) isSet(idx uint64) bool { + ptr := unsafe.Pointer(uintptr(unsafe.Pointer(&bl.bitset[idx>>6])) + uintptr((idx%64)>>3)) + return *(*uint8)(ptr)&mask[idx%8] > 0 +} + +// JSONMarshal +// returns JSON-object (type bloomJSONImExport) as []byte +func (bl *Bloom) JSONMarshal() ([]byte, error) { + bl.Mtx.RLock() + defer bl.Mtx.RUnlock() + bloomImEx := bloomJSONImExport{} + bloomImEx.SetLocs = uint64(bl.setLocs) + bloomImEx.FilterSet = make([]byte, len(bl.bitset)<<3) + ptr := uintptr(unsafe.Pointer(&bl.bitset[0])) + for i := range bloomImEx.FilterSet { + bloomImEx.FilterSet[i] = *(*byte)(unsafe.Pointer(ptr)) + ptr++ + } + data, err := json.Marshal(bloomImEx) + return data, err +} + +// JSONUnmarshal +// takes JSON-Object (type bloomJSONImExport) as []bytes +// returns bloom32 / bloom64 object +func JSONUnmarshal(dbData []byte) *Bloom { + bloomImEx := bloomJSONImExport{} + json.Unmarshal(dbData, &bloomImEx) + buf := bytes.NewBuffer(bloomImEx.FilterSet) + bs := buf.Bytes() + bf := NewWithBoolset(&bs, bloomImEx.SetLocs) + return bf +} + +func (bl *Bloom) FillRatio() float64 { + count := uint64(0) + for _, b := range bl.bitset { + count += uint64(popcount(b)) + } + return float64(count) / float64(bl.size+1) +} + +func popcount(x uint64) uint { + const ( + m1 = 0x5555555555555555 //binary: 0101... + m2 = 0x3333333333333333 //binary: 00110011.. + m4 = 0x0f0f0f0f0f0f0f0f //binary: 4 zeros, 4 ones ... + h01 = 0x0101010101010101 //the sum of 256 to the power of 0,1,2,3... + ) + x -= (x >> 1) & m1 //put count of each 2 bits into those 2 bits + x = (x & m2) + ((x >> 2) & m2) //put count of each 4 bits into those 4 bits + x = (x + (x >> 4)) & m4 //put count of each 8 bits into those 8 bits + return uint((x * h01) >> 56) +} + +// // alternative hashFn +// func (bl Bloom) fnv64a(b *[]byte) (l, h uint64) { +// h64 := fnv.New64a() +// h64.Write(*b) +// hash := h64.Sum64() +// h = hash >> 32 +// l = hash << 32 >> 32 +// return l, h +// } +// +// // <-- http://partow.net/programming/hashfunctions/index.html +// // citation: An algorithm proposed by Donald E. Knuth in The Art Of Computer Programming Volume 3, +// // under the topic of sorting and search chapter 6.4. +// // modified to fit with boolset-length +// func (bl Bloom) DEKHash(b *[]byte) (l, h uint64) { +// hash := uint64(len(*b)) +// for _, c := range *b { +// hash = ((hash << 5) ^ (hash >> bl.shift)) ^ uint64(c) +// } +// h = hash >> bl.shift +// l = hash << bl.sizeExp >> bl.sizeExp +// return l, h +// } diff --git a/vendor/github.com/ipfs/bbloom/go.mod b/vendor/github.com/ipfs/bbloom/go.mod new file mode 100644 index 00000000..07ae2921 --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/go.mod @@ -0,0 +1 @@ +module github.com/ipfs/bbloom diff --git a/vendor/github.com/ipfs/bbloom/package.json b/vendor/github.com/ipfs/bbloom/package.json new file mode 100644 index 00000000..3d42cf9c --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/package.json @@ -0,0 +1,15 @@ +{ + "author": "AndreasBriese", + "bugs": { + "url": "https://github.com/ipfs/bbloom" + }, + "gx": { + "dvcsimport": "github.com/ipfs/bbloom" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "MIT", + "name": "bbloom", + "version": "0.1.2" +} + diff --git a/vendor/github.com/ipfs/bbloom/sipHash.go b/vendor/github.com/ipfs/bbloom/sipHash.go new file mode 100644 index 00000000..a91d8199 --- /dev/null +++ b/vendor/github.com/ipfs/bbloom/sipHash.go @@ -0,0 +1,225 @@ +// Written in 2012 by Dmitry Chestnykh. +// +// To the extent possible under law, the author have dedicated all copyright +// and related and neighboring rights to this software to the public domain +// worldwide. This software is distributed without any warranty. +// http://creativecommons.org/publicdomain/zero/1.0/ +// +// Package siphash implements SipHash-2-4, a fast short-input PRF +// created by Jean-Philippe Aumasson and Daniel J. Bernstein. + +package bbloom + +// Hash returns the 64-bit SipHash-2-4 of the given byte slice with two 64-bit +// parts of 128-bit key: k0 and k1. +func (bl Bloom) sipHash(p []byte) (l, h uint64) { + // Initialization. + v0 := uint64(8317987320269560794) // k0 ^ 0x736f6d6570736575 + v1 := uint64(7237128889637516672) // k1 ^ 0x646f72616e646f6d + v2 := uint64(7816392314733513934) // k0 ^ 0x6c7967656e657261 + v3 := uint64(8387220255325274014) // k1 ^ 0x7465646279746573 + t := uint64(len(p)) << 56 + + // Compression. + for len(p) >= 8 { + + m := uint64(p[0]) | uint64(p[1])<<8 | uint64(p[2])<<16 | uint64(p[3])<<24 | + uint64(p[4])<<32 | uint64(p[5])<<40 | uint64(p[6])<<48 | uint64(p[7])<<56 + + v3 ^= m + + // Round 1. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + // Round 2. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + v0 ^= m + p = p[8:] + } + + // Compress last block. + switch len(p) { + case 7: + t |= uint64(p[6]) << 48 + fallthrough + case 6: + t |= uint64(p[5]) << 40 + fallthrough + case 5: + t |= uint64(p[4]) << 32 + fallthrough + case 4: + t |= uint64(p[3]) << 24 + fallthrough + case 3: + t |= uint64(p[2]) << 16 + fallthrough + case 2: + t |= uint64(p[1]) << 8 + fallthrough + case 1: + t |= uint64(p[0]) + } + + v3 ^= t + + // Round 1. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + // Round 2. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + v0 ^= t + + // Finalization. + v2 ^= 0xff + + // Round 1. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + // Round 2. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + // Round 3. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + // Round 4. + v0 += v1 + v1 = v1<<13 | v1>>51 + v1 ^= v0 + v0 = v0<<32 | v0>>32 + + v2 += v3 + v3 = v3<<16 | v3>>48 + v3 ^= v2 + + v0 += v3 + v3 = v3<<21 | v3>>43 + v3 ^= v0 + + v2 += v1 + v1 = v1<<17 | v1>>47 + v1 ^= v2 + v2 = v2<<32 | v2>>32 + + // return v0 ^ v1 ^ v2 ^ v3 + + hash := v0 ^ v1 ^ v2 ^ v3 + h = hash >> bl.shift + l = hash << bl.shift >> bl.shift + return l, h + +} diff --git a/vendor/github.com/ipfs/go-bitswap/.gitignore b/vendor/github.com/ipfs/go-bitswap/.gitignore new file mode 100644 index 00000000..a9a5aecf --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/.gitignore @@ -0,0 +1 @@ +tmp diff --git a/vendor/github.com/ipfs/go-bitswap/.travis.yml b/vendor/github.com/ipfs/go-bitswap/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-bitswap/LICENSE b/vendor/github.com/ipfs/go-bitswap/LICENSE new file mode 100644 index 00000000..7d5dcac4 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-bitswap/Makefile b/vendor/github.com/ipfs/go-bitswap/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-bitswap/README.md b/vendor/github.com/ipfs/go-bitswap/README.md new file mode 100644 index 00000000..62bbd9b3 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/README.md @@ -0,0 +1,64 @@ +go-bitswap +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-bitswap/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-bitswap/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-bitswap.svg?branch=master)](https://travis-ci.org/ipfs/go-bitswap) + +> An implementation of the bitswap protocol in go! + + +## Table of Contents + +- [Install](#install) +- [Protocol](#protocol) +- [Implementation](#implementation) +- [Contribute](#contribute) +- [License](#license) + +## Protocol +Bitswap is the data trading module for ipfs, it manages requesting and sending +blocks to and from other peers in the network. Bitswap has two main jobs, the +first is to acquire blocks requested by the client from the network. The second +is to judiciously send blocks in its possession to other peers who want them. + +Bitswap is a message based protocol, as opposed to response-reply. All messages +contain wantlists, or blocks. Upon receiving a wantlist, a node should consider +sending out wanted blocks if they have them. Upon receiving blocks, the node +should send out a notification called a 'Cancel' signifying that they no longer +want the block. At a protocol level, bitswap is very simple. + +## Implementation +Internally, when a message with a wantlist is received, it is sent to the +decision engine to be considered, and blocks that we have that are wanted are +placed into the peer request queue. Any block we possess that is wanted by +another peer has a task in the peer request queue created for it. The peer +request queue is a priority queue that sorts available tasks by some metric, +currently, that metric is very simple and aims to fairly address the tasks +of each other peer. More advanced decision logic will be implemented in the +future. Task workers pull tasks to be done off of the queue, retrieve the block +to be sent, and send it off. The number of task workers is limited by a constant +factor. + +Client requests for new blocks are handled by the want manager, for every new +block (or set of blocks) wanted, the 'WantBlocks' method is invoked. The want +manager then ensures that connected peers are notified of the new block that we +want by sending the new entries to a message queue for each peer. The message +queue will loop while there is work available and do the following: 1) Ensure it +has a connection to its peer, 2) grab the message to be sent, and 3) send it. +If new messages are added while the loop is in steps 1 or 3, the messages are +combined into one to avoid having to keep an actual queue and send multiple +messages. The same process occurs when the client receives a block and sends a +cancel message for it. + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Juan Batiz-Benet diff --git a/vendor/github.com/ipfs/go-bitswap/bitswap.go b/vendor/github.com/ipfs/go-bitswap/bitswap.go new file mode 100644 index 00000000..217d5446 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/bitswap.go @@ -0,0 +1,391 @@ +// package bitswap implements the IPFS exchange interface with the BitSwap +// bilateral exchange protocol. +package bitswap + +import ( + "context" + "errors" + "sync" + "time" + + bssrs "github.com/ipfs/go-bitswap/sessionrequestsplitter" + + decision "github.com/ipfs/go-bitswap/decision" + bsgetter "github.com/ipfs/go-bitswap/getter" + bsmsg "github.com/ipfs/go-bitswap/message" + bsmq "github.com/ipfs/go-bitswap/messagequeue" + bsnet "github.com/ipfs/go-bitswap/network" + bspm "github.com/ipfs/go-bitswap/peermanager" + bspqm "github.com/ipfs/go-bitswap/providerquerymanager" + bssession "github.com/ipfs/go-bitswap/session" + bssm "github.com/ipfs/go-bitswap/sessionmanager" + bsspm "github.com/ipfs/go-bitswap/sessionpeermanager" + bswm "github.com/ipfs/go-bitswap/wantmanager" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + blockstore "github.com/ipfs/go-ipfs-blockstore" + delay "github.com/ipfs/go-ipfs-delay" + exchange "github.com/ipfs/go-ipfs-exchange-interface" + flags "github.com/ipfs/go-ipfs-flags" + logging "github.com/ipfs/go-log" + metrics "github.com/ipfs/go-metrics-interface" + process "github.com/jbenet/goprocess" + procctx "github.com/jbenet/goprocess/context" + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("bitswap") + +var _ exchange.SessionExchange = (*Bitswap)(nil) + +const ( + // maxProvidersPerRequest specifies the maximum number of providers desired + // from the network. This value is specified because the network streams + // results. + // TODO: if a 'non-nice' strategy is implemented, consider increasing this value + maxProvidersPerRequest = 3 + findProviderDelay = 1 * time.Second + providerRequestTimeout = time.Second * 10 + // these requests take at _least_ two minutes at the moment. + provideTimeout = time.Minute * 3 + sizeBatchRequestChan = 32 +) + +var ( + HasBlockBufferSize = 256 + provideKeysBufferSize = 2048 + provideWorkerMax = 6 + + // the 1<<18+15 is to observe old file chunks that are 1<<18 + 14 in size + metricsBuckets = []float64{1 << 6, 1 << 10, 1 << 14, 1 << 18, 1<<18 + 15, 1 << 22} +) + +func init() { + if flags.LowMemMode { + HasBlockBufferSize = 64 + provideKeysBufferSize = 512 + provideWorkerMax = 16 + } +} + +var rebroadcastDelay = delay.Fixed(time.Minute) + +// New initializes a BitSwap instance that communicates over the provided +// BitSwapNetwork. This function registers the returned instance as the network +// delegate. +// Runs until context is cancelled. +func New(parent context.Context, network bsnet.BitSwapNetwork, + bstore blockstore.Blockstore) exchange.Interface { + + // important to use provided parent context (since it may include important + // loggable data). It's probably not a good idea to allow bitswap to be + // coupled to the concerns of the ipfs daemon in this way. + // + // FIXME(btc) Now that bitswap manages itself using a process, it probably + // shouldn't accept a context anymore. Clients should probably use Close() + // exclusively. We should probably find another way to share logging data + ctx, cancelFunc := context.WithCancel(parent) + ctx = metrics.CtxSubScope(ctx, "bitswap") + dupHist := metrics.NewCtx(ctx, "recv_dup_blocks_bytes", "Summary of duplicate"+ + " data blocks recived").Histogram(metricsBuckets) + allHist := metrics.NewCtx(ctx, "recv_all_blocks_bytes", "Summary of all"+ + " data blocks recived").Histogram(metricsBuckets) + + sentHistogram := metrics.NewCtx(ctx, "sent_all_blocks_bytes", "Histogram of blocks sent by"+ + " this bitswap").Histogram(metricsBuckets) + + px := process.WithTeardown(func() error { + return nil + }) + + peerQueueFactory := func(ctx context.Context, p peer.ID) bspm.PeerQueue { + return bsmq.New(ctx, p, network) + } + + wm := bswm.New(ctx) + pqm := bspqm.New(ctx, network) + + sessionFactory := func(ctx context.Context, id uint64, pm bssession.PeerManager, srs bssession.RequestSplitter) bssm.Session { + return bssession.New(ctx, id, wm, pm, srs) + } + sessionPeerManagerFactory := func(ctx context.Context, id uint64) bssession.PeerManager { + return bsspm.New(ctx, id, network.ConnectionManager(), pqm) + } + sessionRequestSplitterFactory := func(ctx context.Context) bssession.RequestSplitter { + return bssrs.New(ctx) + } + + bs := &Bitswap{ + blockstore: bstore, + engine: decision.NewEngine(ctx, bstore), // TODO close the engine with Close() method + network: network, + process: px, + newBlocks: make(chan cid.Cid, HasBlockBufferSize), + provideKeys: make(chan cid.Cid, provideKeysBufferSize), + wm: wm, + pqm: pqm, + pm: bspm.New(ctx, peerQueueFactory), + sm: bssm.New(ctx, sessionFactory, sessionPeerManagerFactory, sessionRequestSplitterFactory), + counters: new(counters), + dupMetric: dupHist, + allMetric: allHist, + sentHistogram: sentHistogram, + } + + bs.wm.SetDelegate(bs.pm) + bs.wm.Startup() + bs.pqm.Startup() + network.SetDelegate(bs) + + // Start up bitswaps async worker routines + bs.startWorkers(px, ctx) + + // bind the context and process. + // do it over here to avoid closing before all setup is done. + go func() { + <-px.Closing() // process closes first + cancelFunc() + }() + procctx.CloseAfterContext(px, ctx) // parent cancelled first + + return bs +} + +// Bitswap instances implement the bitswap protocol. +type Bitswap struct { + // the peermanager manages sending messages to peers in a way that + // wont block bitswap operation + pm *bspm.PeerManager + + // the wantlist tracks global wants for bitswap + wm *bswm.WantManager + + // the provider query manager manages requests to find providers + pqm *bspqm.ProviderQueryManager + + // the engine is the bit of logic that decides who to send which blocks to + engine *decision.Engine + + // network delivers messages on behalf of the session + network bsnet.BitSwapNetwork + + // blockstore is the local database + // NB: ensure threadsafety + blockstore blockstore.Blockstore + + // newBlocks is a channel for newly added blocks to be provided to the + // network. blocks pushed down this channel get buffered and fed to the + // provideKeys channel later on to avoid too much network activity + newBlocks chan cid.Cid + // provideKeys directly feeds provide workers + provideKeys chan cid.Cid + + process process.Process + + // Counters for various statistics + counterLk sync.Mutex + counters *counters + + // Metrics interface metrics + dupMetric metrics.Histogram + allMetric metrics.Histogram + sentHistogram metrics.Histogram + + // the sessionmanager manages tracking sessions + sm *bssm.SessionManager +} + +type counters struct { + blocksRecvd uint64 + dupBlocksRecvd uint64 + dupDataRecvd uint64 + blocksSent uint64 + dataSent uint64 + dataRecvd uint64 + messagesRecvd uint64 +} + +type blockRequest struct { + Cid cid.Cid + Ctx context.Context +} + +// GetBlock attempts to retrieve a particular block from peers within the +// deadline enforced by the context. +func (bs *Bitswap) GetBlock(parent context.Context, k cid.Cid) (blocks.Block, error) { + return bsgetter.SyncGetBlock(parent, k, bs.GetBlocks) +} + +func (bs *Bitswap) WantlistForPeer(p peer.ID) []cid.Cid { + var out []cid.Cid + for _, e := range bs.engine.WantlistForPeer(p) { + out = append(out, e.Cid) + } + return out +} + +func (bs *Bitswap) LedgerForPeer(p peer.ID) *decision.Receipt { + return bs.engine.LedgerForPeer(p) +} + +// GetBlocks returns a channel where the caller may receive blocks that +// correspond to the provided |keys|. Returns an error if BitSwap is unable to +// begin this request within the deadline enforced by the context. +// +// NB: Your request remains open until the context expires. To conserve +// resources, provide a context with a reasonably short deadline (ie. not one +// that lasts throughout the lifetime of the server) +func (bs *Bitswap) GetBlocks(ctx context.Context, keys []cid.Cid) (<-chan blocks.Block, error) { + session := bs.sm.NewSession(ctx) + return session.GetBlocks(ctx, keys) +} + +// HasBlock announces the existence of a block to this bitswap service. The +// service will potentially notify its peers. +func (bs *Bitswap) HasBlock(blk blocks.Block) error { + return bs.receiveBlockFrom(blk, "") +} + +// TODO: Some of this stuff really only needs to be done when adding a block +// from the user, not when receiving it from the network. +// In case you run `git blame` on this comment, I'll save you some time: ask +// @whyrusleeping, I don't know the answers you seek. +func (bs *Bitswap) receiveBlockFrom(blk blocks.Block, from peer.ID) error { + select { + case <-bs.process.Closing(): + return errors.New("bitswap is closed") + default: + } + + err := bs.blockstore.Put(blk) + if err != nil { + log.Errorf("Error writing block to datastore: %s", err) + return err + } + + // NOTE: There exists the possiblity for a race condition here. If a user + // creates a node, then adds it to the dagservice while another goroutine + // is waiting on a GetBlock for that object, they will receive a reference + // to the same node. We should address this soon, but i'm not going to do + // it now as it requires more thought and isnt causing immediate problems. + + bs.sm.ReceiveBlockFrom(from, blk) + + bs.engine.AddBlock(blk) + + select { + case bs.newBlocks <- blk.Cid(): + // send block off to be reprovided + case <-bs.process.Closing(): + return bs.process.Close() + } + return nil +} + +func (bs *Bitswap) ReceiveMessage(ctx context.Context, p peer.ID, incoming bsmsg.BitSwapMessage) { + bs.counterLk.Lock() + bs.counters.messagesRecvd++ + bs.counterLk.Unlock() + + // This call records changes to wantlists, blocks received, + // and number of bytes transfered. + bs.engine.MessageReceived(p, incoming) + // TODO: this is bad, and could be easily abused. + // Should only track *useful* messages in ledger + + iblocks := incoming.Blocks() + + if len(iblocks) == 0 { + return + } + + wg := sync.WaitGroup{} + for _, block := range iblocks { + + wg.Add(1) + go func(b blocks.Block) { // TODO: this probably doesnt need to be a goroutine... + defer wg.Done() + + bs.updateReceiveCounters(b) + bs.sm.UpdateReceiveCounters(b) + log.Debugf("got block %s from %s", b, p) + + // skip received blocks that are not in the wantlist + if !bs.wm.IsWanted(b.Cid()) { + return + } + + if err := bs.receiveBlockFrom(b, p); err != nil { + log.Warningf("ReceiveMessage recvBlockFrom error: %s", err) + } + log.Event(ctx, "Bitswap.GetBlockRequest.End", b.Cid()) + }(block) + } + wg.Wait() +} + +var ErrAlreadyHaveBlock = errors.New("already have block") + +func (bs *Bitswap) updateReceiveCounters(b blocks.Block) { + blkLen := len(b.RawData()) + has, err := bs.blockstore.Has(b.Cid()) + if err != nil { + log.Infof("blockstore.Has error: %s", err) + return + } + + bs.allMetric.Observe(float64(blkLen)) + if has { + bs.dupMetric.Observe(float64(blkLen)) + } + + bs.counterLk.Lock() + defer bs.counterLk.Unlock() + c := bs.counters + + c.blocksRecvd++ + c.dataRecvd += uint64(len(b.RawData())) + if has { + c.dupBlocksRecvd++ + c.dupDataRecvd += uint64(blkLen) + } +} + +// Connected/Disconnected warns bitswap about peer connections. +func (bs *Bitswap) PeerConnected(p peer.ID) { + bs.wm.Connected(p) + bs.engine.PeerConnected(p) +} + +// Connected/Disconnected warns bitswap about peer connections. +func (bs *Bitswap) PeerDisconnected(p peer.ID) { + bs.wm.Disconnected(p) + bs.engine.PeerDisconnected(p) +} + +func (bs *Bitswap) ReceiveError(err error) { + log.Infof("Bitswap ReceiveError: %s", err) + // TODO log the network error + // TODO bubble the network error up to the parent context/error logger +} + +func (bs *Bitswap) Close() error { + return bs.process.Close() +} + +func (bs *Bitswap) GetWantlist() []cid.Cid { + entries := bs.wm.CurrentWants() + out := make([]cid.Cid, 0, len(entries)) + for _, e := range entries { + out = append(out, e.Cid) + } + return out +} + +func (bs *Bitswap) IsOnline() bool { + return true +} + +func (bs *Bitswap) NewSession(ctx context.Context) exchange.Fetcher { + return bs.sm.NewSession(ctx) +} diff --git a/vendor/github.com/ipfs/go-bitswap/decision/engine.go b/vendor/github.com/ipfs/go-bitswap/decision/engine.go new file mode 100644 index 00000000..a8e6f1d1 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/decision/engine.go @@ -0,0 +1,382 @@ +// package decision implements the decision engine for the bitswap service. +package decision + +import ( + "context" + "sync" + "time" + + bsmsg "github.com/ipfs/go-bitswap/message" + wl "github.com/ipfs/go-bitswap/wantlist" + + blocks "github.com/ipfs/go-block-format" + bstore "github.com/ipfs/go-ipfs-blockstore" + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" +) + +// TODO consider taking responsibility for other types of requests. For +// example, there could be a |cancelQueue| for all of the cancellation +// messages that need to go out. There could also be a |wantlistQueue| for +// the local peer's wantlists. Alternatively, these could all be bundled +// into a single, intelligent global queue that efficiently +// batches/combines and takes all of these into consideration. +// +// Right now, messages go onto the network for four reasons: +// 1. an initial `sendwantlist` message to a provider of the first key in a +// request +// 2. a periodic full sweep of `sendwantlist` messages to all providers +// 3. upon receipt of blocks, a `cancel` message to all peers +// 4. draining the priority queue of `blockrequests` from peers +// +// Presently, only `blockrequests` are handled by the decision engine. +// However, there is an opportunity to give it more responsibility! If the +// decision engine is given responsibility for all of the others, it can +// intelligently decide how to combine requests efficiently. +// +// Some examples of what would be possible: +// +// * when sending out the wantlists, include `cancel` requests +// * when handling `blockrequests`, include `sendwantlist` and `cancel` as +// appropriate +// * when handling `cancel`, if we recently received a wanted block from a +// peer, include a partial wantlist that contains a few other high priority +// blocks +// +// In a sense, if we treat the decision engine as a black box, it could do +// whatever it sees fit to produce desired outcomes (get wanted keys +// quickly, maintain good relationships with peers, etc). + +var log = logging.Logger("engine") + +const ( + // outboxChanBuffer must be 0 to prevent stale messages from being sent + outboxChanBuffer = 0 + // maxMessageSize is the maximum size of the batched payload + maxMessageSize = 512 * 1024 +) + +// Envelope contains a message for a Peer. +type Envelope struct { + // Peer is the intended recipient. + Peer peer.ID + + // Message is the payload. + Message bsmsg.BitSwapMessage + + // A callback to notify the decision queue that the task is complete + Sent func() +} + +type Engine struct { + // peerRequestQueue is a priority queue of requests received from peers. + // Requests are popped from the queue, packaged up, and placed in the + // outbox. + peerRequestQueue *prq + + // FIXME it's a bit odd for the client and the worker to both share memory + // (both modify the peerRequestQueue) and also to communicate over the + // workSignal channel. consider sending requests over the channel and + // allowing the worker to have exclusive access to the peerRequestQueue. In + // that case, no lock would be required. + workSignal chan struct{} + + // outbox contains outgoing messages to peers. This is owned by the + // taskWorker goroutine + outbox chan (<-chan *Envelope) + + bs bstore.Blockstore + + lock sync.Mutex // protects the fields immediatly below + // ledgerMap lists Ledgers by their Partner key. + ledgerMap map[peer.ID]*ledger + + ticker *time.Ticker +} + +func NewEngine(ctx context.Context, bs bstore.Blockstore) *Engine { + e := &Engine{ + ledgerMap: make(map[peer.ID]*ledger), + bs: bs, + peerRequestQueue: newPRQ(), + outbox: make(chan (<-chan *Envelope), outboxChanBuffer), + workSignal: make(chan struct{}, 1), + ticker: time.NewTicker(time.Millisecond * 100), + } + go e.taskWorker(ctx) + return e +} + +func (e *Engine) WantlistForPeer(p peer.ID) (out []wl.Entry) { + partner := e.findOrCreate(p) + partner.lk.Lock() + defer partner.lk.Unlock() + return partner.wantList.SortedEntries() +} + +func (e *Engine) LedgerForPeer(p peer.ID) *Receipt { + ledger := e.findOrCreate(p) + + ledger.lk.Lock() + defer ledger.lk.Unlock() + + return &Receipt{ + Peer: ledger.Partner.String(), + Value: ledger.Accounting.Value(), + Sent: ledger.Accounting.BytesSent, + Recv: ledger.Accounting.BytesRecv, + Exchanged: ledger.ExchangeCount(), + } +} + +func (e *Engine) taskWorker(ctx context.Context) { + defer close(e.outbox) // because taskWorker uses the channel exclusively + for { + oneTimeUse := make(chan *Envelope, 1) // buffer to prevent blocking + select { + case <-ctx.Done(): + return + case e.outbox <- oneTimeUse: + } + // receiver is ready for an outoing envelope. let's prepare one. first, + // we must acquire a task from the PQ... + envelope, err := e.nextEnvelope(ctx) + if err != nil { + close(oneTimeUse) + return // ctx cancelled + } + oneTimeUse <- envelope // buffered. won't block + close(oneTimeUse) + } +} + +// nextEnvelope runs in the taskWorker goroutine. Returns an error if the +// context is cancelled before the next Envelope can be created. +func (e *Engine) nextEnvelope(ctx context.Context) (*Envelope, error) { + for { + nextTask := e.peerRequestQueue.Pop() + for nextTask == nil { + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-e.workSignal: + nextTask = e.peerRequestQueue.Pop() + case <-e.ticker.C: + e.peerRequestQueue.thawRound() + nextTask = e.peerRequestQueue.Pop() + } + } + + // with a task in hand, we're ready to prepare the envelope... + msg := bsmsg.New(true) + for _, entry := range nextTask.Entries { + block, err := e.bs.Get(entry.Cid) + if err != nil { + log.Errorf("tried to execute a task and errored fetching block: %s", err) + continue + } + msg.AddBlock(block) + } + + if msg.Empty() { + // If we don't have the block, don't hold that against the peer + // make sure to update that the task has been 'completed' + nextTask.Done(nextTask.Entries) + continue + } + + return &Envelope{ + Peer: nextTask.Target, + Message: msg, + Sent: func() { + nextTask.Done(nextTask.Entries) + select { + case e.workSignal <- struct{}{}: + // work completing may mean that our queue will provide new + // work to be done. + default: + } + }, + }, nil + } +} + +// Outbox returns a channel of one-time use Envelope channels. +func (e *Engine) Outbox() <-chan (<-chan *Envelope) { + return e.outbox +} + +// Peers returns a slice of Peers with whom the local node has active sessions. +func (e *Engine) Peers() []peer.ID { + e.lock.Lock() + defer e.lock.Unlock() + + response := make([]peer.ID, 0, len(e.ledgerMap)) + + for _, ledger := range e.ledgerMap { + response = append(response, ledger.Partner) + } + return response +} + +// MessageReceived performs book-keeping. Returns error if passed invalid +// arguments. +func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error { + if m.Empty() { + log.Debugf("received empty message from %s", p) + } + + newWorkExists := false + defer func() { + if newWorkExists { + e.signalNewWork() + } + }() + + l := e.findOrCreate(p) + l.lk.Lock() + defer l.lk.Unlock() + if m.Full() { + l.wantList = wl.New() + } + + var msgSize int + var activeEntries []wl.Entry + for _, entry := range m.Wantlist() { + if entry.Cancel { + log.Debugf("%s cancel %s", p, entry.Cid) + l.CancelWant(entry.Cid) + e.peerRequestQueue.Remove(entry.Cid, p) + } else { + log.Debugf("wants %s - %d", entry.Cid, entry.Priority) + l.Wants(entry.Cid, entry.Priority) + blockSize, err := e.bs.GetSize(entry.Cid) + if err != nil { + if err == bstore.ErrNotFound { + continue + } + log.Error(err) + } else { + // we have the block + newWorkExists = true + if msgSize+blockSize > maxMessageSize { + e.peerRequestQueue.Push(p, activeEntries...) + activeEntries = []wl.Entry{} + msgSize = 0 + } + activeEntries = append(activeEntries, entry.Entry) + msgSize += blockSize + } + } + } + if len(activeEntries) > 0 { + e.peerRequestQueue.Push(p, activeEntries...) + } + for _, block := range m.Blocks() { + log.Debugf("got block %s %d bytes", block, len(block.RawData())) + l.ReceivedBytes(len(block.RawData())) + } + return nil +} + +func (e *Engine) addBlock(block blocks.Block) { + work := false + + for _, l := range e.ledgerMap { + l.lk.Lock() + if entry, ok := l.WantListContains(block.Cid()); ok { + e.peerRequestQueue.Push(l.Partner, entry) + work = true + } + l.lk.Unlock() + } + + if work { + e.signalNewWork() + } +} + +func (e *Engine) AddBlock(block blocks.Block) { + e.lock.Lock() + defer e.lock.Unlock() + + e.addBlock(block) +} + +// TODO add contents of m.WantList() to my local wantlist? NB: could introduce +// race conditions where I send a message, but MessageSent gets handled after +// MessageReceived. The information in the local wantlist could become +// inconsistent. Would need to ensure that Sends and acknowledgement of the +// send happen atomically + +func (e *Engine) MessageSent(p peer.ID, m bsmsg.BitSwapMessage) error { + l := e.findOrCreate(p) + l.lk.Lock() + defer l.lk.Unlock() + + for _, block := range m.Blocks() { + l.SentBytes(len(block.RawData())) + l.wantList.Remove(block.Cid()) + e.peerRequestQueue.Remove(block.Cid(), p) + } + + return nil +} + +func (e *Engine) PeerConnected(p peer.ID) { + e.lock.Lock() + defer e.lock.Unlock() + l, ok := e.ledgerMap[p] + if !ok { + l = newLedger(p) + e.ledgerMap[p] = l + } + l.lk.Lock() + defer l.lk.Unlock() + l.ref++ +} + +func (e *Engine) PeerDisconnected(p peer.ID) { + e.lock.Lock() + defer e.lock.Unlock() + l, ok := e.ledgerMap[p] + if !ok { + return + } + l.lk.Lock() + defer l.lk.Unlock() + l.ref-- + if l.ref <= 0 { + delete(e.ledgerMap, p) + } +} + +func (e *Engine) numBytesSentTo(p peer.ID) uint64 { + // NB not threadsafe + return e.findOrCreate(p).Accounting.BytesSent +} + +func (e *Engine) numBytesReceivedFrom(p peer.ID) uint64 { + // NB not threadsafe + return e.findOrCreate(p).Accounting.BytesRecv +} + +// ledger lazily instantiates a ledger +func (e *Engine) findOrCreate(p peer.ID) *ledger { + e.lock.Lock() + defer e.lock.Unlock() + l, ok := e.ledgerMap[p] + if !ok { + l = newLedger(p) + e.ledgerMap[p] = l + } + return l +} + +func (e *Engine) signalNewWork() { + // Signal task generation to restart (if stopped!) + select { + case e.workSignal <- struct{}{}: + default: + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/decision/ledger.go b/vendor/github.com/ipfs/go-bitswap/decision/ledger.go new file mode 100644 index 00000000..374f0e7e --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/decision/ledger.go @@ -0,0 +1,94 @@ +package decision + +import ( + "sync" + "time" + + wl "github.com/ipfs/go-bitswap/wantlist" + + cid "github.com/ipfs/go-cid" + peer "github.com/libp2p/go-libp2p-peer" +) + +func newLedger(p peer.ID) *ledger { + return &ledger{ + wantList: wl.New(), + Partner: p, + sentToPeer: make(map[string]time.Time), + } +} + +// ledger stores the data exchange relationship between two peers. +// NOT threadsafe +type ledger struct { + // Partner is the remote Peer. + Partner peer.ID + + // Accounting tracks bytes sent and received. + Accounting debtRatio + + // lastExchange is the time of the last data exchange. + lastExchange time.Time + + // exchangeCount is the number of exchanges with this peer + exchangeCount uint64 + + // wantList is a (bounded, small) set of keys that Partner desires. + wantList *wl.Wantlist + + // sentToPeer is a set of keys to ensure we dont send duplicate blocks + // to a given peer + sentToPeer map[string]time.Time + + // ref is the reference count for this ledger, its used to ensure we + // don't drop the reference to this ledger in multi-connection scenarios + ref int + + lk sync.Mutex +} + +type Receipt struct { + Peer string + Value float64 + Sent uint64 + Recv uint64 + Exchanged uint64 +} + +type debtRatio struct { + BytesSent uint64 + BytesRecv uint64 +} + +func (dr *debtRatio) Value() float64 { + return float64(dr.BytesSent) / float64(dr.BytesRecv+1) +} + +func (l *ledger) SentBytes(n int) { + l.exchangeCount++ + l.lastExchange = time.Now() + l.Accounting.BytesSent += uint64(n) +} + +func (l *ledger) ReceivedBytes(n int) { + l.exchangeCount++ + l.lastExchange = time.Now() + l.Accounting.BytesRecv += uint64(n) +} + +func (l *ledger) Wants(k cid.Cid, priority int) { + log.Debugf("peer %s wants %s", l.Partner, k) + l.wantList.Add(k, priority) +} + +func (l *ledger) CancelWant(k cid.Cid) { + l.wantList.Remove(k) +} + +func (l *ledger) WantListContains(k cid.Cid) (wl.Entry, bool) { + return l.wantList.Contains(k) +} + +func (l *ledger) ExchangeCount() uint64 { + return l.exchangeCount +} diff --git a/vendor/github.com/ipfs/go-bitswap/decision/peer_request_queue.go b/vendor/github.com/ipfs/go-bitswap/decision/peer_request_queue.go new file mode 100644 index 00000000..4f6ededc --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/decision/peer_request_queue.go @@ -0,0 +1,342 @@ +package decision + +import ( + "sync" + "time" + + wantlist "github.com/ipfs/go-bitswap/wantlist" + + cid "github.com/ipfs/go-cid" + pq "github.com/ipfs/go-ipfs-pq" + peer "github.com/libp2p/go-libp2p-peer" +) + +type peerRequestQueue interface { + // Pop returns the next peerRequestTask. Returns nil if the peerRequestQueue is empty. + Pop() *peerRequestTask + Push(to peer.ID, entries ...wantlist.Entry) + Remove(k cid.Cid, p peer.ID) + + // NB: cannot expose simply expose taskQueue.Len because trashed elements + // may exist. These trashed elements should not contribute to the count. +} + +func newPRQ() *prq { + return &prq{ + taskMap: make(map[taskEntryKey]*peerRequestTask), + partners: make(map[peer.ID]*activePartner), + frozen: make(map[peer.ID]*activePartner), + pQueue: pq.New(partnerCompare), + } +} + +// verify interface implementation +var _ peerRequestQueue = &prq{} + +// TODO: at some point, the strategy needs to plug in here +// to help decide how to sort tasks (on add) and how to select +// tasks (on getnext). For now, we are assuming a dumb/nice strategy. +type prq struct { + lock sync.Mutex + pQueue pq.PQ + taskMap map[taskEntryKey]*peerRequestTask + partners map[peer.ID]*activePartner + + frozen map[peer.ID]*activePartner +} + +// Push currently adds a new peerRequestTask to the end of the list. +func (tl *prq) Push(to peer.ID, entries ...wantlist.Entry) { + tl.lock.Lock() + defer tl.lock.Unlock() + partner, ok := tl.partners[to] + if !ok { + partner = newActivePartner() + tl.pQueue.Push(partner) + tl.partners[to] = partner + } + + partner.activelk.Lock() + defer partner.activelk.Unlock() + + var priority int + newEntries := make([]peerRequestTaskEntry, 0, len(entries)) + for _, entry := range entries { + if partner.activeBlocks.Has(entry.Cid) { + continue + } + if task, ok := tl.taskMap[taskEntryKey{to, entry.Cid}]; ok { + if entry.Priority > task.Priority { + task.Priority = entry.Priority + partner.taskQueue.Update(task.index) + } + continue + } + if entry.Priority > priority { + priority = entry.Priority + } + newEntries = append(newEntries, peerRequestTaskEntry{entry, false}) + } + + if len(newEntries) == 0 { + return + } + + task := &peerRequestTask{ + Entries: newEntries, + Target: to, + created: time.Now(), + Done: func(e []peerRequestTaskEntry) { + tl.lock.Lock() + for _, entry := range e { + partner.TaskDone(entry.Cid) + } + tl.pQueue.Update(partner.Index()) + tl.lock.Unlock() + }, + } + task.Priority = priority + partner.taskQueue.Push(task) + for _, entry := range newEntries { + tl.taskMap[taskEntryKey{to, entry.Cid}] = task + } + partner.requests += len(newEntries) + tl.pQueue.Update(partner.Index()) +} + +// Pop 'pops' the next task to be performed. Returns nil if no task exists. +func (tl *prq) Pop() *peerRequestTask { + tl.lock.Lock() + defer tl.lock.Unlock() + if tl.pQueue.Len() == 0 { + return nil + } + partner := tl.pQueue.Pop().(*activePartner) + + var out *peerRequestTask + for partner.taskQueue.Len() > 0 && partner.freezeVal == 0 { + out = partner.taskQueue.Pop().(*peerRequestTask) + + newEntries := make([]peerRequestTaskEntry, 0, len(out.Entries)) + for _, entry := range out.Entries { + delete(tl.taskMap, taskEntryKey{out.Target, entry.Cid}) + if entry.trash { + continue + } + partner.requests-- + partner.StartTask(entry.Cid) + newEntries = append(newEntries, entry) + } + if len(newEntries) > 0 { + out.Entries = newEntries + } else { + out = nil // discarding tasks that have been removed + continue + } + break // and return |out| + } + + tl.pQueue.Push(partner) + return out +} + +// Remove removes a task from the queue. +func (tl *prq) Remove(k cid.Cid, p peer.ID) { + tl.lock.Lock() + t, ok := tl.taskMap[taskEntryKey{p, k}] + if ok { + for i := range t.Entries { + if t.Entries[i].Cid.Equals(k) { + // remove the task "lazily" + // simply mark it as trash, so it'll be dropped when popped off the + // queue. + t.Entries[i].trash = true + break + } + } + + // having canceled a block, we now account for that in the given partner + partner := tl.partners[p] + partner.requests-- + + // we now also 'freeze' that partner. If they sent us a cancel for a + // block we were about to send them, we should wait a short period of time + // to make sure we receive any other in-flight cancels before sending + // them a block they already potentially have + if partner.freezeVal == 0 { + tl.frozen[p] = partner + } + + partner.freezeVal++ + tl.pQueue.Update(partner.index) + } + tl.lock.Unlock() +} + +func (tl *prq) fullThaw() { + tl.lock.Lock() + defer tl.lock.Unlock() + + for id, partner := range tl.frozen { + partner.freezeVal = 0 + delete(tl.frozen, id) + tl.pQueue.Update(partner.index) + } +} + +func (tl *prq) thawRound() { + tl.lock.Lock() + defer tl.lock.Unlock() + + for id, partner := range tl.frozen { + partner.freezeVal -= (partner.freezeVal + 1) / 2 + if partner.freezeVal <= 0 { + delete(tl.frozen, id) + } + tl.pQueue.Update(partner.index) + } +} + +type peerRequestTaskEntry struct { + wantlist.Entry + // trash in a book-keeping field + trash bool +} +type peerRequestTask struct { + Entries []peerRequestTaskEntry + Priority int + Target peer.ID + + // A callback to signal that this task has been completed + Done func([]peerRequestTaskEntry) + + // created marks the time that the task was added to the queue + created time.Time + index int // book-keeping field used by the pq container +} + +// Index implements pq.Elem. +func (t *peerRequestTask) Index() int { + return t.index +} + +// SetIndex implements pq.Elem. +func (t *peerRequestTask) SetIndex(i int) { + t.index = i +} + +// taskEntryKey is a key identifying a task. +type taskEntryKey struct { + p peer.ID + k cid.Cid +} + +// FIFO is a basic task comparator that returns tasks in the order created. +var FIFO = func(a, b *peerRequestTask) bool { + return a.created.Before(b.created) +} + +// V1 respects the target peer's wantlist priority. For tasks involving +// different peers, the oldest task is prioritized. +var V1 = func(a, b *peerRequestTask) bool { + if a.Target == b.Target { + return a.Priority > b.Priority + } + return FIFO(a, b) +} + +func wrapCmp(f func(a, b *peerRequestTask) bool) func(a, b pq.Elem) bool { + return func(a, b pq.Elem) bool { + return f(a.(*peerRequestTask), b.(*peerRequestTask)) + } +} + +type activePartner struct { + + // Active is the number of blocks this peer is currently being sent + // active must be locked around as it will be updated externally + activelk sync.Mutex + active int + + activeBlocks *cid.Set + + // requests is the number of blocks this peer is currently requesting + // request need not be locked around as it will only be modified under + // the peerRequestQueue's locks + requests int + + // for the PQ interface + index int + + freezeVal int + + // priority queue of tasks belonging to this peer + taskQueue pq.PQ +} + +func newActivePartner() *activePartner { + return &activePartner{ + taskQueue: pq.New(wrapCmp(V1)), + activeBlocks: cid.NewSet(), + } +} + +// partnerCompare implements pq.ElemComparator +// returns true if peer 'a' has higher priority than peer 'b' +func partnerCompare(a, b pq.Elem) bool { + pa := a.(*activePartner) + pb := b.(*activePartner) + + // having no blocks in their wantlist means lowest priority + // having both of these checks ensures stability of the sort + if pa.requests == 0 { + return false + } + if pb.requests == 0 { + return true + } + + if pa.freezeVal > pb.freezeVal { + return false + } + if pa.freezeVal < pb.freezeVal { + return true + } + + if pa.active == pb.active { + // sorting by taskQueue.Len() aids in cleaning out trash entries faster + // if we sorted instead by requests, one peer could potentially build up + // a huge number of cancelled entries in the queue resulting in a memory leak + return pa.taskQueue.Len() > pb.taskQueue.Len() + } + return pa.active < pb.active +} + +// StartTask signals that a task was started for this partner. +func (p *activePartner) StartTask(k cid.Cid) { + p.activelk.Lock() + p.activeBlocks.Add(k) + p.active++ + p.activelk.Unlock() +} + +// TaskDone signals that a task was completed for this partner. +func (p *activePartner) TaskDone(k cid.Cid) { + p.activelk.Lock() + p.activeBlocks.Remove(k) + p.active-- + if p.active < 0 { + panic("more tasks finished than started!") + } + p.activelk.Unlock() +} + +// Index implements pq.Elem. +func (p *activePartner) Index() int { + return p.index +} + +// SetIndex implements pq.Elem. +func (p *activePartner) SetIndex(i int) { + p.index = i +} diff --git a/vendor/github.com/ipfs/go-bitswap/getter/getter.go b/vendor/github.com/ipfs/go-bitswap/getter/getter.go new file mode 100644 index 00000000..4f1c29db --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/getter/getter.go @@ -0,0 +1,112 @@ +package getter + +import ( + "context" + "errors" + + notifications "github.com/ipfs/go-bitswap/notifications" + logging "github.com/ipfs/go-log" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + blockstore "github.com/ipfs/go-ipfs-blockstore" +) + +var log = logging.Logger("bitswap") + +// GetBlocksFunc is any function that can take an array of CIDs and return a +// channel of incoming blocks. +type GetBlocksFunc func(context.Context, []cid.Cid) (<-chan blocks.Block, error) + +// SyncGetBlock takes a block cid and an async function for getting several +// blocks that returns a channel, and uses that function to return the +// block syncronously. +func SyncGetBlock(p context.Context, k cid.Cid, gb GetBlocksFunc) (blocks.Block, error) { + if !k.Defined() { + log.Error("undefined cid in GetBlock") + return nil, blockstore.ErrNotFound + } + + // Any async work initiated by this function must end when this function + // returns. To ensure this, derive a new context. Note that it is okay to + // listen on parent in this scope, but NOT okay to pass |parent| to + // functions called by this one. Otherwise those functions won't return + // when this context's cancel func is executed. This is difficult to + // enforce. May this comment keep you safe. + ctx, cancel := context.WithCancel(p) + defer cancel() + + promise, err := gb(ctx, []cid.Cid{k}) + if err != nil { + return nil, err + } + + select { + case block, ok := <-promise: + if !ok { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + return nil, errors.New("promise channel was closed") + } + } + return block, nil + case <-p.Done(): + return nil, p.Err() + } +} + +// WantFunc is any function that can express a want for set of blocks. +type WantFunc func(context.Context, []cid.Cid) + +// AsyncGetBlocks take a set of block cids, a pubsub channel for incoming +// blocks, a want function, and a close function, +// and returns a channel of incoming blocks. +func AsyncGetBlocks(ctx context.Context, keys []cid.Cid, notif notifications.PubSub, want WantFunc, cwants func([]cid.Cid)) (<-chan blocks.Block, error) { + if len(keys) == 0 { + out := make(chan blocks.Block) + close(out) + return out, nil + } + + remaining := cid.NewSet() + promise := notif.Subscribe(ctx, keys...) + for _, k := range keys { + log.Event(ctx, "Bitswap.GetBlockRequest.Start", k) + remaining.Add(k) + } + + want(ctx, keys) + + out := make(chan blocks.Block) + go handleIncoming(ctx, remaining, promise, out, cwants) + return out, nil +} + +func handleIncoming(ctx context.Context, remaining *cid.Set, in <-chan blocks.Block, out chan blocks.Block, cfun func([]cid.Cid)) { + ctx, cancel := context.WithCancel(ctx) + defer func() { + cancel() + close(out) + // can't just defer this call on its own, arguments are resolved *when* the defer is created + cfun(remaining.Keys()) + }() + for { + select { + case blk, ok := <-in: + if !ok { + return + } + + remaining.Remove(blk.Cid()) + select { + case out <- blk: + case <-ctx.Done(): + return + } + case <-ctx.Done(): + return + } + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/go.mod b/vendor/github.com/ipfs/go-bitswap/go.mod new file mode 100644 index 00000000..ccfa0983 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/go.mod @@ -0,0 +1,34 @@ +module github.com/ipfs/go-bitswap + +require ( + github.com/cskr/pubsub v1.0.2 + github.com/gogo/protobuf v1.2.1 + github.com/hashicorp/golang-lru v0.5.1 + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-detect-race v0.0.1 + github.com/ipfs/go-ipfs-blockstore v0.0.1 + github.com/ipfs/go-ipfs-blocksutil v0.0.1 + github.com/ipfs/go-ipfs-delay v0.0.1 + github.com/ipfs/go-ipfs-exchange-interface v0.0.1 + github.com/ipfs/go-ipfs-flags v0.0.1 + github.com/ipfs/go-ipfs-pq v0.0.1 + github.com/ipfs/go-ipfs-routing v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-metrics-interface v0.0.1 + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-libp2p v0.0.2 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 + github.com/libp2p/go-libp2p-loggables v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-netutil v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/libp2p/go-testutil v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-bitswap/go.sum b/vendor/github.com/ipfs/go-bitswap/go.sum new file mode 100644 index 00000000..165f526c --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/go.sum @@ -0,0 +1,275 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.1 h1:oEjzhRzymY7NILTMzOKNVOpNZGpcQHrHriWw91pbJNM= +github.com/libp2p/go-libp2p v0.0.1/go.mod h1:bmRs8I0vwn6iRaVssZnJx/epY6WPSKiLoK1vyle4EX0= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.1/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.2 h1:ilo9QPzNPf1hMkqaPG55yzvhILf5ZtijstJhcii+l3s= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1 h1:DYbjyQ5ZY3QVAVYZWG4uzBQ6Wmcd1C82Bk8Q/pJlM1I= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1 h1:VkjCKmJQMwpDUwtA8Qc1z3TQAHJgQ5nGQ6cdN0wQXOw= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.1 h1:on/zju7XE+JXc8gH+vTKmIh2UJFC1K8kGnJYluQrlz4= +github.com/libp2p/go-libp2p-nat v0.0.1/go.mod h1:4L6ajyUIlJvx1Cbh5pc6Ma6vMDpKXf3GgLO5u7W0oQ4= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1 h1:9ytMqq86Xvp8rcnC/1ZNuH612eXLDglvcu4ZHseJl8s= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-bitswap/message/message.go b/vendor/github.com/ipfs/go-bitswap/message/message.go new file mode 100644 index 00000000..b9035d8f --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/message/message.go @@ -0,0 +1,244 @@ +package message + +import ( + "fmt" + "io" + + pb "github.com/ipfs/go-bitswap/message/pb" + wantlist "github.com/ipfs/go-bitswap/wantlist" + blocks "github.com/ipfs/go-block-format" + + ggio "github.com/gogo/protobuf/io" + cid "github.com/ipfs/go-cid" + inet "github.com/libp2p/go-libp2p-net" +) + +// TODO move message.go into the bitswap package +// TODO move bs/msg/internal/pb to bs/internal/pb and rename pb package to bitswap_pb + +type BitSwapMessage interface { + // Wantlist returns a slice of unique keys that represent data wanted by + // the sender. + Wantlist() []Entry + + // Blocks returns a slice of unique blocks. + Blocks() []blocks.Block + + // AddEntry adds an entry to the Wantlist. + AddEntry(key cid.Cid, priority int) + + Cancel(key cid.Cid) + + Empty() bool + + // A full wantlist is an authoritative copy, a 'non-full' wantlist is a patch-set + Full() bool + + AddBlock(blocks.Block) + Exportable + + Loggable() map[string]interface{} +} + +type Exportable interface { + ToProtoV0() *pb.Message + ToProtoV1() *pb.Message + ToNetV0(w io.Writer) error + ToNetV1(w io.Writer) error +} + +type impl struct { + full bool + wantlist map[cid.Cid]*Entry + blocks map[cid.Cid]blocks.Block +} + +func New(full bool) BitSwapMessage { + return newMsg(full) +} + +func newMsg(full bool) *impl { + return &impl{ + blocks: make(map[cid.Cid]blocks.Block), + wantlist: make(map[cid.Cid]*Entry), + full: full, + } +} + +type Entry struct { + wantlist.Entry + Cancel bool +} + +func newMessageFromProto(pbm pb.Message) (BitSwapMessage, error) { + m := newMsg(pbm.Wantlist.Full) + for _, e := range pbm.Wantlist.Entries { + c, err := cid.Cast([]byte(e.Block)) + if err != nil { + return nil, fmt.Errorf("incorrectly formatted cid in wantlist: %s", err) + } + m.addEntry(c, int(e.Priority), e.Cancel) + } + + // deprecated + for _, d := range pbm.Blocks { + // CIDv0, sha256, protobuf only + b := blocks.NewBlock(d) + m.AddBlock(b) + } + // + + for _, b := range pbm.GetPayload() { + pref, err := cid.PrefixFromBytes(b.GetPrefix()) + if err != nil { + return nil, err + } + + c, err := pref.Sum(b.GetData()) + if err != nil { + return nil, err + } + + blk, err := blocks.NewBlockWithCid(b.GetData(), c) + if err != nil { + return nil, err + } + + m.AddBlock(blk) + } + + return m, nil +} + +func (m *impl) Full() bool { + return m.full +} + +func (m *impl) Empty() bool { + return len(m.blocks) == 0 && len(m.wantlist) == 0 +} + +func (m *impl) Wantlist() []Entry { + out := make([]Entry, 0, len(m.wantlist)) + for _, e := range m.wantlist { + out = append(out, *e) + } + return out +} + +func (m *impl) Blocks() []blocks.Block { + bs := make([]blocks.Block, 0, len(m.blocks)) + for _, block := range m.blocks { + bs = append(bs, block) + } + return bs +} + +func (m *impl) Cancel(k cid.Cid) { + delete(m.wantlist, k) + m.addEntry(k, 0, true) +} + +func (m *impl) AddEntry(k cid.Cid, priority int) { + m.addEntry(k, priority, false) +} + +func (m *impl) addEntry(c cid.Cid, priority int, cancel bool) { + e, exists := m.wantlist[c] + if exists { + e.Priority = priority + e.Cancel = cancel + } else { + m.wantlist[c] = &Entry{ + Entry: wantlist.Entry{ + Cid: c, + Priority: priority, + }, + Cancel: cancel, + } + } +} + +func (m *impl) AddBlock(b blocks.Block) { + m.blocks[b.Cid()] = b +} + +func FromNet(r io.Reader) (BitSwapMessage, error) { + pbr := ggio.NewDelimitedReader(r, inet.MessageSizeMax) + return FromPBReader(pbr) +} + +func FromPBReader(pbr ggio.Reader) (BitSwapMessage, error) { + pb := new(pb.Message) + if err := pbr.ReadMsg(pb); err != nil { + return nil, err + } + + return newMessageFromProto(*pb) +} + +func (m *impl) ToProtoV0() *pb.Message { + pbm := new(pb.Message) + pbm.Wantlist.Entries = make([]pb.Message_Wantlist_Entry, 0, len(m.wantlist)) + for _, e := range m.wantlist { + pbm.Wantlist.Entries = append(pbm.Wantlist.Entries, pb.Message_Wantlist_Entry{ + Block: e.Cid.Bytes(), + Priority: int32(e.Priority), + Cancel: e.Cancel, + }) + } + pbm.Wantlist.Full = m.full + + blocks := m.Blocks() + pbm.Blocks = make([][]byte, 0, len(blocks)) + for _, b := range blocks { + pbm.Blocks = append(pbm.Blocks, b.RawData()) + } + return pbm +} + +func (m *impl) ToProtoV1() *pb.Message { + pbm := new(pb.Message) + pbm.Wantlist.Entries = make([]pb.Message_Wantlist_Entry, 0, len(m.wantlist)) + for _, e := range m.wantlist { + pbm.Wantlist.Entries = append(pbm.Wantlist.Entries, pb.Message_Wantlist_Entry{ + Block: e.Cid.Bytes(), + Priority: int32(e.Priority), + Cancel: e.Cancel, + }) + } + pbm.Wantlist.Full = m.full + + blocks := m.Blocks() + pbm.Payload = make([]pb.Message_Block, 0, len(blocks)) + for _, b := range blocks { + pbm.Payload = append(pbm.Payload, pb.Message_Block{ + Data: b.RawData(), + Prefix: b.Cid().Prefix().Bytes(), + }) + } + return pbm +} + +func (m *impl) ToNetV0(w io.Writer) error { + pbw := ggio.NewDelimitedWriter(w) + + return pbw.WriteMsg(m.ToProtoV0()) +} + +func (m *impl) ToNetV1(w io.Writer) error { + pbw := ggio.NewDelimitedWriter(w) + + return pbw.WriteMsg(m.ToProtoV1()) +} + +func (m *impl) Loggable() map[string]interface{} { + blocks := make([]string, 0, len(m.blocks)) + for _, v := range m.blocks { + blocks = append(blocks, v.Cid().String()) + } + return map[string]interface{}{ + "blocks": blocks, + "wants": m.Wantlist(), + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/message/pb/Makefile b/vendor/github.com/ipfs/go-bitswap/message/pb/Makefile new file mode 100644 index 00000000..df34e54b --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/message/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofaster_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/ipfs/go-bitswap/message/pb/message.pb.go b/vendor/github.com/ipfs/go-bitswap/message/pb/message.pb.go new file mode 100644 index 00000000..34eacb29 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/message/pb/message.pb.go @@ -0,0 +1,1152 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: message.proto + +package bitswap_message_pb + +import ( + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Message struct { + Wantlist Message_Wantlist `protobuf:"bytes,1,opt,name=wantlist,proto3" json:"wantlist"` + Blocks [][]byte `protobuf:"bytes,2,rep,name=blocks,proto3" json:"blocks,omitempty"` + Payload []Message_Block `protobuf:"bytes,3,rep,name=payload,proto3" json:"payload"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { + return fileDescriptor_33c57e4bae7b9afd, []int{0} +} +func (m *Message) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message.Merge(m, src) +} +func (m *Message) XXX_Size() int { + return m.Size() +} +func (m *Message) XXX_DiscardUnknown() { + xxx_messageInfo_Message.DiscardUnknown(m) +} + +var xxx_messageInfo_Message proto.InternalMessageInfo + +func (m *Message) GetWantlist() Message_Wantlist { + if m != nil { + return m.Wantlist + } + return Message_Wantlist{} +} + +func (m *Message) GetBlocks() [][]byte { + if m != nil { + return m.Blocks + } + return nil +} + +func (m *Message) GetPayload() []Message_Block { + if m != nil { + return m.Payload + } + return nil +} + +type Message_Wantlist struct { + Entries []Message_Wantlist_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries"` + Full bool `protobuf:"varint,2,opt,name=full,proto3" json:"full,omitempty"` +} + +func (m *Message_Wantlist) Reset() { *m = Message_Wantlist{} } +func (m *Message_Wantlist) String() string { return proto.CompactTextString(m) } +func (*Message_Wantlist) ProtoMessage() {} +func (*Message_Wantlist) Descriptor() ([]byte, []int) { + return fileDescriptor_33c57e4bae7b9afd, []int{0, 0} +} +func (m *Message_Wantlist) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_Wantlist) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_Wantlist.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_Wantlist) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_Wantlist.Merge(m, src) +} +func (m *Message_Wantlist) XXX_Size() int { + return m.Size() +} +func (m *Message_Wantlist) XXX_DiscardUnknown() { + xxx_messageInfo_Message_Wantlist.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_Wantlist proto.InternalMessageInfo + +func (m *Message_Wantlist) GetEntries() []Message_Wantlist_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *Message_Wantlist) GetFull() bool { + if m != nil { + return m.Full + } + return false +} + +type Message_Wantlist_Entry struct { + Block []byte `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` + Priority int32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"` + Cancel bool `protobuf:"varint,3,opt,name=cancel,proto3" json:"cancel,omitempty"` +} + +func (m *Message_Wantlist_Entry) Reset() { *m = Message_Wantlist_Entry{} } +func (m *Message_Wantlist_Entry) String() string { return proto.CompactTextString(m) } +func (*Message_Wantlist_Entry) ProtoMessage() {} +func (*Message_Wantlist_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_33c57e4bae7b9afd, []int{0, 0, 0} +} +func (m *Message_Wantlist_Entry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_Wantlist_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_Wantlist_Entry.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_Wantlist_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_Wantlist_Entry.Merge(m, src) +} +func (m *Message_Wantlist_Entry) XXX_Size() int { + return m.Size() +} +func (m *Message_Wantlist_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_Message_Wantlist_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_Wantlist_Entry proto.InternalMessageInfo + +func (m *Message_Wantlist_Entry) GetBlock() []byte { + if m != nil { + return m.Block + } + return nil +} + +func (m *Message_Wantlist_Entry) GetPriority() int32 { + if m != nil { + return m.Priority + } + return 0 +} + +func (m *Message_Wantlist_Entry) GetCancel() bool { + if m != nil { + return m.Cancel + } + return false +} + +type Message_Block struct { + Prefix []byte `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (m *Message_Block) Reset() { *m = Message_Block{} } +func (m *Message_Block) String() string { return proto.CompactTextString(m) } +func (*Message_Block) ProtoMessage() {} +func (*Message_Block) Descriptor() ([]byte, []int) { + return fileDescriptor_33c57e4bae7b9afd, []int{0, 1} +} +func (m *Message_Block) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_Block) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_Block.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_Block) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_Block.Merge(m, src) +} +func (m *Message_Block) XXX_Size() int { + return m.Size() +} +func (m *Message_Block) XXX_DiscardUnknown() { + xxx_messageInfo_Message_Block.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_Block proto.InternalMessageInfo + +func (m *Message_Block) GetPrefix() []byte { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *Message_Block) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func init() { + proto.RegisterType((*Message)(nil), "bitswap.message.pb.Message") + proto.RegisterType((*Message_Wantlist)(nil), "bitswap.message.pb.Message.Wantlist") + proto.RegisterType((*Message_Wantlist_Entry)(nil), "bitswap.message.pb.Message.Wantlist.Entry") + proto.RegisterType((*Message_Block)(nil), "bitswap.message.pb.Message.Block") +} + +func init() { proto.RegisterFile("message.proto", fileDescriptor_33c57e4bae7b9afd) } + +var fileDescriptor_33c57e4bae7b9afd = []byte{ + // 335 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0xcf, 0x4a, 0xf3, 0x40, + 0x14, 0xc5, 0x33, 0x4d, 0xd3, 0x86, 0xdb, 0x7e, 0x9b, 0xe1, 0x43, 0x86, 0x2c, 0x62, 0x14, 0x17, + 0x41, 0x70, 0x0a, 0xed, 0x13, 0x58, 0xd0, 0x85, 0xe0, 0xc2, 0x6c, 0x5c, 0x4f, 0xd2, 0x34, 0x0e, + 0xa6, 0x99, 0x90, 0x4c, 0xa9, 0x7d, 0x0b, 0x5f, 0xc1, 0x07, 0x71, 0xdf, 0x65, 0x97, 0xae, 0x44, + 0xda, 0x17, 0x91, 0xdc, 0x4e, 0xb3, 0x11, 0xc4, 0xdd, 0x3d, 0xc3, 0x39, 0xbf, 0xfb, 0x67, 0xe0, + 0xdf, 0x22, 0xad, 0x6b, 0x91, 0xa5, 0xbc, 0xac, 0x94, 0x56, 0x94, 0xc6, 0x52, 0xd7, 0x2b, 0x51, + 0xf2, 0xf6, 0x39, 0xf6, 0xae, 0x32, 0xa9, 0x9f, 0x96, 0x31, 0x4f, 0xd4, 0x62, 0x94, 0xa9, 0x4c, + 0x8d, 0xd0, 0x1a, 0x2f, 0xe7, 0xa8, 0x50, 0x60, 0x75, 0x40, 0x9c, 0xbf, 0xd9, 0xd0, 0xbf, 0x3f, + 0xa4, 0xe9, 0x2d, 0xb8, 0x2b, 0x51, 0xe8, 0x5c, 0xd6, 0x9a, 0x91, 0x80, 0x84, 0x83, 0xf1, 0x05, + 0xff, 0xd9, 0x81, 0x1b, 0x3b, 0x7f, 0x34, 0xde, 0x69, 0x77, 0xf3, 0x79, 0x6a, 0x45, 0x6d, 0x96, + 0x9e, 0x40, 0x2f, 0xce, 0x55, 0xf2, 0x5c, 0xb3, 0x4e, 0x60, 0x87, 0xc3, 0xc8, 0x28, 0x7a, 0x0d, + 0xfd, 0x52, 0xac, 0x73, 0x25, 0x66, 0xcc, 0x0e, 0xec, 0x70, 0x30, 0x3e, 0xfb, 0x0d, 0x3f, 0x6d, + 0x42, 0x86, 0x7d, 0xcc, 0x79, 0xef, 0x04, 0xdc, 0x63, 0x5f, 0x7a, 0x07, 0xfd, 0xb4, 0xd0, 0x95, + 0x4c, 0x6b, 0x46, 0x90, 0x77, 0xf9, 0x97, 0x71, 0xf9, 0x4d, 0xa1, 0xab, 0xf5, 0x11, 0x6c, 0x00, + 0x94, 0x42, 0x77, 0xbe, 0xcc, 0x73, 0xd6, 0x09, 0x48, 0xe8, 0x46, 0x58, 0x7b, 0x0f, 0xe0, 0xa0, + 0x97, 0xfe, 0x07, 0x07, 0x57, 0xc0, 0xab, 0x0c, 0xa3, 0x83, 0xa0, 0x1e, 0xb8, 0x65, 0x25, 0x55, + 0x25, 0xf5, 0x1a, 0x63, 0x4e, 0xd4, 0xea, 0xe6, 0x04, 0x89, 0x28, 0x92, 0x34, 0x67, 0x36, 0x02, + 0x8d, 0xf2, 0x26, 0xe0, 0xe0, 0x5e, 0x8d, 0xa1, 0xac, 0xd2, 0xb9, 0x7c, 0x31, 0x4c, 0xa3, 0x9a, + 0x39, 0x66, 0x42, 0x0b, 0x04, 0x0e, 0x23, 0xac, 0xa7, 0x6c, 0xb3, 0xf3, 0xc9, 0x76, 0xe7, 0x93, + 0xaf, 0x9d, 0x4f, 0x5e, 0xf7, 0xbe, 0xb5, 0xdd, 0xfb, 0xd6, 0xc7, 0xde, 0xb7, 0xe2, 0x1e, 0x7e, + 0xe2, 0xe4, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x1d, 0x6e, 0x21, 0x18, 0x02, 0x00, 0x00, +} + +func (m *Message) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintMessage(dAtA, i, uint64(m.Wantlist.Size())) + n1, err := m.Wantlist.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + if len(m.Blocks) > 0 { + for _, b := range m.Blocks { + dAtA[i] = 0x12 + i++ + i = encodeVarintMessage(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if len(m.Payload) > 0 { + for _, msg := range m.Payload { + dAtA[i] = 0x1a + i++ + i = encodeVarintMessage(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *Message_Wantlist) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_Wantlist) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Entries) > 0 { + for _, msg := range m.Entries { + dAtA[i] = 0xa + i++ + i = encodeVarintMessage(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.Full { + dAtA[i] = 0x10 + i++ + if m.Full { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + return i, nil +} + +func (m *Message_Wantlist_Entry) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_Wantlist_Entry) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Block) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintMessage(dAtA, i, uint64(len(m.Block))) + i += copy(dAtA[i:], m.Block) + } + if m.Priority != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintMessage(dAtA, i, uint64(m.Priority)) + } + if m.Cancel { + dAtA[i] = 0x18 + i++ + if m.Cancel { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + return i, nil +} + +func (m *Message_Block) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_Block) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Prefix) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintMessage(dAtA, i, uint64(len(m.Prefix))) + i += copy(dAtA[i:], m.Prefix) + } + if len(m.Data) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintMessage(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) + } + return i, nil +} + +func encodeVarintMessage(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Message) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Wantlist.Size() + n += 1 + l + sovMessage(uint64(l)) + if len(m.Blocks) > 0 { + for _, b := range m.Blocks { + l = len(b) + n += 1 + l + sovMessage(uint64(l)) + } + } + if len(m.Payload) > 0 { + for _, e := range m.Payload { + l = e.Size() + n += 1 + l + sovMessage(uint64(l)) + } + } + return n +} + +func (m *Message_Wantlist) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Entries) > 0 { + for _, e := range m.Entries { + l = e.Size() + n += 1 + l + sovMessage(uint64(l)) + } + } + if m.Full { + n += 2 + } + return n +} + +func (m *Message_Wantlist_Entry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Block) + if l > 0 { + n += 1 + l + sovMessage(uint64(l)) + } + if m.Priority != 0 { + n += 1 + sovMessage(uint64(m.Priority)) + } + if m.Cancel { + n += 2 + } + return n +} + +func (m *Message_Block) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Prefix) + if l > 0 { + n += 1 + l + sovMessage(uint64(l)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovMessage(uint64(l)) + } + return n +} + +func sovMessage(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMessage(x uint64) (n int) { + return sovMessage(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Message: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Message: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Wantlist", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Wantlist.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Blocks", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Blocks = append(m.Blocks, make([]byte, postIndex-iNdEx)) + copy(m.Blocks[len(m.Blocks)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Payload = append(m.Payload, Message_Block{}) + if err := m.Payload[len(m.Payload)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMessage(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_Wantlist) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Wantlist: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Wantlist: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Entries = append(m.Entries, Message_Wantlist_Entry{}) + if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Full", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Full = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipMessage(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_Wantlist_Entry) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Entry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Entry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Block = append(m.Block[:0], dAtA[iNdEx:postIndex]...) + if m.Block == nil { + m.Block = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) + } + m.Priority = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Priority |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Cancel", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Cancel = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipMessage(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_Block) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Block: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Block: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Prefix = append(m.Prefix[:0], dAtA[iNdEx:postIndex]...) + if m.Prefix == nil { + m.Prefix = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMessage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMessage + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMessage(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthMessage + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipMessage(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMessage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMessage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMessage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthMessage + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthMessage + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMessage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipMessage(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthMessage + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthMessage = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMessage = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/ipfs/go-bitswap/message/pb/message.proto b/vendor/github.com/ipfs/go-bitswap/message/pb/message.proto new file mode 100644 index 00000000..102b3431 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/message/pb/message.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +package bitswap.message.pb; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +message Message { + + message Wantlist { + + message Entry { + bytes block = 1; // the block cid (cidV0 in bitswap 1.0.0, cidV1 in bitswap 1.1.0) + int32 priority = 2; // the priority (normalized). default to 1 + bool cancel = 3; // whether this revokes an entry + } + + repeated Entry entries = 1 [(gogoproto.nullable) = false]; // a list of wantlist entries + bool full = 2; // whether this is the full wantlist. default to false + } + + message Block { + bytes prefix = 1; // CID prefix (cid version, multicodec and multihash prefix (type + length) + bytes data = 2; + } + + Wantlist wantlist = 1 [(gogoproto.nullable) = false]; + repeated bytes blocks = 2; // used to send Blocks in bitswap 1.0.0 + repeated Block payload = 3 [(gogoproto.nullable) = false]; // used to send Blocks in bitswap 1.1.0 +} diff --git a/vendor/github.com/ipfs/go-bitswap/messagequeue/messagequeue.go b/vendor/github.com/ipfs/go-bitswap/messagequeue/messagequeue.go new file mode 100644 index 00000000..a7142508 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/messagequeue/messagequeue.go @@ -0,0 +1,273 @@ +package messagequeue + +import ( + "context" + "sync" + "time" + + bsmsg "github.com/ipfs/go-bitswap/message" + bsnet "github.com/ipfs/go-bitswap/network" + wantlist "github.com/ipfs/go-bitswap/wantlist" + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("bitswap") + +const ( + defaultRebroadcastInterval = 30 * time.Second + maxRetries = 10 +) + +// MessageNetwork is any network that can connect peers and generate a message +// sender. +type MessageNetwork interface { + ConnectTo(context.Context, peer.ID) error + NewMessageSender(context.Context, peer.ID) (bsnet.MessageSender, error) +} + +// MessageQueue implements queue of want messages to send to peers. +type MessageQueue struct { + ctx context.Context + p peer.ID + network MessageNetwork + + outgoingWork chan struct{} + done chan struct{} + + // do not touch out of run loop + wl *wantlist.SessionTrackedWantlist + nextMessage bsmsg.BitSwapMessage + nextMessageLk sync.RWMutex + sender bsnet.MessageSender + rebroadcastIntervalLk sync.RWMutex + rebroadcastInterval time.Duration + rebroadcastTimer *time.Timer +} + +// New creats a new MessageQueue. +func New(ctx context.Context, p peer.ID, network MessageNetwork) *MessageQueue { + return &MessageQueue{ + ctx: ctx, + wl: wantlist.NewSessionTrackedWantlist(), + network: network, + p: p, + outgoingWork: make(chan struct{}, 1), + done: make(chan struct{}), + rebroadcastInterval: defaultRebroadcastInterval, + } +} + +// AddMessage adds new entries to an outgoing message for a given session. +func (mq *MessageQueue) AddMessage(entries []bsmsg.Entry, ses uint64) { + if !mq.addEntries(entries, ses) { + return + } + select { + case mq.outgoingWork <- struct{}{}: + default: + } +} + +// AddWantlist adds a complete session tracked want list to a message queue +func (mq *MessageQueue) AddWantlist(initialWants *wantlist.SessionTrackedWantlist) { + initialWants.CopyWants(mq.wl) + mq.addWantlist() +} + +// SetRebroadcastInterval sets a new interval on which to rebroadcast the full wantlist +func (mq *MessageQueue) SetRebroadcastInterval(delay time.Duration) { + mq.rebroadcastIntervalLk.Lock() + mq.rebroadcastInterval = delay + if mq.rebroadcastTimer != nil { + mq.rebroadcastTimer.Reset(delay) + } + mq.rebroadcastIntervalLk.Unlock() +} + +// Startup starts the processing of messages, and creates an initial message +// based on the given initial wantlist. +func (mq *MessageQueue) Startup() { + mq.rebroadcastIntervalLk.RLock() + mq.rebroadcastTimer = time.NewTimer(mq.rebroadcastInterval) + mq.rebroadcastIntervalLk.RUnlock() + go mq.runQueue() +} + +// Shutdown stops the processing of messages for a message queue. +func (mq *MessageQueue) Shutdown() { + close(mq.done) +} + +func (mq *MessageQueue) runQueue() { + for { + select { + case <-mq.rebroadcastTimer.C: + mq.rebroadcastWantlist() + case <-mq.outgoingWork: + mq.sendMessage() + case <-mq.done: + if mq.sender != nil { + mq.sender.Close() + } + return + case <-mq.ctx.Done(): + if mq.sender != nil { + mq.sender.Reset() + } + return + } + } +} + +func (mq *MessageQueue) addWantlist() { + + mq.nextMessageLk.Lock() + defer mq.nextMessageLk.Unlock() + + if mq.wl.Len() > 0 { + if mq.nextMessage == nil { + mq.nextMessage = bsmsg.New(false) + } + for _, e := range mq.wl.Entries() { + mq.nextMessage.AddEntry(e.Cid, e.Priority) + } + select { + case mq.outgoingWork <- struct{}{}: + default: + } + } +} + +func (mq *MessageQueue) rebroadcastWantlist() { + mq.rebroadcastIntervalLk.RLock() + mq.rebroadcastTimer.Reset(mq.rebroadcastInterval) + mq.rebroadcastIntervalLk.RUnlock() + + mq.addWantlist() +} + +func (mq *MessageQueue) addEntries(entries []bsmsg.Entry, ses uint64) bool { + var work bool + mq.nextMessageLk.Lock() + defer mq.nextMessageLk.Unlock() + // if we have no message held allocate a new one + if mq.nextMessage == nil { + mq.nextMessage = bsmsg.New(false) + } + + for _, e := range entries { + if e.Cancel { + if mq.wl.Remove(e.Cid, ses) { + work = true + mq.nextMessage.Cancel(e.Cid) + } + } else { + if mq.wl.Add(e.Cid, e.Priority, ses) { + work = true + mq.nextMessage.AddEntry(e.Cid, e.Priority) + } + } + } + return work +} + +func (mq *MessageQueue) extractOutgoingMessage() bsmsg.BitSwapMessage { + // grab outgoing message + mq.nextMessageLk.Lock() + message := mq.nextMessage + mq.nextMessage = nil + mq.nextMessageLk.Unlock() + return message +} + +func (mq *MessageQueue) sendMessage() { + message := mq.extractOutgoingMessage() + if message == nil || message.Empty() { + return + } + + err := mq.initializeSender() + if err != nil { + log.Infof("cant open message sender to peer %s: %s", mq.p, err) + // TODO: cant connect, what now? + return + } + + for i := 0; i < maxRetries; i++ { // try to send this message until we fail. + if mq.attemptSendAndRecovery(message) { + return + } + } +} + +func (mq *MessageQueue) initializeSender() error { + if mq.sender != nil { + return nil + } + nsender, err := openSender(mq.ctx, mq.network, mq.p) + if err != nil { + return err + } + mq.sender = nsender + return nil +} + +func (mq *MessageQueue) attemptSendAndRecovery(message bsmsg.BitSwapMessage) bool { + err := mq.sender.SendMsg(mq.ctx, message) + if err == nil { + return true + } + + log.Infof("bitswap send error: %s", err) + mq.sender.Reset() + mq.sender = nil + + select { + case <-mq.done: + return true + case <-mq.ctx.Done(): + return true + case <-time.After(time.Millisecond * 100): + // wait 100ms in case disconnect notifications are still propogating + log.Warning("SendMsg errored but neither 'done' nor context.Done() were set") + } + + err = mq.initializeSender() + if err != nil { + log.Infof("couldnt open sender again after SendMsg(%s) failed: %s", mq.p, err) + // TODO(why): what do we do now? + // I think the *right* answer is to probably put the message we're + // trying to send back, and then return to waiting for new work or + // a disconnect. + return true + } + + // TODO: Is this the same instance for the remote peer? + // If its not, we should resend our entire wantlist to them + /* + if mq.sender.InstanceID() != mq.lastSeenInstanceID { + wlm = mq.getFullWantlistMessage() + } + */ + return false +} + +func openSender(ctx context.Context, network MessageNetwork, p peer.ID) (bsnet.MessageSender, error) { + // allow ten minutes for connections this includes looking them up in the + // dht dialing them, and handshaking + conctx, cancel := context.WithTimeout(ctx, time.Minute*10) + defer cancel() + + err := network.ConnectTo(conctx, p) + if err != nil { + return nil, err + } + + nsender, err := network.NewMessageSender(ctx, p) + if err != nil { + return nil, err + } + + return nsender, nil +} diff --git a/vendor/github.com/ipfs/go-bitswap/network/interface.go b/vendor/github.com/ipfs/go-bitswap/network/interface.go new file mode 100644 index 00000000..2d2c9b19 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/network/interface.go @@ -0,0 +1,80 @@ +package network + +import ( + "context" + + bsmsg "github.com/ipfs/go-bitswap/message" + + cid "github.com/ipfs/go-cid" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +var ( + // These two are equivalent, legacy + ProtocolBitswapOne protocol.ID = "/ipfs/bitswap/1.0.0" + ProtocolBitswapNoVers protocol.ID = "/ipfs/bitswap" + + ProtocolBitswap protocol.ID = "/ipfs/bitswap/1.1.0" +) + +// BitSwapNetwork provides network connectivity for BitSwap sessions. +type BitSwapNetwork interface { + + // SendMessage sends a BitSwap message to a peer. + SendMessage( + context.Context, + peer.ID, + bsmsg.BitSwapMessage) error + + // SetDelegate registers the Reciver to handle messages received from the + // network. + SetDelegate(Receiver) + + ConnectTo(context.Context, peer.ID) error + + NewMessageSender(context.Context, peer.ID) (MessageSender, error) + + ConnectionManager() ifconnmgr.ConnManager + + Stats() NetworkStats + + Routing +} + +type MessageSender interface { + SendMsg(context.Context, bsmsg.BitSwapMessage) error + Close() error + Reset() error +} + +// Implement Receiver to receive messages from the BitSwapNetwork. +type Receiver interface { + ReceiveMessage( + ctx context.Context, + sender peer.ID, + incoming bsmsg.BitSwapMessage) + + ReceiveError(error) + + // Connected/Disconnected warns bitswap about peer connections. + PeerConnected(peer.ID) + PeerDisconnected(peer.ID) +} + +type Routing interface { + // FindProvidersAsync returns a channel of providers for the given key. + FindProvidersAsync(context.Context, cid.Cid, int) <-chan peer.ID + + // Provide provides the key to the network. + Provide(context.Context, cid.Cid) error +} + +// NetworkStats is a container for statistics about the bitswap network +// the numbers inside are specific to bitswap, and not any other protocols +// using the same underlying network. +type NetworkStats struct { + MessagesSent uint64 + MessagesRecvd uint64 +} diff --git a/vendor/github.com/ipfs/go-bitswap/network/ipfs_impl.go b/vendor/github.com/ipfs/go-bitswap/network/ipfs_impl.go new file mode 100644 index 00000000..8c2f5d68 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/network/ipfs_impl.go @@ -0,0 +1,228 @@ +package network + +import ( + "context" + "fmt" + "io" + "sync/atomic" + "time" + + bsmsg "github.com/ipfs/go-bitswap/message" + + ggio "github.com/gogo/protobuf/io" + cid "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + host "github.com/libp2p/go-libp2p-host" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("bitswap_network") + +var sendMessageTimeout = time.Minute * 10 + +// NewFromIpfsHost returns a BitSwapNetwork supported by underlying IPFS host. +func NewFromIpfsHost(host host.Host, r routing.ContentRouting) BitSwapNetwork { + bitswapNetwork := impl{ + host: host, + routing: r, + } + host.SetStreamHandler(ProtocolBitswap, bitswapNetwork.handleNewStream) + host.SetStreamHandler(ProtocolBitswapOne, bitswapNetwork.handleNewStream) + host.SetStreamHandler(ProtocolBitswapNoVers, bitswapNetwork.handleNewStream) + host.Network().Notify((*netNotifiee)(&bitswapNetwork)) + // TODO: StopNotify. + + return &bitswapNetwork +} + +// impl transforms the ipfs network interface, which sends and receives +// NetMessage objects, into the bitswap network interface. +type impl struct { + host host.Host + routing routing.ContentRouting + + // inbound messages from the network are forwarded to the receiver + receiver Receiver + + stats NetworkStats +} + +type streamMessageSender struct { + s inet.Stream +} + +func (s *streamMessageSender) Close() error { + return inet.FullClose(s.s) +} + +func (s *streamMessageSender) Reset() error { + return s.s.Reset() +} + +func (s *streamMessageSender) SendMsg(ctx context.Context, msg bsmsg.BitSwapMessage) error { + return msgToStream(ctx, s.s, msg) +} + +func msgToStream(ctx context.Context, s inet.Stream, msg bsmsg.BitSwapMessage) error { + deadline := time.Now().Add(sendMessageTimeout) + if dl, ok := ctx.Deadline(); ok { + deadline = dl + } + + if err := s.SetWriteDeadline(deadline); err != nil { + log.Warningf("error setting deadline: %s", err) + } + + switch s.Protocol() { + case ProtocolBitswap: + if err := msg.ToNetV1(s); err != nil { + log.Debugf("error: %s", err) + return err + } + case ProtocolBitswapOne, ProtocolBitswapNoVers: + if err := msg.ToNetV0(s); err != nil { + log.Debugf("error: %s", err) + return err + } + default: + return fmt.Errorf("unrecognized protocol on remote: %s", s.Protocol()) + } + + if err := s.SetWriteDeadline(time.Time{}); err != nil { + log.Warningf("error resetting deadline: %s", err) + } + return nil +} + +func (bsnet *impl) NewMessageSender(ctx context.Context, p peer.ID) (MessageSender, error) { + s, err := bsnet.newStreamToPeer(ctx, p) + if err != nil { + return nil, err + } + + return &streamMessageSender{s: s}, nil +} + +func (bsnet *impl) newStreamToPeer(ctx context.Context, p peer.ID) (inet.Stream, error) { + return bsnet.host.NewStream(ctx, p, ProtocolBitswap, ProtocolBitswapOne, ProtocolBitswapNoVers) +} + +func (bsnet *impl) SendMessage( + ctx context.Context, + p peer.ID, + outgoing bsmsg.BitSwapMessage) error { + + s, err := bsnet.newStreamToPeer(ctx, p) + if err != nil { + return err + } + + if err = msgToStream(ctx, s, outgoing); err != nil { + s.Reset() + return err + } + atomic.AddUint64(&bsnet.stats.MessagesSent, 1) + + // TODO(https://github.com/libp2p/go-libp2p-net/issues/28): Avoid this goroutine. + go inet.AwaitEOF(s) + return s.Close() + +} + +func (bsnet *impl) SetDelegate(r Receiver) { + bsnet.receiver = r +} + +func (bsnet *impl) ConnectTo(ctx context.Context, p peer.ID) error { + return bsnet.host.Connect(ctx, pstore.PeerInfo{ID: p}) +} + +// FindProvidersAsync returns a channel of providers for the given key. +func (bsnet *impl) FindProvidersAsync(ctx context.Context, k cid.Cid, max int) <-chan peer.ID { + out := make(chan peer.ID, max) + go func() { + defer close(out) + providers := bsnet.routing.FindProvidersAsync(ctx, k, max) + for info := range providers { + if info.ID == bsnet.host.ID() { + continue // ignore self as provider + } + bsnet.host.Peerstore().AddAddrs(info.ID, info.Addrs, pstore.TempAddrTTL) + select { + case <-ctx.Done(): + return + case out <- info.ID: + } + } + }() + return out +} + +// Provide provides the key to the network +func (bsnet *impl) Provide(ctx context.Context, k cid.Cid) error { + return bsnet.routing.Provide(ctx, k, true) +} + +// handleNewStream receives a new stream from the network. +func (bsnet *impl) handleNewStream(s inet.Stream) { + defer s.Close() + + if bsnet.receiver == nil { + s.Reset() + return + } + + reader := ggio.NewDelimitedReader(s, inet.MessageSizeMax) + for { + received, err := bsmsg.FromPBReader(reader) + if err != nil { + if err != io.EOF { + s.Reset() + go bsnet.receiver.ReceiveError(err) + log.Debugf("bitswap net handleNewStream from %s error: %s", s.Conn().RemotePeer(), err) + } + return + } + + p := s.Conn().RemotePeer() + ctx := context.Background() + log.Debugf("bitswap net handleNewStream from %s", s.Conn().RemotePeer()) + bsnet.receiver.ReceiveMessage(ctx, p, received) + atomic.AddUint64(&bsnet.stats.MessagesRecvd, 1) + } +} + +func (bsnet *impl) ConnectionManager() ifconnmgr.ConnManager { + return bsnet.host.ConnManager() +} + +func (bsnet *impl) Stats() NetworkStats { + return NetworkStats{ + MessagesRecvd: atomic.LoadUint64(&bsnet.stats.MessagesRecvd), + MessagesSent: atomic.LoadUint64(&bsnet.stats.MessagesSent), + } +} + +type netNotifiee impl + +func (nn *netNotifiee) impl() *impl { + return (*impl)(nn) +} + +func (nn *netNotifiee) Connected(n inet.Network, v inet.Conn) { + nn.impl().receiver.PeerConnected(v.RemotePeer()) +} + +func (nn *netNotifiee) Disconnected(n inet.Network, v inet.Conn) { + nn.impl().receiver.PeerDisconnected(v.RemotePeer()) +} + +func (nn *netNotifiee) OpenedStream(n inet.Network, v inet.Stream) {} +func (nn *netNotifiee) ClosedStream(n inet.Network, v inet.Stream) {} +func (nn *netNotifiee) Listen(n inet.Network, a ma.Multiaddr) {} +func (nn *netNotifiee) ListenClose(n inet.Network, a ma.Multiaddr) {} diff --git a/vendor/github.com/ipfs/go-bitswap/notifications/notifications.go b/vendor/github.com/ipfs/go-bitswap/notifications/notifications.go new file mode 100644 index 00000000..b29640be --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/notifications/notifications.go @@ -0,0 +1,131 @@ +package notifications + +import ( + "context" + "sync" + + pubsub "github.com/cskr/pubsub" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" +) + +const bufferSize = 16 + +type PubSub interface { + Publish(block blocks.Block) + Subscribe(ctx context.Context, keys ...cid.Cid) <-chan blocks.Block + Shutdown() +} + +func New() PubSub { + return &impl{ + wrapped: *pubsub.New(bufferSize), + closed: make(chan struct{}), + } +} + +type impl struct { + lk sync.RWMutex + wrapped pubsub.PubSub + + closed chan struct{} +} + +func (ps *impl) Publish(block blocks.Block) { + ps.lk.RLock() + defer ps.lk.RUnlock() + select { + case <-ps.closed: + return + default: + } + + ps.wrapped.Pub(block, block.Cid().KeyString()) +} + +func (ps *impl) Shutdown() { + ps.lk.Lock() + defer ps.lk.Unlock() + select { + case <-ps.closed: + return + default: + } + close(ps.closed) + ps.wrapped.Shutdown() +} + +// Subscribe returns a channel of blocks for the given |keys|. |blockChannel| +// is closed if the |ctx| times out or is cancelled, or after sending len(keys) +// blocks. +func (ps *impl) Subscribe(ctx context.Context, keys ...cid.Cid) <-chan blocks.Block { + + blocksCh := make(chan blocks.Block, len(keys)) + valuesCh := make(chan interface{}, len(keys)) // provide our own channel to control buffer, prevent blocking + if len(keys) == 0 { + close(blocksCh) + return blocksCh + } + + // prevent shutdown + ps.lk.RLock() + defer ps.lk.RUnlock() + + select { + case <-ps.closed: + close(blocksCh) + return blocksCh + default: + } + + ps.wrapped.AddSubOnceEach(valuesCh, toStrings(keys)...) + go func() { + defer func() { + close(blocksCh) + + ps.lk.RLock() + defer ps.lk.RUnlock() + // Don't touch the pubsub instance if we're + // already closed. + select { + case <-ps.closed: + return + default: + } + + ps.wrapped.Unsub(valuesCh) + }() + + for { + select { + case <-ctx.Done(): + return + case <-ps.closed: + case val, ok := <-valuesCh: + if !ok { + return + } + block, ok := val.(blocks.Block) + if !ok { + return + } + select { + case <-ctx.Done(): + return + case blocksCh <- block: // continue + case <-ps.closed: + } + } + } + }() + + return blocksCh +} + +func toStrings(keys []cid.Cid) []string { + strs := make([]string, 0, len(keys)) + for _, key := range keys { + strs = append(strs, key.KeyString()) + } + return strs +} diff --git a/vendor/github.com/ipfs/go-bitswap/package.json b/vendor/github.com/ipfs/go-bitswap/package.json new file mode 100644 index 00000000..f9882e49 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/package.json @@ -0,0 +1,196 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/ipfs/go-bitswap" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-bitswap" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTRN7hRxvGkxKxDdeudty7sRet4L7ZKZCqKsXHa79wmAc", + "name": "go-libp2p", + "version": "6.0.41" + }, + { + "author": "hsanjuan", + "hash": "QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ", + "name": "go-ipfs-routing", + "version": "0.1.18" + }, + { + "author": "whyrusleeping", + "hash": "QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W", + "name": "go-testutil", + "version": "1.2.19" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + }, + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "ipfs", + "hash": "QmekzFM3hPZjTjUFGTABdQkEnQ3PTiMstY198PwSFr5w1Q", + "name": "go-metrics-interface", + "version": "0.2.0" + }, + { + "author": "cskr", + "hash": "QmPKLamJq9Z2apKJVCVXZ5aYNrWiFk5HTKjmEbU16Qjdcd", + "name": "pubsub", + "version": "1.0.2" + }, + { + "author": "hsanjuan", + "hash": "QmZUbTDJ39JpvtFCSubiWeUTQRvMA1tVE5RZCJrY4oeAsC", + "name": "go-ipfs-pq", + "version": "0.0.1" + }, + { + "author": "hsanjuan", + "hash": "QmcbQ44AgbtV1rnxZz5RsRVduxdgNYLANxnsuW5wvvu4ts", + "name": "go-ipfs-blocksutil", + "version": "0.1.2" + }, + { + "author": "hsanjuan", + "hash": "QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA", + "name": "go-ipfs-blockstore", + "version": "0.1.8" + }, + { + "author": "hector", + "hash": "QmRMGdC6HKdLsPDABL9aXPDidrpmEHzJqFWSvshkbn9Hj8", + "name": "go-ipfs-flags", + "version": "0.0.1" + }, + { + "author": "hsanjuan", + "hash": "QmWokDcQdSZCxrNxgaRzQDDBofALhActzNBaxRLtiRkUHg", + "name": "go-ipfs-exchange-interface", + "version": "0.1.3" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "author": "whyrusleeping", + "hash": "QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd", + "name": "go-libp2p-host", + "version": "3.0.26" + }, + { + "author": "hsanjuan", + "hash": "QmUe1WCHkQaz4UeNKiHDUBV2T6i9prc3DniqyHPXyfGaUq", + "name": "go-ipfs-delay", + "version": "0.1.0" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP", + "name": "goprocess", + "version": "1.0.0" + }, + { + "author": "hashicorp", + "hash": "QmQjMHF8ptRgx4E57UFMiT4YM6kqaJeYxZ1MCDX23aw4rK", + "name": "golang-lru", + "version": "2017.10.18" + }, + { + "author": "whyrusleeping", + "hash": "QmQzyPDx8rLqJ5evnHAo4Mpbsb64RKGZzLABzsbXQM6a2j", + "name": "go-libp2p-netutil", + "version": "0.4.23" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmUbSLukzZYZvEYxynj9Dtd1WrGLxxg9R4U68vCMPWHmRU", + "name": "go-libp2p-loggables", + "version": "1.1.33" + }, + { + "author": "why", + "hash": "QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd", + "name": "go-libp2p-interface-connmgr", + "version": "0.0.32" + }, + { + "author": "jbenet", + "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", + "name": "go-datastore", + "version": "3.6.1" + }, + { + "hash": "QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf", + "name": "go-libp2p-routing", + "version": "2.7.13" + }, + { + "author": "jbenet", + "hash": "Qmf7HqcW7LtCi1W8y2bdx2eJpze74jkbKqpByxgXikdbLF", + "name": "go-detect-race", + "version": "1.0.1" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-bitswap", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.31" +} + diff --git a/vendor/github.com/ipfs/go-bitswap/peermanager/peermanager.go b/vendor/github.com/ipfs/go-bitswap/peermanager/peermanager.go new file mode 100644 index 00000000..59e8ca3d --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/peermanager/peermanager.go @@ -0,0 +1,137 @@ +package peermanager + +import ( + "context" + "sync" + + bsmsg "github.com/ipfs/go-bitswap/message" + wantlist "github.com/ipfs/go-bitswap/wantlist" + logging "github.com/ipfs/go-log" + + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("bitswap") + +var ( + metricsBuckets = []float64{1 << 6, 1 << 10, 1 << 14, 1 << 18, 1<<18 + 15, 1 << 22} +) + +// PeerQueue provides a queer of messages to be sent for a single peer. +type PeerQueue interface { + AddMessage(entries []bsmsg.Entry, ses uint64) + Startup() + AddWantlist(initialWants *wantlist.SessionTrackedWantlist) + Shutdown() +} + +// PeerQueueFactory provides a function that will create a PeerQueue. +type PeerQueueFactory func(ctx context.Context, p peer.ID) PeerQueue + +type peerMessage interface { + handle(pm *PeerManager) +} + +type peerQueueInstance struct { + refcnt int + pq PeerQueue +} + +// PeerManager manages a pool of peers and sends messages to peers in the pool. +type PeerManager struct { + // peerQueues -- interact through internal utility functions get/set/remove/iterate + peerQueues map[peer.ID]*peerQueueInstance + peerQueuesLk sync.RWMutex + + createPeerQueue PeerQueueFactory + ctx context.Context +} + +// New creates a new PeerManager, given a context and a peerQueueFactory. +func New(ctx context.Context, createPeerQueue PeerQueueFactory) *PeerManager { + return &PeerManager{ + peerQueues: make(map[peer.ID]*peerQueueInstance), + createPeerQueue: createPeerQueue, + ctx: ctx, + } +} + +// ConnectedPeers returns a list of peers this PeerManager is managing. +func (pm *PeerManager) ConnectedPeers() []peer.ID { + pm.peerQueuesLk.RLock() + defer pm.peerQueuesLk.RUnlock() + peers := make([]peer.ID, 0, len(pm.peerQueues)) + for p := range pm.peerQueues { + peers = append(peers, p) + } + return peers +} + +// Connected is called to add a new peer to the pool, and send it an initial set +// of wants. +func (pm *PeerManager) Connected(p peer.ID, initialWants *wantlist.SessionTrackedWantlist) { + pm.peerQueuesLk.Lock() + + pq := pm.getOrCreate(p) + + if pq.refcnt == 0 { + pq.pq.AddWantlist(initialWants) + } + + pq.refcnt++ + + pm.peerQueuesLk.Unlock() +} + +// Disconnected is called to remove a peer from the pool. +func (pm *PeerManager) Disconnected(p peer.ID) { + pm.peerQueuesLk.Lock() + pq, ok := pm.peerQueues[p] + + if !ok { + pm.peerQueuesLk.Unlock() + return + } + + pq.refcnt-- + if pq.refcnt > 0 { + pm.peerQueuesLk.Unlock() + return + } + + delete(pm.peerQueues, p) + pm.peerQueuesLk.Unlock() + + pq.pq.Shutdown() + +} + +// SendMessage is called to send a message to all or some peers in the pool; +// if targets is nil, it sends to all. +func (pm *PeerManager) SendMessage(entries []bsmsg.Entry, targets []peer.ID, from uint64) { + if len(targets) == 0 { + pm.peerQueuesLk.RLock() + for _, p := range pm.peerQueues { + p.pq.AddMessage(entries, from) + } + pm.peerQueuesLk.RUnlock() + } else { + for _, t := range targets { + pm.peerQueuesLk.Lock() + pqi := pm.getOrCreate(t) + pm.peerQueuesLk.Unlock() + pqi.pq.AddMessage(entries, from) + } + } +} + +func (pm *PeerManager) getOrCreate(p peer.ID) *peerQueueInstance { + pqi, ok := pm.peerQueues[p] + if !ok { + pq := pm.createPeerQueue(pm.ctx, p) + pq.Startup() + pqi = &peerQueueInstance{0, pq} + pm.peerQueues[p] = pqi + } + return pqi +} diff --git a/vendor/github.com/ipfs/go-bitswap/providerquerymanager/providerquerymanager.go b/vendor/github.com/ipfs/go-bitswap/providerquerymanager/providerquerymanager.go new file mode 100644 index 00000000..a84e1f91 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/providerquerymanager/providerquerymanager.go @@ -0,0 +1,423 @@ +package providerquerymanager + +import ( + "context" + "fmt" + "sync" + "time" + + "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("bitswap") + +const ( + maxProviders = 10 + maxInProcessRequests = 6 + defaultTimeout = 10 * time.Second +) + +type inProgressRequestStatus struct { + ctx context.Context + cancelFn func() + providersSoFar []peer.ID + listeners map[chan peer.ID]struct{} +} + +type findProviderRequest struct { + k cid.Cid + ctx context.Context +} + +// ProviderQueryNetwork is an interface for finding providers and connecting to +// peers. +type ProviderQueryNetwork interface { + ConnectTo(context.Context, peer.ID) error + FindProvidersAsync(context.Context, cid.Cid, int) <-chan peer.ID +} + +type providerQueryMessage interface { + debugMessage() string + handle(pqm *ProviderQueryManager) +} + +type receivedProviderMessage struct { + k cid.Cid + p peer.ID +} + +type finishedProviderQueryMessage struct { + k cid.Cid +} + +type newProvideQueryMessage struct { + k cid.Cid + inProgressRequestChan chan<- inProgressRequest +} + +type cancelRequestMessage struct { + incomingProviders chan peer.ID + k cid.Cid +} + +// ProviderQueryManager manages requests to find more providers for blocks +// for bitswap sessions. It's main goals are to: +// - rate limit requests -- don't have too many find provider calls running +// simultaneously +// - connect to found peers and filter them if it can't connect +// - ensure two findprovider calls for the same block don't run concurrently +// - manage timeouts +type ProviderQueryManager struct { + ctx context.Context + network ProviderQueryNetwork + providerQueryMessages chan providerQueryMessage + providerRequestsProcessing chan *findProviderRequest + incomingFindProviderRequests chan *findProviderRequest + + findProviderTimeout time.Duration + timeoutMutex sync.RWMutex + + // do not touch outside the run loop + inProgressRequestStatuses map[cid.Cid]*inProgressRequestStatus +} + +// New initializes a new ProviderQueryManager for a given context and a given +// network provider. +func New(ctx context.Context, network ProviderQueryNetwork) *ProviderQueryManager { + return &ProviderQueryManager{ + ctx: ctx, + network: network, + providerQueryMessages: make(chan providerQueryMessage, 16), + providerRequestsProcessing: make(chan *findProviderRequest), + incomingFindProviderRequests: make(chan *findProviderRequest), + inProgressRequestStatuses: make(map[cid.Cid]*inProgressRequestStatus), + findProviderTimeout: defaultTimeout, + } +} + +// Startup starts processing for the ProviderQueryManager. +func (pqm *ProviderQueryManager) Startup() { + go pqm.run() +} + +type inProgressRequest struct { + providersSoFar []peer.ID + incoming chan peer.ID +} + +// SetFindProviderTimeout changes the timeout for finding providers +func (pqm *ProviderQueryManager) SetFindProviderTimeout(findProviderTimeout time.Duration) { + pqm.timeoutMutex.Lock() + pqm.findProviderTimeout = findProviderTimeout + pqm.timeoutMutex.Unlock() +} + +// FindProvidersAsync finds providers for the given block. +func (pqm *ProviderQueryManager) FindProvidersAsync(sessionCtx context.Context, k cid.Cid) <-chan peer.ID { + inProgressRequestChan := make(chan inProgressRequest) + + select { + case pqm.providerQueryMessages <- &newProvideQueryMessage{ + k: k, + inProgressRequestChan: inProgressRequestChan, + }: + case <-pqm.ctx.Done(): + ch := make(chan peer.ID) + close(ch) + return ch + case <-sessionCtx.Done(): + ch := make(chan peer.ID) + close(ch) + return ch + } + + // DO NOT select on sessionCtx. We only want to abort here if we're + // shutting down because we can't actually _cancel_ the request till we + // get to receiveProviders. + var receivedInProgressRequest inProgressRequest + select { + case <-pqm.ctx.Done(): + ch := make(chan peer.ID) + close(ch) + return ch + case receivedInProgressRequest = <-inProgressRequestChan: + } + + return pqm.receiveProviders(sessionCtx, k, receivedInProgressRequest) +} + +func (pqm *ProviderQueryManager) receiveProviders(sessionCtx context.Context, k cid.Cid, receivedInProgressRequest inProgressRequest) <-chan peer.ID { + // maintains an unbuffered queue for incoming providers for given request for a given session + // essentially, as a provider comes in, for a given CID, we want to immediately broadcast to all + // sessions that queried that CID, without worrying about whether the client code is actually + // reading from the returned channel -- so that the broadcast never blocks + // based on: https://medium.com/capital-one-tech/building-an-unbounded-channel-in-go-789e175cd2cd + returnedProviders := make(chan peer.ID) + receivedProviders := append([]peer.ID(nil), receivedInProgressRequest.providersSoFar[0:]...) + incomingProviders := receivedInProgressRequest.incoming + + go func() { + defer close(returnedProviders) + outgoingProviders := func() chan<- peer.ID { + if len(receivedProviders) == 0 { + return nil + } + return returnedProviders + } + nextProvider := func() peer.ID { + if len(receivedProviders) == 0 { + return "" + } + return receivedProviders[0] + } + for len(receivedProviders) > 0 || incomingProviders != nil { + select { + case <-pqm.ctx.Done(): + return + case <-sessionCtx.Done(): + if incomingProviders != nil { + pqm.cancelProviderRequest(k, incomingProviders) + } + return + case provider, ok := <-incomingProviders: + if !ok { + incomingProviders = nil + } else { + receivedProviders = append(receivedProviders, provider) + } + case outgoingProviders() <- nextProvider(): + receivedProviders = receivedProviders[1:] + } + } + }() + return returnedProviders +} + +func (pqm *ProviderQueryManager) cancelProviderRequest(k cid.Cid, incomingProviders chan peer.ID) { + cancelMessageChannel := pqm.providerQueryMessages + for { + select { + case cancelMessageChannel <- &cancelRequestMessage{ + incomingProviders: incomingProviders, + k: k, + }: + cancelMessageChannel = nil + // clear out any remaining providers, in case and "incoming provider" + // messages get processed before our cancel message + case _, ok := <-incomingProviders: + if !ok { + return + } + case <-pqm.ctx.Done(): + return + } + } +} + +func (pqm *ProviderQueryManager) findProviderWorker() { + // findProviderWorker just cycles through incoming provider queries one + // at a time. We have six of these workers running at once + // to let requests go in parallel but keep them rate limited + for { + select { + case fpr, ok := <-pqm.providerRequestsProcessing: + if !ok { + return + } + k := fpr.k + log.Debugf("Beginning Find Provider Request for cid: %s", k.String()) + pqm.timeoutMutex.RLock() + findProviderCtx, cancel := context.WithTimeout(fpr.ctx, pqm.findProviderTimeout) + pqm.timeoutMutex.RUnlock() + providers := pqm.network.FindProvidersAsync(findProviderCtx, k, maxProviders) + wg := &sync.WaitGroup{} + for p := range providers { + wg.Add(1) + go func(p peer.ID) { + defer wg.Done() + err := pqm.network.ConnectTo(findProviderCtx, p) + if err != nil { + log.Debugf("failed to connect to provider %s: %s", p, err) + return + } + select { + case pqm.providerQueryMessages <- &receivedProviderMessage{ + k: k, + p: p, + }: + case <-pqm.ctx.Done(): + return + } + }(p) + } + cancel() + wg.Wait() + select { + case pqm.providerQueryMessages <- &finishedProviderQueryMessage{ + k: k, + }: + case <-pqm.ctx.Done(): + } + case <-pqm.ctx.Done(): + return + } + } +} + +func (pqm *ProviderQueryManager) providerRequestBufferWorker() { + // the provider request buffer worker just maintains an unbounded + // buffer for incoming provider queries and dispatches to the find + // provider workers as they become available + // based on: https://medium.com/capital-one-tech/building-an-unbounded-channel-in-go-789e175cd2cd + var providerQueryRequestBuffer []*findProviderRequest + nextProviderQuery := func() *findProviderRequest { + if len(providerQueryRequestBuffer) == 0 { + return nil + } + return providerQueryRequestBuffer[0] + } + outgoingRequests := func() chan<- *findProviderRequest { + if len(providerQueryRequestBuffer) == 0 { + return nil + } + return pqm.providerRequestsProcessing + } + + for { + select { + case incomingRequest, ok := <-pqm.incomingFindProviderRequests: + if !ok { + return + } + providerQueryRequestBuffer = append(providerQueryRequestBuffer, incomingRequest) + case outgoingRequests() <- nextProviderQuery(): + providerQueryRequestBuffer = providerQueryRequestBuffer[1:] + case <-pqm.ctx.Done(): + return + } + } +} + +func (pqm *ProviderQueryManager) cleanupInProcessRequests() { + for _, requestStatus := range pqm.inProgressRequestStatuses { + for listener := range requestStatus.listeners { + close(listener) + } + requestStatus.cancelFn() + } +} + +func (pqm *ProviderQueryManager) run() { + defer pqm.cleanupInProcessRequests() + + go pqm.providerRequestBufferWorker() + for i := 0; i < maxInProcessRequests; i++ { + go pqm.findProviderWorker() + } + + for { + select { + case nextMessage := <-pqm.providerQueryMessages: + log.Debug(nextMessage.debugMessage()) + nextMessage.handle(pqm) + case <-pqm.ctx.Done(): + return + } + } +} + +func (rpm *receivedProviderMessage) debugMessage() string { + return fmt.Sprintf("Received provider (%s) for cid (%s)", rpm.p.String(), rpm.k.String()) +} + +func (rpm *receivedProviderMessage) handle(pqm *ProviderQueryManager) { + requestStatus, ok := pqm.inProgressRequestStatuses[rpm.k] + if !ok { + log.Errorf("Received provider (%s) for cid (%s) not requested", rpm.p.String(), rpm.k.String()) + return + } + requestStatus.providersSoFar = append(requestStatus.providersSoFar, rpm.p) + for listener := range requestStatus.listeners { + select { + case listener <- rpm.p: + case <-pqm.ctx.Done(): + return + } + } +} + +func (fpqm *finishedProviderQueryMessage) debugMessage() string { + return fmt.Sprintf("Finished Provider Query on cid: %s", fpqm.k.String()) +} + +func (fpqm *finishedProviderQueryMessage) handle(pqm *ProviderQueryManager) { + requestStatus, ok := pqm.inProgressRequestStatuses[fpqm.k] + if !ok { + // we canceled the request as it finished. + return + } + for listener := range requestStatus.listeners { + close(listener) + } + delete(pqm.inProgressRequestStatuses, fpqm.k) + requestStatus.cancelFn() +} + +func (npqm *newProvideQueryMessage) debugMessage() string { + return fmt.Sprintf("New Provider Query on cid: %s", npqm.k.String()) +} + +func (npqm *newProvideQueryMessage) handle(pqm *ProviderQueryManager) { + requestStatus, ok := pqm.inProgressRequestStatuses[npqm.k] + if !ok { + ctx, cancelFn := context.WithCancel(pqm.ctx) + requestStatus = &inProgressRequestStatus{ + listeners: make(map[chan peer.ID]struct{}), + ctx: ctx, + cancelFn: cancelFn, + } + pqm.inProgressRequestStatuses[npqm.k] = requestStatus + select { + case pqm.incomingFindProviderRequests <- &findProviderRequest{ + k: npqm.k, + ctx: ctx, + }: + case <-pqm.ctx.Done(): + return + } + } + inProgressChan := make(chan peer.ID) + requestStatus.listeners[inProgressChan] = struct{}{} + select { + case npqm.inProgressRequestChan <- inProgressRequest{ + providersSoFar: requestStatus.providersSoFar, + incoming: inProgressChan, + }: + case <-pqm.ctx.Done(): + } +} + +func (crm *cancelRequestMessage) debugMessage() string { + return fmt.Sprintf("Cancel provider query on cid: %s", crm.k.String()) +} + +func (crm *cancelRequestMessage) handle(pqm *ProviderQueryManager) { + requestStatus, ok := pqm.inProgressRequestStatuses[crm.k] + if !ok { + // Request finished while queued. + return + } + _, ok = requestStatus.listeners[crm.incomingProviders] + if !ok { + // Request finished and _restarted_ while queued. + return + } + delete(requestStatus.listeners, crm.incomingProviders) + close(crm.incomingProviders) + if len(requestStatus.listeners) == 0 { + delete(pqm.inProgressRequestStatuses, crm.k) + requestStatus.cancelFn() + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/session/cidqueue.go b/vendor/github.com/ipfs/go-bitswap/session/cidqueue.go new file mode 100644 index 00000000..cf461a6c --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/session/cidqueue.go @@ -0,0 +1,46 @@ +package session + +import cid "github.com/ipfs/go-cid" + +type cidQueue struct { + elems []cid.Cid + eset *cid.Set +} + +func newCidQueue() *cidQueue { + return &cidQueue{eset: cid.NewSet()} +} + +func (cq *cidQueue) Pop() cid.Cid { + for { + if len(cq.elems) == 0 { + return cid.Cid{} + } + + out := cq.elems[0] + cq.elems = cq.elems[1:] + + if cq.eset.Has(out) { + cq.eset.Remove(out) + return out + } + } +} + +func (cq *cidQueue) Push(c cid.Cid) { + if cq.eset.Visit(c) { + cq.elems = append(cq.elems, c) + } +} + +func (cq *cidQueue) Remove(c cid.Cid) { + cq.eset.Remove(c) +} + +func (cq *cidQueue) Has(c cid.Cid) bool { + return cq.eset.Has(c) +} + +func (cq *cidQueue) Len() int { + return cq.eset.Len() +} diff --git a/vendor/github.com/ipfs/go-bitswap/session/session.go b/vendor/github.com/ipfs/go-bitswap/session/session.go new file mode 100644 index 00000000..b57f472e --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/session/session.go @@ -0,0 +1,418 @@ +package session + +import ( + "context" + "time" + + lru "github.com/hashicorp/golang-lru" + bsgetter "github.com/ipfs/go-bitswap/getter" + notifications "github.com/ipfs/go-bitswap/notifications" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + loggables "github.com/libp2p/go-libp2p-loggables" + peer "github.com/libp2p/go-libp2p-peer" + + bssrs "github.com/ipfs/go-bitswap/sessionrequestsplitter" +) + +const ( + broadcastLiveWantsLimit = 4 + targetedLiveWantsLimit = 32 +) + +// WantManager is an interface that can be used to request blocks +// from given peers. +type WantManager interface { + WantBlocks(ctx context.Context, ks []cid.Cid, peers []peer.ID, ses uint64) + CancelWants(ctx context.Context, ks []cid.Cid, peers []peer.ID, ses uint64) +} + +// PeerManager provides an interface for tracking and optimize peers, and +// requesting more when neccesary. +type PeerManager interface { + FindMorePeers(context.Context, cid.Cid) + GetOptimizedPeers() []peer.ID + RecordPeerRequests([]peer.ID, []cid.Cid) + RecordPeerResponse(peer.ID, cid.Cid) +} + +// RequestSplitter provides an interface for splitting +// a request for Cids up among peers. +type RequestSplitter interface { + SplitRequest([]peer.ID, []cid.Cid) []*bssrs.PartialRequest + RecordDuplicateBlock() + RecordUniqueBlock() +} + +type interestReq struct { + c cid.Cid + resp chan bool +} + +type blkRecv struct { + from peer.ID + blk blocks.Block + counterMessage bool +} + +// Session holds state for an individual bitswap transfer operation. +// This allows bitswap to make smarter decisions about who to send wantlist +// info to, and who to request blocks from. +type Session struct { + // dependencies + ctx context.Context + wm WantManager + pm PeerManager + srs RequestSplitter + + // channels + incoming chan blkRecv + newReqs chan []cid.Cid + cancelKeys chan []cid.Cid + interestReqs chan interestReq + latencyReqs chan chan time.Duration + tickDelayReqs chan time.Duration + + // do not touch outside run loop + tofetch *cidQueue + interest *lru.Cache + pastWants *cidQueue + liveWants map[cid.Cid]time.Time + tick *time.Timer + baseTickDelay time.Duration + latTotal time.Duration + fetchcnt int + // identifiers + notif notifications.PubSub + uuid logging.Loggable + id uint64 +} + +// New creates a new bitswap session whose lifetime is bounded by the +// given context. +func New(ctx context.Context, id uint64, wm WantManager, pm PeerManager, srs RequestSplitter) *Session { + s := &Session{ + liveWants: make(map[cid.Cid]time.Time), + newReqs: make(chan []cid.Cid), + cancelKeys: make(chan []cid.Cid), + tofetch: newCidQueue(), + pastWants: newCidQueue(), + interestReqs: make(chan interestReq), + latencyReqs: make(chan chan time.Duration), + tickDelayReqs: make(chan time.Duration), + ctx: ctx, + wm: wm, + pm: pm, + srs: srs, + incoming: make(chan blkRecv), + notif: notifications.New(), + uuid: loggables.Uuid("GetBlockRequest"), + baseTickDelay: time.Millisecond * 500, + id: id, + } + + cache, _ := lru.New(2048) + s.interest = cache + + go s.run(ctx) + + return s +} + +// ReceiveBlockFrom receives an incoming block from the given peer. +func (s *Session) ReceiveBlockFrom(from peer.ID, blk blocks.Block) { + select { + case s.incoming <- blkRecv{from: from, blk: blk, counterMessage: false}: + case <-s.ctx.Done(): + } + ks := []cid.Cid{blk.Cid()} + s.wm.CancelWants(s.ctx, ks, nil, s.id) + +} + +// UpdateReceiveCounters updates receive counters for a block, +// which may be a duplicate and adjusts the split factor based on that. +func (s *Session) UpdateReceiveCounters(blk blocks.Block) { + select { + case s.incoming <- blkRecv{from: "", blk: blk, counterMessage: true}: + case <-s.ctx.Done(): + } +} + +// InterestedIn returns true if this session is interested in the given Cid. +func (s *Session) InterestedIn(c cid.Cid) bool { + if s.interest.Contains(c) { + return true + } + // TODO: PERF: this is using a channel to guard a map access against race + // conditions. This is definitely much slower than a mutex, though its unclear + // if it will actually induce any noticeable slowness. This is implemented this + // way to avoid adding a more complex set of mutexes around the liveWants map. + // note that in the average case (where this session *is* interested in the + // block we received) this function will not be called, as the cid will likely + // still be in the interest cache. + resp := make(chan bool, 1) + select { + case s.interestReqs <- interestReq{ + c: c, + resp: resp, + }: + case <-s.ctx.Done(): + return false + } + + select { + case want := <-resp: + return want + case <-s.ctx.Done(): + return false + } +} + +// GetBlock fetches a single block. +func (s *Session) GetBlock(parent context.Context, k cid.Cid) (blocks.Block, error) { + return bsgetter.SyncGetBlock(parent, k, s.GetBlocks) +} + +// GetBlocks fetches a set of blocks within the context of this session and +// returns a channel that found blocks will be returned on. No order is +// guaranteed on the returned blocks. +func (s *Session) GetBlocks(ctx context.Context, keys []cid.Cid) (<-chan blocks.Block, error) { + ctx = logging.ContextWithLoggable(ctx, s.uuid) + return bsgetter.AsyncGetBlocks(ctx, keys, s.notif, + func(ctx context.Context, keys []cid.Cid) { + select { + case s.newReqs <- keys: + case <-ctx.Done(): + case <-s.ctx.Done(): + } + }, + func(keys []cid.Cid) { + select { + case s.cancelKeys <- keys: + case <-s.ctx.Done(): + } + }, + ) +} + +// GetAverageLatency returns the average latency for block requests. +func (s *Session) GetAverageLatency() time.Duration { + resp := make(chan time.Duration) + select { + case s.latencyReqs <- resp: + case <-s.ctx.Done(): + return -1 * time.Millisecond + } + + select { + case latency := <-resp: + return latency + case <-s.ctx.Done(): + return -1 * time.Millisecond + } +} + +// SetBaseTickDelay changes the rate at which ticks happen. +func (s *Session) SetBaseTickDelay(baseTickDelay time.Duration) { + select { + case s.tickDelayReqs <- baseTickDelay: + case <-s.ctx.Done(): + } +} + +var provSearchDelay = time.Second + +// SetProviderSearchDelay overwrites the global provider search delay +func SetProviderSearchDelay(newProvSearchDelay time.Duration) { + provSearchDelay = newProvSearchDelay +} + +// Session run loop -- everything function below here should not be called +// of this loop +func (s *Session) run(ctx context.Context) { + s.tick = time.NewTimer(provSearchDelay) + for { + select { + case blk := <-s.incoming: + if blk.counterMessage { + s.updateReceiveCounters(ctx, blk) + } else { + s.handleIncomingBlock(ctx, blk) + } + case keys := <-s.newReqs: + s.handleNewRequest(ctx, keys) + case keys := <-s.cancelKeys: + s.handleCancel(keys) + case <-s.tick.C: + s.handleTick(ctx) + case lwchk := <-s.interestReqs: + lwchk.resp <- s.cidIsWanted(lwchk.c) + case resp := <-s.latencyReqs: + resp <- s.averageLatency() + case baseTickDelay := <-s.tickDelayReqs: + s.baseTickDelay = baseTickDelay + case <-ctx.Done(): + s.handleShutdown() + return + } + } +} + +func (s *Session) handleIncomingBlock(ctx context.Context, blk blkRecv) { + s.tick.Stop() + + if blk.from != "" { + s.pm.RecordPeerResponse(blk.from, blk.blk.Cid()) + } + + s.receiveBlock(ctx, blk.blk) + + s.resetTick() +} + +func (s *Session) handleNewRequest(ctx context.Context, keys []cid.Cid) { + for _, k := range keys { + s.interest.Add(k, nil) + } + if toadd := s.wantBudget(); toadd > 0 { + if toadd > len(keys) { + toadd = len(keys) + } + + now := keys[:toadd] + keys = keys[toadd:] + + s.wantBlocks(ctx, now) + } + for _, k := range keys { + s.tofetch.Push(k) + } +} + +func (s *Session) handleCancel(keys []cid.Cid) { + for _, c := range keys { + s.tofetch.Remove(c) + } +} + +func (s *Session) handleTick(ctx context.Context) { + + live := make([]cid.Cid, 0, len(s.liveWants)) + now := time.Now() + for c := range s.liveWants { + live = append(live, c) + s.liveWants[c] = now + } + + // Broadcast these keys to everyone we're connected to + s.pm.RecordPeerRequests(nil, live) + s.wm.WantBlocks(ctx, live, nil, s.id) + + if len(live) > 0 { + s.pm.FindMorePeers(ctx, live[0]) + } + s.resetTick() +} + +func (s *Session) handleShutdown() { + s.tick.Stop() + s.notif.Shutdown() + + live := make([]cid.Cid, 0, len(s.liveWants)) + for c := range s.liveWants { + live = append(live, c) + } + s.wm.CancelWants(s.ctx, live, nil, s.id) +} + +func (s *Session) cidIsWanted(c cid.Cid) bool { + _, ok := s.liveWants[c] + if !ok { + ok = s.tofetch.Has(c) + } + return ok +} + +func (s *Session) receiveBlock(ctx context.Context, blk blocks.Block) { + c := blk.Cid() + if s.cidIsWanted(c) { + s.srs.RecordUniqueBlock() + tval, ok := s.liveWants[c] + if ok { + s.latTotal += time.Since(tval) + delete(s.liveWants, c) + } else { + s.tofetch.Remove(c) + } + s.fetchcnt++ + s.notif.Publish(blk) + + toAdd := s.wantBudget() + if toAdd > s.tofetch.Len() { + toAdd = s.tofetch.Len() + } + if toAdd > 0 { + var keys []cid.Cid + for i := 0; i < toAdd; i++ { + keys = append(keys, s.tofetch.Pop()) + } + s.wantBlocks(ctx, keys) + } + + s.pastWants.Push(c) + } +} + +func (s *Session) updateReceiveCounters(ctx context.Context, blk blkRecv) { + ks := blk.blk.Cid() + if s.pastWants.Has(ks) { + s.srs.RecordDuplicateBlock() + } +} + +func (s *Session) wantBlocks(ctx context.Context, ks []cid.Cid) { + now := time.Now() + for _, c := range ks { + s.liveWants[c] = now + } + peers := s.pm.GetOptimizedPeers() + if len(peers) > 0 { + splitRequests := s.srs.SplitRequest(peers, ks) + for _, splitRequest := range splitRequests { + s.pm.RecordPeerRequests(splitRequest.Peers, splitRequest.Keys) + s.wm.WantBlocks(ctx, splitRequest.Keys, splitRequest.Peers, s.id) + } + } else { + s.pm.RecordPeerRequests(nil, ks) + s.wm.WantBlocks(ctx, ks, nil, s.id) + } +} + +func (s *Session) averageLatency() time.Duration { + return s.latTotal / time.Duration(s.fetchcnt) +} + +func (s *Session) resetTick() { + if s.latTotal == 0 { + s.tick.Reset(provSearchDelay) + } else { + avLat := s.averageLatency() + s.tick.Reset(s.baseTickDelay + (3 * avLat)) + } +} + +func (s *Session) wantBudget() int { + live := len(s.liveWants) + var budget int + if len(s.pm.GetOptimizedPeers()) > 0 { + budget = targetedLiveWantsLimit - live + } else { + budget = broadcastLiveWantsLimit - live + } + if budget < 0 { + budget = 0 + } + return budget +} diff --git a/vendor/github.com/ipfs/go-bitswap/sessionmanager/sessionmanager.go b/vendor/github.com/ipfs/go-bitswap/sessionmanager/sessionmanager.go new file mode 100644 index 00000000..ac1bb700 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/sessionmanager/sessionmanager.go @@ -0,0 +1,134 @@ +package sessionmanager + +import ( + "context" + "sync" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + + bssession "github.com/ipfs/go-bitswap/session" + exchange "github.com/ipfs/go-ipfs-exchange-interface" + peer "github.com/libp2p/go-libp2p-peer" +) + +// Session is a session that is managed by the session manager +type Session interface { + exchange.Fetcher + InterestedIn(cid.Cid) bool + ReceiveBlockFrom(peer.ID, blocks.Block) + UpdateReceiveCounters(blocks.Block) +} + +type sesTrk struct { + session Session + pm bssession.PeerManager + srs bssession.RequestSplitter +} + +// SessionFactory generates a new session for the SessionManager to track. +type SessionFactory func(ctx context.Context, id uint64, pm bssession.PeerManager, srs bssession.RequestSplitter) Session + +// RequestSplitterFactory generates a new request splitter for a session. +type RequestSplitterFactory func(ctx context.Context) bssession.RequestSplitter + +// PeerManagerFactory generates a new peer manager for a session. +type PeerManagerFactory func(ctx context.Context, id uint64) bssession.PeerManager + +// SessionManager is responsible for creating, managing, and dispatching to +// sessions. +type SessionManager struct { + ctx context.Context + sessionFactory SessionFactory + peerManagerFactory PeerManagerFactory + requestSplitterFactory RequestSplitterFactory + + // Sessions + sessLk sync.Mutex + sessions []sesTrk + + // Session Index + sessIDLk sync.Mutex + sessID uint64 +} + +// New creates a new SessionManager. +func New(ctx context.Context, sessionFactory SessionFactory, peerManagerFactory PeerManagerFactory, requestSplitterFactory RequestSplitterFactory) *SessionManager { + return &SessionManager{ + ctx: ctx, + sessionFactory: sessionFactory, + peerManagerFactory: peerManagerFactory, + requestSplitterFactory: requestSplitterFactory, + } +} + +// NewSession initializes a session with the given context, and adds to the +// session manager. +func (sm *SessionManager) NewSession(ctx context.Context) exchange.Fetcher { + id := sm.GetNextSessionID() + sessionctx, cancel := context.WithCancel(ctx) + + pm := sm.peerManagerFactory(sessionctx, id) + srs := sm.requestSplitterFactory(sessionctx) + session := sm.sessionFactory(sessionctx, id, pm, srs) + tracked := sesTrk{session, pm, srs} + sm.sessLk.Lock() + sm.sessions = append(sm.sessions, tracked) + sm.sessLk.Unlock() + go func() { + defer cancel() + select { + case <-sm.ctx.Done(): + sm.removeSession(tracked) + case <-ctx.Done(): + sm.removeSession(tracked) + } + }() + + return session +} + +func (sm *SessionManager) removeSession(session sesTrk) { + sm.sessLk.Lock() + defer sm.sessLk.Unlock() + for i := 0; i < len(sm.sessions); i++ { + if sm.sessions[i] == session { + sm.sessions[i] = sm.sessions[len(sm.sessions)-1] + sm.sessions = sm.sessions[:len(sm.sessions)-1] + return + } + } +} + +// GetNextSessionID returns the next sequentional identifier for a session. +func (sm *SessionManager) GetNextSessionID() uint64 { + sm.sessIDLk.Lock() + defer sm.sessIDLk.Unlock() + sm.sessID++ + return sm.sessID +} + +// ReceiveBlockFrom receives a block from a peer and dispatches to interested +// sessions. +func (sm *SessionManager) ReceiveBlockFrom(from peer.ID, blk blocks.Block) { + sm.sessLk.Lock() + defer sm.sessLk.Unlock() + + k := blk.Cid() + for _, s := range sm.sessions { + if s.session.InterestedIn(k) { + s.session.ReceiveBlockFrom(from, blk) + } + } +} + +// UpdateReceiveCounters records the fact that a block was received, allowing +// sessions to track duplicates +func (sm *SessionManager) UpdateReceiveCounters(blk blocks.Block) { + sm.sessLk.Lock() + defer sm.sessLk.Unlock() + + for _, s := range sm.sessions { + s.session.UpdateReceiveCounters(blk) + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/sessionpeermanager/sessionpeermanager.go b/vendor/github.com/ipfs/go-bitswap/sessionpeermanager/sessionpeermanager.go new file mode 100644 index 00000000..0b02a2a2 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/sessionpeermanager/sessionpeermanager.go @@ -0,0 +1,224 @@ +package sessionpeermanager + +import ( + "context" + "fmt" + "math/rand" + + logging "github.com/ipfs/go-log" + + cid "github.com/ipfs/go-cid" + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("bitswap") + +const ( + maxOptimizedPeers = 32 + reservePeers = 2 +) + +// PeerTagger is an interface for tagging peers with metadata +type PeerTagger interface { + TagPeer(peer.ID, string, int) + UntagPeer(p peer.ID, tag string) +} + +// PeerProviderFinder is an interface for finding providers +type PeerProviderFinder interface { + FindProvidersAsync(context.Context, cid.Cid) <-chan peer.ID +} + +type peerMessage interface { + handle(spm *SessionPeerManager) +} + +// SessionPeerManager tracks and manages peers for a session, and provides +// the best ones to the session +type SessionPeerManager struct { + ctx context.Context + tagger PeerTagger + providerFinder PeerProviderFinder + tag string + id uint64 + + peerMessages chan peerMessage + + // do not touch outside of run loop + activePeers map[peer.ID]bool + unoptimizedPeersArr []peer.ID + optimizedPeersArr []peer.ID +} + +// New creates a new SessionPeerManager +func New(ctx context.Context, id uint64, tagger PeerTagger, providerFinder PeerProviderFinder) *SessionPeerManager { + spm := &SessionPeerManager{ + id: id, + ctx: ctx, + tagger: tagger, + providerFinder: providerFinder, + peerMessages: make(chan peerMessage, 16), + activePeers: make(map[peer.ID]bool), + } + + spm.tag = fmt.Sprint("bs-ses-", id) + + go spm.run(ctx) + return spm +} + +// RecordPeerResponse records that a peer received a block, and adds to it +// the list of peers if it wasn't already added +func (spm *SessionPeerManager) RecordPeerResponse(p peer.ID, k cid.Cid) { + + // at the moment, we're just adding peers here + // in the future, we'll actually use this to record metrics + select { + case spm.peerMessages <- &peerResponseMessage{p}: + case <-spm.ctx.Done(): + } +} + +// RecordPeerRequests records that a given set of peers requested the given cids +func (spm *SessionPeerManager) RecordPeerRequests(p []peer.ID, ks []cid.Cid) { + // at the moment, we're not doing anything here + // soon we'll use this to track latency by peer +} + +// GetOptimizedPeers returns the best peers available for a session +func (spm *SessionPeerManager) GetOptimizedPeers() []peer.ID { + // right now this just returns all peers, but soon we might return peers + // ordered by optimization, or only a subset + resp := make(chan []peer.ID, 1) + select { + case spm.peerMessages <- &peerReqMessage{resp}: + case <-spm.ctx.Done(): + return nil + } + + select { + case peers := <-resp: + return peers + case <-spm.ctx.Done(): + return nil + } +} + +// FindMorePeers attempts to find more peers for a session by searching for +// providers for the given Cid +func (spm *SessionPeerManager) FindMorePeers(ctx context.Context, c cid.Cid) { + go func(k cid.Cid) { + for p := range spm.providerFinder.FindProvidersAsync(ctx, k) { + + select { + case spm.peerMessages <- &peerFoundMessage{p}: + case <-ctx.Done(): + case <-spm.ctx.Done(): + } + } + }(c) +} + +func (spm *SessionPeerManager) run(ctx context.Context) { + for { + select { + case pm := <-spm.peerMessages: + pm.handle(spm) + case <-ctx.Done(): + spm.handleShutdown() + return + } + } +} + +func (spm *SessionPeerManager) tagPeer(p peer.ID) { + spm.tagger.TagPeer(p, spm.tag, 10) +} + +func (spm *SessionPeerManager) insertOptimizedPeer(p peer.ID) { + if len(spm.optimizedPeersArr) >= (maxOptimizedPeers - reservePeers) { + tailPeer := spm.optimizedPeersArr[len(spm.optimizedPeersArr)-1] + spm.optimizedPeersArr = spm.optimizedPeersArr[:len(spm.optimizedPeersArr)-1] + spm.unoptimizedPeersArr = append(spm.unoptimizedPeersArr, tailPeer) + } + + spm.optimizedPeersArr = append([]peer.ID{p}, spm.optimizedPeersArr...) +} + +func (spm *SessionPeerManager) removeOptimizedPeer(p peer.ID) { + for i := 0; i < len(spm.optimizedPeersArr); i++ { + if spm.optimizedPeersArr[i] == p { + spm.optimizedPeersArr = append(spm.optimizedPeersArr[:i], spm.optimizedPeersArr[i+1:]...) + return + } + } +} + +func (spm *SessionPeerManager) removeUnoptimizedPeer(p peer.ID) { + for i := 0; i < len(spm.unoptimizedPeersArr); i++ { + if spm.unoptimizedPeersArr[i] == p { + spm.unoptimizedPeersArr[i] = spm.unoptimizedPeersArr[len(spm.unoptimizedPeersArr)-1] + spm.unoptimizedPeersArr = spm.unoptimizedPeersArr[:len(spm.unoptimizedPeersArr)-1] + return + } + } +} + +type peerFoundMessage struct { + p peer.ID +} + +func (pfm *peerFoundMessage) handle(spm *SessionPeerManager) { + p := pfm.p + if _, ok := spm.activePeers[p]; !ok { + spm.activePeers[p] = false + spm.unoptimizedPeersArr = append(spm.unoptimizedPeersArr, p) + spm.tagPeer(p) + } +} + +type peerResponseMessage struct { + p peer.ID +} + +func (prm *peerResponseMessage) handle(spm *SessionPeerManager) { + + p := prm.p + isOptimized, ok := spm.activePeers[p] + if !ok { + spm.activePeers[p] = true + spm.tagPeer(p) + } else { + if isOptimized { + spm.removeOptimizedPeer(p) + } else { + spm.activePeers[p] = true + spm.removeUnoptimizedPeer(p) + } + } + spm.insertOptimizedPeer(p) +} + +type peerReqMessage struct { + resp chan<- []peer.ID +} + +func (prm *peerReqMessage) handle(spm *SessionPeerManager) { + randomOrder := rand.Perm(len(spm.unoptimizedPeersArr)) + maxPeers := len(spm.unoptimizedPeersArr) + len(spm.optimizedPeersArr) + if maxPeers > maxOptimizedPeers { + maxPeers = maxOptimizedPeers + } + + extraPeers := make([]peer.ID, maxPeers-len(spm.optimizedPeersArr)) + for i := range extraPeers { + extraPeers[i] = spm.unoptimizedPeersArr[randomOrder[i]] + } + prm.resp <- append(spm.optimizedPeersArr, extraPeers...) +} + +func (spm *SessionPeerManager) handleShutdown() { + for p := range spm.activePeers { + spm.tagger.UntagPeer(p, spm.tag) + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/sessionrequestsplitter/sessionrequestsplitter.go b/vendor/github.com/ipfs/go-bitswap/sessionrequestsplitter/sessionrequestsplitter.go new file mode 100644 index 00000000..1305b73b --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/sessionrequestsplitter/sessionrequestsplitter.go @@ -0,0 +1,163 @@ +package sessionrequestsplitter + +import ( + "context" + + "github.com/ipfs/go-cid" + "github.com/libp2p/go-libp2p-peer" +) + +const ( + minReceivedToAdjustSplit = 2 + maxSplit = 16 + maxAcceptableDupes = 0.4 + minDuplesToTryLessSplits = 0.2 + initialSplit = 2 +) + +// PartialRequest is represents one slice of an over request split among peers +type PartialRequest struct { + Peers []peer.ID + Keys []cid.Cid +} + +type srsMessage interface { + handle(srs *SessionRequestSplitter) +} + +// SessionRequestSplitter track how many duplicate and unique blocks come in and +// uses that to determine how much to split up each set of wants among peers. +type SessionRequestSplitter struct { + ctx context.Context + messages chan srsMessage + + // data, do not touch outside run loop + receivedCount int + split int + duplicateReceivedCount int +} + +// New returns a new SessionRequestSplitter. +func New(ctx context.Context) *SessionRequestSplitter { + srs := &SessionRequestSplitter{ + ctx: ctx, + messages: make(chan srsMessage, 10), + split: initialSplit, + } + go srs.run() + return srs +} + +// SplitRequest splits a request for the given cids one or more times among the +// given peers. +func (srs *SessionRequestSplitter) SplitRequest(peers []peer.ID, ks []cid.Cid) []*PartialRequest { + resp := make(chan []*PartialRequest, 1) + + select { + case srs.messages <- &splitRequestMessage{peers, ks, resp}: + case <-srs.ctx.Done(): + return nil + } + select { + case splitRequests := <-resp: + return splitRequests + case <-srs.ctx.Done(): + return nil + } + +} + +// RecordDuplicateBlock records the fact that the session received a duplicate +// block and adjusts split factor as neccesary. +func (srs *SessionRequestSplitter) RecordDuplicateBlock() { + select { + case srs.messages <- &recordDuplicateMessage{}: + case <-srs.ctx.Done(): + } +} + +// RecordUniqueBlock records the fact that the session received unique block +// and adjusts the split factor as neccesary. +func (srs *SessionRequestSplitter) RecordUniqueBlock() { + select { + case srs.messages <- &recordUniqueMessage{}: + case <-srs.ctx.Done(): + } +} + +func (srs *SessionRequestSplitter) run() { + for { + select { + case message := <-srs.messages: + message.handle(srs) + case <-srs.ctx.Done(): + return + } + } +} + +func (srs *SessionRequestSplitter) duplicateRatio() float64 { + return float64(srs.duplicateReceivedCount) / float64(srs.receivedCount) +} + +type splitRequestMessage struct { + peers []peer.ID + ks []cid.Cid + resp chan []*PartialRequest +} + +func (s *splitRequestMessage) handle(srs *SessionRequestSplitter) { + split := srs.split + peers := s.peers + ks := s.ks + if len(peers) < split { + split = len(peers) + } + peerSplits := splitPeers(peers, split) + if len(ks) < split { + split = len(ks) + } + keySplits := splitKeys(ks, split) + splitRequests := make([]*PartialRequest, len(keySplits)) + for i := range splitRequests { + splitRequests[i] = &PartialRequest{peerSplits[i], keySplits[i]} + } + s.resp <- splitRequests +} + +type recordDuplicateMessage struct{} + +func (r *recordDuplicateMessage) handle(srs *SessionRequestSplitter) { + srs.receivedCount++ + srs.duplicateReceivedCount++ + if (srs.receivedCount > minReceivedToAdjustSplit) && (srs.duplicateRatio() > maxAcceptableDupes) && (srs.split < maxSplit) { + srs.split++ + } +} + +type recordUniqueMessage struct{} + +func (r *recordUniqueMessage) handle(srs *SessionRequestSplitter) { + srs.receivedCount++ + if (srs.split > 1) && (srs.duplicateRatio() < minDuplesToTryLessSplits) { + srs.split-- + } + +} +func splitKeys(ks []cid.Cid, split int) [][]cid.Cid { + splits := make([][]cid.Cid, split) + for i, c := range ks { + pos := i % split + splits[pos] = append(splits[pos], c) + } + return splits +} + +func splitPeers(peers []peer.ID, split int) [][]peer.ID { + splits := make([][]peer.ID, split) + for i, p := range peers { + pos := i % split + splits[pos] = append(splits[pos], p) + } + return splits +} diff --git a/vendor/github.com/ipfs/go-bitswap/stat.go b/vendor/github.com/ipfs/go-bitswap/stat.go new file mode 100644 index 00000000..99b2def1 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/stat.go @@ -0,0 +1,46 @@ +package bitswap + +import ( + "sort" + + cid "github.com/ipfs/go-cid" +) + +type Stat struct { + ProvideBufLen int + Wantlist []cid.Cid + Peers []string + BlocksReceived uint64 + DataReceived uint64 + BlocksSent uint64 + DataSent uint64 + DupBlksReceived uint64 + DupDataReceived uint64 + MessagesReceived uint64 +} + +func (bs *Bitswap) Stat() (*Stat, error) { + st := new(Stat) + st.ProvideBufLen = len(bs.newBlocks) + st.Wantlist = bs.GetWantlist() + bs.counterLk.Lock() + c := bs.counters + st.BlocksReceived = c.blocksRecvd + st.DupBlksReceived = c.dupBlocksRecvd + st.DupDataReceived = c.dupDataRecvd + st.BlocksSent = c.blocksSent + st.DataSent = c.dataSent + st.DataReceived = c.dataRecvd + st.MessagesReceived = c.messagesRecvd + bs.counterLk.Unlock() + + peers := bs.engine.Peers() + st.Peers = make([]string, 0, len(peers)) + + for _, p := range peers { + st.Peers = append(st.Peers, p.Pretty()) + } + sort.Strings(st.Peers) + + return st, nil +} diff --git a/vendor/github.com/ipfs/go-bitswap/testnet/interface.go b/vendor/github.com/ipfs/go-bitswap/testnet/interface.go new file mode 100644 index 00000000..ed7d4b1e --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/testnet/interface.go @@ -0,0 +1,13 @@ +package bitswap + +import ( + bsnet "github.com/ipfs/go-bitswap/network" + peer "github.com/libp2p/go-libp2p-peer" + "github.com/libp2p/go-testutil" +) + +type Network interface { + Adapter(testutil.Identity) bsnet.BitSwapNetwork + + HasPeer(peer.ID) bool +} diff --git a/vendor/github.com/ipfs/go-bitswap/testnet/internet_latency_delay_generator.go b/vendor/github.com/ipfs/go-bitswap/testnet/internet_latency_delay_generator.go new file mode 100644 index 00000000..25b9f5b8 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/testnet/internet_latency_delay_generator.go @@ -0,0 +1,63 @@ +package bitswap + +import ( + "math/rand" + "time" + + "github.com/ipfs/go-ipfs-delay" +) + +var sharedRNG = rand.New(rand.NewSource(time.Now().UnixNano())) + +// InternetLatencyDelayGenerator generates three clusters of delays, +// typical of the type of peers you would encounter on the interenet. +// Given a base delay time T, the wait time generated will be either: +// 1. A normalized distribution around the base time +// 2. A normalized distribution around the base time plus a "medium" delay +// 3. A normalized distribution around the base time plus a "large" delay +// The size of the medium & large delays are determined when the generator +// is constructed, as well as the relative percentages with which delays fall +// into each of the three different clusters, and the standard deviation for +// the normalized distribution. +// This can be used to generate a number of scenarios typical of latency +// distribution among peers on the internet. +func InternetLatencyDelayGenerator( + mediumDelay time.Duration, + largeDelay time.Duration, + percentMedium float64, + percentLarge float64, + std time.Duration, + rng *rand.Rand) delay.Generator { + if rng == nil { + rng = sharedRNG + } + + return &internetLatencyDelayGenerator{ + mediumDelay: mediumDelay, + largeDelay: largeDelay, + percentLarge: percentLarge, + percentMedium: percentMedium, + std: std, + rng: rng, + } +} + +type internetLatencyDelayGenerator struct { + mediumDelay time.Duration + largeDelay time.Duration + percentLarge float64 + percentMedium float64 + std time.Duration + rng *rand.Rand +} + +func (d *internetLatencyDelayGenerator) NextWaitTime(t time.Duration) time.Duration { + clusterDistribution := d.rng.Float64() + baseDelay := time.Duration(d.rng.NormFloat64()*float64(d.std)) + t + if clusterDistribution < d.percentLarge { + return baseDelay + d.largeDelay + } else if clusterDistribution < d.percentMedium+d.percentLarge { + return baseDelay + d.mediumDelay + } + return baseDelay +} diff --git a/vendor/github.com/ipfs/go-bitswap/testnet/peernet.go b/vendor/github.com/ipfs/go-bitswap/testnet/peernet.go new file mode 100644 index 00000000..dbad1f65 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/testnet/peernet.go @@ -0,0 +1,42 @@ +package bitswap + +import ( + "context" + + bsnet "github.com/ipfs/go-bitswap/network" + + ds "github.com/ipfs/go-datastore" + mockrouting "github.com/ipfs/go-ipfs-routing/mock" + peer "github.com/libp2p/go-libp2p-peer" + mockpeernet "github.com/libp2p/go-libp2p/p2p/net/mock" + testutil "github.com/libp2p/go-testutil" +) + +type peernet struct { + mockpeernet.Mocknet + routingserver mockrouting.Server +} + +func StreamNet(ctx context.Context, net mockpeernet.Mocknet, rs mockrouting.Server) (Network, error) { + return &peernet{net, rs}, nil +} + +func (pn *peernet) Adapter(p testutil.Identity) bsnet.BitSwapNetwork { + client, err := pn.Mocknet.AddPeer(p.PrivateKey(), p.Address()) + if err != nil { + panic(err.Error()) + } + routing := pn.routingserver.ClientWithDatastore(context.TODO(), p, ds.NewMapDatastore()) + return bsnet.NewFromIpfsHost(client, routing) +} + +func (pn *peernet) HasPeer(p peer.ID) bool { + for _, member := range pn.Mocknet.Peers() { + if p == member { + return true + } + } + return false +} + +var _ Network = (*peernet)(nil) diff --git a/vendor/github.com/ipfs/go-bitswap/testnet/rate_limit_generators.go b/vendor/github.com/ipfs/go-bitswap/testnet/rate_limit_generators.go new file mode 100644 index 00000000..2c4a1cd5 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/testnet/rate_limit_generators.go @@ -0,0 +1,42 @@ +package bitswap + +import ( + "math/rand" +) + +type fixedRateLimitGenerator struct { + rateLimit float64 +} + +// FixedRateLimitGenerator returns a rate limit generatoe that always generates +// the specified rate limit in bytes/sec. +func FixedRateLimitGenerator(rateLimit float64) RateLimitGenerator { + return &fixedRateLimitGenerator{rateLimit} +} + +func (rateLimitGenerator *fixedRateLimitGenerator) NextRateLimit() float64 { + return rateLimitGenerator.rateLimit +} + +type variableRateLimitGenerator struct { + rateLimit float64 + std float64 + rng *rand.Rand +} + +// VariableRateLimitGenerator makes rate limites that following a normal distribution. +func VariableRateLimitGenerator(rateLimit float64, std float64, rng *rand.Rand) RateLimitGenerator { + if rng == nil { + rng = sharedRNG + } + + return &variableRateLimitGenerator{ + std: std, + rng: rng, + rateLimit: rateLimit, + } +} + +func (rateLimitGenerator *variableRateLimitGenerator) NextRateLimit() float64 { + return rateLimitGenerator.rng.NormFloat64()*rateLimitGenerator.std + rateLimitGenerator.rateLimit +} diff --git a/vendor/github.com/ipfs/go-bitswap/testnet/virtual.go b/vendor/github.com/ipfs/go-bitswap/testnet/virtual.go new file mode 100644 index 00000000..e3af99d0 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/testnet/virtual.go @@ -0,0 +1,330 @@ +package bitswap + +import ( + "context" + "errors" + "sort" + "sync" + "sync/atomic" + "time" + + bsmsg "github.com/ipfs/go-bitswap/message" + bsnet "github.com/ipfs/go-bitswap/network" + + cid "github.com/ipfs/go-cid" + delay "github.com/ipfs/go-ipfs-delay" + mockrouting "github.com/ipfs/go-ipfs-routing/mock" + logging "github.com/ipfs/go-log" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + peer "github.com/libp2p/go-libp2p-peer" + routing "github.com/libp2p/go-libp2p-routing" + mocknet "github.com/libp2p/go-libp2p/p2p/net/mock" + testutil "github.com/libp2p/go-testutil" +) + +var log = logging.Logger("bstestnet") + +func VirtualNetwork(rs mockrouting.Server, d delay.D) Network { + return &network{ + latencies: make(map[peer.ID]map[peer.ID]time.Duration), + clients: make(map[peer.ID]*receiverQueue), + delay: d, + routingserver: rs, + isRateLimited: false, + rateLimitGenerator: nil, + conns: make(map[string]struct{}), + } +} + +type RateLimitGenerator interface { + NextRateLimit() float64 +} + +func RateLimitedVirtualNetwork(rs mockrouting.Server, d delay.D, rateLimitGenerator RateLimitGenerator) Network { + return &network{ + latencies: make(map[peer.ID]map[peer.ID]time.Duration), + rateLimiters: make(map[peer.ID]map[peer.ID]*mocknet.RateLimiter), + clients: make(map[peer.ID]*receiverQueue), + delay: d, + routingserver: rs, + isRateLimited: true, + rateLimitGenerator: rateLimitGenerator, + conns: make(map[string]struct{}), + } +} + +type network struct { + mu sync.Mutex + latencies map[peer.ID]map[peer.ID]time.Duration + rateLimiters map[peer.ID]map[peer.ID]*mocknet.RateLimiter + clients map[peer.ID]*receiverQueue + routingserver mockrouting.Server + delay delay.D + isRateLimited bool + rateLimitGenerator RateLimitGenerator + conns map[string]struct{} +} + +type message struct { + from peer.ID + msg bsmsg.BitSwapMessage + shouldSend time.Time +} + +// receiverQueue queues up a set of messages to be sent, and sends them *in +// order* with their delays respected as much as sending them in order allows +// for +type receiverQueue struct { + receiver *networkClient + queue []*message + active bool + lk sync.Mutex +} + +func (n *network) Adapter(p testutil.Identity) bsnet.BitSwapNetwork { + n.mu.Lock() + defer n.mu.Unlock() + + client := &networkClient{ + local: p.ID(), + network: n, + routing: n.routingserver.Client(p), + } + n.clients[p.ID()] = &receiverQueue{receiver: client} + return client +} + +func (n *network) HasPeer(p peer.ID) bool { + n.mu.Lock() + defer n.mu.Unlock() + + _, found := n.clients[p] + return found +} + +// TODO should this be completely asynchronous? +// TODO what does the network layer do with errors received from services? +func (n *network) SendMessage( + ctx context.Context, + from peer.ID, + to peer.ID, + mes bsmsg.BitSwapMessage) error { + + n.mu.Lock() + defer n.mu.Unlock() + + latencies, ok := n.latencies[from] + if !ok { + latencies = make(map[peer.ID]time.Duration) + n.latencies[from] = latencies + } + + latency, ok := latencies[to] + if !ok { + latency = n.delay.NextWaitTime() + latencies[to] = latency + } + + var bandwidthDelay time.Duration + if n.isRateLimited { + rateLimiters, ok := n.rateLimiters[from] + if !ok { + rateLimiters = make(map[peer.ID]*mocknet.RateLimiter) + n.rateLimiters[from] = rateLimiters + } + + rateLimiter, ok := rateLimiters[to] + if !ok { + rateLimiter = mocknet.NewRateLimiter(n.rateLimitGenerator.NextRateLimit()) + rateLimiters[to] = rateLimiter + } + + size := mes.ToProtoV1().Size() + bandwidthDelay = rateLimiter.Limit(size) + } else { + bandwidthDelay = 0 + } + + receiver, ok := n.clients[to] + if !ok { + return errors.New("cannot locate peer on network") + } + + // nb: terminate the context since the context wouldn't actually be passed + // over the network in a real scenario + + msg := &message{ + from: from, + msg: mes, + shouldSend: time.Now().Add(latency).Add(bandwidthDelay), + } + receiver.enqueue(msg) + + return nil +} + +type networkClient struct { + local peer.ID + bsnet.Receiver + network *network + routing routing.IpfsRouting + stats bsnet.NetworkStats +} + +func (nc *networkClient) SendMessage( + ctx context.Context, + to peer.ID, + message bsmsg.BitSwapMessage) error { + if err := nc.network.SendMessage(ctx, nc.local, to, message); err != nil { + return err + } + atomic.AddUint64(&nc.stats.MessagesSent, 1) + return nil +} + +func (nc *networkClient) Stats() bsnet.NetworkStats { + return bsnet.NetworkStats{ + MessagesRecvd: atomic.LoadUint64(&nc.stats.MessagesRecvd), + MessagesSent: atomic.LoadUint64(&nc.stats.MessagesSent), + } +} + +// FindProvidersAsync returns a channel of providers for the given key. +func (nc *networkClient) FindProvidersAsync(ctx context.Context, k cid.Cid, max int) <-chan peer.ID { + + // NB: this function duplicates the PeerInfo -> ID transformation in the + // bitswap network adapter. Not to worry. This network client will be + // deprecated once the ipfsnet.Mock is added. The code below is only + // temporary. + + out := make(chan peer.ID) + go func() { + defer close(out) + providers := nc.routing.FindProvidersAsync(ctx, k, max) + for info := range providers { + select { + case <-ctx.Done(): + case out <- info.ID: + } + } + }() + return out +} + +func (nc *networkClient) ConnectionManager() ifconnmgr.ConnManager { + return &ifconnmgr.NullConnMgr{} +} + +type messagePasser struct { + net *networkClient + target peer.ID + local peer.ID + ctx context.Context +} + +func (mp *messagePasser) SendMsg(ctx context.Context, m bsmsg.BitSwapMessage) error { + return mp.net.SendMessage(ctx, mp.target, m) +} + +func (mp *messagePasser) Close() error { + return nil +} + +func (mp *messagePasser) Reset() error { + return nil +} + +func (n *networkClient) NewMessageSender(ctx context.Context, p peer.ID) (bsnet.MessageSender, error) { + return &messagePasser{ + net: n, + target: p, + local: n.local, + ctx: ctx, + }, nil +} + +// Provide provides the key to the network. +func (nc *networkClient) Provide(ctx context.Context, k cid.Cid) error { + return nc.routing.Provide(ctx, k, true) +} + +func (nc *networkClient) SetDelegate(r bsnet.Receiver) { + nc.Receiver = r +} + +func (nc *networkClient) ConnectTo(_ context.Context, p peer.ID) error { + nc.network.mu.Lock() + + otherClient, ok := nc.network.clients[p] + if !ok { + nc.network.mu.Unlock() + return errors.New("no such peer in network") + } + + tag := tagForPeers(nc.local, p) + if _, ok := nc.network.conns[tag]; ok { + nc.network.mu.Unlock() + log.Warning("ALREADY CONNECTED TO PEER (is this a reconnect? test lib needs fixing)") + return nil + } + nc.network.conns[tag] = struct{}{} + nc.network.mu.Unlock() + + // TODO: add handling for disconnects + + otherClient.receiver.PeerConnected(nc.local) + nc.Receiver.PeerConnected(p) + return nil +} + +func (rq *receiverQueue) enqueue(m *message) { + rq.lk.Lock() + defer rq.lk.Unlock() + rq.queue = append(rq.queue, m) + if !rq.active { + rq.active = true + go rq.process() + } +} + +func (rq *receiverQueue) Swap(i, j int) { + rq.queue[i], rq.queue[j] = rq.queue[j], rq.queue[i] +} + +func (rq *receiverQueue) Len() int { + return len(rq.queue) +} + +func (rq *receiverQueue) Less(i, j int) bool { + return rq.queue[i].shouldSend.UnixNano() < rq.queue[j].shouldSend.UnixNano() +} + +func (rq *receiverQueue) process() { + for { + rq.lk.Lock() + sort.Sort(rq) + if len(rq.queue) == 0 { + rq.active = false + rq.lk.Unlock() + return + } + m := rq.queue[0] + if time.Until(m.shouldSend).Seconds() < 0.1 { + rq.queue = rq.queue[1:] + rq.lk.Unlock() + time.Sleep(time.Until(m.shouldSend)) + atomic.AddUint64(&rq.receiver.stats.MessagesRecvd, 1) + rq.receiver.ReceiveMessage(context.TODO(), m.from, m.msg) + } else { + rq.lk.Unlock() + time.Sleep(100 * time.Millisecond) + } + } +} + +func tagForPeers(a, b peer.ID) string { + if a < b { + return string(a + b) + } + return string(b + a) +} diff --git a/vendor/github.com/ipfs/go-bitswap/testutils.go b/vendor/github.com/ipfs/go-bitswap/testutils.go new file mode 100644 index 00000000..f9be6943 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/testutils.go @@ -0,0 +1,110 @@ +package bitswap + +import ( + "context" + "time" + + tn "github.com/ipfs/go-bitswap/testnet" + + ds "github.com/ipfs/go-datastore" + delayed "github.com/ipfs/go-datastore/delayed" + ds_sync "github.com/ipfs/go-datastore/sync" + blockstore "github.com/ipfs/go-ipfs-blockstore" + delay "github.com/ipfs/go-ipfs-delay" + p2ptestutil "github.com/libp2p/go-libp2p-netutil" + peer "github.com/libp2p/go-libp2p-peer" + testutil "github.com/libp2p/go-testutil" +) + +// WARNING: this uses RandTestBogusIdentity DO NOT USE for NON TESTS! +func NewTestSessionGenerator( + net tn.Network) SessionGenerator { + ctx, cancel := context.WithCancel(context.Background()) + return SessionGenerator{ + net: net, + seq: 0, + ctx: ctx, // TODO take ctx as param to Next, Instances + cancel: cancel, + } +} + +// TODO move this SessionGenerator to the core package and export it as the core generator +type SessionGenerator struct { + seq int + net tn.Network + ctx context.Context + cancel context.CancelFunc +} + +func (g *SessionGenerator) Close() error { + g.cancel() + return nil // for Closer interface +} + +func (g *SessionGenerator) Next() Instance { + g.seq++ + p, err := p2ptestutil.RandTestBogusIdentity() + if err != nil { + panic("FIXME") // TODO change signature + } + return MkSession(g.ctx, g.net, p) +} + +func (g *SessionGenerator) Instances(n int) []Instance { + var instances []Instance + for j := 0; j < n; j++ { + inst := g.Next() + instances = append(instances, inst) + } + for i, inst := range instances { + for j := i + 1; j < len(instances); j++ { + oinst := instances[j] + inst.Exchange.network.ConnectTo(context.Background(), oinst.Peer) + } + } + return instances +} + +type Instance struct { + Peer peer.ID + Exchange *Bitswap + blockstore blockstore.Blockstore + + blockstoreDelay delay.D +} + +func (i *Instance) Blockstore() blockstore.Blockstore { + return i.blockstore +} + +func (i *Instance) SetBlockstoreLatency(t time.Duration) time.Duration { + return i.blockstoreDelay.Set(t) +} + +// session creates a test bitswap instance. +// +// NB: It's easy make mistakes by providing the same peer ID to two different +// sessions. To safeguard, use the SessionGenerator to generate sessions. It's +// just a much better idea. +func MkSession(ctx context.Context, net tn.Network, p testutil.Identity) Instance { + bsdelay := delay.Fixed(0) + + adapter := net.Adapter(p) + dstore := ds_sync.MutexWrap(delayed.New(ds.NewMapDatastore(), bsdelay)) + + bstore, err := blockstore.CachedBlockstore(ctx, + blockstore.NewBlockstore(ds_sync.MutexWrap(dstore)), + blockstore.DefaultCacheOpts()) + if err != nil { + panic(err.Error()) // FIXME perhaps change signature and return error. + } + + bs := New(ctx, adapter, bstore).(*Bitswap) + + return Instance{ + Peer: p.ID(), + Exchange: bs, + blockstore: bstore, + blockstoreDelay: bsdelay, + } +} diff --git a/vendor/github.com/ipfs/go-bitswap/wantlist/wantlist.go b/vendor/github.com/ipfs/go-bitswap/wantlist/wantlist.go new file mode 100644 index 00000000..999fcd9e --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/wantlist/wantlist.go @@ -0,0 +1,197 @@ +// Package wantlist implements an object for bitswap that contains the keys +// that a given peer wants. +package wantlist + +import ( + "sort" + + cid "github.com/ipfs/go-cid" +) + +type SessionTrackedWantlist struct { + set map[cid.Cid]*sessionTrackedEntry +} + +type Wantlist struct { + set map[cid.Cid]Entry +} + +type Entry struct { + Cid cid.Cid + Priority int +} + +type sessionTrackedEntry struct { + Entry + sesTrk map[uint64]struct{} +} + +// NewRefEntry creates a new reference tracked wantlist entry. +func NewRefEntry(c cid.Cid, p int) Entry { + return Entry{ + Cid: c, + Priority: p, + } +} + +type entrySlice []Entry + +func (es entrySlice) Len() int { return len(es) } +func (es entrySlice) Swap(i, j int) { es[i], es[j] = es[j], es[i] } +func (es entrySlice) Less(i, j int) bool { return es[i].Priority > es[j].Priority } + +func NewSessionTrackedWantlist() *SessionTrackedWantlist { + return &SessionTrackedWantlist{ + set: make(map[cid.Cid]*sessionTrackedEntry), + } +} + +func New() *Wantlist { + return &Wantlist{ + set: make(map[cid.Cid]Entry), + } +} + +// Add adds the given cid to the wantlist with the specified priority, governed +// by the session ID 'ses'. if a cid is added under multiple session IDs, then +// it must be removed by each of those sessions before it is no longer 'in the +// wantlist'. Calls to Add are idempotent given the same arguments. Subsequent +// calls with different values for priority will not update the priority. +// TODO: think through priority changes here +// Add returns true if the cid did not exist in the wantlist before this call +// (even if it was under a different session). +func (w *SessionTrackedWantlist) Add(c cid.Cid, priority int, ses uint64) bool { + + if e, ok := w.set[c]; ok { + e.sesTrk[ses] = struct{}{} + return false + } + + w.set[c] = &sessionTrackedEntry{ + Entry: Entry{Cid: c, Priority: priority}, + sesTrk: map[uint64]struct{}{ses: struct{}{}}, + } + + return true +} + +// AddEntry adds given Entry to the wantlist. For more information see Add method. +func (w *SessionTrackedWantlist) AddEntry(e Entry, ses uint64) bool { + if ex, ok := w.set[e.Cid]; ok { + ex.sesTrk[ses] = struct{}{} + return false + } + w.set[e.Cid] = &sessionTrackedEntry{ + Entry: e, + sesTrk: map[uint64]struct{}{ses: struct{}{}}, + } + return true +} + +// Remove removes the given cid from being tracked by the given session. +// 'true' is returned if this call to Remove removed the final session ID +// tracking the cid. (meaning true will be returned iff this call caused the +// value of 'Contains(c)' to change from true to false) +func (w *SessionTrackedWantlist) Remove(c cid.Cid, ses uint64) bool { + e, ok := w.set[c] + if !ok { + return false + } + + delete(e.sesTrk, ses) + if len(e.sesTrk) == 0 { + delete(w.set, c) + return true + } + return false +} + +// Contains returns true if the given cid is in the wantlist tracked by one or +// more sessions. +func (w *SessionTrackedWantlist) Contains(k cid.Cid) (Entry, bool) { + e, ok := w.set[k] + if !ok { + return Entry{}, false + } + return e.Entry, true +} + +func (w *SessionTrackedWantlist) Entries() []Entry { + es := make([]Entry, 0, len(w.set)) + for _, e := range w.set { + es = append(es, e.Entry) + } + return es +} + +func (w *SessionTrackedWantlist) SortedEntries() []Entry { + es := w.Entries() + sort.Sort(entrySlice(es)) + return es +} + +func (w *SessionTrackedWantlist) Len() int { + return len(w.set) +} + +func (w *SessionTrackedWantlist) CopyWants(to *SessionTrackedWantlist) { + for _, e := range w.set { + for k := range e.sesTrk { + to.AddEntry(e.Entry, k) + } + } +} + +func (w *Wantlist) Len() int { + return len(w.set) +} + +func (w *Wantlist) Add(c cid.Cid, priority int) bool { + if _, ok := w.set[c]; ok { + return false + } + + w.set[c] = Entry{ + Cid: c, + Priority: priority, + } + + return true +} + +func (w *Wantlist) AddEntry(e Entry) bool { + if _, ok := w.set[e.Cid]; ok { + return false + } + w.set[e.Cid] = e + return true +} + +func (w *Wantlist) Remove(c cid.Cid) bool { + _, ok := w.set[c] + if !ok { + return false + } + + delete(w.set, c) + return true +} + +func (w *Wantlist) Contains(c cid.Cid) (Entry, bool) { + e, ok := w.set[c] + return e, ok +} + +func (w *Wantlist) Entries() []Entry { + es := make([]Entry, 0, len(w.set)) + for _, e := range w.set { + es = append(es, e) + } + return es +} + +func (w *Wantlist) SortedEntries() []Entry { + es := w.Entries() + sort.Sort(entrySlice(es)) + return es +} diff --git a/vendor/github.com/ipfs/go-bitswap/wantmanager/wantmanager.go b/vendor/github.com/ipfs/go-bitswap/wantmanager/wantmanager.go new file mode 100644 index 00000000..0fd7d5a1 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/wantmanager/wantmanager.go @@ -0,0 +1,286 @@ +package wantmanager + +import ( + "context" + "math" + + bsmsg "github.com/ipfs/go-bitswap/message" + wantlist "github.com/ipfs/go-bitswap/wantlist" + logging "github.com/ipfs/go-log" + + cid "github.com/ipfs/go-cid" + metrics "github.com/ipfs/go-metrics-interface" + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("bitswap") + +const ( + // maxPriority is the max priority as defined by the bitswap protocol + maxPriority = math.MaxInt32 +) + +// PeerHandler sends changes out to the network as they get added to the wantlist +// managed by the WantManager. +type PeerHandler interface { + Disconnected(p peer.ID) + Connected(p peer.ID, initialWants *wantlist.SessionTrackedWantlist) + SendMessage(entries []bsmsg.Entry, targets []peer.ID, from uint64) +} + +type wantMessage interface { + handle(wm *WantManager) +} + +// WantManager manages a global want list. It tracks two seperate want lists - +// one for all wants, and one for wants that are specifically broadcast to the +// internet. +type WantManager struct { + // channel requests to the run loop + // to get predictable behavior while running this in a go routine + // having only one channel is neccesary, so requests are processed serially + wantMessages chan wantMessage + + // synchronized by Run loop, only touch inside there + wl *wantlist.SessionTrackedWantlist + bcwl *wantlist.SessionTrackedWantlist + + ctx context.Context + cancel func() + + peerHandler PeerHandler + wantlistGauge metrics.Gauge +} + +// New initializes a new WantManager for a given context. +func New(ctx context.Context) *WantManager { + ctx, cancel := context.WithCancel(ctx) + wantlistGauge := metrics.NewCtx(ctx, "wantlist_total", + "Number of items in wantlist.").Gauge() + return &WantManager{ + wantMessages: make(chan wantMessage, 10), + wl: wantlist.NewSessionTrackedWantlist(), + bcwl: wantlist.NewSessionTrackedWantlist(), + ctx: ctx, + cancel: cancel, + wantlistGauge: wantlistGauge, + } +} + +// SetDelegate specifies who will send want changes out to the internet. +func (wm *WantManager) SetDelegate(peerHandler PeerHandler) { + wm.peerHandler = peerHandler +} + +// WantBlocks adds the given cids to the wantlist, tracked by the given session. +func (wm *WantManager) WantBlocks(ctx context.Context, ks []cid.Cid, peers []peer.ID, ses uint64) { + log.Infof("want blocks: %s", ks) + wm.addEntries(ctx, ks, peers, false, ses) +} + +// CancelWants removes the given cids from the wantlist, tracked by the given session. +func (wm *WantManager) CancelWants(ctx context.Context, ks []cid.Cid, peers []peer.ID, ses uint64) { + wm.addEntries(context.Background(), ks, peers, true, ses) +} + +// IsWanted returns whether a CID is currently wanted. +func (wm *WantManager) IsWanted(c cid.Cid) bool { + resp := make(chan bool, 1) + select { + case wm.wantMessages <- &isWantedMessage{c, resp}: + case <-wm.ctx.Done(): + return false + } + select { + case wanted := <-resp: + return wanted + case <-wm.ctx.Done(): + return false + } +} + +// CurrentWants returns the list of current wants. +func (wm *WantManager) CurrentWants() []wantlist.Entry { + resp := make(chan []wantlist.Entry, 1) + select { + case wm.wantMessages <- ¤tWantsMessage{resp}: + case <-wm.ctx.Done(): + return nil + } + select { + case wantlist := <-resp: + return wantlist + case <-wm.ctx.Done(): + return nil + } +} + +// CurrentBroadcastWants returns the current list of wants that are broadcasts. +func (wm *WantManager) CurrentBroadcastWants() []wantlist.Entry { + resp := make(chan []wantlist.Entry, 1) + select { + case wm.wantMessages <- ¤tBroadcastWantsMessage{resp}: + case <-wm.ctx.Done(): + return nil + } + select { + case wl := <-resp: + return wl + case <-wm.ctx.Done(): + return nil + } +} + +// WantCount returns the total count of wants. +func (wm *WantManager) WantCount() int { + resp := make(chan int, 1) + select { + case wm.wantMessages <- &wantCountMessage{resp}: + case <-wm.ctx.Done(): + return 0 + } + select { + case count := <-resp: + return count + case <-wm.ctx.Done(): + return 0 + } +} + +// Connected is called when a new peer is connected +func (wm *WantManager) Connected(p peer.ID) { + select { + case wm.wantMessages <- &connectedMessage{p}: + case <-wm.ctx.Done(): + } +} + +// Disconnected is called when a peer is disconnected +func (wm *WantManager) Disconnected(p peer.ID) { + select { + case wm.wantMessages <- &disconnectedMessage{p}: + case <-wm.ctx.Done(): + } +} + +// Startup starts processing for the WantManager. +func (wm *WantManager) Startup() { + go wm.run() +} + +// Shutdown ends processing for the want manager. +func (wm *WantManager) Shutdown() { + wm.cancel() +} + +func (wm *WantManager) run() { + // NOTE: Do not open any streams or connections from anywhere in this + // event loop. Really, just don't do anything likely to block. + for { + select { + case message := <-wm.wantMessages: + message.handle(wm) + case <-wm.ctx.Done(): + return + } + } +} + +func (wm *WantManager) addEntries(ctx context.Context, ks []cid.Cid, targets []peer.ID, cancel bool, ses uint64) { + entries := make([]bsmsg.Entry, 0, len(ks)) + for i, k := range ks { + entries = append(entries, bsmsg.Entry{ + Cancel: cancel, + Entry: wantlist.NewRefEntry(k, maxPriority-i), + }) + } + select { + case wm.wantMessages <- &wantSet{entries: entries, targets: targets, from: ses}: + case <-wm.ctx.Done(): + case <-ctx.Done(): + } +} + +type wantSet struct { + entries []bsmsg.Entry + targets []peer.ID + from uint64 +} + +func (ws *wantSet) handle(wm *WantManager) { + // is this a broadcast or not? + brdc := len(ws.targets) == 0 + + // add changes to our wantlist + for _, e := range ws.entries { + if e.Cancel { + if brdc { + wm.bcwl.Remove(e.Cid, ws.from) + } + + if wm.wl.Remove(e.Cid, ws.from) { + wm.wantlistGauge.Dec() + } + } else { + if brdc { + wm.bcwl.AddEntry(e.Entry, ws.from) + } + if wm.wl.AddEntry(e.Entry, ws.from) { + wm.wantlistGauge.Inc() + } + } + } + + // broadcast those wantlist changes + wm.peerHandler.SendMessage(ws.entries, ws.targets, ws.from) +} + +type isWantedMessage struct { + c cid.Cid + resp chan<- bool +} + +func (iwm *isWantedMessage) handle(wm *WantManager) { + _, isWanted := wm.wl.Contains(iwm.c) + iwm.resp <- isWanted +} + +type currentWantsMessage struct { + resp chan<- []wantlist.Entry +} + +func (cwm *currentWantsMessage) handle(wm *WantManager) { + cwm.resp <- wm.wl.Entries() +} + +type currentBroadcastWantsMessage struct { + resp chan<- []wantlist.Entry +} + +func (cbcwm *currentBroadcastWantsMessage) handle(wm *WantManager) { + cbcwm.resp <- wm.bcwl.Entries() +} + +type wantCountMessage struct { + resp chan<- int +} + +func (wcm *wantCountMessage) handle(wm *WantManager) { + wcm.resp <- wm.wl.Len() +} + +type connectedMessage struct { + p peer.ID +} + +func (cm *connectedMessage) handle(wm *WantManager) { + wm.peerHandler.Connected(cm.p, wm.bcwl) +} + +type disconnectedMessage struct { + p peer.ID +} + +func (dm *disconnectedMessage) handle(wm *WantManager) { + wm.peerHandler.Disconnected(dm.p) +} diff --git a/vendor/github.com/ipfs/go-bitswap/workers.go b/vendor/github.com/ipfs/go-bitswap/workers.go new file mode 100644 index 00000000..45f78615 --- /dev/null +++ b/vendor/github.com/ipfs/go-bitswap/workers.go @@ -0,0 +1,185 @@ +package bitswap + +import ( + "context" + + engine "github.com/ipfs/go-bitswap/decision" + bsmsg "github.com/ipfs/go-bitswap/message" + cid "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + process "github.com/jbenet/goprocess" + procctx "github.com/jbenet/goprocess/context" +) + +var TaskWorkerCount = 8 + +func (bs *Bitswap) startWorkers(px process.Process, ctx context.Context) { + + // Start up workers to handle requests from other nodes for the data on this node + for i := 0; i < TaskWorkerCount; i++ { + i := i + px.Go(func(px process.Process) { + bs.taskWorker(ctx, i) + }) + } + + // Start up a worker to manage sending out provides messages + px.Go(func(px process.Process) { + bs.provideCollector(ctx) + }) + + // Spawn up multiple workers to handle incoming blocks + // consider increasing number if providing blocks bottlenecks + // file transfers + px.Go(bs.provideWorker) +} + +func (bs *Bitswap) taskWorker(ctx context.Context, id int) { + idmap := logging.LoggableMap{"ID": id} + defer log.Debug("bitswap task worker shutting down...") + for { + log.Event(ctx, "Bitswap.TaskWorker.Loop", idmap) + select { + case nextEnvelope := <-bs.engine.Outbox(): + select { + case envelope, ok := <-nextEnvelope: + if !ok { + continue + } + // update the BS ledger to reflect sent message + // TODO: Should only track *useful* messages in ledger + outgoing := bsmsg.New(false) + for _, block := range envelope.Message.Blocks() { + log.Event(ctx, "Bitswap.TaskWorker.Work", logging.LoggableF(func() map[string]interface{} { + return logging.LoggableMap{ + "ID": id, + "Target": envelope.Peer.Pretty(), + "Block": block.Cid().String(), + } + })) + outgoing.AddBlock(block) + } + bs.engine.MessageSent(envelope.Peer, outgoing) + + bs.sendBlocks(ctx, envelope) + bs.counterLk.Lock() + for _, block := range envelope.Message.Blocks() { + bs.counters.blocksSent++ + bs.counters.dataSent += uint64(len(block.RawData())) + } + bs.counterLk.Unlock() + case <-ctx.Done(): + return + } + case <-ctx.Done(): + return + } + } +} + +func (bs *Bitswap) sendBlocks(ctx context.Context, env *engine.Envelope) { + // Blocks need to be sent synchronously to maintain proper backpressure + // throughout the network stack + defer env.Sent() + + msgSize := 0 + msg := bsmsg.New(false) + for _, block := range env.Message.Blocks() { + msgSize += len(block.RawData()) + msg.AddBlock(block) + log.Infof("Sending block %s to %s", block, env.Peer) + } + + bs.sentHistogram.Observe(float64(msgSize)) + err := bs.network.SendMessage(ctx, env.Peer, msg) + if err != nil { + log.Infof("sendblock error: %s", err) + } +} + +func (bs *Bitswap) provideWorker(px process.Process) { + // FIXME: OnClosingContext returns a _custom_ context type. + // Unfortunately, deriving a new cancelable context from this custom + // type fires off a goroutine. To work around this, we create a single + // cancelable context up-front and derive all sub-contexts from that. + // + // See: https://github.com/ipfs/go-ipfs/issues/5810 + ctx := procctx.OnClosingContext(px) + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + limit := make(chan struct{}, provideWorkerMax) + + limitedGoProvide := func(k cid.Cid, wid int) { + defer func() { + // replace token when done + <-limit + }() + ev := logging.LoggableMap{"ID": wid} + + defer log.EventBegin(ctx, "Bitswap.ProvideWorker.Work", ev, k).Done() + + ctx, cancel := context.WithTimeout(ctx, provideTimeout) // timeout ctx + defer cancel() + + if err := bs.network.Provide(ctx, k); err != nil { + log.Warning(err) + } + } + + // worker spawner, reads from bs.provideKeys until it closes, spawning a + // _ratelimited_ number of workers to handle each key. + for wid := 2; ; wid++ { + ev := logging.LoggableMap{"ID": 1} + log.Event(ctx, "Bitswap.ProvideWorker.Loop", ev) + + select { + case <-px.Closing(): + return + case k, ok := <-bs.provideKeys: + if !ok { + log.Debug("provideKeys channel closed") + return + } + select { + case <-px.Closing(): + return + case limit <- struct{}{}: + go limitedGoProvide(k, wid) + } + } + } +} + +func (bs *Bitswap) provideCollector(ctx context.Context) { + defer close(bs.provideKeys) + var toProvide []cid.Cid + var nextKey cid.Cid + var keysOut chan cid.Cid + + for { + select { + case blkey, ok := <-bs.newBlocks: + if !ok { + log.Debug("newBlocks channel closed") + return + } + + if keysOut == nil { + nextKey = blkey + keysOut = bs.provideKeys + } else { + toProvide = append(toProvide, blkey) + } + case keysOut <- nextKey: + if len(toProvide) > 0 { + nextKey = toProvide[0] + toProvide = toProvide[1:] + } else { + keysOut = nil + } + case <-ctx.Done(): + return + } + } +} diff --git a/vendor/github.com/ipfs/go-block-format/.travis.yml b/vendor/github.com/ipfs/go-block-format/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-block-format/LICENSE b/vendor/github.com/ipfs/go-block-format/LICENSE new file mode 100644 index 00000000..8001ebee --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-block-format/Makefile b/vendor/github.com/ipfs/go-block-format/Makefile new file mode 100644 index 00000000..7811c099 --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/Makefile @@ -0,0 +1,15 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +covertools: + go get github.com/mattn/goveralls + go get golang.org/x/tools/cmd/cover + +deps: gx covertools + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-block-format/README.md b/vendor/github.com/ipfs/go-block-format/README.md new file mode 100644 index 00000000..67cd1fcd --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/README.md @@ -0,0 +1,35 @@ +go-block-format +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-block-format/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-block-format/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-block-format.svg?branch=master)](https://travis-ci.org/ipfs/go-block-format) + +> go-block-format is a set of interfaces that a type needs to implement in order to be a CID addressable block of data. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Juan Batiz-Benet diff --git a/vendor/github.com/ipfs/go-block-format/blocks.go b/vendor/github.com/ipfs/go-block-format/blocks.go new file mode 100644 index 00000000..3d3894b3 --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/blocks.go @@ -0,0 +1,82 @@ +// Package blocks contains the lowest level of IPLD data structures. +// A block is raw data accompanied by a CID. The CID contains the multihash +// corresponding to the block. +package blocks + +import ( + "errors" + "fmt" + + cid "github.com/ipfs/go-cid" + u "github.com/ipfs/go-ipfs-util" + mh "github.com/multiformats/go-multihash" +) + +// ErrWrongHash is returned when the Cid of a block is not the expected +// according to the contents. It is currently used only when debugging. +var ErrWrongHash = errors.New("data did not match given hash") + +// Block provides abstraction for blocks implementations. +type Block interface { + RawData() []byte + Cid() cid.Cid + String() string + Loggable() map[string]interface{} +} + +// A BasicBlock is a singular block of data in ipfs. It implements the Block +// interface. +type BasicBlock struct { + cid cid.Cid + data []byte +} + +// NewBlock creates a Block object from opaque data. It will hash the data. +func NewBlock(data []byte) *BasicBlock { + // TODO: fix assumptions + return &BasicBlock{data: data, cid: cid.NewCidV0(u.Hash(data))} +} + +// NewBlockWithCid creates a new block when the hash of the data +// is already known, this is used to save time in situations where +// we are able to be confident that the data is correct. +func NewBlockWithCid(data []byte, c cid.Cid) (*BasicBlock, error) { + if u.Debug { + chkc, err := c.Prefix().Sum(data) + if err != nil { + return nil, err + } + + if !chkc.Equals(c) { + return nil, ErrWrongHash + } + } + return &BasicBlock{data: data, cid: c}, nil +} + +// Multihash returns the hash contained in the block CID. +func (b *BasicBlock) Multihash() mh.Multihash { + return b.cid.Hash() +} + +// RawData returns the block raw contents as a byte slice. +func (b *BasicBlock) RawData() []byte { + return b.data +} + +// Cid returns the content identifier of the block. +func (b *BasicBlock) Cid() cid.Cid { + return b.cid +} + +// String provides a human-readable representation of the block CID. +func (b *BasicBlock) String() string { + return fmt.Sprintf("[Block %s]", b.Cid()) +} + +// Loggable returns a go-log loggable item. +func (b *BasicBlock) Loggable() map[string]interface{} { + return map[string]interface{}{ + "block": b.Cid().String(), + } +} diff --git a/vendor/github.com/ipfs/go-block-format/codecov.yml b/vendor/github.com/ipfs/go-block-format/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-block-format/go.mod b/vendor/github.com/ipfs/go-block-format/go.mod new file mode 100644 index 00000000..f6ab8eab --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/go.mod @@ -0,0 +1,7 @@ +module github.com/ipfs/go-block-format + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-block-format/go.sum b/vendor/github.com/ipfs/go-block-format/go.sum new file mode 100644 index 00000000..3fb22960 --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/go.sum @@ -0,0 +1,24 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-block-format/package.json b/vendor/github.com/ipfs/go-block-format/package.json new file mode 100644 index 00000000..970ac559 --- /dev/null +++ b/vendor/github.com/ipfs/go-block-format/package.json @@ -0,0 +1,36 @@ +{ + "author": "stebalien", + "bugs": { + "url": "https://github.com/ipfs/go-block-format" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-block-format" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + } + ], + "gxVersion": "0.11.0", + "language": "go", + "license": "", + "name": "go-block-format", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.2" +} + diff --git a/vendor/github.com/ipfs/go-blockservice/.travis.yml b/vendor/github.com/ipfs/go-blockservice/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-blockservice/LICENSE b/vendor/github.com/ipfs/go-blockservice/LICENSE new file mode 100644 index 00000000..7d5dcac4 --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-blockservice/README.md b/vendor/github.com/ipfs/go-blockservice/README.md new file mode 100644 index 00000000..0ec2aef8 --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/README.md @@ -0,0 +1,33 @@ +go-blockservice +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-block-format/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-block-format/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-block-format.svg?branch=master)](https://travis-ci.org/ipfs/go-block-format) + +> go-blockservice provides a seamless interface to both local and remote storage backends. + + +## Table of Contents + +- [TODO](#todo) +- [Contribute](#contribute) +- [License](#license) + +## TODO + +The interfaces here really would like to be merged with the blockstore interfaces. +The 'dagservice' constructor currently takes a blockservice, but it would be really nice +if it could just take a blockstore, and have this package implement a blockstore. + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Juan Batiz-Benet diff --git a/vendor/github.com/ipfs/go-blockservice/blockservice.go b/vendor/github.com/ipfs/go-blockservice/blockservice.go new file mode 100644 index 00000000..3b5a1df6 --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/blockservice.go @@ -0,0 +1,354 @@ +// package blockservice implements a BlockService interface that provides +// a single GetBlock/AddBlock interface that seamlessly retrieves data either +// locally or from a remote peer through the exchange. +package blockservice + +import ( + "context" + "errors" + "io" + "sync" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + blockstore "github.com/ipfs/go-ipfs-blockstore" + exchange "github.com/ipfs/go-ipfs-exchange-interface" + logging "github.com/ipfs/go-log" + "github.com/ipfs/go-verifcid" +) + +var log = logging.Logger("blockservice") + +var ErrNotFound = errors.New("blockservice: key not found") + +// BlockGetter is the common interface shared between blockservice sessions and +// the blockservice. +type BlockGetter interface { + // GetBlock gets the requested block. + GetBlock(ctx context.Context, c cid.Cid) (blocks.Block, error) + + // GetBlocks does a batch request for the given cids, returning blocks as + // they are found, in no particular order. + // + // It may not be able to find all requested blocks (or the context may + // be canceled). In that case, it will close the channel early. It is up + // to the consumer to detect this situation and keep track which blocks + // it has received and which it hasn't. + GetBlocks(ctx context.Context, ks []cid.Cid) <-chan blocks.Block +} + +// BlockService is a hybrid block datastore. It stores data in a local +// datastore and may retrieve data from a remote Exchange. +// It uses an internal `datastore.Datastore` instance to store values. +type BlockService interface { + io.Closer + BlockGetter + + // Blockstore returns a reference to the underlying blockstore + Blockstore() blockstore.Blockstore + + // Exchange returns a reference to the underlying exchange (usually bitswap) + Exchange() exchange.Interface + + // AddBlock puts a given block to the underlying datastore + AddBlock(o blocks.Block) error + + // AddBlocks adds a slice of blocks at the same time using batching + // capabilities of the underlying datastore whenever possible. + AddBlocks(bs []blocks.Block) error + + // DeleteBlock deletes the given block from the blockservice. + DeleteBlock(o cid.Cid) error +} + +type blockService struct { + blockstore blockstore.Blockstore + exchange exchange.Interface + // If checkFirst is true then first check that a block doesn't + // already exist to avoid republishing the block on the exchange. + checkFirst bool +} + +// NewBlockService creates a BlockService with given datastore instance. +func New(bs blockstore.Blockstore, rem exchange.Interface) BlockService { + if rem == nil { + log.Warning("blockservice running in local (offline) mode.") + } + + return &blockService{ + blockstore: bs, + exchange: rem, + checkFirst: true, + } +} + +// NewWriteThrough ceates a BlockService that guarantees writes will go +// through to the blockstore and are not skipped by cache checks. +func NewWriteThrough(bs blockstore.Blockstore, rem exchange.Interface) BlockService { + if rem == nil { + log.Warning("blockservice running in local (offline) mode.") + } + + return &blockService{ + blockstore: bs, + exchange: rem, + checkFirst: false, + } +} + +// Blockstore returns the blockstore behind this blockservice. +func (s *blockService) Blockstore() blockstore.Blockstore { + return s.blockstore +} + +// Exchange returns the exchange behind this blockservice. +func (s *blockService) Exchange() exchange.Interface { + return s.exchange +} + +// NewSession creates a new session that allows for +// controlled exchange of wantlists to decrease the bandwidth overhead. +// If the current exchange is a SessionExchange, a new exchange +// session will be created. Otherwise, the current exchange will be used +// directly. +func NewSession(ctx context.Context, bs BlockService) *Session { + exch := bs.Exchange() + if sessEx, ok := exch.(exchange.SessionExchange); ok { + ses := sessEx.NewSession(ctx) + return &Session{ + ses: ses, + sessEx: sessEx, + bs: bs.Blockstore(), + } + } + return &Session{ + ses: exch, + bs: bs.Blockstore(), + } +} + +// AddBlock adds a particular block to the service, Putting it into the datastore. +// TODO pass a context into this if the remote.HasBlock is going to remain here. +func (s *blockService) AddBlock(o blocks.Block) error { + c := o.Cid() + // hash security + err := verifcid.ValidateCid(c) + if err != nil { + return err + } + if s.checkFirst { + if has, err := s.blockstore.Has(c); has || err != nil { + return err + } + } + + if err := s.blockstore.Put(o); err != nil { + return err + } + + log.Event(context.TODO(), "BlockService.BlockAdded", c) + + if err := s.exchange.HasBlock(o); err != nil { + log.Errorf("HasBlock: %s", err.Error()) + } + + return nil +} + +func (s *blockService) AddBlocks(bs []blocks.Block) error { + // hash security + for _, b := range bs { + err := verifcid.ValidateCid(b.Cid()) + if err != nil { + return err + } + } + var toput []blocks.Block + if s.checkFirst { + toput = make([]blocks.Block, 0, len(bs)) + for _, b := range bs { + has, err := s.blockstore.Has(b.Cid()) + if err != nil { + return err + } + if !has { + toput = append(toput, b) + } + } + } else { + toput = bs + } + + err := s.blockstore.PutMany(toput) + if err != nil { + return err + } + + for _, o := range toput { + log.Event(context.TODO(), "BlockService.BlockAdded", o.Cid()) + if err := s.exchange.HasBlock(o); err != nil { + log.Errorf("HasBlock: %s", err.Error()) + } + } + return nil +} + +// GetBlock retrieves a particular block from the service, +// Getting it from the datastore using the key (hash). +func (s *blockService) GetBlock(ctx context.Context, c cid.Cid) (blocks.Block, error) { + log.Debugf("BlockService GetBlock: '%s'", c) + + var f func() exchange.Fetcher + if s.exchange != nil { + f = s.getExchange + } + + return getBlock(ctx, c, s.blockstore, f) // hash security +} + +func (s *blockService) getExchange() exchange.Fetcher { + return s.exchange +} + +func getBlock(ctx context.Context, c cid.Cid, bs blockstore.Blockstore, fget func() exchange.Fetcher) (blocks.Block, error) { + err := verifcid.ValidateCid(c) // hash security + if err != nil { + return nil, err + } + + block, err := bs.Get(c) + if err == nil { + return block, nil + } + + if err == blockstore.ErrNotFound && fget != nil { + f := fget() // Don't load the exchange until we have to + + // TODO be careful checking ErrNotFound. If the underlying + // implementation changes, this will break. + log.Debug("Blockservice: Searching bitswap") + blk, err := f.GetBlock(ctx, c) + if err != nil { + if err == blockstore.ErrNotFound { + return nil, ErrNotFound + } + return nil, err + } + log.Event(ctx, "BlockService.BlockFetched", c) + return blk, nil + } + + log.Debug("Blockservice GetBlock: Not found") + if err == blockstore.ErrNotFound { + return nil, ErrNotFound + } + + return nil, err +} + +// GetBlocks gets a list of blocks asynchronously and returns through +// the returned channel. +// NB: No guarantees are made about order. +func (s *blockService) GetBlocks(ctx context.Context, ks []cid.Cid) <-chan blocks.Block { + return getBlocks(ctx, ks, s.blockstore, s.getExchange) // hash security +} + +func getBlocks(ctx context.Context, ks []cid.Cid, bs blockstore.Blockstore, fget func() exchange.Fetcher) <-chan blocks.Block { + out := make(chan blocks.Block) + + go func() { + defer close(out) + + k := 0 + for _, c := range ks { + // hash security + if err := verifcid.ValidateCid(c); err == nil { + ks[k] = c + k++ + } else { + log.Errorf("unsafe CID (%s) passed to blockService.GetBlocks: %s", c, err) + } + } + ks = ks[:k] + + var misses []cid.Cid + for _, c := range ks { + hit, err := bs.Get(c) + if err != nil { + misses = append(misses, c) + continue + } + select { + case out <- hit: + case <-ctx.Done(): + return + } + } + + if len(misses) == 0 { + return + } + + f := fget() // don't load exchange unless we have to + rblocks, err := f.GetBlocks(ctx, misses) + if err != nil { + log.Debugf("Error with GetBlocks: %s", err) + return + } + + for b := range rblocks { + log.Event(ctx, "BlockService.BlockFetched", b.Cid()) + select { + case out <- b: + case <-ctx.Done(): + return + } + } + }() + return out +} + +// DeleteBlock deletes a block in the blockservice from the datastore +func (s *blockService) DeleteBlock(c cid.Cid) error { + err := s.blockstore.DeleteBlock(c) + if err == nil { + log.Event(context.TODO(), "BlockService.BlockDeleted", c) + } + return err +} + +func (s *blockService) Close() error { + log.Debug("blockservice is shutting down...") + return s.exchange.Close() +} + +// Session is a helper type to provide higher level access to bitswap sessions +type Session struct { + bs blockstore.Blockstore + ses exchange.Fetcher + sessEx exchange.SessionExchange + sessCtx context.Context + lk sync.Mutex +} + +func (s *Session) getSession() exchange.Fetcher { + s.lk.Lock() + defer s.lk.Unlock() + if s.ses == nil { + s.ses = s.sessEx.NewSession(s.sessCtx) + } + + return s.ses +} + +// GetBlock gets a block in the context of a request session +func (s *Session) GetBlock(ctx context.Context, c cid.Cid) (blocks.Block, error) { + return getBlock(ctx, c, s.bs, s.getSession) // hash security +} + +// GetBlocks gets blocks in the context of a request session +func (s *Session) GetBlocks(ctx context.Context, ks []cid.Cid) <-chan blocks.Block { + return getBlocks(ctx, ks, s.bs, s.getSession) // hash security +} + +var _ BlockGetter = (*Session)(nil) diff --git a/vendor/github.com/ipfs/go-blockservice/go.mod b/vendor/github.com/ipfs/go-blockservice/go.mod new file mode 100644 index 00000000..b972140c --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/go.mod @@ -0,0 +1,18 @@ +module github.com/ipfs/go-blockservice + +require ( + github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 // indirect + github.com/ipfs/go-bitswap v0.0.3 + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ipfs-blockstore v0.0.1 + github.com/ipfs/go-ipfs-blocksutil v0.0.1 + github.com/ipfs/go-ipfs-delay v0.0.1 + github.com/ipfs/go-ipfs-exchange-interface v0.0.1 + github.com/ipfs/go-ipfs-exchange-offline v0.0.1 + github.com/ipfs/go-ipfs-routing v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-verifcid v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-blockservice/go.sum b/vendor/github.com/ipfs/go-blockservice/go.sum new file mode 100644 index 00000000..7f3e2067 --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/go.sum @@ -0,0 +1,279 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-bitswap v0.0.1 h1:Xx1ma7TWy9ISOx5zFq5YVQyrTHzUP4GkRPMsZokHxAg= +github.com/ipfs/go-bitswap v0.0.1/go.mod h1:z+tP3h+HTJ810n1R5yMy2ccKFffJ2F6Vqm/5Bf7vs2c= +github.com/ipfs/go-bitswap v0.0.3 h1:uFcSI9dkjUn67S7IM60vr2wA27aAvn8o9xYjaQCug3o= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.1 h1:oEjzhRzymY7NILTMzOKNVOpNZGpcQHrHriWw91pbJNM= +github.com/libp2p/go-libp2p v0.0.1/go.mod h1:bmRs8I0vwn6iRaVssZnJx/epY6WPSKiLoK1vyle4EX0= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.1/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.1 h1:on/zju7XE+JXc8gH+vTKmIh2UJFC1K8kGnJYluQrlz4= +github.com/libp2p/go-libp2p-nat v0.0.1/go.mod h1:4L6ajyUIlJvx1Cbh5pc6Ma6vMDpKXf3GgLO5u7W0oQ4= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-blockservice/package.json b/vendor/github.com/ipfs/go-blockservice/package.json new file mode 100644 index 00000000..6d3a9b94 --- /dev/null +++ b/vendor/github.com/ipfs/go-blockservice/package.json @@ -0,0 +1,54 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/ipfs/go-blockservice" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-blockservice" + }, + "gxDependencies": [ + { + "author": "why", + "hash": "QmVNRbcH1kKEQUVhCsH75kTGUVFMw2b7zEWyFKyfCwmJjo", + "name": "go-bitswap", + "version": "1.1.31" + }, + { + "author": "hsanjuan", + "hash": "Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS", + "name": "go-ipfs-exchange-offline", + "version": "0.1.7" + }, + { + "author": "jbenet", + "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", + "name": "go-datastore", + "version": "3.6.1" + }, + { + "author": "hsanjuan", + "hash": "QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA", + "name": "go-ipfs-blockstore", + "version": "0.1.8" + }, + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "why", + "hash": "QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa", + "name": "go-verifcid", + "version": "0.1.2" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-blockservice", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.31" +} + diff --git a/vendor/github.com/ipfs/go-cid/.gitignore b/vendor/github.com/ipfs/go-cid/.gitignore new file mode 100644 index 00000000..aaea8ed0 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/.gitignore @@ -0,0 +1 @@ +cid-fuzz.zip diff --git a/vendor/github.com/ipfs/go-cid/.travis.yml b/vendor/github.com/ipfs/go-cid/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-cid/LICENSE b/vendor/github.com/ipfs/go-cid/LICENSE new file mode 100644 index 00000000..0e323020 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Protocol Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-cid/Makefile b/vendor/github.com/ipfs/go-cid/Makefile new file mode 100644 index 00000000..e6bdd2c9 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/Makefile @@ -0,0 +1,16 @@ +all: deps + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +covertools: + go get github.com/mattn/goveralls + go get golang.org/x/tools/cmd/cover + +deps: gx covertools + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo diff --git a/vendor/github.com/ipfs/go-cid/README.md b/vendor/github.com/ipfs/go-cid/README.md new file mode 100644 index 00000000..866740ec --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/README.md @@ -0,0 +1,125 @@ +go-cid +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-cid?status.svg)](https://godoc.org/github.com/ipfs/go-cid) +[![Coverage Status](https://coveralls.io/repos/github/ipfs/go-cid/badge.svg?branch=master)](https://coveralls.io/github/ipfs/go-cid?branch=master) +[![Travis CI](https://travis-ci.org/ipfs/go-cid.svg?branch=master)](https://travis-ci.org/ipfs/go-cid) + +> A package to handle content IDs in Go. + +This is an implementation in Go of the [CID spec](https://github.com/ipld/cid). +It is used in `go-ipfs` and related packages to refer to a typed hunk of data. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-cid` is a standard Go module which can be installed with: + +```sh +go get github.com/ipfs/go-cid +``` + +Note that `go-cid` is packaged with Gx, so it is recommended to use Gx to install and use it (see Usage section). + +## Usage + +### Using Gx and Gx-go + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/ipfs/go-cid +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +### Running tests + +Before running tests, please run: + +```sh +make deps +``` + +This will make sure that dependencies are rewritten to known working versions. + +### Examples + +#### Parsing string input from users + +```go +// Create a cid from a marshaled string +c, err := cid.Decode("zdvgqEMYmNeH5fKciougvQcfzMcNjF3Z1tPouJ8C7pc3pe63k") +if err != nil {...} + +fmt.Println("Got CID: ", c) +``` + +#### Creating a CID from scratch + +```go +// Create a cid manually by specifying the 'prefix' parameters +pref := cid.Prefix{ + Version: 1, + Codec: cid.Raw, + MhType: mh.SHA2_256, + MhLength: -1, // default length +} + +// And then feed it some data +c, err := pref.Sum([]byte("Hello World!")) +if err != nil {...} + +fmt.Println("Created CID: ", c) +``` + +#### Check if two CIDs match + +```go +// To test if two cid's are equivalent, be sure to use the 'Equals' method: +if c1.Equals(c2) { + fmt.Println("These two refer to the same exact data!") +} +``` + +#### Check if some data matches a given CID + +```go +// To check if some data matches a given cid, +// Get your CIDs prefix, and use that to sum the data in question: +other, err := c.Prefix().Sum(mydata) +if err != nil {...} + +if !c.Equals(other) { + fmt.Println("This data is different.") +} + +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/ipfs/go-cid/builder.go b/vendor/github.com/ipfs/go-cid/builder.go new file mode 100644 index 00000000..a1688327 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/builder.go @@ -0,0 +1,74 @@ +package cid + +import ( + mh "github.com/multiformats/go-multihash" +) + +type Builder interface { + Sum(data []byte) (Cid, error) + GetCodec() uint64 + WithCodec(uint64) Builder +} + +type V0Builder struct{} + +type V1Builder struct { + Codec uint64 + MhType uint64 + MhLength int // MhLength <= 0 means the default length +} + +func (p Prefix) GetCodec() uint64 { + return p.Codec +} + +func (p Prefix) WithCodec(c uint64) Builder { + if c == p.Codec { + return p + } + p.Codec = c + if c != DagProtobuf { + p.Version = 1 + } + return p +} + +func (p V0Builder) Sum(data []byte) (Cid, error) { + hash, err := mh.Sum(data, mh.SHA2_256, -1) + if err != nil { + return Undef, err + } + return NewCidV0(hash), nil +} + +func (p V0Builder) GetCodec() uint64 { + return DagProtobuf +} + +func (p V0Builder) WithCodec(c uint64) Builder { + if c == DagProtobuf { + return p + } + return V1Builder{Codec: c, MhType: mh.SHA2_256} +} + +func (p V1Builder) Sum(data []byte) (Cid, error) { + mhLen := p.MhLength + if mhLen <= 0 { + mhLen = -1 + } + hash, err := mh.Sum(data, p.MhType, mhLen) + if err != nil { + return Undef, err + } + return NewCidV1(p.Codec, hash), nil +} + +func (p V1Builder) GetCodec() uint64 { + return p.Codec +} + +func (p V1Builder) WithCodec(c uint64) Builder { + p.Codec = c + return p +} diff --git a/vendor/github.com/ipfs/go-cid/cid.go b/vendor/github.com/ipfs/go-cid/cid.go new file mode 100644 index 00000000..7565edf6 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/cid.go @@ -0,0 +1,601 @@ +// Package cid implements the Content-IDentifiers specification +// (https://github.com/ipld/cid) in Go. CIDs are +// self-describing content-addressed identifiers useful for +// distributed information systems. CIDs are used in the IPFS +// (https://ipfs.io) project ecosystem. +// +// CIDs have two major versions. A CIDv0 corresponds to a multihash of type +// DagProtobuf, is deprecated and exists for compatibility reasons. Usually, +// CIDv1 should be used. +// +// A CIDv1 has four parts: +// +// ::= +// +// As shown above, the CID implementation relies heavily on Multiformats, +// particularly Multibase +// (https://github.com/multiformats/go-multibase), Multicodec +// (https://github.com/multiformats/multicodec) and Multihash +// implementations (https://github.com/multiformats/go-multihash). +package cid + +import ( + "bytes" + "encoding" + "encoding/binary" + "encoding/json" + "errors" + "fmt" + "strings" + + mbase "github.com/multiformats/go-multibase" + mh "github.com/multiformats/go-multihash" +) + +// UnsupportedVersionString just holds an error message +const UnsupportedVersionString = "" + +var ( + // ErrVarintBuffSmall means that a buffer passed to the cid parser was not + // long enough, or did not contain an invalid cid + ErrVarintBuffSmall = errors.New("reading varint: buffer too small") + + // ErrVarintTooBig means that the varint in the given cid was above the + // limit of 2^64 + ErrVarintTooBig = errors.New("reading varint: varint bigger than 64bits" + + " and not supported") + + // ErrCidTooShort means that the cid passed to decode was not long + // enough to be a valid Cid + ErrCidTooShort = errors.New("cid too short") + + // ErrInvalidEncoding means that selected encoding is not supported + // by this Cid version + ErrInvalidEncoding = errors.New("invalid base encoding") +) + +// These are multicodec-packed content types. The should match +// the codes described in the authoritative document: +// https://github.com/multiformats/multicodec/blob/master/table.csv +const ( + Raw = 0x55 + + DagProtobuf = 0x70 + DagCBOR = 0x71 + + GitRaw = 0x78 + + EthBlock = 0x90 + EthBlockList = 0x91 + EthTxTrie = 0x92 + EthTx = 0x93 + EthTxReceiptTrie = 0x94 + EthTxReceipt = 0x95 + EthStateTrie = 0x96 + EthAccountSnapshot = 0x97 + EthStorageTrie = 0x98 + BitcoinBlock = 0xb0 + BitcoinTx = 0xb1 + ZcashBlock = 0xc0 + ZcashTx = 0xc1 + DecredBlock = 0xe0 + DecredTx = 0xe1 + DashBlock = 0xf0 + DashTx = 0xf1 +) + +// Codecs maps the name of a codec to its type +var Codecs = map[string]uint64{ + "v0": DagProtobuf, + "raw": Raw, + "protobuf": DagProtobuf, + "cbor": DagCBOR, + "git-raw": GitRaw, + "eth-block": EthBlock, + "eth-block-list": EthBlockList, + "eth-tx-trie": EthTxTrie, + "eth-tx": EthTx, + "eth-tx-receipt-trie": EthTxReceiptTrie, + "eth-tx-receipt": EthTxReceipt, + "eth-state-trie": EthStateTrie, + "eth-account-snapshot": EthAccountSnapshot, + "eth-storage-trie": EthStorageTrie, + "bitcoin-block": BitcoinBlock, + "bitcoin-tx": BitcoinTx, + "zcash-block": ZcashBlock, + "zcash-tx": ZcashTx, + "decred-block": DecredBlock, + "decred-tx": DecredTx, + "dash-block": DashBlock, + "dash-tx": DashTx, +} + +// CodecToStr maps the numeric codec to its name +var CodecToStr = map[uint64]string{ + Raw: "raw", + DagProtobuf: "protobuf", + DagCBOR: "cbor", + GitRaw: "git-raw", + EthBlock: "eth-block", + EthBlockList: "eth-block-list", + EthTxTrie: "eth-tx-trie", + EthTx: "eth-tx", + EthTxReceiptTrie: "eth-tx-receipt-trie", + EthTxReceipt: "eth-tx-receipt", + EthStateTrie: "eth-state-trie", + EthAccountSnapshot: "eth-account-snapshot", + EthStorageTrie: "eth-storage-trie", + BitcoinBlock: "bitcoin-block", + BitcoinTx: "bitcoin-tx", + ZcashBlock: "zcash-block", + ZcashTx: "zcash-tx", + DecredBlock: "decred-block", + DecredTx: "decred-tx", + DashBlock: "dash-block", + DashTx: "dash-tx", +} + +// NewCidV0 returns a Cid-wrapped multihash. +// They exist to allow IPFS to work with Cids while keeping +// compatibility with the plain-multihash format used used in IPFS. +// NewCidV1 should be used preferentially. +func NewCidV0(mhash mh.Multihash) Cid { + // Need to make sure hash is valid for CidV0 otherwise we will + // incorrectly detect it as CidV1 in the Version() method + dec, err := mh.Decode(mhash) + if err != nil { + panic(err) + } + if dec.Code != mh.SHA2_256 || dec.Length != 32 { + panic("invalid hash for cidv0") + } + return Cid{string(mhash)} +} + +// NewCidV1 returns a new Cid using the given multicodec-packed +// content type. +func NewCidV1(codecType uint64, mhash mh.Multihash) Cid { + hashlen := len(mhash) + // two 8 bytes (max) numbers plus hash + buf := make([]byte, 2*binary.MaxVarintLen64+hashlen) + n := binary.PutUvarint(buf, 1) + n += binary.PutUvarint(buf[n:], codecType) + cn := copy(buf[n:], mhash) + if cn != hashlen { + panic("copy hash length is inconsistent") + } + + return Cid{string(buf[:n+hashlen])} +} + +var _ encoding.BinaryMarshaler = Cid{} +var _ encoding.BinaryUnmarshaler = (*Cid)(nil) +var _ encoding.TextMarshaler = Cid{} +var _ encoding.TextUnmarshaler = (*Cid)(nil) + +// Cid represents a self-describing content addressed +// identifier. It is formed by a Version, a Codec (which indicates +// a multicodec-packed content type) and a Multihash. +type Cid struct{ str string } + +// Undef can be used to represent a nil or undefined Cid, using Cid{} +// directly is also acceptable. +var Undef = Cid{} + +// Defined returns true if a Cid is defined +// Calling any other methods on an undefined Cid will result in +// undefined behavior. +func (c Cid) Defined() bool { + return c.str != "" +} + +// Parse is a short-hand function to perform Decode, Cast etc... on +// a generic interface{} type. +func Parse(v interface{}) (Cid, error) { + switch v2 := v.(type) { + case string: + if strings.Contains(v2, "/ipfs/") { + return Decode(strings.Split(v2, "/ipfs/")[1]) + } + return Decode(v2) + case []byte: + return Cast(v2) + case mh.Multihash: + return NewCidV0(v2), nil + case Cid: + return v2, nil + default: + return Undef, fmt.Errorf("can't parse %+v as Cid", v2) + } +} + +// Decode parses a Cid-encoded string and returns a Cid object. +// For CidV1, a Cid-encoded string is primarily a multibase string: +// +// +// +// The base-encoded string represents a: +// +// +// +// Decode will also detect and parse CidV0 strings. Strings +// starting with "Qm" are considered CidV0 and treated directly +// as B58-encoded multihashes. +func Decode(v string) (Cid, error) { + if len(v) < 2 { + return Undef, ErrCidTooShort + } + + if len(v) == 46 && v[:2] == "Qm" { + hash, err := mh.FromB58String(v) + if err != nil { + return Undef, err + } + + return NewCidV0(hash), nil + } + + _, data, err := mbase.Decode(v) + if err != nil { + return Undef, err + } + + return Cast(data) +} + +// Extract the encoding from a Cid. If Decode on the same string did +// not return an error neither will this function. +func ExtractEncoding(v string) (mbase.Encoding, error) { + if len(v) < 2 { + return -1, ErrCidTooShort + } + + if len(v) == 46 && v[:2] == "Qm" { + return mbase.Base58BTC, nil + } + + encoding := mbase.Encoding(v[0]) + + // check encoding is valid + _, err := mbase.NewEncoder(encoding) + if err != nil { + return -1, err + } + + return encoding, nil +} + +func uvError(read int) error { + switch { + case read == 0: + return ErrVarintBuffSmall + case read < 0: + return ErrVarintTooBig + default: + return nil + } +} + +// Cast takes a Cid data slice, parses it and returns a Cid. +// For CidV1, the data buffer is in the form: +// +// +// +// CidV0 are also supported. In particular, data buffers starting +// with length 34 bytes, which starts with bytes [18,32...] are considered +// binary multihashes. +// +// Please use decode when parsing a regular Cid string, as Cast does not +// expect multibase-encoded data. Cast accepts the output of Cid.Bytes(). +func Cast(data []byte) (Cid, error) { + if len(data) == 34 && data[0] == 18 && data[1] == 32 { + h, err := mh.Cast(data) + if err != nil { + return Undef, err + } + + return NewCidV0(h), nil + } + + vers, n := binary.Uvarint(data) + if err := uvError(n); err != nil { + return Undef, err + } + + if vers != 1 { + return Undef, fmt.Errorf("expected 1 as the cid version number, got: %d", vers) + } + + _, cn := binary.Uvarint(data[n:]) + if err := uvError(cn); err != nil { + return Undef, err + } + + rest := data[n+cn:] + h, err := mh.Cast(rest) + if err != nil { + return Undef, err + } + + return Cid{string(data[0 : n+cn+len(h)])}, nil +} + +// UnmarshalBinary is equivalent to Cast(). It implements the +// encoding.BinaryUnmarshaler interface. +func (c *Cid) UnmarshalBinary(data []byte) error { + casted, err := Cast(data) + if err != nil { + return err + } + c.str = casted.str + return nil +} + +// UnmarshalText is equivalent to Decode(). It implements the +// encoding.TextUnmarshaler interface. +func (c *Cid) UnmarshalText(text []byte) error { + decodedCid, err := Decode(string(text)) + if err != nil { + return err + } + c.str = decodedCid.str + return nil +} + +// Version returns the Cid version. +func (c Cid) Version() uint64 { + if len(c.str) == 34 && c.str[0] == 18 && c.str[1] == 32 { + return 0 + } + return 1 +} + +// Type returns the multicodec-packed content type of a Cid. +func (c Cid) Type() uint64 { + if c.Version() == 0 { + return DagProtobuf + } + _, n := uvarint(c.str) + codec, _ := uvarint(c.str[n:]) + return codec +} + +// String returns the default string representation of a +// Cid. Currently, Base58 is used as the encoding for the +// multibase string. +func (c Cid) String() string { + switch c.Version() { + case 0: + return c.Hash().B58String() + case 1: + mbstr, err := mbase.Encode(mbase.Base58BTC, c.Bytes()) + if err != nil { + panic("should not error with hardcoded mbase: " + err.Error()) + } + + return mbstr + default: + panic("not possible to reach this point") + } +} + +// String returns the string representation of a Cid +// encoded is selected base +func (c Cid) StringOfBase(base mbase.Encoding) (string, error) { + switch c.Version() { + case 0: + if base != mbase.Base58BTC { + return "", ErrInvalidEncoding + } + return c.Hash().B58String(), nil + case 1: + return mbase.Encode(base, c.Bytes()) + default: + panic("not possible to reach this point") + } +} + +// Encode return the string representation of a Cid in a given base +// when applicable. Version 0 Cid's are always in Base58 as they do +// not take a multibase prefix. +func (c Cid) Encode(base mbase.Encoder) string { + switch c.Version() { + case 0: + return c.Hash().B58String() + case 1: + return base.Encode(c.Bytes()) + default: + panic("not possible to reach this point") + } +} + +// Hash returns the multihash contained by a Cid. +func (c Cid) Hash() mh.Multihash { + bytes := c.Bytes() + + if c.Version() == 0 { + return mh.Multihash(bytes) + } + + // skip version length + _, n1 := binary.Uvarint(bytes) + // skip codec length + _, n2 := binary.Uvarint(bytes[n1:]) + + return mh.Multihash(bytes[n1+n2:]) +} + +// Bytes returns the byte representation of a Cid. +// The output of bytes can be parsed back into a Cid +// with Cast(). +func (c Cid) Bytes() []byte { + return []byte(c.str) +} + +// MarshalBinary is equivalent to Bytes(). It implements the +// encoding.BinaryMarshaler interface. +func (c Cid) MarshalBinary() ([]byte, error) { + return c.Bytes(), nil +} + +// MarshalText is equivalent to String(). It implements the +// encoding.TextMarshaler interface. +func (c Cid) MarshalText() ([]byte, error) { + return []byte(c.String()), nil +} + +// Equals checks that two Cids are the same. +// In order for two Cids to be considered equal, the +// Version, the Codec and the Multihash must match. +func (c Cid) Equals(o Cid) bool { + return c == o +} + +// UnmarshalJSON parses the JSON representation of a Cid. +func (c *Cid) UnmarshalJSON(b []byte) error { + if len(b) < 2 { + return fmt.Errorf("invalid cid json blob") + } + obj := struct { + CidTarget string `json:"/"` + }{} + objptr := &obj + err := json.Unmarshal(b, &objptr) + if err != nil { + return err + } + if objptr == nil { + *c = Cid{} + return nil + } + + if obj.CidTarget == "" { + return fmt.Errorf("cid was incorrectly formatted") + } + + out, err := Decode(obj.CidTarget) + if err != nil { + return err + } + + *c = out + + return nil +} + +// MarshalJSON procudes a JSON representation of a Cid, which looks as follows: +// +// { "/": "" } +// +// Note that this formatting comes from the IPLD specification +// (https://github.com/ipld/specs/tree/master/ipld) +func (c Cid) MarshalJSON() ([]byte, error) { + if !c.Defined() { + return []byte("null"), nil + } + return []byte(fmt.Sprintf("{\"/\":\"%s\"}", c.String())), nil +} + +// KeyString returns the binary representation of the Cid as a string +func (c Cid) KeyString() string { + return c.str +} + +// Loggable returns a Loggable (as defined by +// https://godoc.org/github.com/ipfs/go-log). +func (c Cid) Loggable() map[string]interface{} { + return map[string]interface{}{ + "cid": c, + } +} + +// Prefix builds and returns a Prefix out of a Cid. +func (c Cid) Prefix() Prefix { + dec, _ := mh.Decode(c.Hash()) // assuming we got a valid multiaddr, this will not error + return Prefix{ + MhType: dec.Code, + MhLength: dec.Length, + Version: c.Version(), + Codec: c.Type(), + } +} + +// Prefix represents all the metadata of a Cid, +// that is, the Version, the Codec, the Multihash type +// and the Multihash length. It does not contains +// any actual content information. +// NOTE: The use -1 in MhLength to mean default length is deprecated, +// use the V0Builder or V1Builder structures instead +type Prefix struct { + Version uint64 + Codec uint64 + MhType uint64 + MhLength int +} + +// Sum uses the information in a prefix to perform a multihash.Sum() +// and return a newly constructed Cid with the resulting multihash. +func (p Prefix) Sum(data []byte) (Cid, error) { + length := p.MhLength + if p.MhType == mh.ID { + length = -1 + } + + hash, err := mh.Sum(data, p.MhType, length) + if err != nil { + return Undef, err + } + + switch p.Version { + case 0: + return NewCidV0(hash), nil + case 1: + return NewCidV1(p.Codec, hash), nil + default: + return Undef, fmt.Errorf("invalid cid version") + } +} + +// Bytes returns a byte representation of a Prefix. It looks like: +// +// +func (p Prefix) Bytes() []byte { + buf := make([]byte, 4*binary.MaxVarintLen64) + n := binary.PutUvarint(buf, p.Version) + n += binary.PutUvarint(buf[n:], p.Codec) + n += binary.PutUvarint(buf[n:], uint64(p.MhType)) + n += binary.PutUvarint(buf[n:], uint64(p.MhLength)) + return buf[:n] +} + +// PrefixFromBytes parses a Prefix-byte representation onto a +// Prefix. +func PrefixFromBytes(buf []byte) (Prefix, error) { + r := bytes.NewReader(buf) + vers, err := binary.ReadUvarint(r) + if err != nil { + return Prefix{}, err + } + + codec, err := binary.ReadUvarint(r) + if err != nil { + return Prefix{}, err + } + + mhtype, err := binary.ReadUvarint(r) + if err != nil { + return Prefix{}, err + } + + mhlen, err := binary.ReadUvarint(r) + if err != nil { + return Prefix{}, err + } + + return Prefix{ + Version: vers, + Codec: codec, + MhType: mhtype, + MhLength: int(mhlen), + }, nil +} diff --git a/vendor/github.com/ipfs/go-cid/cid_fuzz.go b/vendor/github.com/ipfs/go-cid/cid_fuzz.go new file mode 100644 index 00000000..99842b53 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/cid_fuzz.go @@ -0,0 +1,37 @@ +// +build gofuzz + +package cid + +func Fuzz(data []byte) int { + cid, err := Cast(data) + + if err != nil { + return 0 + } + + _ = cid.Bytes() + _ = cid.String() + p := cid.Prefix() + _ = p.Bytes() + + if !cid.Equals(cid) { + panic("inequality") + } + + // json loop + json, err := cid.MarshalJSON() + if err != nil { + panic(err.Error()) + } + cid2 := Cid{} + err = cid2.UnmarshalJSON(json) + if err != nil { + panic(err.Error()) + } + + if !cid.Equals(cid2) { + panic("json loop not equal") + } + + return 1 +} diff --git a/vendor/github.com/ipfs/go-cid/codecov.yml b/vendor/github.com/ipfs/go-cid/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-cid/deprecated.go b/vendor/github.com/ipfs/go-cid/deprecated.go new file mode 100644 index 00000000..cd889f98 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/deprecated.go @@ -0,0 +1,28 @@ +package cid + +import ( + mh "github.com/multiformats/go-multihash" +) + +// NewPrefixV0 returns a CIDv0 prefix with the specified multihash type. +// DEPRECATED: Use V0Builder +func NewPrefixV0(mhType uint64) Prefix { + return Prefix{ + MhType: mhType, + MhLength: mh.DefaultLengths[mhType], + Version: 0, + Codec: DagProtobuf, + } +} + +// NewPrefixV1 returns a CIDv1 prefix with the specified codec and multihash +// type. +// DEPRECATED: Use V1Builder +func NewPrefixV1(codecType uint64, mhType uint64) Prefix { + return Prefix{ + MhType: mhType, + MhLength: mh.DefaultLengths[mhType], + Version: 1, + Codec: codecType, + } +} diff --git a/vendor/github.com/ipfs/go-cid/go.mod b/vendor/github.com/ipfs/go-cid/go.mod new file mode 100644 index 00000000..8e1b5f47 --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/go.mod @@ -0,0 +1,6 @@ +module github.com/ipfs/go-cid + +require ( + github.com/multiformats/go-multibase v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-cid/go.sum b/vendor/github.com/ipfs/go-cid/go.sum new file mode 100644 index 00000000..d6043b8b --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/go.sum @@ -0,0 +1,20 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-cid/package.json b/vendor/github.com/ipfs/go-cid/package.json new file mode 100644 index 00000000..c98a77ee --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/ipfs/go-cid" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-cid" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "whyrusleeping", + "hash": "QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd", + "name": "go-multibase", + "version": "0.3.0" + } + ], + "gxVersion": "0.8.0", + "language": "go", + "license": "MIT", + "name": "go-cid", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.9.3" +} + diff --git a/vendor/github.com/ipfs/go-cid/set.go b/vendor/github.com/ipfs/go-cid/set.go new file mode 100644 index 00000000..eb3b3f0d --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/set.go @@ -0,0 +1,65 @@ +package cid + +// Set is a implementation of a set of Cids, that is, a structure +// to which holds a single copy of every Cids that is added to it. +type Set struct { + set map[Cid]struct{} +} + +// NewSet initializes and returns a new Set. +func NewSet() *Set { + return &Set{set: make(map[Cid]struct{})} +} + +// Add puts a Cid in the Set. +func (s *Set) Add(c Cid) { + s.set[c] = struct{}{} +} + +// Has returns if the Set contains a given Cid. +func (s *Set) Has(c Cid) bool { + _, ok := s.set[c] + return ok +} + +// Remove deletes a Cid from the Set. +func (s *Set) Remove(c Cid) { + delete(s.set, c) +} + +// Len returns how many elements the Set has. +func (s *Set) Len() int { + return len(s.set) +} + +// Keys returns the Cids in the set. +func (s *Set) Keys() []Cid { + out := make([]Cid, 0, len(s.set)) + for k := range s.set { + out = append(out, k) + } + return out +} + +// Visit adds a Cid to the set only if it is +// not in it already. +func (s *Set) Visit(c Cid) bool { + if !s.Has(c) { + s.Add(c) + return true + } + + return false +} + +// ForEach allows to run a custom function on each +// Cid in the set. +func (s *Set) ForEach(f func(c Cid) error) error { + for c := range s.set { + err := f(c) + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/ipfs/go-cid/varint.go b/vendor/github.com/ipfs/go-cid/varint.go new file mode 100644 index 00000000..391c1f4d --- /dev/null +++ b/vendor/github.com/ipfs/go-cid/varint.go @@ -0,0 +1,34 @@ +package cid + +// Version of varint function that work with a string rather than +// []byte to avoid unnecessary allocation + +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license as given at https://golang.org/LICENSE + +// uvarint decodes a uint64 from buf and returns that value and the +// number of characters read (> 0). If an error occurred, the value is 0 +// and the number of bytes n is <= 0 meaning: +// +// n == 0: buf too small +// n < 0: value larger than 64 bits (overflow) +// and -n is the number of bytes read +// +func uvarint(buf string) (uint64, int) { + var x uint64 + var s uint + // we have a binary string so we can't use a range loope + for i := 0; i < len(buf); i++ { + b := buf[i] + if b < 0x80 { + if i > 9 || i == 9 && b > 1 { + return 0, -(i + 1) // overflow + } + return x | uint64(b)< go-cidutil implements various utilities and helper functions for working with CIDs + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-cidutil/codecov.yml b/vendor/github.com/ipfs/go-cidutil/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-cidutil/format.go b/vendor/github.com/ipfs/go-cidutil/format.go new file mode 100644 index 00000000..21e157df --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/format.go @@ -0,0 +1,197 @@ +package cidutil + +import ( + "bytes" + "fmt" + + c "github.com/ipfs/go-cid" + mb "github.com/multiformats/go-multibase" + mh "github.com/multiformats/go-multihash" +) + +// FormatRef is a string documenting the format string for the Format function +const FormatRef = ` + %% literal % + %b multibase name + %B multibase code + %v version string + %V version number + %c codec name + %C codec code + %h multihash name + %H multihash code + %L hash digest length + %m multihash encoded in base %b (with multibase prefix) + %M multihash encoded in base %b without multibase prefix + %d hash digest encoded in base %b (with multibase prefix) + %D hash digest encoded in base %b without multibase prefix + %s cid string encoded in base %b (1) + %S cid string encoded in base %b without multibase prefix + %P cid prefix: %v-%c-%h-%L + +(1) For CID version 0 the multibase must be base58btc and no prefix is +used. For Cid version 1 the multibase prefix is included. +` + +// Format formats a cid according to the format specificer as +// documented in the FormatRef constant +func Format(fmtStr string, base mb.Encoding, cid c.Cid) (string, error) { + p := cid.Prefix() + var out bytes.Buffer + var err error + encoder, err := mb.NewEncoder(base) + if err != nil { + return "", err + } + for i := 0; i < len(fmtStr); i++ { + if fmtStr[i] != '%' { + out.WriteByte(fmtStr[i]) + continue + } + i++ + if i >= len(fmtStr) { + return "", FormatStringError{"premature end of format string", ""} + } + switch fmtStr[i] { + case '%': + out.WriteByte('%') + case 'b': // base name + out.WriteString(baseToString(base)) + case 'B': // base code + out.WriteByte(byte(base)) + case 'v': // version string + fmt.Fprintf(&out, "cidv%d", p.Version) + case 'V': // version num + fmt.Fprintf(&out, "%d", p.Version) + case 'c': // codec name + out.WriteString(codecToString(p.Codec)) + case 'C': // codec code + fmt.Fprintf(&out, "%d", p.Codec) + case 'h': // hash fun name + out.WriteString(hashToString(p.MhType)) + case 'H': // hash fun code + fmt.Fprintf(&out, "%d", p.MhType) + case 'L': // hash length + fmt.Fprintf(&out, "%d", p.MhLength) + case 'm', 'M': // multihash encoded in base %b + out.WriteString(encode(encoder, cid.Hash(), fmtStr[i] == 'M')) + case 'd', 'D': // hash digest encoded in base %b + dec, err := mh.Decode(cid.Hash()) + if err != nil { + return "", err + } + out.WriteString(encode(encoder, dec.Digest, fmtStr[i] == 'D')) + case 's': // cid string encoded in base %b + str, err := cid.StringOfBase(base) + if err != nil { + return "", err + } + out.WriteString(str) + case 'S': // cid string without base prefix + out.WriteString(encode(encoder, cid.Bytes(), true)) + case 'P': // prefix + fmt.Fprintf(&out, "cidv%d-%s-%s-%d", + p.Version, + codecToString(p.Codec), + hashToString(p.MhType), + p.MhLength, + ) + default: + return "", FormatStringError{"unrecognized specifier in format string", fmtStr[i-1 : i+1]} + } + + } + return out.String(), err +} + +// FormatStringError is the error return from Format when the format +// string is ill formed +type FormatStringError struct { + Message string + Specifier string +} + +func (e FormatStringError) Error() string { + if e.Specifier == "" { + return e.Message + } else { + return fmt.Sprintf("%s: %s", e.Message, e.Specifier) + } +} + +func baseToString(base mb.Encoding) string { + baseStr, ok := mb.EncodingToStr[base] + if !ok { + return fmt.Sprintf("base?%c", base) + } + return baseStr +} + +func codecToString(num uint64) string { + name, ok := c.CodecToStr[num] + if !ok { + return fmt.Sprintf("codec?%d", num) + } + return name +} + +func hashToString(num uint64) string { + name, ok := mh.Codes[num] + if !ok { + return fmt.Sprintf("hash?%d", num) + } + return name +} + +func encode(base mb.Encoder, data []byte, strip bool) string { + str := base.Encode(data) + if strip { + return str[1:] + } + return str +} + +// ScanForCid scans bytes for anything resembling a CID. If one is +// found `i` will point to the begging of the cid and `j` to to the +// end and the cid will be returned, otherwise `i` and `j` will point +// the end of the buffer and the cid will be `Undef`. +func ScanForCid(buf []byte) (i, j int, cid c.Cid, cidStr string) { + i = 0 + for { + i = j + for i < len(buf) && !asciiIsAlpha(buf[i]) { + i++ + } + j = i + if i == len(buf) { + return + } + for j < len(buf) && asciiIsAlpha(buf[j]) { + j++ + } + if j-i <= 1 || j-i > 128 || !supported[buf[i]] { + continue + } + var err error + cidStr = string(buf[i:j]) + cid, err = c.Decode(cidStr) + if err == nil { + return + } + } +} + +var supported = make([]bool, 256) + +func init() { + // for now base64 encoding are not supported as they contain non + // alhphanumeric characters + supportedPrefixes := []byte("QfFbBcCvVtThzZ") + for _, b := range supportedPrefixes { + supported[b] = true + } +} + +func asciiIsAlpha(b byte) bool { + return ('A' <= b && b <= 'Z') || ('a' <= b && b <= 'z') || ('0' <= b && b <= '9') +} diff --git a/vendor/github.com/ipfs/go-cidutil/go.mod b/vendor/github.com/ipfs/go-cidutil/go.mod new file mode 100644 index 00000000..eab409cc --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/go.mod @@ -0,0 +1,7 @@ +module github.com/ipfs/go-cidutil + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/multiformats/go-multibase v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-cidutil/go.sum b/vendor/github.com/ipfs/go-cidutil/go.sum new file mode 100644 index 00000000..4525c37e --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/go.sum @@ -0,0 +1,22 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-cidutil/inline.go b/vendor/github.com/ipfs/go-cidutil/inline.go new file mode 100644 index 00000000..d140e114 --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/inline.go @@ -0,0 +1,26 @@ +package cidutil + +import ( + cid "github.com/ipfs/go-cid" + mhash "github.com/multiformats/go-multihash" +) + +// InlineBuilder is a cid.Builder that will use the id multihash when the +// size of the content is no more than limit +type InlineBuilder struct { + cid.Builder // Parent Builder + Limit int // Limit (inclusive) +} + +// WithCodec implements the cid.Builder interface +func (p InlineBuilder) WithCodec(c uint64) cid.Builder { + return InlineBuilder{p.Builder.WithCodec(c), p.Limit} +} + +// Sum implements the cid.Builder interface +func (p InlineBuilder) Sum(data []byte) (cid.Cid, error) { + if len(data) > p.Limit { + return p.Builder.Sum(data) + } + return cid.V1Builder{Codec: p.GetCodec(), MhType: mhash.ID}.Sum(data) +} diff --git a/vendor/github.com/ipfs/go-cidutil/package.json b/vendor/github.com/ipfs/go-cidutil/package.json new file mode 100644 index 00000000..a286ee0e --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/package.json @@ -0,0 +1,34 @@ +{ + "author": "kevina", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/ipfs/go-cidutil" + }, + "gxDependencies": [ + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "whyrusleeping", + "hash": "QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd", + "name": "go-multibase", + "version": "0.3.0" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-cidutil", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.1" +} + diff --git a/vendor/github.com/ipfs/go-cidutil/set.go b/vendor/github.com/ipfs/go-cidutil/set.go new file mode 100644 index 00000000..ea812a13 --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/set.go @@ -0,0 +1,42 @@ +package cidutil + +import ( + "context" + + c "github.com/ipfs/go-cid" +) + +type Set = c.Set + +func NewSet() *Set { return c.NewSet() } + +// StreamingSet is an extension of Set which allows to implement back-pressure +// for the Visit function +type StreamingSet struct { + Set *Set + New chan c.Cid +} + +// NewStreamingSet initializes and returns new Set. +func NewStreamingSet() *StreamingSet { + return &StreamingSet{ + Set: c.NewSet(), + New: make(chan c.Cid), + } +} + +// Visitor creates new visitor which adds a Cids to the set and emits them to +// the set.New channel +func (s *StreamingSet) Visitor(ctx context.Context) func(c c.Cid) bool { + return func(c c.Cid) bool { + if s.Set.Visit(c) { + select { + case s.New <- c: + case <-ctx.Done(): + } + return true + } + + return false + } +} diff --git a/vendor/github.com/ipfs/go-cidutil/slice.go b/vendor/github.com/ipfs/go-cidutil/slice.go new file mode 100644 index 00000000..fa39b64d --- /dev/null +++ b/vendor/github.com/ipfs/go-cidutil/slice.go @@ -0,0 +1,30 @@ +package cidutil + +import ( + "github.com/ipfs/go-cid" + "sort" +) + +// Slice is a convenience type for sorting CIDs +type Slice []cid.Cid + +func (s Slice) Len() int { + return len(s) +} + +func (s Slice) Less(i, j int) bool { + return s[i].KeyString() < s[j].KeyString() +} + +func (s Slice) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s Slice) Sort() { + sort.Sort(s) +} + +// Sort sorts a slice of CIDs +func Sort(s []cid.Cid) { + Slice(s).Sort() +} diff --git a/vendor/github.com/ipfs/go-datastore/.gitignore b/vendor/github.com/ipfs/go-datastore/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/ipfs/go-datastore/.travis.yml b/vendor/github.com/ipfs/go-datastore/.travis.yml new file mode 100644 index 00000000..30dc421c --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race -cpu=5" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-datastore/LICENSE b/vendor/github.com/ipfs/go-datastore/LICENSE new file mode 100644 index 00000000..f2049023 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2016 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-datastore/Makefile b/vendor/github.com/ipfs/go-datastore/Makefile new file mode 100644 index 00000000..54152565 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/ipfs/go-datastore/README.md b/vendor/github.com/ipfs/go-datastore/README.md new file mode 100644 index 00000000..0f7a3c19 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/README.md @@ -0,0 +1,34 @@ +# go-datastore + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-datastore?status.svg)](https://godoc.org/github.com/ipfs/go-datastore) + +> key-value datastore interfaces + +datastore is a generic layer of abstraction for data store and database access. It is a simple API with the aim to enable application development in a datastore-agnostic way, allowing datastores to be swapped seamlessly without changing application code. Thus, one can leverage different datastores with different strengths without committing the application to one datastore throughout its lifetime. + +In addition, grouped datastores significantly simplify interesting data access patterns (such as caching and sharding). + +Based on [datastore.py](https://github.com/datastore/datastore). + +## Documentation + +https://godoc.org/github.com/ipfs/go-datastore + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-datastore/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT + diff --git a/vendor/github.com/ipfs/go-datastore/autobatch/README.md b/vendor/github.com/ipfs/go-datastore/autobatch/README.md new file mode 100644 index 00000000..9b805aba --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/autobatch/README.md @@ -0,0 +1,19 @@ +# autobatch + +Autobatch is an implementation of +[go-datastore](https://github.com/ipfs/go-datastore) that automatically batches +together writes by holding puts in memory until a certain threshold is met. +This can improve disk performance at the cost of memory in certain situations. + +## Usage + +Simply wrap your existing datastore in an autobatching layer like so: + +```go +bds := NewAutoBatching(basedstore, 128) +``` + +And make all future calls to the autobatching object. + +## License +MIT diff --git a/vendor/github.com/ipfs/go-datastore/autobatch/autobatch.go b/vendor/github.com/ipfs/go-datastore/autobatch/autobatch.go new file mode 100644 index 00000000..aeca9a45 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/autobatch/autobatch.go @@ -0,0 +1,143 @@ +// Package autobatch provides a go-datastore implementation that +// automatically batches together writes by holding puts in memory until +// a certain threshold is met. +package autobatch + +import ( + ds "github.com/ipfs/go-datastore" + dsq "github.com/ipfs/go-datastore/query" +) + +// Datastore implements a go-datatsore. +type Datastore struct { + child ds.Batching + + // TODO: discuss making ds.Batch implement the full ds.Datastore interface + buffer map[ds.Key]op + maxBufferEntries int +} + +type op struct { + delete bool + value []byte +} + +// NewAutoBatching returns a new datastore that automatically +// batches writes using the given Batching datastore. The size +// of the memory pool is given by size. +func NewAutoBatching(d ds.Batching, size int) *Datastore { + return &Datastore{ + child: d, + buffer: make(map[ds.Key]op, size), + maxBufferEntries: size, + } +} + +// Delete deletes a key/value +func (d *Datastore) Delete(k ds.Key) error { + d.buffer[k] = op{delete: true} + if len(d.buffer) > d.maxBufferEntries { + return d.Flush() + } + return nil +} + +// Get retrieves a value given a key. +func (d *Datastore) Get(k ds.Key) ([]byte, error) { + o, ok := d.buffer[k] + if ok { + if o.delete { + return nil, ds.ErrNotFound + } + return o.value, nil + } + + return d.child.Get(k) +} + +// Put stores a key/value. +func (d *Datastore) Put(k ds.Key, val []byte) error { + d.buffer[k] = op{value: val} + if len(d.buffer) > d.maxBufferEntries { + return d.Flush() + } + return nil +} + +// Flush flushes the current batch to the underlying datastore. +func (d *Datastore) Flush() error { + b, err := d.child.Batch() + if err != nil { + return err + } + + for k, o := range d.buffer { + var err error + if o.delete { + err = b.Delete(k) + if err == ds.ErrNotFound { + // Ignore these, let delete be idempotent. + err = nil + } + } else { + err = b.Put(k, o.value) + } + if err != nil { + return err + } + } + // clear out buffer + d.buffer = make(map[ds.Key]op, d.maxBufferEntries) + + return b.Commit() +} + +// Has checks if a key is stored. +func (d *Datastore) Has(k ds.Key) (bool, error) { + o, ok := d.buffer[k] + if ok { + return !o.delete, nil + } + + return d.child.Has(k) +} + +// GetSize implements Datastore.GetSize +func (d *Datastore) GetSize(k ds.Key) (int, error) { + o, ok := d.buffer[k] + if ok { + if o.delete { + return -1, ds.ErrNotFound + } + return len(o.value), nil + } + + return d.child.GetSize(k) +} + +// Query performs a query +func (d *Datastore) Query(q dsq.Query) (dsq.Results, error) { + err := d.Flush() + if err != nil { + return nil, err + } + + return d.child.Query(q) +} + +// DiskUsage implements the PersistentDatastore interface. +func (d *Datastore) DiskUsage() (uint64, error) { + return ds.DiskUsage(d.child) +} + +func (d *Datastore) Close() error { + err1 := d.Flush() + err2 := d.child.Close() + if err1 != nil { + return err1 + } + if err2 != nil { + return err2 + } + return nil +} diff --git a/vendor/github.com/ipfs/go-datastore/basic_ds.go b/vendor/github.com/ipfs/go-datastore/basic_ds.go new file mode 100644 index 00000000..19b74e26 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/basic_ds.go @@ -0,0 +1,274 @@ +package datastore + +import ( + "log" + + dsq "github.com/ipfs/go-datastore/query" +) + +// Here are some basic datastore implementations. + +// MapDatastore uses a standard Go map for internal storage. +type MapDatastore struct { + values map[Key][]byte +} + +// NewMapDatastore constructs a MapDatastore. It is _not_ thread-safe by +// default, wrap using sync.MutexWrap if you need thread safety (the answer here +// is usually yes). +func NewMapDatastore() (d *MapDatastore) { + return &MapDatastore{ + values: make(map[Key][]byte), + } +} + +// Put implements Datastore.Put +func (d *MapDatastore) Put(key Key, value []byte) (err error) { + d.values[key] = value + return nil +} + +// Get implements Datastore.Get +func (d *MapDatastore) Get(key Key) (value []byte, err error) { + val, found := d.values[key] + if !found { + return nil, ErrNotFound + } + return val, nil +} + +// Has implements Datastore.Has +func (d *MapDatastore) Has(key Key) (exists bool, err error) { + _, found := d.values[key] + return found, nil +} + +// GetSize implements Datastore.GetSize +func (d *MapDatastore) GetSize(key Key) (size int, err error) { + if v, found := d.values[key]; found { + return len(v), nil + } + return -1, ErrNotFound +} + +// Delete implements Datastore.Delete +func (d *MapDatastore) Delete(key Key) (err error) { + if _, found := d.values[key]; !found { + return ErrNotFound + } + delete(d.values, key) + return nil +} + +// Query implements Datastore.Query +func (d *MapDatastore) Query(q dsq.Query) (dsq.Results, error) { + re := make([]dsq.Entry, 0, len(d.values)) + for k, v := range d.values { + e := dsq.Entry{Key: k.String()} + if !q.KeysOnly { + e.Value = v + } + re = append(re, e) + } + r := dsq.ResultsWithEntries(q, re) + r = dsq.NaiveQueryApply(q, r) + return r, nil +} + +func (d *MapDatastore) Batch() (Batch, error) { + return NewBasicBatch(d), nil +} + +func (d *MapDatastore) Close() error { + return nil +} + +// NullDatastore stores nothing, but conforms to the API. +// Useful to test with. +type NullDatastore struct { +} + +// NewNullDatastore constructs a null datastoe +func NewNullDatastore() *NullDatastore { + return &NullDatastore{} +} + +// Put implements Datastore.Put +func (d *NullDatastore) Put(key Key, value []byte) (err error) { + return nil +} + +// Get implements Datastore.Get +func (d *NullDatastore) Get(key Key) (value []byte, err error) { + return nil, ErrNotFound +} + +// Has implements Datastore.Has +func (d *NullDatastore) Has(key Key) (exists bool, err error) { + return false, nil +} + +// Has implements Datastore.GetSize +func (d *NullDatastore) GetSize(key Key) (size int, err error) { + return -1, ErrNotFound +} + +// Delete implements Datastore.Delete +func (d *NullDatastore) Delete(key Key) (err error) { + return nil +} + +// Query implements Datastore.Query +func (d *NullDatastore) Query(q dsq.Query) (dsq.Results, error) { + return dsq.ResultsWithEntries(q, nil), nil +} + +func (d *NullDatastore) Batch() (Batch, error) { + return NewBasicBatch(d), nil +} + +func (d *NullDatastore) Close() error { + return nil +} + +// LogDatastore logs all accesses through the datastore. +type LogDatastore struct { + Name string + child Datastore +} + +// Shim is a datastore which has a child. +type Shim interface { + Datastore + + Children() []Datastore +} + +// NewLogDatastore constructs a log datastore. +func NewLogDatastore(ds Datastore, name string) *LogDatastore { + if len(name) < 1 { + name = "LogDatastore" + } + return &LogDatastore{Name: name, child: ds} +} + +// Children implements Shim +func (d *LogDatastore) Children() []Datastore { + return []Datastore{d.child} +} + +// Put implements Datastore.Put +func (d *LogDatastore) Put(key Key, value []byte) (err error) { + log.Printf("%s: Put %s\n", d.Name, key) + // log.Printf("%s: Put %s ```%s```", d.Name, key, value) + return d.child.Put(key, value) +} + +// Get implements Datastore.Get +func (d *LogDatastore) Get(key Key) (value []byte, err error) { + log.Printf("%s: Get %s\n", d.Name, key) + return d.child.Get(key) +} + +// Has implements Datastore.Has +func (d *LogDatastore) Has(key Key) (exists bool, err error) { + log.Printf("%s: Has %s\n", d.Name, key) + return d.child.Has(key) +} + +// GetSize implements Datastore.GetSize +func (d *LogDatastore) GetSize(key Key) (size int, err error) { + log.Printf("%s: GetSize %s\n", d.Name, key) + return d.child.GetSize(key) +} + +// Delete implements Datastore.Delete +func (d *LogDatastore) Delete(key Key) (err error) { + log.Printf("%s: Delete %s\n", d.Name, key) + return d.child.Delete(key) +} + +// DiskUsage implements the PersistentDatastore interface. +func (d *LogDatastore) DiskUsage() (uint64, error) { + log.Printf("%s: DiskUsage\n", d.Name) + return DiskUsage(d.child) +} + +// Query implements Datastore.Query +func (d *LogDatastore) Query(q dsq.Query) (dsq.Results, error) { + log.Printf("%s: Query\n", d.Name) + log.Printf("%s: q.Prefix: %s\n", d.Name, q.Prefix) + log.Printf("%s: q.KeysOnly: %v\n", d.Name, q.KeysOnly) + log.Printf("%s: q.Filters: %d\n", d.Name, len(q.Filters)) + log.Printf("%s: q.Orders: %d\n", d.Name, len(q.Orders)) + log.Printf("%s: q.Offset: %d\n", d.Name, q.Offset) + + return d.child.Query(q) +} + +// LogBatch logs all accesses through the batch. +type LogBatch struct { + Name string + child Batch +} + +func (d *LogDatastore) Batch() (Batch, error) { + log.Printf("%s: Batch\n", d.Name) + if bds, ok := d.child.(Batching); ok { + b, err := bds.Batch() + + if err != nil { + return nil, err + } + return &LogBatch{ + Name: d.Name, + child: b, + }, nil + } + return nil, ErrBatchUnsupported +} + +// Put implements Batch.Put +func (d *LogBatch) Put(key Key, value []byte) (err error) { + log.Printf("%s: BatchPut %s\n", d.Name, key) + // log.Printf("%s: Put %s ```%s```", d.Name, key, value) + return d.child.Put(key, value) +} + +// Delete implements Batch.Delete +func (d *LogBatch) Delete(key Key) (err error) { + log.Printf("%s: BatchDelete %s\n", d.Name, key) + return d.child.Delete(key) +} + +// Commit implements Batch.Commit +func (d *LogBatch) Commit() (err error) { + log.Printf("%s: BatchCommit\n", d.Name) + return d.child.Commit() +} + +func (d *LogDatastore) Close() error { + log.Printf("%s: Close\n", d.Name) + return d.child.Close() +} + +func (d *LogDatastore) Check() error { + if c, ok := d.child.(CheckedDatastore); ok { + return c.Check() + } + return nil +} + +func (d *LogDatastore) Scrub() error { + if c, ok := d.child.(ScrubbedDatastore); ok { + return c.Scrub() + } + return nil +} + +func (d *LogDatastore) CollectGarbage() error { + if c, ok := d.child.(GCDatastore); ok { + return c.CollectGarbage() + } + return nil +} diff --git a/vendor/github.com/ipfs/go-datastore/batch.go b/vendor/github.com/ipfs/go-datastore/batch.go new file mode 100644 index 00000000..57880dd2 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/batch.go @@ -0,0 +1,52 @@ +package datastore + +type op struct { + delete bool + value []byte +} + +// basicBatch implements the transaction interface for datastores who do +// not have any sort of underlying transactional support +type basicBatch struct { + ops map[Key]op + + target Datastore +} + +func NewBasicBatch(ds Datastore) Batch { + return &basicBatch{ + ops: make(map[Key]op), + target: ds, + } +} + +func (bt *basicBatch) Put(key Key, val []byte) error { + bt.ops[key] = op{value: val} + return nil +} + +func (bt *basicBatch) Delete(key Key) error { + bt.ops[key] = op{delete: true} + return nil +} + +func (bt *basicBatch) Commit() error { + var err error + for k, op := range bt.ops { + if op.delete { + err = bt.target.Delete(k) + // We could try to do something smarter but I really + // don't care. Delete should be idempotent anyways. + if err == ErrNotFound { + err = nil + } + } else { + err = bt.target.Put(k, op.value) + } + if err != nil { + break + } + } + + return err +} diff --git a/vendor/github.com/ipfs/go-datastore/datastore.go b/vendor/github.com/ipfs/go-datastore/datastore.go new file mode 100644 index 00000000..eec1932c --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/datastore.go @@ -0,0 +1,239 @@ +package datastore + +import ( + "errors" + "io" + "time" + + query "github.com/ipfs/go-datastore/query" +) + +/* +Datastore represents storage for any key-value pair. + +Datastores are general enough to be backed by all kinds of different storage: +in-memory caches, databases, a remote datastore, flat files on disk, etc. + +The general idea is to wrap a more complicated storage facility in a simple, +uniform interface, keeping the freedom of using the right tools for the job. +In particular, a Datastore can aggregate other datastores in interesting ways, +like sharded (to distribute load) or tiered access (caches before databases). + +While Datastores should be written general enough to accept all sorts of +values, some implementations will undoubtedly have to be specific (e.g. SQL +databases where fields should be decomposed into columns), particularly to +support queries efficiently. Moreover, certain datastores may enforce certain +types of values (e.g. requiring an io.Reader, a specific struct, etc) or +serialization formats (JSON, Protobufs, etc). + +IMPORTANT: No Datastore should ever Panic! This is a cross-module interface, +and thus it should behave predictably and handle exceptional conditions with +proper error reporting. Thus, all Datastore calls may return errors, which +should be checked by callers. +*/ +type Datastore interface { + Read + Write + io.Closer +} + +// Write is the write-side of the Datastore interface. +type Write interface { + // Put stores the object `value` named by `key`. + // + // The generalized Datastore interface does not impose a value type, + // allowing various datastore middleware implementations (which do not + // handle the values directly) to be composed together. + // + // Ultimately, the lowest-level datastore will need to do some value checking + // or risk getting incorrect values. It may also be useful to expose a more + // type-safe interface to your application, and do the checking up-front. + Put(key Key, value []byte) error + + // Delete removes the value for given `key`. + Delete(key Key) error +} + +// Read is the read-side of the Datastore interface. +type Read interface { + // Get retrieves the object `value` named by `key`. + // Get will return ErrNotFound if the key is not mapped to a value. + Get(key Key) (value []byte, err error) + + // Has returns whether the `key` is mapped to a `value`. + // In some contexts, it may be much cheaper only to check for existence of + // a value, rather than retrieving the value itself. (e.g. HTTP HEAD). + // The default implementation is found in `GetBackedHas`. + Has(key Key) (exists bool, err error) + + // GetSize returns the size of the `value` named by `key`. + // In some contexts, it may be much cheaper to only get the size of the + // value rather than retrieving the value itself. + GetSize(key Key) (size int, err error) + + // Query searches the datastore and returns a query result. This function + // may return before the query actually runs. To wait for the query: + // + // result, _ := ds.Query(q) + // + // // use the channel interface; result may come in at different times + // for entry := range result.Next() { ... } + // + // // or wait for the query to be completely done + // entries, _ := result.Rest() + // for entry := range entries { ... } + // + Query(q query.Query) (query.Results, error) +} + +// Batching datastores support deferred, grouped updates to the database. +// `Batch`es do NOT have transactional semantics: updates to the underlying +// datastore are not guaranteed to occur in the same iota of time. Similarly, +// batched updates will not be flushed to the underlying datastore until +// `Commit` has been called. `Txn`s from a `TxnDatastore` have all the +// capabilities of a `Batch`, but the reverse is NOT true. +type Batching interface { + Datastore + + Batch() (Batch, error) +} + +// ErrBatchUnsupported is returned if the by Batch if the Datastore doesn't +// actually support batching. +var ErrBatchUnsupported = errors.New("this datastore does not support batching") + +// CheckedDatastore is an interface that should be implemented by datastores +// which may need checking on-disk data integrity. +type CheckedDatastore interface { + Datastore + + Check() error +} + +// CheckedDatastore is an interface that should be implemented by datastores +// which want to provide a mechanism to check data integrity and/or +// error correction. +type ScrubbedDatastore interface { + Datastore + + Scrub() error +} + +// GCDatastore is an interface that should be implemented by datastores which +// don't free disk space by just removing data from them. +type GCDatastore interface { + Datastore + + CollectGarbage() error +} + +// PersistentDatastore is an interface that should be implemented by datastores +// which can report disk usage. +type PersistentDatastore interface { + Datastore + + // DiskUsage returns the space used by a datastore, in bytes. + DiskUsage() (uint64, error) +} + +// DiskUsage checks if a Datastore is a +// PersistentDatastore and returns its DiskUsage(), +// otherwise returns 0. +func DiskUsage(d Datastore) (uint64, error) { + persDs, ok := d.(PersistentDatastore) + if !ok { + return 0, nil + } + return persDs.DiskUsage() +} + +// TTLDatastore is an interface that should be implemented by datastores that +// support expiring entries. +type TTLDatastore interface { + Datastore + TTL +} + +// TTL encapulates the methods that deal with entries with time-to-live. +type TTL interface { + PutWithTTL(key Key, value []byte, ttl time.Duration) error + SetTTL(key Key, ttl time.Duration) error + GetExpiration(key Key) (time.Time, error) +} + +// Txn extends the Datastore type. Txns allow users to batch queries and +// mutations to the Datastore into atomic groups, or transactions. Actions +// performed on a transaction will not take hold until a successful call to +// Commit has been made. Likewise, transactions can be aborted by calling +// Discard before a successful Commit has been made. +type Txn interface { + Read + Write + + // Commit finalizes a transaction, attempting to commit it to the Datastore. + // May return an error if the transaction has gone stale. The presence of an + // error is an indication that the data was not committed to the Datastore. + Commit() error + // Discard throws away changes recorded in a transaction without committing + // them to the underlying Datastore. Any calls made to Discard after Commit + // has been successfully called will have no effect on the transaction and + // state of the Datastore, making it safe to defer. + Discard() +} + +// TxnDatastore is an interface that should be implemented by datastores that +// support transactions. +type TxnDatastore interface { + Datastore + + NewTransaction(readOnly bool) (Txn, error) +} + +// Errors + +// ErrNotFound is returned by Get, Has, and Delete when a datastore does not +// map the given key to a value. +var ErrNotFound = errors.New("datastore: key not found") + +// ErrInvalidType is returned by Put when a given value is incopatible with +// the type the datastore supports. This means a conversion (or serialization) +// is needed beforehand. +var ErrInvalidType = errors.New("datastore: invalid type error") + +// GetBackedHas provides a default Datastore.Has implementation. +// It exists so Datastore.Has implementations can use it, like so: +// +// func (*d SomeDatastore) Has(key Key) (exists bool, err error) { +// return GetBackedHas(d, key) +// } +func GetBackedHas(ds Read, key Key) (bool, error) { + _, err := ds.Get(key) + switch err { + case nil: + return true, nil + case ErrNotFound: + return false, nil + default: + return false, err + } +} + +// GetBackedSize provides a default Datastore.GetSize implementation. +// It exists so Datastore.GetSize implementations can use it, like so: +// +// func (*d SomeDatastore) GetSize(key Key) (size int, err error) { +// return GetBackedSize(d, key) +// } +func GetBackedSize(ds Read, key Key) (int, error) { + value, err := ds.Get(key) + if err == nil { + return len(value), nil + } + return -1, err +} + +type Batch interface { + Write + + Commit() error +} diff --git a/vendor/github.com/ipfs/go-datastore/delayed/delayed.go b/vendor/github.com/ipfs/go-datastore/delayed/delayed.go new file mode 100644 index 00000000..d34909fe --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/delayed/delayed.go @@ -0,0 +1,80 @@ +// Package delayed wraps a datastore allowing to artificially +// delay all operations. +package delayed + +import ( + "io" + + ds "github.com/ipfs/go-datastore" + dsq "github.com/ipfs/go-datastore/query" + delay "github.com/ipfs/go-ipfs-delay" +) + +// New returns a new delayed datastore. +func New(ds ds.Datastore, delay delay.D) *Delayed { + return &Delayed{ds: ds, delay: delay} +} + +// Delayed is an adapter that delays operations on the inner datastore. +type Delayed struct { + ds ds.Datastore + delay delay.D +} + +var _ ds.Batching = (*Delayed)(nil) +var _ io.Closer = (*Delayed)(nil) + +// Put implements the ds.Datastore interface. +func (dds *Delayed) Put(key ds.Key, value []byte) (err error) { + dds.delay.Wait() + return dds.ds.Put(key, value) +} + +// Get implements the ds.Datastore interface. +func (dds *Delayed) Get(key ds.Key) (value []byte, err error) { + dds.delay.Wait() + return dds.ds.Get(key) +} + +// Has implements the ds.Datastore interface. +func (dds *Delayed) Has(key ds.Key) (exists bool, err error) { + dds.delay.Wait() + return dds.ds.Has(key) +} + +// GetSize implements the ds.Datastore interface. +func (dds *Delayed) GetSize(key ds.Key) (size int, err error) { + dds.delay.Wait() + return dds.ds.GetSize(key) +} + +// Delete implements the ds.Datastore interface. +func (dds *Delayed) Delete(key ds.Key) (err error) { + dds.delay.Wait() + return dds.ds.Delete(key) +} + +// Query implements the ds.Datastore interface. +func (dds *Delayed) Query(q dsq.Query) (dsq.Results, error) { + dds.delay.Wait() + return dds.ds.Query(q) +} + +// Batch implements the ds.Batching interface. +func (dds *Delayed) Batch() (ds.Batch, error) { + return ds.NewBasicBatch(dds), nil +} + +// DiskUsage implements the ds.PersistentDatastore interface. +func (dds *Delayed) DiskUsage() (uint64, error) { + dds.delay.Wait() + return ds.DiskUsage(dds.ds) +} + +// Close closes the inner datastore (if it implements the io.Closer interface). +func (dds *Delayed) Close() error { + if closer, ok := dds.ds.(io.Closer); ok { + return closer.Close() + } + return nil +} diff --git a/vendor/github.com/ipfs/go-datastore/go.mod b/vendor/github.com/ipfs/go-datastore/go.mod new file mode 100644 index 00000000..6e22c954 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/go.mod @@ -0,0 +1,10 @@ +module github.com/ipfs/go-datastore + +require ( + github.com/go-check/check v0.0.0-20180628173108-788fd7840127 + github.com/google/uuid v1.1.1 + github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8 + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/kr/pretty v0.1.0 // indirect + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect +) diff --git a/vendor/github.com/ipfs/go-datastore/go.sum b/vendor/github.com/ipfs/go-datastore/go.sum new file mode 100644 index 00000000..d7327672 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/go.sum @@ -0,0 +1,15 @@ +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8 h1:NAviDvJ0WXgD+yiL2Rj35AmnfgI11+pHXbdciD917U0= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/ipfs/go-datastore/key.go b/vendor/github.com/ipfs/go-datastore/key.go new file mode 100644 index 00000000..161fedff --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/key.go @@ -0,0 +1,302 @@ +package datastore + +import ( + "encoding/json" + "path" + "strings" + + dsq "github.com/ipfs/go-datastore/query" + + "github.com/google/uuid" +) + +/* +A Key represents the unique identifier of an object. +Our Key scheme is inspired by file systems and Google App Engine key model. + +Keys are meant to be unique across a system. Keys are hierarchical, +incorporating more and more specific namespaces. Thus keys can be deemed +'children' or 'ancestors' of other keys:: + + Key("/Comedy") + Key("/Comedy/MontyPython") + +Also, every namespace can be parametrized to embed relevant object +information. For example, the Key `name` (most specific namespace) could +include the object type:: + + Key("/Comedy/MontyPython/Actor:JohnCleese") + Key("/Comedy/MontyPython/Sketch:CheeseShop") + Key("/Comedy/MontyPython/Sketch:CheeseShop/Character:Mousebender") + +*/ +type Key struct { + string +} + +// NewKey constructs a key from string. it will clean the value. +func NewKey(s string) Key { + k := Key{s} + k.Clean() + return k +} + +// RawKey creates a new Key without safety checking the input. Use with care. +func RawKey(s string) Key { + // accept an empty string and fix it to avoid special cases + // elsewhere + if len(s) == 0 { + return Key{"/"} + } + + // perform a quick sanity check that the key is in the correct + // format, if it is not then it is a programmer error and it is + // okay to panic + if len(s) == 0 || s[0] != '/' || (len(s) > 1 && s[len(s)-1] == '/') { + panic("invalid datastore key: " + s) + } + + return Key{s} +} + +// KeyWithNamespaces constructs a key out of a namespace slice. +func KeyWithNamespaces(ns []string) Key { + return NewKey(strings.Join(ns, "/")) +} + +// Clean up a Key, using path.Clean. +func (k *Key) Clean() { + switch { + case len(k.string) == 0: + k.string = "/" + case k.string[0] == '/': + k.string = path.Clean(k.string) + default: + k.string = path.Clean("/" + k.string) + } +} + +// Strings is the string value of Key +func (k Key) String() string { + return k.string +} + +// Bytes returns the string value of Key as a []byte +func (k Key) Bytes() []byte { + return []byte(k.string) +} + +// Equal checks equality of two keys +func (k Key) Equal(k2 Key) bool { + return k.string == k2.string +} + +// Less checks whether this key is sorted lower than another. +func (k Key) Less(k2 Key) bool { + list1 := k.List() + list2 := k2.List() + for i, c1 := range list1 { + if len(list2) < (i + 1) { + return false + } + + c2 := list2[i] + if c1 < c2 { + return true + } else if c1 > c2 { + return false + } + // c1 == c2, continue + } + + // list1 is shorter or exactly the same. + return len(list1) < len(list2) +} + +// List returns the `list` representation of this Key. +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").List() +// ["Comedy", "MontyPythong", "Actor:JohnCleese"] +func (k Key) List() []string { + return strings.Split(k.string, "/")[1:] +} + +// Reverse returns the reverse of this Key. +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").Reverse() +// NewKey("/Actor:JohnCleese/MontyPython/Comedy") +func (k Key) Reverse() Key { + l := k.List() + r := make([]string, len(l), len(l)) + for i, e := range l { + r[len(l)-i-1] = e + } + return KeyWithNamespaces(r) +} + +// Namespaces returns the `namespaces` making up this Key. +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").Namespaces() +// ["Comedy", "MontyPython", "Actor:JohnCleese"] +func (k Key) Namespaces() []string { + return k.List() +} + +// BaseNamespace returns the "base" namespace of this key (path.Base(filename)) +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").BaseNamespace() +// "Actor:JohnCleese" +func (k Key) BaseNamespace() string { + n := k.Namespaces() + return n[len(n)-1] +} + +// Type returns the "type" of this key (value of last namespace). +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").Type() +// "Actor" +func (k Key) Type() string { + return NamespaceType(k.BaseNamespace()) +} + +// Name returns the "name" of this key (field of last namespace). +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").Name() +// "JohnCleese" +func (k Key) Name() string { + return NamespaceValue(k.BaseNamespace()) +} + +// Instance returns an "instance" of this type key (appends value to namespace). +// NewKey("/Comedy/MontyPython/Actor").Instance("JohnClesse") +// NewKey("/Comedy/MontyPython/Actor:JohnCleese") +func (k Key) Instance(s string) Key { + return NewKey(k.string + ":" + s) +} + +// Path returns the "path" of this key (parent + type). +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").Path() +// NewKey("/Comedy/MontyPython/Actor") +func (k Key) Path() Key { + s := k.Parent().string + "/" + NamespaceType(k.BaseNamespace()) + return NewKey(s) +} + +// Parent returns the `parent` Key of this Key. +// NewKey("/Comedy/MontyPython/Actor:JohnCleese").Parent() +// NewKey("/Comedy/MontyPython") +func (k Key) Parent() Key { + n := k.List() + if len(n) == 1 { + return RawKey("/") + } + return NewKey(strings.Join(n[:len(n)-1], "/")) +} + +// Child returns the `child` Key of this Key. +// NewKey("/Comedy/MontyPython").Child(NewKey("Actor:JohnCleese")) +// NewKey("/Comedy/MontyPython/Actor:JohnCleese") +func (k Key) Child(k2 Key) Key { + switch { + case k.string == "/": + return k2 + case k2.string == "/": + return k + default: + return RawKey(k.string + k2.string) + } +} + +// ChildString returns the `child` Key of this Key -- string helper. +// NewKey("/Comedy/MontyPython").ChildString("Actor:JohnCleese") +// NewKey("/Comedy/MontyPython/Actor:JohnCleese") +func (k Key) ChildString(s string) Key { + return NewKey(k.string + "/" + s) +} + +// IsAncestorOf returns whether this key is a prefix of `other` +// NewKey("/Comedy").IsAncestorOf("/Comedy/MontyPython") +// true +func (k Key) IsAncestorOf(other Key) bool { + if other.string == k.string { + return false + } + return strings.HasPrefix(other.string, k.string) +} + +// IsDescendantOf returns whether this key contains another as a prefix. +// NewKey("/Comedy/MontyPython").IsDescendantOf("/Comedy") +// true +func (k Key) IsDescendantOf(other Key) bool { + if other.string == k.string { + return false + } + return strings.HasPrefix(k.string, other.string) +} + +// IsTopLevel returns whether this key has only one namespace. +func (k Key) IsTopLevel() bool { + return len(k.List()) == 1 +} + +// MarshalJSON implements the json.Marshaler interface, +// keys are represented as JSON strings +func (k Key) MarshalJSON() ([]byte, error) { + return json.Marshal(k.String()) +} + +// UnmarshalJSON implements the json.Unmarshaler interface, +// keys will parse any value specified as a key to a string +func (k *Key) UnmarshalJSON(data []byte) error { + var key string + if err := json.Unmarshal(data, &key); err != nil { + return err + } + *k = NewKey(key) + return nil +} + +// RandomKey returns a randomly (uuid) generated key. +// RandomKey() +// NewKey("/f98719ea086343f7b71f32ea9d9d521d") +func RandomKey() Key { + return NewKey(strings.Replace(uuid.New().String(), "-", "", -1)) +} + +/* +A Key Namespace is like a path element. +A namespace can optionally include a type (delimited by ':') + + > NamespaceValue("Song:PhilosopherSong") + PhilosopherSong + > NamespaceType("Song:PhilosopherSong") + Song + > NamespaceType("Music:Song:PhilosopherSong") + Music:Song +*/ + +// NamespaceType is the first component of a namespace. `foo` in `foo:bar` +func NamespaceType(namespace string) string { + parts := strings.Split(namespace, ":") + if len(parts) < 2 { + return "" + } + return strings.Join(parts[0:len(parts)-1], ":") +} + +// NamespaceValue returns the last component of a namespace. `baz` in `f:b:baz` +func NamespaceValue(namespace string) string { + parts := strings.Split(namespace, ":") + return parts[len(parts)-1] +} + +// KeySlice attaches the methods of sort.Interface to []Key, +// sorting in increasing order. +type KeySlice []Key + +func (p KeySlice) Len() int { return len(p) } +func (p KeySlice) Less(i, j int) bool { return p[i].Less(p[j]) } +func (p KeySlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } + +// EntryKeys +func EntryKeys(e []dsq.Entry) []Key { + ks := make([]Key, len(e)) + for i, e := range e { + ks[i] = NewKey(e.Key) + } + return ks +} diff --git a/vendor/github.com/ipfs/go-datastore/keytransform/doc.go b/vendor/github.com/ipfs/go-datastore/keytransform/doc.go new file mode 100644 index 00000000..b389dcfa --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/keytransform/doc.go @@ -0,0 +1,25 @@ +// Package keytransform introduces a Datastore Shim that transforms keys before +// passing them to its child. It can be used to manipulate what keys look like +// to the user, for example namespacing keys, reversing them, etc. +// +// Use the Wrap function to wrap a datastore with any KeyTransform. +// A KeyTransform is simply an interface with two functions, a conversion and +// its inverse. For example: +// +// import ( +// ktds "github.com/ipfs/go-datastore/keytransform" +// ds "github.com/ipfs/go-datastore" +// ) +// +// func reverseKey(k ds.Key) ds.Key { +// return k.Reverse() +// } +// +// func invertKeys(d ds.Datastore) { +// return ktds.Wrap(d, &ktds.Pair{ +// Convert: reverseKey, +// Invert: reverseKey, // reverse is its own inverse. +// }) +// } +// +package keytransform diff --git a/vendor/github.com/ipfs/go-datastore/keytransform/interface.go b/vendor/github.com/ipfs/go-datastore/keytransform/interface.go new file mode 100644 index 00000000..4f07967a --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/keytransform/interface.go @@ -0,0 +1,13 @@ +package keytransform + +import ds "github.com/ipfs/go-datastore" + +// KeyMapping is a function that maps one key to annother +type KeyMapping func(ds.Key) ds.Key + +// KeyTransform is an object with a pair of functions for (invertibly) +// transforming keys +type KeyTransform interface { + ConvertKey(ds.Key) ds.Key + InvertKey(ds.Key) ds.Key +} diff --git a/vendor/github.com/ipfs/go-datastore/keytransform/keytransform.go b/vendor/github.com/ipfs/go-datastore/keytransform/keytransform.go new file mode 100644 index 00000000..ae029730 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/keytransform/keytransform.go @@ -0,0 +1,255 @@ +package keytransform + +import ( + ds "github.com/ipfs/go-datastore" + dsq "github.com/ipfs/go-datastore/query" +) + +// Wrap wraps a given datastore with a KeyTransform function. +// The resulting wrapped datastore will use the transform on all Datastore +// operations. +func Wrap(child ds.Datastore, t KeyTransform) *Datastore { + if t == nil { + panic("t (KeyTransform) is nil") + } + + if child == nil { + panic("child (ds.Datastore) is nil") + } + + return &Datastore{child: child, KeyTransform: t} +} + +// Datastore keeps a KeyTransform function +type Datastore struct { + child ds.Datastore + + KeyTransform +} + +// Children implements ds.Shim +func (d *Datastore) Children() []ds.Datastore { + return []ds.Datastore{d.child} +} + +// Put stores the given value, transforming the key first. +func (d *Datastore) Put(key ds.Key, value []byte) (err error) { + return d.child.Put(d.ConvertKey(key), value) +} + +// Get returns the value for given key, transforming the key first. +func (d *Datastore) Get(key ds.Key) (value []byte, err error) { + return d.child.Get(d.ConvertKey(key)) +} + +// Has returns whether the datastore has a value for a given key, transforming +// the key first. +func (d *Datastore) Has(key ds.Key) (exists bool, err error) { + return d.child.Has(d.ConvertKey(key)) +} + +// GetSize returns the size of the value named by the given key, transforming +// the key first. +func (d *Datastore) GetSize(key ds.Key) (size int, err error) { + return d.child.GetSize(d.ConvertKey(key)) +} + +// Delete removes the value for given key +func (d *Datastore) Delete(key ds.Key) (err error) { + return d.child.Delete(d.ConvertKey(key)) +} + +// Query implements Query, inverting keys on the way back out. +func (d *Datastore) Query(q dsq.Query) (dsq.Results, error) { + nq, cq := d.prepareQuery(q) + + cqr, err := d.child.Query(cq) + if err != nil { + return nil, err + } + + qr := dsq.ResultsFromIterator(q, dsq.Iterator{ + Next: func() (dsq.Result, bool) { + r, ok := cqr.NextSync() + if !ok { + return r, false + } + if r.Error == nil { + r.Entry.Key = d.InvertKey(ds.RawKey(r.Entry.Key)).String() + } + return r, true + }, + Close: func() error { + return cqr.Close() + }, + }) + return dsq.NaiveQueryApply(nq, qr), nil +} + +// Split the query into a child query and a naive query. That way, we can make +// the child datastore do as much work as possible. +func (d *Datastore) prepareQuery(q dsq.Query) (naive, child dsq.Query) { + + // First, put everything in the child query. Then, start taking things + // out. + child = q + + // Always let the child handle the key prefix. + child.Prefix = d.ConvertKey(ds.NewKey(child.Prefix)).String() + + // Check if the key transform is order-preserving so we can use the + // child datastore's built-in ordering. + orderPreserving := false + switch d.KeyTransform.(type) { + case PrefixTransform, *PrefixTransform: + orderPreserving = true + } + + // Try to let the child handle ordering. +orders: + for i, o := range child.Orders { + switch o.(type) { + case dsq.OrderByValue, *dsq.OrderByValue, + dsq.OrderByValueDescending, *dsq.OrderByValueDescending: + // Key doesn't matter. + continue + case dsq.OrderByKey, *dsq.OrderByKey, + dsq.OrderByKeyDescending, *dsq.OrderByKeyDescending: + // if the key transform preserves order, we can delegate + // to the child datastore. + if orderPreserving { + // When sorting, we compare with the first + // Order, then, if equal, we compare with the + // second Order, etc. However, keys are _unique_ + // so we'll never apply any additional orders + // after ordering by key. + child.Orders = child.Orders[:i+1] + break orders + } + } + + // Can't handle this order under transform, punt it to a naive + // ordering. + naive.Orders = q.Orders + child.Orders = nil + naive.Offset = q.Offset + child.Offset = 0 + naive.Limit = q.Limit + child.Limit = 0 + break + } + + // Try to let the child handle the filters. + + // don't modify the original filters. + child.Filters = append([]dsq.Filter(nil), child.Filters...) + + for i, f := range child.Filters { + switch f := f.(type) { + case dsq.FilterValueCompare, *dsq.FilterValueCompare: + continue + case dsq.FilterKeyCompare: + child.Filters[i] = dsq.FilterKeyCompare{ + Op: f.Op, + Key: d.ConvertKey(ds.NewKey(f.Key)).String(), + } + continue + case *dsq.FilterKeyCompare: + child.Filters[i] = &dsq.FilterKeyCompare{ + Op: f.Op, + Key: d.ConvertKey(ds.NewKey(f.Key)).String(), + } + continue + case dsq.FilterKeyPrefix: + child.Filters[i] = dsq.FilterKeyPrefix{ + Prefix: d.ConvertKey(ds.NewKey(f.Prefix)).String(), + } + continue + case *dsq.FilterKeyPrefix: + child.Filters[i] = &dsq.FilterKeyPrefix{ + Prefix: d.ConvertKey(ds.NewKey(f.Prefix)).String(), + } + continue + } + + // Not a known filter, defer to the naive implementation. + naive.Filters = q.Filters + child.Filters = nil + naive.Offset = q.Offset + child.Offset = 0 + naive.Limit = q.Limit + child.Limit = 0 + break + } + return +} + +func (d *Datastore) Close() error { + return d.child.Close() +} + +// DiskUsage implements the PersistentDatastore interface. +func (d *Datastore) DiskUsage() (uint64, error) { + return ds.DiskUsage(d.child) +} + +func (d *Datastore) Batch() (ds.Batch, error) { + bds, ok := d.child.(ds.Batching) + if !ok { + return nil, ds.ErrBatchUnsupported + } + + childbatch, err := bds.Batch() + if err != nil { + return nil, err + } + return &transformBatch{ + dst: childbatch, + f: d.ConvertKey, + }, nil +} + +type transformBatch struct { + dst ds.Batch + + f KeyMapping +} + +func (t *transformBatch) Put(key ds.Key, val []byte) error { + return t.dst.Put(t.f(key), val) +} + +func (t *transformBatch) Delete(key ds.Key) error { + return t.dst.Delete(t.f(key)) +} + +func (t *transformBatch) Commit() error { + return t.dst.Commit() +} + +func (d *Datastore) Check() error { + if c, ok := d.child.(ds.CheckedDatastore); ok { + return c.Check() + } + return nil +} + +func (d *Datastore) Scrub() error { + if c, ok := d.child.(ds.ScrubbedDatastore); ok { + return c.Scrub() + } + return nil +} + +func (d *Datastore) CollectGarbage() error { + if c, ok := d.child.(ds.GCDatastore); ok { + return c.CollectGarbage() + } + return nil +} + +var _ ds.Datastore = (*Datastore)(nil) +var _ ds.GCDatastore = (*Datastore)(nil) +var _ ds.Batching = (*Datastore)(nil) +var _ ds.PersistentDatastore = (*Datastore)(nil) +var _ ds.ScrubbedDatastore = (*Datastore)(nil) diff --git a/vendor/github.com/ipfs/go-datastore/keytransform/transforms.go b/vendor/github.com/ipfs/go-datastore/keytransform/transforms.go new file mode 100644 index 00000000..cc39897e --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/keytransform/transforms.go @@ -0,0 +1,49 @@ +package keytransform + +import ds "github.com/ipfs/go-datastore" + +// Pair is a convince struct for constructing a key transform. +type Pair struct { + Convert KeyMapping + Invert KeyMapping +} + +func (t *Pair) ConvertKey(k ds.Key) ds.Key { + return t.Convert(k) +} + +func (t *Pair) InvertKey(k ds.Key) ds.Key { + return t.Invert(k) +} + +var _ KeyTransform = (*Pair)(nil) + +// PrefixTransform constructs a KeyTransform with a pair of functions that +// add or remove the given prefix key. +// +// Warning: will panic if prefix not found when it should be there. This is +// to avoid insidious data inconsistency errors. +type PrefixTransform struct { + Prefix ds.Key +} + +// ConvertKey adds the prefix. +func (p PrefixTransform) ConvertKey(k ds.Key) ds.Key { + return p.Prefix.Child(k) +} + +// InvertKey removes the prefix. panics if prefix not found. +func (p PrefixTransform) InvertKey(k ds.Key) ds.Key { + if p.Prefix.String() == "/" { + return k + } + + if !p.Prefix.IsAncestorOf(k) { + panic("expected prefix not found") + } + + s := k.String()[len(p.Prefix.String()):] + return ds.RawKey(s) +} + +var _ KeyTransform = (*PrefixTransform)(nil) diff --git a/vendor/github.com/ipfs/go-datastore/mount/mount.go b/vendor/github.com/ipfs/go-datastore/mount/mount.go new file mode 100644 index 00000000..326277a6 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/mount/mount.go @@ -0,0 +1,400 @@ +// Package mount provides a Datastore that has other Datastores +// mounted at various key prefixes and is threadsafe +package mount + +import ( + "container/heap" + "errors" + "fmt" + "sort" + "strings" + "sync" + + ds "github.com/ipfs/go-datastore" + "github.com/ipfs/go-datastore/query" +) + +var ( + ErrNoMount = errors.New("no datastore mounted for this key") +) + +type Mount struct { + Prefix ds.Key + Datastore ds.Datastore +} + +func New(mounts []Mount) *Datastore { + // make a copy so we're sure it doesn't mutate + m := make([]Mount, len(mounts)) + for i, v := range mounts { + m[i] = v + } + sort.Slice(m, func(i, j int) bool { return m[i].Prefix.String() > m[j].Prefix.String() }) + return &Datastore{mounts: m} +} + +type Datastore struct { + mounts []Mount +} + +var _ ds.Datastore = (*Datastore)(nil) + +func (d *Datastore) lookup(key ds.Key) (ds.Datastore, ds.Key, ds.Key) { + for _, m := range d.mounts { + if m.Prefix.Equal(key) || m.Prefix.IsAncestorOf(key) { + s := strings.TrimPrefix(key.String(), m.Prefix.String()) + k := ds.NewKey(s) + return m.Datastore, m.Prefix, k + } + } + return nil, ds.NewKey("/"), key +} + +type queryResults struct { + mount ds.Key + results query.Results + next query.Result +} + +func (qr *queryResults) advance() bool { + if qr.results == nil { + return false + } + + qr.next = query.Result{} + r, more := qr.results.NextSync() + if !more { + err := qr.results.Close() + qr.results = nil + if err != nil { + // One more result, the error. + qr.next = query.Result{Error: err} + return true + } + return false + } + + r.Key = qr.mount.Child(ds.RawKey(r.Key)).String() + qr.next = r + return true +} + +type querySet struct { + query query.Query + heads []*queryResults +} + +func (h *querySet) Len() int { + return len(h.heads) +} + +func (h *querySet) Less(i, j int) bool { + return query.Less(h.query.Orders, h.heads[i].next.Entry, h.heads[j].next.Entry) +} + +func (h *querySet) Swap(i, j int) { + h.heads[i], h.heads[j] = h.heads[j], h.heads[i] +} + +func (h *querySet) Push(x interface{}) { + h.heads = append(h.heads, x.(*queryResults)) +} + +func (h *querySet) Pop() interface{} { + i := len(h.heads) - 1 + last := h.heads[i] + h.heads[i] = nil + h.heads = h.heads[:i] + return last +} + +func (h *querySet) close() error { + var errs []error + for _, qr := range h.heads { + err := qr.results.Close() + if err != nil { + errs = append(errs, err) + } + } + h.heads = nil + if len(errs) > 0 { + return errs[0] + } + return nil +} + +func (h *querySet) addResults(mount ds.Key, results query.Results) { + r := &queryResults{ + results: results, + mount: mount, + } + if r.advance() { + heap.Push(h, r) + } +} + +func (h *querySet) next() (query.Result, bool) { + if len(h.heads) == 0 { + return query.Result{}, false + } + head := h.heads[0] + next := head.next + + if head.advance() { + heap.Fix(h, 0) + } else { + heap.Remove(h, 0) + } + + return next, true +} + +// lookupAll returns all mounts that might contain keys that are descendant of +// +// Matching: /ao/e +// +// / B /ao/e +// /a/ not matching +// /ao/ B /e +// /ao/e/ A / +// /ao/e/uh/ A / +// /aoe/ not matching +func (d *Datastore) lookupAll(key ds.Key) (dst []ds.Datastore, mountpoint, rest []ds.Key) { + for _, m := range d.mounts { + p := m.Prefix.String() + if len(p) > 1 { + p = p + "/" + } + + if strings.HasPrefix(p, key.String()) { + dst = append(dst, m.Datastore) + mountpoint = append(mountpoint, m.Prefix) + rest = append(rest, ds.NewKey("/")) + } else if strings.HasPrefix(key.String(), p) { + r := strings.TrimPrefix(key.String(), m.Prefix.String()) + + dst = append(dst, m.Datastore) + mountpoint = append(mountpoint, m.Prefix) + rest = append(rest, ds.NewKey(r)) + } + } + return dst, mountpoint, rest +} + +func (d *Datastore) Put(key ds.Key, value []byte) error { + cds, _, k := d.lookup(key) + if cds == nil { + return ErrNoMount + } + return cds.Put(k, value) +} + +func (d *Datastore) Get(key ds.Key) (value []byte, err error) { + cds, _, k := d.lookup(key) + if cds == nil { + return nil, ds.ErrNotFound + } + return cds.Get(k) +} + +func (d *Datastore) Has(key ds.Key) (exists bool, err error) { + cds, _, k := d.lookup(key) + if cds == nil { + return false, nil + } + return cds.Has(k) +} + +func (d *Datastore) GetSize(key ds.Key) (size int, err error) { + cds, _, k := d.lookup(key) + if cds == nil { + return -1, ds.ErrNotFound + } + return cds.GetSize(k) +} + +func (d *Datastore) Delete(key ds.Key) error { + cds, _, k := d.lookup(key) + if cds == nil { + return ds.ErrNotFound + } + return cds.Delete(k) +} + +func (d *Datastore) Query(master query.Query) (query.Results, error) { + childQuery := query.Query{ + Prefix: master.Prefix, + Limit: master.Limit, + Orders: master.Orders, + KeysOnly: master.KeysOnly, + ReturnExpirations: master.ReturnExpirations, + } + + prefix := ds.NewKey(childQuery.Prefix) + dses, mounts, rests := d.lookupAll(prefix) + + queries := &querySet{ + query: childQuery, + heads: make([]*queryResults, 0, len(dses)), + } + + for i := range dses { + mount := mounts[i] + dstore := dses[i] + rest := rests[i] + + qi := childQuery + qi.Prefix = rest.String() + results, err := dstore.Query(qi) + + if err != nil { + _ = queries.close() + return nil, err + } + queries.addResults(mount, results) + } + + qr := query.ResultsFromIterator(childQuery, query.Iterator{ + Next: queries.next, + Close: queries.close, + }) + + if len(master.Filters) > 0 { + for _, f := range master.Filters { + qr = query.NaiveFilter(qr, f) + } + } + + if master.Offset > 0 { + qr = query.NaiveOffset(qr, master.Offset) + } + + if childQuery.Limit > 0 { + qr = query.NaiveLimit(qr, childQuery.Limit) + } + + return qr, nil +} + +func (d *Datastore) Close() error { + for _, d := range d.mounts { + err := d.Datastore.Close() + if err != nil { + return err + } + } + return nil +} + +// DiskUsage returns the sum of DiskUsages for the mounted datastores. +// Non PersistentDatastores will not be accounted. +func (d *Datastore) DiskUsage() (uint64, error) { + var duTotal uint64 = 0 + for _, d := range d.mounts { + du, err := ds.DiskUsage(d.Datastore) + duTotal += du + if err != nil { + return duTotal, err + } + } + return duTotal, nil +} + +type mountBatch struct { + mounts map[string]ds.Batch + lk sync.Mutex + + d *Datastore +} + +func (d *Datastore) Batch() (ds.Batch, error) { + return &mountBatch{ + mounts: make(map[string]ds.Batch), + d: d, + }, nil +} + +func (mt *mountBatch) lookupBatch(key ds.Key) (ds.Batch, ds.Key, error) { + mt.lk.Lock() + defer mt.lk.Unlock() + + child, loc, rest := mt.d.lookup(key) + t, ok := mt.mounts[loc.String()] + if !ok { + bds, ok := child.(ds.Batching) + if !ok { + return nil, ds.NewKey(""), ds.ErrBatchUnsupported + } + var err error + t, err = bds.Batch() + if err != nil { + return nil, ds.NewKey(""), err + } + mt.mounts[loc.String()] = t + } + return t, rest, nil +} + +func (mt *mountBatch) Put(key ds.Key, val []byte) error { + t, rest, err := mt.lookupBatch(key) + if err != nil { + return err + } + + return t.Put(rest, val) +} + +func (mt *mountBatch) Delete(key ds.Key) error { + t, rest, err := mt.lookupBatch(key) + if err != nil { + return err + } + + return t.Delete(rest) +} + +func (mt *mountBatch) Commit() error { + mt.lk.Lock() + defer mt.lk.Unlock() + + for _, t := range mt.mounts { + err := t.Commit() + if err != nil { + return err + } + } + return nil +} + +func (d *Datastore) Check() error { + for _, m := range d.mounts { + if c, ok := m.Datastore.(ds.CheckedDatastore); ok { + if err := c.Check(); err != nil { + return fmt.Errorf("checking datastore at %s: %s", m.Prefix.String(), err.Error()) + } + } + } + return nil +} + +func (d *Datastore) Scrub() error { + for _, m := range d.mounts { + if c, ok := m.Datastore.(ds.ScrubbedDatastore); ok { + if err := c.Scrub(); err != nil { + return fmt.Errorf("scrubbing datastore at %s: %s", m.Prefix.String(), err.Error()) + } + } + } + return nil +} + +func (d *Datastore) CollectGarbage() error { + for _, m := range d.mounts { + if c, ok := m.Datastore.(ds.GCDatastore); ok { + if err := c.CollectGarbage(); err != nil { + return fmt.Errorf("gc on datastore at %s: %s", m.Prefix.String(), err.Error()) + } + } + } + return nil +} diff --git a/vendor/github.com/ipfs/go-datastore/namespace/doc.go b/vendor/github.com/ipfs/go-datastore/namespace/doc.go new file mode 100644 index 00000000..9ff9a8ca --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/namespace/doc.go @@ -0,0 +1,24 @@ +// Package namespace introduces a namespace Datastore Shim, which basically +// mounts the entire child datastore under a prefix. +// +// Use the Wrap function to wrap a datastore with any Key prefix. For example: +// +// import ( +// "fmt" +// +// ds "github.com/ipfs/go-datastore" +// nsds "github.com/ipfs/go-datastore/namespace" +// ) +// +// func main() { +// mp := ds.NewMapDatastore() +// ns := nsds.Wrap(mp, ds.NewKey("/foo/bar")) +// +// // in the Namespace Datastore: +// ns.Put(ds.NewKey("/beep"), "boop") +// v2, _ := ns.Get(ds.NewKey("/beep")) // v2 == "boop" +// +// // and, in the underlying MapDatastore: +// v3, _ := mp.Get(ds.NewKey("/foo/bar/beep")) // v3 == "boop" +// } +package namespace diff --git a/vendor/github.com/ipfs/go-datastore/namespace/namespace.go b/vendor/github.com/ipfs/go-datastore/namespace/namespace.go new file mode 100644 index 00000000..1913fb79 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/namespace/namespace.go @@ -0,0 +1,26 @@ +package namespace + +import ( + ds "github.com/ipfs/go-datastore" + ktds "github.com/ipfs/go-datastore/keytransform" +) + +// PrefixTransform constructs a KeyTransform with a pair of functions that +// add or remove the given prefix key. +// +// Warning: will panic if prefix not found when it should be there. This is +// to avoid insidious data inconsistency errors. +// +// DEPRECATED: Use ktds.PrefixTransform directly. +func PrefixTransform(prefix ds.Key) ktds.PrefixTransform { + return ktds.PrefixTransform{Prefix: prefix} +} + +// Wrap wraps a given datastore with a key-prefix. +func Wrap(child ds.Datastore, prefix ds.Key) *ktds.Datastore { + if child == nil { + panic("child (ds.Datastore) is nil") + } + + return ktds.Wrap(child, PrefixTransform(prefix)) +} diff --git a/vendor/github.com/ipfs/go-datastore/package.json b/vendor/github.com/ipfs/go-datastore/package.json new file mode 100644 index 00000000..d1d52e6a --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/package.json @@ -0,0 +1,42 @@ +{ + "author": "jbenet", + "bugs": { + "url": "https://github.com/jbenet/go-datastore" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-datastore" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP", + "name": "goprocess", + "version": "1.0.0" + }, + { + "author": "gustavo", + "hash": "QmYBJ8BXPDTMnzLFdv4rS5kbR1fUFASDVDpK7ZbeWMx6hq", + "name": "go-check", + "version": "1.0.0" + }, + { + "author": "hsanjuan", + "hash": "QmUe1WCHkQaz4UeNKiHDUBV2T6i9prc3DniqyHPXyfGaUq", + "name": "go-ipfs-delay", + "version": "0.1.0" + }, + { + "author": "google", + "hash": "QmSSeQqc5QeuefkaM6JFV5tSF9knLUkXKVhW1eYRiqe72W", + "name": "uuid", + "version": "0.1.0" + } + ], + "gxVersion": "0.7.0", + "language": "go", + "license": "MIT", + "name": "go-datastore", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.6.1" +} + diff --git a/vendor/github.com/ipfs/go-datastore/query/filter.go b/vendor/github.com/ipfs/go-datastore/query/filter.go new file mode 100644 index 00000000..501414d3 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/query/filter.go @@ -0,0 +1,90 @@ +package query + +import ( + "bytes" + "fmt" + "strings" +) + +// Filter is an object that tests ResultEntries +type Filter interface { + // Filter returns whether an entry passes the filter + Filter(e Entry) bool +} + +// Op is a comparison operator +type Op string + +var ( + Equal = Op("==") + NotEqual = Op("!=") + GreaterThan = Op(">") + GreaterThanOrEqual = Op(">=") + LessThan = Op("<") + LessThanOrEqual = Op("<=") +) + +// FilterValueCompare is used to signal to datastores they +// should apply internal comparisons. unfortunately, there +// is no way to apply comparisons* to interface{} types in +// Go, so if the datastore doesnt have a special way to +// handle these comparisons, you must provided the +// TypedFilter to actually do filtering. +// +// [*] other than == and !=, which use reflect.DeepEqual. +type FilterValueCompare struct { + Op Op + Value []byte +} + +func (f FilterValueCompare) Filter(e Entry) bool { + cmp := bytes.Compare(e.Value, f.Value) + switch f.Op { + case Equal: + return cmp == 0 + case NotEqual: + return cmp != 0 + case LessThan: + return cmp < 0 + case LessThanOrEqual: + return cmp <= 0 + case GreaterThan: + return cmp > 0 + case GreaterThanOrEqual: + return cmp >= 0 + default: + panic(fmt.Errorf("unknown operation: %s", f.Op)) + } +} + +type FilterKeyCompare struct { + Op Op + Key string +} + +func (f FilterKeyCompare) Filter(e Entry) bool { + switch f.Op { + case Equal: + return e.Key == f.Key + case NotEqual: + return e.Key != f.Key + case GreaterThan: + return e.Key > f.Key + case GreaterThanOrEqual: + return e.Key >= f.Key + case LessThan: + return e.Key < f.Key + case LessThanOrEqual: + return e.Key <= f.Key + default: + panic(fmt.Errorf("unknown op '%s'", f.Op)) + } +} + +type FilterKeyPrefix struct { + Prefix string +} + +func (f FilterKeyPrefix) Filter(e Entry) bool { + return strings.HasPrefix(e.Key, f.Prefix) +} diff --git a/vendor/github.com/ipfs/go-datastore/query/order.go b/vendor/github.com/ipfs/go-datastore/query/order.go new file mode 100644 index 00000000..5e0acf1b --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/query/order.go @@ -0,0 +1,74 @@ +package query + +import ( + "bytes" + "sort" + "strings" +) + +// Order is an object used to order objects +type Order interface { + Compare(a, b Entry) int +} + +// OrderByFunction orders the results based on the result of the given function. +type OrderByFunction func(a, b Entry) int + +func (o OrderByFunction) Compare(a, b Entry) int { + return o(a, b) +} + +// OrderByValue is used to signal to datastores they should apply internal +// orderings. +type OrderByValue struct{} + +func (o OrderByValue) Compare(a, b Entry) int { + return bytes.Compare(a.Value, b.Value) +} + +// OrderByValueDescending is used to signal to datastores they +// should apply internal orderings. +type OrderByValueDescending struct{} + +func (o OrderByValueDescending) Compare(a, b Entry) int { + return -bytes.Compare(a.Value, b.Value) +} + +// OrderByKey +type OrderByKey struct{} + +func (o OrderByKey) Compare(a, b Entry) int { + return strings.Compare(a.Key, b.Key) +} + +// OrderByKeyDescending +type OrderByKeyDescending struct{} + +func (o OrderByKeyDescending) Compare(a, b Entry) int { + return -strings.Compare(a.Key, b.Key) +} + +// Less returns true if a comes before b with the requested orderings. +func Less(orders []Order, a, b Entry) bool { + for _, cmp := range orders { + switch cmp.Compare(a, b) { + case 0: + case -1: + return true + case 1: + return false + } + } + + // This gives us a *stable* sort for free. We don't care + // preserving the order from the underlying datastore + // because it's undefined. + return a.Key < b.Key +} + +// Sort sorts the given entries using the given orders. +func Sort(orders []Order, entries []Entry) { + sort.Slice(entries, func(i int, j int) bool { + return Less(orders, entries[i], entries[j]) + }) +} diff --git a/vendor/github.com/ipfs/go-datastore/query/query.go b/vendor/github.com/ipfs/go-datastore/query/query.go new file mode 100644 index 00000000..2540dfc6 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/query/query.go @@ -0,0 +1,386 @@ +package query + +import ( + "time" + + goprocess "github.com/jbenet/goprocess" +) + +/* +Query represents storage for any key-value pair. + +tl;dr: + + queries are supported across datastores. + Cheap on top of relational dbs, and expensive otherwise. + Pick the right tool for the job! + +In addition to the key-value store get and set semantics, datastore +provides an interface to retrieve multiple records at a time through +the use of queries. The datastore Query model gleans a common set of +operations performed when querying. To avoid pasting here years of +database research, let’s summarize the operations datastore supports. + +Query Operations: + + * namespace - scope the query, usually by object type + * filters - select a subset of values by applying constraints + * orders - sort the results by applying sort conditions + * limit - impose a numeric limit on the number of results + * offset - skip a number of results (for efficient pagination) + +datastore combines these operations into a simple Query class that allows +applications to define their constraints in a simple, generic, way without +introducing datastore specific calls, languages, etc. + +Of course, different datastores provide relational query support across a +wide spectrum, from full support in traditional databases to none at all in +most key-value stores. Datastore aims to provide a common, simple interface +for the sake of application evolution over time and keeping large code bases +free of tool-specific code. It would be ridiculous to claim to support high- +performance queries on architectures that obviously do not. Instead, datastore +provides the interface, ideally translating queries to their native form +(e.g. into SQL for MySQL). + +However, on the wrong datastore, queries can potentially incur the high cost +of performing the aforemantioned query operations on the data set directly in +Go. It is the client’s responsibility to select the right tool for the job: +pick a data storage solution that fits the application’s needs now, and wrap +it with a datastore implementation. As the needs change, swap out datastore +implementations to support your new use cases. Some applications, particularly +in early development stages, can afford to incurr the cost of queries on non- +relational databases (e.g. using a FSDatastore and not worry about a database +at all). When it comes time to switch the tool for performance, updating the +application code can be as simple as swapping the datastore in one place, not +all over the application code base. This gain in engineering time, both at +initial development and during later iterations, can significantly offset the +cost of the layer of abstraction. + +*/ +type Query struct { + Prefix string // namespaces the query to results whose keys have Prefix + Filters []Filter // filter results. apply sequentially + Orders []Order // order results. apply hierarchically + Limit int // maximum number of results + Offset int // skip given number of results + KeysOnly bool // return only keys. + ReturnExpirations bool // return expirations (see TTLDatastore) +} + +// Entry is a query result entry. +type Entry struct { + Key string // cant be ds.Key because circular imports ...!!! + Value []byte // Will be nil if KeysOnly has been passed. + Expiration time.Time // Entry expiration timestamp if requested and supported (see TTLDatastore). +} + +// Result is a special entry that includes an error, so that the client +// may be warned about internal errors. If Error is non-nil, Entry must be +// empty. +type Result struct { + Entry + + Error error +} + +// Results is a set of Query results. This is the interface for clients. +// Example: +// +// qr, _ := myds.Query(q) +// for r := range qr.Next() { +// if r.Error != nil { +// // handle. +// break +// } +// +// fmt.Println(r.Entry.Key, r.Entry.Value) +// } +// +// or, wait on all results at once: +// +// qr, _ := myds.Query(q) +// es, _ := qr.Rest() +// for _, e := range es { +// fmt.Println(e.Key, e.Value) +// } +// +type Results interface { + Query() Query // the query these Results correspond to + Next() <-chan Result // returns a channel to wait for the next result + NextSync() (Result, bool) // blocks and waits to return the next result, second paramter returns false when results are exhausted + Rest() ([]Entry, error) // waits till processing finishes, returns all entries at once. + Close() error // client may call Close to signal early exit + + // Process returns a goprocess.Process associated with these results. + // most users will not need this function (Close is all they want), + // but it's here in case you want to connect the results to other + // goprocess-friendly things. + Process() goprocess.Process +} + +// results implements Results +type results struct { + query Query + proc goprocess.Process + res <-chan Result +} + +func (r *results) Next() <-chan Result { + return r.res +} + +func (r *results) NextSync() (Result, bool) { + val, ok := <-r.res + return val, ok +} + +func (r *results) Rest() ([]Entry, error) { + var es []Entry + for e := range r.res { + if e.Error != nil { + return es, e.Error + } + es = append(es, e.Entry) + } + <-r.proc.Closed() // wait till the processing finishes. + return es, nil +} + +func (r *results) Process() goprocess.Process { + return r.proc +} + +func (r *results) Close() error { + return r.proc.Close() +} + +func (r *results) Query() Query { + return r.query +} + +// ResultBuilder is what implementors use to construct results +// Implementors of datastores and their clients must respect the +// Process of the Request: +// +// * clients must call r.Process().Close() on an early exit, so +// implementations can reclaim resources. +// * if the Entries are read to completion (channel closed), Process +// should be closed automatically. +// * datastores must respect <-Process.Closing(), which intermediates +// an early close signal from the client. +// +type ResultBuilder struct { + Query Query + Process goprocess.Process + Output chan Result +} + +// Results returns a Results to to this builder. +func (rb *ResultBuilder) Results() Results { + return &results{ + query: rb.Query, + proc: rb.Process, + res: rb.Output, + } +} + +const NormalBufSize = 1 +const KeysOnlyBufSize = 128 + +func NewResultBuilder(q Query) *ResultBuilder { + bufSize := NormalBufSize + if q.KeysOnly { + bufSize = KeysOnlyBufSize + } + b := &ResultBuilder{ + Query: q, + Output: make(chan Result, bufSize), + } + b.Process = goprocess.WithTeardown(func() error { + close(b.Output) + return nil + }) + return b +} + +// ResultsWithChan returns a Results object from a channel +// of Result entries. +// +// DEPRECATED: This iterator is impossible to cancel correctly. Canceling it +// will leave anything trying to write to the result channel hanging. +func ResultsWithChan(q Query, res <-chan Result) Results { + return ResultsWithProcess(q, func(worker goprocess.Process, out chan<- Result) { + for { + select { + case <-worker.Closing(): // client told us to close early + return + case e, more := <-res: + if !more { + return + } + + select { + case out <- e: + case <-worker.Closing(): // client told us to close early + return + } + } + } + }) +} + +// ResultsWithProcess returns a Results object with the results generated by the +// passed subprocess. +func ResultsWithProcess(q Query, proc func(goprocess.Process, chan<- Result)) Results { + b := NewResultBuilder(q) + + // go consume all the entries and add them to the results. + b.Process.Go(func(worker goprocess.Process) { + proc(worker, b.Output) + }) + + go b.Process.CloseAfterChildren() + return b.Results() +} + +// ResultsWithEntries returns a Results object from a list of entries +func ResultsWithEntries(q Query, res []Entry) Results { + i := 0 + return ResultsFromIterator(q, Iterator{ + Next: func() (Result, bool) { + if i >= len(res) { + return Result{}, false + } + next := res[i] + i++ + return Result{Entry: next}, true + }, + }) +} + +func ResultsReplaceQuery(r Results, q Query) Results { + switch r := r.(type) { + case *results: + // note: not using field names to make sure all fields are copied + return &results{q, r.proc, r.res} + case *resultsIter: + // note: not using field names to make sure all fields are copied + lr := r.legacyResults + if lr != nil { + lr = &results{q, lr.proc, lr.res} + } + return &resultsIter{q, r.next, r.close, lr} + default: + panic("unknown results type") + } +} + +// +// ResultFromIterator provides an alternative way to to construct +// results without the use of channels. +// + +func ResultsFromIterator(q Query, iter Iterator) Results { + if iter.Close == nil { + iter.Close = noopClose + } + return &resultsIter{ + query: q, + next: iter.Next, + close: iter.Close, + } +} + +func noopClose() error { + return nil +} + +type Iterator struct { + Next func() (Result, bool) + Close func() error // note: might be called more than once +} + +type resultsIter struct { + query Query + next func() (Result, bool) + close func() error + legacyResults *results +} + +func (r *resultsIter) Next() <-chan Result { + r.useLegacyResults() + return r.legacyResults.Next() +} + +func (r *resultsIter) NextSync() (Result, bool) { + if r.legacyResults != nil { + return r.legacyResults.NextSync() + } else { + res, ok := r.next() + if !ok { + r.close() + } + return res, ok + } +} + +func (r *resultsIter) Rest() ([]Entry, error) { + var es []Entry + for { + e, ok := r.NextSync() + if !ok { + break + } + if e.Error != nil { + return es, e.Error + } + es = append(es, e.Entry) + } + return es, nil +} + +func (r *resultsIter) Process() goprocess.Process { + r.useLegacyResults() + return r.legacyResults.Process() +} + +func (r *resultsIter) Close() error { + if r.legacyResults != nil { + return r.legacyResults.Close() + } else { + return r.close() + } +} + +func (r *resultsIter) Query() Query { + return r.query +} + +func (r *resultsIter) useLegacyResults() { + if r.legacyResults != nil { + return + } + + b := NewResultBuilder(r.query) + + // go consume all the entries and add them to the results. + b.Process.Go(func(worker goprocess.Process) { + defer r.close() + for { + e, ok := r.next() + if !ok { + break + } + select { + case b.Output <- e: + case <-worker.Closing(): // client told us to close early + return + } + } + return + }) + + go b.Process.CloseAfterChildren() + + r.legacyResults = b.Results().(*results) +} diff --git a/vendor/github.com/ipfs/go-datastore/query/query_impl.go b/vendor/github.com/ipfs/go-datastore/query/query_impl.go new file mode 100644 index 00000000..6c2e422b --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/query/query_impl.go @@ -0,0 +1,142 @@ +package query + +import ( + goprocess "github.com/jbenet/goprocess" +) + +// NaiveFilter applies a filter to the results. +func NaiveFilter(qr Results, filter Filter) Results { + return ResultsFromIterator(qr.Query(), Iterator{ + Next: func() (Result, bool) { + for { + e, ok := qr.NextSync() + if !ok { + return Result{}, false + } + if e.Error != nil || filter.Filter(e.Entry) { + return e, true + } + } + }, + Close: func() error { + return qr.Close() + }, + }) +} + +// NaiveLimit truncates the results to a given int limit +func NaiveLimit(qr Results, limit int) Results { + if limit == 0 { + // 0 means no limit + return qr + } + closed := false + return ResultsFromIterator(qr.Query(), Iterator{ + Next: func() (Result, bool) { + if limit == 0 { + if !closed { + closed = true + err := qr.Close() + if err != nil { + return Result{Error: err}, true + } + } + return Result{}, false + } + limit-- + return qr.NextSync() + }, + Close: func() error { + if closed { + return nil + } + closed = true + return qr.Close() + }, + }) +} + +// NaiveOffset skips a given number of results +func NaiveOffset(qr Results, offset int) Results { + return ResultsFromIterator(qr.Query(), Iterator{ + Next: func() (Result, bool) { + for ; offset > 0; offset-- { + res, ok := qr.NextSync() + if !ok || res.Error != nil { + return res, ok + } + } + return qr.NextSync() + }, + Close: func() error { + return qr.Close() + }, + }) +} + +// NaiveOrder reorders results according to given orders. +// WARNING: this is the only non-stream friendly operation! +func NaiveOrder(qr Results, orders ...Order) Results { + // Short circuit. + if len(orders) == 0 { + return qr + } + + return ResultsWithProcess(qr.Query(), func(worker goprocess.Process, out chan<- Result) { + defer qr.Close() + var entries []Entry + collect: + for { + select { + case <-worker.Closing(): + return + case e, ok := <-qr.Next(): + if !ok { + break collect + } + if e.Error != nil { + out <- e + continue + } + entries = append(entries, e.Entry) + } + } + + Sort(orders, entries) + + for _, e := range entries { + select { + case <-worker.Closing(): + return + case out <- Result{Entry: e}: + } + } + }) +} + +func NaiveQueryApply(q Query, qr Results) Results { + if q.Prefix != "" { + qr = NaiveFilter(qr, FilterKeyPrefix{q.Prefix}) + } + for _, f := range q.Filters { + qr = NaiveFilter(qr, f) + } + if len(q.Orders) > 0 { + qr = NaiveOrder(qr, q.Orders...) + } + if q.Offset != 0 { + qr = NaiveOffset(qr, q.Offset) + } + if q.Limit != 0 { + qr = NaiveLimit(qr, q.Limit) + } + return qr +} + +func ResultEntriesFrom(keys []string, vals [][]byte) []Entry { + re := make([]Entry, len(keys)) + for i, k := range keys { + re[i] = Entry{Key: k, Value: vals[i]} + } + return re +} diff --git a/vendor/github.com/ipfs/go-datastore/retrystore/retrystore.go b/vendor/github.com/ipfs/go-datastore/retrystore/retrystore.go new file mode 100644 index 00000000..a03daa8c --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/retrystore/retrystore.go @@ -0,0 +1,96 @@ +// Package retrystore provides a datastore wrapper which +// allows to retry operations. +package retrystore + +import ( + "fmt" + "time" + + ds "github.com/ipfs/go-datastore" +) + +// Datastore wraps a Batching datastore with a +// user-provided TempErrorFunc -which determines if an error +// is a temporal error and thus, worth retrying-, an amount of Retries +// -which specify how many times to retry an operation after +// a temporal error- and a base Delay, which is multiplied by the +// current retry and performs a pause before attempting the operation again. +type Datastore struct { + TempErrFunc func(error) bool + Retries int + Delay time.Duration + + ds.Batching +} + +var errFmtString = "ran out of retries trying to get past temporary error: %s" + +func (d *Datastore) runOp(op func() error) error { + err := op() + if err == nil || !d.TempErrFunc(err) { + return err + } + + for i := 0; i < d.Retries; i++ { + time.Sleep(time.Duration(i+1) * d.Delay) + + err = op() + if err == nil || !d.TempErrFunc(err) { + return err + } + } + + return fmt.Errorf(errFmtString, err) +} + +// DiskUsage implements the PersistentDatastore interface. +func (d *Datastore) DiskUsage() (uint64, error) { + var size uint64 + err := d.runOp(func() error { + var err error + size, err = ds.DiskUsage(d.Batching) + return err + }) + return size, err +} + +// Get retrieves a value given a key. +func (d *Datastore) Get(k ds.Key) ([]byte, error) { + var val []byte + err := d.runOp(func() error { + var err error + val, err = d.Batching.Get(k) + return err + }) + + return val, err +} + +// Put stores a key/value. +func (d *Datastore) Put(k ds.Key, val []byte) error { + return d.runOp(func() error { + return d.Batching.Put(k, val) + }) +} + +// Has checks if a key is stored. +func (d *Datastore) Has(k ds.Key) (bool, error) { + var has bool + err := d.runOp(func() error { + var err error + has, err = d.Batching.Has(k) + return err + }) + return has, err +} + +// GetSize returns the size of the value in the datastore, if present. +func (d *Datastore) GetSize(k ds.Key) (int, error) { + var size int + err := d.runOp(func() error { + var err error + size, err = d.Batching.GetSize(k) + return err + }) + return size, err +} diff --git a/vendor/github.com/ipfs/go-datastore/sync/sync.go b/vendor/github.com/ipfs/go-datastore/sync/sync.go new file mode 100644 index 00000000..5a4bb0e7 --- /dev/null +++ b/vendor/github.com/ipfs/go-datastore/sync/sync.go @@ -0,0 +1,167 @@ +package sync + +import ( + "sync" + + ds "github.com/ipfs/go-datastore" + dsq "github.com/ipfs/go-datastore/query" +) + +// MutexDatastore contains a child datastire and a mutex. +// used for coarse sync +type MutexDatastore struct { + sync.RWMutex + + child ds.Datastore +} + +// MutexWrap constructs a datastore with a coarse lock around the entire +// datastore, for every single operation. +func MutexWrap(d ds.Datastore) *MutexDatastore { + return &MutexDatastore{child: d} +} + +// Children implements Shim +func (d *MutexDatastore) Children() []ds.Datastore { + return []ds.Datastore{d.child} +} + +// Put implements Datastore.Put +func (d *MutexDatastore) Put(key ds.Key, value []byte) (err error) { + d.Lock() + defer d.Unlock() + return d.child.Put(key, value) +} + +// Get implements Datastore.Get +func (d *MutexDatastore) Get(key ds.Key) (value []byte, err error) { + d.RLock() + defer d.RUnlock() + return d.child.Get(key) +} + +// Has implements Datastore.Has +func (d *MutexDatastore) Has(key ds.Key) (exists bool, err error) { + d.RLock() + defer d.RUnlock() + return d.child.Has(key) +} + +// GetSize implements Datastore.GetSize +func (d *MutexDatastore) GetSize(key ds.Key) (size int, err error) { + d.RLock() + defer d.RUnlock() + return d.child.GetSize(key) +} + +// Delete implements Datastore.Delete +func (d *MutexDatastore) Delete(key ds.Key) (err error) { + d.Lock() + defer d.Unlock() + return d.child.Delete(key) +} + +// Query implements Datastore.Query +func (d *MutexDatastore) Query(q dsq.Query) (dsq.Results, error) { + d.RLock() + defer d.RUnlock() + + // Apply the entire query while locked. Non-sync datastores may not + // allow concurrent queries. + + results, err := d.child.Query(q) + if err != nil { + return nil, err + } + + entries, err1 := results.Rest() + err2 := results.Close() + switch { + case err1 != nil: + return nil, err1 + case err2 != nil: + return nil, err2 + } + return dsq.ResultsWithEntries(q, entries), nil +} + +func (d *MutexDatastore) Batch() (ds.Batch, error) { + d.RLock() + defer d.RUnlock() + bds, ok := d.child.(ds.Batching) + if !ok { + return nil, ds.ErrBatchUnsupported + } + + b, err := bds.Batch() + if err != nil { + return nil, err + } + return &syncBatch{ + batch: b, + mds: d, + }, nil +} + +func (d *MutexDatastore) Close() error { + d.RWMutex.Lock() + defer d.RWMutex.Unlock() + return d.child.Close() +} + +// DiskUsage implements the PersistentDatastore interface. +func (d *MutexDatastore) DiskUsage() (uint64, error) { + d.RLock() + defer d.RUnlock() + return ds.DiskUsage(d.child) +} + +type syncBatch struct { + batch ds.Batch + mds *MutexDatastore +} + +func (b *syncBatch) Put(key ds.Key, val []byte) error { + b.mds.Lock() + defer b.mds.Unlock() + return b.batch.Put(key, val) +} + +func (b *syncBatch) Delete(key ds.Key) error { + b.mds.Lock() + defer b.mds.Unlock() + return b.batch.Delete(key) +} + +func (b *syncBatch) Commit() error { + b.mds.Lock() + defer b.mds.Unlock() + return b.batch.Commit() +} + +func (d *MutexDatastore) Check() error { + if c, ok := d.child.(ds.CheckedDatastore); ok { + d.RWMutex.Lock() + defer d.RWMutex.Unlock() + return c.Check() + } + return nil +} + +func (d *MutexDatastore) Scrub() error { + if c, ok := d.child.(ds.ScrubbedDatastore); ok { + d.RWMutex.Lock() + defer d.RWMutex.Unlock() + return c.Scrub() + } + return nil +} + +func (d *MutexDatastore) CollectGarbage() error { + if c, ok := d.child.(ds.GCDatastore); ok { + d.RWMutex.Lock() + defer d.RWMutex.Unlock() + return c.CollectGarbage() + } + return nil +} diff --git a/vendor/github.com/ipfs/go-ds-measure/.gitignore b/vendor/github.com/ipfs/go-ds-measure/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/ipfs/go-ds-measure/.travis.yml b/vendor/github.com/ipfs/go-ds-measure/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ds-measure/LICENSE b/vendor/github.com/ipfs/go-ds-measure/LICENSE new file mode 100644 index 00000000..f2049023 --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2016 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ds-measure/Makefile b/vendor/github.com/ipfs/go-ds-measure/Makefile new file mode 100644 index 00000000..54152565 --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/ipfs/go-ds-measure/go.mod b/vendor/github.com/ipfs/go-ds-measure/go.mod new file mode 100644 index 00000000..701ed5c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/go.mod @@ -0,0 +1,6 @@ +module github.com/ipfs/go-ds-measure + +require ( + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-metrics-interface v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ds-measure/go.sum b/vendor/github.com/ipfs/go-ds-measure/go.sum new file mode 100644 index 00000000..fb24202d --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/go.sum @@ -0,0 +1,18 @@ +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/ipfs/go-ds-measure/measure.go b/vendor/github.com/ipfs/go-ds-measure/measure.go new file mode 100644 index 00000000..c8e83f38 --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/measure.go @@ -0,0 +1,332 @@ +// Package measure provides a Datastore wrapper that records metrics +// using github.com/ipfs/go-metrics-interface +package measure + +import ( + "io" + "time" + + "github.com/ipfs/go-datastore" + "github.com/ipfs/go-datastore/query" + "github.com/ipfs/go-metrics-interface" +) + +var ( + // sort latencies in buckets with following upper bounds in seconds + datastoreLatencyBuckets = []float64{1e-4, 1e-3, 1e-2, 1e-1, 1} + + // sort sizes in buckets with following upper bounds in bytes + datastoreSizeBuckets = []float64{1 << 6, 1 << 12, 1 << 18, 1 << 24} +) + +// New wraps the datastore, providing metrics on the operations. The +// metrics are registered with names starting with prefix and a dot. +func New(prefix string, ds datastore.Datastore) *measure { + m := &measure{ + backend: ds, + + putNum: metrics.New(prefix+".put_total", "Total number of Datastore.Put calls").Counter(), + putErr: metrics.New(prefix+".put.errors_total", "Number of errored Datastore.Put calls").Counter(), + putLatency: metrics.New(prefix+".put.latency_seconds", + "Latency distribution of Datastore.Put calls").Histogram(datastoreLatencyBuckets), + putSize: metrics.New(prefix+".put.size_bytes", + "Size distribution of stored byte slices").Histogram(datastoreSizeBuckets), + + getNum: metrics.New(prefix+".get_total", "Total number of Datastore.Get calls").Counter(), + getErr: metrics.New(prefix+".get.errors_total", "Number of errored Datastore.Get calls").Counter(), + getLatency: metrics.New(prefix+".get.latency_seconds", + "Latency distribution of Datastore.Get calls").Histogram(datastoreLatencyBuckets), + getSize: metrics.New(prefix+".get.size_bytes", + "Size distribution of retrieved byte slices").Histogram(datastoreSizeBuckets), + + hasNum: metrics.New(prefix+".has_total", "Total number of Datastore.Has calls").Counter(), + hasErr: metrics.New(prefix+".has.errors_total", "Number of errored Datastore.Has calls").Counter(), + hasLatency: metrics.New(prefix+".has.latency_seconds", + "Latency distribution of Datastore.Has calls").Histogram(datastoreLatencyBuckets), + getsizeNum: metrics.New(prefix+".getsize_total", "Total number of Datastore.GetSize calls").Counter(), + getsizeErr: metrics.New(prefix+".getsize.errors_total", "Number of errored Datastore.GetSize calls").Counter(), + getsizeLatency: metrics.New(prefix+".getsize.latency_seconds", + "Latency distribution of Datastore.GetSize calls").Histogram(datastoreLatencyBuckets), + + deleteNum: metrics.New(prefix+".delete_total", "Total number of Datastore.Delete calls").Counter(), + deleteErr: metrics.New(prefix+".delete.errors_total", "Number of errored Datastore.Delete calls").Counter(), + deleteLatency: metrics.New(prefix+".delete.latency_seconds", + "Latency distribution of Datastore.Delete calls").Histogram(datastoreLatencyBuckets), + + queryNum: metrics.New(prefix+".query_total", "Total number of Datastore.Query calls").Counter(), + queryErr: metrics.New(prefix+".query.errors_total", "Number of errored Datastore.Query calls").Counter(), + queryLatency: metrics.New(prefix+".query.latency_seconds", + "Latency distribution of Datastore.Query calls").Histogram(datastoreLatencyBuckets), + + checkNum: metrics.New(prefix+".check_total", "Total number of Datastore.Check calls").Counter(), + checkErr: metrics.New(prefix+".check.errors_total", "Number of errored Datastore.Check calls").Counter(), + checkLatency: metrics.New(prefix+".check.latency_seconds", + "Latency distribution of Datastore.Check calls").Histogram(datastoreLatencyBuckets), + + scrubNum: metrics.New(prefix+".scrub_total", "Total number of Datastore.Scrub calls").Counter(), + scrubErr: metrics.New(prefix+".scrub.errors_total", "Number of errored Datastore.Scrub calls").Counter(), + scrubLatency: metrics.New(prefix+".scrub.latency_seconds", + "Latency distribution of Datastore.Scrub calls").Histogram(datastoreLatencyBuckets), + + gcNum: metrics.New(prefix+".gc_total", "Total number of Datastore.CollectGarbage calls").Counter(), + gcErr: metrics.New(prefix+".gc.errors_total", "Number of errored Datastore.CollectGarbage calls").Counter(), + gcLatency: metrics.New(prefix+".gc.latency_seconds", + "Latency distribution of Datastore.CollectGarbage calls").Histogram(datastoreLatencyBuckets), + + duNum: metrics.New(prefix+".du_total", "Total number of Datastore.DiskUsage calls").Counter(), + duErr: metrics.New(prefix+".du.errors_total", "Number of errored Datastore.DiskUsage calls").Counter(), + duLatency: metrics.New(prefix+".du.latency_seconds", + "Latency distribution of Datastore.DiskUsage calls").Histogram(datastoreLatencyBuckets), + } + return m +} + +type measure struct { + backend datastore.Datastore + + putNum metrics.Counter + putErr metrics.Counter + putLatency metrics.Histogram + putSize metrics.Histogram + + getNum metrics.Counter + getErr metrics.Counter + getLatency metrics.Histogram + getSize metrics.Histogram + + hasNum metrics.Counter + hasErr metrics.Counter + hasLatency metrics.Histogram + + getsizeNum metrics.Counter + getsizeErr metrics.Counter + getsizeLatency metrics.Histogram + + deleteNum metrics.Counter + deleteErr metrics.Counter + deleteLatency metrics.Histogram + + queryNum metrics.Counter + queryErr metrics.Counter + queryLatency metrics.Histogram + + checkNum metrics.Counter + checkErr metrics.Counter + checkLatency metrics.Histogram + + scrubNum metrics.Counter + scrubErr metrics.Counter + scrubLatency metrics.Histogram + + gcNum metrics.Counter + gcErr metrics.Counter + gcLatency metrics.Histogram + + duNum metrics.Counter + duErr metrics.Counter + duLatency metrics.Histogram +} + +func recordLatency(h metrics.Histogram, start time.Time) { + elapsed := time.Since(start) + h.Observe(elapsed.Seconds()) +} + +func (m *measure) Put(key datastore.Key, value []byte) error { + defer recordLatency(m.putLatency, time.Now()) + m.putNum.Inc() + m.putSize.Observe(float64(len(value))) + err := m.backend.Put(key, value) + if err != nil { + m.putErr.Inc() + } + return err +} + +func (m *measure) Get(key datastore.Key) (value []byte, err error) { + defer recordLatency(m.getLatency, time.Now()) + m.getNum.Inc() + value, err = m.backend.Get(key) + switch err { + case nil: + m.getSize.Observe(float64(len(value))) + case datastore.ErrNotFound: + // Not really an error. + default: + m.getErr.Inc() + } + return value, err +} + +func (m *measure) Has(key datastore.Key) (exists bool, err error) { + defer recordLatency(m.hasLatency, time.Now()) + m.hasNum.Inc() + exists, err = m.backend.Has(key) + if err != nil { + m.hasErr.Inc() + } + return exists, err +} + +func (m *measure) GetSize(key datastore.Key) (size int, err error) { + defer recordLatency(m.getsizeLatency, time.Now()) + m.hasNum.Inc() + size, err = m.backend.GetSize(key) + switch err { + case nil, datastore.ErrNotFound: + default: + m.getsizeErr.Inc() + } + return size, err +} + +func (m *measure) Delete(key datastore.Key) error { + defer recordLatency(m.deleteLatency, time.Now()) + m.deleteNum.Inc() + err := m.backend.Delete(key) + if err != nil { + m.deleteErr.Inc() + } + return err +} + +func (m *measure) Query(q query.Query) (query.Results, error) { + defer recordLatency(m.queryLatency, time.Now()) + m.queryNum.Inc() + res, err := m.backend.Query(q) + if err != nil { + m.queryErr.Inc() + } + return res, err +} + +func (m *measure) Check() error { + defer recordLatency(m.checkLatency, time.Now()) + m.checkNum.Inc() + if c, ok := m.backend.(datastore.CheckedDatastore); ok { + err := c.Check() + if err != nil { + m.checkErr.Inc() + } + return err + } + return nil +} + +func (m *measure) Scrub() error { + defer recordLatency(m.scrubLatency, time.Now()) + m.scrubNum.Inc() + if c, ok := m.backend.(datastore.ScrubbedDatastore); ok { + err := c.Scrub() + if err != nil { + m.scrubErr.Inc() + } + return err + } + return nil +} + +func (m *measure) CollectGarbage() error { + defer recordLatency(m.gcLatency, time.Now()) + m.gcNum.Inc() + if c, ok := m.backend.(datastore.GCDatastore); ok { + err := c.CollectGarbage() + if err != nil { + m.gcErr.Inc() + } + return err + } + return nil +} + +func (m *measure) DiskUsage() (uint64, error) { + defer recordLatency(m.duLatency, time.Now()) + m.duNum.Inc() + size, err := datastore.DiskUsage(m.backend) + if err != nil { + m.duErr.Inc() + } + return size, err +} + +type measuredBatch struct { + puts int + deletes int + + putts datastore.Batch + delts datastore.Batch + + m *measure +} + +func (m *measure) Batch() (datastore.Batch, error) { + bds, ok := m.backend.(datastore.Batching) + if !ok { + return nil, datastore.ErrBatchUnsupported + } + pb, err := bds.Batch() + if err != nil { + return nil, err + } + + db, err := bds.Batch() + if err != nil { + return nil, err + } + + return &measuredBatch{ + putts: pb, + delts: db, + + m: m, + }, nil +} + +func (mt *measuredBatch) Put(key datastore.Key, val []byte) error { + mt.puts++ + mt.m.putSize.Observe(float64(len(val))) + return mt.putts.Put(key, val) +} + +func (mt *measuredBatch) Delete(key datastore.Key) error { + mt.deletes++ + return mt.delts.Delete(key) +} + +func (mt *measuredBatch) Commit() error { + err := logBatchCommit(mt.delts, mt.deletes, mt.m.deleteNum, mt.m.deleteErr, mt.m.deleteLatency) + if err != nil { + return err + } + + err = logBatchCommit(mt.putts, mt.puts, mt.m.putNum, mt.m.putErr, mt.m.putLatency) + if err != nil { + return err + } + + return nil +} + +func logBatchCommit(b datastore.Batch, n int, num, errs metrics.Counter, lat metrics.Histogram) error { + if n > 0 { + before := time.Now() + err := b.Commit() + took := time.Since(before) / time.Duration(n) + num.Add(float64(n)) + for i := 0; i < n; i++ { + lat.Observe(took.Seconds()) + } + if err != nil { + errs.Inc() + return err + } + } + return nil +} + +func (m *measure) Close() error { + if c, ok := m.backend.(io.Closer); ok { + return c.Close() + } + return nil +} diff --git a/vendor/github.com/ipfs/go-ds-measure/package.json b/vendor/github.com/ipfs/go-ds-measure/package.json new file mode 100644 index 00000000..9d31f488 --- /dev/null +++ b/vendor/github.com/ipfs/go-ds-measure/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/ipfs/go-ds-measure" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ds-measure" + }, + "gxDependencies": [ + { + "author": "ipfs", + "hash": "QmekzFM3hPZjTjUFGTABdQkEnQ3PTiMstY198PwSFr5w1Q", + "name": "go-metrics-interface", + "version": "0.2.0" + }, + { + "author": "jbenet", + "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", + "name": "go-datastore", + "version": "3.6.1" + } + ], + "gxVersion": "0.8.0", + "language": "go", + "license": "", + "name": "go-ds-measure", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.4.5" +} + diff --git a/vendor/github.com/ipfs/go-fs-lock/.gitignore b/vendor/github.com/ipfs/go-fs-lock/.gitignore new file mode 100644 index 00000000..fcd2aa0d --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/.gitignore @@ -0,0 +1,6 @@ +*.swp +*.out +*.coverprofile +*.test +*.orig +*~ diff --git a/vendor/github.com/ipfs/go-fs-lock/.travis.yml b/vendor/github.com/ipfs/go-fs-lock/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-fs-lock/LICENSE b/vendor/github.com/ipfs/go-fs-lock/LICENSE new file mode 100644 index 00000000..79bd9c59 --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-fs-lock/README.md b/vendor/github.com/ipfs/go-fs-lock/README.md new file mode 100644 index 00000000..adc6c63f --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/README.md @@ -0,0 +1,66 @@ +# go-fs-lock + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-fs-lock?status.svg)](https://godoc.org/github.com/ipfs/go-fs-lock) +[![Coverage Status](https://coveralls.io/repos/github/ipfs/go-fs-lock/badge.svg?branch=master)](https://coveralls.io/github/ipfs/go-fs-lock?branch=master) +[![Travis CI](https://travis-ci.org/ipfs/go-fs-lock.svg?branch=master)](https://travis-ci.org/ipfs/go-fs-lock) + +> Filesystem based locking + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-fs-lock` is a standard Go module which can be installed with: + +```sh +go get github.com/ipfs/go-fs-lock +``` + +Note that `go-fs-lock` is packaged with Gx, so it is recommended to use Gx to install and use it (see Usage section). + +## Usage + +### Using Gx and Gx-go + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/ipfs/go-fs-lock +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +### Running tests + +Before running tests, please run: + +```sh +make deps +``` + +This will make sure that dependencies are rewritten to known working versions. + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-fs-lock/fslock.go b/vendor/github.com/ipfs/go-fs-lock/fslock.go new file mode 100644 index 00000000..4b33acb5 --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/fslock.go @@ -0,0 +1,76 @@ +package fslock + +import ( + "fmt" + "io" + "os" + "path" + "strings" + "syscall" + + "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" + lock "go4.org/lock" +) + +// log is the fsrepo logger +var log = logging.Logger("lock") + +func errPerm(path string) error { + return fmt.Errorf("failed to take lock at %s: permission denied", path) +} + +// Lock creates the lock. +func Lock(confdir, lockFile string) (io.Closer, error) { + return lock.Lock(path.Join(confdir, lockFile)) +} + +// Locked checks if there is a lock already set. +func Locked(confdir, lockFile string) (bool, error) { + log.Debugf("Checking lock") + if !util.FileExists(path.Join(confdir, lockFile)) { + log.Debugf("File doesn't exist: %s", path.Join(confdir, lockFile)) + return false, nil + } + + lk, err := Lock(confdir, lockFile) + if err != nil { + // EAGAIN == someone else has the lock + if err == syscall.EAGAIN { + log.Debugf("Someone else has the lock: %s", path.Join(confdir, lockFile)) + return true, nil + } + if strings.Contains(err.Error(), "resource temporarily unavailable") { + log.Debugf("Can't lock file: %s.\n reason: %s", path.Join(confdir, lockFile), err.Error()) + return true, nil + } + + // we hold the lock ourselves + if strings.Contains(err.Error(), "already locked") { + log.Debugf("Lock is already held by us: %s", path.Join(confdir, lockFile)) + return true, nil + } + + // lock fails on permissions error + if os.IsPermission(err) { + log.Debugf("Lock fails on permissions error") + return false, errPerm(confdir) + } + if isLockCreatePermFail(err) { + log.Debugf("Lock fails on permissions error") + return false, errPerm(confdir) + } + + // otherwise, we cant guarantee anything, error out + return false, err + } + + log.Debugf("No one has a lock") + lk.Close() + return false, nil +} + +func isLockCreatePermFail(err error) bool { + s := err.Error() + return strings.Contains(s, "Lock Create of") && strings.Contains(s, "permission denied") +} diff --git a/vendor/github.com/ipfs/go-fs-lock/go.mod b/vendor/github.com/ipfs/go-fs-lock/go.mod new file mode 100644 index 00000000..8b3764e9 --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/go.mod @@ -0,0 +1,7 @@ +module github.com/ipfs/go-fs-lock + +require ( + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + go4.org v0.0.0-20190218023631-ce4c26f7be8e +) diff --git a/vendor/github.com/ipfs/go-fs-lock/go.sum b/vendor/github.com/ipfs/go-fs-lock/go.sum new file mode 100644 index 00000000..f08985a5 --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/go.sum @@ -0,0 +1,45 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +go4.org v0.0.0-20190218023631-ce4c26f7be8e h1:m9LfARr2VIOW0vsV19kEKp/sWQvZnGobA8JHui/XJoY= +go4.org v0.0.0-20190218023631-ce4c26f7be8e/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/ipfs/go-fs-lock/package.json b/vendor/github.com/ipfs/go-fs-lock/package.json new file mode 100644 index 00000000..9000978e --- /dev/null +++ b/vendor/github.com/ipfs/go-fs-lock/package.json @@ -0,0 +1,35 @@ +{ + "author": "dignifiedquire", + "bugs": { + "url": "https://github.com/ipfs/go-fs-lock/issues" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-fs-lock" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "hsanjuan", + "hash": "QmYDxsntDcWC7CTisDmeorEvDVjkRAjjY9Vr9DJ6HSkXMS", + "name": "go4-lock", + "version": "0.0.3" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-fs-lock", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.11" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-addr/.travis.yml b/vendor/github.com/ipfs/go-ipfs-addr/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-addr/LICENSE b/vendor/github.com/ipfs/go-ipfs-addr/LICENSE new file mode 100644 index 00000000..83f48ce5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Whyrusleeping + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-addr/Makefile b/vendor/github.com/ipfs/go-ipfs-addr/Makefile new file mode 100644 index 00000000..4f5206e4 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/Makefile @@ -0,0 +1,13 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-ipfs-addr/README.md b/vendor/github.com/ipfs/go-ipfs-addr/README.md new file mode 100644 index 00000000..0ad6de5f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/README.md @@ -0,0 +1,47 @@ +go-ipfs-addr +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/ipfs/go-ipfs-addr/badge.svg?branch=master)](https://coveralls.io/github/ipfs/go-ipfs-addr?branch=master) +[![Travis CI](https://travis-ci.org/ipfs/go-ipfs-addr.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-addr) + +> A parsing utility for ipfs multiaddrs. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Examples + +```go +import "github.com/ipfs/go-ipfs-addr" + +addrstr := "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ" +a, _ := ipfsaddr.ParseString(addr) + +fmt.Println("peer id: ", a.ID()) +fmt.Println("transport multiaddr: ", a.Transport()) +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Whyrusleeping diff --git a/vendor/github.com/ipfs/go-ipfs-addr/codecov.yml b/vendor/github.com/ipfs/go-ipfs-addr/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-ipfs-addr/go.mod b/vendor/github.com/ipfs/go-ipfs-addr/go.mod new file mode 100644 index 00000000..ebb10e2f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/go.mod @@ -0,0 +1,7 @@ +module github.com/ipfs/go-ipfs-addr + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipfs-addr/go.sum b/vendor/github.com/ipfs/go-ipfs-addr/go.sum new file mode 100644 index 00000000..df30b1ad --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/go.sum @@ -0,0 +1,77 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-ipfs-addr/ipfsaddr.go b/vendor/github.com/ipfs/go-ipfs-addr/ipfsaddr.go new file mode 100644 index 00000000..52ad72e7 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/ipfsaddr.go @@ -0,0 +1,114 @@ +package ipfsaddr + +import ( + "errors" + "strings" + + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("ipfsaddr") + +// ErrInvalidAddr signals an address is not a valid IPFS address. +var ErrInvalidAddr = errors.New("invalid IPFS address") + +type IPFSAddr interface { + ID() peer.ID + Multiaddr() ma.Multiaddr + Transport() ma.Multiaddr + String() string + Equal(b interface{}) bool +} + +type ipfsAddr struct { + ma ma.Multiaddr + id peer.ID +} + +func (a ipfsAddr) ID() peer.ID { + return a.id +} + +func (a ipfsAddr) Multiaddr() ma.Multiaddr { + return a.ma +} + +func (a ipfsAddr) Transport() ma.Multiaddr { + return Transport(a) +} + +func (a ipfsAddr) String() string { + return a.ma.String() +} + +func (a ipfsAddr) Equal(b interface{}) bool { + if ib, ok := b.(IPFSAddr); ok { + return a.Multiaddr().Equal(ib.Multiaddr()) + } + if mb, ok := b.(ma.Multiaddr); ok { + return a.Multiaddr().Equal(mb) + } + return false +} + +// ParseString parses a string representation of an address into an IPFSAddr +func ParseString(str string) (a IPFSAddr, err error) { + if str == "" { + return nil, ErrInvalidAddr + } + + m, err := ma.NewMultiaddr(str) + if err != nil { + return nil, err + } + + return ParseMultiaddr(m) +} + +// ParseMultiaddr parses a multiaddr into an IPFSAddr +func ParseMultiaddr(m ma.Multiaddr) (a IPFSAddr, err error) { + // never panic. + defer func() { + if r := recover(); r != nil { + log.Debug("recovered from panic: ", r) + a = nil + err = ErrInvalidAddr + } + }() + + if m == nil { + return nil, ErrInvalidAddr + } + + // make sure it's an IPFS addr + parts := ma.Split(m) + if len(parts) < 1 { + return nil, ErrInvalidAddr + } + ipfspart := parts[len(parts)-1] // last part + if ipfspart.Protocols()[0].Code != ma.P_IPFS { + return nil, ErrInvalidAddr + } + + // make sure 'ipfs id' parses as a peer.ID + peerIdParts := strings.Split(ipfspart.String(), "/") + peerIdStr := peerIdParts[len(peerIdParts)-1] + id, err := peer.IDB58Decode(peerIdStr) + if err != nil { + return nil, err + } + + return ipfsAddr{ma: m, id: id}, nil +} + +func Transport(iaddr IPFSAddr) ma.Multiaddr { + maddr := iaddr.Multiaddr() + + split := ma.Split(maddr) + if len(split) == 1 { + return nil + } + return ma.Join(split[:len(split)-1]...) +} diff --git a/vendor/github.com/ipfs/go-ipfs-addr/package.json b/vendor/github.com/ipfs/go-ipfs-addr/package.json new file mode 100644 index 00000000..3b0615a3 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-addr/package.json @@ -0,0 +1,35 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-addr" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-addr" + }, + "gxDependencies": [ + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.11.0", + "language": "go", + "license": "", + "name": "go-ipfs-addr", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.33" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/.travis.yml b/vendor/github.com/ipfs/go-ipfs-blockstore/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/LICENSE b/vendor/github.com/ipfs/go-ipfs-blockstore/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/Makefile b/vendor/github.com/ipfs/go-ipfs-blockstore/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/README.md b/vendor/github.com/ipfs/go-ipfs-blockstore/README.md new file mode 100644 index 00000000..446a95e2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/README.md @@ -0,0 +1,44 @@ +# go-ipfs-blockstore + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-blockstore?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-blockstore) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-blockstore.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-blockstore) + +> go-ipfs-blockstore implements a thin wrapper over a datastore, giving a clean interface for Getting and Putting block objects. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-blockstore` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-blockstore +``` + +## Usage + +``` +import "github.com/ipfs/go-ipfs-blockstore" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-blockstore) + +This module uses [Gx](https://github.com/whyrusleeping/gx) to manage dependencies. You can use `make all` to build it with the `gx` dependencies. + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/arc_cache.go b/vendor/github.com/ipfs/go-ipfs-blockstore/arc_cache.go new file mode 100644 index 00000000..231fd855 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/arc_cache.go @@ -0,0 +1,182 @@ +package blockstore + +import ( + "context" + + lru "github.com/hashicorp/golang-lru" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + metrics "github.com/ipfs/go-metrics-interface" +) + +type cacheHave bool +type cacheSize int + +// arccache wraps a BlockStore with an Adaptive Replacement Cache (ARC) for +// block Cids. This provides block access-time improvements, allowing +// to short-cut many searches without query-ing the underlying datastore. +type arccache struct { + arc *lru.ARCCache + blockstore Blockstore + + hits metrics.Counter + total metrics.Counter +} + +func newARCCachedBS(ctx context.Context, bs Blockstore, lruSize int) (*arccache, error) { + arc, err := lru.NewARC(lruSize) + if err != nil { + return nil, err + } + c := &arccache{arc: arc, blockstore: bs} + c.hits = metrics.NewCtx(ctx, "arc.hits_total", "Number of ARC cache hits").Counter() + c.total = metrics.NewCtx(ctx, "arc_total", "Total number of ARC cache requests").Counter() + + return c, nil +} + +func (b *arccache) DeleteBlock(k cid.Cid) error { + if has, _, ok := b.hasCached(k); ok && !has { + return ErrNotFound + } + + b.arc.Remove(k) // Invalidate cache before deleting. + err := b.blockstore.DeleteBlock(k) + switch err { + case nil, ErrNotFound: + b.cacheHave(k, false) + return err + default: + return err + } +} + +// if ok == false has is inconclusive +// if ok == true then has respons to question: is it contained +func (b *arccache) hasCached(k cid.Cid) (has bool, size int, ok bool) { + b.total.Inc() + if !k.Defined() { + log.Error("undefined cid in arccache") + // Return cache invalid so the call to blockstore happens + // in case of invalid key and correct error is created. + return false, -1, false + } + + h, ok := b.arc.Get(k.KeyString()) + if ok { + b.hits.Inc() + switch h := h.(type) { + case cacheHave: + return bool(h), -1, true + case cacheSize: + return true, int(h), true + } + } + return false, -1, false +} + +func (b *arccache) Has(k cid.Cid) (bool, error) { + if has, _, ok := b.hasCached(k); ok { + return has, nil + } + has, err := b.blockstore.Has(k) + if err != nil { + return false, err + } + b.cacheHave(k, has) + return has, nil +} + +func (b *arccache) GetSize(k cid.Cid) (int, error) { + if has, blockSize, ok := b.hasCached(k); ok { + if has { + return blockSize, nil + } + return -1, ErrNotFound + } + blockSize, err := b.blockstore.GetSize(k) + if err == ErrNotFound { + b.cacheHave(k, false) + } else if err == nil { + b.cacheSize(k, blockSize) + } + return blockSize, err +} + +func (b *arccache) Get(k cid.Cid) (blocks.Block, error) { + if !k.Defined() { + log.Error("undefined cid in arc cache") + return nil, ErrNotFound + } + + if has, _, ok := b.hasCached(k); ok && !has { + return nil, ErrNotFound + } + + bl, err := b.blockstore.Get(k) + if bl == nil && err == ErrNotFound { + b.cacheHave(k, false) + } else if bl != nil { + b.cacheSize(k, len(bl.RawData())) + } + return bl, err +} + +func (b *arccache) Put(bl blocks.Block) error { + if has, _, ok := b.hasCached(bl.Cid()); ok && has { + return nil + } + + err := b.blockstore.Put(bl) + if err == nil { + b.cacheSize(bl.Cid(), len(bl.RawData())) + } + return err +} + +func (b *arccache) PutMany(bs []blocks.Block) error { + var good []blocks.Block + for _, block := range bs { + // call put on block if result is inconclusive or we are sure that + // the block isn't in storage + if has, _, ok := b.hasCached(block.Cid()); !ok || (ok && !has) { + good = append(good, block) + } + } + err := b.blockstore.PutMany(good) + if err != nil { + return err + } + for _, block := range good { + b.cacheSize(block.Cid(), len(block.RawData())) + } + return nil +} + +func (b *arccache) HashOnRead(enabled bool) { + b.blockstore.HashOnRead(enabled) +} + +func (b *arccache) cacheHave(c cid.Cid, have bool) { + b.arc.Add(c.KeyString(), cacheHave(have)) +} + +func (b *arccache) cacheSize(c cid.Cid, blockSize int) { + b.arc.Add(c.KeyString(), cacheSize(blockSize)) +} + +func (b *arccache) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) { + return b.blockstore.AllKeysChan(ctx) +} + +func (b *arccache) GCLock() Unlocker { + return b.blockstore.(GCBlockstore).GCLock() +} + +func (b *arccache) PinLock() Unlocker { + return b.blockstore.(GCBlockstore).PinLock() +} + +func (b *arccache) GCRequested() bool { + return b.blockstore.(GCBlockstore).GCRequested() +} diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/blockstore.go b/vendor/github.com/ipfs/go-ipfs-blockstore/blockstore.go new file mode 100644 index 00000000..f57a90af --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/blockstore.go @@ -0,0 +1,284 @@ +// Package blockstore implements a thin wrapper over a datastore, giving a +// clean interface for Getting and Putting block objects. +package blockstore + +import ( + "context" + "errors" + "sync" + "sync/atomic" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + dsns "github.com/ipfs/go-datastore/namespace" + dsq "github.com/ipfs/go-datastore/query" + dshelp "github.com/ipfs/go-ipfs-ds-help" + logging "github.com/ipfs/go-log" +) + +var log = logging.Logger("blockstore") + +// BlockPrefix namespaces blockstore datastores +var BlockPrefix = ds.NewKey("blocks") + +// ErrHashMismatch is an error returned when the hash of a block +// is different than expected. +var ErrHashMismatch = errors.New("block in storage has different hash than requested") + +// ErrNotFound is an error returned when a block is not found. +var ErrNotFound = errors.New("blockstore: block not found") + +// Blockstore wraps a Datastore block-centered methods and provides a layer +// of abstraction which allows to add different caching strategies. +type Blockstore interface { + DeleteBlock(cid.Cid) error + Has(cid.Cid) (bool, error) + Get(cid.Cid) (blocks.Block, error) + + // GetSize returns the CIDs mapped BlockSize + GetSize(cid.Cid) (int, error) + + // Put puts a given block to the underlying datastore + Put(blocks.Block) error + + // PutMany puts a slice of blocks at the same time using batching + // capabilities of the underlying datastore whenever possible. + PutMany([]blocks.Block) error + + // AllKeysChan returns a channel from which + // the CIDs in the Blockstore can be read. It should respect + // the given context, closing the channel if it becomes Done. + AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) + + // HashOnRead specifies if every read block should be + // rehashed to make sure it matches its CID. + HashOnRead(enabled bool) +} + +// GCLocker abstract functionality to lock a blockstore when performing +// garbage-collection operations. +type GCLocker interface { + // GCLock locks the blockstore for garbage collection. No operations + // that expect to finish with a pin should ocurr simultaneously. + // Reading during GC is safe, and requires no lock. + GCLock() Unlocker + + // PinLock locks the blockstore for sequences of puts expected to finish + // with a pin (before GC). Multiple put->pin sequences can write through + // at the same time, but no GC should happen simulatenously. + // Reading during Pinning is safe, and requires no lock. + PinLock() Unlocker + + // GcRequested returns true if GCLock has been called and is waiting to + // take the lock + GCRequested() bool +} + +// GCBlockstore is a blockstore that can safely run garbage-collection +// operations. +type GCBlockstore interface { + Blockstore + GCLocker +} + +// NewGCBlockstore returns a default implementation of GCBlockstore +// using the given Blockstore and GCLocker. +func NewGCBlockstore(bs Blockstore, gcl GCLocker) GCBlockstore { + return gcBlockstore{bs, gcl} +} + +type gcBlockstore struct { + Blockstore + GCLocker +} + +// NewBlockstore returns a default Blockstore implementation +// using the provided datastore.Batching backend. +func NewBlockstore(d ds.Batching) Blockstore { + var dsb ds.Batching + dd := dsns.Wrap(d, BlockPrefix) + dsb = dd + return &blockstore{ + datastore: dsb, + } +} + +type blockstore struct { + datastore ds.Batching + + rehash bool +} + +func (bs *blockstore) HashOnRead(enabled bool) { + bs.rehash = enabled +} + +func (bs *blockstore) Get(k cid.Cid) (blocks.Block, error) { + if !k.Defined() { + log.Error("undefined cid in blockstore") + return nil, ErrNotFound + } + + bdata, err := bs.datastore.Get(dshelp.CidToDsKey(k)) + if err == ds.ErrNotFound { + return nil, ErrNotFound + } + if err != nil { + return nil, err + } + if bs.rehash { + rbcid, err := k.Prefix().Sum(bdata) + if err != nil { + return nil, err + } + + if !rbcid.Equals(k) { + return nil, ErrHashMismatch + } + + return blocks.NewBlockWithCid(bdata, rbcid) + } + return blocks.NewBlockWithCid(bdata, k) +} + +func (bs *blockstore) Put(block blocks.Block) error { + k := dshelp.CidToDsKey(block.Cid()) + + // Has is cheaper than Put, so see if we already have it + exists, err := bs.datastore.Has(k) + if err == nil && exists { + return nil // already stored. + } + return bs.datastore.Put(k, block.RawData()) +} + +func (bs *blockstore) PutMany(blocks []blocks.Block) error { + t, err := bs.datastore.Batch() + if err != nil { + return err + } + for _, b := range blocks { + k := dshelp.CidToDsKey(b.Cid()) + exists, err := bs.datastore.Has(k) + if err == nil && exists { + continue + } + + err = t.Put(k, b.RawData()) + if err != nil { + return err + } + } + return t.Commit() +} + +func (bs *blockstore) Has(k cid.Cid) (bool, error) { + return bs.datastore.Has(dshelp.CidToDsKey(k)) +} + +func (bs *blockstore) GetSize(k cid.Cid) (int, error) { + size, err := bs.datastore.GetSize(dshelp.CidToDsKey(k)) + if err == ds.ErrNotFound { + return -1, ErrNotFound + } + return size, err +} + +func (bs *blockstore) DeleteBlock(k cid.Cid) error { + err := bs.datastore.Delete(dshelp.CidToDsKey(k)) + if err == ds.ErrNotFound { + return ErrNotFound + } + return err +} + +// AllKeysChan runs a query for keys from the blockstore. +// this is very simplistic, in the future, take dsq.Query as a param? +// +// AllKeysChan respects context. +func (bs *blockstore) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) { + + // KeysOnly, because that would be _a lot_ of data. + q := dsq.Query{KeysOnly: true} + res, err := bs.datastore.Query(q) + if err != nil { + return nil, err + } + + output := make(chan cid.Cid, dsq.KeysOnlyBufSize) + go func() { + defer func() { + res.Close() // ensure exit (signals early exit, too) + close(output) + }() + + for { + e, ok := res.NextSync() + if !ok { + return + } + if e.Error != nil { + log.Errorf("blockstore.AllKeysChan got err: %s", e.Error) + return + } + + // need to convert to key.Key using key.KeyFromDsKey. + k, err := dshelp.DsKeyToCid(ds.RawKey(e.Key)) + if err != nil { + log.Warningf("error parsing key from DsKey: %s", err) + continue + } + + select { + case <-ctx.Done(): + return + case output <- k: + } + } + }() + + return output, nil +} + +// NewGCLocker returns a default implementation of +// GCLocker using standard [RW] mutexes. +func NewGCLocker() GCLocker { + return &gclocker{} +} + +type gclocker struct { + lk sync.RWMutex + gcreq int32 +} + +// Unlocker represents an object which can Unlock +// something. +type Unlocker interface { + Unlock() +} + +type unlocker struct { + unlock func() +} + +func (u *unlocker) Unlock() { + u.unlock() + u.unlock = nil // ensure its not called twice +} + +func (bs *gclocker) GCLock() Unlocker { + atomic.AddInt32(&bs.gcreq, 1) + bs.lk.Lock() + atomic.AddInt32(&bs.gcreq, -1) + return &unlocker{bs.lk.Unlock} +} + +func (bs *gclocker) PinLock() Unlocker { + bs.lk.RLock() + return &unlocker{bs.lk.RUnlock} +} + +func (bs *gclocker) GCRequested() bool { + return atomic.LoadInt32(&bs.gcreq) > 0 +} diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/bloom_cache.go b/vendor/github.com/ipfs/go-ipfs-blockstore/bloom_cache.go new file mode 100644 index 00000000..3720d20d --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/bloom_cache.go @@ -0,0 +1,204 @@ +package blockstore + +import ( + "context" + "fmt" + "sync/atomic" + "time" + + bloom "github.com/ipfs/bbloom" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + metrics "github.com/ipfs/go-metrics-interface" +) + +// bloomCached returns a Blockstore that caches Has requests using a Bloom +// filter. bloomSize is size of bloom filter in bytes. hashCount specifies the +// number of hashing functions in the bloom filter (usually known as k). +func bloomCached(ctx context.Context, bs Blockstore, bloomSize, hashCount int) (*bloomcache, error) { + bl, err := bloom.New(float64(bloomSize), float64(hashCount)) + if err != nil { + return nil, err + } + bc := &bloomcache{ + blockstore: bs, + bloom: bl, + hits: metrics.NewCtx(ctx, "bloom.hits_total", + "Number of cache hits in bloom cache").Counter(), + total: metrics.NewCtx(ctx, "bloom_total", + "Total number of requests to bloom cache").Counter(), + buildChan: make(chan struct{}), + } + go func() { + err := bc.build(ctx) + if err != nil { + select { + case <-ctx.Done(): + log.Warning("Cache rebuild closed by context finishing: ", err) + default: + log.Error(err) + } + return + } + if metrics.Active() { + fill := metrics.NewCtx(ctx, "bloom_fill_ratio", + "Ratio of bloom filter fullnes, (updated once a minute)").Gauge() + + t := time.NewTicker(1 * time.Minute) + defer t.Stop() + for { + select { + case <-ctx.Done(): + return + case <-t.C: + fill.Set(bc.bloom.FillRatio()) + } + } + } + }() + return bc, nil +} + +type bloomcache struct { + active int32 + + bloom *bloom.Bloom + buildErr error + + buildChan chan struct{} + blockstore Blockstore + + // Statistics + hits metrics.Counter + total metrics.Counter +} + +func (b *bloomcache) BloomActive() bool { + return atomic.LoadInt32(&b.active) != 0 +} + +func (b *bloomcache) Wait(ctx context.Context) error { + select { + case <-ctx.Done(): + return ctx.Err() + case <-b.buildChan: + return b.buildErr + } +} + +func (b *bloomcache) build(ctx context.Context) error { + evt := log.EventBegin(ctx, "bloomcache.build") + defer evt.Done() + defer close(b.buildChan) + + ch, err := b.blockstore.AllKeysChan(ctx) + if err != nil { + b.buildErr = fmt.Errorf("AllKeysChan failed in bloomcache rebuild with: %v", err) + return b.buildErr + } + for { + select { + case key, ok := <-ch: + if !ok { + atomic.StoreInt32(&b.active, 1) + return nil + } + b.bloom.AddTS(key.Bytes()) // Use binary key, the more compact the better + case <-ctx.Done(): + b.buildErr = ctx.Err() + return b.buildErr + } + } +} + +func (b *bloomcache) DeleteBlock(k cid.Cid) error { + if has, ok := b.hasCached(k); ok && !has { + return ErrNotFound + } + + return b.blockstore.DeleteBlock(k) +} + +// if ok == false has is inconclusive +// if ok == true then has respons to question: is it contained +func (b *bloomcache) hasCached(k cid.Cid) (has bool, ok bool) { + b.total.Inc() + if !k.Defined() { + log.Error("undefined in bloom cache") + // Return cache invalid so call to blockstore + // in case of invalid key is forwarded deeper + return false, false + } + if b.BloomActive() { + blr := b.bloom.HasTS(k.Bytes()) + if !blr { // not contained in bloom is only conclusive answer bloom gives + b.hits.Inc() + return false, true + } + } + return false, false +} + +func (b *bloomcache) Has(k cid.Cid) (bool, error) { + if has, ok := b.hasCached(k); ok { + return has, nil + } + + return b.blockstore.Has(k) +} + +func (b *bloomcache) GetSize(k cid.Cid) (int, error) { + return b.blockstore.GetSize(k) +} + +func (b *bloomcache) Get(k cid.Cid) (blocks.Block, error) { + if has, ok := b.hasCached(k); ok && !has { + return nil, ErrNotFound + } + + return b.blockstore.Get(k) +} + +func (b *bloomcache) Put(bl blocks.Block) error { + // See comment in PutMany + err := b.blockstore.Put(bl) + if err == nil { + b.bloom.AddTS(bl.Cid().Bytes()) + } + return err +} + +func (b *bloomcache) PutMany(bs []blocks.Block) error { + // bloom cache gives only conclusive resulty if key is not contained + // to reduce number of puts we need conclusive information if block is contained + // this means that PutMany can't be improved with bloom cache so we just + // just do a passthrough. + err := b.blockstore.PutMany(bs) + if err != nil { + return err + } + for _, bl := range bs { + b.bloom.AddTS(bl.Cid().Bytes()) + } + return nil +} + +func (b *bloomcache) HashOnRead(enabled bool) { + b.blockstore.HashOnRead(enabled) +} + +func (b *bloomcache) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) { + return b.blockstore.AllKeysChan(ctx) +} + +func (b *bloomcache) GCLock() Unlocker { + return b.blockstore.(GCBlockstore).GCLock() +} + +func (b *bloomcache) PinLock() Unlocker { + return b.blockstore.(GCBlockstore).PinLock() +} + +func (b *bloomcache) GCRequested() bool { + return b.blockstore.(GCBlockstore).GCRequested() +} diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/caching.go b/vendor/github.com/ipfs/go-ipfs-blockstore/caching.go new file mode 100644 index 00000000..798b84ce --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/caching.go @@ -0,0 +1,55 @@ +package blockstore + +import ( + "context" + "errors" + + metrics "github.com/ipfs/go-metrics-interface" +) + +// CacheOpts wraps options for CachedBlockStore(). +// Next to each option is it aproximate memory usage per unit +type CacheOpts struct { + HasBloomFilterSize int // 1 byte + HasBloomFilterHashes int // No size, 7 is usually best, consult bloom papers + HasARCCacheSize int // 32 bytes +} + +// DefaultCacheOpts returns a CacheOpts initialized with default values. +func DefaultCacheOpts() CacheOpts { + return CacheOpts{ + HasBloomFilterSize: 512 << 10, + HasBloomFilterHashes: 7, + HasARCCacheSize: 64 << 10, + } +} + +// CachedBlockstore returns a blockstore wrapped in an ARCCache and +// then in a bloom filter cache, if the options indicate it. +func CachedBlockstore( + ctx context.Context, + bs Blockstore, + opts CacheOpts) (cbs Blockstore, err error) { + cbs = bs + + if opts.HasBloomFilterSize < 0 || opts.HasBloomFilterHashes < 0 || + opts.HasARCCacheSize < 0 { + return nil, errors.New("all options for cache need to be greater than zero") + } + + if opts.HasBloomFilterSize != 0 && opts.HasBloomFilterHashes == 0 { + return nil, errors.New("bloom filter hash count can't be 0 when there is size set") + } + + ctx = metrics.CtxSubScope(ctx, "bs.cache") + + if opts.HasARCCacheSize > 0 { + cbs, err = newARCCachedBS(ctx, cbs, opts.HasARCCacheSize) + } + if opts.HasBloomFilterSize != 0 { + // *8 because of bytes to bits conversion + cbs, err = bloomCached(ctx, cbs, opts.HasBloomFilterSize*8, opts.HasBloomFilterHashes) + } + + return cbs, err +} diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/go.mod b/vendor/github.com/ipfs/go-ipfs-blockstore/go.mod new file mode 100644 index 00000000..6a8f6c7f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/go.mod @@ -0,0 +1,14 @@ +module github.com/ipfs/go-ipfs-blockstore + +require ( + github.com/hashicorp/golang-lru v0.5.1 + github.com/ipfs/bbloom v0.0.1 + github.com/ipfs/go-block-format v0.0.1 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ipfs-ds-help v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-metrics-interface v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/go.sum b/vendor/github.com/ipfs/go-ipfs-blockstore/go.sum new file mode 100644 index 00000000..c18ffbbe --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/go.sum @@ -0,0 +1,75 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-block-format v0.0.1 h1:GjLpqsPNn2KbzA2GuG+hsUyxMhQ1xXgffWqWOee9e9o= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/idstore.go b/vendor/github.com/ipfs/go-ipfs-blockstore/idstore.go new file mode 100644 index 00000000..2a5bf841 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/idstore.go @@ -0,0 +1,86 @@ +package blockstore + +import ( + "context" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + mh "github.com/multiformats/go-multihash" +) + +// idstore wraps a BlockStore to add support for identity hashes +type idstore struct { + bs Blockstore +} + +func NewIdStore(bs Blockstore) Blockstore { + return &idstore{bs} +} + +func extractContents(k cid.Cid) (bool, []byte) { + dmh, err := mh.Decode(k.Hash()) + if err != nil || dmh.Code != mh.ID { + return false, nil + } + return true, dmh.Digest +} + +func (b *idstore) DeleteBlock(k cid.Cid) error { + isId, _ := extractContents(k) + if isId { + return nil + } + return b.bs.DeleteBlock(k) +} + +func (b *idstore) Has(k cid.Cid) (bool, error) { + isId, _ := extractContents(k) + if isId { + return true, nil + } + return b.bs.Has(k) +} + +func (b *idstore) GetSize(k cid.Cid) (int, error) { + isId, bdata := extractContents(k) + if isId { + return len(bdata), nil + } + return b.bs.GetSize(k) +} + +func (b *idstore) Get(k cid.Cid) (blocks.Block, error) { + isId, bdata := extractContents(k) + if isId { + return blocks.NewBlockWithCid(bdata, k) + } + return b.bs.Get(k) +} + +func (b *idstore) Put(bl blocks.Block) error { + isId, _ := extractContents(bl.Cid()) + if isId { + return nil + } + return b.bs.Put(bl) +} + +func (b *idstore) PutMany(bs []blocks.Block) error { + toPut := make([]blocks.Block, 0, len(bs)) + for _, bl := range bs { + isId, _ := extractContents(bl.Cid()) + if isId { + continue + } + toPut = append(toPut, bl) + } + return b.bs.PutMany(toPut) +} + +func (b *idstore) HashOnRead(enabled bool) { + b.bs.HashOnRead(enabled) +} + +func (b *idstore) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) { + return b.bs.AllKeysChan(ctx) +} diff --git a/vendor/github.com/ipfs/go-ipfs-blockstore/package.json b/vendor/github.com/ipfs/go-ipfs-blockstore/package.json new file mode 100644 index 00000000..6a40ca76 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-blockstore/package.json @@ -0,0 +1,65 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-blockstore" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-blockstore" + }, + "gxDependencies": [ + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "jbenet", + "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", + "name": "go-datastore", + "version": "3.6.1" + }, + { + "author": "ipfs", + "hash": "QmekzFM3hPZjTjUFGTABdQkEnQ3PTiMstY198PwSFr5w1Q", + "name": "go-metrics-interface", + "version": "0.2.0" + }, + { + "author": "hashicorp", + "hash": "QmQjMHF8ptRgx4E57UFMiT4YM6kqaJeYxZ1MCDX23aw4rK", + "name": "golang-lru", + "version": "2017.10.18" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "hector", + "hash": "QmXSEqXLCzpCByJU4wqbJ37TcBEj77FKMUWUP1qLh56847", + "name": "go-ipfs-ds-help", + "version": "0.1.7" + }, + { + "author": "kubuxu", + "hash": "QmWaLViWQF8jgyoLLqqcSrnp6dJpHESiJfzor1vrfDyTZf", + "name": "bbloom", + "version": "0.1.2" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipfs-blockstore", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.8" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/.travis.yml b/vendor/github.com/ipfs/go-ipfs-chunker/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/LICENSE b/vendor/github.com/ipfs/go-ipfs-chunker/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/Makefile b/vendor/github.com/ipfs/go-ipfs-chunker/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/README.md b/vendor/github.com/ipfs/go-ipfs-chunker/README.md new file mode 100644 index 00000000..96faa3de --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/README.md @@ -0,0 +1,48 @@ +# go-ipfs-chunker + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-chunker?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-chunker) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-chunker.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-chunker) + +> go-ipfs-chunker implements data Splitters for go-ipfs. + +`go-ipfs-chunker` provides the `Splitter` interface. IPFS splitters read data from a reader an create "chunks". These chunks are used to build the ipfs DAGs (Merkle Tree) and are the base unit to obtain the sums that ipfs uses to address content. + +The package provides a `SizeSplitter` which creates chunks of equal size and it is used by default in most cases, and a `rabin` fingerprint chunker. This chunker will attempt to split data in a way that the resulting blocks are the same when the data has repetitive patterns, thus optimizing the resulting DAGs. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-chunker` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-chunker +``` + +It uses [Gx](https://github.com/whyrusleeping/gx) to manage dependencies. You can use `make all` to build it with the `gx` dependencies. + +## Usage + +``` +import "github.com/ipfs/go-ipfs-chunker" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-chunker) + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/go.mod b/vendor/github.com/ipfs/go-ipfs-chunker/go.mod new file mode 100644 index 00000000..0610d885 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/go.mod @@ -0,0 +1,9 @@ +module github.com/ipfs/go-ipfs-chunker + +require ( + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-buffer-pool v0.0.1 + github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f +) diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/go.sum b/vendor/github.com/ipfs/go-ipfs-chunker/go.sum new file mode 100644 index 00000000..a45b1eeb --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/go.sum @@ -0,0 +1,55 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/package.json b/vendor/github.com/ipfs/go-ipfs-chunker/package.json new file mode 100644 index 00000000..d53c0e7b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/package.json @@ -0,0 +1,47 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-chunker" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-chunker" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmZooytqEoUwQjv7KzH4d3xyJnyvD3AWJaCDMYt5pbCtua", + "name": "chunker", + "version": "0.0.1" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "Stebalien", + "hash": "QmQDvJoB6aJWN3sjr3xsgXqKCXf4jU5zdMXpDMsBkYVNqa", + "name": "go-buffer-pool", + "version": "0.1.3" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipfs-chunker", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.6" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/parse.go b/vendor/github.com/ipfs/go-ipfs-chunker/parse.go new file mode 100644 index 00000000..af0a31e8 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/parse.go @@ -0,0 +1,88 @@ +package chunk + +import ( + "errors" + "fmt" + "io" + "strconv" + "strings" +) + +var ( + ErrRabinMin = errors.New("rabin min must be greater than 16") + ErrSize = errors.New("chunker size muster greater than 0") +) + +// FromString returns a Splitter depending on the given string: +// it supports "default" (""), "size-{size}", "rabin", "rabin-{blocksize}" and +// "rabin-{min}-{avg}-{max}". +func FromString(r io.Reader, chunker string) (Splitter, error) { + switch { + case chunker == "" || chunker == "default": + return DefaultSplitter(r), nil + + case strings.HasPrefix(chunker, "size-"): + sizeStr := strings.Split(chunker, "-")[1] + size, err := strconv.Atoi(sizeStr) + if err != nil { + return nil, err + } else if size <= 0 { + return nil, ErrSize + } + return NewSizeSplitter(r, int64(size)), nil + + case strings.HasPrefix(chunker, "rabin"): + return parseRabinString(r, chunker) + + default: + return nil, fmt.Errorf("unrecognized chunker option: %s", chunker) + } +} + +func parseRabinString(r io.Reader, chunker string) (Splitter, error) { + parts := strings.Split(chunker, "-") + switch len(parts) { + case 1: + return NewRabin(r, uint64(DefaultBlockSize)), nil + case 2: + size, err := strconv.Atoi(parts[1]) + if err != nil { + return nil, err + } + return NewRabin(r, uint64(size)), nil + case 4: + sub := strings.Split(parts[1], ":") + if len(sub) > 1 && sub[0] != "min" { + return nil, errors.New("first label must be min") + } + min, err := strconv.Atoi(sub[len(sub)-1]) + if err != nil { + return nil, err + } + if min < 16 { + return nil, ErrRabinMin + } + sub = strings.Split(parts[2], ":") + if len(sub) > 1 && sub[0] != "avg" { + log.Error("sub == ", sub) + return nil, errors.New("second label must be avg") + } + avg, err := strconv.Atoi(sub[len(sub)-1]) + if err != nil { + return nil, err + } + + sub = strings.Split(parts[3], ":") + if len(sub) > 1 && sub[0] != "max" { + return nil, errors.New("final label must be max") + } + max, err := strconv.Atoi(sub[len(sub)-1]) + if err != nil { + return nil, err + } + + return NewRabinMinMax(r, uint64(min), uint64(avg), uint64(max)), nil + default: + return nil, errors.New("incorrect format (expected 'rabin' 'rabin-[avg]' or 'rabin-[min]-[avg]-[max]'") + } +} diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/rabin.go b/vendor/github.com/ipfs/go-ipfs-chunker/rabin.go new file mode 100644 index 00000000..4247057b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/rabin.go @@ -0,0 +1,54 @@ +package chunk + +import ( + "hash/fnv" + "io" + + "github.com/whyrusleeping/chunker" +) + +// IpfsRabinPoly is the irreducible polynomial of degree 53 used by for Rabin. +var IpfsRabinPoly = chunker.Pol(17437180132763653) + +// Rabin implements the Splitter interface and splits content with Rabin +// fingerprints. +type Rabin struct { + r *chunker.Chunker + reader io.Reader +} + +// NewRabin creates a new Rabin splitter with the given +// average block size. +func NewRabin(r io.Reader, avgBlkSize uint64) *Rabin { + min := avgBlkSize / 3 + max := avgBlkSize + (avgBlkSize / 2) + + return NewRabinMinMax(r, min, avgBlkSize, max) +} + +// NewRabinMinMax returns a new Rabin splitter which uses +// the given min, average and max block sizes. +func NewRabinMinMax(r io.Reader, min, avg, max uint64) *Rabin { + h := fnv.New32a() + ch := chunker.New(r, IpfsRabinPoly, h, avg, min, max) + + return &Rabin{ + r: ch, + reader: r, + } +} + +// NextBytes reads the next bytes from the reader and returns a slice. +func (r *Rabin) NextBytes() ([]byte, error) { + ch, err := r.r.Next() + if err != nil { + return nil, err + } + + return ch.Data, nil +} + +// Reader returns the io.Reader associated to this Splitter. +func (r *Rabin) Reader() io.Reader { + return r.reader +} diff --git a/vendor/github.com/ipfs/go-ipfs-chunker/splitting.go b/vendor/github.com/ipfs/go-ipfs-chunker/splitting.go new file mode 100644 index 00000000..2b237399 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-chunker/splitting.go @@ -0,0 +1,105 @@ +// Package chunk implements streaming block splitters. +// Splitters read data from a reader and provide byte slices (chunks) +// The size and contents of these slices depend on the splitting method +// used. +package chunk + +import ( + "io" + + logging "github.com/ipfs/go-log" + pool "github.com/libp2p/go-buffer-pool" +) + +var log = logging.Logger("chunk") + +// DefaultBlockSize is the chunk size that splitters produce (or aim to). +var DefaultBlockSize int64 = 1024 * 256 + +// A Splitter reads bytes from a Reader and creates "chunks" (byte slices) +// that can be used to build DAG nodes. +type Splitter interface { + Reader() io.Reader + NextBytes() ([]byte, error) +} + +// SplitterGen is a splitter generator, given a reader. +type SplitterGen func(r io.Reader) Splitter + +// DefaultSplitter returns a SizeSplitter with the DefaultBlockSize. +func DefaultSplitter(r io.Reader) Splitter { + return NewSizeSplitter(r, DefaultBlockSize) +} + +// SizeSplitterGen returns a SplitterGen function which will create +// a splitter with the given size when called. +func SizeSplitterGen(size int64) SplitterGen { + return func(r io.Reader) Splitter { + return NewSizeSplitter(r, size) + } +} + +// Chan returns a channel that receives each of the chunks produced +// by a splitter, along with another one for errors. +func Chan(s Splitter) (<-chan []byte, <-chan error) { + out := make(chan []byte) + errs := make(chan error, 1) + go func() { + defer close(out) + defer close(errs) + + // all-chunks loop (keep creating chunks) + for { + b, err := s.NextBytes() + if err != nil { + errs <- err + return + } + + out <- b + } + }() + return out, errs +} + +type sizeSplitterv2 struct { + r io.Reader + size uint32 + err error +} + +// NewSizeSplitter returns a new size-based Splitter with the given block size. +func NewSizeSplitter(r io.Reader, size int64) Splitter { + return &sizeSplitterv2{ + r: r, + size: uint32(size), + } +} + +// NextBytes produces a new chunk. +func (ss *sizeSplitterv2) NextBytes() ([]byte, error) { + if ss.err != nil { + return nil, ss.err + } + + full := pool.Get(int(ss.size)) + n, err := io.ReadFull(ss.r, full) + switch err { + case io.ErrUnexpectedEOF: + ss.err = io.EOF + small := make([]byte, n) + copy(small, full) + pool.Put(full) + return small, nil + case nil: + return full, nil + default: + pool.Put(full) + return nil, err + } +} + +// Reader returns the io.Reader associated to this Splitter. +func (ss *sizeSplitterv2) Reader() io.Reader { + return ss.r +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/.gitignore b/vendor/github.com/ipfs/go-ipfs-config/.gitignore new file mode 100644 index 00000000..9a684b15 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/.gitignore @@ -0,0 +1 @@ +serialize/.ipfsconfig diff --git a/vendor/github.com/ipfs/go-ipfs-config/.travis.yml b/vendor/github.com/ipfs/go-ipfs-config/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-config/LICENSE b/vendor/github.com/ipfs/go-ipfs-config/LICENSE new file mode 100644 index 00000000..833dabb8 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2016 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-config/addresses.go b/vendor/github.com/ipfs/go-ipfs-config/addresses.go new file mode 100644 index 00000000..2d88468f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/addresses.go @@ -0,0 +1,10 @@ +package config + +// Addresses stores the (string) multiaddr addresses for the node. +type Addresses struct { + Swarm []string // addresses for the swarm to listen on + Announce []string // swarm addresses to announce to the network + NoAnnounce []string // swarm addresses not to announce to the network + API Strings // address for the local API (RPC) + Gateway Strings // address to listen on for IPFS HTTP object gateway +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/api.go b/vendor/github.com/ipfs/go-ipfs-config/api.go new file mode 100644 index 00000000..b36b1080 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/api.go @@ -0,0 +1,5 @@ +package config + +type API struct { + HTTPHeaders map[string][]string // HTTP headers to return with the API. +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/bootstrap_peers.go b/vendor/github.com/ipfs/go-ipfs-config/bootstrap_peers.go new file mode 100644 index 00000000..92fc580e --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/bootstrap_peers.go @@ -0,0 +1,87 @@ +package config + +import ( + "errors" + "fmt" + + iaddr "github.com/ipfs/go-ipfs-addr" + // Needs to be imported so that users can import this package directly + // and still parse the bootstrap addresses. + _ "github.com/multiformats/go-multiaddr-dns" +) + +// DefaultBootstrapAddresses are the hardcoded bootstrap addresses +// for IPFS. they are nodes run by the IPFS team. docs on these later. +// As with all p2p networks, bootstrap is an important security concern. +// +// NOTE: This is here -- and not inside cmd/ipfs/init.go -- because of an +// import dependency issue. TODO: move this into a config/default/ package. +var DefaultBootstrapAddresses = []string{ + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt", + "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", // mars.i.ipfs.io + "/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", // pluto.i.ipfs.io + "/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", // saturn.i.ipfs.io + "/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", // venus.i.ipfs.io + "/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", // earth.i.ipfs.io + "/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", // pluto.i.ipfs.io + "/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", // saturn.i.ipfs.io + "/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", // venus.i.ipfs.io + "/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", // earth.i.ipfs.io +} + +// BootstrapPeer is a peer used to bootstrap the network. +type BootstrapPeer iaddr.IPFSAddr + +// ErrInvalidPeerAddr signals an address is not a valid peer address. +var ErrInvalidPeerAddr = errors.New("invalid peer address") + +func (c *Config) BootstrapPeers() ([]BootstrapPeer, error) { + return ParseBootstrapPeers(c.Bootstrap) +} + +// DefaultBootstrapPeers returns the (parsed) set of default bootstrap peers. +// if it fails, it returns a meaningful error for the user. +// This is here (and not inside cmd/ipfs/init) because of module dependency problems. +func DefaultBootstrapPeers() ([]BootstrapPeer, error) { + ps, err := ParseBootstrapPeers(DefaultBootstrapAddresses) + if err != nil { + return nil, fmt.Errorf(`failed to parse hardcoded bootstrap peers: %s +This is a problem with the ipfs codebase. Please report it to the dev team.`, err) + } + return ps, nil +} + +func (c *Config) SetBootstrapPeers(bps []BootstrapPeer) { + c.Bootstrap = BootstrapPeerStrings(bps) +} + +func ParseBootstrapPeer(addr string) (BootstrapPeer, error) { + ia, err := iaddr.ParseString(addr) + if err != nil { + return nil, err + } + return BootstrapPeer(ia), err +} + +func ParseBootstrapPeers(addrs []string) ([]BootstrapPeer, error) { + peers := make([]BootstrapPeer, len(addrs)) + var err error + for i, addr := range addrs { + peers[i], err = ParseBootstrapPeer(addr) + if err != nil { + return nil, err + } + } + return peers, nil +} + +func BootstrapPeerStrings(bps []BootstrapPeer) []string { + bpss := make([]string, len(bps)) + for i, p := range bps { + bpss[i] = p.String() + } + return bpss +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/config.go b/vendor/github.com/ipfs/go-ipfs-config/config.go new file mode 100644 index 00000000..dc987547 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/config.go @@ -0,0 +1,128 @@ +// package config implements the ipfs config file datastructures and utilities. +package config + +import ( + "bytes" + "encoding/json" + "fmt" + "os" + "path/filepath" + "strings" + + "github.com/mitchellh/go-homedir" +) + +// Config is used to load ipfs config files. +type Config struct { + Identity Identity // local node's peer identity + Datastore Datastore // local node's storage + Addresses Addresses // local node's addresses + Mounts Mounts // local node's mount points + Discovery Discovery // local node's discovery mechanisms + Routing Routing // local node's routing settings + Ipns Ipns // Ipns settings + Bootstrap []string // local nodes's bootstrap peer addresses + Gateway Gateway // local node's gateway server options + API API // local node's API settings + Swarm SwarmConfig + Pubsub PubsubConfig + + Reprovider Reprovider + Experimental Experiments +} + +const ( + // DefaultPathName is the default config dir name + DefaultPathName = ".ipfs" + // DefaultPathRoot is the path to the default config dir location. + DefaultPathRoot = "~/" + DefaultPathName + // DefaultConfigFile is the filename of the configuration file + DefaultConfigFile = "config" + // EnvDir is the environment variable used to change the path root. + EnvDir = "IPFS_PATH" +) + +// PathRoot returns the default configuration root directory +func PathRoot() (string, error) { + dir := os.Getenv(EnvDir) + var err error + if len(dir) == 0 { + dir, err = homedir.Expand(DefaultPathRoot) + } + return dir, err +} + +// Path returns the path `extension` relative to the configuration root. If an +// empty string is provided for `configroot`, the default root is used. +func Path(configroot, extension string) (string, error) { + if len(configroot) == 0 { + dir, err := PathRoot() + if err != nil { + return "", err + } + return filepath.Join(dir, extension), nil + + } + return filepath.Join(configroot, extension), nil +} + +// Filename returns the configuration file path given a configuration root +// directory. If the configuration root directory is empty, use the default one +func Filename(configroot string) (string, error) { + return Path(configroot, DefaultConfigFile) +} + +// HumanOutput gets a config value ready for printing +func HumanOutput(value interface{}) ([]byte, error) { + s, ok := value.(string) + if ok { + return []byte(strings.Trim(s, "\n")), nil + } + return Marshal(value) +} + +// Marshal configuration with JSON +func Marshal(value interface{}) ([]byte, error) { + // need to prettyprint, hence MarshalIndent, instead of Encoder + return json.MarshalIndent(value, "", " ") +} + +func FromMap(v map[string]interface{}) (*Config, error) { + buf := new(bytes.Buffer) + if err := json.NewEncoder(buf).Encode(v); err != nil { + return nil, err + } + var conf Config + if err := json.NewDecoder(buf).Decode(&conf); err != nil { + return nil, fmt.Errorf("failure to decode config: %s", err) + } + return &conf, nil +} + +func ToMap(conf *Config) (map[string]interface{}, error) { + buf := new(bytes.Buffer) + if err := json.NewEncoder(buf).Encode(conf); err != nil { + return nil, err + } + var m map[string]interface{} + if err := json.NewDecoder(buf).Decode(&m); err != nil { + return nil, fmt.Errorf("failure to decode config: %s", err) + } + return m, nil +} + +// Clone copies the config. Use when updating. +func (c *Config) Clone() (*Config, error) { + var newConfig Config + var buf bytes.Buffer + + if err := json.NewEncoder(&buf).Encode(c); err != nil { + return nil, fmt.Errorf("failure to encode config: %s", err) + } + + if err := json.NewDecoder(&buf).Decode(&newConfig); err != nil { + return nil, fmt.Errorf("failure to decode config: %s", err) + } + + return &newConfig, nil +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/datastore.go b/vendor/github.com/ipfs/go-ipfs-config/datastore.go new file mode 100644 index 00000000..2b2bcb51 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/datastore.go @@ -0,0 +1,32 @@ +package config + +import ( + "encoding/json" +) + +// DefaultDataStoreDirectory is the directory to store all the local IPFS data. +const DefaultDataStoreDirectory = "datastore" + +// Datastore tracks the configuration of the datastore. +type Datastore struct { + StorageMax string // in B, kB, kiB, MB, ... + StorageGCWatermark int64 // in percentage to multiply on StorageMax + GCPeriod string // in ns, us, ms, s, m, h + + // deprecated fields, use Spec + Type string `json:",omitempty"` + Path string `json:",omitempty"` + NoSync bool `json:",omitempty"` + Params *json.RawMessage `json:",omitempty"` + + Spec map[string]interface{} + + HashOnRead bool + BloomFilterSize int +} + +// DataStorePath returns the default data store path given a configuration root +// (set an empty string to have the default configuration root) +func DataStorePath(configroot string) (string, error) { + return Path(configroot, DefaultDataStoreDirectory) +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/discovery.go b/vendor/github.com/ipfs/go-ipfs-config/discovery.go new file mode 100644 index 00000000..4fb8508f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/discovery.go @@ -0,0 +1,12 @@ +package config + +type Discovery struct { + MDNS MDNS +} + +type MDNS struct { + Enabled bool + + // Time in seconds between discovery rounds + Interval int +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/experiments.go b/vendor/github.com/ipfs/go-ipfs-config/experiments.go new file mode 100644 index 00000000..c5cb0cf2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/experiments.go @@ -0,0 +1,11 @@ +package config + +type Experiments struct { + FilestoreEnabled bool + UrlstoreEnabled bool + ShardingEnabled bool + Libp2pStreamMounting bool + P2pHttpProxy bool + QUIC bool + PreferTLS bool +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/gateway.go b/vendor/github.com/ipfs/go-ipfs-config/gateway.go new file mode 100644 index 00000000..017be9b2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/gateway.go @@ -0,0 +1,11 @@ +package config + +// Gateway contains options for the HTTP gateway server. +type Gateway struct { + HTTPHeaders map[string][]string // HTTP headers to return with the gateway + RootRedirect string + Writable bool + PathPrefixes []string + APICommands []string + NoFetch bool +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/go.mod b/vendor/github.com/ipfs/go-ipfs-config/go.mod new file mode 100644 index 00000000..5e868fc6 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/go.mod @@ -0,0 +1,11 @@ +module github.com/ipfs/go-ipfs-config + +require ( + github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 + github.com/ipfs/go-ipfs-addr v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/mitchellh/go-homedir v1.1.0 + github.com/multiformats/go-multiaddr-dns v0.0.2 +) diff --git a/vendor/github.com/ipfs/go-ipfs-config/go.sum b/vendor/github.com/ipfs/go-ipfs-config/go.sum new file mode 100644 index 00000000..01ba2fb5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/go.sum @@ -0,0 +1,87 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 h1:BBso6MBKW8ncyZLv37o+KNyy0HrrHgfnOaGQC2qvN+A= +github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5/go.mod h1:JpoxHjuQauoxiFMl1ie8Xc/7TfLuMZ5eOCONd1sUBHg= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-ipfs-addr v0.0.1 h1:DpDFybnho9v3/a1dzJ5KnWdThWD1HrFLpQ+tWIyBaFI= +github.com/ipfs/go-ipfs-addr v0.0.1/go.mod h1:uKTDljHT3Q3SUWzDLp3aYUi8MrY32fgNgogsIa0npjg= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-ipfs-config/identity.go b/vendor/github.com/ipfs/go-ipfs-config/identity.go new file mode 100644 index 00000000..c09af564 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/identity.go @@ -0,0 +1,29 @@ +package config + +import ( + "encoding/base64" + + ic "github.com/libp2p/go-libp2p-crypto" +) + +const IdentityTag = "Identity" +const PrivKeyTag = "PrivKey" +const PrivKeySelector = IdentityTag + "." + PrivKeyTag + +// Identity tracks the configuration of the local node's identity. +type Identity struct { + PeerID string + PrivKey string `json:",omitempty"` +} + +// DecodePrivateKey is a helper to decode the users PrivateKey +func (i *Identity) DecodePrivateKey(passphrase string) (ic.PrivKey, error) { + pkb, err := base64.StdEncoding.DecodeString(i.PrivKey) + if err != nil { + return nil, err + } + + // currently storing key unencrypted. in the future we need to encrypt it. + // TODO(security) + return ic.UnmarshalPrivateKey(pkb) +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/init.go b/vendor/github.com/ipfs/go-ipfs-config/init.go new file mode 100644 index 00000000..0697cc4c --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/init.go @@ -0,0 +1,181 @@ +package config + +import ( + "encoding/base64" + "errors" + "fmt" + "io" + "time" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" +) + +func Init(out io.Writer, nBitsForKeypair int) (*Config, error) { + identity, err := identityConfig(out, nBitsForKeypair) + if err != nil { + return nil, err + } + + bootstrapPeers, err := DefaultBootstrapPeers() + if err != nil { + return nil, err + } + + datastore := DefaultDatastoreConfig() + + conf := &Config{ + API: API{ + HTTPHeaders: map[string][]string{}, + }, + + // setup the node's default addresses. + // NOTE: two swarm listen addrs, one tcp, one utp. + Addresses: addressesConfig(), + + Datastore: datastore, + Bootstrap: BootstrapPeerStrings(bootstrapPeers), + Identity: identity, + Discovery: Discovery{ + MDNS: MDNS{ + Enabled: true, + Interval: 10, + }, + }, + + Routing: Routing{ + Type: "dht", + }, + + // setup the node mount points. + Mounts: Mounts{ + IPFS: "/ipfs", + IPNS: "/ipns", + }, + + Ipns: Ipns{ + ResolveCacheSize: 128, + }, + + Gateway: Gateway{ + RootRedirect: "", + Writable: false, + NoFetch: false, + PathPrefixes: []string{}, + HTTPHeaders: map[string][]string{ + "Access-Control-Allow-Origin": []string{"*"}, + "Access-Control-Allow-Methods": []string{"GET"}, + "Access-Control-Allow-Headers": []string{"X-Requested-With", "Range", "User-Agent"}, + }, + APICommands: []string{}, + }, + Reprovider: Reprovider{ + Interval: "12h", + Strategy: "all", + }, + Swarm: SwarmConfig{ + ConnMgr: ConnMgr{ + LowWater: DefaultConnMgrLowWater, + HighWater: DefaultConnMgrHighWater, + GracePeriod: DefaultConnMgrGracePeriod.String(), + Type: "basic", + }, + }, + } + + return conf, nil +} + +// DefaultConnMgrHighWater is the default value for the connection managers +// 'high water' mark +const DefaultConnMgrHighWater = 900 + +// DefaultConnMgrLowWater is the default value for the connection managers 'low +// water' mark +const DefaultConnMgrLowWater = 600 + +// DefaultConnMgrGracePeriod is the default value for the connection managers +// grace period +const DefaultConnMgrGracePeriod = time.Second * 20 + +func addressesConfig() Addresses { + return Addresses{ + Swarm: []string{ + "/ip4/0.0.0.0/tcp/4001", + // "/ip4/0.0.0.0/udp/4002/utp", // disabled for now. + "/ip6/::/tcp/4001", + }, + Announce: []string{}, + NoAnnounce: []string{}, + API: Strings{"/ip4/127.0.0.1/tcp/5001"}, + Gateway: Strings{"/ip4/127.0.0.1/tcp/8080"}, + } +} + +// DefaultDatastoreConfig is an internal function exported to aid in testing. +func DefaultDatastoreConfig() Datastore { + return Datastore{ + StorageMax: "10GB", + StorageGCWatermark: 90, // 90% + GCPeriod: "1h", + BloomFilterSize: 0, + Spec: map[string]interface{}{ + "type": "mount", + "mounts": []interface{}{ + map[string]interface{}{ + "mountpoint": "/blocks", + "type": "measure", + "prefix": "flatfs.datastore", + "child": map[string]interface{}{ + "type": "flatfs", + "path": "blocks", + "sync": true, + "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", + }, + }, + map[string]interface{}{ + "mountpoint": "/", + "type": "measure", + "prefix": "leveldb.datastore", + "child": map[string]interface{}{ + "type": "levelds", + "path": "datastore", + "compression": "none", + }, + }, + }, + }, + } +} + +// identityConfig initializes a new identity. +func identityConfig(out io.Writer, nbits int) (Identity, error) { + // TODO guard higher up + ident := Identity{} + if nbits < 1024 { + return ident, errors.New("bitsize less than 1024 is considered unsafe") + } + + fmt.Fprintf(out, "generating %v-bit RSA keypair...", nbits) + sk, pk, err := ci.GenerateKeyPair(ci.RSA, nbits) + if err != nil { + return ident, err + } + fmt.Fprintf(out, "done\n") + + // currently storing key unencrypted. in the future we need to encrypt it. + // TODO(security) + skbytes, err := sk.Bytes() + if err != nil { + return ident, err + } + ident.PrivKey = base64.StdEncoding.EncodeToString(skbytes) + + id, err := peer.IDFromPublicKey(pk) + if err != nil { + return ident, err + } + ident.PeerID = id.Pretty() + fmt.Fprintf(out, "peer identity: %s\n", ident.PeerID) + return ident, nil +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/ipns.go b/vendor/github.com/ipfs/go-ipfs-config/ipns.go new file mode 100644 index 00000000..44a95b09 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/ipns.go @@ -0,0 +1,8 @@ +package config + +type Ipns struct { + RepublishPeriod string + RecordLifetime string + + ResolveCacheSize int +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/mounts.go b/vendor/github.com/ipfs/go-ipfs-config/mounts.go new file mode 100644 index 00000000..b23d30b2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/mounts.go @@ -0,0 +1,8 @@ +package config + +// Mounts stores the (string) mount points +type Mounts struct { + IPFS string + IPNS string + FuseAllowOther bool +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/package.json b/vendor/github.com/ipfs/go-ipfs-config/package.json new file mode 100644 index 00000000..ddd61bf5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/package.json @@ -0,0 +1,60 @@ +{ + "author": "magik6k", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-config" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-config" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "author": "facebookgo", + "hash": "QmdYwCmx8pZRkzdcd8MhmLJqYVoVTC1aGsy5Q4reMGLNLg", + "name": "atomicfile", + "version": "0.0.0" + }, + { + "author": "why", + "hash": "Qmdf1djucJ1jX5RMF1bDbFg5ybZnupmSAeETQQ3ZV7z6dU", + "name": "go-ipfs-addr", + "version": "0.1.33" + }, + { + "author": "lgierth", + "hash": "QmU98UaAEh4WJAcir2qjfztU77JQ14kAwHNFkjUXHZA3Vy", + "name": "go-multiaddr-dns", + "version": "0.3.1" + }, + { + "author": "mitchellh", + "hash": "QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK", + "name": "go-homedir", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-ipfs-config", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.27" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-config/profile.go b/vendor/github.com/ipfs/go-ipfs-config/profile.go new file mode 100644 index 00000000..f293202e --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/profile.go @@ -0,0 +1,229 @@ +package config + +import ( + "fmt" + "net" + "time" +) + +// Transformer is a function which takes configuration and applies some filter to it +type Transformer func(c *Config) error + +// Profile contains the profile transformer the description of the profile +type Profile struct { + // Description briefly describes the functionality of the profile + Description string + + // Transform takes ipfs configuration and applies the profile to it + Transform Transformer +} + +// defaultServerFilters has a list of non-routable IPv4 prefixes +// according to http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml +var defaultServerFilters = []string{ + "/ip4/10.0.0.0/ipcidr/8", + "/ip4/100.64.0.0/ipcidr/10", + "/ip4/169.254.0.0/ipcidr/16", + "/ip4/172.16.0.0/ipcidr/12", + "/ip4/192.0.0.0/ipcidr/24", + "/ip4/192.0.0.0/ipcidr/29", + "/ip4/192.0.0.8/ipcidr/32", + "/ip4/192.0.0.170/ipcidr/32", + "/ip4/192.0.0.171/ipcidr/32", + "/ip4/192.0.2.0/ipcidr/24", + "/ip4/192.168.0.0/ipcidr/16", + "/ip4/198.18.0.0/ipcidr/15", + "/ip4/198.51.100.0/ipcidr/24", + "/ip4/203.0.113.0/ipcidr/24", + "/ip4/240.0.0.0/ipcidr/4", +} + +// Profiles is a map holding configuration transformers. Docs are in docs/config.md +var Profiles = map[string]Profile{ + "server": { + Description: `Disables local host discovery, recommended when +running IPFS on machines with public IPv4 addresses.`, + + Transform: func(c *Config) error { + c.Addresses.NoAnnounce = appendSingle(c.Addresses.NoAnnounce, defaultServerFilters) + c.Swarm.AddrFilters = appendSingle(c.Swarm.AddrFilters, defaultServerFilters) + c.Discovery.MDNS.Enabled = false + c.Swarm.DisableNatPortMap = true + return nil + }, + }, + + "local-discovery": { + Description: `Sets default values to fields affected by the server +profile, enables discovery in local networks.`, + + Transform: func(c *Config) error { + c.Addresses.NoAnnounce = deleteEntries(c.Addresses.NoAnnounce, defaultServerFilters) + c.Swarm.AddrFilters = deleteEntries(c.Swarm.AddrFilters, defaultServerFilters) + c.Discovery.MDNS.Enabled = true + c.Swarm.DisableNatPortMap = false + return nil + }, + }, + "test": { + Description: `Reduces external interference of IPFS daemon, this +is useful when using the daemon in test environments.`, + + Transform: func(c *Config) error { + c.Addresses.API = Strings{"/ip4/127.0.0.1/tcp/0"} + c.Addresses.Gateway = Strings{"/ip4/127.0.0.1/tcp/0"} + c.Addresses.Swarm = []string{ + "/ip4/127.0.0.1/tcp/0", + } + + c.Swarm.DisableNatPortMap = true + + c.Bootstrap = []string{} + c.Discovery.MDNS.Enabled = false + return nil + }, + }, + "default-networking": { + Description: `Restores default network settings. +Inverse profile of the test profile.`, + + Transform: func(c *Config) error { + c.Addresses = addressesConfig() + + bootstrapPeers, err := DefaultBootstrapPeers() + if err != nil { + return err + } + c.Bootstrap = appendSingle(c.Bootstrap, BootstrapPeerStrings(bootstrapPeers)) + + c.Swarm.DisableNatPortMap = false + c.Discovery.MDNS.Enabled = true + return nil + }, + }, + "badgerds": { + Description: `Replaces default datastore configuration with experimental +badger datastore. + +If you apply this profile after ipfs init, you will need +to convert your datastore to the new configuration. +You can do this using ipfs-ds-convert. + +For more on ipfs-ds-convert see +$ ipfs-ds-convert --help +and +$ ipfs-ds-convert convert --help + +WARNING: badger datastore is experimental. +Make sure to backup your data frequently.`, + + Transform: func(c *Config) error { + c.Datastore.Spec = map[string]interface{}{ + "type": "measure", + "prefix": "badger.datastore", + "child": map[string]interface{}{ + "type": "badgerds", + "path": "badgerds", + "syncWrites": true, + "truncate": true, + }, + } + return nil + }, + }, + "default-datastore": { + Description: `Restores default datastore configuration. + +If you apply this profile after ipfs init, you will need +to convert your datastore to the new configuration. +You can do this using ipfs-ds-convert. + +For more on ipfs-ds-convert see +$ ipfs-ds-convert --help +and +$ ipfs-ds-convert convert --help +`, + + Transform: func(c *Config) error { + c.Datastore.Spec = DefaultDatastoreConfig().Spec + return nil + }, + }, + "lowpower": { + Description: `Reduces daemon overhead on the system. May affect node +functionality - performance of content discovery and data +fetching may be degraded. +`, + Transform: func(c *Config) error { + c.Routing.Type = "dhtclient" + c.Reprovider.Interval = "0" + + c.Swarm.ConnMgr.LowWater = 20 + c.Swarm.ConnMgr.HighWater = 40 + c.Swarm.ConnMgr.GracePeriod = time.Minute.String() + return nil + }, + }, + "randomports": { + Description: `Use a random port number for swarm.`, + + Transform: func(c *Config) error { + port, err := getAvailablePort() + if err != nil { + return err + } + c.Addresses.Swarm = []string{ + fmt.Sprintf("/ip4/0.0.0.0/tcp/%d", port), + fmt.Sprintf("/ip6/::/tcp/%d", port), + } + return nil + }, + }, +} + +func getAvailablePort() (port int, err error) { + ln, err := net.Listen("tcp", "[::]:0") + if err != nil { + return 0, err + } + defer ln.Close() + port = ln.Addr().(*net.TCPAddr).Port + return port, nil +} + +func appendSingle(a []string, b []string) []string { + out := make([]string, 0, len(a)+len(b)) + m := map[string]bool{} + for _, f := range a { + if !m[f] { + out = append(out, f) + } + m[f] = true + } + for _, f := range b { + if !m[f] { + out = append(out, f) + } + m[f] = true + } + return out +} + +func deleteEntries(arr []string, del []string) []string { + m := map[string]struct{}{} + for _, f := range arr { + m[f] = struct{}{} + } + for _, f := range del { + delete(m, f) + } + return mapKeys(m) +} + +func mapKeys(m map[string]struct{}) []string { + out := make([]string, 0, len(m)) + for f := range m { + out = append(out, f) + } + return out +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/pubsub.go b/vendor/github.com/ipfs/go-ipfs-config/pubsub.go new file mode 100644 index 00000000..94e03e28 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/pubsub.go @@ -0,0 +1,18 @@ +package config + +type PubsubConfig struct { + // Router can be either floodsub (legacy) or gossipsub (new and + // backwards compatible). + Router string + + // DisableSigning disables message signing. Message signing is *enabled* + // by default. + DisableSigning bool + + // StrictSignatureVerification enables strict signature verification. + // When enabled, unsigned messages will be rejected. Eventually, this + // will be made the default and this option will disappear. Once this + // happens, networks will either need to completely disable or + // completely enable message signing. + StrictSignatureVerification bool +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/reprovider.go b/vendor/github.com/ipfs/go-ipfs-config/reprovider.go new file mode 100644 index 00000000..fa029c2f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/reprovider.go @@ -0,0 +1,6 @@ +package config + +type Reprovider struct { + Interval string // Time period to reprovide locally stored objects to the network + Strategy string // Which keys to announce +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/routing.go b/vendor/github.com/ipfs/go-ipfs-config/routing.go new file mode 100644 index 00000000..e601cd5e --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/routing.go @@ -0,0 +1,7 @@ +package config + +// Routing defines configuration options for libp2p routing +type Routing struct { + // Type sets default daemon routing mode. + Type string +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/serialize/serialize.go b/vendor/github.com/ipfs/go-ipfs-config/serialize/serialize.go new file mode 100644 index 00000000..eedf7e1a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/serialize/serialize.go @@ -0,0 +1,71 @@ +package fsrepo + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "os" + "path/filepath" + + "github.com/ipfs/go-ipfs-config" + + "github.com/facebookgo/atomicfile" + "github.com/ipfs/go-ipfs-util" +) + +// ReadConfigFile reads the config from `filename` into `cfg`. +func ReadConfigFile(filename string, cfg interface{}) error { + f, err := os.Open(filename) + if err != nil { + return err + } + defer f.Close() + if err := json.NewDecoder(f).Decode(cfg); err != nil { + return fmt.Errorf("failure to decode config: %s", err) + } + return nil +} + +// WriteConfigFile writes the config from `cfg` into `filename`. +func WriteConfigFile(filename string, cfg interface{}) error { + err := os.MkdirAll(filepath.Dir(filename), 0775) + if err != nil { + return err + } + + f, err := atomicfile.New(filename, 0660) + if err != nil { + return err + } + defer f.Close() + + return encode(f, cfg) +} + +// encode configuration with JSON +func encode(w io.Writer, value interface{}) error { + // need to prettyprint, hence MarshalIndent, instead of Encoder + buf, err := config.Marshal(value) + if err != nil { + return err + } + _, err = w.Write(buf) + return err +} + +// Load reads given file and returns the read config, or error. +func Load(filename string) (*config.Config, error) { + // if nothing is there, fail. User must run 'ipfs init' + if !util.FileExists(filename) { + return nil, errors.New("ipfs not initialized, please run 'ipfs init'") + } + + var cfg config.Config + err := ReadConfigFile(filename, &cfg) + if err != nil { + return nil, err + } + + return &cfg, err +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/swarm.go b/vendor/github.com/ipfs/go-ipfs-config/swarm.go new file mode 100644 index 00000000..16dc54d9 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/swarm.go @@ -0,0 +1,25 @@ +package config + +type SwarmConfig struct { + AddrFilters []string + DisableBandwidthMetrics bool + DisableNatPortMap bool + DisableRelay bool + EnableRelayHop bool + + // autorelay functionality + // if true, then the libp2p host will be constructed with autorelay functionality. + EnableAutoRelay bool + // if true, then an AutoNATService will be instantiated to facilitate autorelay + EnableAutoNATService bool + + ConnMgr ConnMgr +} + +// ConnMgr defines configuration options for the libp2p connection manager +type ConnMgr struct { + Type string + LowWater int + HighWater int + GracePeriod string +} diff --git a/vendor/github.com/ipfs/go-ipfs-config/types.go b/vendor/github.com/ipfs/go-ipfs-config/types.go new file mode 100644 index 00000000..58451c68 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-config/types.go @@ -0,0 +1,41 @@ +package config + +import ( + "encoding/json" +) + +// Strings is a helper type that (un)marshals a single string to/from a single +// JSON string and a slice of strings to/from a JSON array of strings. +type Strings []string + +// UnmarshalJSON conforms to the json.Unmarshaler interface. +func (o *Strings) UnmarshalJSON(data []byte) error { + if data[0] == '[' { + return json.Unmarshal(data, (*[]string)(o)) + } + var value string + if err := json.Unmarshal(data, &value); err != nil { + return err + } + if len(value) == 0 { + *o = []string{} + } else { + *o = []string{value} + } + return nil +} + +// MarshalJSON conforms to the json.Marshaler interface. +func (o Strings) MarshalJSON() ([]byte, error) { + switch len(o) { + case 0: + return json.Marshal(nil) + case 1: + return json.Marshal(o[0]) + default: + return json.Marshal([]string(o)) + } +} + +var _ json.Unmarshaler = (*Strings)(nil) +var _ json.Marshaler = (*Strings)(nil) diff --git a/vendor/github.com/ipfs/go-ipfs-delay/.travis.yml b/vendor/github.com/ipfs/go-ipfs-delay/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-delay/LICENSE b/vendor/github.com/ipfs/go-ipfs-delay/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-delay/Makefile b/vendor/github.com/ipfs/go-ipfs-delay/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-delay/README.md b/vendor/github.com/ipfs/go-ipfs-delay/README.md new file mode 100644 index 00000000..0f020b1e --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/README.md @@ -0,0 +1,42 @@ +# go-ipfs-delay + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-delay?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-delay) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-delay.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-delay) + +> go-ipfs-delay makes it easy to add (threadsafe) configurable delays to other objects. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-delay` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-delay +``` + +## Usage + +``` +import "github.com/ipfs/go-ipfs-delay" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-delay) + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-delay/delay.go b/vendor/github.com/ipfs/go-ipfs-delay/delay.go new file mode 100644 index 00000000..afc08587 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/delay.go @@ -0,0 +1,75 @@ +package delay + +import ( + "math/rand" + "sync" + "time" +) + +// D (Delay) makes it easy to add (threadsafe) configurable delays to other +// objects. +type D interface { + Set(time.Duration) time.Duration + Wait() + NextWaitTime() time.Duration + Get() time.Duration +} + +type delay struct { + l sync.RWMutex + t time.Duration + generator Generator +} + +func (d *delay) Set(t time.Duration) time.Duration { + d.l.Lock() + defer d.l.Unlock() + prev := d.t + d.t = t + return prev +} + +func (d *delay) Wait() { + d.l.RLock() + defer d.l.RUnlock() + time.Sleep(d.generator.NextWaitTime(d.t)) +} + +func (d *delay) NextWaitTime() time.Duration { + d.l.Lock() + defer d.l.Unlock() + return d.generator.NextWaitTime(d.t) +} + +func (d *delay) Get() time.Duration { + d.l.Lock() + defer d.l.Unlock() + return d.t +} + +// Delay generates a generic delay form a t, a sleeper, and a generator +func Delay(t time.Duration, generator Generator) D { + return &delay{ + t: t, + generator: generator, + } +} + +// Fixed returns a delay with fixed latency +func Fixed(t time.Duration) D { + return Delay(t, FixedGenerator()) +} + +// VariableUniform is a delay following a uniform distribution +// Notice that to implement the D interface Set can only change the minimum delay +// the delta is set only at initialization +func VariableUniform(t, d time.Duration, rng *rand.Rand) D { + return Delay(t, VariableUniformGenerator(d, rng)) +} + +// VariableNormal is a delay following a normal distribution +// Notice that to implement the D interface Set can only change the mean delay +// the standard deviation is set only at initialization +func VariableNormal(t, std time.Duration, rng *rand.Rand) D { + return Delay(t, VariableNormalGenerator(std, rng)) +} diff --git a/vendor/github.com/ipfs/go-ipfs-delay/generator.go b/vendor/github.com/ipfs/go-ipfs-delay/generator.go new file mode 100644 index 00000000..122d7c0b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/generator.go @@ -0,0 +1,66 @@ +package delay + +import ( + "math/rand" + "time" +) + +// Generator provides an interface for generating wait times +type Generator interface { + NextWaitTime(time.Duration) time.Duration +} + +var sharedRNG = rand.New(rand.NewSource(time.Now().UnixNano())) + +// VariableNormalGenerator makes delays that following a normal distribution +func VariableNormalGenerator(std time.Duration, rng *rand.Rand) Generator { + if rng == nil { + rng = sharedRNG + } + + return &variableNormal{ + std: std, + rng: rng, + } +} + +type variableNormal struct { + std time.Duration + rng *rand.Rand +} + +func (d *variableNormal) NextWaitTime(t time.Duration) time.Duration { + return time.Duration(d.rng.NormFloat64()*float64(d.std)) + t +} + +// VariableUniformGenerator generates delays following a uniform distribution +func VariableUniformGenerator(d time.Duration, rng *rand.Rand) Generator { + if rng == nil { + rng = sharedRNG + } + + return &variableUniform{ + d: d, + rng: rng, + } +} + +type variableUniform struct { + d time.Duration // max delta + rng *rand.Rand +} + +func (d *variableUniform) NextWaitTime(t time.Duration) time.Duration { + return time.Duration(d.rng.Float64()*float64(d.d)) + t +} + +type fixed struct{} + +// FixedGenerator returns a delay with fixed latency +func FixedGenerator() Generator { + return &fixed{} +} + +func (d *fixed) NextWaitTime(t time.Duration) time.Duration { + return t +} diff --git a/vendor/github.com/ipfs/go-ipfs-delay/go.mod b/vendor/github.com/ipfs/go-ipfs-delay/go.mod new file mode 100644 index 00000000..49cae0fc --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/go.mod @@ -0,0 +1 @@ +module github.com/ipfs/go-ipfs-delay diff --git a/vendor/github.com/ipfs/go-ipfs-delay/package.json b/vendor/github.com/ipfs/go-ipfs-delay/package.json new file mode 100644 index 00000000..124b8915 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-delay/package.json @@ -0,0 +1,16 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-delay" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-delay" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-ipfs-delay", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.0" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/.travis.yml b/vendor/github.com/ipfs/go-ipfs-ds-help/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/LICENSE b/vendor/github.com/ipfs/go-ipfs-ds-help/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/Makefile b/vendor/github.com/ipfs/go-ipfs-ds-help/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/README.md b/vendor/github.com/ipfs/go-ipfs-ds-help/README.md new file mode 100644 index 00000000..2af3bff4 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/README.md @@ -0,0 +1,44 @@ +# go-ipfs-ds-help + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-ds-help?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-ds-help) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-ds-help.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-ds-help) + +> go-ipfs-ds-help provides utilities for parsing and creating datastore keys used by go-ipfs. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-ds-help` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-ds-help +``` + +## Usage + +``` +import "github.com/ipfs/go-ipfs-ds-help" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-ds-help) + +This module uses [Gx](https://github.com/whyrusleeping/gx) to manage dependencies. You can use `make all` to build it with the `gx` dependencies. + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/go.mod b/vendor/github.com/ipfs/go-ipfs-ds-help/go.mod new file mode 100644 index 00000000..ada36b21 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/go.mod @@ -0,0 +1,7 @@ +module github.com/ipfs/go-ipfs-ds-help + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/multiformats/go-base32 v0.0.3 +) diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/go.sum b/vendor/github.com/ipfs/go-ipfs-ds-help/go.sum new file mode 100644 index 00000000..6de64438 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/go.sum @@ -0,0 +1,38 @@ +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/key.go b/vendor/github.com/ipfs/go-ipfs-ds-help/key.go new file mode 100644 index 00000000..1f47023f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/key.go @@ -0,0 +1,36 @@ +// Package dshelp provides utilities for parsing and creating +// datastore keys used by go-ipfs +package dshelp + +import ( + cid "github.com/ipfs/go-cid" + "github.com/ipfs/go-datastore" + "github.com/multiformats/go-base32" +) + +// NewKeyFromBinary creates a new key from a byte slice. +func NewKeyFromBinary(rawKey []byte) datastore.Key { + buf := make([]byte, 1+base32.RawStdEncoding.EncodedLen(len(rawKey))) + buf[0] = '/' + base32.RawStdEncoding.Encode(buf[1:], rawKey) + return datastore.RawKey(string(buf)) +} + +// BinaryFromDsKey returns the byte slice corresponding to the given Key. +func BinaryFromDsKey(k datastore.Key) ([]byte, error) { + return base32.RawStdEncoding.DecodeString(k.String()[1:]) +} + +// CidToDsKey creates a Key from the given Cid. +func CidToDsKey(k cid.Cid) datastore.Key { + return NewKeyFromBinary(k.Bytes()) +} + +// DsKeyToCid converts the given Key to its corresponding Cid. +func DsKeyToCid(dsKey datastore.Key) (cid.Cid, error) { + kb, err := BinaryFromDsKey(dsKey) + if err != nil { + return cid.Cid{}, err + } + return cid.Cast(kb) +} diff --git a/vendor/github.com/ipfs/go-ipfs-ds-help/package.json b/vendor/github.com/ipfs/go-ipfs-ds-help/package.json new file mode 100644 index 00000000..830616eb --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-ds-help/package.json @@ -0,0 +1,36 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-ds-help" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-ds-help" + }, + "gxDependencies": [ + { + "author": "jbenet", + "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", + "name": "go-datastore", + "version": "3.6.1" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "Golang", + "hash": "QmPbbYin7KBd1Y1BfUe15vHzwJiioyi3wtKQTtXWWf8SC5", + "name": "base32", + "version": "0.0.3" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-ipfs-ds-help", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.7" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/.travis.yml b/vendor/github.com/ipfs/go-ipfs-exchange-interface/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/LICENSE b/vendor/github.com/ipfs/go-ipfs-exchange-interface/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/Makefile b/vendor/github.com/ipfs/go-ipfs-exchange-interface/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/README.md b/vendor/github.com/ipfs/go-ipfs-exchange-interface/README.md new file mode 100644 index 00000000..8dbcfe1c --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/README.md @@ -0,0 +1,42 @@ +# go-ipfs-exchange-interface + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-exchange-interface?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-exchange-interface) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-exchange-interface.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-exchange-interface) + +> go-ipfs-exchange-interface defines the IPFS exchange interface + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-exchange-interface` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-exchange-interface +``` + +## Usage + +``` +import "github.com/ipfs/go-ipfs-exchange-interface" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-exchange-interface) + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/go.mod b/vendor/github.com/ipfs/go-ipfs-exchange-interface/go.mod new file mode 100644 index 00000000..fade39b9 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/go.mod @@ -0,0 +1,6 @@ +module github.com/ipfs/go-ipfs-exchange-interface + +require ( + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-cid v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/go.sum b/vendor/github.com/ipfs/go-ipfs-exchange-interface/go.sum new file mode 100644 index 00000000..aa764c6a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/go.sum @@ -0,0 +1,26 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/interface.go b/vendor/github.com/ipfs/go-ipfs-exchange-interface/interface.go new file mode 100644 index 00000000..c3032b23 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/interface.go @@ -0,0 +1,37 @@ +// Package exchange defines the IPFS exchange interface +package exchange + +import ( + "context" + "io" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" +) + +// Interface defines the functionality of the IPFS block exchange protocol. +type Interface interface { // type Exchanger interface + Fetcher + + // TODO Should callers be concerned with whether the block was made + // available on the network? + HasBlock(blocks.Block) error + + IsOnline() bool + + io.Closer +} + +// Fetcher is an object that can be used to retrieve blocks +type Fetcher interface { + // GetBlock returns the block associated with a given key. + GetBlock(context.Context, cid.Cid) (blocks.Block, error) + GetBlocks(context.Context, []cid.Cid) (<-chan blocks.Block, error) +} + +// SessionExchange is an exchange.Interface which supports +// sessions. +type SessionExchange interface { + Interface + NewSession(context.Context) Fetcher +} diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-interface/package.json b/vendor/github.com/ipfs/go-ipfs-exchange-interface/package.json new file mode 100644 index 00000000..c5f83220 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-interface/package.json @@ -0,0 +1,30 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-exchange-interface" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-exchange-interface" + }, + "gxDependencies": [ + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipfs-exchange-interface", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.3" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/.travis.yml b/vendor/github.com/ipfs/go-ipfs-exchange-offline/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/LICENSE b/vendor/github.com/ipfs/go-ipfs-exchange-offline/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/Makefile b/vendor/github.com/ipfs/go-ipfs-exchange-offline/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/README.md b/vendor/github.com/ipfs/go-ipfs-exchange-offline/README.md new file mode 100644 index 00000000..707099e9 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/README.md @@ -0,0 +1,46 @@ +# go-ipfs-exchange-offline + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-exchange-offline?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-exchange-offline) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-exchange-offline.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-exchange-offline) + +> go-ipfs-exchange-offline implements the go-ipfs-exchange-interface + +This is an offline exchange implementation which will not perform any request. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-exchange-offline` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-exchange-offline +``` + +It uses [Gx](https://github.com/whyrusleeping/gx) to manage dependencies. You can use `make all` to build it with the `gx` dependencies. + +## Usage + +``` +import "github.com/ipfs/go-ipfs-exchange-offline" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-exchange-offline) + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/go.mod b/vendor/github.com/ipfs/go-ipfs-exchange-offline/go.mod new file mode 100644 index 00000000..5852ebda --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/go.mod @@ -0,0 +1,11 @@ +module github.com/ipfs/go-ipfs-exchange-offline + +require ( + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ipfs-blockstore v0.0.1 + github.com/ipfs/go-ipfs-blocksutil v0.0.1 + github.com/ipfs/go-ipfs-exchange-interface v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/go.sum b/vendor/github.com/ipfs/go-ipfs-exchange-offline/go.sum new file mode 100644 index 00000000..b52cb59a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/go.sum @@ -0,0 +1,82 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/offline.go b/vendor/github.com/ipfs/go-ipfs-exchange-offline/offline.go new file mode 100644 index 00000000..cb82b8a0 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/offline.go @@ -0,0 +1,73 @@ +// package offline implements an object that implements the exchange +// interface but returns nil values to every request. +package offline + +import ( + "context" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + blockstore "github.com/ipfs/go-ipfs-blockstore" + exchange "github.com/ipfs/go-ipfs-exchange-interface" +) + +func Exchange(bs blockstore.Blockstore) exchange.Interface { + return &offlineExchange{bs: bs} +} + +// offlineExchange implements the Exchange interface but doesn't return blocks. +// For use in offline mode. +type offlineExchange struct { + bs blockstore.Blockstore +} + +// GetBlock returns nil to signal that a block could not be retrieved for the +// given key. +// NB: This function may return before the timeout expires. +func (e *offlineExchange) GetBlock(_ context.Context, k cid.Cid) (blocks.Block, error) { + return e.bs.Get(k) +} + +// HasBlock always returns nil. +func (e *offlineExchange) HasBlock(b blocks.Block) error { + return e.bs.Put(b) +} + +// Close always returns nil. +func (_ *offlineExchange) Close() error { + // NB: exchange doesn't own the blockstore's underlying datastore, so it is + // not responsible for closing it. + return nil +} + +func (e *offlineExchange) GetBlocks(ctx context.Context, ks []cid.Cid) (<-chan blocks.Block, error) { + out := make(chan blocks.Block) + go func() { + defer close(out) + var misses []cid.Cid + for _, k := range ks { + hit, err := e.bs.Get(k) + if err != nil { + misses = append(misses, k) + // a long line of misses should abort when context is cancelled. + select { + // TODO case send misses down channel + case <-ctx.Done(): + return + default: + continue + } + } + select { + case out <- hit: + case <-ctx.Done(): + return + } + } + }() + return out, nil +} + +func (e *offlineExchange) IsOnline() bool { + return false +} diff --git a/vendor/github.com/ipfs/go-ipfs-exchange-offline/package.json b/vendor/github.com/ipfs/go-ipfs-exchange-offline/package.json new file mode 100644 index 00000000..e356dd9f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-exchange-offline/package.json @@ -0,0 +1,48 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-exchange-offline" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-exchange-offline" + }, + "gxDependencies": [ + { + "author": "hsanjuan", + "hash": "QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA", + "name": "go-ipfs-blockstore", + "version": "0.1.8" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "hsanjuan", + "hash": "QmWokDcQdSZCxrNxgaRzQDDBofALhActzNBaxRLtiRkUHg", + "name": "go-ipfs-exchange-interface", + "version": "0.1.3" + }, + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "hsanjuan", + "hash": "QmcbQ44AgbtV1rnxZz5RsRVduxdgNYLANxnsuW5wvvu4ts", + "name": "go-ipfs-blocksutil", + "version": "0.1.2" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipfs-exchange-offline", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.7" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-files/.travis.yml b/vendor/github.com/ipfs/go-ipfs-files/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-files/LICENSE b/vendor/github.com/ipfs/go-ipfs-files/LICENSE new file mode 100644 index 00000000..6cccfc2b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-files/README.md b/vendor/github.com/ipfs/go-ipfs-files/README.md new file mode 100644 index 00000000..4f704695 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/README.md @@ -0,0 +1,27 @@ +# go-ipfs-files + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> File interfaces and utils used in IPFS + +## Documentation + +https://godoc.org/github.com/ipfs/go-ipfs-files + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-ipfs-files/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT + diff --git a/vendor/github.com/ipfs/go-ipfs-files/file.go b/vendor/github.com/ipfs/go-ipfs-files/file.go new file mode 100644 index 00000000..4d7ef113 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/file.go @@ -0,0 +1,94 @@ +package files + +import ( + "errors" + "io" + "os" +) + +var ( + ErrNotDirectory = errors.New("file isn't a directory") + ErrNotReader = errors.New("file isn't a regular file") + + ErrNotSupported = errors.New("operation not supported") +) + +// Node is a common interface for files, directories and other special files +type Node interface { + io.Closer + + // Size returns size of this file (if this file is a directory, total size of + // all files stored in the tree should be returned). Some implementations may + // choose not to implement this + Size() (int64, error) +} + +// Node represents a regular Unix file +type File interface { + Node + + io.Reader + io.Seeker +} + +// DirEntry exposes information about a directory entry +type DirEntry interface { + // Name returns base name of this entry, which is the base name of referenced + // file + Name() string + + // Node returns the file referenced by this DirEntry + Node() Node +} + +// DirIterator is a iterator over directory entries. +// See Directory.Entries for more +type DirIterator interface { + // DirEntry holds information about current directory entry. + // Note that after creating new iterator you MUST call Next() at least once + // before accessing these methods. Calling these methods without prior calls + // to Next() and after Next() returned false may result in undefined behavior + DirEntry + + // Next advances iterator to the next file. + Next() bool + + // Err may return an error after previous call to Next() returned `false`. + // If previous call to Next() returned `true`, Err() is guaranteed to + // return nil + Err() error +} + +// Directory is a special file which can link to any number of files. +type Directory interface { + Node + + // Entries returns a stateful iterator over directory entries. + // + // Example usage: + // + // it := dir.Entries() + // for it.Next() { + // name := it.Name() + // file := it.Node() + // [...] + // } + // if it.Err() != nil { + // return err + // } + // + // Note that you can't store the result of it.Node() and use it after + // advancing the iterator + Entries() DirIterator +} + +// FileInfo exposes information on files in local filesystem +type FileInfo interface { + Node + + // AbsPath returns full real file path. + AbsPath() string + + // Stat returns os.Stat of this file, may be nil for some files + Stat() os.FileInfo +} diff --git a/vendor/github.com/ipfs/go-ipfs-files/go.mod b/vendor/github.com/ipfs/go-ipfs-files/go.mod new file mode 100644 index 00000000..1e70e551 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/go.mod @@ -0,0 +1,3 @@ +module github.com/ipfs/go-ipfs-files + +require golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 diff --git a/vendor/github.com/ipfs/go-ipfs-files/go.sum b/vendor/github.com/ipfs/go-ipfs-files/go.sum new file mode 100644 index 00000000..55a8c3a9 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/go.sum @@ -0,0 +1,2 @@ +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 h1:xQJI9OEiErEQ++DoXOHqEpzsGMrAv2Q2jyCpi7DmfpQ= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-ipfs-files/is_hidden.go b/vendor/github.com/ipfs/go-ipfs-files/is_hidden.go new file mode 100644 index 00000000..4ebca600 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/is_hidden.go @@ -0,0 +1,18 @@ +// +build !windows + +package files + +import ( + "path/filepath" + "strings" +) + +func IsHidden(name string, f Node) bool { + fName := filepath.Base(name) + + if strings.HasPrefix(fName, ".") && len(fName) > 1 { + return true + } + + return false +} diff --git a/vendor/github.com/ipfs/go-ipfs-files/is_hidden_windows.go b/vendor/github.com/ipfs/go-ipfs-files/is_hidden_windows.go new file mode 100644 index 00000000..7419f932 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/is_hidden_windows.go @@ -0,0 +1,35 @@ +// +build windows + +package files + +import ( + "path/filepath" + "strings" + + windows "golang.org/x/sys/windows" +) + +func IsHidden(name string, f Node) bool { + + fName := filepath.Base(name) + + if strings.HasPrefix(fName, ".") && len(fName) > 1 { + return true + } + + fi, ok := f.(FileInfo) + if !ok { + return false + } + + p, e := windows.UTF16PtrFromString(fi.AbsPath()) + if e != nil { + return false + } + + attrs, e := windows.GetFileAttributes(p) + if e != nil { + return false + } + return attrs&windows.FILE_ATTRIBUTE_HIDDEN != 0 +} diff --git a/vendor/github.com/ipfs/go-ipfs-files/linkfile.go b/vendor/github.com/ipfs/go-ipfs-files/linkfile.go new file mode 100644 index 00000000..409309bc --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/linkfile.go @@ -0,0 +1,53 @@ +package files + +import ( + "io" + "os" + "strings" +) + +type Symlink struct { + Target string + stat os.FileInfo + + reader io.Reader +} + +func NewLinkFile(target string, stat os.FileInfo) File { + return &Symlink{ + Target: target, + stat: stat, + reader: strings.NewReader(target), + } +} + +func (lf *Symlink) Close() error { + if c, ok := lf.reader.(io.Closer); ok { + return c.Close() + } + + return nil +} + +func (lf *Symlink) Read(b []byte) (int, error) { + return lf.reader.Read(b) +} + +func (lf *Symlink) Seek(offset int64, whence int) (int64, error) { + if s, ok := lf.reader.(io.Seeker); ok { + return s.Seek(offset, whence) + } + + return 0, ErrNotSupported +} + +func (lf *Symlink) Size() (int64, error) { + return 0, ErrNotSupported +} + +func ToSymlink(n Node) *Symlink { + l, _ := n.(*Symlink) + return l +} + +var _ File = &Symlink{} diff --git a/vendor/github.com/ipfs/go-ipfs-files/multifilereader.go b/vendor/github.com/ipfs/go-ipfs-files/multifilereader.go new file mode 100644 index 00000000..86867f68 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/multifilereader.go @@ -0,0 +1,152 @@ +package files + +import ( + "bytes" + "fmt" + "io" + "mime/multipart" + "net/textproto" + "net/url" + "path" + "sync" +) + +// MultiFileReader reads from a `commands.Node` (which can be a directory of files +// or a regular file) as HTTP multipart encoded data. +type MultiFileReader struct { + io.Reader + + // directory stack for NextFile + files []DirIterator + path []string + + currentFile Node + buf bytes.Buffer + mpWriter *multipart.Writer + closed bool + mutex *sync.Mutex + + // if true, the data will be type 'multipart/form-data' + // if false, the data will be type 'multipart/mixed' + form bool +} + +// NewMultiFileReader constructs a MultiFileReader. `file` can be any `commands.Directory`. +// If `form` is set to true, the multipart data will have a Content-Type of 'multipart/form-data', +// if `form` is false, the Content-Type will be 'multipart/mixed'. +func NewMultiFileReader(file Directory, form bool) *MultiFileReader { + it := file.Entries() + + mfr := &MultiFileReader{ + files: []DirIterator{it}, + path: []string{""}, + form: form, + mutex: &sync.Mutex{}, + } + mfr.mpWriter = multipart.NewWriter(&mfr.buf) + + return mfr +} + +func (mfr *MultiFileReader) Read(buf []byte) (written int, err error) { + mfr.mutex.Lock() + defer mfr.mutex.Unlock() + + // if we are closed and the buffer is flushed, end reading + if mfr.closed && mfr.buf.Len() == 0 { + return 0, io.EOF + } + + // if the current file isn't set, advance to the next file + if mfr.currentFile == nil { + var entry DirEntry + + for entry == nil { + if len(mfr.files) == 0 { + mfr.mpWriter.Close() + mfr.closed = true + return mfr.buf.Read(buf) + } + + if !mfr.files[len(mfr.files)-1].Next() { + if mfr.files[len(mfr.files)-1].Err() != nil { + return 0, mfr.files[len(mfr.files)-1].Err() + } + mfr.files = mfr.files[:len(mfr.files)-1] + mfr.path = mfr.path[:len(mfr.path)-1] + continue + } + + entry = mfr.files[len(mfr.files)-1] + } + + // handle starting a new file part + if !mfr.closed { + + mfr.currentFile = entry.Node() + + // write the boundary and headers + header := make(textproto.MIMEHeader) + filename := url.QueryEscape(path.Join(path.Join(mfr.path...), entry.Name())) + dispositionPrefix := "attachment" + if mfr.form { + dispositionPrefix = "form-data; name=\"file\"" + } + + header.Set("Content-Disposition", fmt.Sprintf("%s; filename=\"%s\"", dispositionPrefix, filename)) + + var contentType string + + switch f := entry.Node().(type) { + case *Symlink: + contentType = "application/symlink" + case Directory: + newIt := f.Entries() + mfr.files = append(mfr.files, newIt) + mfr.path = append(mfr.path, entry.Name()) + contentType = "application/x-directory" + case File: + // otherwise, use the file as a reader to read its contents + contentType = "application/octet-stream" + default: + return 0, ErrNotSupported + } + + header.Set("Content-Type", contentType) + if rf, ok := entry.Node().(FileInfo); ok { + header.Set("abspath", rf.AbsPath()) + } + + _, err := mfr.mpWriter.CreatePart(header) + if err != nil { + return 0, err + } + } + } + + // if the buffer has something in it, read from it + if mfr.buf.Len() > 0 { + return mfr.buf.Read(buf) + } + + // otherwise, read from file data + switch f := mfr.currentFile.(type) { + case File: + written, err = f.Read(buf) + if err != io.EOF { + return written, err + } + } + + if err := mfr.currentFile.Close(); err != nil { + return written, err + } + + mfr.currentFile = nil + return written, nil +} + +// Boundary returns the boundary string to be used to separate files in the multipart data +func (mfr *MultiFileReader) Boundary() string { + return mfr.mpWriter.Boundary() +} diff --git a/vendor/github.com/ipfs/go-ipfs-files/multipartfile.go b/vendor/github.com/ipfs/go-ipfs-files/multipartfile.go new file mode 100644 index 00000000..d4593ad6 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/multipartfile.go @@ -0,0 +1,228 @@ +package files + +import ( + "io" + "io/ioutil" + "mime" + "mime/multipart" + "net/url" + "path" + "strings" +) + +const ( + multipartFormdataType = "multipart/form-data" + multipartMixedType = "multipart/mixed" + + applicationDirectory = "application/x-directory" + applicationSymlink = "application/symlink" + applicationFile = "application/octet-stream" + + contentTypeHeader = "Content-Type" +) + +type multipartDirectory struct { + path string + walker *multipartWalker + + // part is the part describing the directory. It's nil when implicit. + part *multipart.Part +} + +type multipartWalker struct { + part *multipart.Part + reader *multipart.Reader +} + +func (m *multipartWalker) consumePart() { + m.part = nil +} + +func (m *multipartWalker) getPart() (*multipart.Part, error) { + if m.part != nil { + return m.part, nil + } + if m.reader == nil { + return nil, io.EOF + } + + var err error + m.part, err = m.reader.NextPart() + if err == io.EOF { + m.reader = nil + } + return m.part, err +} + +// NewFileFromPartReader creates a Directory from a multipart reader. +func NewFileFromPartReader(reader *multipart.Reader, mediatype string) (Directory, error) { + switch mediatype { + case applicationDirectory, multipartFormdataType: + default: + return nil, ErrNotDirectory + } + + return &multipartDirectory{ + path: "/", + walker: &multipartWalker{ + reader: reader, + }, + }, nil +} + +func (w *multipartWalker) nextFile() (Node, error) { + part, err := w.getPart() + if err != nil { + return nil, err + } + w.consumePart() + + contentType := part.Header.Get(contentTypeHeader) + if contentType != "" { + var err error + contentType, _, err = mime.ParseMediaType(contentType) + if err != nil { + return nil, err + } + } + + switch contentType { + case multipartFormdataType, applicationDirectory: + return &multipartDirectory{ + part: part, + path: fileName(part), + walker: w, + }, nil + case applicationSymlink: + out, err := ioutil.ReadAll(part) + if err != nil { + return nil, err + } + + return NewLinkFile(string(out), nil), nil + default: + return &ReaderFile{ + reader: part, + abspath: part.Header.Get("abspath"), + }, nil + } +} + +// fileName returns a normalized filename from a part. +func fileName(part *multipart.Part) string { + filename := part.FileName() + if escaped, err := url.QueryUnescape(filename); err == nil { + filename = escaped + } // if there is a unescape error, just treat the name as unescaped + + return path.Clean("/" + filename) +} + +// dirName appends a slash to the end of the filename, if not present. +// expects a _cleaned_ path. +func dirName(filename string) string { + if !strings.HasSuffix(filename, "/") { + filename += "/" + } + return filename +} + +// isChild checks if child is a child of parent directory. +// expects a _cleaned_ path. +func isChild(child, parent string) bool { + return strings.HasPrefix(child, dirName(parent)) +} + +// makeRelative makes the child path relative to the parent path. +// expects a _cleaned_ path. +func makeRelative(child, parent string) string { + return strings.TrimPrefix(child, dirName(parent)) +} + +type multipartIterator struct { + f *multipartDirectory + + curFile Node + curName string + err error +} + +func (it *multipartIterator) Name() string { + return it.curName +} + +func (it *multipartIterator) Node() Node { + return it.curFile +} + +func (it *multipartIterator) Next() bool { + if it.f.walker.reader == nil || it.err != nil { + return false + } + var part *multipart.Part + for { + part, it.err = it.f.walker.getPart() + if it.err != nil { + return false + } + + name := fileName(part) + + // Is the file in a different directory? + if !isChild(name, it.f.path) { + return false + } + + // Have we already entered this directory? + if it.curName != "" && isChild(name, path.Join(it.f.path, it.curName)) { + it.f.walker.consumePart() + continue + } + + // Make the path relative to the current directory. + name = makeRelative(name, it.f.path) + + // Check if we need to create a fake directory (more than one + // path component). + if idx := strings.IndexByte(name, '/'); idx >= 0 { + it.curName = name[:idx] + it.curFile = &multipartDirectory{ + path: path.Join(it.f.path, it.curName), + walker: it.f.walker, + } + return true + } + it.curName = name + + // Finally, advance to the next file. + it.curFile, it.err = it.f.walker.nextFile() + + return it.err == nil + } +} + +func (it *multipartIterator) Err() error { + // We use EOF to signal that this iterator is done. That way, we don't + // need to check every time `Next` is called. + if it.err == io.EOF { + return nil + } + return it.err +} + +func (f *multipartDirectory) Entries() DirIterator { + return &multipartIterator{f: f} +} + +func (f *multipartDirectory) Close() error { + if f.part != nil { + return f.part.Close() + } + return nil +} + +func (f *multipartDirectory) Size() (int64, error) { + return 0, ErrNotSupported +} + +var _ Directory = &multipartDirectory{} diff --git a/vendor/github.com/ipfs/go-ipfs-files/package.json b/vendor/github.com/ipfs/go-ipfs-files/package.json new file mode 100644 index 00000000..967f2e79 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/package.json @@ -0,0 +1,24 @@ +{ + "author": "magik6k", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-files" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-files" + }, + "gxDependencies": [ + { + "author": "The Go Authors", + "hash": "QmVGjyM9i2msKvLXwh9VosCTgP4mL91kC7hDmqnwTTx6Hu", + "name": "sys", + "version": "0.2.0" + } + ], + "gxVersion": "0.11.0", + "language": "go", + "license": "", + "name": "go-ipfs-files", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.7" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-files/readerfile.go b/vendor/github.com/ipfs/go-ipfs-files/readerfile.go new file mode 100644 index 00000000..f98fec48 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/readerfile.go @@ -0,0 +1,82 @@ +package files + +import ( + "bytes" + "io" + "io/ioutil" + "os" + "path/filepath" +) + +// ReaderFile is a implementation of File created from an `io.Reader`. +// ReaderFiles are never directories, and can be read from and closed. +type ReaderFile struct { + abspath string + reader io.ReadCloser + stat os.FileInfo + + fsize int64 +} + +func NewBytesFile(b []byte) File { + return &ReaderFile{"", NewReaderFile(bytes.NewReader(b)), nil, int64(len(b))} +} + +func NewReaderFile(reader io.Reader) File { + return NewReaderStatFile(reader, nil) +} + +func NewReaderStatFile(reader io.Reader, stat os.FileInfo) File { + rc, ok := reader.(io.ReadCloser) + if !ok { + rc = ioutil.NopCloser(reader) + } + + return &ReaderFile{"", rc, stat, -1} +} + +func NewReaderPathFile(path string, reader io.ReadCloser, stat os.FileInfo) (*ReaderFile, error) { + abspath, err := filepath.Abs(path) + if err != nil { + return nil, err + } + + return &ReaderFile{abspath, reader, stat, -1}, nil +} + +func (f *ReaderFile) AbsPath() string { + return f.abspath +} + +func (f *ReaderFile) Read(p []byte) (int, error) { + return f.reader.Read(p) +} + +func (f *ReaderFile) Close() error { + return f.reader.Close() +} + +func (f *ReaderFile) Stat() os.FileInfo { + return f.stat +} + +func (f *ReaderFile) Size() (int64, error) { + if f.stat == nil { + if f.fsize >= 0 { + return f.fsize, nil + } + return 0, ErrNotSupported + } + return f.stat.Size(), nil +} + +func (f *ReaderFile) Seek(offset int64, whence int) (int64, error) { + if s, ok := f.reader.(io.Seeker); ok { + return s.Seek(offset, whence) + } + + return 0, ErrNotSupported +} + +var _ File = &ReaderFile{} +var _ FileInfo = &ReaderFile{} diff --git a/vendor/github.com/ipfs/go-ipfs-files/serialfile.go b/vendor/github.com/ipfs/go-ipfs-files/serialfile.go new file mode 100644 index 00000000..e29752d6 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/serialfile.go @@ -0,0 +1,178 @@ +package files + +import ( + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" +) + +// serialFile implements Node, and reads from a path on the OS filesystem. +// No more than one file will be opened at a time (directories will advance +// to the next file when NextFile() is called). +type serialFile struct { + path string + files []os.FileInfo + stat os.FileInfo + handleHiddenFiles bool +} + +type serialIterator struct { + files []os.FileInfo + handleHiddenFiles bool + path string + + curName string + curFile Node + + err error +} + +// TODO: test/document limitations +func NewSerialFile(path string, hidden bool, stat os.FileInfo) (Node, error) { + switch mode := stat.Mode(); { + case mode.IsRegular(): + file, err := os.Open(path) + if err != nil { + return nil, err + } + return NewReaderPathFile(path, file, stat) + case mode.IsDir(): + // for directories, stat all of the contents first, so we know what files to + // open when NextFile() is called + contents, err := ioutil.ReadDir(path) + if err != nil { + return nil, err + } + return &serialFile{path, contents, stat, hidden}, nil + case mode&os.ModeSymlink != 0: + target, err := os.Readlink(path) + if err != nil { + return nil, err + } + return NewLinkFile(target, stat), nil + default: + return nil, fmt.Errorf("unrecognized file type for %s: %s", path, mode.String()) + } +} + +func (it *serialIterator) Name() string { + return it.curName +} + +func (it *serialIterator) Node() Node { + return it.curFile +} + +func (it *serialIterator) Next() bool { + // if there aren't any files left in the root directory, we're done + if len(it.files) == 0 { + return false + } + + stat := it.files[0] + it.files = it.files[1:] + for !it.handleHiddenFiles && strings.HasPrefix(stat.Name(), ".") { + if len(it.files) == 0 { + return false + } + + stat = it.files[0] + it.files = it.files[1:] + } + + // open the next file + filePath := filepath.ToSlash(filepath.Join(it.path, stat.Name())) + + // recursively call the constructor on the next file + // if it's a regular file, we will open it as a ReaderFile + // if it's a directory, files in it will be opened serially + sf, err := NewSerialFile(filePath, it.handleHiddenFiles, stat) + if err != nil { + it.err = err + return false + } + + it.curName = stat.Name() + it.curFile = sf + return true +} + +func (it *serialIterator) Err() error { + return it.err +} + +func (f *serialFile) Entries() DirIterator { + return &serialIterator{ + path: f.path, + files: f.files, + handleHiddenFiles: f.handleHiddenFiles, + } +} + +func (f *serialFile) NextFile() (string, Node, error) { + // if there aren't any files left in the root directory, we're done + if len(f.files) == 0 { + return "", nil, io.EOF + } + + stat := f.files[0] + f.files = f.files[1:] + + for !f.handleHiddenFiles && strings.HasPrefix(stat.Name(), ".") { + if len(f.files) == 0 { + return "", nil, io.EOF + } + + stat = f.files[0] + f.files = f.files[1:] + } + + // open the next file + filePath := filepath.ToSlash(filepath.Join(f.path, stat.Name())) + + // recursively call the constructor on the next file + // if it's a regular file, we will open it as a ReaderFile + // if it's a directory, files in it will be opened serially + sf, err := NewSerialFile(filePath, f.handleHiddenFiles, stat) + if err != nil { + return "", nil, err + } + + return stat.Name(), sf, nil +} + +func (f *serialFile) Close() error { + return nil +} + +func (f *serialFile) Stat() os.FileInfo { + return f.stat +} + +func (f *serialFile) Size() (int64, error) { + if !f.stat.IsDir() { + //something went terribly, terribly wrong + return 0, errors.New("serialFile is not a directory") + } + + var du int64 + err := filepath.Walk(f.path, func(p string, fi os.FileInfo, err error) error { + if err != nil { + return err + } + + if fi != nil && fi.Mode().IsRegular() { + du += fi.Size() + } + return nil + }) + + return du, err +} + +var _ Directory = &serialFile{} +var _ DirIterator = &serialIterator{} diff --git a/vendor/github.com/ipfs/go-ipfs-files/slicedirectory.go b/vendor/github.com/ipfs/go-ipfs-files/slicedirectory.go new file mode 100644 index 00000000..d1165626 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/slicedirectory.go @@ -0,0 +1,97 @@ +package files + +import "sort" + +type fileEntry struct { + name string + file Node +} + +func (e fileEntry) Name() string { + return e.name +} + +func (e fileEntry) Node() Node { + return e.file +} + +func FileEntry(name string, file Node) DirEntry { + return fileEntry{ + name: name, + file: file, + } +} + +type sliceIterator struct { + files []DirEntry + n int +} + +func (it *sliceIterator) Name() string { + return it.files[it.n].Name() +} + +func (it *sliceIterator) Node() Node { + return it.files[it.n].Node() +} + +func (it *sliceIterator) Next() bool { + it.n++ + return it.n < len(it.files) +} + +func (it *sliceIterator) Err() error { + return nil +} + +// SliceFile implements Node, and provides simple directory handling. +// It contains children files, and is created from a `[]Node`. +// SliceFiles are always directories, and can't be read from or closed. +type SliceFile struct { + files []DirEntry +} + +func NewMapDirectory(f map[string]Node) Directory { + ents := make([]DirEntry, 0, len(f)) + for name, nd := range f { + ents = append(ents, FileEntry(name, nd)) + } + sort.Slice(ents, func(i, j int) bool { + return ents[i].Name() < ents[j].Name() + }) + + return NewSliceDirectory(ents) +} + +func NewSliceDirectory(files []DirEntry) Directory { + return &SliceFile{files} +} + +func (f *SliceFile) Entries() DirIterator { + return &sliceIterator{files: f.files, n: -1} +} + +func (f *SliceFile) Close() error { + return nil +} + +func (f *SliceFile) Length() int { + return len(f.files) +} + +func (f *SliceFile) Size() (int64, error) { + var size int64 + + for _, file := range f.files { + s, err := file.Node().Size() + if err != nil { + return 0, err + } + size += s + } + + return size, nil +} + +var _ Directory = &SliceFile{} +var _ DirEntry = fileEntry{} diff --git a/vendor/github.com/ipfs/go-ipfs-files/tarwriter.go b/vendor/github.com/ipfs/go-ipfs-files/tarwriter.go new file mode 100644 index 00000000..6d062726 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/tarwriter.go @@ -0,0 +1,100 @@ +package files + +import ( + "archive/tar" + "fmt" + "io" + "path" + "time" +) + +type TarWriter struct { + TarW *tar.Writer +} + +// NewTarWriter wraps given io.Writer into a new tar writer +func NewTarWriter(w io.Writer) (*TarWriter, error) { + return &TarWriter{ + TarW: tar.NewWriter(w), + }, nil +} + +func (w *TarWriter) writeDir(f Directory, fpath string) error { + if err := writeDirHeader(w.TarW, fpath); err != nil { + return err + } + + it := f.Entries() + for it.Next() { + if err := w.WriteFile(it.Node(), path.Join(fpath, it.Name())); err != nil { + return err + } + } + return it.Err() +} + +func (w *TarWriter) writeFile(f File, fpath string) error { + size, err := f.Size() + if err != nil { + return err + } + + if err := writeFileHeader(w.TarW, fpath, uint64(size)); err != nil { + return err + } + + if _, err := io.Copy(w.TarW, f); err != nil { + return err + } + w.TarW.Flush() + return nil +} + +// WriteNode adds a node to the archive. +func (w *TarWriter) WriteFile(nd Node, fpath string) error { + switch nd := nd.(type) { + case *Symlink: + return writeSymlinkHeader(w.TarW, nd.Target, fpath) + case File: + return w.writeFile(nd, fpath) + case Directory: + return w.writeDir(nd, fpath) + default: + return fmt.Errorf("file type %T is not supported", nd) + } +} + +// Close closes the tar writer. +func (w *TarWriter) Close() error { + return w.TarW.Close() +} + +func writeDirHeader(w *tar.Writer, fpath string) error { + return w.WriteHeader(&tar.Header{ + Name: fpath, + Typeflag: tar.TypeDir, + Mode: 0777, + ModTime: time.Now(), + // TODO: set mode, dates, etc. when added to unixFS + }) +} + +func writeFileHeader(w *tar.Writer, fpath string, size uint64) error { + return w.WriteHeader(&tar.Header{ + Name: fpath, + Size: int64(size), + Typeflag: tar.TypeReg, + Mode: 0644, + ModTime: time.Now(), + // TODO: set mode, dates, etc. when added to unixFS + }) +} + +func writeSymlinkHeader(w *tar.Writer, target, fpath string) error { + return w.WriteHeader(&tar.Header{ + Name: fpath, + Linkname: target, + Mode: 0777, + Typeflag: tar.TypeSymlink, + }) +} diff --git a/vendor/github.com/ipfs/go-ipfs-files/util.go b/vendor/github.com/ipfs/go-ipfs-files/util.go new file mode 100644 index 00000000..e727e7ae --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/util.go @@ -0,0 +1,25 @@ +package files + +// ToFile is an alias for n.(File). If the file isn't a regular file, nil value +// will be returned +func ToFile(n Node) File { + f, _ := n.(File) + return f +} + +// ToDir is an alias for n.(Directory). If the file isn't directory, a nil value +// will be returned +func ToDir(n Node) Directory { + d, _ := n.(Directory) + return d +} + +// FileFromEntry calls ToFile on Node in the given entry +func FileFromEntry(e DirEntry) File { + return ToFile(e.Node()) +} + +// DirFromEntry calls ToDir on Node in the given entry +func DirFromEntry(e DirEntry) Directory { + return ToDir(e.Node()) +} diff --git a/vendor/github.com/ipfs/go-ipfs-files/webfile.go b/vendor/github.com/ipfs/go-ipfs-files/webfile.go new file mode 100644 index 00000000..0e26e277 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-files/webfile.go @@ -0,0 +1,74 @@ +package files + +import ( + "errors" + "io" + "net/http" + "net/url" + "os" +) + +// WebFile is an implementation of File which reads it +// from a Web URL (http). A GET request will be performed +// against the source when calling Read(). +type WebFile struct { + body io.ReadCloser + url *url.URL + contentLength int64 +} + +// NewWebFile creates a WebFile with the given URL, which +// will be used to perform the GET request on Read(). +func NewWebFile(url *url.URL) *WebFile { + return &WebFile{ + url: url, + } +} + +// Read reads the File from it's web location. On the first +// call to Read, a GET request will be performed against the +// WebFile's URL, using Go's default HTTP client. Any further +// reads will keep reading from the HTTP Request body. +func (wf *WebFile) Read(b []byte) (int, error) { + if wf.body == nil { + resp, err := http.Get(wf.url.String()) + if err != nil { + return 0, err + } + wf.body = resp.Body + wf.contentLength = resp.ContentLength + } + return wf.body.Read(b) +} + +// Close closes the WebFile (or the request body). +func (wf *WebFile) Close() error { + if wf.body == nil { + return nil + } + return wf.body.Close() +} + +// TODO: implement +func (wf *WebFile) Seek(offset int64, whence int) (int64, error) { + return 0, ErrNotSupported +} + +func (wf *WebFile) Size() (int64, error) { + if wf.contentLength < 0 { + return -1, errors.New("Content-Length hearer was not set") + } + + return wf.contentLength, nil +} + +func (wf *WebFile) AbsPath() string { + return wf.url.String() +} + +func (wf *WebFile) Stat() os.FileInfo { + return nil +} + +var _ File = &WebFile{} +var _ FileInfo = &WebFile{} diff --git a/vendor/github.com/ipfs/go-ipfs-flags/.travis.yml b/vendor/github.com/ipfs/go-ipfs-flags/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-flags/LICENSE b/vendor/github.com/ipfs/go-ipfs-flags/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-flags/Makefile b/vendor/github.com/ipfs/go-ipfs-flags/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-flags/README.md b/vendor/github.com/ipfs/go-ipfs-flags/README.md new file mode 100644 index 00000000..b5393162 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/README.md @@ -0,0 +1,42 @@ +# go-ipfs-flags + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-flags?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-flags) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-flags.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-flags) + +> go-ipfs-flags groups go-ipfs configuration options used by several modules. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-flags` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-flags +``` + +## Usage + +``` +import "github.com/ipfs/go-ipfs-flags" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-flags) + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-flags/flags.go b/vendor/github.com/ipfs/go-ipfs-flags/flags.go new file mode 100644 index 00000000..d3e750ae --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/flags.go @@ -0,0 +1,14 @@ +package flags + +import ( + "os" +) + +// LowMemMode specifies if we should try to reduce the memory footprint +var LowMemMode bool + +func init() { + if os.Getenv("IPFS_LOW_MEM") != "" { + LowMemMode = true + } +} diff --git a/vendor/github.com/ipfs/go-ipfs-flags/go.mod b/vendor/github.com/ipfs/go-ipfs-flags/go.mod new file mode 100644 index 00000000..a8126fff --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/go.mod @@ -0,0 +1 @@ +module github.com/ipfs/go-ipfs-flags diff --git a/vendor/github.com/ipfs/go-ipfs-flags/package.json b/vendor/github.com/ipfs/go-ipfs-flags/package.json new file mode 100644 index 00000000..1d95f253 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-flags/package.json @@ -0,0 +1,16 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-flags" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-flags" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-ipfs-flags", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.0.1" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/.gitignore b/vendor/github.com/ipfs/go-ipfs-posinfo/.gitignore new file mode 100644 index 00000000..a1338d68 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/.gitignore @@ -0,0 +1,14 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/.travis.yml b/vendor/github.com/ipfs/go-ipfs-posinfo/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/LICENSE b/vendor/github.com/ipfs/go-ipfs-posinfo/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/Makefile b/vendor/github.com/ipfs/go-ipfs-posinfo/Makefile new file mode 100644 index 00000000..24d71558 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + go test -v -covermode count -coverprofile=coverage.out . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/README.md b/vendor/github.com/ipfs/go-ipfs-posinfo/README.md new file mode 100644 index 00000000..bd509c17 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/README.md @@ -0,0 +1,37 @@ +# go-ipfs-posinfo + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-posinfo?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-posinfo) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-posinfo.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-posinfo) + +> Posinfo wraps offset information for ipfs filestore nodes + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +``` +go get github.com/ipfs/go-ipfs-posinfo +``` + +## Usage + +See the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-posinfo) + + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/go.mod b/vendor/github.com/ipfs/go-ipfs-posinfo/go.mod new file mode 100644 index 00000000..d0064084 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/go.mod @@ -0,0 +1,3 @@ +module github.com/ipfs/go-ipfs-posinfo + +require github.com/ipfs/go-ipld-format v0.0.1 diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/go.sum b/vendor/github.com/ipfs/go-ipfs-posinfo/go.sum new file mode 100644 index 00000000..9e2d1534 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/go.sum @@ -0,0 +1,28 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/package.json b/vendor/github.com/ipfs/go-ipfs-posinfo/package.json new file mode 100644 index 00000000..f1815f58 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/package.json @@ -0,0 +1,24 @@ +{ + "author": "hector", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-posinfo" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-posinfo" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipfs-posinfo", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.5" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-posinfo/posinfo.go b/vendor/github.com/ipfs/go-ipfs-posinfo/posinfo.go new file mode 100644 index 00000000..0b32c89d --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-posinfo/posinfo.go @@ -0,0 +1,23 @@ +// Package posinfo wraps offset information used by ipfs filestore nodes +package posinfo + +import ( + "os" + + ipld "github.com/ipfs/go-ipld-format" +) + +// PosInfo stores information about the file offset, its path and +// stat. +type PosInfo struct { + Offset uint64 + FullPath string + Stat os.FileInfo // can be nil +} + +// FilestoreNode is an ipld.Node which arries PosInfo with it +// allowing to map it directly to a filesystem object. +type FilestoreNode struct { + ipld.Node + PosInfo *PosInfo +} diff --git a/vendor/github.com/ipfs/go-ipfs-pq/.travis.yml b/vendor/github.com/ipfs/go-ipfs-pq/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-pq/LICENSE b/vendor/github.com/ipfs/go-ipfs-pq/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-pq/Makefile b/vendor/github.com/ipfs/go-ipfs-pq/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-ipfs-pq/README.md b/vendor/github.com/ipfs/go-ipfs-pq/README.md new file mode 100644 index 00000000..df2157fc --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/README.md @@ -0,0 +1,42 @@ +# go-ipfs-pq + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs-pq?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs-pq) +[![Build Status](https://travis-ci.org/ipfs/go-ipfs-pq.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-pq) + +> go-ipfs-pq implements a priority queue. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-ipfs-pq` works like a regular Go module: + +``` +> go get github.com/ipfs/go-ipfs-pq +``` + +## Usage + +``` +import "github.com/ipfs/go-ipfs-pq" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-ipfs-pq) + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-ipfs-pq/go.mod b/vendor/github.com/ipfs/go-ipfs-pq/go.mod new file mode 100644 index 00000000..28b98ba0 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/go.mod @@ -0,0 +1 @@ +module github.com/ipfs/go-ipfs-pq diff --git a/vendor/github.com/ipfs/go-ipfs-pq/package.json b/vendor/github.com/ipfs/go-ipfs-pq/package.json new file mode 100644 index 00000000..329e1c13 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/package.json @@ -0,0 +1,16 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-ipfs-pq" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-pq" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipfs-pq", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.0.1" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-pq/pq.go b/vendor/github.com/ipfs/go-ipfs-pq/pq.go new file mode 100644 index 00000000..28f40616 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-pq/pq.go @@ -0,0 +1,106 @@ +// Package pq implements a priority queue. +package pq + +import "container/heap" + +// PQ is a basic priority queue. +type PQ interface { + // Push adds the ele + Push(Elem) + // Pop returns the highest priority Elem in PQ. + Pop() Elem + // Len returns the number of elements in the PQ. + Len() int + // Update `fixes` the PQ. + Update(index int) + + // TODO explain why this interface should not be extended + // It does not support Remove. This is because... +} + +// Elem describes elements that can be added to the PQ. Clients must implement +// this interface. +type Elem interface { + // SetIndex stores the int index. + SetIndex(int) + // Index returns the last given by SetIndex(int). + Index() int +} + +// ElemComparator returns true if pri(a) > pri(b) +type ElemComparator func(a, b Elem) bool + +// New creates a PQ with a client-supplied comparator. +func New(cmp ElemComparator) PQ { + q := &wrapper{heapinterface{ + elems: make([]Elem, 0), + cmp: cmp, + }} + heap.Init(&q.heapinterface) + return q +} + +// wrapper exists because we cannot re-define Push. We want to expose +// Push(Elem) but heap.Interface requires Push(interface{}) +type wrapper struct { + heapinterface +} + +var _ PQ = &wrapper{} + +func (w *wrapper) Push(e Elem) { + heap.Push(&w.heapinterface, e) +} + +func (w *wrapper) Pop() Elem { + return heap.Pop(&w.heapinterface).(Elem) +} + +func (w *wrapper) Update(index int) { + heap.Fix(&w.heapinterface, index) +} + +// heapinterface handles dirty low-level details of managing the priority queue. +type heapinterface struct { + elems []Elem + cmp ElemComparator +} + +var _ heap.Interface = &heapinterface{} + +// public interface + +func (q *heapinterface) Len() int { + return len(q.elems) +} + +// Less delegates the decision to the comparator +func (q *heapinterface) Less(i, j int) bool { + return q.cmp(q.elems[i], q.elems[j]) +} + +// Swap swaps the elements with indexes i and j. +func (q *heapinterface) Swap(i, j int) { + q.elems[i], q.elems[j] = q.elems[j], q.elems[i] + q.elems[i].SetIndex(i) + q.elems[j].SetIndex(j) +} + +// Note that Push and Pop in this interface are for package heap's +// implementation to call. To add and remove things from the heap, wrap with +// the pq struct to call heap.Push and heap.Pop. + +func (q *heapinterface) Push(x interface{}) { // where to put the elem? + t := x.(Elem) + t.SetIndex(len(q.elems)) + q.elems = append(q.elems, t) +} + +func (q *heapinterface) Pop() interface{} { + old := q.elems + n := len(old) + elem := old[n-1] // remove the last + elem.SetIndex(-1) // for safety // FIXME why? + q.elems = old[0 : n-1] // shrink + return elem +} diff --git a/vendor/github.com/ipfs/go-ipfs-routing/LICENSE b/vendor/github.com/ipfs/go-ipfs-routing/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-routing/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_client.go b/vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_client.go new file mode 100644 index 00000000..e09350da --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_client.go @@ -0,0 +1,90 @@ +package mockrouting + +import ( + "context" + "time" + + cid "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" + "github.com/libp2p/go-testutil" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("mockrouter") + +type client struct { + vs routing.ValueStore + server server + peer testutil.Identity +} + +// FIXME(brian): is this method meant to simulate putting a value into the network? +func (c *client) PutValue(ctx context.Context, key string, val []byte, opts ...ropts.Option) error { + log.Debugf("PutValue: %s", key) + return c.vs.PutValue(ctx, key, val, opts...) +} + +// FIXME(brian): is this method meant to simulate getting a value from the network? +func (c *client) GetValue(ctx context.Context, key string, opts ...ropts.Option) ([]byte, error) { + log.Debugf("GetValue: %s", key) + return c.vs.GetValue(ctx, key, opts...) +} + +func (c *client) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + log.Debugf("SearchValue: %s", key) + return c.vs.SearchValue(ctx, key, opts...) +} + +func (c *client) FindProviders(ctx context.Context, key cid.Cid) ([]pstore.PeerInfo, error) { + return c.server.Providers(key), nil +} + +func (c *client) FindPeer(ctx context.Context, pid peer.ID) (pstore.PeerInfo, error) { + log.Debugf("FindPeer: %s", pid) + return pstore.PeerInfo{}, nil +} + +func (c *client) FindProvidersAsync(ctx context.Context, k cid.Cid, max int) <-chan pstore.PeerInfo { + out := make(chan pstore.PeerInfo) + go func() { + defer close(out) + for i, p := range c.server.Providers(k) { + if max <= i { + return + } + select { + case out <- p: + case <-ctx.Done(): + return + } + } + }() + return out +} + +// Provide returns once the message is on the network. Value is not necessarily +// visible yet. +func (c *client) Provide(_ context.Context, key cid.Cid, brd bool) error { + if !brd { + return nil + } + info := pstore.PeerInfo{ + ID: c.peer.ID(), + Addrs: []ma.Multiaddr{c.peer.Address()}, + } + return c.server.Announce(info, key) +} + +func (c *client) Ping(ctx context.Context, p peer.ID) (time.Duration, error) { + return 0, nil +} + +func (c *client) Bootstrap(context.Context) error { + return nil +} + +var _ routing.IpfsRouting = &client{} diff --git a/vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_server.go b/vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_server.go new file mode 100644 index 00000000..a223f911 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-routing/mock/centralized_server.go @@ -0,0 +1,93 @@ +package mockrouting + +import ( + "context" + "math/rand" + "sync" + "time" + + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + dssync "github.com/ipfs/go-datastore/sync" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + "github.com/libp2p/go-testutil" + + offline "github.com/ipfs/go-ipfs-routing/offline" +) + +// server is the mockrouting.Client's private interface to the routing server +type server interface { + Announce(pstore.PeerInfo, cid.Cid) error + Providers(cid.Cid) []pstore.PeerInfo + + Server +} + +// s is an implementation of the private server interface +type s struct { + delayConf DelayConfig + + lock sync.RWMutex + providers map[string]map[peer.ID]providerRecord +} + +type providerRecord struct { + Peer pstore.PeerInfo + Created time.Time +} + +func (rs *s) Announce(p pstore.PeerInfo, c cid.Cid) error { + rs.lock.Lock() + defer rs.lock.Unlock() + + k := c.KeyString() + + _, ok := rs.providers[k] + if !ok { + rs.providers[k] = make(map[peer.ID]providerRecord) + } + rs.providers[k][p.ID] = providerRecord{ + Created: time.Now(), + Peer: p, + } + return nil +} + +func (rs *s) Providers(c cid.Cid) []pstore.PeerInfo { + rs.delayConf.Query.Wait() // before locking + + rs.lock.RLock() + defer rs.lock.RUnlock() + k := c.KeyString() + + var ret []pstore.PeerInfo + records, ok := rs.providers[k] + if !ok { + return ret + } + for _, r := range records { + if time.Since(r.Created) > rs.delayConf.ValueVisibility.Get() { + ret = append(ret, r.Peer) + } + } + + for i := range ret { + j := rand.Intn(i + 1) + ret[i], ret[j] = ret[j], ret[i] + } + + return ret +} + +func (rs *s) Client(p testutil.Identity) Client { + return rs.ClientWithDatastore(context.Background(), p, dssync.MutexWrap(ds.NewMapDatastore())) +} + +func (rs *s) ClientWithDatastore(_ context.Context, p testutil.Identity, datastore ds.Datastore) Client { + return &client{ + peer: p, + vs: offline.NewOfflineRouter(datastore, MockValidator{}), + server: rs, + } +} diff --git a/vendor/github.com/ipfs/go-ipfs-routing/mock/interface.go b/vendor/github.com/ipfs/go-ipfs-routing/mock/interface.go new file mode 100644 index 00000000..5d4e9f9a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-routing/mock/interface.go @@ -0,0 +1,59 @@ +// Package mockrouting provides a virtual routing server. To use it, +// create a virtual routing server and use the Client() method to get a +// routing client (IpfsRouting). The server quacks like a DHT but is +// really a local in-memory hash table. +package mockrouting + +import ( + "context" + + ds "github.com/ipfs/go-datastore" + delay "github.com/ipfs/go-ipfs-delay" + peer "github.com/libp2p/go-libp2p-peer" + routing "github.com/libp2p/go-libp2p-routing" + "github.com/libp2p/go-testutil" +) + +// MockValidator is a record validator that always returns success. +type MockValidator struct{} + +func (MockValidator) Validate(_ string, _ []byte) error { return nil } +func (MockValidator) Select(_ string, _ [][]byte) (int, error) { return 0, nil } + +// Server provides mockrouting Clients +type Server interface { + Client(p testutil.Identity) Client + ClientWithDatastore(context.Context, testutil.Identity, ds.Datastore) Client +} + +// Client implements IpfsRouting +type Client interface { + routing.IpfsRouting +} + +// NewServer returns a mockrouting Server +func NewServer() Server { + return NewServerWithDelay(DelayConfig{ + ValueVisibility: delay.Fixed(0), + Query: delay.Fixed(0), + }) +} + +// NewServerWithDelay returns a mockrouting Server with a delay! +func NewServerWithDelay(conf DelayConfig) Server { + return &s{ + providers: make(map[string]map[peer.ID]providerRecord), + delayConf: conf, + } +} + +// DelayConfig can be used to configured the fake delays of a mock server. +// Use with NewServerWithDelay(). +type DelayConfig struct { + // ValueVisibility is the time it takes for a value to be visible in the network + // FIXME there _must_ be a better term for this + ValueVisibility delay.D + + // Query is the time it takes to receive a response from a routing query + Query delay.D +} diff --git a/vendor/github.com/ipfs/go-ipfs-routing/none/none_client.go b/vendor/github.com/ipfs/go-ipfs-routing/none/none_client.go new file mode 100644 index 00000000..45febc55 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-routing/none/none_client.go @@ -0,0 +1,57 @@ +// Package nilrouting implements a routing client that does nothing. +package nilrouting + +import ( + "context" + "errors" + + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + p2phost "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + record "github.com/libp2p/go-libp2p-record" + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +type nilclient struct { +} + +func (c *nilclient) PutValue(_ context.Context, _ string, _ []byte, _ ...ropts.Option) error { + return nil +} + +func (c *nilclient) GetValue(_ context.Context, _ string, _ ...ropts.Option) ([]byte, error) { + return nil, errors.New("tried GetValue from nil routing") +} + +func (c *nilclient) SearchValue(_ context.Context, _ string, _ ...ropts.Option) (<-chan []byte, error) { + return nil, errors.New("tried SearchValue from nil routing") +} + +func (c *nilclient) FindPeer(_ context.Context, _ peer.ID) (pstore.PeerInfo, error) { + return pstore.PeerInfo{}, nil +} + +func (c *nilclient) FindProvidersAsync(_ context.Context, _ cid.Cid, _ int) <-chan pstore.PeerInfo { + out := make(chan pstore.PeerInfo) + defer close(out) + return out +} + +func (c *nilclient) Provide(_ context.Context, _ cid.Cid, _ bool) error { + return nil +} + +func (c *nilclient) Bootstrap(_ context.Context) error { + return nil +} + +// ConstructNilRouting creates an IpfsRouting client which does nothing. +func ConstructNilRouting(_ context.Context, _ p2phost.Host, _ ds.Batching, _ record.Validator) (routing.IpfsRouting, error) { + return &nilclient{}, nil +} + +// ensure nilclient satisfies interface +var _ routing.IpfsRouting = &nilclient{} diff --git a/vendor/github.com/ipfs/go-ipfs-routing/offline/offline.go b/vendor/github.com/ipfs/go-ipfs-routing/offline/offline.go new file mode 100644 index 00000000..1627490c --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-routing/offline/offline.go @@ -0,0 +1,128 @@ +// Package offline implements IpfsRouting with a client which +// is only able to perform offline operations. +package offline + +import ( + "bytes" + "context" + "errors" + "time" + + proto "github.com/gogo/protobuf/proto" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + dshelp "github.com/ipfs/go-ipfs-ds-help" + "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + record "github.com/libp2p/go-libp2p-record" + pb "github.com/libp2p/go-libp2p-record/pb" + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +// ErrOffline is returned when trying to perform operations that +// require connectivity. +var ErrOffline = errors.New("routing system in offline mode") + +// NewOfflineRouter returns an IpfsRouting implementation which only performs +// offline operations. It allows to Put and Get signed dht +// records to and from the local datastore. +func NewOfflineRouter(dstore ds.Datastore, validator record.Validator) routing.IpfsRouting { + return &offlineRouting{ + datastore: dstore, + validator: validator, + } +} + +// offlineRouting implements the IpfsRouting interface, +// but only provides the capability to Put and Get signed dht +// records to and from the local datastore. +type offlineRouting struct { + datastore ds.Datastore + validator record.Validator +} + +func (c *offlineRouting) PutValue(ctx context.Context, key string, val []byte, _ ...ropts.Option) error { + if err := c.validator.Validate(key, val); err != nil { + return err + } + if old, err := c.GetValue(ctx, key); err == nil { + // be idempotent to be nice. + if bytes.Equal(old, val) { + return nil + } + // check to see if the older record is better + i, err := c.validator.Select(key, [][]byte{val, old}) + if err != nil { + // this shouldn't happen for validated records. + return err + } + if i != 0 { + return errors.New("can't replace a newer record with an older one") + } + } + rec := record.MakePutRecord(key, val) + data, err := proto.Marshal(rec) + if err != nil { + return err + } + + return c.datastore.Put(dshelp.NewKeyFromBinary([]byte(key)), data) +} + +func (c *offlineRouting) GetValue(ctx context.Context, key string, _ ...ropts.Option) ([]byte, error) { + buf, err := c.datastore.Get(dshelp.NewKeyFromBinary([]byte(key))) + if err != nil { + return nil, err + } + + rec := new(pb.Record) + err = proto.Unmarshal(buf, rec) + if err != nil { + return nil, err + } + val := rec.GetValue() + + err = c.validator.Validate(key, val) + if err != nil { + return nil, err + } + return val, nil +} + +func (c *offlineRouting) SearchValue(ctx context.Context, key string, _ ...ropts.Option) (<-chan []byte, error) { + out := make(chan []byte, 1) + go func() { + defer close(out) + v, err := c.GetValue(ctx, key) + if err == nil { + out <- v + } + }() + return out, nil +} + +func (c *offlineRouting) FindPeer(ctx context.Context, pid peer.ID) (pstore.PeerInfo, error) { + return pstore.PeerInfo{}, ErrOffline +} + +func (c *offlineRouting) FindProvidersAsync(ctx context.Context, k cid.Cid, max int) <-chan pstore.PeerInfo { + out := make(chan pstore.PeerInfo) + close(out) + return out +} + +func (c *offlineRouting) Provide(_ context.Context, k cid.Cid, _ bool) error { + return ErrOffline +} + +func (c *offlineRouting) Ping(ctx context.Context, p peer.ID) (time.Duration, error) { + return 0, ErrOffline +} + +func (c *offlineRouting) Bootstrap(context.Context) error { + return nil +} + +// ensure offlineRouting matches the IpfsRouting interface +var _ routing.IpfsRouting = &offlineRouting{} diff --git a/vendor/github.com/ipfs/go-ipfs-util/.gitignore b/vendor/github.com/ipfs/go-ipfs-util/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/ipfs/go-ipfs-util/.travis.yml b/vendor/github.com/ipfs/go-ipfs-util/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipfs-util/LICENSE b/vendor/github.com/ipfs/go-ipfs-util/LICENSE new file mode 100644 index 00000000..9ce97444 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipfs-util/README.md b/vendor/github.com/ipfs/go-ipfs-util/README.md new file mode 100644 index 00000000..33bff12c --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/README.md @@ -0,0 +1,45 @@ +# go-ipfs-util + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![](https://img.shields.io/badge/discussion_repo-go_to_issues-brightgreen.svg?style=flat-square)](https://github.com/ipfs/NAME/issues) + +> Common utilities used by go-ipfs and other related go packages + +## Install + +This is a Go module which can be installed with `go get github.com/ipfs/go-ipfs-util`. `go-ipfs-util` is however packaged with Gx, so it is recommended to use Gx to install it (see Usage section). + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). +In order to use it in your own project do: + +``` +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/ipfs/go-ipfs-util +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-ipfs-util/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/ipfs/go-ipfs-util/file.go b/vendor/github.com/ipfs/go-ipfs-util/file.go new file mode 100644 index 00000000..e6e30df4 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/file.go @@ -0,0 +1,12 @@ +package util + +import "os" + +// FileExists check if the file with the given path exits. +func FileExists(filename string) bool { + fi, err := os.Lstat(filename) + if fi != nil || (err != nil && !os.IsNotExist(err)) { + return true + } + return false +} diff --git a/vendor/github.com/ipfs/go-ipfs-util/go.mod b/vendor/github.com/ipfs/go-ipfs-util/go.mod new file mode 100644 index 00000000..112c925b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/go.mod @@ -0,0 +1,6 @@ +module github.com/ipfs/go-ipfs-util + +require ( + github.com/mr-tron/base58 v1.1.0 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipfs-util/go.sum b/vendor/github.com/ipfs/go-ipfs-util/go.sum new file mode 100644 index 00000000..25c9723e --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/go.sum @@ -0,0 +1,16 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-ipfs-util/package.json b/vendor/github.com/ipfs/go-ipfs-util/package.json new file mode 100644 index 00000000..3c3ed116 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/package.json @@ -0,0 +1,28 @@ +{ + "author": "whyrusleeping", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipfs-util" + }, + "gxDependencies": [ + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "mr-tron", + "hash": "QmWFAMPqsEyUX7gDUsRVmMWz59FxSpJ1b2v6bJ1yYzo7jY", + "name": "go-base58-fast", + "version": "0.1.1" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-ipfs-util", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.2.9" +} + diff --git a/vendor/github.com/ipfs/go-ipfs-util/time.go b/vendor/github.com/ipfs/go-ipfs-util/time.go new file mode 100644 index 00000000..37d720fb --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/time.go @@ -0,0 +1,22 @@ +package util + +import "time" + +// TimeFormatIpfs is the format ipfs uses to represent time in string form. +var TimeFormatIpfs = time.RFC3339Nano + +// ParseRFC3339 parses an RFC3339Nano-formatted time stamp and +// returns the UTC time. +func ParseRFC3339(s string) (time.Time, error) { + t, err := time.Parse(TimeFormatIpfs, s) + if err != nil { + return time.Time{}, err + } + return t.UTC(), nil +} + +// FormatRFC3339 returns the string representation of the +// UTC value of the given time in RFC3339Nano format. +func FormatRFC3339(t time.Time) string { + return t.UTC().Format(TimeFormatIpfs) +} diff --git a/vendor/github.com/ipfs/go-ipfs-util/util.go b/vendor/github.com/ipfs/go-ipfs-util/util.go new file mode 100644 index 00000000..8ebe3c70 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs-util/util.go @@ -0,0 +1,158 @@ +// Package util implements various utility functions used within ipfs +// that do not currently have a better place to live. +package util + +import ( + "errors" + "io" + "math/rand" + "os" + "path/filepath" + "runtime/debug" + "strings" + "time" + + b58 "github.com/mr-tron/base58/base58" + mh "github.com/multiformats/go-multihash" +) + +// DefaultIpfsHash is the current default hash function used by IPFS. +const DefaultIpfsHash = mh.SHA2_256 + +// Debug is a global flag for debugging. +var Debug bool + +// ErrNotImplemented signifies a function has not been implemented yet. +var ErrNotImplemented = errors.New("Error: not implemented yet.") + +// ErrTimeout implies that a timeout has been triggered +var ErrTimeout = errors.New("Error: Call timed out.") + +// ErrSearchIncomplete implies that a search type operation didnt +// find the expected node, but did find 'a' node. +var ErrSearchIncomplete = errors.New("Error: Search Incomplete.") + +// ErrCast is returned when a cast fails AND the program should not panic. +func ErrCast() error { + debug.PrintStack() + return errCast +} + +var errCast = errors.New("cast error") + +// ExpandPathnames takes a set of paths and turns them into absolute paths +func ExpandPathnames(paths []string) ([]string, error) { + var out []string + for _, p := range paths { + abspath, err := filepath.Abs(p) + if err != nil { + return nil, err + } + out = append(out, abspath) + } + return out, nil +} + +type randGen struct { + rand.Rand +} + +// NewTimeSeededRand returns a random bytes reader +// which has been initialized with the current time. +func NewTimeSeededRand() io.Reader { + src := rand.NewSource(time.Now().UnixNano()) + return &randGen{ + Rand: *rand.New(src), + } +} + +// NewSeededRand returns a random bytes reader +// initialized with the given seed. +func NewSeededRand(seed int64) io.Reader { + src := rand.NewSource(seed) + return &randGen{ + Rand: *rand.New(src), + } +} + +func (r *randGen) Read(p []byte) (n int, err error) { + for i := 0; i < len(p); i++ { + p[i] = byte(r.Rand.Intn(255)) + } + return len(p), nil +} + +// GetenvBool is the way to check an env var as a boolean +func GetenvBool(name string) bool { + v := strings.ToLower(os.Getenv(name)) + return v == "true" || v == "t" || v == "1" +} + +// MultiErr is a util to return multiple errors +type MultiErr []error + +func (m MultiErr) Error() string { + if len(m) == 0 { + return "no errors" + } + + s := "Multiple errors: " + for i, e := range m { + if i != 0 { + s += ", " + } + s += e.Error() + } + return s +} + +// Partition splits a subject 3 parts: prefix, separator, suffix. +// The first occurrence of the separator will be matched. +// ie. Partition("Ready, steady, go!", ", ") -> ["Ready", ", ", "steady, go!"] +func Partition(subject string, sep string) (string, string, string) { + if i := strings.Index(subject, sep); i != -1 { + return subject[:i], subject[i : i+len(sep)], subject[i+len(sep):] + } + return subject, "", "" +} + +// RPartition splits a subject 3 parts: prefix, separator, suffix. +// The last occurrence of the separator will be matched. +// ie. RPartition("Ready, steady, go!", ", ") -> ["Ready, steady", ", ", "go!"] +func RPartition(subject string, sep string) (string, string, string) { + if i := strings.LastIndex(subject, sep); i != -1 { + return subject[:i], subject[i : i+len(sep)], subject[i+len(sep):] + } + return subject, "", "" +} + +// Hash is the global IPFS hash function. uses multihash SHA2_256, 256 bits +func Hash(data []byte) mh.Multihash { + h, err := mh.Sum(data, DefaultIpfsHash, -1) + if err != nil { + // this error can be safely ignored (panic) because multihash only fails + // from the selection of hash function. If the fn + length are valid, it + // won't error. + panic("multihash failed to hash using SHA2_256.") + } + return h +} + +// IsValidHash checks whether a given hash is valid (b58 decodable, len > 0) +func IsValidHash(s string) bool { + out, err := b58.Decode(s) + if err != nil { + return false + } + _, err = mh.Cast(out) + return err == nil +} + +// XOR takes two byte slices, XORs them together, returns the resulting slice. +func XOR(a, b []byte) []byte { + c := make([]byte, len(a)) + for i := 0; i < len(a); i++ { + c[i] = a[i] ^ b[i] + } + return c +} diff --git a/vendor/github.com/ipfs/go-ipfs/.circleci/config.yml b/vendor/github.com/ipfs/go-ipfs/.circleci/config.yml deleted file mode 100644 index 12066359..00000000 --- a/vendor/github.com/ipfs/go-ipfs/.circleci/config.yml +++ /dev/null @@ -1,113 +0,0 @@ -version: 2 - -defaults: &defaults - working_directory: ~/ipfs/go-ipfs - shell: /bin/bash --login - environment: - TEST_NO_FUSE: 1 - GOPATH: $HOME/.go_workspace - CIRCLE_TEST_REPORTS: /tmp/circleci-test-results - CIRCLE: 1 - SERVICE: circle-ci - TEST_NO_DOCKER: 1 - CIRCLE_ARTIFACTS: /tmp/circleci-artifacts - TEST_VERBOSE: 1 - TRAVIS: 1 - IMPORT_PATH: github.com/ipfs/go-ipfs - - docker: - - image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37 - command: /sbin/init - -jobs: - gotest: - <<: *defaults - steps: - - checkout - - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - - run: 'sudo docker info >/dev/null 2>&1 || sudo service docker start; ' - - run: sudo rm -rf /usr/local/go - - run: if [ ! -e go1.11.linux-amd64.tar.gz ]; then curl -o go1.11.linux-amd64.tar.gz https://storage.googleapis.com/golang/go1.11.linux-amd64.tar.gz; fi - - run: sudo tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz - - - restore_cache: - keys: - - v1-dep-{{ .Branch }}- - - v1-dep-master- - - - run: sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6=0 net.ipv6.conf.all.disable_ipv6=0 - - run: rm -rf "$HOME/.go_workspace/src/$IMPORT_PATH" - - run: mkdir -p "$HOME/.go_workspace/src/$IMPORT_PATH" - - run: cp -aT . "$HOME/.go_workspace/src/$IMPORT_PATH" - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && make deps - - - save_cache: - key: v1-dep-{{ .Branch }}-{{ epoch }} - paths: - - ~/.go_workspace - - ~/go1.11.linux-amd64.tar.gz - - ~/.go_workspace/src/gx/ipfs - - ./node_modules - - - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && curl -s https://codecov.io/bash > codecov - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && make -j 1 test/unit/gotest.junit.xml - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && bash codecov -cF unittests -X search -f coverage/unit_tests.coverprofile - - run: mv "$HOME/.go_workspace/src/${IMPORT_PATH}/test/unit/gotest.junit.xml" /tmp/circleci-test-results - - store_test_results: - path: /tmp/circleci-test-results - # Save artifacts - - store_artifacts: - path: /tmp/circleci-artifacts - - store_artifacts: - path: /tmp/circleci-test-results - sharness: - <<: *defaults - steps: - - checkout - - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - - run: 'sudo docker info >/dev/null 2>&1 || sudo service docker start; ' - - run: sudo rm -rf /usr/local/go - - run: if [ ! -e go1.11.linux-amd64.tar.gz ]; then curl -o go1.11.linux-amd64.tar.gz https://storage.googleapis.com/golang/go1.11.linux-amd64.tar.gz; fi - - run: sudo tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz - - - restore_cache: - keys: - - v1-dep-{{ .Branch }}- - - v1-dep-master- - - - run: sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6=0 net.ipv6.conf.all.disable_ipv6=0 - - run: rm -rf "$HOME/.go_workspace/src/$IMPORT_PATH" - - run: mkdir -p "$HOME/.go_workspace/src/$IMPORT_PATH" - - run: cp -aT . "$HOME/.go_workspace/src/$IMPORT_PATH" - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && make deps - - - save_cache: - key: v1-dep-{{ .Branch }}-{{ epoch }} - paths: - - ~/.go_workspace - - ~/go1.11.linux-amd64.tar.gz - - ~/.go_workspace/src/gx/ipfs - - ./node_modules - - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && curl -s https://codecov.io/bash > codecov - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && make -j 10 coverage/sharness_tests.coverprofile test/sharness/test-results/sharness.xml TEST_GENERATE_JUNIT=1 CONTINUE_ON_S_FAILURE=1 - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && bash codecov -cF sharness -X search -f coverage/sharness_tests.coverprofile - - run: mv "$HOME/.go_workspace/src/${IMPORT_PATH}/test/sharness/test-results/sharness.xml" /tmp/circleci-test-results - - # make sure we fail if there are test failures - - run: cd "$HOME/.go_workspace/src/$IMPORT_PATH" && ls test/sharness/test-results/t*-*.sh.*.counts | test/sharness/lib/sharness/aggregate-results.sh | grep 'failed\s*0' - - store_test_results: - path: /tmp/circleci-test-results - # Save artifacts - - store_artifacts: - path: /tmp/circleci-artifacts - - store_artifacts: - path: /tmp/circleci-test-results - -workflows: - version: 2 - test: - jobs: - - gotest - - sharness diff --git a/vendor/github.com/ipfs/go-ipfs/.gitattributes b/vendor/github.com/ipfs/go-ipfs/.gitattributes index a6bcaf8c..d6b38c11 100644 --- a/vendor/github.com/ipfs/go-ipfs/.gitattributes +++ b/vendor/github.com/ipfs/go-ipfs/.gitattributes @@ -1,2 +1,15 @@ +# Default to text +* text eol=lf + +# True text +*.md text eol=auto +LICENSE text eol=auto + +# Known binary types +*.png binary +*.tar binary +*.gz binary + +# Binary assets assets/init-doc/* binary core/coreunix/test_data/** binary diff --git a/vendor/github.com/ipfs/go-ipfs/.gitignore b/vendor/github.com/ipfs/go-ipfs/.gitignore index 1e21b5cc..9ead6675 100644 --- a/vendor/github.com/ipfs/go-ipfs/.gitignore +++ b/vendor/github.com/ipfs/go-ipfs/.gitignore @@ -17,6 +17,8 @@ gx-workspace-update.json bin/gx bin/gx* bin/tmp +bin/gocovmerge +bin/cover vendor diff --git a/vendor/github.com/ipfs/go-ipfs/.gx/lastpubver b/vendor/github.com/ipfs/go-ipfs/.gx/lastpubver deleted file mode 100644 index 53d55723..00000000 --- a/vendor/github.com/ipfs/go-ipfs/.gx/lastpubver +++ /dev/null @@ -1 +0,0 @@ -0.4.19: QmPDEJTb3WBHmvubsLXCaqRPC8dRgvFz7A4p96dxZbJuWL diff --git a/vendor/github.com/ipfs/go-ipfs/.travis.yml b/vendor/github.com/ipfs/go-ipfs/.travis.yml deleted file mode 100644 index d6d4b360..00000000 --- a/vendor/github.com/ipfs/go-ipfs/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -# dist: trusty # KVM Setup - -notifications: - email: false - -os: - - linux - - osx - -language: go - -go: - - 1.11.x - -env: - - TEST_NO_FUSE=1 TEST_VERBOSE=1 TEST_SUITE=test_go_expensive - - TEST_NO_FUSE=1 TEST_VERBOSE=1 TEST_SUITE=test_sharness_expensive - -install: - - make install - -script: - - make $TEST_SUITE - -# For docker containers - -sudo: required - -services: - - docker diff --git a/vendor/github.com/ipfs/go-ipfs/CHANGELOG.md b/vendor/github.com/ipfs/go-ipfs/CHANGELOG.md index d1489a83..f958515c 100644 --- a/vendor/github.com/ipfs/go-ipfs/CHANGELOG.md +++ b/vendor/github.com/ipfs/go-ipfs/CHANGELOG.md @@ -1,6 +1,489 @@ # go-ipfs changelog -## 0.4.19 2018-03-01 +## 0.4.20 2019-04-16 + +We're happy to release go-ipfs 0.4.20. This release includes some critical +performance and stability fixes so all users should upgrade ASAP. + +This is also the first release to use go modules instead of GX. While GX has +been a great way to dogfood an IPFS-based package manager, building and +maintaining a custom package manager is a _lot_ of work and we haven't been able +to dedicate enough time to bring the user experience of gx to an acceptable +level. You can read [#5850](https://github.com/ipfs/go-ipfs/issues/5850) for +some discussion on this matter. + +### Docker + +As of this release, it's now much easier to run arbitrary IPFS commands within +the docker container: + +```bash +> docker run --name my-ipfs ipfs/go-ipfs:v0.4.20 config profile apply server # apply the server profile +> docker start my-ipfs # start the daemon +``` + +This release also [reverts](https://github.com/ipfs/go-ipfs/pull/6040) a change that +caused some significant trouble in 0.4.19. If you've been running into Docker +permission errors in 0.4.19, please upgrade. + +### WebUI + +This release contains a major +[WebUI](https://github.com/ipfs-shipyard/ipfs-webui) release with some +significant improvements to the file browser and new opt-in, privately hosted, +anonymous usage analytics. + +### Commands + +As usual, we've made several changes and improvements to our commands. The most +notable changes are listed in this section. + +#### New: `ipfs version deps` + +This release includes a new command, `ipfs version deps`, to list all +dependencies (with versions) of the current go-ipfs build. This should make it +easy to tell exactly how go-ipfs was built when tracking down issues. + +#### New: `ipfs add URL` + +The `ipfs add` command has gained support for URLs. This means you can: + +1. Add files with `ipfs add URL` instead of downloading the file first. +2. Replace all uses of the `ipfs urlstore` command with a call to `ipfs add + --nocopy`. The `ipfs urlstore` command will be deprecated in a future + release. + + +#### Changed: `ipfs swarm connect` + +The `ipfs swarm connect` command has a few new features: + +It now marks the newly created connection as "important". This should ensure +that the connection manager won't come along later and close the connection if +it doesn't think it's being used. + +It can now resolve `/dnsaddr` addresses that _don't_ end in a peer ID. For +example, you can now run `ipfs swarm connect /dnsaddr/bootstrap.libp2p.io` to +connect to one of the bootstrap peers at random. NOTE: This could connect you to +an _arbitrary_ peer as DNS is not secure (by default). Please do not rely on +this except for testing or unless you know what you're doing. + +Finally, `ipfs swarm connect` now returns _all_ errors on failure. This should +make it much easier to debug connectivity issues. For example, one might see an +error like: + +``` +Error: connect QmYou failure: dial attempt failed: 6 errors occurred: + * --> (/ip4/127.0.0.1/tcp/4001) dial attempt failed: dial tcp4 127.0.0.1:4001: connect: connection refused + * --> (/ip6/::1/tcp/4001) dial attempt failed: dial tcp6 [::1]:4001: connect: connection refused + * --> (/ip6/2604::1/tcp/4001) dial attempt failed: dial tcp6 [2604::1]:4001: connect: network is unreachable + * --> (/ip6/2602::1/tcp/4001) dial attempt failed: dial tcp6 [2602::1]:4001: connect: network is unreachable + * --> (/ip4/150.0.1.2/tcp/4001) dial attempt failed: dial tcp4 0.0.0.0:4001->150.0.1.2:4001: i/o timeout + * --> (/ip4/200.0.1.2/tcp/4001) dial attempt failed: dial tcp4 0.0.0.0:4001->200.0.1.2:4001: i/o timeout +``` + +#### Changed: `ipfs bitswap stat` + +`ipfs bitswap stat` no longer lists bitswap partners unless the `-v` flag is +passed. That is, it will now return: + +``` +> ipfs bitswap stat +bitswap status + provides buffer: 0 / 256 + blocks received: 0 + blocks sent: 79 + data received: 0 + data sent: 672706 + dup blocks received: 0 + dup data received: 0 B + wantlist [0 keys] + partners [197] +``` + +Instead of: + +``` +> ipfs bitswap stat -v +bitswap status + provides buffer: 0 / 256 + blocks received: 0 + blocks sent: 79 + data received: 0 + data sent: 672706 + dup blocks received: 0 + dup data received: 0 B + wantlist [0 keys] + partners [203] + QmNQTTTRCDpCYCiiu6TYWCqEa7ShAUo9jrZJvWngfSu1mL + QmNWaxbqERvdcgoWpqAhDMrbK2gKi3SMGk3LUEvfcqZcf4 + QmNgSVpgZVEd41pBX6DyCaHRof8UmUJLqQ3XH2qNL9xLvN + ... omitting 200 lines ... +``` + +#### Changed: `ipfs repo stat --human` + +The `--human` flag in the `ipfs repo stat` command now intelligently picks a +size unit instead of always using MiB. + +#### Changed: `ipfs resolve` (`ipfs dns`, `ipfs name resolve`) + +All of the resolve commands now: + +1. Resolve _recursively_ (up to 32 steps) by default to better match user + expectations (these commands used to be non-recursive by default). To turn + recursion off, pass `-r false`. +2. When resolving non-recursively, these commands no longer fail when partially + resolving a name. Instead, they simply return the intermediate result. + +#### Changed: `ipfs files flush` + +The `ipfs files flush` command now returns the CID of the flushed file. + +### Performance And Reliability + +This release has the usual collection of performance and reliability +improvements. + +#### Badger Memory Usage + +Those of you using the badger datastore should notice reduced memory usage in +this release due to some upstream changes. Badger still uses significantly more +memory than the default datastore configuration but this will hopefully continue +to improve. + +#### Bitswap + +We fixed some critical CPU utilization regressions in bitswap for this release. +If you've been noticing CPU _regressions_ in go-ipfs 0.4.19, especially when +running a public gateway, upgrading to 0.4.20 will likely fix them. + +#### Relays + +After AutoRelay was introduced in go-ipfs 0.4.19, the number of peers connecting +through relays skyrocketed to over 120K concurrent peers. This highlighted some +performance issues that we've now fixed in this release. Specifically: + +* We've significantly reduced the amount of memory allocated per-peer. +* We've fixed a bug where relays might, in rare cases, try to actively dial a + peer to relay traffic. By default, relays only forward traffic between peers + already connected to the relay. +* We've fixed quite a number of performance issues that only show up when + rapidly forming new connections. This will actually help _all_ nodes but will + especially help relays. + +If you've enabled relay _hop_ (`Swarm.EnableRelayHop`) in go-ipfs 0.4.19 and it +hasn't burned down your machine yet, this release should improve things +significantly. However, relays are still under heavy load so running an open +relay will continue to be resource intensive. + +We're continuing to investigate this issue and have a few more patches on the +way that, unfortunately, won't make it into this release. + +#### Panics + +We've fixed two notable panics in this release: + +* We've fixed a frequent panic in the DHT. +* We've fixed an occasional panic in the experimental QUIC transport. + +### Content Routing + +IPFS announces and finds content by sending and retrieving content routing +("provider") records to and from the DHT. Unfortunately, sending out these +records can be quite resource intensive. + +This release has two changes to alleviate this: a reduced number of initial +provide workers and a persistent provider queue. + +We've reduced the number of parallel initial provide workers (workers that send +out provider records when content is initially added to go-ipfs) from 512 to 6. +Each provide request (currently, due to some issues in our DHT) tries to +establish hundreds of connections, significantly impacting the performance of +go-ipfs and [crashing some +routers](https://github.com/ipfs/go-ipfs/issues/3320). + +We've introduced a new persistent provider queue for files added via `ipfs add` +and `ipfs pin add`. When new directory trees are added to go-ipfs, go-ipfs will +add the root/final CID to this queue. Then, in the background, go-ipfs will walk +the queue, sequentially sending out provider records for each CID. + +This ensures that root CIDs are sent out as soon as possible and are sent even +when files are added when the go-ipfs daemon isn't running. + +By example, let's add a directory tree to go-ipfs: + +```bash +> # We're going to do this in "online" mode first so let's start the daemon. +> ipfs daemon & +... +Daemon is ready +> # Now, we're going to create a directory to add. +> mkdir foo +> for i in {0..1000}; do echo do echo $i > foo/$i; done +> # finally, we're going to add it. +> ipfs add -r foo +added QmUQcSjQx2bg4cSe2rUZyQi6F8QtJFJb74fWL7D784UWf9 foo/0 +... +added QmQac2chFyJ24yfG2Dfuqg1P5gipLcgUDuiuYkQ5ExwGap foo/990 +added QmQWwz9haeQ5T2QmQeXzqspKdowzYELShBCLzLJjVa2DuV foo/991 +added QmQ5D4MtHUN4LTS4n7mgyHyaUukieMMyCfvnzXQAAbgTJm foo/992 +added QmZq4n4KRNq3k1ovzxJ4qdQXZSrarfJjnoLYPR3ztHd7EY foo/993 +added QmdtrsuVf8Nf1s1MaSjLAd54iNqrn1KN9VoFNgKGnLgjbt foo/994 +added QmbstvU9mnW2hsE94WFmw5WbrXdLTu2Sf9kWWSozrSDscL foo/995 +added QmXFd7f35gAnmisjfFmfYKkjA3F3TSpvUYB9SXr6tLsdg8 foo/996 +added QmV5BxS1YQ9V227Np2Cq124cRrFDAyBXNMqHHa6kpJ9cr6 foo/997 +added QmcXsccUtwKeQ1SuYC3YgyFUeYmAR9CXwGGnT3LPeCg5Tx foo/998 +added Qmc4mcQcpaNzyDQxQj5SyxwFg9ZYz5XBEeEZAuH4cQirj9 foo/999 +added QmXpXzUhcS9edmFBuVafV5wFXKjfXkCQcjAUZsTs7qFf3G foo +``` + +In 0.4.19, we would have sent out provider records for files `foo/{0..1000}` +_before_ sending out a provider record for `foo`. If you were ask a friend to +download /ipfs/QmUQcSjQx2bg4cSe2rUZyQi6F8QtJFJb74fWL7D784UWf9, they would +(baring other issues) be able to find it pretty quickly as this is the first CID +you'll have announced to the network. However, if you ask your friend to +download /ipfs/QmXpXzUhcS9edmFBuVafV5wFXKjfXkCQcjAUZsTs7qFf3G/0, they'll have to +wait for you to finish telling the network about every file in `foo` first. + +In 0.4.20, we _immediately_ tell the network about +`QmXpXzUhcS9edmFBuVafV5wFXKjfXkCQcjAUZsTs7qFf3G` (the `foo` directory) as soon +as we finish adding the directory to go-ipfs _without_ waiting to finish +announcing `foo/{0..1000}`. This is especially important in this release +because we've drastically reduced the number of provide workers. + +The second benefit is that this queue is persistent. That means go-ipfs won't +forget to send out this record, even if it was offline when the content was +initially added. NOTE: go-ipfs _does_ continuously _re_-send provider records in +the background twice a day, it just might be a while before it gets around to +sending one out any specific one. + +### Bitswap + +Bitswap now periodically re-sends its wantlist to connected peers. This should +help work around some race conditions we've seen in bitswap where one node wants +a block but the other doesn't know for some reason. + +You can track this issue here: https://github.com/ipfs/go-ipfs/issues/5183. + +### Improved NAT Traversal + +While NATs are still p2p enemy #1, this release includes slightly improved +support for traversing them. + +Specifically, this release now: + +1. Better detects the "gateway" NAT, even when multiple devices on the network + _claim_ to be NATs. +2. Better guesses the external IP address when port mapping, even when the + gateway lies. + +### Reduced AutoRelay Boot Time + +The experimental AutoRelay feature can now detect NATs _much_ faster as we've +reduced initial NAT detection delay to 15 seconds. There's still room for +improvement but this should make nodes that have enabled this feature dialable +earlier on start. + +### Changelogs + +- github.com/ipfs/go-ipfs: + - gitattributes: avoid normalizing known binary files ([ipfs/go-ipfs#6209](https://github.com/ipfs/go-ipfs/pull/6209)) + - gitattributes: default to LF ([ipfs/go-ipfs#6198](https://github.com/ipfs/go-ipfs/pull/6198)) + - Fix level db panic ([ipfs/go-ipfs#6186](https://github.com/ipfs/go-ipfs/pull/6186)) + - Dockerfile: Remove 2 year old deprecation warning ([ipfs/go-ipfs#6188](https://github.com/ipfs/go-ipfs/pull/6188)) + - align output for the command ipfs object stat ([ipfs/go-ipfs#6189](https://github.com/ipfs/go-ipfs/pull/6189)) + - provider queue: don't repeatedly retry the same item if we fail ([ipfs/go-ipfs#6187](https://github.com/ipfs/go-ipfs/pull/6187)) + - test: remove version/deps from ro commands test ([ipfs/go-ipfs#6185](https://github.com/ipfs/go-ipfs/pull/6185)) + - feat: add version deps command [modversion] ([ipfs/go-ipfs#6115](https://github.com/ipfs/go-ipfs/pull/6115)) + - readme: update for go modules ([ipfs/go-ipfs#6180](https://github.com/ipfs/go-ipfs/pull/6180)) + - Switch to Go 1.12 ([ipfs/go-ipfs#6144](https://github.com/ipfs/go-ipfs/pull/6144)) + - ci: avoid interleaving output from different sharness tests ([ipfs/go-ipfs#6175](https://github.com/ipfs/go-ipfs/pull/6175)) + - fix two bugs where the repo may not properly be closed ([ipfs/go-ipfs#6176](https://github.com/ipfs/go-ipfs/pull/6176)) + - fix error check in swarm connect ([ipfs/go-ipfs#6174](https://github.com/ipfs/go-ipfs/pull/6174)) + - feat(coreapi): tag all explicit connect requests in the connection manager ([ipfs/go-ipfs#6171](https://github.com/ipfs/go-ipfs/pull/6171)) + - chore: remove CODEOWNERS ([ipfs/go-ipfs#6172](https://github.com/ipfs/go-ipfs/pull/6172)) + - feat: update to IPFS Web UI 2.4.4 ([ipfs/go-ipfs#6169](https://github.com/ipfs/go-ipfs/pull/6169)) + - fix add error handling ([ipfs/go-ipfs#6156](https://github.com/ipfs/go-ipfs/pull/6156)) + - chore: remove waffle ([ipfs/go-ipfs#6157](https://github.com/ipfs/go-ipfs/pull/6157)) + - chore: fix a bunch of issues caught by golangci-lint ([ipfs/go-ipfs#6140](https://github.com/ipfs/go-ipfs/pull/6140)) + - docs/experimental-features.md: link to ipfs-ds-convert ([ipfs/go-ipfs#6154](https://github.com/ipfs/go-ipfs/pull/6154)) + - interrupt: fix send on closed ([ipfs/go-ipfs#6147](https://github.com/ipfs/go-ipfs/pull/6147)) + - docs: document Gateway.Writable not Gateway.Writeable ([ipfs/go-ipfs#6151](https://github.com/ipfs/go-ipfs/pull/6151)) + - Fuse fixes ([ipfs/go-ipfs#6135](https://github.com/ipfs/go-ipfs/pull/6135)) + - Remove duplicate blockstore from the package list ([ipfs/go-ipfs#6138](https://github.com/ipfs/go-ipfs/pull/6138)) + - Query for provider head/tail ([ipfs/go-ipfs#6125](https://github.com/ipfs/go-ipfs/pull/6125)) + - Remove dead link from ISSUE_TEMPLATE.md ([ipfs/go-ipfs#6128](https://github.com/ipfs/go-ipfs/pull/6128)) + - coreapi: remove Unixfs.Wrap ([ipfs/go-ipfs#6123](https://github.com/ipfs/go-ipfs/pull/6123)) + - coreapi unixfs: change Wrap logic to make more sense ([ipfs/go-ipfs#6019](https://github.com/ipfs/go-ipfs/pull/6019)) + - deps: switch back to jbenet go-is-domain ([ipfs/go-ipfs#6119](https://github.com/ipfs/go-ipfs/pull/6119)) + - command repo stat: add human flag tests to t0080-repo.sh ([ipfs/go-ipfs#6116](https://github.com/ipfs/go-ipfs/pull/6116)) + - gc: fix a potential deadlock ([ipfs/go-ipfs#6112](https://github.com/ipfs/go-ipfs/pull/6112)) + - fix config options in osxfuse error messages ([ipfs/go-ipfs#6105](https://github.com/ipfs/go-ipfs/pull/6105)) + - Command repo stat: improve human flag behavior ([ipfs/go-ipfs#6106](https://github.com/ipfs/go-ipfs/pull/6106)) + - Provide root node immediately on add and pin add ([ipfs/go-ipfs#6068](https://github.com/ipfs/go-ipfs/pull/6068)) + - gomod: Update Dockerfile, remove Dockerfile.fast ([ipfs/go-ipfs#6100](https://github.com/ipfs/go-ipfs/pull/6100)) + - Return CID from 'ipfs files flush' ([ipfs/go-ipfs#6102](https://github.com/ipfs/go-ipfs/pull/6102)) + - resolve: fix recursion ([ipfs/go-ipfs#6087](https://github.com/ipfs/go-ipfs/pull/6087)) + - fix(swarm): add dnsaddr support in swarm connect ([ipfs/go-ipfs#5535](https://github.com/ipfs/go-ipfs/pull/5535)) + - make in-memory datastore thread-safe ([ipfs/go-ipfs#6085](https://github.com/ipfs/go-ipfs/pull/6085)) + - Update package table to remove broken jenkins links ([ipfs/go-ipfs#6084](https://github.com/ipfs/go-ipfs/pull/6084)) + - mk: fix maketarball to work with gomod ([ipfs/go-ipfs#6078](https://github.com/ipfs/go-ipfs/pull/6078)) + - fix ls command to use the new coreinterface types ([ipfs/go-ipfs#6051](https://github.com/ipfs/go-ipfs/pull/6051)) + - mk: remove install_unsupported, leave a note ([ipfs/go-ipfs#6063](https://github.com/ipfs/go-ipfs/pull/6063)) + - mk: change git-hash command to include information about modifications ([ipfs/go-ipfs#6060](https://github.com/ipfs/go-ipfs/pull/6060)) + - mk: fix make install by not setting GOBIN ([ipfs/go-ipfs#6059](https://github.com/ipfs/go-ipfs/pull/6059)) + - go: require Golang 1.11.4 ([ipfs/go-ipfs#6057](https://github.com/ipfs/go-ipfs/pull/6057)) + - yamux: increase yamux window size to 8MiB. ([ipfs/go-ipfs#6049](https://github.com/ipfs/go-ipfs/pull/6049)) + - Introduce go modules [yey] ([ipfs/go-ipfs#6038](https://github.com/ipfs/go-ipfs/pull/6038)) + - cleanup daemon online logic ([ipfs/go-ipfs#6050](https://github.com/ipfs/go-ipfs/pull/6050)) + - ci: test on 32bit os ([ipfs/go-ipfs#5429](https://github.com/ipfs/go-ipfs/pull/5429)) + - feat/cmds: hide peers info default in bitswap stat ([ipfs/go-ipfs#5820](https://github.com/ipfs/go-ipfs/pull/5820)) + - Improve CLI help pages ([ipfs/go-ipfs#6013](https://github.com/ipfs/go-ipfs/pull/6013)) + - Close #6044 ([ipfs/go-ipfs#6045](https://github.com/ipfs/go-ipfs/pull/6045)) + - commands(dht): return final error ([ipfs/go-ipfs#6034](https://github.com/ipfs/go-ipfs/pull/6034)) + - Revert "Really run as non-root user in docker container" ([ipfs/go-ipfs#6040](https://github.com/ipfs/go-ipfs/pull/6040)) +- github.com/ipfs/go-bitswap: + - feat(messagequeue): rebroadcast wantlist ([ipfs/go-bitswap#106](https://github.com/ipfs/go-bitswap/pull/106)) + - reduce provide workers to 6 ([ipfs/go-bitswap#93](https://github.com/ipfs/go-bitswap/pull/93)) + - Reduce memory allocation ([ipfs/go-bitswap#103](https://github.com/ipfs/go-bitswap/pull/103)) + - refactor(messagequeue): remove dead code ([ipfs/go-bitswap#98](https://github.com/ipfs/go-bitswap/pull/98)) + - fix: limit use of custom context type ([ipfs/go-bitswap#89](https://github.com/ipfs/go-bitswap/pull/89)) + - fix: remove non-error log message ([ipfs/go-bitswap#91](https://github.com/ipfs/go-bitswap/pull/91)) + - fix(messagequeue): Remove second run loop ([ipfs/go-bitswap#94](https://github.com/ipfs/go-bitswap/pull/94)) +- github.com/ipfs/go-blockservice: + - Revert "Remove verifcid as it is handled in go-cid" ([ipfs/go-blockservice#25](https://github.com/ipfs/go-blockservice/pull/25)) + - Remove verifcid as it is handled in go-cid ([ipfs/go-blockservice#23](https://github.com/ipfs/go-blockservice/pull/23)) +- github.com/ipfs/go-datastore: + - cleanup and optimize naive query filters ([ipfs/go-datastore#125](https://github.com/ipfs/go-datastore/pull/125)) + - Fix – sorted limited offset mount queries ([ipfs/go-datastore#124](https://github.com/ipfs/go-datastore/pull/124)) + - Fix function comments based on best practices from Effective Go ([ipfs/go-datastore#122](https://github.com/ipfs/go-datastore/pull/122)) + - remove ThreadSafeDatastore ([ipfs/go-datastore#120](https://github.com/ipfs/go-datastore/pull/120)) + - Splinter TTLDatastore interface into TTL + Datastore ([ipfs/go-datastore#118](https://github.com/ipfs/go-datastore/pull/118)) +- github.com/ipfs/go-ds-badger: + - tweak the default options ([ipfs/go-ds-badger#52](https://github.com/ipfs/go-ds-badger/pull/52)) + - remove thread-safe assertion ([ipfs/go-ds-badger#55](https://github.com/ipfs/go-ds-badger/pull/55)) + - make memory-safe against concurrent closure/operations ([ipfs/go-ds-badger#53](https://github.com/ipfs/go-ds-badger/pull/53)) + - make badger use our logging framework ([ipfs/go-ds-badger#50](https://github.com/ipfs/go-ds-badger/pull/50)) +- github.com/ipfs/go-ds-flatfs: + - remove thread-safe assertion ([ipfs/go-ds-flatfs#53](https://github.com/ipfs/go-ds-flatfs/pull/53)) +- github.com/ipfs/go-ds-leveldb: + - Fast reverse query ([ipfs/go-ds-leveldb#28](https://github.com/ipfs/go-ds-leveldb/pull/28)) + - remove thread-safe assertion ([ipfs/go-ds-leveldb#27](https://github.com/ipfs/go-ds-leveldb/pull/27)) +- github.com/ipfs/go-ipfs-cmdkit: + - Extract files package ([ipfs/go-ipfs-cmdkit#31](https://github.com/ipfs/go-ipfs-cmdkit/pull/31)) +- github.com/ipfs/go-ipfs-cmds: + - sync: add yet another sync error ([ipfs/go-ipfs-cmds#161](https://github.com/ipfs/go-ipfs-cmds/pull/161)) + - Removed broken link from readme ([ipfs/go-ipfs-cmds#159](https://github.com/ipfs/go-ipfs-cmds/pull/159)) + - Fix broken link in readme ([ipfs/go-ipfs-cmds#160](https://github.com/ipfs/go-ipfs-cmds/pull/160)) + - set WebFile fpath to URL base ([ipfs/go-ipfs-cmds#158](https://github.com/ipfs/go-ipfs-cmds/pull/158)) + - Handle stdin name in cli/parse ([ipfs/go-ipfs-cmds#157](https://github.com/ipfs/go-ipfs-cmds/pull/157)) + - support url paths as files.WebFile ([ipfs/go-ipfs-cmds#154](https://github.com/ipfs/go-ipfs-cmds/pull/154)) + - typed encoder: improve pointer reflection ([ipfs/go-ipfs-cmds#155](https://github.com/ipfs/go-ipfs-cmds/pull/155)) + - cli: don't sync output to NUL on Windows ([ipfs/go-ipfs-cmds#153](https://github.com/ipfs/go-ipfs-cmds/pull/153)) +- github.com/ipfs/go-ipfs-files: + - return url as AbsPath from WebFile to implement FileInfo ([ipfs/go-ipfs-files#13](https://github.com/ipfs/go-ipfs-files/pull/13)) + - fix the content disposition header ([ipfs/go-ipfs-files#14](https://github.com/ipfs/go-ipfs-files/pull/14)) + - go format ([ipfs/go-ipfs-files#15](https://github.com/ipfs/go-ipfs-files/pull/15)) + - simplify content type checking ([ipfs/go-ipfs-files#9](https://github.com/ipfs/go-ipfs-files/pull/9)) + - remove extra webfile test code ([ipfs/go-ipfs-files#12](https://github.com/ipfs/go-ipfs-files/pull/12)) +- github.com/ipfs/go-merkledag: + - add function to marshal raw nodes to json ([ipfs/go-merkledag#36](https://github.com/ipfs/go-merkledag/pull/36)) + - fix some performance regressions when reading protobuf nodes ([ipfs/go-merkledag#34](https://github.com/ipfs/go-merkledag/pull/34)) +- github.com/ipfs/go-metrics-interface: + - update the counter interface to match prometheus ([ipfs/go-metrics-interface#2](https://github.com/ipfs/go-metrics-interface/pull/2)) +- github.com/ipfs/go-mfs: + - Return node from FlushPath ([ipfs/go-mfs#72](https://github.com/ipfs/go-mfs/pull/72)) + - Wire up context to FlushPath ([ipfs/go-mfs#70](https://github.com/ipfs/go-mfs/pull/70)) +- github.com/ipfs/interface-go-ipfs-core: + - don't close the top-level addr ([ipfs/interface-go-ipfs-core#25](https://github.com/ipfs/interface-go-ipfs-core/pull/25)) + - fix a bunch of small test "bugs" ([ipfs/interface-go-ipfs-core#24](https://github.com/ipfs/interface-go-ipfs-core/pull/24)) + - remove Wrap ([ipfs/interface-go-ipfs-core#21](https://github.com/ipfs/interface-go-ipfs-core/pull/21)) + - Unixfs.Wrap Fixes ([ipfs/interface-go-ipfs-core#10](https://github.com/ipfs/interface-go-ipfs-core/pull/10)) + - tweak the Ls interface ([ipfs/interface-go-ipfs-core#14](https://github.com/ipfs/interface-go-ipfs-core/pull/14)) +- github.com/libp2p/go-buffer-pool: + - Enable tests ([libp2p/go-buffer-pool#6](https://github.com/libp2p/go-buffer-pool/pull/6)) +- github.com/libp2p/go-flow-metrics: + - Just repair spelling mistake ([libp2p/go-flow-metrics#3](https://github.com/libp2p/go-flow-metrics/pull/3)) +- github.com/libp2p/go-libp2p: + - Deprecate gx in readme & link to workspace repo ([libp2p/go-libp2p#591](https://github.com/libp2p/go-libp2p/pull/591)) + - Respect nodial option in routed host ([libp2p/go-libp2p#590](https://github.com/libp2p/go-libp2p/pull/590)) + - fix panic in observed address activation check ([libp2p/go-libp2p#586](https://github.com/libp2p/go-libp2p/pull/586)) + - Improve observed address handling ([libp2p/go-libp2p#585](https://github.com/libp2p/go-libp2p/pull/585)) + - identify: avoid parsing/printing multiaddrs ([libp2p/go-libp2p#583](https://github.com/libp2p/go-libp2p/pull/583)) + - move things outside of the lock in obsaddr ([libp2p/go-libp2p#582](https://github.com/libp2p/go-libp2p/pull/582)) + - identify: be more careful about the addresses we store ([libp2p/go-libp2p#577](https://github.com/libp2p/go-libp2p/pull/577)) + - relay: turn autorelay into a service and always filter out relay addresses ([libp2p/go-libp2p#578](https://github.com/libp2p/go-libp2p/pull/578)) + - chore: fail in the libp2p constructor if we fail to store the key ([libp2p/go-libp2p#576](https://github.com/libp2p/go-libp2p/pull/576)) + - Fix broken link in README.md ([libp2p/go-libp2p#580](https://github.com/libp2p/go-libp2p/pull/580)) + - Link to docs & discuss in readme ([libp2p/go-libp2p#571](https://github.com/libp2p/go-libp2p/pull/571)) + - Reduce autorelay boot delay and correctly handle private->public transition ([libp2p/go-libp2p#570](https://github.com/libp2p/go-libp2p/pull/570)) + - reduce nat error level ([libp2p/go-libp2p#568](https://github.com/libp2p/go-libp2p/pull/568)) + - relay: simplify declaration of multiaddr var ([libp2p/go-libp2p#563](https://github.com/libp2p/go-libp2p/pull/563)) + - Fix UDP listen on a Unspecified Address and Dial from the Unspecified Address ([libp2p/go-libp2p#561](https://github.com/libp2p/go-libp2p/pull/561)) + - Remove jenkins column from package table ([libp2p/go-libp2p#562](https://github.com/libp2p/go-libp2p/pull/562)) + - Fix typos in p2p/net/README.md ([libp2p/go-libp2p#555](https://github.com/libp2p/go-libp2p/pull/555)) + - better nat mapping ([libp2p/go-libp2p#549](https://github.com/libp2p/go-libp2p/pull/549)) +- github.com/libp2p/go-libp2p-autonat: + - fully close the autonat client stream ([libp2p/go-libp2p-autonat#21](https://github.com/libp2p/go-libp2p-autonat/pull/21)) + - parallelize dialbacks ([libp2p/go-libp2p-autonat#20](https://github.com/libp2p/go-libp2p-autonat/pull/20)) + - Pacify the race detector ([libp2p/go-libp2p-autonat#17](https://github.com/libp2p/go-libp2p-autonat/pull/17)) +- github.com/libp2p/go-libp2p-autonat-svc: + - full close the autonat stream ([libp2p/go-libp2p-autonat-svc#20](https://github.com/libp2p/go-libp2p-autonat-svc/pull/20)) + - reduce dialback timeout to 15s ([libp2p/go-libp2p-autonat-svc#17](https://github.com/libp2p/go-libp2p-autonat-svc/pull/17)) +- github.com/libp2p/go-libp2p-circuit: + - use buffer pool in newDelimitedReader ([libp2p/go-libp2p-circuit#71](https://github.com/libp2p/go-libp2p-circuit/pull/71)) + - Use NoDial option when opening hop streams for non-active relays ([libp2p/go-libp2p-circuit#70](https://github.com/libp2p/go-libp2p-circuit/pull/70)) + - use io.CopyBuffer with explicitly allocated buffers ([libp2p/go-libp2p-circuit#69](https://github.com/libp2p/go-libp2p-circuit/pull/69)) + - docs and nits ([libp2p/go-libp2p-circuit#66](https://github.com/libp2p/go-libp2p-circuit/pull/66)) +- github.com/libp2p/go-libp2p-kad-dht: + - dialQueue: start the control loop later ([libp2p/go-libp2p-kad-dht#312](https://github.com/libp2p/go-libp2p-kad-dht/pull/312)) + - make it work in wasm ([libp2p/go-libp2p-kad-dht#310](https://github.com/libp2p/go-libp2p-kad-dht/pull/310)) + - Revert "GoModules: Checksum mismatch:" ([libp2p/go-libp2p-kad-dht#309](https://github.com/libp2p/go-libp2p-kad-dht/pull/309)) + - defer dialqueue action until initial peers have been added ([libp2p/go-libp2p-kad-dht#301](https://github.com/libp2p/go-libp2p-kad-dht/pull/301)) +- github.com/libp2p/go-libp2p-nat: + - switch to libp2p's go-nat fork ([libp2p/go-libp2p-nat#16](https://github.com/libp2p/go-libp2p-nat/pull/16)) + - remove all uses of multiaddrs ([libp2p/go-libp2p-nat#14](https://github.com/libp2p/go-libp2p-nat/pull/14)) +- github.com/libp2p/go-libp2p-net: + - fix WithNoDial to return the context ([libp2p/go-libp2p-net#43](https://github.com/libp2p/go-libp2p-net/pull/43)) + - NoDial context option ([libp2p/go-libp2p-net#42](https://github.com/libp2p/go-libp2p-net/pull/42)) +- github.com/libp2p/go-libp2p-peer: + - Let ID implement encoding.Binary[Un]Marshaler and encoding.Text[Un]Marshaler ([libp2p/go-libp2p-peer#44](https://github.com/libp2p/go-libp2p-peer/pull/44)) +- github.com/libp2p/go-libp2p-peerstore: + - keep temp addresses for 2 minutes ([libp2p/go-libp2p-peerstore#67](https://github.com/libp2p/go-libp2p-peerstore/pull/67)) + - migrate to multiformats/go-base32 ([libp2p/go-libp2p-peerstore#61](https://github.com/libp2p/go-libp2p-peerstore/pull/61)) +- github.com/libp2p/go-libp2p-protocol: + - update readme ([libp2p/go-libp2p-protocol#6](https://github.com/libp2p/go-libp2p-protocol/pull/6)) + - Enable standard Travis CI tests. ([libp2p/go-libp2p-protocol#5](https://github.com/libp2p/go-libp2p-protocol/pull/5)) + - Fix go get address. ([libp2p/go-libp2p-protocol#4](https://github.com/libp2p/go-libp2p-protocol/pull/4)) + - Add MIT license ([libp2p/go-libp2p-protocol#3](https://github.com/libp2p/go-libp2p-protocol/pull/3)) + - Standardized Readme ([libp2p/go-libp2p-protocol#2](https://github.com/libp2p/go-libp2p-protocol/pull/2)) +- github.com/libp2p/go-libp2p-pubsub-router: + - gx publish 0.5.17 ([libp2p/go-libp2p-pubsub-router#26](https://github.com/libp2p/go-libp2p-pubsub-router/pull/26)) +- github.com/libp2p/go-libp2p-quic-transport: + - update quic-go to v0.11.0 ([libp2p/go-libp2p-quic-transport#54](https://github.com/libp2p/go-libp2p-quic-transport/pull/54)) +- github.com/libp2p/go-libp2p-routing-helpers: + - fix(put): fail if any router fails ([libp2p/go-libp2p-routing-helpers#19](https://github.com/libp2p/go-libp2p-routing-helpers/pull/19)) +- github.com/libp2p/go-libp2p-swarm: + - Add context option to disable dialing when opening a new stream ([libp2p/go-libp2p-swarm#116](https://github.com/libp2p/go-libp2p-swarm/pull/116)) + - return all dial errors if dial has failed ([libp2p/go-libp2p-swarm#115](https://github.com/libp2p/go-libp2p-swarm/pull/115)) + - Differentiate no addresses error from no good addresses ([libp2p/go-libp2p-swarm#113](https://github.com/libp2p/go-libp2p-swarm/pull/113)) +- github.com/libp2p/go-libp2p-transport: + - tests: constrain concurrency with race detector. ([libp2p/go-libp2p-transport#47](https://github.com/libp2p/go-libp2p-transport/pull/47)) + - pick test timeout from env var if available. ([libp2p/go-libp2p-transport#46](https://github.com/libp2p/go-libp2p-transport/pull/46)) + - increase test timeout. ([libp2p/go-libp2p-transport#45](https://github.com/libp2p/go-libp2p-transport/pull/45)) +- github.com/libp2p/go-msgio: + - Improve test coverage ([libp2p/go-msgio#10](https://github.com/libp2p/go-msgio/pull/10)) +- github.com/libp2p/go-reuseport: + - fix: add wasm build tag to wasm module ([libp2p/go-reuseport#70](https://github.com/libp2p/go-reuseport/pull/70)) +- github.com/libp2p/go-reuseport-transport: + - don't set linger to 0 ([libp2p/go-reuseport-transport#14](https://github.com/libp2p/go-reuseport-transport/pull/14)) +- github.com/libp2p/go-tcp-transport: + - set linger to 0 for both inbound and outbound connections ([libp2p/go-tcp-transport#36](https://github.com/libp2p/go-tcp-transport/pull/36)) +- github.com/libp2p/go-ws-transport: + - modernize request handling ([libp2p/go-ws-transport#41](https://github.com/libp2p/go-ws-transport/pull/41)) + +## 0.4.19 2019-03-01 We're happy to announce go 0.4.19. This release contains a bunch of important fixes and a slew of new and improved features. Get pumped and upgrade ASAP to benefit from all the new goodies! 🎠diff --git a/vendor/github.com/ipfs/go-ipfs/CODEOWNERS b/vendor/github.com/ipfs/go-ipfs/CODEOWNERS deleted file mode 100644 index 0f5f0ec2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/CODEOWNERS +++ /dev/null @@ -1,8 +0,0 @@ -# Please see https://help.github.com/articles/about-codeowners/ for more information - -# Global owner -* @Kubuxu - -# Subsystem specific owners - - diff --git a/vendor/github.com/ipfs/go-ipfs/Dockerfile b/vendor/github.com/ipfs/go-ipfs/Dockerfile index 07d3904a..17e3c1c9 100644 --- a/vendor/github.com/ipfs/go-ipfs/Dockerfile +++ b/vendor/github.com/ipfs/go-ipfs/Dockerfile @@ -1,22 +1,19 @@ -FROM golang:1.11-stretch +FROM golang:1.12-stretch MAINTAINER Lars Gierth -# There is a copy of this Dockerfile called Dockerfile.fast, -# which is optimized for build time, instead of image size. -# -# Please keep these two Dockerfiles in sync. +ENV SRC_DIR /go-ipfs -ENV GX_IPFS "" -ENV SRC_DIR /go/src/github.com/ipfs/go-ipfs +# Download packages first so they can be cached. +COPY go.mod go.sum $SRC_DIR/ +RUN cd $SRC_DIR \ + && go mod download COPY . $SRC_DIR # Build the thing. # Also: fix getting HEAD commit hash via git rev-parse. -# Also: allow using a custom IPFS API endpoint. RUN cd $SRC_DIR \ && mkdir .git/objects \ - && ([ -z "$GX_IPFS" ] || echo $GX_IPFS > /root/.ipfs/api) \ && make build # Get su-exec, a very minimal tool for dropping privileges, @@ -41,7 +38,7 @@ FROM busybox:1-glibc MAINTAINER Lars Gierth # Get the ipfs binary, entrypoint script, and TLS CAs from the build container. -ENV SRC_DIR /go/src/github.com/ipfs/go-ipfs +ENV SRC_DIR /go-ipfs COPY --from=0 $SRC_DIR/cmd/ipfs/ipfs /usr/local/bin/ipfs COPY --from=0 $SRC_DIR/bin/container_daemon /usr/local/bin/start_ipfs COPY --from=0 /tmp/su-exec/su-exec /sbin/su-exec @@ -60,15 +57,12 @@ EXPOSE 8080 # Swarm Websockets; must be exposed publicly when the node is listening using the websocket transport (/ipX/.../tcp/8081/ws). EXPOSE 8081 -# Create the fs-repo directory +# Create the fs-repo directory and switch to a non-privileged user. ENV IPFS_PATH /data/ipfs RUN mkdir -p $IPFS_PATH \ && adduser -D -h $IPFS_PATH -u 1000 -G users ipfs \ && chown ipfs:users $IPFS_PATH -# Switch to a non-privileged user -USER ipfs - # Expose the fs-repo as a volume. # start_ipfs initializes an fs-repo if none is mounted. # Important this happens after the USER directive so permission are correct. diff --git a/vendor/github.com/ipfs/go-ipfs/Dockerfile.fast b/vendor/github.com/ipfs/go-ipfs/Dockerfile.fast deleted file mode 100644 index 4775ee1a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/Dockerfile.fast +++ /dev/null @@ -1,79 +0,0 @@ -FROM golang:1.11-stretch -MAINTAINER Lars Gierth - -# This is a copy of /Dockerfile, -# except that we optimize for build time, instead of image size. -# -# Please keep these two Dockerfiles in sync. - -ENV GX_IPFS "" -ENV SRC_DIR /go/src/github.com/ipfs/go-ipfs - -COPY ./package.json $SRC_DIR/package.json - -# Fetch dependencies. -# Also: allow using a custom IPFS API endpoint. -RUN set -x \ - && go get github.com/whyrusleeping/gx \ - && go get github.com/whyrusleeping/gx-go \ - && ([ -z "$GX_IPFS" ] || echo $GX_IPFS > /root/.ipfs/api) \ - && cd $SRC_DIR \ - && gx install - -COPY . $SRC_DIR - -# Build the thing. -# Also: fix getting HEAD commit hash via git rev-parse. -RUN set -x \ - && cd $SRC_DIR \ - && mkdir .git/objects \ - && make build \ - && mv cmd/ipfs/ipfs /usr/local/bin/ipfs \ - && mv bin/container_daemon /usr/local/bin/start_ipfs - -# Get su-exec, a very minimal tool for dropping privileges, -# and tini, a very minimal init daemon for containers -ENV SUEXEC_VERSION v0.2 -ENV TINI_VERSION v0.16.1 -RUN set -x \ - && cd /tmp \ - && git clone https://github.com/ncopa/su-exec.git \ - && cd su-exec \ - && git checkout -q $SUEXEC_VERSION \ - && make \ - && cd /tmp \ - && wget -q -O tini https://github.com/krallin/tini/releases/download/$TINI_VERSION/tini \ - && chmod +x tini \ - && mv su-exec/su-exec tini /sbin/ # Install them - -# Ports for Swarm TCP, Swarm uTP, API, Gateway, Swarm Websockets -EXPOSE 4001 -EXPOSE 4002/udp -EXPOSE 5001 -EXPOSE 8080 -EXPOSE 8081 - -# Create the fs-repo directory -ENV IPFS_PATH /data/ipfs -RUN mkdir -p $IPFS_PATH \ - && useradd -s /usr/sbin/nologin -d $IPFS_PATH -u 1000 -G users ipfs \ - && chown ipfs:users $IPFS_PATH - -# Switch to a non-privileged user -USER ipfs - -# Expose the fs-repo as a volume. -# start_ipfs initializes an fs-repo if none is mounted. -# Important this happens after the USER directive so permission are correct. -VOLUME $IPFS_PATH - -# The default logging level -ENV IPFS_LOGGING "" - -# This just makes sure that: -# 1. There's an fs-repo, and initializes one if there isn't. -# 2. The API and Gateway are accessible from outside the container. -ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/start_ipfs"] - -# Execute the daemon subcommand by default -CMD ["daemon", "--migrate=true"] diff --git a/vendor/github.com/ipfs/go-ipfs/ISSUE_TEMPLATE.md b/vendor/github.com/ipfs/go-ipfs/ISSUE_TEMPLATE.md index 5f014947..1646b2af 100644 --- a/vendor/github.com/ipfs/go-ipfs/ISSUE_TEMPLATE.md +++ b/vendor/github.com/ipfs/go-ipfs/ISSUE_TEMPLATE.md @@ -1,6 +1,6 @@ #### Version information: diff --git a/vendor/github.com/ipfs/go-ipfs/README.md b/vendor/github.com/ipfs/go-ipfs/README.md index 4dfb8380..ab6251b7 100644 --- a/vendor/github.com/ipfs/go-ipfs/README.md +++ b/vendor/github.com/ipfs/go-ipfs/README.md @@ -7,13 +7,7 @@ [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) [![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) [![GoDoc](https://godoc.org/github.com/ipfs/go-ipfs?status.svg)](https://godoc.org/github.com/ipfs/go-ipfs) -[![Build Status](https://travis-ci.org/ipfs/go-ipfs.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs) - -## Project Status - -[![Throughput Graph](https://graphs.waffle.io/ipfs/go-ipfs/throughput.svg)](https://waffle.io/ipfs/go-ipfs/metrics/throughput) - -[**`Weekly Core Dev Calls`**](https://github.com/ipfs/pm/issues/674) +[![Build Status](https://travis-ci.com/ipfs/go-ipfs.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs) ## What is IPFS? @@ -138,29 +132,14 @@ export PATH=$PATH:$GOPATH/bin #### Download and Compile IPFS ``` -$ go get -u -d github.com/ipfs/go-ipfs +$ git clone https://github.com/ipfs/go-ipfs.git -$ cd $GOPATH/src/github.com/ipfs/go-ipfs +$ cd go-ipfs $ make install ``` If you are building on FreeBSD instead of `make install` use `gmake install`. -#### Building on less common systems - -If your operating system isn't officially supported, but you still want to try -building ipfs anyways (it should work fine in most cases), you can do the -following instead of `make install`: - -``` -$ make install_unsupported -``` - -Note: This process may break if [gx](https://github.com/whyrusleeping/gx) -(used for dependency management) or any of its dependencies break as `go get` -will always select the latest code for every dependency, often resulting in -mismatched APIs. - #### Troubleshooting - Separate [instructions are available for building on Windows](docs/windows.md). @@ -344,48 +323,46 @@ If you believe you've found a bug, check the [issues list](https://github.com/ip Listing of the main packages used in the IPFS ecosystem. There are also three specifications worth linking here: -| Name | CI/Travis | CI/Jenkins | Coverage | Description | -| ---------|---------|---------|---------|--------- | +| Name | CI/Travis | Coverage | Description | +| ---------|---------|---------|--------- | | **Files** | -| [`go-unixfs`](//github.com/ipfs/go-unixfs) | [![Travis CI](https://travis-ci.org/ipfs/go-unixfs.svg?branch=master)](https://travis-ci.org/ipfs/go-unixfs) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-unixfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-unixfs) | the core 'filesystem' logic | -| [`go-mfs`](//github.com/ipfs/go-mfs) | [![Travis CI](https://travis-ci.org/ipfs/go-mfs.svg?branch=master)](https://travis-ci.org/ipfs/go-mfs) | [![jenkins](https://ci.ipfs.team/buildStatus/icon?job=ipfs/go-mfs/master)](https://ci.ipfs.team/job/ipfs/job/go-mfs/job/master/) | [![codecov](https://codecov.io/gh/ipfs/go-mfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-mfs) | a mutable filesystem editor for unixfs | -| [`go-ipfs-posinfo`](//github.com/ipfs/go-ipfs-posinfo) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-posinfo.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-posinfo) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-posinfo/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-posinfo) | helper datatypes for the filestore | -| [`go-ipfs-chunker`](//github.com/ipfs/go-ipfs-chunker) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-chunker.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-chunker) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-chunker/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-chunker) | file chunkers | +| [`go-unixfs`](//github.com/ipfs/go-unixfs) | [![Travis CI](https://travis-ci.com/ipfs/go-unixfs.svg?branch=master)](https://travis-ci.com/ipfs/go-unixfs) | [![codecov](https://codecov.io/gh/ipfs/go-unixfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-unixfs) | the core 'filesystem' logic | +| [`go-mfs`](//github.com/ipfs/go-mfs) | [![Travis CI](https://travis-ci.com/ipfs/go-mfs.svg?branch=master)](https://travis-ci.com/ipfs/go-mfs) | [![codecov](https://codecov.io/gh/ipfs/go-mfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-mfs) | a mutable filesystem editor for unixfs | +| [`go-ipfs-posinfo`](//github.com/ipfs/go-ipfs-posinfo) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-posinfo.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-posinfo) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-posinfo/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-posinfo) | helper datatypes for the filestore | +| [`go-ipfs-chunker`](//github.com/ipfs/go-ipfs-chunker) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-chunker.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-chunker) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-chunker/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-chunker) | file chunkers | | **Exchange** | -| [`go-ipfs-exchange-interface`](//github.com/ipfs/go-ipfs-exchange-interface) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-exchange-interface.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-exchange-interface) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-exchange-interface/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-exchange-interface) | exchange service interface | -| [`go-ipfs-exchange-offline`](//github.com/ipfs/go-ipfs-exchange-offline) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-exchange-offline.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-exchange-offline) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-exchange-offline/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-exchange-offline) | (dummy) offline implementation of the exchange service | -| [`go-bitswap`](//github.com/ipfs/go-bitswap) | [![Travis CI](https://travis-ci.org/ipfs/go-bitswap.svg?branch=master)](https://travis-ci.org/ipfs/go-bitswap) | [![jenkins](https://ci.ipfs.team/buildStatus/icon?job=ipfs/go-bitswap/master)](https://ci.ipfs.team/job/ipfs/job/go-bitswap/job/master/) | [![codecov](https://codecov.io/gh/ipfs/go-bitswap/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-bitswap) | bitswap protocol implementation | -| [`go-blockservice`](//github.com/ipfs/go-blockservice) | [![Travis CI](https://travis-ci.org/ipfs/go-blockservice.svg?branch=master)](https://travis-ci.org/ipfs/go-blockservice) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-blockservice/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-blockservice) | service that plugs a blockstore and an exchange together | +| [`go-ipfs-exchange-interface`](//github.com/ipfs/go-ipfs-exchange-interface) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-exchange-interface.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-exchange-interface) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-exchange-interface/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-exchange-interface) | exchange service interface | +| [`go-ipfs-exchange-offline`](//github.com/ipfs/go-ipfs-exchange-offline) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-exchange-offline.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-exchange-offline) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-exchange-offline/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-exchange-offline) | (dummy) offline implementation of the exchange service | +| [`go-bitswap`](//github.com/ipfs/go-bitswap) | [![Travis CI](https://travis-ci.com/ipfs/go-bitswap.svg?branch=master)](https://travis-ci.com/ipfs/go-bitswap) | [![codecov](https://codecov.io/gh/ipfs/go-bitswap/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-bitswap) | bitswap protocol implementation | +| [`go-blockservice`](//github.com/ipfs/go-blockservice) | [![Travis CI](https://travis-ci.com/ipfs/go-blockservice.svg?branch=master)](https://travis-ci.com/ipfs/go-blockservice) | [![codecov](https://codecov.io/gh/ipfs/go-blockservice/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-blockservice) | service that plugs a blockstore and an exchange together | | **Datastores** | -| [`go-datastore`](//github.com/ipfs/go-datastore) | [![Travis CI](https://travis-ci.org/ipfs/go-datastore.svg?branch=master)](https://travis-ci.org/ipfs/go-datastore) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-datastore/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-datastore) | datastore interfaces, adapters, and basic implementations | -| [`go-ipfs-ds-help`](//github.com/ipfs/go-ipfs-ds-help) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-ds-help.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-ds-help) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-ds-help/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-ds-help) | datastore utility functions | -| [`go-ds-flatfs`](//github.com/ipfs/go-ds-flatfs) | [![Travis CI](https://travis-ci.org/ipfs/go-ds-flatfs.svg?branch=master)](https://travis-ci.org/ipfs/go-ds-flatfs) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ds-flatfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-flatfs) | a filesystem-based datastore | -| [`go-ds-measure`](//github.com/ipfs/go-ds-measure) | [![Travis CI](https://travis-ci.org/ipfs/go-ds-measure.svg?branch=master)](https://travis-ci.org/ipfs/go-ds-measure) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ds-measure/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-measure) | a metric-collecting database adapter | -| [`go-ds-leveldb`](//github.com/ipfs/go-ds-leveldb) | [![Travis CI](https://travis-ci.org/ipfs/go-ds-leveldb.svg?branch=master)](https://travis-ci.org/ipfs/go-ds-leveldb) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ds-leveldb/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-leveldb) | a leveldb based datastore | -| [`go-ds-badger`](//github.com/ipfs/go-ds-badger) | [![Travis CI](https://travis-ci.org/ipfs/go-ds-badger.svg?branch=master)](https://travis-ci.org/ipfs/go-ds-badger) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ds-badger/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-badger) | a badgerdb based datastore | +| [`go-datastore`](//github.com/ipfs/go-datastore) | [![Travis CI](https://travis-ci.com/ipfs/go-datastore.svg?branch=master)](https://travis-ci.com/ipfs/go-datastore) | [![codecov](https://codecov.io/gh/ipfs/go-datastore/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-datastore) | datastore interfaces, adapters, and basic implementations | +| [`go-ipfs-ds-help`](//github.com/ipfs/go-ipfs-ds-help) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-ds-help.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-ds-help) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-ds-help/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-ds-help) | datastore utility functions | +| [`go-ds-flatfs`](//github.com/ipfs/go-ds-flatfs) | [![Travis CI](https://travis-ci.com/ipfs/go-ds-flatfs.svg?branch=master)](https://travis-ci.com/ipfs/go-ds-flatfs) | [![codecov](https://codecov.io/gh/ipfs/go-ds-flatfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-flatfs) | a filesystem-based datastore | +| [`go-ds-measure`](//github.com/ipfs/go-ds-measure) | [![Travis CI](https://travis-ci.com/ipfs/go-ds-measure.svg?branch=master)](https://travis-ci.com/ipfs/go-ds-measure) | [![codecov](https://codecov.io/gh/ipfs/go-ds-measure/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-measure) | a metric-collecting database adapter | +| [`go-ds-leveldb`](//github.com/ipfs/go-ds-leveldb) | [![Travis CI](https://travis-ci.com/ipfs/go-ds-leveldb.svg?branch=master)](https://travis-ci.com/ipfs/go-ds-leveldb) | [![codecov](https://codecov.io/gh/ipfs/go-ds-leveldb/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-leveldb) | a leveldb based datastore | +| [`go-ds-badger`](//github.com/ipfs/go-ds-badger) | [![Travis CI](https://travis-ci.com/ipfs/go-ds-badger.svg?branch=master)](https://travis-ci.com/ipfs/go-ds-badger) | [![codecov](https://codecov.io/gh/ipfs/go-ds-badger/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ds-badger) | a badgerdb based datastore | | **Namesys** | -| [`go-ipns`](//github.com/ipfs/go-ipns) | [![Travis CI](https://travis-ci.org/ipfs/go-ipns.svg?branch=master)](https://travis-ci.org/ipfs/go-ipns) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipns/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipns) | IPNS datastructures and validation logic | +| [`go-ipns`](//github.com/ipfs/go-ipns) | [![Travis CI](https://travis-ci.com/ipfs/go-ipns.svg?branch=master)](https://travis-ci.com/ipfs/go-ipns) | [![codecov](https://codecov.io/gh/ipfs/go-ipns/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipns) | IPNS datastructures and validation logic | | **Repo** | -| [`go-ipfs-config`](//github.com/ipfs/go-ipfs-config) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-config.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-config) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-config/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-config) | go-ipfs config file definitions | -| [`go-fs-lock`](//github.com/ipfs/go-fs-lock) | [![Travis CI](https://travis-ci.org/ipfs/go-fs-lock.svg?branch=master)](https://travis-ci.org/ipfs/go-fs-lock) | [![jenkins](https://ci.ipfs.team/buildStatus/icon?job=ipfs/go-fs-lock/master)](https://ci.ipfs.team/job/ipfs/job/go-fs-lock/job/master/) | [![codecov](https://codecov.io/gh/ipfs/go-fs-lock/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-fs-lock) | lockfile management functions | -| [`fs-repo-migrations`](//github.com/ipfs/fs-repo-migrations) | [![Travis CI](https://travis-ci.org/ipfs/fs-repo-migrations.svg?branch=master)](https://travis-ci.org/ipfs/fs-repo-migrations) | N/A | [![codecov](https://codecov.io/gh/ipfs/fs-repo-migrations/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/fs-repo-migrations) | repo migrations | +| [`go-ipfs-config`](//github.com/ipfs/go-ipfs-config) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-config.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-config) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-config/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-config) | go-ipfs config file definitions | +| [`go-fs-lock`](//github.com/ipfs/go-fs-lock) | [![Travis CI](https://travis-ci.com/ipfs/go-fs-lock.svg?branch=master)](https://travis-ci.com/ipfs/go-fs-lock) | [![codecov](https://codecov.io/gh/ipfs/go-fs-lock/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-fs-lock) | lockfile management functions | +| [`fs-repo-migrations`](//github.com/ipfs/fs-repo-migrations) | [![Travis CI](https://travis-ci.com/ipfs/fs-repo-migrations.svg?branch=master)](https://travis-ci.com/ipfs/fs-repo-migrations) | [![codecov](https://codecov.io/gh/ipfs/fs-repo-migrations/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/fs-repo-migrations) | repo migrations | | **Blocks** | -| [`go-block-format`](//github.com/ipfs/go-block-format) | [![Travis CI](https://travis-ci.org/ipfs/go-block-format.svg?branch=master)](https://travis-ci.org/ipfs/go-block-format) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-block-format/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-block-format) | block interfaces and implementations | -| [`go-ipfs-blockstore`](//github.com/ipfs/go-ipfs-blockstore) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-blockstore.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-blockstore) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-blockstore/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-blockstore) | blockstore interfaces and implementations | -| [`go-ipfs-blockstore`](//github.com/ipfs/go-ipfs-blockstore) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-blockstore.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-blockstore) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-blockstore/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-blockstore) | blockstore interfaces and implementations | +| [`go-block-format`](//github.com/ipfs/go-block-format) | [![Travis CI](https://travis-ci.com/ipfs/go-block-format.svg?branch=master)](https://travis-ci.com/ipfs/go-block-format) | [![codecov](https://codecov.io/gh/ipfs/go-block-format/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-block-format) | block interfaces and implementations | +| [`go-ipfs-blockstore`](//github.com/ipfs/go-ipfs-blockstore) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-blockstore.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-blockstore) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-blockstore/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-blockstore) | blockstore interfaces and implementations | | **Commands** | -| [`go-ipfs-cmds`](//github.com/ipfs/go-ipfs-cmds) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-cmds.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-cmds) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-cmds/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-cmds) | CLI & HTTP commands library | -| [`go-ipfs-cmdkit`](//github.com/ipfs/go-ipfs-cmdkit) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-cmdkit.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-cmdkit) | [![jenkins](https://ci.ipfs.team/buildStatus/icon?job=ipfs/go-ipfs-cmdkit/master)](https://ci.ipfs.team/job/ipfs/job/go-ipfs-cmdkit/job/master/) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-cmdkit/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-cmdkit) | helper types for the commands library | -| [`go-ipfs-blockstore`](//github.com/ipfs/go-ipfs-blockstore) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-blockstore.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-blockstore) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-blockstore/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-blockstore) | blockstore interfaces and implementations | -| [`go-ipfs-api`](//github.com/ipfs/go-ipfs-api) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-api.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-api) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-api/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-api) | a shell for the IPFS HTTP API | +| [`go-ipfs-cmds`](//github.com/ipfs/go-ipfs-cmds) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-cmds.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-cmds) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-cmds/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-cmds) | CLI & HTTP commands library | +| [`go-ipfs-cmdkit`](//github.com/ipfs/go-ipfs-cmdkit) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-cmdkit.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-cmdkit) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-cmdkit/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-cmdkit) | helper types for the commands library | +| [`go-ipfs-api`](//github.com/ipfs/go-ipfs-api) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-api.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-api) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-api/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-api) | a shell for the IPFS HTTP API | | **Metrics & Logging** | -| [`go-metrics-interface`](//github.com/ipfs/go-metrics-interface) | [![Travis CI](https://travis-ci.org/ipfs/go-metrics-interface.svg?branch=master)](https://travis-ci.org/ipfs/go-metrics-interface) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-metrics-interface/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-metrics-interface) | metrics collection interfaces | -| [`go-metrics-prometheus`](//github.com/ipfs/go-metrics-prometheus) | [![Travis CI](https://travis-ci.org/ipfs/go-metrics-prometheus.svg?branch=master)](https://travis-ci.org/ipfs/go-metrics-prometheus) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-metrics-prometheus/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-metrics-prometheus) | prometheus-backed metrics collector | -| [`go-log`](//github.com/ipfs/go-log) | [![Travis CI](https://travis-ci.org/ipfs/go-log.svg?branch=master)](https://travis-ci.org/ipfs/go-log) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-log/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-log) | logging framework | +| [`go-metrics-interface`](//github.com/ipfs/go-metrics-interface) | [![Travis CI](https://travis-ci.com/ipfs/go-metrics-interface.svg?branch=master)](https://travis-ci.com/ipfs/go-metrics-interface) | [![codecov](https://codecov.io/gh/ipfs/go-metrics-interface/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-metrics-interface) | metrics collection interfaces | +| [`go-metrics-prometheus`](//github.com/ipfs/go-metrics-prometheus) | [![Travis CI](https://travis-ci.com/ipfs/go-metrics-prometheus.svg?branch=master)](https://travis-ci.com/ipfs/go-metrics-prometheus) | [![codecov](https://codecov.io/gh/ipfs/go-metrics-prometheus/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-metrics-prometheus) | prometheus-backed metrics collector | +| [`go-log`](//github.com/ipfs/go-log) | [![Travis CI](https://travis-ci.com/ipfs/go-log.svg?branch=master)](https://travis-ci.com/ipfs/go-log) | [![codecov](https://codecov.io/gh/ipfs/go-log/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-log) | logging framework | | **Generics/Utils** | -| [`go-ipfs-routing`](//github.com/ipfs/go-ipfs-routing) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-routing.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-routing) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-routing/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-routing) | routing (content, peer, value) helpers | -| [`go-ipfs-util`](//github.com/ipfs/go-ipfs-util) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-util.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-util) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-util/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-util) | the kitchen sink | -| [`go-ipfs-addr`](//github.com/ipfs/go-ipfs-addr) | [![Travis CI](https://travis-ci.org/ipfs/go-ipfs-addr.svg?branch=master)](https://travis-ci.org/ipfs/go-ipfs-addr) | N/A | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-addr/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-addr) | utility functions for parsing IPFS multiaddrs | +| [`go-ipfs-routing`](//github.com/ipfs/go-ipfs-routing) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-routing.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-routing) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-routing/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-routing) | routing (content, peer, value) helpers | +| [`go-ipfs-util`](//github.com/ipfs/go-ipfs-util) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-util.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-util) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-util/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-util) | the kitchen sink | +| [`go-ipfs-addr`](//github.com/ipfs/go-ipfs-addr) | [![Travis CI](https://travis-ci.com/ipfs/go-ipfs-addr.svg?branch=master)](https://travis-ci.com/ipfs/go-ipfs-addr) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-addr/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipfs-addr) | utility functions for parsing IPFS multiaddrs | For brevity, we've omitted go-libp2p and go-ipld packages. These package tables can be found in their respective project's READMEs: @@ -435,6 +412,9 @@ We â¤ï¸ all [our contributors](docs/AUTHORS); this project wouldn’t be what This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). +You can contact us on the freenode #ipfs-dev channel or attend one of our +[weekly calls](https://github.com/ipfs/team-mgmt/issues/674). + ## License [MIT](./LICENSE) diff --git a/vendor/github.com/ipfs/go-ipfs/Rules.mk b/vendor/github.com/ipfs/go-ipfs/Rules.mk index 70ea69e0..d28e3e0f 100644 --- a/vendor/github.com/ipfs/go-ipfs/Rules.mk +++ b/vendor/github.com/ipfs/go-ipfs/Rules.mk @@ -12,7 +12,6 @@ include mk/git.mk # has to be before tarball.mk include mk/tarball.mk include mk/util.mk include mk/golang.mk -include mk/gx.mk # -------------------- # # extra properties # @@ -86,7 +85,7 @@ test: $(TEST) test_short: $(TEST_SHORT) .PHONY: test_short -deps: gx-deps +deps: .PHONY: deps nofuse: GOTAGS += nofuse @@ -96,17 +95,12 @@ nofuse: build install: cmd/ipfs-install .PHONY: install -install_unsupported: - @echo "note: this command has yet to be tested to build in the system you are using" - @echo "installing gx" - go get -v -u github.com/whyrusleeping/gx - go get -v -u github.com/whyrusleeping/gx-go - @echo check gx and gx-go - gx -v && gx-go -v - @echo downloading dependencies - gx install --global - @echo "installing go-ipfs" - go install -v -tags nofuse ./cmd/ipfs +install_unsupported: install + @echo "/=======================================================================\\" + @echo '| |' + @echo '| `make install_unsupported` is deprecated, use `make install` instead. |' + @echo '| |' + @echo "\\=======================================================================/" .PHONY: install_unsupported uninstall: diff --git a/vendor/github.com/ipfs/go-ipfs/assets/README.md b/vendor/github.com/ipfs/go-ipfs/assets/README.md deleted file mode 100644 index caffb3ab..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Assets loaded in with IPFS - -## Generating docs - -Do not edit the .go files directly. - -Instead, edit the source files and use `go generate` from within the -assets directory: - -``` -go get -u github.com/jteeuwen/go-bindata/... -go generate -``` diff --git a/vendor/github.com/ipfs/go-ipfs/assets/assets.go b/vendor/github.com/ipfs/go-ipfs/assets/assets.go deleted file mode 100644 index 3db8e108..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/assets.go +++ /dev/null @@ -1,86 +0,0 @@ -//go:generate go-bindata -pkg=assets -prefix=$GOPATH/src/gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV init-doc $GOPATH/src/gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html -//go:generate gofmt -w bindata.go - -package assets - -import ( - "fmt" - "os" - "path/filepath" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/coreapi" - - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - iface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - - // this import keeps gx from thinking the dep isn't used - _ "gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html" -) - -// initDocPaths lists the paths for the docs we want to seed during --init -var initDocPaths = []string{ - filepath.Join("init-doc", "about"), - filepath.Join("init-doc", "readme"), - filepath.Join("init-doc", "help"), - filepath.Join("init-doc", "contact"), - filepath.Join("init-doc", "security-notes"), - filepath.Join("init-doc", "quick-start"), - filepath.Join("init-doc", "ping"), -} - -// SeedInitDocs adds the list of embedded init documentation to the passed node, pins it and returns the root key -func SeedInitDocs(nd *core.IpfsNode) (cid.Cid, error) { - return addAssetList(nd, initDocPaths) -} - -var initDirPath = filepath.Join(os.Getenv("GOPATH"), "gx", "ipfs", "QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV", "dir-index-html") -var initDirIndex = []string{ - filepath.Join(initDirPath, "knownIcons.txt"), - filepath.Join(initDirPath, "dir-index.html"), -} - -func SeedInitDirIndex(nd *core.IpfsNode) (cid.Cid, error) { - return addAssetList(nd, initDirIndex) -} - -func addAssetList(nd *core.IpfsNode, l []string) (cid.Cid, error) { - api, err := coreapi.NewCoreAPI(nd) - if err != nil { - return cid.Cid{}, err - } - - dirb, err := api.Object().New(nd.Context(), options.Object.Type("unixfs-dir")) - if err != nil { - return cid.Cid{}, err - } - - basePath := iface.IpfsPath(dirb.Cid()) - - for _, p := range l { - d, err := Asset(p) - if err != nil { - return cid.Cid{}, fmt.Errorf("assets: could load Asset '%s': %s", p, err) - } - - fp, err := api.Unixfs().Add(nd.Context(), files.NewBytesFile(d)) - if err != nil { - return cid.Cid{}, err - } - - fname := filepath.Base(p) - - basePath, err = api.Object().AddLink(nd.Context(), basePath, fname, fp) - if err != nil { - return cid.Cid{}, err - } - } - - if err := api.Pin().Add(nd.Context(), basePath); err != nil { - return cid.Cid{}, err - } - - return basePath.Cid(), nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/assets/assets_test.go b/vendor/github.com/ipfs/go-ipfs/assets/assets_test.go deleted file mode 100644 index 4b0ac829..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/assets_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package assets - -import ( - "bytes" - "io/ioutil" - "sync" - "testing" -) - -// TestEmbeddedDocs makes sure we don't forget to regenerate after documentation change -func TestEmbeddedDocs(t *testing.T) { - testNFiles(initDocPaths, 5, t, "documents") -} - -func TestDirIndex(t *testing.T) { - t.Skip("skipping for now, code being tested is currently unused") - // TODO: import assets during init. - // this will require figuring out how to set the right paths up for - // referencing the code from its gx path - testNFiles(initDirIndex, 2, t, "assets") -} - -func testNFiles(fs []string, wantCnt int, t *testing.T, ftype string) { - if len(fs) < wantCnt { - t.Fatalf("expected %d %s. got %d", wantCnt, ftype, len(fs)) - } - - var wg sync.WaitGroup - for _, f := range fs { - wg.Add(1) - // compare asset - go func(f string) { - defer wg.Done() - testOneFile(f, t) - }(f) - } - wg.Wait() -} - -func testOneFile(f string, t *testing.T) { - // load data from filesystem (git) - vcsData, err := ioutil.ReadFile(f) - if err != nil { - t.Errorf("asset %s: could not read vcs file: %s", f, err) - return - } - - // load data from emdedded source - embdData, err := Asset(f) - if err != nil { - t.Errorf("asset %s: could not read vcs file: %s", f, err) - return - } - - if !bytes.Equal(vcsData, embdData) { - t.Errorf("asset %s: vcs and embedded data isnt equal", f) - return - } - - t.Logf("checked %s", f) -} diff --git a/vendor/github.com/ipfs/go-ipfs/assets/bindata.go b/vendor/github.com/ipfs/go-ipfs/assets/bindata.go deleted file mode 100644 index 4dd55e4f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/bindata.go +++ /dev/null @@ -1,538 +0,0 @@ -// Code generated by go-bindata. -// sources: -// init-doc/about -// init-doc/contact -// init-doc/help -// init-doc/ping -// init-doc/quick-start -// init-doc/readme -// init-doc/security-notes -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/LICENSE -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/README.md -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/dir-index-uncat.html -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/dir-index.html -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/index.go -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/knownIcons.txt -// ../../../../gx/ipfs/QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV/dir-index-html/package.json -// DO NOT EDIT! - -package assets - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -func (fi bindataFileInfo) Name() string { - return fi.name -} -func (fi bindataFileInfo) Size() int64 { - return fi.size -} -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} -func (fi bindataFileInfo) IsDir() bool { - return false -} -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _initDocAbout = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x94\x41\x6f\xe4\x36\x0c\x85\xef\xfe\x15\xef\xd6\x6c\x32\x9e\x01\x7a\x0c\x8a\x1e\x8a\x6d\xba\xc1\x02\x8b\x00\x49\x51\xf4\x16\x5a\xe2\xd8\x6c\x64\xca\x90\xe8\x99\x75\x7f\x7d\x21\xd9\x93\x4c\xb1\xb9\x24\x70\x48\x8a\xef\x23\xf9\x1a\xfc\xf0\xf3\xf8\xf4\xf0\x8c\xb6\xc5\xa3\x1a\xa7\xf6\x29\x90\xb2\x51\x5a\xf0\x20\x81\x91\x97\x6c\x3c\x36\x4d\x0d\x92\x0c\x42\x1f\x62\x47\x61\x87\x13\xa7\x2c\x51\xd9\xef\x30\x31\xa7\xd6\x62\x5b\x7e\xe3\x28\x81\xd7\xac\x3d\x1e\x0d\x2e\x8e\x9d\x28\x67\xf4\x31\x7a\x88\x67\xca\xcd\x31\xc5\x11\x7f\x88\xed\xf0\x9b\xd8\x4b\x4c\x89\xd5\x76\xf8\x4a\x9e\xc7\x20\xb4\xc3\xf3\xc3\xf3\x0e\xa4\x1e\x36\x30\xfe\xe2\xae\x16\x92\x8c\x20\x6f\x0c\x42\x16\xed\x03\xa3\x13\x6b\x1b\x5b\xb3\x91\xcf\x94\xc6\x1d\xf8\xbb\x1b\x48\x7b\xd1\x1e\xbd\x18\x62\xf7\x0f\x3b\xcb\xfb\x55\xe3\x94\xe2\x49\x3c\x67\x90\x42\x8a\xd8\x23\x39\x06\x65\x64\x19\xa7\xc0\x0d\xe5\xfa\xe0\x97\x97\x97\x27\x9c\xb9\xdb\xa1\x9b\x0d\x67\xb1\x01\x13\xa7\x91\x94\xd5\x31\xba\x59\x82\x41\x74\x8f\xbf\xe3\x0c\x47\x0a\x0a\x39\x62\x8c\xb3\x5a\x4d\x3f\xc7\x14\x7c\x43\x86\x83\x4c\xc7\xbc\xbf\x46\x37\xa5\x68\xd1\xc5\x70\xdf\xb4\xf0\x7c\xac\x58\x08\x2e\xaa\xb1\x5a\x4b\xde\x27\xce\x99\x7d\x45\x78\x21\xdf\xc2\xc5\x98\xbc\x28\x19\xe7\x4b\x2c\x3c\x07\x39\x71\x5a\xea\xbf\x37\xc0\x17\x7e\xb8\xbb\xc2\x8a\xbb\x02\xfa\xba\x89\x8f\xf9\x94\x36\x06\xca\xf0\x92\xd8\x59\x4c\x52\xd1\xac\xcf\xe7\xa6\x5d\x35\x51\x17\xf8\x2a\x07\x37\x27\x21\x3c\xfc\xf9\xfc\xfb\xa7\xeb\xa2\x67\xee\x4a\xb5\x82\xa3\x63\xcc\x45\x84\x45\x9c\x84\xcf\xf0\xd1\xcd\x23\xab\x6d\xe3\xab\x88\xb8\x6b\xda\xb5\x28\xc8\x39\xce\x59\xca\x2b\xa5\x72\x85\x4f\x86\xd7\xc1\x6c\xba\x3f\xac\x0c\x25\x1e\x7e\x99\xc8\x86\x5f\x5f\x9b\x16\x5d\x8a\xe7\xcc\x29\x23\x26\xf0\x77\x63\x2d\x5b\x98\xeb\xd3\x81\x29\x69\x79\x78\xce\x8c\xd7\x92\x7a\x7f\x38\xbc\x6e\xfa\xc2\xb2\xca\x1d\xae\x40\x5f\x70\xf6\x33\x25\x52\xe3\xd2\xcf\x6c\x03\xab\x89\x13\x5b\x3e\x14\x8e\xd1\xcf\x81\x52\xd5\x18\x55\xd9\x99\x44\x45\xa0\x85\x13\xe2\x89\x13\x48\x17\x28\xdb\x39\xa6\xb7\xf7\x31\x37\x2d\x52\x9c\xad\x2c\x63\x8d\x6c\xda\xd2\x58\xc1\xf5\xbf\xcf\xf8\xfc\xe5\x05\x37\x6f\xdb\xf4\x0e\x2e\x26\x0a\x9f\x3e\x62\x8b\xf0\xb6\xa3\xd2\xae\xd2\x58\xb2\x32\xa7\x93\x38\xbe\x84\x74\x62\xdb\x15\xb4\xa2\x79\x92\xc4\x1e\x5d\x88\xee\xed\x72\x0d\xbc\xe9\xa8\xd1\x2e\x2d\x93\xc5\x2a\xa4\xfe\xd5\x27\x9a\x06\x71\x6d\x21\xf3\xce\x63\x23\x24\xda\x17\xe0\xa5\x56\x1b\xf8\xc4\x01\x9e\xfd\x3c\x05\x71\x54\xf4\x6f\x33\xac\xb7\xd4\x27\xb1\x05\x77\x17\x57\x58\x33\x3f\xd6\x66\x4b\x67\xad\x8f\x16\x76\x77\xc8\xd2\x6b\x95\x33\x4f\x53\x4c\x57\x3b\x3a\xfd\x3c\x95\xfe\xea\x21\x9d\xc5\xf3\x8f\xfe\x02\x4b\xa4\xf9\xc8\x29\xaf\x07\x30\x05\x36\x0e\x0b\x3c\x3b\x56\x4b\x14\xe4\x5f\xf6\xa0\xe4\x06\x31\x76\x36\xa7\x02\xeb\xf6\x56\xe3\xed\x2d\xb6\x08\x4c\x51\xd4\x10\x8f\x38\x92\x84\x12\x71\xb5\xce\xce\x6b\xe9\x80\xbc\xdf\x0e\xa6\x2c\x55\xd9\xdc\xab\x43\x08\xd1\x51\x08\xcb\x6a\x54\x62\x3f\x65\x68\x3c\x83\x4e\x24\xa1\xde\xcc\x96\xb1\xda\x41\x39\x0d\x37\x88\xf6\xed\x31\x09\xab\x0f\x0b\x6e\x2e\x77\x5f\xc9\xaf\xa3\x2d\x63\xbf\x1a\xe7\x3a\xf5\x8e\xb4\x60\xb0\x01\x5e\xb2\x25\xe9\xe6\x0a\x7f\x6d\xb7\xdc\x2f\x95\x6c\xbe\xac\x45\x69\xfc\xf1\xe9\x5b\x75\xd0\xe2\xa4\x78\x5f\x8a\x35\xea\x62\x2b\xab\x8f\xd7\x8f\x79\x2a\x46\xb8\xbe\x16\x15\x4f\x5f\x1f\x9b\xb6\x96\xe3\x5c\x64\x14\xcb\xf3\xb0\x34\x67\x83\x1b\x48\xf4\x42\x9d\xac\xde\x6d\xb5\xc8\x68\x03\x27\x7c\x7b\xae\xce\x51\x8e\x71\xa4\x09\x9f\x4b\x1b\xfb\xa8\x12\x75\x87\x7d\x57\x1c\x9f\xcd\x95\x9a\xa5\xc3\xe6\xbf\x00\x00\x00\xff\xff\x27\xf1\x1f\xbc\x8d\x06\x00\x00") - -func initDocAboutBytes() ([]byte, error) { - return bindataRead( - _initDocAbout, - "init-doc/about", - ) -} - -func initDocAbout() (*asset, error) { - bytes, err := initDocAboutBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/about", size: 1677, mode: os.FileMode(384), modTime: time.Unix(1539187719, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _initDocContact = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x1c\xcd\xb1\x6a\x44\x21\x10\x85\xe1\xde\xa7\x38\x90\x5a\xed\xad\x42\x2e\x81\xa4\xcd\x1b\x18\x77\xae\x0e\xac\xce\x8d\x33\x2e\xec\xdb\x07\xb7\x3a\x70\xf8\xe0\x3f\xa4\x13\x5a\x1e\x15\xb2\x0c\x3c\x20\x6b\xe2\xfb\xe7\x40\x69\xd9\x30\x45\x3a\xf8\xc4\x53\x16\x5a\x7e\x10\xf2\x78\xe2\x6f\x91\x1a\xcb\xd0\xe0\xdc\x21\xc3\x72\x31\x58\x23\xf0\x75\x2a\x6e\xf4\x80\x51\xee\xc9\x79\x7c\xac\xaa\x09\xcd\xec\xd2\x14\x63\x65\x6b\xeb\x37\x14\xe9\x71\xcb\x58\xc5\xbf\x96\x55\x17\xa9\xf3\xf8\xa2\xfb\x95\xc0\xb3\x84\x73\x12\x0d\xb9\x51\x90\x59\xe3\xdb\x56\xce\xe3\xb3\x67\xbe\xa7\x1d\x78\xdf\x4f\x60\x71\xff\x01\x00\x00\xff\xff\x7d\x69\x95\xc6\xbd\x00\x00\x00") - -func initDocContactBytes() ([]byte, error) { - return bindataRead( - _initDocContact, - "init-doc/contact", - ) -} - -func initDocContact() (*asset, error) { - bytes, err := initDocContactBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/contact", size: 189, mode: os.FileMode(384), modTime: time.Unix(1539187719, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _initDocHelp = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x3c\x8e\x41\x72\xec\x20\x0c\x44\xf7\x3e\x45\x57\xfd\x35\xf6\xde\xd7\xf8\x27\x60\xb0\x30\xaa\x60\xe4\x48\x62\xa6\x7c\xfb\x14\x33\x71\x96\x74\xbf\xd7\xe8\xbf\x1c\x84\x42\xf5\xcc\xbd\x42\xc9\xa4\x6b\x22\x43\x16\x45\xe6\xb6\x71\xdb\x71\x49\x57\xbc\xe2\x85\xa8\xd2\xdb\x06\x3e\xb3\xad\xd3\x14\xf0\xdd\x39\x7d\x05\xf3\xa8\xbe\x22\x7e\x9e\xb0\x22\x2f\x48\xc6\x33\x2a\x4b\xb7\x37\x8d\x4c\xd1\xbb\x92\xcd\x53\xf8\x04\x49\x8e\x23\xb6\xcd\x86\x57\xd9\x7c\x18\xb1\xd6\xbf\xfc\xe6\x42\x18\xb7\xad\xa0\x27\xe9\x75\xb7\xd8\xc8\x92\xf2\x83\x0c\xec\x46\x35\x4f\x01\xc5\xfd\xb4\x75\x59\x76\xf6\xd2\x1f\x73\x92\x63\x19\x03\xcb\x2e\xe1\x77\x08\x5e\x08\xa6\x09\x4a\xa7\x18\xbb\xe8\x35\x05\xfc\x7b\xb7\xd2\xc0\x9a\xe6\xac\x44\x4d\x36\x9a\x45\xf7\xdb\x18\x7f\xf6\xc6\x7e\x0d\x02\xa9\xc4\xd6\xa8\x4e\x3f\x01\x00\x00\xff\xff\x2c\xe0\x8e\xed\x37\x01\x00\x00") - -func initDocHelpBytes() ([]byte, error) { - return bindataRead( - _initDocHelp, - "init-doc/help", - ) -} - -func initDocHelp() (*asset, error) { - bytes, err := initDocHelpBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/help", size: 311, mode: os.FileMode(384), modTime: time.Unix(1539187719, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _initDocPing = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\x2c\x48\x2b\x06\x04\x00\x00\xff\xff\x62\xe3\x30\xc9\x04\x00\x00\x00") - -func initDocPingBytes() ([]byte, error) { - return bindataRead( - _initDocPing, - "init-doc/ping", - ) -} - -func initDocPing() (*asset, error) { - bytes, err := initDocPingBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/ping", size: 4, mode: os.FileMode(384), modTime: time.Unix(1544511852, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _initDocQuickStart = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\x5d\x53\xdb\x3a\x10\x7d\xd7\xaf\xd8\x9b\xbe\x70\xe7\x8e\x71\x68\x1a\x1a\x98\x3b\xcc\xd0\x50\x92\x9b\x42\x2e\x29\x94\x02\x6f\x8a\xb5\xb2\x95\x58\x1f\x95\xe4\x18\xe7\xd7\x77\xac\x7c\x79\xa6\x40\x78\xd3\xee\x9e\xdd\x73\x8e\xd6\xf2\x07\x68\x1f\x1e\x41\x04\x93\x42\x24\x73\xb8\xf5\xd4\x7a\x42\xee\x32\xe1\x40\x38\xa0\xe0\xd0\x83\xe6\xe0\x32\x6d\x3d\xe0\x33\x95\x26\x47\x07\xa5\xf0\x19\x48\xa1\x84\xa4\x39\xe0\xb3\xc9\xa9\xa2\x5e\x68\x75\x08\xff\xf9\xba\x4f\x22\x55\x1e\xa8\x23\x14\x5a\xbf\xc2\x60\x57\x0f\x6e\x1d\x12\x42\xce\x19\x03\x0a\x5c\xe4\x08\x5e\x83\x30\xdc\x9d\x12\x02\x80\x49\xa6\xa1\x95\x61\x9e\x6b\x28\xb5\xcd\x59\x0b\xce\x42\x44\x20\x80\x80\x32\x06\xab\x04\x21\xf7\x02\x4b\x10\x3e\x34\x86\x62\x42\x3d\xfc\xeb\x33\x8c\x32\xea\xb2\xa8\xd2\x45\x94\x6a\x1f\x65\x68\xf1\x8c\x10\x72\x67\x2b\xa0\xc0\x84\xc5\xc4\x6b\x5b\x85\x36\x39\x67\xc2\x02\xd7\xba\x79\x8e\xa7\xd4\x6e\xb5\x4c\xe9\xb2\x05\x67\xeb\xf4\xf2\xe5\xb4\x5d\x97\xb6\x0a\xa3\xd5\xcc\xb5\x44\x9f\x09\x95\xba\x9d\xcc\xdc\x35\x54\xae\xd4\xbd\x5a\x59\x6b\x79\xc1\xde\xa6\xbc\x7c\xbb\x6c\xdf\x01\x79\x93\x7e\x49\x08\xf9\x8e\x1c\x2d\xaa\x04\x1b\x2e\x2c\xf2\x57\x7d\x84\x5a\x64\xdf\x2e\x47\x19\xe6\x86\x10\x32\xc0\xc6\x0a\x53\xfc\x43\x21\x44\xba\xbe\xcd\x8f\x04\x80\x09\xce\xeb\xf3\x2a\x26\xe4\xff\xe9\x0c\x13\xdf\x10\xa5\x43\xe2\xa5\x29\xfb\x11\xf1\x9a\xa4\x09\xdb\x8a\xbc\x11\x0a\xfe\x81\x41\x7f\x47\x65\x84\x0a\xbb\x7e\xd5\xa3\xd1\x90\x26\xfb\x77\x5e\xcf\xb1\x72\xdf\x18\x42\x2e\x28\x4a\xad\x76\xfc\x2c\xc4\x00\x07\xb5\x0e\xa5\x7d\x86\x16\x3c\x5a\x29\x14\xcd\xff\xde\x80\x04\x23\x84\x8c\xd1\x97\xda\xce\x43\xeb\x81\x2c\x9c\x87\x29\x82\x56\xb9\x50\xb8\x05\xba\x92\x5a\x09\x06\xd1\xba\x46\x6f\xf3\xb3\x09\xda\x34\x8f\x2c\x4a\xed\x31\x5a\x5d\x50\xfd\xae\xae\x75\xa1\x56\x1b\x3c\x28\xa9\x55\x42\xa5\xa7\xc0\x0b\x87\xf5\x2f\x80\x0b\x25\x92\x79\xf5\xd7\x96\x47\xd6\x60\x02\x90\x30\x88\xeb\x44\xfc\xa7\xef\xdc\xd5\x8f\x55\xeb\x7c\xe7\x75\x81\xd6\x09\xad\x36\x61\x61\x18\xf5\xb8\x55\xa7\xa5\xa4\x8a\xb9\x5d\xac\xb8\x48\x37\xab\x03\xd0\x06\x15\x64\xde\x9b\xd3\x38\xce\x75\x42\xf3\x4c\x3b\x7f\xda\x6d\xb7\x8f\xe2\x12\xa7\x85\x20\x84\x7c\xb1\xba\x74\x18\xf8\x42\x2a\x9c\xe0\xed\x26\x80\x85\x60\xa8\x5f\x83\xf6\xda\xbd\xf6\xca\xe1\x44\xde\x27\xc7\xcb\xe2\x5c\xe1\xb7\xd1\x52\x24\x6a\x64\xb8\xfd\xd5\x1f\x9e\xa4\xb7\xd5\xf1\x74\xd9\xfd\x34\xca\x92\xca\xf0\xd1\x63\x36\xf8\x71\x39\x29\x62\x93\xd3\xea\xc3\xa6\xf3\xee\xdb\x53\xfa\x7d\x5c\x5e\x8c\x9f\xca\xa1\x1f\xdd\xce\xfa\xe6\xd8\x76\x2f\x1f\x91\x2f\xcd\x8f\x2b\x5e\x75\x3e\x8f\x16\xd7\xfe\xe4\xa2\x5c\x3c\x38\x0c\xb7\x25\x69\xba\x7e\xa4\x7b\x34\x3d\x99\xa4\x33\x5c\xf0\xd9\xd7\x87\xc5\xd5\xcf\xc1\xe4\xe6\xe7\x74\x38\xef\x9c\xcf\x2e\xba\xb3\xde\xf8\xeb\xf8\x53\x2a\x2f\xc7\xbd\x91\xb4\xac\x9b\xf6\x3a\x71\xe2\xc2\xcf\x92\xda\x39\xd3\xa5\x02\x8b\x8a\xa1\x45\x0b\xd4\x98\xf7\x70\x3d\x7c\xbe\x3e\xe9\x8b\xc7\x87\xd9\x3d\x5e\xaa\x39\xbf\x1f\xf0\x4e\xd5\x15\xcf\x77\x4f\x1f\xcf\xfb\x78\x3b\xa8\xae\x8e\x16\x5f\x46\x8f\x47\xc3\xc5\xe4\xc6\xc4\xb2\xa6\x20\xbf\x03\x00\x00\xff\xff\xec\x47\xf9\x07\x91\x06\x00\x00") - -func initDocQuickStartBytes() ([]byte, error) { - return bindataRead( - _initDocQuickStart, - "init-doc/quick-start", - ) -} - -func initDocQuickStart() (*asset, error) { - bytes, err := initDocQuickStartBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/quick-start", size: 1681, mode: os.FileMode(384), modTime: time.Unix(1544568089, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _initDocReadme = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x53\x4d\x6f\x13\x31\x10\xbd\xfb\x57\xbc\x9e\xb8\x90\x70\xaf\xb8\x21\x21\x7a\x00\x21\x28\xea\xd9\xf5\xce\xc6\x56\xbc\xf6\xe2\x19\x13\x56\xca\x0f\xe0\xd8\x48\x0d\x95\x90\xf2\xe7\xf2\x4b\x90\x4d\x36\x6d\xf3\x71\xa0\xd6\x1c\xc6\x4f\x33\xef\xcd\x3c\xef\x7e\x20\xef\x23\x74\x68\x70\x43\xde\xc4\x8e\x20\x11\x57\x9f\xdf\x7f\xbd\x50\x6a\xfb\xfb\x57\x89\xf5\xc3\x2e\x79\x1a\xeb\x07\x9c\x40\xcf\x55\x57\x7c\xcf\xb7\x1a\x93\xfb\xed\xfa\xae\xc4\x41\xe7\x1e\xdf\xc5\xe6\x1c\x7e\xc4\xf8\x4c\xf0\xfe\xb1\xf3\xe9\xd8\x67\xe7\x3e\x3f\x5f\x15\xc3\x11\xba\x01\xb6\xeb\x3f\xcf\x66\x1a\x19\x8e\xb9\x56\x28\xe7\xe4\xed\x70\x92\x95\x1a\x69\x37\xfb\xe4\x5f\xfd\xc9\xdb\xdd\xa1\x2b\xea\xaa\xc5\x10\xf3\xab\x44\x60\x22\x17\x66\x10\xeb\xf8\x75\xc1\x60\xf5\x0f\x02\x67\x63\x88\xb9\xcd\xde\x0f\x70\x81\x45\x7b\x4f\x8d\x2a\xcf\x5e\x3f\x05\x9d\x08\x21\x2e\xe0\x82\x50\x6a\xb5\x29\x14\x0b\x27\x16\x62\x09\xae\x6f\x19\x1d\xa5\xb9\xa7\x46\xcf\x2e\x94\xc2\xe4\x65\x47\x2d\x71\xa3\x53\x70\x61\x76\x89\xff\x3a\x4b\xb5\x04\x70\x6d\x1d\xc3\x31\xb4\xef\xad\x06\xc7\x56\x16\x3a\xd1\x14\xdf\x98\xa0\xa5\x2c\x9b\x10\x17\x01\x8d\x63\x93\x48\x5c\x0c\x17\xbb\xce\x8f\xd9\xd8\xd2\xd9\x39\xe6\xb2\x5a\x4c\xf0\xda\xcc\x4b\xda\x47\xef\xd8\x4e\x71\x6d\x29\x51\xf5\xe1\x36\xcf\x78\x3a\x6a\x7e\x8a\x82\x81\x04\x4c\x26\x17\xad\x2f\xa4\x9b\x6a\x4a\x05\x9c\x0c\x08\x51\x88\xd1\xc6\x84\x2e\x96\x8a\xd2\xf9\x62\x83\xd4\x3b\x4b\x66\x8e\x98\x05\x5c\x7e\xcd\xd8\x56\xb1\x28\x96\x12\x5a\xe7\x89\xe1\x42\x7d\x5c\x34\x2e\x91\x91\x98\x86\x4b\xa5\x80\xe9\x1b\x7d\x1b\xb3\xd4\xcc\x92\xef\x6b\xf2\x3d\x3b\x33\x9f\xb0\xe8\x24\xd5\xc6\xb7\x93\x09\x32\xeb\x19\x81\x7e\xea\xae\xf7\xc4\xb5\x2c\x91\x6e\x3a\x7a\x74\xbb\x94\x55\x89\x22\x58\x2b\xc6\x65\x27\x75\x59\xf5\x37\x00\x00\xff\xff\x16\x13\x92\x0d\x43\x04\x00\x00") - -func initDocReadmeBytes() ([]byte, error) { - return bindataRead( - _initDocReadme, - "init-doc/readme", - ) -} - -func initDocReadme() (*asset, error) { - bytes, err := initDocReadmeBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/readme", size: 1091, mode: os.FileMode(384), modTime: time.Unix(1539187719, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _initDocSecurityNotes = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x53\xd1\x6e\xdb\x46\x10\x7c\xe7\x57\x4c\xf3\xd0\xbc\x28\xb4\x5d\xd7\x72\x6c\x20\x68\xe5\x44\x36\xfc\xe2\x18\xb1\xdb\xa2\x8f\xc7\xe3\x8a\x5c\xe8\x78\x4b\xdc\xed\x89\xe6\xdf\x17\x4b\x41\x46\x81\x56\x8f\xe2\xde\xcc\xec\xce\x0c\xfe\xe7\xf7\xf8\x7c\xff\x82\x4d\x18\x7b\x87\x17\xf2\x25\xb1\xce\x78\x12\xa5\x5c\x55\x7f\x11\x34\xcd\xe8\x5d\x6a\xa1\x02\x8a\xb9\x24\x82\x94\x84\x3c\x67\xa5\x01\x9c\x91\xdd\x8e\xe0\x62\x8b\x24\x4d\xc9\xba\x42\x53\x14\x2e\x04\x64\xd9\xe9\xe4\x12\x55\xbd\xcb\x68\x4a\x97\x57\xa0\x3c\x92\x67\x17\xc2\x8c\x48\xd3\xfb\x44\x8d\xd7\x9e\x33\x5a\xce\x9a\xb8\x29\xca\x12\x0d\x79\x20\x17\xd5\x78\x1b\x23\xa8\xdc\x22\x71\x4c\x74\x60\x9a\x56\x68\x25\x7e\x54\x94\x4c\x60\xc5\x4e\x12\x5c\x9c\xb5\xe7\xd8\x61\xe0\x9c\x0d\xc2\x27\x56\xf6\x2e\xd4\x55\xf5\x1c\xc8\x65\x42\x14\x25\x68\x4f\xd8\x49\x08\x32\x71\xec\x6e\xab\xea\xd3\x91\x9d\x33\x8e\x0c\x27\x55\xcb\x52\xa6\x3d\x8a\xa2\x21\x8a\x70\xa5\x65\xa5\xb6\xc6\xa3\xda\xb8\xdd\xa1\x13\x17\x2a\x98\x48\x2f\xb1\x2d\x5e\x61\x12\x65\xa4\x84\x7c\x3a\xe6\xf2\x0c\x12\x3d\x61\x22\xf8\x20\xa6\x39\x42\x22\x1c\x2e\xea\x73\x24\x5a\xd4\xd5\x26\x85\xc7\xdd\x51\x0a\x22\xe9\x24\x69\x4f\xad\xe1\x75\xc9\x0d\xab\x45\xd0\xe0\xcc\x8f\x03\x21\x53\x62\x29\x19\x25\xb6\x9c\xbd\x1c\x28\x51\x5b\x01\x87\x12\x22\x25\xd7\x70\x60\x65\xca\x27\xad\x53\x62\x55\x8a\xc6\xfb\x20\x47\xa4\x89\xd0\xca\xb2\x1c\xbd\x91\x2f\x6a\x0b\xcf\x15\xec\xa4\xc9\x38\x0f\xdc\x52\x8b\xd6\xa9\xab\x71\x57\x14\xe3\xf1\x86\xa3\x70\x54\x1b\xb5\x99\x26\xd0\x60\x87\x58\x6c\x2a\xd9\xe0\x5d\x05\x74\xac\x7d\x69\xc0\x39\x17\x5a\x41\x12\x68\x70\x1c\xde\x2f\xf2\xbb\x6d\x59\xb3\x60\x4c\x7c\x70\x4a\x61\x5e\x76\xff\xcf\xe7\x87\xe7\x07\xec\x69\xbe\xad\x80\x4f\xf8\xf5\xee\x66\xbd\xbe\xba\xbf\xc3\xcd\x2f\xeb\xcb\xf5\xb7\x8b\x6b\x5c\x7f\xbd\xde\x7c\x5e\x7f\xbb\xc4\xd5\xf9\x66\xb3\xfd\xbc\xb9\xc1\xd5\xcd\xdd\xc5\xe5\xe6\xfe\x72\x79\xd0\xab\x8e\xf9\xf6\xec\x6c\xec\xc6\x7a\x60\xad\xa9\x2d\x67\xe3\x3e\x9f\x05\x91\x7d\x19\x7f\x93\xf1\x4b\x47\xfa\x73\x26\x97\x7c\xff\xe5\xfc\xed\x04\xf2\x8e\x71\x72\xa3\x64\xca\xa0\xe8\xd3\x3c\x2e\xc9\x5c\xb2\x16\x02\xbc\x0c\x43\x89\xec\x9d\xfd\x7b\x8c\x3d\xeb\xc7\x8c\xa7\xef\xaf\x78\xfe\xf1\xfd\xcf\xed\x13\x5e\xb6\x5f\xff\xf8\xb1\xad\x80\xbf\xb7\xaf\x3f\xc1\xac\x30\xfb\x1a\x82\x8a\x2e\x2d\x68\x92\xec\x29\xd6\xb8\x97\x84\x28\xd3\x6a\x09\xa7\x97\x96\xcc\x33\x8e\x3e\x14\xf3\x40\x05\x83\xdb\x53\x05\x2c\xfd\x9b\x08\x0d\x45\xdf\x0f\x2e\xed\x97\x10\x5a\xdc\x16\x15\x19\x13\x6b\xff\x6f\xb1\x1c\x31\x70\xb4\xc8\xc6\x63\xf0\x8b\x96\x44\x2b\x8b\x6c\x4f\x86\xc5\x21\x1c\xfb\x85\x0f\x25\x5a\x97\x3f\x60\x30\x7e\xdb\xb2\xe7\xae\xc7\x48\x69\x27\x69\x70\x16\x5f\x8e\x9a\x5c\x24\x85\x1b\xc7\x5c\x57\xc0\xe3\x0e\x7a\x2a\x0f\x9a\x20\x7e\x6f\x05\xdc\x91\x33\x96\x05\x63\x96\xb2\x3a\x45\xc7\x4b\x54\xe7\xad\xb4\x75\xf5\x4f\x00\x00\x00\xff\xff\xa9\x8a\x29\x7c\x8a\x04\x00\x00") - -func initDocSecurityNotesBytes() ([]byte, error) { - return bindataRead( - _initDocSecurityNotes, - "init-doc/security-notes", - ) -} - -func initDocSecurityNotes() (*asset, error) { - bytes, err := initDocSecurityNotesBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "init-doc/security-notes", size: 1162, mode: os.FileMode(384), modTime: time.Unix(1544511852, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlLicense = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x51\xcd\x8e\xab\x36\x14\xde\xfb\x29\x3e\xcd\x6a\x46\x42\xd3\x9f\x45\x17\xdd\x79\xc0\x09\x56\xc1\x46\xc6\xb9\x69\x96\x04\x9c\xc1\x15\xc1\x11\x76\x3a\xca\xdb\x57\x87\x64\xee\xed\xdc\x15\xc2\xe7\x7c\xbf\xc7\x8e\x0e\xb5\xb4\xa8\x7c\xef\xe6\xe8\xf0\x5c\x4b\xfb\xc2\x58\x1e\x2e\xb7\xc5\xbf\x8f\x09\xcf\xfd\x0b\x7e\xff\xf5\xb7\x3f\x20\x9b\x4d\xcb\x58\xe3\x96\xb3\x8f\xd1\x87\x19\x3e\x62\x74\x8b\x3b\xde\xf0\xbe\x74\x73\x72\x43\x86\xd3\xe2\x1c\xc2\x09\xfd\xd8\x2d\xef\x2e\x43\x0a\xe8\xe6\x1b\x2e\x6e\x89\x61\x46\x38\xa6\xce\xcf\x7e\x7e\x47\x87\x3e\x5c\x6e\x2c\x9c\x90\x46\x1f\x11\xc3\x29\x7d\x74\x8b\x43\x37\x0f\xe8\x62\x0c\xbd\xef\x92\x1b\x30\x84\xfe\x7a\x76\x73\xea\x12\xe9\x9d\xfc\xe4\x22\x9e\xd3\xe8\xf0\xd4\x3e\x10\x4f\x2f\xab\xc8\xe0\xba\x89\xf9\x19\x34\xfb\x1c\xe1\xc3\xa7\x31\x5c\x13\x16\x17\xd3\xe2\x7b\xe2\xc8\xe0\xe7\x7e\xba\x0e\xe4\xe1\x73\x3c\xf9\xb3\x7f\x28\x10\x7c\x4d\x1d\x59\x0a\xb8\x46\x97\xad\x3e\x33\x9c\xc3\xe0\x4f\xf4\x75\x6b\xac\xcb\xf5\x38\xf9\x38\x66\x18\x3c\x51\x1f\xaf\xc9\x65\x88\xf4\xb8\x96\x98\x51\x8e\x5f\xc2\x82\xe8\xa6\x89\xf5\xe1\xe2\x5d\xc4\x9a\xf5\x87\xbb\x75\x87\xac\x5f\xa8\xd0\xf4\xa8\x28\xd2\xcb\xc7\x18\xce\x5f\x93\xf8\xc8\x4e\xd7\x65\xf6\x71\x74\x2b\x66\x08\x88\x61\x55\xfc\xc7\xf5\x89\x5e\x68\xfd\x14\xa6\x29\x7c\x50\xb4\x3e\xcc\x83\xa7\x44\xf1\x4f\xc6\xe8\xc2\xdd\x31\xfc\xeb\xd6\x2c\xf7\xa3\xce\x21\xf9\xfe\x5e\xf7\x7a\x80\xcb\x8f\xab\x3e\x46\x71\xec\xa6\x09\x47\xf7\x28\xcc\x0d\xf0\x33\xba\xff\xc5\x59\x48\x3e\xa6\x6e\x4e\xbe\x9b\x70\x09\xcb\xaa\xf7\x73\xcc\x57\xc6\x6c\x29\xd0\xea\x8d\xdd\x73\x23\x20\x5b\x34\x46\x7f\x93\x85\x28\xf0\xc4\x5b\xc8\xf6\x29\xc3\x5e\xda\x52\xef\x2c\xf6\xdc\x18\xae\xec\x01\x7a\x03\xae\x0e\xf8\x4b\xaa\x22\x83\xf8\xbb\x31\xa2\x6d\xa1\x0d\x93\x75\x53\x49\x51\x64\x90\x2a\xaf\x76\x85\x54\x5b\xbc\xed\x2c\x94\xb6\xa8\x64\x2d\xad\x28\x60\x35\x48\xf0\x41\x25\x45\x4b\x64\xb5\x30\x79\xc9\x95\xe5\x6f\xb2\x92\xf6\x90\xb1\x8d\xb4\x8a\x38\x37\xda\x80\xa3\xe1\xc6\xca\x7c\x57\x71\x83\x66\x67\x1a\xdd\x0a\x70\x55\x40\x69\x25\xd5\xc6\x48\xb5\x15\xb5\x50\xf6\x15\x52\x41\x69\x88\x6f\x42\x59\xb4\x25\xaf\x2a\x92\x62\x7c\x67\x4b\x6d\xc8\x1f\x72\xdd\x1c\x8c\xdc\x96\x16\xa5\xae\x0a\x61\x5a\xbc\x09\x54\x92\xbf\x55\xe2\x2e\xa5\x0e\xc8\x2b\x2e\xeb\x0c\x05\xaf\xf9\x56\xac\x28\x6d\x4b\x61\x18\xad\xdd\xdd\x61\x5f\x0a\x7a\x22\x3d\xae\xc0\x73\x2b\xb5\xa2\x18\xb9\x56\xd6\xf0\xdc\x66\xb0\xda\xd8\xef\xd0\xbd\x6c\x45\x06\x6e\x64\x4b\x85\x6c\x8c\xae\x33\x46\x75\xea\x0d\xad\x48\x45\x38\x25\xee\x2c\x54\x35\xbe\x5c\x44\x9b\xf5\x7f\xd7\x8a\xef\x84\x28\x04\xaf\xa4\xda\xb6\x04\xa6\x88\x9f\xcb\xaf\xec\xbf\x00\x00\x00\xff\xff\x5d\x08\xc6\x03\x2f\x04\x00\x00") - -func dirIndexHtmlLicenseBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlLicense, - "dir-index-html/LICENSE", - ) -} - -func dirIndexHtmlLicense() (*asset, error) { - bytes, err := dirIndexHtmlLicenseBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/LICENSE", size: 1071, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlReadmeMd = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\x6d\x4f\x1b\x39\x10\xfe\xbe\xbf\x62\x4e\x11\xba\x8b\x74\xeb\x45\x41\xe8\x5e\x24\x0e\xa1\x20\x04\xba\xd0\xa6\x25\x15\x6a\xa3\x7e\xf0\xda\xb3\x5e\x07\xdb\xb3\xb5\x67\x1b\xf2\xef\x2b\x6f\x08\x02\x44\x69\x3e\x45\x8a\xe7\x79\x99\x79\x66\x76\x04\xda\xc6\xd2\x06\x8d\xf7\x65\xcb\xde\x15\xc5\xf2\xb7\xe5\xd7\x3f\x5a\xe6\x2e\xfd\x5b\x55\xd6\x1b\x91\x5a\x8b\x4e\x27\x61\xa9\xaa\xa5\x36\x58\x79\xa9\xf1\x60\x72\x58\x6f\xca\x79\x24\x26\x45\xee\x60\x72\x38\x93\x75\x2a\x6b\xd7\xa3\x48\xdf\xcd\x69\xe2\x8d\xc3\x93\xc6\x49\x2e\xd3\xb7\x5e\x46\x1c\x6f\x39\x33\x65\x17\x84\xa5\xf1\x1e\x3a\x5d\xa4\x15\x2a\x2e\xaf\xe6\x17\x37\x7b\x52\x37\x03\x7c\x1f\xf2\x26\x22\x06\xd2\x58\x1e\x4c\x8e\x32\x6e\x2f\x81\x35\xd6\xaa\x95\x2c\x76\x60\x11\x90\xab\x53\xd5\xca\x10\xd0\xa5\x93\x07\xaa\x41\x3e\xb1\x0c\x5a\x46\x5d\x46\x94\xda\x23\x28\xf2\x9d\xb3\x32\xf0\x2f\x7c\x3d\xe2\x1e\x80\xe5\xfb\xff\x4b\x93\xe5\xde\xf4\x96\xe9\x8c\xe5\xb6\xaf\x85\x22\x5f\x7d\xb4\xaa\x95\x51\xcf\x2c\x73\xf5\xc2\xc8\xb8\x28\xfe\x83\x73\x1b\x51\x31\xc5\x0d\x38\x9b\xd8\x06\x03\x97\x8b\xeb\x19\x34\x14\xc1\x50\x99\x7b\x00\x23\x19\xd7\x72\x93\x8a\x62\xd1\xda\x04\x11\x3b\x02\x9b\x20\x10\x43\x8d\xd0\x27\xd4\xb0\x65\x76\x14\x50\xc0\x15\xff\x9e\xb6\xff\xd6\x1b\xe0\x16\x77\x78\x50\xa4\x11\x6c\xd8\xf1\x0e\x95\xce\x65\x0e\x8f\xd1\xa0\x06\x1b\x98\x9e\x21\x3a\xa9\xee\xa4\xc1\x3f\x81\x82\xc2\x67\x2f\xad\x4c\x50\x23\x06\xc0\x7b\x8e\x52\x31\x6a\x68\x22\xf9\x47\xee\xa2\xd8\xc5\x9e\xc7\xb1\x05\x89\xdd\x52\xe4\xdf\xea\x83\x6f\xfe\x9e\xac\x3e\x4d\xff\xf9\xd2\xd3\xcd\x62\xfa\xee\xf3\xf1\x71\xbb\xb9\x3f\xba\xf4\xf6\x1c\xf5\xd1\x6d\x68\x2f\xce\x8f\xe7\xd3\xbf\xa6\x8b\x9b\xb9\x9f\x4e\x2a\x25\x3b\xd1\x05\x33\x2e\x8a\xd1\x08\xa6\x14\x38\xda\xba\x67\x2c\x8a\x0b\x44\x07\x79\x0b\x80\x09\x56\x64\x03\xd8\x20\xe0\xcc\x39\x58\xa3\x53\xe4\x51\xc0\x19\x18\x22\x0d\x9d\x93\x6a\xa8\x4a\x2c\x23\xe7\x11\x2e\x73\x4b\x36\xa5\x1e\xd3\xab\xe1\x0d\x46\x9f\x5f\x65\xb5\x2d\x1f\x8b\x27\x69\x24\x3b\x04\xd8\x48\xe7\x12\xf4\x41\x63\x1c\x66\x95\x8f\x05\x96\xd3\x3c\x75\x6a\xb2\x67\xdd\x2b\xfe\xb9\x8e\x22\xef\xfb\x60\x79\x53\xd5\x8e\xea\xca\xcb\xc4\x18\xab\x1c\x5a\x49\x4d\xa9\xb6\x70\xe1\x75\x96\x1e\x8d\x46\x70\x2b\x03\xe7\x6e\x5a\xa9\xee\x80\xc2\x20\x77\xfa\xe2\xa3\xa1\x74\x10\x51\xae\x8d\xe5\x41\x67\x55\x63\x3e\x13\xf5\x38\xbe\x21\xac\xd2\xd8\x66\x27\x67\xbd\x79\xf2\x2c\x8c\x6d\x5e\x5f\xeb\x37\x1d\x3f\xc0\x6d\x30\xd9\xee\x90\xd8\xcc\x2a\x0c\x09\x8b\xe2\xfa\x6a\xf1\x23\x00\x00\xff\xff\x27\xdb\x5d\x6a\xe9\x04\x00\x00") - -func dirIndexHtmlReadmeMdBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlReadmeMd, - "dir-index-html/README.md", - ) -} - -func dirIndexHtmlReadmeMd() (*asset, error) { - bytes, err := dirIndexHtmlReadmeMdBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/README.md", size: 1257, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlDirIndexUncatHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x55\x4d\x6f\xe3\x36\x10\xbd\xfb\x57\xcc\x2a\x40\x6f\x12\x9d\x2c\xba\x6d\x1c\xd9\x05\xf2\xd1\x6e\x0b\x77\x93\x36\x01\xba\xe9\xa5\xa0\xc4\xb1\xc8\x9a\x22\x05\x72\x1c\x3b\x15\xfc\xdf\x0b\x52\xf2\xd7\xc6\xc1\xe6\xb2\x17\x89\x1e\xbe\x99\x79\xef\x69\x06\xce\xdf\x5d\xdf\x5e\x3d\x3c\xde\xdd\x80\xa4\x5a\x4f\x06\xf9\xe6\x85\x5c\x4c\x06\x00\x79\x8d\xc4\xa1\x94\xdc\x79\xa4\x71\xb2\xa0\x59\xfa\x63\x02\x2c\x5e\xbd\x4b\x53\x78\xb8\xbd\xbe\x1d\x81\x47\x14\x40\x12\x3d\x42\x0a\x35\x7f\x2e\x10\xb4\x9a\x63\x08\x81\x27\xee\x08\x1d\xe0\x0a\xac\x8b\x91\x25\x16\x0b\xf5\x13\xa4\x69\xac\xa2\x95\x99\x83\x43\x3d\x4e\x3c\x3d\x6b\xf4\x12\x91\x12\x90\x0e\x67\xe3\x84\xa9\x66\xe6\xd9\x1f\xf5\xe7\xcb\x1f\xee\xa6\x7f\xfe\xf5\xf1\x43\x71\xa5\x96\xee\x17\x79\xf6\xbb\xbb\xbc\xfc\xf7\xd3\x7c\xfa\xf4\xbe\x7e\x7c\xff\x9b\x78\xfc\x7c\xa5\xe6\x8f\x7f\xdf\x2f\xa7\x37\xd7\xac\xb0\x96\x3c\x39\xde\x64\xb5\x32\x59\xe9\x7d\xb2\xa3\x2b\x51\x37\xe8\x80\x2c\x94\xd6\x78\x72\x8b\x92\x80\xa4\xf2\xa0\x3c\x48\x74\x38\x02\x49\xd4\xf8\x11\x63\x95\x22\xb9\x28\xb2\xd2\xd6\xac\x74\xcf\x0d\xa9\x15\xc3\x55\xc3\x0a\x6d\x0b\x56\x73\x4f\xe8\x98\xaa\x2b\xf4\x0f\xf6\xea\xfe\xfe\x9a\x13\x67\xa5\x35\x4f\xe8\x28\xab\xec\x37\x93\xa6\x02\xeb\x28\x29\xd6\x8f\x55\xc3\x29\x33\xdc\x39\xbb\x84\x76\xa9\x04\xc9\x11\x0c\x9b\xd5\xc5\x3a\xc4\x1b\x2e\x84\x32\x15\xb4\x50\x73\x57\x29\x33\x82\xd3\xe1\xe6\xf2\x24\x7c\x63\x74\xd0\x0e\x00\x00\x0a\x5e\xce\x2b\x67\x17\x46\x8c\xe0\x64\x38\x1c\x5e\x0c\x00\x22\x4a\xdb\xca\xf6\x18\x89\xaa\x92\x34\x82\xb3\xef\x9b\xd5\x45\x8c\xec\xaa\x76\x91\xd8\x34\x28\x4b\x03\xd5\x3e\xad\x23\x75\xfa\xe1\x4b\x88\xe4\x5e\xf6\x90\xd2\x6a\xeb\x46\x70\x72\x7e\x7e\xbe\xc1\xe4\x6c\x2b\x2f\x27\x45\x1a\x27\x6d\x0b\xd9\x1d\x27\x09\xeb\x75\xce\xba\xd0\x20\x67\xdd\xa4\xe6\x85\x15\xcf\x11\x2b\xd4\x13\x28\x31\x4e\x3a\x75\x09\x94\x9a\x7b\x3f\x4e\x9c\x5d\x46\xd3\x7a\x44\x1f\x2d\xad\x4e\x57\x3e\x3d\xeb\xaf\xf6\xd2\x83\xec\x6d\x72\xa4\x1b\x23\x93\xef\x4c\xe1\x9b\x8b\x9c\x09\xf5\xd4\x97\xdb\x1c\x77\x87\xc2\xb1\x2d\x95\xc3\x46\xa7\x67\x47\x48\x34\xdc\xa0\x86\xf8\x4c\x05\xce\xf8\x42\xd3\x21\x9f\x7d\x5c\x1a\x74\x29\x53\x6d\x11\x71\x0e\x9c\x35\xd5\xe4\x57\x23\xc2\x92\xcd\xe0\xc0\xa8\xfe\x72\x8b\x6e\x5b\x50\x33\xc8\x3e\x06\xf3\xd7\xeb\x5d\x91\xbd\x46\xdb\xaf\xb3\xd7\x24\x26\xbe\xcc\xda\xf9\xd0\x43\xd0\x88\x1d\xe0\xe0\x3a\x27\x5e\x68\xdc\xf4\xe8\x7e\xc4\x67\xea\xc9\xa9\x06\xc5\xbe\x24\x72\xfb\xad\x73\x12\x9b\xbc\x6e\xd2\x0f\x88\x1d\x21\x1f\xa7\x2f\x9e\xfe\x29\x34\x37\xf3\x23\xdf\x6d\xc3\x90\xc4\x2b\x9d\xfa\xdd\xf9\xb2\x15\xef\x17\xb8\x6d\xb3\x4b\x5e\xce\xa7\xca\xcc\xd7\xeb\x64\x92\x65\x39\xe3\x5f\xa9\x3c\x39\x8c\xe5\x6c\x5f\x65\xdb\x82\xe3\xa6\x42\xc8\xa6\xca\x53\x58\xda\x7d\x9f\x5f\xf8\xf1\x16\x03\xda\x36\xbc\x7e\x76\xb6\xbe\x59\x11\x64\x9f\x78\x8d\x81\xea\xdb\xad\x78\x55\xfa\x76\xbe\x92\xb8\x95\xa1\x72\x1c\xb6\xaf\x3a\x10\xd0\xf7\xea\xbf\x0e\xfd\x9a\x19\x2f\xc7\x28\xce\xc9\xf1\x7d\xcb\x59\xb7\xfa\x39\xeb\xfe\xba\xfe\x0f\x00\x00\xff\xff\xdb\x20\xe5\x87\xd2\x06\x00\x00") - -func dirIndexHtmlDirIndexUncatHtmlBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlDirIndexUncatHtml, - "dir-index-html/dir-index-uncat.html", - ) -} - -func dirIndexHtmlDirIndexUncatHtml() (*asset, error) { - bytes, err := dirIndexHtmlDirIndexUncatHtmlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/dir-index-uncat.html", size: 1746, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlDirIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\xfc\xf7\xce\xe4\x48\x92\x27\x8a\xfe\xbf\x4f\x91\xd3\x83\x45\x77\x4f\x54\x16\x19\x94\xc1\xac\xdd\xbe\x43\xad\x83\x5a\x5e\x1c\x2c\xa8\xb5\xd6\x2c\xd4\xbb\x1f\x64\x96\xca\x9a\xee\x1e\xcc\x60\x0b\x38\xf5\x11\x1f\x82\xee\x6e\x66\x6e\xee\x6e\xf6\x33\x73\x3a\x23\xfe\xd7\xbf\x30\x1a\x6d\x07\x3a\xfb\xa1\x5c\xbb\xf6\x6f\xff\xe3\x7f\xfd\xfc\x91\x45\xe9\xdf\xfe\xc7\x87\x0f\xff\xab\xcb\xd6\xe8\x43\x52\x46\xf3\x92\xad\xff\xfb\x4f\xdb\x9a\x7f\x7c\xfd\xe9\x03\xf0\xa5\xe9\x5f\x3e\x7e\xfc\x50\x66\xed\x98\xcd\x1f\xd6\xe1\x43\x32\xf4\xcb\x3a\x6f\xc9\xfa\x61\x2d\xab\xe5\x43\xb5\x7c\x28\xb3\x39\xfb\xf4\xa1\x5c\xd7\x71\xf9\x04\x00\x45\xb5\x96\x5b\xfc\x6d\x32\x74\x40\x32\x5f\xe3\x5a\x9d\x40\x76\x8e\x40\xdc\x0e\x31\xd0\x45\xcb\x9a\xcd\x40\xd5\x15\xd9\x62\x0f\xb4\x65\x31\xd1\x1a\x01\xc9\xd0\xef\xd9\xbc\x7e\x5b\x0c\x1f\x3e\x7e\xfc\xd2\xe3\xb2\x5e\x6d\xf6\xf9\xee\xb3\x96\xdf\xe7\x43\xbf\x7e\xcc\xa3\xae\x6a\xaf\x4f\x4b\xd4\x2f\x1f\x97\x6c\xae\xf2\xef\x3e\x1e\x59\xdc\x54\xeb\xc7\x35\x3b\xd7\x8f\x4b\x75\x67\x1f\xa3\xb4\xde\x96\xf5\xd3\x13\x04\xff\xe7\x77\x1f\xbb\xe5\x1f\xb7\xfc\x10\x0f\xe9\xf5\x7d\x17\xcd\x45\xd5\x7f\x02\x7f\x88\xbe\x8f\xa3\xa4\x29\xe6\x61\xeb\xd3\x8f\xc9\xd0\x0e\xf3\xa7\x75\x8e\xfa\x65\x8c\xe6\xac\x5f\x7f\x88\x3e\x45\xc9\x5a\xed\xd9\x37\xd1\xa7\x72\xd8\xb3\xf9\xfb\x61\x5b\xdb\xaa\xcf\x3e\x81\x3f\x2c\xeb\x3c\xf4\xc5\x8f\xda\x1d\x59\x55\x94\xeb\x27\x1c\x04\x7f\x88\xb7\x75\x1d\xfa\x4f\x9f\x3e\x76\xc3\xfd\x31\x1f\x92\x6d\xf9\x58\xf5\x7d\x36\x7f\x53\xf5\xe3\xb6\xfe\x7d\xfd\xf7\x63\x94\xa6\x55\x5f\x7c\x02\xbf\x8b\x87\x39\xcd\xe6\x4f\xe0\x0f\x6b\x14\xb7\xd9\xf7\x3f\x16\x3f\x2e\x63\x94\x7c\xdd\xfe\x59\xcb\x36\x1a\x97\xec\xd3\xcf\x37\x3f\xac\xe9\xaf\x52\x7e\x00\xfe\xed\x5f\x3e\x58\xc3\x36\x27\xff\x78\x51\x4a\x34\x1e\x81\xcf\xf3\x8a\x7e\x8c\x87\xaa\xcd\xe6\xb1\x8d\xd6\xec\x37\xeb\xb3\xcc\x09\x90\x2c\x0b\xd0\x45\x55\xff\x6d\xb2\x2c\x1f\xfe\x0d\xf8\xf7\x2e\x4b\xab\xe8\xc3\x38\x57\xfd\xfa\xfd\xbf\x7d\xf3\x29\xca\xd7\x6c\xfe\xe6\x53\x9c\xe5\xc3\x9c\x7d\xff\xe3\xbc\xfd\x2b\x08\x82\xff\x52\x75\xe3\x30\xaf\x51\xbf\x7e\xf7\xe3\xec\x97\x51\x3a\x1c\x9f\xfa\xa1\xcf\xbe\x6a\xfa\x75\xca\x3f\x81\x1f\xbe\xe6\xf9\x79\x4d\xe3\xe1\xfc\x67\xac\xff\xac\xe5\x87\xe8\x9b\xe8\xd3\x5e\x2d\xd5\x9a\xa5\xdf\x7f\xe9\x3b\xcd\x92\x61\x8e\xd6\x6a\xe8\x3f\x6d\x7d\x9a\xcd\x9f\xd7\xed\x87\xe8\xff\x5f\xce\x59\xfe\xff\xfc\x38\x80\xef\x93\xa1\x5f\xb3\x7e\xfd\xf4\xa7\x0f\x7f\xf9\xd3\x87\x68\x5d\xe7\xbf\x7c\x6e\xfd\xeb\x87\x3f\xfd\xf5\x4f\x3f\xac\x9f\x97\xa6\xc8\x3e\xc6\x73\x16\x35\x1f\xab\x7e\xa9\xd2\xec\x53\xb4\x0f\x55\xfa\xc3\xb7\xbf\x59\xa0\xbf\x5b\x8f\xaf\x94\xfa\x91\xf2\xc3\x9a\xfe\xbd\x99\xfd\x6b\x9e\xe7\x5f\x51\xfe\xf0\xef\x3f\xd9\x79\x92\xfd\xc6\xe2\xff\xcc\xb7\xd7\x58\x56\x9f\xdd\xee\x83\x10\xb5\x79\x5b\xf5\xc5\xf2\xe7\xef\x96\x39\xf9\xb4\xcd\xed\x5f\xbe\xfd\x16\xf8\x4c\xbd\x00\xc5\x2f\x64\x1f\xcb\x9f\xc9\x3e\xce\x59\xb1\xb5\xd1\xfc\x6d\x36\xac\x7f\xfd\xef\xb3\xfc\xff\xfe\xb5\xca\xf2\xea\xfc\xeb\x87\x7c\x98\xbb\x68\xfd\xcb\x9f\xb3\x2e\xce\xd2\x34\x4b\x3f\x0e\x63\xd6\xaf\xd7\x98\xfd\xf9\xaf\xdf\xfc\xd7\x25\x1e\x43\x9e\x43\xbf\x0a\xfb\x52\xfc\x6f\x0b\xf8\x2d\xff\x7f\x8b\x7d\x5d\xbf\xe2\x5e\xe7\x2d\xfb\x6f\x8f\x60\xd9\x8b\x7f\xfd\x95\xe0\xff\xfc\x42\xf0\x53\xfb\xaf\xd2\x97\xbd\xf8\xf3\x5f\x7f\xf8\xb7\xef\x7f\x63\xcf\xd5\xfd\xd9\x41\x7f\x32\x9a\x78\x38\xbf\xfb\x02\x05\xff\xb8\xe9\x1f\xd6\xfe\xf0\x1f\xdc\xee\x77\x96\xfe\x2b\xd8\x7e\xc6\xcc\x4f\x4f\x70\x3c\x7f\x05\xd9\x68\xfc\x58\x56\x45\xd9\x7e\xc6\xb9\x9f\x0c\x78\x2e\xe2\xe8\x2f\xe0\x37\x5f\xae\xbf\xfe\x08\xab\x5f\x1b\xee\x9f\x84\xac\xdd\xb3\xb5\x4a\xa2\x0f\xef\x6c\xcb\xfe\xf4\xcd\x2f\xe5\x6f\xc8\xb9\x8a\xda\x6f\xbe\xc2\xf2\xaf\x7a\x45\xc6\xf3\xbb\xcf\x9e\xfa\xb1\xfc\x11\x53\x9f\xdf\x22\xd0\x0b\xc5\x9f\x08\xfc\xdd\x4f\x7e\x03\xc3\xf0\x77\xff\xd0\x9b\x7e\x88\xbe\xff\x85\x04\x8f\x62\xfc\xbb\xff\x08\x03\x9f\x11\xe3\x87\xe8\xd3\x17\xf4\xfd\x05\xd1\x7f\x62\x81\x60\x14\xc2\x93\xbf\x63\xf9\x0a\x39\x7e\xe4\xfb\x25\x02\xac\x65\xd5\x7f\x48\x87\x75\xcd\xd2\xef\x7e\xae\x43\xc7\xf3\x43\xb4\xad\xc3\x87\x9f\xe7\xed\x47\xa0\x9f\xab\xbe\xf8\x51\xcf\x9f\x29\x3f\x0e\x79\xbe\x64\xeb\xa7\x8f\xd0\x78\xfe\xf0\xed\x3c\x1c\x3f\x45\xa4\x8f\xf3\x97\x41\x7f\x7c\xa2\xe3\xf9\xdd\x4f\x55\x6d\x96\xff\x54\xf3\xc3\xb7\xc9\xd0\x7e\x3c\x97\x8f\x4f\xe8\x9b\x9f\x6f\xa1\xef\xc7\x61\xa9\xbe\xe8\x3a\x67\x6d\xf4\x39\x58\x7d\xd7\x55\xfd\x2f\xd3\x37\x9e\xdf\xfd\x14\x1b\x7e\x92\xfd\x45\xf4\xcf\x55\x5f\x64\xff\x73\xd1\x79\x3b\x44\xeb\xa7\xcf\x44\x5f\xb5\x7f\x7f\x54\xe9\x5a\xfe\x18\x4c\x7f\x25\xfd\xa9\x12\xfb\x16\xfb\xf1\x0f\xff\x9f\x3f\x87\xb1\xff\x2c\xbe\xfe\x84\xa4\xbf\x4a\xfc\xae\x8b\xce\x8f\xbf\x29\x7e\x99\x83\x78\x58\xd7\xa1\xfb\x04\x81\x9f\x35\xfd\xc2\xf3\xb7\xf5\xb3\xc5\xfd\x6d\x9d\xff\xf6\x55\xf4\x7b\xfd\x73\xe3\xf9\x9c\x62\x54\x49\xd4\x7e\x8c\xda\xaa\xe8\x3f\xad\xc3\xf8\x73\x3c\x5d\x87\xf1\xf3\x34\x7d\x58\x86\xb6\x4a\x3f\xfc\x6b\x9a\xfe\x0c\xf0\x1f\x97\x75\xae\xc6\x2c\xfd\xa5\xab\x4f\xfd\x5a\x7e\x1c\xf2\x8f\x9f\x81\xe3\x2f\x43\x9a\xfe\xf5\x1f\xa1\x3a\xf1\xf9\xfa\xe1\xdb\xcf\x50\xf0\xf1\x73\x7c\x99\x87\xf6\xa7\xa8\x3f\xb6\x51\x92\x95\x43\x9b\xfe\x6a\x75\x04\x41\x7c\x37\x7c\x0e\xf0\xeb\xf5\xe9\xf9\x1f\x98\x3e\xa7\x30\x5f\x92\x86\x7f\xc2\xf8\xc3\xb7\x63\xd4\x67\xed\xf7\x7f\x3f\x45\xff\xd8\x3d\x7e\xce\x2f\x7e\x1d\xeb\x57\x2b\xf1\xf3\x64\xcc\x51\x5a\x6d\xcb\x27\xe4\x2b\xdf\xff\x2a\xe4\x82\x1f\x3e\x33\x7f\xfe\xff\xca\xf9\xbf\x05\xd1\xbf\x7e\xf7\x5f\x21\xfa\x49\xe1\x8f\x9f\x93\xce\xaa\x2f\x7e\x59\xb5\xcf\x48\xf3\xe1\x8b\x59\xfe\x82\x46\x5f\x86\xf2\x9f\x2a\xba\x0e\xe3\x17\xeb\xfd\x59\x63\xf8\x57\xf6\xcf\x4d\x5f\x6c\xfd\xab\xb6\x9f\xfa\xfe\xdb\x4f\x06\xf7\xdb\x39\x03\x7f\xdb\xfa\xa9\x8d\x96\xf5\x63\x52\x56\x6d\xfa\xfd\x6f\x34\xfa\x3b\xa9\xbf\x55\xf8\x3f\xea\xf3\x4f\xa5\xfe\x68\x50\xbf\xa9\x98\xff\xbf\xee\xf4\xc3\x9a\x7e\xca\xab\xf9\x9f\xe8\xf0\x3b\x76\xf2\x5f\x1e\xe7\x6f\x3b\xf9\x49\xf2\x57\x2a\x7e\x16\xfd\x55\xf1\x4b\x92\xf5\xab\x47\xff\xbc\xa6\x1f\xd3\x2c\x8f\xb6\x76\xfd\x2a\x5b\xfb\xec\x0f\x5f\xbc\xfc\x37\x04\x7f\xfb\x0f\xd6\xf9\x9f\x47\x1b\xf4\xf3\xf5\xdd\x3f\x90\x39\x0f\xc7\x4f\x61\xfa\xcb\xed\x4f\xa1\x3a\xad\x96\xb1\x8d\xae\x4f\x5f\x86\xf2\xdd\xaf\x69\xe7\x9f\xbe\x62\xf8\x3e\x69\xb3\x68\xfe\x14\x0f\x6b\xf9\xc3\xbf\x7f\x76\xfe\xbd\xca\x8e\xcf\xe9\xe1\x4f\xf0\x98\x66\x7b\x95\x64\x3f\x82\xe3\x0f\xdf\x56\x63\xbe\x7c\xfc\x3f\x71\x1b\xf5\xcd\xd7\x28\x54\x75\x51\x91\x7d\x49\xf3\xfe\x9c\x46\x6b\xf4\xe9\x4b\x19\x18\xfb\xe2\xbb\x38\x5a\x32\x0c\xf9\xa6\x72\x29\xcd\x3c\x40\x99\x2f\x06\x92\x24\xc9\xb7\xe5\x94\xac\x53\x90\x24\x49\x7d\x2e\x92\x06\x4d\x06\x9f\x3f\xf3\x17\x40\x94\x9f\x6f\x78\xdf\xe4\x3c\xc1\xb4\x63\x28\x04\x53\x88\xbb\x42\x83\xa2\x42\x9e\xa8\x42\x8b\x92\x62\x8f\xeb\x43\x57\x6a\x03\xcf\x44\x93\xa4\x6d\xf5\xcf\x0c\x1e\x25\x99\x2c\xe7\x64\xef\x89\x75\xea\xa7\x72\xb2\xa4\xd1\xa7\x4f\xd5\x25\x91\xf6\x12\x59\xef\xc4\x1c\x51\x66\x79\x87\x3d\xf9\x25\xa6\xe1\x55\xc9\x0f\x09\x28\x6d\xa0\xc0\xdd\x96\xee\xb7\x78\x3a\x7d\xea\x28\x00\x03\x29\x0d\x1d\x50\x4a\x59\x41\xfb\x70\xa3\x96\x7d\xe3\x73\x0f\x55\xf9\x6b\xbb\x55\xbc\xbe\xd3\xdd\xdd\x4c\x94\x29\x82\x3e\x7c\xe4\x04\x11\x55\xb8\xbb\xa2\x2b\x21\x13\x5b\xbf\x21\x82\x72\x64\x22\x3c\x79\xc1\x29\x62\x3a\x33\x2c\xe9\x05\xe6\x65\xd2\xaf\xa7\x86\x20\x74\xa2\x51\xb7\x4e\xe2\x5d\xce\x5e\x9b\x70\xe4\x78\xbf\x1a\x0d\x52\x27\xfd\x75\x68\xa7\xd8\xe6\xa7\x46\xbf\x83\x48\x71\x8b\x18\x4b\xfc\xb8\xb1\xd3\x52\xf2\x27\xc8\x12\xdb\xb7\x4a\x83\xa7\x38\x95\x42\x72\x33\x71\xf5\xd2\xdc\x7b\x54\x2c\x27\x02\xbd\x2c\x36\xf3\xae\x2a\x14\x61\xaa\x9f\x6c\xa2\x87\xfd\x91\xe3\x45\xcc\x88\x73\xe0\x9a\x17\x5b\xf5\xdb\x5c\x63\xb5\x4d\x09\x97\x88\x8f\x93\x3b\x73\xc6\xc4\xc6\x2b\x66\xb3\x5d\x48\xec\xcf\xb7\x49\x4a\x6f\xfa\x79\xda\xc1\x29\x1a\x25\xa0\x76\xa6\xd3\x76\x9c\xc1\xc2\x93\xa7\x79\xcf\x7e\xa2\x20\xdb\x6b\x9e\x00\xbc\x16\x92\x0b\x1e\x91\xbb\x37\x9c\xc8\x66\x61\x2c\x4c\x08\xdb\x5e\xf2\x4d\x76\xac\xaf\x9d\x58\xd1\xb3\xae\xb4\x79\xd4\xdd\x35\xa6\x44\x99\x7a\xc0\x87\x14\xb3\xb8\x91\xd6\x8e\x56\xe1\x4a\x2c\x74\xb9\x11\x99\x01\x60\x73\x02\x70\x74\x53\xa6\x06\xba\x4b\xac\x72\x21\x0b\xd3\x8c\x15\xca\x47\x16\xe6\x81\xe8\x16\x0f\x26\xc4\x76\xbc\x24\x78\xc6\xd5\x8e\x50\x3f\x00\x7d\x38\xe5\x0d\xc8\xc9\xe2\x20\x95\x98\x21\xfd\x1c\x67\x52\xa3\xf9\x62\x28\x96\xe3\x6a\xa6\x8c\xd2\x81\x28\xfe\xef\x3f\xff\xf5\x6b\x17\x99\xb3\x31\x8b\xd6\x4f\xfd\xf0\xd3\xdd\xd7\x6d\x5f\x72\xbc\xcf\xe6\x1f\x55\xfd\xcf\x36\xfc\x79\x97\xf5\xc7\x32\xe1\xae\xfc\xc9\x84\xc7\xc5\xb9\xd7\x1d\x7c\x92\x81\x9e\xa7\xa5\x76\x01\xbe\x1d\xbe\x40\xd7\x7d\xba\x03\x3d\xb5\x24\x74\x1b\x93\x53\x1c\x2a\xcb\xce\x1e\x45\x2a\x3b\xc2\x4b\x4c\xce\x32\x9d\xc6\x0a\x0b\x67\x4f\x2e\x6d\xb3\x27\x59\x55\x96\x08\x19\xac\x2c\xc9\xac\xe5\x72\x1c\xe5\x0d\x20\x62\xb3\x96\x79\xe7\x17\x94\xe0\x4a\x00\x34\xca\x9a\x43\xe9\xeb\x81\xa2\xe8\xbd\xab\xc4\x3b\x12\x9f\xc3\x1c\xa1\xcb\x1e\x5f\x84\xd6\xc7\x0e\x4b\x9d\x05\xd3\x8a\x72\xe5\xd5\xbe\x91\x29\xd7\x93\x00\xfc\x27\xbe\xb0\x6b\xa2\x07\xd0\xbc\x0a\x16\x81\x01\xc2\x06\x9a\xbb\xef\x2b\xf7\x23\x71\x6e\xf5\x85\xdf\x56\xb9\x88\x10\xc1\x8c\x02\x1d\xac\x08\x8b\x51\xc3\x89\x88\xe1\x6d\xf7\x31\x73\xe2\x2e\x8e\xf0\x75\xa9\x59\xf9\x51\xb0\xa0\x00\x61\xf0\x4b\x26\x4a\xf0\x45\xc2\x95\xc0\xbb\x71\x6d\x1f\x78\x81\x05\x1d\x79\x1d\x00\x55\x64\x89\xf0\xe6\x79\xa9\xde\x73\xa3\x14\xf3\x2e\x17\x39\x86\xf4\xa5\xb1\xde\xb6\xa2\xc2\xd3\x5a\xe4\x5c\x11\xd1\xc1\xb1\x4d\xd6\x42\x32\xc0\xb3\xe7\x32\x34\xd3\x34\x10\xd2\x0e\x76\x84\xdc\xa6\xb4\xe8\x9e\x7e\x79\x1a\x9d\x4e\xc5\xd1\xdf\xdc\x89\x00\xe2\x35\x8e\x87\xe9\xbe\x1f\x7e\xe0\x2f\x59\x32\x85\xe4\x73\xa4\x90\x57\xd6\x90\xfd\x41\x00\x08\x1f\x9e\xb0\x02\x22\x6f\x80\x1f\xec\x83\xad\x7d\x24\x79\x0b\xe8\xde\xea\x79\xbd\x92\x62\x30\xbe\x12\x6f\x36\xb6\xf5\x9c\x69\x54\x1d\x52\xd8\x5d\x7c\xd7\x56\x39\x6b\x5a\x23\xf6\x51\xb4\x44\x5a\x46\xce\xc9\x42\xab\x1f\x56\x1c\xde\x07\x55\x15\xad\x12\xbc\xa3\xcb\xcb\x04\x9e\x97\x46\xbf\x15\x6d\x3b\xea\x86\x55\x2a\x3b\xee\x68\x22\x95\x84\x51\x8c\x78\xd2\x5a\x98\x66\xe0\x0c\x5e\x32\x0e\xc1\x53\x13\xc1\x93\x02\xad\x73\xea\xa7\x56\xef\xc6\xb0\x6e\xd7\xba\xa2\xbd\xa0\x2a\x2c\xdf\xd0\xd7\x89\x19\x0e\xfc\x42\xea\xa3\x71\xc8\x14\x5a\x4e\x29\xb6\x00\xc3\x2a\xc3\xb5\x00\x5e\xb3\x70\xdf\x86\x76\x5b\x11\x57\x9e\xc6\x4c\x62\x41\x61\xa8\x86\x30\xd4\xb4\xd3\x16\x3d\x4d\x92\xbb\xcc\x51\x83\xef\x47\x42\x4e\xce\x16\x1d\x32\x2c\x58\x5c\x9e\x54\x70\xa2\xdc\xed\x0e\x27\x6b\x88\xea\xbc\xc5\x06\x8a\x90\x47\xa9\x31\x2b\xe3\xb8\x9b\x04\x48\x38\x0c\x91\xb2\x85\x85\xab\xd8\xa5\xf6\x45\x1a\x06\x05\xc7\xe1\xfb\xd5\x12\x2b\x8e\x8a\x5c\x09\x4a\xaa\x93\xba\xf2\x32\x94\x8b\xa3\x4f\x66\xd1\x37\x11\xb8\x06\x45\x51\x04\x23\x2d\x34\x32\x6f\x2f\x82\x88\xbe\x35\x75\xa8\x29\xa4\xb2\x45\x9a\xce\xc6\xdd\x47\x61\x52\x64\x73\x63\x8d\x9e\x95\x43\x77\x83\x5d\x51\x5d\xca\xce\x15\x64\x16\x69\x2a\x73\xe5\x26\x0d\x53\x0c\x44\x39\x70\x1d\x40\x0a\xdf\xf6\x5b\xc5\x9c\x26\xd2\xf2\x6a\xc1\xa0\xc8\x29\xd2\x94\x8c\xfb\xfb\x31\xfb\x9b\x1e\x3c\xdc\xfe\xae\x57\x02\xa0\x6f\x92\x8c\x3b\xa5\xa6\xe7\x9c\xaa\xcc\xe2\xf7\x85\x88\x28\x4a\xfe\x58\x00\xd1\xff\x02\x10\xa0\xd3\x3c\x75\x16\x64\x83\x7c\x9d\x37\xb7\xdd\x49\xa7\x29\x5d\x56\x1f\xa8\x64\x61\x07\xc5\x94\xa8\x00\x7c\xaa\xba\x50\xd3\x0b\x9c\xec\x43\x91\xd8\x00\x32\x49\xd2\x1b\x7d\xef\x42\x39\x0c\x65\xa2\xf5\xfa\x81\x04\x2c\x2f\x36\x74\xf9\x18\x14\x9e\x92\x3b\x38\xc4\xfb\x10\x4e\xbb\x0c\xda\x6b\xad\xb4\x93\xba\x92\xa4\x3d\xbc\xf5\x5d\x53\x5f\x80\xc0\x43\x13\x0c\xa1\xcc\x0c\x37\xca\x88\x07\xcf\x2a\x1e\xc5\xb3\x5e\x10\xb9\x34\xa8\x30\xdf\x5d\x6c\xc1\x65\xd4\x8d\xc1\xb8\xce\x86\x1c\x0d\xdb\x84\xbf\x16\xfd\x19\xa1\xcf\xae\xca\x35\xe6\x8a\xf7\x9b\x7d\x75\x37\x1d\xcf\xe4\x60\x33\xa2\x5d\xaa\x03\xef\x87\x55\x88\x04\x56\xb5\xcd\xf9\x23\x7c\xfa\xd9\x46\x4f\x12\xae\xd5\x8f\x45\x86\x6b\x23\x79\x93\x5d\xf1\x3a\x1b\xde\xc0\x9f\x5d\x90\xd5\x09\x49\x21\xc4\x3e\x76\xd9\x76\x4b\x49\xd2\x82\x8f\xd4\xa9\x31\x59\x24\xf7\x5c\xa0\xf5\x02\x7e\x3f\x36\x72\x47\xf6\x82\xa0\xb4\x33\xa1\xbb\x9c\xbd\x37\x1d\x28\xb2\x7e\xec\xb2\xa9\x64\xd5\x62\x4b\xb3\x27\x28\x1d\xdd\x83\xd9\x1c\xf1\x72\x52\xbb\x9d\x36\x28\xbe\x06\x35\xf7\x81\xd4\xcc\xe6\x8e\xca\xd8\x53\x58\xec\xca\x7b\x57\xf0\xa3\x55\xc7\xdb\x3c\x98\xa6\x7a\xdd\x27\x2d\x92\x76\x77\xc7\xd9\x9e\x77\x74\xbb\x35\x95\x8e\xbe\xb9\x52\x2a\x8e\xa6\xce\x4c\x3b\x53\xac\x32\xd5\x06\x57\x9a\x7a\xb2\x38\x9a\x82\x26\x43\xec\xe1\xa4\x0a\x4d\xac\x47\x6d\x84\xaf\x31\xbd\xab\x81\x6b\x42\x4a\x08\xe0\x09\xa3\xe0\x16\x49\x25\x96\x65\x75\x8d\xce\x18\x24\x09\x5c\x01\xf7\x97\xfc\x89\x72\x0f\x4e\xec\x68\x1c\x47\xc5\x37\x29\x51\x92\xd5\xb8\x83\x37\x80\x46\x40\x04\x53\x51\x99\x48\x18\xde\x66\xc4\x53\x4d\x7a\xc8\x70\xcc\x9d\xbc\x62\x86\x4e\x4e\xc1\x66\x07\x9d\xc8\x49\xd0\xfc\xba\x38\xa7\x40\x18\x41\x23\x8b\x34\xc3\x6d\xca\x29\x93\xc3\xcd\x87\x47\x6a\x4f\x94\xb9\x40\x5c\xac\xb4\x7e\x5c\xe9\x29\x4b\xab\xb4\x10\xa5\x35\x40\x46\x8c\x1f\xbe\xb9\x29\x4b\x69\x71\xef\xcd\xc4\x42\x9c\xd1\x1c\xf0\x47\x49\xa3\xb7\xd3\x1d\x2f\x6d\xcc\x88\xc3\xe1\xaa\x7e\x1f\xbb\x10\x7f\xcb\x2b\x64\xda\x1d\x85\x94\x72\x38\x60\xfd\x6b\xd2\x11\x6d\x7a\x0a\x54\x23\xb7\x6e\x40\x1a\xd4\xec\xb4\x77\x45\x81\xbe\x61\x55\x39\x12\x74\x46\xd9\x2c\xc5\x5b\x94\x1a\xa2\x8a\x94\x52\x8f\x5c\x22\x06\x9c\xee\xb1\x49\x16\x9d\xde\x17\x13\xf3\xa1\x61\x5a\xcd\x5e\x0f\x8f\x1e\x91\xde\xe7\x16\xf3\x8e\xb5\xd0\xf5\x23\xa4\x47\x8d\x09\xea\x86\x57\xc9\x37\x03\x35\x78\x76\x3a\x4b\x5e\x36\x74\xfa\x80\x88\xab\xd8\xa8\xd7\xcb\x6b\x71\xce\x03\x06\x6c\xb5\x71\xa0\x48\xfc\x89\x2c\xf8\x1d\x2f\xcb\xf3\xa9\x78\x54\x35\x67\x82\xdb\xe3\x44\xa0\x63\x74\x69\xc0\x7d\x1d\x03\x19\xd7\xe6\xde\xc4\x4f\x36\x2c\xc0\x61\xcb\x8b\x25\x2f\x42\x15\xe4\x68\x80\x03\x1c\xcd\x41\x92\xdd\x10\xb5\xc9\xd9\xbe\xc9\xe7\x17\xef\x64\x5b\xce\x6e\xac\xcd\xe8\x68\xfa\xff\x0e\x34\xaa\x3f\x16\x66\x34\xe8\xaf\x49\x05\xf8\xdc\xd9\x96\x75\x74\x5b\xbf\xc3\x89\x22\x8d\xc8\xe2\x8c\x4a\x0a\x9c\xae\x95\x83\x72\xb0\x39\xe4\xa9\xc0\x76\xbc\x01\x06\xf0\x20\xf7\xc5\x87\xa9\x11\x28\xf4\x65\xf3\x94\x79\xba\x26\x03\xb7\x9d\x53\x5d\xc9\x9d\x7b\xae\x01\x3f\xf8\xc7\xfb\xc0\x8f\x1d\xbf\x8f\xa0\x58\x65\x1f\x56\x0e\x18\x27\x50\x1c\x1d\xd1\x1b\xc7\x35\xf0\x39\x94\xde\x03\x60\xdc\xf2\x75\xd7\x78\x14\xc8\x65\xde\xf2\x29\x4f\x84\x0b\x7f\x28\xef\x2b\xcd\xf3\xc2\xcd\xe7\x27\x11\x08\xfb\xc2\x46\x8f\x70\x03\xfa\xb3\x4f\x87\x18\xb5\x56\x43\x7e\xa4\xd7\xbd\x87\xf7\x75\x00\x85\xdc\x76\x6a\x8d\x8b\x57\xc1\xa9\x8f\x73\x7f\x27\x51\x3f\x22\xc0\x8a\xa6\xe4\xd0\xf9\x02\x75\x41\x8e\x43\x69\x1a\xa4\x92\x2d\x40\x11\x40\xa2\xc7\x98\xee\x28\xdb\x20\x9c\xa0\xa7\x82\x19\xcc\xef\xa3\xa3\x9d\x0c\x7c\x84\xa4\xe4\x6d\x6b\x38\x05\x4e\xd0\x4d\xa3\x55\xa0\x9a\x5a\x08\x70\x60\x68\xb1\x82\x12\x1e\x08\x6c\x6d\x3b\xce\x97\x09\x0b\x59\xd1\xc8\xec\x54\x79\x94\xc5\xbb\x88\x09\xef\x06\xbe\x88\xa5\x95\xd8\x21\x67\x8f\xc2\x09\x93\xd0\x13\xa5\xd0\xa5\xdd\xdc\x00\xf0\x3c\xb5\xc0\x1f\xa4\x4d\x01\x6d\xa2\x2c\xf2\x68\x0f\xbd\x70\x33\x0f\x4d\xe5\xd8\xcd\xbe\x5f\x55\xd3\xac\x84\x7c\xac\x44\x20\x85\x14\xfc\x4a\x46\x2a\x1d\x0c\x32\x94\x52\x65\xa7\x79\xea\xca\x07\x9d\xc2\xfc\xb4\x21\xc0\x31\xb8\x30\xbf\x80\x13\x80\x89\xbc\x83\x9c\x0b\x90\x60\x22\x1e\x6d\xe9\xc5\xe1\xde\xe0\x98\x34\x21\x39\xd4\x29\xfd\xea\x90\x68\xa3\xa6\x88\x54\x36\xab\xc8\x6e\xdc\xa5\x9e\xe6\xca\x58\x8e\xa7\x19\xbb\x13\x51\x0a\xe7\xdc\x12\xa5\x4a\x10\x73\x74\x7a\x91\x3e\xa5\xa3\x03\xbd\xc1\x2a\xa4\xbc\x66\xf6\xd9\x96\xcf\xf5\x20\xc5\x8b\x6d\x48\xcd\x40\x4b\x07\x00\xc2\xb4\x40\xb7\xe1\x60\x5a\xe7\xad\xf6\x47\xa8\x78\xe0\x62\x6d\xce\x46\xd2\x41\x79\x18\xe6\xc1\xed\xd2\xb9\x8d\x74\xcd\x06\x8e\x93\x24\x5a\x33\x44\x72\x97\x6a\x6d\xd8\x07\x4f\xbb\x29\xc8\xc4\x27\xcb\xb3\xd4\x0e\x65\x61\x16\x61\x78\xc3\x1b\xa2\xa1\x92\xcd\xe4\x2e\x2d\x60\x22\xd1\xe7\xb5\x98\xc2\x85\x58\x58\x0e\x69\x73\x52\x03\x94\x6e\xb6\xf3\xab\xa6\x1e\x16\xe8\x1f\x06\x4c\xde\x14\xc0\xcd\xad\x5c\xbc\x0c\x08\x17\xa1\x3a\xda\xdd\x21\x9c\xb9\xe2\x60\x90\xc9\xad\x46\x92\xbd\xd4\xb6\x8f\x38\x72\xbe\xa3\x1a\x60\x40\xa6\x52\xfd\x56\x22\x39\xe3\x92\xa1\xf9\x95\xf7\xaa\x6a\x86\x23\xd2\x1a\x4f\x35\xb2\x14\x74\x75\x80\x67\x33\x91\x8d\x4a\x97\xd0\x1a\x88\x0f\xfc\xd1\x94\x38\x98\xd4\x7a\x3c\x23\x31\x1b\xa2\xcf\x3a\x9c\x5f\xb6\xd4\x53\x84\x2e\xf9\xe3\x0d\xbb\x08\x49\x91\xba\x66\xb8\x52\x0f\x19\x18\xc8\xff\xce\xbe\x9f\xe7\x7f\x2c\xef\x1f\x7e\xc9\x18\x1a\x87\x58\x27\xf6\xc9\x3a\x7e\xd8\x85\x23\x0b\x47\x36\xa5\xc4\x12\xa7\xdb\x2b\xe7\x98\xab\x45\xaf\xe5\x8c\x3b\xf4\x25\xcb\x9c\x04\x10\x64\x0f\x0f\x05\x46\x16\xc0\xe0\xe7\x83\x53\xe3\x43\x41\x44\x0b\x4d\x05\xb2\x8d\x39\xa2\x2e\x44\xde\x3a\x4e\xf8\xdb\x81\xa2\x50\x46\x6f\xf4\x08\x89\xf3\x54\x47\xf5\x08\x99\x2d\x3b\x6e\x62\x9c\x67\x18\x0a\x2b\x0d\xc0\xe9\x77\xc4\x9c\xb0\xa6\xac\x58\xae\xd5\xd4\xc4\x17\x40\x24\x9b\xb4\x28\xf6\xe3\xeb\x21\xdf\xb9\x2c\xe0\xf9\x96\xf6\x2e\x87\xbe\x7a\xf6\x89\x65\xed\x03\xb8\x1c\xa8\xa3\x38\xcb\x0b\xe5\xd1\x93\x64\x37\x01\xb5\xc2\xa1\x06\x10\x92\x91\x37\xd3\x39\xd8\x80\xa3\xea\xf9\xf0\xd2\x8d\x10\x1d\x9f\xcb\x2a\x8d\x04\xc6\xfe\x79\x0a\x59\x10\x6d\x85\xcb\xa4\xf7\x18\x8f\xc4\x73\xe2\x5b\x52\xe6\xed\xf3\x95\xd2\x4f\x02\xf0\xc6\xb3\xac\xfb\xe5\xac\x01\xd3\x3c\x9a\x17\x5a\xf2\x12\x4d\xa4\x4f\x0d\xcb\xfb\xcc\x23\xb7\xe1\x5e\x99\xc0\xb2\x94\x8c\xd0\x6c\xcc\xda\x7c\x0a\x4a\x92\x13\x87\x43\x62\xdb\x9a\x83\x39\xf2\x76\x79\x16\xe0\x19\x8a\x01\x40\xa6\x00\xdf\x5f\x2b\xe0\xbb\x79\x7c\x05\xb3\xc5\x98\xec\x4b\x67\x4f\x81\xc2\x80\x17\x85\x19\x5b\x74\x8a\x87\x49\x71\xea\x0a\x56\x22\x59\xa9\xe7\x43\xa1\xaf\xe5\x55\xe7\xbc\xc4\x3a\x55\x03\x79\x63\xa8\x31\x90\x65\xe4\xc4\xc0\xac\xee\x64\x1c\xc3\x48\x93\x55\x80\x61\x9c\x05\x0c\x1d\x1c\xe3\x28\xed\x5a\x90\xda\x3a\x38\x29\x41\x5e\x25\x51\x74\x58\x87\x50\x2a\x6d\x66\xc3\x48\x21\x77\x70\xa4\x89\x3b\x34\x55\x47\x70\xfe\xce\xcf\x00\x0a\xd8\x81\x5e\x4d\xba\x26\xb2\x0e\xb6\xc7\x74\xc1\xb8\x51\x5a\x32\x9e\xa6\x4e\x0b\xe4\x8b\x80\xa7\xee\xe9\xc0\xa0\xf1\x85\x14\x7d\xd0\x93\x22\x44\x5b\xb1\x15\xeb\x25\x3b\x72\x64\xc4\x42\xb7\xc6\x44\x0e\xd9\x7a\xde\xc1\x0c\x16\xca\x94\x19\x3f\xc5\xde\xe8\xb2\x00\x48\x77\x13\x1d\x10\x53\xc3\x5e\xe2\x9b\x4a\xb2\x18\xda\x48\xc6\x7c\x1b\xaf\xd8\xf2\x48\xd7\xbd\x45\x4e\x1e\x3a\xda\xa8\xba\x07\xd8\x6e\x16\x72\xc9\x41\xbb\x08\xad\x79\x85\x03\xce\x2e\x16\x4b\x43\xb0\x8c\xee\xe4\xe2\x97\x80\x40\x40\x77\xd8\x6c\xe6\x7e\x66\x94\x85\xf6\xec\x09\x5d\x23\x24\x4f\xe5\xa9\x0f\x2e\x6a\x07\x16\xf0\xa2\xd7\x94\x1c\xaf\x56\x25\x96\xd0\x90\x65\xcb\xb8\xaf\xcc\xb4\x97\xcc\x74\x21\x63\x20\x6f\x31\x08\x5e\x75\x97\xa1\xcc\x9b\xc8\x45\x30\x35\x06\x47\xac\xc9\x37\x7f\xa5\x3a\xe1\xaa\xb8\x1e\x1e\xc4\x08\x90\x15\x35\xbe\x83\x39\x8d\x0f\x60\x05\x2f\x5b\x9a\xcc\x35\x75\x08\x67\xce\x25\xda\x51\x47\x4b\x12\x8b\xd8\xbb\x97\x20\x43\x9f\x54\xe2\x56\xc2\xad\x08\xd9\x44\x9b\x53\x19\x3e\x03\xff\xb9\x72\xc7\x3b\x0f\xa9\xd3\x22\x34\xf8\xed\x35\x64\x22\x4c\x26\x06\x62\x0d\xd0\x03\x70\x32\xc8\xe4\xe0\x02\x01\xbe\x1b\x80\x16\xd0\x61\xb6\xb7\x73\xb7\xc3\x09\xc8\x2f\x5c\x09\x62\x1b\x0c\xe4\x88\xac\x92\xd4\x6e\x79\x39\x23\x74\xb1\x0c\x7d\xd9\x7d\x50\x92\xe9\xa0\xec\xdc\x48\x45\x51\xfc\xef\xff\xcb\xed\xc7\xfe\x07\x4b\x25\xba\xe7\xaf\xa9\xc4\x6b\xdd\x40\x90\x74\x74\x3f\x4c\xde\x60\x7f\xdb\xe3\x04\xc9\x06\x3c\x92\x47\x23\x92\xbd\x27\x4c\xf4\x90\x65\x27\x15\x3f\x48\xe3\x41\x52\xe1\x8b\x84\x96\x07\x29\x36\x69\x07\x61\x98\xe1\x48\x22\xe7\xc9\x54\x23\x14\x4f\x79\x34\x85\x0a\x1d\x3a\x89\x6f\x62\x09\x8e\x79\xa1\x7e\x20\xea\x93\x35\x66\x7b\xb7\x2e\x5e\xd7\xb7\x2c\xcb\x92\xc7\xe3\xc9\x16\x06\x75\x0a\xe3\x03\x20\xba\xf8\xda\xe6\xca\x0c\xd3\xb3\x96\xa2\x4a\xa6\x18\xd8\x7b\x6c\xcf\xc7\x48\x44\x2f\x14\xeb\xa2\xf3\x51\x30\xda\x2b\x8b\xed\x87\x67\x43\x20\x7b\x57\xc4\x3b\xac\x80\x64\x9e\xa2\x74\xef\x21\xd5\xa0\x48\x3e\x1f\x69\x6d\x9c\xde\xf3\x06\x11\x30\xbe\x9f\xba\x38\x06\x98\xd6\xd7\x49\x72\xc2\xf6\x91\x34\x84\x4a\x55\x96\x03\xf6\x49\x2e\x54\xb3\xcf\x75\xa1\x0f\xab\x29\x71\x4c\xb4\x73\x54\xac\xfb\x06\xee\xc8\xc8\x85\x15\xdc\xf3\x98\xca\xd0\xcd\xb8\x36\xdd\x2d\xc6\x16\x0d\xfb\xe7\xf3\x8a\x15\x04\xa8\x80\xb6\x11\x69\xed\x40\xfb\xca\x30\x79\xc3\x2a\x87\x6a\x12\x31\x6a\x40\x60\x0f\xda\xe2\x57\x0f\x97\xe6\xaa\x84\x36\x5e\xd8\x57\xdf\x60\x45\x43\xfb\x44\x41\x6a\xe7\x48\xf6\x67\x29\x84\xcc\x41\x3f\x81\x48\x7c\xb2\x6e\x25\x0d\xed\x06\x18\xa5\x6c\xaa\x42\xf8\x74\x7c\x90\x9f\x9f\x8e\x25\xb2\x3d\xca\xe9\x9e\x70\x3d\x80\xc3\x1e\x9a\x66\x36\xb4\x09\xda\xa9\x48\x08\xa9\x37\x52\x76\x01\x21\x1d\xf9\x8c\x90\x3d\xb0\x66\x15\x4b\x21\x68\x18\x32\x07\x53\xa9\xe5\xc0\x9e\x36\xf8\x7e\x2c\x01\x43\x6f\x4e\xd3\x8c\xad\x22\xb6\xbe\x8e\x00\x3e\xeb\xa7\xc3\xc3\x74\xca\xb4\xa4\x2c\x2b\x77\x8e\xd5\xb5\x1d\xfe\xa5\x8a\x82\x4c\x18\xee\x24\xe2\x0c\xb0\x05\xd8\x3e\x43\xe3\xd1\xd1\xfa\xdc\xdc\x0f\xbb\x21\x8a\x83\x34\x3d\x83\xf0\xce\x71\x8c\xfd\xb0\x7c\xf7\xe3\xf1\xb8\x22\x84\x44\x85\xb0\xc2\x14\xa4\x15\xcd\x97\x77\xd1\x89\x82\x2d\x76\x58\x91\x5e\xed\x15\x64\x37\x9e\x4d\x8f\x3e\x9a\xc9\x8e\x3a\x19\xf3\x1a\xfa\xe8\x58\xb3\x53\x18\x65\xaf\x29\x50\x55\x88\xaa\xf1\x7c\x5d\xe1\xb6\xe1\x0e\xb4\x68\x84\x95\x97\x10\xbc\x31\x46\x48\x63\x0b\x48\x51\x3a\xb3\x5d\xaa\x4f\xa9\xfb\x85\x73\x34\xa5\x04\xcd\xdb\xbe\xc4\x9a\x32\xb2\xae\x17\xd9\xc5\x0a\xd0\x36\x98\xe5\xe7\xc3\x19\xbc\xc4\x1e\x14\xb5\x66\x05\xf2\x12\x0d\x88\xa2\x29\xeb\x04\xde\x6e\xf9\x08\x9d\x72\x9e\x3a\x76\xa2\xb2\xd8\x82\xbd\xab\x4c\x95\x02\xbc\x57\x60\x2b\xc8\x48\x6c\xda\xc5\xe2\x15\x81\x56\x22\xec\x66\x54\xbe\x0c\x21\xa1\xbe\xf8\xa5\x1f\x39\x7d\x7a\x0b\x7d\x00\xe5\x9d\xb0\xc3\x26\x6a\xa9\x57\x17\xc4\xa6\xb6\xdc\x96\x01\x99\x1a\x19\x10\x93\x50\x0d\xf9\xde\x9e\x56\x82\x9e\x8b\x2c\x4f\x53\x1f\xc0\x69\x65\xb2\x44\x89\xf8\x68\x0a\x8c\x77\x81\xb7\xbd\x8a\x54\xfb\x32\x1f\x24\x93\x11\x5e\x01\xd0\x86\x54\x70\xe4\xef\x0c\x14\x71\x37\xfe\xc1\x80\x22\xfc\xf5\x39\xc5\xe3\x39\x3b\x2d\x1b\x00\x4f\x78\x27\x02\x17\xdc\x27\xe8\x58\x57\x11\xa5\xd3\x51\x21\x22\x96\xa7\x42\x87\xd9\xc1\x34\xc7\xb0\x97\x88\xf5\x8f\x61\x06\x1d\x03\x30\xb7\x8d\x01\xd9\xc2\x65\xc8\x70\x5e\x64\x0e\x21\xcd\x67\x84\xd1\x9a\xec\xa1\x93\xbf\xfb\x59\x02\xe1\xfa\xe6\x66\x69\x04\xc7\x45\xc2\x61\xd9\x0b\xb8\x32\x14\x48\xf1\xbe\x52\xc3\xb2\x60\xcf\x5e\x26\xf2\xd8\x9e\x3b\x74\x8c\x29\x5e\x0d\x99\xa6\xa0\xaf\xe9\xe1\x5e\xa5\xed\x44\x36\xc6\x0e\x50\x28\x48\x99\xae\x7b\xbe\xe4\x9b\x65\x76\xc3\xd4\xf3\x3a\x3b\x15\x30\xd2\x64\xf5\x1d\x8b\x2e\x56\x17\xd1\x2f\x84\xde\x03\x38\x69\x2e\x24\x7b\x9e\x28\xd3\x2a\x74\xc4\xc7\xf1\x5d\xfb\x4c\x32\x6c\x0b\x8f\x6a\x46\x86\x0a\xba\x69\xd1\x86\x2e\x23\xfa\xb8\xb0\x2a\xe0\x0b\x88\xb7\x97\x16\xd2\x0f\xd9\x06\x4b\x87\xc0\xf3\x66\xe5\x28\xe5\xa2\x0e\x72\x68\x21\x22\xc8\xaf\xac\x48\x11\x5d\xe1\x28\x12\x4f\x82\x0f\x82\xd1\xa9\x91\xb2\xf1\x25\xcf\xf7\xfc\xe9\x01\x4a\x81\x69\x85\xb4\xe5\xc7\x8b\x06\x69\x93\x67\x7d\x2f\xba\x9d\xa3\xaa\x2e\xce\xa8\xc9\x57\xbc\xd4\xae\x5c\x47\xd2\x3d\xec\x2a\x03\x18\x68\x71\x5e\x52\xc9\x43\xc9\x7e\x65\x7e\x06\x25\xe4\x46\x32\xc6\x9b\xa7\x3a\x6a\x57\x22\x7e\xb3\x39\x33\x62\xf2\x12\x7e\xb6\x94\xed\x55\xc4\xb8\x75\x75\x2c\x83\x14\x22\x19\x5b\x0b\xef\x9a\x31\xaa\x2f\x29\x5d\x1a\x4d\x99\x53\x7a\x67\x12\xa6\x26\x97\x7a\x2d\x50\x5b\x6c\x86\x4a\x56\xa2\xa1\x51\xdf\x26\x94\xf4\x61\x3c\xbd\x49\xf5\x4a\x26\x1e\xf7\x63\x41\x36\xa1\x5c\xbd\x0f\x0d\x48\x97\xd3\x3a\x36\x90\xaa\x28\x69\x79\x2f\x3b\xa4\x1c\xa4\x44\x4a\xb4\x88\x6e\x27\x54\xf8\x41\x3c\xbd\xb3\x35\xb9\x51\x7d\xd0\x4c\xf1\x99\x30\x16\xd8\xbf\xc8\x93\xf7\x70\xf2\x71\xef\x6c\x40\xc9\x21\x14\xb6\xc9\xc2\xae\x92\x12\x67\xa9\x5a\x67\x3a\x15\xd1\xb6\xa1\x16\xe5\x89\xa0\x5b\x7b\x79\xcd\x7d\xaa\xae\x63\x40\xa6\x6a\x94\x4a\xce\x69\x4f\x2c\x20\x27\x7a\xae\x4e\xbd\xef\xb0\x6a\x92\x67\x33\x86\x3c\x08\x66\x73\x0e\x49\x9c\xb7\x35\x0b\x05\x01\x26\x33\x5e\x32\x17\x05\xc3\xaa\xdd\x5b\x9d\x23\x93\x8a\xbb\x20\x9b\xd8\x9a\x5a\x7d\x16\x0f\x72\xd1\x4b\xde\x6d\xe1\x7c\x13\x5b\x68\x15\x35\x0a\x0c\x22\xe2\x59\x34\x5a\x45\x74\x67\x49\x46\x2d\x98\x35\xc3\xdc\x3c\xab\x04\x68\x78\x85\xd2\x4c\xf5\xbc\x20\xf9\x39\x59\x84\xfb\x0c\x8d\xf8\x6d\x97\x62\x0d\xb1\x7c\xf9\x80\xd6\xe5\xd2\x7a\x2b\xaa\x5e\xf3\xd3\x39\xd5\xb7\x48\x51\x0f\xc5\xb4\x6d\x47\x99\x11\x27\x5d\x40\xf9\xb9\x3a\xc0\xa6\x29\xa7\x38\x77\xf1\xfb\x7e\xf9\xbe\x35\xf7\xa4\x65\x8d\x5b\xcc\x13\x79\x2c\x9b\x97\x5b\x3e\x7b\xe0\xb6\x0e\x88\x58\x89\x81\x7e\xc6\x08\xae\xe6\x87\x13\x90\xa4\xb3\x28\x95\x37\x23\x86\x23\xfd\xae\x7b\x92\x3f\xd8\x23\xcc\xe4\xfc\xf5\x98\xae\x79\xce\x5f\x1e\x61\x76\x61\xdf\x14\x83\x44\x47\xfc\x9b\xce\xca\x4d\xb2\xa3\xb6\x94\x42\xcb\x09\x29\x0c\x8b\x40\xe1\xf0\x17\x1d\x30\xfa\x07\xa7\x3e\x88\x47\xb9\x5e\xa0\xf2\x0e\xe8\x19\x12\x71\xc7\x55\x44\x0f\xe4\x12\xb0\x1c\x8d\xd1\xb2\x70\x0d\x57\x67\x8d\x50\x97\x71\xdb\x5d\xf7\x15\xa8\x7d\x03\xf4\x3d\x94\xa1\x27\xe8\x99\x26\xa7\xee\x3a\x70\x60\x9e\x75\xa3\x75\x5c\x01\xc4\xfb\xcc\x75\x8c\x80\xbd\x11\x66\x66\x89\xee\x55\x0f\x4d\xa1\x97\x8e\x47\x0f\x91\x7d\xa2\xed\x96\x9b\xaf\xe1\x19\xb2\xd6\x7a\xe8\x65\xe3\x09\x8b\x17\xcf\xe1\x23\x7b\xb3\xfa\xb9\x6c\x5b\xcc\x72\x58\x07\xda\xd4\x0e\x19\x48\x5b\xe9\x43\xee\x6f\xf7\x9e\x6d\xed\xba\x5a\x93\x07\x39\x87\xf0\xe0\xeb\x89\x06\xcb\x61\x1e\x2d\x05\xea\x6b\xe7\x45\x3c\xb8\x4b\x3d\xea\xd6\x6e\x4f\x4d\x52\xed\x88\x08\x0d\xe1\x66\x0c\xb1\x2e\x8e\x74\xe8\x88\x5b\xb9\x73\x5f\x4f\x70\xb4\x89\x7b\x8d\x5c\x0e\x4a\xb2\x5b\x1a\xf2\xe7\xc9\x30\x55\xe5\x2c\x2b\x04\x81\x98\x82\x42\x1c\x8e\x2a\x0b\x7d\xec\x60\x0a\x1d\x0b\x4a\x78\x3b\xce\x69\xc8\xa4\xb0\xbc\x46\x21\x87\x6d\x76\xe3\xd4\x6c\x55\x09\x51\x9e\x81\x0a\xea\x3c\xf5\xa0\x41\xab\xdf\x2c\xce\xe6\xa1\x40\xbe\xc6\xf1\x90\x03\x37\xe5\x35\xdc\xe6\xca\x9b\x9a\x78\x31\xeb\xdd\x4c\xa1\x9d\x35\x77\xcc\x82\x9d\xb7\xe4\x44\x59\x5a\x36\x59\x99\x72\x90\x14\xa6\xf0\xe7\x4b\x17\x6e\x2c\x11\x69\xde\x06\x9e\xc6\xf2\x9a\x46\x63\xe5\xb5\xf4\x2a\x57\x9e\x25\x4d\x8f\x31\xb8\xc9\x90\xac\x8c\x51\x88\xd7\x86\xb8\xb1\x12\xc9\x07\x21\x9a\xa4\xa4\x1f\xf5\x3a\x48\x7c\xeb\x92\x03\x63\xbc\x40\xf0\x91\x9b\x9c\x6d\x07\x7e\x52\xb7\x89\xff\x86\x8a\xc7\x63\x81\xb1\x11\x55\xee\xbb\xdd\xb3\x67\xc5\x9a\x5a\xf4\xa2\x78\xe1\xc9\xc6\xb3\x45\x66\xd3\x5c\x9f\xec\x54\x25\x82\xb1\xbe\x80\xc0\x62\x04\x75\x8c\xde\x0b\x7e\x48\xe4\x48\xec\x7b\x1e\x43\x2f\xbc\x4a\xe3\x81\x74\x1b\x93\x8c\xd0\x9c\x0a\x7c\x9d\x98\x4f\x0d\x51\x8b\x1c\x3c\x77\x5d\x4f\x85\x82\x64\xc9\x97\x36\xf0\x29\x02\x56\xcf\x1a\xfc\x7d\xcf\x04\x92\xf1\x0f\x16\x6b\x73\xe9\x57\x87\x5a\x08\x9d\x05\x59\x07\xe8\x42\xc8\x2b\xa6\xd1\xf7\x1f\x86\xc8\x70\x69\xd4\xba\x4b\x5b\xbe\xde\x2d\xa9\x19\x91\x26\x73\xe4\x91\xef\xc2\x7e\xd8\x00\xa7\xbe\x32\xc0\x01\x54\xad\xa7\xba\x23\xa9\x5f\x1e\x03\x92\x34\xcb\x17\xa5\xd8\xc4\x0e\x18\x47\x11\xbb\x96\x19\xac\xd9\x12\x18\x7a\x2e\x84\x4d\x30\x2e\x85\x2b\xf6\xca\x32\x20\x26\x70\x18\xbe\x78\xf2\x28\xd4\x58\x79\x42\x40\x7e\x3f\xa2\x3b\xee\x49\x3d\x80\xde\xf3\x8a\x87\xf9\x74\x13\x92\x3a\x07\xe1\x43\x42\x80\x0c\x1a\x35\xae\xae\x92\xca\xdc\xfd\xb6\x18\x51\xfe\x16\x86\xde\x6f\xa0\x01\xb3\x5e\x2e\xd6\x00\x76\x4d\xcd\x2a\x70\xf2\x24\xa2\x2a\x57\xa6\x59\x7a\xf8\xaa\x9b\x13\x67\x1e\xdb\x44\x3b\x30\xd9\x5d\xcf\x4b\x0c\xaa\x9b\x82\x31\xb2\xa5\xad\xe6\xc8\x6b\x8f\x31\x91\x6d\x43\xc0\x4b\x6d\x81\xe5\xe1\x1f\x75\xe6\xd9\xa5\x61\x20\x21\x66\xbc\xad\xde\x6a\x82\xab\x49\x18\x3f\x5a\x74\xa4\xed\xf2\x5d\x0b\x6d\x8b\x23\xa6\x97\xcd\x50\x2c\xa7\xc7\x6f\x34\xd6\x26\xba\x68\x69\x9a\x3e\x65\xd0\xde\xf7\xf0\x12\x5d\x84\x16\xcf\xb8\x18\xe9\x07\x52\x74\x80\xee\x74\x1c\x2d\xb2\xaf\x4a\xd2\x2f\x95\x05\xb2\x97\x32\xf4\x44\x8d\x08\xfb\x25\x04\x4a\x2d\x5b\x87\x49\x5b\xac\x53\xe4\xc4\xe3\x89\x76\x5c\x7c\xbe\x0c\x0b\xa3\x43\x49\xbd\x25\xc2\x6a\x29\xfa\xf0\xe1\x5c\x62\x14\x1e\xd1\x7d\xfc\x6a\x92\xa3\xe9\x8c\x4e\x5a\x47\xb6\xf4\x22\xbc\x78\xa6\xfb\xbb\xb5\x8e\xfa\xc8\xda\x2c\xbe\xf1\x95\xf4\x95\xa1\x2d\xc1\x11\xe0\xce\x8c\xc8\xd9\x59\x86\x3c\x86\xe3\xd9\x42\xae\xcf\xfc\x5d\x67\x85\x0f\xb6\x8c\x9d\x00\x65\xf6\xde\x38\x82\x00\x04\x9e\x5d\xda\x44\xf6\x8f\x6b\x88\x6e\xef\xcd\xa4\x2d\x3d\x63\x0f\x66\x90\x8a\x99\xba\x53\x11\xb4\x89\x39\xd0\xb0\xab\x80\xee\xe5\x56\xdb\x48\x56\x61\x66\x47\x35\xea\x8e\xb7\x2b\xdc\xee\xee\x49\x3d\x31\x07\x79\xdf\x37\x94\xc3\x09\xa7\x9d\x20\x3f\x3d\x21\x8e\x48\xee\x75\x64\xcf\x3e\x59\xa6\x60\x88\x84\xd1\x12\xe5\xf5\x04\x6f\x29\x75\x45\x6e\x14\x0c\x6c\xbc\x20\xa2\xdb\xde\xcd\x73\xb3\xdf\x2f\x88\x18\x00\xcc\x12\xd8\xbe\x7c\x81\x02\x17\xb1\xd8\xbb\xee\x94\xde\x3b\x1d\xe9\x7a\x2a\x97\xdd\xae\x14\xdc\xbc\x28\xaa\xa0\x32\x36\x33\xec\xca\x33\x97\xe6\xf7\x4e\x78\x93\x65\xf9\x63\x39\x61\xf3\xd5\xce\xb8\x59\x77\xa7\x65\x0d\x60\x43\x99\x81\x56\x5a\xc0\x24\x65\x59\x76\x76\xaf\x13\xcf\x3a\xe8\x57\x63\x4d\x36\x58\xd9\xbf\xbc\x7d\xe2\x2b\xeb\x13\x4b\x06\x8e\x86\xf4\x65\xa8\xd9\x48\x95\xc3\x95\x9e\xb8\xc8\x4e\xf9\xae\x8e\x2d\x90\xe6\x61\xea\x7a\xec\x59\x05\x6b\x1a\x65\xf1\xbe\xe5\xe0\xdb\xfd\xbe\x42\xfc\x75\xc3\xb7\xc9\x61\xbb\x89\x05\xbb\x7f\xdf\xfa\xac\x3a\xf4\x95\x63\xaf\x98\x22\x6e\xed\xe1\xe6\xa3\xa9\xf5\x68\xd9\x68\x69\xae\xeb\x3e\x00\xb5\x02\xd0\xe6\x95\x52\xa5\xf7\xea\xa3\xdd\x1b\xaa\x15\x9e\x07\x67\x59\x61\xdf\x22\xfb\x6a\x2b\x6f\x4c\xef\x43\xc7\x85\x7d\x92\xa6\xad\xee\xf6\x2d\xe5\x1c\x24\xe6\x82\x97\xd7\x3c\xb9\x70\xd1\xa8\x55\x1e\xc7\xf4\x15\xd0\xcc\x7b\xc3\x71\x3a\xcc\xf6\x14\x2e\xf2\x36\xb7\x1d\x2e\x71\x4a\x1d\xcc\x74\xa5\x8a\x2b\xd1\x24\xe6\xda\xa2\xc6\xe2\x20\xf3\x0c\x49\xdd\xc4\xc5\xd2\x72\xcd\x46\x44\x17\xd0\x6e\xb9\x5a\x3e\x50\xe6\x3b\xbb\x62\x76\x4e\xec\x17\xca\x05\x95\x00\xd0\x97\x4e\xe6\x38\x52\x68\x31\x0d\xed\x6a\x79\x2f\x95\x59\xea\xe5\x48\x63\x99\xe1\xa8\x0f\x96\x7c\x8e\xd2\x2d\x2a\x6c\x5f\x9b\xd6\x26\x2d\xf5\x86\xab\xd2\xb4\x38\xb4\x65\x66\x15\xc6\x8c\xf0\xe5\x4f\x49\xca\xb7\x42\x08\xcc\x8a\x1e\xdd\x86\xc7\xd3\xfd\xeb\x81\x05\x1e\x32\x92\x0d\xeb\x81\x56\x7d\x3b\x77\xd4\x7b\x2d\x1d\x01\x4a\x91\x98\x60\xfb\xce\x87\xdd\x66\x2b\xac\x4d\xc4\xe6\xce\x96\x5e\x05\xcc\x97\xd9\xbe\x41\xf1\xcd\x8f\x70\x89\x30\xc2\xc0\x2c\x2c\x1a\x98\xbb\x71\x55\x72\x65\x5a\xea\x5d\x35\x26\xa9\x59\x90\x37\x4c\x43\xe8\x6d\xc8\x53\xc6\xcd\xe3\x6e\x35\x8d\x74\x19\x55\x55\x85\x52\xe4\x77\xae\x35\x4f\x89\x9b\xe5\xc0\x03\xb3\x11\x14\x83\x82\x86\x2d\xa6\x44\xe2\x67\x6b\x4b\xf5\x3b\x67\xdf\xcb\x1c\xdd\x1a\xa9\x92\x07\xf6\x02\x3b\x7d\xf3\x1e\xaf\x96\xeb\x87\xa7\x8e\xf8\x4c\x55\x98\xa5\x56\x1d\x06\x79\x49\x32\x6e\xc7\xcb\xdb\x02\xf4\x88\xc4\x8b\x8a\x14\xc9\x32\xb8\xa1\xcb\x2c\x28\x31\x5f\x5c\xf2\x75\x88\xd9\xaa\xf3\x18\x47\x4e\x65\xfa\x9e\x69\x74\x03\xf3\x87\xed\x5c\x42\x71\xa9\x36\xc3\xd8\x03\xbb\x02\xf9\x6a\x2c\xec\xee\x21\xac\xce\xa3\x5a\x98\xcc\xfb\x01\x76\x6d\xd5\x45\xb3\xed\x37\x7a\x3e\xfa\x7a\xf2\x6e\x8d\x81\x5f\x6b\x92\x2e\xc6\xf9\x32\xfc\x45\x7f\xaf\x02\xd0\xef\xa6\x3f\x51\xd2\x38\xc8\x82\x7a\xf3\xef\xe6\x4d\x81\x5a\xda\x2e\xb8\xf2\xbe\xc8\x40\x1e\x9d\xe9\x99\xae\xcf\x6a\xdb\x29\x3c\x37\x99\x91\x68\x66\x82\x79\x9e\x1a\x77\x34\xe3\xd0\x2c\xfe\xb6\x74\x7e\x14\x7a\x5c\x0f\x26\x83\xfb\x22\x66\x20\xc6\x00\xb2\x38\xc8\xc6\x61\xdf\x91\x11\x99\xe7\x72\xfc\xbe\x11\x38\x8d\xd6\x3f\x96\xf3\xe7\xee\xcf\x11\x58\x75\xc0\xa7\xce\x3e\x59\x47\xcf\x80\x77\x04\x6e\xe3\xda\xb5\xa4\x55\xc0\xea\x50\x85\x05\x4d\xc2\xa5\xf1\xd2\x05\xb2\x8e\xa7\x63\xb1\x08\x1a\x7e\xd0\xfa\xcb\x7b\x7a\xc0\x83\xb2\xcc\xec\x0a\x1c\xfd\x10\x11\x83\x74\x1b\xb2\x70\xd8\x42\x8c\x5d\xb1\x78\x72\x61\x0c\x8d\x2d\x1a\xc3\xf7\x0e\x25\x02\x55\x2f\x91\x6d\x6b\xd1\x23\x23\x5e\x84\x96\xe7\x09\x9f\xc9\x98\x52\xda\xd9\xce\xed\x0f\x4d\x1a\x42\x41\x17\xb4\x7c\xbe\x81\xa5\x7d\x61\xf2\xe8\xe5\xe5\xd9\x2b\x19\xde\xfa\xca\x13\x18\xde\x80\x6a\x85\xd3\xd0\x6b\xbe\x03\x34\x20\x49\x62\x6d\xfe\x2e\x59\x4e\x9c\x5b\x72\xd1\x21\x5d\xbd\xf4\x75\x7e\x92\x4b\xa2\x8c\x57\x81\x8e\xf1\x2a\x0a\xec\x5c\x4e\xd9\x8d\x3c\xa2\xa3\x4b\x10\xb4\x17\x5f\x1c\xbb\x1f\xef\xa8\x32\x36\x4a\x98\xec\xc4\x3a\xd5\x5a\x2a\x3b\x1f\x04\xb4\x65\x7c\x9e\xf3\x0b\x7f\x71\xa7\xc7\xde\x87\x5a\xf5\x27\x79\xb3\x24\x72\x72\xe2\xd8\x6b\x75\x96\x0a\xb6\x3c\x06\xf1\xe9\x21\x0e\x44\xeb\x48\xfd\xda\xbc\xb3\x73\xe4\xa5\x28\x55\xba\xe0\x44\xa8\xe3\x32\xc2\x28\x84\xb0\x06\xa9\x08\xb9\x4a\x8e\x7b\xc8\x3b\x2f\xd9\x83\x68\x2a\x9b\x4e\x03\x59\xde\xd7\x0c\xf6\x80\xb0\x83\x7a\x2a\x13\x70\x16\xb1\x45\x53\xbe\x9c\x79\x12\x0f\x68\x76\xda\x5c\xaf\xc4\xb3\x53\x1b\xa6\x09\xb3\xf3\x2c\xbe\x81\x7c\x5a\x69\xbd\x01\x39\xed\x77\x9c\xbf\xd1\xa9\xc4\xf5\xd1\x57\x71\x88\xaf\xc3\x4c\x58\xc1\x62\x9c\x08\x23\xee\x04\xe4\x28\xf9\xf8\xf1\x1e\x1d\x60\xce\x18\x03\x2f\x13\xcf\x75\xfd\x73\xf7\x35\xe1\xbc\x69\x63\x18\x0d\x56\xf6\x65\x36\x56\xb0\xe1\x19\x8a\xc9\xf5\x50\x68\xb4\xc0\x20\x26\x80\xee\x45\xc8\x68\x30\x27\x91\xbb\x4f\xc5\x59\xd0\xea\xbd\x80\xfc\x98\x34\x4c\x2b\x5f\xb6\x8b\xf0\x4f\x1a\x9a\xee\x0a\x10\x50\x0a\x03\xb0\x97\x07\x92\x0b\xdf\x78\xa0\x7c\x49\x3a\xa5\xc4\x8c\x06\xe6\x05\x2c\xf9\x00\xed\xa8\xaf\x67\x05\xc6\x0c\xe6\xc9\x19\x56\x13\x93\xa6\x4b\x30\xab\x26\x1c\xb8\x5a\xef\x85\x23\xb1\x02\x8b\xda\xc9\x7b\xb8\x6b\x48\x39\x0a\xfe\x72\xd7\xe6\xa1\x4d\x7d\x86\x3b\xc4\xbc\xa0\x93\x66\xd0\xb5\x55\x66\x12\x47\x65\x9c\xc8\x69\xb9\xbb\xd5\x96\x13\x6c\xf0\x2c\x26\xc8\x36\x9d\xde\x8e\x63\x09\x49\x1e\xf4\x11\xef\x66\x0c\x5b\x45\x70\x1a\xbf\x73\x14\x4e\xbb\xe2\x8f\xe5\x88\x3d\xf1\xf5\x51\xf7\xfc\xa3\x23\x12\x6d\xd3\x20\xf8\xe5\xd9\xd6\x4a\x77\xeb\xbb\xe4\x2c\xef\x1c\x16\x88\xf5\xdd\xd2\x5a\xcc\x24\x5a\xb6\x33\x70\x41\xd4\x7d\x19\x39\xc2\x14\x0c\x40\xee\xb4\x8c\xb2\xee\x73\xe0\x44\xbc\x72\xa8\xa9\xa3\xdf\x29\xb3\x8f\xe3\x04\x75\x9e\x65\xdd\xec\x7d\xc1\xbb\xae\x8d\x1c\x37\x3d\x36\xe6\x9d\x9b\x00\xdc\xf7\xfb\x96\xf9\x59\xe0\x14\x33\xe5\x09\x4f\x80\x00\xde\x2c\xde\xa0\x94\x6c\xf6\x9b\x99\xe4\x1c\x34\xa5\x7d\x27\x4d\x04\x93\x71\xc4\x6a\x3c\xa0\x6a\xd9\xd4\xe5\xf4\x79\x4f\x28\x81\xe8\xd9\xb1\xee\xa2\x4b\x96\x88\xe6\x96\x03\x6b\x3a\x5b\x43\xc4\x53\x14\xdb\x37\x42\x98\xfe\x0d\xca\xd3\xcd\x1a\xb5\x98\x85\x16\xa0\xa0\x01\x00\x1f\x3a\x5f\x32\xa7\xa8\x02\x15\x40\xe2\x79\xe8\x15\x2e\x0f\xae\x28\x1b\xf1\x60\xe8\x44\xa0\xc4\xab\xaf\x62\xd7\xe7\xb0\x53\x56\xf4\x65\x04\xc7\x4e\x3c\xbb\x9c\x9c\x68\x91\x05\x17\x72\x2a\xb6\x8e\xe2\x44\x9b\x37\xee\xd1\x09\xca\x8d\x03\xe5\xdc\x8c\xf0\x23\x62\x2e\xdf\xf7\x87\x76\x74\xe7\xa5\x04\xc0\xb5\xb0\x14\x66\x46\xc5\xc7\xe1\x84\xc3\xd3\x11\x68\xab\x21\xf3\x2a\xd1\xef\x00\xab\x37\xce\xea\x62\x53\x9f\x69\x20\xba\xeb\xe9\x91\x37\x89\x06\x82\x05\x39\x0d\x0e\x4e\x81\xac\x2d\x37\xb9\x17\x6f\xb4\x5d\xdb\x41\x36\xa1\x03\x6b\x91\xd1\x96\x9d\x89\x6d\x25\xfe\x23\x24\x69\x8f\xeb\xc0\xc0\xb0\x94\x50\x2e\x85\x74\xc6\xf0\x07\x70\x78\x60\x06\xa6\x45\x1d\x0c\xf0\x42\xb3\xbe\x7f\xc5\xc1\x4a\x31\xae\x25\x28\x23\x94\x2d\xb0\x38\x2e\xa2\x62\x41\x48\x82\x40\x6d\x43\x15\x18\x73\x9b\x75\x61\xde\x34\x13\x02\xe7\x0c\xf2\x6f\x53\x3a\x8e\xa0\xf2\x8a\x7b\x7d\x94\x81\x1a\x1d\x6d\xb6\x81\x2e\x7c\xc4\x8d\xfd\x68\x9c\x6a\xd6\x12\x5c\xe4\x25\xf2\xc6\x5e\x26\x60\x44\xcd\x93\x22\xdb\x13\x2e\x27\xd2\xd2\x79\x4a\x32\xfd\xd1\xd7\x76\xf4\x95\x36\x37\x9c\x91\x85\x31\x68\x1d\x52\x5e\x35\x8a\xbf\x8b\xb0\x03\x55\x61\x1f\xa9\x4e\xc6\x8c\xd4\x49\x0b\x80\x21\x0b\x22\x31\x9b\xb2\x4a\x28\x8b\x89\x64\x29\xcd\x86\x67\x9c\x9e\x9d\x09\x31\xab\xc7\x30\xce\xd9\xa2\x4f\x21\x7c\x18\x82\x7d\x2d\x0c\xec\xa7\x86\x46\xa0\x7c\xbe\x83\x58\x94\xf1\x09\x99\x52\x73\x00\xd3\x65\xf5\x6a\x0f\x0d\xc6\xb1\x97\xe1\xf9\xb8\x84\x4e\x4f\xdf\xbb\x5c\xeb\x2c\xa2\xba\xd2\x7c\xe5\xa2\x78\xa8\xbc\xb7\xd9\x94\x5d\xa2\xed\x56\x5c\xb4\xde\x4d\x53\x0f\x98\x50\xbe\xaf\x7a\x90\x1f\x50\xe1\x9b\x8b\xcc\xa2\x78\x28\xb2\xd0\xb0\x3e\xc1\xf0\x99\xdf\xa0\x93\x21\x24\xe5\x1e\xf0\x5b\xad\x7b\xef\x89\xcc\x62\x5f\xbe\x6a\x3b\xb8\x8e\xc1\x2e\x60\x56\xe3\x46\x4d\x45\x3a\xff\x9d\x0b\x84\x6e\x38\x39\xdf\xce\xe4\x41\x69\x0b\x2c\xbe\xda\x3a\x5e\x37\xd5\x2b\x4d\xef\x16\x45\x7d\x6e\xfa\x07\x9f\x04\x49\x21\x7a\xec\x70\xc4\xe1\x03\x9c\x28\x18\x46\x00\x44\x54\x49\x86\xb5\xea\x29\xee\x85\x58\x00\x7f\xef\x03\xae\x74\xf8\x83\x3d\x9c\x1a\xc7\x5f\x01\x04\x27\x74\x8e\xfd\xb2\x97\x86\x89\x3d\xdc\x70\xbc\xc0\x99\xa1\x49\x74\x10\xa1\x28\xcb\xe9\x2a\x56\xa6\x2d\xfa\x5c\x70\xb6\x02\x41\x89\x0c\x34\xe8\xdd\xda\xf2\xa5\xce\xfe\x83\x96\xca\x88\x3f\x86\xd1\x32\xc0\x54\x5d\x39\x76\x89\x19\x93\x2a\xaa\x90\x35\x44\x0e\x11\x85\xa4\x78\x40\x2b\x14\xbe\xb2\x10\x35\x98\xb6\x57\x9f\x5d\x48\x3c\x5e\x04\x0e\xef\x79\xf6\x7a\xb3\x8e\x44\xce\xb9\xf5\x2e\x6f\x9d\x07\x5d\x31\xcf\xc4\x8a\x31\x2d\xa6\x39\x9e\x89\xe7\xae\xf0\xfb\x35\x97\x3c\x66\xa5\x96\x06\xf1\x7b\xff\x4a\xf3\x6d\xcb\xa6\xf0\xd8\xde\xe1\xd4\xc0\xd2\x59\xe0\xd5\x3b\x11\x73\x2a\x2e\x7c\x06\x0b\xe9\xd7\x86\x4e\x79\x7e\xfb\xaf\x6c\x08\xb2\x8b\x39\x69\x1c\xdf\xae\x42\x2e\x93\x61\x1b\xf6\xc2\x75\x8c\xfa\x29\x20\x01\x05\x0d\xfb\x7b\x63\x88\xc7\x6a\xdb\x0e\x78\xab\x2e\xd5\xf1\xc0\x83\x7e\x91\x62\x50\xbe\x38\x18\x7b\x32\x0a\x70\xb1\xa8\xd0\x93\x8c\x1c\xb4\x6e\x5a\x60\x2a\x43\x76\x1e\x9e\x6c\x37\xea\xf1\xdb\xf1\xd0\x17\x8f\x09\x78\x72\x8f\x95\x17\x4b\x73\xce\x8a\xc8\x38\x40\x0a\x29\x20\x12\x09\x4e\x29\xd1\x59\xf5\x0c\xa4\xa4\x68\x38\xe0\x05\xfe\x32\x95\xcd\x2c\x5b\xca\x82\x92\xd1\x8b\xf9\xdc\x5a\xf3\x32\x3f\x68\x76\x94\xc1\xde\xa9\xe9\xd8\xdb\xf8\x45\x49\x2a\x4b\x63\x15\xbd\x6c\x26\x20\x28\xd2\x00\x6e\x31\x61\x51\x72\x33\x51\x82\xfc\x31\x0a\xef\x58\x00\xa5\xaa\x60\xf5\x46\x21\x2f\x75\xa9\x58\x09\x7f\xcf\x93\x71\xab\xcf\x0a\x3f\xae\x72\x50\xc3\x49\x2b\x77\x63\xc1\x42\x70\xd8\xfd\x22\x25\x25\x92\x36\x87\xad\x65\x0b\x54\xd0\x8e\x59\x9b\x07\xb9\x01\x6f\x2d\x80\x28\x66\x75\x47\x9b\x03\x69\x07\x6b\x94\xc6\x90\xfc\xe8\x41\xbd\xd9\x81\x07\x5b\xd5\x5a\x28\x4a\x36\x7c\xef\x6d\x34\x6b\x37\xf0\x49\x14\x64\x56\x64\xd0\xa2\xeb\x69\xbb\x13\x18\x64\xe5\x85\x9c\xb1\x36\x68\x67\xa9\x83\x75\xb3\xa2\xb2\x52\xb3\x9d\xb3\xc9\x5e\xd1\x68\x7c\xb8\x87\xd1\x0d\x25\x81\x1d\x24\x58\x25\x68\x4a\xa1\x78\x5f\x64\x43\x64\x8b\x3a\x9d\xc6\x30\x72\x33\xa2\x1d\xbc\x15\x4d\x13\x33\xd7\x5a\xbc\x47\x6a\xd0\x0f\xfc\xf1\xb6\xbc\x13\xab\x25\x64\x0d\x80\xd9\x7b\xbb\xb8\x9e\x27\xfc\x0e\xae\xd4\xa0\xdb\x2a\xae\x22\x99\x2c\xb9\xc5\x09\x71\x36\x4b\x6c\x88\xa1\x5b\xd8\xf9\x68\x84\x3b\x3f\x80\x4e\x23\xeb\x68\xf6\xa0\x52\xe2\xe1\xf2\x7a\xdd\x62\x92\x1d\xd9\x16\x3c\x74\x73\x35\x59\x35\xbd\xe3\xfa\x4e\x52\xd4\xa3\x26\x9d\xc2\xce\xcc\xe4\x1d\x95\x37\x6f\xa1\xf6\x76\xb5\x3b\x0d\x7c\xad\x34\xee\x29\x51\x6f\x8c\xab\xec\x14\xb3\x2e\xc2\xdc\xb8\x58\x18\x7d\x5c\x55\xd5\x49\x63\xc0\xd7\x4b\xac\x1e\xc3\x88\x6a\x0e\xa9\xe1\xf5\x95\x99\x7c\x4e\x1d\x33\xf7\xa2\x8b\x57\xe7\x6f\x8c\x82\xf4\x99\xea\xdf\x05\x77\x94\x47\x78\x3f\xca\x1c\x8f\x88\x14\xbd\x36\x38\xc4\x18\x5b\xaf\x5d\x43\x0c\x88\x06\xcf\x66\x0d\x0f\x30\x58\xd9\x93\x17\x3b\xb3\xd9\x35\x61\x52\xa4\x62\x59\x5e\x47\x15\xb2\x7f\x06\x19\x4a\x04\x19\x56\x9f\x74\xb9\xa9\x7e\x7f\x90\x59\xcf\x3f\x16\xca\xf4\xe9\xdf\xa7\x29\xb6\x7e\x4b\x0d\x78\x3d\xbc\x52\xb5\x56\x0f\x9a\x52\xd7\x3b\x1d\x97\x35\x1c\x0e\x14\x1f\x08\xab\x18\x15\x8d\xb7\x37\xf2\x26\x6e\xd0\x7e\x94\x3c\x71\xcc\x69\x28\x3b\x85\x32\x6d\x6d\x39\xc7\x56\x54\x3c\x69\x79\xb4\xc1\x02\x37\xc7\xa0\x9e\xc2\x2e\xcf\xdb\x0c\x7d\xb3\x72\xaa\x0a\xed\x9d\xef\xbb\xbf\xeb\x7a\x9e\x27\x1a\x12\x39\x6c\x3f\x10\x39\xec\xae\x48\x6a\x8f\x0f\xca\xd7\xb2\x47\x4e\x81\x1b\xf0\x8e\xdd\x71\xc7\xcb\x17\xf1\x76\x9e\xf5\xd3\xa6\xd5\x97\x80\x3f\xce\x80\x38\xa4\x43\x17\x42\x35\xd6\x6a\x33\x4a\x15\x72\x67\x01\xa8\xb0\x07\xc9\xae\x6c\xfd\x7c\x11\xcd\x43\x6b\xdd\x14\x50\xec\x07\x68\xeb\xa2\x3e\x6a\x80\x75\x5f\x46\x83\x80\x27\xad\x9e\x94\x15\x12\x21\x4c\x0f\xe4\x89\x32\x5a\x9d\x09\x36\x6e\xc5\x2c\xe8\x5b\xe3\x7d\x44\x2f\xcd\xa3\x88\x5a\x7c\xb3\xca\xd0\x1a\xc5\x8b\x34\x41\xb6\x70\xe4\xfe\xa9\x8b\xad\xe8\x8d\x8d\xb3\x22\x89\xfe\x3e\x1b\x5b\x73\x9e\xd0\x3a\x2f\xaf\x91\x40\xcd\x8a\xf4\xc7\x29\xba\xd7\x69\xd8\x5e\x13\x66\xc9\x86\x24\x75\xa1\x35\xf1\xc7\x32\xa4\xdc\x22\x4a\xcd\xb3\x49\x2e\x25\xd8\x71\x31\x8b\xf2\x44\x39\x11\xc1\x79\x37\x1c\x87\xd4\x9c\xcd\x9e\x6a\x08\x52\x04\x33\xe7\x0c\x22\x38\xec\xb6\x04\xa5\xb7\x20\xbc\xce\x4a\x05\x7a\xb4\x17\xb0\x52\x81\x29\x6a\x19\x53\x8e\xec\xd1\x5a\x30\x72\x26\x57\x54\xa7\xc6\x0c\x3b\x87\x66\x43\x6a\x2b\x69\x2c\x65\x6e\xfc\x5b\xf0\x46\x82\x34\x4c\xd7\x67\x72\xa3\xe2\x5c\xc0\x41\x79\xca\xaa\x0c\x74\xc4\xfa\x82\x62\x23\xf4\x86\xf3\x4a\x2c\x69\xac\xc0\x44\x95\xa1\x0e\x2d\x1d\x04\xbd\x09\x7a\x41\x77\xaf\xf2\x0d\xae\x1c\xce\x22\x86\x35\xce\x04\x42\xb3\x9a\xcc\x2a\x79\x3e\x3d\x2e\x82\x9a\x1e\x0c\x2d\xe1\xb3\x47\x0d\x86\x41\xb9\xb1\x6e\x42\x1a\xc6\x23\x5a\xbb\x28\xa4\x25\xa9\x2b\x1d\xe6\xc6\xd4\x81\x6f\x1d\x15\x5d\xaf\x8f\xba\x94\x6c\x9c\x33\xbe\x36\x31\x58\x19\xfc\xf0\xb2\x22\x06\x03\xf2\x26\x5d\xb5\x69\x44\xec\x7d\xe8\x2a\x71\xb2\x87\xd0\x0e\x17\xc3\x93\x5d\x83\x93\xb2\x45\xcc\xa4\x05\x72\xb2\x96\x6e\x45\x1c\x64\xa4\xa0\x6f\xb8\xa6\xb3\xea\x43\x0d\xf0\x09\x2e\x45\x79\xb2\x39\x43\xe8\x68\xd8\x4f\xb4\x77\x02\xe4\x67\x9a\xab\xcc\xdc\x00\xd9\x01\x64\xe9\x7d\x95\xfb\x6e\x77\x14\x99\xa6\x43\xe2\x9a\x93\x00\x73\x73\x54\x46\x1b\x8a\x4d\x63\xc8\x94\x03\xfe\xd0\x7b\xbb\xf0\xf3\xbc\x02\x8a\x58\x08\x3a\x85\xdd\x75\x4b\x34\xa8\x11\x95\x1c\x0c\x5a\x82\xfb\x09\xf3\x18\x48\xdc\x32\xe5\xef\x83\xa6\xa6\x41\x0f\xdd\x45\x87\xfb\x05\xa4\xba\xaa\x02\x20\xec\x06\x6f\x7a\x71\x96\x0d\x54\xf8\xdd\xbb\x7d\xed\x40\x05\x8d\x89\x6f\xeb\xaf\x55\x4e\x6d\x36\x89\x3d\x25\x9c\x18\xc3\x3f\x36\xa0\xc5\xc6\xfc\x88\xd9\xde\xe2\x17\x9b\xe0\x3c\x92\x44\xba\x54\xd8\x21\x80\x08\x24\xe4\x77\x7e\xc8\x70\xfc\xc1\xf6\x36\x03\xf7\x15\x68\xac\x3a\x0b\xb1\x8e\x9e\x6b\x05\x08\x62\x25\x83\xcc\x46\xf9\xf2\x8a\x98\xb6\x8e\x46\x2e\x62\x0e\x1a\x8e\xad\x8e\xe8\xca\x58\xfc\x73\xf4\x1f\x0c\xa6\x76\xf1\xea\xb3\x8b\x40\x2b\x9d\x48\xc6\x2c\xf6\x56\x86\x57\xd0\xf2\xe2\x69\xb2\xe2\x52\x8a\x93\xdb\x3e\x3a\x03\xab\x5f\xc0\xcd\xb9\x74\x8c\x38\xeb\x16\x6e\x11\x4e\xa0\x28\x8e\xcf\x2d\xcc\xd1\x2c\x8b\x52\x2d\x4e\xec\x7a\x8a\x2a\x42\x50\x69\x3a\x9e\x08\x4f\xd2\xf1\xaa\x17\x7a\xad\xdd\xde\x46\xcb\x33\x96\x08\x16\x9d\x2f\xaa\x5f\x05\x98\x1a\x37\x1d\xf0\x89\x0a\x1f\xf6\xa6\xdd\xb6\x8a\x7d\xbd\x09\x8b\xc9\xc6\x48\x19\xe9\xc4\xa4\xe9\x29\x02\x5c\x86\x8e\xd4\x4d\xac\x2d\x4f\x87\x50\x67\x6c\xb1\xfe\x61\x30\x03\x7d\x63\x41\x89\xcb\xf2\x5d\xc2\x8b\x08\x29\x9b\x53\x75\xfa\x6a\x9a\x57\x34\x0d\x69\x0d\xaa\x4c\x3b\x04\x95\x68\x5b\x76\xf5\xe8\x04\x88\xf0\x36\x90\x74\x72\x82\x5e\x42\x5d\x1a\x3c\x34\xb9\xa5\x16\x79\x29\x1d\x9d\xa0\x8d\x28\x0f\x28\xd9\x62\x38\x45\x14\x0e\x1f\x9c\xf3\xd6\x3f\xd0\x77\xaf\xb6\x5c\xf8\xe0\xe5\xca\x20\x99\x1a\x8a\x70\x72\xda\x96\x4c\x11\xf7\x5a\xdd\x51\x59\x8d\x2c\x6a\x43\x16\xcf\xad\xe6\x07\x5c\xbd\x5c\xd1\x95\x03\x2b\xbe\x40\xc7\x4e\x39\xe7\x15\xf6\xdb\x8b\x0c\x28\xc1\x28\x5c\x4d\x62\xdf\xe8\xa6\xf9\x15\xe2\x2c\x69\x74\x1c\x0e\xc8\x59\x39\x66\x47\xd6\x70\x1d\x18\x63\xee\x5b\xa3\x37\x05\xef\x8d\x8c\x7c\x21\xdc\x2b\x82\x6b\xb1\xa3\xe7\x89\x63\xb8\x1e\x9b\x4b\x59\x37\x11\x97\xef\xcb\x5d\xb3\xc9\x00\xf6\x94\xa4\xae\xf2\xc4\x20\x97\xc9\xcc\x4b\x27\x01\xf8\xe9\xa9\xca\xef\x98\x2a\x89\x5e\x24\x55\xa6\x66\xc7\x71\x48\xce\x85\x10\x68\xb5\x59\x73\xde\xa6\x0f\x1d\x18\x34\xaa\x71\xe4\x77\x03\x4c\x1c\x3c\x32\x01\x8d\xc9\x6b\xf3\x32\x73\xef\xbe\xa2\x68\x90\xe7\x29\x65\x22\x8a\x39\xae\xe8\xe5\x3d\x3b\x10\xa0\x75\xda\x84\x1b\xee\xc2\xe9\xa4\xef\x3c\xc3\x74\xa4\x29\x31\x25\xce\x91\x57\xbb\xd7\xe9\xcc\xc4\x9f\xca\x31\x64\x01\x47\x40\x74\x70\xb9\x3d\xcd\x85\x23\x6d\xcf\xe6\x4a\xef\xe8\x3a\x40\xd6\xfa\xb2\xb4\x59\x3e\x2b\x7d\x62\x59\x12\xc9\x9b\xc0\x7e\x74\x22\x38\xa7\x43\xe6\x54\xc2\xd3\x0f\xdd\xcd\xd0\xc7\x45\x94\xa7\x03\x32\xba\xbc\xca\xed\xa5\xd7\x48\xaa\xf2\x2e\xab\x15\x88\xcd\x01\x85\x12\x52\xa7\x7a\x09\x5d\x54\x59\x47\xdd\x1a\xf8\xec\x4d\xcc\x72\x5f\x52\x3e\x9e\x95\x83\x66\x29\xa2\xa8\xe7\x3d\xaf\xbd\x7d\x5e\x55\xbd\x37\x7e\x3a\xb9\xdb\xa6\x01\x13\xd7\x2a\xdc\xcd\x25\x2a\xd0\x4c\x61\x3d\x71\xa6\x14\x0a\xc6\x48\x44\xe7\xe1\xc7\xd4\xd9\x33\x76\xff\x3c\x9f\xce\x66\x24\x12\x51\xed\x78\x8b\x1a\x68\xf6\xbc\x15\x7e\xae\x08\x88\x65\x24\xae\x1f\xc8\x42\x58\x93\x7c\xc6\x8e\x38\x76\x7d\x67\x9a\x9e\x04\xfc\x00\x6f\x02\xef\x61\x47\x5a\x9f\x8f\x14\x7d\xf6\x78\x24\x1c\x2c\x4f\x92\x82\x2f\x0d\xe4\x16\xbe\xdb\xfb\x77\x3d\x76\x4f\xcf\x3f\xda\x9b\xc0\x5f\x7f\x0f\x60\xfd\x9c\x75\x04\x7a\xfe\x56\xbb\x35\x1d\x04\xa8\x61\xde\x9d\x14\x47\x2e\x97\x44\x94\xcb\x8d\xe4\x62\xb2\xc6\xc8\x1d\x01\x18\x6f\xb0\x50\x1b\xbd\x5d\x3f\x3b\x37\x7d\x90\xef\x64\xa3\xe1\xc9\xa8\xce\x6e\xbe\x30\x16\x6c\x3c\xce\x15\x8d\x47\x2c\x5f\xd0\x1a\x73\x52\x07\x67\xdd\xe5\xdb\x5b\xcd\x27\xd1\x03\x61\x9a\x63\xc9\xd2\x5c\xe9\x7b\x58\xd7\x52\x1c\xdf\x2c\x0c\x9f\x8f\xe7\x4e\xe3\x44\xd6\xe0\x79\xc8\xde\xe3\x06\x93\x81\x33\x59\xc4\x2a\x1b\x7c\xa8\x2b\x63\x04\xbb\xbe\x0e\x6e\x1c\xdd\x49\xc0\x6b\x25\x34\x85\x86\x27\x60\x93\xe2\x64\x41\xe3\x46\xbc\xe2\x3d\x15\x06\x75\xb1\x62\x45\x66\xdf\x66\xb7\x3b\x90\x97\xbc\x7b\xbb\x36\x39\x06\x57\x95\xa7\xc7\x5b\xba\x24\x88\xd8\x42\x22\xb2\xe9\xa9\xa4\xe7\x32\xfa\xa9\x04\xd9\x09\x57\x74\x97\x8f\x9b\x58\x3e\x8d\x85\xb3\x2e\xf5\x34\x34\x84\xdf\x7d\x41\x38\x34\x09\xf3\x3d\xeb\x12\x93\xe6\xb5\x63\x82\xb1\xf4\x35\x79\x72\x09\xbe\xdb\x35\xe4\x1e\x54\x81\x44\x3c\xfe\x72\x53\x4a\x30\x38\xba\x79\xa4\xb1\x9b\x9c\x6a\x7a\x64\x3b\x51\xd8\x16\x4b\x23\x28\xba\x88\x94\xb6\x41\xb2\xb2\x0c\x12\x77\x4f\xd1\xa2\x13\x7b\x4d\x67\x0c\xd5\x06\xd3\xdd\x23\xae\xef\x1f\xd1\xcc\xcb\xe1\x1b\xa7\xe7\x14\x35\x72\x85\xb1\x01\x5c\x1e\x29\xf5\x85\x24\x44\xce\x39\x5c\xcd\x8d\xd0\x91\x36\xd8\xd2\xe5\xad\xb9\xc8\xf2\xa4\x46\x38\x5b\xe4\x92\x04\x93\x09\xa4\xc9\x6d\xb5\x42\x23\xdb\x51\xb6\x91\xf7\x45\x3a\xf6\xdb\x38\x38\x38\xe5\xac\x26\x5f\x55\x76\x86\xe7\x7e\x65\x4e\x9d\xfc\x90\x37\xa6\xc7\xec\x71\x0f\x86\xa2\xa3\x4c\x29\x99\xb5\x43\x94\x14\xd1\x3b\x3b\xf5\x91\x6a\xcb\xa5\xc8\xf3\x65\x90\x91\x34\xd6\xd2\x13\x20\xcf\x99\xd7\x60\x6b\x4a\xc3\x15\x6f\xe4\x50\x9a\x6f\xc9\xa3\x0a\x74\xac\x04\xf6\xbd\x05\xaf\xdd\xc5\x32\xd0\xd1\xae\xec\x69\x5f\xf9\xba\xd3\x68\xfb\x28\x42\xea\x65\x09\x92\x7d\x8c\xd6\x89\x4c\x88\x94\xd9\x8e\x1c\x9d\xa5\x3f\x98\x28\x5e\xe2\x66\xff\x80\x2b\x6e\x68\x25\xf8\xdc\xf5\x32\x8a\x31\xa1\x90\x78\x60\x94\xf0\x7a\x79\xeb\xc8\xe2\xf8\x8f\x3a\xac\xe8\x82\x5d\xbc\x14\x60\x6a\x01\x15\x67\x2b\x18\x29\x87\x9c\xc1\x4b\x18\x6f\x6b\xf0\x65\x4d\x87\xd0\x08\xd3\xa8\xb2\x4f\x4b\xf0\x4e\xfc\xe7\x24\x06\x2a\x64\x8a\xf1\x86\x55\xa0\x5c\x09\x0c\x4a\x01\xbc\xad\x0a\x3c\x08\x37\x36\x3f\xb2\x0a\x2e\xbc\xc0\x43\xe0\x34\xef\x28\x27\x26\x7c\x58\x63\x43\x69\x2b\xcd\x04\x12\x53\x86\x2c\x52\x98\x89\xfc\x8e\x83\xab\x27\xa7\x98\x56\x63\x7f\x3c\x46\x57\xe7\x62\xb6\x2f\xc0\x48\x96\xf8\x38\xb8\xe5\xe7\x88\x1c\x62\x56\x28\x6d\xc2\xea\x5d\xba\x3e\x98\xda\x8f\xef\x64\x39\xb9\x96\xbe\x7a\xf3\x38\x5c\xf2\xf0\xb0\xb2\x9e\xb2\x02\x0c\x57\x14\x7a\x5a\x01\xed\xd1\xd2\x1e\x67\xa0\xd3\x43\x84\xc3\x9c\xb8\x50\xcc\x0b\x2c\xb2\xd5\x2a\xf8\xcd\x01\xd7\xda\x0e\xe5\x2d\x01\x31\x2f\x8a\x2a\x48\x29\xbb\x26\xaa\x24\x40\xf6\xfd\x7b\x3f\x71\xcd\xc6\x3f\xd8\xb9\x67\xd7\xfe\xfa\xa2\xdf\xcf\x5f\x2e\xca\x55\x8e\x66\x5d\x72\x4e\x07\x6b\x62\x49\x50\x76\x21\x04\x73\xa4\xd4\x91\x54\x48\x19\x20\x49\x06\x08\xae\xf6\x37\x78\x5b\xa5\xc9\x7e\xdf\x08\x43\x1c\xc3\x3c\x2f\x06\x7b\xc6\xdc\x48\x72\x36\x68\x07\x23\x48\x87\xaf\x51\x24\xab\x4b\xcd\xd5\x9d\xea\xf7\x0e\xe2\x86\x88\xd8\x7c\x58\x39\xf0\x84\x78\x11\x38\x71\xe2\x78\xf9\x56\xc1\xc3\xcc\xf1\x2d\xd7\x97\x09\x0f\x21\xcb\x08\x0e\xc8\x90\xc8\x86\x39\x8d\xa8\x75\xc2\x08\xf6\xc4\x57\x79\xc1\x45\x17\xce\x4f\x34\xde\x1e\xf7\xab\x11\x15\xaa\xa1\x33\x93\x96\x2a\x2c\xde\x72\x59\xad\x2b\xf0\x5d\x1e\x15\x6d\x98\x58\x55\xad\x69\xb4\xda\xbb\x81\x2a\x97\xa6\x28\x6c\xe5\x25\xc1\xd6\x74\x70\x87\x84\x65\x17\x4f\x4f\xca\x7f\xc2\xdc\x35\x9c\x9b\x80\x9f\x64\x1b\xef\xe3\x24\x9b\xf2\x33\xb7\x41\xdd\x8b\xcd\x83\xed\x18\xf6\xaa\xae\xa7\xe1\x16\x80\xfb\xe4\x35\x10\x5a\xb5\xe7\x2a\x2b\x6c\x00\xe9\xe2\x05\xcb\x2c\xd9\x76\x92\xc9\x28\x7e\x0c\xda\x59\xa8\x3c\x7a\xa2\x40\x54\xa1\x55\x24\x54\x10\xa9\x2d\xe8\xad\xdb\x9f\x1e\x4c\x9b\x2c\x86\xd2\x00\x0c\x21\x0c\xe5\xd3\x9b\x45\xa7\x6e\xf5\x64\x5c\x02\xde\xb8\x2d\x58\xf1\x86\x88\x2a\x77\x39\xf3\x3d\xd5\xa0\x19\xf2\xc9\x10\xe3\xfa\xd2\x23\x9f\x35\x9d\xfa\xd0\x6a\x36\x34\xb8\x32\x34\x46\x42\x81\x2e\xd6\xac\xa6\xc0\xa4\x1b\x7d\x05\x6e\xf4\x35\x14\x36\x3f\x09\x86\xc2\x3e\x29\xa5\x70\x3a\x1a\xf3\x79\x06\x25\xdb\x6a\xa4\x44\x4e\x6e\xe2\x32\xea\x65\x81\x0f\x14\x8a\x99\x0c\x24\x64\x19\x50\x23\xe3\x5c\x69\x87\x97\x26\x9e\x07\xbf\x97\x6e\x71\xd9\x42\x4b\xc2\x67\x33\x74\xb5\x00\x14\x59\x41\x15\x8c\x63\xaa\x3b\x96\x47\x4c\x4c\x85\xe3\xfb\x01\xac\x42\xe3\x90\x63\x93\xda\x24\xa0\x1f\x21\xa9\x9f\xfd\x7a\xa4\xce\x55\x07\x24\xf0\x08\xd5\x49\x12\x6a\xa5\x50\x89\x6a\x07\xb0\xdb\x5c\x21\xbe\x50\x23\x91\x85\x9e\x91\x2b\xd6\xbd\xd5\x81\x0c\xaf\xe7\x5d\x79\x5f\x69\x06\x3a\x24\x0b\x31\xf5\x63\xc4\xb7\x59\xa6\xf5\xbd\x09\x9b\x8d\xc8\x24\x51\xd1\x2c\xd5\xe9\x9b\xdd\x2d\xc5\x01\xe7\x03\x91\x82\x4f\x4b\x0e\xd2\x72\x20\x9f\xd9\xec\xf3\xae\xec\x8f\x3b\x77\x86\x47\x4a\x0d\x7d\xcf\x60\x2f\xdd\xc0\x03\xf6\x50\x11\x0d\x39\x0f\x55\x3f\x93\x97\x19\xb0\x2f\xbc\x40\x38\x31\xb9\x1f\xcd\x9e\x77\x3d\x09\x06\xb7\x28\x89\x17\x8e\x03\x1d\xa8\xd1\xd3\x62\x37\x0d\x6d\x5f\x8b\xac\xd7\x12\x0f\xef\x95\x92\x55\x18\xcc\x77\x70\x43\x6b\x98\xe3\x4d\x89\x9a\xd5\xf5\x99\x25\xaa\xde\x9d\xcb\xc0\xc9\x6b\x30\x8c\x98\xf3\xae\xe6\x40\x21\xbc\x35\x41\x35\x61\xba\xef\x5e\xf4\x85\xe9\xd9\x47\xb8\x96\xab\x92\xa9\x25\xf2\x2b\xc2\x34\x5c\xad\x3d\xbc\xcf\xef\x30\x9d\x53\xbc\xbe\x6d\x84\xa4\x48\xba\x84\xdf\xfc\x52\xc2\x7c\x92\xfe\xae\x59\x47\x76\xfe\xc1\x7e\xd2\x60\xf8\xe5\xc5\x08\xb0\x79\xad\x5f\xce\x46\xcf\xf9\x11\xde\xbb\x29\x69\x18\xd4\x3a\xa4\x11\xc9\xa2\x01\x72\xae\xc4\xd5\x14\x95\x0e\x62\x33\x33\x8c\xb0\xf9\x52\x85\xbc\x7b\x61\xf5\x1f\x02\x5d\x7b\x08\xf8\x32\x00\xa3\x13\x6c\x33\xa2\x4d\x73\x28\x45\xa9\xca\x8b\xaa\xa2\x44\xda\x36\x36\x88\xe8\x84\xbc\x4f\x70\x55\x48\x1e\x6a\xcb\xd2\x72\x7a\x86\x37\x4a\xa0\x77\xfe\x48\x70\x18\xef\x19\x2c\x1e\xb4\xe0\x3e\x25\x85\xc6\xde\xe5\x91\xd5\x78\x06\x40\x88\xd0\x68\x38\x4e\x2c\x38\x8f\x75\x6a\x9d\xb0\x47\x2e\x87\xd0\xf3\x01\xa4\x8f\xac\x7b\x98\x71\x54\x44\x5c\xb6\x43\xaf\x89\x1d\xc3\xe3\x96\x0b\x38\x4c\x9a\x89\xd6\x85\x67\x9f\x5b\xaf\xd2\x4a\xc4\xf4\x2a\xa9\x0c\x93\x26\x9b\x87\xf5\xfc\xb2\xed\x4c\x99\x0f\xae\xdc\x63\x39\xbd\x08\xe0\xac\x50\xa3\x68\x7d\x05\xbc\x78\x69\x91\x99\x24\x09\x03\x5c\x61\x44\xf2\xf0\x84\xd1\xca\xb3\xd9\xa3\xca\x87\xf9\x7e\xf5\x15\xe2\x5c\xad\xcb\x9a\x2f\x35\xc0\x74\xa1\x06\x37\x6b\x74\x64\xb0\x3c\xef\xdc\xee\xbc\xc5\x59\xfb\x81\x3d\x34\x78\xce\x66\x0c\xa9\xd9\xeb\xac\x3a\x0c\x10\x2e\x0c\x67\xfc\x48\x60\xcf\x5d\xf2\xe1\xfa\xc0\x69\xff\xe5\xd7\xb9\x66\x3a\x29\xd3\x6a\x43\x59\x3a\x48\x4e\xba\xb5\xa8\xd0\x7a\xdc\x11\xee\xf3\x12\x27\x19\xe2\x8a\x60\x7d\x84\xdd\x12\x26\x3b\xd2\x0a\xaf\x77\x8c\x6e\xa3\xcf\xe0\x8f\xd2\x55\x6b\xd1\x34\xa2\xd7\x94\x31\xc5\xcb\xb1\x03\xdd\x41\x13\x3b\x39\xad\x06\xe9\x2d\x1c\x24\x7c\x9b\x41\xe1\xb0\x1c\x99\x87\x18\xa8\xa4\x5e\x3f\x6c\xea\x26\xe0\x3c\xac\x6e\x74\x10\x5c\x84\xd4\x9f\x39\x9f\xb6\x97\x10\x8a\x8d\x18\x36\xb3\x88\xf3\x57\xd9\xcb\x04\x1d\xfa\xd7\x83\xac\x0a\x6c\x7c\x3e\x04\x83\x0c\x40\x10\x26\x13\xee\x45\xba\x2b\xcf\xe7\x8a\xc7\x13\xbe\xad\x21\xaa\x12\xa2\x89\x02\x7a\x64\x75\x0e\x36\x72\xbb\x9d\x2e\x90\x8c\x55\xa9\x03\x5c\xde\x02\x09\x9c\x45\xc6\x78\x5c\x1d\xbf\x8b\x97\x00\x93\x78\x23\xf7\x3e\xd8\x0c\x6c\xa2\xa7\xf6\x06\x5c\x6d\x61\xf2\x61\xa1\xd5\xef\x1d\x7e\xdd\x83\xe5\xd3\x2f\x2a\x94\x18\x53\xd6\xda\x83\x67\x5d\xd0\x95\x5c\x5e\x05\x2f\xa4\x1e\x48\x5d\x7b\x2e\xa3\x1f\x9f\xd8\xf2\x16\x32\xe6\xb9\x99\x62\xc0\x3b\xf4\xe9\x5a\x66\xcb\xac\xcf\x9c\x7e\xcd\xf9\x9e\x30\xfd\xd2\x49\x8f\x54\x8b\x94\x62\x20\x17\x8c\x74\x95\x50\x97\x24\xdc\x4b\x4b\xb6\x71\x2e\xfb\xc5\x4b\x23\x95\xb7\x16\x95\xb8\x32\x63\xef\x23\x43\x1d\x10\x7f\x1b\x93\x61\x3f\xb5\x22\x0a\x27\x47\x2b\x57\xce\x70\x6c\x47\xee\x5d\xdb\xf5\xde\x63\x71\xa1\xcf\x40\x71\xe5\xb1\xc4\x97\x49\x0e\x1a\x12\x21\x9f\x56\xc2\xe6\x36\x86\xed\x1d\xda\xd0\xf0\x63\xc8\x4b\xcc\xbf\x51\x82\x33\xd0\x78\x6c\x76\x16\x31\x3c\x58\x45\xc9\x71\xb8\x86\xb9\x6c\x09\x92\x12\xe5\x9e\x2b\xde\xa9\xad\x95\xd0\xbb\x91\x78\xcc\xb3\x72\x22\x33\x29\x69\xed\xb8\x43\x61\xa4\x6e\xae\x9c\x3b\x8b\xb4\x26\xd8\xf7\xc4\xff\xbc\x8d\x11\xdd\xb7\x80\x25\x9f\x83\x42\xf3\xbb\x02\x4a\xde\xee\x7f\x2c\x40\xe9\xd6\x5f\xb7\x31\xed\x97\x9f\x40\x70\xf4\x78\x59\x94\xc0\xa1\xfd\x74\x8c\x68\xa2\xf0\x06\xcb\x2e\xc8\x8b\xab\x8a\xca\xe4\x83\x87\x5c\xef\xdb\x66\xcf\x00\x42\x22\x88\xaa\x03\xc5\x09\x14\x6a\x90\x1f\xe2\x12\xf5\xa0\x59\x8b\x35\x5f\x49\x62\x58\x58\x22\xcf\x89\x83\x6f\x31\xe0\x0a\x87\x70\xda\xa7\x38\x78\x8f\xa2\x1d\xdd\x5b\xd8\x49\xb7\xfe\xe5\x8c\xb7\x8b\x54\xd6\x30\xe8\x13\xae\x4f\x8c\xb0\x5c\x38\x82\x65\x4f\x3d\xb3\x75\xb4\x0a\xf9\xd4\xe1\x0e\x42\x20\x66\x40\x60\xcb\xb8\xa0\x06\x08\xcc\x2b\xdd\xd3\x05\xc3\xfb\x57\x84\xc1\xcd\x83\x33\xad\x1e\x6f\x81\x38\x2d\xd0\x35\x5d\xc8\x4d\x85\xcb\x0c\x40\x8f\x8c\xa1\x5f\xbb\x92\x4e\xba\x52\x88\xe2\x18\x47\x50\x5f\x6d\x27\x0a\x75\x05\x00\x30\x53\xbb\x04\x56\x01\x57\xf7\xaa\xe1\x5d\x72\xbf\x61\x46\x82\x1f\xd4\x45\x2b\x05\x4d\x09\x48\xa9\x71\x2c\x87\x27\xcc\x78\xeb\xb4\x79\x69\x63\x94\x29\xbc\x6f\x25\x90\xae\xc0\x42\xdc\x7b\xb0\x1f\x99\x06\xad\xb3\x85\x27\x42\xea\x62\xba\xa4\x3b\xcd\x47\xec\x13\xb1\x70\xc6\xa5\x26\x8f\x95\x04\xc4\xf7\xc8\x68\x33\xd4\x60\x2f\x17\xa2\x56\xf3\x7d\xab\xeb\xc4\xb0\x93\x9e\xd5\x01\x80\xdc\x16\x5f\xc7\x28\x42\xa9\x60\x67\xbc\x1a\xe4\x5c\x98\x41\x54\xa3\xcd\x3f\xfb\x29\xd0\x18\x5c\xef\x0e\x2b\xd1\xe1\x67\x0a\x5a\x16\x90\x91\x5b\xf9\x6c\xe7\xa1\xe5\x46\x91\x32\xde\xc6\x01\x8d\x93\x94\x4e\x0b\xd9\x8a\x49\x46\x3d\x49\x89\x16\x9b\x86\x05\xb8\x70\x69\x7c\xc6\x70\x4d\xff\xc0\xc4\x40\xa8\x58\xb0\xa7\xd8\x24\xd2\x7d\xcb\xda\xa5\x9e\x3f\xbc\xc6\xf0\x49\x16\x89\x12\xb2\x8c\x4f\x5d\x95\x46\x2d\x15\x8e\x6c\x50\xcb\x84\x88\x21\xee\x75\x1f\x72\x75\xc7\x69\x7b\xe9\x8a\x2b\xe0\x86\x52\x3c\x24\x99\x0a\xee\x61\x98\xcf\xbb\xbe\xe1\xc1\xbc\x9d\xc1\x1e\x22\xf6\x20\xe4\x4b\x7b\xf9\x86\x87\x92\x2c\x5a\xcf\x9c\x8d\x91\x31\x19\xb8\xee\xfb\xa4\x43\x50\x8e\x60\x6b\x78\x30\x96\x4d\x0e\x4c\x95\xd5\xe8\x75\xd8\x97\x15\xb7\xcb\x53\x63\x99\x21\x2e\xb9\x56\x4d\xfc\x73\x16\x8e\x07\x19\x8b\x6f\xb6\x7e\xfb\x45\x8c\x5f\x18\xd5\xa7\x4a\xd9\xbc\x12\xb3\x11\x84\x98\xc1\x0b\xa4\x60\xcb\x4a\xe2\xce\x25\x2d\x67\x66\x8a\xa2\x8e\x8a\x18\x59\xce\x66\x9e\xb7\xe4\x43\x17\x89\xc6\xfc\x7f\xd9\x79\xaf\x9d\xd9\x8d\x65\x4d\xf0\x55\xe6\x9e\x03\xd0\xbb\x4b\x7a\xef\x3d\xef\xe8\xbd\xab\xa2\x7f\xfa\xc1\xd2\x92\x96\xb4\x37\x76\x9f\x73\x80\x56\x03\x1a\xa0\x7f\x20\x81\xaa\xbf\x92\xc1\xc8\xc8\x30\xdf\x97\x4c\x26\x2d\xa4\x5c\x66\x32\xf8\x91\x0b\x24\x83\x7f\x29\x45\x6c\xbf\x9f\xdb\x19\x1a\xb5\x4d\x97\x0c\x84\x88\x9b\xc3\x6f\xf7\x45\x4e\x00\x65\xad\x5e\x1c\xf3\xad\x90\xc6\xed\xb8\xbf\xcb\x5c\xfa\xf4\x99\x00\xc8\xca\xa8\x65\x95\xba\x44\xad\xa0\x38\xce\x35\x0e\x67\x22\x0c\x66\xc1\x17\xd9\x0c\x0e\x59\x94\x7a\x60\x31\x5a\xd9\x86\xc4\x21\x7a\x27\x3a\x94\xe0\x4c\x4d\x3e\x41\x55\x1c\x55\x6a\x91\x3e\x27\x98\xf8\xad\xab\xd4\x69\xc9\x39\x0c\x77\x08\x64\x9c\x84\xf9\xd6\x78\x03\x78\x67\xb5\x56\xce\xdf\xbb\x58\xda\x74\xff\xb0\xb5\x8e\x29\xfc\x0b\x2d\xf9\x89\x3a\xc0\xfd\xb3\x8e\xcc\x36\xea\xd0\x98\x75\x17\x06\xdd\x8c\xc7\x3e\x82\xaa\xa4\xa2\x14\xce\xde\xd9\xc3\x3d\xd0\x44\xb7\x19\xab\x1b\x19\x7e\xf2\xcf\x25\x92\x2d\x0c\x15\x9e\xd9\x1a\xae\xbc\xf4\xc2\xc1\x70\x21\xab\x4d\x32\xe1\xa9\xce\xa3\x56\xb1\x7b\xbf\xef\x49\x97\x4f\x6a\x77\xdc\x6e\xe2\xa3\x51\x51\x14\x8e\xbe\x73\x4d\xe3\xe8\x5d\x14\x58\xfb\xee\xfc\x9b\xc2\x00\x47\xd4\x8e\x21\x33\x75\x89\x81\x06\x2b\x4a\xc0\x4a\xb4\xe0\x8c\x59\x4c\xc5\x2c\x92\xe9\x2f\x1d\x58\x59\x13\xc0\xe0\x90\xae\xb9\x99\xde\x12\xd9\xb4\xec\x0f\x72\x86\x6b\x5a\x2e\xbb\x19\x17\x85\x21\x68\xa8\x7e\xa5\x77\x86\xe4\x5f\xde\x2b\x3f\xcc\x56\xd9\x27\x38\xe9\x06\xbe\x7b\xa5\x71\x25\x6c\xb2\x3d\xe7\x45\xbf\x65\x1b\xcc\xa0\x8e\xd3\x36\x66\x49\xbb\x44\x6d\x63\xca\x2d\x32\x82\x63\x20\x5f\x72\xa5\xc3\x72\xf7\x96\x1e\xc0\xd1\x6c\x73\xb4\x44\xf4\xf7\x32\xf1\xaa\x5d\x11\x73\xd9\x1b\x65\x21\x72\xc9\x89\xa4\x3d\xf3\x28\xe0\x74\xf0\x90\xce\xa0\x03\xf7\x00\xb8\xa9\x19\x56\xe8\x46\x66\x2b\x83\x66\xa2\x29\x99\xbf\x02\x67\xe0\x7d\x4a\x8d\x17\xdb\xde\x00\x76\x31\xf0\x81\x4b\x26\xd1\xa7\xfb\xcf\x33\xc3\x40\x3b\x30\x3b\xd9\x56\xec\x4d\x95\x6d\xee\x5d\x0c\x37\xf9\x4c\x70\xf9\x4d\x39\xa6\x20\x17\x6a\x6a\xa6\xcf\x0a\x2c\xf1\x94\xdf\x0d\x69\x67\x7b\x2e\x25\xdd\x5d\x4e\x15\xad\x4c\xe3\x53\xea\xdf\xcd\x15\xc9\x97\x4c\x02\x8d\x68\x7c\xaf\xad\x58\x06\xc5\xcd\x7b\xc3\x42\x64\x9e\x9b\x53\x38\x3c\x99\xcf\xda\x0b\xd3\xac\xa5\x05\x05\x14\xa9\xaa\x26\xd2\x57\xff\x1a\x5d\x4a\x31\xcd\x25\x6c\x59\x42\x18\x39\xe1\x3a\x2e\x8a\xaa\x62\x2b\x09\xdc\xcb\xb9\x4f\xcd\x88\xb1\x79\xd0\x27\xe0\x86\xa6\x9b\x46\x8a\x71\xf0\xaa\x79\x24\x06\x93\xf1\x4f\x11\x88\x52\xcb\x59\xcd\x7e\x30\xbb\x18\xf2\x0c\x85\x4a\x38\x43\xf9\x1f\x91\xbf\x00\x11\x77\x0c\xe6\x66\x34\x55\xbd\x5f\xe4\x9e\x23\xd4\xb5\x55\x29\x9f\x80\x0f\xf7\xf4\xcb\x9e\x56\xbb\x8c\xf1\xd2\x9b\x79\x5e\xc5\x33\x68\x8b\xa5\x23\xe6\x42\xaa\x25\xa4\x91\xbf\x2a\xaf\x88\xcd\xe0\x44\xd3\x78\x6e\x96\x5b\x7a\xb1\xc4\x04\x35\x62\xbd\xa3\xcc\x40\x9c\x2f\xa0\x25\xd1\x25\x7e\xa5\x71\x53\xee\x58\xd9\x85\x82\xdf\x61\xc6\x35\x84\x5d\x2b\xc3\x26\xcd\x81\xfa\x62\x20\x09\xe1\x90\x36\x36\xa0\xd4\x4f\x4d\xb7\xf0\x6a\x28\x87\xd7\x29\xee\xc8\x23\x99\x7b\x05\xd0\xeb\x6c\x9e\xf0\xda\x75\xbe\x1a\xc5\x2a\xb7\x56\x7c\x34\xb2\x03\x0f\xa5\xb1\x01\xff\x02\xc4\xd1\x15\x36\xd9\xc4\xeb\x1b\x3c\x9f\x00\x3b\x64\x56\x20\x02\x0b\x6b\xf8\x68\x1b\x40\x55\xcc\xf4\xc3\xb8\x8b\xb8\x12\x07\xc2\x3f\x54\x1a\x0a\x21\xd9\x1a\xe0\x6e\x26\x55\x8a\x61\xfa\xa9\x19\xec\xba\x0f\x80\xee\xfb\xf7\x26\x87\xf6\x9f\x95\x1a\x72\xf7\xcf\xcd\x9a\x03\xac\x5f\x10\xe3\xcc\x35\x74\x2d\x1a\xb4\xef\xe1\xb6\x42\xed\xb5\x85\xdc\x08\x04\xac\xe0\xfa\x34\x26\x92\x37\x49\x71\x35\x16\xbc\x30\x49\xf3\x3e\x8c\x89\x54\x94\x27\xf2\xee\x0e\x6c\xe2\xea\xe6\xc6\xef\x65\x66\xa7\xba\x95\x1f\xfa\x17\x36\xa5\x31\x2e\x22\x5e\x4d\xa5\xbc\x7a\x80\x9b\x74\x02\xc1\x69\x94\xcd\x87\x48\x5b\xc7\x23\xad\x95\x75\x5c\xc6\x08\x15\x40\x90\x0d\x41\xce\x6f\xb4\xe6\xd1\x55\xce\x2e\xb6\xa8\x14\xa4\x9b\xdd\x8b\x14\xaf\x14\xf4\x82\xd9\x9e\x3d\x56\xec\x8a\x80\x45\x9f\x9e\x8a\x27\x3b\x18\x35\x9d\x9e\xb9\xa4\xb0\xc4\x57\xa0\x7b\xd8\xd2\x3c\x9f\x2b\xfb\xf2\xb3\x77\x7a\xf9\x21\xb5\x36\x6c\x5e\xe1\xbc\x22\x62\xf8\x70\x34\x22\x10\x03\xa6\x95\x74\xae\xee\x38\xa9\x86\xf8\x29\x6a\x88\x56\xbb\x8e\x1b\x02\x2e\x63\x0c\xef\xdd\x8c\x89\x02\xbb\x19\xff\x20\x65\x04\x7f\xd6\xc8\xed\x9d\x05\x0f\xa5\xae\x48\x94\xe5\x13\x85\xcb\x22\x9e\x4e\xc8\x71\x4c\x2f\x51\xd6\x74\xc1\x46\x23\x51\x8c\x01\x1d\x1e\x1b\xf0\xde\xcc\xd5\x03\xa8\x48\x9c\x7c\xd5\x28\xcf\xf1\x20\x19\xb4\x96\xce\x7e\xc4\x81\x3f\xaa\x15\x6c\xf9\xc0\xf3\xb8\x13\xee\x92\x05\xfb\x28\xf5\x26\x5d\x53\xe0\x99\x6a\x5f\x27\x39\x5b\x38\x5a\x9b\x5e\x50\xc6\x1a\x0c\xc6\x62\x94\x7e\xb1\x2d\xbb\x83\x85\x65\x52\x90\x3c\x19\xb4\xe9\x10\x75\xdc\x80\xd1\x38\x1c\x98\x7f\x4d\x66\xc4\xbf\x99\xb3\xbd\xb2\x04\x40\xb6\xa7\x2d\x25\x5e\xc8\x78\xd8\x22\x6e\xc7\xb4\x89\x56\x50\xfc\x18\xc2\x81\xed\x3d\x87\x68\x48\x4f\x13\x8e\x46\x03\x83\x36\xc1\x72\x04\xbf\xc5\x8e\x46\xf5\x66\xca\xc7\x4c\xc2\xc0\x35\x02\x87\x28\x76\x19\x71\x22\x66\xdd\x13\x5e\xd0\x47\x7d\x5e\xbd\xf9\xa2\xa1\x31\xdc\x56\x2f\xed\xdd\x0d\x86\x50\x1c\x71\x6d\x0a\x15\x0a\xd2\x81\xe5\x7b\xc6\x65\xed\x97\x90\x53\xd3\x30\x6b\xd8\x9f\xf6\x31\xdf\x46\xab\xad\xe9\xce\xa2\x67\xdd\x32\x3e\x96\x7f\x3b\x96\x70\xe7\x74\x2a\xb6\x6a\x11\x23\xff\xe6\x33\xc7\xda\x7f\xda\xfb\x45\x55\xfb\xd7\x17\xf6\x4e\x08\x62\x02\x59\x03\x63\xad\x86\x9f\xb4\x14\xbc\xd0\x65\xe3\xde\xf5\x5c\x71\x33\x9c\x90\x65\x70\xa5\xc0\x15\x94\x9f\x2f\x01\x6c\xd6\x59\x9f\x1f\x09\xd5\x9b\xb8\x19\x6f\x2c\xe0\x79\x3d\xf5\x20\x37\x1a\x78\xbd\x73\x6f\xef\xf8\x0e\xf4\x41\x48\xb1\x57\x4d\xf9\xa4\x37\x51\x9a\xc7\x24\x80\xe4\x73\x3a\xd2\xc8\xd4\x40\xcd\xb2\xa0\x39\x5a\xd7\x16\x38\x17\xe5\xf9\xd4\xbd\x5c\xd5\xc4\x86\xf0\xe3\xf9\xa5\x1c\x64\xd8\xdf\x0f\x4c\x00\x9e\x4e\x40\x7d\xdb\xa6\x04\x9d\x5b\x54\x4c\x71\xa3\xce\x91\x17\x1d\x97\x9a\x1a\x4a\x54\x7d\x18\xd0\x07\x8e\x3e\xaa\x84\x35\x71\xdf\x6c\x01\xcc\x43\x86\x54\x20\x03\xeb\x3f\xfb\x08\x90\x19\x1d\x4f\x51\x31\xc2\x0a\x0b\xb6\xa9\x26\xb4\x45\xb1\xe1\x99\xaa\x82\x15\x9a\xfb\x07\x19\x35\x30\x17\x2e\xe4\xc7\xd4\x47\xb7\x0d\x5a\x6c\x31\xe6\x78\xe1\x97\xa7\x5d\x64\xe9\x89\xa6\xa0\x02\x9c\x20\x17\x74\x25\x23\x23\x8a\xeb\x19\x71\x34\xde\xf2\xad\x8a\x81\xbb\x44\x13\x22\x18\x9f\x99\x29\x67\xe2\x0d\xc3\x90\x46\xe3\xb8\xa2\xa3\x58\x17\x4e\x36\x2b\xac\x67\x07\xc6\xa8\xe6\x3e\x39\x5d\xdb\x7f\x3a\x1c\x55\xcf\xe3\x8a\x29\x66\x1d\xc7\x8a\xa9\xd8\xc2\x15\x3f\x32\xf1\x89\x95\x5b\xef\x26\x5a\x01\xd7\x0e\x75\x18\xd8\x6d\xb5\x2c\xb9\xcb\x7e\x30\x29\xe5\xca\x46\xce\x50\xae\xe8\x4b\x8f\xbd\x31\xb4\xd0\xf5\x0e\x00\x6d\x90\x17\x4c\xd2\x1c\xaa\xa7\x66\x7c\x9f\x15\xd2\x02\x05\x2a\x1f\x34\x2c\x57\xda\xc4\x83\xc4\x2b\x5b\xfa\x7c\x51\x68\x37\xb2\x30\x18\x42\x5c\xb5\x05\xa8\x43\xc1\x3a\x07\x5a\x18\x9c\x23\xec\x7e\x23\x26\xa2\x86\x36\xf2\xe9\x5c\xaa\xf2\x83\x7b\xea\x20\xff\x65\xaf\x8f\x96\x1a\xdf\xcd\x58\x5e\xca\xf8\xf2\x2d\xc8\x47\x47\xd4\x06\xac\x16\xb8\xba\x76\x3b\x4a\x65\x19\xd1\xb2\xee\x89\x3d\x7b\x70\x01\x28\x66\xca\x0e\x97\xe2\x2d\x93\xe5\x7d\x27\x36\xf5\x48\x16\x40\x23\xeb\x4d\xcf\x8f\x26\xbd\x83\xc1\x74\xd2\x66\x3e\x64\x03\xe8\x93\x3b\xb8\x75\x35\xb0\x33\x63\x3e\x08\x4c\xa0\x76\x1a\x7f\xbc\xfc\xe3\x10\x67\xd1\xc2\x74\xfc\x52\xb5\xcd\xcb\x8f\x8e\xd2\xce\x3b\xc8\xac\x56\x95\x71\x5f\x1f\xc0\x83\x32\x8c\x14\xa0\xa4\x62\xb2\xea\xbe\xfc\xbd\x67\x76\xfd\x76\x04\xfd\x3f\x2a\xea\xa6\xbf\x9c\x66\x3b\xfc\x8e\x60\xa7\x84\x80\xf0\x0c\x68\xdb\xd4\x67\x4d\xcd\xe5\x99\xd5\xfc\x44\x8a\xcb\x60\xb3\xc0\x06\x69\x39\x71\x8d\x6e\x76\x98\xa1\xe1\x35\x20\x9a\xe5\x81\xe6\xe2\x09\xab\xb0\x10\x5b\x3c\xe7\xc2\xaa\xea\x19\xfe\xb5\x6e\x81\x4d\x98\x1d\xb7\x56\x30\x94\xf6\x2f\xda\xf6\xb8\x31\xa1\x9d\xf7\xe4\x23\x4a\xf6\x73\x0d\x14\x38\xda\x4f\x7c\x6e\xae\x1d\x5d\xe5\x00\x21\xee\x45\xf7\xad\x32\x1a\xa2\xf3\xc8\x7c\xcd\x9c\x28\xaf\xd7\x8b\xb5\xa1\x55\x76\xf0\x03\x63\x00\x0e\xe3\x1b\xbb\x4d\x3c\x43\xc9\xeb\xa6\x65\x4d\x8b\xa3\x71\xb6\xac\xf9\xb8\x2a\x79\x05\x0c\x33\xbf\x8a\x4c\x6b\x67\x39\xc2\x5f\x90\xaf\x9d\xae\x46\x8e\x93\x69\xf1\x6f\x65\xb3\x4d\x3a\x6a\xf4\x12\x44\xde\x3a\x85\x66\xb9\x2a\x01\xe5\x03\x7d\x66\x7c\x1f\x23\xe3\x31\x83\x2f\xd2\x30\x03\xcc\x56\x35\x4c\x08\xba\xa0\x99\x08\x91\xd9\x44\x1f\xa7\x29\xe5\x28\xcd\x1a\x40\x7f\x13\xdb\x5f\x26\x85\xd9\x7d\xc8\x97\xc3\xdd\x96\xb2\x79\xca\x41\x36\xef\x2f\x5d\x1c\xce\x19\x51\xf6\x3d\x91\x92\x75\xd4\x1e\xfe\xfd\xca\x2d\xd9\x94\xd3\xc3\x44\x75\x8b\xbf\xe1\x06\x49\x47\xdb\x60\x2e\x23\x8b\x41\x3b\xd5\xe7\x86\xf6\x30\x8a\x65\xf1\x42\xe5\x25\xa0\xf8\xb3\x21\x5a\xd6\x72\x06\x78\x9f\x4b\xee\x92\x5e\xe6\x2d\xce\x70\x71\x1f\x8c\x52\xf0\x11\xf8\x4d\xf9\x9e\x01\x0b\xec\x00\x58\xf3\xb6\xd4\xe7\xde\xb2\x6a\x5e\x15\xf4\xa5\xa8\xc6\xa8\xed\x99\x96\x4f\x9a\x92\x9d\xd4\x23\xdc\xec\x8d\x88\xa1\x17\xee\x53\xec\x28\x5f\x2a\x79\xef\x01\x23\x48\x98\x6a\x4c\xf7\x08\x97\xfa\x9e\x30\xcc\x4e\xf5\xeb\x5d\x83\x5d\x4c\x24\xa6\x2e\xb4\xd0\x41\x52\xda\x4c\xc3\x45\x39\x9c\x95\x2d\x94\x15\x17\xd9\x0b\xe2\xa7\x97\xce\x76\x39\xaf\x28\xb3\x6e\x2c\xab\x0f\x91\x2a\x40\x5c\x47\x32\xde\x9b\x2b\x2d\xa7\xeb\x0e\x2c\x40\x9d\x35\xb0\x7c\x4b\x9b\x6b\xd0\x74\x41\xd5\x2f\xd4\x62\x1e\xea\xf5\xcc\x50\x62\x33\xec\x3e\xe3\x70\x90\x88\x62\x77\x4a\xe8\xc3\x4a\x9c\x99\x0e\x07\xbf\x17\xa0\x11\x01\xa9\xa3\xa0\xd6\x27\x59\xd9\x8c\x71\x39\xed\xa8\x07\x94\xc5\x63\xa5\x8b\x9e\xb6\xd3\x71\x8b\x5f\x29\x40\xac\x45\x59\x06\xb4\x4e\xf3\xb6\x48\x0b\x74\xaa\xe6\x40\xf3\x9d\xa5\xd1\x66\xa7\x17\x40\xb0\x32\xed\xb5\x99\x87\x38\x95\x2f\x8c\xe5\x89\x20\x6f\x8b\x0f\x63\x97\x59\xf1\x22\x3f\xad\xc2\xf0\xb0\xf0\x31\x03\x33\xab\x6f\x8d\x35\xab\x33\x5b\xaf\x83\xc0\xcd\x55\x70\x30\x71\x8b\x15\x06\x70\x8d\x92\x08\x2f\xd6\x46\x0b\xdb\x13\xdc\x9c\x68\x74\x45\x54\x36\x02\x06\x82\x4d\x8a\x32\xb1\x2c\x3e\xe1\x0e\x8e\x13\x73\x44\x3d\xd3\x21\x59\x67\x88\xd7\x64\x25\x87\xa2\x82\x26\x61\x20\xd4\x79\x29\x06\x63\x2c\x26\xff\x34\xd8\xa7\x08\xe8\xbf\x35\x2b\x74\xc5\x3f\xec\x69\x5b\xeb\xfe\x25\x29\x88\xbf\x5e\xf5\x2d\x3f\x19\x99\xeb\xe6\xda\x21\xcc\xed\x88\x5a\x36\x0e\xea\x67\x69\x15\xae\x4b\x86\xd8\xce\x9a\xf8\x73\x93\x14\x5f\x63\x1a\x46\x49\x3c\xfb\x4e\x4e\x65\xeb\x46\x1b\x58\xbc\x79\x3b\x78\xd1\x09\x83\x1a\x6e\xfc\xae\x4a\x93\x11\x7d\x38\xc6\x77\xf3\x12\xa9\x8a\xc5\xc3\x0f\x34\x5b\xce\xa9\x7a\xbf\xe7\x41\xff\xb6\x3b\xd9\xee\xb4\xb1\x55\xb0\x58\x27\x0b\xe4\x83\x27\x3a\x05\xeb\x8a\xa0\x0b\x4d\xab\x33\xe8\x01\x1e\xe5\x3d\xc9\xb3\x3d\xd5\x52\x04\x46\xc7\x09\xe8\xeb\x75\x95\x73\xe5\x26\xec\x4d\xda\x55\xa4\x41\x97\x95\x24\x6d\x11\xdf\x4f\x31\x48\x21\x5c\x97\xf9\x9c\x1f\xc6\x37\x2e\x86\x71\xb3\x5d\xd5\xb9\x45\x43\x7b\x31\xf7\xe6\xb9\x3d\xb4\xb0\x2f\x7a\x8f\x6e\x1f\x2d\x2c\x24\x26\xfd\xe8\xd8\x82\xc0\x76\x15\xd7\x5e\x1a\xe7\x4a\xc6\x8d\x1f\xfa\x9e\x69\x5f\xd8\xc6\xab\x8e\x52\xb4\x51\xca\xc0\x64\x88\x8d\x38\xd9\x47\x5f\xe0\xc7\xef\x7c\x81\x93\x11\xb7\xac\x5a\x6c\xb7\xa7\x11\xe7\x58\xac\x19\x66\x0b\x2b\xb7\x2c\xc1\xa3\x6c\x5f\xdc\x20\x5a\x09\x5e\x10\x2e\xb8\x36\x06\xa2\xe1\x42\x2c\x12\xbd\x06\xbf\xfd\x5b\xc4\x24\x2e\x74\x8e\xb2\xf4\x0a\x4d\x92\x34\xe7\x27\x2e\xd6\x5f\x3e\x5b\x03\x1f\x52\x62\xae\x16\x62\x6e\xae\xd3\x09\xd5\xf0\x41\x08\x3b\x1d\x92\x3e\xa8\x4c\x41\x2c\x90\x54\xdf\x86\xa0\x17\x42\x5a\xa8\xea\x7a\x8a\x20\x6b\x77\x76\x65\xf8\x56\xd6\xf4\x59\x03\xab\x30\x1f\x8c\x72\x77\xad\x48\x39\x29\xc8\x74\x90\xaf\xdd\xce\x05\x43\xcb\xfb\x35\x03\x74\x9b\x4a\xd0\x27\x21\xf8\x57\xbc\xd4\x11\x20\xcb\xf6\x0b\xa5\xdf\x3d\x78\xa8\x4f\x79\x5c\xb6\x07\x5e\x25\x58\xb5\x53\x87\x0e\xd7\x86\xbd\xbe\xdc\x45\x41\x13\xaf\x80\x70\xe8\x94\x78\x9a\xa7\x38\xe2\xee\x8c\xdd\x8c\x47\x11\xdd\xa3\x20\x43\x82\xce\x90\x71\x62\x14\xfb\x7c\x2c\x67\xca\xe6\xa2\xec\x28\x05\xd2\x8a\x1e\x0d\xf0\xee\x60\x10\xfa\x66\xaa\x51\xe3\x02\xf9\x23\x28\xd9\xf3\x8e\x7b\xd6\x48\x88\x80\x29\xd7\x20\x66\x4e\xe3\x71\xc4\x98\x28\x10\xdd\x99\x50\x49\x29\x3b\x7e\x98\x21\x3e\x4b\xf8\xb7\x51\x4b\x2d\xe1\x20\x89\x8a\x16\xdf\x4a\x4f\x56\xf1\x44\x53\x60\xef\xf9\x7b\xbc\x3c\x2a\xc5\xd8\x59\xf3\xdf\xef\xfb\x6e\xcc\x01\xf5\x83\xea\xf0\x55\xc9\x49\x39\x4b\x30\x51\x83\x63\x6b\x92\xdb\x0b\x60\x4a\xa1\x5d\xfa\x0d\x23\x30\x9b\xb3\x91\x90\xfd\xec\x8a\xfe\x37\xbf\x9b\xdf\x7d\x97\x7f\x56\xc0\xf6\x7f\x3e\x1e\x1f\xbe\xfb\x27\x80\x84\xe0\xfe\x80\x03\xbe\xe5\xea\x5b\xda\xc9\x2a\x0d\xeb\x37\x50\x17\x06\xd9\xe0\x45\xef\xfd\xb2\x93\x3a\x85\xc3\x8b\x23\x96\xc7\xfb\xa4\x59\xc1\xfa\x78\xbb\x7f\xb2\xb3\x73\xba\x1f\x8f\x51\xbe\x55\xcf\x7d\xc6\x6d\xfd\x06\xee\x86\xb4\x9c\x6a\x3a\x80\x6f\xea\x13\x7e\x14\xe0\x8d\x1a\xd3\xab\xb6\x28\x36\xf1\xe6\x7c\x9e\xb3\xf9\x5a\x02\x26\x49\xd6\x75\x53\xc0\x4e\xc7\xce\x50\xcf\x50\x28\x40\x09\x0e\x92\x29\x30\xc8\x13\x50\x9e\x56\xbb\x97\xa8\x4d\x17\xe0\x7d\x99\x69\x4b\xce\x51\x66\x24\xbb\x19\x4c\x31\x28\x16\x3b\x78\x8e\x26\x09\x52\x2a\x9e\xb9\x6e\xf3\xbc\x13\x75\xbf\xab\xcb\xf7\x92\x80\x64\xa1\x8c\x85\xfe\x56\xce\x4b\x90\x34\x60\x3c\x08\xed\xf4\x00\xdc\x8d\xf2\x2d\x83\xef\xc6\x5b\x8a\xcb\x78\x36\xb8\x71\xa3\xe2\x4d\x7b\x93\x0c\xa9\x4a\x43\xd2\xe9\x82\xf6\x98\xc4\xf0\x86\xb2\x0c\xaa\xaf\xed\x7d\x5e\x33\x5a\x1c\x60\x09\x88\x98\xa7\x57\x3f\x32\x89\xfb\xa2\x75\x67\x34\x37\x7d\xa0\x78\x1e\xed\x1f\x5e\x5d\x59\x0e\x71\x99\x06\xff\x5d\xc4\x98\x60\x84\x71\x73\x46\x33\x84\xb5\xaf\x75\x98\x97\x07\x32\x92\xd8\x0b\x81\xc2\xb7\xd3\x8c\x03\x20\x6f\x18\x30\x01\xd2\x5d\xc3\x2e\x17\xf3\x8a\x9a\xf2\xbd\x6c\xf5\x43\x18\xfd\x78\x8b\x36\xfa\x0d\x21\xac\xc9\x6c\xd2\x7d\x0d\xbb\x22\xee\x33\x32\xe0\xc6\x0c\x58\x03\x09\xb4\x64\x64\xb3\x03\x75\x9a\x56\x5a\xdb\x06\xa1\x55\xb4\xe1\x47\x5d\xef\xc6\xc8\x2c\x79\xb4\x19\x4e\x45\xe1\xdd\x96\xa7\x1f\xa9\x42\x26\x2e\x84\x42\x4c\x16\xe3\x83\xbb\x7d\x9c\x1f\x4f\x8a\x7f\xd1\xaf\x32\x30\x5f\x08\x15\xb3\x91\xbf\x59\xc3\xf1\x76\x9a\x75\x59\xa3\x35\xe7\xe2\xb0\xc8\xf2\x09\x10\xaa\xa0\xf7\xb9\xa6\x38\xd0\x81\xd2\xdd\xc5\x24\x65\xaa\x1c\xaf\xa7\x18\x5b\x77\x65\x92\x44\xd8\xa8\x68\x3a\xd1\xe2\xeb\x9a\x3b\xc1\x9d\x92\xe9\xdd\x82\x4e\xd4\xed\x43\x32\xdc\x86\xaa\x8a\xf5\xf1\xe5\xeb\x33\xe9\x7b\x8a\x3a\xe2\x76\xc4\xd4\x4b\xf9\x7e\x92\x7b\xd2\x13\xd0\x80\x9b\xa4\x18\x95\x53\x12\xe8\x3e\xad\x4d\xfb\xe3\x71\x3c\x0a\x3a\x8d\xfe\x54\x91\xcf\xf0\x21\x71\x45\x34\xf3\x79\x94\x82\x1b\x58\xe8\x80\x99\x0d\x5c\x38\xfb\x98\xc6\xa3\x5e\x44\x12\x39\x95\xb6\xca\x74\xfe\x83\x5d\x9c\xae\x58\xdb\x27\x99\x03\x9d\x81\x31\xdb\x5b\xb6\xd5\x53\x05\x26\xe8\xc6\xf4\xc3\x93\xa4\x77\xa2\xba\x06\x14\x0a\x04\xb0\x15\x55\x30\x79\x3e\x31\xd6\x67\xc9\xa1\xac\xd9\x79\x8c\x86\xf5\xa4\x1e\x96\xed\x9c\x9f\x54\xff\x46\xee\xc0\x80\xcd\x70\x31\xac\x8e\x79\xa8\x4e\x52\x71\xf2\xfc\xad\x15\xb9\xcf\xce\xec\x1f\x16\xe1\x7f\x1c\x67\xb3\x52\x01\xf4\x93\x1d\xcf\x66\x67\x09\x4f\xb5\x3a\x4f\xeb\x2c\xb9\xcb\x7a\x63\xa8\x2c\x2e\xc7\x0a\xb6\xcf\xf4\xce\xd7\x13\xe6\x4a\x00\x98\x99\x12\x8d\x1f\x91\xae\x9b\x8b\x53\x1e\x0a\x23\xa0\xdb\xb2\x6a\xa6\xca\x28\xca\xba\x32\x48\xff\xb1\x5c\x1a\xcd\x32\x02\x34\xa9\x27\x3d\x82\xfb\xb9\x87\x4f\xfc\x41\xeb\x7a\x7a\x8b\x37\xf7\x1d\x97\x6d\x64\x8e\x42\xe7\x1e\x2d\x32\x84\x2a\x79\x94\x98\x6f\xa2\x3e\xe7\xf7\x63\x9a\x9f\x72\xc5\x96\x2e\x7f\x82\xa9\x7a\xe8\xda\x66\xab\x57\x68\xa2\x50\x3c\x12\xbd\x7c\xce\xd1\x96\x32\x23\xc1\xea\x11\xce\x5c\x0f\xa0\xd7\xcd\xc6\x85\x91\x19\xa6\x62\x1e\x66\xf7\x3a\x2c\xc0\x7c\x76\xfc\x00\x05\x3f\xa9\x9f\x9e\x8e\x3e\x6b\x3a\x4f\xeb\x3d\x23\xa0\x35\xc0\xde\x35\x83\xd2\xb9\xcf\x32\x3e\x60\xbe\x7e\x54\xd8\x60\xd6\xf7\x22\x2e\xeb\xc7\x75\x4e\xd8\x7f\xad\x9c\x2a\x18\xe5\x40\x81\x94\x27\x17\x1e\x94\x27\x32\x3e\xee\x77\x73\x03\x93\xdf\xcb\xe1\xd0\x3b\x7f\x8a\xf0\x5d\xbc\x8b\x8a\x8d\xc7\x39\x6e\x1c\x9f\xb1\x5c\xcf\xd8\x91\x45\xaa\xde\x40\x55\xd5\x8f\x46\x97\x62\x54\x0a\x32\xa9\x0c\x58\xc9\x22\xb4\xde\x09\x5e\x15\x08\x6a\x5c\x92\x60\xc9\xf8\xa8\x0e\xc0\xdd\x39\x72\xf2\x87\x32\x85\xf7\xd8\x63\x9f\x3d\x73\xd5\xb6\xbd\xd2\x02\x19\x19\xbf\x9e\x2f\xd7\x5e\x06\x08\xcb\x2f\x27\x8d\x13\xf3\x5a\x1f\xed\x3e\x90\x8a\x3b\x4a\x22\x45\xd4\xa1\x42\x8c\xcb\x6f\xd7\x20\xd6\x09\x73\x46\x52\x26\x14\xfd\xd1\xbc\x48\x28\xd7\xa0\xce\x9d\x25\x66\xa3\xb7\x4b\xde\xad\xc9\x77\xd7\xef\x0d\x9b\x5f\xf9\xd1\xdc\x70\x36\xed\x79\x31\x16\x8d\x1e\x0a\x84\xed\x73\x1e\x3b\x07\x5c\x95\x42\xdc\x1c\xd8\x45\xb0\x0d\x4c\x14\x67\x6e\xaf\x54\x31\xb2\x3c\x6c\xde\x65\xa1\x5e\x5b\xe7\xd1\x32\xd1\x8f\x44\xfd\x22\x21\x8c\x51\x11\x22\x15\x6f\x30\x15\x84\x0e\x4d\x9e\x04\xb2\x60\x7e\xfa\x60\x82\xe6\x07\x32\x43\xb5\xc1\xec\x11\xdf\x4e\x81\x78\x41\xd6\x93\xa5\x01\x72\x84\x72\x39\xf7\x30\x63\x17\xec\x9c\x60\xb5\x03\xc1\x01\xcc\xb0\xdd\x09\x7d\x29\xe7\xfe\x06\xa4\x38\x69\x78\x4f\x74\xe7\x8d\x26\x85\x12\x59\x63\x6f\x8c\xdb\xc0\xab\xa4\xf6\x4e\x0a\xfc\xab\x8d\x66\x6c\xe0\xbc\xa4\xbb\x88\x6f\x5c\x75\x1a\xda\x8c\xd2\x01\xcb\x2e\x99\xd1\x03\xd7\x42\x1a\x68\xd5\x82\x6d\x05\xf6\x7c\x15\x40\xa4\xc2\xe1\xab\x2b\x6a\x9d\x14\x3c\xed\x24\x0d\x0b\xf2\xa6\x6d\xac\x7b\xc4\x8e\xdf\x99\x55\x3c\x8a\xb8\x27\xde\xf0\xd9\x05\xb4\xa3\x12\xd2\x59\x22\x4c\xeb\x52\xc8\x55\xff\xe7\x29\xba\x0c\x2e\x2b\xef\x78\xd2\xe5\xfe\xf7\x6e\x62\xe9\xd7\xe6\xff\xfd\x7f\xfe\xf8\x58\xfd\xc3\xf6\xe1\xff\xb9\xe3\xed\x1b\x50\xe3\xf1\xdb\xd1\x76\x5f\xac\x9c\x8c\x75\x88\x6e\x77\x59\x25\xd5\x34\xf3\xee\x6a\x07\x78\x57\xf6\x5c\xda\x63\xf9\x03\xb5\xc5\x35\x9d\x8d\x55\x46\x63\x49\xb0\x07\x56\x2c\xf1\x31\xed\xae\x20\xa0\xa9\x76\x50\x62\x63\x8d\x1c\x3c\x28\x4b\xbc\x73\x68\x6f\xd7\x65\x01\x52\x76\xa0\xac\xef\xc0\x1a\xe4\x55\x03\x35\xd8\x7e\xf7\x2f\x82\x25\xc5\x7b\x54\x1f\x29\x28\xa0\x69\x61\xc7\xc4\x67\x12\x06\xe8\xa8\x6f\x5e\xc6\x3b\xf3\xf6\x8a\xef\xee\x1b\x4a\x0f\x1f\x12\xfd\x82\xd2\x87\xe6\xfd\x20\xb1\xad\x2a\x9b\xae\x33\x99\xe5\xf2\x53\xba\x90\x37\xf3\x55\x7e\x70\xf9\xf7\x52\xa5\x6d\x8d\x81\xa0\xa6\x11\x79\x9b\xc8\xf6\x15\x19\x09\xc4\xfc\xc6\xfc\xc0\x07\x77\x09\x2a\xb4\x7f\x0a\x96\xa3\x02\x48\xcb\x61\xd0\x76\x06\x79\xa7\xd5\xdb\xd3\x67\x9d\xf0\x59\x20\x41\x5e\x46\x31\x2c\x95\x95\xf4\x78\xda\xbf\xb9\xc0\x24\xec\xf7\xa6\xe4\x79\xe3\x24\x2d\xf4\x0a\x26\xa6\x0e\xb9\xc6\x85\x75\x9b\xa4\xf8\x84\xa9\xd0\x22\x42\x5e\xa8\x20\x3b\xfe\x6a\x0c\x6b\x52\x00\xc3\x34\x5d\x96\x4f\x89\x68\x9a\xaa\xcf\x3b\x88\x1b\x88\x05\x05\xa4\xb4\x04\x59\xb6\x8b\xd9\x5a\x72\x9d\x5a\xf6\xe9\x20\x83\x69\xba\x04\xb4\x1c\x89\x63\xb2\xbe\x35\x4c\x17\x9b\xf9\xd4\xc8\x94\xf9\xa3\xb1\xd2\x48\x42\x9e\x6d\x78\x45\x31\xc0\xa6\x23\xa1\x31\xc8\x31\x91\x2e\xa0\x60\xc9\x44\x21\xde\xba\x6e\xa8\xa8\xb7\x15\x99\xc3\xf7\x63\xc3\xf4\x57\x6c\x8c\x6d\x63\xaa\x3c\x90\x12\xd9\x50\x88\xbd\xda\x20\x86\x5e\xfc\x90\x69\xb7\x03\xf9\xd6\x79\x92\xf4\x5f\x9d\x1c\xb9\x14\x25\x28\xb4\x61\x48\xc8\x47\x7d\x8d\x04\x59\x8c\x35\x17\x0b\x42\x20\xe9\x62\x69\x7f\xbd\x6a\xe6\xa5\xf4\xc6\xd8\xa3\x19\x34\x87\x90\x12\xe4\x66\x61\x29\xb8\x20\xe7\xe4\xe2\x1e\x36\x1d\x85\x70\x90\x8b\xcd\xf0\x35\x71\x1e\xa6\xaa\x55\x7d\xcb\x3e\x85\x9a\x9b\xb5\x0e\xaa\x99\x87\xe1\x55\xad\x8e\x39\xb0\xa5\x50\x3f\x4b\x7d\xb5\xcf\x32\x7c\x64\x4c\x7d\xb5\xc4\x8d\x89\xf7\x51\x60\x96\x0f\x73\x59\xf4\x81\x7f\x1f\x1f\x0f\x6e\xbd\x0e\xa0\x0a\x5d\x60\xd1\x38\xe0\x1b\x3b\x48\x8b\x4f\x36\x08\x61\x35\xc6\x60\x42\xef\xe3\x99\xfa\x47\x83\x8d\x56\xb7\x7b\x6a\x32\x45\xe8\x14\x27\x80\x83\xd3\xf3\xd2\xd8\x2b\x8e\x05\x8c\x91\x66\x38\x62\x18\x2f\x7b\x05\xef\x0a\x22\x94\x7d\x03\xcf\xa8\x54\x64\x81\x99\x0d\xfb\xda\xc7\xe7\x74\x12\xcf\xd5\xaf\xb1\x75\x5d\x62\xf2\xb2\xe4\xe9\xa0\x68\x5c\x19\xf5\x23\xba\x37\xba\x1c\x2d\x0e\x8e\xc6\x8e\x8f\x27\xc5\xea\x57\xbc\x42\x06\x36\x7a\x6b\xa2\xc3\x64\x85\x1c\x1a\x7e\xd9\xc4\xd8\x83\x05\x92\xda\x33\xe2\x2a\x40\xe2\x53\x35\x7f\x6e\xcb\x53\x35\xa1\xfe\xd4\x12\x3e\xb0\x5a\xe6\x38\x56\x7d\x8a\xc8\xaa\x17\x40\x57\x33\x0c\xdb\x39\x32\x6a\x0b\x05\xdc\x81\x7f\x6f\xb2\xf8\x87\x71\xf4\x47\x5d\x43\xb1\x85\x22\x01\x36\xac\xc9\x3c\x73\x0f\x6f\x7f\xf6\xc7\xb1\x3c\x66\x7e\xfe\xf1\x17\x58\xc9\x6c\x9b\x20\xfb\x58\x72\x6c\x97\x46\xe5\x9a\xf7\x50\x47\x92\x07\xa8\x74\xec\x9a\xf2\x50\x17\xbe\xa1\x69\x08\xf0\xe5\x20\xe1\x92\x05\x2d\x51\x4c\xa1\x5f\x0d\x78\x90\xa0\xeb\x27\x79\xc7\x41\xe9\x29\x40\xe1\x6f\xcc\x9a\xdb\xbd\x90\xe0\xb1\x94\x84\xa6\x92\xe0\x6f\x3e\x1b\x44\xc5\x43\x5d\x12\xb9\x67\x32\x05\xc4\x8f\xef\x79\x14\x42\x89\x47\x75\x8a\xdc\x10\x95\x04\x5f\xa5\xf4\xa5\x95\x41\x1c\x72\x44\x1d\x15\xb1\x35\x03\x8e\xe5\x73\x54\x1d\x15\x3e\x38\x8c\x07\xee\x0d\x5e\xb8\x15\x3e\x41\xf4\x5e\x80\x4c\x3f\x41\x0c\xef\x6a\x8c\x9e\xb9\x8d\x8e\xba\x7e\x34\xb3\x83\x6e\x93\x5f\x60\xb3\x5f\x1e\xf3\x61\x1a\x85\xfb\xbd\xf5\x58\x63\xcb\xea\x90\xf6\xab\xe7\x0a\xc9\x2f\x7d\x8a\xc9\x9d\x6c\x4f\x5d\x4a\xd9\xbd\xac\x8e\x3a\x4b\xb4\x44\xf5\xb9\x78\xf5\x89\x7e\xd2\x87\xba\x2d\x7f\xc0\xf5\x97\x79\xf4\x57\x79\xf4\x58\x1d\xd2\x0e\x7e\xab\x08\x87\x92\xb8\xd9\xf3\xd9\xe8\xff\x22\x57\x48\x63\xb3\x2f\xa6\xf1\x2a\xa5\xf1\xcc\x3b\xf6\x49\xa5\x84\x48\x22\xf5\x2c\x63\x87\x56\x3a\xe5\x4f\x1b\x48\xf0\xf5\xd7\x7b\xe6\xb3\x71\xfc\x6e\x93\x23\x41\xe8\x5d\x47\xdb\xb6\xe0\xa8\x5b\xef\x99\x53\xe9\x58\x2c\x8f\xee\xa3\x78\x57\x2c\x8f\x59\xd3\xf7\xa1\x2e\x93\x5d\xa8\xe0\x97\x53\x47\xf0\x57\x9f\x7e\xda\x4a\xff\x6d\x3e\x69\x2c\x89\x99\xd3\xf0\xb0\x4b\x47\xe0\x5d\x7f\xfe\xbc\x67\x81\xba\x5e\x1a\x25\xb4\x32\xb5\x50\x29\x33\x84\xfe\xd0\x47\xf1\xfc\x9a\xff\x3e\x47\xa0\xb3\x92\xc4\x4b\x7f\x85\xc3\xe0\xe8\x37\x94\xc7\x2b\xf5\x68\x2f\x8d\xcd\xb3\x8c\xd5\xfe\x87\x2f\xa5\x9d\xd1\x29\x72\xbb\x17\xfc\xca\x17\x53\xd8\x96\x12\xfd\x84\x12\x7d\xe6\x3c\xd4\x39\x3f\xf5\x6f\x02\xa9\x3d\x4b\x89\x7e\x33\x89\xbe\x14\xc1\xf4\xcd\x8e\x59\x42\x64\x3c\x52\x89\x46\x8b\x67\xf8\x79\xbd\x00\x9b\xd6\x30\x1e\x05\xea\xb6\xf9\x64\x8e\x5e\xe0\xd0\xca\x0f\x5f\xe1\xf0\x35\x8b\x1c\xc2\x0d\x1c\xdc\xe2\x13\xdc\x81\x4c\xc9\xf0\x05\xcc\xf0\x45\xd1\xf0\x47\xde\xed\x47\xde\x84\x42\xd6\xf1\x13\xd4\xf1\x07\xc8\xf0\x85\xbf\xc8\x73\xcf\x04\x0d\xf7\x34\xc2\xa1\xbf\xc8\x1b\xfe\x55\x9e\xfb\xdf\xca\xb3\x3b\x86\xfa\x31\x3f\x7e\x00\x11\xae\x14\x3e\x59\x9c\x8e\xa9\x90\x3e\x39\x02\x35\xbf\xdb\x90\xc8\x22\xfc\x2d\x25\xf1\x48\x90\x50\x75\x79\xa8\xfb\xd1\x5f\x9f\xc6\x35\xe5\x57\xd1\xe5\x07\xcc\xec\x47\xde\x09\x92\xdb\xf0\x9b\xdb\x08\x82\xdb\x0a\x4c\xc9\x0a\x0c\xd4\x0d\x44\xd6\xec\x4b\xd6\xf2\x9d\xdb\xf0\x94\x5f\xf2\x52\x89\xee\xcb\x08\x1e\xf3\xd9\xfd\x8b\x3c\xf7\x5f\xe5\x0d\xff\xad\xbc\xf3\x87\xee\x3a\xfa\x1f\x7c\xf1\x87\x8f\x72\xf4\x6f\xfe\x18\x0c\xae\xf4\xb3\xdf\xcf\x78\xfb\x2d\xfe\x7c\xac\xb1\x79\x1a\x2b\x24\xb1\xcf\x90\x10\x52\xa4\xf0\xf8\x11\xe7\x45\xa7\x80\xf6\xe2\x53\xaf\x43\x31\x0c\xa3\x96\x5e\xe0\xb2\xa1\xdc\x67\xa5\x68\xe6\xfe\x6d\xba\x82\x8d\x23\x3b\xe9\x41\xf9\xb0\xe7\x9a\xc8\x9c\x7e\x10\x66\x17\x01\x25\xdb\x20\xdc\x81\xcf\x13\x0b\x4f\x62\x1b\x07\x3e\x3c\x78\xad\x60\xd3\x52\x14\x1e\x0b\x82\x02\xb9\xcc\x93\x38\x41\x67\xac\x0a\x2b\x19\x43\xe2\x12\x0b\x82\x66\x79\x07\x90\x68\x85\x1c\x05\x84\x9d\xb0\xee\x5a\xc6\x3e\xa7\xb6\x6f\xd7\xf5\x69\x9b\xb2\x21\x3d\x3a\xcf\x92\xdf\x5c\x45\x8a\x2e\xf0\xc6\x0e\x0d\x50\xfc\x3b\x0d\x1a\xbd\x93\x37\x7d\x92\x33\x52\xf2\x60\x43\x69\xc1\x10\x5c\xd1\x56\xd9\xe8\xa9\xbd\x08\x6a\xde\xaa\xf4\x36\x97\x75\x43\x2e\x47\x4c\x5e\xa3\x2c\x40\xa4\x1d\xa7\x8d\x13\x46\x15\xbc\x0f\x32\xab\xc2\x40\xd9\xd1\x57\x52\xc3\xd0\x3f\xda\x28\x5f\x9b\x49\xbe\x30\x52\x64\xc9\x92\xa6\xa2\x06\x9b\xc2\x48\xc3\x91\x05\xfe\xde\x56\x83\x86\x19\x6a\x4f\xe2\x0a\x38\x88\x5d\x06\xdb\x91\x89\x81\x41\x83\xe7\x05\x58\x44\x61\xa3\xf9\x7d\x4d\x18\x11\x5f\x2d\xcc\xe8\x2e\x0a\x9e\x3a\x5c\x01\xad\xd4\x17\x05\x3d\x2c\x5e\x11\x7c\x7d\x6f\x43\x8b\x25\xe4\x9d\x6f\xac\xa2\xd7\xbb\xe0\xb2\xf0\x45\x8b\xb1\x49\x4d\xc3\x0f\xcb\x1b\xf6\x21\x61\x25\x8b\x99\x00\x41\xc7\x75\x2e\xa3\x7d\x19\xe2\x48\x65\x9d\xc7\x0b\x45\x14\x44\x4f\x53\x02\x40\xa2\x74\x0d\xd8\x73\x48\xfb\x4a\xa9\x56\xf8\xea\x22\x3c\x36\x44\x31\xf9\x5a\xe8\x0f\xf1\xcd\x6d\xad\x74\x3e\x5d\x53\x32\x52\xc6\x5f\xd1\xfd\xe5\x65\xf8\x90\xf2\xb1\xe3\x12\xa5\x29\x0c\x2a\x12\xed\x86\x32\x36\xdc\xee\xdf\xf2\x39\xb0\x3e\xc9\x39\x01\xc3\x84\x6a\x8d\x0d\xf9\xb8\xe2\x0a\x60\xa8\x1b\xd5\xb4\xe4\x4e\xbe\xfd\x99\x07\xef\x34\xda\xd2\xca\x4e\x49\xd9\x28\xf0\x92\xf4\x9e\x91\xeb\x18\xb3\xc0\x49\x6c\x0c\x85\x81\xf0\x25\x72\xcf\x39\x93\x4d\xb6\xc3\x6c\x0d\x2c\x59\xae\x9e\x96\x4f\x31\x25\x7e\xa9\x6e\xa2\x36\x20\xbc\xed\xa2\xf5\x74\x29\xd8\xcb\xf2\x9f\x86\x76\x19\x7e\xbb\x6d\x26\xb7\xd9\xae\x46\x22\xdf\x63\x71\x0a\x03\x51\xd0\x97\xaa\x46\xb0\xba\x1d\xe0\xdd\xe2\x74\x30\x2b\x55\x3b\x58\x6f\x2e\xc5\xd1\x42\xae\x41\x3a\x62\xce\x61\x85\x94\x51\xf6\x83\x3a\xd1\xe6\xd3\x2b\xcb\xd8\xf4\xc1\x27\xf8\xdd\x97\x9e\x81\xba\xdb\x5d\x2d\xc1\x50\x87\xb3\x60\x45\x54\x30\xe8\xcf\x20\xb8\xbe\x19\xf7\x83\x41\xb6\xa8\x72\x11\xa6\x79\xca\x17\xa1\xf6\x47\xcb\xb4\xe1\x27\xcf\x20\xc0\xa9\x18\x7d\x79\x0b\x85\x9e\x1d\x17\x0a\x4f\xf3\x56\x0b\x30\x9d\x6e\xce\x94\x4e\x85\x75\x8a\x95\x97\x88\xa3\x64\x10\x64\x78\x22\x84\x96\x39\x12\xb9\x0e\xea\x91\x70\x92\x4e\x97\xce\x4b\x0e\x17\x1c\x1f\x04\x78\x68\x8e\xc1\xcc\xa2\x8a\xf4\x69\x21\x61\xd2\x87\x3b\x3c\xd0\x37\xd5\xdc\xb3\x55\xa7\x38\x9e\xe1\xbe\xc3\x6d\x8b\xa9\x7b\xeb\xd7\xdf\xfd\x8a\xcd\x50\x3d\xff\x2c\x40\x31\xa6\x7f\x12\x0e\xf8\x8f\x0d\xaf\x06\x79\x80\x08\xb3\xab\x41\x14\x10\x5b\xd7\x79\x49\xb2\xe0\xc2\x34\xd9\x3c\xc7\xd3\x8c\x8c\x11\xdf\x9b\x2a\x84\xb9\xcf\x40\x80\x63\x69\x8a\x7e\x81\x04\x30\x34\xbb\x31\x3a\xfe\x9b\x38\x0c\x57\xe4\x59\xc4\xb2\x4b\x93\xf0\x34\xb2\x23\xe9\x51\x92\xe9\xe8\xa4\xdf\xfc\xd5\x52\x34\x1f\xd1\xb7\x47\x67\x54\xb9\x1a\x65\xef\x93\x8a\xb7\x50\x63\x8c\xa6\x0a\xca\xfb\x60\x6f\xa9\x8a\x02\x6b\x0b\xd9\xe5\xf7\x46\xe3\x2d\x10\x06\x1c\x3a\xea\x1d\x30\xcb\xb9\x2d\xa7\x02\xf5\xc6\xda\xb4\x87\x30\xf5\x29\xee\x21\x20\x88\x5f\x14\xc5\x3b\xc3\x5a\x4b\xf6\xf1\xac\x63\x78\x25\x88\x78\x5a\x94\xe4\x6b\xa4\x65\xaf\x3a\xd1\x29\x88\x79\xfe\xe5\x40\x0f\x6f\x10\xa7\xf5\x06\x2d\xd0\xc8\xcf\x4d\x58\xef\xf9\x6e\xfa\xfa\x5d\x4e\xa6\xcd\x98\x9b\x41\xf9\x80\x75\x66\xc4\x0f\xc4\xef\x48\x6a\x97\x5f\x4f\x58\x4a\xf3\x8b\x85\xeb\x11\x79\xd8\x71\x47\x47\xf7\x5a\xcf\x64\xaa\x89\x10\x7d\x3e\xf6\x1d\x23\x5d\x54\x98\xee\xa0\x49\xe9\x0b\x4d\x4e\xa4\x2d\xe6\x97\x62\x42\x96\xb8\xe1\xc7\x4d\x90\x35\x99\x0b\x44\xd7\x97\xfa\x88\xfd\xdb\x68\x98\x71\x1a\x63\xa5\x9e\x1b\xee\x36\x6f\xe1\x35\x00\xde\x3e\x09\xd3\xc9\x10\xf6\x69\xf4\x26\x7d\x62\x42\xf5\x29\x74\x6e\x64\xdf\xc4\x25\x46\x87\x22\x6f\x09\x9c\xc1\x73\xe6\x78\x78\xd8\x16\x1c\x20\xa9\x6a\x7c\x26\x1b\x4b\x03\x81\xbe\xbe\x76\x56\x3b\xf0\x3c\xad\x92\x32\xab\xc0\x65\x93\x0e\xf5\x81\x57\xa1\x8b\xc8\xb5\x37\xea\x2f\xab\x81\xf9\x95\xe0\xd8\x48\x53\x10\x6c\x23\x29\x57\x8e\x69\x92\x19\xbb\x2d\x37\x18\xd2\xdd\x34\xc8\xa0\x56\x4f\xee\x76\xa9\x81\xe1\x3c\x15\x11\xf0\x26\x30\xc3\xec\x4d\xab\xec\xed\x6c\xfb\x5c\x07\x34\x8b\xe1\xb1\x7a\x9c\xcf\x14\x06\x26\x70\xd7\x96\xad\x27\x60\x3a\x84\xee\xd1\xaa\xc4\xe8\x8b\xa1\x28\x8b\x9d\xf0\x7d\xda\x09\x3a\x7c\xcb\x7b\xfe\x58\x28\xcd\x38\x01\x9f\x31\xa4\x0b\x33\x32\x82\xf2\x5e\xe5\x31\x58\x7b\xe2\xae\x04\x86\x4c\x7b\x2f\x93\x9d\xd8\xd4\xf7\xa2\x19\xcc\xcf\x38\xba\x93\x87\x3e\x88\xa6\xcf\x2e\x9d\xf9\xc3\xc1\x14\xab\x57\xa8\x64\x43\x13\x1a\x45\x98\x82\xb7\x02\x2b\xcc\xb6\xe2\xed\xf1\xfb\x1c\xa2\x72\xe7\x98\x30\x18\x82\x4a\xd2\x4e\x06\xde\x72\xae\xdd\x5c\x69\x90\x77\xc5\x5d\x6f\x90\x5a\x7d\x23\x5c\xf3\xf1\xee\xe4\xa6\xbf\x84\x8f\x16\x8f\x37\x39\x36\x86\x1e\x6f\x5f\x29\x9d\xaf\x1a\x44\xb7\x10\x11\x4c\xb3\xa0\xa9\x73\x9a\x11\x4a\xdc\x3b\x70\x8b\xee\x82\xd0\xf8\xa9\x2d\x05\xa9\xcd\x07\x6c\x0f\x8d\x83\x45\xff\xab\x81\x9f\x5c\x32\x2b\xc3\xe5\xa8\x52\x5e\x65\xf6\xa9\x0f\xe0\x64\x18\x83\xd1\x41\xa8\x3f\x99\x30\x75\xc6\xbf\xf9\x61\xc2\x58\xfd\xd3\x0e\x19\xfd\xbf\xd4\xe2\xff\x52\x8b\xff\x3f\x50\x8b\x3e\x15\x7e\x34\xd3\x57\xff\xa4\x02\x81\x72\x59\x42\x28\xb8\xbd\x83\x1b\x7e\x2a\x18\x43\xc8\xba\x42\xf0\x3f\xa3\x16\xbf\xe4\x99\xff\xad\xbc\xff\x4d\x6a\x21\x99\x83\x2b\x99\x83\x03\x1b\xc2\x9f\x54\xc0\xe9\x19\xcc\x0d\x5c\xc9\xe4\x87\xdb\x1c\x9c\xc7\x0d\x44\xc1\xfd\x9f\x51\x8b\x3f\xe5\x05\xff\xad\xbc\xff\x33\xd4\x62\x84\x2f\x9a\x54\x7e\x50\x8b\xf6\x0f\x6a\xd1\xaa\xa6\x9e\xdf\xaa\x2b\x1a\x35\x78\xd9\x8c\x62\x28\xb7\x31\x04\x0a\xb9\x7b\x50\x98\x6c\xa3\xc4\xeb\x52\xdb\x97\xda\xb0\x3d\x29\x82\x15\xaa\x68\xd2\x08\x5e\x56\x40\x5c\x58\xa6\x9c\xc9\x6e\x8f\x0d\xa4\x6f\xf2\x84\x27\x2d\x70\x18\x5d\xd3\x8a\x0c\x9e\xde\x8e\x9b\xc1\xe7\x0e\x45\x36\xaf\x9d\x14\x09\x39\x60\x52\xb3\xa8\x44\x3e\x95\x17\x4e\x53\xef\x39\x9f\x06\x48\xe3\x6b\x10\x26\xe1\x94\x01\xdf\xb3\x58\xce\x9b\x7a\x8c\x59\x4c\x65\xc6\x50\x6d\x95\x55\x6b\xfe\xdd\xf0\x73\x8d\x09\x00\x3c\x79\x7c\x5b\xc0\x97\xe4\x2d\x83\x2d\x17\xb0\x44\x88\x9d\xe8\x45\x43\x45\xbb\x04\x87\x7b\xf6\xc5\x0c\x40\xb7\x89\xeb\x16\x2e\x0c\x92\x1e\x04\xdd\x92\x97\x45\x65\x8b\xac\xd7\x69\x4d\x39\x6b\xaa\x85\x3a\x23\xe3\x1c\x33\x6f\xeb\xc3\x61\xe3\x99\xdb\xfe\x52\x21\x8f\x26\xa0\x1a\x6c\x97\xf6\x65\x5a\xbb\x5c\xde\x24\x2d\x78\xf5\x86\x6d\xda\xd0\xf5\x2c\x0e\xc6\x4d\x75\x2a\x8f\x7c\x0b\x1c\x82\x05\xde\x54\x5d\xfc\xc6\x23\x0c\x7b\x1f\x79\xa6\xbb\x43\x1d\x11\xaf\xb1\xf5\x91\x34\xb6\x24\xc8\x3e\x0f\xb3\xdf\xc9\x6c\xd9\xb3\x0e\x39\x08\xd0\x48\xd2\xa4\xb9\xd9\x45\xbd\x01\xab\x66\x7e\xe7\xe1\x8e\x65\xc1\xa2\x3a\x1f\x0a\x63\x50\x6d\xd1\x65\x4a\x24\x37\x1d\x65\x16\x9e\xb9\x03\xe3\x12\xf2\x09\xa5\xb2\x71\x8b\x2c\xbd\xca\xb8\xb0\x9c\xfb\x9e\x29\x1a\xc1\x1a\x52\xfc\x5d\xf4\x0d\x34\x7b\x09\xfb\xd9\xd9\xbb\xd4\xf3\x4d\x81\xbb\xb6\xe2\x82\x96\x8e\x63\x53\x3a\x3e\xcc\xc5\x95\xc2\x90\xd3\xce\xc3\x7a\x62\x36\xd1\x3e\x5f\x2f\x76\x0a\xeb\x41\x03\xb3\x32\x42\x29\xdd\x25\x30\xae\x1f\x32\x8e\xf5\x16\xa2\xe6\x66\x72\xba\xea\x4b\x46\x67\x67\x42\xe8\xb0\x54\x7f\xa1\x02\x45\x76\xcc\x0e\x88\x08\x19\xa3\x6f\x48\xe9\xcc\xf2\xb9\x20\xee\x0b\xcf\x71\xbd\x27\x91\x80\x6e\xa9\xb4\x5d\x91\xfc\x26\x2b\xf2\xbe\x63\x53\xed\xc7\x32\x86\xe2\xb9\x77\xbc\x9e\xbb\xae\x26\xfa\x4c\xc4\xdd\x37\x22\x81\xda\x68\xec\xb1\xd8\x46\xf6\x66\xbd\xdf\x48\x56\x2f\xf6\x26\x3f\xb7\x76\x22\x2e\x39\x5d\xe2\x8b\x8e\x17\x0d\xe2\xbc\xce\x81\x06\x16\x7c\x11\xf7\x0a\xa1\x06\x0d\x70\x2a\x56\x67\x91\x2c\xcf\xcf\x97\xb5\x96\x18\x62\xf2\xbc\xea\x41\x5e\xd4\x5c\x43\x53\x50\xa8\xf6\x43\x89\x43\x91\x88\x41\x26\x5c\xa6\x0b\xc7\x39\xdb\xa4\x83\x4e\x01\x24\xa3\xb2\x29\xde\x99\x60\x5c\x86\x76\x6c\xf6\xc3\x7e\xdf\x62\x05\xe3\x73\x7d\xb6\xbb\xca\x5f\x07\xf2\xc7\xef\x46\x8c\xe3\xad\xb7\x15\x9d\xf3\x58\x21\x1a\x1f\x3a\x2e\x7b\x5d\x5e\xf5\x13\xf0\x74\x89\x4d\x64\x26\xe9\xc2\x03\x1e\x4c\x6b\x65\x32\xd7\x8f\x72\xae\xea\x9b\xee\x82\x5e\xa9\x15\x25\x4f\x83\xb3\x0b\x78\xe3\xfc\xac\x35\x90\x65\x1b\xc6\xbe\x18\x9e\xf9\xe2\xd2\x2a\xfd\xcd\xbb\xe1\xc7\xa5\xf9\x9b\xf6\x28\xfc\xf6\x55\x60\x7e\x47\x15\xfd\x58\x94\xd3\x6f\x54\x48\x2a\x59\x3f\x10\x18\x46\x97\x6c\x0e\xbc\x5b\xf6\x37\x82\x34\x5e\x9e\xf8\xdb\x01\x27\xba\x70\x31\x0c\x77\x1b\x2c\xa3\x6e\x85\xf4\xa3\x3f\x97\xfe\x0f\x50\xc5\xff\x06\x1a\x18\xff\x15\x05\x98\x1c\x76\x29\x3d\xa6\xfd\xa8\xea\xff\x87\x2a\xba\xf6\x07\x6a\xf8\x1f\x56\xf6\x5f\xfd\xff\x68\x7f\xe8\x52\x4a\xe3\x94\xf6\xff\x65\xc5\x86\xb2\x28\x9d\x7e\x56\x5d\xaa\xe3\xba\x7f\x95\xf3\xa3\xba\xe5\x12\xfe\x5a\x53\x88\x65\xff\x4d\xf5\x4e\xe3\x76\x4d\xbb\xdf\x51\x43\xb3\xfc\xab\x1c\xee\x17\x8a\x18\x92\xf7\x2f\xfa\xa0\x2c\x5c\x4c\xd7\x91\xa3\xea\xac\x23\x6e\xaf\x23\xe1\x37\xfd\x59\x89\xde\xdf\x74\xf2\xfe\x0b\x9d\x7e\xcc\x27\xff\x3f\x44\x23\x8f\x02\xfc\x8b\x1c\xfe\xfe\x6d\xdc\xd6\xa8\x8e\x05\x42\x7f\xcb\xd8\x5d\x73\x04\x0f\xf3\x69\x84\xec\x5e\xa1\x74\xd4\x5d\xd3\x29\x21\x82\x29\x7c\x73\xe4\x86\x7f\xb3\xfb\x18\x1e\x59\xec\xfc\x67\x39\x83\x79\xe6\x31\xfb\xa4\xb1\xf9\x66\x11\x7d\xd8\x7d\xf0\x4b\x86\x83\xd0\x7b\x21\xab\x63\x81\x9a\x6b\x8e\x60\xff\x0b\x3d\xda\xdf\x90\x4e\x2e\x87\xd0\xcf\xeb\x8b\xc7\xe6\xe8\xff\xfc\xdb\xbf\xda\x96\xfa\x39\xc7\xab\x5d\x4c\xe3\x0f\xbb\xb5\xbf\x57\xdc\xfb\xd7\xf5\x03\xfd\x64\x51\x78\x94\x92\xf8\x5f\x5d\x9f\xfe\xcb\x58\x7b\x0c\x35\xfa\xeb\xfc\x5f\xfc\xf6\x2f\xfe\x66\x4b\xbf\xf9\x06\x11\x48\x23\x96\x46\x77\xe2\x4a\xe3\x0f\x14\xf4\xbb\x1d\x12\xc8\xe0\xaf\x9f\xbe\xd1\xaf\x4e\x16\xb7\x63\x2e\xb6\x42\xf6\xdb\x1c\xff\x47\x7b\x8c\x95\x34\xfe\xb4\xa7\x44\x3f\x01\xfa\x83\x09\x04\x80\xe1\xff\x92\xc1\xe7\xc8\x7d\x16\xa3\x79\x25\x91\x39\xfe\xfb\x58\xfe\xf5\x3e\xe3\xbf\xdc\xc7\xe8\x03\xc4\xe6\xe8\x9f\xf2\x47\x76\xad\xa4\xf0\x1b\x05\xee\x9a\x47\xe1\x51\x20\xff\x69\x5c\x6e\x6f\xcd\x26\x9c\x4c\xeb\x98\xa0\xff\x36\xef\x3f\x75\xfd\x2d\x0e\x9d\x49\x9c\xf5\xf7\xdf\xae\xe5\xe8\x21\x79\xd7\xb7\x8c\xd4\x2d\x8d\x4c\xe8\xdf\xf5\xfc\x91\x5b\xac\x01\x3e\x53\x69\x9c\xaa\xe0\xc7\x9c\x05\xc0\x0f\x16\x61\xfa\xcb\x65\xf4\xcb\x6d\x76\xcc\x65\xf0\xbf\x7d\xc6\x2c\xfe\x3a\xff\x53\xff\x7f\xb3\xdb\x8f\x5c\x47\x38\xa8\x3a\x26\xb1\x7b\x16\xa3\x7b\xe6\xc8\x05\xfc\x3e\x27\xfb\x6f\xff\xeb\x98\x57\xef\x8d\xe3\x87\x2d\x7f\xca\x33\x9f\x34\x12\xa1\x1c\x55\x83\x1c\xa1\xbf\x7f\xd1\xf1\x7f\x85\xe2\xb4\xdf\xc7\xf6\x27\x92\x6b\x96\x7f\x47\x72\xda\xb6\x59\x20\xf2\x83\x2e\x32\xbf\xef\x00\x67\xe4\x7d\x76\xaa\x22\x16\xe3\x14\x04\xc0\x08\x29\xa7\x92\x0c\x06\x64\xba\x31\x82\xfe\xaa\xb5\xa3\xca\xb1\xa6\x71\x5d\xc7\x20\x81\x30\x02\x9a\xdb\x3d\x0a\x65\x7e\x18\x6a\x51\xc2\x2a\x0c\x1d\x81\x11\xdc\xc0\x71\xdd\x8b\x51\x94\x76\x52\xba\x96\x65\x1a\x58\x6d\xa5\x6a\x9f\x3c\x32\x86\xe7\x14\x29\x11\x90\x04\x6b\x34\x47\xae\x56\x40\x11\x54\x1f\x7d\xf2\xfb\x52\xfc\x0a\xc8\x07\x3e\xe1\x38\x7d\xbf\x27\x58\x5b\xa8\x09\x14\x14\xfe\xce\x4f\x6e\x06\xc5\xaa\x33\x51\x76\x54\xf6\xb6\x7e\x70\x0c\x93\xdd\x4d\x77\x97\xcf\xeb\x42\xa9\x0d\xd4\xdf\x64\x96\xbf\xab\x2a\xf0\xeb\x2a\xb8\x0c\xfb\x5b\x2b\x5a\x96\x99\x07\xbc\x32\x30\xbc\x2e\x56\x1d\xde\x90\x0f\x0a\xa2\x02\x71\x1c\xba\xb7\x28\x75\x27\x64\x12\xd5\x4c\xfd\xc2\x37\x97\xb5\x73\x0f\x4e\x4a\x84\x49\xbe\xc8\x2e\x7e\x63\xbd\xdc\x4a\x08\x63\x21\xaa\x53\x1a\xe6\xb7\xa6\x39\xcc\xe5\x0c\x8c\x6c\x37\xca\x69\x04\x23\x71\x57\x71\xb9\x3d\x69\x79\x8a\x0a\x2d\xb9\x1f\xc0\x09\x71\xb5\x14\x2e\x44\xfc\x94\x92\x2f\xd8\xe7\x41\x81\xf2\xf3\xf9\x6a\xbe\x20\xb5\x93\xe5\x7e\xcd\x52\xf6\x8b\xc3\xb6\x3f\x0a\x48\xce\x6d\xc7\x19\x52\xd1\x78\xa6\x3f\x1a\x82\xfb\xc3\x58\x02\x23\x14\x0b\xc1\xb0\x12\x63\xc5\xb6\x6a\xa3\x36\x62\x0f\xe0\x99\x59\x04\x76\x6a\xdd\xb1\x2f\x20\xcf\xef\x16\x30\xa4\x38\x5c\x47\x52\xa3\x5f\x31\x1b\x87\x60\xbd\x60\x06\x27\x7a\x0f\x85\x81\x64\xe5\x93\x5b\x13\xbb\x01\xf3\x4b\x9e\xb1\x6e\x0c\x2b\xb1\x52\x4c\x92\x74\x09\x12\x05\xfe\x16\x05\x72\xfa\xc1\x36\x7e\xf9\xd1\x0d\xcf\xa6\xe6\x75\xe9\x1e\x2a\x74\x06\x44\x2a\xae\xdf\x0e\xdb\xbe\xd7\xc0\x33\xc4\xb4\x1f\xe8\x78\x11\x67\x45\x06\x07\x04\x92\x80\x6e\x4a\x62\x1e\xf9\x9c\xd2\x31\x3f\x5b\xcb\xb8\x2d\xe7\x30\xc6\xa3\x3c\x80\x77\x0c\x40\x75\xc4\xe1\xe9\x53\x66\xb7\xcd\x77\x16\x8e\x1e\x6a\x3d\xd4\xf7\xd3\x31\x90\x19\x65\x56\xbf\x10\x58\xe6\xf8\xc8\x87\xe1\x14\x07\xa2\x9c\xfe\xcc\x77\x14\x7d\xe9\x13\xca\x65\x10\xac\xbf\x7d\x8f\xdc\x28\x9c\xb4\x88\xd8\xfc\x52\xdd\xa5\xb8\x80\xe5\x02\xb6\x8e\xd7\x1c\xb3\x9a\x00\x3c\x09\x7d\xe2\xc3\x03\x30\x59\x25\x3f\x3f\x5e\xb3\x72\x4e\x20\xdd\x0f\xb4\x98\x60\x97\x21\x0f\x15\xf6\x24\xc5\x5c\x07\xe7\x44\x07\xf6\x41\xa8\x05\x35\x47\x18\x0f\xe4\xd3\x3a\x12\x92\x62\x28\x48\x82\x3e\x50\x29\xb9\xe1\x5f\xef\xe1\xb1\x09\xcb\x15\xec\x30\x04\xf0\x7d\x10\x05\xbd\xdb\x2f\xf6\x39\xe0\xbc\xbe\xad\x65\x53\xaf\xfc\x4e\xba\x9a\x88\xbd\x33\xf3\xab\x32\xab\x24\x16\x5e\x53\x24\xa3\x7d\x02\x6b\xcc\x1a\x34\xdf\x7d\x9d\x23\x78\xbe\x7e\x39\x88\xd2\xe8\x94\xe2\x31\x3c\x41\xa0\x1b\x46\x7e\x11\x6f\x8f\xce\x99\x0c\x5f\xfc\x66\x29\x6e\x4c\x63\xb9\x17\x9c\xae\xf2\x65\x02\xc8\xa7\x82\xec\x03\x40\xd3\x2a\x11\x73\x69\xc5\x28\xfb\x1c\xb1\xb9\x1a\xd2\xbd\xac\xa7\x01\xba\xb2\x45\x09\x03\x3f\x59\xe0\xb8\x82\xc3\xfc\x6c\x17\x5b\x08\x2a\xc3\xd2\x85\x3b\x17\x25\xa0\x19\x61\xf6\xdd\x90\xbd\x3c\x00\x49\x74\x8b\x5a\xf2\x4e\x43\xe7\x94\xfd\xb4\x5f\xc0\x84\x3e\xc8\x70\x4a\x7c\x2e\xd1\x0d\x60\xf0\xdf\x9a\x88\xe0\x0f\x18\xdb\x80\xb5\x50\x04\x49\x67\x5d\x5f\x0d\xef\x27\x7b\xa9\x5f\x76\x10\x14\x19\x12\x56\x86\xf1\x39\x10\x3c\x14\x12\x18\xca\xf3\xb4\x38\xc3\xe3\x47\xba\x8c\xc4\x35\xcb\xeb\x13\xbf\x23\xf5\xde\x2b\x0b\x0e\x66\x9c\x6d\x2a\xa8\x96\xac\x79\x25\x12\x1a\xda\x65\xf0\xc5\x32\x9a\xc6\xab\xb2\x42\x60\x97\xfe\x15\x7b\x2e\xc7\xe2\xac\xe5\x30\xc2\x05\x60\x98\x53\x62\xa1\xf1\x99\xd1\xcf\x3b\x9f\x00\x55\x48\xbb\x9a\x56\x71\xfb\x0d\x9a\x01\x8b\x71\x80\x8a\xb3\x20\xa0\x14\xf1\x2e\x02\x43\x22\x2d\x72\xe3\xbb\x0b\x50\x81\x1a\xa0\xde\xa7\x32\x77\xcf\xfe\xd3\x0c\x4e\x53\x39\xfe\xc0\xb0\x86\x3d\xd9\xb6\x0b\xf6\xd0\xd4\x87\xf0\x01\x17\x34\x5d\x1d\x5e\x60\x35\xfc\x37\x95\xdc\xda\xee\x89\xc3\x21\x3f\xd8\x67\xf0\x83\xd7\x67\xbe\xbc\x8c\x0b\x8a\x98\x98\xfe\x9b\x41\x24\x4f\x52\xd5\x26\x52\x2f\x78\x8f\x18\x4d\xfb\xd2\x3c\xae\x07\x37\xed\x50\xf8\xbb\xe2\x4e\x23\x3b\xce\xc0\x98\x26\x8b\xd6\x5c\x92\x22\x68\x1e\xee\x3a\x05\x71\x66\xad\x3f\xcd\x06\x08\x69\xeb\x55\x4c\x48\x94\x5f\x63\x82\x7a\x3c\x1f\xf0\xec\xa8\x64\xe0\x8a\xda\x33\x01\xac\x93\x7f\xdf\x57\xb8\xeb\xf2\x94\xd9\xd6\xb2\x82\x12\x72\x44\xf1\x97\xf2\x8c\x8f\x78\x01\xc3\x15\x2a\xbd\x40\xe7\x29\xb9\x00\x89\x3d\xd4\xdc\x7e\x0e\xf2\xd3\x51\xa7\x4e\x20\x8a\xdb\xca\x71\xea\x82\x1b\x12\xda\xbe\x27\xef\x30\x3f\xf5\x2d\xd9\xe6\x72\xcb\xa4\x63\xf4\xd9\x18\x2c\x61\x60\xa4\x94\x5d\xb9\xfa\x9c\x60\x0a\xce\xf1\x09\x2e\xf9\x45\x7c\x32\xff\x2f\xbe\xa2\x18\x83\xa0\x32\x9c\xcf\x9b\xed\x4e\x21\x05\x7d\x00\x64\xb3\x76\x45\x75\x90\xc8\xb0\x1e\xb9\xa9\x40\x26\x5f\xf9\x82\x66\x53\xd6\xa5\xb7\x6e\xb1\xe6\x01\xbc\x8f\x1c\x4f\x49\x4a\xc4\x93\x95\x5c\xd3\x31\xd0\x3a\x0d\x27\xa7\x6b\x9a\x5f\xb1\xf6\x10\x28\xfb\x0e\xc4\xa7\x86\x80\xd7\xad\x69\x7e\xa1\xb4\xcb\x70\x39\x6e\x66\x3f\x07\x5a\x22\xd7\xea\xb5\x41\x7d\x7c\xbc\x17\x27\xdf\x5e\x14\x4b\xd2\x73\xfe\x4c\x15\x2b\x03\x31\xad\xc6\x78\x81\xfd\xf9\x1c\xb2\x7d\xd6\x2c\x47\x57\xa9\x2c\x9f\x3b\xbe\xe8\xfa\x46\xdb\x0f\x07\x32\x9a\xa6\x8b\x06\x3b\xc2\xb4\x93\x31\xd1\x0c\x87\xeb\x58\xfa\xf6\x4e\x71\x17\x55\x6c\xde\x09\xdf\xeb\x92\xe5\x92\x54\xcd\x9f\x42\xbf\x33\xb6\xe0\x0e\x8e\x62\xce\xc8\x1f\x2c\x12\x7a\x1e\x0b\xef\x27\x71\xc1\x65\xfa\x2d\xd0\x28\x11\x0f\xd2\x74\x35\xde\xe2\x83\xa5\xdc\x9b\xa4\x33\x38\x37\x93\x9e\xa1\xa2\x6a\x84\x05\x32\x8a\xa8\x23\x1d\x44\x7b\xcf\x8b\x20\x29\xcc\x23\xfd\xaf\x39\x4d\x68\x5a\x85\xe1\x12\x76\x5b\xbf\x13\x4a\x86\xdf\x28\x12\x2f\x04\xc3\x4e\x1c\x1e\xf1\xf1\x51\xd1\x1c\x1e\xbe\xb2\x92\x5d\x46\xf3\x7e\x98\x4d\x8c\x82\x31\xdc\xdb\x28\x37\xbf\xcb\xaa\x79\x4f\x41\xe7\xac\xbf\xf3\x71\x88\x46\x4e\x1f\x26\x43\x20\x5f\x77\x53\xde\x56\x53\xba\xb7\xeb\x96\x88\xae\x26\x50\x13\x7f\xac\x54\x94\x89\xc7\x23\xda\xed\x63\xb1\xde\x03\x98\x1b\xf0\x9c\x3c\xd3\x98\x71\x8c\x48\x9d\x78\xbc\x9b\xe9\x3e\xfd\xfe\xe5\x85\x51\xad\x6e\x7d\x95\x68\x9b\x7a\x28\x0d\x9d\x65\xe8\x2e\xbe\xb1\xee\xab\xfe\x50\x9f\x5b\x27\x62\xf1\x2f\xb7\x72\xc5\xcb\xaf\xb8\x50\xfb\xb2\x70\x19\xc6\x97\x73\x70\x41\xfd\x5c\xf4\x39\xd5\xf1\x67\x07\x82\x50\xac\xcd\xd2\x3d\xa3\x36\x51\xce\x90\xa7\xf4\x64\x43\x89\x30\x52\x8f\x18\x85\xbb\xaa\xef\x33\x82\x73\xfd\xa7\x7d\xc7\x05\x80\x6d\x5a\x47\xb6\x38\x77\xfc\xfb\xe3\x5e\x31\x6c\xf5\x6e\x20\x2e\xd1\xfa\x5c\x46\x0d\x93\xf4\xc7\xb3\xdd\xcd\xac\x6b\xbb\xeb\x38\xdc\x8d\xde\xd6\xab\xe8\xd6\xf8\x15\xef\x2c\xcb\xfd\x88\x77\xc6\xd5\x4b\x73\xb6\xeb\xe2\xde\xe7\x3c\xec\x08\xf0\xcc\x3c\x84\x6e\x21\x27\xd5\x48\x6f\x87\x05\x6a\x2c\x90\x24\x49\x63\x6b\x93\x4f\x11\xd6\xde\xdc\xee\xdc\xa7\x7e\x70\x47\x8a\xfa\x34\x01\xc3\xfe\xd9\x07\x8c\x7d\x65\x9a\x41\x85\x43\x54\x21\xda\x42\xab\x83\x4f\xb3\xa8\x06\x3d\x40\x7f\x70\xdc\x48\x65\x3a\x18\xbf\x9d\xc2\x28\xbf\x37\xcd\x17\x70\x86\x99\xd5\x5b\x0f\x46\x8c\x4e\xa9\x48\xa2\x96\x24\x1e\x47\xda\x8d\xd8\x84\xd8\x09\x6e\x39\x94\x1e\x28\xb5\x14\xa8\x4f\xaf\xd7\xb0\x00\x8c\xa7\xb1\x9c\xc3\x30\x11\x86\x5b\x03\xc9\x0b\x91\x1a\xc8\x8e\x1a\x93\xa4\xc7\x86\xcf\x23\xe4\x78\x97\x43\x0f\x11\x95\xc7\x52\xb9\x8a\xfd\x13\xb4\xcf\x4a\xc1\x28\x82\xa0\x03\x6f\x1c\x6b\x93\xd0\x43\xb7\x66\xff\x48\x76\x76\x2a\x3b\x8c\x7a\xd5\xa8\xe3\xd1\x30\x59\x75\x39\x40\xa6\xc5\xac\x14\xd6\x2b\xdf\x99\xf4\x78\xdb\x7b\x98\x75\xfd\x3a\x37\xc5\x89\x6e\x8c\x94\x12\x75\xef\xeb\xe8\x10\x12\xa8\x64\x91\x70\x38\xbc\xb0\xd3\x0c\x68\xf0\x97\xdf\x04\x74\xf3\x5a\x66\x5f\x51\x9b\x29\x9f\xe8\x7c\xd3\xb0\x10\xbf\xcb\xb2\xfd\x72\xd3\x8e\xe1\x3a\x2f\x69\x98\xb4\x5d\x96\xf9\x80\x4b\x7a\xe5\x1f\x0c\x3c\x50\x5d\x5f\xc5\xed\x3d\xec\x94\xbd\x69\xe5\x99\x3d\x53\xb4\x14\x37\x35\x10\x19\x07\x4c\x3f\x88\xdc\x8b\x79\xb7\x98\x1d\x0c\xec\x76\x4c\xd6\xe3\x62\xa5\xed\xa2\xe9\x05\x1d\xe1\x32\x15\xfa\x35\xe6\x5d\x5c\x48\xd3\xb0\x41\x0a\x88\xc9\x37\xda\x37\x10\x16\xfe\x92\xb7\x0c\x4e\x68\x98\x69\x16\x9f\xb3\x2c\x53\x9f\x20\x4a\x24\x67\x37\xa4\x40\x59\xc2\x37\xad\x86\xed\xb5\x2f\x62\xcf\x7e\xae\x63\xc9\x47\x93\x08\xb7\x8c\xd9\x16\x00\x83\xb3\x27\x02\x97\x1d\x8b\x4d\x6e\x52\xbf\xcb\xea\xb3\x51\xa4\xa6\x7a\xd7\x99\x6a\xae\x6f\xca\xd0\x0a\x8e\xe4\xf4\x4c\x95\x1a\xfb\x00\xdb\x60\xcf\x36\x90\xe6\xe9\x6c\x38\x31\xf4\xa7\x6f\xfb\x94\xfb\x23\xdf\x53\x66\x98\x7c\xe7\x15\x26\x0a\x32\xf4\x61\x3a\x13\xb8\x87\x66\x64\x1c\xb8\x23\xb2\x03\x7c\xb9\x67\x07\xeb\x6a\xad\xcf\xe7\x53\xa8\x74\x2b\x87\x6a\x21\x97\x3e\x3c\x3e\x41\x12\x59\xd9\xf4\x61\x37\x89\x91\x36\x3e\x89\x2e\xe1\xa5\x2e\xab\xf5\x2c\xba\x42\xb3\xaa\xda\x5b\x95\x24\xc1\xe2\x2d\x8a\x22\xf1\xf1\xe2\xb0\x82\x39\x85\x2c\xf5\x4f\xbf\x4a\xdd\x80\xe1\x0c\x45\x8e\x09\xc2\xcb\xf3\x77\xd8\xa5\x05\xae\x7a\xb7\x25\xf6\x38\x4d\xc4\xbb\x5e\x11\x6c\xe5\xf1\xa4\x9f\x5b\xec\xca\xc7\x30\x50\x49\x55\x06\xa7\x49\x35\xae\x0f\x29\xa9\xfd\xee\xec\xd1\x7c\x5a\x9c\xae\x09\x85\x78\xb9\x48\x0d\x3a\xc2\xf9\xee\x37\x41\xd3\xfc\x1e\x4f\x65\x1e\xd6\x7f\x81\x0f\xcc\x46\x4d\x0a\x23\x63\x59\x97\x1d\x31\x3c\x53\x80\x65\xc9\xe6\x8b\xe0\xc0\x40\x27\x4b\x7d\x12\x43\x25\x2e\xb2\x8c\x03\x74\x98\xaa\x7e\x84\x4a\x40\x3d\xe1\x6c\x1f\x56\x49\x71\x81\x5f\x13\xaa\x84\xd8\xff\xc8\x78\x5b\xb7\x3a\x73\x23\x64\x7e\x3e\xdc\x71\xbd\x63\x8f\xec\x19\x45\x8b\x13\x55\x87\x02\xf5\x27\xd6\x5c\x27\x86\xd5\x38\x79\x23\xe9\x01\xa3\xd2\x15\xc1\x13\xa0\xe4\xd0\x87\x9e\x31\x63\xf2\xe3\x87\xa8\xe8\x49\xda\x33\x71\x81\x37\x03\x0f\x2b\xe9\xcb\x91\x94\x75\x17\x7a\xed\x28\x2e\x6f\x6e\x96\x12\xf5\x9b\x4c\xb5\x6b\x52\xaf\x62\xd2\x6e\x29\xb8\x48\x76\xc8\xd2\x0f\x64\x8d\xe8\x8c\xa6\x59\xf2\x90\x0f\xf4\x4e\xfa\x1f\x83\x73\xf4\x4b\x50\x19\xbe\x57\xe4\x1a\xa8\xeb\x42\x8c\xf7\x37\xa4\xf4\x98\x73\x8c\x59\xfc\x72\x2c\x05\x2b\x8f\x28\xc3\xd6\xc5\xa6\x12\xdd\x10\x3b\xf9\xa5\x50\x5b\xbf\x88\xa0\x5c\x83\x1b\xa4\x58\x29\xbb\xd9\xd4\xad\x2e\xa8\x74\x12\x33\x70\x3a\xee\x74\x83\x94\x60\x69\x09\x34\xd8\xfa\x04\xc7\xdd\x85\x6f\x88\x4e\x86\x99\x6f\xc7\x00\xf6\xb0\x5f\xb9\x61\xb0\x8d\x1f\xb8\xa9\x44\x1b\x65\x46\xc1\x6c\x1e\xb0\x94\xa8\x26\x4a\xf9\x91\x13\x7b\x06\x16\xbf\xba\x0a\x23\x7a\x27\x62\x1f\xcd\x09\xc3\x04\x84\x28\xb2\x3e\xd0\xe2\x88\x0f\x53\xfa\xce\xa1\xbc\xae\x21\x1f\x1f\x32\xb0\x4e\xc9\x07\xda\xe9\xb9\x56\x73\xbc\x0d\xc2\xc8\xc9\xb8\x44\xc3\x10\xf2\x02\xe0\x3d\xc6\x44\x10\x53\x50\x69\xcc\xa3\xfe\x57\x90\x5a\xce\xc2\x38\x23\x73\x5d\x27\x48\x54\x05\xaa\x9b\x2f\x4e\xe8\x0a\xd9\xd0\xd6\x7c\xa2\xc3\xd0\x9c\xee\x2e\xca\x84\xb4\xc1\x13\xde\x68\xe2\x17\x1f\xee\x81\x5a\xfb\x43\xdf\xab\x23\x29\x81\x27\xcb\x6b\x37\x62\x9e\xd4\x15\xb7\x1d\x3c\xd2\xe9\xb9\x88\x32\x41\xd5\x87\x67\xbf\xbc\x12\xf5\x24\x0b\x90\xc9\xd7\x0f\xce\x0f\xc0\x05\x35\x8a\xee\xd7\x54\x1a\xdb\xb4\xd4\x7f\xe1\x3e\xe2\x8f\xba\x1b\xc0\x2f\xac\x66\x07\x1a\x4a\x38\x59\x5b\xb3\xdd\x3d\xdf\xcf\xbb\xf8\x8a\x26\x33\x3e\xbc\xc4\xa9\x9e\x28\x4e\xed\xba\xa0\xa8\x08\x1b\xde\xf8\xca\xe4\xa9\x97\x20\xa9\x17\xab\xe9\xce\xca\xb7\x6d\x82\xe8\xfc\x90\xca\x47\x5e\x7e\xeb\x4d\xc3\xc0\xc2\x16\xe8\xf9\x45\xe8\x37\xf3\x0e\xba\x15\x7e\xe5\xfe\x98\x53\x1a\x26\xef\xec\x0d\x45\xd7\x35\xb3\x71\x9f\xf6\x6b\x80\x0b\x3e\x36\x48\x93\x77\x15\x84\x4b\xda\xeb\xb4\x04\x8d\x61\x18\x21\x33\x4c\xbb\x9a\xee\xd9\x0a\xd0\x8e\xc2\xa5\xf3\x75\x0c\x23\xe6\x2a\x5e\x21\x5e\xab\xe4\x99\x00\xa2\x89\x89\x1e\xf7\x45\x61\x33\xc0\x61\xb3\x4e\x2a\x33\xbc\x81\x9a\x26\x9f\x2c\x8a\xf1\x05\x4a\x4c\x82\x29\x7f\xf1\x1c\x8e\xd7\xb9\xa0\x61\xfc\x59\x63\x7d\xf2\xb3\xef\x93\xcd\xc9\x25\x0c\x5e\xaa\xbf\xd7\xca\x35\x1d\xce\xe7\x13\x8c\x6e\x94\x2e\xc1\x85\x7d\x2b\xe6\x3d\xf5\x77\xba\xdc\xc3\xe6\x40\xd7\xbe\x19\x76\xb5\xbf\x97\xd2\xf7\x05\x8a\x80\xc5\x35\xb6\xd9\x11\x69\x9f\x1d\x11\xd1\x08\xa5\x3f\x14\x3a\xda\xb1\x4c\xe2\x71\x91\x85\x7b\x66\xfc\x91\x14\x94\x94\x17\x58\xae\x60\x54\x11\xad\xd5\x63\x8e\xe1\xe9\x47\xec\x88\x67\x4a\x5b\x33\xc8\xfa\x2c\xfe\x9a\xe8\xe7\xf9\x02\x27\x3f\xe3\x00\x04\xc4\xb3\x79\x89\xab\x73\x02\x10\xe8\x98\x39\xe6\x02\xd8\x4d\x84\x20\x26\xf6\x89\xa4\xed\x1f\x84\x4e\x60\x37\x91\xba\x00\x4f\x69\xb0\xfa\xe6\x02\xbd\xdc\xa6\x97\xfc\x72\x23\x29\x48\x19\xa6\x65\xe2\xde\x9a\xf3\x7d\xbb\x8b\x32\x88\x9a\x53\x52\x54\x67\xf9\x06\xb7\xa7\xf2\xf7\x24\x96\x84\x5c\x44\x2e\xcb\xce\xeb\x44\x7d\x34\x6e\x56\xbf\xc6\x51\x4f\x25\x62\xb6\x85\x89\x08\xd6\xcc\xf6\x73\x1a\xc3\xc4\xd4\x58\x12\x2b\xb2\x57\x29\x1d\x73\xfa\x05\x81\x03\x02\x62\xdb\x3e\xcf\xb3\x28\xd0\xef\x3b\x60\x2c\xa1\x3b\x7f\x0c\x51\xaf\x38\xd6\xc5\x36\x9c\xc4\xf7\x04\x04\x01\x3f\xd2\x2b\xb0\x82\xec\xb1\xcd\x2c\x00\x4e\x7a\x3b\x4f\xbb\xf7\x36\x5c\x10\xe2\x44\x37\x8c\xf0\xfa\x12\xe9\x4e\xb3\x63\x06\x9d\x66\x05\x23\x1b\xed\xd6\x05\xe1\xeb\x6a\x75\x71\xd9\x2e\x70\x13\x2a\x85\xa7\x85\x00\x19\x8b\x69\x26\xf0\x82\xe9\xb0\x1b\x83\xf8\x7a\x95\x00\x25\xee\x19\x8d\xfb\xb9\xdf\x52\x69\xac\xa9\xbd\x32\xda\x16\xf4\x8b\x6f\xe7\x8e\xfb\x94\x8d\x7f\x8d\x4c\x51\xd7\x32\x2a\x23\x0b\x8c\x8e\x06\x92\xd4\x5d\x1b\x4f\xbe\xa6\xb7\xc8\xb0\xde\x42\x53\x87\x60\x22\x65\x44\x3d\xfa\xf6\x82\x04\x6f\xb6\xa2\x0b\x90\x86\x57\x9e\x23\xc0\x15\x5e\x04\xe9\x3f\x93\x74\x7b\x76\x65\xcd\x01\xe2\x5e\x25\x29\xf6\x28\x88\x1e\x17\x30\x1f\x07\x45\xcc\xcd\xaf\x04\x3c\x74\x10\x6f\x71\x05\x2f\xbe\x2f\x05\x2e\xa0\xdc\xe2\x7e\x15\xfa\x2b\x78\xd7\xdd\x17\xec\x4f\x77\x87\x90\xca\x58\x23\x80\x8f\xf1\x49\xab\xaf\xd6\xb9\xcc\x7d\xc5\xc3\x35\x27\x55\x01\x18\x70\x82\x1e\xc5\xf4\x48\x65\x0f\x2a\x68\x4b\xdf\x40\x8b\xbb\x53\xba\x28\x6a\x59\x8c\x20\x74\xcb\xda\x3f\xf9\xd6\x23\x39\x9c\xe5\x19\x0c\x56\x95\xf1\x6e\x21\x77\x98\x16\xe1\x98\x96\x75\xcb\x4a\x94\xc3\xbd\xdc\xa9\x23\x12\x55\x05\x4e\xc6\xf6\x78\xfd\x91\x88\x1d\x26\x57\x04\xbd\x81\x9d\xde\x57\x3c\xdd\xf2\x8f\xcc\xca\x2c\x92\x3f\x2e\x06\x13\x13\x5e\xd9\x5f\x5e\x16\xdd\x32\xbf\x2e\x81\xfb\x66\xd4\x11\xd9\xe4\x0b\x24\x37\x08\xbc\x0c\x2c\xcb\x92\x00\xa8\xd2\x0d\x89\x16\x34\xfc\xaa\x33\x27\xd6\x0e\xac\xc1\x51\x32\x1a\x83\xd6\xd2\x7f\x4b\xd9\x25\x6e\x2e\xa8\x9c\x54\xee\xc6\x67\xcc\x31\xab\x8e\xa2\x3e\xca\xb9\xdd\x89\xaa\xa9\xde\x88\xac\xf2\x85\xb1\xd9\xf4\x33\x27\xa6\xfd\xfb\xe5\x34\x45\x41\xda\x6c\x12\x33\x6b\x89\x4c\xe7\x43\x96\x20\x4c\x11\xfa\x4c\xf6\x5b\x4a\x52\xd0\x27\x3b\xe9\x5f\x83\xe5\x38\x9f\x93\x3c\x98\xe1\xdf\x97\xc8\x0a\x3b\x3b\x7b\x74\x41\xab\xe0\x25\x6e\x10\xba\x5a\xea\x8e\x2e\xd0\xa6\x4c\x57\x29\x4f\x3b\x87\xb2\xb2\x2d\xdd\x93\x3a\x6d\x7d\xe5\x77\xc2\x19\xe9\x1d\x84\x38\xa9\x8f\xe6\x34\xb9\x67\x92\x45\x34\x68\x7c\x94\x4b\x26\x0e\xd2\x22\xcb\x03\x71\x09\xd3\xfd\xe2\x18\x68\xaa\x7a\x08\xe1\x4b\x38\x03\xda\xaf\x7a\x63\x24\xfe\x23\x2c\x6c\x65\x91\xd9\xee\xc7\x39\x39\x83\x4d\x88\xc4\x7e\x8a\x5e\xd4\x87\x68\x2e\x14\x46\x89\x7d\xd0\x3e\x25\x93\x7b\xfb\x23\x4d\x32\x16\x31\xde\x91\xf8\x92\x6d\xd8\xb9\x9e\x48\xd1\xda\x46\xfa\xb4\x42\xce\x0f\x7e\x97\xca\x2d\x21\xf5\xf2\xba\x20\xf6\x68\xba\xc1\x5c\x4b\x67\xf7\xe0\x9b\xa1\x6d\xdf\x39\xf8\x23\xe1\xfa\x0c\x7e\x79\x8f\xce\xbc\x46\x66\x12\xe4\x87\xf8\xd0\xd5\xa7\x83\xc9\x0a\x6f\xf2\x0a\xc9\xbf\xfa\x27\xb6\xd4\xf6\x95\x87\x14\x68\x4e\xfe\xdd\xe0\xe7\x62\xec\x91\xfc\xe6\x4b\xac\x41\x6e\xf8\x5d\x0c\xe6\x83\x44\xcd\xd2\xaa\x51\xe2\x4b\x89\x69\x19\x8a\x3f\xce\xd2\x45\xe5\x03\x5e\xd5\xa3\x52\xe4\x3d\x73\xdc\x60\xfd\x85\xdb\x16\xa2\xcf\x48\x9f\xbb\x19\x4f\x61\x24\xf5\xc3\x3d\xf9\x33\x37\x01\xea\xc8\xc0\xcb\xc5\x9c\x07\x1d\x9b\xe4\x85\x5a\xbd\x0f\x4d\xb4\x46\x1c\xfb\x64\xd0\x48\x6a\xd3\xf7\xe6\xa5\xef\x83\x1b\xdd\x7b\x69\xda\x74\x38\x0b\xf2\x75\x22\x15\xa3\x3f\x13\x22\xd1\xb6\x56\x7a\xe2\xd7\x57\x0d\x12\x84\x58\x8b\x7b\x6c\x20\xb1\x80\x63\x0e\x51\x45\x47\xdf\x36\x80\x6b\x9a\xb4\xd2\x42\x21\xea\x57\x74\x7e\xf7\x65\x16\xe3\xa4\x8c\x46\xde\x91\x78\xd3\x83\x44\x56\x07\x04\xac\xd0\x01\x09\xa8\x2d\xc6\xfe\xb6\x68\x7c\x91\x8a\x0e\x5b\xf4\x4f\xde\x03\x9e\x3c\x7f\xa0\x9c\xfa\x1e\x55\x65\xf6\x8b\x6f\x11\x70\x21\x81\x17\x3f\x84\x60\x72\x4e\xa5\x91\x4d\x52\x30\xd9\x85\x41\x12\xa0\xf5\xa6\x7b\xd5\x8a\xf5\xaa\xc2\x69\x55\x1d\xe3\xab\x8e\x11\xdc\xff\x5a\x6b\xe9\xb1\x2e\xe0\x25\xee\xcb\xfa\xe1\x86\x19\x7b\xff\x10\xd4\xb6\x3a\x71\x09\xe1\x9e\x2d\x86\x04\x97\xd2\xd1\x4b\x4c\x2c\x3f\x9b\xde\x0b\x80\xcd\xc0\x33\x3e\x5d\xf2\x75\x30\xdc\x4c\x94\xb8\x49\x44\xb6\x57\x9e\x20\x00\x53\x64\x6d\x13\x73\x4c\x2b\x4d\x63\x72\x88\x2c\x54\x66\x30\x01\x80\xfa\xab\x14\xf1\xf9\x16\x61\x58\xc2\x6b\xde\x7f\xac\xf5\xfa\x65\xdf\x5b\x80\x1a\xe5\x46\x4b\xf4\x8c\xfd\xed\xc5\xf2\x0c\xa1\x6b\xae\x91\xd1\x72\x79\x25\x44\xf9\x52\xbe\x50\xd3\xde\xb6\x6d\x1f\x65\x11\xb9\x07\x12\x9a\x4f\x36\xd3\x96\x32\xad\xd8\x9a\x3a\x09\xef\x1f\x8b\xac\x69\xdb\x81\xc9\x36\xc1\x42\x91\xf4\xc2\x85\xde\x83\x8b\xb4\x4c\x70\x01\x54\x14\xd6\xde\x5e\x30\xc6\x04\x06\xd0\x3a\xcb\x40\xc4\x47\x1e\x91\x40\x14\x55\x44\xf8\x83\xa3\xc2\xad\xad\x6c\xac\xcc\xf0\x20\x79\x94\x50\x25\x1f\xe4\x7a\xf2\x01\xf1\x89\xa8\xa6\x79\x27\x92\x02\x99\x8d\x77\x9c\xd3\xbf\xed\x94\xe3\xaf\xdd\xaf\xbc\xa5\xa3\xb8\x85\x13\xe4\x8c\xe7\x38\xbe\x84\x69\x77\x71\x9d\x42\x8e\xc1\x18\x39\x47\xb2\xc9\x66\x41\x1a\x00\xb2\x3c\x33\x73\x5f\xf4\x71\x7d\x52\x33\x8e\xcf\x39\xae\x2b\xe4\x03\xff\x5a\x13\xf1\x19\xfe\x72\x1e\xa7\x19\xe9\xea\x8b\x64\xc7\x06\xeb\x32\xb9\xed\x1f\x0d\x3f\x04\x47\x83\xf0\x04\xba\x3a\xaa\x5e\x3a\x56\x00\x11\x8a\xb2\x03\x12\x29\xa8\x23\x5c\x7a\x6c\x51\x7c\x21\x62\x3a\xac\xc1\xd4\xe2\x59\x93\xd0\x06\x2f\xfd\xa1\x6a\xee\x5b\x23\x81\xf3\xf5\x39\x13\xcd\x77\x82\x4a\x67\x77\x00\x54\x5f\x3e\x4f\x90\xee\x43\xa3\xf4\x00\xe0\x4f\xdc\xc8\x2f\x0a\x20\x2f\x1a\xa0\x7a\x70\x86\xed\xf3\x2b\x8e\x97\x15\xe4\x74\xde\x01\xeb\xe6\x43\x4a\x80\xba\x78\xcd\xf7\x3c\x87\xd2\x5a\xb8\xbc\x7d\xd8\x7c\xdc\x10\x9b\xd7\x78\x20\x49\x6a\xa7\x36\x65\x62\xb9\xc6\x2e\xb4\x10\x4b\xe4\xc2\xa4\x9a\x18\xe0\x93\x9d\x67\x25\x16\x2c\x6b\xf7\x80\x1c\x03\xbc\xc5\x30\x5c\xd0\x2f\x81\x2d\x91\xbd\xe1\x44\x63\x58\xf6\xe7\x05\xc0\x0a\xa0\x4f\x64\xc6\x8b\x2d\x0a\x91\x97\xa2\x4e\xef\xfb\xfb\x7a\x06\xdb\x31\x1f\x2c\x6c\x2c\x10\x7f\xd2\x70\xe6\x2d\x78\xab\xf8\x06\xca\xe8\x94\x34\xa4\x30\xbf\x54\x21\x81\xe8\xe7\x60\xea\xf6\x0d\xbd\x27\xb1\xef\xdc\x88\x32\x13\xd0\x72\x62\xfc\x1e\xe5\x25\xf3\xc2\xb1\x65\x1b\xd2\x0d\xea\x28\x0e\x55\x79\x94\xec\xb2\x7d\x55\x72\xe4\x69\xcf\xb0\xb5\x22\x7e\xc5\x13\x3d\xbe\xda\xf2\x11\xf4\xec\xa2\x00\xcb\xfc\x60\x38\x6b\xd9\x7e\x18\xc6\x24\x76\xfc\x5a\xab\xd8\x9a\x1e\xcb\x9b\x0f\x86\xf3\x20\x48\xfa\x11\x7d\x90\x79\x25\xa6\x0b\x4e\x90\x8c\x6b\x0f\x8f\x7b\xd0\x25\xd4\x38\xb5\xbf\x63\x41\xf2\x12\x00\x12\x76\x26\xb0\xe5\x1b\x5f\x1c\x0e\xe6\x73\xdf\x38\x9f\x00\x14\x68\x19\x10\x92\xc3\xcc\xaa\xbb\xa2\x9c\xd0\x1c\xda\xfd\x18\x95\x3f\x93\x41\x97\x05\x9d\x51\x85\x93\xe5\xbe\xf8\xc7\x7a\x2c\x2f\xb0\xe8\xd5\x33\x3a\x71\xd7\x31\x79\x4e\x9f\x0f\x48\x1d\xf3\x8b\xa0\xaa\xfd\x1a\xf1\xca\x61\x45\x25\x7f\x86\x61\x6d\x58\x13\xd0\x62\x1d\x19\x3b\x15\xfd\xd0\x1a\x3a\xb9\xbc\x6f\x9f\x82\x87\xc9\x10\xde\x98\x2f\xc7\x50\xcd\x2d\x5b\x96\x2d\x60\x36\xa7\x45\x71\x35\xde\xbd\x28\x4f\x70\x79\x20\x69\x58\xca\xfe\xb0\x4b\x25\x08\xec\x46\xc9\x8e\x11\xdc\xfd\x8a\xf7\x66\x68\x03\x3e\x63\x2b\x66\xad\x41\xfc\x75\xaa\x63\xca\x7d\x6a\xf9\xa4\x27\x80\x17\xba\xf7\x6d\x98\xfa\x2b\x91\xdd\x37\x0d\x83\x90\x3e\x3e\x15\x39\x6b\x21\x14\x08\xc1\x10\x31\x1b\xe6\xe1\x51\xdf\x17\x48\x34\x53\x0e\x16\xdf\xea\x33\x08\x17\x0e\x95\x50\x9d\x99\x12\x02\x20\x57\x63\xd5\x35\xb8\x49\x12\x75\x07\xa9\xb6\x5a\xbe\x51\xb8\x3f\xb9\xa7\xac\x70\x8e\xba\xd2\x8e\x48\xbd\x18\x0d\x82\xb6\xc4\x36\x85\x38\xe2\xb1\x3d\xcd\x13\x3f\x8a\x0f\x97\x7c\xc9\xa9\x8e\x51\x69\x41\xb5\xad\x38\x2f\xbe\xfb\xc0\x44\x5f\xf7\xe3\xbd\x81\x9f\x8f\xca\xcd\x83\xb7\xad\x9f\x8f\xa6\x3d\x46\xf7\x45\x44\x5e\xcc\xf4\xea\xc5\xd8\x3b\x8b\xc6\x23\x8d\xdf\x15\x04\xc5\xfd\x7d\x45\x3a\x29\xbe\x32\x77\x11\xd5\x34\x87\xe0\xfc\x21\x4d\x27\xff\x03\x53\xe7\x5c\xe5\x8c\xad\xcc\xf8\xe0\xdb\xcb\x58\x01\xd9\x35\x50\x5b\xcf\x39\xbf\xf1\x97\x66\xca\xdd\xcf\x42\xeb\xf8\xb6\x0f\x29\x1a\x6f\x21\xa4\x1f\xf5\xcb\xe1\x0a\x4a\x64\xe1\x59\x8e\x40\x8d\xe4\x02\x50\x8a\x61\xe2\xb2\x2b\x5e\x6f\x49\xd8\x10\xa9\x9b\x5c\x1a\xc8\xe8\xeb\xf1\xe5\xbd\x73\x92\xfb\xcf\xd0\xc6\x08\x51\x46\x31\x6a\x9b\xc5\xf9\x15\xc1\xe0\x4f\x7e\x38\x0c\x57\xb3\x3a\xfa\xf5\x91\xaa\xfa\x53\xae\x08\x4a\xab\xf5\x48\x21\x1b\xf8\xb4\x5e\x96\xcf\x0f\x75\xef\x3a\xfa\xe6\xa5\x38\x83\x97\x10\x5c\x8f\xd8\x07\x27\x73\x60\x6a\x2f\x31\xc2\xf4\x68\x4e\xb2\x73\xa6\x74\x99\xb2\x40\x58\xee\x52\x4a\xd6\x1e\xed\xb1\xbb\x54\xb2\x3f\x83\x04\xfe\x82\x35\x51\x93\xcb\xd6\x09\xbf\x70\x2e\xde\xb8\x9e\xd9\x84\xd4\x6b\x97\x20\xa0\xc0\x8a\x4b\xd7\x65\x5a\xc7\x70\x4e\xba\x92\x7b\xda\xc5\xc7\x22\xc6\xf9\x06\xe6\x8a\x9c\x1d\xe5\xa2\x81\x90\x5b\x3a\x4c\x28\xb8\x93\x2f\xf8\x31\x0d\xa2\xeb\xe6\xcc\x5b\x53\xa7\x0d\x0b\x6e\xaa\x47\x34\xcc\x14\x44\xd6\x09\x71\x3c\xb6\xe7\xb7\xfb\x5a\xe3\x0a\xd7\xf6\x4c\xb3\x75\x6d\x6f\x2b\x40\xbe\xd8\x3b\x6d\xfe\xf3\xbb\x7b\xed\x23\xab\x58\x43\xdf\x18\x35\x8d\x52\xb4\xd5\x8f\x53\x7f\x5e\x1f\x73\x1a\x51\x7b\xf3\xd5\x1c\x60\xa7\x67\x41\xa9\xb0\xae\xaf\xa4\x83\xd0\x15\xb9\x9e\x36\xf3\x4b\xf0\xff\xa3\xeb\x2c\xf6\x58\x65\x9a\x6e\x7f\x41\x0c\x70\x1b\x36\x4e\x70\x97\x19\x6e\x09\xee\x57\x7f\x7e\x7b\xbf\xf6\x7c\x83\x33\xaf\x04\xb2\x58\xdd\x54\x57\xba\xfe\x2d\xaa\xfc\xc5\xe3\x25\x9a\x2c\x92\x3a\xbc\xf1\xdf\x35\xc4\x87\x20\x64\x64\x8d\xda\x8a\x3d\xa3\xf1\xa4\x4b\xa1\x64\x09\x68\x9d\x6b\x78\x5b\x88\x6d\x4c\x82\xff\xd6\x35\x02\x83\xf7\x5c\x0b\x8c\xf0\x8b\x9f\x50\x81\xd9\x39\xbd\xe4\x77\xf8\x12\xd6\x63\x4d\x38\x47\xbd\x82\xe7\x18\x30\xce\x3c\x33\x0f\xf5\xe9\xc0\x98\xd6\x67\xac\xf8\x08\xfd\x3d\xcc\xa7\x50\xdc\xf3\x12\x87\x35\x85\x9a\xfa\x07\x6a\xd8\x31\x4f\x13\x14\x5f\x05\xeb\xab\x03\x63\x29\x7c\x86\x7f\xbe\xce\xde\xd7\x75\x5b\x90\x2d\x4a\xa8\xd7\xfc\xbb\x2e\xcc\x1b\x9f\x8f\x74\x01\xfd\xfb\x63\x8f\xd1\x67\xe1\xe0\x38\x5d\x44\xf8\x21\x2f\xcf\x9b\x64\xce\x5d\x2f\x5f\x29\xd7\x10\xa9\xe9\xad\xb3\x85\xa8\x44\x57\xc4\x0d\xd3\x25\x2e\x03\xa5\x5f\xb2\x23\x1e\x86\xc6\x2a\x94\xc5\x01\x0a\xd9\xef\x1e\x12\x2d\x4e\x57\x63\x33\x73\xcf\x95\x76\xf7\x33\x5c\xbf\x48\x9d\x45\x3d\x4c\x5e\x1d\x86\xef\xe2\x1b\x9d\x5f\xc2\xff\x5b\xb3\x8f\xae\xbe\x11\xc5\x7e\xfd\x63\x28\xaf\x51\xf9\x9f\x82\x80\xca\x8a\x56\xd8\x3c\xc9\x29\xfd\x6a\x3c\x7a\x24\x90\x99\xaf\x9b\xbf\x5e\x17\x3b\xb7\x65\xc3\x77\x36\x16\xb6\x60\x05\x25\x4c\x37\xee\x5d\x45\xa1\xe4\x42\x3a\xda\xe6\x11\x93\x22\x91\x6c\x92\x15\x5c\xe2\x90\x54\xc1\x12\xf5\xcc\x5b\x36\x59\xb6\xd5\x87\x39\xd4\x84\x62\xd1\xf0\xa0\xb1\xe8\x12\x1d\x4b\x51\xfd\x1c\xfc\xd7\xf6\x10\x27\xcd\xa2\xee\xb3\xcb\x6f\x59\x40\xec\x73\xd6\xe3\xaf\xfd\xc1\x6b\x16\x5e\xff\x2a\x30\x79\x00\xf0\x3d\xf4\x39\xac\xe5\xaa\xcc\xb6\xc4\x54\xf9\x8a\x72\x73\x21\xae\x1a\xd6\x97\x89\x0f\xaf\xae\x27\x98\xad\x32\x6b\xd4\x82\x0d\xe9\x14\x5d\xcd\x70\x04\xc3\xa2\x12\x17\xbb\xc2\x6f\x93\xaf\x1c\x86\x49\x45\x22\x95\x13\x76\x85\x4d\x2f\xea\xbf\xfb\x3d\x3a\x57\x04\x1c\x89\x20\xc3\xf7\xfc\xc5\x38\x62\xc4\xd0\x1c\xeb\x5c\x63\x7f\x0b\xf8\x38\x95\x17\x23\x0f\x88\xb3\x84\xca\xb5\xfd\x33\xe7\xd5\xab\x03\x57\x17\x97\x07\x7e\xc7\xa1\xc6\x02\x78\xc8\xce\x1e\xeb\xdd\x8d\x32\x77\xf8\x65\x69\x1b\xb3\x6d\xdb\xb0\x63\x11\x9d\xc5\xe9\x5f\x75\x0d\x59\xe5\x45\x65\x0b\x72\xd8\x6c\x5b\x46\xa8\x8c\x1f\x75\xde\x69\xc2\x6f\xdc\x15\x35\x7c\x44\x07\xbc\x80\x5d\x7c\x63\x95\x8c\x02\x01\x7c\x93\xf7\x36\xc3\xa4\x4c\x73\x9c\x5e\x1a\xf9\xa9\xf4\xec\xb4\xce\x2e\x94\x7e\x43\x23\x62\xa0\xfa\x67\x34\x51\xbe\x90\x50\x4d\x4e\xf2\x0c\x38\x41\x73\x9a\x4f\x6d\x73\x38\x9b\xf4\xd1\x67\x38\xab\xbc\x71\xb0\x2d\x3a\xed\x83\x38\x11\x03\x30\xd3\x8e\x14\x57\xda\x3d\x9f\xe6\x20\xf0\xe9\xbe\x4b\x1e\x4f\x14\xb3\x51\xe4\xf1\xca\x30\xa5\x56\x0f\x5b\xd6\x7c\x00\x51\xca\xdc\x96\xdc\xd8\xf0\xa0\x55\x2c\xb8\x77\xb0\xcb\x5c\x6f\xc2\xb2\x10\x2c\x58\xd4\x99\x0b\xc0\xd9\x33\x81\xd9\xb1\xa0\x4e\x0f\x4c\xd9\x1b\x49\xb9\x0a\x3c\xd8\xe3\xa9\xca\x66\xd9\x2f\x2d\xd3\x23\x32\x9a\x69\x9a\x7d\xc3\x27\x1a\x9f\x37\x39\x6d\xe1\x4f\x75\x49\xb5\x48\x10\xcd\xdc\xa1\x1f\x4f\xe4\x37\x2b\x73\x1c\xd8\x9e\x09\xcc\x4d\x19\x69\xc5\x63\x4e\x7d\x34\xeb\x47\x4a\xd8\x0c\xb8\xcf\x87\xbf\x04\xa1\x81\x72\xca\xf2\x1d\xe5\xf3\xa2\xab\x39\x25\xf5\xdd\xa0\x1a\xb6\xc2\x38\x03\x0b\xab\xd5\xc4\xf8\xe8\x50\x22\x4f\x0e\x69\x50\x38\x1e\x17\xb3\xbe\x4d\x10\x1b\x19\xd6\x04\xcb\x0a\x01\x25\x15\x99\xe2\x7a\x49\xcc\x6f\x2a\x27\x6b\xb5\x2c\x8f\xa2\x69\x71\x18\xc6\xd7\x89\x91\x03\x73\xe3\xc8\xf6\xa1\xba\xab\xe7\xcf\x09\x16\x6e\xfc\x9b\x7d\xb4\x1c\x7a\x8a\xfe\xdd\x50\xe1\x03\x8f\x24\xa6\xda\x2b\xa4\x69\x8a\xd9\xdf\xf1\x9d\xc7\x2d\x6b\xbd\x79\x62\xbf\xc5\x08\x84\x3e\xa5\x8a\x84\x3c\x6a\x5e\xc1\x27\xfd\x86\x50\x31\xb7\x07\x21\xf3\x6b\x8b\xf4\xa5\x4d\x21\x1c\x16\x2c\x34\xf3\xca\x6e\xf8\xb7\xdc\xab\x74\xf1\xa9\x7e\xc4\x4e\x60\x99\xdf\x62\xcd\xd0\x97\xb6\x97\xe3\x98\x06\x66\x00\x60\x96\xa1\xb8\xdf\xd5\xdd\xae\x0e\x75\xcc\x1b\xcc\xd0\x96\x5b\x79\xa7\x53\xa9\xd5\xdc\xd9\x82\xd0\xb9\xcf\xe2\xf2\x8d\xd7\xff\x3a\x96\xfd\xd1\x21\xa9\x4d\xb4\xb6\x16\x64\x2d\xc5\x9d\x0c\x66\x22\xb8\x2d\x7d\x46\x32\x27\x0a\x0e\x07\x9f\x1f\x4b\x4b\xb3\xc7\xb8\x4f\x8a\x2c\x26\x1d\x1a\x8c\x8c\x2e\xe4\x54\xfe\xce\x08\x84\xa7\x94\x59\xe0\x49\x44\x1f\x0a\x09\x55\xde\xa6\x51\x77\x01\x2b\x6f\x0e\xbe\x7c\x74\xba\x6e\x60\x11\x35\xb4\x5c\x10\x51\xb6\x23\x01\x4a\xa1\x38\x87\x6f\x7a\x05\x5b\x6d\x2b\x74\xec\x6e\x18\xce\x41\x3d\xa6\xd3\x21\xdb\x09\x90\x72\x21\x09\x79\xde\x7f\x9e\xa1\xf1\x11\x03\x75\xc5\xd8\x4e\x95\xb1\x37\xd0\x41\xa6\x1d\xd7\xe7\x63\x9f\x23\xe2\x7a\x41\x78\xa4\xbe\xca\x1f\x62\x8d\x9b\x11\x90\x8d\x42\x10\xfa\xab\xc3\x7c\xff\x29\xdd\xba\x2a\x71\x81\x88\x1a\x8c\x54\x35\xfb\x91\xf1\xba\x58\x11\xb8\xfa\x4e\x3e\xbe\xf5\xbd\xa5\xb5\x69\x78\x19\x70\x83\xc2\xf0\x6d\xd8\x07\x92\x6e\x70\x98\x13\x8d\x4a\x8f\xf0\xa9\xe4\x95\xe7\x51\xf6\x33\xd4\xb7\x8b\xc4\xf5\xb4\xdf\xea\x7a\xe3\xc2\x40\x23\x7c\xfd\x1b\xec\x80\xcc\x6b\xcc\x2f\x20\xd9\x9e\xf3\xf3\x65\x39\xb6\xf3\x21\xe5\x1e\x68\x95\x71\xf0\xeb\x0b\x1a\x23\x12\xb6\x3d\xd0\x4a\xbc\x4c\x53\xdf\xfc\x45\x5a\xf0\x52\xc7\x15\x0e\x80\xdf\xd5\x46\x4d\xdd\x82\xb7\x40\xd2\x4a\x0a\x8c\xd2\x03\x6f\x27\xe5\xac\xa8\x8b\x45\x8c\x07\x6d\xdf\xf5\xef\xbb\x3c\x1d\x9c\x86\x4c\xf6\xa4\x07\x70\x3e\x04\x9e\xeb\xe3\x35\x16\xb4\xe2\xae\x71\xef\xac\xc1\x0b\x4d\x09\x66\x8b\x16\xcc\x26\xf8\x03\x04\x13\x73\xeb\x99\x99\xb5\xbc\x39\x0f\x55\xc7\x11\x5a\xb0\x2f\xfa\x13\x42\x22\x2e\x17\x2d\x59\xc1\xbc\xbe\xc5\x66\x27\x10\x86\x90\xf6\x6a\x7d\x41\x19\x9f\xbb\x41\x12\x42\xcd\x4b\x6c\xbb\xd0\x9e\x79\xd5\x5e\xd1\x5a\x6f\x26\x91\xe5\x66\xad\x76\x1e\x73\x0e\xfd\x84\x5a\x8e\xf4\x03\xd5\xb8\x6d\xc2\x5c\xe1\x72\x8f\xd2\xe6\x34\x33\x7e\x41\x7e\x72\x2c\x93\x1d\x87\x88\x8b\x4b\x81\x0d\x93\x40\x4c\xe4\x03\x51\xb0\x41\x29\xb9\xc5\xae\xea\x29\x45\x95\x05\x11\xdc\x21\xdb\x10\x88\x9d\x51\xff\xd4\x22\x2e\x7a\x30\xcb\xf5\x8c\x78\x90\x85\xfc\xe9\x4a\xa3\x16\x0c\x1f\x3e\xb3\x1d\x28\x7e\xf3\x67\xad\xb1\x66\xd4\x1e\x51\xb8\xe5\x7b\x6c\x36\x44\x34\xa5\x53\x87\xda\x28\xcc\xc7\xb0\xd0\x9c\x84\x52\x73\x33\x10\x83\xb0\xde\xba\x5f\xe6\x51\x3d\x78\x0b\xd8\xe8\x6d\x37\x29\x9d\x48\x97\x7a\xee\x61\x59\x56\x58\xa9\x36\x3a\xfb\xf8\x97\xb5\x8e\xc8\x97\x06\x53\x41\x90\xcc\xd5\x0d\x7c\xb8\xd5\x9d\x48\x5f\x91\x5a\x13\x82\x39\x62\xfc\xf9\xdc\xce\x74\xce\x1b\x8f\xb7\x15\x31\xa5\x44\xd5\xc1\x14\xc7\x0b\xaa\x09\x33\x5c\xca\x34\x70\x21\x3d\x1d\x3b\xb6\x09\x5f\x2e\x89\x0d\xd9\x83\x79\x6d\x90\xbd\xf9\x5c\xe8\xf2\x9c\xce\xbb\x7e\x7f\xf2\x8d\xd8\x33\x96\x40\x1f\x75\x12\x4f\xd8\xac\x13\x59\x1a\xd4\xa2\xd2\x64\xce\xc7\x91\xde\xb3\xc1\x79\x0d\x65\x94\x8a\x20\x58\x9f\x0d\x91\x73\xd1\x2a\x82\x19\x87\x92\x16\x20\x88\x62\x91\x41\xa9\x75\x96\xb7\x04\xd1\x3e\x0c\x79\xe7\xf0\xd9\x7a\xc1\xee\x6b\x25\x05\x7d\xbb\xb9\x13\x01\xc5\xd7\xa0\xa2\x4d\xe8\xbd\xf1\x34\x24\xa4\xbc\xd3\x49\x34\x76\x98\xd2\x52\x13\x49\x53\xac\x8d\xde\xb4\x98\x88\x47\x72\xe4\x27\x68\x75\x20\xac\xbe\x2c\x01\xc2\x09\xfa\x8c\xc3\xb7\x2f\x29\xe3\xe7\xc2\xc8\x00\x9f\x99\x5d\x00\xee\x2c\xb0\x89\x51\x89\xf9\xe4\x78\x0e\x72\xdd\x49\xe8\x18\x11\xde\xe4\x3a\xd6\xf7\x53\xd1\xf6\x37\xed\xe2\xf5\xe1\xde\x4c\x9e\x6f\xc4\x77\x7f\x40\xd5\x9b\x1f\x36\xb2\xb0\xa5\xb8\x69\x0c\xcd\x53\x84\x1f\xfb\x41\x8f\xb5\x5f\xae\x51\xcd\x6b\x1e\x07\x04\x83\xc2\x01\xc6\x31\xd2\x2f\x81\xd2\x92\x90\xfb\x25\x53\x89\xd2\x38\x80\x20\x96\x3e\xe2\xd2\x16\x05\x94\xb4\xe9\x05\x1d\x2b\xc8\xdf\x1c\xd4\x9b\xa4\x03\xea\xb7\x51\xe4\x36\x27\x02\xe1\xf0\xa4\xf0\xcb\x1a\xff\x7e\xa3\xe6\xd7\xfa\x64\x34\x78\x58\xbe\xa6\xda\xa2\x75\x87\x98\x55\x72\xb7\x4d\x8f\xd1\x61\xfb\xb3\xec\xab\xe2\x5e\x5e\x07\x2e\x33\x52\x60\x9d\x2c\x16\x51\x39\xdb\xc7\xac\xa0\x44\xb5\xd9\xf4\x0e\x18\x98\x00\xe6\xec\x72\xe6\x47\x98\xc0\xa2\x90\xc1\xaa\x5e\xb8\x54\xd7\x17\x8e\x5b\xb9\xc1\x2f\x9a\x57\x01\x1d\x32\xc4\x7e\x92\x7a\xeb\xfc\x88\x39\x94\x27\xc5\x53\x0d\x19\xcd\x43\xc4\xd0\x67\xaf\x77\xec\x56\x1c\x28\x04\x3e\x46\x97\xd7\xf7\x87\x1c\x85\xcd\xac\xa7\xf0\x43\x9c\x58\xee\xc1\x15\x93\x83\xa0\x77\x6f\xa2\xe8\xdc\x88\x83\xea\x95\x08\x2f\xd6\xcb\x90\xc0\xf0\x4a\xbf\xd1\x64\x55\xb6\x13\x45\xc8\x4a\xed\xd8\xd6\x8d\x58\x78\xbe\x0d\x64\x81\x10\xb5\x66\xf8\x5d\x9f\x78\x16\xac\xe1\x69\x4c\x70\xa8\x48\xff\x49\xbf\x53\x41\x14\x35\xeb\xc7\x70\xf1\xd3\xb3\x1d\x0e\x7c\xf0\xb9\x1c\x02\x1a\x0b\x6e\x05\x42\x8d\xdd\x75\x3b\x7e\x4b\x11\x66\xdd\x5a\x56\x97\xae\x05\x5f\x10\x1b\x45\x8f\x94\x44\x9d\x98\xa6\x5f\xf0\x13\x6b\x19\xa9\x85\x71\x79\xb2\x9f\x32\x5c\x62\xb6\x8e\xaa\xa1\x91\x30\xfd\x5b\x34\x4e\xe3\x12\x5d\x11\x78\xba\x95\x0c\x44\xd0\x70\x97\x94\x8c\xec\xd8\xff\xd8\x31\x31\x0e\xf7\xb9\xa2\x0b\xcb\x01\x25\xdb\x68\x32\xa0\x22\xa1\xc4\x5f\xd8\x68\x67\x2b\x9c\x0f\x48\x4c\x00\xe3\x38\x0b\xa4\x71\xd4\x26\xa9\x20\x68\xce\x07\x57\xaf\x67\x04\x83\x50\x6b\x2f\x55\x58\xde\xec\x87\x7d\xed\x6b\x33\x02\x29\xe5\xf7\xc3\x2f\xd9\x32\x9f\xa5\x94\x88\x13\x2f\x98\x44\x41\xff\x3a\xdc\x85\xb1\x8e\xa8\xf9\x00\x42\xe0\xe2\x72\x25\xf8\xfc\x94\xb3\xd6\x69\x0e\xe9\x38\x89\xf2\x60\x7c\x05\xe3\xeb\x61\xd7\x66\xfd\x84\x5f\x2b\x75\x82\xd1\x25\x24\x42\x06\x5d\x3f\xc5\x6b\x48\xec\xd8\x3a\x85\xae\xc7\x47\x7d\x60\x3c\x7b\xe3\x23\x56\x85\xfb\x4c\x4e\x65\xf7\x74\x73\x46\x65\x28\x64\x21\x79\x4e\xbd\x9c\xe8\x66\x98\x4d\x4e\x48\xf7\xa7\x3e\xda\x4d\xfa\x5d\xae\xde\x9c\xab\x08\xe8\x1f\x06\xd2\xe0\xcf\x84\xcb\xa1\x8b\xa4\x60\x48\x17\x68\x8e\x4a\xa8\xbf\x36\xdb\x6e\x39\x3e\x4c\xa7\x07\x48\x46\x26\xe1\x62\xf9\x5b\xab\x4e\xea\x2d\x56\x60\x4a\x6a\xea\xd7\x2e\xbb\x9a\xdd\xa0\x44\x8d\x1f\xdf\x43\x26\xb4\x0e\xed\x17\x8f\x69\x7a\x03\x69\x51\x3b\x9d\xe8\x40\xc9\x52\x09\x97\xf4\x40\x30\x82\x0d\x05\xef\x8c\x1c\xd2\x8b\x65\xd1\xca\xd6\x03\xdb\x10\x17\x5c\xdf\xdd\x71\x98\x9e\xbe\x79\xdd\x16\x21\xa8\x95\x0d\xb5\x1b\xdd\x36\xff\x8d\x34\x91\xb3\x4a\x9e\x70\x38\x69\x1f\xf5\x57\x51\xb0\xf4\xbc\x09\x98\x4b\x14\x49\x62\x84\x31\xa7\x21\xe5\xfb\xec\x36\x77\x61\x92\x7c\x95\x8c\x5e\x71\x9a\xa9\xf6\x5a\xcd\x70\x45\x79\xbb\x5d\xde\x2f\x29\xfc\x58\x2b\x11\x34\x80\x90\xdc\xab\x7d\x4c\x9d\xbf\x36\x13\x44\x6d\x96\xd8\x01\x3c\x29\xe5\x8f\xce\x4c\x2e\xc1\xd2\x2e\xf7\x9e\x26\x48\x37\x54\x92\x38\xe3\x52\x0b\xcd\x3b\x15\xe6\x73\x6e\x3a\x5e\xa2\x45\x57\xb6\x1f\x26\xc5\xef\x37\xed\x2e\x48\x78\x19\xb1\x6a\xa8\x90\x07\xb6\x9a\x8c\x9c\xde\x03\xf2\x81\x02\xe3\xa5\xad\x0b\xc3\x12\xf3\x22\xb0\x4d\x56\x70\x47\xbc\xba\xcd\x1c\xbe\xdb\x79\x35\x0a\x22\x8f\x44\x11\x3e\xfe\xad\x8e\x32\xfa\x7e\xd5\xdc\x2f\x23\x2f\xf4\xb3\x40\xf9\x20\xf6\x1b\x0d\x24\x07\x48\x18\xc3\xb6\xb6\x62\xd3\xba\xc5\xef\xdb\x3d\x39\x18\xe7\x14\xc6\x99\x73\xac\x51\xee\x3b\xcc\x5a\x0a\x4f\xf3\xb6\xd6\x99\xba\x56\x00\x3a\x28\x87\xdd\x27\x35\x23\x59\x97\xfb\x63\xf6\xef\x7e\x8d\x84\x7d\xbd\xda\x32\x4b\x17\x60\x1a\x29\x8d\x25\xf2\x60\x1c\x69\xfd\xb5\x94\x3e\xe1\xd0\x46\xb2\x09\x2c\x72\x75\x20\xb4\x9b\x4f\x1f\xcb\x13\x30\xd3\xbd\x87\x37\x24\xd6\xa8\x18\x06\x6e\x53\x34\x3a\x42\xbb\xfb\x84\x45\x36\xba\xd3\x6e\xc2\xda\xc3\xab\xe7\x17\x9c\x79\xcf\xcf\x46\xb5\x62\x3f\xed\x86\xf9\x72\x59\x80\xd9\xca\x7e\xf8\x9d\xb8\xdb\x6e\xbe\x54\xd0\xbe\x12\x3f\x43\x15\x68\xb5\x15\x6d\x32\xf1\x8a\x8f\x4e\xf8\x0f\xab\x38\xb9\xd9\xe7\x49\x71\x17\x0c\xa0\x13\x45\xea\x3a\x9e\x2a\xab\x75\x53\xee\x7e\xab\xc9\xfd\xc9\xa8\x22\x81\xf7\xda\xc1\xd1\x2f\x3e\x6f\x17\x06\x87\x50\x15\x0a\xca\x6d\xda\x2a\xb6\x10\xf1\x7a\x1f\x5f\x86\x33\x5c\xc0\x62\x3f\x5a\xdb\xee\x9b\xae\xdb\x12\x93\x20\x46\x60\x78\x3c\xd6\xd2\xd6\x82\x01\x3c\x2b\x75\x83\x5d\x16\x36\xf6\xba\x4a\x8b\xf8\x53\x0b\x90\x34\x90\xa2\x9e\x9d\x5b\xf3\xa2\x25\x84\xaf\x7e\x0e\x41\xe3\x57\xe5\x22\xae\x99\xb6\x62\x1d\x5f\x3d\xd5\x96\xdf\xb1\x69\xc6\xe7\x87\xf1\xc6\xa6\x84\xed\xa7\xab\xc6\x6a\x71\xa6\xc3\x3d\x5f\xa8\x89\xbb\x89\x7d\x03\xac\x17\x11\x3d\x79\xbd\x8b\x03\x6c\x6e\x8f\x6e\xe8\x5a\xe0\x0b\xd6\x0e\x3e\x3e\x9d\x8a\xd0\xb8\x10\x59\xf1\x3a\x1f\xbc\x90\x13\x1b\x8c\x2f\x06\x62\x3e\x11\x50\x10\xab\x8d\x72\x6b\x27\x9a\xc9\x42\x37\x40\x5b\xa1\x7b\xb0\xd5\x5b\xa5\x41\xe4\x04\x85\xbb\x47\x18\x65\x2d\x38\xea\xbb\x1b\x17\xc7\xaf\x47\x84\xd0\xa8\x6f\xb2\x52\xe4\x9b\xca\xde\xc7\xef\x10\x18\xc1\x6a\x39\x44\xf7\x58\x4f\x50\x10\x34\xcd\x09\x97\x95\xeb\xd4\x84\x37\x53\x49\xdd\xa6\x10\x0f\x75\x25\x29\xf3\xf5\xbe\x6e\xfc\x0e\x92\xb0\x22\x2c\x48\xe0\xab\x83\x85\x78\x8b\x30\x61\xdf\x6f\x06\xb8\x4b\xa5\xd4\x63\xd9\xba\x30\xe9\x24\xda\xab\x47\xbf\x8b\xd4\xc6\x46\xce\x39\xd9\xd0\xdb\xd4\x9a\x12\x9e\x7c\xe0\xaf\xf2\xf9\xa1\x3e\x73\xc4\x62\x98\x8f\xdf\x0d\x2b\xf3\x3d\x29\x4a\xee\x14\xa5\x7e\x6c\x1b\x69\xce\x82\xe8\x13\xe8\x02\xcd\x2d\x42\x4f\x8b\xfc\x74\xc1\xb0\xf8\x82\x22\xf6\x24\x1e\x09\x93\x91\x93\xb8\x01\x5f\x8b\x1b\x21\xd6\x1d\x43\x98\x35\x7c\xce\x1c\xa7\x82\x1f\x9e\xd6\xd0\x13\x7d\x1a\x0b\x39\x2e\xdb\xdd\xa3\x37\xa3\xc5\x11\x26\x9a\x55\x60\x43\x73\xd8\xf1\xb9\x3c\x38\x69\x77\xbd\x92\x5f\xe2\xb5\x77\x96\x7e\x44\xb6\x4f\x2d\x2a\xec\x36\xb7\xbc\x30\x64\x64\xfc\x92\xdf\x91\x2c\x94\xdd\x11\x13\x69\x10\x37\xc0\xe2\xc0\xa3\xc5\xa2\x6e\x2e\x08\x17\x36\x2b\xba\x5c\x2e\x97\x39\xfc\xde\xd5\x76\x37\x1c\xe9\xf8\x48\xfa\xf0\xa1\x54\x02\xfe\xb5\x3d\x6c\xc4\x1c\x04\xc6\x55\x88\x59\xae\x6e\x66\x4c\xa9\x9e\xad\xbf\x4b\xb8\x12\x14\x50\xd1\xb9\x90\x33\xf5\xa2\x24\xf6\xd3\xb2\x60\x4b\x66\x82\x4d\xcb\x4d\xad\xb6\x1a\xd6\x36\x9b\xf9\xc2\xce\xd7\xe7\x4c\x88\xfe\x0d\x86\xb5\xd7\x9a\xde\x3d\xa5\x74\x91\xb2\x9d\xf5\x2f\x72\x0d\x5d\x8b\x26\xf5\xa6\x2c\xd9\xaa\x7f\xd0\x39\xf1\x88\xa0\xa8\xb6\x7a\xd1\xdd\x67\x40\x29\x6d\x54\xb6\xdb\x6c\x7d\xd9\x2e\xcb\x6d\xc6\x98\x57\x4e\x42\x0c\x58\xb2\xae\x5a\xf4\x8c\x0f\x3a\x23\xf3\xb3\x60\x6d\x46\x13\x2e\xeb\x48\x07\x67\x43\xa4\x84\xf5\x2e\xdd\x8b\xbb\x45\x47\xbc\x2c\x36\xca\xe6\xaa\x5d\xfa\x47\x55\x39\xfa\xb7\x9b\xaf\x60\xf5\x8c\x8f\x5d\x24\xbf\xb9\xee\x81\xb8\x86\x10\xdb\x03\xa9\xed\x13\x7b\x5f\x45\x02\x2d\xb3\x72\x3c\xdb\xd0\x27\xfc\x68\xcd\x05\x61\x2b\x93\xa4\x40\xf5\x4d\xc7\xd0\x58\x94\x58\x2d\x0d\x25\xc9\x44\xee\x1b\x95\xd3\xa1\x55\x29\x7f\x8a\x7c\xc4\xb1\x55\xce\x18\x18\x81\xac\x1e\x17\x01\xce\x3d\x57\xec\x53\x13\x45\x34\x71\x23\xe7\xca\xd8\x27\xe4\xc2\x2e\x04\x87\x9e\x74\x2f\x77\x32\x6b\x73\x15\xb5\x3e\x09\xbb\xce\xc4\xd4\xfb\x6b\x9a\xd6\x93\xea\x91\x9a\xaf\xf1\x92\xd5\xb7\xe7\xa2\x2a\xc9\x2f\xc3\xca\x6f\xb3\x52\x1f\x29\x8f\xb7\xea\x03\xe3\xe8\x8f\xcb\x35\x56\xfd\x98\xdf\xd3\xd0\x0e\xeb\xc7\x48\x54\xcf\xd4\xc4\x7d\x14\x50\xb1\x8f\xdf\xd3\xf0\x5d\x57\x4e\xdc\x12\xc4\x84\xe1\xc7\x91\xd2\x4f\x64\xe7\x9a\xf2\xbc\x6a\x88\x3a\xab\x0d\xa0\x0f\x44\x15\xc6\xa0\xa4\x0f\x14\x4e\xf0\x6d\xa7\x25\xe4\x5a\xa1\xb8\xcf\x2c\x6e\xc1\x4c\xb3\x92\x51\x9d\x25\x39\x01\xb0\x55\xa2\xbe\x5e\xc1\xee\x03\xc5\xbd\x30\x80\x23\x6f\x84\xd8\x5f\x26\x30\xec\xa3\xa1\x0f\x01\x0e\xca\x5f\x17\x1d\xb3\xc7\xac\x85\x21\x6a\xed\xa1\x20\x96\x18\x4e\x2e\xc0\x0d\x73\xd4\xaa\x38\x32\xda\x31\x49\xad\x39\xa4\x4f\xd2\xf7\xc5\x20\x65\xe6\x8d\xd3\xcb\xb2\x6b\x93\xb8\xe4\x83\x06\x02\xcc\x02\x88\x2f\x9f\xee\x3b\x7d\xad\x6b\xb8\x6c\x89\xab\xa7\xb7\x80\xed\xb7\xd2\x6d\xbe\x89\x00\xbe\x7f\x97\x59\xbe\x1e\x86\xa4\x35\xf2\xb4\xf8\xb3\xde\xab\xf1\x39\xeb\xc6\x1f\x59\xf1\x4c\x28\x97\xb6\xfb\x9a\xf4\x52\xc6\x18\x80\x80\xf1\xbe\xac\xa3\x3b\xf5\xd9\xf5\xb1\xbf\x82\x1f\x29\xa7\x25\x71\x5a\x61\x7c\x45\xee\xf8\x7a\xc5\x09\x36\x38\x0b\x81\xe2\x13\x46\x16\xe6\x6c\x20\x2a\x11\x62\x96\x63\x98\x9c\x0a\x9b\x5e\x9d\x50\xcc\xb5\x20\xf8\x44\x33\xe4\x0e\x53\xc3\x6f\x87\xe6\x83\x94\x1d\xb8\x37\x0b\xd1\x3a\x76\x81\xae\xf5\x9f\x4f\x57\x0c\x75\xfa\x91\x80\x52\x39\xe8\xdb\x5c\x6e\xdc\x42\x52\xd8\xe2\xfc\x25\x29\x2a\x02\x1b\xfb\xa5\xda\x37\x05\x58\x5c\x24\x13\x54\x8a\x42\x77\xab\xfd\xf7\xd0\x1a\x89\x51\x09\x9d\x3e\xaf\x11\x87\xa3\xda\x53\x26\xc4\x28\xee\xda\xf4\xec\xc9\xc3\xce\x89\xc1\x94\x9c\x99\x75\x0c\x9b\xf3\x43\xfd\x18\x26\x7b\x76\x49\xf9\xb3\xdc\x15\xf3\xc3\xbb\x66\x1e\x36\x16\xae\xd2\x47\x0b\xc7\x61\xb4\x00\x94\x22\x65\x0a\x0c\xdd\x31\xcd\x6c\xa0\x91\x46\xe5\x1b\x53\x69\x44\x16\x5e\x4f\x2e\x75\x38\xd3\x70\xce\x87\xe5\x54\xdb\x9f\xf7\xaf\x7f\x91\x2f\x1f\x6e\xdf\x02\xac\xa2\x1a\xce\x1b\x4e\xd3\xca\x39\x85\x8a\x90\x58\x2a\x13\x11\x13\x24\x4f\x7b\x4e\x14\xa5\xe4\x23\xf7\x27\x52\xd7\xa0\x35\x66\x39\x79\xec\x00\x7e\xb5\x00\x08\x84\x50\xbb\xdc\x31\x22\x35\x2e\x10\x3c\x7b\x17\xe6\xfc\x8a\x71\x59\x32\xe6\xc1\xb0\xbc\xbc\x74\x19\x07\x34\xe2\x2c\x0b\x70\x2b\xf3\x09\xf1\x15\x11\x76\xf1\x61\x8b\x92\x59\xe2\x65\xc1\x0f\x82\x40\x00\x39\x5c\x4c\x84\xd0\x19\x44\xb2\xf0\x07\xfb\xd5\xe9\xb1\x10\x5a\x0a\xb5\x31\xd3\x28\x50\xca\x0c\xb6\x8d\x2e\xce\x14\x73\xe0\x6a\x84\xfd\x72\xae\x49\xbf\x30\x5b\xb5\x47\x75\x49\x60\x96\x1e\xcd\xca\x63\xaf\x21\xa8\xe6\x9e\x29\x46\xdd\x6e\xae\x4e\x8d\xf0\x6e\xfb\xb1\xcc\xae\xb3\x31\x7f\x62\xe7\x6f\x4a\x59\xdd\xd6\x21\x9e\xf9\xe3\xed\x54\x70\xb8\x5a\xa9\x30\x62\xb4\x41\xc1\xd3\xf8\x95\xdf\x46\x1f\xf3\x81\xe7\xe8\x4e\x8d\x17\x82\x04\x6f\x97\xa3\x74\x4c\xea\x19\x0b\xde\x92\x67\x5a\x86\xba\x72\x29\x35\x8f\x00\x45\x70\xa1\x49\x72\x3a\x53\xcc\x9e\xfd\x0a\xdd\x6a\xb8\xb1\xf7\x8d\xbf\x67\x8d\x6e\xd0\x65\xd9\xa8\x00\x39\x7c\x93\xd6\x0c\x78\xe5\x30\x85\x37\x85\x3e\xd8\xa6\xda\x98\x98\xb3\x1a\x0a\x31\xeb\x20\x17\x63\xaa\xfa\xe2\x68\xfb\x32\x5e\x26\x53\x92\x72\xc1\xbc\xf2\xf4\x88\xea\x21\x0b\x03\x7f\x98\xd2\x0c\x4b\xda\xbb\x78\xcd\xb3\xc0\xcb\x44\x3d\x24\xbd\x8c\xd2\xd4\x43\x26\xf3\x0c\x19\x74\x48\x90\x1c\x18\x76\x98\xbb\x63\x47\x9e\x73\x00\x33\xd3\x63\xcb\x61\x76\x9c\x98\x67\xac\x5a\xba\x73\xf9\x0d\xdd\x20\x88\x3c\x62\x29\x02\xf7\xbc\x2c\x60\x0c\x55\xb5\x90\x5f\xc6\xb3\x0a\x8c\xb5\x37\x74\x95\x07\xfe\xbb\x74\xc7\x9e\x11\x29\xcd\x22\x6b\xc7\x5d\x74\x28\xc4\xe9\x14\xfa\xdd\xc6\x19\x43\xf9\xe8\x62\x54\x66\x9a\x3d\x4f\xab\x65\x62\xc7\x5a\xa8\x2c\xa2\xaa\xf6\x62\x18\xfa\x42\x74\xe0\xfb\xb5\x1a\x5d\xb1\xed\x46\xea\xb3\x4f\x49\x3c\xfd\x1d\x58\x8d\x8f\x55\xc2\x13\x86\x5e\x39\x73\x12\x7d\x4e\x51\x4c\xa5\x25\xde\x4f\x39\xb5\xcc\xb3\x04\xee\xe6\x0b\xda\x3b\xa8\x0f\x55\xd2\x5a\x15\xe7\x42\x1e\xf5\xcb\x27\xa0\x57\xf7\xb1\x9f\x3b\x1a\xc4\x7a\x52\xfc\x99\xc1\xa4\x8d\x10\xce\x2f\xb1\x50\x5e\x0d\xbe\xe5\x53\x6c\x07\xac\xd4\x11\xf0\xec\xad\x9f\x37\xcf\x66\x20\x19\xd2\xec\xb7\xea\x86\x4c\x2a\xbc\x56\xf1\xda\x6a\x90\xc8\xaa\x1e\x45\x33\xc0\x7e\xd7\xd8\x30\xb4\xea\x8e\xb7\xf4\x73\xa7\x16\x0f\x7d\x10\x0f\x2f\xa0\x3b\xe0\x35\x27\x46\x04\xd0\x58\xcb\x11\x9d\x35\x6a\x6f\xeb\x8b\xec\x34\x4d\x72\x85\x8d\xec\x9b\xdc\x03\x8d\x78\xa2\x3a\xcd\xfd\x92\x72\x74\x9f\x3e\x4e\x66\x47\xd8\x07\x7d\xcb\xc4\xf4\xc4\xc1\xaa\xf2\xb0\xa4\xd5\xd5\xe7\x7a\x54\xf5\x48\x63\x9e\x00\x84\x0e\x40\xd4\x03\xbd\x43\x27\x40\xf8\x35\x31\x33\xa7\x1a\x2a\x69\xdc\xae\xfd\xd0\x58\xc0\xc9\x9c\xc2\xdb\x57\x4a\x5e\x27\xc1\x44\xa6\x55\x2c\x94\x0d\x8f\xf1\x91\x41\x9d\xbc\x0d\x5d\x63\x31\x70\xbc\xd5\xa4\xb2\xcf\x30\x28\xa1\x2f\xee\xd2\xcb\x82\x4d\x19\x1f\x79\x08\x50\x3c\x82\x09\xa4\xe2\x88\x40\xdb\xca\xfc\xae\x3b\x1e\xd9\xed\xd5\x60\x99\x36\x5f\xda\xeb\x88\x0a\x82\xd4\xc8\x23\xe3\x68\xc4\x41\x97\x3f\x12\xb9\x93\x46\xad\x9c\x58\xd8\x80\xe2\xf3\x21\xca\x09\x8d\xe7\xb1\xd2\x59\x2d\x58\x39\x0e\x48\x50\xff\xa8\xb1\x22\x7f\xcf\x60\xe8\xf6\x53\x9e\xeb\xae\xfd\x76\xde\x72\x1c\x50\xe4\x0f\x81\xad\x76\x14\xcb\x15\xc3\x28\xc4\xb8\xc5\x4a\x60\x49\x3c\x71\x78\x31\x25\x4f\x61\xa6\xf0\x58\x8b\x24\x78\x95\x75\xeb\xf2\x1b\x7e\x03\x17\xf0\x88\xac\xa8\x1c\x6e\x98\xc8\x36\x99\x7d\x53\xd3\xa6\x8b\x84\xc5\xe4\x36\xb6\x4d\x71\x65\x4b\xa6\xe4\x07\xec\x4e\xd1\x65\x83\x7d\x09\x63\x70\xb8\x3b\x8f\x9d\x99\xcf\xca\xb0\xf5\xba\x78\xeb\x93\x90\x1b\x74\xa3\x27\x9f\x79\xc8\x71\xd7\x6c\x62\x71\x19\x5e\x77\xcb\x4d\xce\x00\xc7\xd7\xa1\x86\x8d\x60\xba\x5f\x84\x0e\xd2\x4d\x2a\xb7\xcc\xd4\x82\xe6\x17\x4c\x78\x70\x6a\x6c\x91\xc0\x08\xf3\x75\xae\xef\xf0\x75\x78\x64\xbd\xe4\x02\xf2\x07\x4f\xd6\xda\x26\x5a\xbf\x3f\xec\xad\x0d\x94\x87\x8d\xce\x65\x55\xb5\x68\x5d\xa7\xa6\xf2\x89\xf8\xf8\x52\x45\x0a\x88\x3f\x06\x18\x66\xd3\xdc\x9c\xf3\xfa\xf3\xc0\x8b\xdc\x2d\xd9\xb8\xd6\x9c\x23\x55\x0e\x3c\x53\x46\x4b\x0d\x54\x1d\x22\xbf\x89\xa1\x57\x70\xfa\x3b\x24\x65\x46\xeb\x39\x48\xe3\x50\xa6\x1e\x9b\xa9\xa3\x26\x47\x72\xb6\x10\x46\x94\x32\x77\xd5\x1f\xa2\x58\x50\xed\x10\x3d\x47\x90\x79\x5f\xe0\xd0\xaa\x8b\xbd\xe4\xc0\x55\x5d\x83\xbc\x25\xf1\x1e\x81\xe0\x2c\x85\xf8\x42\x06\x38\xc6\x17\x57\x94\x35\x9e\x2f\xa2\x71\xeb\x22\x34\xee\xf0\x61\x92\xc8\x98\x7c\x65\xca\x65\x26\xf7\x9f\x09\xdb\x05\x2d\xb6\x7f\xea\x14\x83\xc5\x22\xca\xe6\x5d\x89\x0e\x65\x7f\xcc\x0f\x2d\xf1\xf5\x93\x45\xea\x61\x1c\x7a\x70\x7e\x53\xc6\x42\x3d\x44\x4a\xe4\x98\x37\x85\xdb\x66\x69\x7e\x57\x00\x22\xc5\x8c\x33\xd9\x9d\x8e\x92\xbf\x74\x7a\x0c\x8f\x39\x29\xa2\x1f\x15\x54\xfd\x6d\xd2\x24\x5a\x82\x00\xf3\x0b\xb8\x28\xa4\xfd\x2d\x23\xe6\xa9\x1d\xf2\xdb\x22\x99\xa1\xf5\x3f\x9f\x55\xf4\x8c\xda\x7f\x18\x0a\x7e\xe8\xce\xee\x5e\x5b\x1b\x59\xb1\x40\xd2\x01\xa1\x3a\x65\x4e\x2e\x5a\x84\xc6\x44\xc8\x4d\x50\x47\x34\x0b\xab\x6b\xeb\x0c\x00\xb6\x29\xe2\x0a\x6f\x91\x13\xd3\x2e\x00\x5a\xc5\x11\x0f\xca\x85\x9a\x37\x43\xaa\x05\xbe\xb7\x04\xf8\x8d\x6b\x6b\xf2\x91\xab\x56\xb4\x9b\xec\x8a\x1b\x40\x04\xf6\x2e\x90\x05\x07\x89\x9a\x65\x07\x86\x18\x65\x5e\x2c\xff\x5a\xff\x67\x46\x6a\xeb\xba\x41\x91\xfc\x76\xff\xfb\x55\x84\xe1\x0e\x49\x1a\x8d\x9a\xd4\x25\xed\xc6\xa3\x92\xc7\x74\xa4\x1f\xbd\xf2\x23\x8d\xee\x79\x1f\xa6\xa8\xf5\xa0\x94\x18\x53\x92\x67\x7f\xc7\x14\x47\x39\x7e\xe0\x4d\xac\x9f\xc5\xdd\x8d\x38\xcf\xf9\x12\x72\x1d\xcc\x8e\xba\xfd\x4b\x13\x90\xa9\x25\xb9\x68\x6c\xea\xac\xa8\x0b\xc7\x46\x46\x56\xa4\x7a\x81\x0f\x87\x40\x98\x35\xfa\x69\x56\x85\xd3\x9f\xf7\x9f\x9a\x7d\xec\xfb\xab\x0c\xed\xd5\xca\x2a\x0b\x13\x80\x13\x3f\xb8\x61\x60\xf0\xb7\x15\xfd\xdd\x82\x7f\x9e\x8f\x53\xa7\x81\x16\xfb\x9a\x1c\x25\x7b\x77\xf3\x6a\x32\x91\x3f\xb2\x30\x42\x45\x26\x54\x9f\x7a\x5e\xaa\x66\x01\x41\xc9\xd1\x38\x72\x61\x9d\xe6\x7d\x77\xf6\xf0\x93\x01\x3d\x93\x04\x6d\xaf\xac\x69\xa9\x6a\xdc\x16\x01\x2d\x64\xef\x25\xbd\x14\x7c\xd9\xe7\x1a\x0f\x24\x24\xea\x5f\x30\xe1\xaf\x15\xdb\x2d\xa9\x46\x97\x51\xdb\x39\xdf\x7e\x2d\x43\x52\xb5\x0a\x06\x46\x7e\x4f\xe4\x37\x25\xc8\x06\xe3\x5a\x23\xa0\x16\x43\xac\x00\x4a\xa9\x55\x1d\x53\x7e\x8d\x57\x02\x7f\x4b\x22\x6c\xe2\x24\x64\x6b\x4b\x79\xfe\xf0\x28\x57\xcf\xd4\x96\x5c\xd1\x01\x9e\xc1\x87\x02\xe3\xe7\x08\x95\x9f\xfa\x2f\x92\xd9\x81\x59\x6b\x24\x6b\x27\xd5\x02\xea\x85\x0f\xc6\xbf\xce\x55\x5e\xa2\xda\x11\x09\xcd\x01\x05\xad\xc0\xf7\xec\x79\xa7\xb2\x09\x8a\xa6\x44\x7b\xdd\xfe\xe4\x5f\x8e\x1b\xed\x35\xa3\xab\x89\x2a\xc4\x51\xc7\x6f\x00\x4f\x58\x4b\x69\x98\xda\x82\x18\x24\x34\x73\xd7\xe7\xfa\xad\x34\x1b\x7c\x75\x49\xb9\x1c\xe2\x37\x1c\x3a\x0a\x8d\xa4\x5f\x13\x84\x50\x07\x9d\xd2\xa8\xa4\xee\x80\x32\x11\xc9\xec\x48\xa4\x68\xe6\x4c\xe1\xc7\xc9\x78\x56\x05\x05\x8c\x08\xfe\x26\x88\x8c\x3e\x54\x4c\xbb\x2e\xf4\x5a\xea\x37\x55\x94\xc5\xf3\x4c\xb7\x38\x8d\xc9\x0a\xea\xec\xd5\xf2\x76\x8c\xce\x2f\x2f\xc0\x10\x46\xe1\x57\x02\x4f\x58\x75\xcf\xd0\xb1\x6b\xb8\xe5\x3f\xa8\x94\x88\x04\x2f\x08\x72\x98\xdf\x50\x72\x6b\xa0\x70\x38\x3b\x69\xa3\x63\xd3\xec\xf0\xc6\x7f\xc6\x8e\x09\xbf\xd9\xc9\xeb\xe7\x46\x6f\xf4\x5b\xa1\x26\xa7\x39\x80\x7b\x94\x97\x76\x9f\x58\x6b\xdd\xe6\xc7\xc3\xfe\x22\xb4\x62\xdd\x0d\x7e\x18\x63\x6c\x03\x0f\xe7\xf3\x35\x7c\x2d\xe9\x7f\xc5\x62\x34\xb3\xd9\x6d\xf2\xfb\x7b\x3f\xb7\xaa\x31\xe5\xab\x1c\xf7\x74\xe3\xce\x89\xac\x45\xaa\x6f\xee\xbd\x4e\x62\x0f\x6f\x7d\xd4\x6a\xac\xaf\xdf\x70\xfc\x3d\xc6\xbc\x52\xd0\xd7\x8f\x1a\x5a\xd0\x9d\xb0\x71\x1c\x8f\x90\x17\xac\x12\x0b\xa0\x52\xdd\xfa\xcd\x8c\xcf\xc9\x35\xd5\x0f\x9a\x05\xd8\xcd\x93\x0c\xfa\x6c\xe4\x25\x04\xd5\x7b\x6e\x78\xdf\xaf\x0b\x3a\x65\x7c\xd0\x00\xba\x89\x6a\xb0\x48\x1d\xdc\x68\x6b\x2b\x4b\xbd\x21\xc4\x9f\xc0\x5f\x7c\x67\x10\xbd\x15\x67\x1a\xf7\x7e\xf7\x5d\xd1\xd5\x34\x7c\x64\xdc\x48\x82\xa9\xfc\x26\x7f\x34\x14\xd5\x65\x7c\x7c\xd5\xbc\x2b\xe3\xfa\xf1\x3d\x83\xab\x34\x55\xd4\x21\xce\x2b\x24\x74\x7b\xe2\x79\x55\x54\x39\xfe\x9a\x15\x74\x2a\x00\x5f\x02\xf2\x3f\xf7\x51\x5a\xf5\xa4\x41\xee\x47\x25\x84\x13\x6d\x45\xe6\x78\xf3\x0e\x58\x90\xc6\x3c\xa0\xe0\x7d\x42\xc9\xcb\x57\xd9\x8f\xcf\xe6\xb0\xb1\xe7\x8a\x80\x2f\x38\xb8\xd1\xdc\xf6\xef\xda\x53\x99\xd1\x57\x24\xbc\x04\x4c\x41\x14\xa2\x13\xa9\xab\xbc\x9a\x73\x34\x2e\x30\x4f\x77\x3b\x5f\x03\x47\xf2\xf6\x26\x45\x58\x30\xf1\xbd\x81\xbb\x35\x86\x93\x0e\x96\xe8\x87\x61\xcd\xee\x87\x56\x02\xea\x6d\x1d\xa1\x22\x80\x61\x6a\x39\x7a\x7a\x48\x03\x9f\x10\x16\xcd\xc6\xcc\xd7\x27\x72\xe0\xb2\x72\xe1\x45\x9f\x54\x96\xd6\x44\x33\x0c\x10\x01\x38\x23\x80\x03\xb1\x7e\xaf\x9e\x73\x0c\xd2\x70\xde\xdc\x41\x7e\xba\xd4\x6e\xe8\x4f\x87\x54\x53\x66\xec\xa3\x10\x97\x64\xc2\xbc\x2f\x72\x77\x15\x27\x4b\x3d\xa1\x1f\x51\x17\x05\xe2\x6a\x74\x9b\x02\xdd\xc6\x75\x20\x04\x09\x35\xaa\x0d\xd3\x39\x9d\xb4\x35\x08\x53\xc2\x60\x5d\x7b\x29\xf4\xdd\x12\x3a\x54\x4a\x24\x51\xa4\xfa\x17\xe1\x81\x34\x89\x09\xb0\x1d\xce\x70\xf6\x78\x44\xbc\x44\x20\x98\x24\x47\x08\xe6\x00\x25\xac\x68\x16\xb7\xd4\x4a\x95\xfb\xe9\xf0\x25\x3c\x3f\x98\x95\x8d\x17\x27\x20\xbf\x5c\x87\xf7\xac\xa5\x8e\x9f\xf5\xeb\x49\x49\xa2\xa2\xbf\x82\x99\xb1\xa5\xe0\x58\x8b\x47\x6d\xa7\x10\x3d\x07\xa6\xb2\xc6\xc8\xbe\xfa\x15\x79\xe3\x26\x5a\x56\x52\x2f\x07\x92\x54\x66\x3d\x2d\x69\x60\xf5\xe3\xcd\xba\xb4\x22\x7c\xcd\x6f\xca\xd4\xb2\x6f\x6d\xfe\xd5\xfa\x14\x58\x88\xd1\xf9\xe2\x5d\xbd\x24\x97\xe3\xff\xaa\xa3\xa5\x0d\x68\xa1\x78\x58\x9f\x89\x88\x5f\xb2\xc1\x6d\x94\x3a\xcd\x04\xfc\x78\x91\x92\xf2\x69\xdc\x09\xe2\x95\x28\x5e\x3a\x39\x89\x75\x27\xb2\xa3\x26\x9f\xf2\x74\x96\x67\xf8\xa9\x40\x99\x40\xdf\x49\x6e\x19\x70\xdc\xc3\xef\xb1\x86\xb1\x81\xec\x4d\x33\x53\x4d\x7b\x67\x88\x47\xb8\x24\xce\xce\xa7\x9f\x3e\x9b\x15\x31\x8c\x7a\x8b\x28\x31\x08\x9f\x11\x5c\xa7\xb6\x9f\x88\x20\x1b\x24\xa9\x64\x11\xd4\x4b\x06\x0d\x0c\x45\x06\x86\xe0\x2a\x1f\x65\x3b\x65\xea\x11\x12\xf0\x71\x73\xdd\xdb\xc9\xd1\x41\x7a\xa2\x13\x05\x86\xab\x05\x9a\xd4\x60\xaf\x81\xa4\xe3\x2a\x0f\xe9\xb5\xcf\xe8\x4c\x2f\x46\x09\xa4\x10\xe7\x14\xc0\x42\xa3\x54\x2a\x88\xba\xeb\x97\xe6\x70\x2f\x62\xa3\x53\x86\xc1\x6d\xb9\x3f\x2d\xe4\xb8\xca\x5d\x7d\x80\xd0\x1f\x22\x08\xe4\xd6\x29\x1b\xb4\x43\x88\x28\x0b\x9e\x5b\x82\x8a\x7a\x50\x9c\x6f\x8b\x9e\x7a\x7b\xdb\x0a\xdd\xe8\xea\x46\xf6\x27\x1a\x58\xa6\x1e\xe3\xec\x63\x84\xca\xae\xe2\x58\x72\x59\xc7\x8a\x8c\x99\x66\xdf\xfd\x7c\xcc\xf8\x91\x9e\x13\xca\xed\xfe\x40\x2d\x8b\x90\x09\x5f\x69\x77\x3d\x7e\xe6\xe4\xac\x61\x1d\x83\x55\x64\x39\x6f\xe9\x65\xf9\xf5\x17\x5f\x23\xb1\x4f\x32\x76\x37\x3a\x29\x56\x9d\xc9\x0e\x4b\xf2\x87\x86\x4d\x9d\xd1\x71\x4b\x2a\x92\xc5\xee\x92\x06\xb8\xfd\x79\x27\xd2\xc4\x7b\x9f\x53\x37\x82\xa6\x2e\x2f\x79\x28\xd4\x0d\xab\x29\x4e\x12\x7f\xc2\x4f\x5a\xbf\x8f\x6c\xa4\xb5\xf9\x4e\x14\x93\x6d\x9f\x2d\x93\xd4\x66\xf7\x1f\xf4\x46\x73\xfb\x1c\xac\x40\x35\x49\xe6\x33\xe7\x5b\xfe\xd9\x58\x3b\x20\x4a\xe8\xd7\x56\xc8\x55\x97\x1b\x08\x8e\x23\x1d\x57\xd8\x2f\xd7\x77\xc6\xa0\x7e\x94\x30\x9f\x71\xed\x95\x3c\xfc\x2f\x4c\x32\x42\xd6\x4d\x40\xbd\xc5\xb3\xe9\xb3\x86\xb0\x58\x5a\x5b\x8c\x22\x9c\x9f\x15\x52\x61\x10\x1c\xa7\x7b\x62\xca\xe6\x23\x42\xa0\x3d\x85\x7d\x9d\xfa\xa4\xaa\x27\x80\xf9\xa8\xb5\x7d\xcf\xfb\x34\xc0\x6b\x5c\x9a\xc3\xa2\x75\x4c\x0b\xea\x6a\x10\x66\x6e\xa9\xd9\x82\xf2\xdb\x5d\x82\x3b\x3e\x36\xbc\x4e\x64\xa1\x86\x9a\x1c\x51\x83\xc2\x0c\xf7\x38\xcd\x8e\x74\xca\x2c\x06\xbe\xcf\x89\x20\x7b\x33\x96\xc6\x8f\x66\xb2\x76\x9a\xc4\x1f\x45\x87\xd4\x1c\x41\xc8\x3d\xf9\xf1\x55\xca\xd4\x2a\xf1\x86\x68\x11\xff\x44\x1d\xa3\xb4\x67\x9b\x7e\xf4\x69\x7f\x4e\x56\x60\x0c\x98\x71\xa0\xde\x5e\xee\xda\x2f\xbf\xc4\xd2\xd5\xbc\x77\x8c\x79\x99\xf6\x88\x4c\x55\x1b\xfc\x32\x0a\xbf\x66\xdd\xc0\x69\x7c\xfa\xa8\x13\x13\xe4\x9c\x3e\xc5\x65\xc8\x1a\x59\xc4\xa2\x06\x6f\xf0\x90\x4c\x99\xc4\x7a\x12\xd5\x71\x33\x0a\x7f\xb9\xef\x91\x2b\x13\x89\x7e\x33\xdb\x86\x37\x1b\x41\xb1\x5f\x75\x65\x6e\x54\x8b\x29\x00\xbe\x09\x24\xb9\x36\x6c\xdb\x04\xd9\x76\x1a\xba\x41\x55\x3b\x56\x75\xb8\xf1\x20\xc5\x17\x67\x9a\xf9\x8b\xd1\x7f\xf3\x9f\xc3\xe4\x37\xbd\x63\x60\x2b\x7a\x9b\x00\xe4\xd4\xf1\xc3\x42\x48\x7a\x6e\x85\x3b\xaf\xba\x7e\xfa\x9f\x09\x33\x35\x92\x08\xde\x8e\x1f\x3e\x2c\xe9\x5a\x45\x5a\xc5\x94\x2c\x5a\xcb\xdc\xae\xbf\x16\x12\x5c\x47\xf6\x84\x5d\x77\xf7\x79\x57\xf1\xc7\xf7\x10\x8e\xd0\xb8\x94\x7a\xe2\x76\x7f\xbe\x5f\x2e\x5b\x96\xd1\xca\x10\xc9\x11\x5d\x8f\x17\x39\xdb\x78\x46\x22\x06\x41\x63\xcb\x11\x9e\xb5\x6a\x00\x8b\x63\x13\x43\x4d\x74\xc1\x3c\x3e\x57\x0d\x7d\x4a\x10\xe4\x2b\x5b\x69\x5e\x74\x88\xd9\x74\xf8\x5e\xc2\x57\x10\x07\x27\x06\x3e\x92\x5c\x62\xc2\xab\x93\xff\xeb\x04\x30\x85\x7c\xae\xf3\xec\x5b\x67\x1f\xe2\x51\xad\x01\xd2\x0c\xb8\xff\xce\xa4\x7b\xb7\x99\xa4\xc7\xca\x8e\x09\x19\xd8\xba\x5c\xbc\x54\x39\x88\x9c\x0f\x63\x2f\x19\x04\xd4\xa4\x7e\x6a\x33\xde\xbe\x39\x5a\xc5\x52\x92\x48\x56\xb5\xc8\x41\x40\x68\x96\x9c\x1c\x49\xb1\x30\x8b\xe3\x7f\x6f\x85\xa4\xff\xe4\x5a\xbc\xf1\x9a\x3a\xff\xe5\x38\x2b\xb7\xbe\x52\xec\x88\x0c\x5b\xd6\xc4\x0e\xa4\x56\x21\x80\x41\x4b\x1d\x0c\xd7\x05\xdc\x1c\xc1\xa7\x71\x46\x96\x70\x0e\x21\x71\x79\x3d\xa8\x27\xe5\x54\xae\x56\x9f\x53\x91\xc2\x1b\x77\x6f\x63\x44\xa1\x6b\x46\xc0\x72\x9a\x43\x2d\x93\x0e\x02\x2c\x4e\x02\x2f\x24\x39\xde\x01\x03\xc3\x47\xce\x14\xde\x14\xf8\x84\x68\x64\xdf\x00\x12\xfb\x14\x3e\x0b\x3f\x16\xb7\x5a\xe8\xb6\xae\x16\x05\x2d\xbd\x8a\xc4\x6f\xa5\x30\x3e\xb3\x5f\xa1\x19\x08\xad\x6e\x9f\xad\xca\x97\x01\x1f\xeb\xa2\x3e\x07\xb0\xed\xb2\x79\xda\x7e\x32\xc6\x2f\x01\x41\x9d\xf1\xf8\xbe\x4a\x23\x7e\xe8\xb8\xc0\x95\x54\xe5\x92\x18\x13\x97\xee\x4b\x2e\x18\x76\xe0\xb9\xa6\x47\x78\x5f\x49\x51\x5b\x31\x23\x42\x9a\xeb\xb6\x32\x8b\x61\x72\x7b\x25\x49\xb0\xf3\x82\x69\xee\x77\x91\xfd\x68\x9c\xfb\x04\x03\xf3\x90\x89\x20\xba\xc3\x60\xb8\x01\xe8\xf9\xcf\xc5\x7f\x8b\xe7\xa8\x0d\x25\xd9\x6a\xfe\x03\xb1\x86\x56\x1a\x6a\xad\xfd\xb4\xd6\xe3\x2b\x78\x53\x82\xb6\xcb\xbe\xa2\xa3\x9d\xc4\xa8\x14\xec\x76\xdc\xde\x61\x92\x88\xfa\xea\x4b\xeb\x1b\x33\x05\xe5\x39\x03\x75\x46\x62\x66\x43\xe1\x8a\xaa\x28\x8a\x76\x73\x61\x7d\x9f\x39\xef\x56\x40\xf1\x59\x38\x38\x1a\xfa\x2e\xc2\xf9\xfb\x56\x01\xc8\x54\x13\x41\xd5\x82\xeb\x0b\x15\xe6\x3b\x69\x70\x50\x8c\xad\xb8\x6e\x12\xf2\x89\x2e\x3b\xd7\x03\x51\xe5\xbb\x61\x12\x27\x30\x37\xe2\xd5\x06\x04\x86\x14\x83\x95\xf8\x47\xdc\x09\xa5\x29\x89\x0c\x81\x14\xc2\xdd\x26\xe8\xe7\x8a\x66\xa3\x4a\x16\xfd\x4a\x60\xb8\x94\x94\x4f\xb7\x8a\x36\x09\xe5\xbf\x76\x1e\x51\x49\xd5\x07\x91\x51\xb8\x5f\x31\x6a\x16\x6f\x44\x34\xa4\x1a\x65\x0d\xb4\x1f\xe7\x81\x81\xa8\x2d\x9e\x86\x41\x15\xdb\xc6\x97\xb2\x52\x76\x03\x96\x87\x4b\x98\xe6\x24\xb3\x29\x37\x5b\xdc\xc1\x97\x72\xe3\x8c\x87\xa1\xd1\x25\x61\x80\x46\xf8\xe2\x8d\x9f\x75\x5b\xe5\x8f\xe5\x00\xdd\x19\x3f\xf1\x68\xbb\x38\xec\xf0\x05\x2b\x6f\xd6\xfd\xe3\xdc\x31\xda\xfb\x5b\x80\x3c\x98\x71\xc4\x7b\x49\x97\xa7\x76\xdf\xf6\xbe\x2c\x4a\x8a\x89\x42\x8b\x63\x1e\xdb\x7a\x5b\xc7\xa2\xd8\x07\x85\x07\x42\x83\xff\x62\x8a\x82\x92\xe7\x71\xaa\x30\x0b\x4f\xfe\xc9\x8b\xf8\x4b\x3b\x96\x85\xa3\xb4\xbc\x97\x8b\x9a\x32\x6f\x4a\x99\x55\xb9\x59\xc3\x4c\x4b\x0c\xda\x9f\xb1\x55\x54\x66\x7b\xc4\x1f\xe6\xba\x5c\x0e\x12\x5e\xe8\x74\x62\x36\x78\xc9\x19\x39\xa5\xe4\x03\x00\x0b\x46\x37\x1f\x1d\x6d\x14\xac\x51\xf3\x96\x65\xa5\x43\xf7\x14\xf8\x74\xdf\x16\x9e\x6f\x36\xc6\x6d\x7e\xb4\xff\xac\xe3\x3e\xb1\x27\xab\xd4\x8a\x62\xef\x1f\x83\x47\x6c\xdb\x50\xdb\x97\x97\x06\x86\x6f\x85\x20\x0a\x02\xd1\x35\xb8\x9a\xb3\x39\x92\x1c\x7a\xa7\x72\x49\x7a\x77\x4e\x14\x86\x7e\xb7\x10\x86\xb6\xe1\x48\xcc\xfa\x42\x3c\x85\x33\xb2\x30\x6e\xfa\x2b\x9e\x50\xfa\x30\x6c\x8a\x75\x3a\xfc\x96\x47\xcc\x70\x98\xa8\x27\x29\x5c\xa9\xaa\x1a\x22\xda\x38\xc5\x6e\x4b\x72\x7c\x50\x04\x5f\xe0\x7c\xc1\x97\x01\xde\xee\x6f\x92\x0f\x45\x7c\x9b\x27\x20\x19\xc9\x16\x61\xdd\x59\x92\x3a\xab\x7e\x38\x85\x13\x51\x16\xdc\x76\x48\xd3\x78\x9e\xb8\x70\xf2\xa1\xab\xbe\x6e\x9e\xe6\xcd\x1f\xb6\x17\x7e\x93\xda\xa8\x1d\x21\x30\x3c\x71\xc1\xf0\x48\x49\x63\x3c\x33\x7e\xcd\x00\xe1\xd8\x25\x38\xa5\x9a\xca\x0f\x02\x80\x42\x28\x87\x83\xaa\xbe\x15\x0a\x6e\x3d\x2c\xc9\x4e\x26\x38\x39\x58\x34\xfc\x26\xf3\xfd\x2d\xbe\x97\xb1\xa5\xab\xbe\x0f\xd8\xf6\x79\xce\x26\xc5\x40\x8e\xfc\x50\xfb\xa3\x7d\x0d\x87\xb1\x57\x6e\x5c\x3e\xe4\xe9\x23\x21\x70\x96\x46\x9e\x3c\x93\x8f\x4b\x04\x5b\x15\xbc\x6d\x6a\xc3\x5d\xf3\x92\x5f\xa8\x19\x6a\x95\x13\xc2\x68\x3a\x48\x9c\xa0\xfc\xd9\xdc\xf2\x8e\xde\x78\xd7\x67\x12\x86\x36\x27\x3a\x8d\xe7\xf8\x97\x61\x85\x2f\x51\x1c\x17\xcd\xc8\x8c\xb0\x61\xf8\xa4\xe2\xf5\x25\x39\xcf\x17\x08\x22\xaa\xe8\x85\xf8\x54\x1d\xc4\xd6\x82\x25\xe0\xeb\x7c\x7f\x40\x7a\x11\xe5\xfe\x5a\x77\x9a\x76\x1a\x77\xba\xb8\x99\xe7\x88\x05\x85\x98\x92\x5d\x21\x89\x89\x90\x9d\x04\xda\x11\x82\x01\x28\xe8\xfd\x2d\x8a\x27\xe6\x9c\x9e\xb1\x55\x80\x6c\xab\xeb\xb2\xdc\x1e\xf5\x61\x3d\x1a\x29\x64\x6d\x0a\x92\x3b\xd7\xf2\xe6\xe0\x28\xd7\x85\x84\xab\x67\xdd\x11\x17\x70\xe6\x47\x00\x00\xb6\x50\x48\x57\x71\x22\x64\x4d\x51\x64\x21\x1e\xa9\x4e\x69\xf3\xd0\x4f\x96\x79\xae\xc1\xc5\x86\x8d\x1e\x42\x69\xdd\x87\x0c\x0b\x98\x41\x4c\x9a\x8a\x94\x51\xb4\x5c\xf4\xa7\xe6\x99\x7c\x27\xd8\x5e\x4e\x94\xbd\x79\x29\x01\x56\x78\x19\x09\xef\xb5\xaf\xcd\xf5\x2a\x19\x22\xe6\x03\x50\xe3\x8e\x1a\xb8\x9d\xbc\x35\x1d\x92\xbe\x4f\xe2\xb9\x53\x62\xe3\xba\x03\x51\x8b\x42\xaf\x07\x2f\xa4\x33\x63\x6f\x78\x13\x3c\x1b\x6c\xdb\x81\x10\x8a\xaa\x18\x88\x86\x80\xbf\xbc\x48\x08\x5a\x1d\xbc\x93\x78\x37\x88\xd1\x3d\x5d\x82\x14\xbf\xa0\x93\x87\xf9\x92\xc9\x91\x9d\xd3\xb9\x91\xb5\xdc\x24\xf2\xa3\x40\xa8\xb9\xbe\x74\xfc\x51\xf5\x04\x6e\x74\x5c\xde\x65\x22\x63\x9f\x13\x6c\x51\x65\x62\x57\x75\xcf\x9e\x30\xf0\xbc\x22\x11\x86\x75\x91\xb9\x60\x5a\x42\x89\xab\xde\xee\x68\xee\xa1\x71\x1a\xb0\xd7\x47\x93\x82\x3d\xe0\x38\xb4\x15\x76\x3f\x54\x8f\x24\x43\x8a\xa1\x63\xbf\xd3\xef\x6b\x09\x5e\x75\x2e\xd8\xa3\xb5\x16\xbd\xbe\x94\xee\x48\x89\x7f\x89\xc6\xd5\x72\x06\xc3\x0f\x49\xad\x13\xf4\xf1\x11\x57\x62\xf2\x7e\x83\xca\x7c\x26\xd1\xa5\x36\x45\xc1\xef\xe8\x19\x72\x1b\xaf\xb4\x06\xb9\x4e\x56\x33\x52\xce\xaa\x82\x36\x18\xb9\xad\x26\xe4\x7a\x82\xdb\x83\xab\x81\xdd\xec\x3a\xa9\x60\x02\x39\x7f\xb2\xca\xc0\xc7\xbe\x3c\x66\xcc\xce\x81\xb2\xd5\x24\xae\x9e\x7b\xed\x77\xf8\x5a\xf6\x3f\xff\x23\x02\xd6\x96\xbf\xc2\x00\x08\x24\x28\xaf\x4d\x45\x67\x32\x9d\x36\x84\x76\x1f\xca\xa7\xbe\x5b\xed\xee\x6c\xd0\x9a\x2d\xec\xee\x11\xef\x75\x7f\xc6\xc4\xa0\x10\x7c\x65\xf4\x37\x51\x54\x8e\xf2\x83\x78\xc5\x29\x68\xe5\x4c\xa8\x48\x50\xa1\x59\xaf\x7a\xdc\x87\x79\x58\x6a\xa1\x26\xa0\x59\xf1\x93\x19\x0c\x42\xa3\x50\xad\x65\x70\xe3\xcb\xb1\xbe\xcd\xda\xcd\x69\xab\xdf\x27\x3b\xce\xd9\xb0\xf3\xcd\xf9\x41\xa6\x04\x93\xbf\x2d\xd6\xd0\xc2\x47\x86\x4a\xf6\x85\x24\xa8\x7c\x6d\x98\xfe\xd5\xf9\x56\x90\x4c\x13\xde\xe8\xb7\xfc\x00\x8e\xad\xc7\x61\x9e\xac\x86\x0e\x09\xb5\xb8\x60\xfc\x12\x22\x8f\x32\xe9\x32\xb5\xc2\x0f\xda\xfd\xec\x19\xc3\x92\x66\xde\x19\x43\xbb\xa1\x1b\x0e\xff\xee\x55\xdd\x66\xd8\x0b\x92\x8d\x13\x7a\x13\x5e\x41\xd8\xec\xb9\x90\x6e\xfa\xf4\x74\xf4\x83\x5d\x26\xa3\x26\x48\x67\xa5\x1a\x2d\x44\x13\x8c\x9d\x04\x90\xb4\x16\xbf\x60\x69\x26\x60\x3d\xdc\x35\x6c\x72\xe2\xf5\x14\x33\xc7\xbe\x10\x7a\x1d\xd6\x2d\x44\xf8\xe9\xe6\x0b\xc0\x9c\xe2\x35\x2b\xc6\xed\x83\xe3\x73\xc8\x13\xa1\xc4\x09\x3e\x99\x2f\x6d\xa8\x98\x46\x6c\x62\xa2\xa6\x45\xd8\x2c\x0b\xd3\x7f\xdf\x9c\x57\x92\x33\x8e\x74\xd3\x7f\x82\xad\x95\x60\x15\xf9\x48\x4d\xc2\x85\x55\xc1\x73\x61\x2b\xff\xea\x30\xfc\x7b\x9f\xa0\x75\x53\x9c\xe1\x85\xd4\x2a\x08\x01\x9e\x52\xa4\xea\x14\x53\x51\xd6\x53\xa7\xf1\xef\x6e\x4d\xef\xef\x64\x2a\x4a\xbb\xf3\xa0\x9e\x98\xb2\x88\x38\x97\x65\x75\xaf\x91\x33\xce\x21\x58\x05\x59\x1a\x56\xbc\xed\x6f\xf4\x05\x57\x4d\xd9\x1c\x95\xf5\xd9\x40\x4d\x2a\xd9\xe3\x8f\x39\xdf\x89\xb0\x9e\x6e\x52\x1e\x40\xc0\xa1\x09\xba\x61\x9f\x37\xf2\x26\x32\x70\xa8\x44\x25\xff\x97\x79\xca\xd8\xa6\xd0\xb9\x13\x70\xce\x1f\x7a\xcf\x1a\x0c\xed\xea\xa2\xab\x3c\xeb\x96\xc3\x97\xf8\x05\x96\x39\x7e\xc9\x2c\x93\xa4\x5e\xe2\xb9\xb3\x37\x2f\x45\xb5\x87\x91\x99\xab\x28\x42\x44\x85\xf5\x08\x60\x0f\x0d\x4c\xec\xf8\xf6\xa1\xd1\xa1\x8e\xbe\x0f\xcf\x41\xf1\xd3\xea\xd5\xc6\xf5\x16\x7f\xe9\xfd\x75\xde\x59\x47\x39\x29\x02\x69\xc8\x85\x9f\xf0\xd9\xfa\xd2\x11\xdf\x7c\x94\x55\x81\x49\xd9\xdc\x99\xb8\xef\x17\xe6\x14\x8b\xbe\xa1\xb4\x6c\x74\x9a\xc2\x18\x0c\x12\x85\x8d\x86\x9f\x87\x59\x11\x57\xa1\x08\x83\xfd\x59\xf5\x76\xea\x1d\x45\xb9\xe2\xf5\x61\x44\xcd\xa6\xa0\x06\xd4\x43\x5c\xd3\xdb\x38\x2e\xa1\xd7\x68\x84\x40\x69\xd7\x07\x13\xea\x2b\x56\x6a\x2b\x22\xe2\x24\xde\xf0\x9c\x2b\x36\x84\x55\xf9\xb3\x31\x59\xb8\xdf\x45\x42\x63\x5b\x06\x96\xf0\xb0\xf5\x4c\x20\xe7\x52\x5a\xba\x9f\xbf\x9b\x61\x45\x21\xe3\xad\x57\x1e\x7c\x48\x68\x61\x04\x46\xd8\x44\x50\xca\x0e\xe7\x14\xae\x76\x4d\x9e\x9c\x99\x7a\xf7\x9a\x66\x82\x96\xa4\x12\x0e\x23\x30\xb2\x32\xc3\xaf\x2c\xe7\x6a\x8b\x56\x0e\x99\xff\x21\xb0\xd0\x6f\x06\x19\xab\xfa\x0b\x75\x36\xf4\x1e\x7d\x57\x42\x20\x15\xc2\xaa\x94\x2e\xf1\x4f\xce\xb2\x7d\x60\x10\xbc\x07\xf4\x56\x5c\x03\xfd\xa0\x78\x5c\x4a\x53\x17\x81\x52\x68\x10\x3a\x65\x5b\x44\x58\x89\xe6\x18\x4e\x30\x73\x2a\x24\x07\x6e\x4f\x45\x2e\x38\x1c\x9b\x85\x84\x5b\x51\xdb\x30\x8a\x89\xf8\x7a\xd0\xbe\x74\x40\xcb\xc5\x86\x69\x68\x0c\x04\x53\x6b\xdd\xdd\x3e\x4e\xf6\xb3\x4d\xa9\x0e\x97\xb8\x04\xe7\x57\xa6\x2f\xc8\xd0\x61\x08\x71\x10\x88\x44\xa7\x5e\xf5\xc9\x30\xdd\x36\x21\x9f\x1e\x6e\x78\x5e\x94\x88\x54\xbc\xdc\x5b\x88\x08\x8c\x81\x29\x37\xc6\xc8\xe8\xb8\x1c\x56\xa9\x8b\xd7\x46\x0d\x08\x8c\x93\xcc\xcf\xc9\xa0\x35\x80\xdf\x0f\x38\xcc\x19\x8c\xaf\x60\x23\xfc\xc0\x7f\xf7\xb7\x09\xbc\x0e\xa6\xb0\x0e\xfb\x51\x4c\x99\x1f\xfa\xd4\xbd\xff\x13\x1d\xc7\xe8\x5f\x3d\x55\x35\x27\xa0\xf5\x59\xef\xaa\x1e\x40\x81\xd3\xd4\x90\x59\x1f\xac\x55\x62\x75\xa1\x7c\x19\x1e\xe1\x91\x5b\x81\xee\x5a\xe2\x17\xbc\xd0\x6d\xf2\x33\x20\x05\xc4\xa8\xd0\x92\x74\x80\x97\x1d\xb4\x71\x10\xe2\x20\x61\x2e\xdf\xcc\xf1\xec\xa1\xf5\x45\x9d\x91\xbc\x37\xfe\x30\xeb\x0c\xf9\x7c\x95\x7b\xc2\xed\xb3\x1a\x89\x0a\x63\x39\x8b\xb3\xce\x39\xd8\x9c\xb3\x3d\x95\xb3\xc1\x59\xa8\xed\x29\x6c\x5a\x60\x83\x4a\x55\x20\xe7\xc6\x1c\x2f\xe4\x44\xc4\xdc\xc4\xa1\x93\x55\x65\x7e\xa4\xf2\x46\x50\x34\xff\xb9\x56\x09\x8a\xa4\x8d\xc1\x8f\xe6\x8b\xac\x39\x94\x2b\x59\x88\x16\x60\x4d\x67\x74\xd4\x0d\x4f\x97\x81\xf0\x9b\x9a\x62\xe2\x15\xb4\x62\xdd\xe0\xd4\x10\xb5\xd2\x3b\xd7\xc0\xa6\xb6\xb6\x67\x09\x62\x25\x7a\xbe\xf1\x1a\xee\x7b\xff\x42\x3a\xf5\xa2\xbc\xe0\x25\x37\x50\xf9\x43\xb5\x71\x72\xdb\x78\x78\x1b\x88\xe9\x8f\xa7\x22\xd1\xec\x64\x03\x1d\xb4\xe3\x3a\x31\x8d\x23\x17\x07\xfd\xbe\xe9\xfe\xc5\xd5\x65\x30\x58\x0b\xa1\xab\xb5\xc1\x23\x16\xcc\xd8\xa8\xaa\x86\x91\x57\x24\xe8\xdb\x0c\x93\x8a\x24\xbe\xb6\x5e\xd5\x2e\x6e\xce\xb7\xab\x11\x92\x2f\xa3\x41\xc3\x71\x09\x9f\x6c\x66\xed\x3c\xf0\x5d\x5f\x97\xe8\xd4\x0d\x50\xb8\x95\x81\xae\x9e\x5a\xa7\x36\xa0\xfd\x9a\xaa\xfa\x56\x39\xa1\xb2\xdc\xba\xd9\x7b\xab\xda\xe8\xef\x2e\x71\x5b\xc4\x47\x93\xfd\x45\xfa\xf2\x13\x14\x65\x6a\xb9\xa8\xba\x88\x45\xdc\xd3\xbc\x15\x2a\xb9\x4a\xf3\xa4\x70\x6f\x70\x34\x0f\xcf\x28\x36\x54\xf1\x98\x51\x9c\x17\x0c\xf0\xc6\xee\x3b\x59\x7e\x9e\xb6\xbc\x7c\x2b\x71\xcf\xbe\x4c\x39\xa4\x1d\x8e\x5b\x03\x5d\xe6\xa5\xd7\x9a\x69\x83\x2b\x0f\x8b\xf6\x1a\xf2\x41\xda\xeb\xb3\x59\x10\xc3\x43\x7f\x41\x13\xb2\x63\x80\x2c\xeb\x28\x42\xda\x9b\x1a\x51\xd8\xbe\xdf\xbc\xb2\xf9\xd9\x7a\xef\x41\x44\xc4\xfb\x8b\xd7\xc0\x60\x1d\xa1\x00\x68\xfd\x62\x0a\xf3\x67\x00\x6b\x6f\x9f\x6c\x85\xf7\x65\x77\x8a\x72\x62\x10\xe7\xc5\x62\xd6\x71\x25\x91\xf6\x11\xb2\x5e\x40\x71\x37\x20\xde\xd9\x20\xcc\x29\x9a\x56\x62\x13\x27\x8d\x39\x5f\x9a\xa0\xbf\x68\xe9\x24\x6a\xf8\x43\xbf\x7b\xf9\x80\xc3\xf8\x61\x78\x6d\x3d\xf9\xad\x94\x6f\x53\xb6\x70\x22\xdd\x81\x2b\xaa\x52\x2c\x66\x02\x8c\xcb\x6c\xa3\x88\xdf\x3e\xff\xd2\x3f\xca\x0a\x2f\xab\x30\x8b\xd0\x50\x26\xcb\xd8\xbe\x70\x7d\x55\xe4\x54\xa9\x77\x37\x6c\x2b\x11\xb4\xd1\xaf\x71\x23\xae\xdc\x24\xec\xc2\x57\xa0\xc8\x83\xc7\x1c\xe4\x22\x10\x18\x61\xdb\x05\x4f\x5a\xb4\xff\xc1\xb7\x61\xb2\xc4\x4d\x60\xcf\xc6\x1a\x6b\x1f\xab\x7e\x39\x2c\xb1\x2b\xdb\x8c\x84\xc9\xf2\x9f\x5c\x6d\xef\x4e\x88\x75\xbb\x7c\x30\x1e\xd2\x5b\x0d\x9c\x2b\xc1\x40\x10\x5b\x4c\xfa\x9a\xf1\x5f\x37\x8c\x2a\xc5\x7a\x4f\xfc\xfc\x69\x2e\x5e\x45\x2f\xe6\xfc\xc9\x8d\x65\xbe\xe6\x64\x5a\x76\x88\x4a\xd7\xac\x87\xe7\x2e\x08\x2e\x9e\x2f\xb0\xa4\x8f\xc3\x1d\xf6\x03\x95\xfa\x7d\xd2\x5f\xb4\xb7\xd8\x5b\xb9\x57\x7c\x46\x90\xa0\xe3\x5c\xfc\x7a\xb9\xd1\x7b\x24\x65\x0b\xea\xb5\xad\x63\xce\x32\x66\x85\x29\x7f\x8a\x3d\x72\xf5\xdf\x12\xb7\x2b\x00\x92\x90\xeb\xdf\x55\xdf\x55\x7c\xa9\x18\x64\xb6\x12\x63\x57\x5c\xb0\x07\x96\xc3\xee\xf0\xa5\x28\x84\xc3\xec\xf8\x9d\x7c\x1c\x93\xad\x7e\xcb\x40\xb7\xf3\xa9\x2f\x73\x43\xbf\xc4\x64\x09\xdf\xd5\x35\x24\x94\x08\xbe\x85\xe6\x21\xeb\x96\xd0\x86\xfd\xd7\x77\xe7\x36\x30\xea\xd2\x8c\x75\xc7\x58\x9a\xf9\x02\xaa\x77\xb7\x82\xcd\xaa\xc1\x10\x5d\x5e\x98\xff\xe6\xf9\xb6\x9f\x82\x9b\x5b\x35\x5a\x60\x6d\xeb\xce\x37\x71\x49\x50\xe6\x13\x3e\x72\x2d\x60\x1f\xf2\xf4\x28\x7d\x3c\x71\x94\x9e\xf6\x31\x33\x9c\xb4\x59\xbf\x0f\x81\x18\xd3\xe9\xed\x28\x6f\x70\x94\x7e\xa3\xfe\x45\x62\x0f\xbb\xe0\x6e\xf5\x6f\x26\x10\xcd\xf1\x40\xe4\x30\x00\x5f\xee\xf7\xb5\xc6\xb6\x6f\x36\x9a\x91\x40\xab\xc7\x14\xe4\x7c\x01\x67\x20\x9f\xd0\x4a\x5f\x5b\xe2\x8d\x4f\x51\x16\x80\xd3\x5c\x99\x93\x14\x86\x91\x26\x68\xfe\x93\xcf\xfc\xbb\x4f\x3d\x75\x1a\xd0\x31\x9c\x5c\xf0\xb4\x49\xaf\xe2\x08\x2c\x17\xe3\xcd\x81\x54\x1d\x61\xff\x64\x88\xca\x1b\xf2\x77\x0a\xd8\xfd\x9a\x34\xdd\x5b\x7a\xba\xb9\x34\xcf\x7a\x46\x45\xec\x99\xba\xd9\xc2\x7f\x30\x93\xcc\x4d\x75\x80\xfb\x70\x36\x87\xc8\x5c\x69\x57\x1e\x12\x0c\x34\xb1\x8b\x13\x0f\x9d\xbe\x7f\x58\x68\x66\x34\xc6\x85\x72\x37\xdb\x71\xc5\xe4\xdb\xef\xaa\x98\xfb\x80\xf5\x94\xd8\xfd\xb7\xaf\x7a\xff\x6a\x80\xd7\x1c\x22\x55\xac\x16\x97\xee\x6f\x5a\x3e\x1f\x2d\xe3\x86\xfb\x8b\x23\xe2\x59\x8b\x2d\x21\xdc\xa8\x39\x86\xe6\x40\x83\x2c\x1d\x16\x22\x75\x16\xb2\xc1\xdf\x67\x9a\xea\x29\x86\xab\xf0\x31\xb7\x0b\xc3\x6e\x3f\x0b\xe9\x0e\x39\x5a\x6d\x1a\xfe\xd3\x0b\x9f\x38\x4e\x03\x4e\xc8\xd2\x4f\xd8\x4a\xe8\x7a\x9c\x6a\x2a\xb7\xf3\xcc\xdd\xad\x29\x03\xc1\x95\x61\xa7\x83\xbe\x7a\xcb\xa4\x71\xf0\xae\xe5\x2a\x08\x74\xa9\xcd\xaf\xb8\xfa\xe3\xf3\x2d\xcd\x09\x39\x2e\x0c\x9b\xc3\x16\x66\x7c\x29\xd0\xff\xc3\xd2\x4a\xae\x6f\x01\x42\x0a\x3f\xb4\x96\xbd\xde\xb2\x54\x3d\x05\x1a\x7e\xbb\xd6\xc8\x49\xa8\xbf\x73\x9e\x3f\xcd\x61\x36\xcb\xe8\x53\xa5\x91\xb0\x45\x49\xb8\x68\xb3\xf4\xba\xf9\xfd\xa7\x6e\x85\x4a\x08\xa3\x6a\x29\x14\x5e\xf5\xef\x69\xe2\xdd\x36\xd2\xfe\x22\x4e\xdc\xc7\x81\x4e\xb8\x3d\xed\x97\x79\xb0\xac\xfb\x5f\x9f\xbd\x7a\x69\x8e\x98\x6f\xd5\xda\x9b\x5b\x9a\xbf\x43\x50\x4f\xc0\xa0\x2d\x8a\x9e\x96\x0a\xa6\x1f\xf2\x93\xf4\x47\x30\x76\xee\xdd\xf9\x88\xb2\xff\x83\x85\x90\x79\xfa\xa5\xa8\x34\xdd\x4c\x65\x5f\xdc\x92\x0a\xeb\x64\xa2\x34\x04\x13\x86\xc1\xe7\xd2\x06\x95\x8a\x91\x7f\x30\xcd\xe4\xe2\xa3\x72\x73\xa2\x65\x66\xc5\xf8\xc2\xe3\x9b\xc7\xaf\x63\xfb\x19\x19\x40\xb5\x76\xcb\xd2\x4d\xff\x60\x54\x09\x28\xf7\xa1\x9f\x42\xcd\x0d\xf2\xc5\x15\x07\xc6\x86\x30\x0d\x80\xcf\xcd\x99\xe9\x5d\xff\x64\x59\x49\x9c\x90\xf7\x8a\xa5\xa3\x80\xf2\xad\xa1\x11\x8c\x66\xde\xc1\xfc\x80\x7f\xc4\x70\x39\x67\xce\xf7\x31\x23\x95\xdf\x8f\xc3\x14\xd1\xde\xf2\x9b\xc4\x3f\x3e\x44\xf3\xff\x82\x65\xd4\x4e\x04\x91\x68\xf5\x9c\x55\x0a\x9d\x9e\xc7\x77\x38\xdc\x3f\xdb\x19\x41\x6a\x7e\x42\xec\xf9\x07\x13\x66\xfe\x5a\x0d\xd8\xb9\xcc\x96\xa3\xac\x96\x22\x5f\x4e\x58\xbe\xe0\x06\xe4\x1b\xe7\xff\x64\x02\xfd\x02\xb2\xe1\xf8\xc2\x61\x70\xe0\xad\x16\x44\xab\x8d\x32\x1d\xc8\xd1\x09\xd3\xef\x7f\x41\xf6\x9f\x21\x13\x78\x08\xbd\x4a\x11\x9c\x8b\xd1\x2b\xa7\xac\xe7\x80\xbf\x5f\x96\x1c\xff\x8b\x93\x1d\xaa\xf1\xb4\x02\xf0\x78\x75\x0d\xc1\x70\x76\x9b\xd7\xe8\x14\xfd\xb1\x96\x7f\x80\xbd\x3a\xd0\x5f\x8d\x88\x7c\xca\x4e\x80\xb1\x8f\x49\x78\x46\x8b\x98\x56\x1c\x06\x7c\x21\xcf\x32\x36\xfc\x8f\x6b\xe8\xf2\x1c\xce\x87\x7e\x83\xea\xe8\xc0\xc0\xfc\xd3\xf4\xed\x8c\xf2\x01\x18\x88\x34\x12\xfe\xef\x75\xb9\xc6\x5b\x0a\x80\x84\x8d\xad\x46\x6b\x8b\xd7\x52\xf0\x2a\x69\xf9\xf7\x1e\xd1\x84\xfe\xbf\xb1\x4f\x53\x8e\x93\xfd\xf7\x3f\xd9\x6f\xb9\x98\x8e\xe7\x33\xe1\x80\x92\x22\xf0\x85\xb4\xdd\x3d\xe6\x9f\xcf\xf7\xf3\x77\x7f\x46\x6d\x1b\xaa\xa9\xb7\x53\x4c\x7b\xcb\x30\x81\x4f\x83\xed\x72\x9b\x70\xff\x63\xa6\x34\x3c\xf8\xc1\x58\x01\xa8\x7d\x31\xcf\xf5\xff\x1f\xd7\x0e\x60\xb1\xfa\x09\x79\x7b\xb6\x49\x6c\x92\x06\xb7\xfe\x30\x27\xb5\x48\x10\xb2\xcc\x1a\xe0\x13\x73\x75\xa7\xe8\x7f\x7c\x2e\x45\x2d\xc0\xe7\x74\x6a\xc6\x66\x14\x60\xf9\xf8\x32\xfd\x58\xef\xef\x18\xb9\xb3\x53\xfe\xbf\xcc\xc6\x1e\x74\x55\x4b\x9f\xd2\x17\xb4\x5f\x01\xb7\x72\xa8\x3a\x2e\xaf\x89\x29\xc8\x80\xba\xe0\x9f\x5e\xc4\xc0\xdc\x43\x63\xf2\x13\x6a\xc6\x15\xb8\xbb\x87\xd2\xdc\xfa\xc7\xf8\xbd\x97\x7f\x00\xc2\x44\x55\x34\x3e\x35\x78\xd9\xf1\x80\x5a\x1a\x81\x39\x98\x81\x62\x8d\xe0\x48\xbf\xd5\x80\xb2\x50\xdb\x32\x2d\xff\xd4\xb6\x06\xc9\x0b\xf9\x45\x99\x8e\x15\x7c\xbf\x36\xfd\xdb\x62\xd2\x5b\x90\x0d\x7c\xda\xe8\x94\xdb\xe2\xbf\xdc\x97\x97\x07\x00\x49\x0d\x65\x78\x88\xe4\x40\xef\xfa\x3e\x52\x47\x40\xcb\xe3\x03\x4d\x10\xf1\x57\x8f\x73\x71\xba\xa2\xdc\x1c\xe2\x7f\x9e\x6e\xbf\x1c\xc1\x09\x08\x73\x30\x4e\x93\xec\x2d\xe9\x8e\x2e\xf1\xb8\x88\x78\xd4\x90\xd2\xfb\x6b\x59\xbb\xa7\x9c\xa5\xf0\x8f\xb4\x9d\x33\x71\x50\xcd\x91\x13\xe3\xe3\x2e\xde\x7f\x7f\x8f\xf3\xfc\x36\x81\x46\xea\xcd\xbe\x46\xc2\xae\x6e\x97\xa7\xc0\x27\x89\x83\xac\x1e\x8a\xd3\x22\xf0\x77\x9c\x8a\x09\x35\x78\x86\xff\x69\x3b\x9c\x13\x39\x79\x0c\x0d\x80\xce\xf5\x59\x14\x8b\xf4\x3a\xc1\x26\x46\x66\xf9\xb7\x8e\x19\x68\x01\x74\xfb\xbd\xe7\x3e\x45\x41\x27\x38\x01\x3d\x6b\x42\xe0\xfd\xc9\xef\x6d\x9e\xd4\xb2\xec\x90\xa3\xb3\x2a\x30\x7c\xdb\x63\x38\xe1\x15\x7e\x35\xf4\x8b\x19\x87\x12\x28\x90\x74\xbf\x99\x17\xf7\xf8\x0c\x7a\x80\x99\xb2\x67\x0a\x80\x19\xe1\xc0\x45\x00\xa7\xa8\x9f\x46\xbb\xa7\x1c\xa0\xe2\xb4\x7f\x91\x67\x9c\x63\xee\x17\xb3\xf7\x00\x00\xf7\xc8\x7f\xa9\xf8\x7f\xd9\x61\xb7\xd9\xa8\xfa\xd9\x89\x3f\xea\xe0\xf8\xb3\x76\x63\x4c\xb3\x9e\x5a\x14\xc7\xf1\xe2\x9a\xea\x93\x6d\xda\x7b\x7c\xc1\x68\xf2\x75\x62\x94\x84\x2d\x48\x50\x11\xc2\x3d\x0a\x5d\xb5\xc8\x40\x7b\x61\xa9\xf0\x70\x2a\x38\x63\xf0\x00\xcd\xc9\xbb\xb9\xa3\xcc\x2a\x0d\x0d\x1d\xa8\x77\x15\x1e\x33\x7b\x3c\x61\x63\x57\x43\x68\xb4\x1e\x89\xa4\x35\x31\x98\x6a\xa1\x21\x14\x4d\xd6\xb9\x45\x4d\x2c\x96\xbc\xb2\x75\xda\xbf\x67\xca\x4e\xe4\xc9\xc1\xb1\x17\xd2\x37\x82\xe7\xfd\xd6\xfc\x84\x5e\x63\x1d\x38\xe1\xa7\xa6\x24\xd7\xd3\xc4\xd4\xcf\x4b\xc4\xdf\x92\x7f\x37\x02\x78\xe5\x6d\xb3\x2b\x11\x5e\x7a\xe6\xc5\x93\xef\xb9\x15\xb0\x55\x7b\x22\x34\x21\xdc\x23\x2c\x97\x2a\x7a\xdb\x8d\x75\x7c\xf5\x40\x6b\xe0\x83\xbe\xc9\x0f\xf4\xf6\xcb\x9f\x39\xc8\x73\x34\x6f\xbc\xa1\x35\xdd\x4b\xbb\xeb\x9f\xe4\xaf\x0c\x62\xd0\x84\xc0\x69\x1a\x68\x3d\x4a\xd2\xfa\x10\xbd\x8a\xe2\xf4\xda\xee\x2e\x8e\x59\xc2\x57\x35\x8a\x7d\x13\x1d\xbf\xd3\xd6\x8a\xd1\xa1\x1e\x11\xc6\xfa\xd2\x68\xc5\xba\x02\xa0\x52\xef\xa7\x85\x71\x26\x27\xdd\x5b\x77\xc2\x5d\xcb\x3d\x75\x00\xa5\x41\x74\xb8\x19\x7e\x6d\xf6\xd5\x48\xe6\x4a\xe5\x0b\x45\xf0\x9d\x8b\x38\x45\x2b\x2e\x99\xeb\x27\x36\xf6\x71\xcd\x9d\xf1\xfb\x81\x05\xdc\xa7\xd4\x19\xfc\xc0\x50\xf7\x87\x5a\x2b\x55\x75\x49\x8b\x58\xe6\x82\x7c\xf0\x6b\x22\x5f\x55\xf3\xe6\x52\x0e\x62\x55\xcd\xb3\xcd\x0e\x43\xa7\x66\x12\x02\x62\x10\x59\x8d\xea\x10\x87\xe0\xae\xaa\x31\x91\x7c\xcf\xe2\x36\x6b\xc6\xb6\x6b\xcd\x8d\x00\xc7\xc9\xba\xab\xbd\x07\x5d\x1e\x3b\x52\x76\x6a\xe8\x2f\x02\xf1\xdd\x25\x4e\xd1\x92\xcb\xea\x26\x34\x2f\xe9\x2f\x1b\x29\x59\xc8\x32\x5a\x15\x5c\xfc\x07\xa3\x78\xb5\x05\x72\x33\x5c\x04\x12\x74\x2c\x00\x71\x50\x72\x56\x63\x8b\x7a\x1f\xda\x92\x8e\x09\xb4\xad\xbe\x39\xcc\x00\xc2\xd9\x3b\x33\x0f\x26\x1d\xda\xe4\xf9\x7e\x6b\xee\x67\x2e\x66\xd9\x82\x6d\x88\x82\x54\x5e\x37\x6a\x70\x90\xdf\x41\xa1\x62\xac\x08\x71\xed\x5e\xa5\x9c\xcb\xe3\x31\x02\x3f\x32\x94\x59\xb2\xd4\x45\x9d\x39\x9a\xb3\x1a\x13\x63\x6b\x47\xb5\xe5\xb8\x22\xcb\x2a\x7d\x2e\xfe\xec\x44\x90\x14\xce\xa5\x43\xac\xe9\x4c\x35\x21\xe5\x65\x83\x0b\x04\x82\x8f\x44\xbd\xaf\xfb\xf5\x8a\x78\x92\x4f\xfe\xde\xc8\x48\x8e\xb3\x9a\xbd\x71\x4c\xd4\xf6\xf9\xb5\x03\xd5\xa2\x63\x8b\xcb\x9e\xc8\x98\x90\x2b\xa8\xc3\x37\x29\x3c\xcf\xe0\x51\x8c\xc0\xfa\xd1\x4d\xbd\x2d\xb3\x01\xcc\x92\xe7\xf7\xeb\x8b\x3f\x1d\xf0\x4e\xd9\x6d\xc2\x31\xfa\xc7\xd6\x0c\xfc\x1d\x86\x2f\x47\x51\x4e\x07\xd6\xaf\xa4\x9a\x6f\xc4\x9d\x4a\xbc\x7e\x64\x18\xd7\xd7\xcd\xfa\x6e\x2e\xc3\x1d\x9c\x5b\xf5\x0e\xcc\xb9\x68\x37\x92\xd8\x28\xaf\x55\x45\xcf\xa4\xa8\xb1\xf7\x32\xf7\x11\xe7\x28\x71\x1b\x21\x74\xaf\x69\x0e\xf6\x72\x1b\x2f\xe6\xb5\xf5\x23\x67\x49\xfd\x4a\x1b\xf7\x49\x80\x94\x48\x04\xd1\x78\xe1\xd3\xdb\xad\x2f\x57\xf8\x73\x25\x3d\x39\x1a\xc8\x34\xca\x2f\x11\x13\xd5\x2b\xa7\x1c\xf2\x95\x31\x6c\xf0\x1b\xe1\x49\xb7\x54\x01\x71\x98\x9b\x53\x14\x46\xf5\x4f\xca\x0e\x52\x35\xf6\xdf\xec\x73\x76\xfa\x51\xb9\xc4\x8a\x58\x2c\x81\x5a\x9c\x13\x1e\xf1\x3f\xde\x55\x80\xd3\xec\xfd\xae\x95\xc3\x44\xf6\x34\x1e\x1a\xfe\xc6\x7a\xbb\x29\x3e\x4b\x2c\x88\xf4\xb5\x39\x35\xb3\xbd\x4b\x69\x5a\x31\x69\x54\x1c\x0b\x48\x44\xa7\xb0\xd8\x56\x92\x1e\x15\x1d\xc9\x55\x54\xd9\xd1\x2f\xb6\xda\x77\x4c\x43\x2e\xfd\xfd\xbe\x57\x1c\x75\xea\xc1\xe5\xe0\x7b\x81\x22\xbf\xcf\x0a\xaa\xcf\x7e\x54\x24\x1a\x1d\x9c\x1a\x87\x91\xf2\xad\x71\x3c\x3f\x10\x1e\xe1\xb0\x3c\xe3\xbf\xb7\x43\x84\x1b\xc4\x1e\x54\x8b\xfc\x65\xb2\x0c\x39\x59\x59\x8f\xeb\xb1\xf3\xe3\xbe\x83\xf3\x67\xaa\x16\xf8\x18\x2c\x6c\x32\x18\x74\xbc\x51\x07\x8b\x89\x0d\xc9\x58\x4c\x5c\xc6\x56\x7f\xb6\x6c\xd9\x41\xa2\x0a\x7a\x24\x6b\x50\xec\x93\xbb\x85\xe7\xb1\x71\x53\x87\xef\x23\xf2\x44\x41\x1c\x50\x8d\x7f\x11\x3b\x8e\x96\x64\x01\xf1\xf5\x05\x97\x22\xdc\x57\x53\xb6\x23\xa1\xb2\x04\x5b\x42\xd0\x72\xd7\x82\xa2\xbc\x4e\xce\xe5\xd4\x6a\x42\x47\x45\x59\xfa\xe5\x34\x15\x83\x24\x8d\xeb\xf1\x5a\xa7\x39\xaf\xe3\x12\xfd\xc5\xa2\x08\xcd\xa6\xee\x5f\x5e\xa9\xef\xf9\x17\xc7\xa7\x4d\x8b\xf1\xf8\xfa\xe4\x7b\x3b\x26\x22\xf4\x3b\xd1\x0a\xa2\x81\x18\x8f\xe1\x25\x40\x37\x47\xa4\x49\x98\xb0\x13\x02\x7a\x43\x9d\xed\x5d\xcf\x29\xe6\x58\xd7\x81\xfa\x38\x9a\xaa\x32\x1c\x3d\x9e\x19\xf1\xaf\x1c\x7c\x24\x3a\x20\x29\xbe\x90\x6f\x6e\x9d\xa9\x0e\xcc\xf7\x1b\xfd\xf2\x72\x1a\x8a\x69\x87\xb2\x84\x7c\x76\x85\x40\xd9\x67\x8c\x26\x01\x7e\xb5\x00\x99\x1d\xf0\xaa\x33\xed\x75\xd5\xad\x5c\x1a\x75\xc3\x85\xe0\x62\xd0\xa7\x01\xdd\x30\x3a\x40\xf4\x7b\x78\x5b\x69\x60\x4f\xaf\xad\x5c\x23\x01\xa2\xeb\xd4\xef\x14\x48\x92\x72\xc4\x57\x49\x98\xca\x58\x36\x3f\x34\x96\x42\x5a\x8a\xa7\x9f\x2c\x83\xaf\xea\x36\xd5\xf5\x9d\x94\x8d\xa9\x28\x68\x7f\x87\x4b\xdc\x26\x04\xb8\x00\x1a\xad\x99\xe5\x8e\x4f\xb3\x6e\x02\x92\xb1\x9d\x98\x84\x17\x52\xf3\xb6\x1d\x02\x4e\xa7\x06\xa6\xe7\x2b\xd5\xc5\xaf\x85\xe0\x00\xb1\xd6\x2b\xff\x40\xe2\xc4\x19\xe2\x5b\x64\x1d\xfa\x25\x39\x27\x4c\xf9\x70\x1b\xbf\xe5\x26\x56\x32\xfc\x2a\xdf\x7f\x31\x2a\x9a\xe0\xea\x00\xa7\x04\x0d\x4c\x3e\x48\x61\x7a\x9d\x21\x66\xb9\xc9\x68\x09\xbd\xe0\x2c\x03\xac\xb6\x0b\x68\x4c\x50\xad\x21\xd5\x1e\x25\xa8\x48\xa1\x4e\xe8\x51\xb1\x65\x2e\x4e\x31\xef\x69\x5a\xd0\x83\x73\x7c\x19\x51\x16\x21\x6f\xa9\x19\x46\x32\x5c\xe5\x62\xd0\xef\x0e\x79\xad\x14\x06\x21\x08\x19\x8f\xd0\x31\x53\x7e\x2f\xae\x2e\x8e\xf7\xee\xc9\x57\xae\x51\x57\x4b\x26\x9f\xb3\xce\xfb\x79\xb2\xf0\x53\x52\x10\x33\x6d\xf7\x0f\x29\x3f\xc1\x38\x98\x6c\x4f\x45\x5f\x54\xe4\xe3\xd4\x62\xb3\x7c\x25\x4c\xc2\x71\x67\x24\xa8\x67\x4b\xa4\xfb\x70\x20\x7e\x66\x24\x64\x65\x5e\x71\x99\x71\x8d\x00\xed\x93\x3f\x2f\x2b\xe7\xe6\xb6\xe6\xc5\x42\xb6\x7d\x46\x09\xb6\x38\x3e\xb5\x3a\xc0\x6d\x38\xdd\x42\xbb\x45\x9a\x39\x83\xe4\x72\x91\xa8\xf1\xa0\x56\xc5\xe7\xfb\xe0\x54\x57\xab\x33\x97\x81\xb3\x7d\xb6\x53\xd3\xbb\x05\x61\x5f\x0a\x6b\x87\xf6\x56\xe9\x52\xf4\xcb\xde\xc7\xe0\x78\x48\x42\x36\x76\x7d\xb0\xd5\xb8\xbe\xb7\x17\x95\x84\xe2\x0a\x6a\x08\x2e\x90\x9e\x37\x9a\xfc\x9c\xb5\x21\x58\x6a\xcd\xc3\x49\x6e\x72\x86\xef\x07\x9d\x06\xb6\x96\xfc\xaa\x51\x49\xa2\x10\xb8\xe4\xd6\x40\xd3\x37\x10\xd1\xac\xd8\x4c\x94\x3b\x74\x5e\xb0\x5c\x56\x28\x62\xb6\xf9\x4d\xe1\x26\xc6\xd3\xa2\x94\x98\x3c\x23\x30\x81\xde\x5d\xa9\x7f\x18\x8c\xc3\xd4\xad\x8f\xf1\x0c\xdb\x69\x79\x41\x85\x7f\x04\xde\xc7\x70\xc5\xef\x6c\xfb\xc5\xe9\x48\x26\xaa\xc4\xfc\x3f\xe6\xfe\xa3\x67\x62\xac\x59\x0e\x06\x7f\x8e\x66\xc0\xd1\xd0\xbb\x2b\x68\x41\xef\xbd\xaf\x1d\xbd\xf7\x9e\x83\xf9\xef\x1f\xba\x75\x6f\x77\x4b\x5b\xbd\x8b\xf7\xd9\x3c\x2c\x54\x15\x8a\x87\x38\x19\x27\x33\x32\x11\x01\xe5\xf7\xe7\x07\xaf\x6c\x81\xe8\x0e\xda\xf8\xa7\x4f\xdb\xcc\xda\x96\xe4\xe8\x0f\x0a\xd8\xb8\x1b\x84\x91\x7d\xdc\x1d\xd2\x15\x27\x61\x76\x0f\x25\x98\x13\x43\x8f\xa3\x6f\x78\x92\x0e\x1f\x80\xf3\x7b\xcd\x06\x0a\x73\x43\x64\x40\x21\xb7\x66\xf7\x6c\x6e\x9d\xc7\x76\x7f\x06\xa6\x8d\x98\xf6\x85\x96\xd5\x9f\x29\x5a\x89\xbc\xf3\xdb\x3e\x5e\xd8\xd7\x0f\xf1\xaf\xc0\x56\x75\x0a\x99\xe2\x38\x49\xa3\xbf\x8d\x29\x99\xa5\xf0\xee\xba\xc3\x8f\x6e\x20\xe3\xc4\x5d\x4b\xca\xc8\x07\x4e\x5e\xb4\x75\xd0\x46\xf3\xcd\xbb\x45\x35\x9b\xfb\x70\x02\x12\xc9\x9c\x85\x6a\xfb\xb2\x44\x3a\x1a\x02\xe1\x6d\xc7\xce\x6a\x9d\x7c\x77\x1c\xf5\xd5\x14\xbb\x30\x19\x72\x4b\x20\xb7\xab\xc9\x6d\xbc\x20\x1e\x68\x4c\x83\x8f\x28\x32\x0a\x20\x41\xb6\x81\x66\xf3\x4c\x80\x49\x3f\xba\x1e\xa7\x91\x2f\xde\x38\x01\x60\xf9\x91\x1b\x56\x12\xe5\xf9\x59\x5d\xba\x4f\xa8\xdb\x9b\x07\x50\x9e\x7b\x7e\x3f\x9e\x8f\xa7\xb6\xdc\xec\xd2\x6c\x59\xd4\xbd\xf2\x4b\x3c\xe9\xdb\x2d\x4c\xdf\x00\x4a\x96\x2c\xf7\xe3\x0e\x3a\x56\xa6\x2e\xad\xd8\xf9\xab\x7b\x60\xd8\x6f\x9b\xc0\x2b\xd4\x5f\xda\xc8\xcd\x2a\x98\xfe\x53\xc7\x6d\x60\x78\x41\x09\x72\xdd\xf2\x55\x45\x08\x5a\xf0\x3e\x96\x07\x43\xf6\xd0\xb0\xe7\x30\x68\x6a\x82\x59\x64\xae\x56\x34\xcf\xdd\x04\xcc\x94\xb0\xbc\x49\xdd\xcf\xac\xec\xf7\xd8\x6d\xe4\xe6\x5b\x93\x00\xbf\xc2\xe2\x70\x83\xfa\xe9\x9a\xcb\x28\xaa\x98\xb0\x7b\x69\x4c\x2b\x9c\xc6\x1b\x09\xd3\x44\x15\x35\x23\x18\x0d\xe2\x2f\x0a\x44\x7a\xd7\x2c\xcf\xf1\xa5\x47\xc0\x0d\x50\x3f\x20\x60\x72\x36\x53\x3a\x11\xd7\x97\x66\x6c\x41\x18\x56\x63\xd1\x66\x1e\xe6\xfa\x07\xf0\xd7\x9e\x48\x29\xc1\x87\xb6\x65\x98\x60\xf5\x61\x56\xce\xc0\xb2\x04\x67\x17\xfa\xc3\x17\x0d\x85\xfb\x17\xcc\xf3\xfe\xd0\x95\x6b\xed\xcc\xfe\x3f\x8b\x0d\x59\xcb\x1c\x43\x11\x67\xc5\xfe\x7a\x10\x04\x68\xfa\x93\x44\xef\xba\xb4\x85\x22\x41\xac\xa3\x40\xfd\xa5\x24\xad\x14\xf9\x0a\xe2\xb9\x5b\x61\xb5\xcf\xfd\x96\x26\xca\xcd\x03\x7e\x8a\xa9\x4c\xe1\x22\xf9\xab\xaf\x7a\xd9\xfb\x5c\x5d\xf7\xfd\x45\x62\x95\x93\x46\x28\x01\x8a\x1d\xce\x16\x07\x15\x39\xd7\x29\x9a\xfd\x08\xc9\x5d\x6e\xc7\x49\x40\xec\x04\x20\x93\x1d\xa3\x65\x61\xa7\x61\x1b\x88\x27\xf9\x57\xdd\x6a\x70\x01\xab\x2a\x23\xa3\x42\x9d\x0e\x6e\x2c\xee\x82\x8a\x7e\x4f\x79\x28\x26\x60\x8a\xfd\x32\x90\xe2\xdb\xc0\xa8\x35\x38\x07\x5e\x66\x08\x72\x2d\xc0\x89\x10\x87\xce\x1f\x1d\x46\x4c\xc7\x16\x03\x6a\x07\xd2\xb9\xad\xc7\xb5\xa6\x52\x37\x72\x3f\xfa\x56\x1f\x0a\xb8\x7e\x40\x69\xa1\x3b\x66\x4a\x24\x89\x80\x06\x84\xc6\x51\x91\x47\xfe\xf9\x97\x9e\x5b\xcd\x09\xec\xb7\x06\xd3\x11\x7d\x20\x0c\x59\x19\x38\x5d\x0b\xe4\x83\x59\x2e\xd0\x97\xae\x01\x35\x65\xb5\x6d\xa0\xd5\x37\xff\x5a\xec\x68\x03\x15\xb5\xb5\xb9\x59\x1f\x68\x31\x74\xee\x1d\x48\x9b\x22\x72\x7b\x5a\x0a\x4b\x9b\xc1\x04\xfb\x29\x79\xa6\x19\x36\xa9\xed\x3a\x58\x3d\x89\xba\xed\x51\xc5\x51\x58\xe6\xae\x09\x80\xc4\x0d\xbc\x5e\x24\x49\x17\x71\x73\x5d\xe4\x66\xe2\xc5\x09\xdc\x4b\x0c\x2a\xa8\x16\x7e\x79\x9f\x00\x2e\x49\x48\xe7\x36\x76\xba\x01\x81\x95\xc8\xd4\x54\x71\xde\x7e\x08\xc2\xe1\x8c\x62\x23\xa5\x7b\xf6\x7f\xd5\x51\xe9\xad\x2c\x72\x98\x90\x04\x3d\x4c\xeb\x97\x55\x25\x48\x5f\xda\x98\xd9\x80\xcf\x08\xb1\x4f\x14\x58\x37\x88\xbf\x41\xc7\x6a\xcd\x05\x13\x71\x2a\x7c\xee\xa8\xc0\x59\x18\x5f\xeb\xa1\x4d\x46\x9d\x3b\x63\xfb\xba\xd6\x70\x4a\x10\x26\xc7\x11\x02\x6d\x0c\x47\xc6\xc7\x27\x80\x58\x0e\xf4\x6f\x0e\xa4\x08\xce\x4e\xe4\x17\x9a\xfc\x73\x23\x9b\x05\x82\x56\x60\xf5\xe4\x96\xba\xf7\x5f\xe2\xb9\xad\xfa\x63\x3d\xa6\x6c\x20\xaa\xb5\x50\x10\x88\xef\xed\x40\x33\x70\x50\x4b\x1b\x3c\x6f\x21\xb9\x05\x64\x14\x3b\x5e\x48\x84\x28\xa3\x9c\xf9\x75\x07\xaa\xa6\xa1\x40\x20\xf0\xc1\xe1\x72\x61\x91\x27\xd9\xbd\xc1\x0b\x25\x31\x20\x08\x0b\xc0\x9e\x7e\x10\x09\x25\x69\x89\xe6\xe7\x36\x2e\x19\x5a\xf9\xd8\x58\x5e\x20\x10\xf3\x53\x77\x76\x6c\xff\xb7\x16\x5e\x2d\xb0\x29\xab\xf1\xfe\x86\x56\x34\xc0\x15\x93\xc8\xfc\xf4\x0a\x16\x88\x2d\xfb\x8d\xaa\xb2\x61\x75\x28\x49\xec\x67\x6c\xbc\x40\x79\x63\x1d\x83\xb7\xb0\x11\x2c\xb1\xed\x2d\xc6\x08\x98\x4e\x2a\xaa\x95\xc1\x73\x44\x62\x80\x1f\x7b\x1f\x06\x36\xcb\xfe\x68\x55\x2b\xb7\x80\x1b\x44\xb9\x24\x2b\x8e\x59\x8d\xfe\x2f\xa7\x73\x00\x82\x43\xbc\x0b\x61\xf1\x1f\x9a\xaf\x6c\xcd\xa5\x6e\xc4\xd8\x4c\x24\x74\xde\x94\x1e\xb6\xcf\xca\xb8\x6f\xac\xfa\xce\x24\x91\xa5\x59\xee\x36\xff\xae\x75\x5f\xf4\x2d\x8d\xdb\xc6\x93\x24\x6f\x56\xd4\x88\xfe\x73\x16\xb5\x87\x7a\xa3\x02\xc6\xf8\x9d\xe3\x52\x71\x48\x0b\x46\x70\x23\xe6\x03\x9d\xd6\x33\x09\x38\x92\x0b\x20\x11\x44\xe0\xab\x7e\x2d\xae\x93\x13\xfd\x1d\xed\x7b\x76\x75\x53\xe1\x3f\xf5\xf0\x3c\xe6\x64\x0f\xe6\x60\x70\xe2\x6e\x58\xad\xa4\x01\x93\x7b\x47\xc8\xfa\x88\x03\xb0\x1f\x4f\x3b\x41\xc6\xf8\x19\xb3\x0d\xd4\x69\xf0\x11\x8d\x2b\x20\xb5\x40\x5c\x4b\xc0\xa0\xcc\xa9\x3c\x28\xf8\xb2\xd4\xc2\xbc\x0f\x99\x7d\x14\x65\x65\x91\xef\x4c\xa7\x3d\x99\x8f\xa6\x77\x53\xba\xc7\x20\x00\xb1\x3e\x00\x3e\x04\x40\xe5\x9b\xc9\x86\x25\xf4\x37\xf7\xd8\xf7\x0d\xc6\xee\x2c\xa1\x7e\x05\x8b\x00\x38\x98\xa0\xf4\xe7\xc0\xa0\xbe\x50\x30\xf0\xf0\x99\x4d\xb3\xb7\xe8\xc5\x9b\x88\xa7\x81\x22\xe3\xf5\x15\x86\x5e\x44\x5c\x58\x5d\x9a\x8c\xea\x70\x85\x45\x5d\xd9\x30\xe1\x00\x56\xfd\x10\xdf\xdc\x91\xa8\x10\x6e\x86\x02\x32\xd1\xc3\x13\xa7\x69\x8c\x15\xb5\x75\xfc\xcc\x00\x7c\x49\xbf\x89\x9c\x10\x11\xa4\xa0\x95\x18\xff\xa1\xf3\xc8\xe2\xac\x7c\x4f\x8c\x0a\xfb\x55\x55\xda\x15\xa9\x61\xbb\xee\x43\xf8\x1b\xfb\xcb\x10\x67\x10\xa5\x2a\x7a\x54\xa4\xcc\x19\x84\xe1\x31\xee\x65\x7b\x38\x4a\x45\x33\x5c\xc0\xfb\x27\x92\x55\xc0\x8d\xc2\x85\x78\xd1\x5d\x80\x46\x81\x04\xda\xd7\x54\xa5\xc4\x03\x91\x95\x7b\x48\xcb\x75\x66\x63\x9d\x35\x38\x58\x15\x0b\x01\xd0\xf8\xa5\xd1\xc5\x21\x80\x7f\x6b\xc0\xb2\x07\x2b\xdf\x1b\x23\x4c\xfd\x26\xc5\xba\x37\x25\x14\x58\x3c\x36\x66\x95\xe8\xc2\xd5\x89\x2e\x69\x49\x97\x4f\x2f\xdc\xe3\x52\x47\x9b\xe7\x2b\xf4\x06\x48\xb1\xc4\xc3\x32\xfb\x18\xbd\xf1\x24\x37\x26\xd3\xf1\xc0\xfb\xdc\x19\xb7\xdb\xf6\x46\xf5\xe9\x63\xb4\x55\x9e\xd5\x6d\x33\xc5\xec\x6a\xd2\x77\x05\xd2\xca\x43\xfc\xcc\xe2\x29\xd2\x3d\xa0\xe8\x62\x0f\x42\xbc\x3d\x04\xec\x04\xce\xf4\x1f\xdc\x89\xe1\x88\x15\x07\xf1\x93\xce\x13\xf4\xaf\x47\x8b\xe1\xba\x40\xc0\x2b\x7a\xe1\xeb\x11\x9d\xa4\xea\xec\xf5\x38\x40\x91\xba\xdf\x25\xf0\x63\x70\x86\x49\x64\x6a\x0b\x05\x2a\x6f\x34\x34\x5c\xc0\x4f\x7a\xa7\x57\xc1\x79\x9b\x87\xfe\x4b\x78\xeb\x68\xa5\xbd\xc6\x75\x0c\xe4\x36\xaa\x4e\xbb\x20\x3a\xbe\x1e\xba\xb6\x39\xc4\x6c\x29\x0e\xc5\xb0\xdc\xcd\x0f\x58\xe9\xc6\xf9\x8b\x8f\x81\x59\x59\xe1\x18\x79\xc6\xe4\x0e\xec\xfc\x12\x48\x88\x76\xa2\xe9\xf4\x3d\xaf\x0d\xaf\x84\x2e\xa3\x1c\xab\x30\x89\x2a\x31\x56\x28\xaf\xa1\xe6\x83\x33\x06\x9e\x6a\xb1\x6b\xdb\xe5\x47\x65\x89\x30\x2b\x97\xde\x8a\x6d\x10\x9b\xb1\x9e\x18\x64\xff\x1b\x56\x6c\x5f\xf2\xee\xeb\x20\xf2\x20\x2b\xd4\xfc\xd2\xfc\x00\xb7\x75\x05\xfe\x4f\x9d\x4f\xa6\x60\x79\x55\x63\xf8\x95\xe9\x36\x94\x6a\x5b\x4a\x58\x89\xf9\xe4\x61\x37\x6c\x80\x67\x49\xdc\x0a\xa8\xbd\x30\x0c\xe3\x2c\x91\x34\xaf\xcf\xf1\x4d\x27\x56\x48\x98\xcd\x69\x90\x93\xac\xde\x29\x8b\x28\xe4\xe8\x17\xe6\x6c\x79\x2c\x54\xe5\x2e\x1d\x9f\x45\x88\x0b\xd7\xe8\x56\x81\xd9\x6e\x66\x00\x86\xe8\xed\x5b\xfc\x63\xad\x26\xab\x2b\x1e\x23\x2a\xf1\x59\xee\x91\x28\x01\x64\x3e\x4e\x5b\x4d\x46\xb0\x8a\xbb\x91\xf8\x78\x92\xb2\x1b\x63\x75\x2c\x4a\x0a\xe5\x14\xfd\xbc\xae\xce\x30\x63\x10\xbd\xe7\x1f\x71\x7e\x81\xeb\xb3\x70\x78\xfd\x9a\xc0\xa7\x56\xbb\x7a\x61\x7d\xfe\x3a\x5d\x56\xec\x4a\x78\xe5\x40\xc8\xd7\x9e\x05\xda\xae\x0c\x22\x73\x51\xd1\x32\xb4\xfd\xad\x37\x8f\xb1\x14\x27\x79\x3b\x23\x27\xee\xb4\xc1\xfd\x57\x80\x17\xcd\xd3\xcf\xcf\x1c\x2f\x04\xa4\xce\xcf\xbd\xec\x1d\x91\x5e\x29\x2d\xc3\xf7\xf6\x69\x87\x39\x38\x3c\x80\x09\xbc\xcb\x2b\xbb\x23\x30\xbe\xe3\x27\x15\x21\x8e\x8f\xc2\xce\xcc\x85\xd2\x76\xf9\x48\xe0\x2a\x29\x1a\xa0\xd6\x88\xf6\xfe\xd6\x89\xa5\x78\x80\xed\xd8\x92\xe1\x4f\xc5\xdf\x36\x14\x01\x8b\x54\x29\x42\xeb\x2e\xae\xcd\x90\x44\x5d\x3b\xab\xc0\xe6\x0d\x24\x9d\x7e\xe1\x82\x7b\x0e\x33\xf9\x57\x8f\x97\x70\x02\x6c\x89\x04\xa3\x38\xc0\x06\x5d\x03\x1f\x55\x00\x99\x16\x9d\x83\xa7\xb8\x12\x00\x41\xac\x69\x1c\xd1\x6e\xf5\x0f\xbe\xfa\xc7\xea\xaa\xc4\xb0\x3a\x79\xe2\xc9\xa1\xbd\x0f\x55\xed\x10\xda\xf6\x0b\x3f\x3c\x5e\xd8\x60\x1a\x52\x21\xcc\xfe\x9b\x5c\x91\xea\x38\x22\x80\x55\x3f\xc1\x4a\xd3\x89\xf1\x76\xfe\xd6\xdf\xae\x1a\x02\x66\x1c\xb1\xe6\xcf\x58\xa2\x14\x30\x17\x17\x50\xc2\x3a\xf6\x8d\xd6\x92\xea\x82\x27\x53\x7f\x9b\x71\xf8\xa1\x58\xa2\xe5\x71\xc5\x52\x7f\x95\x20\x0d\x7e\x43\xfb\xa4\x3f\x96\x08\x20\x4b\xf9\x21\xff\x85\x9d\x82\x22\x06\x02\x55\xaf\x4c\xd9\x31\x16\x5a\x1d\xc8\x32\x1f\xf4\x8b\xd0\x76\xe7\x76\x4f\x5f\x7d\xdc\x81\x0c\x43\x6a\x76\x36\x64\x4b\x83\x19\x0e\x2e\x3c\xe3\x5c\xc0\xeb\x72\x8d\x9e\x28\x65\x43\x99\x87\x46\xad\x25\x71\xf3\xaf\xf2\x0e\x28\x72\xaf\x11\xed\x9e\x26\x62\xdf\x83\x5f\x5e\x12\x04\xe8\x02\xb5\xec\x34\x3d\xfe\x37\x0e\x39\xbd\x83\xda\xc0\x44\x2b\x46\xc3\x75\xb6\xb2\x70\x7d\x29\x01\x99\x06\x74\x67\x18\xe8\x4a\xa1\xdd\x92\x15\x9e\xb6\x35\x23\xc6\xeb\x5d\xfe\xa5\xee\x9e\xdb\x9f\x14\xb0\x1e\x0f\x80\x77\x95\x20\x16\x4e\x54\x79\x35\x23\x1d\xe3\x7c\x9b\xb0\x03\xf7\xb6\x40\x99\x8c\x3f\x3f\xd4\xc1\xf2\x6b\x5d\x49\x14\xbd\x8c\xb2\x2c\xa1\x21\xf9\x8b\xe3\xdd\x67\x91\x09\xeb\x83\xc1\x6f\xad\xc8\x0d\xe4\xb2\x97\x21\x0e\x6c\x5e\x77\xc4\x30\xfc\xf2\xe6\x16\x35\x93\xb9\x29\x3c\x0b\x10\x42\x7f\xa9\xeb\xd8\x79\x89\x7d\xf7\xc7\xd0\xf0\x72\x63\x0e\x1e\xa1\x90\x63\x3d\x38\x8d\xc6\xfb\x1e\xa3\x4e\xb9\x1b\x60\x3a\x48\x19\x04\x39\xae\x1f\x4a\xd2\x1d\x40\x7a\x05\x08\x4c\x74\xec\x4f\x23\x9f\x32\xf9\xdf\xba\xc3\x02\xc3\x59\x9e\xc0\x94\x21\x6a\xa1\xa4\xb3\xec\x16\x79\x02\x24\x96\xad\x1a\x49\xe5\xa3\xa8\xee\x6a\xfd\x93\xbb\x86\xfb\x89\xfa\x2c\x53\xad\xeb\x28\x98\x22\xd6\x29\xaf\x0e\x21\xb5\x43\xc0\xc9\xe5\xfc\x8c\x69\x0c\x8d\xed\xa5\x6b\xc3\x06\x68\x43\x24\x9a\xf7\x31\x46\x09\x2c\xb8\xd9\xb6\xe8\x67\x79\x45\x5f\x98\x6f\x4f\xe8\x37\xf7\x61\x83\xc2\x8f\x50\x04\xce\x5f\xeb\x16\xfa\xbb\xfe\xdd\x5e\x7d\x23\xe8\x43\x51\xa0\x8d\xd8\x28\x73\x93\xd4\xb6\x12\x34\xa8\x63\x4e\x01\xed\x0b\xcb\xb1\x8b\xc5\x7d\x86\xe0\x59\xa3\x61\x1d\xb5\x61\xdd\xed\x0d\x11\x69\x75\x90\x7d\xcb\x58\x53\x66\xd2\xbc\xc7\x1c\x47\x87\xa4\x12\xc3\x73\x98\xd6\xf8\x50\x5c\x5a\x3c\xd1\xa1\xbf\x13\xb5\x3b\x23\x95\x65\x56\x85\x7f\x00\x40\x1f\x19\xaf\x2d\xab\xf8\xfc\xcd\xc1\xa7\x8c\x82\xab\x37\x57\xac\x68\xac\xd9\x55\x49\x6d\xf1\x25\x93\xc7\xa1\xa5\xe3\x6e\x2f\x72\x73\x0b\x5f\x3a\xae\xba\x13\xcc\x98\x0c\x47\x7c\x98\x77\x05\x7b\x03\x01\xe1\x5f\xc7\x33\x9e\x37\xdb\xfb\x67\x73\xb3\xb4\x86\x9a\x7e\xd1\xb0\x12\xc8\x00\xec\x96\x54\x13\x9e\x50\xa6\x1d\xef\xfa\x3e\x40\x47\xf1\x91\xf3\xa2\xeb\x24\x1a\x9f\xba\x8a\x88\x7f\xf5\xa2\x04\x43\xc5\xb9\xef\x0f\x1c\xc8\xda\x22\x2f\x41\xc8\x6b\xec\x15\x9b\xb7\xb6\xdd\x27\xb5\xb7\x24\x8d\xf2\x16\x1f\x66\x9e\x28\x0c\xc7\x2e\xd2\x95\x03\xa8\x27\xec\x40\xbc\x9b\x21\x0a\x30\x86\xe9\x66\xe6\xab\x10\x92\x00\x0b\x85\xc8\x3c\x54\x62\x38\x73\xd1\x13\xfb\xd1\x95\xf5\xc2\x45\x01\xee\xb6\xde\x71\xc7\xe6\xfe\x63\xad\x42\xad\xe0\xfa\xcd\xe2\xf2\xaf\xdc\xb3\xf6\x2b\x40\xa3\x2e\xec\x1b\x0e\x42\x1c\xce\x44\xae\x5e\xf2\x33\xa8\x38\x1b\x78\xa0\x71\xf2\x0d\x4f\x4d\x1a\xd2\x7d\xd5\x8c\x20\xf5\x4c\x75\x19\x23\x95\xee\xa6\x7b\x1c\xb8\x8d\x8f\xe1\xf7\xd9\x10\x29\x7f\x08\x7d\x27\x9a\xbb\xbd\xf4\x8f\x5c\xc7\xa4\x04\xd6\x89\xbc\x50\x77\xec\x00\xea\x1c\xf9\xf9\x6f\x6d\xe9\xb6\xaf\x15\x46\xc0\x98\x4a\xf3\x8a\xf2\x5a\x8f\xf7\xa1\x29\x03\x18\x8a\x2a\xbe\x1c\x49\x4d\x68\x64\x1a\x7a\xf1\xc4\x0a\x7b\x81\xb8\xf7\xb4\x54\xd2\x4b\xd1\x0e\xf8\x3c\x87\xb3\x94\xb5\x43\x1d\xe9\xdc\xa6\xec\x8c\x95\x03\x99\x6f\x03\xb0\xaf\xe5\x54\xf0\xc8\x84\xb3\x62\xa4\xb6\x95\xb9\x49\xc4\xd6\x75\x72\xe8\x6b\xf8\x7f\xf7\x99\x89\x82\x85\x61\x26\xce\xe3\xd0\xeb\xdd\x62\x8a\xc8\x36\xee\xc3\x88\xac\x3e\xa4\xe1\x3b\x53\x9e\x19\x62\xba\x8e\x7e\x7d\x61\xae\x69\xbf\xd6\x6b\xab\x80\x30\xb6\x43\x0a\x93\x2c\xa2\x75\x6a\xbb\x1e\xf9\x77\xba\x95\x32\x00\xf6\xe3\x89\x58\xce\x05\xe5\x80\x8d\xad\xc0\x35\xa7\x02\x8f\xf8\x00\x40\x9b\xb5\x7d\x4d\xd7\x86\xcb\xd7\x1a\xfe\xa3\xaf\xa3\x3b\x3a\x20\xa5\xdb\x2b\x54\xa5\x59\x91\xc3\x47\x00\x1a\x8a\x56\xd7\x27\x57\xa3\x4d\xb7\x1c\x43\xf3\xb2\xf8\x8b\xc2\x5c\x1b\x57\x28\x5a\x9a\x36\x4f\xdb\x0f\x7a\x16\x09\xd9\x44\xce\x67\xfa\xef\x12\x6a\x82\x83\x2a\x8d\x3d\xae\x54\x3d\x21\x2e\xa4\xa4\xd7\xd7\x13\x6d\x3c\x69\x96\xd1\x6c\xb0\x0e\xa6\x6d\x39\x17\x91\xdb\x88\x72\xf2\xcf\xbd\x9a\x6b\x10\x82\x05\x70\x19\xe9\x4e\xb1\x68\xc5\x87\x80\x3e\x05\xad\x51\x7b\x0a\x51\xff\xc8\x66\x38\x01\x1a\xc0\xc2\x80\x0e\x27\xf9\x2f\x5c\x65\x24\x50\x80\x3a\x50\x50\x63\x9b\xf3\xe0\xdf\x95\x86\xef\xfb\xda\x68\x3c\xdb\xe1\xbd\x16\x8d\xa9\x4d\x4c\x17\x53\x75\x13\xb4\x0e\x38\x8b\x8a\x06\xe7\x8e\xa7\x00\xce\x7b\x38\xee\x6d\x76\x8e\xa0\xfd\x08\x1a\xe2\xa8\x63\x54\x10\xb4\xe3\x2a\x8a\x6c\xab\xf8\x73\x3c\xa9\x44\xcb\xfd\x8c\x9a\xf6\x9c\xbe\x6f\xeb\x40\x0f\x28\x21\xe0\xba\xa3\x00\x2c\xfe\xee\x3b\x59\x81\xa0\x32\x8c\xd9\xff\xc0\x0f\x66\x76\x99\x14\x37\x98\x10\x51\x45\x00\x1f\xe9\xc7\xda\x6a\xfb\x49\x59\x2b\x4d\x94\xa3\xdc\x9c\x31\xd7\x90\x88\x9d\x3d\xd2\x51\x37\x74\x7b\x35\x59\xe6\x32\x54\x54\x15\x2a\xdd\x14\xb6\x97\x0b\x5d\xab\x23\xe5\xd5\xfb\xae\x2f\x28\x79\xb4\x91\x89\xab\xe8\xbb\x69\xfa\x05\x6a\x10\x96\xc6\x61\xf6\x0f\xaf\xb6\xfc\x76\x7a\x46\x84\x4b\x6a\x31\x81\x92\x3a\x65\x05\xb2\x1b\x02\xe0\xbb\xf0\x29\xf5\x9b\x07\x1d\x3f\x5c\xf1\x7d\xe1\x44\xc6\x74\x23\xed\x82\x78\x03\x4a\x98\xee\xba\x70\xda\xcf\xe1\xe8\x27\x03\xf6\x69\x6d\xf7\xe5\x1e\x6c\x1e\x8a\x3c\xa3\x17\xf5\xe3\x9e\x31\x8c\x3e\x57\x70\x5c\x86\x46\xec\x72\xf0\xb7\x5f\x94\x7b\x4f\x98\x85\xad\x0f\xff\x82\x9a\x1d\xe5\x17\x78\xec\x0d\x85\x64\xf6\xf3\x6a\xae\xf7\xca\xc0\x3d\xc7\x6c\xd0\xde\xb7\x99\x9b\x4a\x52\x58\xf8\x2f\xb3\xc3\x23\x8e\xf4\x95\xe0\x45\x7b\xf7\x1c\x88\xc3\x9e\x9a\xb7\x7e\xbd\x82\x2c\x00\x67\x7e\x7b\x5f\x28\xa3\xd4\x65\xc0\x16\xc7\x72\x9c\x39\x77\xd3\x7b\xd5\x3d\xd2\xba\xb4\x18\xff\xf5\x9b\xed\x3d\xcc\xac\xc9\xf3\x8f\x0f\x93\x10\x91\x2d\x7c\xb0\x57\xe7\x3a\xf6\xe7\xf9\x13\x74\xcd\x57\x70\xa4\xad\xd3\x18\x6f\xd8\xd6\x1d\x5f\xb5\x7e\x1b\x85\x6c\xd2\x23\xec\x45\x1f\xb0\x19\x59\x67\x7d\x1b\x28\x7f\xdd\x09\x71\xa4\xf5\x8c\xac\xa3\xd9\x18\x49\x24\xc5\x82\x1e\x52\x45\x1e\x6d\xce\xd1\xbe\x69\x55\x25\x97\xe7\x68\xfa\x83\xcd\x00\xf8\x67\xaf\x39\xf9\xe3\xd9\xb2\xe6\xad\xe2\x1f\x4e\xb0\xe6\x95\xc9\x53\x73\x16\xa7\x2b\x9d\xd8\x7d\x20\xd3\x70\x8a\x5a\x02\xce\x62\x9e\x47\x3b\xd1\x9f\xed\xf8\xa2\x58\x50\xb3\xbe\x1a\xab\x83\x61\x93\xd4\x5c\x77\x6b\x36\x2c\x95\x77\x7c\x01\x62\x0e\x75\x37\xe3\x20\x01\xc3\xf9\x05\xaa\xc5\x12\x97\xd0\xf4\x37\x96\xe8\xb7\x51\x0b\xea\xad\x16\xbf\xd2\x26\x37\x86\x04\x00\x22\x7f\x5d\xe8\x27\x56\x7f\x6c\x52\x33\xcc\xf5\x11\xc3\x57\x2a\x67\x0d\xf5\x29\xb9\x0a\xe1\x6a\xe1\x12\x78\x01\xee\x28\xb5\xe6\xe4\xb3\x99\x6c\x1e\xc5\x01\xcf\x32\xc7\xa8\x6b\xd2\x77\x62\x08\xcf\xa4\x10\xc8\x04\x03\x50\x82\x0d\xba\x22\x8d\x43\x23\x11\xe1\xfe\xbb\x55\x5d\xf2\x01\xcb\xe5\x6c\x6c\x80\x32\xf4\x2e\x7a\xb8\x42\x07\x6a\xdb\x72\x50\xdc\x07\x8f\x87\x00\x97\x72\x43\x6b\xb1\xb6\x9f\x46\xb2\x84\xb6\xe7\xb2\x66\x22\x67\x00\xe7\x71\x1f\xaa\xe7\x83\xf0\xad\x5d\x87\xc8\x08\x59\x83\xd3\x55\x8c\x32\x8e\x0b\x7f\xe2\x82\x0a\xd2\x74\x3d\x16\x2a\xb3\xe2\x00\xb0\xf7\xdd\xd9\xe1\x8e\xa2\x1b\x89\xb9\x20\x75\xab\x4a\xd6\x75\x4d\x9b\x58\x0a\x00\x0c\xfb\xdf\x37\x62\x30\x34\xe3\x0c\x0c\x4d\xbd\x46\x3a\x7d\xeb\x59\x16\xa3\x49\xd0\x79\x11\x1c\x6a\x58\x45\x24\xc6\x02\xc9\xef\xce\x1f\xb3\xbe\xb3\xfb\x91\xae\xbd\x19\xe0\xb0\x9d\x5a\x16\x54\x2f\xfd\x8d\x0b\x66\xe1\xba\x99\xb1\x14\x9c\xae\xaa\x7d\x2f\x28\x57\x75\x9b\xd8\xe7\x5b\x16\x12\x28\x64\x33\x37\xfc\x3e\xc4\xa1\x8c\x26\x5b\xee\xca\xf2\x77\x52\xb9\xc8\x16\xff\xf4\x6e\x1b\xee\x41\x61\x74\xd2\x50\xda\x01\x9c\xe2\xad\x62\x00\x70\x46\x32\xf9\xa0\x31\x69\x1d\x6b\x23\xb1\x68\x36\x8c\xba\x71\xcf\xb7\x98\x7f\x46\x36\x80\x8c\x29\xc5\xb2\xd4\x27\x5c\x8d\xf9\x38\x92\x83\x7c\x42\x2a\x22\x31\x12\x4d\xb3\x5d\x10\x90\x57\x66\x10\xc0\xd7\x24\xea\xec\xfb\x88\xaa\xd4\xdc\x40\xb2\xf8\x3f\x9f\xbd\xc1\x19\x35\x13\x75\xd2\x5b\x1e\x65\x59\x02\x24\x95\x95\x95\xf3\x1a\xa0\xd6\x62\x7a\x98\x3c\x42\x33\xbf\x5f\x04\xf2\x0c\xcd\x9c\x7d\xf5\xf2\x34\x6b\x22\x51\xc1\x34\x0c\x70\x55\xee\x87\x81\x40\xb5\xa6\x62\x14\xda\x6f\x1f\x27\x27\x6a\x42\xa1\x7c\x74\x3e\x68\x19\x21\x08\x5e\xc7\x0b\xb3\x28\xac\x7b\xc0\xdf\x7e\x55\x7f\xd2\x14\x93\xc2\x88\xf3\xb7\x6f\xdf\x74\x96\x3b\x22\x72\x00\x00\x4e\xc3\x9f\xe7\xe4\x0f\x29\x06\xbc\xa8\x24\xc5\x70\x4c\x3b\xb1\x1b\x9e\xce\xb5\x30\xd1\x86\x57\xdd\x79\xdb\xce\xc7\xe5\x17\x70\x3b\x3b\x5b\xca\xb7\xc4\xb3\x0b\xdf\xce\x52\x99\x40\x25\x56\x86\xd5\xed\x65\xa3\xc0\xe4\xef\xa0\x29\x8c\x22\x25\xa4\x3a\x4f\x3b\xc0\xc8\xc3\xfc\x20\x90\x6c\x93\xbf\x67\x40\x4e\x2e\xaf\x99\xb2\x2d\xc7\x32\x4f\x71\xf2\xc3\xb0\x5a\x30\x79\x90\xdc\xf8\x37\x82\x21\x8c\xd0\xf8\xa0\x7a\x49\x33\xe6\x9a\x8b\x60\x5f\xa1\xd8\xf1\x27\x39\x9b\xe4\x8f\x32\x6a\xc5\x43\xa6\x61\x2c\x14\xca\x2a\xfb\x4d\xce\xaf\x94\x10\x19\x97\xd8\x18\x07\xe8\x73\x29\x7d\xbb\x42\x48\x73\x7d\x14\xbf\xd9\xf0\x75\x42\xa7\x78\x1a\xa5\xd5\x22\x90\xbe\xff\xe7\xfe\xf2\xff\xd8\x5f\x3e\xd8\x52\x61\x45\x62\x72\x5c\x82\x17\x09\x4c\xd4\x57\x89\x73\xa6\x13\x08\xcb\xf3\x4f\xd3\x6a\xea\xf3\x22\x9c\x76\x0a\x0e\x18\x7d\x9b\xaa\xaf\x69\xfd\x13\xd1\xb1\x90\x9b\xeb\x22\x36\x3b\x31\x89\xb7\x28\xca\xf2\xc2\xc4\x42\xad\x32\x00\xe4\x68\x64\xb6\x2c\xfa\x5e\xf9\x39\x46\xaa\xf3\x1a\x2a\xda\xb6\x37\xd2\xf0\x21\x12\x31\xb7\x4e\xcb\x10\x6b\xca\x98\x3d\x8e\x12\xa9\x98\x42\xd2\xeb\x00\xe8\x02\xcf\xd3\xd9\x0e\xf2\xcb\x57\x1b\xf3\xfe\xe1\x69\xa6\x98\xb3\x48\x6b\x58\xd1\xcb\xf0\x74\x20\xb7\x6f\x45\x5b\xba\x2f\x72\x28\xdf\x20\xcd\xe4\x32\xf2\x29\x22\x93\xe3\xbc\xb7\x12\x95\xb3\x34\x2e\x1d\x49\xe1\xf9\xa7\x1d\x9b\xe3\xd7\x3f\x68\x95\x4e\x7d\x3d\x3e\x8a\xf8\xa9\x6c\xc9\xf6\x00\x09\x42\x52\x1d\xd7\x8e\x53\x64\xa3\x86\x03\x44\x1a\xa9\xd5\xc7\xd2\x11\x4c\x77\xf3\x13\x9f\xc4\xec\x4d\xe8\xba\x8b\xb8\xe1\xd2\x53\x06\x1e\xb4\x84\x24\x57\x83\x95\x12\xfb\x49\xa9\x25\x5d\x62\x83\xc3\x8f\x59\x5c\xf1\xe6\x2b\x36\xab\x41\x10\xce\x21\xff\xc4\xc4\xa9\x6e\x14\x46\xde\xb8\x81\xec\x34\x9f\xbb\x62\xc0\xe6\xc0\xad\xc6\x83\x50\x25\x38\x25\x83\xa9\x66\x86\x1e\x31\xd1\x72\xaf\x46\x23\xb8\xd5\x3a\x4f\x87\x0a\x7b\x8e\xe8\x64\x40\xb4\xeb\xc3\xfa\xcf\xad\x4b\x59\x79\xb7\x19\x8a\x59\xc5\xf0\x87\x4c\xdc\x05\x6b\x18\x34\x84\x03\x76\x48\x0f\x24\x84\x3e\xcd\x9b\xdc\x12\xaa\xba\x1d\x78\x0c\x02\x6f\x13\xa7\x07\xfc\x0d\x47\x44\x03\x10\x3e\x80\x65\x01\x92\xe3\xa9\xaf\x03\xb7\xaa\xff\x18\xb4\xc0\xd4\x96\x61\x09\x76\x68\x92\x66\xc7\x00\x7c\x98\xe2\xc3\xba\x89\x75\xc8\x6a\xda\x5c\x51\xac\x59\x30\xff\x46\x93\xc8\x48\x4c\xbd\x37\x76\xc7\xd0\xf7\x12\xbe\xd2\x5c\x58\x51\xc3\xdb\x17\xa7\x09\xc2\x56\x39\x31\xe7\xed\x33\x77\x4f\x29\xd0\xe6\xe1\xcd\x4f\x92\x10\xd1\x88\xb2\x44\x53\xf8\x50\x7f\xd5\xb4\xd0\x28\x38\x1a\xc4\x61\x10\xc8\x0c\xfe\xef\xfe\x8f\x7f\xfa\xc1\x59\x21\x05\x1c\xd3\xf5\xc9\x36\x4a\xf5\xd0\x71\xa0\x71\x2c\x0e\x78\x72\x27\xd4\x19\x11\x9e\x77\xc8\x20\x89\xaa\xa0\xbd\x52\x85\xb1\x1c\x23\x98\x70\x3c\xe0\xe0\xfc\x56\xc2\xf4\xc8\xa5\x80\x76\x81\xe0\x99\x89\x26\x5a\xe3\xd7\xb9\xfe\xcd\x07\x33\x75\xdf\xcd\x8c\x90\x58\x6a\xa2\x6e\xef\x10\xc0\xe9\xc9\x33\xf8\x89\xda\x4e\xf1\x59\x47\x39\x8a\x74\x20\x69\x8c\x63\xaa\x50\xe4\x4f\xcd\xc4\xb3\x7b\xee\xd1\x74\x94\xfc\x11\x09\xfc\xe6\xc0\x36\x4f\xa6\x79\x5e\x52\x54\x40\xa2\x17\x89\x00\x56\x5a\xf3\x09\xb0\xa0\x7f\xf9\x79\xb8\x7f\x1c\x71\x6e\xcf\xb0\xd0\xf3\xee\x47\x89\x03\x70\x71\xa2\xc6\xd3\x17\x31\xd8\xfe\x92\xa0\x92\x80\xfe\x27\xbb\x95\xe2\x59\x46\x88\x63\x7d\xa6\x58\x09\xed\x3d\x33\xd3\x2d\x08\xa8\xfd\x51\x7b\xa2\x5b\x5b\xe9\x22\x75\x93\xf4\x0f\xf7\x7d\x1a\xf9\xed\xa7\xbd\x39\xdc\x3f\x66\xbb\xf6\x44\x50\x19\xce\x0c\xd2\x10\x7c\x68\xa3\xaa\x2a\xef\x20\xdd\x1d\x41\x9b\x75\xdf\x78\x22\x00\xa7\xe6\x04\x19\xcb\x47\xe2\x8b\x00\x0a\xf9\xda\xe5\xc2\x0e\x20\x13\x98\xae\xb8\xe2\x51\xf2\x69\x6f\x6a\xa2\xd0\x66\x8d\xee\x7f\xfa\x84\xee\x2c\x17\xb0\x17\x28\xaa\x55\x89\x3a\x10\x49\x38\x20\x9a\x0d\xbd\xc9\xbe\xc0\xc5\x31\xc9\xa6\xcc\x4d\x66\x3c\x8a\xae\x66\x44\x75\x72\x8a\x6f\xd2\xd1\xad\x33\xe7\x95\x41\x3c\x43\xc3\x85\x0d\x3f\x00\xf4\x2b\xc0\xd6\x64\xa0\x5f\x27\x36\xd0\xa1\x76\x72\xf8\x77\x0d\xe7\x2a\xcc\x1f\xf9\xdc\x47\xf3\x18\x96\xd0\xd1\xda\xee\x24\x2c\xa1\x80\x70\xc8\xac\x4e\xf5\xd9\xc7\xad\xc6\x09\xed\x0b\x6e\x47\x01\x39\x35\xa0\x7f\x60\xa8\xe4\x4e\x73\x2a\x81\xd8\x0b\xe0\xa8\x3c\xc9\xd7\x16\x04\x15\x5c\x4a\x70\x4c\xff\x95\x43\xb9\x0c\x2b\xaa\xbc\xc3\x28\xb7\xf9\x7b\xfd\x62\xf1\xbe\x69\x80\xd1\xdc\x36\xfc\x0e\x84\xce\x40\x84\x69\x51\x4b\x05\x0a\x78\x82\x4c\x49\xd9\x31\x84\xd1\xf7\xca\x3e\x8d\x54\xfd\xd3\x0e\x60\x52\xc4\xab\xb0\x03\xd1\x1e\x2d\x2b\xf0\x12\xe2\x58\x2f\x3b\xee\x9f\xbe\x6a\x63\x3f\x28\x8c\x94\x84\xd7\xab\x5a\x60\xbb\xd0\x34\x09\xa2\x07\x31\x36\xcd\xa9\x6b\xc4\x35\x3d\xaa\x5e\xcb\x48\x27\x53\x98\x55\xa1\x08\xaf\x4f\x33\xe1\xbe\x36\x8f\xf3\x30\x0c\xdd\x11\xa2\x12\x24\x9c\x0a\xff\xf4\x8d\xe5\xfe\xcc\x11\x02\xa8\x27\xdf\xfd\x97\xee\xf1\x80\x06\x80\x4a\x99\x22\x46\x58\xdd\xf4\x4e\x86\xd8\xa4\x62\x0d\xd9\x65\x8d\x65\x09\x04\xa2\x43\xed\x1d\x58\x46\x96\xaf\xc0\x66\xc8\x4b\x59\x56\x44\xba\xaa\x9f\xe7\x79\xe2\xe2\xd0\xa9\xf4\x13\x69\xa5\xe2\x3f\xce\xc1\x5c\xa0\x19\xe6\x60\x68\x83\x06\x63\x4b\xae\x0e\x64\xd9\xa4\x07\x27\xa9\x5f\x2c\x8a\x80\x37\x76\x7b\xd8\xb0\x9d\x4d\xb0\xfa\x5a\x8a\x52\xd5\xe2\x8c\x8c\x03\xe1\x44\x02\xa9\x05\x9c\xb1\x03\xda\xa0\x4c\x5f\xf6\x89\xd8\xed\x93\xc2\x40\x45\xf6\x70\x20\xfc\x63\x2e\x52\x58\xfe\xf4\xcb\x9a\xfb\x39\x47\x8b\x04\xb4\xbf\x6f\x43\x0e\x1c\x5b\x87\xcc\x6b\xd7\x0d\x85\x1c\x37\x65\x67\xe4\xd7\x3e\x74\x44\xf1\x6b\x8a\x6c\x79\xd4\xbd\x07\x30\x7f\xe4\xf7\x3d\x3e\x51\xec\x2f\xfd\xfd\x9c\xef\x6f\x6f\x90\x3a\x74\xfe\xc8\xb5\x01\x51\xb5\x8f\x12\xb0\x9a\xa2\xfa\x0e\x7a\xd5\x2b\x54\xc4\x62\x36\xd1\xd0\x43\x7e\x5a\xd3\x9f\x56\x2f\x01\xa6\x8c\x39\x7e\x8e\x0f\xd1\xd5\xa1\x81\x68\x3f\xe7\xe7\x65\xf1\xab\x17\x57\x41\xfb\xcf\x99\xc7\x66\x30\xff\xd8\x0b\xf3\x0b\x54\x65\x59\xd8\x51\x96\x20\xa2\x49\xe2\x9f\x5e\xee\xa0\xa6\x5c\xf8\x93\x47\xac\xa6\xf8\xd0\xbe\xfd\xaa\x89\x54\x10\x6c\x0f\x1f\x53\x66\x87\x35\xab\x60\xf2\x83\x2b\xb7\xca\xf7\xb2\x85\xab\x32\x3d\x52\xe8\x9f\x3e\xb7\xa2\xa1\xb4\x0c\x3b\x0a\x43\xac\xdd\x22\x1d\x67\xea\x19\x57\xa8\xf5\x3c\x04\xa8\x85\x6c\x59\x3a\xaa\x90\xf0\x44\xa6\x33\x6d\xd0\xd9\x09\x4c\x4e\xc4\x4b\x9f\x0c\xef\x93\x68\xb7\xa8\x56\x70\xb5\x10\x3b\x99\x91\xf0\x8f\x79\xca\x5f\xcd\x78\xf5\x44\xd0\x96\x70\x1d\x08\xb0\x5a\xb6\xfc\x55\x0e\x2a\xd7\xa8\x38\xf7\xc1\xb3\x6a\x8f\x4f\x3f\x24\x3e\x0e\xa0\x5f\xea\x0d\xfc\xb7\xc1\x96\xd2\x2a\x9c\xcd\xd9\x0f\x48\xeb\xbf\x1f\x14\xfc\x5e\xbd\x75\x98\x3f\xfe\xbc\x20\xb4\x5c\x0d\xe7\x12\x45\xf9\x9f\xff\xed\xff\xfd\x3f\xb2\x34\xef\xeb\x6d\x3e\xa7\xe2\xbf\x6f\xe5\x52\xa6\xc7\x7f\x4c\xf3\x7f\x5e\xfd\xf3\xbd\xbd\xfd\xca\xff\xc8\xe7\xe9\x48\xdb\xe9\xff\xff\xff\x6d\x97\x6a\xff\xef\x63\x5b\xfc\xff\xfe\xf1\x89\x76\x4c\xeb\xf2\x3f\xce\x6d\xf8\x7f\xfd\xb7\x22\x3d\xd2\xff\xf8\xf3\x35\xb8\x4c\xf5\xff\xc8\xd2\xbd\x24\xb0\xff\x4f\x1b\xb2\x96\x7b\x43\x9a\x54\xcf\x7f\xdc\x87\xe9\x05\x8d\x10\xd4\x0c\xc3\xb0\x7f\xde\x97\xc3\x31\xc9\x1f\xff\x2b\x0a\xa4\x9b\x3f\x2e\xa4\xd8\x15\x23\xd9\xf5\x33\xe4\x07\x15\x88\xf8\xfe\x1c\x96\xfd\x49\x74\xfb\xf3\x58\x35\x8b\xc4\xe9\x17\xaa\x43\x12\xb9\x78\x9e\x0f\x83\xfd\xc7\x17\xa6\xe6\x7f\x19\x8b\x9b\xcb\x1e\x40\xb0\x2d\xc0\x42\x60\x17\xd6\x4f\x8b\x82\xf9\xd0\x02\x4d\xd4\x85\xa8\x77\x60\x81\xf1\x24\xe9\x91\xd8\x16\xdb\x95\x70\x3b\x10\x52\x69\x1f\x13\xe4\x26\x80\x7b\xaa\x70\x72\xf6\x58\x6d\x3f\x4a\x61\xe6\xd5\x65\x25\x21\x35\x82\x20\xfa\xe6\x6a\x8a\xfb\x8f\xa4\x60\x0c\x25\x1c\xbe\xef\x34\xff\x8d\xcf\x5f\x49\x13\x38\x8d\x3f\xe8\xf6\xa8\xa2\x50\xfa\x5f\xaa\x45\x44\x31\x16\x4b\xa5\xcc\x4f\x77\xba\xae\x28\x70\xd2\x44\x82\x58\x70\x5c\xe9\xd6\x81\xfb\x1b\xd5\xd5\x10\xe0\x3b\x45\xc3\xeb\x25\xcd\x6a\x69\xab\xe9\x5e\xb1\x75\xe9\x2d\x53\x04\xbc\x82\xa2\x86\x1e\xc6\x0b\xec\x83\x8a\x9f\xe4\x23\x6b\x75\xfd\x81\x8d\x8f\x25\x60\x23\x17\x40\xef\x4b\xc5\x28\xab\x17\x16\xef\x3a\xbe\xfa\xc3\x67\xe3\x4b\x52\x1e\x0a\x4e\xbe\xb4\xbf\x3e\x9b\xa6\x07\x1e\xbb\x90\x06\x07\x63\x01\xda\x8f\xd5\x04\xe5\x76\x0c\xeb\xbb\x26\x55\x9a\x93\xa6\x61\xf9\x5a\xd4\x0e\xa3\x1b\xd9\x81\x8e\x7f\x38\x16\xa5\x8b\xd7\xe9\x53\x3f\x19\x93\xd0\x3b\x49\x5d\x0d\x5c\xd8\x68\xb1\x7e\x00\x60\xe1\x1a\x2f\x52\xe0\x96\x5c\x84\x93\x3d\x3f\xa5\x1c\x1c\x7a\x48\x9d\xc8\x8d\x83\x1e\x49\x05\x1f\xab\xde\xba\xc1\x51\x35\xb3\xcf\xbb\xb2\xbe\x34\x58\xa7\x28\x19\x99\xe3\x55\x6b\xa1\x36\x0a\x7d\x46\xaa\xde\xad\xa0\x8b\x52\xb8\x2b\xdc\xb3\x31\xfb\x53\x99\x40\xeb\x33\xe2\x2e\x30\xba\x52\xbe\x4c\x3d\x9a\x62\x22\x72\xa5\x11\xa0\x38\x88\xb2\xd7\xc6\xf2\x71\x6f\xc6\xe2\xc7\x08\x50\x19\xb0\x3c\x51\x73\x26\xc4\x1f\xbf\xdb\x20\xe3\x1b\x70\x83\x21\x14\x54\xee\x6c\x49\x6e\x7c\xed\xd4\xa3\xb1\x8f\x83\x88\x9f\x51\x16\xae\x20\xb8\x26\x43\x14\x1d\x1b\xc9\xbb\x47\x03\x74\xe5\x7a\xe8\x42\x33\x5b\x6a\xc5\x59\x23\xe8\xc6\x10\x38\xdd\x89\x48\x88\x45\xaa\x8c\x23\x98\x3d\x14\x37\x8b\x2c\xa1\x86\x12\x0e\xc2\xef\x4b\xf9\xac\xb0\x34\x8b\xea\xa2\x17\xf4\xb7\x54\xda\x8d\x51\xc7\x74\x4a\xf3\xeb\x49\xa9\xf2\xea\xc5\x54\x36\x2a\x1d\x73\x81\x3a\x18\x32\x9c\x83\xc5\x04\xd5\xaa\x89\x55\x34\x14\x30\x13\x64\x74\x91\xcc\x43\xc4\x74\x8b\xe9\x64\xe3\xb1\xe0\x42\xba\x22\xac\x8b\x3f\xbe\x25\x95\x9b\x80\x7c\x16\xea\x54\xf7\xb5\xcc\xe6\xc2\x8c\xe2\x9c\x32\x7e\x2a\x0d\x86\x60\x0d\x9b\x67\x88\xd6\x10\x3f\xe1\xc9\x1d\x99\x66\x9e\x3e\x68\xef\xec\x05\x9c\xaf\xbc\x8e\x49\x44\xac\x80\x1a\x58\x1f\x6e\xa9\xca\x4a\x91\xc0\x82\x41\xf1\x2e\x24\x5f\x16\x10\xcf\x97\x0d\x10\xc6\x80\x6b\xb0\xad\x0f\x72\x9f\x36\xd3\xec\x6a\xa2\x19\x39\xfe\xc9\xec\x97\x3c\x14\x41\xfc\x0a\x5f\xeb\xcf\x70\x2a\x1a\xf9\x5c\xcb\xc9\x83\x1b\xf0\xc2\xaa\xea\x7a\xd6\xf7\xca\x82\x93\x39\xec\xf6\xfb\x41\xfc\x42\xc6\x70\xe5\xef\x80\xc8\xd0\xb9\x31\x45\x05\xf6\x93\x68\xc8\xb4\xba\x79\x0c\xc5\xaf\xf4\x73\xfb\x16\x24\x86\xe3\xa5\x32\x29\x8a\x5f\x4c\x11\x7f\x46\xa7\x30\x88\x7e\xef\x9d\xce\xc8\x71\xff\x77\xa0\xb1\xa0\xff\x66\xa0\xf1\xfc\x17\x68\x40\x01\x45\xdb\x02\x24\x04\xe0\x96\x92\x71\xf4\x2c\xde\x2e\x26\x4a\x16\x3a\x15\xed\x0a\x22\x2b\xf7\x09\xeb\x2a\xb6\xda\x60\xf7\x66\xa2\xfc\xfe\xc3\x0c\x5b\xb2\xa9\x0c\xbc\x03\x4e\x91\x85\x1b\x17\x12\xe8\x86\xb0\x99\x56\xf4\xdc\x15\xa4\xf1\x0e\xeb\x34\xce\xb2\xb8\x98\x0a\x24\x8b\xcd\xc7\x4e\x1b\xe9\xcd\xbf\x32\x3b\xbe\xed\x43\xaf\x92\xa6\x49\x0c\x8a\x5c\x57\xee\xa3\x09\xcf\xcb\xec\xc4\x72\x99\xf0\x8c\x84\x2c\xa1\xce\x65\xe4\x8d\xce\xd1\xe8\xd9\xc3\x2b\x2f\xc7\x31\x7b\x77\xfa\xf5\x09\xe0\x94\x55\x6a\x4e\xed\xb2\x7a\x97\xc2\xe6\x79\x3c\x19\x1b\xfc\x46\x88\xdb\xe8\x85\x66\xa6\xd4\x83\x3f\x4e\xc1\xfa\x89\xdc\x76\x99\x20\x76\xaa\x3f\x53\x92\x21\x1f\xa7\x79\x9c\x8a\x41\x0e\x21\x53\xd1\x64\x74\x34\x3e\x9a\x71\xbf\x6f\x5c\xe2\x5e\x13\x03\xce\xef\x04\x2c\xfd\x70\xf6\xc0\x7e\x6c\xe7\x21\x7e\x06\x33\x3b\x1d\xcb\xdc\xa4\x05\x64\x42\xc8\x19\x86\x53\xaf\x6f\xbd\x03\xba\xb8\xc3\x0d\x50\x48\x05\x95\x4d\x29\xe4\x8c\xb1\x45\x5b\x3a\xa1\x26\xf5\xcd\x5c\x96\xf8\xd3\xb4\xf9\x45\x43\x0c\xe3\x6a\xb3\xba\xc8\xe4\xa1\x66\x5d\x06\x86\x40\xa8\xaf\x4f\xa4\x92\xa2\xf9\x80\x09\x83\xf7\x89\x91\x5c\x09\xaf\x03\xe1\xe6\x86\xaf\x91\x8b\xeb\x38\xc4\xa7\x32\xdf\x44\x83\x84\x49\x9d\x3f\x4d\xc3\x4b\x29\xaf\xe0\x55\x9e\x61\xc9\x7a\x8e\xee\x56\x80\xa5\xba\x46\xac\x06\x23\x78\x3d\xd4\xba\xdc\x12\x01\xf1\x62\xd5\x53\x74\x1a\x88\xa0\xae\x87\x46\xce\x6b\x98\x87\x8f\x6b\x47\xab\x33\x33\x7e\x7e\x2b\x8a\x5f\x8e\xc6\xb5\x9a\xd3\x7b\x41\x5c\xe4\x30\x50\xe7\x79\x03\x8b\xb2\x64\x8f\xda\xa9\xd4\x2c\x57\xe4\x04\xb1\xaa\x8e\x6c\x48\x34\x00\x9b\xca\x12\xbc\xc3\xf3\xc8\xc7\x19\x11\xb5\xd0\xfa\xca\x09\x98\xd8\xdb\x15\x51\x7d\xbc\xd0\xeb\x8f\x85\xd9\x89\x5f\x7e\x6b\x5d\x02\x19\x01\x69\xe8\x07\xa0\x74\xb3\x97\x16\x30\x21\xce\xca\x83\x66\x20\x03\xf1\x3f\x52\x4c\xe2\x69\x2f\x16\xa6\x0b\x0c\xde\xea\x14\xfc\xb3\xeb\x6a\x66\x77\x77\x2e\x9a\x46\x6a\x7e\x72\xc5\xb2\x01\x38\x49\x8c\xe4\x1e\x4f\xa4\x58\x35\x3e\xf8\x88\x79\x6c\x0a\x5e\xe8\x90\xc7\xe2\x9a\xfa\xe9\x73\x31\xcc\x6b\x9c\x5a\x42\x7a\xd8\xd2\x77\x68\x2b\x5e\x4b\xa8\x87\xf3\x66\x77\x32\x1a\x6e\x76\x9a\x5a\xd9\x89\xa6\x40\x73\xcf\xf6\x5e\x51\x8e\x5c\xeb\xd5\x1e\xb8\xf5\x8e\xa9\x7b\xa5\x7d\x3c\x6c\x87\xe9\x1e\x77\x57\xe2\x21\x40\xfd\xb6\xae\x31\xf9\x0b\x8d\xe9\xa4\xe3\xc1\x88\x5f\x64\x20\x0d\x01\x2a\x3e\x06\x6d\x19\xd3\x79\x13\xe2\x8a\x1e\x8e\x80\x83\x04\x83\x3f\xff\x35\xf3\xa4\x21\x40\x87\x33\x63\xe7\xfa\x5a\xbc\x70\x51\x7a\x92\xc3\x15\x66\x83\xf7\x34\x24\x86\x71\x77\x91\x38\xb2\xac\xc4\x5a\x8d\x87\x37\xd2\x1a\xf1\x56\x64\x8b\x31\x82\xbd\x9d\xaf\x06\xbd\x3d\x59\x62\x8f\x69\x08\x60\x18\x87\x97\x99\x88\x2c\x22\x28\x99\xbe\x3f\xe2\x94\x61\x55\x37\xc0\x85\xad\x57\xeb\xba\xfe\x9f\xff\x97\x19\xc7\x82\xfd\x9b\x81\x07\xfb\x57\xc6\xd1\xd3\xf4\x06\xc1\x4c\xf0\x90\xf4\xb2\x6f\xfe\x76\x76\xe1\x91\xe5\x65\x9a\x4d\xbf\x1d\xe3\x13\x57\xf6\x66\xa3\x21\xf8\x7a\x25\xc9\x6d\x02\x98\x6a\x66\x40\x40\xa9\x30\x76\xee\x01\x0e\xe2\xaa\x27\x74\x79\xb6\x01\x14\xc4\x5c\x7f\xdf\xb6\x78\x30\x1f\x5e\xd9\x11\xa0\x9e\x6a\xe7\x23\xe5\x79\xc3\xae\x0e\x65\xbe\x4f\x74\xe1\x93\xe8\x64\x51\x78\x08\xb2\xb4\x0c\xc9\x24\x65\xe9\xc5\x01\xea\xfc\xe0\xc0\xa7\x91\xbc\x99\xc2\xd4\x0a\x3d\xd1\xb4\x15\x3d\x73\x49\xa1\x53\xdf\x7e\x74\xc3\xf3\x69\x89\xa2\x90\x7a\x3d\x3a\x46\x59\x38\x1c\x3f\x23\x58\x4e\xe6\xa1\xd9\x59\x78\x33\x0d\x24\xe4\x44\x9f\x2c\x71\x7a\xd0\xf6\x34\x20\x12\xcb\x41\x88\xbc\x75\x06\x9e\x90\x0d\x66\x53\x00\x29\x1e\x8a\x18\xaa\x18\x6d\x6d\x4f\x30\x0d\xe4\x99\x2b\x45\xd5\x5c\x00\xab\xf0\x17\x50\xb1\x79\x47\x2e\xe0\x11\x1b\xf6\xb6\x23\x6e\x1c\xfa\x37\x66\xc5\x48\x30\x89\xfe\x16\x73\x59\x96\x90\xc7\x62\xec\x0c\x8c\x8a\xbc\xc7\x33\x96\x83\xd5\xaa\x20\x05\xaa\xbe\x43\xb6\xdd\xd0\x5c\x2f\x78\xbb\xbd\x8d\xcf\x23\x7c\xc8\xb0\xa5\xe8\x36\x2d\xcc\x81\x4a\x44\x5a\xd4\x85\xd3\xb0\xcb\x58\xea\xbd\x38\x17\xe6\xb8\x77\x8b\x65\xcf\x31\xbb\x39\x3e\x9f\x8f\xa2\x68\x7a\x64\x8b\x1a\x2e\xff\x7d\x36\x77\x83\xd7\x95\x52\x6d\x1f\x00\x9c\xe5\x3c\x23\x8c\xb1\x6c\x73\xa9\xb9\xac\x4b\x8b\x64\xfb\x16\xa3\x3e\x4f\xa9\x67\x9b\x5b\x33\x7d\x72\x76\x6c\x21\x63\x12\x3e\x47\x6a\x14\x07\x11\x4c\x27\x3a\x16\xaf\xe7\xc4\x18\x62\x33\xad\x30\xbb\x46\x49\x9d\x26\xb0\xc1\xc8\x8c\xe7\x58\x6d\x40\x13\x9f\xf6\xf5\x01\x49\x8c\x77\xd9\xa4\xd6\xf5\x10\x0d\x7d\x1a\x17\xa9\x89\x26\xea\xce\x8b\x8e\xcd\x3e\xa3\x60\xb2\xdb\x60\xb7\x37\xa0\x34\xfd\x0c\x29\x00\x41\x49\xe6\xa2\xef\xa6\x7c\x06\xed\x7d\xde\x5a\xab\xea\x34\x6b\x79\x3f\x48\x9b\x0c\x51\x5c\xae\x76\x13\x7b\xe8\x3a\xb7\x7b\x82\x24\x2d\x5e\xa4\x5e\xf2\xc1\x6b\xe6\x2c\xb6\xcb\xb2\xab\xd0\x39\x28\x3b\xcf\x07\x1c\xc7\xf8\xc6\xc0\x3a\xbd\x79\xa6\x8d\xf0\xb6\x3f\x3f\xd7\xf7\x51\x64\xb5\xd4\x79\x52\xab\xc7\x51\x7f\x90\x4b\xad\x37\x48\x88\xe9\x98\x79\xe6\xea\x86\xb5\x7a\x7a\xd7\x0e\xe5\x5a\x0f\x7b\xf5\x30\x91\x4d\xdd\x49\xf5\xdc\x98\x3a\x3a\x84\xb7\x1a\x74\x10\x59\xdc\xb9\x91\x9f\x29\x6a\xb8\xee\xce\xc4\x8d\xed\xda\x81\xd4\x35\xf3\xbd\x77\x5b\x30\x86\x09\xd2\xa7\x62\x7b\xbf\x7a\x60\x75\xde\xc2\x45\x11\x1d\x5d\x1e\xbd\x65\x81\x5e\x43\xf7\x9a\xe5\x2d\x58\xaa\x09\x08\x04\x47\x83\x40\xd2\x6b\x8e\x3b\x9b\x65\x95\xe8\x0a\x99\x72\x7f\x8f\xc7\xe1\x64\xe3\x85\x82\x9f\x91\x25\x0e\x22\x27\x24\x3e\xab\x2d\xab\xf3\x0d\x50\xed\x0f\x1b\x92\x04\x71\xa4\x13\x6d\x8b\x46\x79\x2c\x32\x21\x17\x8a\x61\x6e\x46\xe7\xa4\x9f\x26\xd8\xac\xc4\xfd\xeb\xc1\xa2\xfe\x37\x03\x8b\xe7\x1f\xe5\xc9\xf1\x67\x79\x02\x9e\x99\x5b\x0c\xeb\x38\x05\x6c\x36\xa7\x50\x50\x06\x0e\xdf\x06\x12\xc7\xc1\x80\x3a\x6e\xcd\x33\xc7\x07\x58\xb3\x57\xac\xb6\x24\xa6\x54\x18\x13\x42\x09\xba\x9b\x9a\x08\x25\x41\xaa\x70\xeb\xac\x54\x5d\x1d\x7a\x8d\xd0\x4a\x22\x76\xf0\x56\x61\x81\x95\x55\x5a\xa9\xa7\x1d\x6d\x89\x4b\xbf\x93\x5c\xbe\x0f\x2d\xc1\x9c\xfc\x0e\x4d\x52\x52\x05\xbb\x26\x7a\x01\x40\x1b\x6d\xb0\x12\x4b\x09\xfb\x22\x84\xd9\x61\xf9\xf6\x25\x6d\x7c\xcb\x61\x1b\x8e\x0f\x22\xb6\x29\x03\x2f\xbb\x78\x26\x02\x15\x28\xa2\xec\x2c\xc7\xd2\x97\x8a\xe5\x32\x8b\xd6\x2c\xe9\xe4\x72\xf4\x12\x63\x5b\xcc\x1e\xfd\xc5\x1d\xdf\x95\x1a\x49\x78\x5b\x48\x8c\x7d\x34\x11\x39\x6e\x45\xbe\x98\x19\xa8\xc0\x01\xf6\x91\x64\x81\xbe\xbc\x94\xdb\xaf\xb2\x7e\x29\xf8\xb8\x53\xc5\xba\x8d\x84\x71\xce\xca\x24\xed\xcc\x46\x65\xcc\xbf\x0c\xc5\xb7\x44\xd9\xc2\x79\x19\x73\x70\xcc\xde\x9b\x1f\xcb\xb6\x8c\x5c\x11\x91\xe7\x2c\xcb\x1a\x0a\xc1\xee\x5e\x20\x38\x5f\xda\x4b\x3a\xf1\xb0\xd0\x71\x75\x2f\xfb\xb8\xe6\x53\x70\x47\x8e\xc4\x15\xe5\xd2\xfe\x9b\x46\x3e\x6f\xd5\x88\xdf\x55\x61\x71\x13\xcd\xaa\xcc\x02\xcd\x22\xd2\xd3\x0b\x7c\x34\xe8\x32\xb9\x63\xe5\x71\x94\x48\xef\x2d\xd0\xcc\xbb\xe5\xb7\x39\x37\xa7\x28\x0c\x3a\x4b\xf2\x06\x81\xa3\x66\x8c\x02\x8e\xae\x33\x82\x46\x18\x70\xe3\x1e\xe0\xe0\x73\x33\x67\x74\x8c\x1e\xb5\x5c\x5b\x54\xa0\x3b\x0c\xc7\x91\xb5\xf1\xd0\xa3\xe6\xd8\x28\x24\x44\xc4\x28\xc8\x4b\xd2\x52\x4f\xae\x0a\xc5\x67\x9c\x79\x57\xf5\x5a\xbe\xf9\xd5\xb8\x8e\xad\x98\xb0\x0f\x27\x82\x4a\x01\xd4\xe9\xab\xa9\xf7\xec\x74\x72\xb1\x31\xf8\x85\xc9\x1a\xc9\xad\x18\xa6\x75\x3f\x33\x5a\xd2\x3a\x5d\x17\xd2\x61\xb8\x7e\x87\x64\xfa\x9b\x22\x94\xc0\xdb\x14\xc1\xf8\x6f\x16\xf8\xf9\xb3\xd4\x4c\xa6\xca\xf0\x90\xbc\x26\x96\xfd\xdb\xdc\xd2\x7c\xda\x25\x72\x25\xf4\x6f\x17\xce\x94\x19\x4c\x7b\xa4\x1b\x92\xf7\xbc\xb0\xd3\x5f\xce\xe8\x97\x85\x57\x00\xc9\x43\xbc\xc3\x89\x18\xd8\x1d\xb4\x19\x8a\x71\x62\x42\x62\x80\x70\xe4\x7e\xec\xf9\xb4\x7f\x44\x3a\x32\xc2\x35\x7a\x35\x60\x07\xd9\xed\x68\x92\xea\x8a\x3e\x38\xa8\x81\x2f\xe0\xf3\xce\xb0\x8d\x11\x6a\xd0\xe5\x11\x3a\x71\x4c\x51\x2e\x53\x4e\xee\x2c\xc8\xd9\xc8\x21\x5d\x87\x7f\xf5\x28\x0c\x8b\xa4\x1e\x11\xca\x02\x30\x2e\x2b\x92\xa9\xf8\x9b\x91\x28\x83\x25\x93\x2d\x14\x60\xb0\xb9\x29\x93\x2b\xbc\x43\x92\x9d\x98\x8b\xaf\x4e\xe6\xb0\x29\xd3\xd0\x78\x15\x6a\x3f\x6e\x5a\x1c\x6e\xca\x68\x7e\x8b\x7e\xef\xe6\x0a\xae\x47\x98\x7c\x19\xdc\xc0\x2b\xa7\x71\x43\x6e\x07\xc6\x61\x2c\xf5\x02\xf4\xd5\xdf\x13\xd9\xdf\x9a\xe9\x2e\xfc\x9c\xd2\x69\x2b\x6a\x6c\x32\x89\x80\x9b\xbb\xc2\xea\x20\x25\x3c\xa2\x2e\xc5\xb2\x35\xf3\xd2\xfd\x47\xbf\x3b\x27\x10\xce\xbf\x18\x3c\xe6\xa2\xfa\xf7\x02\x8f\x16\xff\xbb\x4c\xe9\x8f\x2d\xf8\xa3\x4c\x19\xb3\x13\x15\x2b\x01\xd6\x5c\x37\x58\xa2\xa4\x29\x19\xdd\x64\x03\x37\x08\x5f\x32\x7f\xe9\xa0\xb7\x08\x2d\x02\x01\x3d\x3b\x20\xc5\xde\xc5\xb3\xc5\x6a\x9d\xcd\x82\x55\x4c\x83\x33\x16\xfc\x40\xe3\x92\x14\xea\x3c\xfc\xfd\x21\x3f\x0b\xc7\xc9\x0c\x37\x46\x3f\x5e\xea\x91\xb7\xa7\xca\xca\xc9\xee\x9b\x0c\x49\x31\x13\xbb\x85\x8a\x12\x0f\xae\x71\xb1\xdc\x67\xe9\x04\xb0\xcf\xcc\x35\x82\x20\x9c\x0f\x4f\xca\x8f\x6e\x58\x26\x71\xea\x57\xf5\x62\x6d\xd6\xea\x78\xbc\x8f\x67\xbb\x9d\xaa\x74\x90\xe3\x47\xa0\xcb\xb7\x89\x14\x4b\x19\xc9\x0f\x28\x02\x96\xf1\x16\xee\x05\x54\x7b\xdc\x43\x8f\xed\xca\x41\xf3\xcc\x15\x0b\x41\xd7\xb8\x03\x36\x84\xa5\x9b\xd0\xf1\xe2\xef\xa4\xf4\xf7\x67\xdc\xc1\xdd\x20\xe2\x6d\x14\x79\xc6\xb7\xdc\xcf\x89\x87\x7e\x15\xb9\x45\x98\x6d\x1f\xbc\xdb\x06\x4e\x3a\x5d\x99\x18\x33\xe7\x01\x30\x48\xe9\xec\x44\x6f\x75\x90\xae\x8d\xfd\x71\x63\x79\x20\x80\x47\x18\x02\x5e\x63\xb3\x34\xfc\x68\x06\x54\x48\x28\xe6\xf8\xa6\xe1\xcb\xc7\x36\x7d\x71\xdc\x6f\x95\xbd\xf3\xe9\x8c\x7b\x91\x22\x42\xcf\xfc\x3d\xe1\x09\x9d\xbd\xee\x49\x13\x9b\xaf\xc3\x64\x62\xf2\xcc\x39\x4a\xaa\x9c\xca\x45\xea\xc1\x3c\x1b\x56\xed\x90\x2b\x89\xeb\x0c\x93\xe1\x34\x4b\xd7\x1c\x2b\x7b\x5a\xbd\x96\xa3\xbb\xd1\xd8\x68\x68\x23\x8f\x60\x5c\x65\x50\x53\x46\xfa\x72\x22\x39\xa6\xbe\x30\x7d\xd0\xe7\x19\x41\xa8\xaf\xc4\x8a\xa2\x10\xb9\xa1\x8e\x93\xb5\x28\xc8\xf8\xda\x51\xfa\x73\xe7\x29\xb2\x7a\xa8\xf0\x4b\xcf\x7a\xfc\x98\x1b\xc1\x0a\x17\x8c\x9d\xfa\x3e\x76\xce\x63\x3b\x5b\x29\xa2\x2c\x98\x05\x24\x50\x75\x76\x0a\x29\x26\x07\xf3\x36\x92\x77\x8d\x06\xeb\x21\xd2\x27\x9e\xd0\x90\xab\xb6\xf7\x6f\xb7\x0a\xcb\x29\xaa\xd2\x81\x73\xd0\x6f\xb4\xd9\xaf\xf9\x89\x66\x50\x2d\x10\x78\x10\x47\x0a\x0c\x7f\xf2\xe6\xb7\x5f\xf3\xc6\x13\x6c\x05\xfe\x08\x68\x6b\x43\xd4\xa1\x7f\x20\x94\x65\x52\x00\x9f\xf3\x92\x48\x7d\x25\xb8\x9e\x83\x86\xd9\x6e\xdc\x03\xb4\x0e\xeb\xac\x30\xee\xe8\xcd\x76\x12\x47\x2f\x54\xcc\x1b\x49\xeb\x15\x6b\x08\x42\x41\x75\xd2\x0e\x9e\x0e\x9a\x0c\xa4\xad\x8a\xa6\x98\x9d\x42\xdc\x86\xc8\xd6\x72\x15\x45\x55\xf3\x15\x37\x6c\x36\x83\xd7\x6a\xa3\x07\x84\x80\xbf\x64\x54\xc5\xd5\xef\xbf\x04\x26\x20\x69\xa6\x4f\xc1\xc8\x44\x8d\x6a\x5c\xd0\xdc\x8a\xf8\x10\xcf\x20\x1c\xa7\xf1\xf5\x42\xa9\xb6\xb0\x0b\xd3\x0d\x86\xe9\xdc\x7a\xb4\x00\x4f\x55\xdb\x7f\x7d\x50\xef\xff\x5e\x41\x5d\x1e\xff\x19\xd4\xab\x11\x74\xb0\x22\x0b\x42\x00\xb6\xe4\x49\xfe\x10\xb4\xa4\x0e\xa9\x9e\x4a\xc9\xb1\x6f\xb4\xf9\xf1\x7d\xdf\x38\xad\x77\xde\x86\xe3\x0a\x59\x8a\x9d\x41\xbd\x84\x03\xb7\x5d\x82\xd3\x9c\x5b\xcf\xcd\xd1\x9a\x3b\x0e\x34\xfb\x4c\x9a\x68\xe6\xaa\xbe\xb5\x24\xdc\xb5\xcc\x79\x2c\xa1\x4d\x13\x59\xc6\x79\x11\x83\xd2\x58\xc8\xa1\x1d\x25\xa2\x8d\xd6\x37\x49\xc1\x24\x0a\x5e\xe3\x95\xf4\x8e\xb3\x33\xb7\x79\xe5\xfd\x4a\x13\xc1\xf4\x2a\x42\x43\x82\x05\x76\x90\x67\x50\x80\xd4\x0b\x50\xb8\x0d\x64\xb1\x17\x63\xf5\xd6\x37\x0a\x31\xa9\x89\x1d\x91\xfa\x16\x2f\xac\x86\x24\x4f\xeb\xcd\x5e\xd3\x9c\x18\x7b\xae\xb0\x69\xcf\x15\x5f\xae\xc5\xf6\x43\x7f\x58\x3e\x90\x3c\xa6\xa2\xc1\xc1\xe0\xe1\x1b\x32\xc3\xa8\xce\xdb\x49\x33\x15\xf2\x63\x16\x78\xc8\x39\x07\x9d\xd6\xba\x3d\xb5\x31\x4b\xd0\x01\x64\x65\xc0\x98\x64\x83\x96\x42\xdd\x86\xa2\x1b\xd5\x4c\x06\x45\x39\x67\x76\x9c\x49\xa7\x50\x4c\xec\x48\xcc\x0e\xa4\x9e\x31\x05\xa5\xe7\x3c\x6f\x4f\xa9\xda\x59\xeb\xc4\x57\x72\x16\xb2\xc3\x3d\x66\x51\x98\x92\x94\xc9\x6d\xb9\x30\xe2\xfa\xc5\x15\x99\x1d\xe8\xf0\x5a\x1b\x18\xec\x40\x68\xa9\x6e\xb0\x02\x3a\x20\x4c\xd4\x0e\xda\x76\x56\x11\x0b\xc4\xfa\x1c\x3d\x81\xa1\x98\xa5\x4c\x85\xa1\x1d\xa2\x2c\x71\xc3\x17\x1c\xf6\x69\x07\x4d\xd8\x61\xfb\xe7\x10\x4c\x11\xeb\x1e\xfb\xc9\xeb\x9c\x85\xb9\x5f\x68\x6d\x97\x71\x94\xda\xff\x52\xfe\x50\x15\xa9\x01\x00\x3b\x8f\xe9\x36\xb9\xa3\x2e\xd6\x50\x12\xb8\x6c\x28\x2a\x92\x1e\x92\x0f\x9a\xee\x8e\x98\x52\xdf\x3b\x12\x7b\x87\x6b\x6e\xec\xc8\x81\xfc\x97\x5f\x83\x48\x6e\xc6\x57\x02\x67\x96\x3d\x26\x06\x55\x46\x3a\xb8\x06\x6f\x83\xc4\x71\xa7\x6d\x50\x6a\xe4\x3d\xfc\x20\x9f\x87\x52\xbc\xd1\xfd\xe8\x99\xff\x88\x5e\x4d\x5b\xb6\x55\xd6\xd4\x7d\xf0\xf7\x17\x81\xe8\x1d\xb9\x27\x43\x64\xfd\xc4\xfc\x75\x39\x38\xeb\x07\x5d\xdb\x97\x6e\x3d\x40\xf3\x84\xaa\xa2\x79\x48\x12\xe1\x0b\x97\x79\xaf\xea\x4b\x86\x46\x92\xb8\x45\x85\x2f\x7b\xf3\x6a\x81\xe8\x3e\x3f\x80\x31\xde\x52\x17\xea\x91\x66\x78\xd3\x97\x9a\xe1\xf0\xa1\xf8\xbc\x10\xdc\x82\xc4\x98\xdc\x83\x80\x5b\x2c\x08\xa2\xf8\x2f\x25\xfd\xe6\xe2\xf8\x37\x0b\xbc\xe5\xaf\xc0\xeb\x3f\x58\x51\x60\xc1\x79\x40\x80\xe4\x52\x42\xed\xd7\x37\x69\x55\x2a\xd7\x84\x85\x71\x32\xd6\x11\xf9\x11\xda\x43\x6b\x17\x59\x8f\xbe\x0f\x5c\xb3\xfc\x5a\x90\xf0\xe3\x7e\xc2\xe1\x07\xc4\xc2\xa4\x99\xad\x52\x37\x89\xf6\x3c\xf8\x74\x0b\x8b\xa2\xc4\x69\xeb\x31\xb5\x26\x8d\x46\x0b\x15\x08\x7a\x52\x00\xea\x93\x56\xfa\x53\x05\x43\x97\xe8\x71\xb4\x27\x13\xbc\xe1\x8b\x0d\xe6\x45\xb7\x4d\xb3\x71\xa3\x58\xb6\x5e\xbe\x86\xa6\x87\x42\xfc\x56\x3d\x7e\xf6\x60\x87\xb3\xb9\x54\x47\x8e\xe4\xfe\x7c\xe4\xf2\xf1\x3c\x10\xd1\x17\xf1\xe2\x39\x20\x7b\x7d\x9a\xe0\xfd\x3e\x85\x1f\x99\x8f\x78\x01\x73\xee\xac\x6e\xe1\x8d\x5f\xbb\xba\xb6\x52\x9b\xb3\xf8\x46\x06\xc5\x6f\x5a\x10\x92\xe9\x63\x01\x75\xbe\x60\x35\xc9\x7c\xe3\x7a\x32\x45\x68\xae\x56\xad\x23\x1f\xa2\x60\x6d\x01\xb3\xd0\x5d\x97\x6f\x6d\xbd\x07\xb8\xe9\x3a\x9e\x9d\xfa\xcd\x28\x7c\xcd\xd0\x45\x02\xe8\x00\xdf\x9f\xbc\x63\x71\x5b\x6f\xd4\xec\xee\xd6\x43\x6e\x58\x2b\x23\xdd\xca\x7e\x18\x35\xc5\xf4\xd2\x7e\xfe\x0c\x33\x30\x5c\xa3\xd7\x57\x01\x70\xa4\x61\xae\x87\x6b\x60\xc8\x53\xb1\x18\xed\xfa\xa5\x9d\x0b\xad\x6a\x1f\x74\x60\x2c\x97\x10\xeb\x2b\xf9\x10\x6a\xda\xb0\x55\xda\xde\xd1\x2b\x43\xd5\x0c\x71\xaf\x9e\xfa\xd9\x69\x3c\x6c\x64\xff\x82\xe0\x51\xe8\x42\x50\xa5\xf7\xce\x76\xc2\x13\x88\x52\x18\x65\x3e\xc9\x3c\x5e\x8a\x21\x32\xa2\x1b\x95\xc5\x8f\x57\x81\xde\x5a\x46\xba\x8c\xa1\x27\xb7\x41\x4d\xc7\x4e\x3d\x2a\xb8\x08\x25\x09\xa2\xf6\x68\x23\xa5\x74\xa1\x3c\x40\x9f\x7b\x86\xe2\x11\x94\x29\xe6\xcc\x90\xee\xd8\xc5\x9e\xbc\xcb\x50\x85\xff\xc0\x31\xf0\x7e\x90\xb2\x21\xea\xb8\xb3\x07\x4f\x41\x3b\x05\x6e\xd2\xfb\x45\xbb\x2e\xfa\x3c\xfe\x06\x0e\x97\x55\x01\x2b\x0f\x74\x81\x52\xfa\xd5\x17\xbc\x1f\x2b\xa7\x1c\xb2\x33\xd4\x03\x59\x76\x40\xc4\x6a\x01\x2f\x63\x4b\xf1\x5d\x82\x39\x83\xdd\x16\x6d\x9b\x18\xd6\x69\xbc\x44\x42\xd2\x7c\xd6\xca\xd7\x22\x87\x03\x41\xe3\x4e\x82\xe8\xb0\xdc\x13\xcb\xd6\xdd\x0f\x25\xb5\xbe\x80\xbd\xa6\x39\xf0\xf8\x63\x15\x71\x00\xcf\x4a\x3c\xa6\xd6\x07\x07\xb1\x66\x04\x26\x00\xc1\x9a\xe8\xaf\x42\x62\x8d\x7f\x6d\x8b\x6e\x3e\x96\x7f\xaf\xc0\xcb\xd5\xbf\x03\x6f\xdf\x2f\x06\x16\x82\x67\x03\x7e\x5d\x5f\x64\x5b\x25\x6a\x21\x0f\x23\xc2\x96\x78\xae\xa0\x27\x48\xd5\xcb\x00\x6b\xec\x7a\xee\xa4\xde\xbd\x6f\xde\xf7\x6b\x31\x52\xe8\x54\xc1\xe9\x85\x26\xe9\xc5\xa1\x49\xbc\xf0\x10\x97\x62\xb5\xd6\xa5\x27\x61\x72\x40\x3b\xed\x37\xb6\x1c\x80\x8f\xbf\xe1\xbb\xc0\x9d\xa4\xf1\xfb\xe3\xce\x3c\x77\xa6\xfc\x43\x93\xd2\x65\x3b\x4c\x93\x3f\x08\x74\x37\xeb\x57\x22\xe6\xfe\xb3\x6d\x04\x9a\x11\x1c\xff\x1c\x54\x60\x9e\x4f\x60\x38\x80\x38\x3f\xff\x86\x51\x09\xf3\x45\x87\x49\x7b\x06\xe4\xa2\x43\x49\xb2\x04\xd2\x58\x6b\x7b\x48\xe5\xba\x79\x67\x1d\xe4\x10\x9e\xd1\xe4\xd1\x7c\xeb\x7a\x99\xe0\xaa\x1c\xae\x5a\x47\x06\x2d\xb1\xb6\x7f\x3d\xf0\x73\x19\xed\xb2\xe6\x83\x2c\x67\x4f\x16\xea\x9f\x22\x6f\x5c\xe5\x30\x15\xbb\xb2\xa9\xe6\x38\xbc\xe6\xe5\x0e\x23\x3c\x05\x55\x8e\x2c\x63\xd6\x00\x12\x20\xdc\x65\x1a\x7d\x5f\x7b\x2b\x3b\x6e\xdc\x23\xb2\xd4\x78\x76\xe5\xac\xb2\xd1\x2d\xac\x8c\x9b\xef\xbb\xe6\x33\xaa\x20\x6d\x63\x2a\x6d\xdd\xaa\xc1\xdf\x65\xf6\x93\x8c\xb1\xc7\xfb\x68\x03\x12\x06\x8b\xfb\x8c\x1d\x1e\x01\x0f\x89\xae\x34\x23\xa4\xbf\xcd\x05\x4d\x1e\x16\xd4\xe1\x54\x16\x0f\x6d\x69\xd5\x69\x19\x20\x05\x1a\x6f\xa5\xe4\x5b\xed\xfc\x5d\xdf\xdc\x34\x6a\x0f\xdb\xe7\xac\xa1\x11\x7e\x13\x6e\x92\xf8\x6e\xc0\x6b\x5b\x8f\x83\x09\x14\x2c\x7a\x02\x80\x93\xce\x78\x84\xf9\x47\x26\xc4\xb1\xb2\xb7\xfb\x27\xe9\x98\xcd\x40\x50\x7b\xf8\xfb\x49\xc4\x93\x13\xcd\x90\xdf\x19\x3e\xa3\xae\x95\xc1\x3f\xe0\xf6\xb2\x6a\x9e\x86\x9f\x67\x7a\x32\x56\x45\x90\x03\x6c\xbd\x52\xe1\xdb\xde\xb9\x6d\x5b\x90\xef\x6b\x92\xe7\x1c\x7b\xe8\x6f\x82\xca\x5a\x80\xcc\xd6\x72\x19\x93\xce\x1c\x08\x26\x79\x58\xdf\x5a\x92\xd3\x07\x1b\x11\xf8\x0d\x75\x2b\x92\x03\xdb\xe3\x0b\x91\xac\x8a\x19\xb0\xad\x75\x3e\x75\xdb\xa7\x9a\x6a\xb1\xf1\xb8\x79\x96\x91\x27\xb4\xb9\x88\x1d\x6e\x2d\x67\x98\x9b\x8d\xe1\xfd\x64\x88\xa3\x04\xfe\xdc\x98\xff\xd2\xb4\xf1\xf8\x37\x4b\x1b\xab\xdf\xdf\x69\x63\x0f\x6f\x7f\xf6\xb9\x3d\xea\x1b\xd3\x4c\x2d\x78\x8d\x45\xea\x41\xb8\x13\x5a\x78\xd4\xa4\x65\x03\xc1\x59\x42\x04\x5f\xeb\x83\x8d\xab\x3a\x5b\x84\x23\x3e\xcf\x4e\xab\x00\xa6\x12\x34\xb7\x28\xac\xc2\x92\x64\x6e\xc8\x92\x90\xbb\x5e\x2d\x4a\xdb\xce\x47\xc6\xa6\x5b\x9a\x9e\xf4\x0a\xd2\x28\x49\xe2\x67\x99\x0b\x24\xec\x2d\x9b\x44\x99\x75\x55\x25\x45\x01\x04\xdd\xc8\x96\xc5\x08\x74\x85\x7e\x7e\x38\xf1\x9a\x29\x5f\xcd\xb0\x57\xab\x7d\x83\x9b\x01\xcd\xd7\x1b\xed\xae\x58\xc4\xaa\xb0\xf0\xca\xeb\x4e\xde\x10\x7e\x90\xe6\xf5\xe3\x95\x66\xa9\x5a\xc6\x9e\xca\x0a\x4d\xcd\xa8\x9f\xcf\x9b\x6f\x36\x1e\xc1\xe4\xe1\xf6\x58\x83\xc3\x66\x42\xa4\x8c\x9b\x06\x58\xc1\xa8\x38\x1b\xf5\x12\xf3\xde\xd9\xb4\x4a\xab\xa1\x4e\x4b\xe8\xc1\x59\xc7\xa4\xc8\x64\xa9\x6d\xef\xea\x5a\x29\xb2\xac\x71\xde\xb1\xba\x7b\x1c\x8a\xb6\x73\xfe\x6a\x9e\x66\xd9\xa7\x6b\x7b\xaf\x75\x57\x0c\x66\x98\xbe\xe6\x1c\xf6\x0b\x2b\x08\x60\x23\x81\x8d\x49\x89\x1d\xa1\xa7\x96\xe5\x60\xed\xe1\x20\x63\x4f\x21\x57\xde\xe2\x7b\xb9\xdf\x60\x29\x74\x22\x48\x27\xff\xdc\xc5\xc9\x71\xed\xe1\xa1\x71\x83\x5e\x2d\xf7\xc3\xba\x2d\x5f\x31\x5b\x25\x78\x5d\x2e\x08\xf2\xe8\x8e\x93\x61\xe2\x36\xc3\xb1\x82\xb3\x43\xa1\x72\xf0\x58\xc9\xdb\x1e\x84\x40\xa4\xe5\x4b\x2b\xf9\xd0\xbc\xe4\x9e\xad\xdd\x8d\x96\x86\xb0\x17\x8a\x5b\xc3\x11\xab\x9e\x25\x87\x9a\x78\x44\xf9\x16\x1f\x61\x0d\x8c\x10\x4a\xa7\xc0\x64\xf5\x48\x1b\xa9\xa7\x40\x5b\xec\x63\x23\xeb\x1b\x19\xef\x81\x82\xbd\x8d\x28\x14\x1e\x19\x9c\x8e\xbb\x11\x68\x48\x99\xb3\xde\xba\x38\x63\x79\x55\xd3\xe3\x63\x48\x7b\x2e\x5f\xda\x99\xe2\xce\x3f\xe7\x90\x07\x3b\x70\x77\xf3\x91\xb7\x22\xbd\x5e\x27\x9d\xc3\x19\xe4\xbe\x3d\x1f\xb0\x27\xca\x27\x10\x7a\x48\xff\x88\x16\x84\x86\xb3\xfb\xa4\x63\x86\xbc\xf2\x17\x1d\x11\xa0\xf6\xd3\xc0\x85\xb1\xa3\xd9\x7a\x9a\x8d\xd3\x3d\x2b\x5a\xab\xf3\x4a\x74\x1a\xed\xe5\x7e\x77\xe8\xf1\x5a\x50\x5e\x32\xbe\x40\x33\xc5\xe1\x88\xe2\x01\x57\xf4\x97\xb9\x19\xd8\x51\xac\xd0\xa2\xf6\x8c\xe7\xbe\xba\xc8\x0a\xcd\xb1\x26\x2f\xa4\x00\x20\xbd\x3c\x6b\xd2\x20\xcb\xd6\xcc\x5d\xf1\x03\x17\x06\x4e\x6a\x32\xff\xea\xd3\xec\xdf\x2c\x8d\x2c\xc4\xbf\x03\x91\xa2\x37\x08\x61\x92\x6a\x51\xa1\x36\x1c\x49\x61\x6d\x42\xeb\xb9\xc9\x82\x67\x85\x62\x69\x39\x01\x76\x67\xe1\xe7\x16\xc5\x15\xd4\x99\x52\x3e\xa0\xbb\x93\x65\xd9\x2c\xcb\x2b\x62\xba\xf5\x39\x27\x66\x3c\x77\xb2\x40\x72\xed\x35\xca\x79\xdf\x41\xe8\x71\xe1\x31\x40\x3b\x8c\xa6\xd5\x00\x78\xdf\x97\x2f\xef\x2f\x19\x5f\x91\xc4\x4a\x13\xa7\x50\x70\x07\x6c\x0b\xb0\x3d\x41\x51\x4a\xf5\x57\x6c\x87\x13\x2a\x30\xcd\xd5\x63\x0f\xda\x0d\x4a\x67\xcb\x30\xc4\x2b\x85\xd4\xe4\x5e\xeb\x4f\x98\xbf\x9a\xf9\x5b\x94\x87\x0a\x3a\xfc\xc4\x3f\xaf\xcb\x69\x69\xbe\xa8\x5f\xdb\x70\x2e\x47\xf1\x00\x69\x4d\x98\x9a\x7f\xe5\x25\x95\xbe\xe4\x09\x0a\x87\xe5\x87\xa6\x1e\x2c\xcc\xfb\x76\xdc\xc2\x2d\xc7\x09\xbd\x32\xc2\x82\x38\x70\x88\x30\x42\xed\x7d\x44\x55\x3b\xc5\xbd\xf2\x75\xad\x05\x75\x43\x77\xf0\x1c\xee\x1f\xd5\x20\x29\x52\xe0\x18\x2c\x30\x56\x5d\x0a\xce\xf6\x85\xb8\x0f\x6d\x18\xdd\x62\x14\xea\x63\xc5\x6f\xec\xdf\x7d\x7e\x2b\x7d\x79\x57\xab\x03\x3b\x87\x63\xb2\x28\x85\x7f\xb9\x02\x63\xe2\x76\x38\xe5\xb3\x7b\x19\xe1\xb9\xef\xfe\xc3\xc4\xac\x02\x44\xa2\x94\x6f\xc6\xcf\xe9\x5a\x95\x4c\x66\xc4\x5b\xce\xd7\xf1\x09\xd4\xb9\xd0\x95\x18\xde\x9c\xcb\x54\x9a\xe5\xf5\x4d\xe3\x0e\xaf\x57\x67\xf0\x2d\x7e\xbe\xf2\xdb\xec\x71\xa6\x23\xee\x78\x0d\xa9\x92\x9b\x49\x81\x6f\x8c\x79\x12\xe4\x25\x02\x8a\x1f\x47\xd6\x81\x44\x53\x3c\x5a\x97\x33\x79\xf5\x19\x04\x37\x74\xce\x5c\x76\x71\x90\x84\x25\xbd\xf0\x33\x1d\x41\x81\x66\x5d\xf0\x30\x3d\x0a\x0c\xc8\x2e\xab\xa0\x58\x1f\x9b\x0f\x19\x81\x6a\x56\xbc\x37\x42\x59\xe7\x80\x24\x22\x7f\xcf\x33\x03\xa6\x06\x34\x28\x4b\xc6\xae\x69\x61\xc1\x76\xbf\xa3\x73\x18\x4a\x5f\xf8\x6c\x00\x8d\xc0\xce\x5a\xe9\xab\xef\x13\xa5\xa5\x24\x35\x3a\x7c\xf7\x80\x25\x45\xca\xb1\xdd\x67\x30\x10\xec\x95\x8d\x92\x00\x33\xfe\xe0\xca\x06\xf7\xb3\x9f\xd8\x8c\x98\xca\x2a\x74\xe2\x6e\x80\x08\xff\x31\x06\xb5\x8a\x34\x33\xda\x00\xed\xa2\xfc\x84\x61\xfa\xe0\x2c\xcb\x47\x15\x31\xf2\x5f\x4d\x8c\x2c\xff\x6e\x6c\xe7\xd8\xfc\xcd\x76\x42\x7f\xb2\x9d\x89\xed\xdb\x28\xbe\x26\x4f\x1a\x11\xfe\xc0\xa7\x8b\xa9\x45\x52\x56\xcf\x88\xd8\x8b\xd4\xc6\xb8\x2c\xb1\x65\x73\x7c\xee\x15\x24\x82\xcd\xbb\x22\x01\xd6\x6f\xe2\x7a\xd6\xab\xc7\x96\x27\xf3\xea\x98\x27\xb8\xec\x7e\xc8\x29\xd4\xba\xb4\xaa\xfd\x54\x72\xbc\x4e\xc0\x80\x8e\xf5\x27\xf5\x32\xfa\x50\x34\x45\x76\x1f\x3f\x4d\x23\x22\x7a\xde\xda\x60\xd3\x0e\x85\x01\xfc\x66\xe2\xd7\x11\x24\x16\xa5\xe8\x19\xb5\x51\x56\xed\xa2\x93\x01\xdd\x26\x75\x54\x7c\x65\x23\x24\x0f\x57\x12\xba\x4f\xa3\x2e\xdb\x32\xfa\x83\x34\x9e\x23\x60\x19\x23\x7e\x9a\xf6\xcf\xcc\x8e\xae\x47\x07\x0a\x29\x5f\x0a\x00\xa8\x39\xc2\xd4\x0b\x94\xc1\xbb\x60\x30\x9c\xa8\x91\xfe\x92\x69\x5a\x7c\x65\xb3\x3d\x99\x0f\x29\xee\x6a\xc8\x4c\x2a\x89\xa8\xcf\xd0\x70\x69\x06\x39\xa3\x72\x7a\xa6\x59\xa4\xfd\x75\x6a\x97\x3b\x86\x45\xc0\x3a\x25\xd0\x5f\x8e\xae\xe4\xef\x24\x0d\xdb\x16\x06\x10\x6f\x33\x22\xb2\x04\x48\x55\x4d\xb7\x95\xe5\x9a\xe8\x28\x62\x34\xba\x1b\x44\x6a\x09\xcb\xfa\x2c\xc1\xec\x08\x4b\x3a\xa4\x23\xb0\xbd\x67\x70\xd1\x97\x8b\x54\x30\xec\x96\x51\xf7\xef\x80\x77\x0d\x2a\xb0\xfd\x54\xc7\x04\xeb\x21\x40\xe1\x79\xc9\xad\xd6\xb1\x81\x4e\xbc\x2e\x3b\x27\x07\x2a\x89\x2a\x13\x4e\x49\x1b\xd7\xe1\x84\xaa\x76\x26\xe5\x6c\x84\xbe\x3e\x2c\x53\x00\x0a\xe9\x49\x1e\x81\xef\x60\xbe\x69\x85\x37\xff\x01\x70\x12\x17\xc1\x22\x73\xab\x6f\xa8\x4a\xf2\x0a\x82\x87\xa7\x71\xec\xec\x2d\xd2\x27\x83\x24\xb4\x29\x2e\x1d\x72\xa8\x4d\x40\x3a\xda\x6c\xc9\x9d\x87\x5d\x57\x3a\xa3\xdb\x67\x78\x02\x0f\x1f\xda\x37\x22\x38\xaf\x28\x74\x32\x5f\x37\xd9\x92\x98\x23\xfc\x6a\x61\x38\x25\x9d\x6f\x95\x5b\xb9\x4c\x98\x40\xc4\xce\xa8\x4b\x9e\xdd\xdb\xbd\x15\x47\x8c\x6f\x78\x7c\xde\x39\x42\xcf\xa4\xab\x75\x12\x40\x0b\x6e\x79\xce\xe8\x87\xa8\xe3\xa8\xae\xa0\x1b\x64\xae\xf0\x8f\xc7\x40\x23\xfe\xa9\x69\x94\x88\xe5\x06\xd8\x71\xab\xe6\xc4\x8e\x2a\x42\x9d\xa0\xc0\x69\x27\x3f\xd9\x67\x72\x46\x36\x00\xde\x17\xa8\x7a\x32\x60\xce\x7b\x53\xee\x1c\x2e\x40\xda\xdc\x97\x3a\x93\x57\x18\xf2\x13\x8b\xab\x46\x0f\x97\x7e\x31\x8f\x09\xe4\x25\x06\x0f\x4e\x28\xcd\x44\x19\x25\xa2\xe9\xfb\xb8\xf4\x8d\x98\x7e\x4c\xd4\x2b\x2a\xb9\xbe\xca\x68\xef\x4e\x00\x93\xcf\xbc\xd9\x7a\xb0\x2c\x59\x55\x91\xda\x7e\x6b\xe8\xba\x71\x08\xca\xcd\x17\x1d\x81\x37\x46\xf7\x18\x0d\x90\x3b\x9a\xd8\x45\x12\x56\xb0\x4a\x8c\xb7\x8d\x86\xd5\x4f\x87\x27\x8b\x94\x61\xed\x34\x8e\x15\x3e\x44\x45\x08\x46\xdd\x5f\xb2\xab\xbc\x75\x76\x2e\xcb\xa4\xeb\xda\xf6\xfe\xe2\xce\xe0\xba\x16\x10\x58\x5c\x34\x99\xa3\x7a\x7a\xd0\x15\xe3\x24\x0c\xf6\x51\x59\x4c\x4f\xfe\x9e\x51\xff\xda\x93\x77\x69\xfe\xcd\xea\xc8\xc6\xfc\xbb\x8e\x1c\x8e\x4d\x80\x84\xe0\x01\xc1\x5f\xc6\xa7\xb1\xb9\x5d\xbf\xaf\x50\xfa\x2c\xb1\x62\xa9\x7e\x12\x67\xe0\x34\x44\x51\x12\x42\x38\xab\x47\x2a\x58\x8a\xb9\x30\x8c\x29\x5c\x8a\xb1\x31\x4c\xb5\x6c\xd6\x05\x84\x7a\x86\x6c\x6e\x08\x34\xdf\x8f\x1d\x6f\xec\xfd\xe4\xb0\xfa\xf1\xcc\x3c\x75\x73\xe0\x12\x95\x91\x57\xf5\x04\xd5\x54\xf8\x1d\xb5\xff\x94\x7e\xa1\x97\xf7\x97\x17\x23\xc2\xe7\x45\x74\x4d\xa4\xfe\xf5\x8f\x28\x8f\x9c\xb2\xa5\xe4\x34\xd2\xe7\x50\x53\xaf\xfe\x83\xe8\x37\xb6\x4c\x1c\xe7\xeb\xee\x80\x6d\x03\x69\xed\x1d\x02\xd2\x08\xac\xb6\xa2\xa1\xb2\x2f\x44\x40\xef\x72\xd8\x89\xd3\x5b\x61\xcd\xc5\x47\xd7\x3c\x6f\x2e\x86\x2d\xa0\x87\xb2\x95\xec\xb6\x89\x4a\x9b\xed\xeb\x52\xf8\x59\x84\xd7\x70\x48\xc1\x31\x3f\xf3\xac\x08\x86\xcf\x80\xa1\x70\x70\x3b\xb0\x1f\x8c\xe5\xc4\xbc\x8e\xab\xe2\x5e\x31\xbb\x81\xf9\xa3\xc0\xb9\x5f\x8b\x99\x37\xe9\x39\xad\x51\x70\x71\x3f\x10\x6f\xa8\xbc\xa0\xc3\x46\x75\x1e\x00\xef\x03\xc6\xbb\xae\x21\x79\x21\x4f\xc5\x3a\x68\xe0\xf0\x7b\x64\xd0\x5a\x54\x8b\xac\xa6\x3d\x4a\xd0\x0f\x4c\x98\x15\xa8\x21\x7f\x94\x97\x39\x90\x91\x8b\xc5\xed\xb8\xa5\x5c\x9e\x16\x67\x18\x4a\x99\x91\x57\xfd\x3a\x7a\x95\xd3\x3a\x97\x51\x43\xa9\x6d\xb7\x73\xeb\x5a\x55\x0b\x45\xe3\x48\xb8\x6e\x5d\xdd\x47\xed\x91\xdd\x50\xb8\x2b\xd0\xd0\xa2\x01\x7c\x03\xa3\xa2\x46\x65\x98\x23\x93\xda\x6e\x60\xb7\x21\x9e\xb0\x65\x67\x4c\xce\x4f\x32\x6b\xce\x6d\x8d\x5f\xc8\xc0\xa4\xe2\x84\x98\xa5\xa4\xbe\x42\x65\xa7\x0c\x32\xaa\x21\x16\x10\xe2\xf7\x0b\x84\xdb\x16\xd6\x4d\xd1\x95\xe3\xa4\xc0\x33\x8a\x79\x90\x27\x1c\x53\x76\x46\x6b\xb5\x02\xe8\x4f\x76\xa1\xb9\xe8\x52\x4f\xf7\x10\x8c\x03\x64\x80\xff\xec\xe0\xaa\xd3\x5a\x69\x0f\x6d\x83\x70\x06\xcb\xad\x34\xd2\xd4\xc8\xfa\x1d\x30\x33\x87\xa4\x8c\x27\x4f\xd1\x14\x6b\x23\x7f\x6e\x56\xe7\x8b\x58\xae\x45\xb0\x0c\xcb\xe5\x44\x98\xd8\x8c\x4c\xfb\xfc\xc0\xfd\xde\x31\x76\x8e\x38\x03\x5c\xc7\x5d\xc0\xe3\x55\x40\x0b\xde\xe1\xb6\x55\x62\x92\xa8\x28\xbb\xf5\x57\x6b\x84\x14\xf0\x14\xa0\x84\x74\x58\x37\xac\x68\xc2\xee\x4f\xbd\xd0\xdd\xc7\x8b\x96\xbd\x39\x18\xaf\xa7\xbc\xae\x39\x5b\xd5\x44\x28\xe2\x6c\x93\x2a\xce\x09\xc7\x3b\xa7\x08\x97\x0f\x4d\xa6\x81\x1e\x4a\x86\x71\x18\xb5\x69\xa5\xf4\xe0\x69\xc6\xfa\x57\x0f\x3f\x2c\xd3\xbf\xd9\xf0\xc3\x78\xfc\x3d\xfc\x40\x1f\xd6\x1f\x35\x6b\x1c\xdb\x0b\xc4\x31\x41\x34\xaa\x19\x07\x61\x0f\xcb\x98\xa6\x2f\x02\xbd\xd6\x48\x54\xa5\xf0\x44\xba\xea\x60\x6d\x0b\x1d\x2d\x40\x83\x52\x11\x7c\x87\x42\xb2\x0e\xa1\xf7\xe3\x1c\xa1\xc2\x41\x8e\xb6\x45\x8f\x29\xc1\x7c\x4f\xff\x10\xab\x83\xbf\x67\x82\x47\x68\x56\x7e\xfe\xa4\xbc\x3f\x0a\x2c\x4b\x00\x81\xe1\x0f\x97\xf7\x11\xca\x92\x1a\xa1\x2b\x5d\x5a\x9e\x48\x51\x23\x36\x91\x3c\x5c\x61\xa8\x29\xd7\x1a\x9f\x8e\xae\x0a\x4b\xd6\x65\x3b\x4e\xe0\x46\x57\x0a\x8f\xc9\x8a\x76\x9e\xbd\xe4\xc1\x65\xfc\x19\xbf\xfd\x31\xe9\x6a\xca\x71\xd5\xbc\x21\x86\x93\xa4\x8b\x38\x6c\xef\x7a\x2f\x81\xd7\x84\x39\xfa\xe1\x09\x65\xc9\xb2\x95\x69\xcb\x99\xdf\x18\x0b\x1d\x68\x5a\x4f\x03\xc6\xa9\xf6\x8e\x24\xbd\x13\x9e\xd8\x4e\xc0\x96\x9b\xb2\xab\xa1\xfe\x3f\xec\xfd\xc7\xae\xc6\xb8\x92\x35\x88\x3e\x90\x06\xf2\x6e\x28\xef\xbd\xd7\x4c\xde\x7f\xf2\xf6\xe9\x2f\xf2\xe4\xb9\x75\xb2\x80\x6e\xd4\xdf\xe8\x6c\x20\x07\x35\xd0\x60\x6f\xf0\x5b\x22\x48\x46\xc4\x0a\x2a\x16\x59\x50\x1c\xcf\x76\x8a\xdb\xb6\xa1\x41\xe7\x71\x52\x86\x6b\xc2\x14\x32\x65\xa0\x66\xe3\x41\x87\xe3\xec\x62\x51\x97\x9a\x2c\xe4\xd7\xb8\x11\xd1\x9b\xb9\x60\x48\x9c\xb6\x66\xbf\x24\x8b\xf1\x3e\x39\x06\x2b\x66\x04\xdd\x62\x8c\x2a\x62\xd8\x7c\xa0\x1d\x61\xad\xa5\xc8\xef\x07\xe2\xec\x6c\xe6\x83\x65\x3e\x71\x95\x53\x7a\x12\x57\x20\x43\x33\xaa\x6e\x46\xdc\xd3\x94\x6d\xaa\x66\x0d\xaf\xd0\x7c\xda\xd0\xab\x32\x08\xef\xe1\x7a\x43\xb9\xfa\x9e\xe8\x1c\x92\xa2\x7b\x79\x53\x50\x7a\xd8\x19\xc0\x51\x40\xaf\x5d\x9f\xc3\xa7\xbc\x96\x8a\xe2\xf4\x40\x27\x2e\x54\x39\x25\x8b\x68\x13\x9b\x2f\x77\x3c\x1b\x28\x3f\x97\xb0\x37\xf0\xc0\x5e\x2c\x42\xb6\x70\x0a\xce\x97\xcb\xae\xb6\x8a\x5a\xf4\x59\xef\xa4\x59\x53\xf4\x0a\x80\xcf\x7a\x85\x85\x43\xe5\xfc\xde\x2e\x6d\x4a\x45\x46\x62\x82\x55\xc9\xd2\x5b\x1d\xbd\xde\x9a\xa6\xbf\x21\xc6\xb9\x6d\x00\x94\xaa\x86\x53\xe4\x65\x31\x67\x91\x69\x04\xc3\x82\xdd\x54\x9b\x49\xd6\x69\xdc\x0e\x7d\x4d\x08\x2f\x7e\x77\xc9\x40\xac\x63\x30\x8d\x88\x72\xc4\xf2\xcb\x4f\xb3\xa1\x11\x83\x66\x44\x1f\x2e\x3b\x8f\x6b\x89\x21\x07\x44\xe9\x9a\x11\xe3\xf9\xb1\x2c\x3d\x17\xe9\xb3\x60\xc6\x6f\x87\x8b\xb2\x42\x60\x94\xa5\xe0\x8a\x7c\x6e\xa6\x18\xb1\x7e\xc8\x32\x48\x09\xbc\x3e\x28\x75\xf5\x1e\x74\x48\xe8\x89\xd0\xbb\x98\x8d\x3b\xc8\x91\x82\xbb\xe1\x24\xa4\x4d\xfb\x25\x42\x40\xd1\xa1\x3a\x7a\xaa\x3b\xb9\x10\x9f\x3d\x40\xad\xd0\xfb\x99\x3c\xde\x8c\xc9\x63\xa4\xdc\x84\x81\x8a\xec\xf8\xe3\xe9\xa4\xed\xe2\x2c\x7f\xad\xdd\xaa\x94\x55\x22\xfd\x8f\xaf\x94\x64\x26\x04\x5e\x5a\x80\xd4\xce\x91\x41\xd3\x56\x99\x6a\x81\x69\x78\x3a\x05\x07\x79\x18\x84\x69\x15\xcd\xef\xc4\xbe\xec\x28\x5e\x91\x7d\x18\x3a\x35\x7c\xaa\x7d\x3d\xa0\xf8\x6b\xda\x45\x33\xa8\x9f\x1b\x86\x88\x7e\x21\x2b\x5d\xe9\xca\xe5\xd5\x0c\x63\x30\x59\x56\xfc\xc6\xb1\x10\xd9\x29\xf9\x9b\xa3\xfa\xf2\x0f\xcb\xa7\x87\xbf\x08\x38\x60\xf8\x5f\x51\xdd\xf6\x0d\xf2\xf5\xd2\x65\xfa\x7c\x9a\x37\xb3\x29\x62\x0e\xb1\xf6\x3a\xae\x6b\x36\x80\x79\x44\xfa\xd3\x8e\x0b\x6c\xaf\x1a\x64\x86\x0e\x10\x85\x8e\x98\x2f\x4c\x39\x22\xd9\x96\xba\xbb\x63\x03\x6d\x0e\xd6\xd5\x0f\x54\x65\x9a\x5c\xd4\x20\x8d\x0f\x3d\xa0\xc1\xac\xe0\x09\xd3\x95\xbb\x00\x08\x1c\xa7\xf1\x6f\x7c\xc6\x5e\x50\xbf\xd2\xc5\xcf\x1a\xff\xe9\xd3\x7e\xa5\x0f\xd1\x78\xd7\x51\xd2\x11\x9d\xf7\xad\x48\xf6\x0d\x5e\xca\xf4\xcf\x2d\xc0\x7b\xa5\x92\x38\xf3\x3d\x75\x39\x72\xe8\x19\xc6\x87\x54\xd2\x59\x0b\x84\x0f\xfe\x54\x84\x0f\x02\x82\x06\x51\xf2\x12\x93\x8d\x7f\xaa\x46\xa5\x03\x68\xe4\x00\x66\x56\x94\x50\x6a\x68\x4e\x07\x2e\xc5\xca\x6d\x8c\xd2\x78\xe7\x47\x3e\xd0\x1e\x75\xe1\x4f\xdd\x7e\x02\xdf\x90\x9a\x34\x00\x1d\xc8\x14\x58\x17\x18\xa0\x4b\xb2\xfb\xb4\x79\xde\x73\xc4\x46\x9d\xa1\x31\x59\x8d\x14\xa0\xf5\x35\xaa\xd5\x81\x0a\x74\xae\xea\xdc\xd8\x0d\xf9\x05\xc5\xba\x6f\x24\xb9\x4c\x9a\xa0\x1b\xeb\x82\xe1\xc8\x01\xb1\xc0\x23\xd9\xcb\xb7\xe9\x1b\x8f\x10\x0a\xb4\x26\x83\xfa\x8f\xe9\xec\xed\x28\xe9\xcc\x4f\xc0\xb0\x8f\x53\x74\xb8\x99\xe3\xf4\xee\x0c\xf3\x62\xe1\x8e\xf8\x72\x0e\xd2\x4e\x66\x7f\x4c\xc5\x8f\xee\xc6\x34\x12\xbb\xd2\x43\xb5\x13\x05\x8b\x66\xb6\x5e\x66\xba\x6b\x63\x7a\xf3\x63\x37\xac\xc6\xae\x5b\x69\x4a\x89\xc7\x92\x80\xe1\xf6\x94\x13\x28\xe6\x48\xa4\xc8\xc7\x7b\x6e\x97\x9c\x1b\xbf\x85\x44\xfd\x6c\x70\xe9\x71\xf7\x4e\x7c\x06\xce\x21\xb2\x72\xa6\x3a\xa5\x6c\x68\x6f\xca\xcc\x40\xc4\x31\xb9\xa3\xc1\x68\x8c\x65\x24\x4c\x87\xb1\x50\x54\xd2\x0c\xe8\xde\x9d\xa8\x1e\x87\x16\x3e\x57\x29\x9c\xc2\x28\x1f\xf7\x8e\x1f\x9c\x77\x7d\xee\x3a\x6b\x50\xdc\x5b\x8b\xe1\xc8\x84\xc8\x0f\x7c\x39\x31\x1f\xac\x93\x02\x90\x43\x68\x80\xbd\x62\x4c\x5f\x4e\x90\x23\xbf\xa4\x11\xfb\xaa\xf1\x12\x02\x8d\x5e\x6f\x97\xdf\xf8\x5e\x12\x39\x80\xa0\xae\x3a\xa1\x9c\xb1\x4e\x35\x67\x7d\x66\x63\x87\x2e\xd6\xba\x8c\x99\xfc\xaf\xb8\x5c\x35\x08\x69\x81\xda\xac\x66\x65\xef\x75\x4c\x28\xc6\xdb\x41\x26\x2b\x73\x57\xcf\x29\xee\xab\xfc\x3e\xe4\xc6\xb5\x3e\x08\xb1\x64\x61\xf2\xd0\xc9\xb7\xe2\x72\xd1\x65\x93\x59\xdf\x88\xcb\x05\xed\xce\x13\x46\x9c\x4d\xd5\x8c\xe5\x21\xd0\x45\x7e\x83\x95\xae\xb5\x83\xd4\xbb\x76\x00\x90\x27\x38\x80\xa4\x7b\x8a\x10\x5c\xea\x04\x10\x7d\x9e\xb5\x08\xb0\x78\x48\x36\xff\x00\xac\x01\xb3\xba\xc4\xbc\x44\x0d\x4f\x86\xbc\xae\xb8\xe4\x40\x45\x76\x0e\x6f\xf6\x7f\x1a\xf0\xd6\x0c\xa3\x08\x99\x52\xc2\x13\x70\x9d\xe5\xdf\xfa\x2d\x76\xd9\xff\x61\xaa\xad\xf5\xaf\x65\x91\xb0\x21\x40\x42\x52\xe7\x47\xa9\x69\x91\x74\xcc\xca\xe1\x46\x8d\x2a\x33\x0b\xc7\x0a\x88\x02\x25\xe7\xdc\x79\x59\x56\xf1\x6a\x65\xa9\x2d\x06\x27\x26\xea\xd7\x7e\xf7\x14\xee\x6d\xd4\xc2\x40\x55\xbc\x2a\x31\x80\xd0\x40\x89\xef\xbb\xae\xd1\x40\x88\xa6\x89\xf3\xcc\xb1\xb9\x3f\x0e\xaa\xee\x91\x35\x69\x03\x27\xaa\xd1\xf1\x4c\x75\x91\x8f\xa6\x3f\x1c\xdf\x61\x12\x05\x4f\xc9\x80\x20\x3f\x1c\xef\xb4\xfe\xd4\xef\xe0\x69\xa4\xd3\x2c\x7c\x3e\x2f\x47\x72\x6c\xb9\x70\x78\x13\xa5\xa0\x6b\xe4\xed\x8d\xc0\xeb\x52\xef\x31\x2b\xc3\xe0\x8e\xde\xc5\x03\x78\x8f\xc6\x24\x67\xf2\x9e\x25\x6b\x5b\x9b\xeb\x5a\x74\x36\x13\xa9\x2b\xea\x61\x33\x60\x6e\xc9\x0f\x4d\xd7\x40\xa7\x1a\xbf\x02\xf0\xcb\x02\x20\x7e\x3d\xe7\xf4\x57\x45\x8c\x3f\xba\x7d\x26\x49\x1f\x66\x8f\xdc\x80\xe4\xb9\xc2\xdf\xf6\x49\xdf\xd8\xc4\x36\x6f\x7d\x41\x6a\xfb\xd8\x84\xf2\x07\xa8\x8d\xca\x29\xd3\x73\xd0\xc7\x89\x20\xa7\x29\x78\x5b\x8d\xe4\xa4\x1d\xe6\xa7\x85\xa4\xe0\xad\x9e\x03\xa2\x05\x00\xbe\x67\x79\x5a\xa1\x1f\x85\xc1\x40\xa5\x02\x09\xf6\xb6\x60\x80\x7c\xfc\x6a\x09\xdf\x87\x2e\xa8\x0a\x5e\xba\x1d\x01\x31\x7a\xe6\xee\xa4\x68\x14\x43\x93\xff\x80\x43\x79\xb9\x79\x50\x5b\x5b\x4b\xbc\x98\x94\xca\x0f\x51\x20\xb8\xb5\xd4\xf2\x97\xd0\x9b\x0a\x92\xc1\x6d\x4b\xbe\xd0\xad\xfd\x91\x4f\xea\x71\x63\x46\xf2\x90\x94\x07\x62\x51\x86\xb6\x78\x30\x5b\xc9\x6d\x97\x8a\xb5\x20\x71\x07\x1e\x30\xb5\x8d\x62\x53\xf0\x37\x31\x03\x6f\xd9\x45\xa1\x7b\x5b\xec\x8f\x5b\x74\x68\xb6\x18\x63\x32\x85\x56\x4f\x95\xc6\xab\xe6\xe7\x96\xbc\xa8\x10\xdc\xf9\x07\x1a\x34\x3f\xb3\xc3\xcf\x57\x4a\xd3\x31\x19\xe3\x67\x61\xb6\x12\x4a\x8b\x22\xc6\xc5\xfd\x2b\x47\x06\xb1\x0e\xa9\xc0\x0c\xe6\x99\x46\x84\x5c\x30\x46\x39\xc7\xc8\x53\x32\xda\x09\xb3\xb2\x4b\xbc\x59\x7d\xda\x95\x55\xbb\x4b\x6b\x5a\x3c\x2b\xd1\x81\x6e\xb2\x9b\x50\xcb\x91\xcf\xd6\x95\x5c\xf1\x5b\x31\x13\x4c\x44\x10\x39\xd3\x65\x8f\x4f\x9d\x81\x8d\x48\xc4\xa2\x0b\x36\x11\x85\xab\x63\x95\xc0\x75\x64\x32\x23\x0d\x13\x3a\xf9\x6e\x0f\x22\x18\x49\xd3\x22\x93\xc6\xa9\x5c\x31\xfe\xe6\xd6\xca\x9f\xe1\xcf\x3c\xd2\x33\x22\xdb\x60\x95\x94\x9b\x34\xcc\xd5\x0b\x3c\x44\x99\xcc\x5d\x13\x16\xaf\x14\xee\x03\x1f\xa5\xb6\x76\x4a\x66\x70\x58\x61\x3e\x73\xd4\x34\x37\x5e\xad\x19\xa5\x62\x4f\x77\x2b\xb6\x04\x7f\x24\x07\x71\x45\x95\xe9\x47\x08\x52\x28\x9b\x2b\x06\x35\xe0\x58\x7a\x85\x03\x97\xfd\x0d\x28\x15\x0b\xaa\x70\x0e\x18\x7c\x4c\xd2\x9d\x32\x35\x41\xec\x70\x68\xb5\xc8\x50\xad\xf7\x1c\xfc\x92\x45\x7c\x64\x19\xeb\x34\xa5\x7b\x06\x13\x95\xbf\xd0\xd1\x6c\xb4\x73\x5c\x10\x97\x78\xcd\x38\x93\x49\x40\x5b\xa0\x7e\x50\x43\x5e\x5b\x78\x37\xb2\xfa\x3b\x64\xfd\xec\xb8\x06\x12\x99\x01\x3a\xc5\x52\x5f\x8b\x45\x4a\x70\x47\x88\x73\x9f\x03\x7b\x72\x52\xb2\xb0\x2f\x60\x8a\x7f\xce\x3a\x38\x58\x15\xbc\x8a\xa6\xd9\x01\xb4\xeb\xc3\x0f\x84\xbc\x84\x61\x77\x55\xb6\x83\xe3\x04\xad\xe4\xfe\xbb\xd3\x92\xf7\x9f\xe5\x7b\xc6\xf0\x3f\xbe\x67\x38\x2e\x61\xfa\x83\x70\xd8\x9f\x1f\x88\x53\xa3\x6a\x48\xb0\xc6\x8e\x28\xa1\x0b\x43\x58\xac\xbe\x39\x4f\x36\xa9\x45\x96\xdc\xe7\x89\xf2\x0b\x34\xd2\x5d\xac\x5f\xe1\xe1\x9e\xfc\xd2\x1c\xa8\xaa\x24\x99\x1f\x7a\xd9\x73\xb8\xf2\xae\xae\xc8\x23\xa8\xac\xdc\xc4\x53\x57\x57\xb9\xd1\x0a\x5c\xfc\x69\xe9\x54\x01\x55\xf5\x07\xe9\x80\x89\x16\x01\x10\xee\x87\x14\x39\x12\xde\xaf\x3c\xc2\x08\x08\x5e\x36\x02\x7e\x96\x93\x89\xd8\xc9\x93\x52\x64\x12\x74\x05\xea\x73\x53\x9b\x13\x39\x04\xbb\xcd\x8a\x59\x9c\xdc\xb2\x51\x69\x90\x35\x2e\x8e\xa0\x32\x8b\xac\xfa\xe7\x3b\x7c\x1a\x4d\x95\x02\x4d\x59\x50\xae\x1b\x60\x60\x36\x1b\x76\xa1\x08\xdf\xc3\xf5\xed\x39\xee\x41\x97\xde\x5e\x4f\x69\x61\x64\xd0\xa6\x5c\xb4\xc5\x67\x6b\xb2\xd9\xe1\x73\xda\x3f\x1d\xe6\x4e\x38\x13\x72\xf5\x24\xeb\x4b\x49\x03\x65\xc6\xf2\xb5\x0a\x13\xf7\x2b\xde\x0b\xa4\x0a\xd4\xb3\x93\xe5\x16\xb8\x03\x2c\xa7\x13\xb3\x4c\x54\x28\x31\xff\x9d\x14\xa0\x75\x0a\x38\x5d\x67\x01\x10\x81\xd3\xd1\xf9\xfd\x27\x8f\xf7\xa0\x19\x7b\xa1\xfa\xcd\x88\x55\xaa\xd5\xd1\xf5\x93\xea\x95\x6d\xb6\xd2\x43\xa4\x8e\xeb\x8a\xab\x8c\x85\x7d\x9a\x49\xde\x05\x25\x44\xe1\x14\xaa\xbe\x6c\x19\x94\x36\xa7\x12\x55\xcd\xca\x77\x37\x39\x26\x2c\x9b\x86\xc4\xd3\x49\x03\xcd\x3b\xbc\xfe\x69\x78\x2e\xbc\x22\x26\x77\x74\xa8\x1b\xfb\x9c\x28\xa4\x4a\x08\x3b\x6e\xf7\x95\xdc\xff\xac\x11\x3f\xf3\x55\xce\x32\x55\x62\x85\xe1\xcb\x9f\x65\x74\x18\x4d\x69\xf8\x89\x95\xab\x81\xf7\x1b\x05\x58\x35\x6d\xd5\xf4\xcb\x64\x96\x66\x12\x9a\x77\x3d\xf5\x1d\xe6\x66\xf1\x87\x24\x58\xa1\x54\xba\xba\x0c\xfd\xcc\xe9\x43\xf4\x0b\x3c\x45\x44\xd5\x47\xf1\x94\x60\xe7\x7a\x66\x7e\xda\xc8\x54\x75\x56\x51\x77\x34\xa9\xe2\x1e\x84\xa8\x39\x49\x07\x4b\x4b\x08\x5c\x1e\x47\x01\xcc\x07\x63\x4a\x70\x08\x4b\x82\x12\x83\xe4\x60\x45\x54\xcf\x7b\x23\xa2\x0b\xed\x49\xef\x62\x01\x4c\x8d\xc4\xe1\x02\xa0\x8d\x35\xb4\x85\x8f\x79\x2d\x4d\x13\xda\x05\x2b\x7f\xb5\x63\x3d\x78\x87\x18\x62\xfe\x2e\xb2\x92\xf7\x10\x9f\xdd\xde\x05\xfb\xc5\x88\xfc\xc4\xfd\xae\x6a\x44\xce\xff\x52\x85\x49\xab\x89\xf0\x17\x3c\x31\x8c\xa9\x2b\x7e\xb8\xc5\x61\xe3\x77\x98\xd1\x71\xb1\x74\xd1\x00\xad\xc3\xb0\x47\xd4\x6b\x3a\xd2\xcb\xa0\x8f\x4a\x0d\x5b\x24\x7c\x2c\x08\xc4\x54\xf0\x06\xe1\x8d\x99\xca\x48\x46\x34\x74\x97\xce\x72\x38\x96\x36\xbf\x2e\xcd\x78\xd9\x53\xb0\xcd\xf4\xd6\x1f\x09\x1e\xf0\xd5\x0c\x92\x6a\xdf\x69\x5c\xd7\x5e\xc5\xf5\x03\xd2\x05\xd1\x47\x03\x3f\xcf\x77\x4c\xaa\x22\xaa\x9a\x12\x24\x86\x1b\x83\x0e\x5c\xe7\xce\x2a\xd0\xbf\xdb\x0f\xac\xff\xb0\xc4\xe3\xf7\x17\x3f\x40\x1d\x27\x04\x31\x81\x1d\xe0\xfb\x82\xc1\xe6\xf0\xb9\xcf\x52\x7b\xe9\xda\x41\xa1\xa2\x38\xab\x20\xa8\x41\x9a\xc4\x02\x77\xe5\x37\x17\x3d\xc9\x7e\xb2\x3c\xc0\xb0\x81\xb8\xf1\x1b\xf7\x8b\x58\x47\x50\x4b\x25\xea\x1a\xd6\xdb\x88\x65\x75\x55\xb8\xca\xdb\x67\x13\x68\x83\xcc\xd2\xc9\xdb\x1c\x6c\xc6\x21\xbc\x96\x8d\x5f\x6c\xdb\x76\x54\x4a\x5d\xa6\x28\xc9\xf6\x50\xb4\xa4\x2d\x26\x5f\x3e\x53\x3c\x04\x68\x26\xcc\xdc\xee\x03\x1f\x15\xc1\xde\x84\xc0\x40\xcf\x2d\x6a\x71\x38\xfe\x95\x55\x5b\x0f\xf8\x31\x19\xe5\x3f\x15\x80\x8a\xa5\x3e\x63\x6a\x72\x8e\x1f\x25\x35\x2a\xc6\xa4\x87\x22\x26\x88\xfc\xa1\xf5\xcc\x87\x6e\xd1\xbc\x07\x50\xb8\x72\xe1\x41\x0a\xe3\xb6\x00\x0f\x52\x12\x64\x2f\x53\xd8\x91\xfb\x54\x42\xa5\xbe\x03\x8c\xd2\xdf\x7e\x28\x74\x8c\x29\x24\x89\x73\x73\xf2\x28\xa4\xaf\xda\x28\x8e\x56\xcf\x31\x85\x35\xf4\x69\xa7\x50\x21\xa7\x58\x12\x4d\x02\xfd\x3b\xcf\x3a\x80\x6e\x86\xe5\x3c\x4f\x99\x8c\x3d\x12\x9a\xd5\x3b\xe7\x95\x01\x51\x1a\xdc\xef\x54\xf4\x23\xfd\x25\x2f\x67\x26\x4b\xfe\x57\xdb\x57\x14\x39\x19\x25\x9d\x56\x88\x2a\x89\xae\xc6\xd3\xfb\xf1\x9f\x84\x80\x5c\x9b\xa2\xcb\x9d\xcb\xa5\x83\x10\x24\xab\xa9\x73\x72\xf6\xa4\x27\x22\x86\xd3\x76\x22\xa5\x9f\xbc\x06\x4a\x35\xc4\x6b\x3e\xab\x29\xe6\x07\x2b\xb9\x9f\x0b\xc6\x17\xc0\x8c\xc9\x47\xa4\xce\xd4\x82\xe2\x68\x4a\xc3\xee\xac\x38\x32\x0f\xa1\x27\xd6\x47\x18\x4c\x71\xcd\x3c\x77\x30\xa1\x24\xd9\xda\xc8\x74\xca\x09\x8a\x38\x2e\xa2\xa8\xc8\x33\x44\x44\xa3\x82\xc5\x58\x46\x66\x58\x23\x99\x77\x9a\x7d\xbb\x07\x4f\x89\x73\x75\xf4\xf8\x9e\xd8\xb5\xcf\x1f\x4f\x3f\xc2\x35\x1a\xe4\x33\xde\x0f\x4e\x57\x39\x18\xc3\x79\x01\x8f\x74\x02\x16\xf3\x0b\x53\xe6\x41\x17\xd1\x3c\x19\xec\x9d\x49\x47\xe6\x90\x36\x4f\xd6\xdf\x79\x09\xe9\xd2\x77\xa0\x43\xc5\xa8\x76\x50\xc0\x26\xee\x85\x95\x60\xfa\x10\x33\x23\xac\x16\x12\xce\x77\x8f\x69\xe5\xb2\x9e\xc6\x24\x6d\x85\x66\x89\x5c\xa4\xd1\x8f\x1c\x61\xa1\xee\x5f\xfb\x5d\x0a\x8d\xd6\x1d\x29\xa3\x56\xee\x8a\xe8\x9e\x06\x8c\x2b\xcb\x76\xc7\x92\x33\xb7\x95\xa2\xb2\xdd\x4d\xdd\xa5\xda\x7b\x2e\x93\xa8\x26\x58\xec\x48\x7a\xbe\xf7\xac\xf9\x72\xd7\x15\x45\x36\x2f\x59\xc1\xf1\x3d\x6e\x8c\x21\xc9\x19\x0e\x11\xc1\xed\x98\xe3\x4b\xf0\x61\x08\xb6\x6d\x97\x01\xd4\x11\x11\x2d\xa1\x48\x66\xf3\x0f\xe7\x74\x88\x1f\x53\x63\x0f\x21\x72\x21\xcc\x43\x10\x0c\x5c\x49\xb5\xed\xac\x81\x5c\x0c\xf6\xc2\xee\x84\xf0\x24\xe8\x66\x05\xe8\xa7\xca\x8d\x95\x20\x61\x6c\x85\xc4\xd8\x35\xdd\x1e\x26\x34\x75\x6a\x4b\xea\xef\x39\xbf\xd7\x46\x6d\x4e\x65\xd3\x5d\xa8\x16\x9b\xa7\x35\x2a\xe0\x6f\x62\xf1\x26\x55\x1e\xfb\x36\xe8\x8a\x0d\x23\x3a\x73\x3e\x29\x16\xfb\xe4\xfb\xdf\x9a\xb4\x6c\xd9\xf6\x0f\x73\x18\xcb\x5f\x89\xc3\xbf\xb5\x5c\x04\x65\x35\xef\x98\xc6\x1d\xd4\xa6\x0c\xe7\x04\xb0\x2e\x68\x1a\x67\x14\xd9\x41\xf6\xbe\xfb\x73\xf6\xf8\xd9\x9d\xe3\xc2\x04\x10\x33\x48\xcc\x86\xbb\xad\x0b\x32\x93\xbb\x61\xb1\x79\x96\x9e\x53\x1d\x4d\x63\x02\x02\x02\x26\x6a\x52\x7f\xdb\xe4\x8d\x23\x16\x73\x7e\x41\x01\x34\x4e\x7f\x1f\x5a\x51\x94\x64\x15\x05\x95\xad\x74\x75\x71\xad\x25\x8f\xe0\x78\x19\xf3\x99\x5f\x51\x0c\x7e\x18\xc0\xde\xfe\x98\x5f\x37\x99\xc7\x65\x43\xe5\x64\x4b\xe8\x02\xdc\x48\x11\x60\x51\x14\xe7\x1a\x07\x16\xfb\xa3\x4b\x80\x5b\xf2\x14\x15\x1e\x5f\x68\x3f\xca\x32\x4c\xd7\xf6\xc0\x9e\x40\x13\xbd\xf8\x34\x16\x62\x8e\x46\x3f\xf0\x9c\x2a\xcd\x12\x0c\x55\xc4\x39\xf2\xe1\xc4\xfc\x60\xe8\xd2\x8d\x7b\x71\x4e\x34\xa9\xf3\x5d\x66\xb4\xa5\x20\x84\x33\x2d\xa0\x2d\x34\xbc\x4d\x87\xc4\x18\x8a\x77\x18\x25\x7d\x56\xe6\x64\x5a\xd6\x56\x0c\x31\x59\x9c\x90\x09\x59\x8c\xb3\xbd\xb4\x17\xbe\x0b\xbe\x2b\x19\x3f\x72\xde\x31\x01\xd5\x41\x98\xfc\xc4\x28\x6a\xfa\x7d\x4a\xce\x30\x0c\x3a\x83\xa1\x86\xd8\x37\xaf\xce\xe4\x86\x8b\x2f\x99\xba\xe7\xd5\x61\xb6\xe8\x11\xc0\xaa\xc4\x65\x98\xf0\x94\xda\x10\x6c\x50\x9c\x16\x4f\xb1\xf3\xe7\xe9\xa3\x1b\xbd\x5d\xd1\x84\xda\xe0\x1b\x4e\x74\x07\xa3\x28\x42\xd6\x5c\xe1\xa2\x62\x0f\x38\xc9\xf2\xa4\x04\x79\xdd\x7b\xbf\x3d\x4f\xe5\x1c\xff\xca\xbb\x35\x54\x55\xe5\xa2\x5e\xf0\x08\x83\x6b\x4d\x01\xc1\xd6\x4e\x22\xaa\x86\x5c\xb7\x51\x1c\x52\x55\x3d\x04\x5b\x0e\xa3\xa1\x6d\xf8\xfb\x56\xf8\x8e\xf7\x3d\x29\x08\xfc\x20\x29\x64\x08\x41\xca\x3d\xa9\x6c\x24\xfa\x9a\x61\xbc\x6e\x90\x9f\xd8\xe4\x16\x35\x90\x90\xe7\x96\x25\x30\x65\x2d\xef\x53\xf0\x15\x3c\x7e\xea\x8e\x2a\xeb\x1a\x7b\xbf\x52\x34\x07\x09\x31\x77\x79\x35\xe9\x2b\x6c\x0a\xa3\x44\x92\x06\xaa\xd0\x09\xa4\xde\xa8\x48\x69\x42\x30\x9b\x9e\x02\x54\x0e\x4a\xfb\x08\xa4\x56\x38\xbe\x06\x3b\x41\x0f\x14\x37\x23\xbc\x9b\x9d\x02\xca\x5b\x7e\xee\xfc\x66\x2d\x30\xe9\x2f\xd2\xed\x79\xc4\xde\x95\xe0\xa9\xc2\x8f\xa5\x57\x00\x76\x0d\x3a\xc8\x69\xc9\xb1\xa2\x81\x61\x1b\x4a\xee\xdd\x0d\x29\xe9\xa4\x85\x5a\x7f\x64\x47\x77\xaf\x7f\x00\x8f\x5d\x0d\xc4\x5e\x01\x47\x6f\xe9\x2a\x70\x81\x7a\x0e\xa4\xff\x6d\xf0\x97\xb5\x5c\x32\xb2\x84\xac\x32\xae\x60\xdf\x75\x9e\x1b\xec\xa7\xb3\xdf\x9e\x07\x5a\xa8\x40\x2b\xdb\x38\x43\x01\x78\x4f\x13\x05\x49\xa6\x30\xab\xb5\x68\xb7\x16\xab\x44\xde\x48\x63\x96\xf1\x21\x98\x5c\x72\x26\x9a\xdb\xc1\xef\x9a\x5f\x87\xde\xa6\x56\xab\xd2\x80\xb9\x6b\xde\x7d\x31\x8a\x0a\xa3\x57\x36\xba\x67\x6f\xde\x9e\x94\xc7\x61\x21\x2b\xdf\xbf\x96\x8d\x63\x45\x9b\x8b\xc4\x8d\x79\xda\xf9\xd8\x0e\x8b\x9b\xa2\x9d\x86\x92\x06\x74\x80\xf3\x19\xc6\x58\xef\x17\x48\xbf\xf1\x64\x9b\xbf\x77\x8b\x73\xcb\xff\x59\x7e\xa3\xfb\xff\x6f\x76\xac\xc2\xbf\x12\x8e\x51\x08\xc0\x29\x6b\xf0\x1a\x79\xd5\x36\xd6\xef\x47\x39\xa0\xa1\x5b\xf7\x50\x88\xcf\xde\x06\x18\x1a\xc1\x8b\x13\xb6\x8b\x0a\x8d\x8e\x38\x3c\x92\x53\xe5\x44\x52\x3b\xfc\x04\x32\xb7\xd0\x51\x16\x37\xd4\xaa\xd8\x1f\x8c\xc2\xa2\x45\x0a\xa0\xd3\x70\x9e\x55\x15\x1f\x8a\x29\x9f\x6a\xab\x22\x51\xb4\xb6\xe0\x24\xe7\x95\xc8\xa3\x00\xb0\x81\xcb\xb7\x08\x63\x32\x02\x9f\xd7\x42\xaf\x72\x3f\x43\x6d\xbd\x7e\x02\x29\xa7\x08\x0a\x91\x14\xba\x8d\xef\x4c\xe6\x21\xdb\x15\x9e\xf4\xd6\xfd\x1e\xde\xf3\x37\x4f\x61\xae\xd8\x15\x58\x00\xe2\xb4\xdb\x72\x3d\xbb\x9a\x5a\xc2\xb2\x4f\xb6\xb1\xcc\xa6\x7d\x98\x33\x58\xc6\xc0\x98\xf9\xe3\xe9\x9c\x43\x42\x97\x6a\xee\xf3\xb1\x3b\xdc\x7b\x50\x9a\x5b\x00\x03\x8a\x03\x1b\xca\xda\xd6\x86\x7b\xbd\x8d\x48\x59\xe4\xb1\xef\xab\xd0\x9c\x46\x15\xfd\x88\x93\xf7\x0d\xb5\xd1\xa5\x40\xbc\x15\xf3\xdf\x65\xd1\xcd\x31\x6e\x92\xd7\x5b\x22\x60\x2d\xf1\x90\x5c\x5d\xf4\xce\xd4\xc4\x79\x98\x4b\xe4\xab\x85\x2d\x14\x71\x4d\xe8\x85\xd5\x1c\xc6\x6f\x76\x7d\x63\xe7\xaf\x87\x63\x93\x50\x2f\x36\x73\x8e\x9e\x6b\xbf\x20\xd6\x30\x74\x0f\x03\xec\x36\x45\x95\xc1\x50\xff\x02\x59\x12\xad\x4a\xe7\xf6\xa7\x5a\x69\x99\x9e\x0b\x75\x22\x28\x6d\xa6\x87\x95\x50\xf4\xb4\x96\x2b\x99\x82\x51\xe8\xed\xd7\xb3\x1d\xd3\x1f\x6c\x22\x9c\xa8\x24\x54\x2d\xbc\x6b\x2a\x94\xc4\x2e\x41\xed\xa1\x72\xf6\x9f\xd2\x7e\x77\x42\xf1\x02\x2b\xa7\x6b\xa7\xbb\xda\xd0\x15\x0e\x5f\x5f\x0c\xfb\x64\x9d\xe3\x17\x58\x02\x72\x04\xbe\x70\x56\x7c\x17\x7d\x31\x8d\x97\xda\xc8\xc7\x78\x77\x58\xb5\x24\x5d\xdd\x39\x51\x33\xcd\x7a\x7a\xdb\x11\x21\x3b\x12\x44\xea\x4d\x61\x35\x9a\x05\x05\xcd\xc8\x68\x96\x7f\x80\x02\x00\xd1\xf5\xcd\x74\x41\x14\x90\x0e\x23\xd0\x4f\xa0\xa1\x7d\x7e\xcd\xd3\xde\xed\x4b\x1a\xca\x46\x28\xf0\x5e\x5a\xca\x33\xbd\x71\x29\x88\x85\x8a\xa1\x31\x27\x14\x4b\xfd\x12\x90\x25\xe2\x51\xed\x00\x2d\x9c\xa0\xcb\xc2\xb7\xf5\xda\x8f\x73\xac\x44\x9d\x79\x80\x7f\x4e\xd8\x7d\xbb\x3b\x98\x70\x3d\x33\xf8\x99\x36\xc5\x03\x29\x56\x5e\xbf\x12\x6c\x76\xc4\x05\x74\x96\xda\x07\x8d\x6d\x52\x70\x71\x88\xaa\xfc\x00\xcc\x25\x3a\x66\xa8\x47\x9c\xc9\x19\xac\x3e\xa5\xdb\xe5\x6e\xd7\x3e\x4e\x3f\x03\x04\x48\x3d\x00\x8a\x82\x1c\xdd\xad\x8f\x5b\x0a\x1c\x43\xdd\xd5\xf0\xf9\xd2\xa3\xb8\x19\xad\xbd\xb3\x9e\xf2\xa0\x40\xc6\x49\x98\xef\xa2\xd6\x7c\x3a\x89\xab\x11\xfe\x66\x7b\x3e\xfe\x61\x95\x4a\x15\xfe\x1f\x83\x86\x60\xfb\x5f\xbb\x97\xbf\x74\x2a\x71\xd1\xbb\x1a\x3d\x11\xcf\x3b\x3a\x68\xa1\x91\x5f\x21\x9b\x1f\x82\xaa\x78\xb5\xba\xe4\xeb\x56\xc1\xd6\xb7\xe5\x0b\x36\x41\xa7\x49\x11\x93\xc3\x1a\x74\x08\x18\x47\x13\x35\xa9\xed\x43\x6d\x75\xb7\x2b\xff\xb9\xe3\xaf\x3d\x10\x02\x11\xe5\xfa\x05\x5e\x8a\x22\x49\xdb\x36\xa8\x8f\x84\x17\x8e\xd3\x5a\x0c\xfc\x63\xba\x36\xb5\x8e\x85\x0f\x21\xc2\xbe\x46\xa6\xdf\x6e\xe2\x9b\xad\x69\x51\x1e\x2e\x0f\x09\x54\x1a\x1e\x9f\xc8\xf0\x1a\x87\xe9\x97\x78\x49\x19\x65\xdb\xa9\x34\x6b\x59\x64\x76\x88\x0a\x9d\xf5\x2f\x1c\xbc\xcc\xea\xd9\x8a\x6b\xb8\x44\x3a\xcd\x66\xd5\x9a\xb2\x61\xb0\x64\x1d\x83\x41\x74\x09\x9a\x68\xe4\x89\x26\x50\x7c\xed\xfc\x98\xf6\x76\xa7\x49\x1d\xf2\x87\x30\x08\x0f\x07\xa2\x49\x43\x84\xeb\x5c\x90\x82\x7e\x83\x01\xf9\xfd\x34\x06\x8a\xc3\xc2\xeb\xa4\x98\xa9\xe0\x01\xcf\x2b\x1b\xee\x00\xcc\x15\xb9\x78\xfd\xd9\xef\xcd\x82\x8c\x16\x7e\x1a\x8a\xb9\xbd\x6c\x26\x63\x13\x6a\x9c\x8c\x43\x37\x29\xb0\xec\xdc\xe4\x7e\x06\x32\xa1\x81\x7b\x0d\x5b\xfe\xa0\xa6\x40\x18\x83\xef\xed\x3d\x17\xed\x0f\x79\xde\x8a\xce\xf6\xbb\xf2\x88\x1f\x60\xfa\xb9\x44\xb1\x1c\x57\x07\x87\xde\xd7\x35\x12\xcd\xe1\x2f\x5c\x18\x99\xf8\x88\xd6\x08\x0e\x55\x40\x85\x77\x48\xea\x45\xc4\xae\xa0\xd3\x51\xc7\xf4\x48\xd1\xa8\x3c\xc6\x71\x59\x39\x42\x37\x58\x5e\x69\x98\x05\xc2\x99\x75\xdc\xbe\xc3\x00\xe1\x11\xf7\xeb\x23\xe4\x8f\xec\x27\x32\xb9\x71\x4b\xa6\x11\xa6\x50\xb5\x88\x96\x30\x6f\x96\xdb\xaf\x7d\xc1\x31\xce\x59\x9a\x72\xa6\x09\x99\xb9\xd8\xc4\xa3\xec\xde\x43\xc4\x67\x38\x61\x56\xe3\xf5\xf6\x35\x6b\xcf\x51\xf6\x70\x91\xb3\x98\xd2\x87\x31\x17\x9b\xa5\xd4\xa0\x7d\xed\x9f\x1c\xf1\x19\xbf\xd4\x2a\x5c\xa5\x22\xa3\x7f\xaa\x8a\x19\x9a\x85\x1b\xc2\x71\x61\xbe\x17\xb3\x64\x08\xe6\x1b\xd5\x39\xba\xf1\x01\xd9\x38\xb9\x69\x94\x5f\xf3\x8c\xaf\xf4\xea\x8e\xcf\x5d\xdd\x5c\x53\xc5\x79\x85\xae\x5b\x68\xe1\xe9\x10\xf0\x20\xdd\xab\x92\xab\xdb\x99\x35\x11\x9c\xd5\xd1\x88\x1f\xc0\x7c\xfe\x24\x15\x7d\x4e\x2e\x0f\xf1\xdb\x76\xa8\x16\x10\xdf\x8a\xc1\xb0\xd1\x42\xff\x3c\x40\x6c\xb2\xf9\x6f\x65\xe1\x7b\xb6\xff\xc3\x2a\xe1\x5f\x75\x09\xc5\x16\x8a\x04\xd8\xb0\x26\xf3\xca\x3d\xbc\xfd\xb3\x3d\x8e\xe5\xf1\x9f\xd5\xc7\x0c\x7f\x83\x95\xcc\xb6\x09\x72\x8c\x25\xc7\x76\x69\x54\x2e\x79\x0f\x75\x24\x79\x82\x4a\xc7\x2e\x29\x0f\x75\xe1\x17\x9a\x86\x00\xdf\x0e\x12\xce\x59\xd0\x12\xc5\x14\xfa\xd5\x80\x07\x09\xba\x6c\xc9\x37\x0e\x4a\x4f\x01\x0a\xff\x60\xd6\xaf\x3d\x0a\x09\x1e\x4b\x49\x68\x2a\x09\xde\xf3\x9f\x41\x54\x3c\xd4\x25\x91\x7b\x25\x53\x40\xfc\xf1\x77\x1e\x85\x50\xe2\x51\x9d\x22\x37\x44\x25\xc1\x77\x29\xed\xb4\x32\x88\x43\x8e\xa8\xa3\x22\xb6\x66\xc0\xb1\x7c\x8e\xaa\xa3\xc2\x07\xa7\xf1\xc2\xbd\xc1\x0b\x8f\xc2\x27\x88\xde\x0b\x90\xe9\x27\x88\xe1\xdd\x8d\xd1\x33\x8f\xd1\x51\xf7\x1f\x8f\xd9\x41\x8f\xc9\xcf\xb0\xd9\xcf\xaf\xf9\x32\x8d\xc2\xfd\xfb\xe9\xb1\xc6\x96\xd5\x21\xed\x17\xcf\x15\x92\xff\xea\x4f\x31\xb9\x93\xed\xa9\x73\x29\xbb\xb7\xd5\x51\x57\x89\x96\xa8\xfe\x2b\x3e\x7d\xa2\xdf\xf4\xa5\x1e\xcb\x1f\x70\xfd\x63\x5e\xfd\x53\x5e\x3d\x56\x87\xb4\x83\xbf\x2a\xc2\xa1\x24\x6e\x8e\xfc\x67\xf4\x7f\xc1\x15\xd2\xd8\xfc\x23\x94\xdd\xa5\x34\x5e\x79\xc7\xbe\xa9\x94\x10\x49\xa4\x5e\x65\xec\xd0\x4a\xa7\xfc\x67\x0c\x24\xf8\xfe\xeb\x3b\xf3\x9f\x71\xfe\x7b\x4c\xce\x04\xa1\x0f\x1d\x6d\xdb\x82\xa3\x1e\xbd\x67\x2e\xa5\x63\xb1\x3c\x7a\xce\xe2\x5b\xb0\x3c\x66\x4d\xdf\x87\xba\x4c\x76\xa1\x82\x9f\x2f\x1d\xc1\x3f\x7d\xfa\x73\xac\xf4\x7f\xcd\x27\x8d\x25\x31\x73\x19\x1e\x76\xeb\x08\x7c\xe8\xef\x7f\xde\x59\xa0\xae\x97\x46\x09\xad\x4c\x2d\x54\xca\x0c\xa1\xbf\xf4\x59\xbc\xff\x35\xff\x7d\x8e\x40\x57\x25\x89\xb7\xfe\x09\xa7\xc1\xd1\x5f\x28\x8f\x77\xea\xd1\x5e\x1a\x9b\x57\x19\xab\xfd\x1f\x6b\x29\xed\x8c\x4e\x91\xdb\xa3\xe0\x17\xbe\x98\xc2\xb6\x94\xe8\x37\x94\xe8\x2b\xe7\xa1\xce\xf9\xb3\xff\x4d\x20\xb5\x57\x29\xd1\x5f\x26\xd1\xb7\x22\x98\xbe\xd9\x31\x73\x88\x8c\x67\x2a\xd1\x68\xf1\x0e\x7f\xfe\x5e\x80\x4d\x6b\x18\xcf\x02\x75\xdb\x7c\x32\x47\x2f\x70\x68\xe5\x8f\xb5\xc2\xe1\x4b\x16\x39\x84\xc1\x9b\xbc\xe1\xb3\xac\x01\xa9\x92\xe1\x0b\xb8\xe1\x8b\xa2\xe1\x37\xa8\x09\x99\xa2\xe5\x2b\xaf\xe1\x3b\x88\xf3\xb5\xac\x39\x38\x7f\xc1\x73\xaf\x04\x0d\x8f\x34\xc2\xa1\xbf\xe0\x0d\xff\x1d\xcf\xfc\x1f\xf1\xec\x8e\xa1\xfe\x98\x1f\x3f\x80\x08\x57\x0a\xdf\x2c\x4e\xc7\x54\x48\xdf\x1c\x81\x9a\x7f\x8f\x21\x91\x45\xf8\x57\x4a\xe2\x99\x20\xa1\xea\xf2\x50\xf7\x47\x7b\x7d\x1a\x97\x94\x9f\x6f\x03\x32\x1e\x43\x10\x3e\x2b\x48\x1e\xc3\x1f\x1e\x23\x08\x1e\x8b\x2f\x50\x07\x0a\x70\xa3\x57\x1e\x93\x4f\x79\x4b\x10\x10\x97\x53\xfe\x0b\x2f\x95\xe8\xbe\x8c\xe0\x31\xff\xb9\x7f\xc1\x73\xff\x1b\x9e\xf3\x3f\xe3\x5d\x7f\xf4\x5d\x47\xff\x2f\xd6\xe2\x1f\x6b\x94\xa3\xff\xb5\x1e\x83\xc1\x95\xfe\x6c\xf7\xa7\xbd\xfd\xcb\xfe\x7c\xac\xb1\x79\x1a\x2b\x24\xb1\xcf\x90\x10\x52\xa4\xf0\xfc\xc3\xce\x8b\x4e\x01\xed\x99\x44\xe2\xa0\x60\x18\x46\x2d\xfe\x75\x45\xb2\xdc\x67\xad\xa8\x96\xfe\x63\xb2\x22\x0f\xe7\xef\x50\x80\xc7\x71\x95\xc7\x71\x44\x52\xa3\x40\x79\xb2\x05\x0d\x9f\xce\x66\xb2\xba\x2a\x04\x63\x83\xe1\xc6\xf2\x75\xb3\x60\xeb\xf8\x32\x78\x8b\xad\xe1\x0a\x6a\x2d\xb2\xce\xc3\xf6\xad\xe1\x2a\xa2\xe0\x78\x1c\x33\x3a\x8f\x96\x48\x4d\xd3\x05\x68\x85\xca\xf9\xaf\x8e\x91\x5c\x3c\x60\x21\xa0\x07\x7a\xa2\xa7\x7c\xfc\xf0\x05\xfb\xc6\x4f\x34\x85\x27\x99\x96\xb3\x02\xfb\xc9\xf7\xd2\x1b\xb7\x53\x66\x84\x0d\xe6\xe6\x7d\xa8\x20\x2d\x12\xb9\x2f\xbb\x3c\xcb\xca\xcc\x06\xdb\x3c\xac\x14\x3a\x76\x83\x2c\xae\xaf\xb4\x0a\xfc\x35\x71\x9d\x67\x76\x5f\x74\x19\x75\xd8\xc1\x81\x43\xec\x47\x74\xc3\x0a\xa5\xbd\x8e\xa8\xb1\xfc\xad\x3e\x02\x11\x16\x46\x90\xc1\xc6\x34\x61\x4a\xc4\x51\xb7\x03\xad\xe2\xa9\x49\xeb\x28\x75\x63\xd1\x7c\x0c\xd9\xc1\xd4\x6e\xe0\x42\xf1\xd4\x05\xb4\xa1\xa3\x81\x7c\xf6\xd3\xb9\x59\xa3\x78\xb2\x92\x5b\xcc\x1d\x74\x5d\xc5\x0a\xee\x83\x11\xa6\x37\xe2\xbb\xa9\x3e\xea\x6d\xd7\x23\x9c\x51\x33\x5f\x5d\x6d\x2c\x9e\xc2\xd3\x61\xa2\x49\x6f\x15\x71\x5f\x4a\x0b\x0b\x6a\x48\x2d\x48\x2e\x7d\x6d\x0c\xdc\x1f\x40\x49\x84\xcd\x23\x5e\xda\xea\x86\xd3\xd3\x44\xc4\x74\x06\xd3\x22\x6e\x2c\x26\x9a\x42\x52\x63\xa1\x16\x0f\x1d\x25\x2c\xf7\x16\x0a\xf7\x5b\xcc\x7c\xee\x83\x68\xe1\xf1\x04\xe2\xb0\xb4\x45\x78\xe8\x26\xda\xa8\x20\xa1\xd3\x49\x39\x40\x89\x6a\x27\xdd\x62\x11\x52\x76\xf9\x4a\x80\xa9\x62\x4b\x88\x6a\x33\xa6\x9d\x43\xc3\x70\x44\x55\x8b\x44\xd2\x36\x53\x03\x18\xc6\xd6\x7d\xe7\x46\x6a\xf3\xf5\xb1\x94\x98\x31\xac\x43\xb8\x25\x66\xe5\xd7\xb0\x68\xf2\x70\x18\x04\x00\x0f\x76\x81\x89\xb2\xab\x86\xb2\x0f\x39\xa0\x74\xbd\x34\x64\xcd\xf2\x96\x50\x02\xb4\x9f\xbb\x8f\xbf\xfd\xe6\xae\x7a\x58\x2f\xc3\x5a\x8d\x87\x32\xd7\xa8\xe9\x40\x9c\x21\x7b\x2d\x9a\x66\x20\x10\x3a\x36\x07\x23\x14\x78\x0c\x8b\x18\x08\x5c\xa1\xfd\xed\x36\x8a\xbd\xfa\x02\x33\x3c\xfc\x74\x39\x6b\x9c\xbf\x63\xf9\x02\x6a\x52\xdf\x0e\xf5\x0b\xd8\xc2\x80\x91\x0e\x20\xe2\x47\x3e\x94\x03\x52\xb6\xfc\xc1\xfc\xb6\x31\xfa\x41\x1d\xe3\x06\x71\xdb\x90\xab\x86\xec\xcf\x0b\xed\x0d\xf8\xae\x67\x70\x43\xe9\x00\xe3\xaa\xe5\xcf\x6b\x35\x6e\x4c\xd0\xe3\xfc\x99\x04\x7d\xe0\x9d\xa4\x27\xfe\xc8\x1d\xd9\xd0\x8b\x09\xd9\x3c\x26\xc3\x96\x26\xca\xa2\x24\x9b\xad\xeb\x9c\xf8\xd4\xf2\xc6\x50\xf7\xc3\x2c\x37\x77\x07\x85\xc1\x88\x64\xe4\xdd\x3c\xf0\x73\x36\x45\xd4\x1c\xb4\x6f\x6c\xed\x34\xf1\x97\x2d\xc5\x62\xcf\xf4\x52\xe6\x5b\x43\xf1\x3d\x63\xb1\xbb\xd8\x08\xba\x3a\xed\xd2\x4e\x56\xd1\x30\x14\x78\x7e\x82\x0f\xdb\x30\xf2\x10\x71\x44\x60\x33\xbc\x6f\xfd\xbd\x6c\xa2\xf8\x5f\x36\xf1\xbf\x6c\xe2\x7f\xd9\xc4\xff\x63\x36\xe1\x0e\x06\xe6\xf4\xc9\x6b\xf2\xe1\x1f\xd1\x1f\xfb\x33\xfa\x8f\xac\x2b\xa4\x9c\xc9\x9b\x82\x01\x09\x7f\x44\x56\xc8\x08\x94\xff\x23\x36\xf1\x1f\xbc\xf4\x7f\xc4\xfb\x7f\xc7\x26\x16\xc9\xf9\x5a\xce\xec\x15\xc8\x80\xfe\x88\xfe\xcd\x9f\xd1\x3f\x10\x05\x77\xf8\xe3\x7f\xce\xe7\xf8\xc2\x63\xf9\xce\xe3\x74\xff\x27\x6c\xe2\x3f\x78\xa6\xf0\x3f\xe2\xfd\x7f\xc3\x26\x86\x1a\x7e\x2b\xe3\x0f\x36\x91\xff\x87\x4d\x98\xff\x66\x13\xd0\xa1\x07\xfa\xc2\xd2\xf0\x39\x97\x61\x64\x4f\xf3\x16\x28\xcf\x0c\x85\x5e\x67\x7a\xc2\x63\x24\x89\x2c\xa0\xe8\x08\x05\x25\xd8\xfd\x00\x0e\xb0\xbc\x3e\x69\x7a\x57\xe2\x59\x97\xd3\x54\x25\x18\x14\x21\xea\xa0\x48\x1b\xfb\x0c\x3a\x47\x04\x01\x70\x04\xa6\x47\x15\x21\x1a\xbd\xea\xaa\xef\x8c\xaf\x1f\xb9\xfd\x7e\xbf\x6d\xdc\x02\x31\x08\xa7\x1d\x35\xae\x12\xc9\x7b\xe5\xad\x3e\x37\xd4\x59\x06\xfa\x24\xe6\x9b\x89\xbe\xed\x27\xf8\xa8\x00\x52\x08\x50\x72\x13\x2d\xe0\x26\xd5\xd1\xc8\x0f\x09\xa8\x6c\x15\x9f\xac\x2c\x9d\x8a\x0e\xfc\xed\xf6\x48\x58\x26\x7b\xdc\x30\x15\xf1\x4e\x41\x1f\xe9\x0a\xed\x0b\x99\xf4\x7e\xb7\xc7\x21\x68\x8a\x9a\xbb\xb8\xd7\x27\x2f\xf2\x5c\xf2\xeb\x2e\x42\x68\xd9\x7f\xe7\xc5\x37\xc4\x25\xab\x91\xc8\x2c\x9b\x08\x32\xdb\x53\x81\x73\xf7\xdb\x09\x20\xd9\xde\x79\xe5\xba\x80\xbd\x4c\xcb\x02\x48\x71\x8b\x8d\xfe\x17\x15\x50\xf4\x2a\x8c\xe5\xd8\x90\x89\x99\x3f\x4a\x59\x57\xef\xb3\x1f\x64\xbf\xc7\x71\x4f\xd6\x74\x44\xa8\x46\xa3\x78\xfe\x75\xaf\xe2\xd1\x62\xe7\x62\x89\x46\xf1\x92\xa5\xbb\x1b\x19\xe8\x85\xb0\x23\x13\xa6\x8e\xb0\x9f\xb0\x0e\x90\xad\xde\xfc\x5c\x9b\x55\xcf\xc4\xa4\x9d\x55\xc8\x6e\xb7\xad\xec\xcc\x22\x81\x06\xb8\x94\x75\x08\xfb\x83\xab\x65\xb6\xa3\x69\xca\xb4\xf9\x6c\xe0\x80\x9d\x8d\xad\xb9\xe5\x2c\x57\xc2\x90\x7b\x90\xbe\xdc\x34\xf1\x9e\x08\xd2\x4f\x91\x65\x1c\x4b\xdb\x91\x1a\xa4\xd0\x70\xb9\xad\x94\xc0\xc8\xb3\x74\xd5\x42\x5a\xf9\x11\x4d\xc7\x73\x2f\x6a\x98\x49\x2c\x70\x8d\xa6\x20\x8d\xc2\x3d\xb3\xc3\x08\xbb\xa3\x1c\x8b\xc9\xc9\x91\xf6\x6b\x8c\x19\x82\xb3\xcd\x4f\xc0\x5e\x54\xbe\xfc\x3c\xbc\x56\x3d\xe3\x16\x16\x27\x5a\x54\xa6\xa4\x33\xc8\xc3\x3f\x34\xeb\xc8\x2d\xe0\x98\x4d\xda\x2c\x80\xda\xc1\x3d\x29\xb0\x94\x30\x19\x49\xf9\xb3\x15\x19\x49\xdc\x14\x7a\x11\x2d\x05\xf6\xf0\x63\xe5\x1f\x72\xc1\xd3\x62\x48\x0f\xc4\xfb\x99\x8b\xfe\xbe\xfa\xae\x25\x41\x2d\xdf\x5c\x1a\xca\x19\xbc\x85\xae\xe1\xdf\xeb\xd1\xbf\x06\x7b\x3b\xc1\xbb\xe6\x3e\x6d\xeb\x12\xa3\x2d\xa6\xd2\x55\xa4\xac\x9a\xcc\xd3\x15\xdb\xb2\x88\xeb\x6e\xba\x24\xcb\x5c\x61\xf3\x5d\x57\x10\xca\x1f\x65\x54\x6a\xee\x85\x29\x6e\x90\x3f\xbd\x34\x85\x67\x15\xf5\xcc\xb9\x85\x5a\xac\x19\xce\xf9\xc1\x80\xcc\x46\x9a\xa7\xe5\xa8\xe1\x63\x5e\xb3\x1f\x67\x4b\x5f\x21\x9f\x01\xb9\x83\xf1\x96\x2b\x10\x33\xe1\x8e\xfb\xf2\x19\x03\xed\x5b\x76\xbd\x01\x75\xa7\xab\x9c\x2e\x26\x1b\xea\xa7\x9e\x66\x16\x0a\x09\x64\xea\x1d\x39\x93\x6d\x00\xfe\xb0\xba\x0d\x46\x1f\x27\x81\xd7\xa0\x5a\x30\x8c\x71\x1b\xd9\x4e\x44\x81\x56\xfe\xcd\x0a\xa5\x7d\x1d\xff\x59\x64\xa2\xfd\xaf\x03\xdb\xa8\xa1\x38\xfe\x25\xd2\x7f\x36\x20\x7d\x63\x63\x98\x33\xd8\x64\x5d\x2b\xf3\x86\xc5\x67\x05\x04\xb5\xdb\x14\xc1\x8b\x75\x44\x5e\xbc\x3c\x2f\xc6\x0e\x4a\x49\xf4\x60\xf1\x51\x5c\x97\x8d\xd3\x51\x74\x68\x29\x2c\x79\xc1\x54\x5a\x49\x7d\x06\x7e\xbf\x91\xe9\x57\xa5\x3f\x83\x42\xb7\xd3\x4c\x47\x6b\x32\x67\xbe\xfd\xc6\xef\x43\x4b\x90\xfe\x2e\xd4\x9b\xef\x87\xe2\x5a\x70\x1d\x13\x0d\x89\x0d\xb4\x10\xd4\x3d\x97\x21\x60\xed\x43\x70\x2b\x09\xf0\x24\x32\x13\xa6\x72\xd2\x35\x44\x1f\xa0\xb3\x79\xb7\x41\xe1\x01\xa0\xac\x02\x97\xf3\x26\x7b\x94\xb0\x47\x4d\x30\x98\xaf\x38\x34\x15\xcd\x24\x31\x9b\x0c\xb9\x0f\xa1\x12\xb8\x0b\xa9\x3b\x06\x63\x5b\xa2\x68\x21\xda\x50\x29\x3a\x61\x40\x0c\xc6\xba\xf3\x20\xea\xe7\xfd\x81\x82\x4e\x9c\xa3\x55\x5d\x24\xe3\xc1\x79\xf3\xb3\xf8\x15\xcf\x14\x7b\xce\x28\x84\x89\xd8\x06\x1c\x5f\x4d\x37\x64\xd8\x36\x16\x30\xa3\xe3\x4b\x8f\xf5\x4f\x82\x8b\x53\x1c\xd9\x2c\x5a\x3a\xed\xc9\x14\xdb\xd3\x13\x82\xcb\x38\x1a\x6d\x1a\xa7\x7f\x3b\x27\x75\x87\xca\xf1\x3e\xdd\x9d\x2f\x29\xb3\x8b\x2e\xd2\x0f\xbc\xce\xbc\x48\x60\xe7\x96\xd0\xd8\xcb\x6a\xbb\xcc\x6c\x32\x08\x48\xe8\xe5\xce\xc4\xe7\x3a\xc9\xad\x5e\x28\x11\x5f\x22\xfe\x00\x56\xd3\x58\x10\xa5\xeb\x65\xe9\x2e\xcb\x88\xbb\x4c\x00\x45\x41\x6e\x66\x2c\x1b\xff\x85\xa5\x4f\x7b\xe5\xec\xc0\xea\xd0\x34\x9d\x43\x24\xd7\x46\x86\x04\x04\xd0\x1f\x99\x0d\x0c\xd2\xd4\x32\x5d\xb8\x22\xd5\x5a\xb8\x88\x87\x15\x36\x3a\x8c\x48\x9f\xa7\x06\xac\xe2\xfe\x8e\xc3\xb7\x3b\xcf\x56\x64\xce\x04\x61\x6d\x19\x0d\x2e\x85\x1a\x5f\xbd\xd0\x9b\x83\xd6\x8c\xf8\x9d\xb4\xdd\x12\x40\x64\xd4\xfd\x48\x80\x8b\xc4\x96\x39\xd2\xe7\xda\xf4\x50\xce\xe8\xf6\xd1\x8b\x5f\xc3\xdb\x06\x29\x6b\x37\x56\x25\x99\xb2\x49\x33\x39\xaf\x4b\xc1\x47\xc8\x15\xd2\x86\x3d\xaa\x8f\x34\x47\x81\xd5\xb5\x97\x4d\x66\x68\x90\x1c\x52\x79\x31\xf1\x7e\x00\x05\x01\x9b\xc4\x45\x55\xba\x80\xa9\x4b\x3f\x19\x52\xd0\xfe\xe2\x07\xd8\xdd\x5f\x8c\x10\x6d\x8c\x03\x61\xf6\xd8\xca\xdf\xc1\x49\xb2\xd9\x59\xcc\x17\xa5\x8d\xa0\x39\xb8\x73\xe0\xa3\xb2\xea\x73\x9f\x67\xb1\xe7\xf8\x85\xfb\x22\xd6\xed\x63\x5e\xba\x0e\x90\x92\x30\x56\x33\x84\x51\x20\x00\xe3\x13\x83\x5f\x0e\xf1\x8b\x68\x2e\x83\xff\x4d\xe9\x54\x8b\xc7\x57\xdd\xad\x9c\x14\xf5\x1d\x24\x8c\x91\x4e\x61\x96\x3a\xa3\x2e\xca\x7f\x6b\x2a\x70\x34\xd9\x3f\xcb\x78\xff\x6f\x0e\x85\x47\x70\x0d\x41\x14\xdd\x95\xba\x25\x47\x90\xc5\x90\x08\xb5\xf0\x04\xc7\xcf\x03\xe5\xfe\xcd\xdf\xb3\xb0\xc5\x55\x2d\x95\x60\x43\x9a\x3d\x37\x85\x0f\xde\xa3\xe9\xc3\xe4\xa0\x68\xb9\x30\x71\xad\x18\x24\x9a\x14\x1e\x3a\xe4\x22\x8d\x7e\x98\xdc\x88\xa6\x70\x8a\x02\x9f\xc7\x8c\xf3\x6f\xaa\x3e\xab\x02\x2d\x80\x26\xd1\xeb\x4a\x85\xfd\xc5\xd4\xe4\xb7\x96\xb6\x71\x12\xee\xe0\x39\x89\x83\xd0\xaa\x30\xb0\x80\x9d\x16\xdb\x3e\x6e\x87\xdd\x3a\x23\x82\x86\x69\x41\x81\xc7\x46\x2b\xf0\x6b\xc8\x0d\x24\x30\x94\xbc\xb1\x06\x84\x8d\xa1\xc8\xb4\x73\x82\x52\xb5\xe7\xf1\x4e\x68\xa2\x4b\xad\x85\x94\x44\x6a\xc5\x93\xca\x23\x71\xc1\x4f\x3e\xae\x01\x5a\xe9\x05\xba\x20\xa1\x98\xf6\x1b\x01\x34\x4e\x73\xef\xbf\xf6\x93\xfc\x73\x25\xcc\x76\x27\x86\x24\x5d\xe3\xfe\xd6\x21\x49\x6c\x85\x11\x0d\x08\xc8\xaa\x7f\x77\xb4\xc3\x92\x74\x6c\x81\x66\xba\xbb\x36\x2c\x95\xa2\xb0\x8b\xa6\xb8\x87\x02\xab\x64\x11\x93\x6d\xec\xb6\x05\x68\x58\x6d\x7c\xe3\xfc\xc0\xa5\x92\x84\x7c\x31\x93\xf5\x9f\xa8\xcc\xac\x71\xfd\x1a\xf8\x5d\x14\xcd\x5a\x27\x1b\x85\xa4\x08\xb5\x14\xa1\xe8\xa6\xf9\xfa\xc6\xc7\x7d\x71\xb7\x61\xc4\x9b\x17\x18\xc5\xe2\x07\xae\x98\x14\xa3\xec\x1c\x7d\x37\xcb\xe8\x36\xd2\x52\x1d\x1b\x6a\xf9\x84\xe0\x80\x33\xb6\xd5\x56\x34\xee\x7e\x8f\x96\xac\x22\xfd\x3a\xf9\xea\x2a\xeb\x6e\xbc\x00\x24\xbd\x2f\x46\xe6\x5a\x13\x44\xb1\xa7\x1f\xbc\x60\x0a\xf8\x5d\x1e\xe7\xea\x30\xfe\x84\x43\x22\x1c\xfe\xec\xdc\x95\x2a\xe1\xa6\xe4\x38\xcd\xbb\x90\xaa\x77\xfe\x52\xe8\xb1\xec\x4f\xfa\x62\x78\xe6\xed\x5a\x5d\xc8\xb7\x88\x49\x5b\x6b\x0e\x17\xf4\x23\xba\x95\x0d\x3a\x16\x66\xb0\x9f\x50\xdf\x9c\xb0\xe7\x83\x0e\x1a\x98\xdf\x08\xf8\x0f\xef\xf9\x07\x98\x7d\xe1\x5b\xe0\x92\x9a\xe8\x83\xa3\x64\xc2\xc8\x18\x16\xea\xa6\xef\x81\xcc\x00\x8c\xb4\x20\x11\x80\x71\x16\xde\xec\xe6\xd9\x19\x39\x3b\xc2\x97\x6a\x9f\x60\x4c\xe6\xd9\xae\x87\x22\x9b\x84\x93\xb8\x27\x16\xb4\x50\xbd\xb8\x48\xdc\x25\xb4\x6a\xe1\xcb\x04\x55\xcc\xe2\x09\xab\xc4\x02\x8e\x9a\x21\x09\xf5\x63\xd2\x97\x74\xf9\x56\xe8\x4e\x70\xa6\x4b\xa4\x63\x42\x6c\x49\x11\x03\xbb\xe4\x05\xa4\x42\xb7\x0c\x6f\xac\x85\x46\xda\x6d\x68\x2d\x4d\x6b\x8a\x21\xb6\x93\xb4\x25\x1c\x42\x38\xbf\x41\xf8\x17\x21\x39\xd8\x70\x4b\x0d\xdb\x7e\xa1\x00\x09\x59\x35\xc4\xb2\x03\x12\x96\x4b\x98\xed\xd2\xb4\xd7\x33\xe1\x4c\xcb\x02\xb6\x02\xb5\x66\x0a\xd0\x35\xe2\xd9\x7d\x7a\x73\xdb\x57\x5d\x9f\xbb\x55\x1d\xf6\xcc\x11\x34\x82\xe3\x6a\x64\xd2\x76\xb4\xa5\xfd\xc8\x9f\x16\xa5\xcf\x33\x7a\x76\x34\xa2\xce\xdd\xfc\x32\x65\x8b\x28\xc7\x68\x79\x1c\x43\xae\x20\x7f\xc0\x08\xa3\x27\x72\x5f\xb1\x0b\x53\x0c\x86\xb5\xd6\x0e\x15\x7a\x32\x67\xfe\xfc\x20\xf8\x37\xd6\x12\x1e\xcd\xf7\x0f\x73\x1e\x7f\x55\x31\xfd\x4b\x9b\x9c\xd8\xb9\xf1\x79\x7e\x5d\x1e\xca\x4f\x3c\x86\x61\xe9\xb2\x38\x8c\xe6\x13\x11\xdd\x40\xf8\x81\xfb\x4c\xa8\x67\xa3\x83\xb3\x0c\x32\x35\xc0\xc2\x34\x45\x75\x35\x06\xf5\x85\x28\xb8\x4e\xe0\x9a\xac\xe7\x94\x7c\x34\xea\x8e\x89\x8c\xfb\x59\x51\xbf\x2a\xdd\xd3\xab\x20\xc5\xd9\xda\xf8\xfd\x33\x48\xfc\xfb\xd5\xd6\x14\x4e\xd3\x11\x24\xef\xb5\xbd\x00\x80\x12\x6f\x6d\x55\x1e\xbc\xae\x1f\x7f\x5c\x32\x62\x93\x04\xb3\xd8\x63\x84\xf2\x5b\x8e\xec\x72\xf5\x80\x67\x51\xc8\x11\x53\xe6\x69\x8c\x42\x83\x85\x00\x2c\xba\x77\x26\xfa\xb5\xfe\x4f\x3e\x1d\x82\x00\x68\xbc\xc3\x10\xb4\xff\xc4\xcf\x0a\xc7\x9e\x2d\x35\x2b\x35\xe5\xec\xbb\x42\x9f\xac\xf0\x5b\x04\xbc\x94\xed\xe9\x2e\x55\x01\x54\x85\xe1\x29\x8f\x90\xc1\xa5\x7c\x4c\xbf\xc5\xb1\xc3\x3b\xac\x5e\xfd\xe0\xfa\x15\x9f\x1f\x2c\xb4\xab\x1f\x7c\xab\x35\xea\x03\xad\x58\x29\xdc\x11\xf3\x6c\xae\xa0\x29\x9c\x2c\xec\x73\x92\xc4\x46\x7c\x8d\x45\x34\xad\xa7\xde\x4c\x09\x09\xbf\xdc\x20\x81\x05\xc4\x0c\x8c\xdb\xe8\x46\xba\xfc\x0c\xde\x58\x24\xf3\x13\x92\x0a\x2a\xa5\x85\x90\xef\x6b\x92\x97\x5c\xe6\xe0\xa8\xa6\x8d\x9f\xc8\x0d\xb2\x63\xbd\x89\x60\x7f\x9e\x7a\x3b\x08\x4b\xe0\xfe\x84\x9b\xa9\x84\x8a\x7b\xdb\x4d\xc4\x9d\x1b\xa6\xfa\xc3\xf2\x45\x9e\x6f\x43\x3b\x94\x75\x46\x38\xab\x71\x11\xa5\x60\x96\xe3\xee\xaf\xa2\x99\x89\x8e\x24\xbb\xa6\x17\xa6\x90\x5f\xf3\x84\x7a\x1c\x15\x0e\x6f\x37\xd0\xdb\x8e\x55\x08\x40\xa2\xd3\x1a\x2d\x72\xff\xeb\xce\x4f\xe1\x87\x49\xf6\xcc\x55\xe0\x7c\xb1\x71\xbc\x42\x28\x92\xb3\x40\x4c\x86\xf2\x8b\x32\xb9\x63\x1e\x90\x06\x0d\xf4\x93\xd0\x04\x4e\x12\x89\x36\xe5\x2c\x3b\x86\xa7\x66\x62\x66\x5c\xc4\x75\xb9\xc9\x31\xfa\x6e\x47\x39\xe5\x85\x3b\x6f\xb1\x5f\x8f\x8b\x5b\xd1\x8f\xab\x97\x69\x5a\x8c\x75\x01\x35\xbc\xa9\x25\x3b\xf5\x0e\xe2\x16\xec\xe5\x62\x9a\xa1\x21\xd1\x69\x7f\x1e\x9b\x1c\x3f\x11\x1c\x00\x07\x90\x93\x6c\xa2\xbb\xa3\x56\x52\x16\x75\x2e\x9f\xfa\x7a\x2a\xf6\x22\x5c\x68\x4d\x7f\xa7\xbb\x2b\xf7\xf4\xdb\x0e\x3e\x5b\x37\x6d\x95\x55\x0c\x41\xfb\x65\x4e\xd2\x10\x19\x4b\x03\xae\xe4\xfe\x41\x64\x76\xb3\xf9\x99\x5a\x6c\x28\xb0\x59\xaa\x92\x84\x47\xb5\xfc\x89\xa1\xae\x92\x03\x55\x50\x4f\xf0\x6b\x96\x70\x2e\x47\xde\x93\x72\x31\xe9\xa9\x04\x7b\x8d\xc5\x92\x20\x7a\x94\x6b\xf4\x55\x44\xfb\x63\xd0\xfa\x96\x53\x9f\x71\xc2\x23\xc0\xd4\xc0\xaf\x44\x7e\x2b\x1b\xbe\x1c\x15\xea\x66\x3e\xdc\x79\x11\xed\xd9\x6f\xb7\x52\x48\xc7\xe2\xd3\xc2\xda\xa0\x54\x46\x57\xa4\x55\x78\x56\x21\xbf\x15\x26\x8e\x73\x40\x45\xd3\x7e\x18\x05\xbb\x4d\x60\x19\xe6\xa2\x48\x66\x01\x4b\xd4\x00\x17\xca\xe0\x30\x30\x67\x3f\x10\xe2\x42\x08\xfb\x56\x0c\x46\xeb\x51\x1b\x44\x92\x40\x6b\x92\xbf\x97\x71\x74\xf5\x3f\xac\x90\x60\x72\xff\x7a\xc0\xf3\x9f\x15\x85\x6b\xf2\xc9\xd1\x7e\x8c\x5b\xa2\x9a\x45\x14\x08\xe3\x1b\xa8\x7b\x66\x4a\x2d\xcd\x42\x0d\xac\xcf\xd0\x45\x0b\x2f\x49\x09\xf9\x16\x3e\x6c\x1b\x9f\xb2\xd7\x4e\x08\x9e\x48\xac\xea\x3a\x0b\x93\xb0\xbc\x10\x2d\x99\x60\x0b\xed\xb0\x97\xe1\x92\xbf\xfd\x77\x55\x16\x66\xd4\x29\xcf\xf9\x51\x9e\x9d\x55\x5d\x90\x28\x61\x2b\x5f\x67\x31\x24\x69\xd9\x32\xf2\xaa\x5c\xe1\x49\x65\x83\x9c\xc3\xee\x30\xda\x5c\x8b\xf3\x09\x92\xe1\x76\x30\x9e\xbb\x5c\xa1\xf9\xfe\x7a\x18\xad\x89\xd8\x6a\xfb\x86\x92\x99\xd1\xf0\x15\xa7\x7c\x41\xdd\x02\x2e\xf4\x4c\x02\xdb\x1f\x18\x99\xf3\x73\xa0\xd0\x00\x68\x29\x5f\x49\x23\x80\x36\xbf\x4e\x0c\x7c\xba\x57\xce\x7f\x45\xc2\xdc\xb5\x0b\xd3\x69\x93\x4b\x20\x3f\x5b\xb4\xbe\x7b\x4d\xe5\x97\xb4\x1a\xcf\x4f\xfd\x1a\x12\xb2\x5d\x0e\x5f\xb2\xe3\xad\xa4\xd9\xe9\xe0\x67\xdd\xc2\xc8\x71\x77\x73\x80\x09\xc0\x2f\x09\x60\x53\x71\x39\x53\xe1\x77\x80\x3d\x10\x6a\x8a\xbf\x87\x0a\xcd\x33\x25\x69\xa2\xa7\x57\x90\x6f\x98\x7b\x9e\xee\x95\x1b\xbb\x91\x99\x44\x48\x14\xb0\x9b\x53\x7e\xcc\x38\xf4\x16\xf6\x02\x1b\xa4\x36\x66\x8c\xcc\x3b\x11\xdb\x89\x87\xac\x60\xe1\xbc\x4c\xe1\x64\x87\xd8\x33\x10\x6b\xcb\x84\x99\x74\x4b\x51\x30\xb7\x22\x05\x2f\xc2\x85\xaa\x98\x2a\xbf\x41\x1b\x5f\x95\x59\x1f\xd4\xc7\x40\xc5\x90\x26\x75\xa8\x22\x25\xf2\x3e\x5c\x6b\x14\x7c\x29\xdb\x1c\x7d\xf9\xd8\xc3\x79\x8f\x4b\x5a\x6a\xf3\x15\x9e\xda\xa1\xbb\x7a\xaa\x90\x87\xa4\xc3\x28\x29\x5c\x1b\x86\xaa\x16\x9f\xa0\x16\x30\xd2\x80\xcd\x79\xc8\xd5\x81\x7d\x05\x67\x24\x0e\x1d\x98\x4f\x46\x01\x8c\xe0\xce\xc5\xf6\x97\xe4\x99\xaa\x15\xa0\xb7\x36\xd0\x83\xc9\x58\xc5\xbb\x12\xcf\xe0\x44\x1d\x58\x0c\xcb\xd0\xa0\xb4\x73\x4b\xa6\xc8\xf7\x46\x89\x56\xeb\x50\x08\x6a\xe1\x6e\x1d\x11\xc4\x11\x48\x0c\xdf\x9a\x2f\xea\x9a\x2e\xdf\x17\x26\x06\xcb\xfa\x53\x3a\x94\x4a\xf4\x89\xbf\x5b\x8e\x5e\x5b\x2a\xab\x61\x35\xb0\x23\xe0\x39\x67\x47\x3b\x9b\x92\xe6\xc3\xc6\x21\x56\xa1\x9c\x3e\x65\xe4\x0b\x69\x2d\xac\xe0\x6d\x68\x23\xba\x71\xaa\xa5\x7c\x7e\x48\x30\xfc\x8e\xb8\xf8\x39\x26\x3c\x6f\x0e\x49\xbf\x40\x7c\xbb\x89\xc0\xc7\x85\xcd\x70\xa3\x30\x70\xc1\xc1\xd3\x3b\xe9\x60\x86\x90\xc7\xf0\x25\x32\xc3\x86\x72\x16\x74\x33\x25\x00\x38\xe8\x4f\x0e\x81\x81\x38\xcb\x95\x5d\xd2\x0c\xbc\x7e\x55\x30\x6b\x4b\x37\x3e\xf4\x53\xe8\xd1\xd7\x34\xc0\x09\x7e\x55\x58\x9f\xce\x3a\x18\x74\xce\x99\xf0\xbb\x6f\x91\x16\x3f\xe5\x61\x37\x97\x57\xdc\x01\x33\xe1\x54\x9c\xe2\x48\x04\x13\xce\x6b\x1f\x5d\xed\x06\x5f\x87\x53\x94\x94\x0b\x1d\xfc\x1d\xb2\xbd\x5f\x37\xc3\x61\x27\x47\xaf\xed\x6f\x4f\xaf\xbf\x5b\x9e\x70\x3c\xff\x30\x7d\x42\xa5\xfe\xd7\x66\x42\xb0\x1d\x96\x04\x0b\x8e\x5d\xef\x6f\xdc\xbd\x1f\xdb\x9c\x8a\xea\xbd\x5c\x9b\xb2\xac\x20\x72\xda\xa2\xc9\xfa\x4c\x54\xcd\x22\x6c\xe6\x8f\xe2\xe4\x46\xa6\x9a\x21\x55\x3a\xdf\x53\x62\xbd\x55\x99\x88\x6b\x86\xd9\x68\x5c\xc3\xeb\x5c\xd6\xd3\x10\xfa\xc3\x5e\x1a\x50\xe0\x12\x94\xb9\x4d\xcc\x51\xc3\xb7\x7f\xbf\x7e\xf8\xc6\xc5\xf1\xde\x5f\x02\xd4\x36\x09\xd5\x92\x88\x34\xce\xc9\xbe\xdc\x47\x8c\x75\x59\xd2\xc1\xb9\xd5\xd7\xb6\xf5\xd5\x4e\x90\x04\x52\xe5\xe8\xf1\x39\x04\x7d\x8a\xea\x6d\xef\xab\x65\x73\x80\xc1\x0a\xd3\xf3\x2c\x6d\x87\x1d\x63\x80\x5b\xd2\xb4\x5b\x5f\xc6\x46\x7a\x01\x58\xf4\xac\x28\x61\xeb\x15\x5d\x39\xbc\x52\x4a\x5d\x32\x81\xfc\xe4\xc3\xd3\xc6\x4c\xc1\x8a\xbd\x22\xfc\x9e\xa9\xbd\x4c\x64\xd9\xa2\x98\x21\x21\x5a\xdf\xeb\x3b\xf3\x69\x79\x9d\xad\x07\xc5\x78\x20\xf1\xc2\xc9\x3c\xc1\xa8\x8c\x38\xa0\x9e\x77\xb0\x19\x50\xee\x4b\x90\x00\x75\xb7\x78\x7b\x61\x39\x90\x8e\x94\x99\x0a\x63\x10\xbf\xd2\xd3\x48\x0b\x2c\x35\x0b\xf5\xa7\x47\xc8\x9e\x82\x51\x41\x96\x34\x2e\xce\x18\x55\x78\x4e\x10\x63\xad\xb2\x63\x04\x1e\xa2\xb6\xce\xe1\x91\xad\xb3\xb6\xea\x79\xdd\x39\x29\x50\xee\xda\x99\x5c\x97\x18\xa6\x4f\x9b\x8c\xbc\x9a\x54\x42\xd0\xc8\xe0\x4a\xf6\x9a\x1f\x4d\x2d\x50\xc2\x77\xd9\xd1\xe8\xb2\x0c\x51\xd9\xb7\x37\xd7\x95\xa7\xd6\x21\x29\xe0\xa5\xe7\x35\x32\xcb\xab\x17\x00\x93\x76\x8b\xc6\x5a\xdb\xef\x76\xe9\x38\x97\x26\x32\x21\xa0\x67\x1c\x70\x04\xb4\x41\xe6\x2b\x8c\xf8\x09\xf1\x0a\x04\xc9\x59\x67\xa2\xae\x2d\x5c\xf2\xc1\xa3\x37\xa0\x9c\xed\x0d\x16\xac\x28\xcd\x1c\xe8\x15\xe7\xa7\x41\xec\xc2\x15\xe6\x5d\x60\x14\xec\xbc\xd2\x56\x5d\x3e\xd1\xb0\x81\xc2\x8b\xdd\x7c\x05\x20\x0c\x75\x8d\xec\x57\x7d\xc0\x61\x46\x9a\xa1\x10\x92\x09\x35\x50\x0a\x61\xb2\xe8\x02\xe6\x6c\x72\x20\xf4\x3e\x24\x4c\x56\x75\x6a\x79\xf9\x97\xa0\x4c\xe1\x62\xd6\x82\x30\x12\x83\x2f\x60\x84\xc2\x1b\x5d\x41\x97\xd9\x78\x5b\x4b\x5b\x37\xb7\x2d\x15\x37\xac\x57\x7a\xae\xfe\x9b\xff\x16\x77\x7d\xc0\x0d\xe1\xfa\xeb\xba\x19\x9e\x51\x39\x90\x1c\x3f\xe6\x73\xa6\xfb\x6f\x0d\xc5\x77\x76\xfd\xb3\x8c\x6d\x11\xff\xca\xdf\xff\x55\xd2\x67\xc7\xc7\xa2\xe5\x31\x74\xaf\x81\xa3\x85\x8e\x21\x96\x4a\xec\xb0\x26\xe7\xb0\x3b\x44\x68\x36\xc0\x52\x16\x2f\xb5\x80\x51\x63\x39\x88\x29\xbb\x24\xe0\xd8\xf0\xb4\x85\xc1\x6e\xc3\x42\x26\x96\xd3\xb0\xee\xe5\x69\x12\x89\xd6\xd7\xbe\x1d\x94\x75\xcc\xd9\x3e\x40\xcf\x54\x02\x39\xf9\x2d\xcf\x77\x4d\x94\x80\x82\x85\xdb\xdb\xc3\xaf\x7b\xcf\x31\x82\x4c\xf1\x45\xd4\x99\x1f\x04\xa6\x39\xad\x71\x89\x55\x7a\x41\x75\xca\x60\xd7\x70\xc4\x2c\x3a\x91\x9f\xac\xa2\x96\xf8\x74\xc7\x42\xb2\x48\xcd\xd6\xdb\xda\xe7\xc3\x60\xbd\x83\xa6\x6b\x54\xe3\xc5\xa2\x76\x22\x46\x21\x96\xfb\x27\xa9\xd1\xf8\xc7\xbe\xae\x09\x39\x2c\x88\x68\x99\x4c\xe6\x87\x31\x06\xcf\xec\xaa\x4c\xf1\xae\x5a\x5b\x5a\x59\x7b\x90\x00\xaf\x62\xf4\x0f\x40\x8a\xcb\xff\xdd\xef\x2f\x2e\xf6\x1c\x18\xf4\x5b\xc5\xb6\xa6\x9e\x0c\x9e\x97\xa2\xf5\xfa\x55\x31\x97\x7a\xb4\xc9\x93\xd3\x7c\xe1\x2d\x6d\xf2\x14\x6e\xd0\x2f\x45\xf0\xcb\x31\xe3\x5b\x30\x9c\x2a\x66\xbf\x68\xc2\xab\xcb\x4b\x38\x92\x6a\x67\xef\xca\x02\x66\x5f\x03\x18\x1a\xeb\x08\x02\x1d\x50\x71\x5b\xe9\x50\x6f\x66\xbc\xb3\xc1\x9a\x9e\x0d\xcf\x10\x5c\xae\x97\x4c\xc7\xdc\x59\x35\xc0\x69\x40\xeb\x93\x4d\xb9\x2d\xe1\x91\x94\xb4\x4b\x4f\x6f\x2d\xb4\x58\x7e\x9a\x9a\x85\xa9\xd2\xb2\x8d\xc4\x78\x9f\x86\xc0\x37\x78\xe7\xdb\x8f\x1b\xa8\xea\x8c\x01\xc1\x60\xfa\x2c\x4b\x4f\x5b\x2e\xef\xa0\x94\x43\x31\x19\xcf\x53\xb2\x25\xce\x72\xef\x3b\xe9\x1b\x7c\x5b\xad\xbb\x28\xdc\x01\x40\x83\x07\x52\x84\xeb\x77\x4c\xbb\x29\x61\xe9\x14\x64\xaf\x0e\xde\xcc\xad\xc9\x81\x59\xa7\xb5\xaf\x99\x50\xea\x66\x37\xcd\xcd\x35\xb5\xaa\xe0\x62\x30\xaf\xfc\xe2\xda\xc0\x18\xfe\xb0\x7b\x82\x7a\xfc\x8c\xea\x67\x90\x82\x11\x1a\xd9\x9d\x57\xbd\xf1\xa9\x6e\x4b\x90\x79\x2c\x24\x9d\x12\x0b\x4c\xe8\x47\x38\xe4\x09\x4c\xfb\xad\x77\xbd\x6e\x6c\x11\x3f\x58\x68\xb5\xc9\x84\xb9\xbb\xd9\xc8\xf9\xae\x8a\xd6\x9b\xfa\xbb\x03\x1b\x26\xd0\x16\x73\x3b\x07\xe3\x20\x76\x86\x0f\xf8\x8e\xb8\x18\x77\x6c\xf5\xd2\x12\x37\x02\x10\xdf\xd2\x00\x9b\xf8\x22\xaa\x87\x66\x72\xd5\x7a\x36\x89\x74\x2e\x9c\xcb\xe6\x1c\x6f\x2d\x90\xc6\xaa\x05\x16\xce\x36\x5a\xbe\xac\x65\x46\xd4\xf9\x96\x6c\xc3\xca\x81\xdf\xae\x8e\xc6\x0d\xe8\x24\xa4\xa0\x3e\x07\x12\xe0\xb2\xdd\xac\x5a\x64\x98\x6d\xcc\x2d\x30\xbf\xa3\x4f\xec\x2e\x08\x22\x5a\x6e\xb1\x1c\x71\xc9\x81\xee\x69\xaa\x35\x51\xf2\x89\x1e\xaa\x96\x98\x03\xad\x14\xa6\x0c\x0d\xfd\x07\x9c\xc1\x05\xe4\x88\xe6\x56\x1e\x97\xf6\xa9\xda\xb1\x74\x1e\xd2\xbd\xf2\x21\x73\xbd\xc1\xac\x76\x5d\x25\x29\xd1\xa5\xcb\x51\xd0\x98\x55\x90\xfc\x59\x07\x50\x44\xe1\x6f\xf3\x34\x7e\x33\xd4\x77\xe8\xea\xdb\x64\x17\xae\x11\xc0\x80\x19\x47\x21\x3e\xeb\x89\x3f\xa9\x74\xac\xeb\xeb\x9a\xa8\xd8\x73\x68\xe8\x5f\x67\x20\x41\x8b\x48\x16\x10\x35\x63\xf6\xdf\xbd\x31\xf0\x8c\xff\xb0\xfa\x82\xe9\xbf\x5d\x00\xb5\x89\x82\xe0\x80\x53\x36\xa5\x68\x82\x00\xd0\xa7\x70\x88\x31\x29\xbe\x30\x04\x49\x23\xb8\xa2\x23\x6c\x0f\x2e\x50\x9a\xdf\xc1\x39\xd8\x92\x34\x03\x62\x5e\x84\xfe\x38\xb3\x4a\x9a\x86\x4d\xd2\x50\x30\x02\xf0\x45\x4d\x34\x25\x0d\xd2\xf2\x79\x50\x22\xc6\x01\xd9\xce\x1b\x81\x3e\xb7\x0c\xc0\x38\xa4\xe1\x30\x94\xa0\xc9\x73\x34\x10\xfd\xc1\x19\xd8\x0f\x2f\x51\x12\xf1\x8e\x4a\x54\x14\x7b\x80\x7d\xe3\x26\xa1\xc7\xbd\xae\x4b\xe7\x2f\x03\x49\x6a\x4e\xb5\x6a\x93\xf6\x44\x3b\x36\x5e\x80\x89\x53\x95\x74\x58\xa7\x1b\xc1\xb2\x8a\xa4\x44\x4a\x1d\xae\xcd\x7b\xcb\x75\x10\xcc\x62\x93\x54\xe1\xaa\xb6\x8d\x69\x08\x56\x41\x64\x06\x88\x81\xc2\xd4\xcc\x45\x21\x73\x38\x76\x2f\x94\x21\xee\x69\x12\x7f\x51\x53\x5f\xe9\xe7\xad\x28\x9b\x1d\x98\x5f\x27\x5b\xe2\xd2\x02\x3d\x52\x71\xd8\xb6\x97\x33\x8b\xe9\xbb\x78\xe6\xd2\x08\xca\x2b\xe5\x1e\x57\x12\x2d\x8f\xef\x74\x38\x32\xc3\xfd\x15\x75\x52\x92\xb9\xa9\x0e\x81\xd9\xc9\x37\xd6\xc0\x81\x29\xc5\x26\x3a\x62\xaf\x4f\x57\x2e\xb0\x98\x0e\xed\xcc\x3f\x4b\x95\xc5\x0c\x18\xf4\x67\x0f\x62\xf2\x6c\x3d\x9a\xd6\x77\x56\x57\x0d\xa4\x1b\x78\xad\x6b\x3a\x51\x66\x26\xa2\x73\x1a\x59\xbd\x25\xdc\xd3\xdd\xd8\xfc\xa5\x5a\xbd\xe6\x89\x0a\x09\x97\x5b\x8e\x30\xef\xbc\xaf\xbf\x53\x31\x67\xfa\x0c\x11\x08\xba\x71\x5f\xfc\xab\x2f\x69\xa4\xa4\xa6\x39\x9a\xfa\xe8\x58\x1a\xa2\x1b\xaa\xab\x02\x38\x33\x9c\x29\xec\x91\x9c\x28\x7e\xea\x37\xe0\x84\xf4\x0b\x7a\x27\x1a\x93\x61\xe5\x66\x36\x12\xf3\xf9\x27\x84\x49\xa1\xeb\x0c\x56\x9a\x3f\x96\x40\x30\xc9\xd9\x79\x36\x52\x9a\x3a\x55\x85\xe6\x19\x66\xae\xfd\x3c\x31\xba\x7e\x58\xb8\x38\xd5\xc4\x4f\x48\x78\xc7\xce\x1e\xab\xb7\x08\xb7\x44\x01\x34\xcf\xe8\xe0\x7d\xe3\x75\x42\x20\x1c\xd0\x5d\x2a\x15\x79\x18\x82\x07\xfc\x04\x09\xc9\x38\xbd\x53\x0d\x4b\x51\x22\xe5\x8f\x90\xcd\x0b\x82\xce\x18\xc1\x76\xbb\x67\xd1\x86\xcc\xeb\x6b\xdd\x14\xdc\x16\x89\xab\x13\x11\x8a\x28\x7b\x91\xdd\x64\x65\x3d\xf0\x94\x64\x20\x6a\xa1\x07\xb2\xb6\x2a\xc2\x39\x28\x60\x47\xe3\x6f\x02\x46\xab\x04\x64\xe1\x43\x51\xcd\xe6\x3a\xdf\xdd\x79\x26\x5a\x46\x35\xad\x1c\x33\x18\x15\xd0\x86\x8f\x30\x4e\xf3\xba\x97\xef\xb7\x02\x0a\xe5\x4e\x97\x79\x52\x86\xbd\xba\xa1\x9a\xe2\x0c\xf0\x2b\x88\x14\xf2\x81\x71\xc9\x78\xbf\x62\x8d\x78\x04\x2b\xdf\xf7\x66\xdc\x60\x76\xf1\xb9\x8b\x73\xf0\x40\xb6\x70\xe2\x60\x9a\x8c\x32\x53\x0d\x30\x45\xfa\x0a\x79\x6a\x5f\x34\xa7\x1c\x9f\xc3\xc3\x23\x2d\xe4\x47\x62\xf5\x17\x89\x5d\x60\x89\x5a\xb4\x6b\xd8\x3e\xbf\xed\xc2\x2d\x29\x91\x49\xad\xc8\x3b\x90\xb1\x99\xb8\x3b\xad\x6e\xee\x85\x86\x18\xc3\x32\xbc\x27\xb9\x44\xe5\x40\xa0\xe9\xfc\xad\xec\xe3\x19\xf7\xe7\x1f\xe6\x25\xc6\xbf\x6a\x91\x57\x51\x10\x02\x3b\x8c\x4b\x3b\x01\xcf\x2a\x4a\x95\xb9\x4b\xd2\xce\x4b\xb4\xa4\x55\x0b\x42\xc8\xcb\x53\xb6\xda\xa6\xeb\x67\xf4\x00\x6f\x19\xfe\x08\x16\x52\x99\xd6\x7a\x0d\x45\x6f\x9f\x19\x1b\x54\x69\x80\x19\xcf\x67\x9e\x3b\x12\x21\x63\x59\xf0\x52\x2e\xe8\x4b\x0c\xbe\xe4\xee\xca\x6c\x5e\xa7\x15\xa0\x68\x9c\x7e\xbe\xfc\x93\x0e\xb3\x78\x08\xda\xf6\x3d\x84\x10\xfc\xc9\x39\x3c\x7a\xc3\xe4\x17\x7c\x2e\xd2\x88\xc8\x3e\x04\x8e\x16\x7f\xbf\xb0\xc8\x12\x3b\x06\x01\x40\x39\xe8\x13\x33\x99\x0b\xe0\x42\x97\x38\xd8\x20\xf0\x57\x43\xdd\xf9\xc2\xfd\xfa\xd4\x4a\x0d\x2a\xa2\x53\x5d\x7b\x00\x30\xe6\x73\xac\xc2\xc1\x41\xc6\x95\x1f\x34\x2e\x4a\x12\x49\x41\xc6\x41\x89\x9f\xfe\x58\x8e\x11\xb4\x39\x74\x51\x1d\x25\x66\x7e\x26\xcd\x7c\x6f\xc6\xf4\xce\x57\x9e\xe8\x1c\xcd\x8a\x45\xa3\xd0\x82\xb0\x66\x07\x96\x99\x9d\x76\xe4\xf1\xe7\x31\xf8\x05\x94\x37\xef\x42\x57\x58\x6d\x92\x08\xfd\xa0\x07\xd2\xe2\x6f\xe0\x12\x35\x73\xd3\xb1\xdf\x4e\x04\xcd\xe4\xc8\xff\xf4\x2e\x9b\x98\xf7\x3d\x2e\xc8\xa2\x83\xa4\xac\x71\x9b\xd9\xd6\x71\x59\xd8\xda\x08\xea\x13\x9b\x19\x5d\xd8\xd6\x94\xd5\x8a\xe0\x31\x44\x97\x93\x85\x05\xe2\x9b\x08\xd7\x67\xcc\xa4\x4d\xc5\x84\x4b\x11\x8a\xe3\x3d\x14\xad\xe0\xb5\x55\xff\x9b\x81\x88\x65\x4c\xbe\x2b\xfb\x85\x3a\x1a\x59\x92\xd0\x02\xe2\x7f\x2a\x76\x2a\x6e\x8d\x15\x16\xc7\x66\x11\xae\xf5\x09\xf5\x0c\xa9\x4e\x22\xcf\xa2\xd2\x4e\x21\x7e\x78\x1e\xae\x72\xa0\x4a\x72\xaa\x23\xc9\x61\x4e\x5a\x07\x11\x09\xf7\x76\xa1\x98\x63\x3b\x78\x09\x9a\xe1\x33\x35\xbc\x60\x55\x69\x49\xc4\x64\x74\xf0\xe7\x12\xb7\xb0\x94\xc1\x1d\x03\x97\xce\x1f\x03\xf7\xc9\xb3\x46\x2e\x47\x61\x10\xd9\xab\x4f\x52\xd6\x5f\x47\xf5\x60\xf6\xd8\xbd\xb3\x32\x88\x6e\x3f\x05\x02\xe3\x55\x23\x8b\x6c\xb1\xe3\x7a\x75\x1f\x70\x3e\x6d\x8f\xd1\x32\x45\x08\xdc\xf9\xd2\xc7\x31\xaf\x30\x04\xdd\x63\xbb\x6b\xdc\x56\x48\x88\x7d\x5a\xf1\xe5\xe5\xf4\xe6\xcd\xb0\xa8\x50\x21\x59\x27\x43\x24\x88\xe1\x73\xbb\x36\x77\xb8\xbc\x9b\x1a\x69\xa2\x86\x09\x9c\x77\x92\x45\xf9\x93\xd4\xb3\xae\x0f\x5f\xf9\x14\xd5\x4d\x8c\x5b\x12\x65\x69\x3b\x51\xb6\x2c\x4b\xe8\x57\xd7\x0b\x1c\xdc\xaa\x27\x7f\xf4\x75\x0d\x01\x65\xcf\x65\x5e\x38\x49\x92\x78\xf8\xf8\x24\xc3\xe3\x0f\x52\x19\xf2\x4e\x19\xc2\xea\x0e\xaf\x76\x93\xf0\x84\xaa\x9c\x8a\x40\x36\x7b\x1c\x56\xb5\xd2\x2a\xa7\x01\xe1\x03\x59\xde\x46\x5e\x19\x53\x4b\x91\x19\x4c\x9d\xb5\x62\x64\x61\xf2\x2e\xdb\xa6\xea\x4d\x5f\x21\xe6\x06\xc0\xc7\x97\xc4\x8c\xf9\xe3\x7f\x1b\xfa\xb9\xad\xdc\xa3\x64\x78\xbd\xc8\xbd\xc4\xf2\x61\x32\x25\x0e\xde\x4e\xc2\xf0\x44\x64\x9c\x3e\xc2\xdd\x73\xf8\xf7\x7a\x88\xe9\x1f\x56\x59\xd0\x8d\x7f\xb9\x43\xe3\x4f\xc9\xd1\xd3\x02\x0d\x1a\x21\x07\x2c\x41\xbb\xb0\xbe\x8a\xf7\xfe\x02\x51\xdd\x3d\xcb\x6b\xcd\x9b\xcb\xa6\x2e\x49\x05\x1e\xd5\x1b\x65\x28\xce\x67\x36\xc1\x8e\x4b\x2b\x3b\xed\x12\x89\x47\x32\x89\x07\x3a\x48\xc4\x35\x83\x6b\x9f\x31\xcc\xb2\x81\xd1\x90\x77\x28\x98\x03\x88\xbe\x52\x3f\xc9\x6f\x78\x66\x34\x4a\x75\x6c\x39\xa9\x29\xae\xa7\xaa\x4a\x50\x8a\xc2\xcf\x86\x20\xb7\xd9\x16\x5b\xfc\x77\x15\x04\x32\xd1\x6d\x3f\xbb\x00\xae\x1b\x0b\x69\x6c\x43\x52\xa3\x24\xb4\x86\x47\x31\x03\xe1\xc1\x05\xe2\x92\xf7\x40\x2f\xb9\x80\x9a\x47\x3f\x92\xb0\x5e\x87\xaa\xec\x7b\x4f\x19\xdf\xc9\x29\x17\x6c\xb3\x5f\xda\x28\x66\xd3\xd3\xca\x5a\x9d\xac\xc8\xdd\xb0\x76\xd0\x96\xc1\xfe\xcc\x88\xdb\x11\x2c\xbe\x07\x09\x74\xb4\x24\x10\x3a\xa9\x0f\x19\xdb\x99\x6b\x70\x5b\x21\x92\x42\x17\xaf\x15\x7c\x34\xd0\x9d\x99\x7a\x3e\xa8\xf3\x70\x31\x63\xcc\x69\x93\x1d\x19\xe1\xe7\x35\x01\x78\x4f\xf7\x3e\xc2\xfd\xaa\x22\x1a\x7f\x3c\xfd\x4e\x01\x46\xea\x49\x5f\x62\x16\xce\xc6\x2b\xef\x4b\x98\x68\xa0\xe6\xe2\x0b\xc3\x52\xaa\xf8\x76\x43\xcc\x7c\xeb\xae\x91\xb7\x41\xbd\xe0\x54\xe3\x5b\x19\x0f\x06\xf2\x64\x3a\xb6\x42\x24\xd3\xa5\x45\x6e\x0c\x7f\x82\x27\x07\x2a\x38\xb3\x3b\xf2\x9b\xec\x0c\x30\x9a\x1b\x4a\x15\x03\x3d\xd2\x57\x9a\xd5\xfb\x6d\x3e\xc7\x64\x91\xde\x7c\x55\x25\x8d\xc9\x8e\x85\xc6\xc5\x9e\x0d\x12\x0a\xa4\xc9\x8e\xa9\x8f\x0b\x80\x4d\xa2\x4c\x3e\x7c\xe4\xbb\xec\x38\x7c\xd2\x76\x3b\x10\x03\x13\x6c\xae\x43\xd7\x6b\x94\xde\xc5\x2f\x5c\x33\x13\x4d\x36\x8e\xf0\x7b\x36\x3b\xd7\x36\x6e\x4d\x06\xf6\x9d\x79\x1d\xe7\x90\xe4\x33\x60\xe9\xd3\x15\x16\xf7\x38\xe0\xb2\x49\x44\xe8\x9e\xd0\xaf\xa4\xad\xd1\x4e\xf1\xfe\xa0\x93\xe2\x45\xf3\x69\x75\xcd\x67\xeb\x7e\x9f\x5d\x5b\x12\x80\xb6\x0b\x43\x07\x74\xf0\x76\xb3\x35\xfa\x2a\xb9\x88\x95\xcf\x39\x1e\xe1\x4a\x9f\x52\xe5\x6f\x0d\xcc\x1f\xbe\x78\x5f\x74\x4c\x5e\x04\x0b\x16\xbd\xb4\x97\x03\x41\xfb\xc8\xba\x07\x48\xad\x2e\xca\xcf\x51\x19\xe7\x5d\xf1\x05\x9d\xff\x95\x38\xc2\x03\x47\xa9\x4f\xaf\xcf\xc2\xd8\xf4\xc0\x9b\xc1\x68\x61\xe1\x2e\x02\xe3\xf7\xdb\x7e\x0a\x63\x55\x81\x72\x2c\x4d\x3f\xd1\x7d\x59\x4b\xe2\x51\x88\x03\x7f\x02\xdf\x9b\xcd\x4e\x72\xfc\xb2\x27\xd3\x4f\x96\xd0\xc4\xae\x1a\x96\xbb\xe4\x9d\x9e\x93\x7a\xa2\x7e\x12\x5d\xaa\x19\x1e\x63\x1a\xc5\x30\xce\xe7\xc4\x98\xe6\x99\xe8\x5d\xfc\xbd\x65\x42\xef\x3f\xcd\x98\xcb\xe7\x3f\x57\x08\x8c\xff\x3e\xf2\x30\x37\xc8\x09\x4f\xa0\x74\x39\x4e\x04\x66\xee\xe8\x6e\x93\xa5\xf6\x78\xb1\x05\x86\xeb\x72\x4b\xca\x84\xe4\x1a\x53\xc0\x27\x2a\x6b\xd0\x81\x71\x4a\x84\x9c\xd9\x01\xb8\x70\x17\xb5\x4c\xf7\x9c\xe5\x00\xcb\x65\xba\xbe\xc3\xb7\xbe\x6f\x78\x89\xa2\x3a\xac\x25\x2a\xd2\xf4\xca\x2d\xd4\xb0\x70\x1c\xc6\xbc\xe7\x13\x02\x74\xc3\x49\x10\x95\x96\x68\x1c\x0d\xf0\xb0\xb1\x5d\x47\xfd\x6c\x73\xad\xf8\xf4\x66\xd0\x8b\xd4\x2b\x26\xe1\xe0\xa4\x20\xae\x6e\xc7\x0d\xf4\xb1\xa0\x8c\x44\x26\xac\xcb\xdf\xb4\xfb\xc1\x71\x95\x36\x8a\x5b\xc1\xeb\x68\xe1\x4f\x6d\x62\x9e\xf5\x8b\x9e\xee\x0a\x66\xf7\x2b\x3d\x7b\xc8\x1e\x84\x70\x64\x35\x28\x38\xe8\xef\x08\x76\xd4\x58\x68\x0d\x11\x5a\x93\x9f\x49\x43\x75\xf9\xbb\xca\xb9\x49\xa6\x4b\xb5\x03\x08\x0c\x59\x66\xe1\xb1\xb6\xe0\xb7\xc8\x2d\xde\x6e\xa8\x59\x98\xdc\xb7\xaf\x89\xc8\x9c\x76\x5b\xf8\x12\xae\x87\x1f\x15\xec\x08\xdf\x23\x63\x3d\x41\x38\xa6\xa8\x85\x9e\x3d\x30\xee\xe5\xfe\x45\xfd\xca\x8c\xc5\x33\x37\x9d\x5c\xc2\x77\xe7\xbc\xdc\x49\x91\x9d\x02\x02\xbb\x7a\xd4\x04\x60\xc6\x7b\xb3\x94\xa4\x18\x71\x06\x8b\x43\xda\x35\x24\x86\x64\xe4\x7a\x99\x36\xfa\x58\xf7\x80\x46\x6b\x18\x20\xfe\x44\x07\x79\xc8\xe8\x77\x28\x3b\x0e\x31\xf9\xd4\x49\xb7\xae\xe8\x07\x30\x00\xc2\xf5\x5d\x9e\xa9\xc8\x5f\xd9\x35\xa5\x0a\x32\x53\xec\xb8\x6d\x27\x5f\xb8\x6d\x79\x77\x32\x49\x40\xb1\xda\xe1\x0c\xc9\x2b\xff\xf4\xd4\xe9\x6b\xc8\xf5\x83\xe5\x3a\x03\xd4\xa9\x54\x86\xeb\x48\x41\xac\xb6\xec\x38\x40\x23\x9b\x5f\xc4\xca\x8c\xc2\x37\xd0\xb6\x97\xeb\x14\xc9\x30\xb1\x6f\x97\x69\xaa\x79\x27\x94\x53\x0a\xcb\xbf\x7d\x20\x96\xcb\x78\x2b\x1d\x47\x66\xd2\xf9\x10\xa8\x81\xb5\x17\x6f\xb5\x4d\xf9\x60\xad\x0d\xa3\xe4\x60\xd2\xad\x22\x76\x55\x9f\x2e\x23\xd3\x90\x12\x55\xcc\x5f\x1a\x5e\x64\x8b\xb9\xb2\x77\xf0\x32\xe5\xff\xc7\xdc\xf5\x34\x27\xca\x3c\xe1\x7b\x3e\xc5\x54\xb6\xea\x77\xb1\x22\xa0\xa8\x98\xb8\x56\x21\x08\x28\x20\x02\xc6\xa8\x97\x5f\xf1\x1f\x14\x18\x84\x41\x01\xdf\x7c\xf7\xb7\x44\x93\x98\xdd\x6c\xed\x1e\xf6\xf0\x5e\x70\xec\x7e\xba\x9f\xee\x87\x9e\xd1\x13\x2c\xbc\x86\x79\x74\x5c\xdb\x4f\x91\xc3\x6a\x0b\x59\x3f\x96\x29\xc7\x78\x13\x8a\x1a\xe3\x9d\xae\x50\x36\x48\xda\x6f\x59\x2b\x75\x23\xb5\xb5\xf3\x7f\x6a\xe9\xd9\xe9\xb9\xfb\xd5\x0b\x37\xeb\xfe\xd5\x5f\xcc\x2a\xf8\x8f\x3d\x2d\x3c\xea\x7f\xbc\xa6\x1d\x47\x07\x1c\xa7\x9f\x7d\xab\x21\xaf\xbb\xb6\x12\x79\x0e\x37\xf5\x08\x0e\x2e\x97\xc9\xf3\x4b\xc8\x31\x78\xd6\x9a\x70\x1c\xb1\x2d\x46\xa6\x2f\x6e\xc9\x91\x5e\xac\xed\xcc\x9a\xaf\xad\x71\xa4\x46\x13\x76\x8f\x7b\xd9\x58\x9b\x2c\x83\x92\x5c\x24\x6c\x6f\xc9\x55\x1c\x21\xc0\xce\xd6\x69\x19\x24\xf2\x95\xfd\xcc\x0f\x93\x8e\x5c\x91\x55\x6e\x57\x55\x82\x1f\x13\x6d\xc1\x50\xee\x3c\xdd\xe1\xd8\x82\xe9\x36\x5c\x16\xad\x03\x4b\x12\xfa\xbd\x05\x21\x5a\xad\x83\xca\x5a\x59\x23\x15\xda\xce\x33\x5d\x2c\xab\x38\xc6\xdd\x98\x60\x35\x99\x1a\x37\x02\xc5\x3e\x74\x2c\xd4\x5e\x45\x1b\xbe\x5b\x2e\xc3\xd9\xb6\x9b\xc1\xf0\xd9\xf4\x96\x0b\x84\xef\x3b\x1c\x8f\x56\xdd\xc3\x6a\xcf\x74\x97\xbb\x70\x31\x6e\x88\xb4\x82\x29\x0a\x2b\xe8\x13\x75\xae\xa9\x49\xb6\x62\x1a\xbb\xdd\xb8\x6a\x8d\x25\x1a\x2f\x33\x74\xa0\x48\x24\x55\x65\x6e\x65\xe6\xcb\xa8\x0c\x32\x9a\x77\x1b\x2a\xad\xb7\x18\x86\xd5\x34\x49\x9e\xca\x51\xc1\x34\x02\x8a\x21\xb7\xb6\xc4\x44\x58\x25\xf7\x14\x45\xe4\xf8\x04\x59\x4a\x17\x1b\x2d\x92\x29\x5e\x3a\xea\x08\x5f\x37\x22\x57\x54\xf3\xcd\x86\xc7\xb7\xaa\xe7\x68\xe6\x0b\xb5\xb2\x61\x04\xcd\xac\x2f\xcd\xa8\xcc\xb2\x1a\xcf\x73\x61\x56\x92\xec\x71\x4f\x4d\xc2\x2d\x44\x93\x89\x3a\x8e\x3a\x7d\x4c\x83\x7a\x29\x13\x8c\xb8\x5b\x89\x9b\xd9\x28\xea\xed\x26\x4b\xaf\x94\xbb\x47\x8f\x8e\x75\x4f\x13\xfb\x87\xbd\xea\x0a\xf3\x40\xe6\x58\x61\x5f\x72\xcb\x4c\xd2\xfa\x4c\x84\x43\x72\x5d\x41\x9a\xd6\x53\x7d\xcb\x38\xa1\xea\x6a\x73\x93\x58\x5a\xe4\x3e\xc6\xc7\xeb\x8e\xd4\x7a\xe9\xf3\x63\x63\x24\x59\x85\xea\x71\x42\xc2\x9b\x3b\x79\xc2\x4e\xbb\x7d\xa7\x71\xdc\x4e\xa9\xe5\x6a\xaf\x79\x62\x60\xe3\x69\xcf\x45\xaa\x5d\xec\xb4\xac\xaf\xef\xe9\xd6\xce\xa3\x23\x82\xd4\xf5\x89\xea\xf7\x73\x3f\x97\xf8\xb9\x1c\x8b\xd3\x0c\xeb\x88\xfb\x5c\x22\x0a\x7c\x86\x6b\x4c\x16\x54\x81\x07\x59\x43\xda\x8f\x6c\x01\xca\x41\x79\x48\xc3\x51\x26\x2c\x0b\xe2\x98\xf8\x2c\x39\x62\x9c\x23\xdc\x17\xbc\x28\xb2\x47\xda\x43\x4a\x49\x4d\x73\x77\x9d\xef\x1a\x1d\x0f\x86\x3c\x6f\xf0\x9b\xa3\x45\x64\x13\x1e\xb2\x55\x9b\x56\xe6\x1b\x7d\x29\x19\x82\xb7\x3c\x96\x36\x9c\xb2\x32\x21\x90\xac\xa9\x2a\x6c\xee\xf9\xa3\xf6\x3a\x51\x58\x92\x14\x5c\x28\x78\x71\x4e\x3a\x3d\x1d\xe2\x39\x1d\xe0\x19\x12\xa4\x69\x9b\xce\x6d\x6a\xd4\x37\x13\x21\xef\x1e\xe6\x50\xcf\xfb\x0b\xc4\x86\x5d\xf4\x9c\x43\x2e\x98\xac\x15\x2f\xc7\x1b\x44\x87\x92\xc5\x48\x29\x60\x84\x4a\xb6\xad\x06\x58\x5b\x5e\x68\xbd\x80\x12\xf1\x31\xcb\x13\xbc\xa0\x74\xd8\x71\x7b\x45\xb2\x87\x99\xe1\x6f\xc2\xa9\x72\x1c\xef\x14\x7a\x71\xb0\xe7\x56\x0b\xc3\xfc\xa2\x1d\xad\xa6\x9d\x90\x9b\x1a\x1c\x25\x52\xa6\x8e\x6c\x7c\xcd\xbb\xb1\x32\x35\x65\xde\x29\x5a\x44\xd1\xb5\xea\x67\x91\x2a\xe1\x64\xce\x4e\xab\xb4\x67\x49\x7f\xe9\xa0\xb8\x03\xa0\x19\x1b\x69\x0a\x8f\xe0\x74\x0c\x6c\xe4\x3f\x02\x3c\x29\x9e\x6a\x7b\x62\xd8\x76\x10\x7b\xe0\x04\x22\x23\xf5\x82\xf8\x11\x10\xf8\x9b\xf3\x9b\xef\x18\xb6\x93\x82\xd3\x1d\x00\x00\x7c\x64\x7f\x04\xdf\x70\x1c\x7f\xba\x03\xa0\x46\x85\xd0\x83\x57\x8c\xef\x04\x9e\x8f\x1e\x41\xab\x93\x14\x4f\xb5\xe5\x23\xeb\xc5\x52\x93\xd6\x07\x57\x60\xc1\xf8\x1a\x76\x29\x8a\xe8\xfe\x08\xf1\x8d\xcc\xbf\x42\x2c\x18\xc2\xf4\x11\x7c\xeb\xf7\xfb\x6f\x98\x01\x96\xa1\x32\x74\x86\xe7\x25\x0a\x50\xe8\x0c\x4f\x27\xd0\x9c\x1b\xc8\x07\xaf\xaf\x03\xec\x62\xba\x1b\x60\xe7\x2e\x86\x77\x03\x13\xda\x65\x8d\xb5\x83\x03\x08\xec\xef\xf7\x97\xee\xee\x81\x15\x1a\x59\xf6\xfd\x3e\x85\xc7\xfb\x61\xcd\x55\x23\xae\x56\x0b\x86\x0f\x45\xf6\xd0\xba\xba\x6e\xc2\xcf\x6d\xbf\x07\xd7\xe5\xd6\x96\xe1\xff\x62\x33\x4b\x9e\x06\x98\x1d\x1c\xae\xe9\xde\x96\x1f\x0b\x33\xc5\xde\x4b\xf9\x4c\x44\xb4\xbe\x28\x22\x31\x62\x27\x04\xf5\xf5\xc1\x76\x5c\x23\x0f\xd1\xe7\x7a\x6e\x71\x0f\xe7\xbe\x82\xd8\x7b\x47\x00\x30\xc8\x50\x0a\x63\x6f\x38\x89\x6d\xa7\x00\xd0\x05\x9f\x84\xba\x3a\xdf\xd1\xa7\x13\x08\x5c\xd0\x14\xce\xe2\xbf\xbe\x7e\x24\xb9\x21\x7a\xbf\x3b\x37\x24\x75\xe0\xcf\x51\x1f\x3a\x5c\x21\x4e\x6c\x7f\x00\x3e\xb9\x07\xc8\x30\x43\xe7\x8d\xe3\xf2\xa5\xbe\x3e\x64\x28\x0d\x12\xc7\xbe\x6d\x09\xa5\xb7\xd4\x03\x64\xbf\xc5\x5d\x26\xfd\x53\x61\x5f\x14\x5f\x4f\x5f\xbd\xfa\xbf\x19\x1a\xf1\xee\x8b\xfb\xf6\x56\x21\xb2\x7f\xc1\x74\xdd\x3b\x3f\x52\x19\xc0\x4f\x1d\xf7\xfb\xfd\xe9\xd4\x1c\x19\xd6\x4e\x0a\xe2\x1d\xf8\x07\xe4\x69\x38\xce\x2c\x23\x71\x5e\x5f\xef\x87\xcd\xe6\x00\x33\x7e\xc3\x32\xfc\x6c\x1b\x60\xb7\x1d\x9f\x4e\x20\x35\x62\xcf\x01\x4d\x29\xc8\xd0\x79\x03\xdf\x6a\xfe\x93\x36\x7f\x22\xc6\xe9\x74\xfe\xe0\x52\x18\x8d\x0b\x04\x9a\x33\x23\xaa\x4b\xfd\x73\x59\x7e\x29\xc3\x75\xd6\x6e\x34\x00\xe7\xcc\x67\xc7\x99\xa5\x1e\xc2\xdf\xaa\x71\x46\xeb\x41\x75\x41\xff\x4a\x98\x9f\xc7\xab\x9e\x9f\xaf\xf7\xe1\x00\xbb\x1c\x09\x03\xcc\x47\x51\x38\xbc\xfb\x37\x00\x00\xff\xff\x2c\x5b\xe8\xd0\x66\x9e\x01\x00") - -func dirIndexHtmlDirIndexHtmlBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlDirIndexHtml, - "dir-index-html/dir-index.html", - ) -} - -func dirIndexHtmlDirIndexHtml() (*asset, error) { - bytes, err := dirIndexHtmlDirIndexHtmlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/dir-index.html", size: 106086, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlIndexGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2a\x48\x4c\xce\x4e\x4c\x4f\x55\x48\xc9\x2c\xca\xcc\x4b\x49\xad\xc8\x28\xc9\xcd\xe1\x02\x04\x00\x00\xff\xff\x70\x1d\x35\x57\x15\x00\x00\x00") - -func dirIndexHtmlIndexGoBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlIndexGo, - "dir-index-html/index.go", - ) -} - -func dirIndexHtmlIndexGo() (*asset, error) { - bytes, err := dirIndexHtmlIndexGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/index.go", size: 21, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlKnowniconsTxt = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x1c\xd0\x5d\x8e\xc3\x20\x0c\x04\xe0\xf7\x39\xcc\xbc\xec\x5e\xc8\xe5\x2f\x74\x61\xe3\xc6\x56\x4a\x7a\xfa\xca\x79\xf9\x90\x41\x68\x34\xa6\x48\x02\xa5\xd7\x1a\x82\x72\x76\xf0\x31\x15\x4c\x60\xd2\x38\xcd\xc0\x2c\x0e\xe6\xd9\xc0\xbc\xa7\xc0\x17\x98\xdf\x31\xaf\x0a\x16\x35\xb0\xac\x02\xd6\x71\x82\xad\x57\x70\x03\xb7\xf8\xbf\xf9\x1c\x60\x4f\x06\x76\xdb\xc1\xa7\x9c\x02\x3e\xb5\x05\x25\x34\xf0\xaf\x5c\xe0\x28\x11\x35\x7b\x06\xa7\xfe\x04\xbf\x41\x03\xf7\x5c\x03\x0b\x1c\xdc\x5d\x83\x18\xdd\x41\x8d\x57\xdd\x14\xd4\xff\x06\xaa\xc6\x9d\x65\x50\x2f\xf0\xe5\xe0\x21\x07\x78\x3c\xc0\xc3\x2b\x68\x12\x31\x76\xf7\xb2\xd7\x00\xbd\x49\xf0\x01\xfd\xde\x83\x2f\x07\xdf\x72\x82\x6b\xd8\xcd\x02\x57\xb4\xb8\x82\x4f\x57\x7c\x03\x00\x00\xff\xff\x93\x43\x2e\x24\x37\x01\x00\x00") - -func dirIndexHtmlKnowniconsTxtBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlKnowniconsTxt, - "dir-index-html/knownIcons.txt", - ) -} - -func dirIndexHtmlKnowniconsTxt() (*asset, error) { - bytes, err := dirIndexHtmlKnowniconsTxtBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/knownIcons.txt", size: 311, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _dirIndexHtmlPackageJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x8f\x4d\x4b\xf3\x40\x14\x85\xf7\xf9\x15\x97\xcb\xbb\x6c\x26\xed\x4b\xdd\x64\xab\x2e\xba\x50\x41\xa5\x1b\xeb\x62\x92\x5c\x67\x2e\xcc\x47\x98\x8f\x12\x90\xfe\x77\x99\x24\x50\x05\xc1\xed\xc3\x3d\xcf\x3d\xe7\xb3\x02\x40\x99\x93\xf6\x01\x5b\x40\xa3\x98\x42\xd2\xb8\x29\xb8\xcb\x2a\x62\x0b\xe5\x04\x00\x73\x30\xe5\x42\xa7\x34\xc6\xb6\x69\x14\x27\x9d\x3b\xd1\x7b\xdb\xf0\xf8\x11\x9b\x81\x43\xcd\x6e\xa0\xa9\xd6\xc9\x1a\xac\x00\x2e\xb3\x44\x4d\x57\xc5\x70\xee\x23\xdb\xd1\x87\x54\x4c\x7f\x18\x36\x4b\x46\xf9\x33\x85\xc8\xde\x95\xc8\x4e\xdc\x88\xff\xdf\xdd\x77\x34\x92\x1b\xc8\xf5\x4c\xa5\xea\xdb\xfb\xca\x8f\xd7\xcc\x56\xec\xf6\x62\xbb\x2c\x32\xd2\xa9\x2c\x15\xcd\xef\xfd\xca\xb8\x27\x17\x67\xf4\x70\x78\x5d\x98\x93\x76\x06\xbf\x54\xc2\x40\x86\x64\xa4\x5b\x3b\xac\x23\xa0\xf7\xd6\x72\x82\x5a\x42\x6d\xe1\x84\x6a\x82\x31\x77\x86\xa3\x86\x7f\xc7\xfb\xe7\x97\xc3\xd3\xe3\x09\x97\xec\x8f\x29\x5b\xb1\xc7\xea\x52\x55\x5f\x01\x00\x00\xff\xff\x95\xbf\xad\xd5\x83\x01\x00\x00") - -func dirIndexHtmlPackageJsonBytes() ([]byte, error) { - return bindataRead( - _dirIndexHtmlPackageJson, - "dir-index-html/package.json", - ) -} - -func dirIndexHtmlPackageJson() (*asset, error) { - bytes, err := dirIndexHtmlPackageJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "dir-index-html/package.json", size: 387, mode: os.FileMode(384), modTime: time.Unix(1545346300, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "init-doc/about": initDocAbout, - "init-doc/contact": initDocContact, - "init-doc/help": initDocHelp, - "init-doc/ping": initDocPing, - "init-doc/quick-start": initDocQuickStart, - "init-doc/readme": initDocReadme, - "init-doc/security-notes": initDocSecurityNotes, - "dir-index-html/LICENSE": dirIndexHtmlLicense, - "dir-index-html/README.md": dirIndexHtmlReadmeMd, - "dir-index-html/dir-index-uncat.html": dirIndexHtmlDirIndexUncatHtml, - "dir-index-html/dir-index.html": dirIndexHtmlDirIndexHtml, - "dir-index-html/index.go": dirIndexHtmlIndexGo, - "dir-index-html/knownIcons.txt": dirIndexHtmlKnowniconsTxt, - "dir-index-html/package.json": dirIndexHtmlPackageJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "dir-index-html": &bintree{nil, map[string]*bintree{ - "LICENSE": &bintree{dirIndexHtmlLicense, map[string]*bintree{}}, - "README.md": &bintree{dirIndexHtmlReadmeMd, map[string]*bintree{}}, - "dir-index-uncat.html": &bintree{dirIndexHtmlDirIndexUncatHtml, map[string]*bintree{}}, - "dir-index.html": &bintree{dirIndexHtmlDirIndexHtml, map[string]*bintree{}}, - "index.go": &bintree{dirIndexHtmlIndexGo, map[string]*bintree{}}, - "knownIcons.txt": &bintree{dirIndexHtmlKnowniconsTxt, map[string]*bintree{}}, - "package.json": &bintree{dirIndexHtmlPackageJson, map[string]*bintree{}}, - }}, - "init-doc": &bintree{nil, map[string]*bintree{ - "about": &bintree{initDocAbout, map[string]*bintree{}}, - "contact": &bintree{initDocContact, map[string]*bintree{}}, - "help": &bintree{initDocHelp, map[string]*bintree{}}, - "ping": &bintree{initDocPing, map[string]*bintree{}}, - "quick-start": &bintree{initDocQuickStart, map[string]*bintree{}}, - "readme": &bintree{initDocReadme, map[string]*bintree{}}, - "security-notes": &bintree{initDocSecurityNotes, map[string]*bintree{}}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/about b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/about deleted file mode 100644 index eaa644b2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/about +++ /dev/null @@ -1,53 +0,0 @@ - - IPFS -- Inter-Planetary File system - -IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas -from Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bit- -torrent swarm, exchanging git objects. IPFS provides an interface as simple -as the HTTP web, but with permanence built in. You can also mount the world -at /ipfs. - -IPFS is a protocol: -- defines a content-addressed file system -- coordinates content delivery -- combines Kademlia + BitTorrent + Git - -IPFS is a filesystem: -- has directories and files -- mountable filesystem (via FUSE) - -IPFS is a web: -- can be used to view documents like the web -- files accessible via HTTP at `http://ipfs.io/` -- browsers or extensions can learn to use `ipfs://` directly -- hash-addressed content guarantees authenticity - -IPFS is modular: -- connection layer over any network protocol -- routing layer -- uses a routing layer DHT (kademlia/coral) -- uses a path-based naming service -- uses bittorrent-inspired block exchange - -IPFS uses crypto: -- cryptographic-hash content addressing -- block-level deduplication -- file integrity + versioning -- filesystem-level encryption + signing support - -IPFS is p2p: -- worldwide peer-to-peer file transfers -- completely decentralized architecture -- **no** central point of failure - -IPFS is a cdn: -- add a file to the filesystem locally, and it's now available to the world -- caching-friendly (content-hash naming) -- bittorrent-based bandwidth distribution - -IPFS has a name service: -- IPNS, an SFS inspired name system -- global namespace based on PKI -- serves to build trust chains -- compatible with other NSes -- can map DNS, .onion, .bit, etc to IPNS diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/contact b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/contact deleted file mode 100644 index 965de025..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/contact +++ /dev/null @@ -1,6 +0,0 @@ -Come hang out in our IRC chat room if you have any questions. - -Contact the ipfs dev team: -- Bugs: https://github.com/ipfs/go-ipfs/issues -- Help: irc.freenode.org/#ipfs -- Email: dev@ipfs.io diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/docs/index b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/docs/index deleted file mode 100644 index c846c91b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/docs/index +++ /dev/null @@ -1 +0,0 @@ -Index diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/help b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/help deleted file mode 100644 index d069d6ba..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/help +++ /dev/null @@ -1,7 +0,0 @@ -Some helpful resources for finding your way around ipfs: - -- quick-start: a quick show of various ipfs features. -- ipfs commands: a list of all commands -- ipfs --help: every command describes itself -- https://github.com/ipfs/go-ipfs -- the src repository -- #ipfs on irc.freenode.org -- the community irc channel diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/ping b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/ping deleted file mode 100644 index 911dd04a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/ping +++ /dev/null @@ -1 +0,0 @@ -ipfs \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/quick-start b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/quick-start deleted file mode 100644 index 9de98357..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/quick-start +++ /dev/null @@ -1,113 +0,0 @@ -# 0.1 - Quick Start - -This is a set of short examples with minimal explanation. It is meant as -a "quick start". - - -Add a file to ipfs: - - echo "hello world" >hello - ipfs add hello - - -View it: - - ipfs cat - - -Try a directory: - - mkdir foo - mkdir foo/bar - echo "baz" > foo/baz - echo "baz" > foo/bar/baz - ipfs add -r foo - - -View things: - - ipfs ls - ipfs ls /bar - ipfs cat /baz - ipfs cat /bar/baz - ipfs cat /bar - ipfs ls /baz - - -References: - - ipfs refs - ipfs refs -r - ipfs refs --help - - -Get: - - ipfs get -o foo2 - diff foo foo2 - - -Objects: - - ipfs object get - ipfs object get /foo2 - ipfs object --help - - -Pin + GC: - - ipfs pin add - ipfs repo gc - ipfs ls - ipfs pin rm - ipfs repo gc - - -Daemon: - - ipfs daemon (in another terminal) - ipfs id - - -Network: - - (must be online) - ipfs swarm peers - ipfs id - ipfs cat - - -Mount: - - (warning: fuse is finicky!) - ipfs mount - cd /ipfs/ - ls - - -Tool: - - ipfs version - ipfs update - ipfs commands - ipfs config --help - open http://localhost:5001/webui - - -Browse: - - webui: - - http://localhost:5001/webui - - video: - - http://localhost:8080/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXse - - images: - - http://localhost:8080/ipfs/QmZpc3HvfjEXvLWGQPWbHk3AjD5j8NEN4gmFN8Jmrd5g83/cs - - markdown renderer app: - - http://localhost:8080/ipfs/QmX7M9CiYXjVeFnkfVGf3y5ixTZ2ACeSGyL1vBJY1HvQPp/mdown diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/readme b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/readme deleted file mode 100644 index eeade661..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/readme +++ /dev/null @@ -1,26 +0,0 @@ -Hello and Welcome to IPFS! - -██╗██████╗ ███████╗███████╗ -██║██╔â•â•â–ˆâ–ˆâ•—██╔â•â•â•â•â•â–ˆâ–ˆâ•”â•â•â•â•â• -██║██████╔â•â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ•— ███████╗ -██║██╔â•â•â•â• ██╔â•â•â• â•šâ•â•â•â•â–ˆâ–ˆâ•‘ -██║██║ ██║ ███████║ -â•šâ•â•â•šâ•â• â•šâ•â• â•šâ•â•â•â•â•â•â• - -If you're seeing this, you have successfully installed -IPFS and are now interfacing with the ipfs merkledag! - - ------------------------------------------------------- -| Warning: | -| This is alpha software. Use at your own discretion! | -| Much is missing or lacking polish. There are bugs. | -| Not yet secure. Read the security notes for more. | - ------------------------------------------------------- - -Check out some of the other files in this directory: - - ./about - ./help - ./quick-start <-- usage examples - ./readme <-- this file - ./security-notes diff --git a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/security-notes b/vendor/github.com/ipfs/go-ipfs/assets/init-doc/security-notes deleted file mode 100644 index 00b70b6d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/assets/init-doc/security-notes +++ /dev/null @@ -1,25 +0,0 @@ - IPFS Alpha Security Notes - -We try hard to ensure our system is safe and robust, but all software -has bugs, especially new software. This distribution is meant to be an -alpha preview, don't use it for anything mission critical. - -Please note the following: - -- This is alpha software and has not been audited. It is our goal - to conduct a proper security audit once we close in on a 1.0 release. - -- ipfs is a networked program, and may have serious undiscovered - vulnerabilities. It is written in Go, and we do not execute any - user provided data. But please point any problems out to us in a - github issue, or email security@ipfs.io privately. - -- security@ipfs.io GPG key: - - 4B9665FB 92636D17 7C7A86D3 50AAE8A9 59B13AF3 - - https://pgp.mit.edu/pks/lookup?op=get&search=0x50AAE8A959B13AF3 - -- ipfs uses encryption for all communication, but it's NOT PROVEN SECURE - YET! It may be totally broken. For now, the code is included to make - sure we benchmark our operations with encryption in mind. In the future, - there will be an "unsafe" mode for high performance intranet apps. - If this is a blocking feature for you, please contact us. diff --git a/vendor/github.com/ipfs/go-ipfs/bin/Rules.mk b/vendor/github.com/ipfs/go-ipfs/bin/Rules.mk deleted file mode 100644 index 73487762..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/Rules.mk +++ /dev/null @@ -1,30 +0,0 @@ -include mk/header.mk - -dist_root_$(d)="/ipfs/QmPrXH9jRVwvd7r5MC5e6nV4uauQGzLk1i2647Ye9Vbbwe" - -$(d)/gx: $(d)/gx-v0.14.0 -$(d)/gx-go: $(d)/gx-go-v1.9.0 - -TGTS_$(d) := $(d)/gx $(d)/gx-go -DISTCLEAN += $(wildcard $(d)/gx-v*) $(wildcard $(d)/gx-go-v*) $(d)/tmp - -PATH := $(realpath $(d)):$(PATH) - -$(TGTS_$(d)): - rm -f $@$(?exe) -ifeq ($(WINDOWS),1) - cp $^$(?exe) $@$(?exe) -else - ln -s $(notdir $^) $@ -endif - -bin/gx-v%: - @echo "installing gx $(@:bin/gx-%=%)" - bin/dist_get $(dist_root_bin) gx $@ $(@:bin/gx-%=%) - -bin/gx-go-v%: - @echo "installing gx-go $(@:bin/gx-go-%=%)" - @bin/dist_get $(dist_root_bin) gx-go $@ $(@:bin/gx-go-%=%) - -CLEAN += $(TGTS_$(d)) -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/bin/archive-branches.sh b/vendor/github.com/ipfs/go-ipfs/bin/archive-branches.sh deleted file mode 100755 index 50fcb3cc..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/archive-branches.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -IFS=$'\n\t' - -auth="" -#auth="-u kubuxu:$GH_TOKEN" -org=ipfs -repo=go-ipfs -arch_repo=go-ipfs-archived -api_repo="repos/$org/$repo" - -exclusions=( - 'master' - 'release' - 'feat/zcash' - 'feat/ai-mirror' -) - -gh_api_next() { - links=$(grep '^Link:' | sed -e 's/Link: //' -e 's/, /\n/g') - echo "$links" | grep '; rel="next"' >/dev/null || return - link=$(echo "$links" | grep '; rel="next"' | sed -e 's/^.*//') - - curl $auth -f -sD >(gh_api_next) "$link" -} - -gh_api() { - curl $auth -f -sD >(gh_api_next) "https://api.github.com/$1" | jq -s '[.[] | .[]]' -} - -pr_branches() { - gh_api "$api_repo/pulls" | jq -r '.[].head.label | select(test("^ipfs:"))' \ - | sed 's/^ipfs://' -} - -origin_refs() { - format=${1-'%(refname:short)'} - - git for-each-ref --format "$format" refs/remotes/origin | sed 's|^origin/||' -} - -active_branches() { - origin_refs '%(refname:short) %(committerdate:unix)' |awk \ -' BEGIN { monthAgo = systime() - 31*24*60*60 } - { if ($2 > monthAgo) print $1 } -' -} - -git remote add archived "git@github.com:$org/$arch_repo.git" || true - -branches_to_move="$(cat <(active_branches) <(pr_branches) <((IFS=$'\n'; echo "${exclusions[*]}")) | sort -u | comm - <(origin_refs | sort) -13)" - -echo "================" -printf "%s\n" "$branches_to_move" -echo "================" - -echo "Please confirm move of above branches [y/N]:" - -read line -case $line in - [Yy]|[Yy][Ee][Ss]) ;; - *) exit 1 ;; -esac - - -printf "%s\n" "$branches_to_move" | \ -while read -r ref; do - git push archived "origin/$ref:refs/heads/$ref/$(date --rfc-3339=date)" - git push origin --delete "$ref" - done - diff --git a/vendor/github.com/ipfs/go-ipfs/bin/check_go_path b/vendor/github.com/ipfs/go-ipfs/bin/check_go_path deleted file mode 100755 index 33567ce0..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/check_go_path +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -set -e - -PKG="$1" - -DIR="$(pwd -P)" -GOPATH="$(go env GOPATH)" - -# The path separator is ; on windows. -if [ "$(go env GOOS)" = "windows" ]; then - PATHSEP=';' -else - PATHSEP=':' -fi - -while read -r -d "$PATHSEP" p; do - if ! cd "$p/src/$PKG" 2>/dev/null; then - continue - fi - - if [ "$DIR" = "$(pwd -P)" ]; then - exit 0 - fi - cd "$DIR" -done <<< "$GOPATH$PATHSEP" - -echo "go-ipfs must be built from within your \$GOPATH directory." -echo "expected within '$GOPATH' but got '$DIR'" -exit 1 diff --git a/vendor/github.com/ipfs/go-ipfs/bin/check_go_version b/vendor/github.com/ipfs/go-ipfs/bin/check_go_version deleted file mode 100755 index 557c9d97..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/check_go_version +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# -# Check that the go version is at least equal to a minimum version -# number. -# -# Call it for example like this: -# -# $ check_go_version "1.5.2" -# - -USAGE="$0 GO_MIN_VERSION" - -die() { - printf >&2 "fatal: %s\n" "$@" - exit 1 -} - -# Get arguments - -test "$#" -eq "1" || die "This program must be passed exactly 1 arguments" "Usage: $USAGE" - -GO_MIN_VERSION="$1" - -UPGRADE_MSG="Please take a look at https://golang.org/doc/install to install or upgrade go." - -# Get path to the directory containing this file -# If $0 has no slashes, uses "./" -PREFIX=$(expr "$0" : "\(.*\/\)") || PREFIX='./' -# Include the 'check_at_least_version' function -. ${PREFIX}check_version - -# Check that the go binary exist and is in the path - -type go >/dev/null 2>&1 || die_upgrade "go is not installed or not in the PATH!" - -# Check the go binary version - -VERS_STR=$(go version 2>&1) || die "'go version' failed with output: $VERS_STR" - -GO_CUR_VERSION=$(expr "$VERS_STR" : ".*go version go\([^ ]*\) .*") || die "Invalid 'go version' output: $VERS_STR" - -check_at_least_version "$GO_MIN_VERSION" "$GO_CUR_VERSION" "go" diff --git a/vendor/github.com/ipfs/go-ipfs/bin/check_gx_program b/vendor/github.com/ipfs/go-ipfs/bin/check_gx_program deleted file mode 100755 index a1e7770a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/check_gx_program +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# -# Check if a gx program is installed and if its version is at least -# equal to a minimum version number. -# -# Call it for example like this: -# -# $ check_gx_program "gx-go" "0.2.0" "Use 'make gx_upgrade' to install or upgrade gx-go." -# -# or: -# -# $ check_gx_program "gx" "0.3" "Use 'make gx_upgrade' to install or upgrade gx." -# - -USAGE="$0 GX_PROGRAM_NAME GX_MIN_VERSION UPGRADE_MSG" - -die() { - printf >&2 "fatal: %s\n" "$@" - exit 1 -} - -# Get arguments - -test "$#" -eq "3" || die "This program must be passed exactly 3 arguments" "Usage: $USAGE" - -GX_PROGRAM_NAME="$1" -GX_MIN_VERSION="$2" -UPGRADE_MSG="$3" - -# Get path to the directory containing this file -# If $0 has no slashes, uses "./" -PREFIX=$(expr "$0" : "\(.*\/\)") || PREFIX='./' -# Include the 'check_at_least_version' function -. ${PREFIX}check_version - -# Check that the gx program exists - -type "$GX_PROGRAM_NAME" >/dev/null 2>&1 || die_upgrade "Program $GX_PROGRAM_NAME is not installed!" - -# Check the gx program version - -VERS_STR=$($GX_PROGRAM_NAME -v 2>&1) || die "'$GX_PROGRAM_NAME -v' failed with output: $VERS_STR" - -GX_CUR_VERSION=$(expr "$VERS_STR" : ".*$GX_PROGRAM_NAME.* version \(.*\)") || die "Invalid '$GX_PROGRAM_NAME -v' output: $VERS_STR" - -check_at_least_version "$GX_MIN_VERSION" "$GX_CUR_VERSION" "$GX_PROGRAM_NAME" diff --git a/vendor/github.com/ipfs/go-ipfs/bin/check_version b/vendor/github.com/ipfs/go-ipfs/bin/check_version deleted file mode 100755 index 6309238d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/check_version +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh - -if test "x$UPGRADE_MSG" = "x"; then - printf >&2 "fatal: Please set '"'$UPGRADE_MSG'"' before sourcing this script\n" - exit 1 -fi - -die_upgrade() { - printf >&2 "fatal: %s\n" "$@" - printf >&2 "=> %s\n" "$UPGRADE_MSG" - exit 1 -} - -major_number() { - vers="$1" - - # Hack around 'expr' exiting with code 1 when it outputs 0 - case "$vers" in - 0) echo "0" ;; - 0.*) echo "0" ;; - *) expr "$vers" : "\([^.]*\).*" || return 1 - esac -} - -check_at_least_version() { - MIN_VERS="$1" - CUR_VERS="$2" - PROG_NAME="$3" - - # Get major, minor and fix numbers for each version - MIN_MAJ=$(major_number "$MIN_VERS") || die "No major version number in '$MIN_VERS' for '$PROG_NAME'" - CUR_MAJ=$(major_number "$CUR_VERS") || die "No major version number in '$CUR_VERS' for '$PROG_NAME'" - - # We expect a version to be of form X.X.X - # if the second dot doesn't match, we consider it a prerelease - - if MIN_MIN=$(expr "$MIN_VERS" : "[^.]*\.\([0-9]\+\)"); then - # this captured digit is necessary, since expr returns code 1 if the output is empty - if expr "$MIN_VERS" : "[^.]*\.[0-9]*\([0-9]\.\|[0-9]\$\)" >/dev/null; then - MIN_PRERELEASE="0" - else - MIN_PRERELEASE="1" - fi - MIN_FIX=$(expr "$MIN_VERS" : "[^.]*\.[0-9]\+[^0-9]\+\([0-9]\+\)") || MIN_FIX="0" - else - MIN_MIN="0" - MIN_PRERELEASE="0" - MIN_FIX="0" - fi - if CUR_MIN=$(expr "$CUR_VERS" : "[^.]*\.\([0-9]\+\)"); then - # this captured digit is necessary, since expr returns code 1 if the output is empty - if expr "$CUR_VERS" : "[^.]*\.[0-9]*\([0-9]\.\|[0-9]\$\)" >/dev/null; then - CUR_PRERELEASE="0" - else - CUR_PRERELEASE="1" - fi - CUR_FIX=$(expr "$CUR_VERS" : "[^.]*\.[0-9]\+[^0-9]\+\([0-9]\+\)") || CUR_FIX="0" - else - CUR_MIN="0" - CUR_PRERELEASE="0" - CUR_FIX="0" - fi - - # Compare versions - VERS_LEAST="$PROG_NAME version '$CUR_VERS' should be at least '$MIN_VERS'" - test "$CUR_MAJ" -lt "$MIN_MAJ" && die_upgrade "$VERS_LEAST" - test "$CUR_MAJ" -gt "$MIN_MAJ" || { - test "$CUR_MIN" -lt "$MIN_MIN" && die_upgrade "$VERS_LEAST" - test "$CUR_MIN" -gt "$MIN_MIN" || { - test "$CUR_PRERELEASE" -gt "$MIN_PRERELEASE" && die_upgrade "$VERS_LEAST" - test "$CUR_PRERELEASE" -lt "$MIN_PRERELEASE" || { - test "$CUR_FIX" -lt "$MIN_FIX" && die_upgrade "$VERS_LEAST" - true - } - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/bin/container_daemon b/vendor/github.com/ipfs/go-ipfs/bin/container_daemon deleted file mode 100755 index 3a0c5fd5..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/container_daemon +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -set -e -user=ipfs -repo="$IPFS_PATH" - -if [ `id -u` -eq 0 ]; then - echo "Changing user to $user" - # ensure folder is writable - su-exec "$user" test -w "$repo" || chown -R -- "$user" "$repo" - # restart script with new privileges - exec su-exec "$user" "$0" "$@" -fi - -# 2nd invocation with regular user -ipfs version - -if [ -e "$repo/config" ]; then - echo "Found IPFS fs-repo at $repo" -else - case "$IPFS_PROFILE" in - "") INIT_ARGS="" ;; - *) INIT_ARGS="--profile=$IPFS_PROFILE" ;; - esac - ipfs init $INIT_ARGS - ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001 - ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080 -fi - -# if the first argument is daemon -if [ "$1" = "daemon" ]; then - # filter the first argument until - # https://github.com/ipfs/go-ipfs/pull/3573 - # has been resolved - shift -else - # print deprecation warning - # go-ipfs used to hardcode "ipfs daemon" in it's entrypoint - # this workaround supports the new syntax so people start setting daemon explicitly - # when overwriting CMD - echo "DEPRECATED: arguments have been set but the first argument isn't 'daemon'" >&2 - echo "DEPRECATED: run 'docker run ipfs/go-ipfs daemon $@' instead" >&2 - echo "DEPRECATED: see the following PRs for more information:" >&2 - echo "DEPRECATED: * https://github.com/ipfs/go-ipfs/pull/3573" >&2 - echo "DEPRECATED: * https://github.com/ipfs/go-ipfs/pull/3685" >&2 -fi - -exec ipfs daemon "$@" diff --git a/vendor/github.com/ipfs/go-ipfs/bin/dist_get b/vendor/github.com/ipfs/go-ipfs/bin/dist_get deleted file mode 100755 index 25a22b8a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/dist_get +++ /dev/null @@ -1,175 +0,0 @@ -#!/bin/sh - -die() { - echo "$@" >&2 - exit 1 -} - -have_binary() { - type "$1" > /dev/null 2> /dev/null -} - -check_writable() { - printf "" > "$1" && rm "$1" -} - -try_download() { - url="$1" - output="$2" - command="$3" - util_name="$(set -- $command; echo "$1")" - - if ! have_binary "$util_name"; then - return 1 - fi - - printf '==> Using %s to download "%s" to "%s"\n' "$util_name" "$url" "$output" - if eval "$command"; then - echo "==> Download complete!" - return - else - echo "error: couldn't download with $util_name ($?)" - return 1 - fi -} - -download() { - dl_url="$1" - dl_output="$2" - - test "$#" -eq "2" || die "download requires exactly two arguments, was given $@" - - if ! check_writable "$dl_output"; then - die "download error: cannot write to $dl_output" - fi - - try_download "$dl_url" "$dl_output" "wget '$dl_url' -O '$dl_output'" && return - try_download "$dl_url" "$dl_output" "curl --silent --fail --output '$dl_output' '$dl_url'" && return - try_download "$dl_url" "$dl_output" "fetch '$dl_url' -o '$dl_output'" && return - try_download "$dl_url" "$dl_output" "http '$dl_url' > '$dl_output'" && return - try_download "$dl_url" "$dl_output" "ftp -o '$dl_output' '$dl_url'" && return - - die "Unable to download $dl_url. exiting." -} - -unarchive() { - ua_archivetype="$1" - ua_infile="$2" - ua_outfile="$3" - ua_distname="$4" - ua_binpostfix="" - ua_os=$(uname -o) - - if [ "$ua_os" = "Msys" ] || [ "$ua_os" = "Cygwin" ] ; then - ua_binpostfix=".exe" - fi - ua_outfile="$ua_outfile$ua_binpostfix" - - if ! check_writable "$ua_outfile"; then - die "unarchive error: cannot write to $ua_outfile" - fi - - case "$ua_archivetype" in - tar.gz) - if have_binary tar; then - echo "==> using 'tar' to extract binary from archive" - < "$ua_infile" tar -Ozxf - "$ua_distname/$ua_distname$ua_binpostfix" > "$ua_outfile" \ - || die "tar has failed" - else - die "no binary on system for extracting tar files" - fi - ;; - zip) - if have_binary unzip; then - echo "==> using 'unzip' to extract binary from archive" - unzip -p "$ua_infile" "$ua_distname/$ua_distname$ua_binpostfix" > "$ua_outfile" \ - || die "unzip has failed" - else - die "no installed method for extracting .zip archives" - fi - ;; - *) - die "unrecognized archive type '$ua_archivetype'" - esac - - chmod +x "$ua_outfile" || die "chmod has failed" -} - -get_go_vars() { - if [ ! -z "$GOOS" ] && [ ! -z "$GOARCH" ]; then - printf "%s-%s" "$GOOS" "$GOARCH" - elif have_binary go; then - printf "%s-%s" "$(go env GOOS)" "$(go env GOARCH)" - else - die "no way of determining system GOOS and GOARCH\nPlease manually set GOOS and GOARCH then retry." - fi -} - -mkurl() { - m_root="$1" - m_name="$2" - m_vers="$3" - m_archive="$4" - m_govars=$(get_go_vars) || die "could not get go env vars" - - echo "https://ipfs.io$m_root/$m_name/$m_vers/${m_name}_${m_vers}_$m_govars.$m_archive" -} - -distroot="$1" -distname="$2" -outpath="$3" -version="$4" - -if [ -z "$distroot" ] || [ -z "$distname" ] || [ -z "$outpath" ] || [ -z "$version" ]; then - die "usage: dist_get " -fi - -case $version in - v*) - # correct input - ;; - *) - echo "invalid version '$version'" >&2 - die "versions must begin with 'v', for example: v0.4.0" - ;; -esac - -# TODO: don't depend on the go tool being installed to detect this -goenv=$(get_go_vars) || die "could not get go env vars" - -case $goenv in - linux-*) - archive="tar.gz" - ;; - darwin-*) - archive="tar.gz" - ;; - windows-*) - archive="zip" - ;; - freebsd-*) - archive="tar.gz" - ;; - openbsd-*) - archive="tar.gz" - ;; - *) - echo "unrecognized system environment: $goenv" >&2 - die "currently only linux, darwin, windows and freebsd are supported by this script" -esac - - -mkdir -p bin/tmp - -url=$(mkurl "$distroot" "$distname" "$version" "$archive") -tmpfi="bin/tmp/$distname.$archive" - -download "$url" "$tmpfi" -if [ $? -ne 0 ]; then - die "failed to download $url to $tmpfi" -fi - -unarchive "$archive" "$tmpfi" "$outpath" "$distname" -if [ $? -ne 0 ]; then - die "failed to extract archive $tmpfi" -fi diff --git a/vendor/github.com/ipfs/go-ipfs/bin/gencmdref b/vendor/github.com/ipfs/go-ipfs/bin/gencmdref deleted file mode 100755 index e8a9ea62..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/gencmdref +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import datetime -import subprocess - -from subprocess import check_output - -def run(cmd): - return check_output(cmd) - -def main(): - lines = [l.strip() for l in sys.stdin] - - print '# ipfs command reference' - print '' - print 'generated on', datetime.datetime.now() - print '' - for line in lines: - print '- [%s](#%s)' % (line, line.replace(' ', '-')) - print '' - - for line in lines: - print '## %s' % line - print '' - print '```' - print run((line + ' --help').split(' ')).strip() - print '```' - print '' - -if __name__ == '__main__': - if '-h' in sys.argv or '--help' in sys.argv: - print 'usage: ipfs commands | %s >cmdref.md' % sys.argv[0] - print 'outputs all commands with --help to a markdown file' - exit(0) - - main() diff --git a/vendor/github.com/ipfs/go-ipfs/bin/graphmd b/vendor/github.com/ipfs/go-ipfs/bin/graphmd deleted file mode 100755 index 7b80b11f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/graphmd +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -if [ "$#" -ne 1 ]; then - echo "usage: $0 ..." - echo "output merkledag links in graphviz dot" - echo "" - echo "use it with dot:" - echo " $0 QmZPAMWUfLD95GsdorXt9hH7aVrarb2SuLDMVVe6gABYmx | dot -Tsvg" - echo " $0 QmZPAMWUfLD95GsdorXt9hH7aVrarb2SuLDMVVe6gABYmx | dot -Tpng" - echo " $0 QmZPAMWUfLD95GsdorXt9hH7aVrarb2SuLDMVVe6gABYmx | dot -Tpdf" - echo "" - exit 1 -fi - -src=' [fontsize=8 shape=box];' -dst=' [fontsize=8 shape=box];' -edge=' -> [label=""];' -fmt="$src -$dst -$edge" - -echo "digraph {" -echo " graph [rankdir=LR];" -ipfs refs -r --format="$fmt" "$@" | awk '{ print "\t" $0 }' -# ipfs refs -r --format="$fmt" "$@" | awk '{ print "\t" $0 }' | unflatten -l3 -echo "}" diff --git a/vendor/github.com/ipfs/go-ipfs/bin/ipns-republish b/vendor/github.com/ipfs/go-ipfs/bin/ipns-republish deleted file mode 100755 index f5535ee4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/ipns-republish +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -if [ "$#" -ne 1 ]; then - echo "usage: $0 " - echo "republishes an ipns name every 20 minutes" - echo "(this is an icky stop-gap until ipfs nodes do it for you)" - echo "" - echo "example:" - echo " > $0 QmSYCpuKPbPQ2iFr2swJj2hvz7wQUXfPBXPiuVsQdL5FEs" - echo "" - exit 1 -fi - -# must be run online. -ipfs swarm peers >/dev/null -if [ $? -ne 0 ]; then - echo "error: ipfs daemon must be online and connected to peers " - exit 1 -fi - -# check the object is there -ipfs object stat "$1" >/dev/null -if [ $? -ne 0 ]; then - echo "error: ipfs cannot find $1" - exit 1 -fi - -echo "republishing $1 every 20 minutes" -while : -do - ipfs name publish $1 - sleep 1200 -done diff --git a/vendor/github.com/ipfs/go-ipfs/bin/maketarball.sh b/vendor/github.com/ipfs/go-ipfs/bin/maketarball.sh deleted file mode 100755 index d5333214..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/maketarball.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -# vim: set expandtab sw=2 ts=2: - -# bash safe mode -set -euo pipefail -IFS=$'\n\t' - -# readlink doesn't work on macos -OUTPUT="${1:-go-ipfs-source.tar.gz}" -if ! [[ "$OUTPUT" = /* ]]; then - OUTPUT="$PWD/$OUTPUT" -fi - -TMPDIR="$(mktemp -d)" -NEWIPFS="$TMPDIR/src/github.com/ipfs/go-ipfs" -mkdir -p "$NEWIPFS" -cp -r . "$NEWIPFS" -( cd "$NEWIPFS" && - echo $PWD && - GOPATH="$TMPDIR" gx install --local && - (git rev-parse --short HEAD || true) > .tarball && - chmod -R u=rwX,go=rX "$NEWIPFS" # normalize permissions - tar -czf "$OUTPUT" --exclude="./.git" . -) - -rm -rf "$TMPDIR" diff --git a/vendor/github.com/ipfs/go-ipfs/bin/mkreleaselog b/vendor/github.com/ipfs/go-ipfs/bin/mkreleaselog deleted file mode 100755 index 6eb2ab9a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/mkreleaselog +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -LAST_TAG=$(git tag -l | sort -V | grep -v -- '-rc' | grep 'v'| tail -n1) - -git log --oneline --merges --reverse $LAST_TAG...master | -while read MERGE -do - commit=$(echo $MERGE | awk '{ print $1 }') - prnum=$(echo $MERGE | awk '{ print $5 }' | tr -d '#') - desc=$(git show $commit | sed '8q;d' | sed 's/^ //g') - printf " - %s ([ipfs/go-ipfs#%s](https://github.com/ipfs/go-ipfs/pull/%s))\n" "$desc" "$prnum" "$prnum" -done diff --git a/vendor/github.com/ipfs/go-ipfs/bin/test-go-fmt b/vendor/github.com/ipfs/go-ipfs/bin/test-go-fmt deleted file mode 100755 index 8bc7d2e6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/bin/test-go-fmt +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -T="$(mktemp)" -find . -name '*.go' | xargs gofmt -l > "$T" - -if [ -n "$(cat $T)" ]; then - echo "Following Go code is not formatted." - echo "-----------------------------------" - cat "$T" - echo "-----------------------------------" - echo "Run 'go fmt ./...' in your source directory" - rm -f "$T" - exit 1 -fi -rm -f "$T" diff --git a/vendor/github.com/ipfs/go-ipfs/blocks/blockstoreutil/remove.go b/vendor/github.com/ipfs/go-ipfs/blocks/blockstoreutil/remove.go deleted file mode 100644 index 1fe46b7a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/blocks/blockstoreutil/remove.go +++ /dev/null @@ -1,113 +0,0 @@ -// Package blockstoreutil provides utility functions for Blockstores. -package blockstoreutil - -import ( - "fmt" - "io" - - "github.com/ipfs/go-ipfs/pin" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - bs "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" -) - -// RemovedBlock is used to respresent the result of removing a block. -// If a block was removed successfully than the Error string will be -// empty. If a block could not be removed than Error will contain the -// reason the block could not be removed. If the removal was aborted -// due to a fatal error Hash will be be empty, Error will contain the -// reason, and no more results will be sent. -type RemovedBlock struct { - Hash string `json:",omitempty"` - Error string `json:",omitempty"` -} - -// RmBlocksOpts is used to wrap options for RmBlocks(). -type RmBlocksOpts struct { - Prefix string - Quiet bool - Force bool -} - -// RmBlocks removes the blocks provided in the cids slice. -// It returns a channel where objects of type RemovedBlock are placed, when -// not using the Quiet option. Block removal is asynchronous and will -// skip any pinned blocks. -func RmBlocks(blocks bs.GCBlockstore, pins pin.Pinner, cids []cid.Cid, opts RmBlocksOpts) (<-chan interface{}, error) { - // make the channel large enough to hold any result to avoid - // blocking while holding the GCLock - out := make(chan interface{}, len(cids)) - go func() { - defer close(out) - - unlocker := blocks.GCLock() - defer unlocker.Unlock() - - stillOkay := FilterPinned(pins, out, cids) - - for _, c := range stillOkay { - err := blocks.DeleteBlock(c) - if err != nil && opts.Force && (err == bs.ErrNotFound || err == ds.ErrNotFound) { - // ignore non-existent blocks - } else if err != nil { - out <- &RemovedBlock{Hash: c.String(), Error: err.Error()} - } else if !opts.Quiet { - out <- &RemovedBlock{Hash: c.String()} - } - } - }() - return out, nil -} - -// FilterPinned takes a slice of Cids and returns it with the pinned Cids -// removed. If a Cid is pinned, it will place RemovedBlock objects in the given -// out channel, with an error which indicates that the Cid is pinned. -// This function is used in RmBlocks to filter out any blocks which are not -// to be removed (because they are pinned). -func FilterPinned(pins pin.Pinner, out chan<- interface{}, cids []cid.Cid) []cid.Cid { - stillOkay := make([]cid.Cid, 0, len(cids)) - res, err := pins.CheckIfPinned(cids...) - if err != nil { - out <- &RemovedBlock{Error: fmt.Sprintf("pin check failed: %s", err)} - return nil - } - for _, r := range res { - if !r.Pinned() { - stillOkay = append(stillOkay, r.Key) - } else { - out <- &RemovedBlock{ - Hash: r.Key.String(), - Error: r.String(), - } - } - } - return stillOkay -} - -// ProcRmOutput takes a function which returns a result from RmBlocks or EOF if there is no input. -// It then writes to stdout/stderr according to the RemovedBlock object returned from the function. -func ProcRmOutput(next func() (interface{}, error), sout io.Writer, serr io.Writer) error { - someFailed := false - for { - res, err := next() - if err == io.EOF { - break - } else if err != nil { - return err - } - r := res.(*RemovedBlock) - if r.Hash == "" && r.Error != "" { - return fmt.Errorf("aborted: %s", r.Error) - } else if r.Error != "" { - someFailed = true - fmt.Fprintf(serr, "cannot remove %s: %s\n", r.Hash, r.Error) - } else { - fmt.Fprintf(sout, "removed %s\n", r.Hash) - } - } - if someFailed { - return fmt.Errorf("some blocks not removed") - } - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/ci/Dockerfile.buildenv b/vendor/github.com/ipfs/go-ipfs/ci/Dockerfile.buildenv deleted file mode 100644 index d5864d78..00000000 --- a/vendor/github.com/ipfs/go-ipfs/ci/Dockerfile.buildenv +++ /dev/null @@ -1,46 +0,0 @@ -FROM golang:1.11 -MAINTAINER Jakub Sztandera - - -RUN apt-get update && apt-get install -y --no-install-recommends \ - netcat-openbsd bash curl \ - sudo \ - && rm -rf /var/lib/apt/lists/* - -ENV GOBIN $GOPATH/bin -ENV SRC_PATH /go/src/github.com/ipfs/go-ipfs - -RUN curl -s https://codecov.io/bash > /usr/bin/codecov && chmod +x /usr/bin/codecov \ - && go get -u github.com/Kubuxu/gocovmerge && go get -u golang.org/x/tools/cmd/cover -ENV IPFS_SKIP_COVER_BINS 1 - - -RUN useradd user -RUN chown -R user $GOPATH - -WORKDIR $SRC_PATH - -COPY ./bin $SRC_PATH/bin/ -COPY ./mk $SRC_PATH/mk/ -RUN chown -R user $GOPATH - -USER user -# install gx and gx-go -RUN make -j 4 -f bin/Rules.mk d=bin bin/gx bin/gx-go && cp bin/gx bin/gx-go $GOBIN -USER root -ENV IPFS_GX_USE_GLOBAL 1 - -COPY package.json $SRC_PATH/ -ENV PATH $SRC_PATH/bin:$PATH - -USER user -RUN make -f mk/gx.mk gx-deps -USER root - -COPY . $SRC_PATH -RUN chown -R user:user $GOPATH -USER user -# mkdir .git/objects is required for git to detect repo -RUN mkdir .git/objects && make cmd/ipfs/ipfs #populate go cache - -CMD ["/bin/bash", "-c", "trap : TERM INT; sleep infinity & wait"] diff --git a/vendor/github.com/ipfs/go-ipfs/ci/Jenkinsfile b/vendor/github.com/ipfs/go-ipfs/ci/Jenkinsfile deleted file mode 100644 index 59ae86a8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/ci/Jenkinsfile +++ /dev/null @@ -1,204 +0,0 @@ -import groovy.transform.Field - -/* SETTINGS */ - -// in minutes -def sharness_timeout = 15 -def gotest_timeout = 10 -def build_timeout = 20 -def check_timeout = 4 - -def test = 'go test -v ./...' - -def fast_build_platforms = [ - ['linux', 'amd64'], -] - -def build_platforms = [ - ['windows', '386'], - ['windows', 'amd64'], - - ['linux', 'arm'], - ['linux', 'arm64'], - ['linux', '386'], - - ['darwin', '386'], - ['darwin', 'amd64'], - - ['freebsd', 'amd64'] -] - -/* PIPELINE UTILS */ - -def setupStep(nodeLabel, f) { - node(label: nodeLabel) { - def ps = nodeLabel != 'windows' ? '/' : '\\' - def psep = nodeLabel != 'windows' ? ':' : ';' - - def root = tool name: '1.11', type: 'go' - def jobNameArr = "${JOB_NAME}" - def jobName = jobNameArr.split("/")[0..1].join(nodeLabel != 'windows' ? '/' : '\\\\').toLowerCase() - def subName = jobNameArr.split("/")[2].toLowerCase() - def originalWs = "${WORKSPACE}" - - ws("${originalWs}${ps}src${ps}github.com${ps}${jobName}") { - def goEnv = ["GOROOT=${root}", "GOPATH=${originalWs}", "SUBNAME=${subName}", "PATH=$PATH${psep}${root}${ps}bin${psep}${originalWs}${ps}bin"] - withEnv(goEnv) { - checkout scm - - def run = nodeLabel != 'windows' ? this.&sh : this.&bat - - try { - f(run) - } finally { - cleanWs() - } - } - } - } -} - -def gobuild_step = { list -> - setupStep('linux') { run -> - timeout(time: build_timeout, unit: 'MINUTES') { - run "make gx-deps" - - list.each { platform -> - timeout(time: check_timeout, unit: 'MINUTES') { - withEnv(["GOOS=${platform[0]}", "GOARCH=${platform[1]}"]) { - run "go build -i -ldflags=\"-X github.com/ipfs/go-ipfs/repo/config.CurrentCommit=${env.SUBNAME}-${env.BUILD_NUMBER}\" -o cmd/ipfs/ipfs github.com/ipfs/go-ipfs/cmd/ipfs" - run "cp cmd/ipfs/ipfs cmd/ipfs/dist; cd cmd/ipfs/dist; tar -czvf ../go-ipfs_${env.GOOS}-${env.GOARCH}-${env.SUBNAME}-${env.BUILD_NUMBER}.tar.gz ." - archiveArtifacts artifacts: "cmd/ipfs/go-ipfs_${env.GOOS}-${env.GOARCH}-${env.SUBNAME}-${env.BUILD_NUMBER}.tar.gz", fingerprint: true - } - } - } - } - } -} - -def sharness_step = { run, osname, makeargs, ignore -> - timeout(time: sharness_timeout, unit: 'MINUTES') { - run "make gx-deps" - - try { - run "make -j12 ${makeargs} test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_NO_FUSE=1 TEST_NO_DOCKER=1" - - try { - // archive trash directories if any - run "tar -czf sharnessTrashDirs-${osname}.tar.gz test/sharness/trash\\ *" - archiveArtifacts artifacts: "sharnessTrashDirs-${osname}.tar.gz", fingerprint: true - } catch (_) {} - } catch (err) { - throw err - } finally { - if (!ignore) { - junit allowEmptyResults: true, testResults: 'test/sharness/test-results/sharness.xml' - } - } - } -} - -/* PIPELINE */ - -ansiColor('xterm') { withEnv(['TERM=xterm-color']) { - stage('Checks') { - parallel( - 'go fmt': { - setupStep('linux') { run -> - timeout(time: check_timeout, unit: 'MINUTES') { - run 'make test_go_fmt' - } - } - }, - 'go vet': { - setupStep('linux') { run -> - timeout(time: check_timeout, unit: 'MINUTES') { - run 'make gx-deps' - run 'go vet ./...' - } - } - }, - 'go build': { - gobuild_step(fast_build_platforms) - }, - 'gx deps dupes': { - setupStep('linux') { run -> - timeout(time: check_timeout, unit: 'MINUTES') { - run 'make gx-deps' - run 'test -z "$(./bin/gx deps dupes)"' - } - } - } - ) - } - - stage('Tests') { - parallel( - 'go build (other platforms)': { - gobuild_step(build_platforms) - }, - windows: { - setupStep('windows') { run -> - timeout(time: gotest_timeout, unit: 'MINUTES') { - run 'go get -v github.com/jstemmer/go-junit-report github.com/whyrusleeping/gx github.com/whyrusleeping/gx-go' - run "gx install --global" - - try { - run test + ' -tags="nofuse" > output & type output' - run 'type output | go-junit-report > junit-report-windows.xml' - } catch (err) { - throw err - } finally { - /* IGNORE TEST FAILS */ - /* junit allowEmptyResults: true, testResults: 'junit-report-*.xml' */ - } - } - } - }, - linux: { - setupStep('linux') { run -> - timeout(time: gotest_timeout, unit: 'MINUTES') { - run 'go get -v github.com/jstemmer/go-junit-report' - run "make gx-deps" - - try { - run test + ' -tags="nofuse" 2>&1 | tee output' - run 'cat output | go-junit-report > junit-report-linux.xml' - } catch (err) { - throw err - } finally { - junit allowEmptyResults: true, testResults: 'junit-report-*.xml' - } - } - } - }, - linuxSharness: { - setupStep('linux') { run -> - sharness_step(run, 'linux', '-Otarget', false) - } - }, - //macOS: { - // setupStep('macos') { run -> - // sharness_step(run, 'macos', '', true) - // } - //}, - //macSharness: { - // setupStep('macos') { run -> - // timeout(time: sharness_timeout, unit: 'MINUTES') { - // run 'go get -v github.com/jstemmer/go-junit-report' - // run "make gx-deps" - - // try { - // run "make -j12 test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_NO_FUSE=1" - // } catch (err) { - // throw err - // } finally { - // /* IGNORE TEST FAILS */ - // /* junit allowEmptyResults: true, testResults: 'test/sharness/test-results/sharness.xml' */ - // } - // } - // } - //}, - ) - } -}} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/.gitignore b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/.gitignore deleted file mode 100644 index 9393c5fb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -ipfs -ipfs-test-cover -ipfs.exe diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/Rules.mk b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/Rules.mk deleted file mode 100644 index d693cd86..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/Rules.mk +++ /dev/null @@ -1,50 +0,0 @@ -include mk/header.mk -IPFS_BIN_$(d) := $(call go-curr-pkg-tgt) - -TGT_BIN += $(IPFS_BIN_$(d)) -TEST_GO_BUILD += $(d)-try-build -CLEAN += $(IPFS_BIN_$(d)) - -PATH := $(realpath $(d)):$(PATH) - -# disabled for now -# depend on *.pb.go files in the repo as Order Only (as they shouldn't be rebuilt if exist) -# DPES_OO_$(d) := diagnostics/pb/diagnostics.pb.go exchange/bitswap/message/pb/message.pb.go -# DEPS_OO_$(d) += merkledag/pb/merkledag.pb.go namesys/pb/namesys.pb.go -# DEPS_OO_$(d) += pin/internal/pb/header.pb.go unixfs/pb/unixfs.pb.go - -$(d)_flags =-ldflags="-X "github.com/ipfs/go-ipfs".CurrentCommit=$(git-hash)" - -$(d)-try-build $(IPFS_BIN_$(d)): GOFLAGS += $(cmd/ipfs_flags) - -# uses second expansion to collect all $(DEPS_GO) -$(IPFS_BIN_$(d)): $(d) $$(DEPS_GO) ALWAYS #| $(DEPS_OO_$(d)) - $(go-build) - -TRY_BUILD_$(d)=$(addprefix $(d)-try-build-,$(SUPPORTED_PLATFORMS)) -$(d)-try-build: $(TRY_BUILD_$(d)) -.PHONY: $(d)-try-build - -$(TRY_BUILD_$(d)): PLATFORM = $(subst -, ,$(patsubst $<-try-build-%,%,$@)) -$(TRY_BUILD_$(d)): GOOS = $(word 1,$(PLATFORM)) -$(TRY_BUILD_$(d)): GOARCH = $(word 2,$(PLATFORM)) -$(TRY_BUILD_$(d)): $(d) $$(DEPS_GO) ALWAYS - GOOS=$(GOOS) GOARCH=$(GOARCH) $(go-try-build) -.PHONY: $(TRY_BUILD_$(d)) - -$(d)-install: GOFLAGS += $(cmd/ipfs_flags) -$(d)-install: $(d) $$(DEPS_GO) ALWAYS - $(GOCC) install $(go-flags-with-tags) ./cmd/ipfs -.PHONY: $(d)-install - -COVER_BIN_$(d) := $(d)/ipfs-test-cover -CLEAN += $(COVER_BIN_$(d)) - -$(COVER_BIN_$(d)): GOTAGS += testrunmain -$(COVER_BIN_$(d)): $(d) $$(DEPS_GO) ALWAYS - $(eval TMP_PKGS := $(shell $(GOCC) list -f '{{range .Deps}}{{.}} {{end}}' $(go-flags-with-tags) ./cmd/ipfs | sed 's/ /\n/g' | grep ipfs/go-ipfs) $(call go-pkg-name,$<)) - $(eval TMP_LIST := $(call join-with,$(comma),$(TMP_PKGS))) - @echo $(GOCC) test $@ -c -covermode atomic -coverpkg ... $(go-flags-with-tags) ./$(@D) # for info - @$(GOCC) test -o $@ -c -covermode atomic -coverpkg $(TMP_LIST) $(go-flags-with-tags) ./$(@D) 2>&1 | (grep -v 'warning: no packages being tested' || true) - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/daemon.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/daemon.go deleted file mode 100644 index 1c4e1f80..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/daemon.go +++ /dev/null @@ -1,727 +0,0 @@ -package main - -import ( - "errors" - _ "expvar" - "fmt" - "net" - "net/http" - _ "net/http/pprof" - "os" - "runtime" - "sort" - "sync" - - version "github.com/ipfs/go-ipfs" - utilmain "github.com/ipfs/go-ipfs/cmd/ipfs/util" - oldcmds "github.com/ipfs/go-ipfs/commands" - "github.com/ipfs/go-ipfs/core" - commands "github.com/ipfs/go-ipfs/core/commands" - coreapi "github.com/ipfs/go-ipfs/core/coreapi" - corehttp "github.com/ipfs/go-ipfs/core/corehttp" - corerepo "github.com/ipfs/go-ipfs/core/corerepo" - nodeMount "github.com/ipfs/go-ipfs/fuse/node" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - migrate "github.com/ipfs/go-ipfs/repo/fsrepo/migrations" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - "gx/ipfs/QmTQuFQWHAWy4wMH6ZyPfGiawA5u9T8rs79FENoV8yXaoS/client_golang/prometheus" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mprome "gx/ipfs/QmfHYMtNSntM6qFhHzLDCyqTX7NNpsfwFgvicJv7L5saAP/go-metrics-prometheus" -) - -const ( - adjustFDLimitKwd = "manage-fdlimit" - enableGCKwd = "enable-gc" - initOptionKwd = "init" - initProfileOptionKwd = "init-profile" - ipfsMountKwd = "mount-ipfs" - ipnsMountKwd = "mount-ipns" - migrateKwd = "migrate" - mountKwd = "mount" - offlineKwd = "offline" // global option - routingOptionKwd = "routing" - routingOptionSupernodeKwd = "supernode" - routingOptionDHTClientKwd = "dhtclient" - routingOptionDHTKwd = "dht" - routingOptionNoneKwd = "none" - routingOptionDefaultKwd = "default" - unencryptTransportKwd = "disable-transport-encryption" - unrestrictedApiAccessKwd = "unrestricted-api" - writableKwd = "writable" - enablePubSubKwd = "enable-pubsub-experiment" - enableIPNSPubSubKwd = "enable-namesys-pubsub" - enableMultiplexKwd = "enable-mplex-experiment" - // apiAddrKwd = "address-api" - // swarmAddrKwd = "address-swarm" -) - -var daemonCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Run a network-connected IPFS node.", - ShortDescription: ` -'ipfs daemon' runs a persistent ipfs daemon that can serve commands -over the network. Most applications that use IPFS will do so by -communicating with a daemon over the HTTP API. While the daemon is -running, calls to 'ipfs' commands will be sent over the network to -the daemon. -`, - LongDescription: ` -The daemon will start listening on ports on the network, which are -documented in (and can be modified through) 'ipfs config Addresses'. -For example, to change the 'Gateway' port: - - ipfs config Addresses.Gateway /ip4/127.0.0.1/tcp/8082 - -The API address can be changed the same way: - - ipfs config Addresses.API /ip4/127.0.0.1/tcp/5002 - -Make sure to restart the daemon after changing addresses. - -By default, the gateway is only accessible locally. To expose it to -other computers in the network, use 0.0.0.0 as the ip address: - - ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080 - -Be careful if you expose the API. It is a security risk, as anyone could -control your node remotely. If you need to control the node remotely, -make sure to protect the port as you would other services or database -(firewall, authenticated proxy, etc). - -HTTP Headers - -ipfs supports passing arbitrary headers to the API and Gateway. You can -do this by setting headers on the API.HTTPHeaders and Gateway.HTTPHeaders -keys: - - ipfs config --json API.HTTPHeaders.X-Special-Header '["so special :)"]' - ipfs config --json Gateway.HTTPHeaders.X-Special-Header '["so special :)"]' - -Note that the value of the keys is an _array_ of strings. This is because -headers can have more than one value, and it is convenient to pass through -to other libraries. - -CORS Headers (for API) - -You can setup CORS headers the same way: - - ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["example.com"]' - ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]' - ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]' - -Shutdown - -To shutdown the daemon, send a SIGINT signal to it (e.g. by pressing 'Ctrl-C') -or send a SIGTERM signal to it (e.g. with 'kill'). It may take a while for the -daemon to shutdown gracefully, but it can be killed forcibly by sending a -second signal. - -IPFS_PATH environment variable - -ipfs uses a repository in the local file system. By default, the repo is -located at ~/.ipfs. To change the repo location, set the $IPFS_PATH -environment variable: - - export IPFS_PATH=/path/to/ipfsrepo - -Routing - -IPFS by default will use a DHT for content routing. There is a highly -experimental alternative that operates the DHT in a 'client only' mode that -can be enabled by running the daemon as: - - ipfs daemon --routing=dhtclient - -This will later be transitioned into a config option once it gets out of the -'experimental' stage. - -DEPRECATION NOTICE - -Previously, ipfs used an environment variable as seen below: - - export API_ORIGIN="http://localhost:8888/" - -This is deprecated. It is still honored in this version, but will be removed -in a future version, along with this notice. Please move to setting the HTTP -Headers. -`, - }, - - Options: []cmdkit.Option{ - cmdkit.BoolOption(initOptionKwd, "Initialize ipfs with default settings if not already initialized"), - cmdkit.StringOption(initProfileOptionKwd, "Configuration profiles to apply for --init. See ipfs init --help for more"), - cmdkit.StringOption(routingOptionKwd, "Overrides the routing option").WithDefault(routingOptionDefaultKwd), - cmdkit.BoolOption(mountKwd, "Mounts IPFS to the filesystem"), - cmdkit.BoolOption(writableKwd, "Enable writing objects (with POST, PUT and DELETE)"), - cmdkit.StringOption(ipfsMountKwd, "Path to the mountpoint for IPFS (if using --mount). Defaults to config setting."), - cmdkit.StringOption(ipnsMountKwd, "Path to the mountpoint for IPNS (if using --mount). Defaults to config setting."), - cmdkit.BoolOption(unrestrictedApiAccessKwd, "Allow API access to unlisted hashes"), - cmdkit.BoolOption(unencryptTransportKwd, "Disable transport encryption (for debugging protocols)"), - cmdkit.BoolOption(enableGCKwd, "Enable automatic periodic repo garbage collection"), - cmdkit.BoolOption(adjustFDLimitKwd, "Check and raise file descriptor limits if needed").WithDefault(true), - cmdkit.BoolOption(migrateKwd, "If true, assume yes at the migrate prompt. If false, assume no."), - cmdkit.BoolOption(enablePubSubKwd, "Instantiate the ipfs daemon with the experimental pubsub feature enabled."), - cmdkit.BoolOption(enableIPNSPubSubKwd, "Enable IPNS record distribution through pubsub; enables pubsub."), - cmdkit.BoolOption(enableMultiplexKwd, "Add the experimental 'go-multiplex' stream muxer to libp2p on construction.").WithDefault(true), - - // TODO: add way to override addresses. tricky part: updating the config if also --init. - // cmdkit.StringOption(apiAddrKwd, "Address for the daemon rpc API (overrides config)"), - // cmdkit.StringOption(swarmAddrKwd, "Address for the swarm socket (overrides config)"), - }, - Subcommands: map[string]*cmds.Command{}, - Run: daemonFunc, -} - -// defaultMux tells mux to serve path using the default muxer. This is -// mostly useful to hook up things that register in the default muxer, -// and don't provide a convenient http.Handler entry point, such as -// expvar and http/pprof. -func defaultMux(path string) corehttp.ServeOption { - return func(node *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.Handle(path, http.DefaultServeMux) - return mux, nil - } -} - -func daemonFunc(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment) (_err error) { - // Inject metrics before we do anything - err := mprome.Inject() - if err != nil { - log.Errorf("Injecting prometheus handler for metrics failed with message: %s\n", err.Error()) - } - - // let the user know we're going. - fmt.Printf("Initializing daemon...\n") - - defer func() { - if _err != nil { - // Print an extra line before any errors. This could go - // in the commands lib but doesn't really make sense for - // all commands. - fmt.Println() - } - }() - - // print the ipfs version - printVersion() - - managefd, _ := req.Options[adjustFDLimitKwd].(bool) - if managefd { - if _, _, err := utilmain.ManageFdLimit(); err != nil { - log.Errorf("setting file descriptor limit: %s", err) - } - } - - cctx := env.(*oldcmds.Context) - - // check transport encryption flag. - unencrypted, _ := req.Options[unencryptTransportKwd].(bool) - if unencrypted { - log.Warningf(`Running with --%s: All connections are UNENCRYPTED. - You will not be able to connect to regular encrypted networks.`, unencryptTransportKwd) - } - - // first, whether user has provided the initialization flag. we may be - // running in an uninitialized state. - initialize, _ := req.Options[initOptionKwd].(bool) - if initialize { - - cfg := cctx.ConfigRoot - if !fsrepo.IsInitialized(cfg) { - profiles, _ := req.Options[initProfileOptionKwd].(string) - - err := initWithDefaults(os.Stdout, cfg, profiles) - if err != nil { - return err - } - } - } - - // acquire the repo lock _before_ constructing a node. we need to make - // sure we are permitted to access the resources (datastore, etc.) - repo, err := fsrepo.Open(cctx.ConfigRoot) - switch err { - default: - return err - case fsrepo.ErrNeedMigration: - domigrate, found := req.Options[migrateKwd].(bool) - fmt.Println("Found outdated fs-repo, migrations need to be run.") - - if !found { - domigrate = YesNoPrompt("Run migrations now? [y/N]") - } - - if !domigrate { - fmt.Println("Not running migrations of fs-repo now.") - fmt.Println("Please get fs-repo-migrations from https://dist.ipfs.io") - return fmt.Errorf("fs-repo requires migration") - } - - err = migrate.RunMigration(fsrepo.RepoVersion) - if err != nil { - fmt.Println("The migrations of fs-repo failed:") - fmt.Printf(" %s\n", err) - fmt.Println("If you think this is a bug, please file an issue and include this whole log output.") - fmt.Println(" https://github.com/ipfs/fs-repo-migrations") - return err - } - - repo, err = fsrepo.Open(cctx.ConfigRoot) - if err != nil { - return err - } - case nil: - break - } - - cfg, err := cctx.GetConfig() - if err != nil { - return err - } - - offline, _ := req.Options[offlineKwd].(bool) - ipnsps, _ := req.Options[enableIPNSPubSubKwd].(bool) - pubsub, _ := req.Options[enablePubSubKwd].(bool) - mplex, _ := req.Options[enableMultiplexKwd].(bool) - - // Start assembling node config - ncfg := &core.BuildCfg{ - Repo: repo, - Permanent: true, // It is temporary way to signify that node is permanent - Online: !offline, - DisableEncryptedConnections: unencrypted, - ExtraOpts: map[string]bool{ - "pubsub": pubsub, - "ipnsps": ipnsps, - "mplex": mplex, - }, - //TODO(Kubuxu): refactor Online vs Offline by adding Permanent vs Ephemeral - } - - routingOption, _ := req.Options[routingOptionKwd].(string) - if routingOption == routingOptionDefaultKwd { - cfg, err := repo.Config() - if err != nil { - return err - } - - routingOption = cfg.Routing.Type - if routingOption == "" { - routingOption = routingOptionDHTKwd - } - } - switch routingOption { - case routingOptionSupernodeKwd: - return errors.New("supernode routing was never fully implemented and has been removed") - case routingOptionDHTClientKwd: - ncfg.Routing = core.DHTClientOption - case routingOptionDHTKwd: - ncfg.Routing = core.DHTOption - case routingOptionNoneKwd: - ncfg.Routing = core.NilRouterOption - default: - return fmt.Errorf("unrecognized routing option: %s", routingOption) - } - - node, err := core.NewNode(req.Context, ncfg) - if err != nil { - log.Error("error from node construction: ", err) - return err - } - node.SetLocal(false) - - if node.PNetFingerprint != nil { - fmt.Println("Swarm is limited to private network of peers with the swarm key") - fmt.Printf("Swarm key fingerprint: %x\n", node.PNetFingerprint) - } - - printSwarmAddrs(node) - - defer func() { - // We wait for the node to close first, as the node has children - // that it will wait for before closing, such as the API server. - node.Close() - - select { - case <-req.Context.Done(): - log.Info("Gracefully shut down daemon") - default: - } - }() - - cctx.ConstructNode = func() (*core.IpfsNode, error) { - return node, nil - } - - // Start "core" plugins. We want to do this *before* starting the HTTP - // API as the user may be relying on these plugins. - api, err := coreapi.NewCoreAPI(node) - if err != nil { - return err - } - err = cctx.Plugins.Start(api) - if err != nil { - return err - } - node.Process().AddChild(goprocess.WithTeardown(cctx.Plugins.Close)) - - // construct api endpoint - every time - apiErrc, err := serveHTTPApi(req, cctx) - if err != nil { - return err - } - - // construct fuse mountpoints - if the user provided the --mount flag - mount, _ := req.Options[mountKwd].(bool) - if mount && offline { - return cmdkit.Errorf(cmdkit.ErrClient, "mount is not currently supported in offline mode") - } - if mount { - if err := mountFuse(req, cctx); err != nil { - return err - } - } - - // repo blockstore GC - if --enable-gc flag is present - gcErrc, err := maybeRunGC(req, node) - if err != nil { - return err - } - - // construct http gateway - if it is set in the config - var gwErrc <-chan error - if len(cfg.Addresses.Gateway) > 0 { - var err error - gwErrc, err = serveHTTPGateway(req, cctx) - if err != nil { - return err - } - } - - // initialize metrics collector - prometheus.MustRegister(&corehttp.IpfsNodeCollector{Node: node}) - - // The daemon is *finally* ready. - fmt.Printf("Daemon is ready\n") - - // Give the user some immediate feedback when they hit C-c - go func() { - <-req.Context.Done() - fmt.Println("Received interrupt signal, shutting down...") - fmt.Println("(Hit ctrl-c again to force-shutdown the daemon.)") - }() - - // collect long-running errors and block for shutdown - // TODO(cryptix): our fuse currently doesnt follow this pattern for graceful shutdown - for err := range merge(apiErrc, gwErrc, gcErrc) { - if err != nil { - return err - } - } - - return nil -} - -// serveHTTPApi collects options, creates listener, prints status message and starts serving requests -func serveHTTPApi(req *cmds.Request, cctx *oldcmds.Context) (<-chan error, error) { - cfg, err := cctx.GetConfig() - if err != nil { - return nil, fmt.Errorf("serveHTTPApi: GetConfig() failed: %s", err) - } - - apiAddrs := make([]string, 0, 2) - apiAddr, _ := req.Options[commands.ApiOption].(string) - if apiAddr == "" { - apiAddrs = cfg.Addresses.API - } else { - apiAddrs = append(apiAddrs, apiAddr) - } - - listeners := make([]manet.Listener, 0, len(apiAddrs)) - for _, addr := range apiAddrs { - apiMaddr, err := ma.NewMultiaddr(addr) - if err != nil { - return nil, fmt.Errorf("serveHTTPApi: invalid API address: %q (err: %s)", apiAddr, err) - } - - apiLis, err := manet.Listen(apiMaddr) - if err != nil { - return nil, fmt.Errorf("serveHTTPApi: manet.Listen(%s) failed: %s", apiMaddr, err) - } - - // we might have listened to /tcp/0 - lets see what we are listing on - apiMaddr = apiLis.Multiaddr() - fmt.Printf("API server listening on %s\n", apiMaddr) - fmt.Printf("WebUI: http://%s/webui\n", apiLis.Addr()) - listeners = append(listeners, apiLis) - } - - // by default, we don't let you load arbitrary ipfs objects through the api, - // because this would open up the api to scripting vulnerabilities. - // only the webui objects are allowed. - // if you know what you're doing, go ahead and pass --unrestricted-api. - unrestricted, _ := req.Options[unrestrictedApiAccessKwd].(bool) - gatewayOpt := corehttp.GatewayOption(false, corehttp.WebUIPaths...) - if unrestricted { - gatewayOpt = corehttp.GatewayOption(true, "/ipfs", "/ipns") - } - - var opts = []corehttp.ServeOption{ - corehttp.MetricsCollectionOption("api"), - corehttp.CheckVersionOption(), - corehttp.CommandsOption(*cctx), - corehttp.WebUIOption, - gatewayOpt, - corehttp.VersionOption(), - defaultMux("/debug/vars"), - defaultMux("/debug/pprof/"), - corehttp.MutexFractionOption("/debug/pprof-mutex/"), - corehttp.MetricsScrapingOption("/debug/metrics/prometheus"), - corehttp.LogOption(), - } - - if len(cfg.Gateway.RootRedirect) > 0 { - opts = append(opts, corehttp.RedirectOption("", cfg.Gateway.RootRedirect)) - } - - node, err := cctx.ConstructNode() - if err != nil { - return nil, fmt.Errorf("serveHTTPApi: ConstructNode() failed: %s", err) - } - - if err := node.Repo.SetAPIAddr(listeners[0].Multiaddr()); err != nil { - return nil, fmt.Errorf("serveHTTPApi: SetAPIAddr() failed: %s", err) - } - - errc := make(chan error) - var wg sync.WaitGroup - for _, apiLis := range listeners { - wg.Add(1) - go func(lis manet.Listener) { - defer wg.Done() - errc <- corehttp.Serve(node, manet.NetListener(lis), opts...) - }(apiLis) - } - - go func() { - wg.Wait() - close(errc) - }() - - return errc, nil -} - -// printSwarmAddrs prints the addresses of the host -func printSwarmAddrs(node *core.IpfsNode) { - if !node.OnlineMode() { - fmt.Println("Swarm not listening, running in offline mode.") - return - } - - var lisAddrs []string - ifaceAddrs, err := node.PeerHost.Network().InterfaceListenAddresses() - if err != nil { - log.Errorf("failed to read listening addresses: %s", err) - } - for _, addr := range ifaceAddrs { - lisAddrs = append(lisAddrs, addr.String()) - } - sort.Sort(sort.StringSlice(lisAddrs)) - for _, addr := range lisAddrs { - fmt.Printf("Swarm listening on %s\n", addr) - } - - var addrs []string - for _, addr := range node.PeerHost.Addrs() { - addrs = append(addrs, addr.String()) - } - sort.Sort(sort.StringSlice(addrs)) - for _, addr := range addrs { - fmt.Printf("Swarm announcing %s\n", addr) - } - -} - -// serveHTTPGateway collects options, creates listener, prints status message and starts serving requests -func serveHTTPGateway(req *cmds.Request, cctx *oldcmds.Context) (<-chan error, error) { - cfg, err := cctx.GetConfig() - if err != nil { - return nil, fmt.Errorf("serveHTTPGateway: GetConfig() failed: %s", err) - } - - writable, writableOptionFound := req.Options[writableKwd].(bool) - if !writableOptionFound { - writable = cfg.Gateway.Writable - } - - gatewayAddrs := cfg.Addresses.Gateway - listeners := make([]manet.Listener, 0, len(gatewayAddrs)) - for _, addr := range gatewayAddrs { - gatewayMaddr, err := ma.NewMultiaddr(addr) - if err != nil { - return nil, fmt.Errorf("serveHTTPGateway: invalid gateway address: %q (err: %s)", addr, err) - } - - gwLis, err := manet.Listen(gatewayMaddr) - if err != nil { - return nil, fmt.Errorf("serveHTTPGateway: manet.Listen(%s) failed: %s", gatewayMaddr, err) - } - // we might have listened to /tcp/0 - lets see what we are listing on - gatewayMaddr = gwLis.Multiaddr() - - if writable { - fmt.Printf("Gateway (writable) server listening on %s\n", gatewayMaddr) - } else { - fmt.Printf("Gateway (readonly) server listening on %s\n", gatewayMaddr) - } - - listeners = append(listeners, gwLis) - } - - cmdctx := *cctx - cmdctx.Gateway = true - - var opts = []corehttp.ServeOption{ - corehttp.MetricsCollectionOption("gateway"), - corehttp.IPNSHostnameOption(), - corehttp.GatewayOption(writable, "/ipfs", "/ipns"), - corehttp.VersionOption(), - corehttp.CheckVersionOption(), - corehttp.CommandsROOption(cmdctx), - } - - if cfg.Experimental.P2pHttpProxy { - opts = append(opts, corehttp.ProxyOption()) - } - - if len(cfg.Gateway.RootRedirect) > 0 { - opts = append(opts, corehttp.RedirectOption("", cfg.Gateway.RootRedirect)) - } - - node, err := cctx.ConstructNode() - if err != nil { - return nil, fmt.Errorf("serveHTTPGateway: ConstructNode() failed: %s", err) - } - - errc := make(chan error) - var wg sync.WaitGroup - for _, lis := range listeners { - wg.Add(1) - go func(lis manet.Listener) { - defer wg.Done() - errc <- corehttp.Serve(node, manet.NetListener(lis), opts...) - }(lis) - } - - go func() { - wg.Wait() - close(errc) - }() - - return errc, nil -} - -//collects options and opens the fuse mountpoint -func mountFuse(req *cmds.Request, cctx *oldcmds.Context) error { - cfg, err := cctx.GetConfig() - if err != nil { - return fmt.Errorf("mountFuse: GetConfig() failed: %s", err) - } - - fsdir, found := req.Options[ipfsMountKwd].(string) - if !found { - fsdir = cfg.Mounts.IPFS - } - - nsdir, found := req.Options[ipnsMountKwd].(string) - if !found { - nsdir = cfg.Mounts.IPNS - } - - node, err := cctx.ConstructNode() - if err != nil { - return fmt.Errorf("mountFuse: ConstructNode() failed: %s", err) - } - - err = nodeMount.Mount(node, fsdir, nsdir) - if err != nil { - return err - } - fmt.Printf("IPFS mounted at: %s\n", fsdir) - fmt.Printf("IPNS mounted at: %s\n", nsdir) - return nil -} - -func maybeRunGC(req *cmds.Request, node *core.IpfsNode) (<-chan error, error) { - enableGC, _ := req.Options[enableGCKwd].(bool) - if !enableGC { - return nil, nil - } - - errc := make(chan error) - go func() { - errc <- corerepo.PeriodicGC(req.Context, node) - close(errc) - }() - return errc, nil -} - -// merge does fan-in of multiple read-only error channels -// taken from http://blog.golang.org/pipelines -func merge(cs ...<-chan error) <-chan error { - var wg sync.WaitGroup - out := make(chan error) - - // Start an output goroutine for each input channel in cs. output - // copies values from c to out until c is closed, then calls wg.Done. - output := func(c <-chan error) { - for n := range c { - out <- n - } - wg.Done() - } - for _, c := range cs { - if c != nil { - wg.Add(1) - go output(c) - } - } - - // Start a goroutine to close out once all the output goroutines are - // done. This must start after the wg.Add call. - go func() { - wg.Wait() - close(out) - }() - return out -} - -func YesNoPrompt(prompt string) bool { - var s string - for i := 0; i < 3; i++ { - fmt.Printf("%s ", prompt) - fmt.Scanf("%s", &s) - switch s { - case "y", "Y": - return true - case "n", "N": - return false - case "": - return false - } - fmt.Println("Please press either 'y' or 'n'") - } - - return false -} - -func printVersion() { - fmt.Printf("go-ipfs version: %s-%s\n", version.CurrentVersionNumber, version.CurrentCommit) - fmt.Printf("Repo version: %d\n", fsrepo.RepoVersion) - fmt.Printf("System version: %s\n", runtime.GOARCH+"/"+runtime.GOOS) - fmt.Printf("Golang version: %s\n", runtime.Version()) -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/README.md b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/README.md deleted file mode 100644 index f541482c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# ipfs commandline tool - -This is the [ipfs](http://ipfs.io) commandline tool. It contains a full ipfs node. - -## Install - -To install it, move the binary somewhere in your `$PATH`: - -```sh -sudo mv ipfs /usr/local/bin/ipfs -``` - -Or run `sudo ./install.sh` which does this for you. - -## Usage - -First, you must initialize your local ipfs node: - -```sh -ipfs init -``` - -This will give you directions to get started with ipfs. -You can always get help with: - -```sh -ipfs --help -``` diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/install.sh b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/install.sh deleted file mode 100755 index 08f68752..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dist/install.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# Installation script for ipfs. It tries to move $bin in one of the -# directories stored in $binpaths. - -INSTALL_DIR=$(dirname $0) - -bin="$INSTALL_DIR/ipfs" -binpaths="/usr/local/bin /usr/bin" - -# This variable contains a nonzero length string in case the script fails -# because of missing write permissions. -is_write_perm_missing="" - -for binpath in $binpaths; do - if mv "$bin" "$binpath/$bin" ; then - echo "Moved $bin to $binpath" - exit 0 - else - if [ -d "$binpath" ] && [ ! -w "$binpath" ]; then - is_write_perm_missing=1 - fi - fi -done - -echo "We cannot install $bin in one of the directories $binpaths" - -if [ -n "$is_write_perm_missing" ]; then - echo "It seems that we do not have the necessary write permissions." - echo "Perhaps try running this script as a privileged user:" - echo - echo " sudo $0" - echo -fi - -exit 1 diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dnsresolve_test.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dnsresolve_test.go deleted file mode 100644 index 4923f895..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/dnsresolve_test.go +++ /dev/null @@ -1,72 +0,0 @@ -package main - -import ( - "context" - "fmt" - "net" - "strings" - "testing" - - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - madns "gx/ipfs/QmU98UaAEh4WJAcir2qjfztU77JQ14kAwHNFkjUXHZA3Vy/go-multiaddr-dns" -) - -var ( - ctx = context.Background() - testAddr, _ = ma.NewMultiaddr("/dns4/example.com/tcp/5001") -) - -func makeResolver(n uint8) *madns.Resolver { - results := make([]net.IPAddr, n) - for i := uint8(0); i < n; i++ { - results[i] = net.IPAddr{IP: net.ParseIP(fmt.Sprintf("192.0.2.%d", i))} - } - - backend := &madns.MockBackend{ - IP: map[string][]net.IPAddr{ - "example.com": results, - }} - - return &madns.Resolver{ - Backend: backend, - } -} - -func TestApiEndpointResolveDNSOneResult(t *testing.T) { - dnsResolver = makeResolver(1) - - addr, err := resolveAddr(ctx, testAddr) - if err != nil { - t.Error(err) - } - - if ref, _ := ma.NewMultiaddr("/ip4/192.0.2.0/tcp/5001"); !addr.Equal(ref) { - t.Errorf("resolved address was different than expected") - } -} - -func TestApiEndpointResolveDNSMultipleResults(t *testing.T) { - dnsResolver = makeResolver(4) - - addr, err := resolveAddr(ctx, testAddr) - if err != nil { - t.Error(err) - } - - if ref, _ := ma.NewMultiaddr("/ip4/192.0.2.0/tcp/5001"); !addr.Equal(ref) { - t.Errorf("resolved address was different than expected") - } -} - -func TestApiEndpointResolveDNSNoResults(t *testing.T) { - dnsResolver = makeResolver(0) - - addr, err := resolveAddr(ctx, testAddr) - if addr != nil || err == nil { - t.Error("expected test address not to resolve, and to throw an error") - } - - if !strings.HasPrefix(err.Error(), "non-resolvable API endpoint") { - t.Errorf("expected error not thrown; actual: %v", err) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/init.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/init.go deleted file mode 100644 index 0faa4956..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/init.go +++ /dev/null @@ -1,252 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "os" - "path" - "strings" - - assets "github.com/ipfs/go-ipfs/assets" - oldcmds "github.com/ipfs/go-ipfs/commands" - core "github.com/ipfs/go-ipfs/core" - namesys "github.com/ipfs/go-ipfs/namesys" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const ( - nBitsForKeypairDefault = 2048 - bitsOptionName = "bits" - emptyRepoOptionName = "empty-repo" - profileOptionName = "profile" -) - -var initCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Initializes ipfs config file.", - ShortDescription: ` -Initializes ipfs configuration files and generates a new keypair. - -If you are going to run IPFS in server environment, you may want to -initialize it using 'server' profile. - -For the list of available profiles see 'ipfs config profile --help' - -ipfs uses a repository in the local file system. By default, the repo is -located at ~/.ipfs. To change the repo location, set the $IPFS_PATH -environment variable: - - export IPFS_PATH=/path/to/ipfsrepo -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("default-config", false, false, "Initialize with the given configuration.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.IntOption(bitsOptionName, "b", "Number of bits to use in the generated RSA private key.").WithDefault(nBitsForKeypairDefault), - cmdkit.BoolOption(emptyRepoOptionName, "e", "Don't add and pin help files to the local storage."), - cmdkit.StringOption(profileOptionName, "p", "Apply profile settings to config. Multiple profiles can be separated by ','"), - - // TODO need to decide whether to expose the override as a file or a - // directory. That is: should we allow the user to also specify the - // name of the file? - // TODO cmdkit.StringOption("event-logs", "l", "Location for machine-readable event logs."), - }, - PreRun: func(req *cmds.Request, env cmds.Environment) error { - cctx := env.(*oldcmds.Context) - daemonLocked, err := fsrepo.LockedByOtherProcess(cctx.ConfigRoot) - if err != nil { - return err - } - - log.Info("checking if daemon is running...") - if daemonLocked { - log.Debug("ipfs daemon is running") - e := "ipfs daemon is running. please stop it to run this command" - return cmds.ClientError(e) - } - - return nil - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cctx := env.(*oldcmds.Context) - if cctx.Online { - return cmdkit.Error{Message: "init must be run offline only"} - } - - empty, _ := req.Options[emptyRepoOptionName].(bool) - nBitsForKeypair, _ := req.Options[bitsOptionName].(int) - - var conf *config.Config - - f := req.Files - if f != nil { - it := req.Files.Entries() - if !it.Next() { - if it.Err() != nil { - return it.Err() - } - return fmt.Errorf("file argument was nil") - } - file := files.FileFromEntry(it) - if file == nil { - return fmt.Errorf("expected a regular file") - } - - conf = &config.Config{} - if err := json.NewDecoder(file).Decode(conf); err != nil { - return err - } - } - - profile, _ := req.Options[profileOptionName].(string) - - var profiles []string - if profile != "" { - profiles = strings.Split(profile, ",") - } - - return doInit(os.Stdout, cctx.ConfigRoot, empty, nBitsForKeypair, profiles, conf) - }, -} - -var errRepoExists = errors.New(`ipfs configuration file already exists! -Reinitializing would overwrite your keys. -`) - -func initWithDefaults(out io.Writer, repoRoot string, profile string) error { - var profiles []string - if profile != "" { - profiles = strings.Split(profile, ",") - } - - return doInit(out, repoRoot, false, nBitsForKeypairDefault, profiles, nil) -} - -func doInit(out io.Writer, repoRoot string, empty bool, nBitsForKeypair int, confProfiles []string, conf *config.Config) error { - if _, err := fmt.Fprintf(out, "initializing IPFS node at %s\n", repoRoot); err != nil { - return err - } - - if err := checkWritable(repoRoot); err != nil { - return err - } - - if fsrepo.IsInitialized(repoRoot) { - return errRepoExists - } - - if conf == nil { - var err error - conf, err = config.Init(out, nBitsForKeypair) - if err != nil { - return err - } - } - - for _, profile := range confProfiles { - transformer, ok := config.Profiles[profile] - if !ok { - return fmt.Errorf("invalid configuration profile: %s", profile) - } - - if err := transformer.Transform(conf); err != nil { - return err - } - } - - if err := fsrepo.Init(repoRoot, conf); err != nil { - return err - } - - if !empty { - if err := addDefaultAssets(out, repoRoot); err != nil { - return err - } - } - - return initializeIpnsKeyspace(repoRoot) -} - -func checkWritable(dir string) error { - _, err := os.Stat(dir) - if err == nil { - // dir exists, make sure we can write to it - testfile := path.Join(dir, "test") - fi, err := os.Create(testfile) - if err != nil { - if os.IsPermission(err) { - return fmt.Errorf("%s is not writeable by the current user", dir) - } - return fmt.Errorf("unexpected error while checking writeablility of repo root: %s", err) - } - fi.Close() - return os.Remove(testfile) - } - - if os.IsNotExist(err) { - // dir doesn't exist, check that we can create it - return os.Mkdir(dir, 0775) - } - - if os.IsPermission(err) { - return fmt.Errorf("cannot write to %s, incorrect permissions", err) - } - - return err -} - -func addDefaultAssets(out io.Writer, repoRoot string) error { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - r, err := fsrepo.Open(repoRoot) - if err != nil { // NB: repo is owned by the node - return err - } - - nd, err := core.NewNode(ctx, &core.BuildCfg{Repo: r}) - if err != nil { - return err - } - defer nd.Close() - - dkey, err := assets.SeedInitDocs(nd) - if err != nil { - return fmt.Errorf("init: seeding init docs failed: %s", err) - } - log.Debugf("init: seeded init docs %s", dkey) - - if _, err = fmt.Fprintf(out, "to get started, enter:\n"); err != nil { - return err - } - - _, err = fmt.Fprintf(out, "\n\tipfs cat /ipfs/%s/readme\n\n", dkey) - return err -} - -func initializeIpnsKeyspace(repoRoot string) error { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - r, err := fsrepo.Open(repoRoot) - if err != nil { // NB: repo is owned by the node - return err - } - - nd, err := core.NewNode(ctx, &core.BuildCfg{Repo: r}) - if err != nil { - return err - } - defer nd.Close() - - return namesys.InitializeKeyspace(ctx, nd.Namesys, nd.Pinning, nd.PrivateKey) -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/ipfs.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/ipfs.go deleted file mode 100644 index 9fc7b1e2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/ipfs.go +++ /dev/null @@ -1,96 +0,0 @@ -package main - -import ( - "fmt" - - commands "github.com/ipfs/go-ipfs/core/commands" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" -) - -// This is the CLI root, used for executing commands accessible to CLI clients. -// Some subcommands (like 'ipfs daemon' or 'ipfs init') are only accessible here, -// and can't be called through the HTTP API. -var Root = &cmds.Command{ - Options: commands.Root.Options, - Helptext: commands.Root.Helptext, -} - -// commandsClientCmd is the "ipfs commands" command for local cli -var commandsClientCmd = commands.CommandsCmd(Root) - -// Commands in localCommands should always be run locally (even if daemon is running). -// They can override subcommands in commands.Root by defining a subcommand with the same name. -var localCommands = map[string]*cmds.Command{ - "daemon": daemonCmd, - "init": initCmd, - "commands": commandsClientCmd, -} - -func init() { - // setting here instead of in literal to prevent initialization loop - // (some commands make references to Root) - Root.Subcommands = localCommands - - for k, v := range commands.Root.Subcommands { - if _, found := Root.Subcommands[k]; !found { - Root.Subcommands[k] = v - } - } -} - -// NB: when necessary, properties are described using negatives in order to -// provide desirable defaults -type cmdDetails struct { - cannotRunOnClient bool - cannotRunOnDaemon bool - doesNotUseRepo bool - - // doesNotUseConfigAsInput describes commands that do not use the config as - // input. These commands either initialize the config or perform operations - // that don't require access to the config. - // - // pre-command hooks that require configs must not be run before these - // commands. - doesNotUseConfigAsInput bool - - // preemptsAutoUpdate describes commands that must be executed without the - // auto-update pre-command hook - preemptsAutoUpdate bool -} - -func (d *cmdDetails) String() string { - return fmt.Sprintf("on client? %t, on daemon? %t, uses repo? %t", - d.canRunOnClient(), d.canRunOnDaemon(), d.usesRepo()) -} - -func (d *cmdDetails) Loggable() map[string]interface{} { - return map[string]interface{}{ - "canRunOnClient": d.canRunOnClient(), - "canRunOnDaemon": d.canRunOnDaemon(), - "preemptsAutoUpdate": d.preemptsAutoUpdate, - "usesConfigAsInput": d.usesConfigAsInput(), - "usesRepo": d.usesRepo(), - } -} - -func (d *cmdDetails) usesConfigAsInput() bool { return !d.doesNotUseConfigAsInput } -func (d *cmdDetails) canRunOnClient() bool { return !d.cannotRunOnClient } -func (d *cmdDetails) canRunOnDaemon() bool { return !d.cannotRunOnDaemon } -func (d *cmdDetails) usesRepo() bool { return !d.doesNotUseRepo } - -// "What is this madness!?" you ask. Our commands have the unfortunate problem of -// not being able to run on all the same contexts. This map describes these -// properties so that other code can make decisions about whether to invoke a -// command or return an error to the user. -var cmdDetailsMap = map[string]cmdDetails{ - "init": {doesNotUseConfigAsInput: true, cannotRunOnDaemon: true, doesNotUseRepo: true}, - "daemon": {doesNotUseConfigAsInput: true, cannotRunOnDaemon: true}, - "commands": {doesNotUseRepo: true}, - "version": {doesNotUseConfigAsInput: true, doesNotUseRepo: true}, // must be permitted to run before init - "log": {cannotRunOnClient: true}, - "diag/cmds": {cannotRunOnClient: true}, - "repo/fsck": {cannotRunOnDaemon: true}, - "config/edit": {cannotRunOnDaemon: true, doesNotUseRepo: true}, - "cid": {doesNotUseRepo: true}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/main.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/main.go deleted file mode 100644 index 1b32ccd5..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/main.go +++ /dev/null @@ -1,443 +0,0 @@ -// cmd/ipfs implements the primary CLI binary for ipfs -package main - -import ( - "context" - "errors" - "fmt" - "math/rand" - "os" - "path/filepath" - "runtime/pprof" - "strings" - "time" - - util "github.com/ipfs/go-ipfs/cmd/ipfs/util" - oldcmds "github.com/ipfs/go-ipfs/commands" - core "github.com/ipfs/go-ipfs/core" - corecmds "github.com/ipfs/go-ipfs/core/commands" - corehttp "github.com/ipfs/go-ipfs/core/corehttp" - loader "github.com/ipfs/go-ipfs/plugin/loader" - repo "github.com/ipfs/go-ipfs/repo" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds/cli" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds/http" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - madns "gx/ipfs/QmU98UaAEh4WJAcir2qjfztU77JQ14kAwHNFkjUXHZA3Vy/go-multiaddr-dns" - "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - loggables "gx/ipfs/QmUbSLukzZYZvEYxynj9Dtd1WrGLxxg9R4U68vCMPWHmRU/go-libp2p-loggables" - osh "gx/ipfs/QmXuBJ7DR6k3rmUEKtvVMhwjmXDuJgXXPUt4LQXKBMsU93/go-os-helper" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" -) - -// log is the command logger -var log = logging.Logger("cmd/ipfs") - -var errRequestCanceled = errors.New("request canceled") - -// declared as a var for testing purposes -var dnsResolver = madns.DefaultResolver - -const ( - EnvEnableProfiling = "IPFS_PROF" - cpuProfile = "ipfs.cpuprof" - heapProfile = "ipfs.memprof" -) - -func loadPlugins(repoPath string) (*loader.PluginLoader, error) { - pluginpath := filepath.Join(repoPath, "plugins") - - // check if repo is accessible before loading plugins - var plugins *loader.PluginLoader - ok, err := checkPermissions(repoPath) - if err != nil { - return nil, err - } - if !ok { - pluginpath = "" - } - plugins, err = loader.NewPluginLoader(pluginpath) - if err != nil { - log.Error("error loading plugins: ", err) - } - - if err := plugins.Initialize(); err != nil { - log.Error("error initializing plugins: ", err) - } - - if err := plugins.Inject(); err != nil { - log.Error("error running plugins: ", err) - } - return plugins, nil -} - -// main roadmap: -// - parse the commandline to get a cmdInvocation -// - if user requests help, print it and exit. -// - run the command invocation -// - output the response -// - if anything fails, print error, maybe with help -func main() { - os.Exit(mainRet()) -} - -func mainRet() int { - rand.Seed(time.Now().UnixNano()) - ctx := logging.ContextWithLoggable(context.Background(), loggables.Uuid("session")) - var err error - - // we'll call this local helper to output errors. - // this is so we control how to print errors in one place. - printErr := func(err error) { - fmt.Fprintf(os.Stderr, "Error: %s\n", err.Error()) - } - - stopFunc, err := profileIfEnabled() - if err != nil { - printErr(err) - return 1 - } - defer stopFunc() // to be executed as late as possible - - intrh, ctx := util.SetupInterruptHandler(ctx) - defer intrh.Close() - - // Handle `ipfs version` or `ipfs help` - if len(os.Args) > 1 { - // Handle `ipfs --version' - if os.Args[1] == "--version" { - os.Args[1] = "version" - } - - //Handle `ipfs help` and `ipfs help ` - if os.Args[1] == "help" { - if len(os.Args) > 2 { - os.Args = append(os.Args[:1], os.Args[2:]...) - // Handle `ipfs help --help` - // append `--help`,when the command is not `ipfs help --help` - if os.Args[1] != "--help" { - os.Args = append(os.Args, "--help") - } - } else { - os.Args[1] = "--help" - } - } - } - - // output depends on executable name passed in os.Args - // so we need to make sure it's stable - os.Args[0] = "ipfs" - - buildEnv := func(ctx context.Context, req *cmds.Request) (cmds.Environment, error) { - checkDebug(req) - repoPath, err := getRepoPath(req) - if err != nil { - return nil, err - } - log.Debugf("config path is %s", repoPath) - - plugins, err := loadPlugins(repoPath) - if err != nil { - return nil, err - } - - // this sets up the function that will initialize the node - // this is so that we can construct the node lazily. - return &oldcmds.Context{ - ConfigRoot: repoPath, - LoadConfig: loadConfig, - ReqLog: &oldcmds.ReqLog{}, - Plugins: plugins, - ConstructNode: func() (n *core.IpfsNode, err error) { - if req == nil { - return nil, errors.New("constructing node without a request") - } - - r, err := fsrepo.Open(repoPath) - if err != nil { // repo is owned by the node - return nil, err - } - - // ok everything is good. set it on the invocation (for ownership) - // and return it. - n, err = core.NewNode(ctx, &core.BuildCfg{ - Repo: r, - }) - if err != nil { - return nil, err - } - - n.SetLocal(true) - return n, nil - }, - }, nil - } - - err = cli.Run(ctx, Root, os.Args, os.Stdin, os.Stdout, os.Stderr, buildEnv, makeExecutor) - if err != nil { - return 1 - } - - // everything went better than expected :) - return 0 -} - -func checkDebug(req *cmds.Request) { - // check if user wants to debug. option OR env var. - debug, _ := req.Options["debug"].(bool) - if debug || os.Getenv("IPFS_LOGGING") == "debug" { - u.Debug = true - logging.SetDebugLogging() - } - if u.GetenvBool("DEBUG") { - u.Debug = true - } -} - -func makeExecutor(req *cmds.Request, env interface{}) (cmds.Executor, error) { - details := commandDetails(req.Path) - client, err := commandShouldRunOnDaemon(*details, req, env.(*oldcmds.Context)) - if err != nil { - return nil, err - } - - var exctr cmds.Executor - if client != nil && !req.Command.External { - exctr = client.(cmds.Executor) - } else { - exctr = cmds.NewExecutor(req.Root) - } - - return exctr, nil -} - -func checkPermissions(path string) (bool, error) { - _, err := os.Open(path) - if os.IsNotExist(err) { - // repo does not exist yet - don't load plugins, but also don't fail - return false, nil - } - if os.IsPermission(err) { - // repo is not accessible. error out. - return false, fmt.Errorf("error opening repository at %s: permission denied", path) - } - - return true, nil -} - -// commandDetails returns a command's details for the command given by |path|. -func commandDetails(path []string) *cmdDetails { - var details cmdDetails - // find the last command in path that has a cmdDetailsMap entry - for i := range path { - if cmdDetails, found := cmdDetailsMap[strings.Join(path[:i+1], "/")]; found { - details = cmdDetails - } - } - return &details -} - -// commandShouldRunOnDaemon determines, from command details, whether a -// command ought to be executed on an ipfs daemon. -// -// It returns a client if the command should be executed on a daemon and nil if -// it should be executed on a client. It returns an error if the command must -// NOT be executed on either. -func commandShouldRunOnDaemon(details cmdDetails, req *cmds.Request, cctx *oldcmds.Context) (http.Client, error) { - path := req.Path - // root command. - if len(path) < 1 { - return nil, nil - } - - if details.cannotRunOnClient && details.cannotRunOnDaemon { - return nil, fmt.Errorf("command disabled: %s", path[0]) - } - - if details.doesNotUseRepo && details.canRunOnClient() { - return nil, nil - } - - // at this point need to know whether api is running. we defer - // to this point so that we don't check unnecessarily - - // did user specify an api to use for this command? - apiAddrStr, _ := req.Options[corecmds.ApiOption].(string) - - client, err := getAPIClient(req.Context, cctx.ConfigRoot, apiAddrStr) - if err == repo.ErrApiNotRunning { - if apiAddrStr != "" && req.Command != daemonCmd { - // if user SPECIFIED an api, and this cmd is not daemon - // we MUST use it. so error out. - return nil, err - } - - // ok for api not to be running - } else if err != nil { // some other api error - return nil, err - } - - if client != nil { - if details.cannotRunOnDaemon { - // check if daemon locked. legacy error text, for now. - log.Debugf("Command cannot run on daemon. Checking if daemon is locked") - if daemonLocked, _ := fsrepo.LockedByOtherProcess(cctx.ConfigRoot); daemonLocked { - return nil, cmds.ClientError("ipfs daemon is running. please stop it to run this command") - } - return nil, nil - } - - return client, nil - } - - if details.cannotRunOnClient { - return nil, cmds.ClientError("must run on the ipfs daemon") - } - - return nil, nil -} - -func getRepoPath(req *cmds.Request) (string, error) { - repoOpt, found := req.Options["config"].(string) - if found && repoOpt != "" { - return repoOpt, nil - } - - repoPath, err := fsrepo.BestKnownPath() - if err != nil { - return "", err - } - return repoPath, nil -} - -func loadConfig(path string) (*config.Config, error) { - return fsrepo.ConfigAt(path) -} - -// startProfiling begins CPU profiling and returns a `stop` function to be -// executed as late as possible. The stop function captures the memprofile. -func startProfiling() (func(), error) { - // start CPU profiling as early as possible - ofi, err := os.Create(cpuProfile) - if err != nil { - return nil, err - } - pprof.StartCPUProfile(ofi) - go func() { - for range time.NewTicker(time.Second * 30).C { - err := writeHeapProfileToFile() - if err != nil { - log.Error(err) - } - } - }() - - stopProfiling := func() { - pprof.StopCPUProfile() - ofi.Close() // captured by the closure - } - return stopProfiling, nil -} - -func writeHeapProfileToFile() error { - mprof, err := os.Create(heapProfile) - if err != nil { - return err - } - defer mprof.Close() // _after_ writing the heap profile - return pprof.WriteHeapProfile(mprof) -} - -func profileIfEnabled() (func(), error) { - // FIXME this is a temporary hack so profiling of asynchronous operations - // works as intended. - if os.Getenv(EnvEnableProfiling) != "" { - stopProfilingFunc, err := startProfiling() // TODO maybe change this to its own option... profiling makes it slower. - if err != nil { - return nil, err - } - return stopProfilingFunc, nil - } - return func() {}, nil -} - -var apiFileErrorFmt string = `Failed to parse '%[1]s/api' file. - error: %[2]s -If you're sure go-ipfs isn't running, you can just delete it. -` -var checkIPFSUnixFmt = "Otherwise check:\n\tps aux | grep ipfs" -var checkIPFSWinFmt = "Otherwise check:\n\ttasklist | findstr ipfs" - -// getAPIClient checks the repo, and the given options, checking for -// a running API service. if there is one, it returns a client. -// otherwise, it returns errApiNotRunning, or another error. -func getAPIClient(ctx context.Context, repoPath, apiAddrStr string) (http.Client, error) { - var apiErrorFmt string - switch { - case osh.IsUnix(): - apiErrorFmt = apiFileErrorFmt + checkIPFSUnixFmt - case osh.IsWindows(): - apiErrorFmt = apiFileErrorFmt + checkIPFSWinFmt - default: - apiErrorFmt = apiFileErrorFmt - } - - var addr ma.Multiaddr - var err error - if len(apiAddrStr) != 0 { - addr, err = ma.NewMultiaddr(apiAddrStr) - if err != nil { - return nil, err - } - if len(addr.Protocols()) == 0 { - return nil, fmt.Errorf("multiaddr doesn't provide any protocols") - } - } else { - addr, err = fsrepo.APIAddr(repoPath) - if err == repo.ErrApiNotRunning { - return nil, err - } - - if err != nil { - return nil, fmt.Errorf(apiErrorFmt, repoPath, err.Error()) - } - } - if len(addr.Protocols()) == 0 { - return nil, fmt.Errorf(apiErrorFmt, repoPath, "multiaddr doesn't provide any protocols") - } - return apiClientForAddr(ctx, addr) -} - -func apiClientForAddr(ctx context.Context, addr ma.Multiaddr) (http.Client, error) { - addr, err := resolveAddr(ctx, addr) - if err != nil { - return nil, err - } - - _, host, err := manet.DialArgs(addr) - if err != nil { - return nil, err - } - - return http.NewClient(host, http.ClientWithAPIPrefix(corehttp.APIPath)), nil -} - -func resolveAddr(ctx context.Context, addr ma.Multiaddr) (ma.Multiaddr, error) { - ctx, cancelFunc := context.WithTimeout(ctx, 10*time.Second) - defer cancelFunc() - - addrs, err := dnsResolver.Resolve(ctx, addr) - if err != nil { - return nil, err - } - - if len(addrs) == 0 { - return nil, errors.New("non-resolvable API endpoint") - } - - return addrs[0], nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/runmain_test.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/runmain_test.go deleted file mode 100644 index 8eecce33..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/runmain_test.go +++ /dev/null @@ -1,30 +0,0 @@ -// +build testrunmain - -package main - -import ( - "flag" - "fmt" - "io/ioutil" - "os" - "testing" -) - -// this abuses go so much that I felt dirty writing this code -// but it is the only way to do it without writing custom compiler that would -// be a clone of go-build with go-test -func TestRunMain(t *testing.T) { - args := flag.Args() - os.Args = append([]string{os.Args[0]}, args...) - ret := mainRet() - - p := os.Getenv("IPFS_COVER_RET_FILE") - if len(p) != 0 { - ioutil.WriteFile(p, []byte(fmt.Sprintf("%d\n", ret)), 0777) - } - - // close outputs so go testing doesn't print anything - null, _ := os.Open(os.DevNull) - os.Stderr = null - os.Stdout = null -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal.go deleted file mode 100644 index 1f290c0b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal.go +++ /dev/null @@ -1,77 +0,0 @@ -// +build !wasm - -package util - -import ( - "context" - "fmt" - "io" - "os" - "os/signal" - "sync" - "syscall" -) - -// IntrHandler helps set up an interrupt handler that can -// be cleanly shut down through the io.Closer interface. -type IntrHandler struct { - sig chan os.Signal - wg sync.WaitGroup -} - -func NewIntrHandler() *IntrHandler { - ih := &IntrHandler{} - ih.sig = make(chan os.Signal, 1) - return ih -} - -func (ih *IntrHandler) Close() error { - close(ih.sig) - ih.wg.Wait() - return nil -} - -// Handle starts handling the given signals, and will call the handler -// callback function each time a signal is catched. The function is passed -// the number of times the handler has been triggered in total, as -// well as the handler itself, so that the handling logic can use the -// handler's wait group to ensure clean shutdown when Close() is called. -func (ih *IntrHandler) Handle(handler func(count int, ih *IntrHandler), sigs ...os.Signal) { - signal.Notify(ih.sig, sigs...) - ih.wg.Add(1) - go func() { - defer ih.wg.Done() - count := 0 - for range ih.sig { - count++ - handler(count, ih) - } - signal.Stop(ih.sig) - }() -} - -func SetupInterruptHandler(ctx context.Context) (io.Closer, context.Context) { - intrh := NewIntrHandler() - ctx, cancelFunc := context.WithCancel(ctx) - - handlerFunc := func(count int, ih *IntrHandler) { - switch count { - case 1: - fmt.Println() // Prevent un-terminated ^C character in terminal - - ih.wg.Add(1) - go func() { - defer ih.wg.Done() - cancelFunc() - }() - - default: - fmt.Println("Received another interrupt before graceful shutdown, terminating...") - os.Exit(-1) - } - } - - intrh.Handle(handlerFunc, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) - - return intrh, ctx -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal_wasm.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal_wasm.go deleted file mode 100644 index 12879d59..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/signal_wasm.go +++ /dev/null @@ -1,18 +0,0 @@ -package util - -import ( - "context" - "io" -) - -type ctxCloser context.CancelFunc - -func (c ctxCloser) Close() error { - c() - return nil -} - -func SetupInterruptHandler(ctx context.Context) (io.Closer, context.Context) { - ctx, cancel := context.WithCancel(ctx) - return ctxCloser(cancel), ctx -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit.go deleted file mode 100644 index 81c38a5c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit.go +++ /dev/null @@ -1,87 +0,0 @@ -package util - -import ( - "errors" - "fmt" - "os" - "strconv" - "syscall" - - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("ulimit") - -var ( - supportsFDManagement = false - - // getlimit returns the soft and hard limits of file descriptors counts - getLimit func() (uint64, uint64, error) - // set limit sets the soft and hard limits of file descriptors counts - setLimit func(uint64, uint64) error -) - -// maxFds is the maximum number of file descriptors that go-ipfs -// can use. The default value is 2048. This can be overwritten by the -// IPFS_FD_MAX env variable -var maxFds = uint64(2048) - -// setMaxFds sets the maxFds value from IPFS_FD_MAX -// env variable if it's present on the system -func setMaxFds() { - // check if the IPFS_FD_MAX is set up and if it does - // not have a valid fds number notify the user - if val := os.Getenv("IPFS_FD_MAX"); val != "" { - - fds, err := strconv.ParseUint(val, 10, 64) - if err != nil { - log.Errorf("bad value for IPFS_FD_MAX: %s", err) - return - } - - maxFds = fds - } -} - -// ManageFdLimit raise the current max file descriptor count -// of the process based on the IPFS_FD_MAX value -func ManageFdLimit() (changed bool, newLimit uint64, err error) { - if !supportsFDManagement { - return false, 0, nil - } - - setMaxFds() - soft, hard, err := getLimit() - if err != nil { - return false, 0, err - } - - if maxFds <= soft { - return false, 0, nil - } - - // the soft limit is the value that the kernel enforces for the - // corresponding resource - // the hard limit acts as a ceiling for the soft limit - // an unprivileged process may only set it's soft limit to a - // alue in the range from 0 up to the hard limit - if err = setLimit(maxFds, maxFds); err != nil { - if err != syscall.EPERM { - return false, 0, fmt.Errorf("error setting: ulimit: %s", err) - } - - // the process does not have permission so we should only - // set the soft value - if maxFds > hard { - return false, 0, errors.New( - "cannot set rlimit, IPFS_FD_MAX is larger than the hard limit", - ) - } - - if err = setLimit(maxFds, hard); err != nil { - return false, 0, fmt.Errorf("error setting ulimit wihout hard limit: %s", err) - } - } - - return true, maxFds, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_freebsd.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_freebsd.go deleted file mode 100644 index 945416ec..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_freebsd.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build freebsd - -package util - -import ( - "errors" - "math" - - unix "gx/ipfs/QmVGjyM9i2msKvLXwh9VosCTgP4mL91kC7hDmqnwTTx6Hu/sys/unix" -) - -func init() { - supportsFDManagement = true - getLimit = freebsdGetLimit - setLimit = freebsdSetLimit -} - -func freebsdGetLimit() (uint64, uint64, error) { - rlimit := unix.Rlimit{} - err := unix.Getrlimit(unix.RLIMIT_NOFILE, &rlimit) - if (rlimit.Cur < 0) || (rlimit.Max < 0) { - return 0, 0, errors.New("invalid rlimits") - } - return uint64(rlimit.Cur), uint64(rlimit.Max), err -} - -func freebsdSetLimit(soft uint64, max uint64) error { - if (soft > math.MaxInt64) || (max > math.MaxInt64) { - return errors.New("invalid rlimits") - } - rlimit := unix.Rlimit{ - Cur: int64(soft), - Max: int64(max), - } - return unix.Setrlimit(unix.RLIMIT_NOFILE, &rlimit) -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_test.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_test.go deleted file mode 100644 index 2a5923f6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_test.go +++ /dev/null @@ -1,90 +0,0 @@ -// +build !windows - -package util - -import ( - "fmt" - "os" - "strings" - "syscall" - "testing" -) - -func TestManageFdLimit(t *testing.T) { - t.Log("Testing file descriptor count") - if _, _, err := ManageFdLimit(); err != nil { - t.Errorf("Cannot manage file descriptors") - } - - if maxFds != uint64(2048) { - t.Errorf("Maximum file descriptors default value changed") - } -} - -func TestManageInvalidNFds(t *testing.T) { - t.Logf("Testing file descriptor invalidity") - var err error - if err = os.Unsetenv("IPFS_FD_MAX"); err != nil { - t.Fatal("Cannot unset the IPFS_FD_MAX env variable") - } - - rlimit := syscall.Rlimit{} - if err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit); err != nil { - t.Fatal("Cannot get the file descriptor count") - } - - value := rlimit.Max + rlimit.Cur - if err = os.Setenv("IPFS_FD_MAX", fmt.Sprintf("%d", value)); err != nil { - t.Fatal("Cannot set the IPFS_FD_MAX env variable") - } - - // call to check and set the maximum file descriptor from the env - setMaxFds() - - if _, _, err := ManageFdLimit(); err == nil { - t.Errorf("ManageFdLimit should return an error") - } else if err != nil { - flag := strings.Contains(err.Error(), - "cannot set rlimit, IPFS_FD_MAX is larger than the hard limit") - if !flag { - t.Errorf("ManageFdLimit returned unexpected error") - } - } - - // unset all previous operations - if err = os.Unsetenv("IPFS_FD_MAX"); err != nil { - t.Fatal("Cannot unset the IPFS_FD_MAX env variable") - } -} - -func TestManageFdLimitWithEnvSet(t *testing.T) { - t.Logf("Testing file descriptor manager with IPFS_FD_MAX set") - var err error - if err = os.Unsetenv("IPFS_FD_MAX"); err != nil { - t.Fatal("Cannot unset the IPFS_FD_MAX env variable") - } - - rlimit := syscall.Rlimit{} - if err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit); err != nil { - t.Fatal("Cannot get the file descriptor count") - } - - value := rlimit.Max - rlimit.Cur + 1 - if err = os.Setenv("IPFS_FD_MAX", fmt.Sprintf("%d", value)); err != nil { - t.Fatal("Cannot set the IPFS_FD_MAX env variable") - } - - setMaxFds() - if maxFds != uint64(value) { - t.Errorf("The maxfds is not set from IPFS_FD_MAX") - } - - if _, _, err = ManageFdLimit(); err != nil { - t.Errorf("Cannot manage file descriptor count") - } - - // unset all previous operations - if err = os.Unsetenv("IPFS_FD_MAX"); err != nil { - t.Fatal("Cannot unset the IPFS_FD_MAX env variable") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_unix.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_unix.go deleted file mode 100644 index f85e3a5a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_unix.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build darwin linux netbsd openbsd - -package util - -import ( - unix "gx/ipfs/QmVGjyM9i2msKvLXwh9VosCTgP4mL91kC7hDmqnwTTx6Hu/sys/unix" -) - -func init() { - supportsFDManagement = true - getLimit = unixGetLimit - setLimit = unixSetLimit -} - -func unixGetLimit() (uint64, uint64, error) { - rlimit := unix.Rlimit{} - err := unix.Getrlimit(unix.RLIMIT_NOFILE, &rlimit) - return rlimit.Cur, rlimit.Max, err -} - -func unixSetLimit(soft uint64, max uint64) error { - rlimit := unix.Rlimit{ - Cur: soft, - Max: max, - } - return unix.Setrlimit(unix.RLIMIT_NOFILE, &rlimit) -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_windows.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_windows.go deleted file mode 100644 index 3cd9908c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfs/util/ulimit_windows.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build windows - -package util - -func init() { - supportsFDManagement = false -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/README.md b/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/README.md deleted file mode 100644 index 6b9cea77..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/README.md +++ /dev/null @@ -1,7 +0,0 @@ -IPFSWatch monitors a directory and adds changes to IPFS - -``` -λ. ipfswatch --help - -path=".": the path to watch - -repo="": IPFS_PATH to use -``` diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/ipfswatch_test.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/ipfswatch_test.go deleted file mode 100644 index f698cfa9..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/ipfswatch_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package main - -import ( - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/assert" -) - -func TestIsHidden(t *testing.T) { - assert.True(IsHidden("bar/.git"), t, "dirs beginning with . should be recognized as hidden") - assert.False(IsHidden("."), t, ". for current dir should not be considered hidden") - assert.False(IsHidden("bar/baz"), t, "normal dirs should not be hidden") -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/main.go b/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/main.go deleted file mode 100644 index ab93cc2c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/ipfswatch/main.go +++ /dev/null @@ -1,219 +0,0 @@ -package main - -import ( - "context" - "flag" - "log" - "os" - "os/signal" - "path/filepath" - "syscall" - - commands "github.com/ipfs/go-ipfs/commands" - core "github.com/ipfs/go-ipfs/core" - coreapi "github.com/ipfs/go-ipfs/core/coreapi" - corehttp "github.com/ipfs/go-ipfs/core/corehttp" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - process "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - homedir "gx/ipfs/QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK/go-homedir" - fsnotify "gx/ipfs/QmfNjggF4Pt6erqg3NDafD3MdvDHk1qqCVr8pL5hnPucS8/fsnotify" -) - -var http = flag.Bool("http", false, "expose IPFS HTTP API") -var repoPath = flag.String("repo", os.Getenv("IPFS_PATH"), "IPFS_PATH to use") -var watchPath = flag.String("path", ".", "the path to watch") - -func main() { - flag.Parse() - - // precedence - // 1. --repo flag - // 2. IPFS_PATH environment variable - // 3. default repo path - var ipfsPath string - if *repoPath != "" { - ipfsPath = *repoPath - } else { - var err error - ipfsPath, err = fsrepo.BestKnownPath() - if err != nil { - log.Fatal(err) - } - } - - if err := run(ipfsPath, *watchPath); err != nil { - log.Fatal(err) - } -} - -func run(ipfsPath, watchPath string) error { - - proc := process.WithParent(process.Background()) - log.Printf("running IPFSWatch on '%s' using repo at '%s'...", watchPath, ipfsPath) - - ipfsPath, err := homedir.Expand(ipfsPath) - if err != nil { - return err - } - watcher, err := fsnotify.NewWatcher() - if err != nil { - return err - } - defer watcher.Close() - - if err := addTree(watcher, watchPath); err != nil { - return err - } - - r, err := fsrepo.Open(ipfsPath) - if err != nil { - // TODO handle case: daemon running - // TODO handle case: repo doesn't exist or isn't initialized - return err - } - - node, err := core.NewNode(context.Background(), &core.BuildCfg{ - Online: true, - Repo: r, - }) - if err != nil { - return err - } - defer node.Close() - - api, err := coreapi.NewCoreAPI(node) - if err != nil { - return err - } - - if *http { - addr := "/ip4/127.0.0.1/tcp/5001" - var opts = []corehttp.ServeOption{ - corehttp.GatewayOption(true, "/ipfs", "/ipns"), - corehttp.WebUIOption, - corehttp.CommandsOption(cmdCtx(node, ipfsPath)), - } - proc.Go(func(p process.Process) { - if err := corehttp.ListenAndServe(node, addr, opts...); err != nil { - return - } - }) - } - - interrupts := make(chan os.Signal) - signal.Notify(interrupts, os.Interrupt, syscall.SIGTERM) - - for { - select { - case <-interrupts: - return nil - case e := <-watcher.Events: - log.Printf("received event: %s", e) - isDir, err := IsDirectory(e.Name) - if err != nil { - continue - } - switch e.Op { - case fsnotify.Remove: - if isDir { - if err := watcher.Remove(e.Name); err != nil { - return err - } - } - default: - // all events except for Remove result in an IPFS.Add, but only - // directory creation triggers a new watch - switch e.Op { - case fsnotify.Create: - if isDir { - addTree(watcher, e.Name) - } - } - proc.Go(func(p process.Process) { - file, err := os.Open(e.Name) - if err != nil { - log.Println(err) - return - } - defer file.Close() - - st, err := file.Stat() - if err != nil { - log.Println(err) - return - } - - f, err := files.NewReaderPathFile(e.Name, file, st) - if err != nil { - log.Println(err) - return - } - - k, err := api.Unixfs().Add(node.Context(), f) - if err != nil { - log.Println(err) - } - log.Printf("added %s... key: %s", e.Name, k) - }) - } - case err := <-watcher.Errors: - log.Println(err) - } - } -} - -func addTree(w *fsnotify.Watcher, root string) error { - err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { - isDir, err := IsDirectory(path) - if err != nil { - log.Println(err) - return nil - } - switch { - case isDir && IsHidden(path): - log.Println(path) - return filepath.SkipDir - case isDir: - log.Println(path) - if err := w.Add(path); err != nil { - return err - } - default: - return nil - } - return nil - }) - return err -} - -func IsDirectory(path string) (bool, error) { - fileInfo, err := os.Stat(path) - return fileInfo.IsDir(), err -} - -func IsHidden(path string) bool { - path = filepath.Base(path) - if path == "." || path == "" { - return false - } - if rune(path[0]) == rune('.') { - return true - } - return false -} - -func cmdCtx(node *core.IpfsNode, repoPath string) commands.Context { - return commands.Context{ - Online: true, - ConfigRoot: repoPath, - LoadConfig: func(path string) (*config.Config, error) { - return node.Repo.Config() - }, - ConstructNode: func() (*core.IpfsNode, error) { - return node, nil - }, - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/seccat/.gitignore b/vendor/github.com/ipfs/go-ipfs/cmd/seccat/.gitignore deleted file mode 100644 index 5b0d9d04..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/seccat/.gitignore +++ /dev/null @@ -1 +0,0 @@ -seccat diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/seccat/seccat.go b/vendor/github.com/ipfs/go-ipfs/cmd/seccat/seccat.go deleted file mode 100644 index e9d5a4aa..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/seccat/seccat.go +++ /dev/null @@ -1,251 +0,0 @@ -// package main provides an implementation of netcat using the secio package. -// This means the channel is encrypted (and MACed). -// It is meant to exercise the spipe package. -// Usage: -// seccat [] -// seccat -l -// -// Address format is: [host]:port -package main - -import ( - "context" - "errors" - "flag" - "fmt" - "io" - "net" - "os" - "os/signal" - "syscall" - - secio "gx/ipfs/QmSVaJe1aRjc78cZARTtf4pqvXERYwihyYhZWoVWceHnsK/go-libp2p-secio" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - pstoremem "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore/pstoremem" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var verbose = false - -// Usage prints out the usage of this module. -// Assumes flags use go stdlib flag package. -var Usage = func() { - text := `seccat - secure netcat in Go - -Usage: - - listen: %s [] - dial: %s -l - -Address format is Go's: [host]:port -` - - fmt.Fprintf(os.Stderr, text, os.Args[0], os.Args[0]) - flag.PrintDefaults() -} - -type args struct { - listen bool - verbose bool - debug bool - localAddr string - remoteAddr string - // keyfile string - keybits int -} - -func parseArgs() args { - var a args - - // setup + parse flags - flag.BoolVar(&a.listen, "listen", false, "listen for connections") - flag.BoolVar(&a.listen, "l", false, "listen for connections (short)") - flag.BoolVar(&a.verbose, "v", true, "verbose") - flag.BoolVar(&a.debug, "debug", false, "debugging") - // flag.StringVar(&a.keyfile, "key", "", "private key file") - flag.IntVar(&a.keybits, "keybits", 2048, "num bits for generating private key") - flag.Usage = Usage - flag.Parse() - osArgs := flag.Args() - - if len(osArgs) < 1 { - exit("") - } - - if a.verbose { - out("verbose on") - } - - if a.listen { - a.localAddr = osArgs[0] - } else { - if len(osArgs) > 1 { - a.localAddr = osArgs[0] - a.remoteAddr = osArgs[1] - } else { - a.remoteAddr = osArgs[0] - } - } - - return a -} - -func main() { - args := parseArgs() - verbose = args.verbose - if args.debug { - logging.SetDebugLogging() - } - - go func() { - // wait until we exit. - sigc := make(chan os.Signal, 1) - signal.Notify(sigc, syscall.SIGABRT) - <-sigc - panic("ABORT! ABORT! ABORT!") - }() - - if err := connect(args); err != nil { - exit("%s", err) - } -} - -func setupPeer(a args) (peer.ID, pstore.Peerstore, error) { - if a.keybits < 1024 { - return "", nil, errors.New("bitsize less than 1024 is considered unsafe") - } - - out("generating key pair...") - sk, pk, err := ci.GenerateKeyPair(ci.RSA, a.keybits) - if err != nil { - return "", nil, err - } - - p, err := peer.IDFromPublicKey(pk) - if err != nil { - return "", nil, err - } - - ps := pstoremem.NewPeerstore() - ps.AddPrivKey(p, sk) - ps.AddPubKey(p, pk) - - out("local peer id: %s", p) - return p, ps, nil -} - -func connect(args args) error { - p, ps, err := setupPeer(args) - if err != nil { - return err - } - - var conn net.Conn - if args.listen { - conn, err = Listen(args.localAddr) - } else { - conn, err = Dial(args.localAddr, args.remoteAddr) - } - if err != nil { - return err - } - - // log everything that goes through conn - rwc := &logConn{n: "conn", Conn: conn} - - // OK, let's setup the channel. - sk := ps.PrivKey(p) - sg, err := secio.New(sk) - if err != nil { - return err - } - sconn, err := sg.SecureInbound(context.TODO(), rwc) - if err != nil { - return err - } - out("remote peer id: %s", sconn.RemotePeer()) - netcat(sconn) - return nil -} - -// Listen listens and accepts one incoming UDT connection on a given port, -// and pipes all incoming data to os.Stdout. -func Listen(localAddr string) (net.Conn, error) { - l, err := net.Listen("tcp", localAddr) - if err != nil { - return nil, err - } - out("listening at %s", l.Addr()) - - c, err := l.Accept() - if err != nil { - return nil, err - } - out("accepted connection from %s", c.RemoteAddr()) - - // done with listener - l.Close() - - return c, nil -} - -// Dial connects to a remote address and pipes all os.Stdin to the remote end. -// If localAddr is set, uses it to Dial from. -func Dial(localAddr, remoteAddr string) (net.Conn, error) { - - var laddr net.Addr - var err error - if localAddr != "" { - laddr, err = net.ResolveTCPAddr("tcp", localAddr) - if err != nil { - return nil, fmt.Errorf("failed to resolve address %s", localAddr) - } - } - - if laddr != nil { - out("dialing %s from %s", remoteAddr, laddr) - } else { - out("dialing %s", remoteAddr) - } - - d := net.Dialer{LocalAddr: laddr} - c, err := d.Dial("tcp", remoteAddr) - if err != nil { - return nil, err - } - out("connected to %s", c.RemoteAddr()) - - return c, nil -} - -func netcat(c io.ReadWriteCloser) { - out("piping stdio to connection") - - done := make(chan struct{}, 2) - - go func() { - n, _ := io.Copy(c, os.Stdin) - out("sent %d bytes", n) - done <- struct{}{} - }() - go func() { - n, _ := io.Copy(os.Stdout, c) - out("received %d bytes", n) - done <- struct{}{} - }() - - // wait until we exit. - sigc := make(chan os.Signal, 1) - signal.Notify(sigc, syscall.SIGHUP, syscall.SIGINT, - syscall.SIGTERM, syscall.SIGQUIT) - - select { - case <-done: - case <-sigc: - return - } - - c.Close() -} diff --git a/vendor/github.com/ipfs/go-ipfs/cmd/seccat/util.go b/vendor/github.com/ipfs/go-ipfs/cmd/seccat/util.go deleted file mode 100644 index e3c18ed8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/cmd/seccat/util.go +++ /dev/null @@ -1,47 +0,0 @@ -package main - -import ( - "fmt" - "net" - "os" - - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("seccat") - -func exit(format string, vals ...interface{}) { - if format != "" { - fmt.Fprintf(os.Stderr, "seccat: error: "+format+"\n", vals...) - } - Usage() - os.Exit(1) -} - -func out(format string, vals ...interface{}) { - if verbose { - fmt.Fprintf(os.Stderr, "seccat: "+format+"\n", vals...) - } -} - -type logConn struct { - net.Conn - n string -} - -func (r *logConn) Read(buf []byte) (int, error) { - n, err := r.Conn.Read(buf) - if n > 0 { - log.Debugf("%s read: %v", r.n, buf) - } - return n, err -} - -func (r *logConn) Write(buf []byte) (int, error) { - log.Debugf("%s write: %v", r.n, buf) - return r.Conn.Write(buf) -} - -func (r *logConn) Close() error { - return r.Conn.Close() -} diff --git a/vendor/github.com/ipfs/go-ipfs/commands/context.go b/vendor/github.com/ipfs/go-ipfs/commands/context.go deleted file mode 100644 index 9b8d08f1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/commands/context.go +++ /dev/null @@ -1,130 +0,0 @@ -package commands - -import ( - "context" - "errors" - "strings" - "time" - - core "github.com/ipfs/go-ipfs/core" - coreapi "github.com/ipfs/go-ipfs/core/coreapi" - loader "github.com/ipfs/go-ipfs/plugin/loader" - - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("command") - -// Context represents request context -type Context struct { - Online bool - ConfigRoot string - ReqLog *ReqLog - - Plugins *loader.PluginLoader - - config *config.Config - LoadConfig func(path string) (*config.Config, error) - - Gateway bool - api coreiface.CoreAPI - node *core.IpfsNode - ConstructNode func() (*core.IpfsNode, error) -} - -// GetConfig returns the config of the current Command execution -// context. It may load it with the provided function. -func (c *Context) GetConfig() (*config.Config, error) { - var err error - if c.config == nil { - if c.LoadConfig == nil { - return nil, errors.New("nil LoadConfig function") - } - c.config, err = c.LoadConfig(c.ConfigRoot) - } - return c.config, err -} - -// GetNode returns the node of the current Command execution -// context. It may construct it with the provided function. -func (c *Context) GetNode() (*core.IpfsNode, error) { - var err error - if c.node == nil { - if c.ConstructNode == nil { - return nil, errors.New("nil ConstructNode function") - } - c.node, err = c.ConstructNode() - } - return c.node, err -} - -// GetAPI returns CoreAPI instance backed by ipfs node. -// It may construct the node with the provided function -func (c *Context) GetAPI() (coreiface.CoreAPI, error) { - if c.api == nil { - n, err := c.GetNode() - if err != nil { - return nil, err - } - fetchBlocks := true - if c.Gateway { - cfg, err := c.GetConfig() - if err != nil { - return nil, err - } - fetchBlocks = !cfg.Gateway.NoFetch - } - - c.api, err = coreapi.NewCoreAPI(n, options.Api.FetchBlocks(fetchBlocks)) - if err != nil { - return nil, err - } - } - return c.api, nil -} - -// Context returns the node's context. -func (c *Context) Context() context.Context { - n, err := c.GetNode() - if err != nil { - log.Debug("error getting node: ", err) - return context.Background() - } - - return n.Context() -} - -// LogRequest adds the passed request to the request log and -// returns a function that should be called when the request -// lifetime is over. -func (c *Context) LogRequest(req *cmds.Request) func() { - rle := &ReqLogEntry{ - StartTime: time.Now(), - Active: true, - Command: strings.Join(req.Path, "/"), - Options: req.Options, - Args: req.Arguments, - ID: c.ReqLog.nextID, - log: c.ReqLog, - } - c.ReqLog.AddEntry(rle) - - return func() { - c.ReqLog.Finish(rle) - } -} - -// Close cleans up the application state. -func (c *Context) Close() { - // let's not forget teardown. If a node was initialized, we must close it. - // Note that this means the underlying req.Context().Node variable is exposed. - // this is gross, and should be changed when we extract out the exec Context. - if c.node != nil { - log.Info("Shutting down node...") - c.node.Close() - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/commands/reqlog.go b/vendor/github.com/ipfs/go-ipfs/commands/reqlog.go deleted file mode 100644 index bae1ef13..00000000 --- a/vendor/github.com/ipfs/go-ipfs/commands/reqlog.go +++ /dev/null @@ -1,112 +0,0 @@ -package commands - -import ( - "sync" - "time" -) - -// ReqLogEntry is an entry in the request log -type ReqLogEntry struct { - StartTime time.Time - EndTime time.Time - Active bool - Command string - Options map[string]interface{} - Args []string - ID int - - log *ReqLog -} - -// Copy returns a copy of the ReqLogEntry -func (r *ReqLogEntry) Copy() *ReqLogEntry { - out := *r - out.log = nil - return &out -} - -// ReqLog is a log of requests -type ReqLog struct { - Requests []*ReqLogEntry - nextID int - lock sync.Mutex - keep time.Duration -} - -// AddEntry adds an entry to the log -func (rl *ReqLog) AddEntry(rle *ReqLogEntry) { - rl.lock.Lock() - defer rl.lock.Unlock() - - rl.nextID++ - rl.Requests = append(rl.Requests, rle) - - if rle == nil || !rle.Active { - rl.maybeCleanup() - } - - return -} - -// ClearInactive removes stale entries -func (rl *ReqLog) ClearInactive() { - rl.lock.Lock() - defer rl.lock.Unlock() - - k := rl.keep - rl.keep = 0 - rl.cleanup() - rl.keep = k -} - -func (rl *ReqLog) maybeCleanup() { - // only do it every so often or it might - // become a perf issue - if len(rl.Requests)%10 == 0 { - rl.cleanup() - } -} - -func (rl *ReqLog) cleanup() { - i := 0 - now := time.Now() - for j := 0; j < len(rl.Requests); j++ { - rj := rl.Requests[j] - if rj.Active || rl.Requests[j].EndTime.Add(rl.keep).After(now) { - rl.Requests[i] = rl.Requests[j] - i++ - } - } - rl.Requests = rl.Requests[:i] -} - -// SetKeepTime sets a duration after which an entry will be considered inactive -func (rl *ReqLog) SetKeepTime(t time.Duration) { - rl.lock.Lock() - defer rl.lock.Unlock() - rl.keep = t -} - -// Report generates a copy of all the entries in the requestlog -func (rl *ReqLog) Report() []*ReqLogEntry { - rl.lock.Lock() - defer rl.lock.Unlock() - out := make([]*ReqLogEntry, len(rl.Requests)) - - for i, e := range rl.Requests { - out[i] = e.Copy() - } - - return out -} - -// Finish marks an entry in the log as finished -func (rl *ReqLog) Finish(rle *ReqLogEntry) { - rl.lock.Lock() - defer rl.lock.Unlock() - - rle.Active = false - rle.EndTime = time.Now() - - rl.maybeCleanup() -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/bootstrap.go b/vendor/github.com/ipfs/go-ipfs/core/bootstrap.go index d3b3d79f..5ff4f8e1 100644 --- a/vendor/github.com/ipfs/go-ipfs/core/bootstrap.go +++ b/vendor/github.com/ipfs/go-ipfs/core/bootstrap.go @@ -10,16 +10,16 @@ import ( "time" math2 "github.com/ipfs/go-ipfs/thirdparty/math2" - lgbl "gx/ipfs/QmUbSLukzZYZvEYxynj9Dtd1WrGLxxg9R4U68vCMPWHmRU/go-libp2p-loggables" + lgbl "github.com/libp2p/go-libp2p-loggables" - goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - procctx "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/context" - periodicproc "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/periodic" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - inet "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - host "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" + config "github.com/ipfs/go-ipfs-config" + goprocess "github.com/jbenet/goprocess" + procctx "github.com/jbenet/goprocess/context" + periodicproc "github.com/jbenet/goprocess/periodic" + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" ) // ErrNotEnoughBootstrapPeers signals that we do not have enough bootstrap @@ -80,7 +80,7 @@ func Bootstrap(n *IpfsNode, cfg BootstrapConfig) (io.Closer, error) { if len(cfg.BootstrapPeers()) == 0 { // We *need* to bootstrap but we have no bootstrap peers // configured *at all*, inform the user. - log.Error("no bootstrap nodes configured: go-ipfs may have difficulty connecting to the network") + log.Warning("no bootstrap nodes configured: go-ipfs may have difficulty connecting to the network") } // the periodic bootstrap function -- the connection supervisor diff --git a/vendor/github.com/ipfs/go-ipfs/core/bootstrap_test.go b/vendor/github.com/ipfs/go-ipfs/core/bootstrap_test.go deleted file mode 100644 index 72473947..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/bootstrap_test.go +++ /dev/null @@ -1,56 +0,0 @@ -package core - -import ( - "fmt" - "testing" - - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -func TestSubsetWhenMaxIsGreaterThanLengthOfSlice(t *testing.T) { - var ps []pstore.PeerInfo - sizeofSlice := 100 - for i := 0; i < sizeofSlice; i++ { - pid, err := testutil.RandPeerID() - if err != nil { - t.Fatal(err) - } - - ps = append(ps, pstore.PeerInfo{ID: pid}) - } - out := randomSubsetOfPeers(ps, 2*sizeofSlice) - if len(out) != len(ps) { - t.Fail() - } -} - -func TestMultipleAddrsPerPeer(t *testing.T) { - var bsps []config.BootstrapPeer - for i := 0; i < 10; i++ { - pid, err := testutil.RandPeerID() - if err != nil { - t.Fatal(err) - } - - addr := fmt.Sprintf("/ip4/127.0.0.1/tcp/5001/ipfs/%s", pid.Pretty()) - bsp1, err := config.ParseBootstrapPeer(addr) - if err != nil { - t.Fatal(err) - } - - addr = fmt.Sprintf("/ip4/127.0.0.1/udp/5002/utp/ipfs/%s", pid.Pretty()) - bsp2, err := config.ParseBootstrapPeer(addr) - if err != nil { - t.Fatal(err) - } - - bsps = append(bsps, bsp1, bsp2) - } - - pinfos := toPeerInfos(bsps) - if len(pinfos) != len(bsps)/2 { - t.Fatal("expected fewer peers") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/builder.go b/vendor/github.com/ipfs/go-ipfs/core/builder.go index 4fff7e4f..1fdec994 100644 --- a/vendor/github.com/ipfs/go-ipfs/core/builder.go +++ b/vendor/github.com/ipfs/go-ipfs/core/builder.go @@ -5,6 +5,7 @@ import ( "crypto/rand" "encoding/base64" "errors" + "github.com/ipfs/go-ipfs/provider" "os" "syscall" "time" @@ -16,27 +17,27 @@ import ( cidv0v1 "github.com/ipfs/go-ipfs/thirdparty/cidv0v1" "github.com/ipfs/go-ipfs/thirdparty/verifbs" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - resolver "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path/resolver" - libp2p "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p" - goprocessctx "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/context" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - cfg "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - retry "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/retrystore" - dsync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - offroute "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/offline" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - pstoremem "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore/pstoremem" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" - record "gx/ipfs/QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX/go-libp2p-record" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" - metrics "gx/ipfs/QmekzFM3hPZjTjUFGTABdQkEnQ3PTiMstY198PwSFr5w1Q/go-metrics-interface" + bserv "github.com/ipfs/go-blockservice" + ds "github.com/ipfs/go-datastore" + retry "github.com/ipfs/go-datastore/retrystore" + dsync "github.com/ipfs/go-datastore/sync" + bstore "github.com/ipfs/go-ipfs-blockstore" + cfg "github.com/ipfs/go-ipfs-config" + offline "github.com/ipfs/go-ipfs-exchange-offline" + offroute "github.com/ipfs/go-ipfs-routing/offline" + ipns "github.com/ipfs/go-ipns" + dag "github.com/ipfs/go-merkledag" + metrics "github.com/ipfs/go-metrics-interface" + resolver "github.com/ipfs/go-path/resolver" + uio "github.com/ipfs/go-unixfs/io" + goprocessctx "github.com/jbenet/goprocess/context" + libp2p "github.com/libp2p/go-libp2p" + ci "github.com/libp2p/go-libp2p-crypto" + p2phost "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + pstoremem "github.com/libp2p/go-libp2p-peerstore/pstoremem" + record "github.com/libp2p/go-libp2p-record" ) type BuildCfg struct { @@ -77,10 +78,10 @@ func (cfg *BuildCfg) fillDefaults() error { if cfg.Repo == nil { var d ds.Datastore - d = ds.NewMapDatastore() - if cfg.NilRepo { d = ds.NewNullDatastore() + } else { + d = ds.NewMapDatastore() } r, err := defaultRepo(dsync.MutexWrap(d)) if err != nil { @@ -142,7 +143,7 @@ func NewNode(ctx context.Context, cfg *BuildCfg) (*IpfsNode, error) { ctx = metrics.CtxScope(ctx, "ipfs") n := &IpfsNode{ - mode: offlineMode, + IsOnline: cfg.Online, Repo: cfg.Repo, ctx: ctx, Peerstore: pstoremem.NewPeerstore(), @@ -153,10 +154,6 @@ func NewNode(ctx context.Context, cfg *BuildCfg) (*IpfsNode, error) { "ipns": ipns.Validator{KeyBook: n.Peerstore}, } - if cfg.Online { - n.mode = onlineMode - } - // TODO: this is a weird circular-ish dependency, rework it n.proc = goprocessctx.WithContextAndTeardown(ctx, n.teardown) @@ -279,6 +276,13 @@ func setupNode(ctx context.Context, n *IpfsNode, cfg *BuildCfg) error { } n.Resolver = resolver.NewBasicResolver(n.DAG) + // Provider + queue, err := provider.NewQueue(ctx, "provider-v1", n.Repo.Datastore()) + if err != nil { + return err + } + n.Provider = provider.NewProvider(ctx, queue, n.Routing) + if cfg.Online { if err := n.startLateOnlineServices(ctx); err != nil { return err diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/active.go b/vendor/github.com/ipfs/go-ipfs/core/commands/active.go deleted file mode 100644 index 1606b2a2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/active.go +++ /dev/null @@ -1,116 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "sort" - "text/tabwriter" - "time" - - oldcmds "github.com/ipfs/go-ipfs/commands" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const ( - verboseOptionName = "verbose" -) - -var ActiveReqsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List commands run on this IPFS node.", - ShortDescription: ` -Lists running and recently run commands. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - ctx := env.(*oldcmds.Context) - return cmds.EmitOnce(res, ctx.ReqLog.Report()) - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(verboseOptionName, "v", "Print extra information."), - }, - Subcommands: map[string]*cmds.Command{ - "clear": clearInactiveCmd, - "set-time": setRequestClearCmd, - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *[]*cmds.ReqLogEntry) error { - verbose, _ := req.Options[verboseOptionName].(bool) - - tw := tabwriter.NewWriter(w, 4, 4, 2, ' ', 0) - if verbose { - fmt.Fprint(tw, "ID\t") - } - fmt.Fprint(tw, "Command\t") - if verbose { - fmt.Fprint(tw, "Arguments\tOptions\t") - } - fmt.Fprintln(tw, "Active\tStartTime\tRunTime") - - for _, req := range *out { - if verbose { - fmt.Fprintf(tw, "%d\t", req.ID) - } - fmt.Fprintf(tw, "%s\t", req.Command) - if verbose { - fmt.Fprintf(tw, "%v\t[", req.Args) - var keys []string - for k := range req.Options { - keys = append(keys, k) - } - sort.Strings(keys) - - for _, k := range keys { - fmt.Fprintf(tw, "%s=%v,", k, req.Options[k]) - } - fmt.Fprintf(tw, "]\t") - } - - var live time.Duration - if req.Active { - live = time.Since(req.StartTime) - } else { - live = req.EndTime.Sub(req.StartTime) - } - t := req.StartTime.Format(time.Stamp) - fmt.Fprintf(tw, "%t\t%s\t%s\n", req.Active, t, live) - } - tw.Flush() - - return nil - }), - }, - Type: []*cmds.ReqLogEntry{}, -} - -var clearInactiveCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Clear inactive requests from the log.", - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - ctx := env.(*oldcmds.Context) - ctx.ReqLog.ClearInactive() - return nil - }, -} - -var setRequestClearCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Set how long to keep inactive requests in the log.", - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("time", true, false, "Time to keep inactive requests in log."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - tval, err := time.ParseDuration(req.Arguments[0]) - if err != nil { - return err - } - ctx := env.(*oldcmds.Context) - ctx.ReqLog.SetKeepTime(tval) - - return nil - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/add.go b/vendor/github.com/ipfs/go-ipfs/core/commands/add.go deleted file mode 100644 index a211bc34..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/add.go +++ /dev/null @@ -1,392 +0,0 @@ -package commands - -import ( - "errors" - "fmt" - "io" - "os" - "strings" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - pb "gx/ipfs/QmYWB8oH6o7qftxoyqTTZhzLrhKCVT7NYahECQTwTtqbgj/pb" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" -) - -// ErrDepthLimitExceeded indicates that the max depth has been exceeded. -var ErrDepthLimitExceeded = fmt.Errorf("depth limit exceeded") - -type AddEvent struct { - Name string - Hash string `json:",omitempty"` - Bytes int64 `json:",omitempty"` - Size string `json:",omitempty"` -} - -const ( - quietOptionName = "quiet" - quieterOptionName = "quieter" - silentOptionName = "silent" - progressOptionName = "progress" - trickleOptionName = "trickle" - wrapOptionName = "wrap-with-directory" - stdinPathName = "stdin-name" - hiddenOptionName = "hidden" - onlyHashOptionName = "only-hash" - chunkerOptionName = "chunker" - pinOptionName = "pin" - rawLeavesOptionName = "raw-leaves" - noCopyOptionName = "nocopy" - fstoreCacheOptionName = "fscache" - cidVersionOptionName = "cid-version" - hashOptionName = "hash" - inlineOptionName = "inline" - inlineLimitOptionName = "inline-limit" -) - -const adderOutChanSize = 8 - -var AddCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add a file or directory to ipfs.", - ShortDescription: ` -Adds contents of to ipfs. Use -r to add directories (recursively). -`, - LongDescription: ` -Adds contents of to ipfs. Use -r to add directories. -Note that directories are added recursively, to form the ipfs -MerkleDAG. - -The wrap option, '-w', wraps the file (or files, if using the -recursive option) in a directory. This directory contains only -the files which have been added, and means that the file retains -its filename. For example: - - > ipfs add example.jpg - added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH example.jpg - > ipfs add example.jpg -w - added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH example.jpg - added QmaG4FuMqEBnQNn3C8XJ5bpW8kLs7zq2ZXgHptJHbKDDVx - -You can now refer to the added file in a gateway, like so: - - /ipfs/QmaG4FuMqEBnQNn3C8XJ5bpW8kLs7zq2ZXgHptJHbKDDVx/example.jpg - -The chunker option, '-s', specifies the chunking strategy that dictates -how to break files into blocks. Blocks with same content can -be deduplicated. Different chunking strategies will produce different -hashes for the same file. The default is a fixed block size of -256 * 1024 bytes, 'size-262144'. Alternatively, you can use the -Rabin fingerprint chunker for content defined chunking by specifying -rabin-[min]-[avg]-[max] (where min/avg/max refer to the desired -chunk sizes in bytes), e.g. 'rabin-262144-524288-1048576'. - -The following examples use very small byte sizes to demonstrate the -properties of the different chunkers on a small file. You'll likely -want to use a 1024 times larger chunk sizes for most files. - - > ipfs add --chunker=size-2048 ipfs-logo.svg - added QmafrLBfzRLV4XSH1XcaMMeaXEUhDJjmtDfsYU95TrWG87 ipfs-logo.svg - > ipfs add --chunker=rabin-512-1024-2048 ipfs-logo.svg - added Qmf1hDN65tR55Ubh2RN1FPxr69xq3giVBz1KApsresY8Gn ipfs-logo.svg - -You can now check what blocks have been created by: - - > ipfs object links QmafrLBfzRLV4XSH1XcaMMeaXEUhDJjmtDfsYU95TrWG87 - QmY6yj1GsermExDXoosVE3aSPxdMNYr6aKuw3nA8LoWPRS 2059 - Qmf7ZQeSxq2fJVJbCmgTrLLVN9tDR9Wy5k75DxQKuz5Gyt 1195 - > ipfs object links Qmf1hDN65tR55Ubh2RN1FPxr69xq3giVBz1KApsresY8Gn - QmY6yj1GsermExDXoosVE3aSPxdMNYr6aKuw3nA8LoWPRS 2059 - QmerURi9k4XzKCaaPbsK6BL5pMEjF7PGphjDvkkjDtsVf3 868 - QmQB28iwSriSUSMqG2nXDTLtdPHgWb4rebBrU7Q1j4vxPv 338 -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("path", true, true, "The path to a file to be added to ipfs.").EnableRecursive().EnableStdin(), - }, - Options: []cmdkit.Option{ - cmds.OptionRecursivePath, // a builtin option that allows recursive paths (-r, --recursive) - cmds.OptionDerefArgs, // a builtin option that resolves passed in filesystem links (--dereference-args) - cmdkit.BoolOption(quietOptionName, "q", "Write minimal output."), - cmdkit.BoolOption(quieterOptionName, "Q", "Write only final hash."), - cmdkit.BoolOption(silentOptionName, "Write no output."), - cmdkit.BoolOption(progressOptionName, "p", "Stream progress data."), - cmdkit.BoolOption(trickleOptionName, "t", "Use trickle-dag format for dag generation."), - cmdkit.BoolOption(onlyHashOptionName, "n", "Only chunk and hash - do not write to disk."), - cmdkit.BoolOption(wrapOptionName, "w", "Wrap files with a directory object."), - cmdkit.StringOption(stdinPathName, "Assign a name if the file source is stdin."), - cmdkit.BoolOption(hiddenOptionName, "H", "Include files that are hidden. Only takes effect on recursive add."), - cmdkit.StringOption(chunkerOptionName, "s", "Chunking algorithm, size-[bytes] or rabin-[min]-[avg]-[max]").WithDefault("size-262144"), - cmdkit.BoolOption(pinOptionName, "Pin this object when adding.").WithDefault(true), - cmdkit.BoolOption(rawLeavesOptionName, "Use raw blocks for leaf nodes. (experimental)"), - cmdkit.BoolOption(noCopyOptionName, "Add the file using filestore. Implies raw-leaves. (experimental)"), - cmdkit.BoolOption(fstoreCacheOptionName, "Check the filestore for pre-existing blocks. (experimental)"), - cmdkit.IntOption(cidVersionOptionName, "CID version. Defaults to 0 unless an option that depends on CIDv1 is passed. (experimental)"), - cmdkit.StringOption(hashOptionName, "Hash function to use. Implies CIDv1 if not sha2-256. (experimental)").WithDefault("sha2-256"), - cmdkit.BoolOption(inlineOptionName, "Inline small blocks into CIDs. (experimental)"), - cmdkit.IntOption(inlineLimitOptionName, "Maximum block size to inline. (experimental)").WithDefault(32), - }, - PreRun: func(req *cmds.Request, env cmds.Environment) error { - quiet, _ := req.Options[quietOptionName].(bool) - quieter, _ := req.Options[quieterOptionName].(bool) - quiet = quiet || quieter - - silent, _ := req.Options[silentOptionName].(bool) - - if quiet || silent { - return nil - } - - // ipfs cli progress bar defaults to true unless quiet or silent is used - _, found := req.Options[progressOptionName].(bool) - if !found { - req.Options[progressOptionName] = true - } - - return nil - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - progress, _ := req.Options[progressOptionName].(bool) - trickle, _ := req.Options[trickleOptionName].(bool) - wrap, _ := req.Options[wrapOptionName].(bool) - hash, _ := req.Options[onlyHashOptionName].(bool) - hidden, _ := req.Options[hiddenOptionName].(bool) - silent, _ := req.Options[silentOptionName].(bool) - chunker, _ := req.Options[chunkerOptionName].(string) - dopin, _ := req.Options[pinOptionName].(bool) - rawblks, rbset := req.Options[rawLeavesOptionName].(bool) - nocopy, _ := req.Options[noCopyOptionName].(bool) - fscache, _ := req.Options[fstoreCacheOptionName].(bool) - cidVer, cidVerSet := req.Options[cidVersionOptionName].(int) - hashFunStr, _ := req.Options[hashOptionName].(string) - inline, _ := req.Options[inlineOptionName].(bool) - inlineLimit, _ := req.Options[inlineLimitOptionName].(int) - pathName, _ := req.Options[stdinPathName].(string) - - hashFunCode, ok := mh.Names[strings.ToLower(hashFunStr)] - if !ok { - return fmt.Errorf("unrecognized hash function: %s", strings.ToLower(hashFunStr)) - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - events := make(chan interface{}, adderOutChanSize) - - opts := []options.UnixfsAddOption{ - options.Unixfs.Hash(hashFunCode), - - options.Unixfs.Inline(inline), - options.Unixfs.InlineLimit(inlineLimit), - - options.Unixfs.Chunker(chunker), - - options.Unixfs.Pin(dopin), - options.Unixfs.HashOnly(hash), - options.Unixfs.FsCache(fscache), - options.Unixfs.Nocopy(nocopy), - - options.Unixfs.Wrap(wrap), - options.Unixfs.Hidden(hidden), - options.Unixfs.StdinName(pathName), - - options.Unixfs.Progress(progress), - options.Unixfs.Silent(silent), - options.Unixfs.Events(events), - } - - if cidVerSet { - opts = append(opts, options.Unixfs.CidVersion(cidVer)) - } - - if rbset { - opts = append(opts, options.Unixfs.RawLeaves(rawblks)) - } - - if trickle { - opts = append(opts, options.Unixfs.Layout(options.TrickleLayout)) - } - - errCh := make(chan error) - go func() { - var err error - defer func() { errCh <- err }() - defer close(events) - _, err = api.Unixfs().Add(req.Context, req.Files, opts...) - }() - - for event := range events { - output, ok := event.(*coreiface.AddEvent) - if !ok { - return errors.New("unknown event type") - } - - h := "" - if output.Path != nil { - h = enc.Encode(output.Path.Cid()) - } - - res.Emit(&AddEvent{ - Name: output.Name, - Hash: h, - Bytes: output.Bytes, - Size: output.Size, - }) - } - - return <-errCh - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - sizeChan := make(chan int64, 1) - outChan := make(chan interface{}) - req := res.Request() - - // Could be slow. - go func() { - size, err := req.Files.Size() - if err != nil { - log.Warningf("error getting files size: %s", err) - // see comment above - return - } - - sizeChan <- size - }() - - progressBar := func(wait chan struct{}) { - defer close(wait) - - quiet, _ := req.Options[quietOptionName].(bool) - quieter, _ := req.Options[quieterOptionName].(bool) - quiet = quiet || quieter - - progress, _ := req.Options[progressOptionName].(bool) - - var bar *pb.ProgressBar - if progress { - bar = pb.New64(0).SetUnits(pb.U_BYTES) - bar.ManualUpdate = true - bar.ShowTimeLeft = false - bar.ShowPercent = false - bar.Output = os.Stderr - bar.Start() - } - - lastFile := "" - lastHash := "" - var totalProgress, prevFiles, lastBytes int64 - - LOOP: - for { - select { - case out, ok := <-outChan: - if !ok { - if quieter { - fmt.Fprintln(os.Stdout, lastHash) - } - - break LOOP - } - output := out.(*AddEvent) - if len(output.Hash) > 0 { - lastHash = output.Hash - if quieter { - continue - } - - if progress { - // clear progress bar line before we print "added x" output - fmt.Fprintf(os.Stderr, "\033[2K\r") - } - if quiet { - fmt.Fprintf(os.Stdout, "%s\n", output.Hash) - } else { - fmt.Fprintf(os.Stdout, "added %s %s\n", output.Hash, output.Name) - } - - } else { - if !progress { - continue - } - - if len(lastFile) == 0 { - lastFile = output.Name - } - if output.Name != lastFile || output.Bytes < lastBytes { - prevFiles += lastBytes - lastFile = output.Name - } - lastBytes = output.Bytes - delta := prevFiles + lastBytes - totalProgress - totalProgress = bar.Add64(delta) - } - - if progress { - bar.Update() - } - case size := <-sizeChan: - if progress { - bar.Total = size - bar.ShowPercent = true - bar.ShowBar = true - bar.ShowTimeLeft = true - } - case <-req.Context.Done(): - // don't set or print error here, that happens in the goroutine below - return - } - } - - if progress && bar.Total == 0 && bar.Get() != 0 { - bar.Total = bar.Get() - bar.ShowPercent = true - bar.ShowBar = true - bar.ShowTimeLeft = true - bar.Update() - } - } - - if e := res.Error(); e != nil { - close(outChan) - return e - } - - wait := make(chan struct{}) - go progressBar(wait) - - defer func() { <-wait }() - defer close(outChan) - - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - return nil - } - - return err - } - - select { - case outChan <- v: - case <-req.Context.Done(): - return req.Context.Err() - } - } - }, - }, - Type: AddEvent{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/bitswap.go b/vendor/github.com/ipfs/go-ipfs/core/commands/bitswap.go deleted file mode 100644 index d5611d8c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/bitswap.go +++ /dev/null @@ -1,220 +0,0 @@ -package commands - -import ( - "fmt" - "io" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - e "github.com/ipfs/go-ipfs/core/commands/e" - - humanize "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - bitswap "gx/ipfs/QmcSPuzpSbVLU6UHU4e5PwZpm4fHbCn5SbNR5ZNL6Mj63G/go-bitswap" - decision "gx/ipfs/QmcSPuzpSbVLU6UHU4e5PwZpm4fHbCn5SbNR5ZNL6Mj63G/go-bitswap/decision" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - cidutil "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil" -) - -var BitswapCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with the bitswap agent.", - ShortDescription: ``, - }, - - Subcommands: map[string]*cmds.Command{ - "stat": bitswapStatCmd, - "wantlist": showWantlistCmd, - "ledger": ledgerCmd, - "reprovide": reprovideCmd, - }, -} - -const ( - peerOptionName = "peer" -) - -var showWantlistCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show blocks currently on the wantlist.", - ShortDescription: ` -Print out all blocks currently on the bitswap wantlist for the local peer.`, - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(peerOptionName, "p", "Specify which peer to show wantlist for. Default: self."), - }, - Type: KeyList{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - bs, ok := nd.Exchange.(*bitswap.Bitswap) - if !ok { - return e.TypeErr(bs, nd.Exchange) - } - - pstr, found := req.Options[peerOptionName].(string) - if found { - pid, err := peer.IDB58Decode(pstr) - if err != nil { - return err - } - if pid != nd.Identity { - return cmds.EmitOnce(res, &KeyList{bs.WantlistForPeer(pid)}) - } - } - - return cmds.EmitOnce(res, &KeyList{bs.GetWantlist()}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *KeyList) error { - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - // sort the keys first - cidutil.Sort(out.Keys) - for _, key := range out.Keys { - fmt.Fprintln(w, enc.Encode(key)) - } - return nil - }), - }, -} - -var bitswapStatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show some diagnostic information on the bitswap agent.", - ShortDescription: ``, - }, - Type: bitswap.Stat{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return cmdkit.Errorf(cmdkit.ErrClient, ErrNotOnline.Error()) - } - - bs, ok := nd.Exchange.(*bitswap.Bitswap) - if !ok { - return e.TypeErr(bs, nd.Exchange) - } - - st, err := bs.Stat() - if err != nil { - return err - } - - return cmds.EmitOnce(res, st) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, s *bitswap.Stat) error { - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - fmt.Fprintln(w, "bitswap status") - fmt.Fprintf(w, "\tprovides buffer: %d / %d\n", s.ProvideBufLen, bitswap.HasBlockBufferSize) - fmt.Fprintf(w, "\tblocks received: %d\n", s.BlocksReceived) - fmt.Fprintf(w, "\tblocks sent: %d\n", s.BlocksSent) - fmt.Fprintf(w, "\tdata received: %d\n", s.DataReceived) - fmt.Fprintf(w, "\tdata sent: %d\n", s.DataSent) - fmt.Fprintf(w, "\tdup blocks received: %d\n", s.DupBlksReceived) - fmt.Fprintf(w, "\tdup data received: %s\n", humanize.Bytes(s.DupDataReceived)) - fmt.Fprintf(w, "\twantlist [%d keys]\n", len(s.Wantlist)) - for _, k := range s.Wantlist { - fmt.Fprintf(w, "\t\t%s\n", enc.Encode(k)) - } - fmt.Fprintf(w, "\tpartners [%d]\n", len(s.Peers)) - for _, p := range s.Peers { - fmt.Fprintf(w, "\t\t%s\n", p) - } - - return nil - }), - }, -} - -var ledgerCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show the current ledger for a peer.", - ShortDescription: ` -The Bitswap decision engine tracks the number of bytes exchanged between IPFS -nodes, and stores this information as a collection of ledgers. This command -prints the ledger associated with a given peer. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peer", true, false, "The PeerID (B58) of the ledger to inspect."), - }, - Type: decision.Receipt{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - bs, ok := nd.Exchange.(*bitswap.Bitswap) - if !ok { - return e.TypeErr(bs, nd.Exchange) - } - - partner, err := peer.IDB58Decode(req.Arguments[0]) - if err != nil { - return err - } - - return cmds.EmitOnce(res, bs.LedgerForPeer(partner)) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *decision.Receipt) error { - fmt.Fprintf(w, "Ledger for %s\n"+ - "Debt ratio:\t%f\n"+ - "Exchanges:\t%d\n"+ - "Bytes sent:\t%d\n"+ - "Bytes received:\t%d\n\n", - out.Peer, out.Value, out.Exchanged, - out.Sent, out.Recv) - return nil - }), - }, -} - -var reprovideCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Trigger reprovider.", - ShortDescription: ` -Trigger reprovider to announce our data to network. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - err = nd.Reprovider.Trigger(req.Context) - if err != nil { - return err - } - - return nil - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/block.go b/vendor/github.com/ipfs/go-ipfs/core/commands/block.go deleted file mode 100644 index f80b8c39..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/block.go +++ /dev/null @@ -1,276 +0,0 @@ -package commands - -import ( - "errors" - "fmt" - "io" - "os" - - util "github.com/ipfs/go-ipfs/blocks/blockstoreutil" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" -) - -type BlockStat struct { - Key string - Size int -} - -func (bs BlockStat) String() string { - return fmt.Sprintf("Key: %s\nSize: %d\n", bs.Key, bs.Size) -} - -var BlockCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with raw IPFS blocks.", - ShortDescription: ` -'ipfs block' is a plumbing command used to manipulate raw IPFS blocks. -Reads from stdin or writes to stdout, and is a base58 encoded -multihash. -`, - }, - - Subcommands: map[string]*cmds.Command{ - "stat": blockStatCmd, - "get": blockGetCmd, - "put": blockPutCmd, - "rm": blockRmCmd, - }, -} - -var blockStatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Print information of a raw IPFS block.", - ShortDescription: ` -'ipfs block stat' is a plumbing command for retrieving information -on raw IPFS blocks. It outputs the following to stdout: - - Key - the base58 encoded multihash - Size - the size of the block in bytes - -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "The base58 multihash of an existing block to stat.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - p, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - b, err := api.Block().Stat(req.Context, p) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BlockStat{ - Key: b.Path().Cid().String(), - Size: b.Size(), - }) - }, - Type: BlockStat{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, bs *BlockStat) error { - _, err := fmt.Fprintf(w, "%s", bs) - return err - }), - }, -} - -var blockGetCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Get a raw IPFS block.", - ShortDescription: ` -'ipfs block get' is a plumbing command for retrieving raw IPFS blocks. -It outputs to stdout, and is a base58 encoded multihash. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "The base58 multihash of an existing block to get.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - p, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - r, err := api.Block().Get(req.Context, p) - if err != nil { - return err - } - - return res.Emit(r) - }, -} - -const ( - blockFormatOptionName = "format" - mhtypeOptionName = "mhtype" - mhlenOptionName = "mhlen" -) - -var blockPutCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Store input as an IPFS block.", - ShortDescription: ` -'ipfs block put' is a plumbing command for storing raw IPFS blocks. -It reads from stdin, and is a base58 encoded multihash. - -By default CIDv0 is going to be generated. Setting 'mhtype' to anything other -than 'sha2-256' or format to anything other than 'v0' will result in CIDv1. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("data", true, false, "The data to be stored as an IPFS block.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(blockFormatOptionName, "f", "cid format for blocks to be created with."), - cmdkit.StringOption(mhtypeOptionName, "multihash hash function").WithDefault("sha2-256"), - cmdkit.IntOption(mhlenOptionName, "multihash hash length").WithDefault(-1), - cmdkit.BoolOption(pinOptionName, "pin added blocks recursively").WithDefault(false), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - file, err := cmdenv.GetFileArg(req.Files.Entries()) - if err != nil { - return err - } - - mhtype, _ := req.Options[mhtypeOptionName].(string) - mhtval, ok := mh.Names[mhtype] - if !ok { - return fmt.Errorf("unrecognized multihash function: %s", mhtype) - } - - mhlen, ok := req.Options[mhlenOptionName].(int) - if !ok { - return errors.New("missing option \"mhlen\"") - } - - format, formatSet := req.Options[blockFormatOptionName].(string) - if !formatSet { - if mhtval != mh.SHA2_256 || (mhlen != -1 && mhlen != 32) { - format = "protobuf" - } else { - format = "v0" - } - } - - pin, _ := req.Options[pinOptionName].(bool) - - p, err := api.Block().Put(req.Context, file, - options.Block.Hash(mhtval, mhlen), - options.Block.Format(format), - options.Block.Pin(pin)) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BlockStat{ - Key: p.Path().Cid().String(), - Size: p.Size(), - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, bs *BlockStat) error { - _, err := fmt.Fprintf(w, "%s\n", bs.Key) - return err - }), - }, - Type: BlockStat{}, -} - -const ( - forceOptionName = "force" - blockQuietOptionName = "quiet" -) - -var blockRmCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove IPFS block(s).", - ShortDescription: ` -'ipfs block rm' is a plumbing command for removing raw ipfs blocks. -It takes a list of base58 encoded multihashes to remove. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("hash", true, true, "Bash58 encoded multihash of block(s) to remove."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(forceOptionName, "f", "Ignore nonexistent blocks."), - cmdkit.BoolOption(blockQuietOptionName, "q", "Write minimal output."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - force, _ := req.Options[forceOptionName].(bool) - quiet, _ := req.Options[blockQuietOptionName].(bool) - - // TODO: use batching coreapi when done - for _, b := range req.Arguments { - p, err := coreiface.ParsePath(b) - if err != nil { - return err - } - - rp, err := api.ResolvePath(req.Context, p) - if err != nil { - return err - } - - err = api.Block().Rm(req.Context, rp, options.Block.Force(force)) - if err != nil { - if err := res.Emit(&util.RemovedBlock{ - Hash: rp.Cid().String(), - Error: err.Error(), - }); err != nil { - return err - } - continue - } - - if !quiet { - err := res.Emit(&util.RemovedBlock{ - Hash: rp.Cid().String(), - }) - if err != nil { - return err - } - } - } - - return nil - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - return util.ProcRmOutput(res.Next, os.Stdout, os.Stderr) - }, - }, - Type: util.RemovedBlock{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/bootstrap.go b/vendor/github.com/ipfs/go-ipfs/core/commands/bootstrap.go deleted file mode 100644 index be57eae0..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/bootstrap.go +++ /dev/null @@ -1,410 +0,0 @@ -package commands - -import ( - "errors" - "io" - "sort" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - repo "github.com/ipfs/go-ipfs/repo" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type BootstrapOutput struct { - Peers []string -} - -var peerOptionDesc = "A peer to add to the bootstrap list (in the format '/')" - -var BootstrapCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show or edit the list of bootstrap peers.", - ShortDescription: ` -Running 'ipfs bootstrap' with no arguments will run 'ipfs bootstrap list'. -` + bootstrapSecurityWarning, - }, - - Run: bootstrapListCmd.Run, - Encoders: bootstrapListCmd.Encoders, - Type: bootstrapListCmd.Type, - - Subcommands: map[string]*cmds.Command{ - "list": bootstrapListCmd, - "add": bootstrapAddCmd, - "rm": bootstrapRemoveCmd, - }, -} - -const ( - defaultOptionName = "default" -) - -var bootstrapAddCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add peers to the bootstrap list.", - ShortDescription: `Outputs a list of peers that were added (that weren't already -in the bootstrap list). -` + bootstrapSecurityWarning, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peer", false, true, peerOptionDesc).EnableStdin(), - }, - - Options: []cmdkit.Option{ - cmdkit.BoolOption(defaultOptionName, "Add default bootstrap nodes. (Deprecated, use 'default' subcommand instead)"), - }, - Subcommands: map[string]*cmds.Command{ - "default": bootstrapAddDefaultCmd, - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - deflt, _ := req.Options[defaultOptionName].(bool) - - var inputPeers []config.BootstrapPeer - if deflt { - // parse separately for meaningful, correct error. - defltPeers, err := config.DefaultBootstrapPeers() - if err != nil { - return err - } - - inputPeers = defltPeers - } else { - if err := req.ParseBodyArgs(); err != nil { - return err - } - - parsedPeers, err := config.ParseBootstrapPeers(req.Arguments) - if err != nil { - return err - } - - inputPeers = parsedPeers - } - - if len(inputPeers) == 0 { - return errors.New("no bootstrap peers to add") - } - - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - added, err := bootstrapAdd(r, cfg, inputPeers) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(added)}) - }, - Type: BootstrapOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *BootstrapOutput) error { - return bootstrapWritePeers(w, "added ", out.Peers) - }), - }, -} - -var bootstrapAddDefaultCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add default peers to the bootstrap list.", - ShortDescription: `Outputs a list of peers that were added (that weren't already -in the bootstrap list).`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - defltPeers, err := config.DefaultBootstrapPeers() - if err != nil { - return err - } - - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - added, err := bootstrapAdd(r, cfg, defltPeers) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(added)}) - }, - Type: BootstrapOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *BootstrapOutput) error { - return bootstrapWritePeers(w, "added ", out.Peers) - }), - }, -} - -const ( - bootstrapAllOptionName = "all" -) - -var bootstrapRemoveCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove peers from the bootstrap list.", - ShortDescription: `Outputs the list of peers that were removed. -` + bootstrapSecurityWarning, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peer", false, true, peerOptionDesc).EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(bootstrapAllOptionName, "Remove all bootstrap peers. (Deprecated, use 'all' subcommand)"), - }, - Subcommands: map[string]*cmds.Command{ - "all": bootstrapRemoveAllCmd, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - all, _ := req.Options[bootstrapAllOptionName].(bool) - - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - var removed []config.BootstrapPeer - if all { - removed, err = bootstrapRemoveAll(r, cfg) - } else { - if err := req.ParseBodyArgs(); err != nil { - return err - } - - input, perr := config.ParseBootstrapPeers(req.Arguments) - if perr != nil { - return perr - } - - removed, err = bootstrapRemove(r, cfg, input) - } - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(removed)}) - }, - Type: BootstrapOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *BootstrapOutput) error { - return bootstrapWritePeers(w, "removed ", out.Peers) - }), - }, -} - -var bootstrapRemoveAllCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove all peers from the bootstrap list.", - ShortDescription: `Outputs the list of peers that were removed.`, - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - removed, err := bootstrapRemoveAll(r, cfg) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(removed)}) - }, - Type: BootstrapOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *BootstrapOutput) error { - return bootstrapWritePeers(w, "removed ", out.Peers) - }), - }, -} - -var bootstrapListCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show peers in the bootstrap list.", - ShortDescription: "Peers are output in the format '/'.", - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - peers, err := cfg.BootstrapPeers() - if err != nil { - return err - } - - return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(peers)}) - }, - Type: BootstrapOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *BootstrapOutput) error { - return bootstrapWritePeers(w, "", out.Peers) - }), - }, -} - -func bootstrapWritePeers(w io.Writer, prefix string, peers []string) error { - sort.Stable(sort.StringSlice(peers)) - for _, peer := range peers { - _, err := w.Write([]byte(prefix + peer + "\n")) - if err != nil { - return err - } - } - return nil -} - -func bootstrapAdd(r repo.Repo, cfg *config.Config, peers []config.BootstrapPeer) ([]config.BootstrapPeer, error) { - addedMap := map[string]struct{}{} - addedList := make([]config.BootstrapPeer, 0, len(peers)) - - // re-add cfg bootstrap peers to rm dupes - bpeers := cfg.Bootstrap - cfg.Bootstrap = nil - - // add new peers - for _, peer := range peers { - s := peer.String() - if _, found := addedMap[s]; found { - continue - } - - cfg.Bootstrap = append(cfg.Bootstrap, s) - addedList = append(addedList, peer) - addedMap[s] = struct{}{} - } - - // add back original peers. in this order so that we output them. - for _, s := range bpeers { - if _, found := addedMap[s]; found { - continue - } - - cfg.Bootstrap = append(cfg.Bootstrap, s) - addedMap[s] = struct{}{} - } - - if err := r.SetConfig(cfg); err != nil { - return nil, err - } - - return addedList, nil -} - -func bootstrapRemove(r repo.Repo, cfg *config.Config, toRemove []config.BootstrapPeer) ([]config.BootstrapPeer, error) { - removed := make([]config.BootstrapPeer, 0, len(toRemove)) - keep := make([]config.BootstrapPeer, 0, len(cfg.Bootstrap)) - - peers, err := cfg.BootstrapPeers() - if err != nil { - return nil, err - } - - for _, peer := range peers { - found := false - for _, peer2 := range toRemove { - if peer.Equal(peer2) { - found = true - removed = append(removed, peer) - break - } - } - - if !found { - keep = append(keep, peer) - } - } - cfg.SetBootstrapPeers(keep) - - if err := r.SetConfig(cfg); err != nil { - return nil, err - } - - return removed, nil -} - -func bootstrapRemoveAll(r repo.Repo, cfg *config.Config) ([]config.BootstrapPeer, error) { - removed, err := cfg.BootstrapPeers() - if err != nil { - return nil, err - } - - cfg.Bootstrap = nil - if err := r.SetConfig(cfg); err != nil { - return nil, err - } - - return removed, nil -} - -const bootstrapSecurityWarning = ` -SECURITY WARNING: - -The bootstrap command manipulates the "bootstrap list", which contains -the addresses of bootstrap nodes. These are the *trusted peers* from -which to learn about other peers in the network. Only edit this list -if you understand the risks of adding or removing nodes from this list. - -` diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/cat.go b/vendor/github.com/ipfs/go-ipfs/core/commands/cat.go deleted file mode 100644 index e2d299e1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/cat.go +++ /dev/null @@ -1,176 +0,0 @@ -package commands - -import ( - "context" - "fmt" - "io" - "os" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const ( - progressBarMinSize = 1024 * 1024 * 8 // show progress bar for outputs > 8MiB - offsetOptionName = "offset" - lengthOptionName = "length" -) - -var CatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show IPFS object data.", - ShortDescription: "Displays the data contained by an IPFS or IPNS object(s) at the given path.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to be outputted.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.Int64Option(offsetOptionName, "o", "Byte offset to begin reading from."), - cmdkit.Int64Option(lengthOptionName, "l", "Maximum number of bytes to read."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - offset, _ := req.Options[offsetOptionName].(int64) - if offset < 0 { - return fmt.Errorf("cannot specify negative offset") - } - - max, found := req.Options[lengthOptionName].(int64) - - if max < 0 { - return fmt.Errorf("cannot specify negative length") - } - if !found { - max = -1 - } - - err = req.ParseBodyArgs() - if err != nil { - return err - } - - readers, length, err := cat(req.Context, api, req.Arguments, int64(offset), int64(max)) - if err != nil { - return err - } - - /* - if err := corerepo.ConditionalGC(req.Context, node, length); err != nil { - re.SetError(err, cmdkit.ErrNormal) - return - } - */ - - res.SetLength(length) - reader := io.MultiReader(readers...) - - // Since the reader returns the error that a block is missing, and that error is - // returned from io.Copy inside Emit, we need to take Emit errors and send - // them to the client. Usually we don't do that because it means the connection - // is broken or we supplied an illegal argument etc. - return res.Emit(reader) - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - if res.Length() > 0 && res.Length() < progressBarMinSize { - return cmds.Copy(re, res) - } - - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - return nil - } - return err - } - - switch val := v.(type) { - case io.Reader: - bar, reader := progressBarForReader(os.Stderr, val, int64(res.Length())) - bar.Start() - - err = re.Emit(reader) - if err != nil { - return err - } - default: - log.Warningf("cat postrun: received unexpected type %T", val) - } - } - }, - }, -} - -func cat(ctx context.Context, api iface.CoreAPI, paths []string, offset int64, max int64) ([]io.Reader, uint64, error) { - readers := make([]io.Reader, 0, len(paths)) - length := uint64(0) - if max == 0 { - return nil, 0, nil - } - for _, p := range paths { - fpath, err := iface.ParsePath(p) - if err != nil { - return nil, 0, err - } - - f, err := api.Unixfs().Get(ctx, fpath) - if err != nil { - return nil, 0, err - } - - var file files.File - switch f := f.(type) { - case files.File: - file = f - case files.Directory: - return nil, 0, iface.ErrIsDir - default: - return nil, 0, iface.ErrNotSupported - } - - fsize, err := file.Size() - if err != nil { - return nil, 0, err - } - - if offset > fsize { - offset = offset - fsize - continue - } - - count, err := file.Seek(offset, io.SeekStart) - if err != nil { - return nil, 0, err - } - offset = 0 - - fsize, err = file.Size() - if err != nil { - return nil, 0, err - } - - size := uint64(fsize - count) - length += size - if max > 0 && length >= uint64(max) { - var r io.Reader = file - if overshoot := int64(length - uint64(max)); overshoot != 0 { - r = io.LimitReader(file, int64(size)-overshoot) - length = uint64(max) - } - readers = append(readers, r) - break - } - readers = append(readers, file) - } - return readers, length, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/cid.go b/vendor/github.com/ipfs/go-ipfs/core/commands/cid.go deleted file mode 100644 index a7685bdb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/cid.go +++ /dev/null @@ -1,354 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "sort" - "strings" - "unicode" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - verifcid "gx/ipfs/QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa/go-verifcid" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mbase "gx/ipfs/QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd/go-multibase" - mhash "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" - cidutil "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil" -) - -var CidCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Convert and discover properties of CIDs", - }, - Subcommands: map[string]*cmds.Command{ - "format": cidFmtCmd, - "base32": base32Cmd, - "bases": basesCmd, - "codecs": codecsCmd, - "hashes": hashesCmd, - }, -} - -const ( - cidFormatOptionName = "f" - cidVerisonOptionName = "v" - cidMultibaseOptionName = "b" -) - -var cidFmtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Format and convert a CID in various useful ways.", - LongDescription: ` -Format and converts 's in various useful ways. - -The optional format string is a printf style format string: -` + cidutil.FormatRef, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("cid", true, true, "Cids to format.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(cidFormatOptionName, "Printf style format string.").WithDefault("%s"), - cmdkit.StringOption(cidVerisonOptionName, "CID version to convert to."), - cmdkit.StringOption(cidMultibaseOptionName, "Multibase to display CID in."), - }, - Run: func(req *cmds.Request, resp cmds.ResponseEmitter, env cmds.Environment) error { - fmtStr, _ := req.Options[cidFormatOptionName].(string) - verStr, _ := req.Options[cidVerisonOptionName].(string) - baseStr, _ := req.Options[cidMultibaseOptionName].(string) - - opts := cidFormatOpts{} - - if strings.IndexByte(fmtStr, '%') == -1 { - return fmt.Errorf("invalid format string: %s", fmtStr) - } - opts.fmtStr = fmtStr - - switch verStr { - case "": - // noop - case "0": - opts.verConv = toCidV0 - case "1": - opts.verConv = toCidV1 - default: - return fmt.Errorf("invalid cid version: %s", verStr) - } - - if baseStr != "" { - encoder, err := mbase.EncoderByName(baseStr) - if err != nil { - return err - } - opts.newBase = encoder.Encoding() - } else { - opts.newBase = mbase.Encoding(-1) - } - - return emitCids(req, resp, opts) - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: streamResult(func(v interface{}, out io.Writer) nonFatalError { - r := v.(*CidFormatRes) - if r.ErrorMsg != "" { - return nonFatalError(fmt.Sprintf("%s: %s", r.CidStr, r.ErrorMsg)) - } - fmt.Fprintf(out, "%s\n", r.Formatted) - return "" - }), - }, - Type: CidFormatRes{}, -} - -type CidFormatRes struct { - CidStr string // Original Cid String passed in - Formatted string // Formated Result - ErrorMsg string // Error -} - -var base32Cmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Convert CIDs to Base32 CID version 1.", - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("cid", true, true, "Cids to convert.").EnableStdin(), - }, - Run: func(req *cmds.Request, resp cmds.ResponseEmitter, env cmds.Environment) error { - opts := cidFormatOpts{ - fmtStr: "%s", - newBase: mbase.Encoding(mbase.Base32), - verConv: toCidV1, - } - return emitCids(req, resp, opts) - }, - PostRun: cidFmtCmd.PostRun, - Type: cidFmtCmd.Type, -} - -type cidFormatOpts struct { - fmtStr string - newBase mbase.Encoding - verConv func(cid cid.Cid) (cid.Cid, error) -} - -type argumentIterator struct { - args []string - body cmds.StdinArguments -} - -func (i *argumentIterator) next() (string, bool) { - if len(i.args) > 0 { - arg := i.args[0] - i.args = i.args[1:] - return arg, true - } - if i.body == nil || !i.body.Scan() { - return "", false - } - return strings.TrimSpace(i.body.Argument()), true -} - -func (i *argumentIterator) err() error { - if i.body == nil { - return nil - } - return i.body.Err() -} - -func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts) error { - itr := argumentIterator{req.Arguments, req.BodyArgs()} - var emitErr error - for emitErr == nil { - cidStr, ok := itr.next() - if !ok { - break - } - res := &CidFormatRes{CidStr: cidStr} - c, err := cid.Decode(cidStr) - if err != nil { - res.ErrorMsg = err.Error() - emitErr = resp.Emit(res) - continue - } - base := opts.newBase - if base == -1 { - base, _ = cid.ExtractEncoding(cidStr) - } - if opts.verConv != nil { - c, err = opts.verConv(c) - if err != nil { - res.ErrorMsg = err.Error() - emitErr = resp.Emit(res) - continue - } - } - str, err := cidutil.Format(opts.fmtStr, base, c) - if _, ok := err.(cidutil.FormatStringError); ok { - // no point in continuing if there is a problem with the format string - return err - } - if err != nil { - res.ErrorMsg = err.Error() - } else { - res.Formatted = str - } - emitErr = resp.Emit(res) - } - if emitErr != nil { - return emitErr - } - err := itr.err() - if err != nil { - return err - } - return nil -} - -func toCidV0(c cid.Cid) (cid.Cid, error) { - if c.Type() != cid.DagProtobuf { - return cid.Cid{}, fmt.Errorf("can't convert non-protobuf nodes to cidv0") - } - return cid.NewCidV0(c.Hash()), nil -} - -func toCidV1(c cid.Cid) (cid.Cid, error) { - return cid.NewCidV1(c.Type(), c.Hash()), nil -} - -type CodeAndName struct { - Code int - Name string -} - -const ( - prefixOptionName = "prefix" - numericOptionName = "numeric" -) - -var basesCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List available multibase encodings.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(prefixOptionName, "also include the single leter prefixes in addition to the code"), - cmdkit.BoolOption(numericOptionName, "also include numeric codes"), - }, - Run: func(req *cmds.Request, resp cmds.ResponseEmitter, env cmds.Environment) error { - var res []CodeAndName - // use EncodingToStr in case at some point there are multiple names for a given code - for code, name := range mbase.EncodingToStr { - res = append(res, CodeAndName{int(code), name}) - } - cmds.EmitOnce(resp, res) - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, val []CodeAndName) error { - prefixes, _ := req.Options[prefixOptionName].(bool) - numeric, _ := req.Options[numericOptionName].(bool) - sort.Sort(multibaseSorter{val}) - for _, v := range val { - code := v.Code - if code < 32 || code >= 127 { - // don't display non-printable prefixes - code = ' ' - } - switch { - case prefixes && numeric: - fmt.Fprintf(w, "%c %5d %s\n", code, v.Code, v.Name) - case prefixes: - fmt.Fprintf(w, "%c %s\n", code, v.Name) - case numeric: - fmt.Fprintf(w, "%5d %s\n", v.Code, v.Name) - default: - fmt.Fprintf(w, "%s\n", v.Name) - } - } - return nil - }), - }, - Type: []CodeAndName{}, -} - -const ( - codecsNumericOptionName = "numeric" -) - -var codecsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List available CID codecs.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(codecsNumericOptionName, "also include numeric codes"), - }, - Run: func(req *cmds.Request, resp cmds.ResponseEmitter, env cmds.Environment) error { - var res []CodeAndName - // use CodecToStr as there are multiple names for a given code - for code, name := range cid.CodecToStr { - res = append(res, CodeAndName{int(code), name}) - } - cmds.EmitOnce(resp, res) - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, val []CodeAndName) error { - numeric, _ := req.Options[codecsNumericOptionName].(bool) - sort.Sort(codeAndNameSorter{val}) - for _, v := range val { - if numeric { - fmt.Fprintf(w, "%5d %s\n", v.Code, v.Name) - } else { - fmt.Fprintf(w, "%s\n", v.Name) - } - } - return nil - }), - }, - Type: []CodeAndName{}, -} - -var hashesCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List available multihashes.", - }, - Options: codecsCmd.Options, - Run: func(req *cmds.Request, resp cmds.ResponseEmitter, env cmds.Environment) error { - var res []CodeAndName - // use mhash.Codes in case at some point there are multiple names for a given code - for code, name := range mhash.Codes { - if !verifcid.IsGoodHash(code) { - continue - } - res = append(res, CodeAndName{int(code), name}) - } - cmds.EmitOnce(resp, res) - return nil - }, - Encoders: codecsCmd.Encoders, - Type: codecsCmd.Type, -} - -type multibaseSorter struct { - data []CodeAndName -} - -func (s multibaseSorter) Len() int { return len(s.data) } -func (s multibaseSorter) Swap(i, j int) { s.data[i], s.data[j] = s.data[j], s.data[i] } - -func (s multibaseSorter) Less(i, j int) bool { - a := unicode.ToLower(rune(s.data[i].Code)) - b := unicode.ToLower(rune(s.data[j].Code)) - if a != b { - return a < b - } - // lowecase letters should come before uppercase - return s.data[i].Code > s.data[j].Code -} - -type codeAndNameSorter struct { - data []CodeAndName -} - -func (s codeAndNameSorter) Len() int { return len(s.data) } -func (s codeAndNameSorter) Swap(i, j int) { s.data[i], s.data[j] = s.data[j], s.data[i] } -func (s codeAndNameSorter) Less(i, j int) bool { return s.data[i].Code < s.data[j].Code } diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase.go b/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase.go deleted file mode 100644 index bc242dae..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase.go +++ /dev/null @@ -1,107 +0,0 @@ -package cmdenv - -import ( - "fmt" - "strings" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mbase "gx/ipfs/QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd/go-multibase" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -var OptionCidBase = cmdkit.StringOption("cid-base", "Multibase encoding used for version 1 CIDs in output.") -var OptionUpgradeCidV0InOutput = cmdkit.BoolOption("upgrade-cidv0-in-output", "Upgrade version 0 to version 1 CIDs in output.") - -// GetCidEncoder processes the `cid-base` and `output-cidv1` options and -// returns a encoder to use based on those parameters. -func GetCidEncoder(req *cmds.Request) (cidenc.Encoder, error) { - return getCidBase(req, true) -} - -// GetLowLevelCidEncoder is like GetCidEncoder but meant to be used by -// lower level commands. It differs from GetCidEncoder in that CIDv0 -// are not, by default, auto-upgraded to CIDv1. -func GetLowLevelCidEncoder(req *cmds.Request) (cidenc.Encoder, error) { - return getCidBase(req, false) -} - -func getCidBase(req *cmds.Request, autoUpgrade bool) (cidenc.Encoder, error) { - base, _ := req.Options[OptionCidBase.Name()].(string) - upgrade, upgradeDefined := req.Options[OptionUpgradeCidV0InOutput.Name()].(bool) - - e := cidenc.Default() - - if base != "" { - var err error - e.Base, err = mbase.EncoderByName(base) - if err != nil { - return e, err - } - if autoUpgrade { - e.Upgrade = true - } - } - - if upgradeDefined { - e.Upgrade = upgrade - } - - return e, nil -} - -// CidBaseDefined returns true if the `cid-base` option is specified -// on the command line -func CidBaseDefined(req *cmds.Request) bool { - base, _ := req.Options["cid-base"].(string) - return base != "" -} - -// CidEncoderFromPath creates a new encoder that is influenced from -// the encoded Cid in a Path. For CidV0 the multibase from the base -// encoder is used and automatic upgrades are disabled. For CidV1 the -// multibase from the CID is used and upgrades are enabled. -// -// This logic is intentionally fuzzy and will match anything of the form -// `CidLike`, `CidLike/...`, or `/namespace/CidLike/...`. -// -// For example: -// -// * Qm... -// * Qm.../... -// * /ipfs/Qm... -// * /ipns/bafybeiahnxfi7fpmr5wtxs2imx4abnyn7fdxeiox7xxjem6zuiioqkh6zi/... -// * /bzz/bafybeiahnxfi7fpmr5wtxs2imx4abnyn7fdxeiox7xxjem6zuiioqkh6zi/... -func CidEncoderFromPath(p string) (cidenc.Encoder, error) { - components := strings.SplitN(p, "/", 4) - - var maybeCid string - if components[0] != "" { - // No leading slash, first component is likely CID-like. - maybeCid = components[0] - } else if len(components) < 3 { - // Not enough components to include a CID. - return cidenc.Encoder{}, fmt.Errorf("no cid in path: %s", p) - } else { - maybeCid = components[2] - } - c, err := cid.Decode(maybeCid) - if err != nil { - // Ok, not a CID-like thing. Keep the current encoder. - return cidenc.Encoder{}, fmt.Errorf("no cid in path: %s", p) - } - if c.Version() == 0 { - // Version 0, use the base58 non-upgrading encoder. - return cidenc.Default(), nil - } - - // Version 1+, extract multibase encoding. - encoding, _, err := mbase.Decode(maybeCid) - if err != nil { - // This should be impossible, we've already decoded the cid. - panic(fmt.Sprintf("BUG: failed to get multibase decoder for CID %s", maybeCid)) - } - - return cidenc.Encoder{Base: mbase.MustNewEncoder(encoding), Upgrade: true}, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase_test.go b/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase_test.go deleted file mode 100644 index 1ae51f35..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/cidbase_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package cmdenv - -import ( - "testing" - - mbase "gx/ipfs/QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd/go-multibase" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -func TestEncoderFromPath(t *testing.T) { - test := func(path string, expected cidenc.Encoder) { - actual, err := CidEncoderFromPath(path) - if err != nil { - t.Error(err) - } - if actual != expected { - t.Errorf("CidEncoderFromPath(%s) failed: expected %#v but got %#v", path, expected, actual) - } - } - p := "QmRqVG8VGdKZ7KARqR96MV7VNHgWvEQifk94br5HpURpfu" - enc := cidenc.Default() - test(p, enc) - test(p+"/a", enc) - test(p+"/a/b", enc) - test(p+"/a/b/", enc) - test(p+"/a/b/c", enc) - test("/ipfs/"+p, enc) - test("/ipfs/"+p+"/b", enc) - - p = "zb2rhfkM4FjkMLaUnygwhuqkETzbYXnUDf1P9MSmdNjW1w1Lk" - enc = cidenc.Encoder{ - Base: mbase.MustNewEncoder(mbase.Base58BTC), - Upgrade: true, - } - test(p, enc) - test(p+"/a", enc) - test(p+"/a/b", enc) - test(p+"/a/b/", enc) - test(p+"/a/b/c", enc) - test("/ipfs/"+p, enc) - test("/ipfs/"+p+"/b", enc) - test("/ipld/"+p, enc) - test("/ipns/"+p, enc) // even IPNS should work. - - p = "bafyreifrcnyjokuw4i4ggkzg534tjlc25lqgt3ttznflmyv5fftdgu52hm" - enc = cidenc.Encoder{ - Base: mbase.MustNewEncoder(mbase.Base32), - Upgrade: true, - } - test(p, enc) - test("/ipfs/"+p, enc) - test("/ipld/"+p, enc) - - for _, badPath := range []string{ - "/ipld/", - "/ipld", - "/ipld//", - "ipld//", - "ipld", - "", - "ipns", - "/ipfs/asdf", - "/ipfs/...", - "...", - "abcdefg", - "boo", - } { - _, err := CidEncoderFromPath(badPath) - if err == nil { - t.Errorf("expected error extracting encoder from bad path: %s", badPath) - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/env.go b/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/env.go deleted file mode 100644 index 00984e9d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/env.go +++ /dev/null @@ -1,72 +0,0 @@ -package cmdenv - -import ( - "fmt" - "strings" - - "github.com/ipfs/go-ipfs/commands" - "github.com/ipfs/go-ipfs/core" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("core/commands/cmdenv") - -// GetNode extracts the node from the environment. -func GetNode(env interface{}) (*core.IpfsNode, error) { - ctx, ok := env.(*commands.Context) - if !ok { - return nil, fmt.Errorf("expected env to be of type %T, got %T", ctx, env) - } - - return ctx.GetNode() -} - -// GetApi extracts CoreAPI instance from the environment. -func GetApi(env cmds.Environment, req *cmds.Request) (coreiface.CoreAPI, error) { - ctx, ok := env.(*commands.Context) - if !ok { - return nil, fmt.Errorf("expected env to be of type %T, got %T", ctx, env) - } - - offline, _ := req.Options["offline"].(bool) - if !offline { - offline, _ = req.Options["local"].(bool) - if offline { - log.Errorf("Command '%s', --local is deprecated, use --offline instead", strings.Join(req.Path, " ")) - } - } - api, err := ctx.GetAPI() - if err != nil { - return nil, err - } - if offline { - return api.WithOptions(options.Api.Offline(offline)) - } - - return api, nil -} - -// GetConfig extracts the config from the environment. -func GetConfig(env cmds.Environment) (*config.Config, error) { - ctx, ok := env.(*commands.Context) - if !ok { - return nil, fmt.Errorf("expected env to be of type %T, got %T", ctx, env) - } - - return ctx.GetConfig() -} - -// GetConfigRoot extracts the config root from the environment -func GetConfigRoot(env cmds.Environment) (string, error) { - ctx, ok := env.(*commands.Context) - if !ok { - return "", fmt.Errorf("expected env to be of type %T, got %T", ctx, env) - } - - return ctx.ConfigRoot, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/file.go b/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/file.go deleted file mode 100644 index 8436f769..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/cmdenv/file.go +++ /dev/null @@ -1,23 +0,0 @@ -package cmdenv - -import ( - "fmt" - - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" -) - -// GetFileArg returns the next file from the directory or an error -func GetFileArg(it files.DirIterator) (files.File, error) { - if !it.Next() { - err := it.Err() - if err == nil { - err = fmt.Errorf("expected a file argument") - } - return nil, err - } - file := files.FileFromEntry(it) - if file == nil { - return nil, fmt.Errorf("file argument was nil") - } - return file, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/commands.go b/vendor/github.com/ipfs/go-ipfs/core/commands/commands.go deleted file mode 100644 index fefd095e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/commands.go +++ /dev/null @@ -1,191 +0,0 @@ -// Package commands implements the ipfs command interface -// -// Using github.com/ipfs/go-ipfs/commands to define the command line and HTTP -// APIs. This is the interface available to folks using IPFS from outside of -// the Go language. -package commands - -import ( - "fmt" - "io" - "os" - "sort" - "strings" - - e "github.com/ipfs/go-ipfs/core/commands/e" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type commandEncoder struct { - w io.Writer -} - -func (e *commandEncoder) Encode(v interface{}) error { - var ( - cmd *Command - ok bool - ) - - if cmd, ok = v.(*Command); !ok { - return fmt.Errorf(`core/commands: uenxpected type %T, expected *"core/commands".Command`, v) - } - - for _, s := range cmdPathStrings(cmd, cmd.showOpts) { - _, err := e.w.Write([]byte(s + "\n")) - if err != nil { - return err - } - } - - return nil -} - -type Command struct { - Name string - Subcommands []Command - Options []Option - - showOpts bool -} - -type Option struct { - Names []string -} - -const ( - flagsOptionName = "flags" -) - -// CommandsCmd takes in a root command, -// and returns a command that lists the subcommands in that root -func CommandsCmd(root *cmds.Command) *cmds.Command { - return &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List all available commands.", - ShortDescription: `Lists all available commands (and subcommands) and exits.`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(flagsOptionName, "f", "Show command flags"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - rootCmd := cmd2outputCmd("ipfs", root) - rootCmd.showOpts, _ = req.Options[flagsOptionName].(bool) - return cmds.EmitOnce(res, &rootCmd) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: func(req *cmds.Request) func(io.Writer) cmds.Encoder { - return func(w io.Writer) cmds.Encoder { return &commandEncoder{w} } - }, - }, - Type: Command{}, - } -} - -func cmd2outputCmd(name string, cmd *cmds.Command) Command { - opts := make([]Option, len(cmd.Options)) - for i, opt := range cmd.Options { - opts[i] = Option{opt.Names()} - } - - output := Command{ - Name: name, - Subcommands: make([]Command, 0, len(cmd.Subcommands)), - Options: opts, - } - - for name, sub := range cmd.Subcommands { - output.Subcommands = append(output.Subcommands, cmd2outputCmd(name, sub)) - } - - return output -} - -func cmdPathStrings(cmd *Command, showOptions bool) []string { - var cmds []string - - var recurse func(prefix string, cmd *Command) - recurse = func(prefix string, cmd *Command) { - newPrefix := prefix + cmd.Name - cmds = append(cmds, newPrefix) - if prefix != "" && showOptions { - for _, options := range cmd.Options { - var cmdOpts []string - for _, flag := range options.Names { - if len(flag) == 1 { - flag = "-" + flag - } else { - flag = "--" + flag - } - cmdOpts = append(cmdOpts, newPrefix+" "+flag) - } - cmds = append(cmds, strings.Join(cmdOpts, " / ")) - } - } - for _, sub := range cmd.Subcommands { - recurse(newPrefix+" ", &sub) - } - } - - recurse("", cmd) - sort.Sort(sort.StringSlice(cmds)) - return cmds -} - -// changes here will also need to be applied at -// - ./dag/dag.go -// - ./object/object.go -// - ./files/files.go -// - ./unixfs/unixfs.go -func unwrapOutput(i interface{}) (interface{}, error) { - var ( - ch <-chan interface{} - ok bool - ) - - if ch, ok = i.(<-chan interface{}); !ok { - return nil, e.TypeErr(ch, i) - } - - return <-ch, nil -} - -type nonFatalError string - -// streamResult is a helper function to stream results that possibly -// contain non-fatal errors. The helper function is allowed to panic -// on internal errors. -func streamResult(procVal func(interface{}, io.Writer) nonFatalError) func(cmds.Response, cmds.ResponseEmitter) error { - return func(res cmds.Response, re cmds.ResponseEmitter) (err error) { - defer func() { - if r := recover(); r != nil { - err = fmt.Errorf("internal error: %v", r) - } - re.Close() - }() - - var errors bool - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - break - } - return err - } - - errorMsg := procVal(v, os.Stdout) - - if errorMsg != "" { - errors = true - fmt.Fprintf(os.Stderr, "%s\n", errorMsg) - } - } - - if errors { - return fmt.Errorf("errors while displaying some entries") - } - return nil - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/commands_test.go b/vendor/github.com/ipfs/go-ipfs/core/commands/commands_test.go deleted file mode 100644 index a34de3df..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/commands_test.go +++ /dev/null @@ -1,247 +0,0 @@ -package commands - -import ( - "strings" - "testing" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" -) - -func collectPaths(prefix string, cmd *cmds.Command, out map[string]struct{}) { - for name, sub := range cmd.Subcommands { - path := prefix + "/" + name - out[path] = struct{}{} - collectPaths(path, sub, out) - } -} - -func TestROCommands(t *testing.T) { - list := []string{ - "/block", - "/block/get", - "/block/stat", - "/cat", - "/commands", - "/dag", - "/dag/get", - "/dag/resolve", - "/dns", - "/get", - "/ls", - "/name", - "/name/resolve", - "/object", - "/object/data", - "/object/get", - "/object/links", - "/object/stat", - "/refs", - "/resolve", - "/version", - } - - cmdSet := make(map[string]struct{}) - collectPaths("", RootRO, cmdSet) - - for _, path := range list { - if _, ok := cmdSet[path]; !ok { - t.Errorf("%q not in result", path) - } else { - delete(cmdSet, path) - } - } - - for path := range cmdSet { - t.Errorf("%q in result but shouldn't be", path) - } - - for _, path := range list { - path = path[1:] // remove leading slash - split := strings.Split(path, "/") - sub, err := RootRO.Get(split) - if err != nil { - t.Errorf("error getting subcommand %q: %v", path, err) - } else if sub == nil { - t.Errorf("subcommand %q is nil even though there was no error", path) - } - } -} -func TestCommands(t *testing.T) { - list := []string{ - "/add", - "/bitswap", - "/bitswap/ledger", - "/bitswap/reprovide", - "/bitswap/stat", - "/bitswap/wantlist", - "/block", - "/block/get", - "/block/put", - "/block/rm", - "/block/stat", - "/bootstrap", - "/bootstrap/add", - "/bootstrap/add/default", - "/bootstrap/list", - "/bootstrap/rm", - "/bootstrap/rm/all", - "/cat", - "/commands", - "/config", - "/config/edit", - "/config/replace", - "/config/show", - "/config/profile", - "/config/profile/apply", - "/dag", - "/dag/get", - "/dag/put", - "/dag/resolve", - "/dht", - "/dht/findpeer", - "/dht/findprovs", - "/dht/get", - "/dht/provide", - "/dht/put", - "/dht/query", - "/diag", - "/diag/cmds", - "/diag/cmds/clear", - "/diag/cmds/set-time", - "/diag/sys", - "/dns", - "/file", - "/file/ls", - "/files", - "/files/chcid", - "/files/cp", - "/files/flush", - "/files/ls", - "/files/mkdir", - "/files/mv", - "/files/read", - "/files/rm", - "/files/stat", - "/filestore", - "/filestore/dups", - "/filestore/ls", - "/filestore/verify", - "/files/write", - "/get", - "/id", - "/key", - "/key/gen", - "/key/list", - "/key/rename", - "/key/rm", - "/log", - "/log/level", - "/log/ls", - "/log/tail", - "/ls", - "/mount", - "/name", - "/name/publish", - "/name/pubsub", - "/name/pubsub/state", - "/name/pubsub/subs", - "/name/pubsub/cancel", - "/name/resolve", - "/object", - "/object/data", - "/object/diff", - "/object/get", - "/object/links", - "/object/new", - "/object/patch", - "/object/patch/add-link", - "/object/patch/append-data", - "/object/patch/rm-link", - "/object/patch/set-data", - "/object/put", - "/object/stat", - "/p2p", - "/p2p/close", - "/p2p/forward", - "/p2p/listen", - "/p2p/ls", - "/p2p/stream", - "/p2p/stream/close", - "/p2p/stream/ls", - "/pin", - "/pin/add", - "/ping", - "/pin/ls", - "/pin/rm", - "/pin/update", - "/pin/verify", - "/pubsub", - "/pubsub/ls", - "/pubsub/peers", - "/pubsub/pub", - "/pubsub/sub", - "/refs", - "/refs/local", - "/repo", - "/repo/fsck", - "/repo/gc", - "/repo/stat", - "/repo/verify", - "/repo/version", - "/resolve", - "/shutdown", - "/stats", - "/stats/bitswap", - "/stats/bw", - "/stats/repo", - "/swarm", - "/swarm/addrs", - "/swarm/addrs/listen", - "/swarm/addrs/local", - "/swarm/connect", - "/swarm/disconnect", - "/swarm/filters", - "/swarm/filters/add", - "/swarm/filters/rm", - "/swarm/peers", - "/tar", - "/tar/add", - "/tar/cat", - "/update", - "/urlstore", - "/urlstore/add", - "/version", - "/cid", - "/cid/format", - "/cid/base32", - "/cid/codecs", - "/cid/bases", - "/cid/hashes", - } - - cmdSet := make(map[string]struct{}) - collectPaths("", Root, cmdSet) - - for _, path := range list { - if _, ok := cmdSet[path]; !ok { - t.Errorf("%q not in result", path) - } else { - delete(cmdSet, path) - } - } - - for path := range cmdSet { - t.Errorf("%q in result but shouldn't be", path) - } - - for _, path := range list { - path = path[1:] // remove leading slash - split := strings.Split(path, "/") - sub, err := Root.Get(split) - if err != nil { - t.Errorf("error getting subcommand %q: %v", path, err) - } else if sub == nil { - t.Errorf("subcommand %q is nil even though there was no error", path) - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/config.go b/vendor/github.com/ipfs/go-ipfs/core/commands/config.go deleted file mode 100644 index 1a390206..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/config.go +++ /dev/null @@ -1,488 +0,0 @@ -package commands - -import ( - "encoding/json" - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "os/exec" - "strings" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - "github.com/ipfs/go-ipfs/repo" - "github.com/ipfs/go-ipfs/repo/fsrepo" - - "gx/ipfs/QmP2i47tnU23ijdshrZtuvrSkQPtf9HhsMb9fwGVe8owj2/jsondiff" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -// ConfigUpdateOutput is config profile apply command's output -type ConfigUpdateOutput struct { - OldCfg map[string]interface{} - NewCfg map[string]interface{} -} - -type ConfigField struct { - Key string - Value interface{} -} - -const ( - configBoolOptionName = "bool" - configJSONOptionName = "json" - configDryRunOptionName = "dry-run" -) - -var ConfigCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Get and set ipfs config values.", - ShortDescription: ` -'ipfs config' controls configuration variables. It works like 'git config'. -The configuration values are stored in a config file inside your ipfs -repository.`, - LongDescription: ` -'ipfs config' controls configuration variables. It works -much like 'git config'. The configuration values are stored in a config -file inside your IPFS repository. - -Examples: - -Get the value of the 'Datastore.Path' key: - - $ ipfs config Datastore.Path - -Set the value of the 'Datastore.Path' key: - - $ ipfs config Datastore.Path ~/.ipfs/datastore -`, - }, - Subcommands: map[string]*cmds.Command{ - "show": configShowCmd, - "edit": configEditCmd, - "replace": configReplaceCmd, - "profile": configProfileCmd, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "The key of the config entry (e.g. \"Addresses.API\")."), - cmdkit.StringArg("value", false, false, "The value to set the config entry to."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(configBoolOptionName, "Set a boolean value."), - cmdkit.BoolOption(configJSONOptionName, "Parse stringified JSON."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - args := req.Arguments - key := args[0] - - var output *ConfigField - - // This is a temporary fix until we move the private key out of the config file - switch strings.ToLower(key) { - case "identity", "identity.privkey": - return errors.New("cannot show or change private key through API") - default: - } - - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - defer r.Close() - if len(args) == 2 { - value := args[1] - - if parseJSON, _ := req.Options[configJSONOptionName].(bool); parseJSON { - var jsonVal interface{} - if err := json.Unmarshal([]byte(value), &jsonVal); err != nil { - err = fmt.Errorf("failed to unmarshal json. %s", err) - return err - } - - output, err = setConfig(r, key, jsonVal) - } else if isbool, _ := req.Options[configBoolOptionName].(bool); isbool { - output, err = setConfig(r, key, value == "true") - } else { - output, err = setConfig(r, key, value) - } - } else { - output, err = getConfig(r, key) - } - - if err != nil { - return err - } - - return cmds.EmitOnce(res, output) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *ConfigField) error { - if len(req.Arguments) == 2 { - return nil - } - - buf, err := config.HumanOutput(out.Value) - if err != nil { - return err - } - buf = append(buf, byte('\n')) - - w.Write(buf) - return nil - }), - }, - Type: ConfigField{}, -} - -var configShowCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Output config file contents.", - ShortDescription: ` -NOTE: For security reasons, this command will omit your private key. If you would like to make a full backup of your config (private key included), you must copy the config file from your repo. -`, - }, - Type: map[string]interface{}{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - fname, err := config.Filename(cfgRoot) - if err != nil { - return err - } - - data, err := ioutil.ReadFile(fname) - if err != nil { - return err - } - - var cfg map[string]interface{} - err = json.Unmarshal(data, &cfg) - if err != nil { - return err - } - - err = scrubValue(cfg, []string{config.IdentityTag, config.PrivKeyTag}) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &cfg) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *map[string]interface{}) error { - buf, err := config.HumanOutput(out) - if err != nil { - return err - } - buf = append(buf, byte('\n')) - w.Write(buf) - - return nil - }), - }, -} - -func scrubValue(m map[string]interface{}, key []string) error { - find := func(m map[string]interface{}, k string) (string, interface{}, bool) { - lckey := strings.ToLower(k) - for mkey, val := range m { - lcmkey := strings.ToLower(mkey) - if lckey == lcmkey { - return mkey, val, true - } - } - return "", nil, false - } - - cur := m - for _, k := range key[:len(key)-1] { - foundk, val, ok := find(cur, k) - if !ok { - return errors.New("failed to find specified key") - } - - if foundk != k { - // case mismatch, calling this an error - return fmt.Errorf("case mismatch in config, expected %q but got %q", k, foundk) - } - - mval, mok := val.(map[string]interface{}) - if !mok { - return fmt.Errorf("%s was not a map", foundk) - } - - cur = mval - } - - todel, _, ok := find(cur, key[len(key)-1]) - if !ok { - return fmt.Errorf("%s, not found", strings.Join(key, ".")) - } - - delete(cur, todel) - return nil -} - -var configEditCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Open the config file for editing in $EDITOR.", - ShortDescription: ` -To use 'ipfs config edit', you must have the $EDITOR environment -variable set to your preferred text editor. -`, - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - filename, err := config.Filename(cfgRoot) - if err != nil { - return err - } - - return editConfig(filename) - }, -} - -var configReplaceCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Replace the config with .", - ShortDescription: ` -Make sure to back up the config file first if necessary, as this operation -can't be undone. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("file", true, false, "The file to use as the new config."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - r, err := fsrepo.Open(cfgRoot) - if err != nil { - return err - } - defer r.Close() - - file, err := cmdenv.GetFileArg(req.Files.Entries()) - if err != nil { - return err - } - defer file.Close() - - return replaceConfig(r, file) - }, -} - -var configProfileCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Apply profiles to config.", - ShortDescription: fmt.Sprintf(` -Available profiles: -%s -`, buildProfileHelp()), - }, - - Subcommands: map[string]*cmds.Command{ - "apply": configProfileApplyCmd, - }, -} - -var configProfileApplyCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Apply profile to config.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(configDryRunOptionName, "print difference between the current config and the config that would be generated"), - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("profile", true, false, "The profile to apply to the config."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - profile, ok := config.Profiles[req.Arguments[0]] - if !ok { - return fmt.Errorf("%s is not a profile", req.Arguments[0]) - } - - dryRun, _ := req.Options[configDryRunOptionName].(bool) - cfgRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - oldCfg, newCfg, err := transformConfig(cfgRoot, req.Arguments[0], profile.Transform, dryRun) - if err != nil { - return err - } - - oldCfgMap, err := scrubPrivKey(oldCfg) - if err != nil { - return err - } - - newCfgMap, err := scrubPrivKey(newCfg) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &ConfigUpdateOutput{ - OldCfg: oldCfgMap, - NewCfg: newCfgMap, - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *ConfigUpdateOutput) error { - diff := jsondiff.Compare(out.OldCfg, out.NewCfg) - buf := jsondiff.Format(diff) - - w.Write(buf) - - return nil - }), - }, - Type: ConfigUpdateOutput{}, -} - -func buildProfileHelp() string { - var out string - - for name, profile := range config.Profiles { - dlines := strings.Split(profile.Description, "\n") - for i := range dlines { - dlines[i] = " " + dlines[i] - } - - out = out + fmt.Sprintf(" '%s':\n%s\n", name, strings.Join(dlines, "\n")) - } - - return out -} - -// scrubPrivKey scrubs private key for security reasons. -func scrubPrivKey(cfg *config.Config) (map[string]interface{}, error) { - cfgMap, err := config.ToMap(cfg) - if err != nil { - return nil, err - } - - err = scrubValue(cfgMap, []string{config.IdentityTag, config.PrivKeyTag}) - if err != nil { - return nil, err - } - - return cfgMap, nil -} - -// transformConfig returns old config and new config instead of difference between they, -// because apply command can provide stable API through this way. -// If dryRun is true, repo's config should not be updated and persisted -// to storage. Otherwise, repo's config should be updated and persisted -// to storage. -func transformConfig(configRoot string, configName string, transformer config.Transformer, dryRun bool) (*config.Config, *config.Config, error) { - r, err := fsrepo.Open(configRoot) - if err != nil { - return nil, nil, err - } - defer r.Close() - - oldCfg, err := r.Config() - if err != nil { - return nil, nil, err - } - - // make a copy to avoid updating repo's config unintentionally - newCfg, err := oldCfg.Clone() - if err != nil { - return nil, nil, err - } - - err = transformer(newCfg) - if err != nil { - return nil, nil, err - } - - if !dryRun { - _, err = r.BackupConfig("pre-" + configName + "-") - if err != nil { - return nil, nil, err - } - - err = r.SetConfig(newCfg) - if err != nil { - return nil, nil, err - } - } - - return oldCfg, newCfg, nil -} - -func getConfig(r repo.Repo, key string) (*ConfigField, error) { - value, err := r.GetConfigKey(key) - if err != nil { - return nil, fmt.Errorf("failed to get config value: %q", err) - } - return &ConfigField{ - Key: key, - Value: value, - }, nil -} - -func setConfig(r repo.Repo, key string, value interface{}) (*ConfigField, error) { - err := r.SetConfigKey(key, value) - if err != nil { - return nil, fmt.Errorf("failed to set config value: %s (maybe use --json?)", err) - } - return getConfig(r, key) -} - -func editConfig(filename string) error { - editor := os.Getenv("EDITOR") - if editor == "" { - return errors.New("ENV variable $EDITOR not set") - } - - cmd := exec.Command("sh", "-c", editor+" "+filename) - cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr - return cmd.Run() -} - -func replaceConfig(r repo.Repo, file io.Reader) error { - var cfg config.Config - if err := json.NewDecoder(file).Decode(&cfg); err != nil { - return errors.New("failed to decode file as config") - } - if len(cfg.Identity.PrivKey) != 0 { - return errors.New("setting private key with API is not supported") - } - - keyF, err := getConfig(r, config.PrivKeySelector) - if err != nil { - return errors.New("failed to get PrivKey") - } - - pkstr, ok := keyF.Value.(string) - if !ok { - return errors.New("private key in config was not a string") - } - - cfg.Identity.PrivKey = pkstr - - return r.SetConfig(&cfg) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/dag/dag.go b/vendor/github.com/ipfs/go-ipfs/core/commands/dag/dag.go deleted file mode 100644 index 1b736f24..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/dag/dag.go +++ /dev/null @@ -1,254 +0,0 @@ -package dagcmd - -import ( - "fmt" - "io" - "math" - "strings" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - "github.com/ipfs/go-ipfs/core/coredag" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - iface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -var DagCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with ipld dag objects.", - ShortDescription: ` -'ipfs dag' is used for creating and manipulating dag objects. - -This subcommand is currently an experimental feature, but it is intended -to deprecate and replace the existing 'ipfs object' command moving forward. - `, - }, - Subcommands: map[string]*cmds.Command{ - "put": DagPutCmd, - "get": DagGetCmd, - "resolve": DagResolveCmd, - }, -} - -// OutputObject is the output type of 'dag put' command -type OutputObject struct { - Cid cid.Cid -} - -// ResolveOutput is the output type of 'dag resolve' command -type ResolveOutput struct { - Cid cid.Cid - RemPath string -} - -var DagPutCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add a dag node to ipfs.", - ShortDescription: ` -'ipfs dag put' accepts input from a file or stdin and parses it -into an object of the specified format. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("object data", true, true, "The object to put").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption("format", "f", "Format that the object will be added as.").WithDefault("cbor"), - cmdkit.StringOption("input-enc", "Format that the input object will be.").WithDefault("json"), - cmdkit.BoolOption("pin", "Pin this object when adding."), - cmdkit.StringOption("hash", "Hash function to use").WithDefault(""), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - ienc, _ := req.Options["input-enc"].(string) - format, _ := req.Options["format"].(string) - hash, _ := req.Options["hash"].(string) - dopin, _ := req.Options["pin"].(bool) - - // mhType tells inputParser which hash should be used. MaxUint64 means 'use - // default hash' (sha256 for cbor, sha1 for git..) - mhType := uint64(math.MaxUint64) - - if hash != "" { - var ok bool - mhType, ok = mh.Names[hash] - if !ok { - return fmt.Errorf("%s in not a valid multihash name", hash) - } - } - - var adder ipld.NodeAdder = api.Dag() - if dopin { - adder = api.Dag().Pinning() - } - b := ipld.NewBatch(req.Context, adder) - - it := req.Files.Entries() - for it.Next() { - file := files.FileFromEntry(it) - if file == nil { - return fmt.Errorf("expected a regular file") - } - nds, err := coredag.ParseInputs(ienc, format, file, mhType, -1) - if err != nil { - return err - } - if len(nds) == 0 { - return fmt.Errorf("no node returned from ParseInputs") - } - - for _, nd := range nds { - err := b.Add(req.Context, nd) - if err != nil { - return err - } - } - - cid := nds[0].Cid() - if err := res.Emit(&OutputObject{Cid: cid}); err != nil { - return err - } - } - if it.Err() != nil { - return it.Err() - } - - if err := b.Commit(); err != nil { - return err - } - - return nil - }, - Type: OutputObject{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *OutputObject) error { - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - fmt.Fprintln(w, enc.Encode(out.Cid)) - return nil - }), - }, -} - -var DagGetCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Get a dag node from ipfs.", - ShortDescription: ` -'ipfs dag get' fetches a dag node from ipfs and prints it out in the specified -format. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ref", true, false, "The object to get").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - p, err := iface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - rp, err := api.ResolvePath(req.Context, p) - if err != nil { - return err - } - - obj, err := api.Dag().Get(req.Context, rp.Cid()) - if err != nil { - return err - } - - var out interface{} = obj - if len(rp.Remainder()) > 0 { - rem := strings.Split(rp.Remainder(), "/") - final, _, err := obj.Resolve(rem) - if err != nil { - return err - } - out = final - } - return cmds.EmitOnce(res, &out) - }, -} - -// DagResolveCmd returns address of highest block within a path and a path remainder -var DagResolveCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Resolve ipld block", - ShortDescription: ` -'ipfs dag resolve' fetches a dag node from ipfs, prints it's address and remaining path. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ref", true, false, "The path to resolve").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - p, err := iface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - rp, err := api.ResolvePath(req.Context, p) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &ResolveOutput{ - Cid: rp.Cid(), - RemPath: rp.Remainder(), - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *ResolveOutput) error { - var ( - enc cidenc.Encoder - err error - ) - switch { - case !cmdenv.CidBaseDefined(req): - // Not specified, check the path. - enc, err = cmdenv.CidEncoderFromPath(req.Arguments[0]) - if err == nil { - break - } - // Nope, fallback on the default. - fallthrough - default: - enc, err = cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - } - p := enc.Encode(out.Cid) - if out.RemPath != "" { - p = path.Join([]string{p, out.RemPath}) - } - - fmt.Fprint(w, p) - return nil - }), - }, - Type: ResolveOutput{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/dht.go b/vendor/github.com/ipfs/go-ipfs/core/commands/dht.go deleted file mode 100644 index 461ec8ce..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/dht.go +++ /dev/null @@ -1,669 +0,0 @@ -package commands - -import ( - "context" - "errors" - "fmt" - "io" - "time" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - b58 "gx/ipfs/QmWFAMPqsEyUX7gDUsRVmMWz59FxSpJ1b2v6bJ1yYzo7jY/go-base58-fast/base58" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - notif "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing/notifications" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var ErrNotDHT = errors.New("routing service is not a DHT") - -// TODO: Factor into `ipfs dht` and `ipfs routing`. -// Everything *except `query` goes into `ipfs routing`. - -var DhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Issue commands directly through the DHT.", - ShortDescription: ``, - }, - - Subcommands: map[string]*cmds.Command{ - "query": queryDhtCmd, - "findprovs": findProvidersDhtCmd, - "findpeer": findPeerDhtCmd, - "get": getValueDhtCmd, - "put": putValueDhtCmd, - "provide": provideRefDhtCmd, - }, -} - -const ( - dhtVerboseOptionName = "verbose" -) - -var queryDhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Find the closest Peer IDs to a given Peer ID by querying the DHT.", - ShortDescription: "Outputs a list of newline-delimited Peer IDs.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peerID", true, true, "The peerID to run the query against."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dhtVerboseOptionName, "v", "Print extra information."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if nd.DHT == nil { - return ErrNotDHT - } - - id, err := peer.IDB58Decode(req.Arguments[0]) - if err != nil { - return cmds.ClientError("invalid peer ID") - } - - ctx, cancel := context.WithCancel(req.Context) - ctx, events := notif.RegisterForQueryEvents(ctx) - - closestPeers, err := nd.DHT.GetClosestPeers(ctx, string(id)) - if err != nil { - cancel() - return err - } - - go func() { - defer cancel() - for p := range closestPeers { - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - ID: p, - Type: notif.FinalPeer, - }) - } - }() - - for e := range events { - if err := res.Emit(e); err != nil { - return err - } - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error { - pfm := pfuncMap{ - notif.PeerResponse: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - for _, p := range obj.Responses { - fmt.Fprintf(out, "%s\n", p.ID.Pretty()) - } - }, - } - verbose, _ := req.Options[dhtVerboseOptionName].(bool) - printEvent(out, w, verbose, pfm) - return nil - }), - }, - Type: notif.QueryEvent{}, -} - -const ( - numProvidersOptionName = "num-providers" -) - -var findProvidersDhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Find peers that can provide a specific value, given a key.", - ShortDescription: "Outputs a list of newline-delimited provider Peer IDs.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, true, "The key to find providers for."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dhtVerboseOptionName, "v", "Print extra information."), - cmdkit.IntOption(numProvidersOptionName, "n", "The number of providers to find.").WithDefault(20), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !n.OnlineMode() { - return ErrNotOnline - } - - numProviders, _ := req.Options[numProvidersOptionName].(int) - if err != nil { - return err - } - if numProviders < 1 { - return fmt.Errorf("number of providers must be greater than 0") - } - - c, err := cid.Parse(req.Arguments[0]) - - if err != nil { - return err - } - - ctx, cancel := context.WithCancel(req.Context) - ctx, events := notif.RegisterForQueryEvents(ctx) - - pchan := n.Routing.FindProvidersAsync(ctx, c, numProviders) - - go func() { - defer cancel() - for p := range pchan { - np := p - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.Provider, - Responses: []*pstore.PeerInfo{&np}, - }) - } - }() - for e := range events { - if err := res.Emit(e); err != nil { - return err - } - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error { - pfm := pfuncMap{ - notif.FinalPeer: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - if verbose { - fmt.Fprintf(out, "* closest peer %s\n", obj.ID) - } - }, - notif.Provider: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - prov := obj.Responses[0] - if verbose { - fmt.Fprintf(out, "provider: ") - } - fmt.Fprintf(out, "%s\n", prov.ID.Pretty()) - if verbose { - for _, a := range prov.Addrs { - fmt.Fprintf(out, "\t%s\n", a) - } - } - }, - } - - verbose, _ := req.Options[dhtVerboseOptionName].(bool) - printEvent(out, w, verbose, pfm) - - return nil - }), - }, - Type: notif.QueryEvent{}, -} - -const ( - recursiveOptionName = "recursive" -) - -var provideRefDhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Announce to the network that you are providing given values.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, true, "The key[s] to send provide records for.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dhtVerboseOptionName, "v", "Print extra information."), - cmdkit.BoolOption(recursiveOptionName, "r", "Recursively provide entire graph."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - if len(nd.PeerHost.Network().Conns()) == 0 { - return errors.New("cannot provide, no connected peers") - } - - rec, _ := req.Options[recursiveOptionName].(bool) - - var cids []cid.Cid - for _, arg := range req.Arguments { - c, err := cid.Decode(arg) - if err != nil { - return err - } - - has, err := nd.Blockstore.Has(c) - if err != nil { - return err - } - - if !has { - return fmt.Errorf("block %s not found locally, cannot provide", c) - } - - cids = append(cids, c) - } - - ctx, cancel := context.WithCancel(req.Context) - ctx, events := notif.RegisterForQueryEvents(ctx) - - go func() { - defer cancel() - var err error - if rec { - err = provideKeysRec(ctx, nd.Routing, nd.DAG, cids) - } else { - err = provideKeys(ctx, nd.Routing, cids) - } - if err != nil { - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.QueryError, - Extra: err.Error(), - }) - } - }() - - for e := range events { - if err := res.Emit(e); err != nil { - return err - } - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error { - pfm := pfuncMap{ - notif.FinalPeer: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - if verbose { - fmt.Fprintf(out, "sending provider record to peer %s\n", obj.ID) - } - }, - } - - verbose, _ := req.Options[dhtVerboseOptionName].(bool) - printEvent(out, w, verbose, pfm) - - return nil - }), - }, - Type: notif.QueryEvent{}, -} - -func provideKeys(ctx context.Context, r routing.IpfsRouting, cids []cid.Cid) error { - for _, c := range cids { - err := r.Provide(ctx, c, true) - if err != nil { - return err - } - } - return nil -} - -func provideKeysRec(ctx context.Context, r routing.IpfsRouting, dserv ipld.DAGService, cids []cid.Cid) error { - provided := cid.NewSet() - for _, c := range cids { - kset := cid.NewSet() - - err := dag.EnumerateChildrenAsync(ctx, dag.GetLinksDirect(dserv), c, kset.Visit) - if err != nil { - return err - } - - for _, k := range kset.Keys() { - if provided.Has(k) { - continue - } - - err = r.Provide(ctx, k, true) - if err != nil { - return err - } - provided.Add(k) - } - } - - return nil -} - -var findPeerDhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Find the multiaddresses associated with a Peer ID.", - ShortDescription: "Outputs a list of newline-delimited multiaddresses.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peerID", true, true, "The ID of the peer to search for."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dhtVerboseOptionName, "v", "Print extra information."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - pid, err := peer.IDB58Decode(req.Arguments[0]) - if err != nil { - return err - } - - ctx, cancel := context.WithCancel(req.Context) - ctx, events := notif.RegisterForQueryEvents(ctx) - - go func() { - defer cancel() - pi, err := nd.Routing.FindPeer(ctx, pid) - if err != nil { - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.QueryError, - Extra: err.Error(), - }) - return - } - - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.FinalPeer, - Responses: []*pstore.PeerInfo{&pi}, - }) - }() - - for e := range events { - if err := res.Emit(e); err != nil { - return err - } - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error { - pfm := pfuncMap{ - notif.FinalPeer: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - pi := obj.Responses[0] - for _, a := range pi.Addrs { - fmt.Fprintf(out, "%s\n", a) - } - }, - } - - verbose, _ := req.Options[dhtVerboseOptionName].(bool) - printEvent(out, w, verbose, pfm) - return nil - }), - }, - Type: notif.QueryEvent{}, -} - -var getValueDhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Given a key, query the routing system for its best value.", - ShortDescription: ` -Outputs the best value for the given key. - -There may be several different values for a given key stored in the routing -system; in this context 'best' means the record that is most desirable. There is -no one metric for 'best': it depends entirely on the key type. For IPNS, 'best' -is the record that is both valid and has the highest sequence number (freshest). -Different key types can specify other 'best' rules. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, true, "The key to find a value for."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dhtVerboseOptionName, "v", "Print extra information."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - dhtkey, err := escapeDhtKey(req.Arguments[0]) - if err != nil { - return err - } - - ctx, cancel := context.WithCancel(req.Context) - ctx, events := notif.RegisterForQueryEvents(ctx) - - go func() { - defer cancel() - val, err := nd.Routing.GetValue(ctx, dhtkey) - if err != nil { - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.QueryError, - Extra: err.Error(), - }) - } else { - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.Value, - Extra: string(val), - }) - } - }() - - for e := range events { - if err := res.Emit(e); err != nil { - return err - } - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error { - pfm := pfuncMap{ - notif.Value: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - if verbose { - fmt.Fprintf(out, "got value: '%s'\n", obj.Extra) - } else { - fmt.Fprintln(out, obj.Extra) - } - }, - } - - verbose, _ := req.Options[dhtVerboseOptionName].(bool) - printEvent(out, w, verbose, pfm) - - return nil - }), - }, - Type: notif.QueryEvent{}, -} - -var putValueDhtCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Write a key/value pair to the routing system.", - ShortDescription: ` -Given a key of the form /foo/bar and a value of any form, this will write that -value to the routing system with that key. - -Keys have two parts: a keytype (foo) and the key name (bar). IPNS uses the -/ipns keytype, and expects the key name to be a Peer ID. IPNS entries are -specifically formatted (protocol buffer). - -You may only use keytypes that are supported in your ipfs binary: currently -this is only /ipns. Unless you have a relatively deep understanding of the -go-ipfs routing internals, you likely want to be using 'ipfs name publish' instead -of this. - -Value is arbitrary text. Standard input can be used to provide value. - -NOTE: A value may not exceed 2048 bytes. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "The key to store the value at."), - cmdkit.StringArg("value", true, false, "The value to store.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dhtVerboseOptionName, "v", "Print extra information."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !nd.OnlineMode() { - return ErrNotOnline - } - - key, err := escapeDhtKey(req.Arguments[0]) - if err != nil { - return err - } - - data := req.Arguments[1] - - ctx, cancel := context.WithCancel(req.Context) - ctx, events := notif.RegisterForQueryEvents(ctx) - - go func() { - defer cancel() - err := nd.Routing.PutValue(ctx, key, []byte(data)) - if err != nil { - notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ - Type: notif.QueryError, - Extra: err.Error(), - }) - } - }() - - for e := range events { - if err := res.Emit(e); err != nil { - return err - } - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error { - pfm := pfuncMap{ - notif.FinalPeer: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - if verbose { - fmt.Fprintf(out, "* closest peer %s\n", obj.ID) - } - }, - notif.Value: func(obj *notif.QueryEvent, out io.Writer, verbose bool) { - fmt.Fprintf(out, "%s\n", obj.ID.Pretty()) - }, - } - - verbose, _ := req.Options[dhtVerboseOptionName].(bool) - - printEvent(out, w, verbose, pfm) - - return nil - }), - }, - Type: notif.QueryEvent{}, -} - -type printFunc func(obj *notif.QueryEvent, out io.Writer, verbose bool) -type pfuncMap map[notif.QueryEventType]printFunc - -func printEvent(obj *notif.QueryEvent, out io.Writer, verbose bool, override pfuncMap) { - if verbose { - fmt.Fprintf(out, "%s: ", time.Now().Format("15:04:05.000")) - } - - if override != nil { - if pf, ok := override[obj.Type]; ok { - pf(obj, out, verbose) - return - } - } - - switch obj.Type { - case notif.SendingQuery: - if verbose { - fmt.Fprintf(out, "* querying %s\n", obj.ID) - } - case notif.Value: - if verbose { - fmt.Fprintf(out, "got value: '%s'\n", obj.Extra) - } else { - fmt.Fprint(out, obj.Extra) - } - case notif.PeerResponse: - if verbose { - fmt.Fprintf(out, "* %s says use ", obj.ID) - for _, p := range obj.Responses { - fmt.Fprintf(out, "%s ", p.ID) - } - fmt.Fprintln(out) - } - case notif.QueryError: - if verbose { - fmt.Fprintf(out, "error: %s\n", obj.Extra) - } - case notif.DialingPeer: - if verbose { - fmt.Fprintf(out, "dialing peer: %s\n", obj.ID) - } - case notif.AddingPeer: - if verbose { - fmt.Fprintf(out, "adding peer to query: %s\n", obj.ID) - } - case notif.FinalPeer: - default: - if verbose { - fmt.Fprintf(out, "unrecognized event type: %d\n", obj.Type) - } - } -} - -func escapeDhtKey(s string) (string, error) { - parts := path.SplitList(s) - switch len(parts) { - case 1: - k, err := b58.Decode(s) - if err != nil { - return "", err - } - return string(k), nil - case 3: - k, err := b58.Decode(parts[2]) - if err != nil { - return "", err - } - return path.Join(append(parts[:2], string(k))), nil - default: - return "", errors.New("invalid key") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/dht_test.go b/vendor/github.com/ipfs/go-ipfs/core/commands/dht_test.go deleted file mode 100644 index 67288755..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/dht_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package commands - -import ( - "testing" - - "github.com/ipfs/go-ipfs/namesys" - - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - tu "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" -) - -func TestKeyTranslation(t *testing.T) { - pid := tu.RandPeerIDFatal(t) - pkname := namesys.PkKeyForID(pid) - ipnsname := ipns.RecordKey(pid) - - pkk, err := escapeDhtKey("/pk/" + pid.Pretty()) - if err != nil { - t.Fatal(err) - } - - ipnsk, err := escapeDhtKey("/ipns/" + pid.Pretty()) - if err != nil { - t.Fatal(err) - } - - if pkk != pkname { - t.Fatal("keys didnt match!") - } - - if ipnsk != ipnsname { - t.Fatal("keys didnt match!") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/diag.go b/vendor/github.com/ipfs/go-ipfs/core/commands/diag.go deleted file mode 100644 index be28ff48..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/diag.go +++ /dev/null @@ -1,17 +0,0 @@ -package commands - -import ( - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var DiagCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Generate diagnostic reports.", - }, - - Subcommands: map[string]*cmds.Command{ - "sys": sysDiagCmd, - "cmds": ActiveReqsCmd, - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/dns.go b/vendor/github.com/ipfs/go-ipfs/core/commands/dns.go deleted file mode 100644 index 0b430fcf..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/dns.go +++ /dev/null @@ -1,89 +0,0 @@ -package commands - -import ( - "fmt" - "io" - - ncmd "github.com/ipfs/go-ipfs/core/commands/name" - namesys "github.com/ipfs/go-ipfs/namesys" - nsopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const ( - dnsRecursiveOptionName = "recursive" -) - -var DNSCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Resolve DNS links.", - ShortDescription: ` -Multihashes are hard to remember, but domain names are usually easy to -remember. To create memorable aliases for multihashes, DNS TXT -records can point to other DNS links, IPFS objects, IPNS keys, etc. -This command resolves those links to the referenced object. -`, - LongDescription: ` -Multihashes are hard to remember, but domain names are usually easy to -remember. To create memorable aliases for multihashes, DNS TXT -records can point to other DNS links, IPFS objects, IPNS keys, etc. -This command resolves those links to the referenced object. - -Note: This command can only recursively resolve DNS links, -it will fail to recursively resolve through IPNS keys etc. -For general-purpose recursive resolution, use ipfs name resolve -r. - -For example, with this DNS TXT record: - - > dig +short TXT _dnslink.ipfs.io - dnslink=/ipfs/QmRzTuh2Lpuz7Gr39stNr6mTFdqAghsZec1JoUnfySUzcy - -The resolver will give: - - > ipfs dns ipfs.io - /ipfs/QmRzTuh2Lpuz7Gr39stNr6mTFdqAghsZec1JoUnfySUzcy - -The resolver can recursively resolve: - - > dig +short TXT recursive.ipfs.io - dnslink=/ipns/ipfs.io - > ipfs dns -r recursive.ipfs.io - /ipfs/QmRzTuh2Lpuz7Gr39stNr6mTFdqAghsZec1JoUnfySUzcy -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("domain-name", true, false, "The domain-name name to resolve.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(dnsRecursiveOptionName, "r", "Resolve until the result is not a DNS link."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - recursive, _ := req.Options[dnsRecursiveOptionName].(bool) - name := req.Arguments[0] - resolver := namesys.NewDNSResolver() - - var ropts []nsopts.ResolveOpt - if !recursive { - ropts = append(ropts, nsopts.Depth(1)) - } - - output, err := resolver.Resolve(req.Context, name, ropts...) - if err == namesys.ErrResolveFailed { - return err - } - if err != nil { - return err - } - return cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: output}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *ncmd.ResolvedPath) error { - fmt.Fprintln(w, out.Path.String()) - return nil - }), - }, - Type: ncmd.ResolvedPath{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/e/error.go b/vendor/github.com/ipfs/go-ipfs/core/commands/e/error.go deleted file mode 100644 index 6bc1bbf6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/e/error.go +++ /dev/null @@ -1,30 +0,0 @@ -package e - -import ( - "fmt" - "runtime/debug" -) - -// TypeErr returns an error with a string that explains what error was expected and what was received. -func TypeErr(expected, actual interface{}) error { - return fmt.Errorf("expected type %T, got %T", expected, actual) -} - -// compile time type check that HandlerError is an error -var _ error = New(nil) - -// HandlerError adds a stack trace to an error -type HandlerError struct { - Err error - Stack []byte -} - -// Error makes HandlerError implement error -func (err HandlerError) Error() string { - return fmt.Sprintf("%s in:\n%s", err.Err.Error(), err.Stack) -} - -// New returns a new HandlerError -func New(err error) HandlerError { - return HandlerError{Err: err, Stack: debug.Stack()} -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/external.go b/vendor/github.com/ipfs/go-ipfs/core/commands/external.go deleted file mode 100644 index 2217dfa7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/external.go +++ /dev/null @@ -1,87 +0,0 @@ -package commands - -import ( - "bytes" - "fmt" - "io" - "os" - "os/exec" - "strings" - - commands "github.com/ipfs/go-ipfs/commands" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -func ExternalBinary() *cmds.Command { - return &cmds.Command{ - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("args", false, true, "Arguments for subcommand."), - }, - External: true, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - binname := strings.Join(append([]string{"ipfs"}, req.Path...), "-") - _, err := exec.LookPath(binname) - if err != nil { - // special case for '--help' on uninstalled binaries. - for _, arg := range req.Arguments { - if arg == "--help" || arg == "-h" { - buf := new(bytes.Buffer) - fmt.Fprintf(buf, "%s is an 'external' command.\n", binname) - fmt.Fprintf(buf, "It does not currently appear to be installed.\n") - fmt.Fprintf(buf, "Please refer to the ipfs documentation for instructions.\n") - return res.Emit(buf) - } - } - - return fmt.Errorf("%s not installed", binname) - } - - r, w := io.Pipe() - - cmd := exec.Command(binname, req.Arguments...) - - // TODO: make commands lib be able to pass stdin through daemon - //cmd.Stdin = req.Stdin() - cmd.Stdin = io.LimitReader(nil, 0) - cmd.Stdout = w - cmd.Stderr = w - - // setup env of child program - osenv := os.Environ() - - // Get the node iff already defined. - if cctx, ok := env.(*commands.Context); ok && cctx.Online { - nd, err := cctx.GetNode() - if err != nil { - return fmt.Errorf("failed to start ipfs node: %s", err) - } - osenv = append(osenv, fmt.Sprintf("IPFS_ONLINE=%t", nd.OnlineMode())) - } - - cmd.Env = osenv - - err = cmd.Start() - if err != nil { - return fmt.Errorf("failed to start subcommand: %s", err) - } - - errC := make(chan error) - - go func() { - var err error - defer func() { errC <- err }() - err = cmd.Wait() - w.Close() - }() - - err = res.Emit(r) - if err != nil { - return err - } - - return <-errC - }, - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/files.go b/vendor/github.com/ipfs/go-ipfs/core/commands/files.go deleted file mode 100644 index 105e54d5..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/files.go +++ /dev/null @@ -1,1173 +0,0 @@ -package commands - -import ( - "context" - "errors" - "fmt" - "io" - "os" - gopath "path" - "sort" - "strings" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - bservice "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - "gx/ipfs/Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx/go-mfs" - "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -var flog = logging.Logger("cmds/files") - -// FilesCmd is the 'ipfs files' command -var FilesCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with unixfs files.", - ShortDescription: ` -Files is an API for manipulating IPFS objects as if they were a unix -filesystem. - -NOTE: -Most of the subcommands of 'ipfs files' accept the '--flush' flag. It defaults -to true. Use caution when setting this flag to false. It will improve -performance for large numbers of file operations, but it does so at the cost -of consistency guarantees. If the daemon is unexpectedly killed before running -'ipfs files flush' on the files in question, then data may be lost. This also -applies to running 'ipfs repo gc' concurrently with '--flush=false' -operations. -`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(filesFlushOptionName, "f", "Flush target and ancestors after write.").WithDefault(true), - }, - Subcommands: map[string]*cmds.Command{ - "read": filesReadCmd, - "write": filesWriteCmd, - "mv": filesMvCmd, - "cp": filesCpCmd, - "ls": filesLsCmd, - "mkdir": filesMkdirCmd, - "stat": filesStatCmd, - "rm": filesRmCmd, - "flush": filesFlushCmd, - "chcid": filesChcidCmd, - }, -} - -const ( - filesCidVersionOptionName = "cid-version" - filesHashOptionName = "hash" -) - -var cidVersionOption = cmdkit.IntOption(filesCidVersionOptionName, "cid-ver", "Cid version to use. (experimental)") -var hashOption = cmdkit.StringOption(filesHashOptionName, "Hash function to use. Will set Cid version to 1 if used. (experimental)") - -var errFormat = errors.New("format was set by multiple options. Only one format option is allowed") - -type statOutput struct { - Hash string - Size uint64 - CumulativeSize uint64 - Blocks int - Type string - WithLocality bool `json:",omitempty"` - Local bool `json:",omitempty"` - SizeLocal uint64 `json:",omitempty"` -} - -const ( - defaultStatFormat = ` -Size: -CumulativeSize: -ChildBlocks: -Type: ` - filesFormatOptionName = "format" - filesSizeOptionName = "size" - filesWithLocalOptionName = "with-local" -) - -var filesStatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Display file status.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", true, false, "Path to node to stat."), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(filesFormatOptionName, "Print statistics in given format. Allowed tokens: "+ - " . Conflicts with other format options.").WithDefault(defaultStatFormat), - cmdkit.BoolOption(filesHashOptionName, "Print only hash. Implies '--format='. Conflicts with other format options."), - cmdkit.BoolOption(filesSizeOptionName, "Print only size. Implies '--format='. Conflicts with other format options."), - cmdkit.BoolOption(filesWithLocalOptionName, "Compute the amount of the dag that is local, and if possible the total size"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - - _, err := statGetFormatOptions(req) - if err != nil { - return cmdkit.Errorf(cmdkit.ErrClient, err.Error()) - } - - node, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - path, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - - withLocal, _ := req.Options[filesWithLocalOptionName].(bool) - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - var dagserv ipld.DAGService - if withLocal { - // an offline DAGService will not fetch from the network - dagserv = dag.NewDAGService(bservice.New( - node.Blockstore, - offline.Exchange(node.Blockstore), - )) - } else { - dagserv = node.DAG - } - - nd, err := getNodeFromPath(req.Context, node, api, path) - if err != nil { - return err - } - - o, err := statNode(nd, enc) - if err != nil { - return err - } - - if !withLocal { - return cmds.EmitOnce(res, o) - } - - local, sizeLocal, err := walkBlock(req.Context, dagserv, nd) - - o.WithLocality = true - o.Local = local - o.SizeLocal = sizeLocal - - return cmds.EmitOnce(res, o) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *statOutput) error { - s, _ := statGetFormatOptions(req) - s = strings.Replace(s, "", out.Hash, -1) - s = strings.Replace(s, "", fmt.Sprintf("%d", out.Size), -1) - s = strings.Replace(s, "", fmt.Sprintf("%d", out.CumulativeSize), -1) - s = strings.Replace(s, "", fmt.Sprintf("%d", out.Blocks), -1) - s = strings.Replace(s, "", out.Type, -1) - - fmt.Fprintln(w, s) - - if out.WithLocality { - fmt.Fprintf(w, "Local: %s of %s (%.2f%%)\n", - humanize.Bytes(out.SizeLocal), - humanize.Bytes(out.CumulativeSize), - 100.0*float64(out.SizeLocal)/float64(out.CumulativeSize), - ) - } - - return nil - }), - }, - Type: statOutput{}, -} - -func moreThanOne(a, b, c bool) bool { - return a && b || b && c || a && c -} - -func statGetFormatOptions(req *cmds.Request) (string, error) { - - hash, _ := req.Options[filesHashOptionName].(bool) - size, _ := req.Options[filesSizeOptionName].(bool) - format, _ := req.Options[filesFormatOptionName].(string) - - if moreThanOne(hash, size, format != defaultStatFormat) { - return "", errFormat - } - - if hash { - return "", nil - } else if size { - return "", nil - } else { - return format, nil - } -} - -func statNode(nd ipld.Node, enc cidenc.Encoder) (*statOutput, error) { - c := nd.Cid() - - cumulsize, err := nd.Size() - if err != nil { - return nil, err - } - - switch n := nd.(type) { - case *dag.ProtoNode: - d, err := ft.FSNodeFromBytes(n.Data()) - if err != nil { - return nil, err - } - - var ndtype string - switch d.Type() { - case ft.TDirectory, ft.THAMTShard: - ndtype = "directory" - case ft.TFile, ft.TMetadata, ft.TRaw: - ndtype = "file" - default: - return nil, fmt.Errorf("unrecognized node type: %s", d.Type()) - } - - return &statOutput{ - Hash: enc.Encode(c), - Blocks: len(nd.Links()), - Size: d.FileSize(), - CumulativeSize: cumulsize, - Type: ndtype, - }, nil - case *dag.RawNode: - return &statOutput{ - Hash: enc.Encode(c), - Blocks: 0, - Size: cumulsize, - CumulativeSize: cumulsize, - Type: "file", - }, nil - default: - return nil, fmt.Errorf("not unixfs node (proto or raw)") - } -} - -func walkBlock(ctx context.Context, dagserv ipld.DAGService, nd ipld.Node) (bool, uint64, error) { - // Start with the block data size - sizeLocal := uint64(len(nd.RawData())) - - local := true - - for _, link := range nd.Links() { - child, err := dagserv.Get(ctx, link.Cid) - - if err == ipld.ErrNotFound { - local = false - continue - } - - if err != nil { - return local, sizeLocal, err - } - - childLocal, childLocalSize, err := walkBlock(ctx, dagserv, child) - - if err != nil { - return local, sizeLocal, err - } - - // Recursively add the child size - local = local && childLocal - sizeLocal += childLocalSize - } - - return local, sizeLocal, nil -} - -var filesCpCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Copy files into mfs.", - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("source", true, false, "Source object to copy."), - cmdkit.StringArg("dest", true, false, "Destination to copy object to."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - flush, _ := req.Options[filesFlushOptionName].(bool) - - src, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - src = strings.TrimRight(src, "/") - - dst, err := checkPath(req.Arguments[1]) - if err != nil { - return err - } - - if dst[len(dst)-1] == '/' { - dst += gopath.Base(src) - } - - node, err := getNodeFromPath(req.Context, nd, api, src) - if err != nil { - return fmt.Errorf("cp: cannot get node from path %s: %s", src, err) - } - - err = mfs.PutNode(nd.FilesRoot, dst, node) - if err != nil { - return fmt.Errorf("cp: cannot put node in path %s: %s", dst, err) - } - - if flush { - err := mfs.FlushPath(nd.FilesRoot, dst) - if err != nil { - return fmt.Errorf("cp: cannot flush the created file %s: %s", dst, err) - } - } - - return nil - }, -} - -func getNodeFromPath(ctx context.Context, node *core.IpfsNode, api iface.CoreAPI, p string) (ipld.Node, error) { - switch { - case strings.HasPrefix(p, "/ipfs/"): - np, err := iface.ParsePath(p) - if err != nil { - return nil, err - } - - return api.ResolveNode(ctx, np) - default: - fsn, err := mfs.Lookup(node.FilesRoot, p) - if err != nil { - return nil, err - } - - return fsn.GetNode() - } -} - -type filesLsOutput struct { - Entries []mfs.NodeListing -} - -const ( - longOptionName = "l" - dontSortOptionName = "U" -) - -var filesLsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List directories in the local mutable namespace.", - ShortDescription: ` -List directories in the local mutable namespace. - -Examples: - - $ ipfs files ls /welcome/docs/ - about - contact - help - quick-start - readme - security-notes - - $ ipfs files ls /myfiles/a/b/c/d - foo - bar -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", false, false, "Path to show listing for. Defaults to '/'."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(longOptionName, "Use long listing format."), - cmdkit.BoolOption(dontSortOptionName, "Do not sort; list entries in directory order."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - var arg string - - if len(req.Arguments) == 0 { - arg = "/" - } else { - arg = req.Arguments[0] - } - - path, err := checkPath(arg) - if err != nil { - return err - } - - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - fsn, err := mfs.Lookup(nd.FilesRoot, path) - if err != nil { - return err - } - - long, _ := req.Options[longOptionName].(bool) - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - switch fsn := fsn.(type) { - case *mfs.Directory: - if !long { - var output []mfs.NodeListing - names, err := fsn.ListNames(req.Context) - if err != nil { - return err - } - - for _, name := range names { - output = append(output, mfs.NodeListing{ - Name: name, - }) - } - return cmds.EmitOnce(res, &filesLsOutput{output}) - } - listing, err := fsn.List(req.Context) - if err != nil { - return err - } - return cmds.EmitOnce(res, &filesLsOutput{listing}) - case *mfs.File: - _, name := gopath.Split(path) - out := &filesLsOutput{[]mfs.NodeListing{{Name: name}}} - if long { - out.Entries[0].Type = int(fsn.Type()) - - size, err := fsn.Size() - if err != nil { - return err - } - out.Entries[0].Size = size - - nd, err := fsn.GetNode() - if err != nil { - return err - } - out.Entries[0].Hash = enc.Encode(nd.Cid()) - } - return cmds.EmitOnce(res, out) - default: - return errors.New("unrecognized type") - } - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *filesLsOutput) error { - noSort, _ := req.Options[dontSortOptionName].(bool) - if !noSort { - sort.Slice(out.Entries, func(i, j int) bool { - return strings.Compare(out.Entries[i].Name, out.Entries[j].Name) < 0 - }) - } - - long, _ := req.Options[longOptionName].(bool) - for _, o := range out.Entries { - if long { - if o.Type == int(mfs.TDir) { - o.Name += "/" - } - fmt.Fprintf(w, "%s\t%s\t%d\n", o.Name, o.Hash, o.Size) - } else { - fmt.Fprintf(w, "%s\n", o.Name) - } - } - - return nil - }), - }, - Type: filesLsOutput{}, -} - -const ( - filesOffsetOptionName = "offset" - filesCountOptionName = "count" -) - -var filesReadCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Read a file in a given mfs.", - ShortDescription: ` -Read a specified number of bytes from a file at a given offset. By default, -will read the entire file similar to unix cat. - -Examples: - - $ ipfs files read /test/hello - hello - `, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", true, false, "Path to file to be read."), - }, - Options: []cmdkit.Option{ - cmdkit.Int64Option(filesOffsetOptionName, "o", "Byte offset to begin reading from."), - cmdkit.Int64Option(filesCountOptionName, "n", "Maximum number of bytes to read."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - path, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - - fsn, err := mfs.Lookup(nd.FilesRoot, path) - if err != nil { - return err - } - - fi, ok := fsn.(*mfs.File) - if !ok { - return fmt.Errorf("%s was not a file", path) - } - - rfd, err := fi.Open(mfs.Flags{Read: true}) - if err != nil { - return err - } - - defer rfd.Close() - - offset, _ := req.Options[offsetOptionName].(int64) - if offset < 0 { - return fmt.Errorf("cannot specify negative offset") - } - - filen, err := rfd.Size() - if err != nil { - return err - } - - if int64(offset) > filen { - return fmt.Errorf("offset was past end of file (%d > %d)", offset, filen) - } - - _, err = rfd.Seek(int64(offset), io.SeekStart) - if err != nil { - return err - } - - var r io.Reader = &contextReaderWrapper{R: rfd, ctx: req.Context} - count, found := req.Options[filesCountOptionName].(int64) - if found { - if count < 0 { - return fmt.Errorf("cannot specify negative 'count'") - } - r = io.LimitReader(r, int64(count)) - } - return res.Emit(r) - }, -} - -type contextReader interface { - CtxReadFull(context.Context, []byte) (int, error) -} - -type contextReaderWrapper struct { - R contextReader - ctx context.Context -} - -func (crw *contextReaderWrapper) Read(b []byte) (int, error) { - return crw.R.CtxReadFull(crw.ctx, b) -} - -var filesMvCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Move files.", - ShortDescription: ` -Move files around. Just like traditional unix mv. - -Example: - - $ ipfs files mv /myfs/a/b/c /myfs/foo/newc - -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("source", true, false, "Source file to move."), - cmdkit.StringArg("dest", true, false, "Destination path for file to be moved to."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - flush, _ := req.Options[filesFlushOptionName].(bool) - - src, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - dst, err := checkPath(req.Arguments[1]) - if err != nil { - return err - } - - err = mfs.Mv(nd.FilesRoot, src, dst) - if err == nil && flush { - err = mfs.FlushPath(nd.FilesRoot, "/") - } - return err - }, -} - -const ( - filesCreateOptionName = "create" - filesParentsOptionName = "parents" - filesTruncateOptionName = "truncate" - filesRawLeavesOptionName = "raw-leaves" - filesFlushOptionName = "flush" -) - -var filesWriteCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Write to a mutable file in a given filesystem.", - ShortDescription: ` -Write data to a file in a given filesystem. This command allows you to specify -a beginning offset to write to. The entire length of the input will be -written. - -If the '--create' option is specified, the file will be created if it does not -exist. Nonexistant intermediate directories will not be created. - -Newly created files will have the same CID version and hash function of the -parent directory unless the --cid-version and --hash options are used. - -Newly created leaves will be in the legacy format (Protobuf) if the -CID version is 0, or raw is the CID version is non-zero. Use of the ---raw-leaves option will override this behavior. - -If the '--flush' option is set to false, changes will not be propogated to the -merkledag root. This can make operations much faster when doing a large number -of writes to a deeper directory structure. - -EXAMPLE: - - echo "hello world" | ipfs files write --create /myfs/a/b/file - echo "hello world" | ipfs files write --truncate /myfs/a/b/file - -WARNING: - -Usage of the '--flush=false' option does not guarantee data durability until -the tree has been flushed. This can be accomplished by running 'ipfs files -stat' on the file or any of its ancestors. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", true, false, "Path to write to."), - cmdkit.FileArg("data", true, false, "Data to write.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.Int64Option(filesOffsetOptionName, "o", "Byte offset to begin writing at."), - cmdkit.BoolOption(filesCreateOptionName, "e", "Create the file if it does not exist."), - cmdkit.BoolOption(filesParentsOptionName, "p", "Make parent directories as needed."), - cmdkit.BoolOption(filesTruncateOptionName, "t", "Truncate the file to size zero before writing."), - cmdkit.Int64Option(filesCountOptionName, "n", "Maximum number of bytes to read."), - cmdkit.BoolOption(filesRawLeavesOptionName, "Use raw blocks for newly created leaf nodes. (experimental)"), - cidVersionOption, - hashOption, - }, - Run: func(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment) (retErr error) { - path, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - - create, _ := req.Options[filesCreateOptionName].(bool) - mkParents, _ := req.Options[filesParentsOptionName].(bool) - trunc, _ := req.Options[filesTruncateOptionName].(bool) - flush, _ := req.Options[filesFlushOptionName].(bool) - rawLeaves, rawLeavesDef := req.Options[filesRawLeavesOptionName].(bool) - - prefix, err := getPrefixNew(req) - if err != nil { - return err - } - - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - offset, _ := req.Options[filesOffsetOptionName].(int64) - if offset < 0 { - return fmt.Errorf("cannot have negative write offset") - } - - if mkParents { - err := ensureContainingDirectoryExists(nd.FilesRoot, path, prefix) - if err != nil { - return err - } - } - - fi, err := getFileHandle(nd.FilesRoot, path, create, prefix) - if err != nil { - return err - } - if rawLeavesDef { - fi.RawLeaves = rawLeaves - } - - wfd, err := fi.Open(mfs.Flags{Write: true, Sync: flush}) - if err != nil { - return err - } - - defer func() { - err := wfd.Close() - if err != nil { - if retErr == nil { - retErr = err - } else { - log.Error("files: error closing file mfs file descriptor", err) - } - } - }() - - if trunc { - if err := wfd.Truncate(0); err != nil { - return err - } - } - - count, countfound := req.Options[filesCountOptionName].(int64) - if countfound && count < 0 { - return fmt.Errorf("cannot have negative byte count") - } - - _, err = wfd.Seek(int64(offset), io.SeekStart) - if err != nil { - flog.Error("seekfail: ", err) - return err - } - - var r io.Reader - r, err = cmdenv.GetFileArg(req.Files.Entries()) - if err != nil { - return err - } - if countfound { - r = io.LimitReader(r, int64(count)) - } - - _, err = io.Copy(wfd, r) - return err - }, -} - -var filesMkdirCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Make directories.", - ShortDescription: ` -Create the directory if it does not already exist. - -The directory will have the same CID version and hash function of the -parent directory unless the --cid-version and --hash options are used. - -NOTE: All paths must be absolute. - -Examples: - - $ ipfs files mkdir /test/newdir - $ ipfs files mkdir -p /test/does/not/exist/yet -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", true, false, "Path to dir to make."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(filesParentsOptionName, "p", "No error if existing, make parent directories as needed."), - cidVersionOption, - hashOption, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - dashp, _ := req.Options[filesParentsOptionName].(bool) - dirtomake, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - - flush, _ := req.Options[filesFlushOptionName].(bool) - - prefix, err := getPrefix(req) - if err != nil { - return err - } - root := n.FilesRoot - - err = mfs.Mkdir(root, dirtomake, mfs.MkdirOpts{ - Mkparents: dashp, - Flush: flush, - CidBuilder: prefix, - }) - - return err - }, -} - -var filesFlushCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Flush a given path's data to disk.", - ShortDescription: ` -Flush a given path to disk. This is only useful when other commands -are run with the '--flush=false'. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", false, false, "Path to flush. Default: '/'."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - path := "/" - if len(req.Arguments) > 0 { - path = req.Arguments[0] - } - - return mfs.FlushPath(nd.FilesRoot, path) - }, -} - -var filesChcidCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Change the cid version or hash function of the root node of a given path.", - ShortDescription: ` -Change the cid version or hash function of the root node of a given path. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", false, false, "Path to change. Default: '/'."), - }, - Options: []cmdkit.Option{ - cidVersionOption, - hashOption, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - path := "/" - if len(req.Arguments) > 0 { - path = req.Arguments[0] - } - - flush, _ := req.Options[filesFlushOptionName].(bool) - - prefix, err := getPrefix(req) - if err != nil { - return err - } - - err = updatePath(nd.FilesRoot, path, prefix) - if err == nil && flush { - err = mfs.FlushPath(nd.FilesRoot, path) - } - return err - }, -} - -func updatePath(rt *mfs.Root, pth string, builder cid.Builder) error { - if builder == nil { - return nil - } - - nd, err := mfs.Lookup(rt, pth) - if err != nil { - return err - } - - switch n := nd.(type) { - case *mfs.Directory: - n.SetCidBuilder(builder) - default: - return fmt.Errorf("can only update directories") - } - - return nil -} - -var filesRmCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove a file.", - ShortDescription: ` -Remove files or directories. - - $ ipfs files rm /foo - $ ipfs files ls /bar - cat - dog - fish - $ ipfs files rm -r /bar -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", true, true, "File to remove."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(recursiveOptionName, "r", "Recursively remove directories."), - cmdkit.BoolOption(forceOptionName, "Forcibly remove target at path; implies -r for directories"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - path, err := checkPath(req.Arguments[0]) - if err != nil { - return err - } - - if path == "/" { - return fmt.Errorf("cannot delete root") - } - - // 'rm a/b/c/' will fail unless we trim the slash at the end - if path[len(path)-1] == '/' { - path = path[:len(path)-1] - } - - dir, name := gopath.Split(path) - parent, err := mfs.Lookup(nd.FilesRoot, dir) - if err != nil { - return fmt.Errorf("parent lookup: %s", err) - } - - pdir, ok := parent.(*mfs.Directory) - if !ok { - return fmt.Errorf("no such file or directory: %s", path) - } - - // if '--force' specified, it will remove anything else, - // including file, directory, corrupted node, etc - force, _ := req.Options[forceOptionName].(bool) - if force { - err := pdir.Unlink(name) - if err != nil { - return err - } - - return pdir.Flush() - } - - // get child node by name, when the node is corrupted and nonexistent, - // it will return specific error. - child, err := pdir.Child(name) - if err != nil { - return err - } - - dashr, _ := req.Options[recursiveOptionName].(bool) - - switch child.(type) { - case *mfs.Directory: - if !dashr { - return fmt.Errorf("%s is a directory, use -r to remove directories", path) - } - } - - err = pdir.Unlink(name) - if err != nil { - return err - } - - return pdir.Flush() - }, -} - -func getPrefixNew(req *cmds.Request) (cid.Builder, error) { - cidVer, cidVerSet := req.Options[filesCidVersionOptionName].(int) - hashFunStr, hashFunSet := req.Options[filesHashOptionName].(string) - - if !cidVerSet && !hashFunSet { - return nil, nil - } - - if hashFunSet && cidVer == 0 { - cidVer = 1 - } - - prefix, err := dag.PrefixForCidVersion(cidVer) - if err != nil { - return nil, err - } - - if hashFunSet { - hashFunCode, ok := mh.Names[strings.ToLower(hashFunStr)] - if !ok { - return nil, fmt.Errorf("unrecognized hash function: %s", strings.ToLower(hashFunStr)) - } - prefix.MhType = hashFunCode - prefix.MhLength = -1 - } - - return &prefix, nil -} - -func getPrefix(req *cmds.Request) (cid.Builder, error) { - cidVer, cidVerSet := req.Options[filesCidVersionOptionName].(int) - hashFunStr, hashFunSet := req.Options[filesHashOptionName].(string) - - if !cidVerSet && !hashFunSet { - return nil, nil - } - - if hashFunSet && cidVer == 0 { - cidVer = 1 - } - - prefix, err := dag.PrefixForCidVersion(cidVer) - if err != nil { - return nil, err - } - - if hashFunSet { - hashFunCode, ok := mh.Names[strings.ToLower(hashFunStr)] - if !ok { - return nil, fmt.Errorf("unrecognized hash function: %s", strings.ToLower(hashFunStr)) - } - prefix.MhType = hashFunCode - prefix.MhLength = -1 - } - - return &prefix, nil -} - -func ensureContainingDirectoryExists(r *mfs.Root, path string, builder cid.Builder) error { - dirtomake := gopath.Dir(path) - - if dirtomake == "/" { - return nil - } - - return mfs.Mkdir(r, dirtomake, mfs.MkdirOpts{ - Mkparents: true, - CidBuilder: builder, - }) -} - -func getFileHandle(r *mfs.Root, path string, create bool, builder cid.Builder) (*mfs.File, error) { - target, err := mfs.Lookup(r, path) - switch err { - case nil: - fi, ok := target.(*mfs.File) - if !ok { - return nil, fmt.Errorf("%s was not a file", path) - } - return fi, nil - - case os.ErrNotExist: - if !create { - return nil, err - } - - // if create is specified and the file doesnt exist, we create the file - dirname, fname := gopath.Split(path) - pdiri, err := mfs.Lookup(r, dirname) - if err != nil { - flog.Error("lookupfail ", dirname) - return nil, err - } - pdir, ok := pdiri.(*mfs.Directory) - if !ok { - return nil, fmt.Errorf("%s was not a directory", dirname) - } - if builder == nil { - builder = pdir.GetCidBuilder() - } - - nd := dag.NodeWithData(ft.FilePBData(nil, 0)) - nd.SetCidBuilder(builder) - err = pdir.AddChild(fname, nd) - if err != nil { - return nil, err - } - - fsn, err := pdir.Child(fname) - if err != nil { - return nil, err - } - - fi, ok := fsn.(*mfs.File) - if !ok { - return nil, errors.New("expected *mfs.File, didnt get it. This is likely a race condition") - } - return fi, nil - - default: - return nil, err - } -} - -func checkPath(p string) (string, error) { - if len(p) == 0 { - return "", fmt.Errorf("paths must not be empty") - } - - if p[0] != '/' { - return "", fmt.Errorf("paths must start with a leading slash") - } - - cleaned := gopath.Clean(p) - if p[len(p)-1] == '/' && p != "/" { - cleaned += "/" - } - return cleaned, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/filestore.go b/vendor/github.com/ipfs/go-ipfs/core/commands/filestore.go deleted file mode 100644 index 71a0637b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/filestore.go +++ /dev/null @@ -1,259 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "os" - - core "github.com/ipfs/go-ipfs/core" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - e "github.com/ipfs/go-ipfs/core/commands/e" - filestore "github.com/ipfs/go-ipfs/filestore" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var FileStoreCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with filestore objects.", - }, - Subcommands: map[string]*cmds.Command{ - "ls": lsFileStore, - "verify": verifyFileStore, - "dups": dupsFileStore, - }, -} - -const ( - fileOrderOptionName = "file-order" -) - -var lsFileStore = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List objects in filestore.", - LongDescription: ` -List objects in the filestore. - -If one or more is specified only list those specific objects, -otherwise list all objects. - -The output is: - - -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("obj", false, true, "Cid of objects to list."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(fileOrderOptionName, "sort the results based on the path of the backing file"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - _, fs, err := getFilestore(env) - if err != nil { - return err - } - args := req.Arguments - if len(args) > 0 { - return listByArgs(res, fs, args) - } - - fileOrder, _ := req.Options[fileOrderOptionName].(bool) - next, err := filestore.ListAll(fs, fileOrder) - if err != nil { - return err - } - - for { - r := next() - if r == nil { - break - } - if err := res.Emit(r); err != nil { - return err - } - } - - return nil - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - enc, err := cmdenv.GetCidEncoder(res.Request()) - if err != nil { - return err - } - return streamResult(func(v interface{}, out io.Writer) nonFatalError { - r := v.(*filestore.ListRes) - if r.ErrorMsg != "" { - return nonFatalError(r.ErrorMsg) - } - fmt.Fprintf(out, "%s\n", r.FormatLong(enc.Encode)) - return "" - })(res, re) - }, - }, - Type: filestore.ListRes{}, -} - -var verifyFileStore = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Verify objects in filestore.", - LongDescription: ` -Verify objects in the filestore. - -If one or more is specified only verify those specific objects, -otherwise verify all objects. - -The output is: - - - -Where is one of: -ok: the block can be reconstructed -changed: the contents of the backing file have changed -no-file: the backing file could not be found -error: there was some other problem reading the file -missing: could not be found in the filestore -ERROR: internal error, most likely due to a corrupt database - -For ERROR entries the error will also be printed to stderr. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("obj", false, true, "Cid of objects to verify."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(fileOrderOptionName, "verify the objects based on the order of the backing file"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - _, fs, err := getFilestore(env) - if err != nil { - return err - } - args := req.Arguments - if len(args) > 0 { - return listByArgs(res, fs, args) - } - - fileOrder, _ := req.Options[fileOrderOptionName].(bool) - next, err := filestore.VerifyAll(fs, fileOrder) - if err != nil { - return err - } - - for { - r := next() - if r == nil { - break - } - if err := res.Emit(r); err != nil { - return err - } - } - - return nil - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - enc, err := cmdenv.GetCidEncoder(res.Request()) - if err != nil { - return err - } - - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - return nil - } - return err - } - - list, ok := v.(*filestore.ListRes) - if !ok { - return e.TypeErr(list, v) - } - - if list.Status == filestore.StatusOtherError { - fmt.Fprintf(os.Stderr, "%s\n", list.ErrorMsg) - } - fmt.Fprintf(os.Stdout, "%s %s\n", list.Status.Format(), list.FormatLong(enc.Encode)) - } - }, - }, - Type: filestore.ListRes{}, -} - -var dupsFileStore = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List blocks that are both in the filestore and standard block storage.", - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - _, fs, err := getFilestore(env) - if err != nil { - return err - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - ch, err := fs.FileManager().AllKeysChan(req.Context) - if err != nil { - return err - } - - for cid := range ch { - have, err := fs.MainBlockstore().Has(cid) - if err != nil { - return res.Emit(&RefWrapper{Err: err.Error()}) - } - if have { - if err := res.Emit(&RefWrapper{Ref: enc.Encode(cid)}); err != nil { - return err - } - } - } - - return nil - }, - Encoders: refsEncoderMap, - Type: RefWrapper{}, -} - -func getFilestore(env cmds.Environment) (*core.IpfsNode, *filestore.Filestore, error) { - n, err := cmdenv.GetNode(env) - if err != nil { - return nil, nil, err - } - fs := n.Filestore - if fs == nil { - return n, nil, filestore.ErrFilestoreNotEnabled - } - return n, fs, err -} - -func listByArgs(res cmds.ResponseEmitter, fs *filestore.Filestore, args []string) error { - for _, arg := range args { - c, err := cid.Decode(arg) - if err != nil { - ret := &filestore.ListRes{ - Status: filestore.StatusOtherError, - ErrorMsg: fmt.Sprintf("%s: %v", arg, err), - } - if err := res.Emit(ret); err != nil { - return err - } - continue - } - r := filestore.Verify(fs, c) - if err := res.Emit(r); err != nil { - return err - } - } - - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/get.go b/vendor/github.com/ipfs/go-ipfs/core/commands/get.go deleted file mode 100644 index 789c25f7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/get.go +++ /dev/null @@ -1,342 +0,0 @@ -package commands - -import ( - "bufio" - "compress/gzip" - "errors" - "fmt" - "io" - "os" - "path" - "path/filepath" - "strings" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - "github.com/ipfs/go-ipfs/core/commands/e" - - "gx/ipfs/QmQine7gvHncNevKtG9QXxf3nXcwSj6aDDmMm52mHofEEp/tar-utils" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmYWB8oH6o7qftxoyqTTZhzLrhKCVT7NYahECQTwTtqbgj/pb" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var ErrInvalidCompressionLevel = errors.New("compression level must be between 1 and 9") - -const ( - outputOptionName = "output" - archiveOptionName = "archive" - compressOptionName = "compress" - compressionLevelOptionName = "compression-level" -) - -var GetCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Download IPFS objects.", - ShortDescription: ` -Stores to disk the data contained an IPFS or IPNS object(s) at the given path. - -By default, the output will be stored at './', but an alternate -path can be specified with '--output=' or '-o='. - -To output a TAR archive instead of unpacked files, use '--archive' or '-a'. - -To compress the output with GZIP compression, use '--compress' or '-C'. You -may also specify the level of compression by specifying '-l=<1-9>'. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, false, "The path to the IPFS object(s) to be outputted.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(outputOptionName, "o", "The path where the output should be stored."), - cmdkit.BoolOption(archiveOptionName, "a", "Output a TAR archive."), - cmdkit.BoolOption(compressOptionName, "C", "Compress the output with GZIP compression."), - cmdkit.IntOption(compressionLevelOptionName, "l", "The level of compression (1-9)."), - }, - PreRun: func(req *cmds.Request, env cmds.Environment) error { - _, err := getCompressOptions(req) - return err - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cmplvl, err := getCompressOptions(req) - if err != nil { - return err - } - - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - p, err := iface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - file, err := api.Unixfs().Get(req.Context, p) - if err != nil { - return err - } - - size, err := file.Size() - if err != nil { - return err - } - - res.SetLength(uint64(size)) - - archive, _ := req.Options[archiveOptionName].(bool) - reader, err := fileArchive(file, p.String(), archive, cmplvl) - if err != nil { - return err - } - - return res.Emit(reader) - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - req := res.Request() - - v, err := res.Next() - if err != nil { - return err - } - - outReader, ok := v.(io.Reader) - if !ok { - return e.New(e.TypeErr(outReader, v)) - } - - outPath := getOutPath(req) - - cmplvl, err := getCompressOptions(req) - if err != nil { - return err - } - - archive, _ := req.Options[archiveOptionName].(bool) - - gw := getWriter{ - Out: os.Stdout, - Err: os.Stderr, - Archive: archive, - Compression: cmplvl, - Size: int64(res.Length()), - } - - return gw.Write(outReader, outPath) - }, - }, -} - -type clearlineReader struct { - io.Reader - out io.Writer -} - -func (r *clearlineReader) Read(p []byte) (n int, err error) { - n, err = r.Reader.Read(p) - if err == io.EOF { - // callback - fmt.Fprintf(r.out, "\033[2K\r") // clear progress bar line on EOF - } - return -} - -func progressBarForReader(out io.Writer, r io.Reader, l int64) (*pb.ProgressBar, io.Reader) { - bar := makeProgressBar(out, l) - barR := bar.NewProxyReader(r) - return bar, &clearlineReader{barR, out} -} - -func makeProgressBar(out io.Writer, l int64) *pb.ProgressBar { - // setup bar reader - // TODO: get total length of files - bar := pb.New64(l).SetUnits(pb.U_BYTES) - bar.Output = out - - // the progress bar lib doesn't give us a way to get the width of the output, - // so as a hack we just use a callback to measure the output, then git rid of it - bar.Callback = func(line string) { - terminalWidth := len(line) - bar.Callback = nil - log.Infof("terminal width: %v\n", terminalWidth) - } - return bar -} - -func getOutPath(req *cmds.Request) string { - outPath, _ := req.Options[outputOptionName].(string) - if outPath == "" { - trimmed := strings.TrimRight(req.Arguments[0], "/") - _, outPath = filepath.Split(trimmed) - outPath = filepath.Clean(outPath) - } - return outPath -} - -type getWriter struct { - Out io.Writer // for output to user - Err io.Writer // for progress bar output - - Archive bool - Compression int - Size int64 -} - -func (gw *getWriter) Write(r io.Reader, fpath string) error { - if gw.Archive || gw.Compression != gzip.NoCompression { - return gw.writeArchive(r, fpath) - } - return gw.writeExtracted(r, fpath) -} - -func (gw *getWriter) writeArchive(r io.Reader, fpath string) error { - // adjust file name if tar - if gw.Archive { - if !strings.HasSuffix(fpath, ".tar") && !strings.HasSuffix(fpath, ".tar.gz") { - fpath += ".tar" - } - } - - // adjust file name if gz - if gw.Compression != gzip.NoCompression { - if !strings.HasSuffix(fpath, ".gz") { - fpath += ".gz" - } - } - - // create file - file, err := os.Create(fpath) - if err != nil { - return err - } - defer file.Close() - - fmt.Fprintf(gw.Out, "Saving archive to %s\n", fpath) - bar, barR := progressBarForReader(gw.Err, r, gw.Size) - bar.Start() - defer bar.Finish() - - _, err = io.Copy(file, barR) - return err -} - -func (gw *getWriter) writeExtracted(r io.Reader, fpath string) error { - fmt.Fprintf(gw.Out, "Saving file(s) to %s\n", fpath) - bar := makeProgressBar(gw.Err, gw.Size) - bar.Start() - defer bar.Finish() - defer bar.Set64(gw.Size) - - extractor := &tar.Extractor{Path: fpath, Progress: bar.Add64} - return extractor.Extract(r) -} - -func getCompressOptions(req *cmds.Request) (int, error) { - cmprs, _ := req.Options[compressOptionName].(bool) - cmplvl, cmplvlFound := req.Options[compressionLevelOptionName].(int) - switch { - case !cmprs: - return gzip.NoCompression, nil - case cmprs && !cmplvlFound: - return gzip.DefaultCompression, nil - case cmprs && (cmplvl < 1 || cmplvl > 9): - return gzip.NoCompression, ErrInvalidCompressionLevel - } - return cmplvl, nil -} - -// DefaultBufSize is the buffer size for gets. for now, 1MB, which is ~4 blocks. -// TODO: does this need to be configurable? -var DefaultBufSize = 1048576 - -type identityWriteCloser struct { - w io.Writer -} - -func (i *identityWriteCloser) Write(p []byte) (int, error) { - return i.w.Write(p) -} - -func (i *identityWriteCloser) Close() error { - return nil -} - -func fileArchive(f files.Node, name string, archive bool, compression int) (io.Reader, error) { - cleaned := path.Clean(name) - _, filename := path.Split(cleaned) - - // need to connect a writer to a reader - piper, pipew := io.Pipe() - checkErrAndClosePipe := func(err error) bool { - if err != nil { - pipew.CloseWithError(err) - return true - } - return false - } - - // use a buffered writer to parallelize task - bufw := bufio.NewWriterSize(pipew, DefaultBufSize) - - // compression determines whether to use gzip compression. - maybeGzw, err := newMaybeGzWriter(bufw, compression) - if checkErrAndClosePipe(err) { - return nil, err - } - - closeGzwAndPipe := func() { - if err := maybeGzw.Close(); checkErrAndClosePipe(err) { - return - } - if err := bufw.Flush(); checkErrAndClosePipe(err) { - return - } - pipew.Close() // everything seems to be ok. - } - - if !archive && compression != gzip.NoCompression { - // the case when the node is a file - r := files.ToFile(f) - if r == nil { - return nil, errors.New("file is not regular") - } - - go func() { - if _, err := io.Copy(maybeGzw, r); checkErrAndClosePipe(err) { - return - } - closeGzwAndPipe() // everything seems to be ok - }() - } else { - // the case for 1. archive, and 2. not archived and not compressed, in which tar is used anyway as a transport format - - // construct the tar writer - w, err := files.NewTarWriter(maybeGzw) - if checkErrAndClosePipe(err) { - return nil, err - } - - go func() { - // write all the nodes recursively - if err := w.WriteFile(f, filename); checkErrAndClosePipe(err) { - return - } - w.Close() // close tar writer - closeGzwAndPipe() // everything seems to be ok - }() - } - - return piper, nil -} - -func newMaybeGzWriter(w io.Writer, compression int) (io.WriteCloser, error) { - if compression != gzip.NoCompression { - return gzip.NewWriterLevel(w, compression) - } - return &identityWriteCloser{w}, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/get_test.go b/vendor/github.com/ipfs/go-ipfs/core/commands/get_test.go deleted file mode 100644 index 762f564e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/get_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package commands - -import ( - "context" - "fmt" - "testing" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -func TestGetOutputPath(t *testing.T) { - cases := []struct { - args []string - opts cmdkit.OptMap - outPath string - }{ - { - args: []string{"/ipns/multiformats.io/"}, - opts: map[string]interface{}{ - "output": "takes-precedence", - }, - outPath: "takes-precedence", - }, - { - args: []string{"/ipns/multiformats.io/", "some-other-arg-to-be-ignored"}, - opts: cmdkit.OptMap{ - "output": "takes-precedence", - }, - outPath: "takes-precedence", - }, - { - args: []string{"/ipns/multiformats.io/"}, - outPath: "multiformats.io", - opts: cmdkit.OptMap{}, - }, - { - args: []string{"/ipns/multiformats.io/logo.svg/"}, - outPath: "logo.svg", - opts: cmdkit.OptMap{}, - }, - { - args: []string{"/ipns/multiformats.io", "some-other-arg-to-be-ignored"}, - outPath: "multiformats.io", - opts: cmdkit.OptMap{}, - }, - } - - _, err := GetCmd.GetOptions([]string{}) - if err != nil { - t.Fatalf("error getting default command options: %v", err) - } - - for i, tc := range cases { - t.Run(fmt.Sprintf("%s-%d", t.Name(), i), func(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - req, err := cmds.NewRequest(ctx, []string{}, tc.opts, tc.args, nil, GetCmd) - if err != nil { - t.Fatalf("error creating a command request: %v", err) - } - - if outPath := getOutPath(req); outPath != tc.outPath { - t.Errorf("expected outPath %s to be %s", outPath, tc.outPath) - } - }) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/helptext_test.go b/vendor/github.com/ipfs/go-ipfs/core/commands/helptext_test.go deleted file mode 100644 index 74c5e036..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/helptext_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package commands - -import ( - "strings" - "testing" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" -) - -func checkHelptextRecursive(t *testing.T, name []string, c *cmds.Command) { - c.ProcessHelp() - - t.Run(strings.Join(name, "_"), func(t *testing.T) { - if c.External { - t.Skip("external") - } - - t.Run("tagline", func(t *testing.T) { - if c.Helptext.Tagline == "" { - t.Error("no Tagline!") - } - }) - - t.Run("longDescription", func(t *testing.T) { - t.Skip("not everywhere yet") - if c.Helptext.LongDescription == "" { - t.Error("no LongDescription!") - } - }) - - t.Run("shortDescription", func(t *testing.T) { - t.Skip("not everywhere yet") - if c.Helptext.ShortDescription == "" { - t.Error("no ShortDescription!") - } - }) - - t.Run("synopsis", func(t *testing.T) { - t.Skip("autogenerated in go-ipfs-cmds") - if c.Helptext.Synopsis == "" { - t.Error("no Synopsis!") - } - }) - }) - - for subname, sub := range c.Subcommands { - checkHelptextRecursive(t, append(name, subname), sub) - } -} - -func TestHelptexts(t *testing.T) { - Root.ProcessHelp() - checkHelptextRecursive(t, []string{"ipfs"}, Root) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/id.go b/vendor/github.com/ipfs/go-ipfs/core/commands/id.go deleted file mode 100644 index 89af7f66..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/id.go +++ /dev/null @@ -1,195 +0,0 @@ -package commands - -import ( - "encoding/base64" - "encoding/json" - "errors" - "fmt" - "io" - "strings" - - core "github.com/ipfs/go-ipfs/core" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - identify "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/protocol/identify" - kb "gx/ipfs/QmSNE1XryoCMnZCbRaj1D23k6YKCaTQ386eJciu1pAfu8M/go-libp2p-kbucket" - ic "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const offlineIdErrorMessage = `'ipfs id' currently cannot query information on remote -peers without a running daemon; we are working to fix this. -In the meantime, if you want to query remote peers using 'ipfs id', -please run the daemon: - - ipfs daemon & - ipfs id QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ -` - -type IdOutput struct { - ID string - PublicKey string - Addresses []string - AgentVersion string - ProtocolVersion string -} - -const ( - formatOptionName = "format" -) - -var IDCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show ipfs node id info.", - ShortDescription: ` -Prints out information about the specified peer. -If no peer is specified, prints out information for local peers. - -'ipfs id' supports the format option for output with the following keys: - : The peers id. -: Agent version. -: Protocol version. -: Public key. -: Addresses (newline delimited). - -EXAMPLE: - - ipfs id Qmece2RkXhsKe5CRooNisBTh4SK119KrXXGmoK6V3kb8aH -f="\n" -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peerid", false, false, "Peer.ID of node to look up."), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(formatOptionName, "f", "Optional output format."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - var id peer.ID - if len(req.Arguments) > 0 { - var err error - id, err = peer.IDB58Decode(req.Arguments[0]) - if err != nil { - return fmt.Errorf("invalid peer id") - } - } else { - id = n.Identity - } - - if id == n.Identity { - output, err := printSelf(n) - if err != nil { - return err - } - return cmds.EmitOnce(res, output) - } - - // TODO handle offline mode with polymorphism instead of conditionals - if !n.OnlineMode() { - return errors.New(offlineIdErrorMessage) - } - - p, err := n.Routing.FindPeer(req.Context, id) - if err == kb.ErrLookupFailure { - return errors.New(offlineIdErrorMessage) - } - if err != nil { - return err - } - - output, err := printPeer(n.Peerstore, p.ID) - if err != nil { - return err - } - return cmds.EmitOnce(res, output) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *IdOutput) error { - format, found := req.Options[formatOptionName].(string) - if found { - output := format - output = strings.Replace(output, "", out.ID, -1) - output = strings.Replace(output, "", out.AgentVersion, -1) - output = strings.Replace(output, "", out.ProtocolVersion, -1) - output = strings.Replace(output, "", out.PublicKey, -1) - output = strings.Replace(output, "", strings.Join(out.Addresses, "\n"), -1) - output = strings.Replace(output, "\\n", "\n", -1) - output = strings.Replace(output, "\\t", "\t", -1) - fmt.Fprint(w, output) - } else { - marshaled, err := json.MarshalIndent(out, "", "\t") - if err != nil { - return err - } - marshaled = append(marshaled, byte('\n')) - fmt.Fprintln(w, string(marshaled)) - } - return nil - }), - }, - Type: IdOutput{}, -} - -func printPeer(ps pstore.Peerstore, p peer.ID) (interface{}, error) { - if p == "" { - return nil, errors.New("attempted to print nil peer") - } - - info := new(IdOutput) - info.ID = p.Pretty() - - if pk := ps.PubKey(p); pk != nil { - pkb, err := ic.MarshalPublicKey(pk) - if err != nil { - return nil, err - } - info.PublicKey = base64.StdEncoding.EncodeToString(pkb) - } - - for _, a := range ps.Addrs(p) { - info.Addresses = append(info.Addresses, a.String()) - } - - if v, err := ps.Get(p, "ProtocolVersion"); err == nil { - if vs, ok := v.(string); ok { - info.ProtocolVersion = vs - } - } - if v, err := ps.Get(p, "AgentVersion"); err == nil { - if vs, ok := v.(string); ok { - info.AgentVersion = vs - } - } - - return info, nil -} - -// printing self is special cased as we get values differently. -func printSelf(node *core.IpfsNode) (interface{}, error) { - info := new(IdOutput) - info.ID = node.Identity.Pretty() - - pk := node.PrivateKey.GetPublic() - pkb, err := ic.MarshalPublicKey(pk) - if err != nil { - return nil, err - } - info.PublicKey = base64.StdEncoding.EncodeToString(pkb) - - if node.PeerHost != nil { - for _, a := range node.PeerHost.Addrs() { - s := a.String() + "/ipfs/" + info.ID - info.Addresses = append(info.Addresses, s) - } - } - info.ProtocolVersion = identify.LibP2PVersion - info.AgentVersion = identify.ClientVersion - return info, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/keystore.go b/vendor/github.com/ipfs/go-ipfs/core/commands/keystore.go deleted file mode 100644 index f6aca2bf..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/keystore.go +++ /dev/null @@ -1,249 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "text/tabwriter" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var KeyCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Create and list IPNS name keypairs", - ShortDescription: ` -'ipfs key gen' generates a new keypair for usage with IPNS and 'ipfs name -publish'. - - > ipfs key gen --type=rsa --size=2048 mykey - > ipfs name publish --key=mykey QmSomeHash - -'ipfs key list' lists the available keys. - - > ipfs key list - self - mykey - `, - }, - Subcommands: map[string]*cmds.Command{ - "gen": keyGenCmd, - "list": keyListCmd, - "rename": keyRenameCmd, - "rm": keyRmCmd, - }, -} - -type KeyOutput struct { - Name string - Id string -} - -type KeyOutputList struct { - Keys []KeyOutput -} - -// KeyRenameOutput define the output type of keyRenameCmd -type KeyRenameOutput struct { - Was string - Now string - Id string - Overwrite bool -} - -const ( - keyStoreTypeOptionName = "type" - keyStoreSizeOptionName = "size" -) - -var keyGenCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Create a new keypair", - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(keyStoreTypeOptionName, "t", "type of the key to create [rsa, ed25519]"), - cmdkit.IntOption(keyStoreSizeOptionName, "s", "size of the key to generate"), - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("name", true, false, "name of key to create"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - typ, f := req.Options[keyStoreTypeOptionName].(string) - if !f { - return fmt.Errorf("please specify a key type with --type") - } - - name := req.Arguments[0] - if name == "self" { - return fmt.Errorf("cannot create key with name 'self'") - } - - opts := []options.KeyGenerateOption{options.Key.Type(typ)} - - size, sizefound := req.Options[keyStoreSizeOptionName].(int) - if sizefound { - opts = append(opts, options.Key.Size(size)) - } - - key, err := api.Key().Generate(req.Context, name, opts...) - - if err != nil { - return err - } - - return cmds.EmitOnce(res, &KeyOutput{ - Name: name, - Id: key.ID().Pretty(), - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, ko *KeyOutput) error { - _, err := w.Write([]byte(ko.Id + "\n")) - return err - }), - }, - Type: KeyOutput{}, -} - -var keyListCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List all local keypairs", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption("l", "Show extra information about keys."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - keys, err := api.Key().List(req.Context) - if err != nil { - return err - } - - list := make([]KeyOutput, 0, len(keys)) - - for _, key := range keys { - list = append(list, KeyOutput{Name: key.Name(), Id: key.ID().Pretty()}) - } - - return cmds.EmitOnce(res, &KeyOutputList{list}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: keyOutputListEncoders(), - }, - Type: KeyOutputList{}, -} - -const ( - keyStoreForceOptionName = "force" -) - -var keyRenameCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Rename a keypair", - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("name", true, false, "name of key to rename"), - cmdkit.StringArg("newName", true, false, "new name of the key"), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(keyStoreForceOptionName, "f", "Allow to overwrite an existing key."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - name := req.Arguments[0] - newName := req.Arguments[1] - force, _ := req.Options[keyStoreForceOptionName].(bool) - - key, overwritten, err := api.Key().Rename(req.Context, name, newName, options.Key.Force(force)) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &KeyRenameOutput{ - Was: name, - Now: newName, - Id: key.ID().Pretty(), - Overwrite: overwritten, - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, kro *KeyRenameOutput) error { - if kro.Overwrite { - fmt.Fprintf(w, "Key %s renamed to %s with overwriting\n", kro.Id, kro.Now) - } else { - fmt.Fprintf(w, "Key %s renamed to %s\n", kro.Id, kro.Now) - } - return nil - }), - }, - Type: KeyRenameOutput{}, -} - -var keyRmCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove a keypair", - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("name", true, true, "names of keys to remove").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption("l", "Show extra information about keys."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - names := req.Arguments - - list := make([]KeyOutput, 0, len(names)) - for _, name := range names { - key, err := api.Key().Remove(req.Context, name) - if err != nil { - return err - } - - list = append(list, KeyOutput{Name: name, Id: key.ID().Pretty()}) - } - - return cmds.EmitOnce(res, &KeyOutputList{list}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: keyOutputListEncoders(), - }, - Type: KeyOutputList{}, -} - -func keyOutputListEncoders() cmds.EncoderFunc { - return cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, list *KeyOutputList) error { - withID, _ := req.Options["l"].(bool) - - tw := tabwriter.NewWriter(w, 1, 2, 1, ' ', 0) - for _, s := range list.Keys { - if withID { - fmt.Fprintf(tw, "%s\t%s\t\n", s.Id, s.Name) - } else { - fmt.Fprintf(tw, "%s\n", s.Name) - } - } - tw.Flush() - return nil - }) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/log.go b/vendor/github.com/ipfs/go-ipfs/core/commands/log.go deleted file mode 100644 index b3e97639..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/log.go +++ /dev/null @@ -1,118 +0,0 @@ -package commands - -import ( - "fmt" - "io" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - lwriter "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log/writer" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -// Golang os.Args overrides * and replaces the character argument with -// an array which includes every file in the user's CWD. As a -// workaround, we use 'all' instead. The util library still uses * so -// we convert it at this step. -var logAllKeyword = "all" - -var LogCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with the daemon log output.", - ShortDescription: ` -'ipfs log' contains utility commands to affect or read the logging -output of a running daemon. -`, - }, - - Subcommands: map[string]*cmds.Command{ - "level": logLevelCmd, - "ls": logLsCmd, - "tail": logTailCmd, - }, -} - -var logLevelCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Change the logging level.", - ShortDescription: ` -Change the verbosity of one or all subsystems log output. This does not affect -the event log. -`, - }, - - Arguments: []cmdkit.Argument{ - // TODO use a different keyword for 'all' because all can theoretically - // clash with a subsystem name - cmdkit.StringArg("subsystem", true, false, fmt.Sprintf("The subsystem logging identifier. Use '%s' for all subsystems.", logAllKeyword)), - cmdkit.StringArg("level", true, false, `The log level, with 'debug' the most verbose and 'critical' the least verbose. - One of: debug, info, warning, error, critical. - `), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - args := req.Arguments - subsystem, level := args[0], args[1] - - if subsystem == logAllKeyword { - subsystem = "*" - } - - if err := logging.SetLogLevel(subsystem, level); err != nil { - return err - } - - s := fmt.Sprintf("Changed log level of '%s' to '%s'\n", subsystem, level) - log.Info(s) - - return cmds.EmitOnce(res, &MessageOutput{s}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *MessageOutput) error { - fmt.Fprint(w, out.Message) - return nil - }), - }, - Type: MessageOutput{}, -} - -var logLsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List the logging subsystems.", - ShortDescription: ` -'ipfs log ls' is a utility command used to list the logging -subsystems of a running daemon. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - return cmds.EmitOnce(res, &stringList{logging.GetSubsystems()}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, list *stringList) error { - for _, s := range list.Strings { - fmt.Fprintln(w, s) - } - return nil - }), - }, - Type: stringList{}, -} - -var logTailCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Read the event log.", - ShortDescription: ` -Outputs event log messages (not other log messages) as they are generated. -`, - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - ctx := req.Context - r, w := io.Pipe() - go func() { - defer w.Close() - <-ctx.Done() - }() - lwriter.WriterGroup.AddWriter(w) - return res.Emit(r) - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/ls.go b/vendor/github.com/ipfs/go-ipfs/core/commands/ls.go deleted file mode 100644 index 667078a7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/ls.go +++ /dev/null @@ -1,246 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "os" - "sort" - "text/tabwriter" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - iface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -// LsLink contains printable data for a single ipld link in ls output -type LsLink struct { - Name, Hash string - Size uint64 - Type iface.FileType -} - -// LsObject is an element of LsOutput -// It can represent all or part of a directory -type LsObject struct { - Hash string - Links []LsLink -} - -// LsOutput is a set of printable data for directories, -// it can be complete or partial -type LsOutput struct { - Objects []LsObject -} - -const ( - lsHeadersOptionNameTime = "headers" - lsResolveTypeOptionName = "resolve-type" - lsSizeOptionName = "size" - lsStreamOptionName = "stream" -) - -var LsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List directory contents for Unix filesystem objects.", - ShortDescription: ` -Displays the contents of an IPFS or IPNS object(s) at the given path, with -the following format: - - - -The JSON output contains type information. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to list links from.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(lsHeadersOptionNameTime, "v", "Print table headers (Hash, Size, Name)."), - cmdkit.BoolOption(lsResolveTypeOptionName, "Resolve linked objects to find out their types.").WithDefault(true), - cmdkit.BoolOption(lsSizeOptionName, "Resolve linked objects to find out their file size.").WithDefault(true), - cmdkit.BoolOption(lsStreamOptionName, "s", "Enable exprimental streaming of directory entries as they are traversed."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - resolveType, _ := req.Options[lsResolveTypeOptionName].(bool) - resolveSize, _ := req.Options[lsSizeOptionName].(bool) - stream, _ := req.Options[lsStreamOptionName].(bool) - - err = req.ParseBodyArgs() - if err != nil { - return err - } - paths := req.Arguments - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - var processLink func(path string, link LsLink) error - var dirDone func(i int) - - processDir := func() (func(path string, link LsLink) error, func(i int)) { - return func(path string, link LsLink) error { - output := []LsObject{{ - Hash: path, - Links: []LsLink{link}, - }} - return res.Emit(&LsOutput{output}) - }, func(i int) {} - } - done := func() error { return nil } - - if !stream { - output := make([]LsObject, len(req.Arguments)) - - processDir = func() (func(path string, link LsLink) error, func(i int)) { - // for each dir - outputLinks := make([]LsLink, 0) - return func(path string, link LsLink) error { - // for each link - outputLinks = append(outputLinks, link) - return nil - }, func(i int) { - // after each dir - sort.Slice(outputLinks, func(i, j int) bool { - return outputLinks[i].Name < outputLinks[j].Name - }) - - output[i] = LsObject{ - Hash: paths[i], - Links: outputLinks, - } - } - } - - done = func() error { - return cmds.EmitOnce(res, &LsOutput{output}) - } - } - - for i, fpath := range paths { - p, err := iface.ParsePath(fpath) - if err != nil { - return err - } - - results, err := api.Unixfs().Ls(req.Context, p, - options.Unixfs.ResolveChildren(resolveSize || resolveType)) - if err != nil { - return err - } - - processLink, dirDone = processDir() - for link := range results { - if link.Err != nil { - return link.Err - } - lsLink := LsLink{ - Name: link.Link.Name, - Hash: enc.Encode(link.Link.Cid), - - Size: link.Size, - Type: link.Type, - } - if err := processLink(paths[i], lsLink); err != nil { - return err - } - } - dirDone(i) - } - return done() - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - req := res.Request() - lastObjectHash := "" - - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - return nil - } - return err - } - out := v.(*LsOutput) - lastObjectHash = tabularOutput(req, os.Stdout, out, lastObjectHash, false) - } - }, - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *LsOutput) error { - // when streaming over HTTP using a text encoder, we cannot render breaks - // between directories because we don't know the hash of the last - // directory encoder - ignoreBreaks, _ := req.Options[lsStreamOptionName].(bool) - tabularOutput(req, w, out, "", ignoreBreaks) - return nil - }), - }, - Type: LsOutput{}, -} - -func tabularOutput(req *cmds.Request, w io.Writer, out *LsOutput, lastObjectHash string, ignoreBreaks bool) string { - headers, _ := req.Options[lsHeadersOptionNameTime].(bool) - stream, _ := req.Options[lsStreamOptionName].(bool) - size, _ := req.Options[lsSizeOptionName].(bool) - // in streaming mode we can't automatically align the tabs - // so we take a best guess - var minTabWidth int - if stream { - minTabWidth = 10 - } else { - minTabWidth = 1 - } - - multipleFolders := len(req.Arguments) > 1 - - tw := tabwriter.NewWriter(w, minTabWidth, 2, 1, ' ', 0) - - for _, object := range out.Objects { - - if !ignoreBreaks && object.Hash != lastObjectHash { - if multipleFolders { - if lastObjectHash != "" { - fmt.Fprintln(tw) - } - fmt.Fprintf(tw, "%s:\n", object.Hash) - } - if headers { - s := "Hash\tName" - if size { - s = "Hash\tSize\tName" - } - fmt.Fprintln(tw, s) - } - lastObjectHash = object.Hash - } - - for _, link := range object.Links { - s := "%[1]s\t%[3]s\n" - - switch { - case link.Type == iface.TDirectory && size: - s = "%[1]s\t-\t%[3]s/\n" - case link.Type == iface.TDirectory && !size: - s = "%[1]s\t%[3]s/\n" - case size: - s = "%s\t%v\t%s\n" - } - - fmt.Fprintf(tw, s, link.Hash, link.Size, link.Name) - } - } - tw.Flush() - return lastObjectHash -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/mount_nofuse.go b/vendor/github.com/ipfs/go-ipfs/core/commands/mount_nofuse.go deleted file mode 100644 index 9c692327..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/mount_nofuse.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build !windows,nofuse - -package commands - -import ( - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var MountCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Mounts ipfs to the filesystem (disabled).", - ShortDescription: ` -This version of ipfs is compiled without fuse support, which is required -for mounting. If you'd like to be able to mount, please use a version of -ipfs compiled with fuse. - -For the latest instructions, please check the project's repository: - http://github.com/ipfs/go-ipfs -`, - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/mount_unix.go b/vendor/github.com/ipfs/go-ipfs/core/commands/mount_unix.go deleted file mode 100644 index 9cc96b3e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/mount_unix.go +++ /dev/null @@ -1,129 +0,0 @@ -// +build !windows,!nofuse - -package commands - -import ( - "fmt" - "io" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - nodeMount "github.com/ipfs/go-ipfs/fuse/node" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const ( - mountIPFSPathOptionName = "ipfs-path" - mountIPNSPathOptionName = "ipns-path" -) - -var MountCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Mounts IPFS to the filesystem (read-only).", - ShortDescription: ` -Mount IPFS at a read-only mountpoint on the OS (default: /ipfs and /ipns). -All IPFS objects will be accessible under that directory. Note that the -root will not be listable, as it is virtual. Access known paths directly. - -You may have to create /ipfs and /ipns before using 'ipfs mount': - -> sudo mkdir /ipfs /ipns -> sudo chown $(whoami) /ipfs /ipns -> ipfs daemon & -> ipfs mount -`, - LongDescription: ` -Mount IPFS at a read-only mountpoint on the OS. The default, /ipfs and /ipns, -are set in the configuration file, but can be overriden by the options. -All IPFS objects will be accessible under this directory. Note that the -root will not be listable, as it is virtual. Access known paths directly. - -You may have to create /ipfs and /ipns before using 'ipfs mount': - -> sudo mkdir /ipfs /ipns -> sudo chown $(whoami) /ipfs /ipns -> ipfs daemon & -> ipfs mount - -Example: - -# setup -> mkdir foo -> echo "baz" > foo/bar -> ipfs add -r foo -added QmWLdkp93sNxGRjnFHPaYg8tCQ35NBY3XPn6KiETd3Z4WR foo/bar -added QmSh5e7S6fdcu75LAbXNZAFY2nGyZUJXyLCJDvn2zRkWyC foo -> ipfs ls QmSh5e7S6fdcu75LAbXNZAFY2nGyZUJXyLCJDvn2zRkWyC -QmWLdkp93sNxGRjnFHPaYg8tCQ35NBY3XPn6KiETd3Z4WR 12 bar -> ipfs cat QmWLdkp93sNxGRjnFHPaYg8tCQ35NBY3XPn6KiETd3Z4WR -baz - -# mount -> ipfs daemon & -> ipfs mount -IPFS mounted at: /ipfs -IPNS mounted at: /ipns -> cd /ipfs/QmSh5e7S6fdcu75LAbXNZAFY2nGyZUJXyLCJDvn2zRkWyC -> ls -bar -> cat bar -baz -> cat /ipfs/QmSh5e7S6fdcu75LAbXNZAFY2nGyZUJXyLCJDvn2zRkWyC/bar -baz -> cat /ipfs/QmWLdkp93sNxGRjnFHPaYg8tCQ35NBY3XPn6KiETd3Z4WR -baz -`, - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(mountIPFSPathOptionName, "f", "The path where IPFS should be mounted."), - cmdkit.StringOption(mountIPNSPathOptionName, "n", "The path where IPNS should be mounted."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - cfg, err := cmdenv.GetConfig(env) - if err != nil { - return err - } - - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - // error if we aren't running node in online mode - if nd.LocalMode() { - return ErrNotOnline - } - - fsdir, found := req.Options[mountIPFSPathOptionName].(string) - if !found { - fsdir = cfg.Mounts.IPFS // use default value - } - - // get default mount points - nsdir, found := req.Options[mountIPNSPathOptionName].(string) - if !found { - nsdir = cfg.Mounts.IPNS // NB: be sure to not redeclare! - } - - err = nodeMount.Mount(nd, fsdir, nsdir) - if err != nil { - return err - } - - var output config.Mounts - output.IPFS = fsdir - output.IPNS = nsdir - return cmds.EmitOnce(res, &output) - }, - Type: config.Mounts{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, mounts *config.Mounts) error { - fmt.Fprintf(w, "IPFS mounted at: %s\n", mounts.IPFS) - fmt.Fprintf(w, "IPNS mounted at: %s\n", mounts.IPNS) - - return nil - }), - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/mount_windows.go b/vendor/github.com/ipfs/go-ipfs/core/commands/mount_windows.go deleted file mode 100644 index 7a407912..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/mount_windows.go +++ /dev/null @@ -1,19 +0,0 @@ -package commands - -import ( - "errors" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var MountCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Not yet implemented on Windows.", - ShortDescription: "Not yet implemented on Windows. :(", - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - return errors.New("Mount isn't compatible with Windows yet") - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/name/ipns.go b/vendor/github.com/ipfs/go-ipfs/core/commands/name/ipns.go deleted file mode 100644 index 7e249eec..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/name/ipns.go +++ /dev/null @@ -1,164 +0,0 @@ -package name - -import ( - "errors" - "fmt" - "io" - "strings" - "time" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - nsopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var log = logging.Logger("core/commands/ipns") - -type ResolvedPath struct { - Path path.Path -} - -const ( - recursiveOptionName = "recursive" - nocacheOptionName = "nocache" - dhtRecordCountOptionName = "dht-record-count" - dhtTimeoutOptionName = "dht-timeout" - streamOptionName = "stream" -) - -var IpnsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Resolve IPNS names.", - ShortDescription: ` -IPNS is a PKI namespace, where names are the hashes of public keys, and -the private key enables publishing new (signed) values. In both publish -and resolve, the default name used is the node's own PeerID, -which is the hash of its public key. -`, - LongDescription: ` -IPNS is a PKI namespace, where names are the hashes of public keys, and -the private key enables publishing new (signed) values. In both publish -and resolve, the default name used is the node's own PeerID, -which is the hash of its public key. - -You can use the 'ipfs key' commands to list and generate more names and their -respective keys. - -Examples: - -Resolve the value of your name: - - > ipfs name resolve - /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Resolve the value of another name: - - > ipfs name resolve QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ - /ipfs/QmSiTko9JZyabH56y2fussEt1A5oDqsFXB3CkvAqraFryz - -Resolve the value of a dnslink: - - > ipfs name resolve ipfs.io - /ipfs/QmaBvfZooxWkrv7D3r8LS9moNjzD2o525XMZze69hhoxf5 - -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("name", false, false, "The IPNS name to resolve. Defaults to your node's peerID."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(recursiveOptionName, "r", "Resolve until the result is not an IPNS name."), - cmdkit.BoolOption(nocacheOptionName, "n", "Do not use cached entries."), - cmdkit.UintOption(dhtRecordCountOptionName, "dhtrc", "Number of records to request for DHT resolution."), - cmdkit.StringOption(dhtTimeoutOptionName, "dhtt", "Max time to collect values during DHT resolution eg \"30s\". Pass 0 for no timeout."), - cmdkit.BoolOption(streamOptionName, "s", "Stream entries as they are found."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - nocache, _ := req.Options["nocache"].(bool) - - var name string - if len(req.Arguments) == 0 { - self, err := api.Key().Self(req.Context) - if err != nil { - return err - } - name = self.ID().Pretty() - } else { - name = req.Arguments[0] - } - - recursive, _ := req.Options[recursiveOptionName].(bool) - rc, rcok := req.Options[dhtRecordCountOptionName].(int) - dhtt, dhttok := req.Options[dhtTimeoutOptionName].(string) - stream, _ := req.Options[streamOptionName].(bool) - - opts := []options.NameResolveOption{ - options.Name.Cache(!nocache), - } - - if !recursive { - opts = append(opts, options.Name.ResolveOption(nsopts.Depth(1))) - } - if rcok { - opts = append(opts, options.Name.ResolveOption(nsopts.DhtRecordCount(uint(rc)))) - } - if dhttok { - d, err := time.ParseDuration(dhtt) - if err != nil { - return err - } - if d < 0 { - return errors.New("DHT timeout value must be >= 0") - } - opts = append(opts, options.Name.ResolveOption(nsopts.DhtTimeout(d))) - } - - if !strings.HasPrefix(name, "/ipns/") { - name = "/ipns/" + name - } - - if !stream { - output, err := api.Name().Resolve(req.Context, name, opts...) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &ResolvedPath{path.FromString(output.String())}) - } - - output, err := api.Name().Search(req.Context, name, opts...) - if err != nil { - return err - } - - for v := range output { - if v.Err != nil { - return err - } - if err := res.Emit(&ResolvedPath{path.FromString(v.Path.String())}); err != nil { - return err - } - - } - - return nil - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, rp *ResolvedPath) error { - _, err := fmt.Fprintln(w, rp.Path) - return err - }), - }, - Type: ResolvedPath{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/name/ipnsps.go b/vendor/github.com/ipfs/go-ipfs/core/commands/name/ipnsps.go deleted file mode 100644 index e1130b53..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/name/ipnsps.go +++ /dev/null @@ -1,165 +0,0 @@ -package name - -import ( - "fmt" - "io" - "strings" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - "gx/ipfs/QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX/go-libp2p-record" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type ipnsPubsubState struct { - Enabled bool -} - -type ipnsPubsubCancel struct { - Canceled bool -} - -type stringList struct { - Strings []string -} - -// IpnsPubsubCmd is the subcommand that allows us to manage the IPNS pubsub system -var IpnsPubsubCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "IPNS pubsub management", - ShortDescription: ` -Manage and inspect the state of the IPNS pubsub resolver. - -Note: this command is experimental and subject to change as the system is refined -`, - }, - Subcommands: map[string]*cmds.Command{ - "state": ipnspsStateCmd, - "subs": ipnspsSubsCmd, - "cancel": ipnspsCancelCmd, - }, -} - -var ipnspsStateCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Query the state of IPNS pubsub", - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &ipnsPubsubState{n.PSRouter != nil}) - }, - Type: ipnsPubsubState{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, ips *ipnsPubsubState) error { - var state string - if ips.Enabled { - state = "enabled" - } else { - state = "disabled" - } - - _, err := fmt.Fprintln(w, state) - return err - }), - }, -} - -var ipnspsSubsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show current name subscriptions", - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if n.PSRouter == nil { - return cmdkit.Errorf(cmdkit.ErrClient, "IPNS pubsub subsystem is not enabled") - } - var paths []string - for _, key := range n.PSRouter.GetSubscriptions() { - ns, k, err := record.SplitKey(key) - if err != nil || ns != "ipns" { - // Not necessarily an error. - continue - } - pid, err := peer.IDFromString(k) - if err != nil { - log.Errorf("ipns key not a valid peer ID: %s", err) - continue - } - paths = append(paths, "/ipns/"+peer.IDB58Encode(pid)) - } - - return cmds.EmitOnce(res, &stringList{paths}) - }, - Type: stringList{}, - Encoders: cmds.EncoderMap{ - cmds.Text: stringListEncoder(), - }, -} - -var ipnspsCancelCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Cancel a name subscription", - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if n.PSRouter == nil { - return cmdkit.Errorf(cmdkit.ErrClient, "IPNS pubsub subsystem is not enabled") - } - - name := req.Arguments[0] - name = strings.TrimPrefix(name, "/ipns/") - pid, err := peer.IDB58Decode(name) - if err != nil { - return cmdkit.Errorf(cmdkit.ErrClient, err.Error()) - } - - ok, err := n.PSRouter.Cancel("/ipns/" + string(pid)) - if err != nil { - return err - } - return cmds.EmitOnce(res, &ipnsPubsubCancel{ok}) - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("name", true, false, "Name to cancel the subscription for."), - }, - Type: ipnsPubsubCancel{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, ipc *ipnsPubsubCancel) error { - var state string - if ipc.Canceled { - state = "canceled" - } else { - state = "no subscription" - } - - _, err := fmt.Fprintln(w, state) - return err - }), - }, -} - -func stringListEncoder() cmds.EncoderFunc { - return cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, list *stringList) error { - for _, s := range list.Strings { - _, err := fmt.Fprintln(w, s) - if err != nil { - return err - } - } - - return nil - }) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/name/name.go b/vendor/github.com/ipfs/go-ipfs/core/commands/name/name.go deleted file mode 100644 index 470509e1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/name/name.go +++ /dev/null @@ -1,67 +0,0 @@ -package name - -import ( - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type IpnsEntry struct { - Name string - Value string -} - -var NameCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Publish and resolve IPNS names.", - ShortDescription: ` -IPNS is a PKI namespace, where names are the hashes of public keys, and -the private key enables publishing new (signed) values. In both publish -and resolve, the default name used is the node's own PeerID, -which is the hash of its public key. -`, - LongDescription: ` -IPNS is a PKI namespace, where names are the hashes of public keys, and -the private key enables publishing new (signed) values. In both publish -and resolve, the default name used is the node's own PeerID, -which is the hash of its public key. - -You can use the 'ipfs key' commands to list and generate more names and their -respective keys. - -Examples: - -Publish an with your default name: - - > ipfs name publish /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - Published to QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n: /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Publish an with another name, added by an 'ipfs key' command: - - > ipfs key gen --type=rsa --size=2048 mykey - > ipfs name publish --key=mykey /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - Published to QmSrPmbaUKA3ZodhzPWZnpFgcPMFWF4QsxXbkWfEptTBJd: /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Resolve the value of your name: - - > ipfs name resolve - /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Resolve the value of another name: - - > ipfs name resolve QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ - /ipfs/QmSiTko9JZyabH56y2fussEt1A5oDqsFXB3CkvAqraFryz - -Resolve the value of a dnslink: - - > ipfs name resolve ipfs.io - /ipfs/QmaBvfZooxWkrv7D3r8LS9moNjzD2o525XMZze69hhoxf5 - -`, - }, - - Subcommands: map[string]*cmds.Command{ - "publish": PublishCmd, - "resolve": IpnsCmd, - "pubsub": IpnsPubsubCmd, - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/name/publish.go b/vendor/github.com/ipfs/go-ipfs/core/commands/name/publish.go deleted file mode 100644 index 060a9551..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/name/publish.go +++ /dev/null @@ -1,153 +0,0 @@ -package name - -import ( - "errors" - "fmt" - "io" - "time" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - iface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var ( - errAllowOffline = errors.New("can't publish while offline: pass `--allow-offline` to override") -) - -const ( - ipfsPathOptionName = "ipfs-path" - resolveOptionName = "resolve" - allowOfflineOptionName = "allow-offline" - lifeTimeOptionName = "lifetime" - ttlOptionName = "ttl" - keyOptionName = "key" - quieterOptionName = "quieter" -) - -var PublishCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Publish IPNS names.", - ShortDescription: ` -IPNS is a PKI namespace, where names are the hashes of public keys, and -the private key enables publishing new (signed) values. In both publish -and resolve, the default name used is the node's own PeerID, -which is the hash of its public key. -`, - LongDescription: ` -IPNS is a PKI namespace, where names are the hashes of public keys, and -the private key enables publishing new (signed) values. In both publish -and resolve, the default name used is the node's own PeerID, -which is the hash of its public key. - -You can use the 'ipfs key' commands to list and generate more names and their -respective keys. - -Examples: - -Publish an with your default name: - - > ipfs name publish /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - Published to QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n: /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Publish an with another name, added by an 'ipfs key' command: - - > ipfs key gen --type=rsa --size=2048 mykey - > ipfs name publish --key=mykey /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - Published to QmSrPmbaUKA3ZodhzPWZnpFgcPMFWF4QsxXbkWfEptTBJd: /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Alternatively, publish an using a valid PeerID (as listed by -'ipfs key list -l'): - - > ipfs name publish --key=QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - Published to QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n: /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg(ipfsPathOptionName, true, false, "ipfs path of the object to be published.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(resolveOptionName, "Check if the given path can be resolved before publishing.").WithDefault(true), - cmdkit.StringOption(lifeTimeOptionName, "t", - `Time duration that the record will be valid for. <> - This accepts durations such as "300s", "1.5h" or "2h45m". Valid time units are - "ns", "us" (or "µs"), "ms", "s", "m", "h".`).WithDefault("24h"), - cmdkit.BoolOption(allowOfflineOptionName, "When offline, save the IPNS record to the the local datastore without broadcasting to the network instead of simply failing."), - cmdkit.StringOption(ttlOptionName, "Time duration this record should be cached for. Uses the same syntax as the lifetime option. (caution: experimental)"), - cmdkit.StringOption(keyOptionName, "k", "Name of the key to be used or a valid PeerID, as listed by 'ipfs key list -l'.").WithDefault("self"), - cmdkit.BoolOption(quieterOptionName, "Q", "Write only final hash."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - allowOffline, _ := req.Options[allowOfflineOptionName].(bool) - kname, _ := req.Options[keyOptionName].(string) - - validTimeOpt, _ := req.Options[lifeTimeOptionName].(string) - validTime, err := time.ParseDuration(validTimeOpt) - if err != nil { - return fmt.Errorf("error parsing lifetime option: %s", err) - } - - opts := []options.NamePublishOption{ - options.Name.AllowOffline(allowOffline), - options.Name.Key(kname), - options.Name.ValidTime(validTime), - } - - if ttl, found := req.Options[ttlOptionName].(string); found { - d, err := time.ParseDuration(ttl) - if err != nil { - return err - } - - opts = append(opts, options.Name.TTL(d)) - } - - p, err := iface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - if verifyExists, _ := req.Options[resolveOptionName].(bool); verifyExists { - _, err := api.ResolveNode(req.Context, p) - if err != nil { - return err - } - } - - out, err := api.Name().Publish(req.Context, p, opts...) - if err != nil { - if err == iface.ErrOffline { - err = errAllowOffline - } - return err - } - - return cmds.EmitOnce(res, &IpnsEntry{ - Name: out.Name(), - Value: out.Value().String(), - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, ie *IpnsEntry) error { - var err error - quieter, _ := req.Options[quieterOptionName].(bool) - if quieter { - _, err = fmt.Fprintln(w, ie.Name) - } else { - _, err = fmt.Fprintf(w, "Published to %s: %s\n", ie.Name, ie.Value) - } - return err - }), - }, - Type: IpnsEntry{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/object/diff.go b/vendor/github.com/ipfs/go-ipfs/core/commands/object/diff.go deleted file mode 100644 index 63dde93a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/object/diff.go +++ /dev/null @@ -1,129 +0,0 @@ -package objectcmd - -import ( - "fmt" - "io" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - "github.com/ipfs/go-ipfs/dagutils" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -const ( - verboseOptionName = "verbose" -) - -type Changes struct { - Changes []*dagutils.Change -} - -var ObjectDiffCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Display the diff between two ipfs objects.", - ShortDescription: ` -'ipfs object diff' is a command used to show the differences between -two IPFS objects.`, - LongDescription: ` -'ipfs object diff' is a command used to show the differences between -two IPFS objects. - -Example: - - > ls foo - bar baz/ giraffe - > ipfs add -r foo - ... - Added QmegHcnrPgMwC7tBiMxChD54fgQMBUecNw9nE9UUU4x1bz foo - > OBJ_A=QmegHcnrPgMwC7tBiMxChD54fgQMBUecNw9nE9UUU4x1bz - > echo "different content" > foo/bar - > ipfs add -r foo - ... - Added QmcmRptkSPWhptCttgHg27QNDmnV33wAJyUkCnAvqD3eCD foo - > OBJ_B=QmcmRptkSPWhptCttgHg27QNDmnV33wAJyUkCnAvqD3eCD - > ipfs object diff -v $OBJ_A $OBJ_B - Changed "bar" from QmNgd5cz2jNftnAHBhcRUGdtiaMzb5Rhjqd4etondHHST8 to QmRfFVsjSXkhFxrfWnLpMae2M4GBVsry6VAuYYcji5MiZb. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("obj_a", true, false, "Object to diff against."), - cmdkit.StringArg("obj_b", true, false, "Object to diff."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(verboseOptionName, "v", "Print extra information."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - a := req.Arguments[0] - b := req.Arguments[1] - - pa, err := coreiface.ParsePath(a) - if err != nil { - return err - } - - pb, err := coreiface.ParsePath(b) - if err != nil { - return err - } - - changes, err := api.Object().Diff(req.Context, pa, pb) - if err != nil { - return err - } - - out := make([]*dagutils.Change, len(changes)) - for i, change := range changes { - out[i] = &dagutils.Change{ - Type: change.Type, - Path: change.Path, - } - - if change.Before != nil { - out[i].Before = change.Before.Cid() - } - - if change.After != nil { - out[i].After = change.After.Cid() - } - } - - return cmds.EmitOnce(res, &Changes{out}) - }, - Type: Changes{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Changes) error { - verbose, _ := req.Options[verboseOptionName].(bool) - - for _, change := range out.Changes { - if verbose { - switch change.Type { - case dagutils.Add: - fmt.Fprintf(w, "Added new link %q pointing to %s.\n", change.Path, change.After) - case dagutils.Mod: - fmt.Fprintf(w, "Changed %q from %s to %s.\n", change.Path, change.Before, change.After) - case dagutils.Remove: - fmt.Fprintf(w, "Removed link %q (was %s).\n", change.Path, change.Before) - } - } else { - switch change.Type { - case dagutils.Add: - fmt.Fprintf(w, "+ %s %q\n", change.After, change.Path) - case dagutils.Mod: - fmt.Fprintf(w, "~ %s %s %q\n", change.Before, change.After, change.Path) - case dagutils.Remove: - fmt.Fprintf(w, "- %s %q\n", change.Before, change.Path) - } - } - } - - return nil - }), - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/object/object.go b/vendor/github.com/ipfs/go-ipfs/core/commands/object/object.go deleted file mode 100644 index 936afcc3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/object/object.go +++ /dev/null @@ -1,564 +0,0 @@ -package objectcmd - -import ( - "encoding/base64" - "errors" - "fmt" - "io" - "io/ioutil" - "text/tabwriter" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type Node struct { - Links []Link - Data string -} - -type Link struct { - Name, Hash string - Size uint64 -} - -type Object struct { - Hash string `json:"Hash,omitempty"` - Links []Link `json:"Links,omitempty"` -} - -var ErrDataEncoding = errors.New("unkown data field encoding") - -const ( - headersOptionName = "headers" - encodingOptionName = "data-encoding" - inputencOptionName = "inputenc" - datafieldencOptionName = "datafieldenc" - pinOptionName = "pin" - quietOptionName = "quiet" -) - -var ObjectCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with IPFS objects.", - ShortDescription: ` -'ipfs object' is a plumbing command used to manipulate DAG objects -directly.`, - }, - - Subcommands: map[string]*cmds.Command{ - "data": ObjectDataCmd, - "diff": ObjectDiffCmd, - "get": ObjectGetCmd, - "links": ObjectLinksCmd, - "new": ObjectNewCmd, - "patch": ObjectPatchCmd, - "put": ObjectPutCmd, - "stat": ObjectStatCmd, - }, -} - -// ObjectDataCmd object data command -var ObjectDataCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Output the raw bytes of an IPFS object.", - ShortDescription: ` -'ipfs object data' is a plumbing command for retrieving the raw bytes stored -in a DAG node. It outputs to stdout, and is a base58 encoded multihash. -`, - LongDescription: ` -'ipfs object data' is a plumbing command for retrieving the raw bytes stored -in a DAG node. It outputs to stdout, and is a base58 encoded multihash. - -Note that the "--encoding" option does not affect the output, since the output -is the raw data of the object. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - path, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - data, err := api.Object().Data(req.Context, path) - if err != nil { - return err - } - - return res.Emit(data) - }, -} - -// ObjectLinksCmd object links command -var ObjectLinksCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Output the links pointed to by the specified object.", - ShortDescription: ` -'ipfs object links' is a plumbing command for retrieving the links from -a DAG node. It outputs to stdout, and is a base58 encoded -multihash. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(headersOptionName, "v", "Print table headers (Hash, Size, Name)."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - - path, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - rp, err := api.ResolvePath(req.Context, path) - if err != nil { - return err - } - - links, err := api.Object().Links(req.Context, rp) - if err != nil { - return err - } - - outLinks := make([]Link, len(links)) - for i, link := range links { - outLinks[i] = Link{ - Hash: enc.Encode(link.Cid), - Name: link.Name, - Size: link.Size, - } - } - - out := &Object{ - Hash: enc.Encode(rp.Cid()), - Links: outLinks, - } - - return cmds.EmitOnce(res, out) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Object) error { - tw := tabwriter.NewWriter(w, 1, 2, 1, ' ', 0) - headers, _ := req.Options[headersOptionName].(bool) - if headers { - fmt.Fprintln(tw, "Hash\tSize\tName") - } - for _, link := range out.Links { - fmt.Fprintf(tw, "%s\t%v\t%s\n", link.Hash, link.Size, link.Name) - } - tw.Flush() - - return nil - }), - }, - Type: &Object{}, -} - -// ObjectGetCmd object get command -var ObjectGetCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Get and serialize the DAG node named by .", - ShortDescription: ` -'ipfs object get' is a plumbing command for retrieving DAG nodes. -It serializes the DAG node to the format specified by the "--encoding" -flag. It outputs to stdout, and is a base58 encoded multihash. -`, - LongDescription: ` -'ipfs object get' is a plumbing command for retrieving DAG nodes. -It serializes the DAG node to the format specified by the "--encoding" -flag. It outputs to stdout, and is a base58 encoded multihash. - -This command outputs data in the following encodings: - * "protobuf" - * "json" - * "xml" -(Specified by the "--encoding" or "--enc" flag) - -The encoding of the object's data field can be specifed by using the ---data-encoding flag - -Supported values are: - * "text" (default) - * "base64" -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(encodingOptionName, "Encoding type of the data field, either \"text\" or \"base64\".").WithDefault("text"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - - path, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - datafieldenc, _ := req.Options[encodingOptionName].(string) - if err != nil { - return err - } - - nd, err := api.Object().Get(req.Context, path) - if err != nil { - return err - } - - r, err := api.Object().Data(req.Context, path) - if err != nil { - return err - } - - data, err := ioutil.ReadAll(r) - if err != nil { - return err - } - - out, err := encodeData(data, datafieldenc) - if err != nil { - return err - } - - node := &Node{ - Links: make([]Link, len(nd.Links())), - Data: out, - } - - for i, link := range nd.Links() { - node.Links[i] = Link{ - Hash: enc.Encode(link.Cid), - Name: link.Name, - Size: link.Size, - } - } - - return cmds.EmitOnce(res, node) - }, - Type: Node{}, - Encoders: cmds.EncoderMap{ - cmds.Protobuf: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Node) error { - // deserialize the Data field as text as this was the standard behaviour - object, err := deserializeNode(out, "text") - if err != nil { - return nil - } - - marshaled, err := object.Marshal() - if err != nil { - return err - } - fmt.Fprint(w, marshaled) - - return nil - }), - }, -} - -// ObjectStatCmd object stat command -var ObjectStatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Get stats for the DAG node named by .", - ShortDescription: ` -'ipfs object stat' is a plumbing command to print DAG node statistics. - is a base58 encoded multihash. It outputs to stdout: - - NumLinks int number of links in link table - BlockSize int size of the raw, encoded data - LinksSize int size of the links segment - DataSize int size of the data segment - CumulativeSize int cumulative size of object and its references -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - - path, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - ns, err := api.Object().Stat(req.Context, path) - if err != nil { - return err - } - - oldStat := &ipld.NodeStat{ - Hash: enc.Encode(ns.Cid), - NumLinks: ns.NumLinks, - BlockSize: ns.BlockSize, - LinksSize: ns.LinksSize, - DataSize: ns.DataSize, - CumulativeSize: ns.CumulativeSize, - } - - return cmds.EmitOnce(res, oldStat) - }, - Type: ipld.NodeStat{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *ipld.NodeStat) error { - fw := func(s string, n int) { - fmt.Fprintf(w, "%s: %d\n", s, n) - } - fw("NumLinks", out.NumLinks) - fw("BlockSize", out.BlockSize) - fw("LinksSize", out.LinksSize) - fw("DataSize", out.DataSize) - fw("CumulativeSize", out.CumulativeSize) - - return nil - }), - }, -} - -// ObjectPutCmd object put command -var ObjectPutCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Store input as a DAG object, print its key.", - ShortDescription: ` -'ipfs object put' is a plumbing command for storing DAG nodes. -It reads from stdin, and the output is a base58 encoded multihash. -`, - LongDescription: ` -'ipfs object put' is a plumbing command for storing DAG nodes. -It reads from stdin, and the output is a base58 encoded multihash. - -Data should be in the format specified by the --inputenc flag. ---inputenc may be one of the following: - * "protobuf" - * "json" (default) - -Examples: - - $ echo '{ "Data": "abc" }' | ipfs object put - -This creates a node with the data 'abc' and no links. For an object with -links, create a file named 'node.json' with the contents: - - { - "Data": "another", - "Links": [ { - "Name": "some link", - "Hash": "QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V", - "Size": 8 - } ] - } - -And then run: - - $ ipfs object put node.json -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("data", true, false, "Data to be stored as a DAG object.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(inputencOptionName, "Encoding type of input data. One of: {\"protobuf\", \"json\"}.").WithDefault("json"), - cmdkit.StringOption(datafieldencOptionName, "Encoding type of the data field, either \"text\" or \"base64\".").WithDefault("text"), - cmdkit.BoolOption(pinOptionName, "Pin this object when adding."), - cmdkit.BoolOption(quietOptionName, "q", "Write minimal output."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - - file, err := cmdenv.GetFileArg(req.Files.Entries()) - if err != nil { - return err - } - - inputenc, _ := req.Options[inputencOptionName].(string) - if err != nil { - return err - } - - datafieldenc, _ := req.Options[datafieldencOptionName].(string) - if err != nil { - return err - } - - dopin, _ := req.Options[pinOptionName].(bool) - if err != nil { - return err - } - - p, err := api.Object().Put(req.Context, file, - options.Object.DataType(datafieldenc), - options.Object.InputEnc(inputenc), - options.Object.Pin(dopin)) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &Object{Hash: enc.Encode(p.Cid())}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Object) error { - quiet, _ := req.Options[quietOptionName].(bool) - - o := out.Hash - if !quiet { - o = "added " + o - } - - fmt.Fprintln(w, o) - - return nil - }), - }, - Type: Object{}, -} - -// ObjectNewCmd object new command -var ObjectNewCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Create a new object from an ipfs template.", - ShortDescription: ` -'ipfs object new' is a plumbing command for creating new DAG nodes. -`, - LongDescription: ` -'ipfs object new' is a plumbing command for creating new DAG nodes. -By default it creates and returns a new empty merkledag node, but -you may pass an optional template argument to create a preformatted -node. - -Available templates: - * unixfs-dir -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("template", false, false, "Template to use. Optional."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - enc, err := cmdenv.GetLowLevelCidEncoder(req) - if err != nil { - return err - } - - template := "empty" - if len(req.Arguments) == 1 { - template = req.Arguments[0] - } - - nd, err := api.Object().New(req.Context, options.Object.Type(template)) - if err != nil && err != io.EOF { - return err - } - - return cmds.EmitOnce(res, &Object{Hash: enc.Encode(nd.Cid())}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Object) error { - fmt.Fprintln(w, out.Hash) - return nil - }), - }, - Type: Object{}, -} - -// converts the Node object into a real dag.ProtoNode -func deserializeNode(nd *Node, dataFieldEncoding string) (*dag.ProtoNode, error) { - dagnode := new(dag.ProtoNode) - switch dataFieldEncoding { - case "text": - dagnode.SetData([]byte(nd.Data)) - case "base64": - data, err := base64.StdEncoding.DecodeString(nd.Data) - if err != nil { - return nil, err - } - dagnode.SetData(data) - default: - return nil, ErrDataEncoding - } - - links := make([]*ipld.Link, len(nd.Links)) - for i, link := range nd.Links { - c, err := cid.Decode(link.Hash) - if err != nil { - return nil, err - } - links[i] = &ipld.Link{ - Name: link.Name, - Size: link.Size, - Cid: c, - } - } - dagnode.SetLinks(links) - - return dagnode, nil -} - -func encodeData(data []byte, encoding string) (string, error) { - switch encoding { - case "text": - return string(data), nil - case "base64": - return base64.StdEncoding.EncodeToString(data), nil - } - - return "", ErrDataEncoding -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/object/patch.go b/vendor/github.com/ipfs/go-ipfs/core/commands/object/patch.go deleted file mode 100644 index 87efe6fa..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/object/patch.go +++ /dev/null @@ -1,236 +0,0 @@ -package objectcmd - -import ( - "fmt" - "io" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var ObjectPatchCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Create a new merkledag object based on an existing one.", - ShortDescription: ` -'ipfs object patch ' is a plumbing command used to -build custom DAG objects. It mutates objects, creating new objects as a -result. This is the Merkle-DAG version of modifying an object. -`, - }, - Arguments: []cmdkit.Argument{}, - Subcommands: map[string]*cmds.Command{ - "append-data": patchAppendDataCmd, - "add-link": patchAddLinkCmd, - "rm-link": patchRmLinkCmd, - "set-data": patchSetDataCmd, - }, -} - -var patchAppendDataCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Append data to the data segment of a dag node.", - ShortDescription: ` -Append data to what already exists in the data segment in the given object. - -Example: - - $ echo "hello" | ipfs object patch $HASH append-data - -NOTE: This does not append data to a file - it modifies the actual raw -data within an object. Objects have a max size of 1MB and objects larger than -the limit will not be respected by the network. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("root", true, false, "The hash of the node to modify."), - cmdkit.FileArg("data", true, false, "Data to append.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - root, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - file, err := cmdenv.GetFileArg(req.Files.Entries()) - if err != nil { - return err - } - - p, err := api.Object().AppendData(req.Context, root, file) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &Object{Hash: p.Cid().String()}) - }, - Type: &Object{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, obj *Object) error { - _, err := fmt.Fprintln(w, obj.Hash) - return err - }), - }, -} - -var patchSetDataCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Set the data field of an IPFS object.", - ShortDescription: ` -Set the data of an IPFS object from stdin or with the contents of a file. - -Example: - - $ echo "my data" | ipfs object patch $MYHASH set-data -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("root", true, false, "The hash of the node to modify."), - cmdkit.FileArg("data", true, false, "The data to set the object to.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - root, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - file, err := cmdenv.GetFileArg(req.Files.Entries()) - if err != nil { - return err - } - - p, err := api.Object().SetData(req.Context, root, file) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &Object{Hash: p.Cid().String()}) - }, - Type: Object{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Object) error { - fmt.Fprintln(w, out.Hash) - return nil - }), - }, -} - -var patchRmLinkCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove a link from a given object.", - ShortDescription: ` -Remove a Merkle-link from the given object and return the hash of the result. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("root", true, false, "The hash of the node to modify."), - cmdkit.StringArg("name", true, false, "Name of the link to remove."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - root, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - name := req.Arguments[1] - p, err := api.Object().RmLink(req.Context, root, name) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &Object{Hash: p.Cid().String()}) - }, - Type: Object{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Object) error { - fmt.Fprintln(w, out.Hash) - return nil - }), - }, -} - -const ( - createOptionName = "create" -) - -var patchAddLinkCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add a link to a given object.", - ShortDescription: ` -Add a Merkle-link to the given object and return the hash of the result. - -Example: - - $ EMPTY_DIR=$(ipfs object new unixfs-dir) - $ BAR=$(echo "bar" | ipfs add -q) - $ ipfs object patch $EMPTY_DIR add-link foo $BAR - -This takes an empty directory, and adds a link named 'foo' under it, pointing -to a file containing 'bar', and returns the hash of the new object. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("root", true, false, "The hash of the node to modify."), - cmdkit.StringArg("name", true, false, "Name of link to create."), - cmdkit.StringArg("ref", true, false, "IPFS object to add link to."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(createOptionName, "p", "Create intermediary nodes."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - root, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - name := req.Arguments[1] - - child, err := coreiface.ParsePath(req.Arguments[2]) - if err != nil { - return err - } - - create, _ := req.Options[createOptionName].(bool) - if err != nil { - return err - } - - p, err := api.Object().AddLink(req.Context, root, name, child, - options.Object.Create(create)) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &Object{Hash: p.Cid().String()}) - }, - Type: Object{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Object) error { - fmt.Fprintln(w, out.Hash) - return nil - }), - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/p2p.go b/vendor/github.com/ipfs/go-ipfs/core/commands/p2p.go deleted file mode 100644 index a24b87bb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/p2p.go +++ /dev/null @@ -1,543 +0,0 @@ -package commands - -import ( - "context" - "errors" - "fmt" - "io" - "strconv" - "strings" - "text/tabwriter" - "time" - - core "github.com/ipfs/go-ipfs/core" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - p2p "github.com/ipfs/go-ipfs/p2p" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - madns "gx/ipfs/QmU98UaAEh4WJAcir2qjfztU77JQ14kAwHNFkjUXHZA3Vy/go-multiaddr-dns" - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - ipfsaddr "gx/ipfs/Qmdf1djucJ1jX5RMF1bDbFg5ybZnupmSAeETQQ3ZV7z6dU/go-ipfs-addr" -) - -// P2PProtoPrefix is the default required prefix for protocol names -const P2PProtoPrefix = "/x/" - -// P2PListenerInfoOutput is output type of ls command -type P2PListenerInfoOutput struct { - Protocol string - ListenAddress string - TargetAddress string -} - -// P2PStreamInfoOutput is output type of streams command -type P2PStreamInfoOutput struct { - HandlerID string - Protocol string - OriginAddress string - TargetAddress string -} - -// P2PLsOutput is output type of ls command -type P2PLsOutput struct { - Listeners []P2PListenerInfoOutput -} - -// P2PStreamsOutput is output type of streams command -type P2PStreamsOutput struct { - Streams []P2PStreamInfoOutput -} - -const ( - allowCustomProtocolOptionName = "allow-custom-protocol" - reportPeerIDOptionName = "report-peer-id" -) - -var resolveTimeout = 10 * time.Second - -// P2PCmd is the 'ipfs p2p' command -var P2PCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Libp2p stream mounting.", - ShortDescription: ` -Create and use tunnels to remote peers over libp2p - -Note: this command is experimental and subject to change as usecases and APIs -are refined`, - }, - - Subcommands: map[string]*cmds.Command{ - "stream": p2pStreamCmd, - "forward": p2pForwardCmd, - "listen": p2pListenCmd, - "close": p2pCloseCmd, - "ls": p2pLsCmd, - }, -} - -var p2pForwardCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Forward connections to libp2p service", - ShortDescription: ` -Forward connections made to to . - - specifies the libp2p protocol name to use for libp2p -connections and/or handlers. It must be prefixed with '` + P2PProtoPrefix + `'. - -Example: - ipfs p2p forward ` + P2PProtoPrefix + `myproto /ip4/127.0.0.1/tcp/4567 /ipfs/QmPeer - - Forward connections to 127.0.0.1:4567 to '` + P2PProtoPrefix + `myproto' service on /ipfs/QmPeer - -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("protocol", true, false, "Protocol name."), - cmdkit.StringArg("listen-address", true, false, "Listening endpoint."), - cmdkit.StringArg("target-address", true, false, "Target endpoint."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(allowCustomProtocolOptionName, "Don't require /x/ prefix"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := p2pGetNode(env) - if err != nil { - return err - } - - protoOpt := req.Arguments[0] - listenOpt := req.Arguments[1] - targetOpt := req.Arguments[2] - - proto := protocol.ID(protoOpt) - - listen, err := ma.NewMultiaddr(listenOpt) - if err != nil { - return err - } - - targets, err := parseIpfsAddr(targetOpt) - if err != nil { - return err - } - - allowCustom, _ := req.Options[allowCustomProtocolOptionName].(bool) - - if !allowCustom && !strings.HasPrefix(string(proto), P2PProtoPrefix) { - return errors.New("protocol name must be within '" + P2PProtoPrefix + "' namespace") - } - - return forwardLocal(n.Context(), n.P2P, n.Peerstore, proto, listen, targets) - }, -} - -// parseIpfsAddr is a function that takes in addr string and return ipfsAddrs -func parseIpfsAddr(addr string) ([]ipfsaddr.IPFSAddr, error) { - mutiladdr, err := ma.NewMultiaddr(addr) - if err != nil { - return nil, err - } - if _, err := mutiladdr.ValueForProtocol(ma.P_IPFS); err == nil { - iaddrs := make([]ipfsaddr.IPFSAddr, 1) - iaddrs[0], err = ipfsaddr.ParseMultiaddr(mutiladdr) - if err != nil { - return nil, err - } - return iaddrs, nil - } - // resolve mutiladdr whose protocol is not ma.P_IPFS - ctx, cancel := context.WithTimeout(context.Background(), resolveTimeout) - addrs, err := madns.Resolve(ctx, mutiladdr) - cancel() - if len(addrs) == 0 { - return nil, errors.New("fail to resolve the multiaddr:" + mutiladdr.String()) - } - iaddrs := make([]ipfsaddr.IPFSAddr, len(addrs)) - for i, addr := range addrs { - iaddrs[i], err = ipfsaddr.ParseMultiaddr(addr) - if err != nil { - return nil, err - } - } - return iaddrs, nil -} - -var p2pListenCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Create libp2p service", - ShortDescription: ` -Create libp2p service and forward connections made to . - - specifies the libp2p handler name. It must be prefixed with '` + P2PProtoPrefix + `'. - -Example: - ipfs p2p listen ` + P2PProtoPrefix + `myproto /ip4/127.0.0.1/tcp/1234 - - Forward connections to 'myproto' libp2p service to 127.0.0.1:1234 - -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("protocol", true, false, "Protocol name."), - cmdkit.StringArg("target-address", true, false, "Target endpoint."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(allowCustomProtocolOptionName, "Don't require /x/ prefix"), - cmdkit.BoolOption(reportPeerIDOptionName, "r", "Send remote base58 peerid to target when a new connection is established"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := p2pGetNode(env) - if err != nil { - return err - } - - protoOpt := req.Arguments[0] - targetOpt := req.Arguments[1] - - proto := protocol.ID(protoOpt) - - target, err := ma.NewMultiaddr(targetOpt) - if err != nil { - return err - } - - // port can't be 0 - if err := checkPort(target); err != nil { - return err - } - - allowCustom, _ := req.Options[allowCustomProtocolOptionName].(bool) - reportPeerID, _ := req.Options[reportPeerIDOptionName].(bool) - - if !allowCustom && !strings.HasPrefix(string(proto), P2PProtoPrefix) { - return errors.New("protocol name must be within '" + P2PProtoPrefix + "' namespace") - } - - _, err = n.P2P.ForwardRemote(n.Context(), proto, target, reportPeerID) - return err - }, -} - -// checkPort checks whether target multiaddr contains tcp or udp protocol -// and whether the port is equal to 0 -func checkPort(target ma.Multiaddr) error { - // get tcp or udp port from multiaddr - getPort := func() (string, error) { - sport, _ := target.ValueForProtocol(ma.P_TCP) - if sport != "" { - return sport, nil - } - - sport, _ = target.ValueForProtocol(ma.P_UDP) - if sport != "" { - return sport, nil - } - return "", fmt.Errorf("address does not contain tcp or udp protocol") - } - - sport, err := getPort() - if err != nil { - return err - } - - port, err := strconv.Atoi(sport) - if err != nil { - return err - } - - if port == 0 { - return fmt.Errorf("port can not be 0") - } - - return nil -} - -// forwardLocal forwards local connections to a libp2p service -func forwardLocal(ctx context.Context, p *p2p.P2P, ps pstore.Peerstore, proto protocol.ID, bindAddr ma.Multiaddr, addrs []ipfsaddr.IPFSAddr) error { - for _, addr := range addrs { - ps.AddAddr(addr.ID(), addr.Multiaddr(), pstore.TempAddrTTL) - } - // TODO: return some info - // the length of the addrs must large than 0 - // peerIDs in addr must be the same and choose addr[0] to connect - _, err := p.ForwardLocal(ctx, addrs[0].ID(), proto, bindAddr) - return err -} - -const ( - p2pHeadersOptionName = "headers" -) - -var p2pLsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List active p2p listeners.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(p2pHeadersOptionName, "v", "Print table headers (Protocol, Listen, Target)."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := p2pGetNode(env) - if err != nil { - return err - } - - output := &P2PLsOutput{} - - n.P2P.ListenersLocal.Lock() - for _, listener := range n.P2P.ListenersLocal.Listeners { - output.Listeners = append(output.Listeners, P2PListenerInfoOutput{ - Protocol: string(listener.Protocol()), - ListenAddress: listener.ListenAddress().String(), - TargetAddress: listener.TargetAddress().String(), - }) - } - n.P2P.ListenersLocal.Unlock() - - n.P2P.ListenersP2P.Lock() - for _, listener := range n.P2P.ListenersP2P.Listeners { - output.Listeners = append(output.Listeners, P2PListenerInfoOutput{ - Protocol: string(listener.Protocol()), - ListenAddress: listener.ListenAddress().String(), - TargetAddress: listener.TargetAddress().String(), - }) - } - n.P2P.ListenersP2P.Unlock() - - return cmds.EmitOnce(res, output) - }, - Type: P2PLsOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *P2PLsOutput) error { - headers, _ := req.Options[p2pHeadersOptionName].(bool) - tw := tabwriter.NewWriter(w, 1, 2, 1, ' ', 0) - for _, listener := range out.Listeners { - if headers { - fmt.Fprintln(tw, "Protocol\tListen Address\tTarget Address") - } - - fmt.Fprintf(tw, "%s\t%s\t%s\n", listener.Protocol, listener.ListenAddress, listener.TargetAddress) - } - tw.Flush() - - return nil - }), - }, -} - -const ( - p2pAllOptionName = "all" - p2pProtocolOptionName = "protocol" - p2pListenAddressOptionName = "listen-address" - p2pTargetAddressOptionName = "target-address" -) - -var p2pCloseCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Stop listening for new connections to forward.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(p2pAllOptionName, "a", "Close all listeners."), - cmdkit.StringOption(p2pProtocolOptionName, "p", "Match protocol name"), - cmdkit.StringOption(p2pListenAddressOptionName, "l", "Match listen address"), - cmdkit.StringOption(p2pTargetAddressOptionName, "t", "Match target address"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := p2pGetNode(env) - if err != nil { - return err - } - - closeAll, _ := req.Options[p2pAllOptionName].(bool) - protoOpt, p := req.Options[p2pProtocolOptionName].(string) - listenOpt, l := req.Options[p2pListenAddressOptionName].(string) - targetOpt, t := req.Options[p2pTargetAddressOptionName].(string) - - proto := protocol.ID(protoOpt) - - listen, err := ma.NewMultiaddr(listenOpt) - if err != nil { - return err - } - - target, err := ma.NewMultiaddr(targetOpt) - if err != nil { - return err - } - - if !(closeAll || p || l || t) { - return errors.New("no matching options given") - } - - if closeAll && (p || l || t) { - return errors.New("can't combine --all with other matching options") - } - - match := func(listener p2p.Listener) bool { - if closeAll { - return true - } - if p && proto != listener.Protocol() { - return false - } - if l && !listen.Equal(listener.ListenAddress()) { - return false - } - if t && !target.Equal(listener.TargetAddress()) { - return false - } - return true - } - - done := n.P2P.ListenersLocal.Close(match) - done += n.P2P.ListenersP2P.Close(match) - - return cmds.EmitOnce(res, done) - }, - Type: int(0), - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out int) error { - fmt.Fprintf(w, "Closed %d stream(s)\n", out) - return nil - }), - }, -} - -/////// -// Stream -// - -// p2pStreamCmd is the 'ipfs p2p stream' command -var p2pStreamCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "P2P stream management.", - ShortDescription: "Create and manage p2p streams", - }, - - Subcommands: map[string]*cmds.Command{ - "ls": p2pStreamLsCmd, - "close": p2pStreamCloseCmd, - }, -} - -var p2pStreamLsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List active p2p streams.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(p2pHeadersOptionName, "v", "Print table headers (ID, Protocol, Local, Remote)."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := p2pGetNode(env) - if err != nil { - return err - } - - output := &P2PStreamsOutput{} - - n.P2P.Streams.Lock() - for id, s := range n.P2P.Streams.Streams { - output.Streams = append(output.Streams, P2PStreamInfoOutput{ - HandlerID: strconv.FormatUint(id, 10), - - Protocol: string(s.Protocol), - - OriginAddress: s.OriginAddr.String(), - TargetAddress: s.TargetAddr.String(), - }) - } - n.P2P.Streams.Unlock() - - return cmds.EmitOnce(res, output) - }, - Type: P2PStreamsOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *P2PStreamsOutput) error { - headers, _ := req.Options[p2pHeadersOptionName].(bool) - tw := tabwriter.NewWriter(w, 1, 2, 1, ' ', 0) - for _, stream := range out.Streams { - if headers { - fmt.Fprintln(tw, "ID\tProtocol\tOrigin\tTarget") - } - - fmt.Fprintf(tw, "%s\t%s\t%s\t%s\n", stream.HandlerID, stream.Protocol, stream.OriginAddress, stream.TargetAddress) - } - tw.Flush() - - return nil - }), - }, -} - -var p2pStreamCloseCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Close active p2p stream.", - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("id", false, false, "Stream identifier"), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(p2pAllOptionName, "a", "Close all streams."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := p2pGetNode(env) - if err != nil { - return err - } - - closeAll, _ := req.Options[p2pAllOptionName].(bool) - var handlerID uint64 - - if !closeAll { - if len(req.Arguments) == 0 { - return errors.New("no id specified") - } - - handlerID, err = strconv.ParseUint(req.Arguments[0], 10, 64) - if err != nil { - return err - } - } - - toClose := make([]*p2p.Stream, 0, 1) - n.P2P.Streams.Lock() - for id, stream := range n.P2P.Streams.Streams { - if !closeAll && handlerID != id { - continue - } - toClose = append(toClose, stream) - if !closeAll { - break - } - } - n.P2P.Streams.Unlock() - - for _, s := range toClose { - n.P2P.Streams.Reset(s) - } - - return nil - }, -} - -func p2pGetNode(env cmds.Environment) (*core.IpfsNode, error) { - nd, err := cmdenv.GetNode(env) - if err != nil { - return nil, err - } - - config, err := nd.Repo.Config() - if err != nil { - return nil, err - } - - if !config.Experimental.Libp2pStreamMounting { - return nil, errors.New("libp2p stream mounting not enabled") - } - - if !nd.OnlineMode() { - return nil, ErrNotOnline - } - - return nd, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/pin.go b/vendor/github.com/ipfs/go-ipfs/core/commands/pin.go deleted file mode 100644 index fae1a830..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/pin.go +++ /dev/null @@ -1,679 +0,0 @@ -package commands - -import ( - "context" - "fmt" - "io" - "os" - "time" - - core "github.com/ipfs/go-ipfs/core" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - e "github.com/ipfs/go-ipfs/core/commands/e" - pin "github.com/ipfs/go-ipfs/pin" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" - verifcid "gx/ipfs/QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa/go-verifcid" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -var PinCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Pin (and unpin) objects to local storage.", - }, - - Subcommands: map[string]*cmds.Command{ - "add": addPinCmd, - "rm": rmPinCmd, - "ls": listPinCmd, - "verify": verifyPinCmd, - "update": updatePinCmd, - }, -} - -type PinOutput struct { - Pins []string -} - -type AddPinOutput struct { - Pins []string - Progress int `json:",omitempty"` -} - -const ( - pinRecursiveOptionName = "recursive" - pinProgressOptionName = "progress" -) - -var addPinCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Pin objects to local storage.", - ShortDescription: "Stores an IPFS object(s) from a given path locally to disk.", - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, true, "Path to object(s) to be pinned.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(pinRecursiveOptionName, "r", "Recursively pin the object linked to by the specified object(s).").WithDefault(true), - cmdkit.BoolOption(pinProgressOptionName, "Show progress"), - }, - Type: AddPinOutput{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - // set recursive flag - recursive, _ := req.Options[pinRecursiveOptionName].(bool) - showProgress, _ := req.Options[pinProgressOptionName].(bool) - - if err := req.ParseBodyArgs(); err != nil { - return err - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - if !showProgress { - added, err := pinAddMany(req.Context, api, enc, req.Arguments, recursive) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &AddPinOutput{Pins: added}) - } - - v := new(dag.ProgressTracker) - ctx := v.DeriveContext(req.Context) - - type pinResult struct { - pins []string - err error - } - - ch := make(chan pinResult, 1) - go func() { - added, err := pinAddMany(ctx, api, enc, req.Arguments, recursive) - ch <- pinResult{pins: added, err: err} - }() - - ticker := time.NewTicker(500 * time.Millisecond) - defer ticker.Stop() - - for { - select { - case val := <-ch: - if val.err != nil { - return val.err - } - - if pv := v.Value(); pv != 0 { - if err := res.Emit(&AddPinOutput{Progress: v.Value()}); err != nil { - return err - } - } - return res.Emit(&AddPinOutput{Pins: val.pins}) - case <-ticker.C: - if err := res.Emit(&AddPinOutput{Progress: v.Value()}); err != nil { - return err - } - case <-ctx.Done(): - log.Error(ctx.Err()) - return ctx.Err() - } - } - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *AddPinOutput) error { - rec, found := req.Options["recursive"].(bool) - var pintype string - if rec || !found { - pintype = "recursively" - } else { - pintype = "directly" - } - - for _, k := range out.Pins { - fmt.Fprintf(w, "pinned %s %s\n", k, pintype) - } - - return nil - }), - }, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - return nil - } - return err - } - - out, ok := v.(*AddPinOutput) - if !ok { - return e.TypeErr(out, v) - } - if out.Pins == nil { - // this can only happen if the progress option is set - fmt.Fprintf(os.Stderr, "Fetched/Processed %d nodes\r", out.Progress) - } else { - err = re.Emit(out) - if err != nil { - return err - } - } - } - }, - }, -} - -func pinAddMany(ctx context.Context, api coreiface.CoreAPI, enc cidenc.Encoder, paths []string, recursive bool) ([]string, error) { - added := make([]string, len(paths)) - for i, b := range paths { - p, err := coreiface.ParsePath(b) - if err != nil { - return nil, err - } - - rp, err := api.ResolvePath(ctx, p) - if err != nil { - return nil, err - } - - if err := api.Pin().Add(ctx, rp, options.Pin.Recursive(recursive)); err != nil { - return nil, err - } - added[i] = enc.Encode(rp.Cid()) - } - - return added, nil -} - -var rmPinCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove pinned objects from local storage.", - ShortDescription: ` -Removes the pin from the given object allowing it to be garbage -collected if needed. (By default, recursively. Use -r=false for direct pins.) -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, true, "Path to object(s) to be unpinned.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(pinRecursiveOptionName, "r", "Recursively unpin the object linked to by the specified object(s).").WithDefault(true), - }, - Type: PinOutput{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - // set recursive flag - recursive, _ := req.Options[pinRecursiveOptionName].(bool) - - if err := req.ParseBodyArgs(); err != nil { - return err - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - pins := make([]string, 0, len(req.Arguments)) - for _, b := range req.Arguments { - p, err := coreiface.ParsePath(b) - if err != nil { - return err - } - - rp, err := api.ResolvePath(req.Context, p) - if err != nil { - return err - } - - id := enc.Encode(rp.Cid()) - pins = append(pins, id) - if err := api.Pin().Rm(req.Context, rp, options.Pin.RmRecursive(recursive)); err != nil { - return err - } - } - - return cmds.EmitOnce(res, &PinOutput{pins}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *PinOutput) error { - for _, k := range out.Pins { - fmt.Fprintf(w, "unpinned %s\n", k) - } - - return nil - }), - }, -} - -const ( - pinTypeOptionName = "type" - pinQuietOptionName = "quiet" -) - -var listPinCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List objects pinned to local storage.", - ShortDescription: ` -Returns a list of objects that are pinned locally. -By default, all pinned objects are returned, but the '--type' flag or -arguments can restrict that to a specific pin type or to some specific objects -respectively. -`, - LongDescription: ` -Returns a list of objects that are pinned locally. -By default, all pinned objects are returned, but the '--type' flag or -arguments can restrict that to a specific pin type or to some specific objects -respectively. - -Use --type= to specify the type of pinned keys to list. -Valid values are: - * "direct": pin that specific object. - * "recursive": pin that specific object, and indirectly pin all its - descendants - * "indirect": pinned indirectly by an ancestor (like a refcount) - * "all" - -With arguments, the command fails if any of the arguments is not a pinned -object. And if --type= is additionally used, the command will also fail -if any of the arguments is not of the specified type. - -Example: - $ echo "hello" | ipfs add -q - QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN - $ ipfs pin ls - QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN recursive - # now remove the pin, and repin it directly - $ ipfs pin rm QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN - unpinned QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN - $ ipfs pin add -r=false QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN - pinned QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN directly - $ ipfs pin ls --type=direct - QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN direct - $ ipfs pin ls QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN - QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN direct -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", false, true, "Path to object(s) to be listed."), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(pinTypeOptionName, "t", "The type of pinned keys to list. Can be \"direct\", \"indirect\", \"recursive\", or \"all\".").WithDefault("all"), - cmdkit.BoolOption(pinQuietOptionName, "q", "Write just hashes of objects."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - typeStr, _ := req.Options[pinTypeOptionName].(string) - if err != nil { - return err - } - - switch typeStr { - case "all", "direct", "indirect", "recursive": - default: - err = fmt.Errorf("invalid type '%s', must be one of {direct, indirect, recursive, all}", typeStr) - return err - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - var keys map[cid.Cid]RefKeyObject - if len(req.Arguments) > 0 { - keys, err = pinLsKeys(req.Context, req.Arguments, typeStr, n, api) - } else { - keys, err = pinLsAll(req.Context, typeStr, n) - } - if err != nil { - return err - } - - refKeys := make(map[string]RefKeyObject, len(keys)) - for k, v := range keys { - refKeys[enc.Encode(k)] = v - } - - return cmds.EmitOnce(res, &RefKeyList{Keys: refKeys}) - }, - Type: RefKeyList{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RefKeyList) error { - quiet, _ := req.Options[pinQuietOptionName].(bool) - - for k, v := range out.Keys { - if quiet { - fmt.Fprintf(w, "%s\n", k) - } else { - fmt.Fprintf(w, "%s %s\n", k, v.Type) - } - } - - return nil - }), - }, -} - -const ( - pinUnpinOptionName = "unpin" -) - -var updatePinCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Update a recursive pin", - ShortDescription: ` -Updates one pin to another, making sure that all objects in the new pin are -local. Then removes the old pin. This is an optimized version of adding the -new pin and removing the old one. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("from-path", true, false, "Path to old object."), - cmdkit.StringArg("to-path", true, false, "Path to new object to be pinned."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(pinUnpinOptionName, "Remove the old pin.").WithDefault(true), - }, - Type: PinOutput{}, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - unpin, _ := req.Options[pinUnpinOptionName].(bool) - - from, err := coreiface.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - to, err := coreiface.ParsePath(req.Arguments[1]) - if err != nil { - return err - } - - err = api.Pin().Update(req.Context, from, to, options.Pin.Unpin(unpin)) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &PinOutput{Pins: []string{from.String(), to.String()}}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *PinOutput) error { - fmt.Fprintf(w, "updated %s to %s\n", out.Pins[0], out.Pins[1]) - return nil - }), - }, -} - -const ( - pinVerboseOptionName = "verbose" -) - -var verifyPinCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Verify that recursive pins are complete.", - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(pinVerboseOptionName, "Also write the hashes of non-broken pins."), - cmdkit.BoolOption(pinQuietOptionName, "q", "Write just hashes of broken pins."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - verbose, _ := req.Options[pinVerboseOptionName].(bool) - quiet, _ := req.Options[pinQuietOptionName].(bool) - - if verbose && quiet { - return fmt.Errorf("the --verbose and --quiet options can not be used at the same time") - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - opts := pinVerifyOpts{ - explain: !quiet, - includeOk: verbose, - } - out := pinVerify(req.Context, n, opts, enc) - - return res.Emit(out) - }, - Type: PinVerifyRes{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *PinVerifyRes) error { - quiet, _ := req.Options[pinQuietOptionName].(bool) - - if quiet && !out.Ok { - fmt.Fprintf(w, "%s\n", out.Cid) - } else if !quiet { - out.Format(w) - } - - return nil - }), - }, -} - -type RefKeyObject struct { - Type string -} - -type RefKeyList struct { - Keys map[string]RefKeyObject -} - -func pinLsKeys(ctx context.Context, args []string, typeStr string, n *core.IpfsNode, api coreiface.CoreAPI) (map[cid.Cid]RefKeyObject, error) { - - mode, ok := pin.StringToMode(typeStr) - if !ok { - return nil, fmt.Errorf("invalid pin mode '%s'", typeStr) - } - - keys := make(map[cid.Cid]RefKeyObject) - - for _, p := range args { - pth, err := coreiface.ParsePath(p) - if err != nil { - return nil, err - } - - c, err := api.ResolvePath(ctx, pth) - if err != nil { - return nil, err - } - - pinType, pinned, err := n.Pinning.IsPinnedWithType(c.Cid(), mode) - if err != nil { - return nil, err - } - - if !pinned { - return nil, fmt.Errorf("path '%s' is not pinned", p) - } - - switch pinType { - case "direct", "indirect", "recursive", "internal": - default: - pinType = "indirect through " + pinType - } - keys[c.Cid()] = RefKeyObject{ - Type: pinType, - } - } - - return keys, nil -} - -func pinLsAll(ctx context.Context, typeStr string, n *core.IpfsNode) (map[cid.Cid]RefKeyObject, error) { - - keys := make(map[cid.Cid]RefKeyObject) - - AddToResultKeys := func(keyList []cid.Cid, typeStr string) { - for _, c := range keyList { - keys[c] = RefKeyObject{ - Type: typeStr, - } - } - } - - if typeStr == "direct" || typeStr == "all" { - AddToResultKeys(n.Pinning.DirectKeys(), "direct") - } - if typeStr == "indirect" || typeStr == "all" { - set := cid.NewSet() - for _, k := range n.Pinning.RecursiveKeys() { - err := dag.EnumerateChildren(ctx, dag.GetLinksWithDAG(n.DAG), k, set.Visit) - if err != nil { - return nil, err - } - } - AddToResultKeys(set.Keys(), "indirect") - } - if typeStr == "recursive" || typeStr == "all" { - AddToResultKeys(n.Pinning.RecursiveKeys(), "recursive") - } - - return keys, nil -} - -// PinVerifyRes is the result returned for each pin checked in "pin verify" -type PinVerifyRes struct { - Cid string - PinStatus -} - -// PinStatus is part of PinVerifyRes, do not use directly -type PinStatus struct { - Ok bool - BadNodes []BadNode `json:",omitempty"` -} - -// BadNode is used in PinVerifyRes -type BadNode struct { - Cid string - Err string -} - -type pinVerifyOpts struct { - explain bool - includeOk bool -} - -func pinVerify(ctx context.Context, n *core.IpfsNode, opts pinVerifyOpts, enc cidenc.Encoder) <-chan interface{} { - visited := make(map[cid.Cid]PinStatus) - - bs := n.Blocks.Blockstore() - DAG := dag.NewDAGService(bserv.New(bs, offline.Exchange(bs))) - getLinks := dag.GetLinksWithDAG(DAG) - recPins := n.Pinning.RecursiveKeys() - - var checkPin func(root cid.Cid) PinStatus - checkPin = func(root cid.Cid) PinStatus { - key := root - if status, ok := visited[key]; ok { - return status - } - - if err := verifcid.ValidateCid(root); err != nil { - status := PinStatus{Ok: false} - if opts.explain { - status.BadNodes = []BadNode{BadNode{Cid: enc.Encode(key), Err: err.Error()}} - } - visited[key] = status - return status - } - - links, err := getLinks(ctx, root) - if err != nil { - status := PinStatus{Ok: false} - if opts.explain { - status.BadNodes = []BadNode{BadNode{Cid: enc.Encode(key), Err: err.Error()}} - } - visited[key] = status - return status - } - - status := PinStatus{Ok: true} - for _, lnk := range links { - res := checkPin(lnk.Cid) - if !res.Ok { - status.Ok = false - status.BadNodes = append(status.BadNodes, res.BadNodes...) - } - } - - visited[key] = status - return status - } - - out := make(chan interface{}) - go func() { - defer close(out) - for _, cid := range recPins { - pinStatus := checkPin(cid) - if !pinStatus.Ok || opts.includeOk { - select { - case out <- &PinVerifyRes{enc.Encode(cid), pinStatus}: - case <-ctx.Done(): - return - } - } - } - }() - - return out -} - -// Format formats PinVerifyRes -func (r PinVerifyRes) Format(out io.Writer) { - if r.Ok { - fmt.Fprintf(out, "%s ok\n", r.Cid) - } else { - fmt.Fprintf(out, "%s broken\n", r.Cid) - for _, e := range r.BadNodes { - fmt.Fprintf(out, " %s: %s\n", e.Cid, e.Err) - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/ping.go b/vendor/github.com/ipfs/go-ipfs/core/commands/ping.go deleted file mode 100644 index 1a73fa93..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/ping.go +++ /dev/null @@ -1,173 +0,0 @@ -package commands - -import ( - "context" - "errors" - "fmt" - "io" - "strings" - "time" - - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - ping "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/protocol/ping" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - iaddr "gx/ipfs/Qmdf1djucJ1jX5RMF1bDbFg5ybZnupmSAeETQQ3ZV7z6dU/go-ipfs-addr" -) - -const kPingTimeout = 10 * time.Second - -type PingResult struct { - Success bool - Time time.Duration - Text string -} - -const ( - pingCountOptionName = "count" -) - -// ErrPingSelf is returned when the user attempts to ping themself. -var ErrPingSelf = errors.New("error: can't ping self") - -var PingCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Send echo request packets to IPFS hosts.", - ShortDescription: ` -'ipfs ping' is a tool to test sending data to other nodes. It finds nodes -via the routing system, sends pings, waits for pongs, and prints out round- -trip latency information. - `, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("peer ID", true, true, "ID of peer to be pinged.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.IntOption(pingCountOptionName, "n", "Number of ping messages to send.").WithDefault(10), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - // Must be online! - if !n.OnlineMode() { - return ErrNotOnline - } - - addr, pid, err := ParsePeerParam(req.Arguments[0]) - if err != nil { - return fmt.Errorf("failed to parse peer address '%s': %s", req.Arguments[0], err) - } - - if pid == n.Identity { - return ErrPingSelf - } - - if addr != nil { - n.Peerstore.AddAddr(pid, addr, pstore.TempAddrTTL) // temporary - } - - numPings, _ := req.Options[pingCountOptionName].(int) - if numPings <= 0 { - return fmt.Errorf("error: ping count must be greater than 0, was %d", numPings) - } - - if len(n.Peerstore.Addrs(pid)) == 0 { - // Make sure we can find the node in question - if err := res.Emit(&PingResult{ - Text: fmt.Sprintf("Looking up peer %s", pid.Pretty()), - Success: true, - }); err != nil { - return err - } - - ctx, cancel := context.WithTimeout(req.Context, kPingTimeout) - p, err := n.Routing.FindPeer(ctx, pid) - cancel() - if err != nil { - return res.Emit(&PingResult{Text: fmt.Sprintf("Peer lookup error: %s", err)}) - } - n.Peerstore.AddAddrs(p.ID, p.Addrs, pstore.TempAddrTTL) - } - - if err := res.Emit(&PingResult{ - Text: fmt.Sprintf("PING %s.", pid.Pretty()), - Success: true, - }); err != nil { - return err - } - - ctx, cancel := context.WithTimeout(req.Context, kPingTimeout*time.Duration(numPings)) - defer cancel() - pings, err := ping.Ping(ctx, n.PeerHost, pid) - if err != nil { - return res.Emit(&PingResult{ - Success: false, - Text: fmt.Sprintf("Ping error: %s", err), - }) - } - - var total time.Duration - ticker := time.NewTicker(time.Second) - defer ticker.Stop() - for i := 0; i < numPings; i++ { - t, ok := <-pings - if !ok { - break - } - - if err := res.Emit(&PingResult{ - Success: true, - Time: t, - }); err != nil { - return err - } - - total += t - - select { - case <-ticker.C: - case <-ctx.Done(): - return ctx.Err() - } - } - averagems := total.Seconds() * 1000 / float64(numPings) - return res.Emit(&PingResult{ - Success: true, - Text: fmt.Sprintf("Average latency: %.2fms", averagems), - }) - }, - Type: PingResult{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *PingResult) error { - if len(out.Text) > 0 { - fmt.Fprintln(w, out.Text) - } else if out.Success { - fmt.Fprintf(w, "Pong received: time=%.2f ms\n", out.Time.Seconds()*1000) - } else { - fmt.Fprintf(w, "Pong failed\n") - } - return nil - }), - }, -} - -func ParsePeerParam(text string) (ma.Multiaddr, peer.ID, error) { - // Multiaddr - if strings.HasPrefix(text, "/") { - a, err := iaddr.ParseString(text) - if err != nil { - return nil, "", err - } - return a.Transport(), a.ID(), nil - } - // Raw peer ID - p, err := peer.IDB58Decode(text) - return nil, p, err -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/pubsub.go b/vendor/github.com/ipfs/go-ipfs/core/commands/pubsub.go deleted file mode 100644 index 9cb7ea92..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/pubsub.go +++ /dev/null @@ -1,264 +0,0 @@ -package commands - -import ( - "context" - "encoding/binary" - "fmt" - "io" - "net/http" - "sort" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var PubsubCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "An experimental publish-subscribe system on ipfs.", - ShortDescription: ` -ipfs pubsub allows you to publish messages to a given topic, and also to -subscribe to new messages on a given topic. - -This is an experimental feature. It is not intended in its current state -to be used in a production environment. - -To use, the daemon must be run with '--enable-pubsub-experiment'. -`, - }, - Subcommands: map[string]*cmds.Command{ - "pub": PubsubPubCmd, - "sub": PubsubSubCmd, - "ls": PubsubLsCmd, - "peers": PubsubPeersCmd, - }, -} - -const ( - pubsubDiscoverOptionName = "discover" -) - -type pubsubMessage struct { - From []byte `json:"from,omitempty"` - Data []byte `json:"data,omitempty"` - Seqno []byte `json:"seqno,omitempty"` - TopicIDs []string `json:"topicIDs,omitempty"` -} - -var PubsubSubCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Subscribe to messages on a given topic.", - ShortDescription: ` -ipfs pubsub sub subscribes to messages on a given topic. - -This is an experimental feature. It is not intended in its current state -to be used in a production environment. - -To use, the daemon must be run with '--enable-pubsub-experiment'. -`, - LongDescription: ` -ipfs pubsub sub subscribes to messages on a given topic. - -This is an experimental feature. It is not intended in its current state -to be used in a production environment. - -To use, the daemon must be run with '--enable-pubsub-experiment'. - -This command outputs data in the following encodings: - * "json" -(Specified by the "--encoding" or "--enc" flag) -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("topic", true, false, "String name of topic to subscribe to."), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(pubsubDiscoverOptionName, "try to discover other peers subscribed to the same topic"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - topic := req.Arguments[0] - discover, _ := req.Options[pubsubDiscoverOptionName].(bool) - - sub, err := api.PubSub().Subscribe(req.Context, topic, options.PubSub.Discover(discover)) - if err != nil { - return err - } - defer sub.Close() - - if f, ok := res.(http.Flusher); ok { - f.Flush() - } - - for { - msg, err := sub.Next(req.Context) - if err == io.EOF || err == context.Canceled { - return nil - } else if err != nil { - return err - } - - if err := res.Emit(&pubsubMessage{ - Data: msg.Data(), - From: []byte(msg.From()), - Seqno: msg.Seq(), - TopicIDs: msg.Topics(), - }); err != nil { - return err - } - } - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, psm *pubsubMessage) error { - _, err := w.Write(psm.Data) - return err - }), - "ndpayload": cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, psm *pubsubMessage) error { - psm.Data = append(psm.Data, '\n') - _, err := w.Write(psm.Data) - return err - }), - "lenpayload": cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, psm *pubsubMessage) error { - buf := make([]byte, 8, len(psm.Data)+8) - - n := binary.PutUvarint(buf, uint64(len(psm.Data))) - buf = append(buf[:n], psm.Data...) - _, err := w.Write(buf) - return err - }), - }, - Type: pubsubMessage{}, -} - -var PubsubPubCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Publish a message to a given pubsub topic.", - ShortDescription: ` -ipfs pubsub pub publishes a message to a specified topic. - -This is an experimental feature. It is not intended in its current state -to be used in a production environment. - -To use, the daemon must be run with '--enable-pubsub-experiment'. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("topic", true, false, "Topic to publish to."), - cmdkit.StringArg("data", true, true, "Payload of message to publish.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - topic := req.Arguments[0] - - err = req.ParseBodyArgs() - if err != nil { - return err - } - - for _, data := range req.Arguments[1:] { - if err := api.PubSub().Publish(req.Context, topic, []byte(data)); err != nil { - return err - } - } - - return nil - }, -} - -var PubsubLsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List subscribed topics by name.", - ShortDescription: ` -ipfs pubsub ls lists out the names of topics you are currently subscribed to. - -This is an experimental feature. It is not intended in its current state -to be used in a production environment. - -To use, the daemon must be run with '--enable-pubsub-experiment'. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - l, err := api.PubSub().Ls(req.Context) - if err != nil { - return err - } - - return cmds.EmitOnce(res, stringList{l}) - }, - Type: stringList{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, -} - -func stringListEncoder(req *cmds.Request, w io.Writer, list *stringList) error { - for _, str := range list.Strings { - _, err := fmt.Fprintf(w, "%s\n", str) - if err != nil { - return err - } - } - return nil -} - -var PubsubPeersCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List peers we are currently pubsubbing with.", - ShortDescription: ` -ipfs pubsub peers with no arguments lists out the pubsub peers you are -currently connected to. If given a topic, it will list connected -peers who are subscribed to the named topic. - -This is an experimental feature. It is not intended in its current state -to be used in a production environment. - -To use, the daemon must be run with '--enable-pubsub-experiment'. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("topic", false, false, "topic to list connected peers of"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - var topic string - if len(req.Arguments) == 1 { - topic = req.Arguments[0] - } - - peers, err := api.PubSub().Peers(req.Context, options.PubSub.Topic(topic)) - if err != nil { - return err - } - - list := &stringList{make([]string, 0, len(peers))} - - for _, peer := range peers { - list.Strings = append(list.Strings, peer.Pretty()) - } - sort.Strings(list.Strings) - return cmds.EmitOnce(res, list) - }, - Type: stringList{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/refs.go b/vendor/github.com/ipfs/go-ipfs/core/commands/refs.go deleted file mode 100644 index b6c0428a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/refs.go +++ /dev/null @@ -1,339 +0,0 @@ -package commands - -import ( - "context" - "errors" - "fmt" - "io" - "strings" - - core "github.com/ipfs/go-ipfs/core" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -var refsEncoderMap = cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RefWrapper) error { - if out.Err != "" { - return fmt.Errorf(out.Err) - } - fmt.Fprintln(w, out.Ref) - - return nil - }), -} - -// KeyList is a general type for outputting lists of keys -type KeyList struct { - Keys []cid.Cid -} - -const ( - refsFormatOptionName = "format" - refsEdgesOptionName = "edges" - refsUniqueOptionName = "unique" - refsRecursiveOptionName = "recursive" - refsMaxDepthOptionName = "max-depth" -) - -// RefsCmd is the `ipfs refs` command -var RefsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List links (references) from an object.", - ShortDescription: ` -Lists the hashes of all the links an IPFS or IPNS object(s) contains, -with the following format: - - - -NOTE: List all references recursively by using the flag '-r'. -`, - }, - Subcommands: map[string]*cmds.Command{ - "local": RefsLocalCmd, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, true, "Path to the object(s) to list refs from.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(refsFormatOptionName, "Emit edges with given format. Available tokens: .").WithDefault(""), - cmdkit.BoolOption(refsEdgesOptionName, "e", "Emit edge format: ` -> `."), - cmdkit.BoolOption(refsUniqueOptionName, "u", "Omit duplicate refs from output."), - cmdkit.BoolOption(refsRecursiveOptionName, "r", "Recursively list links of child nodes."), - cmdkit.IntOption(refsMaxDepthOptionName, "Only for recursive refs, limits fetch and listing to the given depth").WithDefault(-1), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - err := req.ParseBodyArgs() - if err != nil { - return err - } - - ctx := req.Context - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - unique, _ := req.Options[refsUniqueOptionName].(bool) - recursive, _ := req.Options[refsRecursiveOptionName].(bool) - maxDepth, _ := req.Options[refsMaxDepthOptionName].(int) - edges, _ := req.Options[refsEdgesOptionName].(bool) - format, _ := req.Options[refsFormatOptionName].(string) - - if !recursive { - maxDepth = 1 // write only direct refs - } - - if edges { - if format != "" { - return errors.New("using format argument with edges is not allowed") - } - - format = " -> " - } - - objs, err := objectsForPaths(ctx, n, req.Arguments) - if err != nil { - return err - } - - rw := RefWriter{ - res: res, - DAG: n.DAG, - Ctx: ctx, - Unique: unique, - PrintFmt: format, - MaxDepth: maxDepth, - } - - for _, o := range objs { - if _, err := rw.WriteRefs(o, enc); err != nil { - if err := res.Emit(&RefWrapper{Err: err.Error()}); err != nil { - return err - } - } - } - - return nil - }, - Encoders: refsEncoderMap, - Type: RefWrapper{}, -} - -var RefsLocalCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List all local references.", - ShortDescription: ` -Displays the hashes of all local objects. -`, - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - ctx := req.Context - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - // todo: make async - allKeys, err := n.Blockstore.AllKeysChan(ctx) - if err != nil { - return err - } - - for k := range allKeys { - err := res.Emit(&RefWrapper{Ref: k.String()}) - if err != nil { - return err - } - } - - return nil - }, - Encoders: refsEncoderMap, - Type: RefWrapper{}, -} - -func objectsForPaths(ctx context.Context, n *core.IpfsNode, paths []string) ([]ipld.Node, error) { - objects := make([]ipld.Node, len(paths)) - for i, sp := range paths { - p, err := path.ParsePath(sp) - if err != nil { - return nil, err - } - - o, err := core.Resolve(ctx, n.Namesys, n.Resolver, p) - if err != nil { - return nil, err - } - objects[i] = o - } - return objects, nil -} - -type RefWrapper struct { - Ref string - Err string -} - -type RefWriter struct { - res cmds.ResponseEmitter - DAG ipld.DAGService - Ctx context.Context - - Unique bool - MaxDepth int - PrintFmt string - - seen map[string]int -} - -// WriteRefs writes refs of the given object to the underlying writer. -func (rw *RefWriter) WriteRefs(n ipld.Node, enc cidenc.Encoder) (int, error) { - return rw.writeRefsRecursive(n, 0, enc) -} - -func (rw *RefWriter) writeRefsRecursive(n ipld.Node, depth int, enc cidenc.Encoder) (int, error) { - nc := n.Cid() - - var count int - for i, ng := range ipld.GetDAG(rw.Ctx, rw.DAG, n) { - lc := n.Links()[i].Cid - goDeeper, shouldWrite := rw.visit(lc, depth+1) // The children are at depth+1 - - // Avoid "Get()" on the node and continue with next Link. - // We can do this if: - // - We printed it before (thus it was already seen and - // fetched with Get() - // - AND we must not go deeper. - // This is an optimization for pruned branches which have been - // visited before. - if !shouldWrite && !goDeeper { - continue - } - - // We must Get() the node because: - // - it is new (never written) - // - OR we need to go deeper. - // This ensures printed refs are always fetched. - nd, err := ng.Get(rw.Ctx) - if err != nil { - return count, err - } - - // Write this node if not done before (or !Unique) - if shouldWrite { - if err := rw.WriteEdge(nc, lc, n.Links()[i].Name, enc); err != nil { - return count, err - } - count++ - } - - // Keep going deeper. This happens: - // - On unexplored branches - // - On branches not explored deep enough - // Note when !Unique, branches are always considered - // unexplored and only depth limits apply. - if goDeeper { - c, err := rw.writeRefsRecursive(nd, depth+1, enc) - count += c - if err != nil { - return count, err - } - } - } - - return count, nil -} - -// visit returns two values: -// - the first boolean is true if we should keep traversing the DAG -// - the second boolean is true if we should print the CID -// -// visit will do branch pruning depending on rw.MaxDepth, previously visited -// cids and whether rw.Unique is set. i.e. rw.Unique = false and -// rw.MaxDepth = -1 disables any pruning. But setting rw.Unique to true will -// prune already visited branches at the cost of keeping as set of visited -// CIDs in memory. -func (rw *RefWriter) visit(c cid.Cid, depth int) (bool, bool) { - atMaxDepth := rw.MaxDepth >= 0 && depth == rw.MaxDepth - overMaxDepth := rw.MaxDepth >= 0 && depth > rw.MaxDepth - - // Shortcut when we are over max depth. In practice, this - // only applies when calling refs with --maxDepth=0, as root's - // children are already over max depth. Otherwise nothing should - // hit this. - if overMaxDepth { - return false, false - } - - // We can shortcut right away if we don't need unique output: - // - we keep traversing when not atMaxDepth - // - always print - if !rw.Unique { - return !atMaxDepth, true - } - - // Unique == true from this point. - // Thus, we keep track of seen Cids, and their depth. - if rw.seen == nil { - rw.seen = make(map[string]int) - } - key := string(c.Bytes()) - oldDepth, ok := rw.seen[key] - - // Unique == true && depth < MaxDepth (or unlimited) from this point - - // Branch pruning cases: - // - We saw the Cid before and either: - // - Depth is unlimited (MaxDepth = -1) - // - We saw it higher (smaller depth) in the DAG (means we must have - // explored deep enough before) - // Because we saw the CID, we don't print it again. - if ok && (rw.MaxDepth < 0 || oldDepth <= depth) { - return false, false - } - - // Final case, we must keep exploring the DAG from this CID - // (unless we hit the depth limit). - // We note down its depth because it was either not seen - // or is lower than last time. - // We print if it was not seen. - rw.seen[key] = depth - return !atMaxDepth, !ok -} - -// Write one edge -func (rw *RefWriter) WriteEdge(from, to cid.Cid, linkname string, enc cidenc.Encoder) error { - if rw.Ctx != nil { - select { - case <-rw.Ctx.Done(): // just in case. - return rw.Ctx.Err() - default: - } - } - - var s string - switch { - case rw.PrintFmt != "": - s = rw.PrintFmt - s = strings.Replace(s, "", enc.Encode(from), -1) - s = strings.Replace(s, "", enc.Encode(to), -1) - s = strings.Replace(s, "", linkname, -1) - default: - s += enc.Encode(to) - } - - return rw.res.Emit(&RefWrapper{Ref: s}) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/repo.go b/vendor/github.com/ipfs/go-ipfs/core/commands/repo.go deleted file mode 100644 index 5f12ec51..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/repo.go +++ /dev/null @@ -1,405 +0,0 @@ -package commands - -import ( - "context" - "errors" - "fmt" - "io" - "os" - "path/filepath" - "runtime" - "strings" - "sync" - "text/tabwriter" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - corerepo "github.com/ipfs/go-ipfs/core/corerepo" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type RepoVersion struct { - Version string -} - -var RepoCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Manipulate the IPFS repo.", - ShortDescription: ` -'ipfs repo' is a plumbing command used to manipulate the repo. -`, - }, - - Subcommands: map[string]*cmds.Command{ - "stat": repoStatCmd, - "gc": repoGcCmd, - "fsck": repoFsckCmd, - "version": repoVersionCmd, - "verify": repoVerifyCmd, - }, -} - -// GcResult is the result returned by "repo gc" command. -type GcResult struct { - Key cid.Cid - Error string `json:",omitempty"` -} - -const ( - repoStreamErrorsOptionName = "stream-errors" - repoQuietOptionName = "quiet" -) - -var repoGcCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Perform a garbage collection sweep on the repo.", - ShortDescription: ` -'ipfs repo gc' is a plumbing command that will sweep the local -set of stored objects and remove ones that are not pinned in -order to reclaim hard disk space. -`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(repoStreamErrorsOptionName, "Stream errors."), - cmdkit.BoolOption(repoQuietOptionName, "q", "Write minimal output."), - }, - Run: func(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - streamErrors, _ := req.Options[repoStreamErrorsOptionName].(bool) - - gcOutChan := corerepo.GarbageCollectAsync(n, req.Context) - - if streamErrors { - errs := false - for res := range gcOutChan { - if res.Error != nil { - if err := re.Emit(&GcResult{Error: res.Error.Error()}); err != nil { - return err - } - errs = true - } else { - if err := re.Emit(&GcResult{Key: res.KeyRemoved}); err != nil { - return err - } - } - } - if errs { - return errors.New("encountered errors during gc run") - } - } else { - err := corerepo.CollectResult(req.Context, gcOutChan, func(k cid.Cid) { - re.Emit(&GcResult{Key: k}) - }) - if err != nil { - return err - } - } - - return nil - }, - Type: GcResult{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, gcr *GcResult) error { - quiet, _ := req.Options[repoQuietOptionName].(bool) - - if gcr.Error != "" { - _, err := fmt.Fprintf(w, "Error: %s\n", gcr.Error) - return err - } - - prefix := "removed " - if quiet { - prefix = "" - } - - _, err := fmt.Fprintf(w, "%s%s\n", prefix, gcr.Key) - return err - }), - }, -} - -const ( - repoSizeOnlyOptionName = "size-only" - repoHumanOptionName = "human" -) - -var repoStatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Get stats for the currently used repo.", - ShortDescription: ` -'ipfs repo stat' provides information about the local set of -stored objects. It outputs: - -RepoSize int Size in bytes that the repo is currently taking. -StorageMax string Maximum datastore size (from configuration) -NumObjects int Number of objects in the local repo. -RepoPath string The path to the repo being currently used. -Version string The repo version. -`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(repoSizeOnlyOptionName, "Only report RepoSize and StorageMax."), - cmdkit.BoolOption(repoHumanOptionName, "Output sizes in MiB."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - sizeOnly, _ := req.Options[repoSizeOnlyOptionName].(bool) - if sizeOnly { - sizeStat, err := corerepo.RepoSize(req.Context, n) - if err != nil { - return err - } - cmds.EmitOnce(res, &corerepo.Stat{ - SizeStat: sizeStat, - }) - return nil - } - - stat, err := corerepo.RepoStat(req.Context, n) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &stat) - }, - Type: &corerepo.Stat{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, stat *corerepo.Stat) error { - wtr := tabwriter.NewWriter(w, 0, 0, 1, ' ', 0) - defer wtr.Flush() - - human, _ := req.Options[repoHumanOptionName].(bool) - sizeOnly, _ := req.Options[repoSizeOnlyOptionName].(bool) - - printSize := func(name string, size uint64) { - sizeInMiB := size / (1024 * 1024) - if human && sizeInMiB > 0 { - fmt.Fprintf(wtr, "%s (MiB):\t%d\n", name, sizeInMiB) - } else { - fmt.Fprintf(wtr, "%s:\t%d\n", name, size) - } - } - - if !sizeOnly { - fmt.Fprintf(wtr, "NumObjects:\t%d\n", stat.NumObjects) - } - - printSize("RepoSize", stat.RepoSize) - printSize("StorageMax", stat.StorageMax) - - if !sizeOnly { - fmt.Fprintf(wtr, "RepoPath:\t%s\n", stat.RepoPath) - fmt.Fprintf(wtr, "Version:\t%s\n", stat.Version) - } - - return nil - }), - }, -} - -var repoFsckCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove repo lockfiles.", - ShortDescription: ` -'ipfs repo fsck' is a plumbing command that will remove repo and level db -lockfiles, as well as the api file. This command can only run when no ipfs -daemons are running. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - configRoot, err := cmdenv.GetConfigRoot(env) - if err != nil { - return err - } - - dsPath, err := config.DataStorePath(configRoot) - if err != nil { - return err - } - - dsLockFile := filepath.Join(dsPath, "LOCK") // TODO: get this lockfile programmatically - repoLockFile := filepath.Join(configRoot, fsrepo.LockFile) - apiFile := filepath.Join(configRoot, "api") // TODO: get this programmatically - - log.Infof("Removing repo lockfile: %s", repoLockFile) - log.Infof("Removing datastore lockfile: %s", dsLockFile) - log.Infof("Removing api file: %s", apiFile) - - err = os.Remove(repoLockFile) - if err != nil && !os.IsNotExist(err) { - return err - } - err = os.Remove(dsLockFile) - if err != nil && !os.IsNotExist(err) { - return err - } - err = os.Remove(apiFile) - if err != nil && !os.IsNotExist(err) { - return err - } - - return cmds.EmitOnce(res, &MessageOutput{"Lockfiles have been removed.\n"}) - }, - Type: MessageOutput{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *MessageOutput) error { - fmt.Fprintf(w, out.Message) - return nil - }), - }, -} - -type VerifyProgress struct { - Msg string - Progress int -} - -func verifyWorkerRun(ctx context.Context, wg *sync.WaitGroup, keys <-chan cid.Cid, results chan<- string, bs bstore.Blockstore) { - defer wg.Done() - - for k := range keys { - _, err := bs.Get(k) - if err != nil { - select { - case results <- fmt.Sprintf("block %s was corrupt (%s)", k, err): - case <-ctx.Done(): - return - } - - continue - } - - select { - case results <- "": - case <-ctx.Done(): - return - } - } -} - -func verifyResultChan(ctx context.Context, keys <-chan cid.Cid, bs bstore.Blockstore) <-chan string { - results := make(chan string) - - go func() { - defer close(results) - - var wg sync.WaitGroup - - for i := 0; i < runtime.NumCPU()*2; i++ { - wg.Add(1) - go verifyWorkerRun(ctx, &wg, keys, results, bs) - } - - wg.Wait() - }() - - return results -} - -var repoVerifyCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Verify all blocks in repo are not corrupted.", - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - bs := bstore.NewBlockstore(nd.Repo.Datastore()) - bs.HashOnRead(true) - - keys, err := bs.AllKeysChan(req.Context) - if err != nil { - log.Error(err) - return err - } - - results := verifyResultChan(req.Context, keys, bs) - - var fails int - var i int - for msg := range results { - if msg != "" { - if err := res.Emit(&VerifyProgress{Msg: msg}); err != nil { - return err - } - fails++ - } - i++ - if err := res.Emit(&VerifyProgress{Progress: i}); err != nil { - return err - } - } - - if fails != 0 { - return errors.New("verify complete, some blocks were corrupt") - } - - return res.Emit(&VerifyProgress{Msg: "verify complete, all blocks validated."}) - }, - Type: &VerifyProgress{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, obj *VerifyProgress) error { - if strings.Contains(obj.Msg, "was corrupt") { - fmt.Fprintln(os.Stdout, obj.Msg) - return nil - } - - if obj.Msg != "" { - if len(obj.Msg) < 20 { - obj.Msg += " " - } - fmt.Fprintln(w, obj.Msg) - return nil - } - - fmt.Fprintf(w, "%d blocks processed.\r", obj.Progress) - return nil - }), - }, -} - -var repoVersionCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show the repo version.", - ShortDescription: ` -'ipfs repo version' returns the current repo version. -`, - }, - - Options: []cmdkit.Option{ - cmdkit.BoolOption(repoQuietOptionName, "q", "Write minimal output."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - return cmds.EmitOnce(res, &RepoVersion{ - Version: fmt.Sprint(fsrepo.RepoVersion), - }) - }, - Type: RepoVersion{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RepoVersion) error { - quiet, _ := req.Options[repoQuietOptionName].(bool) - - if quiet { - fmt.Fprintf(w, fmt.Sprintf("fs-repo@%s\n", out.Version)) - } else { - fmt.Fprintf(w, fmt.Sprintf("ipfs repo version fs-repo@%s\n", out.Version)) - } - return nil - }), - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/resolve.go b/vendor/github.com/ipfs/go-ipfs/core/commands/resolve.go deleted file mode 100644 index 23274fb0..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/resolve.go +++ /dev/null @@ -1,157 +0,0 @@ -package commands - -import ( - "errors" - "fmt" - "io" - "strings" - "time" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - ncmd "github.com/ipfs/go-ipfs/core/commands/name" - ns "github.com/ipfs/go-ipfs/namesys" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - nsopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - cidenc "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil/cidenc" -) - -const ( - resolveRecursiveOptionName = "recursive" - resolveDhtRecordCountOptionName = "dht-record-count" - resolveDhtTimeoutOptionName = "dht-timeout" -) - -var ResolveCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Resolve the value of names to IPFS.", - ShortDescription: ` -There are a number of mutable name protocols that can link among -themselves and into IPNS. This command accepts any of these -identifiers and resolves them to the referenced item. -`, - LongDescription: ` -There are a number of mutable name protocols that can link among -themselves and into IPNS. For example IPNS references can (currently) -point at an IPFS object, and DNS links can point at other DNS links, IPNS -entries, or IPFS objects. This command accepts any of these -identifiers and resolves them to the referenced item. - -EXAMPLES - -Resolve the value of your identity: - - $ ipfs resolve /ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - /ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj - -Resolve the value of another name: - - $ ipfs resolve /ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n - /ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy - -Resolve the value of another name recursively: - - $ ipfs resolve -r /ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n - /ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj - -Resolve the value of an IPFS DAG path: - - $ ipfs resolve /ipfs/QmeZy1fGbwgVSrqbfh9fKQrAWgeyRnj7h8fsHS1oy3k99x/beep/boop - /ipfs/QmYRMjyvAiHKN9UTi8Bzt1HUspmSRD8T8DwxfSMzLgBon1 - -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("name", true, false, "The name to resolve.").EnableStdin(), - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(resolveRecursiveOptionName, "r", "Resolve until the result is an IPFS name."), - cmdkit.IntOption(resolveDhtRecordCountOptionName, "dhtrc", "Number of records to request for DHT resolution."), - cmdkit.StringOption(resolveDhtTimeoutOptionName, "dhtt", "Max time to collect values during DHT resolution eg \"30s\". Pass 0 for no timeout."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - name := req.Arguments[0] - recursive, _ := req.Options[resolveRecursiveOptionName].(bool) - - var enc cidenc.Encoder - switch { - case !cmdenv.CidBaseDefined(req): - // Not specified, check the path. - enc, err = cmdenv.CidEncoderFromPath(name) - if err == nil { - break - } - // Nope, fallback on the default. - fallthrough - default: - enc, err = cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - } - - // the case when ipns is resolved step by step - if strings.HasPrefix(name, "/ipns/") && !recursive { - rc, rcok := req.Options[resolveDhtRecordCountOptionName].(uint) - dhtt, dhttok := req.Options[resolveDhtTimeoutOptionName].(string) - ropts := []options.NameResolveOption{ - options.Name.ResolveOption(nsopts.Depth(1)), - } - - if rcok { - ropts = append(ropts, options.Name.ResolveOption(nsopts.DhtRecordCount(rc))) - } - if dhttok { - d, err := time.ParseDuration(dhtt) - if err != nil { - return err - } - if d < 0 { - return errors.New("DHT timeout value must be >= 0") - } - ropts = append(ropts, options.Name.ResolveOption(nsopts.DhtTimeout(d))) - } - p, err := api.Name().Resolve(req.Context, name, ropts...) - // ErrResolveRecursion is fine - if err != nil && err != ns.ErrResolveRecursion { - return err - } - return cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: path.Path(p.String())}) - } - - // else, ipfs path or ipns with recursive flag - p, err := coreiface.ParsePath(name) - if err != nil { - return err - } - - rp, err := api.ResolvePath(req.Context, p) - if err != nil { - return err - } - - encoded := "/" + rp.Namespace() + "/" + enc.Encode(rp.Cid()) - if remainder := rp.Remainder(); remainder != "" { - encoded += "/" + remainder - } - - return cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: path.Path(encoded)}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, rp *ncmd.ResolvedPath) error { - fmt.Fprintln(w, rp.Path.String()) - return nil - }), - }, - Type: ncmd.ResolvedPath{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/root.go b/vendor/github.com/ipfs/go-ipfs/core/commands/root.go deleted file mode 100644 index 95f19079..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/root.go +++ /dev/null @@ -1,217 +0,0 @@ -package commands - -import ( - "errors" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - dag "github.com/ipfs/go-ipfs/core/commands/dag" - name "github.com/ipfs/go-ipfs/core/commands/name" - ocmd "github.com/ipfs/go-ipfs/core/commands/object" - unixfs "github.com/ipfs/go-ipfs/core/commands/unixfs" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var log = logging.Logger("core/commands") - -var ErrNotOnline = errors.New("this command must be run in online mode. Try running 'ipfs daemon' first") - -const ( - ConfigOption = "config" - DebugOption = "debug" - LocalOption = "local" // DEPRECATED: use OfflineOption - OfflineOption = "offline" - ApiOption = "api" -) - -var Root = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Global p2p merkle-dag filesystem.", - Synopsis: "ipfs [--config= | -c] [--debug= | -D] [--help=] [-h=] [--local= | -L] [--api=] ...", - Subcommands: ` -BASIC COMMANDS - init Initialize ipfs local configuration - add Add a file to IPFS - cat Show IPFS object data - get Download IPFS objects - ls List links from an object - refs List hashes of links from an object - -DATA STRUCTURE COMMANDS - block Interact with raw blocks in the datastore - object Interact with raw dag nodes - files Interact with objects as if they were a unix filesystem - dag Interact with IPLD documents (experimental) - -ADVANCED COMMANDS - daemon Start a long-running daemon process - mount Mount an IPFS read-only mountpoint - resolve Resolve any type of name - name Publish and resolve IPNS names - key Create and list IPNS name keypairs - dns Resolve DNS links - pin Pin objects to local storage - repo Manipulate the IPFS repository - stats Various operational stats - p2p Libp2p stream mounting - filestore Manage the filestore (experimental) - -NETWORK COMMANDS - id Show info about IPFS peers - bootstrap Add or remove bootstrap peers - swarm Manage connections to the p2p network - dht Query the DHT for values or peers - ping Measure the latency of a connection - diag Print diagnostics - -TOOL COMMANDS - config Manage configuration - version Show ipfs version information - update Download and apply go-ipfs updates - commands List all available commands - cid Convert and discover properties of CIDs - -Use 'ipfs --help' to learn more about each command. - -ipfs uses a repository in the local file system. By default, the repo is -located at ~/.ipfs. To change the repo location, set the $IPFS_PATH -environment variable: - - export IPFS_PATH=/path/to/ipfsrepo - -EXIT STATUS - -The CLI will exit with one of the following values: - -0 Successful execution. -1 Failed executions. -`, - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(ConfigOption, "c", "Path to the configuration file to use."), - cmdkit.BoolOption(DebugOption, "D", "Operate in debug mode."), - cmdkit.BoolOption(cmds.OptLongHelp, "Show the full command help text."), - cmdkit.BoolOption(cmds.OptShortHelp, "Show a short version of the command help text."), - cmdkit.BoolOption(LocalOption, "L", "Run the command locally, instead of using the daemon. DEPRECATED: use --offline."), - cmdkit.BoolOption(OfflineOption, "Run the command offline."), - cmdkit.StringOption(ApiOption, "Use a specific API instance (defaults to /ip4/127.0.0.1/tcp/5001)"), - - // global options, added to every command - cmdenv.OptionCidBase, - cmdenv.OptionUpgradeCidV0InOutput, - - cmds.OptionEncodingType, - cmds.OptionStreamChannels, - cmds.OptionTimeout, - }, -} - -// commandsDaemonCmd is the "ipfs commands" command for daemon -var CommandsDaemonCmd = CommandsCmd(Root) - -var rootSubcommands = map[string]*cmds.Command{ - "add": AddCmd, - "bitswap": BitswapCmd, - "block": BlockCmd, - "cat": CatCmd, - "commands": CommandsDaemonCmd, - "files": FilesCmd, - "filestore": FileStoreCmd, - "get": GetCmd, - "pubsub": PubsubCmd, - "repo": RepoCmd, - "stats": StatsCmd, - "bootstrap": BootstrapCmd, - "config": ConfigCmd, - "dag": dag.DagCmd, - "dht": DhtCmd, - "diag": DiagCmd, - "dns": DNSCmd, - "id": IDCmd, - "key": KeyCmd, - "log": LogCmd, - "ls": LsCmd, - "mount": MountCmd, - "name": name.NameCmd, - "object": ocmd.ObjectCmd, - "pin": PinCmd, - "ping": PingCmd, - "p2p": P2PCmd, - "refs": RefsCmd, - "resolve": ResolveCmd, - "swarm": SwarmCmd, - "tar": TarCmd, - "file": unixfs.UnixFSCmd, - "update": ExternalBinary(), - "urlstore": urlStoreCmd, - "version": VersionCmd, - "shutdown": daemonShutdownCmd, - "cid": CidCmd, -} - -// RootRO is the readonly version of Root -var RootRO = &cmds.Command{} - -var CommandsDaemonROCmd = CommandsCmd(RootRO) - -// RefsROCmd is `ipfs refs` command -var RefsROCmd = &cmds.Command{} - -var rootROSubcommands = map[string]*cmds.Command{ - "commands": CommandsDaemonROCmd, - "cat": CatCmd, - "block": &cmds.Command{ - Subcommands: map[string]*cmds.Command{ - "stat": blockStatCmd, - "get": blockGetCmd, - }, - }, - "get": GetCmd, - "dns": DNSCmd, - "ls": LsCmd, - "name": { - Subcommands: map[string]*cmds.Command{ - "resolve": name.IpnsCmd, - }, - }, - "object": { - Subcommands: map[string]*cmds.Command{ - "data": ocmd.ObjectDataCmd, - "links": ocmd.ObjectLinksCmd, - "get": ocmd.ObjectGetCmd, - "stat": ocmd.ObjectStatCmd, - }, - }, - "dag": { - Subcommands: map[string]*cmds.Command{ - "get": dag.DagGetCmd, - "resolve": dag.DagResolveCmd, - }, - }, - "resolve": ResolveCmd, - "version": VersionCmd, -} - -func init() { - Root.ProcessHelp() - *RootRO = *Root - - // sanitize readonly refs command - *RefsROCmd = *RefsCmd - RefsROCmd.Subcommands = map[string]*cmds.Command{} - - // this was in the big map definition above before, - // but if we leave it there lgc.NewCommand will be executed - // before the value is updated (:/sanitize readonly refs command/) - rootROSubcommands["refs"] = RefsROCmd - - Root.Subcommands = rootSubcommands - - RootRO.Subcommands = rootROSubcommands -} - -type MessageOutput struct { - Message string -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/root_test.go b/vendor/github.com/ipfs/go-ipfs/core/commands/root_test.go deleted file mode 100644 index f5e5c248..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/root_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package commands - -import ( - "testing" -) - -func TestCommandTree(t *testing.T) { - printErrors := func(errs map[string][]error) { - if errs == nil { - return - } - t.Error("In Root command tree:") - for cmd, err := range errs { - t.Errorf(" In X command %s:", cmd) - for _, e := range err { - t.Errorf(" %s", e) - } - } - } - printErrors(Root.DebugValidate()) - printErrors(RootRO.DebugValidate()) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/shutdown.go b/vendor/github.com/ipfs/go-ipfs/core/commands/shutdown.go deleted file mode 100644 index f6fae8ff..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/shutdown.go +++ /dev/null @@ -1,30 +0,0 @@ -package commands - -import ( - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var daemonShutdownCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Shut down the ipfs daemon", - }, - Run: func(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if nd.LocalMode() { - return cmdkit.Errorf(cmdkit.ErrClient, "daemon not running") - } - - if err := nd.Process().Close(); err != nil { - log.Error("error while shutting down ipfs daemon:", err) - } - - return nil - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/stat.go b/vendor/github.com/ipfs/go-ipfs/core/commands/stat.go deleted file mode 100644 index e699bbfa..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/stat.go +++ /dev/null @@ -1,194 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "os" - "time" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - humanize "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - metrics "gx/ipfs/QmSwVwKUWzdf3ppM3FbBbpuqHUNtUFJPQQdfvKmgZoz2gR/go-libp2p-metrics" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var StatsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Query IPFS statistics.", - ShortDescription: `'ipfs stats' is a set of commands to help look at statistics -for your IPFS node. -`, - LongDescription: `'ipfs stats' is a set of commands to help look at statistics -for your IPFS node.`, - }, - - Subcommands: map[string]*cmds.Command{ - "bw": statBwCmd, - "repo": repoStatCmd, - "bitswap": bitswapStatCmd, - }, -} - -const ( - statPeerOptionName = "peer" - statProtoOptionName = "proto" - statPollOptionName = "poll" - statIntervalOptionName = "interval" -) - -var statBwCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Print ipfs bandwidth information.", - ShortDescription: `'ipfs stats bw' prints bandwidth information for the ipfs daemon. -It displays: TotalIn, TotalOut, RateIn, RateOut. - `, - LongDescription: `'ipfs stats bw' prints bandwidth information for the ipfs daemon. -It displays: TotalIn, TotalOut, RateIn, RateOut. - -By default, overall bandwidth and all protocols are shown. To limit bandwidth -to a particular peer, use the 'peer' option along with that peer's multihash -id. To specify a specific protocol, use the 'proto' option. The 'peer' and -'proto' options cannot be specified simultaneously. The protocols that are -queried using this method are outlined in the specification: -https://github.com/libp2p/specs/blob/master/7-properties.md#757-protocol-multicodecs - -Example protocol options: - - /ipfs/id/1.0.0 - - /ipfs/bitswap - - /ipfs/dht - -Example: - - > ipfs stats bw -t /ipfs/bitswap - Bandwidth - TotalIn: 5.0MB - TotalOut: 0B - RateIn: 343B/s - RateOut: 0B/s - > ipfs stats bw -p QmepgFW7BHEtU4pZJdxaNiv75mKLLRQnPi1KaaXmQN4V1a - Bandwidth - TotalIn: 4.9MB - TotalOut: 12MB - RateIn: 0B/s - RateOut: 0B/s -`, - }, - Options: []cmdkit.Option{ - cmdkit.StringOption(statPeerOptionName, "p", "Specify a peer to print bandwidth for."), - cmdkit.StringOption(statProtoOptionName, "t", "Specify a protocol to print bandwidth for."), - cmdkit.BoolOption(statPollOptionName, "Print bandwidth at an interval."), - cmdkit.StringOption(statIntervalOptionName, "i", `Time interval to wait between updating output, if 'poll' is true. - - This accepts durations such as "300s", "1.5h" or "2h45m". Valid time units are: - "ns", "us" (or "µs"), "ms", "s", "m", "h".`).WithDefault("1s"), - }, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - // Must be online! - if !nd.OnlineMode() { - return cmdkit.Errorf(cmdkit.ErrClient, ErrNotOnline.Error()) - } - - if nd.Reporter == nil { - return fmt.Errorf("bandwidth reporter disabled in config") - } - - pstr, pfound := req.Options[statPeerOptionName].(string) - tstr, tfound := req.Options["proto"].(string) - if pfound && tfound { - return cmdkit.Errorf(cmdkit.ErrClient, "please only specify peer OR protocol") - } - - var pid peer.ID - if pfound { - checkpid, err := peer.IDB58Decode(pstr) - if err != nil { - return err - } - pid = checkpid - } - - timeS, _ := req.Options[statIntervalOptionName].(string) - interval, err := time.ParseDuration(timeS) - if err != nil { - return err - } - - doPoll, _ := req.Options[statPollOptionName].(bool) - for { - if pfound { - stats := nd.Reporter.GetBandwidthForPeer(pid) - if err := res.Emit(&stats); err != nil { - return err - } - } else if tfound { - protoId := protocol.ID(tstr) - stats := nd.Reporter.GetBandwidthForProtocol(protoId) - if err := res.Emit(&stats); err != nil { - return err - } - } else { - totals := nd.Reporter.GetBandwidthTotals() - if err := res.Emit(&totals); err != nil { - return err - } - } - if !doPoll { - return nil - } - select { - case <-time.After(interval): - case <-req.Context.Done(): - return req.Context.Err() - } - } - }, - Type: metrics.Stats{}, - PostRun: cmds.PostRunMap{ - cmds.CLI: func(res cmds.Response, re cmds.ResponseEmitter) error { - polling, _ := res.Request().Options[statPollOptionName].(bool) - - if polling { - fmt.Fprintln(os.Stdout, "Total Up Total Down Rate Up Rate Down") - } - for { - v, err := res.Next() - if err != nil { - if err == io.EOF { - return nil - } - return err - } - - bs := v.(*metrics.Stats) - - if !polling { - printStats(os.Stdout, bs) - return nil - } - - fmt.Fprintf(os.Stdout, "%8s ", humanize.Bytes(uint64(bs.TotalOut))) - fmt.Fprintf(os.Stdout, "%8s ", humanize.Bytes(uint64(bs.TotalIn))) - fmt.Fprintf(os.Stdout, "%8s/s ", humanize.Bytes(uint64(bs.RateOut))) - fmt.Fprintf(os.Stdout, "%8s/s \r", humanize.Bytes(uint64(bs.RateIn))) - } - }, - }, -} - -func printStats(out io.Writer, bs *metrics.Stats) { - fmt.Fprintln(out, "Bandwidth") - fmt.Fprintf(out, "TotalIn: %s\n", humanize.Bytes(uint64(bs.TotalIn))) - fmt.Fprintf(out, "TotalOut: %s\n", humanize.Bytes(uint64(bs.TotalOut))) - fmt.Fprintf(out, "RateIn: %s/s\n", humanize.Bytes(uint64(bs.RateIn))) - fmt.Fprintf(out, "RateOut: %s/s\n", humanize.Bytes(uint64(bs.RateOut))) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/swarm.go b/vendor/github.com/ipfs/go-ipfs/core/commands/swarm.go deleted file mode 100644 index a105c1c3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/swarm.go +++ /dev/null @@ -1,741 +0,0 @@ -package commands - -import ( - "errors" - "fmt" - "io" - "path" - "sort" - - commands "github.com/ipfs/go-ipfs/commands" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - repo "github.com/ipfs/go-ipfs/repo" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - mafilter "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - inet "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - swarm "gx/ipfs/Qma3Xp3FXFSP4prirEiRYHJ2tgGE8EAx9i6JLziPLpAQjq/go-libp2p-swarm" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - iaddr "gx/ipfs/Qmdf1djucJ1jX5RMF1bDbFg5ybZnupmSAeETQQ3ZV7z6dU/go-ipfs-addr" -) - -type stringList struct { - Strings []string -} - -type addrMap struct { - Addrs map[string][]string -} - -var SwarmCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with the swarm.", - ShortDescription: ` -'ipfs swarm' is a tool to manipulate the network swarm. The swarm is the -component that opens, listens for, and maintains connections to other -ipfs peers in the internet. -`, - }, - Subcommands: map[string]*cmds.Command{ - "addrs": swarmAddrsCmd, - "connect": swarmConnectCmd, - "disconnect": swarmDisconnectCmd, - "filters": swarmFiltersCmd, - "peers": swarmPeersCmd, - }, -} - -const ( - swarmVerboseOptionName = "verbose" - swarmStreamsOptionName = "streams" - swarmLatencyOptionName = "latency" - swarmDirectionOptionName = "direction" -) - -var swarmPeersCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List peers with open connections.", - ShortDescription: ` -'ipfs swarm peers' lists the set of peers this node is connected to. -`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(swarmVerboseOptionName, "v", "display all extra information"), - cmdkit.BoolOption(swarmStreamsOptionName, "Also list information about open streams for each peer"), - cmdkit.BoolOption(swarmLatencyOptionName, "Also list information about latency to each peer"), - cmdkit.BoolOption(swarmDirectionOptionName, "Also list information about the direction of connection"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - verbose, _ := req.Options[swarmVerboseOptionName].(bool) - latency, _ := req.Options[swarmLatencyOptionName].(bool) - streams, _ := req.Options[swarmStreamsOptionName].(bool) - direction, _ := req.Options[swarmDirectionOptionName].(bool) - - conns, err := api.Swarm().Peers(req.Context) - if err != nil { - return err - } - - var out connInfos - for _, c := range conns { - ci := connInfo{ - Addr: c.Address().String(), - Peer: c.ID().Pretty(), - } - - if verbose || direction { - // set direction - ci.Direction = c.Direction() - } - - if verbose || latency { - lat, err := c.Latency() - if err != nil { - return err - } - - if lat == 0 { - ci.Latency = "n/a" - } else { - ci.Latency = lat.String() - } - } - if verbose || streams { - strs, err := c.Streams() - if err != nil { - return err - } - - for _, s := range strs { - ci.Streams = append(ci.Streams, streamInfo{Protocol: string(s)}) - } - } - sort.Sort(&ci) - out.Peers = append(out.Peers, ci) - } - - sort.Sort(&out) - return cmds.EmitOnce(res, &out) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, ci *connInfos) error { - pipfs := ma.ProtocolWithCode(ma.P_IPFS).Name - for _, info := range ci.Peers { - fmt.Fprintf(w, "%s/%s/%s", info.Addr, pipfs, info.Peer) - if info.Latency != "" { - fmt.Fprintf(w, " %s", info.Latency) - } - - if info.Direction != inet.DirUnknown { - fmt.Fprintf(w, " %s", directionString(info.Direction)) - } - fmt.Fprintln(w) - - for _, s := range info.Streams { - if s.Protocol == "" { - s.Protocol = "" - } - - fmt.Fprintf(w, " %s\n", s.Protocol) - } - } - - return nil - }), - }, - Type: connInfos{}, -} - -type streamInfo struct { - Protocol string -} - -type connInfo struct { - Addr string - Peer string - Latency string - Muxer string - Direction inet.Direction - Streams []streamInfo -} - -func (ci *connInfo) Less(i, j int) bool { - return ci.Streams[i].Protocol < ci.Streams[j].Protocol -} - -func (ci *connInfo) Len() int { - return len(ci.Streams) -} - -func (ci *connInfo) Swap(i, j int) { - ci.Streams[i], ci.Streams[j] = ci.Streams[j], ci.Streams[i] -} - -type connInfos struct { - Peers []connInfo -} - -func (ci connInfos) Less(i, j int) bool { - return ci.Peers[i].Addr < ci.Peers[j].Addr -} - -func (ci connInfos) Len() int { - return len(ci.Peers) -} - -func (ci connInfos) Swap(i, j int) { - ci.Peers[i], ci.Peers[j] = ci.Peers[j], ci.Peers[i] -} - -// directionString transfers to string -func directionString(d inet.Direction) string { - switch d { - case inet.DirInbound: - return "inbound" - case inet.DirOutbound: - return "outbound" - default: - return "" - } -} - -var swarmAddrsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List known addresses. Useful for debugging.", - ShortDescription: ` -'ipfs swarm addrs' lists all addresses this node is aware of. -`, - }, - Subcommands: map[string]*cmds.Command{ - "local": swarmAddrsLocalCmd, - "listen": swarmAddrsListenCmd, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - addrs, err := api.Swarm().KnownAddrs(req.Context) - if err != nil { - return err - } - - out := make(map[string][]string) - for p, paddrs := range addrs { - s := p.Pretty() - for _, a := range paddrs { - out[s] = append(out[s], a.String()) - } - } - - return cmds.EmitOnce(res, &addrMap{Addrs: out}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, am *addrMap) error { - // sort the ids first - ids := make([]string, 0, len(am.Addrs)) - for p := range am.Addrs { - ids = append(ids, p) - } - sort.Sort(sort.StringSlice(ids)) - - for _, p := range ids { - paddrs := am.Addrs[p] - fmt.Fprintf(w, "%s (%d)\n", p, len(paddrs)) - for _, addr := range paddrs { - fmt.Fprintf(w, "\t"+addr+"\n") - } - } - - return nil - }), - }, - Type: addrMap{}, -} - -var swarmAddrsLocalCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List local addresses.", - ShortDescription: ` -'ipfs swarm addrs local' lists all local listening addresses announced to the network. -`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption("id", "Show peer ID in addresses."), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - showid, _ := req.Options["id"].(bool) - self, err := api.Key().Self(req.Context) - if err != nil { - return err - } - - maddrs, err := api.Swarm().LocalAddrs(req.Context) - if err != nil { - return err - } - - var addrs []string - for _, addr := range maddrs { - saddr := addr.String() - if showid { - saddr = path.Join(saddr, "ipfs", self.ID().Pretty()) - } - addrs = append(addrs, saddr) - } - sort.Sort(sort.StringSlice(addrs)) - return cmds.EmitOnce(res, &stringList{addrs}) - }, - Type: stringList{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, -} - -var swarmAddrsListenCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List interface listening addresses.", - ShortDescription: ` -'ipfs swarm addrs listen' lists all interface addresses the node is listening on. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - var addrs []string - maddrs, err := api.Swarm().ListenAddrs(req.Context) - if err != nil { - return err - } - - for _, addr := range maddrs { - addrs = append(addrs, addr.String()) - } - sort.Sort(sort.StringSlice(addrs)) - - return cmds.EmitOnce(res, &stringList{addrs}) - }, - Type: stringList{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, -} - -var swarmConnectCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Open connection to a given address.", - ShortDescription: ` -'ipfs swarm connect' opens a new direct connection to a peer address. - -The address format is an IPFS multiaddr: - -ipfs swarm connect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("address", true, true, "Address of peer to connect to.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - addrs := req.Arguments - - pis, err := peersWithAddresses(addrs) - if err != nil { - return err - } - - output := make([]string, len(pis)) - for i, pi := range pis { - output[i] = "connect " + pi.ID.Pretty() - - err := api.Swarm().Connect(req.Context, pi) - if err != nil { - return fmt.Errorf("%s failure: %s", output[i], err) - } - output[i] += " success" - } - - return cmds.EmitOnce(res, &stringList{output}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, - Type: stringList{}, -} - -var swarmDisconnectCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Close connection to a given address.", - ShortDescription: ` -'ipfs swarm disconnect' closes a connection to a peer address. The address -format is an IPFS multiaddr: - -ipfs swarm disconnect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ - -The disconnect is not permanent; if ipfs needs to talk to that address later, -it will reconnect. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("address", true, true, "Address of peer to disconnect from.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - iaddrs, err := parseAddresses(req.Arguments) - if err != nil { - return err - } - - output := make([]string, len(iaddrs)) - for i, addr := range iaddrs { - output[i] = "disconnect " + addr.ID().Pretty() - - if err := api.Swarm().Disconnect(req.Context, addr.Multiaddr()); err != nil { - output[i] += " failure: " + err.Error() - } else { - output[i] += " success" - } - } - return cmds.EmitOnce(res, &stringList{output}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, - Type: stringList{}, -} - -// parseAddresses is a function that takes in a slice of string peer addresses -// (multiaddr + peerid) and returns slices of multiaddrs and peerids. -func parseAddresses(addrs []string) (iaddrs []iaddr.IPFSAddr, err error) { - iaddrs = make([]iaddr.IPFSAddr, len(addrs)) - for i, saddr := range addrs { - iaddrs[i], err = iaddr.ParseString(saddr) - if err != nil { - return nil, cmds.ClientError("invalid peer address: " + err.Error()) - } - } - return -} - -// peersWithAddresses is a function that takes in a slice of string peer addresses -// (multiaddr + peerid) and returns a slice of properly constructed peers -func peersWithAddresses(addrs []string) ([]pstore.PeerInfo, error) { - iaddrs, err := parseAddresses(addrs) - if err != nil { - return nil, err - } - - peers := make(map[peer.ID][]ma.Multiaddr, len(iaddrs)) - for _, iaddr := range iaddrs { - id := iaddr.ID() - current, ok := peers[id] - if tpt := iaddr.Transport(); tpt != nil { - peers[id] = append(current, tpt) - } else if !ok { - peers[id] = nil - } - } - pis := make([]pstore.PeerInfo, 0, len(peers)) - for id, maddrs := range peers { - pis = append(pis, pstore.PeerInfo{ - ID: id, - Addrs: maddrs, - }) - } - return pis, nil -} - -var swarmFiltersCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Manipulate address filters.", - ShortDescription: ` -'ipfs swarm filters' will list out currently applied filters. Its subcommands -can be used to add or remove said filters. Filters are specified using the -multiaddr-filter format: - -Example: - - /ip4/192.168.0.0/ipcidr/16 - -Where the above is equivalent to the standard CIDR: - - 192.168.0.0/16 - -Filters default to those specified under the "Swarm.AddrFilters" config key. -`, - }, - Subcommands: map[string]*cmds.Command{ - "add": swarmFiltersAddCmd, - "rm": swarmFiltersRmCmd, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if n.PeerHost == nil { - return ErrNotOnline - } - - // FIXME(steb) - swrm, ok := n.PeerHost.Network().(*swarm.Swarm) - if !ok { - return errors.New("failed to cast network to swarm network") - } - - var output []string - for _, f := range swrm.Filters.Filters() { - s, err := mafilter.ConvertIPNet(f) - if err != nil { - return err - } - output = append(output, s) - } - return cmds.EmitOnce(res, &stringList{output}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, - Type: stringList{}, -} - -var swarmFiltersAddCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add an address filter.", - ShortDescription: ` -'ipfs swarm filters add' will add an address filter to the daemons swarm. -Filters applied this way will not persist daemon reboots, to achieve that, -add your filters to the ipfs config file. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("address", true, true, "Multiaddr to filter.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if n.PeerHost == nil { - return ErrNotOnline - } - - // FIXME(steb) - swrm, ok := n.PeerHost.Network().(*swarm.Swarm) - if !ok { - return errors.New("failed to cast network to swarm network") - } - - if len(req.Arguments) == 0 { - return errors.New("no filters to add") - } - - r, err := fsrepo.Open(env.(*commands.Context).ConfigRoot) - if err != nil { - return err - } - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - for _, arg := range req.Arguments { - mask, err := mafilter.NewMask(arg) - if err != nil { - return err - } - - swrm.Filters.AddDialFilter(mask) - } - - added, err := filtersAdd(r, cfg, req.Arguments) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &stringList{added}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, - Type: stringList{}, -} - -var swarmFiltersRmCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Remove an address filter.", - ShortDescription: ` -'ipfs swarm filters rm' will remove an address filter from the daemons swarm. -Filters removed this way will not persist daemon reboots, to achieve that, -remove your filters from the ipfs config file. -`, - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("address", true, true, "Multiaddr filter to remove.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if n.PeerHost == nil { - return ErrNotOnline - } - - swrm, ok := n.PeerHost.Network().(*swarm.Swarm) - if !ok { - return errors.New("failed to cast network to swarm network") - } - - r, err := fsrepo.Open(env.(*commands.Context).ConfigRoot) - if err != nil { - return err - } - defer r.Close() - cfg, err := r.Config() - if err != nil { - return err - } - - if req.Arguments[0] == "all" || req.Arguments[0] == "*" { - fs := swrm.Filters.Filters() - for _, f := range fs { - swrm.Filters.Remove(f) - } - - removed, err := filtersRemoveAll(r, cfg) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &stringList{removed}) - } - - for _, arg := range req.Arguments { - mask, err := mafilter.NewMask(arg) - if err != nil { - return err - } - - swrm.Filters.Remove(mask) - } - - removed, err := filtersRemove(r, cfg, req.Arguments) - if err != nil { - return err - } - - return cmds.EmitOnce(res, &stringList{removed}) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(stringListEncoder), - }, - Type: stringList{}, -} - -func filtersAdd(r repo.Repo, cfg *config.Config, filters []string) ([]string, error) { - addedMap := map[string]struct{}{} - addedList := make([]string, 0, len(filters)) - - // re-add cfg swarm filters to rm dupes - oldFilters := cfg.Swarm.AddrFilters - cfg.Swarm.AddrFilters = nil - - // add new filters - for _, filter := range filters { - if _, found := addedMap[filter]; found { - continue - } - - cfg.Swarm.AddrFilters = append(cfg.Swarm.AddrFilters, filter) - addedList = append(addedList, filter) - addedMap[filter] = struct{}{} - } - - // add back original filters. in this order so that we output them. - for _, filter := range oldFilters { - if _, found := addedMap[filter]; found { - continue - } - - cfg.Swarm.AddrFilters = append(cfg.Swarm.AddrFilters, filter) - addedMap[filter] = struct{}{} - } - - if err := r.SetConfig(cfg); err != nil { - return nil, err - } - - return addedList, nil -} - -func filtersRemoveAll(r repo.Repo, cfg *config.Config) ([]string, error) { - removed := cfg.Swarm.AddrFilters - cfg.Swarm.AddrFilters = nil - - if err := r.SetConfig(cfg); err != nil { - return nil, err - } - - return removed, nil -} - -func filtersRemove(r repo.Repo, cfg *config.Config, toRemoveFilters []string) ([]string, error) { - removed := make([]string, 0, len(toRemoveFilters)) - keep := make([]string, 0, len(cfg.Swarm.AddrFilters)) - - oldFilters := cfg.Swarm.AddrFilters - - for _, oldFilter := range oldFilters { - found := false - for _, toRemoveFilter := range toRemoveFilters { - if oldFilter == toRemoveFilter { - found = true - removed = append(removed, toRemoveFilter) - break - } - } - - if !found { - keep = append(keep, oldFilter) - } - } - cfg.Swarm.AddrFilters = keep - - if err := r.SetConfig(cfg); err != nil { - return nil, err - } - - return removed, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/sysdiag.go b/vendor/github.com/ipfs/go-ipfs/core/commands/sysdiag.go deleted file mode 100644 index 0883908a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/sysdiag.go +++ /dev/null @@ -1,137 +0,0 @@ -package commands - -import ( - "os" - "path" - "runtime" - - version "github.com/ipfs/go-ipfs" - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" - sysi "gx/ipfs/QmcoYsZJDtyDTij5dNo7KQCHR3Z6nhPxLkVKg77zg1TL8e/go-sysinfo" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var sysDiagCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Print system diagnostic information.", - ShortDescription: ` -Prints out information about your computer to aid in easier debugging. -`, - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - info := make(map[string]interface{}) - err := runtimeInfo(info) - if err != nil { - return err - } - - err = envVarInfo(info) - if err != nil { - return err - } - - err = diskSpaceInfo(info) - if err != nil { - return err - } - - err = memInfo(info) - if err != nil { - return err - } - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - err = netInfo(nd.OnlineMode(), info) - if err != nil { - return err - } - - info["ipfs_version"] = version.CurrentVersionNumber - info["ipfs_commit"] = version.CurrentCommit - return cmds.EmitOnce(res, info) - }, -} - -func runtimeInfo(out map[string]interface{}) error { - rt := make(map[string]interface{}) - rt["os"] = runtime.GOOS - rt["arch"] = runtime.GOARCH - rt["compiler"] = runtime.Compiler - rt["version"] = runtime.Version() - rt["numcpu"] = runtime.NumCPU() - rt["gomaxprocs"] = runtime.GOMAXPROCS(0) - rt["numgoroutines"] = runtime.NumGoroutine() - - out["runtime"] = rt - return nil -} - -func envVarInfo(out map[string]interface{}) error { - ev := make(map[string]interface{}) - ev["GOPATH"] = os.Getenv("GOPATH") - ev["IPFS_PATH"] = os.Getenv("IPFS_PATH") - - out["environment"] = ev - return nil -} - -func ipfsPath() string { - p := os.Getenv("IPFS_PATH") - if p == "" { - p = path.Join(os.Getenv("HOME"), ".ipfs") - } - return p -} - -func diskSpaceInfo(out map[string]interface{}) error { - di := make(map[string]interface{}) - dinfo, err := sysi.DiskUsage(ipfsPath()) - if err != nil { - return err - } - - di["fstype"] = dinfo.FsType - di["total_space"] = dinfo.Total - di["free_space"] = dinfo.Free - - out["diskinfo"] = di - return nil -} - -func memInfo(out map[string]interface{}) error { - m := make(map[string]interface{}) - - meminf, err := sysi.MemoryInfo() - if err != nil { - return err - } - - m["swap"] = meminf.Swap - m["virt"] = meminf.Used - out["memory"] = m - return nil -} - -func netInfo(online bool, out map[string]interface{}) error { - n := make(map[string]interface{}) - addrs, err := manet.InterfaceMultiaddrs() - if err != nil { - return err - } - - var straddrs []string - for _, a := range addrs { - straddrs = append(straddrs, a.String()) - } - - n["interface_addresses"] = straddrs - n["online"] = online - out["net"] = n - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/tar.go b/vendor/github.com/ipfs/go-ipfs/core/commands/tar.go deleted file mode 100644 index 30933ba3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/tar.go +++ /dev/null @@ -1,117 +0,0 @@ -package commands - -import ( - "fmt" - "io" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/commands/cmdenv" - tar "github.com/ipfs/go-ipfs/tar" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var TarCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Utility functions for tar files in ipfs.", - }, - - Subcommands: map[string]*cmds.Command{ - "add": tarAddCmd, - "cat": tarCatCmd, - }, -} - -var tarAddCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Import a tar file into ipfs.", - ShortDescription: ` -'ipfs tar add' will parse a tar file and create a merkledag structure to -represent it. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.FileArg("file", true, false, "Tar file to add.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - it := req.Files.Entries() - file, err := cmdenv.GetFileArg(it) - if err != nil { - return err - } - - node, err := tar.ImportTar(req.Context, file, nd.DAG) - if err != nil { - return err - } - - c := node.Cid() - - return cmds.EmitOnce(res, &AddEvent{ - Name: it.Name(), - Hash: enc.Encode(c), - }) - }, - Type: AddEvent{}, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *AddEvent) error { - fmt.Fprintln(w, out.Hash) - return nil - }), - }, -} - -var tarCatCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Export a tar file from IPFS.", - ShortDescription: ` -'ipfs tar cat' will export a tar file from a previously imported one in IPFS. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("path", true, false, "ipfs path of archive to export.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - p, err := path.ParsePath(req.Arguments[0]) - if err != nil { - return err - } - - root, err := core.Resolve(req.Context, nd.Namesys, nd.Resolver, p) - if err != nil { - return err - } - - rootpb, ok := root.(*dag.ProtoNode) - if !ok { - return dag.ErrNotProtobuf - } - - r, err := tar.ExportTar(req.Context, rootpb, nd.DAG) - if err != nil { - return err - } - - return res.Emit(r) - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/ls.go b/vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/ls.go deleted file mode 100644 index b0d28a8b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/ls.go +++ /dev/null @@ -1,236 +0,0 @@ -package unixfs - -import ( - "fmt" - "io" - "sort" - "text/tabwriter" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - - merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - iface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - unixfs "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type LsLink struct { - Name, Hash string - Size uint64 - Type string -} - -type LsObject struct { - Hash string - Size uint64 - Type string - Links []LsLink -} - -type LsOutput struct { - Arguments map[string]string - Objects map[string]*LsObject -} - -var LsCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "List directory contents for Unix filesystem objects.", - ShortDescription: ` -Displays the contents of an IPFS or IPNS object(s) at the given path. - -The JSON output contains size information. For files, the child size -is the total size of the file contents. For directories, the child -size is the IPFS link size. - -This functionality is deprecated, and will be removed in future versions. If -possible, please use 'ipfs ls' instead. -`, - LongDescription: ` -Displays the contents of an IPFS or IPNS object(s) at the given path. - -The JSON output contains size information. For files, the child size -is the total size of the file contents. For directories, the child -size is the IPFS link size. - -The path can be a prefixless ref; in this case, we assume it to be an -/ipfs ref and not /ipns. - -Example: - - > ipfs file ls QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ - cat.jpg - > ipfs file ls /ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ - cat.jpg - -This functionality is deprecated, and will be removed in future versions. If -possible, please use 'ipfs ls' instead. -`, - }, - - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to list links from.").EnableStdin(), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - nd, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - api, err := cmdenv.GetApi(env, req) - if err != nil { - return err - } - - if err := req.ParseBodyArgs(); err != nil { - return err - } - - paths := req.Arguments - - output := LsOutput{ - Arguments: map[string]string{}, - Objects: map[string]*LsObject{}, - } - - for _, p := range paths { - ctx := req.Context - - fpath, err := iface.ParsePath(p) - if err != nil { - return err - } - - merkleNode, err := api.ResolveNode(ctx, fpath) - if err != nil { - return err - } - - c := merkleNode.Cid() - - hash := c.String() - output.Arguments[p] = hash - - if _, ok := output.Objects[hash]; ok { - // duplicate argument for an already-listed node - continue - } - - ndpb, ok := merkleNode.(*merkledag.ProtoNode) - if !ok { - return merkledag.ErrNotProtobuf - } - - unixFSNode, err := unixfs.FSNodeFromBytes(ndpb.Data()) - if err != nil { - return err - } - - t := unixFSNode.Type() - - output.Objects[hash] = &LsObject{ - Hash: c.String(), - Type: t.String(), - Size: unixFSNode.FileSize(), - } - - switch t { - case unixfs.TFile: - break - case unixfs.THAMTShard: - // We need a streaming ls API for this. - return fmt.Errorf("cannot list large directories yet") - case unixfs.TDirectory: - links := make([]LsLink, len(merkleNode.Links())) - output.Objects[hash].Links = links - for i, link := range merkleNode.Links() { - linkNode, err := link.GetNode(ctx, nd.DAG) - if err != nil { - return err - } - lnpb, ok := linkNode.(*merkledag.ProtoNode) - if !ok { - return merkledag.ErrNotProtobuf - } - - d, err := unixfs.FSNodeFromBytes(lnpb.Data()) - if err != nil { - return err - } - t := d.Type() - lsLink := LsLink{ - Name: link.Name, - Hash: link.Cid.String(), - Type: t.String(), - } - if t == unixfs.TFile { - lsLink.Size = d.FileSize() - } else { - lsLink.Size = link.Size - } - links[i] = lsLink - } - case unixfs.TSymlink: - return fmt.Errorf("cannot list symlinks yet") - default: - return fmt.Errorf("unrecognized type: %s", t) - } - } - - return cmds.EmitOnce(res, &output) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *LsOutput) error { - tw := tabwriter.NewWriter(w, 1, 2, 1, ' ', 0) - - nonDirectories := []string{} - directories := []string{} - for argument, hash := range out.Arguments { - object, ok := out.Objects[hash] - if !ok { - return fmt.Errorf("unresolved hash: %s", hash) - } - - if object.Type == "Directory" { - directories = append(directories, argument) - } else { - nonDirectories = append(nonDirectories, argument) - } - } - sort.Strings(nonDirectories) - sort.Strings(directories) - - for _, argument := range nonDirectories { - fmt.Fprintf(tw, "%s\n", argument) - } - - seen := map[string]bool{} - for i, argument := range directories { - hash := out.Arguments[argument] - if _, ok := seen[hash]; ok { - continue - } - seen[hash] = true - - object := out.Objects[hash] - if i > 0 || len(nonDirectories) > 0 { - fmt.Fprintln(tw) - } - if len(out.Arguments) > 1 { - for _, arg := range directories[i:] { - if out.Arguments[arg] == hash { - fmt.Fprintf(tw, "%s:\n", arg) - } - } - } - for _, link := range object.Links { - fmt.Fprintf(tw, "%s\n", link.Name) - } - } - tw.Flush() - - return nil - }), - }, - Type: LsOutput{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/unixfs.go b/vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/unixfs.go deleted file mode 100644 index 90ea6c9a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/unixfs/unixfs.go +++ /dev/null @@ -1,26 +0,0 @@ -package unixfs - -import ( - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -var UnixFSCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with IPFS objects representing Unix filesystems.", - ShortDescription: ` -'ipfs file' provides a familiar interface to file systems represented -by IPFS objects, which hides ipfs implementation details like layout -objects (e.g. fanout and chunking). -`, - LongDescription: ` -'ipfs file' provides a familiar interface to file systems represented -by IPFS objects, which hides ipfs implementation details like layout -objects (e.g. fanout and chunking). -`, - }, - - Subcommands: map[string]*cmds.Command{ - "ls": LsCmd, - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/urlstore.go b/vendor/github.com/ipfs/go-ipfs/core/commands/urlstore.go deleted file mode 100644 index b9952306..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/urlstore.go +++ /dev/null @@ -1,147 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "net/http" - - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv" - filestore "github.com/ipfs/go-ipfs/filestore" - pin "github.com/ipfs/go-ipfs/pin" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - chunk "gx/ipfs/QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8/go-ipfs-chunker" - balanced "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer/balanced" - ihelper "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer/helpers" - trickle "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer/trickle" - cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" -) - -var urlStoreCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Interact with urlstore.", - }, - Subcommands: map[string]*cmds.Command{ - "add": urlAdd, - }, -} - -var urlAdd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Add URL via urlstore.", - LongDescription: ` -Add URLs to ipfs without storing the data locally. - -The URL provided must be stable and ideally on a web server under your -control. - -The file is added using raw-leaves but otherwise using the default -settings for 'ipfs add'. - -This command is considered temporary until a better solution can be -found. It may disappear or the semantics can change at any -time. -`, - }, - Options: []cmdkit.Option{ - cmdkit.BoolOption(trickleOptionName, "t", "Use trickle-dag format for dag generation."), - cmdkit.BoolOption(pinOptionName, "Pin this object when adding.").WithDefault(true), - }, - Arguments: []cmdkit.Argument{ - cmdkit.StringArg("url", true, false, "URL to add to IPFS"), - }, - Type: &BlockStat{}, - - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - url := req.Arguments[0] - n, err := cmdenv.GetNode(env) - if err != nil { - return err - } - - if !filestore.IsURL(url) { - return fmt.Errorf("unsupported url syntax: %s", url) - } - - cfg, err := n.Repo.Config() - if err != nil { - return err - } - - if !cfg.Experimental.UrlstoreEnabled { - return filestore.ErrUrlstoreNotEnabled - } - - useTrickledag, _ := req.Options[trickleOptionName].(bool) - dopin, _ := req.Options[pinOptionName].(bool) - - enc, err := cmdenv.GetCidEncoder(req) - if err != nil { - return err - } - - hreq, err := http.NewRequest("GET", url, nil) - if err != nil { - return err - } - - hres, err := http.DefaultClient.Do(hreq) - if err != nil { - return err - } - if hres.StatusCode != http.StatusOK { - return fmt.Errorf("expected code 200, got: %d", hres.StatusCode) - } - - if dopin { - // Take the pinlock - defer n.Blockstore.PinLock().Unlock() - } - - chk := chunk.NewSizeSplitter(hres.Body, chunk.DefaultBlockSize) - prefix := cid.NewPrefixV1(cid.DagProtobuf, mh.SHA2_256) - dbp := &ihelper.DagBuilderParams{ - Dagserv: n.DAG, - RawLeaves: true, - Maxlinks: ihelper.DefaultLinksPerBlock, - NoCopy: true, - CidBuilder: &prefix, - URL: url, - } - - layout := balanced.Layout - if useTrickledag { - layout = trickle.Layout - } - - db, err := dbp.New(chk) - if err != nil { - return err - } - root, err := layout(db) - if err != nil { - return err - } - - c := root.Cid() - if dopin { - n.Pinning.PinWithMode(c, pin.Recursive) - if err := n.Pinning.Flush(); err != nil { - return err - } - } - - return cmds.EmitOnce(res, &BlockStat{ - Key: enc.Encode(c), - Size: int(hres.ContentLength), - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, bs *BlockStat) error { - _, err := fmt.Fprintln(w, bs.Key) - return err - }), - }, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/commands/version.go b/vendor/github.com/ipfs/go-ipfs/core/commands/version.go deleted file mode 100644 index 939e3653..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/commands/version.go +++ /dev/null @@ -1,85 +0,0 @@ -package commands - -import ( - "fmt" - "io" - "runtime" - - version "github.com/ipfs/go-ipfs" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit" -) - -type VersionOutput struct { - Version string - Commit string - Repo string - System string - Golang string -} - -const ( - versionNumberOptionName = "number" - versionCommitOptionName = "commit" - versionRepoOptionName = "repo" - versionAllOptionName = "all" -) - -var VersionCmd = &cmds.Command{ - Helptext: cmdkit.HelpText{ - Tagline: "Show ipfs version information.", - ShortDescription: "Returns the current version of ipfs and exits.", - }, - - Options: []cmdkit.Option{ - cmdkit.BoolOption(versionNumberOptionName, "n", "Only show the version number."), - cmdkit.BoolOption(versionCommitOptionName, "Show the commit hash."), - cmdkit.BoolOption(versionRepoOptionName, "Show repo version."), - cmdkit.BoolOption(versionAllOptionName, "Show all version information"), - }, - Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error { - return cmds.EmitOnce(res, &VersionOutput{ - Version: version.CurrentVersionNumber, - Commit: version.CurrentCommit, - Repo: fmt.Sprint(fsrepo.RepoVersion), - System: runtime.GOARCH + "/" + runtime.GOOS, //TODO: Precise version here - Golang: runtime.Version(), - }) - }, - Encoders: cmds.EncoderMap{ - cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, version *VersionOutput) error { - commit, _ := req.Options[versionCommitOptionName].(bool) - commitTxt := "" - if commit { - commitTxt = "-" + version.Commit - } - - all, _ := req.Options[versionAllOptionName].(bool) - if all { - out := fmt.Sprintf("go-ipfs version: %s-%s\n"+ - "Repo version: %s\nSystem version: %s\nGolang version: %s\n", - version.Version, version.Commit, version.Repo, version.System, version.Golang) - fmt.Fprint(w, out) - return nil - } - - repo, _ := req.Options[versionRepoOptionName].(bool) - if repo { - fmt.Fprintln(w, version.Repo) - return nil - } - - number, _ := req.Options[versionNumberOptionName].(bool) - if number { - fmt.Fprintln(w, version.Version+commitTxt) - return nil - } - - fmt.Fprint(w, fmt.Sprintf("ipfs version %s%s\n", version.Version, commitTxt)) - return nil - }), - }, - Type: VersionOutput{}, -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/core.go b/vendor/github.com/ipfs/go-ipfs/core/core.go index c5fbfe4c..99379b85 100644 --- a/vendor/github.com/ipfs/go-ipfs/core/core.go +++ b/vendor/github.com/ipfs/go-ipfs/core/core.go @@ -28,54 +28,55 @@ import ( ipnsrp "github.com/ipfs/go-ipfs/namesys/republisher" p2p "github.com/ipfs/go-ipfs/p2p" pin "github.com/ipfs/go-ipfs/pin" + provider "github.com/ipfs/go-ipfs/provider" repo "github.com/ipfs/go-ipfs/repo" - u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - quic "gx/ipfs/QmQ4hhhYzrEoyPxcVQyBqhf3sshsATKX3D3VJUAGuHzaSD/go-libp2p-quic-transport" - resolver "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path/resolver" - rhelpers "gx/ipfs/QmRCrPXk2oUwpK1Cj2FXrUotRpddUxz56setkny2gz13Cx/go-libp2p-routing-helpers" - psrouter "gx/ipfs/QmRj3VMHa484MktgWaWr4KYys9AtxBBiFUhhEFKs9EvPiw/go-libp2p-pubsub-router" - libp2p "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p" - discovery "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/discovery" - p2pbhost "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/host/basic" - rhost "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/host/routed" - identify "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/protocol/identify" - goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - mamask "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter" - connmgr "gx/ipfs/QmSTKY2v62v9RjcfTMCFKMVAWvVjWGixkYWEi68iG7e1TT/go-libp2p-connmgr" - metrics "gx/ipfs/QmSwVwKUWzdf3ppM3FbBbpuqHUNtUFJPQQdfvKmgZoz2gR/go-libp2p-metrics" - mafilter "gx/ipfs/QmT6C5ebDy92zyRzdmSNyda5q7zkNXy68X47RDJiHpvaxd/go-maddr-filter" - ic "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - pnet "gx/ipfs/QmTwDsJUPioMKoiuXkAmiPxL1i4tjuG5vkxJgNpiHpXb3Y/go-libp2p-pnet" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - smux "gx/ipfs/QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT/go-stream-muxer" - pubsub "gx/ipfs/QmVzLBPPg4gdyX3XFnNaNDkK4V81ptT5X6WZVFzTUECXMa/go-libp2p-pubsub" - exchange "gx/ipfs/QmWokDcQdSZCxrNxgaRzQDDBofALhActzNBaxRLtiRkUHg/go-ipfs-exchange-interface" - ifconnmgr "gx/ipfs/QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd/go-libp2p-interface-connmgr" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - nilrouting "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/none" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - circuit "gx/ipfs/QmZBfqr863PYD7BKbmCFSNmzsqYmtr2DKgzubsQaiTQkMc/go-libp2p-circuit" - autonat "gx/ipfs/QmZpe6RmiGLMD7boFBEP9hNkhdPQVkdjNSWPGccYk2GoFy/go-libp2p-autonat-svc" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - mplex "gx/ipfs/QmaJvNdDccVkTELQLCGXWrLxgaQ14aMdhzZx1EiHPXKbDc/go-smux-multiplex" - mfs "gx/ipfs/Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx/go-mfs" - record "gx/ipfs/QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX/go-libp2p-record" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - bitswap "gx/ipfs/QmcSPuzpSbVLU6UHU4e5PwZpm4fHbCn5SbNR5ZNL6Mj63G/go-bitswap" - bsnet "gx/ipfs/QmcSPuzpSbVLU6UHU4e5PwZpm4fHbCn5SbNR5ZNL6Mj63G/go-bitswap/network" - yamux "gx/ipfs/QmcVFwGS6sjfxVico2bd1gQGRu5A2ymwZunVmMdeV5zEYb/go-smux-yamux" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - dht "gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht" - dhtopts "gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht/opts" + bitswap "github.com/ipfs/go-bitswap" + bsnet "github.com/ipfs/go-bitswap/network" + bserv "github.com/ipfs/go-blockservice" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + bstore "github.com/ipfs/go-ipfs-blockstore" + config "github.com/ipfs/go-ipfs-config" + exchange "github.com/ipfs/go-ipfs-exchange-interface" + nilrouting "github.com/ipfs/go-ipfs-routing/none" + u "github.com/ipfs/go-ipfs-util" + ipld "github.com/ipfs/go-ipld-format" + logging "github.com/ipfs/go-log" + merkledag "github.com/ipfs/go-merkledag" + mfs "github.com/ipfs/go-mfs" + resolver "github.com/ipfs/go-path/resolver" + ft "github.com/ipfs/go-unixfs" + goprocess "github.com/jbenet/goprocess" + libp2p "github.com/libp2p/go-libp2p" + autonat "github.com/libp2p/go-libp2p-autonat-svc" + circuit "github.com/libp2p/go-libp2p-circuit" + connmgr "github.com/libp2p/go-libp2p-connmgr" + ic "github.com/libp2p/go-libp2p-crypto" + p2phost "github.com/libp2p/go-libp2p-host" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + dht "github.com/libp2p/go-libp2p-kad-dht" + dhtopts "github.com/libp2p/go-libp2p-kad-dht/opts" + metrics "github.com/libp2p/go-libp2p-metrics" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + pnet "github.com/libp2p/go-libp2p-pnet" + pubsub "github.com/libp2p/go-libp2p-pubsub" + psrouter "github.com/libp2p/go-libp2p-pubsub-router" + quic "github.com/libp2p/go-libp2p-quic-transport" + record "github.com/libp2p/go-libp2p-record" + routing "github.com/libp2p/go-libp2p-routing" + rhelpers "github.com/libp2p/go-libp2p-routing-helpers" + discovery "github.com/libp2p/go-libp2p/p2p/discovery" + p2pbhost "github.com/libp2p/go-libp2p/p2p/host/basic" + rhost "github.com/libp2p/go-libp2p/p2p/host/routed" + identify "github.com/libp2p/go-libp2p/p2p/protocol/identify" + mafilter "github.com/libp2p/go-maddr-filter" + smux "github.com/libp2p/go-stream-muxer" + ma "github.com/multiformats/go-multiaddr" + mplex "github.com/whyrusleeping/go-smux-multiplex" + yamux "github.com/whyrusleeping/go-smux-yamux" + mamask "github.com/whyrusleeping/multiaddr-filter" ) const IpnsValidatorTag = "ipns" @@ -86,15 +87,6 @@ const DefaultIpnsCacheSize = 128 var log = logging.Logger("core") -type mode int - -const ( - // zero value is not a valid mode, must be explicitly set - localMode mode = iota - offlineMode - onlineMode -) - func init() { identify.ClientVersion = "go-ipfs/" + version.CurrentVersionNumber + "/" + version.CurrentCommit } @@ -133,6 +125,7 @@ type IpfsNode struct { Routing routing.IpfsRouting // the routing system. recommend ipfs-dht Exchange exchange.Interface // the block exchange + strategy (bitswap) Namesys namesys.NameSystem // the name system, resolves paths to hashes + Provider provider.Provider // the value provider system Reprovider *rp.Reprovider // the value reprovider system IpnsRepub *ipnsrp.Republisher @@ -145,8 +138,9 @@ type IpfsNode struct { proc goprocess.Process ctx context.Context - mode mode - localModeSet bool + // Flags + IsOnline bool // Online is set when networking is enabled. + IsDaemon bool // Daemon is set when running on a long-running daemon. } // Mounts defines what the node's mount state is. This should @@ -332,6 +326,12 @@ func (n *IpfsNode) startLateOnlineServices(ctx context.Context) error { return err } + // Provider + + n.Provider.Run() + + // Reprovider + var keyProvider rp.KeyChanFunc switch cfg.Reprovider.Strategy { @@ -399,7 +399,7 @@ func makeAddrsFactory(cfg config.Addresses) (p2pbhost.AddrsFactory, error) { var out []ma.Multiaddr for _, maddr := range addrs { // check for exact matches - ok, _ := noAnnAddrs[maddr.String()] + ok := noAnnAddrs[maddr.String()] // check for /ipcidr matches if !ok && !filters.AddrBlocked(maddr) { out = append(out, maddr) @@ -418,7 +418,7 @@ func makeSmuxTransportOption(mplexExp bool) libp2p.Option { ConnectionWriteTimeout: time.Second * 10, KeepAliveInterval: time.Second * 30, EnableKeepAlive: true, - MaxStreamWindowSize: uint32(1024 * 512), + MaxStreamWindowSize: uint32(16 * 1024 * 1024), // 16MiB LogOutput: ioutil.Discard, } @@ -675,6 +675,10 @@ func (n *IpfsNode) teardown() error { // needs to use another during its shutdown/cleanup process, it should be // closed before that other object + if n.Provider != nil { + closers = append(closers, n.Provider) + } + if n.FilesRoot != nil { closers = append(closers, n.FilesRoot) } @@ -721,28 +725,6 @@ func (n *IpfsNode) teardown() error { return nil } -// OnlineMode returns whether or not the IpfsNode is in OnlineMode. -func (n *IpfsNode) OnlineMode() bool { - return n.mode == onlineMode -} - -// SetLocal will set the IpfsNode to local mode -func (n *IpfsNode) SetLocal(isLocal bool) { - if isLocal { - n.mode = localMode - } - n.localModeSet = true -} - -// LocalMode returns whether or not the IpfsNode is in LocalMode -func (n *IpfsNode) LocalMode() bool { - if !n.localModeSet { - // programmer error should not happen - panic("local mode not set") - } - return n.mode == localMode -} - // Bootstrap will set and call the IpfsNodes bootstrap function. func (n *IpfsNode) Bootstrap(cfg BootstrapConfig) error { // TODO what should return value be when in offlineMode? @@ -836,9 +818,13 @@ func (n *IpfsNode) loadPrivateKey() error { return err } + if err := n.Peerstore.AddPrivKey(n.Identity, sk); err != nil { + return err + } + if err := n.Peerstore.AddPubKey(n.Identity, sk.GetPublic()); err != nil { + return err + } n.PrivateKey = sk - n.Peerstore.AddPrivKey(n.Identity, n.PrivateKey) - n.Peerstore.AddPubKey(n.Identity, sk.GetPublic()) return nil } diff --git a/vendor/github.com/ipfs/go-ipfs/core/core_test.go b/vendor/github.com/ipfs/go-ipfs/core/core_test.go deleted file mode 100644 index 3f2e097a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/core_test.go +++ /dev/null @@ -1,67 +0,0 @@ -package core - -import ( - "testing" - - context "context" - - "github.com/ipfs/go-ipfs/repo" - - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - datastore "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - syncds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" -) - -func TestInitialization(t *testing.T) { - ctx := context.Background() - id := testIdentity - - good := []*config.Config{ - { - Identity: id, - Addresses: config.Addresses{ - Swarm: []string{"/ip4/0.0.0.0/tcp/4001"}, - API: []string{"/ip4/127.0.0.1/tcp/8000"}, - }, - }, - - { - Identity: id, - Addresses: config.Addresses{ - Swarm: []string{"/ip4/0.0.0.0/tcp/4001"}, - API: []string{"/ip4/127.0.0.1/tcp/8000"}, - }, - }, - } - - bad := []*config.Config{ - {}, - } - - for i, c := range good { - r := &repo.Mock{ - C: *c, - D: syncds.MutexWrap(datastore.NewMapDatastore()), - } - n, err := NewNode(ctx, &BuildCfg{Repo: r}) - if n == nil || err != nil { - t.Error("Should have constructed.", i, err) - } - } - - for i, c := range bad { - r := &repo.Mock{ - C: *c, - D: syncds.MutexWrap(datastore.NewMapDatastore()), - } - n, err := NewNode(ctx, &BuildCfg{Repo: r}) - if n != nil || err == nil { - t.Error("Should have failed to construct.", i) - } - } -} - -var testIdentity = config.Identity{ - PeerID: "QmNgdzLieYi8tgfo2WfTUzNVH5hQK9oAYGVf6dxN12NrHt", - PrivKey: "CAASrRIwggkpAgEAAoICAQCwt67GTUQ8nlJhks6CgbLKOx7F5tl1r9zF4m3TUrG3Pe8h64vi+ILDRFd7QJxaJ/n8ux9RUDoxLjzftL4uTdtv5UXl2vaufCc/C0bhCRvDhuWPhVsD75/DZPbwLsepxocwVWTyq7/ZHsCfuWdoh/KNczfy+Gn33gVQbHCnip/uhTVxT7ARTiv8Qa3d7qmmxsR+1zdL/IRO0mic/iojcb3Oc/PRnYBTiAZFbZdUEit/99tnfSjMDg02wRayZaT5ikxa6gBTMZ16Yvienq7RwSELzMQq2jFA4i/TdiGhS9uKywltiN2LrNDBcQJSN02pK12DKoiIy+wuOCRgs2NTQEhU2sXCk091v7giTTOpFX2ij9ghmiRfoSiBFPJA5RGwiH6ansCHtWKY1K8BS5UORM0o3dYk87mTnKbCsdz4bYnGtOWafujYwzueGx8r+IWiys80IPQKDeehnLW6RgoyjszKgL/2XTyP54xMLSW+Qb3BPgDcPaPO0hmop1hW9upStxKsefW2A2d46Ds4HEpJEry7PkS5M4gKL/zCKHuxuXVk14+fZQ1rstMuvKjrekpAC2aVIKMI9VRA3awtnje8HImQMdj+r+bPmv0N8rTTr3eS4J8Yl7k12i95LLfK+fWnmUh22oTNzkRlaiERQrUDyE4XNCtJc0xs1oe1yXGqazCIAQIDAQABAoICAQCk1N/ftahlRmOfAXk//8wNl7FvdJD3le6+YSKBj0uWmN1ZbUSQk64chr12iGCOM2WY180xYjy1LOS44PTXaeW5bEiTSnb3b3SH+HPHaWCNM2EiSogHltYVQjKW+3tfH39vlOdQ9uQ+l9Gh6iTLOqsCRyszpYPqIBwi1NMLY2Ej8PpVU7ftnFWouHZ9YKS7nAEiMoowhTu/7cCIVwZlAy3AySTuKxPMVj9LORqC32PVvBHZaMPJ+X1Xyijqg6aq39WyoztkXg3+Xxx5j5eOrK6vO/Lp6ZUxaQilHDXoJkKEJjgIBDZpluss08UPfOgiWAGkW+L4fgUxY0qDLDAEMhyEBAn6KOKVL1JhGTX6GjhWziI94bddSpHKYOEIDzUy4H8BXnKhtnyQV6ELS65C2hj9D0IMBTj7edCF1poJy0QfdK0cuXgMvxHLeUO5uc2YWfbNosvKxqygB9rToy4b22YvNwsZUXsTY6Jt+p9V2OgXSKfB5VPeRbjTJL6xqvvUJpQytmII/C9JmSDUtCbYceHj6X9jgigLk20VV6nWHqCTj3utXD6NPAjoycVpLKDlnWEgfVELDIk0gobxUqqSm3jTPEKRPJgxkgPxbwxYumtw++1UY2y35w3WRDc2xYPaWKBCQeZy+mL6ByXp9bWlNvxS3Knb6oZp36/ovGnf2pGvdQKCAQEAyKpipz2lIUySDyE0avVWAmQb2tWGKXALPohzj7AwkcfEg2GuwoC6GyVE2sTJD1HRazIjOKn3yQORg2uOPeG7sx7EKHxSxCKDrbPawkvLCq8JYSy9TLvhqKUVVGYPqMBzu2POSLEA81QXas+aYjKOFWA2Zrjq26zV9ey3+6Lc6WULePgRQybU8+RHJc6fdjUCCfUxgOrUO2IQOuTJ+FsDpVnrMUGlokmWn23OjL4qTL9wGDnWGUs2pjSzNbj3qA0d8iqaiMUyHX/D/VS0wpeT1osNBSm8suvSibYBn+7wbIApbwXUxZaxMv2OHGz3empae4ckvNZs7r8wsI9UwFt8mwKCAQEA4XK6gZkv9t+3YCcSPw2ensLvL/xU7i2bkC9tfTGdjnQfzZXIf5KNdVuj/SerOl2S1s45NMs3ysJbADwRb4ahElD/V71nGzV8fpFTitC20ro9fuX4J0+twmBolHqeH9pmeGTjAeL1rvt6vxs4FkeG/yNft7GdXpXTtEGaObn8Mt0tPY+aB3UnKrnCQoQAlPyGHFrVRX0UEcp6wyyNGhJCNKeNOvqCHTFObhbhO+KWpWSN0MkVHnqaIBnIn1Te8FtvP/iTwXGnKc0YXJUG6+LM6LmOguW6tg8ZqiQeYyyR+e9eCFH4csLzkrTl1GxCxwEsoSLIMm7UDcjttW6tYEghkwKCAQEAmeCO5lCPYImnN5Lu71ZTLmI2OgmjaANTnBBnDbi+hgv61gUCToUIMejSdDCTPfwv61P3TmyIZs0luPGxkiKYHTNqmOE9Vspgz8Mr7fLRMNApESuNvloVIY32XVImj/GEzh4rAfM6F15U1sN8T/EUo6+0B/Glp+9R49QzAfRSE2g48/rGwgf1JVHYfVWFUtAzUA+GdqWdOixo5cCsYJbqpNHfWVZN/bUQnBFIYwUwysnC29D+LUdQEQQ4qOm+gFAOtrWU62zMkXJ4iLt8Ify6kbrvsRXgbhQIzzGS7WH9XDarj0eZciuslr15TLMC1Azadf+cXHLR9gMHA13mT9vYIQKCAQA/DjGv8cKCkAvf7s2hqROGYAs6Jp8yhrsN1tYOwAPLRhtnCs+rLrg17M2vDptLlcRuI/vIElamdTmylRpjUQpX7yObzLO73nfVhpwRJVMdGU394iBIDncQ+JoHfUwgqJskbUM40dvZdyjbrqc/Q/4z+hbZb+oN/GXb8sVKBATPzSDMKQ/xqgisYIw+wmDPStnPsHAaIWOtni47zIgilJzD0WEk78/YjmPbUrboYvWziK5JiRRJFA1rkQqV1c0M+OXixIm+/yS8AksgCeaHr0WUieGcJtjT9uE8vyFop5ykhRiNxy9wGaq6i7IEecsrkd6DqxDHWkwhFuO1bSE83q/VAoIBAEA+RX1i/SUi08p71ggUi9WFMqXmzELp1L3hiEjOc2AklHk2rPxsaTh9+G95BvjhP7fRa/Yga+yDtYuyjO99nedStdNNSg03aPXILl9gs3r2dPiQKUEXZJ3FrH6tkils/8BlpOIRfbkszrdZIKTO9GCdLWQ30dQITDACs8zV/1GFGrHFrqnnMe/NpIFHWNZJ0/WZMi8wgWO6Ik8jHEpQtVXRiXLqy7U6hk170pa4GHOzvftfPElOZZjy9qn7KjdAQqy6spIrAE94OEL+fBgbHQZGLpuTlj6w6YGbMtPU8uo7sXKoc6WOCb68JWft3tejGLDa1946HAWqVM9B/UcneNc=", -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/block.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/block.go deleted file mode 100644 index 29876c85..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/block.go +++ /dev/null @@ -1,142 +0,0 @@ -package coreapi - -import ( - "bytes" - "context" - "errors" - "io" - "io/ioutil" - - util "github.com/ipfs/go-ipfs/blocks/blockstoreutil" - pin "github.com/ipfs/go-ipfs/pin" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" -) - -type BlockAPI CoreAPI - -type BlockStat struct { - path coreiface.ResolvedPath - size int -} - -func (api *BlockAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.BlockPutOption) (coreiface.BlockStat, error) { - settings, pref, err := caopts.BlockPutOptions(opts...) - if err != nil { - return nil, err - } - - data, err := ioutil.ReadAll(src) - if err != nil { - return nil, err - } - - bcid, err := pref.Sum(data) - if err != nil { - return nil, err - } - - b, err := blocks.NewBlockWithCid(data, bcid) - if err != nil { - return nil, err - } - - if settings.Pin { - defer api.blockstore.PinLock().Unlock() - } - - err = api.blocks.AddBlock(b) - if err != nil { - return nil, err - } - - if settings.Pin { - api.pinning.PinWithMode(b.Cid(), pin.Recursive) - } - - return &BlockStat{path: coreiface.IpldPath(b.Cid()), size: len(data)}, nil -} - -func (api *BlockAPI) Get(ctx context.Context, p coreiface.Path) (io.Reader, error) { - rp, err := api.core().ResolvePath(ctx, p) - if err != nil { - return nil, err - } - - b, err := api.blocks.GetBlock(ctx, rp.Cid()) - if err != nil { - return nil, err - } - - return bytes.NewReader(b.RawData()), nil -} - -func (api *BlockAPI) Rm(ctx context.Context, p coreiface.Path, opts ...caopts.BlockRmOption) error { - rp, err := api.core().ResolvePath(ctx, p) - if err != nil { - return err - } - - settings, err := caopts.BlockRmOptions(opts...) - if err != nil { - return err - } - cids := []cid.Cid{rp.Cid()} - o := util.RmBlocksOpts{Force: settings.Force} - - out, err := util.RmBlocks(api.blockstore, api.pinning, cids, o) - if err != nil { - return err - } - - select { - case res, ok := <-out: - if !ok { - return nil - } - - remBlock, ok := res.(*util.RemovedBlock) - if !ok { - return errors.New("got unexpected output from util.RmBlocks") - } - - if remBlock.Error != "" { - return errors.New(remBlock.Error) - } - return nil - case <-ctx.Done(): - return ctx.Err() - } -} - -func (api *BlockAPI) Stat(ctx context.Context, p coreiface.Path) (coreiface.BlockStat, error) { - rp, err := api.core().ResolvePath(ctx, p) - if err != nil { - return nil, err - } - - b, err := api.blocks.GetBlock(ctx, rp.Cid()) - if err != nil { - return nil, err - } - - return &BlockStat{ - path: coreiface.IpldPath(b.Cid()), - size: len(b.RawData()), - }, nil -} - -func (bs *BlockStat) Size() int { - return bs.size -} - -func (bs *BlockStat) Path() coreiface.ResolvedPath { - return bs.path -} - -func (api *BlockAPI) core() coreiface.CoreAPI { - return (*CoreAPI)(api) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/coreapi.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/coreapi.go deleted file mode 100644 index 5b379a11..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/coreapi.go +++ /dev/null @@ -1,237 +0,0 @@ -/* -Package coreapi provides direct access to the core commands in IPFS. If you are -embedding IPFS directly in your Go program, this package is the public -interface you should use to read and write files or otherwise control IPFS. - -If you are running IPFS as a separate process, you should use `go-ipfs-api` to -work with it via HTTP. As we finalize the interfaces here, `go-ipfs-api` will -transparently adopt them so you can use the same code with either package. - -**NOTE: this package is experimental.** `go-ipfs` has mainly been developed -as a standalone application and library-style use of this package is still new. -Interfaces here aren't yet completely stable. -*/ -package coreapi - -import ( - "context" - "errors" - "fmt" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/namesys" - "github.com/ipfs/go-ipfs/pin" - "github.com/ipfs/go-ipfs/repo" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - pubsub "gx/ipfs/QmVzLBPPg4gdyX3XFnNaNDkK4V81ptT5X6WZVFzTUECXMa/go-libp2p-pubsub" - "gx/ipfs/QmWokDcQdSZCxrNxgaRzQDDBofALhActzNBaxRLtiRkUHg/go-ipfs-exchange-interface" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - offlineroute "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/offline" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - offlinexch "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" - record "gx/ipfs/QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX/go-libp2p-record" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("core/coreapi") - -type CoreAPI struct { - nctx context.Context - - identity peer.ID - privateKey ci.PrivKey - - repo repo.Repo - blockstore blockstore.GCBlockstore - baseBlocks blockstore.Blockstore - pinning pin.Pinner - - blocks bserv.BlockService - dag ipld.DAGService - - peerstore pstore.Peerstore - peerHost p2phost.Host - recordValidator record.Validator - exchange exchange.Interface - - namesys namesys.NameSystem - routing routing.IpfsRouting - - pubSub *pubsub.PubSub - - checkPublishAllowed func() error - checkOnline func(allowOffline bool) error - - // ONLY for re-applying options in WithOptions, DO NOT USE ANYWHERE ELSE - nd *core.IpfsNode - parentOpts options.ApiSettings -} - -// NewCoreAPI creates new instance of IPFS CoreAPI backed by go-ipfs Node. -func NewCoreAPI(n *core.IpfsNode, opts ...options.ApiOption) (coreiface.CoreAPI, error) { - parentOpts, err := options.ApiOptions() - if err != nil { - return nil, err - } - - return (&CoreAPI{nd: n, parentOpts: *parentOpts}).WithOptions(opts...) -} - -// Unixfs returns the UnixfsAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Unixfs() coreiface.UnixfsAPI { - return (*UnixfsAPI)(api) -} - -// Block returns the BlockAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Block() coreiface.BlockAPI { - return (*BlockAPI)(api) -} - -// Dag returns the DagAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Dag() coreiface.APIDagService { - return &dagAPI{ - api.dag, - api, - } -} - -// Name returns the NameAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Name() coreiface.NameAPI { - return (*NameAPI)(api) -} - -// Key returns the KeyAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Key() coreiface.KeyAPI { - return (*KeyAPI)(api) -} - -// Object returns the ObjectAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Object() coreiface.ObjectAPI { - return (*ObjectAPI)(api) -} - -// Pin returns the PinAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Pin() coreiface.PinAPI { - return (*PinAPI)(api) -} - -// Dht returns the DhtAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Dht() coreiface.DhtAPI { - return (*DhtAPI)(api) -} - -// Swarm returns the SwarmAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) Swarm() coreiface.SwarmAPI { - return (*SwarmAPI)(api) -} - -// PubSub returns the PubSubAPI interface implementation backed by the go-ipfs node -func (api *CoreAPI) PubSub() coreiface.PubSubAPI { - return (*PubSubAPI)(api) -} - -// WithOptions returns api with global options applied -func (api *CoreAPI) WithOptions(opts ...options.ApiOption) (coreiface.CoreAPI, error) { - settings := api.parentOpts // make sure to copy - _, err := options.ApiOptionsTo(&settings, opts...) - if err != nil { - return nil, err - } - - if api.nd == nil { - return nil, errors.New("cannot apply options to api without node") - } - - n := api.nd - - subApi := &CoreAPI{ - nctx: n.Context(), - - identity: n.Identity, - privateKey: n.PrivateKey, - - repo: n.Repo, - blockstore: n.Blockstore, - baseBlocks: n.BaseBlocks, - pinning: n.Pinning, - - blocks: n.Blocks, - dag: n.DAG, - - peerstore: n.Peerstore, - peerHost: n.PeerHost, - namesys: n.Namesys, - recordValidator: n.RecordValidator, - exchange: n.Exchange, - routing: n.Routing, - - pubSub: n.PubSub, - - nd: n, - parentOpts: settings, - } - - subApi.checkOnline = func(allowOffline bool) error { - if !n.OnlineMode() && !allowOffline { - return coreiface.ErrOffline - } - return nil - } - - subApi.checkPublishAllowed = func() error { - if n.Mounts.Ipns != nil && n.Mounts.Ipns.IsActive() { - return errors.New("cannot manually publish while IPNS is mounted") - } - return nil - } - - if settings.Offline { - cfg, err := n.Repo.Config() - if err != nil { - return nil, err - } - - cs := cfg.Ipns.ResolveCacheSize - if cs == 0 { - cs = core.DefaultIpnsCacheSize - } - if cs < 0 { - return nil, fmt.Errorf("cannot specify negative resolve cache size") - } - - subApi.routing = offlineroute.NewOfflineRouter(subApi.repo.Datastore(), subApi.recordValidator) - subApi.namesys = namesys.NewNameSystem(subApi.routing, subApi.repo.Datastore(), cs) - - subApi.peerstore = nil - subApi.peerHost = nil - subApi.recordValidator = nil - } - - if settings.Offline || !settings.FetchBlocks { - subApi.exchange = offlinexch.Exchange(subApi.blockstore) - subApi.blocks = bserv.New(subApi.blockstore, subApi.exchange) - subApi.dag = dag.NewDAGService(subApi.blocks) - } - - return subApi, nil -} - -// getSession returns new api backed by the same node with a read-only session DAG -func (api *CoreAPI) getSession(ctx context.Context) *CoreAPI { - sesApi := *api - - // TODO: We could also apply this to api.blocks, and compose into writable api, - // but this requires some changes in blockservice/merkledag - sesApi.dag = dag.NewReadOnlyDagService(dag.NewSession(ctx, api.dag)) - - return &sesApi -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/dag.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/dag.go deleted file mode 100644 index c89e6b45..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/dag.go +++ /dev/null @@ -1,53 +0,0 @@ -package coreapi - -import ( - "context" - - "github.com/ipfs/go-ipfs/pin" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" -) - -type dagAPI struct { - ipld.DAGService - - core *CoreAPI -} - -type pinningAdder CoreAPI - -func (adder *pinningAdder) Add(ctx context.Context, nd ipld.Node) error { - defer adder.blockstore.PinLock().Unlock() - - if err := adder.dag.Add(ctx, nd); err != nil { - return err - } - - adder.pinning.PinWithMode(nd.Cid(), pin.Recursive) - - return adder.pinning.Flush() -} - -func (adder *pinningAdder) AddMany(ctx context.Context, nds []ipld.Node) error { - defer adder.blockstore.PinLock().Unlock() - - if err := adder.dag.AddMany(ctx, nds); err != nil { - return err - } - - cids := cid.NewSet() - - for _, nd := range nds { - c := nd.Cid() - if cids.Visit(c) { - adder.pinning.PinWithMode(c, pin.Recursive) - } - } - - return adder.pinning.Flush() -} - -func (api *dagAPI) Pinning() ipld.NodeAdder { - return (*pinningAdder)(api.core) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/dht.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/dht.go deleted file mode 100644 index d17fd4d2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/dht.go +++ /dev/null @@ -1,141 +0,0 @@ -package coreapi - -import ( - "context" - "fmt" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - blockservice "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" - cidutil "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil" -) - -type DhtAPI CoreAPI - -func (api *DhtAPI) FindPeer(ctx context.Context, p peer.ID) (pstore.PeerInfo, error) { - err := api.checkOnline(false) - if err != nil { - return pstore.PeerInfo{}, err - } - - pi, err := api.routing.FindPeer(ctx, peer.ID(p)) - if err != nil { - return pstore.PeerInfo{}, err - } - - return pi, nil -} - -func (api *DhtAPI) FindProviders(ctx context.Context, p coreiface.Path, opts ...caopts.DhtFindProvidersOption) (<-chan pstore.PeerInfo, error) { - settings, err := caopts.DhtFindProvidersOptions(opts...) - if err != nil { - return nil, err - } - - err = api.checkOnline(false) - if err != nil { - return nil, err - } - - rp, err := api.core().ResolvePath(ctx, p) - if err != nil { - return nil, err - } - - numProviders := settings.NumProviders - if numProviders < 1 { - return nil, fmt.Errorf("number of providers must be greater than 0") - } - - pchan := api.routing.FindProvidersAsync(ctx, rp.Cid(), numProviders) - return pchan, nil -} - -func (api *DhtAPI) Provide(ctx context.Context, path coreiface.Path, opts ...caopts.DhtProvideOption) error { - settings, err := caopts.DhtProvideOptions(opts...) - if err != nil { - return err - } - - err = api.checkOnline(false) - if err != nil { - return err - } - - rp, err := api.core().ResolvePath(ctx, path) - if err != nil { - return err - } - - c := rp.Cid() - - has, err := api.blockstore.Has(c) - if err != nil { - return err - } - - if !has { - return fmt.Errorf("block %s not found locally, cannot provide", c) - } - - if settings.Recursive { - err = provideKeysRec(ctx, api.routing, api.blockstore, []cid.Cid{c}) - } else { - err = provideKeys(ctx, api.routing, []cid.Cid{c}) - } - if err != nil { - return err - } - - return nil -} - -func provideKeys(ctx context.Context, r routing.IpfsRouting, cids []cid.Cid) error { - for _, c := range cids { - err := r.Provide(ctx, c, true) - if err != nil { - return err - } - } - return nil -} - -func provideKeysRec(ctx context.Context, r routing.IpfsRouting, bs blockstore.Blockstore, cids []cid.Cid) error { - provided := cidutil.NewStreamingSet() - - errCh := make(chan error) - go func() { - dserv := dag.NewDAGService(blockservice.New(bs, offline.Exchange(bs))) - for _, c := range cids { - err := dag.EnumerateChildrenAsync(ctx, dag.GetLinksDirect(dserv), c, provided.Visitor(ctx)) - if err != nil { - errCh <- err - } - } - }() - - for { - select { - case k := <-provided.New: - err := r.Provide(ctx, k, true) - if err != nil { - return err - } - case err := <-errCh: - return err - case <-ctx.Done(): - return ctx.Err() - } - } -} - -func (api *DhtAPI) core() coreiface.CoreAPI { - return (*CoreAPI)(api) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/key.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/key.go deleted file mode 100644 index 10e45caf..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/key.go +++ /dev/null @@ -1,226 +0,0 @@ -package coreapi - -import ( - "context" - "crypto/rand" - "errors" - "fmt" - "sort" - - ipfspath "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - crypto "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" -) - -type KeyAPI CoreAPI - -type key struct { - name string - peerID peer.ID -} - -// Name returns the key name -func (k *key) Name() string { - return k.name -} - -// Path returns the path of the key. -func (k *key) Path() coreiface.Path { - path, err := coreiface.ParsePath(ipfspath.Join([]string{"/ipns", k.peerID.Pretty()})) - if err != nil { - panic("error parsing path: " + err.Error()) - } - - return path -} - -// ID returns key PeerID -func (k *key) ID() peer.ID { - return k.peerID -} - -// Generate generates new key, stores it in the keystore under the specified -// name and returns a base58 encoded multihash of its public key. -func (api *KeyAPI) Generate(ctx context.Context, name string, opts ...caopts.KeyGenerateOption) (coreiface.Key, error) { - options, err := caopts.KeyGenerateOptions(opts...) - if err != nil { - return nil, err - } - - if name == "self" { - return nil, fmt.Errorf("cannot create key with name 'self'") - } - - _, err = api.repo.Keystore().Get(name) - if err == nil { - return nil, fmt.Errorf("key with name '%s' already exists", name) - } - - var sk crypto.PrivKey - var pk crypto.PubKey - - switch options.Algorithm { - case "rsa": - if options.Size == -1 { - options.Size = caopts.DefaultRSALen - } - - priv, pub, err := crypto.GenerateKeyPairWithReader(crypto.RSA, options.Size, rand.Reader) - if err != nil { - return nil, err - } - - sk = priv - pk = pub - case "ed25519": - priv, pub, err := crypto.GenerateEd25519Key(rand.Reader) - if err != nil { - return nil, err - } - - sk = priv - pk = pub - default: - return nil, fmt.Errorf("unrecognized key type: %s", options.Algorithm) - } - - err = api.repo.Keystore().Put(name, sk) - if err != nil { - return nil, err - } - - pid, err := peer.IDFromPublicKey(pk) - if err != nil { - return nil, err - } - - return &key{name, pid}, nil -} - -// List returns a list keys stored in keystore. -func (api *KeyAPI) List(ctx context.Context) ([]coreiface.Key, error) { - keys, err := api.repo.Keystore().List() - if err != nil { - return nil, err - } - - sort.Strings(keys) - - out := make([]coreiface.Key, len(keys)+1) - out[0] = &key{"self", api.identity} - - for n, k := range keys { - privKey, err := api.repo.Keystore().Get(k) - if err != nil { - return nil, err - } - - pubKey := privKey.GetPublic() - - pid, err := peer.IDFromPublicKey(pubKey) - if err != nil { - return nil, err - } - - out[n+1] = &key{k, pid} - } - return out, nil -} - -// Rename renames `oldName` to `newName`. Returns the key and whether another -// key was overwritten, or an error. -func (api *KeyAPI) Rename(ctx context.Context, oldName string, newName string, opts ...caopts.KeyRenameOption) (coreiface.Key, bool, error) { - options, err := caopts.KeyRenameOptions(opts...) - if err != nil { - return nil, false, err - } - - ks := api.repo.Keystore() - - if oldName == "self" { - return nil, false, fmt.Errorf("cannot rename key with name 'self'") - } - - if newName == "self" { - return nil, false, fmt.Errorf("cannot overwrite key with name 'self'") - } - - oldKey, err := ks.Get(oldName) - if err != nil { - return nil, false, fmt.Errorf("no key named %s was found", oldName) - } - - pubKey := oldKey.GetPublic() - - pid, err := peer.IDFromPublicKey(pubKey) - if err != nil { - return nil, false, err - } - - // This is important, because future code will delete key `oldName` - // even if it is the same as newName. - if newName == oldName { - return &key{oldName, pid}, false, nil - } - - overwrite := false - if options.Force { - exist, err := ks.Has(newName) - if err != nil { - return nil, false, err - } - - if exist { - overwrite = true - err := ks.Delete(newName) - if err != nil { - return nil, false, err - } - } - } - - err = ks.Put(newName, oldKey) - if err != nil { - return nil, false, err - } - - return &key{newName, pid}, overwrite, ks.Delete(oldName) -} - -// Remove removes keys from keystore. Returns ipns path of the removed key. -func (api *KeyAPI) Remove(ctx context.Context, name string) (coreiface.Key, error) { - ks := api.repo.Keystore() - - if name == "self" { - return nil, fmt.Errorf("cannot remove key with name 'self'") - } - - removed, err := ks.Get(name) - if err != nil { - return nil, fmt.Errorf("no key named %s was found", name) - } - - pubKey := removed.GetPublic() - - pid, err := peer.IDFromPublicKey(pubKey) - if err != nil { - return nil, err - } - - err = ks.Delete(name) - if err != nil { - return nil, err - } - - return &key{"", pid}, nil -} - -func (api *KeyAPI) Self(ctx context.Context) (coreiface.Key, error) { - if api.identity == "" { - return nil, errors.New("identity not loaded") - } - - return &key{"self", api.identity}, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/name.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/name.go deleted file mode 100644 index 7ac93f5f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/name.go +++ /dev/null @@ -1,181 +0,0 @@ -package coreapi - -import ( - "context" - "fmt" - "strings" - "time" - - "github.com/ipfs/go-ipfs/keystore" - "github.com/ipfs/go-ipfs/namesys" - - ipath "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" -) - -type NameAPI CoreAPI - -type ipnsEntry struct { - name string - value coreiface.Path -} - -// Name returns the ipnsEntry name. -func (e *ipnsEntry) Name() string { - return e.name -} - -// Value returns the ipnsEntry value. -func (e *ipnsEntry) Value() coreiface.Path { - return e.value -} - -// Publish announces new IPNS name and returns the new IPNS entry. -func (api *NameAPI) Publish(ctx context.Context, p coreiface.Path, opts ...caopts.NamePublishOption) (coreiface.IpnsEntry, error) { - if err := api.checkPublishAllowed(); err != nil { - return nil, err - } - - options, err := caopts.NamePublishOptions(opts...) - if err != nil { - return nil, err - } - - err = api.checkOnline(options.AllowOffline) - if err != nil { - return nil, err - } - - pth, err := ipath.ParsePath(p.String()) - if err != nil { - return nil, err - } - - k, err := keylookup(api.privateKey, api.repo.Keystore(), options.Key) - if err != nil { - return nil, err - } - - if options.TTL != nil { - ctx = context.WithValue(ctx, "ipns-publish-ttl", *options.TTL) - } - - eol := time.Now().Add(options.ValidTime) - err = api.namesys.PublishWithEOL(ctx, k, pth, eol) - if err != nil { - return nil, err - } - - pid, err := peer.IDFromPrivateKey(k) - if err != nil { - return nil, err - } - - return &ipnsEntry{ - name: pid.Pretty(), - value: p, - }, nil -} - -func (api *NameAPI) Search(ctx context.Context, name string, opts ...caopts.NameResolveOption) (<-chan coreiface.IpnsResult, error) { - options, err := caopts.NameResolveOptions(opts...) - if err != nil { - return nil, err - } - - err = api.checkOnline(true) - if err != nil { - return nil, err - } - - var resolver namesys.Resolver = api.namesys - - if !options.Cache { - resolver = namesys.NewNameSystem(api.routing, api.repo.Datastore(), 0) - } - - if !strings.HasPrefix(name, "/ipns/") { - name = "/ipns/" + name - } - - out := make(chan coreiface.IpnsResult) - go func() { - defer close(out) - for res := range resolver.ResolveAsync(ctx, name, options.ResolveOpts...) { - p, _ := coreiface.ParsePath(res.Path.String()) - - select { - case out <- coreiface.IpnsResult{Path: p, Err: res.Err}: - case <-ctx.Done(): - return - } - } - }() - - return out, nil -} - -// Resolve attempts to resolve the newest version of the specified name and -// returns its path. -func (api *NameAPI) Resolve(ctx context.Context, name string, opts ...caopts.NameResolveOption) (coreiface.Path, error) { - results, err := api.Search(ctx, name, opts...) - if err != nil { - return nil, err - } - - err = coreiface.ErrResolveFailed - var p coreiface.Path - - for res := range results { - p, err = res.Path, res.Err - if err != nil { - break - } - } - - return p, err -} - -func keylookup(self ci.PrivKey, kstore keystore.Keystore, k string) (crypto.PrivKey, error) { - if k == "self" { - return self, nil - } - - res, err := kstore.Get(k) - if res != nil { - return res, nil - } - - if err != nil && err != keystore.ErrNoSuchKey { - return nil, err - } - - keys, err := kstore.List() - if err != nil { - return nil, err - } - - for _, key := range keys { - privKey, err := kstore.Get(key) - if err != nil { - return nil, err - } - - pubKey := privKey.GetPublic() - - pid, err := peer.IDFromPublicKey(pubKey) - if err != nil { - return nil, err - } - - if pid.Pretty() == k { - return privKey, nil - } - } - - return nil, fmt.Errorf("no key by the given name or PeerID was found") -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/object.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/object.go deleted file mode 100644 index 3813ca11..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/object.go +++ /dev/null @@ -1,373 +0,0 @@ -package coreapi - -import ( - "bytes" - "context" - "encoding/base64" - "encoding/json" - "encoding/xml" - "errors" - "fmt" - "io" - "io/ioutil" - - "github.com/ipfs/go-ipfs/dagutils" - "github.com/ipfs/go-ipfs/pin" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" -) - -const inputLimit = 2 << 20 - -type ObjectAPI CoreAPI - -type Link struct { - Name, Hash string - Size uint64 -} - -type Node struct { - Links []Link - Data string -} - -func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (ipld.Node, error) { - options, err := caopts.ObjectNewOptions(opts...) - if err != nil { - return nil, err - } - - var n ipld.Node - switch options.Type { - case "empty": - n = new(dag.ProtoNode) - case "unixfs-dir": - n = ft.EmptyDirNode() - } - - err = api.dag.Add(ctx, n) - if err != nil { - return nil, err - } - return n, nil -} - -func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.ObjectPutOption) (coreiface.ResolvedPath, error) { - options, err := caopts.ObjectPutOptions(opts...) - if err != nil { - return nil, err - } - - data, err := ioutil.ReadAll(io.LimitReader(src, inputLimit+10)) - if err != nil { - return nil, err - } - - var dagnode *dag.ProtoNode - switch options.InputEnc { - case "json": - node := new(Node) - err = json.Unmarshal(data, node) - if err != nil { - return nil, err - } - - // check that we have data in the Node to add - // otherwise we will add the empty object without raising an error - if nodeEmpty(node) { - return nil, errors.New("no data or links in this node") - } - - dagnode, err = deserializeNode(node, options.DataType) - if err != nil { - return nil, err - } - - case "protobuf": - dagnode, err = dag.DecodeProtobuf(data) - - case "xml": - node := new(Node) - err = xml.Unmarshal(data, node) - if err != nil { - return nil, err - } - - // check that we have data in the Node to add - // otherwise we will add the empty object without raising an error - if nodeEmpty(node) { - return nil, errors.New("no data or links in this node") - } - - dagnode, err = deserializeNode(node, options.DataType) - if err != nil { - return nil, err - } - - default: - return nil, errors.New("unknown object encoding") - } - - if err != nil { - return nil, err - } - - if options.Pin { - defer api.blockstore.PinLock().Unlock() - } - - err = api.dag.Add(ctx, dagnode) - if err != nil { - return nil, err - } - - if options.Pin { - api.pinning.PinWithMode(dagnode.Cid(), pin.Recursive) - err = api.pinning.Flush() - if err != nil { - return nil, err - } - } - - return coreiface.IpfsPath(dagnode.Cid()), nil -} - -func (api *ObjectAPI) Get(ctx context.Context, path coreiface.Path) (ipld.Node, error) { - return api.core().ResolveNode(ctx, path) -} - -func (api *ObjectAPI) Data(ctx context.Context, path coreiface.Path) (io.Reader, error) { - nd, err := api.core().ResolveNode(ctx, path) - if err != nil { - return nil, err - } - - pbnd, ok := nd.(*dag.ProtoNode) - if !ok { - return nil, dag.ErrNotProtobuf - } - - return bytes.NewReader(pbnd.Data()), nil -} - -func (api *ObjectAPI) Links(ctx context.Context, path coreiface.Path) ([]*ipld.Link, error) { - nd, err := api.core().ResolveNode(ctx, path) - if err != nil { - return nil, err - } - - links := nd.Links() - out := make([]*ipld.Link, len(links)) - for n, l := range links { - out[n] = (*ipld.Link)(l) - } - - return out, nil -} - -func (api *ObjectAPI) Stat(ctx context.Context, path coreiface.Path) (*coreiface.ObjectStat, error) { - nd, err := api.core().ResolveNode(ctx, path) - if err != nil { - return nil, err - } - - stat, err := nd.Stat() - if err != nil { - return nil, err - } - - out := &coreiface.ObjectStat{ - Cid: nd.Cid(), - NumLinks: stat.NumLinks, - BlockSize: stat.BlockSize, - LinksSize: stat.LinksSize, - DataSize: stat.DataSize, - CumulativeSize: stat.CumulativeSize, - } - - return out, nil -} - -func (api *ObjectAPI) AddLink(ctx context.Context, base coreiface.Path, name string, child coreiface.Path, opts ...caopts.ObjectAddLinkOption) (coreiface.ResolvedPath, error) { - options, err := caopts.ObjectAddLinkOptions(opts...) - if err != nil { - return nil, err - } - - baseNd, err := api.core().ResolveNode(ctx, base) - if err != nil { - return nil, err - } - - childNd, err := api.core().ResolveNode(ctx, child) - if err != nil { - return nil, err - } - - basePb, ok := baseNd.(*dag.ProtoNode) - if !ok { - return nil, dag.ErrNotProtobuf - } - - var createfunc func() *dag.ProtoNode - if options.Create { - createfunc = ft.EmptyDirNode - } - - e := dagutils.NewDagEditor(basePb, api.dag) - - err = e.InsertNodeAtPath(ctx, name, childNd, createfunc) - if err != nil { - return nil, err - } - - nnode, err := e.Finalize(ctx, api.dag) - if err != nil { - return nil, err - } - - return coreiface.IpfsPath(nnode.Cid()), nil -} - -func (api *ObjectAPI) RmLink(ctx context.Context, base coreiface.Path, link string) (coreiface.ResolvedPath, error) { - baseNd, err := api.core().ResolveNode(ctx, base) - if err != nil { - return nil, err - } - - basePb, ok := baseNd.(*dag.ProtoNode) - if !ok { - return nil, dag.ErrNotProtobuf - } - - e := dagutils.NewDagEditor(basePb, api.dag) - - err = e.RmLink(ctx, link) - if err != nil { - return nil, err - } - - nnode, err := e.Finalize(ctx, api.dag) - if err != nil { - return nil, err - } - - return coreiface.IpfsPath(nnode.Cid()), nil -} - -func (api *ObjectAPI) AppendData(ctx context.Context, path coreiface.Path, r io.Reader) (coreiface.ResolvedPath, error) { - return api.patchData(ctx, path, r, true) -} - -func (api *ObjectAPI) SetData(ctx context.Context, path coreiface.Path, r io.Reader) (coreiface.ResolvedPath, error) { - return api.patchData(ctx, path, r, false) -} - -func (api *ObjectAPI) patchData(ctx context.Context, path coreiface.Path, r io.Reader, appendData bool) (coreiface.ResolvedPath, error) { - nd, err := api.core().ResolveNode(ctx, path) - if err != nil { - return nil, err - } - - pbnd, ok := nd.(*dag.ProtoNode) - if !ok { - return nil, dag.ErrNotProtobuf - } - - data, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - - if appendData { - data = append(pbnd.Data(), data...) - } - pbnd.SetData(data) - - err = api.dag.Add(ctx, pbnd) - if err != nil { - return nil, err - } - - return coreiface.IpfsPath(pbnd.Cid()), nil -} - -func (api *ObjectAPI) Diff(ctx context.Context, before coreiface.Path, after coreiface.Path) ([]coreiface.ObjectChange, error) { - beforeNd, err := api.core().ResolveNode(ctx, before) - if err != nil { - return nil, err - } - - afterNd, err := api.core().ResolveNode(ctx, after) - if err != nil { - return nil, err - } - - changes, err := dagutils.Diff(ctx, api.dag, beforeNd, afterNd) - if err != nil { - return nil, err - } - - out := make([]coreiface.ObjectChange, len(changes)) - for i, change := range changes { - out[i] = coreiface.ObjectChange{ - Type: change.Type, - Path: change.Path, - } - - if change.Before.Defined() { - out[i].Before = coreiface.IpfsPath(change.Before) - } - - if change.After.Defined() { - out[i].After = coreiface.IpfsPath(change.After) - } - } - - return out, nil -} - -func (api *ObjectAPI) core() coreiface.CoreAPI { - return (*CoreAPI)(api) -} - -func deserializeNode(nd *Node, dataFieldEncoding string) (*dag.ProtoNode, error) { - dagnode := new(dag.ProtoNode) - switch dataFieldEncoding { - case "text": - dagnode.SetData([]byte(nd.Data)) - case "base64": - data, err := base64.StdEncoding.DecodeString(nd.Data) - if err != nil { - return nil, err - } - dagnode.SetData(data) - default: - return nil, fmt.Errorf("unkown data field encoding") - } - - links := make([]*ipld.Link, len(nd.Links)) - for i, link := range nd.Links { - c, err := cid.Decode(link.Hash) - if err != nil { - return nil, err - } - links[i] = &ipld.Link{ - Name: link.Name, - Size: link.Size, - Cid: c, - } - } - dagnode.SetLinks(links) - - return dagnode, nil -} - -func nodeEmpty(node *Node) bool { - return node.Data == "" && len(node.Links) == 0 -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/path.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/path.go deleted file mode 100644 index 741b35a7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/path.go +++ /dev/null @@ -1,75 +0,0 @@ -package coreapi - -import ( - "context" - "fmt" - gopath "path" - - "github.com/ipfs/go-ipfs/core" - - ipfspath "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path/resolver" - "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" -) - -// ResolveNode resolves the path `p` using Unixfs resolver, gets and returns the -// resolved Node. -func (api *CoreAPI) ResolveNode(ctx context.Context, p coreiface.Path) (ipld.Node, error) { - rp, err := api.ResolvePath(ctx, p) - if err != nil { - return nil, err - } - - node, err := api.dag.Get(ctx, rp.Cid()) - if err != nil { - return nil, err - } - return node, nil -} - -// ResolvePath resolves the path `p` using Unixfs resolver, returns the -// resolved path. -func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreiface.ResolvedPath, error) { - if _, ok := p.(coreiface.ResolvedPath); ok { - return p.(coreiface.ResolvedPath), nil - } - - ipath := ipfspath.Path(p.String()) - ipath, err := core.ResolveIPNS(ctx, api.namesys, ipath) - if err == core.ErrNoNamesys { - return nil, coreiface.ErrOffline - } else if err != nil { - return nil, err - } - - var resolveOnce resolver.ResolveOnce - - switch ipath.Segments()[0] { - case "ipfs": - resolveOnce = uio.ResolveUnixfsOnce - case "ipld": - resolveOnce = resolver.ResolveSingle - default: - return nil, fmt.Errorf("unsupported path namespace: %s", p.Namespace()) - } - - r := &resolver.Resolver{ - DAG: api.dag, - ResolveOnce: resolveOnce, - } - - node, rest, err := r.ResolveToLastNode(ctx, ipath) - if err != nil { - return nil, err - } - - root, err := cid.Parse(ipath.Segments()[1]) - if err != nil { - return nil, err - } - - return coreiface.NewResolvedPath(ipath, node, root, gopath.Join(rest...)), nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/pin.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/pin.go deleted file mode 100644 index dc569626..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/pin.go +++ /dev/null @@ -1,224 +0,0 @@ -package coreapi - -import ( - "context" - "fmt" - - merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" -) - -type PinAPI CoreAPI - -func (api *PinAPI) Add(ctx context.Context, p coreiface.Path, opts ...caopts.PinAddOption) error { - dagNode, err := api.core().ResolveNode(ctx, p) - if err != nil { - return fmt.Errorf("pin: %s", err) - } - - settings, err := caopts.PinAddOptions(opts...) - if err != nil { - return err - } - - defer api.blockstore.PinLock().Unlock() - - err = api.pinning.Pin(ctx, dagNode, settings.Recursive) - if err != nil { - return fmt.Errorf("pin: %s", err) - } - - return api.pinning.Flush() -} - -func (api *PinAPI) Ls(ctx context.Context, opts ...caopts.PinLsOption) ([]coreiface.Pin, error) { - settings, err := caopts.PinLsOptions(opts...) - if err != nil { - return nil, err - } - - switch settings.Type { - case "all", "direct", "indirect", "recursive": - default: - return nil, fmt.Errorf("invalid type '%s', must be one of {direct, indirect, recursive, all}", settings.Type) - } - - return api.pinLsAll(settings.Type, ctx) -} - -// Rm pin rm api -func (api *PinAPI) Rm(ctx context.Context, p coreiface.Path, opts ...caopts.PinRmOption) error { - rp, err := api.core().ResolvePath(ctx, p) - if err != nil { - return err - } - - settings, err := caopts.PinRmOptions(opts...) - if err != nil { - return err - } - - if err = api.pinning.Unpin(ctx, rp.Cid(), settings.Recursive); err != nil { - return err - } - - return api.pinning.Flush() -} - -func (api *PinAPI) Update(ctx context.Context, from coreiface.Path, to coreiface.Path, opts ...caopts.PinUpdateOption) error { - settings, err := caopts.PinUpdateOptions(opts...) - if err != nil { - return err - } - - fp, err := api.core().ResolvePath(ctx, from) - if err != nil { - return err - } - - tp, err := api.core().ResolvePath(ctx, to) - if err != nil { - return err - } - - defer api.blockstore.PinLock().Unlock() - - err = api.pinning.Update(ctx, fp.Cid(), tp.Cid(), settings.Unpin) - if err != nil { - return err - } - - return api.pinning.Flush() -} - -type pinStatus struct { - cid cid.Cid - ok bool - badNodes []coreiface.BadPinNode -} - -// BadNode is used in PinVerifyRes -type badNode struct { - path coreiface.ResolvedPath - err error -} - -func (s *pinStatus) Ok() bool { - return s.ok -} - -func (s *pinStatus) BadNodes() []coreiface.BadPinNode { - return s.badNodes -} - -func (n *badNode) Path() coreiface.ResolvedPath { - return n.path -} - -func (n *badNode) Err() error { - return n.err -} - -func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, error) { - visited := make(map[cid.Cid]*pinStatus) - bs := api.blockstore - DAG := merkledag.NewDAGService(bserv.New(bs, offline.Exchange(bs))) - getLinks := merkledag.GetLinksWithDAG(DAG) - recPins := api.pinning.RecursiveKeys() - - var checkPin func(root cid.Cid) *pinStatus - checkPin = func(root cid.Cid) *pinStatus { - if status, ok := visited[root]; ok { - return status - } - - links, err := getLinks(ctx, root) - if err != nil { - status := &pinStatus{ok: false, cid: root} - status.badNodes = []coreiface.BadPinNode{&badNode{path: coreiface.IpldPath(root), err: err}} - visited[root] = status - return status - } - - status := &pinStatus{ok: true, cid: root} - for _, lnk := range links { - res := checkPin(lnk.Cid) - if !res.ok { - status.ok = false - status.badNodes = append(status.badNodes, res.badNodes...) - } - } - - visited[root] = status - return status - } - - out := make(chan coreiface.PinStatus) - go func() { - defer close(out) - for _, c := range recPins { - out <- checkPin(c) - } - }() - - return out, nil -} - -type pinInfo struct { - pinType string - path coreiface.ResolvedPath -} - -func (p *pinInfo) Path() coreiface.ResolvedPath { - return p.path -} - -func (p *pinInfo) Type() string { - return p.pinType -} - -func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pin, error) { - - keys := make(map[cid.Cid]*pinInfo) - - AddToResultKeys := func(keyList []cid.Cid, typeStr string) { - for _, c := range keyList { - keys[c] = &pinInfo{ - pinType: typeStr, - path: coreiface.IpldPath(c), - } - } - } - - if typeStr == "direct" || typeStr == "all" { - AddToResultKeys(api.pinning.DirectKeys(), "direct") - } - if typeStr == "indirect" || typeStr == "all" { - set := cid.NewSet() - for _, k := range api.pinning.RecursiveKeys() { - err := merkledag.EnumerateChildren(ctx, merkledag.GetLinksWithDAG(api.dag), k, set.Visit) - if err != nil { - return nil, err - } - } - AddToResultKeys(set.Keys(), "indirect") - } - if typeStr == "recursive" || typeStr == "all" { - AddToResultKeys(api.pinning.RecursiveKeys(), "recursive") - } - - out := make([]coreiface.Pin, 0, len(keys)) - for _, v := range keys { - out = append(out, v) - } - - return out, nil -} - -func (api *PinAPI) core() coreiface.CoreAPI { - return (*CoreAPI)(api) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/pubsub.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/pubsub.go deleted file mode 100644 index 693e6d80..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/pubsub.go +++ /dev/null @@ -1,170 +0,0 @@ -package coreapi - -import ( - "context" - "errors" - "strings" - "sync" - "time" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - pubsub "gx/ipfs/QmVzLBPPg4gdyX3XFnNaNDkK4V81ptT5X6WZVFzTUECXMa/go-libp2p-pubsub" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - caopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -type PubSubAPI CoreAPI - -type pubSubSubscription struct { - cancel context.CancelFunc - subscription *pubsub.Subscription -} - -type pubSubMessage struct { - msg *pubsub.Message -} - -func (api *PubSubAPI) Ls(ctx context.Context) ([]string, error) { - _, err := api.checkNode() - if err != nil { - return nil, err - } - - return api.pubSub.GetTopics(), nil -} - -func (api *PubSubAPI) Peers(ctx context.Context, opts ...caopts.PubSubPeersOption) ([]peer.ID, error) { - _, err := api.checkNode() - if err != nil { - return nil, err - } - - settings, err := caopts.PubSubPeersOptions(opts...) - if err != nil { - return nil, err - } - - peers := api.pubSub.ListPeers(settings.Topic) - out := make([]peer.ID, len(peers)) - - for i, peer := range peers { - out[i] = peer - } - - return out, nil -} - -func (api *PubSubAPI) Publish(ctx context.Context, topic string, data []byte) error { - _, err := api.checkNode() - if err != nil { - return err - } - - return api.pubSub.Publish(topic, data) -} - -func (api *PubSubAPI) Subscribe(ctx context.Context, topic string, opts ...caopts.PubSubSubscribeOption) (coreiface.PubSubSubscription, error) { - options, err := caopts.PubSubSubscribeOptions(opts...) - - r, err := api.checkNode() - if err != nil { - return nil, err - } - - sub, err := api.pubSub.Subscribe(topic) - if err != nil { - return nil, err - } - - pubctx, cancel := context.WithCancel(api.nctx) - - if options.Discover { - go func() { - blk, err := api.core().Block().Put(pubctx, strings.NewReader("floodsub:"+topic)) - if err != nil { - log.Error("pubsub discovery: ", err) - return - } - - connectToPubSubPeers(pubctx, r, api.peerHost, blk.Path().Cid()) - }() - } - - return &pubSubSubscription{cancel, sub}, nil -} - -func connectToPubSubPeers(ctx context.Context, r routing.IpfsRouting, ph p2phost.Host, cid cid.Cid) { - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - provs := r.FindProvidersAsync(ctx, cid, 10) - var wg sync.WaitGroup - for p := range provs { - wg.Add(1) - go func(pi pstore.PeerInfo) { - defer wg.Done() - ctx, cancel := context.WithTimeout(ctx, time.Second*10) - defer cancel() - err := ph.Connect(ctx, pi) - if err != nil { - log.Info("pubsub discover: ", err) - return - } - log.Info("connected to pubsub peer:", pi.ID) - }(p) - } - - wg.Wait() -} - -func (api *PubSubAPI) checkNode() (routing.IpfsRouting, error) { - if api.pubSub == nil { - return nil, errors.New("experimental pubsub feature not enabled. Run daemon with --enable-pubsub-experiment to use.") - } - - err := api.checkOnline(false) - if err != nil { - return nil, err - } - - return api.routing, nil -} - -func (sub *pubSubSubscription) Close() error { - sub.cancel() - sub.subscription.Cancel() - return nil -} - -func (sub *pubSubSubscription) Next(ctx context.Context) (coreiface.PubSubMessage, error) { - msg, err := sub.subscription.Next(ctx) - if err != nil { - return nil, err - } - - return &pubSubMessage{msg}, nil -} - -func (msg *pubSubMessage) From() peer.ID { - return peer.ID(msg.msg.From) -} - -func (msg *pubSubMessage) Data() []byte { - return msg.msg.Data -} - -func (msg *pubSubMessage) Seq() []byte { - return msg.msg.Seqno -} - -func (msg *pubSubMessage) Topics() []string { - return msg.msg.TopicIDs -} - -func (api *PubSubAPI) core() coreiface.CoreAPI { - return (*CoreAPI)(api) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/swarm.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/swarm.go deleted file mode 100644 index 9243f3cd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/swarm.go +++ /dev/null @@ -1,173 +0,0 @@ -package coreapi - -import ( - "context" - "sort" - "time" - - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - inet "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - net "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - swarm "gx/ipfs/Qma3Xp3FXFSP4prirEiRYHJ2tgGE8EAx9i6JLziPLpAQjq/go-libp2p-swarm" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - iaddr "gx/ipfs/Qmdf1djucJ1jX5RMF1bDbFg5ybZnupmSAeETQQ3ZV7z6dU/go-ipfs-addr" -) - -type SwarmAPI CoreAPI - -type connInfo struct { - peerstore pstore.Peerstore - conn net.Conn - dir net.Direction - - addr ma.Multiaddr - peer peer.ID - muxer string -} - -func (api *SwarmAPI) Connect(ctx context.Context, pi pstore.PeerInfo) error { - if api.peerHost == nil { - return coreiface.ErrOffline - } - - if swrm, ok := api.peerHost.Network().(*swarm.Swarm); ok { - swrm.Backoff().Clear(pi.ID) - } - - return api.peerHost.Connect(ctx, pi) -} - -func (api *SwarmAPI) Disconnect(ctx context.Context, addr ma.Multiaddr) error { - if api.peerHost == nil { - return coreiface.ErrOffline - } - - ia, err := iaddr.ParseMultiaddr(ma.Multiaddr(addr)) - if err != nil { - return err - } - - taddr := ia.Transport() - id := ia.ID() - net := api.peerHost.Network() - - if taddr == nil { - if net.Connectedness(id) != inet.Connected { - return coreiface.ErrNotConnected - } else if err := net.ClosePeer(id); err != nil { - return err - } - } else { - for _, conn := range net.ConnsToPeer(id) { - if !conn.RemoteMultiaddr().Equal(taddr) { - continue - } - - return conn.Close() - } - - return coreiface.ErrConnNotFound - } - - return nil -} - -func (api *SwarmAPI) KnownAddrs(context.Context) (map[peer.ID][]ma.Multiaddr, error) { - if api.peerHost == nil { - return nil, coreiface.ErrOffline - } - - addrs := make(map[peer.ID][]ma.Multiaddr) - ps := api.peerHost.Network().Peerstore() - for _, p := range ps.Peers() { - for _, a := range ps.Addrs(p) { - addrs[p] = append(addrs[p], a) - } - sort.Slice(addrs[p], func(i, j int) bool { - return addrs[p][i].String() < addrs[p][j].String() - }) - } - - return addrs, nil -} - -func (api *SwarmAPI) LocalAddrs(context.Context) ([]ma.Multiaddr, error) { - if api.peerHost == nil { - return nil, coreiface.ErrOffline - } - - return api.peerHost.Addrs(), nil -} - -func (api *SwarmAPI) ListenAddrs(context.Context) ([]ma.Multiaddr, error) { - if api.peerHost == nil { - return nil, coreiface.ErrOffline - } - - return api.peerHost.Network().InterfaceListenAddresses() -} - -func (api *SwarmAPI) Peers(context.Context) ([]coreiface.ConnectionInfo, error) { - if api.peerHost == nil { - return nil, coreiface.ErrOffline - } - - conns := api.peerHost.Network().Conns() - - var out []coreiface.ConnectionInfo - for _, c := range conns { - pid := c.RemotePeer() - addr := c.RemoteMultiaddr() - - ci := &connInfo{ - peerstore: api.peerstore, - conn: c, - dir: c.Stat().Direction, - - addr: addr, - peer: pid, - } - - /* - // FIXME(steb): - swcon, ok := c.(*swarm.Conn) - if ok { - ci.muxer = fmt.Sprintf("%T", swcon.StreamConn().Conn()) - } - */ - - out = append(out, ci) - } - - return out, nil -} - -func (ci *connInfo) ID() peer.ID { - return ci.peer -} - -func (ci *connInfo) Address() ma.Multiaddr { - return ci.addr -} - -func (ci *connInfo) Direction() net.Direction { - return ci.dir -} - -func (ci *connInfo) Latency() (time.Duration, error) { - return ci.peerstore.LatencyEWMA(peer.ID(ci.ID())), nil -} - -func (ci *connInfo) Streams() ([]protocol.ID, error) { - streams := ci.conn.GetStreams() - - out := make([]protocol.ID, len(streams)) - for i, s := range streams { - out[i] = s.Protocol() - } - - return out, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/test/api_test.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/test/api_test.go deleted file mode 100644 index 4c2cfc33..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/test/api_test.go +++ /dev/null @@ -1,121 +0,0 @@ -package test - -import ( - "context" - "encoding/base64" - "fmt" - "os" - "path/filepath" - "testing" - - "github.com/ipfs/go-ipfs/filestore" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/coreapi" - mock "github.com/ipfs/go-ipfs/core/mock" - "github.com/ipfs/go-ipfs/keystore" - "github.com/ipfs/go-ipfs/repo" - - "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - syncds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/tests" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -const testPeerID = "QmTFauExutTsy4XP6JbMFcw2Wa9645HJt2bTqL6qYDCKfe" - -type NodeProvider struct{} - -func (NodeProvider) MakeAPISwarm(ctx context.Context, fullIdentity bool, n int) ([]coreiface.CoreAPI, error) { - mn := mocknet.New(ctx) - - nodes := make([]*core.IpfsNode, n) - apis := make([]coreiface.CoreAPI, n) - - for i := 0; i < n; i++ { - var ident config.Identity - if fullIdentity { - sk, pk, err := ci.GenerateKeyPair(ci.RSA, 512) - if err != nil { - return nil, err - } - - id, err := peer.IDFromPublicKey(pk) - if err != nil { - return nil, err - } - - kbytes, err := sk.Bytes() - if err != nil { - return nil, err - } - - ident = config.Identity{ - PeerID: id.Pretty(), - PrivKey: base64.StdEncoding.EncodeToString(kbytes), - } - } else { - ident = config.Identity{ - PeerID: testPeerID, - } - } - - c := config.Config{} - c.Addresses.Swarm = []string{fmt.Sprintf("/ip4/127.0.%d.1/tcp/4001", i)} - c.Identity = ident - c.Experimental.FilestoreEnabled = true - - ds := datastore.NewMapDatastore() - r := &repo.Mock{ - C: c, - D: syncds.MutexWrap(ds), - K: keystore.NewMemKeystore(), - F: filestore.NewFileManager(ds, filepath.Dir(os.TempDir())), - } - - node, err := core.NewNode(ctx, &core.BuildCfg{ - Repo: r, - Host: mock.MockHostOption(mn), - Online: fullIdentity, - ExtraOpts: map[string]bool{ - "pubsub": true, - }, - }) - if err != nil { - return nil, err - } - nodes[i] = node - apis[i], err = coreapi.NewCoreAPI(node) - if err != nil { - return nil, err - } - } - - err := mn.LinkAll() - if err != nil { - return nil, err - } - - bsinf := core.BootstrapConfigWithPeers( - []pstore.PeerInfo{ - nodes[0].Peerstore.PeerInfo(nodes[0].Identity), - }, - ) - - for _, n := range nodes[1:] { - if err := n.Bootstrap(bsinf); err != nil { - return nil, err - } - } - - return apis, nil -} - -func TestIface(t *testing.T) { - tests.TestApi(&NodeProvider{})(t) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreapi/unixfs.go b/vendor/github.com/ipfs/go-ipfs/core/coreapi/unixfs.go deleted file mode 100644 index 6356aeaa..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreapi/unixfs.go +++ /dev/null @@ -1,242 +0,0 @@ -package coreapi - -import ( - "context" - "fmt" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/filestore" - - "github.com/ipfs/go-ipfs/core/coreunix" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - dagtest "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag/test" - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - blockservice "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - mfs "gx/ipfs/Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx/go-mfs" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - unixfile "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/file" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" - cidutil "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil" -) - -type UnixfsAPI CoreAPI - -// Add builds a merkledag node from a reader, adds it to the blockstore, -// and returns the key representing that node. -func (api *UnixfsAPI) Add(ctx context.Context, files files.Node, opts ...options.UnixfsAddOption) (coreiface.ResolvedPath, error) { - settings, prefix, err := options.UnixfsAddOptions(opts...) - if err != nil { - return nil, err - } - - cfg, err := api.repo.Config() - if err != nil { - return nil, err - } - - // check if repo will exceed storage limit if added - // TODO: this doesn't handle the case if the hashed file is already in blocks (deduplicated) - // TODO: conditional GC is disabled due to it is somehow not possible to pass the size to the daemon - //if err := corerepo.ConditionalGC(req.Context(), n, uint64(size)); err != nil { - // res.SetError(err, cmdkit.ErrNormal) - // return - //} - - if settings.NoCopy && !cfg.Experimental.FilestoreEnabled { - return nil, filestore.ErrFilestoreNotEnabled - } - - addblockstore := api.blockstore - if !(settings.FsCache || settings.NoCopy) { - addblockstore = bstore.NewGCBlockstore(api.baseBlocks, api.blockstore) - } - exch := api.exchange - pinning := api.pinning - - if settings.OnlyHash { - nilnode, err := core.NewNode(ctx, &core.BuildCfg{ - //TODO: need this to be true or all files - // hashed will be stored in memory! - NilRepo: true, - }) - if err != nil { - return nil, err - } - addblockstore = nilnode.Blockstore - exch = nilnode.Exchange - pinning = nilnode.Pinning - } - - bserv := blockservice.New(addblockstore, exch) // hash security 001 - dserv := dag.NewDAGService(bserv) - - fileAdder, err := coreunix.NewAdder(ctx, pinning, addblockstore, dserv) - if err != nil { - return nil, err - } - - fileAdder.Chunker = settings.Chunker - if settings.Events != nil { - fileAdder.Out = settings.Events - fileAdder.Progress = settings.Progress - } - fileAdder.Hidden = settings.Hidden - fileAdder.Wrap = settings.Wrap - fileAdder.Pin = settings.Pin && !settings.OnlyHash - fileAdder.Silent = settings.Silent - fileAdder.RawLeaves = settings.RawLeaves - fileAdder.NoCopy = settings.NoCopy - fileAdder.Name = settings.StdinName - fileAdder.CidBuilder = prefix - - switch settings.Layout { - case options.BalancedLayout: - // Default - case options.TrickleLayout: - fileAdder.Trickle = true - default: - return nil, fmt.Errorf("unknown layout: %d", settings.Layout) - } - - if settings.Inline { - fileAdder.CidBuilder = cidutil.InlineBuilder{ - Builder: fileAdder.CidBuilder, - Limit: settings.InlineLimit, - } - } - - if settings.OnlyHash { - md := dagtest.Mock() - emptyDirNode := ft.EmptyDirNode() - // Use the same prefix for the "empty" MFS root as for the file adder. - emptyDirNode.SetCidBuilder(fileAdder.CidBuilder) - mr, err := mfs.NewRoot(ctx, md, emptyDirNode, nil) - if err != nil { - return nil, err - } - - fileAdder.SetMfsRoot(mr) - } - - nd, err := fileAdder.AddAllAndPin(files) - if err != nil { - return nil, err - } - return coreiface.IpfsPath(nd.Cid()), nil -} - -func (api *UnixfsAPI) Get(ctx context.Context, p coreiface.Path) (files.Node, error) { - ses := api.core().getSession(ctx) - - nd, err := ses.ResolveNode(ctx, p) - if err != nil { - return nil, err - } - - return unixfile.NewUnixfsFile(ctx, ses.dag, nd) -} - -// Ls returns the contents of an IPFS or IPNS object(s) at path p, with the format: -// ` ` -func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path, opts ...options.UnixfsLsOption) (<-chan coreiface.LsLink, error) { - settings, err := options.UnixfsLsOptions(opts...) - if err != nil { - return nil, err - } - - ses := api.core().getSession(ctx) - uses := (*UnixfsAPI)(ses) - - dagnode, err := ses.ResolveNode(ctx, p) - if err != nil { - return nil, err - } - - dir, err := uio.NewDirectoryFromNode(ses.dag, dagnode) - if err == uio.ErrNotADir { - return uses.lsFromLinks(ctx, dagnode.Links(), settings) - } - if err != nil { - return nil, err - } - - return uses.lsFromLinksAsync(ctx, dir, settings) -} - -func (api *UnixfsAPI) processLink(ctx context.Context, linkres ft.LinkResult, settings *options.UnixfsLsSettings) coreiface.LsLink { - lnk := coreiface.LsLink{ - Link: linkres.Link, - Err: linkres.Err, - } - if lnk.Err != nil { - return lnk - } - - switch lnk.Link.Cid.Type() { - case cid.Raw: - // No need to check with raw leaves - lnk.Type = coreiface.TFile - lnk.Size = lnk.Link.Size - case cid.DagProtobuf: - if !settings.ResolveChildren { - break - } - - linkNode, err := lnk.Link.GetNode(ctx, api.dag) - if err != nil { - lnk.Err = err - break - } - - if pn, ok := linkNode.(*merkledag.ProtoNode); ok { - d, err := ft.FSNodeFromBytes(pn.Data()) - if err != nil { - lnk.Err = err - break - } - lnk.Type = coreiface.FileType(d.Type()) - lnk.Size = d.FileSize() - } - } - - return lnk -} - -func (api *UnixfsAPI) lsFromLinksAsync(ctx context.Context, dir uio.Directory, settings *options.UnixfsLsSettings) (<-chan coreiface.LsLink, error) { - out := make(chan coreiface.LsLink) - - go func() { - defer close(out) - for l := range dir.EnumLinksAsync(ctx) { - select { - case out <- api.processLink(ctx, l, settings): //TODO: perf: processing can be done in background and in parallel - case <-ctx.Done(): - return - } - } - }() - - return out, nil -} - -func (api *UnixfsAPI) lsFromLinks(ctx context.Context, ndlinks []*ipld.Link, settings *options.UnixfsLsSettings) (<-chan coreiface.LsLink, error) { - links := make(chan coreiface.LsLink, len(ndlinks)) - for _, l := range ndlinks { - lr := ft.LinkResult{Link: &ipld.Link{Name: l.Name, Size: l.Size, Cid: l.Cid}} - - links <- api.processLink(ctx, lr, settings) //TODO: can be parallel if settings.Async - } - close(links) - return links, nil -} - -func (api *UnixfsAPI) core() *CoreAPI { - return (*CoreAPI)(api) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coredag/cbor.go b/vendor/github.com/ipfs/go-ipfs/core/coredag/cbor.go deleted file mode 100644 index 199bd8ff..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coredag/cbor.go +++ /dev/null @@ -1,32 +0,0 @@ -package coredag - -import ( - "io" - "io/ioutil" - - ipldcbor "gx/ipfs/QmVwsD9oGSAKcCoD4BGi3Hx8XRo4jNy6aMzsjDHVTgYv2D/go-ipld-cbor" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" -) - -func cborJSONParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - nd, err := ipldcbor.FromJSON(r, mhType, mhLen) - if err != nil { - return nil, err - } - - return []ipld.Node{nd}, nil -} - -func cborRawParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - data, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - - nd, err := ipldcbor.Decode(data, mhType, mhLen) - if err != nil { - return nil, err - } - - return []ipld.Node{nd}, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coredag/dagpb.go b/vendor/github.com/ipfs/go-ipfs/core/coredag/dagpb.go deleted file mode 100644 index 19a84642..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coredag/dagpb.go +++ /dev/null @@ -1,66 +0,0 @@ -package coredag - -import ( - "io" - "io/ioutil" - "math" - - "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" -) - -func dagpbJSONParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - data, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - - nd := &merkledag.ProtoNode{} - - err = nd.UnmarshalJSON(data) - if err != nil { - return nil, err - } - - nd.SetCidBuilder(cidPrefix(mhType, mhLen)) - - return []ipld.Node{nd}, nil -} - -func dagpbRawParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - data, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - - nd, err := merkledag.DecodeProtobuf(data) - if err != nil { - return nil, err - } - - nd.SetCidBuilder(cidPrefix(mhType, mhLen)) - - return []ipld.Node{nd}, nil -} - -func cidPrefix(mhType uint64, mhLen int) *cid.Prefix { - if mhType == math.MaxUint64 { - mhType = mh.SHA2_256 - } - - prefix := &cid.Prefix{ - MhType: mhType, - MhLength: mhLen, - Version: 1, - Codec: cid.DagProtobuf, - } - - if mhType == mh.SHA2_256 { - prefix.Version = 0 - } - - return prefix -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coredag/dagtransl.go b/vendor/github.com/ipfs/go-ipfs/core/coredag/dagtransl.go deleted file mode 100644 index 5ea4a9ff..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coredag/dagtransl.go +++ /dev/null @@ -1,86 +0,0 @@ -package coredag - -import ( - "fmt" - "io" - - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" -) - -// DagParser is function used for parsing stream into Node -type DagParser func(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) - -// FormatParsers is used for mapping format descriptors to DagParsers -type FormatParsers map[string]DagParser - -// InputEncParsers is used for mapping input encodings to FormatParsers -type InputEncParsers map[string]FormatParsers - -// DefaultInputEncParsers is InputEncParser that is used everywhere -var DefaultInputEncParsers = InputEncParsers{ - "json": defaultJSONParsers, - "raw": defaultRawParsers, - "cbor": defaultCborParsers, - "protobuf": defaultProtobufParsers, -} - -var defaultJSONParsers = FormatParsers{ - "cbor": cborJSONParser, - "dag-cbor": cborJSONParser, - - "protobuf": dagpbJSONParser, - "dag-pb": dagpbJSONParser, -} - -var defaultRawParsers = FormatParsers{ - "cbor": cborRawParser, - "dag-cbor": cborRawParser, - - "protobuf": dagpbRawParser, - "dag-pb": dagpbRawParser, - - "raw": rawRawParser, -} - -var defaultCborParsers = FormatParsers{ - "cbor": cborRawParser, - "dag-cbor": cborRawParser, -} - -var defaultProtobufParsers = FormatParsers{ - "protobuf": dagpbRawParser, - "dag-pb": dagpbRawParser, -} - -// ParseInputs uses DefaultInputEncParsers to parse io.Reader described by -// input encoding and format to an instance of ipld Node -func ParseInputs(ienc, format string, r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - return DefaultInputEncParsers.ParseInputs(ienc, format, r, mhType, mhLen) -} - -// AddParser adds DagParser under give input encoding and format -func (iep InputEncParsers) AddParser(ienc, format string, f DagParser) { - m, ok := iep[ienc] - if !ok { - m = make(FormatParsers) - iep[ienc] = m - } - - m[format] = f -} - -// ParseInputs parses io.Reader described by input encoding and format to -// an instance of ipld Node -func (iep InputEncParsers) ParseInputs(ienc, format string, r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - parsers, ok := iep[ienc] - if !ok { - return nil, fmt.Errorf("no input parser for %q", ienc) - } - - parser, ok := parsers[format] - if !ok { - return nil, fmt.Errorf("no parser for format %q using input type %q", format, ienc) - } - - return parser(r, mhType, mhLen) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coredag/raw.go b/vendor/github.com/ipfs/go-ipfs/core/coredag/raw.go deleted file mode 100644 index 3f8161f7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coredag/raw.go +++ /dev/null @@ -1,37 +0,0 @@ -package coredag - -import ( - "io" - "io/ioutil" - "math" - - "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - block "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" -) - -func rawRawParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) { - if mhType == math.MaxUint64 { - mhType = mh.SHA2_256 - } - - data, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - - h, err := mh.Sum(data, mhType, mhLen) - if err != nil { - return nil, err - } - c := cid.NewCidV1(cid.Raw, h) - blk, err := block.NewBlockWithCid(data, c) - if err != nil { - return nil, err - } - nd := &merkledag.RawNode{Block: blk} - return []ipld.Node{nd}, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/commands.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/commands.go deleted file mode 100644 index d05a7bcb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/commands.go +++ /dev/null @@ -1,183 +0,0 @@ -package corehttp - -import ( - "errors" - "fmt" - "net" - "net/http" - "os" - "strconv" - "strings" - - version "github.com/ipfs/go-ipfs" - oldcmds "github.com/ipfs/go-ipfs/commands" - "github.com/ipfs/go-ipfs/core" - corecommands "github.com/ipfs/go-ipfs/core/commands" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cmds "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds" - cmdsHttp "gx/ipfs/QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs/go-ipfs-cmds/http" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" -) - -var ( - errAPIVersionMismatch = errors.New("api version mismatch") -) - -const originEnvKey = "API_ORIGIN" -const originEnvKeyDeprecate = `You are using the ` + originEnvKey + `ENV Variable. -This functionality is deprecated, and will be removed in future versions. -Instead, try either adding headers to the config, or passing them via -cli arguments: - - ipfs config API.HTTPHeaders --json '{"Access-Control-Allow-Origin": ["*"]}' - ipfs daemon -` - -// APIPath is the path at which the API is mounted. -const APIPath = "/api/v0" - -var defaultLocalhostOrigins = []string{ - "http://127.0.0.1:", - "https://127.0.0.1:", - "http://localhost:", - "https://localhost:", -} - -func addCORSFromEnv(c *cmdsHttp.ServerConfig) { - origin := os.Getenv(originEnvKey) - if origin != "" { - log.Warning(originEnvKeyDeprecate) - c.AppendAllowedOrigins(origin) - } -} - -func addHeadersFromConfig(c *cmdsHttp.ServerConfig, nc *config.Config) { - log.Info("Using API.HTTPHeaders:", nc.API.HTTPHeaders) - - if acao := nc.API.HTTPHeaders[cmdsHttp.ACAOrigin]; acao != nil { - c.SetAllowedOrigins(acao...) - } - if acam := nc.API.HTTPHeaders[cmdsHttp.ACAMethods]; acam != nil { - c.SetAllowedMethods(acam...) - } - if acac := nc.API.HTTPHeaders[cmdsHttp.ACACredentials]; acac != nil { - for _, v := range acac { - c.SetAllowCredentials(strings.ToLower(v) == "true") - } - } - - c.Headers = make(map[string][]string, len(nc.API.HTTPHeaders)+1) - - // Copy these because the config is shared and this function is called - // in multiple places concurrently. Updating these in-place *is* racy. - for h, v := range nc.API.HTTPHeaders { - h = http.CanonicalHeaderKey(h) - switch h { - case cmdsHttp.ACAOrigin, cmdsHttp.ACAMethods, cmdsHttp.ACACredentials: - // these are handled by the CORs library. - default: - c.Headers[h] = v - } - } - c.Headers["Server"] = []string{"go-ipfs/" + version.CurrentVersionNumber} -} - -func addCORSDefaults(c *cmdsHttp.ServerConfig) { - // by default use localhost origins - if len(c.AllowedOrigins()) == 0 { - c.SetAllowedOrigins(defaultLocalhostOrigins...) - } - - // by default, use GET, PUT, POST - if len(c.AllowedMethods()) == 0 { - c.SetAllowedMethods("GET", "POST", "PUT") - } -} - -func patchCORSVars(c *cmdsHttp.ServerConfig, addr net.Addr) { - - // we have to grab the port from an addr, which may be an ip6 addr. - // TODO: this should take multiaddrs and derive port from there. - port := "" - if tcpaddr, ok := addr.(*net.TCPAddr); ok { - port = strconv.Itoa(tcpaddr.Port) - } else if udpaddr, ok := addr.(*net.UDPAddr); ok { - port = strconv.Itoa(udpaddr.Port) - } - - // we're listening on tcp/udp with ports. ("udp!?" you say? yeah... it happens...) - oldOrigins := c.AllowedOrigins() - newOrigins := make([]string, len(oldOrigins)) - for i, o := range oldOrigins { - // TODO: allow replacing . tricky, ip4 and ip6 and hostnames... - if port != "" { - o = strings.Replace(o, "", port, -1) - } - newOrigins[i] = o - } - c.SetAllowedOrigins(newOrigins...) -} - -func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption { - return func(n *core.IpfsNode, l net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - - cfg := cmdsHttp.NewServerConfig() - cfg.SetAllowedMethods("GET", "POST", "PUT") - cfg.APIPath = APIPath - rcfg, err := n.Repo.Config() - if err != nil { - return nil, err - } - - addHeadersFromConfig(cfg, rcfg) - addCORSFromEnv(cfg) - addCORSDefaults(cfg) - patchCORSVars(cfg, l.Addr()) - - cmdHandler := cmdsHttp.NewHandler(&cctx, command, cfg) - mux.Handle(APIPath+"/", cmdHandler) - return mux, nil - } -} - -// CommandsOption constructs a ServerOption for hooking the commands into the -// HTTP server. -func CommandsOption(cctx oldcmds.Context) ServeOption { - return commandsOption(cctx, corecommands.Root) -} - -// CommandsROOption constructs a ServerOption for hooking the read-only commands -// into the HTTP server. -func CommandsROOption(cctx oldcmds.Context) ServeOption { - return commandsOption(cctx, corecommands.RootRO) -} - -// CheckVersionOption returns a ServeOption that checks whether the client ipfs version matches. Does nothing when the user agent string does not contain `/go-ipfs/` -func CheckVersionOption() ServeOption { - daemonVersion := version.ApiVersion - - return ServeOption(func(n *core.IpfsNode, l net.Listener, parent *http.ServeMux) (*http.ServeMux, error) { - mux := http.NewServeMux() - parent.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - if strings.HasPrefix(r.URL.Path, APIPath) { - cmdqry := r.URL.Path[len(APIPath):] - pth := path.SplitList(cmdqry) - - // backwards compatibility to previous version check - if len(pth) >= 2 && pth[1] != "version" { - clientVersion := r.UserAgent() - // skips check if client is not go-ipfs - if strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion { - http.Error(w, fmt.Sprintf("%s (%s != %s)", errAPIVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest) - return - } - } - } - - mux.ServeHTTP(w, r) - }) - - return mux, nil - }) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/corehttp.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/corehttp.go deleted file mode 100644 index 75ec9b95..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/corehttp.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Package corehttp provides utilities for the webui, gateways, and other -high-level HTTP interfaces to IPFS. -*/ -package corehttp - -import ( - "context" - "fmt" - "net" - "net/http" - "time" - - core "github.com/ipfs/go-ipfs/core" - "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - periodicproc "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/periodic" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" -) - -var log = logging.Logger("core/server") - -// shutdownTimeout is the timeout after which we'll stop waiting for hung -// commands to return on shutdown. -const shutdownTimeout = 30 * time.Second - -// ServeOption registers any HTTP handlers it provides on the given mux. -// It returns the mux to expose to future options, which may be a new mux if it -// is interested in mediating requests to future options, or the same mux -// initially passed in if not. -type ServeOption func(*core.IpfsNode, net.Listener, *http.ServeMux) (*http.ServeMux, error) - -// makeHandler turns a list of ServeOptions into a http.Handler that implements -// all of the given options, in order. -func makeHandler(n *core.IpfsNode, l net.Listener, options ...ServeOption) (http.Handler, error) { - topMux := http.NewServeMux() - mux := topMux - for _, option := range options { - var err error - mux, err = option(n, l, mux) - if err != nil { - return nil, err - } - } - return topMux, nil -} - -// ListenAndServe runs an HTTP server listening at |listeningMultiAddr| with -// the given serve options. The address must be provided in multiaddr format. -// -// TODO intelligently parse address strings in other formats so long as they -// unambiguously map to a valid multiaddr. e.g. for convenience, ":8080" should -// map to "/ip4/0.0.0.0/tcp/8080". -func ListenAndServe(n *core.IpfsNode, listeningMultiAddr string, options ...ServeOption) error { - addr, err := ma.NewMultiaddr(listeningMultiAddr) - if err != nil { - return err - } - - list, err := manet.Listen(addr) - if err != nil { - return err - } - - // we might have listened to /tcp/0 - lets see what we are listing on - addr = list.Multiaddr() - fmt.Printf("API server listening on %s\n", addr) - - return Serve(n, manet.NetListener(list), options...) -} - -func Serve(node *core.IpfsNode, lis net.Listener, options ...ServeOption) error { - // make sure we close this no matter what. - defer lis.Close() - - handler, err := makeHandler(node, lis, options...) - if err != nil { - return err - } - - addr, err := manet.FromNetAddr(lis.Addr()) - if err != nil { - return err - } - - select { - case <-node.Process().Closing(): - return fmt.Errorf("failed to start server, process closing") - default: - } - - server := &http.Server{ - Handler: handler, - } - - var serverError error - serverProc := node.Process().Go(func(p goprocess.Process) { - serverError = server.Serve(lis) - }) - - // wait for server to exit. - select { - case <-serverProc.Closed(): - // if node being closed before server exits, close server - case <-node.Process().Closing(): - log.Infof("server at %s terminating...", addr) - - warnProc := periodicproc.Tick(5*time.Second, func(_ goprocess.Process) { - log.Infof("waiting for server at %s to terminate...", addr) - }) - - // This timeout shouldn't be necessary if all of our commands - // are obeying their contexts but we should have *some* timeout. - ctx, cancel := context.WithTimeout(context.Background(), shutdownTimeout) - defer cancel() - err := server.Shutdown(ctx) - - // Should have already closed but we still need to wait for it - // to set the error. - <-serverProc.Closed() - serverError = err - - warnProc.Close() - } - - log.Infof("server at %s terminated", addr) - return serverError -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway.go deleted file mode 100644 index 88d8bf44..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway.go +++ /dev/null @@ -1,112 +0,0 @@ -package corehttp - -import ( - "fmt" - "net" - "net/http" - "sort" - - version "github.com/ipfs/go-ipfs" - core "github.com/ipfs/go-ipfs/core" - coreapi "github.com/ipfs/go-ipfs/core/coreapi" - - id "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/protocol/identify" - options "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" -) - -type GatewayConfig struct { - Headers map[string][]string - Writable bool - PathPrefixes []string -} - -// A helper function to clean up a set of headers: -// 1. Canonicalizes. -// 2. Deduplicates. -// 3. Sorts. -func cleanHeaderSet(headers []string) []string { - // Deduplicate and canonicalize. - m := make(map[string]struct{}, len(headers)) - for _, h := range headers { - m[http.CanonicalHeaderKey(h)] = struct{}{} - } - result := make([]string, 0, len(m)) - for k := range m { - result = append(result, k) - } - - // Sort - sort.Strings(result) - return result -} - -func GatewayOption(writable bool, paths ...string) ServeOption { - return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - cfg, err := n.Repo.Config() - if err != nil { - return nil, err - } - - api, err := coreapi.NewCoreAPI(n, options.Api.FetchBlocks(!cfg.Gateway.NoFetch)) - if err != nil { - return nil, err - } - - headers := make(map[string][]string, len(cfg.Gateway.HTTPHeaders)) - for h, v := range cfg.Gateway.HTTPHeaders { - headers[http.CanonicalHeaderKey(h)] = v - } - - // Hard-coded headers. - const ACAHeadersName = "Access-Control-Allow-Headers" - const ACEHeadersName = "Access-Control-Expose-Headers" - const ACAOriginName = "Access-Control-Allow-Origin" - const ACAMethodsName = "Access-Control-Allow-Methods" - - if _, ok := headers[ACAOriginName]; !ok { - // Default to *all* - headers[ACAOriginName] = []string{"*"} - } - if _, ok := headers[ACAMethodsName]; !ok { - // Default to GET - headers[ACAMethodsName] = []string{"GET"} - } - - headers[ACAHeadersName] = cleanHeaderSet( - append([]string{ - "Content-Type", - "User-Agent", - "Range", - "X-Requested-With", - }, headers[ACAHeadersName]...)) - - headers[ACEHeadersName] = cleanHeaderSet( - append([]string{ - "Content-Range", - "X-Chunked-Output", - "X-Stream-Output", - }, headers[ACEHeadersName]...)) - - gateway := newGatewayHandler(n, GatewayConfig{ - Headers: headers, - Writable: writable, - PathPrefixes: cfg.Gateway.PathPrefixes, - }, api) - - for _, p := range paths { - mux.Handle(p+"/", gateway) - } - return mux, nil - } -} - -func VersionOption() ServeOption { - return func(_ *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.HandleFunc("/version", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Commit: %s\n", version.CurrentCommit) - fmt.Fprintf(w, "Client Version: %s\n", id.ClientVersion) - fmt.Fprintf(w, "Protocol Version: %s\n", id.LibP2PVersion) - }) - return mux, nil - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_handler.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_handler.go deleted file mode 100644 index 1c3675e6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_handler.go +++ /dev/null @@ -1,612 +0,0 @@ -package corehttp - -import ( - "context" - "errors" - "fmt" - "io" - "net/http" - "net/url" - gopath "path" - "runtime/debug" - "strings" - "time" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/dagutils" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path/resolver" - "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" - "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - chunker "gx/ipfs/QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8/go-ipfs-chunker" - "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer" - "gx/ipfs/QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd/go-multibase" -) - -const ( - ipfsPathPrefix = "/ipfs/" - ipnsPathPrefix = "/ipns/" -) - -// gatewayHandler is a HTTP handler that serves IPFS objects (accessible by default at /ipfs/) -// (it serves requests like GET /ipfs/QmVRzPKPzNtSrEzBFm2UZfxmPAgnaLke4DMcerbsGGSaFe/link) -type gatewayHandler struct { - node *core.IpfsNode - config GatewayConfig - api coreiface.CoreAPI -} - -func newGatewayHandler(n *core.IpfsNode, c GatewayConfig, api coreiface.CoreAPI) *gatewayHandler { - i := &gatewayHandler{ - node: n, - config: c, - api: api, - } - return i -} - -// TODO(cryptix): find these helpers somewhere else -func (i *gatewayHandler) newDagFromReader(r io.Reader) (ipld.Node, error) { - // TODO(cryptix): change and remove this helper once PR1136 is merged - // return ufs.AddFromReader(i.node, r.Body) - return importer.BuildDagFromReader( - i.node.DAG, - chunker.DefaultSplitter(r)) -} - -func (i *gatewayHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - // the hour is a hard fallback, we don't expect it to happen, but just in case - ctx, cancel := context.WithTimeout(r.Context(), time.Hour) - defer cancel() - - defer func() { - if r := recover(); r != nil { - log.Error("A panic occurred in the gateway handler!") - log.Error(r) - debug.PrintStack() - } - }() - - if i.config.Writable { - switch r.Method { - case "POST": - i.postHandler(ctx, w, r) - return - case "PUT": - i.putHandler(w, r) - return - case "DELETE": - i.deleteHandler(w, r) - return - } - } - - if r.Method == "GET" || r.Method == "HEAD" { - i.getOrHeadHandler(ctx, w, r) - return - } - - if r.Method == "OPTIONS" { - i.optionsHandler(w, r) - return - } - - errmsg := "Method " + r.Method + " not allowed: " - if !i.config.Writable { - w.WriteHeader(http.StatusMethodNotAllowed) - errmsg = errmsg + "read only access" - } else { - w.WriteHeader(http.StatusBadRequest) - errmsg = errmsg + "bad request for " + r.URL.Path - } - fmt.Fprint(w, errmsg) -} - -func (i *gatewayHandler) optionsHandler(w http.ResponseWriter, r *http.Request) { - /* - OPTIONS is a noop request that is used by the browsers to check - if server accepts cross-site XMLHttpRequest (indicated by the presence of CORS headers) - https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests - */ - i.addUserHeaders(w) // return all custom headers (including CORS ones, if set) -} - -func (i *gatewayHandler) getOrHeadHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) { - urlPath := r.URL.Path - escapedURLPath := r.URL.EscapedPath() - - // If the gateway is behind a reverse proxy and mounted at a sub-path, - // the prefix header can be set to signal this sub-path. - // It will be prepended to links in directory listings and the index.html redirect. - prefix := "" - if prfx := r.Header.Get("X-Ipfs-Gateway-Prefix"); len(prfx) > 0 { - for _, p := range i.config.PathPrefixes { - if prfx == p || strings.HasPrefix(prfx, p+"/") { - prefix = prfx - break - } - } - } - - // IPNSHostnameOption might have constructed an IPNS path using the Host header. - // In this case, we need the original path for constructing redirects - // and links that match the requested URL. - // For example, http://example.net would become /ipns/example.net, and - // the redirects and links would end up as http://example.net/ipns/example.net - originalUrlPath := prefix + urlPath - ipnsHostname := false - if hdr := r.Header.Get("X-Ipns-Original-Path"); len(hdr) > 0 { - originalUrlPath = prefix + hdr - ipnsHostname = true - } - - parsedPath, err := coreiface.ParsePath(urlPath) - if err != nil { - webError(w, "invalid ipfs path", err, http.StatusBadRequest) - return - } - - // Resolve path to the final DAG node for the ETag - resolvedPath, err := i.api.ResolvePath(ctx, parsedPath) - if err == coreiface.ErrOffline && !i.node.OnlineMode() { - webError(w, "ipfs resolve -r "+escapedURLPath, err, http.StatusServiceUnavailable) - return - } else if err != nil { - webError(w, "ipfs resolve -r "+escapedURLPath, err, http.StatusNotFound) - return - } - - dr, err := i.api.Unixfs().Get(ctx, resolvedPath) - if err != nil { - webError(w, "ipfs cat "+escapedURLPath, err, http.StatusNotFound) - return - } - - defer dr.Close() - - // Check etag send back to us - etag := "\"" + resolvedPath.Cid().String() + "\"" - if r.Header.Get("If-None-Match") == etag || r.Header.Get("If-None-Match") == "W/"+etag { - w.WriteHeader(http.StatusNotModified) - return - } - - i.addUserHeaders(w) // ok, _now_ write user's headers. - w.Header().Set("X-IPFS-Path", urlPath) - w.Header().Set("Etag", etag) - - // Suborigin header, sandboxes apps from each other in the browser (even - // though they are served from the same gateway domain). - // - // Omitted if the path was treated by IPNSHostnameOption(), for example - // a request for http://example.net/ would be changed to /ipns/example.net/, - // which would turn into an incorrect Suborigin header. - // In this case the correct thing to do is omit the header because it is already - // handled correctly without a Suborigin. - // - // NOTE: This is not yet widely supported by browsers. - if !ipnsHostname { - // e.g.: 1="ipfs", 2="QmYuNaKwY...", ... - pathComponents := strings.SplitN(urlPath, "/", 4) - - var suboriginRaw []byte - cidDecoded, err := cid.Decode(pathComponents[2]) - if err != nil { - // component 2 doesn't decode with cid, so it must be a hostname - suboriginRaw = []byte(strings.ToLower(pathComponents[2])) - } else { - suboriginRaw = cidDecoded.Bytes() - } - - base32Encoded, err := multibase.Encode(multibase.Base32, suboriginRaw) - if err != nil { - internalWebError(w, err) - return - } - - suborigin := pathComponents[1] + "000" + strings.ToLower(base32Encoded) - w.Header().Set("Suborigin", suborigin) - } - - // set these headers _after_ the error, for we may just not have it - // and dont want the client to cache a 500 response... - // and only if it's /ipfs! - // TODO: break this out when we split /ipfs /ipns routes. - modtime := time.Now() - - if f, ok := dr.(files.File); ok { - if strings.HasPrefix(urlPath, ipfsPathPrefix) { - w.Header().Set("Cache-Control", "public, max-age=29030400, immutable") - - // set modtime to a really long time ago, since files are immutable and should stay cached - modtime = time.Unix(1, 0) - } - - urlFilename := r.URL.Query().Get("filename") - var name string - if urlFilename != "" { - w.Header().Set("Content-Disposition", fmt.Sprintf("inline; filename*=UTF-8''%s", url.PathEscape(urlFilename))) - name = urlFilename - } else { - name = getFilename(urlPath) - } - i.serveFile(w, r, name, modtime, f) - return - } - dir, ok := dr.(files.Directory) - if !ok { - internalWebError(w, fmt.Errorf("unsupported file type")) - return - } - - idx, err := i.api.Unixfs().Get(ctx, coreiface.Join(resolvedPath, "index.html")) - switch err.(type) { - case nil: - dirwithoutslash := urlPath[len(urlPath)-1] != '/' - goget := r.URL.Query().Get("go-get") == "1" - if dirwithoutslash && !goget { - // See comment above where originalUrlPath is declared. - http.Redirect(w, r, originalUrlPath+"/", 302) - return - } - - f, ok := idx.(files.File) - if !ok { - internalWebError(w, files.ErrNotReader) - return - } - - // write to request - http.ServeContent(w, r, "index.html", modtime, f) - return - case resolver.ErrNoLink: - // no index.html; noop - default: - internalWebError(w, err) - return - } - - if r.Method == "HEAD" { - return - } - - // storage for directory listing - var dirListing []directoryItem - dirit := dir.Entries() - for dirit.Next() { - // See comment above where originalUrlPath is declared. - s, err := dirit.Node().Size() - if err != nil { - internalWebError(w, err) - return - } - - di := directoryItem{humanize.Bytes(uint64(s)), dirit.Name(), gopath.Join(originalUrlPath, dirit.Name())} - dirListing = append(dirListing, di) - } - if dirit.Err() != nil { - internalWebError(w, dirit.Err()) - return - } - - // construct the correct back link - // https://github.com/ipfs/go-ipfs/issues/1365 - var backLink string = prefix + urlPath - - // don't go further up than /ipfs/$hash/ - pathSplit := path.SplitList(backLink) - switch { - // keep backlink - case len(pathSplit) == 3: // url: /ipfs/$hash - - // keep backlink - case len(pathSplit) == 4 && pathSplit[3] == "": // url: /ipfs/$hash/ - - // add the correct link depending on wether the path ends with a slash - default: - if strings.HasSuffix(backLink, "/") { - backLink += "./.." - } else { - backLink += "/.." - } - } - - // strip /ipfs/$hash from backlink if IPNSHostnameOption touched the path. - if ipnsHostname { - backLink = prefix + "/" - if len(pathSplit) > 5 { - // also strip the trailing segment, because it's a backlink - backLinkParts := pathSplit[3 : len(pathSplit)-2] - backLink += path.Join(backLinkParts) + "/" - } - } - - var hash string - if !strings.HasPrefix(originalUrlPath, ipfsPathPrefix) { - hash = resolvedPath.Cid().String() - } - - // See comment above where originalUrlPath is declared. - tplData := listingTemplateData{ - Listing: dirListing, - Path: originalUrlPath, - BackLink: backLink, - Hash: hash, - } - err = listingTemplate.Execute(w, tplData) - if err != nil { - internalWebError(w, err) - return - } -} - -type sizeReadSeeker interface { - Size() (int64, error) - - io.ReadSeeker -} - -type sizeSeeker struct { - sizeReadSeeker -} - -func (s *sizeSeeker) Seek(offset int64, whence int) (int64, error) { - if whence == io.SeekEnd && offset == 0 { - return s.Size() - } - - return s.sizeReadSeeker.Seek(offset, whence) -} - -func (i *gatewayHandler) serveFile(w http.ResponseWriter, req *http.Request, name string, modtime time.Time, content io.ReadSeeker) { - if sp, ok := content.(sizeReadSeeker); ok { - content = &sizeSeeker{ - sizeReadSeeker: sp, - } - } - - http.ServeContent(w, req, name, modtime, content) -} - -func (i *gatewayHandler) postHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) { - p, err := i.api.Unixfs().Add(ctx, files.NewReaderFile(r.Body)) - if err != nil { - internalWebError(w, err) - return - } - - i.addUserHeaders(w) // ok, _now_ write user's headers. - w.Header().Set("IPFS-Hash", p.Cid().String()) - http.Redirect(w, r, p.String(), http.StatusCreated) -} - -func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) { - // TODO(cryptix): move me to ServeHTTP and pass into all handlers - ctx, cancel := context.WithCancel(i.node.Context()) - defer cancel() - - rootPath, err := path.ParsePath(r.URL.Path) - if err != nil { - webError(w, "putHandler: IPFS path not valid", err, http.StatusBadRequest) - return - } - - rsegs := rootPath.Segments() - if rsegs[0] == ipnsPathPrefix { - webError(w, "putHandler: updating named entries not supported", errors.New("WritableGateway: ipns put not supported"), http.StatusBadRequest) - return - } - - var newnode ipld.Node - if rsegs[len(rsegs)-1] == "QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn" { - newnode = ft.EmptyDirNode() - } else { - putNode, err := i.newDagFromReader(r.Body) - if err != nil { - webError(w, "putHandler: Could not create DAG from request", err, http.StatusInternalServerError) - return - } - newnode = putNode - } - - var newPath string - if len(rsegs) > 1 { - newPath = path.Join(rsegs[2:]) - } - - var newcid cid.Cid - rnode, err := core.Resolve(ctx, i.node.Namesys, i.node.Resolver, rootPath) - switch ev := err.(type) { - case resolver.ErrNoLink: - // ev.Node < node where resolve failed - // ev.Name < new link - // but we need to patch from the root - c, err := cid.Decode(rsegs[1]) - if err != nil { - webError(w, "putHandler: bad input path", err, http.StatusBadRequest) - return - } - - rnode, err := i.node.DAG.Get(ctx, c) - if err != nil { - webError(w, "putHandler: Could not create DAG from request", err, http.StatusInternalServerError) - return - } - - pbnd, ok := rnode.(*dag.ProtoNode) - if !ok { - webError(w, "Cannot read non protobuf nodes through gateway", dag.ErrNotProtobuf, http.StatusBadRequest) - return - } - - e := dagutils.NewDagEditor(pbnd, i.node.DAG) - err = e.InsertNodeAtPath(ctx, newPath, newnode, ft.EmptyDirNode) - if err != nil { - webError(w, "putHandler: InsertNodeAtPath failed", err, http.StatusInternalServerError) - return - } - - nnode, err := e.Finalize(ctx, i.node.DAG) - if err != nil { - webError(w, "putHandler: could not get node", err, http.StatusInternalServerError) - return - } - - newcid = nnode.Cid() - - case nil: - pbnd, ok := rnode.(*dag.ProtoNode) - if !ok { - webError(w, "Cannot read non protobuf nodes through gateway", dag.ErrNotProtobuf, http.StatusBadRequest) - return - } - - pbnewnode, ok := newnode.(*dag.ProtoNode) - if !ok { - webError(w, "Cannot read non protobuf nodes through gateway", dag.ErrNotProtobuf, http.StatusBadRequest) - return - } - - // object set-data case - pbnd.SetData(pbnewnode.Data()) - - newcid = pbnd.Cid() - err = i.node.DAG.Add(ctx, pbnd) - if err != nil { - nnk := newnode.Cid() - webError(w, fmt.Sprintf("putHandler: Could not add newnode(%q) to root(%q)", nnk.String(), newcid.String()), err, http.StatusInternalServerError) - return - } - default: - webError(w, "could not resolve root DAG", ev, http.StatusInternalServerError) - return - } - - i.addUserHeaders(w) // ok, _now_ write user's headers. - w.Header().Set("IPFS-Hash", newcid.String()) - http.Redirect(w, r, gopath.Join(ipfsPathPrefix, newcid.String(), newPath), http.StatusCreated) -} - -func (i *gatewayHandler) deleteHandler(w http.ResponseWriter, r *http.Request) { - urlPath := r.URL.Path - ctx, cancel := context.WithCancel(i.node.Context()) - defer cancel() - - p, err := path.ParsePath(urlPath) - if err != nil { - webError(w, "failed to parse path", err, http.StatusBadRequest) - return - } - - c, components, err := path.SplitAbsPath(p) - if err != nil { - webError(w, "Could not split path", err, http.StatusInternalServerError) - return - } - - tctx, cancel := context.WithTimeout(ctx, time.Minute) - defer cancel() - rootnd, err := i.node.Resolver.DAG.Get(tctx, c) - if err != nil { - webError(w, "Could not resolve root object", err, http.StatusBadRequest) - return - } - - pathNodes, err := i.node.Resolver.ResolveLinks(tctx, rootnd, components[:len(components)-1]) - if err != nil { - webError(w, "Could not resolve parent object", err, http.StatusBadRequest) - return - } - - pbnd, ok := pathNodes[len(pathNodes)-1].(*dag.ProtoNode) - if !ok { - webError(w, "Cannot read non protobuf nodes through gateway", dag.ErrNotProtobuf, http.StatusBadRequest) - return - } - - // TODO(cyrptix): assumes len(pathNodes) > 1 - not found is an error above? - err = pbnd.RemoveNodeLink(components[len(components)-1]) - if err != nil { - webError(w, "Could not delete link", err, http.StatusBadRequest) - return - } - - var newnode *dag.ProtoNode = pbnd - for j := len(pathNodes) - 2; j >= 0; j-- { - if err := i.node.DAG.Add(ctx, newnode); err != nil { - webError(w, "Could not add node", err, http.StatusInternalServerError) - return - } - - pathpb, ok := pathNodes[j].(*dag.ProtoNode) - if !ok { - webError(w, "Cannot read non protobuf nodes through gateway", dag.ErrNotProtobuf, http.StatusBadRequest) - return - } - - newnode, err = pathpb.UpdateNodeLink(components[j], newnode) - if err != nil { - webError(w, "Could not update node links", err, http.StatusInternalServerError) - return - } - } - - if err := i.node.DAG.Add(ctx, newnode); err != nil { - webError(w, "Could not add root node", err, http.StatusInternalServerError) - return - } - - // Redirect to new path - ncid := newnode.Cid() - - i.addUserHeaders(w) // ok, _now_ write user's headers. - w.Header().Set("IPFS-Hash", ncid.String()) - http.Redirect(w, r, gopath.Join(ipfsPathPrefix+ncid.String(), path.Join(components[:len(components)-1])), http.StatusCreated) -} - -func (i *gatewayHandler) addUserHeaders(w http.ResponseWriter) { - for k, v := range i.config.Headers { - w.Header()[k] = v - } -} - -func webError(w http.ResponseWriter, message string, err error, defaultCode int) { - if _, ok := err.(resolver.ErrNoLink); ok { - webErrorWithCode(w, message, err, http.StatusNotFound) - } else if err == routing.ErrNotFound { - webErrorWithCode(w, message, err, http.StatusNotFound) - } else if err == context.DeadlineExceeded { - webErrorWithCode(w, message, err, http.StatusRequestTimeout) - } else { - webErrorWithCode(w, message, err, defaultCode) - } -} - -func webErrorWithCode(w http.ResponseWriter, message string, err error, code int) { - w.WriteHeader(code) - - fmt.Fprintf(w, "%s: %s\n", message, err) - if code >= 500 { - log.Warningf("server error: %s: %s", err) - } -} - -// return a 500 error and log -func internalWebError(w http.ResponseWriter, err error) { - webErrorWithCode(w, "internalWebError", err, http.StatusInternalServerError) -} - -func getFilename(s string) string { - if (strings.HasPrefix(s, ipfsPathPrefix) || strings.HasPrefix(s, ipnsPathPrefix)) && strings.Count(gopath.Clean(s), "/") <= 2 { - // Don't want to treat ipfs.io in /ipns/ipfs.io as a filename. - return "" - } - return gopath.Base(s) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_indexPage.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_indexPage.go deleted file mode 100644 index 5575baea..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_indexPage.go +++ /dev/null @@ -1,65 +0,0 @@ -package corehttp - -import ( - "html/template" - "net/url" - "path" - "strings" - - "github.com/ipfs/go-ipfs/assets" -) - -// structs for directory listing -type listingTemplateData struct { - Listing []directoryItem - Path string - BackLink string - Hash string -} - -type directoryItem struct { - Size string - Name string - Path string -} - -var listingTemplate *template.Template - -func init() { - knownIconsBytes, err := assets.Asset("dir-index-html/knownIcons.txt") - if err != nil { - panic(err) - } - knownIcons := make(map[string]struct{}) - for _, ext := range strings.Split(strings.TrimSuffix(string(knownIconsBytes), "\n"), "\n") { - knownIcons[ext] = struct{}{} - } - - // helper to guess the type/icon for it by the extension name - iconFromExt := func(name string) string { - ext := path.Ext(name) - _, ok := knownIcons[ext] - if !ok { - // default blank icon - return "ipfs-_blank" - } - return "ipfs-" + ext[1:] // slice of the first dot - } - - // custom template-escaping function to escape a full path, including '#' and '?' - urlEscape := func(rawUrl string) string { - pathUrl := url.URL{Path: rawUrl} - return pathUrl.String() - } - - // Directory listing template - dirIndexBytes, err := assets.Asset("dir-index-html/dir-index.html") - if err != nil { - panic(err) - } - - listingTemplate = template.Must(template.New("dir").Funcs(template.FuncMap{ - "iconFromExt": iconFromExt, - "urlEscape": urlEscape, - }).Parse(string(dirIndexBytes))) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_test.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_test.go deleted file mode 100644 index 6bbd784d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/gateway_test.go +++ /dev/null @@ -1,623 +0,0 @@ -package corehttp - -import ( - "context" - "errors" - "io/ioutil" - "math" - "net/http" - "net/http/httptest" - "strings" - "testing" - "time" - - version "github.com/ipfs/go-ipfs" - core "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/coreapi" - namesys "github.com/ipfs/go-ipfs/namesys" - repo "github.com/ipfs/go-ipfs/repo" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - id "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/protocol/identify" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - datastore "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - syncds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options" - nsopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" -) - -// `ipfs object new unixfs-dir` -var emptyDir = "/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn" - -type mockNamesys map[string]path.Path - -func (m mockNamesys) Resolve(ctx context.Context, name string, opts ...nsopts.ResolveOpt) (value path.Path, err error) { - cfg := nsopts.DefaultResolveOpts() - for _, o := range opts { - o(&cfg) - } - depth := cfg.Depth - if depth == nsopts.UnlimitedDepth { - depth = math.MaxUint64 - } - for strings.HasPrefix(name, "/ipns/") { - if depth <= 0 { - return value, namesys.ErrResolveRecursion - } - depth-- - - var ok bool - value, ok = m[name] - if !ok { - return "", namesys.ErrResolveFailed - } - name = value.String() - } - return value, nil -} - -func (m mockNamesys) ResolveAsync(ctx context.Context, name string, opts ...nsopts.ResolveOpt) <-chan namesys.Result { - out := make(chan namesys.Result, 1) - v, err := m.Resolve(ctx, name, opts...) - out <- namesys.Result{Path: v, Err: err} - close(out) - return out -} - -func (m mockNamesys) Publish(ctx context.Context, name ci.PrivKey, value path.Path) error { - return errors.New("not implemented for mockNamesys") -} - -func (m mockNamesys) PublishWithEOL(ctx context.Context, name ci.PrivKey, value path.Path, _ time.Time) error { - return errors.New("not implemented for mockNamesys") -} - -func (m mockNamesys) GetResolver(subs string) (namesys.Resolver, bool) { - return nil, false -} - -func newNodeWithMockNamesys(ns mockNamesys) (*core.IpfsNode, error) { - c := config.Config{ - Identity: config.Identity{ - PeerID: "QmTFauExutTsy4XP6JbMFcw2Wa9645HJt2bTqL6qYDCKfe", // required by offline node - }, - } - r := &repo.Mock{ - C: c, - D: syncds.MutexWrap(datastore.NewMapDatastore()), - } - n, err := core.NewNode(context.Background(), &core.BuildCfg{Repo: r}) - if err != nil { - return nil, err - } - n.Namesys = ns - return n, nil -} - -type delegatedHandler struct { - http.Handler -} - -func (dh *delegatedHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - dh.Handler.ServeHTTP(w, r) -} - -func doWithoutRedirect(req *http.Request) (*http.Response, error) { - tag := "without-redirect" - c := &http.Client{ - CheckRedirect: func(req *http.Request, via []*http.Request) error { - return errors.New(tag) - }, - } - res, err := c.Do(req) - if err != nil && !strings.Contains(err.Error(), tag) { - return nil, err - } - return res, nil -} - -func newTestServerAndNode(t *testing.T, ns mockNamesys) (*httptest.Server, iface.CoreAPI, context.Context) { - n, err := newNodeWithMockNamesys(ns) - if err != nil { - t.Fatal(err) - } - - cfg, err := n.Repo.Config() - if err != nil { - t.Fatal(err) - } - cfg.Gateway.PathPrefixes = []string{"/good-prefix"} - - // need this variable here since we need to construct handler with - // listener, and server with handler. yay cycles. - dh := &delegatedHandler{} - ts := httptest.NewServer(dh) - - dh.Handler, err = makeHandler(n, - ts.Listener, - IPNSHostnameOption(), - GatewayOption(false, "/ipfs", "/ipns"), - VersionOption(), - ) - if err != nil { - t.Fatal(err) - } - - api, err := coreapi.NewCoreAPI(n) - if err != nil { - t.Fatal(err) - } - - return ts, api, n.Context() -} - -func TestGatewayGet(t *testing.T) { - ns := mockNamesys{} - ts, api, ctx := newTestServerAndNode(t, ns) - defer ts.Close() - - k, err := api.Unixfs().Add(ctx, files.NewBytesFile([]byte("fnord"))) - if err != nil { - t.Fatal(err) - } - ns["/ipns/example.com"] = path.FromString(k.String()) - ns["/ipns/working.example.com"] = path.FromString(k.String()) - ns["/ipns/double.example.com"] = path.FromString("/ipns/working.example.com") - ns["/ipns/triple.example.com"] = path.FromString("/ipns/double.example.com") - ns["/ipns/broken.example.com"] = path.FromString("/ipns/" + k.Cid().String()) - // We picked .man because: - // 1. It's a valid TLD. - // 2. Go treats it as the file extension for "man" files (even though - // nobody actually *uses* this extension, AFAIK). - // - // Unfortunately, this may not work on all platforms as file type - // detection is platform dependent. - ns["/ipns/example.man"] = path.FromString(k.String()) - - t.Log(ts.URL) - for i, test := range []struct { - host string - path string - status int - text string - }{ - {"localhost:5001", "/", http.StatusNotFound, "404 page not found\n"}, - {"localhost:5001", "/" + k.Cid().String(), http.StatusNotFound, "404 page not found\n"}, - {"localhost:5001", k.String(), http.StatusOK, "fnord"}, - {"localhost:5001", "/ipns/nxdomain.example.com", http.StatusNotFound, "ipfs resolve -r /ipns/nxdomain.example.com: " + namesys.ErrResolveFailed.Error() + "\n"}, - {"localhost:5001", "/ipns/%0D%0A%0D%0Ahello", http.StatusNotFound, "ipfs resolve -r /ipns/%0D%0A%0D%0Ahello: " + namesys.ErrResolveFailed.Error() + "\n"}, - {"localhost:5001", "/ipns/example.com", http.StatusOK, "fnord"}, - {"example.com", "/", http.StatusOK, "fnord"}, - - {"working.example.com", "/", http.StatusOK, "fnord"}, - {"double.example.com", "/", http.StatusOK, "fnord"}, - {"triple.example.com", "/", http.StatusOK, "fnord"}, - {"working.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/working.example.com" + k.String() + ": no link named \"ipfs\" under " + k.Cid().String() + "\n"}, - {"broken.example.com", "/", http.StatusNotFound, "ipfs resolve -r /ipns/broken.example.com/: " + namesys.ErrResolveFailed.Error() + "\n"}, - {"broken.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/broken.example.com" + k.String() + ": " + namesys.ErrResolveFailed.Error() + "\n"}, - // This test case ensures we don't treat the TLD as a file extension. - {"example.man", "/", http.StatusOK, "fnord"}, - } { - var c http.Client - r, err := http.NewRequest("GET", ts.URL+test.path, nil) - if err != nil { - t.Fatal(err) - } - r.Host = test.host - resp, err := c.Do(r) - - urlstr := "http://" + test.host + test.path - if err != nil { - t.Errorf("error requesting %s: %s", urlstr, err) - continue - } - defer resp.Body.Close() - contentType := resp.Header.Get("Content-Type") - if contentType != "text/plain; charset=utf-8" { - t.Errorf("expected content type to be text/plain, got %s", contentType) - } - if resp.StatusCode != test.status { - t.Errorf("(%d) got %d, expected %d from %s", i, resp.StatusCode, test.status, urlstr) - continue - } - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - t.Fatalf("error reading response from %s: %s", urlstr, err) - } - if string(body) != test.text { - t.Errorf("unexpected response body from %s: expected %q; got %q", urlstr, test.text, body) - continue - } - } -} - -func TestIPNSHostnameRedirect(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - ns := mockNamesys{} - ts, api, ctx := newTestServerAndNode(t, ns) - t.Logf("test server url: %s", ts.URL) - defer ts.Close() - - // create /ipns/example.net/foo/index.html - - f1 := files.NewMapDirectory(map[string]files.Node{ - "_": files.NewBytesFile([]byte("_")), - "foo": files.NewMapDirectory(map[string]files.Node{ - "index.html": files.NewBytesFile([]byte("_")), - }), - }) - - k, err := api.Unixfs().Add(ctx, f1, options.Unixfs.Wrap(true)) - if err != nil { - t.Fatal(err) - } - - t.Logf("k: %s\n", k) - ns["/ipns/example.net"] = path.FromString(k.String()) - - // make request to directory containing index.html - req, err := http.NewRequest("GET", ts.URL+"/foo", nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - - res, err := doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect 302 redirect to same path, but with trailing slash - if res.StatusCode != 302 { - t.Errorf("status is %d, expected 302", res.StatusCode) - } - hdr := res.Header["Location"] - if len(hdr) < 1 { - t.Errorf("location header not present") - } else if hdr[0] != "/foo/" { - t.Errorf("location header is %v, expected /foo/", hdr[0]) - } - - // make request with prefix to directory containing index.html - req, err = http.NewRequest("GET", ts.URL+"/foo", nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - req.Header.Set("X-Ipfs-Gateway-Prefix", "/good-prefix") - - res, err = doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect 302 redirect to same path, but with prefix and trailing slash - if res.StatusCode != 302 { - t.Errorf("status is %d, expected 302", res.StatusCode) - } - hdr = res.Header["Location"] - if len(hdr) < 1 { - t.Errorf("location header not present") - } else if hdr[0] != "/good-prefix/foo/" { - t.Errorf("location header is %v, expected /good-prefix/foo/", hdr[0]) - } - - // make sure /version isn't exposed - req, err = http.NewRequest("GET", ts.URL+"/version", nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - req.Header.Set("X-Ipfs-Gateway-Prefix", "/good-prefix") - - res, err = doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - if res.StatusCode != 404 { - t.Fatalf("expected a 404 error, got: %s", res.Status) - } -} - -func TestIPNSHostnameBacklinks(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - ns := mockNamesys{} - ts, api, ctx := newTestServerAndNode(t, ns) - t.Logf("test server url: %s", ts.URL) - defer ts.Close() - - f1 := files.NewMapDirectory(map[string]files.Node{ - "file.txt": files.NewBytesFile([]byte("1")), - "foo? #<'": files.NewMapDirectory(map[string]files.Node{ - "file.txt": files.NewBytesFile([]byte("2")), - "bar": files.NewMapDirectory(map[string]files.Node{ - "file.txt": files.NewBytesFile([]byte("3")), - }), - }), - }) - - // create /ipns/example.net/foo/ - k, err := api.Unixfs().Add(ctx, f1, options.Unixfs.Wrap(true)) - if err != nil { - t.Fatal(err) - } - - k2, err := api.ResolvePath(ctx, iface.Join(k, "foo? #<'")) - if err != nil { - t.Fatal(err) - } - - k3, err := api.ResolvePath(ctx, iface.Join(k, "foo? #<'/bar")) - if err != nil { - t.Fatal(err) - } - - t.Logf("k: %s\n", k) - ns["/ipns/example.net"] = path.FromString(k.String()) - - // make request to directory listing - req, err := http.NewRequest("GET", ts.URL+"/foo%3F%20%23%3C%27/", nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - - res, err := doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect correct backlinks - body, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("error reading response: %s", err) - } - s := string(body) - t.Logf("body: %s\n", string(body)) - - if !strings.Contains(s, "Index of /foo? #<'/") { - t.Fatalf("expected a path in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected backlink in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected file in directory listing") - } - if !strings.Contains(s, k2.Cid().String()) { - t.Fatalf("expected hash in directory listing") - } - - // make request to directory listing at root - req, err = http.NewRequest("GET", ts.URL, nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - - res, err = doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect correct backlinks at root - body, err = ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("error reading response: %s", err) - } - s = string(body) - t.Logf("body: %s\n", string(body)) - - if !strings.Contains(s, "Index of /") { - t.Fatalf("expected a path in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected backlink in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected file in directory listing") - } - if !strings.Contains(s, k.Cid().String()) { - t.Fatalf("expected hash in directory listing") - } - - // make request to directory listing - req, err = http.NewRequest("GET", ts.URL+"/foo%3F%20%23%3C%27/bar/", nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - - res, err = doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect correct backlinks - body, err = ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("error reading response: %s", err) - } - s = string(body) - t.Logf("body: %s\n", string(body)) - - if !strings.Contains(s, "Index of /foo? #<'/bar/") { - t.Fatalf("expected a path in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected backlink in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected file in directory listing") - } - if !strings.Contains(s, k3.Cid().String()) { - t.Fatalf("expected hash in directory listing") - } - - // make request to directory listing with prefix - req, err = http.NewRequest("GET", ts.URL, nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - req.Header.Set("X-Ipfs-Gateway-Prefix", "/good-prefix") - - res, err = doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect correct backlinks with prefix - body, err = ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("error reading response: %s", err) - } - s = string(body) - t.Logf("body: %s\n", string(body)) - - if !strings.Contains(s, "Index of /good-prefix") { - t.Fatalf("expected a path in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected backlink in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected file in directory listing") - } - if !strings.Contains(s, k.Cid().String()) { - t.Fatalf("expected hash in directory listing") - } - - // make request to directory listing with illegal prefix - req, err = http.NewRequest("GET", ts.URL, nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - req.Header.Set("X-Ipfs-Gateway-Prefix", "/bad-prefix") - - // make request to directory listing with evil prefix - req, err = http.NewRequest("GET", ts.URL, nil) - if err != nil { - t.Fatal(err) - } - req.Host = "example.net" - req.Header.Set("X-Ipfs-Gateway-Prefix", "//good-prefix/foo") - - res, err = doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // expect correct backlinks without illegal prefix - body, err = ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("error reading response: %s", err) - } - s = string(body) - t.Logf("body: %s\n", string(body)) - - if !strings.Contains(s, "Index of /") { - t.Fatalf("expected a path in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected backlink in directory listing") - } - if !strings.Contains(s, "") { - t.Fatalf("expected file in directory listing") - } - if !strings.Contains(s, k.Cid().String()) { - t.Fatalf("expected hash in directory listing") - } -} - -func TestCacheControlImmutable(t *testing.T) { - ts, _, _ := newTestServerAndNode(t, nil) - t.Logf("test server url: %s", ts.URL) - defer ts.Close() - - req, err := http.NewRequest("GET", ts.URL+emptyDir+"/", nil) - if err != nil { - t.Fatal(err) - } - - res, err := doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - // check the immutable tag isn't set - hdrs, ok := res.Header["Cache-Control"] - if ok { - for _, hdr := range hdrs { - if strings.Contains(hdr, "immutable") { - t.Fatalf("unexpected Cache-Control: immutable on directory listing: %s", hdr) - } - } - } -} - -func TestGoGetSupport(t *testing.T) { - ts, _, _ := newTestServerAndNode(t, nil) - t.Logf("test server url: %s", ts.URL) - defer ts.Close() - - // mimic go-get - req, err := http.NewRequest("GET", ts.URL+emptyDir+"?go-get=1", nil) - if err != nil { - t.Fatal(err) - } - - res, err := doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - - if res.StatusCode != 200 { - t.Errorf("status is %d, expected 200", res.StatusCode) - } -} - -func TestVersion(t *testing.T) { - version.CurrentCommit = "theshortcommithash" - - ns := mockNamesys{} - ts, _, _ := newTestServerAndNode(t, ns) - t.Logf("test server url: %s", ts.URL) - defer ts.Close() - - req, err := http.NewRequest("GET", ts.URL+"/version", nil) - if err != nil { - t.Fatal(err) - } - - res, err := doWithoutRedirect(req) - if err != nil { - t.Fatal(err) - } - body, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("error reading response: %s", err) - } - s := string(body) - - if !strings.Contains(s, "Commit: theshortcommithash") { - t.Fatalf("response doesn't contain commit:\n%s", s) - } - - if !strings.Contains(s, "Client Version: "+id.ClientVersion) { - t.Fatalf("response doesn't contain client version:\n%s", s) - } - - if !strings.Contains(s, "Protocol Version: "+id.LibP2PVersion) { - t.Fatalf("response doesn't contain protocol version:\n%s", s) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/ipns_hostname.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/ipns_hostname.go deleted file mode 100644 index 9b706dec..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/ipns_hostname.go +++ /dev/null @@ -1,39 +0,0 @@ -package corehttp - -import ( - "context" - "net" - "net/http" - "strings" - - core "github.com/ipfs/go-ipfs/core" - namesys "github.com/ipfs/go-ipfs/namesys" - - nsopts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - isd "gx/ipfs/QmZmmuAXgX73UQmX1jRKjTGmjzq24Jinqkq8vzkBtno4uX/go-is-domain" -) - -// IPNSHostnameOption rewrites an incoming request if its Host: header contains -// an IPNS name. -// The rewritten request points at the resolved name on the gateway handler. -func IPNSHostnameOption() ServeOption { - return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - childMux := http.NewServeMux() - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - ctx, cancel := context.WithCancel(n.Context()) - defer cancel() - - host := strings.SplitN(r.Host, ":", 2)[0] - if len(host) > 0 && isd.IsDomain(host) { - name := "/ipns/" + host - _, err := n.Namesys.Resolve(ctx, name, nsopts.Depth(1)) - if err == nil || err == namesys.ErrResolveRecursion { - r.Header.Set("X-Ipns-Original-Path", r.URL.Path) - r.URL.Path = name + r.URL.Path - } - } - childMux.ServeHTTP(w, r) - }) - return childMux, nil - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/logs.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/logs.go deleted file mode 100644 index 4fcfd1fb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/logs.go +++ /dev/null @@ -1,58 +0,0 @@ -package corehttp - -import ( - "io" - "net" - "net/http" - - core "github.com/ipfs/go-ipfs/core" - lwriter "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log/writer" -) - -type writeErrNotifier struct { - w io.Writer - errs chan error -} - -func newWriteErrNotifier(w io.Writer) (io.WriteCloser, <-chan error) { - ch := make(chan error, 1) - return &writeErrNotifier{ - w: w, - errs: ch, - }, ch -} - -func (w *writeErrNotifier) Write(b []byte) (int, error) { - n, err := w.w.Write(b) - if err != nil { - select { - case w.errs <- err: - default: - } - } - if f, ok := w.w.(http.Flusher); ok { - f.Flush() - } - return n, err -} - -func (w *writeErrNotifier) Close() error { - select { - case w.errs <- io.EOF: - default: - } - return nil -} - -func LogOption() ServeOption { - return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.HandleFunc("/logs", func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - wnf, errs := newWriteErrNotifier(w) - lwriter.WriterGroup.AddWriter(wnf) - log.Event(n.Context(), "log API client connected") - <-errs - }) - return mux, nil - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics.go deleted file mode 100644 index 6be50dba..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics.go +++ /dev/null @@ -1,134 +0,0 @@ -package corehttp - -import ( - "net" - "net/http" - - core "github.com/ipfs/go-ipfs/core" - - prometheus "gx/ipfs/QmTQuFQWHAWy4wMH6ZyPfGiawA5u9T8rs79FENoV8yXaoS/client_golang/prometheus" - promhttp "gx/ipfs/QmTQuFQWHAWy4wMH6ZyPfGiawA5u9T8rs79FENoV8yXaoS/client_golang/prometheus/promhttp" -) - -// This adds the scraping endpoint which Prometheus uses to fetch metrics. -func MetricsScrapingOption(path string) ServeOption { - return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.Handle(path, promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{})) - return mux, nil - } -} - -// This adds collection of net/http-related metrics -func MetricsCollectionOption(handlerName string) ServeOption { - return func(_ *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - // Adapted from github.com/prometheus/client_golang/prometheus/http.go - // Work around https://github.com/prometheus/client_golang/pull/311 - opts := prometheus.SummaryOpts{ - Subsystem: "http", - ConstLabels: prometheus.Labels{"handler": handlerName}, - Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, - } - - reqCnt := prometheus.NewCounterVec( - prometheus.CounterOpts{ - Namespace: opts.Namespace, - Subsystem: opts.Subsystem, - Name: "requests_total", - Help: "Total number of HTTP requests made.", - ConstLabels: opts.ConstLabels, - }, - []string{"method", "code"}, - ) - if err := prometheus.Register(reqCnt); err != nil { - if are, ok := err.(prometheus.AlreadyRegisteredError); ok { - reqCnt = are.ExistingCollector.(*prometheus.CounterVec) - } else { - return nil, err - } - } - - opts.Name = "request_duration_seconds" - opts.Help = "The HTTP request latencies in seconds." - reqDur := prometheus.NewSummaryVec(opts, nil) - if err := prometheus.Register(reqDur); err != nil { - if are, ok := err.(prometheus.AlreadyRegisteredError); ok { - reqDur = are.ExistingCollector.(*prometheus.SummaryVec) - } else { - return nil, err - } - } - - opts.Name = "request_size_bytes" - opts.Help = "The HTTP request sizes in bytes." - reqSz := prometheus.NewSummaryVec(opts, nil) - if err := prometheus.Register(reqSz); err != nil { - if are, ok := err.(prometheus.AlreadyRegisteredError); ok { - reqSz = are.ExistingCollector.(*prometheus.SummaryVec) - } else { - return nil, err - } - } - - opts.Name = "response_size_bytes" - opts.Help = "The HTTP response sizes in bytes." - resSz := prometheus.NewSummaryVec(opts, nil) - if err := prometheus.Register(resSz); err != nil { - if are, ok := err.(prometheus.AlreadyRegisteredError); ok { - resSz = are.ExistingCollector.(*prometheus.SummaryVec) - } else { - return nil, err - } - } - - // Construct the mux - childMux := http.NewServeMux() - var promMux http.Handler = childMux - promMux = promhttp.InstrumentHandlerResponseSize(resSz, promMux) - promMux = promhttp.InstrumentHandlerRequestSize(reqSz, promMux) - promMux = promhttp.InstrumentHandlerDuration(reqDur, promMux) - promMux = promhttp.InstrumentHandlerCounter(reqCnt, promMux) - mux.Handle("/", promMux) - - return childMux, nil - } -} - -var ( - peersTotalMetric = prometheus.NewDesc( - prometheus.BuildFQName("ipfs", "p2p", "peers_total"), - "Number of connected peers", []string{"transport"}, nil) -) - -type IpfsNodeCollector struct { - Node *core.IpfsNode -} - -func (_ IpfsNodeCollector) Describe(ch chan<- *prometheus.Desc) { - ch <- peersTotalMetric -} - -func (c IpfsNodeCollector) Collect(ch chan<- prometheus.Metric) { - for tr, val := range c.PeersTotalValues() { - ch <- prometheus.MustNewConstMetric( - peersTotalMetric, - prometheus.GaugeValue, - val, - tr, - ) - } -} - -func (c IpfsNodeCollector) PeersTotalValues() map[string]float64 { - vals := make(map[string]float64) - if c.Node.PeerHost == nil { - return vals - } - for _, conn := range c.Node.PeerHost.Network().Conns() { - tr := "" - for _, proto := range conn.RemoteMultiaddr().Protocols() { - tr = tr + "/" + proto.Name - } - vals[tr] = vals[tr] + 1 - } - return vals -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics_test.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics_test.go deleted file mode 100644 index 7542260e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/metrics_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package corehttp - -import ( - "context" - "testing" - "time" - - core "github.com/ipfs/go-ipfs/core" - - bhost "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/host/basic" - inet "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - swarmt "gx/ipfs/Qma3Xp3FXFSP4prirEiRYHJ2tgGE8EAx9i6JLziPLpAQjq/go-libp2p-swarm/testing" -) - -// This test is based on go-libp2p/p2p/net/swarm.TestConnectednessCorrect -// It builds 4 nodes and connects them, one being the sole center. -// Then it checks that the center reports the correct number of peers. -func TestPeersTotal(t *testing.T) { - ctx := context.Background() - - hosts := make([]*bhost.BasicHost, 4) - for i := 0; i < 4; i++ { - hosts[i] = bhost.New(swarmt.GenSwarm(t, ctx)) - } - - dial := func(a, b inet.Network) { - swarmt.DivulgeAddresses(b, a) - if _, err := a.DialPeer(ctx, b.LocalPeer()); err != nil { - t.Fatalf("Failed to dial: %s", err) - } - } - - dial(hosts[0].Network(), hosts[1].Network()) - dial(hosts[0].Network(), hosts[2].Network()) - dial(hosts[0].Network(), hosts[3].Network()) - - // there's something wrong with dial, i think. it's not finishing - // completely. there must be some async stuff. - <-time.After(100 * time.Millisecond) - - node := &core.IpfsNode{PeerHost: hosts[0]} - collector := IpfsNodeCollector{Node: node} - actual := collector.PeersTotalValues() - if len(actual) != 1 { - t.Fatalf("expected 1 peers transport, got %d", len(actual)) - } - if actual["/ip4/tcp"] != float64(3) { - t.Fatalf("expected 3 peers, got %f", actual["/ip4/tcp"]) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/mutex_profile.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/mutex_profile.go deleted file mode 100644 index db39a7bc..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/mutex_profile.go +++ /dev/null @@ -1,45 +0,0 @@ -package corehttp - -import ( - "net" - "net/http" - "runtime" - "strconv" - - core "github.com/ipfs/go-ipfs/core" -) - -// MutexFractionOption allows to set runtime.SetMutexProfileFraction via HTTP -// using POST request with parameter 'fraction'. -func MutexFractionOption(path string) ServeOption { - return func(_ *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) { - if r.Method != http.MethodPost { - w.WriteHeader(http.StatusMethodNotAllowed) - return - } - if err := r.ParseForm(); err != nil { - w.WriteHeader(http.StatusBadRequest) - w.Write([]byte(err.Error())) - return - } - - asfr := r.Form.Get("fraction") - if len(asfr) == 0 { - w.WriteHeader(http.StatusBadRequest) - return - } - - fr, err := strconv.Atoi(asfr) - if err != nil { - w.WriteHeader(http.StatusBadRequest) - w.Write([]byte(err.Error())) - return - } - log.Infof("Setting MutexProfileFraction to %d", fr) - runtime.SetMutexProfileFraction(fr) - }) - - return mux, nil - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/option_test.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/option_test.go deleted file mode 100644 index 22157618..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/option_test.go +++ /dev/null @@ -1,75 +0,0 @@ -package corehttp - -import ( - "fmt" - "io" - "net/http" - "net/http/httptest" - "testing" - - version "github.com/ipfs/go-ipfs" -) - -type testcasecheckversion struct { - userAgent string - uri string - shouldHandle bool - responseBody string - responseCode int -} - -func (tc testcasecheckversion) body() string { - if !tc.shouldHandle && tc.responseBody == "" { - return fmt.Sprintf("%s (%s != %s)\n", errAPIVersionMismatch, version.ApiVersion, tc.userAgent) - } - - return tc.responseBody -} - -func TestCheckVersionOption(t *testing.T) { - tcs := []testcasecheckversion{ - {"/go-ipfs/0.1/", APIPath + "/test/", false, "", http.StatusBadRequest}, - {"/go-ipfs/0.1/", APIPath + "/version", true, "check!", http.StatusOK}, - {version.ApiVersion, APIPath + "/test", true, "check!", http.StatusOK}, - {"Mozilla Firefox/no go-ipfs node", APIPath + "/test", true, "check!", http.StatusOK}, - {"/go-ipfs/0.1/", "/webui", true, "check!", http.StatusOK}, - } - - for _, tc := range tcs { - t.Logf("%#v", tc) - r := httptest.NewRequest("POST", tc.uri, nil) - r.Header.Add("User-Agent", tc.userAgent) // old version, should fail - - called := false - root := http.NewServeMux() - mux, err := CheckVersionOption()(nil, nil, root) - if err != nil { - t.Fatal(err) - } - - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - called = true - if !tc.shouldHandle { - t.Error("handler was called even though version didn't match") - } else { - io.WriteString(w, "check!") - } - }) - - w := httptest.NewRecorder() - - root.ServeHTTP(w, r) - - if tc.shouldHandle && !called { - t.Error("handler wasn't called even though it should have") - } - - if w.Code != tc.responseCode { - t.Errorf("expected code %d but got %d", tc.responseCode, w.Code) - } - - if w.Body.String() != tc.body() { - t.Errorf("expected error message %q, got %q", tc.body(), w.Body.String()) - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy.go deleted file mode 100644 index 63f397cb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy.go +++ /dev/null @@ -1,79 +0,0 @@ -package corehttp - -import ( - "fmt" - "net" - "net/http" - "net/http/httputil" - "net/url" - "strings" - - core "github.com/ipfs/go-ipfs/core" - - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - p2phttp "gx/ipfs/QmeXGHY2ntPsXLX28oGD2ufJB9EdvByz41Tt2sWrYPC7JJ/go-libp2p-http" -) - -// ProxyOption is an endpoint for proxying a HTTP request to another ipfs peer -func ProxyOption() ServeOption { - return func(ipfsNode *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.HandleFunc("/p2p/", func(w http.ResponseWriter, request *http.Request) { - // parse request - parsedRequest, err := parseRequest(request) - if err != nil { - handleError(w, "failed to parse request", err, 400) - return - } - - request.Host = "" // Let URL's Host take precedence. - request.URL.Path = parsedRequest.httpPath - target, err := url.Parse(fmt.Sprintf("libp2p://%s", parsedRequest.target)) - if err != nil { - handleError(w, "failed to parse url", err, 400) - return - } - - rt := p2phttp.NewTransport(ipfsNode.PeerHost, p2phttp.ProtocolOption(parsedRequest.name)) - proxy := httputil.NewSingleHostReverseProxy(target) - proxy.Transport = rt - proxy.ServeHTTP(w, request) - }) - return mux, nil - } -} - -type proxyRequest struct { - target string - name protocol.ID - httpPath string // path to send to the proxy-host -} - -// from the url path parse the peer-ID, name and http path -// /p2p/$peer_id/http/$http_path -// or -// /p2p/$peer_id/x/$protocol/http/$http_path -func parseRequest(request *http.Request) (*proxyRequest, error) { - path := request.URL.Path - - split := strings.SplitN(path, "/", 5) - if len(split) < 5 { - return nil, fmt.Errorf("Invalid request path '%s'", path) - } - - if split[3] == "http" { - return &proxyRequest{split[2], protocol.ID("/http"), split[4]}, nil - } - - split = strings.SplitN(path, "/", 7) - if split[3] != "x" || split[5] != "http" { - return nil, fmt.Errorf("Invalid request path '%s'", path) - } - - return &proxyRequest{split[2], protocol.ID("/x/" + split[4] + "/http"), split[6]}, nil -} - -func handleError(w http.ResponseWriter, msg string, err error, code int) { - w.WriteHeader(code) - fmt.Fprintf(w, "%s: %s\n", msg, err) - log.Warningf("http proxy error: %s: %s", err) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy_test.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy_test.go deleted file mode 100644 index 786dcf3d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/proxy_test.go +++ /dev/null @@ -1,56 +0,0 @@ -package corehttp - -import ( - "net/http" - "strings" - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/assert" - - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" -) - -type TestCase struct { - urlprefix string - target string - name string - path string -} - -var validtestCases = []TestCase{ - {"http://localhost:5001", "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", "/http", "path/to/index.txt"}, - {"http://localhost:5001", "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", "/x/custom/http", "path/to/index.txt"}, - {"http://localhost:5001", "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", "/x/custom/http", "http/path/to/index.txt"}, -} - -func TestParseRequest(t *testing.T) { - for _, tc := range validtestCases { - url := tc.urlprefix + "/p2p/" + tc.target + tc.name + "/" + tc.path - req, _ := http.NewRequest("GET", url, strings.NewReader("")) - - parsed, err := parseRequest(req) - if err != nil { - t.Fatal(err) - } - assert.True(parsed.httpPath == tc.path, t, "proxy request path") - assert.True(parsed.name == protocol.ID(tc.name), t, "proxy request name") - assert.True(parsed.target == tc.target, t, "proxy request peer-id") - } -} - -var invalidtestCases = []string{ - "http://localhost:5001/p2p/http/foobar", - "http://localhost:5001/p2p/QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT/x/custom/foobar", -} - -func TestParseRequestInvalidPath(t *testing.T) { - for _, tc := range invalidtestCases { - url := tc - req, _ := http.NewRequest("GET", url, strings.NewReader("")) - - _, err := parseRequest(req) - if err == nil { - t.Fail() - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/redirect.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/redirect.go deleted file mode 100644 index ec70ffaf..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/redirect.go +++ /dev/null @@ -1,24 +0,0 @@ -package corehttp - -import ( - "net" - "net/http" - - core "github.com/ipfs/go-ipfs/core" -) - -func RedirectOption(path string, redirect string) ServeOption { - handler := &redirectHandler{redirect} - return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) { - mux.Handle("/"+path+"/", handler) - return mux, nil - } -} - -type redirectHandler struct { - path string -} - -func (i *redirectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - http.Redirect(w, r, i.path, 302) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corehttp/webui.go b/vendor/github.com/ipfs/go-ipfs/core/corehttp/webui.go deleted file mode 100644 index d7628198..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corehttp/webui.go +++ /dev/null @@ -1,26 +0,0 @@ -package corehttp - -// TODO: move to IPNS -const WebUIPath = "/ipfs/QmXc9raDM1M5G5fpBnVyQ71vR4gbnskwnB9iMEzBuLgvoZ" - -// this is a list of all past webUI paths. -var WebUIPaths = []string{ - WebUIPath, - "/ipfs/QmenEBWcAk3tN94fSKpKFtUMwty1qNwSYw3DMDFV6cPBXA", - "/ipfs/QmUnXcWZC5Ve21gUseouJsH5mLAyz5JPp8aHsg8qVUUK8e", - "/ipfs/QmSDgpiHco5yXdyVTfhKxr3aiJ82ynz8V14QcGKicM3rVh", - "/ipfs/QmRuvWJz1Fc8B9cTsAYANHTXqGmKR9DVfY5nvMD1uA2WQ8", - "/ipfs/QmQLXHs7K98JNQdWrBB2cQLJahPhmupbDjRuH1b9ibmwVa", - "/ipfs/QmXX7YRpU7nNBKfw75VG7Y1c3GwpSAGHRev67XVPgZFv9R", - "/ipfs/QmXdu7HWdV6CUaUabd9q2ZeA4iHZLVyDRj3Gi4dsJsWjbr", - "/ipfs/QmaaqrHyAQm7gALkRW8DcfGX3u8q9rWKnxEMmf7m9z515w", - "/ipfs/QmSHDxWsMPuJQKWmVA1rB5a3NX2Eme5fPqNb63qwaqiqSp", - "/ipfs/QmctngrQAt9fjpQUZr7Bx3BsXUcif52eZGTizWhvcShsjz", - "/ipfs/QmS2HL9v5YeKgQkkWMvs1EMnFtUowTEdFfSSeMT4pos1e6", - "/ipfs/QmR9MzChjp1MdFWik7NjEjqKQMzVmBkdK3dz14A6B5Cupm", - "/ipfs/QmRyWyKWmphamkMRnJVjUTzSFSAAZowYP4rnbgnfMXC9Mr", - "/ipfs/QmU3o9bvfenhTKhxUakbYrLDnZU7HezAVxPM6Ehjw9Xjqy", - "/ipfs/QmPhnvn747LqwPYMJmQVorMaGbMSgA7mRRoyyZYz3DoZRQ", -} - -var WebUIOption = RedirectOption("webui", WebUIPath) diff --git a/vendor/github.com/ipfs/go-ipfs/core/corerepo/gc.go b/vendor/github.com/ipfs/go-ipfs/core/corerepo/gc.go deleted file mode 100644 index 7df2a586..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corerepo/gc.go +++ /dev/null @@ -1,226 +0,0 @@ -package corerepo - -import ( - "bytes" - "context" - "errors" - "time" - - "github.com/ipfs/go-ipfs/core" - gc "github.com/ipfs/go-ipfs/pin/gc" - repo "github.com/ipfs/go-ipfs/repo" - - humanize "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - mfs "gx/ipfs/Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx/go-mfs" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("corerepo") - -var ErrMaxStorageExceeded = errors.New("maximum storage limit exceeded. Try to unpin some files") - -type GC struct { - Node *core.IpfsNode - Repo repo.Repo - StorageMax uint64 - StorageGC uint64 - SlackGB uint64 - Storage uint64 -} - -func NewGC(n *core.IpfsNode) (*GC, error) { - r := n.Repo - cfg, err := r.Config() - if err != nil { - return nil, err - } - - // check if cfg has these fields initialized - // TODO: there should be a general check for all of the cfg fields - // maybe distinguish between user config file and default struct? - if cfg.Datastore.StorageMax == "" { - r.SetConfigKey("Datastore.StorageMax", "10GB") - cfg.Datastore.StorageMax = "10GB" - } - if cfg.Datastore.StorageGCWatermark == 0 { - r.SetConfigKey("Datastore.StorageGCWatermark", 90) - cfg.Datastore.StorageGCWatermark = 90 - } - - storageMax, err := humanize.ParseBytes(cfg.Datastore.StorageMax) - if err != nil { - return nil, err - } - storageGC := storageMax * uint64(cfg.Datastore.StorageGCWatermark) / 100 - - // calculate the slack space between StorageMax and StorageGCWatermark - // used to limit GC duration - slackGB := (storageMax - storageGC) / 10e9 - if slackGB < 1 { - slackGB = 1 - } - - return &GC{ - Node: n, - Repo: r, - StorageMax: storageMax, - StorageGC: storageGC, - SlackGB: slackGB, - }, nil -} - -func BestEffortRoots(filesRoot *mfs.Root) ([]cid.Cid, error) { - rootDag, err := filesRoot.GetDirectory().GetNode() - if err != nil { - return nil, err - } - - return []cid.Cid{rootDag.Cid()}, nil -} - -func GarbageCollect(n *core.IpfsNode, ctx context.Context) error { - ctx, cancel := context.WithCancel(ctx) - defer cancel() // in case error occurs during operation - roots, err := BestEffortRoots(n.FilesRoot) - if err != nil { - return err - } - rmed := gc.GC(ctx, n.Blockstore, n.Repo.Datastore(), n.Pinning, roots) - - return CollectResult(ctx, rmed, nil) -} - -// CollectResult collects the output of a garbage collection run and calls the -// given callback for each object removed. It also collects all errors into a -// MultiError which is returned after the gc is completed. -func CollectResult(ctx context.Context, gcOut <-chan gc.Result, cb func(cid.Cid)) error { - var errors []error -loop: - for { - select { - case res, ok := <-gcOut: - if !ok { - break loop - } - if res.Error != nil { - errors = append(errors, res.Error) - } else if res.KeyRemoved.Defined() && cb != nil { - cb(res.KeyRemoved) - } - case <-ctx.Done(): - errors = append(errors, ctx.Err()) - break loop - } - } - - switch len(errors) { - case 0: - return nil - case 1: - return errors[0] - default: - return NewMultiError(errors...) - } -} - -// NewMultiError creates a new MultiError object from a given slice of errors. -func NewMultiError(errs ...error) *MultiError { - return &MultiError{errs[:len(errs)-1], errs[len(errs)-1]} -} - -// MultiError contains the results of multiple errors. -type MultiError struct { - Errors []error - Summary error -} - -func (e *MultiError) Error() string { - var buf bytes.Buffer - for _, err := range e.Errors { - buf.WriteString(err.Error()) - buf.WriteString("; ") - } - buf.WriteString(e.Summary.Error()) - return buf.String() -} - -func GarbageCollectAsync(n *core.IpfsNode, ctx context.Context) <-chan gc.Result { - roots, err := BestEffortRoots(n.FilesRoot) - if err != nil { - out := make(chan gc.Result) - out <- gc.Result{Error: err} - close(out) - return out - } - - return gc.GC(ctx, n.Blockstore, n.Repo.Datastore(), n.Pinning, roots) -} - -func PeriodicGC(ctx context.Context, node *core.IpfsNode) error { - cfg, err := node.Repo.Config() - if err != nil { - return err - } - - if cfg.Datastore.GCPeriod == "" { - cfg.Datastore.GCPeriod = "1h" - } - - period, err := time.ParseDuration(cfg.Datastore.GCPeriod) - if err != nil { - return err - } - if int64(period) == 0 { - // if duration is 0, it means GC is disabled. - return nil - } - - gc, err := NewGC(node) - if err != nil { - return err - } - - for { - select { - case <-ctx.Done(): - return nil - case <-time.After(period): - // the private func maybeGC doesn't compute storageMax, storageGC, slackGC so that they are not re-computed for every cycle - if err := gc.maybeGC(ctx, 0); err != nil { - log.Error(err) - } - } - } -} - -func ConditionalGC(ctx context.Context, node *core.IpfsNode, offset uint64) error { - gc, err := NewGC(node) - if err != nil { - return err - } - return gc.maybeGC(ctx, offset) -} - -func (gc *GC) maybeGC(ctx context.Context, offset uint64) error { - storage, err := gc.Repo.GetStorageUsage() - if err != nil { - return err - } - - if storage+offset > gc.StorageGC { - if storage+offset > gc.StorageMax { - log.Warningf("pre-GC: %s", ErrMaxStorageExceeded) - } - - // Do GC here - log.Info("Watermark exceeded. Starting repo GC...") - defer log.EventBegin(ctx, "repoGC").Done() - - if err := GarbageCollect(gc.Node, ctx); err != nil { - return err - } - log.Infof("Repo GC done. See `ipfs repo stat` to see how much space got freed.\n") - } - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/corerepo/stat.go b/vendor/github.com/ipfs/go-ipfs/core/corerepo/stat.go deleted file mode 100644 index d25ce28e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/corerepo/stat.go +++ /dev/null @@ -1,91 +0,0 @@ -package corerepo - -import ( - "fmt" - "math" - - context "context" - - "github.com/ipfs/go-ipfs/core" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - humanize "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" -) - -// SizeStat wraps information about the repository size and its limit. -type SizeStat struct { - RepoSize uint64 // size in bytes - StorageMax uint64 // size in bytes -} - -// Stat wraps information about the objects stored on disk. -type Stat struct { - SizeStat - NumObjects uint64 - RepoPath string - Version string -} - -// NoLimit represents the value for unlimited storage -const NoLimit uint64 = math.MaxUint64 - -// RepoStat returns a *Stat object with all the fields set. -func RepoStat(ctx context.Context, n *core.IpfsNode) (Stat, error) { - sizeStat, err := RepoSize(ctx, n) - if err != nil { - return Stat{}, err - } - - allKeys, err := n.Blockstore.AllKeysChan(ctx) - if err != nil { - return Stat{}, err - } - - count := uint64(0) - for range allKeys { - count++ - } - - path, err := fsrepo.BestKnownPath() - if err != nil { - return Stat{}, err - } - - return Stat{ - SizeStat: SizeStat{ - RepoSize: sizeStat.RepoSize, - StorageMax: sizeStat.StorageMax, - }, - NumObjects: count, - RepoPath: path, - Version: fmt.Sprintf("fs-repo@%d", fsrepo.RepoVersion), - }, nil -} - -// RepoSize returns a *Stat object with the RepoSize and StorageMax fields set. -func RepoSize(ctx context.Context, n *core.IpfsNode) (SizeStat, error) { - r := n.Repo - - cfg, err := r.Config() - if err != nil { - return SizeStat{}, err - } - - usage, err := r.GetStorageUsage() - if err != nil { - return SizeStat{}, err - } - - storageMax := NoLimit - if cfg.Datastore.StorageMax != "" { - storageMax, err = humanize.ParseBytes(cfg.Datastore.StorageMax) - if err != nil { - return SizeStat{}, err - } - } - - return SizeStat{ - RepoSize: usage, - StorageMax: storageMax, - }, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/add.go b/vendor/github.com/ipfs/go-ipfs/core/coreunix/add.go deleted file mode 100644 index e8f4407c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/add.go +++ /dev/null @@ -1,549 +0,0 @@ -package coreunix - -import ( - "context" - "errors" - "fmt" - "io" - "os" - gopath "path" - "strconv" - - "github.com/ipfs/go-ipfs/pin" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - chunker "gx/ipfs/QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8/go-ipfs-chunker" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - "gx/ipfs/Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx/go-mfs" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer/balanced" - ihelper "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer/helpers" - "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer/trickle" - "gx/ipfs/QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7/go-ipfs-posinfo" -) - -var log = logging.Logger("coreunix") - -// how many bytes of progress to wait before sending a progress update message -const progressReaderIncrement = 1024 * 256 - -var liveCacheSize = uint64(256 << 10) - -type Link struct { - Name, Hash string - Size uint64 -} - -// NewAdder Returns a new Adder used for a file add operation. -func NewAdder(ctx context.Context, p pin.Pinner, bs bstore.GCLocker, ds ipld.DAGService) (*Adder, error) { - bufferedDS := ipld.NewBufferedDAG(ctx, ds) - - return &Adder{ - ctx: ctx, - pinning: p, - gcLocker: bs, - dagService: ds, - bufferedDS: bufferedDS, - Progress: false, - Hidden: true, - Pin: true, - Trickle: false, - Wrap: false, - Chunker: "", - }, nil -} - -// Adder holds the switches passed to the `add` command. -type Adder struct { - ctx context.Context - pinning pin.Pinner - gcLocker bstore.GCLocker - dagService ipld.DAGService - bufferedDS *ipld.BufferedDAG - Out chan<- interface{} - Progress bool - Hidden bool - Pin bool - Trickle bool - RawLeaves bool - Silent bool - Wrap bool - Name string - NoCopy bool - Chunker string - root ipld.Node - mroot *mfs.Root - unlocker bstore.Unlocker - tempRoot cid.Cid - CidBuilder cid.Builder - liveNodes uint64 -} - -func (adder *Adder) mfsRoot() (*mfs.Root, error) { - if adder.mroot != nil { - return adder.mroot, nil - } - rnode := unixfs.EmptyDirNode() - rnode.SetCidBuilder(adder.CidBuilder) - mr, err := mfs.NewRoot(adder.ctx, adder.dagService, rnode, nil) - if err != nil { - return nil, err - } - adder.mroot = mr - return adder.mroot, nil -} - -// SetMfsRoot sets `r` as the root for Adder. -func (adder *Adder) SetMfsRoot(r *mfs.Root) { - adder.mroot = r -} - -// Constructs a node from reader's data, and adds it. Doesn't pin. -func (adder *Adder) add(reader io.Reader) (ipld.Node, error) { - chnk, err := chunker.FromString(reader, adder.Chunker) - if err != nil { - return nil, err - } - - // Make sure all added nodes are written when done. - defer adder.bufferedDS.Commit() - - params := ihelper.DagBuilderParams{ - Dagserv: adder.bufferedDS, - RawLeaves: adder.RawLeaves, - Maxlinks: ihelper.DefaultLinksPerBlock, - NoCopy: adder.NoCopy, - CidBuilder: adder.CidBuilder, - } - - db, err := params.New(chnk) - if err != nil { - return nil, err - } - if adder.Trickle { - return trickle.Layout(db) - } - - return balanced.Layout(db) -} - -// RootNode returns the root node of the Added. -func (adder *Adder) RootNode() (ipld.Node, error) { - // for memoizing - if adder.root != nil { - return adder.root, nil - } - - mr, err := adder.mfsRoot() - if err != nil { - return nil, err - } - root, err := mr.GetDirectory().GetNode() - if err != nil { - return nil, err - } - - // if not wrapping, AND one root file, use that hash as root. - if !adder.Wrap && len(root.Links()) == 1 { - nd, err := root.Links()[0].GetNode(adder.ctx, adder.dagService) - if err != nil { - return nil, err - } - - root = nd - } - - adder.root = root - return root, err -} - -// Recursively pins the root node of Adder and -// writes the pin state to the backing datastore. -func (adder *Adder) PinRoot() error { - root, err := adder.RootNode() - if err != nil { - return err - } - if !adder.Pin { - return nil - } - - rnk := root.Cid() - - err = adder.dagService.Add(adder.ctx, root) - if err != nil { - return err - } - - if adder.tempRoot.Defined() { - err := adder.pinning.Unpin(adder.ctx, adder.tempRoot, true) - if err != nil { - return err - } - adder.tempRoot = rnk - } - - adder.pinning.PinWithMode(rnk, pin.Recursive) - return adder.pinning.Flush() -} - -// Finalize flushes the mfs root directory and returns the mfs root node. -func (adder *Adder) Finalize() (ipld.Node, error) { - mr, err := adder.mfsRoot() - if err != nil { - return nil, err - } - var root mfs.FSNode - rootdir := mr.GetDirectory() - root = rootdir - - err = root.Flush() - if err != nil { - return nil, err - } - - var name string - if !adder.Wrap { - children, err := rootdir.ListNames(adder.ctx) - if err != nil { - return nil, err - } - - if len(children) == 0 { - return nil, fmt.Errorf("expected at least one child dir, got none") - } - - // Replace root with the first child - name = children[0] - root, err = rootdir.Child(name) - if err != nil { - return nil, err - } - } - - err = adder.outputDirs(name, root) - if err != nil { - return nil, err - } - - err = mr.Close() - if err != nil { - return nil, err - } - - return root.GetNode() -} - -func (adder *Adder) outputDirs(path string, fsn mfs.FSNode) error { - switch fsn := fsn.(type) { - case *mfs.File: - return nil - case *mfs.Directory: - names, err := fsn.ListNames(adder.ctx) - if err != nil { - return err - } - - for _, name := range names { - child, err := fsn.Child(name) - if err != nil { - return err - } - - childpath := gopath.Join(path, name) - err = adder.outputDirs(childpath, child) - if err != nil { - return err - } - - fsn.Uncache(name) - } - nd, err := fsn.GetNode() - if err != nil { - return err - } - - return outputDagnode(adder.Out, path, nd) - default: - return fmt.Errorf("unrecognized fsn type: %#v", fsn) - } -} - -func (adder *Adder) addNode(node ipld.Node, path string) error { - // patch it into the root - if path == "" { - path = node.Cid().String() - } - - if pi, ok := node.(*posinfo.FilestoreNode); ok { - node = pi.Node - } - - mr, err := adder.mfsRoot() - if err != nil { - return err - } - dir := gopath.Dir(path) - if dir != "." { - opts := mfs.MkdirOpts{ - Mkparents: true, - Flush: false, - CidBuilder: adder.CidBuilder, - } - if err := mfs.Mkdir(mr, dir, opts); err != nil { - return err - } - } - - if err := mfs.PutNode(mr, path, node); err != nil { - return err - } - - if !adder.Silent { - return outputDagnode(adder.Out, path, node) - } - return nil -} - -// AddAllAndPin adds the given request's files and pin them. -func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) { - if adder.Pin { - adder.unlocker = adder.gcLocker.PinLock() - } - defer func() { - if adder.unlocker != nil { - adder.unlocker.Unlock() - } - }() - - switch tf := file.(type) { - case files.Directory: - // Iterate over each top-level file and add individually. Otherwise the - // single files.File f is treated as a directory, affecting hidden file - // semantics. - it := tf.Entries() - for it.Next() { - if err := adder.addFileNode(it.Name(), it.Node()); err != nil { - return nil, err - } - } - if it.Err() != nil { - return nil, it.Err() - } - break - default: - if err := adder.addFileNode("", file); err != nil { - return nil, err - } - break - } - - // copy intermediary nodes from editor to our actual dagservice - nd, err := adder.Finalize() - if err != nil { - return nil, err - } - - if !adder.Pin { - return nd, nil - } - return nd, adder.PinRoot() -} - -func (adder *Adder) addFileNode(path string, file files.Node) error { - defer file.Close() - err := adder.maybePauseForGC() - if err != nil { - return err - } - - if adder.liveNodes >= liveCacheSize { - // TODO: A smarter cache that uses some sort of lru cache with an eviction handler - mr, err := adder.mfsRoot() - if err != nil { - return err - } - if err := mr.FlushMemFree(adder.ctx); err != nil { - return err - } - - adder.liveNodes = 0 - } - adder.liveNodes++ - - switch f := file.(type) { - case files.Directory: - return adder.addDir(path, f) - case *files.Symlink: - return adder.addSymlink(path, f) - case files.File: - return adder.addFile(path, f) - default: - return errors.New("unknown file type") - } -} - -func (adder *Adder) addSymlink(path string, l *files.Symlink) error { - sdata, err := unixfs.SymlinkData(l.Target) - if err != nil { - return err - } - - dagnode := dag.NodeWithData(sdata) - dagnode.SetCidBuilder(adder.CidBuilder) - err = adder.dagService.Add(adder.ctx, dagnode) - if err != nil { - return err - } - - return adder.addNode(dagnode, path) -} - -func (adder *Adder) addFile(path string, file files.File) error { - // if the progress flag was specified, wrap the file so that we can send - // progress updates to the client (over the output channel) - var reader io.Reader = file - if adder.Progress { - rdr := &progressReader{file: reader, path: path, out: adder.Out} - if fi, ok := file.(files.FileInfo); ok { - reader = &progressReader2{rdr, fi} - } else { - reader = rdr - } - } - - dagnode, err := adder.add(reader) - if err != nil { - return err - } - - addFileInfo, ok := file.(files.FileInfo) - if ok { - if addFileInfo.AbsPath() == os.Stdin.Name() && adder.Name != "" { - path = adder.Name - adder.Name = "" - } - } - // patch it into the root - return adder.addNode(dagnode, path) -} - -func (adder *Adder) addDir(path string, dir files.Directory) error { - log.Infof("adding directory: %s", path) - - mr, err := adder.mfsRoot() - if err != nil { - return err - } - err = mfs.Mkdir(mr, path, mfs.MkdirOpts{ - Mkparents: true, - Flush: false, - CidBuilder: adder.CidBuilder, - }) - if err != nil { - return err - } - - it := dir.Entries() - for it.Next() { - fpath := gopath.Join(path, it.Name()) - - // Skip hidden files when adding recursively, unless Hidden is enabled. - if files.IsHidden(fpath, it.Node()) && !adder.Hidden { - log.Infof("%s is hidden, skipping", fpath) - continue - } - err = adder.addFileNode(fpath, it.Node()) - if err != nil { - return err - } - } - - return it.Err() -} - -func (adder *Adder) maybePauseForGC() error { - if adder.unlocker != nil && adder.gcLocker.GCRequested() { - err := adder.PinRoot() - if err != nil { - return err - } - - adder.unlocker.Unlock() - adder.unlocker = adder.gcLocker.PinLock() - } - return nil -} - -// outputDagnode sends dagnode info over the output channel -func outputDagnode(out chan<- interface{}, name string, dn ipld.Node) error { - if out == nil { - return nil - } - - o, err := getOutput(dn) - if err != nil { - return err - } - - out <- &coreiface.AddEvent{ - Path: o.Path, - Name: name, - Size: o.Size, - } - - return nil -} - -// from core/commands/object.go -func getOutput(dagnode ipld.Node) (*coreiface.AddEvent, error) { - c := dagnode.Cid() - s, err := dagnode.Size() - if err != nil { - return nil, err - } - - output := &coreiface.AddEvent{ - Path: coreiface.IpfsPath(c), - Size: strconv.FormatUint(s, 10), - } - - return output, nil -} - -type progressReader struct { - file io.Reader - path string - out chan<- interface{} - bytes int64 - lastProgress int64 -} - -func (i *progressReader) Read(p []byte) (int, error) { - n, err := i.file.Read(p) - - i.bytes += int64(n) - if i.bytes-i.lastProgress >= progressReaderIncrement || err == io.EOF { - i.lastProgress = i.bytes - i.out <- &coreiface.AddEvent{ - Name: i.path, - Bytes: i.bytes, - } - } - - return n, err -} - -type progressReader2 struct { - *progressReader - files.FileInfo -} - -func (i *progressReader2) Read(p []byte) (int, error) { - return i.progressReader.Read(p) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/add_test.go b/vendor/github.com/ipfs/go-ipfs/core/coreunix/add_test.go deleted file mode 100644 index 57707022..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/add_test.go +++ /dev/null @@ -1,257 +0,0 @@ -package coreunix - -import ( - "bytes" - "context" - "io" - "io/ioutil" - "math/rand" - "os" - "path/filepath" - "testing" - "time" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/pin/gc" - "github.com/ipfs/go-ipfs/repo" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - datastore "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - syncds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - pi "gx/ipfs/QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7/go-ipfs-posinfo" -) - -const testPeerID = "QmTFauExutTsy4XP6JbMFcw2Wa9645HJt2bTqL6qYDCKfe" - -func TestAddGCLive(t *testing.T) { - r := &repo.Mock{ - C: config.Config{ - Identity: config.Identity{ - PeerID: testPeerID, // required by offline node - }, - }, - D: syncds.MutexWrap(datastore.NewMapDatastore()), - } - node, err := core.NewNode(context.Background(), &core.BuildCfg{Repo: r}) - if err != nil { - t.Fatal(err) - } - - out := make(chan interface{}) - adder, err := NewAdder(context.Background(), node.Pinning, node.Blockstore, node.DAG) - if err != nil { - t.Fatal(err) - } - adder.Out = out - - rfa := files.NewBytesFile([]byte("testfileA")) - - // make two files with pipes so we can 'pause' the add for timing of the test - piper, pipew := io.Pipe() - hangfile := files.NewReaderFile(piper) - - rfd := files.NewBytesFile([]byte("testfileD")) - - slf := files.NewMapDirectory(map[string]files.Node{ - "a": rfa, - "b": hangfile, - "d": rfd, - }) - - addDone := make(chan struct{}) - go func() { - defer close(addDone) - defer close(out) - _, err := adder.AddAllAndPin(slf) - - if err != nil { - t.Fatal(err) - } - - }() - - addedHashes := make(map[string]struct{}) - select { - case o := <-out: - addedHashes[o.(*coreiface.AddEvent).Path.Cid().String()] = struct{}{} - case <-addDone: - t.Fatal("add shouldnt complete yet") - } - - var gcout <-chan gc.Result - gcstarted := make(chan struct{}) - go func() { - defer close(gcstarted) - gcout = gc.GC(context.Background(), node.Blockstore, node.Repo.Datastore(), node.Pinning, nil) - }() - - // gc shouldnt start until we let the add finish its current file. - pipew.Write([]byte("some data for file b")) - - select { - case <-gcstarted: - t.Fatal("gc shouldnt have started yet") - default: - } - - time.Sleep(time.Millisecond * 100) // make sure gc gets to requesting lock - - // finish write and unblock gc - pipew.Close() - - // receive next object from adder - o := <-out - addedHashes[o.(*coreiface.AddEvent).Path.Cid().String()] = struct{}{} - - <-gcstarted - - for r := range gcout { - if r.Error != nil { - t.Fatal(err) - } - if _, ok := addedHashes[r.KeyRemoved.String()]; ok { - t.Fatal("gc'ed a hash we just added") - } - } - - var last cid.Cid - for a := range out { - // wait for it to finish - c, err := cid.Decode(a.(*coreiface.AddEvent).Path.Cid().String()) - if err != nil { - t.Fatal(err) - } - last = c - } - - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - - set := cid.NewSet() - err = dag.EnumerateChildren(ctx, dag.GetLinksWithDAG(node.DAG), last, set.Visit) - if err != nil { - t.Fatal(err) - } -} - -func testAddWPosInfo(t *testing.T, rawLeaves bool) { - r := &repo.Mock{ - C: config.Config{ - Identity: config.Identity{ - PeerID: testPeerID, // required by offline node - }, - }, - D: syncds.MutexWrap(datastore.NewMapDatastore()), - } - node, err := core.NewNode(context.Background(), &core.BuildCfg{Repo: r}) - if err != nil { - t.Fatal(err) - } - - bs := &testBlockstore{GCBlockstore: node.Blockstore, expectedPath: filepath.Join(os.TempDir(), "foo.txt"), t: t} - bserv := blockservice.New(bs, node.Exchange) - dserv := dag.NewDAGService(bserv) - adder, err := NewAdder(context.Background(), node.Pinning, bs, dserv) - if err != nil { - t.Fatal(err) - } - out := make(chan interface{}) - adder.Out = out - adder.Progress = true - adder.RawLeaves = rawLeaves - adder.NoCopy = true - - data := make([]byte, 5*1024*1024) - rand.New(rand.NewSource(2)).Read(data) // Rand.Read never returns an error - fileData := ioutil.NopCloser(bytes.NewBuffer(data)) - fileInfo := dummyFileInfo{"foo.txt", int64(len(data)), time.Now()} - file, _ := files.NewReaderPathFile(filepath.Join(os.TempDir(), "foo.txt"), fileData, &fileInfo) - - go func() { - defer close(adder.Out) - _, err = adder.AddAllAndPin(file) - if err != nil { - t.Fatal(err) - } - }() - for range out { - } - - exp := 0 - nonOffZero := 0 - if rawLeaves { - exp = 1 - nonOffZero = 19 - } - if bs.countAtOffsetZero != exp { - t.Fatalf("expected %d blocks with an offset at zero (one root and one leaf), got %d", exp, bs.countAtOffsetZero) - } - if bs.countAtOffsetNonZero != nonOffZero { - // note: the exact number will depend on the size and the sharding algo. used - t.Fatalf("expected %d blocks with an offset > 0, got %d", nonOffZero, bs.countAtOffsetNonZero) - } -} - -func TestAddWPosInfo(t *testing.T) { - testAddWPosInfo(t, false) -} - -func TestAddWPosInfoAndRawLeafs(t *testing.T) { - testAddWPosInfo(t, true) -} - -type testBlockstore struct { - blockstore.GCBlockstore - expectedPath string - t *testing.T - countAtOffsetZero int - countAtOffsetNonZero int -} - -func (bs *testBlockstore) Put(block blocks.Block) error { - bs.CheckForPosInfo(block) - return bs.GCBlockstore.Put(block) -} - -func (bs *testBlockstore) PutMany(blocks []blocks.Block) error { - for _, blk := range blocks { - bs.CheckForPosInfo(blk) - } - return bs.GCBlockstore.PutMany(blocks) -} - -func (bs *testBlockstore) CheckForPosInfo(block blocks.Block) error { - fsn, ok := block.(*pi.FilestoreNode) - if ok { - posInfo := fsn.PosInfo - if posInfo.FullPath != bs.expectedPath { - bs.t.Fatal("PosInfo does not have the expected path") - } - if posInfo.Offset == 0 { - bs.countAtOffsetZero += 1 - } else { - bs.countAtOffsetNonZero += 1 - } - } - return nil -} - -type dummyFileInfo struct { - name string - size int64 - modTime time.Time -} - -func (fi *dummyFileInfo) Name() string { return fi.name } -func (fi *dummyFileInfo) Size() int64 { return fi.size } -func (fi *dummyFileInfo) Mode() os.FileMode { return 0 } -func (fi *dummyFileInfo) ModTime() time.Time { return fi.modTime } -func (fi *dummyFileInfo) IsDir() bool { return false } -func (fi *dummyFileInfo) Sys() interface{} { return nil } diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata.go b/vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata.go deleted file mode 100644 index 88164e5c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata.go +++ /dev/null @@ -1,57 +0,0 @@ -package coreunix - -import ( - core "github.com/ipfs/go-ipfs/core" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" -) - -func AddMetadataTo(n *core.IpfsNode, skey string, m *ft.Metadata) (string, error) { - c, err := cid.Decode(skey) - if err != nil { - return "", err - } - - nd, err := n.DAG.Get(n.Context(), c) - if err != nil { - return "", err - } - - mdnode := new(dag.ProtoNode) - mdata, err := ft.BytesForMetadata(m) - if err != nil { - return "", err - } - - mdnode.SetData(mdata) - if err := mdnode.AddNodeLink("file", nd); err != nil { - return "", err - } - - err = n.DAG.Add(n.Context(), mdnode) - if err != nil { - return "", err - } - - return mdnode.Cid().String(), nil -} - -func Metadata(n *core.IpfsNode, skey string) (*ft.Metadata, error) { - c, err := cid.Decode(skey) - if err != nil { - return nil, err - } - - nd, err := n.DAG.Get(n.Context(), c) - if err != nil { - return nil, err - } - - pbnd, ok := nd.(*dag.ProtoNode) - if !ok { - return nil, dag.ErrNotProtobuf - } - - return ft.MetadataFromBytes(pbnd.Data()) -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata_test.go b/vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata_test.go deleted file mode 100644 index 42ab3e06..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/metadata_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package coreunix - -import ( - "bytes" - "context" - "io/ioutil" - "testing" - - core "github.com/ipfs/go-ipfs/core" - merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - importer "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" - - u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - chunker "gx/ipfs/QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8/go-ipfs-chunker" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" -) - -func getDagserv(t *testing.T) ipld.DAGService { - db := dssync.MutexWrap(ds.NewMapDatastore()) - bs := bstore.NewBlockstore(db) - blockserv := bserv.New(bs, offline.Exchange(bs)) - return merkledag.NewDAGService(blockserv) -} - -func TestMetadata(t *testing.T) { - ctx := context.Background() - // Make some random node - ds := getDagserv(t) - data := make([]byte, 1000) - u.NewTimeSeededRand().Read(data) - r := bytes.NewReader(data) - nd, err := importer.BuildDagFromReader(ds, chunker.DefaultSplitter(r)) - if err != nil { - t.Fatal(err) - } - - c := nd.Cid() - - m := new(ft.Metadata) - m.MimeType = "THIS IS A TEST" - - // Such effort, many compromise - ipfsnode := &core.IpfsNode{DAG: ds} - - mdk, err := AddMetadataTo(ipfsnode, c.String(), m) - if err != nil { - t.Fatal(err) - } - - rec, err := Metadata(ipfsnode, mdk) - if err != nil { - t.Fatal(err) - } - if rec.MimeType != m.MimeType { - t.Fatalf("something went wrong in conversion: '%s' != '%s'", rec.MimeType, m.MimeType) - } - - cdk, err := cid.Decode(mdk) - if err != nil { - t.Fatal(err) - } - - retnode, err := ds.Get(ctx, cdk) - if err != nil { - t.Fatal(err) - } - - rtnpb, ok := retnode.(*merkledag.ProtoNode) - if !ok { - t.Fatal("expected protobuf node") - } - - ndr, err := uio.NewDagReader(ctx, rtnpb, ds) - if err != nil { - t.Fatal(err) - } - - out, err := ioutil.ReadAll(ndr) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(out, data) { - t.Fatal("read incorrect data") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/colors/orange b/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/colors/orange deleted file mode 100644 index f8c1e5ce..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/colors/orange +++ /dev/null @@ -1 +0,0 @@ -orange diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/corps/apple b/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/corps/apple deleted file mode 100644 index 4c479def..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/corps/apple +++ /dev/null @@ -1 +0,0 @@ -apple diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/apple b/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/apple deleted file mode 100644 index 4c479def..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/apple +++ /dev/null @@ -1 +0,0 @@ -apple diff --git a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/orange b/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/orange deleted file mode 100644 index f8c1e5ce..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/coreunix/test/data/fruits/orange +++ /dev/null @@ -1 +0,0 @@ -orange diff --git a/vendor/github.com/ipfs/go-ipfs/core/mock/mock.go b/vendor/github.com/ipfs/go-ipfs/core/mock/mock.go deleted file mode 100644 index 539d78b7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/mock/mock.go +++ /dev/null @@ -1,74 +0,0 @@ -package coremock - -import ( - "context" - - commands "github.com/ipfs/go-ipfs/commands" - core "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/repo" - - libp2p "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p" - mocknet "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - datastore "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - syncds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - host "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -// NewMockNode constructs an IpfsNode for use in tests. -func NewMockNode() (*core.IpfsNode, error) { - ctx := context.Background() - - // effectively offline, only peer in its network - return core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: MockHostOption(mocknet.New(ctx)), - }) -} - -func MockHostOption(mn mocknet.Mocknet) core.HostOption { - return func(ctx context.Context, id peer.ID, ps pstore.Peerstore, _ ...libp2p.Option) (host.Host, error) { - return mn.AddPeerWithPeerstore(id, ps) - } -} - -func MockCmdsCtx() (commands.Context, error) { - // Generate Identity - ident, err := testutil.RandIdentity() - if err != nil { - return commands.Context{}, err - } - p := ident.ID() - - conf := config.Config{ - Identity: config.Identity{ - PeerID: p.String(), - }, - } - - r := &repo.Mock{ - D: syncds.MutexWrap(datastore.NewMapDatastore()), - C: conf, - } - - node, err := core.NewNode(context.Background(), &core.BuildCfg{ - Repo: r, - }) - if err != nil { - return commands.Context{}, err - } - - return commands.Context{ - Online: true, - ConfigRoot: "/tmp/.mockipfsconfig", - LoadConfig: func(path string) (*config.Config, error) { - return &conf, nil - }, - ConstructNode: func() (*core.IpfsNode, error) { - return node, nil - }, - }, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/core/pathresolver.go b/vendor/github.com/ipfs/go-ipfs/core/pathresolver.go index c67bb73c..21c2a84b 100644 --- a/vendor/github.com/ipfs/go-ipfs/core/pathresolver.go +++ b/vendor/github.com/ipfs/go-ipfs/core/pathresolver.go @@ -7,10 +7,10 @@ import ( namesys "github.com/ipfs/go-ipfs/namesys" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - resolver "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path/resolver" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" + ipld "github.com/ipfs/go-ipld-format" + logging "github.com/ipfs/go-log" + path "github.com/ipfs/go-path" + resolver "github.com/ipfs/go-path/resolver" ) // ErrNoNamesys is an explicit error for when an IPFS node doesn't diff --git a/vendor/github.com/ipfs/go-ipfs/core/pathresolver_test.go b/vendor/github.com/ipfs/go-ipfs/core/pathresolver_test.go deleted file mode 100644 index 15ddf372..00000000 --- a/vendor/github.com/ipfs/go-ipfs/core/pathresolver_test.go +++ /dev/null @@ -1,31 +0,0 @@ -package core_test - -import ( - "testing" - - core "github.com/ipfs/go-ipfs/core" - coremock "github.com/ipfs/go-ipfs/core/mock" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" -) - -func TestResolveNoComponents(t *testing.T) { - n, err := coremock.NewMockNode() - if n == nil || err != nil { - t.Fatal("Should have constructed a mock node", err) - } - - _, err = core.Resolve(n.Context(), n.Namesys, n.Resolver, path.Path("/ipns/")) - if err != path.ErrNoComponents { - t.Fatal("Should error with no components (/ipns/).", err) - } - - _, err = core.Resolve(n.Context(), n.Namesys, n.Resolver, path.Path("/ipfs/")) - if err != path.ErrNoComponents { - t.Fatal("Should error with no components (/ipfs/).", err) - } - - _, err = core.Resolve(n.Context(), n.Namesys, n.Resolver, path.Path("/../..")) - if err != path.ErrBadPath { - t.Fatal("Should error with invalid path.", err) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/coverage/.gitignore b/vendor/github.com/ipfs/go-ipfs/coverage/.gitignore deleted file mode 100644 index bfe701a4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/coverage/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -unitcover -sharnesscover -ipfs - diff --git a/vendor/github.com/ipfs/go-ipfs/coverage/Rules.mk b/vendor/github.com/ipfs/go-ipfs/coverage/Rules.mk deleted file mode 100644 index 012af759..00000000 --- a/vendor/github.com/ipfs/go-ipfs/coverage/Rules.mk +++ /dev/null @@ -1,58 +0,0 @@ -include mk/header.mk - -$(d)/coverage_deps: $$(DEPS_GO) - rm -rf $(@D)/unitcover && mkdir $(@D)/unitcover - rm -rf $(@D)/sharnesscover && mkdir $(@D)/sharnesscover -ifneq ($(IPFS_SKIP_COVER_BINS),1) - go get -u github.com/Kubuxu/gocovmerge - go get -u golang.org/x/tools/cmd/cover -endif -.PHONY: $(d)/coverage_deps - -# unit tests coverage -UTESTS_$(d) := $(shell go list -f '{{if (len .TestGoFiles)}}{{.ImportPath}}{{end}}' $(go-flags-with-tags) ./...) -UTESTS_$(d) += $(shell go list -f '{{if (len .XTestGoFiles)}}{{.ImportPath}}{{end}}' $(go-flags-with-tags) ./... | grep -v go-ipfs/vendor | grep -v go-ipfs/Godeps) - -UCOVER_$(d) := $(addsuffix .coverprofile,$(addprefix $(d)/unitcover/, $(subst /,_,$(UTESTS_$(d))))) - -$(UCOVER_$(d)): $(d)/coverage_deps ALWAYS - $(eval TMP_PKG := $(subst _,/,$(basename $(@F)))) - $(eval TMP_DEPS := $(shell go list -f '{{range .Deps}}{{.}} {{end}}' $(go-flags-with-tags) $(TMP_PKG) | sed 's/ /\n/g' | grep ipfs/go-ipfs) $(TMP_PKG)) - $(eval TMP_DEPS_LIST := $(call join-with,$(comma),$(TMP_DEPS))) - go test $(go-flags-with-tags) $(GOTFLAGS) -v -covermode=atomic -json -coverpkg=$(TMP_DEPS_LIST) -coverprofile=$@ $(TMP_PKG) | tee -a test/unit/gotest.json - - -$(d)/unit_tests.coverprofile: $(UCOVER_$(d)) - gocovmerge $^ > $@ - -TGTS_$(d) := $(d)/unit_tests.coverprofile - -.PHONY: $(d)/unit_tests.coverprofile - -# sharness tests coverage -$(d)/ipfs: GOTAGS += testrunmain -$(d)/ipfs: $(d)/main - $(go-build) - -CLEAN += $(d)/ipfs - -ifneq ($(filter coverage%,$(MAKECMDGOALS)),) - # this is quite hacky but it is best way I could fiture out - DEPS_test/sharness += cmd/ipfs/ipfs-test-cover $(d)/coverage_deps $(d)/ipfs -endif - -export IPFS_COVER_DIR:= $(realpath $(d))/sharnesscover/ - -$(d)/sharness_tests.coverprofile: export TEST_NO_PLUGIN=1 -$(d)/sharness_tests.coverprofile: $(d)/ipfs cmd/ipfs/ipfs-test-cover $(d)/coverage_deps test_sharness_short - (cd $(@D)/sharnesscover && find . -type f | gocovmerge -list -) > $@ - - -PATH := $(realpath $(d)):$(PATH) - -TGTS_$(d) += $(d)/sharness_tests.coverprofile - -CLEAN += $(TGTS_$(d)) -COVERAGE += $(TGTS_$(d)) - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/coverage/main/main.go b/vendor/github.com/ipfs/go-ipfs/coverage/main/main.go deleted file mode 100644 index ba5d473e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/coverage/main/main.go +++ /dev/null @@ -1,72 +0,0 @@ -// +build testrunmain - -package main - -import ( - "fmt" - "io/ioutil" - "os" - "os/exec" - "os/signal" - "strconv" - "syscall" -) - -func main() { - coverDir := os.Getenv("IPFS_COVER_DIR") - if len(coverDir) == 0 { - fmt.Println("IPFS_COVER_DIR not defined") - os.Exit(1) - } - coverFile, err := ioutil.TempFile(coverDir, "coverage-") - if err != nil { - fmt.Println(err.Error()) - os.Exit(1) - } - - retFile, err := ioutil.TempFile("", "cover-ret-file") - if err != nil { - fmt.Println(err.Error()) - os.Exit(1) - } - - args := []string{"-test.run", "^TestRunMain$", "-test.coverprofile=" + coverFile.Name(), "--"} - args = append(args, os.Args[1:]...) - - p := exec.Command("ipfs-test-cover", args...) - p.Stdin = os.Stdin - p.Stdout = os.Stdout - p.Stderr = os.Stderr - p.Env = append(os.Environ(), "IPFS_COVER_RET_FILE="+retFile.Name()) - - p.SysProcAttr = &syscall.SysProcAttr{ - Pdeathsig: syscall.SIGTERM, - } - - sig := make(chan os.Signal, 1) - go func() { - for { - p.Process.Signal(<-sig) - } - }() - signal.Notify(sig, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) - - err = p.Run() - if err != nil { - fmt.Println(err.Error()) - os.Exit(1) - } - - b, err := ioutil.ReadAll(retFile) - if err != nil { - fmt.Println(err.Error()) - os.Exit(1) - } - b = b[:len(b)-1] - d, err := strconv.Atoi(string(b)) - if err != nil { - fmt.Println(err.Error()) - os.Exit(1) - } - os.Exit(d) -} diff --git a/vendor/github.com/ipfs/go-ipfs/dagutils/diff.go b/vendor/github.com/ipfs/go-ipfs/dagutils/diff.go index bd5d3a60..a43756ff 100644 --- a/vendor/github.com/ipfs/go-ipfs/dagutils/diff.go +++ b/vendor/github.com/ipfs/go-ipfs/dagutils/diff.go @@ -5,10 +5,10 @@ import ( "fmt" "path" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" + "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" + dag "github.com/ipfs/go-merkledag" + coreiface "github.com/ipfs/interface-go-ipfs-core" ) // These constants define the changes that can be applied to a DAG. @@ -139,8 +139,8 @@ func Diff(ctx context.Context, ds ipld.DAGService, a, b ipld.Node) ([]*Change, e out = append(out, subc) } } - cleanA.RemoveNodeLink(l.Name) - cleanB.RemoveNodeLink(l.Name) + _ = cleanA.RemoveNodeLink(l.Name) + _ = cleanB.RemoveNodeLink(l.Name) } } diff --git a/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum.go b/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum.go index 8ebe30f0..4ec74b2d 100644 --- a/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum.go +++ b/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum.go @@ -4,10 +4,10 @@ import ( "context" "fmt" - mdag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" + mdag "github.com/ipfs/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" ) // DiffEnumerate fetches every object in the graph pointed to by 'to' that is diff --git a/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum_test.go b/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum_test.go deleted file mode 100644 index e9f58e7b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/dagutils/diffenum_test.go +++ /dev/null @@ -1,249 +0,0 @@ -package dagutils - -import ( - "context" - "fmt" - "testing" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - mdtest "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag/test" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" -) - -func buildNode(name string, desc map[string]ndesc, out map[string]ipld.Node) ipld.Node { - this := desc[name] - nd := new(dag.ProtoNode) - nd.SetData([]byte(name)) - for k, v := range this { - child, ok := out[v] - if !ok { - child = buildNode(v, desc, out) - out[v] = child - } - - if err := nd.AddNodeLink(k, child); err != nil { - panic(err) - } - } - - return nd -} - -type ndesc map[string]string - -func mkGraph(desc map[string]ndesc) map[string]ipld.Node { - out := make(map[string]ipld.Node) - for name := range desc { - if _, ok := out[name]; ok { - continue - } - - out[name] = buildNode(name, desc, out) - } - return out -} - -var tg1 = map[string]ndesc{ - "a1": ndesc{ - "foo": "b", - }, - "b": ndesc{}, - "a2": ndesc{ - "foo": "b", - "bar": "c", - }, - "c": ndesc{}, -} - -var tg2 = map[string]ndesc{ - "a1": ndesc{ - "foo": "b", - }, - "b": ndesc{}, - "a2": ndesc{ - "foo": "b", - "bar": "c", - }, - "c": ndesc{"baz": "d"}, - "d": ndesc{}, -} - -var tg3 = map[string]ndesc{ - "a1": ndesc{ - "foo": "b", - "bar": "c", - }, - "b": ndesc{}, - "a2": ndesc{ - "foo": "b", - "bar": "d", - }, - "c": ndesc{}, - "d": ndesc{}, -} - -var tg4 = map[string]ndesc{ - "a1": ndesc{ - "key1": "b", - "key2": "c", - }, - "a2": ndesc{ - "key1": "b", - "key2": "d", - }, -} - -var tg5 = map[string]ndesc{ - "a1": ndesc{ - "key1": "a", - "key2": "b", - }, - "a2": ndesc{ - "key1": "c", - "key2": "d", - }, -} - -func TestNameMatching(t *testing.T) { - nds := mkGraph(tg4) - - diff := getLinkDiff(nds["a1"], nds["a2"]) - if len(diff) != 1 { - t.Fatal(fmt.Errorf("node diff didn't match by name")) - } -} - -func TestNameMatching2(t *testing.T) { - nds := mkGraph(tg5) - - diff := getLinkDiff(nds["a1"], nds["a2"]) - if len(diff) != 2 { - t.Fatal(fmt.Errorf("incorrect number of link diff elements")) - } - if !(diff[0].bef.Equals(nds["a1"].Links()[0].Cid) && diff[0].aft.Equals(nds["a2"].Links()[0].Cid)) { - t.Fatal(fmt.Errorf("node diff didn't match by name")) - } -} - -func TestDiffEnumBasic(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - nds := mkGraph(tg1) - - ds := mdtest.Mock() - lgds := &getLogger{ds: ds} - - for _, nd := range nds { - err := ds.Add(ctx, nd) - if err != nil { - t.Fatal(err) - } - } - - err := DiffEnumerate(ctx, lgds, nds["a1"].Cid(), nds["a2"].Cid()) - if err != nil { - t.Fatal(err) - } - - err = assertCidList(lgds.log, []cid.Cid{nds["a1"].Cid(), nds["a2"].Cid(), nds["c"].Cid()}) - if err != nil { - t.Fatal(err) - } -} - -type getLogger struct { - ds ipld.NodeGetter - log []cid.Cid -} - -func (gl *getLogger) Get(ctx context.Context, c cid.Cid) (ipld.Node, error) { - nd, err := gl.ds.Get(ctx, c) - if err != nil { - return nil, err - } - gl.log = append(gl.log, c) - return nd, nil -} - -func (gl *getLogger) GetMany(ctx context.Context, cids []cid.Cid) <-chan *ipld.NodeOption { - outCh := make(chan *ipld.NodeOption, len(cids)) - nds := gl.ds.GetMany(ctx, cids) - for no := range nds { - if no.Err == nil { - gl.log = append(gl.log, no.Node.Cid()) - } - select { - case outCh <- no: - default: - panic("too many responses") - } - } - return nds -} - -func assertCidList(a, b []cid.Cid) error { - if len(a) != len(b) { - return fmt.Errorf("got different number of cids than expected") - } - for i, c := range a { - if !c.Equals(b[i]) { - return fmt.Errorf("expected %s, got %s", c, b[i]) - } - } - return nil -} - -func TestDiffEnumFail(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - nds := mkGraph(tg2) - - ds := mdtest.Mock() - lgds := &getLogger{ds: ds} - - for _, s := range []string{"a1", "a2", "b", "c"} { - err := ds.Add(ctx, nds[s]) - if err != nil { - t.Fatal(err) - } - } - - err := DiffEnumerate(ctx, lgds, nds["a1"].Cid(), nds["a2"].Cid()) - if err != ipld.ErrNotFound { - t.Fatal("expected err not found") - } - - err = assertCidList(lgds.log, []cid.Cid{nds["a1"].Cid(), nds["a2"].Cid(), nds["c"].Cid()}) - if err != nil { - t.Fatal(err) - } - -} - -func TestDiffEnumRecurse(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - nds := mkGraph(tg3) - - ds := mdtest.Mock() - lgds := &getLogger{ds: ds} - - for _, s := range []string{"a1", "a2", "b", "c", "d"} { - err := ds.Add(ctx, nds[s]) - if err != nil { - t.Fatal(err) - } - } - - err := DiffEnumerate(ctx, lgds, nds["a1"].Cid(), nds["a2"].Cid()) - if err != nil { - t.Fatal(err) - } - - err = assertCidList(lgds.log, []cid.Cid{nds["a1"].Cid(), nds["a2"].Cid(), nds["c"].Cid(), nds["d"].Cid()}) - if err != nil { - t.Fatal(err) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/dagutils/utils.go b/vendor/github.com/ipfs/go-ipfs/dagutils/utils.go index ceba2a97..3a796a9c 100644 --- a/vendor/github.com/ipfs/go-ipfs/dagutils/utils.go +++ b/vendor/github.com/ipfs/go-ipfs/dagutils/utils.go @@ -4,15 +4,15 @@ import ( "context" "errors" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" + bserv "github.com/ipfs/go-blockservice" + dag "github.com/ipfs/go-merkledag" + path "github.com/ipfs/go-path" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - syncds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" + ds "github.com/ipfs/go-datastore" + syncds "github.com/ipfs/go-datastore/sync" + bstore "github.com/ipfs/go-ipfs-blockstore" + offline "github.com/ipfs/go-ipfs-exchange-offline" + ipld "github.com/ipfs/go-ipld-format" ) // Editor represents a ProtoNode tree editor and provides methods to @@ -183,7 +183,7 @@ func (e *Editor) rmLink(ctx context.Context, root *dag.ProtoNode, path []string) return nil, err } - e.tmp.Remove(ctx, root.Cid()) + _ = e.tmp.Remove(ctx, root.Cid()) _ = root.RemoveNodeLink(path[0]) err = root.AddNodeLink(path[0], nnode) diff --git a/vendor/github.com/ipfs/go-ipfs/dagutils/utils_test.go b/vendor/github.com/ipfs/go-ipfs/dagutils/utils_test.go deleted file mode 100644 index fac54f00..00000000 --- a/vendor/github.com/ipfs/go-ipfs/dagutils/utils_test.go +++ /dev/null @@ -1,114 +0,0 @@ -package dagutils - -import ( - "context" - "testing" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - mdtest "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag/test" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" -) - -func TestAddLink(t *testing.T) { - ctx, context := context.WithCancel(context.Background()) - defer context() - - ds := mdtest.Mock() - fishnode := dag.NodeWithData([]byte("fishcakes!")) - - err := ds.Add(ctx, fishnode) - if err != nil { - t.Fatal(err) - } - - nd := new(dag.ProtoNode) - nnode, err := addLink(ctx, ds, nd, "fish", fishnode) - if err != nil { - t.Fatal(err) - } - - fnprime, err := nnode.GetLinkedNode(ctx, ds, "fish") - if err != nil { - t.Fatal(err) - } - - fnpkey := fnprime.Cid() - if !fnpkey.Equals(fishnode.Cid()) { - t.Fatal("wrong child node found!") - } -} - -func assertNodeAtPath(t *testing.T, ds ipld.DAGService, root *dag.ProtoNode, pth string, exp cid.Cid) { - parts := path.SplitList(pth) - cur := root - for _, e := range parts { - nxt, err := cur.GetLinkedProtoNode(context.Background(), ds, e) - if err != nil { - t.Fatal(err) - } - - cur = nxt - } - - curc := cur.Cid() - if !curc.Equals(exp) { - t.Fatal("node not as expected at end of path") - } -} - -func TestInsertNode(t *testing.T) { - root := new(dag.ProtoNode) - e := NewDagEditor(root, nil) - - testInsert(t, e, "a", "anodefortesting", false, "") - testInsert(t, e, "a/b", "data", false, "") - testInsert(t, e, "a/b/c/d/e", "blah", false, "no link by that name") - testInsert(t, e, "a/b/c/d/e", "foo", true, "") - testInsert(t, e, "a/b/c/d/f", "baz", true, "") - testInsert(t, e, "a/b/c/d/f", "bar", true, "") - - testInsert(t, e, "", "bar", true, "cannot create link with no name") - testInsert(t, e, "////", "slashes", true, "cannot create link with no name") - - c := e.GetNode().Cid() - - if c.String() != "QmZ8yeT9uD6ouJPNAYt62XffYuXBT6b4mP4obRSE9cJrSt" { - t.Fatal("output was different than expected: ", c) - } -} - -func testInsert(t *testing.T, e *Editor, path, data string, create bool, experr string) { - child := dag.NodeWithData([]byte(data)) - err := e.tmp.Add(context.Background(), child) - if err != nil { - t.Fatal(err) - } - - var c func() *dag.ProtoNode - if create { - c = func() *dag.ProtoNode { - return &dag.ProtoNode{} - } - } - - err = e.InsertNodeAtPath(context.Background(), path, child, c) - if experr != "" { - var got string - if err != nil { - got = err.Error() - } - if got != experr { - t.Fatalf("expected '%s' but got '%s'", experr, got) - } - return - } - - if err != nil { - t.Fatal(err, path, data, create, experr) - } - - assertNodeAtPath(t, e.tmp, e.root, path, child.Cid()) -} diff --git a/vendor/github.com/ipfs/go-ipfs/docs/README.md b/vendor/github.com/ipfs/go-ipfs/docs/README.md deleted file mode 100644 index 4a75a230..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Documentation and Guides - -If you’re experiencing an issue with IPFS, **please follow [our issue guide](github-issue-guide.md) when filing an issue!** - -Otherwise, check out the following guides to using and developing IPFS: - - -## General Usage - -- [Transferring a File Over IPFS](file-transfer.md) -- [Configuration reference](config.md) - - [Datastore configuration](datastores.md) - - [Experimental features](experimental-features.md) -- [Installing command completion](command-completion.md) -- [Mounting IPFS with FUSE](fuse.md) -- [Installing plugins](plugins.md) - - -## API Support - -- [How to Implement an API Client](implement-api-bindings.md) -- [Connecting with Websockets](transports.md) — if you want `js-ipfs` nodes in web browsers to connect to your `go-ipfs` node, you will need to turn on websocket support in your `go-ipfs` node. - - -## Developing `go-ipfs` - -- Building on… - - [Windows](windows.md) - - [OpenBSD](openbsd.md) -- [Performance Debugging Guidelines](debug-guide.md) -- [Release Checklist](releases.md) - - -## Other - -- [Thanks to all our contributors â¤ï¸](AUTHORS) (We use the `generate-authors.sh` script to regenerate this list.) -- Our [Developer Certificate of Origin (DCO)](developer-certificate-of-origin) — when you sign your commits with `Signed-off-by: `, you are agreeing to this document. -- [How to file a GitHub Issue](github-issue-guide.md) diff --git a/vendor/github.com/ipfs/go-ipfs/docs/add-code-flow.md b/vendor/github.com/ipfs/go-ipfs/docs/add-code-flow.md deleted file mode 100644 index a13c7177..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/add-code-flow.md +++ /dev/null @@ -1,102 +0,0 @@ -# IPFS : The `Add` command demystified - -The goal of this document is to capture the code flow for adding a file (see the `coreapi` package) using the IPFS CLI, in the process exploring some datastructures and packages like `ipld.Node` (aka `dagnode`), `FSNode`, `MFS`, etc. - -## Concepts -- [Files](https://github.com/ipfs/docs/issues/133) - ---- - -**Try this yourself** -> -> ``` -> # Convert a file to the IPFS format. -> echo "Hello World" > new-file -> ipfs add new-file -> added QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u new-file -> 12 B / 12 B [=========================================================] 100.00% -> -> # Add a file to the MFS. -> NEW_FILE_HASH=$(ipfs add new-file -Q) -> ipfs files cp /ipfs/$NEW_FILE_HASH /new-file -> -> # Get information from the file in MFS. -> ipfs files stat /new-file -> # QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u -> # Size: 12 -> # CumulativeSize: 20 -> # ChildBlocks: 0 -> # Type: file -> -> # Retrieve the contents. -> ipfs files read /new-file -> # Hello World -> ``` - -## Code Flow - -**[`UnixfsAPI.Add()`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreapi/unixfs.go#L31)** - *Entrypoint into the `Unixfs` package* - -The `UnixfsAPI.Add()` acts on the input data or files, to build a _merkledag_ node (in essence it is the entire tree represented by the root node) and adds it to the _blockstore_. -Within the function, a new `Adder` is created with the configured `Blockstore` and __DAG service__`. - -- **[`adder.AddAllAndPin(files)`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L403)** - *Entrypoint to the `Add` logic* - encapsulates a lot of the underlying functionality that will be investigated in the following sections. - - Our focus will be on the simplest case, a single file, handled by `Adder.addFile(file files.File)`. - - - **[`adder.addFile(file files.File)`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L450)** - *Create the _DAG_ and add to `MFS`* - - The `addFile(file)` method takes the data and converts it into a __DAG__ tree and adds the root of the tree into the `MFS`. - - https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L508-L521 - - There are two main methods to focus on - - - 1. **[`adder.add(io.Reader)`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L115)** - *Create and return the **root** __DAG__ node* - - This method converts the input data (`io.Reader`) to a __DAG__ tree, by splitting the data into _chunks_ using the `Chunker` and organizing them in to a __DAG__ (with a *trickle* or *balanced* layout. See [balanced](https://github.com/ipfs/go-unixfs/blob/6b769632e7eb8fe8f302e3f96bf5569232e7a3ee/importer/balanced/builder.go) for more info). - - The method returns the **root** `ipld.Node` of the __DAG__. - - 2. **[`adder.addNode(ipld.Node, path)`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L366)** - *Add **root** __DAG__ node to the `MFS`* - - Now that we have the **root** node of the `DAG`, this needs to be added to the `MFS` file system. - Fetch (or create, if doesn't already exist) the `MFS` **root** using `mfsRoot()`. - - > NOTE: The `MFS` **root** is an ephemeral root, created and destroyed solely for the `add` functionality. - - Assuming the directory already exists in the MFS file system, (if it doesn't exist it will be created using `mfs.Mkdir()`), the **root** __DAG__ node is added to the `MFS` File system using the `mfs.PutNode()` function. - - - **[MFS] [`PutNode(mfs.Root, path, ipld.Node)`](https://github.com/ipfs/go-mfs/blob/v0.1.18/ops.go#L86)** - *Insert node at path into given `MFS`* - - The `path` param is used to determine the `MFS Directory`, which is first looked up in the `MFS` using `lookupDir()` function. This is followed by adding the **root** __DAG__ node (`ipld.Node`) in to this `Directory` using `directory.AddChild()` method. - - - **[MFS] Add Child To `UnixFS`** - - **[`directory.AddChild(filename, ipld.Node)`](https://github.com/ipfs/go-mfs/blob/v0.1.18/dir.go#L350)** - *Add **root** __DAG__ node under this directory* - - Within this method the node is added to the `Directory`'s __DAG service__ using the `dserv.Add()` method, followed by adding the **root** __DAG__ node with the given name, in the `directory.addUnixFSChild(directory.child{name, ipld.Node})` method. - - - **[MFS] [`directory.addUnixFSChild(child)`](https://github.com/ipfs/go-mfs/blob/v0.1.18/dir.go#L375)** - *Add child to inner UnixFS Directory* - - The node is then added as a child to the inner `UnixFS` directory using the `(BasicDirectory).AddChild()` method. - - > NOTE: This is not to be confused with the `directory.AddChild(filename, ipld.Node)`, as this operates on the `UnixFS` `BasicDirectory` object. - - - **[UnixFS] [`(BasicDirectory).AddChild(ctx, name, ipld.Node)`](https://github.com/ipfs/go-unixfs/blob/v1.1.16/io/directory.go#L137)** - *Add child to `BasicDirectory`* - - > IMPORTANT: It should be noted that the `BasicDirectory` object uses the `ProtoNode` type object which is an implementation of the `ipld.Node` interface, seen and used throughout this document. Ideally the `ipld.Node` should always be used, unless we need access to specific functions from `ProtoNode` (like `Copy()`) that are not available in the interface. - - This method first attempts to remove any old links (`ProtoNode.RemoveNodeLink(name)`) to the `ProtoNode` prior to adding a link to the newly added `ipld.Node`, using `ProtoNode.AddNodeLink(name, ipld.Node)`. - - - **[Merkledag] [`AddNodeLink()`](https://github.com/ipfs/go-merkledag/blob/v1.1.15/node.go#L99)** - - The `AddNodeLink()` method is where an `ipld.Link` is created with the `ipld.Node`'s `CID` and size in the `ipld.MakeLink(ipld.Node)` method, and is then appended to the `ProtoNode`'s links in the `ProtoNode.AddRawLink(name)` method. - - - **[`adder.Finalize()`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L200)** - *Fetch and return the __DAG__ **root** from the `MFS` and `UnixFS` directory* - - The `Finalize` method returns the `ipld.Node` from the `UnixFS` `Directory`. - - - **[`adder.PinRoot()`](https://github.com/ipfs/go-ipfs/blob/v0.4.18/core/coreunix/add.go#L171)** - *Pin all files under the `MFS` **root*** - - The whole process ends with `PinRoot` recursively pinning all the files under the `MFS` **root** \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-ipfs/docs/cli-http-api-core-diagram.png b/vendor/github.com/ipfs/go-ipfs/docs/cli-http-api-core-diagram.png deleted file mode 100644 index b44bf936cc64361c852604c7c5d4d0e0997ee753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55031 zcmc$`Wmp_t*Di=9XaWR+1oz+?+=9EiySuvt_W;2y1P>P6Ew~4F8h7_br#jF3yyrV- zW`52!b)`E^b@#4aYwxwzeJ|+<1v&9INFR`(prGDJN{A>yLBX*=LBSv*yavvw_Yk;1 zK@meqihNe_$UIu{w=vfAeRhbf8sROyo1J3t8TE?=l$Un(YZ~$)5~|M!s3{2rQW@%gaDNzANS(6 zEA0*X?>MPe4BrxXcxrDS!m?yo5=TtjSRDOY2`958$M|lSo#p93n+@Y!b7#Ec!X`P7 z{r->ej2(|G>Xmw?wze_${tru!TT}u~#t$?4Ppa+UQTvN|GN_<|?m{CYso#~?d9qL;gV&zl8vPte0^e;TX#FFI?`cvF3S z-!NmxNJGbyEfyBmT}#IU5C3_Dyp5ea?|Dyq&gHejQuyD4*9RCc`w_U?_x?|F{-X`; z*X6cE-?Y0fTWz6(^ubB`>xns!o+~et~C4zgu_z z6ja|m;qr<}g7)X@%EaOA)SMiuEV)Ffg11|(R(O9WA0Kp!TwW1?&;N2M@X~!bE-;=K z$3Jx2@!|_y)&4xiADj|)5yagYCh%xjSX88`skuI*uHVZh%aVqIN+wqH9~oHEzhW`T z0E0dGuX0h(`#9R;U+ybkHsW6H;yf<~skC*=`8=1FR{MH--~^t}@}d%oYD)))uj=}~Nswi0U4LV5;p$2_KbpY-p6}=H^Ip9qqZ|i3uL2d>t==Rw1A!%cE@ve$6p@DxqR=hvSa@%Wqu@+OoJJ# zB~>kL=f zdVyr`IjrrrTv@-+_MeTaC2MVxDJbx;Fn$*Ux{JX8en7US8O?A%QeHY* z{deF%U|DH-jaMrc7!U;Ay(4mwHfw>Tlc@ zmzJ2Kac-Ol9IA|8hgMxCS8~q}@=Q(Lur&N8iDB7rt2=jI?nIESw*4VK+Q+n^Lc|oB zFlq*jlhFZcvrTtpo}4B;s)ZjfS7rc#RMM7~{>SCus4SmCVq(T}&!Q4!2!v~8WO07%3?G)k2 zyG$iB*zic(T7NY%O@(f02A3Yf@ZL#$wP2GXMq4XL(Q9^Jnog0_fyOCPa3j21hX2Vf zu0FTyOHf_+pT&5K@rp(6tG&-AUMpZ~{C)}jG_8O-*TBiKG)l*cSBZ^SCDFn5d4>uM zAoBkhK=kVon$AB!kT_u626F-fX{~|oF*!%UCg6G!Gdic>m+7B?y7M69u4lapa&Bt= z;A;-h;||AV3^0DSt#bCT&9uKw$H!oFsf1zq1gY&3 z*t#aR{U&YbH0_SL0m`Y7_ZK}Vuw>s%Ds=kf`k7FI6o$-LT{dP1iqiM1FnePRsjp!M zRbsh#mhkuA6)8C9>XENpGd#K&|@^tF|O9;mBKG4ED z+-A(INvGG5UdcI8r0iJpmfP$%is;@eE1t53^;wdvF=i0zM1Bl%DyrM7CEn|4Wt}#! zYeHLPDuKpM4H`*(CnN@0B|EhlSA2#zD$a~z7QT!=^_u-Xxix8drNLetUV)JUY3FHO zhb)-QYx+bBc7J!xcHXh38d0SJio(YfuDKb})s*~Nwx}1SFZsH#_>@a>&g~!aYPCo( zO5Po#)Eu!LI$C~p_Dn2LiYQs7&5T)UR12TJLSqu)#_gjw3xCT^r#4$mC(D|>N2wIg&@=L)`@)y{y`?nqrhZB6O{-kXtB?3}Mu}0sz8W|!K!aej zEuz}sSe7sFQ}!qbSu#GSgzTgf<9(qkACHd?bBxr)Nv8r~lc1d#x3Rrx9JQ`NuxlAQ z?vPJ%>Jc)0T|Ffz0CpkDb;xWdEN)`3tLtR?Wl@9xhV7a16w@%YbAE~C{wwOWb2M@_G=B?l+-#XTf7G--yQe}H=RM^(o>;}-f ze0Uu?G5FrVr@FDAU5&MVLusu155|o>mzTZm#yfI+rVIhtt^u>O7}n)?wjhm_E|VK_ILkQ-(ullg9t0$+xjP(%U*mS$DpA zx84w)mS<-6mDfkz+q2oZ^Hx_H=_nK9KyQ7EUz%TxCsPuItC5r1E@*nIA(9>FB$TrK2R*Y4h)Wq1Nqg&>hNcLGW zH5pHs2%S<=8vM_f;|jgDA!T{KI_stBC{HXLQe5P9R5mP@H@){bFqFvJ+4+-?0%*8j z*2zPD!pfz&?0R;#e)2Nrl%IK3WHrV2cGg!Wk+~e|GuE#tRVLX3(~Pl`kM7>#Lpz@8 zL(}-hi$(k4TaGeBfeOJAFDLzWwK0FO!hqq0L@6yXytx1jt_CyBC5B6O%p|`Dt*3=o zyo$#|(FH-jOloHVTviJEyD!lrbP4;&w!=Fd_NE~2?H-h?D$Zmo?t4M?D$C98d;gbP z|I`=a zHD972mOwQ)Vb7s#+}@1|y$YeGlbb+4Hfc>`V^Pi>N42}IH*QpAoZ6)t@Z?^CEvuxT z;8~V!acoa3$|)Gk5_kFdmE^Dg4~t*-%$_@t8tBr{&{&h!zkiqW^0<4O%Z6QavX)NC zpJT6|L+Yr2e!6llP%Qo&Zh+xals;^D97*KHCyzryEA#Qv>HU5oSN#MDOCp_sCP7@7Np(L zAs-^ZGe55rJqJP%*!F%=&T2zFbBPnfq9m_1t9g;-=?7B__SS+J86Q;4p81cPU5hKb zmn)ybtNxc8i5cKDOioF`B_uSnv@DrXwQPbw9vNBLbL);9>(1x87-ii;1)V}2XT)2I zh%h(L_I(mJ?|<&%R08l&HN)ZNpwEz$ICsjW{SlP~b^ zL2&|WzT{tfjtpEiP|y4L6HFi!2t4KvK$K+9+ZNC$1a=a7nt0R6+t&Q|BCi2BqwsQ0 z^wRaPddm+$h1r9j_?$W8{iT)dLz{5|?VEmeqbIgxe^+PHO6%w{*lSpO_4maE%cHU$75x_x53M_wo^dj@*!?hrqFo$pUHKr>m*fyNxIaj$6ER z{4ewq4@6ndI`yHdY`>?0Aggiy2fE6(8?DmPT1K5Y$g-Kax+b0a?DDie9ou)DviujG zMPWUBv(@w3r{D)rm($IW=Hxz`t*tG9m3<#7U+x*J7wC|Ykxgne{VqBDo%M%Q|FbT& z*aJNLc2!L4aRh2~3 z{|n>_hAww8p=A3%d-~nf+*`l*ysJ6=LmVfi^RVe(D&4v zNZ@H-9{dD)c?xr4_>agWtSzk~js~L`+Xo;Ijt;QwKZGKV_hKM$ZX1A(kAR*W@7&~~ z`i4VB;|16jydL(yL<653APwz09e%z`@Z09uo}uPBzR3Wq^3CLO4s~z8%zE$}JN3J5 zX??sH_IX$WnHd@e`rn25&toy2fqj5C=Y;>WH!jYozmlMu`1xh~1N<#th35QXnDG)q zxFAD8oR0%%v}HOkK(ctB?=~Ti3;_t`f-t*vfUcbHyxT0`s8TKvn3#sIkB{7pllDrhsWPKG(H2^`Y?J~Du* zhvVZnsF?*4R-+%*^I`1^8P6A#dO|F;lTKsCi-8i=%0%Dq@LkG4}WYe}j#ENhB zw3a6-Q~CP^8n6UQCIz0r&B{a^9uj6Z^bMHtWAEjk5TDr7|M4WeDia7M$gB=poOl!myj4bC*11@Vs55ZKouyI;lDxa=b%> zOhTtYw8oeKq0Z{FG==(_XxNHFBQ5AJbOzX^2I{%;{L*6G?nmu6#oN0MGFm^FI zbHvf)h(}Jrg!!Zw2ABhAT#_&(_nIWE?n{s8MH1>8ys8c07-5Axc0gCR_9R_gotkSB z$0|P7bN${pz&9i^cr6ik&Gg~8lL@8SCNWnJ=jb5MCKSLf%zhOZ-AsFX+~Wf>A^a~{ z+xEvqpI%$BDUmK9k)b#@k9Jz{j5;_(OHn%YGvhrTSVZumbzkyU&Ln+J1kmu+&8c839#!=DgGC?T)(ZX_8dCN9I z2@V55G+ahH{av4AeMa|5D_YRMLOD3%V^8gRujub_${FK?jqiG|HAfDdU=DmuRvxeC%7boWFjH` z@oQBJtTom;qQT};}&cy=A z`=8hGWZh6~xcY#MPo%7G@uOuZyL+RswRPVB-w;0h9fHgYbC5aEHT5OAMR_TFz|a^+ zthChOhfbqIpbX{IffX<*d~R$;y`D>6S^EDBAD{RCa;g8XPjdz9;P-bqE~}|S?0bIi zG~>IbEWo@v6@NQs3!M=2_U1W0w#5-kFq*M+tXBz{efI?5Cz?XIZemO{+()Srj_|h6h1SXX-l|Ra(xlTJc{Yu7uFKlZ`Z$bm-%z*fKYJ-N>MWNUEURGP2PjBf&>nMnHJ5{A(vCL1?d{&m}+nHR#*E`JlINiuL*7KQV-TA52o!E zzmgdC)ONC!%h@)|vqBo}ae*y*HJa5&kxZi_w1qB7Uwx|(WNZcxYz7?**H3@f z7q|nr2!TmG{YN>i_@^XT>@Ug`uSrS5 z^Y?LEM+Et0dtm(a8BMbK@Q3+!E>Y=}hC&fFDJyUR``_TB$)uQ0M#w^vSz!Jv(P}hs zkoIb2OiF*@X}TW>t|0w z-~+WHu#4W(Uq_t)^2U${@W_^e#d7Nb4+E5H{UxUQv;NWhJ!B2-w-=vc9Rs<^yS42# z_-ssE9XZB-&G}HeP7>JSgnrf*=Rnqub=W6)H}BWt>iORLmC@2c!?|$4AQ+J$CvI}p z%%Jv-LK)wHkS?D_JAF}=V9-av^TwhA*A2TDrHY5>04JQ#RgI8YMKj+D^<)yjTfJ$a z?X<~;AeP=nWYb=MZ*XP(q@%${^>s6b1}jBHrMJiG2eR8%C=8-CJL-|;R^t}5J-|>_ zRH~-t+^~AE*If$fcD4DCDT0)C#q6x-S|MI+t5|>fyI=ef;C<1#$YJsey&Dtu$a&QJ z9J@*w6RqN4$a;kRHiVfnfrtrogII+%npncoL+9rPM`KhCEPjk3w`9k9Q1t1Q|5yAk z>lOH_*bYM`@6V%5PZ4Ylz2&DBB*$N9OHHB~o}rm>N^)wFY0_yk4zy2v-^}t# z=X-l5Srt@CYN$M5G4Y8Gu%QpI2Pqgs=-$1PGFDP1VL-OUp z{rdI3_BEU&88`=K!@1prjMR)=FyA&SY<|C2xERle>pcR)V(ix~_Xw5pCk{HsQ6{v} zItTeR<%$oh&%~SoxJH&gQ%)+}UUM*5TSfdK&}UBV3J)Ks`r#LUFIvqL)F-u7UJ;hb1OV5$6#%#f9Bwqmc&71#vS5)2ikRaj0ajXN zuV1>(*;p7+$+a`-dV7=U)bGe73(E4;h3|hQL&T#qdsqf~{zl=%;ib>bnI>bl^g>E{ zfW0FBG|k9;!l2h0zU%oR9xz~kk~6mC2ybG%YCiCT>OIrEn>4$14;scf=9UhrfVJ!Y zdN1nz!*62n$0wG23etFlP($8t^dDjf_v%FQCVb2N$(>R>zW^Tu4ysHszz@+eF!0w_ zzv=d{Fg?xJptBmN`zNXaJrVx@=xhF`0{~Wp7ZbisPPB9!ba40{-LtK>FK*yGWzeM2 z4T4p&P z`#9T4XDo~{Vh)pec<^1p-nI88BdSIDr?R=HUBccO=XDkfh(`KB5g;JmI<$=13oRAK~4p;9=ja7-d=Dm8H(xuA42 zNkEV_o~Q7<>2CW)pfq#JZ;Nc&?5w=1A~E*tzU*NP`;!d7oL82%+h8E$;^dO=57HSJ zt$JRMQ1I;Wb3CGHsR6cR>$zCJ&~G6KLTBVqrih3KkoIkomz}b>(GCvDYy!3GfG{l( zemAPC4tL$>Epj$pPL~x|C-b!}7pdl#Fkd2nyT&=J^MN<)SYA;pbK_!7v-t=6VDGz2 zWxsd2)IV?IEA?=QxjiBlCTXmbM1AshB^Ez*nu3QoBb?a>3xJQcq2$Oax^>a-0v9rP zGon1y`%y=0;rL)bSZ68w`#^shW z^Fc4&)yUUlWMi1b0!ts!Fe?(|wi=n65NL_fq=5!k#o{+;Fa}88#Gw(xG7evbD8=;w zV@>q6-_=rV{WNPFTcS#1=pCZwTDpi=r<;Aur_7I|=%{IEW0S1&l65;q$+ml06ar|l z22C52vz9~#c@Xr}`t~4Y5cUtSHMtba6o{NxxmkscM;PUl@%W{O{6d`ULb6RPocD4V zznQSSFHG0YEn;*ig_`O?&LzKF=p;V8J(D$gVbc)~l5zrGSoDzM?$`ptJHsaitj81)%YH%MRnvfr);5J)D z`b)u?{jzxmhO1>!0@MtXc&G&HGy0(Pr`0v6d5K&0c5Ig=<;ZL~-O#qJ%ISIoZTiGZ zl(GZ$X4%RYm z*`~i<2i_r|P~q)2Vp1iRF$wj&d_9qYMjmE!9Acl4HfVBhc_YmE39efb=@WLbvH81? z_l%^s)m0u@^}nX8~T;WT)Ai) z>pKKX(FB{mP9>mTmMRJZOT9*Ruw%^8R(ukJ^V`Ln8w1Ob?jweaF^fTa;o=<_y8MdL z$!|5rr8E#_8F?$pxm2eAs{{LNLy-4J7WfXl6v=+A!lTR1d^%C+0=sU(yhqb9B%-(`*mJQ+HqK^Gr7; z*PZKK?rszT&X4jO(mQc@`@T#*EO!l>uq-|MYg}>g;e-`rp&qzWTr?N!Q+5JC_?-7N z`&1bZ%ti{R8zHM8O-j$=`l?Yn4+u>*=hT37r?81@yypCH)h?j$lms*&DzcTE9)&l} zGA9}0bL*Key=u`-U7m>a=@iZtFRy#OnWNLLAnBMcP3V0NqX-S3phZ!JQKDEfer7k? z9k&CpKM%h{WGqts_+bFB$zj3Tl^o1$LaV zx;hT0dql*f>uV$QjeV{{4H6!8zWFFDbWezNgdDXB3xov%7+v{t&8$NOf9OiBt?3Gh zCz5_3amvL@2O$ns@dBm=NB&Pd0}Mmmx*~gyil)9sPBVg?Rifr#U9fy{x&`wD_qy1srd}HPYV4^6;Y|* zb>UfJAXPsKV~G7Ag+RYQSHG}?;-8gK8bh6A#ju1!|LN>P)t5$HUUlN>F^9eI;irb9 z-P1Axx5iR-aX`(8r&q+M96h6u#4DzunNri|2;%dvs6PCUWj1nL&>xqO;p*mpgyWO^ zyBHz_-uO!KP*8TP7KWNwlyBV%nOX9fy?zG+nT&K~yDS|V=qKO1hUEIpuxDr(JVdkb zX|%@`5ZzgQwgc;md^L7xBG-Z4W@^uS3DNpwa#E*82%!OvNu)Z`lvLtnd=$giMlx4| zwcVXei&dlOUYg%&6Lw!i(Pr|kgig$MtqCzkEl6x~Lg_>%rr_cs*z<^Ta=q$&!S(o& zX7sK>8l@a%YQpT#gm3n98q#0@Wpeny1jNul4y`Uw|BWdEozkng{7r*&ei@7bGY969 zZCkHGTFeAL{QlnEOIyMjbvrDjMrT=AeTx8O?1LqYQMANW?zHA0>-%3mNJhYTKLkS| zJ9B`f`jZ5-nQ>1@OQ(=?h#aULj!?!YdA1iVK2P!=dK@o27D-nfK3j!`4*j1v;afg^ zVxjz*B+gub+OIUkGm%ykK^z<8I8sb%G&HdH^r00Tl{4zG(P@wxVPbMy&L(*{vU@v@F>S5eCS+&8pF=(7fO9t5NJ5faqaaMTL@PddNB4@xpe?bg|s? zqp3m2vJUu0_x9s>$fBHKG|gZITwof2{wr(R+xs?xC4aO8ZF`HV0)|cbZwPfO^>6k@ zW{Nyxw7!|9I%wSY#5t4OH4+5Q0$IAM2F%@hSu%WX?mne_77Pdgkzyi2V+AUFkH`82 zB->%21)de41Ps8iqqR_YtQ=lK(2vO>pi?Te*u<>;z=@04JW41aW4n39%F5UC+aPE-_9uQXVACt3l zGa9-fzv*MVHl?h&A;@AtkB2`m^1m;FRIv~z4*r>)Eez-*Id2;GeLKbGxgLV;u@x_V zS0nIHqo$77_%auTxV3A86vDN$v-9C)Nqwz8?7NN68i*dIYN`LS+1WboP$f;8u2aLJ z$N?5=82lMWdSWhxe1HOJ``wDjA25lj8)Tt?QQ!9UmGD0JuM&{1to0Uzr zRDnpoSN530TX=^|(#_rRgyI|K2YBYy4yQDmsztg+DYr8gzmAX^-ogDnPoql;ngSH4 z^+A?3rB>dd1&c2OS9FHb*3L(a*Tb=}kZn!K9rn1#q*}y`(~wR;scjuC?V3f?o#%OQ zUo9$fqv-E1&~X>lF%W~t;h^ij1V5d@VPD_uMKuIe@-)0+vRiKK0^ahN%2@4j9_O1o zIDo!=@j8b_&O@BsM@f?jb>Z$ld+&xn?*Nj~z&%>j8UInl}5y74%`n;I*(R~j8* z19o%#vw>uo|H54L_R0Oj19$_w!$Vwf4XCLi2{pvG(7m~DZk{_Vcq^kmEBV?^l;Nja z^w<;5-6o82lnxQXI(wK4kdnl3C}q#e3L1@8F7t-v9A>8#{81CrBZiCY`7;dx`toFZ zrH$}yEG}tUHhEfhkL$rVWY1;{M3yQ9*t-D3#h7*5uo--8Wb7~Pqt0-o)N6F6?odaD zIJE2V$+8Buc*ZW)h^qJvinci=@i?eq_on@UVi0dUP^C_X1)!Ke_5cxD1LAoPO0yX9 zyj7l0as2lmA*FE}y-|<7`j4W>FYld-y z?j_(tW|O}M;o=zh`nFYh!lpK2Ds95`@074%qm+N!*hkE2G+7<5q)uqk|W2? z=$`JkucevSca72@?XWerIiTdh71iE1rl9xTdFR^#ZS=yRufw~8G2Jry#(XGNXqgP_ zo`i>^sIyVhiAO5I;Wj|32y!dT&fp7ENY2gHk9gFCrLkgoZ*Q+2b?V}*?L5YQt0w1( zj>B$w4ZNEJLa}(fDiYX6*1r=fErrJ~pNq0gk9qT5Z|f1sB!L-b^p!AdE>4LbP8Qu! z^XvYslM&o-(?G+7CL`9=btU>82|7Xjfw=dPT|?x(KZ7iV7UU)gMr}N0j%Hb8jTX=u zP_uVglzSdyY6V#ahCDNV!kRe?NwPUN6xD=ZP*VS z_N!Y{InOSorEtqHhrK36+e{-oSPwQM(eu6@T@~IpoTRy0Bhbn*y&Me)s4|^N+Vbd4 z-ky|q?jJDBl7MtaXrN*31TKLIq(ERkjPaY1Wv>_d}noG%3Otv9t#I zKbE5Rd(fd~#x``G=u+=f4+x5CRyvuup^8VYZPhekSw-B;p|TrHW4{jg0ij2=wu-m+ zz?#i&iX3~i?w@*d9$%k2;XnI{Z+`&nW&MkOC8IxhnD^nRrsYI{=Gbw1r8G+)$i8NK z?xcn3#d)_?TzNI&{hQ`L9b5ZyxYoFK+4lUNOSiwPH@~gz_)qQS;By9%f7tn{_xXk> z?|94ZlRa6^Kk;cUvy+=#mA7$02u4RCdW`PI8#QGuM>p%poO$VO2`CF9EW>&@-$#; zqTk3ev)01^9QHv=9|czUTbmapN!^+jh~JgNY)~@|BtG}Z{A!9GRYW~HV#7bx280S& zQBb;xlZTY8R}~MowfA#P?3`2-bBwp(SdJu_sU8jWpl2 zI4b!!i2Oi_-0+9~eAb9^Ch!rC0@9_{-*z5wqTN`U zj-VKZQ~J5w>m`2H_I!I`*==qfcu4q`Y<8|MwS1s`Os${gV*X7!S5s|nRzt>7`-S0i zHhIA$?~{7yeobkBH2>`9jf6O`QbfM00W_2Qee$5|zNA@|`2%j;+asn=8g82rM-4$f zy1qbN?hT>$5i?`XxIK?Mf6guB4|_wyb%`AL8<3V|-{Gscomn2{Q{7wMN|yImduivh z8Q_YP!nWK9(MmSpL{^(>r`I6z7mk|d6IC-WzEms1nv+qu^Lz8T4`4NOUPz)~HT$x> zGP$)^iPhJ4G~=Y}Fs;HPTm9UtE90Z>bj8MX0Ee>XEzJ}k5UbWpyZPQ)9dW;@Z?ruA=Qgm^~e~+M)SJ&5$#3#Z!zrsH(uoN@fNyGi=SkKx^ zTgQTY^=|R#HjPlU;5L|PKvLGcSYc}?@+7RxvKk9YYq8x} z?wl2j4H9QcUru^VT^casvs5GS`s!bOF&v(XT|U^k|Lkrz{?*s5!S^-zXHZrvD_?f| zC&ni?Q=S;WnXazNd28c|(T!FYev86)e47{=s0%yAh8S#gRWK!(OGglJmpNHY1J#8?j+2B2(o|VVLJSJlq<2v5m(mt@_?bC2?)Zlbn;v9;* zXY5EW@q=fmfRD(P<*!({vv#ok3?GIUm{7#T#p8OxCNHUls95hXtyRxHuaqch1Zs4W zViE;TKu3PUUjC4nWsY0+nV27@dr*uUDDEStjYc~c$X}A~{LLbpSuK0@PUH4&mO1kS zq%<)ddAf=f@y6w_hIF2_?Lo;DovU5vFGEJEpKotFD zFZ@-DRn#=;N8iEq?MRoEs}-xz^gNm6MaTEGUe3&@(n!}ZWq;>u@i7;*V%LpuGy{z1 zE$?ilda6O@N$j95ED@;_W~#<#iFr}0SmX-fIt?gNjb}8nPQi+B@`UVwiI1U% ze^yOd*{8dI8(=pb#1ITKE0ujW?WmET4DKO<;Oz4DBouicSx z2MZ137p3qKP6JLTP)w`y_XRux+~b`v^kcv_D%%uHM&9E8jo=ax+#OWEkwHU#z&rJC zhbnm_eR|q4Th(Ij0J9aVTn3>|r^=X7v*lo3`JQCG2ITr0lWm%7I;lnku8A3A@N)^Nvt z`cN>+#7RJ4YEmyWZysMVBE;HOP8RuzU7oUf_%UX!e(KmR%*TwlPXtwj2L&aMUkPOKw;)Gsjf-Y)HKx_TNfXb@)0%o1GQYz z;EkMEfAZPn`myNr4wGC?kb!{mKKZ%=nMSo@dJV6n_bn5~C54e%jLIC>0S3hobz&o= z$lAs$8RTP>hU(uc)tf;ErE<)f6@f6TY7Fd_<-Fu3-No( z{sP;%hlhMAGC}g(%ICI)LyqRy>6hqsZK=!rOgrTdRb;KZ;=N@?3rB*$VAxa2MC$r^d(F5 z3JHckZXggSW_Zycc8ctCmwZKChT?Nk`q%;|1POcIn^Q6WTQ~)u>yjNm@pfm(RR~M) zYr!?wZ?C)+4*x50{~pleDCq3@wj*a8U~}aavG_278j;fs#(M5=RZ{PK;3s*ycb7i2 zFH584#h)6&Ysk?6g^n8F5p#aw0;P4<9PmgLZ_W|pus;(AKj7@j-pbhHNkXggh?%<) zA-M-uiB_Nnvx~Fe(^>bUB2;V|gc{{vGEaIs9H=6J*&;-+;|IKqQEn_a`s%lTdO0rl zS+a|lra?~%qtUBKf(c$DR%4zEw^cES*ZMx7y{tCZaH;5wdo1cRww}QN<*6Tl|Gxm$ zh6Y;jmj&_oo?2wWZ_DRc8_p)giMD&O^|z)=l;K%Y&OeU>0eq*)YapwggF0ND9<_hm zW6Cfor(NHgwowCfRY0}>%E}e{AHJ(+%>1Vg2_U>YGR}bxPDo-@RmYNhqi8pu#-RDW zRd{WY_iQAa`%2Dc##6$NNS|wfV%bK`l^{U%(7k)cSGR@cL~tOtX(_ja4O*IC@wu2j)HASu z$!2lTSOot9-Un6&sI4Vy-IulBfJATXfzBE5zPvvqtmS!JH>aiB2JfWtyaNa`TZ@zw zUdq~6qO_#@qtowH{<4;`*LQ2s2z;h%hWA72?Lykxc#tAz&y%KIfI|~KuEG1PBkQjL z44;j$?dly+WGqu!>Pc4|M_KNm@WcY)hk^S+`L&VUmZYTO!$5z9B7T1p*;CVQ_9pPK z{u~p_aXqm`OkmO>V-3V^S{WGJMu^pCChh;`2jC$A>Ubd2)zJLpwe1Sy4K*LSp~b z}SW+>6nCLTAT zD2Y?=pHxcp93?L$y-eOf1oc=8hMo_! z`k+I8Nu4P@y)aU;kHq!eJJr#jHI>qgLDT>QePH8O7Qj1!Mf?5t`He4r4p-$lIannc zu zP8kmT`NeAL49*DOcIFRjskPbUfs4T$+mRbjtQl%JcHNegESt9bk%Z;3y-9`?y}uf5Q8|9;YcIBlC4!TSS=Thg!DJP}omygnXpK z;az$q64U|)KG`7j&Qr(aeNF_DU^JMuE_fm!dYA=Iuy z-*^_G$H+rHO(-X00u*4mC$c2IR*c~qPr@YIZSboy>*<)ADhzg-@=Gl~8;-2GWDbv{ zzBfkhH$<^7J8krPC#?BXk~&^gZ$@Ep0t|ch50~Xz^gOs3-$1i-%$RkXWq|2RO}@Ze z6knpniXk)|a*mMb-0Yj$u;cyYZfoT>_dSTlP16vN(nWSb*-Ump0VbR=vRv4i#6L4V zeFoUj8i4ke>V=^hdFES26e}D=`_K8!7{g~MydBG2=qs+oWjc?EeP`j8Tk@SdJ#a62 z3>S|pC2q1zi1HnbO+aMcLchqOjO?6I^u-4dCUKF6)~daoF$CfjXRqYLhf zCSl@}dovTBHyyI08)jMT(M|pMGq8dR$6_&VZk_bU&i8Y23~HjEnmBc&@dN7)#al|3 z6;hB(2$kU`hPNb#Gx9y~vtWE)z$3|u`+6}w$2RmIRU9FY(0~3JJ4Ck0~dyZBWk{6Q9rKy+bINmzC?1KY|1RTsRc0S zzDxS~Ik|XXUtV{#c|XvP9n9A|q(|00=vckE868)I%m4aVmSN*{#uzeVs~}|}wL5bU zcgd_^5}@^w>|Q^Dl3``Pc_mu#h;bh=zF{qaK7ROM=397elAc=mhu5^rB<9tsh7H0< zgoI&CFA7@GExv8otzwajoNsfG^V3@!cKAH1jRH!lKLZNfu>^kQdZU11vR9|z9kg6-pHwDK^#Kdh7t zyE`p&HA}}nd%{FC?##g-G(jIo$cg$Qiuc;O01*L$mfeB&?qgi%*kQY~wsX_#)?>m*)v(F>+-RSt3U$kSjx zO+F>dYiMYg=5e>TuN+AMUyfk|v#v--B3u7Bp%HCSd*)C6!LYqZ6M1)tAzRcsxtdYt zO5+>)2gk*Rd);g_JYndv@@c$Z^Ei<|%9>O5>omkEmgpYbKRrw=Ee*$$iO-gZ7_n-c za8+yi#SNJ@_1m-J?^-Q{88C4kzFaHO_vbCD4mqwCUmjS|xkXnz-=&H0*45^O_Vx8m zE>~4Ce~)qDAG)exAZVBj;K=HC?}hy(q>pE4?{)BbVOoceMV<)vkDJjqi@BLN^7`4` zVXg90pdaq_*XU?jEBX%5Or~>NTbo95-4>{1!zm%2BzWE-$%Bl7CMuH*xKFj-;J!pl zr4kj(>Pg`;U47G-OiA;!0kc7~8WXCEQY0gl(iDBaH2vp`lx>Dkjn1tt@?_KVMeE9> zmXFqQ_XCg>2A0`|dogp)dTFIObS1Y6-1kwl9nxk7LCsLhp1WDCyL_jHyJK0V3^R*d zKvNb6$cGiut!F+u=b9x!&SJfK+yEL|aR-gM&gnM%u+8N2PKGq3)$FWz9hNt)*sTKH zb$Ys8MUS`sFB}4QU8r|iATU8YK#?8J);?p3YR+)eM!>NIqv6SA*GCl$aFGV18Pz!* zwgvu%`lvlwGtMu~lD3uYeFD8kB>+ZbY`-HV0uP7}=~UN2a)k`K%`Uxe+QXxk1h^)R-@{ zxHFQGkxkFeZn(90K7)602?(|!t#a-wuIiRKDOz?9H^-39ONiuMxJSzyR)BOCtoxShuj0uoEJ5Ocf4cn8k~5)u$<2S*Cq%Gqq++R8V<&G}?4RWhgBFE23;DsFsL{1){PDEZ}43DF4 z#1t_5FU3(*RijI^Mw;Hyg5_)ChbL7TGeuH5CBy}{R*f%V{Jw+X^=+=M@|Wy|S=zvZ zOh-YYlkYw!lA4-gMKj@!cjw~C=7qPRUdI3+W-<;ahir-|+KfY`@)>`&gda`) zK`G~~gzNz&5bE3{Pm^w~v<7q*q5vA;Vi6 zAXR*IiFgX+ds2A-RY%`-k_+mS_5B?}W(KW(DAxzPhf;f%=3H|fXf>_6j58grwx#4a zv`39+uw-OAdZs;XD@RqhPUm;-zQ?ucCl2xy*xW;(XW)P|Y zJA)V^TKPU&auhO!VvMyVB_R-qmMa`UYV<~A3xv!1i}sG|U3pL+@coeEJrW=wOar~1 zq9TgVZ&^U6*8AGp+9o@BdHKrNMZ*9;Yk!b>0lY%ZS|iSc14UBx%oz%A{ zAYcA^#&OpIEG$t-NJyj5-&8{E z0>SEX%)0bvYuo}*+ULziaF2qZ`TXxV(f8lsh}R#oLD>4wH=$6__t<0`JuhexzL*h* z8j*EAP);6#wqwh`j}LZW2*A3B%n@XkJdRgK8R|awfrTcIcL$splHxqLmE5!qCqPE1 z?S8zS6PiAva;={TDoyt}9ei=K!_z(LcfB?YOlGuow(sQ!Lj$*fXhj)|bjNz7*L5Ao z{I#7|%hcU0;|Enn>{JCLncQvb{B%QGlgPBPbF$Og+?{nidl zQisQ{;?~xTVNxGEgYh<>YlnQlD;?mwAdCj`Au5__?d|;EFUojM0U8A}-Y{au?t7@W zzIl6Cx4V<$xC2QB0WS{$JdnM=YVG!$9Didc<^rq*;Pn7~B>>rz1ijybHb3+Rs24un zJZXIU&jx0Iw)bDi$4(3Xy>A#-L1PE&7$;})4JxAnuo>#*N~fS-+;{Zs#bSyA&AZD5 zExv$90U&kqvp9<~-Mrp(7z1qLGPUPuxNw|6sN!#HF}5cC+RhRVg~WokbqcI{!j>n) z(MmVw;Qq^O-D}td?l&~S#a=UYC~$j!cJ>)Luw-kzaLP!tTDKGp>DrO{=eJSlP?OLk z1W+GdnJ(C-T2O!vm=O6_R%3$jXTP;+$Y^m0r7T!waCyq!+R?dEwFAM%5~a(w6o%x1?)SI)1MR={t&{tYmvxs?@pUg8~K zi|HV*=DF_2^B1@!DMv@ZjmZcYb$s~hI7!%PT4vDUk>>v$II-aEOvg4bC4@vo5cm%X zVn8Mq7${&IY-Zh8!TN%v5iYK-&YJ7|;=mqCXXl#Rzo_o%F&Xv*Mx{{-2_S<$UceLn znak)J$mqT|zdBwUfBpS5ey+jQ0DKh8Jy2bG(Yo&cy1BU-66D%}VCW$tM@B^c9gC2O z)niBCfztUOL&adsO-xL_?$IqM!7}b^D_3(#s=iq>-qNiuNw!aa&^vtiWa4Lm>S>Qt zyI~w@>C~=pMYgx0@U^d|X31il0ZOH4vJy6O7vS6DrLB9|atGG!`Z*~wq8ml`VRg&#O!$ZlsMYQ0V@h3^P}Ib@8}Rx{IiUS_SPuFhfm69DyIVDT;ivjxWU1M`Xr z*kLQJj^$-#;gGLrzp>QE@Neuf$b zA@sw?YaKV=ue%^Y4mo-GalCQntB2YzHdAfizrST1*F8JYaONBRX92!{|8CA=YvCqk zHL!L1;|u3%KFnwlMYQH0eac{;gZfvTx=_&mO?l4zBPO7G$yy~;F> z!)nL>7nX|JjMvxX9tHXxpPV-OK8wc2xvbc?8q97`;nFvOiPb_gtfE8h@H}~YO^zf2 zBGgx|CLmalM`DW}|Mk7o#~|D22>fqQ6fILIo#9nVRh5?j=~Uk92;d4JC5`niKZfrf z)DU`Nbza)%m~PFWH;O~Ca9o(g23LdyA4Sa9vwt~Pjn{y7aNWFx&p+(tjr+@s)(2TF zGYjQXG3;i^?wR2+IePO0fS#y${eQz?cNF~GdxC^{3{>=j9XUs{a6FcC?)Mn9nO__h zZ~t%(PuVh?FZt$;@gv3zCS_n>Xc<%Dcb>e(D--5RA=lj_^E3Oe^-)L%LePmhKfiC(nL@X2;#o*x?`7R2 z7XGF*MnaQA8rJ1;0PjpLU04*hHDx^1s3Y~DV6bKX37*#aeNxK9+oP)ZI)5_1c#63t zPTFQ6-K%gmSip5{kv^rJkIg^&;Uup`VPwqcYrq}L>z8+Dz1WF{oU`kfS)bZ*+-^G= zzq?RXS(&wSz9~#dQ+8Opb$mtBkx5?H)YZoK*XI47}3??W``okD!1PKk0uqdqlS?hP#DH&!DZu z6@_^4G>g0W(k*`CbDquMcBbD3E1RsOl$G1G-Ehb6!9ke#__D0b5fHGCTF`zhHsF9m zUXCRqCvwVcH`!5s@Gtz`R8^QXdxUTk^#mjqBQz1#=An;!ZXwAxS%C$cwV51`lkZKm zm}{2JdJ$_@Mx>PK9qT05zY(0Y8mmV%PX+%i znuq=1C?_tAu`^fpOKXCVeWcy@kg}?Q2h>N&YZ*yRW4j^L7f+LO0?U@_m(ra-nEo$h z%C}&_lhnVVQr^JB$ywtx{~nH4@Q*Hq2K{)fKT|C6OA)Im#ioe4!|&lA+e zxi;zC8|(b5P`M{zU$*VriL28JB=-ICgnN1+)HUMH*Lns!GDe>=%GjA$A(y3q)ZteH zN-6;mm{nm_WfPL*u}MH;m&oB}V*10widS%LW?pm8ZhT^9{bNB0fs?b(HiU~= zcH`=TPY#7uiP3+)Ek4U#kRCdUjD6Bpxx#{DWJmwHpM2BSxCleWvR2O3+lZ0v!{;mw zV!~~L6s)w`RX<7lFxl$7Bnec(6wyWZ%_OYLyE`j^=VkBSbfBe-eDD0!_evute11Ve z`jkmCuj?wC59$8b%!Xu6JL`YtCT;wMUdB?**uq03-9}{I36ak;m~TFJ2Tk?2N!F#v z8)l5NS{!PA`qi>h)lkfkKJ3uy3j9|Zz@ljg2*e`M7gts~j%bgo`p5U8=$L$-3P#Ms zyP>gd%zecEIWddNOIoy-ep`hiNLSocNr% zd=r&8B>j0RX&`qzsZHsw5e|GU16eaJ2L-2A;)Xc$m2z5LeF^%?GBe^MTih(iN0+r&bik?#s!uS`KoO6Pl za!ysJ(3f}2W4Pm(`q|shOEAZRS^)|hNa(%{iv+z$l<=V zatRwPU;RY5ArcZ}CN%gbtK`UjN!~a%@lE)=klnd}H{IKg7ah!p6@{A8GwVWJ%UM`y z60nSInNiJe&`B)w0Y>I?(wQMm`Ytp+K3**g83@$@&PhLrBIt{G_T)Ud)-O#8bbbq} z)BcFsj6tfkYB0)1qM>i$na-u0*j=9uz38>%M zcSIlem&I?(@rTKU;$9^Upz`+06n^=&wHnH``%0(RWjdqztG_)d;9yZ)T3IE_V0|&>-loSjE!=%$Od5eq=D1Jl_{?ji@cGM z3jcN%Ps}FwSMZJZ=ywX`hZ-Ct&|VKIwlxgHa+oJrZ5> z7$ddn-Lk^_C)2mz6dvUM;ojh8pHl{*QAp^3d@=o2F;fS2-R3-qOD}*GzdG|lcYNz5 zbPb9D1ym#Zmh#Tx`yJbB7C+c(rBc#vIVP=U?eVQvyzZEqPt&&6|2OAqq_=)c{Z);+ zKx^TwLnrR%x9GT*Y}eY>))(Uq>G!WS^_AEG{tk^4_@c@MYV-g5U1SvnxSjv~P6Pc3 z^hd&9lX)K!RKq$Q_dvf6WRFhzyHFMe4u0`>q_`i=e8BYc^ zAR3x*<5c=oF}qL=s=(qeYFb*-1_mU}(P9A#ES-)A*tn8KZwPug-S4Bt>}w*t=pk%C zaRxb;?xB+Xco3D~6`VuZa;0DGhYymc7bPrPTFMDtDgxLFYP@)~uWsD&{#^=B1dhO@ zf3jBLYcZYBW;@$uEkFfWRE+0N0hGXCV+0rl!Nn8#a7hS*)QWyEk_1M-4vlHNhx&`TG&cH%W~3WeTeJ))Sg)<}V7tTW*O{($1AV zUs~-vBV^luZLcJyv8sC=WbbX!jh;R^dy^k^K^LJ!R#x=2HP$Hn2?5SW98z@C3<->X z2ANxR8SYwRpeNw`=B=-!ud3QOyGjvQ z8Z+`i5ya_V5rQ*CKE0Gi@p>JE8zf@(wawb>*#Jjaj~?SsQ*uJ;pRW+61s+cK&*vvV zP^^lJSiYj{%l8V)mXYhn7H0&00;1EheMQALV&>a(SzQ7u+({AU@M&QY&S%-EaNd#T z7U`OZ3eV~hkQm#1X-J1^=;)$x{)+gL1V{Wg{U1OU^-U#cYMz)srF48-L{qfc+6#^? zzQtxQYeDm!ZXU)_cDO;~mYZjia(-af!+=X*5=Hh1F1=>iRN%Cr<`Y*O*=?AS!P`?z ziM?ySr)hH{p{rlo6$Rth1=D_QTwu!*i2R@Aao>YkwD42zYY_qUqcn19O10`AuP%nm z#mOuzyw@B8K3${=yf_5SsMt?;O43CNa!9U$Ui=)2-9E#!#YY zz^}Lb?mVNXoT3>@^5Ps%wxTENUg8J}NNtTW*M75I2&%(V3l9RR8maI|(8sYhvt%6m z@}-lgi64nT+k9llCkfR*t>swwut(uo4N@P<|5HCM*qVU4PZKCDwdwI9#ik380 z##ebc+rSh1g8BU&7r z^M3nWHf%vn`tB!oi{rWyD?Wf!TIApf0Zqb^LF1b=s{(pPN1Bu+hf+kIMaEO7O&6O9 zAyY2G7+dzDQ|;uya)R=Xn4&k4@7Y0Y+}~q0kT8GTgM%_Zi9f3mk6zlly58~(Z-{+x zMDFEiMS(?mO6?3*tYj9ER<0lJj^1~w=K^Tb(;J?zop}XAr8@{-3y@&p{ZZ6#F-pLpkrF3Vi|I9p-(KFGGerbD0(#2H0#D2LBr5g~f{o}K1DUdNv`UScJ< z4Gvb1#Qoc2kUGH%Ol}{h6ai%4wze%C_-doqRLY_1gFQJx; zI8)5$`g@A?+GKXIzQ0lVL?1f-u}C(Kz`zQ4z1UGUF#d{&~yN z@EP^uh~ZLQeSHpjPo|*jf1X$tJn_dHhLlPfFR6$E+X2qqeRc7{`GD~FUM0c<8`V@@ zq-SkvfAQjK_XC5fp683?1ZKsk8ot)#Tk*tFu|zaez+sP~Yw|9i|6{Ktw!w_5IVhEF zX_l*yF^)uBR{KrX8YEqbl4@S7!aiOzZ6w(aU)&z=Z`25)VdEl5y(2+!?Bt*;2ffTj zNtfUy{z9D>3-&JrfyV3v#>KwNb1^3>K4atUbL}_z7j3FyrG>*%D$ZWI1g}@8@qF^+ zXZVnWc7tySwP@kvXj8P)CBHX}SOS3H&@wKi=ATa*cn)Z6^+o(U9~1~dAI|I9$^GRi zP4`&7U5+-dP*C-ssw~Rp-D^c9iKCg${rRW&p)^Tl$U=ah*;fuqYU-e*=09GWi=>wX zV$M!r5(_SuFsa_pr6dO}#4A2){6F{0Uu&?oUh%jI)Ceb?I>Uy+&B`ocsIxMP+4WtAl#nmRhNc%yYvmJ#}ze-mQxApwcnTU>JeuY~+j)=pw9B_v6%3r^`xEXd z@!pFb1^=y?^wyG9L@d3S`4{G2j*7QMa0Cal?1yC{9!hf&(XG}OSr1)nXy*rf!=kr7 z2f^a;epl*0-HerLkC1xeoi{(u`TY4s?(5!OKSjE{!CwVbKULV&U`&tJ_4Is0W~-lS za`1jdWxA9zcJSn}znJ}rnxfq1%+(i!^kURE`jkU@X{Eu_W?h#+>F(p?{DQHwu$_`H zAmcP~en~^+ON}>0z6hgFB02(ecr?IK02NgrgWY(6OrI{-SVuNalzYGT$&UG^|3tWle*nJ7OK@PwzbTR;}OQ072GS~*XZi>X*AdoUP)&h(~W1&k7>v)_?8v|rZ@*ozL>`04_CH~)Nr@~OftbRqeo1Wm zIL}1of5GhnJr3s98(iGMr~q=IwRt^e(Vi^{)m#K5B$Pk!1LeAJ4@;-%cm<0HNJ?_3 zD1+uuydRy2=f6DpBv?8PH*hD2K&cfkN6Re?;$^nM9j6VK>Vo-8|E@wPgXgqeA1 z5T*)0T`HT9|I^FzDZDq+@`$xqy~z);^1r{WIqwKDX<4d*IhnAXL#< zZ@<$8v41O$(=*avWnI)_L-v-5;%5DCIeW5{ldJ6MeJ6Iz+&E<$$D^X7O4{&{0C)3Q zk?3;xoL3G>V8~C|yifH{r&Wj|R!s4QkZtIPtoc#6#zRJGWZ(!ux+D8ZpBYyYP|~>d zsZScmw@uvKngF#9teCGEzzd0IarGDw3E%uxn>olKJtIlMri(o*tNLjIYojMsCOmfl z&mnGx<~y}dv#w-_LL0b&tSducP?6L>BN%N;;wi7eY^_TfTA@4l+_hzPR+VvlSq(?! zik*>raO;%402NiS1rwd;@5U($6gj+W3$E9WL$OVF%B}NmWfRIw!x5I*XX$s)MBCDwE*}|a5 z;9f?l42`cne6Pk|sevkpjA8iFG!NSiUc*Jg7rhAq2gJlb$RF59SR>uIRL8nm6-C77 z?Tp@|v|I!s(Gcc4>@D$#3?Xpflo$ul5@;f7=s&FG3ayTkuXz#AU3q;-E~6HUr2jt` z%SLKCvCZVFgUEZrLs4FW=y!KAMO-J$$92)9d@yLnpCn-#Oeo($# z;zlNjAei^5Z}NTc|Ccp<$5OK-&*0}&>{LhFLIWjlRVht_|01AoA{c$?l3qcc9mUUu z09$&{B4;d>)$JMIYn*h=Pdpqrbj=3e>;excEw zG-e{b>>)^S?ex&lfc-Z~UUSdYq4co$tde`h4GUg`>q$$i%I*{FxNzsi;}CJtGQH4> zZ)L&wVHpQ_hdF!ggkq7=G|-fql-T_`>K>!Q3<9~U|6G#l;zmrbJC+s~(7LsA;o>jA<%Yi>9&&==^N zGHaJb1JAU!Q1A?)SPOO4L9s5L`E)66bg#I}#q=haLH$T5;k+sYpLOB+{Gpg$iIC8C z)WgmTG^8v*p18j`hXHJle8BVx?lsDirvcZkR&aE5tjwQTSz$Qm*|@hUg?ZC9w}>m5 z^ra28A$>ig(&m4hA3%8hK%eIQ2%7gyvgiA6 zjv@NSpk7lf{=ZG3w?+Z(^s^Uu1`xt@oXz+?go3+U!LCC{Sd z8ozc2e9$rcf7x8f;6$R+C?D~3|6itm+$sX#Ay>$`I8xH5LF_)05JWiG7WU?2 zG|twu!AL^7`@i=}5~fgfHIspRkrSF4*JQdQ2fW|n=6j*{39&WSoe4F*o(sk=yUQ2s zxBJvcb102qdnGYGr!WUizJEt3on5d8jtLMYITj6!J#rwp|LV z3YR$rg7BsFxGpMtM49n=1@Xw;Z;@uo9oAgx{oyw7lLB!D4Mx&O2Kv><`A;ziEX`Fi zE9v~)Sl!OBULyDZ+`%nh*zc*e{`Sj*c#>31yk;gPyB@>c05byAjKsN+t6KEQ#nte` zu!?=DBsEcBjV#n+XQHP|C*MiG#ERK)ulQF~{lyzTl{86nx{WcXvXTIcFO}Oh_0V+q zHaui9Gs^#}#cfk4g(?rNn9Q!IEr9==5?csG`oXJHh>%aoPH9ZqVW^*JekQ6Vp+~hm zlw}}Y3wrz}o2k?_wIDQEW8C61SxHaV6e3Cri6H*1^_%^AtS0pN6ML!o+&?9 z-``NPH-HyxVmq*XTkiLw*jvL@Qp?Ukk2aCwRjil>V&xtx#lVi%r}5Fr9KY=7(5OSc ziy$`L&UgYcwR-rlpHBeae%@1_ex|VwH@3oYACv)bT%u4+MSR4WqSfT@P-b2*uWcE_ zNlRyCW|HSjLM1Uh)moY7U}GwlWs{LRWc{083W*!pLOB%JzE_IP(va@40S$1QlLl-du-! zl9_ojJ<$NOxu05giY|sU^b7GWFN{hU)B3D<*M1@mS)o_6hSgi{WG|zRPsteDv2<}g zlfrCws!%9r_26Th6pONZ_V5BOF}fD8v+$G*Q&k&dASS&-`Eq;`#@#H8z9=ZGG#%CC zc{iqU?2{836$W$r?f$$N=EbfnFRHC$Eve6O>x&`1grTjqqM2KDN4pA}Ra7<}D&{e! z|F+GnXeS6AZZT$nP(M}0r_$`s&Q2Akib64_q^1#uHLvkMjCiOzd8Vx@jInZYm#-3i zKY*}wgz%0bd`0z>smni}JD8cc+6u|8Px%@s5&X@$3t{$C>GqTUj11xGnx{jICLDL0 znf)7aCX$_a?sXPA&mqkxz)##}j{Y`q+;!*R@oRa|@b9HzMhBfqp2j)+Kn>1FBCZrg zRj`H|PpeJ*y(10qeoUU&p_ye>faPmHjtO%vSHt&%$1i(Q;aYqJZWR{3A7LeSue+aU z@N7z7iy~~+5`cQzC;xqQCn9PSPHRFB1V_hAepns? zvMF-ATi}pNG!gK8K!9ZJ$2w9yDF_o5xLKA=f?{7)MJpQcZizN8X&=vQRN23)j9)m~ zh#)Hiv_c4Lii(PIc_D3Q0uWCYz5zcKF}a=|GU4G$mm@#EqC9`1c5$Cfdw4f2>K(4`CKI6 z2*vbEaBmRbzD~o6GchDd~3FS0TD5Q z;usvJ;KhtCo}xye+1~l6mn%jVKPx(JuZ2Dk^&k&TWJHYMLw(Sry z>wgNg&IU&*+SuAY2@})O7?Nt=yA6ZMP%861)kp z=|Hm$!!OpsY_?03=uPng!Hh`hUXrh~{l|##_Q%qHpIiqA@$$SXm{$^5?{)t(n4#XFJ(e)b<%t((orl1C@)d-G2JvKPHENCA_iWML5q(Gc%f%sM8 zvMM(=mbi@1^6MAd4q65NJPTieQPslJJ=U!yXK*UjMnYFYkX!bJSNcyUo|zFR_DL^( zMShZ@qF`7zOxjV4VFEI;-PPZ0x63&wgK?74DTNQ5B4qVnj<(YqyCzosbb3IC#5?Fd zpk2Q0CxW6{{~fd^WOSgIJgwM?uGQAvUd^b<1tS@3fy4>zQJ{Qha7-Dccnm>9U>_IY z^eYO27%Iw6Yq>2_Ynp%Mo0MkJ_0APlC*KY zxOgcRrZaD@RW?b-no{HNw8~3~iwV3^Iyp)48Ry`Xh#yA0Y=@oO)sAg1?eRucmO(y~ zUXsnwZsMAvDnF3i^*f9O{O214GL3ZLTT))TAK*fLDQz(nEur%gFI97GC{zloXp*pJ zK67N~2uv2G&KmbkIDgXY;Y9C23M`U-5*M^+ZD^#(*M}_4n;pA}$e(j78@9^3@WG$} zORMhNbrOiEC+o7|H9>4W?g1FQ>0ne+QpksPw20rdKD%f_wzgyJA~Z#_(hIp<4h&Ir zC(h+-{Dn|&K~$FXGKGQjNxiiPXHIlhv`a4coDv@13wvU!pO#|fO-^hrr{Gf;DpGwKK2RvigRV-D^*K1C;oLY<+n36e zMyCv_94?0*S9FeEcd2SP$ZD=Vu)A^p8V4r~G#rTIdzXyMC) zx*okM8DnacL1L(_tYtXM6^Z#r_27E8L92I>jJmaqnt_KTp%`nn?#PK@GpAhKsXRf( z=2E&R5?ST5>WBp3J2O4-mK=eE5|iZB`~{T+bwzG;?YD~wM8j(D=4^{$i}@K&bj8NB z@2+mtBfIB6&)+e2<4oWdb+N_g%PP6!^DCWAsPe8U^=W(iK`A!%T>o2LB+e-`lI^`2 zg4_-GFLx%}%wGxV-%CvRTqnY}M-WU~fCX&nD=?YJBkhxt@TJOu$IX|?4-M0+=h(dB zlH6c+0a3c@2G&Feo?x4lyFo3YfbqHuKr`Nz??p7<<(pJg*cii&4ED!5p%kp}Ef`mj zl&_3a6biTeNvz_quPxUHH$p$Spy{TlmW2J=$GL;pN{Q#uE1BY2gV`8hZ-SSs3nb)k ziM<*Aabs~7%PDW$@Pz_0tw0@_j@J*KO6_#6;c+wZ=ePmJ%+|)7(}9w5q=vOR#XUSW zC53VkalXHt?29%8*j5}#=PgVGzRnSBtN-Y#9boAPwKBlOCXT{p(UAtY-3plv9S*kC zN#Ex>kQ962cfyOKk)qTbkQOE%kH4up0^}SNw)yO)L47YL6lbolABPP2?AdnXb^Gpr zDZa1{(fxCu_Ov1#s9m!p#mRPW_hP*O7gvsxN3Bm6uD46*bjZe}#RnNmsw= zkow>IG_`I`(#$e1k>m8)JW-?~m)V(H=7hB-mjM;n(V4L(j&ur6?u=RwIMb}Gj~>F(#Dm{Xt@)q9fi> zlW`%F?I8d9I7HQr9fAHsS$e|E$@Gtw4jHRLTS7q+bmC|oS(-cND^6AQ?IB|PO^v_K z{0CK$<{59}^~pRu;iqt9rKIK%CYdx4O<=5agX7EiixFgK?ka`fAp|hOd!ssn%ZE8?_`BhY2mz21Us9mv*;=Q42B2Q=O z%+8tmetBC$a`?@!Am+|JpB$xIF(D1|FNeLPiba}-Xlm2@Rxk`d6sV%KG$tPm5>WdU zximP_m_6KR>g!WaA}m_#kQuG|e>CD5F6x}ZX1AOz37boVgUp6?bTCz40bnd*)ir7B zd%C~FZt>+k=2usgPc|4^S3>T)CCI$adQo8}l=^0+E;PuzK2sZtWC4EdrJdkxMbeC`(s%(b=tCt{;xiOK1W4lf`X$)p-Pln-eja ziJM(2z-xi{8L#t1zms}sTe6h=K~}ln1+kxNwe6LNmd&;}`J~ouc8l3tUi0bj$ykfpVj^1TBS{Aii*?Z$wh2b6Yom)nl` z|H}o4L3FH0Pzry7sjyzEysgdO8QLzW;uD;>F4?>&&onVLs9%xGR}iyw;A&E@ecqP2 zwA7ZVRGy(y7qOv@%9KO@(}X{7A@rH7z{EMl>%5psIt>jC71jET>~K=zJkj*4Q{fIj z62Bzb&fi%XcC=hNZa`A=m9yj?w!VaZ9TU^kqH|DF*mEiOE& z5fk*lM0!kQyc*WmfRs0vYym- zq7hqlz&txy zs}{y9)xT>ZP&9n|a3pgDSSpd@L6bzeuLUJKdGT30S7VphaRxrQX-ue##_m5d+H;++ zKD?F1oYtu&{33Q-pL*v5JQ`r zkZHoskwnyBR3d{HAO2|8P&%wSK9`ZHlg^}Yc0lzFuRu4S`sgY4Va#SuHVij=BCLzV zXAhX8shNrQbz+f-g137m`hJ%S7Z<5Q5$)yW5ujZs8_+<_LcD1Pc3KaJ3>F&xP)BI9 z>zU@hpGMQ>O^dJd<{T;`c@+b}*XB|#Y}79rKkvP#4B_Q}Xq2kZ)~7(C>`ML=Uu$k9 zoV;$SOW7yt3IF|(YTt|@i-u<*3AZqXcS&ij2tP<&_V%?cpNmgos>2Y`!B9}hab$t! zkp)Fd>WV{0oa^q?>CJRN{=?lh{KtU5{y@B9y5x`_YI5iP6d`8!Hs?m_`pj%d#~!{h z&L-#G>1GBSB5Q21FG;;`bTRqe$JC>g8q=DDOR-C)(wa6GHrSaD!w^W52Nre^xXzQ z?)G`zGb$4_M(5(MZ8ewvN!J&b93)38zM|c6co-3U-WPO$3d+K`(&kEAQ&ZE_)MRHg zJtodqpmp}>vaf&O$1v>Rs=dbxdUtB9KiY8ZN&xw-aAU?>AuaSD`o4Kh zG2OEPER!^DQ@IN5cExuF+>&qv4CHN@V*32aF*Utt>8L=J=aR zq2uI63p@&2zmXl)3-wXIIbv=omdN9SIY^F0{5gkqe7doV@9lPo44mJkhzz01 zFqdIv#Or&d6O9fw-3EK{My(Oiq|J*g$_xg7TG?>wcFY$Ek7oK|^oc@B3O)kL&ns-zM=*6W>K?J?Y{jV;<@MU> zDaSdNW;b(}njFl?#0?!Xvffc3xw_a>1zq+OqRtdwBUe}SzjL4alqy`cq2l4;?MX&W zfU*bujSoZ0Xh2JRv(VS4iu_c&3p-Bl6t8sT7CAvPS(E$dVfAEajXZUVpTpa2fmd4= ztU^Ll2A*q!pbb(>h68)s@9pT_c{FxYIjsTWYBzj|(qub!NeLp-%7gQA-+`_OnUCMFJ>HnBy z4UQw`(cz&QRNfR5@Us;JZ^kAvyv>a(q7z~tM+3BEAzViV6I!uICS#6(Ai949+(Rii zO|eMpCCL&*onn%HVqq@164xYYd`z;UdOFtP!;hOq#C%UoQP}J`*7u?Z?RO5@p>pro zn1#PMUQ7xF0N|~k!!$_1QJB=DC`pQf+LIceh$T6$85ZvxK6!qK!e`s6*kB&q9D<;t zkdm(S6nBr!wzieAQWLN8ukJ|ga#A)_#T2>G!8}-0&xD?&R~AO)Qxjh7ES@4ov3Pn# zU}XgDA2tk=1^9;eP)fY|ck$>|sIc*-80W;gyp~!1;sQl{xTv-&*-L3~{~R8p{bkL! zNK;Q9Y=JZjD#6gw&iFAIdP8vxu_ET%!(Nh+@-WlzTOUfDcb_C6_SBM9#W`VoErSNS+= zfUP$`;ml~jxHefdd_pQa?uO-)AZSrB$Sa`kJ4r~UON zJC9$<%J=V6H|M)hS1@bNB!pot|HzMO{+QJ*k_rOC;_8vO<86Bm>BlgvjA-N>^IK26 zn26-4*X|@AZ}IuxDu=8ng%zvJ;!}UXEBD?r@<=+aDJ?Balkl*3S7wW^tU3d)If!a? zdp;1}`+DAMUj?J5)AJVlGOYF!HqSww738xLK<-IEc81F)6UHkY$tt}Hs6n8 z)PI#Rs;lHi&GOpg7sz^1Jd(!E@b{`VJ-XxSQ@h{O(l*!L z5U8Wc27jxtRS_l=j^QN}kMTppU4Oqud);hjK$m7Pyg>!HI^qwOzh^A(fZPG74gRn-yd!k<>L-Fh z2@``fW5Af4UDgHUfyw|p$RUZ|8+!A&H z3Yu`gv!;E+^_hpkjm=u6LhwJ#p9g;_DJe+#0TL8=E-&=WV{eAS|2$_M`Zyq(Ax_T# z9;rn5_9fI#%>jN0^m!b;=W|f+F3NHoOk7-&y#%I!h7fWOQ|oHq`LysfK$d~H02QPT z0Rw4CK;k#x$;`aGG9iHyn9o}zC!pGyjsTTWxL~q#a^BtUm$#jC-8~n|lGFhJ`$|&@ zJ0RMp53r(<`u-NhAOWYZ;t#fe+KPXzf*W>qlZm^e3pAG@;|J} zZvn75 zmC-80a|KxBm@7>fM8D^&>sLc3iu4;|EIdQ4y$r| z*M(735J3z;Qb0r{rAq`90RbuL?rxY!C?yEe-Q6W1t)zfRcefy&QX(Oo=f$=6+530) zALm^AT<7|}b*<%^!kq6M?|8>}#uN8*->T=-7!eAgCOsDGCVWM_$Z06ORl~cZUt~VL zcIkWf$yzrd2}vUeIlg5G#(fW4^=eqF9A>V73+gLuWw2rIlCi!_|CyX-2GX8ZJ=zOW znNYS7L_QyUVcVUukqM|vR9m-`fLR1~Lga2%etrNl&xBs}^&S|A{u9~=IIG~bE&_$n zJTRoP=-9@doVPAv;b;>sXE2D{bntviiOz&D#}rgDS|2E{>Q0W0nGkwuqwMU6p!u8w z_O~t)czlBgB*9(C;j_mpDQ<3>m+;86MzehEWc;~E&~5g>+m9Hl zZe;2cW+24-Gw|xFM1(lWZC+uU4km2fuS*{o7>1oq?rKJ%r?Ea(=xgX<4mwvR?6MVY zojNL0TF|_d#K<4X5$iWzU{5&ki&)o7+aKF5vUGSNP9y727zQEKrI=1;$WQ7KBZH7; z;T;wOnT-BmS;*p`&fK5*K4m}WN9rO#sRng93*F%Y^>1)E1(cU_aKDQC`n1_NKWN5e z#njwfz3*rM#jT%PBu-2d6O{VEOm1AK+%KrPW`C+3sWu~IRxj?|JcT{haUb9}_=D7p zno-+Io0C&lfA z=|{=!Y>%tv`vr+8D&AsXV0bqW^89WCFhYz{|I4j5vk$8^LP@m)2Cf?2{UUI3;bV`r z%IZMqVEj$s4IuO?T0-u$^?G!BQ}_DV(;?bhH^1*L_akdYopAvejEWkp>hk0LM*I6^ zm1<+vI&=^M3Zx1R*%=*;IPP1rnAVqI-F~wveSWeNo0T!0%Z`%J`PU2LQZ&$bV25)=8_nQ|`9hz4rMnAq%mfSvo_g zN+_59q-A2+#Mre{0mltZnij2f9Z<_y!u2_O_v z&~@U&wsxd#{=V?iJV!t{QL;KKp|X;`x1S1|%)2sIY?d28s~eYVDX>(BDsXc0*-yFH zklkyMzj$b=a^B!@W4^0gD#Wm-;4l@#c}$X4oO@MulSWuL^n#7V2;ChcfqN@ynJEe1 zQtsyST_J1ir!##sp)C!3q7dJ~7V`e;ZG{cS;03w&^bqEUkB6;58BHvujrArE0{h z$BedD#Xpc8R{t#LJ8>tVL$Ny}-LO(Ryg;a&-$QXLwDOZQN4clnyAcP-dMK(*m1|K@ z@kcHCgkVbMT~uUhvxZc9{Y&)#j4OkT_X!>=J}@i)yhJP-#u%$9*!Y%{<${OZvm3;C z`l)*V4YwS)lGObJ1Gj<1%Ia)Ir-=j=14)*nE%U>Qq;|(D&udZMW*hSn z%TIUsHAWe@pz=7y`b;lsCFjzTKU41DSzO9hc$g*Ws5tatP^vJ?=UZ(+UDwU0X6kVO z2ckwN`d+UPogv#a>pmNFT^-{CpI6{;|Mzm)lm~Kb!mTDv*0y9FjD0m_r30m*EnW28 zD4ZWOiE?uCMdxErc#E`uj`=Qh)GqaRgZr-9DK_T*!UEk}Pi+pU#YUGHA=Kq2N~QgJ zFU`>C!y{44k&B$eP9>3r}*``*&DWU*7gEJIQ;=UQSJU<6AJhn%Wa_@Y3EE z{lZ)I-KGZFy#vCQu0inx2gQ#)1`i_1Y2HR=JPZ-SutC>;tIn(gjrvE|7uv2#KJ(ym zzHZ}Imlu^NsC_q_vTgLApqfg*!ia(@3ReLw`RUaUxA?i#hKmlV2)_|hE#I9SdS$V{ z-+6eg{Gf_U7=xYN?x0e-=#$n*2ki8Mu!|kJzC=BS#3BsOSWsUCZ3ey&k~A`Xd!9sm zXHDJ6<|QQ~zfIa}$FM7RC^>FDj?)Tu0_?j|{Dmr9bnnX-bF&Jx$8uInf?wQUF4(MJ zZ_k=A@xjEH#Bn$ZOApJ}i=B{@%J2oluJA-^CjUc9BT;6r{*(4s)_3z}b}w>c57>KW zm*?u~1Plz6^}nW-aLSGgyu_(agCoa^V(T%y94dKL#b1cSIb1}0}C$UnDp%rRa{X77tms_0z#Du}U_;m>hh#{)vO^0G4gw~kH2CdJ3wO0~*FB>I2G z&b*4ijZ$qw<1_;7<|0bn4krJQ6iIX@Nq_KF(s6KaQ*j#*>bCy4ll$%$Ks z1+$p@BUI3(3YmHA0yx-ImVA1#g?D;d)=sisUm3P(lH4C6mbS#s*opAZ3=?+J>mU@j zmr^GoE*X>BciJAdmmN;DZ@3O* zOYRrjzPrTqly&`}f#%y&#H~xUlQH+i@d(aL$z2HTe&UyRy%96nm?w9%ddgPevJAl- zq{qu+z%Lo`9q_XpIY&xOy`aH-C2-?zjvFgEaf|+Qy}_qF$pYQ=GcLk{A1k(Bsi0GN zsz-9uUXWwuh>k6x*OW1!5Nlg&y3Dn(VoGUekCv6|ffe)YyctIe^}^&vC@~wpE1Qt? zV2j=jl>B7i^unDPmA;iZx08OVZ1spw>(|wUF~xiR0wfQHfS)?jR6L*sO<f(NKL&x8L@~ z+!f-4vKO6{UhZj*LlZZ>WO#0Y$q8uG;tEWlRZdJYH8WxKDJr$@V3sXRJMd)Y$xB@R z%;_Y)AQ*RIoEWRCYgT`9i-=o)fFK`t?^{l9-`=97tHB9-Ba?ss{i}KSx~Oba zU|1SB!lJA<_tmJq~rO5fqN@0C#nfH z)2>nCr)|!U81MHl+mVDAa86rGdg7Zr*YS*RFOY=@L$1RQ$6ftNP4-TJMS^XBeAb4E ziVLClsF{W~P6okvq3OZtB$zY5ko_oekze^rmU-NZV`F0ws`c*YEZeB+1^(qvD7rCN ze>c#Vb~fNrf&LWK&A96Z^f7KKkiSsQL%W2g5+6%|(ONW*;SCwH@O4rm?x(&_>8~tt zzsz}KkeTR{%9Uo@alZx?lYPrj(csrMH3wdKI?cEen16$c&;4S((;YixNyDsXoN;WXk`uB3Nvu->SoH{nGJ;ok8FmJhmvk>*D=E-bK&Mlk& z6ZeC~RxaZGCF{dGb7-!L4IUW!zR6l zmn|%G@jp5TekthxTJ4j~xpS)|TE0itfzEWv%F7s~+*7Ph+G@h({NyV7-XvviK5dK= z6}#Q~ZlYM&?Ul^5dI?2Z{(3wzoL%L&>0yEcNoEbV+R=zZd_CCos_#l=8QbYwjpvCP z9r)xp@x*fB$#X}%=u>_jI-Yf?`NFSa)}oJ4EGU?7P~x>Z{!IAaB4lS&?+uid)_v}O z!ve4kLPeQnRO(MF)o)$a97dq0XMD(xLslwGywmt3Uy>Jft-Ihr`{vob!yiLJ2N{t| z#9Y;~j?o5c1;=-vGiF_UjQ*X1=*p~I{pgr@V?Ckrq*U%6Cg~%gp4AKS&%9%EP|YnD z6Ee6Ha@(}no+cM~)Gtu_e>7dWc;%{G2gj|!t3A2uN^%MAR=AMWI3DEqB3%4PP_6$Q z&eC0i-PH5>HD#p!nLW8Pm`r$AX4yPg@iIPVgx1Pk&C<_3bv`&z^nPtz+}yHq&P?dw zjtV1s^f`Q0JGb7_uy~>#MoHS`^oMiMnpSgrtrySfi%%PcIwd*TI`^RncJ(_lttJek z*g)P=HRRF4?R_twF-|q%7w=ZO=>D=grxu3Us1UJ@Cy%a!y8-+~lxHJsz&Y2qf?sA-eaq&3E1;Wp1L ztdBXl^+&a1<%(@J$Gh>`TS78F?Wv>p-Y}~-!wHEaGKZ!5T;xbp%YoKNrgZQ2l2~i- zzf-Hk$-=rD_S9JFL2XRs*Lvn}Pknhj(uc?bkR-OBd0XXq91| z#(Ih(hf8u15H{C*lQ5}2iE8_L_2sf}YL0=Kl)MZqSyz@g5I@SB~BVgUovkm4Q;rHxA@h;ZjPGw*CnXNcW9UU3=B^`1Ed{W8G6E z$8bk?Xc*6&s4Xenx6xUrP4OqP16Mgef{_Zxy1F;eKVQ*Vaw4=YWtn<4Tk=qnbV1J} z>C+`61XW@l@f>XG*&=)2DS8eY!uL#TA?1y>PX>31<*kK&s5dt?bjxkrO95*W@q1-GWxEv@c7u|Jci$3RR_BQ*?)21 z{2jWDOr$%u-2E+7=*7$#ymo^bIi5h-VlmHax2&rsfw44TOE!%Ce#xVyyxqRQu)Ft{9Jx5~lu2nHF1Mfgz@& z^E)G{`ppRHuQsm{j`O@`uv{K>h z_V{<->vsR!exEwg`X0HRA~ZYpU!nSm8*J$H=XicZjO>>$-r|WBy?>nC&?3zlVeyE; ztue%P)I_1kQP9CkmOCP-@68%hDcg5ng)kEdTeB}+^}dlgE0R4+9rv@9a{o9Od3POG zll)@^w##SSu@US+Uh#Ey?9`p=u@S>-J%~5CkP~u4#p_vDTekMxVr$RM2lxTeoo*{S zUkC*uWnDsqkBQOvZX!aujUw9^KwACEsDLNQ(~H$|B(#4wf|4K!aZ4~DI=?>6M8Cm$ z1*Nh&f!!QveMc*0RT`a?ul|Mbb13l|NPJ0&6;FB|O7`CB=PxR0*Ykzg&3|{2j%+YD zK$_x!50yD~!E^e>y^wm>JFQAzo5c*vnN-bC`&XI!=2iPG{@Hts2{=*=&`LNj-O2IB zWqg2DQL%Y#_eQWkLSX(B6RmiZ9$^d@wigU{N5{AdK?P?e$xbLlp_oO1x1D!o3Th8c zpp`-_a({Q%3Ti()EmT2fK77cEO+7}W6!c0)12()ywBjg}si}}=VX{eJ(MM{pNSn@^ zWpT~(T0r>j9}obQoGuVH2w~{OK)yWue%@dk2B?a_$FE)a`;}clxsNnl03G}J@9>8X z^t}!Z4KWO!eF8G7PZ2v}*AF75slZbO8h_)F>Mk1-++9ihn#GoQLNm~Ry*iWxxGZg! z2$u`ciCvqnNmAze&-}kXPq*M17o{HW;kne23&~)$YeFX%BGeKdK3QUjYiDPt2E840CaZ`thKS11N(Lw#6|wk-89>+#WANpzr;aj}iUA9(TO@unj#NX?)jp-zjXLbiZbXU(X)OdfnlmwW9L|X|*u>_asZDEOTL=M3 zg56$`gRl4biso#jc(;JjZUKoNJQ@Cn)_4NTZhuU|VZKAPs<rK+di@c%m>mn z2h#zl#k)5y!}M>;Xlni)Euaz#KtuviALqpG>GH!c5OVs#!9lb+8}6yYp$dXSmOmBR zggX|~P~eINdw6A#D)i3KpP{2R!E%)my?y z!`V$KUiabEdH7y*g#RLo{|^lyEOefq?_l?61AfO~aevTGk^ z2mmt#LNb8vuNaq*m&aFBv%ZM5Fuwk^M$-{u4dwq6&|a!dKS7GqZ-x9~OpmY|wSbNt znoRShH)2f-pfIn|A{G7Fr?4JzB9%C|2W}J*o-u*G--Pfw1JO$e(8m;Cg1^Jtx`>kQ4Erah4QnFJboC{>(6I-qsa;n%34 zH5X~gp)9FqwCNGRlzt=HL8di`Pz6j5P}Fl;5_kUf%PNh{%_HLEiYWfM`SAAn_su^5 zjf1p_f_fDP!eW9_&q_^w3wEqV`j;zMC_qL4sNV`YaT~S)xKwUF?$xT-z~ry&?(tc8 zg)w6SX5_w9B2q}2LDXsxMvsau^FJ>IK7CuJ9=gS={Zfb2# z)gT%w^YGLWbsk=TTD;5h!m}I>BzyE})|U=zPfXJOH?9u&CJS5yWK%NvqYux-Q+I#|lg1g|2^Am5uM&UQ~H;ufKZyGa$!!czBSq zev`bSI{Ru-7E+HE6V_K#JB51?drOxi=L@hdM2$u=iLb`Uq~+w#5h5}rHinElCp%lo zs-{x_!7>kZZYMrZxxQ)AG&yii;Lp}gPY*u&s7zB53JGpZqPlx5efXLz^sg zD?WX{U1~YahxD2webMKcxVT!XrvF$VhR5dnmve~VSHlbw+L`*U119tAkZ?~hIN%CJ+!))noFywZikNm zy$nhmryQA}O;_MfNOEqjuc~ED1foO7yEh=KM1QbacCZi|H&qMQyx|6mIRTD0td^h; zj&P=x=PWj(Nuvqg8^38PA%hq5)!I*~vq-~e^2LDPeIwvciQTr!QWrcdwIpD46xBd zrJ?&9(8!MM2Cj$4P9(Se1}Xo^R?wDHO-b$OupL=gE1T)pCa?+a$6->8)at`Bcp1SQ zh>r`iO`yIBXn}WbEhZfm2?%hWcPpJMLsv&9HF&ld56)vSQ1qr2e#mK$_$U?Q0R^j` zjoP)l84vLnh+^7bc6ogM@Sk1A93Y!wNe}bIdD;^+tlv1hd&B?!@}A`6wZ$8r)mXl% z$qs^FOJqM|e;(+tF${JPj#J?ipdie6NC1Ry@$QT_avW03m?Bj)xG8Q1&B|}LC)6_K zJeB=h+tsWkuf>d6mh)448$9fj>Tuahh5PfD+dsL?l^6&Ovaif;x8mbzYJuaaYub zpYIB}JDDl;*ad`gq5#i80;h|g06JV@Q!G8s>y~Uvpk_i?o(r04W)MJWa7tz z?3=HIThI&yniR;i*w*hFDim?&6=~7za%#Hb;7eq5^6-R>D7C32lvGIJD)o5P8`4Qq z70sfvNf@34OVA)E4y>lHV`G3Y6437QZ+Az~py4!EYNg3_TP zUFziCZM2dwtJ3R_2QhA2w(2Dt;Ob>9xVZ`YW~EyFHhVX{7djm&Eh*oMYxZ*@aMA~|Kp3G^uQ5TD^m}L##T5vGOs&Ibj zoBDlIOrZB?qE)1c47InMR%TyEOz%U*r2vsO~C71&^Z?Br#n=xaazPebK{ z^p_pP*O@jydNj4`1D2s|{CVJ4E0vCe`*s&@-EL0KH4xCv(Y?t_&>r8&(HVJAAv-L0 z+>7@_o+?bVN8av{OPrtF4-~nOEwq>DluxD0Q8w^Sv*7_5F)`ah*GU zRN|n?{11Y$cTE(^KK)4giM8VBh1;(bR1I%jOYP*(ZP zDd}{X$ot`7cs#qw-M|Q4k~jmS`!6vZcy~6#Vp0fcyOO;tpG9U{uAG0~-sjGDUd%8lcZF?QRvonAECYgD!qOt%A9o+ ztE}itLZ5z~n=i;BB~@jlKR&(8BYC6g#wC>-U)%5=6g~B!iufMj)_7N*=DoXFb&-VJ z1FQ=;Yj?`%Jvx2`skKB*yxO-4-83|ah+j+Gx1Tz`7q&lY+r{(ns5sKOr(C46VKcUN zdE=P5JER}wh##d)8NQU~?lV34zO;5%&Bdh_Sa+i8vSJgPGpNz-WOBL+aQEFpy>WbB z7RL0&B&_rH#x=pv55?^72m|&|oBHLo-h>iI%X3`j9IDUx2s%wxpS-6O<%qia_*P+f zwR33QQyTGE`LgfZl)|dVAvkDgZUt7xm)+>%2B)?p?ph1kbmT}6)_NW3tv!~byssF6 z235YVm@H_|us6$bFK}>&k#t=W-Dnb}+{J`nRW=}l@{&pyP+YnWe@DHeK!^XKp+#SM za>?y|Yj?M0MW;^DPr~m(1x^>>=SDsh=mK9$YfgbAhV57zMJ62Nn!(GnihMYk;Vm}u zSu`!;3q){L`|)1q>fg0Y zTbvOazY6a_eY-<5vMp>X@BqT`UPW||QP&~iVawg$2F=HN684Khj)C!+?RlR%uu`6B z;=DNC5KiCASlr&(!NY>h|b#&_#5vo5;B2=&I{eh0=cH&dV+@pD24{a$-i^&Le*%_Lo zu^(SbYsNrB`*YJ(GnxNK-;J{ioJ|Gt>c6@+#s95A{y)7?z!TwHZYS-?jGXUb5Z=#4 zrsS~h`1sBI;v$LqB{UQ*CuhZYH+74E5-=F0iKA6E!JEelg@dL^3_cK{T`I1w=AECP zCxZ8SVn;>(Gt>W1ZvuJt&Y`ifw15pB^KPGKal%5@$?g}5v@2*@7SPLxb;(0G3i+9q z+jsx}u&$BO{>#I3`Z{kzM*#kc8%To95v|&Pq=M0>7puWIbHd zjt}|oEysVKB<&D9wo2H-R{B>i9oSOd*xud_PfD^x5uu@}71`L@>R;ZDy6ndHQHh@3 z>d@_Am1F@IZsq&Tf3YsB3#%*8&1XHXOnE9&@!4IM(pmx%7V750`El_#^5*9|M@p#z#6v;-8m|&L;0qB zo#d1M{*6pHER|?ziX1`BX>Dy{WI&}x?s{Bw>{18+zTr!PKjS5{kQCCW8HbRF2gn>XiCJOO;zjiirWy*S$69EME4oT@5aQg>E=mQ?%VPV3?h4IiJzt19*0 z-d^9pz#+)pwGGYAF(qT2+Ld}DR4bx4Ynnwr{p zWgzFU>7h%?bt+-PH{mmar?8*T4z%5_N1H}F3!P)tjwNc0Q7kMh;nC6AU%x(6hqfN) zsZ$UfhMZ##JgyZ;qYQ)kQrg;@nZBXnsyF|!HfG=#2h|D-d28z;XrfeSQ2QiZR8%A; zCe|0ttb16!2|ZX(Vg3{)Bmxu))N;bZ@jg#l{5f9a$9*#YE$tMhrsw7bqAzF)N=n)C zc?!!Q+H0XP;tct$%SWFKyW)*CKHcVbQ48YTeh=((GarLUu7cXT{F5i{FwnVIRaDy+ zr=Z%MIXkPf4h*`0*GGhj8u<*kdR*b+OE`RG7YN->pec44M1+SS8L{_k+;VljVtOc^ z+xAZJ`|xz_Mz3YyvK@d7uAGKO0rGq;Dopz`C9V_k;|=AjX2C*61ciHA!|v}vkC@O} z=)2|qEK^u+Jl3b8+K2k4+!}7fH7_v zc=vjsYGh_4!OYCu*4{2_XIBQnJ55%94&+ryRQl(u_l8ts*^EP>9qVzz zvcxajp_-L-v{|PK>jU~8Bl?#I;7RB{XPA6~JV^??Po)KeFG5{}x1ExVJjI3QbBez4N;x&=HyodBxn!Okst*!H+zB zeSIjXbf{Y!a;tT%4CcuzC}hGWYWzsN#19wpM1OLrM+#_`B@%e#VOgaL2i-PDao7Ah zSWKdO^hg!D(T1Sa>E_lJIaIJR($klqvB&TCi1Qw>Jj&k=63J664E#N^OAgm+0C#aI ztM>HICQ|K_H#7Uto3T3z?cE=sPzL40U72Ui&T}CmYz7^Ku%ww%e|YtQKE1rAW+6VE z!ZVcG*`}Up$cjY!BmL@CIhLTp&moU*5-L+pkSA~8ftp-Grc_cvTU*=5 zz?-6%FJA^u>nPy>V*DZNzcWGtGZOUXXuZPM*S8O>AY8)?+3)Jr4l)FO)MmP$CM_~D zGk@jTf9EtCNd|RhlRt-h+9V!lL%0jR;-41slb;yQJDr?P&|Et1{P6oe9Yw222@P*j z-L>Fp^56y@;l_*`RKor}o35uvAJ>qg2QjBb{IQFxUw%NdL0Ox@tW@ErjmlNj_ME6X z&_QaCp3WZ@)?wP8Ss2p^D)c20g%3(8LVg5gQ%m~~nvG@TP^GD9Y54j@53;^eiEa~Q zfm4S1{rurC+V2d;r!~8z>v>m7i5p}?sr;zLdKtbwpx@zet<&a@*)Dfd7NCy7`GJxb z5%(itz*-HU^Yis(b3Hi@3}T?o-TF;^v07|1-N27pJyAe_dgIr0JI!cTrty-MOPuEP z!T#jMj9k+R?+U#q7~R&n$yDV^jSi zCAqaN@on0E9T}hD!qD9=7Y+ja3X89|FaL9Y9{!AI0!C(IrJ_KZ8EnR(nzv59ae=|! zym!X;MUxWsW^I|TxI{3+x2%gXO+4XiQG>+NtqhlGmCGeEEV9m@xS9PT%qh@juFhEb zsK!Ba?PuNxiYGK_QKrp4$$jggSzNN0ODar9%V|4B?OSN;enk*GV5gEyWbl@YpEvrD z?$M zq0@O~%GP2;=1~v1L`-qXUVbr={UV#~S=C;epZiQQ4=*@hyI}Qh=X7QxcWdbR?bmJL z!6B*hiDXy=>6}5I^*1TGRgXu`hXT&b<*TWxd`_r2&N#Z=Q7Of|#piWzxrJBHdF~j; z+Sxd5|f6> zGb>Mwn1*V&X<~ktH*xtI5oS@5>k^9o`Py3xRt(Yyv_ZV?ZXYamDZx|3f zxSyw#pZ5M&Wo}x22$e`~aWTu>6*v^6aw{uUkQ<{GopPoQRiJsyojLQ8C{FN-Z~J`f z7A-}d4ygoXfNZG9)vUCpA`VY1V@YqFwE&DzK9R-T^lVS;2nNhHYSCCq!(zd!Wy2pa zsz@0YG~tX;=9SIC*Jxcga!`2VAI}_hkM5p9AVIfUDwbu!M4&i+03q|!h=_=P9JnJE z`E}HUYfbOLo0b*1t*J%41e*%1NqL({YNM)!RV(+rNm+B|tL%D|=bD}uH*@I)6}=jI z`S?b`nK{@;%)v8r^L!9t88@?Qc`RP}h+1Vzzq@r^EV6MX*z`$}%ELdET!VZR>Xpmy zBwD#y)8FzOtgguAv*Bk|1kuK~T8K7b?Jm)uY&_=X;7|aAywMt1HQz7AZ(c@df47Qy zGT$gmq#_x@4blbv3PB;b$Q(iKkwtua~X`r6NGh2 z^7t3?C8sxIhUk6;4sGE0H7A(Zb$49z2?&svkdSEEALnS1ev$b`{!wZ9M`_%S7v@vd z4&o75#qrL>dGqm|7HZ*~;^V2d`pN;CYjR>Jxj4nF9NH3^mXD%?xJIQJog#0)S;}Rm z{gKL~X?ZRwxgof>ZZ`yvZS)NrSpeN6!{cJvK9&r7EB~2)8?aT0RC3a%<;*zLYJNre z_{RQt_(qpZ%>C@|+(}p0CsTf+Vh2YtcYtplZ1r z`GAK<>?n4qL?Mo}Rhf2zMUZxd-p#0eY$4o_2fuqN$Du-&qe|8|S3$%0sA;aYZ#0xe zzd{TrNvTrSoNw*fiH6rXki_J1Id<68cth0ajXMlI?j&_s*#r3b*>A;@PP9uNg-6Ja zSQ$Sb_gH=rck|K;tyrn-md#jxr_`t8`;}w*72|qkqX5>@vo~l<$RtRbxE?&aUOWyt zF23fNm>i;)-cfsU3JPAw#W!-oPF5q@yS)wbRmJfNb8VlHjj;%Jcl)n8XAg+atRVgh z3Kua-FQS=J{ygoQ>3bteqij0A#~F|DeP7{$<-#lDn6$icZniPTpyoU(jl$|gEd2DK zA)5^2{BfGmcv=TWiE+bkG;lz=QX~s}DfDf4k-->}nAc|VX-3Ci+>bh=5{q~R^S8W0 za1KUp2KO@A)X-KjFoffgkc|Hrw$nfUy>+wOjE$jsO|z;qA~|M^9-b6VzJmb{H#{veAe(XuJN7hN*PfOza((jY%WbWIHO;F9StZv6#wvN(xq+8U6yU70V zYl5v<*>G%Hc+6!Lmu2O#;(gEJSjz@&MR&`>l~h^0TQ%ti%H0u3(gx%Bj-1=>Efre{+wweHP*~0ew{CcJg$ur0_Lw&@B1~ot*j7FJ*pU6t10*a(rW$bqG90?5rcbS zuOBclNFa``Svi5I(2pYJ{Gp+7iG_h2*-9V**#!iE=bLHuJx$jeU1tV-7?Z`#MepnT z>$&;)gAk4efHzosye%#f&m{wR2kiC}5ZTHF?B0I+#e-04aW=CNrun%!PyN#~pZJbD z_{1VuSXd}PVKAtccPzbZFz8Jcs+{p6DYcqu0N)R=14AQ4x^@d4F(22ap944{9}sGE zIAlC*^ha5zu;{N{zCa|vZv)KmI7BSZrd^Kmdow%(nsj77xtez-K33&FXqAGft&vCa zZoX!n2HZyhL|C`Vna>>BXXjzdbn^nP4GF9w8P!ctG?W#3tv7&%d+Fq86L*zM(|Iq# z1!(%=$mRL)<5?dBas>!nZY|3BZ`i`g=Yqdv2$4)41i>qSq+zNI4<7quohF&cOB5nB zmo1aFI~OKJ%gV~SrYqC{JO^cO4z}Mr? z7J{QNut}y+s?CMk|L+kx#e#vYAI)XfKfb*WBEteY6HOF^=4-0bWg zfDz~@;rtDD+*x5^beNQ_EcK?1ebn{<*&k7e3_~U+)M|hd=Wwm08(Z^PEpU(Uy!ric zp)=0Vh-{MGu!|J%Y#lw<1XIuM={6Fke*_=|5?$0mKYzh***RQNu4IU*S3&%42skFp zP~4qZSFYgSx^=%|+_|Z12GS;MrbG19ckeC*xgMwW&a<7x{MW?PRL)~lKrYn@KyC2$ ztOzrfuOg zZ7nT5@EG=*ZfQQCqocd?!@B`s5POgo05)smiBHy*pd(oZpv3q7>MAO^9UU(w0Wf+9 zxeL2rYszrzbpJES@EvlZP}EK0u$=nP8OKS-&8-ZjRR4O0M%iA|fMmKYdaVKET%y>ZAB0o^sg98GR)C7m9N0NF%csq3i=7#=woE+SNA2e=%gk&oKKq4*@%l|uYmk%=|>R1MTHgs;S>SuTh#=xrg#L;NW;u5Q!(vQ1-ZIt@Z~uk zwwaokj9nzy+S+mgiShA^q!L$tr>Eal2hfl(xtI2tr7GQX{fU~V3`og3D?5n_Nj@uh Is`d7N0Jr4b)c^nh diff --git a/vendor/github.com/ipfs/go-ipfs/docs/command-completion.md b/vendor/github.com/ipfs/go-ipfs/docs/command-completion.md deleted file mode 100644 index 73394d41..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/command-completion.md +++ /dev/null @@ -1,29 +0,0 @@ -Command Completion -================== - -Shell command completion is provided by the script at -[/misc/completion/ipfs-completion.bash](../misc/completion/ipfs-completion.bash). - - -Installation ------------- -The simplest way to see it working is to run -`source misc/completion/ipfs-completion.bash` straight from your shell. This -is only temporary and to fully enable it, you'll have to follow one of the steps -below. - -### Bash on Linux -For bash, completion can be enabled in a couple of ways. One is to copy the -completion script to the directory `~/.ipfs/` and then in the file -`~/.bash_completion` add -```bash -source ~/.ipfs/ipfs-completion.bash -``` -It will automatically be loaded the next time bash is loaded. -To enable ipfs command completion globally on your system you may also -copy the completion script to `/etc/bash_completion.d/`. - - -Additional References ---------------------- -* https://www.debian-administration.org/article/316/An_introduction_to_bash_completion_part_1 diff --git a/vendor/github.com/ipfs/go-ipfs/docs/config.md b/vendor/github.com/ipfs/go-ipfs/docs/config.md deleted file mode 100644 index cd3c34dd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/config.md +++ /dev/null @@ -1,396 +0,0 @@ -# The go-ipfs config file - -The go-ipfs config file is a JSON document located at `$IPFS_PATH/config`. It -is read once at node instantiation, either for an offline command, or when -starting the daemon. Commands that execute on a running daemon do not read the -config file at runtime. - -#### Profiles - -Configuration profiles allow to tweak configuration quickly. Profiles can be -applied with `--profile` flag to `ipfs init` or with the `ipfs config profile -apply` command. When a profile is applied a backup of the configuration file -will be created in `$IPFS_PATH`. - -Available profiles: - -- `server` - - Recommended for nodes with public IPv4 address (servers, VPSes, etc.), - disables host and content discovery in local networks. - -- `local-discovery` - - Sets default values to fields affected by `server` profile, enables - discovery in local networks. - -- `test` - - Reduces external interference, useful for running ipfs in test environments. - Note that with these settings node won't be able to talk to the rest of the - network without manual bootstrap. - -- `default-networking` - - Restores default network settings. Inverse profile of the `test` profile. - -- `badgerds` - - Replaces default datastore configuration with experimental badger datastore. - If you apply this profile after `ipfs init`, you will need to convert your - datastore to the new configuration. You can do this using [ipfs-ds-convert](https://github.com/ipfs/ipfs-ds-convert) - - WARNING: badger datastore is experimental. Make sure to backup your data - frequently. - -- `default-datastore` - - Restores default datastore configuration. - -- `lowpower` - - Reduces daemon overhead on the system. May affect node functionality, - performance of content discovery and data fetching may be degraded. - -- `randomports` - - Generate random port for swarm. - -## Table of Contents - -- [`Addresses`](#addresses) -- [`API`](#api) -- [`Bootstrap`](#bootstrap) -- [`Datastore`](#datastore) -- [`Discovery`](#discovery) -- [`Gateway`](#gateway) -- [`Identity`](#identity) -- [`Ipns`](#ipns) -- [`Mounts`](#mounts) -- [`Reprovider`](#reprovider) -- [`Swarm`](#swarm) - -## `Addresses` -Contains information about various listener addresses to be used by this node. - -- `API` -Multiaddr describing the address to serve the local HTTP API on. - -Default: `/ip4/127.0.0.1/tcp/5001` - -- `Gateway` -Multiaddr describing the address to serve the local gateway on. - -Default: `/ip4/127.0.0.1/tcp/8080` - -- `Swarm` -Array of multiaddrs describing which addresses to listen on for p2p swarm connections. - -Default: -```json -[ - "/ip4/0.0.0.0/tcp/4001", - "/ip6/::/tcp/4001" -] -``` - -- `Announce` -If non-empty, this array specifies the swarm addresses to announce to the network. If empty, the daemon will announce inferred swarm addresses. - -Default: `[]` - -- `NoAnnounce` -Array of swarm addresses not to announce to the network. - -Default: `[]` - -## `API` -Contains information used by the API gateway. - -- `HTTPHeaders` -Map of HTTP headers to set on responses from the API HTTP server. - -Example: -```json -{ - "Foo": ["bar"] -} -``` - -Default: `null` - -## `Bootstrap` -Bootstrap is an array of multiaddrs of trusted nodes to connect to in order to -initiate a connection to the network. - -Default: The ipfs.io bootstrap nodes - -## `Datastore` -Contains information related to the construction and operation of the on-disk -storage system. - -- `StorageMax` -A soft upper limit for the size of the ipfs repository's datastore. With `StorageGCWatermark`, -is used to calculate whether to trigger a gc run (only if `--enable-gc` flag is set). - -Default: `10GB` - -- `StorageGCWatermark` -The percentage of the `StorageMax` value at which a garbage collection will be -triggered automatically if the daemon was run with automatic gc enabled (that -option defaults to false currently). - -Default: `90` - -- `GCPeriod` -A time duration specifying how frequently to run a garbage collection. Only used -if automatic gc is enabled. - -Default: `1h` - -- `HashOnRead` -A boolean value. If set to true, all block reads from disk will be hashed and -verified. This will cause increased CPU utilization. - -- `BloomFilterSize` -A number representing the size in bytes of the blockstore's [bloom filter](https://en.wikipedia.org/wiki/Bloom_filter). A value of zero represents the feature being disabled. - -This site generates useful graphs for various bloom filter values: -You may use it to find a preferred optimal value, where `m` is `BloomFilterSize` in bits. Remember to convert the value `m` from bits, into bytes for use as `BloomFilterSize` in the config file. -For example, for 1,000,000 blocks, expecting a 1% false positive rate, you'd end up with a filter size of 9592955 bits, so for `BloomFilterSize` we'd want to use 1199120 bytes. -As of writing, [7 hash functions](https://github.com/ipfs/go-ipfs-blockstore/blob/547442836ade055cc114b562a3cc193d4e57c884/caching.go#L22) are used, so the constant `k` is 7 in the formula. - - -Default: `0` - -- `Spec` -Spec defines the structure of the ipfs datastore. It is a composable structure, where each datastore is represented by a json object. Datastores can wrap other datastores to provide extra functionality (eg metrics, logging, or caching). - -This can be changed manually, however, if you make any changes that require a different on-disk structure, you will need to run the [ipfs-ds-convert tool](https://github.com/ipfs/ipfs-ds-convert) to migrate data into the new structures. - -For more information on possible values for this configuration option, see docs/datastores.md - -Default: -``` -{ - "mounts": [ - { - "child": { - "path": "blocks", - "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", - "sync": true, - "type": "flatfs" - }, - "mountpoint": "/blocks", - "prefix": "flatfs.datastore", - "type": "measure" - }, - { - "child": { - "compression": "none", - "path": "datastore", - "type": "levelds" - }, - "mountpoint": "/", - "prefix": "leveldb.datastore", - "type": "measure" - } - ], - "type": "mount" -} -``` - -## `Discovery` -Contains options for configuring ipfs node discovery mechanisms. - -- `MDNS` -Options for multicast dns peer discovery. - - - `Enabled` -A boolean value for whether or not mdns should be active. - -Default: `true` - - - `Interval` -A number of seconds to wait between discovery checks. - -- `Routing` -Content routing mode. Can be overridden with daemon `--routing` flag. -Valid modes are: - - `dht` (default) - - `dhtclient` - - `none` - -## `Gateway` -Options for the HTTP gateway. - -- `NoFetch` -When set to true, the gateway will only serve content already in the local repo -and will not fetch files from the network. - -Default: `false` - -- `HTTPHeaders` -Headers to set on gateway responses. - -Default: -```json -{ - "Access-Control-Allow-Headers": [ - "X-Requested-With" - ], - "Access-Control-Allow-Methods": [ - "GET" - ], - "Access-Control-Allow-Origin": [ - "*" - ] -} -``` - -- `RootRedirect` -A url to redirect requests for `/` to. - -Default: `""` - -- `Writeable` -A boolean to configure whether the gateway is writeable or not. - -Default: `false` - -- `PathPrefixes` -TODO - -Default: `[]` - -## `Identity` - -- `PeerID` -The unique PKI identity label for this configs peer. Set on init and never read, -its merely here for convenience. Ipfs will always generate the peerID from its -keypair at runtime. - -- `PrivKey` -The base64 encoded protobuf describing (and containing) the nodes private key. - -## `Ipns` - -- `RepublishPeriod` -A time duration specifying how frequently to republish ipns records to ensure -they stay fresh on the network. If unset, we default to 4 hours. - -- `RecordLifetime` -A time duration specifying the value to set on ipns records for their validity -lifetime. -If unset, we default to 24 hours. - -- `ResolveCacheSize` -The number of entries to store in an LRU cache of resolved ipns entries. Entries -will be kept cached until their lifetime is expired. - -Default: `128` - -## `Mounts` -FUSE mount point configuration options. - -- `IPFS` -Mountpoint for `/ipfs/`. - -- `IPNS` -Mountpoint for `/ipns/`. - -- `FuseAllowOther` -Sets the FUSE allow other option on the mountpoint. - -## `Reprovider` - -- `Interval` -Sets the time between rounds of reproviding local content to the routing -system. If unset, it defaults to 12 hours. If set to the value `"0"` it will -disable content reproviding. - -Note: disabling content reproviding will result in other nodes on the network -not being able to discover that you have the objects that you have. If you want -to have this disabled and keep the network aware of what you have, you must -manually announce your content periodically. - -- `Strategy` -Tells reprovider what should be announced. Valid strategies are: - - "all" (default) - announce all stored data - - "pinned" - only announce pinned data - - "roots" - only announce directly pinned keys and root keys of recursive pins - -## `Swarm` - -Options for configuring the swarm. - -- `AddrFilters` -An array of address filters (multiaddr netmasks) to filter dials to. -See [this issue](https://github.com/ipfs/go-ipfs/issues/1226#issuecomment-120494604) for more -information. - -- `DisableBandwidthMetrics` -A boolean value that when set to true, will cause ipfs to not keep track of -bandwidth metrics. Disabling bandwidth metrics can lead to a slight performance -improvement, as well as a reduction in memory usage. - -- `DisableNatPortMap` -Disable NAT discovery. - -- `DisableRelay` -Disables the p2p-circuit relay transport. - -- `EnableRelayHop` -Enables HOP relay for the node. If this is enabled, the node will act as -an intermediate (Hop Relay) node in relay circuits for connected peers. - -- `EnableAutoRelay` -Enables automatic relay for this node. -If the node is a HOP relay (`EnableRelayHop` is true) then it will advertise itself as a relay through the DHT. -Otherwise, the node will test its own NAT situation (dialability) using passively discovered AutoNAT services. -If the node is not publicly reachable, then it will seek HOP relays advertised through the DHT and override its public address(es) with relay addresses. - -- `EnableAutoNATService` -Enables the AutoNAT service for this node. -The service allows peers to discover their NAT situation by requesting dial backs to their public addresses. -This should only be enabled on publicly reachable nodes. - -### `ConnMgr` - -The connection manager determines which and how many connections to keep and can be configured to keep. - -- `Type` -Sets the type of connection manager to use, options are: `"none"` (no connection management) and `"basic"`. - -#### Basic Connection Manager - -- `LowWater` -LowWater is the minimum number of connections to maintain. - -- `HighWater` -HighWater is the number of connections that, when exceeded, will trigger a connection GC operation. - -- `GracePeriod` -GracePeriod is a time duration that new connections are immune from being closed by the connection manager. - -The "basic" connection manager tries to keep between `LowWater` and `HighWater` connections. It works by: - -1. Keeping all connections until `HighWater` connections is reached. -2. Once `HighWater` is reached, it closes connections until `LowWater` is reached. -3. To prevent thrashing, it never closes connections established within the `GracePeriod`. - -**Example:** - - -```json -{ - "Swarm": { - "ConnMgr": { - "Type": "basic", - "LowWater": 100, - "HighWater": 200, - "GracePeriod": "30s" - } - } -} -``` diff --git a/vendor/github.com/ipfs/go-ipfs/docs/datastores.md b/vendor/github.com/ipfs/go-ipfs/docs/datastores.md deleted file mode 100644 index bec26c64..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/datastores.md +++ /dev/null @@ -1,83 +0,0 @@ -# Datastore Configuration Options - -This document describes the different possible values for the `Datastore.Spec` -field in the ipfs configuration file. - -## flatfs -Stores each key value pair as a file on the filesystem. - -The shardFunc is prefixed with `/repo/flatfs/shard/v1` then followed by a descriptor of the sharding strategy. Some example values are: -- `/repo/flatfs/shard/v1/next-to-last/2` - - Shards on the two next to last characters of the key -- `/repo/flatfs/shard/v1/prefix/2` - - Shards based on the two character prefix of the key - -```json -{ - "type": "flatfs", - "path": "", - "shardFunc": "", - "sync": true|false -} -``` - -NOTE: flatfs should only be used as a block store (mounted at `/blocks`) as the -current implementation is not complete. - -## levelds -Uses a leveldb database to store key value pairs. - -```json -{ - "type": "levelds", - "path": "", - "compression": "none" | "snappy", -} -``` - -## badgerds -Uses [badger](https://github.com/dgraph-io/badger) as a key value store. - -* `syncWrites`: Synchronize every write to disk. -* `truncate`: Truncate the DB if a corrupted sector is found (otherwise Badger won't start). This option is always set to `true` in Windows if `syncWrites` is set. - -```json -{ - "type": "badgerds", - "path": " ipfs.stacks` -- 30 second cpu profile - - `curl localhost:5001/debug/pprof/profile > ipfs.cpuprof` -- heap trace dump - - `curl localhost:5001/debug/pprof/heap > ipfs.heap` -- memory statistics (in json, see "memstats" object) - - `curl localhost:5001/debug/vars > ipfs.vars` -- system information - - `ipfs diag sys > ipfs.sysinfo` - -Bundle all that up and include a copy of the ipfs binary that you are running -(having the exact same binary is important, it contains debug info). - -You can investigate yourself if you feel intrepid: - -### Analyzing the stack dump - -The first thing to look for is hung goroutines -- any goroutine thats been stuck -for over a minute will note that in the trace. It looks something like: - -``` -goroutine 2306090 [semacquire, 458 minutes]: -sync.runtime_Semacquire(0xc8222fd3e4) - /home/whyrusleeping/go/src/runtime/sema.go:47 +0x26 -sync.(*Mutex).Lock(0xc8222fd3e0) - /home/whyrusleeping/go/src/sync/mutex.go:83 +0x1c4 -gx/ipfs/QmedFDs1WHcv3bcknfo64dw4mT1112yptW1H65Y2Wc7KTV/yamux.(*Session).Close(0xc8222fd340, 0x0, 0x0) - /home/whyrusleeping/gopkg/src/gx/ipfs/QmedFDs1WHcv3bcknfo64dw4mT1112yptW1H65Y2Wc7KTV/yamux/session.go:205 +0x55 -gx/ipfs/QmWSJzRkCMJFHYUQZxKwPX8WA7XipaPtfiwMPARP51ymfn/go-stream-muxer/yamux.(*conn).Close(0xc8222fd340, 0x0, 0x0) - /home/whyrusleeping/gopkg/src/gx/ipfs/QmWSJzRkCMJFHYUQZxKwPX8WA7XipaPtfiwMPARP51ymfn/go-stream-muxer/yamux/yamux.go:39 +0x2d -gx/ipfs/QmZK81vcgMhpb2t7GNbozk7qzt6Rj4zFqitpvsWT9mduW8/go-peerstream.(*Conn).Close(0xc8257a2000, 0x0, 0x0) - /home/whyrusleeping/gopkg/src/gx/ipfs/QmZK81vcgMhpb2t7GNbozk7qzt6Rj4zFqitpvsWT9mduW8/go-peerstream/conn.go:156 +0x1f2 -created by gx/ipfs/QmZK81vcgMhpb2t7GNbozk7qzt6Rj4zFqitpvsWT9mduW8/go-peerstream.(*Conn).GoClose - /home/whyrusleeping/gopkg/src/gx/ipfs/QmZK81vcgMhpb2t7GNbozk7qzt6Rj4zFqitpvsWT9mduW8/go-peerstream/conn.go:131 +0xab -``` - -At the top, you can see that this goroutine (number 2306090) has been waiting -to acquire a semaphore for 458 minutes. That seems bad. Looking at the rest of -the trace, we see the exact line it's waiting on is line 47 of runtime/sema.go. -That's not particularly helpful, so we move on. Next, we see that call was made -by line 205 of yamux/session.go in the `Close` method of `yamux.Session`. This -one appears to be the issue. - -Given that information, look for another goroutine that might be -holding the semaphore in question in the rest of the stack dump. -(If you need help doing this, ping and we'll stub this out.) - -There are a few different reasons that goroutines can be hung: -- `semacquire` means we're waiting to take a lock or semaphore. -- `select` means that the goroutine is hanging in a select statement and none of - the cases are yielding anything. -- `chan receive` and `chan send` are waiting for a channel to be received from - or sent on, respectively. -- `IO wait` generally means that we are waiting on a socket to read or write - data, although it *can* mean we are waiting on a very slow filesystem. - -If you see any of those tags _without_ a `, -X minutes` suffix, that generally means there isn't a problem -- you just caught -that goroutine in the middle of a short wait for something. If the wait time is -over a few minutes, that either means that goroutine doesn't do much, or -something is pretty wrong. - -### Analyzing the CPU Profile - -The go team wrote an [excellent article on profiling go -programs](http://blog.golang.org/profiling-go-programs). If you've already -gathered the above information, you can skip down to where they start talking -about `go tool pprof`. My go-to method of analyzing these is to run the `web` -command, which generates an SVG dotgraph and opens it in your browser. This is -the quickest way to easily point out where the hot spots in the code are. - -### Analyzing vars and memory statistics - -The output is JSON formatted and includes badger store statistics, the command line run, and the output from Go's [runtime.ReadMemStats](https://golang.org/pkg/runtime/#ReadMemStats). The [MemStats](https://golang.org/pkg/runtime/#MemStats) has useful information about memory allocation and garbage collection. - -### Other - -If you have any questions, or want us to analyze some weird go-ipfs behaviour, -just let us know, and be sure to include all the profiling information -mentioned at the top. - diff --git a/vendor/github.com/ipfs/go-ipfs/docs/developer-certificate-of-origin b/vendor/github.com/ipfs/go-ipfs/docs/developer-certificate-of-origin deleted file mode 100644 index 8201f992..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/developer-certificate-of-origin +++ /dev/null @@ -1,37 +0,0 @@ -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. -1 Letterman Drive -Suite D4700 -San Francisco, CA, 94129 - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. diff --git a/vendor/github.com/ipfs/go-ipfs/docs/experimental-features.md b/vendor/github.com/ipfs/go-ipfs/docs/experimental-features.md deleted file mode 100644 index 73a45b7e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/experimental-features.md +++ /dev/null @@ -1,685 +0,0 @@ -# Experimental features of go-ipfs - -This document contains a list of experimental features in go-ipfs. -These features, commands, and APIs aren't mature, and you shouldn't rely on them. -Once they reach maturity, there's going to be mention in the changelog and -release posts. If they don't reach maturity, the same applies, and their code is -removed. - -Subscribe to https://github.com/ipfs/go-ipfs/issues/3397 to get updates. - -When you add a new experimental feature to go-ipfs, or change an experimental -feature, you MUST please make a PR updating this document, and link the PR in -the above issue. - -- [ipfs pubsub](#ipfs-pubsub) -- [Client mode DHT routing](#client-mode-dht-routing) -- [go-multiplex stream muxer](#go-multiplex-stream-muxer) -- [Raw leaves for unixfs files](#raw-leaves-for-unixfs-files) -- [ipfs filestore](#ipfs-filestore) -- [ipfs urlstore](#ipfs-urlstore) -- [BadgerDB datastore](#badger-datastore) -- [Private Networks](#private-networks) -- [ipfs p2p](#ipfs-p2p) -- [p2p http proxy](#p2p-http-proxy) -- [Circuit Relay](#circuit-relay) -- [Plugins](#plugins) -- [Directory Sharding / HAMT](#directory-sharding--hamt) -- [IPNS PubSub](#ipns-pubsub) -- [QUIC](#quic) -- [AutoRelay](#autorelay) - ---- - -## ipfs pubsub - -### State - -experimental, default-disabled. - -### In Version - -0.4.5 - -### How to enable - -run your daemon with the `--enable-pubsub-experiment` flag. Then use the -`ipfs pubsub` commands. - -### gossipsub - -Gossipsub is a new, experimental routing protocol for pubsub that -should waste less bandwidth than floodsub, the current pubsub -protocol. It's backwards compatible with floodsub so enabling this -feature shouldn't break compatibility with existing IPFS nodes. - -You can enable gossipsub via configuration: -`ipfs config Pubsub.Router gossipsub` - -### Message Signing - -As of 0.4.18, go-ipfs signs all pubsub messages by default. For now, it doesn't -*reject* unsigned messages but it will in the future. - -You can turn off message signing (not recommended unless you're using a private -network) by running: -`ipfs config Pubsub.DisableSigning true` - -You can turn on strict signature verification (require that all messages be -signed) by running: -`ipfs config Pubsub.StrictSignatureVerification true` - -(this last option will be set to true by default and eventually removed entirely) - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works -- [ ] Needs authenticated modes to be implemented -- [ ] needs performance analyses to be done - ---- - -## Client mode DHT routing -Allows the dht to be run in a mode that doesn't serve requests to the network, -saving bandwidth. - -### State -experimental. - -### In Version -0.4.5 - -### How to enable -run your daemon with the `--routing=dhtclient` flag. - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works. -- [ ] Needs analysis of effect it has on the network as a whole. - ---- - -## go-multiplex stream muxer -Adds support for using the go-multiplex stream muxer alongside (or instead of) -yamux and spdy. This multiplexer is far simpler, and uses less memory and -bandwidth than the others, but is lacking on congestion control and backpressure -logic. It is available to try out and experiment with. - -### State -Experimental - -### In Version -0.4.5 - -### How to enable -run your daemon with `--enable-mplex-experiment` - -To make it the default stream muxer, set the environment variable -`LIBP2P_MUX_PREFS` as follows: -``` -export LIBP2P_MUX_PREFS="/mplex/6.7.0 /yamux/1.0.0 /spdy/3.1.0" -``` - -To check which stream muxer is being used between any two given peers, check the -json output of the `ipfs swarm peers` command, you'll see something like this: -``` -$ ipfs swarm peers -v --enc=json | jq . -{ - "Peers": [ - { - "Addr": "/ip4/104.131.131.82/tcp/4001", - "Peer": "QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", - "Latency": "46.032624ms", - "Muxer": "*peerstream_multiplex.conn", - "Streams": [ - { - "Protocol": "/ipfs/bitswap/1.1.0" - }, - { - "Protocol": "/ipfs/kad/1.0.0" - }, - { - "Protocol": "/ipfs/kad/1.0.0" - } - ] - }, - { -... -``` - -### Road to being a real feature -- [ ] Significant real world testing and performance metrics across a wide - variety of workloads showing that it works well. - ---- - -## Raw Leaves for unixfs files -Allows files to be added with no formatting in the leaf nodes of the graph. - -### State -experimental. - -### In Version -master, 0.4.5 - -### How to enable -Use `--raw-leaves` flag when calling `ipfs add`. - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works. - ---- - -## ipfs filestore -Allows files to be added without duplicating the space they take up on disk. - -### State -experimental. - -### In Version -master, 0.4.7 - -### How to enable -Modify your ipfs config: -``` -ipfs config --json Experimental.FilestoreEnabled true -``` - -Then restart your IPFS node to reload your config. - -Finally, when adding files with ipfs add, pass the --nocopy flag to use the -filestore instead of copying the files into your local IPFS repo. - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works. -- [ ] Need to address error states and failure conditions -- [ ] Need to write docs on usage, advantages, disadvantages -- [ ] Need to merge utility commands to aid in maintenance and repair of filestore - ---- - -## ipfs urlstore -Allows ipfs to retrieve blocks contents via a url instead of storing it in the datastore - -### State -experimental. - -### In Version -master, v0.4.17 - -### How to enable -Modify your ipfs config: -``` -ipfs config --json Experimental.UrlstoreEnabled true -``` - -And then add a file at a specific URL using `ipfs urlstore add ` - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works. -- [ ] Need to address error states and failure conditions -- [ ] Need to write docs on usage, advantages, disadvantages -- [ ] Need to implement caching -- [ ] Need to add metrics to monitor performance - ---- - -## Private Networks - -Allows ipfs to only connect to other peers who have a shared secret key. - -### State -Experimental - -### In Version -master, 0.4.7 - -### How to enable -Generate a pre-shared-key using [ipfs-swarm-key-gen](https://github.com/Kubuxu/go-ipfs-swarm-key-gen)): -``` -go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen -ipfs-swarm-key-gen > ~/.ipfs/swarm.key -``` - -To join a given private network, get the key file from someone in the network -and save it to `~/.ipfs/swarm.key` (If you are using a custom `$IPFS_PATH`, put -it in there instead). - -When using this feature, you will not be able to connect to the default bootstrap -nodes (Since we aren't part of your private network) so you will need to set up -your own bootstrap nodes. - -First, to prevent your node from even trying to connect to the default bootstrap nodes, run: -```bash -ipfs bootstrap rm --all -``` - -Then add your own bootstrap peers with: -```bash -ipfs bootstrap add -``` - -For example: -``` -ipfs bootstrap add /ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64 -``` - -Bootstrap nodes are no different from all other nodes in the network apart from -the function they serve. - -To be extra cautious, You can also set the `LIBP2P_FORCE_PNET` environment -variable to `1` to force the usage of private networks. If no private network is -configured, the daemon will fail to start. - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works -- [ ] More documentation - ---- - -## ipfs p2p - -Allows tunneling of TCP connections through Libp2p streams. If you've ever used -port forwarding with SSH (the `-L` option in openssh), this feature is quite -similar. - -### State - -Experimental - -### In Version - -master, 0.4.10 - -### How to enable - -The `p2p` command needs to be enabled in config: - -```sh -> ipfs config --json Experimental.Libp2pStreamMounting true -``` - -### How to use - -**Netcat example:** - -First, pick a protocol name for your application. Think of the protocol name as -a port number, just significantly more user-friendly. In this example, we're -going to use `/x/kickass/1.0`. - -***Setup:*** - -1. A "server" node with peer ID `$SERVER_ID` -2. A "client" node. - -***On the "server" node:*** - -First, start your application and have it listen for TCP connections on -port `$APP_PORT`. - -Then, configure the p2p listener by running: - -```sh -> ipfs p2p listen /x/kickass/1.0 /ip4/127.0.0.1/tcp/$APP_PORT -``` - -This will configure IPFS to forward all incoming `/x/kickass/1.0` streams to -`127.0.0.1:$APP_PORT` (opening a new connection to `127.0.0.1:$APP_PORT` per -incoming stream. - -***On the "client" node:*** - -First, configure the client p2p dialer, so that it forwards all inbound -connections on `127.0.0.1:SOME_PORT` to the server node listening -on `/x/kickass/1.0`. - -```sh -> ipfs p2p forward /x/kickass/1.0 /ip4/127.0.0.1/tcp/$SOME_PORT /ipfs/$SERVER_ID -``` - -Next, have your application open a connection to `127.0.0.1:$SOME_PORT`. This -connection will be forwarded to the service running on `127.0.0.1:$APP_PORT` on -the remote machine. You can test it with netcat: - -***On "server" node:*** -```sh -> nc -v -l -p $APP_PORT -``` - -***On "client" node:*** -```sh -> nc -v 127.0.0.1 $SOME_PORT -``` - -You should now see that a connection has been established and be able to -exchange messages between netcat instances. - -(note that depending on your netcat version you may need to drop the `-v` flag) - -**SSH example** - -**Setup:** - -1. A "server" node with peer ID `$SERVER_ID` and running ssh server on the - default port. -2. A "client" node. - -_you can get `$SERVER_ID` by running `ipfs id -f "\n"`_ - -***First, on the "server" node:*** - -```sh -ipfs p2p listen /x/ssh /ip4/127.0.0.1/tcp/22 -``` - -***Then, on "client" node:*** - -```sh -ipfs p2p forward /x/ssh /ip4/127.0.0.1/tcp/2222 /ipfs/$SERVER_ID -``` - -You should now be able to connect to your ssh server through a libp2p connection -with `ssh [user]@127.0.0.1 -p 2222`. - - -### Road to being a real feature -- [ ] Needs more people to use and report on how well it works / fits use cases -- [ ] More documentation -- [ ] Support other protocols (e.g, unix domain sockets, websockets, etc.) - ---- - -## p2p http proxy - -Allows proxying of HTTP requests over p2p streams. This allows serving any standard http app over p2p streams. - -### State - -Experimental - -### In Version - -master, 0.4.19 - -### How to enable - -The `p2p` command needs to be enabled in config: - -```sh -> ipfs config --json Experimental.Libp2pStreamMounting true -``` - -On the client, the p2p http proxy needs to be enabled in the config: - -```sh -> ipfs config --json Experimental.P2pHttpProxy true -``` - -### How to use - -**Netcat example:** - -First, pick a protocol name for your application. Think of the protocol name as -a port number, just significantly more user-friendly. In this example, we're -going to use `/http`. - -***Setup:*** - -1. A "server" node with peer ID `$SERVER_ID` -2. A "client" node. - -***On the "server" node:*** - -First, start your application and have it listen for TCP connections on -port `$APP_PORT`. - -Then, configure the p2p listener by running: - -```sh -> ipfs p2p listen --allow-custom-protocol /http /ip4/127.0.0.1/tcp/$APP_PORT -``` - -This will configure IPFS to forward all incoming `/http` streams to -`127.0.0.1:$APP_PORT` (opening a new connection to `127.0.0.1:$APP_PORT` per incoming stream. - -***On the "client" node:*** - -Next, have your application make a http request to `127.0.0.1:8080/p2p/$SERVER_ID/http/$FORWARDED_PATH`. This -connection will be forwarded to the service running on `127.0.0.1:$APP_PORT` on -the remote machine (which needs to be a http server!) with path `$FORWARDED_PATH`. You can test it with netcat: - -***On "server" node:*** -```sh -> echo -e "HTTP/1.1 200\nContent-length: 11\n\nIPFS rocks!" | nc -l -p $APP_PORT -``` - -***On "client" node:*** -```sh -> curl http://localhost:8080/p2p/$SERVER_ID/http/ -``` - -You should now see the resulting http response: IPFS rocks! - -### Custom protocol names -We also support use of protocol names of the form /x/$NAME/http where $NAME doesn't contain any "/"'s - -### Road to being a real feature -- [ ] Needs p2p streams to graduate from experiments -- [ ] Needs more people to use and report on how well it works / fits use cases -- [ ] More documentation - ---- - -## Circuit Relay - -Allows peers to connect through an intermediate relay node when there -is no direct connectivity. - -### State -Experimental - -### In Version -master, 0.4.11 - -### How to enable - -The relay transport is enabled by default, which allows peers to dial through -relay and listens for incoming relay connections. The transport can be disabled -by setting `Swarm.DisableRelay = true` in the configuration. - -By default, peers don't act as intermediate nodes (relays). This can be enabled -by setting `Swarm.EnableRelayHop = true` in the configuration. Note that the -option needs to be set before online services are started to have an effect; an -already online node would have to be restarted. - -### Basic Usage: - -In order to connect peers QmA and QmB through a relay node QmRelay: - -- Both peers should connect to the relay: -`ipfs swarm connect /transport/address/ipfs/QmRelay` -- Peer QmA can then connect to peer QmB using the relay: -`ipfs swarm connect /ipfs/QmRelay/p2p-circuit/ipfs/QmB` - -Peers can also connect with an unspecific relay address, which will -try to dial through known relays: -`ipfs swarm connect /p2p-circuit/ipfs/QmB` - -Peers can see their (unspecific) relay address in the output of -`ipfs swarm addrs listen` - -### Road to being a real feature - -- [ ] Needs more people to use it and report on how well it works. -- [ ] Advertise relay addresses to the DHT for NATed or otherwise unreachable - peers. -- [ ] Active relay discovery for specific relay address advertisement. We would - like advertised relay addresses to designate specific relays for efficient - dialing. -- [ ] Dialing priorities for relay addresses; arguably, relay addresses should - have lower priority than direct dials. - -## Plugins - -### In Version -0.4.11 - -### State -Experimental - -Plugins allow to add functionality without the need to recompile the daemon. - -### Basic Usage: - -See [Plugin docs](./plugins.md) - -### Road to being a real feature - -- [ ] Better support for platforms other than Linux -- [ ] More plugins and plugin types -- [ ] Feedback on stability - - ## Badger datastore - - ### In Version - 0.4.11 - - Badger-ds is new datastore implementation based on - https://github.com/dgraph-io/badger - - ### Basic Usage - - ``` - $ ipfs init --profile=badgerds - ``` - or - ``` - [BACKUP ~/.ipfs] - $ ipfs config profile apply badgerds - $ ipfs-ds-convert convert - ``` - -### - -### Road to being a real feature - -- [ ] Needs more testing -- [ ] Make sure there are no unknown major problems - -## Directory Sharding / HAMT - -### In Version -0.4.8 - -### State -Experimental - -Allows to create directories with unlimited number of entries - currently -size of unixfs directories is limited by the maximum block size - -### Basic Usage: - -``` -ipfs config --json Experimental.ShardingEnabled true -``` - -### Road to being a real feature - -- [ ] Make sure that objects that don't have to be sharded aren't -- [ ] Generalize sharding and define a new layer between IPLD and IPFS - ---- - -## IPNS pubsub - -### In Version - -0.4.14 - -### State - -Experimental, default-disabled. - -Utilizes pubsub for publishing ipns records in real time. - -When it is enabled: -- IPNS publishers push records to a name-specific pubsub topic, - in addition to publishing to the DHT. -- IPNS resolvers subscribe to the name-specific topic on first - resolution and receive subsequently published records through pubsub - in real time. This makes subsequent resolutions instant, as they - are resolved through the local cache. Note that the initial - resolution still goes through the DHT, as there is no message - history in pubsub. - -Both the publisher and the resolver nodes need to have the feature enabled for it -to work effectively. - -### How to enable - -run your daemon with the `--enable-namesys-pubsub` flag; enables pubsub. - -### Road to being a real feature - -- [ ] Needs more people to use and report on how well it works -- [ ] Add a mechanism for last record distribution on subscription, - so that we don't have to hit the DHT for the initial resolution. - Alternatively, we could republish the last record periodically. - - - -## QUIC - -### In Version - -0.4.18 - -### State - -Experiment, disabled by default - -### How to enable - -Modify your ipfs config: - -``` -ipfs config --json Experimental.QUIC true -``` - -For listening on a QUIC address, add it the swarm addresses, e.g. `/ip4/0.0.0.0/udp/4001/quic`. - - -### Road to being a real feature - -- [ ] The IETF QUIC specification needs to be finalised. -- [ ] Make sure QUIC connections work reliably -- [ ] Make sure QUIC connection offer equal or better performance than TCP connections on real world networks -- [ ] Finalize libp2p-TLS handshake spec. - - -## AutoRelay - -### In Version - -0.4.19-dev - -### State - -Experimental, disabled by default. - -Automatically discovers relays and advertises relay addresses when the node is behind an impenetrable NAT. - -### How to enable - -Modify your ipfs config: - -``` -ipfs config --json Swarm.EnableAutoRelay true -``` - -Bootstrappers (and other public nodes) need to also enable the AutoNATService: -``` -ipfs config --json Swarm.EnableAutoNATService true -``` - -### Road to being a real feature - -- [ ] needs testing diff --git a/vendor/github.com/ipfs/go-ipfs/docs/file-transfer.md b/vendor/github.com/ipfs/go-ipfs/docs/file-transfer.md deleted file mode 100644 index 39cc6380..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/file-transfer.md +++ /dev/null @@ -1,116 +0,0 @@ -# Transferring a file with ipfs -This document is a guide to help troubleshoot transferring a file between two -machines using ipfs. - -## A file transfer -To start, make sure that ipfs is running on both machines. To verify, run `ipfs -id` on each machine and check if the `Addresses` field has anything in it. If -it says `null`, then your node is not online and you will need to run `ipfs -daemon`. - -Now, lets call the node with the file you want to transfer node 'A' and the -node you want to get the file to node 'B'. On node A, add the file to ipfs -using the `ipfs add` command. This will print out the multihash of the content -you added. Now, on node B, you can fetch the content using `ipfs get `. - -``` -# On A -> ipfs add myfile.txt -added QmZJ1xT1T9KYkHhgRhbv8D7mYrbemaXwYUkg7CeHdrk1Ye myfile.txt - -# On B -> ipfs get QmZJ1xT1T9KYkHhgRhbv8D7mYrbemaXwYUkg7CeHdrk1Ye -Saving file(s) to QmZJ1xT1T9KYkHhgRhbv8D7mYrbemaXwYUkg7CeHdrk1Ye - 13 B / 13 B [=====================================================] 100.00% 1s - ``` - -If that worked, and downloaded the file, then congratulations! You just used -ipfs to move files across the internet! But, if that `ipfs get` command is -hanging, with no output, read onwards. - -## Troubleshooting - -So your ipfs file transfer appears to not be working. The primary reason this -happens is because node B cannot figure out how to connect to node A, or node B -doesn't even know it has to connect to node A. - -### Checking for existing connections - -The first thing to do is to double check that both nodes are in fact running -and online. To do this, run `ipfs id` on each machine. If both nodes show some -addresses (like the example below), then your nodes are online. - -```json -{ - "ID": "QmTNwsFkLAed15kQEC1ZJWPfoNbBQnMFojfJKQ9sZj1dk8", - "PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZb6znj3LQZKP1+X81exf+vbnqNCMtHjZ5RKTCm7Fytnfe+AI1fhs9YbZdkgFkM1HLxmIOLQj2bMXPIGxUM+EnewN8tWurx4B3+lR/LWNwNYcCFL+jF2ltc6SE6BC8kMLEZd4zidOLPZ8lIRpd0x3qmsjhGefuRwrKeKlR4tQ3C76ziOms47uLdiVVkl5LyJ5+mn4rXOjNKt/oy2O4m1St7X7/yNt8qQgYsPfe/hCOywxCEIHEkqmil+vn7bu4RpAtsUzCcBDoLUIWuU3i6qfytD05hP8Clo+at+l//ctjMxylf3IQ5qyP+yfvazk+WHcsB0tWueEmiU5P2nfUUIR3AgMBAAE=", - "Addresses": [ - "/ip4/127.0.0.1/tcp/4001/ipfs/QmTNwsFkLAed15kQEC1ZJWPfoNbBQnMFojfJKQ9sZj1dk8", - "/ip4/192.168.2.131/tcp/4001/ipfs/QmTNwsFkLAed15kQEC1ZJWPfoNbBQnMFojfJKQ9sZj1dk8", - ], - "AgentVersion": "go-ipfs/0.4.11-dev/", - "ProtocolVersion": "ipfs/0.1.0" -} -``` - -Next, check to see if the nodes have a connection to each other. You can do this -by running `ipfs swarm peers` on one node, and checking for the other nodes -peer ID in the output. If the two nodes *are* connected, and the `ipfs get` -command is still hanging, then something unexpected is going on, and I -recommend filing an issue about it. If they are not connected, then let's try -and debug why. (Note: you can skip to 'Manually connecting node A to node B' if -you just want things to work. Going through the debugging process and reporting -what happened to the ipfs team on IRC is helpful to us to understand common -pitfalls that people run into) - -### Checking providers -When requesting content on ipfs, nodes search the DHT for 'provider records' to -see who has what content. Let's manually do that on node B to make sure that -node B is able to determine that node A has the data. Run `ipfs dht findprovs -`. We expect to see the peer ID of node A printed out. If this command -returns nothing (or returns IDs that are not node A), then no record of A -having the data exists on the network. This can happen if the data is added -while node A does not have a daemon running. If this happens, you can run `ipfs -dht provide ` on node A to announce to the network that you have that -hash. Then if you restart the `ipfs get` command, node B should now be able -to tell that node A has the content it wants. If node A's peer ID showed up in -the initial `findprovs` call, or manually providing the hash didn't resolve the -problem, then it's likely that node B is unable to make a connection to node A. - -### Checking addresses - -In the case where node B simply cannot form a connection to node A, despite -knowing that it needs to, the likely culprit is a bad NAT. When node B learns -that it needs to connect to node A, it checks the DHT for addresses for node A, -and then starts trying to connect to them. We can check those addresses by -running `ipfs dht findpeer ` on node B. This command should -return a list of addresses for node A. If it doesn't return any addresses, then -you should try running the manual providing command from the previous steps. -Example output of addresses might look something like this: - -``` -/ip4/127.0.0.1/tcp/4001 -/ip4/192.168.2.133/tcp/4001 -/ip4/88.157.217.196/tcp/63674 -``` - -In this case, we can see a localhost (127.0.0.1) address, a LAN address (the -192.168.*.* one) and another address. If this third address matches your -external IP, then the network knows a valid external address for your node. At -this point, its safe to assume that your node has a difficult to traverse NAT -situation. If this is the case, you can try to enable UPnP or NAT-PMP on the -router of node A and retry the process. Otherwise, you can try manually -connecting node A to node B. - -### Manually connecting node A to B - -On node B run `ipfs id` and take one of the multiaddrs that contains its public -ip address, and then on node A run `ipfs swarm connect `. You can -also try using a relayed connection, for more information [read this -doc](./experimental-features.md#circuit-relay). If that *still* doesn't work, -then you should either join IRC and ask for help there, or file an issue on -github. - -If this manual step *did* work, then you likely have an issue with NAT -traversal, and ipfs cannot figure out how to make it through. Please report -situations like this to us so we can work on fixing them. diff --git a/vendor/github.com/ipfs/go-ipfs/docs/fuse.md b/vendor/github.com/ipfs/go-ipfs/docs/fuse.md deleted file mode 100644 index 683efb51..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/fuse.md +++ /dev/null @@ -1,134 +0,0 @@ -# FUSE - -`go-ipfs` makes it possible to mount `/ipfs` and `/ipns` namespaces in your OS, -allowing arbitrary apps access to IPFS. - -## Install FUSE - -You will need to install and configure fuse before you can mount IPFS - -#### Linux - -Note: while this guide should work for most distributions, you may need to refer -to your distribution manual to get things working. - -Install `fuse` with your favorite package manager: -``` -sudo apt-get install fuse -``` - -Add the user which will be running IPFS daemon to the `fuse` group: -```sh -sudo usermod -a -G fuse -``` - -Restart user session, if active, for the change to apply, either by restarting -ssh connection or by re-logging to the system. - -#### Mac OSX -- OSXFUSE - -It has been discovered that versions of `osxfuse` prior to `2.7.0` will cause a -kernel panic. For everyone's sake, please upgrade (latest at time of writing is -`2.7.4`). The installer can be found at https://osxfuse.github.io/. There is -also a homebrew formula (`brew install osxfuse`) but users report best results -installing from the official OSXFUSE installer package. - -Note that `ipfs` attempts an automatic version check on `osxfuse` to prevent you -from shooting yourself in the foot if you have pre `2.7.0`. Since checking the -OSXFUSE version [is more complicated than it should be], running `ipfs mount` -may require you to install another binary: - -```sh -go get github.com/jbenet/go-fuse-version/fuse-version -``` - -If you run into any problems installing FUSE or mounting IPFS, hop on IRC and -speak with us, or if you figure something new out, please add to this document! - -## Prepare mountpoints - -By default ipfs uses `/ipfs` and `/ipns` directories for mounting, this can be -changed in config. You will have to create the `/ipfs` and `/ipns` directories -explicitly. Note that modifying root requires sudo permissions. - -```sh -# make the directories -sudo mkdir /ipfs -sudo mkdir /ipns - -# chown them so ipfs can use them without root permissions -sudo chown /ipfs -sudo chown /ipns -``` - -Depending on whether you are using OSX or Linux, follow the proceeding instructions. - -## Mounting IPFS - -```sh -ipfs daemon --mount -``` - -If you wish to allow other users to use the mount points, edit `/etc/fuse.conf` -to enable non-root users, i.e.: -```sh -# /etc/fuse.conf - Configuration file for Filesystem in Userspace (FUSE) - -# Set the maximum number of FUSE mounts allowed to non-root users. -# The default is 1000. -#mount_max = 1000 - -# Allow non-root users to specify the allow_other or allow_root mount options. -user_allow_other -``` - -Next set `Mounts.FuseAllowOther` config option to `true`: -```sh -ipfs config --json Mounts.FuseAllowOther true -ipfs daemon --mount -``` - -## Troubleshooting - -#### `Permission denied` or `fusermount: user has no write access to mountpoint` error in Linux - -Verify that the config file can be read by your user: -```sh -sudo ls -l /etc/fuse.conf --rw-r----- 1 root fuse 216 Jan 2 2013 /etc/fuse.conf -``` -In most distributions, the group named `fuse` will be created during fuse -installation. You can check this with: - -```sh -sudo grep -q fuse /etc/group && echo fuse_group_present || echo fuse_group_missing -``` - -If the group is present, just add your regular user to the `fuse` group: -```sh -sudo usermod -G fuse -a -``` - -If the group didn't exist, create `fuse` group (add your regular user to it) and -set necessary permissions, for example: -```sh -sudo chgrp fuse /etc/fuse.conf -sudo chmod g+r /etc/fuse.conf -``` - - -Note that the use of `fuse` group is optional and may depend on your operating -system. It is okay to use a different group as long as proper permissions are -set for user running `ipfs mount` command. - -#### Mount command crashes and mountpoint gets stuck - -``` -sudo umount /ipfs -sudo umount /ipns -``` - -If you manage to mount on other systems (or followed an alternative path to one -above), please contribute to these docs :D diff --git a/vendor/github.com/ipfs/go-ipfs/docs/gateway.md b/vendor/github.com/ipfs/go-ipfs/docs/gateway.md deleted file mode 100644 index f1593f6f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/gateway.md +++ /dev/null @@ -1,59 +0,0 @@ -# Gateway - -An IPFS Gateway acts as a bridge between traditional web browsers and IPFS. -Through the gateway, users can browse files and websites stored in IPFS as if -they were stored in a traditional web server. - -By default, go-ipfs nodes run a gateway at `http://127.0.0.1:8080/`. - -We also provide a public gateway at `https://ipfs.io`. If you've ever seen a -link in the form `https://ipfs.io/ipfs/Qm...`, that's being served from *our* -gateway. - -## Configuration - -The gateway's configuration options are (briefly) described in the -[config](https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#gateway) -documentation. - -## Directories - -For convenience, the gateway (mostly) acts like a normal web-server when serving -a directory: - -1. If the directory contains an `index.html` file: - 1. If the path does not end in a `/`, append a `/` and redirect. This helps - avoid serving duplicate content from different paths. - 2. Otherwise, serve the `index.html` file. -2. Dynamically build and serve a listing of the contents of the directory. - -This redirect is skipped if the query string contains a -`go-get=1` parameter. See [PR#3964](https://github.com/ipfs/go-ipfs/pull/3963) -for details - -## Filenames - -When downloading files, browsers will usually guess a file's filename by looking -at the last component of the path. Unfortunately, when linking *directly* to a -file (with no containing directory), the final component is just a CID -(`Qm...`). This isn't exactly user-friendly. - -To work around this issue, you can add a `filename=some_filename` parameter to -your query string to explicitly specify the filename. For example: - -> https://ipfs.io/ipfs/QmfM2r8seH2GiRaC4esTjeraXEachRt8ZsSeGaWTPLyMoG?filename=hello_world.txt - -## MIME-Types - -TODO - -## Read-Only API - -For convenience, the gateway exposes a read-only API. This read-only API exposes -a read-only, "safe" subset of the normal API. - -For example, you use this to download a block: - -``` -> curl https://ipfs.io/api/v0/block/get/zb2rhi36Gc9GJWijLEL6zW45MBux5FcFv5gJmjXA7VAMozEXY -``` diff --git a/vendor/github.com/ipfs/go-ipfs/docs/implement-api-bindings.md b/vendor/github.com/ipfs/go-ipfs/docs/implement-api-bindings.md deleted file mode 100644 index 364f3265..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/implement-api-bindings.md +++ /dev/null @@ -1,205 +0,0 @@ -# IPFS API Implementation Doc - -This short document aims to give a quick guide to anyone implementing API -bindings for IPFS implementations-- in particular go-ipfs. - -Sections: -- IPFS Types -- API Transports -- API Commands -- Implementing bindings for the HTTP API - -## IPFS Types - -IPFS uses a set of value type that is useful to enumerate up front: - -- `` is unix-style path, beginning with `/ipfs//...` or - `/ipns//...` or `/ipns//...`. -- `` is a base58 encoded [multihash](https://github.com/multiformats/multihash) -- `cid` is a [multibase](https://github.com/multiformats/multibase) encoded - [CID](https://github.com/ipld/cid) - a self-describing content-addressing identifier - -A note on streams: IPFS is a streaming protocol. Everything about it can be -streamed. When importing files, API requests should aim to stream the data in, -and handle back-pressure correctly, so that the IPFS node can handle it -sequentially without too much memory pressure. (If using HTTP, this is typically -handled for you by writes to the request body blocking.) - -## API Transports - -Like with everything else, IPFS aims to be flexible regarding the API transports. -Currently, the [go-ipfs](https://github.com/ipfs/go-ipfs) implementation supports -both an in-process API and an HTTP API. More can be added easily, by mapping the -API functions over a transport. (This is similar to how gRPC is also _mapped on -top of transports_, like HTTP). - -Mapping to a transport involves leveraging the transport's features to express -function calls. For example: - -#### CLI API Transport - -In the commandline, IPFS uses a traditional flag and arg-based mapping, where: -- the first arguments selects the command, as in git - e.g. `ipfs object get` -- the flags specify options - e.g. `--enc=protobuf -q` -- the rest are positional arguments - e.g. - `ipfs object patch add-linkfoo ` -- files are specified by filename, or through stdin - -(NOTE: When go-ipfs runs the daemon, the CLI API is actually converted to HTTP -calls. otherwise, they execute in the same process) - -#### HTTP API Transport - -In HTTP, our API layering uses a REST-like mapping, where: -- the URL path selects the command - e.g `/object/get` -- the URL query string implements option arguments - e.g. `&enc=protobuf&q=true` -- the URL query also implements positional arguments - e.g. - `&arg=&arg=add-link&arg=foo&arg=` -- the request body streams file data - reads files or stdin - - multiple streams are muxed with multipart (todo: add tar stream support) - - -## API Commands - -There is a "standard IPFS API" which is currently defined as "all the commands -exposed by the go-ipfs implementation". There are auto-generated [API Docs](https://ipfs.io/docs/api/). -You can Also see [a listing here](https://git.io/v5KG1), or get a list of -commands by running `ipfs commands` locally. - -## Implementing bindings for the HTTP API - -As mentioned above, the API commands map to HTTP with: -- the URL path selects the command - e.g `/object/get` -- the URL query string implements option arguments - e.g. `&enc=protobuf&q=true` -- the URL query also implements positional arguments - e.g. - `&arg=&arg=add-link&arg=foo&arg=` -- the request body streams file data - reads files or stdin - - multiple streams are muxed with multipart (todo: add tar stream support) - -To date, we have two different HTTP API clients: - -- [js-ipfs-api](https://github.com/ipfs/js-ipfs-api) - simple javascript - wrapper -- best to look at -- [go-ipfs/commands/http](https://git.io/v5KnB) - - generalized transport based on the [command definitions](https://git.io/v5KnE) - -The Go implementation is good to answer harder questions, like how is multipart -handled, or what headers should be set in edge conditions. But the javascript -implementation is very concise, and easy to follow. - -#### Anatomy of node-ipfs-api - -Currently, node-ipfs-api has three main files -- [src/index.js](https://git.io/v5Kn2) defines the functions clients of the API - module will use. uses `RequestAPI`, and translates function call parameters to - the API almost directly. -- [src/get-files-stream.js](https://git.io/v5Knr) implements the hardest part: - file streaming. This one uses multipart. -- [src/request-api.js](https://git.io/v5KnP) generic function call to perform - the actual HTTP requests - -## Note on multipart + inspecting requests - -Despite all the generalization spoken about above, the IPFS API is actually very -simple. You can inspect all the requests made with `nc` and the `--api` option -(as of [this PR](https://github.com/ipfs/go-ipfs/pull/1598), or `0.3.8`): - -``` -> nc -l 5002 & -> ipfs --api /ip4/127.0.0.1/tcp/5002 swarm addrs local --enc=json -POST /api/v0/version?enc=json&stream-channels=true HTTP/1.1 -Host: 127.0.0.1:5002 -User-Agent: /go-ipfs/0.3.8/ -Content-Length: 0 -Content-Type: application/octet-stream -Accept-Encoding: gzip - - -``` - -The only hard part is getting the file streaming right. It is (now) fairly easy -to stream files to go-ipfs using multipart. Basically, we end up with HTTP -requests like this: - -``` -> nc -l 5002 & -> ipfs --api /ip4/127.0.0.1/tcp/5002 add -r ~/demo/basic/test -POST /api/v0/add?encoding=json&progress=true&r=true&stream-channels=true HTTP/1.1 -Host: 127.0.0.1:5002 -User-Agent: /go-ipfs/0.3.8/ -Transfer-Encoding: chunked -Content-Disposition: form-data: name="files" -Content-Type: multipart/form-data; boundary=2186ef15d8f2c4f100af72d6d345afe36a4d17ef11264ec5b8ec4436447f -Accept-Encoding: gzip - -1 -- -e5 --2186ef15d8f2c4f100af72d6d345afe36a4d17ef11264ec5b8ec4436447f -Content-Disposition: form-data; name="file"; filename="test" -Content-Type: multipart/mixed; boundary=acdb172fe12f25e8ffae9981ce6f4580abdefb0cae3ceebe464d802866be - - -9c ---acdb172fe12f25e8ffae9981ce6f4580abdefb0cae3ceebe464d802866be -Content-Disposition: file; filename="test%2Fbar" -Content-Type: application/octet-stream - - -4 -bar - -dc - ---acdb172fe12f25e8ffae9981ce6f4580abdefb0cae3ceebe464d802866be -Content-Disposition: file; filename="test%2Fbaz" -Content-Type: multipart/mixed; boundary=2799ac77a72ef7b8a0281945806b9f9a28f7681145aa8e91b052d599b2dd - - -a0 ---2799ac77a72ef7b8a0281945806b9f9a28f7681145aa8e91b052d599b2dd -Content-Type: application/octet-stream -Content-Disposition: file; filename="test%2Fbaz%2Fb" - - -4 -bar - -a2 - ---2799ac77a72ef7b8a0281945806b9f9a28f7681145aa8e91b052d599b2dd -Content-Disposition: file; filename="test%2Fbaz%2Ff" -Content-Type: application/octet-stream - - -4 -foo - -44 - ---2799ac77a72ef7b8a0281945806b9f9a28f7681145aa8e91b052d599b2dd-- - -9e - ---acdb172fe12f25e8ffae9981ce6f4580abdefb0cae3ceebe464d802866be -Content-Disposition: file; filename="test%2Ffoo" -Content-Type: application/octet-stream - - -4 -foo - -44 - ---acdb172fe12f25e8ffae9981ce6f4580abdefb0cae3ceebe464d802866be-- - -44 - ---2186ef15d8f2c4f100af72d6d345afe36a4d17ef11264ec5b8ec4436447f-- - -0 - -``` - -Which produces: http://gateway.ipfs.io/ipfs/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv - diff --git a/vendor/github.com/ipfs/go-ipfs/docs/openbsd.md b/vendor/github.com/ipfs/go-ipfs/docs/openbsd.md deleted file mode 100644 index 68606100..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/openbsd.md +++ /dev/null @@ -1,37 +0,0 @@ -# Building on OpenBSD - -## Prepare your system - -Make sure you have `git`, `go` and `gmake` installed on your system. - -``` -$ doas pkg_add -v git go gmake -``` - -## Prepare go environment - -Make sure your gopath is set: - -``` -$ export GOPATH=~/go -$ echo "$GOPATH" -$ export PATH="$PATH:$GOPATH/bin" -``` - -## Build - -The `install_unsupported` target works nicely for openbsd. This will install -`gx`, `gx-go` and run `go install -tags nofuse ./cmd/ipfs`. - -``` -$ go get -v -u -d github.com/ipfs/go-ipfs - -$ cd $GOPATH/src/github.com/ipfs/go-ipfs -$ gmake install_unsupported -``` - -if everything went well, your ipfs binary should be ready at `$GOPATH/bin/ipfs`. - -``` -$ ipfs version -``` diff --git a/vendor/github.com/ipfs/go-ipfs/docs/plugins.md b/vendor/github.com/ipfs/go-ipfs/docs/plugins.md deleted file mode 100644 index a40201d1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/plugins.md +++ /dev/null @@ -1,132 +0,0 @@ -# Plugins - -Since 0.4.11 go-ipfs has an experimental plugin system that allows augmenting -the daemons functionality without recompiling. - -When an IPFS node is started, it will load plugins from the `$IPFS_PATH/plugins` -directory (by default `~/.ipfs/plugins`). - -**Table of Contents** - -- [Plugin Types](#plugin-types) - - [IPLD](#ipld) - - [Datastore](#datastore) -- [Available Plugins](#available-plugins) -- [Installing Plugins](#installing-plugins) - - [External Plugin](#external-plugin) - - [In-tree](#in-tree) - - [Out-of-tree](#out-of-tree) - - [Preloaded Plugins](#preloaded-plugins) -- [Creating A Plugin](#creating-a-plugin) - -## Plugin Types - -### IPLD - -IPLD plugins add support for additional formats to `ipfs dag` and other IPLD -related commands. - -### Datastore - -Datastore plugins add support for additional datastore backends. - -### Tracer - -(experimental) - -Tracer plugins allow injecting an opentracing backend into go-ipfs. - -### Daemon - -Daemon plugins are started when the go-ipfs daemon is started and are given an -instance of the CoreAPI. This should make it possible to build an ipfs-based -application without IPC and without forking go-ipfs. - -Note: We eventually plan to make go-ipfs usable as a library. However, this -plugin type is likely the best interim solution. - -## Available Plugins - -| Name | Type | Preloaded | Description | -|---------------------------------------------------------------------------------|-----------|-----------|------------------------------------------------| -| [git](https://github.com/ipfs/go-ipfs/tree/master/plugin/plugins/git) | IPLD | x | An IPLD format for git objects. | -| [badgerds](https://github.com/ipfs/go-ipfs/tree/master/plugin/plugins/badgerds) | Datastore | x | A high performance but experimental datastore. | -| [flatfs](https://github.com/ipfs/go-ipfs/tree/master/plugin/plugins/flatfs) | Datastore | x | A stable filesystem-based datastore. | -| [levelds](https://github.com/ipfs/go-ipfs/tree/master/plugin/plugins/levelds) | Datastore | x | A stable, flexible datastore backend. | -| [jaeger](https://github.com/ipfs/go-jaeger-plugin) | Tracing | | An opentracing backend. | - -* **Preloaded** plugins are built into the go-ipfs binary and do not need to be - installed separately. At the moment, all in-tree plugins are preloaded. - -## Installing Plugins - -Go-ipfs supports two types of plugins: External and Preloaded. - -* External plugins must be installed in `$IPFS_PATH/plugins/` (usually -`~/.ipfs/plugins/`). -* Preloaded plugins are built-into the go-ipfs when it's compiled. - -### External Plugin - -The advantage of an external plugin is that it can be built, packaged, and -installed independently of go-ipfs. Unfortunately, this method is only supported -on Linux and MacOS at the moment. Users of other operating systems should follow -the instructions for preloaded plugins. - -#### In-tree - -To build plugins included in -[plugin/plugins](https://github.com/ipfs/go-ipfs/tree/master/plugin/plugins), -run: - -```bash -go-ipfs$ make build_plugins -go-ipfs$ ls plugin/plugins/*.so -``` - -To install, copy desired plugins to `$IPFS_PATH/plugins`. For example: - -```bash -go-ipfs$ mkdir -p ~/.ipfs/plugins/ -go-ipfs$ cp plugin/plugins/git.so ~/.ipfs/plugins/ -go-ipfs$ chmod +x ~/.ipfs/plugins/git.so # ensure plugin is executable -``` - -Finally, restart daemon if it is running. - -#### Out-of-tree - -To build out-of-tree plugins, use the plugin's Makefile if provided. Otherwise, -you can manually build the plugin by running: - -```bash -myplugin$ go build -buildmode=plugin -i -o myplugin.so myplugin.go -``` - -Finally, as with in-tree plugins: - -1. Install the plugin in `$IPFS_PATH/plugins`. -2. Mark the plugin as executable (`chmod +x $IPFS_PATH/plugins/myplugin.so`). -3. Restart your IPFS daemon (if running). - -### Preloaded Plugins - -The advantages of preloaded plugins are: - -1. They're bundled with the go-ipfs binary. -2. They work on all platforms. - -To preload a go-ipfs plugin: - -1. Add the plugin to the preload list: `plugin/loader/preload_list` -2. Build ipfs -```bash -go-ipfs$ make build -``` - -## Creating A Plugin - -To create your own out-of-tree plugin, use the [example -plugin](https://github.com/ipfs/go-ipfs-example-plugin/) as a starting point. -When you're ready, submit a PR adding it to the list of [available -plugins](#available-plugins). diff --git a/vendor/github.com/ipfs/go-ipfs/docs/releases.md b/vendor/github.com/ipfs/go-ipfs/docs/releases.md deleted file mode 100644 index 60d059b8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/releases.md +++ /dev/null @@ -1,42 +0,0 @@ -# go-ipfs releases - -## Release Schedule -go-ipfs is on a six week release schedule. Following a release, there will be -five weeks for code of any type (features, bugfixes, etc) to be added. After -the five weeks is up, a release candidate is tagged and only important bugfixes -will be allowed up to release day. - -## Release Candidate Checklist -- [ ] CHANGELOG.md has been updated - - use `./bin/mkreleaselog` to generate a nice starter list -- [ ] version string in `version.go` has been updated -- [ ] tag commit with vX.Y.Z-rcN -- [ ] publish gx version with `gx publish`, as per [gx release guidelines](https://github.com/whyrusleeping/gx#publishing-and-releasing) - - you will have to manually adjust the gx version to 'rc' - -## Pre-Release Checklist -- [ ] before release, tag 'release candidate' for users to test against - - if bugs are found/fixed, do another release candidate -- [ ] all tests pass (no exceptions) -- [ ] run interop tests https://github.com/ipfs/interop#test-with-a-non-yet-released-version-of-go-ipfs -- [ ] webui works (for most definitions of 'works') - Test the multiple pages and verify that no visible errors are shown. -- [ ] CHANGELOG.md has been updated - - use `./bin/mkreleaselog` to generate a nice starter list -- [ ] version string in `repo/version.go` has been updated -- [ ] publish gx version with `gx release`, as per [gx release guidelines](https://github.com/whyrusleeping/gx#publishing-and-releasing) -- [ ] tag commit with vX.Y.Z -- [ ] update release branch to point to release commit (`git merge vX.Y.Z`). -- [ ] publish dist.ipfs.io -- [ ] publish next version to https://github.com/ipfs/npm-go-ipfs - -## Post-Release -- [ ] Bump version string in `repo/version.go` to `vX.Y.Z-dev` -- [ ] Upload the final release to the github releases page: https://github.com/ipfs/go-ipfs/releases -- Communication - - [ ] Create the release issue - - [ ] Announcements (both pre-release and post-release) - - [ ] Twitter - - [ ] IRC - - [ ] Reddit - - [ ] Blog post (at minimum, paste the changelog. optionally add context and thank contributors.) -- [ ] Update HTTP-API Documentation on the Website using https://github.com/ipfs/http-api-docs diff --git a/vendor/github.com/ipfs/go-ipfs/docs/transports.md b/vendor/github.com/ipfs/go-ipfs/docs/transports.md deleted file mode 100644 index 39ce127d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/transports.md +++ /dev/null @@ -1,12 +0,0 @@ -## /ws and /wss -- websockets - -If you want browsers to connect to e.g. `/dns4/example.com/tcp/443/wss/ipfs/QmFoo` - -- [ ] An SSL cert matching the `/dns4` or `/dns6` name -- [ ] go-ipfs listening on `/ip4/127.0.0.1/tcp/8081/ws` - - 8081 is just an example - - note that it's `/ws` here, not `/wss` -- go-ipfs can't currently do SSL, see the next point -- [ ] nginx - - configured with the SSL cert - - listening on port 443 - - forwarding to 127.0.0.1:8081 diff --git a/vendor/github.com/ipfs/go-ipfs/docs/windows.md b/vendor/github.com/ipfs/go-ipfs/docs/windows.md deleted file mode 100644 index 2687805e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/docs/windows.md +++ /dev/null @@ -1,147 +0,0 @@ -# Building on Windows -![](https://ipfs.io/ipfs/QmccXW7JSZMVXidSc7tHsU6aktuaiV923q4yBGHUsdymYo/build.gif) - -## Install Go -`go-ipfs` is built on Golang and thus depends on it for all building methods. -https://golang.org/doc/install -The `GOPATH` environment variable must be set as well. -https://golang.org/doc/code.html#GOPATH - -## Choose the way you want to proceed -`go-ipfs` utilizes `make` to automate builds and run tests, but can be built without it using only `git` and `go`. -No matter which method you choose, if you encounter issues, please see the [Troubleshooting](#troubleshooting) section. - -**Using `make`:** -MSYS2 and Cygwin provide the Unix tools we need to build `go-ipfs`. You may use either, but if you don't already have one installed, we recommend MSYS2. -[MSYS2→](#msys2) -[Cygwin→](#cygwin) - -**Using build tools manually:** -This section assumes you have a working version of `go` and `git` already setup. You may want to build this way if your environment restricts installing additional software, or if you're integrating IPFS into your own build system. -[Minimal→](#minimal) - -## MSYS2 -1. Install msys2 (http://www.msys2.org) -2. Run the following inside a normal `cmd` prompt (Not the MSYS2 prompt, we only need MSYS2's tools). -An explanation of this block is below. -``` -SET PATH=%PATH%;\msys64\usr\bin -pacman --noconfirm -S git make unzip -go get -u github.com/ipfs/go-ipfs -cd %GOPATH%\src\github.com\ipfs\go-ipfs -make install -%GOPATH%\bin\ipfs.exe version --all -``` - -If there were no errors, the final command should output version information similar to "`ipfs version 0.4.14-dev-XXXXXXX`" where "XXXXXXX" should match the current short-hash of the `go-ipfs` repo. You can retrieve said hash via this command: `git rev-parse --short HEAD`. -If `ipfs.exe` executes and the version string matches, then building was successful. - -|Command|Explanation| -| ---: | :--- | -|`SET PATH=%PATH%;\msys64\usr\bin` |Add msys2's tools to our [`PATH`](https://ss64.com/nt/path.html); Defaults to: (\msys64\usr\bin)| -|`pacman --noconfirm -S git make unzip` |Install `go-ipfs` build dependencies| -|`go get -u github.com/ipfs/go-ipfs` |Fetch / Update `go-ipfs` source| -|`cd %GOPATH%\src\github.com\ipfs\go-ipfs` |Change to `go-ipfs` source directory| -|`make install` |Build and install to `%GOPATH%\bin\ipfs.exe`| -|`%GOPATH%\bin\ipfs.exe version --all` |Test the built binary| - -To build again after making changes to the source, run: -``` -SET PATH=%PATH%;\msys64\usr\bin -cd %GOPATH%\src\github.com\ipfs\go-ipfs -make install -``` - -**Tip:** To avoid setting `PATH` every time (`SET PATH=%PATH%;\msys64\usr\bin`), you can lock it in permanently using `setx` after it's been set once: -``` -SETX PATH %PATH% -``` - -## Cygwin -1. Install Cygwin (https://www.cygwin.com) -2. During the install, select the following packages. (If you already have Cygwin installed, run the setup file again to install additional packages.) A fresh install should look something like [this reference image](https://ipfs.io/ipfs/QmaYFSQa4iHDafcebiKjm1WwuKhosoXr45HPpfaeMbCRpb/cygwin%20-%20install.png). - - devel packages - - `git` - - `make` - - archive packages - - `unzip` - - net packages - - `curl` -3. Run the following inside a normal `cmd` prompt (Not the Cygwin prompt, we only need Cygwin's tools) -An explanation of this block is below. -``` -SET PATH=%PATH%;\cygwin64\bin -mkdir %GOPATH%\src\github.com\ipfs -cd %GOPATH%\src\github.com\ipfs -git clone https://github.com/ipfs/go-ipfs.git -cd %GOPATH%\src\github.com\ipfs\go-ipfs -make install -%GOPATH%\bin\ipfs.exe version --all -``` - -If there were no errors, the final command should output version information similar to "`ipfs version 0.4.14-dev-XXXXXXX`" where "XXXXXXX" should match the current short-hash of the `go-ipfs` repo. You can retrieve said hash via this command: `git rev-parse --short HEAD`. -If `ipfs.exe` executes and the version string matches, then building was successful. - -|Command|Explanation| -| ---: | :--- | -|`SET PATH=%PATH%;\cygwin64\bin` |Add Cygwin's tools to our [`PATH`](https://ss64.com/nt/path.html); Defaults to: (\cygwin64\bin)| -|`mkdir %GOPATH%\src\github.com\ipfs`
`cd %GOPATH%\src\github.com\ipfs`
`git clone https://github.com/ipfs/go-ipfs.git` |Fetch / Update `go-ipfs` source| -|`cd %GOPATH%\src\github.com\ipfs\go-ipfs` |Change to `go-ipfs` source directory| -|`make install` |Build and install to `%GOPATH%\bin\ipfs.exe`| -|`%GOPATH%\bin\ipfs.exe version --all` |Test the built binary| - -To build again after making changes to the source, run: -``` -SET PATH=%PATH%;\cygwin64\bin -cd %GOPATH%\src\github.com\ipfs\go-ipfs -make install -``` - -**Tip:** To avoid setting `PATH` every time (`SET PATH=%PATH%;\cygwin64\bin`), you can lock it in permanently using `setx` after it's been set once: -``` -SETX PATH %PATH% -``` - -## Minimal -While it's possible to build `go-ipfs` with `go` alone, we'll be using `git` and `gx` for practical source management. -You can use whichever version of `git` you wish but we recommend the Windows builds at . `git` must be in your [`PATH`](https://ss64.com/nt/path.html) for `go get` to recognize and use it. - -### `gx` -You may install prebuilt binaries for [`gx`](https://dist.ipfs.io/#gx) & [`gx-go`](https://dist.ipfs.io/#gx-go) if they're available for your platform. -Alternatively, you can build them from source and install them to `%GOPATH%\bin` by running the following: - -``` -go get -u github.com/whyrusleeping/gx -go get -u github.com/whyrusleeping/gx-go -``` - -### `go-ipfs` - -``` -SET PATH=%PATH%;%GOPATH%\bin -go get -u -d github.com/ipfs/go-ipfs -cd %GOPATH%/src/github.com/ipfs/go-ipfs -gx --verbose install --global -cd cmd\ipfs -``` -We need the `git` commit hash to be included in our build so that in the extremely rare event a bug is found, we have a reference point later for tracking it. We'll ask `git` for it and store it in a variable. The syntax for the next command is different depending on whether you're using the interactive command line or writing a batch file. Use the one that applies to you. -- interactive: `FOR /F %V IN ('git rev-parse --short HEAD') do set SHA=%V` -- interpreter: `FOR /F %%V IN ('git rev-parse --short HEAD') do set SHA=%%V` - -Finally, we'll build and test `ipfs` itself. -``` -go install -ldflags="-X "github.com/ipfs/go-ipfs".CurrentCommit=%SHA%" -%GOPATH%\bin\ipfs.exe version --all -``` -You can check that the ipfs output versions match with `go version` and `git rev-parse --short HEAD`. -If `ipfs.exe` executes and everything matches, then building was successful. - -## Troubleshooting -- **Git auth** -If you get authentication problems with Git, you might want to take a look at https://help.github.com/articles/caching-your-github-password-in-git/ and use the suggested solution: -`git config --global credential.helper wincred` - -- **Anything else** -Please search [https://discuss.ipfs.io](https://discuss.ipfs.io/search?q=windows%20category%3A13) for any additional issues you may encounter. If you can't find any existing resolution, feel free to post a question asking for help. - -If you encounter a bug with `go-ipfs` itself (not related to building) please use the [issue tracker](https://github.com/ipfs/go-ipfs/issues) to report it. diff --git a/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/providers.go b/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/providers.go index a7845310..77b19e2f 100644 --- a/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/providers.go +++ b/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/providers.go @@ -5,11 +5,11 @@ import ( pin "github.com/ipfs/go-ipfs/pin" - merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - blocks "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - cidutil "gx/ipfs/Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G/go-cidutil" + cid "github.com/ipfs/go-cid" + cidutil "github.com/ipfs/go-cidutil" + blocks "github.com/ipfs/go-ipfs-blockstore" + ipld "github.com/ipfs/go-ipld-format" + merkledag "github.com/ipfs/go-merkledag" ) // NewBlockstoreProvider returns key provider using bstore.AllKeysChan diff --git a/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide.go b/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide.go index 8ebfc9b9..9c466651 100644 --- a/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide.go +++ b/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide.go @@ -5,11 +5,11 @@ import ( "fmt" "time" - backoff "gx/ipfs/QmPJUtEJsm5YLUWhF6imvyCH8KZXRJa9Wup7FDMwTy5Ufz/backoff" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - "gx/ipfs/QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa/go-verifcid" + backoff "github.com/cenkalti/backoff" + cid "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + "github.com/ipfs/go-verifcid" + routing "github.com/libp2p/go-libp2p-routing" ) var log = logging.Logger("reprovider") diff --git a/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide_test.go b/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide_test.go deleted file mode 100644 index 8f2e446d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/exchange/reprovide/reprovide_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package reprovide_test - -import ( - "context" - "testing" - - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - mock "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/mock" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - - . "github.com/ipfs/go-ipfs/exchange/reprovide" -) - -func TestReprovide(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - mrserv := mock.NewServer() - - idA := testutil.RandIdentityOrFatal(t) - idB := testutil.RandIdentityOrFatal(t) - - clA := mrserv.Client(idA) - clB := mrserv.Client(idB) - - bstore := blockstore.NewBlockstore(dssync.MutexWrap(ds.NewMapDatastore())) - - blk := blocks.NewBlock([]byte("this is a test")) - bstore.Put(blk) - - keyProvider := NewBlockstoreProvider(bstore) - reprov := NewReprovider(ctx, clA, keyProvider) - err := reprov.Reprovide() - if err != nil { - t.Fatal(err) - } - - var providers []pstore.PeerInfo - maxProvs := 100 - - provChan := clB.FindProvidersAsync(ctx, blk.Cid(), maxProvs) - for p := range provChan { - providers = append(providers, p) - } - - if len(providers) == 0 { - t.Fatal("Should have gotten a provider") - } - - if providers[0].ID != idA.ID() { - t.Fatal("Somehow got the wrong peer back as a provider.") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/filestore/filestore.go b/vendor/github.com/ipfs/go-ipfs/filestore/filestore.go index 69021b7b..be4d954b 100644 --- a/vendor/github.com/ipfs/go-ipfs/filestore/filestore.go +++ b/vendor/github.com/ipfs/go-ipfs/filestore/filestore.go @@ -11,12 +11,12 @@ import ( "context" "errors" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - dsq "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/query" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - posinfo "gx/ipfs/QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7/go-ipfs-posinfo" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + dsq "github.com/ipfs/go-datastore/query" + blockstore "github.com/ipfs/go-ipfs-blockstore" + posinfo "github.com/ipfs/go-ipfs-posinfo" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("filestore") diff --git a/vendor/github.com/ipfs/go-ipfs/filestore/filestore_test.go b/vendor/github.com/ipfs/go-ipfs/filestore/filestore_test.go deleted file mode 100644 index b6fdf350..00000000 --- a/vendor/github.com/ipfs/go-ipfs/filestore/filestore_test.go +++ /dev/null @@ -1,177 +0,0 @@ -package filestore - -import ( - "bytes" - "context" - "io/ioutil" - "math/rand" - "testing" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - posinfo "gx/ipfs/QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7/go-ipfs-posinfo" -) - -func newTestFilestore(t *testing.T) (string, *Filestore) { - mds := ds.NewMapDatastore() - - testdir, err := ioutil.TempDir("", "filestore-test") - if err != nil { - t.Fatal(err) - } - fm := NewFileManager(mds, testdir) - fm.AllowFiles = true - - bs := blockstore.NewBlockstore(mds) - fstore := NewFilestore(bs, fm) - return testdir, fstore -} - -func makeFile(dir string, data []byte) (string, error) { - f, err := ioutil.TempFile(dir, "file") - if err != nil { - return "", err - } - - _, err = f.Write(data) - if err != nil { - return "", err - } - - return f.Name(), nil -} - -func TestBasicFilestore(t *testing.T) { - dir, fs := newTestFilestore(t) - - buf := make([]byte, 1000) - rand.Read(buf) - - fname, err := makeFile(dir, buf) - if err != nil { - t.Fatal(err) - } - - var cids []cid.Cid - for i := 0; i < 100; i++ { - n := &posinfo.FilestoreNode{ - PosInfo: &posinfo.PosInfo{ - FullPath: fname, - Offset: uint64(i * 10), - }, - Node: dag.NewRawNode(buf[i*10 : (i+1)*10]), - } - - err := fs.Put(n) - if err != nil { - t.Fatal(err) - } - cids = append(cids, n.Node.Cid()) - } - - for i, c := range cids { - blk, err := fs.Get(c) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(blk.RawData(), buf[i*10:(i+1)*10]) { - t.Fatal("data didnt match on the way out") - } - } - - kch, err := fs.AllKeysChan(context.Background()) - if err != nil { - t.Fatal(err) - } - - out := make(map[string]struct{}) - for c := range kch { - out[c.KeyString()] = struct{}{} - } - - if len(out) != len(cids) { - t.Fatal("mismatch in number of entries") - } - - for _, c := range cids { - if _, ok := out[c.KeyString()]; !ok { - t.Fatal("missing cid: ", c) - } - } -} - -func randomFileAdd(t *testing.T, fs *Filestore, dir string, size int) (string, []cid.Cid) { - buf := make([]byte, size) - rand.Read(buf) - - fname, err := makeFile(dir, buf) - if err != nil { - t.Fatal(err) - } - - var out []cid.Cid - for i := 0; i < size/10; i++ { - n := &posinfo.FilestoreNode{ - PosInfo: &posinfo.PosInfo{ - FullPath: fname, - Offset: uint64(i * 10), - }, - Node: dag.NewRawNode(buf[i*10 : (i+1)*10]), - } - err := fs.Put(n) - if err != nil { - t.Fatal(err) - } - out = append(out, n.Cid()) - } - - return fname, out -} - -func TestDeletes(t *testing.T) { - dir, fs := newTestFilestore(t) - _, cids := randomFileAdd(t, fs, dir, 100) - todelete := cids[:4] - for _, c := range todelete { - err := fs.DeleteBlock(c) - if err != nil { - t.Fatal(err) - } - } - - deleted := make(map[string]bool) - for _, c := range todelete { - _, err := fs.Get(c) - if err != blockstore.ErrNotFound { - t.Fatal("expected blockstore not found error") - } - deleted[c.KeyString()] = true - } - - keys, err := fs.AllKeysChan(context.Background()) - if err != nil { - t.Fatal(err) - } - - for c := range keys { - if deleted[c.KeyString()] { - t.Fatal("shouldnt have reference to this key anymore") - } - } -} - -func TestIsURL(t *testing.T) { - if !IsURL("http://www.example.com") { - t.Fatal("IsURL failed: http://www.example.com") - } - if !IsURL("https://www.example.com") { - t.Fatal("IsURL failed: https://www.example.com") - } - if IsURL("adir/afile") || IsURL("http:/ /afile") || IsURL("http:/a/file") { - t.Fatal("IsURL recognized non-url") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/filestore/fsrefstore.go b/vendor/github.com/ipfs/go-ipfs/filestore/fsrefstore.go index 19006101..b4c66a32 100644 --- a/vendor/github.com/ipfs/go-ipfs/filestore/fsrefstore.go +++ b/vendor/github.com/ipfs/go-ipfs/filestore/fsrefstore.go @@ -10,15 +10,15 @@ import ( pb "github.com/ipfs/go-ipfs/filestore/pb" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dsns "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/namespace" - dsq "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/query" - dshelp "gx/ipfs/QmXSEqXLCzpCByJU4wqbJ37TcBEj77FKMUWUP1qLh56847/go-ipfs-ds-help" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - proto "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" - posinfo "gx/ipfs/QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7/go-ipfs-posinfo" + proto "github.com/gogo/protobuf/proto" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + dsns "github.com/ipfs/go-datastore/namespace" + dsq "github.com/ipfs/go-datastore/query" + blockstore "github.com/ipfs/go-ipfs-blockstore" + dshelp "github.com/ipfs/go-ipfs-ds-help" + posinfo "github.com/ipfs/go-ipfs-posinfo" ) // FilestorePrefix identifies the key prefix for FileManager blocks. diff --git a/vendor/github.com/ipfs/go-ipfs/filestore/pb/dataobj.pb.go b/vendor/github.com/ipfs/go-ipfs/filestore/pb/dataobj.pb.go index cf1da151..59650a11 100644 --- a/vendor/github.com/ipfs/go-ipfs/filestore/pb/dataobj.pb.go +++ b/vendor/github.com/ipfs/go-ipfs/filestore/pb/dataobj.pb.go @@ -5,7 +5,7 @@ package datastore_pb import ( fmt "fmt" - proto "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" + proto "github.com/gogo/protobuf/proto" io "io" math "math" ) diff --git a/vendor/github.com/ipfs/go-ipfs/filestore/util.go b/vendor/github.com/ipfs/go-ipfs/filestore/util.go index 45accb3a..4f394959 100644 --- a/vendor/github.com/ipfs/go-ipfs/filestore/util.go +++ b/vendor/github.com/ipfs/go-ipfs/filestore/util.go @@ -6,11 +6,11 @@ import ( pb "github.com/ipfs/go-ipfs/filestore/pb" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dsq "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/query" - dshelp "gx/ipfs/QmXSEqXLCzpCByJU4wqbJ37TcBEj77FKMUWUP1qLh56847/go-ipfs-ds-help" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + dsq "github.com/ipfs/go-datastore/query" + blockstore "github.com/ipfs/go-ipfs-blockstore" + dshelp "github.com/ipfs/go-ipfs-ds-help" ) // Status is used to identify the state of the block data referenced diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/common.go b/vendor/github.com/ipfs/go-ipfs/fuse/ipns/common.go deleted file mode 100644 index 32fc4987..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/common.go +++ /dev/null @@ -1,34 +0,0 @@ -package ipns - -import ( - "context" - - "github.com/ipfs/go-ipfs/core" - nsys "github.com/ipfs/go-ipfs/namesys" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" -) - -// InitializeKeyspace sets the ipns record for the given key to -// point to an empty directory. -func InitializeKeyspace(n *core.IpfsNode, key ci.PrivKey) error { - ctx, cancel := context.WithCancel(n.Context()) - defer cancel() - - emptyDir := ft.EmptyDirNode() - - err := n.Pinning.Pin(ctx, emptyDir, false) - if err != nil { - return err - } - - err = n.Pinning.Flush() - if err != nil { - return err - } - - pub := nsys.NewIpnsPublisher(n.Routing, n.Repo.Datastore()) - - return pub.Publish(ctx, key, path.FromCid(emptyDir.Cid())) -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_test.go b/vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_test.go deleted file mode 100644 index 1b6dcf80..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_test.go +++ /dev/null @@ -1,486 +0,0 @@ -// +build !nofuse - -package ipns - -import ( - "bytes" - "context" - "fmt" - "io/ioutil" - mrand "math/rand" - "os" - "sync" - "testing" - - core "github.com/ipfs/go-ipfs/core" - - u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - fstest "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse/fs/fstestutil" - ci "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil/ci" - racedet "gx/ipfs/Qmf7HqcW7LtCi1W8y2bdx2eJpze74jkbKqpByxgXikdbLF/go-detect-race" -) - -func maybeSkipFuseTests(t *testing.T) { - if ci.NoFuse() { - t.Skip("Skipping FUSE tests") - } -} - -func randBytes(size int) []byte { - b := make([]byte, size) - u.NewTimeSeededRand().Read(b) - return b -} - -func mkdir(t *testing.T, path string) { - err := os.Mkdir(path, os.ModeDir) - if err != nil { - t.Fatal(err) - } -} - -func writeFile(t *testing.T, size int, path string) []byte { - return writeFileData(t, randBytes(size), path) -} - -func writeFileData(t *testing.T, data []byte, path string) []byte { - fi, err := os.Create(path) - if err != nil { - t.Fatal(err) - } - - n, err := fi.Write(data) - if err != nil { - t.Fatal(err) - } - - if n != len(data) { - t.Fatal("Didnt write proper amount!") - } - - err = fi.Close() - if err != nil { - t.Fatal(err) - } - - return data -} - -func verifyFile(t *testing.T, path string, wantData []byte) { - isData, err := ioutil.ReadFile(path) - if err != nil { - t.Fatal(err) - } - if len(isData) != len(wantData) { - t.Fatal("Data not equal - length check failed") - } - if !bytes.Equal(isData, wantData) { - t.Fatal("Data not equal") - } -} - -func checkExists(t *testing.T, path string) { - _, err := os.Stat(path) - if err != nil { - t.Fatal(err) - } -} - -func closeMount(mnt *mountWrap) { - if err := recover(); err != nil { - log.Error("Recovered panic") - log.Error(err) - } - mnt.Close() -} - -type mountWrap struct { - *fstest.Mount - Fs *FileSystem -} - -func (m *mountWrap) Close() error { - m.Fs.Destroy() - m.Mount.Close() - return nil -} - -func setupIpnsTest(t *testing.T, node *core.IpfsNode) (*core.IpfsNode, *mountWrap) { - maybeSkipFuseTests(t) - - var err error - if node == nil { - node, err = core.NewNode(context.Background(), nil) - if err != nil { - t.Fatal(err) - } - - err = InitializeKeyspace(node, node.PrivateKey) - if err != nil { - t.Fatal(err) - } - } - - fs, err := NewFileSystem(node, node.PrivateKey, "", "") - if err != nil { - t.Fatal(err) - } - mnt, err := fstest.MountedT(t, fs, nil) - if err != nil { - t.Fatal(err) - } - - return node, &mountWrap{ - Mount: mnt, - Fs: fs, - } -} - -func TestIpnsLocalLink(t *testing.T) { - nd, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - name := mnt.Dir + "/local" - - checkExists(t, name) - - linksto, err := os.Readlink(name) - if err != nil { - t.Fatal(err) - } - - if linksto != nd.Identity.Pretty() { - t.Fatal("Link invalid") - } -} - -// Test writing a file and reading it back -func TestIpnsBasicIO(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - nd, mnt := setupIpnsTest(t, nil) - defer closeMount(mnt) - - fname := mnt.Dir + "/local/testfile" - data := writeFile(t, 10, fname) - - rbuf, err := ioutil.ReadFile(fname) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(rbuf, data) { - t.Fatal("Incorrect Read!") - } - - fname2 := mnt.Dir + "/" + nd.Identity.Pretty() + "/testfile" - rbuf, err = ioutil.ReadFile(fname2) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(rbuf, data) { - t.Fatal("Incorrect Read!") - } -} - -// Test to make sure file changes persist over mounts of ipns -func TestFilePersistence(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - node, mnt := setupIpnsTest(t, nil) - - fname := "/local/atestfile" - data := writeFile(t, 127, mnt.Dir+fname) - - mnt.Close() - - t.Log("Closed, opening new fs") - _, mnt = setupIpnsTest(t, node) - defer mnt.Close() - - rbuf, err := ioutil.ReadFile(mnt.Dir + fname) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(rbuf, data) { - t.Fatalf("File data changed between mounts! sizes differ: %d != %d", len(data), len(rbuf)) - } -} - -func TestMultipleDirs(t *testing.T) { - node, mnt := setupIpnsTest(t, nil) - - t.Log("make a top level dir") - dir1 := "/local/test1" - mkdir(t, mnt.Dir+dir1) - - checkExists(t, mnt.Dir+dir1) - - t.Log("write a file in it") - data1 := writeFile(t, 4000, mnt.Dir+dir1+"/file1") - - verifyFile(t, mnt.Dir+dir1+"/file1", data1) - - t.Log("sub directory") - mkdir(t, mnt.Dir+dir1+"/dir2") - - checkExists(t, mnt.Dir+dir1+"/dir2") - - t.Log("file in that subdirectory") - data2 := writeFile(t, 5000, mnt.Dir+dir1+"/dir2/file2") - - verifyFile(t, mnt.Dir+dir1+"/dir2/file2", data2) - - mnt.Close() - t.Log("closing mount, then restarting") - - _, mnt = setupIpnsTest(t, node) - - checkExists(t, mnt.Dir+dir1) - - verifyFile(t, mnt.Dir+dir1+"/file1", data1) - - verifyFile(t, mnt.Dir+dir1+"/dir2/file2", data2) - mnt.Close() -} - -// Test to make sure the filesystem reports file sizes correctly -func TestFileSizeReporting(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - _, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - - fname := mnt.Dir + "/local/sizecheck" - data := writeFile(t, 5555, fname) - - finfo, err := os.Stat(fname) - if err != nil { - t.Fatal(err) - } - - if finfo.Size() != int64(len(data)) { - t.Fatal("Read incorrect size from stat!") - } -} - -// Test to make sure you cant create multiple entries with the same name -func TestDoubleEntryFailure(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - _, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - - dname := mnt.Dir + "/local/thisisadir" - err := os.Mkdir(dname, 0777) - if err != nil { - t.Fatal(err) - } - - err = os.Mkdir(dname, 0777) - if err == nil { - t.Fatal("Should have gotten error one creating new directory.") - } -} - -func TestAppendFile(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - _, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - - fname := mnt.Dir + "/local/file" - data := writeFile(t, 1300, fname) - - fi, err := os.OpenFile(fname, os.O_RDWR|os.O_APPEND, 0666) - if err != nil { - t.Fatal(err) - } - - nudata := randBytes(500) - - n, err := fi.Write(nudata) - if err != nil { - t.Fatal(err) - } - err = fi.Close() - if err != nil { - t.Fatal(err) - } - - if n != len(nudata) { - t.Fatal("Failed to write enough bytes.") - } - - data = append(data, nudata...) - - rbuf, err := ioutil.ReadFile(fname) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(rbuf, data) { - t.Fatal("Data inconsistent!") - } -} - -func TestConcurrentWrites(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - _, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - - nactors := 4 - filesPerActor := 400 - fileSize := 2000 - - data := make([][][]byte, nactors) - - if racedet.WithRace() { - nactors = 2 - filesPerActor = 50 - } - - wg := sync.WaitGroup{} - for i := 0; i < nactors; i++ { - data[i] = make([][]byte, filesPerActor) - wg.Add(1) - go func(n int) { - defer wg.Done() - for j := 0; j < filesPerActor; j++ { - out := writeFile(t, fileSize, mnt.Dir+fmt.Sprintf("/local/%dFILE%d", n, j)) - data[n][j] = out - } - }(i) - } - wg.Wait() - - for i := 0; i < nactors; i++ { - for j := 0; j < filesPerActor; j++ { - verifyFile(t, mnt.Dir+fmt.Sprintf("/local/%dFILE%d", i, j), data[i][j]) - } - } -} - -func TestFSThrash(t *testing.T) { - files := make(map[string][]byte) - - if testing.Short() { - t.SkipNow() - } - _, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - - base := mnt.Dir + "/local" - dirs := []string{base} - dirlock := sync.RWMutex{} - filelock := sync.Mutex{} - - ndirWorkers := 2 - nfileWorkers := 2 - - ndirs := 100 - nfiles := 200 - - wg := sync.WaitGroup{} - - // Spawn off workers to make directories - for i := 0; i < ndirWorkers; i++ { - wg.Add(1) - go func(worker int) { - defer wg.Done() - for j := 0; j < ndirs; j++ { - dirlock.RLock() - n := mrand.Intn(len(dirs)) - dir := dirs[n] - dirlock.RUnlock() - - newDir := fmt.Sprintf("%s/dir%d-%d", dir, worker, j) - err := os.Mkdir(newDir, os.ModeDir) - if err != nil { - t.Fatal(err) - } - dirlock.Lock() - dirs = append(dirs, newDir) - dirlock.Unlock() - } - }(i) - } - - // Spawn off workers to make files - for i := 0; i < nfileWorkers; i++ { - wg.Add(1) - go func(worker int) { - defer wg.Done() - for j := 0; j < nfiles; j++ { - dirlock.RLock() - n := mrand.Intn(len(dirs)) - dir := dirs[n] - dirlock.RUnlock() - - newFileName := fmt.Sprintf("%s/file%d-%d", dir, worker, j) - - data := writeFile(t, 2000+mrand.Intn(5000), newFileName) - filelock.Lock() - files[newFileName] = data - filelock.Unlock() - } - }(i) - } - - wg.Wait() - for name, data := range files { - out, err := ioutil.ReadFile(name) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(data, out) { - t.Fatal("Data didnt match") - } - } -} - -// Test writing a medium sized file one byte at a time -func TestMultiWrite(t *testing.T) { - - if testing.Short() { - t.SkipNow() - } - - _, mnt := setupIpnsTest(t, nil) - defer mnt.Close() - - fpath := mnt.Dir + "/local/file" - fi, err := os.Create(fpath) - if err != nil { - t.Fatal(err) - } - - data := randBytes(1001) - for i := 0; i < len(data); i++ { - n, err := fi.Write(data[i : i+1]) - if err != nil { - t.Fatal(err) - } - if n != 1 { - t.Fatal("Somehow wrote the wrong number of bytes! (n != 1)") - } - } - fi.Close() - - rbuf, err := ioutil.ReadFile(fpath) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(rbuf, data) { - t.Fatal("File on disk did not match bytes written") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_unix.go b/vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_unix.go deleted file mode 100644 index 8a69e83d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/ipns_unix.go +++ /dev/null @@ -1,594 +0,0 @@ -// +build !nofuse - -// package fuse/ipns implements a fuse filesystem that interfaces -// with ipns, the naming system for ipfs. -package ipns - -import ( - "context" - "errors" - "fmt" - "io" - "os" - - core "github.com/ipfs/go-ipfs/core" - namesys "github.com/ipfs/go-ipfs/namesys" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - - fuse "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse" - fs "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse/fs" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - mfs "gx/ipfs/Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx/go-mfs" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -func init() { - if os.Getenv("IPFS_FUSE_DEBUG") != "" { - fuse.Debug = func(msg interface{}) { - fmt.Println(msg) - } - } -} - -var log = logging.Logger("fuse/ipns") - -// FileSystem is the readwrite IPNS Fuse Filesystem. -type FileSystem struct { - Ipfs *core.IpfsNode - RootNode *Root -} - -// NewFileSystem constructs new fs using given core.IpfsNode instance. -func NewFileSystem(ipfs *core.IpfsNode, sk ci.PrivKey, ipfspath, ipnspath string) (*FileSystem, error) { - - kmap := map[string]ci.PrivKey{ - "local": sk, - } - root, err := CreateRoot(ipfs, kmap, ipfspath, ipnspath) - if err != nil { - return nil, err - } - - return &FileSystem{Ipfs: ipfs, RootNode: root}, nil -} - -// Root constructs the Root of the filesystem, a Root object. -func (f *FileSystem) Root() (fs.Node, error) { - log.Debug("filesystem, get root") - return f.RootNode, nil -} - -func (f *FileSystem) Destroy() { - err := f.RootNode.Close() - if err != nil { - log.Errorf("Error Shutting Down Filesystem: %s\n", err) - } -} - -// Root is the root object of the filesystem tree. -type Root struct { - Ipfs *core.IpfsNode - Keys map[string]ci.PrivKey - - // Used for symlinking into ipfs - IpfsRoot string - IpnsRoot string - LocalDirs map[string]fs.Node - Roots map[string]*keyRoot - - LocalLinks map[string]*Link -} - -func ipnsPubFunc(ipfs *core.IpfsNode, k ci.PrivKey) mfs.PubFunc { - return func(ctx context.Context, c cid.Cid) error { - return ipfs.Namesys.Publish(ctx, k, path.FromCid(c)) - } -} - -func loadRoot(ctx context.Context, rt *keyRoot, ipfs *core.IpfsNode, name string) (fs.Node, error) { - p, err := path.ParsePath("/ipns/" + name) - if err != nil { - log.Errorf("mkpath %s: %s", name, err) - return nil, err - } - - node, err := core.Resolve(ctx, ipfs.Namesys, ipfs.Resolver, p) - switch err { - case nil: - case namesys.ErrResolveFailed: - node = ft.EmptyDirNode() - default: - log.Errorf("looking up %s: %s", p, err) - return nil, err - } - - pbnode, ok := node.(*dag.ProtoNode) - if !ok { - return nil, dag.ErrNotProtobuf - } - - root, err := mfs.NewRoot(ctx, ipfs.DAG, pbnode, ipnsPubFunc(ipfs, rt.k)) - if err != nil { - return nil, err - } - - rt.root = root - - return &Directory{dir: root.GetDirectory()}, nil -} - -type keyRoot struct { - k ci.PrivKey - alias string - root *mfs.Root -} - -func CreateRoot(ipfs *core.IpfsNode, keys map[string]ci.PrivKey, ipfspath, ipnspath string) (*Root, error) { - ldirs := make(map[string]fs.Node) - roots := make(map[string]*keyRoot) - links := make(map[string]*Link) - for alias, k := range keys { - pid, err := peer.IDFromPrivateKey(k) - if err != nil { - return nil, err - } - name := pid.Pretty() - - kr := &keyRoot{k: k, alias: alias} - fsn, err := loadRoot(ipfs.Context(), kr, ipfs, name) - if err != nil { - return nil, err - } - - roots[name] = kr - ldirs[name] = fsn - - // set up alias symlink - links[alias] = &Link{ - Target: name, - } - } - - return &Root{ - Ipfs: ipfs, - IpfsRoot: ipfspath, - IpnsRoot: ipnspath, - Keys: keys, - LocalDirs: ldirs, - LocalLinks: links, - Roots: roots, - }, nil -} - -// Attr returns file attributes. -func (*Root) Attr(ctx context.Context, a *fuse.Attr) error { - log.Debug("Root Attr") - a.Mode = os.ModeDir | 0111 // -rw+x - return nil -} - -// Lookup performs a lookup under this node. -func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error) { - switch name { - case "mach_kernel", ".hidden", "._.": - // Just quiet some log noise on OS X. - return nil, fuse.ENOENT - } - - if lnk, ok := s.LocalLinks[name]; ok { - return lnk, nil - } - - nd, ok := s.LocalDirs[name] - if ok { - switch nd := nd.(type) { - case *Directory: - return nd, nil - case *FileNode: - return nd, nil - default: - return nil, fuse.EIO - } - } - - // other links go through ipns resolution and are symlinked into the ipfs mountpoint - ipnsName := "/ipns/" + name - resolved, err := s.Ipfs.Namesys.Resolve(s.Ipfs.Context(), ipnsName) - if err != nil { - log.Warningf("ipns: namesys resolve error: %s", err) - return nil, fuse.ENOENT - } - - segments := resolved.Segments() - if segments[0] == "ipfs" { - p := path.Join(resolved.Segments()[1:]) - return &Link{s.IpfsRoot + "/" + p}, nil - } - - log.Error("Invalid path.Path: ", resolved) - return nil, errors.New("invalid path from ipns record") -} - -func (r *Root) Close() error { - for _, mr := range r.Roots { - err := mr.root.Close() - if err != nil { - return err - } - } - return nil -} - -// Forget is called when the filesystem is unmounted. probably. -// see comments here: http://godoc.org/bazil.org/fuse/fs#FSDestroyer -func (r *Root) Forget() { - err := r.Close() - if err != nil { - log.Error(err) - } -} - -// ReadDirAll reads a particular directory. Will show locally available keys -// as well as a symlink to the peerID key -func (r *Root) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) { - log.Debug("Root ReadDirAll") - - var listing []fuse.Dirent - for alias, k := range r.Keys { - pid, err := peer.IDFromPrivateKey(k) - if err != nil { - continue - } - ent := fuse.Dirent{ - Name: pid.Pretty(), - Type: fuse.DT_Dir, - } - link := fuse.Dirent{ - Name: alias, - Type: fuse.DT_Link, - } - listing = append(listing, ent, link) - } - return listing, nil -} - -// Directory is wrapper over an mfs directory to satisfy the fuse fs interface -type Directory struct { - dir *mfs.Directory -} - -type FileNode struct { - fi *mfs.File -} - -// File is wrapper over an mfs file to satisfy the fuse fs interface -type File struct { - fi mfs.FileDescriptor -} - -// Attr returns the attributes of a given node. -func (d *Directory) Attr(ctx context.Context, a *fuse.Attr) error { - log.Debug("Directory Attr") - a.Mode = os.ModeDir | 0555 - a.Uid = uint32(os.Getuid()) - a.Gid = uint32(os.Getgid()) - return nil -} - -// Attr returns the attributes of a given node. -func (fi *FileNode) Attr(ctx context.Context, a *fuse.Attr) error { - log.Debug("File Attr") - size, err := fi.fi.Size() - if err != nil { - // In this case, the dag node in question may not be unixfs - return fmt.Errorf("fuse/ipns: failed to get file.Size(): %s", err) - } - a.Mode = os.FileMode(0666) - a.Size = uint64(size) - a.Uid = uint32(os.Getuid()) - a.Gid = uint32(os.Getgid()) - return nil -} - -// Lookup performs a lookup under this node. -func (s *Directory) Lookup(ctx context.Context, name string) (fs.Node, error) { - child, err := s.dir.Child(name) - if err != nil { - // todo: make this error more versatile. - return nil, fuse.ENOENT - } - - switch child := child.(type) { - case *mfs.Directory: - return &Directory{dir: child}, nil - case *mfs.File: - return &FileNode{fi: child}, nil - default: - // NB: if this happens, we do not want to continue, unpredictable behaviour - // may occur. - panic("invalid type found under directory. programmer error.") - } -} - -// ReadDirAll reads the link structure as directory entries -func (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) { - var entries []fuse.Dirent - listing, err := dir.dir.List(ctx) - if err != nil { - return nil, err - } - for _, entry := range listing { - dirent := fuse.Dirent{Name: entry.Name} - - switch mfs.NodeType(entry.Type) { - case mfs.TDir: - dirent.Type = fuse.DT_Dir - case mfs.TFile: - dirent.Type = fuse.DT_File - } - - entries = append(entries, dirent) - } - - if len(entries) > 0 { - return entries, nil - } - return nil, fuse.ENOENT -} - -func (fi *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error { - _, err := fi.fi.Seek(req.Offset, io.SeekStart) - if err != nil { - return err - } - - fisize, err := fi.fi.Size() - if err != nil { - return err - } - - select { - case <-ctx.Done(): - return ctx.Err() - default: - } - - readsize := min(req.Size, int(fisize-req.Offset)) - n, err := fi.fi.CtxReadFull(ctx, resp.Data[:readsize]) - resp.Data = resp.Data[:n] - return err -} - -func (fi *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error { - // TODO: at some point, ensure that WriteAt here respects the context - wrote, err := fi.fi.WriteAt(req.Data, req.Offset) - if err != nil { - return err - } - resp.Size = wrote - return nil -} - -func (fi *File) Flush(ctx context.Context, req *fuse.FlushRequest) error { - errs := make(chan error, 1) - go func() { - errs <- fi.fi.Flush() - }() - select { - case err := <-errs: - return err - case <-ctx.Done(): - return ctx.Err() - } -} - -func (fi *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error { - if req.Valid.Size() { - cursize, err := fi.fi.Size() - if err != nil { - return err - } - if cursize != int64(req.Size) { - err := fi.fi.Truncate(int64(req.Size)) - if err != nil { - return err - } - } - } - return nil -} - -// Fsync flushes the content in the file to disk. -func (fi *FileNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error { - // This needs to perform a *full* flush because, in MFS, a write isn't - // persisted until the root is updated. - errs := make(chan error, 1) - go func() { - errs <- fi.fi.Flush() - }() - select { - case err := <-errs: - return err - case <-ctx.Done(): - return ctx.Err() - } -} - -func (fi *File) Forget() { - // TODO(steb): this seems like a place where we should be *uncaching*, not flushing. - err := fi.fi.Flush() - if err != nil { - log.Debug("forget file error: ", err) - } -} - -func (dir *Directory) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) { - child, err := dir.dir.Mkdir(req.Name) - if err != nil { - return nil, err - } - - return &Directory{dir: child}, nil -} - -func (fi *FileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error) { - fd, err := fi.fi.Open(mfs.Flags{ - Read: req.Flags.IsReadOnly() || req.Flags.IsReadWrite(), - Write: req.Flags.IsWriteOnly() || req.Flags.IsReadWrite(), - Sync: true, - }) - if err != nil { - return nil, err - } - - if req.Flags&fuse.OpenTruncate != 0 { - if req.Flags.IsReadOnly() { - log.Error("tried to open a readonly file with truncate") - return nil, fuse.ENOTSUP - } - log.Info("Need to truncate file!") - err := fd.Truncate(0) - if err != nil { - return nil, err - } - } else if req.Flags&fuse.OpenAppend != 0 { - log.Info("Need to append to file!") - if req.Flags.IsReadOnly() { - log.Error("tried to open a readonly file with append") - return nil, fuse.ENOTSUP - } - - _, err := fd.Seek(0, io.SeekEnd) - if err != nil { - log.Error("seek reset failed: ", err) - return nil, err - } - } - - return &File{fi: fd}, nil -} - -func (fi *File) Release(ctx context.Context, req *fuse.ReleaseRequest) error { - return fi.fi.Close() -} - -func (dir *Directory) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error) { - // New 'empty' file - nd := dag.NodeWithData(ft.FilePBData(nil, 0)) - err := dir.dir.AddChild(req.Name, nd) - if err != nil { - return nil, nil, err - } - - child, err := dir.dir.Child(req.Name) - if err != nil { - return nil, nil, err - } - - fi, ok := child.(*mfs.File) - if !ok { - return nil, nil, errors.New("child creation failed") - } - - nodechild := &FileNode{fi: fi} - - fd, err := fi.Open(mfs.Flags{ - Read: req.Flags.IsReadOnly() || req.Flags.IsReadWrite(), - Write: req.Flags.IsWriteOnly() || req.Flags.IsReadWrite(), - Sync: true, - }) - if err != nil { - return nil, nil, err - } - - return nodechild, &File{fi: fd}, nil -} - -func (dir *Directory) Remove(ctx context.Context, req *fuse.RemoveRequest) error { - err := dir.dir.Unlink(req.Name) - if err != nil { - return fuse.ENOENT - } - return nil -} - -// Rename implements NodeRenamer -func (dir *Directory) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error { - cur, err := dir.dir.Child(req.OldName) - if err != nil { - return err - } - - err = dir.dir.Unlink(req.OldName) - if err != nil { - return err - } - - switch newDir := newDir.(type) { - case *Directory: - nd, err := cur.GetNode() - if err != nil { - return err - } - - err = newDir.dir.AddChild(req.NewName, nd) - if err != nil { - return err - } - case *FileNode: - log.Error("Cannot move node into a file!") - return fuse.EPERM - default: - log.Error("Unknown node type for rename target dir!") - return errors.New("unknown fs node type") - } - return nil -} - -func min(a, b int) int { - if a < b { - return a - } - return b -} - -// to check that out Node implements all the interfaces we want -type ipnsRoot interface { - fs.Node - fs.HandleReadDirAller - fs.NodeStringLookuper -} - -var _ ipnsRoot = (*Root)(nil) - -type ipnsDirectory interface { - fs.HandleReadDirAller - fs.Node - fs.NodeCreater - fs.NodeMkdirer - fs.NodeRemover - fs.NodeRenamer - fs.NodeStringLookuper -} - -var _ ipnsDirectory = (*Directory)(nil) - -type ipnsFile interface { - fs.HandleFlusher - fs.HandleReader - fs.HandleWriter - fs.HandleReleaser -} - -type ipnsFileNode interface { - fs.Node - fs.NodeFsyncer - fs.NodeOpener -} - -var _ ipnsFileNode = (*FileNode)(nil) -var _ ipnsFile = (*File)(nil) diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/link_unix.go b/vendor/github.com/ipfs/go-ipfs/fuse/ipns/link_unix.go deleted file mode 100644 index e89112f3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/link_unix.go +++ /dev/null @@ -1,28 +0,0 @@ -// +build !nofuse - -package ipns - -import ( - "context" - "os" - - "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse" - "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse/fs" -) - -type Link struct { - Target string -} - -func (l *Link) Attr(ctx context.Context, a *fuse.Attr) error { - log.Debug("Link attr.") - a.Mode = os.ModeSymlink | 0555 - return nil -} - -func (l *Link) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error) { - log.Debugf("ReadLink: %s", l.Target) - return l.Target, nil -} - -var _ fs.NodeReadlinker = (*Link)(nil) diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/mount_unix.go b/vendor/github.com/ipfs/go-ipfs/fuse/ipns/mount_unix.go deleted file mode 100644 index e6b551b2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/ipns/mount_unix.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build linux darwin freebsd netbsd openbsd -// +build !nofuse - -package ipns - -import ( - core "github.com/ipfs/go-ipfs/core" - mount "github.com/ipfs/go-ipfs/fuse/mount" -) - -// Mount mounts ipns at a given location, and returns a mount.Mount instance. -func Mount(ipfs *core.IpfsNode, ipnsmp, ipfsmp string) (mount.Mount, error) { - cfg, err := ipfs.Repo.Config() - if err != nil { - return nil, err - } - - allow_other := cfg.Mounts.FuseAllowOther - - fsys, err := NewFileSystem(ipfs, ipfs.PrivateKey, ipfsmp, ipnsmp) - if err != nil { - return nil, err - } - - return mount.NewMount(ipfs.Process(), fsys, ipnsmp, allow_other) -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/mount/fuse.go b/vendor/github.com/ipfs/go-ipfs/fuse/mount/fuse.go index 9167159b..41d14cc3 100644 --- a/vendor/github.com/ipfs/go-ipfs/fuse/mount/fuse.go +++ b/vendor/github.com/ipfs/go-ipfs/fuse/mount/fuse.go @@ -9,9 +9,9 @@ import ( "sync" "time" - "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse" - "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse/fs" + "bazil.org/fuse" + "bazil.org/fuse/fs" + "github.com/jbenet/goprocess" ) var ErrNotMounted = errors.New("not mounted") @@ -56,7 +56,7 @@ func NewMount(p goprocess.Process, fsys fs.FS, mountpoint string, allow_other bo // launch the mounting process. if err := m.mount(); err != nil { - m.Unmount() // just in case. + _ = m.Unmount() // just in case. return nil, err } diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/mount/mount.go b/vendor/github.com/ipfs/go-ipfs/fuse/mount/mount.go index bb304127..84df699e 100644 --- a/vendor/github.com/ipfs/go-ipfs/fuse/mount/mount.go +++ b/vendor/github.com/ipfs/go-ipfs/fuse/mount/mount.go @@ -8,8 +8,8 @@ import ( "runtime" "time" - goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" ) var log = logging.Logger("mount") diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_darwin.go b/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_darwin.go deleted file mode 100644 index 512eb1f1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_darwin.go +++ /dev/null @@ -1,243 +0,0 @@ -// +build !nofuse - -package node - -import ( - "bytes" - "fmt" - "os/exec" - "runtime" - "strings" - - core "github.com/ipfs/go-ipfs/core" - - unix "gx/ipfs/QmVGjyM9i2msKvLXwh9VosCTgP4mL91kC7hDmqnwTTx6Hu/sys/unix" - "gx/ipfs/QmYRGECuvQnRX73fcvPnGbYijBcGN2HbKZQ7jh26qmLiHG/semver" -) - -func init() { - // this is a hack, but until we need to do it another way, this works. - platformFuseChecks = darwinFuseCheckVersion -} - -// dontCheckOSXFUSEConfigKey is a key used to let the user tell us to -// skip fuse checks. -var dontCheckOSXFUSEConfigKey = "DontCheckOSXFUSE" - -// fuseVersionPkg is the go pkg url for fuse-version -var fuseVersionPkg = "github.com/jbenet/go-fuse-version/fuse-version" - -// errStrFuseRequired is returned when we're sure the user does not have fuse. -var errStrFuseRequired = `OSXFUSE not found. - -OSXFUSE is required to mount, please install it. -NOTE: Version 2.7.2 or higher required; prior versions are known to kernel panic! -It is recommended you install it from the OSXFUSE website: - - http://osxfuse.github.io/ - -For more help, see: - - https://github.com/ipfs/go-ipfs/issues/177 -` - -// errStrNoFuseHeaders is included in the output of `go get ` if there -// are no fuse headers. this means they dont have OSXFUSE installed. -var errStrNoFuseHeaders = "no such file or directory: '/usr/local/lib/libosxfuse.dylib'" - -var errStrUpgradeFuse = `OSXFUSE version %s not supported. - -OSXFUSE versions <2.7.2 are known to cause kernel panics! -Please upgrade to the latest OSXFUSE version. -It is recommended you install it from the OSXFUSE website: - - http://osxfuse.github.io/ - -For more help, see: - - https://github.com/ipfs/go-ipfs/issues/177 -` - -var errStrNeedFuseVersion = `unable to check fuse version. - -Dear User, - -Before mounting, we must check your version of OSXFUSE. We are protecting -you from a nasty kernel panic we found in OSXFUSE versions <2.7.2.[1]. To -make matters worse, it's harder than it should be to check whether you have -the right version installed...[2]. We've automated the process with the -help of a little tool. We tried to install it, but something went wrong[3]. -Please install it yourself by running: - - go get %s - -You can also stop ipfs from running these checks and use whatever OSXFUSE -version you have by running: - - ipfs --json config %s true - -[1]: https://github.com/ipfs/go-ipfs/issues/177 -[2]: https://github.com/ipfs/go-ipfs/pull/533 -[3]: %s -` - -var errStrFailedToRunFuseVersion = `unable to check fuse version. - -Dear User, - -Before mounting, we must check your version of OSXFUSE. We are protecting -you from a nasty kernel panic we found in OSXFUSE versions <2.7.2.[1]. To -make matters worse, it's harder than it should be to check whether you have -the right version installed...[2]. We've automated the process with the -help of a little tool. We tried to run it, but something went wrong[3]. -Please, try to run it yourself with: - - go get %s - fuse-version - -You should see something like this: - - > fuse-version - fuse-version -only agent - OSXFUSE.AgentVersion: 2.7.3 - -Just make sure the number is 2.7.2 or higher. You can then stop ipfs from -trying to run these checks with: - - ipfs config %s true - -[1]: https://github.com/ipfs/go-ipfs/issues/177 -[2]: https://github.com/ipfs/go-ipfs/pull/533 -[3]: %s -` - -var errStrFixConfig = `config key invalid: %s %v -You may be able to get this error to go away by setting it again: - - ipfs config %s true - -Either way, please tell us at: http://github.com/ipfs/go-ipfs/issues -` - -func darwinFuseCheckVersion(node *core.IpfsNode) error { - // on OSX, check FUSE version. - if runtime.GOOS != "darwin" { - return nil - } - - ov, errGFV := tryGFV() - if errGFV != nil { - // if we failed AND the user has told us to ignore the check we - // continue. this is in case fuse-version breaks or the user cannot - // install it, but is sure their fuse version will work. - if skip, err := userAskedToSkipFuseCheck(node); err != nil { - return err - } else if skip { - return nil // user told us not to check version... ok.... - } else { - return errGFV - } - } - - log.Debug("mount: osxfuse version:", ov) - - min := semver.MustParse("2.7.2") - curr, err := semver.Make(ov) - if err != nil { - return err - } - - if curr.LT(min) { - return fmt.Errorf(errStrUpgradeFuse, ov) - } - return nil -} - -func tryGFV() (string, error) { - // first try sysctl. it may work! - ov, err := trySysctl() - if err == nil { - return ov, nil - } - log.Debug(err) - - return tryGFVFromFuseVersion() -} - -func trySysctl() (string, error) { - v, err := unix.Sysctl("osxfuse.version.number") - if err != nil { - log.Debug("mount: sysctl osxfuse.version.number:", "failed") - return "", err - } - log.Debug("mount: sysctl osxfuse.version.number:", v) - return v, nil -} - -func tryGFVFromFuseVersion() (string, error) { - if err := ensureFuseVersionIsInstalled(); err != nil { - return "", err - } - - cmd := exec.Command("fuse-version", "-q", "-only", "agent", "-s", "OSXFUSE") - out := new(bytes.Buffer) - cmd.Stdout = out - if err := cmd.Run(); err != nil { - return "", fmt.Errorf(errStrFailedToRunFuseVersion, fuseVersionPkg, dontCheckOSXFUSEConfigKey, err) - } - - return out.String(), nil -} - -func ensureFuseVersionIsInstalled() error { - // see if fuse-version is there - if _, err := exec.LookPath("fuse-version"); err == nil { - return nil // got it! - } - - // try installing it... - log.Debug("fuse-version: no fuse-version. attempting to install.") - cmd := exec.Command("go", "get", "github.com/jbenet/go-fuse-version/fuse-version") - cmdout := new(bytes.Buffer) - cmd.Stdout = cmdout - cmd.Stderr = cmdout - if err := cmd.Run(); err != nil { - // Ok, install fuse-version failed. is it they dont have fuse? - cmdoutstr := cmdout.String() - if strings.Contains(cmdoutstr, errStrNoFuseHeaders) { - // yes! it is! they dont have fuse! - return fmt.Errorf(errStrFuseRequired) - } - - log.Debug("fuse-version: failed to install.") - s := err.Error() + "\n" + cmdoutstr - return fmt.Errorf(errStrNeedFuseVersion, fuseVersionPkg, dontCheckOSXFUSEConfigKey, s) - } - - // ok, try again... - if _, err := exec.LookPath("fuse-version"); err != nil { - log.Debug("fuse-version: failed to install?") - return fmt.Errorf(errStrNeedFuseVersion, fuseVersionPkg, dontCheckOSXFUSEConfigKey, err) - } - - log.Debug("fuse-version: install success") - return nil -} - -func userAskedToSkipFuseCheck(node *core.IpfsNode) (skip bool, err error) { - val, err := node.Repo.GetConfigKey(dontCheckOSXFUSEConfigKey) - if err != nil { - return false, nil // failed to get config value. dont skip check. - } - - switch val := val.(type) { - case string: - return val == "true", nil - case bool: - return val, nil - default: - // got config value, but it's invalid... dont skip check, ask the user to fix it... - return false, fmt.Errorf(errStrFixConfig, dontCheckOSXFUSEConfigKey, val, - dontCheckOSXFUSEConfigKey) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_nofuse.go b/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_nofuse.go deleted file mode 100644 index 7f824ef3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_nofuse.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build !windows,nofuse - -package node - -import ( - "errors" - - core "github.com/ipfs/go-ipfs/core" -) - -func Mount(node *core.IpfsNode, fsdir, nsdir string) error { - return errors.New("not compiled in") -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_test.go b/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_test.go deleted file mode 100644 index 366a9ce8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// +build !nofuse - -package node - -import ( - "io/ioutil" - "os" - "testing" - "time" - - "context" - - core "github.com/ipfs/go-ipfs/core" - ipns "github.com/ipfs/go-ipfs/fuse/ipns" - mount "github.com/ipfs/go-ipfs/fuse/mount" - - ci "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil/ci" -) - -func maybeSkipFuseTests(t *testing.T) { - if ci.NoFuse() { - t.Skip("Skipping FUSE tests") - } -} - -func mkdir(t *testing.T, path string) { - err := os.Mkdir(path, os.ModeDir|os.ModePerm) - if err != nil { - t.Fatal(err) - } -} - -// Test externally unmounting, then trying to unmount in code -func TestExternalUnmount(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - - // TODO: needed? - maybeSkipFuseTests(t) - - node, err := core.NewNode(context.Background(), nil) - if err != nil { - t.Fatal(err) - } - - err = ipns.InitializeKeyspace(node, node.PrivateKey) - if err != nil { - t.Fatal(err) - } - - // get the test dir paths (/tmp/fusetestXXXX) - dir, err := ioutil.TempDir("", "fusetest") - if err != nil { - t.Fatal(err) - } - - ipfsDir := dir + "/ipfs" - ipnsDir := dir + "/ipns" - mkdir(t, ipfsDir) - mkdir(t, ipnsDir) - - err = Mount(node, ipfsDir, ipnsDir) - if err != nil { - t.Fatal(err) - } - - // Run shell command to externally unmount the directory - cmd, err := mount.UnmountCmd(ipfsDir) - if err != nil { - t.Fatal(err) - } - - if err := cmd.Run(); err != nil { - t.Fatal(err) - } - - // TODO(noffle): it takes a moment for the goroutine that's running fs.Serve to be notified and do its cleanup. - time.Sleep(time.Millisecond * 100) - - // Attempt to unmount IPFS; it should unmount successfully. - err = node.Mounts.Ipfs.Unmount() - if err != mount.ErrNotMounted { - t.Fatal("Unmount should have failed") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_unix.go b/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_unix.go deleted file mode 100644 index 4e2f732d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_unix.go +++ /dev/null @@ -1,114 +0,0 @@ -// +build !windows,!nofuse - -package node - -import ( - "errors" - "fmt" - "strings" - "sync" - - core "github.com/ipfs/go-ipfs/core" - ipns "github.com/ipfs/go-ipfs/fuse/ipns" - mount "github.com/ipfs/go-ipfs/fuse/mount" - rofs "github.com/ipfs/go-ipfs/fuse/readonly" - - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("node") - -// fuseNoDirectory used to check the returning fuse error -const fuseNoDirectory = "fusermount: failed to access mountpoint" - -// fuseExitStatus1 used to check the returning fuse error -const fuseExitStatus1 = "fusermount: exit status 1" - -// platformFuseChecks can get overridden by arch-specific files -// to run fuse checks (like checking the OSXFUSE version) -var platformFuseChecks = func(*core.IpfsNode) error { - return nil -} - -func Mount(node *core.IpfsNode, fsdir, nsdir string) error { - // check if we already have live mounts. - // if the user said "Mount", then there must be something wrong. - // so, close them and try again. - if node.Mounts.Ipfs != nil && node.Mounts.Ipfs.IsActive() { - node.Mounts.Ipfs.Unmount() - } - if node.Mounts.Ipns != nil && node.Mounts.Ipns.IsActive() { - node.Mounts.Ipns.Unmount() - } - - if err := platformFuseChecks(node); err != nil { - return err - } - - return doMount(node, fsdir, nsdir) -} - -func doMount(node *core.IpfsNode, fsdir, nsdir string) error { - fmtFuseErr := func(err error, mountpoint string) error { - s := err.Error() - if strings.Contains(s, fuseNoDirectory) { - s = strings.Replace(s, `fusermount: "fusermount:`, "", -1) - s = strings.Replace(s, `\n", exit status 1`, "", -1) - return errors.New(s) - } - if s == fuseExitStatus1 { - s = fmt.Sprintf("fuse failed to access mountpoint %s", mountpoint) - return errors.New(s) - } - return err - } - - // this sync stuff is so that both can be mounted simultaneously. - var fsmount, nsmount mount.Mount - var err1, err2 error - - var wg sync.WaitGroup - - wg.Add(1) - go func() { - defer wg.Done() - fsmount, err1 = rofs.Mount(node, fsdir) - }() - - if node.OnlineMode() { - wg.Add(1) - go func() { - defer wg.Done() - nsmount, err2 = ipns.Mount(node, nsdir, fsdir) - }() - } - - wg.Wait() - - if err1 != nil { - log.Errorf("error mounting: %s", err1) - } - - if err2 != nil { - log.Errorf("error mounting: %s", err2) - } - - if err1 != nil || err2 != nil { - if fsmount != nil { - fsmount.Unmount() - } - if nsmount != nil { - nsmount.Unmount() - } - - if err1 != nil { - return fmtFuseErr(err1, fsdir) - } - return fmtFuseErr(err2, nsdir) - } - - // setup node state, so that it can be cancelled - node.Mounts.Ipfs = fsmount - node.Mounts.Ipns = nsmount - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_windows.go b/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_windows.go deleted file mode 100644 index ce89dedd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/node/mount_windows.go +++ /dev/null @@ -1,11 +0,0 @@ -package node - -import ( - "github.com/ipfs/go-ipfs/core" -) - -func Mount(node *core.IpfsNode, fsdir, nsdir string) error { - // TODO - // currently a no-op, but we don't want to return an error - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/doc.go b/vendor/github.com/ipfs/go-ipfs/fuse/readonly/doc.go deleted file mode 100644 index 1a7e779f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -// package fuse/readonly implements a fuse filesystem to access files -// stored inside of ipfs. -package readonly diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/ipfs_test.go b/vendor/github.com/ipfs/go-ipfs/fuse/readonly/ipfs_test.go deleted file mode 100644 index b84d3709..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/ipfs_test.go +++ /dev/null @@ -1,294 +0,0 @@ -// +build !nofuse - -package readonly - -import ( - "bytes" - "context" - "errors" - "fmt" - "io/ioutil" - "math/rand" - "os" - "path" - "strings" - "sync" - "testing" - - core "github.com/ipfs/go-ipfs/core" - coreapi "github.com/ipfs/go-ipfs/core/coreapi" - coremock "github.com/ipfs/go-ipfs/core/mock" - - u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - fstest "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse/fs/fstestutil" - ci "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil/ci" - iface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - chunker "gx/ipfs/QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8/go-ipfs-chunker" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - importer "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" -) - -func maybeSkipFuseTests(t *testing.T) { - if ci.NoFuse() { - t.Skip("Skipping FUSE tests") - } -} - -func randObj(t *testing.T, nd *core.IpfsNode, size int64) (ipld.Node, []byte) { - buf := make([]byte, size) - u.NewTimeSeededRand().Read(buf) - read := bytes.NewReader(buf) - obj, err := importer.BuildTrickleDagFromReader(nd.DAG, chunker.DefaultSplitter(read)) - if err != nil { - t.Fatal(err) - } - - return obj, buf -} - -func setupIpfsTest(t *testing.T, node *core.IpfsNode) (*core.IpfsNode, *fstest.Mount) { - maybeSkipFuseTests(t) - - var err error - if node == nil { - node, err = coremock.NewMockNode() - if err != nil { - t.Fatal(err) - } - } - - fs := NewFileSystem(node) - mnt, err := fstest.MountedT(t, fs, nil) - if err != nil { - t.Fatal(err) - } - - return node, mnt -} - -// Test writing an object and reading it back through fuse -func TestIpfsBasicRead(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - nd, mnt := setupIpfsTest(t, nil) - defer mnt.Close() - - fi, data := randObj(t, nd, 10000) - k := fi.Cid() - fname := path.Join(mnt.Dir, k.String()) - rbuf, err := ioutil.ReadFile(fname) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(rbuf, data) { - t.Fatal("Incorrect Read!") - } -} - -func getPaths(t *testing.T, ipfs *core.IpfsNode, name string, n *dag.ProtoNode) []string { - if len(n.Links()) == 0 { - return []string{name} - } - var out []string - for _, lnk := range n.Links() { - child, err := lnk.GetNode(ipfs.Context(), ipfs.DAG) - if err != nil { - t.Fatal(err) - } - - childpb, ok := child.(*dag.ProtoNode) - if !ok { - t.Fatal(dag.ErrNotProtobuf) - } - - sub := getPaths(t, ipfs, path.Join(name, lnk.Name), childpb) - out = append(out, sub...) - } - return out -} - -// Perform a large number of concurrent reads to stress the system -func TestIpfsStressRead(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - nd, mnt := setupIpfsTest(t, nil) - defer mnt.Close() - - api, err := coreapi.NewCoreAPI(nd) - if err != nil { - t.Fatal(err) - } - - var nodes []ipld.Node - var paths []string - - nobj := 50 - ndiriter := 50 - - // Make a bunch of objects - for i := 0; i < nobj; i++ { - fi, _ := randObj(t, nd, rand.Int63n(50000)) - nodes = append(nodes, fi) - paths = append(paths, fi.Cid().String()) - } - - // Now make a bunch of dirs - for i := 0; i < ndiriter; i++ { - db := uio.NewDirectory(nd.DAG) - for j := 0; j < 1+rand.Intn(10); j++ { - name := fmt.Sprintf("child%d", j) - - err := db.AddChild(nd.Context(), name, nodes[rand.Intn(len(nodes))]) - if err != nil { - t.Fatal(err) - } - } - newdir, err := db.GetNode() - if err != nil { - t.Fatal(err) - } - - err = nd.DAG.Add(nd.Context(), newdir) - if err != nil { - t.Fatal(err) - } - - nodes = append(nodes, newdir) - npaths := getPaths(t, nd, newdir.Cid().String(), newdir.(*dag.ProtoNode)) - paths = append(paths, npaths...) - } - - // Now read a bunch, concurrently - wg := sync.WaitGroup{} - errs := make(chan error) - - for s := 0; s < 4; s++ { - wg.Add(1) - go func() { - defer wg.Done() - - for i := 0; i < 2000; i++ { - item, _ := iface.ParsePath(paths[rand.Intn(len(paths))]) - - relpath := strings.Replace(item.String(), item.Namespace(), "", 1) - fname := path.Join(mnt.Dir, relpath) - - rbuf, err := ioutil.ReadFile(fname) - if err != nil { - errs <- err - } - - //nd.Context() is never closed which leads to - //hitting 8128 goroutine limit in go test -race mode - ctx, cancelFunc := context.WithCancel(context.Background()) - - read, err := api.Unixfs().Get(ctx, item) - if err != nil { - errs <- err - } - - data, err := ioutil.ReadAll(read.(files.File)) - if err != nil { - errs <- err - } - - cancelFunc() - - if !bytes.Equal(rbuf, data) { - errs <- errors.New("incorrect read") - } - } - }() - } - - go func() { - wg.Wait() - close(errs) - }() - - for err := range errs { - if err != nil { - t.Fatal(err) - } - } -} - -// Test writing a file and reading it back -func TestIpfsBasicDirRead(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - nd, mnt := setupIpfsTest(t, nil) - defer mnt.Close() - - // Make a 'file' - fi, data := randObj(t, nd, 10000) - - // Make a directory and put that file in it - db := uio.NewDirectory(nd.DAG) - err := db.AddChild(nd.Context(), "actual", fi) - if err != nil { - t.Fatal(err) - } - - d1nd, err := db.GetNode() - if err != nil { - t.Fatal(err) - } - - err = nd.DAG.Add(nd.Context(), d1nd) - if err != nil { - t.Fatal(err) - } - - dirname := path.Join(mnt.Dir, d1nd.Cid().String()) - fname := path.Join(dirname, "actual") - rbuf, err := ioutil.ReadFile(fname) - if err != nil { - t.Fatal(err) - } - - dirents, err := ioutil.ReadDir(dirname) - if err != nil { - t.Fatal(err) - } - if len(dirents) != 1 { - t.Fatal("Bad directory entry count") - } - if dirents[0].Name() != "actual" { - t.Fatal("Bad directory entry") - } - - if !bytes.Equal(rbuf, data) { - t.Fatal("Incorrect Read!") - } -} - -// Test to make sure the filesystem reports file sizes correctly -func TestFileSizeReporting(t *testing.T) { - if testing.Short() { - t.SkipNow() - } - nd, mnt := setupIpfsTest(t, nil) - defer mnt.Close() - - fi, data := randObj(t, nd, 10000) - k := fi.Cid() - - fname := path.Join(mnt.Dir, k.String()) - - finfo, err := os.Stat(fname) - if err != nil { - t.Fatal(err) - } - - if finfo.Size() != int64(len(data)) { - t.Fatal("Read incorrect size from stat!") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/mount_unix.go b/vendor/github.com/ipfs/go-ipfs/fuse/readonly/mount_unix.go deleted file mode 100644 index ab794545..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/mount_unix.go +++ /dev/null @@ -1,20 +0,0 @@ -// +build linux darwin freebsd netbsd openbsd -// +build !nofuse - -package readonly - -import ( - core "github.com/ipfs/go-ipfs/core" - mount "github.com/ipfs/go-ipfs/fuse/mount" -) - -// Mount mounts IPFS at a given location, and returns a mount.Mount instance. -func Mount(ipfs *core.IpfsNode, mountpoint string) (mount.Mount, error) { - cfg, err := ipfs.Repo.Config() - if err != nil { - return nil, err - } - allow_other := cfg.Mounts.FuseAllowOther - fsys := NewFileSystem(ipfs) - return mount.NewMount(ipfs.Process(), fsys, mountpoint, allow_other) -} diff --git a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/readonly_unix.go b/vendor/github.com/ipfs/go-ipfs/fuse/readonly/readonly_unix.go deleted file mode 100644 index 7203e862..00000000 --- a/vendor/github.com/ipfs/go-ipfs/fuse/readonly/readonly_unix.go +++ /dev/null @@ -1,296 +0,0 @@ -// +build linux darwin freebsd netbsd openbsd -// +build !nofuse - -package readonly - -import ( - "context" - "fmt" - "io" - "os" - "syscall" - - core "github.com/ipfs/go-ipfs/core" - mdag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" - - fuse "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse" - fs "gx/ipfs/QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F/fuse/fs" - lgbl "gx/ipfs/QmUbSLukzZYZvEYxynj9Dtd1WrGLxxg9R4U68vCMPWHmRU/go-libp2p-loggables" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("fuse/ipfs") - -// FileSystem is the readonly IPFS Fuse Filesystem. -type FileSystem struct { - Ipfs *core.IpfsNode -} - -// NewFileSystem constructs new fs using given core.IpfsNode instance. -func NewFileSystem(ipfs *core.IpfsNode) *FileSystem { - return &FileSystem{Ipfs: ipfs} -} - -// Root constructs the Root of the filesystem, a Root object. -func (f FileSystem) Root() (fs.Node, error) { - return &Root{Ipfs: f.Ipfs}, nil -} - -// Root is the root object of the filesystem tree. -type Root struct { - Ipfs *core.IpfsNode -} - -// Attr returns file attributes. -func (*Root) Attr(ctx context.Context, a *fuse.Attr) error { - a.Mode = os.ModeDir | 0111 // -rw+x - return nil -} - -// Lookup performs a lookup under this node. -func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error) { - log.Debugf("Root Lookup: '%s'", name) - switch name { - case "mach_kernel", ".hidden", "._.": - // Just quiet some log noise on OS X. - return nil, fuse.ENOENT - } - - p, err := path.ParsePath(name) - if err != nil { - log.Debugf("fuse failed to parse path: %q: %s", name, err) - return nil, fuse.ENOENT - } - - nd, err := s.Ipfs.Resolver.ResolvePath(ctx, p) - if err != nil { - // todo: make this error more versatile. - return nil, fuse.ENOENT - } - - switch nd := nd.(type) { - case *mdag.ProtoNode, *mdag.RawNode: - return &Node{Ipfs: s.Ipfs, Nd: nd}, nil - default: - log.Error("fuse node was not a protobuf node") - return nil, fuse.ENOTSUP - } - -} - -// ReadDirAll reads a particular directory. Disallowed for root. -func (*Root) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) { - log.Debug("read Root") - return nil, fuse.EPERM -} - -// Node is the core object representing a filesystem tree node. -type Node struct { - Ipfs *core.IpfsNode - Nd ipld.Node - cached *ft.FSNode -} - -func (s *Node) loadData() error { - if pbnd, ok := s.Nd.(*mdag.ProtoNode); ok { - fsn, err := ft.FSNodeFromBytes(pbnd.Data()) - if err != nil { - return err - } - s.cached = fsn - } - return nil -} - -// Attr returns the attributes of a given node. -func (s *Node) Attr(ctx context.Context, a *fuse.Attr) error { - log.Debug("Node attr") - if rawnd, ok := s.Nd.(*mdag.RawNode); ok { - a.Mode = 0444 - a.Size = uint64(len(rawnd.RawData())) - a.Blocks = 1 - return nil - } - - if s.cached == nil { - if err := s.loadData(); err != nil { - return fmt.Errorf("readonly: loadData() failed: %s", err) - } - } - switch s.cached.Type() { - case ft.TDirectory, ft.THAMTShard: - a.Mode = os.ModeDir | 0555 - case ft.TFile: - size := s.cached.FileSize() - a.Mode = 0444 - a.Size = uint64(size) - a.Blocks = uint64(len(s.Nd.Links())) - case ft.TRaw: - a.Mode = 0444 - a.Size = uint64(len(s.cached.Data())) - a.Blocks = uint64(len(s.Nd.Links())) - case ft.TSymlink: - a.Mode = 0777 | os.ModeSymlink - a.Size = uint64(len(s.cached.Data())) - default: - return fmt.Errorf("invalid data type - %s", s.cached.Type()) - } - return nil -} - -// Lookup performs a lookup under this node. -func (s *Node) Lookup(ctx context.Context, name string) (fs.Node, error) { - log.Debugf("Lookup '%s'", name) - link, _, err := uio.ResolveUnixfsOnce(ctx, s.Ipfs.DAG, s.Nd, []string{name}) - switch err { - case os.ErrNotExist, mdag.ErrLinkNotFound: - // todo: make this error more versatile. - return nil, fuse.ENOENT - default: - log.Errorf("fuse lookup %q: %s", name, err) - return nil, fuse.EIO - case nil: - // noop - } - - nd, err := s.Ipfs.DAG.Get(ctx, link.Cid) - switch err { - case ipld.ErrNotFound: - default: - log.Errorf("fuse lookup %q: %s", name, err) - return nil, err - case nil: - // noop - } - - return &Node{Ipfs: s.Ipfs, Nd: nd}, nil -} - -// ReadDirAll reads the link structure as directory entries -func (s *Node) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) { - log.Debug("Node ReadDir") - dir, err := uio.NewDirectoryFromNode(s.Ipfs.DAG, s.Nd) - if err != nil { - return nil, err - } - - var entries []fuse.Dirent - err = dir.ForEachLink(ctx, func(lnk *ipld.Link) error { - n := lnk.Name - if len(n) == 0 { - n = lnk.Cid.String() - } - nd, err := s.Ipfs.DAG.Get(ctx, lnk.Cid) - if err != nil { - log.Warning("error fetching directory child node: ", err) - } - - t := fuse.DT_Unknown - switch nd := nd.(type) { - case *mdag.RawNode: - t = fuse.DT_File - case *mdag.ProtoNode: - if fsn, err := ft.FSNodeFromBytes(nd.Data()); err != nil { - log.Warning("failed to unmarshal protonode data field:", err) - } else { - switch fsn.Type() { - case ft.TDirectory, ft.THAMTShard: - t = fuse.DT_Dir - case ft.TFile, ft.TRaw: - t = fuse.DT_File - case ft.TSymlink: - t = fuse.DT_Link - case ft.TMetadata: - log.Error("metadata object in fuse should contain its wrapped type") - default: - log.Error("unrecognized protonode data type: ", fsn.Type()) - } - } - } - entries = append(entries, fuse.Dirent{Name: n, Type: t}) - return nil - }) - if err != nil { - return nil, err - } - - if len(entries) > 0 { - return entries, nil - } - return nil, fuse.ENOENT -} - -func (s *Node) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error { - // TODO: is nil the right response for 'bug off, we aint got none' ? - resp.Xattr = nil - return nil -} - -func (s *Node) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error) { - if s.cached == nil || s.cached.Type() != ft.TSymlink { - return "", fuse.Errno(syscall.EINVAL) - } - return string(s.cached.Data()), nil -} - -func (s *Node) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error { - c := s.Nd.Cid() - - // setup our logging event - lm := make(lgbl.DeferredMap) - lm["fs"] = "ipfs" - lm["key"] = func() interface{} { return c.String() } - lm["req_offset"] = req.Offset - lm["req_size"] = req.Size - defer log.EventBegin(ctx, "fuseRead", lm).Done() - - r, err := uio.NewDagReader(ctx, s.Nd, s.Ipfs.DAG) - if err != nil { - return err - } - o, err := r.Seek(req.Offset, io.SeekStart) - lm["res_offset"] = o - if err != nil { - return err - } - - buf := resp.Data[:min(req.Size, int(int64(r.Size())-req.Offset))] - n, err := io.ReadFull(r, buf) - if err != nil && err != io.EOF { - return err - } - resp.Data = resp.Data[:n] - lm["res_size"] = n - return nil // may be non-nil / not succeeded -} - -// to check that out Node implements all the interfaces we want -type roRoot interface { - fs.Node - fs.HandleReadDirAller - fs.NodeStringLookuper -} - -var _ roRoot = (*Root)(nil) - -type roNode interface { - fs.HandleReadDirAller - fs.HandleReader - fs.Node - fs.NodeStringLookuper - fs.NodeReadlinker - fs.NodeGetxattrer -} - -var _ roNode = (*Node)(nil) - -func min(a, b int) int { - if a < b { - return a - } - return b -} diff --git a/vendor/github.com/ipfs/go-ipfs/go.mod b/vendor/github.com/ipfs/go-ipfs/go.mod new file mode 100644 index 00000000..5ecc7fe7 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs/go.mod @@ -0,0 +1,119 @@ +module github.com/ipfs/go-ipfs + +require ( + bazil.org/fuse v0.0.0-20180421153158-65cc252bf669 + github.com/Kubuxu/go-os-helper v0.0.1 + github.com/Kubuxu/gocovmerge v0.0.0-20161216165753-7ecaa51963cd + github.com/blang/semver v3.5.1+incompatible + github.com/bren2010/proquint v0.0.0-20160323162903-38337c27106d + github.com/cenkalti/backoff v2.1.1+incompatible + github.com/dustin/go-humanize v1.0.0 + github.com/elgris/jsondiff v0.0.0-20160530203242-765b5c24c302 + github.com/fatih/color v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.4.7 + github.com/gogo/protobuf v1.2.1 + github.com/hashicorp/go-multierror v1.0.0 + github.com/hashicorp/golang-lru v0.5.1 + github.com/hsanjuan/go-libp2p-http v0.0.2 + github.com/ipfs/dir-index-html v1.0.3 + github.com/ipfs/go-bitswap v0.0.4 + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-blockservice v0.0.3 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-cidutil v0.0.1 + github.com/ipfs/go-datastore v0.0.3 + github.com/ipfs/go-detect-race v0.0.1 + github.com/ipfs/go-ds-badger v0.0.3 + github.com/ipfs/go-ds-flatfs v0.0.2 + github.com/ipfs/go-ds-leveldb v0.0.2 + github.com/ipfs/go-ds-measure v0.0.1 + github.com/ipfs/go-fs-lock v0.0.1 + github.com/ipfs/go-ipfs-addr v0.0.1 + github.com/ipfs/go-ipfs-blockstore v0.0.1 + github.com/ipfs/go-ipfs-blocksutil v0.0.1 + github.com/ipfs/go-ipfs-chunker v0.0.1 + github.com/ipfs/go-ipfs-cmdkit v0.0.1 + github.com/ipfs/go-ipfs-cmds v0.0.5 + github.com/ipfs/go-ipfs-config v0.0.1 + github.com/ipfs/go-ipfs-ds-help v0.0.1 + github.com/ipfs/go-ipfs-exchange-interface v0.0.1 + github.com/ipfs/go-ipfs-exchange-offline v0.0.1 + github.com/ipfs/go-ipfs-files v0.0.2 + github.com/ipfs/go-ipfs-posinfo v0.0.1 + github.com/ipfs/go-ipfs-routing v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-ipld-cbor v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/ipfs/go-ipld-git v0.0.1 + github.com/ipfs/go-ipns v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-merkledag v0.0.3 + github.com/ipfs/go-metrics-interface v0.0.1 + github.com/ipfs/go-metrics-prometheus v0.0.2 + github.com/ipfs/go-mfs v0.0.4 + github.com/ipfs/go-path v0.0.3 + github.com/ipfs/go-unixfs v0.0.4 + github.com/ipfs/go-verifcid v0.0.1 + github.com/ipfs/hang-fds v0.0.1 + github.com/ipfs/interface-go-ipfs-core v0.0.6 + github.com/ipfs/iptb v1.4.0 + github.com/ipfs/iptb-plugins v0.0.2 + github.com/jbenet/go-is-domain v1.0.2 + github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c + github.com/jbenet/go-random-files v0.0.0-20190219210431-31b3f20ebded + github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-libp2p v0.0.12 + github.com/libp2p/go-libp2p-autonat-svc v0.0.5 + github.com/libp2p/go-libp2p-circuit v0.0.4 + github.com/libp2p/go-libp2p-connmgr v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 + github.com/libp2p/go-libp2p-kad-dht v0.0.7 + github.com/libp2p/go-libp2p-kbucket v0.1.1 + github.com/libp2p/go-libp2p-loggables v0.0.1 + github.com/libp2p/go-libp2p-metrics v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.2 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.2 + github.com/libp2p/go-libp2p-pnet v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-libp2p-pubsub v0.0.1 + github.com/libp2p/go-libp2p-pubsub-router v0.0.3 + github.com/libp2p/go-libp2p-quic-transport v0.0.3 + github.com/libp2p/go-libp2p-record v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/libp2p/go-libp2p-routing-helpers v0.0.2 + github.com/libp2p/go-libp2p-secio v0.0.1 + github.com/libp2p/go-libp2p-swarm v0.0.2 + github.com/libp2p/go-maddr-filter v0.0.1 + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/libp2p/go-testutil v0.0.1 + github.com/mattn/go-runewidth v0.0.4 // indirect + github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect + github.com/mitchellh/go-homedir v1.1.0 + github.com/mr-tron/base58 v1.1.0 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-dns v0.0.2 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/multiformats/go-multibase v0.0.1 + github.com/multiformats/go-multihash v0.0.1 + github.com/opentracing/opentracing-go v1.0.2 + github.com/prometheus/client_golang v0.9.2 + github.com/syndtr/goleveldb v1.0.0 + github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc + github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible + github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible + github.com/whyrusleeping/go-sysinfo v0.0.0-20190219211824-4a357d4b90b1 + github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 + github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c + golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 + golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e // indirect + gopkg.in/airbrake/gobrake.v2 v2.0.9 // indirect + gopkg.in/cheggaaa/pb.v1 v1.0.28 + gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 // indirect + gotest.tools/gotestsum v0.3.3 +) + +go 1.12 diff --git a/vendor/github.com/ipfs/go-ipfs/go.sum b/vendor/github.com/ipfs/go-ipfs/go.sum new file mode 100644 index 00000000..29afbf46 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipfs/go.sum @@ -0,0 +1,580 @@ +bazil.org/fuse v0.0.0-20180421153158-65cc252bf669 h1:FNCRpXiquG1aoyqcIWVFmpTSKVcx2bQD38uZZeGtdlw= +bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi81xWQA2QIVxjWkFHptGgC547vchpUbtFo= +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1 h1:EJiD2VUQyh5A9hWJLmc6iWg6yIcJ7jpBcwC8GMGXfDk= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/Kubuxu/gocovmerge v0.0.0-20161216165753-7ecaa51963cd h1:HNhzThEtZW714v8Eda8sWWRcu9WSzJC+oCyjRjvZgRA= +github.com/Kubuxu/gocovmerge v0.0.0-20161216165753-7ecaa51963cd/go.mod h1:bqoB8kInrTeEtYAwaIXoSRqdwnjQmFhsfusnzyui6yY= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e h1:2Z+EBRrOJsA3psnUPcEWMIH2EIga1xHflQcr/EZslx8= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e/go.mod h1:3oM7gXIttpYDAJXpVNnSCiUMYBLIZ6cb1t+Ip982MRo= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/bifurcation/mint v0.0.0-20181105073638-824af6541065 h1:ArS0Fye/ZH2QmKVSj4JEf+9ARkXNe18jcFkmr4XPRiw= +github.com/bifurcation/mint v0.0.0-20181105073638-824af6541065/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= +github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bren2010/proquint v0.0.0-20160323162903-38337c27106d h1:QgeLLoPD3kRVmeu/1al9iIpIANMi9O1zXFm8BnYGCJg= +github.com/bren2010/proquint v0.0.0-20160323162903-38337c27106d/go.mod h1:Jbj8eKecMNwf0KFI75skSUZqMB4UCRcndUScVBTWyUI= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/cenkalti/backoff v2.1.1+incompatible h1:tKJnvO2kl0zmb/jA5UKAt4VoEVw1qxKWjE/Bpp46npY= +github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 h1:6xT9KW8zLC5IlbaIF5Q7JNieBoACT7iW0YTxQHR0in0= +github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f h1:6itBiEUtu+gOzXZWn46bM5/qm8LlV6/byR7Yflx/y6M= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgraph-io/badger v2.0.0-rc.2+incompatible h1:7KPp6xv5+wymkVUbkAnZZXvmDrJlf09m/7u1HG5lAYA= +github.com/dgraph-io/badger v2.0.0-rc.2+incompatible/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f h1:dDxpBYafY/GYpcl+LS4Bn3ziLPuEdGRkRjYAbSlWxSA= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/elgris/jsondiff v0.0.0-20160530203242-765b5c24c302 h1:QV0ZrfBLpFc2KDk+a4LJefDczXnonRwrYrQJY/9L4dA= +github.com/elgris/jsondiff v0.0.0-20160530203242-765b5c24c302/go.mod h1:qBlWZqWeVx9BjvqBsnC/8RUlAYpIFmPvgROcw0n1scE= +github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 h1:BBso6MBKW8ncyZLv37o+KNyy0HrrHgfnOaGQC2qvN+A= +github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5/go.mod h1:JpoxHjuQauoxiFMl1ie8Xc/7TfLuMZ5eOCONd1sUBHg= +github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/go-shellwords v1.0.3 h1:2TP32H4TAklZUdz84oj95BJhVnIrRasyx2j1cqH5K38= +github.com/gxed/go-shellwords v1.0.3/go.mod h1:N7paucT91ByIjmVJHhvoarjoQnmsi3Jd3vH7VqgtMxQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hsanjuan/go-libp2p-gostream v0.0.31 h1:9dIgHQPR0VWxhOyTZrbgLzTx0xvZ5rTpmhG9huGEPjY= +github.com/hsanjuan/go-libp2p-gostream v0.0.31/go.mod h1:cWvV5/NQ5XWi0eQZnX/svsAk6NLc4U26pItvj0eDeRk= +github.com/hsanjuan/go-libp2p-http v0.0.2 h1:hviJbUD3h1Ez2FYTUdnRjrkAzn/9i2V/cLZpFPgnuP8= +github.com/hsanjuan/go-libp2p-http v0.0.2/go.mod h1:MynY94gfOZxrw/0lVF4o7vbV2Zr84IC8sLBXmj8F5IE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/dir-index-html v1.0.3 h1:cKdOjJBKJgewgcv97zOlqsNOle52N91d3nAkbQadnuY= +github.com/ipfs/dir-index-html v1.0.3/go.mod h1:TG9zbaH/+4MnkGel0xF4SLNhk+YZvBNo6jjBkO/LaWc= +github.com/ipfs/go-bitswap v0.0.1 h1:Xx1ma7TWy9ISOx5zFq5YVQyrTHzUP4GkRPMsZokHxAg= +github.com/ipfs/go-bitswap v0.0.1/go.mod h1:z+tP3h+HTJ810n1R5yMy2ccKFffJ2F6Vqm/5Bf7vs2c= +github.com/ipfs/go-bitswap v0.0.3 h1:uFcSI9dkjUn67S7IM60vr2wA27aAvn8o9xYjaQCug3o= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-bitswap v0.0.4 h1:mrS8jBd+rCgKw7Owx4RM5QBiMi9DBc1Ih9FaEBYM4/M= +github.com/ipfs/go-bitswap v0.0.4/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-blockservice v0.0.1 h1:l6g1hwYDV6vb4bAvTqia6Cvo+zLMOPKel/n0zUX48bc= +github.com/ipfs/go-blockservice v0.0.1/go.mod h1:2Ao89U7jV1KIqqNk5EdhSTBG/Pgc1vMFr0bhkx376j4= +github.com/ipfs/go-blockservice v0.0.3 h1:40OvwrxeudTAlUGUAKNYnNPcwQeLtXedjzTWecnUinQ= +github.com/ipfs/go-blockservice v0.0.3/go.mod h1:/NNihwTi6V2Yr6g8wBI+BSwPuURpBRMtYNGrlxZ8KuI= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-cidutil v0.0.1 h1:UpDQI2LrihqOGY2mHaMhjrhh1DJ14N/58BQb7lKXvlQ= +github.com/ipfs/go-cidutil v0.0.1/go.mod h1:/0H649ymJksNEZvBAkM18HIctk7tkONH9tspTeLok48= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.0.3 h1:/eP3nMDmLzMJNoWSSYvEkmMTTrm9FFCN+JraP9NdlwU= +github.com/ipfs/go-datastore v0.0.3/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2 h1:7ToQt7QByBhOTuZF2USMv+PGlMcBC7FW7FdgQ4FCsoo= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-badger v0.0.3 h1:sVYE2YlCzltznTZeAP1S+bp3qipz7VzogfZDtf6tGq0= +github.com/ipfs/go-ds-badger v0.0.3/go.mod h1:7AzMKCsGav0u46HpdLiAEAOqizR1H6AZsjpHpQSPYCQ= +github.com/ipfs/go-ds-flatfs v0.0.2 h1:1zujtU5bPBH6B8roE+TknKIbBCrpau865xUk0dH3x2A= +github.com/ipfs/go-ds-flatfs v0.0.2/go.mod h1:YsMGWjUieue+smePAWeH/YhHtlmEMnEGhiwIn6K6rEM= +github.com/ipfs/go-ds-leveldb v0.0.1 h1:Z0lsTFciec9qYsyngAw1f/czhRU35qBLR2vhavPFgqA= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ds-leveldb v0.0.2 h1:P5HB59Zblym0B5XYOeEyw3YtPtbpIqQCavCSWaWEEk8= +github.com/ipfs/go-ds-leveldb v0.0.2/go.mod h1:CWFeBh5IAAscWyG/QRH+lJaAlnLWjsfPSNs4teyPUp0= +github.com/ipfs/go-ds-measure v0.0.1 h1:PrCueug+yZLkDCOthZTXKinuoCal/GvlAT7cNxzr03g= +github.com/ipfs/go-ds-measure v0.0.1/go.mod h1:wiH6bepKsgyNKpz3nyb4erwhhIVpIxnZbsjN1QpVbbE= +github.com/ipfs/go-fs-lock v0.0.1 h1:XHX8uW4jQBYWHj59XXcjg7BHlHxV9ZOYs6Y43yb7/l0= +github.com/ipfs/go-fs-lock v0.0.1/go.mod h1:DNBekbboPKcxs1aukPSaOtFA3QfSdi5C855v0i9XJ8Y= +github.com/ipfs/go-ipfs-addr v0.0.1 h1:DpDFybnho9v3/a1dzJ5KnWdThWD1HrFLpQ+tWIyBaFI= +github.com/ipfs/go-ipfs-addr v0.0.1/go.mod h1:uKTDljHT3Q3SUWzDLp3aYUi8MrY32fgNgogsIa0npjg= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-chunker v0.0.1 h1:cHUUxKFQ99pozdahi+uSC/3Y6HeRpi9oTeUHbE27SEw= +github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw= +github.com/ipfs/go-ipfs-cmdkit v0.0.1 h1:X6YXEAjUljTzevE6DPUKXSqcgf+4FXzcn5B957F5MXo= +github.com/ipfs/go-ipfs-cmdkit v0.0.1/go.mod h1:9FtbMdUabcSqv/G4/8WCxSLxkZxn/aZEFrxxqnVcRbg= +github.com/ipfs/go-ipfs-cmds v0.0.5 h1:+blTEnA0MzkQO86WnpfGnchdojrY5wJLhsbby3/JXEM= +github.com/ipfs/go-ipfs-cmds v0.0.5/go.mod h1:1QVgxSgenZvOMGVC/XUTC7tJxRBGPLxYvpgPpCi3DUk= +github.com/ipfs/go-ipfs-config v0.0.1 h1:6ED08emzI1imdsAjixFi2pEyZxTVD5ECKtCOxLBx+Uc= +github.com/ipfs/go-ipfs-config v0.0.1/go.mod h1:KDbHjNyg4e6LLQSQpkgQMBz6Jf4LXiWAcmnkcwmH0DU= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-files v0.0.1 h1:OroTsI58plHGX70HPLKy6LQhPR3HZJ5ip61fYlo6POM= +github.com/ipfs/go-ipfs-files v0.0.1/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-files v0.0.2 h1:fEEjF4H+1t8SFOHqUGp0KqcwgIRlbD2bu8CAS2sIggE= +github.com/ipfs/go-ipfs-files v0.0.2/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs= +github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-cbor v0.0.1 h1:g7yh27SznWP4CUbkFgjR+WQRjEeyxCpTR4iKVmXx1wA= +github.com/ipfs/go-ipld-cbor v0.0.1/go.mod h1:RXHr8s4k0NE0TKhnrxqZC9M888QfsBN9rhS5NjfKzY8= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/ipfs/go-ipld-git v0.0.1 h1:Lvhu0SdeHuC8UZbWuM56v35XPtM5pEG6S4WgEffafmg= +github.com/ipfs/go-ipld-git v0.0.1/go.mod h1:/LtgvxOdzEI9Kkwy8j0+QtzTCGfurUBr3Bo23uBG40U= +github.com/ipfs/go-ipns v0.0.1 h1:5vX0+ehF55YWxE8Pmf4eB8szcP+fh24AXnvCkOmSLCc= +github.com/ipfs/go-ipns v0.0.1/go.mod h1:HOiAXgGiH0wCSwsFM1IKdOy6YGT4iZafcsUKni703/g= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-merkledag v0.0.1 h1:HqvQsqqLvNOgItOy80Sd4T4rHvq6cXtAtrbEoWAON+I= +github.com/ipfs/go-merkledag v0.0.1/go.mod h1:CRdtHMROECqaehAGeJ0Wd9TtlmWv/ta5cUnvbTnniEI= +github.com/ipfs/go-merkledag v0.0.3 h1:A5DlOMzqTRDVmdgkf3dzCKCFmVWH4Zqwb0cbYXUs+Ro= +github.com/ipfs/go-merkledag v0.0.3/go.mod h1:Oc5kIXLHokkE1hWGMBHw+oxehkAaTOqtEb7Zbh6BhLA= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-metrics-prometheus v0.0.2 h1:9i2iljLg12S78OhC6UAiXi176xvQGiZaGVF1CUVdE+s= +github.com/ipfs/go-metrics-prometheus v0.0.2/go.mod h1:ELLU99AQQNi+zX6GCGm2lAgnzdSH3u5UVlCdqSXnEks= +github.com/ipfs/go-mfs v0.0.4 h1:34qX5A7mQTYTkszSKIAFr+Y7BbvwVjHW9mzHDxSUqTo= +github.com/ipfs/go-mfs v0.0.4/go.mod h1:rUT0dKNWkKa1T+MobpBL2zANn7p8Y6unXANC0PV2FLk= +github.com/ipfs/go-path v0.0.1 h1:6UskTq8xYVs3zVnHjXDvoCqw22dKWK1BwD1cy1cuHyc= +github.com/ipfs/go-path v0.0.1/go.mod h1:ztzG4iSBN2/CJa93rtHAv/I+mpK+BGALeUoJzhclhw0= +github.com/ipfs/go-path v0.0.3 h1:G/VFcCMXtp36JUPPyytYQ1I3UsBUBf47M//uSdTLnFg= +github.com/ipfs/go-path v0.0.3/go.mod h1:zIRQUez3LuQIU25zFjC2hpBTHimWx7VK5bjZgRLbbdo= +github.com/ipfs/go-todocounter v0.0.1 h1:kITWA5ZcQZfrUnDNkRn04Xzh0YFaDFXsoO2A81Eb6Lw= +github.com/ipfs/go-todocounter v0.0.1/go.mod h1:l5aErvQc8qKE2r7NDMjmq5UNAvuZy0rC8BHOplkWvZ4= +github.com/ipfs/go-unixfs v0.0.1 h1:CTTGqLxU5+PRkkeA+w1peStqRWFD1Kya+yZgIT4Xy1w= +github.com/ipfs/go-unixfs v0.0.1/go.mod h1:ZlB83nMtxNMx4DAAE5/GixeKN1qHC+xspBksI7Q5NeI= +github.com/ipfs/go-unixfs v0.0.4 h1:IApzQ+SnY0tfjqM7aU2b80CFYLZNHvhLmEZDIWr4e/E= +github.com/ipfs/go-unixfs v0.0.4/go.mod h1:eIo/p9ADu/MFOuyxzwU+Th8D6xoxU//r590vUpWyfz8= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/ipfs/hang-fds v0.0.1 h1:KGAxiGtJPT3THVRNT6yxgpdFPeX4ZemUjENOt6NlOn4= +github.com/ipfs/hang-fds v0.0.1/go.mod h1:U4JNbzwTpk/qP2Ms4VgrZ4HcgJGVosBJqMXvwe4udSY= +github.com/ipfs/interface-go-ipfs-core v0.0.6 h1:yf9D2cMLVgBMXHL+gs/HepDc/M7ZXQXYdoN0eXl7z9c= +github.com/ipfs/interface-go-ipfs-core v0.0.6/go.mod h1:VceUOYu+kPEy8Ev/gAhzXFTIfc/7xILKnL4fgZg8tZM= +github.com/ipfs/iptb v1.4.0 h1:YFYTrCkLMRwk/35IMyC6+yjoQSHTEcNcefBStLJzgvo= +github.com/ipfs/iptb v1.4.0/go.mod h1:1rzHpCYtNp87/+hTxG5TfCVn/yMY3dKnLn8tBiMfdmg= +github.com/ipfs/iptb-plugins v0.0.2 h1:JZp4h/+7f00dY4Epr8gzF+VqKITXmVGsZabvmZp7E9I= +github.com/ipfs/iptb-plugins v0.0.2/go.mod h1:Vud+X6lHv5QlgVbqCPBHt91I0gPIRgmkD6/tMUsI07U= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jbenet/go-is-domain v1.0.2 h1:11r5MSptcNFZyBoqubBQnVMUKRWLuRjL1banaIk+iYo= +github.com/jbenet/go-is-domain v1.0.2/go.mod h1:xbRLRb0S7FgzDBTJlguhDVwLYM/5yNtvktxj2Ttfy7Q= +github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c h1:uUx61FiAa1GI6ZmVd2wf2vULeQZIKG66eybjNXKYCz4= +github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c/go.mod h1:sdx1xVM9UuLw1tXnhJWN3piypTUO3vCIHYmG15KE/dU= +github.com/jbenet/go-random-files v0.0.0-20190219210431-31b3f20ebded h1:fHCa28iw+qaRWZK4IqrntHxXALD5kKr/ESrpOCRRdrg= +github.com/jbenet/go-random-files v0.0.0-20190219210431-31b3f20ebded/go.mod h1:FKvZrl5nnaGnTAMewcq0i7wM5zHD75e0lwlnF8q46uo= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.1 h1:oEjzhRzymY7NILTMzOKNVOpNZGpcQHrHriWw91pbJNM= +github.com/libp2p/go-libp2p v0.0.1/go.mod h1:bmRs8I0vwn6iRaVssZnJx/epY6WPSKiLoK1vyle4EX0= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p v0.0.4/go.mod h1:B9yfFVwbsEmGPlyJROAoqrjumbMB2n0YrgNm1intDOY= +github.com/libp2p/go-libp2p v0.0.12 h1:UbZO296s6/Cvoz4LmymvL7LrXtHkD58Xtt8Iddx/N+I= +github.com/libp2p/go-libp2p v0.0.12/go.mod h1:l8kmLMc4DToz2TtA0aWEaE4/jVMALRKw8Kv2WTR0LHc= +github.com/libp2p/go-libp2p-autonat v0.0.1 h1:d5eskFxeJ4ag1ekhMC3yLTK+z+6RTw9W1Yv8HQma75k= +github.com/libp2p/go-libp2p-autonat v0.0.1/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.2 h1:ilo9QPzNPf1hMkqaPG55yzvhILf5ZtijstJhcii+l3s= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.3 h1:PUD+pAx8Qs9hh+Bowzxq8RCkg/Vwrz5oCFC4peixXQk= +github.com/libp2p/go-libp2p-autonat v0.0.3/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.4 h1:cZzdB9KW1ZkHnSjLCB6aFNw47XS4r+SecCVMuVB1xgo= +github.com/libp2p/go-libp2p-autonat v0.0.4/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat-svc v0.0.2 h1:beAUwqt3wHWlguz1EYdG+bVOKyf5SIQpXfTSnfGoW7k= +github.com/libp2p/go-libp2p-autonat-svc v0.0.2/go.mod h1:j4iMiw0d3diRm5iB0noXumtb0mPvWrM1qAyh640cp8w= +github.com/libp2p/go-libp2p-autonat-svc v0.0.5 h1:bTom7QFAkJMXiA8ibSsKQ2+LKEHsXZz2IAWYolg/YYg= +github.com/libp2p/go-libp2p-autonat-svc v0.0.5/go.mod h1:6aLiQelA0CKEcPR0TvE9bqJ7U8Mc0nVdwCoho3ROdck= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1 h1:DYbjyQ5ZY3QVAVYZWG4uzBQ6Wmcd1C82Bk8Q/pJlM1I= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-circuit v0.0.4 h1:yOgEadnSVFj3e9KLBuLG+edqCImeav0VXxXvcimpOUQ= +github.com/libp2p/go-libp2p-circuit v0.0.4/go.mod h1:p1cHJnB9xnX5/1vZLkXgKwmNEOQQuF/Hp+SkATXnXYk= +github.com/libp2p/go-libp2p-connmgr v0.0.1 h1:9KP7UbP4a6fauLw954LhTGfovhkmMwvJsIf8G4CCons= +github.com/libp2p/go-libp2p-connmgr v0.0.1/go.mod h1:eUBBlbuwBBTd/eim7KV5x0fOD2UHDjSwhzmBL6miIx8= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-daemon v0.0.6/go.mod h1:nkhjsjSzkF+tg6iScsTTgq9m+VfyMtXNpycYG4CFvC8= +github.com/libp2p/go-libp2p-discovery v0.0.1 h1:VkjCKmJQMwpDUwtA8Qc1z3TQAHJgQ5nGQ6cdN0wQXOw= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-kad-dht v0.0.4/go.mod h1:oaBflOQcuC8H+SVV0YN26H6AS+wcUEJyjUGV66vXuSY= +github.com/libp2p/go-libp2p-kad-dht v0.0.7 h1:06CbmDaYeQ5Hj+s48WCeev7wJPx3VcpJNOe9NytSXOc= +github.com/libp2p/go-libp2p-kad-dht v0.0.7/go.mod h1:X90f4pG3MNZN9VeCX0rcH8AY9g3AspA2x5EJ9AvU/gM= +github.com/libp2p/go-libp2p-kbucket v0.0.1 h1:7H5hM851hkEpLOFjrVNSrrxo6J4bWrUQxxv+z1JW9xk= +github.com/libp2p/go-libp2p-kbucket v0.0.1/go.mod h1:Y0iQDHRTk/ZgM8PC4jExoF+E4j+yXWwRkdldkMa5Xm4= +github.com/libp2p/go-libp2p-kbucket v0.1.1 h1:ZrvW3qCM+lAuv7nrNts/zfEiClq+GZe8OIzX4Vb3Dwo= +github.com/libp2p/go-libp2p-kbucket v0.1.1/go.mod h1:Y0iQDHRTk/ZgM8PC4jExoF+E4j+yXWwRkdldkMa5Xm4= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.1 h1:on/zju7XE+JXc8gH+vTKmIh2UJFC1K8kGnJYluQrlz4= +github.com/libp2p/go-libp2p-nat v0.0.1/go.mod h1:4L6ajyUIlJvx1Cbh5pc6Ma6vMDpKXf3GgLO5u7W0oQ4= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-nat v0.0.4 h1:+KXK324yaY701On8a0aGjTnw8467kW3ExKcqW2wwmyw= +github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY= +github.com/libp2p/go-libp2p-net v0.0.0-20190226201932-e71fff5ba6e9/go.mod h1:8W6Wx3AZbTRTe8zSMLoAmT3mGyau+w6kGIRk+Z+MZ7Q= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= +github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.0-20190226201924-e2df3e49eabf/go.mod h1:lLfgn0N3z2t+ER57a88K7NTZjMO27ez5TyWSURd428E= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-peerstore v0.0.2 h1:Lirt3A1Oq11jszJ4SPNBo8chNv61UWXE538KUEGxTVk= +github.com/libp2p/go-libp2p-peerstore v0.0.2/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-pnet v0.0.1 h1:2e5d15M8XplUKsU4Fqrll5eDfqGg/7mHUufLkhbfKHM= +github.com/libp2p/go-libp2p-pnet v0.0.1/go.mod h1:bWN8HqdpgCdKnXSCsJhbWjiU3UZFa/tIe4no5jCmHVw= +github.com/libp2p/go-libp2p-protocol v0.0.0-20171212212132-b29f3d97e3a2/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-pubsub v0.0.1 h1:iJWpvBDZiZOoRBGqEifu9yUHti9ptnSODHt6tgrBC6c= +github.com/libp2p/go-libp2p-pubsub v0.0.1/go.mod h1:fYKlZBOF2yrJzYlgeEVFSbYWfbS+E8Zix6gMZ0A6WgE= +github.com/libp2p/go-libp2p-pubsub-router v0.0.3 h1:2EF+8nueIsA9Unpj1MxdlS9+dX29kwCxSttchMMfXsI= +github.com/libp2p/go-libp2p-pubsub-router v0.0.3/go.mod h1:h5z0kyMFRu2J46tt15eEuLHKEmu1MrFghsGHqTc/iII= +github.com/libp2p/go-libp2p-quic-transport v0.0.0-20190301030811-862195d91de1/go.mod h1:bw/6H57fSVn44ldP1Js6hnzpoiUm9YgBDKSv+ch+hWc= +github.com/libp2p/go-libp2p-quic-transport v0.0.3 h1:FGEPXsjpY9K6P3iMtJQPKGl45eXickBY1+xSJ84lVVI= +github.com/libp2p/go-libp2p-quic-transport v0.0.3/go.mod h1:v2oVuaFLkxlFpkFbXUty3dfEYSlNb0sCzvf8cRi1m/k= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-routing-helpers v0.0.2 h1:SLX7eDQE8Xo197NwNM/hM7WnH3w6fSGY9+G9HkiYwqQ= +github.com/libp2p/go-libp2p-routing-helpers v0.0.2/go.mod h1:zf1ook9HoOQpfnVXrF4gGorkPrGGf1g25vgH5+4SRNU= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-swarm v0.0.2 h1:cpHHXTeU2IgUu8LPemF7vaLPGtVC6VxMoll2EwqlC+E= +github.com/libp2p/go-libp2p-swarm v0.0.2/go.mod h1:n0cAAcKyndIrJWctQwjqXlAdIPBZzfdpBjx1SSvz30g= +github.com/libp2p/go-libp2p-transport v0.0.0-20190226201958-e8580c8a519d/go.mod h1:lcwgOszllbhvQXul37Kv5YbSYXPoUhRB2Z+Nr3jaBmo= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-nat v0.0.3 h1:l6fKV+p0Xa354EqQOQP+d8CivdLM4kl5GxC1hSc/UeI= +github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-reuseport-transport v0.0.2 h1:WglMwyXyBu61CMkjCCtnmqNqnjib0GIEjMiHTwR/KN4= +github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.0-20190218175335-a3f82916c8ad/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-tcp-transport v0.0.2 h1:EzOSRaHpyrGpJ5qe+9SaxJM1mrWlkSLFfNTufUkq0lg= +github.com/libp2p/go-tcp-transport v0.0.2/go.mod h1:VjZFHasNJ0QiJQNNwiFDy25qyGWTXQWs8GM5DR4/L1k= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1 h1:9ytMqq86Xvp8rcnC/1ZNuH612eXLDglvcu4ZHseJl8s= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/libp2p/go-ws-transport v0.0.2 h1:PtK1AoM16nm96FwPBQoq+4T4t9LdDwOhkB+mdXuGSlg= +github.com/libp2p/go-ws-transport v0.0.2/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f h1:sSeNEkJrs+0F9TUau0CgWTTNEwF23HST3Eq0A+QIx+A= +github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= +github.com/lucas-clemente/quic-go v0.10.0 h1:xEF+pSHYAOcu+U10Meunf+DTtc8vhQDRqlA0BJ6hufc= +github.com/lucas-clemente/quic-go v0.10.0/go.mod h1:wuD+2XqEx8G9jtwx5ou2BEYBsE+whgQmlj0Vz/77PrY= +github.com/lucas-clemente/quic-go v0.11.1 h1:zasajC848Dqq/+WqfqBCkmPw+YHNe1MBts/z7y7nXf4= +github.com/lucas-clemente/quic-go v0.11.1/go.mod h1:PpMmPfPKO9nKJ/psF49ESTAGQSdfXxlg1otPbEB2nOw= +github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced h1:zqEC1GJZFbGZA0tRyNZqRjep92K5fujFtFsu5ZW7Aug= +github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= +github.com/marten-seemann/qtls v0.2.3 h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNAI4vA= +github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/miekg/dns v1.1.4 h1:rCMZsU2ScVSYcAsOXgmC6+AKOK+6pmQTOcw03nfwYV0= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multicodec v0.1.6 h1:4u6lcjbE4VVVoigU4QJSSVYsGVP4j2jtDkR8lPwOrLE= +github.com/multiformats/go-multicodec v0.1.6/go.mod h1:lliaRHbcG8q33yf4Ot9BGD7JqR/Za9HE7HTyVyKwrUQ= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/common v0.0.0-20181126121408-4724e9255275 h1:PnBWHBf+6L0jOqq0gIVUe6Yk0/QMZ640k6NvkxcBf+8= +github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a h1:9a8MnZMP0X2nLJdBg+pBmGgkJlSaKC2KaQmTCk1XDtE= +github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI= +github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/sirupsen/logrus v1.0.5 h1:8c8b5uO0zS4X6RPl/sd1ENwSkIc0/H2PaHxE3udaE8I= +github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/texttheater/golang-levenshtein v0.0.0-20180516184445-d188e65d659e h1:T5PdfK/M1xyrHwynxMIVMWLS7f/qHwfslZphxtGnw7s= +github.com/texttheater/golang-levenshtein v0.0.0-20180516184445-d188e65d659e/go.mod h1:XDKHRm5ThF8YJjx001LtgelzsoaEcvnA7lVWz9EeX3g= +github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc h1:BCPnHtcboadS0DvysUuJXZ4lWVv5Bh5i7+tbIyi+ck4= +github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc/go.mod h1:r45hJU7yEoA81k6MWNhpMj/kms0n14dkzkxYHoB96UM= +github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 h1:5HZfQkwe0mIfyDmc1Em5GqlNRzcdtlv4HTNmdpt7XH0= +github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11/go.mod h1:Wlo/SzPmxVp6vXpGt/zaXhHH0fn4IxgqZc82aKg6bpQ= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= +github.com/whyrusleeping/go-ctrlnet v0.0.0-20180313164037-f564fbbdaa95/go.mod h1:SJqKCCPXRfBFCwXjfNT/skfsceF7+MBFLI2OrvuRA7g= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-sysinfo v0.0.0-20190219211824-4a357d4b90b1 h1:ctS9Anw/KozviCCtK6VWMz5kPL9nbQzbQY4yfqlIV4M= +github.com/whyrusleeping/go-sysinfo v0.0.0-20190219211824-4a357d4b90b1/go.mod h1:tKH72zYNt/exx6/5IQO6L9LoQ0rEjd5SbbWaDTs9Zso= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30 h1:nMCC9Pwz1pxfC1Y6mYncdk+kq8d5aLx0Q+/gyZGE44M= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c h1:GGsyl0dZ2jJgVT+VvWBf/cNijrHRhkrTjkmp5wg7li0= +github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c/go.mod h1:xxcJeBb7SIUl/Wzkz1eVKJE/CB34YNrqX2TQI6jY9zs= +github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSvJi5zk5GLKVuid9TVjS9a0OmLIDKTfoZBL6Ow= +github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +go4.org v0.0.0-20190218023631-ce4c26f7be8e h1:m9LfARr2VIOW0vsV19kEKp/sWQvZnGobA8JHui/XJoY= +go4.org v0.0.0-20190218023631-ce4c26f7be8e/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180426230345-b49d69b5da94/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180427151831-cbbc999da32d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 h1:xQJI9OEiErEQ++DoXOHqEpzsGMrAv2Q2jyCpi7DmfpQ= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635 h1:2eB4G6bDQDeP69ZXbOKC00S2Kf6TIiRS+DzfKsKeQU0= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e h1:FDhOuMEY4JVRztM/gsbk+IKUQ8kj74bxZrgw87eMMVc= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3 h1:P6iTFmrTQqWrqLZPX1VMzCUbCRCAUXSUsSpkEOvWzJ0= +golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= +gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gotest.tools v2.1.0+incompatible h1:5USw7CrJBYKqjg9R7QlA6jzqZKEAtvW82aNmsxxGPxw= +gotest.tools v2.1.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/gotestsum v0.3.3 h1:IsPJwo4jMjWDWcABLiJJO/g8R6jHTS6NaDYnuiOi+0k= +gotest.tools/gotestsum v0.3.3/go.mod h1:0qrQpYrdmNTIx/xcxDS62tIo5eLVdVd2ALLCk1ST0BU= diff --git a/vendor/github.com/ipfs/go-ipfs/keystore/keystore.go b/vendor/github.com/ipfs/go-ipfs/keystore/keystore.go index bafc859b..d9467f26 100644 --- a/vendor/github.com/ipfs/go-ipfs/keystore/keystore.go +++ b/vendor/github.com/ipfs/go-ipfs/keystore/keystore.go @@ -7,8 +7,8 @@ import ( "path/filepath" "strings" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" + logging "github.com/ipfs/go-log" + ci "github.com/libp2p/go-libp2p-crypto" ) var log = logging.Logger("keystore") diff --git a/vendor/github.com/ipfs/go-ipfs/keystore/keystore_test.go b/vendor/github.com/ipfs/go-ipfs/keystore/keystore_test.go deleted file mode 100644 index fe827687..00000000 --- a/vendor/github.com/ipfs/go-ipfs/keystore/keystore_test.go +++ /dev/null @@ -1,273 +0,0 @@ -package keystore - -import ( - "fmt" - "io/ioutil" - "math/rand" - "os" - "path/filepath" - "sort" - "testing" - - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" -) - -type rr struct{} - -func (rr rr) Read(b []byte) (int, error) { - return rand.Read(b) -} - -func privKeyOrFatal(t *testing.T) ci.PrivKey { - priv, _, err := ci.GenerateEd25519Key(rr{}) - if err != nil { - t.Fatal(err) - } - return priv -} - -func TestKeystoreBasics(t *testing.T) { - tdir, err := ioutil.TempDir("", "keystore-test") - if err != nil { - t.Fatal(err) - } - - ks, err := NewFSKeystore(tdir) - if err != nil { - t.Fatal(err) - } - - l, err := ks.List() - if err != nil { - t.Fatal(err) - } - - if len(l) != 0 { - t.Fatal("expected no keys") - } - - k1 := privKeyOrFatal(t) - k2 := privKeyOrFatal(t) - k3 := privKeyOrFatal(t) - k4 := privKeyOrFatal(t) - - err = ks.Put("foo", k1) - if err != nil { - t.Fatal(err) - } - - err = ks.Put("bar", k2) - if err != nil { - t.Fatal(err) - } - - l, err = ks.List() - if err != nil { - t.Fatal(err) - } - - sort.Strings(l) - if l[0] != "bar" || l[1] != "foo" { - t.Fatal("wrong entries listed") - } - - if err := assertDirContents(tdir, []string{"foo", "bar"}); err != nil { - t.Fatal(err) - } - - err = ks.Put("foo", k3) - if err == nil { - t.Fatal("should not be able to overwrite key") - } - - if err := assertDirContents(tdir, []string{"foo", "bar"}); err != nil { - t.Fatal(err) - } - - exist, err := ks.Has("foo") - if !exist { - t.Fatal("should know it has a key named foo") - } - if err != nil { - t.Fatal(err) - } - - exist, err = ks.Has("nonexistingkey") - if exist { - t.Fatal("should know it doesn't have a key named nonexistingkey") - } - if err != nil { - t.Fatal(err) - } - - if err := ks.Delete("bar"); err != nil { - t.Fatal(err) - } - - if err := assertDirContents(tdir, []string{"foo"}); err != nil { - t.Fatal(err) - } - - if err := ks.Put("beep", k3); err != nil { - t.Fatal(err) - } - - if err := ks.Put("boop", k4); err != nil { - t.Fatal(err) - } - - if err := assertDirContents(tdir, []string{"foo", "beep", "boop"}); err != nil { - t.Fatal(err) - } - - if err := assertGetKey(ks, "foo", k1); err != nil { - t.Fatal(err) - } - - if err := assertGetKey(ks, "beep", k3); err != nil { - t.Fatal(err) - } - - if err := assertGetKey(ks, "boop", k4); err != nil { - t.Fatal(err) - } - - if err := ks.Put("..///foo/", k1); err == nil { - t.Fatal("shouldnt be able to put a poorly named key") - } - - if err := ks.Put("", k1); err == nil { - t.Fatal("shouldnt be able to put a key with no name") - } - - if err := ks.Put(".foo", k1); err == nil { - t.Fatal("shouldnt be able to put a key with a 'hidden' name") - } -} - -func TestInvalidKeyFiles(t *testing.T) { - tdir, err := ioutil.TempDir("", "keystore-test") - - if err != nil { - t.Fatal(err) - } - - defer os.RemoveAll(tdir) - - ks, err := NewFSKeystore(tdir) - if err != nil { - t.Fatal(err) - } - - key := privKeyOrFatal(t) - - bytes, err := key.Bytes() - if err != nil { - t.Fatal(err) - } - - err = ioutil.WriteFile(filepath.Join(ks.dir, "valid"), bytes, 0644) - if err != nil { - t.Fatal(err) - } - - err = ioutil.WriteFile(filepath.Join(ks.dir, ".invalid"), bytes, 0644) - if err != nil { - t.Fatal(err) - } - - l, err := ks.List() - if err != nil { - t.Fatal(err) - } - - sort.Strings(l) - if len(l) != 1 { - t.Fatal("wrong entry count") - } - - if l[0] != "valid" { - t.Fatal("wrong entries listed") - } - - exist, err := ks.Has("valid") - if !exist { - t.Fatal("should know it has a key named valid") - } - if err != nil { - t.Fatal(err) - } - - if exist, err = ks.Has(".invalid"); err == nil { - t.Fatal("shouldnt be able to put a key with a 'hidden' name") - } -} - -func TestNonExistingKey(t *testing.T) { - tdir, err := ioutil.TempDir("", "keystore-test") - if err != nil { - t.Fatal(err) - } - - ks, err := NewFSKeystore(tdir) - if err != nil { - t.Fatal(err) - } - - k, err := ks.Get("does-it-exist") - if err != ErrNoSuchKey { - t.Fatalf("expected: %s, got %s", ErrNoSuchKey, err) - } - if k != nil { - t.Fatalf("Get on nonexistant key should give nil") - } -} - -func TestMakeKeystoreNoDir(t *testing.T) { - _, err := NewFSKeystore("/this/is/not/a/real/dir") - if err == nil { - t.Fatal("shouldnt be able to make a keystore in a nonexistant directory") - } -} - -func assertGetKey(ks Keystore, name string, exp ci.PrivKey) error { - out_k, err := ks.Get(name) - if err != nil { - return err - } - - if !out_k.Equals(exp) { - return fmt.Errorf("key we got out didnt match expectation") - } - - return nil -} - -func assertDirContents(dir string, exp []string) error { - finfos, err := ioutil.ReadDir(dir) - if err != nil { - return err - } - - if len(finfos) != len(exp) { - return fmt.Errorf("expected %d directory entries", len(exp)) - } - - var names []string - for _, fi := range finfos { - names = append(names, fi.Name()) - } - - sort.Strings(names) - sort.Strings(exp) - if len(names) != len(exp) { - return fmt.Errorf("directory had wrong number of entries in it") - } - - for i, v := range names { - if v != exp[i] { - return fmt.Errorf("had wrong entry in directory") - } - } - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore.go b/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore.go index 6983100f..4f505a99 100644 --- a/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore.go +++ b/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore.go @@ -1,6 +1,6 @@ package keystore -import ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" +import ci "github.com/libp2p/go-libp2p-crypto" // MemKeystore is an in memory keystore implementation that is not persisted to // any backing storage. diff --git a/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore_test.go b/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore_test.go deleted file mode 100644 index 62533d54..00000000 --- a/vendor/github.com/ipfs/go-ipfs/keystore/memkeystore_test.go +++ /dev/null @@ -1,99 +0,0 @@ -package keystore - -import ( - "sort" - "testing" -) - -func TestMemKeyStoreBasics(t *testing.T) { - ks := NewMemKeystore() - - l, err := ks.List() - if err != nil { - t.Fatal(err) - } - - if len(l) != 0 { - t.Fatal("expected no keys") - } - - k1 := privKeyOrFatal(t) - k2 := privKeyOrFatal(t) - k3 := privKeyOrFatal(t) - k4 := privKeyOrFatal(t) - - err = ks.Put("foo", k1) - if err != nil { - t.Fatal(err) - } - - err = ks.Put("bar", k2) - if err != nil { - t.Fatal(err) - } - - l, err = ks.List() - if err != nil { - t.Fatal(err) - } - - sort.Strings(l) - if l[0] != "bar" || l[1] != "foo" { - t.Fatal("wrong entries listed") - } - - err = ks.Put("foo", k3) - if err == nil { - t.Fatal("should not be able to overwrite key") - } - - exist, err := ks.Has("foo") - if !exist { - t.Fatal("should know it has a key named foo") - } - if err != nil { - t.Fatal(err) - } - - exist, err = ks.Has("nonexistingkey") - if exist { - t.Fatal("should know it doesn't have a key named nonexistingkey") - } - if err != nil { - t.Fatal(err) - } - - if err := ks.Delete("bar"); err != nil { - t.Fatal(err) - } - if err := ks.Put("beep", k3); err != nil { - t.Fatal(err) - } - - if err := ks.Put("boop", k4); err != nil { - t.Fatal(err) - } - if err := assertGetKey(ks, "foo", k1); err != nil { - t.Fatal(err) - } - - if err := assertGetKey(ks, "beep", k3); err != nil { - t.Fatal(err) - } - - if err := assertGetKey(ks, "boop", k4); err != nil { - t.Fatal(err) - } - - if err := ks.Put("..///foo/", k1); err == nil { - t.Fatal("shouldnt be able to put a poorly named key") - } - - if err := ks.Put("", k1); err == nil { - t.Fatal("shouldnt be able to put a key with no name") - } - - if err := ks.Put(".foo", k1); err == nil { - t.Fatal("shouldnt be able to put a key with a 'hidden' name") - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/misc/completion/ipfs-completion.bash b/vendor/github.com/ipfs/go-ipfs/misc/completion/ipfs-completion.bash deleted file mode 100644 index c1487cb3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/misc/completion/ipfs-completion.bash +++ /dev/null @@ -1,949 +0,0 @@ -_ipfs_comp() -{ - COMPREPLY=( $(compgen -W "$1" -- ${word}) ) - if [[ ${#COMPREPLY[@]} == 1 && ${COMPREPLY[0]} == "--"*"=" ]] ; then - # If there's only one option, with =, then discard space - compopt -o nospace - fi -} - -_ipfs_help_only() -{ - _ipfs_comp "--help" -} - -_ipfs_add() -{ - if [[ "${prev}" == "--chunker" ]] ; then - _ipfs_comp "placeholder1 placeholder2 placeholder3" # TODO: a) Give real options, b) Solve autocomplete bug for "=" - elif [ "${prev}" == "--pin" ] ; then - _ipfs_comp "true false" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --quiet --silent --progress --trickle --only-hash --wrap-with-directory --hidden --chunker= --pin= --raw-leaves --help " - else - _ipfs_filesystem_complete - fi -} - -_ipfs_bitswap() -{ - ipfs_comp "ledger stat wantlist --help" -} - -_ipfs_bitswap_ledger() -{ - _ipfs_help_only -} - -_ipfs_bitswap_stat() -{ - _ipfs_help_only -} - -_ipfs_bitswap_wantlist() -{ - ipfs_comp "--peer= --help" -} - -_ipfs_block() -{ - _ipfs_comp "get put rm stat --help" -} - -_ipfs_block_get() -{ - _ipfs_hash_complete -} - -_ipfs_block_put() -{ - if [ "${prev}" == "--format" ] ; then - _ipfs_comp "v0 placeholder2 placeholder3" # TODO: a) Give real options, b) Solve autocomplete bug for "=" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--format= --help" - else - _ipfs_filesystem_complete - fi -} - -_ipfs_block_rm() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--force --quiet --help" - else - _ipfs_hash_complete - fi -} - -_ipfs_block_stat() -{ - _ipfs_hash_complete -} - -_ipfs_bootstrap() -{ - _ipfs_comp "add list rm --help" -} - -_ipfs_bootstrap_add() -{ - _ipfs_comp "default --help" -} - -_ipfs_bootstrap_list() -{ - _ipfs_help_only -} - -_ipfs_bootstrap_rm() -{ - _ipfs_comp "all --help" -} - -_ipfs_cat() -{ - if [[ ${prev} == */* ]] ; then - COMPREPLY=() # Only one argument allowed - elif [[ ${word} == */* ]] ; then - _ipfs_hash_complete - else - _ipfs_pinned_complete - fi -} - -_ipfs_commands() -{ - _ipfs_comp "--flags --help" -} - -_ipfs_config() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--bool --json" - elif [[ ${prev} == *.* ]] ; then - COMPREPLY=() # Only one subheader of the config can be shown or edited. - else - _ipfs_comp "show edit replace" - fi -} - -_ipfs_config_edit() -{ - _ipfs_help_only -} - -_ipfs_config_replace() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--help" - else - _ipfs_filesystem_complete - fi -} - -_ipfs_config_show() -{ - _ipfs_help_only -} - -_ipfs_daemon() -{ - if [[ ${prev} == "--routing" ]] ; then - _ipfs_comp "dht dhtclient none" # TODO: Solve autocomplete bug for "=" - elif [[ ${prev} == "--mount-ipfs" ]] || [[ ${prev} == "--mount-ipns" ]] || [[ ${prev} == "=" ]]; then - _ipfs_filesystem_complete - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--init --routing= --mount --writable --mount-ipfs= \ - --mount-ipns= --unrestricted-api --disable-transport-encryption \ - -- enable-gc --manage-fdlimit --offline --migrate --help" - fi -} - -_ipfs_dag() -{ - _ipfs_comp "get put --help" -} - -_ipfs_dag_get() -{ - _ipfs_help_only -} - -_ipfs_dag_put() -{ - if [[ ${prev} == "--format" ]] ; then - _ipfs_comp "cbor placeholder1" # TODO: a) Which format more then cbor is valid? b) Solve autocomplete bug for "=" - elif [[ ${prev} == "--input-enc" ]] ; then - _ipfs_comp "json placeholder1" # TODO: a) Which format more then json is valid? b) Solve autocomplete bug for "=" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--format= --input-enc= --help" - else - _ipfs_filesystem_complete - fi -} - -_ipfs_dht() -{ - _ipfs_comp "findpeer findprovs get provide put query --help" -} - -_ipfs_dht_findpeer() -{ - _ipfs_comp "--verbose --help" -} - -_ipfs_dht_findprovs() -{ - _ipfs_comp "--verbose --help" -} - -_ipfs_dht_get() -{ - _ipfs_comp "--verbose --help" -} - -_ipfs_dht_provide() -{ - _ipfs_comp "--recursive --verbose --help" -} - -_ipfs_dht_put() -{ - _ipfs_comp "--verbose --help" -} - -_ipfs_dht_query() -{ - _ipfs_comp "--verbose --help" -} - -_ipfs_diag() -{ - _ipfs_comp "sys cmds net --help" -} - -_ipfs_diag_cmds() -{ - if [[ ${prev} == "clear" ]] ; then - return 0 - elif [[ ${prev} =~ ^-?[0-9]+$ ]] ; then - _ipfs_comp "ns us µs ms s m h" # TODO: Trigger with out space, eg. "ipfs diag set-time 10ns" not "... set-time 10 ns" - elif [[ ${prev} == "set-time" ]] ; then - _ipfs_help_only - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--verbose --help" - else - _ipfs_comp "clear set-time" - fi -} - -_ipfs_diag_sys() -{ - _ipfs_help_only -} - -_ipfs_diag_net() -{ - if [[ ${prev} == "--vis" ]] ; then - _ipfs_comp "d3 dot text" # TODO: Solve autocomplete bug for "=" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--timeout= --vis= --help" - fi -} - -_ipfs_dns() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --help" - fi -} - -_ipfs_files() -{ - _ipfs_comp "mv rm flush read write cp ls mkdir stat" -} - -_ipfs_files_mv() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --flush" - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_rm() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --flush" - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} -_ipfs_files_flush() -{ - if [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_read() -{ - if [[ ${prev} == "--count" ]] || [[ ${prev} == "--offset" ]] ; then - COMPREPLY=() # Numbers, just keep it empty - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--offset --count --help" - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_write() -{ - if [[ ${prev} == "--count" ]] || [[ ${prev} == "--offset" ]] ; then # Dirty check - COMPREPLY=() # Numbers, just keep it empty - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--offset --count --create --truncate --help" - elif [[ ${prev} == /* ]] ; then - _ipfs_filesystem_complete - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_cp() -{ - if [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_ls() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "-l --help" - elif [[ ${prev} == /* ]] ; then - COMPREPLY=() # Path exist - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_mkdir() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--parents --help" - - elif [[ ${prev} == /* ]] ; then - COMPREPLY=() # Path exist - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_files_stat() -{ - if [[ ${prev} == /* ]] ; then - COMPREPLY=() # Path exist - elif [[ ${word} == /* ]] ; then - _ipfs_files_complete - else - COMPREPLY=( / ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_file() -{ - if [[ ${prev} == "ls" ]] ; then - _ipfs_hash_complete - else - _ipfs_comp "ls --help" - fi -} - -_ipfs_file_ls() -{ - _ipfs_help_only -} - -_ipfs_get() -{ - if [ "${prev}" == "--output" ] ; then - compopt -o default # Re-enable default file read - COMPREPLY=() - elif [ "${prev}" == "--compression-level" ] ; then - _ipfs_comp "-1 1 2 3 4 5 6 7 8 9" # TODO: Solve autocomplete bug for "=" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--output= --archive --compress --compression-level= --help" - else - _ipfs_hash_complete - fi -} - -_ipfs_id() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--format= --help" - fi -} - -_ipfs_init() -{ - _ipfs_comp "--bits --force --empty-repo --help" -} - -_ipfs_log() -{ - _ipfs_comp "level ls tail --help" -} - -_ipfs_log_level() -{ - # TODO: auto-complete subsystem and level - _ipfs_help_only -} - -_ipfs_log_ls() -{ - _ipfs_help_only -} - -_ipfs_log_tail() -{ - _ipfs_help_only -} - -_ipfs_ls() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--headers --resolve-type=false --help" - else - _ipfs_hash_complete - fi -} - -_ipfs_mount() -{ - if [[ ${prev} == "--ipfs-path" ]] || [[ ${prev} == "--ipns-path" ]] || [[ ${prev} == "=" ]] ; then - _ipfs_filesystem_complete - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--ipfs-path= --ipns-path= --help" - fi -} - -_ipfs_name() -{ - _ipfs_comp "publish resolve --help" -} - -_ipfs_name_publish() -{ - if [[ ${prev} == "--lifetime" ]] || [[ ${prev} == "--ttl" ]] ; then - COMPREPLY=() # Accept only numbers - elif [[ ${prev} =~ ^-?[0-9]+$ ]] ; then - _ipfs_comp "ns us µs ms s m h" # TODO: Trigger without space, eg. "ipfs diag set-time 10ns" not "... set-time 10 ns" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--resolve --lifetime --ttl --help" - elif [[ ${word} == */ ]]; then - _ipfs_hash_complete - else - _ipfs_pinned_complete - fi -} - -_ipfs_name_resolve() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --nocache --help" - fi -} - -_ipfs_object() -{ - _ipfs_comp "data diff get links new patch put stat --help" -} - -_ipfs_object_data() -{ - _ipfs_hash_complete -} - -_ipfs_object_diff() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--verbose --help" - else - _ipfs_hash_complete - fi -} - - -_ipfs_object_get() -{ - if [ "${prev}" == "--encoding" ] ; then - _ipfs_comp "protobuf json xml" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--encoding --help" - else - _ipfs_hash_complete - fi -} - -_ipfs_object_links() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--headers --help" - else - _ipfs_hash_complete - fi -} - -_ipfs_object_new() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--help" - else - _ipfs_comp "unixfs-dir" - fi -} - -_ipfs_object_patch() -{ - if [[ -n "${COMP_WORDS[3]}" ]] ; then # Root merkledag object exist - case "${COMP_WORDS[4]}" in - append-data) - _ipfs_help_only - ;; - add-link) - if [[ ${word} == -* ]] && [[ ${prev} == "add-link" ]] ; then # Dirty check - _ipfs_comp "--create" - #else - # TODO: Hash path autocomplete. This is tricky, can be hash or a name. - fi - ;; - rm-link) - _ipfs_hash_complete - ;; - set-data) - _ipfs_filesystem_complete - ;; - *) - _ipfs_comp "append-data add-link rm-link set-data" - ;; - esac - else - _ipfs_hash_complete - fi -} - -_ipfs_object_put() -{ - if [ "${prev}" == "--inputenc" ] ; then - _ipfs_comp "protobuf json" - elif [ "${prev}" == "--datafieldenc" ] ; then - _ipfs_comp "text base64" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--inputenc --datafieldenc --help" - else - _ipfs_hash_complete - fi -} - -_ipfs_object_stat() -{ - _ipfs_hash_complete -} - -_ipfs_pin() -{ - _ipfs_comp "rm ls add --help" -} - -_ipfs_pin_add() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive= --help" - elif [[ ${word} == */ ]] && [[ ${word} != "/ipfs/" ]] ; then - _ipfs_hash_complete - fi -} - -_ipfs_pin_ls() -{ - if [[ ${prev} == "--type" ]] || [[ ${prev} == "-t" ]] ; then - _ipfs_comp "direct indirect recursive all" # TODO: Solve autocomplete bug for - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--count --quiet --type= --help" - elif [[ ${word} == */ ]] && [[ ${word} != "/ipfs/" ]] ; then - _ipfs_hash_complete - fi -} - -_ipfs_pin_rm() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --help" - elif [[ ${word} == */ ]] && [[ ${word} != "/ipfs/" ]] ; then - COMPREPLY=() # TODO: _ipfs_hash_complete() + List local pinned hashes as default? - fi -} - -_ipfs_ping() -{ - _ipfs_comp "--count= --help" -} - -_ipfs_pubsub() -{ - _ipfs_comp "ls peers pub sub --help" -} - -_ipfs_pubsub_ls() -{ - _ipfs_help_only -} - -_ipfs_pubsub_peers() -{ - _ipfs_help_only -} - -_ipfs_pubsub_pub() -{ - _ipfs_help_only -} - -_ipfs_pubsub_sub() -{ - _ipfs_comp "--discover --help" -} - -_ipfs_refs() -{ - if [ "${prev}" == "--format" ] ; then - _ipfs_comp "src dst linkname" - elif [[ ${word} == -* ]] ; then - _ipfs_comp "local --format= --edges --unique --recursive --help" - #else - # TODO: Use "ipfs ref" and combine it with autocomplete, see _ipfs_hash_complete - fi -} - -_ipfs_refs_local() -{ - _ipfs_help_only -} - -_ipfs_repo() -{ - _ipfs_comp "fsck gc stat verify version --help" -} - -_ipfs_repo_version() -{ - _ipfs_comp "--quiet --help" -} - -_ipfs_repo_verify() -{ - _ipfs_help_only -} - -_ipfs_repo_gc() -{ - _ipfs_comp "--quiet --help" -} - -_ipfs_repo_stat() -{ - _ipfs_comp "--human --help" -} - -_ipfs_repo_fsck() -{ - _ipfs_help_only -} - -_ipfs_resolve() -{ - if [[ ${word} == /ipfs/* ]] ; then - _ipfs_hash_complete - elif [[ ${word} == /ipns/* ]] ; then - COMPREPLY=() # Can't autocomplete ipns - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--recursive --help" - else - opts="/ipns/ /ipfs/" - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - [[ $COMPREPLY = */ ]] && compopt -o nospace - fi -} - -_ipfs_stats() -{ - _ipfs_comp "bitswap bw repo --help" -} - -_ipfs_stats_bitswap() -{ - _ipfs_help_only -} - -_ipfs_stats_bw() -{ - # TODO: Which protocol is valid? - _ipfs_comp "--peer= --proto= --poll --interval= --help" -} - -_ipfs_stats_repo() -{ - _ipfs_comp "--human= --help" -} - -_ipfs_swarm() -{ - _ipfs_comp "addrs connect disconnect filters peers --help" -} - -_ipfs_swarm_addrs() -{ - _ipfs_comp "local --help" -} - -_ipfs_swarm_addrs_local() -{ - _ipfs_comp "--id --help" -} - -_ipfs_swarm_connect() -{ - _ipfs_multiaddr_complete -} - -_ipfs_swarm_disconnect() -{ - local OLDIFS="$IFS" ; local IFS=$'\n' # Change divider for iterator one line below - opts=$(for x in `ipfs swarm peers`; do echo ${x} ; done) - IFS="$OLDIFS" # Reset divider to space, ' ' - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - [[ $COMPREPLY = */ ]] && compopt -o nospace -o filenames -} - -_ipfs_swarm_filters() -{ - if [[ ${prev} == "add" ]] || [[ ${prev} == "rm" ]]; then - _ipfs_multiaddr_complete - else - _ipfs_comp "add rm --help" - fi -} - -_ipfs_swarm_filters_add() -{ - _ipfs_help_only -} - -_ipfs_swarm_filters_rm() -{ - _ipfs_help_only -} - -_ipfs_swarm_peers() -{ - _ipfs_help_only -} - -_ipfs_tar() -{ - _ipfs_comp "add cat --help" -} - -_ipfs_tar_add() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--help" - else - _ipfs_filesystem_complete - fi -} - -_ipfs_tar_cat() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--help" - else - _ipfs_filesystem_complete - fi -} - -_ipfs_update() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--version" # TODO: How does "--verbose" option work? - else - _ipfs_comp "versions version install stash revert fetch" - fi -} - -_ipfs_update_install() -{ - if [[ ${prev} == v*.*.* ]] ; then - COMPREPLY=() - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--version" - else - local OLDIFS="$IFS" ; local IFS=$'\n' # Change divider for iterator one line below - opts=$(for x in `ipfs update versions`; do echo ${x} ; done) - IFS="$OLDIFS" # Reset divider to space, ' ' - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - fi -} - -_ipfs_update_stash() -{ - if [[ ${word} == -* ]] ; then - _ipfs_comp "--tag --help" - fi -} -_ipfs_update_fetch() -{ - if [[ ${prev} == "--output" ]] ; then - _ipfs_filesystem_complete - elif [[ ${word} == -* ]] ; then - _ipfs_comp "--output --help" - fi -} - -_ipfs_version() -{ - _ipfs_comp "--number --commit --repo" -} - -_ipfs_hash_complete() -{ - local lastDir=${word%/*}/ - echo "LastDir: ${lastDir}" >> ~/Downloads/debug-ipfs.txt - local OLDIFS="$IFS" ; local IFS=$'\n' # Change divider for iterator one line below - opts=$(for x in `ipfs file ls ${lastDir}`; do echo ${lastDir}${x}/ ; done) # TODO: Implement "ipfs file ls -F" to get rid of frontslash after files. This take long time to run first time on a new shell. - echo "Options: ${opts}" >> ~/Downloads/debug-ipfs.txt - IFS="$OLDIFS" # Reset divider to space, ' ' - echo "Current: ${word}" >> ~/Downloads/debug-ipfs.txt - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - echo "Suggestion: ${COMPREPLY}" >> ~/Downloads/debug-ipfs.txt - [[ $COMPREPLY = */ ]] && compopt -o nospace -o filenames # Removing whitespace after output & handle output as filenames. (Only printing the latest folder of files.) - return 0 -} - -_ipfs_files_complete() -{ - local lastDir=${word%/*}/ - local OLDIFS="$IFS" ; local IFS=$'\n' # Change divider for iterator one line below - opts=$(for x in `ipfs files ls ${lastDir}`; do echo ${lastDir}${x}/ ; done) # TODO: Implement "ipfs files ls -F" to get rid of frontslash after files. This does currently throw "Error: /cats/foo/ is not a directory" - IFS="$OLDIFS" # Reset divider to space, ' ' - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - [[ $COMPREPLY = */ ]] && compopt -o nospace -o filenames - return 0 -} - -_ipfs_multiaddr_complete() -{ - local lastDir=${word%/*}/ - # Special case - if [[ ${word} == */"ipcidr"* ]] ; then # TODO: Broken, fix it. - opts="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32" # TODO: IPv6? - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - # "Loop" - elif [[ ${word} == /*/ ]] || [[ ${word} == /*/* ]] ; then - if [[ ${word} == /*/*/*/*/*/ ]] ; then - COMPREPLY=() - elif [[ ${word} == /*/*/*/*/ ]] ; then - word=${word##*/} - opts="ipfs/ " - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - elif [[ ${word} == /*/*/*/ ]] ; then - word=${word##*/} - opts="4001/ " - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - elif [[ ${word} == /*/*/ ]] ; then - word=${word##*/} - opts="udp/ tcp/ ipcidr/" - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - elif [[ ${word} == /*/ ]] ; then - COMPREPLY=() # TODO: This need to return something to NOT break the function. Maybe a "/" in the end as well due to -o filename option. - fi - COMPREPLY=${lastDir}${COMPREPLY} - else # start case - opts="/ip4/ /ip6/" - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) ) - fi - [[ $COMPREPLY = */ ]] && compopt -o nospace -o filenames - return 0 -} - -_ipfs_pinned_complete() -{ - local OLDIFS="$IFS" ; local IFS=$'\n' - local pinned=$(ipfs pin ls) - COMPREPLY=( $(compgen -W "${pinned}" -- ${word}) ) - IFS="$OLDIFS" - if [[ ${#COMPREPLY[*]} -eq 1 ]]; then # Only one completion, remove pretty output - COMPREPLY=( ${COMPREPLY[0]/ *//} ) #Remove ' ' and everything after - [[ $COMPREPLY = */ ]] && compopt -o nospace # Removing whitespace after output - fi -} -_ipfs_filesystem_complete() -{ - compopt -o default # Re-enable default file read - COMPREPLY=() -} - -_ipfs() -{ - COMPREPLY=() - compopt +o default # Disable default to not deny completion, see: http://stackoverflow.com/a/19062943/1216348 - - local word="${COMP_WORDS[COMP_CWORD]}" - local prev="${COMP_WORDS[COMP_CWORD-1]}" - - case "${COMP_CWORD}" in - 1) - local opts="add bitswap block bootstrap cat commands config daemon dag dht \ - diag dns file files get id init log ls mount name object pin ping pubsub \ - refs repo resolve stats swarm tar update version" - COMPREPLY=( $(compgen -W "${opts}" -- ${word}) );; - 2) - local command="${COMP_WORDS[1]}" - eval "_ipfs_$command" 2> /dev/null ;; - *) - local command="${COMP_WORDS[1]}" - local subcommand="${COMP_WORDS[2]}" - eval "_ipfs_${command}_${subcommand}" 2> /dev/null && return - eval "_ipfs_$command" 2> /dev/null ;; - esac -} -complete -F _ipfs ipfs diff --git a/vendor/github.com/ipfs/go-ipfs/misc/launchd/README.md b/vendor/github.com/ipfs/go-ipfs/misc/launchd/README.md deleted file mode 100644 index c9d30c9c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/misc/launchd/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# ipfs launchd agent - -A bare-bones launchd agent file for ipfs. To have launchd automatically run the ipfs daemon for you, run `./misc/launchd/install.sh` - diff --git a/vendor/github.com/ipfs/go-ipfs/misc/launchd/install.sh b/vendor/github.com/ipfs/go-ipfs/misc/launchd/install.sh deleted file mode 100755 index dc787e2e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/misc/launchd/install.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -src_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) -plist=io.ipfs.ipfs-daemon.plist -dest_dir="$HOME/Library/LaunchAgents" -IPFS_PATH="${IPFS_PATH:-$HOME/.ipfs}" -escaped_ipfs_path=$(echo $IPFS_PATH|sed 's/\//\\\//g') - -IPFS_BIN=$(which ipfs || echo ipfs) -escaped_ipfs_bin=$(echo $IPFS_BIN|sed 's/\//\\\//g') - -mkdir -p "$dest_dir" - -sed -e 's/{{IPFS_PATH}}/'"$escaped_ipfs_path"'/g' \ - -e 's/{{IPFS_BIN}}/'"$escaped_ipfs_bin"'/g' \ - "$src_dir/$plist" \ - > "$dest_dir/$plist" - -launchctl list | grep ipfs-daemon >/dev/null -if [ $? ]; then - echo Unloading existing ipfs-daemon - launchctl unload "$dest_dir/$plist" -fi - -echo Loading ipfs-daemon -if (( `sw_vers -productVersion | cut -d'.' -f2` > 9 )); then - sudo chown root "$dest_dir/$plist" - sudo launchctl bootstrap system "$dest_dir/$plist" -else - launchctl load "$dest_dir/$plist" -fi -launchctl list | grep ipfs-daemon diff --git a/vendor/github.com/ipfs/go-ipfs/misc/launchd/io.ipfs.ipfs-daemon.plist b/vendor/github.com/ipfs/go-ipfs/misc/launchd/io.ipfs.ipfs-daemon.plist deleted file mode 100644 index 4a5337f2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/misc/launchd/io.ipfs.ipfs-daemon.plist +++ /dev/null @@ -1,23 +0,0 @@ - - - - - KeepAlive - - Label - io.ipfs.ipfs-daemon - ProgramArguments - - {{IPFS_BIN}} - daemon - - EnvironmentVariables - - IPFS_PATH - {{IPFS_PATH}} - - RunAtLoad - - - - diff --git a/vendor/github.com/ipfs/go-ipfs/mk/footer.mk b/vendor/github.com/ipfs/go-ipfs/mk/footer.mk deleted file mode 100644 index 08e3d57e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/footer.mk +++ /dev/null @@ -1,3 +0,0 @@ -# standard NR-make boilerplate, to be included at the end of a file -d := $(dirstack_$(sp)) -sp := $(basename $(sp)) diff --git a/vendor/github.com/ipfs/go-ipfs/mk/git.mk b/vendor/github.com/ipfs/go-ipfs/mk/git.mk deleted file mode 100644 index c56b8ee3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/git.mk +++ /dev/null @@ -1 +0,0 @@ -git-hash:=$(shell git rev-parse --short HEAD 2>/dev/null) diff --git a/vendor/github.com/ipfs/go-ipfs/mk/golang.mk b/vendor/github.com/ipfs/go-ipfs/mk/golang.mk deleted file mode 100644 index 96a92b25..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/golang.mk +++ /dev/null @@ -1,75 +0,0 @@ -# golang utilities -GO_MIN_VERSION = 1.11 - - -# pre-definitions -GOCC ?= go -GOTAGS ?= -unexport GOFLAGS -GOFLAGS ?= -GOTFLAGS ?= - -# match Go's default GOPATH behaviour -export GOPATH ?= $(shell $(GOCC) env GOPATH) - -DEPS_GO := -TEST_GO := -TEST_GO_BUILD := -CHECK_GO := - -go-pkg-name=$(shell $(GOCC) list $(go-tags) github.com/ipfs/go-ipfs/$(1)) -go-main-name=$(notdir $(call go-pkg-name,$(1)))$(?exe) -go-curr-pkg-tgt=$(d)/$(call go-main-name,$(d)) -go-pkgs=$(shell $(GOCC) list github.com/ipfs/go-ipfs/...) - -go-tags=$(if $(GOTAGS), -tags="$(call join-with,$(space),$(GOTAGS))") -go-flags-with-tags=$(GOFLAGS)$(go-tags) - -define go-build -$(GOCC) build -i $(go-flags-with-tags) -o "$@" "$(call go-pkg-name,$<)" -endef - -define go-try-build -$(GOCC) build $(go-flags-with-tags) -o /dev/null "$(call go-pkg-name,$<)" -endef - -test_go_test: $$(DEPS_GO) - $(GOCC) test $(go-flags-with-tags) $(GOTFLAGS) ./... -.PHONY: test_go_test - -test_go_short: GOTFLAGS += -test.short -test_go_short: test_go_test -.PHONY: test_go_short - -test_go_race: GOTFLAGS += -race -test_go_race: test_go_test -.PHONY: test_go_race - -test_go_expensive: test_go_test $$(TEST_GO_BUILD) -.PHONY: test_go_expensive -TEST_GO += test_go_expensive - -test_go_fmt: - bin/test-go-fmt -.PHONY: test_go_fmt -TEST_GO += test_go_fmt - -test_go_megacheck: - @$(GOCC) get honnef.co/go/tools/cmd/megacheck - @for pkg in $(go-pkgs); do megacheck "$$pkg"; done -.PHONY: megacheck - -test_go: $(TEST_GO) - -check_go_version: - bin/check_go_version $(GO_MIN_VERSION) -.PHONY: check_go_version -DEPS_GO += check_go_version - -check_go_path: - GOPATH="$(GOPATH)" bin/check_go_path github.com/ipfs/go-ipfs -.PHONY: check_go_path -DEPS_GO += check_go_path - -TEST += $(TEST_GO) -TEST_SHORT += test_go_fmt test_go_short diff --git a/vendor/github.com/ipfs/go-ipfs/mk/gx.mk b/vendor/github.com/ipfs/go-ipfs/mk/gx.mk deleted file mode 100644 index 8f1744f2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/gx.mk +++ /dev/null @@ -1,14 +0,0 @@ -gx-path = gx/ipfs/$(shell gx deps find $(1))/$(1) - -gx-deps: - gx install --global -.PHONY: gx-deps - -ifneq ($(IPFS_GX_USE_GLOBAL),1) -gx-deps: bin/gx bin/gx-go -endif -.PHONY: gx-deps - -ifeq ($(tarball-is),0) -DEPS_GO += gx-deps -endif diff --git a/vendor/github.com/ipfs/go-ipfs/mk/header.mk b/vendor/github.com/ipfs/go-ipfs/mk/header.mk deleted file mode 100644 index 9ec77c7e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/header.mk +++ /dev/null @@ -1,5 +0,0 @@ -# keep track of dirs -# standard NR-make boilerplate, to be included at the beginning of a file -p := $(sp).x -dirstack_$(sp) := $(d) -d := $(dir) diff --git a/vendor/github.com/ipfs/go-ipfs/mk/tarball.mk b/vendor/github.com/ipfs/go-ipfs/mk/tarball.mk deleted file mode 100644 index 0c72988d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/tarball.mk +++ /dev/null @@ -1,13 +0,0 @@ - - -ifeq (,$(wildcard .tarball)) -tarball-is:=0 -else -tarball-is:=1 -# override git hash -git-hash:=$(shell cat .tarball) -endif - - -go-ipfs-source.tar.gz: distclean - bin/maketarball.sh $@ diff --git a/vendor/github.com/ipfs/go-ipfs/mk/util.mk b/vendor/github.com/ipfs/go-ipfs/mk/util.mk deleted file mode 100644 index fa6eae8e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/mk/util.mk +++ /dev/null @@ -1,36 +0,0 @@ -# util functions -OS ?= $(shell sh -c 'uname -s 2>/dev/null || echo not') -ifeq ($(OS),Windows_NT) - WINDOWS :=1 - ?exe :=.exe # windows compat - PATH_SEP :=; -else - ?exe := - PATH_SEP :=: -endif - -SUPPORTED_PLATFORMS += windows-386 -SUPPORTED_PLATFORMS += windows-amd64 - -SUPPORTED_PLATFORMS += linux-arm -SUPPORTED_PLATFORMS += linux-arm64 -SUPPORTED_PLATFORMS += linux-386 -SUPPORTED_PLATFORMS += linux-amd64 - -SUPPORTED_PLATFORMS += darwin-386 -SUPPORTED_PLATFORMS += darwin-amd64 - -SUPPORTED_PLATFORMS += freebsd-amd64 - -space:= -space+= -comma:=, -join-with=$(subst $(space),$1,$(strip $2)) - -# debug target, prints varaible. Example: `make print-GOFLAGS` -print-%: - @echo $*=$($*) - -# phony target that will mean that recipe is always exectued -ALWAYS: -.PHONY: ALWAYS diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/base.go b/vendor/github.com/ipfs/go-ipfs/namesys/base.go index ebeb86c3..27cc38f8 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/base.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/base.go @@ -5,8 +5,8 @@ import ( "strings" "time" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" + path "github.com/ipfs/go-path" + opts "github.com/ipfs/interface-go-ipfs-core/options/namesys" ) type onceResult struct { diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/cache.go b/vendor/github.com/ipfs/go-ipfs/namesys/cache.go index d2777566..4a5cb511 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/cache.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/cache.go @@ -3,7 +3,7 @@ package namesys import ( "time" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" + path "github.com/ipfs/go-path" ) func (ns *mpns) cacheGet(name string) (path.Path, bool) { diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/dns.go b/vendor/github.com/ipfs/go-ipfs/namesys/dns.go index 2c31fcae..931edec0 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/dns.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/dns.go @@ -6,9 +6,9 @@ import ( "net" "strings" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - isd "gx/ipfs/QmZmmuAXgX73UQmX1jRKjTGmjzq24Jinqkq8vzkBtno4uX/go-is-domain" + path "github.com/ipfs/go-path" + opts "github.com/ipfs/interface-go-ipfs-core/options/namesys" + isd "github.com/jbenet/go-is-domain" ) type LookupTXTFunc func(name string) (txt []string, err error) diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/dns_test.go b/vendor/github.com/ipfs/go-ipfs/namesys/dns_test.go deleted file mode 100644 index 460afb02..00000000 --- a/vendor/github.com/ipfs/go-ipfs/namesys/dns_test.go +++ /dev/null @@ -1,166 +0,0 @@ -package namesys - -import ( - "fmt" - "testing" - - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" -) - -type mockDNS struct { - entries map[string][]string -} - -func (m *mockDNS) lookupTXT(name string) (txt []string, err error) { - txt, ok := m.entries[name] - if !ok { - return nil, fmt.Errorf("no TXT entry for %s", name) - } - return txt, nil -} - -func TestDnsEntryParsing(t *testing.T) { - - goodEntries := []string{ - "QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - "dnslink=/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/foo", - "dnslink=/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/bar", - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/foo/bar/baz", - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/foo/bar/baz/", - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - } - - badEntries := []string{ - "QmYhE8xgFCjGcz6PHgnvJz5NOTCORRECT", - "quux=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - "dnslink=", - "dnslink=/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/foo", - "dnslink=ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/bar", - } - - for _, e := range goodEntries { - _, err := parseEntry(e) - if err != nil { - t.Log("expected entry to parse correctly!") - t.Log(e) - t.Fatal(err) - } - } - - for _, e := range badEntries { - _, err := parseEntry(e) - if err == nil { - t.Log("expected entry parse to fail!") - t.Fatal(err) - } - } -} - -func newMockDNS() *mockDNS { - return &mockDNS{ - entries: map[string][]string{ - "multihash.example.com.": []string{ - "dnslink=QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - }, - "ipfs.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - }, - "_dnslink.dipfs.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - }, - "dns1.example.com.": []string{ - "dnslink=/ipns/ipfs.example.com", - }, - "dns2.example.com.": []string{ - "dnslink=/ipns/dns1.example.com", - }, - "multi.example.com.": []string{ - "some stuff", - "dnslink=/ipns/dns1.example.com", - "masked dnslink=/ipns/example.invalid", - }, - "equals.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/=equals", - }, - "loop1.example.com.": []string{ - "dnslink=/ipns/loop2.example.com", - }, - "loop2.example.com.": []string{ - "dnslink=/ipns/loop1.example.com", - }, - "_dnslink.dloop1.example.com.": []string{ - "dnslink=/ipns/loop2.example.com", - }, - "_dnslink.dloop2.example.com.": []string{ - "dnslink=/ipns/loop1.example.com", - }, - "bad.example.com.": []string{ - "dnslink=", - }, - "withsegment.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment", - }, - "withrecsegment.example.com.": []string{ - "dnslink=/ipns/withsegment.example.com/subsub", - }, - "withtrailing.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/", - }, - "withtrailingrec.example.com.": []string{ - "dnslink=/ipns/withtrailing.example.com/segment/", - }, - "double.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - }, - "_dnslink.double.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - }, - "double.conflict.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", - }, - "_dnslink.conflict.example.com.": []string{ - "dnslink=/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjE", - }, - "fqdn.example.com.": []string{ - "dnslink=/ipfs/QmYvMB9yrsSf7RKBghkfwmHJkzJhW2ZgVwq3LxBXXPasFr", - }, - }, - } -} - -func TestDNSResolution(t *testing.T) { - mock := newMockDNS() - r := &DNSResolver{lookupTXT: mock.lookupTXT} - testResolution(t, r, "multihash.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "ipfs.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "dipfs.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "dns1.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "dns1.example.com", 1, "/ipns/ipfs.example.com", ErrResolveRecursion) - testResolution(t, r, "dns2.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "dns2.example.com", 1, "/ipns/dns1.example.com", ErrResolveRecursion) - testResolution(t, r, "dns2.example.com", 2, "/ipns/ipfs.example.com", ErrResolveRecursion) - testResolution(t, r, "multi.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "multi.example.com", 1, "/ipns/dns1.example.com", ErrResolveRecursion) - testResolution(t, r, "multi.example.com", 2, "/ipns/ipfs.example.com", ErrResolveRecursion) - testResolution(t, r, "equals.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/=equals", nil) - testResolution(t, r, "loop1.example.com", 1, "/ipns/loop2.example.com", ErrResolveRecursion) - testResolution(t, r, "loop1.example.com", 2, "/ipns/loop1.example.com", ErrResolveRecursion) - testResolution(t, r, "loop1.example.com", 3, "/ipns/loop2.example.com", ErrResolveRecursion) - testResolution(t, r, "loop1.example.com", opts.DefaultDepthLimit, "/ipns/loop1.example.com", ErrResolveRecursion) - testResolution(t, r, "dloop1.example.com", 1, "/ipns/loop2.example.com", ErrResolveRecursion) - testResolution(t, r, "dloop1.example.com", 2, "/ipns/loop1.example.com", ErrResolveRecursion) - testResolution(t, r, "dloop1.example.com", 3, "/ipns/loop2.example.com", ErrResolveRecursion) - testResolution(t, r, "dloop1.example.com", opts.DefaultDepthLimit, "/ipns/loop1.example.com", ErrResolveRecursion) - testResolution(t, r, "bad.example.com", opts.DefaultDepthLimit, "", ErrResolveFailed) - testResolution(t, r, "withsegment.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment", nil) - testResolution(t, r, "withrecsegment.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment/subsub", nil) - testResolution(t, r, "withsegment.example.com/test1", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment/test1", nil) - testResolution(t, r, "withrecsegment.example.com/test2", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment/subsub/test2", nil) - testResolution(t, r, "withrecsegment.example.com/test3/", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment/subsub/test3/", nil) - testResolution(t, r, "withtrailingrec.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD/sub/segment/", nil) - testResolution(t, r, "double.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", nil) - testResolution(t, r, "conflict.example.com", opts.DefaultDepthLimit, "/ipfs/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjE", nil) - testResolution(t, r, "fqdn.example.com.", opts.DefaultDepthLimit, "/ipfs/QmYvMB9yrsSf7RKBghkfwmHJkzJhW2ZgVwq3LxBXXPasFr", nil) -} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/interface.go b/vendor/github.com/ipfs/go-ipfs/namesys/interface.go index 04ca1eeb..4db95ab3 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/interface.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/interface.go @@ -35,9 +35,9 @@ import ( context "context" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" + path "github.com/ipfs/go-path" + opts "github.com/ipfs/interface-go-ipfs-core/options/namesys" + ci "github.com/libp2p/go-libp2p-crypto" ) // ErrResolveFailed signals an error when attempting to resolve. diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/ipns_resolver_validation_test.go b/vendor/github.com/ipfs/go-ipfs/namesys/ipns_resolver_validation_test.go deleted file mode 100644 index 3c583a97..00000000 --- a/vendor/github.com/ipfs/go-ipfs/namesys/ipns_resolver_validation_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package namesys - -import ( - "context" - "testing" - "time" - - u "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - ropts "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing/options" - mockrouting "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/mock" - offline "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/offline" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - pstoremem "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore/pstoremem" - record "gx/ipfs/QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX/go-libp2p-record" -) - -func TestResolverValidation(t *testing.T) { - ctx := context.Background() - rid := testutil.RandIdentityOrFatal(t) - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - peerstore := pstoremem.NewPeerstore() - - vstore := newMockValueStore(rid, dstore, peerstore) - resolver := NewIpnsResolver(vstore) - - nvVstore := offline.NewOfflineRouter(dstore, mockrouting.MockValidator{}) - - // Create entry with expiry in one hour - priv, id, _, ipnsDHTPath := genKeys(t) - ts := time.Now() - p := []byte("/ipfs/QmfM2r8seH2GiRaC4esTjeraXEachRt8ZsSeGaWTPLyMoG") - entry, err := ipns.Create(priv, p, 1, ts.Add(time.Hour)) - if err != nil { - t.Fatal(err) - } - - // Make peer's public key available in peer store - err = peerstore.AddPubKey(id, priv.GetPublic()) - if err != nil { - t.Fatal(err) - } - - // Publish entry - err = PublishEntry(ctx, vstore, ipnsDHTPath, entry) - if err != nil { - t.Fatal(err) - } - - // Resolve entry - resp, err := resolve(ctx, resolver, id.Pretty(), opts.DefaultResolveOpts()) - if err != nil { - t.Fatal(err) - } - if resp != path.Path(p) { - t.Fatalf("Mismatch between published path %s and resolved path %s", p, resp) - } - // Create expired entry - expiredEntry, err := ipns.Create(priv, p, 1, ts.Add(-1*time.Hour)) - if err != nil { - t.Fatal(err) - } - - // Publish entry - err = PublishEntry(ctx, nvVstore, ipnsDHTPath, expiredEntry) - if err != nil { - t.Fatal(err) - } - - // Record should fail validation because entry is expired - _, err = resolve(ctx, resolver, id.Pretty(), opts.DefaultResolveOpts()) - if err == nil { - t.Fatal("ValidateIpnsRecord should have returned error") - } - - // Create IPNS record path with a different private key - priv2, id2, _, ipnsDHTPath2 := genKeys(t) - - // Make peer's public key available in peer store - err = peerstore.AddPubKey(id2, priv2.GetPublic()) - if err != nil { - t.Fatal(err) - } - - // Publish entry - err = PublishEntry(ctx, nvVstore, ipnsDHTPath2, entry) - if err != nil { - t.Fatal(err) - } - - // Record should fail validation because public key defined by - // ipns path doesn't match record signature - _, err = resolve(ctx, resolver, id2.Pretty(), opts.DefaultResolveOpts()) - if err == nil { - t.Fatal("ValidateIpnsRecord should have failed signature verification") - } - - // Publish entry without making public key available in peer store - priv3, id3, pubkDHTPath3, ipnsDHTPath3 := genKeys(t) - entry3, err := ipns.Create(priv3, p, 1, ts.Add(time.Hour)) - if err != nil { - t.Fatal(err) - } - err = PublishEntry(ctx, nvVstore, ipnsDHTPath3, entry3) - if err != nil { - t.Fatal(err) - } - - // Record should fail validation because public key is not available - // in peer store or on network - _, err = resolve(ctx, resolver, id3.Pretty(), opts.DefaultResolveOpts()) - if err == nil { - t.Fatal("ValidateIpnsRecord should have failed because public key was not found") - } - - // Publish public key to the network - err = PublishPublicKey(ctx, vstore, pubkDHTPath3, priv3.GetPublic()) - if err != nil { - t.Fatal(err) - } - - // Record should now pass validation because resolver will ensure - // public key is available in the peer store by looking it up in - // the DHT, which causes the DHT to fetch it and cache it in the - // peer store - _, err = resolve(ctx, resolver, id3.Pretty(), opts.DefaultResolveOpts()) - if err != nil { - t.Fatal(err) - } -} - -func genKeys(t *testing.T) (ci.PrivKey, peer.ID, string, string) { - sr := u.NewTimeSeededRand() - priv, _, err := ci.GenerateKeyPairWithReader(ci.RSA, 1024, sr) - if err != nil { - t.Fatal(err) - } - - // Create entry with expiry in one hour - pid, err := peer.IDFromPrivateKey(priv) - if err != nil { - t.Fatal(err) - } - - return priv, pid, PkKeyForID(pid), ipns.RecordKey(pid) -} - -type mockValueStore struct { - r routing.ValueStore - kbook pstore.KeyBook -} - -func newMockValueStore(id testutil.Identity, dstore ds.Datastore, kbook pstore.KeyBook) *mockValueStore { - return &mockValueStore{ - r: offline.NewOfflineRouter(dstore, record.NamespacedValidator{ - "ipns": ipns.Validator{KeyBook: kbook}, - "pk": record.PublicKeyValidator{}, - }), - kbook: kbook, - } -} - -func (m *mockValueStore) GetValue(ctx context.Context, k string, opts ...ropts.Option) ([]byte, error) { - return m.r.GetValue(ctx, k, opts...) -} - -func (m *mockValueStore) SearchValue(ctx context.Context, k string, opts ...ropts.Option) (<-chan []byte, error) { - return m.r.SearchValue(ctx, k, opts...) -} - -func (m *mockValueStore) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) { - pk := m.kbook.PubKey(p) - if pk != nil { - return pk, nil - } - - pkkey := routing.KeyForPublicKey(p) - val, err := m.GetValue(ctx, pkkey) - if err != nil { - return nil, err - } - - pk, err = ci.UnmarshalPublicKey(val) - if err != nil { - return nil, err - } - - return pk, m.kbook.AddPubKey(p, pk) -} - -func (m *mockValueStore) PutValue(ctx context.Context, k string, d []byte, opts ...ropts.Option) error { - return m.r.PutValue(ctx, k, d, opts...) -} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/namesys.go b/vendor/github.com/ipfs/go-ipfs/namesys/namesys.go index b8ccdaaf..f8b8c6d1 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/namesys.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/namesys.go @@ -5,15 +5,15 @@ import ( "strings" "time" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - lru "gx/ipfs/QmQjMHF8ptRgx4E57UFMiT4YM6kqaJeYxZ1MCDX23aw4rK/golang-lru" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - isd "gx/ipfs/QmZmmuAXgX73UQmX1jRKjTGmjzq24Jinqkq8vzkBtno4uX/go-is-domain" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" + lru "github.com/hashicorp/golang-lru" + ds "github.com/ipfs/go-datastore" + path "github.com/ipfs/go-path" + opts "github.com/ipfs/interface-go-ipfs-core/options/namesys" + isd "github.com/jbenet/go-is-domain" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + routing "github.com/libp2p/go-libp2p-routing" + mh "github.com/multiformats/go-multihash" ) // mpns (a multi-protocol NameSystem) implements generic IPFS naming. @@ -183,7 +183,7 @@ func (ns *mpns) PublishWithEOL(ctx context.Context, name ci.PrivKey, value path. return err } ttl := DefaultResolverCacheTTL - if ttEol := eol.Sub(time.Now()); ttEol < ttl { + if ttEol := time.Until(eol); ttEol < ttl { ttl = ttEol } ns.cacheSet(peer.IDB58Encode(id), value, ttl) diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/namesys_test.go b/vendor/github.com/ipfs/go-ipfs/namesys/namesys_test.go deleted file mode 100644 index 3da16d23..00000000 --- a/vendor/github.com/ipfs/go-ipfs/namesys/namesys_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package namesys - -import ( - "context" - "fmt" - "testing" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - offroute "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/offline" - pstoremem "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore/pstoremem" - "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" -) - -type mockResolver struct { - entries map[string]string -} - -func testResolution(t *testing.T, resolver Resolver, name string, depth uint, expected string, expError error) { - t.Helper() - p, err := resolver.Resolve(context.Background(), name, opts.Depth(depth)) - if err != expError { - t.Fatal(fmt.Errorf( - "expected %s with a depth of %d to have a '%s' error, but got '%s'", - name, depth, expError, err)) - } - if p.String() != expected { - t.Fatal(fmt.Errorf( - "%s with depth %d resolved to %s != %s", - name, depth, p.String(), expected)) - } -} - -func (r *mockResolver) resolveOnceAsync(ctx context.Context, name string, options opts.ResolveOpts) <-chan onceResult { - p, err := path.ParsePath(r.entries[name]) - out := make(chan onceResult, 1) - out <- onceResult{value: p, err: err} - close(out) - return out -} - -func mockResolverOne() *mockResolver { - return &mockResolver{ - entries: map[string]string{ - "QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy": "/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", - "QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n": "/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy", - "QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD": "/ipns/ipfs.io", - }, - } -} - -func mockResolverTwo() *mockResolver { - return &mockResolver{ - entries: map[string]string{ - "ipfs.io": "/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n", - }, - } -} - -func TestNamesysResolution(t *testing.T) { - r := &mpns{ - ipnsResolver: mockResolverOne(), - dnsResolver: mockResolverTwo(), - } - - testResolution(t, r, "Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", opts.DefaultDepthLimit, "/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", nil) - testResolution(t, r, "/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy", opts.DefaultDepthLimit, "/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", nil) - testResolution(t, r, "/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n", opts.DefaultDepthLimit, "/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", nil) - testResolution(t, r, "/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n", 1, "/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy", ErrResolveRecursion) - testResolution(t, r, "/ipns/ipfs.io", opts.DefaultDepthLimit, "/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", nil) - testResolution(t, r, "/ipns/ipfs.io", 1, "/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n", ErrResolveRecursion) - testResolution(t, r, "/ipns/ipfs.io", 2, "/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy", ErrResolveRecursion) - testResolution(t, r, "/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", opts.DefaultDepthLimit, "/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj", nil) - testResolution(t, r, "/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", 1, "/ipns/ipfs.io", ErrResolveRecursion) - testResolution(t, r, "/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", 2, "/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n", ErrResolveRecursion) - testResolution(t, r, "/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD", 3, "/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy", ErrResolveRecursion) -} - -func TestPublishWithCache0(t *testing.T) { - dst := dssync.MutexWrap(ds.NewMapDatastore()) - priv, _, err := ci.GenerateKeyPair(ci.RSA, 1024) - if err != nil { - t.Fatal(err) - } - ps := pstoremem.NewPeerstore() - pid, err := peer.IDFromPrivateKey(priv) - if err != nil { - t.Fatal(err) - } - err = ps.AddPrivKey(pid, priv) - if err != nil { - t.Fatal(err) - } - - routing := offroute.NewOfflineRouter(dst, ipns.Validator{KeyBook: ps}) - - nsys := NewNameSystem(routing, dst, 0) - p, err := path.ParsePath(unixfs.EmptyDirNode().Cid().String()) - if err != nil { - t.Fatal(err) - } - nsys.Publish(context.Background(), priv, p) -} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/proquint.go b/vendor/github.com/ipfs/go-ipfs/namesys/proquint.go index e3686590..63cb62a0 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/proquint.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/proquint.go @@ -4,9 +4,9 @@ import ( "context" "errors" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - proquint "gx/ipfs/QmYnf27kzqR2cxt6LFZdrAFJuQd6785fTkBvMuEj9EeRxM/proquint" + proquint "github.com/bren2010/proquint" + path "github.com/ipfs/go-path" + opts "github.com/ipfs/interface-go-ipfs-core/options/namesys" ) type ProquintResolver struct{} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/publisher.go b/vendor/github.com/ipfs/go-ipfs/namesys/publisher.go index 126bcd1c..e43858d0 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/publisher.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/publisher.go @@ -8,17 +8,17 @@ import ( pin "github.com/ipfs/go-ipfs/pin" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dsquery "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/query" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - pb "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns/pb" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - ft "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs" - proto "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" - base32 "gx/ipfs/QmfVj3x4D6Jkq9SEoi5n2NmoUomLwoeiwnYz2KQa15wRw6/base32" + proto "github.com/gogo/protobuf/proto" + ds "github.com/ipfs/go-datastore" + dsquery "github.com/ipfs/go-datastore/query" + ipns "github.com/ipfs/go-ipns" + pb "github.com/ipfs/go-ipns/pb" + path "github.com/ipfs/go-path" + ft "github.com/ipfs/go-unixfs" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + routing "github.com/libp2p/go-libp2p-routing" + base32 "github.com/whyrusleeping/base32" ) const ipnsPrefix = "/ipns/" diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/publisher_test.go b/vendor/github.com/ipfs/go-ipfs/namesys/publisher_test.go deleted file mode 100644 index 8b7481d5..00000000 --- a/vendor/github.com/ipfs/go-ipfs/namesys/publisher_test.go +++ /dev/null @@ -1,112 +0,0 @@ -package namesys - -import ( - "context" - "crypto/rand" - "testing" - "time" - - ci "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - dshelp "gx/ipfs/QmXSEqXLCzpCByJU4wqbJ37TcBEj77FKMUWUP1qLh56847/go-ipfs-ds-help" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - mockrouting "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/mock" -) - -type identity struct { - testutil.PeerNetParams -} - -func (p *identity) ID() peer.ID { - return p.PeerNetParams.ID -} - -func (p *identity) Address() ma.Multiaddr { - return p.Addr -} - -func (p *identity) PrivateKey() ci.PrivKey { - return p.PrivKey -} - -func (p *identity) PublicKey() ci.PubKey { - return p.PubKey -} - -func testNamekeyPublisher(t *testing.T, keyType int, expectedErr error, expectedExistence bool) { - // Context - ctx := context.Background() - - // Private key - privKey, pubKey, err := ci.GenerateKeyPairWithReader(keyType, 2048, rand.Reader) - if err != nil { - t.Fatal(err) - } - - // ID - id, err := peer.IDFromPublicKey(pubKey) - if err != nil { - t.Fatal(err) - } - - // Value - value := []byte("ipfs/TESTING") - - // Seqnum - seqnum := uint64(0) - - // Eol - eol := time.Now().Add(24 * time.Hour) - - // Routing value store - p := testutil.PeerNetParams{ - ID: id, - PrivKey: privKey, - PubKey: pubKey, - Addr: testutil.ZeroLocalTCPAddress, - } - - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - serv := mockrouting.NewServer() - r := serv.ClientWithDatastore(context.Background(), &identity{p}, dstore) - - entry, err := ipns.Create(privKey, value, seqnum, eol) - if err != nil { - t.Fatal(err) - } - - err = PutRecordToRouting(ctx, r, pubKey, entry) - if err != nil { - t.Fatal(err) - } - - // Check for namekey existence in value store - namekey := PkKeyForID(id) - _, err = r.GetValue(ctx, namekey) - if err != expectedErr { - t.Fatal(err) - } - - // Also check datastore for completeness - key := dshelp.NewKeyFromBinary([]byte(namekey)) - exists, err := dstore.Has(key) - if err != nil { - t.Fatal(err) - } - - if exists != expectedExistence { - t.Fatal("Unexpected key existence in datastore") - } -} - -func TestRSAPublisher(t *testing.T) { - testNamekeyPublisher(t, ci.RSA, nil, true) -} - -func TestEd22519Publisher(t *testing.T) { - testNamekeyPublisher(t, ci.Ed25519, ds.ErrNotFound, false) -} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub.go b/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub.go index c7a7f444..1092ba3a 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub.go @@ -7,16 +7,16 @@ import ( keystore "github.com/ipfs/go-ipfs/keystore" namesys "github.com/ipfs/go-ipfs/namesys" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" + path "github.com/ipfs/go-path" - goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - gpctx "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/context" - ic "gx/ipfs/QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK/go-libp2p-crypto" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - pb "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns/pb" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - proto "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" + proto "github.com/gogo/protobuf/proto" + ds "github.com/ipfs/go-datastore" + pb "github.com/ipfs/go-ipns/pb" + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" + gpctx "github.com/jbenet/goprocess/context" + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" ) var errNoEntry = errors.New("no previous entry") diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub_test.go b/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub_test.go deleted file mode 100644 index 1f582a44..00000000 --- a/vendor/github.com/ipfs/go-ipfs/namesys/republisher/repub_test.go +++ /dev/null @@ -1,138 +0,0 @@ -package republisher_test - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/ipfs/go-ipfs/core" - mock "github.com/ipfs/go-ipfs/core/mock" - namesys "github.com/ipfs/go-ipfs/namesys" - . "github.com/ipfs/go-ipfs/namesys/republisher" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - - mocknet "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -func TestRepublish(t *testing.T) { - // set cache life to zero for testing low-period repubs - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // create network - mn := mocknet.New(ctx) - - var nodes []*core.IpfsNode - for i := 0; i < 10; i++ { - nd, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - t.Fatal(err) - } - - nd.Namesys = namesys.NewNameSystem(nd.Routing, nd.Repo.Datastore(), 0) - - nodes = append(nodes, nd) - } - - mn.LinkAll() - - bsinf := core.BootstrapConfigWithPeers( - []pstore.PeerInfo{ - nodes[0].Peerstore.PeerInfo(nodes[0].Identity), - }, - ) - - for _, n := range nodes[1:] { - if err := n.Bootstrap(bsinf); err != nil { - t.Fatal(err) - } - } - - // have one node publish a record that is valid for 1 second - publisher := nodes[3] - p := path.FromString("/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn") // does not need to be valid - rp := namesys.NewIpnsPublisher(publisher.Routing, publisher.Repo.Datastore()) - name := "/ipns/" + publisher.Identity.Pretty() - - // Retry in case the record expires before we can fetch it. This can - // happen when running the test on a slow machine. - var expiration time.Time - timeout := time.Second - for { - expiration = time.Now().Add(time.Second) - err := rp.PublishWithEOL(ctx, publisher.PrivateKey, p, expiration) - if err != nil { - t.Fatal(err) - } - - err = verifyResolution(nodes, name, p) - if err == nil { - break - } - - if time.Now().After(expiration) { - timeout *= 2 - continue - } - t.Fatal(err) - } - - // Now wait a second, the records will be invalid and we should fail to resolve - time.Sleep(timeout) - if err := verifyResolutionFails(nodes, name); err != nil { - t.Fatal(err) - } - - // The republishers that are contained within the nodes have their timeout set - // to 12 hours. Instead of trying to tweak those, we're just going to pretend - // they dont exist and make our own. - repub := NewRepublisher(rp, publisher.Repo.Datastore(), publisher.PrivateKey, publisher.Repo.Keystore()) - repub.Interval = time.Second - repub.RecordLifetime = time.Second * 5 - - proc := goprocess.Go(repub.Run) - defer proc.Close() - - // now wait a couple seconds for it to fire - time.Sleep(time.Second * 2) - - // we should be able to resolve them now - if err := verifyResolution(nodes, name, p); err != nil { - t.Fatal(err) - } -} - -func verifyResolution(nodes []*core.IpfsNode, key string, exp path.Path) error { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - for _, n := range nodes { - val, err := n.Namesys.Resolve(ctx, key) - if err != nil { - return err - } - - if val != exp { - return errors.New("resolved wrong record") - } - } - return nil -} - -func verifyResolutionFails(nodes []*core.IpfsNode, key string) error { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - for _, n := range nodes { - _, err := n.Namesys.Resolve(ctx, key) - if err == nil { - return errors.New("expected resolution to fail") - } - } - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/resolve_test.go b/vendor/github.com/ipfs/go-ipfs/namesys/resolve_test.go deleted file mode 100644 index 80eb7d83..00000000 --- a/vendor/github.com/ipfs/go-ipfs/namesys/resolve_test.go +++ /dev/null @@ -1,147 +0,0 @@ -package namesys - -import ( - "context" - "errors" - "testing" - "time" - - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - mockrouting "gx/ipfs/QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ/go-ipfs-routing/mock" -) - -func TestRoutingResolve(t *testing.T) { - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - serv := mockrouting.NewServer() - id := testutil.RandIdentityOrFatal(t) - d := serv.ClientWithDatastore(context.Background(), id, dstore) - - resolver := NewIpnsResolver(d) - publisher := NewIpnsPublisher(d, dstore) - - privk, pubk, err := testutil.RandTestKeyPair(512) - if err != nil { - t.Fatal(err) - } - - h := path.FromString("/ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN") - err = publisher.Publish(context.Background(), privk, h) - if err != nil { - t.Fatal(err) - } - - pid, err := peer.IDFromPublicKey(pubk) - if err != nil { - t.Fatal(err) - } - - res, err := resolver.Resolve(context.Background(), pid.Pretty()) - if err != nil { - t.Fatal(err) - } - - if res != h { - t.Fatal("Got back incorrect value.") - } -} - -func TestPrexistingExpiredRecord(t *testing.T) { - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - d := mockrouting.NewServer().ClientWithDatastore(context.Background(), testutil.RandIdentityOrFatal(t), dstore) - - resolver := NewIpnsResolver(d) - publisher := NewIpnsPublisher(d, dstore) - - privk, pubk, err := testutil.RandTestKeyPair(512) - if err != nil { - t.Fatal(err) - } - - id, err := peer.IDFromPublicKey(pubk) - if err != nil { - t.Fatal(err) - } - - // Make an expired record and put it in the datastore - h := path.FromString("/ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN") - eol := time.Now().Add(time.Hour * -1) - - entry, err := ipns.Create(privk, []byte(h), 0, eol) - if err != nil { - t.Fatal(err) - } - err = PutRecordToRouting(context.Background(), d, pubk, entry) - if err != nil { - t.Fatal(err) - } - - // Now, with an old record in the system already, try and publish a new one - err = publisher.Publish(context.Background(), privk, h) - if err != nil { - t.Fatal(err) - } - - err = verifyCanResolve(resolver, id.Pretty(), h) - if err != nil { - t.Fatal(err) - } -} - -func TestPrexistingRecord(t *testing.T) { - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - d := mockrouting.NewServer().ClientWithDatastore(context.Background(), testutil.RandIdentityOrFatal(t), dstore) - - resolver := NewIpnsResolver(d) - publisher := NewIpnsPublisher(d, dstore) - - privk, pubk, err := testutil.RandTestKeyPair(512) - if err != nil { - t.Fatal(err) - } - - id, err := peer.IDFromPublicKey(pubk) - if err != nil { - t.Fatal(err) - } - - // Make a good record and put it in the datastore - h := path.FromString("/ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN") - eol := time.Now().Add(time.Hour) - entry, err := ipns.Create(privk, []byte(h), 0, eol) - if err != nil { - t.Fatal(err) - } - err = PutRecordToRouting(context.Background(), d, pubk, entry) - if err != nil { - t.Fatal(err) - } - - // Now, with an old record in the system already, try and publish a new one - err = publisher.Publish(context.Background(), privk, h) - if err != nil { - t.Fatal(err) - } - - err = verifyCanResolve(resolver, id.Pretty(), h) - if err != nil { - t.Fatal(err) - } -} - -func verifyCanResolve(r Resolver, name string, exp path.Path) error { - res, err := r.Resolve(context.Background(), name) - if err != nil { - return err - } - - if res != exp { - return errors.New("got back wrong record") - } - - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/namesys/routing.go b/vendor/github.com/ipfs/go-ipfs/namesys/routing.go index 315a281b..e89dd9c9 100644 --- a/vendor/github.com/ipfs/go-ipfs/namesys/routing.go +++ b/vendor/github.com/ipfs/go-ipfs/namesys/routing.go @@ -5,17 +5,17 @@ import ( "strings" "time" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipns "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns" - pb "gx/ipfs/QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc/go-ipns/pb" - opts "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core/options/namesys" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - dht "gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht" - proto "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" + proto "github.com/gogo/protobuf/proto" + cid "github.com/ipfs/go-cid" + ipns "github.com/ipfs/go-ipns" + pb "github.com/ipfs/go-ipns/pb" + logging "github.com/ipfs/go-log" + path "github.com/ipfs/go-path" + opts "github.com/ipfs/interface-go-ipfs-core/options/namesys" + dht "github.com/libp2p/go-libp2p-kad-dht" + peer "github.com/libp2p/go-libp2p-peer" + routing "github.com/libp2p/go-libp2p-routing" + mh "github.com/multiformats/go-multihash" ) var log = logging.Logger("namesys") @@ -137,7 +137,7 @@ func (r *IpnsResolver) resolveOnceAsync(ctx context.Context, name string, option case ipns.ErrUnrecognizedValidity: // No EOL. case nil: - ttEol := eol.Sub(time.Now()) + ttEol := time.Until(eol) if ttEol < 0 { // It *was* valid when we first resolved it. ttl = 0 diff --git a/vendor/github.com/ipfs/go-ipfs/p2p/listener.go b/vendor/github.com/ipfs/go-ipfs/p2p/listener.go index c88ef3cf..ff7859b0 100644 --- a/vendor/github.com/ipfs/go-ipfs/p2p/listener.go +++ b/vendor/github.com/ipfs/go-ipfs/p2p/listener.go @@ -4,10 +4,10 @@ import ( "errors" "sync" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - net "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" + p2phost "github.com/libp2p/go-libp2p-host" + net "github.com/libp2p/go-libp2p-net" + "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" ) // Listener listens for connections and proxies them to a target diff --git a/vendor/github.com/ipfs/go-ipfs/p2p/local.go b/vendor/github.com/ipfs/go-ipfs/p2p/local.go index 119de5af..b96afa91 100644 --- a/vendor/github.com/ipfs/go-ipfs/p2p/local.go +++ b/vendor/github.com/ipfs/go-ipfs/p2p/local.go @@ -4,12 +4,12 @@ import ( "context" "time" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - tec "gx/ipfs/QmWHgLqrghM9zw77nF6gdvT9ExQ2RB9pLxkd8sDHZf1rWb/go-temp-err-catcher" - "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" + tec "github.com/jbenet/go-temp-err-catcher" + "github.com/libp2p/go-libp2p-net" + "github.com/libp2p/go-libp2p-peer" + "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" + "github.com/multiformats/go-multiaddr-net" ) // localListener manet streams and proxies them to libp2p services diff --git a/vendor/github.com/ipfs/go-ipfs/p2p/p2p.go b/vendor/github.com/ipfs/go-ipfs/p2p/p2p.go index 088eaa02..07f772b2 100644 --- a/vendor/github.com/ipfs/go-ipfs/p2p/p2p.go +++ b/vendor/github.com/ipfs/go-ipfs/p2p/p2p.go @@ -1,10 +1,10 @@ package p2p import ( - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" + logging "github.com/ipfs/go-log" + p2phost "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" ) var log = logging.Logger("p2p-mount") diff --git a/vendor/github.com/ipfs/go-ipfs/p2p/remote.go b/vendor/github.com/ipfs/go-ipfs/p2p/remote.go index 884da7b6..f6b95682 100644 --- a/vendor/github.com/ipfs/go-ipfs/p2p/remote.go +++ b/vendor/github.com/ipfs/go-ipfs/p2p/remote.go @@ -4,10 +4,10 @@ import ( "context" "fmt" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - net "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" + net "github.com/libp2p/go-libp2p-net" + protocol "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" ) var maPrefix = "/" + ma.ProtocolWithCode(ma.P_IPFS).Name + "/" @@ -48,7 +48,7 @@ func (p2p *P2P) ForwardRemote(ctx context.Context, proto protocol.ID, addr ma.Mu func (l *remoteListener) handleStream(remote net.Stream) { local, err := manet.Dial(l.addr) if err != nil { - remote.Reset() + _ = remote.Reset() return } @@ -56,14 +56,14 @@ func (l *remoteListener) handleStream(remote net.Stream) { if l.reportRemote { if _, err := fmt.Fprintf(local, "%s\n", peer.Pretty()); err != nil { - remote.Reset() + _ = remote.Reset() return } } peerMa, err := ma.NewMultiaddr(maPrefix + peer.Pretty()) if err != nil { - remote.Reset() + _ = remote.Reset() return } diff --git a/vendor/github.com/ipfs/go-ipfs/p2p/stream.go b/vendor/github.com/ipfs/go-ipfs/p2p/stream.go index 3490a59c..e29c965b 100644 --- a/vendor/github.com/ipfs/go-ipfs/p2p/stream.go +++ b/vendor/github.com/ipfs/go-ipfs/p2p/stream.go @@ -4,12 +4,12 @@ import ( "io" "sync" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - ifconnmgr "gx/ipfs/QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd/go-libp2p-interface-connmgr" - net "gx/ipfs/QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp/go-libp2p-net" - peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer" - protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + net "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" ) const cmgrTag = "stream-fwd" @@ -31,15 +31,13 @@ type Stream struct { } // close stream endpoints and deregister it -func (s *Stream) close() error { +func (s *Stream) close() { s.Registry.Close(s) - return nil } // reset closes stream endpoints and deregisters it -func (s *Stream) reset() error { +func (s *Stream) reset() { s.Registry.Reset(s) - return nil } func (s *Stream) startStreaming() { @@ -108,17 +106,15 @@ func (r *StreamRegistry) Deregister(streamID uint64) { } // Close stream endpoints and deregister it -func (r *StreamRegistry) Close(s *Stream) error { - s.Local.Close() - s.Remote.Close() +func (r *StreamRegistry) Close(s *Stream) { + _ = s.Local.Close() + _ = s.Remote.Close() s.Registry.Deregister(s.id) - return nil } // Reset closes stream endpoints and deregisters it -func (r *StreamRegistry) Reset(s *Stream) error { - s.Local.Close() - s.Remote.Reset() +func (r *StreamRegistry) Reset(s *Stream) { + _ = s.Local.Close() + _ = s.Remote.Reset() s.Registry.Deregister(s.id) - return nil } diff --git a/vendor/github.com/ipfs/go-ipfs/package-list.json b/vendor/github.com/ipfs/go-ipfs/package-list.json index 378405ac..62ce82f5 100644 --- a/vendor/github.com/ipfs/go-ipfs/package-list.json +++ b/vendor/github.com/ipfs/go-ipfs/package-list.json @@ -2,7 +2,6 @@ "columns": [ "Name", "CI/Travis", - "CI/Jenkins", "Coverage", "Description" ], @@ -38,12 +37,10 @@ "Blocks", ["ipfs/go-block-format", "go-block-format", "block interfaces and implementations"], ["ipfs/go-ipfs-blockstore", "go-ipfs-blockstore", "blockstore interfaces and implementations"], - ["ipfs/go-ipfs-blockstore", "go-ipfs-blockstore", "blockstore interfaces and implementations"], "Commands", ["ipfs/go-ipfs-cmds", "go-ipfs-cmds", "CLI & HTTP commands library"], ["ipfs/go-ipfs-cmdkit", "go-ipfs-cmdkit", "helper types for the commands library"], - ["ipfs/go-ipfs-blockstore", "go-ipfs-blockstore", "blockstore interfaces and implementations"], ["ipfs/go-ipfs-api", "go-ipfs-api", "a shell for the IPFS HTTP API"], "Metrics & Logging", diff --git a/vendor/github.com/ipfs/go-ipfs/package.json b/vendor/github.com/ipfs/go-ipfs/package.json deleted file mode 100644 index 7126c283..00000000 --- a/vendor/github.com/ipfs/go-ipfs/package.json +++ /dev/null @@ -1,622 +0,0 @@ -{ - "bugs": { - "url": "https://github.com/ipfs/go-ipfs" - }, - "gx": { - "dvcsimport": "github.com/ipfs/go-ipfs", - "goversion": "1.11" - }, - "gxDependencies": [ - { - "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", - "name": "go-log", - "version": "1.5.9" - }, - { - "author": "whyrusleeping", - "hash": "QmSVaJe1aRjc78cZARTtf4pqvXERYwihyYhZWoVWceHnsK", - "name": "go-libp2p-secio", - "version": "2.0.30" - }, - { - "author": "whyrusleeping", - "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", - "name": "go-libp2p-crypto", - "version": "2.0.7" - }, - { - "author": "whyrusleeping", - "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", - "name": "go-libp2p-peer", - "version": "3.1.2" - }, - { - "author": "whyrusleeping", - "hash": "QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP", - "name": "goprocess", - "version": "1.0.0" - }, - { - "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", - "name": "gogo-protobuf", - "version": "1.2.1" - }, - { - "hash": "QmTQuFQWHAWy4wMH6ZyPfGiawA5u9T8rs79FENoV8yXaoS", - "name": "client_golang", - "version": "0.1.4" - }, - { - "hash": "QmckeQ2zrYLAXoSHYTGn5BDdb22BqbUoHEHm8KZ9YWRxd1", - "name": "iptb", - "version": "2.0.0" - }, - { - "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", - "name": "go-multihash", - "version": "1.0.9" - }, - { - "author": "cenk", - "hash": "QmPJUtEJsm5YLUWhF6imvyCH8KZXRJa9Wup7FDMwTy5Ufz", - "name": "backoff", - "version": "1.0.0" - }, - { - "author": "Bren2010", - "hash": "QmYnf27kzqR2cxt6LFZdrAFJuQd6785fTkBvMuEj9EeRxM", - "name": "proquint", - "version": "0.0.0" - }, - { - "author": "cheggaaa", - "hash": "QmYWB8oH6o7qftxoyqTTZhzLrhKCVT7NYahECQTwTtqbgj", - "name": "pb", - "version": "1.1.0" - }, - { - "author": "dustin", - "hash": "QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy", - "name": "go-humanize", - "version": "1.0.1" - }, - { - "author": "syndtr", - "hash": "QmbBhyDKsY4mbY6xsKt3qu9Y7FPvMJ6qbD8AMjYYvPRw1g", - "name": "goleveldb", - "version": "0.0.1" - }, - { - "author": "whyrusleeping", - "hash": "QmcoYsZJDtyDTij5dNo7KQCHR3Z6nhPxLkVKg77zg1TL8e", - "name": "go-sysinfo", - "version": "0.0.1" - }, - { - "author": "jbenet", - "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", - "name": "go-datastore", - "version": "3.6.1" - }, - { - "author": "hashicorp", - "hash": "QmQjMHF8ptRgx4E57UFMiT4YM6kqaJeYxZ1MCDX23aw4rK", - "name": "golang-lru", - "version": "2017.10.18" - }, - { - "author": "whyrusleeping", - "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", - "name": "go-libp2p-peerstore", - "version": "2.0.19" - }, - { - "author": "whyrusleeping", - "hash": "QmfVj3x4D6Jkq9SEoi5n2NmoUomLwoeiwnYz2KQa15wRw6", - "name": "base32", - "version": "0.0.2" - }, - { - "author": "jbenet", - "hash": "QmZmmuAXgX73UQmX1jRKjTGmjzq24Jinqkq8vzkBtno4uX", - "name": "go-is-domain", - "version": "1.0.1" - }, - { - "author": "whyrusleeping", - "hash": "QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK", - "name": "go-libp2p", - "version": "6.0.39" - }, - { - "author": "whyrusleeping", - "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", - "name": "go-cid", - "version": "0.9.3" - }, - { - "author": "whyrusleeping", - "hash": "QmcjM6sfVtgGFBCCJaZo33HNi7K4rPkrUQAzLewgWTNkeg", - "name": "go-ds-flatfs", - "version": "1.3.7" - }, - { - "author": "whyrusleeping", - "hash": "QmafCXHpwUKGUrt6eQF97U1ornFxTicsw7iyYSAhu9aXgc", - "name": "go-ds-measure", - "version": "1.4.5" - }, - { - "author": "whyrusleeping", - "hash": "QmbgYmpUkuCDnXi4hci3Jt797iVXbpuBKRTCqGz57h48Sk", - "name": "go-ds-leveldb", - "version": "1.3.0" - }, - { - "author": "whyrusleeping", - "hash": "QmUbSLukzZYZvEYxynj9Dtd1WrGLxxg9R4U68vCMPWHmRU", - "name": "go-libp2p-loggables", - "version": "1.1.33" - }, - { - "author": "ipfs", - "hash": "QmfHYMtNSntM6qFhHzLDCyqTX7NNpsfwFgvicJv7L5saAP", - "name": "go-metrics-prometheus", - "version": "0.3.12" - }, - { - "author": "ipfs", - "hash": "QmekzFM3hPZjTjUFGTABdQkEnQ3PTiMstY198PwSFr5w1Q", - "name": "go-metrics-interface", - "version": "0.2.0" - }, - { - "hash": "QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq", - "name": "go-libp2p-kad-dht", - "version": "4.4.31" - }, - { - "author": "whyrusleeping", - "hash": "QmZJePENq85jG2s1Lm7SPzjYYKqDAqyaqzfiEJPRawf2iJ", - "name": "hang-fds", - "version": "0.0.15" - }, - { - "author": "whyrusleeping", - "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", - "name": "go-ipld-format", - "version": "0.8.1" - }, - { - "author": "whyrusleeping", - "hash": "QmVwsD9oGSAKcCoD4BGi3Hx8XRo4jNy6aMzsjDHVTgYv2D", - "name": "go-ipld-cbor", - "version": "1.5.10" - }, - { - "author": "lgierth", - "hash": "QmT1jwrqzSMjSjLG5oBd9w4P9vXPKQksWuf5ghsE3Q88ZV", - "name": "dir-index-html", - "version": "1.0.4" - }, - { - "author": "Kubuxu", - "hash": "QmXuBJ7DR6k3rmUEKtvVMhwjmXDuJgXXPUt4LQXKBMsU93", - "name": "go-os-helper", - "version": "0.0.0" - }, - { - "author": "whyrusleeping", - "hash": "QmaJvNdDccVkTELQLCGXWrLxgaQ14aMdhzZx1EiHPXKbDc", - "name": "go-smux-multiplex", - "version": "3.0.19" - }, - { - "author": "blang", - "hash": "QmYRGECuvQnRX73fcvPnGbYijBcGN2HbKZQ7jh26qmLiHG", - "name": "semver", - "version": "3.5.1" - }, - { - "author": "libp2p", - "hash": "QmTwDsJUPioMKoiuXkAmiPxL1i4tjuG5vkxJgNpiHpXb3Y", - "name": "go-libp2p-pnet", - "version": "3.0.5" - }, - { - "author": "kubuxu", - "hash": "QmSJBsmLP1XMjv8hxYg2rUMdPDB7YUpyBo9idjrJ6Cmq6F", - "name": "fuse", - "version": "0.2.3" - }, - { - "hash": "QmSNE1XryoCMnZCbRaj1D23k6YKCaTQ386eJciu1pAfu8M", - "name": "go-libp2p-kbucket", - "version": "2.2.23" - }, - { - "author": "whyrusleeping", - "hash": "QmcVFwGS6sjfxVico2bd1gQGRu5A2ymwZunVmMdeV5zEYb", - "name": "go-smux-yamux", - "version": "2.0.9" - }, - { - "author": "whyrusleeping", - "hash": "QmekxXDhCxCJRNuzmHreuaT3BsuJcsjcXWNrtV9C8DRHtd", - "name": "go-multibase", - "version": "0.3.0" - }, - { - "author": "multiformats", - "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", - "name": "go-multiaddr", - "version": "1.4.1" - }, - { - "author": "whyrusleeping", - "hash": "QmSwVwKUWzdf3ppM3FbBbpuqHUNtUFJPQQdfvKmgZoz2gR", - "name": "go-libp2p-metrics", - "version": "2.1.14" - }, - { - "author": "whyrusleeping", - "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", - "name": "go-stream-muxer", - "version": "3.1.0" - }, - { - "author": "multiformats", - "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", - "name": "go-multiaddr-net", - "version": "1.7.2" - }, - { - "author": "whyrusleeping", - "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", - "name": "go-libp2p-net", - "version": "3.0.30" - }, - { - "author": "whyrusleeping", - "hash": "QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv", - "name": "multiaddr-filter", - "version": "1.0.2" - }, - { - "author": "whyrusleeping", - "hash": "QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd", - "name": "go-libp2p-host", - "version": "3.0.26" - }, - { - "author": "whyrusleeping", - "hash": "Qma3Xp3FXFSP4prirEiRYHJ2tgGE8EAx9i6JLziPLpAQjq", - "name": "go-libp2p-swarm", - "version": "3.0.34" - }, - { - "hash": "QmQkW9fnCsg9SLHdViiAh6qfBppodsPZVpU92dZLqYtEfs", - "name": "go-ipfs-cmds", - "version": "2.0.18" - }, - { - "hash": "Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg", - "name": "go-ipfs-cmdkit", - "version": "1.2.0" - }, - { - "author": "whyrusleeping", - "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", - "name": "go-ipfs-util", - "version": "1.2.9" - }, - { - "hash": "QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX", - "name": "go-libp2p-record", - "version": "4.1.15" - }, - { - "author": "whyrusleeping", - "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", - "name": "go-libp2p-protocol", - "version": "1.0.0" - }, - { - "author": "stebalien", - "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", - "name": "go-block-format", - "version": "0.2.2" - }, - { - "hash": "QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf", - "name": "go-libp2p-routing", - "version": "2.7.13" - }, - { - "author": "whyrusleeping", - "hash": "QmQFmr7d1V38H5E8T6pBLoZvZNH1bVvtJSaCkRVHgRpFXu", - "name": "go-ipld-git", - "version": "0.3.6" - }, - { - "hash": "QmT6C5ebDy92zyRzdmSNyda5q7zkNXy68X47RDJiHpvaxd", - "name": "go-maddr-filter", - "version": "1.1.13" - }, - { - "author": "vyzo", - "hash": "QmZBfqr863PYD7BKbmCFSNmzsqYmtr2DKgzubsQaiTQkMc", - "name": "go-libp2p-circuit", - "version": "2.3.14" - }, - { - "author": "magik6k", - "hash": "QmTNJogwkhnbHeRmAXWtzvN2KgVko2oNmHHQN1ggHVhF91", - "name": "go-ds-badger", - "version": "1.12.3" - }, - { - "author": "whyrusleeping", - "hash": "QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W", - "name": "go-testutil", - "version": "1.2.19" - }, - { - "author": "whyrusleeping", - "hash": "QmSTKY2v62v9RjcfTMCFKMVAWvVjWGixkYWEi68iG7e1TT", - "name": "go-libp2p-connmgr", - "version": "0.3.34" - }, - { - "author": "why", - "hash": "QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd", - "name": "go-libp2p-interface-connmgr", - "version": "0.0.32" - }, - { - "author": "why", - "hash": "Qmdf1djucJ1jX5RMF1bDbFg5ybZnupmSAeETQQ3ZV7z6dU", - "name": "go-ipfs-addr", - "version": "0.1.33" - }, - { - "author": "The Go Authors", - "hash": "QmVGjyM9i2msKvLXwh9VosCTgP4mL91kC7hDmqnwTTx6Hu", - "name": "sys", - "version": "0.2.0" - }, - { - "author": "mr-tron", - "hash": "QmWFAMPqsEyUX7gDUsRVmMWz59FxSpJ1b2v6bJ1yYzo7jY", - "name": "go-base58-fast", - "version": "0.1.1" - }, - { - "author": "hector", - "hash": "QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7", - "name": "go-ipfs-posinfo", - "version": "0.1.5" - }, - { - "author": "hsanjuan", - "hash": "QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8", - "name": "go-ipfs-chunker", - "version": "0.1.6" - }, - { - "author": "jbenet", - "hash": "Qmf7HqcW7LtCi1W8y2bdx2eJpze74jkbKqpByxgXikdbLF", - "name": "go-detect-race", - "version": "1.0.1" - }, - { - "author": "hsanjuan", - "hash": "QmXSEqXLCzpCByJU4wqbJ37TcBEj77FKMUWUP1qLh56847", - "name": "go-ipfs-ds-help", - "version": "0.1.7" - }, - { - "author": "hsanjuan", - "hash": "QmZ22s3UgNi5vvYNH79jWJ63NPyQGiv4mdNaWCz4WKqMTZ", - "name": "go-ipfs-routing", - "version": "0.1.18" - }, - { - "author": "hsanjuan", - "hash": "QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA", - "name": "go-ipfs-blockstore", - "version": "0.1.8" - }, - { - "author": "whyrusleeping", - "hash": "QmQine7gvHncNevKtG9QXxf3nXcwSj6aDDmMm52mHofEEp", - "name": "tar-utils", - "version": "0.0.3" - }, - { - "author": "frist", - "hash": "QmWLWmRVSiagqP15jczsGME1qpob6HDbtbHAY2he9W5iUo", - "name": "opentracing-go", - "version": "0.0.3" - }, - { - "author": "dignifiedquire", - "hash": "QmdDpQpe8RHu9qBiFWPaBvSAUr2kRLWipEjzDqAMfWqwFQ", - "name": "go-fs-lock", - "version": "0.1.11" - }, - { - "author": "hsanjuan", - "hash": "QmWokDcQdSZCxrNxgaRzQDDBofALhActzNBaxRLtiRkUHg", - "name": "go-ipfs-exchange-interface", - "version": "0.1.3" - }, - { - "author": "hsanjuan", - "hash": "Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS", - "name": "go-ipfs-exchange-offline", - "version": "0.1.7" - }, - { - "author": "stebalien", - "hash": "QmRj3VMHa484MktgWaWr4KYys9AtxBBiFUhhEFKs9EvPiw", - "name": "go-libp2p-pubsub-router", - "version": "0.5.16" - }, - { - "author": "Stebalien", - "hash": "QmRCrPXk2oUwpK1Cj2FXrUotRpddUxz56setkny2gz13Cx", - "name": "go-libp2p-routing-helpers", - "version": "0.3.19" - }, - { - "author": "fsnotify", - "hash": "QmfNjggF4Pt6erqg3NDafD3MdvDHk1qqCVr8pL5hnPucS8", - "name": "fsnotify", - "version": "0.1.1" - }, - { - "author": "stebalien", - "hash": "QmUwMnKKjH3JwGKNVZ3TcP37W93xzqNA4ECFFiMo6sXkkc", - "name": "go-ipns", - "version": "0.1.23" - }, - { - "author": "whyrusleeping", - "hash": "QmWHgLqrghM9zw77nF6gdvT9ExQ2RB9pLxkd8sDHZf1rWb", - "name": "go-temp-err-catcher", - "version": "0.0.0" - }, - { - "author": "why", - "hash": "QmcSPuzpSbVLU6UHU4e5PwZpm4fHbCn5SbNR5ZNL6Mj63G", - "name": "go-bitswap", - "version": "1.1.29" - }, - { - "author": "why", - "hash": "QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy", - "name": "go-blockservice", - "version": "1.1.29" - }, - { - "author": "why", - "hash": "QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri", - "name": "go-merkledag", - "version": "1.1.37" - }, - { - "author": "why", - "hash": "QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR", - "name": "go-path", - "version": "1.1.39" - }, - { - "author": "why", - "hash": "QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ", - "name": "go-unixfs", - "version": "1.3.12" - }, - { - "author": "magik6k", - "hash": "QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs", - "name": "go-ipfs-config", - "version": "0.2.27" - }, - { - "author": "why", - "hash": "QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa", - "name": "go-verifcid", - "version": "0.1.2" - }, - { - "author": "hsanjuan", - "hash": "Qmb74fRYPgpjYzoBV7PAVNmP3DQaRrh8dHdKE4PwnF3cRx", - "name": "go-mfs", - "version": "0.1.49" - }, - { - "author": "kevina", - "hash": "Qmf3gRH2L1QZy92gJHJEwKmBJKJGVf8RpN2kPPD2NQWg8G", - "name": "go-cidutil", - "version": "0.2.1" - }, - { - "author": "lgierth", - "hash": "QmU98UaAEh4WJAcir2qjfztU77JQ14kAwHNFkjUXHZA3Vy", - "name": "go-multiaddr-dns", - "version": "0.3.1" - }, - { - "author": "elgris", - "hash": "QmP2i47tnU23ijdshrZtuvrSkQPtf9HhsMb9fwGVe8owj2", - "name": "jsondiff", - "version": "0.0.0" - }, - { - "author": "marten-seemann", - "hash": "QmQ4hhhYzrEoyPxcVQyBqhf3sshsATKX3D3VJUAGuHzaSD", - "name": "go-libp2p-quic-transport", - "version": "0.2.19" - }, - { - "author": "mitchellh", - "hash": "QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK", - "name": "go-homedir", - "version": "1.0.0" - }, - { - "hash": "QmXMnwKWAFBk8kgH8gjoG5P9Pj5aASPvQA2kHdu6gRwyj5", - "name": "go-random", - "version": "1.0.1" - }, - { - "author": "jbenet", - "hash": "QmTXSRPiyMt3i4jTGY9DiBaGwZqPaiihEUjffnE9tviEqx", - "name": "go-random-files", - "version": "1.0.1" - }, - { - "author": "magik6k", - "hash": "QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb", - "name": "go-ipfs-files", - "version": "2.0.6" - }, - { - "author": "whyrusleeping", - "hash": "QmVzLBPPg4gdyX3XFnNaNDkK4V81ptT5X6WZVFzTUECXMa", - "name": "go-libp2p-pubsub", - "version": "0.11.15" - }, - { - "author": "travisperson", - "hash": "QmY3LuhVAkJRqevj3FSh1fSRpGhiDYHjKmgotnQY35zTir", - "name": "iptb-plugins", - "version": "1.0.20" - }, - { - "author": "hsanjuan", - "hash": "QmeXGHY2ntPsXLX28oGD2ufJB9EdvByz41Tt2sWrYPC7JJ", - "name": "go-libp2p-http", - "version": "1.1.17" - }, - { - "author": "vyzo", - "hash": "QmZpe6RmiGLMD7boFBEP9hNkhdPQVkdjNSWPGccYk2GoFy", - "name": "go-libp2p-autonat-svc", - "version": "1.0.13" - }, - { - "author": "magik6k", - "hash": "QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6", - "name": "interface-go-ipfs-core", - "version": "0.1.11" - } - ], - "gxVersion": "0.10.0", - "language": "go", - "license": "MIT", - "name": "go-ipfs", - "version": "0.4.19" -} - diff --git a/vendor/github.com/ipfs/go-ipfs/pin/gc/gc.go b/vendor/github.com/ipfs/go-ipfs/pin/gc/gc.go deleted file mode 100644 index 97ea9a81..00000000 --- a/vendor/github.com/ipfs/go-ipfs/pin/gc/gc.go +++ /dev/null @@ -1,288 +0,0 @@ -// Package gc provides garbage collection for go-ipfs. -package gc - -import ( - "context" - "errors" - "fmt" - "strings" - - pin "github.com/ipfs/go-ipfs/pin" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - dstore "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - "gx/ipfs/QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa/go-verifcid" -) - -var log = logging.Logger("gc") - -// Result represents an incremental output from a garbage collection -// run. It contains either an error, or the cid of a removed object. -type Result struct { - KeyRemoved cid.Cid - Error error -} - -// GC performs a mark and sweep garbage collection of the blocks in the blockstore -// first, it creates a 'marked' set and adds to it the following: -// - all recursively pinned blocks, plus all of their descendants (recursively) -// - bestEffortRoots, plus all of its descendants (recursively) -// - all directly pinned blocks -// - all blocks utilized internally by the pinner -// -// The routine then iterates over every block in the blockstore and -// deletes any block that is not found in the marked set. -func GC(ctx context.Context, bs bstore.GCBlockstore, dstor dstore.Datastore, pn pin.Pinner, bestEffortRoots []cid.Cid) <-chan Result { - - elock := log.EventBegin(ctx, "GC.lockWait") - unlocker := bs.GCLock() - elock.Done() - elock = log.EventBegin(ctx, "GC.locked") - emark := log.EventBegin(ctx, "GC.mark") - - bsrv := bserv.New(bs, offline.Exchange(bs)) - ds := dag.NewDAGService(bsrv) - - output := make(chan Result, 128) - - go func() { - defer close(output) - defer unlocker.Unlock() - defer elock.Done() - - gcs, err := ColoredSet(ctx, pn, ds, bestEffortRoots, output) - if err != nil { - select { - case output <- Result{Error: err}: - case <-ctx.Done(): - } - return - } - emark.Append(logging.LoggableMap{ - "blackSetSize": fmt.Sprintf("%d", gcs.Len()), - }) - emark.Done() - esweep := log.EventBegin(ctx, "GC.sweep") - - keychan, err := bs.AllKeysChan(ctx) - if err != nil { - select { - case output <- Result{Error: err}: - case <-ctx.Done(): - } - return - } - - errors := false - var removed uint64 - - loop: - for { - select { - case k, ok := <-keychan: - if !ok { - break loop - } - if !gcs.Has(k) { - err := bs.DeleteBlock(k) - removed++ - if err != nil { - errors = true - output <- Result{Error: &CannotDeleteBlockError{k, err}} - //log.Errorf("Error removing key from blockstore: %s", err) - // continue as error is non-fatal - continue loop - } - select { - case output <- Result{KeyRemoved: k}: - case <-ctx.Done(): - break loop - } - } - case <-ctx.Done(): - break loop - } - } - esweep.Append(logging.LoggableMap{ - "whiteSetSize": fmt.Sprintf("%d", removed), - }) - esweep.Done() - if errors { - select { - case output <- Result{Error: ErrCannotDeleteSomeBlocks}: - case <-ctx.Done(): - return - } - } - - defer log.EventBegin(ctx, "GC.datastore").Done() - gds, ok := dstor.(dstore.GCDatastore) - if !ok { - return - } - - err = gds.CollectGarbage() - if err != nil { - select { - case output <- Result{Error: err}: - case <-ctx.Done(): - } - return - } - }() - - return output -} - -// Descendants recursively finds all the descendants of the given roots and -// adds them to the given cid.Set, using the provided dag.GetLinks function -// to walk the tree. -func Descendants(ctx context.Context, getLinks dag.GetLinks, set *cid.Set, roots []cid.Cid) error { - verifyGetLinks := func(ctx context.Context, c cid.Cid) ([]*ipld.Link, error) { - err := verifcid.ValidateCid(c) - if err != nil { - return nil, err - } - - return getLinks(ctx, c) - } - - verboseCidError := func(err error) error { - if strings.Contains(err.Error(), verifcid.ErrBelowMinimumHashLength.Error()) || - strings.Contains(err.Error(), verifcid.ErrPossiblyInsecureHashFunction.Error()) { - err = fmt.Errorf("\"%s\"\nPlease run 'ipfs pin verify'"+ - " to list insecure hashes. If you want to read them,"+ - " please downgrade your go-ipfs to 0.4.13\n", err) - log.Error(err) - } - return err - } - - for _, c := range roots { - set.Add(c) - - // EnumerateChildren recursively walks the dag and adds the keys to the given set - err := dag.EnumerateChildren(ctx, verifyGetLinks, c, set.Visit) - - if err != nil { - err = verboseCidError(err) - return err - } - } - - return nil -} - -// ColoredSet computes the set of nodes in the graph that are pinned by the -// pins in the given pinner. -func ColoredSet(ctx context.Context, pn pin.Pinner, ng ipld.NodeGetter, bestEffortRoots []cid.Cid, output chan<- Result) (*cid.Set, error) { - // KeySet currently implemented in memory, in the future, may be bloom filter or - // disk backed to conserve memory. - errors := false - gcs := cid.NewSet() - getLinks := func(ctx context.Context, cid cid.Cid) ([]*ipld.Link, error) { - links, err := ipld.GetLinks(ctx, ng, cid) - if err != nil { - errors = true - select { - case output <- Result{Error: &CannotFetchLinksError{cid, err}}: - case <-ctx.Done(): - return nil, ctx.Err() - } - } - return links, nil - } - err := Descendants(ctx, getLinks, gcs, pn.RecursiveKeys()) - if err != nil { - errors = true - select { - case output <- Result{Error: err}: - case <-ctx.Done(): - return nil, ctx.Err() - } - } - - bestEffortGetLinks := func(ctx context.Context, cid cid.Cid) ([]*ipld.Link, error) { - links, err := ipld.GetLinks(ctx, ng, cid) - if err != nil && err != ipld.ErrNotFound { - errors = true - select { - case output <- Result{Error: &CannotFetchLinksError{cid, err}}: - case <-ctx.Done(): - return nil, ctx.Err() - } - } - return links, nil - } - err = Descendants(ctx, bestEffortGetLinks, gcs, bestEffortRoots) - if err != nil { - errors = true - select { - case output <- Result{Error: err}: - case <-ctx.Done(): - return nil, ctx.Err() - } - } - - for _, k := range pn.DirectKeys() { - gcs.Add(k) - } - - err = Descendants(ctx, getLinks, gcs, pn.InternalPins()) - if err != nil { - errors = true - select { - case output <- Result{Error: err}: - case <-ctx.Done(): - return nil, ctx.Err() - } - } - - if errors { - return nil, ErrCannotFetchAllLinks - } - - return gcs, nil -} - -// ErrCannotFetchAllLinks is returned as the last Result in the GC output -// channel when there was a error creating the marked set because of a -// problem when finding descendants. -var ErrCannotFetchAllLinks = errors.New("garbage collection aborted: could not retrieve some links") - -// ErrCannotDeleteSomeBlocks is returned when removing blocks marked for -// deletion fails as the last Result in GC output channel. -var ErrCannotDeleteSomeBlocks = errors.New("garbage collection incomplete: could not delete some blocks") - -// CannotFetchLinksError provides detailed information about which links -// could not be fetched and can appear as a Result in the GC output channel. -type CannotFetchLinksError struct { - Key cid.Cid - Err error -} - -// Error implements the error interface for this type with a useful -// message. -func (e *CannotFetchLinksError) Error() string { - return fmt.Sprintf("could not retrieve links for %s: %s", e.Key, e.Err) -} - -// CannotDeleteBlockError provides detailed information about which -// blocks could not be deleted and can appear as a Result in the GC output -// channel. -type CannotDeleteBlockError struct { - Key cid.Cid - Err error -} - -// Error implements the error interface for this type with a -// useful message. -func (e *CannotDeleteBlockError) Error() string { - return fmt.Sprintf("could not remove %s: %s", e.Key, e.Err) -} diff --git a/vendor/github.com/ipfs/go-ipfs/pin/internal/pb/header.pb.go b/vendor/github.com/ipfs/go-ipfs/pin/internal/pb/header.pb.go index dd215e12..71196b26 100644 --- a/vendor/github.com/ipfs/go-ipfs/pin/internal/pb/header.pb.go +++ b/vendor/github.com/ipfs/go-ipfs/pin/internal/pb/header.pb.go @@ -6,7 +6,7 @@ package pb import ( encoding_binary "encoding/binary" fmt "fmt" - proto "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" + proto "github.com/gogo/protobuf/proto" io "io" math "math" ) diff --git a/vendor/github.com/ipfs/go-ipfs/pin/pin.go b/vendor/github.com/ipfs/go-ipfs/pin/pin.go index e60dc18b..24dbf465 100644 --- a/vendor/github.com/ipfs/go-ipfs/pin/pin.go +++ b/vendor/github.com/ipfs/go-ipfs/pin/pin.go @@ -10,12 +10,12 @@ import ( "time" "github.com/ipfs/go-ipfs/dagutils" - mdag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" + mdag "github.com/ipfs/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + ipld "github.com/ipfs/go-ipld-format" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("pin") diff --git a/vendor/github.com/ipfs/go-ipfs/pin/pin_test.go b/vendor/github.com/ipfs/go-ipfs/pin/pin_test.go deleted file mode 100644 index 77580037..00000000 --- a/vendor/github.com/ipfs/go-ipfs/pin/pin_test.go +++ /dev/null @@ -1,408 +0,0 @@ -package pin - -import ( - "context" - "testing" - "time" - - mdag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - bs "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - - util "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dssync "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/sync" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" -) - -var rand = util.NewTimeSeededRand() - -func randNode() (*mdag.ProtoNode, cid.Cid) { - nd := new(mdag.ProtoNode) - nd.SetData(make([]byte, 32)) - rand.Read(nd.Data()) - k := nd.Cid() - return nd, k -} - -func assertPinned(t *testing.T, p Pinner, c cid.Cid, failmsg string) { - _, pinned, err := p.IsPinned(c) - if err != nil { - t.Fatal(err) - } - - if !pinned { - t.Fatal(failmsg) - } -} - -func assertUnpinned(t *testing.T, p Pinner, c cid.Cid, failmsg string) { - _, pinned, err := p.IsPinned(c) - if err != nil { - t.Fatal(err) - } - - if pinned { - t.Fatal(failmsg) - } -} - -func TestPinnerBasic(t *testing.T) { - ctx := context.Background() - - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - bstore := blockstore.NewBlockstore(dstore) - bserv := bs.New(bstore, offline.Exchange(bstore)) - - dserv := mdag.NewDAGService(bserv) - - // TODO does pinner need to share datastore with blockservice? - p := NewPinner(dstore, dserv, dserv) - - a, ak := randNode() - err := dserv.Add(ctx, a) - if err != nil { - t.Fatal(err) - } - - // Pin A{} - err = p.Pin(ctx, a, false) - if err != nil { - t.Fatal(err) - } - - assertPinned(t, p, ak, "Failed to find key") - - // create new node c, to be indirectly pinned through b - c, _ := randNode() - err = dserv.Add(ctx, c) - if err != nil { - t.Fatal(err) - } - ck := c.Cid() - - // Create new node b, to be parent to a and c - b, _ := randNode() - err = b.AddNodeLink("child", a) - if err != nil { - t.Fatal(err) - } - - err = b.AddNodeLink("otherchild", c) - if err != nil { - t.Fatal(err) - } - - err = dserv.Add(ctx, b) - if err != nil { - t.Fatal(err) - } - bk := b.Cid() - - // recursively pin B{A,C} - err = p.Pin(ctx, b, true) - if err != nil { - t.Fatal(err) - } - - assertPinned(t, p, ck, "child of recursively pinned node not found") - - assertPinned(t, p, bk, "Recursively pinned node not found..") - - d, _ := randNode() - d.AddNodeLink("a", a) - d.AddNodeLink("c", c) - - e, _ := randNode() - d.AddNodeLink("e", e) - - // Must be in dagserv for unpin to work - err = dserv.Add(ctx, e) - if err != nil { - t.Fatal(err) - } - err = dserv.Add(ctx, d) - if err != nil { - t.Fatal(err) - } - - // Add D{A,C,E} - err = p.Pin(ctx, d, true) - if err != nil { - t.Fatal(err) - } - - dk := d.Cid() - assertPinned(t, p, dk, "pinned node not found.") - - // Test recursive unpin - err = p.Unpin(ctx, dk, true) - if err != nil { - t.Fatal(err) - } - - err = p.Flush() - if err != nil { - t.Fatal(err) - } - - np, err := LoadPinner(dstore, dserv, dserv) - if err != nil { - t.Fatal(err) - } - - // Test directly pinned - assertPinned(t, np, ak, "Could not find pinned node!") - - // Test recursively pinned - assertPinned(t, np, bk, "could not find recursively pinned node") -} - -func TestIsPinnedLookup(t *testing.T) { - // We are going to test that lookups work in pins which share - // the same branches. For that we will construct this tree: - // - // A5->A4->A3->A2->A1->A0 - // / / - // B------- / - // \ / - // C--------------- - // - // We will ensure that IsPinned works for all objects both when they - // are pinned and once they have been unpinned. - aBranchLen := 6 - if aBranchLen < 3 { - t.Fatal("set aBranchLen to at least 3") - } - - ctx := context.Background() - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - bstore := blockstore.NewBlockstore(dstore) - bserv := bs.New(bstore, offline.Exchange(bstore)) - - dserv := mdag.NewDAGService(bserv) - - // TODO does pinner need to share datastore with blockservice? - p := NewPinner(dstore, dserv, dserv) - - aNodes := make([]*mdag.ProtoNode, aBranchLen) - aKeys := make([]cid.Cid, aBranchLen) - for i := 0; i < aBranchLen; i++ { - a, _ := randNode() - if i >= 1 { - err := a.AddNodeLink("child", aNodes[i-1]) - if err != nil { - t.Fatal(err) - } - } - - err := dserv.Add(ctx, a) - if err != nil { - t.Fatal(err) - } - //t.Logf("a[%d] is %s", i, ak) - aNodes[i] = a - aKeys[i] = a.Cid() - } - - // Pin A5 recursively - if err := p.Pin(ctx, aNodes[aBranchLen-1], true); err != nil { - t.Fatal(err) - } - - // Create node B and add A3 as child - b, _ := randNode() - if err := b.AddNodeLink("mychild", aNodes[3]); err != nil { - t.Fatal(err) - } - - // Create C node - c, _ := randNode() - // Add A0 as child of C - if err := c.AddNodeLink("child", aNodes[0]); err != nil { - t.Fatal(err) - } - - // Add C - err := dserv.Add(ctx, c) - if err != nil { - t.Fatal(err) - } - ck := c.Cid() - //t.Logf("C is %s", ck) - - // Add C to B and Add B - if err := b.AddNodeLink("myotherchild", c); err != nil { - t.Fatal(err) - } - err = dserv.Add(ctx, b) - if err != nil { - t.Fatal(err) - } - bk := b.Cid() - //t.Logf("B is %s", bk) - - // Pin C recursively - - if err := p.Pin(ctx, c, true); err != nil { - t.Fatal(err) - } - - // Pin B recursively - - if err := p.Pin(ctx, b, true); err != nil { - t.Fatal(err) - } - - assertPinned(t, p, aKeys[0], "A0 should be pinned") - assertPinned(t, p, aKeys[1], "A1 should be pinned") - assertPinned(t, p, ck, "C should be pinned") - assertPinned(t, p, bk, "B should be pinned") - - // Unpin A5 recursively - if err := p.Unpin(ctx, aKeys[5], true); err != nil { - t.Fatal(err) - } - - assertPinned(t, p, aKeys[0], "A0 should still be pinned through B") - assertUnpinned(t, p, aKeys[4], "A4 should be unpinned") - - // Unpin B recursively - if err := p.Unpin(ctx, bk, true); err != nil { - t.Fatal(err) - } - assertUnpinned(t, p, bk, "B should be unpinned") - assertUnpinned(t, p, aKeys[1], "A1 should be unpinned") - assertPinned(t, p, aKeys[0], "A0 should still be pinned through C") -} - -func TestDuplicateSemantics(t *testing.T) { - ctx := context.Background() - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - bstore := blockstore.NewBlockstore(dstore) - bserv := bs.New(bstore, offline.Exchange(bstore)) - - dserv := mdag.NewDAGService(bserv) - - // TODO does pinner need to share datastore with blockservice? - p := NewPinner(dstore, dserv, dserv) - - a, _ := randNode() - err := dserv.Add(ctx, a) - if err != nil { - t.Fatal(err) - } - - // pin is recursively - err = p.Pin(ctx, a, true) - if err != nil { - t.Fatal(err) - } - - // pinning directly should fail - err = p.Pin(ctx, a, false) - if err == nil { - t.Fatal("expected direct pin to fail") - } - - // pinning recursively again should succeed - err = p.Pin(ctx, a, true) - if err != nil { - t.Fatal(err) - } -} - -func TestFlush(t *testing.T) { - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - bstore := blockstore.NewBlockstore(dstore) - bserv := bs.New(bstore, offline.Exchange(bstore)) - - dserv := mdag.NewDAGService(bserv) - p := NewPinner(dstore, dserv, dserv) - _, k := randNode() - - p.PinWithMode(k, Recursive) - if err := p.Flush(); err != nil { - t.Fatal(err) - } - assertPinned(t, p, k, "expected key to still be pinned") -} - -func TestPinRecursiveFail(t *testing.T) { - ctx := context.Background() - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - bstore := blockstore.NewBlockstore(dstore) - bserv := bs.New(bstore, offline.Exchange(bstore)) - dserv := mdag.NewDAGService(bserv) - - p := NewPinner(dstore, dserv, dserv) - - a, _ := randNode() - b, _ := randNode() - err := a.AddNodeLink("child", b) - if err != nil { - t.Fatal(err) - } - - // NOTE: This isnt a time based test, we expect the pin to fail - mctx, cancel := context.WithTimeout(ctx, time.Millisecond) - defer cancel() - - err = p.Pin(mctx, a, true) - if err == nil { - t.Fatal("should have failed to pin here") - } - - err = dserv.Add(ctx, b) - if err != nil { - t.Fatal(err) - } - - err = dserv.Add(ctx, a) - if err != nil { - t.Fatal(err) - } - - // this one is time based... but shouldnt cause any issues - mctx, cancel = context.WithTimeout(ctx, time.Second) - defer cancel() - err = p.Pin(mctx, a, true) - if err != nil { - t.Fatal(err) - } -} - -func TestPinUpdate(t *testing.T) { - ctx := context.Background() - - dstore := dssync.MutexWrap(ds.NewMapDatastore()) - bstore := blockstore.NewBlockstore(dstore) - bserv := bs.New(bstore, offline.Exchange(bstore)) - - dserv := mdag.NewDAGService(bserv) - p := NewPinner(dstore, dserv, dserv) - n1, c1 := randNode() - n2, c2 := randNode() - - dserv.Add(ctx, n1) - dserv.Add(ctx, n2) - - if err := p.Pin(ctx, n1, true); err != nil { - t.Fatal(err) - } - - if err := p.Update(ctx, c1, c2, true); err != nil { - t.Fatal(err) - } - - assertPinned(t, p, c2, "c2 should be pinned now") - assertUnpinned(t, p, c1, "c1 should no longer be pinned") - - if err := p.Update(ctx, c2, c1, false); err != nil { - t.Fatal(err) - } - - assertPinned(t, p, c2, "c2 should be pinned still") - assertPinned(t, p, c1, "c1 should be pinned now") -} diff --git a/vendor/github.com/ipfs/go-ipfs/pin/set.go b/vendor/github.com/ipfs/go-ipfs/pin/set.go index f3fcac1f..b050c31c 100644 --- a/vendor/github.com/ipfs/go-ipfs/pin/set.go +++ b/vendor/github.com/ipfs/go-ipfs/pin/set.go @@ -10,11 +10,11 @@ import ( "sort" "github.com/ipfs/go-ipfs/pin/internal/pb" - "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" + "github.com/ipfs/go-merkledag" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - "gx/ipfs/QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB/gogo-protobuf/proto" + "github.com/gogo/protobuf/proto" + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" ) const ( diff --git a/vendor/github.com/ipfs/go-ipfs/pin/set_test.go b/vendor/github.com/ipfs/go-ipfs/pin/set_test.go deleted file mode 100644 index ea6df844..00000000 --- a/vendor/github.com/ipfs/go-ipfs/pin/set_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package pin - -import ( - "context" - "encoding/binary" - "testing" - - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - bserv "gx/ipfs/QmUEXNytX2q9g9xtdfHRVYfsvjw5V9FQ32vE9ZRYFAxFoy/go-blockservice" - - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - dsq "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/query" - blockstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - offline "gx/ipfs/Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS/go-ipfs-exchange-offline" -) - -func ignoreCids(_ cid.Cid) {} - -func objCount(d ds.Datastore) int { - q := dsq.Query{KeysOnly: true} - res, err := d.Query(q) - if err != nil { - panic(err) - } - - var count int - for { - _, ok := res.NextSync() - if !ok { - break - } - - count++ - } - return count -} - -func TestSet(t *testing.T) { - dst := ds.NewMapDatastore() - bstore := blockstore.NewBlockstore(dst) - ds := dag.NewDAGService(bserv.New(bstore, offline.Exchange(bstore))) - - // this value triggers the creation of a recursive shard. - // If the recursive sharding is done improperly, this will result in - // an infinite recursion and crash (OOM) - limit := uint32((defaultFanout * maxItems) + 1) - - var inputs []cid.Cid - buf := make([]byte, 4) - for i := uint32(0); i < limit; i++ { - binary.BigEndian.PutUint32(buf, i) - c := dag.NewRawNode(buf).Cid() - inputs = append(inputs, c) - } - - _, err := storeSet(context.Background(), ds, inputs[:len(inputs)-1], ignoreCids) - if err != nil { - t.Fatal(err) - } - - objs1 := objCount(dst) - - out, err := storeSet(context.Background(), ds, inputs, ignoreCids) - if err != nil { - t.Fatal(err) - } - - objs2 := objCount(dst) - if objs2-objs1 > 2 { - t.Fatal("set sharding does not appear to be deterministic") - } - - // weird wrapper node because loadSet expects us to pass an - // object pointing to multiple named sets - setroot := &dag.ProtoNode{} - err = setroot.AddNodeLink("foo", out) - if err != nil { - t.Fatal(err) - } - - outset, err := loadSet(context.Background(), ds, setroot, "foo", ignoreCids) - if err != nil { - t.Fatal(err) - } - - if uint32(len(outset)) != limit { - t.Fatal("got wrong number", len(outset), limit) - } - - seen := cid.NewSet() - for _, c := range outset { - seen.Add(c) - } - - for _, c := range inputs { - if !seen.Has(c) { - t.Fatalf("expected to have '%s', didnt find it", c) - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/Rules.mk b/vendor/github.com/ipfs/go-ipfs/plugin/Rules.mk deleted file mode 100644 index 1e26d2a3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/Rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -include mk/header.mk - -dir := $(d)/loader -include $(dir)/Rules.mk - -dir := $(d)/plugins -include $(dir)/Rules.mk - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/daemon.go b/vendor/github.com/ipfs/go-ipfs/plugin/daemon.go deleted file mode 100644 index b08d251e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/daemon.go +++ /dev/null @@ -1,14 +0,0 @@ -package plugin - -import ( - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" -) - -// PluginDaemon is an interface for daemon plugins. These plugins will be run on -// the daemon and will be given access to an implementation of the CoreAPI. -type PluginDaemon interface { - Plugin - - Start(coreiface.CoreAPI) error - Close() error -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/datastore.go b/vendor/github.com/ipfs/go-ipfs/plugin/datastore.go deleted file mode 100644 index 735eedc9..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/datastore.go +++ /dev/null @@ -1,14 +0,0 @@ -package plugin - -import ( - "github.com/ipfs/go-ipfs/repo/fsrepo" -) - -// PluginDatastore is an interface that can be implemented to add handlers for -// for different datastores -type PluginDatastore interface { - Plugin - - DatastoreTypeName() string - DatastoreConfigParser() fsrepo.ConfigFromMap -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/ipld.go b/vendor/github.com/ipfs/go-ipfs/plugin/ipld.go deleted file mode 100644 index bc71f54e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/ipld.go +++ /dev/null @@ -1,16 +0,0 @@ -package plugin - -import ( - "github.com/ipfs/go-ipfs/core/coredag" - - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" -) - -// PluginIPLD is an interface that can be implemented to add handlers for -// for different IPLD formats -type PluginIPLD interface { - Plugin - - RegisterBlockDecoders(dec ipld.BlockDecoder) error - RegisterInputEncParsers(iec coredag.InputEncParsers) error -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/loader/Rules.mk b/vendor/github.com/ipfs/go-ipfs/plugin/loader/Rules.mk deleted file mode 100644 index 01f50e27..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/loader/Rules.mk +++ /dev/null @@ -1,10 +0,0 @@ -include mk/header.mk - -$(d)/preload.go: d:=$(d) -$(d)/preload.go: $(d)/preload_list $(d)/preload.sh - $(d)/preload.sh > $@ - go fmt $@ >/dev/null - -DEPS_GO += $(d)/preload.go - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/loader/load_linux.go b/vendor/github.com/ipfs/go-ipfs/plugin/loader/load_linux.go deleted file mode 100644 index 19c1e994..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/loader/load_linux.go +++ /dev/null @@ -1,68 +0,0 @@ -// +build !noplugin - -package loader - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "plugin" - - iplugin "github.com/ipfs/go-ipfs/plugin" -) - -func init() { - loadPluginsFunc = linuxLoadFunc -} - -func linuxLoadFunc(pluginDir string) ([]iplugin.Plugin, error) { - var plugins []iplugin.Plugin - - err := filepath.Walk(pluginDir, func(fi string, info os.FileInfo, err error) error { - if err != nil { - return err - } - if info.IsDir() { - if fi != pluginDir { - log.Warningf("found directory inside plugins directory: %s", fi) - } - return nil - } - - if info.Mode().Perm()&0111 == 0 { - // file is not executable let's not load it - // this is to prevent loading plugins from for example non-executable - // mounts, some /tmp mounts are marked as such for security - log.Errorf("non-executable file in plugins directory: %s", fi) - return nil - } - - if newPlugins, err := loadPlugin(fi); err == nil { - plugins = append(plugins, newPlugins...) - } else { - return fmt.Errorf("loading plugin %s: %s", fi, err) - } - return nil - }) - - return plugins, err -} - -func loadPlugin(fi string) ([]iplugin.Plugin, error) { - pl, err := plugin.Open(fi) - if err != nil { - return nil, err - } - pls, err := pl.Lookup("Plugins") - if err != nil { - return nil, err - } - - typePls, ok := pls.(*[]iplugin.Plugin) - if !ok { - return nil, errors.New("filed 'Plugins' didn't contain correct type") - } - - return *typePls, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/loader/loader.go b/vendor/github.com/ipfs/go-ipfs/plugin/loader/loader.go deleted file mode 100644 index b6c9dd53..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/loader/loader.go +++ /dev/null @@ -1,170 +0,0 @@ -package loader - -import ( - "fmt" - "os" - "strings" - - coredag "github.com/ipfs/go-ipfs/core/coredag" - plugin "github.com/ipfs/go-ipfs/plugin" - fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo" - - opentracing "gx/ipfs/QmWLWmRVSiagqP15jczsGME1qpob6HDbtbHAY2he9W5iUo/opentracing-go" - coreiface "gx/ipfs/QmXLwxifxwfc2bAwq6rdjbYqAsGzWsDE9RM5TWMGtykyj6/interface-go-ipfs-core" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("plugin/loader") - -var loadPluginsFunc = func(string) ([]plugin.Plugin, error) { - return nil, nil -} - -// PluginLoader keeps track of loaded plugins -type PluginLoader struct { - plugins []plugin.Plugin -} - -// NewPluginLoader creates new plugin loader -func NewPluginLoader(pluginDir string) (*PluginLoader, error) { - plMap := make(map[string]plugin.Plugin) - for _, v := range preloadPlugins { - plMap[v.Name()] = v - } - - if pluginDir != "" { - newPls, err := loadDynamicPlugins(pluginDir) - if err != nil { - return nil, err - } - - for _, pl := range newPls { - if ppl, ok := plMap[pl.Name()]; ok { - // plugin is already preloaded - return nil, fmt.Errorf( - "plugin: %s, is duplicated in version: %s, "+ - "while trying to load dynamically: %s", - ppl.Name(), ppl.Version(), pl.Version()) - } - plMap[pl.Name()] = pl - } - } - - loader := &PluginLoader{plugins: make([]plugin.Plugin, 0, len(plMap))} - - for _, v := range plMap { - loader.plugins = append(loader.plugins, v) - } - - return loader, nil -} - -func loadDynamicPlugins(pluginDir string) ([]plugin.Plugin, error) { - _, err := os.Stat(pluginDir) - if os.IsNotExist(err) { - return nil, nil - } - if err != nil { - return nil, err - } - - return loadPluginsFunc(pluginDir) -} - -// Initialize initializes all loaded plugins -func (loader *PluginLoader) Initialize() error { - for _, p := range loader.plugins { - err := p.Init() - if err != nil { - return err - } - } - - return nil -} - -// Inject hooks all the plugins into the appropriate subsystems. -func (loader *PluginLoader) Inject() error { - for _, pl := range loader.plugins { - if pl, ok := pl.(plugin.PluginIPLD); ok { - err := injectIPLDPlugin(pl) - if err != nil { - return err - } - } - if pl, ok := pl.(plugin.PluginTracer); ok { - err := injectTracerPlugin(pl) - if err != nil { - return err - } - } - if pl, ok := pl.(plugin.PluginDatastore); ok { - err := injectDatastorePlugin(pl) - if err != nil { - return err - } - } - } - return nil -} - -// Start starts all long-running plugins. -func (loader *PluginLoader) Start(iface coreiface.CoreAPI) error { - for i, pl := range loader.plugins { - if pl, ok := pl.(plugin.PluginDaemon); ok { - err := pl.Start(iface) - if err != nil { - closePlugins(loader.plugins[i:]) - return err - } - } - } - return nil -} - -// StopDaemon stops all long-running plugins. -func (loader *PluginLoader) Close() error { - return closePlugins(loader.plugins) -} - -func closePlugins(plugins []plugin.Plugin) error { - var errs []string - for _, pl := range plugins { - if pl, ok := pl.(plugin.PluginDaemon); ok { - err := pl.Close() - if err != nil { - errs = append(errs, fmt.Sprintf( - "error closing plugin %s: %s", - pl.Name(), - err.Error(), - )) - } - } - } - if errs != nil { - return fmt.Errorf(strings.Join(errs, "\n")) - } - return nil -} - -func injectDatastorePlugin(pl plugin.PluginDatastore) error { - return fsrepo.AddDatastoreConfigHandler(pl.DatastoreTypeName(), pl.DatastoreConfigParser()) -} - -func injectIPLDPlugin(pl plugin.PluginIPLD) error { - err := pl.RegisterBlockDecoders(ipld.DefaultBlockDecoder) - if err != nil { - return err - } - return pl.RegisterInputEncParsers(coredag.DefaultInputEncParsers) -} - -func injectTracerPlugin(pl plugin.PluginTracer) error { - tracer, err := pl.InitTracer() - if err != nil { - return err - } - opentracing.SetGlobalTracer(tracer) - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.go b/vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.go deleted file mode 100644 index 730f3538..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.go +++ /dev/null @@ -1,20 +0,0 @@ -package loader - -import ( - "github.com/ipfs/go-ipfs/plugin" - pluginbadgerds "github.com/ipfs/go-ipfs/plugin/plugins/badgerds" - pluginflatfs "github.com/ipfs/go-ipfs/plugin/plugins/flatfs" - pluginipldgit "github.com/ipfs/go-ipfs/plugin/plugins/git" - pluginlevelds "github.com/ipfs/go-ipfs/plugin/plugins/levelds" -) - -// DO NOT EDIT THIS FILE -// This file is being generated as part of plugin build process -// To change it, modify the plugin/loader/preload.sh - -var preloadPlugins = []plugin.Plugin{ - pluginipldgit.Plugins[0], - pluginbadgerds.Plugins[0], - pluginflatfs.Plugins[0], - pluginlevelds.Plugins[0], -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.sh b/vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.sh deleted file mode 100755 index 5d000d0a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/loader/preload.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -to_preload() { - awk 'NF' "$DIR/preload_list" | sed '/^#/d' -} - -cat </dev/null - -$($(d)_plugins_so): %.so : %/main/main.go -$($(d)_plugins_so): $$(DEPS_GO) ALWAYS - $(GOCC) build -buildmode=plugin -i -pkgdir "$(GOPATH)/pkg/linux_amd64_dynlink" $(go-flags-with-tags) -o "$@" "$(call go-pkg-name,$(basename $@))/main" - chmod +x "$@" - -CLEAN += $($(d)_plugins_so) -CLEAN += $(foreach main_dir,$($(d)_plugins_main),$(dir $(main_dir))) - -build_plugins: $($(d)_plugins_so) - - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/plugins/badgerds/badgerds.go b/vendor/github.com/ipfs/go-ipfs/plugin/plugins/badgerds/badgerds.go deleted file mode 100644 index 31c3f5cf..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/plugins/badgerds/badgerds.go +++ /dev/null @@ -1,127 +0,0 @@ -package badgerds - -import ( - "fmt" - "os" - "path/filepath" - - "github.com/ipfs/go-ipfs/plugin" - "github.com/ipfs/go-ipfs/repo" - "github.com/ipfs/go-ipfs/repo/fsrepo" - - humanize "gx/ipfs/QmQMxG9D52TirZd9eLA37nxiNspnMRkKbyPWrVAa1gvtSy/go-humanize" - badgerds "gx/ipfs/QmTNJogwkhnbHeRmAXWtzvN2KgVko2oNmHHQN1ggHVhF91/go-ds-badger" -) - -// Plugins is exported list of plugins that will be loaded -var Plugins = []plugin.Plugin{ - &badgerdsPlugin{}, -} - -type badgerdsPlugin struct{} - -var _ plugin.PluginDatastore = (*badgerdsPlugin)(nil) - -func (*badgerdsPlugin) Name() string { - return "ds-badgerds" -} - -func (*badgerdsPlugin) Version() string { - return "0.1.0" -} - -func (*badgerdsPlugin) Init() error { - return nil -} - -func (*badgerdsPlugin) DatastoreTypeName() string { - return "badgerds" -} - -type datastoreConfig struct { - path string - syncWrites bool - truncate bool - - vlogFileSize int64 -} - -// BadgerdsDatastoreConfig returns a configuration stub for a badger datastore -// from the given parameters -func (*badgerdsPlugin) DatastoreConfigParser() fsrepo.ConfigFromMap { - return func(params map[string]interface{}) (fsrepo.DatastoreConfig, error) { - var c datastoreConfig - var ok bool - - c.path, ok = params["path"].(string) - if !ok { - return nil, fmt.Errorf("'path' field is missing or not string") - } - - sw, ok := params["syncWrites"] - if !ok { - c.syncWrites = true - } else { - if swb, ok := sw.(bool); ok { - c.syncWrites = swb - } else { - return nil, fmt.Errorf("'syncWrites' field was not a boolean") - } - } - - truncate, ok := params["truncate"] - if !ok { - c.truncate = true - } else { - if truncate, ok := truncate.(bool); ok { - c.truncate = truncate - } else { - return nil, fmt.Errorf("'truncate' field was not a boolean") - } - } - - vls, ok := params["vlogFileSize"] - if !ok { - // default to 1GiB - c.vlogFileSize = badgerds.DefaultOptions.ValueLogFileSize - } else { - if vlogSize, ok := vls.(string); ok { - s, err := humanize.ParseBytes(vlogSize) - if err != nil { - return nil, err - } - c.vlogFileSize = int64(s) - } else { - return nil, fmt.Errorf("'vlogFileSize' field was not a string") - } - } - - return &c, nil - } -} - -func (c *datastoreConfig) DiskSpec() fsrepo.DiskSpec { - return map[string]interface{}{ - "type": "badgerds", - "path": c.path, - } -} - -func (c *datastoreConfig) Create(path string) (repo.Datastore, error) { - p := c.path - if !filepath.IsAbs(p) { - p = filepath.Join(path, p) - } - - err := os.MkdirAll(p, 0755) - if err != nil { - return nil, err - } - - defopts := badgerds.DefaultOptions - defopts.SyncWrites = c.syncWrites - defopts.Truncate = c.truncate - defopts.ValueLogFileSize = c.vlogFileSize - - return badgerds.NewDatastore(p, &defopts) -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/plugins/flatfs/flatfs.go b/vendor/github.com/ipfs/go-ipfs/plugin/plugins/flatfs/flatfs.go deleted file mode 100644 index 85d7f69b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/plugins/flatfs/flatfs.go +++ /dev/null @@ -1,90 +0,0 @@ -package flatfs - -import ( - "fmt" - "path/filepath" - - "github.com/ipfs/go-ipfs/plugin" - "github.com/ipfs/go-ipfs/repo" - "github.com/ipfs/go-ipfs/repo/fsrepo" - - flatfs "gx/ipfs/QmcjM6sfVtgGFBCCJaZo33HNi7K4rPkrUQAzLewgWTNkeg/go-ds-flatfs" -) - -// Plugins is exported list of plugins that will be loaded -var Plugins = []plugin.Plugin{ - &flatfsPlugin{}, -} - -type flatfsPlugin struct{} - -var _ plugin.PluginDatastore = (*flatfsPlugin)(nil) - -func (*flatfsPlugin) Name() string { - return "ds-flatfs" -} - -func (*flatfsPlugin) Version() string { - return "0.1.0" -} - -func (*flatfsPlugin) Init() error { - return nil -} - -func (*flatfsPlugin) DatastoreTypeName() string { - return "flatfs" -} - -type datastoreConfig struct { - path string - shardFun *flatfs.ShardIdV1 - syncField bool -} - -// BadgerdsDatastoreConfig returns a configuration stub for a badger datastore -// from the given parameters -func (*flatfsPlugin) DatastoreConfigParser() fsrepo.ConfigFromMap { - return func(params map[string]interface{}) (fsrepo.DatastoreConfig, error) { - var c datastoreConfig - var ok bool - var err error - - c.path, ok = params["path"].(string) - if !ok { - return nil, fmt.Errorf("'path' field is missing or not boolean") - } - - sshardFun, ok := params["shardFunc"].(string) - if !ok { - return nil, fmt.Errorf("'shardFunc' field is missing or not a string") - } - c.shardFun, err = flatfs.ParseShardFunc(sshardFun) - if err != nil { - return nil, err - } - - c.syncField, ok = params["sync"].(bool) - if !ok { - return nil, fmt.Errorf("'sync' field is missing or not boolean") - } - return &c, nil - } -} - -func (c *datastoreConfig) DiskSpec() fsrepo.DiskSpec { - return map[string]interface{}{ - "type": "flatfs", - "path": c.path, - "shardFunc": c.shardFun.String(), - } -} - -func (c *datastoreConfig) Create(path string) (repo.Datastore, error) { - p := c.path - if !filepath.IsAbs(p) { - p = filepath.Join(path, p) - } - - return flatfs.CreateOrOpen(p, c.shardFun, c.syncField) -} diff --git a/vendor/github.com/ipfs/go-ipfs/plugin/plugins/gen_main.sh b/vendor/github.com/ipfs/go-ipfs/plugin/plugins/gen_main.sh deleted file mode 100755 index b149502f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/plugin/plugins/gen_main.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -dir=${1:?first paramater with dir to work in is required} -pkg=${2:?second parameter with full name of the package is required} -main_pkg="$dir/main" - -shortpkg="uniquepkgname" - -mkdir -p "$main_pkg" - -cat > "$main_pkg/main.go" <= q.tail { + return datastore.Key{}, cid.Undef + } + + key := q.queueKey(q.head) + value, err := q.ds.Get(key) + + if err != nil { + if err == datastore.ErrNotFound { + log.Warningf("Error missing entry in queue: %s", key) + } else { + log.Errorf("Error fetching from queue: %s", err) + } + q.head++ // move on + continue + } + + c, err := cid.Parse(value) + if err != nil { + log.Warningf("Error marshalling Cid from queue: ", err) + q.head++ + err = q.ds.Delete(key) + if err != nil { + log.Warningf("Provider queue failed to delete: %s", key) + } + continue + } + + return key, c + } +} + +// Run dequeues and enqueues when available. +func (q *Queue) work() { + go func() { + var k datastore.Key = datastore.Key{} + var c cid.Cid = cid.Undef + + defer func() { + close(q.closed) + }() + + for { + if c == cid.Undef { + k, c = q.nextEntry() + } + + // If c != cid.Undef set dequeue and attempt write, otherwise wait for enqueue + var dequeue chan cid.Cid + if c != cid.Undef { + dequeue = q.dequeue + } + + select { + case toQueue := <-q.enqueue: + nextKey := q.queueKey(q.tail) + + if err := q.ds.Put(nextKey, toQueue.Bytes()); err != nil { + log.Errorf("Failed to enqueue cid: %s", err) + continue + } + + q.tail++ + case dequeue <- c: + err := q.ds.Delete(k) + + if err != nil { + log.Errorf("Failed to delete queued cid %s with key %s: %s", c, k, err) + continue + } + c = cid.Undef + q.head++ + case <-q.ctx.Done(): + return + } + } + }() +} + +func (q *Queue) queueKey(id uint64) datastore.Key { + s := fmt.Sprintf("%016X", id) + return datastore.NewKey(s) +} + +func getQueueHeadTail(ctx context.Context, datastore datastore.Datastore) (uint64, uint64, error) { + head, err := getQueueHead(datastore) + if err != nil { + return 0, 0, err + } + tail, err := getQueueTail(datastore) + if err != nil { + return 0, 0, err + } + return head, tail, nil +} + +func getQueueHead(ds datastore.Datastore) (uint64, error) { + return getFirstIDByOrder(ds, query.OrderByKey{}) +} + +func getQueueTail(ds datastore.Datastore) (uint64, error) { + tail, err := getFirstIDByOrder(ds, query.OrderByKeyDescending{}) + if err != nil { + return 0, err + } + if tail > 0 { + tail++ + } + return tail, nil +} + +func getFirstIDByOrder(ds datastore.Datastore, order query.Order) (uint64, error) { + q := query.Query{Orders: []query.Order{order}} + results, err := ds.Query(q) + if err != nil { + return 0, err + } + defer results.Close() + r, ok := results.NextSync() + if !ok { + return 0, nil + } + trimmed := strings.TrimPrefix(r.Key, "/") + id, err := strconv.ParseUint(trimmed, 16, 64) + if err != nil { + return 0, err + } + return id, nil +} diff --git a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/config_test.go b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/config_test.go deleted file mode 100644 index e0078120..00000000 --- a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/config_test.go +++ /dev/null @@ -1,236 +0,0 @@ -package fsrepo_test - -import ( - "encoding/json" - "io/ioutil" - "os" - "reflect" - "testing" - - "github.com/ipfs/go-ipfs/plugin/loader" - "github.com/ipfs/go-ipfs/repo/fsrepo" - - "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" -) - -// note: to test sorting of the mountpoints in the disk spec they are -// specified out of order in the test config -var defaultConfig = []byte(`{ - "StorageMax": "10GB", - "StorageGCWatermark": 90, - "GCPeriod": "1h", - "Spec": { - "mounts": [ - { - "child": { - "compression": "none", - "path": "datastore", - "type": "levelds" - }, - "mountpoint": "/", - "prefix": "leveldb.datastore", - "type": "measure" - }, - { - "child": { - "path": "blocks", - "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", - "sync": true, - "type": "flatfs" - }, - "mountpoint": "/blocks", - "prefix": "flatfs.datastore", - "type": "measure" - } - ], - "type": "mount" - }, - "HashOnRead": false, - "BloomFilterSize": 0 -}`) - -var leveldbConfig = []byte(`{ - "compression": "none", - "path": "datastore", - "type": "levelds" -}`) - -var flatfsConfig = []byte(`{ - "path": "blocks", - "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", - "sync": true, - "type": "flatfs" -}`) - -var measureConfig = []byte(`{ - "child": { - "path": "blocks", - "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", - "sync": true, - "type": "flatfs" - }, - "mountpoint": "/blocks", - "prefix": "flatfs.datastore", - "type": "measure" -}`) - -func TestDefaultDatastoreConfig(t *testing.T) { - loader, err := loader.NewPluginLoader("") - if err != nil { - t.Fatal(err) - } - err = loader.Initialize() - if err != nil { - t.Fatal(err) - } - - err = loader.Inject() - if err != nil { - t.Fatal(err) - } - - dir, err := ioutil.TempDir("", "ipfs-datastore-config-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) // clean up - - config := new(config.Datastore) - err = json.Unmarshal(defaultConfig, config) - if err != nil { - t.Fatal(err) - } - - dsc, err := fsrepo.AnyDatastoreConfig(config.Spec) - if err != nil { - t.Fatal(err) - } - - expected := `{"mounts":[{"mountpoint":"/blocks","path":"blocks","shardFunc":"/repo/flatfs/shard/v1/next-to-last/2","type":"flatfs"},{"mountpoint":"/","path":"datastore","type":"levelds"}],"type":"mount"}` - if dsc.DiskSpec().String() != expected { - t.Errorf("expected '%s' got '%s' as DiskId", expected, dsc.DiskSpec().String()) - } - - ds, err := dsc.Create(dir) - if err != nil { - t.Fatal(err) - } - - if typ := reflect.TypeOf(ds).String(); typ != "*mount.Datastore" { - t.Errorf("expected '*mount.Datastore' got '%s'", typ) - } -} - -func TestLevelDbConfig(t *testing.T) { - config := new(config.Datastore) - err := json.Unmarshal(defaultConfig, config) - if err != nil { - t.Fatal(err) - } - dir, err := ioutil.TempDir("", "ipfs-datastore-config-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) // clean up - - spec := make(map[string]interface{}) - err = json.Unmarshal(leveldbConfig, &spec) - if err != nil { - t.Fatal(err) - } - - dsc, err := fsrepo.AnyDatastoreConfig(spec) - if err != nil { - t.Fatal(err) - } - - expected := `{"path":"datastore","type":"levelds"}` - if dsc.DiskSpec().String() != expected { - t.Errorf("expected '%s' got '%s' as DiskId", expected, dsc.DiskSpec().String()) - } - - ds, err := dsc.Create(dir) - if err != nil { - t.Fatal(err) - } - - if typ := reflect.TypeOf(ds).String(); typ != "*leveldb.Datastore" { - t.Errorf("expected '*leveldb.datastore' got '%s'", typ) - } -} - -func TestFlatfsConfig(t *testing.T) { - config := new(config.Datastore) - err := json.Unmarshal(defaultConfig, config) - if err != nil { - t.Fatal(err) - } - dir, err := ioutil.TempDir("", "ipfs-datastore-config-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) // clean up - - spec := make(map[string]interface{}) - err = json.Unmarshal(flatfsConfig, &spec) - if err != nil { - t.Fatal(err) - } - - dsc, err := fsrepo.AnyDatastoreConfig(spec) - if err != nil { - t.Fatal(err) - } - - expected := `{"path":"blocks","shardFunc":"/repo/flatfs/shard/v1/next-to-last/2","type":"flatfs"}` - if dsc.DiskSpec().String() != expected { - t.Errorf("expected '%s' got '%s' as DiskId", expected, dsc.DiskSpec().String()) - } - - ds, err := dsc.Create(dir) - if err != nil { - t.Fatal(err) - } - - if typ := reflect.TypeOf(ds).String(); typ != "*flatfs.Datastore" { - t.Errorf("expected '*flatfs.Datastore' got '%s'", typ) - } -} - -func TestMeasureConfig(t *testing.T) { - config := new(config.Datastore) - err := json.Unmarshal(defaultConfig, config) - if err != nil { - t.Fatal(err) - } - dir, err := ioutil.TempDir("", "ipfs-datastore-config-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) // clean up - - spec := make(map[string]interface{}) - err = json.Unmarshal(measureConfig, &spec) - if err != nil { - t.Fatal(err) - } - - dsc, err := fsrepo.AnyDatastoreConfig(spec) - if err != nil { - t.Fatal(err) - } - - expected := `{"path":"blocks","shardFunc":"/repo/flatfs/shard/v1/next-to-last/2","type":"flatfs"}` - if dsc.DiskSpec().String() != expected { - t.Errorf("expected '%s' got '%s' as DiskId", expected, dsc.DiskSpec().String()) - } - - ds, err := dsc.Create(dir) - if err != nil { - t.Fatal(err) - } - - if typ := reflect.TypeOf(ds).String(); typ != "*measure.measure" { - t.Errorf("expected '*measure.measure' got '%s'", typ) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/datastores.go b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/datastores.go index 7bc6089e..8cdf25fc 100644 --- a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/datastores.go +++ b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/datastores.go @@ -8,9 +8,10 @@ import ( "github.com/ipfs/go-ipfs/repo" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore/mount" - "gx/ipfs/QmafCXHpwUKGUrt6eQF97U1ornFxTicsw7iyYSAhu9aXgc/go-ds-measure" + ds "github.com/ipfs/go-datastore" + "github.com/ipfs/go-datastore/mount" + dssync "github.com/ipfs/go-datastore/sync" + "github.com/ipfs/go-ds-measure" ) // ConfigFromMap creates a new datastore config from a map @@ -174,7 +175,7 @@ func (c *memDatastoreConfig) DiskSpec() DiskSpec { } func (c *memDatastoreConfig) Create(string) (repo.Datastore, error) { - return ds.NewMapDatastore(), nil + return dssync.MutexWrap(ds.NewMapDatastore()), nil } type logDatastoreConfig struct { diff --git a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo.go b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo.go index 208d91e7..d35c9714 100644 --- a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo.go +++ b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo.go @@ -18,15 +18,15 @@ import ( mfsr "github.com/ipfs/go-ipfs/repo/fsrepo/migrations" dir "github.com/ipfs/go-ipfs/thirdparty/dir" - util "gx/ipfs/QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz/go-ipfs-util" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - serialize "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config/serialize" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" - measure "gx/ipfs/QmafCXHpwUKGUrt6eQF97U1ornFxTicsw7iyYSAhu9aXgc/go-ds-measure" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - lockfile "gx/ipfs/QmdDpQpe8RHu9qBiFWPaBvSAUr2kRLWipEjzDqAMfWqwFQ/go-fs-lock" - homedir "gx/ipfs/QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK/go-homedir" + ds "github.com/ipfs/go-datastore" + measure "github.com/ipfs/go-ds-measure" + lockfile "github.com/ipfs/go-fs-lock" + config "github.com/ipfs/go-ipfs-config" + serialize "github.com/ipfs/go-ipfs-config/serialize" + util "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" + homedir "github.com/mitchellh/go-homedir" + ma "github.com/multiformats/go-multiaddr" ) // LockFile is the filename of the repo lock, relative to config dir diff --git a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo_test.go b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo_test.go deleted file mode 100644 index 7823e7ca..00000000 --- a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/fsrepo_test.go +++ /dev/null @@ -1,118 +0,0 @@ -package fsrepo - -import ( - "bytes" - "io/ioutil" - "os" - "path/filepath" - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/assert" - - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - datastore "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" -) - -// swap arg order -func testRepoPath(p string, t *testing.T) string { - name, err := ioutil.TempDir("", p) - if err != nil { - t.Fatal(err) - } - return name -} - -func TestInitIdempotence(t *testing.T) { - t.Parallel() - path := testRepoPath("", t) - for i := 0; i < 10; i++ { - assert.Nil(Init(path, &config.Config{Datastore: config.DefaultDatastoreConfig()}), t, "multiple calls to init should succeed") - } -} - -func Remove(repoPath string) error { - repoPath = filepath.Clean(repoPath) - return os.RemoveAll(repoPath) -} - -func TestCanManageReposIndependently(t *testing.T) { - t.Parallel() - pathA := testRepoPath("a", t) - pathB := testRepoPath("b", t) - - t.Log("initialize two repos") - assert.Nil(Init(pathA, &config.Config{Datastore: config.DefaultDatastoreConfig()}), t, "a", "should initialize successfully") - assert.Nil(Init(pathB, &config.Config{Datastore: config.DefaultDatastoreConfig()}), t, "b", "should initialize successfully") - - t.Log("ensure repos initialized") - assert.True(IsInitialized(pathA), t, "a should be initialized") - assert.True(IsInitialized(pathB), t, "b should be initialized") - - t.Log("open the two repos") - repoA, err := Open(pathA) - assert.Nil(err, t, "a") - repoB, err := Open(pathB) - assert.Nil(err, t, "b") - - t.Log("close and remove b while a is open") - assert.Nil(repoB.Close(), t, "close b") - assert.Nil(Remove(pathB), t, "remove b") - - t.Log("close and remove a") - assert.Nil(repoA.Close(), t) - assert.Nil(Remove(pathA), t) -} - -func TestDatastoreGetNotAllowedAfterClose(t *testing.T) { - t.Parallel() - path := testRepoPath("test", t) - - assert.True(!IsInitialized(path), t, "should NOT be initialized") - assert.Nil(Init(path, &config.Config{Datastore: config.DefaultDatastoreConfig()}), t, "should initialize successfully") - r, err := Open(path) - assert.Nil(err, t, "should open successfully") - - k := "key" - data := []byte(k) - assert.Nil(r.Datastore().Put(datastore.NewKey(k), data), t, "Put should be successful") - - assert.Nil(r.Close(), t) - _, err = r.Datastore().Get(datastore.NewKey(k)) - assert.Err(err, t, "after closer, Get should be fail") -} - -func TestDatastorePersistsFromRepoToRepo(t *testing.T) { - t.Parallel() - path := testRepoPath("test", t) - - assert.Nil(Init(path, &config.Config{Datastore: config.DefaultDatastoreConfig()}), t) - r1, err := Open(path) - assert.Nil(err, t) - - k := "key" - expected := []byte(k) - assert.Nil(r1.Datastore().Put(datastore.NewKey(k), expected), t, "using first repo, Put should be successful") - assert.Nil(r1.Close(), t) - - r2, err := Open(path) - assert.Nil(err, t) - actual, err := r2.Datastore().Get(datastore.NewKey(k)) - assert.Nil(err, t, "using second repo, Get should be successful") - assert.Nil(r2.Close(), t) - assert.True(bytes.Equal(expected, actual), t, "data should match") -} - -func TestOpenMoreThanOnceInSameProcess(t *testing.T) { - t.Parallel() - path := testRepoPath("", t) - assert.Nil(Init(path, &config.Config{Datastore: config.DefaultDatastoreConfig()}), t) - - r1, err := Open(path) - assert.Nil(err, t, "first repo should open successfully") - r2, err := Open(path) - assert.Nil(err, t, "second repo should open successfully") - assert.True(r1 == r2, t, "second open returns same value") - - assert.Nil(r1.Close(), t) - assert.Nil(r2.Close(), t) -} diff --git a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/migrations/mfsr_test.go b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/migrations/mfsr_test.go deleted file mode 100644 index c93babff..00000000 --- a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/migrations/mfsr_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package mfsr - -import ( - "io/ioutil" - "os" - "strconv" - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/assert" -) - -func testVersionFile(v string, t *testing.T) (rp RepoPath) { - name, err := ioutil.TempDir("", v) - if err != nil { - t.Fatal(err) - } - rp = RepoPath(name) - return rp -} - -func TestVersion(t *testing.T) { - rp := RepoPath("") - _, err := rp.Version() - assert.Err(err, t, "Should throw an error when path is bad,") - - rp = RepoPath("/path/to/nowhere") - _, err = rp.Version() - if !os.IsNotExist(err) { - t.Fatalf("Should throw an `IsNotExist` error when file doesn't exist: %v", err) - } - - fsrepoV := 5 - - rp = testVersionFile(strconv.Itoa(fsrepoV), t) - _, err = rp.Version() - assert.Err(err, t, "Bad VersionFile") - - assert.Nil(rp.WriteVersion(fsrepoV), t, "Trouble writing version") - - assert.Nil(rp.CheckVersion(fsrepoV), t, "Trouble checking the version") - - assert.Err(rp.CheckVersion(1), t, "Should throw an error for the wrong version.") -} diff --git a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/misc.go b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/misc.go index 866bb49c..7f0c0164 100644 --- a/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/misc.go +++ b/vendor/github.com/ipfs/go-ipfs/repo/fsrepo/misc.go @@ -3,8 +3,8 @@ package fsrepo import ( "os" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - homedir "gx/ipfs/QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK/go-homedir" + config "github.com/ipfs/go-ipfs-config" + homedir "github.com/mitchellh/go-homedir" ) // BestKnownPath returns the best known fsrepo path. If the ENV override is diff --git a/vendor/github.com/ipfs/go-ipfs/repo/mock.go b/vendor/github.com/ipfs/go-ipfs/repo/mock.go index 68a2b0a5..78ec9073 100644 --- a/vendor/github.com/ipfs/go-ipfs/repo/mock.go +++ b/vendor/github.com/ipfs/go-ipfs/repo/mock.go @@ -6,8 +6,8 @@ import ( filestore "github.com/ipfs/go-ipfs/filestore" keystore "github.com/ipfs/go-ipfs/keystore" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" + config "github.com/ipfs/go-ipfs-config" + ma "github.com/multiformats/go-multiaddr" ) var errTODO = errors.New("TODO: mock repo") diff --git a/vendor/github.com/ipfs/go-ipfs/repo/repo.go b/vendor/github.com/ipfs/go-ipfs/repo/repo.go index e776bc16..ffb024af 100644 --- a/vendor/github.com/ipfs/go-ipfs/repo/repo.go +++ b/vendor/github.com/ipfs/go-ipfs/repo/repo.go @@ -7,9 +7,9 @@ import ( filestore "github.com/ipfs/go-ipfs/filestore" keystore "github.com/ipfs/go-ipfs/keystore" - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - ds "gx/ipfs/QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9/go-datastore" + ds "github.com/ipfs/go-datastore" + config "github.com/ipfs/go-ipfs-config" + ma "github.com/multiformats/go-multiaddr" ) var ( @@ -59,5 +59,5 @@ type Repo interface { // Datastore is the interface required from a datastore to be // acceptable to FSRepo. type Datastore interface { - ds.Batching // should be threadsafe, just be careful + ds.Batching // must be thread-safe } diff --git a/vendor/github.com/ipfs/go-ipfs/tar/format.go b/vendor/github.com/ipfs/go-ipfs/tar/format.go deleted file mode 100644 index 2466bb6e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/tar/format.go +++ /dev/null @@ -1,225 +0,0 @@ -package tarfmt - -import ( - "archive/tar" - "bytes" - "context" - "errors" - "io" - "strings" - - "github.com/ipfs/go-ipfs/dagutils" - dag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag" - path "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path" - importer "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/importer" - uio "gx/ipfs/QmcYUTQ7tBZeH1CLsZM2S3xhMEZdvUgXvbjhpMsLDpk3oJ/go-unixfs/io" - - chunker "gx/ipfs/QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8/go-ipfs-chunker" - ipld "gx/ipfs/QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy/go-ipld-format" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("tarfmt") - -var blockSize = 512 -var zeroBlock = make([]byte, blockSize) - -func marshalHeader(h *tar.Header) ([]byte, error) { - buf := new(bytes.Buffer) - w := tar.NewWriter(buf) - err := w.WriteHeader(h) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// ImportTar imports a tar file into the given DAGService and returns the root -// node. -func ImportTar(ctx context.Context, r io.Reader, ds ipld.DAGService) (*dag.ProtoNode, error) { - tr := tar.NewReader(r) - - root := new(dag.ProtoNode) - root.SetData([]byte("ipfs/tar")) - - e := dagutils.NewDagEditor(root, ds) - - for { - h, err := tr.Next() - if err != nil { - if err == io.EOF { - break - } - return nil, err - } - - header := new(dag.ProtoNode) - - headerBytes, err := marshalHeader(h) - if err != nil { - return nil, err - } - - header.SetData(headerBytes) - - if h.Size > 0 { - spl := chunker.NewRabin(tr, uint64(chunker.DefaultBlockSize)) - nd, err := importer.BuildDagFromReader(ds, spl) - if err != nil { - return nil, err - } - - err = header.AddNodeLink("data", nd) - if err != nil { - return nil, err - } - } - - err = ds.Add(ctx, header) - if err != nil { - return nil, err - } - - path := escapePath(h.Name) - err = e.InsertNodeAtPath(context.Background(), path, header, func() *dag.ProtoNode { return new(dag.ProtoNode) }) - if err != nil { - return nil, err - } - } - - return e.Finalize(ctx, ds) -} - -// adds a '-' to the beginning of each path element so we can use 'data' as a -// special link in the structure without having to worry about -func escapePath(pth string) string { - elems := path.SplitList(strings.Trim(pth, "/")) - for i, e := range elems { - elems[i] = "-" + e - } - return path.Join(elems) -} - -type tarReader struct { - links []*ipld.Link - ds ipld.DAGService - - childRead *tarReader - hdrBuf *bytes.Reader - fileRead *countReader - pad int - - ctx context.Context -} - -func (tr *tarReader) Read(b []byte) (int, error) { - // if we have a header to be read, it takes priority - if tr.hdrBuf != nil { - n, err := tr.hdrBuf.Read(b) - if err == io.EOF { - tr.hdrBuf = nil - return n, nil - } - return n, err - } - - // no header remaining, check for recursive - if tr.childRead != nil { - n, err := tr.childRead.Read(b) - if err == io.EOF { - tr.childRead = nil - return n, nil - } - return n, err - } - - // check for filedata to be read - if tr.fileRead != nil { - n, err := tr.fileRead.Read(b) - if err == io.EOF { - nr := tr.fileRead.n - tr.pad = (blockSize - (nr % blockSize)) % blockSize - tr.fileRead.Close() - tr.fileRead = nil - return n, nil - } - return n, err - } - - // filedata reads must be padded out to 512 byte offsets - if tr.pad > 0 { - n := copy(b, zeroBlock[:tr.pad]) - tr.pad -= n - return n, nil - } - - if len(tr.links) == 0 { - return 0, io.EOF - } - - next := tr.links[0] - tr.links = tr.links[1:] - - headerNd, err := next.GetNode(tr.ctx, tr.ds) - if err != nil { - return 0, err - } - - hndpb, ok := headerNd.(*dag.ProtoNode) - if !ok { - return 0, dag.ErrNotProtobuf - } - - tr.hdrBuf = bytes.NewReader(hndpb.Data()) - - dataNd, err := hndpb.GetLinkedProtoNode(tr.ctx, tr.ds, "data") - if err != nil && err != dag.ErrLinkNotFound { - return 0, err - } - - if err == nil { - dr, err := uio.NewDagReader(tr.ctx, dataNd, tr.ds) - if err != nil { - log.Error("dagreader error: ", err) - return 0, err - } - - tr.fileRead = &countReader{r: dr} - } else if len(headerNd.Links()) > 0 { - tr.childRead = &tarReader{ - links: headerNd.Links(), - ds: tr.ds, - ctx: tr.ctx, - } - } - - return tr.Read(b) -} - -// ExportTar exports the passed DAG as a tar file. This function is the inverse -// of ImportTar. -func ExportTar(ctx context.Context, root *dag.ProtoNode, ds ipld.DAGService) (io.Reader, error) { - if string(root.Data()) != "ipfs/tar" { - return nil, errors.New("not an IPFS tarchive") - } - return &tarReader{ - links: root.Links(), - ds: ds, - ctx: ctx, - }, nil -} - -type countReader struct { - r io.ReadCloser - n int -} - -func (r *countReader) Read(b []byte) (int, error) { - n, err := r.r.Read(b) - r.n += n - return n, err -} - -func (r *countReader) Close() error { - return r.r.Close() -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/.gitignore deleted file mode 100644 index c857e918..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -IPFS-BUILD-OPTIONS diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/Makefile b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/Makefile deleted file mode 100644 index 2b8944a1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -IMAGE_NAME = ipfs-test-latest -IPFS_ROOT = ../.. - -test: clean setup - ./run-test-on-img.sh $(IMAGE_NAME) - -setup: docker_ipfs_image data/filetiny data/filerand - -save_logs: - sh bin/save_logs.sh - -save_profiling_data: - sh bin/save_profiling_data.sh - -data/filetiny: Makefile - cp Makefile ./data/filetiny # simple - -data/filerand: ../bin/random - ../bin/random 50000000 > ./data/filerand - -../bin/random: - make -C ./../../ test/bin/random - -# just build it every time... this part isn't -# even the lengthy part, and it decreases pain. -docker_ipfs_image: - docker build -t $(IMAGE_NAME) -f Dockerfile.fast . - docker images | grep $(IMAGE_NAME) - -clean: - sh bin/clean.sh - fig stop - fig rm -v --force - rm -f bin/random - rm -f data/filetiny - rm -f data/filerand - rm -rf build/* - docker rmi $(docker images | grep "^" | awk "{print \$3}") -f || true diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/README.md b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/README.md deleted file mode 100644 index 3991a630..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/README.md +++ /dev/null @@ -1,15 +0,0 @@ -this is an ipfs integration test - -**requirements** - -* Docker -* fig -* Go - -* ipfs image named "zaqwsx_ipfs-test-img" - -``` -make setup -fig build -fig up -``` diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/.gitignore deleted file mode 100644 index a1e4bc59..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -random diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/clean.sh b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/clean.sh deleted file mode 100644 index 7cc3e3f9..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/clean.sh +++ /dev/null @@ -1 +0,0 @@ -docker rm -f $( docker ps -q -a -f status=exited ) || true diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_logs.sh b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_logs.sh deleted file mode 100644 index 6586dcd1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_logs.sh +++ /dev/null @@ -1,8 +0,0 @@ -# STRIP strips color from terminal output -STRIP="perl -pe 's/\e\[?.*?[\@-~]//g'" - -# TODO use a for loop like a grownup -docker logs 3nodetest_bootstrap_1 2>&1 | eval $STRIP > ./build/bootstrap.log -docker logs 3nodetest_client_1 2>&1 | eval $STRIP > ./build/client.log -docker logs 3nodetest_data_1 2>&1 | eval $STRIP > ./build/data.log -docker logs 3nodetest_server_1 2>&1 | eval $STRIP > ./build/server.log diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_profiling_data.sh b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_profiling_data.sh deleted file mode 100644 index 03c0cbab..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bin/save_profiling_data.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -for container in 3nodetest_bootstrap_1 3nodetest_client_1 3nodetest_server_1; do - # ipfs binary is required by `go tool pprof` - docker cp $container:/go/bin/ipfs build/profiling_data_$container -done - -# since the nodes are executed with the --debug flag, profiling data is written -# to the the working dir. by default, the working dir is /go. - -for container in 3nodetest_bootstrap_1 3nodetest_client_1 3nodetest_server_1; do - docker cp $container:/go/ipfs.cpuprof build/profiling_data_$container -done - -# TODO get memprof from client (client daemon isn't terminated, so memprof isn't retrieved) -for container in 3nodetest_bootstrap_1 3nodetest_server_1; do - docker cp $container:/go/ipfs.memprof build/profiling_data_$container -done diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/Dockerfile b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/Dockerfile deleted file mode 100644 index 3fd42f56..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM zaqwsx_ipfs-test-img - -RUN ipfs init -b=1024 -ADD . /tmp/id -RUN mv -f /tmp/id/config /root/.ipfs/config -RUN ipfs id - -ENV IPFS_PROF true -ENV IPFS_LOGGING_FMT nocolor - -EXPOSE 4011 4012/udp diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/README.md b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/README.md deleted file mode 100644 index 09d7307f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/README.md +++ /dev/null @@ -1,3 +0,0 @@ -this is a bootstrap peer with an empty bootstrap list - -it listens on 4011 and 4012 diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/config b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/config deleted file mode 100644 index ac441a19..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/bootstrap/config +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Identity": { - "PeerID": "QmNXuBh8HFsWq68Fid8dMbGNQTh7eG6hV9rr1fQyfmfomE", - "PrivKey": "CAAS4gQwggJeAgEAAoGBAL+E7A0fcQS9+CHO3YAHj+JzHnWyVA7qqtiAIYbTnp9UvHBb2VFj2Q8eeyKFZD5wHoq3AtOqmIb4TUOMEtWYqXnE8o0T9np8vyCRK5dPn5SVoUw9uax6o2X7OxO1HqTcXHNHGbracawJUdwsk4yuZUpzXLez03yocWwneR0JpVJPAgMBAAECgYAXsa4ygW1OFOKZ7CnjKQxYC738+a8EmWvBlTiQoaXCOI2HqRVdyGiWQkMhpjccsmpU5wdmgHiWWinU7YN3AYgV3cP3qAjyNLBFoxy2dKsS9AOWVwRuuRP12tD05kCCjG4rJAX0JEOClOOtzvQ7/bXarMc3/tMHW7TMLNV8MzcYwQJBAOP9aYSHp8VnsO5j32Ju5SjOQorSdcCweqeUxwlAnXz50KdbNSCMypP3TOt7VeiXTuSITtN44yh+eogF5c4ehycCQQDXDHVmPeBN7uqqqZxZwW5pdeJWvx+REiXXCLE6KEPWlcxbw1D9ublpCCFLYuM68rjq1sjsIVGtiV1tYoMdHJSZAkEA0ddMZ070fB0UHFaQJGktQoGVfXB4MQI94kBtcXanfX/xLBgmre7oBYh4o8TBLXMWigFri/iYG41N+iRzf2NZwQJBAIh8rMpufT2ZZLFaoxRIc4ZVvojmFufhR8j6CFnsElpQivq2tWHEDcx+z3rkUWopgXnzRmSwJQHqTDTPsH26lQkCQQCehmxqaQEwE/QKAI8L8YVolgY2cjUGi6qF/awnI584lDSCuJRU3R/c6nc9R8qljtlJYTtp9iUr8vuN+jt48j+6" - }, - "Datastore": { - "Type": "leveldb", - "Path": "/root/.ipfs/datastore" - }, - "Addresses": { - "Swarm": [ - "/ip4/0.0.0.0/tcp/4011" - ], - "API": "/ip4/127.0.0.1/tcp/5001" - }, - "Mounts": { - "IPFS": "/ipfs", - "IPNS": "/ipns" - }, - "Version": { - "Current": "0.1.7", - "Check": "error", - "CheckDate": "0001-01-01T00:00:00Z", - "CheckPeriod": "172800000000000", - "AutoUpdate": "minor" - }, - "Bootstrap": [ - ] -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitignore deleted file mode 100644 index 84820c76..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.built_img -*.log -profiling_data* diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitkeep b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/build/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/Dockerfile b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/Dockerfile deleted file mode 100644 index c2ac8d72..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM zaqwsx_ipfs-test-img - -RUN ipfs init -b=1024 -ADD . /tmp/id -RUN mv -f /tmp/id/config /root/.ipfs/config -RUN ipfs id - -EXPOSE 4031 4032/udp - -ENV IPFS_PROF true -ENV IPFS_LOGGING_FMT nocolor - -ENTRYPOINT ["/bin/bash"] -CMD ["/tmp/id/run.sh"] diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/config b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/config deleted file mode 100644 index 86ef0668..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/config +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Addresses": { - "API": "/ip4/127.0.0.1/tcp/5001", - "Swarm": [ - "/ip4/0.0.0.0/tcp/4031" - ] - }, - "Bootstrap": [ - ], - "Datastore": { - "Path": "/root/.ipfs/datastore", - "Type": "leveldb" - }, - "Identity": { - "PeerID": "Qmbtc35vdjVh5o9w2AaT2SgcWwigsaoZUpRfq2FSrFD6mb", - "PrivKey": "CAAS4AQwggJcAgEAAoGBANlJUjOCbPXgYUfo1Pr6nlIjJDPNwN81ACamhaoEZ9VRHXI3fPe7RVAaaXrWLHb892mRqFi1ScE2lcMTLc7WGfyc7dwPqBOZqkVvT0KpCx3Mg246+WvnG8I3HCbWyjSP9tJflOBQxVq6qT2yZSXjNTtDdO4skd4PsPqBco53guYTAgMBAAECgYEAtIcYhrdMNBSSfp5RpZxnwbJ0t52xK0HruDEOSK2UX0Ufg+/aIjEza1QmYupi0xFltg5QojMs7hyd3Q+oNXro5tKsYVeiqrLsUh9jMjaQofzSlV9Oc+bhkkl48YWvF6Y8qx88UYAX+oJqB627H4S1gxLdNEJhPjEAD6n/jql3zUECQQDmHP75wJ7nC4TlxT1SHim5syMAqWNs/SOHnvX8yLrFV9FrMRzsD5qMlIEGBrAjaESzEck6XpbqkyxB8KKGo7OjAkEA8brtEh/AMoQ/yoSWdYT2MRbJxCAn+KG2c6Hi9AMMmJ+K779HxywpUIDYIa22hzLKYumYIuRa1X++1glOAFGq0QJAPQgXwFoMSy9M8jwcBXmmi3AtqnFCw5doIwJQL9l1X/3ot0txZlLFJOAGUHjZoqp2/h+LhYWs9U5PgLW4BYnJjQJAPydY/J0y93+5ss1FCdr8/wI3IHhOORT2t+sZgiqxxcYY5F4TAKQ2/wNKdDIQN+47FfB1gNgsKw8+6mhv6oFroQJACBF2yssNVXiXa2Na/a9tKYutGvxbm3lXzOvmpkW3FukbsObKYS344J1vdg0nzM6EWQCaiBweSA5TQ27iNW6BzQ==" - }, - "Mounts": { - "IPFS": "/ipfs", - "IPNS": "/ipns" - }, - "Version": { - "AutoUpdate": "minor", - "Check": "error", - "CheckDate": "0001-01-01T00:00:00Z", - "CheckPeriod": "172800000000000", - "Current": "0.1.7" - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/run.sh b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/run.sh deleted file mode 100644 index 7a34d7bb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/client/run.sh +++ /dev/null @@ -1,54 +0,0 @@ -ipfs bootstrap add /ip4/$BOOTSTRAP_PORT_4011_TCP_ADDR/tcp/$BOOTSTRAP_PORT_4011_TCP_PORT/ipfs/QmNXuBh8HFsWq68Fid8dMbGNQTh7eG6hV9rr1fQyfmfomE -ipfs bootstrap # list bootstrap nodes for debugging - -echo "3nodetest> starting client daemon" - -ipfs daemon --debug & -sleep 3 - -# switch dirs so ipfs client profiling data doesn't overwrite the ipfs daemon -# profiling data -cd /tmp - -while [ ! -f /data/idtiny ] -do - echo "3nodetest> waiting for server to add the file..." - sleep 1 -done -echo "3nodetest> client found file with hash:" $(cat /data/idtiny) - -ipfs cat $(cat /data/idtiny) > filetiny - -cat filetiny - -diff -u filetiny /data/filetiny - -if (($? > 0)); then - printf '%s\n' 'files did not match' >&2 - exit 1 -fi - -while [ ! -f /data/idrand ] -do - echo "3nodetest> waiting for server to add the file..." - sleep 1 -done -echo "3nodetest> client found file with hash:" $(cat /data/idrand) - -cat /data/idrand - -ipfs cat $(cat /data/idrand) > filerand - -if (($? > 0)); then - printf '%s\n' 'ipfs cat failed' >&2 - exit 1 -fi - -diff -u filerand /data/filerand - -if (($? > 0)); then - printf '%s\n' 'files did not match' >&2 - exit 1 -fi - -echo "3nodetest> success" diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/.gitignore deleted file mode 100644 index a535e7d8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/.gitignore +++ /dev/null @@ -1 +0,0 @@ -file* diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/Dockerfile b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/Dockerfile deleted file mode 100644 index 86e365f4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/data/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM ubuntu - -ADD filetiny /data/filetiny -ADD filerand /data/filerand - -VOLUME ["/data"] diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/fig.yml b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/fig.yml deleted file mode 100644 index 18a28c8f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/fig.yml +++ /dev/null @@ -1,38 +0,0 @@ -data: - build: ./data - volumes: - - /data - command: sleep 1000000 - -bootstrap: - build: ./bootstrap - command: daemon --debug --init - expose: - - "4011" - - "4012/udp" - environment: - IPFS_LOGGING: debug - -server: - build: ./server - links: - - bootstrap - volumes_from: - - data - expose: - - "4021" - - "4022/udp" - environment: - IPFS_LOGGING: debug - -client: - build: ./client - links: - - bootstrap - volumes_from: - - data - expose: - - "4031" - - "4032/udp" - environment: - IPFS_LOGGING: debug diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/run-test-on-img.sh b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/run-test-on-img.sh deleted file mode 100755 index 73b1935a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/run-test-on-img.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -if [ "$#" -ne 1 ]; then - echo "usage: $0 " - echo "runs this test on image matching " - exit 1 -fi - -# this tag is used by the dockerfiles in -# {data, server, client, bootstrap} -tag=zaqwsx_ipfs-test-img - -# could use set -v, but i dont want to see the comments... - -img=$(docker images | grep $1 | awk '{print $3}') -echo "using docker image: $img ($1)" - -echo docker tag -f $img $tag -docker tag -f $img $tag - -echo "fig build --no-cache" -fig build --no-cache - -echo "fig up --no-color | tee build/fig.log" -fig up --no-color | tee build/fig.log - -# save the ipfs logs for inspection -echo "make save_logs" -make save_logs || true # don't fail - -# save the ipfs logs for inspection -echo "make save_profiling_data" -make save_profiling_data || true # don't fail - -# fig up won't report the error using an error code, so we grep the -# fig.log file to find out whether the call succeeded -echo 'tail build/fig.log | grep "exited with code 0"' -tail build/fig.log | grep "exited with code 0" diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/Dockerfile b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/Dockerfile deleted file mode 100644 index bced6835..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM zaqwsx_ipfs-test-img - -RUN ipfs init -b=1024 -ADD . /tmp/test -RUN mv -f /tmp/test/config /root/.ipfs/config -RUN ipfs id -RUN chmod +x /tmp/test/run.sh - -EXPOSE 4021 4022/udp - -ENV IPFS_PROF true -ENV IPFS_LOGGING_FMT nocolor - -ENTRYPOINT ["/bin/bash"] -CMD ["/tmp/test/run.sh"] diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/README.md b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/README.md deleted file mode 100644 index 01048ddb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/README.md +++ /dev/null @@ -1,4 +0,0 @@ -**requirements** - -* docker container with bootstrap node linked as "bootstrap" with ID QmNXuBh8HFsWq68Fid8dMbGNQTh7eG6hV9rr1fQyfmfomE -* file in data volume, internally mapped to /data/file diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/config b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/config deleted file mode 100644 index fb16a6d7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/config +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Addresses": { - "API": "/ip4/127.0.0.1/tcp/5001", - "Swarm": [ - "/ip4/0.0.0.0/tcp/4021" - ] - }, - "Bootstrap": [ - ], - "Datastore": { - "Path": "/root/.ipfs/datastore", - "Type": "leveldb" - }, - "Identity": { - "PeerID": "Qmbtc2C7rqmAfdeMTM7FX4YF8CeBumMCfk5Z1GBCMbMTfY", - "PrivKey": "CAAS4AQwggJcAgEAAoGBANW3mJMmDSJbdRyykO0Ze5t6WL6jeTtpOhklxePBIkJL/Uil78Va/tODx6Mvv3GMCkbGvzWslTZXpaHa9vBmjE3MVZSmd5fLRybKT0zZ3juABKcx+WIVNw8JlkpEORihJdwb+5tRUC5pUcMzxqHSmGX+d6e9KZqLnv7piNKg2+r7AgMBAAECgYAqc6+w+wv82SHoM2gqULeG6MScCajZLkvGFwS5+vEtLh7/wUZhc3PO3AxZ0/A5Q9H+wRfWN5PkGYDjJ7WJhzUzGfTbrQ821JV6B3IUR4UHo2IgJkZO4EUB5L9KBUqvYxDJigtGBopgQh0EeDSS+9X8vaGmit5l4zcAfi+UGYPgMQJBAOCJQU8N2HW5SawBo2QX0bnCAAnu5Ilk2QaqwDZbDQaM5JWFcpRpGnjBhsZihHwVWvKCbnq83JhAGRQvKAEepMUCQQDzqjvIyM+Au42nP7SFDHoMjEnHW8Nimvz8zPbyrSUEHe4l9/yS4+BeRPxpwI5xgzp8g1wEYfNeXt08buYwCsy/AkBXWg5mSuSjJ+pZWGnQTtPwiGCrfJy8NteXmGYev11Z5wYmhTwGML1zrRZZp4oTG9u97LA+X6sSMB2RlKbjiKBhAkEAgl/hoSshK+YugwCpHE9ytmgRyeOlhYscNj+NGofeOHezRwmLUSUwlgAfdo4bKU1n69t1TrsCNspXYdCMxcPhjQJAMNxkJ8t2tFMpucCQfWJ09wvFKZSHX1/iD9GKWL0Qk2FcMCg3NXiqei5NL3NYqCWpdC/IfjsAEGCJrTFwp/OoUw==" - }, - "Mounts": { - "IPFS": "/ipfs", - "IPNS": "/ipns" - }, - "Version": { - "AutoUpdate": "minor", - "Check": "error", - "CheckDate": "0001-01-01T00:00:00Z", - "CheckPeriod": "172800000000000", - "Current": "0.1.7" - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/run.sh b/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/run.sh deleted file mode 100644 index 325ae3c3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/3nodetest/server/run.sh +++ /dev/null @@ -1,28 +0,0 @@ -# must be connected to bootstrap node -ipfs bootstrap add /ip4/$BOOTSTRAP_PORT_4011_TCP_ADDR/tcp/$BOOTSTRAP_PORT_4011_TCP_PORT/ipfs/QmNXuBh8HFsWq68Fid8dMbGNQTh7eG6hV9rr1fQyfmfomE -ipfs bootstrap # list bootstrap nodes for debugging - -# wait for daemon to start/bootstrap -# alternatively use ipfs swarm connect -echo "3nodetest> starting server daemon" - -# run daemon in debug mode to collect profiling data -ipfs daemon --debug & -sleep 3 -# TODO instead of bootrapping: ipfs swarm connect /ip4/$BOOTSTRAP_PORT_4011_TCP_ADDR/tcp/$BOOTSTRAP_PORT_4011_TCP_PORT/ipfs/QmNXuBh8HFsWq68Fid8dMbGNQTh7eG6hV9rr1fQyfmfomE - -# change dir before running add commands so ipfs client profiling data doesn't -# overwrite the daemon profiling data -cd /tmp - -# must mount this volume from data container -ipfs add -q /data/filetiny > tmptiny -mv tmptiny /data/idtiny -echo "3nodetest> added tiny file. hash is" $(cat /data/idtiny) - -ipfs add -q /data/filerand > tmprand -mv tmprand /data/idrand -echo "3nodetest> added rand file. hash is" $(cat /data/idrand) - -# allow ample time for the client to pull the data -sleep 10000000 diff --git a/vendor/github.com/ipfs/go-ipfs/test/README.md b/vendor/github.com/ipfs/go-ipfs/test/README.md deleted file mode 100644 index 3b7ea560..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -## Sharness test command coverage - -Module | Online Test | Offline Test | ------------|-----------------|-----------------| -object | t0051 | t0051 -ls | t0045 | t0045 -cat | t0040 | -dht | | -bitswap | | -block | | t0050 -daemon | t0030 | N/A -init | N/A | t0020 -add | t0040 | -config | t0021 | t0021 -version | t0060 | t0010 -ping | | -diag | | -mount | t0030 | -name | t0110 | t0100 -pin | t0080 | -get | t0090 | t0090 -refs | t0080 | -repo gc | t0080 | -id | | -bootstrap | t0120 | t0120 -swarm | | -update | | -commands | | diff --git a/vendor/github.com/ipfs/go-ipfs/test/Rules.mk b/vendor/github.com/ipfs/go-ipfs/test/Rules.mk deleted file mode 100644 index 264652fe..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/Rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -include mk/header.mk - -dir := $(d)/bin -include $(dir)/Rules.mk - -dir := $(d)/sharness -include $(dir)/Rules.mk - -dir := $(d)/unit -include $(dir)/Rules.mk - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/test/api-startup/main.go b/vendor/github.com/ipfs/go-ipfs/test/api-startup/main.go deleted file mode 100644 index fd82f5a4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/api-startup/main.go +++ /dev/null @@ -1,34 +0,0 @@ -package main - -import ( - "fmt" - "log" - "net/http" - "sync" - "time" -) - -func main() { - when := make(chan time.Time, 2) - var wg sync.WaitGroup - wg.Add(2) - for _, port := range []string{"5001", "8080"} { - go func(port string) { - defer wg.Done() - for { - r, err := http.Get(fmt.Sprintf("http://127.0.0.1:%s", port)) - if err != nil { - continue - } - t := time.Now() - when <- t - log.Println(port, t, r.StatusCode) - break - } - }(port) - } - wg.Wait() - first := <-when - second := <-when - log.Println(second.Sub(first)) -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/bench/bench_cli_ipfs_add/main.go b/vendor/github.com/ipfs/go-ipfs/test/bench/bench_cli_ipfs_add/main.go deleted file mode 100644 index 9bc8aae2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bench/bench_cli_ipfs_add/main.go +++ /dev/null @@ -1,117 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io/ioutil" - "log" - "os" - "os/exec" - "path" - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/unit" - - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - random "gx/ipfs/QmXMnwKWAFBk8kgH8gjoG5P9Pj5aASPvQA2kHdu6gRwyj5/go-random" -) - -var ( - debug = flag.Bool("debug", false, "direct ipfs output to console") - online = flag.Bool("online", false, "run the benchmarks with a running daemon") -) - -func main() { - flag.Parse() - if err := compareResults(); err != nil { - log.Fatal(err) - } -} - -func compareResults() error { - var amount unit.Information - for amount = 10 * unit.MB; amount > 0; amount = amount * 2 { - if results, err := benchmarkAdd(int64(amount)); err != nil { // TODO compare - return err - } else { - log.Println(amount, "\t", results) - } - } - return nil -} - -func benchmarkAdd(amount int64) (*testing.BenchmarkResult, error) { - var benchmarkError error - results := testing.Benchmark(func(b *testing.B) { - b.SetBytes(amount) - for i := 0; i < b.N; i++ { - b.StopTimer() - tmpDir, err := ioutil.TempDir("", "") - if err != nil { - benchmarkError = err - b.Fatal(err) - } - defer os.RemoveAll(tmpDir) - - env := append( - []string{fmt.Sprintf("%s=%s", config.EnvDir, path.Join(tmpDir, config.DefaultPathName))}, // first in order to override - os.Environ()..., - ) - setupCmd := func(cmd *exec.Cmd) { - cmd.Env = env - if *debug { - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - } - } - - initCmd := exec.Command("ipfs", "init", "-b=1024") - setupCmd(initCmd) - if err := initCmd.Run(); err != nil { - benchmarkError = err - b.Fatal(err) - } - - const seed = 1 - f, err := ioutil.TempFile("", "") - if err != nil { - benchmarkError = err - b.Fatal(err) - } - defer os.Remove(f.Name()) - - random.WritePseudoRandomBytes(amount, f, seed) - if err := f.Close(); err != nil { - benchmarkError = err - b.Fatal(err) - } - - func() { - // FIXME online mode isn't working. client complains that it cannot open leveldb - if *online { - daemonCmd := exec.Command("ipfs", "daemon") - setupCmd(daemonCmd) - if err := daemonCmd.Start(); err != nil { - benchmarkError = err - b.Fatal(err) - } - defer daemonCmd.Wait() - defer daemonCmd.Process.Signal(os.Interrupt) - } - - b.StartTimer() - addCmd := exec.Command("ipfs", "add", f.Name()) - setupCmd(addCmd) - if err := addCmd.Run(); err != nil { - benchmarkError = err - b.Fatal(err) - } - b.StopTimer() - }() - } - }) - if benchmarkError != nil { - return nil, benchmarkError - } - return &results, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/bench/offline_add/main.go b/vendor/github.com/ipfs/go-ipfs/test/bench/offline_add/main.go deleted file mode 100644 index 712c9312..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bench/offline_add/main.go +++ /dev/null @@ -1,80 +0,0 @@ -package main - -import ( - "fmt" - "io/ioutil" - "log" - "os" - "os/exec" - "path" - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/unit" - - config "gx/ipfs/QmUAuYuiafnJRZxDDX7MuruMNsicYNuyub5vUeAcupUBNs/go-ipfs-config" - random "gx/ipfs/QmXMnwKWAFBk8kgH8gjoG5P9Pj5aASPvQA2kHdu6gRwyj5/go-random" -) - -func main() { - if err := compareResults(); err != nil { - log.Fatal(err) - } -} - -func compareResults() error { - var amount unit.Information - for amount = 10 * unit.MB; amount > 0; amount = amount * 2 { - if results, err := benchmarkAdd(int64(amount)); err != nil { // TODO compare - return err - } else { - log.Println(amount, "\t", results) - } - } - return nil -} - -func benchmarkAdd(amount int64) (*testing.BenchmarkResult, error) { - results := testing.Benchmark(func(b *testing.B) { - b.SetBytes(amount) - for i := 0; i < b.N; i++ { - b.StopTimer() - tmpDir, err := ioutil.TempDir("", "") - if err != nil { - b.Fatal(err) - } - defer os.RemoveAll(tmpDir) - - env := append(os.Environ(), fmt.Sprintf("%s=%s", config.EnvDir, path.Join(tmpDir, config.DefaultPathName))) - setupCmd := func(cmd *exec.Cmd) { - cmd.Env = env - } - - cmd := exec.Command("ipfs", "init", "-b=1024") - setupCmd(cmd) - if err := cmd.Run(); err != nil { - b.Fatal(err) - } - - const seed = 1 - f, err := ioutil.TempFile("", "") - if err != nil { - b.Fatal(err) - } - defer os.Remove(f.Name()) - - random.WritePseudoRandomBytes(amount, f, seed) - if err := f.Close(); err != nil { - b.Fatal(err) - } - - b.StartTimer() - cmd = exec.Command("ipfs", "add", f.Name()) - setupCmd(cmd) - if err := cmd.Run(); err != nil { - b.Fatal(err) - } - b.StopTimer() - } - }) - return &results, nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/bin/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/bin/.gitignore deleted file mode 100644 index cf2d8473..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bin/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -# Ignore everything in this directory by default -/** - -# Do not ignore this file itself -!.gitignore - -# Do not ignore the following special scripts -!checkflags -!continueyn -!verify-go-fmt.sh -!Rules.mk diff --git a/vendor/github.com/ipfs/go-ipfs/test/bin/Rules.mk b/vendor/github.com/ipfs/go-ipfs/test/bin/Rules.mk deleted file mode 100644 index 7896d353..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bin/Rules.mk +++ /dev/null @@ -1,64 +0,0 @@ -include mk/header.mk - -TGTS_$(d) := - -$(d)/pollEndpoint: thirdparty/pollEndpoint - $(go-build) -TGTS_$(d) += $(d)/pollEndpoint - -$(d)/go-sleep: test/dependencies/go-sleep - $(go-build) -TGTS_$(d) += $(d)/go-sleep - -$(d)/go-timeout: test/dependencies/go-timeout - $(go-build) -TGTS_$(d) += $(d)/go-timeout - -$(d)/iptb: test/dependencies/iptb - $(go-build) -TGTS_$(d) += $(d)/iptb - -$(d)/ma-pipe-unidir: test/dependencies/ma-pipe-unidir - $(go-build) -TGTS_$(d) += $(d)/ma-pipe-unidir - -$(d)/json-to-junit: test/dependencies/json-to-junit - $(go-build) -TGTS_$(d) += $(d)/json-to-junit - -TGTS_GX_$(d) := hang-fds -TGTS_GX_$(d) := $(addprefix $(d)/,$(TGTS_GX_$(d))) - -$(TGTS_GX_$(d)): - go build -i $(go-flags-with-tags) -o "$@" "$(call gx-path,$(notdir $@))" - -TGTS_$(d) += $(TGTS_GX_$(d)) - -# multihash is special -$(d)/multihash: - go build -i $(go-flags-with-tags) -o "$@" "gx/ipfs/$(shell gx deps find go-multihash)/go-multihash/multihash" -TGTS_$(d) += $(d)/multihash - -# cid-fmt is also special -$(d)/cid-fmt: - go build -i $(go-flags-with-tags) -o "$@" "gx/ipfs/$(shell gx deps find go-cidutil)/go-cidutil/cid-fmt" -TGTS_$(d) += $(d)/cid-fmt - -# random is also special -$(d)/random: - go build -i $(go-flags-with-tags) -o "$@" "gx/ipfs/$(shell gx deps find go-random)/go-random/random" -TGTS_$(d) += $(d)/random - -# random-files is also special -$(d)/random-files: - go build -i $(go-flags-with-tags) -o "$@" "gx/ipfs/$(shell gx deps find go-random-files)/go-random-files/random-files" -TGTS_$(d) += $(d)/random-files - - -$(TGTS_$(d)): $$(DEPS_GO) - -CLEAN += $(TGTS_$(d)) - -PATH := $(realpath $(d)):$(PATH) - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/test/bin/checkflags b/vendor/github.com/ipfs/go-ipfs/test/bin/checkflags deleted file mode 100755 index e78e5483..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bin/checkflags +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# Author: Christian Couder -# MIT LICENSED - -if test "$#" -lt 3 -then - echo >&2 "usage $0 FILE VALUES MSG..." - exit 1 -fi - -FLAG_FILE="$1" -FLAG_VALS="$2" -shift -shift -FLAG_MSGS="$@" - -test -f $FLAG_FILE || touch $FLAG_FILE - -# Use x in front of tested values as flags could be -# interpreted by "test" to be for itself. -if test x"$FLAG_VALS" != x"$(cat "$FLAG_FILE")" -then - echo "$FLAG_MSGS" - echo "$FLAG_VALS" >"$FLAG_FILE" -fi diff --git a/vendor/github.com/ipfs/go-ipfs/test/bin/continueyn b/vendor/github.com/ipfs/go-ipfs/test/bin/continueyn deleted file mode 100755 index 82f2fe65..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bin/continueyn +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# Author: Juan Batiz-Benet -# MIT LICENSED - -# if not a terminal, exit 0 (yes!) -test -t 1 || exit 0 - -read -p "continue? [y/N] " REPLY -echo -case "$REPLY" in - [Yy]*) exit 0 ;; - *) exit 1 ;; -esac diff --git a/vendor/github.com/ipfs/go-ipfs/test/bin/verify-go-fmt.sh b/vendor/github.com/ipfs/go-ipfs/test/bin/verify-go-fmt.sh deleted file mode 100755 index fedcf511..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/bin/verify-go-fmt.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -#TODO add go lint and go vet - -verify_gofmt() { - GOFMT="gofmt -s" - cd "$(git rev-parse --show-toplevel)" - bad_files=$($GOFMT -l .) - cd - - if [[ -n $bad_files ]]; then - echo "You have to run '$GOFMT' on these files:" - echo "$bad_files" - false - else - true - fi -} - -verify_gofmt diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/Makefile b/vendor/github.com/ipfs/go-ipfs/test/dependencies/Makefile deleted file mode 100644 index 5aa1f355..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/Makefile +++ /dev/null @@ -1,16 +0,0 @@ - -all: restore - -restore: - @echo "*** $@ ***" - which godep - mkdir -p tmp_gopath - OLD_GOPATH="$$GOPATH" - export GOPATH=$$(pwd)/tmp_gopath - cd ../.. - godep restore - cd - - rm -rf tmp_gopath - export GOPATH="$$OLD_GOPATH" - -.PHONY: all restore diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/.gitignore deleted file mode 100644 index 1bc62c4f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/.gitignore +++ /dev/null @@ -1 +0,0 @@ -go-sleep diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/README.md b/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/README.md deleted file mode 100644 index 09d7cf6f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# go-sleep sleeps for some duration - -This unix tool is a thin wrapper around `time.Sleep()`. -It aims to provide a portable way to sleep for an amount of time that -need not to be a number of seconds. - -See https://godoc.org/time#ParseDuration for how the duration can be -specified. - -### Install - -```sh -go install github.com/chriscool/go-sleep -``` - -### Usage: - -``` -> go-sleep -Usage: go-sleep -Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". -See https://godoc.org/time#ParseDuration for more. -> time go-sleep 100ms - -real 0m0.104s -user 0m0.000s -sys 0m0.007s -``` - -### License - -MIT diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/go-sleep.go b/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/go-sleep.go deleted file mode 100644 index be5b6a14..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-sleep/go-sleep.go +++ /dev/null @@ -1,27 +0,0 @@ -package main - -import ( - "fmt" - "os" - "time" -) - -func main() { - if len(os.Args) != 2 { - usageError() - } - d, err := time.ParseDuration(os.Args[1]) - if err != nil { - fmt.Fprintf(os.Stderr, "Could not parse duration: %s\n", err) - usageError() - } - - time.Sleep(d) -} - -func usageError() { - fmt.Fprintf(os.Stderr, "Usage: %s \n", os.Args[0]) - fmt.Fprintln(os.Stderr, `Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".`) - fmt.Fprintln(os.Stderr, "See https://godoc.org/time#ParseDuration for more.") - os.Exit(-1) -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/.gitignore deleted file mode 100644 index 46c758b1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/.gitignore +++ /dev/null @@ -1 +0,0 @@ -go-timeout diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/main.go b/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/main.go deleted file mode 100644 index f1aaf691..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/go-timeout/main.go +++ /dev/null @@ -1,56 +0,0 @@ -package main - -import ( - "context" - "fmt" - "os" - "os/exec" - "strconv" - "syscall" - "time" -) - -func main() { - if len(os.Args) < 3 { - fmt.Fprintf(os.Stderr, - "Usage: %s \n", os.Args[0]) - os.Exit(1) - } - timeout, err := strconv.ParseUint(os.Args[1], 10, 32) - if err != nil { - fmt.Fprintf(os.Stderr, "Error: %v\n", err) - os.Exit(1) - } - ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second) - defer cancel() - - cmd := exec.CommandContext(ctx, os.Args[2], os.Args[3:]...) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err = cmd.Start() - if err != nil { - fmt.Fprintf(os.Stderr, "Error: %v\n", err) - } - err = cmd.Wait() - - if err != nil { - if ctx.Err() != nil { - os.Exit(124) - } else { - exitErr, ok := err.(*exec.ExitError) - if !ok { - fmt.Fprintf(os.Stderr, "Error: %v\n", err) - os.Exit(255) - } - waits, ok := exitErr.Sys().(syscall.WaitStatus) - if !ok { - fmt.Fprintf(os.Stderr, "Error: %v\n", err) - os.Exit(255) - } - os.Exit(waits.ExitStatus()) - } - } else { - os.Exit(0) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/iptb/iptb.go b/vendor/github.com/ipfs/go-ipfs/test/dependencies/iptb/iptb.go deleted file mode 100644 index b053ae27..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/iptb/iptb.go +++ /dev/null @@ -1,34 +0,0 @@ -package main - -import ( - "fmt" - "os" - - cli "gx/ipfs/QmckeQ2zrYLAXoSHYTGn5BDdb22BqbUoHEHm8KZ9YWRxd1/iptb/cli" - testbed "gx/ipfs/QmckeQ2zrYLAXoSHYTGn5BDdb22BqbUoHEHm8KZ9YWRxd1/iptb/testbed" - - plugin "gx/ipfs/QmY3LuhVAkJRqevj3FSh1fSRpGhiDYHjKmgotnQY35zTir/iptb-plugins/local" -) - -func init() { - _, err := testbed.RegisterPlugin(testbed.IptbPlugin{ - From: "", - NewNode: plugin.NewNode, - GetAttrList: plugin.GetAttrList, - GetAttrDesc: plugin.GetAttrDesc, - PluginName: plugin.PluginName, - BuiltIn: true, - }, false) - - if err != nil { - panic(err) - } -} - -func main() { - cli := cli.NewCli() - if err := cli.Run(os.Args); err != nil { - fmt.Fprintf(cli.ErrWriter, "%s\n", err) - os.Exit(1) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/json-to-junit/main.go b/vendor/github.com/ipfs/go-ipfs/test/dependencies/json-to-junit/main.go deleted file mode 100644 index 40f80737..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/json-to-junit/main.go +++ /dev/null @@ -1,135 +0,0 @@ -package main - -import ( - "bufio" - "encoding/json" - "encoding/xml" - "log" - "os" -) - -type testMsg struct { - Time string - Action string - Package string - Test string - Output string - Elapsed float64 -} - -type testsuites struct { - XMLName xml.Name `xml:"testsuites"` - Name string `xml:"name,attr"` - Testsuites []testsuite -} - -type testsuite struct { - XMLName xml.Name `xml:"testsuite"` - Package string `xml:"package,attr"` - Errors int `xml:"errors,attr"` - Failures int `xml:"failures,attr"` - Tests int `xml:"tests,attr"` - Time float64 `xml:"time,attr"` - Testcases []testcase -} - -type testcase struct { - XMLName xml.Name `xml:"testcase"` - Name string `xml:"name,attr"` - Classname string `xml:"classname,attr"` - Time float64 `xml:"time,attr"` - Sout string `xml:"system-out"` - Serr string `xml:"system-err"` - Skipped string `xml:"skipped,omitempty"` - Failure string `xml:"failure,omitempty"` -} - -func main() { - scanner := bufio.NewScanner(os.Stdin) - tests := make(map[string]map[string]testcase) - var fails int - var packages []testsuite - for scanner.Scan() { - msg := testMsg{} - if err := json.Unmarshal(scanner.Bytes(), &msg); err != nil { - log.Fatal(err) - } - - switch { - case msg.Action == "run": - if tests[msg.Package] == nil { - tests[msg.Package] = make(map[string]testcase) - } - - tests[msg.Package][msg.Test] = testcase{ - Name: msg.Test, - Classname: msg.Package, - } - case msg.Action == "output": - if msg.Test == "" { - continue - } - - test := tests[msg.Package][msg.Test] - test.Sout = test.Sout + msg.Output + "\n" - tests[msg.Package][msg.Test] = test - case msg.Action == "skip": - fallthrough - case msg.Action == "fail": - fallthrough - case msg.Action == "pass": - if msg.Test != "" { - test := tests[msg.Package][msg.Test] - test.Time = msg.Elapsed - - if msg.Action == "skip" { - test.Skipped = "skipped" - } - - if msg.Action == "fail" { - fails++ - test.Failure = "failed" - } - - tests[msg.Package][msg.Test] = test - continue - } - - ts := testsuite{ - Package: msg.Package, - Time: msg.Elapsed, - } - - for _, test := range tests[msg.Package] { - ts.Testcases = append(ts.Testcases, test) - ts.Tests++ - if test.Failure != "" { - ts.Failures++ - } - } - packages = append(packages, ts) - case msg.Action == "cont": - case msg.Action == "pause": - // ?? - default: - log.Fatalf("unknown action %s", msg.Action) - } - } - - if err := scanner.Err(); err != nil { - log.Fatal(err) - } - - out := testsuites{ - Name: "go test", - Testsuites: packages, - } - - output, err := xml.MarshalIndent(&out, " ", " ") - if err != nil { - log.Fatalf("error: %v\n", err) - } - - os.Stdout.Write(output) - os.Exit(fails) -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/dependencies/ma-pipe-unidir/main.go b/vendor/github.com/ipfs/go-ipfs/test/dependencies/ma-pipe-unidir/main.go deleted file mode 100644 index d4d3ccad..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/dependencies/ma-pipe-unidir/main.go +++ /dev/null @@ -1,95 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io" - "io/ioutil" - "os" - "strconv" - - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" -) - -const USAGE = "ma-pipe-unidir [-l|--listen] [--pidFile=path] [-h|--help] \n" - -type Opts struct { - Listen bool - PidFile string -} - -func app() int { - opts := Opts{} - flag.BoolVar(&opts.Listen, "l", false, "") - flag.BoolVar(&opts.Listen, "listen", false, "") - flag.StringVar(&opts.PidFile, "pidFile", "", "") - flag.Usage = func() { - fmt.Print(USAGE) - } - flag.Parse() - args := flag.Args() - - if len(args) < 2 { // - fmt.Print(USAGE) - return 1 - } - - mode := args[0] - addr := args[1] - - if mode != "send" && mode != "recv" { - fmt.Print(USAGE) - return 1 - } - - if len(opts.PidFile) > 0 { - data := []byte(strconv.Itoa(os.Getpid())) - err := ioutil.WriteFile(opts.PidFile, data, 0644) - if err != nil { - return 1 - } - - defer os.Remove(opts.PidFile) - } - - maddr, err := ma.NewMultiaddr(addr) - if err != nil { - return 1 - } - - var conn manet.Conn - - if opts.Listen { - listener, err := manet.Listen(maddr) - if err != nil { - return 1 - } - - conn, err = listener.Accept() - if err != nil { - return 1 - } - } else { - var err error - conn, err = manet.Dial(maddr) - if err != nil { - return 1 - } - } - - defer conn.Close() - switch mode { - case "recv": - io.Copy(os.Stdout, conn) - case "send": - io.Copy(conn, os.Stdin) - default: - return 1 - } - return 0 -} - -func main() { - os.Exit(app()) -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/integration/Makefile b/vendor/github.com/ipfs/go-ipfs/test/integration/Makefile deleted file mode 100644 index 05c2bb1d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/integration/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# This Makefile provides a way to really simple way to run benchmarks in a -# docker environment. - -IPFS_ROOT = ../.. -CONTAINER = go-ipfs-bench -PACKAGE = integrationtest -PACKAGE_DIR = test/integration -BUILD_DIR = ./build/bench -CONTAINER_WORKING_DIR = /go -CPU_PROF_NAME = cpu.out -EXTRA_TEST_ARGS = - -all: collect - -collect: clean build_image run_profiler cp_pprof_from_container - -cp_pprof_from_container: - docker cp $(CONTAINER):$(CONTAINER_WORKING_DIR)/$(CPU_PROF_NAME) $(BUILD_DIR) - docker cp $(CONTAINER):$(CONTAINER_WORKING_DIR)/$(PACKAGE).test $(BUILD_DIR) - -build_image: - cd $(IPFS_ROOT) && docker build -t $(IMAGE) . - -run_profiler: - docker run --name $(CONTAINER) -it --entrypoint go $(IMAGE) test ./src/github.com/ipfs/go-ipfs/$(PACKAGE_DIR) --cpuprofile=$(CPU_PROF_NAME) $(EXTRA_TEST_ARGS) - - -clean: - docker rm $(CONTAINER) || true - rm -rf $(BUILD_DIR) - -analyze: - go tool pprof $(BUILD_DIR)/$(PACKAGE).test $(BUILD_DIR)/$(CPU_PROF_NAME) diff --git a/vendor/github.com/ipfs/go-ipfs/test/integration/addcat_test.go b/vendor/github.com/ipfs/go-ipfs/test/integration/addcat_test.go deleted file mode 100644 index b3311918..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/integration/addcat_test.go +++ /dev/null @@ -1,172 +0,0 @@ -package integrationtest - -import ( - "bytes" - "context" - "errors" - "fmt" - "io" - "math" - "os" - "testing" - "time" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/coreapi" - mock "github.com/ipfs/go-ipfs/core/mock" - "github.com/ipfs/go-ipfs/thirdparty/unit" - - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - mocknet "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - random "gx/ipfs/QmXMnwKWAFBk8kgH8gjoG5P9Pj5aASPvQA2kHdu6gRwyj5/go-random" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" -) - -var log = logging.Logger("epictest") - -const kSeed = 1 - -func Test1KBInstantaneous(t *testing.T) { - conf := testutil.LatencyConfig{ - NetworkLatency: 0, - RoutingLatency: 0, - BlockstoreLatency: 0, - } - - if err := DirectAddCat(RandomBytes(1*unit.KB), conf); err != nil { - t.Fatal(err) - } -} - -func TestDegenerateSlowBlockstore(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{BlockstoreLatency: 50 * time.Millisecond} - if err := AddCatPowers(conf, 128); err != nil { - t.Fatal(err) - } -} - -func TestDegenerateSlowNetwork(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{NetworkLatency: 400 * time.Millisecond} - if err := AddCatPowers(conf, 128); err != nil { - t.Fatal(err) - } -} - -func TestDegenerateSlowRouting(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{RoutingLatency: 400 * time.Millisecond} - if err := AddCatPowers(conf, 128); err != nil { - t.Fatal(err) - } -} - -func Test100MBMacbookCoastToCoast(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{}.NetworkNYtoSF().BlockstoreSlowSSD2014().RoutingSlow() - if err := DirectAddCat(RandomBytes(100*1024*1024), conf); err != nil { - t.Fatal(err) - } -} - -func AddCatPowers(conf testutil.LatencyConfig, megabytesMax int64) error { - var i int64 - for i = 1; i < megabytesMax; i = i * 2 { - fmt.Printf("%d MB\n", i) - if err := DirectAddCat(RandomBytes(i*1024*1024), conf); err != nil { - return err - } - } - return nil -} - -func RandomBytes(n int64) []byte { - data := new(bytes.Buffer) - random.WritePseudoRandomBytes(n, data, kSeed) - return data.Bytes() -} - -func DirectAddCat(data []byte, conf testutil.LatencyConfig) error { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // create network - mn := mocknet.New(ctx) - mn.SetLinkDefaults(mocknet.LinkOptions{ - Latency: conf.NetworkLatency, - // TODO add to conf. This is tricky because we want 0 values to be functional. - Bandwidth: math.MaxInt32, - }) - - adder, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer adder.Close() - - catter, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer catter.Close() - - adderApi, err := coreapi.NewCoreAPI(adder) - if err != nil { - return err - } - - catterApi, err := coreapi.NewCoreAPI(catter) - if err != nil { - return err - } - - err = mn.LinkAll() - if err != nil { - return err - } - - bs1 := []pstore.PeerInfo{adder.Peerstore.PeerInfo(adder.Identity)} - bs2 := []pstore.PeerInfo{catter.Peerstore.PeerInfo(catter.Identity)} - - if err := catter.Bootstrap(core.BootstrapConfigWithPeers(bs1)); err != nil { - return err - } - if err := adder.Bootstrap(core.BootstrapConfigWithPeers(bs2)); err != nil { - return err - } - - added, err := adderApi.Unixfs().Add(ctx, files.NewBytesFile(data)) - if err != nil { - return err - } - - readerCatted, err := catterApi.Unixfs().Get(ctx, added) - if err != nil { - return err - } - - // verify - bufout := new(bytes.Buffer) - io.Copy(bufout, readerCatted.(io.Reader)) - if 0 != bytes.Compare(bufout.Bytes(), data) { - return errors.New("catted data does not match added data") - } - - cancel() - return nil -} - -func SkipUnlessEpic(t *testing.T) { - if os.Getenv("IPFS_EPIC_TEST") == "" { - t.SkipNow() - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/integration/bench_cat_test.go b/vendor/github.com/ipfs/go-ipfs/test/integration/bench_cat_test.go deleted file mode 100644 index 119b20fc..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/integration/bench_cat_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package integrationtest - -import ( - "bytes" - "context" - "errors" - "io" - "math" - "testing" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/coreapi" - mock "github.com/ipfs/go-ipfs/core/mock" - "github.com/ipfs/go-ipfs/thirdparty/unit" - - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - mocknet "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -func BenchmarkCat1MB(b *testing.B) { benchmarkVarCat(b, unit.MB*1) } -func BenchmarkCat2MB(b *testing.B) { benchmarkVarCat(b, unit.MB*2) } -func BenchmarkCat4MB(b *testing.B) { benchmarkVarCat(b, unit.MB*4) } - -func benchmarkVarCat(b *testing.B, size int64) { - data := RandomBytes(size) - b.SetBytes(size) - for n := 0; n < b.N; n++ { - err := benchCat(b, data, instant) - if err != nil { - b.Fatal(err) - } - } -} - -func benchCat(b *testing.B, data []byte, conf testutil.LatencyConfig) error { - b.StopTimer() - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // create network - mn := mocknet.New(ctx) - mn.SetLinkDefaults(mocknet.LinkOptions{ - Latency: conf.NetworkLatency, - // TODO add to conf. This is tricky because we want 0 values to be functional. - Bandwidth: math.MaxInt32, - }) - - adder, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer adder.Close() - - catter, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer catter.Close() - - adderApi, err := coreapi.NewCoreAPI(adder) - if err != nil { - return err - } - - catterApi, err := coreapi.NewCoreAPI(catter) - if err != nil { - return err - } - - err = mn.LinkAll() - if err != nil { - return err - } - - bs1 := []pstore.PeerInfo{adder.Peerstore.PeerInfo(adder.Identity)} - bs2 := []pstore.PeerInfo{catter.Peerstore.PeerInfo(catter.Identity)} - - if err := catter.Bootstrap(core.BootstrapConfigWithPeers(bs1)); err != nil { - return err - } - if err := adder.Bootstrap(core.BootstrapConfigWithPeers(bs2)); err != nil { - return err - } - - added, err := adderApi.Unixfs().Add(ctx, files.NewBytesFile(data)) - if err != nil { - return err - } - - b.StartTimer() - readerCatted, err := catterApi.Unixfs().Get(ctx, added) - if err != nil { - return err - } - - // verify - bufout := new(bytes.Buffer) - io.Copy(bufout, readerCatted.(io.Reader)) - if 0 != bytes.Compare(bufout.Bytes(), data) { - return errors.New("catted data does not match added data") - } - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/integration/bench_test.go b/vendor/github.com/ipfs/go-ipfs/test/integration/bench_test.go deleted file mode 100644 index 37418915..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/integration/bench_test.go +++ /dev/null @@ -1,84 +0,0 @@ -package integrationtest - -import ( - "testing" - - "github.com/ipfs/go-ipfs/thirdparty/unit" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" -) - -func benchmarkAddCat(numBytes int64, conf testutil.LatencyConfig, b *testing.B) { - - b.StopTimer() - b.SetBytes(numBytes) - data := RandomBytes(numBytes) // we don't want to measure the time it takes to generate this data - b.StartTimer() - - for n := 0; n < b.N; n++ { - if err := DirectAddCat(data, conf); err != nil { - b.Fatal(err) - } - } -} - -var instant = testutil.LatencyConfig{}.AllInstantaneous() - -func BenchmarkInstantaneousAddCat1KB(b *testing.B) { benchmarkAddCat(1*unit.KB, instant, b) } -func BenchmarkInstantaneousAddCat1MB(b *testing.B) { benchmarkAddCat(1*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat2MB(b *testing.B) { benchmarkAddCat(2*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat4MB(b *testing.B) { benchmarkAddCat(4*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat8MB(b *testing.B) { benchmarkAddCat(8*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat16MB(b *testing.B) { benchmarkAddCat(16*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat32MB(b *testing.B) { benchmarkAddCat(32*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat64MB(b *testing.B) { benchmarkAddCat(64*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat128MB(b *testing.B) { benchmarkAddCat(128*unit.MB, instant, b) } -func BenchmarkInstantaneousAddCat256MB(b *testing.B) { benchmarkAddCat(256*unit.MB, instant, b) } - -var routing = testutil.LatencyConfig{}.RoutingSlow() - -func BenchmarkRoutingSlowAddCat1MB(b *testing.B) { benchmarkAddCat(1*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat2MB(b *testing.B) { benchmarkAddCat(2*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat4MB(b *testing.B) { benchmarkAddCat(4*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat8MB(b *testing.B) { benchmarkAddCat(8*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat16MB(b *testing.B) { benchmarkAddCat(16*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat32MB(b *testing.B) { benchmarkAddCat(32*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat64MB(b *testing.B) { benchmarkAddCat(64*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat128MB(b *testing.B) { benchmarkAddCat(128*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat256MB(b *testing.B) { benchmarkAddCat(256*unit.MB, routing, b) } -func BenchmarkRoutingSlowAddCat512MB(b *testing.B) { benchmarkAddCat(512*unit.MB, routing, b) } - -var network = testutil.LatencyConfig{}.NetworkNYtoSF() - -func BenchmarkNetworkSlowAddCat1MB(b *testing.B) { benchmarkAddCat(1*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat2MB(b *testing.B) { benchmarkAddCat(2*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat4MB(b *testing.B) { benchmarkAddCat(4*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat8MB(b *testing.B) { benchmarkAddCat(8*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat16MB(b *testing.B) { benchmarkAddCat(16*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat32MB(b *testing.B) { benchmarkAddCat(32*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat64MB(b *testing.B) { benchmarkAddCat(64*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat128MB(b *testing.B) { benchmarkAddCat(128*unit.MB, network, b) } -func BenchmarkNetworkSlowAddCat256MB(b *testing.B) { benchmarkAddCat(256*unit.MB, network, b) } - -var hdd = testutil.LatencyConfig{}.Blockstore7200RPM() - -func BenchmarkBlockstoreSlowAddCat1MB(b *testing.B) { benchmarkAddCat(1*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat2MB(b *testing.B) { benchmarkAddCat(2*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat4MB(b *testing.B) { benchmarkAddCat(4*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat8MB(b *testing.B) { benchmarkAddCat(8*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat16MB(b *testing.B) { benchmarkAddCat(16*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat32MB(b *testing.B) { benchmarkAddCat(32*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat64MB(b *testing.B) { benchmarkAddCat(64*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat128MB(b *testing.B) { benchmarkAddCat(128*unit.MB, hdd, b) } -func BenchmarkBlockstoreSlowAddCat256MB(b *testing.B) { benchmarkAddCat(256*unit.MB, hdd, b) } - -var mixed = testutil.LatencyConfig{}.NetworkNYtoSF().BlockstoreSlowSSD2014().RoutingSlow() - -func BenchmarkMixedAddCat1MBXX(b *testing.B) { benchmarkAddCat(1*unit.MB, mixed, b) } -func BenchmarkMixedAddCat2MBXX(b *testing.B) { benchmarkAddCat(2*unit.MB, mixed, b) } -func BenchmarkMixedAddCat4MBXX(b *testing.B) { benchmarkAddCat(4*unit.MB, mixed, b) } -func BenchmarkMixedAddCat8MBXX(b *testing.B) { benchmarkAddCat(8*unit.MB, mixed, b) } -func BenchmarkMixedAddCat16MBX(b *testing.B) { benchmarkAddCat(16*unit.MB, mixed, b) } -func BenchmarkMixedAddCat32MBX(b *testing.B) { benchmarkAddCat(32*unit.MB, mixed, b) } -func BenchmarkMixedAddCat64MBX(b *testing.B) { benchmarkAddCat(64*unit.MB, mixed, b) } -func BenchmarkMixedAddCat128MB(b *testing.B) { benchmarkAddCat(128*unit.MB, mixed, b) } -func BenchmarkMixedAddCat256MB(b *testing.B) { benchmarkAddCat(256*unit.MB, mixed, b) } diff --git a/vendor/github.com/ipfs/go-ipfs/test/integration/bitswap_wo_routing_test.go b/vendor/github.com/ipfs/go-ipfs/test/integration/bitswap_wo_routing_test.go deleted file mode 100644 index 4736a720..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/integration/bitswap_wo_routing_test.go +++ /dev/null @@ -1,99 +0,0 @@ -package integrationtest - -import ( - "bytes" - "context" - "testing" - - "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/mock" - "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - - mocknet "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" -) - -func TestBitswapWithoutRouting(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - const numPeers = 4 - - // create network - mn := mocknet.New(ctx) - - var nodes []*core.IpfsNode - for i := 0; i < numPeers; i++ { - n, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: coremock.MockHostOption(mn), - Routing: core.NilRouterOption, // no routing - }) - if err != nil { - t.Fatal(err) - } - defer n.Close() - nodes = append(nodes, n) - } - - mn.LinkAll() - - // connect them - for _, n1 := range nodes { - for _, n2 := range nodes { - if n1 == n2 { - continue - } - - log.Debug("connecting to other hosts") - p2 := n2.PeerHost.Peerstore().PeerInfo(n2.PeerHost.ID()) - if err := n1.PeerHost.Connect(ctx, p2); err != nil { - t.Fatal(err) - } - } - } - - // add blocks to each before - log.Debug("adding block.") - block0 := blocks.NewBlock([]byte("block0")) - block1 := blocks.NewBlock([]byte("block1")) - - // put 1 before - if err := nodes[0].Blockstore.Put(block0); err != nil { - t.Fatal(err) - } - - // get it out. - for i, n := range nodes { - // skip first because block not in its exchange. will hang. - if i == 0 { - continue - } - - log.Debugf("%d %s get block.", i, n.Identity) - b, err := n.Blocks.GetBlock(ctx, cid.NewCidV0(block0.Multihash())) - if err != nil { - t.Error(err) - } else if !bytes.Equal(b.RawData(), block0.RawData()) { - t.Error("byte comparison fail") - } else { - log.Debug("got block: %s", b.Cid()) - } - } - - // put 1 after - if err := nodes[1].Blockstore.Put(block1); err != nil { - t.Fatal(err) - } - - // get it out. - for _, n := range nodes { - b, err := n.Blocks.GetBlock(ctx, cid.NewCidV0(block1.Multihash())) - if err != nil { - t.Error(err) - } else if !bytes.Equal(b.RawData(), block1.RawData()) { - t.Error("byte comparison fail") - } else { - log.Debug("got block: %s", b.Cid()) - } - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/integration/three_legged_cat_test.go b/vendor/github.com/ipfs/go-ipfs/test/integration/three_legged_cat_test.go deleted file mode 100644 index cc3b2b81..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/integration/three_legged_cat_test.go +++ /dev/null @@ -1,144 +0,0 @@ -package integrationtest - -import ( - "bytes" - "context" - "errors" - "io" - "math" - "testing" - "time" - - core "github.com/ipfs/go-ipfs/core" - "github.com/ipfs/go-ipfs/core/coreapi" - mock "github.com/ipfs/go-ipfs/core/mock" - "github.com/ipfs/go-ipfs/thirdparty/unit" - - files "gx/ipfs/QmQmhotPUzVrMEWNK3x1R5jQ5ZHWyL7tVUrmRPjrBrvyCb/go-ipfs-files" - mocknet "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/net/mock" - testutil "gx/ipfs/QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W/go-testutil" - pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore" -) - -func TestThreeLeggedCatTransfer(t *testing.T) { - conf := testutil.LatencyConfig{ - NetworkLatency: 0, - RoutingLatency: 0, - BlockstoreLatency: 0, - } - if err := RunThreeLeggedCat(RandomBytes(100*unit.MB), conf); err != nil { - t.Fatal(err) - } -} - -func TestThreeLeggedCatDegenerateSlowBlockstore(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{BlockstoreLatency: 50 * time.Millisecond} - if err := RunThreeLeggedCat(RandomBytes(1*unit.KB), conf); err != nil { - t.Fatal(err) - } -} - -func TestThreeLeggedCatDegenerateSlowNetwork(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{NetworkLatency: 400 * time.Millisecond} - if err := RunThreeLeggedCat(RandomBytes(1*unit.KB), conf); err != nil { - t.Fatal(err) - } -} - -func TestThreeLeggedCatDegenerateSlowRouting(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{RoutingLatency: 400 * time.Millisecond} - if err := RunThreeLeggedCat(RandomBytes(1*unit.KB), conf); err != nil { - t.Fatal(err) - } -} - -func TestThreeLeggedCat100MBMacbookCoastToCoast(t *testing.T) { - SkipUnlessEpic(t) - conf := testutil.LatencyConfig{}.NetworkNYtoSF().BlockstoreSlowSSD2014().RoutingSlow() - if err := RunThreeLeggedCat(RandomBytes(100*unit.MB), conf); err != nil { - t.Fatal(err) - } -} - -func RunThreeLeggedCat(data []byte, conf testutil.LatencyConfig) error { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // create network - mn := mocknet.New(ctx) - mn.SetLinkDefaults(mocknet.LinkOptions{ - Latency: conf.NetworkLatency, - // TODO add to conf. This is tricky because we want 0 values to be functional. - Bandwidth: math.MaxInt32, - }) - - bootstrap, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer bootstrap.Close() - - adder, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer adder.Close() - - catter, err := core.NewNode(ctx, &core.BuildCfg{ - Online: true, - Host: mock.MockHostOption(mn), - }) - if err != nil { - return err - } - defer catter.Close() - - adderApi, err := coreapi.NewCoreAPI(adder) - if err != nil { - return err - } - - catterApi, err := coreapi.NewCoreAPI(catter) - if err != nil { - return err - } - - mn.LinkAll() - - bis := bootstrap.Peerstore.PeerInfo(bootstrap.PeerHost.ID()) - bcfg := core.BootstrapConfigWithPeers([]pstore.PeerInfo{bis}) - if err := adder.Bootstrap(bcfg); err != nil { - return err - } - if err := catter.Bootstrap(bcfg); err != nil { - return err - } - - added, err := adderApi.Unixfs().Add(ctx, files.NewBytesFile(data)) - if err != nil { - return err - } - - readerCatted, err := catterApi.Unixfs().Get(ctx, added) - if err != nil { - return err - } - - // verify - bufout := new(bytes.Buffer) - io.Copy(bufout, readerCatted.(io.Reader)) - if 0 != bytes.Compare(bufout.Bytes(), data) { - return errors.New("catted data does not match added data") - } - cancel() - return nil -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/ipfs-test-lib.sh b/vendor/github.com/ipfs/go-ipfs/test/ipfs-test-lib.sh deleted file mode 100644 index 9cd99c2e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/ipfs-test-lib.sh +++ /dev/null @@ -1,121 +0,0 @@ -# Generic test functions for go-ipfs - -ansi_strip() { - sed 's/\x1b\[[0-9;]*m//g' -} - -# Quote arguments for sh eval -shellquote() { - _space='' - for _arg - do - # On Mac OS, sed adds a newline character. - # With a printf wrapper the extra newline is removed. - printf "$_space'%s'" "$(printf "%s" "$_arg" | sed -e "s/'/'\\\\''/g;")" - _space=' ' - done - printf '\n' -} - -# Echo the args, run the cmd, and then also fail, -# making sure a test case fails. -test_fsh() { - echo "> $@" - eval $(shellquote "$@") - echo "" - false -} - -# Same as sharness' test_cmp but using test_fsh (to see the output). -# We have to do it twice, so the first diff output doesn't show unless it's -# broken. -test_cmp() { - diff -q "$@" >/dev/null || test_fsh diff -u "$@" -} - -# Same as test_cmp above, but we sort files before comparing them. -test_sort_cmp() { - sort "$1" >"$1_sorted" && - sort "$2" >"$2_sorted" && - test_cmp "$1_sorted" "$2_sorted" -} - -# Same as test_cmp above, but we standardize directory -# separators before comparing the files. -test_path_cmp() { - sed -e "s/\\\\/\//g" "$1" >"$1_std" && - sed -e "s/\\\\/\//g" "$2" >"$2_std" && - test_cmp "$1_std" "$2_std" -} - -# Docker - -# This takes a Dockerfile, and a build context directory -docker_build() { - docker build --rm -f "$1" "$2" | ansi_strip -} - -# This takes an image as argument and writes a docker ID on stdout -docker_run() { - docker run -d "$1" -} - -# This takes a docker ID and a command as arguments -docker_exec() { - if test "$CIRCLE" = 1 - then - sudo lxc-attach -n "$(docker inspect --format '{{.Id}}' $1)" -- /bin/bash -c "$2" - else - docker exec -t "$1" /bin/bash -c "$2" - fi -} - -# This takes a docker ID as argument -docker_stop() { - docker stop "$1" -} - -# Test whether all the expected lines are included in a file. The file -# can have extra lines. -# -# $1 - Path to file with expected lines. -# $2 - Path to file with actual output. -# -# Examples -# -# test_expect_success 'foo says hello' ' -# echo hello >expected && -# foo >actual && -# test_cmp expected actual -# ' -# -# Returns the exit code of the command set by TEST_CMP. -test_includes_lines() { - sort "$1" >"$1_sorted" && - sort "$2" >"$2_sorted" && - comm -2 -3 "$1_sorted" "$2_sorted" >"$2_missing" && - [ ! -s "$2_missing" ] || test_fsh comm -2 -3 "$1_sorted" "$2_sorted" -} - -# Depending on GNU seq availability is not nice. -# Git also has test_seq but it uses Perl. -test_seq() { - test "$1" -le "$2" || return - i="$1" - j="$2" - while test "$i" -le "$j" - do - echo "$i" - i=$(expr "$i" + 1) - done -} - -b64decode() { - case `uname` in - Linux|FreeBSD) base64 -d ;; - Darwin) base64 -D ;; - *) - echo "no compatible base64 command found" >&2 - return 1 - esac -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/sharness/.gitignore deleted file mode 100644 index 06ceccc7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/sharness/ -test-results/ -trash directory.*.sh/ -plugins diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/Makefile b/vendor/github.com/ipfs/go-ipfs/test/sharness/Makefile deleted file mode 100644 index a96c5ea3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# default target is to run all tests -all: aggregate - -SH := $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) - -.DEFAULT $(SH): ALWAYS - $(MAKE) -C ../.. test/sharness/$@ - -ALWAYS: -.PHONY: ALWAYS diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/README.md b/vendor/github.com/ipfs/go-ipfs/test/sharness/README.md deleted file mode 100644 index 2df09b52..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# ipfs whole tests using the [sharness framework](https://github.com/mlafeldt/sharness/) - -## Running all the tests - -Just use `make` in this directory to run all the tests. -Run with `TEST_VERBOSE=1` to get helpful verbose output. - -``` -TEST_VERBOSE=1 make -``` - -The usual ipfs env flags also apply: - -```sh -# the output will make your eyes bleed -IPFS_LOGGING=debug TEST_VERBOSE=1 make -``` - -To make the tests abort as soon as an error occurs, use the TEST_IMMEDIATE env variable: - -```sh -# this will abort as soon the first error occurs -TEST_IMMEDIATE=1 make -``` - -## Running just one test - -You can run only one test script by launching it like a regular shell -script: - -``` -$ ./t0010-basic-commands.sh -``` - -## Debugging one test - -You can use the `-v` option to make it verbose and the `-i` option to -make it stop as soon as one test fails. -For example: - -``` -$ ./t0010-basic-commands.sh -v -i -``` - -## Sharness - -When running sharness tests from main Makefile or when `test_sharness_deps` -target is run dependencies for sharness -will be downloaded from its github repo and installed in a "lib/sharness" -directory. - -Please do not change anything in the "lib/sharness" directory. - -If you really need some changes in sharness, please fork it from -[its cannonical repo](https://github.com/mlafeldt/sharness/) and -send pull requests there. - -## Writing Tests - -Please have a look at existing tests and try to follow their example. - -When possible and not too inefficient, that means most of the time, -an ipfs command should not be on the left side of a pipe, because if -the ipfs command fails (exit non zero), the pipe will mask this failure. -For example after `false | true`, `echo $?` prints 0 (despite `false` -failing). - -It should be possible to put most of the code inside `test_expect_success`, -or sometimes `test_expect_failure`, blocks, and to chain all the commands -inside those blocks with `&&`, or `||` for diagnostic commands. - -### Diagnostics - -Make your test case output helpful for when running sharness verbosely. -This means cating certain files, or running diagnostic commands. -For example: - -``` -test_expect_success ".ipfs/ has been created" ' - test -d ".ipfs" && - test -f ".ipfs/config" && - test -d ".ipfs/datastore" && - test -d ".ipfs/blocks" || - test_fsh ls -al .ipfs -' -``` - -The `|| ...` is a diagnostic run when the preceding command fails. -test_fsh is a shell function that echoes the args, runs the cmd, -and then also fails, making sure the test case fails. (wouldn't want -the diagnostic accidentally returning true and making it _seem_ like -the test case succeeded!). - - -### Testing commands on daemon or mounted - -Use the provided functions in `lib/test-lib.sh` to run the daemon or mount: - -To init, run daemon, and mount in one go: - -```sh -test_launch_ipfs_daemon_and_mount - -test_expect_success "'ipfs add --help' succeeds" ' - ipfs add --help >actual -' - -# other tests here... - -# dont forget to kill the daemon!! -test_kill_ipfs_daemon -``` - -To init, run daemon, and then mount separately: - -```sh -test_init_ipfs - -# tests inited but not running here - -test_launch_ipfs_daemon - -# tests running but not mounted here - -test_mount_ipfs - -# tests mounted here - -# dont forget to kill the daemon!! -test_kill_ipfs_daemon -``` diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/Rules.mk b/vendor/github.com/ipfs/go-ipfs/test/sharness/Rules.mk deleted file mode 100644 index c6d6dd83..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/Rules.mk +++ /dev/null @@ -1,77 +0,0 @@ -include mk/header.mk - -SHARNESS_$(d) = $(d)/lib/sharness/sharness.sh - -T_$(d) = $(sort $(wildcard $(d)/t[0-9][0-9][0-9][0-9]-*.sh)) - -DEPS_$(d) := test/bin/random test/bin/multihash test/bin/pollEndpoint \ - test/bin/iptb test/bin/go-sleep test/bin/random-files \ - test/bin/go-timeout test/bin/hang-fds test/bin/ma-pipe-unidir \ - test/bin/cid-fmt -DEPS_$(d) += cmd/ipfs/ipfs -DEPS_$(d) += $(d)/clean-test-results -DEPS_$(d) += $(SHARNESS_$(d)) - -ifeq ($(OS),Linux) -PLUGINS_DIR_$(d) := $(d)/plugins/ -ORGIN_PLUGINS_$(d) := $(plugin/plugins_plugins_so) -PLUGINS_$(d) := $(addprefix $(PLUGINS_DIR_$(d)),$(notdir $(ORGIN_PLUGINS_$(d)))) - -$(PLUGINS_$(d)): $(ORGIN_PLUGINS_$(d)) - @mkdir -p $(@D) - cp -f plugin/plugins/$(@F) $@ - -ifneq ($(TEST_NO_PLUGIN),1) -DEPS_$(d) += $(PLUGINS_$(d)) -endif -endif - -export MAKE_SKIP_PATH=1 - -$(T_$(d)): $$(DEPS_$(d)) # use second expansion so coverage can inject dependency - @echo "*** $@ ***" -ifeq ($(CONTINUE_ON_S_FAILURE),1) - -@(cd $(@D) && ./$(@F)) 2>&1 -else - @(cd $(@D) && ./$(@F)) 2>&1 -endif -.PHONY: $(T_$(d)) - -$(d)/aggregate: $(T_$(d)) - @echo "*** $@ ***" - @(cd $(@D) && ./lib/test-aggregate-results.sh) -.PHONY: $(d)/aggregate - -$(d)/test-results/sharness.xml: export TEST_GENERATE_JUNIT=1 -$(d)/test-results/sharness.xml: test_sharness_expensive - @echo "*** $@ ***" - @(cd $(@D)/.. && ./lib/gen-junit-report.sh) - -$(d)/clean-test-results: - rm -rf $(@D)/test-results -.PHONY: $(d)/clean-test-results - -CLEAN += $(wildcard $(d)/test-results/*) - -$(SHARNESS_$(d)): $(d) ALWAYS - @clonedir=$(dir $(@D)) $ -Date: Sat, 21 Apr 2018 22:01:45 +0200 -Subject: [PATCH] Generate partial JUnit reports - ---- - sharness.sh | 114 +++++++++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 108 insertions(+), 6 deletions(-) - -diff --git a/sharness.sh b/sharness.sh -index 6750ff7..336e426 100644 ---- a/sharness.sh -+++ b/sharness.sh -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/usr/bin/env bash - # - # Copyright (c) 2011-2012 Mathias Lafeldt - # Copyright (c) 2005-2012 Git project -@@ -106,6 +106,10 @@ if test -n "$color"; then - test -n "$quiet" && return;; - esac - shift -+ -+ if test -n "$TEST_GENERATE_JUNIT"; then -+ echo "$*" >> .junit/tout -+ fi - printf "%s" "$*" - tput sgr0 - echo -@@ -115,6 +119,10 @@ else - say_color() { - test -z "$1" && test -n "$quiet" && return - shift -+ -+ if test -n "$TEST_GENERATE_JUNIT"; then -+ echo "$*" >> .junit/tout -+ fi - printf "%s\n" "$*" - } - fi -@@ -129,6 +137,12 @@ say() { - say_color info "$*" - } - -+esc=$(printf '\033') -+ -+esc_xml() { -+ sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'"$esc"'//g; s///g;' -+} -+ - test -n "$test_description" || error "Test script did not set test_description." - - if test "$help" = "t"; then -@@ -251,30 +265,78 @@ test_have_prereq() { - test $total_prereq = $ok_prereq - } - -+# junit_testcase generates a testcase xml file after each test -+ -+junit_testcase() { -+ if test -z "$TEST_GENERATE_JUNIT"; then -+ return -+ fi -+ -+ test_name=$1 -+ tc_file=".junit/case-$(printf "%04d" $test_count)" -+ time_sec="$(cat .junit/time | xargs printf '%04d' | sed -e 's/\(...\)$/.\1/g')" -+ -+ echo "$(expr $(cat .junit/time_total) + $(cat .junit/time) )" > .junit/time_total -+ -+ shift -+ cat > "$tc_file" <<-EOF -+ -+ $@ -+ EOF -+ -+ if test -f .junit/tout; then -+ cat >> "$tc_file" <<-EOF -+ -+ $(cat .junit/tout | esc_xml) -+ -+ EOF -+ fi -+ -+ if test -f .junit/terr; then -+ cat >> "$tc_file" <<-EOF -+ -+ $(cat .junit/terr | esc_xml) -+ -+ EOF -+ fi -+ -+ echo "" >> "$tc_file" -+ rm -f .junit/tout .junit/terr .junit/time -+} -+ - # You are not expected to call test_ok_ and test_failure_ directly, use - # the text_expect_* functions instead. - - test_ok_() { - test_success=$(($test_success + 1)) - say_color "" "ok $test_count - $@" -+ -+ junit_testcase "$@" - } - - test_failure_() { - test_failure=$(($test_failure + 1)) - say_color error "not ok $test_count - $1" -+ test_name=$1 - shift - echo "$@" | sed -e 's/^/# /' -+ junit_testcase "$test_name" ''$(echo $@ | esc_xml)'' -+ - test "$immediate" = "" || { EXIT_OK=t; exit 1; } - } - - test_known_broken_ok_() { - test_fixed=$(($test_fixed + 1)) - say_color error "ok $test_count - $@ # TODO known breakage vanished" -+ -+ junit_testcase "$@" '' - } - - test_known_broken_failure_() { - test_broken=$(($test_broken + 1)) - say_color warn "not ok $test_count - $@ # TODO known breakage" -+ -+ junit_testcase "$@" - } - - # Public: Execute commands in debug mode. -@@ -310,15 +372,25 @@ test_pause() { - test_eval_() { - # This is a separate function because some tests use - # "return" to end a test_expect_success block early. -- eval &3 2>&4 "$*" -+ if test -n "$TEST_GENERATE_JUNIT"; then -+ eval >(tee -a .junit/tout >&3) 2> >(tee -a .junit/terr >&4) "$*" -+ else -+ eval &3 2>&4 "$*" -+ fi - } - - test_run_() { - test_cleanup=: - expecting_failure=$2 -+ -+ start_time_ms=$(date "+%s%3N"); - test_eval_ "$1" - eval_ret=$? - -+ if test -n "$TEST_GENERATE_JUNIT"; then -+ echo $(expr $(date "+%s%3N") - ${start_time_ms} ) > .junit/time; -+ fi -+ - if test "$chain_lint" = "t"; then - test_eval_ "(exit 117) && $1" - if test "$?" != 117; then -@@ -355,8 +427,18 @@ test_skip_() { - of_prereq=" of $test_prereq" - fi - -- say_color skip >&3 "skipping test: $@" -- say_color skip "ok $test_count # skip $1 (missing $missing_prereq${of_prereq})" -+ say_color skip >&3 "skipping test: $1" -+ say_color skip "ok $test_count # skip $1 (missing $missing_prereqm${of_prereq})" -+ -+ if test -n "$TEST_GENERATE_JUNIT"; then -+ cat > ".junit/case-$(printf "%04d" $test_count)" <<-EOF -+ -+ -+ skip $(echo $1 | esc_xml) (missing $missing_prereq${of_prereq}) -+ -+ -+ EOF -+ fi - : true - ;; - *) -@@ -403,7 +485,7 @@ test_expect_success() { - test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq= - test "$#" = 2 || error "bug in the test script: not 2 or 3 parameters to test_expect_success" - export test_prereq -- if ! test_skip_ "$@"; then -+ if ! test_skip_ "$@" "$1"; then - say >&3 "expecting success: $2" - if test_run_ "$2"; then - test_ok_ "$1" -@@ -442,7 +524,7 @@ test_expect_failure() { - test "$#" = 3 && { test_prereq=$1; shift; } || test_prereq= - test "$#" = 2 || error "bug in the test script: not 2 or 3 parameters to test_expect_failure" - export test_prereq -- if ! test_skip_ "$@"; then -+ if ! test_skip_ "$@" "$1"; then - say >&3 "checking known breakage: $2" - if test_run_ "$2" expecting_failure; then - test_known_broken_ok_ "$1" -@@ -675,6 +757,7 @@ test_done() { - test_results_dir="$SHARNESS_TEST_DIRECTORY/test-results" - mkdir -p "$test_results_dir" - test_results_path="$test_results_dir/${SHARNESS_TEST_FILE%.$SHARNESS_TEST_EXTENSION}.$$.counts" -+ junit_results_path="$test_results_dir/${SHARNESS_TEST_FILE%.$SHARNESS_TEST_EXTENSION}.$$.xml.part" - - cat >>"$test_results_path" <<-EOF - total $test_count -@@ -684,6 +767,16 @@ test_done() { - failed $test_failure - - EOF -+ -+ if test -n "$TEST_GENERATE_JUNIT"; then -+ time_sec="$(cat .junit/time_total | xargs printf "%04d" | sed -e 's/\(...\)$/.\1/g')" -+ -+ cat >>"$junit_results_path" <<-EOF -+ -+ $(find .junit -name 'case-*' | sort | xargs cat) -+ -+ EOF -+ fi - fi - - if test "$test_fixed" != 0; then -@@ -745,6 +838,9 @@ export PATH SHARNESS_BUILD_DIRECTORY - SHARNESS_TEST_FILE="$0" - export SHARNESS_TEST_FILE - -+SHARNESS_TEST_NAME=$(basename ${SHARNESS_TEST_FILE} ".sh") -+export SHARNESS_TEST_NAME -+ - # Prepare test area. - test_dir="trash directory.$(basename "$SHARNESS_TEST_FILE" ".$SHARNESS_TEST_EXTENSION")" - test -n "$root" && test_dir="$root/$test_dir" -@@ -771,6 +867,12 @@ mkdir -p "$test_dir" || exit 1 - # in subprocesses like git equals our $PWD (for pathname comparisons). - cd -P "$test_dir" || exit 1 - -+# Prepare JUnit report dir -+if test -n "$TEST_GENERATE_JUNIT"; then -+ mkdir -p .junit -+ echo 0 > .junit/time_total -+fi -+ - this_test=${SHARNESS_TEST_FILE##*/} - this_test=${this_test%.$SHARNESS_TEST_EXTENSION} - for skp in $SKIP_TESTS; do --- -2.17.0 - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/gen-junit-report.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/gen-junit-report.sh deleted file mode 100755 index c69f39ad..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/gen-junit-report.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -cat > test-results/sharness.xml <<-EOF - - - $(find test-results -name '*.xml.part' | sort | xargs cat) - -EOF diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/install-sharness.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/install-sharness.sh deleted file mode 100755 index ac6cb2f7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/install-sharness.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -# install sharness.sh -# -# Copyright (c) 2014 Juan Batiz-Benet -# MIT Licensed; see the LICENSE file in this repository. -# - -# settings -version=5eee9b51b5621cec95a64018f0cc779963b230d2 -patch_version=17 - -urlprefix=https://github.com/mlafeldt/sharness.git -if test ! -n "$clonedir" ; then - clonedir=lib -fi -sharnessdir=sharness - -if test -f "$clonedir/$sharnessdir/SHARNESS_VERSION_${version}_p${patch_version}" -then - # There is the right version file. Great, we are done! - exit 0 -fi - -die() { - echo >&2 "$@" - exit 1 -} - -apply_patches() { - git config --local user.email "noone@nowhere" - git config --local user.name "No One" - git am ../0001-Generate-partial-JUnit-reports.patch - - touch "SHARNESS_VERSION_${version}_p${patch_version}" || die "Could not create 'SHARNESS_VERSION_${version}_p${patch_version}'" -} - -checkout_version() { - git checkout "$version" || die "Could not checkout '$version'" - rm -f SHARNESS_VERSION_* || die "Could not remove 'SHARNESS_VERSION_*'" - echo "Sharness version $version is checked out!" - - apply_patches -} - -if test -d "$clonedir/$sharnessdir/.git" -then - # We need to update sharness! - cd "$clonedir/$sharnessdir" || die "Could not cd into '$clonedir/$sharnessdir' directory" - git fetch || die "Could not fetch to update sharness" - checkout_version -else - # We need to clone sharness! - mkdir -p "$clonedir" || die "Could not create '$clonedir' directory" - cd "$clonedir" || die "Could not cd into '$clonedir' directory" - - git clone "$urlprefix" || die "Could not clone '$urlprefix'" - cd "$sharnessdir" || die "Could not cd into '$sharnessdir' directory" - checkout_version -fi -exit 0 diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/iptb-lib.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/iptb-lib.sh deleted file mode 100644 index 6ee8fbd8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/iptb-lib.sh +++ /dev/null @@ -1,64 +0,0 @@ -# iptb test framework -# -# Copyright (c) 2014, 2016 Jeromy Johnson, Christian Couder -# MIT Licensed; see the LICENSE file in this repository. - -export IPTB_ROOT="$(pwd)/.iptb" - -ipfsi() { - dir="$1" - shift - IPFS_PATH="$IPTB_ROOT/testbeds/default/$dir" ipfs "$@" -} - -check_has_connection() { - node="$1" - ipfsi "$node" swarm peers >"swarm_peers_$node" && - grep "ipfs" "swarm_peers_$node" >/dev/null -} - -iptb() { - if ! command iptb "$@"; then - case "$1" in - start|stop|connect) - test_fsh command iptb logs - ;; - esac - return 1 - fi -} - -startup_cluster() { - num_nodes="$1" - shift - other_args="$@" - bound=$(expr "$num_nodes" - 1) - - if test -n "$other_args"; then - test_expect_success "start up nodes with additional args" " - iptb start -wait -- ${other_args[@]} - " - else - test_expect_success "start up nodes" ' - iptb start -wait - ' - fi - - test_expect_success "connect nodes to eachother" ' - iptb connect [1-$bound] 0 - ' - - for i in $(test_seq 0 "$bound") - do - test_expect_success "node $i is connected" ' - check_has_connection "$i" || - test_fsh cat "swarm_peers_$i" - ' - done -} - -iptb_wait_stop() { - while ! iptb run -- sh -c '! { test -e "$IPFS_PATH/repo.lock" && fuser -f "$IPFS_PATH/repo.lock" >/dev/null; }'; do - go-sleep 10ms - done -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-aggregate-results.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-aggregate-results.sh deleted file mode 100755 index d0987e24..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-aggregate-results.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Script to aggregate results using Sharness -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -SHARNESS_AGGREGATE="lib/sharness/aggregate-results.sh" - -test -f "$SHARNESS_AGGREGATE" || { - echo >&2 "Cannot find: $SHARNESS_AGGREGATE" - echo >&2 "Please check Sharness installation." - exit 1 -} - -ls test-results/t*-*.sh.*.counts | "$SHARNESS_AGGREGATE" diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib-hashes.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib-hashes.sh deleted file mode 100644 index a8a3631e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib-hashes.sh +++ /dev/null @@ -1,5 +0,0 @@ -# this file defines several useful hashes used across the test codebase. -# thus they can be defined + changed in one place - -HASH_WELCOME_DOCS="QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv" -HASH_EMPTY_DIR="QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn" diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib.sh deleted file mode 100644 index f9ebae81..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/lib/test-lib.sh +++ /dev/null @@ -1,439 +0,0 @@ -# Test framework for go-ipfs -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# -# We are using sharness (https://github.com/mlafeldt/sharness) -# which was extracted from the Git test framework. - -# use the ipfs tool to test against - -# add current directory to path, for ipfs tool. -if test "$MAKE_SKIP_PATH" != "1"; then - BIN=$(cd .. && echo `pwd`/bin) - BIN2=$(cd ../.. && echo `pwd`/cmd/ipfs) - PATH=${BIN2}:${BIN}:${PATH} - - # assert the `ipfs` we're using is the right one. - if test `which ipfs` != ${BIN2}/ipfs; then - echo >&2 "Cannot find the tests' local ipfs tool." - echo >&2 "Please check test and ipfs tool installation." - exit 1 - fi -fi - -# set sharness verbosity. we set the env var directly as -# it's too late to pass in --verbose, and --verbose is harder -# to pass through in some cases. -test "$TEST_VERBOSE" = 1 && verbose=t -test "$TEST_IMMEDIATE" = 1 && immediate=t -# source the common hashes first. -. lib/test-lib-hashes.sh - - -SHARNESS_LIB="lib/sharness/sharness.sh" - -. "$SHARNESS_LIB" || { - echo >&2 "Cannot source: $SHARNESS_LIB" - echo >&2 "Please check Sharness installation." - exit 1 -} - -# Please put go-ipfs specific shell functions below - -# Make sure the ipfs path is set, also set in test_init_ipfs but that -# is not always used. -export IPFS_PATH="$(pwd)/.ipfs" -# Ask programs to please not print ANSI codes -export TERM=dumb - -TEST_OS="$(uname -s | tr '[a-z]' '[A-Z]')" - -# grab + output options -test "$TEST_NO_FUSE" != 1 && test_set_prereq FUSE -test "$TEST_EXPENSIVE" = 1 && test_set_prereq EXPENSIVE -test "$TEST_NO_DOCKER" != 1 && type docker >/dev/null 2>&1 && test_set_prereq DOCKER -test "$TEST_NO_PLUGIN" != 1 && test "$TEST_OS" = "LINUX" && test_set_prereq PLUGIN - -# Set a prereq as error messages are often different on Windows/Cygwin -expr "$TEST_OS" : "CYGWIN_NT" >/dev/null || test_set_prereq STD_ERR_MSG - -if test "$TEST_VERBOSE" = 1; then - echo '# TEST_VERBOSE='"$TEST_VERBOSE" - echo '# TEST_NO_FUSE='"$TEST_NO_FUSE" - echo '# TEST_NO_PLUGIN='"$TEST_NO_PLUGIN" - echo '# TEST_EXPENSIVE='"$TEST_EXPENSIVE" - echo '# TEST_OS='"$TEST_OS" -fi - -# source our generic test lib -. ../../ipfs-test-lib.sh - -# source iptb lib -. ../lib/iptb-lib.sh - -test_cmp_repeat_10_sec() { - for i in $(test_seq 1 100) - do - test_cmp "$1" "$2" >/dev/null && return - go-sleep 100ms - done - test_cmp "$1" "$2" -} - -test_run_repeat_60_sec() { - for i in $(test_seq 1 600) - do - (test_eval_ "$1") && return - go-sleep 100ms - done - return 1 # failed -} - -test_wait_output_n_lines_60_sec() { - for i in $(test_seq 1 600) - do - test $(cat "$1" | wc -l | tr -d " ") -ge $2 && return - go-sleep 100ms - done - actual=$(cat "$1" | wc -l | tr -d " ") - test_fsh "expected $2 lines of output. got $actual" -} - -test_wait_open_tcp_port_10_sec() { - for i in $(test_seq 1 100) - do - # this is not a perfect check, but it's portable. - # cant count on ss. not installed everywhere. - # cant count on netstat using : or . as port delim. differ across platforms. - echo $(netstat -aln | egrep "^tcp.*LISTEN" | egrep "[.:]$1" | wc -l) -gt 0 - if [ $(netstat -aln | egrep "^tcp.*LISTEN" | egrep "[.:]$1" | wc -l) -gt 0 ]; then - return 0 - fi - go-sleep 100ms - done - return 1 -} - - -# test_config_set helps us make sure _we really did set_ a config value. -# it sets it and then tests it. This became elaborate because ipfs config -# was setting really weird things and am not sure why. -test_config_set() { - - # grab flags (like --bool in "ipfs config --bool") - test_cfg_flags="" # unset in case. - test "$#" = 3 && { test_cfg_flags=$1; shift; } - - test_cfg_key=$1 - test_cfg_val=$2 - - # when verbose, tell the user what config values are being set - test_cfg_cmd="ipfs config $test_cfg_flags \"$test_cfg_key\" \"$test_cfg_val\"" - test "$TEST_VERBOSE" = 1 && echo "$test_cfg_cmd" - - # ok try setting the config key/val pair. - ipfs config $test_cfg_flags "$test_cfg_key" "$test_cfg_val" - echo "$test_cfg_val" >cfg_set_expected - ipfs config "$test_cfg_key" >cfg_set_actual - test_cmp cfg_set_expected cfg_set_actual -} - -test_init_ipfs() { - - - # we set the Addresses.API config variable. - # the cli client knows to use it, so only need to set. - # todo: in the future, use env? - - test_expect_success "ipfs init succeeds" ' - export IPFS_PATH="$(pwd)/.ipfs" && - ipfs init --profile=test -b=1024 > /dev/null - ' - - test_expect_success "prepare config -- mounting" ' - mkdir mountdir ipfs ipns && - test_config_set Mounts.IPFS "$(pwd)/ipfs" && - test_config_set Mounts.IPNS "$(pwd)/ipns" || - test_fsh cat "\"$IPFS_PATH/config\"" - ' - -} - -test_config_ipfs_gateway_writable() { - test_expect_success "prepare config -- gateway writable" ' - test_config_set --bool Gateway.Writable true || - test_fsh cat "\"$IPFS_PATH/config\"" - ' -} - -test_wait_for_file() { - loops=$1 - delay=$2 - file=$3 - fwaitc=0 - while ! test -f "$file" - do - if test $fwaitc -ge $loops - then - echo "Error: timed out waiting for file: $file" - return 1 - fi - - go-sleep $delay - fwaitc=`expr $fwaitc + 1` - done -} - -test_set_address_vars() { - daemon_output="$1" - - test_expect_success "set up address variables" ' - API_MADDR=$(cat "$IPFS_PATH/api") && - API_ADDR=$(convert_tcp_maddr $API_MADDR) && - API_PORT=$(port_from_maddr $API_MADDR) && - - GWAY_MADDR=$(sed -n "s/^Gateway (.*) server listening on //p" "$daemon_output") && - GWAY_ADDR=$(convert_tcp_maddr $GWAY_MADDR) && - GWAY_PORT=$(port_from_maddr $GWAY_MADDR) - ' - - if ipfs swarm addrs local >/dev/null 2>&1; then - test_expect_success "get swarm addresses" ' - ipfs swarm addrs local > addrs_out - ' - - test_expect_success "set swarm address vars" ' - SWARM_MADDR=$(grep "127.0.0.1" addrs_out) && - SWARM_PORT=$(port_from_maddr $SWARM_MADDR) - ' - fi -} - -test_launch_ipfs_daemon() { - - args="$@" - - test "$TEST_ULIMIT_PRESET" != 1 && ulimit -n 2048 - - test_expect_success "'ipfs daemon' succeeds" ' - ipfs daemon $args >actual_daemon 2>daemon_err & - IPFS_PID=$! - ' - - # wait for api file to show up - test_expect_success "api file shows up" ' - test_wait_for_file 50 100ms "$IPFS_PATH/api" - ' - - test_set_address_vars actual_daemon - - # we say the daemon is ready when the API server is ready. - test_expect_success "'ipfs daemon' is ready" ' - pollEndpoint -ep=/version -host=$API_MADDR -v -tout=1s -tries=60 2>poll_apierr > poll_apiout || - test_fsh cat actual_daemon || test_fsh cat daemon_err || test_fsh cat poll_apierr || test_fsh cat poll_apiout - ' -} - -do_umount() { - if [ "$(uname -s)" = "Linux" ]; then - fusermount -u "$1" - else - umount "$1" - fi -} - -test_mount_ipfs() { - - # make sure stuff is unmounted first. - test_expect_success FUSE "'ipfs mount' succeeds" ' - do_umount "$(pwd)/ipfs" || true && - do_umount "$(pwd)/ipns" || true && - ipfs mount >actual - ' - - test_expect_success FUSE "'ipfs mount' output looks good" ' - echo "IPFS mounted at: $(pwd)/ipfs" >expected && - echo "IPNS mounted at: $(pwd)/ipns" >>expected && - test_cmp expected actual - ' - -} - -test_launch_ipfs_daemon_and_mount() { - - test_init_ipfs - test_launch_ipfs_daemon - test_mount_ipfs - -} - -test_kill_repeat_10_sec() { - # try to shut down once + wait for graceful exit - kill $1 - for i in $(test_seq 1 100) - do - go-sleep 100ms - ! kill -0 $1 2>/dev/null && return - done - - # if not, try once more, which will skip graceful exit - kill $1 - go-sleep 1s - ! kill -0 $1 2>/dev/null && return - - # ok, no hope. kill it to prevent it messing with other tests - kill -9 $1 2>/dev/null - return 1 -} - -test_kill_ipfs_daemon() { - - test_expect_success "'ipfs daemon' is still running" ' - kill -0 $IPFS_PID - ' - - test_expect_success "'ipfs daemon' can be killed" ' - test_kill_repeat_10_sec $IPFS_PID - ' -} - -test_curl_resp_http_code() { - curl -I "$1" >curl_output || { - echo "curl error with url: '$1'" - echo "curl output was:" - cat curl_output - return 1 - } - shift && - RESP=$(head -1 curl_output) && - while test "$#" -gt 0 - do - expr "$RESP" : "$1" >/dev/null && return - shift - done - echo "curl response didn't match!" - echo "curl response was: '$RESP'" - echo "curl output was:" - cat curl_output - return 1 -} - -test_must_be_empty() { - if test -s "$1" - then - echo "'$1' is not empty, it contains:" - cat "$1" - return 1 - fi -} - -test_should_contain() { - test "$#" = 2 || error "bug in the test script: not 2 parameters to test_should_contain" - if ! grep -q "$1" "$2" - then - echo "'$2' does not contain '$1', it contains:" - cat "$2" - return 1 - fi -} - -test_str_contains() { - find=$1 - shift - echo "$@" | egrep "\b$find\b" >/dev/null -} - -disk_usage() { - # normalize du across systems - case $(uname -s) in - Linux) - DU="du -sb" - M=1 - ;; - FreeBSD) - DU="du -s -A -B 1" - M=512 - ;; - Darwin | DragonFly | *) - DU="du -s" - M=512 - ;; - esac - expr $($DU "$1" | awk "{print \$1}") "*" "$M" -} - -# output a file's permission in human readable format -generic_stat() { - # normalize stat across systems - case $(uname -s) in - Linux) - _STAT="stat -c %A" - ;; - FreeBSD | Darwin | DragonFly) - _STAT="stat -f %Sp" - ;; - *) - echo "unsupported OS" >&2 - exit 1 - ;; - esac - $_STAT "$1" || echo "failed" # Avoid returning nothing. -} - -# output a file's permission in human readable format -file_size() { - case $(uname -s) in - Linux) - _STAT="stat --format=%s" - ;; - FreeBSD | Darwin | DragonFly) - _STAT="stat -f%z" - ;; - *) - echo "unsupported OS" >&2 - exit 1 - ;; - esac - $_STAT "$1" -} - -directory_size() { - local total=0 - local fsize=0 - local res=0 - find "$1" -type f | ( while read fname; do - fsize=$(file_size "$fname") - res=$? - if ! test $res -eq 0; then - if ! test -e "$fname"; then - continue; - fi - echo "failed to get filesize" >&2 - return $res - fi - total=$(expr "$total" + "$fsize") - res=$? - if ! test $res -eq 0; then - echo "filesize not a number: $fsize" >&2 - return $res - fi - done - echo "$total" ) # do not remove this subshell -} - -test_check_peerid() { - peeridlen=$(echo "$1" | tr -dC "[:alnum:]" | wc -c | tr -d " ") && - test "$peeridlen" = "46" || { - echo "Bad peerid '$1' with len '$peeridlen'" - return 1 - } -} - -convert_tcp_maddr() { - echo $1 | awk -F'/' '{ printf "%s:%s", $3, $5 }' -} - -port_from_maddr() { - echo $1 | awk -F'/' '{ print $NF }' -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0010-basic-commands.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0010-basic-commands.sh deleted file mode 100755 index d5f89af3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0010-basic-commands.sh +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test installation and some basic commands" - -. lib/test-lib.sh - -test_expect_success "current dir is writable" ' - echo "It works!" >test.txt -' - -test_expect_success "ipfs version succeeds" ' - ipfs version >version.txt -' - -test_expect_success "ipfs --version success" ' - ipfs --version -' - -test_expect_success "ipfs version output looks good" ' - egrep "^ipfs version [0-9]+\.[0-9]+\.[0-9]" version.txt >/dev/null || - test_fsh cat version.txt -' - -test_expect_success "ipfs versions matches ipfs --version" ' - ipfs version > version.txt && - ipfs --version > version2.txt && - diff version2.txt version.txt || - test_fsh ipfs --version - -' - -test_expect_success "ipfs version --all has all required fields" ' - ipfs version --all > version_all.txt && - grep "go-ipfs version" version_all.txt && - grep "Repo version" version_all.txt && - grep "System version" version_all.txt && - grep "Golang version" version_all.txt -' - -test_expect_success "'ipfs commands' succeeds" ' - ipfs commands >commands.txt -' - -test_expect_success "'ipfs commands' output looks good" ' - grep "ipfs add" commands.txt && - grep "ipfs daemon" commands.txt && - grep "ipfs update" commands.txt -' - -test_expect_success "All sub-commands accept help" ' - echo 0 > fail - while read -r cmd - do - ${cmd:0:4} help ${cmd:5} >/dev/null || - { echo "$cmd doesnt accept --help"; echo 1 > fail; } - echo stuff | $cmd --help >/dev/null || - { echo "$cmd doesnt accept --help when using stdin"; echo 1 > fail; } - done fail - while read -r cmd - do - $cmd --help >/dev/null || - { echo "$cmd doesnt accept --help"; echo 1 > fail; } - echo stuff | $cmd --help >/dev/null || - { echo "$cmd doesnt accept --help when using stdin"; echo 1 > fail; } - done fail - cut -d" " -f 2 commands.txt | grep -v ipfs | sort -u | \ - while read cmd - do - grep " $cmd" help.txt > /dev/null || - { echo "missing $cmd from helptext"; echo 1 > fail; } - done - - if [ $(cat fail) = 1 ]; then - return 1 - fi -' - -test_expect_failure "All ipfs commands docs are 80 columns or less" ' - echo 0 > fail - while read cmd - do - LENGTH="$($cmd --help | awk "{ print length }" | sort -nr | head -1)" - [ $LENGTH -gt 80 ] && - { echo "$cmd help text is longer than 79 chars ($LENGTH)"; echo 1 > fail; } - done fail - while read -r cmd - do - test_must_fail $cmd --badflag >/dev/null || - { echo "$cmd exit with code 0 when passed --badflag"; echo 1 > fail; } - done commands.txt -' - -test_expect_success "'ipfs commands --flags' output looks good" ' - grep "ipfs pin add --recursive / ipfs pin add -r" commands.txt && - grep "ipfs id --format / ipfs id -f" commands.txt && - grep "ipfs repo gc --quiet / ipfs repo gc -q" commands.txt -' - - - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0015-basic-sh-functions.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0015-basic-sh-functions.sh deleted file mode 100755 index 81c67d9d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0015-basic-sh-functions.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test some basic shell functions" - -. lib/test-lib.sh - -test_expect_success "shellquote works with simple stuff" ' - var=$(shellquote one two) -' - -test_expect_success "shellquote output looks good" ' - test "$var" = "'\''one'\'' '\''two'\''" || - test_fsh echo "var is \"$var\" instead of \"'\''one'\'' '\''two'\''\"" -' - -# The following two printf statements are equivalent: -# printf "%s\n" \''"foo\ -# bar' -# printf "\047\042\146\157\157\134\012\142\141\162\012" -# We use the second one to simplify quoting. - -test_expect_success "shellquote works with complex printf" ' - eval "$(shellquote printf "\047\042\146\157\157\134\012\142\141\162\012")" >actual -' - -test_expect_success "shellquote output looks good" ' - printf "\047\042\146\157\157\134\012\142\141\162\012" >expected && - test_cmp expected actual -' - -test_expect_success "shellquote works with many different bytes" ' - bytes_sans_NUL=$( - printf "\001\002\003\004\005\006\007\010\011\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044%%\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" - ) && - eval "$(shellquote printf "%s" "$bytes_sans_NUL")" >actual -' - -test_expect_success "shellquote output looks good" ' - printf "%s" "$bytes_sans_NUL" >expected && - test_cmp expected actual -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0018-indent.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0018-indent.sh deleted file mode 100755 index 5fa398fd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0018-indent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test sharness test indent" - -. lib/test-lib.sh - -for file in $(find .. -name 't*.sh' -type f); do - test_expect_success "indent in $file is not using tabs" ' - test_must_fail grep -P "^ *\t" $file - ' -done - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0020-init.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0020-init.sh deleted file mode 100755 index 9584c6e3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0020-init.sh +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test init command" - -. lib/test-lib.sh - -# test that ipfs fails to init if IPFS_PATH isnt writeable -test_expect_success "create dir and change perms succeeds" ' - export IPFS_PATH="$(pwd)/.badipfs" && - mkdir "$IPFS_PATH" && - chmod 000 "$IPFS_PATH" -' - -test_expect_success "ipfs init fails" ' - test_must_fail ipfs init 2> init_fail_out -' - -# Under Windows/Cygwin the error message is different, -# so we use the STD_ERR_MSG prereq. -if test_have_prereq STD_ERR_MSG; then - init_err_msg="Error: error opening repository at $IPFS_PATH: permission denied" -else - init_err_msg="Error: mkdir $IPFS_PATH: The system cannot find the path specified." -fi - -test_expect_success "ipfs init output looks good" ' - echo "$init_err_msg" >init_fail_exp && - test_cmp init_fail_exp init_fail_out -' - -test_expect_success "cleanup dir with bad perms" ' - chmod 775 "$IPFS_PATH" && - rmdir "$IPFS_PATH" -' - -# test no repo error message -# this applies to `ipfs add sth`, `ipfs refs ` -test_expect_success "ipfs cat fails" ' - export IPFS_PATH="$(pwd)/.ipfs" && - test_must_fail ipfs cat Qmaa4Rw81a3a1VEx4LxB7HADUAXvZFhCoRdBzsMZyZmqHD 2> cat_fail_out -' - -test_expect_success "ipfs cat no repo message looks good" ' - echo "Error: no IPFS repo found in $IPFS_PATH." > cat_fail_exp && - echo "please run: '"'"'ipfs init'"'"'" >> cat_fail_exp && - test_path_cmp cat_fail_exp cat_fail_out -' - -# test that init succeeds -test_expect_success "ipfs init succeeds" ' - export IPFS_PATH="$(pwd)/.ipfs" && - echo "IPFS_PATH: \"$IPFS_PATH\"" && - BITS="2048" && - ipfs init --bits="$BITS" >actual_init || - test_fsh cat actual_init -' - -test_expect_success ".ipfs/ has been created" ' - test -d ".ipfs" && - test -f ".ipfs/config" && - test -d ".ipfs/datastore" && - test -d ".ipfs/blocks" && - test ! -f ._check_writeable || - test_fsh ls -al .ipfs -' - -test_expect_success "ipfs config succeeds" ' - echo /ipfs >expected_config && - ipfs config Mounts.IPFS >actual_config && - test_cmp expected_config actual_config -' - -test_expect_success "ipfs peer id looks good" ' - PEERID=$(ipfs config Identity.PeerID) && - test_check_peerid "$PEERID" -' - -test_expect_success "ipfs init output looks good" ' - STARTFILE="ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme" && - echo "initializing IPFS node at $IPFS_PATH" >expected && - echo "generating $BITS-bit RSA keypair...done" >>expected && - echo "peer identity: $PEERID" >>expected && - echo "to get started, enter:" >>expected && - printf "\\n\\t$STARTFILE\\n\\n" >>expected && - test_cmp expected actual_init -' - -test_expect_success "Welcome readme exists" ' - ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme -' - -test_expect_success "clean up ipfs dir" ' - rm -rf "$IPFS_PATH" -' - -test_expect_success "'ipfs init --empty-repo' succeeds" ' - BITS="1024" && - ipfs init --bits="$BITS" --empty-repo >actual_init -' - -test_expect_success "ipfs peer id looks good" ' - PEERID=$(ipfs config Identity.PeerID) && - test_check_peerid "$PEERID" -' - -test_expect_success "'ipfs init --empty-repo' output looks good" ' - echo "initializing IPFS node at $IPFS_PATH" >expected && - echo "generating $BITS-bit RSA keypair...done" >>expected && - echo "peer identity: $PEERID" >>expected && - test_cmp expected actual_init -' - -test_expect_success "Welcome readme doesn't exists" ' - test_must_fail ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme -' - -test_expect_success "ipfs id agent string contains correct version" ' - ipfs id -f "" | grep $(ipfs version -n) -' - -test_expect_success "clean up ipfs dir" ' - rm -rf "$IPFS_PATH" -' - -# test init profiles -test_expect_success "'ipfs init --profile' with invalid profile fails" ' - BITS="1024" && - test_must_fail ipfs init --bits="$BITS" --profile=nonexistent_profile 2> invalid_profile_out - EXPECT="Error: invalid configuration profile: nonexistent_profile" && - grep "$EXPECT" invalid_profile_out -' - -test_expect_success "'ipfs init --profile' succeeds" ' - BITS="1024" && - ipfs init --bits="$BITS" --profile=server -' - -test_expect_success "'ipfs config Swarm.AddrFilters' looks good" ' - ipfs config Swarm.AddrFilters > actual_config && - test $(cat actual_config | wc -l) = 17 -' - -test_expect_success "clean up ipfs dir" ' - rm -rf "$IPFS_PATH" -' - -test_expect_success "'ipfs init --profile=test' succeeds" ' - BITS="1024" && - ipfs init --bits="$BITS" --profile=test -' - -test_expect_success "'ipfs config Bootstrap' looks good" ' - ipfs config Bootstrap > actual_config && - test $(cat actual_config) = "[]" -' - -test_expect_success "'ipfs config Addresses.API' looks good" ' - ipfs config Addresses.API > actual_config && - test $(cat actual_config) = "/ip4/127.0.0.1/tcp/0" -' - -test_expect_success "clean up ipfs dir" ' - rm -rf "$IPFS_PATH" -' - -test_expect_success "'ipfs init --profile=lowpower' succeeds" ' - BITS="1024" && - ipfs init --bits="$BITS" --profile=lowpower -' - -test_expect_success "'ipfs config Discovery.Routing' looks good" ' - ipfs config Routing.Type > actual_config && - test $(cat actual_config) = "dhtclient" -' - -test_expect_success "clean up ipfs dir" ' - rm -rf "$IPFS_PATH" -' - -test_init_ipfs - -test_launch_ipfs_daemon - -test_expect_success "ipfs init should not run while daemon is running" ' - test_must_fail ipfs init 2> daemon_running_err && - EXPECT="Error: ipfs daemon is running. please stop it to run this command" && - grep "$EXPECT" daemon_running_err -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0021-config.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0021-config.sh deleted file mode 100755 index 46654e5f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0021-config.sh +++ /dev/null @@ -1,295 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test config command" - -. lib/test-lib.sh - -# we use a function so that we can run it both offline + online -test_config_cmd_set() { - - # flags (like --bool in "ipfs config --bool") - cfg_flags="" # unset in case. - test "$#" = 3 && { cfg_flags=$1; shift; } - - cfg_key=$1 - cfg_val=$2 - test_expect_success "ipfs config succeeds" ' - ipfs config $cfg_flags "$cfg_key" "$cfg_val" - ' - - test_expect_success "ipfs config output looks good" ' - echo "$cfg_val" >expected && - ipfs config "$cfg_key" >actual && - test_cmp expected actual - ' - - # also test our lib function. it should work too. - cfg_key="Lib.$cfg_key" - test_expect_success "test_config_set succeeds" ' - test_config_set $cfg_flags "$cfg_key" "$cfg_val" - ' - - test_expect_success "test_config_set value looks good" ' - echo "$cfg_val" >expected && - ipfs config "$cfg_key" >actual && - test_cmp expected actual - ' -} - -# this is a bit brittle. the problem is we need to test -# with something that will be forced to unmarshal as a struct. -# (i.e. just setting 'ipfs config --json foo "[1, 2, 3]"') may -# set it as astring instead of proper json. We leverage the -# unmarshalling that has to happen. -CONFIG_SET_JSON_TEST='{ - "MDNS": { - "Enabled": true, - "Interval": 10 - } -}' - -test_profile_apply_revert() { - profile=$1 - inverse_profile=$2 - - test_expect_success "save expected config" ' - ipfs config show >expected - ' - - test_expect_success "'ipfs config profile apply ${profile}' works" ' - ipfs config profile apply '${profile}' - ' - - test_expect_success "profile ${profile} changed something" ' - ipfs config show >actual && - test_must_fail test_cmp expected actual - ' - - test_expect_success "'ipfs config profile apply ${inverse_profile}' works" ' - ipfs config profile apply '${inverse_profile}' - ' - - test_expect_success "config is back to previous state after ${inverse_profile} was applied" ' - ipfs config show >actual && - test_cmp expected actual - ' -} - -test_profile_apply_dry_run_not_alter() { - profile=$1 - - test_expect_success "'ipfs config profile apply ${profile} --dry-run' doesn't alter config" ' - cat "$IPFS_PATH/config" >expected && - ipfs config profile apply '${profile}' --dry-run && - cat "$IPFS_PATH/config" >actual && - test_cmp expected actual - ' -} - -test_config_cmd() { - test_config_cmd_set "beep" "boop" - test_config_cmd_set "beep1" "boop2" - test_config_cmd_set "beep1" "boop2" - test_config_cmd_set "--bool" "beep2" "true" - test_config_cmd_set "--bool" "beep2" "false" - test_config_cmd_set "--json" "beep3" "true" - test_config_cmd_set "--json" "beep3" "false" - test_config_cmd_set "--json" "Discovery" "$CONFIG_SET_JSON_TEST" - test_config_cmd_set "--json" "deep-not-defined.prop" "true" - test_config_cmd_set "--json" "deep-null" "null" - test_config_cmd_set "--json" "deep-null.prop" "true" - - test_expect_success "'ipfs config show' works" ' - ipfs config show >actual - ' - - test_expect_success "'ipfs config show' output looks good" ' - grep "\"beep\": \"boop\"," actual && - grep "\"beep1\": \"boop2\"," actual && - grep "\"beep2\": false," actual && - grep "\"beep3\": false," actual - ' - - test_expect_success "setup for config replace test" ' - cp "$IPFS_PATH/config" newconfig.json && - sed -i"~" -e /PrivKey/d -e s/10GB/11GB/ newconfig.json && - sed -i"~" -e '"'"'/PeerID/ {'"'"' -e '"'"' s/,$// '"'"' -e '"'"' } '"'"' newconfig.json - ' - - test_expect_success "run 'ipfs config replace'" ' - ipfs config replace - < newconfig.json - ' - - test_expect_success "check resulting config after 'ipfs config replace'" ' - sed -e /PrivKey/d "$IPFS_PATH/config" > replconfig.json && - sed -i"~" -e '"'"'/PeerID/ {'"'"' -e '"'"' s/,$// '"'"' -e '"'"' } '"'"' replconfig.json && - test_cmp replconfig.json newconfig.json - ' - - # SECURITY - # Those tests are here to prevent exposing the PrivKey on the network - - test_expect_success "'ipfs config Identity' fails" ' - test_expect_code 1 ipfs config Identity 2> ident_out - ' - - test_expect_success "output looks good" ' - echo "Error: cannot show or change private key through API" > ident_exp && - test_cmp ident_exp ident_out - ' - - test_expect_success "'ipfs config Identity.PrivKey' fails" ' - test_expect_code 1 ipfs config Identity.PrivKey 2> ident_out - ' - - test_expect_success "output looks good" ' - test_cmp ident_exp ident_out - ' - - test_expect_success "lower cased PrivKey" ' - sed -i"~" -e '\''s/PrivKey/privkey/'\'' "$IPFS_PATH/config" && - test_expect_code 1 ipfs config Identity.privkey 2> ident_out - ' - - test_expect_success "output looks good" ' - test_cmp ident_exp ident_out - ' - - test_expect_success "fix it back" ' - sed -i"~" -e '\''s/privkey/PrivKey/'\'' "$IPFS_PATH/config" - ' - - test_expect_success "'ipfs config show' doesn't include privkey" ' - ipfs config show > show_config && - test_expect_code 1 grep PrivKey show_config - ' - - test_expect_success "'ipfs config replace' injects privkey back" ' - ipfs config replace show_config && - grep "\"PrivKey\":" "$IPFS_PATH/config" | grep -e ": \".\+\"" >/dev/null - ' - - test_expect_success "'ipfs config replace' with privkey errors out" ' - cp "$IPFS_PATH/config" real_config && - test_expect_code 1 ipfs config replace - < real_config 2> replace_out - ' - - test_expect_success "output looks good" ' - echo "Error: setting private key with API is not supported" > replace_expected - test_cmp replace_out replace_expected - ' - - test_expect_success "'ipfs config replace' with lower case privkey errors out" ' - cp "$IPFS_PATH/config" real_config && - sed -i -e '\''s/PrivKey/privkey/'\'' real_config && - test_expect_code 1 ipfs config replace - < real_config 2> replace_out - ' - - test_expect_success "output looks good" ' - echo "Error: setting private key with API is not supported" > replace_expected - test_cmp replace_out replace_expected - ' - - test_expect_success "'ipfs config Swarm.AddrFilters' looks good" ' - ipfs config Swarm.AddrFilters > actual_config && - test $(cat actual_config | wc -l) = 1 - ' - - test_expect_success "copy ipfs config" ' - cp "$IPFS_PATH/config" before_patch - ' - - test_expect_success "'ipfs config profile apply server' works" ' - ipfs config profile apply server - ' - - test_expect_success "backup was created and looks good" ' - test_cmp "$(find "$IPFS_PATH" -name "config-*")" before_patch - ' - - test_expect_success "'ipfs config Swarm.AddrFilters' looks good with server profile" ' - ipfs config Swarm.AddrFilters > actual_config && - test $(cat actual_config | wc -l) = 17 - ' - - test_expect_success "'ipfs config profile apply local-discovery' works" ' - ipfs config profile apply local-discovery - ' - - test_expect_success "'ipfs config Swarm.AddrFilters' looks good with applied local-discovery profile" ' - ipfs config Swarm.AddrFilters > actual_config && - test $(cat actual_config | wc -l) = 1 - ' - - test_profile_apply_revert server local-discovery - - # tests above mess with values this profile changes, need to do that before testing test profile - test_expect_success "ensure test profile is applied fully" ' - ipfs config profile apply test - ' - - # need to do this in reverse as the test profile is already applied in sharness - test_profile_apply_revert default-networking test - - test_profile_apply_dry_run_not_alter server - - test_profile_apply_dry_run_not_alter local-discovery - - test_profile_apply_dry_run_not_alter test - - test_expect_success "'ipfs config profile apply local-discovery --dry-run' looks good with different profile info" ' - ipfs config profile apply local-discovery --dry-run > diff_info && - test `grep "DisableNatPortMap" diff_info | wc -l` = 2 - ' - - test_expect_success "'ipfs config profile apply server --dry-run' looks good with same profile info" ' - ipfs config profile apply server --dry-run > diff_info && - test `grep "DisableNatPortMap" diff_info | wc -l` = 1 - ' - - test_expect_success "'ipfs config profile apply server' looks good with same profile info" ' - ipfs config profile apply server > diff_info && - test `grep "DisableNatPortMap" diff_info | wc -l` = 1 - ' - - test_expect_success "'ipfs config profile apply local-discovery' looks good with different profile info" ' - ipfs config profile apply local-discovery > diff_info && - test `grep "DisableNatPortMap" diff_info | wc -l` = 2 - ' - - test_expect_success "'ipfs config profile apply test' looks good with different profile info" ' - ipfs config profile apply test > diff_info && - test `grep "DisableNatPortMap" diff_info | wc -l` = 2 - ' - - test_expect_success "'ipfs config profile apply test --dry-run' doesn't include privkey" ' - ipfs config profile apply test --dry-run > show_config && - test_expect_code 1 grep PrivKey show_config - ' - - test_expect_success "'ipfs config profile apply test' doesn't include privkey" ' - ipfs config profile apply test > show_config && - test_expect_code 1 grep PrivKey show_config - ' - - # won't work as it changes datastore definition, which makes ipfs not launch - # without converting first - # test_profile_apply_revert badgerds - - test_expect_success "cleanup config backups" ' - find "$IPFS_PATH" -name "config-*" -exec rm {} \; - ' -} - -test_init_ipfs - -# should work offline -test_config_cmd - -# should work online -test_launch_ipfs_daemon -test_config_cmd -test_kill_ipfs_daemon - - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0022-init-default.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0022-init-default.sh deleted file mode 100755 index b51a4418..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0022-init-default.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test init command with default config" - -. lib/test-lib.sh - -cfg_key="Addresses.API" -cfg_val="/ip4/0.0.0.0/tcp/5001" - -# test that init succeeds -test_expect_success "ipfs init succeeds" ' - export IPFS_PATH="$(pwd)/.ipfs" && - echo "IPFS_PATH: \"$IPFS_PATH\"" && - BITS="2048" && - ipfs init --bits="$BITS" >actual_init || - test_fsh cat actual_init -' - -test_expect_success ".ipfs/config has been created" ' - test -f "$IPFS_PATH"/config || - test_fsh ls -al .ipfs -' - -test_expect_success "ipfs config succeeds" ' - ipfs config $cfg_flags "$cfg_key" "$cfg_val" -' - -test_expect_success "ipfs read config succeeds" ' - IPFS_DEFAULT_CONFIG=$(cat "$IPFS_PATH"/config) -' - -test_expect_success "clean up ipfs dir" ' - rm -rf "$IPFS_PATH" -' - -test_expect_success "ipfs init default config succeeds" ' - echo $IPFS_DEFAULT_CONFIG | ipfs init - >actual_init || - test_fsh cat actual_init -' - -test_expect_success "ipfs config output looks good" ' - echo "$cfg_val" >expected && - ipfs config "$cfg_key" >actual && - test_cmp expected actual -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0023-shutdown.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0023-shutdown.sh deleted file mode 100755 index 960e89db..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0023-shutdown.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test shutdown command" - -. lib/test-lib.sh - -test_init_ipfs - -test_launch_ipfs_daemon - -test_expect_success "shutdown succeeds" ' - ipfs shutdown -' - -test_expect_success "daemon no longer running" ' - for i in $(test_seq 1 100) - do - go-sleep 100ms - ! kill -0 $IPFS_PID 2>/dev/null && return - done -' - -test_launch_ipfs_daemon --offline - -test_expect_success "shutdown succeeds" ' - ipfs shutdown -' - -test_expect_success "daemon no longer running" ' - for i in $(test_seq 1 100) - do - go-sleep 100ms - ! kill -0 $IPFS_PID 2>/dev/null && return - done -' -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-datastore-config.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-datastore-config.sh deleted file mode 100755 index 3be75b30..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-datastore-config.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test datastore config" - -. lib/test-lib.sh - -test_init_ipfs - -test_launch_ipfs_daemon -test_kill_ipfs_daemon - -SPEC_NOSYNC=$(cat ../t0024-files/spec-nosync) - -SPEC_NEWSHARDFUN=$(cat ../t0024-files/spec-newshardfun) - -test_expect_success "change runtime value in spec config" ' - ipfs config --json Datastore.Spec "$SPEC_NOSYNC" -' - -test_launch_ipfs_daemon -test_kill_ipfs_daemon - -test_expect_success "change on-disk value in spec config" ' - ipfs config --json Datastore.Spec "$SPEC_NEWSHARDFUN" -' - -test_expect_success "can not launch daemon after on-disk value change" ' - test_must_fail ipfs daemon -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-newshardfun b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-newshardfun deleted file mode 100644 index cad2193f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-newshardfun +++ /dev/null @@ -1,26 +0,0 @@ -{ - "mounts": [ - { - "child": { - "path": "blocks", - "shardFunc": "/repo/flatfs/shard/v1/next-to-last/3", - "sync": true, - "type": "flatfs" - }, - "mountpoint": "/blocks", - "prefix": "flatfs.datastore", - "type": "measure" - }, - { - "child": { - "compression": "none", - "path": "datastore", - "type": "levelds" - }, - "mountpoint": "/", - "prefix": "leveldb.datastore", - "type": "measure" - } - ], - "type": "mount" -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-nosync b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-nosync deleted file mode 100644 index 8037aed6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0024-files/spec-nosync +++ /dev/null @@ -1,26 +0,0 @@ -{ - "mounts": [ - { - "child": { - "path": "blocks", - "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", - "sync": false, - "type": "flatfs" - }, - "mountpoint": "/blocks", - "prefix": "flatfs.datastore", - "type": "measure" - }, - { - "child": { - "compression": "none", - "path": "datastore", - "type": "levelds" - }, - "mountpoint": "/", - "prefix": "leveldb.datastore", - "type": "measure" - } - ], - "type": "mount" -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0025-datastores.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0025-datastores.sh deleted file mode 100755 index 21100e5a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0025-datastores.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test non-standard datastores" - -. lib/test-lib.sh - -test_expect_success "'ipfs init --profile=badgerds' succeeds" ' - BITS="1024" && - ipfs init --bits="$BITS" --profile=badgerds -' - -test_expect_success "'ipfs pin ls' works" ' - ipfs pin ls | wc -l | grep 9 -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0030-mount.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0030-mount.sh deleted file mode 100755 index 9f17f478..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0030-mount.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test mount command" - -. lib/test-lib.sh - -# if in travis CI, dont test mount (no fuse) -if ! test_have_prereq FUSE; then - skip_all='skipping mount tests, fuse not available' - - test_done -fi - -# start iptb + wait for peering -NUM_NODES=5 -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count $NUM_NODES -init -' -startup_cluster $NUM_NODES - - -# test mount failure before mounting properly. -test_expect_success "'ipfs mount' fails when there is no mount dir" ' - tmp_ipfs_mount() { ipfsi 0 mount -f=not_ipfs -n=not_ipns >output 2>output.err; } && - test_must_fail tmp_ipfs_mount -' - -test_expect_success "'ipfs mount' output looks good" ' - test_must_be_empty output && - test_should_contain "not_ipns\|not_ipfs" output.err -' - -test_expect_success "setup and publish default IPNS value" ' - mkdir "$(pwd)/ipfs" "$(pwd)/ipns" && - ipfsi 0 name publish QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn -' - -# make sure stuff is unmounted first -# then mount properly -test_expect_success FUSE "'ipfs mount' succeeds" ' - do_umount "$(pwd)/ipfs" || true && - do_umount "$(pwd)/ipns" || true && - ipfsi 0 mount -f "$(pwd)/ipfs" -n "$(pwd)/ipns" >actual -' - -test_expect_success FUSE "'ipfs mount' output looks good" ' - echo "IPFS mounted at: $(pwd)/ipfs" >expected && - echo "IPNS mounted at: $(pwd)/ipns" >>expected && - test_cmp expected actual -' - -test_expect_success "mount directories cannot be removed while active" ' - test_must_fail rmdir ipfs ipns 2>/dev/null -' - -test_expect_success "unmount directories" ' - do_umount "$(pwd)/ipfs" && - do_umount "$(pwd)/ipns" -' - -test_expect_success "mount directories can be removed after shutdown" ' - rmdir ipfs ipns -' - -test_expect_success 'stop iptb' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0031-mount-publish.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0031-mount-publish.sh deleted file mode 100755 index c37c1161..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0031-mount-publish.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test mount command in conjunction with publishing" - -# imports -. lib/test-lib.sh - -# if in travis CI, dont test mount (no fuse) -if ! test_have_prereq FUSE; then - skip_all='skipping mount tests, fuse not available' - - test_done -fi - -test_init_ipfs - -# start iptb + wait for peering -NUM_NODES=3 -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count $NUM_NODES -force -init && - startup_cluster $NUM_NODES -' - -# pre-mount publish -HASH=$(echo 'hello warld' | ipfsi 0 add -q) -test_expect_success "can publish before mounting /ipns" ' - ipfsi 0 name publish '$HASH' -' - -# mount -IPFS_MOUNT_DIR="$PWD/ipfs" -IPNS_MOUNT_DIR="$PWD/ipns" -test_expect_success FUSE "'ipfs mount' succeeds" ' - ipfsi 0 mount -f "'"$IPFS_MOUNT_DIR"'" -n "'"$IPNS_MOUNT_DIR"'" >actual -' -test_expect_success FUSE "'ipfs mount' output looks good" ' - echo "IPFS mounted at: $PWD/ipfs" >expected && - echo "IPNS mounted at: $PWD/ipns" >>expected && - test_cmp expected actual -' - -test_expect_success "cannot publish after mounting /ipns" ' - echo "Error: cannot manually publish while IPNS is mounted" >expected && - test_must_fail ipfsi 0 name publish '$HASH' 2>actual && - test_cmp expected actual -' - -test_expect_success "unmount /ipns out-of-band" ' - fusermount -u "'"$IPNS_MOUNT_DIR"'" -' - -test_expect_success "can publish after unmounting /ipns" ' - ipfsi 0 name publish '$HASH' -' - -# clean-up ipfs -test_expect_success "unmount /ipfs" ' - fusermount -u "'"$IPFS_MOUNT_DIR"'" -' -iptb stop - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0040-add-and-cat.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0040-add-and-cat.sh deleted file mode 100755 index f1bc3c27..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0040-add-and-cat.sh +++ /dev/null @@ -1,831 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test add and cat commands" - -. lib/test-lib.sh - -test_add_cat_file() { - test_expect_success "ipfs add --help works" ' - ipfs add --help 2> add_help_err1 > /dev/null - ' - - test_expect_success "stdin reading message doesnt show up" ' - test_expect_code 1 grep "ipfs: Reading from" add_help_err1 && - test_expect_code 1 grep "send Ctrl-d to stop." add_help_err1 - ' - - test_expect_success "ipfs help add works" ' - ipfs help add 2> add_help_err2 > /dev/null - ' - - test_expect_success "stdin reading message doesnt show up" ' - test_expect_code 1 grep "ipfs: Reading from" add_help_err2 && - test_expect_code 1 grep "send Ctrl-d to stop." add_help_err2 - ' - - test_expect_success "ipfs add succeeds" ' - echo "Hello Worlds!" >mountdir/hello.txt && - ipfs add mountdir/hello.txt >actual - ' - - test_expect_success "ipfs add output looks good" ' - HASH="QmVr26fY1tKyspEJBniVhqxQeEjhF78XerGiqWAwraVLQH" && - echo "added $HASH hello.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --only-hash succeeds" ' - ipfs add --only-hash mountdir/hello.txt > oh_actual - ' - - test_expect_success "ipfs add --only-hash output looks good" ' - test_cmp expected oh_actual - ' - - test_expect_success "ipfs cat succeeds" ' - ipfs cat "$HASH" >actual - ' - - test_expect_success "ipfs cat output looks good" ' - echo "Hello Worlds!" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with offset succeeds" ' - ipfs cat --offset 10 "$HASH" >actual - ' - - test_expect_success "ipfs cat from offset output looks good" ' - echo "ds!" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat multiple hashes with offset succeeds" ' - ipfs cat --offset 10 "$HASH" "$HASH" >actual - ' - - test_expect_success "ipfs cat from offset output looks good" ' - echo "ds!" >expected && - echo "Hello Worlds!" >>expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat multiple hashes with offset succeeds" ' - ipfs cat --offset 16 "$HASH" "$HASH" >actual - ' - - test_expect_success "ipfs cat from offset output looks good" ' - echo "llo Worlds!" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat from negitive offset should fail" ' - test_expect_code 1 ipfs cat --offset -102 "$HASH" > actual - ' - - test_expect_success "ipfs cat with length succeeds" ' - ipfs cat --length 8 "$HASH" >actual - ' - - test_expect_success "ipfs cat with length output looks good" ' - printf "Hello Wo" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat multiple hashes with offset and length succeeds" ' - ipfs cat --offset 5 --length 15 "$HASH" "$HASH" "$HASH" >actual - ' - - test_expect_success "ipfs cat multiple hashes with offset and length looks good" ' - printf " Worlds!\nHello " >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with exact length succeeds" ' - ipfs cat --length $(ipfs cat "$HASH" | wc -c) "$HASH" >actual - ' - - test_expect_success "ipfs cat with exact length looks good" ' - echo "Hello Worlds!" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with 0 length succeeds" ' - ipfs cat --length 0 "$HASH" >actual - ' - - test_expect_success "ipfs cat with 0 length looks good" ' - : >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with oversized length succeeds" ' - ipfs cat --length 100 "$HASH" >actual - ' - - test_expect_success "ipfs cat with oversized length looks good" ' - echo "Hello Worlds!" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with negitive length should fail" ' - test_expect_code 1 ipfs cat --length -102 "$HASH" > actual - ' - - test_expect_success "ipfs cat /ipfs/file succeeds" ' - ipfs cat /ipfs/$HASH >actual - ' - - test_expect_success "output looks good" ' - echo "Hello Worlds!" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add -t succeeds" ' - ipfs add -t mountdir/hello.txt >actual - ' - - test_expect_success "ipfs add -t output looks good" ' - HASH="QmUkUQgxXeggyaD5Ckv8ZqfW8wHBX6cYyeiyqvVZYzq5Bi" && - echo "added $HASH hello.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --chunker size-32 succeeds" ' - ipfs add --chunker rabin mountdir/hello.txt >actual - ' - - test_expect_success "ipfs add --chunker size-32 output looks good" ' - HASH="QmVr26fY1tKyspEJBniVhqxQeEjhF78XerGiqWAwraVLQH" && - echo "added $HASH hello.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --chunker size-64 succeeds" ' - ipfs add --chunker=size-64 mountdir/hello.txt >actual - ' - - test_expect_success "ipfs add --chunker size-64 output looks good" ' - HASH="QmVr26fY1tKyspEJBniVhqxQeEjhF78XerGiqWAwraVLQH" && - echo "added $HASH hello.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --chunker=size-0 failed" ' - test_expect_code 1 ipfs add -Q --chunker=size-0 mountdir/hello.txt - ' - - test_expect_success "ipfs add --chunker rabin-36-512-1024 succeeds" ' - ipfs add --chunker rabin-36-512-1024 mountdir/hello.txt >actual - ' - - test_expect_success "ipfs add --chunker rabin-36-512-1024 output looks good" ' - HASH="QmVr26fY1tKyspEJBniVhqxQeEjhF78XerGiqWAwraVLQH" && - echo "added $HASH hello.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --chunker rabin-12-512-1024 failed" ' - test_expect_code 1 ipfs add -Q --chunker rabin-12-512-1024 mountdir/hello.txt - ' - - test_expect_success "ipfs add on hidden file succeeds" ' - echo "Hello Worlds!" >mountdir/.hello.txt && - ipfs add mountdir/.hello.txt >actual - ' - - test_expect_success "ipfs add on hidden file output looks good" ' - HASH="QmVr26fY1tKyspEJBniVhqxQeEjhF78XerGiqWAwraVLQH" && - echo "added $HASH .hello.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "add zero length file" ' - touch zero-length-file && - ZEROHASH=$(ipfs add -q zero-length-file) && - echo $ZEROHASH - ' - - test_expect_success "zero length file has correct hash" ' - test "$ZEROHASH" = QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH - ' - - test_expect_success "cat zero length file" ' - ipfs cat $ZEROHASH > zero-length-file_out - ' - - test_expect_success "make sure it looks good" ' - test_cmp zero-length-file zero-length-file_out - ' - - test_expect_success "ipfs add --stdin-name" ' - NAMEHASH="QmdFyxZXsFiP4csgfM5uPu99AvFiKH62CSPDw5TP92nr7w" && - echo "IPFS" | ipfs add --stdin-name file.txt > actual && - echo "added $NAMEHASH file.txt" > expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --stdin-name -w" ' - NAMEHASH="QmdFyxZXsFiP4csgfM5uPu99AvFiKH62CSPDw5TP92nr7w" && - echo "IPFS" | ipfs add -w --stdin-name file.txt | head -n1> actual && - echo "added $NAMEHASH file.txt" > expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with stdin-name" ' - NAMEHASH=$(echo "IPFS" | ipfs add -w --stdin-name file.txt -Q) && - ipfs cat /ipfs/$NAMEHASH/file.txt > expected && - echo "IPFS" > actual && - test_cmp expected actual - ' - - test_expect_success "ipfs add -r ." ' - mkdir test_current_dir && - echo "Hey" > test_current_dir/hey && - mkdir test_current_dir/hello && - echo "World" > test_current_dir/hello/world && - ( cd test_current_dir && - ipfs add -r . | tail -n1 > ../actual && cd ../ ) && - rm -r test_current_dir - ' - - test_expect_success "ipfs add -r . output looks good" ' - echo "added QmZQWnfcqJ6hNkkPvrY9Q5X39GP3jUnUbAV4AbmbbR3Cb1 test_current_dir" > expected - test_cmp expected actual - ' - - test_expect_success "ipfs add -r ./" ' - mkdir test_current_dir && - echo "Hey" > test_current_dir/hey && - mkdir test_current_dir/hello && - echo "World" > test_current_dir/hello/world && - ( cd test_current_dir && - ipfs add -r ./ | tail -n1 > ../actual && cd ../ ) && - rm -r test_current_dir - ' - - test_expect_success "ipfs add -r ./ output looks good" ' - echo "added QmZQWnfcqJ6hNkkPvrY9Q5X39GP3jUnUbAV4AbmbbR3Cb1 test_current_dir" > expected - test_cmp expected actual - ' - - # --cid-base=base32 - - test_expect_success "ipfs add --cid-base=base32 succeeds" ' - echo "base32 test" >mountdir/base32-test.txt && - ipfs add --cid-base=base32 mountdir/base32-test.txt >actual - ' - test_expect_success "ipfs add --cid-base=base32 output looks good" ' - HASHb32="bafybeibyosqxljd2eptb4ebbtvk7pb4aoxzqa6ttdsflty6rsslz5y6i34" && - echo "added $HASHb32 base32-test.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --cid-base=base32 --only-hash succeeds" ' - ipfs add --cid-base=base32 --only-hash mountdir/base32-test.txt > oh_actual - ' - test_expect_success "ipfs add --cid-base=base32 --only-hash output looks good" ' - test_cmp expected oh_actual - ' - - test_expect_success "ipfs add --cid-base=base32 --upgrade-cidv0-in-output=false succeeds" ' - echo "base32 test" >mountdir/base32-test.txt && - ipfs add --cid-base=base32 --upgrade-cidv0-in-output=false mountdir/base32-test.txt >actual - ' - test_expect_success "ipfs add --cid-base=base32 --upgrade-cidv0-in-output=false output looks good" ' - HASHv0=$(cid-fmt -v 0 -b z %s "$HASHb32") && - echo "added $HASHv0 base32-test.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --cid-base=base32 --upgrade-cidv0-in-output=false --only-hash succeeds" ' - ipfs add --cid-base=base32 --upgrade-cidv0-in-output=false --only-hash mountdir/base32-test.txt > oh_actual - ' - test_expect_success "ipfs add --cid-base=base32 --upgrade-cidv0-in-output=false --only-hash output looks good" ' - test_cmp expected oh_actual - ' - - test_expect_success "ipfs cat with base32 hash succeeds" ' - ipfs cat "$HASHb32" >actual - ' - test_expect_success "ipfs cat with base32 hash output looks good" ' - echo "base32 test" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat using CIDv0 hash succeeds" ' - ipfs cat "$HASHv0" >actual - ' - test_expect_success "ipfs cat using CIDv0 hash looks good" ' - echo "base32 test" >expected && - test_cmp expected actual - ' - -} - -test_add_cat_5MB() { - ADD_FLAGS="$1" - EXP_HASH="$2" - - test_expect_success "generate 5MB file using go-random" ' - random 5242880 41 >mountdir/bigfile - ' - - test_expect_success "sha1 of the file looks ok" ' - echo "11145620fb92eb5a49c9986b5c6844efda37e471660e" >sha1_expected && - multihash -a=sha1 -e=hex mountdir/bigfile >sha1_actual && - test_cmp sha1_expected sha1_actual - ' - - test_expect_success "'ipfs add $ADD_FLAGS bigfile' succeeds" ' - ipfs add $ADD_FLAGS mountdir/bigfile >actual || - test_fsh cat daemon_err - ' - - test_expect_success "'ipfs add bigfile' output looks good" ' - echo "added $EXP_HASH bigfile" >expected && - test_cmp expected actual - ' - test_expect_success "'ipfs cat' succeeds" ' - ipfs cat "$EXP_HASH" >actual - ' - - test_expect_success "'ipfs cat' output looks good" ' - test_cmp mountdir/bigfile actual - ' - - test_expect_success FUSE "cat ipfs/bigfile succeeds" ' - cat "ipfs/$EXP_HASH" >actual - ' - - test_expect_success FUSE "cat ipfs/bigfile looks good" ' - test_cmp mountdir/bigfile actual - ' - - test_expect_success "remove hash" ' - ipfs pin rm "$EXP_HASH" && - ipfs block rm "$EXP_HASH" - ' - - test_expect_success "get base32 version of CID" ' - ipfs cid base32 $EXP_HASH > base32_cid && - BASE32_HASH=`cat base32_cid` - ' - - test_expect_success "ipfs add --cid-base=base32 bigfile' succeeds" ' - ipfs add $ADD_FLAGS --cid-base=base32 mountdir/bigfile >actual || - test_fsh cat daemon_err - ' - - test_expect_success "'ipfs add bigfile --cid-base=base32' output looks good" ' - echo "added $BASE32_HASH bigfile" >expected && - test_cmp expected actual - ' - - test_expect_success "'ipfs cat $BASE32_HASH' succeeds" ' - ipfs cat "$BASE32_HASH" >actual - ' -} - -test_add_cat_raw() { - test_expect_success "add a small file with raw-leaves" ' - echo "foobar" > afile && - HASH=$(ipfs add -q --raw-leaves afile) - ' - - test_expect_success "cat that small file" ' - ipfs cat $HASH > afile_out - ' - - test_expect_success "make sure it looks good" ' - test_cmp afile afile_out - ' - - test_expect_success "add zero length file with raw-leaves" ' - touch zero-length-file && - ZEROHASH=$(ipfs add -q --raw-leaves zero-length-file) && - echo $ZEROHASH - ' - - test_expect_success "zero length file has correct hash" ' - test "$ZEROHASH" = zb2rhmy65F3REf8SZp7De11gxtECBGgUKaLdiDj7MCGCHxbDW - ' - - test_expect_success "cat zero length file" ' - ipfs cat $ZEROHASH > zero-length-file_out - ' - - test_expect_success "make sure it looks good" ' - test_cmp zero-length-file zero-length-file_out - ' -} - -test_add_cat_derefargs() { - test_expect_success "create and hash zero length file" ' - touch zero-length-file && - ZEROHASH=$(ipfs add -q -n zero-length-file) - ' - - test_expect_success "create symlink and add with dereferenced arguments" ' - ln -s zero-length-file symlink-to-zero && - HASH=$(ipfs add -q -n --dereference-args symlink-to-zero) && - test $HASH = $ZEROHASH - ' -} - -test_add_cat_expensive() { - ADD_FLAGS="$1" - HASH="$2" - - test_expect_success EXPENSIVE "generate 100MB file using go-random" ' - random 104857600 42 >mountdir/bigfile - ' - - test_expect_success EXPENSIVE "sha1 of the file looks ok" ' - echo "1114885b197b01e0f7ff584458dc236cb9477d2e736d" >sha1_expected && - multihash -a=sha1 -e=hex mountdir/bigfile >sha1_actual && - test_cmp sha1_expected sha1_actual - ' - - test_expect_success EXPENSIVE "ipfs add $ADD_FLAGS bigfile succeeds" ' - ipfs add $ADD_FLAGS mountdir/bigfile >actual - ' - - test_expect_success EXPENSIVE "ipfs add bigfile output looks good" ' - echo "added $HASH bigfile" >expected && - test_cmp expected actual - ' - - test_expect_success EXPENSIVE "ipfs cat succeeds" ' - ipfs cat "$HASH" | multihash -a=sha1 -e=hex >sha1_actual - ' - - test_expect_success EXPENSIVE "ipfs cat output looks good" ' - ipfs cat "$HASH" >actual && - test_cmp mountdir/bigfile actual - ' - - test_expect_success EXPENSIVE "ipfs cat output hashed looks good" ' - echo "1114885b197b01e0f7ff584458dc236cb9477d2e736d" >sha1_expected && - test_cmp sha1_expected sha1_actual - ' - - test_expect_success FUSE,EXPENSIVE "cat ipfs/bigfile succeeds" ' - cat "ipfs/$HASH" | multihash -a=sha1 -e=hex >sha1_actual - ' - - test_expect_success FUSE,EXPENSIVE "cat ipfs/bigfile looks good" ' - test_cmp sha1_expected sha1_actual - ' -} - -test_add_named_pipe() { - err_prefix=$1 - test_expect_success "useful error message when adding a named pipe" ' - mkfifo named-pipe && - test_expect_code 1 ipfs add named-pipe 2>actual && - STAT=$(generic_stat named-pipe) && - rm named-pipe && - grep "Error: unrecognized file type for named-pipe: $STAT" actual && - grep USAGE actual && - grep "ipfs add" actual - ' - - test_expect_success "useful error message when recursively adding a named pipe" ' - mkdir -p named-pipe-dir && - mkfifo named-pipe-dir/named-pipe && - STAT=$(generic_stat named-pipe-dir/named-pipe) && - test_expect_code 1 ipfs add -r named-pipe-dir 2>actual && - printf "Error:$err_prefix unrecognized file type for named-pipe-dir/named-pipe: $STAT\n" >expected && - rm named-pipe-dir/named-pipe && - rmdir named-pipe-dir && - test_cmp expected actual - ' -} - -test_add_pwd_is_symlink() { - test_expect_success "ipfs add -r adds directory content when ./ is symlink" ' - mkdir hellodir && - echo "World" > hellodir/world && - ln -s hellodir hellolink && - ( cd hellolink && - ipfs add -r . > ../actual ) && - grep "added Qma9CyFdG5ffrZCcYSin2uAETygB25cswVwEYYzwfQuhTe" actual && - rm -r hellodir - ' -} - -test_launch_ipfs_daemon_and_mount - -test_expect_success "'ipfs add --help' succeeds" ' - ipfs add --help >actual -' - -test_expect_success "'ipfs add --help' output looks good" ' - egrep "ipfs add.*" actual >/dev/null || - test_fsh cat actual -' - -test_expect_success "'ipfs help add' succeeds" ' - ipfs help add >actual -' - -test_expect_success "'ipfs help add' output looks good" ' - egrep "ipfs add.*" actual >/dev/null || - test_fsh cat actual -' - -test_expect_success "'ipfs cat --help' succeeds" ' - ipfs cat --help >actual -' - -test_expect_success "'ipfs cat --help' output looks good" ' - egrep "ipfs cat.*" actual >/dev/null || - test_fsh cat actual -' - -test_expect_success "'ipfs help cat' succeeds" ' - ipfs help cat >actual -' - -test_expect_success "'ipfs help cat' output looks good" ' - egrep "ipfs cat.*" actual >/dev/null || - test_fsh cat actual -' - -test_add_cat_file - -test_expect_success "ipfs cat succeeds with stdin opened (issue #1141)" ' - cat mountdir/hello.txt | while read line; do ipfs cat "$HASH" >actual || exit; done -' - -test_expect_success "ipfs cat output looks good" ' - cat mountdir/hello.txt >expected && - test_cmp expected actual -' - -test_expect_success "ipfs cat accept hash from built input" ' - echo "$HASH" | ipfs cat >actual -' - -test_expect_success "ipfs cat output looks good" ' - test_cmp expected actual -' - -test_expect_success FUSE "cat ipfs/stuff succeeds" ' - cat "ipfs/$HASH" >actual -' - -test_expect_success FUSE "cat ipfs/stuff looks good" ' - test_cmp expected actual -' - -test_expect_success "'ipfs add -q' succeeds" ' - echo "Hello Venus!" >mountdir/venus.txt && - ipfs add -q mountdir/venus.txt >actual -' - -test_expect_success "'ipfs add -q' output looks good" ' - HASH="QmU5kp3BH3B8tnWUU2Pikdb2maksBNkb92FHRr56hyghh4" && - echo "$HASH" >expected && - test_cmp expected actual -' - -test_expect_success "'ipfs add -q' with stdin input succeeds" ' - echo "Hello Jupiter!" | ipfs add -q >actual -' - -test_expect_success "'ipfs add -q' output looks good" ' - HASH="QmUnvPcBctVTAcJpigv6KMqDvmDewksPWrNVoy1E1WP5fh" && - echo "$HASH" >expected && - test_cmp expected actual -' - -test_expect_success "'ipfs cat' succeeds" ' - ipfs cat "$HASH" >actual -' - -test_expect_success "ipfs cat output looks good" ' - echo "Hello Jupiter!" >expected && - test_cmp expected actual -' - -test_expect_success "'ipfs add' with stdin input succeeds" ' - printf "Hello Neptune!\nHello Pluton!" | ipfs add >actual -' - -test_expect_success "'ipfs add' output looks good" ' - HASH="QmZDhWpi8NvKrekaYYhxKCdNVGWsFFe1CREnAjP1QbPaB3" && - echo "added $HASH $HASH" >expected && - test_cmp expected actual -' - -test_expect_success "'ipfs cat' with built input succeeds" ' - echo "$HASH" | ipfs cat >actual -' - -test_expect_success "ipfs cat with built input output looks good" ' - printf "Hello Neptune!\nHello Pluton!" >expected && - test_cmp expected actual -' - -add_directory() { - EXTRA_ARGS=$1 - - test_expect_success "'ipfs add -r $EXTRA_ARGS' succeeds" ' - mkdir mountdir/planets && - echo "Hello Mars!" >mountdir/planets/mars.txt && - echo "Hello Venus!" >mountdir/planets/venus.txt && - ipfs add -r $EXTRA_ARGS mountdir/planets >actual - ' - - test_expect_success "'ipfs add -r $EXTRA_ARGS' output looks good" ' - echo "added $MARS planets/mars.txt" >expected && - echo "added $VENUS planets/venus.txt" >>expected && - echo "added $PLANETS planets" >>expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat accept many hashes from built input" ' - { echo "$MARS"; echo "$VENUS"; } | ipfs cat >actual - ' - - test_expect_success "ipfs cat output looks good" ' - cat mountdir/planets/mars.txt mountdir/planets/venus.txt >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat accept many hashes as args" ' - ipfs cat "$MARS" "$VENUS" >actual - ' - - test_expect_success "ipfs cat output looks good" ' - test_cmp expected actual - ' - - test_expect_success "ipfs cat with both arg and stdin" ' - echo "$MARS" | ipfs cat "$VENUS" >actual - ' - - test_expect_success "ipfs cat output looks good" ' - cat mountdir/planets/venus.txt >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs cat with two args and stdin" ' - echo "$MARS" | ipfs cat "$VENUS" "$VENUS" >actual - ' - - test_expect_success "ipfs cat output looks good" ' - cat mountdir/planets/venus.txt mountdir/planets/venus.txt >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs add --quieter succeeds" ' - ipfs add -r -Q $EXTRA_ARGS mountdir/planets >actual - ' - - test_expect_success "ipfs add --quieter returns only one correct hash" ' - echo "$PLANETS" > expected && - test_cmp expected actual - ' - - test_expect_success "cleanup" ' - rm -r mountdir/planets - ' -} - -PLANETS="QmWSgS32xQEcXMeqd3YPJLrNBLSdsfYCep2U7CFkyrjXwY" -MARS="QmPrrHqJzto9m7SyiRzarwkqPcCSsKR2EB1AyqJfe8L8tN" -VENUS="QmU5kp3BH3B8tnWUU2Pikdb2maksBNkb92FHRr56hyghh4" -add_directory - -PLANETS="QmfWfQfKCY5Ukv9peBbxM5vqWM9BzmqUSXvdCgjT2wsiBT" -MARS="zb2rhZdTkQNawVajsTNiYc9cTPHqgLdJVvBRkZok9RjkgQYRU" -VENUS="zb2rhn6TGvnUaMAg4VV4y9HVx5W42HihcH4jsyrDv8mkepFqq" -add_directory '--raw-leaves' - -PLANETS="zdj7Wnbun6P41Z5ddTkNvZaDTmQ8ZLdiKFcJrL9sV87rPScMP" -MARS="zb2rhZdTkQNawVajsTNiYc9cTPHqgLdJVvBRkZok9RjkgQYRU" -VENUS="zb2rhn6TGvnUaMAg4VV4y9HVx5W42HihcH4jsyrDv8mkepFqq" -add_directory '--cid-version=1' - -PLANETS="zdj7WiC51v78BjBcmZR7uuBvmDWxSn5EDr5MiyTwE18e8qvb7" -MARS="zdj7WWx6fGNrNGkdpkuTAxCjKbQ1pPtarqA6VQhedhLTZu34J" -VENUS="zdj7WbB1BUF8WejmVpQCmMLd1RbPnxJtvAj1Lep6eTmXRFbrz" -add_directory '--cid-version=1 --raw-leaves=false' - -PLANETS="zDMZof1kqxDAx9myQbXsyWwyWP9qRPsXsWH7XuTz6isT7Rh1S6nM" -MARS="zCT5htkdz1ZBHYVQXFQn51ngPXLVqaHSWoae87V1d6e9qWpSAjXw" -VENUS="zCT5htke5JcdoMM4WhmUKXWf2QC3TnQToqGZHH1WsZERv6kPhFPg" -add_directory '--hash=blake2b-256' - -test_expect_success "'ipfs add -rn' succeeds" ' - mkdir -p mountdir/moons/jupiter && - mkdir -p mountdir/moons/saturn && - echo "Hello Europa!" >mountdir/moons/jupiter/europa.txt && - echo "Hello Titan!" >mountdir/moons/saturn/titan.txt && - echo "hey youre no moon!" >mountdir/moons/mercury.txt && - ipfs add -rn mountdir/moons >actual -' - -test_expect_success "'ipfs add -rn' output looks good" ' - MOONS="QmVKvomp91nMih5j6hYBA8KjbiaYvEetU2Q7KvtZkLe9nQ" && - EUROPA="Qmbjg7zWdqdMaK2BucPncJQDxiALExph5k3NkQv5RHpccu" && - JUPITER="QmS5mZddhFPLWFX3w6FzAy9QxyYkaxvUpsWCtZ3r7jub9J" && - SATURN="QmaMagZT4rTE7Nonw8KGSK4oe1bh533yhZrCo1HihSG8FK" && - TITAN="QmZzppb9WHn552rmRqpPfgU5FEiHH6gDwi3MrB9cTdPwdb" && - MERCURY="QmUJjVtnN8YEeYcS8VmUeWffTWhnMQAkk5DzZdKnPhqUdK" && - echo "added $EUROPA moons/jupiter/europa.txt" >expected && - echo "added $MERCURY moons/mercury.txt" >>expected && - echo "added $TITAN moons/saturn/titan.txt" >>expected && - echo "added $JUPITER moons/jupiter" >>expected && - echo "added $SATURN moons/saturn" >>expected && - echo "added $MOONS moons" >>expected && - test_cmp expected actual -' - -test_expect_success "go-random is installed" ' - type random -' - -test_add_cat_5MB "" "QmSr7FqYkxYWGoSfy8ZiaMWQ5vosb18DQGCzjwEQnVHkTb" - -test_add_cat_5MB --raw-leaves "QmbdLHCmdi48eM8T7D67oXjA1S2Puo8eMfngdHhdPukFd6" - -# note: the specified hash implies that internal nodes are stored -# using CidV1 and leaves are stored using raw blocks -test_add_cat_5MB --cid-version=1 "zdj7WiiaedqVBXjX4SNqx3jfuZideDqdLYnDzCDJ66JDMK9o2" - -# note: the specified hash implies that internal nodes are stored -# using CidV1 and leaves are stored using CidV1 but using the legacy -# format (i.e. not raw) -test_add_cat_5MB '--cid-version=1 --raw-leaves=false' "zdj7WfgEsj897BBZj2mcfsRLhaPZcCixPV2G7DkWgF1Wdr64P" - -# note: --hash=blake2b-256 implies --cid-version=1 which implies --raw-leaves=true -# the specified hash represents the leaf nodes stored as raw leaves and -# encoded with the blake2b-256 hash funtion -test_add_cat_5MB '--hash=blake2b-256' "zDMZof1kuxn7ebvKyvmkYLPvocSvFYxxAWT1yQBN1wWiXXr7w5mY" - -# the specified hash represents the leaf nodes stored as protoful nodes and -# encoded with the blake2b-256 hash funtion -test_add_cat_5MB '--hash=blake2b-256 --raw-leaves=false' "zDMZof1krz3SFTyhboRyWZyUP2qNgVdn9wjtaX211aHJ8WgeyT9v" - -test_add_cat_expensive "" "QmU9SWAPPmNEKZB8umYMmjYvN7VyHqABNvdA6GUi4MMEz3" - -# note: the specified hash implies that internal nodes are stored -# using CidV1 and leaves are stored using raw blocks -test_add_cat_expensive "--cid-version=1" "zdj7WcatQrtuE4WMkS4XsfsMixuQN2po4irkYhqxeJyW1wgCq" - -# note: --hash=blake2b-256 implies --cid-version=1 which implies --raw-leaves=true -# the specified hash represents the leaf nodes stored as raw leaves and -# encoded with the blake2b-256 hash funtion -test_add_cat_expensive '--hash=blake2b-256' "zDMZof1kwndounDzQCANUHjiE3zt1mPEgx7RE3JTHoZrRRa79xcv" - -test_add_named_pipe " Post http://$API_ADDR/api/v0/add?chunker=size-262144&encoding=json&hash=sha2-256&inline-limit=32&pin=true&progress=true&recursive=true&stream-channels=true:" - -test_add_pwd_is_symlink - -test_add_cat_raw - -test_expect_success "ipfs add --cid-version=9 fails" ' - echo "context" > afile.txt && - test_must_fail ipfs add --cid-version=9 afile.txt 2>&1 | tee add_out && - grep -q "unknown CID version" add_out -' - -test_kill_ipfs_daemon - -# should work offline - -test_add_cat_file - -test_add_cat_raw - -test_expect_success "ipfs add --only-hash succeeds" ' - echo "unknown content for only-hash" | ipfs add --only-hash -q > oh_hash -' - -test_add_cat_derefargs - -#TODO: this doesn't work when online hence separated out from test_add_cat_file -test_expect_success "ipfs cat file fails" ' - test_must_fail ipfs cat $(cat oh_hash) -' - -test_add_named_pipe "" - -test_add_pwd_is_symlink - -# Test daemon in offline mode -test_launch_ipfs_daemon --offline - -test_add_cat_file - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0041-ping.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0041-ping.sh deleted file mode 100755 index 268e7e68..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0041-ping.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test ping command" - -. lib/test-lib.sh - -test_init_ipfs - -BAD_PEER="QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJx" - -# start iptb + wait for peering -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count 2 -init -' - -startup_cluster 2 - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_1=$(iptb attr get 1 id) -' - -test_expect_success "test ping other" ' - ipfsi 0 ping -n2 -- "$PEERID_1" && - ipfsi 1 ping -n2 -- "$PEERID_0" -' - -test_expect_success "test ping unreachable peer" ' - printf "Looking up peer %s\n" "$BAD_PEER" > bad_ping_exp && - printf "Peer lookup error: routing: not found\n" >> bad_ping_exp && - ipfsi 0 ping -n2 -- "$BAD_PEER" > bad_ping_actual && - test_cmp bad_ping_exp bad_ping_actual -' - -test_expect_success "test ping self" ' - ! ipfsi 0 ping -n2 -- "$PEERID_0" && - ! ipfsi 1 ping -n2 -- "$PEERID_1" -' - -test_expect_success "test ping 0" ' - ! ipfsi 0 ping -n0 -- "$PEERID_1" && - ! ipfsi 1 ping -n0 -- "$PEERID_0" -' - -test_expect_success 'stop iptb' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0042-add-skip.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0042-add-skip.sh deleted file mode 100755 index 1bdea660..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0042-add-skip.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test add and cat commands" - -. lib/test-lib.sh - -test_add_skip() { - - test_expect_success "'ipfs add -r' with hidden file succeeds" ' - mkdir -p mountdir/planets/.asteroids && - echo "Hello Mars" >mountdir/planets/mars.txt && - echo "Hello Venus" >mountdir/planets/venus.txt && - echo "Hello Pluto" >mountdir/planets/.pluto.txt && - echo "Hello Charon" >mountdir/planets/.charon.txt && - echo "Hello Ceres" >mountdir/planets/.asteroids/ceres.txt && - echo "Hello Pallas" >mountdir/planets/.asteroids/pallas.txt && - ipfs add -r mountdir/planets >actual - ' - - test_expect_success "'ipfs add -r' did not include . files" ' - cat >expected <<-\EOF && -added QmZy3khu7qf696i5HtkgL2NotsCZ8wzvNZJ1eUdA5n8KaV planets/mars.txt -added QmQnv4m3Q5512zgVtpbJ9z85osQrzZzGRn934AGh6iVEXz planets/venus.txt -added QmR8nD1Vzk5twWVC6oShTHvv7mMYkVh6dApCByBJyV2oj3 planets -EOF - test_cmp expected actual - ' - - test_expect_success "'ipfs add -r --hidden' succeeds" ' - ipfs add -r --hidden mountdir/planets >actual - ' - - test_expect_success "'ipfs add -r --hidden' did include . files" ' - cat >expected <<-\EOF && -added QmcAREBcjgnUpKfyFmUGnfajA1NQS5ydqRp7WfqZ6JF8Dx planets/.asteroids/ceres.txt -added QmZ5eaLybJ5GUZBNwy24AA9EEDTDpA4B8qXnuN3cGxu2uF planets/.asteroids/pallas.txt -added QmaowqjedBkUrMUXgzt9c2ZnAJncM9jpJtkFfgdFstGr5a planets/.charon.txt -added QmU4zFD5eJtRBsWC63AvpozM9Atiadg9kPVTuTrnCYJiNF planets/.pluto.txt -added QmZy3khu7qf696i5HtkgL2NotsCZ8wzvNZJ1eUdA5n8KaV planets/mars.txt -added QmQnv4m3Q5512zgVtpbJ9z85osQrzZzGRn934AGh6iVEXz planets/venus.txt -added Qmf6rbs5GF85anDuoxpSAdtuZPM9D2Yt3HngzjUVSQ7kDV planets/.asteroids -added QmetajtFdmzhWYodAsZoVZSiqpeJDAiaw2NwbM3xcWcpDj planets -EOF - test_cmp expected actual - ' - - test_expect_success "'ipfs add' includes hidden files given explicitly even without --hidden" ' - mkdir -p mountdir/dotfiles && - echo "set nocompatible" > mountdir/dotfiles/.vimrc - cat >expected <<-\EOF && -added QmT4uMRDCN7EMpFeqwvKkboszbqeW1kWVGrBxBuCGqZcQc .vimrc -EOF - ipfs add mountdir/dotfiles/.vimrc >actual - cat actual - test_cmp expected actual - ' - -} - -# should work offline -test_init_ipfs -test_add_skip - -# should work online -test_launch_ipfs_daemon -test_add_skip -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0043-add-w.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0043-add-w.sh deleted file mode 100755 index 6624e0af..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0043-add-w.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test add -w" - -add_w_m='QmazHkwx6mPmmCEi1jR5YzjjQd1g5XzKfYQLzRAg7x5uUk' - -add_w_1='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93 -added Qmf82PSsMpUHcrqxa69KG6Qp5yeK7K9BTizXgG3nvzWcNG ' - -add_w_12='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93 -added QmVb4ntSZZnT2J2zvCmXKMJc52cmZYH6AB37MzeYewnkjs 4u6ead -added QmZPASVB6EsADrLN8S2sak34zEHL8mx4TAVsPJU9cNnQQJ ' - -add_w_21='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93 -added QmVb4ntSZZnT2J2zvCmXKMJc52cmZYH6AB37MzeYewnkjs 4u6ead -added QmZPASVB6EsADrLN8S2sak34zEHL8mx4TAVsPJU9cNnQQJ ' - -add_w_d1='added QmPcaX84tDiTfzdTn8GQxexodgeWH6mHjSss5Zfr5ojssb _jo7/-s782qgs -added QmaVBqquUuXKjkyWHXaXfsaQUxAnsCKS95VRDHU8PzGA4K _jo7/15totauzkak- -added QmaAHFG8cmhW3WLjofx5siSp44VV25ETN6ThzrU8iAqpkR _jo7/galecuirrj4r -added QmeuSfhJNKwBESp1W9H8cfoMdBfW3AeHQDWXbNXQJYWp53 _jo7/mzo50r-1xidf5zx -added QmYC3u5jGWuyFwvTxtvLYm2K3SpWZ31tg3NjpVVvh9cJaJ _jo7/wzvsihy -added QmQkib3f9XNX5sj6WEahLUPFpheTcwSRJwUCSvjcv8b9by _jo7 -added QmNQoesMj1qp8ApE51NbtTjFYksyzkezPD4cat7V2kzbKN ' - -add_w_d1_v1='added zb2rhjXyHbbgwgtAUwHtpBd8iXLgK22ZjVmaiJSMNmqBTpXS3 _jo7/-s782qgs -added zb2rhi6PQqQFbS4QsvrV8sL9ue1fvFoqtLVqogNPCZri8rquN _jo7/15totauzkak- -added zb2rhjQthC6LgnNZztpsF9LcfPxznh3cJnmzUx8dnSqNqJ8Yz _jo7/galecuirrj4r -added zb2rhYh9hgDw1DpaZfLUU5MkKNezPWjPTkgGQPiTyLpZYu3jn _jo7/mzo50r-1xidf5zx -added zb2rhZK5xwEUhY4uskfj4sn979aCH27cnqseVVznYDn7NFWtt _jo7/wzvsihy -added zdj7WfNC8EZchqskczxsgrVEqwLVpksQ9B5kopf391jVbCGwv _jo7 -added zdj7Wn5jf686mfYE8gUKWzY7aTjp5eAQcecD8q4ZtqLJbDNxe ' - -add_w_d2='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93 -added QmU9Jqks8TPu4vFr6t7EKkAKQrSJuEujNj1AkzoCeTEDFJ gnz66h/1k0xpx34 -added QmSLYZycXAufRw3ePMVH2brbtYWCcWsmksGLbHcT8ia9Ke gnz66h/9cwudvacx -added QmfYmpCCAMU9nLe7xbrYsHf5z2R2GxeQnsm4zavUhX9vq2 gnz66h/9ximv51cbo8 -added QmWgEE4e2kfx3b8HZcBk5cLrfhoi8kTMQP2MipgPhykuV3 gnz66h/b54ygh6gs -added QmcLbqEqhREGednc6mrVtanee4WHKp5JnUfiwTTHCJwuDf gnz66h/lbl5 -added QmPcaX84tDiTfzdTn8GQxexodgeWH6mHjSss5Zfr5ojssb _jo7/-s782qgs -added QmaVBqquUuXKjkyWHXaXfsaQUxAnsCKS95VRDHU8PzGA4K _jo7/15totauzkak- -added QmaAHFG8cmhW3WLjofx5siSp44VV25ETN6ThzrU8iAqpkR _jo7/galecuirrj4r -added QmeuSfhJNKwBESp1W9H8cfoMdBfW3AeHQDWXbNXQJYWp53 _jo7/mzo50r-1xidf5zx -added QmYC3u5jGWuyFwvTxtvLYm2K3SpWZ31tg3NjpVVvh9cJaJ _jo7/wzvsihy -added QmVaKAt2eVftNKFfKhiBV7Mu5HjCugffuLqWqobSSFgiA7 h3qpecj0 -added QmQkib3f9XNX5sj6WEahLUPFpheTcwSRJwUCSvjcv8b9by _jo7 -added QmVPwNy8pZegpsNmsjjZvdTQn4uCeuZgtzhgWhRSQWjK9x gnz66h -added QmTmc46fhKC8Liuh5soy1VotdnHcqLu3r6HpPGwDZCnqL1 ' - -add_w_r='QmcCksBMDuuyuyfAMMNzEAx6Z7jTrdRy9a23WpufAhG9ji' - -. lib/test-lib.sh - -test_add_w() { - - test_expect_success "go-random-files is installed" ' - type random-files - ' - - test_expect_success "random-files generates test files" ' - random-files --seed 7547632 --files 5 --dirs 2 --depth 3 m && - echo "$add_w_m" >expected && - ipfs add -q -r m | tail -n1 >actual && - test_sort_cmp expected actual - ' - - # test single file - test_expect_success "ipfs add -w (single file) succeeds" ' - ipfs add -w m/4r93 >actual - ' - - test_expect_success "ipfs add -w (single file) is correct" ' - echo "$add_w_1" >expected && - test_sort_cmp expected actual - ' - - # test two files together - test_expect_success "ipfs add -w (multiple) succeeds" ' - ipfs add -w m/4r93 m/4u6ead >actual - ' - - test_expect_success "ipfs add -w (multiple) is correct" ' - echo "$add_w_12" >expected && - test_sort_cmp expected actual - ' - - test_expect_success "ipfs add -w (multiple) succeeds" ' - ipfs add -w m/4u6ead m/4r93 >actual - ' - - test_expect_success "ipfs add -w (multiple) orders" ' - echo "$add_w_21" >expected && - test_sort_cmp expected actual - ' - - # test a directory - test_expect_success "ipfs add -w -r (dir) succeeds" ' - ipfs add -r -w m/t_1wp-8a2/_jo7 >actual - ' - - test_expect_success "ipfs add -w -r (dir) is correct" ' - echo "$add_w_d1" >expected && - test_sort_cmp expected actual - ' - - # test files and directory - test_expect_success "ipfs add -w -r succeeds" ' - ipfs add -w -r m/t_1wp-8a2/h3qpecj0 \ - m/ha6f0x7su6/gnz66h m/t_1wp-8a2/_jo7 m/4r93 >actual - ' - - test_expect_success "ipfs add -w -r is correct" ' - echo "$add_w_d2" >expected && - test_sort_cmp expected actual - ' - - # test -w -r m/* == -r m - test_expect_success "ipfs add -w -r m/* == add -r m succeeds" ' - ipfs add -q -w -r m/* | tail -n1 >actual - ' - - test_expect_success "ipfs add -w -r m/* == add -r m is correct" ' - echo "$add_w_m" >expected && - test_sort_cmp expected actual - ' - - # test repeats together - test_expect_success "ipfs add -w (repeats) succeeds" ' - ipfs add -q -w -r m/t_1wp-8a2/h3qpecj0 m/ha6f0x7su6/gnz66h \ - m/t_1wp-8a2/_jo7 m/4r93 m/t_1wp-8a2 m/t_1wp-8a2 m/4r93 \ - m/4r93 m/ha6f0x7su6/_rwujlf3qh_g08 \ - m/ha6f0x7su6/gnz66h/9cwudvacx | tail -n1 >actual - ' - - test_expect_success "ipfs add -w (repeats) is correct" ' - echo "$add_w_r" >expected && - test_sort_cmp expected actual - ' - - test_expect_success "ipfs add -w -r (dir) --cid-version=1 succeeds" ' - ipfs add -r -w --cid-version=1 m/t_1wp-8a2/_jo7 >actual - ' - - test_expect_success "ipfs add -w -r (dir) --cid-version=1 is correct" ' - echo "$add_w_d1_v1" >expected && - test_sort_cmp expected actual - ' - - test_expect_success "ipfs add -w -r -n (dir) --cid-version=1 succeeds" ' - ipfs add -r -w -n --cid-version=1 m/t_1wp-8a2/_jo7 >actual - ' - - test_expect_success "ipfs add -w -r -n (dir) --cid-version=1 is correct" ' - echo "$add_w_d1_v1" > expected && - test_sort_cmp expected actual - ' -} - -test_init_ipfs - -test_add_w - -test_launch_ipfs_daemon - -test_add_w - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0044-add-symlink.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0044-add-symlink.sh deleted file mode 100755 index 40650eb7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0044-add-symlink.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test add -w" - -. lib/test-lib.sh - -test_expect_success "creating files succeeds" ' - mkdir -p files/foo && - mkdir -p files/bar && - echo "some text" > files/foo/baz && - ln -s files/foo/baz files/bar/baz && - ln -s files/does/not/exist files/bad -' - -test_add_symlinks() { - test_expect_success "ipfs add files succeeds" ' - ipfs add -q -r files >filehash_all && - tail -n 1 filehash_all >filehash_out - ' - - test_expect_success "output looks good" ' - echo QmWdiHKoeSW8G1u7ATCgpx4yMoUhYaJBQGkyPLkS9goYZ8 > filehash_exp && - test_cmp filehash_exp filehash_out - ' - - test_expect_success "ipfs add --cid-version=1 files succeeds" ' - ipfs add -q -r --cid-version=1 files >filehash_all && - tail -n 1 filehash_all >filehash_out - ' - - test_expect_success "output looks good" ' - # note this hash implies all internal nodes are stored using CidV1 - echo zdj7WZDQ2xMmr4qn6aRZTsE9fCUs2KmvPigpHdpssqUobwcWK > filehash_exp && - test_cmp filehash_exp filehash_out - ' - - test_expect_success "adding a symlink adds the link itself" ' - ipfs add -q files/bar/baz > goodlink_out - ' - - test_expect_success "output looks good" ' - echo "QmdocmZeF7qwPT9Z8SiVhMSyKA2KKoA2J7jToW6z6WBmxR" > goodlink_exp && - test_cmp goodlink_exp goodlink_out - ' - - test_expect_success "adding a broken symlink works" ' - ipfs add -q files/bad > badlink_out - ' - - test_expect_success "output looks good" ' - echo "QmWYN8SEXCgNT2PSjB6BnxAx6NJQtazWoBkTRH9GRfPFFQ" > badlink_exp && - test_cmp badlink_exp badlink_out - ' - - test_expect_success "adding with symlink in middle of path is same as\ -adding with no symlink" ' - mkdir -p files2/a/b/c && - echo "some other text" > files2/a/b/c/foo && - ln -s b files2/a/d - ipfs add -rq files2/a/b/c > no_sym && - ipfs add -rq files2/a/d/c > sym && - test_cmp no_sym sym - ' -} - -test_init_ipfs - -test_add_symlinks - -test_launch_ipfs_daemon - -test_add_symlinks - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0045-ls.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0045-ls.sh deleted file mode 100755 index 57b96c23..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0045-ls.sh +++ /dev/null @@ -1,334 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ls command" - -. lib/test-lib.sh - -test_init_ipfs - -test_ls_cmd() { - test_expect_success "'ipfs add -r testData' succeeds" ' - mkdir -p testData testData/d1 testData/d2 && - echo "test" >testData/f1 && - echo "data" >testData/f2 && - echo "hello" >testData/d1/a && - random 128 42 >testData/d1/128 && - echo "world" >testData/d2/a && - random 1024 42 >testData/d2/1024 && - ipfs add -r testData >actual_add - ' - - test_expect_success "'ipfs add' output looks good" ' - cat <<-\EOF >expected_add && -added QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe testData/d1/128 -added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN testData/d1/a -added QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd testData/d2/1024 -added QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL testData/d2/a -added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH testData/f1 -added QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M testData/f2 -added QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss testData/d1 -added QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy testData/d2 -added QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj testData -EOF - test_cmp expected_add actual_add - ' - - test_expect_success "'ipfs ls ' succeeds" ' - ipfs ls QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls - ' - - test_expect_success "'ipfs ls ' output looks good" ' - cat <<-\EOF >expected_ls && -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss - d1/ -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy - d2/ -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2 - -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a -EOF - test_cmp expected_ls actual_ls - ' - - test_expect_success "'ipfs ls --size=false ' succeeds" ' - ipfs ls --size=false QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls - ' - - test_expect_success "'ipfs ls ' output looks good" ' - cat <<-\EOF >expected_ls && -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/ -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/ -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH f1 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M f2 - -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN a -EOF - test_cmp expected_ls actual_ls - ' - - test_expect_success "'ipfs ls --headers ' succeeds" ' - ipfs ls --headers QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_headers - ' - - test_expect_success "'ipfs ls --headers ' output looks good" ' - cat <<-\EOF >expected_ls_headers && -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -Hash Size Name -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss - d1/ -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy - d2/ -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2 - -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -Hash Size Name -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -Hash Size Name -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a -EOF - test_cmp expected_ls_headers actual_ls_headers - ' - - test_expect_success "'ipfs ls --size=false --cid-base=base32 ' succeeds" ' - ipfs ls --size=false --cid-base=base32 $(cid-fmt -v 1 -b base32 %s QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss) >actual_ls_base32 - ' - - test_expect_success "'ipfs ls --size=false --cid-base=base32 ' output looks good" ' - cid-fmt -b base32 -v 1 --filter %s < expected_ls > expected_ls_base32 - test_cmp expected_ls_base32 actual_ls_base32 - ' -} - - -test_ls_cmd_streaming() { - - test_expect_success "'ipfs add -r testData' succeeds" ' - mkdir -p testData testData/d1 testData/d2 && - echo "test" >testData/f1 && - echo "data" >testData/f2 && - echo "hello" >testData/d1/a && - random 128 42 >testData/d1/128 && - echo "world" >testData/d2/a && - random 1024 42 >testData/d2/1024 && - ipfs add -r testData >actual_add - ' - - test_expect_success "'ipfs add' output looks good" ' - cat <<-\EOF >expected_add && -added QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe testData/d1/128 -added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN testData/d1/a -added QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd testData/d2/1024 -added QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL testData/d2/a -added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH testData/f1 -added QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M testData/f2 -added QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss testData/d1 -added QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy testData/d2 -added QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj testData -EOF - test_cmp expected_add actual_add - ' - - test_expect_success "'ipfs ls --stream ' succeeds" ' - ipfs ls --stream QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_stream - ' - - test_expect_success "'ipfs ls --stream ' output looks good" ' - cat <<-\EOF >expected_ls_stream && -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss - d1/ -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy - d2/ -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2 - -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a -EOF - test_cmp expected_ls_stream actual_ls_stream - ' - - test_expect_success "'ipfs ls --size=false --stream ' succeeds" ' - ipfs ls --size=false --stream QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_stream - ' - - test_expect_success "'ipfs ls --size=false --stream ' output looks good" ' - cat <<-\EOF >expected_ls_stream && -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/ -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/ -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH f1 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M f2 - -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN a -EOF - test_cmp expected_ls_stream actual_ls_stream - ' - - test_expect_success "'ipfs ls --stream --headers ' succeeds" ' - ipfs ls --stream --headers QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_stream_headers - ' - - test_expect_success "'ipfs ls --stream --headers ' output looks good" ' - cat <<-\EOF >expected_ls_stream_headers && -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -Hash Size Name -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss - d1/ -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy - d2/ -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2 - -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -Hash Size Name -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -Hash Size Name -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a -EOF - test_cmp expected_ls_stream_headers actual_ls_stream_headers - ' -} - -test_ls_cmd_raw_leaves() { - test_expect_success "'ipfs add -r --raw-leaves' then 'ipfs ls' works as expected" ' - mkdir -p somedir && - echo bar > somedir/foo && - ipfs add --raw-leaves -r somedir/ > /dev/null && - ipfs ls '$1' QmThNTdtKaVoCVrYmM5EBS6U3S5vfKFue2TxbxxAxRcKKE > ls-actual - echo "zb2rhf6GzX4ckKZtjy8yy8iyq1KttCrRyqDedD6xubhY3sw2F 4 foo" > ls-expect - test_cmp ls-actual ls-expect - ' -} - -test_ls_object() { - test_expect_success "ipfs add medium size file then 'ipfs ls --size=false' works as expected" ' - random 500000 2 > somefile && - HASH=$(ipfs add somefile -q) && - echo "QmPrM8S5T7Q3M8DQvQMS7m41m3Aq4jBjzAzvky5fH3xfr4 " > ls-expect && - echo "QmdaAntAzQqqVMo4B8V69nkQd5d918YjHXUe2oF6hr72ri " >> ls-expect && - ipfs ls --size=false $HASH > ls-actual && - test_cmp ls-actual ls-expect - ' - - test_expect_success "ipfs add medium size file then 'ipfs ls' works as expected" ' - random 500000 2 > somefile && - HASH=$(ipfs add somefile -q) && - echo "QmPrM8S5T7Q3M8DQvQMS7m41m3Aq4jBjzAzvky5fH3xfr4 262144 " > ls-expect && - echo "QmdaAntAzQqqVMo4B8V69nkQd5d918YjHXUe2oF6hr72ri 237856 " >> ls-expect && - ipfs ls $HASH > ls-actual && - test_cmp ls-actual ls-expect - ' -} - -# should work offline -test_ls_cmd -test_ls_cmd_streaming -test_ls_cmd_raw_leaves -test_ls_cmd_raw_leaves --size -test_ls_object - -# should work online -test_launch_ipfs_daemon -test_ls_cmd -test_ls_cmd_streaming -test_ls_cmd_raw_leaves -test_ls_cmd_raw_leaves --size -test_kill_ipfs_daemon -test_ls_object - -# -# test for ls --resolve-type=false -# - -test_expect_success "'ipfs add -r' succeeds" ' - mkdir adir && - # note: not using a seed as the files need to have truly random content - random 1000 > adir/file1 && - random 1000 > adir/file2 && - ipfs add --pin=false -q -r adir > adir-hashes -' - -test_expect_success "get hashes from add output" ' - FILE=`head -1 adir-hashes` && - DIR=`tail -1 adir-hashes` && - test "$FILE" -a "$DIR" -' - -test_expect_success "remove a file in dir" ' - ipfs block rm $FILE -' - -test_expect_success "'ipfs ls --resolve-type=false ' fails" ' - test_must_fail ipfs ls --resolve-type=false $DIR > /dev/null -' - -test_expect_success "'ipfs ls' fails" ' - test_must_fail ipfs ls $DIR -' - -test_expect_success "'ipfs ls --resolve-type=true --size=false' fails" ' - test_must_fail ipfs ls --resolve-type=true --size=false $DIR -' - -test_launch_ipfs_daemon --offline - -test_expect_success "'ipfs ls --resolve-type=false --size=false' ok" ' - ipfs ls --resolve-type=false --size=false $DIR > /dev/null -' - -test_expect_success "'ipfs ls' fails" ' - test_must_fail ipfs ls $DIR -' - -test_expect_success "'ipfs ls --resolve-type=false --size=true' fails" ' - test_must_fail ipfs ls --resolve-type=false --size=true $DIR -' - -test_kill_ipfs_daemon - -test_launch_ipfs_daemon - -# now we try `ipfs ls --resolve-type=false` with the daemon online It -# should not even attempt to retrieve the file from the network. If -# it does it should eventually fail as the content is random and -# should not exist on the network, but we don't want to wait for a -# timeout so we will kill the request after a few seconds -test_expect_success "'ipfs ls --resolve-type=false --size=false' ok and does not hang" ' - go-timeout 2 ipfs ls --resolve-type=false --size=false $DIR -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0046-id-hash.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0046-id-hash.sh deleted file mode 100755 index 27e49e85..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0046-id-hash.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test basic operations with identity hash" - -. lib/test-lib.sh - -test_init_ipfs - -ID_HASH0=z25RnHTQ7DveGAsV6YDSDR8EkWvD -ID_HASH0_CONTENTS=jkD98jkD975hkD8 - -test_expect_success "can fetch random id hash" ' - ipfs cat $ID_HASH0 > expected && - echo $ID_HASH0_CONTENTS > actual && - test_cmp expected actual -' - -test_expect_success "can pin random id hash" ' - ipfs pin add $ID_HASH0 -' - -test_expect_success "ipfs add succeeds with id hash" ' - echo "djkd7jdkd7jkHHG" > junk.txt && - HASH=$(ipfs add -q --hash=id junk.txt) -' - -test_expect_success "content not actually added" ' - ipfs refs local | fgrep -q -v $HASH -' - -test_expect_success "but can fetch it anyway" ' - ipfs cat $HASH > actual && - test_cmp junk.txt actual -' - -test_expect_success "block rm does nothing" ' - ipfs pin rm $HASH && - ipfs block rm $HASH -' - -test_expect_success "can still fetch it" ' - ipfs cat $HASH > actual - test_cmp junk.txt actual -' - -test_expect_success "ipfs add --inline works as expected" ' - echo $ID_HASH0_CONTENTS > afile && - HASH=$(ipfs add -q --inline afile) -' - -test_expect_success "ipfs add --inline uses id multihash" ' - MHTYPE=`cid-fmt %h $HASH` - echo "mhtype is $MHTYPE" - test "$MHTYPE" = id -' - -test_expect_success "ipfs add --inline --raw-leaves works as expected" ' - echo $ID_HASH0_CONTENTS > afile && - HASH=$(ipfs add -q --inline --raw-leaves afile) -' - -test_expect_success "ipfs add --inline --raw-leaves outputs the correct hash" ' - echo "$ID_HASH0" = "$HASH" && - test "$ID_HASH0" = "$HASH" -' - -test_expect_success "create 1000 bytes file and get its hash" ' - random 1000 2 > 1000bytes && - HASH0=$(ipfs add -q --raw-leaves --only-hash 1000bytes) -' - -test_expect_success "ipfs add --inline --raw-leaves works as expected on large file" ' - HASH=$(ipfs add -q --inline --raw-leaves 1000bytes) -' - -test_expect_success "ipfs add --inline --raw-leaves outputs the correct hash on large file" ' - echo "$HASH0" = "$HASH" && - test "$HASH0" = "$HASH" -' - -test_expect_success "enable filestore" ' - ipfs config --json Experimental.FilestoreEnabled true -' - -test_expect_success "can fetch random id hash (filestore enabled)" ' - ipfs cat $ID_HASH0 > expected && - echo $ID_HASH0_CONTENTS > actual && - test_cmp expected actual -' - -test_expect_success "can pin random id hash (filestore enabled)" ' - ipfs pin add $ID_HASH0 -' - -test_expect_success "ipfs add succeeds with id hash and --nocopy" ' - echo "djkd7jdkd7jkHHG" > junk.txt && - HASH=$(ipfs add -q --hash=id --nocopy junk.txt) -' - -test_expect_success "content not actually added (filestore enabled)" ' - ipfs refs local | fgrep -q -v $HASH -' - -test_expect_success "but can fetch it anyway (filestore enabled)" ' - ipfs cat $HASH > actual && - test_cmp junk.txt actual -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0050-block.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0050-block.sh deleted file mode 100755 index 17a71ae3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0050-block.sh +++ /dev/null @@ -1,238 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test block command" - -. lib/test-lib.sh - -test_init_ipfs - -HASH="QmRKqGMAM6EZngbpjSqrvYzq5Qd8b1bSWymjSUY9zQSNDk" - -# -# "block put tests" -# - -test_expect_success "'ipfs block put' succeeds" ' - echo "Hello Mars!" >expected_in && - ipfs block put actual_out -' - -test_expect_success "'ipfs block put' output looks good" ' - echo "$HASH" >expected_out && - test_cmp expected_out actual_out -' - -# -# "block get" tests -# - -test_expect_success "'ipfs block get' succeeds" ' - ipfs block get $HASH >actual_in -' - -test_expect_success "'ipfs block get' output looks good" ' - test_cmp expected_in actual_in -' - -# -# "block stat" tests -# - -test_expect_success "'ipfs block stat' succeeds" ' - ipfs block stat $HASH >actual_stat -' - -test_expect_success "'ipfs block stat' output looks good" ' - echo "Key: $HASH" >expected_stat && - echo "Size: 12" >>expected_stat && - test_cmp expected_stat actual_stat -' - -# -# "block rm" tests -# - -test_expect_success "'ipfs block rm' succeeds" ' - ipfs block rm $HASH >actual_rm -' - -test_expect_success "'ipfs block rm' output looks good" ' - echo "removed $HASH" > expected_rm && - test_cmp expected_rm actual_rm -' - -test_expect_success "'ipfs block rm' block actually removed" ' - test_must_fail ipfs block stat $HASH -' - -RANDOMHASH=QmRKqGMAM6EbngbZjSqrvYzq5Qd8b1bSWymjSUY9zQSNDq -DIRHASH=QmdWmVmM6W2abTgkEfpbtA1CJyTWS2rhuUB9uP1xV8Uwtf -FILE1HASH=Qmae3RedM7SNkWGsdzYzsr6svmsFdsva4WoTvYYsWhUSVz -FILE2HASH=QmUtkGLvPf63NwVzLPKPUYgwhn8ZYPWF6vKWN3fZ2amfJF -FILE3HASH=Qmesmmf1EEG1orJb6XdK6DabxexsseJnCfw8pqWgonbkoj -TESTHASH=QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH - -test_expect_success "add and pin directory" ' - echo "test" | ipfs add --pin=false && - mkdir adir && - echo "file1" > adir/file1 && - echo "file2" > adir/file2 && - echo "file3" > adir/file3 && - ipfs add -r adir - ipfs pin add -r $DIRHASH -' - -test_expect_success "can't remove pinned block" ' - test_must_fail ipfs block rm $DIRHASH 2> block_rm_err -' - -test_expect_success "can't remove pinned block: output looks good" ' - grep -q "$DIRHASH: pinned: recursive" block_rm_err -' - -test_expect_success "can't remove indirectly pinned block" ' - test_must_fail ipfs block rm $FILE1HASH 2> block_rm_err -' - -test_expect_success "can't remove indirectly pinned block: output looks good" ' - grep -q "$FILE1HASH: pinned via $DIRHASH" block_rm_err -' - -test_expect_success "remove pin" ' - ipfs pin rm -r $DIRHASH -' - -test_expect_success "multi-block 'ipfs block rm' succeeds" ' - ipfs block rm $FILE1HASH $FILE2HASH $FILE3HASH > actual_rm -' - -test_expect_success "multi-block 'ipfs block rm' output looks good" ' - grep -F -q "removed $FILE1HASH" actual_rm && - grep -F -q "removed $FILE2HASH" actual_rm && - grep -F -q "removed $FILE3HASH" actual_rm -' - -test_expect_success "multi-block 'ipfs block rm '" ' - test_must_fail ipfs block rm $RANDOMHASH $TESTHASH $RANDOMHASH &> actual_mixed_rm -' - -test_expect_success "multi-block 'ipfs block rm ' output looks good" ' - echo "cannot remove $RANDOMHASH: blockstore: block not found" >> expect_mixed_rm && - echo "removed $TESTHASH" >> expect_mixed_rm && - echo "cannot remove $RANDOMHASH: blockstore: block not found" >> expect_mixed_rm && - echo "Error: some blocks not removed" >> expect_mixed_rm - test_cmp actual_mixed_rm expect_mixed_rm -' - -test_expect_success "'add some blocks' succeeds" ' - echo "Hello Mars!" | ipfs block put && - echo "Hello Venus!" | ipfs block put -' - -test_expect_success "add and pin directory" ' - ipfs add -r adir - ipfs pin add -r $DIRHASH -' - -HASH=QmRKqGMAM6EZngbpjSqrvYzq5Qd8b1bSWymjSUY9zQSNDk -HASH2=QmdnpnsaEj69isdw5sNzp3h3HkaDz7xKq7BmvFFBzNr5e7 - -test_expect_success "multi-block 'ipfs block rm' mixed" ' - test_must_fail ipfs block rm $FILE1HASH $DIRHASH $HASH $FILE3HASH $RANDOMHASH $HASH2 2> block_rm_err -' - -test_expect_success "pinned block not removed" ' - ipfs block stat $FILE1HASH && - ipfs block stat $FILE3HASH -' - -test_expect_success "non-pinned blocks removed" ' - test_must_fail ipfs block stat $HASH && - test_must_fail ipfs block stat $HASH2 -' - -test_expect_success "error reported on removing non-existent block" ' - grep -q "cannot remove $RANDOMHASH" block_rm_err -' - -test_expect_success "'add some blocks' succeeds" ' - echo "Hello Mars!" | ipfs block put && - echo "Hello Venus!" | ipfs block put -' - -test_expect_success "multi-block 'ipfs block rm -f' with non existent blocks succeed" ' - ipfs block rm -f $HASH $RANDOMHASH $HASH2 -' - -test_expect_success "existent blocks removed" ' - test_must_fail ipfs block stat $HASH && - test_must_fail ipfs block stat $HASH2 -' - -test_expect_success "'add some blocks' succeeds" ' - echo "Hello Mars!" | ipfs block put && - echo "Hello Venus!" | ipfs block put -' - -test_expect_success "multi-block 'ipfs block rm -q' produces no output" ' - ipfs block rm -q $HASH $HASH2 > block_rm_out && - test ! -s block_rm_out -' - -test_expect_success "can set cid format on block put" ' - HASH=$(ipfs block put --format=protobuf ../t0051-object-data/testPut.pb) -' - -test_expect_success "created an object correctly!" ' - ipfs object get $HASH > obj_out && - echo "{\"Links\":[],\"Data\":\"test json for sharness test\"}" > obj_exp && - test_cmp obj_out obj_exp -' - -test_expect_success "block get output looks right" ' - ipfs block get $HASH > pb_block_out && - test_cmp pb_block_out ../t0051-object-data/testPut.pb -' - -test_expect_success "can set multihash type and length on block put" ' - HASH=$(echo "foooo" | ipfs block put --format=raw --mhtype=sha3 --mhlen=20) -' - -test_expect_success "output looks good" ' - test "z83bYcqyBkbx5fuNAcvbdv4pr5RYQiEpK" = "$HASH" -' - -test_expect_success "can read block with different hash" ' - ipfs block get $HASH > blk_get_out && - echo "foooo" > blk_get_exp && - test_cmp blk_get_exp blk_get_out -' -# -# Misc tests -# - -test_expect_success "'ipfs block stat' with nothing from stdin doesnt crash" ' - test_expect_code 1 ipfs block stat < /dev/null 2> stat_out -' - -test_expect_success "no panic in output" ' - test_expect_code 1 grep "panic" stat_out -' - -test_expect_success "can set multihash type and length on block put without format" ' - HASH=$(echo "foooo" | ipfs block put --mhtype=sha3 --mhlen=20) -' - -test_expect_success "output looks good" ' - test "z8bwYCvQPhyDY7VUTsUdGdE8Evm1ktSPV" = "$HASH" -' - -test_expect_success "put with sha3 and cidv0 fails" ' - echo "foooo" | test_must_fail ipfs block put --mhtype=sha3 --mhlen=20 --format=v0 -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/UTF-8-test.txt b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/UTF-8-test.txt deleted file mode 100644 index 56213a84a9843f0f8fa6f10a1a67dcdb9de982c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20350 zcmdU1`Ij8mRp#gVD=z(uNAXN+HfhE>z&Vyi6YF4GImgoBgmc8l6 zV8DTdHDTY0*;m^k5FjD8l!PrIaoBgT!oDdoV2B}(!}r}+^{RT&sCv|Mi0kNRs(Y%w zclUeWd-u)tYr8Ak((;;7%ZsJy_S}Xa_~}sGuq82~XGv)mt{b$Yxa+l+C5k0VJ6=5S6Hojw^}u!NhkFLoNxZlAy|C#eby1R( z8ju!7sdPOzOeKw^;fV|IkeDtWR-x79N-C`gbnw|8V4Jbu03mKTl%5->ezPCA7`>l1 zqb?92a}weK1qi$o9Y_Z55TiJ?o|_~!5?pJ$eo(_RWf?7tci@HiGV1Sj_&%sOOeN{> z?SUf<>wt!~7rPC}GuL^;>$nFHQYf_(8t;JJ7u3O%USm`5*;AQEs&;dy>+ zh0{-H2P$Q%y-uq%x|IO-mq70UEU+0Jz+Cj@FKS{~XCaq~%+(ZUm5b$Sa zmcdZKC|t3X*|W7hO6Gd#^LKc-)=n|aJ9@W@0tc-z& zoA|n=Y(;YAiL0`oS29Vs@EH2qz^8T2crT+D?h0e@n=TL?xGx9j!y0PRK zyE|u=Wzg|4P7p==6jK9o3;cbC3yckwlLyEdF$*5lMfBB>=1SsseTJ80*lk3C2BWUO z*GWyV+KZx=K)5cQ`oO2pfwh*ep|9^J9Sl`y(r{??*^Z+wHD(Mf7&_K$a~qw~6AFNd zEv=oQjUlT*cr?h=feM#pX?^^ASTxdQGld`#^I#R>9>V`!Yz|_8&-w>$Kx0fGGBcnl+ciqr|M5wVzTL;b7U}$JC`XTeLU-#x?n)mdP?u zj|KLiC_Ax=1ki1qqfeN9!nUdMgT3g}H;5Ew?`N)P^$ zs;@r$#HA}&$V(bWLE>D05ZPi?U*_%BE-1=`XcUV9bN-Yb7rY*Nt(Ae_0(ErtWn=-^ zE-5YZY$a)ACH)?Ch8m&Y4F%#^iZzBI&cW5r)J>TP0YrmDOG8F;RwA(C=6*0NylF-y z!iqpe>*T32>~|YXqNo(}2*&D%g%uLJF&NFcU@mu44_N@gC#xrI(!+a6?q)5MSB~>N z*vI3MMlYHkY68RyH-JZl@Ph*=&txe?P&yn4oE}jV6AH8#R?XxJi~!c{3OuWgyiTua z(jru&OLS_mrZr#Ur+xLeL~F=Wp?C%l1brP8B-nr>KjkGv-*CBbspN$s1$O+m``qM|ogB zO1jzVN{p-dDRjrHiL>UF70a&27A&X+OC;Ewg@e3iKho$}XoS z(u%YIEz30nZy4kZ^WNGmnfF&$ zwMHSov&?&Iw~Y7VjjDhu!1}a#W71a!ymMnt#7XmBBVZZvGdJdioG|YVMJz*p7Laq2 zId0w%qFyDMiID>t zJ~m^5F%L-T*;AlTEiv@4R*MBZEOuai=Z9uSk>#+``1iV9JbjlrS?M1`UtaBEVKDKq zG;h`z%=$;b#TBl+<=1G&Y>)Mvj|JIi5Z3eOs{UL&zlaRfh^alNlp(8!+p8C(R<(A3 z{h7*6ll`=Ef!AmQuWGzG9e&{>>(jJh-d8)SN?4{a!!M%D#@+C$O3nZpJcO9dyW-77 zp}|7}J$HA!c_=h^TdX&yY{kg$=*B!UG{$ zKaf9^KaxL|KaoF`Ka)R~zmUI_zmmU}7o~ckx_EwJf3!gAckTS7em7?5*Q0*D*R_6c z$*1IR=u|27d%^B)wQyuNC+3r^4 zk1uF{drAIX{zLv#UY7ro|CZ0pA^%BNJRSc)y+(a(PU_>_EPZTKAC1?wK3&Lk)mx|+Sh{3J8be{OEE87$}@CrOR&@OY*)1)c-H*fv>E80evZVQ zE$!!FtISkWL;(kV*v(+w3+7@1>MCw6Vo4!I2bFF*q3LAlQn71{B?IoRW}R(l%COhs z<+p()EYyD!m0n5DS^?&&MQ2fId!lx8va;d)O)K7s%Az9Pt)tn1Fu{r3SP}50>2*g# zB0~N|bgzi`%8ZQ@1Bs|L5uhqUzB+3&#$aNmURg6{3(o8*)Lxt|NX*nLYew<7PKqfj zmRn~7Vya$QGhBEjo&sVkVKyQr*OfK1vRZ5?)VPx{8xmetSu-o8{e+rsBurykcU;H~ zH4SsTgk~SC9kOS`bZPkL=bVUSNtFQ?A0rrJ8L}Y9Jf>>6g|Bm&CL@~-S!lQ@$4I|$x9Ibn{I|6Dx3K(5`qb%fwSZ&&wx@y-ocEKO{tP2{vx{keFW zbtB?R*Y2m9oLH5f$>$bN-!<4z(f`MOGD9Jn8@08w*YnVDinM2YL-QuUR68%nDO@~# zkRS74+vDcaYm+`dKKi{s(WlRG-rd%HrOz)04`~qe@n1Uwe(kl-p9p*L@icUA} zJ1m04y(KmKiN(`5Zhr-ZdEa*tr_ktDw7E0vp_pWQD(W_Sjo5)`+v?Zr2#hIvh~rjW z9*G9*`O|(gw9TQNj6wkbUO{gpy5N(9z5Z;X%de3$Y4)Zq8XjSei@0o4#7Y_(>Co@m z>hqjP$LrSRVW}l9Ov3bm6?j?mX)O=OvG*3#llqeBY1T&Yg6l#e+VctjEMFtE*SZOg zC0x+vVH{53VGeCp*WP9JvPKjTD1!!y0H+8}BO$N-^_NRpnOmC*wk2~KxlysVWIavS($F7mXb2U6Jgoe+&M9e$s*=vd@0l_Xkx_btVcY4GFvH?X9p!V^@{K|kM zZR|xd@AD8-MioCG&-2{E>ftJm4{(|VEuhaHJ)#B{J^!45l~`5S5!yf_8oJT0tNpKr zCawjC*ikK6ZQdvyz#23M(7DDg;Q2j|j6oRY1OcW;{g~&?^gIi_^T788%enMWIze06 zku>~r(mx7&=SeKn?@E`2Iws|>KKusC;SJpD$^Ed*H2tIKrw5A$!=yMQH8K>thys)( zSM;{p=roUTW+&;xOx2*v3?m*S+z=;QdH-~Yp=I{#8qJiwKa(TQc_|+yK+>oFZ~b!o zQ~(STCT32HU`~r;P}GDP6bm%(5QjT3NwwGF&@cn z`wA|6Kr}_H&7^I5=%FX-xTtX2?7X%NOcGkMmm;PRV3N}WYb_mFs-3N&o7x=Kg54Qq z!ng8^{>yVcrE+^*!ON=PJZQj`^)yt9-fcavNPi}S`Ne#6e9JYLKp+k!Pmi*h;=dK? zffpPM8bd=ChUSxRFD^^#ah- zo}e-&0B;@5i?~rBw(~9{3kpQcS>}b@EJ1E(EnDbaGN^#$9B5w5b0y4XfoWiYsdK7% zK<77+96wDyBYv zgM@_|(d1#Afx@XVMr=-`LQCk#v5_cekwscLXQ}&hoIM0Cl&SVKi{`NGSX2&(@`GJX z_SmW(n_&i-_HtwmE+1$(ENZztmSun=rySHKD%0^mR?b2>Ia5CuuMgM@6O?I3%I0@@hVZv3{btI$ywl{Q9HC?Bv){7jKT&rfZGdu@MVQouDVUj`6F4 zoh{~gx(6&UHQmnvT9(B9-;W#+cqKbotbYdqtEA?yESv~@@#Z-0&JzhQcf?ArOomDe z?Bz8RZ!JUg*+Yk|bdzy%EKV2ycTQuGnM2%lN z7c~eFQBQ=B#%E4SqlT}Yi&}{gQA-9QK6_FcHF)h@%H`Owa(vH8X~d>2d3MZ~r(5p%9hp+v5$)khPW8T)wOAE@bdd6VnM(8m|3x0u@fLG>00(kk0H4d^bk z{?yU!dn;afHu*lsw8|+kt!)DH-ik7qna98f$LLg79HaB;8Jw~UR`WT(hRF|jmn+&s{(_&gWfmxMK<2j5MV{|Ii7@f~nmnV820G44EbXrVH zCorqfdEYKL20%O7$W9;Te@^9oik{QRURm)C*This is not a valid dag object fail diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/expected_getOut b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/expected_getOut deleted file mode 100644 index dc12f63b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/expected_getOut +++ /dev/null @@ -1 +0,0 @@ -{"Links":[],"Data":"\u0008\u0002\u0012\nHello Mars\u0018\n"} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/mixed.json b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/mixed.json deleted file mode 100644 index b8de2b8d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/mixed.json +++ /dev/null @@ -1,5 +0,0 @@ -{"Data": "another", - "Links": [ - {"Name": "some link", "Hash": "QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V", "Size": 8}, - {"Name": "inlined", "Hash": "z4CrgyEyhm4tAw1pgzQtNNuP7", "Size": 14} -]} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.json b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.json deleted file mode 100644 index c97f4ec0..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Data": "test json for sharness test" -} diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.pb b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.pb deleted file mode 100644 index 20c2ca77..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.pb +++ /dev/null @@ -1,2 +0,0 @@ - -test json for sharness test \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.xml b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.xml deleted file mode 100644 index 5cc290b2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object-data/testPut.xml +++ /dev/null @@ -1 +0,0 @@ -Test xml for sharness test diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object.sh deleted file mode 100755 index c5421661..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0051-object.sh +++ /dev/null @@ -1,433 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Henry Bubert -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test object command" - -. lib/test-lib.sh - -test_init_ipfs - -test_patch_create_path() { - root=$1 - name=$2 - target=$3 - - test_expect_success "object patch --create works" ' - PCOUT=$(ipfs object patch $root add-link --create $name $target) - ' - - test_expect_success "output looks good" ' - ipfs cat "$PCOUT/$name" >tpcp_out && - ipfs cat "$target" >tpcp_exp && - test_cmp tpcp_exp tpcp_out - ' -} - -test_object_cmd() { - - test_expect_success "'ipfs add testData' succeeds" ' - printf "Hello Mars" >expected_in && - ipfs add expected_in >actual_Addout - ' - - test_expect_success "'ipfs add testData' output looks good" ' - HASH="QmWkHFpYBZ9mpPRreRbMhhYWXfUhBAue3JkbbpFqwowSRb" && - echo "added $HASH expected_in" >expected_Addout && - test_cmp expected_Addout actual_Addout - ' - - test_expect_success "'ipfs object get' succeeds" ' - ipfs object get $HASH >actual_getOut - ' - - test_expect_success "'ipfs object get' output looks good" ' - test_cmp ../t0051-object-data/expected_getOut actual_getOut - ' - - test_expect_success "'ipfs object get' can specify data encoding as base64" ' - ipfs object get --data-encoding base64 $HASH > obj_out && - echo "{\"Links\":[],\"Data\":\"CAISCkhlbGxvIE1hcnMYCg==\"}" > obj_exp && - test_cmp obj_out obj_exp - ' - - test_expect_success "'ipfs object get' can specify data encoding as text" ' - echo "{\"Links\":[],\"Data\":\"Hello Mars\"}" | ipfs object put && - ipfs object get --data-encoding text QmS3hVY6eYrMQ6L22agwrx3YHBEsc3LJxVXCtyQHqRBukH > obj_out && - echo "{\"Links\":[],\"Data\":\"Hello Mars\"}" > obj_exp && - test_cmp obj_out obj_exp - ' - - test_expect_failure "'ipfs object get' requires known data encoding" ' - ipfs object get --data-encoding nonsensical-encoding $HASH - ' - - test_expect_success "'ipfs object stat' succeeds" ' - ipfs object stat $HASH >actual_stat - ' - - test_expect_success "'ipfs object get' output looks good" ' - echo "NumLinks: 0" > expected_stat && - echo "BlockSize: 18" >> expected_stat && - echo "LinksSize: 2" >> expected_stat && - echo "DataSize: 16" >> expected_stat && - echo "CumulativeSize: 18" >> expected_stat && - test_cmp expected_stat actual_stat - ' - - test_expect_success "'ipfs object put file.json' succeeds" ' - ipfs object put ../t0051-object-data/testPut.json > actual_putOut - ' - - test_expect_success "'ipfs object put file.json' output looks good" ' - HASH="QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD" && - printf "added $HASH\n" > expected_putOut && - test_cmp expected_putOut actual_putOut - ' - - test_expect_success "'ipfs object put --quiet file.json' succeeds" ' - ipfs object put --quiet ../t0051-object-data/testPut.json > actual_putOut - ' - - test_expect_success "'ipfs object put --quiet file.json' output looks good" ' - HASH="QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD" && - printf "$HASH\n" > expected_putOut && - test_cmp expected_putOut actual_putOut - ' - - test_expect_success "'ipfs object put file.xml' succeeds" ' - ipfs object put ../t0051-object-data/testPut.xml --inputenc=xml > actual_putOut - ' - - test_expect_success "'ipfs object put file.xml' output looks good" ' - HASH="QmQzNKUHy4HyEUGkqKe3q3t796ffPLQXYCkHCcXUNT5JNK" && - printf "added $HASH\n" > expected_putOut && - test_cmp expected_putOut actual_putOut - ' - - test_expect_success "'ipfs object put' from stdin succeeds" ' - cat ../t0051-object-data/testPut.xml | ipfs object put --inputenc=xml > actual_putStdinOut - ' - - test_expect_success "'ipfs object put broken.xml' should fail" ' - test_expect_code 1 ipfs object put ../t0051-object-data/brokenPut.xml --inputenc=xml 2>actual_putBrokenErr >actual_putBroken - ' - - test_expect_success "'ipfs object put broken.hxml' output looks good" ' - touch expected_putBroken && - printf "Error: no data or links in this node\n" > expected_putBrokenErr && - test_cmp expected_putBroken actual_putBroken && - test_cmp expected_putBrokenErr actual_putBrokenErr - ' - test_expect_success "'ipfs object get --enc=xml' succeeds" ' - ipfs object get --enc=xml $HASH >utf8_xml - ' - - test_expect_success "'ipfs object put --inputenc=xml' succeeds" ' - ipfs object put --inputenc=xml actual - ' - - test_expect_failure "'ipfs object put --inputenc=xml' output looks good" ' - echo "added $HASH\n" >expected && - test_cmp expected actual - ' - - test_expect_success "'ipfs object put file.pb' succeeds" ' - ipfs object put --inputenc=protobuf ../t0051-object-data/testPut.pb > actual_putOut - ' - - test_expect_success "'ipfs object put file.pb' output looks good" ' - HASH="QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD" && - printf "added $HASH\n" > expected_putOut && - test_cmp expected_putOut actual_putOut - ' - - test_expect_success "'ipfs object put' from stdin succeeds" ' - cat ../t0051-object-data/testPut.json | ipfs object put > actual_putStdinOut - ' - - test_expect_success "'ipfs object put' from stdin output looks good" ' - HASH="QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD" && - printf "added $HASH\n" > expected_putStdinOut && - test_cmp expected_putStdinOut actual_putStdinOut - ' - - test_expect_success "'ipfs object put' from stdin (pb) succeeds" ' - cat ../t0051-object-data/testPut.pb | ipfs object put --inputenc=protobuf > actual_putPbStdinOut - ' - - test_expect_success "'ipfs object put' from stdin (pb) output looks good" ' - HASH="QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD" && - printf "added $HASH\n" > expected_putStdinOut && - test_cmp expected_putStdinOut actual_putPbStdinOut - ' - - test_expect_success "'ipfs object put broken.json' should fail" ' - test_expect_code 1 ipfs object put ../t0051-object-data/brokenPut.json 2>actual_putBrokenErr >actual_putBroken - ' - - test_expect_success "'ipfs object put broken.hjson' output looks good" ' - touch expected_putBroken && - printf "Error: no data or links in this node\n" > expected_putBrokenErr && - test_cmp expected_putBroken actual_putBroken && - test_cmp expected_putBrokenErr actual_putBrokenErr - ' - - test_expect_success "setup: add UTF-8 test file" ' - HASH="QmNY5sQeH9ttVCg24sizH71dNbcZTpGd7Yb3YwsKZ4jiFP" && - ipfs add ../t0051-object-data/UTF-8-test.txt >actual && - echo "added $HASH UTF-8-test.txt" >expected && - test_cmp expected actual - ' - - test_expect_success "'ipfs object get --enc=json' succeeds" ' - ipfs object get --enc=json $HASH >utf8_json - ' - - test_expect_success "'ipfs object put --inputenc=json' succeeds" ' - ipfs object put --inputenc=json actual - ' - - test_expect_failure "'ipfs object put --inputenc=json' output looks good" ' - echo "added $HASH" >expected && - test_cmp expected actual - ' - - test_expect_success "'ipfs object put --pin' succeeds" ' - HASH="QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V" && - echo "added $HASH" >expected && - echo "{ \"Data\": \"abc\" }" | ipfs object put --pin >actual - ' - - test_expect_success "'ipfs object put --pin' output looks good" ' - echo "added $HASH" >expected && - test_cmp expected actual - ' - - test_expect_success "after gc, objects still acessible" ' - ipfs repo gc > /dev/null && - ipfs refs -r --timeout=2s $HASH > /dev/null - ' - - test_expect_success "'ipfs object patch' should work (no unixfs-dir)" ' - EMPTY_DIR=$(ipfs object new) && - OUTPUT=$(ipfs object patch $EMPTY_DIR add-link foo $EMPTY_DIR) && - ipfs object stat $OUTPUT - ' - - test_expect_success "'ipfs object patch' should work" ' - EMPTY_DIR=$(ipfs object new unixfs-dir) && - OUTPUT=$(ipfs object patch $EMPTY_DIR add-link foo $EMPTY_DIR) && - ipfs object stat $OUTPUT - ' - - test_expect_success "'ipfs object links' gives the correct results" ' - echo "$EMPTY_DIR" 4 foo > expected && - ipfs object links "$OUTPUT" > actual && - test_cmp expected actual - ' - - test_expect_success "'ipfs object patch add-link' should work with paths" ' - EMPTY_DIR=$(ipfs object new unixfs-dir) && - N1=$(ipfs object patch $EMPTY_DIR add-link baz $EMPTY_DIR) && - N2=$(ipfs object patch $EMPTY_DIR add-link bar $N1) && - N3=$(ipfs object patch $EMPTY_DIR add-link foo /ipfs/$N2/bar) && - ipfs object stat /ipfs/$N3 > /dev/null && - ipfs object stat $N3/foo > /dev/null && - ipfs object stat /ipfs/$N3/foo/baz > /dev/null - ' - - test_expect_success "'ipfs object patch add-link' allow linking IPLD objects" ' - EMPTY_DIR=$(ipfs object new unixfs-dir) && - OBJ=$(echo "123" | ipfs dag put) && - N1=$(ipfs object patch $EMPTY_DIR add-link foo $OBJ) && - - ipfs object stat /ipfs/$N1 > /dev/null && - ipfs resolve /ipfs/$N1/foo > actual && - echo /ipfs/$OBJ > expected && - - test_cmp expected actual - ' - - test_expect_success "object patch creation looks right" ' - echo "QmPc73aWK9dgFBXe86P4PvQizHo9e5Qt7n7DAMXWuigFuG" > hash_exp && - echo $N3 > hash_actual && - test_cmp hash_exp hash_actual - ' - - test_expect_success "multilayer ipfs patch works" ' - echo "hello world" > hwfile && - FILE=$(ipfs add -q hwfile) && - EMPTY=$(ipfs object new unixfs-dir) && - ONE=$(ipfs object patch $EMPTY add-link b $EMPTY) && - TWO=$(ipfs object patch $EMPTY add-link a $ONE) && - ipfs object patch $TWO add-link a/b/c $FILE > multi_patch - ' - - test_expect_success "output looks good" ' - ipfs cat $(cat multi_patch)/a/b/c > hwfile_out && - test_cmp hwfile hwfile_out - ' - - test_expect_success "ipfs object stat path succeeds" ' - ipfs object stat $(cat multi_patch)/a > obj_stat_out - ' - - test_expect_success "ipfs object stat output looks good" ' - echo NumLinks: 1 > obj_stat_exp && - echo BlockSize: 47 >> obj_stat_exp && - echo LinksSize: 45 >> obj_stat_exp && - echo DataSize: 2 >> obj_stat_exp && - echo CumulativeSize: 114 >> obj_stat_exp && - - test_cmp obj_stat_exp obj_stat_out - ' - - test_expect_success "should have created dir within a dir" ' - ipfs ls $OUTPUT > patched_output - ' - - test_expect_success "output looks good" ' - echo "QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn - foo/" > patched_exp && - test_cmp patched_exp patched_output - ' - - test_expect_success "can remove the directory" ' - ipfs object patch $OUTPUT rm-link foo > rmlink_output - ' - - test_expect_success "output should be empty" ' - echo QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn > rmlink_exp && - test_cmp rmlink_exp rmlink_output - ' - - test_expect_success "multilayer rm-link should work" ' - ipfs object patch $(cat multi_patch) rm-link a/b/c > multi_link_rm_out - ' - - test_expect_success "output looks good" ' - echo "QmZD3r9cZjzU8huNY2JS9TC6n8daDfT8TmE8zBSqG31Wvq" > multi_link_rm_exp && - test_cmp multi_link_rm_exp multi_link_rm_out - ' - - test_patch_create_path $EMPTY a/b/c $FILE - - test_patch_create_path $EMPTY a $FILE - - test_patch_create_path $EMPTY a/b/b/b/b $FILE - - test_expect_success "can create blank object" ' - BLANK=$(ipfs object new) - ' - - test_patch_create_path $BLANK a $FILE - - test_expect_success "create bad path fails" ' - test_must_fail ipfs object patch $EMPTY add-link --create / $FILE - ' - - test_expect_success "patch set-data works" ' - EMPTY=$(ipfs object new) && - HASH=$(printf "foo" | ipfs object patch $EMPTY set-data) - ' - - test_expect_success "output looks good" ' - echo "{\"Links\":[],\"Data\":\"foo\"}" > exp_data_set && - ipfs object get $HASH > actual_data_set && - test_cmp exp_data_set actual_data_set - ' - - test_expect_success "patch append-data works" ' - HASH=$(printf "bar" | ipfs object patch $HASH append-data) - ' - - test_expect_success "output looks good" ' - echo "{\"Links\":[],\"Data\":\"foobar\"}" > exp_data_append && - ipfs object get $HASH > actual_data_append && - test_cmp exp_data_append actual_data_append - ' - - # - # CidBase Tests - # - - test_expect_success "'ipfs object put file.json --cid-base=base32' succeeds" ' - ipfs object put --cid-base=base32 ../t0051-object-data/testPut.json > actual_putOut - ' - - test_expect_success "'ipfs object put file.json --cid-base=base32' output looks good" ' - HASH="QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD" && - printf "added $HASH\n" > expected_putOut && - test_cmp expected_putOut actual_putOut - ' - - test_expect_success "'ipfs object put file.json --cid-base=base32 --upgrade-cidv0-in-output=true' succeeds" ' - ipfs object put --cid-base=base32 --upgrade-cidv0-in-output=true ../t0051-object-data/testPut.json > actual_putOut - ' - - test_expect_success "'ipfs object put file.json --cid-base=base32 --upgrade-cidv0-in-output=true' output looks good" ' - HASH=$(ipfs cid base32 "QmUTSAdDi2xsNkDtLqjFgQDMEn5di3Ab9eqbrt4gaiNbUD") && - printf "added $HASH\n" > expected_putOut && - test_cmp expected_putOut actual_putOut - ' - - test_expect_success "'insert json dag with both CidV0 and CidV1 links'" ' - MIXED=$(ipfs object put ../t0051-object-data/mixed.json -q) && - echo $MIXED - ' - - test_expect_success "ipfs object get then put creates identical object with --cid-base=base32" ' - ipfs object get --cid-base=base32 $MIXED > mixedv2.json && - MIXED2=$(ipfs object put -q mixedv2.json) && - echo "$MIXED =? $MIXED2" && - test "$MIXED" = "$MIXED2" - ' - - HASHv0=QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V - HASHv1=z4CrgyEyhm4tAw1pgzQtNNuP7 - - test_expect_success "ipfs object get with --cid-base=base32 uses base32 for CidV1 link only" ' - ipfs object get --cid-base=base32 $MIXED > mixed.actual && - grep -q $HASHv0 mixed.actual && - grep -q $(ipfs cid base32 $HASHv1) mixed.actual - ' - - test_expect_success "ipfs object links --cid-base=base32 --upgrade-cidv0-in-output=true converts both links" ' - ipfs object links --cid-base=base32 --upgrade-cidv0-in-output=true $MIXED | awk "{print \$1}" | sort > links.actual && - echo $(ipfs cid base32 $HASHv1) > links.expected - echo $(ipfs cid base32 $HASHv0) >> links.expected - test_cmp links.actual links.expected - ' -} - -test_object_content_type() { - - test_expect_success "'ipfs object get --encoding=protobuf' returns the correct content type" ' - curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=protobuf" | grep -q "^Content-Type: application/protobuf" - ' - - test_expect_success "'ipfs object get --encoding=json' returns the correct content type" ' - curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=json" | grep -q "^Content-Type: application/json" - ' - - test_expect_success "'ipfs object get --encoding=text' returns the correct content type" ' - curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=text" | grep -q "^Content-Type: text/plain" - ' - - test_expect_success "'ipfs object get --encoding=xml' returns the correct content type" ' - curl -sI "http://$API_ADDR/api/v0/object/get?arg=$HASH&encoding=xml" | grep -q "^Content-Type: application/xml" - ' -} - -# should work offline -test_object_cmd - -# should work online -test_launch_ipfs_daemon -test_object_cmd -test_object_content_type -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0052-object-diff.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0052-object-diff.sh deleted file mode 100755 index e512c4b1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0052-object-diff.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test object diff command" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "create some objects for testing diffs" ' - mkdir foo && - echo "stuff" > foo/bar && - mkdir foo/baz && - A=$(ipfs add -r -q foo | tail -n1) && - AR=$(ipfs add --raw-leaves -r -q foo | tail -n1) && - echo "more things" > foo/cat && - B=$(ipfs add -r -q foo | tail -n1) && - BR=$(ipfs add --raw-leaves -r -q foo | tail -n1) && - echo "nested" > foo/baz/dog && - C=$(ipfs add -r -q foo | tail -n1) - CR=$(ipfs add --raw-leaves -r -q foo | tail -n1) - echo "changed" > foo/bar && - D=$(ipfs add -r -q foo | tail -n1) && - DR=$(ipfs add --raw-leaves -r -q foo | tail -n1) && - echo "" > single_file && - SINGLE_FILE=$(ipfs add -r -q single_file | tail -n1) && - SINGLE_FILE_RAW=$(ipfs add --raw-leaves -r -q single_file | tail -n1) && - mkdir empty_dir - EMPTY_DIR=$(ipfs add -r -q empty_dir | tail -n1) - EMPTY_DIR_RAW=$(ipfs add --raw-leaves -r -q empty_dir | tail -n1) -' - -test_expect_success "diff against self is empty" ' - ipfs object diff $A $A > diff_out -' - -test_expect_success "identity diff output looks good" ' - printf "" > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) against self is empty" ' - ipfs object diff $AR $AR > diff_raw_out -' - -test_expect_success "identity diff (raw-leaves) output looks good" ' - printf "" > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "diff against self (single file) is empty" ' - ipfs object diff $SINGLE_FILE $SINGLE_FILE > diff_out && - printf "" > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) against self (single file) is empty" ' - ipfs object diff $SINGLE_FILE_RAW $SINGLE_FILE_RAW > diff_raw_out && - printf "" > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "diff against self (empty dir) is empty" ' - ipfs object diff $EMPTY_DIR $EMPTY_DIR > diff_out && - printf "" > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) against self (empty dir) is empty" ' - ipfs object diff $EMPTY_DIR_RAW $EMPTY_DIR_RAW > diff_raw_out && - printf "" > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "diff added link works" ' - ipfs object diff $A $B > diff_out -' - -test_expect_success "diff added link looks right" ' - echo + QmUSvcqzhdfYM1KLDbM76eLPdS9ANFtkJvFuPYeZt73d7A \"cat\" > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) added link works" ' - ipfs object diff $AR $BR > diff_raw_out -' - -test_expect_success "diff (raw-leaves) added link looks right" ' - echo + zb2rhmWNFDCdMjJoCZPE5b5NuU38yoRzRmEtfzb4exxk3R8g4 \"cat\" > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "verbose diff added link works" ' - ipfs object diff -v $A $B > diff_out -' - -test_expect_success "verbose diff added link looks right" ' - echo Added new link \"cat\" pointing to QmUSvcqzhdfYM1KLDbM76eLPdS9ANFtkJvFuPYeZt73d7A. > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "verbose diff (raw-leaves) added link works" ' - ipfs object diff -v $AR $BR > diff_raw_out -' - -test_expect_success "verbose diff (raw-leaves) added link looks right" ' - echo Added new link \"cat\" pointing to zb2rhmWNFDCdMjJoCZPE5b5NuU38yoRzRmEtfzb4exxk3R8g4. > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "diff removed link works" ' - ipfs object diff -v $B $A > diff_out -' - -test_expect_success "diff removed link looks right" ' - echo Removed link \"cat\" \(was QmUSvcqzhdfYM1KLDbM76eLPdS9ANFtkJvFuPYeZt73d7A\). > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) removed link works" ' - ipfs object diff -v $BR $AR > diff_raw_out -' - -test_expect_success "diff (raw-leaves) removed link looks right" ' - echo Removed link \"cat\" \(was zb2rhmWNFDCdMjJoCZPE5b5NuU38yoRzRmEtfzb4exxk3R8g4\). > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "diff nested add works" ' - ipfs object diff -v $B $C > diff_out -' - -test_expect_success "diff looks right" ' - echo Added new link \"baz/dog\" pointing to QmdNJQUTZuDpsUcec7YDuCfRfvw1w4J13DCm7YcU4VMZdS. > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) nested add works" ' - ipfs object diff -v $BR $CR > diff_raw_out -' - -test_expect_success "diff (raw-leaves) looks right" ' - echo Added new link \"baz/dog\" pointing to zb2rhaM8wjDfi8A22dEqk89raWtViq8pjxvKQu2eaKtWhYKgE. > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_expect_success "diff changed link works" ' - ipfs object diff -v $C $D > diff_out -' - -test_expect_success "diff looks right" ' - echo Changed \"bar\" from QmNgd5cz2jNftnAHBhcRUGdtiaMzb5Rhjqd4etondHHST8 to QmRfFVsjSXkhFxrfWnLpMae2M4GBVsry6VAuYYcji5MiZb. > diff_exp && - test_cmp diff_exp diff_out -' - -test_expect_success "diff (raw-leaves) changed link works" ' - ipfs object diff -v $CR $DR > diff_raw_out -' - -test_expect_success "diff(raw-leaves) looks right" ' - echo Changed \"bar\" from zb2rhdUECGnPgMJNgmghaMKdqqGdpTe9GmEJiPna488ThfLBz to zb2rhfEA1M13SPoeayrsPcKhCezgMQPjguGFLH56G8qQ2qpDn. > diff_raw_exp && - test_cmp diff_raw_exp diff_raw_out -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag-data/non-canon.cbor b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag-data/non-canon.cbor deleted file mode 100644 index ee44502cfcb7d12b764c6b42e0cb6a997172efe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmZ3KnwXQBmwiJkLY0BBP)H$lTEHI@=aXVi4Ib~0?sAQ|(`Gtl23O?Q(>A^>ZFRYZ J$%#cp4FF1<7O4OL diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag.sh deleted file mode 100755 index e9e2f247..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0053-dag.sh +++ /dev/null @@ -1,281 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test dag command" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "make a few test files" ' - echo "foo" > file1 && - echo "bar" > file2 && - echo "baz" > file3 && - echo "qux" > file4 && - HASH1=$(ipfs add --pin=false -q file1) && - HASH2=$(ipfs add --pin=false -q file2) && - HASH3=$(ipfs add --pin=false -q file3) && - HASH4=$(ipfs add --pin=false -q file4) -' - -test_expect_success "make an ipld object in json" ' - printf "{\"hello\":\"world\",\"cats\":[{\"/\":\"%s\"},{\"water\":{\"/\":\"%s\"}}],\"magic\":{\"/\":\"%s\"},\"sub\":{\"dict\":\"ionary\",\"beep\":[0,\"bop\"]}}" $HASH1 $HASH2 $HASH3 > ipld_object -' - -test_dag_cmd() { - test_expect_success "can add an ipld object using protobuf" ' - IPLDHASH=$(cat ipld_object | ipfs dag put -f protobuf) - ' - - test_expect_success "output looks correct" ' - EXPHASH="QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n" - test $EXPHASH = $IPLDHASH - ' - - test_expect_success "can add an ipld object using protobuf and --cid=base=base32" ' - IPLDHASHb32=$(cat ipld_object | ipfs dag put -f protobuf --cid-base=base32) - ' - - test_expect_success "output looks correct (does not upgrade to CIDv1)" ' - test $EXPHASH = $IPLDHASHb32 - ' - - test_expect_success "can add an ipld object" ' - IPLDHASH=$(cat ipld_object | ipfs dag put) - ' - - test_expect_success "output looks correct" ' - EXPHASH="zdpuAsXfkHapxohc8LtsCzYiAsy84ESqKRD8eWuY64tt9r2CE" - test $EXPHASH = $IPLDHASH - ' - - test_expect_success "can add an ipld object using --cid-base=base32" ' - IPLDHASHb32=$(cat ipld_object | ipfs dag put --cid-base=base32) - ' - - test_expect_success "output looks correct" ' - test $(ipfs cid base32 $EXPHASH) = $IPLDHASHb32 - ' - - test_expect_success "various path traversals work" ' - ipfs cat $IPLDHASH/cats/0 > out1 && - ipfs cat $IPLDHASH/cats/1/water > out2 && - ipfs cat $IPLDHASH/magic > out3 - ' - - test_expect_success "outputs look correct" ' - test_cmp file1 out1 && - test_cmp file2 out2 && - test_cmp file3 out3 - ' - - test_expect_success "resolving sub-objects works" ' - ipfs dag get $IPLDHASH/hello > sub1 && - ipfs dag get $IPLDHASH/sub > sub2 && - ipfs dag get $IPLDHASH/sub/beep > sub3 && - ipfs dag get $IPLDHASH/sub/beep/0 > sub4 && - ipfs dag get $IPLDHASH/sub/beep/1 > sub5 - ' - - test_expect_success "sub-objects look right" ' - echo "\"world\"" > sub1_exp && - test_cmp sub1_exp sub1 && - echo "{\"beep\":[0,\"bop\"],\"dict\":\"ionary\"}" > sub2_exp && - test_cmp sub2_exp sub2 && - echo "[0,\"bop\"]" > sub3_exp && - test_cmp sub3_exp sub3 && - echo "0" > sub4_exp && - test_cmp sub4_exp sub4 && - echo "\"bop\"" > sub5_exp && - test_cmp sub5_exp sub5 - ' - - test_expect_success "can pin cbor object" ' - ipfs pin add $EXPHASH - ' - - test_expect_success "after gc, objects still acessible" ' - ipfs repo gc > /dev/null && - ipfs refs -r --timeout=2s $EXPHASH > /dev/null - ' - - test_expect_success "can get object" ' - ipfs dag get $IPLDHASH > ipld_obj_out - ' - - test_expect_success "object links look right" ' - grep "{\"/\":\"" ipld_obj_out > /dev/null - ' - - test_expect_success "retreived object hashes back correctly" ' - IPLDHASH2=$(cat ipld_obj_out | ipfs dag put) && - test "$IPLDHASH" = "$IPLDHASH2" - ' - - test_expect_success "add a normal file" ' - HASH=$(echo "foobar" | ipfs add -q) - ' - - test_expect_success "can view protobuf object with dag get" ' - ipfs dag get $HASH > dag_get_pb_out - ' - - test_expect_success "output looks correct" ' - echo "{\"data\":\"CAISB2Zvb2JhcgoYBw==\",\"links\":[]}" > dag_get_pb_exp && - test_cmp dag_get_pb_exp dag_get_pb_out - ' - - test_expect_success "can call dag get with a path" ' - ipfs dag get $IPLDHASH/cats/0 > cat_out - ' - - test_expect_success "output looks correct" ' - echo "{\"data\":\"CAISBGZvbwoYBA==\",\"links\":[]}" > cat_exp && - test_cmp cat_exp cat_out - ' - - test_expect_success "non-canonical cbor input is normalized" ' - HASH=$(cat ../t0053-dag-data/non-canon.cbor | ipfs dag put --format=cbor --input-enc=raw) && - test $HASH = "zdpuAmxF8q6iTUtkB3xtEYzmc5Sw762qwQJftt5iW8NTWLtjC" || - test_fsh echo $HASH - ' - - test_expect_success "non-canonical cbor input is normalized with input-enc cbor" ' - HASH=$(cat ../t0053-dag-data/non-canon.cbor | ipfs dag put --format=cbor --input-enc=cbor) && - test $HASH = "zdpuAmxF8q6iTUtkB3xtEYzmc5Sw762qwQJftt5iW8NTWLtjC" || - test_fsh echo $HASH - ' - - test_expect_success "add an ipld with pin" ' - PINHASH=$(printf {\"foo\":\"bar\"} | ipfs dag put --pin=true) - ' - - test_expect_success "after gc, objects still acessible" ' - ipfs repo gc > /dev/null && - ipfs refs -r --timeout=2s $PINHASH > /dev/null - ' - - test_expect_success "can add an ipld object with sha3 hash" ' - IPLDHASH=$(cat ipld_object | ipfs dag put --hash sha3) - ' - - test_expect_success "output looks correct" ' - EXPHASH="zBwWX8u9LYZdCWqaryJW8QsBstghHSPy41nfhhFLY9qw1Vu2BWqnMFtk1jL3qCtEdGd7Kqw1HNPZv5z8LxP2eHGGDCdRE" - test $EXPHASH = $IPLDHASH - ' - - test_expect_success "prepare dag-pb object" ' - echo foo > test_file && - HASH=$(ipfs add -wq test_file | tail -n1) - ' - - test_expect_success "dag put with json dag-pb works" ' - ipfs dag get $HASH > pbjson && - cat pbjson | ipfs dag put --format=dag-pb --input-enc=json > dag_put_out - ' - - test_expect_success "dag put with dag-pb works output looks good" ' - echo $HASH > dag_put_exp && - test_cmp dag_put_exp dag_put_out - ' - - test_expect_success "dag put with raw dag-pb works" ' - ipfs block get $HASH > pbraw && - cat pbraw | ipfs dag put --format=dag-pb --input-enc=raw > dag_put_out - ' - - test_expect_success "dag put with dag-pb works output looks good" ' - echo $HASH > dag_put_exp && - test_cmp dag_put_exp dag_put_out - ' - - test_expect_success "dag put with raw node works" ' - echo "foo bar" > raw_node_in && - HASH=$(ipfs dag put --format=raw --input-enc=raw -- raw_node_in) && - ipfs block get "$HASH" > raw_node_out && - test_cmp raw_node_in raw_node_out' - - test_expect_success "dag put multiple files" ' - printf {\"foo\":\"bar\"} > a.json && - printf {\"foo\":\"baz\"} > b.json && - ipfs dag put a.json b.json > dag_put_out - ' - - test_expect_success "dag put multiple files output looks good" ' - echo zdpuAoKMEvka7gKGSjF9B3of1F5gE5MyMMywxTC13wCmouQrf > dag_put_exp && - echo zdpuAogmDEvpvGjMFsNTGDEU1JMYe6v69oxR8nG81EurmGHMj >> dag_put_exp && - - test_cmp dag_put_exp dag_put_out - ' - - test_expect_success "prepare data for dag resolve" ' - NESTED_HASH=$(echo "{\"data\":123}" | ipfs dag put) && - HASH=$(echo "{\"obj\":{\"/\":\"${NESTED_HASH}\"}}" | ipfs dag put) - ' - - test_expect_success "dag resolve some things" ' - ipfs dag resolve $HASH > resolve_hash && - ipfs dag resolve ${HASH}/obj > resolve_obj && - ipfs dag resolve ${HASH}/obj/data > resolve_data - ' - - test_expect_success "dag resolve output looks good" ' - printf $HASH > resolve_hash_exp && - printf $NESTED_HASH > resolve_obj_exp && - printf $NESTED_HASH/data > resolve_data_exp && - - test_cmp resolve_hash_exp resolve_hash && - test_cmp resolve_obj_exp resolve_obj && - test_cmp resolve_data_exp resolve_data - ' - - test_expect_success "get base32 version of hashes for testing" ' - HASHb32=$(ipfs cid base32 $HASH) && - NESTED_HASHb32=$(ipfs cid base32 $NESTED_HASH) - ' - - test_expect_success "dag resolve some things with --cid-base=base32" ' - ipfs dag resolve $HASH --cid-base=base32 > resolve_hash && - ipfs dag resolve ${HASH}/obj --cid-base=base32 > resolve_obj && - ipfs dag resolve ${HASH}/obj/data --cid-base=base32 > resolve_data - ' - - test_expect_success "dag resolve output looks good with --cid-base=base32" ' - printf $HASHb32 > resolve_hash_exp && - printf $NESTED_HASHb32 > resolve_obj_exp && - printf $NESTED_HASHb32/data > resolve_data_exp && - - test_cmp resolve_hash_exp resolve_hash && - test_cmp resolve_obj_exp resolve_obj && - test_cmp resolve_data_exp resolve_data - ' - - test_expect_success "dag resolve some things with base32 hash" ' - ipfs dag resolve $HASHb32 > resolve_hash && - ipfs dag resolve ${HASHb32}/obj > resolve_obj && - ipfs dag resolve ${HASHb32}/obj/data > resolve_data - ' - - test_expect_success "dag resolve output looks good with base32 hash" ' - printf $HASHb32 > resolve_hash_exp && - printf $NESTED_HASHb32 > resolve_obj_exp && - printf $NESTED_HASHb32/data > resolve_data_exp && - - test_cmp resolve_hash_exp resolve_hash && - test_cmp resolve_obj_exp resolve_obj && - test_cmp resolve_data_exp resolve_data - ' -} - -# should work offline -test_dag_cmd - -# should work online -test_launch_ipfs_daemon -test_dag_cmd -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-daemon.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-daemon.sh deleted file mode 100755 index a33acb1e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-daemon.sh +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Juan Batiz-Benet -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test daemon command" - -. lib/test-lib.sh - - -test_init_ipfs -test_launch_ipfs_daemon - -# this errors if we didn't --init $IPFS_PATH correctly -test_expect_success "'ipfs config Identity.PeerID' works" ' - PEERID=$(ipfs config Identity.PeerID) -' - -test_expect_success "'ipfs swarm addrs local' works" ' - ipfs swarm addrs local >local_addrs -' - -test_expect_success "ipfs swarm addrs listen; works" ' - ipfs swarm addrs listen >listen_addrs -' - -test_expect_success "ipfs peer id looks good" ' - test_check_peerid "$PEERID" -' - -# this is for checking SetAllowedOrigins race condition for the api and gateway -# See https://github.com/ipfs/go-ipfs/pull/1966 -test_expect_success "ipfs API works with the correct allowed origin port" ' - curl -s -X GET -H "Origin:http://localhost:$API_PORT" -I "http://$API_ADDR/api/v0/version" -' - -test_expect_success "ipfs gateway works with the correct allowed origin port" ' - curl -s -X GET -H "Origin:http://localhost:$GWAY_PORT" -I "http://$GWAY_ADDR/api/v0/version" -' - -test_expect_success "ipfs daemon output looks good" ' - STARTFILE="ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme" && - echo "Initializing daemon..." >expected_daemon && - ipfs version --all >> expected_daemon && - sed "s/^/Swarm listening on /" listen_addrs >>expected_daemon && - sed "s/^/Swarm announcing /" local_addrs >>expected_daemon && - echo "API server listening on '$API_MADDR'" >>expected_daemon && - echo "WebUI: http://'$API_ADDR'/webui" >>expected_daemon && - echo "Gateway (readonly) server listening on '$GWAY_MADDR'" >>expected_daemon && - echo "Daemon is ready" >>expected_daemon && - test_cmp expected_daemon actual_daemon -' - -test_expect_success ".ipfs/ has been created" ' - test -d ".ipfs" && - test -f ".ipfs/config" && - test -d ".ipfs/datastore" && - test -d ".ipfs/blocks" || - test_fsh ls -al .ipfs -' - -# begin same as in t0010 - -test_expect_success "ipfs version succeeds" ' - ipfs version >version.txt -' - -test_expect_success "ipfs version output looks good" ' - egrep "^ipfs version [0-9]+\.[0-9]+\.[0-9]" version.txt >/dev/null || - test_fsh cat version.txt -' - -test_expect_success "ipfs help succeeds" ' - ipfs help >help.txt -' - -test_expect_success "ipfs help output looks good" ' - egrep -i "^Usage" help.txt >/dev/null && - egrep "ipfs .* " help.txt >/dev/null || - test_fsh cat help.txt -' - -# netcat (nc) is needed for the following test -test_expect_success "nc is available" ' - type nc >/dev/null -' - -# check transport is encrypted -test_expect_success "transport should be encrypted" ' - nc -w 1 localhost $SWARM_PORT > swarmnc < ../t0060-data/mss-ls && - grep -q "/secio" swarmnc && - test_must_fail grep -q "/plaintext/1.0.0" swarmnc || - test_fsh cat swarmnc -' - -test_expect_success "output from streaming commands works" ' - test_expect_code 28 curl -m 5 http://localhost:$API_PORT/api/v0/stats/bw\?poll=true > statsout -' - -test_expect_success "output looks good" ' - grep TotalIn statsout > /dev/null && - grep TotalOut statsout > /dev/null && - grep RateIn statsout > /dev/null && - grep RateOut statsout >/dev/null -' - -# end same as in t0010 - -test_expect_success "daemon is still running" ' - kill -0 $IPFS_PID -' - -test_expect_success "'ipfs daemon' can be killed" ' - test_kill_repeat_10_sec $IPFS_PID -' - -test_expect_success "'ipfs daemon' should be able to run with a pipe attached to stdin (issue #861)" ' - yes | ipfs daemon >stdin_daemon_out 2>stdin_daemon_err & - DAEMON_PID=$! - test_wait_for_file 20 100ms "$IPFS_PATH/api" && - test_set_address_vars stdin_daemon_out -' - -test_expect_success "daemon with pipe eventually becomes live" ' - pollEndpoint -host='$API_MADDR' -ep=/version -v -tout=1s -tries=10 >stdin_poll_apiout 2>stdin_poll_apierr && - test_kill_repeat_10_sec $DAEMON_PID || - test_fsh cat stdin_daemon_out || test_fsh cat stdin_daemon_err || test_fsh cat stdin_poll_apiout || test_fsh cat stdin_poll_apierr -' - -ulimit -S -n 512 -TEST_ULIMIT_PRESET=1 -test_launch_ipfs_daemon - -test_expect_success "daemon raised its fd limit" ' - grep -v "setting file descriptor limit" actual_daemon > /dev/null -' - -test_expect_success "daemon actually can handle 2048 file descriptors" ' - hang-fds -hold=2s 2000 '$API_MADDR' > /dev/null -' - -test_expect_success "daemon didnt throw any errors" ' - test_expect_code 1 grep "too many open files" daemon_err -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-data/mss-ls b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-data/mss-ls deleted file mode 100644 index ce39aa99..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0060-data/mss-ls +++ /dev/null @@ -1,2 +0,0 @@ -/multistream/1.0.0 -ls diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0061-daemon-opts.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0061-daemon-opts.sh deleted file mode 100755 index 78f711e2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0061-daemon-opts.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Juan Batiz-Benet -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test daemon command" - -. lib/test-lib.sh - - -test_init_ipfs - -test_launch_ipfs_daemon --disable-transport-encryption - -gwyaddr=$GWAY_ADDR -apiaddr=$API_ADDR - -# Odd. this fails here, but the inverse works on t0060-daemon. -test_expect_success 'transport should be unencrypted' ' - nc -w 1 localhost $SWARM_PORT > swarmnc < ../t0060-data/mss-ls && - test_must_fail grep -q "/secio" swarmnc && - grep -q "/plaintext" swarmnc || - test_fsh cat swarmnc -' - -test_kill_ipfs_daemon - -test_launch_ipfs_daemon --offline - -gwyaddr=$GWAY_ADDR -apiaddr=$API_ADDR - -test_expect_success 'gateway should work in offline mode' ' - echo "hello mars :$gwyaddr :$apiaddr" >expected && - HASH=$(ipfs add -q expected) && - curl -sfo actual1 "http://$gwyaddr/ipfs/$HASH" && - test_cmp expected actual1 -' - -test_kill_ipfs_daemon - -test_expect_success 'daemon should not start with bad dht opt' ' - test_must_fail ipfs daemon --routing=fdsfdsfds > daemon_output 2>&1 -' - -test_expect_success 'output contains info about dht option' ' - grep "unrecognized routing option:" daemon_output || - test_fsh cat daemon_output -' - -test_expect_success 'daemon should not start with supernode dht opt' ' - test_must_fail ipfs daemon --routing=supernode > daemon_output2 2>&1 -' - -test_expect_success 'output contains info about supernode dht option' ' - grep "supernode routing was never fully implemented" daemon_output2 || - test_fsh cat daemon_output2 -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0062-daemon-api.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0062-daemon-api.sh deleted file mode 100755 index b4c7eccd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0062-daemon-api.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash -# -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test daemon command" - -. lib/test-lib.sh - -test_init_ipfs - -differentport=$((API_PORT + 1)) -api_other="/ip4/127.0.0.1/tcp/$differentport" -api_unreachable="/ip4/127.0.0.1/tcp/1" - -test_expect_success "config setup" ' - peerid=$(ipfs config Identity.PeerID) && - test_check_peerid "$peerid" -' - -test_client() { - opts="$@" - echo "OPTS = " $opts - test_expect_success "client must work properly $state" ' - printf "$peerid" >expected && - ipfs id -f="" $opts >actual && - test_cmp expected actual - ' -} - -test_client_must_fail() { - opts="$@" - echo "OPTS = " $opts - test_expect_success "client should fail $state" ' - echo "Error: cannot connect to the api. Is the deamon running? To run as a standalone CLI command remove the api file in \`\$IPFS_PATH/api\`" >expected_err && - test_must_fail ipfs id -f="" $opts >actual 2>actual_err && - test_cmp expected_err actual_err - ' -} - -test_client_suite() { - state="$1" - cfg_success="$2" - diff_success="$3" - api_fromcfg="$4" - api_different="$5" - - # must always work - test_client - - # must always err - test_client_must_fail --api "$api_unreachable" - - if [ "$cfg_success" = true ]; then - test_client --api "$api_fromcfg" - else - test_client_must_fail --api "$api_fromcfg" - fi - - if [ "$diff_success" = true ]; then - test_client --api "$api_different" - else - test_client_must_fail --api "$api_different" - fi -} - -# first, test things without daemon, without /api file -# with no daemon, everything should fail -# (using unreachable because API_MADDR doesnt get set until daemon start) -test_client_suite "(daemon off, no --api, no /api file)" false false "$api_unreachable" "$api_other" - - -# then, test things with daemon, with /api file - -test_launch_ipfs_daemon - -test_expect_success "'ipfs daemon' creates api file" ' - test -f ".ipfs/api" -' - -test_client_suite "(daemon on, no --api, /api file from cfg)" true false "$API_MADDR" "$api_other" - -# then, test things without daemon, with /api file - -test_kill_ipfs_daemon - -# again, both should fail -test_client_suite "(daemon off, no --api, /api file from cfg)" false false "$API_MADDR" "$api_other" - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-daemon-init.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-daemon-init.sh deleted file mode 100755 index 8826ad24..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-daemon-init.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Juan Batiz-Benet -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test daemon --init command" - -. lib/test-lib.sh - -# We don't want the normal test_init_ipfs but we need to make sure the -# IPFS_PATH is set correctly. -export IPFS_PATH="$(pwd)/.ipfs" - -# safety check since we will be removing the directory -if [ -e "$IPFS_PATH" ]; then - echo "$IPFS_PATH exists" - exit 1 -fi - -test_ipfs_daemon_init() { - # Doing it manually since we want to launch the daemon with an - # empty or non-existent repo; the normal - # test_launch_ipfs_daemon does not work since it assumes the - # repo was created a particular way with regard to the API - # server. - - test_expect_success "'ipfs daemon --init' succeeds" ' - ipfs daemon --init --init-profile=test >actual_daemon 2>daemon_err & - IPFS_PID=$! - sleep 2 && - if ! kill -0 $IPFS_PID; then cat daemon_err; return 1; fi - ' - - test_expect_success "'ipfs daemon' can be killed" ' - test_kill_repeat_10_sec $IPFS_PID - ' -} - -test_expect_success "remove \$IPFS_PATH dir" ' - rm -rf "$IPFS_PATH" -' -test_ipfs_daemon_init - -test_expect_success "create empty \$IPFS_PATH dir" ' - rm -rf "$IPFS_PATH" && - mkdir "$IPFS_PATH" -' - -test_ipfs_daemon_init - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-external.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-external.sh deleted file mode 100755 index 6a849438..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0063-external.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test external command functionality" - -. lib/test-lib.sh - - -# set here so daemon launches with it -PATH=`pwd`/bin:$PATH - -test_init_ipfs - -test_expect_success "create fake ipfs-update bin" ' - mkdir bin && - echo "#!/bin/sh" > bin/ipfs-update && - echo "pwd" >> bin/ipfs-update && - echo "test -e \"$IPFS_PATH/repo.lock\" || echo \"repo not locked\" " >> bin/ipfs-update && - chmod +x bin/ipfs-update && - mkdir just_for_test -' - -test_expect_success "external command runs from current user directory and doesn't lock repo" ' - (cd just_for_test && ipfs update) > actual -' - -test_expect_success "output looks good" ' - echo `pwd`/just_for_test > exp && - echo "repo not locked" >> exp && - test_cmp exp actual -' - -test_launch_ipfs_daemon - -test_expect_success "external command runs from current user directory when daemon is running" ' - (cd just_for_test && ipfs update) > actual -' - -test_expect_success "output looks good" ' - echo `pwd`/just_for_test > exp && - test_cmp exp actual -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0065-active-requests.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0065-active-requests.sh deleted file mode 100755 index e73e1198..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0065-active-requests.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test active request commands" - -. lib/test-lib.sh - -test_init_ipfs -test_launch_ipfs_daemon - -test_expect_success "command works" ' - ipfs diag cmds > cmd_out -' - -test_expect_success "invoc shows up in output" ' - grep "diag/cmds" cmd_out > /dev/null -' - -test_expect_success "start longer running command" ' - ipfs log tail & - LOGPID=$! - go-sleep 100ms -' - -test_expect_success "long running command shows up" ' - ipfs diag cmds > cmd_out2 -' - -test_expect_success "output looks good" ' - grep "log/tail" cmd_out2 | grep "true" > /dev/null -' - -test_expect_success "kill log cmd" ' - kill $LOGPID - go-sleep 0.5s - kill $LOGPID - - wait $LOGPID || true -' - -test_expect_success "long running command inactive" ' - ipfs diag cmds > cmd_out3 -' - -test_expect_success "command shows up as inactive" ' - grep "log/tail" cmd_out3 | grep "false" -' - -test_kill_ipfs_daemon -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0066-migration.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0066-migration.sh deleted file mode 100755 index 5e1301be..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0066-migration.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test migrations auto update prompt" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "setup mock migrations" ' - mkdir bin && - echo "#!/bin/bash" > bin/fs-repo-migrations && - echo "echo 5" >> bin/fs-repo-migrations && - chmod +x bin/fs-repo-migrations && - export PATH="$(pwd)/bin":$PATH -' - -test_expect_success "manually reset repo version to 3" ' - echo "3" > "$IPFS_PATH"/version -' - -test_expect_success "ipfs daemon --migrate=false fails" ' - test_expect_code 1 ipfs daemon --migrate=false > false_out -' - -test_expect_success "output looks good" ' - grep "Please get fs-repo-migrations from https://dist.ipfs.io" false_out -' - -test_expect_success "ipfs daemon --migrate=true runs migration" ' - test_expect_code 1 ipfs daemon --migrate=true > true_out -' - -test_expect_failure "output looks good" ' - grep "Running: " true_out > /dev/null && - grep "Success: fs-repo has been migrated to version 5." true_out > /dev/null -' - -test_expect_success "'ipfs daemon' prompts to auto migrate" ' - test_expect_code 1 ipfs daemon > daemon_out 2> daemon_err -' - -test_expect_success "output looks good" ' - grep "Found outdated fs-repo" daemon_out > /dev/null && - grep "Run migrations now?" daemon_out > /dev/null && - grep "Please get fs-repo-migrations from https://dist.ipfs.io" daemon_out > /dev/null -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0070-user-config.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0070-user-config.sh deleted file mode 100755 index 63c26ea3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0070-user-config.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Brian Holder-Chow Lin On -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test user-provided config values" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "bootstrap doesn't overwrite user-provided config keys (top-level)" ' - ipfs config Foo.Bar baz && - ipfs bootstrap rm --all && - echo "baz" >expected && - ipfs config Foo.Bar >actual && - test_cmp expected actual -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0080-repo.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0080-repo.sh deleted file mode 100755 index a1ba5676..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0080-repo.sh +++ /dev/null @@ -1,293 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo operations" - -. lib/test-lib.sh - -test_init_ipfs -test_launch_ipfs_daemon --offline - -test_expect_success "'ipfs repo gc' succeeds" ' - ipfs repo gc >gc_out_actual -' - -test_expect_success "'ipfs add afile' succeeds" ' - echo "some text" >afile && - HASH=`ipfs add -q afile` -' - -test_expect_success "added file was pinned" ' - ipfs pin ls --type=recursive >actual && - grep "$HASH" actual -' - -test_expect_success "'ipfs repo gc' succeeds" ' - ipfs repo gc >gc_out_actual -' - -test_expect_success "'ipfs repo gc' looks good (patch root)" ' - PATCH_ROOT=QmQXirSbubiySKnqaFyfs5YzziXRB5JEVQVjU6xsd7innr && - grep "removed $PATCH_ROOT" gc_out_actual -' - -test_expect_success "'ipfs repo gc' doesnt remove file" ' - ipfs cat "$HASH" >out && - test_cmp out afile -' - -test_expect_success "'ipfs pin rm' succeeds" ' - ipfs pin rm -r "$HASH" >actual1 -' - -test_expect_success "'ipfs pin rm' output looks good" ' - echo "unpinned $HASH" >expected1 && - test_cmp expected1 actual1 -' - -test_expect_success "ipfs repo gc fully reverse ipfs add (part 1)" ' - ipfs repo gc && - random 100000 41 >gcfile && - expected="$(directory_size "$IPFS_PATH/blocks")" && - find "$IPFS_PATH/blocks" -type f && - hash=$(ipfs add -q gcfile) && - ipfs pin rm -r $hash && - ipfs repo gc -' - -test_kill_ipfs_daemon - -test_expect_success "ipfs repo gc fully reverse ipfs add (part 2)" ' - actual=$(directory_size "$IPFS_PATH/blocks") && - { test "$actual" -eq "$expected" || test_fsh echo "$actual != $expected"; } && - { test "$actual" -gt "0" || test_fsh echo "not($actual > 0)"; } -' - -test_launch_ipfs_daemon --offline - -test_expect_success "file no longer pinned" ' - ipfs pin ls --type=recursive --quiet >actual2 && - test_expect_code 1 grep $HASH actual2 -' - -test_expect_success "recursively pin afile(default action)" ' - HASH=`ipfs add -q afile` && - ipfs pin add "$HASH" -' - -test_expect_success "recursively pin rm afile (default action)" ' - ipfs pin rm "$HASH" -' - -test_expect_success "recursively pin afile" ' - ipfs pin add -r "$HASH" -' - -test_expect_success "pinning directly should fail now" ' - echo "Error: pin: $HASH already pinned recursively" >expected3 && - test_must_fail ipfs pin add -r=false "$HASH" 2>actual3 && - test_cmp expected3 actual3 -' - -test_expect_success "'ipfs pin rm -r=false ' should fail" ' - echo "Error: $HASH is pinned recursively" >expected4 - test_must_fail ipfs pin rm -r=false "$HASH" 2>actual4 && - test_cmp expected4 actual4 -' - -test_expect_success "remove recursive pin, add direct" ' - echo "unpinned $HASH" >expected5 && - ipfs pin rm -r "$HASH" >actual5 && - test_cmp expected5 actual5 && - ipfs pin add -r=false "$HASH" -' - -test_expect_success "remove direct pin" ' - echo "unpinned $HASH" >expected6 && - ipfs pin rm "$HASH" >actual6 && - test_cmp expected6 actual6 -' - -test_expect_success "'ipfs repo gc' removes file" ' - ipfs repo gc >actual7 && - grep "removed $HASH" actual7 && - grep "removed $PATCH_ROOT" actual7 -' - -test_expect_success "'ipfs refs local' no longer shows file" ' - EMPTY_DIR=QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn && - ipfs refs local >actual8 && - grep "QmYCvbfNbCwFR45HiNP45rwJgvatpiW38D961L5qAhUM5Y" actual8 && - grep "$EMPTY_DIR" actual8 && - grep "$HASH_WELCOME_DOCS" actual8 && - test_must_fail grep "$HASH" actual8 && - test_must_fail grep "$PATCH_ROOT" actual8 -' - -test_expect_success "adding multiblock random file succeeds" ' - random 1000000 >multiblock && - MBLOCKHASH=`ipfs add -q multiblock` -' - -test_expect_success "'ipfs pin ls --type=indirect' is correct" ' - ipfs refs "$MBLOCKHASH" >refsout && - ipfs refs -r "$HASH_WELCOME_DOCS" >>refsout && - sed -i"~" "s/\(.*\)/\1 indirect/g" refsout && - ipfs pin ls --type=indirect >indirectpins && - test_sort_cmp refsout indirectpins -' - -test_expect_success "pin something directly" ' - echo "ipfs is so awesome" >awesome && - DIRECTPIN=`ipfs add -q awesome` && - echo "unpinned $DIRECTPIN" >expected9 && - ipfs pin rm -r "$DIRECTPIN" >actual9 && - test_cmp expected9 actual9 && - - echo "pinned $DIRECTPIN directly" >expected10 && - ipfs pin add -r=false "$DIRECTPIN" >actual10 && - test_cmp expected10 actual10 -' - -test_expect_success "'ipfs pin ls --type=direct' is correct" ' - echo "$DIRECTPIN direct" >directpinexpected && - ipfs pin ls --type=direct >directpinout && - test_sort_cmp directpinexpected directpinout -' - -test_expect_success "'ipfs pin ls --type=recursive' is correct" ' - echo "$MBLOCKHASH" >rp_expected && - echo "$HASH_WELCOME_DOCS" >>rp_expected && - echo "$EMPTY_DIR" >>rp_expected && - sed -i"~" "s/\(.*\)/\1 recursive/g" rp_expected && - ipfs pin ls --type=recursive >rp_actual && - test_sort_cmp rp_expected rp_actual -' - -test_expect_success "'ipfs pin ls --type=all --quiet' is correct" ' - cat directpinout >allpins && - cat rp_actual >>allpins && - cat indirectpins >>allpins && - cut -f1 -d " " allpins | sort | uniq >> allpins_uniq_hashes && - ipfs pin ls --type=all --quiet >actual_allpins && - test_sort_cmp allpins_uniq_hashes actual_allpins -' - -test_expect_success "'ipfs refs --unique' is correct" ' - mkdir -p uniques && - echo "content1" > uniques/file1 && - echo "content1" > uniques/file2 && - ipfs add -r -q uniques > add_output && - ROOT=$(tail -n1 add_output) && - ipfs refs --unique $ROOT >expected && - ipfs add -q uniques/file1 >unique_hash && - test_cmp expected unique_hash || test_fsh cat add_output -' - -test_expect_success "'ipfs refs --unique --recursive' is correct" ' - mkdir -p a/b/c && - echo "c1" > a/f1 && - echo "c1" > a/b/f1 && - echo "c1" > a/b/c/f1 && - echo "c2" > a/b/c/f2 && - ipfs add -r -q a >add_output && - ROOT=$(tail -n1 add_output) && - ipfs refs --unique --recursive $ROOT >refs_output && - wc -l refs_output | sed "s/^ *//g" >line_count && - echo "4 refs_output" >expected && - test_cmp expected line_count || test_fsh cat add_output || test_fsh cat refs_output -' - -test_expect_success "'ipfs refs --recursive (bigger)'" ' - mkdir -p b/c/d/e && - echo "content1" >b/f && - echo "content1" >b/c/f1 && - echo "content1" >b/c/d/f2 && - echo "content2" >b/c/f2 && - echo "content2" >b/c/d/f1 && - echo "content2" >b/c/d/e/f && - cp -r b b2 && mv b2 b/b2 && - cp -r b b3 && mv b3 b/b3 && - cp -r b b4 && mv b4 b/b4 && - ipfs add -r -q b >add_output && - hash=$(tail -n1 add_output) && - ipfs refs -r "$hash" >refs_output && - wc -l refs_output | sed "s/^ *//g" >actual && - echo "79 refs_output" >expected && - test_cmp expected actual || test_fsh cat add_output || test_fsh cat refs_output -' - -test_expect_success "'ipfs refs --unique --recursive (bigger)'" ' - ipfs refs -r "$hash" >refs_output && - sort refs_output | uniq >expected && - ipfs refs -r -u "$hash" >actual && - test_sort_cmp expected actual || test_fsh cat refs_output -' - -get_field_num() { - field=$1 - file=$2 - num=$(grep "$field" "$file" | awk '{ print $2 }') - echo $num -} - -test_expect_success "'ipfs repo stat' succeeds" ' - ipfs repo stat > repo-stats -' -test_expect_success "repo stats came out correct" ' - grep "RepoPath" repo-stats && - grep "RepoSize" repo-stats && - grep "NumObjects" repo-stats && - grep "Version" repo-stats && - grep "StorageMax" repo-stats -' - -test_expect_success "'ipfs repo stat' after adding a file" ' - ipfs add repo-stats && - ipfs repo stat > repo-stats-2 -' - -test_expect_success "repo stats are updated correctly" ' - test $(get_field_num "RepoSize" repo-stats-2) -ge $(get_field_num "RepoSize" repo-stats) -' - -test_expect_success "'ipfs repo stat --size-only' succeeds" ' - ipfs repo stat --size-only > repo-stats-size-only -' - -test_expect_success "repo stats came out correct for --size-only" ' - grep "RepoSize" repo-stats-size-only && - grep "StorageMax" repo-stats-size-only && - grep -v "RepoPath" repo-stats-size-only && - grep -v "NumObjects" repo-stats-size-only && - grep -v "Version" repo-stats-size-only -' - -test_expect_success "'ipfs repo version' succeeds" ' - ipfs repo version > repo-version -' - -test_expect_success "repo version came out correct" ' - egrep "^ipfs repo version fs-repo@[0-9]+" repo-version >/dev/null -' - -test_expect_success "'ipfs repo version -q' succeeds" ' - ipfs repo version -q > repo-version-q -' -test_expect_success "repo version came out correct" ' - egrep "^fs-repo@[0-9]+" repo-version-q >/dev/null -' - -test_kill_ipfs_daemon - -test_expect_success "remove Datastore.StorageMax from config" ' - ipfs config Datastore.StorageMax "" -' -test_expect_success "'ipfs repo stat' still succeeds" ' - ipfs repo stat > repo-stats -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0081-repo-pinning.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0081-repo-pinning.sh deleted file mode 100755 index 54e64253..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0081-repo-pinning.sh +++ /dev/null @@ -1,286 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo pinning" - -. lib/test-lib.sh - -test_pin_flag() { - object=$1 - ptype=$2 - expect=$3 - - echo "test_pin_flag" "$@" - - if ipfs pin ls --type="$ptype" "$object" >actual - then - test "$expect" = "true" && return - test_fsh cat actual - return - else - test "$expect" = "false" && return - test_fsh cat actual - return - fi -} - -test_pin() { - object=$1 - shift - - test_str_contains "recursive" $@ - [ "$?" = "0" ] && r="true" || r="false" - - test_str_contains "indirect" $@ - [ "$?" = "0" ] && i="true" || i="false" - - test_str_contains "direct" $@ - [ "$?" = "0" ] && d="true" || d="false" - - test_pin_flag "$object" "recursive" $r || return 1 - test_pin_flag "$object" "indirect" $i || return 1 - test_pin_flag "$object" "direct" $d || return 1 - return 0 -} - - -test_init_ipfs - -# test runs much faster without daemon. -# TODO: turn this back on after: -# https://github.com/ipfs/go-ipfs/issues/1075 -# test_launch_ipfs_daemon - -HASH_FILE6="QmRsBC3Y2G6VRPYGAVpZczx1W7Xw54MtM1NcLKTkn6rx3U" -HASH_FILE5="QmaN3PtyP8DcVGHi3Q2Fcp7CfAFVcVXKddWbHoNvaA41zf" -HASH_FILE4="QmV1aiVgpDknKQugrK59uBUbMrPnsQM1F9FXbFcfgEvUvH" -HASH_FILE3="QmZrr4Pzqp3NnMzMfbMhNe7LghfoUFHVx7c9Po9GZrhKZ7" -HASH_FILE2="QmSkjTornLY72QhmK9NvAz26815pTaoAL42rF8Qi3w2WBP" -HASH_FILE1="QmbgX4aXhSSY88GHmPQ4roizD8wFwPX8jzTLjc8VAp89x4" -HASH_DIR4="QmW98gV71Ns4bX7QbgWAqLiGF3SDC1JpveZSgBh4ExaSAd" -HASH_DIR3="QmRsCaNBMkweZ9vHT5PJRd2TT9rtNKEKyuognCEVxZxF1H" -HASH_DIR2="QmTUTQAgeVfughDSFukMZLbfGvetDJY7Ef5cDXkKK4abKC" -HASH_DIR1="QmNyZVFbgvmzguS2jVMRb8PQMNcCMJrn9E3doDhBbcPNTY" -HASH_NOPINDIR="QmWHjrRJYSfYKz5V9dWWSKu47GdY7NewyRhyTiroXgWcDU" -HASH_NOPIN_FILE1="QmUJT3GQi1dxQyTZbkaWeer9GkCn1d3W3HHRLSDr6PTcpx" -HASH_NOPIN_FILE2="QmarR7m9JT7qHEGhuFNZUEMAnoZ8E9QAfsthHCQ9Y2GfoT" - -DIR1="dir1" -DIR2="dir1/dir2" -DIR4="dir1/dir2/dir4" -DIR3="dir1/dir3" -FILE1="dir1/file1" -FILE2="dir1/file2" -FILE3="dir1/file3" -FILE4="dir1/dir2/file4" -FILE6="dir1/dir2/dir4/file6" -FILE5="dir1/dir3/file5" - -test_expect_success "'ipfs add dir' succeeds" ' - mkdir dir1 && - mkdir dir1/dir2 && - mkdir dir1/dir2/dir4 && - mkdir dir1/dir3 && - echo "some text 1" >dir1/file1 && - echo "some text 2" >dir1/file2 && - echo "some text 3" >dir1/file3 && - echo "some text 1" >dir1/dir2/file1 && - echo "some text 4" >dir1/dir2/file4 && - echo "some text 1" >dir1/dir2/dir4/file1 && - echo "some text 2" >dir1/dir2/dir4/file2 && - echo "some text 6" >dir1/dir2/dir4/file6 && - echo "some text 2" >dir1/dir3/file2 && - echo "some text 5" >dir1/dir3/file5 && - ipfs add -q -r dir1 >actualall && - tail -n1 actualall >actual1 && - echo "$HASH_DIR1" >expected1 && - ipfs repo gc && # remove the patch chaff - test_cmp expected1 actual1 -' - -test_expect_success "objects are there" ' - ipfs cat "$HASH_FILE6" >FILE6_a && - ipfs cat "$HASH_FILE5" >FILE5_a && - ipfs cat "$HASH_FILE4" >FILE4_a && - ipfs cat "$HASH_FILE3" >FILE3_a && - ipfs cat "$HASH_FILE2" >FILE2_a && - ipfs cat "$HASH_FILE1" >FILE1_a && - ipfs ls "$HASH_DIR3" >DIR3_a && - ipfs ls "$HASH_DIR4" >DIR4_a && - ipfs ls "$HASH_DIR2" >DIR2_a && - ipfs ls "$HASH_DIR1" >DIR1_a -' - -# saving this output for later -test_expect_success "ipfs object links $HASH_DIR1 works" ' - ipfs object links $HASH_DIR1 > DIR1_objlink -' - - -test_expect_success "added dir was pinned recursively" ' - test_pin_flag $HASH_DIR1 recursive true -' - -test_expect_success "rest were pinned indirectly" ' - test_pin_flag "$HASH_FILE6" indirect true - test_pin_flag "$HASH_FILE5" indirect true - test_pin_flag "$HASH_FILE4" indirect true - test_pin_flag "$HASH_FILE3" indirect true - test_pin_flag "$HASH_FILE2" indirect true - test_pin_flag "$HASH_FILE1" indirect true - test_pin_flag "$HASH_DIR3" indirect true - test_pin_flag "$HASH_DIR4" indirect true - test_pin_flag "$HASH_DIR2" indirect true -' - -test_expect_success "added dir was NOT pinned indirectly" ' - test_pin_flag "$HASH_DIR1" indirect false -' - -test_expect_success "nothing is pinned directly" ' - ipfs pin ls --type=direct >actual4 && - test_must_be_empty actual4 -' - -test_expect_success "'ipfs repo gc' succeeds" ' - ipfs repo gc >gc_out_actual -' - -test_expect_success "objects are still there" ' - cat FILE6_a FILE5_a FILE4_a FILE3_a FILE2_a FILE1_a >expected45 && - cat DIR3_a DIR4_a DIR2_a DIR1_a >>expected45 && - ipfs cat "$HASH_FILE6" >actual45 && - ipfs cat "$HASH_FILE5" >>actual45 && - ipfs cat "$HASH_FILE4" >>actual45 && - ipfs cat "$HASH_FILE3" >>actual45 && - ipfs cat "$HASH_FILE2" >>actual45 && - ipfs cat "$HASH_FILE1" >>actual45 && - ipfs ls "$HASH_DIR3" >>actual45 && - ipfs ls "$HASH_DIR4" >>actual45 && - ipfs ls "$HASH_DIR2" >>actual45 && - ipfs ls "$HASH_DIR1" >>actual45 && - test_cmp expected45 actual45 -' - -test_expect_success "remove dir recursive pin succeeds" ' - echo "unpinned $HASH_DIR1" >expected5 && - ipfs pin rm -r "$HASH_DIR1" >actual5 && - test_cmp expected5 actual5 -' - -test_expect_success "none are pinned any more" ' - test_pin "$HASH_FILE6" && - test_pin "$HASH_FILE5" && - test_pin "$HASH_FILE4" && - test_pin "$HASH_FILE3" && - test_pin "$HASH_FILE2" && - test_pin "$HASH_FILE1" && - test_pin "$HASH_DIR3" && - test_pin "$HASH_DIR4" && - test_pin "$HASH_DIR2" && - test_pin "$HASH_DIR1" -' - -test_expect_success "pin some directly and indirectly" ' - ipfs pin add -r=false "$HASH_DIR1" >actual7 && - ipfs pin add -r=true "$HASH_DIR2" >>actual7 && - ipfs pin add -r=false "$HASH_FILE1" >>actual7 && - echo "pinned $HASH_DIR1 directly" >expected7 && - echo "pinned $HASH_DIR2 recursively" >>expected7 && - echo "pinned $HASH_FILE1 directly" >>expected7 && - test_cmp expected7 actual7 -' - -test_expect_success "pin lists look good" ' - test_pin $HASH_DIR1 direct && - test_pin $HASH_DIR2 recursive && - test_pin $HASH_DIR3 && - test_pin $HASH_DIR4 indirect && - test_pin $HASH_FILE1 indirect direct && - test_pin $HASH_FILE2 indirect && - test_pin $HASH_FILE3 && - test_pin $HASH_FILE4 indirect && - test_pin $HASH_FILE5 && - test_pin $HASH_FILE6 indirect -' - -test_expect_success "'ipfs repo gc' succeeds" ' - ipfs repo gc >gc_out_actual2 && - echo "removed $HASH_FILE3" > gc_out_exp2 && - echo "removed $HASH_FILE5" >> gc_out_exp2 && - echo "removed $HASH_DIR3" >> gc_out_exp2 && - test_includes_lines gc_out_exp2 gc_out_actual2 -' - -# use object links for HASH_DIR1 here because its children -# no longer exist -test_expect_success "some objects are still there" ' - cat FILE6_a FILE4_a FILE2_a FILE1_a >expected8 && - cat DIR4_a DIR2_a DIR1_objlink >>expected8 && - ipfs cat "$HASH_FILE6" >actual8 && - ipfs cat "$HASH_FILE4" >>actual8 && - ipfs cat "$HASH_FILE2" >>actual8 && - ipfs cat "$HASH_FILE1" >>actual8 && - ipfs ls "$HASH_DIR4" >>actual8 && - ipfs ls "$HASH_DIR2" >>actual8 && - ipfs object links "$HASH_DIR1" >>actual8 && - test_cmp expected8 actual8 -' - -# todo: make this faster somehow. -test_expect_success "some are no longer there" ' - test_must_fail ipfs cat "$HASH_FILE5" && - test_must_fail ipfs cat "$HASH_FILE3" && - test_must_fail ipfs ls "$HASH_DIR3" -' - -test_expect_success "recursive pin fails without objects" ' - ipfs pin rm -r=false "$HASH_DIR1" && - test_must_fail ipfs pin add -r "$HASH_DIR1" 2>err_expected8 && - grep "pin: merkledag: not found" err_expected8 || - test_fsh cat err_expected8 -' - -test_expect_success "test add nopin file" ' - echo "test nopin data" > test_nopin_data && - NOPINHASH=$(ipfs add -q --pin=false test_nopin_data) && - test_pin_flag "$NOPINHASH" direct false && - test_pin_flag "$NOPINHASH" indirect false && - test_pin_flag "$NOPINHASH" recursive false -' - - -test_expect_success "test add nopin dir" ' - mkdir nopin_dir1 && - echo "some nopin text 1" >nopin_dir1/file1 && - echo "some nopin text 2" >nopin_dir1/file2 && - ipfs add -q -r --pin=false nopin_dir1 | tail -n1 >actual1 && - echo "$HASH_NOPINDIR" >expected1 && - test_cmp actual1 expected1 && - test_pin_flag "$HASH_NOPINDIR" direct false && - test_pin_flag "$HASH_NOPINDIR" indirect false && - test_pin_flag "$HASH_NOPINDIR" recursive false && - test_pin_flag "$HASH_NOPIN_FILE1" direct false && - test_pin_flag "$HASH_NOPIN_FILE1" indirect false && - test_pin_flag "$HASH_NOPIN_FILE1" recursive false && - test_pin_flag "$HASH_NOPIN_FILE2" direct false && - test_pin_flag "$HASH_NOPIN_FILE2" indirect false && - test_pin_flag "$HASH_NOPIN_FILE2" recursive false - -' - -FICTIONAL_HASH="QmXV4f9v8a56MxWKBhP3ETsz4EaafudU1cKfPaaJnenc48" -test_launch_ipfs_daemon -test_expect_success "test unpinning a hash that's not pinned" " - test_expect_code 1 ipfs pin rm $FICTIONAL_HASH --timeout=2s - test_expect_code 1 ipfs pin rm $FICTIONAL_HASH/a --timeout=2s - test_expect_code 1 ipfs pin rm $FICTIONAL_HASH/a/b --timeout=2s -" -test_kill_ipfs_daemon - -# test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0082-repo-gc-auto.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0082-repo-gc-auto.sh deleted file mode 100755 index 50a4e6fa..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0082-repo-gc-auto.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash -# -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo auto gc" - -. lib/test-lib.sh - -skip_all="skipping auto repo gc tests until they can be fixed" - -test_done - -check_ipfs_storage() { - ipfs config Datastore.StorageMax -} - -test_init_ipfs - -test_expect_success "generate 2 600 kB files and 2 MB file using go-random" ' - random 600k 41 >600k1 && - random 600k 42 >600k2 && - random 2M 43 >2M -' - -test_expect_success "set ipfs gc watermark, storage max, and gc timeout" ' - test_config_set Datastore.StorageMax "2MB" && - test_config_set --json Datastore.StorageGCWatermark 60 && - test_config_set Datastore.GCPeriod "20ms" -' - -test_launch_ipfs_daemon --enable-gc - -test_gc() { - test_expect_success "adding data below watermark doesn't trigger auto gc" ' - ipfs add 600k1 >/dev/null && - disk_usage "$IPFS_PATH/blocks" >expected && - go-sleep 40ms && - disk_usage "$IPFS_PATH/blocks" >actual && - test_cmp expected actual - ' - - test_expect_success "adding data beyond watermark triggers auto gc" ' - HASH=`ipfs add -q 600k2` && - ipfs pin rm -r $HASH && - go-sleep 40ms && - DU=$(disk_usage "$IPFS_PATH/blocks") && - if test $(uname -s) = "Darwin"; then - test "$DU" -lt 1400 # 60% of 2MB - else - test "$DU" -lt 1000000 - fi - ' -} - -#TODO: conditional GC test is disabled due to files size bug in ipfs add -#test_expect_success "adding data beyond storageMax fails" ' -# test_must_fail ipfs add 2M 2>add_fail_out -#' -#test_expect_success "ipfs add not enough space message looks good" ' -# echo "Error: file size exceeds slack space allowed by storageMax. Maybe unpin some files?" >add_fail_exp && -# test_cmp add_fail_exp add_fail_out -#' - -test_expect_success "periodic auto gc stress test" ' - for i in $(test_seq 1 20) - do - test_gc || return 1 - done -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0083-repo-fsck.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0083-repo-fsck.sh deleted file mode 100755 index fe567840..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0083-repo-fsck.sh +++ /dev/null @@ -1,190 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Mike Pfister -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo fsck operations" - -. lib/test-lib.sh - -test_init_ipfs - -############################# -# Test without daemon running -############################# -# NOTE: if api file isn't present we can assume the daemon isn't running - -# Try with all lock files present: repo.lock, api, and datastore/LOCK with -# repo.lock and datastore/LOCK being empty -test_expect_success "'ipfs repo fsck' succeeds with no daemon running empty -repo.lock" ' - mkdir -p $IPFS_PATH && - mkdir -p $IPFS_PATH/datastore && - touch $IPFS_PATH/datastore/LOCK && - touch $IPFS_PATH/repo.lock && - printf "/ip4/127.0.0.1/tcp/5001" > "$IPFS_PATH/api" && - ipfs repo fsck > fsck_out_actual1 -' -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual1 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -# Try with all lock files present: repo.lock, api, and datastore/LOCK with -# repo.lock is non-zero TODO: this test is broken until we find consensus on the -# non-zero repo.lock issue -test_expect_success "'ipfs repo fsck' succeeds with no daemon running non-zero -repo.lock" ' - mkdir -p "$IPFS_PATH" && - printf ":D" > "$IPFS_PATH/repo.lock" && - touch "$IPFS_PATH/datastore/LOCK" && - ipfs repo fsck > fsck_out_actual1b -' -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual1b -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -######################## -# Test for partial locks -######################## - -# Try with locks api and datastore/LOCK -test_expect_success "'ipfs repo fsck' succeeds partial lock" ' - printf "/ip4/127.0.0.1/tcp/5001" > "$IPFS_PATH/api" && - touch $IPFS_PATH/datastore/LOCK && - ipfs repo fsck > fsck_out_actual2 -' - -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual2 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -# Try with locks api and repo.lock -test_expect_success "'ipfs repo fsck' succeeds partial lock" ' - printf "/ip4/127.0.0.1/tcp/5001" > "$IPFS_PATH/api" && - touch $IPFS_PATH/repo.lock && - ipfs repo fsck > fsck_out_actual3 -' - -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual3 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -# Try with locks repo.lock and datastore -test_expect_success "'ipfs repo fsck' succeeds partial lock" ' - touch $IPFS_PATH/repo.lock && - touch $IPFS_PATH/datastore/LOCK && - ipfs repo fsck > fsck_out_actual4 -' - -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual4 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -####################### -# Test for single locks -####################### - -# Try with single locks repo.lock -test_expect_success "'ipfs repo fsck' succeeds partial lock" ' - touch $IPFS_PATH/repo.lock && - ipfs repo fsck > fsck_out_actual5 -' -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual5 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -# Try with single locks datastore/LOCK -test_expect_success "'ipfs repo fsck' succeeds partial lock" ' - touch $IPFS_PATH/datastore/LOCK && - ipfs repo fsck > fsck_out_actual6 -' -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual6 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -# Try with single lock api -test_expect_success "'ipfs repo fsck' succeeds partial lock" ' - printf "/ip4/127.0.0.1/tcp/5001" > "$IPFS_PATH/api" && - ipfs repo fsck > fsck_out_actual7 -' - -test_expect_success "'ipfs repo fsck' output looks good with no daemon" ' - grep "Lockfiles have been removed." fsck_out_actual7 -' - -# Make sure the files are actually removed -test_expect_success "'ipfs repo fsck' confirm file deletion" ' - test ! -e "$IPFS_PATH/repo.lock" && - test ! -e "$IPFS_PATH/datastore/LOCK" && - test ! -e "$IPFS_PATH/api" -' - -########################## -# Test with daemon running -########################## - -test_launch_ipfs_daemon - -# Daemon is running -> command doesn't run -test_expect_success "'ipfs repo fsck' fails with daemon running" ' - ! (ipfs repo fsck 2>fsck_out_actual8 ) - -' - -test_expect_success "'ipfs repo fsck' output looks good with daemon" ' - grep "Error: ipfs daemon is running" fsck_out_actual8 -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0084-repo-read-rehash.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0084-repo-read-rehash.sh deleted file mode 100755 index 7c180793..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0084-repo-read-rehash.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) Jakub Sztandera -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs blockstore repo read check." - -. lib/test-lib.sh - -rm -rf "$IPF_PATH/*" - -test_init_ipfs - - -H_BLOCK1=$(echo "Block 1" | ipfs add -q) -H_BLOCK2=$(echo "Block 2" | ipfs add -q) - -BS_BLOCK1="XZ/CIQPDDQH5PDJTF4QSNMPFC45FQZH5MBSWCX2W254P7L7HGNHW5MQXZA.data" -BS_BLOCK2="CK/CIQNYWBOKHY7TCY7FUOBXKVJ66YRMARDT3KC7PPY6UWWPZR4YA67CKQ.data" - - -test_expect_success 'blocks are swapped' ' - ipfs cat $H_BLOCK2 > noswap && - cp -f "$IPFS_PATH/blocks/$BS_BLOCK1" "$IPFS_PATH/blocks/$BS_BLOCK2" && - ipfs cat $H_BLOCK2 > swap && - test_must_fail test_cmp noswap swap -' - -ipfs config --bool Datastore.HashOnRead true - -test_check_bad_blocks() { - test_expect_success 'getting modified block fails' ' - (test_must_fail ipfs cat $H_BLOCK2 2> err_msg) && - grep "block in storage has different hash than requested" err_msg - ' - - test_expect_success "block shows up in repo verify" ' - test_expect_code 1 ipfs repo verify > verify_out && - grep "$H_BLOCK2" verify_out - ' -} - -test_check_bad_blocks - -test_expect_success "can add and cat a raw-leaf file" ' - HASH=$(echo "stuff" | ipfs add -q --raw-leaves) && - ipfs cat $HASH > /dev/null -' - -test_launch_ipfs_daemon -test_check_bad_blocks -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0085-pins.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0085-pins.sh deleted file mode 100755 index a5893eba..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0085-pins.sh +++ /dev/null @@ -1,193 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs pinning operations" - -. lib/test-lib.sh - - -test_pins() { - EXTRA_ARGS=$1 - BASE=$2 - if [ -n "$BASE" ]; then - BASE_ARGS="--cid-base=$BASE" - fi - - test_expect_success "create some hashes $BASE" ' - HASH_A=$(echo "A" | ipfs add $BASE_ARGS -q --pin=false) && - HASH_B=$(echo "B" | ipfs add $BASE_ARGS -q --pin=false) && - HASH_C=$(echo "C" | ipfs add $BASE_ARGS -q --pin=false) && - HASH_D=$(echo "D" | ipfs add $BASE_ARGS -q --pin=false) && - HASH_E=$(echo "E" | ipfs add $BASE_ARGS -q --pin=false) && - HASH_F=$(echo "F" | ipfs add $BASE_ARGS -q --pin=false) && - HASH_G=$(echo "G" | ipfs add $BASE_ARGS -q --pin=false) - ' - - test_expect_success "put all those hashes in a file" ' - echo $HASH_A > hashes && - echo $HASH_B >> hashes && - echo $HASH_C >> hashes && - echo $HASH_D >> hashes && - echo $HASH_E >> hashes && - echo $HASH_F >> hashes && - echo $HASH_G >> hashes - ' - - if [ -n "$BASE" ]; then - test_expect_success "make sure hashes are in $BASE" ' - cat hashes | xargs cid-fmt %b | sort -u > actual - echo base32 > expected - test_cmp expected actual - ' - fi - - test_expect_success "'ipfs pin add $EXTRA_ARGS' via stdin" ' - cat hashes | ipfs pin add $EXTRA_ARGS $BASE_ARGS | tee actual - ' - - test_expect_success "'ipfs pin add $EXTRA_ARGS' output looks good" ' - sed -e "s/^/pinned /; s/$/ recursively/" hashes > expected && - test_cmp expected actual - ' - - test_expect_success "see if verify works" ' - ipfs pin verify - ' - - test_expect_success "see if verify --verbose $BASE_ARGS works" ' - ipfs pin verify --verbose $BASE_ARGS > verify_out && - test $(cat verify_out | wc -l) -ge 7 && - test_should_contain "$HASH_A ok" verify_out && - test_should_contain "$HASH_B ok" verify_out && - test_should_contain "$HASH_C ok" verify_out && - test_should_contain "$HASH_D ok" verify_out && - test_should_contain "$HASH_E ok" verify_out && - test_should_contain "$HASH_F ok" verify_out && - test_should_contain "$HASH_G ok" verify_out - ' - - test_expect_success "ipfs pin ls $BASE_ARGS works" ' - ipfs pin ls $BASE_ARGS > ls_out && - test_should_contain "$HASH_A" ls_out && - test_should_contain "$HASH_B" ls_out && - test_should_contain "$HASH_C" ls_out && - test_should_contain "$HASH_D" ls_out && - test_should_contain "$HASH_E" ls_out && - test_should_contain "$HASH_F" ls_out && - test_should_contain "$HASH_G" ls_out - ' - - test_expect_success "test pin ls $BASE_ARGS hash" ' - echo $HASH_B | test_must_fail grep /ipfs && # just to be sure - ipfs pin ls $BASE_ARGS $HASH_B > ls_hash_out && - echo "$HASH_B recursive" > ls_hash_exp && - test_cmp ls_hash_exp ls_hash_out - ' - - test_expect_success "unpin those hashes" ' - cat hashes | ipfs pin rm - ' - - test_expect_success "test pin update" ' - ipfs pin add "$HASH_A" && - ipfs pin ls $BASE_ARGS | tee before_update && - test_should_contain "$HASH_A" before_update && - test_must_fail grep -q "$HASH_B" before_update && - ipfs pin update --unpin=true "$HASH_A" "$HASH_B" && - ipfs pin ls $BASE_ARGS > after_update && - test_must_fail grep -q "$HASH_A" after_update && - test_should_contain "$HASH_B" after_update && - ipfs pin rm "$HASH_B" - ' -} - -RANDOM_HASH=Qme8uX5n9hn15pw9p6WcVKoziyyC9LXv4LEgvsmKMULjnV - -test_pins_error_reporting() { - EXTRA_ARGS=$1 - - test_expect_success "'ipfs pin add $EXTRA_ARGS' on non-existent hash should fail" ' - test_must_fail ipfs pin add $EXTRA_ARGS $RANDOM_HASH 2> err && - grep -q "not found" err - ' -} - -test_pin_dag_init() { - EXTRA_ARGS=$1 - - test_expect_success "'ipfs add $EXTRA_ARGS --pin=false' 1MB file" ' - random 1048576 56 > afile && - HASH=`ipfs add $EXTRA_ARGS --pin=false -q afile` - ' -} - -test_pin_dag() { - test_pin_dag_init $1 - - test_expect_success "'ipfs pin add --progress' file" ' - ipfs pin add --recursive=true $HASH - ' - - test_expect_success "'ipfs pin rm' file" ' - ipfs pin rm $HASH - ' - - test_expect_success "remove part of the dag" ' - PART=`ipfs refs $HASH | head -1` && - ipfs block rm $PART - ' - - test_expect_success "pin file, should fail" ' - test_must_fail ipfs pin add --recursive=true $HASH 2> err && - cat err && - grep -q "not found" err - ' -} - -test_pin_progress() { - test_pin_dag_init - - test_expect_success "'ipfs pin add --progress' file" ' - ipfs pin add --progress $HASH 2> err - ' - - test_expect_success "pin progress reported correctly" ' - cat err - grep -q " 5 nodes" err - ' -} - -test_init_ipfs - -test_pins -test_pins --progress -test_pins '' base32 - -test_pins_error_reporting -test_pins_error_reporting --progress - -test_pin_dag -test_pin_dag --raw-leaves - -test_pin_progress - -test_launch_ipfs_daemon --offline - -test_pins -test_pins --progress -test_pins '' base32 - -test_pins_error_reporting -test_pins_error_reporting --progress - -test_pin_dag -test_pin_dag --raw-leaves - -test_pin_progress - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0086-repo-verify.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0086-repo-verify.sh deleted file mode 100755 index 0f12fef8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0086-repo-verify.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo fsck" - -. lib/test-lib.sh - -test_init_ipfs - -sort_rand() { - case `uname` in - Linux|FreeBSD) - sort -R - ;; - Darwin) - ruby -e 'puts STDIN.readlines.shuffle' - ;; - *) - echo "unsupported system: $(uname)" - esac -} - -check_random_corruption() { - to_break=$(find "$IPFS_PATH/blocks" -type f -name '*.data' | sort_rand | head -n 1) - - test_expect_success "back up file and overwrite it" ' - cp "$to_break" backup_file && - echo "this is super broken" > "$to_break" - ' - - test_expect_success "repo verify detects failure" ' - test_expect_code 1 ipfs repo verify - ' - - test_expect_success "replace the object" ' - cp backup_file "$to_break" - ' - - test_expect_success "ipfs repo verify passes just fine now" ' - ipfs repo verify - ' -} - -test_expect_success "create some files" ' - random-files -depth=3 -dirs=4 -files=10 foobar > /dev/null -' - -test_expect_success "add them all" ' - ipfs add -r -q foobar > /dev/null -' - -for i in `seq 20` -do - check_random_corruption -done - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0087-repo-robust-gc.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0087-repo-robust-gc.sh deleted file mode 100755 index 896fc692..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0087-repo-robust-gc.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test robustness of garbage collector" - -. lib/test-lib.sh -set -e - -test_gc_robust_part1() { - - test_expect_success "add a 1MB file with --raw-leaves" ' - random 1048576 56 > afile && - HASH1=`ipfs add --raw-leaves -q afile` - ' - - HASH1FILE=.ipfs/blocks/L3/CIQNIPL4GP62ZMNNSLZ2G33Z3T5VAN3YHCJTGT5FG45XWH5FGZRXL3A.data - - LEAF1=zb2rhZWKCMcHCfCym41ocwE5BhNQsEVLrwBkLEQaxJzRHHZch - LEAF1FILE=.ipfs/blocks/C2/AFKREIBKRCW7HF6NHR6DVWECQXC5RQC7U7PKHKTI53BYYZNQP23DK5FC2Y.data - - LEAF2=zb2rhdUpCuyoQPRtvBW8JhAEfPaNd9dBb3QQCMMWYS1V8hjBR - LEAF2FILE=.ipfs/blocks/Q6/BAFKREIDFSUIR43GJPHNDXXQA45GJVNRZBET3CRPUMYJCBLK3RTN7ZAMQ6Q - - LEAF3=zb2rhnwyvreekPqEMAbKqs35KYHxkNi7pXED7L2TfJKveTTva - LEAF4=zb2rhnvAVvfDDnndcfQkwqNgUm94ba3zBSXyJKCfVXwU4FXx2 - - test_expect_success "remove a leaf node from the repo manually" ' - rm "$LEAF1FILE" - ' - - test_expect_success "check that the node is removed" ' - test_must_fail ipfs cat $HASH1 - ' - - test_expect_success "'ipfs repo gc' should still be be fine" ' - ipfs repo gc - ' - - test_expect_success "corrupt the root node of 1MB file" ' - test -e "$HASH1FILE" && - dd if=/dev/zero of="$HASH1FILE" count=1 bs=100 conv=notrunc - ' - - test_expect_success "'ipfs repo gc' should abort without removing anything" ' - test_must_fail ipfs repo gc 2>&1 | tee gc_err && - grep -q "could not retrieve links for $HASH1" gc_err && - grep -q "aborted" gc_err - ' - - test_expect_success "leaf nodes were not removed after gc" ' - ipfs cat $LEAF3 > /dev/null && - ipfs cat $LEAF4 > /dev/null - ' - - test_expect_success "unpin the 1MB file" ' - ipfs pin rm $HASH1 - ' - - # make sure the permission problem is fixed on exit, otherwise cleanup - # will fail - trap "chmod 700 `dirname "$LEAF2FILE"` 2> /dev/null || true" 0 - - test_expect_success "create a permission problem" ' - chmod 500 `dirname "$LEAF2FILE"` && - test_must_fail ipfs block rm $LEAF2 2>&1 | tee block_rm_err && - grep -q "permission denied" block_rm_err - ' - - test_expect_success "'ipfs repo gc' should still run and remove as much as possible" ' - test_must_fail ipfs repo gc 2>&1 | tee repo_gc_out && - grep -q "removed $HASH1" repo_gc_out && - grep -q "could not remove $LEAF2" repo_gc_out && - grep -q "removed $LEAF3" repo_gc_out && - grep -q "removed $LEAF4" repo_gc_out - ' - - test_expect_success "fix the permission problem" ' - chmod 700 `dirname "$LEAF2FILE"` - ' - - test_expect_success "'ipfs repo gc' should be ok now" ' - ipfs repo gc | tee repo_gc_out - grep -q "removed $LEAF2" repo_gc_out - ' -} - -test_gc_robust_part2() { - - test_expect_success "add 1MB file normally (i.e., without raw leaves)" ' - random 1048576 56 > afile && - HASH2=`ipfs add -q afile` - ' - - LEAF1=QmSijovevteoY63Uj1uC5b8pkpDU5Jgyk2dYBqz3sMJUPc - LEAF1FILE=.ipfs/blocks/ME/CIQECF2K344QITW5S6E6H6T4DOXDDB2XA2V7BBOCIMN2VVF4Q77SMEY.data - - LEAF2=QmTbPEyrA1JyGUHFvmtx1FNZVzdBreMv8Hc8jV9sBRWhNA - LEAF2FILE=.ipfs/blocks/WM/CIQE4EFIJN2SUTQYSKMKNG7VM75W3SXT6LWJCHJJ73UAWN73WCX3WMY.data - - test_expect_success "add some additional unpinned content" ' - random 1000 3 > junk1 && - random 1000 4 > junk2 && - JUNK1=`ipfs add --pin=false -q junk1` && - JUNK2=`ipfs add --pin=false -q junk2` - ' - - test_expect_success "remove a leaf node from the repo manually" ' - rm "$LEAF1FILE" - ' - - test_expect_success "'ipfs repo gc' should abort" ' - test_must_fail ipfs repo gc 2>&1 | tee repo_gc_out && - grep -q "could not retrieve links for $LEAF1" repo_gc_out && - grep -q "aborted" repo_gc_out - ' - - test_expect_success "test that garbage collector really aborted" ' - ipfs cat $JUNK1 > /dev/null && - ipfs cat $JUNK2 > /dev/null - ' - - test_expect_success "corrupt a key" ' - test -e "$LEAF2FILE" && - dd if=/dev/zero of="$LEAF2FILE" count=1 bs=100 conv=notrunc - ' - - test_expect_success "'ipfs repo gc' should abort with two errors" ' - test_must_fail ipfs repo gc 2>&1 | tee repo_gc_out && - grep -q "could not retrieve links for $LEAF1" repo_gc_out && - grep -q "could not retrieve links for $LEAF2" repo_gc_out && - grep -q "aborted" repo_gc_out - ' - - test_expect_success "'ipfs repo gc --stream-errors' should abort and report each error separately" ' - test_must_fail ipfs repo gc --stream-errors 2>&1 | tee repo_gc_out && - grep -q "Error: could not retrieve links for $LEAF1" repo_gc_out && - grep -q "Error: could not retrieve links for $LEAF2" repo_gc_out && - grep -q "Error: garbage collection aborted" repo_gc_out - ' - - test_expect_success "unpin 1MB file" ' - ipfs pin rm $HASH2 - ' - - test_expect_success "'ipfs repo gc' should be fine now" ' - ipfs repo gc | tee repo_gc_out && - grep -q "removed $HASH2" repo_gc_out && - grep -q "removed $LEAF2" repo_gc_out - ' -} - -test_init_ipfs - -test_gc_robust_part1 -test_gc_robust_part2 - -test_launch_ipfs_daemon --offline - -test_gc_robust_part1 -test_gc_robust_part2 - -test_kill_ipfs_daemon - -test_done - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0088-repo-stat-symlink.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0088-repo-stat-symlink.sh deleted file mode 100755 index 6e6aedbd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0088-repo-stat-symlink.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 John Reed -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test 'ipfs repo stat' where IPFS_PATH is a symbolic link" - -. lib/test-lib.sh - -test_expect_success "create symbolic link for IPFS_PATH" ' - mkdir sym_link_target && - ln -s sym_link_target .ipfs -' - -test_init_ipfs - -# ensure that the RepoSize is reasonable when checked via a symlink. -test_expect_success "'ipfs repo stat' RepoSize is correct with sym link" ' - reposize_symlink=$(ipfs repo stat | grep RepoSize | awk '\''{ print $2 }'\'') && - symlink_size=$(file_size .ipfs) && - test "${reposize_symlink}" -gt "${symlink_size}" -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0090-get.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0090-get.sh deleted file mode 100755 index 2e159ac8..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0090-get.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Matt Bell -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test get command" - -. lib/test-lib.sh - -test_init_ipfs - -test_ipfs_get_flag() { - ext="$1"; shift - tar_flag="$1"; shift - flag="$@" - - test_expect_success "ipfs get $flag succeeds" ' - ipfs get "$HASH" '"$flag"' >actual - ' - - test_expect_success "ipfs get $flag output looks good" ' - printf "%s\n" "Saving archive to $HASH$ext" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs get $flag archive output is valid" ' - tar "$tar_flag" "$HASH$ext" && - test_cmp "$HASH" data && - rm "$HASH$ext" && - rm "$HASH" - ' -} - -# we use a function so that we can run it both offline + online -test_get_cmd() { - - test_expect_success "'ipfs get --help' succeeds" ' - ipfs get --help >actual - ' - - test_expect_success "'ipfs get --help' output looks good" ' - egrep "ipfs get.*" actual >/dev/null || - test_fsh cat actual - ' - - test_expect_success "ipfs get succeeds" ' - echo "Hello Worlds!" >data && - HASH=`ipfs add -q data` && - ipfs get "$HASH" >actual - ' - - test_expect_success "ipfs get output looks good" ' - printf "%s\n" "Saving file(s) to $HASH" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs get file output looks good" ' - test_cmp "$HASH" data - ' - - test_expect_success "ipfs get DOES NOT error when trying to overwrite a file" ' - ipfs get "$HASH" >actual && - rm "$HASH" - ' - - test_expect_success "ipfs get works with raw leaves" ' - HASH2=$(ipfs add --raw-leaves -q data) && - ipfs get "$HASH2" >actual2 - ' - - test_expect_success "ipfs get output looks good" ' - printf "%s\n" "Saving file(s) to $HASH2" >expected2 && - test_cmp expected2 actual2 - ' - - test_expect_success "ipfs get file output looks good" ' - test_cmp "$HASH2" data - ' - - test_ipfs_get_flag ".tar" "-xf" -a - - test_ipfs_get_flag ".tar.gz" "-zxf" -a -C - - test_ipfs_get_flag ".tar.gz" "-zxf" -a -C -l 9 - - test_expect_success "ipfs get succeeds (directory)" ' - mkdir -p dir && - touch dir/a && - mkdir -p dir/b && - echo "Hello, Worlds!" >dir/b/c && - HASH2=`ipfs add -r -q dir | tail -n 1` && - ipfs get "$HASH2" >actual - ' - - test_expect_success "ipfs get output looks good (directory)" ' - printf "%s\n" "Saving file(s) to $HASH2" >expected && - test_cmp expected actual - ' - - test_expect_success "ipfs get output is valid (directory)" ' - test_cmp dir/a "$HASH2"/a && - test_cmp dir/b/c "$HASH2"/b/c && - rm -r "$HASH2" - ' - - # Test issue #4720: problems when path contains a trailing slash. - test_expect_success "ipfs get with slash (directory)" ' - ipfs get "$HASH2/" && - test_cmp dir/a "$HASH2"/a && - test_cmp dir/b/c "$HASH2"/b/c && - rm -r "$HASH2" - ' - - test_expect_success "ipfs get -a -C succeeds (directory)" ' - ipfs get "$HASH2" -a -C >actual - ' - - test_expect_success "ipfs get -a -C output looks good (directory)" ' - printf "%s\n" "Saving archive to $HASH2.tar.gz" >expected && - test_cmp expected actual - ' - - test_expect_success "gzipped tar archive output is valid (directory)" ' - tar -zxf "$HASH2".tar.gz && - test_cmp dir/a "$HASH2"/a && - test_cmp dir/b/c "$HASH2"/b/c && - rm -r "$HASH2" - ' - - test_expect_success "ipfs get ../.. should fail" ' - echo "Error: invalid 'ipfs ref' path" >expected && - test_must_fail ipfs get ../.. 2>actual && - test_cmp expected actual - ' - - test_expect_success "create small file" ' - echo "foo" > small && - ipfs add -q small > hash_small - ' - - test_expect_success "get small file" ' - ipfs get -o out_small $(cat hash_small) && - test_cmp small out_small - ' - - test_expect_success "create medium file" ' - head -c 16000 > medium && - ipfs add -q medium > hash_medium - ' - - test_expect_success "get medium file" ' - ipfs get -o out_medium $(cat hash_medium) && - test_cmp medium out_medium - ' -} - -test_get_fail() { - test_expect_success "create an object that has unresolveable links" ' - cat <<-\EOF >bad_object && -{ "Links": [ { "Name": "foo", "Hash": "QmZzaC6ydNXiR65W8VjGA73ET9MZ6VFAqUT1ngYMXcpihn", "Size": 1897 }, { "Name": "bar", "Hash": "Qmd4mG6pDFDmDTn6p3hX1srP8qTbkyXKj5yjpEsiHDX3u8", "Size": 56 }, { "Name": "baz", "Hash": "QmUTjwRnG28dSrFFVTYgbr6LiDLsBmRr2SaUSTGheK2YqG", "Size": 24266 } ], "Data": "\b\u0001" } -EOF - cat bad_object | ipfs object put > put_out - ' - - test_expect_success "output looks good" ' - echo "added QmaGidyrnX8FMbWJoxp8HVwZ1uRKwCyxBJzABnR1S2FVUr" > put_exp && - test_cmp put_exp put_out - ' - - test_expect_success "ipfs get fails" ' - test_expect_code 1 ipfs get QmaGidyrnX8FMbWJoxp8HVwZ1uRKwCyxBJzABnR1S2FVUr - ' -} - -# should work offline -test_get_cmd - -# only really works offline, will try and search network when online -test_get_fail - -# should work online -test_launch_ipfs_daemon -test_get_cmd - -test_expect_success "empty request to get doesn't panic and returns error" ' - curl "http://$API_ADDR/api/v0/get" > curl_out || true && - grep "argument \"ipfs-path\" is required" curl_out -' -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0095-refs.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0095-refs.sh deleted file mode 100755 index d363d043..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0095-refs.sh +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2018 Protocol Labs, Inc -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test 'ipfs refs' command" - -. lib/test-lib.sh - -test_init_ipfs -test_launch_ipfs_daemon --offline - -# This file performs tests with the following directory -# structure. -# -# L0- _______ A_________ -# / | \ \ -# L1- B C D 1.txt -# / \ | | -# L2- D 1.txt B 2.txt -# | / \ -# L3- 2.txt D 1.txt -# | -# L4- 2.txt -# -# 'ipfs add -r A' output: -# -# added QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v A/1.txt -# added QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v A/B/1.txt -# added QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 A/B/D/2.txt -# added QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v A/C/B/1.txt -# added QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 A/C/B/D/2.txt -# added QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 A/D/2.txt -# added QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS A/B/D -# added QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa A/B -# added QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS A/C/B/D -# added QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa A/C/B -# added QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH A/C -# added QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS A/D -# added QmU6xujRsYzcrkocuR3fhfnkZBB8eyUFFq4WKRGw2aS15h A -# -# 'ipfs refs -r QmU6xujRsYzcrkocuR3fhfnkZBB8eyUFFq4WKRGw2aS15h' sample output -# that shows visit order in a stable go-ipfs version: -# -# QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v - 1.txt -# QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa - B (A/B) -# QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v - 1.txt (A/B/1.txt) -# QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS - D (A/B/D) -# QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 - 2.txt (A/B/D/2.txt) -# QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH - C (A/C) -# QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa - B (A/C/B) -# QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v - 1.txt (A/C/B/1.txt) -# QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS - D (A/C/B/D) -# QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 - 2.txt (A/C/B/D/2.txt) -# QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS - D (A/D) -# QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 - 2.txt (A/D/2.txt) - - -refsroot=QmU6xujRsYzcrkocuR3fhfnkZBB8eyUFFq4WKRGw2aS15h - -test_expect_success "create and add folders for refs" ' - mkdir -p A/B/D A/C/B/D A/D - echo "1" > A/1.txt - echo "1" > A/B/1.txt - echo "1" > A/C/B/1.txt - echo "2" > A/B/D/2.txt - echo "2" > A/C/B/D/2.txt - echo "2" > A/D/2.txt - root=$(ipfs add -r -Q A) - [[ "$root" == "$refsroot" ]] -' - -test_refs_output() { - ARGS=$1 - FILTER=$2 - - test_expect_success "ipfs refs $ARGS -r" ' - cat < expected.txt -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 -QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 -EOF - - ipfs refs $ARGS -r $refsroot > refsr.txt - test_cmp expected.txt refsr.txt - ' - - # Unique is like above but removing duplicates - test_expect_success "ipfs refs $ARGS -r --unique" ' - cat < expected.txt -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 -QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH -EOF - - ipfs refs $ARGS -r --unique $refsroot > refsr.txt - test_cmp expected.txt refsr.txt - ' - - # First level is 1.txt, B, C, D - test_expect_success "ipfs refs $ARGS" ' - cat < expected.txt -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -EOF - ipfs refs $ARGS $refsroot > refs.txt - test_cmp expected.txt refs.txt - ' - - # max-depth=0 should return an empty list - test_expect_success "ipfs refs $ARGS -r --max-depth=0" ' - cat < expected.txt -EOF - ipfs refs $ARGS -r --max-depth=0 $refsroot > refs.txt - test_cmp expected.txt refs.txt - ' - - # max-depth=1 should be equivalent to running without -r - test_expect_success "ipfs refs $ARGS -r --max-depth=1" ' - ipfs refs $ARGS -r --max-depth=1 $refsroot > refsr.txt - ipfs refs $ARGS $refsroot > refs.txt - test_cmp refsr.txt refs.txt - ' - - # We should see the depth limit engage at level 2 - test_expect_success "ipfs refs $ARGS -r --max-depth=2" ' - cat < expected.txt -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 -EOF - ipfs refs $ARGS -r --max-depth=2 $refsroot > refsr.txt - test_cmp refsr.txt expected.txt - ' - - # Here branch pruning and re-exploration come into place - # At first it should see D at level 2 and don't go deeper. - # But then after doing C it will see D at level 1 and go deeper - # so that it outputs the hash for 2.txt (-q61). - # We also see that C/B is pruned as it's been shown before. - # - # Excerpt from diagram above: - # - # L0- _______ A_________ - # / | \ \ - # L1- B C D 1.txt - # / \ | | - # L2- D 1.txt B 2.txt - test_expect_success "ipfs refs $ARGS -r --unique --max-depth=2" ' - cat < expected.txt -QmdytmR4wULMd3SLo6ePF4s3WcRHWcpnJZ7bHhoj3QB13v -QmNkQvpiyAEtbeLviC7kqfifYoK1GXPcsSxTpP1yS3ykLa -QmSanP5DpxpqfDdS4yekHY1MqrVge47gtxQcp2e2yZ4UwS -QmXXazTjeNCKFnpW1D65vTKsTs8fbgkCWTv8Em4pdK2coH -QmSFxnK675wQ9Kc1uqWKyJUaNxvSc2BP5DbXCD3x93oq61 -EOF - ipfs refs $ARGS -r --unique --max-depth=2 $refsroot > refsr.txt - test_cmp refsr.txt expected.txt - ' -} - -test_refs_output '' 'cat' - -test_refs_output '--cid-base=base32' 'ipfs cid base32' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0100-name.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0100-name.sh deleted file mode 100755 index e03f1553..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0100-name.sh +++ /dev/null @@ -1,216 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo operations" - -. lib/test-lib.sh - -test_init_ipfs - -# test publishing a hash - - -test_expect_success "'ipfs name publish --allow-offline' succeeds" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - ipfs name publish --allow-offline "/ipfs/$HASH_WELCOME_DOCS" >publish_out -' - -test_expect_success "publish output looks good" ' - echo "Published to ${PEERID}: /ipfs/$HASH_WELCOME_DOCS" >expected1 && - test_cmp expected1 publish_out -' - -test_expect_success "'ipfs name resolve' succeeds" ' - ipfs name resolve "$PEERID" >output -' - -test_expect_success "resolve output looks good" ' - printf "/ipfs/%s\n" "$HASH_WELCOME_DOCS" >expected2 && - test_cmp expected2 output -' - -# test publishing with -Q option - - -test_expect_success "'ipfs name publish --quieter' succeeds" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - ipfs name publish --allow-offline -Q "/ipfs/$HASH_WELCOME_DOCS" >publish_out -' - -test_expect_success "pubrmlish --quieter output looks good" ' - echo "${PEERID}" >expected1 && - test_cmp expected1 publish_out -' - -test_expect_success "'ipfs name resolve' succeeds" ' - ipfs name resolve "$PEERID" >output -' - -test_expect_success "resolve output looks good" ' - printf "/ipfs/%s\n" "$HASH_WELCOME_DOCS" >expected2 && - test_cmp expected2 output -' - -# now test with a path - -test_expect_success "'ipfs name publish --allow-offline' succeeds" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - ipfs name publish --allow-offline "/ipfs/$HASH_WELCOME_DOCS/help" >publish_out -' - -test_expect_success "publish a path looks good" ' - echo "Published to ${PEERID}: /ipfs/$HASH_WELCOME_DOCS/help" >expected3 && - test_cmp expected3 publish_out -' - -test_expect_success "'ipfs name resolve' succeeds" ' - ipfs name resolve "$PEERID" >output -' - -test_expect_success "resolve output looks good" ' - printf "/ipfs/%s/help\n" "$HASH_WELCOME_DOCS" >expected4 && - test_cmp expected4 output -' - -test_expect_success "ipfs cat on published content succeeds" ' - ipfs cat "/ipfs/$HASH_WELCOME_DOCS/help" >expected && - ipfs cat "/ipns/$PEERID" >actual && - test_cmp expected actual -' - -# publish with an explicit node ID - -test_expect_failure "'ipfs name publish --allow-offline ' succeeds" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - echo ipfs name publish --allow-offline "${PEERID}" "/ipfs/$HASH_WELCOME_DOCS" && - ipfs name publish --allow-offline "${PEERID}" "/ipfs/$HASH_WELCOME_DOCS" >actual_node_id_publish -' - -test_expect_failure "publish with our explicit node ID looks good" ' - echo "Published to ${PEERID}: /ipfs/$HASH_WELCOME_DOCS" >expected_node_id_publish && - test_cmp expected_node_id_publish actual_node_id_publish -' - -# publish with an explicit node ID as key name - -test_expect_success "generate and verify a new key" ' - NEWID=`ipfs key gen --type=rsa --size=2048 keyname` && - test_check_peerid "${NEWID}" -' - -test_expect_success "'ipfs name publis --allow-offline --key= ' succeeds" ' - ipfs name publish --allow-offline --key=${NEWID} "/ipfs/$HASH_WELCOME_DOCS" >actual_node_id_publish -' - -test_expect_success "publish an explicit node ID as key name looks good" ' - echo "Published to ${NEWID}: /ipfs/$HASH_WELCOME_DOCS" >expected_node_id_publish && - test_cmp expected_node_id_publish actual_node_id_publish -' - -# test IPNS + IPLD -test_expect_success "'ipfs dag put' succeeds" ' - HELLO_HASH="$(echo "\"hello world\"" | ipfs dag put)" && - OBJECT_HASH="$(echo "{\"thing\": {\"/\": \"${HELLO_HASH}\" }}" | ipfs dag put)" -' -test_expect_success "'ipfs name publish --allow-offline /ipld/...' succeeds" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - ipfs name publish --allow-offline "/ipld/$OBJECT_HASH/thing" >publish_out -' -test_expect_success "publish a path looks good" ' - echo "Published to ${PEERID}: /ipld/$OBJECT_HASH/thing" >expected3 && - test_cmp expected3 publish_out -' -test_expect_success "'ipfs name resolve' succeeds" ' - ipfs name resolve "$PEERID" >output -' -test_expect_success "resolve output looks good" ' - printf "/ipld/%s/thing\n" "$OBJECT_HASH" >expected4 && - test_cmp expected4 output -' - -# test publishing nothing - -test_expect_success "'ipfs name publish' fails" ' - printf '' | test_expect_code 1 ipfs name publish --allow-offline >publish_out 2>&1 -' - -test_expect_success "publish output has the correct error" ' - grep "argument \"ipfs-path\" is required" publish_out -' - -test_expect_success "'ipfs name publish' fails" ' - printf '' | test_expect_code 1 ipfs name publish -Q --allow-offline >publish_out 2>&1 -' - -test_expect_success "publish output has the correct error" ' - grep "argument \"ipfs-path\" is required" publish_out -' - -test_expect_success "'ipfs name publish --help' succeeds" ' - ipfs name publish --help -' - -# test offline resolve - -test_expect_success "'ipfs name resolve --offline' succeeds" ' - ipfs name resolve --offline "$PEERID" >output -' -test_expect_success "resolve output looks good" ' - printf "/ipld/%s/thing\n" "$OBJECT_HASH" >expected4 && - test_cmp expected4 output -' - -test_expect_success "'ipfs name resolve --offline -n' succeeds" ' - ipfs name resolve --offline -n "$PEERID" >output -' -test_expect_success "resolve output looks good" ' - printf "/ipld/%s/thing\n" "$OBJECT_HASH" >expected4 && - test_cmp expected4 output -' - -test_launch_ipfs_daemon - -test_expect_success "'ipfs name resolve --offline' succeeds" ' - ipfs name resolve --offline "$PEERID" >output -' -test_expect_success "resolve output looks good" ' - printf "/ipld/%s/thing\n" "$OBJECT_HASH" >expected4 && - test_cmp expected4 output -' - -test_expect_success "'ipfs name resolve --offline -n' succeeds" ' - ipfs name resolve --offline -n "$PEERID" >output -' -test_expect_success "resolve output looks good" ' - printf "/ipld/%s/thing\n" "$OBJECT_HASH" >expected4 && - test_cmp expected4 output -' - -test_expect_success "empty request to name publish doesn't panic and returns error" ' - curl "http://$API_ADDR/api/v0/name/publish" > curl_out || true && - grep "argument \"ipfs-path\" is required" curl_out -' - -test_kill_ipfs_daemon - - -# Test daemon in offline mode -test_launch_ipfs_daemon --offline - -test_expect_success "'ipfs name publish' fails offline mode" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - test_expect_code 1 ipfs name publish "/ipfs/$HASH_WELCOME_DOCS" -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0101-iptb-name.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0101-iptb-name.sh deleted file mode 100755 index 303704a3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0101-iptb-name.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo operations" - -. lib/test-lib.sh - -num_nodes=4 - -test_expect_success "set up an iptb cluster" ' - iptb testbed create -type localipfs -count $num_nodes -force -init -' - -startup_cluster $num_nodes - -test_expect_success "add an obect on one node" ' - echo "ipns is super fun" > file && - HASH_FILE=$(ipfsi 1 add -q file) -' - -test_expect_success "publish that object as an ipns entry" ' - ipfsi 1 name publish $HASH_FILE -' - -test_expect_success "add an entry on another node pointing to that one" ' - NODE1_ID=$(iptb attr get 1 id) && - ipfsi 2 name publish /ipns/$NODE1_ID -' - -test_expect_success "cat that entry on a third node" ' - NODE2_ID=$(iptb attr get 2 id) && - ipfsi 3 cat /ipns/$NODE2_ID > output -' - -test_expect_success "ensure output was the same" ' - test_cmp file output -' - -test_expect_success "shut down iptb" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foo.block b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foo.block deleted file mode 100644 index 39c7ef60..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foo.block +++ /dev/null @@ -1,2 +0,0 @@ - - foo \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foofoo.block b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway-data/foofoo.block deleted file mode 100644 index 9e5177b183ca963f4b15a2e8ee981f55bded1bcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmd;L;b4+r6H?()5>hxn>F@iqhke#C%;{!*ou>UDv3KXa&^K4qTVK9O7y5BOl{i%Z Ds+T9Z diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway.sh deleted file mode 100755 index 51cae3a2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0110-gateway.sh +++ /dev/null @@ -1,260 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Matt Bell -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test HTTP Gateway" - -. lib/test-lib.sh - -test_init_ipfs -test_launch_ipfs_daemon - -port=$GWAY_PORT -apiport=$API_PORT - -# TODO check both 5001 and 5002. -# 5001 should have a readable gateway (part of the API) -# 5002 should have a readable gateway (using ipfs config Addresses.Gateway) -# but ideally we should only write the tests once. so maybe we need to -# define a function to test a gateway, and do so for each port. -# for now we check 5001 here as 5002 will be checked in gateway-writable. - -test_expect_success "Make a file to test with" ' - echo "Hello Worlds!" >expected && - HASH=$(ipfs add -q expected) || - test_fsh cat daemon_err -' - -test_expect_success "GET IPFS path succeeds" ' - curl -sfo actual "http://127.0.0.1:$port/ipfs/$HASH" -' - -test_expect_success "GET IPFS path with explicit filename succeeds with proper header" " - curl -fo actual -D actual_headers 'http://127.0.0.1:$port/ipfs/$HASH?filename=testтеÑÑ‚' && - grep -F \"Content-Disposition: inline; filename*=UTF-8''test%D1%82%D0%B5%D1%81%D1%82\" actual_headers -" - -test_expect_success "GET IPFS path output looks good" ' - test_cmp expected actual && - rm actual -' - -test_expect_success "GET IPFS directory path succeeds" ' - mkdir dir && - echo "12345" >dir/test && - ipfs add -r -q dir >actual && - HASH2=$(tail -n 1 actual) && - curl -sf "http://127.0.0.1:$port/ipfs/$HASH2" -' - -test_expect_success "GET IPFS directory file succeeds" ' - curl -sfo actual "http://127.0.0.1:$port/ipfs/$HASH2/test" -' - -test_expect_success "GET IPFS directory file output looks good" ' - test_cmp dir/test actual -' - -test_expect_success "GET IPFS non existent file returns code expected (404)" ' - test_curl_resp_http_code "http://127.0.0.1:$port/ipfs/$HASH2/pleaseDontAddMe" "HTTP/1.1 404 Not Found" -' - -test_expect_failure "GET IPNS path succeeds" ' - ipfs name publish --allow-offline "$HASH" && - PEERID=$(ipfs config Identity.PeerID) && - test_check_peerid "$PEERID" && - curl -sfo actual "http://127.0.0.1:$port/ipns/$PEERID" -' - -test_expect_failure "GET IPNS path output looks good" ' - test_cmp expected actual -' - -test_expect_success "GET invalid IPFS path errors" ' - test_must_fail curl -sf "http://127.0.0.1:$port/ipfs/12345" -' - -test_expect_success "GET invalid path errors" ' - test_must_fail curl -sf "http://127.0.0.1:$port/12345" -' - -test_expect_success "GET /webui returns code expected" ' - test_curl_resp_http_code "http://127.0.0.1:$apiport/webui" "HTTP/1.1 302 Found" "HTTP/1.1 301 Moved Permanently" -' - -test_expect_success "GET /webui/ returns code expected" ' - test_curl_resp_http_code "http://127.0.0.1:$apiport/webui/" "HTTP/1.1 302 Found" "HTTP/1.1 301 Moved Permanently" -' - -test_expect_success "GET /logs returns logs" ' - test_expect_code 28 curl http://127.0.0.1:$apiport/logs -m1 > log_out -' - -test_expect_success "log output looks good" ' - grep "log API client connected" log_out -' - -test_expect_success "GET /api/v0/version succeeds" ' - curl -v "http://127.0.0.1:$apiport/api/v0/version" 2> version_out -' - -test_expect_success "output only has one transfer encoding header" ' - grep "Transfer-Encoding: chunked" version_out | wc -l | xargs echo > tecount_out && - echo "1" > tecount_exp && - test_cmp tecount_out tecount_exp -' - -curl_pprofmutex() { - curl -f -X POST "http://127.0.0.1:$apiport/debug/pprof-mutex/?fraction=$1" -} - -test_expect_success "set mutex fraction for pprof (negative so it doesn't enable)" ' - curl_pprofmutex -1 -' - -test_expect_success "test failure conditions of mutex pprof endpoint" ' - test_must_fail curl_pprofmutex && - test_must_fail curl_pprofmutex that_is_string && - test_must_fail curl -f -X GET "http://127.0.0.1:$apiport/debug/pprof-mutex/?fraction=-1" -' - - -test_expect_success "setup index hash" ' - mkdir index && - echo "

" > index/index.html && - INDEXHASH=$(ipfs add -q -r index | tail -n1) - echo index: $INDEXHASH -' - -test_expect_success "GET 'index.html' has correct content type" ' - curl -I "http://127.0.0.1:$port/ipfs/$INDEXHASH/" > indexout -' - -test_expect_success "output looks good" ' - grep "Content-Type: text/html" indexout -' - -test_expect_success "HEAD 'index.html' has no content" ' - curl -X HEAD --max-time 1 http://127.0.0.1:$port/ipfs/$INDEXHASH/ > output; - [ ! -s output ] -' - -# test ipfs readonly api - -test_curl_gateway_api() { - curl -sfo actual "http://127.0.0.1:$port/api/v0/$1" -} - -test_expect_success "get IPFS directory file through readonly API succeeds" ' - test_curl_gateway_api "cat?arg=$HASH2/test" -' - -test_expect_success "get IPFS directory file through readonly API output looks good" ' - test_cmp dir/test actual -' - -test_expect_success "refs IPFS directory file through readonly API succeeds" ' - test_curl_gateway_api "refs?arg=$HASH2/test" -' - -for cmd in add \ - block/put \ - bootstrap \ - config \ - dht \ - diag \ - id \ - mount \ - name/publish \ - object/put \ - object/new \ - object/patch \ - pin \ - ping \ - repo \ - stats \ - swarm \ - file \ - update \ - bitswap -do - test_expect_success "test gateway api is sanitized: $cmd" ' - test_curl_resp_http_code "http://127.0.0.1:$port/api/v0/$cmd" "HTTP/1.1 404 Not Found" - ' -done - -# This one is different. `local` will be interpreted as a path if the command isn't defined. -test_expect_success "test gateway api is sanitized: refs/local" ' - echo "Error: invalid '"'ipfs ref'"' path" > refs_local_expected && - ! ipfs --api /ip4/127.0.0.1/tcp/$port refs local > refs_local_actual 2>&1 && - test_cmp refs_local_expected refs_local_actual - ' - -test_expect_success "create raw-leaves node" ' - echo "This is RAW!" > rfile && - echo "This is RAW!" | ipfs add --raw-leaves -q > rhash -' - -test_expect_success "try fetching it from gateway" ' - curl http://127.0.0.1:$port/ipfs/$(cat rhash) > ffile && - test_cmp rfile ffile -' - -test_expect_success "Add compact blocks" ' - ipfs block put ../t0110-gateway-data/foo.block && - FOO2_HASH=$(ipfs block put ../t0110-gateway-data/foofoo.block) && - printf "foofoo" > expected -' - -test_expect_success "GET compact blocks succeeds" ' - curl -o actual "http://127.0.0.1:$port/ipfs/$FOO2_HASH" && - test_cmp expected actual -' - -test_kill_ipfs_daemon - - -GWPORT=32563 - -test_expect_success "set up iptb testbed" ' - iptb testbed create -type localipfs -count 5 -force -init && - ipfsi 0 config Addresses.Gateway /ip4/127.0.0.1/tcp/$GWPORT && - PEERID_1=$(iptb attr get 1 id) -' - -test_expect_success "set NoFetch to true in config of node 0" ' - ipfsi 0 config --bool=true Gateway.NoFetch true -' - -test_expect_success "start ipfs nodes" ' - iptb start -wait && - iptb connect 0 1 -' - -test_expect_success "try fetching not present key from node 0" ' - FOO=$(echo "foo" | ipfsi 1 add -Q) && - test_expect_code 22 curl -f "http://127.0.0.1:$GWPORT/ipfs/$FOO" -' - -test_expect_success "try fetching not present ipns key from node 0" ' - ipfsi 1 name publish /ipfs/$FOO && - test_expect_code 22 curl -f "http://127.0.0.1:$GWPORT/ipns/$PEERID_1" -' - -test_expect_success "try fetching present key from from node 0" ' - BAR=$(echo "bar" | ipfsi 0 add -Q) && - curl -f "http://127.0.0.1:$GWPORT/ipfs/$BAR" -' - -test_expect_success "try fetching present ipns key from node 0" ' - ipfsi 1 name publish /ipfs/$BAR && - curl "http://127.0.0.1:$GWPORT/ipns/$PEERID_1" -' - -test_expect_success "stop testbed" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0111-gateway-writeable.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0111-gateway-writeable.sh deleted file mode 100755 index 71775d5d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0111-gateway-writeable.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test HTTP Gateway (Writable)" - -. lib/test-lib.sh - -test_init_ipfs - -test_launch_ipfs_daemon --writable -test_expect_success "ipfs daemon --writable overrides config" ' - curl -v -X POST http://$GWAY_ADDR/ipfs/ 2> outfile && - grep "HTTP/1.1 201 Created" outfile && - grep "Location: /ipfs/QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH" outfile -' -test_kill_ipfs_daemon - -test_config_ipfs_gateway_writable -test_launch_ipfs_daemon --writable=false -test_expect_success "ipfs daemon --writable=false overrides Writable=true config" ' - curl -v -X POST http://$GWAY_ADDR/ipfs/ 2> outfile && - grep "HTTP/1.1 405 Method Not Allowed" outfile -' -test_kill_ipfs_daemon -test_launch_ipfs_daemon - -port=$GWAY_PORT - -test_expect_success "ipfs daemon up" ' - pollEndpoint -host $GWAY_MADDR -ep=/version -v -tout=1s -tries=60 2>poll_apierr > poll_apiout || - test_fsh cat poll_apierr || test_fsh cat poll_apiout -' - -test_expect_success "HTTP gateway gives access to sample file" ' - curl -s -o welcome "http://$GWAY_ADDR/ipfs/$HASH_WELCOME_DOCS/readme" && - grep "Hello and Welcome to IPFS!" welcome -' - -test_expect_success "HTTP POST file gives Hash" ' - echo "$RANDOM" >infile && - URL="http://localhost:$port/ipfs/" && - curl -svX POST --data-binary @infile "$URL" 2>curl_post.out && - grep "HTTP/1.1 201 Created" curl_post.out && - LOCATION=$(grep Location curl_post.out) && - HASH=$(echo $LOCATION | cut -d":" -f2- |tr -d " \n\r") -' - -test_expect_success "We can HTTP GET file just created" ' - URL="http://localhost:${port}${HASH}" && - curl -so outfile "$URL" && - test_cmp infile outfile -' - -test_expect_success "HTTP PUT empty directory" ' - URL="http://localhost:$port/ipfs/$HASH_EMPTY_DIR/" && - echo "PUT $URL" && - curl -svX PUT "$URL" 2>curl_putEmpty.out && - cat curl_putEmpty.out && - grep "Ipfs-Hash: $HASH_EMPTY_DIR" curl_putEmpty.out && - grep "Location: /ipfs/$HASH_EMPTY_DIR" curl_putEmpty.out && - grep "HTTP/1.1 201 Created" curl_putEmpty.out -' - -test_expect_success "HTTP GET empty directory" ' - echo "GET $URL" && - curl -so outfile "$URL" 2>curl_getEmpty.out && - grep "Index of /ipfs/$HASH_EMPTY_DIR/" outfile -' - -test_expect_success "HTTP PUT file to construct a hierarchy" ' - echo "$RANDOM" >infile && - URL="http://localhost:$port/ipfs/$HASH_EMPTY_DIR/test.txt" && - echo "PUT $URL" && - curl -svX PUT --data-binary @infile "$URL" 2>curl_put.out && - grep "HTTP/1.1 201 Created" curl_put.out && - LOCATION=$(grep Location curl_put.out) && - HASH=$(expr "$LOCATION" : "< Location: /ipfs/\(.*\)/test.txt") -' - -test_expect_success "We can HTTP GET file just created" ' - URL="http://localhost:$port/ipfs/$HASH/test.txt" && - echo "GET $URL" && - curl -so outfile "$URL" && - test_cmp infile outfile -' - -test_expect_success "HTTP PUT file to append to existing hierarchy" ' - echo "$RANDOM" >infile2 && - URL="http://localhost:$port/ipfs/$HASH/test/test.txt" && - echo "PUT $URL" && - curl -svX PUT --data-binary @infile2 "$URL" 2>curl_putAgain.out && - grep "HTTP/1.1 201 Created" curl_putAgain.out && - LOCATION=$(grep Location curl_putAgain.out) && - HASH=$(expr "$LOCATION" : "< Location: /ipfs/\(.*\)/test/test.txt") -' - - -test_expect_success "We can HTTP GET file just updated" ' - URL="http://localhost:$port/ipfs/$HASH/test/test.txt" && - echo "GET $URL" && - curl -svo outfile2 "$URL" 2>curl_getAgain.out && - test_cmp infile2 outfile2 -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0112-gateway-cors.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0112-gateway-cors.sh deleted file mode 100755 index c7c5c3e4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0112-gateway-cors.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Marcin Rataj -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test HTTP Gateway CORS Support" - -test_config_ipfs_cors_headers() { - ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' - ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]' - ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["X-Requested-With"]' -} - -. lib/test-lib.sh - -test_init_ipfs -test_config_ipfs_cors_headers -test_launch_ipfs_daemon - -thash='QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn' - -# Gateway - -# HTTP GET Request -test_expect_success "GET to Gateway succeeds" ' - curl -svX GET "http://127.0.0.1:$GWAY_PORT/ipfs/$thash" >/dev/null 2>curl_output && - cat curl_output -' - -# GET Response from Gateway should contain CORS headers -test_expect_success "GET response for Gateway resource looks good" ' - grep "< Access-Control-Allow-Origin: \*" curl_output && - grep "< Access-Control-Allow-Methods: GET" curl_output && - grep "< Access-Control-Allow-Headers: Range" curl_output && - grep "< Access-Control-Expose-Headers: Content-Range" curl_output -' - -# HTTP OPTIONS Request -test_expect_success "OPTIONS to Gateway succeeds" ' - curl -svX OPTIONS "http://127.0.0.1:$GWAY_PORT/ipfs/$thash" 2>curl_output && - cat curl_output -' - -# OPTION Response from Gateway should contain CORS headers -test_expect_success "OPTIONS response for Gateway resource looks good" ' - grep "< Access-Control-Allow-Origin: \*" curl_output && - grep "< Access-Control-Allow-Methods: GET" curl_output && - grep "< Access-Control-Allow-Headers: Range" curl_output && - grep "< Access-Control-Expose-Headers: Content-Range" curl_output -' - -test_kill_ipfs_daemon - -# Change headers -test_expect_success "Can configure gateway headers" ' - ipfs config --json Gateway.HTTPHeaders.Access-Control-Allow-Headers "[\"X-Custom1\"]" && - ipfs config --json Gateway.HTTPHeaders.Access-Control-Expose-Headers "[\"X-Custom2\"]" && - ipfs config --json Gateway.HTTPHeaders.Access-Control-Allow-Origin "[\"localhost\"]" -' - -test_launch_ipfs_daemon - -test_expect_success "OPTIONS to Gateway succeeds" ' - curl -svX OPTIONS "http://127.0.0.1:$GWAY_PORT/ipfs/$thash" 2>curl_output && - cat curl_output -' - -test_expect_success "Access-Control-Allow-Headers extends" ' - grep "< Access-Control-Allow-Headers: Range" curl_output && - grep "< Access-Control-Allow-Headers: X-Custom1" curl_output && - grep "< Access-Control-Expose-Headers: Content-Range" curl_output && - grep "< Access-Control-Expose-Headers: X-Custom2" curl_output -' - -test_expect_success "Access-Control-Allow-Origin replaces" ' - grep "< Access-Control-Allow-Origin: localhost" curl_output -' - -# Read-Only API (at the Gateway Port) - -# HTTP GET Request -test_expect_success "GET to API succeeds" ' - curl -svX GET "http://127.0.0.1:$GWAY_PORT/api/v0/cat?arg=$thash" >/dev/null 2>curl_output -' -# GET Response from the API should NOT contain CORS headers -# Blacklisting: https://git.io/vzaj2 -# Rationale: https://git.io/vzajX -test_expect_success "OPTIONS response for API looks good" ' - grep -q "Access-Control-Allow-" curl_output && false || true -' - -# HTTP OPTIONS Request -test_expect_success "OPTIONS to API succeeds" ' - curl -svX OPTIONS "http://127.0.0.1:$GWAY_PORT/api/v0/cat?arg=$thash" 2>curl_output -' -# OPTIONS Response from the API should NOT contain CORS headers -test_expect_success "OPTIONS response for API looks good" ' - grep -q "Access-Control-Allow-" curl_output && false || true -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0120-bootstrap.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0120-bootstrap.sh deleted file mode 100755 index 2314a02a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0120-bootstrap.sh +++ /dev/null @@ -1,180 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -# changing the bootstrap peers will require changing it in two places :) -BP1="/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN" -BP2="/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa" -BP3="/dnsaddr/bootstrap.libp2p.io/ipfs/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb" -BP4="/dnsaddr/bootstrap.libp2p.io/ipfs/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt" -BP5="/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ" -BP6="/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM" -BP7="/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64" -BP8="/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu" -BP9="/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd" -BP10="/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu" -BP11="/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM" -BP12="/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64" -BP13="/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd" - -test_description="Test ipfs repo operations" - -. lib/test-lib.sh - -test_init_ipfs - -# we use a function so that we can run it both offline + online -test_bootstrap_list_cmd() { - printf "" >list_expected - - for BP in "$@" - do - echo "$BP" >>list_expected - done - - test_expect_success "'ipfs bootstrap' succeeds" ' - ipfs bootstrap >list_actual - ' - - test_expect_success "'ipfs bootstrap' output looks good" ' - test_cmp list_expected list_actual - ' - - test_expect_success "'ipfs bootstrap list' succeeds" ' - ipfs bootstrap list >list2_actual - ' - - test_expect_success "'ipfs bootstrap list' output looks good" ' - test_cmp list_expected list2_actual - ' -} - -# we use a function so that we can run it both offline + online -test_bootstrap_cmd() { - - # remove all peers just in case. - # if this fails, the first listing may not be empty - ipfs bootstrap rm --all - - test_bootstrap_list_cmd - - test_expect_success "'ipfs bootstrap add' succeeds" ' - ipfs bootstrap add "$BP1" "$BP2" "$BP3" >add_actual - ' - - test_expect_success "'ipfs bootstrap add' output looks good" ' - echo "added $BP1" >add_expected && - echo "added $BP2" >>add_expected && - echo "added $BP3" >>add_expected && - test_cmp add_expected add_actual - ' - - test_bootstrap_list_cmd $BP1 $BP2 $BP3 - - test_expect_success "'ipfs bootstrap rm' succeeds" ' - ipfs bootstrap rm "$BP1" "$BP3" >rm_actual - ' - - test_expect_success "'ipfs bootstrap rm' output looks good" ' - echo "removed $BP1" >rm_expected && - echo "removed $BP3" >>rm_expected && - test_cmp rm_expected rm_actual - ' - - test_expect_success "'ipfs bootstrap rm' fails on bad peers" ' - test_expect_code 1 ipfs bootstrap rm "foo/bar" - ' - - test_bootstrap_list_cmd $BP2 - - test_expect_success "'ipfs bootstrap add --default' succeeds" ' - ipfs bootstrap add --default >add2_actual - ' - - test_expect_success "'ipfs bootstrap add --default' output has default BP" ' - echo "added $BP1" >add2_expected && - echo "added $BP2" >>add2_expected && - echo "added $BP3" >>add2_expected && - echo "added $BP4" >>add2_expected && - echo "added $BP5" >>add2_expected && - echo "added $BP6" >>add2_expected && - echo "added $BP7" >>add2_expected && - echo "added $BP8" >>add2_expected && - echo "added $BP9" >>add2_expected && - echo "added $BP10" >>add2_expected && - echo "added $BP11" >>add2_expected && - echo "added $BP12" >>add2_expected && - echo "added $BP13" >>add2_expected && - test_cmp add2_expected add2_actual - ' - - test_bootstrap_list_cmd $BP1 $BP2 $BP3 $BP4 $BP5 $BP6 $BP7 $BP8 $BP9 $BP10 $BP11 $BP12 $BP13 $BP14 $BP15 $BP16 $BP17 - - test_expect_success "'ipfs bootstrap rm --all' succeeds" ' - ipfs bootstrap rm --all >rm2_actual - ' - - test_expect_success "'ipfs bootstrap rm' output looks good" ' - echo "removed $BP1" >rm2_expected && - echo "removed $BP2" >>rm2_expected && - echo "removed $BP3" >>rm2_expected && - echo "removed $BP4" >>rm2_expected && - echo "removed $BP5" >>rm2_expected && - echo "removed $BP6" >>rm2_expected && - echo "removed $BP7" >>rm2_expected && - echo "removed $BP8" >>rm2_expected && - echo "removed $BP9" >>rm2_expected && - echo "removed $BP10" >>rm2_expected && - echo "removed $BP11" >>rm2_expected && - echo "removed $BP12" >>rm2_expected && - echo "removed $BP13" >>rm2_expected && - test_cmp rm2_expected rm2_actual - ' - - test_bootstrap_list_cmd - - test_expect_success "'ipfs bootstrap add' accepts args from stdin" ' - echo $BP1 > bpeers && - echo $BP2 >> bpeers && - echo $BP3 >> bpeers && - echo $BP4 >> bpeers && - cat bpeers | ipfs bootstrap add > add_stdin_actual - ' - - test_expect_success "output looks good" ' - echo "added $BP1" > bpeers_add_exp && - echo "added $BP2" >> bpeers_add_exp && - echo "added $BP3" >> bpeers_add_exp && - echo "added $BP4" >> bpeers_add_exp && - test_cmp add_stdin_actual bpeers_add_exp - ' - - test_bootstrap_list_cmd $BP1 $BP2 $BP3 $BP4 - - test_expect_success "'ipfs bootstrap rm' accepts args from stdin" ' - cat bpeers | ipfs bootstrap rm > rm_stdin_actual - ' - - test_expect_success "output looks good" ' - echo "removed $BP1" > bpeers_rm_exp && - echo "removed $BP2" >> bpeers_rm_exp && - echo "removed $BP3" >> bpeers_rm_exp && - echo "removed $BP4" >> bpeers_rm_exp && - test_cmp rm_stdin_actual bpeers_rm_exp - ' - - test_bootstrap_list_cmd -} - -# should work offline -test_bootstrap_cmd - -# should work online -test_launch_ipfs_daemon -test_bootstrap_cmd -test_kill_ipfs_daemon - - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0121-bootstrap-iptb.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0121-bootstrap-iptb.sh deleted file mode 100755 index e7c7d010..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0121-bootstrap-iptb.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -# changing the bootstrap peers will require changing it in two places :) -test_description="test node bootstrapping" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "disable mdns" ' - ipfs config Discovery.MDNS.Enabled false --json -' - -test_launch_ipfs_daemon - -test_expect_success "setup iptb nodes" ' - iptb testbed create -type localipfs -count 5 -force -init -' - -test_expect_success "start up iptb nodes" ' - iptb start -wait -' - -test_expect_success "check peers works" ' - ipfs swarm peers >peers_out -' - -test_expect_success "correct number of peers" ' - test -z "`cat peers_out`" -' - -betterwait() { - while kill -0 $1; do true; done -} - -test_expect_success "bring down iptb nodes" ' - PID0=$(cat "$IPTB_ROOT/benches/default/0/daemon.pid") && - PID1=$(cat "$IPTB_ROOT/benches/default/1/daemon.pid") && - PID2=$(cat "$IPTB_ROOT/benches/default/2/daemon.pid") && - PID3=$(cat "$IPTB_ROOT/benches/default/3/daemon.pid") && - PID4=$(cat "$IPTB_ROOT/benches/default/4/daemon.pid") && - iptb stop && # TODO: add --wait flag to iptb stop - betterwait $PID0 - betterwait $PID1 - betterwait $PID2 - betterwait $PID3 - betterwait $PID4 -' - -test_expect_success "reset iptb nodes" ' - # the api doesnt seem to get cleaned up in sharness tests for some reason - iptb testbed create -type localipfs -count 5 -force -init -' - -test_expect_success "set bootstrap addrs" ' - bsn_peer_id=$(ipfs id -f "") && - BADDR="/ip4/127.0.0.1/tcp/$SWARM_PORT/ipfs/$bsn_peer_id" && - ipfsi 0 bootstrap add $BADDR && - ipfsi 1 bootstrap add $BADDR && - ipfsi 2 bootstrap add $BADDR && - ipfsi 3 bootstrap add $BADDR && - ipfsi 4 bootstrap add $BADDR -' - -test_expect_success "start up iptb nodes" ' - iptb start -wait -' - -test_expect_success "check peers works" ' - ipfs swarm peers > peers_out -' - -test_expect_success "correct number of peers" ' - test `cat peers_out | wc -l` = 5 -' - -test_kill_ipfs_daemon - -test_expect_success "bring down iptb nodes" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0125-twonode.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0125-twonode.sh deleted file mode 100755 index c70213ac..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0125-twonode.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test two ipfs nodes transferring a file" - -. lib/test-lib.sh - -check_file_fetch() { - node=$1 - fhash=$2 - fname=$3 - - test_expect_success "can fetch file" ' - ipfsi $node cat $fhash > fetch_out - ' - - test_expect_success "file looks good" ' - test_cmp $fname fetch_out - ' -} - -check_dir_fetch() { - node=$1 - ref=$2 - - test_expect_success "node can fetch all refs for dir" ' - ipfsi $node refs -r $ref > /dev/null - ' -} - -run_single_file_test() { - test_expect_success "add a file on node1" ' - random 1000000 > filea && - FILEA_HASH=$(ipfsi 1 add -q filea) - ' - - check_file_fetch 0 $FILEA_HASH filea -} - -run_random_dir_test() { - test_expect_success "create a bunch of random files" ' - random-files -depth=3 -dirs=4 -files=5 -seed=5 foobar > /dev/null - ' - - test_expect_success "add those on node 0" ' - DIR_HASH=$(ipfsi 0 add -r -q foobar | tail -n1) - ' - - check_dir_fetch 1 $DIR_HASH -} - -run_advanced_test() { - startup_cluster 2 "$@" - - test_expect_success "clean repo before test" ' - ipfsi 0 repo gc > /dev/null && - ipfsi 1 repo gc > /dev/null - ' - - run_single_file_test - - run_random_dir_test - - test_expect_success "node0 data transferred looks correct" ' - ipfsi 0 bitswap stat > stat0 && - grep "blocks sent: 126" stat0 > /dev/null && - grep "blocks received: 5" stat0 > /dev/null && - grep "data sent: 228113" stat0 > /dev/null && - grep "data received: 1000256" stat0 > /dev/null - ' - - test_expect_success "node1 data transferred looks correct" ' - ipfsi 1 bitswap stat > stat1 && - grep "blocks received: 126" stat1 > /dev/null && - grep "blocks sent: 5" stat1 > /dev/null && - grep "data received: 228113" stat1 > /dev/null && - grep "data sent: 1000256" stat1 > /dev/null - ' - - test_expect_success "shut down nodes" ' - iptb stop && iptb_wait_stop - ' -} - -test_expect_success "set up tcp testbed" ' - iptb testbed create -type localipfs -count 2 -force -init -' - -# Enable quic but don't use it yet. -test_expect_success "enable QUIC experiment" ' - ipfsi 0 config --json Experimental.QUIC true && - ipfsi 1 config --json Experimental.QUIC true -' - -# test multiplex muxer -echo "Running advanced tests with mplex" -export LIBP2P_MUX_PREFS="/mplex/6.7.0" -run_advanced_test "--enable-mplex-experiment" -unset LIBP2P_MUX_PREFS - -# test default configuration -echo "Running advanced tests with default config" -run_advanced_test - -# test QUIC -echo "Running advanced tests over QUIC" -addr1='"[\"/ip4/127.0.0.1/udp/0/quic/\"]"' -addr2='"[\"/ip4/127.0.0.1/udp/0/quic/\"]"' -test_expect_success "add QUIC swarm addresses" ' - ipfsi 0 config --json Addresses.Swarm '$addr1' && - ipfsi 1 config --json Addresses.Swarm '$addr2' -' - -run_advanced_test - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0130-multinode.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0130-multinode.sh deleted file mode 100755 index 1c732db7..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0130-multinode.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test multiple ipfs nodes" - -. lib/test-lib.sh - -check_file_fetch() { - node=$1 - fhash=$2 - fname=$3 - - test_expect_success "can fetch file" ' - ipfsi $node cat $fhash > fetch_out - ' - - test_expect_success "file looks good" ' - test_cmp $fname fetch_out - ' -} - -check_dir_fetch() { - node=$1 - ref=$2 - - test_expect_success "node can fetch all refs for dir" ' - ipfsi $node refs -r $ref > /dev/null - ' -} - -run_single_file_test() { - test_expect_success "add a file on node1" ' - random 1000000 > filea && - FILEA_HASH=$(ipfsi 1 add -q filea) - ' - - check_file_fetch 4 $FILEA_HASH filea - check_file_fetch 3 $FILEA_HASH filea - check_file_fetch 2 $FILEA_HASH filea - check_file_fetch 1 $FILEA_HASH filea - check_file_fetch 0 $FILEA_HASH filea -} - -run_random_dir_test() { - test_expect_success "create a bunch of random files" ' - random-files -depth=4 -dirs=3 -files=6 foobar > /dev/null - ' - - test_expect_success "add those on node 2" ' - DIR_HASH=$(ipfsi 2 add -r -q foobar | tail -n1) - ' - - check_dir_fetch 0 $DIR_HASH - check_dir_fetch 1 $DIR_HASH - check_dir_fetch 2 $DIR_HASH - check_dir_fetch 3 $DIR_HASH - check_dir_fetch 4 $DIR_HASH -} - - -run_basic_test() { - startup_cluster 5 - - run_single_file_test - - test_expect_success "shut down nodes" ' - iptb stop && iptb_wait_stop - ' -} - -run_advanced_test() { - startup_cluster 5 "$@" - - run_single_file_test - - run_random_dir_test - - test_expect_success "shut down nodes" ' - iptb stop && iptb_wait_stop || - test_fsh tail -n +1 .iptb/benches/default/*/daemon.std* - ' -} - -test_expect_success "set up /tcp testbed" ' - iptb testbed create -type localipfs -count 5 -force -init -' - -# test multiplex muxer -export LIBP2P_MUX_PREFS="/mplex/6.7.0" -run_advanced_test -unset LIBP2P_MUX_PREFS - -# test default configuration -run_advanced_test - -test_expect_success "set up /ws testbed" ' - iptb testbed create -type localipfs -count 5 -attr listentype,ws -force -init -' - -# test multiplex muxer -export LIBP2P_MUX_PREFS="/mplex/6.7.0" -run_advanced_test "--enable-mplex-experiment" -unset LIBP2P_MUX_PREFS - -# test default configuration -run_advanced_test - - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0131-multinode-client-routing.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0131-multinode-client-routing.sh deleted file mode 100755 index e96f230c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0131-multinode-client-routing.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test client mode dht" - -. lib/test-lib.sh - -check_file_fetch() { - node=$1 - fhash=$2 - fname=$3 - - test_expect_success "can fetch file" ' - ipfsi $node cat $fhash > fetch_out - ' - - test_expect_success "file looks good" ' - test_cmp $fname fetch_out - ' -} - -run_single_file_test() { - test_expect_success "add a file on node1" ' - random 1000000 > filea && - FILEA_HASH=$(ipfsi 1 add -q filea) - ' - - check_file_fetch 9 $FILEA_HASH filea - check_file_fetch 8 $FILEA_HASH filea - check_file_fetch 7 $FILEA_HASH filea - check_file_fetch 6 $FILEA_HASH filea - check_file_fetch 5 $FILEA_HASH filea - check_file_fetch 4 $FILEA_HASH filea - check_file_fetch 3 $FILEA_HASH filea - check_file_fetch 2 $FILEA_HASH filea - check_file_fetch 1 $FILEA_HASH filea - check_file_fetch 0 $FILEA_HASH filea -} - -NNODES=10 - -test_expect_success "set up testbed" ' - iptb testbed create -type localipfs -count $NNODES -force -init -' - -test_expect_success "start up nodes" ' - iptb start -wait [0-7] && - iptb start -wait [8-9] -- --routing=dhtclient -' - -test_expect_success "connect up nodes" ' - iptb connect [1-9] 0 -' - -test_expect_success "add a file on a node in client mode" ' - random 1000000 > filea && - FILE_HASH=$(ipfsi 8 add -q filea) -' - -test_expect_success "retrieve that file on a client mode node" ' - check_file_fetch 9 $FILE_HASH filea -' - -run_single_file_test - -test_expect_success "shut down nodes" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0140-swarm.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0140-swarm.sh deleted file mode 100755 index a5c1dadd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0140-swarm.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs swarm command" - -. lib/test-lib.sh - -test_init_ipfs - -test_launch_ipfs_daemon - -test_expect_success 'disconnected: peers is empty' ' - ipfs swarm peers >actual && - test_must_be_empty actual -' - -test_expect_success 'disconnected: addrs local has localhost' ' - ipfs swarm addrs local >actual && - grep "/ip4/127.0.0.1" actual -' - -test_expect_success 'disconnected: addrs local matches ipfs id' ' - ipfs id -f="\\n" | sort >expected && - ipfs swarm addrs local --id | sort >actual && - test_cmp expected actual -' - -test_expect_success "ipfs id self works" ' - myid=$(ipfs id -f="") && - ipfs id --timeout=1s $myid > output -' - -test_expect_success "output looks good" ' - grep $myid output && - grep PublicKey output -' - -addr="/ip4/127.0.0.1/tcp/9898/ipfs/QmUWKoHbjsqsSMesRC2Zoscs8edyFz6F77auBB1YBBhgpX" - -test_expect_success "cant trigger a dial backoff with swarm connect" ' - test_expect_code 1 ipfs swarm connect $addr 2> connect_out - test_expect_code 1 ipfs swarm connect $addr 2>> connect_out - test_expect_code 1 ipfs swarm connect $addr 2>> connect_out - test_expect_code 1 grep "backoff" connect_out -' - -test_kill_ipfs_daemon - -announceCfg='["/ip4/127.0.0.1/tcp/4001", "/ip4/1.2.3.4/tcp/1234"]' -test_expect_success "test_config_set succeeds" " - ipfs config --json Addresses.Announce '$announceCfg' -" - -test_launch_ipfs_daemon - -test_expect_success 'Addresses.Announce affects addresses' ' - ipfs swarm addrs local >actual && - grep "/ip4/1.2.3.4/tcp/1234" actual && - ipfs id -f"" | xargs -n1 echo >actual && - grep "/ip4/1.2.3.4/tcp/1234" actual -' - -test_kill_ipfs_daemon - -noAnnounceCfg='["/ip4/1.2.3.4/tcp/1234"]' -test_expect_success "test_config_set succeeds" " - ipfs config --json Addresses.NoAnnounce '$noAnnounceCfg' -" - -test_launch_ipfs_daemon - -test_expect_success "Addresses.NoAnnounce affects addresses" ' - ipfs swarm addrs local >actual && - grep -v "/ip4/1.2.3.4/tcp/1234" actual && - ipfs id -f"" | xargs -n1 echo >actual && - grep -v "/ip4/1.2.3.4/tcp/1234" actual -' - -test_kill_ipfs_daemon - -noAnnounceCfg='["/ip4/1.2.3.4/ipcidr/16"]' -test_expect_success "test_config_set succeeds" " - ipfs config --json Addresses.NoAnnounce '$noAnnounceCfg' -" - -test_launch_ipfs_daemon - -test_expect_success "Addresses.NoAnnounce with /ipcidr affects addresses" ' - ipfs swarm addrs local >actual && - grep -v "/ip4/1.2.3.4/tcp/1234" actual && - ipfs id -f"" | xargs -n1 echo >actual && - grep -v "/ip4/1.2.3.4/tcp/1234" actual -' - -test_kill_ipfs_daemon - -test_expect_success "set up tcp testbed" ' - iptb testbed create -type localipfs -count 2 -force -init -' - -startup_cluster 2 - -test_expect_success "disconnect work without specifying a transport address" ' - [ $(ipfsi 0 swarm peers | wc -l) -eq 1 ] && - ipfsi 0 swarm disconnect "/ipfs/$(iptb attr get 1 id)" && - [ $(ipfsi 0 swarm peers | wc -l) -eq 0 ] -' - -test_expect_success "connect work without specifying a transport address" ' - [ $(ipfsi 0 swarm peers | wc -l) -eq 0 ] && - ipfsi 0 swarm connect "/ipfs/$(iptb attr get 1 id)" && - [ $(ipfsi 0 swarm peers | wc -l) -eq 1 ] -' - -test_expect_success "/p2p addresses work" ' - [ $(ipfsi 0 swarm peers | wc -l) -eq 1 ] && - ipfsi 0 swarm disconnect "/p2p/$(iptb attr get 1 id)" && - [ $(ipfsi 0 swarm peers | wc -l) -eq 0 ] && - ipfsi 0 swarm connect "/p2p/$(iptb attr get 1 id)" && - [ $(ipfsi 0 swarm peers | wc -l) -eq 1 ] -' - -test_expect_success "stopping cluster" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0141-addfilter.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0141-addfilter.sh deleted file mode 100755 index 5874f311..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0141-addfilter.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs swarm command" - -AF1="/ip4/192.168.0.0/ipcidr/16" -AF2="/ip4/127.0.0.0/ipcidr/8" -AF3="/ip6/2008:bcd::/ipcidr/32" -AF4="/ip4/172.16.0.0/ipcidr/12" - -. lib/test-lib.sh - -test_init_ipfs - -test_swarm_filter_cmd() { - printf "" > list_expected - for AF in "$@" - do - echo "$AF" >>list_expected - done - - test_expect_success "'ipfs swarm filters' succeeds" ' - ipfs swarm filters > list_actual - ' - - test_expect_success "'ipfs swarm filters' output looks good" ' - test_sort_cmp list_expected list_actual - ' -} - -test_config_swarm_addrfilters_cmd() { - printf "" > list_expected - for AF in "$@" - do - echo "$AF" >>list_expected - done - - test_expect_success "'ipfs config Swarm.AddrFilters' succeeds" ' - ipfs config Swarm.AddrFilters > list_actual - ' - - printf "" > list_actual_cleaned - if [ "$( cat list_actual )" != "[]" -a "$( cat list_actual )" != "null" ]; - then - grep -v "^\]" list_actual | - grep -v "^\[" | - tr -d '" ,' > list_actual_cleaned - fi - - test_expect_success "'ipfs config Swarm.AddrFilters' output looks good" ' - test_sort_cmp list_expected list_actual_cleaned - ' -} - -test_swarm_filters() { - - # expect first address from config - test_swarm_filter_cmd $AF1 $AF4 - - test_config_swarm_addrfilters_cmd $AF1 $AF4 - - ipfs swarm filters rm all - - test_swarm_filter_cmd - - test_config_swarm_addrfilters_cmd - - test_expect_success "'ipfs swarm filter add' succeeds" ' - ipfs swarm filters add $AF1 $AF2 $AF3 - ' - - test_swarm_filter_cmd $AF1 $AF2 $AF3 - - test_config_swarm_addrfilters_cmd $AF1 $AF2 $AF3 - - test_expect_success "'ipfs swarm filter rm' succeeds" ' - ipfs swarm filters rm $AF2 $AF3 - ' - - test_swarm_filter_cmd $AF1 - - test_config_swarm_addrfilters_cmd $AF1 - - test_expect_success "'ipfs swarm filter add' succeeds" ' - ipfs swarm filters add $AF4 $AF2 - ' - - test_swarm_filter_cmd $AF1 $AF2 $AF4 - - test_config_swarm_addrfilters_cmd $AF1 $AF2 $AF4 - - test_expect_success "'ipfs swarm filter rm' succeeds" ' - ipfs swarm filters rm $AF1 $AF2 $AF4 - ' - - test_swarm_filter_cmd - - test_config_swarm_addrfilters_cmd -} - -test_expect_success "init without any filters" ' - echo "null" >expected && - ipfs config Swarm.AddrFilters >actual && - test_cmp expected actual -' - -test_expect_success "adding addresses to the config to filter succeeds" ' - ipfs config --json Swarm.AddrFilters "[\"$AF1\", \"$AF4\"]" -' - -test_launch_ipfs_daemon - -test_swarm_filters - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0150-clisuggest.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0150-clisuggest.sh deleted file mode 100755 index a504b38d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0150-clisuggest.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test ipfs cli cmd suggest" - -. lib/test-lib.sh - -test_suggest() { - - - test_expect_success "test command fails" ' - test_must_fail ipfs kog 2>actual - ' - - test_expect_success "test one command is suggested" ' - grep "Did you mean this?" actual && - grep "log" actual || - test_fsh cat actual - ' - - test_expect_success "test command fails" ' - test_must_fail ipfs lis 2>actual - ' - - test_expect_success "test multiple commands are suggested" ' - grep "Did you mean any of these?" actual && - grep "ls" actual && - grep "id" actual || - test_fsh cat actual - ' - -} - -test_init_ipfs - -test_suggest - -test_launch_ipfs_daemon - -test_suggest - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0151-sysdiag.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0151-sysdiag.sh deleted file mode 100755 index 5c95dda2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0151-sysdiag.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test output of sysdiag command" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "ipfs diag sys succeeds" ' - ipfs diag sys > output -' - -test_expect_success "output contains some expected keys" ' - grep "virt" output && - grep "interface_addresses" output && - grep "arch" output && - grep "online" output -' - -test_expect_success "uname succeeds" ' - UOUT=$(uname) -' - -test_expect_success "output is similar to uname" ' - case $UOUT in - Linux) - grep linux output > /dev/null - ;; - Darwin) - grep darwin output > /dev/null - ;; - FreeBSD) - grep freebsd output > /dev/null - ;; - CYGWIN*) - grep windows output > /dev/null - ;; - *) - test_fsh echo system check for $UOUT failed, unsupported system? - ;; - esac -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0160-resolve.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0160-resolve.sh deleted file mode 100755 index 77d7ac12..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0160-resolve.sh +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test resolve command" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "resolve: prepare files" ' - mkdir -p a/b && - echo "a/b/c" >a/b/c && - a_hash=$(ipfs add -q -r a | tail -n1) && - b_hash=$(ipfs add -q -r a/b | tail -n1) && - c_hash=$(ipfs add -q -r a/b/c | tail -n1) - a_hash_b32=$(cid-fmt -v 1 -b b %s $a_hash) - b_hash_b32=$(cid-fmt -v 1 -b b %s $b_hash) - c_hash_b32=$(cid-fmt -v 1 -b b %s $c_hash) -' - -test_expect_success "resolve: prepare dag" ' - dag_hash=$(ipfs dag put <<<"{\"i\": {\"j\": {\"k\": \"asdfasdfasdf\"}}}") -' - -test_resolve_setup_name() { - ref=$1 - - test_expect_success "resolve: prepare name" ' - id_hash=$(ipfs id -f="") && - ipfs name publish --allow-offline "$ref" && - printf "$ref\n" >expected_nameval && - ipfs name resolve >actual_nameval && - test_cmp expected_nameval actual_nameval - ' -} - -test_resolve_setup_name_fail() { - ref=$1 - - test_expect_failure "resolve: prepare name" ' - id_hash=$(ipfs id -f="") && - ipfs name publish --allow-offline "$ref" && - printf "$ref" >expected_nameval && - ipfs name resolve >actual_nameval && - test_cmp expected_nameval actual_nameval - ' -} - -test_resolve() { - src=$1 - dst=$2 - extra=$3 - - test_expect_success "resolve succeeds: $src" ' - ipfs resolve $extra -r "$src" >actual - ' - - test_expect_success "resolved correctly: $src -> $dst" ' - printf "$dst\n" >expected && - test_cmp expected actual - ' -} - -test_resolve_cmd() { - test_resolve "/ipfs/$a_hash" "/ipfs/$a_hash" - test_resolve "/ipfs/$a_hash/b" "/ipfs/$b_hash" - test_resolve "/ipfs/$a_hash/b/c" "/ipfs/$c_hash" - test_resolve "/ipfs/$b_hash/c" "/ipfs/$c_hash" - test_resolve "/ipld/$dag_hash/i/j/k" "/ipld/$dag_hash/i/j/k" - test_resolve "/ipld/$dag_hash/i/j" "/ipld/$dag_hash/i/j" - test_resolve "/ipld/$dag_hash/i" "/ipld/$dag_hash/i" - - test_resolve_setup_name "/ipfs/$a_hash" - test_resolve "/ipns/$id_hash" "/ipfs/$a_hash" - test_resolve "/ipns/$id_hash/b" "/ipfs/$b_hash" - test_resolve "/ipns/$id_hash/b/c" "/ipfs/$c_hash" - - test_resolve_setup_name "/ipfs/$b_hash" - test_resolve "/ipns/$id_hash" "/ipfs/$b_hash" - test_resolve "/ipns/$id_hash/c" "/ipfs/$c_hash" - - test_resolve_setup_name "/ipfs/$c_hash" - test_resolve "/ipns/$id_hash" "/ipfs/$c_hash" -} - -test_resolve_cmd_b32() { - # no flags needed, base should be preserved - - test_resolve "/ipfs/$a_hash_b32" "/ipfs/$a_hash_b32" - test_resolve "/ipfs/$a_hash_b32/b" "/ipfs/$b_hash_b32" - test_resolve "/ipfs/$a_hash_b32/b/c" "/ipfs/$c_hash_b32" - test_resolve "/ipfs/$b_hash_b32/c" "/ipfs/$c_hash_b32" - - # flags needed passed in path does not contain cid to derive base - - test_resolve_setup_name "/ipfs/$a_hash_b32" - test_resolve "/ipns/$id_hash" "/ipfs/$a_hash_b32" --cid-base=base32 - test_resolve "/ipns/$id_hash/b" "/ipfs/$b_hash_b32" --cid-base=base32 - test_resolve "/ipns/$id_hash/b/c" "/ipfs/$c_hash_b32" --cid-base=base32 - - test_resolve_setup_name "/ipfs/$b_hash_b32" --cid-base=base32 - test_resolve "/ipns/$id_hash" "/ipfs/$b_hash_b32" --cid-base=base32 - test_resolve "/ipns/$id_hash/c" "/ipfs/$c_hash_b32" --cid-base=base32 - - test_resolve_setup_name "/ipfs/$c_hash_b32" - test_resolve "/ipns/$id_hash" "/ipfs/$c_hash_b32" --cid-base=base32 -} - - -#todo remove this once the online resolve is fixed -test_resolve_fail() { - src=$1 - dst=$2 - - test_expect_failure "resolve succeeds: $src" ' - ipfs resolve "$src" >actual - ' - - test_expect_failure "resolved correctly: $src -> $dst" ' - printf "$dst" >expected && - test_cmp expected actual - ' -} - -test_resolve_cmd_fail() { - test_resolve "/ipfs/$a_hash" "/ipfs/$a_hash" - test_resolve "/ipfs/$a_hash/b" "/ipfs/$b_hash" - test_resolve "/ipfs/$a_hash/b/c" "/ipfs/$c_hash" - test_resolve "/ipfs/$b_hash/c" "/ipfs/$c_hash" - test_resolve "/ipld/$dag_hash" "/ipld/$dag_hash" - test_resolve "/ipld/$dag_hash/i/j/k" "/ipld/$dag_hash/i/j/k" - test_resolve "/ipld/$dag_hash/i/j" "/ipld/$dag_hash/i/j" - test_resolve "/ipld/$dag_hash/i" "/ipld/$dag_hash/i" - - test_resolve_setup_name_fail "/ipfs/$a_hash" - test_resolve_fail "/ipns/$id_hash" "/ipfs/$a_hash" - test_resolve_fail "/ipns/$id_hash/b" "/ipfs/$b_hash" - test_resolve_fail "/ipns/$id_hash/b/c" "/ipfs/$c_hash" - - test_resolve_setup_name_fail "/ipfs/$b_hash" - test_resolve_fail "/ipns/$id_hash" "/ipfs/$b_hash" - test_resolve_fail "/ipns/$id_hash/c" "/ipfs/$c_hash" - - test_resolve_setup_name_fail "/ipfs/$c_hash" - test_resolve_fail "/ipns/$id_hash" "/ipfs/$c_hash" -} - -# should work offline -test_resolve_cmd -test_resolve_cmd_b32 - -# should work online -test_launch_ipfs_daemon -test_resolve_cmd_fail -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0165-keystore.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0165-keystore.sh deleted file mode 100755 index 617b0e2b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0165-keystore.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test keystore commands" - -. lib/test-lib.sh - -test_init_ipfs - -test_key_cmd() { - test_expect_success "create a new rsa key" ' - rsahash=$(ipfs key gen foobarsa --type=rsa --size=2048) - ' - - test_expect_success "create a new ed25519 key" ' - edhash=$(ipfs key gen bazed --type=ed25519) - ' - - test_expect_success "both keys show up in list output" ' - echo bazed > list_exp && - echo foobarsa >> list_exp && - echo self >> list_exp - ipfs key list | sort > list_out && - test_cmp list_exp list_out - ' - - test_expect_success "key hashes show up in long list output" ' - ipfs key list -l | grep $edhash > /dev/null && - ipfs key list -l | grep $rsahash > /dev/null - ' - - test_expect_success "key list -l contains self key with peerID" ' - PeerID="$(ipfs config Identity.PeerID)" - ipfs key list -l | grep "$PeerID\s\+self" - ' - - test_expect_success "key rm remove a key" ' - ipfs key rm foobarsa - echo bazed > list_exp && - echo self >> list_exp - ipfs key list | sort > list_out && - test_cmp list_exp list_out - ' - - test_expect_success "key rm can't remove self" ' - test_must_fail ipfs key rm self 2>&1 | tee key_rm_out && - grep -q "Error: cannot remove key with name" key_rm_out - ' - - test_expect_success "key rename rename a key" ' - ipfs key rename bazed fooed - echo fooed > list_exp && - echo self >> list_exp - ipfs key list | sort > list_out && - test_cmp list_exp list_out - ' - - test_expect_success "key rename rename key output succeeds" ' - key_content=$(ipfs key gen key1 --type=rsa --size=2048) && - ipfs key rename key1 key2 >rs && - echo "Key $key_content renamed to key2" >expect && - test_cmp rs expect - ' - - test_expect_success "key rename can't rename self" ' - test_must_fail ipfs key rename self bar 2>&1 | tee key_rename_out && - grep -q "Error: cannot rename key with name" key_rename_out - ' - - test_expect_success "key rename can't overwrite self, even with force" ' - test_must_fail ipfs key rename -f fooed self 2>&1 | tee key_rename_out && - grep -q "Error: cannot overwrite key with name" key_rename_out - ' -} - -test_key_cmd - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0170-dht.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0170-dht.sh deleted file mode 100755 index 6a1a0ed0..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0170-dht.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test dht command" - -. lib/test-lib.sh - -TEST_DHT_VALUE="foobar" -TEST_DHT_PATH="/pk/QmbWTwYGcmdyK9CYfNBcfs9nhZs17a6FQ4Y8oea278xx41" - -test_dht() { - NUM_NODES=5 - - test_expect_success 'init iptb' ' - rm -rf .iptb/ && - iptb testbed create -type localipfs -count $NUM_NODES -init - ' - - startup_cluster $NUM_NODES $@ - - test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_2=$(iptb attr get 2 id) - ' - - # ipfs dht findpeer - test_expect_success 'findpeer' ' - ipfsi 1 dht findpeer $PEERID_0 | sort >actual && - ipfsi 0 id -f "" | cut -d / -f 1-5 | sort >expected && - test_cmp actual expected - ' - - # ipfs dht put - test_expect_success 'put with good keys' ' - ipfsi 0 dht put "$TEST_DHT_PATH" "$TEST_DHT_VALUE" | sort >putted && - [ -s putted ] || - test_fsh cat putted - ' - - # ipfs dht get - test_expect_success 'get with good keys' ' - HASH="$(echo "hello world" | ipfsi 2 add -q)" && - ipfsi 2 name publish "/ipfs/$HASH" && - ipfsi 1 dht get "/ipns/$PEERID_2" | grep -aq "/ipfs/$HASH" - ' - - test_expect_success 'put with bad keys fails (issue #5113)' ' - ipfsi 0 dht put "foo" "bar" >putted - ipfsi 0 dht put "/pk/foo" "bar" >>putted - ipfsi 0 dht put "/ipns/foo" "bar" >>putted - [ ! -s putted ] || - test_fsh cat putted - ' - - test_expect_failure 'put with bad keys returns error (issue #4611)' ' - ! ipfsi 0 dht put "foo" "bar" && - ! ipfsi 0 dht put "/pk/foo" "bar" && - ! ipfsi 0 dht put "/ipns/foo" "bar" - ' - - test_expect_failure 'get with bad keys (issue #4611)' ' - ! ipfsi 0 dht get "foo" && - ! ipfsi 0 dht get "/pk/foo" - ' - - test_expect_success "add a ref so we can find providers for it" ' - echo "some stuff" > afile && - HASH=$(ipfsi 3 add -q afile) - ' - - # ipfs dht findprovs - test_expect_success 'findprovs' ' - ipfsi 4 dht findprovs $HASH > provs && - iptb attr get 3 id > expected && - test_cmp provs expected - ' - - - # ipfs dht query - ## We query 3 different keys, to statisically lower the chance that the queryer - ## turns out to be the closest to what a key hashes to. - # TODO: flaky. tracked by https://github.com/ipfs/go-ipfs/issues/2620 - test_expect_success 'query' ' - ipfsi 3 dht query "$(echo banana | ipfsi 3 add -q)" >actual && - ipfsi 3 dht query "$(echo apple | ipfsi 3 add -q)" >>actual && - ipfsi 3 dht query "$(echo pear | ipfsi 3 add -q)" >>actual && - PEERS=$(wc -l actual | cut -d '"'"' '"'"' -f 1) && - [ -s actual ] || - test_might_fail test_fsh cat actual - ' - - test_expect_success 'stop iptb' ' - iptb stop - ' - - test_expect_success "dht commands fail when offline" ' - test_must_fail ipfsi 0 dht findprovs "$HASH" 2>err_findprovs && - test_must_fail ipfsi 0 dht findpeer "$HASH" 2>err_findpeer && - test_must_fail ipfsi 0 dht put "$TEST_DHT_PATH" "$TEST_DHT_VALUE" 2>err_put && - test_should_contain "this command must be run in online mode" err_findprovs && - test_should_contain "this command must be run in online mode" err_findpeer && - test_should_contain "this command must be run in online mode" err_put - ' -} - -test_dht -test_dht --enable-pubsub-experiment --enable-namesys-pubsub - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0175-reprovider.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0175-reprovider.sh deleted file mode 100755 index 5f6c20b6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0175-reprovider.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test reprovider" - -. lib/test-lib.sh - -NUM_NODES=6 - -init_strategy() { - test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -force -count $NUM_NODES -init - ' - - test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_1=$(iptb attr get 1 id) - ' - - test_expect_success 'use pinning startegy for reprovider' ' - ipfsi 0 config Reprovider.Strategy '$1' - ' - - startup_cluster ${NUM_NODES} -} - -findprovs_empty() { - test_expect_success 'findprovs '$1' succeeds' ' - ipfsi 1 dht findprovs -n 1 '$1' > findprovsOut - ' - - test_expect_success "findprovs $1 output is empty" ' - test_must_be_empty findprovsOut - ' -} - -findprovs_expect() { - test_expect_success 'findprovs '$1' succeeds' ' - ipfsi 1 dht findprovs -n 1 '$1' > findprovsOut && - echo '$2' > expected - ' - - test_expect_success "findprovs $1 output looks good" ' - test_cmp findprovsOut expected - ' -} - -reprovide() { - test_expect_success 'reprovide' ' - # TODO: this hangs, though only after reprovision was done - ipfsi 0 bitswap reprovide - ' -} - -# Test 'all' strategy -init_strategy 'all' - -test_expect_success 'add test object' ' - HASH_0=$(echo "foo" | ipfsi 0 add -q --local) -' - -findprovs_empty '$HASH_0' -reprovide -findprovs_expect '$HASH_0' '$PEERID_0' - -# Test 'pinned' strategy -init_strategy 'pinned' - -test_expect_success 'prepare test files' ' - echo foo > f1 && - echo bar > f2 -' - -test_expect_success 'add test objects' ' - HASH_FOO=$(ipfsi 0 add -q --local --pin=false f1) && - HASH_BAR=$(ipfsi 0 add -q --local --pin=false f2) && - HASH_BAR_DIR=$(ipfsi 0 add -q --local -w f2) -' - -findprovs_empty '$HASH_FOO' -findprovs_empty '$HASH_BAR' -findprovs_empty '$HASH_BAR_DIR' - -reprovide - -findprovs_empty '$HASH_FOO' -findprovs_expect '$HASH_BAR' '$PEERID_0' -findprovs_expect '$HASH_BAR_DIR' '$PEERID_0' - -test_expect_success 'stop peer 1' ' - iptb stop 1 -' - -# Test 'roots' strategy -init_strategy 'roots' - -test_expect_success 'prepare test files' ' - echo foo > f1 && - echo bar > f2 && - echo baz > f3 -' - -test_expect_success 'add test objects' ' - HASH_FOO=$(ipfsi 0 add -q --local --pin=false f1) && - HASH_BAR=$(ipfsi 0 add -q --local --pin=false f2) && - HASH_BAZ=$(ipfsi 0 add -q --local f3) && - HASH_BAR_DIR=$(ipfsi 0 add -q --local -w f2 | tail -1) -' - -findprovs_empty '$HASH_FOO' -findprovs_empty '$HASH_BAR' -findprovs_empty '$HASH_BAR_DIR' - -reprovide - -findprovs_empty '$HASH_FOO' -findprovs_empty '$HASH_BAR' -findprovs_expect '$HASH_BAZ' '$PEERID_0' -findprovs_expect '$HASH_BAR_DIR' '$PEERID_0' - -test_expect_success 'stop peer 1' ' - iptb stop 1 -' - -# Test reprovider working with ticking disabled -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -force -count $NUM_NODES -init -' - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_1=$(iptb attr get 1 id) -' - -test_expect_success 'Disable reprovider ticking' ' - ipfsi 0 config Reprovider.Interval 0 -' - -startup_cluster ${NUM_NODES} - -test_expect_success 'add test object' ' - HASH_0=$(echo "foo" | ipfsi 0 add -q --local) -' - -findprovs_empty '$HASH_0' -reprovide -findprovs_expect '$HASH_0' '$PEERID_0' - -test_expect_success 'resolve object $HASH_0' ' - HASH_WITH_PREFIX=$(ipfsi 1 resolve $HASH_0) -' -findprovs_expect '$HASH_WITH_PREFIX' '$PEERID_0' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-p2p.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-p2p.sh deleted file mode 100755 index eaeed65b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-p2p.sh +++ /dev/null @@ -1,381 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test experimental p2p commands" - -. lib/test-lib.sh - -# start iptb + wait for peering -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs --count 3 --init -' - -test_expect_success 'generate test data' ' - echo "ABCDEF" > test0.bin && - echo "012345" > test1.bin -' - -startup_cluster 3 - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_1=$(iptb attr get 1 id) -' -check_test_ports() { - test_expect_success "test ports are closed" ' - (! (netstat -lnp | grep "LISTEN" | grep ":10101 ")) && - (! (netstat -lnp | grep "LISTEN" | grep ":10102 "))&& - (! (netstat -lnp | grep "LISTEN" | grep ":10103 ")) && - (! (netstat -lnp | grep "LISTEN" | grep ":10104 ")) - ' -} -check_test_ports - -test_expect_success 'fail without config option being enabled' ' - test_must_fail ipfsi 0 p2p stream ls -' - -test_expect_success "enable filestore config setting" ' - ipfsi 0 config --json Experimental.Libp2pStreamMounting true - ipfsi 1 config --json Experimental.Libp2pStreamMounting true - ipfsi 2 config --json Experimental.Libp2pStreamMounting true -' - -test_expect_success 'start p2p listener' ' - ipfsi 0 p2p listen /x/p2p-test /ip4/127.0.0.1/tcp/10101 2>&1 > listener-stdouterr.log -' - -test_expect_success 'cannot re-register p2p listener' ' - test_must_fail ipfsi 0 p2p listen /x/p2p-test /ip4/127.0.0.1/tcp/10103 2>&1 > listener-stdouterr.log -' - -# Server to client communications - -spawn_sending_server() { - test_expect_success 'S->C Spawn sending server' ' - ma-pipe-unidir --listen --pidFile=listener.pid send /ip4/127.0.0.1/tcp/10101 < test0.bin & - - test_wait_for_file 30 100ms listener.pid && - kill -0 $(cat listener.pid) - ' -} - -test_server_to_client() { - test_expect_success 'S->C Connect and receive data' ' - ma-pipe-unidir recv /ip4/127.0.0.1/tcp/10102 > client.out - ' - - test_expect_success 'S->C Ensure server finished' ' - test ! -f listener.pid - ' - - test_expect_success 'S->C Output looks good' ' - test_cmp client.out test0.bin - ' -} - -spawn_sending_server - -test_expect_success 'S->C(/ipfs/peerID) Setup client side' ' - ipfsi 1 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10102 /ipfs/${PEERID_0} 2>&1 > dialer-stdouterr.log -' - -test_expect_success 'S->C Setup(dnsaddr/addr/ipfs/peerID) client side' ' - ipfsi 1 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10103 /dnsaddr/bootstrap.libp2p.io/ipfs/${PEERID_0} 2>&1 > dialer-stdouterr.log -' - -test_expect_success 'S->C Setup(dnsaddr/addr) client side' ' - ipfsi 1 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10104 /dnsaddr/bootstrap.libp2p.io/ 2>&1 > dialer-stdouterr.log -' - - -test_expect_success 'S->C Output is empty' ' - test_must_be_empty dialer-stdouterr.log -' - -test_expect_success "'ipfs p2p ls | grep' succeeds" ' - ipfsi 1 p2p ls | grep "/x/p2p-test /ip4/127.0.0.1/tcp/10104" -' - -test_server_to_client - -test_expect_success 'S->C Connect with dead server' ' - ma-pipe-unidir recv /ip4/127.0.0.1/tcp/10102 > client.out -' - -test_expect_success 'S->C Output is empty' ' - test_must_be_empty client.out -' - -spawn_sending_server - -test_server_to_client - -test_expect_success 'S->C Close local listener' ' - ipfsi 1 p2p close -p /x/p2p-test -' - -check_test_ports - -# Client to server communications - -test_expect_success 'C->S Spawn receiving server' ' - ma-pipe-unidir --listen --pidFile=listener.pid recv /ip4/127.0.0.1/tcp/10101 > server.out & - - test_wait_for_file 30 100ms listener.pid && - kill -0 $(cat listener.pid) -' - -test_expect_success 'C->S Setup client side' ' - ipfsi 1 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10102 /ipfs/${PEERID_0} 2>&1 > dialer-stdouterr.log -' - -test_expect_success 'C->S Connect and receive data' ' - ma-pipe-unidir send /ip4/127.0.0.1/tcp/10102 < test1.bin -' - -test_expect_success 'C->S Ensure server finished' ' - go-sleep 250ms && - test ! -f listener.pid -' - -test_expect_success 'C->S Output looks good' ' - test_cmp server.out test1.bin -' - -test_expect_success 'C->S Close local listener' ' - ipfsi 1 p2p close -p /x/p2p-test -' - -check_test_ports - -# Checking port - -test_expect_success "cannot accept 0 port in 'ipfs p2p listen'" ' - test_must_fail ipfsi 2 p2p listen /x/p2p-test/0 /ip4/127.0.0.1/tcp/0 -' - -test_expect_success "'ipfs p2p forward' accept 0 port" ' - ipfsi 2 p2p forward /x/p2p-test/0 /ip4/127.0.0.1/tcp/0 /ipfs/$PEERID_0 -' - -test_expect_success "'ipfs p2p ls' output looks good" ' - echo "true" > forward_0_expected && - ipfsi 2 p2p ls | awk '\''{print $2}'\'' | sed "s/.*\///" | awk -F: '\''{if($1>0)print"true"}'\'' > forward_0_actual && - ipfsi 2 p2p close -p /x/p2p-test/0 && - test_cmp forward_0_expected forward_0_actual -' - -# Listing streams - -test_expect_success "'ipfs p2p ls' succeeds" ' - echo "/x/p2p-test /ipfs/$PEERID_0 /ip4/127.0.0.1/tcp/10101" > expected && - ipfsi 0 p2p ls > actual -' - -test_expect_success "'ipfs p2p ls' output looks good" ' - test_cmp expected actual -' - -test_expect_success "Cannot re-register app handler" ' - test_must_fail ipfsi 0 p2p listen /x/p2p-test /ip4/127.0.0.1/tcp/10101 -' - -test_expect_success "'ipfs p2p stream ls' output is empty" ' - ipfsi 0 p2p stream ls > actual && - test_must_be_empty actual -' - -check_test_ports - -test_expect_success "Setup: Idle stream" ' - ma-pipe-unidir --listen --pidFile=listener.pid recv /ip4/127.0.0.1/tcp/10101 & - - ipfsi 1 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10102 /ipfs/$PEERID_0 && - ma-pipe-unidir --pidFile=client.pid recv /ip4/127.0.0.1/tcp/10102 & - - test_wait_for_file 30 100ms listener.pid && - test_wait_for_file 30 100ms client.pid && - kill -0 $(cat listener.pid) && kill -0 $(cat client.pid) -' - -test_expect_success "'ipfs p2p stream ls' succeeds" ' - echo "3 /x/p2p-test /ipfs/$PEERID_1 /ip4/127.0.0.1/tcp/10101" > expected - ipfsi 0 p2p stream ls > actual -' - -test_expect_success "'ipfs p2p stream ls' output looks good" ' - test_cmp expected actual -' - -test_expect_success "'ipfs p2p stream close' closes stream" ' - ipfsi 0 p2p stream close 3 && - ipfsi 0 p2p stream ls > actual && - [ ! -f listener.pid ] && [ ! -f client.pid ] && - test_must_be_empty actual -' - -test_expect_success "'ipfs p2p close' closes remote handler" ' - ipfsi 0 p2p close -p /x/p2p-test && - ipfsi 0 p2p ls > actual && - test_must_be_empty actual -' - -test_expect_success "'ipfs p2p close' closes local handler" ' - ipfsi 1 p2p close -p /x/p2p-test && - ipfsi 1 p2p ls > actual && - test_must_be_empty actual -' - -check_test_ports - -test_expect_success "Setup: Idle stream(2)" ' - ma-pipe-unidir --listen --pidFile=listener.pid recv /ip4/127.0.0.1/tcp/10101 & - - ipfsi 0 p2p listen /x/p2p-test2 /ip4/127.0.0.1/tcp/10101 2>&1 > listener-stdouterr.log && - ipfsi 1 p2p forward /x/p2p-test2 /ip4/127.0.0.1/tcp/10102 /ipfs/$PEERID_0 2>&1 > dialer-stdouterr.log && - ma-pipe-unidir --pidFile=client.pid recv /ip4/127.0.0.1/tcp/10102 & - - test_wait_for_file 30 100ms listener.pid && - test_wait_for_file 30 100ms client.pid && - kill -0 $(cat listener.pid) && kill -0 $(cat client.pid) -' - -test_expect_success "'ipfs p2p stream ls' succeeds(2)" ' - echo "4 /x/p2p-test2 /ipfs/$PEERID_1 /ip4/127.0.0.1/tcp/10101" > expected - ipfsi 0 p2p stream ls > actual - test_cmp expected actual -' - -test_expect_success "'ipfs p2p close -a' closes remote app handlers" ' - ipfsi 0 p2p close -a && - ipfsi 0 p2p ls > actual && - test_must_be_empty actual -' - -test_expect_success "'ipfs p2p close -a' closes local app handlers" ' - ipfsi 1 p2p close -a && - ipfsi 1 p2p ls > actual && - test_must_be_empty actual -' - -test_expect_success "'ipfs p2p stream close -a' closes streams" ' - ipfsi 0 p2p stream close -a && - ipfsi 0 p2p stream ls > actual && - [ ! -f listener.pid ] && [ ! -f client.pid ] && - test_must_be_empty actual -' - -check_test_ports - -test_expect_success "'ipfs p2p close' closes app numeric handlers" ' - ipfsi 0 p2p listen /x/1234 /ip4/127.0.0.1/tcp/10101 && - ipfsi 0 p2p close -p /x/1234 && - ipfsi 0 p2p ls > actual && - test_must_be_empty actual -' - -test_expect_success "'ipfs p2p close' closes by target addr" ' - ipfsi 0 p2p listen /x/p2p-test /ip4/127.0.0.1/tcp/10101 && - ipfsi 0 p2p close -t /ip4/127.0.0.1/tcp/10101 && - ipfsi 0 p2p ls > actual && - test_must_be_empty actual -' - -test_expect_success "'ipfs p2p close' closes right listeners" ' - ipfsi 0 p2p listen /x/p2p-test /ip4/127.0.0.1/tcp/10101 && - ipfsi 0 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10101 /ipfs/$PEERID_1 && - echo "/x/p2p-test /ipfs/$PEERID_0 /ip4/127.0.0.1/tcp/10101" > expected && - - ipfsi 0 p2p close -l /ip4/127.0.0.1/tcp/10101 && - ipfsi 0 p2p ls > actual && - test_cmp expected actual -' - -check_test_ports - -test_expect_success "'ipfs p2p close' closes by listen addr" ' - ipfsi 0 p2p close -l /ipfs/$PEERID_0 && - ipfsi 0 p2p ls > actual && - test_must_be_empty actual -' - -# Peer reporting - -test_expect_success 'start p2p listener reporting peer' ' - ipfsi 0 p2p listen /x/p2p-test /ip4/127.0.0.1/tcp/10101 --report-peer-id 2>&1 > listener-stdouterr.log -' - -test_expect_success 'C->S Spawn receiving server' ' - ma-pipe-unidir --listen --pidFile=listener.pid recv /ip4/127.0.0.1/tcp/10101 > server.out & - - test_wait_for_file 30 100ms listener.pid && - kill -0 $(cat listener.pid) -' - -test_expect_success 'C->S Setup client side' ' - ipfsi 1 p2p forward /x/p2p-test /ip4/127.0.0.1/tcp/10102 /ipfs/${PEERID_0} 2>&1 > dialer-stdouterr.log -' - -test_expect_success 'C->S Connect and receive data' ' - ma-pipe-unidir send /ip4/127.0.0.1/tcp/10102 < test1.bin -' - -test_expect_success 'C->S Ensure server finished' ' - go-sleep 250ms && - test ! -f listener.pid -' - -test_expect_success 'C->S Output looks good' ' - echo ${PEERID_1} > expected && - cat test1.bin >> expected && - test_cmp server.out expected -' - -test_expect_success 'C->S Close listeners' ' - ipfsi 1 p2p close -p /x/p2p-test && - ipfsi 0 p2p close -p /x/p2p-test && - - ipfsi 0 p2p ls > actual && - test_must_be_empty actual && - - ipfsi 1 p2p ls > actual && - test_must_be_empty actual -' - -test_expect_success "non /x/ scoped protocols are not allowed" ' - test_must_fail ipfsi 0 p2p listen /its/not/a/x/path /ip4/127.0.0.1/tcp/10101 2> actual && - echo "Error: protocol name must be within '"'"'/x/'"'"' namespace" > expected - test_cmp expected actual -' - -check_test_ports - -test_expect_success 'start p2p listener on custom proto' ' - ipfsi 0 p2p listen --allow-custom-protocol /p2p-test /ip4/127.0.0.1/tcp/10101 2>&1 > listener-stdouterr.log && - test_must_be_empty listener-stdouterr.log -' - -spawn_sending_server - -test_expect_success 'S->C Setup client side (custom proto)' ' - ipfsi 1 p2p forward --allow-custom-protocol /p2p-test /ip4/127.0.0.1/tcp/10102 /ipfs/${PEERID_0} 2>&1 > dialer-stdouterr.log -' - -test_server_to_client - -test_expect_success 'C->S Close local listener' ' - ipfsi 1 p2p close -p /p2p-test - ipfsi 1 p2p ls > actual && - test_must_be_empty actual -' - -check_test_ports - -test_expect_success 'stop iptb' ' - iptb stop -' - -check_test_ports - -test_done - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub-gossipsub.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub-gossipsub.sh deleted file mode 100755 index c5ff8daf..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub-gossipsub.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test pubsub with gossipsub" - -. lib/test-lib.sh - -# start iptb + wait for peering -NUM_NODES=5 -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count $NUM_NODES -init -' - -test_expect_success "enable gossipsub" ' - for x in $(seq 0 4); do - ipfsi $x config Pubsub.Router gossipsub - done -' - -# this is just a copy of t0180-pubsub; smell. -startup_cluster $NUM_NODES --enable-pubsub-experiment - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_2=$(iptb attr get 2 id) -' - -test_expect_success 'pubsub' ' - echo "testOK" > expected && - touch empty && - mkfifo wait || - test_fsh echo init fail - - # ipfs pubsub sub is long-running so we need to start it in the background and - # wait put its output somewhere where we can access it - ( - ipfsi 0 pubsub sub --enc=ndpayload testTopic | if read line; then - echo $line > actual && - echo > wait - fi - ) & -' - -test_expect_success "wait until ipfs pubsub sub is ready to do work" ' - go-sleep 500ms -' - -test_expect_success "can see peer subscribed to testTopic" ' - ipfsi 1 pubsub peers testTopic > peers_out -' - -test_expect_success "output looks good" ' - echo $PEERID_0 > peers_exp && - test_cmp peers_exp peers_out -' - -test_expect_success "publish something" ' - ipfsi 1 pubsub pub testTopic "testOK" &> pubErr -' - -test_expect_success "wait until echo > wait executed" ' - cat wait && - test_cmp pubErr empty && - test_cmp expected actual -' - -test_expect_success "wait for another pubsub message" ' - echo "testOK2" > expected && - mkfifo wait2 || - test_fsh echo init fail - - # ipfs pubsub sub is long-running so we need to start it in the background and - # wait put its output somewhere where we can access it - ( - ipfsi 2 pubsub sub --enc=ndpayload testTopic | if read line; then - echo $line > actual && - echo > wait2 - fi - ) & -' - -test_expect_success "wait until ipfs pubsub sub is ready to do work" ' - go-sleep 500ms -' - -test_expect_success "publish something" ' - echo "testOK2" | ipfsi 1 pubsub pub testTopic &> pubErr -' - -test_expect_success "wait until echo > wait executed" ' - echo "testOK2" > expected && - cat wait2 && - test_cmp pubErr empty && - test_cmp expected actual -' - -test_expect_success 'stop iptb' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub.sh deleted file mode 100755 index 9efdc4d1..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0180-pubsub.sh +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test dht command" - -. lib/test-lib.sh - -# start iptb + wait for peering -NUM_NODES=5 -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count $NUM_NODES -init -' - -run_pubsub_tests() { - test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_2=$(iptb attr get 2 id) - ' - - # ipfs pubsub sub - test_expect_success 'pubsub' ' - echo "testOK" > expected && - touch empty && - mkfifo wait || - test_fsh echo init fail - - # ipfs pubsub sub is long-running so we need to start it in the background and - # wait put its output somewhere where we can access it - ( - ipfsi 0 pubsub sub --enc=ndpayload testTopic | if read line; then - echo $line > actual && - echo > wait - fi - ) & - ' - - test_expect_success "wait until ipfs pubsub sub is ready to do work" ' - go-sleep 500ms - ' - - test_expect_success "can see peer subscribed to testTopic" ' - ipfsi 1 pubsub peers testTopic > peers_out - ' - - test_expect_success "output looks good" ' - echo $PEERID_0 > peers_exp && - test_cmp peers_exp peers_out - ' - - test_expect_success "publish something" ' - ipfsi 1 pubsub pub testTopic "testOK" &> pubErr - ' - - test_expect_success "wait until echo > wait executed" ' - cat wait && - test_cmp pubErr empty && - test_cmp expected actual - ' - - test_expect_success "wait for another pubsub message" ' - echo "testOK2" > expected && - mkfifo wait2 || - test_fsh echo init fail - - # ipfs pubsub sub is long-running so we need to start it in the background and - # wait put its output somewhere where we can access it - ( - ipfsi 2 pubsub sub --enc=ndpayload testTopic | if read line; then - echo $line > actual && - echo > wait2 - fi - ) & - ' - - test_expect_success "wait until ipfs pubsub sub is ready to do work" ' - go-sleep 500ms - ' - - test_expect_success "publish something" ' - echo "testOK2" | ipfsi 3 pubsub pub testTopic &> pubErr - ' - - test_expect_success "wait until echo > wait executed" ' - echo "testOK2" > expected && - cat wait2 && - test_cmp pubErr empty && - test_cmp expected actual - ' - - test_expect_success 'cleanup fifos' ' - rm -f wait wait2 - ' - -} - -# Normal tests - -startup_cluster $NUM_NODES --enable-pubsub-experiment -run_pubsub_tests -test_expect_success 'stop iptb' ' - iptb stop -' - -# Test with some nodes not signing messages. - -test_expect_success 'disable signing on node 1' ' - ipfsi 1 config --json Pubsub.DisableSigning true -' - -startup_cluster $NUM_NODES --enable-pubsub-experiment -run_pubsub_tests -test_expect_success 'stop iptb' ' - iptb stop -' - -# Test strict message verification. - -test_expect_success 'enable strict signature verification on node 4' ' - ipfsi 4 config --json Pubsub.StrictSignatureVerification true -' - -startup_cluster $NUM_NODES --enable-pubsub-experiment - -test_expect_success 'set node 4 to listen on testTopic' ' - ipfsi 4 pubsub sub --enc=ndpayload testTopic > node4_actual & -' - -run_pubsub_tests - -test_expect_success 'stop iptb' ' - iptb stop -' - -test_expect_success 'node 4 only got the signed message' ' - echo "testOK2" > node4_expected && - test_cmp node4_actual node4_expected -' - -# Test all nodes signing with strict verification - -test_expect_success 're-enable signing on node 1' ' - ipfsi 1 config --json Pubsub.DisableSigning false -' - -test_expect_success 'enable strict signature verification on all nodes' ' - iptb run -- ipfs config --json Pubsub.StrictSignatureVerification true -' - -startup_cluster $NUM_NODES --enable-pubsub-experiment -run_pubsub_tests -test_expect_success 'stop iptb' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0181-private-network.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0181-private-network.sh deleted file mode 100755 index 6a0efd4c..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0181-private-network.sh +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test private network feature" - -. lib/test-lib.sh - -test_init_ipfs - -export LIBP2P_FORCE_PNET=1 - -test_expect_success "daemon won't start with force pnet env but with no key" ' - test_must_fail go-timeout 5 ipfs daemon > stdout 2>&1 -' - -unset LIBP2P_FORCE_PNET - -test_expect_success "daemon output incudes info about the reason" ' - grep "private network was not configured but is enforced by the environment" stdout || - test_fsh cat stdout -' - -pnet_key() { - echo '/key/swarm/psk/1.0.0/' - echo '/bin/' - random 16 -} - -pnet_key > "${IPFS_PATH}/swarm.key" - -LIBP2P_FORCE_PNET=1 test_launch_ipfs_daemon - -test_expect_success "set up iptb testbed" ' - iptb testbed create -type localipfs -count 5 -force -init && - iptb run -- ipfs config --json Addresses.Swarm '"'"'["/ip4/127.0.0.1/tcp/0"]'"'"' -' - -set_key() { - node="$1" - keyfile="$2" - - cp "$keyfile" "${IPTB_ROOT}/testbeds/default/${node}/swarm.key" -} - -pnet_key > key1 -pnet_key > key2 - -set_key 1 key1 -set_key 2 key1 - -set_key 3 key2 -set_key 4 key2 - -unset LIBP2P_FORCE_PNET - -test_expect_success "start nodes" ' - iptb start -wait [0-4] -' - -test_expect_success "try connecting node in public network with priv networks" ' - test_must_fail iptb connect --timeout=2s [1-4] 0 -' - -test_expect_success "node 0 (public network) swarm is empty" ' - ipfsi 0 swarm peers && - [ $(ipfsi 0 swarm peers | wc -l) -eq 0 ] -' - -test_expect_success "try connecting nodes in different private networks" ' - test_must_fail iptb connect 2 3 -' - -test_expect_success "node 3 (pnet 2) swarm is empty" ' - ipfsi 3 swarm peers && - [ $(ipfsi 3 swarm peers | wc -l) -eq 0 ] -' - -test_expect_success "connect nodes in the same pnet" ' - iptb connect 1 2 && - iptb connect 3 4 -' - -test_expect_success "nodes 1 and 2 have connected" ' - ipfsi 2 swarm peers && - [ $(ipfsi 2 swarm peers | wc -l) -eq 1 ] -' - -test_expect_success "nodes 3 and 4 have connected" ' - ipfsi 4 swarm peers && - [ $(ipfsi 4 swarm peers | wc -l) -eq 1 ] -' - - -run_single_file_test() { - node1=$1 - node2=$2 - - test_expect_success "add a file on node$node1" ' - random 1000000 > filea && - FILEA_HASH=$(ipfsi $node1 add -q filea) - ' - - check_file_fetch $node1 $FILEA_HASH filea - check_file_fetch $node2 $FILEA_HASH filea -} - -check_file_fetch() { - node="$1" - fhash="$2" - fname="$3" - - test_expect_success "can fetch file" ' - ipfsi $node cat $fhash > fetch_out - ' - - test_expect_success "file looks good" ' - test_cmp $fname fetch_out - ' -} - -run_single_file_test 1 2 -run_single_file_test 2 1 - -run_single_file_test 3 4 -run_single_file_test 4 3 - - -test_expect_success "stop testbed" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0182-circuit-relay.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0182-circuit-relay.sh deleted file mode 100755 index 4f480ebe..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0182-circuit-relay.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test circuit relay" - -. lib/test-lib.sh - -# start iptb + wait for peering -NUM_NODES=3 -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count $NUM_NODES -init -' - -# Network toplogy: A <-> Relay <-> B -test_expect_success 'start up nodes for configuration' ' - iptb start -wait -- --routing=none -' - -test_expect_success 'configure EnableRelayHop in relay node' ' - ipfsi 1 config --json Swarm.EnableRelayHop true -' - -test_expect_success 'restart nodes' ' - iptb stop && - iptb_wait_stop && - iptb start -wait -- --routing=none -' - -test_expect_success 'connect A <-> Relay' ' - iptb connect 0 1 -' - -test_expect_success 'connect B <-> Relay' ' - iptb connect 2 1 -' - -test_expect_success 'wait until relay is ready to do work' ' - sleep 1 -' - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_1=$(iptb attr get 1 id) && - PEERID_2=$(iptb attr get 2 id) -' - -test_expect_success 'connect A <-Relay-> B' ' - ipfsi 0 swarm connect /p2p-circuit/ipfs/$PEERID_2 > peers_out -' - -test_expect_success 'output looks good' ' - echo "connect $PEERID_2 success" > peers_exp && - test_cmp peers_exp peers_out -' - -test_expect_success 'peers for A look good' ' - ipfsi 0 swarm peers | grep p2p-circuit > peers_out && - echo "/ipfs/$PEERID_1/p2p-circuit/ipfs/$PEERID_2" > peers_exp && - test_cmp peers_exp peers_out -' - -test_expect_success 'peers for B look good' ' - ipfsi 2 swarm peers | grep p2p-circuit > peers_out && - echo "/ipfs/$PEERID_1/p2p-circuit/ipfs/$PEERID_0" > peers_exp && - test_cmp peers_exp peers_out -' - -test_expect_success 'add an object in A' ' - echo "hello relay" | ipfsi 0 add > peers_out -' - -test_expect_success 'object ID' ' - OBJID=$(cut -f3 -d " " peers_out) -' - -test_expect_success 'cat the object in B' ' - ipfsi 2 cat $OBJID > peers_out -' - -test_expect_success 'output looks good' ' - echo "hello relay" > peers_exp && - test_cmp peers_exp peers_out -' - -test_expect_success 'stop iptb' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0183-namesys-pubsub.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0183-namesys-pubsub.sh deleted file mode 100755 index b4bbbc84..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0183-namesys-pubsub.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test IPNS pubsub" - -. lib/test-lib.sh - -# start iptb + wait for peering -NUM_NODES=5 -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count $NUM_NODES -init -' - -startup_cluster $NUM_NODES --enable-namesys-pubsub - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) -' - -test_expect_success 'check namesys pubsub state' ' - echo enabled > expected && - ipfsi 0 name pubsub state > state0 && - ipfsi 1 name pubsub state > state1 && - ipfsi 2 name pubsub state > state2 && - test_cmp expected state0 && - test_cmp expected state1 && - test_cmp expected state2 -' - -# These commands are *expected* to fail. We haven't published anything yet. -test_expect_success 'subscribe nodes to the publisher topic' ' - ipfsi 1 name resolve /ipns/$PEERID_0 --timeout=1s; - ipfsi 2 name resolve /ipns/$PEERID_0 --timeout=1s; - true -' - -test_expect_success 'check subscriptions' ' - echo /ipns/$PEERID_0 > expected && - ipfsi 1 name pubsub subs > subs1 && - ipfsi 2 name pubsub subs > subs2 && - test_cmp expected subs1 && - test_cmp expected subs2 -' - -test_expect_success 'add an obect on publisher node' ' - echo "ipns is super fun" > file && - HASH_FILE=$(ipfsi 0 add -q file) -' - -test_expect_success 'publish that object as an ipns entry' ' - ipfsi 0 name publish $HASH_FILE -' - -test_expect_success 'wait for the flood' ' - sleep 1 -' - -test_expect_success 'resolve name in subscriber nodes' ' - echo "/ipfs/$HASH_FILE" > expected && - ipfsi 1 name resolve /ipns/$PEERID_0 > name1 && - ipfsi 2 name resolve /ipns/$PEERID_0 > name2 && - test_cmp expected name1 && - test_cmp expected name2 -' - -test_expect_success 'cancel subscriptions to the publisher topic' ' - ipfsi 1 name pubsub cancel /ipns/$PEERID_0 && - ipfsi 2 name pubsub cancel /ipns/$PEERID_0 -' - -test_expect_success 'check subscriptions' ' - rm -f expected && touch expected && - ipfsi 1 name pubsub subs > subs1 && - ipfsi 2 name pubsub subs > subs2 && - test_cmp expected subs1 && - test_cmp expected subs2 -' - -test_expect_success "shut down iptb" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0184-http-proxy-over-p2p.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0184-http-proxy-over-p2p.sh deleted file mode 100755 index 15de5eac..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0184-http-proxy-over-p2p.sh +++ /dev/null @@ -1,213 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test http proxy over p2p" - -. lib/test-lib.sh -WEB_SERVE_PORT=5099 -IPFS_GATEWAY_PORT=5199 -SENDER_GATEWAY="http://127.0.0.1:$IPFS_GATEWAY_PORT" - -function show_logs() { - - echo "*****************" - echo " RECEIVER LOG " - echo "*****************" - iptb logs 1 - echo "*****************" - echo " SENDER LOG " - echo "*****************" - iptb logs 0 - echo "*****************" - echo "REMOTE_SERVER LOG" - echo $REMOTE_SERVER_LOG - echo "*****************" - cat $REMOTE_SERVER_LOG -} - -function start_http_server() { - REMOTE_SERVER_LOG="server.log" - rm -f $REMOTE_SERVER_LOG server_stdin - - mkfifo server_stdin - nc -k -l 127.0.0.1 $WEB_SERVE_PORT 2>&1 > $REMOTE_SERVER_LOG < server_stdin & - REMOTE_SERVER_PID=$! - exec 7>server_stdin - rm server_stdin - - while ! nc -z 127.0.0.1 $WEB_SERVE_PORT; do - go-sleep 100ms - done -} - -function teardown_remote_server() { - exec 7<&- - kill $REMOTE_SERVER_PID > /dev/null 2>&1 - wait $REMOTE_SERVER_PID || true -} - -function serve_content() { - local body=$1 - local status_code=${2:-"200 OK"} - local length=$((1 + ${#body})) - echo -e "HTTP/1.1 $status_code\nContent-length: $length\n\n$body" >&7 -} - -function curl_check_response_code() { - local expected_status_code=$1 - local path_stub=${2:-p2p/$RECEIVER_ID/http/index.txt} - local status_code=$(curl -s --write-out %{http_code} --output /dev/null $SENDER_GATEWAY/$path_stub) - - if [[ "$status_code" -ne "$expected_status_code" ]]; - then - echo "Found status-code "$status_code", expected "$expected_status_code - return 1 - fi - - return 0 -} - -function curl_send_proxy_request_and_check_response() { - local expected_status_code=$1 - local expected_content=$2 - - # - # make a request to SENDER_IPFS via the proxy endpoint - # - CONTENT_PATH="retrieved-file" - STATUS_CODE="$(curl -s -o $CONTENT_PATH --write-out %{http_code} $SENDER_GATEWAY/p2p/$RECEIVER_ID/http/index.txt)" - - # - # check status code - # - if [[ "$STATUS_CODE" -ne "$expected_status_code" ]]; - then - echo -e "Found status-code "$STATUS_CODE", expected "$expected_status_code - return 1 - fi - - # - # check content - # - RESPONSE_CONTENT="$(tail -n 1 $CONTENT_PATH)" - if [[ "$RESPONSE_CONTENT" == "$expected_content" ]]; - then - return 0 - else - echo -e "Found response content:\n'"$RESPONSE_CONTENT"'\nthat differs from expected content:\n'"$expected_content"'" - return 1 - fi -} - -function curl_send_multipart_form_request() { - local expected_status_code=$1 - local FILE_PATH="uploaded-file" - FILE_CONTENT="curl will send a multipart-form POST request when sending a file which is handy" - echo $FILE_CONTENT > $FILE_PATH - # - # send multipart form request - # - STATUS_CODE="$(curl -o /dev/null -s -F file=@$FILE_PATH --write-out %{http_code} $SENDER_GATEWAY/p2p/$RECEIVER_ID/http/index.txt)" - # - # check status code - # - if [[ "$STATUS_CODE" -ne "$expected_status_code" ]]; - then - echo -e "Found status-code "$STATUS_CODE", expected "$expected_status_code - return 1 - fi - # - # check request method - # - if ! grep "POST /index.txt" $REMOTE_SERVER_LOG > /dev/null; - then - echo "Remote server request method/resource path was incorrect" - show_logs - return 1 - fi - # - # check request is multipart-form - # - if ! grep "Content-Type: multipart/form-data;" $REMOTE_SERVER_LOG > /dev/null; - then - echo "Request content-type was not multipart/form-data" - show_logs - return 1 - fi - return 0 -} - -test_expect_success 'configure nodes' ' - iptb testbed create -type localipfs -count 2 -force -init && - ipfsi 0 config --json Experimental.Libp2pStreamMounting true && - ipfsi 1 config --json Experimental.Libp2pStreamMounting true && - ipfsi 0 config --json Experimental.P2pHttpProxy true - ipfsi 0 config --json Addresses.Gateway "[\"/ip4/127.0.0.1/tcp/$IPFS_GATEWAY_PORT\"]" -' - -test_expect_success 'start and connect nodes' ' - iptb start -wait && iptb connect 0 1 -' - -test_expect_success 'setup p2p listener on the receiver' ' - ipfsi 1 p2p listen --allow-custom-protocol /http /ip4/127.0.0.1/tcp/$WEB_SERVE_PORT && - ipfsi 1 p2p listen /x/custom/http /ip4/127.0.0.1/tcp/$WEB_SERVE_PORT -' - -test_expect_success 'setup environment' ' - RECEIVER_ID="$(iptb attr get 1 id)" -' - -test_expect_success 'handle proxy http request sends bad-gateway when remote server not available ' ' - curl_send_proxy_request_and_check_response 502 "" -' - -test_expect_success 'start http server' ' - start_http_server -' - -test_expect_success 'handle proxy http request propogates error response from remote' ' - serve_content "SORRY GUYS, I LOST IT" "404 Not Found" && - curl_send_proxy_request_and_check_response 404 "SORRY GUYS, I LOST IT" -' - -test_expect_success 'handle proxy http request ' ' - serve_content "THE WOODS ARE LOVELY DARK AND DEEP" && - curl_send_proxy_request_and_check_response 200 "THE WOODS ARE LOVELY DARK AND DEEP" -' - -test_expect_success 'handle proxy http request invalid request' ' - curl_check_response_code 400 p2p/DERPDERPDERP -' - -test_expect_success 'handle proxy http request unknown proxy peer ' ' - curl_check_response_code 502 p2p/unknown_peer/http/index.txt -' - -test_expect_success 'handle proxy http request to custom protocol' ' - serve_content "THE WOODS ARE LOVELY DARK AND DEEP" && - curl_check_response_code 200 p2p/$RECEIVER_ID/x/custom/http/index.txt -' - -test_expect_success 'handle proxy http request to missing protocol' ' - serve_content "THE WOODS ARE LOVELY DARK AND DEEP" && - curl_check_response_code 502 p2p/$RECEIVER_ID/x/missing/http/index.txt -' - -test_expect_success 'handle proxy http request missing the /http' ' - curl_check_response_code 400 p2p/$RECEIVER_ID/x/custom/index.txt -' - -test_expect_success 'handle multipart/form-data http request' ' - serve_content "OK" && - curl_send_multipart_form_request 200 -' - -test_expect_success 'stop http server' ' - teardown_remote_server -' - -test_expect_success 'stop nodes' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0190-quic-ping.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0190-quic-ping.sh deleted file mode 100755 index c16b2347..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0190-quic-ping.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test ping over QUIC command" - -. lib/test-lib.sh - -test_init_ipfs - -# start iptb + wait for peering -test_expect_success 'init iptb' ' - iptb testbed create -type localipfs -count 2 -init -' - -test_expect_success "enable QUIC experiment" ' - ipfsi 0 config --json Experimental.QUIC true && - ipfsi 1 config --json Experimental.QUIC true -' - -addr1='"[\"/ip4/127.0.0.1/udp/0/quic/\"]"' -addr2='"[\"/ip4/127.0.0.1/udp/0/quic/\"]"' -test_expect_success "add QUIC swarm addresses" ' - ipfsi 0 config --json Addresses.Swarm '$addr1' && - ipfsi 1 config --json Addresses.Swarm '$addr2' -' - -startup_cluster 2 - -test_expect_success 'peer ids' ' - PEERID_0=$(iptb attr get 0 id) && - PEERID_1=$(iptb attr get 1 id) -' - -test_expect_success "test ping other" ' - ipfsi 0 ping -n2 -- "$PEERID_1" && - ipfsi 1 ping -n2 -- "$PEERID_0" -' - -test_expect_success "test ping self" ' - test_must_fail ipfsi 0 ping -n2 -- "$PEERID_0" && - test_must_fail ipfsi 1 ping -n2 -- "$PEERID_1" -' - -test_expect_success "test ping 0" ' - test_must_fail ipfsi 0 ping -n0 -- "$PEERID_1" && - test_must_fail ipfsi 1 ping -n0 -- "$PEERID_0" -' - -test_expect_success 'stop iptb' ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0200-unixfs-ls.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0200-unixfs-ls.sh deleted file mode 100755 index 7499d92e..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0200-unixfs-ls.sh +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test file ls command" - -. lib/test-lib.sh - -test_init_ipfs - -test_ls_cmd() { - - test_expect_success "'ipfs add -r testData' succeeds" ' - mkdir -p testData testData/d1 testData/d2 && - echo "test" >testData/f1 && - echo "data" >testData/f2 && - echo "hello" >testData/d1/a && - random 128 42 >testData/d1/128 && - echo "world" >testData/d2/a && - random 1024 42 >testData/d2/1024 && - ipfs add -r testData >actual_add - ' - - test_expect_success "'ipfs add' output looks good" ' - cat <<-\EOF >expected_add && -added QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe testData/d1/128 -added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN testData/d1/a -added QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd testData/d2/1024 -added QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL testData/d2/a -added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH testData/f1 -added QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M testData/f2 -added QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss testData/d1 -added QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy testData/d2 -added QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj testData -EOF - test_cmp expected_add actual_add - ' - - test_expect_success "'ipfs file ls
' succeeds" ' - ipfs file ls QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy >actual_ls_one_directory - ' - - test_expect_success "'ipfs file ls ' output looks good" ' - cat <<-\EOF >expected_ls_one_directory && -1024 -a -EOF - test_cmp expected_ls_one_directory actual_ls_one_directory - ' - - test_expect_success "'ipfs file ls ' succeeds" ' - ipfs file ls QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_three_directories - ' - - test_expect_success "'ipfs file ls ' output looks good" ' - cat <<-\EOF >expected_ls_three_directories && -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy: -1024 -a - -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -128 -a - -QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj: -d1 -d2 -f1 -f2 -EOF - test_cmp expected_ls_three_directories actual_ls_three_directories - ' - - test_expect_success "'ipfs file ls ' succeeds" ' - ipfs file ls /ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024 QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe >actual_ls_file - ' - - test_expect_success "'ipfs file ls ' output looks good" ' - cat <<-\EOF >expected_ls_file && -/ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe -EOF - test_cmp expected_ls_file actual_ls_file - ' - - test_expect_success "'ipfs file ls ' succeeds" ' - ipfs file ls /ipfs/QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj/d1 /ipfs/QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss /ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024 /ipfs/QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd >actual_ls_duplicates_file - ' - - test_expect_success "'ipfs file ls ' output looks good" ' - cat <<-\EOF >expected_ls_duplicates_file && -/ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024 -/ipfs/QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd - -/ipfs/QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss: -/ipfs/QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj/d1: -128 -a -EOF - test_cmp expected_ls_duplicates_file actual_ls_duplicates_file - ' - - test_expect_success "'ipfs --encoding=json file ls ' succeeds" ' - ipfs --encoding=json file ls /ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024 >actual_json_ls_file - ' - - test_expect_success "'ipfs --encoding=json file ls ' output looks good" ' - cat <<-\EOF >expected_json_ls_file_trailing_newline && -{"Arguments":{"/ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024":"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd"},"Objects":{"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd":{"Hash":"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd","Size":1024,"Type":"File","Links":null}}} -EOF - printf "%s\n" "$(cat expected_json_ls_file_trailing_newline)" >expected_json_ls_file && - test_cmp expected_json_ls_file actual_json_ls_file - ' - - test_expect_success "'ipfs --encoding=json file ls ' succeeds" ' - ipfs --encoding=json file ls /ipfs/QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj/d1 /ipfs/QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss /ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024 /ipfs/QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd >actual_json_ls_duplicates_file - ' - - test_expect_success "'ipfs --encoding=json file ls ' output looks good" ' - cat <<-\EOF >expected_json_ls_duplicates_file_trailing_newline && -{"Arguments":{"/ipfs/QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy/1024":"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd","/ipfs/QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss":"QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss","/ipfs/QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd":"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd","/ipfs/QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj/d1":"QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss"},"Objects":{"QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss":{"Hash":"QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss","Size":0,"Type":"Directory","Links":[{"Name":"128","Hash":"QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe","Size":128,"Type":"File"},{"Name":"a","Hash":"QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN","Size":6,"Type":"File"}]},"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd":{"Hash":"QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd","Size":1024,"Type":"File","Links":null}}} -EOF - printf "%s\n" "$(cat expected_json_ls_duplicates_file_trailing_newline)" >expected_json_ls_duplicates_file && - test_cmp expected_json_ls_duplicates_file actual_json_ls_duplicates_file - ' - -} - - -# should work offline -test_ls_cmd - -# should work online -test_launch_ipfs_daemon -test_ls_cmd -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0210-tar.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0210-tar.sh deleted file mode 100755 index d2b91055..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0210-tar.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test tar commands" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "create some random files" ' - mkdir foo && - random 10000 > foo/a && - random 12345 > foo/b && - mkdir foo/bar && - random 5432 > foo/bar/baz && - ln -s ../a foo/bar/link && - echo "exit" > foo/script && - chmod +x foo/script -' - -test_expect_success "tar those random files up" ' - tar cf files.tar foo/ -' - -test_expect_success "'ipfs tar add' succeeds" ' - TAR_HASH=$(ipfs tar add files.tar) -' - -test_expect_success "'ipfs tar cat' succeeds" ' - mkdir output && - ipfs tar cat $TAR_HASH > output/out.tar -' - -test_expect_success "can extract tar" ' - tar xf output/out.tar -C output/ -' - -test_expect_success "files look right" ' - diff foo/a output/foo/a && - diff foo/b output/foo/b && - diff foo/bar/baz output/foo/bar/baz && - [ -L output/foo/bar/link ] && - [ -x foo/script ] -' - -test_expect_success "'ipfs tar add --cid-base=base32' succeeds" ' - ipfs tar add --cid-base=base32 files.tar > actual -' - -test_expect_success "'ipfs tar add --cid-base=base32' has correct hash" ' - ipfs cid base32 $TAR_HASH > expected && - test_cmp expected actual -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0220-bitswap.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0220-bitswap.sh deleted file mode 100755 index fb1e3dbc..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0220-bitswap.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test bitswap commands" - -. lib/test-lib.sh - -test_init_ipfs -test_launch_ipfs_daemon - -test_expect_success "'ipfs bitswap stat' succeeds" ' - ipfs bitswap stat >stat_out -' - -test_expect_success "'ipfs bitswap stat' output looks good" ' - cat <expected && -bitswap status - provides buffer: 0 / 256 - blocks received: 0 - blocks sent: 0 - data received: 0 - data sent: 0 - dup blocks received: 0 - dup data received: 0 B - wantlist [0 keys] - partners [0] -EOF - test_cmp expected stat_out -' - -test_expect_success "ipfs peer id looks good" ' - PEERID=$(ipfs config Identity.PeerID) && - test_check_peerid "$PEERID" -' - -test_expect_success "'ipfs bitswap wantlist -p' works" ' - ipfs bitswap wantlist -p "$PEERID" >wantlist_p_out -' - -test_expect_success "'ipfs bitswap wantlist -p' output looks good" ' - test_must_be_empty wantlist_p_out -' - -test_expect_success "hash was removed from wantlist" ' - ipfs bitswap wantlist > wantlist_out && - test_must_be_empty wantlist_out -' - -test_expect_success "'ipfs bitswap stat' succeeds" ' - ipfs bitswap stat >stat_out -' - -test_expect_success "'ipfs bitswap stat' output looks good" ' - cat <expected && -bitswap status - provides buffer: 0 / 256 - blocks received: 0 - blocks sent: 0 - data received: 0 - data sent: 0 - dup blocks received: 0 - dup data received: 0 B - wantlist [0 keys] - partners [0] -EOF - test_cmp expected stat_out -' - -test_expect_success "'ipfs bitswap wantlist -p' works" ' - ipfs bitswap wantlist -p "$PEERID" >wantlist_p_out -' - -test_expect_success "'ipfs bitswap wantlist -p' output looks good" ' - test_cmp wantlist_out wantlist_p_out -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0230-channel-streaming-http-content-type.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0230-channel-streaming-http-content-type.sh deleted file mode 100755 index deffffa2..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0230-channel-streaming-http-content-type.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Cayman Nava -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test Content-Type for channel-streaming commands" - -. lib/test-lib.sh - -test_init_ipfs - -test_ls_cmd() { - - test_expect_success "Text encoded channel-streaming command succeeds" ' - mkdir -p testdir && - echo "hello test" >testdir/test.txt && - ipfs add -r testdir && - curl -i "http://$API_ADDR/api/v0/refs?arg=QmTcJAn3JP8ZMAKS6WS75q8sbTyojWKbxcUHgLYGWur4Ym&stream-channels=true&encoding=text" >actual_output - ' - - test_expect_success "Text encoded channel-streaming command output looks good" ' - printf "HTTP/1.1 200 OK\r\n" >expected_output && - printf "Access-Control-Allow-Headers: X-Stream-Output, X-Chunked-Output, X-Content-Length\r\n" >>expected_output && - printf "Access-Control-Expose-Headers: X-Stream-Output, X-Chunked-Output, X-Content-Length\r\n" >>expected_output && - printf "Content-Type: text/plain\r\n" >>expected_output && - printf "Server: go-ipfs/%s\r\n" $(ipfs version -n) >>expected_output && - printf "Trailer: X-Stream-Error\r\n" >>expected_output && - printf "Vary: Origin\r\n" >>expected_output && - printf "X-Chunked-Output: 1\r\n" >>expected_output && - printf "Transfer-Encoding: chunked\r\n" >>expected_output && - printf "\r\n" >>expected_output && - echo QmRmPLc1FsPAn8F8F9DQDEYADNX5ER2sgqiokEvqnYknVW >>expected_output && - cat actual_output | grep -vE Date > cleaned_output && - test_cmp expected_output cleaned_output - ' - - test_expect_success "JSON encoded channel-streaming command succeeds" ' - mkdir -p testdir && - echo "hello test" >testdir/test.txt && - ipfs add -r testdir && - curl -i "http://$API_ADDR/api/v0/refs?arg=QmTcJAn3JP8ZMAKS6WS75q8sbTyojWKbxcUHgLYGWur4Ym&stream-channels=true&encoding=json" >actual_output - ' - - test_expect_success "JSON encoded channel-streaming command output looks good" ' - printf "HTTP/1.1 200 OK\r\n" >expected_output && - printf "Access-Control-Allow-Headers: X-Stream-Output, X-Chunked-Output, X-Content-Length\r\n" >>expected_output && - printf "Access-Control-Expose-Headers: X-Stream-Output, X-Chunked-Output, X-Content-Length\r\n" >>expected_output && - printf "Content-Type: application/json\r\n" >>expected_output && - printf "Server: go-ipfs/%s\r\n" $(ipfs version -n) >>expected_output && - printf "Trailer: X-Stream-Error\r\n" >>expected_output && - printf "Vary: Origin\r\n" >>expected_output && - printf "X-Chunked-Output: 1\r\n" >>expected_output && - printf "Transfer-Encoding: chunked\r\n" >>expected_output && - printf "\r\n" >>expected_output && - cat <<-\EOF >>expected_output && -{"Ref":"QmRmPLc1FsPAn8F8F9DQDEYADNX5ER2sgqiokEvqnYknVW","Err":""} -EOF - printf "\n" >> expected_output && - perl -pi -e '"'"'chomp if eof'"'"' expected_output && - cat actual_output | grep -vE Date > cleaned_output && - test_cmp expected_output cleaned_output - ' -} - -# should work online (only) -test_launch_ipfs_daemon -test_ls_cmd -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0231-channel-streaming.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0231-channel-streaming.sh deleted file mode 100755 index 36e855fb..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0231-channel-streaming.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test output of streaming json commands" - -. lib/test-lib.sh - -test_init_ipfs - -get_api_port() { - cat "$IPFS_PATH/api" | awk -F/ '{ print $5 }' -} - -test_ls_cmd() { - test_expect_success "make a file with multiple refs" ' - HASH=$(random 1000000 | ipfs add -q) - ' - - test_expect_success "can get refs through curl" ' - PORT=$(get_api_port) && - curl http://localhost:$PORT/api/v0/refs/$HASH > output - ' - - # make sure newlines are printed between each object - test_expect_success "output looks good" ' - test_expect_code 1 grep "}{" output > /dev/null - ' -} - -# should work online (only) -test_launch_ipfs_daemon -test_ls_cmd -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0235-cli-request.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0235-cli-request.sh deleted file mode 100755 index 1c9e6151..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0235-cli-request.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test http requests made by cli" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "start nc" ' - rm -f nc_out nc_outp nc_inp && mkfifo nc_inp nc_outp - - nc -k -l 127.0.0.1 5005 nc_outp & - NCPID=$! - - exec 6>nc_inp 7nc_out && - - echo -e "HTTP/1.1 200 OK\r" >&6 && - echo -e "Content-Type: text/plain\r" >&6 && - echo -e "Content-Length: 0\r" >&6 && - echo -e "\r" >&6 && - exec 6<&- && - - # Wait for IPFS - wait $IPFSPID -' - -test_expect_success "stop nc" ' - kill "$NCPID" && wait "$NCPID" || true -' - -test_expect_success "output does not contain multipart info" ' - test_expect_code 1 grep multipart nc_out -' - -test_expect_success "request looks good" ' - grep "POST /api/v0/cat" nc_out -' - -test_expect_success "api flag does not appear in request" ' - test_expect_code 1 grep "api=/ip4" nc_out -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0236-cli-api-dns-resolve.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0236-cli-api-dns-resolve.sh deleted file mode 100755 index 8397c982..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0236-cli-api-dns-resolve.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test dns resolution of api endpoint by cli" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "start nc" ' - rm -f nc_out nc_outp nc_inp && mkfifo nc_inp nc_outp - - nc -k -l 127.0.0.1 5006 nc_outp & - NCPID=$! - - exec 6>nc_inp 7nc_out && - - echo -e "HTTP/1.1 200 OK\r" >&6 && - echo -e "Content-Type: text/plain\r" >&6 && - echo -e "Content-Length: 0\r" >&6 && - echo -e "\r" >&6 && - exec 6<&- && - - # Wait for IPFS - wait $IPFSPID -' - -test_expect_success "stop nc" ' - kill "$NCPID" && wait "$NCPID" || true -' - -test_expect_success "request was received by local nc server" ' - grep "POST /api/v0/cat" nc_out -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0240-republisher.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0240-republisher.sh deleted file mode 100755 index e498007a..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0240-republisher.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test ipfs repo operations" - -. lib/test-lib.sh - -export DEBUG=true - -setup_iptb() { - num_nodes="$1" - bound=$(expr "$num_nodes" - 1) - - test_expect_success "iptb init" ' - iptb testbed create -type localipfs -count $num_nodes -init - ' - - for i in $(test_seq 0 "$bound") - do - test_expect_success "set configs up for node $i" ' - ipfsi "$i" config Ipns.RepublishPeriod 40s && - ipfsi "$i" config --json Ipns.ResolveCacheSize 0 - ' - done - - startup_cluster "$num_nodes" -} - -teardown_iptb() { - test_expect_success "shut down nodes" ' - iptb stop - ' -} - -verify_can_resolve() { - num_nodes="$1" - bound=$(expr "$num_nodes" - 1) - name="$2" - expected="$3" - msg="$4" - - for node in $(test_seq 0 "$bound") - do - test_expect_success "$msg: node $node can resolve entry" ' - ipfsi "$node" name resolve "$name" > resolve - ' - - test_expect_success "$msg: output for node $node looks right" ' - printf "/ipfs/$expected\n" > expected && - test_cmp expected resolve - ' - done -} - -verify_cannot_resolve() { - num_nodes="$1" - bound=$(expr "$num_nodes" - 1) - name="$2" - msg="$3" - - for node in $(test_seq 0 "$bound") - do - test_expect_success "$msg: resolution fails on node $node" ' - test_expect_code 1 ipfsi "$node" name resolve "$name" - ' - done -} - -num_test_nodes=4 - -setup_iptb "$num_test_nodes" - -test_expect_success "publish succeeds" ' - HASH=$(echo "foobar" | ipfsi 1 add -q) && - ipfsi 1 name publish -t 10s $HASH -' - -test_expect_success "get id succeeds" ' - id=$(ipfsi 1 id -f "") -' - -verify_can_resolve "$num_test_nodes" "$id" "$HASH" "just after publishing" - -go-sleep 10s - -verify_cannot_resolve "$num_test_nodes" "$id" "after 10 seconds, records are invalid" - -go-sleep 30s - -verify_can_resolve "$num_test_nodes" "$id" "$HASH" "republisher fires after 30 seconds" - -# - -test_expect_success "generate new key" ' -KEY2=`ipfsi 1 key gen beepboop --type ed25519` -' - -test_expect_success "publish with new key succeeds" ' - HASH=$(echo "barfoo" | ipfsi 1 add -q) && - ipfsi 1 name publish -t 10s -k "$KEY2" $HASH -' - -verify_can_resolve "$num_test_nodes" "$KEY2" "$HASH" "new key just after publishing" - -go-sleep 10s - -verify_cannot_resolve "$num_test_nodes" "$KEY2" "new key cannot resolve after 10 seconds" - -go-sleep 30s - -verify_can_resolve "$num_test_nodes" "$KEY2" "$HASH" "new key can resolve again after republish" - -# - -teardown_iptb - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0250-files-api.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0250-files-api.sh deleted file mode 100755 index c1bed18f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0250-files-api.sh +++ /dev/null @@ -1,777 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test the unix files api" - -. lib/test-lib.sh - -test_init_ipfs - -create_files() { - FILE1=$(echo foo | ipfs add "$@" -q) && - FILE2=$(echo bar | ipfs add "$@" -q) && - FILE3=$(echo baz | ipfs add "$@" -q) && - mkdir -p stuff_test && - echo cats > stuff_test/a && - echo dogs > stuff_test/b && - echo giraffes > stuff_test/c && - DIR1=$(ipfs add -r "$@" -q stuff_test | tail -n1) -} - -verify_path_exists() { - # simply running ls on a file should be a good 'check' - ipfs files ls $1 -} - -verify_dir_contents() { - dir=$1 - shift - rm -f expected - touch expected - for e in $@ - do - echo $e >> expected - done - - test_expect_success "can list dir" ' - ipfs files ls $dir > output - ' - - test_expect_success "dir entries look good" ' - test_sort_cmp output expected - ' -} - -test_sharding() { - local EXTRA ARGS - EXTRA=$1 - ARGS=$2 # only applied to the initial directory - - test_expect_success "make a directory $EXTRA" ' - ipfs files mkdir $ARGS /foo - ' - - test_expect_success "can make 100 files in a directory $EXTRA" ' - printf "" > list_exp_raw - for i in `seq 100 -1 1` - do - echo $i | ipfs files write --create /foo/file$i || return 1 - echo file$i >> list_exp_raw - done - ' - # Create the files in reverse (unsorted) order (`seq 100 -1 1`) - # to check the sort in the `ipfs files ls` command. `ProtoNode` - # links are always sorted at the DAG layer so the sorting feature - # is tested with sharded directories. - - test_expect_success "sorted listing works $EXTRA" ' - ipfs files ls /foo > list_out && - sort list_exp_raw > list_exp && - test_cmp list_exp list_out - ' - - test_expect_success "unsorted listing works $EXTRA" ' - ipfs files ls -U /foo > list_out && - sort list_exp_raw > sort_list_not_exp && - ! test_cmp sort_list_not_exp list_out - ' - - test_expect_success "can read a file from sharded directory $EXTRA" ' - ipfs files read /foo/file65 > file_out && - echo "65" > file_exp && - test_cmp file_out file_exp - ' - - test_expect_success "can pin a file from sharded directory $EXTRA" ' - ipfs files stat --hash /foo/file42 > pin_file_hash && - ipfs pin add < pin_file_hash > pin_hash - ' - - test_expect_success "can unpin a file from sharded directory $EXTRA" ' - read -r _ HASH _ < pin_hash && - ipfs pin rm $HASH - ' - - test_expect_success "output object was really sharded and has correct hash $EXTRA" ' - ipfs files stat --hash /foo > expected_foo_hash && - echo $SHARD_HASH > actual_foo_hash && - test_cmp expected_foo_hash actual_foo_hash - ' - - test_expect_success "clean up $EXTRA" ' - ipfs files rm -r /foo - ' -} - -test_files_api() { - local EXTRA ARGS RAW_LEAVES - EXTRA=$1 - ARGS=$2 - RAW_LEAVES=$3 - - test_expect_success "can mkdir in root $EXTRA" ' - ipfs files mkdir $ARGS /cats - ' - - test_expect_success "'files ls' lists root by default $EXTRA" ' - ipfs files ls >actual && - echo "cats" >expected && - test_cmp expected actual - ' - - test_expect_success "directory was created $EXTRA" ' - verify_path_exists /cats - ' - - test_expect_success "directory is empty $EXTRA" ' - verify_dir_contents /cats - ' - # we do verification of stat formatting now as we depend on it - - test_expect_success "stat works $EXTRA" ' - ipfs files stat / >stat - ' - - test_expect_success "hash is first line of stat $EXTRA" ' - ipfs ls $(head -1 stat) | grep "cats" - ' - - test_expect_success "stat --hash gives only hash $EXTRA" ' - ipfs files stat --hash / >actual && - head -n1 stat >expected && - test_cmp expected actual - ' - - test_expect_success "stat with multiple format options should fail $EXTRA" ' - test_must_fail ipfs files stat --hash --size / - ' - - test_expect_success "compare hash option with format $EXTRA" ' - ipfs files stat --hash / >expected && - ipfs files stat --format='"'"''"'"' / >actual && - test_cmp expected actual - ' - test_expect_success "compare size option with format $EXTRA" ' - ipfs files stat --size / >expected && - ipfs files stat --format='"'"''"'"' / >actual && - test_cmp expected actual - ' - - test_expect_success "check root hash $EXTRA" ' - ipfs files stat --hash / > roothash - ' - - test_expect_success "stat works outside of MFS" ' - ipfs files stat /ipfs/$DIR1 - ' - - test_expect_success "stat compute the locality of a dag" ' - ipfs files stat --with-local /ipfs/$DIR1 > output - grep -q "(100.00%)" output - ' - - test_expect_success "cannot mkdir / $EXTRA" ' - test_expect_code 1 ipfs files mkdir $ARGS / - ' - - test_expect_success "check root hash was not changed $EXTRA" ' - ipfs files stat --hash / > roothashafter && - test_cmp roothash roothashafter - ' - - test_expect_success "can put files into directory $EXTRA" ' - ipfs files cp /ipfs/$FILE1 /cats/file1 - ' - - test_expect_success "file shows up in directory $EXTRA" ' - verify_dir_contents /cats file1 - ' - - test_expect_success "file has correct hash and size in directory $EXTRA" ' - echo "file1 $FILE1 4" > ls_l_expected && - ipfs files ls -l /cats > ls_l_actual && - test_cmp ls_l_expected ls_l_actual - ' - - test_expect_success "file has correct hash and size listed with -l" ' - echo "file1 $FILE1 4" > ls_l_expected && - ipfs files ls -l /cats/file1 > ls_l_actual && - test_cmp ls_l_expected ls_l_actual - ' - - test_expect_success "file has correct hash and size listed with -l --cid-base=base32" ' - echo "file1 `cid-fmt -v 1 -b base32 %s $FILE1` 4" > ls_l_expected && - ipfs files ls --cid-base=base32 -l /cats/file1 > ls_l_actual && - test_cmp ls_l_expected ls_l_actual - ' - - test_expect_success "file shows up with the correct name" ' - echo "file1" > ls_l_expected && - ipfs files ls /cats/file1 > ls_l_actual && - test_cmp ls_l_expected ls_l_actual - ' - - test_expect_success "can stat file $EXTRA" ' - ipfs files stat /cats/file1 > file1stat_orig - ' - - test_expect_success "stat output looks good" ' - grep -v CumulativeSize: file1stat_orig > file1stat_actual && - echo "$FILE1" > file1stat_expect && - echo "Size: 4" >> file1stat_expect && - echo "ChildBlocks: 0" >> file1stat_expect && - echo "Type: file" >> file1stat_expect && - test_cmp file1stat_expect file1stat_actual - ' - - test_expect_success "can stat file with --cid-base=base32 $EXTRA" ' - ipfs files stat --cid-base=base32 /cats/file1 > file1stat_orig - ' - - test_expect_success "stat output looks good with --cid-base=base32" ' - grep -v CumulativeSize: file1stat_orig > file1stat_actual && - echo `cid-fmt -v 1 -b base32 %s $FILE1` > file1stat_expect && - echo "Size: 4" >> file1stat_expect && - echo "ChildBlocks: 0" >> file1stat_expect && - echo "Type: file" >> file1stat_expect && - test_cmp file1stat_expect file1stat_actual - ' - - test_expect_success "can read file $EXTRA" ' - ipfs files read /cats/file1 > file1out - ' - - test_expect_success "output looks good $EXTRA" ' - echo foo > expected && - test_cmp expected file1out - ' - - test_expect_success "can put another file into root $EXTRA" ' - ipfs files cp /ipfs/$FILE2 /file2 - ' - - test_expect_success "file shows up in root $EXTRA" ' - verify_dir_contents / file2 cats - ' - - test_expect_success "can read file $EXTRA" ' - ipfs files read /file2 > file2out - ' - - test_expect_success "output looks good $EXTRA" ' - echo bar > expected && - test_cmp expected file2out - ' - - test_expect_success "can make deep directory $EXTRA" ' - ipfs files mkdir $ARGS -p /cats/this/is/a/dir - ' - - test_expect_success "directory was created correctly $EXTRA" ' - verify_path_exists /cats/this/is/a/dir && - verify_dir_contents /cats this file1 && - verify_dir_contents /cats/this is && - verify_dir_contents /cats/this/is a && - verify_dir_contents /cats/this/is/a dir && - verify_dir_contents /cats/this/is/a/dir - ' - - test_expect_success "dir has correct name" ' - DIR_HASH=$(ipfs files stat /cats/this --hash) && - echo "this/ $DIR_HASH 0" > ls_dir_expected && - ipfs files ls -l /cats | grep this/ > ls_dir_actual && - test_cmp ls_dir_expected ls_dir_actual - ' - - test_expect_success "can copy file into new dir $EXTRA" ' - ipfs files cp /ipfs/$FILE3 /cats/this/is/a/dir/file3 - ' - - test_expect_success "can read file $EXTRA" ' - ipfs files read /cats/this/is/a/dir/file3 > output - ' - - test_expect_success "output looks good $EXTRA" ' - echo baz > expected && - test_cmp expected output - ' - - test_expect_success "file shows up in dir $EXTRA" ' - verify_dir_contents /cats/this/is/a/dir file3 - ' - - test_expect_success "can remove file $EXTRA" ' - ipfs files rm /cats/this/is/a/dir/file3 - ' - - test_expect_success "file no longer appears $EXTRA" ' - verify_dir_contents /cats/this/is/a/dir - ' - - test_expect_success "can remove dir $EXTRA" ' - ipfs files rm -r /cats/this/is/a/dir - ' - - test_expect_success "dir no longer appears $EXTRA" ' - verify_dir_contents /cats/this/is/a - ' - - test_expect_success "can remove file from root $EXTRA" ' - ipfs files rm /file2 - ' - - test_expect_success "file no longer appears $EXTRA" ' - verify_dir_contents / cats - ' - - test_expect_success "check root hash $EXTRA" ' - ipfs files stat --hash / > roothash - ' - - test_expect_success "cannot remove root $EXTRA" ' - test_expect_code 1 ipfs files rm -r / - ' - - test_expect_success "check root hash was not changed $EXTRA" ' - ipfs files stat --hash / > roothashafter && - test_cmp roothash roothashafter - ' - - # test read options - - test_expect_success "read from offset works $EXTRA" ' - ipfs files read -o 1 /cats/file1 > output - ' - - test_expect_success "output looks good $EXTRA" ' - echo oo > expected && - test_cmp expected output - ' - - test_expect_success "read with size works $EXTRA" ' - ipfs files read -n 2 /cats/file1 > output - ' - - test_expect_success "output looks good $EXTRA" ' - printf fo > expected && - test_cmp expected output - ' - - test_expect_success "cannot read from negative offset $EXTRA" ' - test_expect_code 1 ipfs files read --offset -3 /cats/file1 - ' - - test_expect_success "read from offset 0 works $EXTRA" ' - ipfs files read --offset 0 /cats/file1 > output - ' - - test_expect_success "output looks good $EXTRA" ' - echo foo > expected && - test_cmp expected output - ' - - test_expect_success "read last byte works $EXTRA" ' - ipfs files read --offset 2 /cats/file1 > output - ' - - test_expect_success "output looks good $EXTRA" ' - echo o > expected && - test_cmp expected output - ' - - test_expect_success "offset past end of file fails $EXTRA" ' - test_expect_code 1 ipfs files read --offset 5 /cats/file1 - ' - - test_expect_success "cannot read negative count bytes $EXTRA" ' - test_expect_code 1 ipfs read --count -1 /cats/file1 - ' - - test_expect_success "reading zero bytes prints nothing $EXTRA" ' - ipfs files read --count 0 /cats/file1 > output - ' - - test_expect_success "output looks good $EXTRA" ' - printf "" > expected && - test_cmp expected output - ' - - test_expect_success "count > len(file) prints entire file $EXTRA" ' - ipfs files read --count 200 /cats/file1 > output - ' - - test_expect_success "output looks good $EXTRA" ' - echo foo > expected && - test_cmp expected output - ' - - # test write - - test_expect_success "can write file $EXTRA" ' - echo "ipfs rocks" > tmpfile && - cat tmpfile | ipfs files write $ARGS $RAW_LEAVES --create /cats/ipfs - ' - - test_expect_success "file was created $EXTRA" ' - verify_dir_contents /cats ipfs file1 this - ' - - test_expect_success "can read file we just wrote $EXTRA" ' - ipfs files read /cats/ipfs > output - ' - - test_expect_success "can write to offset $EXTRA" ' - echo "is super cool" | ipfs files write $ARGS $RAW_LEAVES -o 5 /cats/ipfs - ' - - test_expect_success "file looks correct $EXTRA" ' - echo "ipfs is super cool" > expected && - ipfs files read /cats/ipfs > output && - test_cmp expected output - ' - - test_expect_success "file hash correct $EXTRA" ' - echo $FILE_HASH > filehash_expected && - ipfs files stat --hash /cats/ipfs > filehash && - test_cmp filehash_expected filehash - ' - - test_expect_success "cant write to negative offset $EXTRA" ' - test_expect_code 1 ipfs files write $ARGS $RAW_LEAVES --offset -1 /cats/ipfs < output - ' - - test_expect_success "verify file was not changed $EXTRA" ' - ipfs files stat --hash /cats/ipfs > afterhash && - test_cmp filehash afterhash - ' - - test_expect_success "write new file for testing $EXTRA" ' - echo foobar | ipfs files write $ARGS $RAW_LEAVES --create /fun - ' - - test_expect_success "write to offset past end works $EXTRA" ' - echo blah | ipfs files write $ARGS $RAW_LEAVES --offset 50 /fun - ' - - test_expect_success "can read file $EXTRA" ' - ipfs files read /fun > sparse_output - ' - - test_expect_success "output looks good $EXTRA" ' - echo foobar > sparse_expected && - echo blah | dd of=sparse_expected bs=50 seek=1 && - test_cmp sparse_expected sparse_output - ' - - test_expect_success "cleanup $EXTRA" ' - ipfs files rm /fun - ' - - test_expect_success "cannot write to directory $EXTRA" ' - ipfs files stat --hash /cats > dirhash && - test_expect_code 1 ipfs files write $ARGS $RAW_LEAVES /cats < output - ' - - test_expect_success "verify dir was not changed $EXTRA" ' - ipfs files stat --hash /cats > afterdirhash && - test_cmp dirhash afterdirhash - ' - - test_expect_success "cannot write to nonexistant path $EXTRA" ' - test_expect_code 1 ipfs files write $ARGS $RAW_LEAVES /cats/bar/ < output - ' - - test_expect_success "no new paths were created $EXTRA" ' - verify_dir_contents /cats file1 ipfs this - ' - - test_expect_success "write 'no-flush' succeeds $EXTRA" ' - echo "testing" | ipfs files write $ARGS $RAW_LEAVES -f=false -e /cats/walrus - ' - - test_expect_success "root hash not bubbled up yet $EXTRA" ' - test -z "$ONLINE" || - (ipfs refs local > refsout && - test_expect_code 1 grep $ROOT_HASH refsout) - ' - - test_expect_success "changes bubbled up to root on inspection $EXTRA" ' - ipfs files stat --hash / > root_hash - ' - - test_expect_success "root hash looks good $EXTRA" ' - export EXP_ROOT_HASH="$ROOT_HASH" && - echo $EXP_ROOT_HASH > root_hash_exp && - test_cmp root_hash_exp root_hash - ' - - test_expect_success "/cats hash looks good $EXTRA" ' - export EXP_CATS_HASH="$CATS_HASH" && - echo $EXP_CATS_HASH > cats_hash_exp && - ipfs files stat --hash /cats > cats_hash - test_cmp cats_hash_exp cats_hash - ' - - test_expect_success "flush root succeeds $EXTRA" ' - ipfs files flush / - ' - - # test mv - test_expect_success "can mv dir $EXTRA" ' - ipfs files mv /cats/this/is /cats/ - ' - - test_expect_success "can mv dir and dest dir is / $EXTRA" ' - ipfs files mv /cats/is / - ' - - test_expect_success "can mv dir and dest dir path has no trailing slash $EXTRA" ' - ipfs files mv /is /cats - ' - - test_expect_success "mv worked $EXTRA" ' - verify_dir_contents /cats file1 ipfs this is walrus && - verify_dir_contents /cats/this - ' - - test_expect_success "cleanup, remove 'cats' $EXTRA" ' - ipfs files rm -r /cats - ' - - test_expect_success "cleanup looks good $EXTRA" ' - verify_dir_contents / - ' - - # test truncating - test_expect_success "create a new file $EXTRA" ' - echo "some content" | ipfs files write $ARGS $RAW_LEAVES --create /cats - ' - - test_expect_success "truncate and write over that file $EXTRA" ' - echo "fish" | ipfs files write $ARGS $RAW_LEAVES --truncate /cats - ' - - test_expect_success "output looks good $EXTRA" ' - ipfs files read /cats > file_out && - echo "fish" > file_exp && - test_cmp file_out file_exp - ' - - test_expect_success "file hash correct $EXTRA" ' - echo $TRUNC_HASH > filehash_expected && - ipfs files stat --hash /cats > filehash && - test_cmp filehash_expected filehash - ' - - test_expect_success "cleanup $EXTRA" ' - ipfs files rm /cats - ' - - # test flush flags - test_expect_success "mkdir --flush works $EXTRA" ' - ipfs files mkdir $ARGS --flush --parents /flushed/deep - ' - - test_expect_success "mkdir --flush works a second time $EXTRA" ' - ipfs files mkdir $ARGS --flush --parents /flushed/deep - ' - - test_expect_success "dir looks right $EXTRA" ' - verify_dir_contents / flushed - ' - - test_expect_success "child dir looks right $EXTRA" ' - verify_dir_contents /flushed deep - ' - - test_expect_success "cleanup $EXTRA" ' - ipfs files rm -r /flushed - ' - - test_expect_success "child dir looks right $EXTRA" ' - verify_dir_contents / - ' - - # test for https://github.com/ipfs/go-ipfs/issues/2654 - test_expect_success "create and remove dir $EXTRA" ' - ipfs files mkdir $ARGS /test_dir && - ipfs files rm -r "/test_dir" - ' - - test_expect_success "create test file $EXTRA" ' - echo "content" | ipfs files write $ARGS $RAW_LEAVES -e "/test_file" - ' - - test_expect_success "copy test file onto test dir $EXTRA" ' - ipfs files cp "/test_file" "/test_dir" - ' - - test_expect_success "test /test_dir $EXTRA" ' - ipfs files stat "/test_dir" | grep -q "^Type: file" - ' - - test_expect_success "clean up /test_dir and /test_file $EXTRA" ' - ipfs files rm -r /test_dir && - ipfs files rm -r /test_file - ' - - test_expect_success "make a directory and a file $EXTRA" ' - ipfs files mkdir $ARGS /adir && - echo "blah" | ipfs files write $ARGS $RAW_LEAVES --create /foobar - ' - - test_expect_success "copy a file into a directory $EXTRA" ' - ipfs files cp /foobar /adir/ - ' - - test_expect_success "file made it into directory $EXTRA" ' - ipfs files ls /adir | grep foobar - ' - - test_expect_success "should fail to write file and create intermediate directories with no --parents flag set $EXTRA" ' - echo "ipfs rocks" | test_must_fail ipfs files write --create /parents/foo/ipfs.txt - ' - - test_expect_success "can write file and create intermediate directories $EXTRA" ' - echo "ipfs rocks" | ipfs files write --create --parents /parents/foo/bar/baz/ipfs.txt && - ipfs files stat "/parents/foo/bar/baz/ipfs.txt" | grep -q "^Type: file" - ' - - test_expect_success "can write file and create intermediate directories with short flags $EXTRA" ' - echo "ipfs rocks" | ipfs files write -e -p /parents/foo/bar/baz/qux/quux/garply/ipfs.txt && - ipfs files stat "/parents/foo/bar/baz/qux/quux/garply/ipfs.txt" | grep -q "^Type: file" - ' - - test_expect_success "can write another file in the same directory with -e -p $EXTRA" ' - echo "ipfs rocks" | ipfs files write -e -p /parents/foo/bar/baz/qux/quux/garply/ipfs2.txt && - ipfs files stat "/parents/foo/bar/baz/qux/quux/garply/ipfs2.txt" | grep -q "^Type: file" - ' - - test_expect_success "clean up $EXTRA" ' - ipfs files rm -r /foobar && - ipfs files rm -r /adir && - ipfs files rm -r /parents - ' - - test_expect_success "root mfs entry is empty $EXTRA" ' - verify_dir_contents / - ' - - test_expect_success "repo gc $EXTRA" ' - ipfs repo gc - ' - - # test rm - - test_expect_success "remove file forcibly" ' - echo "hello world" | ipfs files write --create /forcibly && - ipfs files rm --force /forcibly && - verify_dir_contents / - ' - - test_expect_success "remove directory forcibly" ' - ipfs files mkdir /forcibly-dir && - ipfs files rm --force /forcibly-dir && - verify_dir_contents / - ' -} - -# test offline and online - -tests_for_files_api() { - local EXTRA - EXTRA=$1 - - test_expect_success "can create some files for testing ($EXTRA)" ' - create_files - ' - ROOT_HASH=QmcwKfTMCT7AaeiD92hWjnZn9b6eh9NxnhfSzN5x2vnDpt - CATS_HASH=Qma88m8ErTGkZHbBWGqy1C7VmEmX8wwNDWNpGyCaNmEgwC - FILE_HASH=QmQdQt9qooenjeaNhiKHF3hBvmNteB4MQBtgu3jxgf9c7i - TRUNC_HASH=QmPVnT9gocPbqzN4G6SMp8vAPyzcjDbUJrNdKgzQquuDg4 - test_files_api "($EXTRA)" - - test_expect_success "can create some files for testing with raw-leaves ($EXTRA)" ' - create_files --raw-leaves - ' - - if [ "$EXTRA" = "offline" ]; then - ROOT_HASH=QmTpKiKcAj4sbeesN6vrs5w3QeVmd4QmGpxRL81hHut4dZ - CATS_HASH=QmPhPkmtUGGi8ySPHoPu1qbfryLJKKq1GYxpgLyyCruvGe - test_files_api "($EXTRA, partial raw-leaves)" - fi - - ROOT_HASH=QmW3dMSU6VNd1mEdpk9S3ZYRuR1YwwoXjGaZhkyK6ru9YU - CATS_HASH=QmPqWDEg7NoWRX8Y4vvYjZtmdg5umbfsTQ9zwNr12JoLmt - FILE_HASH=QmRCgHeoKxCqK2Es6M6nPUDVWz19yNQPnsXGsXeuTkSKpN - TRUNC_HASH=QmckstrVxJuecVD1FHUiURJiU9aPURZWJieeBVHJPACj8L - test_files_api "($EXTRA, raw-leaves)" '' --raw-leaves - - ROOT_HASH=QmageRWxC7wWjPv5p36NeAgBAiFdBHaNfxAehBSwzNech2 - CATS_HASH=zdj7WkEzPLNAr5TYJSQC8CFcBjLvWFfGdx6kaBrJXnBguwWeX - FILE_HASH=zdj7WYHvf5sBRgSBjYnq64QFr449CCbgupXfBvoYL3aHC1DzJ - TRUNC_HASH=zdj7Wjr8GHZonPFVCWvz2SLLo9H6MmqBxyeB34ArHfyCbmdJG - if [ "$EXTRA" = "offline" ]; then - test_files_api "($EXTRA, cidv1)" --cid-version=1 - fi - - test_expect_success "can update root hash to cidv1" ' - ipfs files chcid --cid-version=1 / && - echo zdj7WbTaiJT1fgatdet9Ei9iDB5hdCxkbVyhyh8YTUnXMiwYi > hash_expect && - ipfs files stat --hash / > hash_actual && - test_cmp hash_expect hash_actual - ' - - ROOT_HASH=zdj7Whmtnx23bR7c7E1Yn3zWYWjnvT4tpzWYGaBMyqcopDWrx - test_files_api "($EXTRA, cidv1 root)" - - if [ "$EXTRA" = "offline" ]; then - test_expect_success "can update root hash to blake2b-256" ' - ipfs files chcid --hash=blake2b-256 / && - echo zDMZof1kvswQMT8txrmnb3JGBuna6qXCTry6hSifrkZEd6VmHbBm > hash_expect && - ipfs files stat --hash / > hash_actual && - test_cmp hash_expect hash_actual - ' - ROOT_HASH=zDMZof1kxEsAwSgCZsGQRVcHCMtHLjkUQoiZUbZ87erpPQJGUeW8 - CATS_HASH=zDMZof1kuAhr3zBkxq48V7o9HJZCTVyu1Wd9wnZtVcPJLW8xnGft - FILE_HASH=zDMZof1kxbB9CvxgRioBzESbGnZUxtSCsZ18H1EUkxDdWt1DYEkK - TRUNC_HASH=zDMZof1kpH1vxK3k2TeYc8w59atCbzMzrhZonsztMWSptVro2zQa - test_files_api "($EXTRA, blake2b-256 root)" - fi - - test_expect_success "can update root hash back to cidv0" ' - ipfs files chcid / --cid-version=0 && - echo QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn > hash_expect && - ipfs files stat --hash / > hash_actual && - test_cmp hash_expect hash_actual - ' -} - -tests_for_files_api "online" - -test_launch_ipfs_daemon --offline - -ONLINE=1 # set online flag so tests can easily tell - -tests_for_files_api "offline" - -test_kill_ipfs_daemon --offline - -test_expect_success "enable sharding in config" ' - ipfs config --json Experimental.ShardingEnabled true -' - -test_launch_ipfs_daemon --offline - -SHARD_HASH=QmPkwLJTYZRGPJ8Lazr9qPdrLmswPtUjaDbEpmR9jEh1se -test_sharding "(cidv0)" - -SHARD_HASH=zdj7WZXr6vG2Ne7ZLHGEKrGyF3pHBfAViEnmH9CoyvjrFQM8E -test_sharding "(cidv1 root)" "--cid-version=1" - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0251-files-flushing.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0251-files-flushing.sh deleted file mode 100755 index 44e3f73d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0251-files-flushing.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test the unix files api flushing" - -. lib/test-lib.sh - -test_init_ipfs - -verify_path_exists() { - # simply running ls on a file should be a good 'check' - ipfs files ls $1 -} - -verify_dir_contents() { - dir=$1 - shift - rm -f expected - touch expected - for e in $@ - do - echo $e >> expected - done - - test_expect_success "can list dir" ' - ipfs files ls $dir > output - ' - - test_expect_success "dir entries look good" ' - test_sort_cmp output expected - ' -} - -test_launch_ipfs_daemon - -test_expect_success "can copy a file in" ' - HASH=$(echo "foo" | ipfs add -q) && - ipfs files cp /ipfs/$HASH /file -' - -test_kill_ipfs_daemon -test_launch_ipfs_daemon - -test_expect_success "file is still there" ' - verify_path_exists /file -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0252-files-gc.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0252-files-gc.sh deleted file mode 100755 index 3666d7a4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0252-files-gc.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Kevin Atkinson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="test how the unix files api interacts with the gc" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "object not removed after gc" ' - echo "hello world" > hello.txt && - cat hello.txt | ipfs files write --create /hello.txt && - ipfs repo gc && - ipfs cat QmVib14uvPnCP73XaCDpwugRuwfTsVbGyWbatHAmLSdZUS -' - -test_expect_success "/hello.txt still accessible after gc" ' - ipfs files read /hello.txt > hello-actual && - test_cmp hello.txt hello-actual -' - -ADIR_HASH=QmbCgoMYVuZq8m1vK31JQx9DorwQdLMF1M3sJ7kygLLqnW -FILE1_HASH=QmX4eaSJz39mNhdu5ACUwTDpyA6y24HmrQNnAape6u3buS - -test_expect_success "gc okay after adding incomplete node -- prep" ' - ipfs files mkdir /adir && - echo "file1" | ipfs files write --create /adir/file1 && - echo "file2" | ipfs files write --create /adir/file2 && - ipfs pin add --recursive=false $ADIR_HASH && - ipfs files rm -r /adir && - ipfs repo gc && # will remove /adir/file1 and /adir/file2 but not /adir - test_must_fail ipfs cat $FILE1_HASH && - ipfs files cp /ipfs/$ADIR_HASH /adir && - ipfs pin rm $ADIR_HASH -' - -test_expect_success "gc okay after adding incomplete node" ' - ipfs object stat $ADIR_HASH && - ipfs repo gc && - ipfs object stat $ADIR_HASH -' - -test_expect_success "add directory with direct pin" ' - mkdir mydir/ && - echo "hello world!" > mydir/hello.txt && - FILE_UNPINNED=$(ipfs add --pin=false -q -r mydir/hello.txt) && - DIR_PINNED=$(ipfs add --pin=false -q -r mydir | tail -n1) && - ipfs add --pin=false -r mydir && - ipfs pin add --recursive=false $DIR_PINNED && - ipfs cat $FILE_UNPINNED -' - -test_expect_success "run gc and make sure directory contents are removed" ' - ipfs repo gc && - test_must_fail ipfs cat $FILE_UNPINNED -' - -test_expect_success "add incomplete directory and make sure gc is okay" ' - ipfs files cp /ipfs/$DIR_PINNED /mydir && - ipfs repo gc && - test_must_fail ipfs cat $FILE_UNPINNED -' - -test_expect_success "add back directory contents and run gc" ' - ipfs add --pin=false mydir/hello.txt && - ipfs repo gc -' - -test_expect_success "make sure directory contents are not removed" ' - ipfs cat $FILE_UNPINNED -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0260-sharding.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0260-sharding.sh deleted file mode 100755 index 02d528fa..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0260-sharding.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test directory sharding" - -. lib/test-lib.sh - -test_expect_success "set up test data" ' - mkdir testdata - for i in `seq 2000` - do - echo $i > testdata/file$i - done -' - -test_add_large_dir() { - exphash="$1" - test_expect_success "ipfs add on very large directory succeeds" ' - ipfs add -r -q testdata | tail -n1 > sharddir_out && - echo "$exphash" > sharddir_exp && - test_cmp sharddir_exp sharddir_out - ' - test_expect_success "ipfs get on very large directory succeeds" ' - ipfs get -o testdata-out "$exphash" && - test_cmp testdata testdata-out - ' -} - -test_init_ipfs - -UNSHARDED="QmavrTrQG4VhoJmantURAYuw3bowq3E2WcvP36NRQDAC1N" -test_add_large_dir "$UNSHARDED" - -test_launch_ipfs_daemon - -test_add_large_dir "$UNSHARDED" - -test_kill_ipfs_daemon - -test_expect_success "enable sharding" ' - ipfs config --json Experimental.ShardingEnabled true -' - -SHARDED="QmSCJD1KYLhVVHqBK3YyXuoEqHt7vggyJhzoFYbT8v1XYL" -test_add_large_dir "$SHARDED" - -test_launch_ipfs_daemon - -test_add_large_dir "$SHARDED" - -test_kill_ipfs_daemon - -test_expect_success "sharded and unsharded output look the same" ' - ipfs ls "$SHARDED" | sort > sharded_out && - ipfs ls "$UNSHARDED" | sort > unsharded_out && - test_cmp sharded_out unsharded_out -' - -test_expect_success "ipfs cat error output the same" ' - test_expect_code 1 ipfs cat "$SHARDED" 2> sharded_err && - test_expect_code 1 ipfs cat "$UNSHARDED" 2> unsharded_err && - test_cmp sharded_err unsharded_err -' - -test_expect_success "'ipfs ls --resolve-type=false --size=false' admits missing block" ' - ipfs ls "$SHARDED" | head -1 > first_file && - ipfs ls --size=false "$SHARDED" | sort > sharded_out_nosize && - read -r HASH _ NAME missing_out && - test_cmp sharded_out_nosize missing_out -' - -test_launch_ipfs_daemon - -test_expect_success "gateway can resolve sharded dirs" ' - echo 100 > expected && - curl -sfo actual "http://127.0.0.1:$GWAY_PORT/ipfs/$SHARDED/file100" && - test_cmp expected actual -' - -test_expect_success "'ipfs resolve' can resolve sharded dirs" ' - echo /ipfs/QmZ3RfWk1u5LEGYLHA633B5TNJy3Du27K6Fny9wcxpowGS > expected && - ipfs resolve "/ipfs/$SHARDED/file100" > actual && - test_cmp expected actual -' - -test_kill_ipfs_daemon - -test_add_large_dir_v1() { - exphash="$1" - test_expect_success "ipfs add (CIDv1) on very large directory succeeds" ' - ipfs add -r -q --cid-version=1 testdata | tail -n1 > sharddir_out && - echo "$exphash" > sharddir_exp && - test_cmp sharddir_exp sharddir_out - ' - - test_expect_success "can access a path under the dir" ' - ipfs cat "$exphash/file20" > file20_out && - test_cmp testdata/file20 file20_out - ' -} - -# this hash implies the directory is CIDv1 and leaf entries are CIDv1 and raw -SHARDEDV1="zdj7WY8aNcxF49q1ZpFXfchNmbswnUxiVDVjmrHb53xRM8W4C" -test_add_large_dir_v1 "$SHARDEDV1" - -test_launch_ipfs_daemon - -test_add_large_dir_v1 "$SHARDEDV1" - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0270-filestore.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0270-filestore.sh deleted file mode 100755 index 7bcea9b5..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0270-filestore.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test out the filestore nocopy functionality" - -. lib/test-lib.sh - - -test_expect_success "create a dataset" ' - random-files -seed=483 -depth=3 -dirs=4 -files=6 -filesize=1000000 somedir > /dev/null -' - -EXPHASH="QmW4JLyeTxEWGwa4mkE9mHzdtAkyhMX2ToGFEKZNjCiJud" - -get_repo_size() { - disk_usage "$IPFS_PATH" -} - -assert_repo_size_less_than() { - expval="$1" - - test_expect_success "check repo size" ' - test "$(get_repo_size)" -lt "$expval" || - { echo should be bellow "$expval" && test_fsh get_repo_size; } - ' -} - -assert_repo_size_greater_than() { - expval="$1" - - test_expect_success "check repo size" ' - test "$(get_repo_size)" -gt "$expval" || - { echo should be above "$expval" && test_fsh get_repo_size; } - ' -} - -test_filestore_adds() { - test_expect_success "nocopy add succeeds" ' - HASH=$(ipfs add --raw-leaves --nocopy -r -q somedir | tail -n1) - ' - - test_expect_success "nocopy add has right hash" ' - test "$HASH" = "$EXPHASH" - ' - - assert_repo_size_less_than 1000000 - - test_expect_success "normal add with fscache doesnt duplicate data" ' - ipfs add --raw-leaves --fscache -r -q somedir > /dev/null - ' - - assert_repo_size_less_than 1000000 - - test_expect_success "normal add without fscache duplicates data" ' - ipfs add --raw-leaves -r -q somedir > /dev/null - ' - - assert_repo_size_greater_than 1000000 -} - -init_ipfs_filestore() { - test_expect_success "clean up old node" ' - rm -rf "$IPFS_PATH" mountdir ipfs ipns - ' - - test_init_ipfs - - test_expect_success "nocopy add errors and has right message" ' - test_must_fail ipfs add --nocopy -r somedir 2> add_out && - grep "filestore is not enabled" add_out - ' - - - test_expect_success "enable filestore config setting" ' - ipfs config --json Experimental.FilestoreEnabled true - ' -} - -init_ipfs_filestore - -test_filestore_adds - -test_debug ' - echo "pwd=$(pwd)"; echo "IPFS_PATH=$IPFS_PATH" -' - - -init_ipfs_filestore - -test_launch_ipfs_daemon - -test_filestore_adds - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0271-filestore-utils.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0271-filestore-utils.sh deleted file mode 100755 index d26af3b4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0271-filestore-utils.sh +++ /dev/null @@ -1,268 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test out the filestore nocopy functionality" - -. lib/test-lib.sh - -test_init_filestore() { - test_expect_success "clean up old node" ' - rm -rf "$IPFS_PATH" mountdir ipfs ipns - ' - - test_init_ipfs - - test_expect_success "enable filestore config setting" ' - ipfs config --json Experimental.FilestoreEnabled true - ' -} - -test_init_dataset() { - test_expect_success "create a dataset" ' - rm -r somedir - mkdir somedir && - random 1000 1 > somedir/file1 && - random 10000 2 > somedir/file2 && - random 1000000 3 > somedir/file3 - ' -} - -test_init() { - test_init_filestore - test_init_dataset -} - -EXPHASH="QmRueCuPMYYvdxWz1vWncF7wzCScEx4qasZXo5aVBb1R4V" - -cat < ls_expect_file_order -zb2rhbcZ3aUXYcrbhhDH1JyrpDcpdw1KFJ5Xs5covjnvMpxDR 1000 somedir/file1 0 -zb2rhaPkR7ZF9BzSC2BfqbcGivi9QMdauermW9YB6NvS7FZMo 10000 somedir/file2 0 -zb2rhe28UqCDm7TFib7PRyQYEkvuq8iahcXA2AbgaxCLvNhfk 262144 somedir/file3 0 -zb2rhebtyTTuHKyTbJPnkDUSruU5Uma4DN8t2EkvYZ6fP36mm 262144 somedir/file3 262144 -zb2rhav4wcdvNXtaKDTWHYAqtUHMEpygT1cxqMsfK7QrDuHxH 262144 somedir/file3 524288 -zb2rhm9VTrX2mfatggYUk8mHLz78XBxVUTTzLvM2N3d6frdAU 213568 somedir/file3 786432 -EOF - -sort < ls_expect_file_order > ls_expect_key_order - -FILE1_HASH=zb2rhbcZ3aUXYcrbhhDH1JyrpDcpdw1KFJ5Xs5covjnvMpxDR -FILE2_HASH=zb2rhaPkR7ZF9BzSC2BfqbcGivi9QMdauermW9YB6NvS7FZMo -FILE3_HASH=QmfE4SDQazxTD7u8VTYs9AJqQL8rrJPUAorLeJXKSZrVf9 - -cat < verify_expect_file_order -ok zb2rhbcZ3aUXYcrbhhDH1JyrpDcpdw1KFJ5Xs5covjnvMpxDR 1000 somedir/file1 0 -ok zb2rhaPkR7ZF9BzSC2BfqbcGivi9QMdauermW9YB6NvS7FZMo 10000 somedir/file2 0 -ok zb2rhe28UqCDm7TFib7PRyQYEkvuq8iahcXA2AbgaxCLvNhfk 262144 somedir/file3 0 -ok zb2rhebtyTTuHKyTbJPnkDUSruU5Uma4DN8t2EkvYZ6fP36mm 262144 somedir/file3 262144 -ok zb2rhav4wcdvNXtaKDTWHYAqtUHMEpygT1cxqMsfK7QrDuHxH 262144 somedir/file3 524288 -ok zb2rhm9VTrX2mfatggYUk8mHLz78XBxVUTTzLvM2N3d6frdAU 213568 somedir/file3 786432 -EOF - -sort < verify_expect_file_order > verify_expect_key_order - -IPFS_CMD="ipfs" - -test_filestore_adds() { - test_expect_success "$IPFS_CMD add nocopy add succeeds" ' - HASH=$($IPFS_CMD add --raw-leaves --nocopy -r -q somedir | tail -n1) - ' - - test_expect_success "nocopy add has right hash" ' - test "$HASH" = "$EXPHASH" - ' - - test_expect_success "'$IPFS_CMD filestore ls' output looks good'" ' - $IPFS_CMD filestore ls | sort > ls_actual && - test_cmp ls_expect_key_order ls_actual - ' - - test_expect_success "'$IPFS_CMD filestore ls --file-order' output looks good'" ' - $IPFS_CMD filestore ls --file-order > ls_actual && - test_cmp ls_expect_file_order ls_actual - ' - - test_expect_success "'$IPFS_CMD filestore ls HASH' works" ' - $IPFS_CMD filestore ls $FILE1_HASH > ls_actual && - grep -q somedir/file1 ls_actual - ' - - test_expect_success "can retrieve multi-block file" ' - $IPFS_CMD cat $FILE3_HASH > file3.data && - test_cmp somedir/file3 file3.data - ' -} - -# check that the filestore is in a clean state -test_filestore_state() { - test_expect_success "$IPFS_CMD filestore verify' output looks good'" ' - $IPFS_CMD filestore verify | LC_ALL=C sort > verify_actual - test_cmp verify_expect_key_order verify_actual - ' -} - -test_filestore_verify() { - test_filestore_state - - test_expect_success "$IPFS_CMD filestore verify --file-order' output looks good'" ' - $IPFS_CMD filestore verify --file-order > verify_actual - test_cmp verify_expect_file_order verify_actual - ' - - test_expect_success "'$IPFS_CMD filestore verify HASH' works" ' - $IPFS_CMD filestore verify $FILE1_HASH > verify_actual && - grep -q somedir/file1 verify_actual - ' - - test_expect_success "rename a file" ' - mv somedir/file1 somedir/file1.bk - ' - - test_expect_success "can not retrieve block after backing file moved" ' - test_must_fail $IPFS_CMD cat $FILE1_HASH - ' - - test_expect_success "'$IPFS_CMD filestore verify' shows file as missing" ' - $IPFS_CMD filestore verify > verify_actual && - grep no-file verify_actual | grep -q somedir/file1 - ' - - test_expect_success "move file back" ' - mv somedir/file1.bk somedir/file1 - ' - - test_expect_success "block okay now" ' - $IPFS_CMD cat $FILE1_HASH > file1.data && - test_cmp somedir/file1 file1.data - ' - - test_expect_success "change first bit of file" ' - dd if=/dev/zero of=somedir/file3 bs=1024 count=1 - ' - - test_expect_success "can not retrieve block after backing file changed" ' - test_must_fail $IPFS_CMD cat $FILE3_HASH - ' - - test_expect_success "'$IPFS_CMD filestore verify' shows file as changed" ' - $IPFS_CMD filestore verify > verify_actual && - grep changed verify_actual | grep -q somedir/file3 - ' - - # reset the state for the next test - test_init_dataset -} - -test_filestore_dups() { - # make sure the filestore is in a clean state - test_filestore_state - - test_expect_success "'$IPFS_CMD filestore dups'" ' - $IPFS_CMD add --raw-leaves somedir/file1 && - $IPFS_CMD filestore dups > dups_actual && - echo "$FILE1_HASH" > dups_expect - test_cmp dups_expect dups_actual - ' -} - -# -# No daemon -# - -test_init - -test_filestore_adds - -test_filestore_verify - -test_filestore_dups - -# -# With daemon -# - -test_init - -# must be in offline mode so tests that retrieve non-existent blocks -# doesn't hang -test_launch_ipfs_daemon --offline - -test_filestore_adds - -test_filestore_verify - -test_filestore_dups - -test_kill_ipfs_daemon - -## -## base32 -## - -EXPHASH="bafybeibva2uh4qpwjo2yr5g7m7nd5kfq64atydq77qdlrikh5uejwqdcbi" - -cat < ls_expect_file_order -bafkreicj3ezgtrh3euw2gyub6w3jydhnouqobxt7stbgtns3mv3iwv6bqq 1000 somedir/file1 0 -bafkreibxwxisv4cld6x76ybqbvf2uwbkoswjqt4hut46af6rps2twme7ey 10000 somedir/file2 0 -bafkreidntk6ciin24oez6yjz4b25fgwecncvi4ua4uhr2tdyenogpzpid4 262144 somedir/file3 0 -bafkreidwie26yauqbhpd2nhhhmod55irq3z372mh6gw4ikl2ifo34c5jra 262144 somedir/file3 262144 -bafkreib7piyesy3dr22sawmycdftrmpyt3z4tmhxrdig2zt5zdp7qwbuay 262144 somedir/file3 524288 -bafkreigxp5k3k6b3i5sldu4r3im74nfxmoptuuubcvq6rg632nfznskglu 213568 somedir/file3 786432 -EOF - -sort < ls_expect_file_order > ls_expect_key_order - -FILE1_HASH=bafkreicj3ezgtrh3euw2gyub6w3jydhnouqobxt7stbgtns3mv3iwv6bqq -FILE2_HASH=bafkreibxwxisv4cld6x76ybqbvf2uwbkoswjqt4hut46af6rps2twme7ey -FILE3_HASH=bafybeih24zygzr2orr5q62mjnbgmjwgj6rx3tp74pwcqsqth44rloncllq - -cat < verify_expect_file_order -ok bafkreicj3ezgtrh3euw2gyub6w3jydhnouqobxt7stbgtns3mv3iwv6bqq 1000 somedir/file1 0 -ok bafkreibxwxisv4cld6x76ybqbvf2uwbkoswjqt4hut46af6rps2twme7ey 10000 somedir/file2 0 -ok bafkreidntk6ciin24oez6yjz4b25fgwecncvi4ua4uhr2tdyenogpzpid4 262144 somedir/file3 0 -ok bafkreidwie26yauqbhpd2nhhhmod55irq3z372mh6gw4ikl2ifo34c5jra 262144 somedir/file3 262144 -ok bafkreib7piyesy3dr22sawmycdftrmpyt3z4tmhxrdig2zt5zdp7qwbuay 262144 somedir/file3 524288 -ok bafkreigxp5k3k6b3i5sldu4r3im74nfxmoptuuubcvq6rg632nfznskglu 213568 somedir/file3 786432 -EOF - -sort < verify_expect_file_order > verify_expect_key_order - -IPFS_CMD="ipfs --cid-base=base32" - -# -# No daemon -# - -test_init - -test_filestore_adds - -test_filestore_verify - -test_filestore_dups - -# -# With daemon -# - -test_init - -# must be in offline mode so tests that retrieve non-existent blocks -# doesn't hang -test_launch_ipfs_daemon --offline - -test_filestore_adds - -test_filestore_verify - -test_filestore_dups - -test_kill_ipfs_daemon - -test_done - -## - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0272-urlstore.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0272-urlstore.sh deleted file mode 100755 index 493b2c2b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0272-urlstore.sh +++ /dev/null @@ -1,184 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test out the urlstore functionality" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "create some random files" ' - random 2222 7 > file1 && - random 500000 7 > file2 && - random 50000000 7 > file3 -' - -test_expect_success "add files using trickle dag format without raw leaves" ' - HASH1a=$(ipfs add -q --trickle --raw-leaves=false file1) && - HASH2a=$(ipfs add -q --trickle --raw-leaves=false file2) && - HASH3a=$(ipfs add -q --trickle --raw-leaves=false file3) -' -test_launch_ipfs_daemon --offline - -test_expect_success "make sure files can be retrived via the gateway" ' - curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a -o file1.actual && - test_cmp file1 file1.actual && - curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -o file2.actual && - test_cmp file2 file2.actual && - curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH3a -o file3.actual && - test_cmp file3 file3.actual -' - -test_expect_success "add files without enabling url store" ' - test_must_fail ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a && - test_must_fail ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -' - -test_kill_ipfs_daemon - -test_expect_success "enable urlstore" ' - ipfs config --json Experimental.UrlstoreEnabled true -' - -test_launch_ipfs_daemon --offline - -test_expect_success "add files using gateway address via url store" ' - HASH1=$(ipfs urlstore add --pin=false http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a) && - HASH2=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a) -' - -test_expect_success "make sure hashes are different" ' - test $HASH1a != $HASH1 && - test $HASH2a != $HASH2 -' - -test_expect_success "get files via urlstore" ' - rm -f file1.actual file2.actual && - ipfs get $HASH1 -o file1.actual && - test_cmp file1 file1.actual && - ipfs get $HASH2 -o file2.actual && - test_cmp file2 file2.actual -' - -cat < ls_expect -zb2rhX1q5oFFzEkPNsTe1Y8osUdFqSQGjUWRZsqC9fbY6WVSk 262144 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 0 -zb2rhYbKFn1UWGHXaAitcdVTkDGTykX8RFpGWzRFuLpoe9VE4 237856 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 262144 -zb2rhjddJ5DNzBrFu8G6CP1ApY25BukwCeskXHzN1H18CiVVZ 2222 http://127.0.0.1:$GWAY_PORT/ipfs/QmcHm3BL2cXuQ6rJdKQgPrmT9suqGkfy2KzH3MkXPEBXU6 0 -EOF - -test_expect_success "ipfs filestore ls works with urls" ' - ipfs filestore ls | sort > ls_actual && - test_cmp ls_expect ls_actual -' - -cat < verify_expect -ok zb2rhX1q5oFFzEkPNsTe1Y8osUdFqSQGjUWRZsqC9fbY6WVSk 262144 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 0 -ok zb2rhYbKFn1UWGHXaAitcdVTkDGTykX8RFpGWzRFuLpoe9VE4 237856 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 262144 -ok zb2rhjddJ5DNzBrFu8G6CP1ApY25BukwCeskXHzN1H18CiVVZ 2222 http://127.0.0.1:$GWAY_PORT/ipfs/QmcHm3BL2cXuQ6rJdKQgPrmT9suqGkfy2KzH3MkXPEBXU6 0 -EOF - -test_expect_success "ipfs filestore verify works with urls" ' - ipfs filestore verify | sort > verify_actual && - test_cmp verify_expect verify_actual -' - -test_expect_success "garbage collect file1 from the urlstore" ' - ipfs repo gc > /dev/null -' - -test_expect_success "can no longer retrieve file1 from urlstore" ' - rm -f file1.actual && - test_must_fail ipfs get $HASH1 -o file1.actual -' - -test_expect_success "can still retrieve file2 from urlstore" ' - rm -f file2.actual && - ipfs get $HASH2 -o file2.actual && - test_cmp file2 file2.actual -' - -test_expect_success "remove original hashes from local gateway" ' - ipfs pin rm $HASH1a $HASH2a && - ipfs repo gc > /dev/null -' - -test_expect_success "gatway no longer has files" ' - test_must_fail curl -f http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a -o file1.actual - test_must_fail curl -f http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -o file2.actual -' - -cat < verify_expect_2 -error zb2rhX1q5oFFzEkPNsTe1Y8osUdFqSQGjUWRZsqC9fbY6WVSk 262144 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 0 -error zb2rhYbKFn1UWGHXaAitcdVTkDGTykX8RFpGWzRFuLpoe9VE4 237856 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 262144 -EOF - -test_expect_success "ipfs filestore verify is correct" ' - ipfs filestore verify | sort > verify_actual_2 && - test_cmp verify_expect_2 verify_actual_2 -' - -test_expect_success "files can not be retrieved via the urlstore" ' - test_must_fail ipfs cat $HASH1 > /dev/null && - test_must_fail ipfs cat $HASH2 > /dev/null -' - -test_expect_success "remove broken files" ' - ipfs pin rm $HASH2 && - ipfs repo gc > /dev/null -' - -test_expect_success "add large file using gateway address via url store" ' - HASH3=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH3a) -' - -test_expect_success "make sure hashes are different" ' - test $HASH3a != $HASH3 -' - -test_expect_success "get large file via urlstore" ' - rm -f file3.actual && - ipfs get $HASH3 -o file3.actual && - test_cmp file3 file3.actual -' - -test_expect_success "check that the trickle option works" ' - HASHat=$(ipfs add -q --cid-version=1 --raw-leaves=true -n --trickle file3) && - HASHut=$(ipfs urlstore add --trickle http://127.0.0.1:$GWAY_PORT/ipfs/$HASH3a) && - test $HASHat = $HASHut -' - -test_expect_success "add files using gateway address via url store using --cid-base=base32" ' - HASH1a=$(ipfs add -q --trickle --raw-leaves=false file1) && - HASH2a=$(ipfs add -q --trickle --raw-leaves=false file2) && - HASH1b32=$(ipfs --cid-base=base32 urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a) && - HASH2b32=$(ipfs --cid-base=base32 urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a) -' - -test_kill_ipfs_daemon - -test_expect_success "files can not be retrieved via the urlstore" ' - test_must_fail ipfs cat $HASH1 > /dev/null && - test_must_fail ipfs cat $HASH2 > /dev/null && - test_must_fail ipfs cat $HASH3 > /dev/null -' - -test_expect_success "check that the hashes were correct" ' - HASH1e=$(ipfs add -q -n --cid-version=1 --raw-leaves=true file1) && - HASH2e=$(ipfs add -q -n --cid-version=1 --raw-leaves=true file2) && - HASH3e=$(ipfs add -q -n --cid-version=1 --raw-leaves=true file3) && - test $HASH1e = $HASH1 && - test $HASH2e = $HASH2 && - test $HASH3e = $HASH3 -' - -test_expect_success "check that the base32 hashes were correct" ' - HASH1e32=$(ipfs cid base32 $HASH1e) - HASH2e32=$(ipfs cid base32 $HASH2e) - test $HASH1e32 = $HASH1b32 && - test $HASH2e32 = $HASH2b32 -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/AFKSEBCGPUJZE.data b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/AFKSEBCGPUJZE.data deleted file mode 100644 index 038d718d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/AFKSEBCGPUJZE.data +++ /dev/null @@ -1 +0,0 @@ -testing diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/CIQG6PGTD2VV34S33BE4MNCQITBRFYUPYQLDXYARR3DQW37MOT7K5XI.data b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/CIQG6PGTD2VV34S33BE4MNCQITBRFYUPYQLDXYARR3DQW37MOT7K5XI.data deleted file mode 100644 index e834edb3..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security-data/CIQG6PGTD2VV34S33BE4MNCQITBRFYUPYQLDXYARR3DQW37MOT7K5XI.data +++ /dev/null @@ -1,3 +0,0 @@ - -Ô -Um \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security.sh deleted file mode 100755 index 7c4c2f57..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0275-cid-security.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jakub Sztandera -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Cid Security" - -. lib/test-lib.sh - -test_init_ipfs - -test_expect_success "adding using unsafe function fails with error" ' - echo foo | test_must_fail ipfs add --hash murmur3 2>add_out -' - -test_expect_success "error reason is pointed out" ' - grep "insecure hash functions not allowed" add_out -' - -test_expect_success "adding using too short of a hash function gives out an error" ' - echo foo | test_must_fail ipfs block put -f protobuf --mhlen 19 2>block_out -' - -test_expect_success "error reason is pointed out" ' - grep "hashes must be at 20 least bytes long" block_out -' - - -test_cat_get() { - - test_expect_success "ipfs cat fails with unsafe hash function" ' - test_must_fail ipfs cat zDvnoLcPKWR 2>ipfs_cat - ' - - - test_expect_success "error reason is pointed out" ' - grep "insecure hash functions not allowed" ipfs_cat - ' - - - test_expect_success "ipfs get fails with too short function" ' - test_must_fail ipfs get z2ba5YhCCFNFxLtxMygQwjBjYSD8nUeN 2>ipfs_get - - ' - - test_expect_success "error reason is pointed out" ' - grep "hashes must be at 20 least bytes long" ipfs_get - ' -} - - -test_gc() { - test_expect_success "injecting insecure block" ' - mkdir -p "$IPFS_PATH/blocks/JZ" && - cp -f ../t0275-cid-security-data/AFKSEBCGPUJZE.data "$IPFS_PATH/blocks/JZ" - ' - - test_expect_success "gc works" 'ipfs repo gc > gc_out' - test_expect_success "gc removed bad block" ' - grep zDvnoGUyhEq gc_out - ' -} - - -# should work offline -test_cat_get -test_gc - -# should work online -test_launch_ipfs_daemon -test_cat_get -test_gc - -test_expect_success "add block linking to insecure" ' - mkdir -p "$IPFS_PATH/blocks/5X" && - cp -f "../t0275-cid-security-data/CIQG6PGTD2VV34S33BE4MNCQITBRFYUPYQLDXYARR3DQW37MOT7K5XI.data" "$IPFS_PATH/blocks/5X" -' - -test_expect_success "ipfs cat fails with code 1 and not timeout" ' - test_expect_code 1 go-timeout 1s ipfs cat QmVpsktzNeJdfWEpyeix93QJdQaBSgRNxebSbYSo9SQPGx -' - -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0276-cidv0v1.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0276-cidv0v1.sh deleted file mode 100755 index b1e437a4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0276-cidv0v1.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jakub Sztandera -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="CID Version 0/1 Duality" - -. lib/test-lib.sh - -test_init_ipfs - -# -# -# - -test_expect_success "create two small files" ' - random 1000 7 > afile - random 1000 9 > bfile -' - -test_expect_success "add file using CIDv1 but don't pin" ' - AHASHv1=$(ipfs add -q --cid-version=1 --raw-leaves=false --pin=false afile) -' - -test_expect_success "add file using CIDv0" ' - AHASHv0=$(ipfs add -q --cid-version=0 afile) -' - -test_expect_success "check hashes" ' - test "$(cid-fmt %v-%c $AHASHv0)" = "cidv0-protobuf" && - test "$(cid-fmt %v-%c $AHASHv1)" = "cidv1-protobuf" && - test "$(cid-fmt -v 0 %s $AHASHv1)" = "$AHASHv0" -' - -test_expect_success "make sure CIDv1 hash really is in the repo" ' - ipfs refs local | grep -q $AHASHv1 -' - -test_expect_success "make sure CIDv0 hash really is in the repo" ' - ipfs refs local | grep -q $AHASHv0 -' - -test_expect_success "run gc" ' - ipfs repo gc -' - -test_expect_success "make sure the CIDv0 hash is in the repo" ' - ipfs refs local | grep -q $AHASHv0 -' - -test_expect_success "make sure we can get CIDv0 added file" ' - ipfs cat $AHASHv0 > thefile && - test_cmp afile thefile -' - -test_expect_success "make sure the CIDv1 hash is not in the repo" ' - ! ipfs refs local | grep -q $AHASHv1 -' - -test_expect_success "clean up" ' - ipfs pin rm $AHASHv0 && - ipfs repo gc && - ! ipfs refs local | grep -q $AHASHv0 -' - -# -# -# - -test_expect_success "add file using CIDv1 but don't pin" ' - ipfs add -q --cid-version=1 --raw-leaves=false --pin=false afile -' - -test_expect_success "check that we can access the file when converted to CIDv0" ' - ipfs cat $AHASHv0 > thefile && - test_cmp afile thefile -' - -test_expect_success "clean up" ' - ipfs repo gc -' - -test_expect_success "add file using CIDv0 but don't pin" ' - ipfs add -q --cid-version=0 --raw-leaves=false --pin=false afile -' - -test_expect_success "check that we can access the file when converted to CIDv1" ' - ipfs cat $AHASHv1 > thefile && - test_cmp afile thefile -' - -# -# -# - -test_expect_success "set up iptb testbed" ' - iptb testbed create -type localipfs -count 2 -init -' - -test_expect_success "start nodes" ' - iptb start -wait && - iptb connect 0 1 -' - -test_expect_success "add afile using CIDv0 to node 0" ' - iptb run 0 -- ipfs add -q --cid-version=0 afile -' - -test_expect_success "get afile using CIDv1 via node 1" ' - iptb -quiet run 1 -- ipfs --timeout=2s cat $AHASHv1 > thefile && - test_cmp afile thefile -' - -test_expect_success "add bfile using CIDv1 to node 0" ' - BHASHv1=$(iptb -quiet run 0 -- ipfs add -q --cid-version=1 --raw-leaves=false bfile) -' - -test_expect_success "get bfile using CIDv0 via node 1" ' - BHASHv0=$(cid-fmt -v 0 %s $BHASHv1) - echo $BHASHv1 && - iptb -quiet run 1 -- ipfs --timeout=2s cat $BHASHv0 > thefile && - test_cmp bfile thefile -' - -test_expect_success "stop testbed" ' - iptb stop -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git-data/git.tar.gz b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git-data/git.tar.gz deleted file mode 100644 index ff5298b7785a3a3149519087a87de4fbf532c0d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4260 zcmZXXbzIY5`^E=2K;i310Rcg}M~KK5kS;+=8tE44&Y>bqNu|4#E@`RJC?QfJ(hej> zj==_O`~2|tJpVoCpYzvwo%?m2>w4e!;fSXMmFy{6fXMdqLyZ|Ve+@&6m>I8&ak{Au z!GDv^U9IIeV?{JzFk_+y_cQ3+c2Qrt-I9Y^DY+^QBhwO{bcw?tr>|pz2N$Q-y@QIP z-|w{&-rg<|&y*cdz|x;c*sH9{X%mR;YkmGzRfSgiW{A@ti?ry~H_GU41C>ld1rnMs+?1_C+{xO3sM88jsua;_q^b2f+DPq^@Ytl8Yuo}eR@}Bt zygv%opd_>sMZ)x81>l-uM%;krB`NXuh2{e0>w^{OHO_OJL;8_qhBQu0pc>&zOUZc(Q-C+_Y%?-r_q8RHt_}oJT5F^C=QX>$^Rw6JD^>1`)zWTUs;bTD*&17vO$>b;vX~V3>;40eiCr3@?$KUzr8Huj{ML) zfMseFUsz78r*OIOPy*!%Rm2QQYEaTCuZP?^g4-8~92*!(K#fOItDgd@Pi2X(DgczS zI-b8KvOFqZj>o!9x;fiYcwxG`WLtd*&m?`NMvOaNlW82|DyyvWzKZVgJ0}4y3%lzt zNzpDQ)I}4olZUBVIKS4`N^V`5d z)1IH`vhZ6Q<8hds^(BJxN^!6hfklLrRGgH~sffp2&G{M}PW__Dy-MgSH5BeA{i|Xc zkR_huAP|x(H;C^8NmV}q=gm!8CNJGkyojKi-G=PDPPwu2@b78uL9xHBk}NU~#5N(r zX@Kk14a0|Ae~-;@jB3%Pe5sC+x#%f6RwBs)P2l>d@&>sRwX`ZVSWON9$#i@nl6e;h zGgt>|T+p!7)N=lOF``gc6y|K|schr?g#mE%Wa9GQE}-qS^PSlubZhcJ>g;t$|Un{jZhBii3(zTle}>X7?}S^C3&{P9Axm z`?Gv{b6<%c&85n4P*-bW^3H|r)sx1hm^r1t=9;8azm{`M3-W{Wn{!i}UgL~6Fs&}t zPDjCv-3iH8Q5ZlFU=-6J$AvPZ5+YO#zw2h7n8O@iIk#3V--mDsKH9y z@JN&l);l>Fg;8(wRV{q{@%60 zuF38ARQpG$AUP2Q-BE8lOTfYmA6Ed(U6&&8-n7#mB;DXuaT@e^s}fyNS;a+`;mkXS zV=kIi!*iHE1i)7Xs-{iU>FcF!0h+E)cms;8R>%I*{`)&SZ^!;7M@|VM&R`N z(7Y6RWuxIoP31%*Q@gmc9$HwPDuzoD3fpQ*V$~_QbMrA?6A8wjw#6PcW5AcGh7tfT zstQoT!UFqsVgJ~vJ20BKQ1W%TFuY=-onlsJls4?`;`7Xly_V4UrQ1_FzNX0@J&AXNWm$AIP7T=Ga-@kIl zX6A_O(Q}Y0`YlHeHt8JVQ)UK6$+7L9sx=qV+j4_v_o%CTu;?a?k|1=D0ca5ewrH-Z zgp6bOZ;$vX4d?VaRtPYo4aifFa5%UY4`G|6Z@KMhybnyGyz#ByPi#AmUgBV1Ns_bP z*&o>VJ;Abn#x9?t0&kdsSI=`q{0JD1%->$T1^J{*t2pAxH>=KY#GfTGWd2mChC8~v zP{fM1(AO_NBs{9L@Fv7F&$s*qs*x>ZC*n`NDD}e3FWXkk13~C;0CA?{x1xytUs{zR z$eljGMQHEEs!EPY8r&k86z(eXAvJWmeiu2Qe1#E7;-qO6@ak?Nu&t6dF`Yby0`47C zbuVm05QYkrS0lv{M4Cg)D_Pl@w!FoF3tp_SVatlb(ojCT4Q>o>9Sre=ZAE4-7|Oib z?c**r9k+;Cj@k~Rj<`hA&$l0v4SvGjzw#j;x8^kuS2#AN?+RDY9>4 z*5c=99w+PPdyQ`>mM!b#7r*(2*hd&%Z<49?S={`yE&=1fqEZSWJl*uCeQ+XoDdMF1 zTNB?V*8XpZ2ppDxGXFS6vn%!}azDWyPA(Ri8P33)h*sx#8lGUg5f)eGDwlWUb(!huDx{lr z9xz#tc;Nc&6`x*T>Vh5BHoC8mPJJT3{8iwUafg3%DC-X*eIJ;{BDP;;6HDB>E`)~Z zC_+e>Ij%8(Xn0wqLQWFH$l@?4ENuwvgNYD{31I3q(;jeOxwy0MYrl@{Og_g2d}uhS zp6Aw~kUL!Y(Xh1>GtXKZ)gXgQ%)itz(ms|U7Bb=Ty}$R~t@d8!TkX@n>osA}d5i3Z z3+1{(Y}q1Pk7B?IYNqT?gVZ?OJ=1H)*T^QJk|^hGLe!sx?Zjjg&0X$ttEA5{Xnd!f zHMel21ikO2`66zfLTm4_foHN3Bu?625Sgqiegc7LV4etl`sr@(w}EgRzCHtcs+(^1 zIz&Fg$h^M7Y7beRs*<_S^6Do4@~JrsGjjTwrDErHtllyGaMVD={q<*=L6C0c>5?zS z)k`A}4}Py&doc!g$8AU=Jk5_PHWCNe`C{bRWW?)3JdS>3zw(>xk@M5ns6aL}|6K3v zKKC79e>!~lGw-CweynmDnw04oaX7x#Uoc56*s7o^8W~8$UyTaSuNocbDz`7Qi79Rx z|In!2j&mxw%SMt{B$*Ix{F1kq`({P7acN=|7Pc^YiI}}IP6-k6a_%8$ZG)viBFb$l z7T3J6in09hImy*QC2CLCr^IK5l(qcqF`c|jmDo5AtZZ1w_NzVA%-t_Q1Gh9yX1m^J zaYi2J7BD@Xxdu(#!6(}}6aNdEUXq$G8k1Z15^0?i;dK0!LJT}C4MN^Ny$-Hea__&Km75`1GEWBPvzQ1QD>Rfv3#m}w8*IT=x(kt8RxkL=p z7P%+K%ED$?^W5feWD=jAjz1var;BQ9^_-N`d3#`Acvt27Qm*W1$p`2oy^q$q+ooOo z%i_V#^KT&R4v2i)=7Zc8*0Bim8RP2-!oy1&1H&iNavMb-p(}-;nR5=|G2j{o|2NN* zqw@UBiXr1;(a`$SdgW`38hi#$;yjI-jX6+=0SeU#k8NH@clR#7d#lYmAMk=WKE8VO)V`&OlwfRA-q|Q2vHvepsuhWZ%X-&N7-eJ%%`#6{jES_ zo>l{hw_wwPb1kP5h!)<2aTQ!3#PGs^Yq2QOX*+BtRAZ*KjbAl9v#`EH^P*iJ8!77D z|9*~&Eq3LSw=DuQ5{gpu;)1(6;k=?}S zSt|g)RVLss|DW0V8Jh-Wqd8aC4QBQGmOWgfFF&A_OwCP5sf8Qo+)8&(VVgL}1TY&X zkbBEQFe%Pbwj27oRuGPV-fC^9G#+zIACKx`N>9*_l@sSpemL=z)eudVmH!?)yxp%{ z8+R&;Yd^WTVBNDhvk9PT|0m0YF{esxwc&1Ir5XuYmdbV`3+lRMPILn zYbPa_3W1a6vVr@tW;YLlmd`ZQ2AW+u$yay8Wne$(t?I?t>ntv~@UJBl0IS7|!auOx zE4EM%2q-bA^$U=eUKe68kEXoK^@kDJO+t4^Nc#QNHycAhWN?kfjy;0b11_t8OJ->( zF&szsEvla9X5q2&E_9$PNz{EKc(ZX}Wv)%1%D0Z9t6-?c7VpqznaO@SK@^j-BoB(0o2P$n vm7n`a@3~xl1YxxFS0I0&RwL#}km1H_m0|;d|J}}?9O>(esu+U4fI$BTJ#@sa diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git.sh deleted file mode 100755 index 24737dd4..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0280-plugin-git.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Jakub Sztandera -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test git plugin" - -. lib/test-lib.sh - -# if in travis CI, dont test mount (no fuse) -if ! test_have_prereq PLUGIN; then - skip_all='skipping git plugin tests, plugins not available' - - test_done -fi - -test_init_ipfs - -# from https://github.com/ipfs/go-ipld-git/blob/master/make-test-repo.sh -test_expect_success "prepare test data" ' - tar xzf ../t0280-plugin-git-data/git.tar.gz -' - -test_dag_git() { - test_expect_success "add objects via dag put" ' - find objects -type f -exec ipfs dag put --format=git --input-enc=zlib {} \; -exec echo \; > hashes - ' - - test_expect_success "successfully get added objects" ' - cat hashes | xargs -i ipfs dag get -- {} > /dev/null - ' - - test_expect_success "path traversals work" ' - echo \"YmxvYiA3ACcsLnB5Zgo=\" > file1 && - ipfs dag get z8mWaJh5RLq16Zwgtd8gZxd63P4hgwNNx/object/parents/0/tree/dir2/hash/f3/hash > out1 - ' - - test_expect_success "outputs look correct" ' - test_cmp file1 out1 - ' -} - -# should work offline -#test_dag_git - -# should work online -test_launch_ipfs_daemon -test_dag_git -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0290-cid.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0290-cid.sh deleted file mode 100755 index 67a1de2f..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0290-cid.sh +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/env bash - -test_description="Test cid commands" - -. lib/test-lib.sh - -# note: all "ipfs cid" commands should work without requiring a repo - -CIDv0="QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv" -CIDv1="zdj7WZAAFKPvYPPzyJLso2hhxo8a7ZACFQ4DvvfrNXTHidofr" -CIDb32="bafybeibxm2nsadl3fnxv2sxcxmxaco2jl53wpeorjdzidjwf5aqdg7wa6u" - -test_expect_success "cid base32 works" ' - echo $CIDb32 > expected && - ipfs cid base32 $CIDv0 > actual1 && - test_cmp actual1 expected && - ipfs cid base32 $CIDv1 > actual2 && - test_cmp expected actual2 -' - -test_expect_success "cid format -v 1 -b base58btc" ' - echo $CIDv1 > expected && - ipfs cid format -v 1 -b base58btc $CIDv0 > actual1 && - test_cmp actual1 expected && - ipfs cid format -v 1 -b base58btc $CIDb32 > actual2 && - test_cmp expected actual2 -' - -cat < various_cids -QmZZRTyhDpL5Jgift1cHbAhexeE1m2Hw8x8g7rTcPahDvo - QmPhk6cJkRcFfZCdYam4c9MKYjFG9V29LswUnbrFNhtk2S -bafybeihtwdtifv43rn5cyilnmkwofdcxi2suqimmo62vn3etf45gjoiuwy -bafybeiek4tfxkc4ov6jsmb63fzbirrsalnjw24zd5xawo2fgxisd4jmpyq -zdj7WgYfT2gfsgiUxzPYboaRbP9H9CxZE5jVMK9pDDwCcKDCR -zdj7WbTaiJT1fgatdet9Ei9iDB5hdCxkbVyhyh8YTUnXMiwYi -uAXASIDsp4T3Wnd6kXFOQaljH3GFK_ixkjMtVhB9VOBrPK3bp - uAXASIDdmmyANeytvXUriuy4BO0lfd2eR0UjygabF6CAzfsD1 -EOF - -cat < various_cids_base32 -bafybeifgwyq5gs4l2mru5klgwjfmftjvkmbyyjurbupuz2bst7mhmg2hwa -bafybeiauil46g3lb32jemjbl7yspca3twdcg4wwkbsgdgvgdj5fpfv2f64 -bafybeihtwdtifv43rn5cyilnmkwofdcxi2suqimmo62vn3etf45gjoiuwy -bafybeiek4tfxkc4ov6jsmb63fzbirrsalnjw24zd5xawo2fgxisd4jmpyq -bafybeifffq3aeaymxejo37sn5fyaf7nn7hkfmzwdxyjculx3lw4tyhk7uy -bafybeiczsscdsbs7ffqz55asqdf3smv6klcw3gofszvwlyarci47bgf354 -bafybeib3fhqt3vu532sfyu4qnjmmpxdbjl7cyzemznkyih2vhanm6k3w5e -bafybeibxm2nsadl3fnxv2sxcxmxaco2jl53wpeorjdzidjwf5aqdg7wa6u -EOF - -cat < various_cids_v1 -zdj7WgefqQm5HogBQ2bckZuTYYDarRTUZi51GYCnerHD2G86j -zdj7WWnzU3Nbu5rYGWZHKigUXBtAwShs2SHDCM1TQEvC9TeCN -zdj7WmqAbpsfXgiRBtZP1oAP9QWuuY3mqbc5JhpxJkfT3vYCu -zdj7Wen5gtfr7AivXip3zYd1peuq2QfKrqAn4FGiciVWb96YB -zdj7WgYfT2gfsgiUxzPYboaRbP9H9CxZE5jVMK9pDDwCcKDCR -zdj7WbTaiJT1fgatdet9Ei9iDB5hdCxkbVyhyh8YTUnXMiwYi -zdj7WZQrAvnY5ge3FNg5cmCsNwsvpYjdtu2yEmnWYQ4ES7Nzk -zdj7WZAAFKPvYPPzyJLso2hhxo8a7ZACFQ4DvvfrNXTHidofr -EOF - -test_expect_success "cid base32 works from stdin" ' - cat various_cids | ipfs cid base32 > actual && - test_cmp various_cids_base32 actual -' - -test_expect_success "cid format -v 1 -b base58btc works from stdin" ' - cat various_cids | ipfs cid format -v 1 -b base58btc > actual && - test_cmp various_cids_v1 actual -' - -cat < bases_expect - 0 identity -b 98 base32 -B 66 base32upper -c 99 base32pad -C 67 base32padupper -f 102 base16 -F 70 base16upper -m 109 base64 -M 77 base64pad -t 116 base32hexpad -T 84 base32hexpadupper -u 117 base64url -U 85 base64urlpad -v 118 base32hex -V 86 base32hexupper -z 122 base58btc -Z 90 base58flickr -EOF - -cat < codecs_expect - 85 raw - 112 protobuf - 113 cbor - 120 git-raw - 144 eth-block - 145 eth-block-list - 146 eth-tx-trie - 147 eth-tx - 148 eth-tx-receipt-trie - 149 eth-tx-receipt - 150 eth-state-trie - 151 eth-account-snapshot - 152 eth-storage-trie - 176 bitcoin-block - 177 bitcoin-tx - 192 zcash-block - 193 zcash-tx - 224 decred-block - 225 decred-tx - 240 dash-block - 241 dash-tx -EOF - -cat < hashes_expect - 0 id - 17 sha1 - 18 sha2-256 - 19 sha2-512 - 20 sha3-512 - 21 sha3-384 - 22 sha3-256 - 23 sha3-224 - 25 shake-256 - 26 keccak-224 - 27 keccak-256 - 28 keccak-384 - 29 keccak-512 - 86 dbl-sha2-256 -45588 blake2b-160 -45589 blake2b-168 -45590 blake2b-176 -45591 blake2b-184 -45592 blake2b-192 -45593 blake2b-200 -45594 blake2b-208 -45595 blake2b-216 -45596 blake2b-224 -45597 blake2b-232 -45598 blake2b-240 -45599 blake2b-248 -45600 blake2b-256 -45601 blake2b-264 -45602 blake2b-272 -45603 blake2b-280 -45604 blake2b-288 -45605 blake2b-296 -45606 blake2b-304 -45607 blake2b-312 -45608 blake2b-320 -45609 blake2b-328 -45610 blake2b-336 -45611 blake2b-344 -45612 blake2b-352 -45613 blake2b-360 -45614 blake2b-368 -45615 blake2b-376 -45616 blake2b-384 -45617 blake2b-392 -45618 blake2b-400 -45619 blake2b-408 -45620 blake2b-416 -45621 blake2b-424 -45622 blake2b-432 -45623 blake2b-440 -45624 blake2b-448 -45625 blake2b-456 -45626 blake2b-464 -45627 blake2b-472 -45628 blake2b-480 -45629 blake2b-488 -45630 blake2b-496 -45631 blake2b-504 -45632 blake2b-512 -45652 blake2s-160 -45653 blake2s-168 -45654 blake2s-176 -45655 blake2s-184 -45656 blake2s-192 -45657 blake2s-200 -45658 blake2s-208 -45659 blake2s-216 -45660 blake2s-224 -45661 blake2s-232 -45662 blake2s-240 -45663 blake2s-248 -45664 blake2s-256 -EOF - -test_expect_success "cid bases" ' - cut -c 10- bases_expect > expect && - ipfs cid bases > actual && - test_cmp expect actual -' - -test_expect_success "cid bases --prefix" ' - cut -c 1-3,10- bases_expect > expect && - ipfs cid bases --prefix > actual && - test_cmp expect actual -' - -test_expect_success "cid bases --prefix --numeric" ' - ipfs cid bases --prefix --numeric > actual && - test_cmp bases_expect actual -' - -test_expect_success "cid codecs" ' - cut -c 8- codecs_expect > expect && - ipfs cid codecs > actual - test_cmp expect actual -' - -test_expect_success "cid codecs --numeric" ' - ipfs cid codecs --numeric > actual && - test_cmp codecs_expect actual -' - -test_expect_success "cid hashes" ' - cut -c 8- hashes_expect > expect && - ipfs cid hashes > actual - test_cmp expect actual -' - -test_expect_success "cid hashes --numeric" ' - ipfs cid hashes --numeric > actual && - test_cmp hashes_expect actual -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0300-docker-image.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0300-docker-image.sh deleted file mode 100755 index 06acba5b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0300-docker-image.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2015 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test docker image" - -. lib/test-lib.sh - -# if in travis CI on OSX, docker is not available -if ! test_have_prereq DOCKER; then - skip_all='skipping docker tests, docker not available' - - test_done -fi - -test_expect_success "'docker --version' works" ' - docker --version >actual -' - -test_expect_success "'docker --version' output looks good" ' - egrep "^Docker version" actual -' - -test_expect_success "current user is in the 'docker' group" ' - groups | egrep "\bdocker\b" -' - -TEST_TRASH_DIR=$(pwd) -TEST_SCRIPTS_DIR=$(dirname "$TEST_TRASH_DIR") -TEST_TESTS_DIR=$(dirname "$TEST_SCRIPTS_DIR") -APP_ROOT_DIR=$(dirname "$TEST_TESTS_DIR") - -test_expect_success "docker image build succeeds" ' - docker_build "$TEST_TESTS_DIR/../Dockerfile.fast" "$APP_ROOT_DIR" >actual || - test_fsh echo "TEST_TESTS_DIR: $TEST_TESTS_DIR" || - test_fsh echo "APP_ROOT_DIR : $APP_ROOT_DIR" || - test_fsh cat actual -' - -test_expect_success "docker image build output looks good" ' - SUCCESS_LINE=$(egrep "^Successfully built" actual) && - IMAGE_ID=$(expr "$SUCCESS_LINE" : "^Successfully built \(.*\)") || - test_fsh cat actual -' - -test_expect_success "docker image runs" ' - DOC_ID=$(docker_run "$IMAGE_ID") -' - -test_expect_success "docker image gateway is up" ' - docker_exec "$DOC_ID" "wget --retry-connrefused --waitretry=1 --timeout=30 -t 30 \ - -q -O - http://localhost:8080/version >/dev/null" -' - -test_expect_success "docker image API is up" ' - docker_exec "$DOC_ID" "wget --retry-connrefused --waitretry=1 --timeout=30 -t 30 \ - -q -O - http://localhost:5001/api/v0/version >/dev/null" -' - -test_expect_success "simple ipfs add/cat can be run in docker container" ' - expected="Hello Worlds" && - HASH=$(docker_exec "$DOC_ID" "echo $(cat expected) | ipfs add | cut -d' ' -f2") && - docker_exec "$DOC_ID" "ipfs cat $HASH" >actual && - test_cmp expected actual -' - -read testcode <actual ; \ - test -s actual ; \ - docker exec -i "$DOC_ID" ipfs version --enc json \ - | sed 's/^.*"Commit":"\\\([^"]*\\\)".*$/\\\1/g' >expected ; \ - test -s expected ; \ - test_cmp expected actual -EOF -test_expect_success "version CurrentCommit is set" "$testcode" - -test_expect_success "stop docker container" ' - docker_stop "$DOC_ID" -' - -test_done - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0301-docker-migrate.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0301-docker-migrate.sh deleted file mode 100755 index 0718e121..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0301-docker-migrate.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2017 Whyrusleeping -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test docker image migration" - -. lib/test-lib.sh - -# if in travis CI on OSX, docker is not available -if ! test_have_prereq DOCKER; then - skip_all='skipping docker tests, docker not available' - - test_done -fi - -TEST_TRASH_DIR=$(pwd) -TEST_SCRIPTS_DIR=$(dirname "$TEST_TRASH_DIR") -TEST_TESTS_DIR=$(dirname "$TEST_SCRIPTS_DIR") -APP_ROOT_DIR=$(dirname "$TEST_TESTS_DIR") - -test_expect_success "docker image build succeeds" ' - docker_build "$TEST_TESTS_DIR/../Dockerfile.fast" "$APP_ROOT_DIR" >actual && - IMAGE_ID=$(tail -n1 actual | cut -d " " -f 3) -' - -test_init_ipfs - -test_expect_success "make repo be version 4" ' - echo 4 > "$IPFS_PATH/version" -' - -test_expect_success "setup http response" ' - echo "HTTP/1.1 200 OK" > vers_resp && - echo "Content-Length: 7" >> vers_resp && - echo "" >> vers_resp && - echo "v1.1.1" >> vers_resp -' - -pretend_server() { - cat vers_resp | nc -l -i 1 -p 17233 -} - -test_expect_success "startup fake dists server" ' - pretend_server > dist_serv_out & - echo $! > netcat_pid -' - -test_expect_success "docker image runs" ' - DOC_ID=$(docker run -d -v "$IPFS_PATH":/data/ipfs --net=host -e IPFS_DIST_PATH="http://localhost:17233" "$IMAGE_ID" --migrate) -' - -test_expect_success "docker container tries to pull migrations from netcat" ' - sleep 4 && - cat dist_serv_out -' - -test_expect_success "see logs" ' - docker logs $DOC_ID -' - -test_expect_success "stop docker container" ' - docker_stop "$DOC_ID" -' - -test_expect_success "kill the net cat" ' - kill $(cat netcat_pid) || true -' - -test_expect_success "correct version was requested" ' - grep "/fs-repo-migrations/v1.1.1/fs-repo-migrations_v1.1.1_linux-amd64.tar.gz" dist_serv_out > /dev/null -' - -test_done - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0400-api-security.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0400-api-security.sh deleted file mode 100755 index 137f99a9..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0400-api-security.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Lars Gierth -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test API security" - -. lib/test-lib.sh - -test_init_ipfs - -# by default, we don't let you load arbitrary ipfs objects through the api, -# because this would open up the api to scripting vulnerabilities. -# only the webui objects are allowed. -# if you know what you're doing, go ahead and pass --unrestricted-api. - -test_launch_ipfs_daemon -test_expect_success "Gateway on API unavailable" ' - HASH=$(echo "testing" | ipfs add -q) - test_curl_resp_http_code "http://127.0.0.1:$API_PORT/ipfs/$HASH" "HTTP/1.1 404 Not Found" -' -test_kill_ipfs_daemon - -test_launch_ipfs_daemon --unrestricted-api -test_expect_success "Gateway on --unrestricted-api API available" ' - HASH=$(echo "testing" | ipfs add -q) - test_curl_resp_http_code "http://127.0.0.1:$API_PORT/ipfs/$HASH" "HTTP/1.1 200 OK" -' -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0410-api-add.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0410-api-add.sh deleted file mode 100755 index 6481e9ef..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0410-api-add.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Tom O'Donnell -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test API add command" - -. lib/test-lib.sh - -test_init_ipfs - -# Verify that that API add command returns size - -test_launch_ipfs_daemon -test_expect_success "API Add response includes size field" ' - echo "hi" | curl -s -F file=@- "http://localhost:$API_PORT/api/v0/add" | grep "\"Size\": *\"11\"" -' -test_kill_ipfs_daemon - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0500-issues-and-regressions-offline.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0500-issues-and-regressions-offline.sh deleted file mode 100755 index 5a361aae..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0500-issues-and-regressions-offline.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash - -test_description="Tests for various fixed issues and regressions." - -. lib/test-lib.sh - -# Tests go here - -test_expect_success "ipfs init with occupied input works - #2748" ' - export IPFS_PATH="ipfs_path" - echo "" | go-timeout 10 ipfs init && - rm -rf ipfs_path -' -test_init_ipfs - -test_expect_success "ipfs cat --help succeeds when input remains open" ' - yes | go-timeout 1 ipfs cat --help -' - -test_expect_success "ipfs pin ls --help succeeds when input remains open" ' - yes | go-timeout 1 ipfs pin ls --help -' - -test_expect_success "ipfs add on 1MB from stdin woks" ' - random 1048576 42 | ipfs add -q > 1MB.hash -' - -test_expect_success "'ipfs refs -r -e \$(cat 1MB.hash)' succeeds" ' - ipfs refs -r -e $(cat 1MB.hash) > refs-e.out -' - -test_expect_success "output of 'ipfs refs -e' links to separate blocks" ' - grep "$(cat 1MB.hash) ->" refs-e.out -' - -test_expect_success "output of 'ipfs refs -e' contains all first level links" ' - grep "$(cat 1MB.hash) ->" refs-e.out | sed -e '\''s/.* -> //'\'' | sort > refs-s.out && - ipfs refs "$(cat 1MB.hash)" | sort > refs-one.out && - test_cmp refs-s.out refs-one.out -' - -test_done diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0600-issues-and-regressions-online.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/t0600-issues-and-regressions-online.sh deleted file mode 100755 index 7cc66019..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/t0600-issues-and-regressions-online.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -test_description="Tests for various fixed issues and regressions." - -. lib/test-lib.sh - -test_init_ipfs - -test_launch_ipfs_daemon - -# Tests go here - -test_expect_success "commands command with flag flags works via HTTP API - #2301" ' - curl "http://$API_ADDR/api/v0/commands?flags" | grep "verbose" -' - -test_expect_success "ipfs refs local over HTTP API returns NDJOSN not flat - #2803" ' - echo "Hello World" | ipfs add && - curl "http://$API_ADDR/api/v0/refs/local" | grep "Ref" | grep "Err" -' - -test_expect_success "args expecting stdin dont crash when not given" ' - curl "$API_ADDR/api/v0/bootstrap/add" > result -' - -test_expect_success "no panic traces on daemon" ' - test_must_fail grep "nil pointer dereference" daemon_err -' - -test_expect_success "metrics work" ' - curl "$API_ADDR/debug/metrics/prometheus" > pro_data && - grep "ipfs_bs_cache_arc_hits_total" < pro_data || - test_fsh cat pro_data -' - -test_expect_success "pin add api looks right - #3753" ' - HASH=$(echo "foo" | ipfs add -q) && - curl "http://$API_ADDR/api/v0/pin/add/$HASH" > pinadd_out && - echo "{\"Pins\":[\"QmYNmQKp6SuaVrpgWRsPTgCQCnpxUYGq76YEKBXuj2N4H6\"]}" > pinadd_exp && - test_cmp pinadd_out pinadd_exp -' - -test_expect_success "pin add api looks right - #3753" ' - curl "http://$API_ADDR/api/v0/pin/rm/$HASH" > pinrm_out && - echo "{\"Pins\":[\"QmYNmQKp6SuaVrpgWRsPTgCQCnpxUYGq76YEKBXuj2N4H6\"]}" > pinrm_exp && - test_cmp pinrm_out pinrm_exp -' - -test_expect_success "no daemon crash on improper file argument - #4003" ' - FNC=$(echo $API_ADDR | awk -F: '\''{ printf "%s %s", $1, $2 }'\'') && - printf "POST /api/v0/add?pin=true HTTP/1.1\r\nHost: $API_ADDR\r\nContent-Type: multipart/form-data; boundary=Pyw9xQLtiLPE6XcI\r\nContent-Length: 22\r\n\r\n\r\n--Pyw9xQLtiLPE6XcI\r\n" | nc -v $FNC | grep -m1 "500 Internal Server Error" -' - -test_kill_ipfs_daemon - -test_expect_success "ipfs daemon --offline --mount fails - #2995" ' - test_expect_code 1 ipfs daemon --offline --mount 2>daemon_err && - grep "mount is not currently supported in offline mode" daemon_err || - test_fsh cat daemon_err -' - -test_launch_ipfs_daemon --offline - -test_expect_success "'ipfs name resolve' succeeds after ipfs id when daemon offline" ' - PEERID=`ipfs id --format=""` && - test_check_peerid "${PEERID}" && - ipfs name publish --allow-offline -Q "/ipfs/$HASH_WELCOME_DOCS" >publish_out -' - -test_expect_success "pubrmlish --quieter output looks good" ' - echo "${PEERID}" >expected1 && - test_cmp expected1 publish_out -' - -test_expect_success "'ipfs name resolve' succeeds" ' - ipfs name resolve "$PEERID" >output -' - -test_expect_success "resolve output looks good" ' - printf "/ipfs/%s\n" "$HASH_WELCOME_DOCS" >expected2 && - test_cmp expected2 output -' - -test_kill_ipfs_daemon - -test_done - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness/x0601-pin-fail-test.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness/x0601-pin-fail-test.sh deleted file mode 100755 index ffab1062..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness/x0601-pin-fail-test.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2016 Jeromy Johnson -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Test very large number of pins" - -. lib/test-lib.sh - -test_init_ipfs - -test_launch_ipfs_daemon - -test_expect_success "pre-test setup" ' - printf "" > pins && - ipfs pin ls --type=recursive -q > rec_pins_before -' - - -for i in `seq 9000` -do - test_expect_success "ipfs add (and pin) a file" ' - echo $i | ipfs add -q >> pins - ' -done - -test_expect_success "get pinset afterwards" ' - ipfs pin ls --type=recursive -q | sort > rec_pins_after && - cat pins rec_pins_before | sort | uniq > exp_pins_after && - test_cmp rec_pins_after exp_pins_after -' - -test_kill_ipfs_daemon - -test_done - diff --git a/vendor/github.com/ipfs/go-ipfs/test/sharness_test_coverage_helper.sh b/vendor/github.com/ipfs/go-ipfs/test/sharness_test_coverage_helper.sh deleted file mode 100755 index 99bcb7db..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/sharness_test_coverage_helper.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/sh - -USAGE="$0 [-h] [-v]" - -usage() { - echo "$USAGE" - echo " Print sharness test coverage" - echo " Options:" - echo " -h|--help: print this usage message and exit" - echo " -v|--verbose: print logs of what happens" - exit 0 -} - -log() { - test -z "$VERBOSE" || echo "->" "$@" -} - -die() { - printf >&2 "fatal: %s\n" "$@" - exit 1 -} - -# get user options -while [ "$#" -gt "0" ]; do - # get options - arg="$1" - shift - - case "$arg" in - -h|--help) - usage ;; - -v|--verbose) - VERBOSE=1 ;; - -*) - die "unrecognised option: '$arg'\n$USAGE" ;; - *) - die "too many arguments\n$USAGE" ;; - esac -done - -log "Create temporary directory" -DATE=$(date +"%Y-%m-%dT%H:%M:%SZ") -TMPDIR=$(mktemp -d "/tmp/coverage_helper.$DATE.XXXXXX") || -die "could not 'mktemp -d /tmp/coverage_helper.$DATE.XXXXXX'" - -log "Grep the sharness tests for ipfs commands" -CMD_RAW="$TMPDIR/ipfs_cmd_raw.txt" -git grep -n -E '\Wipfs\W' -- sharness/t*-*.sh >"$CMD_RAW" || -die "Could not grep ipfs in the sharness tests" - -grep_out() { - pattern="$1" - src="$TMPDIR/ipfs_cmd_${2}.txt" - dst="$TMPDIR/ipfs_cmd_${3}.txt" - desc="$4" - - log "Remove $desc" - egrep -v "$pattern" "$src" >"$dst" || die "Could not remove $desc" -} - -grep_out 'test_expect_.*ipfs' raw expect "test_expect_{success,failure} lines" -grep_out '^[^:]+:[^:]+:\s*#' expect comment "comments" -grep_out 'test_description=' comment desc "test_description lines" -grep_out '^[^:]+:[^:]+:\s*\w+="[^"]*"\s*(\&\&)?\s*$' desc def "variable definition lines" -grep_out '^[^:]+:[^:]+:\s*e?grep\W[^|]*\Wipfs' def grep "grep lines" -grep_out '^[^:]+:[^:]+:\s*cat\W[^|]*\Wipfs' grep cat "cat lines" -grep_out '^[^:]+:[^:]+:\s*rmdir\W[^|]*\Wipfs' cat rmdir "rmdir lines" -grep_out '^[^:]+:[^:]+:\s*echo\W[^|]*\Wipfs' cat echo "echo lines" - -grep_in() { - pattern="$1" - src="$TMPDIR/ipfs_cmd_${2}.txt" - dst="$TMPDIR/ipfs_cmd_${3}.txt" - desc="$4" - - log "Keep $desc" - egrep "$pattern" "$src" >"$dst" -} - -grep_in '\Wipfs\W.*/ipfs/' echo slash_in1 "ipfs.*/ipfs/" -grep_in '/ipfs/.*\Wipfs\W' echo slash_in2 "/ipfs/.*ipfs" - -grep_out '/ipfs/' echo slash "/ipfs/" - -grep_in '\Wipfs\W.*\.ipfs' slash dot_in1 "ipfs.*\.ipfs" -grep_in '\.ipfs.*\Wipfs\W' slash dot_in2 "\.ipfs.*ipfs" - -grep_out '\.ipfs' slash dot ".ipfs" - -log "Print result" -CMD_RES="$TMPDIR/ipfs_cmd_result.txt" -for f in dot slash_in1 slash_in2 dot_in1 dot_in2 -do - fname="$TMPDIR/ipfs_cmd_${f}.txt" - cat "$fname" || die "Could not cat '$fname'" -done | sort | uniq >"$CMD_RES" || die "Could not write '$CMD_RES'" - -log "Get all the ipfs commands from 'ipfs commands'" -CMD_CMDS="$TMPDIR/commands.txt" -ipfs commands --flags >"$CMD_CMDS" || die "'ipfs commands' failed" - -# Portable function to reverse lines in a file -reverse() { - if type tac >/dev/null - then - tac "$@" - else - tail -r "$@" - fi -} - -log "Match the test line commands with the commands they use" -GLOBAL_REV="$TMPDIR/global_results_reversed.txt" - -process_command() { - ipfs="$1" - cmd="$2" - sub1="$3" - sub2="$4" - sub3="$5" - - if test -n "$cmd" - then - CMD_OUT="$TMPDIR/res_${ipfs}_${cmd}" - PATTERN="$ipfs(\W.*)*\W$cmd" - NAME="$ipfs $cmd" - - if test -n "$sub1" - then - CMD_OUT="${CMD_OUT}_${sub1}" - PATTERN="$PATTERN(\W.*)*\W$sub1" - NAME="$NAME $sub1" - - if test -n "$sub2" - then - CMD_OUT="${CMD_OUT}_${sub2}" - PATTERN="$PATTERN(\W.*)*\W$sub2" - NAME="$NAME $sub2" - - if test -n "$sub3" - then - CMD_OUT="${CMD_OUT}_${sub3}" - PATTERN="$PATTERN(\W.*)*\W$sub3" - NAME="$NAME $sub3" - fi - fi - fi - - egrep "$PATTERN" "$CMD_RES" >"$CMD_OUT.txt" - reverse "$CMD_OUT.txt" | sed -e 's/^sharness\///' | cut -d- -f1 | uniq -c >>"$GLOBAL_REV" - fi -} - -reverse "$CMD_CMDS" | while read -r line -do - LONG_CMD=$(echo "$line" | cut -d/ -f1) - SHORT_CMD=$(expr "$line" : "[^/]*/*\(.*\)") - - log "Processing $LONG_CMD" - process_command $LONG_CMD - LONG_NAME="$NAME" - - log "Processing $SHORT_CMD" - process_command $SHORT_CMD - SHORT_NAME="$NAME" - - test -n "$SHORT_CMD" && echo "$SHORT_NAME" >>"$GLOBAL_REV" - test "$LONG_CMD" != "ipfs" && echo "$LONG_NAME" >>"$GLOBAL_REV" - echo >>"$GLOBAL_REV" -done - -# The following will allow us to check that -# we are properly excuding enough stuff using: -# diff -u ipfs_cmd_result.txt cmd_found.txt -log "Get all the line commands that matched" -CMD_FOUND="$TMPDIR/cmd_found.txt" -cat $TMPDIR/res_*.txt | sort -n | uniq >"$CMD_FOUND" - -log "Print results" -reverse "$GLOBAL_REV" - -# Remove temp directory... diff --git a/vendor/github.com/ipfs/go-ipfs/test/unit/.gitignore b/vendor/github.com/ipfs/go-ipfs/test/unit/.gitignore deleted file mode 100644 index fdb9a985..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/unit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -gotest.json -gotest.junit.xml diff --git a/vendor/github.com/ipfs/go-ipfs/test/unit/Rules.mk b/vendor/github.com/ipfs/go-ipfs/test/unit/Rules.mk deleted file mode 100644 index 7300aabd..00000000 --- a/vendor/github.com/ipfs/go-ipfs/test/unit/Rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -include mk/header.mk - -CLEAN += $(d)/gotest.json $(d)/gotest.junit.xml - -$(d)/gotest.junit.xml: clean test/bin/json-to-junit coverage/unit_tests.coverprofile - cat $(@D)/gotest.json | json-to-junit > $(@D)/gotest.junit.xml - -include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/README.md b/vendor/github.com/ipfs/go-ipfs/thirdparty/README.md deleted file mode 100644 index 554a07fe..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/README.md +++ /dev/null @@ -1,5 +0,0 @@ -thirdparty consists of Golang packages that contain no go-ipfs dependencies and -may be vendored ipfs/go-ipfs at a later date. - -packages in under this directory _must not_ import packages under -`ipfs/go-ipfs` that are not also under `thirdparty`. diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/assert/assert.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/assert/assert.go deleted file mode 100644 index f737d191..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/assert/assert.go +++ /dev/null @@ -1,25 +0,0 @@ -package assert - -import "testing" - -func Nil(err error, t *testing.T, msgs ...string) { - if err != nil { - t.Fatal(msgs, "error:", err) - } -} - -func True(v bool, t *testing.T, msgs ...string) { - if !v { - t.Fatal(msgs) - } -} - -func False(v bool, t *testing.T, msgs ...string) { - True(!v, t, msgs...) -} - -func Err(err error, t *testing.T, msgs ...string) { - if err == nil { - t.Fatal(msgs, "error:", err) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/cidv0v1/blockstore.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/cidv0v1/blockstore.go index d59051ba..2f098dff 100644 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/cidv0v1/blockstore.go +++ b/vendor/github.com/ipfs/go-ipfs/thirdparty/cidv0v1/blockstore.go @@ -1,10 +1,10 @@ package cidv0v1 import ( - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - bs "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - mh "gx/ipfs/QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW/go-multihash" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + bs "github.com/ipfs/go-ipfs-blockstore" + mh "github.com/multiformats/go-multihash" ) type blockstore struct { diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier.go deleted file mode 100644 index a37f83d0..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier.go +++ /dev/null @@ -1,146 +0,0 @@ -// Package notifier provides a simple notification dispatcher -// meant to be embedded in larger structres who wish to allow -// clients to sign up for event notifications. -package notifier - -import ( - "sync" - - process "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess" - ratelimit "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/ratelimit" -) - -// Notifiee is a generic interface. Clients implement -// their own Notifiee interfaces to ensure type-safety -// of notifications: -// -// type RocketNotifiee interface{ -// Countdown(r Rocket, countdown time.Duration) -// LiftedOff(Rocket) -// ReachedOrbit(Rocket) -// Detached(Rocket, Capsule) -// Landed(Rocket) -// } -// -type Notifiee interface{} - -// Notifier is a notification dispatcher. It's meant -// to be composed, and its zero-value is ready to be used. -// -// type Rocket struct { -// notifier notifier.Notifier -// } -// -type Notifier struct { - mu sync.RWMutex // guards notifiees - nots map[Notifiee]struct{} - lim *ratelimit.RateLimiter -} - -// RateLimited returns a rate limited Notifier. only limit goroutines -// will be spawned. If limit is zero, no rate limiting happens. This -// is the same as `Notifier{}`. -func RateLimited(limit int) *Notifier { - n := &Notifier{} - if limit > 0 { - n.lim = ratelimit.NewRateLimiter(process.Background(), limit) - } - return n -} - -// Notify signs up Notifiee e for notifications. This function -// is meant to be called behind your own type-safe function(s): -// -// // generic function for pattern-following -// func (r *Rocket) Notify(n Notifiee) { -// r.notifier.Notify(n) -// } -// -// // or as part of other functions -// func (r *Rocket) Onboard(a Astronaut) { -// r.astronauts = append(r.austronauts, a) -// r.notifier.Notify(a) -// } -// -func (n *Notifier) Notify(e Notifiee) { - n.mu.Lock() - if n.nots == nil { // so that zero-value is ready to be used. - n.nots = make(map[Notifiee]struct{}) - } - n.nots[e] = struct{}{} - n.mu.Unlock() -} - -// StopNotify stops notifying Notifiee e. This function -// is meant to be called behind your own type-safe function(s): -// -// // generic function for pattern-following -// func (r *Rocket) StopNotify(n Notifiee) { -// r.notifier.StopNotify(n) -// } -// -// // or as part of other functions -// func (r *Rocket) Detach(c Capsule) { -// r.notifier.StopNotify(c) -// r.capsule = nil -// } -// -func (n *Notifier) StopNotify(e Notifiee) { - n.mu.Lock() - if n.nots != nil { // so that zero-value is ready to be used. - delete(n.nots, e) - } - n.mu.Unlock() -} - -// NotifyAll messages the notifier's notifiees with a given notification. -// This is done by calling the given function with each notifiee. It is -// meant to be called with your own type-safe notification functions: -// -// func (r *Rocket) Launch() { -// r.notifyAll(func(n Notifiee) { -// n.Launched(r) -// }) -// } -// -// // make it private so only you can use it. This function is necessary -// // to make sure you only up-cast in one place. You control who you added -// // to be a notifiee. If Go adds generics, maybe we can get rid of this -// // method but for now it is like wrapping a type-less container with -// // a type safe interface. -// func (r *Rocket) notifyAll(notify func(Notifiee)) { -// r.notifier.NotifyAll(func(n notifier.Notifiee) { -// notify(n.(Notifiee)) -// }) -// } -// -// Note well: each notification is launched in its own goroutine, so they -// can be processed concurrently, and so that whatever the notification does -// it _never_ blocks out the client. This is so that consumers _cannot_ add -// hooks into your object that block you accidentally. -func (n *Notifier) NotifyAll(notify func(Notifiee)) { - n.mu.Lock() - defer n.mu.Unlock() - - if n.nots == nil { // so that zero-value is ready to be used. - return - } - - // no rate limiting. - if n.lim == nil { - for notifiee := range n.nots { - go notify(notifiee) - } - return - } - - // with rate limiting. - n.lim.Go(func(worker process.Process) { - for notifiee := range n.nots { - notifiee := notifiee // rebind for loop data races - n.lim.LimitedGo(func(worker process.Process) { - notify(notifiee) - }) - } - }) -} diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier_test.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier_test.go deleted file mode 100644 index 9b9692ef..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/notifier/notifier_test.go +++ /dev/null @@ -1,291 +0,0 @@ -package notifier - -import ( - "fmt" - "sync" - "testing" - "time" -) - -// test data structures -type Router struct { - queue chan Packet - notifier Notifier -} - -type Packet struct{} - -type RouterNotifiee interface { - Enqueued(*Router, Packet) - Forwarded(*Router, Packet) - Dropped(*Router, Packet) -} - -func (r *Router) Notify(n RouterNotifiee) { - r.notifier.Notify(n) -} - -func (r *Router) StopNotify(n RouterNotifiee) { - r.notifier.StopNotify(n) -} - -func (r *Router) notifyAll(notify func(n RouterNotifiee)) { - r.notifier.NotifyAll(func(n Notifiee) { - notify(n.(RouterNotifiee)) - }) -} - -func (r *Router) Receive(p Packet) { - - select { - case r.queue <- p: // enqueued - r.notifyAll(func(n RouterNotifiee) { - n.Enqueued(r, p) - }) - - default: // drop - r.notifyAll(func(n RouterNotifiee) { - n.Dropped(r, p) - }) - } -} - -func (r *Router) Forward() { - p := <-r.queue - r.notifyAll(func(n RouterNotifiee) { - n.Forwarded(r, p) - }) -} - -type Metrics struct { - enqueued int - forwarded int - dropped int - received chan struct{} - sync.Mutex -} - -func (m *Metrics) Enqueued(*Router, Packet) { - m.Lock() - m.enqueued++ - m.Unlock() - if m.received != nil { - m.received <- struct{}{} - } -} - -func (m *Metrics) Forwarded(*Router, Packet) { - m.Lock() - m.forwarded++ - m.Unlock() - if m.received != nil { - m.received <- struct{}{} - } -} - -func (m *Metrics) Dropped(*Router, Packet) { - m.Lock() - m.dropped++ - m.Unlock() - if m.received != nil { - m.received <- struct{}{} - } -} - -func (m *Metrics) String() string { - m.Lock() - defer m.Unlock() - return fmt.Sprintf("%d enqueued, %d forwarded, %d in queue, %d dropped", - m.enqueued, m.forwarded, m.enqueued-m.forwarded, m.dropped) -} - -func TestNotifies(t *testing.T) { - - m := Metrics{received: make(chan struct{})} - r := Router{queue: make(chan Packet, 10)} - r.Notify(&m) - - for i := 0; i < 10; i++ { - r.Receive(Packet{}) - <-m.received - if m.enqueued != (1 + i) { - t.Error("not notifying correctly", m.enqueued, 1+i) - } - - } - - for i := 0; i < 10; i++ { - r.Receive(Packet{}) - <-m.received - if m.enqueued != 10 { - t.Error("not notifying correctly", m.enqueued, 10) - } - if m.dropped != (1 + i) { - t.Error("not notifying correctly", m.dropped, 1+i) - } - } -} - -func TestStopsNotifying(t *testing.T) { - m := Metrics{received: make(chan struct{})} - r := Router{queue: make(chan Packet, 10)} - r.Notify(&m) - - for i := 0; i < 5; i++ { - r.Receive(Packet{}) - <-m.received - if m.enqueued != (1 + i) { - t.Error("not notifying correctly") - } - } - - r.StopNotify(&m) - - for i := 0; i < 5; i++ { - r.Receive(Packet{}) - select { - case <-m.received: - t.Error("did not stop notifying") - default: - } - if m.enqueued != 5 { - t.Error("did not stop notifying") - } - } -} - -func TestThreadsafe(t *testing.T) { - N := 1000 - r := Router{queue: make(chan Packet, 10)} - m1 := Metrics{received: make(chan struct{})} - m2 := Metrics{received: make(chan struct{})} - m3 := Metrics{received: make(chan struct{})} - r.Notify(&m1) - r.Notify(&m2) - r.Notify(&m3) - - var n int - var wg sync.WaitGroup - for i := 0; i < N; i++ { - n++ - wg.Add(1) - go func() { - defer wg.Done() - r.Receive(Packet{}) - }() - - if i%3 == 0 { - n++ - wg.Add(1) - go func() { - defer wg.Done() - r.Forward() - }() - } - } - - // drain queues - for i := 0; i < (n * 3); i++ { - select { - case <-m1.received: - case <-m2.received: - case <-m3.received: - } - } - - wg.Wait() - - // counts should be correct and all agree. and this should - // run fine under `go test -race -cpu=5` - - t.Log("m1", m1.String()) - t.Log("m2", m2.String()) - t.Log("m3", m3.String()) - - if m1.String() != m2.String() || m2.String() != m3.String() { - t.Error("counts disagree") - } -} - -type highwatermark struct { - mu sync.Mutex - mark int - limit int - errs chan error -} - -func (m *highwatermark) incr() { - m.mu.Lock() - m.mark++ - // fmt.Println("incr", m.mark) - if m.mark > m.limit { - m.errs <- fmt.Errorf("went over limit: %d/%d", m.mark, m.limit) - } - m.mu.Unlock() -} - -func (m *highwatermark) decr() { - m.mu.Lock() - m.mark-- - // fmt.Println("decr", m.mark) - if m.mark < 0 { - m.errs <- fmt.Errorf("went under zero: %d/%d", m.mark, m.limit) - } - m.mu.Unlock() -} - -func TestLimited(t *testing.T) { - timeout := 10 * time.Second // huge timeout. - limit := 9 - - hwm := highwatermark{limit: limit, errs: make(chan error, 100)} - n := RateLimited(limit) // will stop after 3 rounds - n.Notify(1) - n.Notify(2) - n.Notify(3) - - entr := make(chan struct{}) - exit := make(chan struct{}) - done := make(chan struct{}) - go func() { - for i := 0; i < 10; i++ { - // fmt.Printf("round: %d\n", i) - n.NotifyAll(func(e Notifiee) { - hwm.incr() - entr <- struct{}{} - <-exit // wait - hwm.decr() - }) - } - done <- struct{}{} - }() - - for i := 0; i < 30; { - select { - case <-entr: - continue // let as many enter as possible - case <-time.After(1 * time.Millisecond): - } - - // let one exit - select { - case <-entr: - continue // in case of timing issues. - case exit <- struct{}{}: - case <-time.After(timeout): - t.Error("got stuck") - } - i++ - } - - select { - case <-done: // two parts done - case <-time.After(timeout): - t.Error("did not finish") - } - - close(hwm.errs) - for err := range hwm.errs { - t.Error(err) - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/pollEndpoint/main.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/pollEndpoint/main.go deleted file mode 100644 index 6df46fd6..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/pollEndpoint/main.go +++ /dev/null @@ -1,88 +0,0 @@ -// pollEndpoint is a helper utility that waits for a http endpoint to be reachable and return with http.StatusOK -package main - -import ( - "flag" - "fmt" - "io/ioutil" - "net/http" - "net/url" - "os" - "time" - - ma "gx/ipfs/QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL/go-multiaddr" - logging "gx/ipfs/QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF/go-log" - manet "gx/ipfs/Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip/go-multiaddr-net" -) - -var ( - host = flag.String("host", "/ip4/127.0.0.1/tcp/5001", "the multiaddr host to dial on") - endpoint = flag.String("ep", "/version", "which http endpoint path to hit") - tries = flag.Int("tries", 10, "how many tries to make before failing") - timeout = flag.Duration("tout", time.Second, "how long to wait between attempts") - verbose = flag.Bool("v", false, "verbose logging") -) - -var log = logging.Logger("pollEndpoint") - -func main() { - flag.Parse() - - // extract address from host flag - addr, err := ma.NewMultiaddr(*host) - if err != nil { - log.Fatal("NewMultiaddr() failed: ", err) - } - p := addr.Protocols() - if len(p) < 2 { - log.Fatal("need two protocols in host flag (/ip/tcp): ", addr) - } - _, host, err := manet.DialArgs(addr) - if err != nil { - log.Fatal("manet.DialArgs() failed: ", err) - } - - if *verbose { // lower log level - logging.SetDebugLogging() - } - - // construct url to dial - var u url.URL - u.Scheme = "http" - u.Host = host - u.Path = *endpoint - - // show what we got - start := time.Now() - log.Debugf("starting at %s, tries: %d, timeout: %s, url: %s", start, *tries, *timeout, u) - - for *tries > 0 { - - err := checkOK(http.Get(u.String())) - if err == nil { - log.Debugf("ok - endpoint reachable with %d tries remaining, took %s", *tries, time.Since(start)) - os.Exit(0) - } - log.Debug("get failed: ", err) - time.Sleep(*timeout) - *tries-- - } - - log.Error("failed.") - os.Exit(1) -} - -func checkOK(resp *http.Response, err error) error { - if err == nil { // request worked - defer resp.Body.Close() - if resp.StatusCode == http.StatusOK { - return nil - } - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - fmt.Fprintf(os.Stderr, "pollEndpoint: ioutil.ReadAll() Error: %s", err) - } - return fmt.Errorf("response not OK. %d %s %q", resp.StatusCode, resp.Status, string(body)) - } - return err -} diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit.go deleted file mode 100644 index feeaa42b..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit.go +++ /dev/null @@ -1,46 +0,0 @@ -package unit - -import "fmt" - -type Information int64 - -const ( - _ Information = iota // ignore first value by assigning to blank identifier - KB = 1 << (10 * iota) - MB - GB - TB - PB - EB -) - -func (i Information) String() string { - - tmp := int64(i) - - // default - var d = tmp - symbol := "B" - - switch { - case i > EB: - d = tmp / EB - symbol = "EB" - case i > PB: - d = tmp / PB - symbol = "PB" - case i > TB: - d = tmp / TB - symbol = "TB" - case i > GB: - d = tmp / GB - symbol = "GB" - case i > MB: - d = tmp / MB - symbol = "MB" - case i > KB: - d = tmp / KB - symbol = "KB" - } - return fmt.Sprintf("%d %s", d, symbol) -} diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit_test.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit_test.go deleted file mode 100644 index 9712257d..00000000 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/unit/unit_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package unit - -import "testing" - -// and the award for most meta goes to... - -func TestByteSizeUnit(t *testing.T) { - if 1*KB != 1*1024 { - t.Fatal(1 * KB) - } - if 1*MB != 1*1024*1024 { - t.Fail() - } - if 1*GB != 1*1024*1024*1024 { - t.Fail() - } - if 1*TB != 1*1024*1024*1024*1024 { - t.Fail() - } - if 1*PB != 1*1024*1024*1024*1024*1024 { - t.Fail() - } - if 1*EB != 1*1024*1024*1024*1024*1024*1024 { - t.Fail() - } -} diff --git a/vendor/github.com/ipfs/go-ipfs/thirdparty/verifbs/verifbs.go b/vendor/github.com/ipfs/go-ipfs/thirdparty/verifbs/verifbs.go index a443b451..53b6d13c 100644 --- a/vendor/github.com/ipfs/go-ipfs/thirdparty/verifbs/verifbs.go +++ b/vendor/github.com/ipfs/go-ipfs/thirdparty/verifbs/verifbs.go @@ -1,10 +1,10 @@ package verifbs import ( - cid "gx/ipfs/QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN/go-cid" - bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore" - blocks "gx/ipfs/QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK/go-block-format" - "gx/ipfs/QmcVd2ApQdbfaYPKhCjj4WoQuxk4CMxPqmNpijKmFLh6qa/go-verifcid" + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + bstore "github.com/ipfs/go-ipfs-blockstore" + "github.com/ipfs/go-verifcid" ) type VerifBSGC struct { diff --git a/vendor/github.com/ipfs/go-ipfs/version.go b/vendor/github.com/ipfs/go-ipfs/version.go index c9270c20..c62c5847 100644 --- a/vendor/github.com/ipfs/go-ipfs/version.go +++ b/vendor/github.com/ipfs/go-ipfs/version.go @@ -4,6 +4,6 @@ package ipfs var CurrentCommit string // CurrentVersionNumber is the current application's version literal -const CurrentVersionNumber = "0.4.19" +const CurrentVersionNumber = "0.4.20" const ApiVersion = "/go-ipfs/" + CurrentVersionNumber + "/" diff --git a/vendor/github.com/ipfs/go-ipld-cbor/.travis.yml b/vendor/github.com/ipfs/go-ipld-cbor/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipld-cbor/LICENSE b/vendor/github.com/ipfs/go-ipld-cbor/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipld-cbor/Makefile b/vendor/github.com/ipfs/go-ipld-cbor/Makefile new file mode 100644 index 00000000..7811c099 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/Makefile @@ -0,0 +1,15 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +covertools: + go get github.com/mattn/goveralls + go get golang.org/x/tools/cmd/cover + +deps: gx covertools + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-ipld-cbor/README.md b/vendor/github.com/ipfs/go-ipld-cbor/README.md new file mode 100644 index 00000000..0cec10cc --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/README.md @@ -0,0 +1,54 @@ +go-ipld-cbor +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/js-libp2p-floodsub/badge.svg?branch=master)](https://coveralls.io/github/libp2p/js-libp2p-floodsub?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/js-libp2p-floodsub.svg?branch=master)](https://travis-ci.org/libp2p/js-libp2p-floodsub) + +> An implementation of a cbor encoded merkledag object. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Usage + +TODO: Right now this package isn't the easiest to use, it will be getting better rapidly, soon. +```go +// Make an object +obj := map[interface{}]interface{}{ + "foo": "bar", + "baz": &Link{ + Target: myCid, + }, +} + +// Parse it into an ipldcbor node +nd, err := WrapMap(obj) + +fmt.Println(nd.Links()) + +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/ipfs/go-ipld-cbor/codecov.yml b/vendor/github.com/ipfs/go-ipld-cbor/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-ipld-cbor/encoding/cloner.go b/vendor/github.com/ipfs/go-ipld-cbor/encoding/cloner.go new file mode 100644 index 00000000..0a04a3c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/encoding/cloner.go @@ -0,0 +1,33 @@ +package encoding + +import ( + "sync" + + refmt "github.com/polydawn/refmt" + "github.com/polydawn/refmt/obj/atlas" +) + +// PooledCloner is a thread-safe pooled object cloner. +type PooledCloner struct { + pool sync.Pool +} + +// NewPooledCloner returns a PooledCloner with the given atlas. Do not copy +// after use. +func NewPooledCloner(atl atlas.Atlas) PooledCloner { + return PooledCloner{ + pool: sync.Pool{ + New: func() interface{} { + return refmt.NewCloner(atl) + }, + }, + } +} + +// Clone clones a into b using a cloner from the pool. +func (p *PooledCloner) Clone(a, b interface{}) error { + c := p.pool.Get().(refmt.Cloner) + err := c.Clone(a, b) + p.pool.Put(c) + return err +} diff --git a/vendor/github.com/ipfs/go-ipld-cbor/encoding/marshaller.go b/vendor/github.com/ipfs/go-ipld-cbor/encoding/marshaller.go new file mode 100644 index 00000000..f4fe84be --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/encoding/marshaller.go @@ -0,0 +1,82 @@ +package encoding + +import ( + "bytes" + "io" + "sync" + + cbor "github.com/polydawn/refmt/cbor" + "github.com/polydawn/refmt/obj/atlas" +) + +type proxyWriter struct { + w io.Writer +} + +func (w *proxyWriter) Write(b []byte) (int, error) { + return w.w.Write(b) +} + +// Marshaller is a reusbale CBOR marshaller. +type Marshaller struct { + marshal *cbor.Marshaller + writer proxyWriter +} + +// NewMarshallerAtlased constructs a new cbor Marshaller using the given atlas. +func NewMarshallerAtlased(atl atlas.Atlas) *Marshaller { + m := new(Marshaller) + m.marshal = cbor.NewMarshallerAtlased(&m.writer, atl) + return m +} + +// Encode encodes the given object to the given writer. +func (m *Marshaller) Encode(obj interface{}, w io.Writer) error { + m.writer.w = w + err := m.marshal.Marshal(obj) + m.writer.w = nil + return err +} + +// Marshal marshels the given object to a byte slice. +func (m *Marshaller) Marshal(obj interface{}) ([]byte, error) { + var buf bytes.Buffer + if err := m.Encode(obj, &buf); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +// PooledMarshaller is a thread-safe pooled CBOR marshaller. +type PooledMarshaller struct { + pool sync.Pool +} + +// NewPooledMarshaller returns a PooledMarshaller with the given atlas. Do not +// copy after use. +func NewPooledMarshaller(atl atlas.Atlas) PooledMarshaller { + return PooledMarshaller{ + pool: sync.Pool{ + New: func() interface{} { + return NewMarshallerAtlased(atl) + }, + }, + } +} + +// Marshal marshals the passed object using the pool of marshallers. +func (p *PooledMarshaller) Marshal(obj interface{}) ([]byte, error) { + m := p.pool.Get().(*Marshaller) + bts, err := m.Marshal(obj) + p.pool.Put(m) + return bts, err +} + +// Encode encodes the passed object to the given writer using the pool of +// marshallers. +func (p *PooledMarshaller) Encode(obj interface{}, w io.Writer) error { + m := p.pool.Get().(*Marshaller) + err := m.Encode(obj, w) + p.pool.Put(m) + return err +} diff --git a/vendor/github.com/ipfs/go-ipld-cbor/encoding/unmarshaller.go b/vendor/github.com/ipfs/go-ipld-cbor/encoding/unmarshaller.go new file mode 100644 index 00000000..2561dd79 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/encoding/unmarshaller.go @@ -0,0 +1,79 @@ +package encoding + +import ( + "bytes" + "io" + "sync" + + cbor "github.com/polydawn/refmt/cbor" + "github.com/polydawn/refmt/obj/atlas" +) + +type proxyReader struct { + r io.Reader +} + +func (r *proxyReader) Read(b []byte) (int, error) { + return r.r.Read(b) +} + +// Unmarshaller is a reusable CBOR unmarshaller. +type Unmarshaller struct { + unmarshal *cbor.Unmarshaller + reader proxyReader +} + +// NewUnmarshallerAtlased creates a new reusable unmarshaller. +func NewUnmarshallerAtlased(atl atlas.Atlas) *Unmarshaller { + m := new(Unmarshaller) + m.unmarshal = cbor.NewUnmarshallerAtlased(cbor.DecodeOptions{CoerceUndefToNull: true}, &m.reader, atl) + return m +} + +// Decode reads a CBOR object from the given reader and decodes it into the +// given object. +func (m *Unmarshaller) Decode(r io.Reader, obj interface{}) error { + m.reader.r = r + err := m.unmarshal.Unmarshal(obj) + m.reader.r = nil + return err +} + +// Unmarshal unmarshals the given CBOR byte slice into the given object. +func (m *Unmarshaller) Unmarshal(b []byte, obj interface{}) error { + return m.Decode(bytes.NewReader(b), obj) +} + +// PooledUnmarshaller is a thread-safe pooled CBOR unmarshaller. +type PooledUnmarshaller struct { + pool sync.Pool +} + +// NewPooledUnmarshaller returns a PooledUnmarshaller with the given atlas. Do +// not copy after use. +func NewPooledUnmarshaller(atl atlas.Atlas) PooledUnmarshaller { + return PooledUnmarshaller{ + pool: sync.Pool{ + New: func() interface{} { + return NewUnmarshallerAtlased(atl) + }, + }, + } +} + +// Decode decodes an object from the passed reader into the given object using +// the pool of unmarshallers. +func (p *PooledUnmarshaller) Decode(r io.Reader, obj interface{}) error { + u := p.pool.Get().(*Unmarshaller) + err := u.Decode(r, obj) + p.pool.Put(u) + return err +} + +// Unmarshal unmarshals the passed object using the pool of unmarshallers. +func (p *PooledUnmarshaller) Unmarshal(b []byte, obj interface{}) error { + u := p.pool.Get().(*Unmarshaller) + err := u.Unmarshal(b, obj) + p.pool.Put(u) + return err +} diff --git a/vendor/github.com/ipfs/go-ipld-cbor/go.mod b/vendor/github.com/ipfs/go-ipld-cbor/go.mod new file mode 100644 index 00000000..f59ae5f6 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/go.mod @@ -0,0 +1,12 @@ +module github.com/ipfs/go-ipld-cbor + +require ( + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/multiformats/go-multihash v0.0.1 + github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 + github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa // indirect + github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 // indirect +) diff --git a/vendor/github.com/ipfs/go-ipld-cbor/go.sum b/vendor/github.com/ipfs/go-ipld-cbor/go.sum new file mode 100644 index 00000000..6591da4b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/go.sum @@ -0,0 +1,40 @@ +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-ipld-cbor/node.go b/vendor/github.com/ipfs/go-ipld-cbor/node.go new file mode 100644 index 00000000..4a30cc3a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/node.go @@ -0,0 +1,541 @@ +package cbornode + +import ( + "encoding/json" + "errors" + "io" + "math" + "strconv" + "strings" + + blocks "github.com/ipfs/go-block-format" + cid "github.com/ipfs/go-cid" + node "github.com/ipfs/go-ipld-format" + mh "github.com/multiformats/go-multihash" +) + +// CBORTagLink is the integer used to represent tags in CBOR. +const CBORTagLink = 42 + +// Node represents an IPLD node. +type Node struct { + obj interface{} + tree []string + links []*node.Link + raw []byte + cid cid.Cid +} + +// Compile time check to make sure Node implements the node.Node interface +var _ node.Node = (*Node)(nil) + +var ( + // ErrNoSuchLink is returned when no link with the given name was found. + ErrNoSuchLink = errors.New("no such link found") + ErrNonLink = errors.New("non-link found at given path") + ErrInvalidLink = errors.New("link value should have been bytes") + ErrInvalidKeys = errors.New("map keys must be strings") + ErrArrayOutOfRange = errors.New("array index out of range") + ErrNoLinks = errors.New("tried to resolve through object that had no links") + ErrEmptyLink = errors.New("link value was empty") + ErrInvalidMultibase = errors.New("invalid multibase on IPLD link") + ErrNonStringLink = errors.New("link should have been a string") +) + +// DecodeBlock decodes a CBOR encoded Block into an IPLD Node. +// +// This method *does not* canonicalize and *will* preserve the CID. As a matter +// of fact, it will assume that `block.Cid()` returns the correct CID and will +// make no effort to validate this assumption. +// +// In general, you should not be calling this method directly. Instead, you +// should be calling the `Decode` method from the `go-ipld-format` package. That +// method will pick the right decoder based on the Block's CID. +// +// Note: This function keeps a reference to `block` and assumes that it is +// immutable. +func DecodeBlock(block blocks.Block) (node.Node, error) { + return decodeBlock(block) +} + +func decodeBlock(block blocks.Block) (*Node, error) { + var m interface{} + if err := DecodeInto(block.RawData(), &m); err != nil { + return nil, err + } + return newObject(block, m) +} + +func newObject(block blocks.Block, m interface{}) (*Node, error) { + tree, links, err := compute(m) + if err != nil { + return nil, err + } + + return &Node{ + obj: m, + tree: tree, + links: links, + raw: block.RawData(), + cid: block.Cid(), + }, nil +} + +var _ node.DecodeBlockFunc = DecodeBlock + +// Decode decodes a CBOR object into an IPLD Node. +// +// If passed a non-canonical CBOR node, this function will canonicalize it. +// Therefore, `bytes.Equal(b, Decode(b).RawData())` may not hold. If you already +// have a CID for this data and want to ensure that it doesn't change, you +// should use `DecodeBlock`. +// mhType is multihash code to use for hashing, for example mh.SHA2_256 +// +// Note: This function does not hold onto `b`. You may reuse it. +func Decode(b []byte, mhType uint64, mhLen int) (*Node, error) { + var m interface{} + if err := DecodeInto(b, &m); err != nil { + return nil, err + } + + // We throw away `b` here to ensure that we canonicalize the encoded + // CBOR object. + return WrapObject(m, mhType, mhLen) +} + +// DecodeInto decodes a serialized IPLD cbor object into the given object. +func DecodeInto(b []byte, v interface{}) error { + return unmarshaller.Unmarshal(b, v) +} + +// WrapObject converts an arbitrary object into a Node. +func WrapObject(m interface{}, mhType uint64, mhLen int) (*Node, error) { + data, err := marshaller.Marshal(m) + if err != nil { + return nil, err + } + + var obj interface{} + err = cloner.Clone(m, &obj) + if err != nil { + return nil, err + } + + if mhType == math.MaxUint64 { + mhType = mh.SHA2_256 + } + + hash, err := mh.Sum(data, mhType, mhLen) + if err != nil { + return nil, err + } + c := cid.NewCidV1(cid.DagCBOR, hash) + + block, err := blocks.NewBlockWithCid(data, c) + if err != nil { + // TODO: Shouldn't this just panic? + return nil, err + } + // No need to deserialize. We can just deep copy. + return newObject(block, obj) +} + +// Resolve resolves a given path, and returns the object found at the end, as well +// as the possible tail of the path that was not resolved. +func (n *Node) Resolve(path []string) (interface{}, []string, error) { + var cur interface{} = n.obj + for i, val := range path { + switch curv := cur.(type) { + case map[string]interface{}: + next, ok := curv[val] + if !ok { + return nil, nil, ErrNoSuchLink + } + + cur = next + case map[interface{}]interface{}: + next, ok := curv[val] + if !ok { + return nil, nil, ErrNoSuchLink + } + + cur = next + case []interface{}: + n, err := strconv.Atoi(val) + if err != nil { + return nil, nil, err + } + + if n < 0 || n >= len(curv) { + return nil, nil, ErrArrayOutOfRange + } + + cur = curv[n] + case cid.Cid: + return &node.Link{Cid: curv}, path[i:], nil + default: + return nil, nil, ErrNoLinks + } + } + + lnk, ok := cur.(cid.Cid) + if ok { + return &node.Link{Cid: lnk}, nil, nil + } + + jsonish, err := convertToJSONIsh(cur) + if err != nil { + return nil, nil, err + } + + return jsonish, nil, nil +} + +// Copy creates a copy of the Node. +func (n *Node) Copy() node.Node { + links := make([]*node.Link, len(n.links)) + copy(links, n.links) + + raw := make([]byte, len(n.raw)) + copy(raw, n.raw) + + tree := make([]string, len(n.tree)) + copy(tree, n.tree) + + return &Node{ + obj: copyObj(n.obj), + links: links, + raw: raw, + tree: tree, + cid: n.cid, + } +} + +func copyObj(i interface{}) interface{} { + switch i := i.(type) { + case map[string]interface{}: + out := make(map[string]interface{}) + for k, v := range i { + out[k] = copyObj(v) + } + return out + case map[interface{}]interface{}: + out := make(map[interface{}]interface{}) + for k, v := range i { + out[k] = copyObj(v) + } + return out + case []interface{}: + var out []interface{} + for _, v := range i { + out = append(out, copyObj(v)) + } + return out + default: + // TODO: do not be lazy + // being lazy for now + // use caution + return i + } +} + +// ResolveLink resolves a path and returns the raw Link at the end, as well as +// the possible tail of the path that was not resolved. +func (n *Node) ResolveLink(path []string) (*node.Link, []string, error) { + obj, rest, err := n.Resolve(path) + if err != nil { + return nil, nil, err + } + + lnk, ok := obj.(*node.Link) + if !ok { + return nil, rest, ErrNonLink + } + + return lnk, rest, nil +} + +// Tree returns a flattend array of paths at the given path for the given depth. +func (n *Node) Tree(path string, depth int) []string { + if path == "" && depth == -1 { + return n.tree + } + + var out []string + for _, t := range n.tree { + if !strings.HasPrefix(t, path) { + continue + } + + sub := strings.TrimLeft(t[len(path):], "/") + if sub == "" { + continue + } + + if depth < 0 { + out = append(out, sub) + continue + } + + parts := strings.Split(sub, "/") + if len(parts) <= depth { + out = append(out, sub) + } + } + return out +} + +func compute(obj interface{}) (tree []string, links []*node.Link, err error) { + err = traverse(obj, "", func(name string, val interface{}) error { + if name != "" { + tree = append(tree, name[1:]) + } + if lnk, ok := val.(cid.Cid); ok { + links = append(links, &node.Link{Cid: lnk}) + } + return nil + }) + if err != nil { + return nil, nil, err + } + + return tree, links, nil +} + +// Links lists all known links of the Node. +func (n *Node) Links() []*node.Link { + return n.links +} + +func traverse(obj interface{}, cur string, cb func(string, interface{}) error) error { + if err := cb(cur, obj); err != nil { + return err + } + + switch obj := obj.(type) { + case map[string]interface{}: + for k, v := range obj { + this := cur + "/" + k + if err := traverse(v, this, cb); err != nil { + return err + } + } + return nil + case map[interface{}]interface{}: + for k, v := range obj { + ks, ok := k.(string) + if !ok { + return errors.New("map key was not a string") + } + this := cur + "/" + ks + if err := traverse(v, this, cb); err != nil { + return err + } + } + return nil + case []interface{}: + for i, v := range obj { + this := cur + "/" + strconv.Itoa(i) + if err := traverse(v, this, cb); err != nil { + return err + } + } + return nil + default: + return nil + } +} + +// RawData returns the raw bytes that represent the Node as serialized CBOR. +func (n *Node) RawData() []byte { + return n.raw +} + +// Cid returns the canonical Cid of the NOde. +func (n *Node) Cid() cid.Cid { + return n.cid +} + +// Loggable returns a loggable representation of the Node. +func (n *Node) Loggable() map[string]interface{} { + return map[string]interface{}{ + "node_type": "cbor", + "cid": n.Cid(), + } +} + +// Size returns the size of the binary representation of the Node. +func (n *Node) Size() (uint64, error) { + return uint64(len(n.RawData())), nil +} + +// Stat returns stats about the Node. +// TODO: implement? +func (n *Node) Stat() (*node.NodeStat, error) { + return &node.NodeStat{}, nil +} + +// String returns the string representation of the CID of the Node. +func (n *Node) String() string { + return n.Cid().String() +} + +// MarshalJSON converts the Node into its JSON representation. +func (n *Node) MarshalJSON() ([]byte, error) { + out, err := convertToJSONIsh(n.obj) + if err != nil { + return nil, err + } + + return json.Marshal(out) +} + +// DumpObject marshals any object into its CBOR serialized byte representation +// TODO: rename +func DumpObject(obj interface{}) (out []byte, err error) { + return marshaller.Marshal(obj) +} + +func toSaneMap(n map[interface{}]interface{}) (interface{}, error) { + if lnk, ok := n["/"]; ok && len(n) == 1 { + lnkb, ok := lnk.([]byte) + if !ok { + return nil, ErrInvalidLink + } + + c, err := cid.Cast(lnkb) + if err != nil { + return nil, err + } + + return map[string]interface{}{"/": c}, nil + } + out := make(map[string]interface{}) + for k, v := range n { + ks, ok := k.(string) + if !ok { + return nil, ErrInvalidKeys + } + + obj, err := convertToJSONIsh(v) + if err != nil { + return nil, err + } + + out[ks] = obj + } + + return out, nil +} + +func convertToJSONIsh(v interface{}) (interface{}, error) { + switch v := v.(type) { + case map[interface{}]interface{}: + return toSaneMap(v) + case []interface{}: + var out []interface{} + if len(v) == 0 && v != nil { + return []interface{}{}, nil + } + for _, i := range v { + obj, err := convertToJSONIsh(i) + if err != nil { + return nil, err + } + + out = append(out, obj) + } + return out, nil + default: + return v, nil + } +} + +// FromJSON converts incoming JSON into a Node. +func FromJSON(r io.Reader, mhType uint64, mhLen int) (*Node, error) { + var m interface{} + err := json.NewDecoder(r).Decode(&m) + if err != nil { + return nil, err + } + + obj, err := convertToCborIshObj(m) + if err != nil { + return nil, err + } + + return WrapObject(obj, mhType, mhLen) +} + +func convertToCborIshObj(i interface{}) (interface{}, error) { + switch v := i.(type) { + case map[string]interface{}: + if len(v) == 0 && v != nil { + return v, nil + } + + if lnk, ok := v["/"]; ok && len(v) == 1 { + // special case for links + vstr, ok := lnk.(string) + if !ok { + return nil, ErrNonStringLink + } + + return cid.Decode(vstr) + } + + for a, b := range v { + val, err := convertToCborIshObj(b) + if err != nil { + return nil, err + } + + v[a] = val + } + return v, nil + case []interface{}: + if len(v) == 0 && v != nil { + return v, nil + } + + var out []interface{} + for _, o := range v { + obj, err := convertToCborIshObj(o) + if err != nil { + return nil, err + } + + out = append(out, obj) + } + + return out, nil + default: + return v, nil + } +} + +func castBytesToCid(x []byte) (cid.Cid, error) { + if len(x) == 0 { + return cid.Cid{}, ErrEmptyLink + } + + // TODO: manually doing multibase checking here since our deps don't + // support binary multibase yet + if x[0] != 0 { + return cid.Cid{}, ErrInvalidMultibase + } + + c, err := cid.Cast(x[1:]) + if err != nil { + return cid.Cid{}, ErrInvalidLink + } + + return c, nil +} + +func castCidToBytes(link cid.Cid) ([]byte, error) { + if !link.Defined() { + return nil, ErrEmptyLink + } + return append([]byte{0}, link.Bytes()...), nil +} diff --git a/vendor/github.com/ipfs/go-ipld-cbor/package.json b/vendor/github.com/ipfs/go-ipld-cbor/package.json new file mode 100644 index 00000000..8b19bc1f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/package.json @@ -0,0 +1,54 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/ipfs/go-ipld-cbor" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipld-cbor" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "why", + "hash": "QmdBzoMxsBpojBfN1cv5GnKtB7sfYBMoLH7p9qSyEVYXcu", + "name": "refmt", + "version": "1.2.1" + } + ], + "gxVersion": "0.10.0", + "language": "go", + "license": "MIT", + "name": "go-ipld-cbor", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.5.10" +} + diff --git a/vendor/github.com/ipfs/go-ipld-cbor/readable.go b/vendor/github.com/ipfs/go-ipld-cbor/readable.go new file mode 100644 index 00000000..cc9d03fa --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/readable.go @@ -0,0 +1,33 @@ +package cbornode + +import ( + "bufio" + "bytes" + + cbor "github.com/polydawn/refmt/cbor" + "github.com/polydawn/refmt/pretty" + "github.com/polydawn/refmt/shared" +) + +//HumanReadable returns a string representation of a CBOR blob +func HumanReadable(blob []byte) (string, error) { + reader := bytes.NewReader(blob) + + var buf bytes.Buffer + writer := bufio.NewWriter(&buf) + + err := shared.TokenPump{ + TokenSource: cbor.NewDecoder(cbor.DecodeOptions{}, reader), + TokenSink: pretty.NewEncoder(writer), + }.Run() + + if err != nil { + return "", err + } + + if err = writer.Flush(); err != nil { + return "", err + } + + return buf.String(), nil +} diff --git a/vendor/github.com/ipfs/go-ipld-cbor/refmt.go b/vendor/github.com/ipfs/go-ipld-cbor/refmt.go new file mode 100644 index 00000000..e8bd7ded --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-cbor/refmt.go @@ -0,0 +1,72 @@ +package cbornode + +import ( + "math/big" + + cid "github.com/ipfs/go-cid" + + encoding "github.com/ipfs/go-ipld-cbor/encoding" + + "github.com/polydawn/refmt/obj/atlas" +) + +// This atlas describes the CBOR Tag (42) for IPLD links, such that refmt can marshal and unmarshal them +var cidAtlasEntry = atlas.BuildEntry(cid.Cid{}). + UseTag(CBORTagLink). + Transform(). + TransformMarshal(atlas.MakeMarshalTransformFunc( + castCidToBytes, + )). + TransformUnmarshal(atlas.MakeUnmarshalTransformFunc( + castBytesToCid, + )). + Complete() + +// BigIntAtlasEntry gives a reasonable default encoding for big.Int. It is not +// included in the entries by default. +var BigIntAtlasEntry = atlas.BuildEntry(big.Int{}).Transform(). + TransformMarshal(atlas.MakeMarshalTransformFunc( + func(i big.Int) ([]byte, error) { + return i.Bytes(), nil + })). + TransformUnmarshal(atlas.MakeUnmarshalTransformFunc( + func(x []byte) (big.Int, error) { + return *big.NewInt(0).SetBytes(x), nil + })). + Complete() + +// CborAtlas is the refmt.Atlas used by the CBOR IPLD decoder/encoder. +var CborAtlas atlas.Atlas +var cborSortingMode = atlas.KeySortMode_RFC7049 +var atlasEntries = []*atlas.AtlasEntry{cidAtlasEntry} + +var ( + cloner encoding.PooledCloner + unmarshaller encoding.PooledUnmarshaller + marshaller encoding.PooledMarshaller +) + +func init() { + rebuildAtlas() +} + +func rebuildAtlas() { + CborAtlas = atlas.MustBuild(atlasEntries...). + WithMapMorphism(atlas.MapMorphism{KeySortMode: atlas.KeySortMode_RFC7049}) + + marshaller = encoding.NewPooledMarshaller(CborAtlas) + unmarshaller = encoding.NewPooledUnmarshaller(CborAtlas) + cloner = encoding.NewPooledCloner(CborAtlas) +} + +// RegisterCborType allows to register a custom cbor type +func RegisterCborType(i interface{}) { + var entry *atlas.AtlasEntry + if ae, ok := i.(*atlas.AtlasEntry); ok { + entry = ae + } else { + entry = atlas.BuildEntry(i).StructMap().AutogenerateWithSortingScheme(atlas.KeySortMode_RFC7049).Complete() + } + atlasEntries = append(atlasEntries, entry) + rebuildAtlas() +} diff --git a/vendor/github.com/ipfs/go-ipld-format/.travis.yml b/vendor/github.com/ipfs/go-ipld-format/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipld-format/LICENSE b/vendor/github.com/ipfs/go-ipld-format/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-ipld-format/Makefile b/vendor/github.com/ipfs/go-ipld-format/Makefile new file mode 100644 index 00000000..7811c099 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/Makefile @@ -0,0 +1,15 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +covertools: + go get github.com/mattn/goveralls + go get golang.org/x/tools/cmd/cover + +deps: gx covertools + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-ipld-format/README.md b/vendor/github.com/ipfs/go-ipld-format/README.md new file mode 100644 index 00000000..7a2ccffa --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/README.md @@ -0,0 +1,35 @@ +go-ipld-format +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-ipld-format/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-ipld-format/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-ipld-format.svg?branch=master)](https://travis-ci.org/ipfs/go-ipld-format) + +> go-ipld-format is a set of interfaces that a type needs to implement in order to be a part of the ipld merkle-forest. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/ipfs/go-ipld-format/batch.go b/vendor/github.com/ipfs/go-ipld-format/batch.go new file mode 100644 index 00000000..dc879d5f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/batch.go @@ -0,0 +1,295 @@ +package format + +import ( + "context" + "errors" + "runtime" + + cid "github.com/ipfs/go-cid" +) + +// ParallelBatchCommits is the number of batch commits that can be in-flight before blocking. +// TODO(ipfs/go-ipfs#4299): Experiment with multiple datastores, storage +// devices, and CPUs to find the right value/formula. +var ParallelBatchCommits = runtime.NumCPU() * 2 + +// ErrNotCommited is returned when closing a batch that hasn't been successfully +// committed. +var ErrNotCommited = errors.New("error: batch not commited") + +// ErrClosed is returned when operating on a batch that has already been closed. +var ErrClosed = errors.New("error: batch closed") + +// NewBatch returns a node buffer (Batch) that buffers nodes internally and +// commits them to the underlying DAGService in batches. Use this if you intend +// to add or remove a lot of nodes all at once. +// +// If the passed context is canceled, any in-progress commits are aborted. +// +func NewBatch(ctx context.Context, na NodeAdder, opts ...BatchOption) *Batch { + ctx, cancel := context.WithCancel(ctx) + bopts := defaultBatchOptions + for _, o := range opts { + o(&bopts) + } + return &Batch{ + na: na, + ctx: ctx, + cancel: cancel, + commitResults: make(chan error, ParallelBatchCommits), + opts: bopts, + } +} + +// Batch is a buffer for batching adds to a dag. +type Batch struct { + na NodeAdder + + ctx context.Context + cancel func() + + activeCommits int + err error + commitResults chan error + + nodes []Node + size int + + opts batchOptions +} + +func (t *Batch) processResults() { + for t.activeCommits > 0 { + select { + case err := <-t.commitResults: + t.activeCommits-- + if err != nil { + t.setError(err) + return + } + default: + return + } + } +} + +func (t *Batch) asyncCommit() { + numBlocks := len(t.nodes) + if numBlocks == 0 { + return + } + if t.activeCommits >= ParallelBatchCommits { + select { + case err := <-t.commitResults: + t.activeCommits-- + + if err != nil { + t.setError(err) + return + } + case <-t.ctx.Done(): + t.setError(t.ctx.Err()) + return + } + } + go func(ctx context.Context, b []Node, result chan error, na NodeAdder) { + select { + case result <- na.AddMany(ctx, b): + case <-ctx.Done(): + } + }(t.ctx, t.nodes, t.commitResults, t.na) + + t.activeCommits++ + t.nodes = make([]Node, 0, numBlocks) + t.size = 0 + + return +} + +// Add adds a node to the batch and commits the batch if necessary. +func (t *Batch) Add(ctx context.Context, nd Node) error { + return t.AddMany(ctx, []Node{nd}) +} + +// AddMany many calls Add for every given Node, thus batching and +// commiting them as needed. +func (t *Batch) AddMany(ctx context.Context, nodes []Node) error { + if t.err != nil { + return t.err + } + // Not strictly necessary but allows us to catch errors early. + t.processResults() + + if t.err != nil { + return t.err + } + + t.nodes = append(t.nodes, nodes...) + for _, nd := range nodes { + t.size += len(nd.RawData()) + } + + if t.size > t.opts.maxSize || len(t.nodes) > t.opts.maxNodes { + t.asyncCommit() + } + return t.err +} + +// Commit commits batched nodes. +func (t *Batch) Commit() error { + if t.err != nil { + return t.err + } + + t.asyncCommit() + +loop: + for t.activeCommits > 0 { + select { + case err := <-t.commitResults: + t.activeCommits-- + if err != nil { + t.setError(err) + break loop + } + case <-t.ctx.Done(): + t.setError(t.ctx.Err()) + break loop + } + } + + return t.err +} + +func (t *Batch) setError(err error) { + t.err = err + + t.cancel() + + // Drain as much as we can without blocking. +loop: + for { + select { + case <-t.commitResults: + default: + break loop + } + } + + // Be nice and cleanup. These can take a *lot* of memory. + t.commitResults = nil + t.na = nil + t.ctx = nil + t.nodes = nil + t.size = 0 + t.activeCommits = 0 +} + +// BatchOption provides a way of setting internal options of +// a Batch. +// +// See this post about the "functional options" pattern: +// http://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis +type BatchOption func(o *batchOptions) + +type batchOptions struct { + maxSize int + maxNodes int +} + +var defaultBatchOptions = batchOptions{ + maxSize: 8 << 20, + + // By default, only batch up to 128 nodes at a time. + // The current implementation of flatfs opens this many file + // descriptors at the same time for the optimized batch write. + maxNodes: 128, +} + +// MaxSizeBatchOption sets the maximum size of a Batch. +func MaxSizeBatchOption(size int) BatchOption { + return func(o *batchOptions) { + o.maxSize = size + } +} + +// MaxNodesBatchOption sets the maximum number of nodes in a Batch. +func MaxNodesBatchOption(num int) BatchOption { + return func(o *batchOptions) { + o.maxNodes = num + } +} + +// BufferedDAG implements DAGService using a Batch NodeAdder to wrap add +// operations in the given DAGService. It will trigger Commit() before any +// non-Add operations, but otherwise calling Commit() is left to the user. +type BufferedDAG struct { + ds DAGService + b *Batch +} + +// NewBufferedDAG creates a BufferedDAG using the given DAGService and the +// given options for the Batch NodeAdder. +func NewBufferedDAG(ctx context.Context, ds DAGService, opts ...BatchOption) *BufferedDAG { + return &BufferedDAG{ + ds: ds, + b: NewBatch(ctx, ds, opts...), + } +} + +// Commit calls commit on the Batch. +func (bd *BufferedDAG) Commit() error { + return bd.b.Commit() +} + +// Add adds a new node using Batch. +func (bd *BufferedDAG) Add(ctx context.Context, n Node) error { + return bd.b.Add(ctx, n) +} + +// AddMany adds many nodes using Batch. +func (bd *BufferedDAG) AddMany(ctx context.Context, nds []Node) error { + return bd.b.AddMany(ctx, nds) +} + +// Get commits and gets a node from the DAGService. +func (bd *BufferedDAG) Get(ctx context.Context, c cid.Cid) (Node, error) { + err := bd.b.Commit() + if err != nil { + return nil, err + } + return bd.ds.Get(ctx, c) +} + +// GetMany commits and gets nodes from the DAGService. +func (bd *BufferedDAG) GetMany(ctx context.Context, cs []cid.Cid) <-chan *NodeOption { + err := bd.b.Commit() + if err != nil { + ch := make(chan *NodeOption, 1) + defer close(ch) + ch <- &NodeOption{ + Node: nil, + Err: err, + } + return ch + } + return bd.ds.GetMany(ctx, cs) +} + +// Remove commits and removes a node from the DAGService. +func (bd *BufferedDAG) Remove(ctx context.Context, c cid.Cid) error { + err := bd.b.Commit() + if err != nil { + return err + } + return bd.ds.Remove(ctx, c) +} + +// RemoveMany commits and removes nodes from the DAGService. +func (bd *BufferedDAG) RemoveMany(ctx context.Context, cs []cid.Cid) error { + err := bd.b.Commit() + if err != nil { + return err + } + return bd.ds.RemoveMany(ctx, cs) +} diff --git a/vendor/github.com/ipfs/go-ipld-format/codecov.yml b/vendor/github.com/ipfs/go-ipld-format/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-ipld-format/coding.go b/vendor/github.com/ipfs/go-ipld-format/coding.go new file mode 100644 index 00000000..e202f75a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/coding.go @@ -0,0 +1,62 @@ +package format + +import ( + "fmt" + "sync" + + blocks "github.com/ipfs/go-block-format" +) + +// DecodeBlockFunc functions decode blocks into nodes. +type DecodeBlockFunc func(block blocks.Block) (Node, error) + +type BlockDecoder interface { + Register(codec uint64, decoder DecodeBlockFunc) + Decode(blocks.Block) (Node, error) +} +type safeBlockDecoder struct { + // Can be replaced with an RCU if necessary. + lock sync.RWMutex + decoders map[uint64]DecodeBlockFunc +} + +// Register registers decoder for all blocks with the passed codec. +// +// This will silently replace any existing registered block decoders. +func (d *safeBlockDecoder) Register(codec uint64, decoder DecodeBlockFunc) { + d.lock.Lock() + defer d.lock.Unlock() + d.decoders[codec] = decoder +} + +func (d *safeBlockDecoder) Decode(block blocks.Block) (Node, error) { + // Short-circuit by cast if we already have a Node. + if node, ok := block.(Node); ok { + return node, nil + } + + ty := block.Cid().Type() + + d.lock.RLock() + decoder, ok := d.decoders[ty] + d.lock.RUnlock() + + if ok { + return decoder(block) + } else { + // TODO: get the *long* name for this format + return nil, fmt.Errorf("unrecognized object type: %d", ty) + } +} + +var DefaultBlockDecoder BlockDecoder = &safeBlockDecoder{decoders: make(map[uint64]DecodeBlockFunc)} + +// Decode decodes the given block using the default BlockDecoder. +func Decode(block blocks.Block) (Node, error) { + return DefaultBlockDecoder.Decode(block) +} + +// Register registers block decoders with the default BlockDecoder. +func Register(codec uint64, decoder DecodeBlockFunc) { + DefaultBlockDecoder.Register(codec, decoder) +} diff --git a/vendor/github.com/ipfs/go-ipld-format/daghelpers.go b/vendor/github.com/ipfs/go-ipld-format/daghelpers.go new file mode 100644 index 00000000..70ad0b91 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/daghelpers.go @@ -0,0 +1,118 @@ +package format + +import ( + "context" + + cid "github.com/ipfs/go-cid" +) + +// GetLinks returns the CIDs of the children of the given node. Prefer this +// method over looking up the node itself and calling `Links()` on it as this +// method may be able to use a link cache. +func GetLinks(ctx context.Context, ng NodeGetter, c cid.Cid) ([]*Link, error) { + if c.Type() == cid.Raw { + return nil, nil + } + if gl, ok := ng.(LinkGetter); ok { + return gl.GetLinks(ctx, c) + } + node, err := ng.Get(ctx, c) + if err != nil { + return nil, err + } + return node.Links(), nil +} + +// GetDAG will fill out all of the links of the given Node. +// It returns an array of NodePromise with the linked nodes all in the proper +// order. +func GetDAG(ctx context.Context, ds NodeGetter, root Node) []*NodePromise { + var cids []cid.Cid + for _, lnk := range root.Links() { + cids = append(cids, lnk.Cid) + } + + return GetNodes(ctx, ds, cids) +} + +// GetNodes returns an array of 'FutureNode' promises, with each corresponding +// to the key with the same index as the passed in keys +func GetNodes(ctx context.Context, ds NodeGetter, keys []cid.Cid) []*NodePromise { + + // Early out if no work to do + if len(keys) == 0 { + return nil + } + + promises := make([]*NodePromise, len(keys)) + for i := range keys { + promises[i] = NewNodePromise(ctx) + } + + dedupedKeys := dedupeKeys(keys) + go func() { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + nodechan := ds.GetMany(ctx, dedupedKeys) + + for count := 0; count < len(keys); { + select { + case opt, ok := <-nodechan: + if !ok { + for _, p := range promises { + p.Fail(ErrNotFound) + } + return + } + + if opt.Err != nil { + for _, p := range promises { + p.Fail(opt.Err) + } + return + } + + nd := opt.Node + c := nd.Cid() + for i, lnk_c := range keys { + if c.Equals(lnk_c) { + count++ + promises[i].Send(nd) + } + } + case <-ctx.Done(): + return + } + } + }() + return promises +} + +func Copy(ctx context.Context, from, to DAGService, root cid.Cid) error { + node, err := from.Get(ctx, root) + if err != nil { + return err + } + links := node.Links() + for _, link := range links { + err := Copy(ctx, from, to, link.Cid) + if err != nil { + return err + } + } + err = to.Add(ctx, node) + if err != nil { + return err + } + return nil +} + +// Remove duplicates from a list of keys +func dedupeKeys(cids []cid.Cid) []cid.Cid { + set := cid.NewSet() + for _, c := range cids { + set.Add(c) + } + return set.Keys() +} diff --git a/vendor/github.com/ipfs/go-ipld-format/format.go b/vendor/github.com/ipfs/go-ipld-format/format.go new file mode 100644 index 00000000..990e1ce0 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/format.go @@ -0,0 +1,90 @@ +package format + +import ( + "context" + "fmt" + + blocks "github.com/ipfs/go-block-format" + + cid "github.com/ipfs/go-cid" +) + +type Resolver interface { + // Resolve resolves a path through this node, stopping at any link boundary + // and returning the object found as well as the remaining path to traverse + Resolve(path []string) (interface{}, []string, error) + + // Tree lists all paths within the object under 'path', and up to the given depth. + // To list the entire object (similar to `find .`) pass "" and -1 + Tree(path string, depth int) []string +} + +// Node is the base interface all IPLD nodes must implement. +// +// Nodes are **Immutable** and all methods defined on the interface are +// **Thread Safe**. +type Node interface { + blocks.Block + Resolver + + // ResolveLink is a helper function that calls resolve and asserts the + // output is a link + ResolveLink(path []string) (*Link, []string, error) + + // Copy returns a deep copy of this node + Copy() Node + + // Links is a helper function that returns all links within this object + Links() []*Link + + // TODO: not sure if stat deserves to stay + Stat() (*NodeStat, error) + + // Size returns the size in bytes of the serialized object + Size() (uint64, error) +} + +// Link represents an IPFS Merkle DAG Link between Nodes. +type Link struct { + // utf string name. should be unique per object + Name string // utf8 + + // cumulative size of target object + Size uint64 + + // multihash of the target object + Cid cid.Cid +} + +// NodeStat is a statistics object for a Node. Mostly sizes. +type NodeStat struct { + Hash string + NumLinks int // number of links in link table + BlockSize int // size of the raw, encoded data + LinksSize int // size of the links segment + DataSize int // size of the data segment + CumulativeSize int // cumulative size of object and its references +} + +func (ns NodeStat) String() string { + f := "NodeStat{NumLinks: %d, BlockSize: %d, LinksSize: %d, DataSize: %d, CumulativeSize: %d}" + return fmt.Sprintf(f, ns.NumLinks, ns.BlockSize, ns.LinksSize, ns.DataSize, ns.CumulativeSize) +} + +// MakeLink creates a link to the given node +func MakeLink(n Node) (*Link, error) { + s, err := n.Size() + if err != nil { + return nil, err + } + + return &Link{ + Size: s, + Cid: n.Cid(), + }, nil +} + +// GetNode returns the MDAG Node that this link points to +func (l *Link) GetNode(ctx context.Context, serv NodeGetter) (Node, error) { + return serv.Get(ctx, l.Cid) +} diff --git a/vendor/github.com/ipfs/go-ipld-format/go.mod b/vendor/github.com/ipfs/go-ipld-format/go.mod new file mode 100644 index 00000000..b4caf2f0 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/go.mod @@ -0,0 +1,7 @@ +module github.com/ipfs/go-ipld-format + +require ( + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-cid v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipld-format/go.sum b/vendor/github.com/ipfs/go-ipld-format/go.sum new file mode 100644 index 00000000..aa764c6a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/go.sum @@ -0,0 +1,26 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-ipld-format/merkledag.go b/vendor/github.com/ipfs/go-ipld-format/merkledag.go new file mode 100644 index 00000000..755b90f6 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/merkledag.go @@ -0,0 +1,67 @@ +package format + +import ( + "context" + "fmt" + + cid "github.com/ipfs/go-cid" +) + +var ErrNotFound = fmt.Errorf("merkledag: not found") + +// Either a node or an error. +type NodeOption struct { + Node Node + Err error +} + +// The basic Node resolution service. +type NodeGetter interface { + // Get retrieves nodes by CID. Depending on the NodeGetter + // implementation, this may involve fetching the Node from a remote + // machine; consider setting a deadline in the context. + Get(context.Context, cid.Cid) (Node, error) + + // GetMany returns a channel of NodeOptions given a set of CIDs. + GetMany(context.Context, []cid.Cid) <-chan *NodeOption +} + +// NodeAdder adds nodes to a DAG. +type NodeAdder interface { + // Add adds a node to this DAG. + Add(context.Context, Node) error + + // AddMany adds many nodes to this DAG. + // + // Consider using the Batch NodeAdder (`NewBatch`) if you make + // extensive use of this function. + AddMany(context.Context, []Node) error +} + +// NodeGetters can optionally implement this interface to make finding linked +// objects faster. +type LinkGetter interface { + NodeGetter + + // TODO(ipfs/go-ipld-format#9): This should return []cid.Cid + + // GetLinks returns the children of the node refered to by the given + // CID. + GetLinks(ctx context.Context, nd cid.Cid) ([]*Link, error) +} + +// DAGService is an IPFS Merkle DAG service. +type DAGService interface { + NodeGetter + NodeAdder + + // Remove removes a node from this DAG. + // + // Remove returns no error if the requested node is not present in this DAG. + Remove(context.Context, cid.Cid) error + + // RemoveMany removes many nodes from this DAG. + // + // It returns success even if the nodes were not present in the DAG. + RemoveMany(context.Context, []cid.Cid) error +} diff --git a/vendor/github.com/ipfs/go-ipld-format/navipld.go b/vendor/github.com/ipfs/go-ipld-format/navipld.go new file mode 100644 index 00000000..12986737 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/navipld.go @@ -0,0 +1,149 @@ +package format + +import ( + "context" + + cid "github.com/ipfs/go-cid" +) + +// NavigableIPLDNode implements the `NavigableNode` interface wrapping +// an IPLD `Node` and providing support for node promises. +type NavigableIPLDNode struct { + node Node + + // The CID of each child of the node. + childCIDs []cid.Cid + + // Node promises for child nodes requested. + childPromises []*NodePromise + // TODO: Consider encapsulating it in a single structure alongside `childCIDs`. + + nodeGetter NodeGetter + // TODO: Should this be stored in the `Walker`'s context to avoid passing + // it along to every node? It seems like a structure that doesn't need + // to be replicated (the entire DAG will use the same `NodeGetter`). +} + +// NewNavigableIPLDNode returns a `NavigableIPLDNode` wrapping the provided +// `node`. +func NewNavigableIPLDNode(node Node, nodeGetter NodeGetter) *NavigableIPLDNode { + nn := &NavigableIPLDNode{ + node: node, + nodeGetter: nodeGetter, + } + + nn.childCIDs = getLinkCids(node) + nn.childPromises = make([]*NodePromise, len(nn.childCIDs)) + + return nn +} + +// FetchChild implements the `NavigableNode` interface using node promises +// to preload the following child nodes to `childIndex` leaving them ready +// for subsequent `FetchChild` calls. +func (nn *NavigableIPLDNode) FetchChild(ctx context.Context, childIndex uint) (NavigableNode, error) { + // This function doesn't check that `childIndex` is valid, that's + // the `Walker` responsibility. + + // If we drop to <= preloadSize/2 preloading nodes, preload the next 10. + for i := childIndex; i < childIndex+preloadSize/2 && i < uint(len(nn.childPromises)); i++ { + // TODO: Check if canceled. + if nn.childPromises[i] == nil { + nn.preload(ctx, i) + break + } + } + + child, err := nn.getPromiseValue(ctx, childIndex) + + switch err { + case nil: + case context.DeadlineExceeded, context.Canceled: + if ctx.Err() != nil { + return nil, ctx.Err() + } + + // In this case, the context used to *preload* the node (in a previous + // `FetchChild` call) has been canceled. We need to retry the load with + // the current context and we might as well preload some extra nodes + // while we're at it. + nn.preload(ctx, childIndex) + child, err = nn.getPromiseValue(ctx, childIndex) + if err != nil { + return nil, err + } + default: + return nil, err + } + + return NewNavigableIPLDNode(child, nn.nodeGetter), nil +} + +// Number of nodes to preload every time a child is requested. +// TODO: Give more visibility to this constant, it could be an attribute +// set in the `Walker` context that gets passed in `FetchChild`. +const preloadSize = 10 + +// Preload at most `preloadSize` child nodes from `beg` through promises +// created using this `ctx`. +func (nn *NavigableIPLDNode) preload(ctx context.Context, beg uint) { + end := beg + preloadSize + if end >= uint(len(nn.childCIDs)) { + end = uint(len(nn.childCIDs)) + } + + copy(nn.childPromises[beg:], GetNodes(ctx, nn.nodeGetter, nn.childCIDs[beg:end])) +} + +// Fetch the actual node (this is the blocking part of the mechanism) +// and invalidate the promise. `preload` should always be called first +// for the `childIndex` being fetch. +// +// TODO: Include `preload` into the beginning of this function? +// (And collapse the two calls in `FetchChild`). +func (nn *NavigableIPLDNode) getPromiseValue(ctx context.Context, childIndex uint) (Node, error) { + value, err := nn.childPromises[childIndex].Get(ctx) + nn.childPromises[childIndex] = nil + return value, err +} + +// Get the CID of all the links of this `node`. +func getLinkCids(node Node) []cid.Cid { + links := node.Links() + out := make([]cid.Cid, 0, len(links)) + + for _, l := range links { + out = append(out, l.Cid) + } + return out +} + +// GetIPLDNode returns the IPLD `Node` wrapped into this structure. +func (nn *NavigableIPLDNode) GetIPLDNode() Node { + return nn.node +} + +// ChildTotal implements the `NavigableNode` returning the number +// of links (of child nodes) in this node. +func (nn *NavigableIPLDNode) ChildTotal() uint { + return uint(len(nn.GetIPLDNode().Links())) +} + +// ExtractIPLDNode is a helper function that takes a `NavigableNode` +// and returns the IPLD `Node` wrapped inside. Used in the `Visitor` +// function. +// TODO: Check for errors to avoid a panic? +func ExtractIPLDNode(node NavigableNode) Node { + return node.(*NavigableIPLDNode).GetIPLDNode() +} + +// TODO: `Cleanup` is not supported at the moment in the `Walker`. +// +// Called in `Walker.up()` when the node is not part of the path anymore. +//func (nn *NavigableIPLDNode) Cleanup() { +// // TODO: Ideally this would be the place to issue a context `cancel()` +// // but since the DAG reader uses multiple contexts in the same session +// // (through `Read` and `CtxReadFull`) we would need to store an array +// // with the multiple contexts in `NavigableIPLDNode` with its corresponding +// // cancel functions. +//} diff --git a/vendor/github.com/ipfs/go-ipld-format/package.json b/vendor/github.com/ipfs/go-ipld-format/package.json new file mode 100644 index 00000000..ca1ff9b5 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/package.json @@ -0,0 +1,36 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/ipfs/go-ipld-format" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipld-format" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + } + ], + "gxVersion": "0.10.0", + "language": "go", + "license": "", + "name": "go-ipld-format", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.8.1" +} + diff --git a/vendor/github.com/ipfs/go-ipld-format/promise.go b/vendor/github.com/ipfs/go-ipld-format/promise.go new file mode 100644 index 00000000..02743b03 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/promise.go @@ -0,0 +1,66 @@ +package format + +import ( + "context" +) + +// NodePromise provides a promise like interface for a dag Node +// the first call to Get will block until the Node is received +// from its internal channels, subsequent calls will return the +// cached node. +// +// Thread Safety: This is multiple-consumer/single-producer safe. +func NewNodePromise(ctx context.Context) *NodePromise { + return &NodePromise{ + done: make(chan struct{}), + ctx: ctx, + } +} + +type NodePromise struct { + value Node + err error + done chan struct{} + + ctx context.Context +} + +// Call this function to fail a promise. +// +// Once a promise has been failed or fulfilled, further attempts to fail it will +// be silently dropped. +func (np *NodePromise) Fail(err error) { + if np.err != nil || np.value != nil { + // Already filled. + return + } + np.err = err + close(np.done) +} + +// Fulfill this promise. +// +// Once a promise has been fulfilled or failed, calling this function will +// panic. +func (np *NodePromise) Send(nd Node) { + // if promise has a value, don't fail it + if np.err != nil || np.value != nil { + panic("already filled") + } + np.value = nd + close(np.done) +} + +// Get the value of this promise. +// +// This function is safe to call concurrently from any number of goroutines. +func (np *NodePromise) Get(ctx context.Context) (Node, error) { + select { + case <-np.done: + return np.value, np.err + case <-np.ctx.Done(): + return nil, np.ctx.Err() + case <-ctx.Done(): + return nil, ctx.Err() + } +} diff --git a/vendor/github.com/ipfs/go-ipld-format/walker.go b/vendor/github.com/ipfs/go-ipld-format/walker.go new file mode 100644 index 00000000..a0c4bbef --- /dev/null +++ b/vendor/github.com/ipfs/go-ipld-format/walker.go @@ -0,0 +1,437 @@ +package format + +import ( + "context" + "errors" +) + +// Walker provides methods to move through a DAG of nodes that implement +// the `NavigableNode` interface. It uses iterative algorithms (instead +// of recursive ones) that expose the `path` of nodes from the root to +// the `ActiveNode` it currently points to. +// +// It provides multiple ways to walk through the DAG (e.g. `Iterate` +// and `Seek`). When using them, you provide a Visitor function that +// will be called for each node the Walker traverses. The Visitor can +// read data from those nodes and, optionally, direct the movement of +// the Walker by calling `Pause` (to stop traversing and return) or +// `NextChild` (to skip a child and its descendants). See the DAG reader +// in `github.com/ipfs/go-unixfs/io/dagreader.go` for a usage example. +// TODO: This example isn't merged yet. +type Walker struct { + + // Sequence of nodes in the DAG from the root to the `ActiveNode`, each + // position in the slice being the parent of the next one. The `ActiveNode` + // resides in the position indexed by `currentDepth` (the slice may contain + // more elements past that point but they should be ignored since the slice + // is not truncated to leverage the already allocated space). + // + // Every time `down` is called the `currentDepth` increases and the child + // of the `ActiveNode` is inserted after it (effectively becoming the new + // `ActiveNode`). + // + // The slice must *always* have a length bigger than zero with the root + // of the DAG at the first position (empty DAGs are not valid). + path []NavigableNode + + // Depth of the `ActiveNode`. It grows downwards, root being 0, its child 1, + // and so on. It controls the effective length of `path` and `childIndex`. + // + // A currentDepth of -1 signals the start case of a new `Walker` that hasn't + // moved yet. Although this state is an invalid index to the slices, it + // allows to centralize all the visit calls in the `down` move (starting at + // zero would require a special visit case inside every walk operation like + // `Iterate()` and `Seek`). This value should never be returned to after + // the first `down` movement, moving up from the root should always return + // `errUpOnRoot`. + currentDepth int + + // This slice has the index of the child each node in `path` is pointing + // to. The child index in the node can be set past all of its child nodes + // (having a value equal to `ChildTotal`) to signal it has visited (or + // skipped) all of them. A leaf node with no children that has its index + // in zero would also comply with this format. + // + // Complement to `path`, not only do we need to know which nodes have been + // traversed to reach the `ActiveNode` but also which child nodes they are + // to correctly have the active path of the DAG. (Reword this paragraph.) + childIndex []uint + + // Flag to signal that a pause in the current walk operation has been + // requested by the user inside `Visitor`. + pauseRequested bool + + // Used to pass information from the central `Walker` structure to the + // distributed `NavigableNode`s (to have a centralized configuration + // structure to control the behavior of all of them), e.g., to tell + // the `NavigableIPLDNode` which context should be used to load node + // promises (but this could later be used in more elaborate ways). + ctx context.Context +} + +// `Walker` implementation details: +// +// The `Iterate` and `Seek` walk operations are implemented through two +// basic move methods `up` and `down`, that change which node is the +// `ActiveNode` (modifying the `path` that leads to it). The `NextChild` +// method allows to change which child the `ActiveNode` is pointing to +// in order to change the direction of the descent. +// +// The `down` method is the analogous of a recursive call and the one in +// charge of visiting (possible new) nodes (through `Visitor`) and performing +// some user-defined logic. A `Pause` method is available to interrupt the +// current walk operation after visiting a node. +// +// Key terms and concepts: +// * Walk operation (e.g., `Iterate`). +// * Move methods: `up` and `down`. +// * Active node. +// * Path to the active node. + + +// Function called each time a node is arrived upon in a walk operation +// through the `down` method (not when going back `up`). It is the main +// API to implement DAG functionality (e.g., read and seek a file DAG) +// on top of the `Walker` structure. +// +// Its argument is the current `node` being visited (the `ActiveNode`). +// Any error it returns (apart from the internal `errPauseWalkOperation`) +// will be forwarded to the caller of the walk operation (pausing it). +// +// Any of the exported methods of this API should be allowed to be called +// from within this method, e.g., `NextChild`. +// TODO: Check that. Can `ResetPosition` be called without breaking +// the `Walker` integrity? +type Visitor func(node NavigableNode) error + +// NavigableNode is the interface the nodes of a DAG need to implement in +// order to be traversed by the `Walker`. +type NavigableNode interface { + + // FetchChild returns the child of this node pointed to by `childIndex`. + // A `Context` stored in the `Walker` is passed (`ctx`) that may contain + // configuration attributes stored by the user before initiating the + // walk operation. + FetchChild(ctx context.Context, childIndex uint) (NavigableNode, error) + + // ChildTotal returns the number of children of the `ActiveNode`. + ChildTotal() uint + + // TODO: Evaluate providing the `Cleanup` and `Reset` methods. + + // Cleanup is an optional method that is called by the `Walker` when + // this node leaves the active `path`, i.e., when this node is the + // `ActiveNode` and the `up` movement is called. + //Cleanup() + // Allow this method to return an error? That would imply + // modifying the `Walker` API, `up()` would now return an error + // different than `errUpOnRoot`. + + // Reset is an optional function that is called by the `Walker` when + // `ResetPosition` is called, it is only applied to the root node + // of the DAG. + //Reset() +} + +// NewWalker creates a new `Walker` structure from a `root` +// NavigableNode. +func NewWalker(ctx context.Context, root NavigableNode) *Walker { + return &Walker{ + ctx: ctx, + + path: []NavigableNode{root}, + childIndex: []uint{0}, + + currentDepth: -1, + // Starting position, "on top" of the root node, see `currentDepth`. + } +} + +// ActiveNode returns the `NavigableNode` that `Walker` is pointing +// to at the moment. It changes when `up` or `down` is called. +func (w *Walker) ActiveNode() NavigableNode { + return w.path[w.currentDepth] + // TODO: Add a check for the initial state of `currentDepth` -1? +} + +// ErrDownNoChild signals there is no child at `ActiveChildIndex` in the +// `ActiveNode` to go down to. +var ErrDownNoChild = errors.New("can't go down, the child does not exist") + +// errUpOnRoot signals the end of the DAG after returning to the root. +var errUpOnRoot = errors.New("can't go up, already on root") + +// EndOfDag wraps the `errUpOnRoot` and signals to the user that the +// entire DAG has been iterated. +var EndOfDag = errors.New("end of DAG") + +// ErrNextNoChild signals the end of this parent child nodes. +var ErrNextNoChild = errors.New("can't go to the next child, no more child nodes in this parent") + +// errPauseWalkOperation signals the pause of the walk operation. +var errPauseWalkOperation = errors.New("pause in the current walk operation") + +// ErrNilVisitor signals the lack of a `Visitor` function. +var ErrNilVisitor = errors.New("no Visitor function specified") + +// Iterate the DAG through the DFS pre-order walk algorithm, going down +// as much as possible, then `NextChild` to the other siblings, and then up +// (to go down again). The position is saved throughout iterations (and +// can be previously set in `Seek`) allowing `Iterate` to be called +// repeatedly (after a `Pause`) to continue the iteration. +// +// This function returns the errors received from `down` (generated either +// inside the `Visitor` call or any other errors while fetching the child +// nodes), the rest of the move errors are handled within the function and +// are not returned. +func (w *Walker) Iterate(visitor Visitor) error { + + // Iterate until either: the end of the DAG (`errUpOnRoot`), a `Pause` + // is requested (`errPauseWalkOperation`) or an error happens (while + // going down). + for { + + // First, go down as much as possible. + for { + err := w.down(visitor) + + if err == ErrDownNoChild { + break + // Can't keep going down from this node, try to move Next. + } + + if err == errPauseWalkOperation { + return nil + // Pause requested, `errPauseWalkOperation` is just an internal + // error to signal to pause, don't pass it along. + } + + if err != nil { + return err + // `down` is the only movement that can return *any* error. + } + } + + // Can't move down anymore, turn to the next child in the `ActiveNode` + // to go down a different path. If there are no more child nodes + // available, go back up. + for { + err := w.NextChild() + if err == nil { + break + // No error, it turned to the next child. Try to go down again. + } + + // It can't go Next (`ErrNextNoChild`), try to move up. + err = w.up() + if err != nil { + // Can't move up, on the root again (`errUpOnRoot`). + return EndOfDag + } + + // Moved up, try `NextChild` again. + } + + // Turned to the next child (after potentially many up moves), + // try going down again. + } +} + +// Seek a specific node in a downwards manner. The `Visitor` should be +// used to steer the seek selecting at each node which child will the +// seek continue to (extending the `path` in that direction) or pause it +// (if the desired node has been found). The seek always starts from +// the root. It modifies the position so it shouldn't be used in-between +// `Iterate` calls (it can be used to set the position *before* iterating). +// If the visitor returns any non-`nil` errors the seek will stop. +// +// TODO: The seek could be extended to seek from the current position. +// (Is there something in the logic that would prevent it at the moment?) +func (w *Walker) Seek(visitor Visitor) error { + + if visitor == nil { + return ErrNilVisitor + // Although valid, there is no point in calling `Seek` without + // any extra logic, it would just go down to the leftmost leaf, + // so this would probably be a user error. + } + + // Go down until it the desired node is found (that will be signaled + // pausing the seek with `errPauseWalkOperation`) or a leaf node is + // reached (end of the DAG). + for { + err := w.down(visitor) + + if err == errPauseWalkOperation { + return nil + // Found the node, `errPauseWalkOperation` is just an internal + // error to signal to pause, don't pass it along. + } + + if err == ErrDownNoChild { + return nil + // Can't keep going down from this node, either at a leaf node + // or the `Visitor` has moved the child index past the + // available index (probably because none indicated that the + // target node could be down from there). + } + + if err != nil { + return err + // `down()` is the only movement that can return *any* error. + } + } + // TODO: Copied from the first part of `Iterate()` (although conceptually + // different from it). Could this be encapsulated in a function to avoid + // repeating code? The way the pause signal is handled it wouldn't seem + // very useful: the `errPauseWalkOperation` needs to be processed at this + // depth to return from the function (and pause the seek, returning + // from another function here wouldn't cause it to stop). +} + +// Go down one level in the DAG to the child of the `ActiveNode` +// pointed to by `ActiveChildIndex` and perform some logic on it by +// through the user-specified `visitor`. +// +// This should always be the first move in any walk operation +// (to visit the root node and move the `currentDepth` away +// from the negative value). +func (w *Walker) down(visitor Visitor) error { + child, err := w.fetchChild() + if err != nil { + return err + } + + w.extendPath(child) + + return w.visitActiveNode(visitor) +} + +// Fetch the child from the `ActiveNode` through the `FetchChild` +// method of the `NavigableNode` interface. +func (w *Walker) fetchChild() (NavigableNode, error) { + if w.currentDepth == -1 { + // First time `down()` is called, `currentDepth` is -1, + // return the root node. Don't check available child nodes + // (as the `Walker` is not actually on any node just yet + // and `ActiveChildIndex` is of no use yet). + return w.path[0], nil + } + + // Check if the child to fetch exists. + if w.ActiveChildIndex() >= w.ActiveNode().ChildTotal() { + return nil, ErrDownNoChild + } + + return w.ActiveNode().FetchChild(w.ctx, w.ActiveChildIndex()) + + // TODO: Maybe call `extendPath` here and hide it away + // from `down`. +} + +// Increase the `currentDepth` and extend the `path` to the fetched +// `child` node (which now becomes the new `ActiveNode`) +func (w *Walker) extendPath(child NavigableNode) { + w.currentDepth++ + + // Extend the slices if needed (doubling its capacity). + if w.currentDepth >= len(w.path) { + w.path = append(w.path, make([]NavigableNode, len(w.path))...) + w.childIndex = append(w.childIndex, make([]uint, len(w.childIndex))...) + // TODO: Check the performance of this grow mechanism. + } + + // `child` now becomes the `ActiveNode()`. + w.path[w.currentDepth] = child + w.childIndex[w.currentDepth] = 0 +} + +// Call the `Visitor` on the `ActiveNode`. This function should only be +// called from `down`. This is a wrapper function to `Visitor` to process +// the `Pause` signal and do other minor checks (taking this logic away +// from `down`). +func (w *Walker) visitActiveNode(visitor Visitor) error { + if visitor == nil { + return nil + // No need to check `pauseRequested` as `Pause` should + // only be called from within the `Visitor`. + } + + err := visitor(w.ActiveNode()) + + if w.pauseRequested { + // If a pause was requested make sure an error is returned + // that will cause the current walk operation to return. If + // `Visitor` didn't return an error set an artificial one + // generated by the `Walker`. + if err == nil { + err = errPauseWalkOperation + } + + w.pauseRequested = false + } + + return err +} + +// Go up from the `ActiveNode`. The only possible error this method +// can return is to signal it's already at the root and can't go up. +func (w *Walker) up() error { + if w.currentDepth < 1 { + return errUpOnRoot + } + + w.currentDepth-- + + // w.ActiveNode().Cleanup() + // If `Cleanup` is supported this would be the place to call it. + + return nil +} + +// NextChild increases the child index of the `ActiveNode` to point +// to the next child (which may exist or may be the end of the available +// child nodes). +// +// This method doesn't change the `ActiveNode`, it just changes where +// is it pointing to next, it could be interpreted as "turn to the next +// child". +func (w *Walker) NextChild() error { + w.incrementActiveChildIndex() + + if w.ActiveChildIndex() == w.ActiveNode().ChildTotal() { + return ErrNextNoChild + // At the end of the available children, signal it. + } + + return nil +} + +// incrementActiveChildIndex increments the child index of the `ActiveNode` to +// point to the next child (if it exists) or to the position past all of +// the child nodes (`ChildTotal`) to signal that all of its children have +// been visited/skipped (if already at that last position, do nothing). +func (w *Walker) incrementActiveChildIndex() { + if w.ActiveChildIndex()+1 <= w.ActiveNode().ChildTotal() { + w.childIndex[w.currentDepth]++ + } +} + +// ActiveChildIndex returns the index of the child the `ActiveNode()` +// is pointing to. +func (w *Walker) ActiveChildIndex() uint { + return w.childIndex[w.currentDepth] +} + +// SetContext changes the internal `Walker` (that is provided to the +// `NavigableNode`s when calling `FetchChild`) with the one passed +// as argument. +func (w *Walker) SetContext(ctx context.Context) { + w.ctx = ctx +} + +// Pause the current walk operation. This function must be called from +// within the `Visitor` function. +func (w *Walker) Pause() { + w.pauseRequested = true +} diff --git a/vendor/github.com/ipfs/go-ipns/.travis.yml b/vendor/github.com/ipfs/go-ipns/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-ipns/LICENSE b/vendor/github.com/ipfs/go-ipns/LICENSE new file mode 100644 index 00000000..8ce02878 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-ipns/Makefile b/vendor/github.com/ipfs/go-ipns/Makefile new file mode 100644 index 00000000..54152565 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/ipfs/go-ipns/README.md b/vendor/github.com/ipfs/go-ipns/README.md new file mode 100644 index 00000000..2ae0846a --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/README.md @@ -0,0 +1,61 @@ +# go-ipns + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-datastore?status.svg)](https://godoc.org/github.com/ipfs/go-ipns) + +> ipns record definitions + +This package contains all of the components necessary to create, understand, and validate IPNS records. It does *not* publish or resolve those records. [`go-ipfs`](https://github.com/ipfs/go-ipfs) uses this package internally to manipulate records. + +## Usage + +To create a new IPNS record: + +```go +import ( + "time" + + ipns "github.com/ipfs/go-ipns" + crypto "github.com/libp2p/go-libp2p-crypto" +) + +// Generate a private key to sign the IPNS record with. Most of the time, +// however, you'll want to retrieve an already-existing key from IPFS using the +// go-ipfs/core/coreapi CoreAPI.KeyAPI() interface. +privateKey, publicKey, err := crypto.GenerateKeyPair(crypto.RSA, 2048) +if err != nil { + panic(err) +} + +// Create an IPNS record that expires in one hour and points to the IPFS address +// /ipfs/Qme1knMqwt1hKZbc1BmQFmnm9f36nyQGwXxPGVpVJ9rMK5 +ipnsRecord, err := ipns.Create(privateKey, []byte("/ipfs/Qme1knMqwt1hKZbc1BmQFmnm9f36nyQGwXxPGVpVJ9rMK5"), 0, time.Now().Add(1*time.Hour)) +if err != nil { + panic(err) +} +``` + +Once you have the record, you’ll need to use IPFS to *publish* it. + +There are several other major operations you can do with `go-ipns`. Check out the [API docs](https://godoc.org/github.com/ipfs/go-ipns) or look at the tests in this repo for examples. + +## Documentation + +https://godoc.org/github.com/ipfs/go-ipns + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-ipns/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md) + +## License + +Copyright (c) Protocol Labs, Inc. under the **MIT license**. See [LICENSE file](./LICENSE) for details. diff --git a/vendor/github.com/ipfs/go-ipns/codecov.yml b/vendor/github.com/ipfs/go-ipns/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/ipfs/go-ipns/errors.go b/vendor/github.com/ipfs/go-ipns/errors.go new file mode 100644 index 00000000..ebcd4e26 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/errors.go @@ -0,0 +1,37 @@ +package ipns + +import ( + "errors" +) + +// ErrExpiredRecord should be returned when an ipns record is +// invalid due to being too old +var ErrExpiredRecord = errors.New("expired record") + +// ErrUnrecognizedValidity is returned when an IpnsRecord has an +// unknown validity type. +var ErrUnrecognizedValidity = errors.New("unrecognized validity type") + +// ErrInvalidPath should be returned when an ipns record path +// is not in a valid format +var ErrInvalidPath = errors.New("record path invalid") + +// ErrSignature should be returned when an ipns record fails +// signature verification +var ErrSignature = errors.New("record signature verification failed") + +// ErrKeyFormat should be returned when an ipns record key is +// incorrectly formatted (not a peer ID) +var ErrKeyFormat = errors.New("record key could not be parsed into peer ID") + +// ErrPublicKeyNotFound should be returned when the public key +// corresponding to the ipns record path cannot be retrieved +// from the peer store +var ErrPublicKeyNotFound = errors.New("public key not found in peer store") + +// ErrPublicKeyMismatch should be returned when the public key embedded in the +// record doesn't match the expected public key. +var ErrPublicKeyMismatch = errors.New("public key in record did not match expected pubkey") + +// ErrBadRecord should be returned when an ipns record cannot be unmarshalled +var ErrBadRecord = errors.New("record could not be unmarshalled") diff --git a/vendor/github.com/ipfs/go-ipns/go.mod b/vendor/github.com/ipfs/go-ipns/go.mod new file mode 100644 index 00000000..842ca0d7 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/go.mod @@ -0,0 +1,11 @@ +module github.com/ipfs/go-ipns + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-record v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-ipns/go.sum b/vendor/github.com/ipfs/go-ipns/go.sum new file mode 100644 index 00000000..6ef36abf --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/go.sum @@ -0,0 +1,114 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-ipns/ipns.go b/vendor/github.com/ipfs/go-ipns/ipns.go new file mode 100644 index 00000000..f145333b --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/ipns.go @@ -0,0 +1,168 @@ +package ipns + +import ( + "bytes" + "fmt" + "time" + + pb "github.com/ipfs/go-ipns/pb" + + u "github.com/ipfs/go-ipfs-util" + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" +) + +// Create creates a new IPNS entry and signs it with the given private key. +// +// This function does not embed the public key. If you want to do that, use +// `EmbedPublicKey`. +func Create(sk ic.PrivKey, val []byte, seq uint64, eol time.Time) (*pb.IpnsEntry, error) { + entry := new(pb.IpnsEntry) + + entry.Value = val + typ := pb.IpnsEntry_EOL + entry.ValidityType = &typ + entry.Sequence = &seq + entry.Validity = []byte(u.FormatRFC3339(eol)) + + sig, err := sk.Sign(ipnsEntryDataForSig(entry)) + if err != nil { + return nil, err + } + entry.Signature = sig + + return entry, nil +} + +// Validates validates the given IPNS entry against the given public key. +func Validate(pk ic.PubKey, entry *pb.IpnsEntry) error { + // Check the ipns record signature with the public key + if ok, err := pk.Verify(ipnsEntryDataForSig(entry), entry.GetSignature()); err != nil || !ok { + return ErrSignature + } + + eol, err := GetEOL(entry) + if err != nil { + return err + } + if time.Now().After(eol) { + return ErrExpiredRecord + } + return nil +} + +// GetEOL returns the EOL of this IPNS entry +// +// This function returns ErrUnrecognizedValidity if the validity type of the +// record isn't EOL. Otherwise, it returns an error if it can't parse the EOL. +func GetEOL(entry *pb.IpnsEntry) (time.Time, error) { + if entry.GetValidityType() != pb.IpnsEntry_EOL { + return time.Time{}, ErrUnrecognizedValidity + } + return u.ParseRFC3339(string(entry.GetValidity())) +} + +// EmbedPublicKey embeds the given public key in the given ipns entry. While not +// strictly required, some nodes (e.g., DHT servers) may reject IPNS entries +// that don't embed their public keys as they may not be able to validate them +// efficiently. +func EmbedPublicKey(pk ic.PubKey, entry *pb.IpnsEntry) error { + // Try extracting the public key from the ID. If we can, *don't* embed + // it. + id, err := peer.IDFromPublicKey(pk) + if err != nil { + return err + } + if _, err := id.ExtractPublicKey(); err != peer.ErrNoPublicKey { + // Either a *real* error or nil. + return err + } + + // We failed to extract the public key from the peer ID, embed it in the + // record. + pkBytes, err := pk.Bytes() + if err != nil { + return err + } + entry.PubKey = pkBytes + return nil +} + +// ExtractPublicKey extracts a public key matching `pid` from the IPNS record, +// if possible. +// +// This function returns (nil, nil) when no public key can be extracted and +// nothing is malformed. +func ExtractPublicKey(pid peer.ID, entry *pb.IpnsEntry) (ic.PubKey, error) { + if entry.PubKey != nil { + pk, err := ic.UnmarshalPublicKey(entry.PubKey) + if err != nil { + return nil, fmt.Errorf("unmarshaling pubkey in record: %s", err) + } + + expPid, err := peer.IDFromPublicKey(pk) + if err != nil { + return nil, fmt.Errorf("could not regenerate peerID from pubkey: %s", err) + } + + if pid != expPid { + return nil, ErrPublicKeyMismatch + } + return pk, nil + } + + return pid.ExtractPublicKey() +} + +// Compare compares two IPNS entries. It returns: +// +// * -1 if a is older than b +// * 0 if a and b cannot be ordered (this doesn't mean that they are equal) +// * +1 if a is newer than b +// +// It returns an error when either a or b are malformed. +// +// NOTE: It *does not* validate the records, the caller is responsible for calling +// `Validate` first. +// +// NOTE: If a and b cannot be ordered by this function, you can determine their +// order by comparing their serialized byte representations (using +// `bytes.Compare`). You must do this if you are implementing a libp2p record +// validator (or you can just use the one provided for you by this package). +func Compare(a, b *pb.IpnsEntry) (int, error) { + as := a.GetSequence() + bs := b.GetSequence() + + if as > bs { + return 1, nil + } else if as < bs { + return -1, nil + } + + at, err := u.ParseRFC3339(string(a.GetValidity())) + if err != nil { + return 0, err + } + + bt, err := u.ParseRFC3339(string(b.GetValidity())) + if err != nil { + return 0, err + } + + if at.After(bt) { + return 1, nil + } else if bt.After(at) { + return -1, nil + } + + return 0, nil +} + +func ipnsEntryDataForSig(e *pb.IpnsEntry) []byte { + return bytes.Join([][]byte{ + e.Value, + e.Validity, + []byte(fmt.Sprint(e.GetValidityType())), + }, + []byte{}) +} diff --git a/vendor/github.com/ipfs/go-ipns/package.json b/vendor/github.com/ipfs/go-ipns/package.json new file mode 100644 index 00000000..e728289c --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/package.json @@ -0,0 +1,58 @@ +{ + "author": "stebalien", + "bugs": { + "url": "https://github.com/ipfs/go-ipns/issues" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-ipns" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "hash": "QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX", + "name": "go-libp2p-record", + "version": "4.1.15" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-ipns", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.23" +} + diff --git a/vendor/github.com/ipfs/go-ipns/pb/Makefile b/vendor/github.com/ipfs/go-ipns/pb/Makefile new file mode 100644 index 00000000..eb14b576 --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofast_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/ipfs/go-ipns/pb/ipns.pb.go b/vendor/github.com/ipfs/go-ipns/pb/ipns.pb.go new file mode 100644 index 00000000..b38ce4ea --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/pb/ipns.pb.go @@ -0,0 +1,678 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: ipns.proto + +package ipns_pb + +import ( + fmt "fmt" + github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type IpnsEntry_ValidityType int32 + +const ( + // setting an EOL says "this record is valid until..." + IpnsEntry_EOL IpnsEntry_ValidityType = 0 +) + +var IpnsEntry_ValidityType_name = map[int32]string{ + 0: "EOL", +} + +var IpnsEntry_ValidityType_value = map[string]int32{ + "EOL": 0, +} + +func (x IpnsEntry_ValidityType) Enum() *IpnsEntry_ValidityType { + p := new(IpnsEntry_ValidityType) + *p = x + return p +} + +func (x IpnsEntry_ValidityType) String() string { + return proto.EnumName(IpnsEntry_ValidityType_name, int32(x)) +} + +func (x *IpnsEntry_ValidityType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(IpnsEntry_ValidityType_value, data, "IpnsEntry_ValidityType") + if err != nil { + return err + } + *x = IpnsEntry_ValidityType(value) + return nil +} + +func (IpnsEntry_ValidityType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_4d5b16fb32bfe8ea, []int{0, 0} +} + +type IpnsEntry struct { + Value []byte `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` + Signature []byte `protobuf:"bytes,2,req,name=signature" json:"signature,omitempty"` + ValidityType *IpnsEntry_ValidityType `protobuf:"varint,3,opt,name=validityType,enum=ipns.pb.IpnsEntry_ValidityType" json:"validityType,omitempty"` + Validity []byte `protobuf:"bytes,4,opt,name=validity" json:"validity,omitempty"` + Sequence *uint64 `protobuf:"varint,5,opt,name=sequence" json:"sequence,omitempty"` + Ttl *uint64 `protobuf:"varint,6,opt,name=ttl" json:"ttl,omitempty"` + // in order for nodes to properly validate a record upon receipt, they need the public + // key associated with it. For old RSA keys, its easiest if we just send this as part of + // the record itself. For newer ed25519 keys, the public key can be embedded in the + // peerID, making this field unnecessary. + PubKey []byte `protobuf:"bytes,7,opt,name=pubKey" json:"pubKey,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IpnsEntry) Reset() { *m = IpnsEntry{} } +func (m *IpnsEntry) String() string { return proto.CompactTextString(m) } +func (*IpnsEntry) ProtoMessage() {} +func (*IpnsEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_4d5b16fb32bfe8ea, []int{0} +} +func (m *IpnsEntry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IpnsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IpnsEntry.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IpnsEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_IpnsEntry.Merge(m, src) +} +func (m *IpnsEntry) XXX_Size() int { + return m.Size() +} +func (m *IpnsEntry) XXX_DiscardUnknown() { + xxx_messageInfo_IpnsEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_IpnsEntry proto.InternalMessageInfo + +func (m *IpnsEntry) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *IpnsEntry) GetSignature() []byte { + if m != nil { + return m.Signature + } + return nil +} + +func (m *IpnsEntry) GetValidityType() IpnsEntry_ValidityType { + if m != nil && m.ValidityType != nil { + return *m.ValidityType + } + return IpnsEntry_EOL +} + +func (m *IpnsEntry) GetValidity() []byte { + if m != nil { + return m.Validity + } + return nil +} + +func (m *IpnsEntry) GetSequence() uint64 { + if m != nil && m.Sequence != nil { + return *m.Sequence + } + return 0 +} + +func (m *IpnsEntry) GetTtl() uint64 { + if m != nil && m.Ttl != nil { + return *m.Ttl + } + return 0 +} + +func (m *IpnsEntry) GetPubKey() []byte { + if m != nil { + return m.PubKey + } + return nil +} + +func init() { + proto.RegisterEnum("ipns.pb.IpnsEntry_ValidityType", IpnsEntry_ValidityType_name, IpnsEntry_ValidityType_value) + proto.RegisterType((*IpnsEntry)(nil), "ipns.pb.IpnsEntry") +} + +func init() { proto.RegisterFile("ipns.proto", fileDescriptor_4d5b16fb32bfe8ea) } + +var fileDescriptor_4d5b16fb32bfe8ea = []byte{ + // 221 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xca, 0x2c, 0xc8, 0x2b, + 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x87, 0xb0, 0x93, 0x94, 0xfe, 0x33, 0x72, 0x71, + 0x7a, 0x16, 0xe4, 0x15, 0xbb, 0xe6, 0x95, 0x14, 0x55, 0x0a, 0x89, 0x70, 0xb1, 0x96, 0x25, 0xe6, + 0x94, 0xa6, 0x4a, 0x30, 0x2a, 0x30, 0x69, 0xf0, 0x04, 0x41, 0x38, 0x42, 0x32, 0x5c, 0x9c, 0xc5, + 0x99, 0xe9, 0x79, 0x89, 0x25, 0xa5, 0x45, 0xa9, 0x12, 0x4c, 0x60, 0x19, 0x84, 0x80, 0x90, 0x33, + 0x17, 0x4f, 0x59, 0x62, 0x4e, 0x66, 0x4a, 0x66, 0x49, 0x65, 0x48, 0x65, 0x41, 0xaa, 0x04, 0xb3, + 0x02, 0xa3, 0x06, 0x9f, 0x91, 0xbc, 0x1e, 0xd4, 0x06, 0x3d, 0xb8, 0xe9, 0x7a, 0x61, 0x48, 0xca, + 0x82, 0x50, 0x34, 0x09, 0x49, 0x71, 0x71, 0xc0, 0xf8, 0x12, 0x2c, 0x0a, 0x8c, 0x1a, 0x3c, 0x41, + 0x70, 0x3e, 0x48, 0xae, 0x38, 0xb5, 0xb0, 0x34, 0x35, 0x2f, 0x39, 0x55, 0x82, 0x55, 0x81, 0x51, + 0x83, 0x25, 0x08, 0xce, 0x17, 0x12, 0xe0, 0x62, 0x2e, 0x29, 0xc9, 0x91, 0x60, 0x03, 0x0b, 0x83, + 0x98, 0x42, 0x62, 0x5c, 0x6c, 0x05, 0xa5, 0x49, 0xde, 0xa9, 0x95, 0x12, 0xec, 0x60, 0x73, 0xa0, + 0x3c, 0x25, 0x71, 0x2e, 0x1e, 0x64, 0xfb, 0x85, 0xd8, 0xb9, 0x98, 0x5d, 0xfd, 0x7d, 0x04, 0x18, + 0x9c, 0x78, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0x46, 0x40, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x32, 0x35, 0xc7, 0xf2, 0x25, 0x01, 0x00, 0x00, +} + +func (m *IpnsEntry) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IpnsEntry) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("value") + } else { + dAtA[i] = 0xa + i++ + i = encodeVarintIpns(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + if m.Signature == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("signature") + } else { + dAtA[i] = 0x12 + i++ + i = encodeVarintIpns(dAtA, i, uint64(len(m.Signature))) + i += copy(dAtA[i:], m.Signature) + } + if m.ValidityType != nil { + dAtA[i] = 0x18 + i++ + i = encodeVarintIpns(dAtA, i, uint64(*m.ValidityType)) + } + if m.Validity != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintIpns(dAtA, i, uint64(len(m.Validity))) + i += copy(dAtA[i:], m.Validity) + } + if m.Sequence != nil { + dAtA[i] = 0x28 + i++ + i = encodeVarintIpns(dAtA, i, uint64(*m.Sequence)) + } + if m.Ttl != nil { + dAtA[i] = 0x30 + i++ + i = encodeVarintIpns(dAtA, i, uint64(*m.Ttl)) + } + if m.PubKey != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintIpns(dAtA, i, uint64(len(m.PubKey))) + i += copy(dAtA[i:], m.PubKey) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintIpns(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *IpnsEntry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + l = len(m.Value) + n += 1 + l + sovIpns(uint64(l)) + } + if m.Signature != nil { + l = len(m.Signature) + n += 1 + l + sovIpns(uint64(l)) + } + if m.ValidityType != nil { + n += 1 + sovIpns(uint64(*m.ValidityType)) + } + if m.Validity != nil { + l = len(m.Validity) + n += 1 + l + sovIpns(uint64(l)) + } + if m.Sequence != nil { + n += 1 + sovIpns(uint64(*m.Sequence)) + } + if m.Ttl != nil { + n += 1 + sovIpns(uint64(*m.Ttl)) + } + if m.PubKey != nil { + l = len(m.PubKey) + n += 1 + l + sovIpns(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovIpns(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIpns(x uint64) (n int) { + return sovIpns(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *IpnsEntry) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IpnsEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IpnsEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIpns + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIpns + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + hasFields[0] |= uint64(0x00000001) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIpns + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIpns + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...) + if m.Signature == nil { + m.Signature = []byte{} + } + iNdEx = postIndex + hasFields[0] |= uint64(0x00000002) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidityType", wireType) + } + var v IpnsEntry_ValidityType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= IpnsEntry_ValidityType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ValidityType = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validity", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIpns + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIpns + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Validity = append(m.Validity[:0], dAtA[iNdEx:postIndex]...) + if m.Validity == nil { + m.Validity = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Sequence = &v + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ttl", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Ttl = &v + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIpns + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIpns + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIpns + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PubKey = append(m.PubKey[:0], dAtA[iNdEx:postIndex]...) + if m.PubKey == nil { + m.PubKey = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIpns(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIpns + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIpns + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value") + } + if hasFields[0]&uint64(0x00000002) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("signature") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIpns(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIpns + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIpns + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIpns + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthIpns + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthIpns + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIpns + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipIpns(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthIpns + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthIpns = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIpns = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/ipfs/go-ipns/pb/ipns.proto b/vendor/github.com/ipfs/go-ipns/pb/ipns.proto new file mode 100644 index 00000000..f2e79fef --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/pb/ipns.proto @@ -0,0 +1,25 @@ +syntax = "proto2"; + +package ipns.pb; + +message IpnsEntry { + enum ValidityType { + // setting an EOL says "this record is valid until..." + EOL = 0; + } + required bytes value = 1; + required bytes signature = 2; + + optional ValidityType validityType = 3; + optional bytes validity = 4; + + optional uint64 sequence = 5; + + optional uint64 ttl = 6; + + // in order for nodes to properly validate a record upon receipt, they need the public + // key associated with it. For old RSA keys, its easiest if we just send this as part of + // the record itself. For newer ed25519 keys, the public key can be embedded in the + // peerID, making this field unnecessary. + optional bytes pubKey = 7; +} diff --git a/vendor/github.com/ipfs/go-ipns/record.go b/vendor/github.com/ipfs/go-ipns/record.go new file mode 100644 index 00000000..eb60ce6f --- /dev/null +++ b/vendor/github.com/ipfs/go-ipns/record.go @@ -0,0 +1,126 @@ +package ipns + +import ( + "bytes" + "errors" + + pb "github.com/ipfs/go-ipns/pb" + + proto "github.com/gogo/protobuf/proto" + logging "github.com/ipfs/go-log" + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + record "github.com/libp2p/go-libp2p-record" +) + +var log = logging.Logger("ipns") + +var _ record.Validator = Validator{} + +// RecordKey returns the libp2p record key for a given peer ID. +func RecordKey(pid peer.ID) string { + return "/ipns/" + string(pid) +} + +// Validator is an IPNS record validator that satisfies the libp2p record +// validator interface. +type Validator struct { + // KeyBook, if non-nil, will be used to lookup keys for validating IPNS + // records. + KeyBook pstore.KeyBook +} + +// Validate validates an IPNS record. +func (v Validator) Validate(key string, value []byte) error { + ns, pidString, err := record.SplitKey(key) + if err != nil || ns != "ipns" { + return ErrInvalidPath + } + + // Parse the value into an IpnsEntry + entry := new(pb.IpnsEntry) + err = proto.Unmarshal(value, entry) + if err != nil { + return ErrBadRecord + } + + // Get the public key defined by the ipns path + pid, err := peer.IDFromString(pidString) + if err != nil { + log.Debugf("failed to parse ipns record key %s into peer ID", pidString) + return ErrKeyFormat + } + + pubk, err := v.getPublicKey(pid, entry) + if err != nil { + return err + } + + return Validate(pubk, entry) +} + +func (v Validator) getPublicKey(pid peer.ID, entry *pb.IpnsEntry) (ic.PubKey, error) { + switch pk, err := ExtractPublicKey(pid, entry); err { + case peer.ErrNoPublicKey: + case nil: + return pk, nil + default: + return nil, err + } + + if v.KeyBook == nil { + log.Debugf("public key with hash %s not found in IPNS record and no peer store provided", pid) + return nil, ErrPublicKeyNotFound + } + + pubk := v.KeyBook.PubKey(pid) + if pubk == nil { + log.Debugf("public key with hash %s not found in peer store", pid) + return nil, ErrPublicKeyNotFound + } + return pubk, nil +} + +// Select selects the best record by checking which has the highest sequence +// number and latest EOL. +// +// This function returns an error if any of the records fail to parse. Validate +// your records first! +func (v Validator) Select(k string, vals [][]byte) (int, error) { + var recs []*pb.IpnsEntry + for _, v := range vals { + e := new(pb.IpnsEntry) + if err := proto.Unmarshal(v, e); err != nil { + return -1, err + } + recs = append(recs, e) + } + + return selectRecord(recs, vals) +} + +func selectRecord(recs []*pb.IpnsEntry, vals [][]byte) (int, error) { + switch len(recs) { + case 0: + return -1, errors.New("no usable records in given set") + case 1: + return 0, nil + } + + var i int + for j := 1; j < len(recs); j++ { + cmp, err := Compare(recs[i], recs[j]) + if err != nil { + return -1, err + } + if cmp == 0 { + cmp = bytes.Compare(vals[i], vals[j]) + } + if cmp < 0 { + i = j + } + } + + return i, nil +} diff --git a/vendor/github.com/ipfs/go-log/.travis.yml b/vendor/github.com/ipfs/go-log/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-log/LICENSE b/vendor/github.com/ipfs/go-log/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/ipfs/go-log/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-log/README.md b/vendor/github.com/ipfs/go-log/README.md new file mode 100644 index 00000000..344b25a4 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/README.md @@ -0,0 +1,79 @@ +# go-log + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-log?status.svg)](https://godoc.org/github.com/ipfs/go-log) +[![Build Status](https://travis-ci.org/ipfs/go-log.svg?branch=master)](https://travis-ci.org/ipfs/go-log) + + + + +> The logging library used by go-ipfs + +It currently uses a modified version of [go-logging](https://github.com/whyrusleeping/go-logging) to implement the standard printf-style log output. + +## Install + +```sh +go get github.com/ipfs/go-log +``` + +## Usage + +Once the pacakge is imported under the name `logging`, an instance of `EventLogger` can be created like so: + +```go +var log = logging.Logger("subsystem name") +``` + +It can then be used to emit log messages, either plain printf-style messages at six standard levels or structured messages using `Start`, `StartFromParentState`, `Finish` and `FinishWithErr` methods. + +## Example + +```go +func (s *Session) GetBlock(ctx context.Context, c *cid.Cid) (blk blocks.Block, err error) { + + // Starts Span called "Session.GetBlock", associates with `ctx` + ctx = log.Start(ctx, "Session.GetBlock") + + // defer so `blk` and `err` can be evaluated after call + defer func() { + // tag span associated with `ctx` + log.SetTags(ctx, map[string]interface{}{ + "cid": c, + "block", blk, + }) + // if err is non-nil tag the span with an error + log.FinishWithErr(ctx, err) + }() + + if shouldStartSomething() { + // log message on span associated with `ctx` + log.LogKV(ctx, "startSomething", true) + } + ... +} +``` +## Tracing + +`go-log` wraps the [opentracing-go](https://github.com/opentracing/opentracing-go) methods - `StartSpan`, `Finish`, `LogKV`, and `SetTag`. + +`go-log` implements its own tracer - `loggabletracer` - based on the [basictracer-go](https://github.com/opentracing/basictracer-go) implementation. If there is an active [`WriterGroup`](https://github.com/ipfs/go-log/blob/master/writer/option.go) the `loggabletracer` will [record](https://github.com/ipfs/go-log/blob/master/tracer/recorder.go) span data to the `WriterGroup`. An example of this can be seen in the [`log tail`](https://github.com/ipfs/go-ipfs/blob/master/core/commands/log.go) command of `go-ipfs`. + +Third party tracers may be used by calling `opentracing.SetGlobalTracer()` with your desired tracing implementation. An example of this can be seen using the [`go-jaeger-plugin`](https://github.com/ipfs/go-jaeger-plugin) and the `go-ipfs` [tracer plugin](https://github.com/ipfs/go-ipfs/blob/master/plugin/tracer.go) + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-log/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/ipfs/go-log/context.go b/vendor/github.com/ipfs/go-log/context.go new file mode 100644 index 00000000..b8ef5bc8 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/context.go @@ -0,0 +1,38 @@ +package log + +import ( + "context" + "errors" +) + +type key int + +const metadataKey key = 0 + +// ContextWithLoggable returns a derived context which contains the provided +// Loggable. Any Events logged with the derived context will include the +// provided Loggable. +func ContextWithLoggable(ctx context.Context, l Loggable) context.Context { + existing, err := MetadataFromContext(ctx) + if err != nil { + // context does not contain meta. just set the new metadata + child := context.WithValue(ctx, metadataKey, Metadata(l.Loggable())) + return child + } + + merged := DeepMerge(existing, l.Loggable()) + child := context.WithValue(ctx, metadataKey, merged) + return child +} + +// MetadataFromContext extracts Matadata from a given context's value. +func MetadataFromContext(ctx context.Context) (Metadata, error) { + value := ctx.Value(metadataKey) + if value != nil { + metadata, ok := value.(Metadata) + if ok { + return metadata, nil + } + } + return nil, errors.New("context contains no metadata") +} diff --git a/vendor/github.com/ipfs/go-log/entry.go b/vendor/github.com/ipfs/go-log/entry.go new file mode 100644 index 00000000..63c02135 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/entry.go @@ -0,0 +1,7 @@ +package log + +type entry struct { + loggables []Loggable + system string + event string +} diff --git a/vendor/github.com/ipfs/go-log/go.mod b/vendor/github.com/ipfs/go-log/go.mod new file mode 100644 index 00000000..c1716c85 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/go.mod @@ -0,0 +1,10 @@ +module github.com/ipfs/go-log + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/mattn/go-colorable v0.1.1 + github.com/opentracing/opentracing-go v1.0.2 + github.com/stretchr/testify v1.3.0 // indirect + github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc + golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 // indirect +) diff --git a/vendor/github.com/ipfs/go-log/go.sum b/vendor/github.com/ipfs/go-log/go.sum new file mode 100644 index 00000000..b9b0dc91 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/go.sum @@ -0,0 +1,24 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/ipfs/go-log/log.go b/vendor/github.com/ipfs/go-log/log.go new file mode 100644 index 00000000..735eebab --- /dev/null +++ b/vendor/github.com/ipfs/go-log/log.go @@ -0,0 +1,404 @@ +// Package log is the logging library used by IPFS +// (https://github.com/ipfs/go-ipfs). It uses a modified version of +// https://godoc.org/github.com/whyrusleeping/go-logging . +package log + +import ( + "bytes" + "context" + "encoding/json" + "path" + "runtime" + "time" + + writer "github.com/ipfs/go-log/writer" + + opentrace "github.com/opentracing/opentracing-go" + otExt "github.com/opentracing/opentracing-go/ext" +) + +var log = Logger("eventlog") + +// StandardLogger provides API compatibility with standard printf loggers +// eg. go-logging +type StandardLogger interface { + Debug(args ...interface{}) + Debugf(format string, args ...interface{}) + Error(args ...interface{}) + Errorf(format string, args ...interface{}) + Fatal(args ...interface{}) + Fatalf(format string, args ...interface{}) + Info(args ...interface{}) + Infof(format string, args ...interface{}) + Panic(args ...interface{}) + Panicf(format string, args ...interface{}) + Warning(args ...interface{}) + Warningf(format string, args ...interface{}) +} + +// EventLogger extends the StandardLogger interface to allow for log items +// containing structured metadata +type EventLogger interface { + StandardLogger + + // Event merges structured data from the provided inputs into a single + // machine-readable log event. + // + // If the context contains metadata, a copy of this is used as the base + // metadata accumulator. + // + // If one or more loggable objects are provided, these are deep-merged into base blob. + // + // Next, the event name is added to the blob under the key "event". If + // the key "event" already exists, it will be over-written. + // + // Finally the timestamp and package name are added to the accumulator and + // the metadata is logged. + // DEPRECATED + Event(ctx context.Context, event string, m ...Loggable) + + // DEPRECATED + EventBegin(ctx context.Context, event string, m ...Loggable) *EventInProgress + + // Start starts an opentracing span with `name`, using + // any Span found within `ctx` as a ChildOfRef. If no such parent could be + // found, Start creates a root (parentless) Span. + // + // The return value is a context.Context object built around the + // returned Span. + // + // Example usage: + // + // SomeFunction(ctx context.Context, ...) { + // ctx := log.Start(ctx, "SomeFunction") + // defer log.Finish(ctx) + // ... + // } + Start(ctx context.Context, name string) context.Context + + // StartFromParentState starts an opentracing span with `name`, using + // any Span found within `ctx` as a ChildOfRef. If no such parent could be + // found, StartSpanFromParentState creates a root (parentless) Span. + // + // StartFromParentState will attempt to deserialize a SpanContext from `parent`, + // using any Span found within to continue the trace + // + // The return value is a context.Context object built around the + // returned Span. + // + // An error is returned when `parent` cannot be deserialized to a SpanContext + // + // Example usage: + // + // SomeFunction(ctx context.Context, bParent []byte) { + // ctx := log.StartFromParentState(ctx, "SomeFunction", bParent) + // defer log.Finish(ctx) + // ... + // } + StartFromParentState(ctx context.Context, name string, parent []byte) (context.Context, error) + + // Finish completes the span associated with `ctx`. + // + // Finish() must be the last call made to any span instance, and to do + // otherwise leads to undefined behavior. + // Finish will do its best to notify (log) when used in correctly + // .e.g called twice, or called on a spanless `ctx` + Finish(ctx context.Context) + + // FinishWithErr completes the span associated with `ctx` and also calls + // SetErr if `err` is non-nil + // + // FinishWithErr() must be the last call made to any span instance, and to do + // otherwise leads to undefined behavior. + // FinishWithErr will do its best to notify (log) when used in correctly + // .e.g called twice, or called on a spanless `ctx` + FinishWithErr(ctx context.Context, err error) + + // SetErr tags the span associated with `ctx` to reflect an error occured, and + // logs the value `err` under key `error`. + SetErr(ctx context.Context, err error) + + // LogKV records key:value logging data about an event stored in `ctx` + // Eexample: + // log.LogKV( + // "error", "resolve failure", + // "type", "cache timeout", + // "waited.millis", 1500) + LogKV(ctx context.Context, alternatingKeyValues ...interface{}) + + // SetTag tags key `k` and value `v` on the span associated with `ctx` + SetTag(ctx context.Context, key string, value interface{}) + + // SetTags tags keys from the `tags` maps on the span associated with `ctx` + // Example: + // log.SetTags(ctx, map[string]{ + // "type": bizStruct, + // "request": req, + // }) + SetTags(ctx context.Context, tags map[string]interface{}) + + // SerializeContext takes the SpanContext instance stored in `ctx` and Seralizes + // it to bytes. An error is returned if the `ctx` cannot be serialized to + // a bytes array + SerializeContext(ctx context.Context) ([]byte, error) +} + +// Logger retrieves an event logger by name +func Logger(system string) EventLogger { + + // TODO if we would like to adjust log levels at run-time. Store this event + // logger in a map (just like the util.Logger impl) + if len(system) == 0 { + setuplog := getLogger("setup-logger") + setuplog.Warning("Missing name parameter") + system = "undefined" + } + + logger := getLogger(system) + + return &eventLogger{system: system, StandardLogger: logger} +} + +// eventLogger implements the EventLogger and wraps a go-logging Logger +type eventLogger struct { + StandardLogger + + system string + // TODO add log-level +} + +func (el *eventLogger) Start(ctx context.Context, operationName string) context.Context { + span, ctx := opentrace.StartSpanFromContext(ctx, operationName) + span.SetTag("system", el.system) + return ctx +} + +func (el *eventLogger) StartFromParentState(ctx context.Context, operationName string, parent []byte) (context.Context, error) { + sc, err := deserializeContext(parent) + if err != nil { + return nil, err + } + + //TODO RPCServerOption is probably not the best tag, as this is likely from a peer + span, ctx := opentrace.StartSpanFromContext(ctx, operationName, otExt.RPCServerOption(sc)) + span.SetTag("system", el.system) + return ctx, nil +} + +func (el *eventLogger) SerializeContext(ctx context.Context) ([]byte, error) { + gTracer := opentrace.GlobalTracer() + b := make([]byte, 0) + carrier := bytes.NewBuffer(b) + span := opentrace.SpanFromContext(ctx) + if err := gTracer.Inject(span.Context(), opentrace.Binary, carrier); err != nil { + return nil, err + } + return carrier.Bytes(), nil +} + +func (el *eventLogger) LogKV(ctx context.Context, alternatingKeyValues ...interface{}) { + span := opentrace.SpanFromContext(ctx) + if span == nil { + _, file, line, _ := runtime.Caller(1) + log.Errorf("LogKV with no Span in context called on %s:%d", path.Base(file), line) + return + } + span.LogKV(alternatingKeyValues...) +} + +func (el *eventLogger) SetTag(ctx context.Context, k string, v interface{}) { + span := opentrace.SpanFromContext(ctx) + if span == nil { + _, file, line, _ := runtime.Caller(1) + log.Errorf("SetTag with no Span in context called on %s:%d", path.Base(file), line) + return + } + span.SetTag(k, v) +} + +func (el *eventLogger) SetTags(ctx context.Context, tags map[string]interface{}) { + span := opentrace.SpanFromContext(ctx) + if span == nil { + _, file, line, _ := runtime.Caller(1) + log.Errorf("SetTags with no Span in context called on %s:%d", path.Base(file), line) + return + } + for k, v := range tags { + span.SetTag(k, v) + } +} + +func (el *eventLogger) setErr(ctx context.Context, err error, skip int) { + span := opentrace.SpanFromContext(ctx) + if span == nil { + _, file, line, _ := runtime.Caller(skip) + log.Errorf("SetErr with no Span in context called on %s:%d", path.Base(file), line) + return + } + if err == nil { + return + } + + otExt.Error.Set(span, true) + span.LogKV("error", err.Error()) +} + +func (el *eventLogger) SetErr(ctx context.Context, err error) { + el.setErr(ctx, err, 1) +} + +func (el *eventLogger) Finish(ctx context.Context) { + span := opentrace.SpanFromContext(ctx) + if span == nil { + _, file, line, _ := runtime.Caller(1) + log.Errorf("Finish with no Span in context called on %s:%d", path.Base(file), line) + return + } + span.Finish() +} + +func (el *eventLogger) FinishWithErr(ctx context.Context, err error) { + el.setErr(ctx, err, 2) + el.Finish(ctx) +} + +func deserializeContext(bCtx []byte) (opentrace.SpanContext, error) { + gTracer := opentrace.GlobalTracer() + carrier := bytes.NewReader(bCtx) + spanContext, err := gTracer.Extract(opentrace.Binary, carrier) + if err != nil { + log.Warning("Failed to deserialize context %s", err) + return nil, err + } + return spanContext, nil +} + +// DEPRECATED use `Start` +func (el *eventLogger) EventBegin(ctx context.Context, event string, metadata ...Loggable) *EventInProgress { + ctx = el.Start(ctx, event) + + for _, m := range metadata { + for l, v := range m.Loggable() { + el.LogKV(ctx, l, v) + } + } + + eip := &EventInProgress{} + eip.doneFunc = func(additional []Loggable) { + // anything added during the operation + // e.g. deprecated methods event.Append(...) or event.SetError(...) + for _, m := range eip.loggables { + for l, v := range m.Loggable() { + el.LogKV(ctx, l, v) + } + } + el.Finish(ctx) + } + return eip +} + +type activeEventKeyType struct{} + +var activeEventKey = activeEventKeyType{} + +// DEPRECATED use `Start` +func (el *eventLogger) Event(ctx context.Context, event string, metadata ...Loggable) { + + // short circuit if theres nothing to write to + if !writer.WriterGroup.Active() { + return + } + + // Collect loggables for later logging + var loggables []Loggable + + // get any existing metadata from the context + existing, err := MetadataFromContext(ctx) + if err != nil { + existing = Metadata{} + } + loggables = append(loggables, existing) + + for _, datum := range metadata { + loggables = append(loggables, datum) + } + + e := entry{ + loggables: loggables, + system: el.system, + event: event, + } + + accum := Metadata{} + for _, loggable := range e.loggables { + accum = DeepMerge(accum, loggable.Loggable()) + } + + // apply final attributes to reserved keys + // TODO accum["level"] = level + accum["event"] = e.event + accum["system"] = e.system + accum["time"] = FormatRFC3339(time.Now()) + + var buf bytes.Buffer + encoder := json.NewEncoder(&buf) + encoder.SetEscapeHTML(false) + err = encoder.Encode(accum) + if err != nil { + el.Errorf("ERROR FORMATTING EVENT ENTRY: %s", err) + return + } + + writer.WriterGroup.Write(buf.Bytes()) +} + +// DEPRECATED +// EventInProgress represent and event which is happening +type EventInProgress struct { + loggables []Loggable + doneFunc func([]Loggable) +} + +// DEPRECATED use `LogKV` or `SetTag` +// Append adds loggables to be included in the call to Done +func (eip *EventInProgress) Append(l Loggable) { + eip.loggables = append(eip.loggables, l) +} + +// DEPRECATED use `SetError(ctx, error)` +// SetError includes the provided error +func (eip *EventInProgress) SetError(err error) { + eip.loggables = append(eip.loggables, LoggableMap{ + "error": err.Error(), + }) +} + +// DEPRECATED use `Finish` +// Done creates a new Event entry that includes the duration and appended +// loggables. +func (eip *EventInProgress) Done() { + eip.doneFunc(eip.loggables) // create final event with extra data +} + +// DEPRECATED use `FinishWithErr` +// DoneWithErr creates a new Event entry that includes the duration and appended +// loggables. DoneWithErr accepts an error, if err is non-nil, it is set on +// the EventInProgress. Otherwise the logic is the same as the `Done()` method +func (eip *EventInProgress) DoneWithErr(err error) { + if err != nil { + eip.SetError(err) + } + eip.doneFunc(eip.loggables) +} + +// DEPRECATED use `Finish` +// Close is an alias for done +func (eip *EventInProgress) Close() error { + eip.Done() + return nil +} + +// FormatRFC3339 returns the given time in UTC with RFC3999Nano format. +func FormatRFC3339(t time.Time) string { + return t.UTC().Format(time.RFC3339Nano) +} diff --git a/vendor/github.com/ipfs/go-log/loggable.go b/vendor/github.com/ipfs/go-log/loggable.go new file mode 100644 index 00000000..f4edb268 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/loggable.go @@ -0,0 +1,42 @@ +package log + +// Loggable describes objects that can be marshalled into Metadata for logging +type Loggable interface { + Loggable() map[string]interface{} +} + +// LoggableMap is just a generic map keyed by string. It +// implements the Loggable interface. +type LoggableMap map[string]interface{} + +// Loggable implements the Loggable interface for LoggableMap +func (l LoggableMap) Loggable() map[string]interface{} { + return l +} + +// LoggableF converts a func into a Loggable +type LoggableF func() map[string]interface{} + +// Loggable implements the Loggable interface by running +// the LoggableF function. +func (l LoggableF) Loggable() map[string]interface{} { + return l() +} + +// Deferred returns a LoggableF where the execution of the +// provided function is deferred. +func Deferred(key string, f func() string) Loggable { + function := func() map[string]interface{} { + return map[string]interface{}{ + key: f(), + } + } + return LoggableF(function) +} + +// Pair returns a Loggable where key is paired to Loggable. +func Pair(key string, l Loggable) Loggable { + return LoggableMap{ + key: l, + } +} diff --git a/vendor/github.com/ipfs/go-log/metadata.go b/vendor/github.com/ipfs/go-log/metadata.go new file mode 100644 index 00000000..07947b54 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/metadata.go @@ -0,0 +1,77 @@ +package log + +import ( + "encoding/json" + "errors" + "reflect" +) + +// Metadata is a convenience type for generic maps +type Metadata map[string]interface{} + +// DeepMerge merges the second Metadata parameter into the first. +// Nested Metadata are merged recursively. Primitives are over-written. +func DeepMerge(b, a Metadata) Metadata { + out := Metadata{} + for k, v := range b { + out[k] = v + } + for k, v := range a { + + maybe, err := Metadatify(v) + if err != nil { + // if the new value is not meta. just overwrite the dest vaue + if out[k] != nil { + log.Debugf("Overwriting key: %s, old: %s, new: %s", k, out[k], v) + } + out[k] = v + continue + } + + // it is meta. What about dest? + outv, exists := out[k] + if !exists { + // the new value is meta, but there's no dest value. just write it + out[k] = v + continue + } + + outMetadataValue, err := Metadatify(outv) + if err != nil { + // the new value is meta and there's a dest value, but the dest + // value isn't meta. just overwrite + out[k] = v + continue + } + + // both are meta. merge them. + out[k] = DeepMerge(outMetadataValue, maybe) + } + return out +} + +// Loggable implements the Loggable interface. +func (m Metadata) Loggable() map[string]interface{} { + // NB: method defined on value to avoid de-referencing nil Metadata + return m +} + +// JsonString returns the marshaled JSON string for the metadata. +func (m Metadata) JsonString() (string, error) { + // NB: method defined on value + b, err := json.Marshal(m) + return string(b), err +} + +// Metadatify converts maps into Metadata. +func Metadatify(i interface{}) (Metadata, error) { + value := reflect.ValueOf(i) + if value.Kind() == reflect.Map { + m := map[string]interface{}{} + for _, k := range value.MapKeys() { + m[k.String()] = value.MapIndex(k).Interface() + } + return Metadata(m), nil + } + return nil, errors.New("is not a map") +} diff --git a/vendor/github.com/ipfs/go-log/oldlog.go b/vendor/github.com/ipfs/go-log/oldlog.go new file mode 100644 index 00000000..c09ec849 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/oldlog.go @@ -0,0 +1,177 @@ +package log + +import ( + "errors" + "fmt" + "os" + "sync" + + tracer "github.com/ipfs/go-log/tracer" + lwriter "github.com/ipfs/go-log/writer" + + colorable "github.com/mattn/go-colorable" + opentrace "github.com/opentracing/opentracing-go" + logging "github.com/whyrusleeping/go-logging" +) + +func init() { + SetupLogging() +} + +var ansiGray = "\033[0;37m" +var ansiBlue = "\033[0;34m" + +// LogFormats defines formats for logging (i.e. "color") +var LogFormats = map[string]string{ + "nocolor": "%{time:2006-01-02 15:04:05.000000} %{level} %{module} %{shortfile}: %{message}", + "color": ansiGray + "%{time:15:04:05.000} %{color}%{level:5.5s} " + ansiBlue + + "%{module:10.10s}: %{color:reset}%{message} " + ansiGray + "%{shortfile}%{color:reset}", +} + +var defaultLogFormat = "color" + +// Logging environment variables +const ( + // TODO these env names should be more general, IPFS is not the only project to + // use go-log + envLogging = "IPFS_LOGGING" + envLoggingFmt = "IPFS_LOGGING_FMT" + + envLoggingFile = "GOLOG_FILE" // /path/to/file + envTracingFile = "GOLOG_TRACING_FILE" // /path/to/file +) + +// ErrNoSuchLogger is returned when the util pkg is asked for a non existant logger +var ErrNoSuchLogger = errors.New("Error: No such logger") + +// loggers is the set of loggers in the system +var loggerMutex sync.RWMutex +var loggers = map[string]*logging.Logger{} + +// SetupLogging will initialize the logger backend and set the flags. +// TODO calling this in `init` pushes all configuration to env variables +// - move it out of `init`? then we need to change all the code (js-ipfs, go-ipfs) to call this explicitly +// - have it look for a config file? need to define what that is +func SetupLogging() { + + // colorful or plain + lfmt := LogFormats[os.Getenv(envLoggingFmt)] + if lfmt == "" { + lfmt = LogFormats[defaultLogFormat] + } + + // check if we log to a file + var lgbe []logging.Backend + if logfp := os.Getenv(envLoggingFile); len(logfp) > 0 { + f, err := os.Create(logfp) + if err != nil { + fmt.Fprintf(os.Stderr, "ERROR go-log: %s: failed to set logging file backend\n", err) + } else { + lgbe = append(lgbe, logging.NewLogBackend(f, "", 0)) + } + } + + // logs written to stderr + lgbe = append(lgbe, logging.NewLogBackend(colorable.NewColorableStderr(), "", 0)) + + // set the backend(s) + logging.SetBackend(lgbe...) + logging.SetFormatter(logging.MustStringFormatter(lfmt)) + + lvl := logging.ERROR + + if logenv := os.Getenv(envLogging); logenv != "" { + var err error + lvl, err = logging.LogLevel(logenv) + if err != nil { + fmt.Println("error setting log levels", err) + } + } + + // TracerPlugins are instantiated after this, so use loggable tracer + // by default, if a TracerPlugin is added it will override this + lgblRecorder := tracer.NewLoggableRecorder() + lgblTracer := tracer.New(lgblRecorder) + opentrace.SetGlobalTracer(lgblTracer) + + SetAllLoggers(lvl) + + if tracingfp := os.Getenv(envTracingFile); len(tracingfp) > 0 { + f, err := os.Create(tracingfp) + if err != nil { + log.Error("failed to create tracing file: %s", tracingfp) + } else { + lwriter.WriterGroup.AddWriter(f) + } + } +} + +// SetDebugLogging calls SetAllLoggers with logging.DEBUG +func SetDebugLogging() { + SetAllLoggers(logging.DEBUG) +} + +// SetAllLoggers changes the logging.Level of all loggers to lvl +func SetAllLoggers(lvl logging.Level) { + logging.SetLevel(lvl, "") + + loggerMutex.RLock() + defer loggerMutex.RUnlock() + + for n := range loggers { + logging.SetLevel(lvl, n) + } +} + +// SetLogLevel changes the log level of a specific subsystem +// name=="*" changes all subsystems +func SetLogLevel(name, level string) error { + lvl, err := logging.LogLevel(level) + if err != nil { + return err + } + + // wildcard, change all + if name == "*" { + SetAllLoggers(lvl) + return nil + } + + loggerMutex.RLock() + defer loggerMutex.RUnlock() + + // Check if we have a logger by that name + if _, ok := loggers[name]; !ok { + return ErrNoSuchLogger + } + + logging.SetLevel(lvl, name) + + return nil +} + +// GetSubsystems returns a slice containing the +// names of the current loggers +func GetSubsystems() []string { + loggerMutex.RLock() + defer loggerMutex.RUnlock() + subs := make([]string, 0, len(loggers)) + + for k := range loggers { + subs = append(subs, k) + } + return subs +} + +func getLogger(name string) *logging.Logger { + loggerMutex.Lock() + defer loggerMutex.Unlock() + + log := loggers[name] + if log == nil { + log = logging.MustGetLogger(name) + loggers[name] = log + } + + return log +} diff --git a/vendor/github.com/ipfs/go-log/package.json b/vendor/github.com/ipfs/go-log/package.json new file mode 100644 index 00000000..adcf8cd0 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/package.json @@ -0,0 +1,41 @@ +{ + "bugs": { + "url": "https://github.com/ipfs/go-log" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-log" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmcaSwFc5RBg8yCq54QURwEU4nwjfCpjbpmaAm4VbdGLKv", + "name": "go-logging", + "version": "0.0.0" + }, + { + "author": "frist", + "hash": "QmWLWmRVSiagqP15jczsGME1qpob6HDbtbHAY2he9W5iUo", + "name": "opentracing-go", + "version": "0.0.3" + }, + { + "author": "mattn", + "hash": "QmTsHcKgTQ4VeYZd8eKYpTXeLW7KNwkRD9wjnrwsV2sToq", + "name": "go-colorable", + "version": "0.2.0" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-log", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.5.9" +} + diff --git a/vendor/github.com/ipfs/go-log/tracer/LICENSE b/vendor/github.com/ipfs/go-log/tracer/LICENSE new file mode 100644 index 00000000..148509a4 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 The OpenTracing Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-log/tracer/context.go b/vendor/github.com/ipfs/go-log/tracer/context.go new file mode 100644 index 00000000..f1ebf61f --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/context.go @@ -0,0 +1,42 @@ +package loggabletracer + +// SpanContext holds the basic Span metadata. +type SpanContext struct { + // A probabilistically unique identifier for a [multi-span] trace. + TraceID uint64 + + // A probabilistically unique identifier for a span. + SpanID uint64 + + // Whether the trace is sampled. + Sampled bool + + // The span's associated baggage. + Baggage map[string]string // initialized on first use +} + +// ForeachBaggageItem belongs to the opentracing.SpanContext interface +func (c SpanContext) ForeachBaggageItem(handler func(k, v string) bool) { + for k, v := range c.Baggage { + if !handler(k, v) { + break + } + } +} + +// WithBaggageItem returns an entirely new loggabletracer SpanContext with the +// given key:value baggage pair set. +func (c SpanContext) WithBaggageItem(key, val string) SpanContext { + var newBaggage map[string]string + if c.Baggage == nil { + newBaggage = map[string]string{key: val} + } else { + newBaggage = make(map[string]string, len(c.Baggage)+1) + for k, v := range c.Baggage { + newBaggage[k] = v + } + newBaggage[key] = val + } + // Use positional parameters so the compiler will help catch new fields. + return SpanContext{c.TraceID, c.SpanID, c.Sampled, newBaggage} +} diff --git a/vendor/github.com/ipfs/go-log/tracer/debug.go b/vendor/github.com/ipfs/go-log/tracer/debug.go new file mode 100644 index 00000000..8c302b37 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/debug.go @@ -0,0 +1,78 @@ +package loggabletracer + +import ( + "bytes" + "fmt" + "runtime" + "strconv" + "sync" +) + +const debugGoroutineIDTag = "_initial_goroutine" + +type errAssertionFailed struct { + span *spanImpl + msg string +} + +// Error implements the error interface. +func (err *errAssertionFailed) Error() string { + return fmt.Sprintf("%s:\n%+v", err.msg, err.span) +} + +func (s *spanImpl) Lock() { + s.Mutex.Lock() + s.maybeAssertSanityLocked() +} + +func (s *spanImpl) maybeAssertSanityLocked() { + if s.tracer == nil { + s.Mutex.Unlock() + panic(&errAssertionFailed{span: s, msg: "span used after call to Finish()"}) + } + if s.tracer.options.DebugAssertSingleGoroutine { + startID := curGoroutineID() + curID, ok := s.raw.Tags[debugGoroutineIDTag].(uint64) + if !ok { + // This is likely invoked in the context of the SetTag which sets + // debugGoroutineTag. + return + } + if startID != curID { + s.Mutex.Unlock() + panic(&errAssertionFailed{ + span: s, + msg: fmt.Sprintf("span started on goroutine %d, but now running on %d", startID, curID), + }) + } + } +} + +var goroutineSpace = []byte("goroutine ") +var littleBuf = sync.Pool{ + New: func() interface{} { + buf := make([]byte, 64) + return &buf + }, +} + +// Credit to @bradfitz: +// https://github.com/golang/net/blob/master/http2/gotrack.go#L51 +func curGoroutineID() uint64 { + bp := littleBuf.Get().(*[]byte) + defer littleBuf.Put(bp) + b := *bp + b = b[:runtime.Stack(b, false)] + // Parse the 4707 out of "goroutine 4707 [" + b = bytes.TrimPrefix(b, goroutineSpace) + i := bytes.IndexByte(b, ' ') + if i < 0 { + panic(fmt.Sprintf("No space found in %q", b)) + } + b = b[:i] + n, err := strconv.ParseUint(string(b), 10, 64) + if err != nil { + panic(fmt.Sprintf("Failed to parse goroutine ID out of %q: %v", b, err)) + } + return n +} diff --git a/vendor/github.com/ipfs/go-log/tracer/event.go b/vendor/github.com/ipfs/go-log/tracer/event.go new file mode 100644 index 00000000..9dbcb76a --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/event.go @@ -0,0 +1,62 @@ +package loggabletracer + +import "github.com/opentracing/opentracing-go" + +// A SpanEvent is emitted when a mutating command is called on a Span. +type SpanEvent interface{} + +// EventCreate is emitted when a Span is created. +type EventCreate struct{ OperationName string } + +// EventTag is received when SetTag is called. +type EventTag struct { + Key string + Value interface{} +} + +// EventBaggage is received when SetBaggageItem is called. +type EventBaggage struct { + Key, Value string +} + +// EventLogFields is received when LogFields or LogKV is called. +type EventLogFields opentracing.LogRecord + +// EventLog is received when Log (or one of its derivatives) is called. +// +// DEPRECATED +type EventLog opentracing.LogData + +// EventFinish is received when Finish is called. +type EventFinish RawSpan + +func (s *spanImpl) onCreate(opName string) { + if s.event != nil { + s.event(EventCreate{OperationName: opName}) + } +} +func (s *spanImpl) onTag(key string, value interface{}) { + if s.event != nil { + s.event(EventTag{Key: key, Value: value}) + } +} +func (s *spanImpl) onLog(ld opentracing.LogData) { + if s.event != nil { + s.event(EventLog(ld)) + } +} +func (s *spanImpl) onLogFields(lr opentracing.LogRecord) { + if s.event != nil { + s.event(EventLogFields(lr)) + } +} +func (s *spanImpl) onBaggage(key, value string) { + if s.event != nil { + s.event(EventBaggage{Key: key, Value: value}) + } +} +func (s *spanImpl) onFinish(sp RawSpan) { + if s.event != nil { + s.event(EventFinish(sp)) + } +} diff --git a/vendor/github.com/ipfs/go-log/tracer/propagation.go b/vendor/github.com/ipfs/go-log/tracer/propagation.go new file mode 100644 index 00000000..bb210659 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/propagation.go @@ -0,0 +1,61 @@ +package loggabletracer + +import opentracing "github.com/opentracing/opentracing-go" + +type accessorPropagator struct { + tracer *LoggableTracer +} + +// DelegatingCarrier is a flexible carrier interface which can be implemented +// by types which have a means of storing the trace metadata and already know +// how to serialize themselves (for example, protocol buffers). +type DelegatingCarrier interface { + SetState(traceID, spanID uint64, sampled bool) + State() (traceID, spanID uint64, sampled bool) + SetBaggageItem(key, value string) + GetBaggage(func(key, value string)) +} + +func (p *accessorPropagator) Inject( + spanContext opentracing.SpanContext, + carrier interface{}, +) error { + dc, ok := carrier.(DelegatingCarrier) + if !ok || dc == nil { + return opentracing.ErrInvalidCarrier + } + sc, ok := spanContext.(SpanContext) + if !ok { + return opentracing.ErrInvalidSpanContext + } + dc.SetState(sc.TraceID, sc.SpanID, sc.Sampled) + for k, v := range sc.Baggage { + dc.SetBaggageItem(k, v) + } + return nil +} + +func (p *accessorPropagator) Extract( + carrier interface{}, +) (opentracing.SpanContext, error) { + dc, ok := carrier.(DelegatingCarrier) + if !ok || dc == nil { + return nil, opentracing.ErrInvalidCarrier + } + + traceID, spanID, sampled := dc.State() + sc := SpanContext{ + TraceID: traceID, + SpanID: spanID, + Sampled: sampled, + Baggage: nil, + } + dc.GetBaggage(func(k, v string) { + if sc.Baggage == nil { + sc.Baggage = map[string]string{} + } + sc.Baggage[k] = v + }) + + return sc, nil +} diff --git a/vendor/github.com/ipfs/go-log/tracer/propagation_ot.go b/vendor/github.com/ipfs/go-log/tracer/propagation_ot.go new file mode 100644 index 00000000..4a4782ea --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/propagation_ot.go @@ -0,0 +1,180 @@ +package loggabletracer + +import ( + "encoding/binary" + "io" + "strconv" + "strings" + + "github.com/gogo/protobuf/proto" + "github.com/ipfs/go-log/tracer/wire" + opentracing "github.com/opentracing/opentracing-go" +) + +type textMapPropagator struct { + tracer *LoggableTracer +} +type binaryPropagator struct { + tracer *LoggableTracer +} + +const ( + prefixTracerState = "ot-tracer-" + prefixBaggage = "ot-baggage-" + + tracerStateFieldCount = 3 + fieldNameTraceID = prefixTracerState + "traceid" + fieldNameSpanID = prefixTracerState + "spanid" + fieldNameSampled = prefixTracerState + "sampled" +) + +func (p *textMapPropagator) Inject( + spanContext opentracing.SpanContext, + opaqueCarrier interface{}, +) error { + sc, ok := spanContext.(SpanContext) + if !ok { + return opentracing.ErrInvalidSpanContext + } + carrier, ok := opaqueCarrier.(opentracing.TextMapWriter) + if !ok { + return opentracing.ErrInvalidCarrier + } + carrier.Set(fieldNameTraceID, strconv.FormatUint(sc.TraceID, 16)) + carrier.Set(fieldNameSpanID, strconv.FormatUint(sc.SpanID, 16)) + carrier.Set(fieldNameSampled, strconv.FormatBool(sc.Sampled)) + + for k, v := range sc.Baggage { + carrier.Set(prefixBaggage+k, v) + } + return nil +} + +func (p *textMapPropagator) Extract( + opaqueCarrier interface{}, +) (opentracing.SpanContext, error) { + carrier, ok := opaqueCarrier.(opentracing.TextMapReader) + if !ok { + return nil, opentracing.ErrInvalidCarrier + } + requiredFieldCount := 0 + var traceID, spanID uint64 + var sampled bool + var err error + decodedBaggage := make(map[string]string) + err = carrier.ForeachKey(func(k, v string) error { + switch strings.ToLower(k) { + case fieldNameTraceID: + traceID, err = strconv.ParseUint(v, 16, 64) + if err != nil { + return opentracing.ErrSpanContextCorrupted + } + case fieldNameSpanID: + spanID, err = strconv.ParseUint(v, 16, 64) + if err != nil { + return opentracing.ErrSpanContextCorrupted + } + case fieldNameSampled: + sampled, err = strconv.ParseBool(v) + if err != nil { + return opentracing.ErrSpanContextCorrupted + } + default: + lowercaseK := strings.ToLower(k) + if strings.HasPrefix(lowercaseK, prefixBaggage) { + decodedBaggage[strings.TrimPrefix(lowercaseK, prefixBaggage)] = v + } + // Balance off the requiredFieldCount++ just below... + requiredFieldCount-- + } + requiredFieldCount++ + return nil + }) + if err != nil { + return nil, err + } + if requiredFieldCount < tracerStateFieldCount { + if requiredFieldCount == 0 { + return nil, opentracing.ErrSpanContextNotFound + } + return nil, opentracing.ErrSpanContextCorrupted + } + + return SpanContext{ + TraceID: traceID, + SpanID: spanID, + Sampled: sampled, + Baggage: decodedBaggage, + }, nil +} + +func (p *binaryPropagator) Inject( + spanContext opentracing.SpanContext, + opaqueCarrier interface{}, +) error { + sc, ok := spanContext.(SpanContext) + if !ok { + return opentracing.ErrInvalidSpanContext + } + carrier, ok := opaqueCarrier.(io.Writer) + if !ok { + return opentracing.ErrInvalidCarrier + } + + state := wire.TracerState{} + state.TraceId = sc.TraceID + state.SpanId = sc.SpanID + state.Sampled = sc.Sampled + state.BaggageItems = sc.Baggage + + b, err := proto.Marshal(&state) + if err != nil { + return err + } + + // Write the length of the marshalled binary to the writer. + length := uint32(len(b)) + if err := binary.Write(carrier, binary.BigEndian, &length); err != nil { + return err + } + + _, err = carrier.Write(b) + return err +} + +func (p *binaryPropagator) Extract( + opaqueCarrier interface{}, +) (opentracing.SpanContext, error) { + carrier, ok := opaqueCarrier.(io.Reader) + if !ok { + return nil, opentracing.ErrInvalidCarrier + } + + // Read the length of marshalled binary. io.ReadAll isn't that performant + // since it keeps resizing the underlying buffer as it encounters more bytes + // to read. By reading the length, we can allocate a fixed sized buf and read + // the exact amount of bytes into it. + var length uint32 + if err := binary.Read(carrier, binary.BigEndian, &length); err != nil { + return nil, opentracing.ErrSpanContextCorrupted + } + buf := make([]byte, length) + if n, err := carrier.Read(buf); err != nil { + if n > 0 { + return nil, opentracing.ErrSpanContextCorrupted + } + return nil, opentracing.ErrSpanContextNotFound + } + + ctx := wire.TracerState{} + if err := proto.Unmarshal(buf, &ctx); err != nil { + return nil, opentracing.ErrSpanContextCorrupted + } + + return SpanContext{ + TraceID: ctx.TraceId, + SpanID: ctx.SpanId, + Sampled: ctx.Sampled, + Baggage: ctx.BaggageItems, + }, nil +} diff --git a/vendor/github.com/ipfs/go-log/tracer/raw.go b/vendor/github.com/ipfs/go-log/tracer/raw.go new file mode 100644 index 00000000..75945427 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/raw.go @@ -0,0 +1,34 @@ +package loggabletracer + +import ( + "time" + + opentracing "github.com/opentracing/opentracing-go" +) + +// RawSpan encapsulates all state associated with a (finished) Span. +type RawSpan struct { + // Those recording the RawSpan should also record the contents of its + // SpanContext. + Context SpanContext + + // The SpanID of this SpanContext's first intra-trace reference (i.e., + // "parent"), or 0 if there is no parent. + ParentSpanID uint64 + + // The name of the "operation" this span is an instance of. (Called a "span + // name" in some implementations) + Operation string + + // We store rather than so that only + // one of the timestamps has global clock uncertainty issues. + Start time.Time + Duration time.Duration + + // Essentially an extension mechanism. Can be used for many purposes, + // not to be enumerated here. + Tags opentracing.Tags + + // The span's "microlog". + Logs []opentracing.LogRecord +} diff --git a/vendor/github.com/ipfs/go-log/tracer/recorder.go b/vendor/github.com/ipfs/go-log/tracer/recorder.go new file mode 100644 index 00000000..f298d639 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/recorder.go @@ -0,0 +1,103 @@ +package loggabletracer + +import ( + "bytes" + "encoding/base64" + "encoding/json" + "fmt" + "os" + "time" + + writer "github.com/ipfs/go-log/writer" + opentrace "github.com/opentracing/opentracing-go" +) + +// A SpanRecorder handles all of the `RawSpan` data generated via an +// associated `Tracer` (see `NewStandardTracer`) instance. It also names +// the containing process and provides access to a straightforward tag map. +type SpanRecorder interface { + // Implementations must determine whether and where to store `span`. + RecordSpan(span RawSpan) +} + +type LoggableSpanRecorder struct{} + +// NewLoggableRecorder creates new LoggableSpanRecorder +func NewLoggableRecorder() *LoggableSpanRecorder { + return new(LoggableSpanRecorder) +} + +// Loggable Representation of a span, treated as an event log +type LoggableSpan struct { + TraceID uint64 `json:"TraceID"` + SpanID uint64 `json:"SpanID"` + ParentSpanID uint64 `json:"ParentSpanID"` + Operation string `json:"Operation"` + Start time.Time `json:"Start"` + Duration time.Duration `json:"Duration"` + Tags opentrace.Tags `json:"Tags"` + Logs []SpanLog `json:"Logs"` +} + +type SpanLog struct { + Timestamp time.Time `json:"Timestamp"` + Field []SpanField `json:"Fields"` +} + +type SpanField struct { + Key string `json:"Key"` + Value string `json:"Value"` +} + +// RecordSpan implements the respective method of SpanRecorder. +func (r *LoggableSpanRecorder) RecordSpan(span RawSpan) { + // short circuit if theres nothing to write to + if !writer.WriterGroup.Active() { + return + } + + sl := make([]SpanLog, len(span.Logs)) + for i := range span.Logs { + sl[i].Timestamp = span.Logs[i].Timestamp + sf := make([]SpanField, len(span.Logs[i].Fields)) + sl[i].Field = sf + for j := range span.Logs[i].Fields { + sf[j].Key = span.Logs[i].Fields[j].Key() + sf[j].Value = fmt.Sprint(span.Logs[i].Fields[j].Value()) + } + } + + tags := make(map[string]interface{}, len(span.Tags)) + for k, v := range span.Tags { + switch vt := v.(type) { + case bool, string, int, int8, int16, int32, int64, uint, uint8, uint16, uint64: + tags[k] = v + case []byte: + base64.StdEncoding.EncodeToString(vt) + default: + tags[k] = fmt.Sprint(v) + } + } + + spanlog := &LoggableSpan{ + TraceID: span.Context.TraceID, + SpanID: span.Context.SpanID, + ParentSpanID: span.ParentSpanID, + Operation: span.Operation, + Start: span.Start, + Duration: span.Duration, + Tags: tags, + Logs: sl, + } + + var buf bytes.Buffer + encoder := json.NewEncoder(&buf) + encoder.SetEscapeHTML(false) + err := encoder.Encode(spanlog) + if err != nil { + fmt.Fprintf(os.Stderr, "ERROR FORMATTING SPAN ENTRY: %s\n", err) + return + } + + writer.WriterGroup.Write(buf.Bytes()) +} diff --git a/vendor/github.com/ipfs/go-log/tracer/span.go b/vendor/github.com/ipfs/go-log/tracer/span.go new file mode 100644 index 00000000..a23a57c3 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/span.go @@ -0,0 +1,274 @@ +package loggabletracer + +import ( + "sync" + "time" + + opentracing "github.com/opentracing/opentracing-go" + "github.com/opentracing/opentracing-go/ext" + "github.com/opentracing/opentracing-go/log" +) + +// Span provides access to the essential details of the span, for use +// by loggabletracer consumers. These methods may only be called prior +// to (*opentracing.Span).Finish(). +type Span interface { + opentracing.Span + + // Operation names the work done by this span instance + Operation() string + + // Start indicates when the span began + Start() time.Time +} + +// Implements the `Span` interface. Created via LoggableTracer (see +// `loggabletracer.New()`). +type spanImpl struct { + tracer *LoggableTracer + event func(SpanEvent) + sync.Mutex // protects the fields below + raw RawSpan + // The number of logs dropped because of MaxLogsPerSpan. + numDroppedLogs int +} + +var spanPool = &sync.Pool{New: func() interface{} { + return &spanImpl{} +}} + +func (s *spanImpl) reset() { + s.tracer, s.event = nil, nil + // Note: Would like to do the following, but then the consumer of RawSpan + // (the recorder) needs to make sure that they're not holding on to the + // baggage or logs when they return (i.e. they need to copy if they care): + // + // logs, baggage := s.raw.Logs[:0], s.raw.Baggage + // for k := range baggage { + // delete(baggage, k) + // } + // s.raw.Logs, s.raw.Baggage = logs, baggage + // + // That's likely too much to ask for. But there is some magic we should + // be able to do with `runtime.SetFinalizer` to reclaim that memory into + // a buffer pool when GC considers them unreachable, which should ease + // some of the load. Hard to say how quickly that would be in practice + // though. + s.raw = RawSpan{ + Context: SpanContext{}, + } +} + +func (s *spanImpl) SetOperationName(operationName string) opentracing.Span { + s.Lock() + defer s.Unlock() + s.raw.Operation = operationName + return s +} + +func (s *spanImpl) trim() bool { + return !s.raw.Context.Sampled && s.tracer.options.TrimUnsampledSpans +} + +func (s *spanImpl) SetTag(key string, value interface{}) opentracing.Span { + defer s.onTag(key, value) + s.Lock() + defer s.Unlock() + if key == string(ext.SamplingPriority) { + if v, ok := value.(uint16); ok { + s.raw.Context.Sampled = v != 0 + return s + } + } + if s.trim() { + return s + } + + if s.raw.Tags == nil { + s.raw.Tags = opentracing.Tags{} + } + s.raw.Tags[key] = value + return s +} + +func (s *spanImpl) LogKV(keyValues ...interface{}) { + fields, err := log.InterleavedKVToFields(keyValues...) + if err != nil { + s.LogFields(log.Error(err), log.String("function", "LogKV")) + return + } + s.LogFields(fields...) +} + +func (s *spanImpl) appendLog(lr opentracing.LogRecord) { + maxLogs := s.tracer.options.MaxLogsPerSpan + if maxLogs == 0 || len(s.raw.Logs) < maxLogs { + s.raw.Logs = append(s.raw.Logs, lr) + return + } + + // We have too many logs. We don't touch the first numOld logs; we treat the + // rest as a circular buffer and overwrite the oldest log among those. + numOld := (maxLogs - 1) / 2 + numNew := maxLogs - numOld + s.raw.Logs[numOld+s.numDroppedLogs%numNew] = lr + s.numDroppedLogs++ +} + +func (s *spanImpl) LogFields(fields ...log.Field) { + lr := opentracing.LogRecord{ + Fields: fields, + } + defer s.onLogFields(lr) + s.Lock() + defer s.Unlock() + if s.trim() || s.tracer.options.DropAllLogs { + return + } + if lr.Timestamp.IsZero() { + lr.Timestamp = time.Now() + } + s.appendLog(lr) +} + +func (s *spanImpl) LogEvent(event string) { + s.Log(opentracing.LogData{ + Event: event, + }) +} + +func (s *spanImpl) LogEventWithPayload(event string, payload interface{}) { + s.Log(opentracing.LogData{ + Event: event, + Payload: payload, + }) +} + +func (s *spanImpl) Log(ld opentracing.LogData) { + defer s.onLog(ld) + s.Lock() + defer s.Unlock() + if s.trim() || s.tracer.options.DropAllLogs { + return + } + + if ld.Timestamp.IsZero() { + ld.Timestamp = time.Now() + } + + s.appendLog(ld.ToLogRecord()) +} + +func (s *spanImpl) Finish() { + s.FinishWithOptions(opentracing.FinishOptions{}) +} + +// rotateLogBuffer rotates the records in the buffer: records 0 to pos-1 move at +// the end (i.e. pos circular left shifts). +func rotateLogBuffer(buf []opentracing.LogRecord, pos int) { + // This algorithm is described in: + // http://www.cplusplus.com/reference/algorithm/rotate + for first, middle, next := 0, pos, pos; first != middle; { + buf[first], buf[next] = buf[next], buf[first] + first++ + next++ + if next == len(buf) { + next = middle + } else if first == middle { + middle = next + } + } +} + +func (s *spanImpl) FinishWithOptions(opts opentracing.FinishOptions) { + finishTime := opts.FinishTime + if finishTime.IsZero() { + finishTime = time.Now() + } + duration := finishTime.Sub(s.raw.Start) + + s.Lock() + defer s.Unlock() + + for _, lr := range opts.LogRecords { + s.appendLog(lr) + } + for _, ld := range opts.BulkLogData { + s.appendLog(ld.ToLogRecord()) + } + + if s.numDroppedLogs > 0 { + // We dropped some log events, which means that we used part of Logs as a + // circular buffer (see appendLog). De-circularize it. + numOld := (len(s.raw.Logs) - 1) / 2 + numNew := len(s.raw.Logs) - numOld + rotateLogBuffer(s.raw.Logs[numOld:], s.numDroppedLogs%numNew) + + // Replace the log in the middle (the oldest "new" log) with information + // about the dropped logs. This means that we are effectively dropping one + // more "new" log. + numDropped := s.numDroppedLogs + 1 + s.raw.Logs[numOld] = opentracing.LogRecord{ + // Keep the timestamp of the last dropped event. + Timestamp: s.raw.Logs[numOld].Timestamp, + Fields: []log.Field{ + log.String("event", "dropped Span logs"), + log.Int("dropped_log_count", numDropped), + log.String("component", "loggabletracer"), + }, + } + } + + s.raw.Duration = duration + + s.onFinish(s.raw) + s.tracer.options.Recorder.RecordSpan(s.raw) + + // Last chance to get options before the span is possibly reset. + poolEnabled := s.tracer.options.EnableSpanPool + if s.tracer.options.DebugAssertUseAfterFinish { + // This makes it much more likely to catch a panic on any subsequent + // operation since s.tracer is accessed on every call to `Lock`. + // We don't call `reset()` here to preserve the logs in the Span + // which are printed when the assertion triggers. + s.tracer = nil + } + + if poolEnabled { + spanPool.Put(s) + } +} + +func (s *spanImpl) Tracer() opentracing.Tracer { + return s.tracer +} + +func (s *spanImpl) Context() opentracing.SpanContext { + return s.raw.Context +} + +func (s *spanImpl) SetBaggageItem(key, val string) opentracing.Span { + s.onBaggage(key, val) + if s.trim() { + return s + } + + s.Lock() + defer s.Unlock() + s.raw.Context = s.raw.Context.WithBaggageItem(key, val) + return s +} + +func (s *spanImpl) BaggageItem(key string) string { + s.Lock() + defer s.Unlock() + return s.raw.Context.Baggage[key] +} + +func (s *spanImpl) Operation() string { + return s.raw.Operation +} + +func (s *spanImpl) Start() time.Time { + return s.raw.Start +} diff --git a/vendor/github.com/ipfs/go-log/tracer/tracer.go b/vendor/github.com/ipfs/go-log/tracer/tracer.go new file mode 100644 index 00000000..a6ea3a22 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/tracer.go @@ -0,0 +1,280 @@ +package loggabletracer + +import ( + "time" + + writer "github.com/ipfs/go-log/writer" + opentracing "github.com/opentracing/opentracing-go" +) + +// Tracer extends the opentracing.Tracer interface with methods to +// probe implementation state, for use by loggabletracer consumers. +type Tracer interface { + opentracing.Tracer + + // Options gets the Options used in New() or NewWithOptions(). + Options() Options +} + +// Options allows creating a customized Tracer via NewWithOptions. The object +// must not be updated when there is an active tracer using it. +type Options struct { + // ShouldSample is a function which is called when creating a new Span and + // determines whether that Span is sampled. The randomized TraceID is supplied + // to allow deterministic sampling decisions to be made across different nodes. + // For example, + // + // func(traceID uint64) { return traceID % 64 == 0 } + // + // samples every 64th trace on average. + ShouldSample func(traceID uint64) bool + // TrimUnsampledSpans turns potentially expensive operations on unsampled + // Spans into no-ops. More precisely, tags and log events are silently + // discarded. If NewSpanEventListener is set, the callbacks will still fire. + TrimUnsampledSpans bool + // Recorder receives Spans which have been finished. + Recorder SpanRecorder + // NewSpanEventListener can be used to enhance the tracer by effectively + // attaching external code to trace events. See NetTraceIntegrator for a + // practical example, and event.go for the list of possible events. + NewSpanEventListener func() func(SpanEvent) + // DropAllLogs turns log events on all Spans into no-ops. + // If NewSpanEventListener is set, the callbacks will still fire. + DropAllLogs bool + // MaxLogsPerSpan limits the number of Logs in a span (if set to a nonzero + // value). If a span has more logs than this value, logs are dropped as + // necessary (and replaced with a log describing how many were dropped). + // + // About half of the MaxLogPerSpan logs kept are the oldest logs, and about + // half are the newest logs. + // + // If NewSpanEventListener is set, the callbacks will still fire for all log + // events. This value is ignored if DropAllLogs is true. + MaxLogsPerSpan int + // DebugAssertSingleGoroutine internally records the ID of the goroutine + // creating each Span and verifies that no operation is carried out on + // it on a different goroutine. + // Provided strictly for development purposes. + // Passing Spans between goroutine without proper synchronization often + // results in use-after-Finish() errors. For a simple example, consider the + // following pseudocode: + // + // func (s *Server) Handle(req http.Request) error { + // sp := s.StartSpan("server") + // defer sp.Finish() + // wait := s.queueProcessing(opentracing.ContextWithSpan(context.Background(), sp), req) + // select { + // case resp := <-wait: + // return resp.Error + // case <-time.After(10*time.Second): + // sp.LogEvent("timed out waiting for processing") + // return ErrTimedOut + // } + // } + // + // This looks reasonable at first, but a request which spends more than ten + // seconds in the queue is abandoned by the main goroutine and its trace + // finished, leading to use-after-finish when the request is finally + // processed. Note also that even joining on to a finished Span via + // StartSpanWithOptions constitutes an illegal operation. + // + // Code bases which do not require (or decide they do not want) Spans to + // be passed across goroutine boundaries can run with this flag enabled in + // tests to increase their chances of spotting wrong-doers. + DebugAssertSingleGoroutine bool + // DebugAssertUseAfterFinish is provided strictly for development purposes. + // When set, it attempts to exacerbate issues emanating from use of Spans + // after calling Finish by running additional assertions. + DebugAssertUseAfterFinish bool + // EnableSpanPool enables the use of a pool, so that the tracer reuses spans + // after Finish has been called on it. Adds a slight performance gain as it + // reduces allocations. However, if you have any use-after-finish race + // conditions the code may panic. + EnableSpanPool bool +} + +// DefaultOptions returns an Options object with a 1 in 64 sampling rate and +// all options disabled. A Recorder needs to be set manually before using the +// returned object with a Tracer. +func DefaultOptions() Options { + return Options{ + ShouldSample: func(traceID uint64) bool { return traceID%64 == 0 }, + MaxLogsPerSpan: 100, + } +} + +// NewWithOptions creates a customized Tracer. +func NewWithOptions(opts Options) opentracing.Tracer { + rval := &LoggableTracer{options: opts} + rval.accessorPropagator = &accessorPropagator{rval} + return rval +} + +// New creates and returns a standard Tracer which defers completed Spans to +// `recorder`. +// Spans created by this Tracer support the ext.SamplingPriority tag: Setting +// ext.SamplingPriority causes the Span to be Sampled from that point on. +func New(recorder SpanRecorder) opentracing.Tracer { + opts := DefaultOptions() + opts.Recorder = recorder + return NewWithOptions(opts) +} + +// Implements the `Tracer` interface. +type LoggableTracer struct { + options Options + textPropagator *textMapPropagator + binaryPropagator *binaryPropagator + accessorPropagator *accessorPropagator +} + +func (t *LoggableTracer) StartSpan( + operationName string, + opts ...opentracing.StartSpanOption, +) opentracing.Span { + + if !writer.WriterGroup.Active() { + return opentracing.NoopTracer.StartSpan(opentracing.NoopTracer{}, operationName) + } + + sso := opentracing.StartSpanOptions{} + for _, o := range opts { + o.Apply(&sso) + } + return t.StartSpanWithOptions(operationName, sso) +} + +func (t *LoggableTracer) getSpan() *spanImpl { + if t.options.EnableSpanPool { + sp := spanPool.Get().(*spanImpl) + sp.reset() + return sp + } + return &spanImpl{} +} + +func (t *LoggableTracer) StartSpanWithOptions( + operationName string, + opts opentracing.StartSpanOptions, +) opentracing.Span { + if !writer.WriterGroup.Active() { + return opentracing.NoopTracer.StartSpan(opentracing.NoopTracer{}, operationName) + } + // Start time. + startTime := opts.StartTime + if startTime.IsZero() { + startTime = time.Now() + } + + // Tags. + tags := opts.Tags + + // Build the new span. This is the only allocation: We'll return this as + // an opentracing.Span. + sp := t.getSpan() + // Look for a parent in the list of References. + // + // TODO: would be nice if loggabletracer did something with all + // References, not just the first one. +ReferencesLoop: + for _, ref := range opts.References { + switch ref.Type { + case opentracing.ChildOfRef, + opentracing.FollowsFromRef: + + refCtx, ok := ref.ReferencedContext.(SpanContext) + if !ok { + // Could be a noopSpanContext + // Ignore that parent. + continue + } + sp.raw.Context.TraceID = refCtx.TraceID + sp.raw.Context.SpanID = randomID() + sp.raw.Context.Sampled = refCtx.Sampled + sp.raw.ParentSpanID = refCtx.SpanID + + if l := len(refCtx.Baggage); l > 0 { + sp.raw.Context.Baggage = make(map[string]string, l) + for k, v := range refCtx.Baggage { + sp.raw.Context.Baggage[k] = v + } + } + break ReferencesLoop + } + } + if sp.raw.Context.TraceID == 0 { + // No parent Span found; allocate new trace and span ids and determine + // the Sampled status. + sp.raw.Context.TraceID, sp.raw.Context.SpanID = randomID2() + sp.raw.Context.Sampled = t.options.ShouldSample(sp.raw.Context.TraceID) + } + + return t.startSpanInternal( + sp, + operationName, + startTime, + tags, + ) +} + +func (t *LoggableTracer) startSpanInternal( + sp *spanImpl, + operationName string, + startTime time.Time, + tags opentracing.Tags, +) opentracing.Span { + sp.tracer = t + if t.options.NewSpanEventListener != nil { + sp.event = t.options.NewSpanEventListener() + } + sp.raw.Operation = operationName + sp.raw.Start = startTime + sp.raw.Duration = -1 + sp.raw.Tags = tags + if t.options.DebugAssertSingleGoroutine { + sp.SetTag(debugGoroutineIDTag, curGoroutineID()) + } + defer sp.onCreate(operationName) + return sp +} + +type delegatorType struct{} + +// Delegator is the format to use for DelegatingCarrier. +var Delegator delegatorType + +func (t *LoggableTracer) Inject(sc opentracing.SpanContext, format interface{}, carrier interface{}) error { + if !writer.WriterGroup.Active() { + return opentracing.NoopTracer.Inject(opentracing.NoopTracer{}, sc, format, carrier) + } + switch format { + case opentracing.TextMap, opentracing.HTTPHeaders: + return t.textPropagator.Inject(sc, carrier) + case opentracing.Binary: + return t.binaryPropagator.Inject(sc, carrier) + } + if _, ok := format.(delegatorType); ok { + return t.accessorPropagator.Inject(sc, carrier) + } + return opentracing.ErrUnsupportedFormat +} + +func (t *LoggableTracer) Extract(format interface{}, carrier interface{}) (opentracing.SpanContext, error) { + if !writer.WriterGroup.Active() { + return opentracing.NoopTracer.Extract(opentracing.NoopTracer{}, format, carrier) + } + switch format { + case opentracing.TextMap, opentracing.HTTPHeaders: + return t.textPropagator.Extract(carrier) + case opentracing.Binary: + return t.binaryPropagator.Extract(carrier) + } + if _, ok := format.(delegatorType); ok { + return t.accessorPropagator.Extract(carrier) + } + return nil, opentracing.ErrUnsupportedFormat +} + +func (t *LoggableTracer) Options() Options { + return t.options +} diff --git a/vendor/github.com/ipfs/go-log/tracer/util.go b/vendor/github.com/ipfs/go-log/tracer/util.go new file mode 100644 index 00000000..279e2aca --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/util.go @@ -0,0 +1,25 @@ +package loggabletracer + +import ( + "math/rand" + "sync" + "time" +) + +var ( + seededIDGen = rand.New(rand.NewSource(time.Now().UnixNano())) + // The golang rand generators are *not* intrinsically thread-safe. + seededIDLock sync.Mutex +) + +func randomID() uint64 { + seededIDLock.Lock() + defer seededIDLock.Unlock() + return uint64(seededIDGen.Int63()) +} + +func randomID2() (uint64, uint64) { + seededIDLock.Lock() + defer seededIDLock.Unlock() + return uint64(seededIDGen.Int63()), uint64(seededIDGen.Int63()) +} diff --git a/vendor/github.com/ipfs/go-log/tracer/wire/Makefile b/vendor/github.com/ipfs/go-log/tracer/wire/Makefile new file mode 100644 index 00000000..8677a371 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/wire/Makefile @@ -0,0 +1,6 @@ +pbgos := $(patsubst %.proto,%.pb.go,$(wildcard *.proto)) + +all: $(pbgos) + +%.pb.go: %.proto + protoc --gogofaster_out=. --proto_path=$(GOPATH)/src:. $< diff --git a/vendor/github.com/ipfs/go-log/tracer/wire/carrier.go b/vendor/github.com/ipfs/go-log/tracer/wire/carrier.go new file mode 100644 index 00000000..12ec98e9 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/wire/carrier.go @@ -0,0 +1,40 @@ +package wire + +// ProtobufCarrier is a DelegatingCarrier that uses protocol buffers as the +// the underlying datastructure. The reason for implementing DelagatingCarrier +// is to allow for end users to serialize the underlying protocol buffers using +// jsonpb or any other serialization forms they want. +type ProtobufCarrier TracerState + +// SetState set's the tracer state. +func (p *ProtobufCarrier) SetState(traceID, spanID uint64, sampled bool) { + p.TraceId = traceID + p.SpanId = spanID + p.Sampled = sampled +} + +// State returns the tracer state. +func (p *ProtobufCarrier) State() (traceID, spanID uint64, sampled bool) { + traceID = p.TraceId + spanID = p.SpanId + sampled = p.Sampled + return traceID, spanID, sampled +} + +// SetBaggageItem sets a baggage item. +func (p *ProtobufCarrier) SetBaggageItem(key, value string) { + if p.BaggageItems == nil { + p.BaggageItems = map[string]string{key: value} + return + } + + p.BaggageItems[key] = value +} + +// GetBaggage iterates over each baggage item and executes the callback with +// the key:value pair. +func (p *ProtobufCarrier) GetBaggage(f func(k, v string)) { + for k, v := range p.BaggageItems { + f(k, v) + } +} diff --git a/vendor/github.com/ipfs/go-log/tracer/wire/gen.go b/vendor/github.com/ipfs/go-log/tracer/wire/gen.go new file mode 100644 index 00000000..7d951fa4 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/wire/gen.go @@ -0,0 +1,6 @@ +package wire + +//go:generate protoc --gogofaster_out=$GOPATH/src/github.com/ipfs/go-log/tracer/wire wire.proto + +// Run `go get github.com/gogo/protobuf/protoc-gen-gogofaster` to install the +// gogofaster generator binary. diff --git a/vendor/github.com/ipfs/go-log/tracer/wire/wire.pb.go b/vendor/github.com/ipfs/go-log/tracer/wire/wire.pb.go new file mode 100644 index 00000000..2399892f --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/wire/wire.pb.go @@ -0,0 +1,554 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: wire.proto + +package wire + +import ( + encoding_binary "encoding/binary" + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type TracerState struct { + TraceId uint64 `protobuf:"fixed64,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` + SpanId uint64 `protobuf:"fixed64,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"` + Sampled bool `protobuf:"varint,3,opt,name=sampled,proto3" json:"sampled,omitempty"` + BaggageItems map[string]string `protobuf:"bytes,4,rep,name=baggage_items,json=baggageItems,proto3" json:"baggage_items,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *TracerState) Reset() { *m = TracerState{} } +func (m *TracerState) String() string { return proto.CompactTextString(m) } +func (*TracerState) ProtoMessage() {} +func (*TracerState) Descriptor() ([]byte, []int) { + return fileDescriptor_f2dcdddcdf68d8e0, []int{0} +} +func (m *TracerState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TracerState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TracerState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TracerState) XXX_Merge(src proto.Message) { + xxx_messageInfo_TracerState.Merge(m, src) +} +func (m *TracerState) XXX_Size() int { + return m.Size() +} +func (m *TracerState) XXX_DiscardUnknown() { + xxx_messageInfo_TracerState.DiscardUnknown(m) +} + +var xxx_messageInfo_TracerState proto.InternalMessageInfo + +func (m *TracerState) GetTraceId() uint64 { + if m != nil { + return m.TraceId + } + return 0 +} + +func (m *TracerState) GetSpanId() uint64 { + if m != nil { + return m.SpanId + } + return 0 +} + +func (m *TracerState) GetSampled() bool { + if m != nil { + return m.Sampled + } + return false +} + +func (m *TracerState) GetBaggageItems() map[string]string { + if m != nil { + return m.BaggageItems + } + return nil +} + +func init() { + proto.RegisterType((*TracerState)(nil), "loggabletracer.wire.TracerState") + proto.RegisterMapType((map[string]string)(nil), "loggabletracer.wire.TracerState.BaggageItemsEntry") +} + +func init() { proto.RegisterFile("wire.proto", fileDescriptor_f2dcdddcdf68d8e0) } + +var fileDescriptor_f2dcdddcdf68d8e0 = []byte{ + // 250 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2a, 0xcf, 0x2c, 0x4a, + 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0xce, 0xc9, 0x4f, 0x4f, 0x4f, 0x4c, 0xca, 0x49, + 0x2d, 0x29, 0x4a, 0x4c, 0x4e, 0x2d, 0xd2, 0x03, 0x49, 0x29, 0x7d, 0x65, 0xe4, 0xe2, 0x0e, 0x01, + 0xf3, 0x83, 0x4b, 0x12, 0x4b, 0x52, 0x85, 0x24, 0xb9, 0x38, 0xc0, 0xd2, 0xf1, 0x99, 0x29, 0x12, + 0x8c, 0x0a, 0x8c, 0x1a, 0x6c, 0x41, 0xec, 0x60, 0xbe, 0x67, 0x8a, 0x90, 0x38, 0x17, 0x7b, 0x71, + 0x41, 0x62, 0x1e, 0x48, 0x86, 0x09, 0x2c, 0xc3, 0x06, 0xe2, 0x7a, 0xa6, 0x08, 0x49, 0x70, 0xb1, + 0x17, 0x27, 0xe6, 0x16, 0xe4, 0xa4, 0xa6, 0x48, 0x30, 0x2b, 0x30, 0x6a, 0x70, 0x04, 0xc1, 0xb8, + 0x42, 0xe1, 0x5c, 0xbc, 0x49, 0x89, 0xe9, 0xe9, 0x89, 0xe9, 0xa9, 0xf1, 0x99, 0x25, 0xa9, 0xb9, + 0xc5, 0x12, 0x2c, 0x0a, 0xcc, 0x1a, 0xdc, 0x46, 0x46, 0x7a, 0x58, 0x9c, 0xa2, 0x87, 0xe4, 0x0c, + 0x3d, 0x27, 0x88, 0x2e, 0x4f, 0x90, 0x26, 0xd7, 0xbc, 0x92, 0xa2, 0xca, 0x20, 0x9e, 0x24, 0x24, + 0x21, 0x29, 0x7b, 0x2e, 0x41, 0x0c, 0x25, 0x42, 0x02, 0x5c, 0xcc, 0xd9, 0xa9, 0x95, 0x60, 0x67, + 0x73, 0x06, 0x81, 0x98, 0x42, 0x22, 0x5c, 0xac, 0x65, 0x89, 0x39, 0xa5, 0xa9, 0x60, 0x07, 0x73, + 0x06, 0x41, 0x38, 0x56, 0x4c, 0x16, 0x8c, 0x4e, 0x72, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, + 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, + 0x2c, 0xc7, 0x10, 0xc5, 0x02, 0x72, 0x4c, 0x12, 0x1b, 0x38, 0xcc, 0x8c, 0x01, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xe4, 0x48, 0xf4, 0xf8, 0x41, 0x01, 0x00, 0x00, +} + +func (m *TracerState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TracerState) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TraceId != 0 { + dAtA[i] = 0x9 + i++ + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.TraceId)) + i += 8 + } + if m.SpanId != 0 { + dAtA[i] = 0x11 + i++ + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.SpanId)) + i += 8 + } + if m.Sampled { + dAtA[i] = 0x18 + i++ + if m.Sampled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if len(m.BaggageItems) > 0 { + for k, _ := range m.BaggageItems { + dAtA[i] = 0x22 + i++ + v := m.BaggageItems[k] + mapSize := 1 + len(k) + sovWire(uint64(len(k))) + 1 + len(v) + sovWire(uint64(len(v))) + i = encodeVarintWire(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintWire(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintWire(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func encodeVarintWire(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *TracerState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TraceId != 0 { + n += 9 + } + if m.SpanId != 0 { + n += 9 + } + if m.Sampled { + n += 2 + } + if len(m.BaggageItems) > 0 { + for k, v := range m.BaggageItems { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovWire(uint64(len(k))) + 1 + len(v) + sovWire(uint64(len(v))) + n += mapEntrySize + 1 + sovWire(uint64(mapEntrySize)) + } + } + return n +} + +func sovWire(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozWire(x uint64) (n int) { + return sovWire(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *TracerState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWire + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TracerState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TracerState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field TraceId", wireType) + } + m.TraceId = 0 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + m.TraceId = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field SpanId", wireType) + } + m.SpanId = 0 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + m.SpanId = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Sampled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWire + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Sampled = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BaggageItems", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWire + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthWire + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthWire + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BaggageItems == nil { + m.BaggageItems = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWire + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWire + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthWire + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthWire + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWire + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthWire + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthWire + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipWire(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWire + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.BaggageItems[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipWire(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWire + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthWire + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipWire(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWire + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWire + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWire + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthWire + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthWire + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWire + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipWire(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthWire + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthWire = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowWire = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/ipfs/go-log/tracer/wire/wire.proto b/vendor/github.com/ipfs/go-log/tracer/wire/wire.proto new file mode 100644 index 00000000..496fa198 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/tracer/wire/wire.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package loggabletracer.wire; +option go_package = "wire"; + +message TracerState { + fixed64 trace_id = 1; + fixed64 span_id = 2; + bool sampled = 3; + map baggage_items = 4; +} diff --git a/vendor/github.com/ipfs/go-log/writer/option.go b/vendor/github.com/ipfs/go-log/writer/option.go new file mode 100644 index 00000000..e467fc17 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/writer/option.go @@ -0,0 +1,55 @@ +package log + +import ( + "io" + + logging "github.com/whyrusleeping/go-logging" +) + +// WriterGroup is the global writer group for logs to output to +var WriterGroup = NewMirrorWriter() + +// Option is a generic function +type Option func() + +// Configure applies the provided options sequentially from left to right +func Configure(options ...Option) { + for _, f := range options { + f() + } +} + +// LdJSONFormatter Option formats the event log as line-delimited JSON +var LdJSONFormatter = func() { + logging.SetFormatter(&PoliteJSONFormatter{}) +} + +// TextFormatter Option formats the event log as human-readable plain-text +var TextFormatter = func() { + logging.SetFormatter(logging.DefaultFormatter) +} + +// Output returns an option which sets the the given writer as the new +// logging backend +func Output(w io.Writer) Option { + return func() { + backend := logging.NewLogBackend(w, "", 0) + logging.SetBackend(backend) + // TODO return previous Output option + } +} + +// LevelDebug Option sets the log level to debug +var LevelDebug = func() { + logging.SetLevel(logging.DEBUG, "") +} + +// LevelError Option sets the log level to error +var LevelError = func() { + logging.SetLevel(logging.ERROR, "") +} + +// LevelInfo Option sets the log level to info +var LevelInfo = func() { + logging.SetLevel(logging.INFO, "") +} diff --git a/vendor/github.com/ipfs/go-log/writer/polite_json_formatter.go b/vendor/github.com/ipfs/go-log/writer/polite_json_formatter.go new file mode 100644 index 00000000..c5e620fd --- /dev/null +++ b/vendor/github.com/ipfs/go-log/writer/polite_json_formatter.go @@ -0,0 +1,29 @@ +package log + +import ( + "encoding/json" + "io" + + logging "github.com/whyrusleeping/go-logging" +) + +// PoliteJSONFormatter marshals entries into JSON encoded slices (without +// overwriting user-provided keys). How polite of it! +type PoliteJSONFormatter struct{} + +// Format encodes a logging.Record in JSON and writes it to Writer. +func (f *PoliteJSONFormatter) Format(calldepth int, r *logging.Record, w io.Writer) error { + entry := make(map[string]interface{}) + entry["id"] = r.Id + entry["level"] = r.Level + entry["time"] = r.Time + entry["module"] = r.Module + entry["message"] = r.Message() + err := json.NewEncoder(w).Encode(entry) + if err != nil { + return err + } + + w.Write([]byte{'\n'}) + return nil +} diff --git a/vendor/github.com/ipfs/go-log/writer/writer.go b/vendor/github.com/ipfs/go-log/writer/writer.go new file mode 100644 index 00000000..ec5d7299 --- /dev/null +++ b/vendor/github.com/ipfs/go-log/writer/writer.go @@ -0,0 +1,258 @@ +package log + +import ( + "fmt" + "io" + "sync" + "sync/atomic" +) + +// MaxWriterBuffer specifies how big the writer buffer can get before +// killing the writer. +var MaxWriterBuffer = 512 * 1024 + +// MirrorWriter implements a WriteCloser which syncs incoming bytes to multiple +// [buffered] WriteClosers. They can be added with AddWriter(). +type MirrorWriter struct { + active uint32 + + // channel for incoming writers + writerAdd chan *writerAdd + + // slices of writer/sync-channel pairs + writers []*bufWriter + + // synchronization channel for incoming writes + msgSync chan []byte +} + +type writerSync struct { + w io.WriteCloser + br chan []byte +} + +// NewMirrorWriter initializes and returns a MirrorWriter. +func NewMirrorWriter() *MirrorWriter { + mw := &MirrorWriter{ + msgSync: make(chan []byte, 64), // sufficiently large buffer to avoid callers waiting + writerAdd: make(chan *writerAdd), + } + + go mw.logRoutine() + + return mw +} + +// Write broadcasts the written bytes to all Writers. +func (mw *MirrorWriter) Write(b []byte) (int, error) { + mycopy := make([]byte, len(b)) + copy(mycopy, b) + mw.msgSync <- mycopy + return len(b), nil +} + +// Close closes the MirrorWriter +func (mw *MirrorWriter) Close() error { + // it is up to the caller to ensure that write is not called during or + // after close is called. + close(mw.msgSync) + return nil +} + +func (mw *MirrorWriter) doClose() { + for _, w := range mw.writers { + w.writer.Close() + } +} + +func (mw *MirrorWriter) logRoutine() { + // rebind to avoid races on nilling out struct fields + msgSync := mw.msgSync + writerAdd := mw.writerAdd + + defer mw.doClose() + + for { + select { + case b, ok := <-msgSync: + if !ok { + return + } + + // write to all writers + dropped := mw.broadcastMessage(b) + + // consolidate the slice + if dropped { + mw.clearDeadWriters() + } + case wa := <-writerAdd: + mw.writers = append(mw.writers, newBufWriter(wa.w)) + + atomic.StoreUint32(&mw.active, 1) + close(wa.done) + } + } +} + +// broadcastMessage sends the given message to every writer +// if any writer is killed during the send, 'true' is returned +func (mw *MirrorWriter) broadcastMessage(b []byte) bool { + var dropped bool + for i, w := range mw.writers { + _, err := w.Write(b) + if err != nil { + mw.writers[i] = nil + dropped = true + } + } + return dropped +} + +func (mw *MirrorWriter) clearDeadWriters() { + writers := mw.writers + mw.writers = nil + for _, w := range writers { + if w != nil { + mw.writers = append(mw.writers, w) + } + } + if len(mw.writers) == 0 { + atomic.StoreUint32(&mw.active, 0) + } +} + +type writerAdd struct { + w io.WriteCloser + done chan struct{} +} + +// AddWriter attaches a new WriteCloser to this MirrorWriter. +// The new writer will start getting any bytes written to the mirror. +func (mw *MirrorWriter) AddWriter(w io.WriteCloser) { + wa := &writerAdd{ + w: w, + done: make(chan struct{}), + } + mw.writerAdd <- wa + <-wa.done +} + +// Active returns if there is at least one Writer +// attached to this MirrorWriter +func (mw *MirrorWriter) Active() (active bool) { + return atomic.LoadUint32(&mw.active) == 1 +} + +func newBufWriter(w io.WriteCloser) *bufWriter { + bw := &bufWriter{ + writer: w, + incoming: make(chan []byte, 1), + } + + go bw.loop() + return bw +} + +// writes incoming messages to a buffer and when it fills +// up, writes them to the writer +type bufWriter struct { + writer io.WriteCloser + + incoming chan []byte + + deathLock sync.Mutex + dead bool +} + +var errDeadWriter = fmt.Errorf("writer is dead") + +func (bw *bufWriter) Write(b []byte) (int, error) { + bw.deathLock.Lock() + dead := bw.dead + bw.deathLock.Unlock() + if dead { + if bw.incoming != nil { + close(bw.incoming) + bw.incoming = nil + } + return 0, errDeadWriter + } + + bw.incoming <- b + return len(b), nil +} + +func (bw *bufWriter) die() { + bw.deathLock.Lock() + bw.dead = true + bw.writer.Close() + bw.deathLock.Unlock() +} + +func (bw *bufWriter) loop() { + bufsize := 0 + bufBase := make([][]byte, 0, 16) // some initial memory + buffered := bufBase + nextCh := make(chan []byte) + + var nextMsg []byte + + go func() { + for b := range nextCh { + _, err := bw.writer.Write(b) + if err != nil { + // TODO: need a way to notify there was an error here + // wouldn't want to log here as it could casue an infinite loop + bw.die() + return + } + } + }() + + // collect and buffer messages + incoming := bw.incoming + for { + if nextMsg == nil || nextCh == nil { + // nextCh == nil implies we are 'dead' and draining the incoming channel + // until the caller notices and closes it for us + select { + case b, ok := <-incoming: + if !ok { + return + } + nextMsg = b + } + } + + select { + case b, ok := <-incoming: + if !ok { + return + } + bufsize += len(b) + buffered = append(buffered, b) + if bufsize > MaxWriterBuffer { + // if we have too many messages buffered, kill the writer + bw.die() + if nextCh != nil { + close(nextCh) + } + nextCh = nil + // explicity keep going here to drain incoming + } + case nextCh <- nextMsg: + nextMsg = nil + if len(buffered) > 0 { + nextMsg = buffered[0] + buffered = buffered[1:] + bufsize -= len(nextMsg) + } + + if len(buffered) == 0 { + // reset slice position + buffered = bufBase[:0] + } + } + } +} diff --git a/vendor/github.com/ipfs/go-merkledag/.travis.yml b/vendor/github.com/ipfs/go-merkledag/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-merkledag/LICENSE b/vendor/github.com/ipfs/go-merkledag/LICENSE new file mode 100644 index 00000000..7d5dcac4 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-merkledag/README.md b/vendor/github.com/ipfs/go-merkledag/README.md new file mode 100644 index 00000000..8bf135a4 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/README.md @@ -0,0 +1,36 @@ +go-merkledag +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-merkledag/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-merkledag/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-merkledag.svg?branch=master)](https://travis-ci.org/ipfs/go-merkledag) + +> go-merkledag implements the 'DAGService' interface and adds two ipld node types, Protobuf and Raw + + + +## Table of Contents + +- [TODO](#todo) +- [Contribute](#contribute) +- [License](#license) + +## TODO + +- Pull out dag-pb stuff into go-ipld-pb +- Pull 'raw nodes' out into go-ipld-raw (maybe main one instead) +- Move most other logic to go-ipld +- Make dagservice constructor take a 'blockstore' to avoid the blockservice offline nonsense +- deprecate this package + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Juan Batiz-Benet diff --git a/vendor/github.com/ipfs/go-merkledag/coding.go b/vendor/github.com/ipfs/go-merkledag/coding.go new file mode 100644 index 00000000..8b419281 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/coding.go @@ -0,0 +1,139 @@ +package merkledag + +import ( + "fmt" + "sort" + "strings" + + "github.com/ipfs/go-block-format" + + pb "github.com/ipfs/go-merkledag/pb" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +// Make sure the user doesn't upgrade this file. +// We need to check *here* as well as inside the `pb` package *just* in case the +// user replaces *all* go files in that package. +const _ = pb.DoNotUpgradeFileEverItWillChangeYourHashes + +// for now, we use a PBNode intermediate thing. +// because native go objects are nice. + +// unmarshal decodes raw data into a *Node instance. +// The conversion uses an intermediate PBNode. +func (n *ProtoNode) unmarshal(encoded []byte) error { + var pbn pb.PBNode + if err := pbn.Unmarshal(encoded); err != nil { + return fmt.Errorf("unmarshal failed. %v", err) + } + + pbnl := pbn.GetLinks() + n.links = make([]*ipld.Link, len(pbnl)) + for i, l := range pbnl { + n.links[i] = &ipld.Link{Name: l.GetName(), Size: l.GetTsize()} + c, err := cid.Cast(l.GetHash()) + if err != nil { + return fmt.Errorf("link hash #%d is not valid multihash. %v", i, err) + } + n.links[i].Cid = c + } + sort.Stable(LinkSlice(n.links)) // keep links sorted + + n.data = pbn.GetData() + n.encoded = encoded + return nil +} + +// Marshal encodes a *Node instance into a new byte slice. +// The conversion uses an intermediate PBNode. +func (n *ProtoNode) Marshal() ([]byte, error) { + pbn := n.getPBNode() + data, err := pbn.Marshal() + if err != nil { + return data, fmt.Errorf("marshal failed. %v", err) + } + return data, nil +} + +func (n *ProtoNode) getPBNode() *pb.PBNode { + pbn := &pb.PBNode{} + if len(n.links) > 0 { + pbn.Links = make([]*pb.PBLink, len(n.links)) + } + + sort.Stable(LinkSlice(n.links)) // keep links sorted + for i, l := range n.links { + pbn.Links[i] = &pb.PBLink{} + pbn.Links[i].Name = &l.Name + pbn.Links[i].Tsize = &l.Size + if l.Cid.Defined() { + pbn.Links[i].Hash = l.Cid.Bytes() + } + } + + if len(n.data) > 0 { + pbn.Data = n.data + } + return pbn +} + +// EncodeProtobuf returns the encoded raw data version of a Node instance. +// It may use a cached encoded version, unless the force flag is given. +func (n *ProtoNode) EncodeProtobuf(force bool) ([]byte, error) { + sort.Stable(LinkSlice(n.links)) // keep links sorted + if n.encoded == nil || force { + n.cached = cid.Undef + var err error + n.encoded, err = n.Marshal() + if err != nil { + return nil, err + } + } + + if !n.cached.Defined() { + c, err := n.CidBuilder().Sum(n.encoded) + if err != nil { + return nil, err + } + + n.cached = c + } + + return n.encoded, nil +} + +// DecodeProtobuf decodes raw data and returns a new Node instance. +func DecodeProtobuf(encoded []byte) (*ProtoNode, error) { + n := new(ProtoNode) + err := n.unmarshal(encoded) + if err != nil { + return nil, fmt.Errorf("incorrectly formatted merkledag node: %s", err) + } + return n, nil +} + +// DecodeProtobufBlock is a block decoder for protobuf IPLD nodes conforming to +// node.DecodeBlockFunc +func DecodeProtobufBlock(b blocks.Block) (ipld.Node, error) { + c := b.Cid() + if c.Type() != cid.DagProtobuf { + return nil, fmt.Errorf("this function can only decode protobuf nodes") + } + + decnd, err := DecodeProtobuf(b.RawData()) + if err != nil { + if strings.Contains(err.Error(), "Unmarshal failed") { + return nil, fmt.Errorf("the block referred to by '%s' was not a valid merkledag node", c) + } + return nil, fmt.Errorf("failed to decode Protocol Buffers: %v", err) + } + + decnd.cached = c + decnd.builder = c.Prefix() + return decnd, nil +} + +// Type assertion +var _ ipld.DecodeBlockFunc = DecodeProtobufBlock diff --git a/vendor/github.com/ipfs/go-merkledag/errservice.go b/vendor/github.com/ipfs/go-merkledag/errservice.go new file mode 100644 index 00000000..f4607615 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/errservice.go @@ -0,0 +1,47 @@ +package merkledag + +import ( + "context" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +// ErrorService implements ipld.DAGService, returning 'Err' for every call. +type ErrorService struct { + Err error +} + +var _ ipld.DAGService = (*ErrorService)(nil) + +// Add returns the cs.Err. +func (cs *ErrorService) Add(ctx context.Context, nd ipld.Node) error { + return cs.Err +} + +// AddMany returns the cs.Err. +func (cs *ErrorService) AddMany(ctx context.Context, nds []ipld.Node) error { + return cs.Err +} + +// Get returns the cs.Err. +func (cs *ErrorService) Get(ctx context.Context, c cid.Cid) (ipld.Node, error) { + return nil, cs.Err +} + +// GetMany many returns the cs.Err. +func (cs *ErrorService) GetMany(ctx context.Context, cids []cid.Cid) <-chan *ipld.NodeOption { + ch := make(chan *ipld.NodeOption) + close(ch) + return ch +} + +// Remove returns the cs.Err. +func (cs *ErrorService) Remove(ctx context.Context, c cid.Cid) error { + return cs.Err +} + +// RemoveMany returns the cs.Err. +func (cs *ErrorService) RemoveMany(ctx context.Context, cids []cid.Cid) error { + return cs.Err +} diff --git a/vendor/github.com/ipfs/go-merkledag/go.mod b/vendor/github.com/ipfs/go-merkledag/go.mod new file mode 100644 index 00000000..5cb093ef --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/go.mod @@ -0,0 +1,15 @@ +module github.com/ipfs/go-merkledag + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-block-format v0.0.2 + github.com/ipfs/go-blockservice v0.0.3 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ipfs-blockstore v0.0.1 + github.com/ipfs/go-ipfs-exchange-offline v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-ipld-cbor v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-merkledag/go.sum b/vendor/github.com/ipfs/go-merkledag/go.sum new file mode 100644 index 00000000..9d479dba --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/go.sum @@ -0,0 +1,295 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-bitswap v0.0.1 h1:Xx1ma7TWy9ISOx5zFq5YVQyrTHzUP4GkRPMsZokHxAg= +github.com/ipfs/go-bitswap v0.0.1/go.mod h1:z+tP3h+HTJ810n1R5yMy2ccKFffJ2F6Vqm/5Bf7vs2c= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-blockservice v0.0.1 h1:l6g1hwYDV6vb4bAvTqia6Cvo+zLMOPKel/n0zUX48bc= +github.com/ipfs/go-blockservice v0.0.1/go.mod h1:2Ao89U7jV1KIqqNk5EdhSTBG/Pgc1vMFr0bhkx376j4= +github.com/ipfs/go-blockservice v0.0.3 h1:40OvwrxeudTAlUGUAKNYnNPcwQeLtXedjzTWecnUinQ= +github.com/ipfs/go-blockservice v0.0.3/go.mod h1:/NNihwTi6V2Yr6g8wBI+BSwPuURpBRMtYNGrlxZ8KuI= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-cbor v0.0.1 h1:g7yh27SznWP4CUbkFgjR+WQRjEeyxCpTR4iKVmXx1wA= +github.com/ipfs/go-ipld-cbor v0.0.1/go.mod h1:RXHr8s4k0NE0TKhnrxqZC9M888QfsBN9rhS5NjfKzY8= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.1 h1:oEjzhRzymY7NILTMzOKNVOpNZGpcQHrHriWw91pbJNM= +github.com/libp2p/go-libp2p v0.0.1/go.mod h1:bmRs8I0vwn6iRaVssZnJx/epY6WPSKiLoK1vyle4EX0= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.1/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.1 h1:on/zju7XE+JXc8gH+vTKmIh2UJFC1K8kGnJYluQrlz4= +github.com/libp2p/go-libp2p-nat v0.0.1/go.mod h1:4L6ajyUIlJvx1Cbh5pc6Ma6vMDpKXf3GgLO5u7W0oQ4= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-merkledag/merkledag.go b/vendor/github.com/ipfs/go-merkledag/merkledag.go new file mode 100644 index 00000000..3153cf41 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/merkledag.go @@ -0,0 +1,478 @@ +// Package merkledag implements the IPFS Merkle DAG data structures. +package merkledag + +import ( + "context" + "fmt" + "sync" + + blocks "github.com/ipfs/go-block-format" + bserv "github.com/ipfs/go-blockservice" + cid "github.com/ipfs/go-cid" + ipldcbor "github.com/ipfs/go-ipld-cbor" + ipld "github.com/ipfs/go-ipld-format" +) + +// TODO: We should move these registrations elsewhere. Really, most of the IPLD +// functionality should go in a `go-ipld` repo but that will take a lot of work +// and design. +func init() { + ipld.Register(cid.DagProtobuf, DecodeProtobufBlock) + ipld.Register(cid.Raw, DecodeRawBlock) + ipld.Register(cid.DagCBOR, ipldcbor.DecodeBlock) +} + +// contextKey is a type to use as value for the ProgressTracker contexts. +type contextKey string + +const progressContextKey contextKey = "progress" + +// NewDAGService constructs a new DAGService (using the default implementation). +// Note that the default implementation is also an ipld.LinkGetter. +func NewDAGService(bs bserv.BlockService) *dagService { + return &dagService{Blocks: bs} +} + +// dagService is an IPFS Merkle DAG service. +// - the root is virtual (like a forest) +// - stores nodes' data in a BlockService +// TODO: should cache Nodes that are in memory, and be +// able to free some of them when vm pressure is high +type dagService struct { + Blocks bserv.BlockService +} + +// Add adds a node to the dagService, storing the block in the BlockService +func (n *dagService) Add(ctx context.Context, nd ipld.Node) error { + if n == nil { // FIXME remove this assertion. protect with constructor invariant + return fmt.Errorf("dagService is nil") + } + + return n.Blocks.AddBlock(nd) +} + +func (n *dagService) AddMany(ctx context.Context, nds []ipld.Node) error { + blks := make([]blocks.Block, len(nds)) + for i, nd := range nds { + blks[i] = nd + } + return n.Blocks.AddBlocks(blks) +} + +// Get retrieves a node from the dagService, fetching the block in the BlockService +func (n *dagService) Get(ctx context.Context, c cid.Cid) (ipld.Node, error) { + if n == nil { + return nil, fmt.Errorf("dagService is nil") + } + + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + b, err := n.Blocks.GetBlock(ctx, c) + if err != nil { + if err == bserv.ErrNotFound { + return nil, ipld.ErrNotFound + } + return nil, fmt.Errorf("failed to get block for %s: %v", c, err) + } + + return ipld.Decode(b) +} + +// GetLinks return the links for the node, the node doesn't necessarily have +// to exist locally. +func (n *dagService) GetLinks(ctx context.Context, c cid.Cid) ([]*ipld.Link, error) { + if c.Type() == cid.Raw { + return nil, nil + } + node, err := n.Get(ctx, c) + if err != nil { + return nil, err + } + return node.Links(), nil +} + +func (n *dagService) Remove(ctx context.Context, c cid.Cid) error { + return n.Blocks.DeleteBlock(c) +} + +// RemoveMany removes multiple nodes from the DAG. It will likely be faster than +// removing them individually. +// +// This operation is not atomic. If it returns an error, some nodes may or may +// not have been removed. +func (n *dagService) RemoveMany(ctx context.Context, cids []cid.Cid) error { + // TODO(#4608): make this batch all the way down. + for _, c := range cids { + if err := n.Blocks.DeleteBlock(c); err != nil { + return err + } + } + return nil +} + +// GetLinksDirect creates a function to get the links for a node, from +// the node, bypassing the LinkService. If the node does not exist +// locally (and can not be retrieved) an error will be returned. +func GetLinksDirect(serv ipld.NodeGetter) GetLinks { + return func(ctx context.Context, c cid.Cid) ([]*ipld.Link, error) { + nd, err := serv.Get(ctx, c) + if err != nil { + if err == bserv.ErrNotFound { + err = ipld.ErrNotFound + } + return nil, err + } + return nd.Links(), nil + } +} + +type sesGetter struct { + bs *bserv.Session +} + +// Get gets a single node from the DAG. +func (sg *sesGetter) Get(ctx context.Context, c cid.Cid) (ipld.Node, error) { + blk, err := sg.bs.GetBlock(ctx, c) + switch err { + case bserv.ErrNotFound: + return nil, ipld.ErrNotFound + default: + return nil, err + case nil: + // noop + } + + return ipld.Decode(blk) +} + +// GetMany gets many nodes at once, batching the request if possible. +func (sg *sesGetter) GetMany(ctx context.Context, keys []cid.Cid) <-chan *ipld.NodeOption { + return getNodesFromBG(ctx, sg.bs, keys) +} + +// Session returns a NodeGetter using a new session for block fetches. +func (n *dagService) Session(ctx context.Context) ipld.NodeGetter { + return &sesGetter{bserv.NewSession(ctx, n.Blocks)} +} + +// FetchGraph fetches all nodes that are children of the given node +func FetchGraph(ctx context.Context, root cid.Cid, serv ipld.DAGService) error { + return FetchGraphWithDepthLimit(ctx, root, -1, serv) +} + +// FetchGraphWithDepthLimit fetches all nodes that are children to the given +// node down to the given depth. maxDetph=0 means "only fetch root", +// maxDepth=1 means "fetch root and its direct children" and so on... +// maxDepth=-1 means unlimited. +func FetchGraphWithDepthLimit(ctx context.Context, root cid.Cid, depthLim int, serv ipld.DAGService) error { + var ng ipld.NodeGetter = serv + ds, ok := serv.(*dagService) + if ok { + ng = &sesGetter{bserv.NewSession(ctx, ds.Blocks)} + } + + set := make(map[string]int) + + // Visit function returns true when: + // * The element is not in the set and we're not over depthLim + // * The element is in the set but recorded depth is deeper + // than currently seen (if we find it higher in the tree we'll need + // to explore deeper than before). + // depthLim = -1 means we only return true if the element is not in the + // set. + visit := func(c cid.Cid, depth int) bool { + key := string(c.Bytes()) + oldDepth, ok := set[key] + + if (ok && depthLim < 0) || (depthLim >= 0 && depth > depthLim) { + return false + } + + if !ok || oldDepth > depth { + set[key] = depth + return true + } + return false + } + + v, _ := ctx.Value(progressContextKey).(*ProgressTracker) + if v == nil { + return EnumerateChildrenAsyncDepth(ctx, GetLinksDirect(ng), root, 0, visit) + } + + visitProgress := func(c cid.Cid, depth int) bool { + if visit(c, depth) { + v.Increment() + return true + } + return false + } + return EnumerateChildrenAsyncDepth(ctx, GetLinksDirect(ng), root, 0, visitProgress) +} + +// GetMany gets many nodes from the DAG at once. +// +// This method may not return all requested nodes (and may or may not return an +// error indicating that it failed to do so. It is up to the caller to verify +// that it received all nodes. +func (n *dagService) GetMany(ctx context.Context, keys []cid.Cid) <-chan *ipld.NodeOption { + return getNodesFromBG(ctx, n.Blocks, keys) +} + +func dedupKeys(keys []cid.Cid) []cid.Cid { + set := cid.NewSet() + for _, c := range keys { + set.Add(c) + } + if set.Len() == len(keys) { + return keys + } + return set.Keys() +} + +func getNodesFromBG(ctx context.Context, bs bserv.BlockGetter, keys []cid.Cid) <-chan *ipld.NodeOption { + keys = dedupKeys(keys) + + out := make(chan *ipld.NodeOption, len(keys)) + blocks := bs.GetBlocks(ctx, keys) + var count int + + go func() { + defer close(out) + for { + select { + case b, ok := <-blocks: + if !ok { + if count != len(keys) { + out <- &ipld.NodeOption{Err: fmt.Errorf("failed to fetch all nodes")} + } + return + } + + nd, err := ipld.Decode(b) + if err != nil { + out <- &ipld.NodeOption{Err: err} + return + } + + out <- &ipld.NodeOption{Node: nd} + count++ + + case <-ctx.Done(): + out <- &ipld.NodeOption{Err: ctx.Err()} + return + } + } + }() + return out +} + +// GetLinks is the type of function passed to the EnumerateChildren function(s) +// for getting the children of an IPLD node. +type GetLinks func(context.Context, cid.Cid) ([]*ipld.Link, error) + +// GetLinksWithDAG returns a GetLinks function that tries to use the given +// NodeGetter as a LinkGetter to get the children of a given IPLD node. This may +// allow us to traverse the DAG without actually loading and parsing the node in +// question (if we already have the links cached). +func GetLinksWithDAG(ng ipld.NodeGetter) GetLinks { + return func(ctx context.Context, c cid.Cid) ([]*ipld.Link, error) { + return ipld.GetLinks(ctx, ng, c) + } +} + +// EnumerateChildren will walk the dag below the given root node and add all +// unseen children to the passed in set. +// TODO: parallelize to avoid disk latency perf hits? +func EnumerateChildren(ctx context.Context, getLinks GetLinks, root cid.Cid, visit func(cid.Cid) bool) error { + visitDepth := func(c cid.Cid, depth int) bool { + return visit(c) + } + + return EnumerateChildrenDepth(ctx, getLinks, root, 0, visitDepth) +} + +// EnumerateChildrenDepth walks the dag below the given root and passes the +// current depth to a given visit function. The visit function can be used to +// limit DAG exploration. +func EnumerateChildrenDepth(ctx context.Context, getLinks GetLinks, root cid.Cid, depth int, visit func(cid.Cid, int) bool) error { + links, err := getLinks(ctx, root) + if err != nil { + return err + } + + for _, lnk := range links { + c := lnk.Cid + if visit(c, depth+1) { + err = EnumerateChildrenDepth(ctx, getLinks, c, depth+1, visit) + if err != nil { + return err + } + } + } + return nil +} + +// ProgressTracker is used to show progress when fetching nodes. +type ProgressTracker struct { + Total int + lk sync.Mutex +} + +// DeriveContext returns a new context with value "progress" derived from +// the given one. +func (p *ProgressTracker) DeriveContext(ctx context.Context) context.Context { + return context.WithValue(ctx, progressContextKey, p) +} + +// Increment adds one to the total progress. +func (p *ProgressTracker) Increment() { + p.lk.Lock() + defer p.lk.Unlock() + p.Total++ +} + +// Value returns the current progress. +func (p *ProgressTracker) Value() int { + p.lk.Lock() + defer p.lk.Unlock() + return p.Total +} + +// FetchGraphConcurrency is total number of concurrent fetches that +// 'fetchNodes' will start at a time +var FetchGraphConcurrency = 32 + +// EnumerateChildrenAsync is equivalent to EnumerateChildren *except* that it +// fetches children in parallel. +// +// NOTE: It *does not* make multiple concurrent calls to the passed `visit` function. +func EnumerateChildrenAsync(ctx context.Context, getLinks GetLinks, c cid.Cid, visit func(cid.Cid) bool) error { + visitDepth := func(c cid.Cid, depth int) bool { + return visit(c) + } + + return EnumerateChildrenAsyncDepth(ctx, getLinks, c, 0, visitDepth) +} + +// EnumerateChildrenAsyncDepth is equivalent to EnumerateChildrenDepth *except* +// that it fetches children in parallel (down to a maximum depth in the graph). +// +// NOTE: It *does not* make multiple concurrent calls to the passed `visit` function. +func EnumerateChildrenAsyncDepth(ctx context.Context, getLinks GetLinks, c cid.Cid, startDepth int, visit func(cid.Cid, int) bool) error { + type cidDepth struct { + cid cid.Cid + depth int + } + + type linksDepth struct { + links []*ipld.Link + depth int + } + + feed := make(chan *cidDepth) + out := make(chan *linksDepth) + done := make(chan struct{}) + + var setlk sync.Mutex + var wg sync.WaitGroup + + errChan := make(chan error) + fetchersCtx, cancel := context.WithCancel(ctx) + defer wg.Wait() + defer cancel() + for i := 0; i < FetchGraphConcurrency; i++ { + wg.Add(1) + go func() { + defer wg.Done() + for cdepth := range feed { + ci := cdepth.cid + depth := cdepth.depth + + setlk.Lock() + shouldVisit := visit(ci, depth) + setlk.Unlock() + + if shouldVisit { + links, err := getLinks(ctx, ci) + if err != nil { + select { + case errChan <- err: + case <-fetchersCtx.Done(): + } + return + } + + outLinks := &linksDepth{ + links: links, + depth: depth + 1, + } + + select { + case out <- outLinks: + case <-fetchersCtx.Done(): + return + } + } + select { + case done <- struct{}{}: + case <-fetchersCtx.Done(): + } + } + }() + } + defer close(feed) + + send := feed + var todobuffer []*cidDepth + var inProgress int + + next := &cidDepth{ + cid: c, + depth: startDepth, + } + for { + select { + case send <- next: + inProgress++ + if len(todobuffer) > 0 { + next = todobuffer[0] + todobuffer = todobuffer[1:] + } else { + next = nil + send = nil + } + case <-done: + inProgress-- + if inProgress == 0 && next == nil { + return nil + } + case linksDepth := <-out: + for _, lnk := range linksDepth.links { + cd := &cidDepth{ + cid: lnk.Cid, + depth: linksDepth.depth, + } + + if next == nil { + next = cd + send = feed + } else { + todobuffer = append(todobuffer, cd) + } + } + case err := <-errChan: + return err + + case <-ctx.Done(): + return ctx.Err() + } + } + +} + +var _ ipld.LinkGetter = &dagService{} +var _ ipld.NodeGetter = &dagService{} +var _ ipld.NodeGetter = &sesGetter{} +var _ ipld.DAGService = &dagService{} diff --git a/vendor/github.com/ipfs/go-merkledag/node.go b/vendor/github.com/ipfs/go-merkledag/node.go new file mode 100644 index 00000000..09789040 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/node.go @@ -0,0 +1,384 @@ +package merkledag + +import ( + "context" + "encoding/json" + "fmt" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" + mh "github.com/multiformats/go-multihash" +) + +// Common errors +var ( + ErrNotProtobuf = fmt.Errorf("expected protobuf dag node") + ErrLinkNotFound = fmt.Errorf("no link by that name") +) + +// ProtoNode represents a node in the IPFS Merkle DAG. +// nodes have opaque data and a set of navigable links. +type ProtoNode struct { + links []*ipld.Link + data []byte + + // cache encoded/marshaled value + encoded []byte + + cached cid.Cid + + // builder specifies cid version and hashing function + builder cid.Builder +} + +var v0CidPrefix = cid.Prefix{ + Codec: cid.DagProtobuf, + MhLength: -1, + MhType: mh.SHA2_256, + Version: 0, +} + +var v1CidPrefix = cid.Prefix{ + Codec: cid.DagProtobuf, + MhLength: -1, + MhType: mh.SHA2_256, + Version: 1, +} + +// V0CidPrefix returns a prefix for CIDv0 +func V0CidPrefix() cid.Prefix { return v0CidPrefix } + +// V1CidPrefix returns a prefix for CIDv1 with the default settings +func V1CidPrefix() cid.Prefix { return v1CidPrefix } + +// PrefixForCidVersion returns the Protobuf prefix for a given CID version +func PrefixForCidVersion(version int) (cid.Prefix, error) { + switch version { + case 0: + return v0CidPrefix, nil + case 1: + return v1CidPrefix, nil + default: + return cid.Prefix{}, fmt.Errorf("unknown CID version: %d", version) + } +} + +// CidBuilder returns the CID Builder for this ProtoNode, it is never nil +func (n *ProtoNode) CidBuilder() cid.Builder { + if n.builder == nil { + n.builder = v0CidPrefix + } + return n.builder +} + +// SetCidBuilder sets the CID builder if it is non nil, if nil then it +// is reset to the default value +func (n *ProtoNode) SetCidBuilder(builder cid.Builder) { + if builder == nil { + n.builder = v0CidPrefix + } else { + n.builder = builder.WithCodec(cid.DagProtobuf) + n.cached = cid.Undef + } +} + +// LinkSlice is a slice of ipld.Links +type LinkSlice []*ipld.Link + +func (ls LinkSlice) Len() int { return len(ls) } +func (ls LinkSlice) Swap(a, b int) { ls[a], ls[b] = ls[b], ls[a] } +func (ls LinkSlice) Less(a, b int) bool { return ls[a].Name < ls[b].Name } + +// NodeWithData builds a new Protonode with the given data. +func NodeWithData(d []byte) *ProtoNode { + return &ProtoNode{data: d} +} + +// AddNodeLink adds a link to another node. +func (n *ProtoNode) AddNodeLink(name string, that ipld.Node) error { + n.encoded = nil + + lnk, err := ipld.MakeLink(that) + if err != nil { + return err + } + + lnk.Name = name + + n.AddRawLink(name, lnk) + + return nil +} + +// AddRawLink adds a copy of a link to this node +func (n *ProtoNode) AddRawLink(name string, l *ipld.Link) error { + n.encoded = nil + n.links = append(n.links, &ipld.Link{ + Name: name, + Size: l.Size, + Cid: l.Cid, + }) + + return nil +} + +// RemoveNodeLink removes a link on this node by the given name. +func (n *ProtoNode) RemoveNodeLink(name string) error { + n.encoded = nil + + ref := n.links[:0] + found := false + + for _, v := range n.links { + if v.Name != name { + ref = append(ref, v) + } else { + found = true + } + } + + if !found { + return ipld.ErrNotFound + } + + n.links = ref + + return nil +} + +// GetNodeLink returns a copy of the link with the given name. +func (n *ProtoNode) GetNodeLink(name string) (*ipld.Link, error) { + for _, l := range n.links { + if l.Name == name { + return &ipld.Link{ + Name: l.Name, + Size: l.Size, + Cid: l.Cid, + }, nil + } + } + return nil, ErrLinkNotFound +} + +// GetLinkedProtoNode returns a copy of the ProtoNode with the given name. +func (n *ProtoNode) GetLinkedProtoNode(ctx context.Context, ds ipld.DAGService, name string) (*ProtoNode, error) { + nd, err := n.GetLinkedNode(ctx, ds, name) + if err != nil { + return nil, err + } + + pbnd, ok := nd.(*ProtoNode) + if !ok { + return nil, ErrNotProtobuf + } + + return pbnd, nil +} + +// GetLinkedNode returns a copy of the IPLD Node with the given name. +func (n *ProtoNode) GetLinkedNode(ctx context.Context, ds ipld.DAGService, name string) (ipld.Node, error) { + lnk, err := n.GetNodeLink(name) + if err != nil { + return nil, err + } + + return lnk.GetNode(ctx, ds) +} + +// Copy returns a copy of the node. +// NOTE: Does not make copies of Node objects in the links. +func (n *ProtoNode) Copy() ipld.Node { + nnode := new(ProtoNode) + if len(n.data) > 0 { + nnode.data = make([]byte, len(n.data)) + copy(nnode.data, n.data) + } + + if len(n.links) > 0 { + nnode.links = make([]*ipld.Link, len(n.links)) + copy(nnode.links, n.links) + } + + nnode.builder = n.builder + + return nnode +} + +// RawData returns the protobuf-encoded version of the node. +func (n *ProtoNode) RawData() []byte { + out, _ := n.EncodeProtobuf(false) + return out +} + +// Data returns the data stored by this node. +func (n *ProtoNode) Data() []byte { + return n.data +} + +// SetData stores data in this nodes. +func (n *ProtoNode) SetData(d []byte) { + n.encoded = nil + n.cached = cid.Undef + n.data = d +} + +// UpdateNodeLink return a copy of the node with the link name set to point to +// that. If a link of the same name existed, it is removed. +func (n *ProtoNode) UpdateNodeLink(name string, that *ProtoNode) (*ProtoNode, error) { + newnode := n.Copy().(*ProtoNode) + _ = newnode.RemoveNodeLink(name) // ignore error + err := newnode.AddNodeLink(name, that) + return newnode, err +} + +// Size returns the total size of the data addressed by node, +// including the total sizes of references. +func (n *ProtoNode) Size() (uint64, error) { + b, err := n.EncodeProtobuf(false) + if err != nil { + return 0, err + } + + s := uint64(len(b)) + for _, l := range n.links { + s += l.Size + } + return s, nil +} + +// Stat returns statistics on the node. +func (n *ProtoNode) Stat() (*ipld.NodeStat, error) { + enc, err := n.EncodeProtobuf(false) + if err != nil { + return nil, err + } + + cumSize, err := n.Size() + if err != nil { + return nil, err + } + + return &ipld.NodeStat{ + Hash: n.Cid().String(), + NumLinks: len(n.links), + BlockSize: len(enc), + LinksSize: len(enc) - len(n.data), // includes framing. + DataSize: len(n.data), + CumulativeSize: int(cumSize), + }, nil +} + +// Loggable implements the ipfs/go-log.Loggable interface. +func (n *ProtoNode) Loggable() map[string]interface{} { + return map[string]interface{}{ + "node": n.String(), + } +} + +// UnmarshalJSON reads the node fields from a JSON-encoded byte slice. +func (n *ProtoNode) UnmarshalJSON(b []byte) error { + s := struct { + Data []byte `json:"data"` + Links []*ipld.Link `json:"links"` + }{} + + err := json.Unmarshal(b, &s) + if err != nil { + return err + } + + n.data = s.Data + n.links = s.Links + return nil +} + +// MarshalJSON returns a JSON representation of the node. +func (n *ProtoNode) MarshalJSON() ([]byte, error) { + out := map[string]interface{}{ + "data": n.data, + "links": n.links, + } + + return json.Marshal(out) +} + +// Cid returns the node's Cid, calculated according to its prefix +// and raw data contents. +func (n *ProtoNode) Cid() cid.Cid { + if n.encoded != nil && n.cached.Defined() { + return n.cached + } + + c, err := n.builder.Sum(n.RawData()) + if err != nil { + // programmer error + err = fmt.Errorf("invalid CID of length %d: %x: %v", len(n.RawData()), n.RawData(), err) + panic(err) + } + + n.cached = c + return c +} + +// String prints the node's Cid. +func (n *ProtoNode) String() string { + return n.Cid().String() +} + +// Multihash hashes the encoded data of this node. +func (n *ProtoNode) Multihash() mh.Multihash { + // NOTE: EncodeProtobuf generates the hash and puts it in n.cached. + _, err := n.EncodeProtobuf(false) + if err != nil { + // Note: no possibility exists for an error to be returned through here + panic(err) + } + + return n.cached.Hash() +} + +// Links returns the node links. +func (n *ProtoNode) Links() []*ipld.Link { + return n.links +} + +// SetLinks replaces the node links with the given ones. +func (n *ProtoNode) SetLinks(links []*ipld.Link) { + n.links = links +} + +// Resolve is an alias for ResolveLink. +func (n *ProtoNode) Resolve(path []string) (interface{}, []string, error) { + return n.ResolveLink(path) +} + +// ResolveLink consumes the first element of the path and obtains the link +// corresponding to it from the node. It returns the link +// and the path without the consumed element. +func (n *ProtoNode) ResolveLink(path []string) (*ipld.Link, []string, error) { + if len(path) == 0 { + return nil, nil, fmt.Errorf("end of path, no more links to resolve") + } + + lnk, err := n.GetNodeLink(path[0]) + if err != nil { + return nil, nil, err + } + + return lnk, path[1:], nil +} + +// Tree returns the link names of the ProtoNode. +// ProtoNodes are only ever one path deep, so anything different than an empty +// string for p results in nothing. The depth parameter is ignored. +func (n *ProtoNode) Tree(p string, depth int) []string { + if p != "" { + return nil + } + + out := make([]string, 0, len(n.links)) + for _, lnk := range n.links { + out = append(out, lnk.Name) + } + return out +} diff --git a/vendor/github.com/ipfs/go-merkledag/package.json b/vendor/github.com/ipfs/go-merkledag/package.json new file mode 100644 index 00000000..24801a0a --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/package.json @@ -0,0 +1,66 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/ipfs/go-merkledag" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-merkledag" + }, + "gxDependencies": [ + { + "author": "stebalien", + "hash": "QmYYLnAzR28nAQ4U5MFniLprnktu6eTFKibeNt96V21EZK", + "name": "go-block-format", + "version": "0.2.2" + }, + { + "author": "whyrusleeping", + "hash": "QmVwsD9oGSAKcCoD4BGi3Hx8XRo4jNy6aMzsjDHVTgYv2D", + "name": "go-ipld-cbor", + "version": "1.5.10" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "author": "hsanjuan", + "hash": "Qmb9fkAWgcyVRnFdXGqA6jcWGFj6q35oJjwRAYRhfEboGS", + "name": "go-ipfs-exchange-offline", + "version": "0.1.7" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + }, + { + "author": "why", + "hash": "QmTRbLgKn2BKNvr9z5JQ3uZC4FSyLkad9t7qTVPkbH1LRB", + "name": "go-blockservice", + "version": "1.1.31" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-merkledag", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.40" +} + diff --git a/vendor/github.com/ipfs/go-merkledag/pb/Rules.mk b/vendor/github.com/ipfs/go-merkledag/pb/Rules.mk new file mode 100644 index 00000000..505f70e7 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/pb/Rules.mk @@ -0,0 +1,8 @@ +include mk/header.mk + +PB_$(d) = $(wildcard $(d)/*.proto) +TGTS_$(d) = $(PB_$(d):.proto=.pb.go) + +#DEPS_GO += $(TGTS_$(d)) + +include mk/footer.mk diff --git a/vendor/github.com/ipfs/go-merkledag/pb/merkledag.pb.go b/vendor/github.com/ipfs/go-merkledag/pb/merkledag.pb.go new file mode 100644 index 00000000..c6fc4360 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/pb/merkledag.pb.go @@ -0,0 +1,1072 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: merkledag.proto + +package merkledag_pb + +import ( + bytes "bytes" + fmt "fmt" + io "io" + math "math" + reflect "reflect" + strings "strings" + + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" +) + +// DoNotUpgradeFileEverItWillChangeYourHashes warns users about not breaking +// their file hashes. +const DoNotUpgradeFileEverItWillChangeYourHashes = ` +This file does not produce canonical protobufs. Unfortunately, if we change it, +we'll change the hashes of the files we produce. + +Do *not regenerate this file. +` + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// An IPFS MerkleDAG Link +type PBLink struct { + // multihash of the target object + Hash []byte `protobuf:"bytes,1,opt,name=Hash" json:"Hash,omitempty"` + // utf string name. should be unique per object + Name *string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` + // cumulative size of target object + Tsize *uint64 `protobuf:"varint,3,opt,name=Tsize" json:"Tsize,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PBLink) Reset() { *m = PBLink{} } +func (*PBLink) ProtoMessage() {} +func (*PBLink) Descriptor() ([]byte, []int) { + return fileDescriptor_10837cc3557cec00, []int{0} +} +func (m *PBLink) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PBLink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PBLink.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PBLink) XXX_Merge(src proto.Message) { + xxx_messageInfo_PBLink.Merge(m, src) +} +func (m *PBLink) XXX_Size() int { + return m.Size() +} +func (m *PBLink) XXX_DiscardUnknown() { + xxx_messageInfo_PBLink.DiscardUnknown(m) +} + +var xxx_messageInfo_PBLink proto.InternalMessageInfo + +func (m *PBLink) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *PBLink) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *PBLink) GetTsize() uint64 { + if m != nil && m.Tsize != nil { + return *m.Tsize + } + return 0 +} + +// An IPFS MerkleDAG Node +type PBNode struct { + // refs to other objects + Links []*PBLink `protobuf:"bytes,2,rep,name=Links" json:"Links,omitempty"` + // opaque user data + Data []byte `protobuf:"bytes,1,opt,name=Data" json:"Data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PBNode) Reset() { *m = PBNode{} } +func (*PBNode) ProtoMessage() {} +func (*PBNode) Descriptor() ([]byte, []int) { + return fileDescriptor_10837cc3557cec00, []int{1} +} +func (m *PBNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PBNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PBNode.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PBNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_PBNode.Merge(m, src) +} +func (m *PBNode) XXX_Size() int { + return m.Size() +} +func (m *PBNode) XXX_DiscardUnknown() { + xxx_messageInfo_PBNode.DiscardUnknown(m) +} + +var xxx_messageInfo_PBNode proto.InternalMessageInfo + +func (m *PBNode) GetLinks() []*PBLink { + if m != nil { + return m.Links + } + return nil +} + +func (m *PBNode) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func init() { + proto.RegisterType((*PBLink)(nil), "merkledag.pb.PBLink") + proto.RegisterType((*PBNode)(nil), "merkledag.pb.PBNode") +} + +func init() { proto.RegisterFile("merkledag.proto", fileDescriptor_10837cc3557cec00) } + +var fileDescriptor_10837cc3557cec00 = []byte{ + // 227 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcf, 0x4d, 0x2d, 0xca, + 0xce, 0x49, 0x4d, 0x49, 0x4c, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x41, 0x12, 0x48, + 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, + 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x59, 0xc9, + 0x8d, 0x8b, 0x2d, 0xc0, 0xc9, 0x27, 0x33, 0x2f, 0x5b, 0x48, 0x88, 0x8b, 0xc5, 0x23, 0xb1, 0x38, + 0x43, 0x82, 0x51, 0x81, 0x51, 0x83, 0x27, 0x08, 0xcc, 0x06, 0x89, 0xf9, 0x25, 0xe6, 0xa6, 0x4a, + 0x30, 0x29, 0x30, 0x6a, 0x70, 0x06, 0x81, 0xd9, 0x42, 0x22, 0x5c, 0xac, 0x21, 0xc5, 0x99, 0x55, + 0xa9, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0x2c, 0x41, 0x10, 0x8e, 0x92, 0x07, 0xc8, 0x1c, 0xbf, 0xfc, + 0x94, 0x54, 0x21, 0x2d, 0x2e, 0x56, 0x90, 0x79, 0xc5, 0x12, 0x4c, 0x0a, 0xcc, 0x1a, 0xdc, 0x46, + 0x22, 0x7a, 0xc8, 0xce, 0xd3, 0x83, 0x58, 0x16, 0x04, 0x51, 0x02, 0x32, 0xdf, 0x25, 0xb1, 0x24, + 0x11, 0x66, 0x27, 0x88, 0xed, 0xa4, 0x73, 0xe3, 0xa1, 0x1c, 0xc3, 0x83, 0x87, 0x72, 0x8c, 0x1f, + 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, + 0x1d, 0x8f, 0xe4, 0x18, 0x0f, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, + 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x56, 0xb5, 0x6e, 0x0e, + 0x01, 0x00, 0x00, +} + +func (this *PBLink) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*PBLink) + if !ok { + that2, ok := that.(PBLink) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *PBLink") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *PBLink but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *PBLink but is not nil && this == nil") + } + if !bytes.Equal(this.Hash, that1.Hash) { + return fmt.Errorf("Hash this(%v) Not Equal that(%v)", this.Hash, that1.Hash) + } + if this.Name != nil && that1.Name != nil { + if *this.Name != *that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", *this.Name, *that1.Name) + } + } else if this.Name != nil { + return fmt.Errorf("this.Name == nil && that.Name != nil") + } else if that1.Name != nil { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Tsize != nil && that1.Tsize != nil { + if *this.Tsize != *that1.Tsize { + return fmt.Errorf("Tsize this(%v) Not Equal that(%v)", *this.Tsize, *that1.Tsize) + } + } else if this.Tsize != nil { + return fmt.Errorf("this.Tsize == nil && that.Tsize != nil") + } else if that1.Tsize != nil { + return fmt.Errorf("Tsize this(%v) Not Equal that(%v)", this.Tsize, that1.Tsize) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *PBLink) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*PBLink) + if !ok { + that2, ok := that.(PBLink) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !bytes.Equal(this.Hash, that1.Hash) { + return false + } + if this.Name != nil && that1.Name != nil { + if *this.Name != *that1.Name { + return false + } + } else if this.Name != nil { + return false + } else if that1.Name != nil { + return false + } + if this.Tsize != nil && that1.Tsize != nil { + if *this.Tsize != *that1.Tsize { + return false + } + } else if this.Tsize != nil { + return false + } else if that1.Tsize != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *PBNode) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*PBNode) + if !ok { + that2, ok := that.(PBNode) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *PBNode") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *PBNode but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *PBNode but is not nil && this == nil") + } + if len(this.Links) != len(that1.Links) { + return fmt.Errorf("Links this(%v) Not Equal that(%v)", len(this.Links), len(that1.Links)) + } + for i := range this.Links { + if !this.Links[i].Equal(that1.Links[i]) { + return fmt.Errorf("Links this[%v](%v) Not Equal that[%v](%v)", i, this.Links[i], i, that1.Links[i]) + } + } + if !bytes.Equal(this.Data, that1.Data) { + return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *PBNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*PBNode) + if !ok { + that2, ok := that.(PBNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Links) != len(that1.Links) { + return false + } + for i := range this.Links { + if !this.Links[i].Equal(that1.Links[i]) { + return false + } + } + if !bytes.Equal(this.Data, that1.Data) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *PBLink) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&merkledag_pb.PBLink{") + if this.Hash != nil { + s = append(s, "Hash: "+valueToGoStringMerkledag(this.Hash, "byte")+",\n") + } + if this.Name != nil { + s = append(s, "Name: "+valueToGoStringMerkledag(this.Name, "string")+",\n") + } + if this.Tsize != nil { + s = append(s, "Tsize: "+valueToGoStringMerkledag(this.Tsize, "uint64")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *PBNode) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&merkledag_pb.PBNode{") + if this.Links != nil { + s = append(s, "Links: "+fmt.Sprintf("%#v", this.Links)+",\n") + } + if this.Data != nil { + s = append(s, "Data: "+valueToGoStringMerkledag(this.Data, "byte")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringMerkledag(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *PBLink) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PBLink) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Hash != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintMerkledag(dAtA, i, uint64(len(m.Hash))) + i += copy(dAtA[i:], m.Hash) + } + if m.Name != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMerkledag(dAtA, i, uint64(len(*m.Name))) + i += copy(dAtA[i:], *m.Name) + } + if m.Tsize != nil { + dAtA[i] = 0x18 + i++ + i = encodeVarintMerkledag(dAtA, i, uint64(*m.Tsize)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *PBNode) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PBNode) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Links) > 0 { + for _, msg := range m.Links { + dAtA[i] = 0x12 + i++ + i = encodeVarintMerkledag(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.Data != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintMerkledag(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintMerkledag(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedPBLink(r randyMerkledag, easy bool) *PBLink { + this := &PBLink{} + if r.Intn(10) != 0 { + v1 := r.Intn(100) + this.Hash = make([]byte, v1) + for i := 0; i < v1; i++ { + this.Hash[i] = byte(r.Intn(256)) + } + } + if r.Intn(10) != 0 { + v2 := string(randStringMerkledag(r)) + this.Name = &v2 + } + if r.Intn(10) != 0 { + v3 := uint64(uint64(r.Uint32())) + this.Tsize = &v3 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMerkledag(r, 4) + } + return this +} + +func NewPopulatedPBNode(r randyMerkledag, easy bool) *PBNode { + this := &PBNode{} + if r.Intn(10) != 0 { + v4 := r.Intn(100) + this.Data = make([]byte, v4) + for i := 0; i < v4; i++ { + this.Data[i] = byte(r.Intn(256)) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.Links = make([]*PBLink, v5) + for i := 0; i < v5; i++ { + this.Links[i] = NewPopulatedPBLink(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMerkledag(r, 3) + } + return this +} + +type randyMerkledag interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneMerkledag(r randyMerkledag) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringMerkledag(r randyMerkledag) string { + v6 := r.Intn(100) + tmps := make([]rune, v6) + for i := 0; i < v6; i++ { + tmps[i] = randUTF8RuneMerkledag(r) + } + return string(tmps) +} +func randUnrecognizedMerkledag(r randyMerkledag, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldMerkledag(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldMerkledag(dAtA []byte, r randyMerkledag, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateMerkledag(dAtA, uint64(key)) + v7 := r.Int63() + if r.Intn(2) == 0 { + v7 *= -1 + } + dAtA = encodeVarintPopulateMerkledag(dAtA, uint64(v7)) + case 1: + dAtA = encodeVarintPopulateMerkledag(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateMerkledag(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateMerkledag(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateMerkledag(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateMerkledag(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *PBLink) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Hash != nil { + l = len(m.Hash) + n += 1 + l + sovMerkledag(uint64(l)) + } + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovMerkledag(uint64(l)) + } + if m.Tsize != nil { + n += 1 + sovMerkledag(uint64(*m.Tsize)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PBNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Data != nil { + l = len(m.Data) + n += 1 + l + sovMerkledag(uint64(l)) + } + if len(m.Links) > 0 { + for _, e := range m.Links { + l = e.Size() + n += 1 + l + sovMerkledag(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovMerkledag(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMerkledag(x uint64) (n int) { + return sovMerkledag(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *PBLink) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PBLink{`, + `Hash:` + valueToStringMerkledag(this.Hash) + `,`, + `Name:` + valueToStringMerkledag(this.Name) + `,`, + `Tsize:` + valueToStringMerkledag(this.Tsize) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *PBNode) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PBNode{`, + `Data:` + valueToStringMerkledag(this.Data) + `,`, + `Links:` + strings.Replace(fmt.Sprintf("%v", this.Links), "PBLink", "PBLink", 1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func valueToStringMerkledag(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *PBLink) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PBLink: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PBLink: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMerkledag + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMerkledag + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMerkledag + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMerkledag + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Tsize", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Tsize = &v + default: + iNdEx = preIndex + skippy, err := skipMerkledag(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMerkledag + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthMerkledag + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PBNode) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PBNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PBNode: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMerkledag + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMerkledag + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Links", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMerkledag + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMerkledag + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMerkledag + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Links = append(m.Links, &PBLink{}) + if err := m.Links[len(m.Links)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMerkledag(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMerkledag + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthMerkledag + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipMerkledag(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMerkledag + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMerkledag + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMerkledag + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthMerkledag + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthMerkledag + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMerkledag + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipMerkledag(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthMerkledag + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthMerkledag = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMerkledag = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/ipfs/go-merkledag/pb/merkledag.proto b/vendor/github.com/ipfs/go-merkledag/pb/merkledag.proto new file mode 100644 index 00000000..01219590 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/pb/merkledag.proto @@ -0,0 +1,39 @@ +package merkledag.pb; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.gostring_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.testgen_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.unmarshaler_all) = true; + + +// An IPFS MerkleDAG Link +message PBLink { + + // multihash of the target object + optional bytes Hash = 1; + + // utf string name. should be unique per object + optional string Name = 2; + + // cumulative size of target object + optional uint64 Tsize = 3; +} + +// An IPFS MerkleDAG Node +message PBNode { + + // refs to other objects + repeated PBLink Links = 2; + + // opaque user data + optional bytes Data = 1; +} diff --git a/vendor/github.com/ipfs/go-merkledag/pb/upgrade_check.go b/vendor/github.com/ipfs/go-merkledag/pb/upgrade_check.go new file mode 100644 index 00000000..e5a6473c --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/pb/upgrade_check.go @@ -0,0 +1,5 @@ +package merkledag_pb + +// Make sure the user doesn't upgrade this package! +// This will fail to build if the user does. +const _ = DoNotUpgradeFileEverItWillChangeYourHashes diff --git a/vendor/github.com/ipfs/go-merkledag/raw.go b/vendor/github.com/ipfs/go-merkledag/raw.go new file mode 100644 index 00000000..a0adb4a1 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/raw.go @@ -0,0 +1,103 @@ +package merkledag + +import ( + "encoding/json" + "fmt" + "github.com/ipfs/go-block-format" + + cid "github.com/ipfs/go-cid" + u "github.com/ipfs/go-ipfs-util" + ipld "github.com/ipfs/go-ipld-format" +) + +// RawNode represents a node which only contains data. +type RawNode struct { + blocks.Block +} + +// NewRawNode creates a RawNode using the default sha2-256 hash function. +func NewRawNode(data []byte) *RawNode { + h := u.Hash(data) + c := cid.NewCidV1(cid.Raw, h) + blk, _ := blocks.NewBlockWithCid(data, c) + + return &RawNode{blk} +} + +// DecodeRawBlock is a block decoder for raw IPLD nodes conforming to `node.DecodeBlockFunc`. +func DecodeRawBlock(block blocks.Block) (ipld.Node, error) { + if block.Cid().Type() != cid.Raw { + return nil, fmt.Errorf("raw nodes cannot be decoded from non-raw blocks: %d", block.Cid().Type()) + } + // Once you "share" a block, it should be immutable. Therefore, we can just use this block as-is. + return &RawNode{block}, nil +} + +var _ ipld.DecodeBlockFunc = DecodeRawBlock + +// NewRawNodeWPrefix creates a RawNode using the provided cid builder +func NewRawNodeWPrefix(data []byte, builder cid.Builder) (*RawNode, error) { + builder = builder.WithCodec(cid.Raw) + c, err := builder.Sum(data) + if err != nil { + return nil, err + } + blk, err := blocks.NewBlockWithCid(data, c) + if err != nil { + return nil, err + } + return &RawNode{blk}, nil +} + +// Links returns nil. +func (rn *RawNode) Links() []*ipld.Link { + return nil +} + +// ResolveLink returns an error. +func (rn *RawNode) ResolveLink(path []string) (*ipld.Link, []string, error) { + return nil, nil, ErrLinkNotFound +} + +// Resolve returns an error. +func (rn *RawNode) Resolve(path []string) (interface{}, []string, error) { + return nil, nil, ErrLinkNotFound +} + +// Tree returns nil. +func (rn *RawNode) Tree(p string, depth int) []string { + return nil +} + +// Copy performs a deep copy of this node and returns it as an ipld.Node +func (rn *RawNode) Copy() ipld.Node { + copybuf := make([]byte, len(rn.RawData())) + copy(copybuf, rn.RawData()) + nblk, err := blocks.NewBlockWithCid(rn.RawData(), rn.Cid()) + if err != nil { + // programmer error + panic("failure attempting to clone raw block: " + err.Error()) + } + + return &RawNode{nblk} +} + +// Size returns the size of this node +func (rn *RawNode) Size() (uint64, error) { + return uint64(len(rn.RawData())), nil +} + +// Stat returns some Stats about this node. +func (rn *RawNode) Stat() (*ipld.NodeStat, error) { + return &ipld.NodeStat{ + CumulativeSize: len(rn.RawData()), + DataSize: len(rn.RawData()), + }, nil +} + +// MarshalJSON is required for our "ipfs dag" commands. +func (rn *RawNode) MarshalJSON() ([]byte, error) { + return json.Marshal(string(rn.RawData())) +} + +var _ ipld.Node = (*RawNode)(nil) diff --git a/vendor/github.com/ipfs/go-merkledag/readonly.go b/vendor/github.com/ipfs/go-merkledag/readonly.go new file mode 100644 index 00000000..36242fbe --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/readonly.go @@ -0,0 +1,20 @@ +package merkledag + +import ( + "fmt" + + ipld "github.com/ipfs/go-ipld-format" +) + +// ErrReadOnly is used when a read-only datastructure is written to. +var ErrReadOnly = fmt.Errorf("cannot write to readonly DAGService") + +// NewReadOnlyDagService takes a NodeGetter, and returns a full DAGService +// implementation that returns ErrReadOnly when its 'write' methods are +// invoked. +func NewReadOnlyDagService(ng ipld.NodeGetter) ipld.DAGService { + return &ComboService{ + Read: ng, + Write: &ErrorService{ErrReadOnly}, + } +} diff --git a/vendor/github.com/ipfs/go-merkledag/rwservice.go b/vendor/github.com/ipfs/go-merkledag/rwservice.go new file mode 100644 index 00000000..a916350a --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/rwservice.go @@ -0,0 +1,47 @@ +package merkledag + +import ( + "context" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +// ComboService implements ipld.DAGService, using 'Read' for all fetch methods, +// and 'Write' for all methods that add new objects. +type ComboService struct { + Read ipld.NodeGetter + Write ipld.DAGService +} + +var _ ipld.DAGService = (*ComboService)(nil) + +// Add writes a new node using the Write DAGService. +func (cs *ComboService) Add(ctx context.Context, nd ipld.Node) error { + return cs.Write.Add(ctx, nd) +} + +// AddMany adds nodes using the Write DAGService. +func (cs *ComboService) AddMany(ctx context.Context, nds []ipld.Node) error { + return cs.Write.AddMany(ctx, nds) +} + +// Get fetches a node using the Read DAGService. +func (cs *ComboService) Get(ctx context.Context, c cid.Cid) (ipld.Node, error) { + return cs.Read.Get(ctx, c) +} + +// GetMany fetches nodes using the Read DAGService. +func (cs *ComboService) GetMany(ctx context.Context, cids []cid.Cid) <-chan *ipld.NodeOption { + return cs.Read.GetMany(ctx, cids) +} + +// Remove deletes a node using the Write DAGService. +func (cs *ComboService) Remove(ctx context.Context, c cid.Cid) error { + return cs.Write.Remove(ctx, c) +} + +// RemoveMany deletes nodes using the Write DAGService. +func (cs *ComboService) RemoveMany(ctx context.Context, cids []cid.Cid) error { + return cs.Write.RemoveMany(ctx, cids) +} diff --git a/vendor/github.com/ipfs/go-merkledag/session.go b/vendor/github.com/ipfs/go-merkledag/session.go new file mode 100644 index 00000000..c7bbff16 --- /dev/null +++ b/vendor/github.com/ipfs/go-merkledag/session.go @@ -0,0 +1,21 @@ +package merkledag + +import ( + "context" + + ipld "github.com/ipfs/go-ipld-format" +) + +// SessionMaker is an object that can generate a new fetching session. +type SessionMaker interface { + Session(context.Context) ipld.NodeGetter +} + +// NewSession returns a session backed NodeGetter if the given NodeGetter +// implements SessionMaker. +func NewSession(ctx context.Context, g ipld.NodeGetter) ipld.NodeGetter { + if sm, ok := g.(SessionMaker); ok { + return sm.Session(ctx) + } + return g +} diff --git a/vendor/github.com/ipfs/go-metrics-interface/.gitignore b/vendor/github.com/ipfs/go-metrics-interface/.gitignore new file mode 100644 index 00000000..daf913b1 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/.gitignore @@ -0,0 +1,24 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof diff --git a/vendor/github.com/ipfs/go-metrics-interface/.travis.yml b/vendor/github.com/ipfs/go-metrics-interface/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-metrics-interface/LICENSE b/vendor/github.com/ipfs/go-metrics-interface/LICENSE new file mode 100644 index 00000000..ff687483 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-metrics-interface/context.go b/vendor/github.com/ipfs/go-metrics-interface/context.go new file mode 100644 index 00000000..8796b8b9 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/context.go @@ -0,0 +1,26 @@ +package metrics + +import "context" + +const CtxScopeKey = "ipfs.metrics.scope" + +func CtxGetScope(ctx context.Context) string { + s := ctx.Value(CtxScopeKey) + if s == nil { + return "" + } + str, ok := s.(string) + if !ok { + return "" + } + return str +} + +func CtxScope(ctx context.Context, scope string) context.Context { + return context.WithValue(ctx, CtxScopeKey, scope) +} + +func CtxSubScope(ctx context.Context, subscope string) context.Context { + curscope := CtxGetScope(ctx) + return CtxScope(ctx, curscope+"."+subscope) +} diff --git a/vendor/github.com/ipfs/go-metrics-interface/ctor.go b/vendor/github.com/ipfs/go-metrics-interface/ctor.go new file mode 100644 index 00000000..aac694e5 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/ctor.go @@ -0,0 +1,43 @@ +package metrics + +import ( + "context" + "errors" +) + +var ErrImplemented = errors.New("there is implemenation already injected") + +var ctorImpl InternalNew = nil + +// name is dot spearated path +// must be uniqe, use system naming, and unit postfix, examples: +// ipfs.blockstore.bloomcache.bloom.miss.total +// ipfs.routing.dht.notresuingstream.total +// +// both arguemnts are obligatory +func New(name, helptext string) Creator { + if ctorImpl == nil { + return &noop{} + } else { + return ctorImpl(name, helptext) + } +} + +func NewCtx(ctx context.Context, name, helptext string) Creator { + return New(CtxGetScope(ctx)+"."+name, helptext) +} + +type InternalNew func(string, string) Creator + +func InjectImpl(newimpl InternalNew) error { + if ctorImpl != nil { + return ErrImplemented + } else { + ctorImpl = newimpl + return nil + } +} + +func Active() bool { + return ctorImpl != nil +} diff --git a/vendor/github.com/ipfs/go-metrics-interface/go.mod b/vendor/github.com/ipfs/go-metrics-interface/go.mod new file mode 100644 index 00000000..57654087 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/go.mod @@ -0,0 +1 @@ +module github.com/ipfs/go-metrics-interface diff --git a/vendor/github.com/ipfs/go-metrics-interface/interface.go b/vendor/github.com/ipfs/go-metrics-interface/interface.go new file mode 100644 index 00000000..f1237593 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/interface.go @@ -0,0 +1,45 @@ +package metrics + +import ( + "time" +) + +// Increment only metric +type Counter interface { + Inc() + Add(float64) // Only positive +} + +// Increse and decrese metric +type Gauge interface { + Set(float64) // Introduced discontinuity + Inc() + Dec() + Add(float64) + Sub(float64) +} + +type Histogram interface { + Observe(float64) // Adds observation to Histogram +} + +type Summary interface { + Observe(float64) // Adds observation to Summary +} + +// Consult http://godoc.org/github.com/prometheus/client_golang/prometheus#SummaryOpts +type SummaryOpts struct { + Objectives map[float64]float64 + MaxAge time.Duration + AgeBuckets uint32 + BufCap uint32 +} + +type Creator interface { + Counter() Counter + Gauge() Gauge + Histogram(buckets []float64) Histogram + + // opts cannot be nil, use empty summary instance + Summary(opts SummaryOpts) Summary +} diff --git a/vendor/github.com/ipfs/go-metrics-interface/noop.go b/vendor/github.com/ipfs/go-metrics-interface/noop.go new file mode 100644 index 00000000..5b59aa83 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/noop.go @@ -0,0 +1,46 @@ +package metrics + +// Also implements the Counter interface +type noop struct{} + +func (g *noop) Set(v float64) { + // Noop +} + +func (g *noop) Inc() { + // Noop +} + +func (g *noop) Dec() { + // Noop +} + +func (g *noop) Add(v float64) { + // Noop +} + +func (g *noop) Sub(v float64) { + // Noop +} + +func (g *noop) Observe(v float64) { + // Noop +} + +// Creator functions + +func (g *noop) Counter() Counter { + return g +} + +func (g *noop) Gauge() Gauge { + return g +} + +func (g *noop) Histogram(buckets []float64) Histogram { + return g +} + +func (g *noop) Summary(opts SummaryOpts) Summary { + return g +} diff --git a/vendor/github.com/ipfs/go-metrics-interface/package.json b/vendor/github.com/ipfs/go-metrics-interface/package.json new file mode 100644 index 00000000..6ba42d76 --- /dev/null +++ b/vendor/github.com/ipfs/go-metrics-interface/package.json @@ -0,0 +1,16 @@ +{ + "author": "ipfs", + "bugs": { + "URL": "https://github.com/ipfs/go-metrics-interface/issues", + "url": "https://github.com/ipfs/go-metrics-interface/issues" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-metrics-interface" + }, + "gxVersion": "0.9.0", + "language": "go", + "license": "MIT", + "name": "go-metrics-interface", + "version": "0.2.0" +} + diff --git a/vendor/github.com/ipfs/go-mfs/.travis.yml b/vendor/github.com/ipfs/go-mfs/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-mfs/CODEOWNERS b/vendor/github.com/ipfs/go-mfs/CODEOWNERS new file mode 100644 index 00000000..ea812704 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/CODEOWNERS @@ -0,0 +1,8 @@ +# Please see https://help.github.com/articles/about-codeowners/ for more information + +# Global owner +* @schomatis + +# Subsystem specific owners + + diff --git a/vendor/github.com/ipfs/go-mfs/LICENSE b/vendor/github.com/ipfs/go-mfs/LICENSE new file mode 100644 index 00000000..e4224df5 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 IPFS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/ipfs/go-mfs/Makefile b/vendor/github.com/ipfs/go-mfs/Makefile new file mode 100644 index 00000000..73f2841f --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/Makefile @@ -0,0 +1,18 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish + + diff --git a/vendor/github.com/ipfs/go-mfs/README.md b/vendor/github.com/ipfs/go-mfs/README.md new file mode 100644 index 00000000..4beaa661 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/README.md @@ -0,0 +1,64 @@ +# go-mfs + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/ipfs/go-mfs?status.svg)](https://godoc.org/github.com/ipfs/go-mfs) +[![Build Status](https://travis-ci.org/ipfs/go-mfs.svg?branch=master)](https://travis-ci.org/ipfs/go-mfs) + +> go-mfs implements an in-memory model of a mutable IPFS filesystem. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-mfs` works like a regular Go module: + +``` +> go get github.com/ipfs/go-mfs +``` + +It uses [Gx](https://github.com/whyrusleeping/gx) to manage dependencies. You can use `make all` to build it with the `gx` dependencies. + +## Usage + +``` +import "github.com/ipfs/go-mfs" +``` + +Check the [GoDoc documentation](https://godoc.org/github.com/ipfs/go-mfs) + +## Documentation + +Documentation around the MFS and the Files API in general around IPFS is a work in progress the following links may be of use: + +* [UnixFS](https://docs.ipfs.io/guides/concepts/unixfs/) +* [MFS](https://docs.ipfs.io/guides/concepts/mfs/) +* [General concept document about how are files handled in IPFS (WIP)](https://github.com/ipfs/docs/issues/133) + +## Repository Structure +This repository contains many files, all belonging to the root `mfs` package. + +* `file.go`: MFS `File`. +* `dir.go`: MFS `Directory`. +* `fd.go`: `FileDescriptor` used to operate on `File`s. +* `ops.go`: Functions that do not belong to either `File` nor `Directory` (although they mostly operate on them) that contain common operations to the MFS, e.g., find, move, add a file, make a directory. +* `root.go`: MFS `Root` (a `Directory` with republishing support). +* `repub.go`: `Republisher`. +* `mfs_test.go`: General tests (needs a [revision](https://github.com/ipfs/go-mfs/issues/9)). +* `repub_test.go`: Republisher-specific tests (contains only the `TestRepublisher` function). + +## Contribute + +PRs accepted. + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs, Inc. diff --git a/vendor/github.com/ipfs/go-mfs/dir.go b/vendor/github.com/ipfs/go-mfs/dir.go new file mode 100644 index 00000000..61f85d06 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/dir.go @@ -0,0 +1,450 @@ +package mfs + +import ( + "context" + "errors" + "fmt" + "os" + "path" + "sync" + "time" + + dag "github.com/ipfs/go-merkledag" + ft "github.com/ipfs/go-unixfs" + uio "github.com/ipfs/go-unixfs/io" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +var ErrNotYetImplemented = errors.New("not yet implemented") +var ErrInvalidChild = errors.New("invalid child node") +var ErrDirExists = errors.New("directory already has entry by that name") + +// TODO: There's too much functionality associated with this structure, +// let's organize it (and if possible extract part of it elsewhere) +// and document the main features of `Directory` here. +type Directory struct { + inode + + // Internal cache with added entries to the directory, its cotents + // are synched with the underlying `unixfsDir` node in `sync()`. + entriesCache map[string]FSNode + + lock sync.Mutex + // TODO: What content is being protected here exactly? The entire directory? + + ctx context.Context + + // UnixFS directory implementation used for creating, + // reading and editing directories. + unixfsDir uio.Directory + + modTime time.Time +} + +// NewDirectory constructs a new MFS directory. +// +// You probably don't want to call this directly. Instead, construct a new root +// using NewRoot. +func NewDirectory(ctx context.Context, name string, node ipld.Node, parent parent, dserv ipld.DAGService) (*Directory, error) { + db, err := uio.NewDirectoryFromNode(dserv, node) + if err != nil { + return nil, err + } + + return &Directory{ + inode: inode{ + name: name, + parent: parent, + dagService: dserv, + }, + ctx: ctx, + unixfsDir: db, + entriesCache: make(map[string]FSNode), + modTime: time.Now(), + }, nil +} + +// GetCidBuilder gets the CID builder of the root node +func (d *Directory) GetCidBuilder() cid.Builder { + return d.unixfsDir.GetCidBuilder() +} + +// SetCidBuilder sets the CID builder +func (d *Directory) SetCidBuilder(b cid.Builder) { + d.unixfsDir.SetCidBuilder(b) +} + +// This method implements the `parent` interface. It first does the local +// update of the child entry in the underlying UnixFS directory and saves +// the newly created directory node with the updated entry in the DAG +// service. Then it propagates the update upwards (through this same +// interface) repeating the whole process in the parent. +func (d *Directory) updateChildEntry(c child) error { + newDirNode, err := d.localUpdate(c) + if err != nil { + return err + } + + // Continue to propagate the update process upwards + // (all the way up to the root). + return d.parent.updateChildEntry(child{d.name, newDirNode}) +} + +// This method implements the part of `updateChildEntry` that needs +// to be locked around: in charge of updating the UnixFS layer and +// generating the new node reflecting the update. It also stores the +// new node in the DAG layer. +func (d *Directory) localUpdate(c child) (*dag.ProtoNode, error) { + d.lock.Lock() + defer d.lock.Unlock() + + err := d.updateChild(c) + if err != nil { + return nil, err + } + // TODO: Clearly define how are we propagating changes to lower layers + // like UnixFS. + + nd, err := d.unixfsDir.GetNode() + if err != nil { + return nil, err + } + + pbnd, ok := nd.(*dag.ProtoNode) + if !ok { + return nil, dag.ErrNotProtobuf + } + + err = d.dagService.Add(d.ctx, nd) + if err != nil { + return nil, err + } + + return pbnd.Copy().(*dag.ProtoNode), nil + // TODO: Why do we need a copy? +} + +// Update child entry in the underlying UnixFS directory. +func (d *Directory) updateChild(c child) error { + err := d.addUnixFSChild(c) + if err != nil { + return err + } + + d.modTime = time.Now() + + return nil +} + +func (d *Directory) Type() NodeType { + return TDir +} + +// childNode returns a FSNode under this directory by the given name if it exists. +// it does *not* check the cached dirs and files +func (d *Directory) childNode(name string) (FSNode, error) { + nd, err := d.childFromDag(name) + if err != nil { + return nil, err + } + + return d.cacheNode(name, nd) +} + +// cacheNode caches a node into d.childDirs or d.files and returns the FSNode. +func (d *Directory) cacheNode(name string, nd ipld.Node) (FSNode, error) { + switch nd := nd.(type) { + case *dag.ProtoNode: + fsn, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return nil, err + } + + switch fsn.Type() { + case ft.TDirectory, ft.THAMTShard: + ndir, err := NewDirectory(d.ctx, name, nd, d, d.dagService) + if err != nil { + return nil, err + } + + d.entriesCache[name] = ndir + return ndir, nil + case ft.TFile, ft.TRaw, ft.TSymlink: + nfi, err := NewFile(name, nd, d, d.dagService) + if err != nil { + return nil, err + } + d.entriesCache[name] = nfi + return nfi, nil + case ft.TMetadata: + return nil, ErrNotYetImplemented + default: + return nil, ErrInvalidChild + } + case *dag.RawNode: + nfi, err := NewFile(name, nd, d, d.dagService) + if err != nil { + return nil, err + } + d.entriesCache[name] = nfi + return nfi, nil + default: + return nil, fmt.Errorf("unrecognized node type in cache node") + } +} + +// Child returns the child of this directory by the given name +func (d *Directory) Child(name string) (FSNode, error) { + d.lock.Lock() + defer d.lock.Unlock() + return d.childUnsync(name) +} + +func (d *Directory) Uncache(name string) { + d.lock.Lock() + defer d.lock.Unlock() + delete(d.entriesCache, name) +} + +// childFromDag searches through this directories dag node for a child link +// with the given name +func (d *Directory) childFromDag(name string) (ipld.Node, error) { + return d.unixfsDir.Find(d.ctx, name) +} + +// childUnsync returns the child under this directory by the given name +// without locking, useful for operations which already hold a lock +func (d *Directory) childUnsync(name string) (FSNode, error) { + entry, ok := d.entriesCache[name] + if ok { + return entry, nil + } + + return d.childNode(name) +} + +type NodeListing struct { + Name string + Type int + Size int64 + Hash string +} + +func (d *Directory) ListNames(ctx context.Context) ([]string, error) { + d.lock.Lock() + defer d.lock.Unlock() + + var out []string + err := d.unixfsDir.ForEachLink(ctx, func(l *ipld.Link) error { + out = append(out, l.Name) + return nil + }) + if err != nil { + return nil, err + } + + return out, nil +} + +func (d *Directory) List(ctx context.Context) ([]NodeListing, error) { + var out []NodeListing + err := d.ForEachEntry(ctx, func(nl NodeListing) error { + out = append(out, nl) + return nil + }) + return out, err +} + +func (d *Directory) ForEachEntry(ctx context.Context, f func(NodeListing) error) error { + d.lock.Lock() + defer d.lock.Unlock() + return d.unixfsDir.ForEachLink(ctx, func(l *ipld.Link) error { + c, err := d.childUnsync(l.Name) + if err != nil { + return err + } + + nd, err := c.GetNode() + if err != nil { + return err + } + + child := NodeListing{ + Name: l.Name, + Type: int(c.Type()), + Hash: nd.Cid().String(), + } + + if c, ok := c.(*File); ok { + size, err := c.Size() + if err != nil { + return err + } + child.Size = size + } + + return f(child) + }) +} + +func (d *Directory) Mkdir(name string) (*Directory, error) { + d.lock.Lock() + defer d.lock.Unlock() + + fsn, err := d.childUnsync(name) + if err == nil { + switch fsn := fsn.(type) { + case *Directory: + return fsn, os.ErrExist + case *File: + return nil, os.ErrExist + default: + return nil, fmt.Errorf("unrecognized type: %#v", fsn) + } + } + + ndir := ft.EmptyDirNode() + ndir.SetCidBuilder(d.GetCidBuilder()) + + err = d.dagService.Add(d.ctx, ndir) + if err != nil { + return nil, err + } + + err = d.addUnixFSChild(child{name, ndir}) + if err != nil { + return nil, err + } + + dirobj, err := NewDirectory(d.ctx, name, ndir, d, d.dagService) + if err != nil { + return nil, err + } + + d.entriesCache[name] = dirobj + return dirobj, nil +} + +func (d *Directory) Unlink(name string) error { + d.lock.Lock() + defer d.lock.Unlock() + + delete(d.entriesCache, name) + + return d.unixfsDir.RemoveChild(d.ctx, name) +} + +func (d *Directory) Flush() error { + nd, err := d.GetNode() + if err != nil { + return err + } + + return d.parent.updateChildEntry(child{d.name, nd}) +} + +// AddChild adds the node 'nd' under this directory giving it the name 'name' +func (d *Directory) AddChild(name string, nd ipld.Node) error { + d.lock.Lock() + defer d.lock.Unlock() + + _, err := d.childUnsync(name) + if err == nil { + return ErrDirExists + } + + err = d.dagService.Add(d.ctx, nd) + if err != nil { + return err + } + + err = d.addUnixFSChild(child{name, nd}) + if err != nil { + return err + } + + d.modTime = time.Now() + return nil +} + +// addUnixFSChild adds a child to the inner UnixFS directory +// and transitions to a HAMT implementation if needed. +func (d *Directory) addUnixFSChild(c child) error { + if uio.UseHAMTSharding { + // If the directory HAMT implementation is being used and this + // directory is actually a basic implementation switch it to HAMT. + if basicDir, ok := d.unixfsDir.(*uio.BasicDirectory); ok { + hamtDir, err := basicDir.SwitchToSharding(d.ctx) + if err != nil { + return err + } + d.unixfsDir = hamtDir + } + } + + err := d.unixfsDir.AddChild(d.ctx, c.Name, c.Node) + if err != nil { + return err + } + + return nil +} + +func (d *Directory) sync() error { + for name, entry := range d.entriesCache { + nd, err := entry.GetNode() + if err != nil { + return err + } + + err = d.updateChild(child{name, nd}) + if err != nil { + return err + } + } + + // TODO: Should we clean the cache here? + + return nil +} + +func (d *Directory) Path() string { + cur := d + var out string + for cur != nil { + switch parent := cur.parent.(type) { + case *Directory: + out = path.Join(cur.name, out) + cur = parent + case *Root: + return "/" + out + default: + panic("directory parent neither a directory nor a root") + } + } + return out +} + +func (d *Directory) GetNode() (ipld.Node, error) { + d.lock.Lock() + defer d.lock.Unlock() + + err := d.sync() + if err != nil { + return nil, err + } + + nd, err := d.unixfsDir.GetNode() + if err != nil { + return nil, err + } + + err = d.dagService.Add(d.ctx, nd) + if err != nil { + return nil, err + } + + return nd.Copy(), err +} diff --git a/vendor/github.com/ipfs/go-mfs/fd.go b/vendor/github.com/ipfs/go-mfs/fd.go new file mode 100644 index 00000000..77a82d69 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/fd.go @@ -0,0 +1,197 @@ +package mfs + +import ( + "fmt" + "io" + + mod "github.com/ipfs/go-unixfs/mod" + + context "context" + + ipld "github.com/ipfs/go-ipld-format" +) + +type state uint8 + +const ( + stateCreated state = iota + stateFlushed + stateDirty + stateClosed +) + +// One `File` can have many `FileDescriptor`s associated to it +// (only one if it's RW, many if they are RO, see `File.desclock`). +// A `FileDescriptor` contains the "view" of the file (through an +// instance of a `DagModifier`), that's why it (and not the `File`) +// has the responsibility to `Flush` (which crystallizes that view +// in the `File`'s `Node`). +type FileDescriptor interface { + io.Reader + CtxReadFull(context.Context, []byte) (int, error) + + io.Writer + io.WriterAt + + io.Closer + io.Seeker + + Truncate(int64) error + Size() (int64, error) + Flush() error +} + +type fileDescriptor struct { + inode *File + mod *mod.DagModifier + flags Flags + + state state +} + +func (fi *fileDescriptor) checkWrite() error { + if fi.state == stateClosed { + return ErrClosed + } + if !fi.flags.Write { + return fmt.Errorf("file is read-only") + } + return nil +} + +func (fi *fileDescriptor) checkRead() error { + if fi.state == stateClosed { + return ErrClosed + } + if !fi.flags.Read { + return fmt.Errorf("file is write-only") + } + return nil +} + +// Size returns the size of the file referred to by this descriptor +func (fi *fileDescriptor) Size() (int64, error) { + return fi.mod.Size() +} + +// Truncate truncates the file to size +func (fi *fileDescriptor) Truncate(size int64) error { + if err := fi.checkWrite(); err != nil { + return fmt.Errorf("truncate failed: %s", err) + } + fi.state = stateDirty + return fi.mod.Truncate(size) +} + +// Write writes the given data to the file at its current offset +func (fi *fileDescriptor) Write(b []byte) (int, error) { + if err := fi.checkWrite(); err != nil { + return 0, fmt.Errorf("write failed: %s", err) + } + fi.state = stateDirty + return fi.mod.Write(b) +} + +// Read reads into the given buffer from the current offset +func (fi *fileDescriptor) Read(b []byte) (int, error) { + if err := fi.checkRead(); err != nil { + return 0, fmt.Errorf("read failed: %s", err) + } + return fi.mod.Read(b) +} + +// Read reads into the given buffer from the current offset +func (fi *fileDescriptor) CtxReadFull(ctx context.Context, b []byte) (int, error) { + if err := fi.checkRead(); err != nil { + return 0, fmt.Errorf("read failed: %s", err) + } + return fi.mod.CtxReadFull(ctx, b) +} + +// Close flushes, then propogates the modified dag node up the directory structure +// and signals a republish to occur +func (fi *fileDescriptor) Close() error { + if fi.state == stateClosed { + return ErrClosed + } + if fi.flags.Write { + defer fi.inode.desclock.Unlock() + } else if fi.flags.Read { + defer fi.inode.desclock.RUnlock() + } + err := fi.flushUp(fi.flags.Sync) + fi.state = stateClosed + return err +} + +// Flush generates a new version of the node of the underlying +// UnixFS directory (adding it to the DAG service) and updates +// the entry in the parent directory (setting `fullSync` to +// propagate the update all the way to the root). +func (fi *fileDescriptor) Flush() error { + return fi.flushUp(true) +} + +// flushUp syncs the file and adds it to the dagservice +// it *must* be called with the File's lock taken +// If `fullSync` is set the changes are propagated upwards +// (the `Up` part of `flushUp`). +func (fi *fileDescriptor) flushUp(fullSync bool) error { + var nd ipld.Node + switch fi.state { + case stateCreated, stateDirty: + var err error + nd, err = fi.mod.GetNode() + if err != nil { + return err + } + err = fi.inode.dagService.Add(context.TODO(), nd) + if err != nil { + return err + } + + // TODO: Very similar logic to the update process in + // `Directory`, the logic should be unified, both structures + // (`File` and `Directory`) are backed by a IPLD node with + // a UnixFS format that is the actual target of the update + // (regenerating it and adding it to the DAG service). + fi.inode.nodeLock.Lock() + // Always update the file descriptor's inode with the created/modified node. + fi.inode.node = nd + // Save the members to be used for subsequent calls + parent := fi.inode.parent + name := fi.inode.name + fi.inode.nodeLock.Unlock() + + // Bubble up the update's to the parent, only if fullSync is set to true. + if fullSync { + if err := parent.updateChildEntry(child{name, nd}); err != nil { + return err + } + } + + fi.state = stateFlushed + return nil + case stateFlushed: + return nil + default: + panic("invalid state") + } +} + +// Seek implements io.Seeker +func (fi *fileDescriptor) Seek(offset int64, whence int) (int64, error) { + if fi.state == stateClosed { + return 0, fmt.Errorf("seek failed: %s", ErrClosed) + } + return fi.mod.Seek(offset, whence) +} + +// Write At writes the given bytes at the offset 'at' +func (fi *fileDescriptor) WriteAt(b []byte, at int64) (int, error) { + if err := fi.checkWrite(); err != nil { + return 0, fmt.Errorf("write-at failed: %s", err) + } + fi.state = stateDirty + return fi.mod.WriteAt(b, at) +} diff --git a/vendor/github.com/ipfs/go-mfs/file.go b/vendor/github.com/ipfs/go-mfs/file.go new file mode 100644 index 00000000..280bf93a --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/file.go @@ -0,0 +1,179 @@ +package mfs + +import ( + "context" + "fmt" + "sync" + + dag "github.com/ipfs/go-merkledag" + ft "github.com/ipfs/go-unixfs" + mod "github.com/ipfs/go-unixfs/mod" + + chunker "github.com/ipfs/go-ipfs-chunker" + ipld "github.com/ipfs/go-ipld-format" +) + +// File represents a file in the MFS, its logic its mainly targeted +// to coordinating (potentially many) `FileDescriptor`s pointing to +// it. +type File struct { + inode + + // Lock to coordinate the `FileDescriptor`s associated to this file. + desclock sync.RWMutex + + // This isn't any node, it's the root node that represents the + // entire DAG of nodes that comprise the file. + // TODO: Rename, there should be an explicit term for these root nodes + // of a particular sub-DAG that abstract an upper layer's entity. + node ipld.Node + + // Lock around the `node` that represents this file, necessary because + // there may be many `FileDescriptor`s operating on this `File`. + nodeLock sync.RWMutex + + RawLeaves bool +} + +// NewFile returns a NewFile object with the given parameters. If the +// Cid version is non-zero RawLeaves will be enabled. +func NewFile(name string, node ipld.Node, parent parent, dserv ipld.DAGService) (*File, error) { + fi := &File{ + inode: inode{ + name: name, + parent: parent, + dagService: dserv, + }, + node: node, + } + if node.Cid().Prefix().Version > 0 { + fi.RawLeaves = true + } + return fi, nil +} + +func (fi *File) Open(flags Flags) (_ FileDescriptor, _retErr error) { + if flags.Write { + fi.desclock.Lock() + defer func() { + if _retErr != nil { + fi.desclock.Unlock() + } + }() + } else if flags.Read { + fi.desclock.RLock() + defer func() { + if _retErr != nil { + fi.desclock.Unlock() + } + }() + } else { + return nil, fmt.Errorf("file opened for neither reading nor writing") + } + + fi.nodeLock.RLock() + node := fi.node + fi.nodeLock.RUnlock() + + // TODO: Move this `switch` logic outside (maybe even + // to another package, this seems like a job of UnixFS), + // `NewDagModifier` uses the IPLD node, we're not + // extracting anything just doing a safety check. + switch node := node.(type) { + case *dag.ProtoNode: + fsn, err := ft.FSNodeFromBytes(node.Data()) + if err != nil { + return nil, err + } + + switch fsn.Type() { + default: + return nil, fmt.Errorf("unsupported fsnode type for 'file'") + case ft.TSymlink: + return nil, fmt.Errorf("symlinks not yet supported") + case ft.TFile, ft.TRaw: + // OK case + } + case *dag.RawNode: + // Ok as well. + } + + dmod, err := mod.NewDagModifier(context.TODO(), node, fi.dagService, chunker.DefaultSplitter) + // TODO: Remove the use of the `chunker` package here, add a new `NewDagModifier` in + // `go-unixfs` with the `DefaultSplitter` already included. + if err != nil { + return nil, err + } + dmod.RawLeaves = fi.RawLeaves + + return &fileDescriptor{ + inode: fi, + flags: flags, + mod: dmod, + state: stateCreated, + }, nil +} + +// Size returns the size of this file +// TODO: Should we be providing this API? +// TODO: There's already a `FileDescriptor.Size()` that +// through the `DagModifier`'s `fileSize` function is doing +// pretty much the same thing as here, we should at least call +// that function and wrap the `ErrNotUnixfs` with an MFS text. +func (fi *File) Size() (int64, error) { + fi.nodeLock.RLock() + defer fi.nodeLock.RUnlock() + switch nd := fi.node.(type) { + case *dag.ProtoNode: + fsn, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return 0, err + } + return int64(fsn.FileSize()), nil + case *dag.RawNode: + return int64(len(nd.RawData())), nil + default: + return 0, fmt.Errorf("unrecognized node type in mfs/file.Size()") + } +} + +// GetNode returns the dag node associated with this file +// TODO: Use this method and do not access the `nodeLock` directly anywhere else. +func (fi *File) GetNode() (ipld.Node, error) { + fi.nodeLock.RLock() + defer fi.nodeLock.RUnlock() + return fi.node, nil +} + +// TODO: Tight coupling with the `FileDescriptor`, at the +// very least this should be an independent function that +// takes a `File` argument and automates the open/flush/close +// operations. +// TODO: Why do we need to flush a file that isn't opened? +// (the `OpenWriteOnly` seems to implicitly be targeting a +// closed file, a file we forgot to flush? can we close +// a file without flushing?) +func (fi *File) Flush() error { + // open the file in fullsync mode + fd, err := fi.Open(Flags{Write: true, Sync: true}) + if err != nil { + return err + } + + defer fd.Close() + + return fd.Flush() +} + +func (fi *File) Sync() error { + // just being able to take the writelock means the descriptor is synced + // TODO: Why? + fi.desclock.Lock() + fi.desclock.Unlock() + return nil +} + +// Type returns the type FSNode this is +func (fi *File) Type() NodeType { + return TFile +} diff --git a/vendor/github.com/ipfs/go-mfs/go.mod b/vendor/github.com/ipfs/go-mfs/go.mod new file mode 100644 index 00000000..2ff3ec9e --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/go.mod @@ -0,0 +1,17 @@ +module github.com/ipfs/go-mfs + +require ( + github.com/ipfs/go-blockservice v0.0.3 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ipfs-blockstore v0.0.1 + github.com/ipfs/go-ipfs-chunker v0.0.1 + github.com/ipfs/go-ipfs-exchange-offline v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-merkledag v0.0.3 + github.com/ipfs/go-path v0.0.3 + github.com/ipfs/go-unixfs v0.0.4 + github.com/libp2p/go-testutil v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-mfs/go.sum b/vendor/github.com/ipfs/go-mfs/go.sum new file mode 100644 index 00000000..7572bde9 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/go.sum @@ -0,0 +1,313 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e h1:2Z+EBRrOJsA3psnUPcEWMIH2EIga1xHflQcr/EZslx8= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e/go.mod h1:3oM7gXIttpYDAJXpVNnSCiUMYBLIZ6cb1t+Ip982MRo= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-bitswap v0.0.3 h1:uFcSI9dkjUn67S7IM60vr2wA27aAvn8o9xYjaQCug3o= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-blockservice v0.0.3 h1:40OvwrxeudTAlUGUAKNYnNPcwQeLtXedjzTWecnUinQ= +github.com/ipfs/go-blockservice v0.0.3/go.mod h1:/NNihwTi6V2Yr6g8wBI+BSwPuURpBRMtYNGrlxZ8KuI= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-chunker v0.0.1 h1:cHUUxKFQ99pozdahi+uSC/3Y6HeRpi9oTeUHbE27SEw= +github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-files v0.0.1 h1:OroTsI58plHGX70HPLKy6LQhPR3HZJ5ip61fYlo6POM= +github.com/ipfs/go-ipfs-files v0.0.1/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-files v0.0.2/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs= +github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-cbor v0.0.1 h1:g7yh27SznWP4CUbkFgjR+WQRjEeyxCpTR4iKVmXx1wA= +github.com/ipfs/go-ipld-cbor v0.0.1/go.mod h1:RXHr8s4k0NE0TKhnrxqZC9M888QfsBN9rhS5NjfKzY8= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-merkledag v0.0.3 h1:A5DlOMzqTRDVmdgkf3dzCKCFmVWH4Zqwb0cbYXUs+Ro= +github.com/ipfs/go-merkledag v0.0.3/go.mod h1:Oc5kIXLHokkE1hWGMBHw+oxehkAaTOqtEb7Zbh6BhLA= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-path v0.0.3 h1:G/VFcCMXtp36JUPPyytYQ1I3UsBUBf47M//uSdTLnFg= +github.com/ipfs/go-path v0.0.3/go.mod h1:zIRQUez3LuQIU25zFjC2hpBTHimWx7VK5bjZgRLbbdo= +github.com/ipfs/go-unixfs v0.0.3 h1:09koecZaoJVoYy6Wkd/vo1lyQ4AdgAe83eJylQ7gAZw= +github.com/ipfs/go-unixfs v0.0.3/go.mod h1:FX/6aS/Xg95JRc6UMyiMdZeNn+N5VkD8/yfLNwKW0Ks= +github.com/ipfs/go-unixfs v0.0.4 h1:IApzQ+SnY0tfjqM7aU2b80CFYLZNHvhLmEZDIWr4e/E= +github.com/ipfs/go-unixfs v0.0.4/go.mod h1:eIo/p9ADu/MFOuyxzwU+Th8D6xoxU//r590vUpWyfz8= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 h1:xQJI9OEiErEQ++DoXOHqEpzsGMrAv2Q2jyCpi7DmfpQ= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-mfs/inode.go b/vendor/github.com/ipfs/go-mfs/inode.go new file mode 100644 index 00000000..50bed0b3 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/inode.go @@ -0,0 +1,21 @@ +package mfs + +import ( + ipld "github.com/ipfs/go-ipld-format" +) + +// inode abstracts the common characteristics of the MFS `File` +// and `Directory`. All of its attributes are initialized at +// creation. +type inode struct { + // name of this `inode` in the MFS path (the same value + // is also stored as the name of the DAG link). + name string + + // parent directory of this `inode` (which may be the `Root`). + parent parent + + // dagService used to store modifications made to the contents + // of the file or directory the `inode` belongs to. + dagService ipld.DAGService +} diff --git a/vendor/github.com/ipfs/go-mfs/ops.go b/vendor/github.com/ipfs/go-mfs/ops.go new file mode 100644 index 00000000..bf05cd44 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/ops.go @@ -0,0 +1,242 @@ +package mfs + +import ( + "context" + "fmt" + "os" + gopath "path" + "strings" + + path "github.com/ipfs/go-path" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +// TODO: Evaluate moving all this operations to as `Root` +// methods, since all of them use it as its first argument +// and there is no clear documentation that explains this +// separation. + +// Mv moves the file or directory at 'src' to 'dst' +// TODO: Document what the strings 'src' and 'dst' represent. +func Mv(r *Root, src, dst string) error { + srcDir, srcFname := gopath.Split(src) + + var dstDirStr string + var filename string + if dst[len(dst)-1] == '/' { + dstDirStr = dst + filename = srcFname + } else { + dstDirStr, filename = gopath.Split(dst) + } + + // get parent directories of both src and dest first + dstDir, err := lookupDir(r, dstDirStr) + if err != nil { + return err + } + + srcDirObj, err := lookupDir(r, srcDir) + if err != nil { + return err + } + + srcObj, err := srcDirObj.Child(srcFname) + if err != nil { + return err + } + + nd, err := srcObj.GetNode() + if err != nil { + return err + } + + fsn, err := dstDir.Child(filename) + if err == nil { + switch n := fsn.(type) { + case *File: + _ = dstDir.Unlink(filename) + case *Directory: + dstDir = n + filename = srcFname + default: + return fmt.Errorf("unexpected type at path: %s", dst) + } + } else if err != os.ErrNotExist { + return err + } + + err = dstDir.AddChild(filename, nd) + if err != nil { + return err + } + + return srcDirObj.Unlink(srcFname) +} + +func lookupDir(r *Root, path string) (*Directory, error) { + di, err := Lookup(r, path) + if err != nil { + return nil, err + } + + d, ok := di.(*Directory) + if !ok { + return nil, fmt.Errorf("%s is not a directory", path) + } + + return d, nil +} + +// PutNode inserts 'nd' at 'path' in the given mfs +// TODO: Rename or clearly document that this is not about nodes but actually +// MFS files/directories (that in the underlying representation can be +// considered as just nodes). +// TODO: Document why are we handling IPLD nodes in the first place when we +// are actually referring to files/directories (that is, it can't be any +// node, it has to have a specific format). +// TODO: Can this function add directories or just files? What would be the +// difference between adding a directory with this method and creating it +// with `Mkdir`. +func PutNode(r *Root, path string, nd ipld.Node) error { + dirp, filename := gopath.Split(path) + if filename == "" { + return fmt.Errorf("cannot create file with empty name") + } + + pdir, err := lookupDir(r, dirp) + if err != nil { + return err + } + + return pdir.AddChild(filename, nd) +} + +// MkdirOpts is used by Mkdir +type MkdirOpts struct { + Mkparents bool + Flush bool + CidBuilder cid.Builder +} + +// Mkdir creates a directory at 'path' under the directory 'd', creating +// intermediary directories as needed if 'mkparents' is set to true +func Mkdir(r *Root, pth string, opts MkdirOpts) error { + if pth == "" { + return fmt.Errorf("no path given to Mkdir") + } + parts := path.SplitList(pth) + if parts[0] == "" { + parts = parts[1:] + } + + // allow 'mkdir /a/b/c/' to create c + if parts[len(parts)-1] == "" { + parts = parts[:len(parts)-1] + } + + if len(parts) == 0 { + // this will only happen on 'mkdir /' + if opts.Mkparents { + return nil + } + return fmt.Errorf("cannot create directory '/': Already exists") + } + + cur := r.GetDirectory() + for i, d := range parts[:len(parts)-1] { + fsn, err := cur.Child(d) + if err == os.ErrNotExist && opts.Mkparents { + mkd, err := cur.Mkdir(d) + if err != nil { + return err + } + if opts.CidBuilder != nil { + mkd.SetCidBuilder(opts.CidBuilder) + } + fsn = mkd + } else if err != nil { + return err + } + + next, ok := fsn.(*Directory) + if !ok { + return fmt.Errorf("%s was not a directory", path.Join(parts[:i])) + } + cur = next + } + + final, err := cur.Mkdir(parts[len(parts)-1]) + if err != nil { + if !opts.Mkparents || err != os.ErrExist || final == nil { + return err + } + } + if opts.CidBuilder != nil { + final.SetCidBuilder(opts.CidBuilder) + } + + if opts.Flush { + err := final.Flush() + if err != nil { + return err + } + } + + return nil +} + +// Lookup extracts the root directory and performs a lookup under it. +// TODO: Now that the root is always a directory, can this function +// be collapsed with `DirLookup`? Or at least be made a method of `Root`? +func Lookup(r *Root, path string) (FSNode, error) { + dir := r.GetDirectory() + + return DirLookup(dir, path) +} + +// DirLookup will look up a file or directory at the given path +// under the directory 'd' +func DirLookup(d *Directory, pth string) (FSNode, error) { + pth = strings.Trim(pth, "/") + parts := path.SplitList(pth) + if len(parts) == 1 && parts[0] == "" { + return d, nil + } + + var cur FSNode + cur = d + for i, p := range parts { + chdir, ok := cur.(*Directory) + if !ok { + return nil, fmt.Errorf("cannot access %s: Not a directory", path.Join(parts[:i+1])) + } + + child, err := chdir.Child(p) + if err != nil { + return nil, err + } + + cur = child + } + return cur, nil +} + +// TODO: Document this function and link its functionality +// with the republisher. +func FlushPath(ctx context.Context, rt *Root, pth string) (ipld.Node, error) { + nd, err := Lookup(rt, pth) + if err != nil { + return nil, err + } + + err = nd.Flush() + if err != nil { + return nil, err + } + + rt.repub.WaitPub(ctx) + return nd.GetNode() +} diff --git a/vendor/github.com/ipfs/go-mfs/options.go b/vendor/github.com/ipfs/go-mfs/options.go new file mode 100644 index 00000000..6bdcd710 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/options.go @@ -0,0 +1,7 @@ +package mfs + +type Flags struct { + Read bool + Write bool + Sync bool +} diff --git a/vendor/github.com/ipfs/go-mfs/package.json b/vendor/github.com/ipfs/go-mfs/package.json new file mode 100644 index 00000000..e8079f4c --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/package.json @@ -0,0 +1,48 @@ +{ + "author": "hsanjuan", + "bugs": { + "url": "https://github.com/ipfs/go-mfs" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-mfs" + }, + "gxDependencies": [ + { + "author": "why", + "hash": "QmY6UwsN3D6uoxrRkYpJ8Wos8R66gwLmdn3wy7jM7CCRQ1", + "name": "go-merkledag", + "version": "1.1.40" + }, + { + "author": "why", + "hash": "QmVmueix5wxmr8UWpfpcKw6F1xT7T8AS7CXQRM37BE29eX", + "name": "go-unixfs", + "version": "1.3.15" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + }, + { + "author": "why", + "hash": "QmUquHAkyh9phs4ojSuHcHcZnUMGDwDNJZWnRXkNks1qLB", + "name": "go-path", + "version": "1.1.41" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-mfs", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.54" +} + diff --git a/vendor/github.com/ipfs/go-mfs/repub.go b/vendor/github.com/ipfs/go-mfs/repub.go new file mode 100644 index 00000000..2c9dbd25 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/repub.go @@ -0,0 +1,197 @@ +package mfs + +import ( + "context" + "time" + + cid "github.com/ipfs/go-cid" +) + +// PubFunc is the user-defined function that determines exactly what +// logic entails "publishing" a `Cid` value. +type PubFunc func(context.Context, cid.Cid) error + +// Republisher manages when to publish a given entry. +type Republisher struct { + TimeoutLong time.Duration + TimeoutShort time.Duration + RetryTimeout time.Duration + pubfunc PubFunc + + update chan cid.Cid + immediatePublish chan chan struct{} + + ctx context.Context + cancel func() +} + +// NewRepublisher creates a new Republisher object to republish the given root +// using the given short and long time intervals. +func NewRepublisher(ctx context.Context, pf PubFunc, tshort, tlong time.Duration) *Republisher { + ctx, cancel := context.WithCancel(ctx) + return &Republisher{ + TimeoutShort: tshort, + TimeoutLong: tlong, + RetryTimeout: tlong, + update: make(chan cid.Cid, 1), + pubfunc: pf, + immediatePublish: make(chan chan struct{}), + ctx: ctx, + cancel: cancel, + } +} + +// WaitPub waits for the current value to be published (or returns early +// if it already has). +func (rp *Republisher) WaitPub(ctx context.Context) error { + wait := make(chan struct{}) + select { + case rp.immediatePublish <- wait: + case <-ctx.Done(): + return ctx.Err() + } + select { + case <-wait: + return nil + case <-ctx.Done(): + return ctx.Err() + } +} + +func (rp *Republisher) Close() error { + // TODO(steb): Wait for `Run` to stop + err := rp.WaitPub(rp.ctx) + rp.cancel() + return err +} + +// Update the current value. The value will be published after a delay but each +// consecutive call to Update may extend this delay up to TimeoutLong. +func (rp *Republisher) Update(c cid.Cid) { + select { + case <-rp.update: + select { + case rp.update <- c: + default: + // Don't try again. If we hit this case, there's a + // concurrent publish and we can safely let that + // concurrent publish win. + } + case rp.update <- c: + } +} + +// Run contains the core logic of the `Republisher`. It calls the user-defined +// `pubfunc` function whenever the `Cid` value is updated to a *new* value. The +// complexity comes from the fact that `pubfunc` may be slow so we need to batch +// updates. +// +// Algorithm: +// 1. When we receive the first update after publishing, we set a `longer` timer. +// 2. When we receive any update, we reset the `quick` timer. +// 3. If either the `quick` timeout or the `longer` timeout elapses, +// we call `publish` with the latest updated value. +// +// The `longer` timer ensures that we delay publishing by at most +// `TimeoutLong`. The `quick` timer allows us to publish sooner if +// it looks like there are no more updates coming down the pipe. +// +// Note: If a publish fails, we retry repeatedly every TimeoutRetry. +func (rp *Republisher) Run(lastPublished cid.Cid) { + quick := time.NewTimer(0) + if !quick.Stop() { + <-quick.C + } + longer := time.NewTimer(0) + if !longer.Stop() { + <-longer.C + } + + var toPublish cid.Cid + for rp.ctx.Err() == nil { + var waiter chan struct{} + + select { + case <-rp.ctx.Done(): + return + case newValue := <-rp.update: + // Skip already published values. + if lastPublished.Equals(newValue) { + // Break to the end of the switch to cleanup any + // timers. + toPublish = cid.Undef + break + } + + // If we aren't already waiting to publish something, + // reset the long timeout. + if !toPublish.Defined() { + longer.Reset(rp.TimeoutLong) + } + + // Always reset the short timeout. + quick.Reset(rp.TimeoutShort) + + // Finally, set the new value to publish. + toPublish = newValue + continue + case waiter = <-rp.immediatePublish: + // Make sure to grab the *latest* value to publish. + select { + case toPublish = <-rp.update: + default: + } + + // Avoid publishing duplicate values + if lastPublished.Equals(toPublish) { + toPublish = cid.Undef + } + case <-quick.C: + case <-longer.C: + } + + // Cleanup, publish, and close waiters. + + // 1. Stop any timers. Don't use the `if !t.Stop() { ... }` + // idiom as these timers may not be running. + + quick.Stop() + select { + case <-quick.C: + default: + } + + longer.Stop() + select { + case <-longer.C: + default: + } + + // 2. If we have a value to publish, publish it now. + if toPublish.Defined() { + for { + err := rp.pubfunc(rp.ctx, toPublish) + if err == nil { + break + } + // Keep retrying until we succeed or we abort. + // TODO(steb): We could try pulling new values + // off `update` but that's not critical (and + // complicates this code a bit). We'll pull off + // a new value on the next loop through. + select { + case <-time.After(rp.RetryTimeout): + case <-rp.ctx.Done(): + return + } + } + lastPublished = toPublish + toPublish = cid.Undef + } + + // 3. Trigger anything waiting in `WaitPub`. + if waiter != nil { + close(waiter) + } + } +} diff --git a/vendor/github.com/ipfs/go-mfs/root.go b/vendor/github.com/ipfs/go-mfs/root.go new file mode 100644 index 00000000..026a3202 --- /dev/null +++ b/vendor/github.com/ipfs/go-mfs/root.go @@ -0,0 +1,218 @@ +// package mfs implements an in memory model of a mutable IPFS filesystem. +// TODO: Develop on this line (and move it to `doc.go`). + +package mfs + +import ( + "context" + "errors" + "fmt" + "time" + + dag "github.com/ipfs/go-merkledag" + ft "github.com/ipfs/go-unixfs" + + ipld "github.com/ipfs/go-ipld-format" + logging "github.com/ipfs/go-log" +) + +// TODO: Remove if not used. +var ErrNotExist = errors.New("no such rootfs") +var ErrClosed = errors.New("file closed") + +var log = logging.Logger("mfs") + +// TODO: Remove if not used. +var ErrIsDirectory = errors.New("error: is a directory") + +// The information that an MFS `Directory` has about its children +// when updating one of its entries: when a child mutates it signals +// its parent directory to update its entry (under `Name`) with the +// new content (in `Node`). +type child struct { + Name string + Node ipld.Node +} + +// This interface represents the basic property of MFS directories of updating +// children entries with modified content. Implemented by both the MFS +// `Directory` and `Root` (which is basically a `Directory` with republishing +// support). +// +// TODO: What is `fullsync`? (unnamed `bool` argument) +// TODO: There are two types of persistence/flush that need to be +// distinguished here, one at the DAG level (when I store the modified +// nodes in the DAG service) and one in the UnixFS/MFS level (when I modify +// the entry/link of the directory that pointed to the modified node). +type parent interface { + // Method called by a child to its parent to signal to update the content + // pointed to in the entry by that child's name. The child sends its own + // information in the `child` structure. As modifying a directory entry + // entails modifying its contents the parent will also call *its* parent's + // `updateChildEntry` to update the entry pointing to the new directory, + // this mechanism is in turn repeated until reaching the `Root`. + updateChildEntry(c child) error +} + +type NodeType int + +const ( + TFile NodeType = iota + TDir +) + +// FSNode abstracts the `Directory` and `File` structures, it represents +// any child node in the MFS (i.e., all the nodes besides the `Root`). It +// is the counterpart of the `parent` interface which represents any +// parent node in the MFS (`Root` and `Directory`). +// (Not to be confused with the `unixfs.FSNode`.) +type FSNode interface { + GetNode() (ipld.Node, error) + + Flush() error + Type() NodeType +} + +// IsDir checks whether the FSNode is dir type +func IsDir(fsn FSNode) bool { + return fsn.Type() == TDir +} + +// IsFile checks whether the FSNode is file type +func IsFile(fsn FSNode) bool { + return fsn.Type() == TFile +} + +// Root represents the root of a filesystem tree. +type Root struct { + + // Root directory of the MFS layout. + dir *Directory + + repub *Republisher +} + +// NewRoot creates a new Root and starts up a republisher routine for it. +func NewRoot(parent context.Context, ds ipld.DAGService, node *dag.ProtoNode, pf PubFunc) (*Root, error) { + + var repub *Republisher + if pf != nil { + repub = NewRepublisher(parent, pf, time.Millisecond*300, time.Second*3) + + // No need to take the lock here since we just created + // the `Republisher` and no one has access to it yet. + + go repub.Run(node.Cid()) + } + + root := &Root{ + repub: repub, + } + + fsn, err := ft.FSNodeFromBytes(node.Data()) + if err != nil { + log.Error("IPNS pointer was not unixfs node") + // TODO: IPNS pointer? + return nil, err + } + + switch fsn.Type() { + case ft.TDirectory, ft.THAMTShard: + newDir, err := NewDirectory(parent, node.String(), node, root, ds) + if err != nil { + return nil, err + } + + root.dir = newDir + case ft.TFile, ft.TMetadata, ft.TRaw: + return nil, fmt.Errorf("root can't be a file (unixfs type: %s)", fsn.Type()) + // TODO: This special error reporting case doesn't seem worth it, we either + // have a UnixFS directory or we don't. + default: + return nil, fmt.Errorf("unrecognized unixfs type: %s", fsn.Type()) + } + return root, nil +} + +// GetDirectory returns the root directory. +func (kr *Root) GetDirectory() *Directory { + return kr.dir +} + +// Flush signals that an update has occurred since the last publish, +// and updates the Root republisher. +// TODO: We are definitely abusing the "flush" terminology here. +func (kr *Root) Flush() error { + nd, err := kr.GetDirectory().GetNode() + if err != nil { + return err + } + + if kr.repub != nil { + kr.repub.Update(nd.Cid()) + } + return nil +} + +// FlushMemFree flushes the root directory and then uncaches all of its links. +// This has the effect of clearing out potentially stale references and allows +// them to be garbage collected. +// CAUTION: Take care not to ever call this while holding a reference to any +// child directories. Those directories will be bad references and using them +// may have unintended racy side effects. +// A better implemented mfs system (one that does smarter internal caching and +// refcounting) shouldnt need this method. +// TODO: Review the motivation behind this method once the cache system is +// refactored. +func (kr *Root) FlushMemFree(ctx context.Context) error { + dir := kr.GetDirectory() + + if err := dir.Flush(); err != nil { + return err + } + + dir.lock.Lock() + defer dir.lock.Unlock() + + for name := range dir.entriesCache { + delete(dir.entriesCache, name) + } + // TODO: Can't we just create new maps? + + return nil +} + +// updateChildEntry implements the `parent` interface, and signals +// to the publisher that there are changes ready to be published. +// This is the only thing that separates a `Root` from a `Directory`. +// TODO: Evaluate merging both. +// TODO: The `sync` argument isn't used here (we've already reached +// the top), document it and maybe make it an anonymous variable (if +// that's possible). +func (kr *Root) updateChildEntry(c child) error { + err := kr.GetDirectory().dagService.Add(context.TODO(), c.Node) + if err != nil { + return err + } + // TODO: Why are we not using the inner directory lock nor + // applying the same procedure as `Directory.updateChildEntry`? + + if kr.repub != nil { + kr.repub.Update(c.Node.Cid()) + } + return nil +} + +func (kr *Root) Close() error { + nd, err := kr.GetDirectory().GetNode() + if err != nil { + return err + } + + if kr.repub != nil { + kr.repub.Update(nd.Cid()) + return kr.repub.Close() + } + + return nil +} diff --git a/vendor/github.com/ipfs/go-path/.travis.yml b/vendor/github.com/ipfs/go-path/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-path/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-path/LICENSE b/vendor/github.com/ipfs/go-path/LICENSE new file mode 100644 index 00000000..7d5dcac4 --- /dev/null +++ b/vendor/github.com/ipfs/go-path/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-path/Makefile b/vendor/github.com/ipfs/go-path/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/ipfs/go-path/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-path/README.md b/vendor/github.com/ipfs/go-path/README.md new file mode 100644 index 00000000..79dd9289 --- /dev/null +++ b/vendor/github.com/ipfs/go-path/README.md @@ -0,0 +1,32 @@ +go-path +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-path/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-path/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-path.svg?branch=master)](https://travis-ci.org/ipfs/go-path) + +> go-path is a helper package that provides utilities for parsing and using ipfs paths + + +## Table of Contents + +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## TODO + +This package could probably be merged into go-ipld, or something along those lines. It +doesnt really make sense as its own standalone thing. + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Juan Batiz-Benet diff --git a/vendor/github.com/ipfs/go-path/go.mod b/vendor/github.com/ipfs/go-path/go.mod new file mode 100644 index 00000000..0278fc8f --- /dev/null +++ b/vendor/github.com/ipfs/go-path/go.mod @@ -0,0 +1,8 @@ +module github.com/ipfs/go-path + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-merkledag v0.0.3 +) diff --git a/vendor/github.com/ipfs/go-path/go.sum b/vendor/github.com/ipfs/go-path/go.sum new file mode 100644 index 00000000..223c1c37 --- /dev/null +++ b/vendor/github.com/ipfs/go-path/go.sum @@ -0,0 +1,293 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-bitswap v0.0.3 h1:uFcSI9dkjUn67S7IM60vr2wA27aAvn8o9xYjaQCug3o= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-blockservice v0.0.3 h1:40OvwrxeudTAlUGUAKNYnNPcwQeLtXedjzTWecnUinQ= +github.com/ipfs/go-blockservice v0.0.3/go.mod h1:/NNihwTi6V2Yr6g8wBI+BSwPuURpBRMtYNGrlxZ8KuI= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-cbor v0.0.1 h1:g7yh27SznWP4CUbkFgjR+WQRjEeyxCpTR4iKVmXx1wA= +github.com/ipfs/go-ipld-cbor v0.0.1/go.mod h1:RXHr8s4k0NE0TKhnrxqZC9M888QfsBN9rhS5NjfKzY8= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-merkledag v0.0.3 h1:A5DlOMzqTRDVmdgkf3dzCKCFmVWH4Zqwb0cbYXUs+Ro= +github.com/ipfs/go-merkledag v0.0.3/go.mod h1:Oc5kIXLHokkE1hWGMBHw+oxehkAaTOqtEb7Zbh6BhLA= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-path/package.json b/vendor/github.com/ipfs/go-path/package.json new file mode 100644 index 00000000..54689501 --- /dev/null +++ b/vendor/github.com/ipfs/go-path/package.json @@ -0,0 +1,41 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/ipfs/go-path" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-path" + }, + "gxDependencies": [ + { + "author": "why", + "hash": "QmY6UwsN3D6uoxrRkYpJ8Wos8R66gwLmdn3wy7jM7CCRQ1", + "name": "go-merkledag", + "version": "1.1.40" + }, + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-path", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.41" +} + diff --git a/vendor/github.com/ipfs/go-path/path.go b/vendor/github.com/ipfs/go-path/path.go new file mode 100644 index 00000000..b0d6cdcd --- /dev/null +++ b/vendor/github.com/ipfs/go-path/path.go @@ -0,0 +1,192 @@ +// Package path contains utilities to work with ipfs paths. +package path + +import ( + "errors" + "path" + "strings" + + cid "github.com/ipfs/go-cid" +) + +var ( + // ErrBadPath is returned when a given path is incorrectly formatted + ErrBadPath = errors.New("invalid 'ipfs ref' path") + + // ErrNoComponents is used when Paths after a protocol + // do not contain at least one component + ErrNoComponents = errors.New( + "path must contain at least one component") +) + +// A Path represents an ipfs content path: +// * //path/to/file +// * /ipfs/ +// * /ipns//path/to/folder +// * etc +type Path string + +// ^^^ +// TODO: debate making this a private struct wrapped in a public interface +// would allow us to control creation, and cache segments. + +// FromString safely converts a string type to a Path type. +func FromString(s string) Path { + return Path(s) +} + +// FromCid safely converts a cid.Cid type to a Path type. +func FromCid(c cid.Cid) Path { + return Path("/ipfs/" + c.String()) +} + +// Segments returns the different elements of a path +// (elements are delimited by a /). +func (p Path) Segments() []string { + cleaned := path.Clean(string(p)) + segments := strings.Split(cleaned, "/") + + // Ignore leading slash + if len(segments[0]) == 0 { + segments = segments[1:] + } + + return segments +} + +// String converts a path to string. +func (p Path) String() string { + return string(p) +} + +// IsJustAKey returns true if the path is of the form or /ipfs/, or +// /ipld/ +func (p Path) IsJustAKey() bool { + parts := p.Segments() + return len(parts) == 2 && (parts[0] == "ipfs" || parts[0] == "ipld") +} + +// PopLastSegment returns a new Path without its final segment, and the final +// segment, separately. If there is no more to pop (the path is just a key), +// the original path is returned. +func (p Path) PopLastSegment() (Path, string, error) { + + if p.IsJustAKey() { + return p, "", nil + } + + segs := p.Segments() + newPath, err := ParsePath("/" + strings.Join(segs[:len(segs)-1], "/")) + if err != nil { + return "", "", err + } + + return newPath, segs[len(segs)-1], nil +} + +// FromSegments returns a path given its different segments. +func FromSegments(prefix string, seg ...string) (Path, error) { + return ParsePath(prefix + strings.Join(seg, "/")) +} + +// ParsePath returns a well-formed ipfs Path. +// The returned path will always be prefixed with /ipfs/ or /ipns/. +// The prefix will be added if not present in the given string. +// This function will return an error when the given string is +// not a valid ipfs path. +func ParsePath(txt string) (Path, error) { + parts := strings.Split(txt, "/") + if len(parts) == 1 { + kp, err := ParseCidToPath(txt) + if err == nil { + return kp, nil + } + } + + // if the path doesnt begin with a '/' + // we expect this to start with a hash, and be an 'ipfs' path + if parts[0] != "" { + if _, err := cid.Decode(parts[0]); err != nil { + return "", ErrBadPath + } + // The case when the path starts with hash without a protocol prefix + return Path("/ipfs/" + txt), nil + } + + if len(parts) < 3 { + return "", ErrBadPath + } + + //TODO: make this smarter + switch parts[1] { + case "ipfs", "ipld": + if parts[2] == "" { + return "", ErrNoComponents + } + // Validate Cid. + _, err := cid.Decode(parts[2]) + if err != nil { + return "", err + } + case "ipns": + if parts[2] == "" { + return "", ErrNoComponents + } + default: + return "", ErrBadPath + } + + return Path(txt), nil +} + +// ParseCidToPath takes a CID in string form and returns a valid ipfs Path. +func ParseCidToPath(txt string) (Path, error) { + if txt == "" { + return "", ErrNoComponents + } + + c, err := cid.Decode(txt) + if err != nil { + return "", err + } + + return FromCid(c), nil +} + +// IsValid checks if a path is a valid ipfs Path. +func (p *Path) IsValid() error { + _, err := ParsePath(p.String()) + return err +} + +// Join joins strings slices using / +func Join(pths []string) string { + return strings.Join(pths, "/") +} + +// SplitList splits strings usings / +func SplitList(pth string) []string { + return strings.Split(pth, "/") +} + +// SplitAbsPath clean up and split fpath. It extracts the first component (which +// must be a Multihash) and return it separately. +func SplitAbsPath(fpath Path) (cid.Cid, []string, error) { + parts := fpath.Segments() + if parts[0] == "ipfs" || parts[0] == "ipld" { + parts = parts[1:] + } + + // if nothing, bail. + if len(parts) == 0 { + return cid.Cid{}, nil, ErrNoComponents + } + + c, err := cid.Decode(parts[0]) + // first element in the path is a cid + if err != nil { + return cid.Cid{}, nil, err + } + + return c, parts[1:], nil +} diff --git a/vendor/github.com/ipfs/go-path/resolver/resolver.go b/vendor/github.com/ipfs/go-path/resolver/resolver.go new file mode 100644 index 00000000..67bb9f6f --- /dev/null +++ b/vendor/github.com/ipfs/go-path/resolver/resolver.go @@ -0,0 +1,209 @@ +// Package resolver implements utilities for resolving paths within ipfs. +package resolver + +import ( + "context" + "errors" + "fmt" + "time" + + path "github.com/ipfs/go-path" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" + logging "github.com/ipfs/go-log" + dag "github.com/ipfs/go-merkledag" +) + +var log = logging.Logger("pathresolv") + +// ErrNoComponents is used when Paths after a protocol +// do not contain at least one component +var ErrNoComponents = errors.New( + "path must contain at least one component") + +// ErrNoLink is returned when a link is not found in a path +type ErrNoLink struct { + Name string + Node cid.Cid +} + +// Error implements the Error interface for ErrNoLink with a useful +// human readable message. +func (e ErrNoLink) Error() string { + return fmt.Sprintf("no link named %q under %s", e.Name, e.Node.String()) +} + +// ResolveOnce resolves path through a single node +type ResolveOnce func(ctx context.Context, ds ipld.NodeGetter, nd ipld.Node, names []string) (*ipld.Link, []string, error) + +// Resolver provides path resolution to IPFS +// It has a pointer to a DAGService, which is uses to resolve nodes. +// TODO: now that this is more modular, try to unify this code with the +// the resolvers in namesys +type Resolver struct { + DAG ipld.NodeGetter + + ResolveOnce ResolveOnce +} + +// NewBasicResolver constructs a new basic resolver. +func NewBasicResolver(ds ipld.DAGService) *Resolver { + return &Resolver{ + DAG: ds, + ResolveOnce: ResolveSingle, + } +} + +// ResolveToLastNode walks the given path and returns the cid of the last node +// referenced by the path +func (r *Resolver) ResolveToLastNode(ctx context.Context, fpath path.Path) (cid.Cid, []string, error) { + c, p, err := path.SplitAbsPath(fpath) + if err != nil { + return cid.Cid{}, nil, err + } + + if len(p) == 0 { + return c, nil, nil + } + + nd, err := r.DAG.Get(ctx, c) + if err != nil { + return cid.Cid{}, nil, err + } + + for len(p) > 0 { + lnk, rest, err := r.ResolveOnce(ctx, r.DAG, nd, p) + + // Note: have to drop the error here as `ResolveOnce` doesn't handle 'leaf' + // paths (so e.g. for `echo '{"foo":123}' | ipfs dag put` we wouldn't be + // able to resolve `zdpu[...]/foo`) + if lnk == nil { + break + } + + if err != nil { + if err == dag.ErrLinkNotFound { + err = ErrNoLink{Name: p[0], Node: nd.Cid()} + } + return cid.Cid{}, nil, err + } + + next, err := lnk.GetNode(ctx, r.DAG) + if err != nil { + return cid.Cid{}, nil, err + } + nd = next + p = rest + } + + if len(p) == 0 { + return nd.Cid(), nil, nil + } + + // Confirm the path exists within the object + val, rest, err := nd.Resolve(p) + if err != nil { + if err == dag.ErrLinkNotFound { + err = ErrNoLink{Name: p[0], Node: nd.Cid()} + } + return cid.Cid{}, nil, err + } + + if len(rest) > 0 { + return cid.Cid{}, nil, errors.New("path failed to resolve fully") + } + switch val.(type) { + case *ipld.Link: + return cid.Cid{}, nil, errors.New("inconsistent ResolveOnce / nd.Resolve") + default: + return nd.Cid(), p, nil + } +} + +// ResolvePath fetches the node for given path. It returns the last item +// returned by ResolvePathComponents. +func (r *Resolver) ResolvePath(ctx context.Context, fpath path.Path) (ipld.Node, error) { + // validate path + if err := fpath.IsValid(); err != nil { + return nil, err + } + + nodes, err := r.ResolvePathComponents(ctx, fpath) + if err != nil || nodes == nil { + return nil, err + } + return nodes[len(nodes)-1], err +} + +// ResolveSingle simply resolves one hop of a path through a graph with no +// extra context (does not opaquely resolve through sharded nodes) +func ResolveSingle(ctx context.Context, ds ipld.NodeGetter, nd ipld.Node, names []string) (*ipld.Link, []string, error) { + return nd.ResolveLink(names) +} + +// ResolvePathComponents fetches the nodes for each segment of the given path. +// It uses the first path component as a hash (key) of the first node, then +// resolves all other components walking the links, with ResolveLinks. +func (r *Resolver) ResolvePathComponents(ctx context.Context, fpath path.Path) ([]ipld.Node, error) { + evt := log.EventBegin(ctx, "resolvePathComponents", logging.LoggableMap{"fpath": fpath}) + defer evt.Done() + + h, parts, err := path.SplitAbsPath(fpath) + if err != nil { + evt.Append(logging.LoggableMap{"error": err.Error()}) + return nil, err + } + + log.Debug("resolve dag get") + nd, err := r.DAG.Get(ctx, h) + if err != nil { + evt.Append(logging.LoggableMap{"error": err.Error()}) + return nil, err + } + + return r.ResolveLinks(ctx, nd, parts) +} + +// ResolveLinks iteratively resolves names by walking the link hierarchy. +// Every node is fetched from the DAGService, resolving the next name. +// Returns the list of nodes forming the path, starting with ndd. This list is +// guaranteed never to be empty. +// +// ResolveLinks(nd, []string{"foo", "bar", "baz"}) +// would retrieve "baz" in ("bar" in ("foo" in nd.Links).Links).Links +func (r *Resolver) ResolveLinks(ctx context.Context, ndd ipld.Node, names []string) ([]ipld.Node, error) { + + evt := log.EventBegin(ctx, "resolveLinks", logging.LoggableMap{"names": names}) + defer evt.Done() + result := make([]ipld.Node, 0, len(names)+1) + result = append(result, ndd) + nd := ndd // dup arg workaround + + // for each of the path components + for len(names) > 0 { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, time.Minute) + defer cancel() + + lnk, rest, err := r.ResolveOnce(ctx, r.DAG, nd, names) + if err == dag.ErrLinkNotFound { + evt.Append(logging.LoggableMap{"error": err.Error()}) + return result, ErrNoLink{Name: names[0], Node: nd.Cid()} + } else if err != nil { + evt.Append(logging.LoggableMap{"error": err.Error()}) + return result, err + } + + nextnode, err := lnk.GetNode(ctx, r.DAG) + if err != nil { + evt.Append(logging.LoggableMap{"error": err.Error()}) + return result, err + } + + nd = nextnode + result = append(result, nextnode) + names = rest + } + return result, nil +} diff --git a/vendor/github.com/ipfs/go-todocounter/.travis.yml b/vendor/github.com/ipfs/go-todocounter/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-todocounter/LICENSE b/vendor/github.com/ipfs/go-todocounter/LICENSE new file mode 100644 index 00000000..808d2e01 --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 libp2p + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-todocounter/Makefile b/vendor/github.com/ipfs/go-todocounter/Makefile new file mode 100644 index 00000000..45d0c77e --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/Makefile @@ -0,0 +1,10 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + go get ./... \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-todocounter/README.md b/vendor/github.com/ipfs/go-todocounter/README.md new file mode 100644 index 00000000..7e8e4215 --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/README.md @@ -0,0 +1,26 @@ +# go-todocounter + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> A threadsafe counter + +## Documenation + +See https://godoc.org/github.com/ipfs/go-todocounter. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-todocounter/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT \ No newline at end of file diff --git a/vendor/github.com/ipfs/go-todocounter/counter.go b/vendor/github.com/ipfs/go-todocounter/counter.go new file mode 100644 index 00000000..0df63820 --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/counter.go @@ -0,0 +1,118 @@ +package todocounter + +import ( + "sync" +) + +// Counter records things remaining to process. It is needed for complicated +// cases where multiple goroutines are spawned to process items, and they may +// generate more items to process. For example, say a query over a set of nodes +// may yield either a result value, or more nodes to query. Signaling is subtly +// complicated, because the queue may be empty while items are being processed, +// that will end up adding more items to the queue. +// +// Use Counter like this: +// +// todos := make(chan int, 10) +// ctr := todoctr.NewCounter() +// +// process := func(item int) { +// fmt.Println("processing %d\n...", item) +// +// // this task may randomly generate more tasks +// if rand.Intn(5) == 0 { +// todos<- item + 1 +// ctr.Increment(1) // increment counter for new task. +// } +// +// ctr.Decrement(1) // decrement one to signal the task being done. +// } +// +// // add some tasks. +// todos<- 1 +// todos<- 2 +// todos<- 3 +// todos<- 4 +// ctr.Increment(4) +// +// for { +// select { +// case item := <- todos: +// go process(item) +// case <-ctr.Done(): +// fmt.Println("done processing everything.") +// close(todos) +// } +// } +type Counter interface { + // Incrememnt adds a number of todos to track. + // If the counter is **below** zero, it panics. + Increment(i uint32) + + // Decrement removes a number of todos to track. + // If the count drops to zero, signals done and destroys the counter. + // If the count drops **below** zero, panics. It means you have tried to remove + // more things than you added, i.e. sync issues. + Decrement(i uint32) + + // Done returns a channel to wait upon. Use it in selects: + // + // select { + // case <-ctr.Done(): + // // done processing all items + // } + // + Done() <-chan struct{} +} + +type todoCounter struct { + count int32 + done chan struct{} + sync.RWMutex +} + +// NewSyncCounter constructs a new counter +func NewSyncCounter() Counter { + return &todoCounter{ + done: make(chan struct{}), + } +} + +func (c *todoCounter) Increment(i uint32) { + c.Lock() + defer c.Unlock() + + if c.count < 0 { + panic("counter already signaled done. use a new counter.") + } + + // increment count + c.count += int32(i) +} + +// Decrement removes a number of todos to track. +// If the count drops to zero, signals done and destroys the counter. +// If the count drops **below** zero, panics. It means you have tried to remove +// more things than you added, i.e. sync issues. +func (c *todoCounter) Decrement(i uint32) { + c.Lock() + defer c.Unlock() + + if c.count < 0 { + panic("counter already signaled done. probably have sync issues.") + } + + if int32(i) > c.count { + panic("decrement amount creater than counter. sync issues.") + } + + c.count -= int32(i) + if c.count == 0 { // done! signal it. + c.count-- // set it to -1 to prevent reuse + close(c.done) // a closed channel will always return nil + } +} + +func (c *todoCounter) Done() <-chan struct{} { + return c.done +} diff --git a/vendor/github.com/ipfs/go-todocounter/go.mod b/vendor/github.com/ipfs/go-todocounter/go.mod new file mode 100644 index 00000000..d631776e --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/go.mod @@ -0,0 +1 @@ +module github.com/ipfs/go-todocounter diff --git a/vendor/github.com/ipfs/go-todocounter/package.json b/vendor/github.com/ipfs/go-todocounter/package.json new file mode 100644 index 00000000..3141ae04 --- /dev/null +++ b/vendor/github.com/ipfs/go-todocounter/package.json @@ -0,0 +1,14 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/ipfs/go-todocounter/issues" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-todocounter" + }, + "gxVersion": "0.8.0", + "language": "go", + "license": "MIT", + "name": "go-todocounter", + "version": "1.0.1" +} diff --git a/vendor/github.com/ipfs/go-unixfs/.travis.yml b/vendor/github.com/ipfs/go-unixfs/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-unixfs/CODEOWNERS b/vendor/github.com/ipfs/go-unixfs/CODEOWNERS new file mode 100644 index 00000000..ea812704 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/CODEOWNERS @@ -0,0 +1,8 @@ +# Please see https://help.github.com/articles/about-codeowners/ for more information + +# Global owner +* @schomatis + +# Subsystem specific owners + + diff --git a/vendor/github.com/ipfs/go-unixfs/LICENSE b/vendor/github.com/ipfs/go-unixfs/LICENSE new file mode 100644 index 00000000..7d5dcac4 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/go-unixfs/Makefile b/vendor/github.com/ipfs/go-unixfs/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/ipfs/go-unixfs/README.md b/vendor/github.com/ipfs/go-unixfs/README.md new file mode 100644 index 00000000..9a22fbd3 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/README.md @@ -0,0 +1,63 @@ +go-unixfs +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://codecov.io/gh/ipfs/go-unixfs/branch/master/graph/badge.svg)](https://codecov.io/gh/ipfs/go-unixfs/branch/master) +[![Travis CI](https://travis-ci.org/ipfs/go-unixfs.svg?branch=master)](https://travis-ci.org/ipfs/go-unixfs) + +> go-unixfs implements unix-like filesystem utilities on top of an ipld merkledag + + +## Table of Contents + +- [Directory](#directory) +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Package Directory +This package contains many subpackages, each of which can be very large on its own. + +### Top Level +The top level unixfs package defines the unixfs format datastructures, and some helper methods around it. + +### importers +The `importer` subpackage is what you'll use when you want to turn a normal file into a unixfs file. + +### io +The `io` subpackage provides helpers for reading files and manipulating directories. The `DagReader` takes a +reference to a unixfs file and returns a file handle that can be read from and seeked through. The `Directory` +interface allows you to easily read items in a directory, add items to a directory, and do lookups. + +### mod +The `mod` subpackage implements a `DagModifier` type that can be used to write to an existing unixfs file, or +create a new one. The logic for this is significantly more complicated than for the dagreader, so its a separate +type. (TODO: maybe it still belongs in the `io` subpackage though?) + +### hamt +The `hamt` subpackage implements a CHAMP hamt that is used in unixfs directory sharding. + +### archive +The `archive` subpackage implements a `tar` importer and exporter. The objects created here are not officially unixfs, +but in the future, this may be integrated more directly. + +### test +The `test` subpackage provides several utilities to make testing unixfs related things easier. + +## Install + +```sh +go get github.com/ipfs/go-unixfs +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Juan Batiz-Benet diff --git a/vendor/github.com/ipfs/go-unixfs/go.mod b/vendor/github.com/ipfs/go-unixfs/go.mod new file mode 100644 index 00000000..425230fc --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/go.mod @@ -0,0 +1,15 @@ +module github.com/ipfs/go-unixfs + +require ( + github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-ipfs-chunker v0.0.1 + github.com/ipfs/go-ipfs-files v0.0.2 + github.com/ipfs/go-ipfs-posinfo v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/ipfs/go-merkledag v0.0.3 + github.com/multiformats/go-multihash v0.0.1 + github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 +) diff --git a/vendor/github.com/ipfs/go-unixfs/go.sum b/vendor/github.com/ipfs/go-unixfs/go.sum new file mode 100644 index 00000000..02b7c007 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/go.sum @@ -0,0 +1,314 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e h1:2Z+EBRrOJsA3psnUPcEWMIH2EIga1xHflQcr/EZslx8= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e/go.mod h1:3oM7gXIttpYDAJXpVNnSCiUMYBLIZ6cb1t+Ip982MRo= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-bitswap v0.0.1 h1:Xx1ma7TWy9ISOx5zFq5YVQyrTHzUP4GkRPMsZokHxAg= +github.com/ipfs/go-bitswap v0.0.1/go.mod h1:z+tP3h+HTJ810n1R5yMy2ccKFffJ2F6Vqm/5Bf7vs2c= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-blockservice v0.0.1 h1:l6g1hwYDV6vb4bAvTqia6Cvo+zLMOPKel/n0zUX48bc= +github.com/ipfs/go-blockservice v0.0.1/go.mod h1:2Ao89U7jV1KIqqNk5EdhSTBG/Pgc1vMFr0bhkx376j4= +github.com/ipfs/go-blockservice v0.0.3 h1:40OvwrxeudTAlUGUAKNYnNPcwQeLtXedjzTWecnUinQ= +github.com/ipfs/go-blockservice v0.0.3/go.mod h1:/NNihwTi6V2Yr6g8wBI+BSwPuURpBRMtYNGrlxZ8KuI= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-chunker v0.0.1 h1:cHUUxKFQ99pozdahi+uSC/3Y6HeRpi9oTeUHbE27SEw= +github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-files v0.0.1 h1:OroTsI58plHGX70HPLKy6LQhPR3HZJ5ip61fYlo6POM= +github.com/ipfs/go-ipfs-files v0.0.1/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-files v0.0.2 h1:fEEjF4H+1t8SFOHqUGp0KqcwgIRlbD2bu8CAS2sIggE= +github.com/ipfs/go-ipfs-files v0.0.2/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs= +github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-cbor v0.0.1 h1:g7yh27SznWP4CUbkFgjR+WQRjEeyxCpTR4iKVmXx1wA= +github.com/ipfs/go-ipld-cbor v0.0.1/go.mod h1:RXHr8s4k0NE0TKhnrxqZC9M888QfsBN9rhS5NjfKzY8= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-merkledag v0.0.1 h1:HqvQsqqLvNOgItOy80Sd4T4rHvq6cXtAtrbEoWAON+I= +github.com/ipfs/go-merkledag v0.0.1/go.mod h1:CRdtHMROECqaehAGeJ0Wd9TtlmWv/ta5cUnvbTnniEI= +github.com/ipfs/go-merkledag v0.0.3 h1:A5DlOMzqTRDVmdgkf3dzCKCFmVWH4Zqwb0cbYXUs+Ro= +github.com/ipfs/go-merkledag v0.0.3/go.mod h1:Oc5kIXLHokkE1hWGMBHw+oxehkAaTOqtEb7Zbh6BhLA= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.1 h1:oEjzhRzymY7NILTMzOKNVOpNZGpcQHrHriWw91pbJNM= +github.com/libp2p/go-libp2p v0.0.1/go.mod h1:bmRs8I0vwn6iRaVssZnJx/epY6WPSKiLoK1vyle4EX0= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.1/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.1 h1:on/zju7XE+JXc8gH+vTKmIh2UJFC1K8kGnJYluQrlz4= +github.com/libp2p/go-libp2p-nat v0.0.1/go.mod h1:4L6ajyUIlJvx1Cbh5pc6Ma6vMDpKXf3GgLO5u7W0oQ4= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 h1:xQJI9OEiErEQ++DoXOHqEpzsGMrAv2Q2jyCpi7DmfpQ= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/go-unixfs/hamt/hamt.go b/vendor/github.com/ipfs/go-unixfs/hamt/hamt.go new file mode 100644 index 00000000..7947a2aa --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/hamt/hamt.go @@ -0,0 +1,677 @@ +// Package hamt implements a Hash Array Mapped Trie over ipfs merkledag nodes. +// It is implemented mostly as described in the wikipedia article on HAMTs, +// however the table size is variable (usually 256 in our usages) as opposed to +// 32 as suggested in the article. The hash function used is currently +// Murmur3, but this value is configurable (the datastructure reports which +// hash function its using). +// +// The one algorithmic change we implement that is not mentioned in the +// wikipedia article is the collapsing of empty shards. +// Given the following tree: ( '[' = shards, '{' = values ) +// [ 'A' ] -> [ 'B' ] -> { "ABC" } +// | L-> { "ABD" } +// L-> { "ASDF" } +// If we simply removed "ABC", we would end up with a tree where shard 'B' only +// has a single child. This causes two issues, the first, is that now we have +// an extra lookup required to get to "ABD". The second issue is that now we +// have a tree that contains only "ABD", but is not the same tree that we would +// get by simply inserting "ABD" into a new tree. To address this, we always +// check for empty shard nodes upon deletion and prune them to maintain a +// consistent tree, independent of insertion order. +package hamt + +import ( + "context" + "fmt" + "os" + + bitfield "github.com/Stebalien/go-bitfield" + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" + dag "github.com/ipfs/go-merkledag" + format "github.com/ipfs/go-unixfs" +) + +const ( + // HashMurmur3 is the multiformats identifier for Murmur3 + HashMurmur3 uint64 = 0x22 +) + +func (ds *Shard) isValueNode() bool { + return ds.key != "" && ds.val != nil +} + +// A Shard represents the HAMT. It should be initialized with NewShard(). +type Shard struct { + cid cid.Cid + + childer *childer + + tableSize int + tableSizeLg2 int + + builder cid.Builder + hashFunc uint64 + + prefixPadStr string + maxpadlen int + + dserv ipld.DAGService + + // leaf node + key string + val *ipld.Link +} + +// NewShard creates a new, empty HAMT shard with the given size. +func NewShard(dserv ipld.DAGService, size int) (*Shard, error) { + ds, err := makeShard(dserv, size) + if err != nil { + return nil, err + } + + ds.hashFunc = HashMurmur3 + return ds, nil +} + +func makeShard(ds ipld.DAGService, size int) (*Shard, error) { + lg2s, err := logtwo(size) + if err != nil { + return nil, err + } + maxpadding := fmt.Sprintf("%X", size-1) + s := &Shard{ + tableSizeLg2: lg2s, + prefixPadStr: fmt.Sprintf("%%0%dX", len(maxpadding)), + maxpadlen: len(maxpadding), + childer: newChilder(ds, size), + tableSize: size, + dserv: ds, + } + + s.childer.sd = s + + return s, nil +} + +// NewHamtFromDag creates new a HAMT shard from the given DAG. +func NewHamtFromDag(dserv ipld.DAGService, nd ipld.Node) (*Shard, error) { + pbnd, ok := nd.(*dag.ProtoNode) + if !ok { + return nil, dag.ErrNotProtobuf + } + + fsn, err := format.FSNodeFromBytes(pbnd.Data()) + if err != nil { + return nil, err + } + + if fsn.Type() != format.THAMTShard { + return nil, fmt.Errorf("node was not a dir shard") + } + + if fsn.HashType() != HashMurmur3 { + return nil, fmt.Errorf("only murmur3 supported as hash function") + } + + size := int(fsn.Fanout()) + + ds, err := makeShard(dserv, size) + if err != nil { + return nil, err + } + + ds.childer.makeChilder(fsn.Data(), pbnd.Links()) + + ds.cid = pbnd.Cid() + ds.hashFunc = fsn.HashType() + ds.builder = pbnd.CidBuilder() + + return ds, nil +} + +// SetCidBuilder sets the CID Builder +func (ds *Shard) SetCidBuilder(builder cid.Builder) { + ds.builder = builder +} + +// CidBuilder gets the CID Builder, may be nil if unset +func (ds *Shard) CidBuilder() cid.Builder { + return ds.builder +} + +// Node serializes the HAMT structure into a merkledag node with unixfs formatting +func (ds *Shard) Node() (ipld.Node, error) { + out := new(dag.ProtoNode) + out.SetCidBuilder(ds.builder) + + sliceIndex := 0 + // TODO: optimized 'for each set bit' + for childIndex := 0; childIndex < ds.tableSize; childIndex++ { + if !ds.childer.has(childIndex) { + continue + } + + ch := ds.childer.child(sliceIndex) + if ch != nil { + clnk, err := ch.Link() + if err != nil { + return nil, err + } + + err = out.AddRawLink(ds.linkNamePrefix(childIndex)+ch.key, clnk) + if err != nil { + return nil, err + } + } else { + // child unloaded, just copy in link with updated name + lnk := ds.childer.link(sliceIndex) + label := lnk.Name[ds.maxpadlen:] + + err := out.AddRawLink(ds.linkNamePrefix(childIndex)+label, lnk) + if err != nil { + return nil, err + } + } + sliceIndex++ + } + + data, err := format.HAMTShardData(ds.childer.bitfield.Bytes(), uint64(ds.tableSize), HashMurmur3) + if err != nil { + return nil, err + } + + out.SetData(data) + + err = ds.dserv.Add(context.TODO(), out) + if err != nil { + return nil, err + } + + return out, nil +} + +func (ds *Shard) makeShardValue(lnk *ipld.Link) (*Shard, error) { + lnk2 := *lnk + s, err := makeShard(ds.dserv, ds.tableSize) + if err != nil { + return nil, err + } + + s.key = lnk.Name[ds.maxpadlen:] + s.val = &lnk2 + + return s, nil +} + +// Set sets 'name' = nd in the HAMT +func (ds *Shard) Set(ctx context.Context, name string, nd ipld.Node) error { + hv := &hashBits{b: hash([]byte(name))} + err := ds.dserv.Add(ctx, nd) + if err != nil { + return err + } + + lnk, err := ipld.MakeLink(nd) + if err != nil { + return err + } + lnk.Name = ds.linkNamePrefix(0) + name + + return ds.modifyValue(ctx, hv, name, lnk) +} + +// Remove deletes the named entry if it exists, this operation is idempotent. +func (ds *Shard) Remove(ctx context.Context, name string) error { + hv := &hashBits{b: hash([]byte(name))} + return ds.modifyValue(ctx, hv, name, nil) +} + +// Find searches for a child node by 'name' within this hamt +func (ds *Shard) Find(ctx context.Context, name string) (*ipld.Link, error) { + hv := &hashBits{b: hash([]byte(name))} + + var out *ipld.Link + err := ds.getValue(ctx, hv, name, func(sv *Shard) error { + out = sv.val + return nil + }) + if err != nil { + return nil, err + } + + return out, nil +} + +type linkType int + +const ( + invalidLink linkType = iota + shardLink + shardValueLink +) + +func (ds *Shard) childLinkType(lnk *ipld.Link) (linkType, error) { + if len(lnk.Name) < ds.maxpadlen { + return invalidLink, fmt.Errorf("invalid link name '%s'", lnk.Name) + } + if len(lnk.Name) == ds.maxpadlen { + return shardLink, nil + } + return shardValueLink, nil +} + +// Link returns a merklelink to this shard node +func (ds *Shard) Link() (*ipld.Link, error) { + if ds.isValueNode() { + return ds.val, nil + } + + nd, err := ds.Node() + if err != nil { + return nil, err + } + + err = ds.dserv.Add(context.TODO(), nd) + if err != nil { + return nil, err + } + + return ipld.MakeLink(nd) +} + +func (ds *Shard) getValue(ctx context.Context, hv *hashBits, key string, cb func(*Shard) error) error { + childIndex, err := hv.Next(ds.tableSizeLg2) + if err != nil { + return err + } + + if ds.childer.has(childIndex) { + child, err := ds.childer.get(ctx, ds.childer.sliceIndex(childIndex)) + if err != nil { + return err + } + + if child.isValueNode() { + if child.key == key { + return cb(child) + } + } else { + return child.getValue(ctx, hv, key, cb) + } + } + + return os.ErrNotExist +} + +// EnumLinks collects all links in the Shard. +func (ds *Shard) EnumLinks(ctx context.Context) ([]*ipld.Link, error) { + var links []*ipld.Link + + linkResults := ds.EnumLinksAsync(ctx) + + for linkResult := range linkResults { + if linkResult.Err != nil { + return links, linkResult.Err + } + links = append(links, linkResult.Link) + } + return links, nil +} + +// ForEachLink walks the Shard and calls the given function. +func (ds *Shard) ForEachLink(ctx context.Context, f func(*ipld.Link) error) error { + return ds.walkTrie(ctx, func(sv *Shard) error { + lnk := sv.val + lnk.Name = sv.key + + return f(lnk) + }) +} + +// EnumLinksAsync returns a channel which will receive Links in the directory +// as they are enumerated, where order is not gauranteed +func (ds *Shard) EnumLinksAsync(ctx context.Context) <-chan format.LinkResult { + linkResults := make(chan format.LinkResult) + ctx, cancel := context.WithCancel(ctx) + go func() { + defer close(linkResults) + defer cancel() + getLinks := makeAsyncTrieGetLinks(ds.dserv, linkResults) + cset := cid.NewSet() + err := dag.EnumerateChildrenAsync(ctx, getLinks, ds.cid, cset.Visit) + if err != nil { + emitResult(ctx, linkResults, format.LinkResult{Link: nil, Err: err}) + } + }() + return linkResults +} + +// makeAsyncTrieGetLinks builds a getLinks function that can be used with EnumerateChildrenAsync +// to iterate a HAMT shard. It takes an IPLD Dag Service to fetch nodes, and a call back that will get called +// on all links to leaf nodes in a HAMT tree, so they can be collected for an EnumLinks operation +func makeAsyncTrieGetLinks(dagService ipld.DAGService, linkResults chan<- format.LinkResult) dag.GetLinks { + + return func(ctx context.Context, currentCid cid.Cid) ([]*ipld.Link, error) { + node, err := dagService.Get(ctx, currentCid) + if err != nil { + return nil, err + } + directoryShard, err := NewHamtFromDag(dagService, node) + if err != nil { + return nil, err + } + + childShards := make([]*ipld.Link, 0, directoryShard.childer.length()) + links := directoryShard.childer.links + for idx := range directoryShard.childer.children { + lnk := links[idx] + lnkLinkType, err := directoryShard.childLinkType(lnk) + + if err != nil { + return nil, err + } + if lnkLinkType == shardLink { + childShards = append(childShards, lnk) + } else { + sv, err := directoryShard.makeShardValue(lnk) + if err != nil { + return nil, err + } + formattedLink := sv.val + formattedLink.Name = sv.key + emitResult(ctx, linkResults, format.LinkResult{Link: formattedLink, Err: nil}) + } + } + return childShards, nil + } +} + +func emitResult(ctx context.Context, linkResults chan<- format.LinkResult, r format.LinkResult) { + // make sure that context cancel is processed first + // the reason is due to the concurrency of EnumerateChildrenAsync + // it's possible for EnumLinksAsync to complete and close the linkResults + // channel before this code runs + select { + case <-ctx.Done(): + return + default: + } + select { + case linkResults <- r: + case <-ctx.Done(): + } +} + +func (ds *Shard) walkTrie(ctx context.Context, cb func(*Shard) error) error { + return ds.childer.each(ctx, func(s *Shard) error { + if s.isValueNode() { + if err := cb(s); err != nil { + return err + } + } else { + if err := s.walkTrie(ctx, cb); err != nil { + return err + } + } + return nil + }) +} + +func (ds *Shard) modifyValue(ctx context.Context, hv *hashBits, key string, val *ipld.Link) error { + idx, err := hv.Next(ds.tableSizeLg2) + if err != nil { + return err + } + + if !ds.childer.has(idx) { + return ds.childer.insert(key, val, idx) + } + + i := ds.childer.sliceIndex(idx) + + child, err := ds.childer.get(ctx, i) + if err != nil { + return err + } + + if child.isValueNode() { + if child.key == key { + // value modification + if val == nil { + return ds.childer.rm(idx) + } + + child.val = val + return nil + } + + if val == nil { + return os.ErrNotExist + } + + // replace value with another shard, one level deeper + ns, err := NewShard(ds.dserv, ds.tableSize) + if err != nil { + return err + } + ns.builder = ds.builder + chhv := &hashBits{ + b: hash([]byte(child.key)), + consumed: hv.consumed, + } + + err = ns.modifyValue(ctx, hv, key, val) + if err != nil { + return err + } + + err = ns.modifyValue(ctx, chhv, child.key, child.val) + if err != nil { + return err + } + + ds.childer.set(ns, i) + return nil + } else { + err := child.modifyValue(ctx, hv, key, val) + if err != nil { + return err + } + + if val == nil { + switch child.childer.length() { + case 0: + // empty sub-shard, prune it + // Note: this shouldnt normally ever happen + // in the event of another implementation creates flawed + // structures, this will help to normalize them. + return ds.childer.rm(idx) + case 1: + nchild := child.childer.children[0] + if nchild.isValueNode() { + // sub-shard with a single value element, collapse it + ds.childer.set(nchild, i) + } + return nil + } + } + + return nil + } +} + +// linkNamePrefix takes in the bitfield index of an entry and returns its hex prefix +func (ds *Shard) linkNamePrefix(idx int) string { + return fmt.Sprintf(ds.prefixPadStr, idx) +} + +// childer wraps the links, children and bitfield +// and provides basic operation (get, rm, insert and set) of manipulating children. +// The slices `links` and `children` are always coordinated to have the entries +// in the same index. A `childIndex` belonging to one of the original `Shard.size` +// entries corresponds to a `sliceIndex` in `links` and `children` (the conversion +// is done through `bitfield`). +type childer struct { + sd *Shard + dserv ipld.DAGService + bitfield bitfield.Bitfield + links []*ipld.Link + children []*Shard +} + +func newChilder(ds ipld.DAGService, size int) *childer { + return &childer{ + dserv: ds, + bitfield: bitfield.NewBitfield(size), + } +} + +func (s *childer) makeChilder(data []byte, links []*ipld.Link) *childer { + s.children = make([]*Shard, len(links)) + s.bitfield.SetBytes(data) + if len(links) > 0 { + s.links = make([]*ipld.Link, len(links)) + copy(s.links, links) + } + + return s +} + +// Return the `sliceIndex` associated with a child. +func (s *childer) sliceIndex(childIndex int) (sliceIndex int) { + return s.bitfield.OnesBefore(childIndex) +} + +func (s *childer) child(sliceIndex int) *Shard { + return s.children[sliceIndex] +} + +func (s *childer) link(sliceIndex int) *ipld.Link { + return s.links[sliceIndex] +} + +func (s *childer) insert(key string, lnk *ipld.Link, idx int) error { + if lnk == nil { + return os.ErrNotExist + } + + lnk.Name = s.sd.linkNamePrefix(idx) + key + i := s.sliceIndex(idx) + sd := &Shard{key: key, val: lnk} + + s.children = append(s.children[:i], append([]*Shard{sd}, s.children[i:]...)...) + s.links = append(s.links[:i], append([]*ipld.Link{nil}, s.links[i:]...)...) + // Add a `nil` placeholder in `links` so the rest of the entries keep the same + // index as `children`. + s.bitfield.SetBit(idx) + + return nil +} + +func (s *childer) set(sd *Shard, i int) { + s.children[i] = sd +} + +func (s *childer) rm(childIndex int) error { + i := s.sliceIndex(childIndex) + + if err := s.check(i); err != nil { + return err + } + + copy(s.children[i:], s.children[i+1:]) + s.children = s.children[:len(s.children)-1] + + copy(s.links[i:], s.links[i+1:]) + s.links = s.links[:len(s.links)-1] + + s.bitfield.UnsetBit(childIndex) + + return nil +} + +// get returns the i'th child of this shard. If it is cached in the +// children array, it will return it from there. Otherwise, it loads the child +// node from disk. +func (s *childer) get(ctx context.Context, sliceIndex int) (*Shard, error) { + if err := s.check(sliceIndex); err != nil { + return nil, err + } + + c := s.child(sliceIndex) + if c != nil { + return c, nil + } + + return s.loadChild(ctx, sliceIndex) +} + +// loadChild reads the i'th child node of this shard from disk and returns it +// as a 'child' interface +func (s *childer) loadChild(ctx context.Context, sliceIndex int) (*Shard, error) { + lnk := s.link(sliceIndex) + lnkLinkType, err := s.sd.childLinkType(lnk) + if err != nil { + return nil, err + } + + var c *Shard + if lnkLinkType == shardLink { + nd, err := lnk.GetNode(ctx, s.dserv) + if err != nil { + return nil, err + } + cds, err := NewHamtFromDag(s.dserv, nd) + if err != nil { + return nil, err + } + + c = cds + } else { + s, err := s.sd.makeShardValue(lnk) + if err != nil { + return nil, err + } + c = s + } + + s.set(c, sliceIndex) + + return c, nil +} + +func (s *childer) has(childIndex int) bool { + return s.bitfield.Bit(childIndex) +} + +func (s *childer) length() int { + return len(s.children) +} + +func (s *childer) each(ctx context.Context, cb func(*Shard) error) error { + for i := range s.children { + c, err := s.get(ctx, i) + if err != nil { + return err + } + + if err := cb(c); err != nil { + return err + } + } + + return nil +} + +func (s *childer) check(sliceIndex int) error { + if sliceIndex >= len(s.children) || sliceIndex < 0 { + return fmt.Errorf("invalid index passed to operate children (likely corrupt bitfield)") + } + + if len(s.children) != len(s.links) { + return fmt.Errorf("inconsistent lengths between children array and Links array") + } + + return nil +} diff --git a/vendor/github.com/ipfs/go-unixfs/hamt/util.go b/vendor/github.com/ipfs/go-unixfs/hamt/util.go new file mode 100644 index 00000000..7ae02dfb --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/hamt/util.go @@ -0,0 +1,68 @@ +package hamt + +import ( + "fmt" + + "github.com/spaolacci/murmur3" + "math/bits" +) + +// hashBits is a helper that allows the reading of the 'next n bits' as an integer. +type hashBits struct { + b []byte + consumed int +} + +func mkmask(n int) byte { + return (1 << uint(n)) - 1 +} + +// Next returns the next 'i' bits of the hashBits value as an integer, or an +// error if there aren't enough bits. +func (hb *hashBits) Next(i int) (int, error) { + if hb.consumed+i > len(hb.b)*8 { + return 0, fmt.Errorf("sharded directory too deep") + } + return hb.next(i), nil +} + +func (hb *hashBits) next(i int) int { + curbi := hb.consumed / 8 + leftb := 8 - (hb.consumed % 8) + + curb := hb.b[curbi] + if i == leftb { + out := int(mkmask(i) & curb) + hb.consumed += i + return out + } else if i < leftb { + a := curb & mkmask(leftb) // mask out the high bits we don't want + b := a & ^mkmask(leftb-i) // mask out the low bits we don't want + c := b >> uint(leftb-i) // shift whats left down + hb.consumed += i + return int(c) + } else { + out := int(mkmask(leftb) & curb) + out <<= uint(i - leftb) + hb.consumed += leftb + out += hb.next(i - leftb) + return out + } +} + +func logtwo(v int) (int, error) { + if v <= 0 { + return 0, fmt.Errorf("hamt size should be a power of two") + } + lg2 := bits.TrailingZeros(uint(v)) + if 1< BlockSizeLimit { + return nil, ErrSizeLimitExceeded + } + + if db.rawLeaves { + // Encapsulate the data in a raw node. + if db.cidBuilder == nil { + return dag.NewRawNode(data), nil + } + rawnode, err := dag.NewRawNodeWPrefix(data, db.cidBuilder) + if err != nil { + return nil, err + } + return rawnode, nil + } + + // Encapsulate the data in UnixFS node (instead of a raw node). + fsNodeOverDag := db.NewFSNodeOverDag(fsNodeType) + fsNodeOverDag.SetFileData(data) + node, err := fsNodeOverDag.Commit() + if err != nil { + return nil, err + } + // TODO: Encapsulate this sequence of calls into a function that + // just returns the final `ipld.Node` avoiding going through + // `FSNodeOverDag`. + + return node, nil +} + +// FillNodeLayer will add datanodes as children to the give node until +// it is full in this layer or no more data. +// NOTE: This function creates raw data nodes so it only works +// for the `trickle.Layout`. +func (db *DagBuilderHelper) FillNodeLayer(node *FSNodeOverDag) error { + + // while we have room AND we're not done + for node.NumChildren() < db.maxlinks && !db.Done() { + child, childFileSize, err := db.NewLeafDataNode(ft.TRaw) + if err != nil { + return err + } + + if err := node.AddChild(child, childFileSize, db); err != nil { + return err + } + } + node.Commit() + // TODO: Do we need to commit here? The caller who created the + // `FSNodeOverDag` should be in charge of that. + + return nil +} + +// NewLeafDataNode builds the `node` with the data obtained from the +// Splitter with the given constraints (BlockSizeLimit, RawLeaves) +// specified when creating the DagBuilderHelper. It returns +// `ipld.Node` with the `dataSize` (that will be used to keep track of +// the DAG file size). The size of the data is computed here because +// after that it will be hidden by `NewLeafNode` inside a generic +// `ipld.Node` representation. +func (db *DagBuilderHelper) NewLeafDataNode(fsNodeType pb.Data_DataType) (node ipld.Node, dataSize uint64, err error) { + fileData, err := db.Next() + if err != nil { + return nil, 0, err + } + dataSize = uint64(len(fileData)) + + // Create a new leaf node containing the file chunk data. + node, err = db.NewLeafNode(fileData, fsNodeType) + if err != nil { + return nil, 0, err + } + + // Convert this leaf to a `FilestoreNode` if needed. + node = db.ProcessFileStore(node, dataSize) + + return node, dataSize, nil +} + +// ProcessFileStore generates, if Filestore is being used, the +// `FilestoreNode` representation of the `ipld.Node` that +// contains the file data. If Filestore is not being used just +// return the same node to continue with its addition to the DAG. +// +// The `db.offset` is updated at this point (instead of when +// `NewLeafDataNode` is called, both work in tandem but the +// offset is more related to this function). +func (db *DagBuilderHelper) ProcessFileStore(node ipld.Node, dataSize uint64) ipld.Node { + // Check if Filestore is being used. + if db.fullPath != "" { + // Check if the node is actually a raw node (needed for + // Filestore support). + if _, ok := node.(*dag.RawNode); ok { + fn := &pi.FilestoreNode{ + Node: node, + PosInfo: &pi.PosInfo{ + Offset: db.offset, + FullPath: db.fullPath, + Stat: db.stat, + }, + } + + // Update `offset` with the size of the data generated by `db.Next`. + db.offset += dataSize + + return fn + } + } + + // Filestore is not used, return the same `node` argument. + return node +} + +// Add inserts the given node in the DAGService. +func (db *DagBuilderHelper) Add(node ipld.Node) error { + return db.dserv.Add(context.TODO(), node) +} + +// Maxlinks returns the configured maximum number for links +// for nodes built with this helper. +func (db *DagBuilderHelper) Maxlinks() int { + return db.maxlinks +} + +// FSNodeOverDag encapsulates an `unixfs.FSNode` that will be stored in a +// `dag.ProtoNode`. Instead of just having a single `ipld.Node` that +// would need to be constantly (un)packed to access and modify its +// internal `FSNode` in the process of creating a UnixFS DAG, this +// structure stores an `FSNode` cache to manipulate it (add child nodes) +// directly , and only when the node has reached its final (immutable) state +// (signaled by calling `Commit()`) is it committed to a single (indivisible) +// `ipld.Node`. +// +// It is used mainly for internal (non-leaf) nodes, and for some +// representations of data leaf nodes (that don't use raw nodes or +// Filestore). +// +// It aims to replace the `UnixfsNode` structure which encapsulated too +// many possible node state combinations. +// +// TODO: Revisit the name. +type FSNodeOverDag struct { + dag *dag.ProtoNode + file *ft.FSNode +} + +// NewFSNodeOverDag creates a new `dag.ProtoNode` and `ft.FSNode` +// decoupled from one onther (and will continue in that way until +// `Commit` is called), with `fsNodeType` specifying the type of +// the UnixFS layer node (either `File` or `Raw`). +func (db *DagBuilderHelper) NewFSNodeOverDag(fsNodeType pb.Data_DataType) *FSNodeOverDag { + node := new(FSNodeOverDag) + node.dag = new(dag.ProtoNode) + node.dag.SetCidBuilder(db.GetCidBuilder()) + + node.file = ft.NewFSNode(fsNodeType) + + return node +} + +// NewFSNFromDag reconstructs a FSNodeOverDag node from a given dag node +func (db *DagBuilderHelper) NewFSNFromDag(nd *dag.ProtoNode) (*FSNodeOverDag, error) { + return NewFSNFromDag(nd) +} + +// NewFSNFromDag reconstructs a FSNodeOverDag node from a given dag node +func NewFSNFromDag(nd *dag.ProtoNode) (*FSNodeOverDag, error) { + mb, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return nil, err + } + + return &FSNodeOverDag{ + dag: nd, + file: mb, + }, nil +} + +// AddChild adds a `child` `ipld.Node` to both node layers. The +// `dag.ProtoNode` creates a link to the child node while the +// `ft.FSNode` stores its file size (that is, not the size of the +// node but the size of the file data that it is storing at the +// UnixFS layer). The child is also stored in the `DAGService`. +func (n *FSNodeOverDag) AddChild(child ipld.Node, fileSize uint64, db *DagBuilderHelper) error { + err := n.dag.AddNodeLink("", child) + if err != nil { + return err + } + + n.file.AddBlockSize(fileSize) + + return db.Add(child) +} + +// RemoveChild deletes the child node at the given index. +func (n *FSNodeOverDag) RemoveChild(index int, dbh *DagBuilderHelper) { + n.file.RemoveBlockSize(index) + n.dag.SetLinks(append(n.dag.Links()[:index], n.dag.Links()[index+1:]...)) +} + +// Commit unifies (resolves) the cache nodes into a single `ipld.Node` +// that represents them: the `ft.FSNode` is encoded inside the +// `dag.ProtoNode`. +// +// TODO: Make it read-only after committing, allow to commit only once. +func (n *FSNodeOverDag) Commit() (ipld.Node, error) { + fileData, err := n.file.GetBytes() + if err != nil { + return nil, err + } + n.dag.SetData(fileData) + + return n.dag, nil +} + +// NumChildren returns the number of children of the `ft.FSNode`. +func (n *FSNodeOverDag) NumChildren() int { + return n.file.NumChildren() +} + +// FileSize returns the `Filesize` attribute from the underlying +// representation of the `ft.FSNode`. +func (n *FSNodeOverDag) FileSize() uint64 { + return n.file.FileSize() +} + +// SetFileData stores the `fileData` in the `ft.FSNode`. It +// should be used only when `FSNodeOverDag` represents a leaf +// node (internal nodes don't carry data, just file sizes). +func (n *FSNodeOverDag) SetFileData(fileData []byte) { + n.file.SetData(fileData) +} + +// GetDagNode fills out the proper formatting for the FSNodeOverDag node +// inside of a DAG node and returns the dag node. +// TODO: Check if we have committed (passed the UnixFS information +// to the DAG layer) before returning this. +func (n *FSNodeOverDag) GetDagNode() (ipld.Node, error) { + return n.dag, nil +} + +// GetChild gets the ith child of this node from the given DAGService. +func (n *FSNodeOverDag) GetChild(ctx context.Context, i int, ds ipld.DAGService) (*FSNodeOverDag, error) { + nd, err := n.dag.Links()[i].GetNode(ctx, ds) + if err != nil { + return nil, err + } + + pbn, ok := nd.(*dag.ProtoNode) + if !ok { + return nil, dag.ErrNotProtobuf + } + + return NewFSNFromDag(pbn) +} diff --git a/vendor/github.com/ipfs/go-unixfs/importer/helpers/helpers.go b/vendor/github.com/ipfs/go-unixfs/importer/helpers/helpers.go new file mode 100644 index 00000000..075b2d2d --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/importer/helpers/helpers.go @@ -0,0 +1,30 @@ +package helpers + +import ( + "fmt" +) + +// BlockSizeLimit specifies the maximum size an imported block can have. +var BlockSizeLimit = 1048576 // 1 MB + +// rough estimates on expected sizes +var roughLinkBlockSize = 1 << 13 // 8KB +var roughLinkSize = 34 + 8 + 5 // sha256 multihash + size + no name + protobuf framing + +// DefaultLinksPerBlock governs how the importer decides how many links there +// will be per block. This calculation is based on expected distributions of: +// * the expected distribution of block sizes +// * the expected distribution of link sizes +// * desired access speed +// For now, we use: +// +// var roughLinkBlockSize = 1 << 13 // 8KB +// var roughLinkSize = 34 + 8 + 5 // sha256 multihash + size + no name +// // + protobuf framing +// var DefaultLinksPerBlock = (roughLinkBlockSize / roughLinkSize) +// = ( 8192 / 47 ) +// = (approximately) 174 +var DefaultLinksPerBlock = roughLinkBlockSize / roughLinkSize + +// ErrSizeLimitExceeded signals that a block is larger than BlockSizeLimit. +var ErrSizeLimitExceeded = fmt.Errorf("object size limit exceeded") diff --git a/vendor/github.com/ipfs/go-unixfs/importer/trickle/trickledag.go b/vendor/github.com/ipfs/go-unixfs/importer/trickle/trickledag.go new file mode 100644 index 00000000..3a631adb --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/importer/trickle/trickledag.go @@ -0,0 +1,389 @@ +// Package trickle allows to build trickle DAGs. +// In this type of DAG, non-leave nodes are first filled +// with data leaves, and then incorporate "layers" of subtrees +// as additional links. +// +// Each layer is a trickle sub-tree and is limited by an increasing +// maximum depth. Thus, the nodes first layer +// can only hold leaves (depth 1) but subsequent layers can grow deeper. +// By default, this module places 4 nodes per layer (that is, 4 subtrees +// of the same maximum depth before increasing it). +// +// Trickle DAGs are very good for sequentially reading data, as the +// first data leaves are directly reachable from the root and those +// coming next are always nearby. They are +// suited for things like streaming applications. +package trickle + +import ( + "context" + "errors" + "fmt" + + ft "github.com/ipfs/go-unixfs" + h "github.com/ipfs/go-unixfs/importer/helpers" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" + dag "github.com/ipfs/go-merkledag" +) + +// depthRepeat specifies how many times to append a child tree of a +// given depth. Higher values increase the width of a given node, which +// improves seek speeds. +const depthRepeat = 4 + +// Layout builds a new DAG with the trickle format using the provided +// DagBuilderHelper. See the module's description for a more detailed +// explanation. +func Layout(db *h.DagBuilderHelper) (ipld.Node, error) { + newRoot := db.NewFSNodeOverDag(ft.TFile) + root, _, err := fillTrickleRec(db, newRoot, -1) + if err != nil { + return nil, err + } + + return root, db.Add(root) +} + +// fillTrickleRec creates a trickle (sub-)tree with an optional maximum specified depth +// in the case maxDepth is greater than zero, or with unlimited depth otherwise +// (where the DAG builder will signal the end of data to end the function). +func fillTrickleRec(db *h.DagBuilderHelper, node *h.FSNodeOverDag, maxDepth int) (filledNode ipld.Node, nodeFileSize uint64, err error) { + // Always do this, even in the base case + if err := db.FillNodeLayer(node); err != nil { + return nil, 0, err + } + + // For each depth in [1, `maxDepth`) (or without limit if `maxDepth` is -1, + // initial call from `Layout`) add `depthRepeat` sub-graphs of that depth. + for depth := 1; maxDepth == -1 || depth < maxDepth; depth++ { + if db.Done() { + break + // No more data, stop here, posterior append calls will figure out + // where we left off. + } + + for repeatIndex := 0; repeatIndex < depthRepeat && !db.Done(); repeatIndex++ { + + childNode, childFileSize, err := fillTrickleRec(db, db.NewFSNodeOverDag(ft.TFile), depth) + if err != nil { + return nil, 0, err + } + + if err := node.AddChild(childNode, childFileSize, db); err != nil { + return nil, 0, err + } + } + } + + // Get the final `dag.ProtoNode` with the `FSNode` data encoded inside. + filledNode, err = node.Commit() + if err != nil { + return nil, 0, err + } + + return filledNode, node.FileSize(), nil +} + +// Append appends the data in `db` to the dag, using the Trickledag format +func Append(ctx context.Context, basen ipld.Node, db *h.DagBuilderHelper) (out ipld.Node, errOut error) { + base, ok := basen.(*dag.ProtoNode) + if !ok { + return nil, dag.ErrNotProtobuf + } + + // Convert to unixfs node for working with easily + + fsn, err := h.NewFSNFromDag(base) + if err != nil { + return nil, err + } + + // Get depth of this 'tree' + depth, repeatNumber := trickleDepthInfo(fsn, db.Maxlinks()) + if depth == 0 { + // If direct blocks not filled... + if err := db.FillNodeLayer(fsn); err != nil { + return nil, err + } + + if db.Done() { + // TODO: If `FillNodeLayer` stop `Commit`ing this should be + // the place (besides the function end) to call it. + return fsn.GetDagNode() + } + + // If continuing, our depth has increased by one + depth++ + } + + // Last child in this node may not be a full tree, lets fill it up. + if err := appendFillLastChild(ctx, fsn, depth-1, repeatNumber, db); err != nil { + return nil, err + } + + // after appendFillLastChild, our depth is now increased by one + if !db.Done() { + depth++ + } + + // Now, continue filling out tree like normal + for i := depth; !db.Done(); i++ { + for j := 0; j < depthRepeat && !db.Done(); j++ { + nextChild := db.NewFSNodeOverDag(ft.TFile) + childNode, childFileSize, err := fillTrickleRec(db, nextChild, i) + if err != nil { + return nil, err + } + err = fsn.AddChild(childNode, childFileSize, db) + if err != nil { + return nil, err + } + } + } + _, err = fsn.Commit() + if err != nil { + return nil, err + } + return fsn.GetDagNode() +} + +func appendFillLastChild(ctx context.Context, fsn *h.FSNodeOverDag, depth int, repeatNumber int, db *h.DagBuilderHelper) error { + if fsn.NumChildren() <= db.Maxlinks() { + return nil + } + // TODO: Why do we need this check, didn't the caller already take + // care of this? + + // Recursive step, grab last child + last := fsn.NumChildren() - 1 + lastChild, err := fsn.GetChild(ctx, last, db.GetDagServ()) + if err != nil { + return err + } + + // Fill out last child (may not be full tree) + newChild, nchildSize, err := appendRec(ctx, lastChild, db, depth-1) + if err != nil { + return err + } + + // Update changed child in parent node + fsn.RemoveChild(last, db) + filledNode, err := newChild.Commit() + if err != nil { + return err + } + err = fsn.AddChild(filledNode, nchildSize, db) + if err != nil { + return err + } + + // Partially filled depth layer + if repeatNumber != 0 { + for ; repeatNumber < depthRepeat && !db.Done(); repeatNumber++ { + nextChild := db.NewFSNodeOverDag(ft.TFile) + childNode, childFileSize, err := fillTrickleRec(db, nextChild, depth) + if err != nil { + return err + } + + if err := fsn.AddChild(childNode, childFileSize, db); err != nil { + return err + } + } + } + + return nil +} + +// recursive call for Append +func appendRec(ctx context.Context, fsn *h.FSNodeOverDag, db *h.DagBuilderHelper, maxDepth int) (*h.FSNodeOverDag, uint64, error) { + if maxDepth == 0 || db.Done() { + return fsn, fsn.FileSize(), nil + } + + // Get depth of this 'tree' + depth, repeatNumber := trickleDepthInfo(fsn, db.Maxlinks()) + if depth == 0 { + // If direct blocks not filled... + if err := db.FillNodeLayer(fsn); err != nil { + return nil, 0, err + } + depth++ + } + // TODO: Same as `appendFillLastChild`, when is this case possible? + + // If at correct depth, no need to continue + if depth == maxDepth { + return fsn, fsn.FileSize(), nil + } + + if err := appendFillLastChild(ctx, fsn, depth, repeatNumber, db); err != nil { + return nil, 0, err + } + + // after appendFillLastChild, our depth is now increased by one + if !db.Done() { + depth++ + } + + // Now, continue filling out tree like normal + for i := depth; i < maxDepth && !db.Done(); i++ { + for j := 0; j < depthRepeat && !db.Done(); j++ { + nextChild := db.NewFSNodeOverDag(ft.TFile) + childNode, childFileSize, err := fillTrickleRec(db, nextChild, i) + if err != nil { + return nil, 0, err + } + + if err := fsn.AddChild(childNode, childFileSize, db); err != nil { + return nil, 0, err + } + } + } + + return fsn, fsn.FileSize(), nil +} + +// Deduce where we left off in `fillTrickleRec`, returns the `depth` +// with which new sub-graphs were being added and, within that depth, +// in which `repeatNumber` of the total `depthRepeat` we should add. +func trickleDepthInfo(node *h.FSNodeOverDag, maxlinks int) (depth int, repeatNumber int) { + n := node.NumChildren() + + if n < maxlinks { + // We didn't even added the initial `maxlinks` leaf nodes (`FillNodeLayer`). + return 0, 0 + } + + nonLeafChildren := n - maxlinks + // The number of non-leaf child nodes added in `fillTrickleRec` (after + // the `FillNodeLayer` call). + + depth = nonLeafChildren/depthRepeat + 1 + // "Deduplicate" the added `depthRepeat` sub-graphs at each depth + // (rounding it up since we may be on an unfinished depth with less + // than `depthRepeat` sub-graphs). + + repeatNumber = nonLeafChildren % depthRepeat + // What's left after taking full depths of `depthRepeat` sub-graphs + // is the current `repeatNumber` we're at (this fractional part is + // what we rounded up before). + + return +} + +// VerifyParams is used by VerifyTrickleDagStructure +type VerifyParams struct { + Getter ipld.NodeGetter + Direct int + LayerRepeat int + Prefix *cid.Prefix + RawLeaves bool +} + +// VerifyTrickleDagStructure checks that the given dag matches exactly the trickle dag datastructure +// layout +func VerifyTrickleDagStructure(nd ipld.Node, p VerifyParams) error { + return verifyTDagRec(nd, -1, p) +} + +// Recursive call for verifying the structure of a trickledag +func verifyTDagRec(n ipld.Node, depth int, p VerifyParams) error { + codec := cid.DagProtobuf + if depth == 0 { + if len(n.Links()) > 0 { + return errors.New("expected direct block") + } + // zero depth dag is raw data block + switch nd := n.(type) { + case *dag.ProtoNode: + fsn, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return err + } + + if fsn.Type() != ft.TRaw { + return errors.New("expected raw block") + } + + if p.RawLeaves { + return errors.New("expected raw leaf, got a protobuf node") + } + case *dag.RawNode: + if !p.RawLeaves { + return errors.New("expected protobuf node as leaf") + } + codec = cid.Raw + default: + return errors.New("expected ProtoNode or RawNode") + } + } + + // verify prefix + if p.Prefix != nil { + prefix := n.Cid().Prefix() + expect := *p.Prefix // make a copy + expect.Codec = uint64(codec) + if codec == cid.Raw && expect.Version == 0 { + expect.Version = 1 + } + if expect.MhLength == -1 { + expect.MhLength = prefix.MhLength + } + if prefix != expect { + return fmt.Errorf("unexpected cid prefix: expected: %v; got %v", expect, prefix) + } + } + + if depth == 0 { + return nil + } + + nd, ok := n.(*dag.ProtoNode) + if !ok { + return errors.New("expected ProtoNode") + } + + // Verify this is a branch node + fsn, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return err + } + + if fsn.Type() != ft.TFile { + return fmt.Errorf("expected file as branch node, got: %s", fsn.Type()) + } + + if len(fsn.Data()) > 0 { + return errors.New("branch node should not have data") + } + + for i := 0; i < len(nd.Links()); i++ { + child, err := nd.Links()[i].GetNode(context.TODO(), p.Getter) + if err != nil { + return err + } + + if i < p.Direct { + // Direct blocks + err := verifyTDagRec(child, 0, p) + if err != nil { + return err + } + } else { + // Recursive trickle dags + rdepth := ((i - p.Direct) / p.LayerRepeat) + 1 + if rdepth >= depth && depth > 0 { + return errors.New("child dag was too deep") + } + err := verifyTDagRec(child, rdepth, p) + if err != nil { + return err + } + } + } + return nil +} diff --git a/vendor/github.com/ipfs/go-unixfs/io/dagreader.go b/vendor/github.com/ipfs/go-unixfs/io/dagreader.go new file mode 100644 index 00000000..75fb5c71 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/io/dagreader.go @@ -0,0 +1,491 @@ +package io + +import ( + "bytes" + "context" + "errors" + "io" + + ipld "github.com/ipfs/go-ipld-format" + mdag "github.com/ipfs/go-merkledag" + unixfs "github.com/ipfs/go-unixfs" +) + +// Common errors +var ( + ErrIsDir = errors.New("this dag node is a directory") + ErrCantReadSymlinks = errors.New("cannot currently read symlinks") + ErrUnkownNodeType = errors.New("unknown node type") +) + +// TODO: Rename the `DagReader` interface, this doesn't read *any* DAG, just +// DAGs with UnixFS node (and it *belongs* to the `unixfs` package). Some +// alternatives: `FileReader`, `UnixFSFileReader`, `UnixFSReader`. + +// A DagReader provides read-only read and seek acess to a unixfs file. +// Different implementations of readers are used for the different +// types of unixfs/protobuf-encoded nodes. +type DagReader interface { + ReadSeekCloser + Size() uint64 + CtxReadFull(context.Context, []byte) (int, error) +} + +// A ReadSeekCloser implements interfaces to read, copy, seek and close. +type ReadSeekCloser interface { + io.Reader + io.Seeker + io.Closer + io.WriterTo +} + +// NewDagReader creates a new reader object that reads the data represented by +// the given node, using the passed in DAGService for data retrieval. +func NewDagReader(ctx context.Context, n ipld.Node, serv ipld.NodeGetter) (DagReader, error) { + var size uint64 + + switch n := n.(type) { + case *mdag.RawNode: + size = uint64(len(n.RawData())) + + case *mdag.ProtoNode: + fsNode, err := unixfs.FSNodeFromBytes(n.Data()) + if err != nil { + return nil, err + } + + switch fsNode.Type() { + case unixfs.TFile, unixfs.TRaw: + size = fsNode.FileSize() + + case unixfs.TDirectory, unixfs.THAMTShard: + // Dont allow reading directories + return nil, ErrIsDir + + case unixfs.TMetadata: + if len(n.Links()) == 0 { + return nil, errors.New("incorrectly formatted metadata object") + } + child, err := n.Links()[0].GetNode(ctx, serv) + if err != nil { + return nil, err + } + + childpb, ok := child.(*mdag.ProtoNode) + if !ok { + return nil, mdag.ErrNotProtobuf + } + return NewDagReader(ctx, childpb, serv) + case unixfs.TSymlink: + return nil, ErrCantReadSymlinks + default: + return nil, unixfs.ErrUnrecognizedType + } + default: + return nil, ErrUnkownNodeType + } + + ctxWithCancel, cancel := context.WithCancel(ctx) + + return &dagReader{ + ctx: ctxWithCancel, + cancel: cancel, + serv: serv, + size: size, + rootNode: n, + dagWalker: ipld.NewWalker(ctxWithCancel, ipld.NewNavigableIPLDNode(n, serv)), + }, nil +} + +// dagReader provides a way to easily read the data contained in a dag. +type dagReader struct { + + // Structure to perform the DAG iteration and search, the reader + // just needs to add logic to the `Visitor` callback passed to + // `Iterate` and `Seek`. + dagWalker *ipld.Walker + + // Buffer with the data extracted from the current node being visited. + // To avoid revisiting a node to complete a (potential) partial read + // (or read after seek) the node's data is fully extracted in a single + // `readNodeDataBuffer` operation. + currentNodeData *bytes.Reader + + // Implements the `Size()` API. + size uint64 + + // Current offset for the read head within the DAG file. + offset int64 + + // Root node of the DAG, stored to re-create the `dagWalker` (effectively + // re-setting the position of the reader, used during `Seek`). + rootNode ipld.Node + + // Context passed to the `dagWalker`, the `cancel` function is used to + // cancel read operations (cancelling requested child node promises, + // see `ipld.NavigableIPLDNode.FetchChild` for details). + ctx context.Context + cancel func() + + // Passed to the `dagWalker` that will use it to request nodes. + // TODO: Revisit name. + serv ipld.NodeGetter +} + +// Size returns the total size of the data from the DAG structured file. +func (dr *dagReader) Size() uint64 { + return dr.size +} + +// Read implements the `io.Reader` interface through the `CtxReadFull` +// method using the DAG reader's internal context. +func (dr *dagReader) Read(b []byte) (int, error) { + return dr.CtxReadFull(dr.ctx, b) +} + +// CtxReadFull reads data from the DAG structured file. It always +// attempts a full read of the DAG until the `out` buffer is full. +// It uses the `Walker` structure to iterate the file DAG and read +// every node's data into the `out` buffer. +func (dr *dagReader) CtxReadFull(ctx context.Context, out []byte) (n int, err error) { + // Set the `dagWalker`'s context to the `ctx` argument, it will be used + // to fetch the child node promises (see + // `ipld.NavigableIPLDNode.FetchChild` for details). + dr.dagWalker.SetContext(ctx) + + // If there was a partially read buffer from the last visited + // node read it before visiting a new one. + if dr.currentNodeData != nil { + // TODO: Move this check inside `readNodeDataBuffer`? + n = dr.readNodeDataBuffer(out) + + if n == len(out) { + return n, nil + // Output buffer full, no need to traverse the DAG. + } + } + + // Iterate the DAG calling the passed `Visitor` function on every node + // to read its data into the `out` buffer, stop if there is an error or + // if the entire DAG is traversed (`EndOfDag`). + err = dr.dagWalker.Iterate(func(visitedNode ipld.NavigableNode) error { + node := ipld.ExtractIPLDNode(visitedNode) + + // Skip internal nodes, they shouldn't have any file data + // (see the `balanced` package for more details). + if len(node.Links()) > 0 { + return nil + } + + err = dr.saveNodeData(node) + if err != nil { + return err + } + // Save the leaf node file data in a buffer in case it is only + // partially read now and future `CtxReadFull` calls reclaim the + // rest (as each node is visited only once during `Iterate`). + // + // TODO: We could check if the entire node's data can fit in the + // remaining `out` buffer free space to skip this intermediary step. + + n += dr.readNodeDataBuffer(out[n:]) + + if n == len(out) { + // Output buffer full, no need to keep traversing the DAG, + // signal the `Walker` to pause the iteration. + dr.dagWalker.Pause() + } + + return nil + }) + + if err == ipld.EndOfDag { + return n, io.EOF + // Reached the end of the (DAG) file, no more data to read. + } else if err != nil { + return n, err + // Pass along any other errors from the `Visitor`. + } + + return n, nil +} + +// Save the UnixFS `node`'s data into the internal `currentNodeData` buffer to +// later move it to the output buffer (`Read`) or seek into it (`Seek`). +func (dr *dagReader) saveNodeData(node ipld.Node) error { + extractedNodeData, err := unixfs.ReadUnixFSNodeData(node) + if err != nil { + return err + } + + dr.currentNodeData = bytes.NewReader(extractedNodeData) + return nil +} + +// Read the `currentNodeData` buffer into `out`. This function can't have +// any errors as it's always reading from a `bytes.Reader` and asking only +// the available data in it. +func (dr *dagReader) readNodeDataBuffer(out []byte) int { + + n, _ := dr.currentNodeData.Read(out) + // Ignore the error as the EOF may not be returned in the first + // `Read` call, explicitly ask for an empty buffer below to check + // if we've reached the end. + + if dr.currentNodeData.Len() == 0 { + dr.currentNodeData = nil + // Signal that the buffer was consumed (for later `Read` calls). + // This shouldn't return an EOF error as it's just the end of a + // single node's data, not the entire DAG. + } + + dr.offset += int64(n) + // TODO: Should `offset` be incremented here or in the calling function? + // (Doing it here saves LoC but may be confusing as it's more hidden). + + return n +} + +// Similar to `readNodeDataBuffer` but it writes the contents to +// an `io.Writer` argument. +// +// TODO: Check what part of the logic between the two functions +// can be extracted away. +func (dr *dagReader) writeNodeDataBuffer(w io.Writer) (int64, error) { + + n, err := dr.currentNodeData.WriteTo(w) + if err != nil { + return n, err + } + + if dr.currentNodeData.Len() == 0 { + dr.currentNodeData = nil + // Signal that the buffer was consumed (for later `Read` calls). + // This shouldn't return an EOF error as it's just the end of a + // single node's data, not the entire DAG. + } + + dr.offset += int64(n) + return n, nil +} + +// WriteTo writes to the given writer. +// This follows the `bytes.Reader.WriteTo` implementation +// where it starts from the internal index that may have +// been modified by other `Read` calls. +// +// TODO: This implementation is very similar to `CtxReadFull`, +// the common parts should be abstracted away. +func (dr *dagReader) WriteTo(w io.Writer) (n int64, err error) { + // Use the internal reader's context to fetch the child node promises + // (see `ipld.NavigableIPLDNode.FetchChild` for details). + dr.dagWalker.SetContext(dr.ctx) + + // If there was a partially read buffer from the last visited + // node read it before visiting a new one. + if dr.currentNodeData != nil { + n, err = dr.writeNodeDataBuffer(w) + if err != nil { + return n, err + } + } + + // Iterate the DAG calling the passed `Visitor` function on every node + // to read its data into the `out` buffer, stop if there is an error or + // if the entire DAG is traversed (`EndOfDag`). + err = dr.dagWalker.Iterate(func(visitedNode ipld.NavigableNode) error { + node := ipld.ExtractIPLDNode(visitedNode) + + // Skip internal nodes, they shouldn't have any file data + // (see the `balanced` package for more details). + if len(node.Links()) > 0 { + return nil + } + + err = dr.saveNodeData(node) + if err != nil { + return err + } + // Save the leaf node file data in a buffer in case it is only + // partially read now and future `CtxReadFull` calls reclaim the + // rest (as each node is visited only once during `Iterate`). + + written, err := dr.writeNodeDataBuffer(w) + n += written + if err != nil { + return err + } + + return nil + }) + + if err == ipld.EndOfDag { + return n, nil + } + + return n, err +} + +// Close the reader (cancelling fetch node operations requested with +// the internal context, that is, `Read` calls but not `CtxReadFull` +// with user-supplied contexts). +func (dr *dagReader) Close() error { + dr.cancel() + return nil +} + +// Seek implements `io.Seeker` seeking to a given offset in the DAG file, +// it matches the standard unix `seek`. It moves the position of the internal +// `dagWalker` and may also leave a `currentNodeData` buffer loaded in case +// the seek is performed to the middle of the data in a node. +// +// TODO: Support seeking from the current position (relative seek) +// through the `dagWalker` in `io.SeekCurrent`. +func (dr *dagReader) Seek(offset int64, whence int) (int64, error) { + switch whence { + case io.SeekStart: + if offset < 0 { + return -1, errors.New("invalid offset") + } + + if offset == dr.offset { + return offset, nil + // Already at the requested `offset`, nothing to do. + } + + left := offset + // Amount left to seek. + + // Seek from the beginning of the DAG. + dr.resetPosition() + + // Use the internal reader's context to fetch the child node promises + // (see `ipld.NavigableIPLDNode.FetchChild` for details). + dr.dagWalker.SetContext(dr.ctx) + // TODO: Performance: we could adjust here `preloadSize` of + // `ipld.NavigableIPLDNode` also, when seeking we only want + // to fetch one child at a time. + + // Seek the DAG by calling the provided `Visitor` function on every + // node the `dagWalker` descends to while searching which can be + // either an internal or leaf node. In the internal node case, check + // the child node sizes and set the corresponding child index to go + // down to next. In the leaf case (last visit of the search), if there + // is still an amount `left` to seek do it inside the node's data + // saved in the `currentNodeData` buffer, leaving it ready for a `Read` + // call. + err := dr.dagWalker.Seek(func(visitedNode ipld.NavigableNode) error { + node := ipld.ExtractIPLDNode(visitedNode) + + if len(node.Links()) > 0 { + // Internal node, should be a `mdag.ProtoNode` containing a + // `unixfs.FSNode` (see the `balanced` package for more details). + fsNode, err := unixfs.ExtractFSNode(node) + if err != nil { + return err + } + + // If there aren't enough size hints don't seek + // (see the `io.EOF` handling error comment below). + if fsNode.NumChildren() != len(node.Links()) { + return io.EOF + } + + // Internal nodes have no data, so just iterate through the + // sizes of its children (advancing the child index of the + // `dagWalker`) to find where we need to go down to next in + // the search. + for { + childSize := fsNode.BlockSize(int(dr.dagWalker.ActiveChildIndex())) + + if childSize > uint64(left) { + // This child's data contains the position requested + // in `offset`, go down this child. + return nil + } + + // Else, skip this child. + left -= int64(childSize) + err := dr.dagWalker.NextChild() + if err == ipld.ErrNextNoChild { + // No more child nodes available, nothing to do, + // the `Seek` will stop on its own. + return nil + } else if err != nil { + return err + // Pass along any other errors (that may in future + // implementations be returned by `Next`) to stop + // the search. + } + } + + } else { + // Leaf node, seek inside its data. + err := dr.saveNodeData(node) + if err != nil { + return err + } + + _, err = dr.currentNodeData.Seek(left, io.SeekStart) + if err != nil { + return err + } + // The corner case of a DAG consisting only of a single (leaf) + // node should make no difference here. In that case, where the + // node doesn't have a parent UnixFS node with size hints, this + // implementation would allow this `Seek` to be called with an + // argument larger than the buffer size which normally wouldn't + // happen (because we would skip the node based on the size + // hint) but that would just mean that a future `CtxReadFull` + // call would read no data from the `currentNodeData` buffer. + // TODO: Re-check this reasoning. + + return nil + // In the leaf node case the search will stop here. + } + }) + + if err == io.EOF { + // TODO: Taken from https://github.com/ipfs/go-ipfs/pull/4320, + // check if still valid. + // Return negative number if we can't figure out the file size. Using io.EOF + // for this seems to be good(-enough) solution as it's only returned by + // precalcNextBuf when we step out of file range. + // This is needed for gateway to function properly + return -1, nil + } + + if err != nil { + return 0, err + } + + dr.offset = offset + return dr.offset, nil + + case io.SeekCurrent: + if offset == 0 { + return dr.offset, nil + } + + return dr.Seek(dr.offset+offset, io.SeekStart) + // TODO: Performance. This can be improved supporting relative + // searches in the `Walker` (see `Walker.Seek`). + + case io.SeekEnd: + return dr.Seek(int64(dr.Size())+offset, io.SeekStart) + + default: + return 0, errors.New("invalid whence") + } +} + +// Reset the reader position by resetting the `dagWalker` and discarding +// any partially used node's data in the `currentNodeData` buffer, used +// in the `SeekStart` case. +func (dr *dagReader) resetPosition() { + dr.currentNodeData = nil + + dr.dagWalker = ipld.NewWalker(dr.ctx, ipld.NewNavigableIPLDNode(dr.rootNode, dr.serv)) + // TODO: This could be avoided (along with storing the `dr.rootNode` and + // `dr.serv` just for this call) if `Reset` is supported in the `Walker`. +} diff --git a/vendor/github.com/ipfs/go-unixfs/io/directory.go b/vendor/github.com/ipfs/go-unixfs/io/directory.go new file mode 100644 index 00000000..2e022762 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/io/directory.go @@ -0,0 +1,288 @@ +package io + +import ( + "context" + "fmt" + "os" + + mdag "github.com/ipfs/go-merkledag" + + format "github.com/ipfs/go-unixfs" + hamt "github.com/ipfs/go-unixfs/hamt" + + cid "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +// UseHAMTSharding is a global flag that signifies whether or not to use the +// HAMT sharding scheme for directory creation +var UseHAMTSharding = false + +// DefaultShardWidth is the default value used for hamt sharding width. +var DefaultShardWidth = 256 + +// Directory defines a UnixFS directory. It is used for creating, reading and +// editing directories. It allows to work with different directory schemes, +// like the basic or the HAMT implementation. +// +// It just allows to perform explicit edits on a single directory, working with +// directory trees is out of its scope, they are managed by the MFS layer +// (which is the main consumer of this interface). +type Directory interface { + + // SetCidBuilder sets the CID Builder of the root node. + SetCidBuilder(cid.Builder) + + // AddChild adds a (name, key) pair to the root node. + AddChild(context.Context, string, ipld.Node) error + + // ForEachLink applies the given function to Links in the directory. + ForEachLink(context.Context, func(*ipld.Link) error) error + + // EnumLinksAsync returns a channel which will receive Links in the directory + // as they are enumerated, where order is not gauranteed + EnumLinksAsync(context.Context) <-chan format.LinkResult + + // Links returns the all the links in the directory node. + Links(context.Context) ([]*ipld.Link, error) + + // Find returns the root node of the file named 'name' within this directory. + // In the case of HAMT-directories, it will traverse the tree. + Find(context.Context, string) (ipld.Node, error) + + // RemoveChild removes the child with the given name. + RemoveChild(context.Context, string) error + + // GetNode returns the root of this directory. + GetNode() (ipld.Node, error) + + // GetCidBuilder returns the CID Builder used. + GetCidBuilder() cid.Builder +} + +// TODO: Evaluate removing `dserv` from this layer and providing it in MFS. +// (The functions should in that case add a `DAGService` argument.) + +// BasicDirectory is the basic implementation of `Directory`. All the entries +// are stored in a single node. +type BasicDirectory struct { + node *mdag.ProtoNode + dserv ipld.DAGService +} + +// HAMTDirectory is the HAMT implementation of `Directory`. +// (See package `hamt` for more information.) +type HAMTDirectory struct { + shard *hamt.Shard + dserv ipld.DAGService +} + +// NewDirectory returns a Directory. It needs a `DAGService` to add the children. +func NewDirectory(dserv ipld.DAGService) Directory { + if UseHAMTSharding { + dir := new(HAMTDirectory) + s, err := hamt.NewShard(dserv, DefaultShardWidth) + if err != nil { + panic(err) // will only panic if DefaultShardWidth is a bad value + } + dir.shard = s + dir.dserv = dserv + return dir + } + + dir := new(BasicDirectory) + dir.node = format.EmptyDirNode() + dir.dserv = dserv + return dir +} + +// ErrNotADir implies that the given node was not a unixfs directory +var ErrNotADir = fmt.Errorf("merkledag node was not a directory or shard") + +// NewDirectoryFromNode loads a unixfs directory from the given IPLD node and +// DAGService. +func NewDirectoryFromNode(dserv ipld.DAGService, node ipld.Node) (Directory, error) { + protoBufNode, ok := node.(*mdag.ProtoNode) + if !ok { + return nil, ErrNotADir + } + + fsNode, err := format.FSNodeFromBytes(protoBufNode.Data()) + if err != nil { + return nil, err + } + + switch fsNode.Type() { + case format.TDirectory: + return &BasicDirectory{ + dserv: dserv, + node: protoBufNode.Copy().(*mdag.ProtoNode), + }, nil + case format.THAMTShard: + shard, err := hamt.NewHamtFromDag(dserv, node) + if err != nil { + return nil, err + } + return &HAMTDirectory{ + dserv: dserv, + shard: shard, + }, nil + } + + return nil, ErrNotADir +} + +// SetCidBuilder implements the `Directory` interface. +func (d *BasicDirectory) SetCidBuilder(builder cid.Builder) { + d.node.SetCidBuilder(builder) +} + +// AddChild implements the `Directory` interface. It adds (or replaces) +// a link to the given `node` under `name`. +func (d *BasicDirectory) AddChild(ctx context.Context, name string, node ipld.Node) error { + d.node.RemoveNodeLink(name) + // Remove old link (if it existed), don't check a potential `ErrNotFound`. + + return d.node.AddNodeLink(name, node) +} + +// EnumLinksAsync returns a channel which will receive Links in the directory +// as they are enumerated, where order is not gauranteed +func (d *BasicDirectory) EnumLinksAsync(ctx context.Context) <-chan format.LinkResult { + linkResults := make(chan format.LinkResult) + go func() { + defer close(linkResults) + for _, l := range d.node.Links() { + select { + case linkResults <- format.LinkResult{ + Link: l, + Err: nil, + }: + case <-ctx.Done(): + return + } + } + }() + return linkResults +} + +// ForEachLink implements the `Directory` interface. +func (d *BasicDirectory) ForEachLink(ctx context.Context, f func(*ipld.Link) error) error { + for _, l := range d.node.Links() { + if err := f(l); err != nil { + return err + } + } + return nil +} + +// Links implements the `Directory` interface. +func (d *BasicDirectory) Links(ctx context.Context) ([]*ipld.Link, error) { + return d.node.Links(), nil +} + +// Find implements the `Directory` interface. +func (d *BasicDirectory) Find(ctx context.Context, name string) (ipld.Node, error) { + lnk, err := d.node.GetNodeLink(name) + if err == mdag.ErrLinkNotFound { + err = os.ErrNotExist + } + if err != nil { + return nil, err + } + + return d.dserv.Get(ctx, lnk.Cid) +} + +// RemoveChild implements the `Directory` interface. +func (d *BasicDirectory) RemoveChild(ctx context.Context, name string) error { + return d.node.RemoveNodeLink(name) +} + +// GetNode implements the `Directory` interface. +func (d *BasicDirectory) GetNode() (ipld.Node, error) { + return d.node, nil +} + +// GetCidBuilder implements the `Directory` interface. +func (d *BasicDirectory) GetCidBuilder() cid.Builder { + return d.node.CidBuilder() +} + +// SwitchToSharding returns a HAMT implementation of this directory. +func (d *BasicDirectory) SwitchToSharding(ctx context.Context) (Directory, error) { + hamtDir := new(HAMTDirectory) + hamtDir.dserv = d.dserv + + shard, err := hamt.NewShard(d.dserv, DefaultShardWidth) + if err != nil { + return nil, err + } + shard.SetCidBuilder(d.node.CidBuilder()) + hamtDir.shard = shard + + for _, lnk := range d.node.Links() { + node, err := d.dserv.Get(ctx, lnk.Cid) + if err != nil { + return nil, err + } + + err = hamtDir.shard.Set(ctx, lnk.Name, node) + if err != nil { + return nil, err + } + } + + return hamtDir, nil +} + +// SetCidBuilder implements the `Directory` interface. +func (d *HAMTDirectory) SetCidBuilder(builder cid.Builder) { + d.shard.SetCidBuilder(builder) +} + +// AddChild implements the `Directory` interface. +func (d *HAMTDirectory) AddChild(ctx context.Context, name string, nd ipld.Node) error { + return d.shard.Set(ctx, name, nd) +} + +// ForEachLink implements the `Directory` interface. +func (d *HAMTDirectory) ForEachLink(ctx context.Context, f func(*ipld.Link) error) error { + return d.shard.ForEachLink(ctx, f) +} + +// EnumLinksAsync returns a channel which will receive Links in the directory +// as they are enumerated, where order is not gauranteed +func (d *HAMTDirectory) EnumLinksAsync(ctx context.Context) <-chan format.LinkResult { + return d.shard.EnumLinksAsync(ctx) +} + +// Links implements the `Directory` interface. +func (d *HAMTDirectory) Links(ctx context.Context) ([]*ipld.Link, error) { + return d.shard.EnumLinks(ctx) +} + +// Find implements the `Directory` interface. It will traverse the tree. +func (d *HAMTDirectory) Find(ctx context.Context, name string) (ipld.Node, error) { + lnk, err := d.shard.Find(ctx, name) + if err != nil { + return nil, err + } + + return lnk.GetNode(ctx, d.dserv) +} + +// RemoveChild implements the `Directory` interface. +func (d *HAMTDirectory) RemoveChild(ctx context.Context, name string) error { + return d.shard.Remove(ctx, name) +} + +// GetNode implements the `Directory` interface. +func (d *HAMTDirectory) GetNode() (ipld.Node, error) { + return d.shard.Node() +} + +// GetCidBuilder implements the `Directory` interface. +func (d *HAMTDirectory) GetCidBuilder() cid.Builder { + return d.shard.CidBuilder() +} diff --git a/vendor/github.com/ipfs/go-unixfs/io/doc.go b/vendor/github.com/ipfs/go-unixfs/io/doc.go new file mode 100644 index 00000000..cf844bd2 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/io/doc.go @@ -0,0 +1,3 @@ +// Package io implements convenience objects for working with the ipfs +// unixfs data format. +package io diff --git a/vendor/github.com/ipfs/go-unixfs/io/resolve.go b/vendor/github.com/ipfs/go-unixfs/io/resolve.go new file mode 100644 index 00000000..c3dcffc2 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/io/resolve.go @@ -0,0 +1,41 @@ +package io + +import ( + "context" + + dag "github.com/ipfs/go-merkledag" + ft "github.com/ipfs/go-unixfs" + hamt "github.com/ipfs/go-unixfs/hamt" + + ipld "github.com/ipfs/go-ipld-format" +) + +// ResolveUnixfsOnce resolves a single hop of a path through a graph in a +// unixfs context. This includes handling traversing sharded directories. +func ResolveUnixfsOnce(ctx context.Context, ds ipld.NodeGetter, nd ipld.Node, names []string) (*ipld.Link, []string, error) { + pn, ok := nd.(*dag.ProtoNode) + if ok { + fsn, err := ft.FSNodeFromBytes(pn.Data()) + if err != nil { + // Not a unixfs node, use standard object traversal code + return nd.ResolveLink(names) + } + + if fsn.Type() == ft.THAMTShard { + rods := dag.NewReadOnlyDagService(ds) + s, err := hamt.NewHamtFromDag(rods, nd) + if err != nil { + return nil, nil, err + } + + out, err := s.Find(ctx, names[0]) + if err != nil { + return nil, nil, err + } + + return out, names[1:], nil + } + } + + return nd.ResolveLink(names) +} diff --git a/vendor/github.com/ipfs/go-unixfs/mod/dagmodifier.go b/vendor/github.com/ipfs/go-unixfs/mod/dagmodifier.go new file mode 100644 index 00000000..1e2b2dcc --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/mod/dagmodifier.go @@ -0,0 +1,605 @@ +// Package mod provides DAG modification utilities to, for example, +// insert additional nodes in a unixfs DAG or truncate them. +package mod + +import ( + "bytes" + "context" + "errors" + "io" + + ft "github.com/ipfs/go-unixfs" + help "github.com/ipfs/go-unixfs/importer/helpers" + trickle "github.com/ipfs/go-unixfs/importer/trickle" + uio "github.com/ipfs/go-unixfs/io" + + cid "github.com/ipfs/go-cid" + chunker "github.com/ipfs/go-ipfs-chunker" + ipld "github.com/ipfs/go-ipld-format" + mdag "github.com/ipfs/go-merkledag" +) + +// Common errors +var ( + ErrSeekFail = errors.New("failed to seek properly") + ErrUnrecognizedWhence = errors.New("unrecognized whence") + ErrNotUnixfs = errors.New("dagmodifier only supports unixfs nodes (proto or raw)") +) + +// 2MB +var writebufferSize = 1 << 21 + +// DagModifier is the only struct licensed and able to correctly +// perform surgery on a DAG 'file' +// Dear god, please rename this to something more pleasant +type DagModifier struct { + dagserv ipld.DAGService + curNode ipld.Node + + splitter chunker.SplitterGen + ctx context.Context + readCancel func() + + writeStart uint64 + curWrOff uint64 + wrBuf *bytes.Buffer + + Prefix cid.Prefix + RawLeaves bool + + read uio.DagReader +} + +// NewDagModifier returns a new DagModifier, the Cid prefix for newly +// created nodes will be inhered from the passed in node. If the Cid +// version if not 0 raw leaves will also be enabled. The Prefix and +// RawLeaves options can be overridden by changing them after the call. +func NewDagModifier(ctx context.Context, from ipld.Node, serv ipld.DAGService, spl chunker.SplitterGen) (*DagModifier, error) { + switch from.(type) { + case *mdag.ProtoNode, *mdag.RawNode: + // ok + default: + return nil, ErrNotUnixfs + } + + prefix := from.Cid().Prefix() + prefix.Codec = cid.DagProtobuf + rawLeaves := false + if prefix.Version > 0 { + rawLeaves = true + } + + return &DagModifier{ + curNode: from.Copy(), + dagserv: serv, + splitter: spl, + ctx: ctx, + Prefix: prefix, + RawLeaves: rawLeaves, + }, nil +} + +// WriteAt will modify a dag file in place +func (dm *DagModifier) WriteAt(b []byte, offset int64) (int, error) { + // TODO: this is currently VERY inefficient + // each write that happens at an offset other than the current one causes a + // flush to disk, and dag rewrite + if offset == int64(dm.writeStart) && dm.wrBuf != nil { + // If we would overwrite the previous write + if len(b) >= dm.wrBuf.Len() { + dm.wrBuf.Reset() + } + } else if uint64(offset) != dm.curWrOff { + size, err := dm.Size() + if err != nil { + return 0, err + } + if offset > size { + err := dm.expandSparse(offset - size) + if err != nil { + return 0, err + } + } + + err = dm.Sync() + if err != nil { + return 0, err + } + dm.writeStart = uint64(offset) + } + + return dm.Write(b) +} + +// A reader that just returns zeros +type zeroReader struct{} + +func (zr zeroReader) Read(b []byte) (int, error) { + for i := range b { + b[i] = 0 + } + return len(b), nil +} + +// expandSparse grows the file with zero blocks of 4096 +// A small blocksize is chosen to aid in deduplication +func (dm *DagModifier) expandSparse(size int64) error { + r := io.LimitReader(zeroReader{}, size) + spl := chunker.NewSizeSplitter(r, 4096) + nnode, err := dm.appendData(dm.curNode, spl) + if err != nil { + return err + } + err = dm.dagserv.Add(dm.ctx, nnode) + return err +} + +// Write continues writing to the dag at the current offset +func (dm *DagModifier) Write(b []byte) (int, error) { + if dm.read != nil { + dm.read = nil + } + if dm.wrBuf == nil { + dm.wrBuf = new(bytes.Buffer) + } + + n, err := dm.wrBuf.Write(b) + if err != nil { + return n, err + } + dm.curWrOff += uint64(n) + if dm.wrBuf.Len() > writebufferSize { + err := dm.Sync() + if err != nil { + return n, err + } + } + return n, nil +} + +// Size returns the Filesize of the node +func (dm *DagModifier) Size() (int64, error) { + fileSize, err := fileSize(dm.curNode) + if err != nil { + return 0, err + } + if dm.wrBuf != nil && int64(dm.wrBuf.Len())+int64(dm.writeStart) > int64(fileSize) { + return int64(dm.wrBuf.Len()) + int64(dm.writeStart), nil + } + return int64(fileSize), nil +} + +func fileSize(n ipld.Node) (uint64, error) { + switch nd := n.(type) { + case *mdag.ProtoNode: + fsn, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return 0, err + } + return fsn.FileSize(), nil + case *mdag.RawNode: + return uint64(len(nd.RawData())), nil + default: + return 0, ErrNotUnixfs + } +} + +// Sync writes changes to this dag to disk +func (dm *DagModifier) Sync() error { + // No buffer? Nothing to do + if dm.wrBuf == nil { + return nil + } + + // If we have an active reader, kill it + if dm.read != nil { + dm.read = nil + dm.readCancel() + } + + // Number of bytes we're going to write + buflen := dm.wrBuf.Len() + + fs, err := fileSize(dm.curNode) + if err != nil { + return err + } + if fs < dm.writeStart { + if err := dm.expandSparse(int64(dm.writeStart - fs)); err != nil { + return err + } + } + + // overwrite existing dag nodes + thisc, err := dm.modifyDag(dm.curNode, dm.writeStart) + if err != nil { + return err + } + + dm.curNode, err = dm.dagserv.Get(dm.ctx, thisc) + if err != nil { + return err + } + + // need to write past end of current dag + if dm.wrBuf.Len() > 0 { + dm.curNode, err = dm.appendData(dm.curNode, dm.splitter(dm.wrBuf)) + if err != nil { + return err + } + + err = dm.dagserv.Add(dm.ctx, dm.curNode) + if err != nil { + return err + } + } + + dm.writeStart += uint64(buflen) + dm.wrBuf = nil + + return nil +} + +// modifyDag writes the data in 'dm.wrBuf' over the data in 'node' starting at 'offset' +// returns the new key of the passed in node. +func (dm *DagModifier) modifyDag(n ipld.Node, offset uint64) (cid.Cid, error) { + // If we've reached a leaf node. + if len(n.Links()) == 0 { + switch nd0 := n.(type) { + case *mdag.ProtoNode: + fsn, err := ft.FSNodeFromBytes(nd0.Data()) + if err != nil { + return cid.Cid{}, err + } + + _, err = dm.wrBuf.Read(fsn.Data()[offset:]) + if err != nil && err != io.EOF { + return cid.Cid{}, err + } + + // Update newly written node.. + b, err := fsn.GetBytes() + if err != nil { + return cid.Cid{}, err + } + + nd := new(mdag.ProtoNode) + nd.SetData(b) + nd.SetCidBuilder(nd0.CidBuilder()) + err = dm.dagserv.Add(dm.ctx, nd) + if err != nil { + return cid.Cid{}, err + } + + return nd.Cid(), nil + case *mdag.RawNode: + origData := nd0.RawData() + bytes := make([]byte, len(origData)) + + // copy orig data up to offset + copy(bytes, origData[:offset]) + + // copy in new data + n, err := dm.wrBuf.Read(bytes[offset:]) + if err != nil && err != io.EOF { + return cid.Cid{}, err + } + + // copy remaining data + offsetPlusN := int(offset) + n + if offsetPlusN < len(origData) { + copy(bytes[offsetPlusN:], origData[offsetPlusN:]) + } + + nd, err := mdag.NewRawNodeWPrefix(bytes, nd0.Cid().Prefix()) + if err != nil { + return cid.Cid{}, err + } + err = dm.dagserv.Add(dm.ctx, nd) + if err != nil { + return cid.Cid{}, err + } + + return nd.Cid(), nil + } + } + + node, ok := n.(*mdag.ProtoNode) + if !ok { + return cid.Cid{}, ErrNotUnixfs + } + + fsn, err := ft.FSNodeFromBytes(node.Data()) + if err != nil { + return cid.Cid{}, err + } + + var cur uint64 + for i, bs := range fsn.BlockSizes() { + // We found the correct child to write into + if cur+bs > offset { + child, err := node.Links()[i].GetNode(dm.ctx, dm.dagserv) + if err != nil { + return cid.Cid{}, err + } + + k, err := dm.modifyDag(child, offset-cur) + if err != nil { + return cid.Cid{}, err + } + + node.Links()[i].Cid = k + + // Recache serialized node + _, err = node.EncodeProtobuf(true) + if err != nil { + return cid.Cid{}, err + } + + if dm.wrBuf.Len() == 0 { + // No more bytes to write! + break + } + offset = cur + bs + } + cur += bs + } + + err = dm.dagserv.Add(dm.ctx, node) + return node.Cid(), err +} + +// appendData appends the blocks from the given chan to the end of this dag +func (dm *DagModifier) appendData(nd ipld.Node, spl chunker.Splitter) (ipld.Node, error) { + switch nd := nd.(type) { + case *mdag.ProtoNode, *mdag.RawNode: + dbp := &help.DagBuilderParams{ + Dagserv: dm.dagserv, + Maxlinks: help.DefaultLinksPerBlock, + CidBuilder: dm.Prefix, + RawLeaves: dm.RawLeaves, + } + db, err := dbp.New(spl) + if err != nil { + return nil, err + } + return trickle.Append(dm.ctx, nd, db) + default: + return nil, ErrNotUnixfs + } +} + +// Read data from this dag starting at the current offset +func (dm *DagModifier) Read(b []byte) (int, error) { + err := dm.readPrep() + if err != nil { + return 0, err + } + + n, err := dm.read.Read(b) + dm.curWrOff += uint64(n) + return n, err +} + +func (dm *DagModifier) readPrep() error { + err := dm.Sync() + if err != nil { + return err + } + + if dm.read == nil { + ctx, cancel := context.WithCancel(dm.ctx) + dr, err := uio.NewDagReader(ctx, dm.curNode, dm.dagserv) + if err != nil { + cancel() + return err + } + + i, err := dr.Seek(int64(dm.curWrOff), io.SeekStart) + if err != nil { + cancel() + return err + } + + if i != int64(dm.curWrOff) { + cancel() + return ErrSeekFail + } + + dm.readCancel = cancel + dm.read = dr + } + + return nil +} + +// CtxReadFull reads data from this dag starting at the current offset +func (dm *DagModifier) CtxReadFull(ctx context.Context, b []byte) (int, error) { + err := dm.readPrep() + if err != nil { + return 0, err + } + + n, err := dm.read.CtxReadFull(ctx, b) + dm.curWrOff += uint64(n) + return n, err +} + +// GetNode gets the modified DAG Node +func (dm *DagModifier) GetNode() (ipld.Node, error) { + err := dm.Sync() + if err != nil { + return nil, err + } + return dm.curNode.Copy(), nil +} + +// HasChanges returned whether or not there are unflushed changes to this dag +func (dm *DagModifier) HasChanges() bool { + return dm.wrBuf != nil +} + +// Seek modifies the offset according to whence. See unixfs/io for valid whence +// values. +func (dm *DagModifier) Seek(offset int64, whence int) (int64, error) { + err := dm.Sync() + if err != nil { + return 0, err + } + + fisize, err := dm.Size() + if err != nil { + return 0, err + } + + var newoffset uint64 + switch whence { + case io.SeekCurrent: + newoffset = dm.curWrOff + uint64(offset) + case io.SeekStart: + newoffset = uint64(offset) + case io.SeekEnd: + newoffset = uint64(fisize) - uint64(offset) + default: + return 0, ErrUnrecognizedWhence + } + + if int64(newoffset) > fisize { + if err := dm.expandSparse(int64(newoffset) - fisize); err != nil { + return 0, err + } + } + dm.curWrOff = newoffset + dm.writeStart = newoffset + + if dm.read != nil { + _, err = dm.read.Seek(offset, whence) + if err != nil { + return 0, err + } + } + + return int64(dm.curWrOff), nil +} + +// Truncate truncates the current Node to 'size' and replaces it with the +// new one. +func (dm *DagModifier) Truncate(size int64) error { + err := dm.Sync() + if err != nil { + return err + } + + realSize, err := dm.Size() + if err != nil { + return err + } + if size == int64(realSize) { + return nil + } + + // Truncate can also be used to expand the file + if size > int64(realSize) { + return dm.expandSparse(int64(size) - realSize) + } + + nnode, err := dm.dagTruncate(dm.ctx, dm.curNode, uint64(size)) + if err != nil { + return err + } + + err = dm.dagserv.Add(dm.ctx, nnode) + if err != nil { + return err + } + + dm.curNode = nnode + return nil +} + +// dagTruncate truncates the given node to 'size' and returns the modified Node +func (dm *DagModifier) dagTruncate(ctx context.Context, n ipld.Node, size uint64) (ipld.Node, error) { + if len(n.Links()) == 0 { + switch nd := n.(type) { + case *mdag.ProtoNode: + // TODO: this can likely be done without marshaling and remarshaling + fsn, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return nil, err + } + nd.SetData(ft.WrapData(fsn.Data()[:size])) + return nd, nil + case *mdag.RawNode: + return mdag.NewRawNodeWPrefix(nd.RawData()[:size], nd.Cid().Prefix()) + } + } + + nd, ok := n.(*mdag.ProtoNode) + if !ok { + return nil, ErrNotUnixfs + } + + var cur uint64 + end := 0 + var modified ipld.Node + ndata, err := ft.FSNodeFromBytes(nd.Data()) + if err != nil { + return nil, err + } + // Reset the block sizes of the node to adjust them + // with the new values of the truncated children. + ndata.RemoveAllBlockSizes() + for i, lnk := range nd.Links() { + child, err := lnk.GetNode(ctx, dm.dagserv) + if err != nil { + return nil, err + } + + childsize, err := fileSize(child) + if err != nil { + return nil, err + } + + // found the child we want to cut + if size < cur+childsize { + nchild, err := dm.dagTruncate(ctx, child, size-cur) + if err != nil { + return nil, err + } + + ndata.AddBlockSize(size - cur) + + modified = nchild + end = i + break + } + cur += childsize + ndata.AddBlockSize(childsize) + } + + err = dm.dagserv.Add(ctx, modified) + if err != nil { + return nil, err + } + + nd.SetLinks(nd.Links()[:end]) + err = nd.AddNodeLink("", modified) + if err != nil { + return nil, err + } + + d, err := ndata.GetBytes() + if err != nil { + return nil, err + } + // Save the new block sizes to the original node. + nd.SetData(d) + + // invalidate cache and recompute serialized data + _, err = nd.EncodeProtobuf(true) + if err != nil { + return nil, err + } + + return nd, nil +} diff --git a/vendor/github.com/ipfs/go-unixfs/package.json b/vendor/github.com/ipfs/go-unixfs/package.json new file mode 100644 index 00000000..4d20bf8c --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/package.json @@ -0,0 +1,84 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/ipfs/go-unixfs" + }, + "gx": { + "dvcsimport": "github.com/ipfs/go-unixfs" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmfJHywXQu98UeZtGJBQrPAR6AtmDjjbe3qjTo9piXHPnx", + "name": "murmur3", + "version": "0.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "why", + "hash": "QmY6UwsN3D6uoxrRkYpJ8Wos8R66gwLmdn3wy7jM7CCRQ1", + "name": "go-merkledag", + "version": "1.1.40" + }, + { + "author": "hector", + "hash": "QmdiZuFuiFD1Gbuu8PdqmsfrCR3z4QKSR2bN1NAvnJgTY7", + "name": "go-ipfs-posinfo", + "version": "0.1.5" + }, + { + "author": "Stebalien", + "hash": "QmVA2fUfgswyFdhZZA3MvUtfwTS7TER4Hv4vSBLvoQu1QZ", + "name": "go-bitfield", + "version": "0.1.3" + }, + { + "author": "hsanjuan", + "hash": "QmYmZ81dU5nnmBFy5MmktXLZpt8QCWhRJd6M1uxVF6vke8", + "name": "go-ipfs-chunker", + "version": "0.1.6" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + }, + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + }, + { + "author": "magik6k", + "hash": "QmRHcZ5ngUxZo8phLR3fpoqk9wA7VdGc5mhwkGSnB2nZ9F", + "name": "go-ipfs-files", + "version": "2.0.7" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-unixfs", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.3.15" +} + diff --git a/vendor/github.com/ipfs/go-unixfs/pb/Makefile b/vendor/github.com/ipfs/go-unixfs/pb/Makefile new file mode 100644 index 00000000..51552a09 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogo_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/ipfs/go-unixfs/pb/unixfs.pb.go b/vendor/github.com/ipfs/go-unixfs/pb/unixfs.pb.go new file mode 100644 index 00000000..6f1c8fe8 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/pb/unixfs.pb.go @@ -0,0 +1,217 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: unixfs.proto + +package unixfs_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Data_DataType int32 + +const ( + Data_Raw Data_DataType = 0 + Data_Directory Data_DataType = 1 + Data_File Data_DataType = 2 + Data_Metadata Data_DataType = 3 + Data_Symlink Data_DataType = 4 + Data_HAMTShard Data_DataType = 5 +) + +var Data_DataType_name = map[int32]string{ + 0: "Raw", + 1: "Directory", + 2: "File", + 3: "Metadata", + 4: "Symlink", + 5: "HAMTShard", +} + +var Data_DataType_value = map[string]int32{ + "Raw": 0, + "Directory": 1, + "File": 2, + "Metadata": 3, + "Symlink": 4, + "HAMTShard": 5, +} + +func (x Data_DataType) Enum() *Data_DataType { + p := new(Data_DataType) + *p = x + return p +} + +func (x Data_DataType) String() string { + return proto.EnumName(Data_DataType_name, int32(x)) +} + +func (x *Data_DataType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Data_DataType_value, data, "Data_DataType") + if err != nil { + return err + } + *x = Data_DataType(value) + return nil +} + +func (Data_DataType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_e2fd76cc44dfc7c3, []int{0, 0} +} + +type Data struct { + Type *Data_DataType `protobuf:"varint,1,req,name=Type,enum=unixfs.pb.Data_DataType" json:"Type,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=Data" json:"Data,omitempty"` + Filesize *uint64 `protobuf:"varint,3,opt,name=filesize" json:"filesize,omitempty"` + Blocksizes []uint64 `protobuf:"varint,4,rep,name=blocksizes" json:"blocksizes,omitempty"` + HashType *uint64 `protobuf:"varint,5,opt,name=hashType" json:"hashType,omitempty"` + Fanout *uint64 `protobuf:"varint,6,opt,name=fanout" json:"fanout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Data) Reset() { *m = Data{} } +func (m *Data) String() string { return proto.CompactTextString(m) } +func (*Data) ProtoMessage() {} +func (*Data) Descriptor() ([]byte, []int) { + return fileDescriptor_e2fd76cc44dfc7c3, []int{0} +} +func (m *Data) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Data.Unmarshal(m, b) +} +func (m *Data) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Data.Marshal(b, m, deterministic) +} +func (m *Data) XXX_Merge(src proto.Message) { + xxx_messageInfo_Data.Merge(m, src) +} +func (m *Data) XXX_Size() int { + return xxx_messageInfo_Data.Size(m) +} +func (m *Data) XXX_DiscardUnknown() { + xxx_messageInfo_Data.DiscardUnknown(m) +} + +var xxx_messageInfo_Data proto.InternalMessageInfo + +func (m *Data) GetType() Data_DataType { + if m != nil && m.Type != nil { + return *m.Type + } + return Data_Raw +} + +func (m *Data) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *Data) GetFilesize() uint64 { + if m != nil && m.Filesize != nil { + return *m.Filesize + } + return 0 +} + +func (m *Data) GetBlocksizes() []uint64 { + if m != nil { + return m.Blocksizes + } + return nil +} + +func (m *Data) GetHashType() uint64 { + if m != nil && m.HashType != nil { + return *m.HashType + } + return 0 +} + +func (m *Data) GetFanout() uint64 { + if m != nil && m.Fanout != nil { + return *m.Fanout + } + return 0 +} + +type Metadata struct { + MimeType *string `protobuf:"bytes,1,opt,name=MimeType" json:"MimeType,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Metadata) Reset() { *m = Metadata{} } +func (m *Metadata) String() string { return proto.CompactTextString(m) } +func (*Metadata) ProtoMessage() {} +func (*Metadata) Descriptor() ([]byte, []int) { + return fileDescriptor_e2fd76cc44dfc7c3, []int{1} +} +func (m *Metadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Metadata.Unmarshal(m, b) +} +func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Metadata.Marshal(b, m, deterministic) +} +func (m *Metadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_Metadata.Merge(m, src) +} +func (m *Metadata) XXX_Size() int { + return xxx_messageInfo_Metadata.Size(m) +} +func (m *Metadata) XXX_DiscardUnknown() { + xxx_messageInfo_Metadata.DiscardUnknown(m) +} + +var xxx_messageInfo_Metadata proto.InternalMessageInfo + +func (m *Metadata) GetMimeType() string { + if m != nil && m.MimeType != nil { + return *m.MimeType + } + return "" +} + +func init() { + proto.RegisterEnum("unixfs.pb.Data_DataType", Data_DataType_name, Data_DataType_value) + proto.RegisterType((*Data)(nil), "unixfs.pb.Data") + proto.RegisterType((*Metadata)(nil), "unixfs.pb.Metadata") +} + +func init() { proto.RegisterFile("unixfs.proto", fileDescriptor_e2fd76cc44dfc7c3) } + +var fileDescriptor_e2fd76cc44dfc7c3 = []byte{ + // 254 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x90, 0xb1, 0x6a, 0xeb, 0x30, + 0x18, 0x85, 0xaf, 0x6c, 0x25, 0xb1, 0xff, 0xeb, 0x16, 0xf1, 0x0f, 0x45, 0x74, 0x28, 0xc6, 0x43, + 0xd1, 0x50, 0x3c, 0xf4, 0x0d, 0x0a, 0xa1, 0x74, 0xf1, 0xa2, 0x84, 0xee, 0x4a, 0x22, 0x63, 0x11, + 0xc7, 0x0a, 0xb6, 0x42, 0xeb, 0x3e, 0x45, 0x1f, 0xb9, 0xc8, 0x8e, 0xdd, 0x2e, 0x82, 0x4f, 0xe7, + 0x7c, 0xe2, 0x20, 0x48, 0x2e, 0x8d, 0xf9, 0x2c, 0xbb, 0xfc, 0xdc, 0x5a, 0x67, 0x31, 0x9e, 0x68, + 0x97, 0x7d, 0x07, 0x40, 0xd7, 0xca, 0x29, 0x7c, 0x02, 0xba, 0xed, 0xcf, 0x9a, 0x93, 0x34, 0x10, + 0xb7, 0xcf, 0x3c, 0x9f, 0x2b, 0xb9, 0x8f, 0x87, 0xc3, 0xe7, 0x72, 0x68, 0x21, 0x8e, 0x16, 0x0f, + 0x52, 0x22, 0x12, 0x39, 0xbe, 0x70, 0x0f, 0x51, 0x69, 0x6a, 0xdd, 0x99, 0x2f, 0xcd, 0xc3, 0x94, + 0x08, 0x2a, 0x67, 0xc6, 0x07, 0x80, 0x5d, 0x6d, 0xf7, 0x47, 0x0f, 0x1d, 0xa7, 0x69, 0x28, 0xa8, + 0xfc, 0x73, 0xe3, 0xdd, 0x4a, 0x75, 0xd5, 0xb0, 0x60, 0x31, 0xba, 0x13, 0xe3, 0x1d, 0x2c, 0x4b, + 0xd5, 0xd8, 0x8b, 0xe3, 0xcb, 0x21, 0xb9, 0x52, 0xf6, 0x0e, 0xd1, 0xb4, 0x0a, 0x57, 0x10, 0x4a, + 0xf5, 0xc1, 0xfe, 0xe1, 0x0d, 0xc4, 0x6b, 0xd3, 0xea, 0xbd, 0xb3, 0x6d, 0xcf, 0x08, 0x46, 0x40, + 0x5f, 0x4d, 0xad, 0x59, 0x80, 0x09, 0x44, 0x85, 0x76, 0xea, 0xa0, 0x9c, 0x62, 0x21, 0xfe, 0x87, + 0xd5, 0xa6, 0x3f, 0xd5, 0xa6, 0x39, 0x32, 0xea, 0x9d, 0xb7, 0x97, 0x62, 0xbb, 0xa9, 0x54, 0x7b, + 0x60, 0x8b, 0xec, 0xf1, 0xb7, 0xe9, 0x77, 0x15, 0xe6, 0xa4, 0xaf, 0x3f, 0x43, 0x44, 0x2c, 0x67, + 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0xe9, 0xa0, 0x51, 0x10, 0x54, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/ipfs/go-unixfs/pb/unixfs.proto b/vendor/github.com/ipfs/go-unixfs/pb/unixfs.proto new file mode 100644 index 00000000..ffc059e8 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/pb/unixfs.proto @@ -0,0 +1,26 @@ +syntax = "proto2"; + +package unixfs.pb; + +message Data { + enum DataType { + Raw = 0; + Directory = 1; + File = 2; + Metadata = 3; + Symlink = 4; + HAMTShard = 5; + } + + required DataType Type = 1; + optional bytes Data = 2; + optional uint64 filesize = 3; + repeated uint64 blocksizes = 4; + + optional uint64 hashType = 5; + optional uint64 fanout = 6; +} + +message Metadata { + optional string MimeType = 1; +} diff --git a/vendor/github.com/ipfs/go-unixfs/unixfs.go b/vendor/github.com/ipfs/go-unixfs/unixfs.go new file mode 100644 index 00000000..84caf6f4 --- /dev/null +++ b/vendor/github.com/ipfs/go-unixfs/unixfs.go @@ -0,0 +1,408 @@ +// Package unixfs implements a data format for files in the IPFS filesystem It +// is not the only format in ipfs, but it is the one that the filesystem +// assumes +package unixfs + +import ( + "errors" + "fmt" + + proto "github.com/gogo/protobuf/proto" + dag "github.com/ipfs/go-merkledag" + + ipld "github.com/ipfs/go-ipld-format" + pb "github.com/ipfs/go-unixfs/pb" +) + +// A LinkResult for any parallel enumeration of links +// TODO: Should this live in go-ipld-format? +type LinkResult struct { + Link *ipld.Link + Err error +} + +// Shorthands for protobuffer types +const ( + TRaw = pb.Data_Raw + TFile = pb.Data_File + TDirectory = pb.Data_Directory + TMetadata = pb.Data_Metadata + TSymlink = pb.Data_Symlink + THAMTShard = pb.Data_HAMTShard +) + +// Common errors +var ( + ErrMalformedFileFormat = errors.New("malformed data in file format") + ErrUnrecognizedType = errors.New("unrecognized node type") +) + +// FromBytes unmarshals a byte slice as protobuf Data. +// Deprecated: Use `FSNodeFromBytes` instead to avoid direct manipulation of `pb.Data`. +func FromBytes(data []byte) (*pb.Data, error) { + pbdata := new(pb.Data) + err := proto.Unmarshal(data, pbdata) + if err != nil { + return nil, err + } + return pbdata, nil +} + +// FilePBData creates a protobuf File with the given +// byte slice and returns the marshaled protobuf bytes representing it. +func FilePBData(data []byte, totalsize uint64) []byte { + pbfile := new(pb.Data) + typ := pb.Data_File + pbfile.Type = &typ + pbfile.Data = data + pbfile.Filesize = proto.Uint64(totalsize) + + data, err := proto.Marshal(pbfile) + if err != nil { + // This really shouldnt happen, i promise + // The only failure case for marshal is if required fields + // are not filled out, and they all are. If the proto object + // gets changed and nobody updates this function, the code + // should panic due to programmer error + panic(err) + } + return data +} + +//FolderPBData returns Bytes that represent a Directory. +func FolderPBData() []byte { + pbfile := new(pb.Data) + typ := pb.Data_Directory + pbfile.Type = &typ + + data, err := proto.Marshal(pbfile) + if err != nil { + //this really shouldnt happen, i promise + panic(err) + } + return data +} + +//WrapData marshals raw bytes into a `Data_Raw` type protobuf message. +func WrapData(b []byte) []byte { + pbdata := new(pb.Data) + typ := pb.Data_Raw + pbdata.Data = b + pbdata.Type = &typ + pbdata.Filesize = proto.Uint64(uint64(len(b))) + + out, err := proto.Marshal(pbdata) + if err != nil { + // This shouldnt happen. seriously. + panic(err) + } + + return out +} + +//SymlinkData returns a `Data_Symlink` protobuf message for the path you specify. +func SymlinkData(path string) ([]byte, error) { + pbdata := new(pb.Data) + typ := pb.Data_Symlink + pbdata.Data = []byte(path) + pbdata.Type = &typ + + out, err := proto.Marshal(pbdata) + if err != nil { + return nil, err + } + + return out, nil +} + +// HAMTShardData return a `Data_HAMTShard` protobuf message +func HAMTShardData(data []byte, fanout uint64, hashType uint64) ([]byte, error) { + pbdata := new(pb.Data) + typ := pb.Data_HAMTShard + pbdata.Type = &typ + pbdata.HashType = proto.Uint64(hashType) + pbdata.Data = data + pbdata.Fanout = proto.Uint64(fanout) + + out, err := proto.Marshal(pbdata) + if err != nil { + return nil, err + } + + return out, nil +} + +// UnwrapData unmarshals a protobuf messages and returns the contents. +func UnwrapData(data []byte) ([]byte, error) { + pbdata := new(pb.Data) + err := proto.Unmarshal(data, pbdata) + if err != nil { + return nil, err + } + return pbdata.GetData(), nil +} + +// DataSize returns the size of the contents in protobuf wrapped slice. +// For raw data it simply provides the length of it. For Data_Files, it +// will return the associated filesize. Note that Data_Directories will +// return an error. +func DataSize(data []byte) (uint64, error) { + pbdata := new(pb.Data) + err := proto.Unmarshal(data, pbdata) + if err != nil { + return 0, err + } + + switch pbdata.GetType() { + case pb.Data_Directory: + return 0, errors.New("can't get data size of directory") + case pb.Data_File: + return pbdata.GetFilesize(), nil + case pb.Data_Raw: + return uint64(len(pbdata.GetData())), nil + default: + return 0, errors.New("unrecognized node data type") + } +} + +// An FSNode represents a filesystem object using the UnixFS specification. +// +// The `NewFSNode` constructor should be used instead of just calling `new(FSNode)` +// to guarantee that the required (`Type` and `Filesize`) fields in the `format` +// structure are initialized before marshaling (in `GetBytes()`). +type FSNode struct { + + // UnixFS format defined as a protocol buffers message. + format pb.Data +} + +// FSNodeFromBytes unmarshal a protobuf message onto an FSNode. +func FSNodeFromBytes(b []byte) (*FSNode, error) { + n := new(FSNode) + err := proto.Unmarshal(b, &n.format) + if err != nil { + return nil, err + } + + return n, nil +} + +// NewFSNode creates a new FSNode structure with the given `dataType`. +// +// It initializes the (required) `Type` field (that doesn't have a `Set()` +// accessor so it must be specified at creation), otherwise the `Marshal()` +// method in `GetBytes()` would fail (`required field "Type" not set`). +// +// It also initializes the `Filesize` pointer field to ensure its value +// is never nil before marshaling, this is not a required field but it is +// done to be backwards compatible with previous `go-ipfs` versions hash. +// (If it wasn't initialized there could be cases where `Filesize` could +// have been left at nil, when the `FSNode` was created but no data or +// child nodes were set to adjust it, as is the case in `NewLeaf()`.) +func NewFSNode(dataType pb.Data_DataType) *FSNode { + n := new(FSNode) + n.format.Type = &dataType + + // Initialize by `Filesize` by updating it with a dummy (zero) value. + n.UpdateFilesize(0) + + return n +} + +// HashType gets hash type of format +func (n *FSNode) HashType() uint64 { + return n.format.GetHashType() +} + +// Fanout gets fanout of format +func (n *FSNode) Fanout() uint64 { + return n.format.GetFanout() +} + +// AddBlockSize adds the size of the next child block of this node +func (n *FSNode) AddBlockSize(s uint64) { + n.UpdateFilesize(int64(s)) + n.format.Blocksizes = append(n.format.Blocksizes, s) +} + +// RemoveBlockSize removes the given child block's size. +func (n *FSNode) RemoveBlockSize(i int) { + n.UpdateFilesize(-int64(n.format.Blocksizes[i])) + n.format.Blocksizes = append(n.format.Blocksizes[:i], n.format.Blocksizes[i+1:]...) +} + +// BlockSize returns the block size indexed by `i`. +// TODO: Evaluate if this function should be bounds checking. +func (n *FSNode) BlockSize(i int) uint64 { + return n.format.Blocksizes[i] +} + +// BlockSizes gets blocksizes of format +func (n *FSNode) BlockSizes() []uint64 { + return n.format.GetBlocksizes() +} + +// RemoveAllBlockSizes removes all the child block sizes of this node. +func (n *FSNode) RemoveAllBlockSizes() { + n.format.Blocksizes = []uint64{} + n.format.Filesize = proto.Uint64(uint64(len(n.Data()))) +} + +// GetBytes marshals this node as a protobuf message. +func (n *FSNode) GetBytes() ([]byte, error) { + return proto.Marshal(&n.format) +} + +// FileSize returns the total size of this tree. That is, the size of +// the data in this node plus the size of all its children. +func (n *FSNode) FileSize() uint64 { + return n.format.GetFilesize() +} + +// NumChildren returns the number of child blocks of this node +func (n *FSNode) NumChildren() int { + return len(n.format.Blocksizes) +} + +// Data retrieves the `Data` field from the internal `format`. +func (n *FSNode) Data() []byte { + return n.format.GetData() +} + +// SetData sets the `Data` field from the internal `format` +// updating its `Filesize`. +func (n *FSNode) SetData(newData []byte) { + n.UpdateFilesize(int64(len(newData) - len(n.Data()))) + n.format.Data = newData +} + +// UpdateFilesize updates the `Filesize` field from the internal `format` +// by a signed difference (`filesizeDiff`). +// TODO: Add assert to check for `Filesize` > 0? +func (n *FSNode) UpdateFilesize(filesizeDiff int64) { + n.format.Filesize = proto.Uint64(uint64( + int64(n.format.GetFilesize()) + filesizeDiff)) +} + +// Type retrieves the `Type` field from the internal `format`. +func (n *FSNode) Type() pb.Data_DataType { + return n.format.GetType() +} + +// IsDir checks whether the node represents a directory +func (n *FSNode) IsDir() bool { + switch n.Type() { + case pb.Data_Directory, pb.Data_HAMTShard: + return true + default: + return false + } +} + +// Metadata is used to store additional FSNode information. +type Metadata struct { + MimeType string + Size uint64 +} + +// MetadataFromBytes Unmarshals a protobuf Data message into Metadata. +// The provided slice should have been encoded with BytesForMetadata(). +func MetadataFromBytes(b []byte) (*Metadata, error) { + pbd := new(pb.Data) + err := proto.Unmarshal(b, pbd) + if err != nil { + return nil, err + } + if pbd.GetType() != pb.Data_Metadata { + return nil, errors.New("incorrect node type") + } + + pbm := new(pb.Metadata) + err = proto.Unmarshal(pbd.Data, pbm) + if err != nil { + return nil, err + } + md := new(Metadata) + md.MimeType = pbm.GetMimeType() + return md, nil +} + +// Bytes marshals Metadata as a protobuf message of Metadata type. +func (m *Metadata) Bytes() ([]byte, error) { + pbm := new(pb.Metadata) + pbm.MimeType = &m.MimeType + return proto.Marshal(pbm) +} + +// BytesForMetadata wraps the given Metadata as a profobuf message of Data type, +// setting the DataType to Metadata. The wrapped bytes are itself the +// result of calling m.Bytes(). +func BytesForMetadata(m *Metadata) ([]byte, error) { + pbd := new(pb.Data) + pbd.Filesize = proto.Uint64(m.Size) + typ := pb.Data_Metadata + pbd.Type = &typ + mdd, err := m.Bytes() + if err != nil { + return nil, err + } + + pbd.Data = mdd + return proto.Marshal(pbd) +} + +// EmptyDirNode creates an empty folder Protonode. +func EmptyDirNode() *dag.ProtoNode { + return dag.NodeWithData(FolderPBData()) +} + +// ReadUnixFSNodeData extracts the UnixFS data from an IPLD node. +// Raw nodes are (also) processed because they are used as leaf +// nodes containing (only) UnixFS data. +func ReadUnixFSNodeData(node ipld.Node) (data []byte, err error) { + switch node := node.(type) { + + case *dag.ProtoNode: + fsNode, err := FSNodeFromBytes(node.Data()) + if err != nil { + return nil, fmt.Errorf("incorrectly formatted protobuf: %s", err) + } + + switch fsNode.Type() { + case pb.Data_File, pb.Data_Raw: + return fsNode.Data(), nil + // Only leaf nodes (of type `Data_Raw`) contain data but due to a + // bug the `Data_File` type (normally used for internal nodes) is + // also used for leaf nodes, so both types are accepted here + // (see the `balanced` package for more details). + default: + return nil, fmt.Errorf("found %s node in unexpected place", + fsNode.Type().String()) + } + + case *dag.RawNode: + return node.RawData(), nil + + default: + return nil, ErrUnrecognizedType + // TODO: To avoid rewriting the error message, but a different error from + // `unixfs.ErrUnrecognizedType` should be used (defining it in the + // `merkledag` or `go-ipld-format` packages). + } +} + +// Extract the `unixfs.FSNode` from the `ipld.Node` (assuming this +// was implemented by a `mdag.ProtoNode`). +func ExtractFSNode(node ipld.Node) (*FSNode, error) { + protoNode, ok := node.(*dag.ProtoNode) + if !ok { + return nil, errors.New("expected a ProtoNode as internal node") + } + + fsNode, err := FSNodeFromBytes(protoNode.Data()) + if err != nil { + return nil, err + } + + return fsNode, nil +} diff --git a/vendor/github.com/ipfs/go-verifcid/.travis.yml b/vendor/github.com/ipfs/go-verifcid/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/go-verifcid/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/go-verifcid/go.mod b/vendor/github.com/ipfs/go-verifcid/go.mod new file mode 100644 index 00000000..5db3e877 --- /dev/null +++ b/vendor/github.com/ipfs/go-verifcid/go.mod @@ -0,0 +1,6 @@ +module github.com/ipfs/go-verifcid + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/go-verifcid/go.sum b/vendor/github.com/ipfs/go-verifcid/go.sum new file mode 100644 index 00000000..4525c37e --- /dev/null +++ b/vendor/github.com/ipfs/go-verifcid/go.sum @@ -0,0 +1,22 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/ipfs/go-verifcid/package.json b/vendor/github.com/ipfs/go-verifcid/package.json new file mode 100644 index 00000000..a066b1d8 --- /dev/null +++ b/vendor/github.com/ipfs/go-verifcid/package.json @@ -0,0 +1,28 @@ +{ + "author": "why", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/ipfs/go-verifcid" + }, + "gxDependencies": [ + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-verifcid", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.2" +} + diff --git a/vendor/github.com/ipfs/go-verifcid/validate.go b/vendor/github.com/ipfs/go-verifcid/validate.go new file mode 100644 index 00000000..8a76e493 --- /dev/null +++ b/vendor/github.com/ipfs/go-verifcid/validate.go @@ -0,0 +1,62 @@ +package verifcid + +import ( + "fmt" + + cid "github.com/ipfs/go-cid" + mh "github.com/multiformats/go-multihash" +) + +var ErrPossiblyInsecureHashFunction = fmt.Errorf("potentially insecure hash functions not allowed") +var ErrBelowMinimumHashLength = fmt.Errorf("hashes must be at %d least bytes long", minimumHashLength) + +const minimumHashLength = 20 + +var goodset = map[uint64]bool{ + mh.SHA2_256: true, + mh.SHA2_512: true, + mh.SHA3_224: true, + mh.SHA3_256: true, + mh.SHA3_384: true, + mh.SHA3_512: true, + mh.SHAKE_256: true, + mh.DBL_SHA2_256: true, + mh.KECCAK_224: true, + mh.KECCAK_256: true, + mh.KECCAK_384: true, + mh.KECCAK_512: true, + mh.ID: true, + + mh.SHA1: true, // not really secure but still useful +} + +func IsGoodHash(code uint64) bool { + good, found := goodset[code] + if good { + return true + } + + if !found { + if code >= mh.BLAKE2B_MIN+19 && code <= mh.BLAKE2B_MAX { + return true + } + if code >= mh.BLAKE2S_MIN+19 && code <= mh.BLAKE2S_MAX { + return true + } + } + + return false +} + +func ValidateCid(c cid.Cid) error { + pref := c.Prefix() + if !IsGoodHash(pref.MhType) { + return ErrPossiblyInsecureHashFunction + } + + if pref.MhType != mh.ID && pref.MhLength < minimumHashLength { + return ErrBelowMinimumHashLength + } + + return nil +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/.travis.yml b/vendor/github.com/ipfs/interface-go-ipfs-core/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/LICENSE b/vendor/github.com/ipfs/interface-go-ipfs-core/LICENSE new file mode 100644 index 00000000..14121ca7 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/Makefile b/vendor/github.com/ipfs/interface-go-ipfs-core/Makefile new file mode 100644 index 00000000..89fc88d7 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/Makefile @@ -0,0 +1,16 @@ +all: deps +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go +deps: gx + gx --verbose install --global + gx-go rewrite +test: deps + gx test -v -race -coverprofile=coverage.txt -covermode=atomic . +rw: + gx-go rewrite +rwundo: + gx-go rewrite --undo +publish: rwundo + gx publish +.PHONY: all gx deps test rw rwundo publish diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/block.go b/vendor/github.com/ipfs/interface-go-ipfs-core/block.go new file mode 100644 index 00000000..b105b079 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/block.go @@ -0,0 +1,37 @@ +package iface + +import ( + "context" + path "github.com/ipfs/interface-go-ipfs-core/path" + "io" + + "github.com/ipfs/interface-go-ipfs-core/options" +) + +// BlockStat contains information about a block +type BlockStat interface { + // Size is the size of a block + Size() int + + // Path returns path to the block + Path() path.Resolved +} + +// BlockAPI specifies the interface to the block layer +type BlockAPI interface { + // Put imports raw block data, hashing it using specified settings. + Put(context.Context, io.Reader, ...options.BlockPutOption) (BlockStat, error) + + // Get attempts to resolve the path and return a reader for data in the block + Get(context.Context, path.Path) (io.Reader, error) + + // Rm removes the block specified by the path from local blockstore. + // By default an error will be returned if the block can't be found locally. + // + // NOTE: If the specified block is pinned it won't be removed and no error + // will be returned + Rm(context.Context, path.Path, ...options.BlockRmOption) error + + // Stat returns information on + Stat(context.Context, path.Path) (BlockStat, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/coreapi.go b/vendor/github.com/ipfs/interface-go-ipfs-core/coreapi.go new file mode 100644 index 00000000..12cb166a --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/coreapi.go @@ -0,0 +1,56 @@ +// Package iface defines IPFS Core API which is a set of interfaces used to +// interact with IPFS nodes. +package iface + +import ( + "context" + path "github.com/ipfs/interface-go-ipfs-core/path" + + "github.com/ipfs/interface-go-ipfs-core/options" + + ipld "github.com/ipfs/go-ipld-format" +) + +// CoreAPI defines an unified interface to IPFS for Go programs +type CoreAPI interface { + // Unixfs returns an implementation of Unixfs API + Unixfs() UnixfsAPI + + // Block returns an implementation of Block API + Block() BlockAPI + + // Dag returns an implementation of Dag API + Dag() APIDagService + + // Name returns an implementation of Name API + Name() NameAPI + + // Key returns an implementation of Key API + Key() KeyAPI + + // Pin returns an implementation of Pin API + Pin() PinAPI + + // ObjectAPI returns an implementation of Object API + Object() ObjectAPI + + // Dht returns an implementation of Dht API + Dht() DhtAPI + + // Swarm returns an implementation of Swarm API + Swarm() SwarmAPI + + // PubSub returns an implementation of PubSub API + PubSub() PubSubAPI + + // ResolvePath resolves the path using Unixfs resolver + ResolvePath(context.Context, path.Path) (path.Resolved, error) + + // ResolveNode resolves the path (if not resolved already) using Unixfs + // resolver, gets and returns the resolved Node + ResolveNode(context.Context, path.Path) (ipld.Node, error) + + // WithOptions creates new instance of CoreAPI based on this instance with + // a set of options applied + WithOptions(...options.ApiOption) (CoreAPI, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/dag.go b/vendor/github.com/ipfs/interface-go-ipfs-core/dag.go new file mode 100644 index 00000000..3cc3aeb4 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/dag.go @@ -0,0 +1,13 @@ +package iface + +import ( + ipld "github.com/ipfs/go-ipld-format" +) + +// APIDagService extends ipld.DAGService +type APIDagService interface { + ipld.DAGService + + // Pinning returns special NodeAdder which recursively pins added nodes + Pinning() ipld.NodeAdder +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/dht.go b/vendor/github.com/ipfs/interface-go-ipfs-core/dht.go new file mode 100644 index 00000000..0cb7893e --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/dht.go @@ -0,0 +1,27 @@ +package iface + +import ( + "context" + path "github.com/ipfs/interface-go-ipfs-core/path" + + "github.com/ipfs/interface-go-ipfs-core/options" + + "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +// DhtAPI specifies the interface to the DHT +// Note: This API will likely get deprecated in near future, see +// https://github.com/ipfs/interface-ipfs-core/issues/249 for more context. +type DhtAPI interface { + // FindPeer queries the DHT for all of the multiaddresses associated with a + // Peer ID + FindPeer(context.Context, peer.ID) (pstore.PeerInfo, error) + + // FindProviders finds peers in the DHT who can provide a specific value + // given a key. + FindProviders(context.Context, path.Path, ...options.DhtFindProvidersOption) (<-chan pstore.PeerInfo, error) + + // Provide announces to the network that you are providing given values + Provide(context.Context, path.Path, ...options.DhtProvideOption) error +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/errors.go b/vendor/github.com/ipfs/interface-go-ipfs-core/errors.go new file mode 100644 index 00000000..e0bd7805 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/errors.go @@ -0,0 +1,10 @@ +package iface + +import "errors" + +var ( + ErrIsDir = errors.New("this dag node is a directory") + ErrNotFile = errors.New("this dag node is not a regular file") + ErrOffline = errors.New("this action must be run in online mode, try running 'ipfs daemon' first") + ErrNotSupported = errors.New("operation not supported") +) diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/go.mod b/vendor/github.com/ipfs/interface-go-ipfs-core/go.mod new file mode 100644 index 00000000..45826085 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/go.mod @@ -0,0 +1,17 @@ +module github.com/ipfs/interface-go-ipfs-core + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-ipfs-files v0.0.2 + github.com/ipfs/go-ipld-cbor v0.0.1 + github.com/ipfs/go-ipld-format v0.0.1 + github.com/ipfs/go-merkledag v0.0.3 + github.com/ipfs/go-path v0.0.3 + github.com/ipfs/go-unixfs v0.0.4 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/go.sum b/vendor/github.com/ipfs/interface-go-ipfs-core/go.sum new file mode 100644 index 00000000..ada0df62 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/go.sum @@ -0,0 +1,312 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/Stebalien/go-bitfield v0.0.0-20180330043415-076a62f9ce6e/go.mod h1:3oM7gXIttpYDAJXpVNnSCiUMYBLIZ6cb1t+Ip982MRo= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824 h1:TF4mX7zXpeyz/xintezebSa7ZDxAGBnqDwcoobvaz2o= +github.com/gxed/pubsub v0.0.0-20180201040156-26ebdf44f824/go.mod h1:OiEWyHgK+CWrmOlVquHaIK1vhpUJydC9m0Je6mhaiNE= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/bbloom v0.0.1 h1:s7KkiBPfxCeDVo47KySjK0ACPc5GJRUxFpdyWEuDjhw= +github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/ipfs/go-bitswap v0.0.3 h1:uFcSI9dkjUn67S7IM60vr2wA27aAvn8o9xYjaQCug3o= +github.com/ipfs/go-bitswap v0.0.3/go.mod h1:jadAZYsP/tcRMl47ZhFxhaNuDQoXawT8iHMg+iFoQbg= +github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= +github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-blockservice v0.0.3 h1:40OvwrxeudTAlUGUAKNYnNPcwQeLtXedjzTWecnUinQ= +github.com/ipfs/go-blockservice v0.0.3/go.mod h1:/NNihwTi6V2Yr6g8wBI+BSwPuURpBRMtYNGrlxZ8KuI= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-blockstore v0.0.1 h1:O9n3PbmTYZoNhkgkEyrXTznbmktIXif62xLX+8dPHzc= +github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-chunker v0.0.1 h1:cHUUxKFQ99pozdahi+uSC/3Y6HeRpi9oTeUHbE27SEw= +github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1 h1:LJXIo9W7CAmugqI+uofioIpRb6rY30GUu7G6LUfpMvM= +github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1 h1:P56jYKZF7lDDOLx5SotVh5KFxoY6C81I1NSHW1FxGew= +github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= +github.com/ipfs/go-ipfs-files v0.0.1 h1:OroTsI58plHGX70HPLKy6LQhPR3HZJ5ip61fYlo6POM= +github.com/ipfs/go-ipfs-files v0.0.1/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-files v0.0.2 h1:fEEjF4H+1t8SFOHqUGp0KqcwgIRlbD2bu8CAS2sIggE= +github.com/ipfs/go-ipfs-files v0.0.2/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= +github.com/ipfs/go-ipfs-flags v0.0.1 h1:OH5cEkJYL0QgA+bvD55TNG9ud8HA2Nqaav47b2c/UJk= +github.com/ipfs/go-ipfs-flags v0.0.1/go.mod h1:RnXBb9WV53GSfTrSDVK61NLTFKvWc60n+K9EgCDh+rA= +github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs= +github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A= +github.com/ipfs/go-ipfs-pq v0.0.1 h1:zgUotX8dcAB/w/HidJh1zzc1yFq6Vm8J7T2F4itj/RU= +github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= +github.com/ipfs/go-ipfs-routing v0.0.1 h1:394mZeTLcbM/LDO12PneBYvkZAUA+nRnmC0lAzDXKOY= +github.com/ipfs/go-ipfs-routing v0.0.1/go.mod h1:k76lf20iKFxQTjcJokbPM9iBXVXVZhcOwc360N4nuKs= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipld-cbor v0.0.1 h1:g7yh27SznWP4CUbkFgjR+WQRjEeyxCpTR4iKVmXx1wA= +github.com/ipfs/go-ipld-cbor v0.0.1/go.mod h1:RXHr8s4k0NE0TKhnrxqZC9M888QfsBN9rhS5NjfKzY8= +github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80= +github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-merkledag v0.0.3 h1:A5DlOMzqTRDVmdgkf3dzCKCFmVWH4Zqwb0cbYXUs+Ro= +github.com/ipfs/go-merkledag v0.0.3/go.mod h1:Oc5kIXLHokkE1hWGMBHw+oxehkAaTOqtEb7Zbh6BhLA= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-path v0.0.3 h1:G/VFcCMXtp36JUPPyytYQ1I3UsBUBf47M//uSdTLnFg= +github.com/ipfs/go-path v0.0.3/go.mod h1:zIRQUez3LuQIU25zFjC2hpBTHimWx7VK5bjZgRLbbdo= +github.com/ipfs/go-unixfs v0.0.3 h1:09koecZaoJVoYy6Wkd/vo1lyQ4AdgAe83eJylQ7gAZw= +github.com/ipfs/go-unixfs v0.0.3/go.mod h1:FX/6aS/Xg95JRc6UMyiMdZeNn+N5VkD8/yfLNwKW0Ks= +github.com/ipfs/go-unixfs v0.0.4 h1:IApzQ+SnY0tfjqM7aU2b80CFYLZNHvhLmEZDIWr4e/E= +github.com/ipfs/go-unixfs v0.0.4/go.mod h1:eIo/p9ADu/MFOuyxzwU+Th8D6xoxU//r590vUpWyfz8= +github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= +github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992 h1:bzMe+2coZJYHnhGgVlcQKuRy4FSny4ds8dLQjw5P1XE= +github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436 h1:qOpVTI+BrstcjTZLm2Yz/3sOnqkzj3FQoh0g+E5s3Gc= +github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10 h1:xQJI9OEiErEQ++DoXOHqEpzsGMrAv2Q2jyCpi7DmfpQ= +golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/key.go b/vendor/github.com/ipfs/interface-go-ipfs-core/key.go new file mode 100644 index 00000000..e7fb3f44 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/key.go @@ -0,0 +1,42 @@ +package iface + +import ( + "context" + path "github.com/ipfs/interface-go-ipfs-core/path" + + "github.com/ipfs/interface-go-ipfs-core/options" + + "github.com/libp2p/go-libp2p-peer" +) + +// Key specifies the interface to Keys in KeyAPI Keystore +type Key interface { + // Key returns key name + Name() string + + // Path returns key path + Path() path.Path + + // ID returns key PeerID + ID() peer.ID +} + +// KeyAPI specifies the interface to Keystore +type KeyAPI interface { + // Generate generates new key, stores it in the keystore under the specified + // name and returns a base58 encoded multihash of it's public key + Generate(ctx context.Context, name string, opts ...options.KeyGenerateOption) (Key, error) + + // Rename renames oldName key to newName. Returns the key and whether another + // key was overwritten, or an error + Rename(ctx context.Context, oldName string, newName string, opts ...options.KeyRenameOption) (Key, bool, error) + + // List lists keys stored in keystore + List(ctx context.Context) ([]Key, error) + + // Self returns the 'main' node key + Self(ctx context.Context) (Key, error) + + // Remove removes keys from keystore. Returns ipns path of the removed key + Remove(ctx context.Context, name string) (Key, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/name.go b/vendor/github.com/ipfs/interface-go-ipfs-core/name.go new file mode 100644 index 00000000..3dc9f687 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/name.go @@ -0,0 +1,47 @@ +package iface + +import ( + "context" + "errors" + path "github.com/ipfs/interface-go-ipfs-core/path" + + "github.com/ipfs/interface-go-ipfs-core/options" +) + +var ErrResolveFailed = errors.New("could not resolve name") + +// IpnsEntry specifies the interface to IpnsEntries +type IpnsEntry interface { + // Name returns IpnsEntry name + Name() string + // Value returns IpnsEntry value + Value() path.Path +} + +type IpnsResult struct { + path.Path + Err error +} + +// NameAPI specifies the interface to IPNS. +// +// IPNS is a PKI namespace, where names are the hashes of public keys, and the +// private key enables publishing new (signed) values. In both publish and +// resolve, the default name used is the node's own PeerID, which is the hash of +// its public key. +// +// You can use .Key API to list and generate more names and their respective keys. +type NameAPI interface { + // Publish announces new IPNS name + Publish(ctx context.Context, path path.Path, opts ...options.NamePublishOption) (IpnsEntry, error) + + // Resolve attempts to resolve the newest version of the specified name + Resolve(ctx context.Context, name string, opts ...options.NameResolveOption) (path.Path, error) + + // Search is a version of Resolve which outputs paths as they are discovered, + // reducing the time to first entry + // + // Note: by default, all paths read from the channel are considered unsafe, + // except the latest (last path in channel read buffer). + Search(ctx context.Context, name string, opts ...options.NameResolveOption) (<-chan IpnsResult, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/object.go b/vendor/github.com/ipfs/interface-go-ipfs-core/object.go new file mode 100644 index 00000000..86536d42 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/object.go @@ -0,0 +1,107 @@ +package iface + +import ( + "context" + path "github.com/ipfs/interface-go-ipfs-core/path" + "io" + + "github.com/ipfs/interface-go-ipfs-core/options" + + "github.com/ipfs/go-cid" + ipld "github.com/ipfs/go-ipld-format" +) + +// ObjectStat provides information about dag nodes +type ObjectStat struct { + // Cid is the CID of the node + Cid cid.Cid + + // NumLinks is number of links the node contains + NumLinks int + + // BlockSize is size of the raw serialized node + BlockSize int + + // LinksSize is size of the links block section + LinksSize int + + // DataSize is the size of data block section + DataSize int + + // CumulativeSize is size of the tree (BlockSize + link sizes) + CumulativeSize int +} + +// ChangeType denotes type of change in ObjectChange +type ChangeType int + +const ( + // DiffAdd is set when a link was added to the graph + DiffAdd ChangeType = iota + + // DiffRemove is set when a link was removed from the graph + DiffRemove + + // DiffMod is set when a link was changed in the graph + DiffMod +) + +// ObjectChange represents a change ia a graph +type ObjectChange struct { + // Type of the change, either: + // * DiffAdd - Added a link + // * DiffRemove - Removed a link + // * DiffMod - Modified a link + Type ChangeType + + // Path to the changed link + Path string + + // Before holds the link path before the change. Note that when a link is + // added, this will be nil. + Before path.Resolved + + // After holds the link path after the change. Note that when a link is + // removed, this will be nil. + After path.Resolved +} + +// ObjectAPI specifies the interface to MerkleDAG and contains useful utilities +// for manipulating MerkleDAG data structures. +type ObjectAPI interface { + // New creates new, empty (by default) dag-node. + New(context.Context, ...options.ObjectNewOption) (ipld.Node, error) + + // Put imports the data into merkledag + Put(context.Context, io.Reader, ...options.ObjectPutOption) (path.Resolved, error) + + // Get returns the node for the path + Get(context.Context, path.Path) (ipld.Node, error) + + // Data returns reader for data of the node + Data(context.Context, path.Path) (io.Reader, error) + + // Links returns lint or links the node contains + Links(context.Context, path.Path) ([]*ipld.Link, error) + + // Stat returns information about the node + Stat(context.Context, path.Path) (*ObjectStat, error) + + // AddLink adds a link under the specified path. child path can point to a + // subdirectory within the patent which must be present (can be overridden + // with WithCreate option). + AddLink(ctx context.Context, base path.Path, name string, child path.Path, opts ...options.ObjectAddLinkOption) (path.Resolved, error) + + // RmLink removes a link from the node + RmLink(ctx context.Context, base path.Path, link string) (path.Resolved, error) + + // AppendData appends data to the node + AppendData(context.Context, path.Path, io.Reader) (path.Resolved, error) + + // SetData sets the data contained in the node + SetData(context.Context, path.Path, io.Reader) (path.Resolved, error) + + // Diff returns a set of changes needed to transform the first object into the + // second. + Diff(context.Context, path.Path, path.Path) ([]ObjectChange, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/block.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/block.go new file mode 100644 index 00000000..043dfdea --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/block.go @@ -0,0 +1,126 @@ +package options + +import ( + "fmt" + cid "github.com/ipfs/go-cid" + mh "github.com/multiformats/go-multihash" +) + +type BlockPutSettings struct { + Codec string + MhType uint64 + MhLength int + Pin bool +} + +type BlockRmSettings struct { + Force bool +} + +type BlockPutOption func(*BlockPutSettings) error +type BlockRmOption func(*BlockRmSettings) error + +func BlockPutOptions(opts ...BlockPutOption) (*BlockPutSettings, cid.Prefix, error) { + options := &BlockPutSettings{ + Codec: "", + MhType: mh.SHA2_256, + MhLength: -1, + Pin: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, cid.Prefix{}, err + } + } + + var pref cid.Prefix + pref.Version = 1 + + if options.Codec == "" { + if options.MhType != mh.SHA2_256 || (options.MhLength != -1 && options.MhLength != 32) { + options.Codec = "protobuf" + } else { + options.Codec = "v0" + } + } + + if options.Codec == "v0" && options.MhType == mh.SHA2_256 { + pref.Version = 0 + } + + formatval, ok := cid.Codecs[options.Codec] + if !ok { + return nil, cid.Prefix{}, fmt.Errorf("unrecognized format: %s", options.Codec) + } + + if options.Codec == "v0" { + if options.MhType != mh.SHA2_256 || (options.MhLength != -1 && options.MhLength != 32) { + return nil, cid.Prefix{}, fmt.Errorf("only sha2-255-32 is allowed with CIDv0") + } + } + + pref.Codec = formatval + + pref.MhType = options.MhType + pref.MhLength = options.MhLength + + return options, pref, nil +} + +func BlockRmOptions(opts ...BlockRmOption) (*BlockRmSettings, error) { + options := &BlockRmSettings{ + Force: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +type blockOpts struct{} + +var Block blockOpts + +// Format is an option for Block.Put which specifies the multicodec to use to +// serialize the object. Default is "v0" +func (blockOpts) Format(codec string) BlockPutOption { + return func(settings *BlockPutSettings) error { + settings.Codec = codec + return nil + } +} + +// Hash is an option for Block.Put which specifies the multihash settings to use +// when hashing the object. Default is mh.SHA2_256 (0x12). +// If mhLen is set to -1, default length for the hash will be used +func (blockOpts) Hash(mhType uint64, mhLen int) BlockPutOption { + return func(settings *BlockPutSettings) error { + settings.MhType = mhType + settings.MhLength = mhLen + return nil + } +} + +// Pin is an option for Block.Put which specifies whether to (recursively) pin +// added blocks +func (blockOpts) Pin(pin bool) BlockPutOption { + return func(settings *BlockPutSettings) error { + settings.Pin = pin + return nil + } +} + +// Force is an option for Block.Rm which, when set to true, will ignore +// non-existing blocks +func (blockOpts) Force(force bool) BlockRmOption { + return func(settings *BlockRmSettings) error { + settings.Force = force + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/dht.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/dht.go new file mode 100644 index 00000000..e13e1602 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/dht.go @@ -0,0 +1,62 @@ +package options + +type DhtProvideSettings struct { + Recursive bool +} + +type DhtFindProvidersSettings struct { + NumProviders int +} + +type DhtProvideOption func(*DhtProvideSettings) error +type DhtFindProvidersOption func(*DhtFindProvidersSettings) error + +func DhtProvideOptions(opts ...DhtProvideOption) (*DhtProvideSettings, error) { + options := &DhtProvideSettings{ + Recursive: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +func DhtFindProvidersOptions(opts ...DhtFindProvidersOption) (*DhtFindProvidersSettings, error) { + options := &DhtFindProvidersSettings{ + NumProviders: 20, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +type dhtOpts struct{} + +var Dht dhtOpts + +// Recursive is an option for Dht.Provide which specifies whether to provide +// the given path recursively +func (dhtOpts) Recursive(recursive bool) DhtProvideOption { + return func(settings *DhtProvideSettings) error { + settings.Recursive = recursive + return nil + } +} + +// NumProviders is an option for Dht.FindProviders which specifies the +// number of peers to look for. Default is 20 +func (dhtOpts) NumProviders(numProviders int) DhtFindProvidersOption { + return func(settings *DhtFindProvidersSettings) error { + settings.NumProviders = numProviders + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/global.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/global.go new file mode 100644 index 00000000..90e2586f --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/global.go @@ -0,0 +1,47 @@ +package options + +type ApiSettings struct { + Offline bool + FetchBlocks bool +} + +type ApiOption func(*ApiSettings) error + +func ApiOptions(opts ...ApiOption) (*ApiSettings, error) { + options := &ApiSettings{ + Offline: false, + FetchBlocks: true, + } + + return ApiOptionsTo(options, opts...) +} + +func ApiOptionsTo(options *ApiSettings, opts ...ApiOption) (*ApiSettings, error) { + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +type apiOpts struct{} + +var Api apiOpts + +func (apiOpts) Offline(offline bool) ApiOption { + return func(settings *ApiSettings) error { + settings.Offline = offline + return nil + } +} + +// FetchBlocks when set to false prevents api from fetching blocks from the +// network while allowing other services such as IPNS to still be online +func (apiOpts) FetchBlocks(fetch bool) ApiOption { + return func(settings *ApiSettings) error { + settings.FetchBlocks = fetch + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/key.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/key.go new file mode 100644 index 00000000..80beea35 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/key.go @@ -0,0 +1,87 @@ +package options + +const ( + RSAKey = "rsa" + Ed25519Key = "ed25519" + + DefaultRSALen = 2048 +) + +type KeyGenerateSettings struct { + Algorithm string + Size int +} + +type KeyRenameSettings struct { + Force bool +} + +type KeyGenerateOption func(*KeyGenerateSettings) error +type KeyRenameOption func(*KeyRenameSettings) error + +func KeyGenerateOptions(opts ...KeyGenerateOption) (*KeyGenerateSettings, error) { + options := &KeyGenerateSettings{ + Algorithm: RSAKey, + Size: -1, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +func KeyRenameOptions(opts ...KeyRenameOption) (*KeyRenameSettings, error) { + options := &KeyRenameSettings{ + Force: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +type keyOpts struct{} + +var Key keyOpts + +// Type is an option for Key.Generate which specifies which algorithm +// should be used for the key. Default is options.RSAKey +// +// Supported key types: +// * options.RSAKey +// * options.Ed25519Key +func (keyOpts) Type(algorithm string) KeyGenerateOption { + return func(settings *KeyGenerateSettings) error { + settings.Algorithm = algorithm + return nil + } +} + +// Size is an option for Key.Generate which specifies the size of the key to +// generated. Default is -1 +// +// value of -1 means 'use default size for key type': +// * 2048 for RSA +func (keyOpts) Size(size int) KeyGenerateOption { + return func(settings *KeyGenerateSettings) error { + settings.Size = size + return nil + } +} + +// Force is an option for Key.Rename which specifies whether to allow to +// replace existing keys. +func (keyOpts) Force(force bool) KeyRenameOption { + return func(settings *KeyRenameSettings) error { + settings.Force = force + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/name.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/name.go new file mode 100644 index 00000000..59aaf2ca --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/name.go @@ -0,0 +1,122 @@ +package options + +import ( + "time" + + ropts "github.com/ipfs/interface-go-ipfs-core/options/namesys" +) + +const ( + DefaultNameValidTime = 24 * time.Hour +) + +type NamePublishSettings struct { + ValidTime time.Duration + Key string + + TTL *time.Duration + + AllowOffline bool +} + +type NameResolveSettings struct { + Cache bool + + ResolveOpts []ropts.ResolveOpt +} + +type NamePublishOption func(*NamePublishSettings) error +type NameResolveOption func(*NameResolveSettings) error + +func NamePublishOptions(opts ...NamePublishOption) (*NamePublishSettings, error) { + options := &NamePublishSettings{ + ValidTime: DefaultNameValidTime, + Key: "self", + + AllowOffline: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + + return options, nil +} + +func NameResolveOptions(opts ...NameResolveOption) (*NameResolveSettings, error) { + options := &NameResolveSettings{ + Cache: true, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + + return options, nil +} + +type nameOpts struct{} + +var Name nameOpts + +// ValidTime is an option for Name.Publish which specifies for how long the +// entry will remain valid. Default value is 24h +func (nameOpts) ValidTime(validTime time.Duration) NamePublishOption { + return func(settings *NamePublishSettings) error { + settings.ValidTime = validTime + return nil + } +} + +// Key is an option for Name.Publish which specifies the key to use for +// publishing. Default value is "self" which is the node's own PeerID. +// The key parameter must be either PeerID or keystore key alias. +// +// You can use KeyAPI to list and generate more names and their respective keys. +func (nameOpts) Key(key string) NamePublishOption { + return func(settings *NamePublishSettings) error { + settings.Key = key + return nil + } +} + +// AllowOffline is an option for Name.Publish which specifies whether to allow +// publishing when the node is offline. Default value is false +func (nameOpts) AllowOffline(allow bool) NamePublishOption { + return func(settings *NamePublishSettings) error { + settings.AllowOffline = allow + return nil + } +} + +// TTL is an option for Name.Publish which specifies the time duration the +// published record should be cached for (caution: experimental). +func (nameOpts) TTL(ttl time.Duration) NamePublishOption { + return func(settings *NamePublishSettings) error { + settings.TTL = &ttl + return nil + } +} + +// Cache is an option for Name.Resolve which specifies if cache should be used. +// Default value is true +func (nameOpts) Cache(cache bool) NameResolveOption { + return func(settings *NameResolveSettings) error { + settings.Cache = cache + return nil + } +} + +// +func (nameOpts) ResolveOption(opt ropts.ResolveOpt) NameResolveOption { + return func(settings *NameResolveSettings) error { + settings.ResolveOpts = append(settings.ResolveOpts, opt) + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/namesys/opts.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/namesys/opts.go new file mode 100644 index 00000000..ee2bd5ac --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/namesys/opts.go @@ -0,0 +1,74 @@ +package nsopts + +import ( + "time" +) + +const ( + // DefaultDepthLimit is the default depth limit used by Resolve. + DefaultDepthLimit = 32 + + // UnlimitedDepth allows infinite recursion in Resolve. You + // probably don't want to use this, but it's here if you absolutely + // trust resolution to eventually complete and can't put an upper + // limit on how many steps it will take. + UnlimitedDepth = 0 +) + +// ResolveOpts specifies options for resolving an IPNS path +type ResolveOpts struct { + // Recursion depth limit + Depth uint + // The number of IPNS records to retrieve from the DHT + // (the best record is selected from this set) + DhtRecordCount uint + // The amount of time to wait for DHT records to be fetched + // and verified. A zero value indicates that there is no explicit + // timeout (although there is an implicit timeout due to dial + // timeouts within the DHT) + DhtTimeout time.Duration +} + +// DefaultResolveOpts returns the default options for resolving +// an IPNS path +func DefaultResolveOpts() ResolveOpts { + return ResolveOpts{ + Depth: DefaultDepthLimit, + DhtRecordCount: 16, + DhtTimeout: time.Minute, + } +} + +// ResolveOpt is used to set an option +type ResolveOpt func(*ResolveOpts) + +// Depth is the recursion depth limit +func Depth(depth uint) ResolveOpt { + return func(o *ResolveOpts) { + o.Depth = depth + } +} + +// DhtRecordCount is the number of IPNS records to retrieve from the DHT +func DhtRecordCount(count uint) ResolveOpt { + return func(o *ResolveOpts) { + o.DhtRecordCount = count + } +} + +// DhtTimeout is the amount of time to wait for DHT records to be fetched +// and verified. A zero value indicates that there is no explicit timeout +func DhtTimeout(timeout time.Duration) ResolveOpt { + return func(o *ResolveOpts) { + o.DhtTimeout = timeout + } +} + +// ProcessOpts converts an array of ResolveOpt into a ResolveOpts object +func ProcessOpts(opts []ResolveOpt) ResolveOpts { + rsopts := DefaultResolveOpts() + for _, option := range opts { + option(&rsopts) + } + return rsopts +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/object.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/object.go new file mode 100644 index 00000000..e484a9f3 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/object.go @@ -0,0 +1,124 @@ +package options + +type ObjectNewSettings struct { + Type string +} + +type ObjectPutSettings struct { + InputEnc string + DataType string + Pin bool +} + +type ObjectAddLinkSettings struct { + Create bool +} + +type ObjectNewOption func(*ObjectNewSettings) error +type ObjectPutOption func(*ObjectPutSettings) error +type ObjectAddLinkOption func(*ObjectAddLinkSettings) error + +func ObjectNewOptions(opts ...ObjectNewOption) (*ObjectNewSettings, error) { + options := &ObjectNewSettings{ + Type: "empty", + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +func ObjectPutOptions(opts ...ObjectPutOption) (*ObjectPutSettings, error) { + options := &ObjectPutSettings{ + InputEnc: "json", + DataType: "text", + Pin: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +func ObjectAddLinkOptions(opts ...ObjectAddLinkOption) (*ObjectAddLinkSettings, error) { + options := &ObjectAddLinkSettings{ + Create: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +type objectOpts struct{} + +var Object objectOpts + +// Type is an option for Object.New which allows to change the type of created +// dag node. +// +// Supported types: +// * 'empty' - Empty node +// * 'unixfs-dir' - Empty UnixFS directory +func (objectOpts) Type(t string) ObjectNewOption { + return func(settings *ObjectNewSettings) error { + settings.Type = t + return nil + } +} + +// InputEnc is an option for Object.Put which specifies the input encoding of the +// data. Default is "json". +// +// Supported encodings: +// * "protobuf" +// * "json" +func (objectOpts) InputEnc(e string) ObjectPutOption { + return func(settings *ObjectPutSettings) error { + settings.InputEnc = e + return nil + } +} + +// DataType is an option for Object.Put which specifies the encoding of data +// field when using Json or XML input encoding. +// +// Supported types: +// * "text" (default) +// * "base64" +func (objectOpts) DataType(t string) ObjectPutOption { + return func(settings *ObjectPutSettings) error { + settings.DataType = t + return nil + } +} + +// Pin is an option for Object.Put which specifies whether to pin the added +// objects, default is false +func (objectOpts) Pin(pin bool) ObjectPutOption { + return func(settings *ObjectPutSettings) error { + settings.Pin = pin + return nil + } +} + +// Create is an option for Object.AddLink which specifies whether create required +// directories for the child +func (objectOpts) Create(create bool) ObjectAddLinkOption { + return func(settings *ObjectAddLinkSettings) error { + settings.Create = create + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/pin.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/pin.go new file mode 100644 index 00000000..6b211bb7 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/pin.go @@ -0,0 +1,163 @@ +package options + +type PinAddSettings struct { + Recursive bool +} + +type PinLsSettings struct { + Type string +} + +// PinRmSettings represents the settings of pin rm command +type PinRmSettings struct { + Recursive bool +} + +type PinUpdateSettings struct { + Unpin bool +} + +type PinAddOption func(*PinAddSettings) error + +// PinRmOption pin rm option func +type PinRmOption func(*PinRmSettings) error + +// PinLsOption pin ls option func +type PinLsOption func(*PinLsSettings) error +type PinUpdateOption func(*PinUpdateSettings) error + +func PinAddOptions(opts ...PinAddOption) (*PinAddSettings, error) { + options := &PinAddSettings{ + Recursive: true, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + + return options, nil +} + +// PinRmOptions pin rm options +func PinRmOptions(opts ...PinRmOption) (*PinRmSettings, error) { + options := &PinRmSettings{ + Recursive: true, + } + + for _, opt := range opts { + if err := opt(options); err != nil { + return nil, err + } + } + + return options, nil +} + +func PinLsOptions(opts ...PinLsOption) (*PinLsSettings, error) { + options := &PinLsSettings{ + Type: "all", + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + + return options, nil +} + +func PinUpdateOptions(opts ...PinUpdateOption) (*PinUpdateSettings, error) { + options := &PinUpdateSettings{ + Unpin: true, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + + return options, nil +} + +type pinType struct{} + +type pinOpts struct { + Type pinType +} + +var Pin pinOpts + +// All is an option for Pin.Ls which will make it return all pins. It is +// the default +func (pinType) All() PinLsOption { + return Pin.pinType("all") +} + +// Recursive is an option for Pin.Ls which will make it only return recursive +// pins +func (pinType) Recursive() PinLsOption { + return Pin.pinType("recursive") +} + +// Direct is an option for Pin.Ls which will make it only return direct (non +// recursive) pins +func (pinType) Direct() PinLsOption { + return Pin.pinType("direct") +} + +// Indirect is an option for Pin.Ls which will make it only return indirect pins +// (objects referenced by other recursively pinned objects) +func (pinType) Indirect() PinLsOption { + return Pin.pinType("indirect") +} + +// Recursive is an option for Pin.Add which specifies whether to pin an entire +// object tree or just one object. Default: true +func (pinOpts) Recursive(recursive bool) PinAddOption { + return func(settings *PinAddSettings) error { + settings.Recursive = recursive + return nil + } +} + +// RmRecursive is an option for Pin.Rm which specifies whether to recursively +// unpin the object linked to by the specified object(s). This does not remove +// indirect pins referenced by other recursive pins. +func (pinOpts) RmRecursive(recursive bool) PinRmOption { + return func(settings *PinRmSettings) error { + settings.Recursive = recursive + return nil + } +} + +// Type is an option for Pin.Ls which allows to specify which pin types should +// be returned +// +// Supported values: +// * "direct" - directly pinned objects +// * "recursive" - roots of recursive pins +// * "indirect" - indirectly pinned objects (referenced by recursively pinned +// objects) +// * "all" - all pinned objects (default) +func (pinOpts) pinType(t string) PinLsOption { + return func(settings *PinLsSettings) error { + settings.Type = t + return nil + } +} + +// Unpin is an option for Pin.Update which specifies whether to remove the old pin. +// Default is true. +func (pinOpts) Unpin(unpin bool) PinUpdateOption { + return func(settings *PinUpdateSettings) error { + settings.Unpin = unpin + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/pubsub.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/pubsub.go new file mode 100644 index 00000000..c387d613 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/pubsub.go @@ -0,0 +1,58 @@ +package options + +type PubSubPeersSettings struct { + Topic string +} + +type PubSubSubscribeSettings struct { + Discover bool +} + +type PubSubPeersOption func(*PubSubPeersSettings) error +type PubSubSubscribeOption func(*PubSubSubscribeSettings) error + +func PubSubPeersOptions(opts ...PubSubPeersOption) (*PubSubPeersSettings, error) { + options := &PubSubPeersSettings{ + Topic: "", + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +func PubSubSubscribeOptions(opts ...PubSubSubscribeOption) (*PubSubSubscribeSettings, error) { + options := &PubSubSubscribeSettings{ + Discover: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + return options, nil +} + +type pubsubOpts struct{} + +var PubSub pubsubOpts + +func (pubsubOpts) Topic(topic string) PubSubPeersOption { + return func(settings *PubSubPeersSettings) error { + settings.Topic = topic + return nil + } +} + +func (pubsubOpts) Discover(discover bool) PubSubSubscribeOption { + return func(settings *PubSubSubscribeSettings) error { + settings.Discover = discover + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/options/unixfs.go b/vendor/github.com/ipfs/interface-go-ipfs-core/options/unixfs.go new file mode 100644 index 00000000..3fd96f77 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/options/unixfs.go @@ -0,0 +1,285 @@ +package options + +import ( + "errors" + "fmt" + + cid "github.com/ipfs/go-cid" + dag "github.com/ipfs/go-merkledag" + mh "github.com/multiformats/go-multihash" +) + +type Layout int + +const ( + BalancedLayout Layout = iota + TrickleLayout +) + +type UnixfsAddSettings struct { + CidVersion int + MhType uint64 + + Inline bool + InlineLimit int + RawLeaves bool + RawLeavesSet bool + + Chunker string + Layout Layout + + Pin bool + OnlyHash bool + FsCache bool + NoCopy bool + + Events chan<- interface{} + Silent bool + Progress bool +} + +type UnixfsLsSettings struct { + ResolveChildren bool +} + +type UnixfsAddOption func(*UnixfsAddSettings) error +type UnixfsLsOption func(*UnixfsLsSettings) error + +func UnixfsAddOptions(opts ...UnixfsAddOption) (*UnixfsAddSettings, cid.Prefix, error) { + options := &UnixfsAddSettings{ + CidVersion: -1, + MhType: mh.SHA2_256, + + Inline: false, + InlineLimit: 32, + RawLeaves: false, + RawLeavesSet: false, + + Chunker: "size-262144", + Layout: BalancedLayout, + + Pin: false, + OnlyHash: false, + FsCache: false, + NoCopy: false, + + Events: nil, + Silent: false, + Progress: false, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, cid.Prefix{}, err + } + } + + // nocopy -> rawblocks + if options.NoCopy && !options.RawLeaves { + // fixed? + if options.RawLeavesSet { + return nil, cid.Prefix{}, fmt.Errorf("nocopy option requires '--raw-leaves' to be enabled as well") + } + + // No, satisfy mandatory constraint. + options.RawLeaves = true + } + + // (hash != "sha2-256") -> CIDv1 + if options.MhType != mh.SHA2_256 { + switch options.CidVersion { + case 0: + return nil, cid.Prefix{}, errors.New("CIDv0 only supports sha2-256") + case 1, -1: + options.CidVersion = 1 + default: + return nil, cid.Prefix{}, fmt.Errorf("unknown CID version: %d", options.CidVersion) + } + } else { + if options.CidVersion < 0 { + // Default to CIDv0 + options.CidVersion = 0 + } + } + + // cidV1 -> raw blocks (by default) + if options.CidVersion > 0 && !options.RawLeavesSet { + options.RawLeaves = true + } + + prefix, err := dag.PrefixForCidVersion(options.CidVersion) + if err != nil { + return nil, cid.Prefix{}, err + } + + prefix.MhType = options.MhType + prefix.MhLength = -1 + + return options, prefix, nil +} + +func UnixfsLsOptions(opts ...UnixfsLsOption) (*UnixfsLsSettings, error) { + options := &UnixfsLsSettings{ + ResolveChildren: true, + } + + for _, opt := range opts { + err := opt(options) + if err != nil { + return nil, err + } + } + + return options, nil +} + +type unixfsOpts struct{} + +var Unixfs unixfsOpts + +// CidVersion specifies which CID version to use. Defaults to 0 unless an option +// that depends on CIDv1 is passed. +func (unixfsOpts) CidVersion(version int) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.CidVersion = version + return nil + } +} + +// Hash function to use. Implies CIDv1 if not set to sha2-256 (default). +// +// Table of functions is declared in https://github.com/multiformats/go-multihash/blob/master/multihash.go +func (unixfsOpts) Hash(mhtype uint64) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.MhType = mhtype + return nil + } +} + +// RawLeaves specifies whether to use raw blocks for leaves (data nodes with no +// links) instead of wrapping them with unixfs structures. +func (unixfsOpts) RawLeaves(enable bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.RawLeaves = enable + settings.RawLeavesSet = true + return nil + } +} + +// Inline tells the adder to inline small blocks into CIDs +func (unixfsOpts) Inline(enable bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Inline = enable + return nil + } +} + +// InlineLimit sets the amount of bytes below which blocks will be encoded +// directly into CID instead of being stored and addressed by it's hash. +// Specifying this option won't enable block inlining. For that use `Inline` +// option. Default: 32 bytes +// +// Note that while there is no hard limit on the number of bytes, it should be +// kept at a reasonably low value, such as 64; implementations may choose to +// reject anything larger. +func (unixfsOpts) InlineLimit(limit int) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.InlineLimit = limit + return nil + } +} + +// Chunker specifies settings for the chunking algorithm to use. +// +// Default: size-262144, formats: +// size-[bytes] - Simple chunker splitting data into blocks of n bytes +// rabin-[min]-[avg]-[max] - Rabin chunker +func (unixfsOpts) Chunker(chunker string) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Chunker = chunker + return nil + } +} + +// Layout tells the adder how to balance data between leaves. +// options.BalancedLayout is the default, it's optimized for static seekable +// files. +// options.TrickleLayout is optimized for streaming data, +func (unixfsOpts) Layout(layout Layout) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Layout = layout + return nil + } +} + +// Pin tells the adder to pin the file root recursively after adding +func (unixfsOpts) Pin(pin bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Pin = pin + return nil + } +} + +// HashOnly will make the adder calculate data hash without storing it in the +// blockstore or announcing it to the network +func (unixfsOpts) HashOnly(hashOnly bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.OnlyHash = hashOnly + return nil + } +} + +// Events specifies channel which will be used to report events about ongoing +// Add operation. +// +// Note that if this channel blocks it may slowdown the adder +func (unixfsOpts) Events(sink chan<- interface{}) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Events = sink + return nil + } +} + +// Silent reduces event output +func (unixfsOpts) Silent(silent bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Silent = silent + return nil + } +} + +// Progress tells the adder whether to enable progress events +func (unixfsOpts) Progress(enable bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.Progress = enable + return nil + } +} + +// FsCache tells the adder to check the filestore for pre-existing blocks +// +// Experimental +func (unixfsOpts) FsCache(enable bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.FsCache = enable + return nil + } +} + +// NoCopy tells the adder to add the files using filestore. Implies RawLeaves. +// +// Experimental +func (unixfsOpts) Nocopy(enable bool) UnixfsAddOption { + return func(settings *UnixfsAddSettings) error { + settings.NoCopy = enable + return nil + } +} + +func (unixfsOpts) ResolveChildren(resolve bool) UnixfsLsOption { + return func(settings *UnixfsLsSettings) error { + settings.ResolveChildren = resolve + return nil + } +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/package.json b/vendor/github.com/ipfs/interface-go-ipfs-core/package.json new file mode 100644 index 00000000..63933ad4 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/package.json @@ -0,0 +1,96 @@ +{ + "author": "magik6k", + "bugs": { + "url": "https://github.com/ipfs/interface-go-ipfs-core" + }, + "gx": { + "dvcsimport": "github.com/ipfs/interface-go-ipfs-core" + }, + "gxDependencies": [ + { + "author": "magik6k", + "hash": "QmRHcZ5ngUxZo8phLR3fpoqk9wA7VdGc5mhwkGSnB2nZ9F", + "name": "go-ipfs-files", + "version": "2.0.7" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "why", + "hash": "QmUquHAkyh9phs4ojSuHcHcZnUMGDwDNJZWnRXkNks1qLB", + "name": "go-path", + "version": "1.1.41" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmZ6nzCLwGLVfRzYLpD7pW6UNuBDKEcA2imJtVpbEx2rxy", + "name": "go-ipld-format", + "version": "0.8.1" + }, + { + "author": "whyrusleeping", + "hash": "QmVwsD9oGSAKcCoD4BGi3Hx8XRo4jNy6aMzsjDHVTgYv2D", + "name": "go-ipld-cbor", + "version": "1.5.10" + }, + { + "author": "why", + "hash": "QmY6UwsN3D6uoxrRkYpJ8Wos8R66gwLmdn3wy7jM7CCRQ1", + "name": "go-merkledag", + "version": "1.1.40" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "why", + "hash": "QmVmueix5wxmr8UWpfpcKw6F1xT7T8AS7CXQRM37BE29eX", + "name": "go-unixfs", + "version": "1.3.15" + }, + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + } + ], + "gxVersion": "0.14.0", + "language": "go", + "license": "", + "name": "interface-go-ipfs-core", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.16" +} + diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/path/path.go b/vendor/github.com/ipfs/interface-go-ipfs-core/path/path.go new file mode 100644 index 00000000..01b1673b --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/path/path.go @@ -0,0 +1,199 @@ +package path + +import ( + "strings" + + cid "github.com/ipfs/go-cid" + ipfspath "github.com/ipfs/go-path" +) + +// Path is a generic wrapper for paths used in the API. A path can be resolved +// to a CID using one of Resolve functions in the API. +// +// Paths must be prefixed with a valid prefix: +// +// * /ipfs - Immutable unixfs path (files) +// * /ipld - Immutable ipld path (data) +// * /ipns - Mutable names. Usually resolves to one of the immutable paths +//TODO: /local (MFS) +type Path interface { + // String returns the path as a string. + String() string + + // Namespace returns the first component of the path. + // + // For example path "/ipfs/QmHash", calling Namespace() will return "ipfs" + // + // Calling this method on invalid paths (IsValid() != nil) will result in + // empty string + Namespace() string + + // Mutable returns false if the data pointed to by this path in guaranteed + // to not change. + // + // Note that resolved mutable path can be immutable. + Mutable() bool + + // IsValid checks if this path is a valid ipfs Path, returning nil iff it is + // valid + IsValid() error +} + +// Resolved is a path which was resolved to the last resolvable node. +// ResolvedPaths are guaranteed to return nil from `IsValid` +type Resolved interface { + // Cid returns the CID of the node referenced by the path. Remainder of the + // path is guaranteed to be within the node. + // + // Examples: + // If you have 3 linked objects: QmRoot -> A -> B: + // + // cidB := {"foo": {"bar": 42 }} + // cidA := {"B": {"/": cidB }} + // cidRoot := {"A": {"/": cidA }} + // + // And resolve paths: + // + // * "/ipfs/${cidRoot}" + // * Calling Cid() will return `cidRoot` + // * Calling Root() will return `cidRoot` + // * Calling Remainder() will return `` + // + // * "/ipfs/${cidRoot}/A" + // * Calling Cid() will return `cidA` + // * Calling Root() will return `cidRoot` + // * Calling Remainder() will return `` + // + // * "/ipfs/${cidRoot}/A/B/foo" + // * Calling Cid() will return `cidB` + // * Calling Root() will return `cidRoot` + // * Calling Remainder() will return `foo` + // + // * "/ipfs/${cidRoot}/A/B/foo/bar" + // * Calling Cid() will return `cidB` + // * Calling Root() will return `cidRoot` + // * Calling Remainder() will return `foo/bar` + Cid() cid.Cid + + // Root returns the CID of the root object of the path + // + // Example: + // If you have 3 linked objects: QmRoot -> A -> B, and resolve path + // "/ipfs/QmRoot/A/B", the Root method will return the CID of object QmRoot + // + // For more examples see the documentation of Cid() method + Root() cid.Cid + + // Remainder returns unresolved part of the path + // + // Example: + // If you have 2 linked objects: QmRoot -> A, where A is a CBOR node + // containing the following data: + // + // {"foo": {"bar": 42 }} + // + // When resolving "/ipld/QmRoot/A/foo/bar", Remainder will return "foo/bar" + // + // For more examples see the documentation of Cid() method + Remainder() string + + Path +} + +// path implements coreiface.Path +type path struct { + path string +} + +// resolvedPath implements coreiface.resolvedPath +type resolvedPath struct { + path + cid cid.Cid + root cid.Cid + remainder string +} + +// Join appends provided segments to the base path +func Join(base Path, a ...string) Path { + s := strings.Join(append([]string{base.String()}, a...), "/") + return &path{path: s} +} + +// IpfsPath creates new /ipfs path from the provided CID +func IpfsPath(c cid.Cid) Resolved { + return &resolvedPath{ + path: path{"/ipfs/" + c.String()}, + cid: c, + root: c, + remainder: "", + } +} + +// IpldPath creates new /ipld path from the provided CID +func IpldPath(c cid.Cid) Resolved { + return &resolvedPath{ + path: path{"/ipld/" + c.String()}, + cid: c, + root: c, + remainder: "", + } +} + +// New parses string path to a Path +func New(p string) Path { + if pp, err := ipfspath.ParsePath(p); err == nil { + p = pp.String() + } + + return &path{path: p} +} + +// NewResolvedPath creates new Resolved path. This function performs no checks +// and is intended to be used by resolver implementations. Incorrect inputs may +// cause panics. Handle with care. +func NewResolvedPath(ipath ipfspath.Path, c cid.Cid, root cid.Cid, remainder string) Resolved { + return &resolvedPath{ + path: path{ipath.String()}, + cid: c, + root: root, + remainder: remainder, + } +} + +func (p *path) String() string { + return p.path +} + +func (p *path) Namespace() string { + ip, err := ipfspath.ParsePath(p.path) + if err != nil { + return "" + } + + if len(ip.Segments()) < 1 { + panic("path without namespace") // this shouldn't happen under any scenario + } + return ip.Segments()[0] +} + +func (p *path) Mutable() bool { + // TODO: MFS: check for /local + return p.Namespace() == "ipns" +} + +func (p *path) IsValid() error { + _, err := ipfspath.ParsePath(p.path) + return err +} + +func (p *resolvedPath) Cid() cid.Cid { + return p.cid +} + +func (p *resolvedPath) Root() cid.Cid { + return p.root +} + +func (p *resolvedPath) Remainder() string { + return p.remainder +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/pin.go b/vendor/github.com/ipfs/interface-go-ipfs-core/pin.go new file mode 100644 index 00000000..7df2956f --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/pin.go @@ -0,0 +1,55 @@ +package iface + +import ( + "context" + path "github.com/ipfs/interface-go-ipfs-core/path" + + "github.com/ipfs/interface-go-ipfs-core/options" +) + +// Pin holds information about pinned resource +type Pin interface { + // Path to the pinned object + Path() path.Resolved + + // Type of the pin + Type() string +} + +// PinStatus holds information about pin health +type PinStatus interface { + // Ok indicates whether the pin has been verified to be correct + Ok() bool + + // BadNodes returns any bad (usually missing) nodes from the pin + BadNodes() []BadPinNode +} + +// BadPinNode is a node that has been marked as bad by Pin.Verify +type BadPinNode interface { + // Path is the path of the node + Path() path.Resolved + + // Err is the reason why the node has been marked as bad + Err() error +} + +// PinAPI specifies the interface to pining +type PinAPI interface { + // Add creates new pin, be default recursive - pinning the whole referenced + // tree + Add(context.Context, path.Path, ...options.PinAddOption) error + + // Ls returns list of pinned objects on this node + Ls(context.Context, ...options.PinLsOption) ([]Pin, error) + + // Rm removes pin for object specified by the path + Rm(context.Context, path.Path, ...options.PinRmOption) error + + // Update changes one pin to another, skipping checks for matching paths in + // the old tree + Update(ctx context.Context, from path.Path, to path.Path, opts ...options.PinUpdateOption) error + + // Verify verifies the integrity of pinned objects + Verify(context.Context) (<-chan PinStatus, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/pubsub.go b/vendor/github.com/ipfs/interface-go-ipfs-core/pubsub.go new file mode 100644 index 00000000..212e7722 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/pubsub.go @@ -0,0 +1,48 @@ +package iface + +import ( + "context" + "io" + + options "github.com/ipfs/interface-go-ipfs-core/options" + + peer "github.com/libp2p/go-libp2p-peer" +) + +// PubSubSubscription is an active PubSub subscription +type PubSubSubscription interface { + io.Closer + + // Next return the next incoming message + Next(context.Context) (PubSubMessage, error) +} + +// PubSubMessage is a single PubSub message +type PubSubMessage interface { + // From returns id of a peer from which the message has arrived + From() peer.ID + + // Data returns the message body + Data() []byte + + // Seq returns message identifier + Seq() []byte + + // Topics returns list of topics this message was set to + Topics() []string +} + +// PubSubAPI specifies the interface to PubSub +type PubSubAPI interface { + // Ls lists subscribed topics by name + Ls(context.Context) ([]string, error) + + // Peers list peers we are currently pubsubbing with + Peers(context.Context, ...options.PubSubPeersOption) ([]peer.ID, error) + + // Publish a message to a given pubsub topic + Publish(context.Context, string, []byte) error + + // Subscribe to messages on a given topic + Subscribe(context.Context, string, ...options.PubSubSubscribeOption) (PubSubSubscription, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/swarm.go b/vendor/github.com/ipfs/interface-go-ipfs-core/swarm.go new file mode 100644 index 00000000..2e00ecbd --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/swarm.go @@ -0,0 +1,57 @@ +package iface + +import ( + "context" + "errors" + "time" + + net "github.com/libp2p/go-libp2p-net" + "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" +) + +var ( + ErrNotConnected = errors.New("not connected") + ErrConnNotFound = errors.New("conn not found") +) + +// ConnectionInfo contains information about a peer +type ConnectionInfo interface { + // ID returns PeerID + ID() peer.ID + + // Address returns the multiaddress via which we are connected with the peer + Address() ma.Multiaddr + + // Direction returns which way the connection was established + Direction() net.Direction + + // Latency returns last known round trip time to the peer + Latency() (time.Duration, error) + + // Streams returns list of streams established with the peer + Streams() ([]protocol.ID, error) +} + +// SwarmAPI specifies the interface to libp2p swarm +type SwarmAPI interface { + // Connect to a given peer + Connect(context.Context, pstore.PeerInfo) error + + // Disconnect from a given address + Disconnect(context.Context, ma.Multiaddr) error + + // Peers returns the list of peers we are connected to + Peers(context.Context) ([]ConnectionInfo, error) + + // KnownAddrs returns the list of all addresses this node is aware of + KnownAddrs(context.Context) (map[peer.ID][]ma.Multiaddr, error) + + // LocalAddrs returns the list of announced listening addresses + LocalAddrs(context.Context) ([]ma.Multiaddr, error) + + // ListenAddrs returns the list of all listening addresses + ListenAddrs(context.Context) ([]ma.Multiaddr, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/unixfs.go b/vendor/github.com/ipfs/interface-go-ipfs-core/unixfs.go new file mode 100644 index 00000000..686c4029 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/unixfs.go @@ -0,0 +1,79 @@ +package iface + +import ( + "context" + "github.com/ipfs/interface-go-ipfs-core/options" + path "github.com/ipfs/interface-go-ipfs-core/path" + + "github.com/ipfs/go-cid" + "github.com/ipfs/go-ipfs-files" +) + +type AddEvent struct { + Name string + Path path.Resolved `json:",omitempty"` + Bytes int64 `json:",omitempty"` + Size string `json:",omitempty"` +} + +// FileType is an enum of possible UnixFS file types. +type FileType int32 + +const ( + // TUnknown means the file type isn't known (e.g., it hasn't been + // resolved). + TUnknown FileType = iota + // TFile is a regular file. + TFile + // TDirectory is a directory. + TDirectory + // TSymlink is a symlink. + TSymlink +) + +func (t FileType) String() string { + switch t { + case TUnknown: + return "unknown" + case TFile: + return "file" + case TDirectory: + return "directory" + case TSymlink: + return "symlink" + default: + return "" + } +} + +// DirEntry is a directory entry returned by `Ls`. +type DirEntry struct { + Name string + Cid cid.Cid + + // Only filled when asked to resolve the directory entry. + Size uint64 // The size of the file in bytes (or the size of the symlink). + Type FileType // The type of the file. + Target string // The symlink target (if a symlink). + + Err error +} + +// UnixfsAPI is the basic interface to immutable files in IPFS +// NOTE: This API is heavily WIP, things are guaranteed to break frequently +type UnixfsAPI interface { + // Add imports the data from the reader into merkledag file + // + // TODO: a long useful comment on how to use this for many different scenarios + Add(context.Context, files.Node, ...options.UnixfsAddOption) (path.Resolved, error) + + // Get returns a read-only handle to a file tree referenced by a path + // + // Note that some implementations of this API may apply the specified context + // to operations performed on the returned file + Get(context.Context, path.Path) (files.Node, error) + + // Ls returns the list of links in a directory. Links aren't guaranteed to be + // returned in order + Ls(context.Context, path.Path, ...options.UnixfsLsOption) (<-chan DirEntry, error) +} diff --git a/vendor/github.com/ipfs/interface-go-ipfs-core/util.go b/vendor/github.com/ipfs/interface-go-ipfs-core/util.go new file mode 100644 index 00000000..6d58bf40 --- /dev/null +++ b/vendor/github.com/ipfs/interface-go-ipfs-core/util.go @@ -0,0 +1,20 @@ +package iface + +import ( + "context" + "io" +) + +type Reader interface { + ReadSeekCloser + Size() uint64 + CtxReadFull(context.Context, []byte) (int, error) +} + +// A ReadSeekCloser implements interfaces to read, copy, seek and close. +type ReadSeekCloser interface { + io.Reader + io.Seeker + io.Closer + io.WriterTo +} diff --git a/vendor/github.com/jackpal/gateway/.travis.yml b/vendor/github.com/jackpal/gateway/.travis.yml new file mode 100644 index 00000000..9c3f6547 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/.travis.yml @@ -0,0 +1,13 @@ +language: go + +go: + - 1.6.2 + - tip + +allowed_failures: + - go: tip + +install: + - go get -d -v ./... && go install -race -v ./... + +script: go test -race -v ./... diff --git a/vendor/github.com/jackpal/gateway/LICENSE b/vendor/github.com/jackpal/gateway/LICENSE new file mode 100644 index 00000000..c9efac32 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/LICENSE @@ -0,0 +1,27 @@ +// Copyright (c) 2010 Jack Palevich. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/jackpal/gateway/README.md b/vendor/github.com/jackpal/gateway/README.md new file mode 100644 index 00000000..6a2b2125 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/README.md @@ -0,0 +1,18 @@ +# gateway + +A simple library for discovering the IP address of the default gateway. + + +[![Build Status](https://travis-ci.org/jackpal/gateway.svg)](https://travis-ci.org/jackpal/gateway) + +Provides implementations for: + ++ FreeBSD ++ Linux ++ OS X (Darwin) ++ Solaris ++ Windows + +Other platforms use an implementation that always returns an error. + +Pull requests for other OSs happily considered! diff --git a/vendor/github.com/jackpal/gateway/gateway_common.go b/vendor/github.com/jackpal/gateway/gateway_common.go new file mode 100644 index 00000000..441ea62e --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_common.go @@ -0,0 +1,146 @@ +package gateway + +import ( + "errors" + "net" + "strings" +) + +var errNoGateway = errors.New("no gateway found") + +func parseWindowsRoutePrint(output []byte) (net.IP, error) { + // Windows route output format is always like this: + // =========================================================================== + // Active Routes: + // Network Destination Netmask Gateway Interface Metric + // 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 20 + // =========================================================================== + // I'm trying to pick the active route, + // then jump 2 lines and pick the third IP + // Not using regex because output is quite standard from Windows XP to 8 (NEEDS TESTING) + lines := strings.Split(string(output), "\n") + for idx, line := range lines { + if strings.HasPrefix(line, "Active Routes:") { + if len(lines) <= idx+2 { + return nil, errNoGateway + } + + fields := strings.Fields(lines[idx+2]) + if len(fields) < 3 { + return nil, errNoGateway + } + + ip := net.ParseIP(fields[2]) + if ip != nil { + return ip, nil + } + } + } + return nil, errNoGateway +} + +func parseLinuxIPRouteShow(output []byte) (net.IP, error) { + // Linux '/usr/bin/ip route show' format looks like this: + // default via 192.168.178.1 dev wlp3s0 metric 303 + // 192.168.178.0/24 dev wlp3s0 proto kernel scope link src 192.168.178.76 metric 303 + lines := strings.Split(string(output), "\n") + for _, line := range lines { + fields := strings.Fields(line) + if len(fields) >= 3 && fields[0] == "default" { + ip := net.ParseIP(fields[2]) + if ip != nil { + return ip, nil + } + } + } + + return nil, errNoGateway +} + +func parseLinuxIPRouteGet(output []byte) (net.IP, error) { + // Linux '/usr/bin/ip route get 8.8.8.8' format looks like this: + // 8.8.8.8 via 10.0.1.1 dev eth0 src 10.0.1.36 uid 2000 + lines := strings.Split(string(output), "\n") + for _, line := range lines { + fields := strings.Fields(line) + if len(fields) >= 2 && fields[1] == "via" { + ip := net.ParseIP(fields[2]) + if ip != nil { + return ip, nil + } + } + } + + return nil, errNoGateway +} + +func parseLinuxRoute(output []byte) (net.IP, error) { + // Linux route out format is always like this: + // Kernel IP routing table + // Destination Gateway Genmask Flags Metric Ref Use Iface + // 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 + lines := strings.Split(string(output), "\n") + for _, line := range lines { + fields := strings.Fields(line) + if len(fields) >= 2 && fields[0] == "0.0.0.0" { + ip := net.ParseIP(fields[1]) + if ip != nil { + return ip, nil + } + } + } + + return nil, errNoGateway +} + +func parseDarwinRouteGet(output []byte) (net.IP, error) { + // Darwin route out format is always like this: + // route to: default + // destination: default + // mask: default + // gateway: 192.168.1.1 + lines := strings.Split(string(output), "\n") + for _, line := range lines { + fields := strings.Fields(line) + if len(fields) >= 2 && fields[0] == "gateway:" { + ip := net.ParseIP(fields[1]) + if ip != nil { + return ip, nil + } + } + } + + return nil, errNoGateway +} + +func parseBSDSolarisNetstat(output []byte) (net.IP, error) { + // netstat -rn produces the following on FreeBSD: + // Routing tables + // + // Internet: + // Destination Gateway Flags Netif Expire + // default 10.88.88.2 UGS em0 + // 10.88.88.0/24 link#1 U em0 + // 10.88.88.148 link#1 UHS lo0 + // 127.0.0.1 link#2 UH lo0 + // + // Internet6: + // Destination Gateway Flags Netif Expire + // ::/96 ::1 UGRS lo0 + // ::1 link#2 UH lo0 + // ::ffff:0.0.0.0/96 ::1 UGRS lo0 + // fe80::/10 ::1 UGRS lo0 + // ... + outputLines := strings.Split(string(output), "\n") + for _, line := range outputLines { + fields := strings.Fields(line) + if len(fields) >= 2 && fields[0] == "default" { + ip := net.ParseIP(fields[1]) + if ip != nil { + return ip, nil + } + } + } + + return nil, errNoGateway +} diff --git a/vendor/github.com/jackpal/gateway/gateway_darwin.go b/vendor/github.com/jackpal/gateway/gateway_darwin.go new file mode 100644 index 00000000..32e755cb --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_darwin.go @@ -0,0 +1,16 @@ +package gateway + +import ( + "net" + "os/exec" +) + +func DiscoverGateway() (net.IP, error) { + routeCmd := exec.Command("/sbin/route", "-n", "get", "0.0.0.0") + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseDarwinRouteGet(output) +} diff --git a/vendor/github.com/jackpal/gateway/gateway_freebsd.go b/vendor/github.com/jackpal/gateway/gateway_freebsd.go new file mode 100644 index 00000000..3d669108 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_freebsd.go @@ -0,0 +1,16 @@ +package gateway + +import ( + "net" + "os/exec" +) + +func DiscoverGateway() (ip net.IP, err error) { + routeCmd := exec.Command("netstat", "-rn") + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseBSDSolarisNetstat(output) +} diff --git a/vendor/github.com/jackpal/gateway/gateway_linux.go b/vendor/github.com/jackpal/gateway/gateway_linux.go new file mode 100644 index 00000000..aacaa88e --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_linux.go @@ -0,0 +1,47 @@ +package gateway + +import ( + "net" + "os/exec" +) + +func DiscoverGateway() (ip net.IP, err error) { + ip, err = discoverGatewayUsingRoute() + if err != nil { + ip, err = discoverGatewayUsingIpRouteShow() + } + if err != nil { + ip, err = discoverGatewayUsingIpRouteGet() + } + return +} + +func discoverGatewayUsingIpRouteShow() (net.IP, error) { + routeCmd := exec.Command("ip", "route", "show") + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseLinuxIPRouteShow(output) +} + +func discoverGatewayUsingIpRouteGet() (net.IP, error) { + routeCmd := exec.Command("ip", "route", "get", "8.8.8.8") + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseLinuxIPRouteGet(output) +} + +func discoverGatewayUsingRoute() (net.IP, error) { + routeCmd := exec.Command("route", "-n") + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseLinuxRoute(output) +} diff --git a/vendor/github.com/jackpal/gateway/gateway_solaris.go b/vendor/github.com/jackpal/gateway/gateway_solaris.go new file mode 100644 index 00000000..3d669108 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_solaris.go @@ -0,0 +1,16 @@ +package gateway + +import ( + "net" + "os/exec" +) + +func DiscoverGateway() (ip net.IP, err error) { + routeCmd := exec.Command("netstat", "-rn") + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseBSDSolarisNetstat(output) +} diff --git a/vendor/github.com/jackpal/gateway/gateway_unimplemented.go b/vendor/github.com/jackpal/gateway/gateway_unimplemented.go new file mode 100644 index 00000000..750ac4b7 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_unimplemented.go @@ -0,0 +1,14 @@ +// +build !darwin,!linux,!windows,!solaris,!freebsd + +package gateway + +import ( + "fmt" + "net" + "runtime" +) + +func DiscoverGateway() (ip net.IP, err error) { + err = fmt.Errorf("DiscoverGateway not implemented for OS %s", runtime.GOOS) + return +} diff --git a/vendor/github.com/jackpal/gateway/gateway_windows.go b/vendor/github.com/jackpal/gateway/gateway_windows.go new file mode 100644 index 00000000..2419c831 --- /dev/null +++ b/vendor/github.com/jackpal/gateway/gateway_windows.go @@ -0,0 +1,18 @@ +package gateway + +import ( + "net" + "os/exec" + "syscall" +) + +func DiscoverGateway() (ip net.IP, err error) { + routeCmd := exec.Command("route", "print", "0.0.0.0") + routeCmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} + output, err := routeCmd.CombinedOutput() + if err != nil { + return nil, err + } + + return parseWindowsRoutePrint(output) +} diff --git a/vendor/github.com/jbenet/go-context/LICENSE b/vendor/github.com/jbenet/go-context/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/jbenet/go-context/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/jbenet/go-context/io/ctxio.go b/vendor/github.com/jbenet/go-context/io/ctxio.go new file mode 100644 index 00000000..b4f24542 --- /dev/null +++ b/vendor/github.com/jbenet/go-context/io/ctxio.go @@ -0,0 +1,120 @@ +// Package ctxio provides io.Reader and io.Writer wrappers that +// respect context.Contexts. Use these at the interface between +// your context code and your io. +// +// WARNING: read the code. see how writes and reads will continue +// until you cancel the io. Maybe this package should provide +// versions of io.ReadCloser and io.WriteCloser that automatically +// call .Close when the context expires. But for now -- since in my +// use cases I have long-lived connections with ephemeral io wrappers +// -- this has yet to be a need. +package ctxio + +import ( + "io" + + context "golang.org/x/net/context" +) + +type ioret struct { + n int + err error +} + +type Writer interface { + io.Writer +} + +type ctxWriter struct { + w io.Writer + ctx context.Context +} + +// NewWriter wraps a writer to make it respect given Context. +// If there is a blocking write, the returned Writer will return +// whenever the context is cancelled (the return values are n=0 +// and err=ctx.Err().) +// +// Note well: this wrapper DOES NOT ACTUALLY cancel the underlying +// write-- there is no way to do that with the standard go io +// interface. So the read and write _will_ happen or hang. So, use +// this sparingly, make sure to cancel the read or write as necesary +// (e.g. closing a connection whose context is up, etc.) +// +// Furthermore, in order to protect your memory from being read +// _after_ you've cancelled the context, this io.Writer will +// first make a **copy** of the buffer. +func NewWriter(ctx context.Context, w io.Writer) *ctxWriter { + if ctx == nil { + ctx = context.Background() + } + return &ctxWriter{ctx: ctx, w: w} +} + +func (w *ctxWriter) Write(buf []byte) (int, error) { + buf2 := make([]byte, len(buf)) + copy(buf2, buf) + + c := make(chan ioret, 1) + + go func() { + n, err := w.w.Write(buf2) + c <- ioret{n, err} + close(c) + }() + + select { + case r := <-c: + return r.n, r.err + case <-w.ctx.Done(): + return 0, w.ctx.Err() + } +} + +type Reader interface { + io.Reader +} + +type ctxReader struct { + r io.Reader + ctx context.Context +} + +// NewReader wraps a reader to make it respect given Context. +// If there is a blocking read, the returned Reader will return +// whenever the context is cancelled (the return values are n=0 +// and err=ctx.Err().) +// +// Note well: this wrapper DOES NOT ACTUALLY cancel the underlying +// write-- there is no way to do that with the standard go io +// interface. So the read and write _will_ happen or hang. So, use +// this sparingly, make sure to cancel the read or write as necesary +// (e.g. closing a connection whose context is up, etc.) +// +// Furthermore, in order to protect your memory from being read +// _before_ you've cancelled the context, this io.Reader will +// allocate a buffer of the same size, and **copy** into the client's +// if the read succeeds in time. +func NewReader(ctx context.Context, r io.Reader) *ctxReader { + return &ctxReader{ctx: ctx, r: r} +} + +func (r *ctxReader) Read(buf []byte) (int, error) { + buf2 := make([]byte, len(buf)) + + c := make(chan ioret, 1) + + go func() { + n, err := r.r.Read(buf2) + c <- ioret{n, err} + close(c) + }() + + select { + case ret := <-c: + copy(buf, buf2) + return ret.n, ret.err + case <-r.ctx.Done(): + return 0, r.ctx.Err() + } +} diff --git a/vendor/github.com/jbenet/go-is-domain/.travis.yml b/vendor/github.com/jbenet/go-is-domain/.travis.yml new file mode 100644 index 00000000..3590e6d9 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/.travis.yml @@ -0,0 +1,18 @@ +os: + - linux + +language: go + +go: + - 1.12.x + +env: + GO111MODULE=on + +cache: + directories: + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/jbenet/go-is-domain/LICENSE b/vendor/github.com/jbenet/go-is-domain/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/jbenet/go-is-domain/README.md b/vendor/github.com/jbenet/go-is-domain/README.md new file mode 100644 index 00000000..abf48bc1 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/README.md @@ -0,0 +1,29 @@ +# go-is-domain + +This package is dedicated to [@whyrusleeping](https://github.com/whyrusleeping). + +Docs: https://godoc.org/github.com/jbenet/go-is-domain + + +Check whether something is a domain. + + +```Go + +import ( + isd "github.com/jbenet/go-is-domain" +) + +isd.IsDomain("foo.com") // true +isd.IsDomain("foo.bar.com.") // true +isd.IsDomain("foo.bar.baz") // false + +``` + +MIT Licensed + +## Updating TLDs + +To update non-extended TLDs, IANA publishes, you can retrieve them from [data.iana.org](https://data.iana.org/TLD/tlds-alpha-by-domain.txt). + +After retrieving the updated list, enter them into the file `tlds-alpha-by-domain.txt`. In order to update the `TLDs` map in `tlds.go`, you can run the `gen.sh` script which will generate the contents of a `string -> bool` map. After that, you'll want to replace the contents of the existing `TLDs` map, with the one that was generated and stored in `formatted_tlds.txt` diff --git a/vendor/github.com/jbenet/go-is-domain/doc.go b/vendor/github.com/jbenet/go-is-domain/doc.go new file mode 100644 index 00000000..db6855c4 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/doc.go @@ -0,0 +1,13 @@ +/* +Package isdomain package allows users to check whether strings represent domain names. + + import ( + isd "github.com/jbenet/go-is-domain" + ) + + isd.IsDomain("foo.com") // true + isd.IsDomain("foo.bar.com.") // true + isd.IsDomain("foo.bar.baz") // false + +*/ +package isdomain diff --git a/vendor/github.com/jbenet/go-is-domain/domainre.go b/vendor/github.com/jbenet/go-is-domain/domainre.go new file mode 100644 index 00000000..b6caf4a8 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/domainre.go @@ -0,0 +1,12 @@ +package isdomain + +import "regexp" + +// DomainRegexpStr is a regular expression string to validate domains. +const DomainRegexpStr = "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])(\\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]))*$" + +var domainRegexp *regexp.Regexp + +func init() { + domainRegexp = regexp.MustCompile(DomainRegexpStr) +} diff --git a/vendor/github.com/jbenet/go-is-domain/go.mod b/vendor/github.com/jbenet/go-is-domain/go.mod new file mode 100644 index 00000000..5a4885b3 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/go.mod @@ -0,0 +1,3 @@ +module github.com/jbenet/go-is-domain + +go 1.12 diff --git a/vendor/github.com/jbenet/go-is-domain/is_domain.go b/vendor/github.com/jbenet/go-is-domain/is_domain.go new file mode 100644 index 00000000..9e6f0469 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/is_domain.go @@ -0,0 +1,54 @@ +package isdomain + +import ( + "strings" +) + +//go:generate bash regenerate-tlds.sh + +// IsICANNTLD returns whether the given string is a TLD (Top Level Domain), +// according to ICANN. Well, really according to the TLDs listed in this +// package. +func IsICANNTLD(s string) bool { + s = strings.ToUpper(s) + _, found := TLDs[s] + return found +} + +// IsExtendedTLD returns whether the given string is a TLD (Top Level Domain), +// extended with a few other "TLDs": .bit, .onion +func IsExtendedTLD(s string) bool { + s = strings.ToUpper(s) + _, found := ExtendedTLDs[s] + return found +} + +// IsTLD returns whether the given string is a TLD (according to ICANN, or +// in the set of ExtendedTLDs listed in this package. +func IsTLD(s string) bool { + return IsICANNTLD(s) || IsExtendedTLD(s) +} + +// IsDomain returns whether given string is a domain. +// It first checks the TLD, and then uses a regular expression. +func IsDomain(s string) bool { + if strings.HasSuffix(s, ".") { + s = s[:len(s)-1] + } + split := strings.Split(s, ".") + + // Need a TLD and a domain. + if len(split) < 2 { + return false + } + + // Check the TLD + tld := split[len(split)-1] + if !IsTLD(tld) { + return false + } + + // Check the domain. + s = strings.ToLower(s) + return domainRegexp.MatchString(s) +} diff --git a/vendor/github.com/jbenet/go-is-domain/package.json b/vendor/github.com/jbenet/go-is-domain/package.json new file mode 100644 index 00000000..002aea25 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/package.json @@ -0,0 +1,16 @@ +{ + "author": "jbenet", + "bugs": { + "URL": "https://github.com/jbenet/go-is-domain/issues", + "url": "https://github.com/jbenet/go-is-domain/issues" + }, + "gx": { + "dvcsimport": "github.com/jbenet/go-is-domain" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "MIT", + "name": "go-is-domain", + "version": "1.0.2" +} + diff --git a/vendor/github.com/jbenet/go-is-domain/regenerate-tlds.sh b/vendor/github.com/jbenet/go-is-domain/regenerate-tlds.sh new file mode 100755 index 00000000..2420cac7 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/regenerate-tlds.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +out=${1-tlds_iana.go} + +list=$(mktemp) + +wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -O $list + +header=$(head -1 $list) + +cat > $out <> $out + +echo '}' >> $out + +gofmt -w $out diff --git a/vendor/github.com/jbenet/go-is-domain/tlds_custom.go b/vendor/github.com/jbenet/go-is-domain/tlds_custom.go new file mode 100644 index 00000000..8fe80f8c --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/tlds_custom.go @@ -0,0 +1,8 @@ +package isdomain + +// ExtendedTLDs is a set of additional "TLDs", allowing decentralized name +// systems, like TOR and Namecoin. +var ExtendedTLDs = map[string]bool{ + "BIT": true, + "ONION": true, +} diff --git a/vendor/github.com/jbenet/go-is-domain/tlds_iana.go b/vendor/github.com/jbenet/go-is-domain/tlds_iana.go new file mode 100644 index 00000000..221c0d54 --- /dev/null +++ b/vendor/github.com/jbenet/go-is-domain/tlds_iana.go @@ -0,0 +1,1537 @@ +package isdomain + +// # Version 2019032100, Last Updated Thu Mar 21 07:07:01 2019 UTC +var TLDs = map[string]bool{ + "AAA": true, + "AARP": true, + "ABARTH": true, + "ABB": true, + "ABBOTT": true, + "ABBVIE": true, + "ABC": true, + "ABLE": true, + "ABOGADO": true, + "ABUDHABI": true, + "AC": true, + "ACADEMY": true, + "ACCENTURE": true, + "ACCOUNTANT": true, + "ACCOUNTANTS": true, + "ACO": true, + "ACTOR": true, + "AD": true, + "ADAC": true, + "ADS": true, + "ADULT": true, + "AE": true, + "AEG": true, + "AERO": true, + "AETNA": true, + "AF": true, + "AFAMILYCOMPANY": true, + "AFL": true, + "AFRICA": true, + "AG": true, + "AGAKHAN": true, + "AGENCY": true, + "AI": true, + "AIG": true, + "AIGO": true, + "AIRBUS": true, + "AIRFORCE": true, + "AIRTEL": true, + "AKDN": true, + "AL": true, + "ALFAROMEO": true, + "ALIBABA": true, + "ALIPAY": true, + "ALLFINANZ": true, + "ALLSTATE": true, + "ALLY": true, + "ALSACE": true, + "ALSTOM": true, + "AM": true, + "AMERICANEXPRESS": true, + "AMERICANFAMILY": true, + "AMEX": true, + "AMFAM": true, + "AMICA": true, + "AMSTERDAM": true, + "ANALYTICS": true, + "ANDROID": true, + "ANQUAN": true, + "ANZ": true, + "AO": true, + "AOL": true, + "APARTMENTS": true, + "APP": true, + "APPLE": true, + "AQ": true, + "AQUARELLE": true, + "AR": true, + "ARAB": true, + "ARAMCO": true, + "ARCHI": true, + "ARMY": true, + "ARPA": true, + "ART": true, + "ARTE": true, + "AS": true, + "ASDA": true, + "ASIA": true, + "ASSOCIATES": true, + "AT": true, + "ATHLETA": true, + "ATTORNEY": true, + "AU": true, + "AUCTION": true, + "AUDI": true, + "AUDIBLE": true, + "AUDIO": true, + "AUSPOST": true, + "AUTHOR": true, + "AUTO": true, + "AUTOS": true, + "AVIANCA": true, + "AW": true, + "AWS": true, + "AX": true, + "AXA": true, + "AZ": true, + "AZURE": true, + "BA": true, + "BABY": true, + "BAIDU": true, + "BANAMEX": true, + "BANANAREPUBLIC": true, + "BAND": true, + "BANK": true, + "BAR": true, + "BARCELONA": true, + "BARCLAYCARD": true, + "BARCLAYS": true, + "BAREFOOT": true, + "BARGAINS": true, + "BASEBALL": true, + "BASKETBALL": true, + "BAUHAUS": true, + "BAYERN": true, + "BB": true, + "BBC": true, + "BBT": true, + "BBVA": true, + "BCG": true, + "BCN": true, + "BD": true, + "BE": true, + "BEATS": true, + "BEAUTY": true, + "BEER": true, + "BENTLEY": true, + "BERLIN": true, + "BEST": true, + "BESTBUY": true, + "BET": true, + "BF": true, + "BG": true, + "BH": true, + "BHARTI": true, + "BI": true, + "BIBLE": true, + "BID": true, + "BIKE": true, + "BING": true, + "BINGO": true, + "BIO": true, + "BIZ": true, + "BJ": true, + "BLACK": true, + "BLACKFRIDAY": true, + "BLOCKBUSTER": true, + "BLOG": true, + "BLOOMBERG": true, + "BLUE": true, + "BM": true, + "BMS": true, + "BMW": true, + "BN": true, + "BNL": true, + "BNPPARIBAS": true, + "BO": true, + "BOATS": true, + "BOEHRINGER": true, + "BOFA": true, + "BOM": true, + "BOND": true, + "BOO": true, + "BOOK": true, + "BOOKING": true, + "BOSCH": true, + "BOSTIK": true, + "BOSTON": true, + "BOT": true, + "BOUTIQUE": true, + "BOX": true, + "BR": true, + "BRADESCO": true, + "BRIDGESTONE": true, + "BROADWAY": true, + "BROKER": true, + "BROTHER": true, + "BRUSSELS": true, + "BS": true, + "BT": true, + "BUDAPEST": true, + "BUGATTI": true, + "BUILD": true, + "BUILDERS": true, + "BUSINESS": true, + "BUY": true, + "BUZZ": true, + "BV": true, + "BW": true, + "BY": true, + "BZ": true, + "BZH": true, + "CA": true, + "CAB": true, + "CAFE": true, + "CAL": true, + "CALL": true, + "CALVINKLEIN": true, + "CAM": true, + "CAMERA": true, + "CAMP": true, + "CANCERRESEARCH": true, + "CANON": true, + "CAPETOWN": true, + "CAPITAL": true, + "CAPITALONE": true, + "CAR": true, + "CARAVAN": true, + "CARDS": true, + "CARE": true, + "CAREER": true, + "CAREERS": true, + "CARS": true, + "CARTIER": true, + "CASA": true, + "CASE": true, + "CASEIH": true, + "CASH": true, + "CASINO": true, + "CAT": true, + "CATERING": true, + "CATHOLIC": true, + "CBA": true, + "CBN": true, + "CBRE": true, + "CBS": true, + "CC": true, + "CD": true, + "CEB": true, + "CENTER": true, + "CEO": true, + "CERN": true, + "CF": true, + "CFA": true, + "CFD": true, + "CG": true, + "CH": true, + "CHANEL": true, + "CHANNEL": true, + "CHARITY": true, + "CHASE": true, + "CHAT": true, + "CHEAP": true, + "CHINTAI": true, + "CHRISTMAS": true, + "CHROME": true, + "CHRYSLER": true, + "CHURCH": true, + "CI": true, + "CIPRIANI": true, + "CIRCLE": true, + "CISCO": true, + "CITADEL": true, + "CITI": true, + "CITIC": true, + "CITY": true, + "CITYEATS": true, + "CK": true, + "CL": true, + "CLAIMS": true, + "CLEANING": true, + "CLICK": true, + "CLINIC": true, + "CLINIQUE": true, + "CLOTHING": true, + "CLOUD": true, + "CLUB": true, + "CLUBMED": true, + "CM": true, + "CN": true, + "CO": true, + "COACH": true, + "CODES": true, + "COFFEE": true, + "COLLEGE": true, + "COLOGNE": true, + "COM": true, + "COMCAST": true, + "COMMBANK": true, + "COMMUNITY": true, + "COMPANY": true, + "COMPARE": true, + "COMPUTER": true, + "COMSEC": true, + "CONDOS": true, + "CONSTRUCTION": true, + "CONSULTING": true, + "CONTACT": true, + "CONTRACTORS": true, + "COOKING": true, + "COOKINGCHANNEL": true, + "COOL": true, + "COOP": true, + "CORSICA": true, + "COUNTRY": true, + "COUPON": true, + "COUPONS": true, + "COURSES": true, + "CR": true, + "CREDIT": true, + "CREDITCARD": true, + "CREDITUNION": true, + "CRICKET": true, + "CROWN": true, + "CRS": true, + "CRUISE": true, + "CRUISES": true, + "CSC": true, + "CU": true, + "CUISINELLA": true, + "CV": true, + "CW": true, + "CX": true, + "CY": true, + "CYMRU": true, + "CYOU": true, + "CZ": true, + "DABUR": true, + "DAD": true, + "DANCE": true, + "DATA": true, + "DATE": true, + "DATING": true, + "DATSUN": true, + "DAY": true, + "DCLK": true, + "DDS": true, + "DE": true, + "DEAL": true, + "DEALER": true, + "DEALS": true, + "DEGREE": true, + "DELIVERY": true, + "DELL": true, + "DELOITTE": true, + "DELTA": true, + "DEMOCRAT": true, + "DENTAL": true, + "DENTIST": true, + "DESI": true, + "DESIGN": true, + "DEV": true, + "DHL": true, + "DIAMONDS": true, + "DIET": true, + "DIGITAL": true, + "DIRECT": true, + "DIRECTORY": true, + "DISCOUNT": true, + "DISCOVER": true, + "DISH": true, + "DIY": true, + "DJ": true, + "DK": true, + "DM": true, + "DNP": true, + "DO": true, + "DOCS": true, + "DOCTOR": true, + "DODGE": true, + "DOG": true, + "DOHA": true, + "DOMAINS": true, + "DOT": true, + "DOWNLOAD": true, + "DRIVE": true, + "DTV": true, + "DUBAI": true, + "DUCK": true, + "DUNLOP": true, + "DUNS": true, + "DUPONT": true, + "DURBAN": true, + "DVAG": true, + "DVR": true, + "DZ": true, + "EARTH": true, + "EAT": true, + "EC": true, + "ECO": true, + "EDEKA": true, + "EDU": true, + "EDUCATION": true, + "EE": true, + "EG": true, + "EMAIL": true, + "EMERCK": true, + "ENERGY": true, + "ENGINEER": true, + "ENGINEERING": true, + "ENTERPRISES": true, + "EPSON": true, + "EQUIPMENT": true, + "ER": true, + "ERICSSON": true, + "ERNI": true, + "ES": true, + "ESQ": true, + "ESTATE": true, + "ESURANCE": true, + "ET": true, + "ETISALAT": true, + "EU": true, + "EUROVISION": true, + "EUS": true, + "EVENTS": true, + "EVERBANK": true, + "EXCHANGE": true, + "EXPERT": true, + "EXPOSED": true, + "EXPRESS": true, + "EXTRASPACE": true, + "FAGE": true, + "FAIL": true, + "FAIRWINDS": true, + "FAITH": true, + "FAMILY": true, + "FAN": true, + "FANS": true, + "FARM": true, + "FARMERS": true, + "FASHION": true, + "FAST": true, + "FEDEX": true, + "FEEDBACK": true, + "FERRARI": true, + "FERRERO": true, + "FI": true, + "FIAT": true, + "FIDELITY": true, + "FIDO": true, + "FILM": true, + "FINAL": true, + "FINANCE": true, + "FINANCIAL": true, + "FIRE": true, + "FIRESTONE": true, + "FIRMDALE": true, + "FISH": true, + "FISHING": true, + "FIT": true, + "FITNESS": true, + "FJ": true, + "FK": true, + "FLICKR": true, + "FLIGHTS": true, + "FLIR": true, + "FLORIST": true, + "FLOWERS": true, + "FLY": true, + "FM": true, + "FO": true, + "FOO": true, + "FOOD": true, + "FOODNETWORK": true, + "FOOTBALL": true, + "FORD": true, + "FOREX": true, + "FORSALE": true, + "FORUM": true, + "FOUNDATION": true, + "FOX": true, + "FR": true, + "FREE": true, + "FRESENIUS": true, + "FRL": true, + "FROGANS": true, + "FRONTDOOR": true, + "FRONTIER": true, + "FTR": true, + "FUJITSU": true, + "FUJIXEROX": true, + "FUN": true, + "FUND": true, + "FURNITURE": true, + "FUTBOL": true, + "FYI": true, + "GA": true, + "GAL": true, + "GALLERY": true, + "GALLO": true, + "GALLUP": true, + "GAME": true, + "GAMES": true, + "GAP": true, + "GARDEN": true, + "GB": true, + "GBIZ": true, + "GD": true, + "GDN": true, + "GE": true, + "GEA": true, + "GENT": true, + "GENTING": true, + "GEORGE": true, + "GF": true, + "GG": true, + "GGEE": true, + "GH": true, + "GI": true, + "GIFT": true, + "GIFTS": true, + "GIVES": true, + "GIVING": true, + "GL": true, + "GLADE": true, + "GLASS": true, + "GLE": true, + "GLOBAL": true, + "GLOBO": true, + "GM": true, + "GMAIL": true, + "GMBH": true, + "GMO": true, + "GMX": true, + "GN": true, + "GODADDY": true, + "GOLD": true, + "GOLDPOINT": true, + "GOLF": true, + "GOO": true, + "GOODYEAR": true, + "GOOG": true, + "GOOGLE": true, + "GOP": true, + "GOT": true, + "GOV": true, + "GP": true, + "GQ": true, + "GR": true, + "GRAINGER": true, + "GRAPHICS": true, + "GRATIS": true, + "GREEN": true, + "GRIPE": true, + "GROCERY": true, + "GROUP": true, + "GS": true, + "GT": true, + "GU": true, + "GUARDIAN": true, + "GUCCI": true, + "GUGE": true, + "GUIDE": true, + "GUITARS": true, + "GURU": true, + "GW": true, + "GY": true, + "HAIR": true, + "HAMBURG": true, + "HANGOUT": true, + "HAUS": true, + "HBO": true, + "HDFC": true, + "HDFCBANK": true, + "HEALTH": true, + "HEALTHCARE": true, + "HELP": true, + "HELSINKI": true, + "HERE": true, + "HERMES": true, + "HGTV": true, + "HIPHOP": true, + "HISAMITSU": true, + "HITACHI": true, + "HIV": true, + "HK": true, + "HKT": true, + "HM": true, + "HN": true, + "HOCKEY": true, + "HOLDINGS": true, + "HOLIDAY": true, + "HOMEDEPOT": true, + "HOMEGOODS": true, + "HOMES": true, + "HOMESENSE": true, + "HONDA": true, + "HONEYWELL": true, + "HORSE": true, + "HOSPITAL": true, + "HOST": true, + "HOSTING": true, + "HOT": true, + "HOTELES": true, + "HOTELS": true, + "HOTMAIL": true, + "HOUSE": true, + "HOW": true, + "HR": true, + "HSBC": true, + "HT": true, + "HU": true, + "HUGHES": true, + "HYATT": true, + "HYUNDAI": true, + "IBM": true, + "ICBC": true, + "ICE": true, + "ICU": true, + "ID": true, + "IE": true, + "IEEE": true, + "IFM": true, + "IKANO": true, + "IL": true, + "IM": true, + "IMAMAT": true, + "IMDB": true, + "IMMO": true, + "IMMOBILIEN": true, + "IN": true, + "INC": true, + "INDUSTRIES": true, + "INFINITI": true, + "INFO": true, + "ING": true, + "INK": true, + "INSTITUTE": true, + "INSURANCE": true, + "INSURE": true, + "INT": true, + "INTEL": true, + "INTERNATIONAL": true, + "INTUIT": true, + "INVESTMENTS": true, + "IO": true, + "IPIRANGA": true, + "IQ": true, + "IR": true, + "IRISH": true, + "IS": true, + "ISELECT": true, + "ISMAILI": true, + "IST": true, + "ISTANBUL": true, + "IT": true, + "ITAU": true, + "ITV": true, + "IVECO": true, + "JAGUAR": true, + "JAVA": true, + "JCB": true, + "JCP": true, + "JE": true, + "JEEP": true, + "JETZT": true, + "JEWELRY": true, + "JIO": true, + "JLL": true, + "JM": true, + "JMP": true, + "JNJ": true, + "JO": true, + "JOBS": true, + "JOBURG": true, + "JOT": true, + "JOY": true, + "JP": true, + "JPMORGAN": true, + "JPRS": true, + "JUEGOS": true, + "JUNIPER": true, + "KAUFEN": true, + "KDDI": true, + "KE": true, + "KERRYHOTELS": true, + "KERRYLOGISTICS": true, + "KERRYPROPERTIES": true, + "KFH": true, + "KG": true, + "KH": true, + "KI": true, + "KIA": true, + "KIM": true, + "KINDER": true, + "KINDLE": true, + "KITCHEN": true, + "KIWI": true, + "KM": true, + "KN": true, + "KOELN": true, + "KOMATSU": true, + "KOSHER": true, + "KP": true, + "KPMG": true, + "KPN": true, + "KR": true, + "KRD": true, + "KRED": true, + "KUOKGROUP": true, + "KW": true, + "KY": true, + "KYOTO": true, + "KZ": true, + "LA": true, + "LACAIXA": true, + "LADBROKES": true, + "LAMBORGHINI": true, + "LAMER": true, + "LANCASTER": true, + "LANCIA": true, + "LANCOME": true, + "LAND": true, + "LANDROVER": true, + "LANXESS": true, + "LASALLE": true, + "LAT": true, + "LATINO": true, + "LATROBE": true, + "LAW": true, + "LAWYER": true, + "LB": true, + "LC": true, + "LDS": true, + "LEASE": true, + "LECLERC": true, + "LEFRAK": true, + "LEGAL": true, + "LEGO": true, + "LEXUS": true, + "LGBT": true, + "LI": true, + "LIAISON": true, + "LIDL": true, + "LIFE": true, + "LIFEINSURANCE": true, + "LIFESTYLE": true, + "LIGHTING": true, + "LIKE": true, + "LILLY": true, + "LIMITED": true, + "LIMO": true, + "LINCOLN": true, + "LINDE": true, + "LINK": true, + "LIPSY": true, + "LIVE": true, + "LIVING": true, + "LIXIL": true, + "LK": true, + "LLC": true, + "LOAN": true, + "LOANS": true, + "LOCKER": true, + "LOCUS": true, + "LOFT": true, + "LOL": true, + "LONDON": true, + "LOTTE": true, + "LOTTO": true, + "LOVE": true, + "LPL": true, + "LPLFINANCIAL": true, + "LR": true, + "LS": true, + "LT": true, + "LTD": true, + "LTDA": true, + "LU": true, + "LUNDBECK": true, + "LUPIN": true, + "LUXE": true, + "LUXURY": true, + "LV": true, + "LY": true, + "MA": true, + "MACYS": true, + "MADRID": true, + "MAIF": true, + "MAISON": true, + "MAKEUP": true, + "MAN": true, + "MANAGEMENT": true, + "MANGO": true, + "MAP": true, + "MARKET": true, + "MARKETING": true, + "MARKETS": true, + "MARRIOTT": true, + "MARSHALLS": true, + "MASERATI": true, + "MATTEL": true, + "MBA": true, + "MC": true, + "MCKINSEY": true, + "MD": true, + "ME": true, + "MED": true, + "MEDIA": true, + "MEET": true, + "MELBOURNE": true, + "MEME": true, + "MEMORIAL": true, + "MEN": true, + "MENU": true, + "MERCKMSD": true, + "METLIFE": true, + "MG": true, + "MH": true, + "MIAMI": true, + "MICROSOFT": true, + "MIL": true, + "MINI": true, + "MINT": true, + "MIT": true, + "MITSUBISHI": true, + "MK": true, + "ML": true, + "MLB": true, + "MLS": true, + "MM": true, + "MMA": true, + "MN": true, + "MO": true, + "MOBI": true, + "MOBILE": true, + "MOBILY": true, + "MODA": true, + "MOE": true, + "MOI": true, + "MOM": true, + "MONASH": true, + "MONEY": true, + "MONSTER": true, + "MOPAR": true, + "MORMON": true, + "MORTGAGE": true, + "MOSCOW": true, + "MOTO": true, + "MOTORCYCLES": true, + "MOV": true, + "MOVIE": true, + "MOVISTAR": true, + "MP": true, + "MQ": true, + "MR": true, + "MS": true, + "MSD": true, + "MT": true, + "MTN": true, + "MTR": true, + "MU": true, + "MUSEUM": true, + "MUTUAL": true, + "MV": true, + "MW": true, + "MX": true, + "MY": true, + "MZ": true, + "NA": true, + "NAB": true, + "NADEX": true, + "NAGOYA": true, + "NAME": true, + "NATIONWIDE": true, + "NATURA": true, + "NAVY": true, + "NBA": true, + "NC": true, + "NE": true, + "NEC": true, + "NET": true, + "NETBANK": true, + "NETFLIX": true, + "NETWORK": true, + "NEUSTAR": true, + "NEW": true, + "NEWHOLLAND": true, + "NEWS": true, + "NEXT": true, + "NEXTDIRECT": true, + "NEXUS": true, + "NF": true, + "NFL": true, + "NG": true, + "NGO": true, + "NHK": true, + "NI": true, + "NICO": true, + "NIKE": true, + "NIKON": true, + "NINJA": true, + "NISSAN": true, + "NISSAY": true, + "NL": true, + "NO": true, + "NOKIA": true, + "NORTHWESTERNMUTUAL": true, + "NORTON": true, + "NOW": true, + "NOWRUZ": true, + "NOWTV": true, + "NP": true, + "NR": true, + "NRA": true, + "NRW": true, + "NTT": true, + "NU": true, + "NYC": true, + "NZ": true, + "OBI": true, + "OBSERVER": true, + "OFF": true, + "OFFICE": true, + "OKINAWA": true, + "OLAYAN": true, + "OLAYANGROUP": true, + "OLDNAVY": true, + "OLLO": true, + "OM": true, + "OMEGA": true, + "ONE": true, + "ONG": true, + "ONL": true, + "ONLINE": true, + "ONYOURSIDE": true, + "OOO": true, + "OPEN": true, + "ORACLE": true, + "ORANGE": true, + "ORG": true, + "ORGANIC": true, + "ORIGINS": true, + "OSAKA": true, + "OTSUKA": true, + "OTT": true, + "OVH": true, + "PA": true, + "PAGE": true, + "PANASONIC": true, + "PARIS": true, + "PARS": true, + "PARTNERS": true, + "PARTS": true, + "PARTY": true, + "PASSAGENS": true, + "PAY": true, + "PCCW": true, + "PE": true, + "PET": true, + "PF": true, + "PFIZER": true, + "PG": true, + "PH": true, + "PHARMACY": true, + "PHD": true, + "PHILIPS": true, + "PHONE": true, + "PHOTO": true, + "PHOTOGRAPHY": true, + "PHOTOS": true, + "PHYSIO": true, + "PIAGET": true, + "PICS": true, + "PICTET": true, + "PICTURES": true, + "PID": true, + "PIN": true, + "PING": true, + "PINK": true, + "PIONEER": true, + "PIZZA": true, + "PK": true, + "PL": true, + "PLACE": true, + "PLAY": true, + "PLAYSTATION": true, + "PLUMBING": true, + "PLUS": true, + "PM": true, + "PN": true, + "PNC": true, + "POHL": true, + "POKER": true, + "POLITIE": true, + "PORN": true, + "POST": true, + "PR": true, + "PRAMERICA": true, + "PRAXI": true, + "PRESS": true, + "PRIME": true, + "PRO": true, + "PROD": true, + "PRODUCTIONS": true, + "PROF": true, + "PROGRESSIVE": true, + "PROMO": true, + "PROPERTIES": true, + "PROPERTY": true, + "PROTECTION": true, + "PRU": true, + "PRUDENTIAL": true, + "PS": true, + "PT": true, + "PUB": true, + "PW": true, + "PWC": true, + "PY": true, + "QA": true, + "QPON": true, + "QUEBEC": true, + "QUEST": true, + "QVC": true, + "RACING": true, + "RADIO": true, + "RAID": true, + "RE": true, + "READ": true, + "REALESTATE": true, + "REALTOR": true, + "REALTY": true, + "RECIPES": true, + "RED": true, + "REDSTONE": true, + "REDUMBRELLA": true, + "REHAB": true, + "REISE": true, + "REISEN": true, + "REIT": true, + "RELIANCE": true, + "REN": true, + "RENT": true, + "RENTALS": true, + "REPAIR": true, + "REPORT": true, + "REPUBLICAN": true, + "REST": true, + "RESTAURANT": true, + "REVIEW": true, + "REVIEWS": true, + "REXROTH": true, + "RICH": true, + "RICHARDLI": true, + "RICOH": true, + "RIGHTATHOME": true, + "RIL": true, + "RIO": true, + "RIP": true, + "RMIT": true, + "RO": true, + "ROCHER": true, + "ROCKS": true, + "RODEO": true, + "ROGERS": true, + "ROOM": true, + "RS": true, + "RSVP": true, + "RU": true, + "RUGBY": true, + "RUHR": true, + "RUN": true, + "RW": true, + "RWE": true, + "RYUKYU": true, + "SA": true, + "SAARLAND": true, + "SAFE": true, + "SAFETY": true, + "SAKURA": true, + "SALE": true, + "SALON": true, + "SAMSCLUB": true, + "SAMSUNG": true, + "SANDVIK": true, + "SANDVIKCOROMANT": true, + "SANOFI": true, + "SAP": true, + "SARL": true, + "SAS": true, + "SAVE": true, + "SAXO": true, + "SB": true, + "SBI": true, + "SBS": true, + "SC": true, + "SCA": true, + "SCB": true, + "SCHAEFFLER": true, + "SCHMIDT": true, + "SCHOLARSHIPS": true, + "SCHOOL": true, + "SCHULE": true, + "SCHWARZ": true, + "SCIENCE": true, + "SCJOHNSON": true, + "SCOR": true, + "SCOT": true, + "SD": true, + "SE": true, + "SEARCH": true, + "SEAT": true, + "SECURE": true, + "SECURITY": true, + "SEEK": true, + "SELECT": true, + "SENER": true, + "SERVICES": true, + "SES": true, + "SEVEN": true, + "SEW": true, + "SEX": true, + "SEXY": true, + "SFR": true, + "SG": true, + "SH": true, + "SHANGRILA": true, + "SHARP": true, + "SHAW": true, + "SHELL": true, + "SHIA": true, + "SHIKSHA": true, + "SHOES": true, + "SHOP": true, + "SHOPPING": true, + "SHOUJI": true, + "SHOW": true, + "SHOWTIME": true, + "SHRIRAM": true, + "SI": true, + "SILK": true, + "SINA": true, + "SINGLES": true, + "SITE": true, + "SJ": true, + "SK": true, + "SKI": true, + "SKIN": true, + "SKY": true, + "SKYPE": true, + "SL": true, + "SLING": true, + "SM": true, + "SMART": true, + "SMILE": true, + "SN": true, + "SNCF": true, + "SO": true, + "SOCCER": true, + "SOCIAL": true, + "SOFTBANK": true, + "SOFTWARE": true, + "SOHU": true, + "SOLAR": true, + "SOLUTIONS": true, + "SONG": true, + "SONY": true, + "SOY": true, + "SPACE": true, + "SPORT": true, + "SPOT": true, + "SPREADBETTING": true, + "SR": true, + "SRL": true, + "SRT": true, + "SS": true, + "ST": true, + "STADA": true, + "STAPLES": true, + "STAR": true, + "STARHUB": true, + "STATEBANK": true, + "STATEFARM": true, + "STC": true, + "STCGROUP": true, + "STOCKHOLM": true, + "STORAGE": true, + "STORE": true, + "STREAM": true, + "STUDIO": true, + "STUDY": true, + "STYLE": true, + "SU": true, + "SUCKS": true, + "SUPPLIES": true, + "SUPPLY": true, + "SUPPORT": true, + "SURF": true, + "SURGERY": true, + "SUZUKI": true, + "SV": true, + "SWATCH": true, + "SWIFTCOVER": true, + "SWISS": true, + "SX": true, + "SY": true, + "SYDNEY": true, + "SYMANTEC": true, + "SYSTEMS": true, + "SZ": true, + "TAB": true, + "TAIPEI": true, + "TALK": true, + "TAOBAO": true, + "TARGET": true, + "TATAMOTORS": true, + "TATAR": true, + "TATTOO": true, + "TAX": true, + "TAXI": true, + "TC": true, + "TCI": true, + "TD": true, + "TDK": true, + "TEAM": true, + "TECH": true, + "TECHNOLOGY": true, + "TEL": true, + "TELEFONICA": true, + "TEMASEK": true, + "TENNIS": true, + "TEVA": true, + "TF": true, + "TG": true, + "TH": true, + "THD": true, + "THEATER": true, + "THEATRE": true, + "TIAA": true, + "TICKETS": true, + "TIENDA": true, + "TIFFANY": true, + "TIPS": true, + "TIRES": true, + "TIROL": true, + "TJ": true, + "TJMAXX": true, + "TJX": true, + "TK": true, + "TKMAXX": true, + "TL": true, + "TM": true, + "TMALL": true, + "TN": true, + "TO": true, + "TODAY": true, + "TOKYO": true, + "TOOLS": true, + "TOP": true, + "TORAY": true, + "TOSHIBA": true, + "TOTAL": true, + "TOURS": true, + "TOWN": true, + "TOYOTA": true, + "TOYS": true, + "TR": true, + "TRADE": true, + "TRADING": true, + "TRAINING": true, + "TRAVEL": true, + "TRAVELCHANNEL": true, + "TRAVELERS": true, + "TRAVELERSINSURANCE": true, + "TRUST": true, + "TRV": true, + "TT": true, + "TUBE": true, + "TUI": true, + "TUNES": true, + "TUSHU": true, + "TV": true, + "TVS": true, + "TW": true, + "TZ": true, + "UA": true, + "UBANK": true, + "UBS": true, + "UCONNECT": true, + "UG": true, + "UK": true, + "UNICOM": true, + "UNIVERSITY": true, + "UNO": true, + "UOL": true, + "UPS": true, + "US": true, + "UY": true, + "UZ": true, + "VA": true, + "VACATIONS": true, + "VANA": true, + "VANGUARD": true, + "VC": true, + "VE": true, + "VEGAS": true, + "VENTURES": true, + "VERISIGN": true, + "VERSICHERUNG": true, + "VET": true, + "VG": true, + "VI": true, + "VIAJES": true, + "VIDEO": true, + "VIG": true, + "VIKING": true, + "VILLAS": true, + "VIN": true, + "VIP": true, + "VIRGIN": true, + "VISA": true, + "VISION": true, + "VISTAPRINT": true, + "VIVA": true, + "VIVO": true, + "VLAANDEREN": true, + "VN": true, + "VODKA": true, + "VOLKSWAGEN": true, + "VOLVO": true, + "VOTE": true, + "VOTING": true, + "VOTO": true, + "VOYAGE": true, + "VU": true, + "VUELOS": true, + "WALES": true, + "WALMART": true, + "WALTER": true, + "WANG": true, + "WANGGOU": true, + "WARMAN": true, + "WATCH": true, + "WATCHES": true, + "WEATHER": true, + "WEATHERCHANNEL": true, + "WEBCAM": true, + "WEBER": true, + "WEBSITE": true, + "WED": true, + "WEDDING": true, + "WEIBO": true, + "WEIR": true, + "WF": true, + "WHOSWHO": true, + "WIEN": true, + "WIKI": true, + "WILLIAMHILL": true, + "WIN": true, + "WINDOWS": true, + "WINE": true, + "WINNERS": true, + "WME": true, + "WOLTERSKLUWER": true, + "WOODSIDE": true, + "WORK": true, + "WORKS": true, + "WORLD": true, + "WOW": true, + "WS": true, + "WTC": true, + "WTF": true, + "XBOX": true, + "XEROX": true, + "XFINITY": true, + "XIHUAN": true, + "XIN": true, + "XN--11B4C3D": true, + "XN--1CK2E1B": true, + "XN--1QQW23A": true, + "XN--2SCRJ9C": true, + "XN--30RR7Y": true, + "XN--3BST00M": true, + "XN--3DS443G": true, + "XN--3E0B707E": true, + "XN--3HCRJ9C": true, + "XN--3OQ18VL8PN36A": true, + "XN--3PXU8K": true, + "XN--42C2D9A": true, + "XN--45BR5CYL": true, + "XN--45BRJ9C": true, + "XN--45Q11C": true, + "XN--4GBRIM": true, + "XN--54B7FTA0CC": true, + "XN--55QW42G": true, + "XN--55QX5D": true, + "XN--5SU34J936BGSG": true, + "XN--5TZM5G": true, + "XN--6FRZ82G": true, + "XN--6QQ986B3XL": true, + "XN--80ADXHKS": true, + "XN--80AO21A": true, + "XN--80AQECDR1A": true, + "XN--80ASEHDB": true, + "XN--80ASWG": true, + "XN--8Y0A063A": true, + "XN--90A3AC": true, + "XN--90AE": true, + "XN--90AIS": true, + "XN--9DBQ2A": true, + "XN--9ET52U": true, + "XN--9KRT00A": true, + "XN--B4W605FERD": true, + "XN--BCK1B9A5DRE4C": true, + "XN--C1AVG": true, + "XN--C2BR7G": true, + "XN--CCK2B3B": true, + "XN--CG4BKI": true, + "XN--CLCHC0EA0B2G2A9GCD": true, + "XN--CZR694B": true, + "XN--CZRS0T": true, + "XN--CZRU2D": true, + "XN--D1ACJ3B": true, + "XN--D1ALF": true, + "XN--E1A4C": true, + "XN--ECKVDTC9D": true, + "XN--EFVY88H": true, + "XN--ESTV75G": true, + "XN--FCT429K": true, + "XN--FHBEI": true, + "XN--FIQ228C5HS": true, + "XN--FIQ64B": true, + "XN--FIQS8S": true, + "XN--FIQZ9S": true, + "XN--FJQ720A": true, + "XN--FLW351E": true, + "XN--FPCRJ9C3D": true, + "XN--FZC2C9E2C": true, + "XN--FZYS8D69UVGM": true, + "XN--G2XX48C": true, + "XN--GCKR3F0F": true, + "XN--GECRJ9C": true, + "XN--GK3AT1E": true, + "XN--H2BREG3EVE": true, + "XN--H2BRJ9C": true, + "XN--H2BRJ9C8C": true, + "XN--HXT814E": true, + "XN--I1B6B1A6A2E": true, + "XN--IMR513N": true, + "XN--IO0A7I": true, + "XN--J1AEF": true, + "XN--J1AMH": true, + "XN--J6W193G": true, + "XN--JLQ61U9W7B": true, + "XN--JVR189M": true, + "XN--KCRX77D1X4A": true, + "XN--KPRW13D": true, + "XN--KPRY57D": true, + "XN--KPU716F": true, + "XN--KPUT3I": true, + "XN--L1ACC": true, + "XN--LGBBAT1AD8J": true, + "XN--MGB9AWBF": true, + "XN--MGBA3A3EJT": true, + "XN--MGBA3A4F16A": true, + "XN--MGBA7C0BBN0A": true, + "XN--MGBAAKC7DVF": true, + "XN--MGBAAM7A8H": true, + "XN--MGBAB2BD": true, + "XN--MGBAH1A3HJKRD": true, + "XN--MGBAI9AZGQP6J": true, + "XN--MGBAYH7GPA": true, + "XN--MGBB9FBPOB": true, + "XN--MGBBH1A": true, + "XN--MGBBH1A71E": true, + "XN--MGBC0A9AZCG": true, + "XN--MGBCA7DZDO": true, + "XN--MGBERP4A5D4AR": true, + "XN--MGBGU82A": true, + "XN--MGBI4ECEXP": true, + "XN--MGBPL2FH": true, + "XN--MGBT3DHD": true, + "XN--MGBTX2B": true, + "XN--MGBX4CD0AB": true, + "XN--MIX891F": true, + "XN--MK1BU44C": true, + "XN--MXTQ1M": true, + "XN--NGBC5AZD": true, + "XN--NGBE9E0A": true, + "XN--NGBRX": true, + "XN--NODE": true, + "XN--NQV7F": true, + "XN--NQV7FS00EMA": true, + "XN--NYQY26A": true, + "XN--O3CW4H": true, + "XN--OGBPF8FL": true, + "XN--OTU796D": true, + "XN--P1ACF": true, + "XN--P1AI": true, + "XN--PBT977C": true, + "XN--PGBS0DH": true, + "XN--PSSY2U": true, + "XN--Q9JYB4C": true, + "XN--QCKA1PMC": true, + "XN--QXAM": true, + "XN--RHQV96G": true, + "XN--ROVU88B": true, + "XN--RVC1E0AM3E": true, + "XN--S9BRJ9C": true, + "XN--SES554G": true, + "XN--T60B56A": true, + "XN--TCKWE": true, + "XN--TIQ49XQYJ": true, + "XN--UNUP4Y": true, + "XN--VERMGENSBERATER-CTB": true, + "XN--VERMGENSBERATUNG-PWB": true, + "XN--VHQUV": true, + "XN--VUQ861B": true, + "XN--W4R85EL8FHU5DNRA": true, + "XN--W4RS40L": true, + "XN--WGBH1C": true, + "XN--WGBL6A": true, + "XN--XHQ521B": true, + "XN--XKC2AL3HYE2A": true, + "XN--XKC2DL3A5EE0H": true, + "XN--Y9A3AQ": true, + "XN--YFRO4I67O": true, + "XN--YGBI2AMMX": true, + "XN--ZFR164B": true, + "XXX": true, + "XYZ": true, + "YACHTS": true, + "YAHOO": true, + "YAMAXUN": true, + "YANDEX": true, + "YE": true, + "YODOBASHI": true, + "YOGA": true, + "YOKOHAMA": true, + "YOU": true, + "YOUTUBE": true, + "YT": true, + "YUN": true, + "ZA": true, + "ZAPPOS": true, + "ZARA": true, + "ZERO": true, + "ZIP": true, + "ZM": true, + "ZONE": true, + "ZUERICH": true, + "ZW": true, +} diff --git a/vendor/github.com/jbenet/go-temp-err-catcher/.travis.yml b/vendor/github.com/jbenet/go-temp-err-catcher/.travis.yml new file mode 100644 index 00000000..7b571f40 --- /dev/null +++ b/vendor/github.com/jbenet/go-temp-err-catcher/.travis.yml @@ -0,0 +1,9 @@ +language: go + +go: + - 1.3 + - release + - tip + +script: + - go test -race -cpu=5 -v ./... diff --git a/vendor/github.com/jbenet/go-temp-err-catcher/LICENSE b/vendor/github.com/jbenet/go-temp-err-catcher/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/jbenet/go-temp-err-catcher/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/jbenet/go-temp-err-catcher/README.md b/vendor/github.com/jbenet/go-temp-err-catcher/README.md new file mode 100644 index 00000000..acd4cf53 --- /dev/null +++ b/vendor/github.com/jbenet/go-temp-err-catcher/README.md @@ -0,0 +1,78 @@ +# go-temp-err-catcher + +This is a little package to use with your net.Listeners. + +Docs: https://godoc.org/github.com/jbenet/go-temp-err-catcher + +Get: + + go get github.com/jbenet/go-temp-err-catcher + +## Examples + +It is meant to be used with things like net.Lister.Accept: + +```go +import ( + tec "github.com/jbenet/go-temp-err-catcher" +) + +func listen(listener net.Listener) { + var c tec.TempErrCatcher + + for { + conn, err := listener.Accept() + if err != nil && c.IsTemporary(c) { + continue + } + return conn, err + } +} +``` + +You can make your errors implement `Temporary`: + +```go +type errTemp struct { + e error +} + +func (e errTemp) Temporary() bool { + return true +} + +func (e errTemp) Error() string { + return e.e.Error() +} + +err := errors.New("beep boop") +var c tec.TempErrCatcher +c.IsTemporary(err) // false +c.IsTemporary(errTemp{err}) // true +``` + +Or just use `ErrTemp`: + +```go +err := errors.New("beep boop") +var c tec.TempErrCatcher +c.IsTemporary(err) // false +c.IsTemporary(tec.ErrTemp{err}) // true +``` + + +You can also define an `IsTemp` function to classify errors: + +```go +var ErrSkip = errors.New("this should be skipped") +var ErrNotSkip = errors.New("this should not be skipped") + +var c tec.TempErrCatcher +c.IsTemp = func(e error) bool { + return e == ErrSkip +} + +c.IsTemporary(ErrSkip) // true +c.IsTemporary(ErrNotSkip) // false +c.IsTemporary(ErrTemp) // false! no longer accepts Temporary() +``` diff --git a/vendor/github.com/jbenet/go-temp-err-catcher/doc.go b/vendor/github.com/jbenet/go-temp-err-catcher/doc.go new file mode 100644 index 00000000..766c8b6f --- /dev/null +++ b/vendor/github.com/jbenet/go-temp-err-catcher/doc.go @@ -0,0 +1,62 @@ +// Package temperrcatcher provides a TempErrCatcher object, +// which implements simple error-retrying functionality. +// It is meant to be used with things like net.Lister.Accept: +// +// import ( +// tec "github.com/jbenet/go-temp-err-catcher" +// ) +// +// func listen(listener net.Listener) { +// var c tec.TempErrCatcher +// +// for { +// conn, err := listener.Accept() +// if err != nil && c.IsTemporary(c) { +// continue +// } +// return conn, err +// } +// } +// +// You can make your errors implement `Temporary`: +// +// type errTemp struct { +// e error +// } +// +// func (e errTemp) Temporary() bool { +// return true +// } +// +// func (e errTemp) Error() string { +// return e.e.Error() +// } +// +// err := errors.New("beep boop") +// var c tec.TempErrCatcher +// c.IsTemporary(err) // false +// c.IsTemporary(errTemp{err}) // true +// +// Or just use `ErrTemp`: +// +// err := errors.New("beep boop") +// var c tec.TempErrCatcher +// c.IsTemporary(err) // false +// c.IsTemporary(tec.ErrTemp{err}) // true +// +// +// You can also define an `IsTemp` function to classify errors: +// +// var ErrSkip = errors.New("this should be skipped") +// var ErrNotSkip = errors.New("this should not be skipped") +// +// var c tec.TempErrCatcher +// c.IsTemp = func(e error) bool { +// return e == ErrSkip +// } +// +// c.IsTemporary(ErrSkip) // true +// c.IsTemporary(ErrNotSkip) // false +// c.IsTemporary(ErrTemp) // false! no longer accepts Temporary() +// +package temperrcatcher diff --git a/vendor/github.com/jbenet/go-temp-err-catcher/temp_err_catcher.go b/vendor/github.com/jbenet/go-temp-err-catcher/temp_err_catcher.go new file mode 100644 index 00000000..fe8e780c --- /dev/null +++ b/vendor/github.com/jbenet/go-temp-err-catcher/temp_err_catcher.go @@ -0,0 +1,124 @@ +// Package temperrcatcher provides a TempErrCatcher object, +// which implements simple error-retrying functionality. +package temperrcatcher + +import ( + "time" +) + +// InitialDelay governs how long to wait the first time. +// This is defaulted to time.Millisecond, which makes sense +// for network listener failures. You may want a much smaller +// delay. You can configure this package wide, or in each +// TempErrCatcher +var InitialDelay = time.Millisecond + +// Temporary is an interface errors can implement to +// ensure they are correctly classified by the default +// TempErrCatcher classifier +type Temporary interface { + Temporary() bool +} + +// ErrIsTemporary returns whether an error is Temporary(), +// iff it implements the Temporary interface. +func ErrIsTemporary(e error) bool { + te, ok := e.(Temporary) + return ok && te.Temporary() +} + +// TempErrCatcher catches temporary errors for you. It then sleeps +// for a bit before returning (you should then try again). This may +// seem odd, but it's exactly what net/http does: +// http://golang.org/src/net/http/server.go?s=51504:51550#L1728 +// +// You can set a few options in TempErrCatcher. They all have defaults +// so a zero TempErrCatcher is ready to be used: +// +// var c tec.TempErrCatcher +// c.IsTemporary(tempErr) +// +type TempErrCatcher struct { + IsTemp func(error) bool // the classifier to use. default: ErrIsTemporary + Wait func(time.Duration) // the wait func to call. default: time.Sleep + Max time.Duration // the maximum time to wait. default: time.Second + Start time.Duration // the delay to start with. default: InitialDelay + delay time.Duration + last time.Time +} + +func (tec *TempErrCatcher) init() { + if tec.Max == 0 { + tec.Max = time.Second + } + if tec.IsTemp == nil { + tec.IsTemp = ErrIsTemporary + } + if tec.Wait == nil { + tec.Wait = time.Sleep + } + if tec.Start == 0 { + tec.Start = InitialDelay + } +} + +// IsTemporary checks whether an error is temporary. It will call +// tec.Wait before returning, with a delay. The delay is also +// doubled, so we do not constantly spin. This is the strategy +// net.Listener uses. +// +// Note: you will want to call Reset() if you get a success, +// so that the stored delay is brough back to 0. +func (tec *TempErrCatcher) IsTemporary(e error) bool { + tec.init() + if tec.IsTemp(e) { + now := time.Now() + if now.Sub(tec.last) > (tec.delay * 5) { + // this is a "new streak" of temp failures. reset. + tec.Reset() + } + + if tec.delay == 0 { // init case. + tec.delay = tec.Start + } else { + tec.delay *= 2 + } + + if tec.delay > tec.Max { + tec.delay = tec.Max + } + tec.Wait(tec.delay) + tec.last = now + return true + } + tec.Reset() // different failure. call reset + return false +} + +// Reset sets the internal delay counter to 0 +func (tec *TempErrCatcher) Reset() { + tec.delay = 0 +} + +// ErrTemporary wraps any error and implements Temporary function. +// +// err := errors.New("beep boop") +// var c tec.TempErrCatcher +// c.IsTemporary(err) // false +// c.IsTemporary(tec.ErrTemp{err}) // true +// +type ErrTemporary struct { + Err error +} + +func (e ErrTemporary) Temporary() bool { + return true +} + +func (e ErrTemporary) Error() string { + return e.Err.Error() +} + +func (e ErrTemporary) String() string { + return e.Error() +} diff --git a/vendor/github.com/jbenet/goprocess/.travis.yml b/vendor/github.com/jbenet/goprocess/.travis.yml new file mode 100644 index 00000000..482adaf9 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/.travis.yml @@ -0,0 +1,9 @@ +sudo: false + +language: go + +go: + - 1.7 + +script: + - go test -race -v ./... diff --git a/vendor/github.com/jbenet/goprocess/LICENSE b/vendor/github.com/jbenet/goprocess/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/jbenet/goprocess/README.md b/vendor/github.com/jbenet/goprocess/README.md new file mode 100644 index 00000000..e2f12e16 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/README.md @@ -0,0 +1,132 @@ +# goprocess - lifecycles in go + +[![travisbadge](https://travis-ci.org/jbenet/goprocess.svg)](https://travis-ci.org/jbenet/goprocess) + +(Based on https://github.com/jbenet/go-ctxgroup) + +- Godoc: https://godoc.org/github.com/jbenet/goprocess + +`goprocess` introduces a way to manage process lifecycles in go. It is +much like [go.net/context](https://godoc.org/code.google.com/p/go.net/context) +(it actually uses a Context), but it is more like a Context-WaitGroup hybrid. +`goprocess` is about being able to start and stop units of work, which may +receive `Close` signals from many clients. Think of it like a UNIX process +tree, but inside go. + +`goprocess` seeks to minimally affect your objects, so you can use it +with both embedding or composition. At the heart of `goprocess` is the +`Process` interface: + +```Go +// Process is the basic unit of work in goprocess. It defines a computation +// with a lifecycle: +// - running (before calling Close), +// - closing (after calling Close at least once), +// - closed (after Close returns, and all teardown has _completed_). +// +// More specifically, it fits this: +// +// p := WithTeardown(tf) // new process is created, it is now running. +// p.AddChild(q) // can register children **before** Closing. +// go p.Close() // blocks until done running teardown func. +// <-p.Closing() // would now return true. +// <-p.childrenDone() // wait on all children to be done +// p.teardown() // runs the user's teardown function tf. +// p.Close() // now returns, with error teardown returned. +// <-p.Closed() // would now return true. +// +// Processes can be arranged in a process "tree", where children are +// automatically Closed if their parents are closed. (Note, it is actually +// a Process DAG, children may have multiple parents). A process may also +// optionally wait for another to fully Close before beginning to Close. +// This makes it easy to ensure order of operations and proper sequential +// teardown of resurces. For example: +// +// p1 := goprocess.WithTeardown(func() error { +// fmt.Println("closing 1") +// }) +// p2 := goprocess.WithTeardown(func() error { +// fmt.Println("closing 2") +// }) +// p3 := goprocess.WithTeardown(func() error { +// fmt.Println("closing 3") +// }) +// +// p1.AddChild(p2) +// p2.AddChild(p3) +// +// +// go p1.Close() +// go p2.Close() +// go p3.Close() +// +// // Output: +// // closing 3 +// // closing 2 +// // closing 1 +// +// Process is modelled after the UNIX processes group idea, and heavily +// informed by sync.WaitGroup and go.net/context.Context. +// +// In the function documentation of this interface, `p` always refers to +// the self Process. +type Process interface { + + // WaitFor makes p wait for q before exiting. Thus, p will _always_ close + // _after_ q. Note well: a waiting cycle is deadlock. + // + // If q is already Closed, WaitFor calls p.Close() + // If p is already Closing or Closed, WaitFor panics. This is the same thing + // as calling Add(1) _after_ calling Done() on a wait group. Calling WaitFor + // on an already-closed process is a programming error likely due to bad + // synchronization + WaitFor(q Process) + + // AddChildNoWait registers child as a "child" of Process. As in UNIX, + // when parent is Closed, child is Closed -- child may Close beforehand. + // This is the equivalent of calling: + // + // go func(parent, child Process) { + // <-parent.Closing() + // child.Close() + // }(p, q) + // + // Note: the naming of functions is `AddChildNoWait` and `AddChild` (instead + // of `AddChild` and `AddChildWaitFor`) because: + // - it is the more common operation, + // - explicitness is helpful in the less common case (no waiting), and + // - usual "child" semantics imply parent Processes should wait for children. + AddChildNoWait(q Process) + + // AddChild is the equivalent of calling: + // parent.AddChildNoWait(q) + // parent.WaitFor(q) + AddChild(q Process) + + // Go creates a new process, adds it as a child, and spawns the ProcessFunc f + // in its own goroutine. It is equivalent to: + // + // GoChild(p, f) + // + // It is useful to construct simple asynchronous workers, children of p. + Go(f ProcessFunc) Process + + // Close ends the process. Close blocks until the process has completely + // shut down, and any teardown has run _exactly once_. The returned error + // is available indefinitely: calling Close twice returns the same error. + // If the process has already been closed, Close returns immediately. + Close() error + + // Closing is a signal to wait upon. The returned channel is closed + // _after_ Close has been called at least once, but teardown may or may + // not be done yet. The primary use case of Closing is for children who + // need to know when a parent is shutting down, and therefore also shut + // down. + Closing() <-chan struct{} + + // Closed is a signal to wait upon. The returned channel is closed + // _after_ Close has completed; teardown has finished. The primary use case + // of Closed is waiting for a Process to Close without _causing_ the Close. + Closed() <-chan struct{} +} +``` diff --git a/vendor/github.com/jbenet/goprocess/context/context.go b/vendor/github.com/jbenet/goprocess/context/context.go new file mode 100644 index 00000000..07308dad --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/context/context.go @@ -0,0 +1,111 @@ +package goprocessctx + +import ( + "context" + + goprocess "github.com/jbenet/goprocess" +) + +// WithContext constructs and returns a Process that respects +// given context. It is the equivalent of: +// +// func ProcessWithContext(ctx context.Context) goprocess.Process { +// p := goprocess.WithParent(goprocess.Background()) +// CloseAfterContext(p, ctx) +// return p +// } +// +func WithContext(ctx context.Context) goprocess.Process { + p := goprocess.WithParent(goprocess.Background()) + CloseAfterContext(p, ctx) + return p +} + +// WithContextAndTeardown is a helper function to set teardown at initiation +// of WithContext +func WithContextAndTeardown(ctx context.Context, tf goprocess.TeardownFunc) goprocess.Process { + p := goprocess.WithTeardown(tf) + CloseAfterContext(p, ctx) + return p +} + +// WaitForContext makes p WaitFor ctx. When Closing, p waits for +// ctx.Done(), before being Closed(). It is simply: +// +// p.WaitFor(goprocess.WithContext(ctx)) +// +func WaitForContext(ctx context.Context, p goprocess.Process) { + p.WaitFor(WithContext(ctx)) +} + +// CloseAfterContext schedules the process to close after the given +// context is done. It is the equivalent of: +// +// func CloseAfterContext(p goprocess.Process, ctx context.Context) { +// go func() { +// <-ctx.Done() +// p.Close() +// }() +// } +// +func CloseAfterContext(p goprocess.Process, ctx context.Context) { + if p == nil { + panic("nil Process") + } + if ctx == nil { + panic("nil Context") + } + + // context.Background(). if ctx.Done() is nil, it will never be done. + // we check for this to avoid wasting a goroutine forever. + if ctx.Done() == nil { + return + } + + go func() { + <-ctx.Done() + p.Close() + }() +} + +// WithProcessClosing returns a context.Context derived from ctx that +// is cancelled as p is Closing (after: <-p.Closing()). It is simply: +// +// func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context { +// ctx, cancel := context.WithCancel(ctx) +// go func() { +// <-p.Closing() +// cancel() +// }() +// return ctx +// } +// +func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context { + ctx, cancel := context.WithCancel(ctx) + go func() { + <-p.Closing() + cancel() + }() + return ctx +} + +// WithProcessClosed returns a context.Context that is cancelled +// after Process p is Closed. It is the equivalent of: +// +// func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context { +// ctx, cancel := context.WithCancel(ctx) +// go func() { +// <-p.Closed() +// cancel() +// }() +// return ctx +// } +// +func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context { + ctx, cancel := context.WithCancel(ctx) + go func() { + <-p.Closed() + cancel() + }() + return ctx +} diff --git a/vendor/github.com/jbenet/goprocess/context/derive.go b/vendor/github.com/jbenet/goprocess/context/derive.go new file mode 100644 index 00000000..c7b91306 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/context/derive.go @@ -0,0 +1,59 @@ +package goprocessctx + +import ( + "context" + "errors" + "time" + + goprocess "github.com/jbenet/goprocess" +) + +const ( + closing = iota + closed +) + +type procContext struct { + done <-chan struct{} + which int +} + +// OnClosingContext derives a context from a given goprocess that will +// be 'Done' when the process is closing +func OnClosingContext(p goprocess.Process) context.Context { + return &procContext{ + done: p.Closing(), + which: closing, + } +} + +// OnClosedContext derives a context from a given goprocess that will +// be 'Done' when the process is closed +func OnClosedContext(p goprocess.Process) context.Context { + return &procContext{ + done: p.Closed(), + which: closed, + } +} + +func (c *procContext) Done() <-chan struct{} { + return c.done +} + +func (c *procContext) Deadline() (time.Time, bool) { + return time.Time{}, false +} + +func (c *procContext) Err() error { + if c.which == closing { + return errors.New("process closing") + } else if c.which == closed { + return errors.New("process closed") + } else { + panic("unrecognized process context type") + } +} + +func (c *procContext) Value(key interface{}) interface{} { + return nil +} diff --git a/vendor/github.com/jbenet/goprocess/goprocess.go b/vendor/github.com/jbenet/goprocess/goprocess.go new file mode 100644 index 00000000..a81ec8b9 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/goprocess.go @@ -0,0 +1,283 @@ +// Package goprocess introduces a Process abstraction that allows simple +// organization, and orchestration of work. It is much like a WaitGroup, +// and much like a context.Context, but also ensures safe **exactly-once**, +// and well-ordered teardown semantics. +package goprocess + +import ( + "os" + "os/signal" +) + +// Process is the basic unit of work in goprocess. It defines a computation +// with a lifecycle: +// - running (before calling Close), +// - closing (after calling Close at least once), +// - closed (after Close returns, and all teardown has _completed_). +// +// More specifically, it fits this: +// +// p := WithTeardown(tf) // new process is created, it is now running. +// p.AddChild(q) // can register children **before** Closed(). +// go p.Close() // blocks until done running teardown func. +// <-p.Closing() // would now return true. +// <-p.childrenDone() // wait on all children to be done +// p.teardown() // runs the user's teardown function tf. +// p.Close() // now returns, with error teardown returned. +// <-p.Closed() // would now return true. +// +// Processes can be arranged in a process "tree", where children are +// automatically Closed if their parents are closed. (Note, it is actually +// a Process DAG, children may have multiple parents). A process may also +// optionally wait for another to fully Close before beginning to Close. +// This makes it easy to ensure order of operations and proper sequential +// teardown of resurces. For example: +// +// p1 := goprocess.WithTeardown(func() error { +// fmt.Println("closing 1") +// }) +// p2 := goprocess.WithTeardown(func() error { +// fmt.Println("closing 2") +// }) +// p3 := goprocess.WithTeardown(func() error { +// fmt.Println("closing 3") +// }) +// +// p1.AddChild(p2) +// p2.AddChild(p3) +// +// +// go p1.Close() +// go p2.Close() +// go p3.Close() +// +// // Output: +// // closing 3 +// // closing 2 +// // closing 1 +// +// Process is modelled after the UNIX processes group idea, and heavily +// informed by sync.WaitGroup and go.net/context.Context. +// +// In the function documentation of this interface, `p` always refers to +// the self Process. +type Process interface { + + // WaitFor makes p wait for q before exiting. Thus, p will _always_ close + // _after_ q. Note well: a waiting cycle is deadlock. + // + // If q is already Closed, WaitFor calls p.Close() + // If p is already Closing or Closed, WaitFor panics. This is the same thing + // as calling Add(1) _after_ calling Done() on a wait group. Calling WaitFor + // on an already-closed process is a programming error likely due to bad + // synchronization + WaitFor(q Process) + + // AddChildNoWait registers child as a "child" of Process. As in UNIX, + // when parent is Closed, child is Closed -- child may Close beforehand. + // This is the equivalent of calling: + // + // go func(parent, child Process) { + // <-parent.Closing() + // child.Close() + // }(p, q) + // + // Note: the naming of functions is `AddChildNoWait` and `AddChild` (instead + // of `AddChild` and `AddChildWaitFor`) because: + // - it is the more common operation, + // - explicitness is helpful in the less common case (no waiting), and + // - usual "child" semantics imply parent Processes should wait for children. + AddChildNoWait(q Process) + + // AddChild is the equivalent of calling: + // parent.AddChildNoWait(q) + // parent.WaitFor(q) + AddChild(q Process) + + // Go is much like `go`, as it runs a function in a newly spawned goroutine. + // The neat part of Process.Go is that the Process object you call it on will: + // * construct a child Process, and call AddChild(child) on it + // * spawn a goroutine, and call the given function + // * Close the child when the function exits. + // This way, you can rest assured each goroutine you spawn has its very own + // Process context, and that it will be closed when the function exits. + // It is the function's responsibility to respect the Closing of its Process, + // namely it should exit (return) when <-Closing() is ready. It is basically: + // + // func (p Process) Go(f ProcessFunc) Process { + // child := WithParent(p) + // go func () { + // f(child) + // child.Close() + // }() + // } + // + // It is useful to construct simple asynchronous workers, children of p. + Go(f ProcessFunc) Process + + // SetTeardown sets the process's teardown to tf. + SetTeardown(tf TeardownFunc) + + // Close ends the process. Close blocks until the process has completely + // shut down, and any teardown has run _exactly once_. The returned error + // is available indefinitely: calling Close twice returns the same error. + // If the process has already been closed, Close returns immediately. + Close() error + + // CloseAfterChildren calls Close _after_ its children have Closed + // normally (i.e. it _does not_ attempt to close them). + CloseAfterChildren() error + + // Closing is a signal to wait upon. The returned channel is closed + // _after_ Close has been called at least once, but teardown may or may + // not be done yet. The primary use case of Closing is for children who + // need to know when a parent is shutting down, and therefore also shut + // down. + Closing() <-chan struct{} + + // Closed is a signal to wait upon. The returned channel is closed + // _after_ Close has completed; teardown has finished. The primary use case + // of Closed is waiting for a Process to Close without _causing_ the Close. + Closed() <-chan struct{} + + // Err waits until the process is closed, and then returns any error that + // occurred during shutdown. + Err() error +} + +// TeardownFunc is a function used to cleanup state at the end of the +// lifecycle of a Process. +type TeardownFunc func() error + +// ProcessFunc is a function that takes a process. Its main use case is goprocess.Go, +// which spawns a ProcessFunc in its own goroutine, and returns a corresponding +// Process object. +type ProcessFunc func(proc Process) + +var nilProcessFunc = func(Process) {} + +// Go is much like `go`: it runs a function in a newly spawned goroutine. The neat +// part of Go is that it provides Process object to communicate between the +// function and the outside world. Thus, callers can easily WaitFor, or Close the +// function. It is the function's responsibility to respect the Closing of its Process, +// namely it should exit (return) when <-Closing() is ready. It is simply: +// +// func Go(f ProcessFunc) Process { +// p := WithParent(Background()) +// p.Go(f) +// return p +// } +// +// Note that a naive implementation of Go like the following would not work: +// +// func Go(f ProcessFunc) Process { +// return Background().Go(f) +// } +// +// This is because having the process you +func Go(f ProcessFunc) Process { + // return GoChild(Background(), f) + + // we use two processes, one for communication, and + // one for ensuring we wait on the function (unclosable from the outside). + p := newProcess(nil) + waitFor := newProcess(nil) + p.WaitFor(waitFor) // prevent p from closing + go func() { + f(p) + waitFor.Close() // allow p to close. + p.Close() // ensure p closes. + }() + return p +} + +// GoChild is like Go, but it registers the returned Process as a child of parent, +// **before** spawning the goroutine, which ensures proper synchronization with parent. +// It is somewhat like +// +// func GoChild(parent Process, f ProcessFunc) Process { +// p := WithParent(parent) +// p.Go(f) +// return p +// } +// +// And it is similar to the classic WaitGroup use case: +// +// func WaitGroupGo(wg sync.WaitGroup, child func()) { +// wg.Add(1) +// go func() { +// child() +// wg.Done() +// }() +// } +// +func GoChild(parent Process, f ProcessFunc) Process { + p := WithParent(parent) + p.Go(f) + return p +} + +// Spawn is an alias of `Go`. In many contexts, Spawn is a +// well-known Process launching word, which fits our use case. +var Spawn = Go + +// SpawnChild is an alias of `GoChild`. In many contexts, Spawn is a +// well-known Process launching word, which fits our use case. +var SpawnChild = GoChild + +// WithTeardown constructs and returns a Process with a TeardownFunc. +// TeardownFunc tf will be called **exactly-once** when Process is +// Closing, after all Children have fully closed, and before p is Closed. +// In fact, Process p will not be Closed until tf runs and exits. +// See lifecycle in Process doc. +func WithTeardown(tf TeardownFunc) Process { + if tf == nil { + panic("nil tf TeardownFunc") + } + return newProcess(tf) +} + +// WithParent constructs and returns a Process with a given parent. +func WithParent(parent Process) Process { + if parent == nil { + panic("nil parent Process") + } + q := newProcess(nil) + parent.AddChild(q) + return q +} + +// WithSignals returns a Process that will Close() when any given signal fires. +// This is useful to bind Process trees to syscall.SIGTERM, SIGKILL, etc. +func WithSignals(sig ...os.Signal) Process { + p := WithParent(Background()) + c := make(chan os.Signal) + signal.Notify(c, sig...) + go func() { + <-c + signal.Stop(c) + p.Close() + }() + return p +} + +// Background returns the "background" Process: a statically allocated +// process that can _never_ close. It also never enters Closing() state. +// Calling Background().Close() will hang indefinitely. +func Background() Process { + return background +} + +// background is the background process +var background = &unclosable{Process: newProcess(nil)} + +// unclosable is a process that _cannot_ be closed. calling Close simply hangs. +type unclosable struct { + Process +} + +func (p *unclosable) Close() error { + var hang chan struct{} + <-hang // hang forever + return nil +} diff --git a/vendor/github.com/jbenet/goprocess/impl-mutex.go b/vendor/github.com/jbenet/goprocess/impl-mutex.go new file mode 100644 index 00000000..fb86fcce --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/impl-mutex.go @@ -0,0 +1,271 @@ +package goprocess + +import ( + "sync" +) + +// process implements Process +type process struct { + children map[*processLink]struct{} // process to close with us + waitfors map[*processLink]struct{} // process to only wait for + waiters []*processLink // processes that wait for us. for gc. + + teardown TeardownFunc // called to run the teardown logic. + waiting chan struct{} // closed when CloseAfterChildrenClosed is called. + closing chan struct{} // closed once close starts. + closed chan struct{} // closed once close is done. + closeErr error // error to return to clients of Close() + + sync.Mutex +} + +// newProcess constructs and returns a Process. +// It will call tf TeardownFunc exactly once: +// **after** all children have fully Closed, +// **after** entering <-Closing(), and +// **before** <-Closed(). +func newProcess(tf TeardownFunc) *process { + return &process{ + teardown: tf, + closed: make(chan struct{}), + closing: make(chan struct{}), + waitfors: make(map[*processLink]struct{}), + children: make(map[*processLink]struct{}), + } +} + +func (p *process) WaitFor(q Process) { + if q == nil { + panic("waiting for nil process") + } + + p.Lock() + + select { + case <-p.Closed(): + panic("Process cannot wait after being closed") + default: + } + + pl := newProcessLink(p, q) + p.waitfors[pl] = struct{}{} + p.Unlock() + go pl.AddToChild() +} + +func (p *process) AddChildNoWait(child Process) { + if child == nil { + panic("adding nil child process") + } + + p.Lock() + + select { + case <-p.Closed(): + panic("Process cannot add children after being closed") + case <-p.Closing(): + go child.Close() + default: + } + + pl := newProcessLink(p, child) + p.children[pl] = struct{}{} + p.Unlock() + go pl.AddToChild() +} + +func (p *process) AddChild(child Process) { + if child == nil { + panic("adding nil child process") + } + + p.Lock() + + select { + case <-p.Closed(): + panic("Process cannot add children after being closed") + case <-p.Closing(): + go child.Close() + default: + } + + pl := newProcessLink(p, child) + if p.waitfors != nil { // if p.waitfors hasn't been set nil + p.waitfors[pl] = struct{}{} + } + if p.children != nil { // if p.children hasn't been set nil + p.children[pl] = struct{}{} + } + p.Unlock() + go pl.AddToChild() +} + +func (p *process) Go(f ProcessFunc) Process { + child := newProcess(nil) + waitFor := newProcess(nil) + child.WaitFor(waitFor) // prevent child from closing + + // add child last, to prevent a closing parent from + // closing all of them prematurely, before running the func. + p.AddChild(child) + go func() { + f(child) + waitFor.Close() // allow child to close. + child.CloseAfterChildren() // close to tear down. + }() + return child +} + +// SetTeardown to assign a teardown function +func (p *process) SetTeardown(tf TeardownFunc) { + if tf == nil { + panic("cannot set nil TeardownFunc") + } + + p.Lock() + if p.teardown != nil { + panic("cannot SetTeardown twice") + } + + p.teardown = tf + select { + case <-p.Closed(): + p.closeErr = tf() + default: + } + p.Unlock() +} + +// Close is the external close function. +// it's a wrapper around internalClose that waits on Closed() +func (p *process) Close() error { + p.Lock() + + // if already closing, or closed, get out. (but wait!) + select { + case <-p.Closing(): + p.Unlock() + <-p.Closed() + return p.closeErr + default: + } + + p.doClose() + p.Unlock() + return p.closeErr +} + +func (p *process) Closing() <-chan struct{} { + return p.closing +} + +func (p *process) Closed() <-chan struct{} { + return p.closed +} + +func (p *process) Err() error { + <-p.Closed() + return p.closeErr +} + +// the _actual_ close process. +func (p *process) doClose() { + // this function is only be called once (protected by p.Lock()). + // and it will panic (on closing channels) otherwise. + + close(p.closing) // signal that we're shutting down (Closing) + + for len(p.children) > 0 || len(p.waitfors) > 0 { + for plc, _ := range p.children { + child := plc.Child() + if child != nil { // check because child may already have been removed. + go child.Close() // force all children to shut down + } + plc.ParentClear() + } + p.children = nil // clear them. release memory. + + // we must be careful not to iterate over waitfors directly, as it may + // change under our feet. + wf := p.waitfors + p.waitfors = nil // clear them. release memory. + for w, _ := range wf { + // Here, we wait UNLOCKED, so that waitfors who are in the middle of + // adding a child to us can finish. we will immediately close the child. + p.Unlock() + <-w.ChildClosed() // wait till all waitfors are fully closed (before teardown) + p.Lock() + w.ParentClear() + } + } + + if p.teardown != nil { + p.closeErr = p.teardown() // actually run the close logic (ok safe to teardown) + } + close(p.closed) // signal that we're shut down (Closed) + + // go remove all the parents from the process links. optimization. + go func(waiters []*processLink) { + for _, pl := range waiters { + pl.ClearChild() + pr, ok := pl.Parent().(*process) + if !ok { + // parent has already been called to close + continue + } + pr.Lock() + delete(pr.waitfors, pl) + delete(pr.children, pl) + pr.Unlock() + } + }(p.waiters) // pass in so + p.waiters = nil // clear them. release memory. +} + +// We will only wait on the children we have now. +// We will not wait on children added subsequently. +// this may change in the future. +func (p *process) CloseAfterChildren() error { + p.Lock() + select { + case <-p.Closed(): + p.Unlock() + return p.Close() // get error. safe, after p.Closed() + case <-p.waiting: // already called it. + p.Unlock() + <-p.Closed() + return p.Close() // get error. safe, after p.Closed() + default: + } + p.Unlock() + + // here only from one goroutine. + + nextToWaitFor := func() Process { + p.Lock() + defer p.Unlock() + for e, _ := range p.waitfors { + c := e.Child() + if c == nil { + continue + } + + select { + case <-c.Closed(): + default: + return c + } + } + return nil + } + + // wait for all processes we're waiting for are closed. + // the semantics here are simple: we will _only_ close + // if there are no processes currently waiting for. + for next := nextToWaitFor(); next != nil; next = nextToWaitFor() { + <-next.Closed() + } + + // YAY! we're done. close + return p.Close() +} diff --git a/vendor/github.com/jbenet/goprocess/link.go b/vendor/github.com/jbenet/goprocess/link.go new file mode 100644 index 00000000..c344c1e6 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/link.go @@ -0,0 +1,121 @@ +package goprocess + +import ( + "sync" +) + +// closedCh is an alread-closed channel. used to return +// in cases where we already know a channel is closed. +var closedCh chan struct{} + +func init() { + closedCh = make(chan struct{}) + close(closedCh) +} + +// a processLink is an internal bookkeeping datastructure. +// it's used to form a relationship between two processes. +// It is mostly for keeping memory usage down (letting +// children close and be garbage-collected). +type processLink struct { + // guards all fields. + // DO NOT HOLD while holding process locks. + // it may be slow, and could deadlock if not careful. + sync.Mutex + parent Process + child Process +} + +func newProcessLink(p, c Process) *processLink { + return &processLink{ + parent: p, + child: c, + } +} + +// Closing returns whether the child is closing +func (pl *processLink) ChildClosing() <-chan struct{} { + // grab a hold of it, and unlock, as .Closing may block. + pl.Lock() + child := pl.child + pl.Unlock() + + if child == nil { // already closed? memory optimization. + return closedCh + } + return child.Closing() +} + +func (pl *processLink) ChildClosed() <-chan struct{} { + // grab a hold of it, and unlock, as .Closed may block. + pl.Lock() + child := pl.child + pl.Unlock() + + if child == nil { // already closed? memory optimization. + return closedCh + } + return child.Closed() +} + +func (pl *processLink) ChildClose() { + // grab a hold of it, and unlock, as .Closed may block. + pl.Lock() + child := pl.child + pl.Unlock() + + if child != nil { // already closed? memory optimization. + child.Close() + } +} + +func (pl *processLink) ClearChild() { + pl.Lock() + pl.child = nil + pl.Unlock() +} + +func (pl *processLink) ParentClear() { + pl.Lock() + pl.parent = nil + pl.Unlock() +} + +func (pl *processLink) Child() Process { + pl.Lock() + defer pl.Unlock() + return pl.child +} + +func (pl *processLink) Parent() Process { + pl.Lock() + defer pl.Unlock() + return pl.parent +} + +func (pl *processLink) AddToChild() { + cp := pl.Child() + + // is it a *process ? if not... panic. + c, ok := cp.(*process) + if !ok { + panic("goprocess does not yet support other process impls.") + } + + // first, is it Closed? + c.Lock() + select { + case <-c.Closed(): + c.Unlock() + + // already closed. must not add. + // we must clear it, though. do so without the lock. + pl.ClearChild() + return + + default: + // put the process link into q's waiters + c.waiters = append(c.waiters, pl) + c.Unlock() + } +} diff --git a/vendor/github.com/jbenet/goprocess/package.json b/vendor/github.com/jbenet/goprocess/package.json new file mode 100644 index 00000000..07485337 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/package.json @@ -0,0 +1,14 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/jbenet/goprocess" + }, + "gx": { + "dvcsimport": "github.com/jbenet/goprocess" + }, + "gxVersion": "0.8.0", + "language": "go", + "license": "", + "name": "goprocess", + "version": "1.0.0" +} diff --git a/vendor/github.com/jbenet/goprocess/periodic/README.md b/vendor/github.com/jbenet/goprocess/periodic/README.md new file mode 100644 index 00000000..7a2c55db --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/periodic/README.md @@ -0,0 +1,4 @@ +# goprocess/periodic - periodic process creation + +- goprocess: https://github.com/jbenet/goprocess +- Godoc: https://godoc.org/github.com/jbenet/goprocess/periodic diff --git a/vendor/github.com/jbenet/goprocess/periodic/periodic.go b/vendor/github.com/jbenet/goprocess/periodic/periodic.go new file mode 100644 index 00000000..823c43dc --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/periodic/periodic.go @@ -0,0 +1,232 @@ +// Package periodic is part of github.com/jbenet/goprocess. +// It provides a simple periodic processor that calls a function +// periodically based on some options. +// +// For example: +// +// // use a time.Duration +// p := periodicproc.Every(time.Second, func(proc goprocess.Process) { +// fmt.Printf("the time is %s and all is well", time.Now()) +// }) +// +// <-time.After(5*time.Second) +// p.Close() +// +// // use a time.Time channel (like time.Ticker) +// p := periodicproc.Tick(time.Tick(time.Second), func(proc goprocess.Process) { +// fmt.Printf("the time is %s and all is well", time.Now()) +// }) +// +// <-time.After(5*time.Second) +// p.Close() +// +// // or arbitrary signals +// signal := make(chan struct{}) +// p := periodicproc.OnSignal(signal, func(proc goprocess.Process) { +// fmt.Printf("the time is %s and all is well", time.Now()) +// }) +// +// signal<- struct{}{} +// signal<- struct{}{} +// <-time.After(5 * time.Second) +// signal<- struct{}{} +// p.Close() +// +package periodicproc + +import ( + "time" + + gp "github.com/jbenet/goprocess" +) + +// Every calls the given ProcessFunc at periodic intervals. Internally, it uses +// <-time.After(interval), so it will have the behavior of waiting _at least_ +// interval in between calls. If you'd prefer the time.Ticker behavior, use +// periodicproc.Tick instead. +// This is sequentially rate limited, only one call will be in-flight at a time. +func Every(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(func(proc gp.Process) { + for { + select { + case <-time.After(interval): + select { + case <-proc.Go(procfunc).Closed(): // spin it out as a child, and wait till it's done. + case <-proc.Closing(): // we're told to close + return + } + case <-proc.Closing(): // we're told to close + return + } + } + }) +} + +// EveryGo calls the given ProcessFunc at periodic intervals. Internally, it uses +// <-time.After(interval) +// This is not rate limited, multiple calls could be in-flight at the same time. +func EveryGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(func(proc gp.Process) { + for { + select { + case <-time.After(interval): + proc.Go(procfunc) + case <-proc.Closing(): // we're told to close + return + } + } + }) +} + +// Tick constructs a ticker with interval, and calls the given ProcessFunc every +// time the ticker fires. +// This is sequentially rate limited, only one call will be in-flight at a time. +// +// p := periodicproc.Tick(time.Second, func(proc goprocess.Process) { +// fmt.Println("fire!") +// }) +// +// <-time.After(3 * time.Second) +// p.Close() +// +// // Output: +// // fire! +// // fire! +// // fire! +func Tick(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(func(proc gp.Process) { + ticker := time.NewTicker(interval) + callOnTicker(ticker.C, procfunc)(proc) + ticker.Stop() + }) +} + +// TickGo constructs a ticker with interval, and calls the given ProcessFunc every +// time the ticker fires. +// This is not rate limited, multiple calls could be in-flight at the same time. +// +// p := periodicproc.TickGo(time.Second, func(proc goprocess.Process) { +// fmt.Println("fire!") +// <-time.After(10 * time.Second) // will not block sequential execution +// }) +// +// <-time.After(3 * time.Second) +// p.Close() +// +// // Output: +// // fire! +// // fire! +// // fire! +func TickGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(func(proc gp.Process) { + ticker := time.NewTicker(interval) + goCallOnTicker(ticker.C, procfunc)(proc) + ticker.Stop() + }) +} + +// Ticker calls the given ProcessFunc every time the ticker fires. +// This is sequentially rate limited, only one call will be in-flight at a time. +func Ticker(ticker <-chan time.Time, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(callOnTicker(ticker, procfunc)) +} + +// TickerGo calls the given ProcessFunc every time the ticker fires. +// This is not rate limited, multiple calls could be in-flight at the same time. +func TickerGo(ticker <-chan time.Time, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(goCallOnTicker(ticker, procfunc)) +} + +func callOnTicker(ticker <-chan time.Time, pf gp.ProcessFunc) gp.ProcessFunc { + return func(proc gp.Process) { + for { + select { + case <-ticker: + select { + case <-proc.Go(pf).Closed(): // spin it out as a child, and wait till it's done. + case <-proc.Closing(): // we're told to close + return + } + case <-proc.Closing(): // we're told to close + return + } + } + } +} + +func goCallOnTicker(ticker <-chan time.Time, pf gp.ProcessFunc) gp.ProcessFunc { + return func(proc gp.Process) { + for { + select { + case <-ticker: + proc.Go(pf) + case <-proc.Closing(): // we're told to close + return + } + } + } +} + +// OnSignal calls the given ProcessFunc every time the signal fires, and waits for it to exit. +// This is sequentially rate limited, only one call will be in-flight at a time. +// +// sig := make(chan struct{}) +// p := periodicproc.OnSignal(sig, func(proc goprocess.Process) { +// fmt.Println("fire!") +// <-time.After(time.Second) // delays sequential execution by 1 second +// }) +// +// sig<- struct{} +// sig<- struct{} +// sig<- struct{} +// +// // Output: +// // fire! +// // fire! +// // fire! +func OnSignal(sig <-chan struct{}, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(func(proc gp.Process) { + for { + select { + case <-sig: + select { + case <-proc.Go(procfunc).Closed(): // spin it out as a child, and wait till it's done. + case <-proc.Closing(): // we're told to close + return + } + case <-proc.Closing(): // we're told to close + return + } + } + }) +} + +// OnSignalGo calls the given ProcessFunc every time the signal fires. +// This is not rate limited, multiple calls could be in-flight at the same time. +// +// sig := make(chan struct{}) +// p := periodicproc.OnSignalGo(sig, func(proc goprocess.Process) { +// fmt.Println("fire!") +// <-time.After(time.Second) // wont block execution +// }) +// +// sig<- struct{} +// sig<- struct{} +// sig<- struct{} +// +// // Output: +// // fire! +// // fire! +// // fire! +func OnSignalGo(sig <-chan struct{}, procfunc gp.ProcessFunc) gp.Process { + return gp.Go(func(proc gp.Process) { + for { + select { + case <-sig: + proc.Go(procfunc) + case <-proc.Closing(): // we're told to close + return + } + } + }) +} diff --git a/vendor/github.com/jbenet/goprocess/ratelimit/README.md b/vendor/github.com/jbenet/goprocess/ratelimit/README.md new file mode 100644 index 00000000..3c91185e --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/ratelimit/README.md @@ -0,0 +1,4 @@ +# goprocess/ratelimit - ratelimit children creation + +- goprocess: https://github.com/jbenet/goprocess +- Godoc: https://godoc.org/github.com/jbenet/goprocess/ratelimit diff --git a/vendor/github.com/jbenet/goprocess/ratelimit/ratelimit.go b/vendor/github.com/jbenet/goprocess/ratelimit/ratelimit.go new file mode 100644 index 00000000..1838d053 --- /dev/null +++ b/vendor/github.com/jbenet/goprocess/ratelimit/ratelimit.go @@ -0,0 +1,68 @@ +// Package ratelimit is part of github.com/jbenet/goprocess. +// It provides a simple process that ratelimits child creation. +// This is done internally with a channel/semaphore. +// So the call `RateLimiter.LimitedGo` may block until another +// child is Closed(). +package ratelimit + +import ( + process "github.com/jbenet/goprocess" +) + +// RateLimiter limits the spawning of children. It does so +// with an internal semaphore. Note that Go will continue +// to be the unlimited process.Process.Go, and ONLY the +// added function `RateLimiter.LimitedGo` will honor the +// limit. This is to improve readability and avoid confusion +// for the reader, particularly if code changes over time. +type RateLimiter struct { + process.Process + + limiter chan struct{} +} + +func NewRateLimiter(parent process.Process, limit int) *RateLimiter { + proc := process.WithParent(parent) + return &RateLimiter{Process: proc, limiter: LimitChan(limit)} +} + +// LimitedGo creates a new process, adds it as a child, and spawns the +// ProcessFunc f in its own goroutine, but may block according to the +// internal rate limit. It is equivalent to: +// +// func(f process.ProcessFunc) { +// <-limitch +// p.Go(func (child process.Process) { +// f(child) +// f.Close() // make sure its children close too! +// limitch<- struct{}{} +// }) +/// } +// +// It is useful to construct simple asynchronous workers, children of p, +// and rate limit their creation, to avoid spinning up too many, too fast. +// This is great for providing backpressure to producers. +func (rl *RateLimiter) LimitedGo(f process.ProcessFunc) { + + <-rl.limiter + p := rl.Go(f) + + // this <-closed() is here because the child may have spawned + // children of its own, and our rate limiter should capture that. + go func() { + <-p.Closed() + rl.limiter <- struct{}{} + }() +} + +// LimitChan returns a rate-limiting channel. it is the usual, simple, +// golang-idiomatic rate-limiting semaphore. This function merely +// initializes it with certain buffer size, and sends that many values, +// so it is ready to be used. +func LimitChan(limit int) chan struct{} { + limitch := make(chan struct{}, limit) + for i := 0; i < limit; i++ { + limitch <- struct{}{} + } + return limitch +} diff --git a/vendor/github.com/karalabe/hid/hid_test.go b/vendor/github.com/karalabe/hid/hid_test.go deleted file mode 100644 index 470e6b99..00000000 --- a/vendor/github.com/karalabe/hid/hid_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// hid - Gopher Interface Devices (USB HID) -// Copyright (c) 2017 Péter Szilágyi. All rights reserved. -// -// This file is released under the 3-clause BSD license. Note however that Linux -// support depends on libusb, released under GNU LGPL 2.1 or later. - -package hid - -import ( - "sync" - "testing" -) - -// Tests that device enumeration can be called concurrently from multiple threads. -func TestThreadedEnumerate(t *testing.T) { - var pend sync.WaitGroup - for i := 0; i < 8; i++ { - pend.Add(1) - - go func(index int) { - defer pend.Done() - for j := 0; j < 512; j++ { - Enumerate(uint16(index), 0) - } - }(i) - } - pend.Wait() -} diff --git a/vendor/github.com/karalabe/hid/hidapi/README.txt b/vendor/github.com/karalabe/hid/hidapi/README.txt deleted file mode 100644 index f19dae4a..00000000 --- a/vendor/github.com/karalabe/hid/hidapi/README.txt +++ /dev/null @@ -1,339 +0,0 @@ - HIDAPI library for Windows, Linux, FreeBSD and Mac OS X - ========================================================= - -About -====== - -HIDAPI is a multi-platform library which allows an application to interface -with USB and Bluetooth HID-Class devices on Windows, Linux, FreeBSD, and Mac -OS X. HIDAPI can be either built as a shared library (.so or .dll) or -can be embedded directly into a target application by adding a single source -file (per platform) and a single header. - -HIDAPI has four back-ends: - * Windows (using hid.dll) - * Linux/hidraw (using the Kernel's hidraw driver) - * Linux/libusb (using libusb-1.0) - * FreeBSD (using libusb-1.0) - * Mac (using IOHidManager) - -On Linux, either the hidraw or the libusb back-end can be used. There are -tradeoffs, and the functionality supported is slightly different. - -Linux/hidraw (linux/hid.c): -This back-end uses the hidraw interface in the Linux kernel. While this -back-end will support both USB and Bluetooth, it has some limitations on -kernels prior to 2.6.39, including the inability to send or receive feature -reports. In addition, it will only communicate with devices which have -hidraw nodes associated with them. Keyboards, mice, and some other devices -which are blacklisted from having hidraw nodes will not work. Fortunately, -for nearly all the uses of hidraw, this is not a problem. - -Linux/FreeBSD/libusb (libusb/hid.c): -This back-end uses libusb-1.0 to communicate directly to a USB device. This -back-end will of course not work with Bluetooth devices. - -HIDAPI also comes with a Test GUI. The Test GUI is cross-platform and uses -Fox Toolkit (http://www.fox-toolkit.org). It will build on every platform -which HIDAPI supports. Since it relies on a 3rd party library, building it -is optional but recommended because it is so useful when debugging hardware. - -What Does the API Look Like? -============================= -The API provides the the most commonly used HID functions including sending -and receiving of input, output, and feature reports. The sample program, -which communicates with a heavily hacked up version of the Microchip USB -Generic HID sample looks like this (with error checking removed for -simplicity): - -#ifdef WIN32 -#include -#endif -#include -#include -#include "hidapi.h" - -#define MAX_STR 255 - -int main(int argc, char* argv[]) -{ - int res; - unsigned char buf[65]; - wchar_t wstr[MAX_STR]; - hid_device *handle; - int i; - - // Initialize the hidapi library - res = hid_init(); - - // Open the device using the VID, PID, - // and optionally the Serial number. - handle = hid_open(0x4d8, 0x3f, NULL); - - // Read the Manufacturer String - res = hid_get_manufacturer_string(handle, wstr, MAX_STR); - wprintf(L"Manufacturer String: %s\n", wstr); - - // Read the Product String - res = hid_get_product_string(handle, wstr, MAX_STR); - wprintf(L"Product String: %s\n", wstr); - - // Read the Serial Number String - res = hid_get_serial_number_string(handle, wstr, MAX_STR); - wprintf(L"Serial Number String: (%d) %s\n", wstr[0], wstr); - - // Read Indexed String 1 - res = hid_get_indexed_string(handle, 1, wstr, MAX_STR); - wprintf(L"Indexed String 1: %s\n", wstr); - - // Toggle LED (cmd 0x80). The first byte is the report number (0x0). - buf[0] = 0x0; - buf[1] = 0x80; - res = hid_write(handle, buf, 65); - - // Request state (cmd 0x81). The first byte is the report number (0x0). - buf[0] = 0x0; - buf[1] = 0x81; - res = hid_write(handle, buf, 65); - - // Read requested state - res = hid_read(handle, buf, 65); - - // Print out the returned buffer. - for (i = 0; i < 4; i++) - printf("buf[%d]: %d\n", i, buf[i]); - - // Finalize the hidapi library - res = hid_exit(); - - return 0; -} - -If you have your own simple test programs which communicate with standard -hardware development boards (such as those from Microchip, TI, Atmel, -FreeScale and others), please consider sending me something like the above -for inclusion into the HIDAPI source. This will help others who have the -same hardware as you do. - -License -======== -HIDAPI may be used by one of three licenses as outlined in LICENSE.txt. - -Download -========= -HIDAPI can be downloaded from github - git clone git://github.com/signal11/hidapi.git - -Build Instructions -=================== - -This section is long. Don't be put off by this. It's not long because it's -complicated to build HIDAPI; it's quite the opposite. This section is long -because of the flexibility of HIDAPI and the large number of ways in which -it can be built and used. You will likely pick a single build method. - -HIDAPI can be built in several different ways. If you elect to build a -shared library, you will need to build it from the HIDAPI source -distribution. If you choose instead to embed HIDAPI directly into your -application, you can skip the building and look at the provided platform -Makefiles for guidance. These platform Makefiles are located in linux/ -libusb/ mac/ and windows/ and are called Makefile-manual. In addition, -Visual Studio projects are provided. Even if you're going to embed HIDAPI -into your project, it is still beneficial to build the example programs. - - -Prerequisites: ---------------- - - Linux: - ------- - On Linux, you will need to install development packages for libudev, - libusb and optionally Fox-toolkit (for the test GUI). On - Debian/Ubuntu systems these can be installed by running: - sudo apt-get install libudev-dev libusb-1.0-0-dev libfox-1.6-dev - - If you downloaded the source directly from the git repository (using - git clone), you'll need Autotools: - sudo apt-get install autotools-dev autoconf automake libtool - - FreeBSD: - --------- - On FreeBSD you will need to install GNU make, libiconv, and - optionally Fox-Toolkit (for the test GUI). This is done by running - the following: - pkg_add -r gmake libiconv fox16 - - If you downloaded the source directly from the git repository (using - git clone), you'll need Autotools: - pkg_add -r autotools - - Mac: - ----- - On Mac, you will need to install Fox-Toolkit if you wish to build - the Test GUI. There are two ways to do this, and each has a slight - complication. Which method you use depends on your use case. - - If you wish to build the Test GUI just for your own testing on your - own computer, then the easiest method is to install Fox-Toolkit - using ports: - sudo port install fox - - If you wish to build the TestGUI app bundle to redistribute to - others, you will need to install Fox-toolkit from source. This is - because the version of fox that gets installed using ports uses the - ports X11 libraries which are not compatible with the Apple X11 - libraries. If you install Fox with ports and then try to distribute - your built app bundle, it will simply fail to run on other systems. - To install Fox-Toolkit manually, download the source package from - http://www.fox-toolkit.org, extract it, and run the following from - within the extracted source: - ./configure && make && make install - - Windows: - --------- - On Windows, if you want to build the test GUI, you will need to get - the hidapi-externals.zip package from the download site. This - contains pre-built binaries for Fox-toolkit. Extract - hidapi-externals.zip just outside of hidapi, so that - hidapi-externals and hidapi are on the same level, as shown: - - Parent_Folder - | - +hidapi - +hidapi-externals - - Again, this step is not required if you do not wish to build the - test GUI. - - -Building HIDAPI into a shared library on Unix Platforms: ---------------------------------------------------------- - -On Unix-like systems such as Linux, FreeBSD, Mac, and even Windows, using -Mingw or Cygwin, the easiest way to build a standard system-installed shared -library is to use the GNU Autotools build system. If you checked out the -source from the git repository, run the following: - - ./bootstrap - ./configure - make - make install <----- as root, or using sudo - -If you downloaded a source package (ie: if you did not run git clone), you -can skip the ./bootstrap step. - -./configure can take several arguments which control the build. The two most -likely to be used are: - --enable-testgui - Enable build of the Test GUI. This requires Fox toolkit to - be installed. Instructions for installing Fox-Toolkit on - each platform are in the Prerequisites section above. - - --prefix=/usr - Specify where you want the output headers and libraries to - be installed. The example above will put the headers in - /usr/include and the binaries in /usr/lib. The default is to - install into /usr/local which is fine on most systems. - -Building the manual way on Unix platforms: -------------------------------------------- - -Manual Makefiles are provided mostly to give the user and idea what it takes -to build a program which embeds HIDAPI directly inside of it. These should -really be used as examples only. If you want to build a system-wide shared -library, use the Autotools method described above. - - To build HIDAPI using the manual makefiles, change to the directory - of your platform and run make. For example, on Linux run: - cd linux/ - make -f Makefile-manual - - To build the Test GUI using the manual makefiles: - cd testgui/ - make -f Makefile-manual - -Building on Windows: ---------------------- - -To build the HIDAPI DLL on Windows using Visual Studio, build the .sln file -in the windows/ directory. - -To build the Test GUI on windows using Visual Studio, build the .sln file in -the testgui/ directory. - -To build HIDAPI using MinGW or Cygwin using Autotools, use the instructions -in the section titled "Building HIDAPI into a shared library on Unix -Platforms" above. Note that building the Test GUI with MinGW or Cygwin will -require the Windows procedure in the Prerequisites section above (ie: -hidapi-externals.zip). - -To build HIDAPI using MinGW using the Manual Makefiles, see the section -"Building the manual way on Unix platforms" above. - -HIDAPI can also be built using the Windows DDK (now also called the Windows -Driver Kit or WDK). This method was originally required for the HIDAPI build -but not anymore. However, some users still prefer this method. It is not as -well supported anymore but should still work. Patches are welcome if it does -not. To build using the DDK: - - 1. Install the Windows Driver Kit (WDK) from Microsoft. - 2. From the Start menu, in the Windows Driver Kits folder, select Build - Environments, then your operating system, then the x86 Free Build - Environment (or one that is appropriate for your system). - 3. From the console, change directory to the windows/ddk_build/ directory, - which is part of the HIDAPI distribution. - 4. Type build. - 5. You can find the output files (DLL and LIB) in a subdirectory created - by the build system which is appropriate for your environment. On - Windows XP, this directory is objfre_wxp_x86/i386. - -Cross Compiling -================ - -This section talks about cross compiling HIDAPI for Linux using autotools. -This is useful for using HIDAPI on embedded Linux targets. These -instructions assume the most raw kind of embedded Linux build, where all -prerequisites will need to be built first. This process will of course vary -based on your embedded Linux build system if you are using one, such as -OpenEmbedded or Buildroot. - -For the purpose of this section, it will be assumed that the following -environment variables are exported. - - $ export STAGING=$HOME/out - $ export HOST=arm-linux - -STAGING and HOST can be modified to suit your setup. - -Prerequisites --------------- - -Note that the build of libudev is the very basic configuration. - -Build Libusb. From the libusb source directory, run: - ./configure --host=$HOST --prefix=$STAGING - make - make install - -Build libudev. From the libudev source directory, run: - ./configure --disable-gudev --disable-introspection --disable-hwdb \ - --host=$HOST --prefix=$STAGING - make - make install - -Building HIDAPI ----------------- - -Build HIDAPI: - - PKG_CONFIG_DIR= \ - PKG_CONFIG_LIBDIR=$STAGING/lib/pkgconfig:$STAGING/share/pkgconfig \ - PKG_CONFIG_SYSROOT_DIR=$STAGING \ - ./configure --host=$HOST --prefix=$STAGING - - -Signal 11 Software - 2010-04-11 - 2010-07-28 - 2011-09-10 - 2012-05-01 - 2012-07-03 diff --git a/vendor/github.com/karalabe/hid/hidapi/hidapi/hidapi.h b/vendor/github.com/karalabe/hid/hidapi/hidapi/hidapi.h deleted file mode 100644 index e5bc2dc4..00000000 --- a/vendor/github.com/karalabe/hid/hidapi/hidapi/hidapi.h +++ /dev/null @@ -1,391 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 8/22/2009 - - Copyright 2009, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU General Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -/** @file - * @defgroup API hidapi API - */ - -#ifndef HIDAPI_H__ -#define HIDAPI_H__ - -#include - -#ifdef _WIN32 - #define HID_API_EXPORT __declspec(dllexport) - #define HID_API_CALL -#else - #define HID_API_EXPORT /**< API export macro */ - #define HID_API_CALL /**< API call macro */ -#endif - -#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ - -#ifdef __cplusplus -extern "C" { -#endif - struct hid_device_; - typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ - - /** hidapi info structure */ - struct hid_device_info { - /** Platform-specific device path */ - char *path; - /** Device Vendor ID */ - unsigned short vendor_id; - /** Device Product ID */ - unsigned short product_id; - /** Serial Number */ - wchar_t *serial_number; - /** Device Release Number in binary-coded decimal, - also known as Device Version Number */ - unsigned short release_number; - /** Manufacturer String */ - wchar_t *manufacturer_string; - /** Product string */ - wchar_t *product_string; - /** Usage Page for this Device/Interface - (Windows/Mac only). */ - unsigned short usage_page; - /** Usage for this Device/Interface - (Windows/Mac only).*/ - unsigned short usage; - /** The USB interface which this logical device - represents. Valid on both Linux implementations - in all cases, and valid on the Windows implementation - only if the device contains more than one interface. */ - int interface_number; - - /** Pointer to the next device */ - struct hid_device_info *next; - }; - - - /** @brief Initialize the HIDAPI library. - - This function initializes the HIDAPI library. Calling it is not - strictly necessary, as it will be called automatically by - hid_enumerate() and any of the hid_open_*() functions if it is - needed. This function should be called at the beginning of - execution however, if there is a chance of HIDAPI handles - being opened by different threads simultaneously. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_init(void); - - /** @brief Finalize the HIDAPI library. - - This function frees all of the static data associated with - HIDAPI. It should be called at the end of execution to avoid - memory leaks. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_exit(void); - - /** @brief Enumerate the HID Devices. - - This function returns a linked list of all the HID devices - attached to the system which match vendor_id and product_id. - If @p vendor_id is set to 0 then any vendor matches. - If @p product_id is set to 0 then any product matches. - If @p vendor_id and @p product_id are both set to 0, then - all HID devices will be returned. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the types of device - to open. - @param product_id The Product ID (PID) of the types of - device to open. - - @returns - This function returns a pointer to a linked list of type - struct #hid_device, containing information about the HID devices - attached to the system, or NULL in the case of failure. Free - this linked list by calling hid_free_enumeration(). - */ - struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); - - /** @brief Free an enumeration Linked List - - This function frees a linked list created by hid_enumerate(). - - @ingroup API - @param devs Pointer to a list of struct_device returned from - hid_enumerate(). - */ - void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); - - /** @brief Open a HID device using a Vendor ID (VID), Product ID - (PID) and optionally a serial number. - - If @p serial_number is NULL, the first device with the - specified VID and PID is opened. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the device to open. - @param product_id The Product ID (PID) of the device to open. - @param serial_number The Serial Number of the device to open - (Optionally NULL). - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); - - /** @brief Open a HID device by its path name. - - The path name be determined by calling hid_enumerate(), or a - platform-specific path name can be used (eg: /dev/hidraw0 on - Linux). - - @ingroup API - @param path The path name of the device to open - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); - - /** @brief Write an Output report to a HID device. - - The first byte of @p data[] must contain the Report ID. For - devices which only support a single report, this must be set - to 0x0. The remaining bytes contain the report data. Since - the Report ID is mandatory, calls to hid_write() will always - contain one more byte than the report contains. For example, - if a hid report is 16 bytes long, 17 bytes must be passed to - hid_write(), the Report ID (or 0x0, for devices with a - single report), followed by the report data (16 bytes). In - this example, the length passed in would be 17. - - hid_write() will send the data on the first OUT endpoint, if - one exists. If it does not, it will send the data through - the Control Endpoint (Endpoint 0). - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); - - /** @brief Read an Input report from a HID device with timeout. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - @param milliseconds timeout in milliseconds or -1 for blocking wait. - - @returns - This function returns the actual number of bytes read and - -1 on error. If no packet was available to be read within - the timeout period, this function returns 0. - */ - int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); - - /** @brief Read an Input report from a HID device. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - - @returns - This function returns the actual number of bytes read and - -1 on error. If no packet was available to be read and - the handle is in non-blocking mode, this function returns 0. - */ - int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); - - /** @brief Set the device handle to be non-blocking. - - In non-blocking mode calls to hid_read() will return - immediately with a value of 0 if there is no data to be - read. In blocking mode, hid_read() will wait (block) until - there is data to read before returning. - - Nonblocking can be turned on and off at any time. - - @ingroup API - @param device A device handle returned from hid_open(). - @param nonblock enable or not the nonblocking reads - - 1 to enable nonblocking - - 0 to disable nonblocking. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); - - /** @brief Send a Feature report to the device. - - Feature reports are sent over the Control endpoint as a - Set_Report transfer. The first byte of @p data[] must - contain the Report ID. For devices which only support a - single report, this must be set to 0x0. The remaining bytes - contain the report data. Since the Report ID is mandatory, - calls to hid_send_feature_report() will always contain one - more byte than the report contains. For example, if a hid - report is 16 bytes long, 17 bytes must be passed to - hid_send_feature_report(): the Report ID (or 0x0, for - devices which do not use numbered reports), followed by the - report data (16 bytes). In this example, the length passed - in would be 17. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send, including - the report number. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); - - /** @brief Get a feature report from a HID device. - - Set the first byte of @p data[] to the Report ID of the - report to be read. Make sure to allow space for this - extra byte in @p data[]. Upon return, the first byte will - still contain the Report ID, and the report data will - start in data[1]. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into, including - the Report ID. Set the first byte of @p data[] to the - Report ID of the report to be read, or set it to zero - if your device does not use numbered reports. - @param length The number of bytes to read, including an - extra byte for the report ID. The buffer can be longer - than the actual report. - - @returns - This function returns the number of bytes read plus - one for the report ID (which is still in the first - byte), or -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); - - /** @brief Close a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - */ - void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); - - /** @brief Get The Manufacturer String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Product String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Serial Number String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get a string from a HID device, based on its string index. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string_index The index of the string to get. - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); - - /** @brief Get a string describing the last error which occurred. - - @ingroup API - @param device A device handle returned from hid_open(). - - @returns - This function returns a string containing the last error - which occurred or NULL if none has occurred. - */ - HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/vendor/github.com/karalabe/hid/hidapi/libusb/hid.c b/vendor/github.com/karalabe/hid/hidapi/libusb/hid.c deleted file mode 100644 index 474dff41..00000000 --- a/vendor/github.com/karalabe/hid/hidapi/libusb/hid.c +++ /dev/null @@ -1,1512 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 8/22/2009 - Linux Version - 6/2/2010 - Libusb Version - 8/13/2010 - FreeBSD Version - 11/1/2011 - - Copyright 2009, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU General Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -/* C */ -#include -#include -#include -#include -#include -#include - -/* Unix */ -#include -#include -#include -#include -#include -#include -#include -#include - -/* GNU / LibUSB */ -#include -#ifndef __ANDROID__ -#include -#endif - -#include "hidapi.h" - -#ifdef __ANDROID__ - -/* Barrier implementation because Android/Bionic don't have pthread_barrier. - This implementation came from Brent Priddy and was posted on - StackOverflow. It is used with his permission. */ -typedef int pthread_barrierattr_t; -typedef struct pthread_barrier { - pthread_mutex_t mutex; - pthread_cond_t cond; - int count; - int trip_count; -} pthread_barrier_t; - -static int pthread_barrier_init(pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count) -{ - if(count == 0) { - errno = EINVAL; - return -1; - } - - if(pthread_mutex_init(&barrier->mutex, 0) < 0) { - return -1; - } - if(pthread_cond_init(&barrier->cond, 0) < 0) { - pthread_mutex_destroy(&barrier->mutex); - return -1; - } - barrier->trip_count = count; - barrier->count = 0; - - return 0; -} - -static int pthread_barrier_destroy(pthread_barrier_t *barrier) -{ - pthread_cond_destroy(&barrier->cond); - pthread_mutex_destroy(&barrier->mutex); - return 0; -} - -static int pthread_barrier_wait(pthread_barrier_t *barrier) -{ - pthread_mutex_lock(&barrier->mutex); - ++(barrier->count); - if(barrier->count >= barrier->trip_count) - { - barrier->count = 0; - pthread_cond_broadcast(&barrier->cond); - pthread_mutex_unlock(&barrier->mutex); - return 1; - } - else - { - pthread_cond_wait(&barrier->cond, &(barrier->mutex)); - pthread_mutex_unlock(&barrier->mutex); - return 0; - } -} - -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef DEBUG_PRINTF -#define LOG(...) fprintf(stderr, __VA_ARGS__) -#else -#define LOG(...) do {} while (0) -#endif - -#ifndef __FreeBSD__ -#define DETACH_KERNEL_DRIVER -#endif - -/* Uncomment to enable the retrieval of Usage and Usage Page in -hid_enumerate(). Warning, on platforms different from FreeBSD -this is very invasive as it requires the detach -and re-attach of the kernel driver. See comments inside hid_enumerate(). -libusb HIDAPI programs are encouraged to use the interface number -instead to differentiate between interfaces on a composite HID device. */ -/*#define INVASIVE_GET_USAGE*/ - -/* Linked List of input reports received from the device. */ -struct input_report { - uint8_t *data; - size_t len; - struct input_report *next; -}; - - -struct hid_device_ { - /* Handle to the actual device. */ - libusb_device_handle *device_handle; - - /* Endpoint information */ - int input_endpoint; - int output_endpoint; - int input_ep_max_packet_size; - - /* The interface number of the HID */ - int interface; - - /* Indexes of Strings */ - int manufacturer_index; - int product_index; - int serial_index; - - /* Whether blocking reads are used */ - int blocking; /* boolean */ - - /* Read thread objects */ - pthread_t thread; - pthread_mutex_t mutex; /* Protects input_reports */ - pthread_cond_t condition; - pthread_barrier_t barrier; /* Ensures correct startup sequence */ - int shutdown_thread; - int cancelled; - struct libusb_transfer *transfer; - - /* List of received input reports. */ - struct input_report *input_reports; -}; - -static libusb_context *usb_context = NULL; - -uint16_t get_usb_code_for_current_locale(void); -static int return_data(hid_device *dev, unsigned char *data, size_t length); - -static hid_device *new_hid_device(void) -{ - hid_device *dev = calloc(1, sizeof(hid_device)); - dev->blocking = 1; - - pthread_mutex_init(&dev->mutex, NULL); - pthread_cond_init(&dev->condition, NULL); - pthread_barrier_init(&dev->barrier, NULL, 2); - - return dev; -} - -static void free_hid_device(hid_device *dev) -{ - /* Clean up the thread objects */ - pthread_barrier_destroy(&dev->barrier); - pthread_cond_destroy(&dev->condition); - pthread_mutex_destroy(&dev->mutex); - - /* Free the device itself */ - free(dev); -} - -#if 0 -/*TODO: Implement this funciton on hidapi/libusb.. */ -static void register_error(hid_device *device, const char *op) -{ - -} -#endif - -#ifdef INVASIVE_GET_USAGE -/* Get bytes from a HID Report Descriptor. - Only call with a num_bytes of 0, 1, 2, or 4. */ -static uint32_t get_bytes(uint8_t *rpt, size_t len, size_t num_bytes, size_t cur) -{ - /* Return if there aren't enough bytes. */ - if (cur + num_bytes >= len) - return 0; - - if (num_bytes == 0) - return 0; - else if (num_bytes == 1) { - return rpt[cur+1]; - } - else if (num_bytes == 2) { - return (rpt[cur+2] * 256 + rpt[cur+1]); - } - else if (num_bytes == 4) { - return (rpt[cur+4] * 0x01000000 + - rpt[cur+3] * 0x00010000 + - rpt[cur+2] * 0x00000100 + - rpt[cur+1] * 0x00000001); - } - else - return 0; -} - -/* Retrieves the device's Usage Page and Usage from the report - descriptor. The algorithm is simple, as it just returns the first - Usage and Usage Page that it finds in the descriptor. - The return value is 0 on success and -1 on failure. */ -static int get_usage(uint8_t *report_descriptor, size_t size, - unsigned short *usage_page, unsigned short *usage) -{ - unsigned int i = 0; - int size_code; - int data_len, key_size; - int usage_found = 0, usage_page_found = 0; - - while (i < size) { - int key = report_descriptor[i]; - int key_cmd = key & 0xfc; - - //printf("key: %02hhx\n", key); - - if ((key & 0xf0) == 0xf0) { - /* This is a Long Item. The next byte contains the - length of the data section (value) for this key. - See the HID specification, version 1.11, section - 6.2.2.3, titled "Long Items." */ - if (i+1 < size) - data_len = report_descriptor[i+1]; - else - data_len = 0; /* malformed report */ - key_size = 3; - } - else { - /* This is a Short Item. The bottom two bits of the - key contain the size code for the data section - (value) for this key. Refer to the HID - specification, version 1.11, section 6.2.2.2, - titled "Short Items." */ - size_code = key & 0x3; - switch (size_code) { - case 0: - case 1: - case 2: - data_len = size_code; - break; - case 3: - data_len = 4; - break; - default: - /* Can't ever happen since size_code is & 0x3 */ - data_len = 0; - break; - }; - key_size = 1; - } - - if (key_cmd == 0x4) { - *usage_page = get_bytes(report_descriptor, size, data_len, i); - usage_page_found = 1; - //printf("Usage Page: %x\n", (uint32_t)*usage_page); - } - if (key_cmd == 0x8) { - *usage = get_bytes(report_descriptor, size, data_len, i); - usage_found = 1; - //printf("Usage: %x\n", (uint32_t)*usage); - } - - if (usage_page_found && usage_found) - return 0; /* success */ - - /* Skip over this key and it's associated data */ - i += data_len + key_size; - } - - return -1; /* failure */ -} -#endif /* INVASIVE_GET_USAGE */ - -#if defined(__FreeBSD__) && __FreeBSD__ < 10 -/* The libusb version included in FreeBSD < 10 doesn't have this function. In - mainline libusb, it's inlined in libusb.h. This function will bear a striking - resemblance to that one, because there's about one way to code it. - - Note that the data parameter is Unicode in UTF-16LE encoding. - Return value is the number of bytes in data, or LIBUSB_ERROR_*. - */ -static inline int libusb_get_string_descriptor(libusb_device_handle *dev, - uint8_t descriptor_index, uint16_t lang_id, - unsigned char *data, int length) -{ - return libusb_control_transfer(dev, - LIBUSB_ENDPOINT_IN | 0x0, /* Endpoint 0 IN */ - LIBUSB_REQUEST_GET_DESCRIPTOR, - (LIBUSB_DT_STRING << 8) | descriptor_index, - lang_id, data, (uint16_t) length, 1000); -} - -#endif - - -/* Get the first language the device says it reports. This comes from - USB string #0. */ -static uint16_t get_first_language(libusb_device_handle *dev) -{ - uint16_t buf[32]; - int len; - - /* Get the string from libusb. */ - len = libusb_get_string_descriptor(dev, - 0x0, /* String ID */ - 0x0, /* Language */ - (unsigned char*)buf, - sizeof(buf)); - if (len < 4) - return 0x0; - - return buf[1]; /* First two bytes are len and descriptor type. */ -} - -static int is_language_supported(libusb_device_handle *dev, uint16_t lang) -{ - uint16_t buf[32]; - int len; - int i; - - /* Get the string from libusb. */ - len = libusb_get_string_descriptor(dev, - 0x0, /* String ID */ - 0x0, /* Language */ - (unsigned char*)buf, - sizeof(buf)); - if (len < 4) - return 0x0; - - - len /= 2; /* language IDs are two-bytes each. */ - /* Start at index 1 because there are two bytes of protocol data. */ - for (i = 1; i < len; i++) { - if (buf[i] == lang) - return 1; - } - - return 0; -} - - -/* This function returns a newly allocated wide string containing the USB - device string numbered by the index. The returned string must be freed - by using free(). */ -static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx) -{ - char buf[512]; - int len; - wchar_t *str = NULL; - -#ifndef __ANDROID__ /* we don't use iconv on Android */ - wchar_t wbuf[256]; - /* iconv variables */ - iconv_t ic; - size_t inbytes; - size_t outbytes; - size_t res; -#ifdef __FreeBSD__ - const char *inptr; -#else - char *inptr; -#endif - char *outptr; -#endif - - /* Determine which language to use. */ - uint16_t lang; - lang = get_usb_code_for_current_locale(); - if (!is_language_supported(dev, lang)) - lang = get_first_language(dev); - - /* Get the string from libusb. */ - len = libusb_get_string_descriptor(dev, - idx, - lang, - (unsigned char*)buf, - sizeof(buf)); - if (len < 0) - return NULL; - -#ifdef __ANDROID__ - - /* Bionic does not have iconv support nor wcsdup() function, so it - has to be done manually. The following code will only work for - code points that can be represented as a single UTF-16 character, - and will incorrectly convert any code points which require more - than one UTF-16 character. - - Skip over the first character (2-bytes). */ - len -= 2; - str = malloc((len / 2 + 1) * sizeof(wchar_t)); - int i; - for (i = 0; i < len / 2; i++) { - str[i] = buf[i * 2 + 2] | (buf[i * 2 + 3] << 8); - } - str[len / 2] = 0x00000000; - -#else - - /* buf does not need to be explicitly NULL-terminated because - it is only passed into iconv() which does not need it. */ - - /* Initialize iconv. */ - ic = iconv_open("WCHAR_T", "UTF-16LE"); - if (ic == (iconv_t)-1) { - LOG("iconv_open() failed\n"); - return NULL; - } - - /* Convert to native wchar_t (UTF-32 on glibc/BSD systems). - Skip the first character (2-bytes). */ - inptr = buf+2; - inbytes = len-2; - outptr = (char*) wbuf; - outbytes = sizeof(wbuf); - res = iconv(ic, &inptr, &inbytes, &outptr, &outbytes); - if (res == (size_t)-1) { - LOG("iconv() failed\n"); - goto err; - } - - /* Write the terminating NULL. */ - wbuf[sizeof(wbuf)/sizeof(wbuf[0])-1] = 0x00000000; - if (outbytes >= sizeof(wbuf[0])) - *((wchar_t*)outptr) = 0x00000000; - - /* Allocate and copy the string. */ - str = wcsdup(wbuf); - -err: - iconv_close(ic); - -#endif - - return str; -} - -static char *make_path(libusb_device *dev, int interface_number) -{ - char str[64]; - snprintf(str, sizeof(str), "%04x:%04x:%02x", - libusb_get_bus_number(dev), - libusb_get_device_address(dev), - interface_number); - str[sizeof(str)-1] = '\0'; - - return strdup(str); -} - - -int HID_API_EXPORT hid_init(void) -{ - if (!usb_context) { - const char *locale; - - /* Init Libusb */ - if (libusb_init(&usb_context)) - return -1; - - /* Set the locale if it's not set. */ - locale = setlocale(LC_CTYPE, NULL); - if (!locale) - setlocale(LC_CTYPE, ""); - } - - return 0; -} - -int HID_API_EXPORT hid_exit(void) -{ - if (usb_context) { - libusb_exit(usb_context); - usb_context = NULL; - } - - return 0; -} - -struct hid_device_info HID_API_EXPORT *hid_enumerate(unsigned short vendor_id, unsigned short product_id) -{ - libusb_device **devs; - libusb_device *dev; - libusb_device_handle *handle; - ssize_t num_devs; - int i = 0; - - struct hid_device_info *root = NULL; /* return object */ - struct hid_device_info *cur_dev = NULL; - - if(hid_init() < 0) - return NULL; - - num_devs = libusb_get_device_list(usb_context, &devs); - if (num_devs < 0) - return NULL; - while ((dev = devs[i++]) != NULL) { - struct libusb_device_descriptor desc; - struct libusb_config_descriptor *conf_desc = NULL; - int j, k; - int interface_num = 0; - - int res = libusb_get_device_descriptor(dev, &desc); - unsigned short dev_vid = desc.idVendor; - unsigned short dev_pid = desc.idProduct; - - res = libusb_get_active_config_descriptor(dev, &conf_desc); - if (res < 0) - libusb_get_config_descriptor(dev, 0, &conf_desc); - if (conf_desc) { - for (j = 0; j < conf_desc->bNumInterfaces; j++) { - const struct libusb_interface *intf = &conf_desc->interface[j]; - for (k = 0; k < intf->num_altsetting; k++) { - const struct libusb_interface_descriptor *intf_desc; - intf_desc = &intf->altsetting[k]; - if (intf_desc->bInterfaceClass == LIBUSB_CLASS_HID) { - interface_num = intf_desc->bInterfaceNumber; - - /* Check the VID/PID against the arguments */ - if ((vendor_id == 0x0 || vendor_id == dev_vid) && - (product_id == 0x0 || product_id == dev_pid)) { - struct hid_device_info *tmp; - - /* VID/PID match. Create the record. */ - tmp = calloc(1, sizeof(struct hid_device_info)); - if (cur_dev) { - cur_dev->next = tmp; - } - else { - root = tmp; - } - cur_dev = tmp; - - /* Fill out the record */ - cur_dev->next = NULL; - cur_dev->path = make_path(dev, interface_num); - - res = libusb_open(dev, &handle); - - if (res >= 0) { - /* Serial Number */ - if (desc.iSerialNumber > 0) - cur_dev->serial_number = - get_usb_string(handle, desc.iSerialNumber); - - /* Manufacturer and Product strings */ - if (desc.iManufacturer > 0) - cur_dev->manufacturer_string = - get_usb_string(handle, desc.iManufacturer); - if (desc.iProduct > 0) - cur_dev->product_string = - get_usb_string(handle, desc.iProduct); - -#ifdef INVASIVE_GET_USAGE -{ - /* - This section is removed because it is too - invasive on the system. Getting a Usage Page - and Usage requires parsing the HID Report - descriptor. Getting a HID Report descriptor - involves claiming the interface. Claiming the - interface involves detaching the kernel driver. - Detaching the kernel driver is hard on the system - because it will unclaim interfaces (if another - app has them claimed) and the re-attachment of - the driver will sometimes change /dev entry names. - It is for these reasons that this section is - #if 0. For composite devices, use the interface - field in the hid_device_info struct to distinguish - between interfaces. */ - unsigned char data[256]; -#ifdef DETACH_KERNEL_DRIVER - int detached = 0; - /* Usage Page and Usage */ - res = libusb_kernel_driver_active(handle, interface_num); - if (res == 1) { - res = libusb_detach_kernel_driver(handle, interface_num); - if (res < 0) - LOG("Couldn't detach kernel driver, even though a kernel driver was attached."); - else - detached = 1; - } -#endif - res = libusb_claim_interface(handle, interface_num); - if (res >= 0) { - /* Get the HID Report Descriptor. */ - res = libusb_control_transfer(handle, LIBUSB_ENDPOINT_IN|LIBUSB_RECIPIENT_INTERFACE, LIBUSB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_REPORT << 8)|interface_num, 0, data, sizeof(data), 5000); - if (res >= 0) { - unsigned short page=0, usage=0; - /* Parse the usage and usage page - out of the report descriptor. */ - get_usage(data, res, &page, &usage); - cur_dev->usage_page = page; - cur_dev->usage = usage; - } - else - LOG("libusb_control_transfer() for getting the HID report failed with %d\n", res); - - /* Release the interface */ - res = libusb_release_interface(handle, interface_num); - if (res < 0) - LOG("Can't release the interface.\n"); - } - else - LOG("Can't claim interface %d\n", res); -#ifdef DETACH_KERNEL_DRIVER - /* Re-attach kernel driver if necessary. */ - if (detached) { - res = libusb_attach_kernel_driver(handle, interface_num); - if (res < 0) - LOG("Couldn't re-attach kernel driver.\n"); - } -#endif -} -#endif /* INVASIVE_GET_USAGE */ - - libusb_close(handle); - } - /* VID/PID */ - cur_dev->vendor_id = dev_vid; - cur_dev->product_id = dev_pid; - - /* Release Number */ - cur_dev->release_number = desc.bcdDevice; - - /* Interface Number */ - cur_dev->interface_number = interface_num; - } - } - } /* altsettings */ - } /* interfaces */ - libusb_free_config_descriptor(conf_desc); - } - } - - libusb_free_device_list(devs, 1); - - return root; -} - -void HID_API_EXPORT hid_free_enumeration(struct hid_device_info *devs) -{ - struct hid_device_info *d = devs; - while (d) { - struct hid_device_info *next = d->next; - free(d->path); - free(d->serial_number); - free(d->manufacturer_string); - free(d->product_string); - free(d); - d = next; - } -} - -hid_device * hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number) -{ - struct hid_device_info *devs, *cur_dev; - const char *path_to_open = NULL; - hid_device *handle = NULL; - - devs = hid_enumerate(vendor_id, product_id); - cur_dev = devs; - while (cur_dev) { - if (cur_dev->vendor_id == vendor_id && - cur_dev->product_id == product_id) { - if (serial_number) { - if (cur_dev->serial_number && - wcscmp(serial_number, cur_dev->serial_number) == 0) { - path_to_open = cur_dev->path; - break; - } - } - else { - path_to_open = cur_dev->path; - break; - } - } - cur_dev = cur_dev->next; - } - - if (path_to_open) { - /* Open the device */ - handle = hid_open_path(path_to_open); - } - - hid_free_enumeration(devs); - - return handle; -} - -static void read_callback(struct libusb_transfer *transfer) -{ - hid_device *dev = transfer->user_data; - int res; - - if (transfer->status == LIBUSB_TRANSFER_COMPLETED) { - - struct input_report *rpt = malloc(sizeof(*rpt)); - rpt->data = malloc(transfer->actual_length); - memcpy(rpt->data, transfer->buffer, transfer->actual_length); - rpt->len = transfer->actual_length; - rpt->next = NULL; - - pthread_mutex_lock(&dev->mutex); - - /* Attach the new report object to the end of the list. */ - if (dev->input_reports == NULL) { - /* The list is empty. Put it at the root. */ - dev->input_reports = rpt; - pthread_cond_signal(&dev->condition); - } - else { - /* Find the end of the list and attach. */ - struct input_report *cur = dev->input_reports; - int num_queued = 0; - while (cur->next != NULL) { - cur = cur->next; - num_queued++; - } - cur->next = rpt; - - /* Pop one off if we've reached 30 in the queue. This - way we don't grow forever if the user never reads - anything from the device. */ - if (num_queued > 30) { - return_data(dev, NULL, 0); - } - } - pthread_mutex_unlock(&dev->mutex); - } - else if (transfer->status == LIBUSB_TRANSFER_CANCELLED) { - dev->shutdown_thread = 1; - dev->cancelled = 1; - return; - } - else if (transfer->status == LIBUSB_TRANSFER_NO_DEVICE) { - dev->shutdown_thread = 1; - dev->cancelled = 1; - return; - } - else if (transfer->status == LIBUSB_TRANSFER_TIMED_OUT) { - //LOG("Timeout (normal)\n"); - } - else { - LOG("Unknown transfer code: %d\n", transfer->status); - } - - /* Re-submit the transfer object. */ - res = libusb_submit_transfer(transfer); - if (res != 0) { - LOG("Unable to submit URB. libusb error code: %d\n", res); - dev->shutdown_thread = 1; - dev->cancelled = 1; - } -} - - -static void *read_thread(void *param) -{ - hid_device *dev = param; - unsigned char *buf; - const size_t length = dev->input_ep_max_packet_size; - - /* Set up the transfer object. */ - buf = malloc(length); - dev->transfer = libusb_alloc_transfer(0); - libusb_fill_interrupt_transfer(dev->transfer, - dev->device_handle, - dev->input_endpoint, - buf, - length, - read_callback, - dev, - 5000/*timeout*/); - - /* Make the first submission. Further submissions are made - from inside read_callback() */ - libusb_submit_transfer(dev->transfer); - - /* Notify the main thread that the read thread is up and running. */ - pthread_barrier_wait(&dev->barrier); - - /* Handle all the events. */ - while (!dev->shutdown_thread) { - int res; - res = libusb_handle_events(usb_context); - if (res < 0) { - /* There was an error. */ - LOG("read_thread(): libusb reports error # %d\n", res); - - /* Break out of this loop only on fatal error.*/ - if (res != LIBUSB_ERROR_BUSY && - res != LIBUSB_ERROR_TIMEOUT && - res != LIBUSB_ERROR_OVERFLOW && - res != LIBUSB_ERROR_INTERRUPTED) { - break; - } - } - } - - /* Cancel any transfer that may be pending. This call will fail - if no transfers are pending, but that's OK. */ - libusb_cancel_transfer(dev->transfer); - - while (!dev->cancelled) - libusb_handle_events_completed(usb_context, &dev->cancelled); - - /* Now that the read thread is stopping, Wake any threads which are - waiting on data (in hid_read_timeout()). Do this under a mutex to - make sure that a thread which is about to go to sleep waiting on - the condition actually will go to sleep before the condition is - signaled. */ - pthread_mutex_lock(&dev->mutex); - pthread_cond_broadcast(&dev->condition); - pthread_mutex_unlock(&dev->mutex); - - /* The dev->transfer->buffer and dev->transfer objects are cleaned up - in hid_close(). They are not cleaned up here because this thread - could end either due to a disconnect or due to a user - call to hid_close(). In both cases the objects can be safely - cleaned up after the call to pthread_join() (in hid_close()), but - since hid_close() calls libusb_cancel_transfer(), on these objects, - they can not be cleaned up here. */ - - return NULL; -} - - -hid_device * HID_API_EXPORT hid_open_path(const char *path) -{ - hid_device *dev = NULL; - - libusb_device **devs; - libusb_device *usb_dev; - int res; - int d = 0; - int good_open = 0; - - if(hid_init() < 0) - return NULL; - - dev = new_hid_device(); - - libusb_get_device_list(usb_context, &devs); - while ((usb_dev = devs[d++]) != NULL) { - struct libusb_device_descriptor desc; - struct libusb_config_descriptor *conf_desc = NULL; - int i,j,k; - libusb_get_device_descriptor(usb_dev, &desc); - - if (libusb_get_active_config_descriptor(usb_dev, &conf_desc) < 0) - continue; - for (j = 0; j < conf_desc->bNumInterfaces; j++) { - const struct libusb_interface *intf = &conf_desc->interface[j]; - for (k = 0; k < intf->num_altsetting; k++) { - const struct libusb_interface_descriptor *intf_desc; - intf_desc = &intf->altsetting[k]; - if (intf_desc->bInterfaceClass == LIBUSB_CLASS_HID) { - char *dev_path = make_path(usb_dev, intf_desc->bInterfaceNumber); - if (!strcmp(dev_path, path)) { - /* Matched Paths. Open this device */ - - /* OPEN HERE */ - res = libusb_open(usb_dev, &dev->device_handle); - if (res < 0) { - LOG("can't open device\n"); - free(dev_path); - break; - } - good_open = 1; -#ifdef DETACH_KERNEL_DRIVER - /* Detach the kernel driver, but only if the - device is managed by the kernel */ - if (libusb_kernel_driver_active(dev->device_handle, intf_desc->bInterfaceNumber) == 1) { - res = libusb_detach_kernel_driver(dev->device_handle, intf_desc->bInterfaceNumber); - if (res < 0) { - libusb_close(dev->device_handle); - LOG("Unable to detach Kernel Driver\n"); - free(dev_path); - good_open = 0; - break; - } - } -#endif - res = libusb_claim_interface(dev->device_handle, intf_desc->bInterfaceNumber); - if (res < 0) { - LOG("can't claim interface %d: %d\n", intf_desc->bInterfaceNumber, res); - free(dev_path); - libusb_close(dev->device_handle); - good_open = 0; - break; - } - - /* Store off the string descriptor indexes */ - dev->manufacturer_index = desc.iManufacturer; - dev->product_index = desc.iProduct; - dev->serial_index = desc.iSerialNumber; - - /* Store off the interface number */ - dev->interface = intf_desc->bInterfaceNumber; - - /* Find the INPUT and OUTPUT endpoints. An - OUTPUT endpoint is not required. */ - for (i = 0; i < intf_desc->bNumEndpoints; i++) { - const struct libusb_endpoint_descriptor *ep - = &intf_desc->endpoint[i]; - - /* Determine the type and direction of this - endpoint. */ - int is_interrupt = - (ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK) - == LIBUSB_TRANSFER_TYPE_INTERRUPT; - int is_output = - (ep->bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK) - == LIBUSB_ENDPOINT_OUT; - int is_input = - (ep->bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK) - == LIBUSB_ENDPOINT_IN; - - /* Decide whether to use it for input or output. */ - if (dev->input_endpoint == 0 && - is_interrupt && is_input) { - /* Use this endpoint for INPUT */ - dev->input_endpoint = ep->bEndpointAddress; - dev->input_ep_max_packet_size = ep->wMaxPacketSize; - } - if (dev->output_endpoint == 0 && - is_interrupt && is_output) { - /* Use this endpoint for OUTPUT */ - dev->output_endpoint = ep->bEndpointAddress; - } - } - - pthread_create(&dev->thread, NULL, read_thread, dev); - - /* Wait here for the read thread to be initialized. */ - pthread_barrier_wait(&dev->barrier); - - } - free(dev_path); - } - } - } - libusb_free_config_descriptor(conf_desc); - - } - - libusb_free_device_list(devs, 1); - - /* If we have a good handle, return it. */ - if (good_open) { - return dev; - } - else { - /* Unable to open any devices. */ - free_hid_device(dev); - return NULL; - } -} - - -int HID_API_EXPORT hid_write(hid_device *dev, const unsigned char *data, size_t length) -{ - int res; - int report_number = data[0]; - int skipped_report_id = 0; - - if (report_number == 0x0) { - data++; - length--; - skipped_report_id = 1; - } - - - if (dev->output_endpoint <= 0) { - /* No interrupt out endpoint. Use the Control Endpoint */ - res = libusb_control_transfer(dev->device_handle, - LIBUSB_REQUEST_TYPE_CLASS|LIBUSB_RECIPIENT_INTERFACE|LIBUSB_ENDPOINT_OUT, - 0x09/*HID Set_Report*/, - (2/*HID output*/ << 8) | report_number, - dev->interface, - (unsigned char *)data, length, - 1000/*timeout millis*/); - - if (res < 0) - return -1; - - if (skipped_report_id) - length++; - - return length; - } - else { - /* Use the interrupt out endpoint */ - int actual_length; - res = libusb_interrupt_transfer(dev->device_handle, - dev->output_endpoint, - (unsigned char*)data, - length, - &actual_length, 1000); - - if (res < 0) - return -1; - - if (skipped_report_id) - actual_length++; - - return actual_length; - } -} - -/* Helper function, to simplify hid_read(). - This should be called with dev->mutex locked. */ -static int return_data(hid_device *dev, unsigned char *data, size_t length) -{ - /* Copy the data out of the linked list item (rpt) into the - return buffer (data), and delete the liked list item. */ - struct input_report *rpt = dev->input_reports; - size_t len = (length < rpt->len)? length: rpt->len; - if (len > 0) - memcpy(data, rpt->data, len); - dev->input_reports = rpt->next; - free(rpt->data); - free(rpt); - return len; -} - -static void cleanup_mutex(void *param) -{ - hid_device *dev = param; - pthread_mutex_unlock(&dev->mutex); -} - - -int HID_API_EXPORT hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds) -{ - int bytes_read = -1; - -#if 0 - int transferred; - int res = libusb_interrupt_transfer(dev->device_handle, dev->input_endpoint, data, length, &transferred, 5000); - LOG("transferred: %d\n", transferred); - return transferred; -#endif - - pthread_mutex_lock(&dev->mutex); - pthread_cleanup_push(&cleanup_mutex, dev); - - /* There's an input report queued up. Return it. */ - if (dev->input_reports) { - /* Return the first one */ - bytes_read = return_data(dev, data, length); - goto ret; - } - - if (dev->shutdown_thread) { - /* This means the device has been disconnected. - An error code of -1 should be returned. */ - bytes_read = -1; - goto ret; - } - - if (milliseconds == -1) { - /* Blocking */ - while (!dev->input_reports && !dev->shutdown_thread) { - pthread_cond_wait(&dev->condition, &dev->mutex); - } - if (dev->input_reports) { - bytes_read = return_data(dev, data, length); - } - } - else if (milliseconds > 0) { - /* Non-blocking, but called with timeout. */ - int res; - struct timespec ts; - clock_gettime(CLOCK_REALTIME, &ts); - ts.tv_sec += milliseconds / 1000; - ts.tv_nsec += (milliseconds % 1000) * 1000000; - if (ts.tv_nsec >= 1000000000L) { - ts.tv_sec++; - ts.tv_nsec -= 1000000000L; - } - - while (!dev->input_reports && !dev->shutdown_thread) { - res = pthread_cond_timedwait(&dev->condition, &dev->mutex, &ts); - if (res == 0) { - if (dev->input_reports) { - bytes_read = return_data(dev, data, length); - break; - } - - /* If we're here, there was a spurious wake up - or the read thread was shutdown. Run the - loop again (ie: don't break). */ - } - else if (res == ETIMEDOUT) { - /* Timed out. */ - bytes_read = 0; - break; - } - else { - /* Error. */ - bytes_read = -1; - break; - } - } - } - else { - /* Purely non-blocking */ - bytes_read = 0; - } - -ret: - pthread_mutex_unlock(&dev->mutex); - pthread_cleanup_pop(0); - - return bytes_read; -} - -int HID_API_EXPORT hid_read(hid_device *dev, unsigned char *data, size_t length) -{ - return hid_read_timeout(dev, data, length, dev->blocking ? -1 : 0); -} - -int HID_API_EXPORT hid_set_nonblocking(hid_device *dev, int nonblock) -{ - dev->blocking = !nonblock; - - return 0; -} - - -int HID_API_EXPORT hid_send_feature_report(hid_device *dev, const unsigned char *data, size_t length) -{ - int res = -1; - int skipped_report_id = 0; - int report_number = data[0]; - - if (report_number == 0x0) { - data++; - length--; - skipped_report_id = 1; - } - - res = libusb_control_transfer(dev->device_handle, - LIBUSB_REQUEST_TYPE_CLASS|LIBUSB_RECIPIENT_INTERFACE|LIBUSB_ENDPOINT_OUT, - 0x09/*HID set_report*/, - (3/*HID feature*/ << 8) | report_number, - dev->interface, - (unsigned char *)data, length, - 1000/*timeout millis*/); - - if (res < 0) - return -1; - - /* Account for the report ID */ - if (skipped_report_id) - length++; - - return length; -} - -int HID_API_EXPORT hid_get_feature_report(hid_device *dev, unsigned char *data, size_t length) -{ - int res = -1; - int skipped_report_id = 0; - int report_number = data[0]; - - if (report_number == 0x0) { - /* Offset the return buffer by 1, so that the report ID - will remain in byte 0. */ - data++; - length--; - skipped_report_id = 1; - } - res = libusb_control_transfer(dev->device_handle, - LIBUSB_REQUEST_TYPE_CLASS|LIBUSB_RECIPIENT_INTERFACE|LIBUSB_ENDPOINT_IN, - 0x01/*HID get_report*/, - (3/*HID feature*/ << 8) | report_number, - dev->interface, - (unsigned char *)data, length, - 1000/*timeout millis*/); - - if (res < 0) - return -1; - - if (skipped_report_id) - res++; - - return res; -} - - -void HID_API_EXPORT hid_close(hid_device *dev) -{ - if (!dev) - return; - - /* Cause read_thread() to stop. */ - dev->shutdown_thread = 1; - libusb_cancel_transfer(dev->transfer); - - /* Wait for read_thread() to end. */ - pthread_join(dev->thread, NULL); - - /* Clean up the Transfer objects allocated in read_thread(). */ - free(dev->transfer->buffer); - libusb_free_transfer(dev->transfer); - - /* release the interface */ - libusb_release_interface(dev->device_handle, dev->interface); - - /* Close the handle */ - libusb_close(dev->device_handle); - - /* Clear out the queue of received reports. */ - pthread_mutex_lock(&dev->mutex); - while (dev->input_reports) { - return_data(dev, NULL, 0); - } - pthread_mutex_unlock(&dev->mutex); - - free_hid_device(dev); -} - - -int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - return hid_get_indexed_string(dev, dev->manufacturer_index, string, maxlen); -} - -int HID_API_EXPORT_CALL hid_get_product_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - return hid_get_indexed_string(dev, dev->product_index, string, maxlen); -} - -int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - return hid_get_indexed_string(dev, dev->serial_index, string, maxlen); -} - -int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *dev, int string_index, wchar_t *string, size_t maxlen) -{ - wchar_t *str; - - str = get_usb_string(dev->device_handle, string_index); - if (str) { - wcsncpy(string, str, maxlen); - string[maxlen-1] = L'\0'; - free(str); - return 0; - } - else - return -1; -} - - -HID_API_EXPORT const wchar_t * HID_API_CALL hid_error(hid_device *dev) -{ - return NULL; -} - - -struct lang_map_entry { - const char *name; - const char *string_code; - uint16_t usb_code; -}; - -#define LANG(name,code,usb_code) { name, code, usb_code } -static struct lang_map_entry lang_map[] = { - LANG("Afrikaans", "af", 0x0436), - LANG("Albanian", "sq", 0x041C), - LANG("Arabic - United Arab Emirates", "ar_ae", 0x3801), - LANG("Arabic - Bahrain", "ar_bh", 0x3C01), - LANG("Arabic - Algeria", "ar_dz", 0x1401), - LANG("Arabic - Egypt", "ar_eg", 0x0C01), - LANG("Arabic - Iraq", "ar_iq", 0x0801), - LANG("Arabic - Jordan", "ar_jo", 0x2C01), - LANG("Arabic - Kuwait", "ar_kw", 0x3401), - LANG("Arabic - Lebanon", "ar_lb", 0x3001), - LANG("Arabic - Libya", "ar_ly", 0x1001), - LANG("Arabic - Morocco", "ar_ma", 0x1801), - LANG("Arabic - Oman", "ar_om", 0x2001), - LANG("Arabic - Qatar", "ar_qa", 0x4001), - LANG("Arabic - Saudi Arabia", "ar_sa", 0x0401), - LANG("Arabic - Syria", "ar_sy", 0x2801), - LANG("Arabic - Tunisia", "ar_tn", 0x1C01), - LANG("Arabic - Yemen", "ar_ye", 0x2401), - LANG("Armenian", "hy", 0x042B), - LANG("Azeri - Latin", "az_az", 0x042C), - LANG("Azeri - Cyrillic", "az_az", 0x082C), - LANG("Basque", "eu", 0x042D), - LANG("Belarusian", "be", 0x0423), - LANG("Bulgarian", "bg", 0x0402), - LANG("Catalan", "ca", 0x0403), - LANG("Chinese - China", "zh_cn", 0x0804), - LANG("Chinese - Hong Kong SAR", "zh_hk", 0x0C04), - LANG("Chinese - Macau SAR", "zh_mo", 0x1404), - LANG("Chinese - Singapore", "zh_sg", 0x1004), - LANG("Chinese - Taiwan", "zh_tw", 0x0404), - LANG("Croatian", "hr", 0x041A), - LANG("Czech", "cs", 0x0405), - LANG("Danish", "da", 0x0406), - LANG("Dutch - Netherlands", "nl_nl", 0x0413), - LANG("Dutch - Belgium", "nl_be", 0x0813), - LANG("English - Australia", "en_au", 0x0C09), - LANG("English - Belize", "en_bz", 0x2809), - LANG("English - Canada", "en_ca", 0x1009), - LANG("English - Caribbean", "en_cb", 0x2409), - LANG("English - Ireland", "en_ie", 0x1809), - LANG("English - Jamaica", "en_jm", 0x2009), - LANG("English - New Zealand", "en_nz", 0x1409), - LANG("English - Phillippines", "en_ph", 0x3409), - LANG("English - Southern Africa", "en_za", 0x1C09), - LANG("English - Trinidad", "en_tt", 0x2C09), - LANG("English - Great Britain", "en_gb", 0x0809), - LANG("English - United States", "en_us", 0x0409), - LANG("Estonian", "et", 0x0425), - LANG("Farsi", "fa", 0x0429), - LANG("Finnish", "fi", 0x040B), - LANG("Faroese", "fo", 0x0438), - LANG("French - France", "fr_fr", 0x040C), - LANG("French - Belgium", "fr_be", 0x080C), - LANG("French - Canada", "fr_ca", 0x0C0C), - LANG("French - Luxembourg", "fr_lu", 0x140C), - LANG("French - Switzerland", "fr_ch", 0x100C), - LANG("Gaelic - Ireland", "gd_ie", 0x083C), - LANG("Gaelic - Scotland", "gd", 0x043C), - LANG("German - Germany", "de_de", 0x0407), - LANG("German - Austria", "de_at", 0x0C07), - LANG("German - Liechtenstein", "de_li", 0x1407), - LANG("German - Luxembourg", "de_lu", 0x1007), - LANG("German - Switzerland", "de_ch", 0x0807), - LANG("Greek", "el", 0x0408), - LANG("Hebrew", "he", 0x040D), - LANG("Hindi", "hi", 0x0439), - LANG("Hungarian", "hu", 0x040E), - LANG("Icelandic", "is", 0x040F), - LANG("Indonesian", "id", 0x0421), - LANG("Italian - Italy", "it_it", 0x0410), - LANG("Italian - Switzerland", "it_ch", 0x0810), - LANG("Japanese", "ja", 0x0411), - LANG("Korean", "ko", 0x0412), - LANG("Latvian", "lv", 0x0426), - LANG("Lithuanian", "lt", 0x0427), - LANG("F.Y.R.O. Macedonia", "mk", 0x042F), - LANG("Malay - Malaysia", "ms_my", 0x043E), - LANG("Malay – Brunei", "ms_bn", 0x083E), - LANG("Maltese", "mt", 0x043A), - LANG("Marathi", "mr", 0x044E), - LANG("Norwegian - Bokml", "no_no", 0x0414), - LANG("Norwegian - Nynorsk", "no_no", 0x0814), - LANG("Polish", "pl", 0x0415), - LANG("Portuguese - Portugal", "pt_pt", 0x0816), - LANG("Portuguese - Brazil", "pt_br", 0x0416), - LANG("Raeto-Romance", "rm", 0x0417), - LANG("Romanian - Romania", "ro", 0x0418), - LANG("Romanian - Republic of Moldova", "ro_mo", 0x0818), - LANG("Russian", "ru", 0x0419), - LANG("Russian - Republic of Moldova", "ru_mo", 0x0819), - LANG("Sanskrit", "sa", 0x044F), - LANG("Serbian - Cyrillic", "sr_sp", 0x0C1A), - LANG("Serbian - Latin", "sr_sp", 0x081A), - LANG("Setsuana", "tn", 0x0432), - LANG("Slovenian", "sl", 0x0424), - LANG("Slovak", "sk", 0x041B), - LANG("Sorbian", "sb", 0x042E), - LANG("Spanish - Spain (Traditional)", "es_es", 0x040A), - LANG("Spanish - Argentina", "es_ar", 0x2C0A), - LANG("Spanish - Bolivia", "es_bo", 0x400A), - LANG("Spanish - Chile", "es_cl", 0x340A), - LANG("Spanish - Colombia", "es_co", 0x240A), - LANG("Spanish - Costa Rica", "es_cr", 0x140A), - LANG("Spanish - Dominican Republic", "es_do", 0x1C0A), - LANG("Spanish - Ecuador", "es_ec", 0x300A), - LANG("Spanish - Guatemala", "es_gt", 0x100A), - LANG("Spanish - Honduras", "es_hn", 0x480A), - LANG("Spanish - Mexico", "es_mx", 0x080A), - LANG("Spanish - Nicaragua", "es_ni", 0x4C0A), - LANG("Spanish - Panama", "es_pa", 0x180A), - LANG("Spanish - Peru", "es_pe", 0x280A), - LANG("Spanish - Puerto Rico", "es_pr", 0x500A), - LANG("Spanish - Paraguay", "es_py", 0x3C0A), - LANG("Spanish - El Salvador", "es_sv", 0x440A), - LANG("Spanish - Uruguay", "es_uy", 0x380A), - LANG("Spanish - Venezuela", "es_ve", 0x200A), - LANG("Southern Sotho", "st", 0x0430), - LANG("Swahili", "sw", 0x0441), - LANG("Swedish - Sweden", "sv_se", 0x041D), - LANG("Swedish - Finland", "sv_fi", 0x081D), - LANG("Tamil", "ta", 0x0449), - LANG("Tatar", "tt", 0X0444), - LANG("Thai", "th", 0x041E), - LANG("Turkish", "tr", 0x041F), - LANG("Tsonga", "ts", 0x0431), - LANG("Ukrainian", "uk", 0x0422), - LANG("Urdu", "ur", 0x0420), - LANG("Uzbek - Cyrillic", "uz_uz", 0x0843), - LANG("Uzbek – Latin", "uz_uz", 0x0443), - LANG("Vietnamese", "vi", 0x042A), - LANG("Xhosa", "xh", 0x0434), - LANG("Yiddish", "yi", 0x043D), - LANG("Zulu", "zu", 0x0435), - LANG(NULL, NULL, 0x0), -}; - -uint16_t get_usb_code_for_current_locale(void) -{ - char *locale; - char search_string[64]; - char *ptr; - struct lang_map_entry *lang; - - /* Get the current locale. */ - locale = setlocale(0, NULL); - if (!locale) - return 0x0; - - /* Make a copy of the current locale string. */ - strncpy(search_string, locale, sizeof(search_string)); - search_string[sizeof(search_string)-1] = '\0'; - - /* Chop off the encoding part, and make it lower case. */ - ptr = search_string; - while (*ptr) { - *ptr = tolower(*ptr); - if (*ptr == '.') { - *ptr = '\0'; - break; - } - ptr++; - } - - /* Find the entry which matches the string code of our locale. */ - lang = lang_map; - while (lang->string_code) { - if (!strcmp(lang->string_code, search_string)) { - return lang->usb_code; - } - lang++; - } - - /* There was no match. Find with just the language only. */ - /* Chop off the variant. Chop it off at the '_'. */ - ptr = search_string; - while (*ptr) { - *ptr = tolower(*ptr); - if (*ptr == '_') { - *ptr = '\0'; - break; - } - ptr++; - } - -#if 0 /* TODO: Do we need this? */ - /* Find the entry which matches the string code of our language. */ - lang = lang_map; - while (lang->string_code) { - if (!strcmp(lang->string_code, search_string)) { - return lang->usb_code; - } - lang++; - } -#endif - - /* Found nothing. */ - return 0x0; -} - -#ifdef __cplusplus -} -#endif diff --git a/vendor/github.com/karalabe/hid/hidapi/mac/hid.c b/vendor/github.com/karalabe/hid/hidapi/mac/hid.c deleted file mode 100644 index e0756a15..00000000 --- a/vendor/github.com/karalabe/hid/hidapi/mac/hid.c +++ /dev/null @@ -1,1110 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 2010-07-03 - - Copyright 2010, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU General Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -/* See Apple Technical Note TN2187 for details on IOHidManager. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "hidapi.h" - -/* Barrier implementation because Mac OSX doesn't have pthread_barrier. - It also doesn't have clock_gettime(). So much for POSIX and SUSv2. - This implementation came from Brent Priddy and was posted on - StackOverflow. It is used with his permission. */ -typedef int pthread_barrierattr_t; -typedef struct pthread_barrier { - pthread_mutex_t mutex; - pthread_cond_t cond; - int count; - int trip_count; -} pthread_barrier_t; - -static int pthread_barrier_init(pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count) -{ - if(count == 0) { - errno = EINVAL; - return -1; - } - - if(pthread_mutex_init(&barrier->mutex, 0) < 0) { - return -1; - } - if(pthread_cond_init(&barrier->cond, 0) < 0) { - pthread_mutex_destroy(&barrier->mutex); - return -1; - } - barrier->trip_count = count; - barrier->count = 0; - - return 0; -} - -static int pthread_barrier_destroy(pthread_barrier_t *barrier) -{ - pthread_cond_destroy(&barrier->cond); - pthread_mutex_destroy(&barrier->mutex); - return 0; -} - -static int pthread_barrier_wait(pthread_barrier_t *barrier) -{ - pthread_mutex_lock(&barrier->mutex); - ++(barrier->count); - if(barrier->count >= barrier->trip_count) - { - barrier->count = 0; - pthread_cond_broadcast(&barrier->cond); - pthread_mutex_unlock(&barrier->mutex); - return 1; - } - else - { - pthread_cond_wait(&barrier->cond, &(barrier->mutex)); - pthread_mutex_unlock(&barrier->mutex); - return 0; - } -} - -static int return_data(hid_device *dev, unsigned char *data, size_t length); - -/* Linked List of input reports received from the device. */ -struct input_report { - uint8_t *data; - size_t len; - struct input_report *next; -}; - -struct hid_device_ { - IOHIDDeviceRef device_handle; - int blocking; - int uses_numbered_reports; - int disconnected; - CFStringRef run_loop_mode; - CFRunLoopRef run_loop; - CFRunLoopSourceRef source; - uint8_t *input_report_buf; - CFIndex max_input_report_len; - struct input_report *input_reports; - - pthread_t thread; - pthread_mutex_t mutex; /* Protects input_reports */ - pthread_cond_t condition; - pthread_barrier_t barrier; /* Ensures correct startup sequence */ - pthread_barrier_t shutdown_barrier; /* Ensures correct shutdown sequence */ - int shutdown_thread; -}; - -static hid_device *new_hid_device(void) -{ - hid_device *dev = calloc(1, sizeof(hid_device)); - dev->device_handle = NULL; - dev->blocking = 1; - dev->uses_numbered_reports = 0; - dev->disconnected = 0; - dev->run_loop_mode = NULL; - dev->run_loop = NULL; - dev->source = NULL; - dev->input_report_buf = NULL; - dev->input_reports = NULL; - dev->shutdown_thread = 0; - - /* Thread objects */ - pthread_mutex_init(&dev->mutex, NULL); - pthread_cond_init(&dev->condition, NULL); - pthread_barrier_init(&dev->barrier, NULL, 2); - pthread_barrier_init(&dev->shutdown_barrier, NULL, 2); - - return dev; -} - -static void free_hid_device(hid_device *dev) -{ - if (!dev) - return; - - /* Delete any input reports still left over. */ - struct input_report *rpt = dev->input_reports; - while (rpt) { - struct input_report *next = rpt->next; - free(rpt->data); - free(rpt); - rpt = next; - } - - /* Free the string and the report buffer. The check for NULL - is necessary here as CFRelease() doesn't handle NULL like - free() and others do. */ - if (dev->run_loop_mode) - CFRelease(dev->run_loop_mode); - if (dev->source) - CFRelease(dev->source); - free(dev->input_report_buf); - - /* Clean up the thread objects */ - pthread_barrier_destroy(&dev->shutdown_barrier); - pthread_barrier_destroy(&dev->barrier); - pthread_cond_destroy(&dev->condition); - pthread_mutex_destroy(&dev->mutex); - - /* Free the structure itself. */ - free(dev); -} - -static IOHIDManagerRef hid_mgr = 0x0; - - -#if 0 -static void register_error(hid_device *device, const char *op) -{ - -} -#endif - - -static int32_t get_int_property(IOHIDDeviceRef device, CFStringRef key) -{ - CFTypeRef ref; - int32_t value; - - ref = IOHIDDeviceGetProperty(device, key); - if (ref) { - if (CFGetTypeID(ref) == CFNumberGetTypeID()) { - CFNumberGetValue((CFNumberRef) ref, kCFNumberSInt32Type, &value); - return value; - } - } - return 0; -} - -static unsigned short get_vendor_id(IOHIDDeviceRef device) -{ - return get_int_property(device, CFSTR(kIOHIDVendorIDKey)); -} - -static unsigned short get_product_id(IOHIDDeviceRef device) -{ - return get_int_property(device, CFSTR(kIOHIDProductIDKey)); -} - -static int32_t get_max_report_length(IOHIDDeviceRef device) -{ - return get_int_property(device, CFSTR(kIOHIDMaxInputReportSizeKey)); -} - -static int get_string_property(IOHIDDeviceRef device, CFStringRef prop, wchar_t *buf, size_t len) -{ - CFStringRef str; - - if (!len) - return 0; - - str = IOHIDDeviceGetProperty(device, prop); - - buf[0] = 0; - - if (str) { - CFIndex str_len = CFStringGetLength(str); - CFRange range; - CFIndex used_buf_len; - CFIndex chars_copied; - - len --; - - range.location = 0; - range.length = ((size_t)str_len > len)? len: (size_t)str_len; - chars_copied = CFStringGetBytes(str, - range, - kCFStringEncodingUTF32LE, - (char)'?', - FALSE, - (UInt8*)buf, - len * sizeof(wchar_t), - &used_buf_len); - - if (chars_copied == len) - buf[len] = 0; /* len is decremented above */ - else - buf[chars_copied] = 0; - - return 0; - } - else - return -1; - -} - -static int get_serial_number(IOHIDDeviceRef device, wchar_t *buf, size_t len) -{ - return get_string_property(device, CFSTR(kIOHIDSerialNumberKey), buf, len); -} - -static int get_manufacturer_string(IOHIDDeviceRef device, wchar_t *buf, size_t len) -{ - return get_string_property(device, CFSTR(kIOHIDManufacturerKey), buf, len); -} - -static int get_product_string(IOHIDDeviceRef device, wchar_t *buf, size_t len) -{ - return get_string_property(device, CFSTR(kIOHIDProductKey), buf, len); -} - - -/* Implementation of wcsdup() for Mac. */ -static wchar_t *dup_wcs(const wchar_t *s) -{ - size_t len = wcslen(s); - wchar_t *ret = malloc((len+1)*sizeof(wchar_t)); - wcscpy(ret, s); - - return ret; -} - -/* hidapi_IOHIDDeviceGetService() - * - * Return the io_service_t corresponding to a given IOHIDDeviceRef, either by: - * - on OS X 10.6 and above, calling IOHIDDeviceGetService() - * - on OS X 10.5, extract it from the IOHIDDevice struct - */ -static io_service_t hidapi_IOHIDDeviceGetService(IOHIDDeviceRef device) -{ - static void *iokit_framework = NULL; - static io_service_t (*dynamic_IOHIDDeviceGetService)(IOHIDDeviceRef device) = NULL; - - /* Use dlopen()/dlsym() to get a pointer to IOHIDDeviceGetService() if it exists. - * If any of these steps fail, dynamic_IOHIDDeviceGetService will be left NULL - * and the fallback method will be used. - */ - if (iokit_framework == NULL) { - iokit_framework = dlopen("/System/Library/IOKit.framework/IOKit", RTLD_LAZY); - - if (iokit_framework != NULL) - dynamic_IOHIDDeviceGetService = dlsym(iokit_framework, "IOHIDDeviceGetService"); - } - - if (dynamic_IOHIDDeviceGetService != NULL) { - /* Running on OS X 10.6 and above: IOHIDDeviceGetService() exists */ - return dynamic_IOHIDDeviceGetService(device); - } - else - { - /* Running on OS X 10.5: IOHIDDeviceGetService() doesn't exist. - * - * Be naughty and pull the service out of the IOHIDDevice. - * IOHIDDevice is an opaque struct not exposed to applications, but its - * layout is stable through all available versions of OS X. - * Tested and working on OS X 10.5.8 i386, x86_64, and ppc. - */ - struct IOHIDDevice_internal { - /* The first field of the IOHIDDevice struct is a - * CFRuntimeBase (which is a private CF struct). - * - * a, b, and c are the 3 fields that make up a CFRuntimeBase. - * See http://opensource.apple.com/source/CF/CF-476.18/CFRuntime.h - * - * The second field of the IOHIDDevice is the io_service_t we're looking for. - */ - uintptr_t a; - uint8_t b[4]; -#if __LP64__ - uint32_t c; -#endif - io_service_t service; - }; - struct IOHIDDevice_internal *tmp = (struct IOHIDDevice_internal *)device; - - return tmp->service; - } -} - -/* Initialize the IOHIDManager. Return 0 for success and -1 for failure. */ -static int init_hid_manager(void) -{ - /* Initialize all the HID Manager Objects */ - hid_mgr = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); - if (hid_mgr) { - IOHIDManagerSetDeviceMatching(hid_mgr, NULL); - IOHIDManagerScheduleWithRunLoop(hid_mgr, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); - return 0; - } - - return -1; -} - -/* Initialize the IOHIDManager if necessary. This is the public function, and - it is safe to call this function repeatedly. Return 0 for success and -1 - for failure. */ -int HID_API_EXPORT hid_init(void) -{ - if (!hid_mgr) { - return init_hid_manager(); - } - - /* Already initialized. */ - return 0; -} - -int HID_API_EXPORT hid_exit(void) -{ - if (hid_mgr) { - /* Close the HID manager. */ - IOHIDManagerClose(hid_mgr, kIOHIDOptionsTypeNone); - CFRelease(hid_mgr); - hid_mgr = NULL; - } - - return 0; -} - -static void process_pending_events(void) { - SInt32 res; - do { - res = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.001, FALSE); - } while(res != kCFRunLoopRunFinished && res != kCFRunLoopRunTimedOut); -} - -struct hid_device_info HID_API_EXPORT *hid_enumerate(unsigned short vendor_id, unsigned short product_id) -{ - struct hid_device_info *root = NULL; /* return object */ - struct hid_device_info *cur_dev = NULL; - CFIndex num_devices; - int i; - - /* Set up the HID Manager if it hasn't been done */ - if (hid_init() < 0) - return NULL; - - /* give the IOHIDManager a chance to update itself */ - process_pending_events(); - - /* Get a list of the Devices */ - IOHIDManagerSetDeviceMatching(hid_mgr, NULL); - CFSetRef device_set = IOHIDManagerCopyDevices(hid_mgr); - - /* Convert the list into a C array so we can iterate easily. */ - num_devices = CFSetGetCount(device_set); - IOHIDDeviceRef *device_array = calloc(num_devices, sizeof(IOHIDDeviceRef)); - CFSetGetValues(device_set, (const void **) device_array); - - /* Iterate over each device, making an entry for it. */ - for (i = 0; i < num_devices; i++) { - unsigned short dev_vid; - unsigned short dev_pid; - #define BUF_LEN 256 - wchar_t buf[BUF_LEN]; - - IOHIDDeviceRef dev = device_array[i]; - - if (!dev) { - continue; - } - dev_vid = get_vendor_id(dev); - dev_pid = get_product_id(dev); - - /* Check the VID/PID against the arguments */ - if ((vendor_id == 0x0 || vendor_id == dev_vid) && - (product_id == 0x0 || product_id == dev_pid)) { - struct hid_device_info *tmp; - io_object_t iokit_dev; - kern_return_t res; - io_string_t path; - - /* VID/PID match. Create the record. */ - tmp = malloc(sizeof(struct hid_device_info)); - if (cur_dev) { - cur_dev->next = tmp; - } - else { - root = tmp; - } - cur_dev = tmp; - - /* Get the Usage Page and Usage for this device. */ - cur_dev->usage_page = get_int_property(dev, CFSTR(kIOHIDPrimaryUsagePageKey)); - cur_dev->usage = get_int_property(dev, CFSTR(kIOHIDPrimaryUsageKey)); - - /* Fill out the record */ - cur_dev->next = NULL; - - /* Fill in the path (IOService plane) */ - iokit_dev = hidapi_IOHIDDeviceGetService(dev); - res = IORegistryEntryGetPath(iokit_dev, kIOServicePlane, path); - if (res == KERN_SUCCESS) - cur_dev->path = strdup(path); - else - cur_dev->path = strdup(""); - - /* Serial Number */ - get_serial_number(dev, buf, BUF_LEN); - cur_dev->serial_number = dup_wcs(buf); - - /* Manufacturer and Product strings */ - get_manufacturer_string(dev, buf, BUF_LEN); - cur_dev->manufacturer_string = dup_wcs(buf); - get_product_string(dev, buf, BUF_LEN); - cur_dev->product_string = dup_wcs(buf); - - /* VID/PID */ - cur_dev->vendor_id = dev_vid; - cur_dev->product_id = dev_pid; - - /* Release Number */ - cur_dev->release_number = get_int_property(dev, CFSTR(kIOHIDVersionNumberKey)); - - /* Interface Number (Unsupported on Mac)*/ - cur_dev->interface_number = -1; - } - } - - free(device_array); - CFRelease(device_set); - - return root; -} - -void HID_API_EXPORT hid_free_enumeration(struct hid_device_info *devs) -{ - /* This function is identical to the Linux version. Platform independent. */ - struct hid_device_info *d = devs; - while (d) { - struct hid_device_info *next = d->next; - free(d->path); - free(d->serial_number); - free(d->manufacturer_string); - free(d->product_string); - free(d); - d = next; - } -} - -hid_device * HID_API_EXPORT hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number) -{ - /* This function is identical to the Linux version. Platform independent. */ - struct hid_device_info *devs, *cur_dev; - const char *path_to_open = NULL; - hid_device * handle = NULL; - - devs = hid_enumerate(vendor_id, product_id); - cur_dev = devs; - while (cur_dev) { - if (cur_dev->vendor_id == vendor_id && - cur_dev->product_id == product_id) { - if (serial_number) { - if (wcscmp(serial_number, cur_dev->serial_number) == 0) { - path_to_open = cur_dev->path; - break; - } - } - else { - path_to_open = cur_dev->path; - break; - } - } - cur_dev = cur_dev->next; - } - - if (path_to_open) { - /* Open the device */ - handle = hid_open_path(path_to_open); - } - - hid_free_enumeration(devs); - - return handle; -} - -static void hid_device_removal_callback(void *context, IOReturn result, - void *sender) -{ - /* Stop the Run Loop for this device. */ - hid_device *d = context; - - d->disconnected = 1; - CFRunLoopStop(d->run_loop); -} - -/* The Run Loop calls this function for each input report received. - This function puts the data into a linked list to be picked up by - hid_read(). */ -static void hid_report_callback(void *context, IOReturn result, void *sender, - IOHIDReportType report_type, uint32_t report_id, - uint8_t *report, CFIndex report_length) -{ - struct input_report *rpt; - hid_device *dev = context; - - /* Make a new Input Report object */ - rpt = calloc(1, sizeof(struct input_report)); - rpt->data = calloc(1, report_length); - memcpy(rpt->data, report, report_length); - rpt->len = report_length; - rpt->next = NULL; - - /* Lock this section */ - pthread_mutex_lock(&dev->mutex); - - /* Attach the new report object to the end of the list. */ - if (dev->input_reports == NULL) { - /* The list is empty. Put it at the root. */ - dev->input_reports = rpt; - } - else { - /* Find the end of the list and attach. */ - struct input_report *cur = dev->input_reports; - int num_queued = 0; - while (cur->next != NULL) { - cur = cur->next; - num_queued++; - } - cur->next = rpt; - - /* Pop one off if we've reached 30 in the queue. This - way we don't grow forever if the user never reads - anything from the device. */ - if (num_queued > 30) { - return_data(dev, NULL, 0); - } - } - - /* Signal a waiting thread that there is data. */ - pthread_cond_signal(&dev->condition); - - /* Unlock */ - pthread_mutex_unlock(&dev->mutex); - -} - -/* This gets called when the read_thread's run loop gets signaled by - hid_close(), and serves to stop the read_thread's run loop. */ -static void perform_signal_callback(void *context) -{ - hid_device *dev = context; - CFRunLoopStop(dev->run_loop); /*TODO: CFRunLoopGetCurrent()*/ -} - -static void *read_thread(void *param) -{ - hid_device *dev = param; - SInt32 code; - - /* Move the device's run loop to this thread. */ - IOHIDDeviceScheduleWithRunLoop(dev->device_handle, CFRunLoopGetCurrent(), dev->run_loop_mode); - - /* Create the RunLoopSource which is used to signal the - event loop to stop when hid_close() is called. */ - CFRunLoopSourceContext ctx; - memset(&ctx, 0, sizeof(ctx)); - ctx.version = 0; - ctx.info = dev; - ctx.perform = &perform_signal_callback; - dev->source = CFRunLoopSourceCreate(kCFAllocatorDefault, 0/*order*/, &ctx); - CFRunLoopAddSource(CFRunLoopGetCurrent(), dev->source, dev->run_loop_mode); - - /* Store off the Run Loop so it can be stopped from hid_close() - and on device disconnection. */ - dev->run_loop = CFRunLoopGetCurrent(); - - /* Notify the main thread that the read thread is up and running. */ - pthread_barrier_wait(&dev->barrier); - - /* Run the Event Loop. CFRunLoopRunInMode() will dispatch HID input - reports into the hid_report_callback(). */ - while (!dev->shutdown_thread && !dev->disconnected) { - code = CFRunLoopRunInMode(dev->run_loop_mode, 1000/*sec*/, FALSE); - /* Return if the device has been disconnected */ - if (code == kCFRunLoopRunFinished) { - dev->disconnected = 1; - break; - } - - - /* Break if The Run Loop returns Finished or Stopped. */ - if (code != kCFRunLoopRunTimedOut && - code != kCFRunLoopRunHandledSource) { - /* There was some kind of error. Setting - shutdown seems to make sense, but - there may be something else more appropriate */ - dev->shutdown_thread = 1; - break; - } - } - - /* Now that the read thread is stopping, Wake any threads which are - waiting on data (in hid_read_timeout()). Do this under a mutex to - make sure that a thread which is about to go to sleep waiting on - the condition actually will go to sleep before the condition is - signaled. */ - pthread_mutex_lock(&dev->mutex); - pthread_cond_broadcast(&dev->condition); - pthread_mutex_unlock(&dev->mutex); - - /* Wait here until hid_close() is called and makes it past - the call to CFRunLoopWakeUp(). This thread still needs to - be valid when that function is called on the other thread. */ - pthread_barrier_wait(&dev->shutdown_barrier); - - return NULL; -} - -/* hid_open_path() - * - * path must be a valid path to an IOHIDDevice in the IOService plane - * Example: "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/EHC1@1D,7/AppleUSBEHCI/PLAYSTATION(R)3 Controller@fd120000/IOUSBInterface@0/IOUSBHIDDriver" - */ -hid_device * HID_API_EXPORT hid_open_path(const char *path) -{ - hid_device *dev = NULL; - io_registry_entry_t entry = MACH_PORT_NULL; - - dev = new_hid_device(); - - /* Set up the HID Manager if it hasn't been done */ - if (hid_init() < 0) - return NULL; - - /* Get the IORegistry entry for the given path */ - entry = IORegistryEntryFromPath(kIOMasterPortDefault, path); - if (entry == MACH_PORT_NULL) { - /* Path wasn't valid (maybe device was removed?) */ - goto return_error; - } - - /* Create an IOHIDDevice for the entry */ - dev->device_handle = IOHIDDeviceCreate(kCFAllocatorDefault, entry); - if (dev->device_handle == NULL) { - /* Error creating the HID device */ - goto return_error; - } - - /* Open the IOHIDDevice */ - IOReturn ret = IOHIDDeviceOpen(dev->device_handle, kIOHIDOptionsTypeSeizeDevice); - if (ret == kIOReturnSuccess) { - char str[32]; - - /* Create the buffers for receiving data */ - dev->max_input_report_len = (CFIndex) get_max_report_length(dev->device_handle); - dev->input_report_buf = calloc(dev->max_input_report_len, sizeof(uint8_t)); - - /* Create the Run Loop Mode for this device. - printing the reference seems to work. */ - sprintf(str, "HIDAPI_%p", dev->device_handle); - dev->run_loop_mode = - CFStringCreateWithCString(NULL, str, kCFStringEncodingASCII); - - /* Attach the device to a Run Loop */ - IOHIDDeviceRegisterInputReportCallback( - dev->device_handle, dev->input_report_buf, dev->max_input_report_len, - &hid_report_callback, dev); - IOHIDDeviceRegisterRemovalCallback(dev->device_handle, hid_device_removal_callback, dev); - - /* Start the read thread */ - pthread_create(&dev->thread, NULL, read_thread, dev); - - /* Wait here for the read thread to be initialized. */ - pthread_barrier_wait(&dev->barrier); - - IOObjectRelease(entry); - return dev; - } - else { - goto return_error; - } - -return_error: - if (dev->device_handle != NULL) - CFRelease(dev->device_handle); - - if (entry != MACH_PORT_NULL) - IOObjectRelease(entry); - - free_hid_device(dev); - return NULL; -} - -static int set_report(hid_device *dev, IOHIDReportType type, const unsigned char *data, size_t length) -{ - const unsigned char *data_to_send; - size_t length_to_send; - IOReturn res; - - /* Return if the device has been disconnected. */ - if (dev->disconnected) - return -1; - - if (data[0] == 0x0) { - /* Not using numbered Reports. - Don't send the report number. */ - data_to_send = data+1; - length_to_send = length-1; - } - else { - /* Using numbered Reports. - Send the Report Number */ - data_to_send = data; - length_to_send = length; - } - - if (!dev->disconnected) { - res = IOHIDDeviceSetReport(dev->device_handle, - type, - data[0], /* Report ID*/ - data_to_send, length_to_send); - - if (res == kIOReturnSuccess) { - return length; - } - else - return -1; - } - - return -1; -} - -int HID_API_EXPORT hid_write(hid_device *dev, const unsigned char *data, size_t length) -{ - return set_report(dev, kIOHIDReportTypeOutput, data, length); -} - -/* Helper function, so that this isn't duplicated in hid_read(). */ -static int return_data(hid_device *dev, unsigned char *data, size_t length) -{ - /* Copy the data out of the linked list item (rpt) into the - return buffer (data), and delete the liked list item. */ - struct input_report *rpt = dev->input_reports; - size_t len = (length < rpt->len)? length: rpt->len; - memcpy(data, rpt->data, len); - dev->input_reports = rpt->next; - free(rpt->data); - free(rpt); - return len; -} - -static int cond_wait(const hid_device *dev, pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - while (!dev->input_reports) { - int res = pthread_cond_wait(cond, mutex); - if (res != 0) - return res; - - /* A res of 0 means we may have been signaled or it may - be a spurious wakeup. Check to see that there's acutally - data in the queue before returning, and if not, go back - to sleep. See the pthread_cond_timedwait() man page for - details. */ - - if (dev->shutdown_thread || dev->disconnected) - return -1; - } - - return 0; -} - -static int cond_timedwait(const hid_device *dev, pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime) -{ - while (!dev->input_reports) { - int res = pthread_cond_timedwait(cond, mutex, abstime); - if (res != 0) - return res; - - /* A res of 0 means we may have been signaled or it may - be a spurious wakeup. Check to see that there's acutally - data in the queue before returning, and if not, go back - to sleep. See the pthread_cond_timedwait() man page for - details. */ - - if (dev->shutdown_thread || dev->disconnected) - return -1; - } - - return 0; - -} - -int HID_API_EXPORT hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds) -{ - int bytes_read = -1; - - /* Lock the access to the report list. */ - pthread_mutex_lock(&dev->mutex); - - /* There's an input report queued up. Return it. */ - if (dev->input_reports) { - /* Return the first one */ - bytes_read = return_data(dev, data, length); - goto ret; - } - - /* Return if the device has been disconnected. */ - if (dev->disconnected) { - bytes_read = -1; - goto ret; - } - - if (dev->shutdown_thread) { - /* This means the device has been closed (or there - has been an error. An error code of -1 should - be returned. */ - bytes_read = -1; - goto ret; - } - - /* There is no data. Go to sleep and wait for data. */ - - if (milliseconds == -1) { - /* Blocking */ - int res; - res = cond_wait(dev, &dev->condition, &dev->mutex); - if (res == 0) - bytes_read = return_data(dev, data, length); - else { - /* There was an error, or a device disconnection. */ - bytes_read = -1; - } - } - else if (milliseconds > 0) { - /* Non-blocking, but called with timeout. */ - int res; - struct timespec ts; - struct timeval tv; - gettimeofday(&tv, NULL); - TIMEVAL_TO_TIMESPEC(&tv, &ts); - ts.tv_sec += milliseconds / 1000; - ts.tv_nsec += (milliseconds % 1000) * 1000000; - if (ts.tv_nsec >= 1000000000L) { - ts.tv_sec++; - ts.tv_nsec -= 1000000000L; - } - - res = cond_timedwait(dev, &dev->condition, &dev->mutex, &ts); - if (res == 0) - bytes_read = return_data(dev, data, length); - else if (res == ETIMEDOUT) - bytes_read = 0; - else - bytes_read = -1; - } - else { - /* Purely non-blocking */ - bytes_read = 0; - } - -ret: - /* Unlock */ - pthread_mutex_unlock(&dev->mutex); - return bytes_read; -} - -int HID_API_EXPORT hid_read(hid_device *dev, unsigned char *data, size_t length) -{ - return hid_read_timeout(dev, data, length, (dev->blocking)? -1: 0); -} - -int HID_API_EXPORT hid_set_nonblocking(hid_device *dev, int nonblock) -{ - /* All Nonblocking operation is handled by the library. */ - dev->blocking = !nonblock; - - return 0; -} - -int HID_API_EXPORT hid_send_feature_report(hid_device *dev, const unsigned char *data, size_t length) -{ - return set_report(dev, kIOHIDReportTypeFeature, data, length); -} - -int HID_API_EXPORT hid_get_feature_report(hid_device *dev, unsigned char *data, size_t length) -{ - CFIndex len = length; - IOReturn res; - - /* Return if the device has been unplugged. */ - if (dev->disconnected) - return -1; - - res = IOHIDDeviceGetReport(dev->device_handle, - kIOHIDReportTypeFeature, - data[0], /* Report ID */ - data, &len); - if (res == kIOReturnSuccess) - return len; - else - return -1; -} - - -void HID_API_EXPORT hid_close(hid_device *dev) -{ - if (!dev) - return; - - /* Disconnect the report callback before close. */ - if (!dev->disconnected) { - IOHIDDeviceRegisterInputReportCallback( - dev->device_handle, dev->input_report_buf, dev->max_input_report_len, - NULL, dev); - IOHIDDeviceRegisterRemovalCallback(dev->device_handle, NULL, dev); - IOHIDDeviceUnscheduleFromRunLoop(dev->device_handle, dev->run_loop, dev->run_loop_mode); - IOHIDDeviceScheduleWithRunLoop(dev->device_handle, CFRunLoopGetMain(), kCFRunLoopDefaultMode); - } - - /* Cause read_thread() to stop. */ - dev->shutdown_thread = 1; - - /* Wake up the run thread's event loop so that the thread can exit. */ - CFRunLoopSourceSignal(dev->source); - CFRunLoopWakeUp(dev->run_loop); - - /* Notify the read thread that it can shut down now. */ - pthread_barrier_wait(&dev->shutdown_barrier); - - /* Wait for read_thread() to end. */ - pthread_join(dev->thread, NULL); - - /* Close the OS handle to the device, but only if it's not - been unplugged. If it's been unplugged, then calling - IOHIDDeviceClose() will crash. */ - if (!dev->disconnected) { - IOHIDDeviceClose(dev->device_handle, kIOHIDOptionsTypeSeizeDevice); - } - - /* Clear out the queue of received reports. */ - pthread_mutex_lock(&dev->mutex); - while (dev->input_reports) { - return_data(dev, NULL, 0); - } - pthread_mutex_unlock(&dev->mutex); - CFRelease(dev->device_handle); - - free_hid_device(dev); -} - -int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - return get_manufacturer_string(dev->device_handle, string, maxlen); -} - -int HID_API_EXPORT_CALL hid_get_product_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - return get_product_string(dev->device_handle, string, maxlen); -} - -int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - return get_serial_number(dev->device_handle, string, maxlen); -} - -int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *dev, int string_index, wchar_t *string, size_t maxlen) -{ - /* TODO: */ - - return 0; -} - - -HID_API_EXPORT const wchar_t * HID_API_CALL hid_error(hid_device *dev) -{ - /* TODO: */ - - return NULL; -} - - - - - - - -#if 0 -static int32_t get_location_id(IOHIDDeviceRef device) -{ - return get_int_property(device, CFSTR(kIOHIDLocationIDKey)); -} - -static int32_t get_usage(IOHIDDeviceRef device) -{ - int32_t res; - res = get_int_property(device, CFSTR(kIOHIDDeviceUsageKey)); - if (!res) - res = get_int_property(device, CFSTR(kIOHIDPrimaryUsageKey)); - return res; -} - -static int32_t get_usage_page(IOHIDDeviceRef device) -{ - int32_t res; - res = get_int_property(device, CFSTR(kIOHIDDeviceUsagePageKey)); - if (!res) - res = get_int_property(device, CFSTR(kIOHIDPrimaryUsagePageKey)); - return res; -} - -static int get_transport(IOHIDDeviceRef device, wchar_t *buf, size_t len) -{ - return get_string_property(device, CFSTR(kIOHIDTransportKey), buf, len); -} - - -int main(void) -{ - IOHIDManagerRef mgr; - int i; - - mgr = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); - IOHIDManagerSetDeviceMatching(mgr, NULL); - IOHIDManagerOpen(mgr, kIOHIDOptionsTypeNone); - - CFSetRef device_set = IOHIDManagerCopyDevices(mgr); - - CFIndex num_devices = CFSetGetCount(device_set); - IOHIDDeviceRef *device_array = calloc(num_devices, sizeof(IOHIDDeviceRef)); - CFSetGetValues(device_set, (const void **) device_array); - - for (i = 0; i < num_devices; i++) { - IOHIDDeviceRef dev = device_array[i]; - printf("Device: %p\n", dev); - printf(" %04hx %04hx\n", get_vendor_id(dev), get_product_id(dev)); - - wchar_t serial[256], buf[256]; - char cbuf[256]; - get_serial_number(dev, serial, 256); - - - printf(" Serial: %ls\n", serial); - printf(" Loc: %ld\n", get_location_id(dev)); - get_transport(dev, buf, 256); - printf(" Trans: %ls\n", buf); - make_path(dev, cbuf, 256); - printf(" Path: %s\n", cbuf); - - } - - return 0; -} -#endif diff --git a/vendor/github.com/karalabe/hid/hidapi/windows/hid.c b/vendor/github.com/karalabe/hid/hidapi/windows/hid.c deleted file mode 100755 index 86810d7e..00000000 --- a/vendor/github.com/karalabe/hid/hidapi/windows/hid.c +++ /dev/null @@ -1,944 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 8/22/2009 - - Copyright 2009, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU General Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -#include - -#ifndef _NTDEF_ -typedef LONG NTSTATUS; -#endif - -#ifdef __MINGW32__ -#include -#include -#endif - -#ifdef __CYGWIN__ -#include -#define _wcsdup wcsdup -#endif - -/* The maximum number of characters that can be passed into the - HidD_Get*String() functions without it failing.*/ -#define MAX_STRING_WCHARS 0xFFF - -/*#define HIDAPI_USE_DDK*/ - -#ifdef __cplusplus -extern "C" { -#endif - #include - #include - #ifdef HIDAPI_USE_DDK - #include - #endif - - /* Copied from inc/ddk/hidclass.h, part of the Windows DDK. */ - #define HID_OUT_CTL_CODE(id) \ - CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_OUT_DIRECT, FILE_ANY_ACCESS) - #define IOCTL_HID_GET_FEATURE HID_OUT_CTL_CODE(100) - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#include -#include - - -#include "hidapi.h" - -#undef MIN -#define MIN(x,y) ((x) < (y)? (x): (y)) - -#ifdef _MSC_VER - /* Thanks Microsoft, but I know how to use strncpy(). */ - #pragma warning(disable:4996) -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HIDAPI_USE_DDK - /* Since we're not building with the DDK, and the HID header - files aren't part of the SDK, we have to define all this - stuff here. In lookup_functions(), the function pointers - defined below are set. */ - typedef struct _HIDD_ATTRIBUTES{ - ULONG Size; - USHORT VendorID; - USHORT ProductID; - USHORT VersionNumber; - } HIDD_ATTRIBUTES, *PHIDD_ATTRIBUTES; - - typedef USHORT USAGE; - typedef struct _HIDP_CAPS { - USAGE Usage; - USAGE UsagePage; - USHORT InputReportByteLength; - USHORT OutputReportByteLength; - USHORT FeatureReportByteLength; - USHORT Reserved[17]; - USHORT fields_not_used_by_hidapi[10]; - } HIDP_CAPS, *PHIDP_CAPS; - typedef void* PHIDP_PREPARSED_DATA; - #define HIDP_STATUS_SUCCESS 0x110000 - - typedef BOOLEAN (__stdcall *HidD_GetAttributes_)(HANDLE device, PHIDD_ATTRIBUTES attrib); - typedef BOOLEAN (__stdcall *HidD_GetSerialNumberString_)(HANDLE device, PVOID buffer, ULONG buffer_len); - typedef BOOLEAN (__stdcall *HidD_GetManufacturerString_)(HANDLE handle, PVOID buffer, ULONG buffer_len); - typedef BOOLEAN (__stdcall *HidD_GetProductString_)(HANDLE handle, PVOID buffer, ULONG buffer_len); - typedef BOOLEAN (__stdcall *HidD_SetFeature_)(HANDLE handle, PVOID data, ULONG length); - typedef BOOLEAN (__stdcall *HidD_GetFeature_)(HANDLE handle, PVOID data, ULONG length); - typedef BOOLEAN (__stdcall *HidD_GetIndexedString_)(HANDLE handle, ULONG string_index, PVOID buffer, ULONG buffer_len); - typedef BOOLEAN (__stdcall *HidD_GetPreparsedData_)(HANDLE handle, PHIDP_PREPARSED_DATA *preparsed_data); - typedef BOOLEAN (__stdcall *HidD_FreePreparsedData_)(PHIDP_PREPARSED_DATA preparsed_data); - typedef NTSTATUS (__stdcall *HidP_GetCaps_)(PHIDP_PREPARSED_DATA preparsed_data, HIDP_CAPS *caps); - typedef BOOLEAN (__stdcall *HidD_SetNumInputBuffers_)(HANDLE handle, ULONG number_buffers); - - static HidD_GetAttributes_ HidD_GetAttributes; - static HidD_GetSerialNumberString_ HidD_GetSerialNumberString; - static HidD_GetManufacturerString_ HidD_GetManufacturerString; - static HidD_GetProductString_ HidD_GetProductString; - static HidD_SetFeature_ HidD_SetFeature; - static HidD_GetFeature_ HidD_GetFeature; - static HidD_GetIndexedString_ HidD_GetIndexedString; - static HidD_GetPreparsedData_ HidD_GetPreparsedData; - static HidD_FreePreparsedData_ HidD_FreePreparsedData; - static HidP_GetCaps_ HidP_GetCaps; - static HidD_SetNumInputBuffers_ HidD_SetNumInputBuffers; - - static HMODULE lib_handle = NULL; - static BOOLEAN initialized = FALSE; -#endif /* HIDAPI_USE_DDK */ - -struct hid_device_ { - HANDLE device_handle; - BOOL blocking; - USHORT output_report_length; - size_t input_report_length; - void *last_error_str; - DWORD last_error_num; - BOOL read_pending; - char *read_buf; - OVERLAPPED ol; -}; - -static hid_device *new_hid_device() -{ - hid_device *dev = (hid_device*) calloc(1, sizeof(hid_device)); - dev->device_handle = INVALID_HANDLE_VALUE; - dev->blocking = TRUE; - dev->output_report_length = 0; - dev->input_report_length = 0; - dev->last_error_str = NULL; - dev->last_error_num = 0; - dev->read_pending = FALSE; - dev->read_buf = NULL; - memset(&dev->ol, 0, sizeof(dev->ol)); - dev->ol.hEvent = CreateEvent(NULL, FALSE, FALSE /*initial state f=nonsignaled*/, NULL); - - return dev; -} - -static void free_hid_device(hid_device *dev) -{ - CloseHandle(dev->ol.hEvent); - CloseHandle(dev->device_handle); - LocalFree(dev->last_error_str); - free(dev->read_buf); - free(dev); -} - -static void register_error(hid_device *device, const char *op) -{ - WCHAR *ptr, *msg; - - FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPVOID)&msg, 0/*sz*/, - NULL); - - /* Get rid of the CR and LF that FormatMessage() sticks at the - end of the message. Thanks Microsoft! */ - ptr = msg; - while (*ptr) { - if (*ptr == '\r') { - *ptr = 0x0000; - break; - } - ptr++; - } - - /* Store the message off in the Device entry so that - the hid_error() function can pick it up. */ - LocalFree(device->last_error_str); - device->last_error_str = msg; -} - -#ifndef HIDAPI_USE_DDK -static int lookup_functions() -{ - lib_handle = LoadLibraryA("hid.dll"); - if (lib_handle) { -#define RESOLVE(x) x = (x##_)GetProcAddress(lib_handle, #x); if (!x) return -1; - RESOLVE(HidD_GetAttributes); - RESOLVE(HidD_GetSerialNumberString); - RESOLVE(HidD_GetManufacturerString); - RESOLVE(HidD_GetProductString); - RESOLVE(HidD_SetFeature); - RESOLVE(HidD_GetFeature); - RESOLVE(HidD_GetIndexedString); - RESOLVE(HidD_GetPreparsedData); - RESOLVE(HidD_FreePreparsedData); - RESOLVE(HidP_GetCaps); - RESOLVE(HidD_SetNumInputBuffers); -#undef RESOLVE - } - else - return -1; - - return 0; -} -#endif - -static HANDLE open_device(const char *path, BOOL enumerate) -{ - HANDLE handle; - DWORD desired_access = (enumerate)? 0: (GENERIC_WRITE | GENERIC_READ); - DWORD share_mode = FILE_SHARE_READ|FILE_SHARE_WRITE; - - handle = CreateFileA(path, - desired_access, - share_mode, - NULL, - OPEN_EXISTING, - FILE_FLAG_OVERLAPPED,/*FILE_ATTRIBUTE_NORMAL,*/ - 0); - - return handle; -} - -int HID_API_EXPORT hid_init(void) -{ -#ifndef HIDAPI_USE_DDK - if (!initialized) { - if (lookup_functions() < 0) { - hid_exit(); - return -1; - } - initialized = TRUE; - } -#endif - return 0; -} - -int HID_API_EXPORT hid_exit(void) -{ -#ifndef HIDAPI_USE_DDK - if (lib_handle) - FreeLibrary(lib_handle); - lib_handle = NULL; - initialized = FALSE; -#endif - return 0; -} - -struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id) -{ - BOOL res; - struct hid_device_info *root = NULL; /* return object */ - struct hid_device_info *cur_dev = NULL; - - /* Windows objects for interacting with the driver. */ - GUID InterfaceClassGuid = {0x4d1e55b2, 0xf16f, 0x11cf, {0x88, 0xcb, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30} }; - SP_DEVINFO_DATA devinfo_data; - SP_DEVICE_INTERFACE_DATA device_interface_data; - SP_DEVICE_INTERFACE_DETAIL_DATA_A *device_interface_detail_data = NULL; - HDEVINFO device_info_set = INVALID_HANDLE_VALUE; - int device_index = 0; - int i; - - if (hid_init() < 0) - return NULL; - - /* Initialize the Windows objects. */ - memset(&devinfo_data, 0x0, sizeof(devinfo_data)); - devinfo_data.cbSize = sizeof(SP_DEVINFO_DATA); - device_interface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - - /* Get information for all the devices belonging to the HID class. */ - device_info_set = SetupDiGetClassDevsA(&InterfaceClassGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); - - /* Iterate over each device in the HID class, looking for the right one. */ - - for (;;) { - HANDLE write_handle = INVALID_HANDLE_VALUE; - DWORD required_size = 0; - HIDD_ATTRIBUTES attrib; - - res = SetupDiEnumDeviceInterfaces(device_info_set, - NULL, - &InterfaceClassGuid, - device_index, - &device_interface_data); - - if (!res) { - /* A return of FALSE from this function means that - there are no more devices. */ - break; - } - - /* Call with 0-sized detail size, and let the function - tell us how long the detail struct needs to be. The - size is put in &required_size. */ - res = SetupDiGetDeviceInterfaceDetailA(device_info_set, - &device_interface_data, - NULL, - 0, - &required_size, - NULL); - - /* Allocate a long enough structure for device_interface_detail_data. */ - device_interface_detail_data = (SP_DEVICE_INTERFACE_DETAIL_DATA_A*) malloc(required_size); - device_interface_detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A); - - /* Get the detailed data for this device. The detail data gives us - the device path for this device, which is then passed into - CreateFile() to get a handle to the device. */ - res = SetupDiGetDeviceInterfaceDetailA(device_info_set, - &device_interface_data, - device_interface_detail_data, - required_size, - NULL, - NULL); - - if (!res) { - /* register_error(dev, "Unable to call SetupDiGetDeviceInterfaceDetail"); - Continue to the next device. */ - goto cont; - } - - /* Make sure this device is of Setup Class "HIDClass" and has a - driver bound to it. */ - for (i = 0; ; i++) { - char driver_name[256]; - - /* Populate devinfo_data. This function will return failure - when there are no more interfaces left. */ - res = SetupDiEnumDeviceInfo(device_info_set, i, &devinfo_data); - if (!res) - goto cont; - - res = SetupDiGetDeviceRegistryPropertyA(device_info_set, &devinfo_data, - SPDRP_CLASS, NULL, (PBYTE)driver_name, sizeof(driver_name), NULL); - if (!res) - goto cont; - - if (strcmp(driver_name, "HIDClass") == 0) { - /* See if there's a driver bound. */ - res = SetupDiGetDeviceRegistryPropertyA(device_info_set, &devinfo_data, - SPDRP_DRIVER, NULL, (PBYTE)driver_name, sizeof(driver_name), NULL); - if (res) - break; - } - } - - //wprintf(L"HandleName: %s\n", device_interface_detail_data->DevicePath); - - /* Open a handle to the device */ - write_handle = open_device(device_interface_detail_data->DevicePath, TRUE); - - /* Check validity of write_handle. */ - if (write_handle == INVALID_HANDLE_VALUE) { - /* Unable to open the device. */ - //register_error(dev, "CreateFile"); - goto cont_close; - } - - - /* Get the Vendor ID and Product ID for this device. */ - attrib.Size = sizeof(HIDD_ATTRIBUTES); - HidD_GetAttributes(write_handle, &attrib); - //wprintf(L"Product/Vendor: %x %x\n", attrib.ProductID, attrib.VendorID); - - /* Check the VID/PID to see if we should add this - device to the enumeration list. */ - if ((vendor_id == 0x0 || attrib.VendorID == vendor_id) && - (product_id == 0x0 || attrib.ProductID == product_id)) { - - #define WSTR_LEN 512 - const char *str; - struct hid_device_info *tmp; - PHIDP_PREPARSED_DATA pp_data = NULL; - HIDP_CAPS caps; - BOOLEAN res; - NTSTATUS nt_res; - wchar_t wstr[WSTR_LEN]; /* TODO: Determine Size */ - size_t len; - - /* VID/PID match. Create the record. */ - tmp = (struct hid_device_info*) calloc(1, sizeof(struct hid_device_info)); - if (cur_dev) { - cur_dev->next = tmp; - } - else { - root = tmp; - } - cur_dev = tmp; - - /* Get the Usage Page and Usage for this device. */ - res = HidD_GetPreparsedData(write_handle, &pp_data); - if (res) { - nt_res = HidP_GetCaps(pp_data, &caps); - if (nt_res == HIDP_STATUS_SUCCESS) { - cur_dev->usage_page = caps.UsagePage; - cur_dev->usage = caps.Usage; - } - - HidD_FreePreparsedData(pp_data); - } - - /* Fill out the record */ - cur_dev->next = NULL; - str = device_interface_detail_data->DevicePath; - if (str) { - len = strlen(str); - cur_dev->path = (char*) calloc(len+1, sizeof(char)); - strncpy(cur_dev->path, str, len+1); - cur_dev->path[len] = '\0'; - } - else - cur_dev->path = NULL; - - /* Serial Number */ - res = HidD_GetSerialNumberString(write_handle, wstr, sizeof(wstr)); - wstr[WSTR_LEN-1] = 0x0000; - if (res) { - cur_dev->serial_number = _wcsdup(wstr); - } - - /* Manufacturer String */ - res = HidD_GetManufacturerString(write_handle, wstr, sizeof(wstr)); - wstr[WSTR_LEN-1] = 0x0000; - if (res) { - cur_dev->manufacturer_string = _wcsdup(wstr); - } - - /* Product String */ - res = HidD_GetProductString(write_handle, wstr, sizeof(wstr)); - wstr[WSTR_LEN-1] = 0x0000; - if (res) { - cur_dev->product_string = _wcsdup(wstr); - } - - /* VID/PID */ - cur_dev->vendor_id = attrib.VendorID; - cur_dev->product_id = attrib.ProductID; - - /* Release Number */ - cur_dev->release_number = attrib.VersionNumber; - - /* Interface Number. It can sometimes be parsed out of the path - on Windows if a device has multiple interfaces. See - http://msdn.microsoft.com/en-us/windows/hardware/gg487473 or - search for "Hardware IDs for HID Devices" at MSDN. If it's not - in the path, it's set to -1. */ - cur_dev->interface_number = -1; - if (cur_dev->path) { - char *interface_component = strstr(cur_dev->path, "&mi_"); - if (interface_component) { - char *hex_str = interface_component + 4; - char *endptr = NULL; - cur_dev->interface_number = strtol(hex_str, &endptr, 16); - if (endptr == hex_str) { - /* The parsing failed. Set interface_number to -1. */ - cur_dev->interface_number = -1; - } - } - } - } - -cont_close: - CloseHandle(write_handle); -cont: - /* We no longer need the detail data. It can be freed */ - free(device_interface_detail_data); - - device_index++; - - } - - /* Close the device information handle. */ - SetupDiDestroyDeviceInfoList(device_info_set); - - return root; - -} - -void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs) -{ - /* TODO: Merge this with the Linux version. This function is platform-independent. */ - struct hid_device_info *d = devs; - while (d) { - struct hid_device_info *next = d->next; - free(d->path); - free(d->serial_number); - free(d->manufacturer_string); - free(d->product_string); - free(d); - d = next; - } -} - - -HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number) -{ - /* TODO: Merge this functions with the Linux version. This function should be platform independent. */ - struct hid_device_info *devs, *cur_dev; - const char *path_to_open = NULL; - hid_device *handle = NULL; - - devs = hid_enumerate(vendor_id, product_id); - cur_dev = devs; - while (cur_dev) { - if (cur_dev->vendor_id == vendor_id && - cur_dev->product_id == product_id) { - if (serial_number) { - if (wcscmp(serial_number, cur_dev->serial_number) == 0) { - path_to_open = cur_dev->path; - break; - } - } - else { - path_to_open = cur_dev->path; - break; - } - } - cur_dev = cur_dev->next; - } - - if (path_to_open) { - /* Open the device */ - handle = hid_open_path(path_to_open); - } - - hid_free_enumeration(devs); - - return handle; -} - -HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path) -{ - hid_device *dev; - HIDP_CAPS caps; - PHIDP_PREPARSED_DATA pp_data = NULL; - BOOLEAN res; - NTSTATUS nt_res; - - if (hid_init() < 0) { - return NULL; - } - - dev = new_hid_device(); - - /* Open a handle to the device */ - dev->device_handle = open_device(path, FALSE); - - /* Check validity of write_handle. */ - if (dev->device_handle == INVALID_HANDLE_VALUE) { - /* Unable to open the device. */ - register_error(dev, "CreateFile"); - goto err; - } - - /* Set the Input Report buffer size to 64 reports. */ - res = HidD_SetNumInputBuffers(dev->device_handle, 64); - if (!res) { - register_error(dev, "HidD_SetNumInputBuffers"); - goto err; - } - - /* Get the Input Report length for the device. */ - res = HidD_GetPreparsedData(dev->device_handle, &pp_data); - if (!res) { - register_error(dev, "HidD_GetPreparsedData"); - goto err; - } - nt_res = HidP_GetCaps(pp_data, &caps); - if (nt_res != HIDP_STATUS_SUCCESS) { - register_error(dev, "HidP_GetCaps"); - goto err_pp_data; - } - dev->output_report_length = caps.OutputReportByteLength; - dev->input_report_length = caps.InputReportByteLength; - HidD_FreePreparsedData(pp_data); - - dev->read_buf = (char*) malloc(dev->input_report_length); - - return dev; - -err_pp_data: - HidD_FreePreparsedData(pp_data); -err: - free_hid_device(dev); - return NULL; -} - -int HID_API_EXPORT HID_API_CALL hid_write(hid_device *dev, const unsigned char *data, size_t length) -{ - DWORD bytes_written; - BOOL res; - - OVERLAPPED ol; - unsigned char *buf; - memset(&ol, 0, sizeof(ol)); - - /* Make sure the right number of bytes are passed to WriteFile. Windows - expects the number of bytes which are in the _longest_ report (plus - one for the report number) bytes even if the data is a report - which is shorter than that. Windows gives us this value in - caps.OutputReportByteLength. If a user passes in fewer bytes than this, - create a temporary buffer which is the proper size. */ - if (length >= dev->output_report_length) { - /* The user passed the right number of bytes. Use the buffer as-is. */ - buf = (unsigned char *) data; - } else { - /* Create a temporary buffer and copy the user's data - into it, padding the rest with zeros. */ - buf = (unsigned char *) malloc(dev->output_report_length); - memcpy(buf, data, length); - memset(buf + length, 0, dev->output_report_length - length); - length = dev->output_report_length; - } - - res = WriteFile(dev->device_handle, buf, length, NULL, &ol); - - if (!res) { - if (GetLastError() != ERROR_IO_PENDING) { - /* WriteFile() failed. Return error. */ - register_error(dev, "WriteFile"); - bytes_written = -1; - goto end_of_function; - } - } - - /* Wait here until the write is done. This makes - hid_write() synchronous. */ - res = GetOverlappedResult(dev->device_handle, &ol, &bytes_written, TRUE/*wait*/); - if (!res) { - /* The Write operation failed. */ - register_error(dev, "WriteFile"); - bytes_written = -1; - goto end_of_function; - } - -end_of_function: - if (buf != data) - free(buf); - - return bytes_written; -} - - -int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds) -{ - DWORD bytes_read = 0; - size_t copy_len = 0; - BOOL res; - - /* Copy the handle for convenience. */ - HANDLE ev = dev->ol.hEvent; - - if (!dev->read_pending) { - /* Start an Overlapped I/O read. */ - dev->read_pending = TRUE; - memset(dev->read_buf, 0, dev->input_report_length); - ResetEvent(ev); - res = ReadFile(dev->device_handle, dev->read_buf, dev->input_report_length, &bytes_read, &dev->ol); - - if (!res) { - if (GetLastError() != ERROR_IO_PENDING) { - /* ReadFile() has failed. - Clean up and return error. */ - CancelIo(dev->device_handle); - dev->read_pending = FALSE; - goto end_of_function; - } - } - } - - if (milliseconds >= 0) { - /* See if there is any data yet. */ - res = WaitForSingleObject(ev, milliseconds); - if (res != WAIT_OBJECT_0) { - /* There was no data this time. Return zero bytes available, - but leave the Overlapped I/O running. */ - return 0; - } - } - - /* Either WaitForSingleObject() told us that ReadFile has completed, or - we are in non-blocking mode. Get the number of bytes read. The actual - data has been copied to the data[] array which was passed to ReadFile(). */ - res = GetOverlappedResult(dev->device_handle, &dev->ol, &bytes_read, TRUE/*wait*/); - - /* Set pending back to false, even if GetOverlappedResult() returned error. */ - dev->read_pending = FALSE; - - if (res && bytes_read > 0) { - if (dev->read_buf[0] == 0x0) { - /* If report numbers aren't being used, but Windows sticks a report - number (0x0) on the beginning of the report anyway. To make this - work like the other platforms, and to make it work more like the - HID spec, we'll skip over this byte. */ - bytes_read--; - copy_len = length > bytes_read ? bytes_read : length; - memcpy(data, dev->read_buf+1, copy_len); - } - else { - /* Copy the whole buffer, report number and all. */ - copy_len = length > bytes_read ? bytes_read : length; - memcpy(data, dev->read_buf, copy_len); - } - } - -end_of_function: - if (!res) { - register_error(dev, "GetOverlappedResult"); - return -1; - } - - return copy_len; -} - -int HID_API_EXPORT HID_API_CALL hid_read(hid_device *dev, unsigned char *data, size_t length) -{ - return hid_read_timeout(dev, data, length, (dev->blocking)? -1: 0); -} - -int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *dev, int nonblock) -{ - dev->blocking = !nonblock; - return 0; /* Success */ -} - -int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *dev, const unsigned char *data, size_t length) -{ - BOOL res = HidD_SetFeature(dev->device_handle, (PVOID)data, length); - if (!res) { - register_error(dev, "HidD_SetFeature"); - return -1; - } - - return length; -} - - -int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *dev, unsigned char *data, size_t length) -{ - BOOL res; -#if 0 - res = HidD_GetFeature(dev->device_handle, data, length); - if (!res) { - register_error(dev, "HidD_GetFeature"); - return -1; - } - return 0; /* HidD_GetFeature() doesn't give us an actual length, unfortunately */ -#else - DWORD bytes_returned; - - OVERLAPPED ol; - memset(&ol, 0, sizeof(ol)); - - res = DeviceIoControl(dev->device_handle, - IOCTL_HID_GET_FEATURE, - data, length, - data, length, - &bytes_returned, &ol); - - if (!res) { - if (GetLastError() != ERROR_IO_PENDING) { - /* DeviceIoControl() failed. Return error. */ - register_error(dev, "Send Feature Report DeviceIoControl"); - return -1; - } - } - - /* Wait here until the write is done. This makes - hid_get_feature_report() synchronous. */ - res = GetOverlappedResult(dev->device_handle, &ol, &bytes_returned, TRUE/*wait*/); - if (!res) { - /* The operation failed. */ - register_error(dev, "Send Feature Report GetOverLappedResult"); - return -1; - } - - /* bytes_returned does not include the first byte which contains the - report ID. The data buffer actually contains one more byte than - bytes_returned. */ - bytes_returned++; - - return bytes_returned; -#endif -} - -void HID_API_EXPORT HID_API_CALL hid_close(hid_device *dev) -{ - if (!dev) - return; - CancelIo(dev->device_handle); - free_hid_device(dev); -} - -int HID_API_EXPORT_CALL HID_API_CALL hid_get_manufacturer_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - BOOL res; - - res = HidD_GetManufacturerString(dev->device_handle, string, sizeof(wchar_t) * MIN(maxlen, MAX_STRING_WCHARS)); - if (!res) { - register_error(dev, "HidD_GetManufacturerString"); - return -1; - } - - return 0; -} - -int HID_API_EXPORT_CALL HID_API_CALL hid_get_product_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - BOOL res; - - res = HidD_GetProductString(dev->device_handle, string, sizeof(wchar_t) * MIN(maxlen, MAX_STRING_WCHARS)); - if (!res) { - register_error(dev, "HidD_GetProductString"); - return -1; - } - - return 0; -} - -int HID_API_EXPORT_CALL HID_API_CALL hid_get_serial_number_string(hid_device *dev, wchar_t *string, size_t maxlen) -{ - BOOL res; - - res = HidD_GetSerialNumberString(dev->device_handle, string, sizeof(wchar_t) * MIN(maxlen, MAX_STRING_WCHARS)); - if (!res) { - register_error(dev, "HidD_GetSerialNumberString"); - return -1; - } - - return 0; -} - -int HID_API_EXPORT_CALL HID_API_CALL hid_get_indexed_string(hid_device *dev, int string_index, wchar_t *string, size_t maxlen) -{ - BOOL res; - - res = HidD_GetIndexedString(dev->device_handle, string_index, string, sizeof(wchar_t) * MIN(maxlen, MAX_STRING_WCHARS)); - if (!res) { - register_error(dev, "HidD_GetIndexedString"); - return -1; - } - - return 0; -} - - -HID_API_EXPORT const wchar_t * HID_API_CALL hid_error(hid_device *dev) -{ - return (wchar_t*)dev->last_error_str; -} - - -/*#define PICPGM*/ -/*#define S11*/ -#define P32 -#ifdef S11 - unsigned short VendorID = 0xa0a0; - unsigned short ProductID = 0x0001; -#endif - -#ifdef P32 - unsigned short VendorID = 0x04d8; - unsigned short ProductID = 0x3f; -#endif - - -#ifdef PICPGM - unsigned short VendorID = 0x04d8; - unsigned short ProductID = 0x0033; -#endif - - -#if 0 -int __cdecl main(int argc, char* argv[]) -{ - int res; - unsigned char buf[65]; - - UNREFERENCED_PARAMETER(argc); - UNREFERENCED_PARAMETER(argv); - - /* Set up the command buffer. */ - memset(buf,0x00,sizeof(buf)); - buf[0] = 0; - buf[1] = 0x81; - - - /* Open the device. */ - int handle = open(VendorID, ProductID, L"12345"); - if (handle < 0) - printf("unable to open device\n"); - - - /* Toggle LED (cmd 0x80) */ - buf[1] = 0x80; - res = write(handle, buf, 65); - if (res < 0) - printf("Unable to write()\n"); - - /* Request state (cmd 0x81) */ - buf[1] = 0x81; - write(handle, buf, 65); - if (res < 0) - printf("Unable to write() (2)\n"); - - /* Read requested state */ - read(handle, buf, 65); - if (res < 0) - printf("Unable to read()\n"); - - /* Print out the returned buffer. */ - for (int i = 0; i < 4; i++) - printf("buf[%d]: %d\n", i, buf[i]); - - return 0; -} -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/config.h b/vendor/github.com/karalabe/hid/libusb/libusb/config.h deleted file mode 100644 index e004f03c..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef CONFIG_H -#define CONFIG_H -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/core.c b/vendor/github.com/karalabe/hid/libusb/libusb/core.c deleted file mode 100644 index d45bfe17..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/core.c +++ /dev/null @@ -1,2523 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode:t ; c-basic-offset:8 -*- */ -/* - * Core functions for libusb - * Copyright © 2012-2013 Nathan Hjelm - * Copyright © 2007-2008 Daniel Drake - * Copyright © 2001 Johannes Erdfelt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYSLOG_H -#include -#endif - -#ifdef __ANDROID__ -#include -#endif - -#include "libusbi.h" -#include "hotplug.h" - -#if defined(OS_LINUX) -const struct usbi_os_backend * const usbi_backend = &linux_usbfs_backend; -#elif defined(OS_DARWIN) -const struct usbi_os_backend * const usbi_backend = &darwin_backend; -#elif defined(OS_OPENBSD) -const struct usbi_os_backend * const usbi_backend = &openbsd_backend; -#elif defined(OS_NETBSD) -const struct usbi_os_backend * const usbi_backend = &netbsd_backend; -#elif defined(OS_WINDOWS) - -#if defined(USE_USBDK) -const struct usbi_os_backend * const usbi_backend = &usbdk_backend; -#else -const struct usbi_os_backend * const usbi_backend = &windows_backend; -#endif - -#elif defined(OS_WINCE) -const struct usbi_os_backend * const usbi_backend = &wince_backend; -#elif defined(OS_HAIKU) -const struct usbi_os_backend * const usbi_backend = &haiku_usb_raw_backend; -#elif defined (OS_SUNOS) -const struct usbi_os_backend * const usbi_backend = &sunos_backend; -#else -#error "Unsupported OS" -#endif - -struct libusb_context *usbi_default_context = NULL; -static const struct libusb_version libusb_version_internal = - { LIBUSB_MAJOR, LIBUSB_MINOR, LIBUSB_MICRO, LIBUSB_NANO, - LIBUSB_RC, "http://libusb.info" }; -static int default_context_refcnt = 0; -static usbi_mutex_static_t default_context_lock = USBI_MUTEX_INITIALIZER; -static struct timespec timestamp_origin = { 0, 0 }; - -usbi_mutex_static_t active_contexts_lock = USBI_MUTEX_INITIALIZER; -struct list_head active_contexts_list; - -/** - * \mainpage libusb-1.0 API Reference - * - * \section intro Introduction - * - * libusb is an open source library that allows you to communicate with USB - * devices from userspace. For more info, see the - * libusb homepage. - * - * This documentation is aimed at application developers wishing to - * communicate with USB peripherals from their own software. After reviewing - * this documentation, feedback and questions can be sent to the - * libusb-devel mailing list. - * - * This documentation assumes knowledge of how to operate USB devices from - * a software standpoint (descriptors, configurations, interfaces, endpoints, - * control/bulk/interrupt/isochronous transfers, etc). Full information - * can be found in the USB 3.0 - * Specification which is available for free download. You can probably - * find less verbose introductions by searching the web. - * - * \section API Application Programming Interface (API) - * - * See the \ref libusb_api page for a complete list of the libusb functions. - * - * \section features Library features - * - * - All transfer types supported (control/bulk/interrupt/isochronous) - * - 2 transfer interfaces: - * -# Synchronous (simple) - * -# Asynchronous (more complicated, but more powerful) - * - Thread safe (although the asynchronous interface means that you - * usually won't need to thread) - * - Lightweight with lean API - * - Compatible with libusb-0.1 through the libusb-compat-0.1 translation layer - * - Hotplug support (on some platforms). See \ref libusb_hotplug. - * - * \section gettingstarted Getting Started - * - * To begin reading the API documentation, start with the Modules page which - * links to the different categories of libusb's functionality. - * - * One decision you will have to make is whether to use the synchronous - * or the asynchronous data transfer interface. The \ref libusb_io documentation - * provides some insight into this topic. - * - * Some example programs can be found in the libusb source distribution under - * the "examples" subdirectory. The libusb homepage includes a list of - * real-life project examples which use libusb. - * - * \section errorhandling Error handling - * - * libusb functions typically return 0 on success or a negative error code - * on failure. These negative error codes relate to LIBUSB_ERROR constants - * which are listed on the \ref libusb_misc "miscellaneous" documentation page. - * - * \section msglog Debug message logging - * - * libusb uses stderr for all logging. By default, logging is set to NONE, - * which means that no output will be produced. However, unless the library - * has been compiled with logging disabled, then any application calls to - * libusb_set_debug(), or the setting of the environmental variable - * LIBUSB_DEBUG outside of the application, can result in logging being - * produced. Your application should therefore not close stderr, but instead - * direct it to the null device if its output is undesirable. - * - * The libusb_set_debug() function can be used to enable logging of certain - * messages. Under standard configuration, libusb doesn't really log much - * so you are advised to use this function to enable all error/warning/ - * informational messages. It will help debug problems with your software. - * - * The logged messages are unstructured. There is no one-to-one correspondence - * between messages being logged and success or failure return codes from - * libusb functions. There is no format to the messages, so you should not - * try to capture or parse them. They are not and will not be localized. - * These messages are not intended to being passed to your application user; - * instead, you should interpret the error codes returned from libusb functions - * and provide appropriate notification to the user. The messages are simply - * there to aid you as a programmer, and if you're confused because you're - * getting a strange error code from a libusb function, enabling message - * logging may give you a suitable explanation. - * - * The LIBUSB_DEBUG environment variable can be used to enable message logging - * at run-time. This environment variable should be set to a log level number, - * which is interpreted the same as the libusb_set_debug() parameter. When this - * environment variable is set, the message logging verbosity level is fixed - * and libusb_set_debug() effectively does nothing. - * - * libusb can be compiled without any logging functions, useful for embedded - * systems. In this case, libusb_set_debug() and the LIBUSB_DEBUG environment - * variable have no effects. - * - * libusb can also be compiled with verbose debugging messages always. When - * the library is compiled in this way, all messages of all verbosities are - * always logged. libusb_set_debug() and the LIBUSB_DEBUG environment variable - * have no effects. - * - * \section remarks Other remarks - * - * libusb does have imperfections. The \ref libusb_caveats "caveats" page attempts - * to document these. - */ - -/** - * \page libusb_caveats Caveats - * - * \section devresets Device resets - * - * The libusb_reset_device() function allows you to reset a device. If your - * program has to call such a function, it should obviously be aware that - * the reset will cause device state to change (e.g. register values may be - * reset). - * - * The problem is that any other program could reset the device your program - * is working with, at any time. libusb does not offer a mechanism to inform - * you when this has happened, so if someone else resets your device it will - * not be clear to your own program why the device state has changed. - * - * Ultimately, this is a limitation of writing drivers in userspace. - * Separation from the USB stack in the underlying kernel makes it difficult - * for the operating system to deliver such notifications to your program. - * The Linux kernel USB stack allows such reset notifications to be delivered - * to in-kernel USB drivers, but it is not clear how such notifications could - * be delivered to second-class drivers that live in userspace. - * - * \section blockonly Blocking-only functionality - * - * The functionality listed below is only available through synchronous, - * blocking functions. There are no asynchronous/non-blocking alternatives, - * and no clear ways of implementing these. - * - * - Configuration activation (libusb_set_configuration()) - * - Interface/alternate setting activation (libusb_set_interface_alt_setting()) - * - Releasing of interfaces (libusb_release_interface()) - * - Clearing of halt/stall condition (libusb_clear_halt()) - * - Device resets (libusb_reset_device()) - * - * \section configsel Configuration selection and handling - * - * When libusb presents a device handle to an application, there is a chance - * that the corresponding device may be in unconfigured state. For devices - * with multiple configurations, there is also a chance that the configuration - * currently selected is not the one that the application wants to use. - * - * The obvious solution is to add a call to libusb_set_configuration() early - * on during your device initialization routines, but there are caveats to - * be aware of: - * -# If the device is already in the desired configuration, calling - * libusb_set_configuration() using the same configuration value will cause - * a lightweight device reset. This may not be desirable behaviour. - * -# In the case where the desired configuration is already active, libusb - * may not even be able to perform a lightweight device reset. For example, - * take my USB keyboard with fingerprint reader: I'm interested in driving - * the fingerprint reader interface through libusb, but the kernel's - * USB-HID driver will almost always have claimed the keyboard interface. - * Because the kernel has claimed an interface, it is not even possible to - * perform the lightweight device reset, so libusb_set_configuration() will - * fail. (Luckily the device in question only has a single configuration.) - * -# libusb will be unable to set a configuration if other programs or - * drivers have claimed interfaces. In particular, this means that kernel - * drivers must be detached from all the interfaces before - * libusb_set_configuration() may succeed. - * - * One solution to some of the above problems is to consider the currently - * active configuration. If the configuration we want is already active, then - * we don't have to select any configuration: -\code -cfg = -1; -libusb_get_configuration(dev, &cfg); -if (cfg != desired) - libusb_set_configuration(dev, desired); -\endcode - * - * This is probably suitable for most scenarios, but is inherently racy: - * another application or driver may change the selected configuration - * after the libusb_get_configuration() call. - * - * Even in cases where libusb_set_configuration() succeeds, consider that other - * applications or drivers may change configuration after your application - * calls libusb_set_configuration(). - * - * One possible way to lock your device into a specific configuration is as - * follows: - * -# Set the desired configuration (or use the logic above to realise that - * it is already in the desired configuration) - * -# Claim the interface that you wish to use - * -# Check that the currently active configuration is the one that you want - * to use. - * - * The above method works because once an interface is claimed, no application - * or driver is able to select another configuration. - * - * \section earlycomp Early transfer completion - * - * NOTE: This section is currently Linux-centric. I am not sure if any of these - * considerations apply to Darwin or other platforms. - * - * When a transfer completes early (i.e. when less data is received/sent in - * any one packet than the transfer buffer allows for) then libusb is designed - * to terminate the transfer immediately, not transferring or receiving any - * more data unless other transfers have been queued by the user. - * - * On legacy platforms, libusb is unable to do this in all situations. After - * the incomplete packet occurs, "surplus" data may be transferred. For recent - * versions of libusb, this information is kept (the data length of the - * transfer is updated) and, for device-to-host transfers, any surplus data was - * added to the buffer. Still, this is not a nice solution because it loses the - * information about the end of the short packet, and the user probably wanted - * that surplus data to arrive in the next logical transfer. - * - * - * \section zlp Zero length packets - * - * - libusb is able to send a packet of zero length to an endpoint simply by - * submitting a transfer of zero length. - * - The \ref libusb_transfer_flags::LIBUSB_TRANSFER_ADD_ZERO_PACKET - * "LIBUSB_TRANSFER_ADD_ZERO_PACKET" flag is currently only supported on Linux. - */ - -/** - * \page libusb_contexts Contexts - * - * It is possible that libusb may be used simultaneously from two independent - * libraries linked into the same executable. For example, if your application - * has a plugin-like system which allows the user to dynamically load a range - * of modules into your program, it is feasible that two independently - * developed modules may both use libusb. - * - * libusb is written to allow for these multiple user scenarios. The two - * "instances" of libusb will not interfere: libusb_set_debug() calls - * from one user will not affect the same settings for other users, other - * users can continue using libusb after one of them calls libusb_exit(), etc. - * - * This is made possible through libusb's context concept. When you - * call libusb_init(), you are (optionally) given a context. You can then pass - * this context pointer back into future libusb functions. - * - * In order to keep things simple for more simplistic applications, it is - * legal to pass NULL to all functions requiring a context pointer (as long as - * you're sure no other code will attempt to use libusb from the same process). - * When you pass NULL, the default context will be used. The default context - * is created the first time a process calls libusb_init() when no other - * context is alive. Contexts are destroyed during libusb_exit(). - * - * The default context is reference-counted and can be shared. That means that - * if libusb_init(NULL) is called twice within the same process, the two - * users end up sharing the same context. The deinitialization and freeing of - * the default context will only happen when the last user calls libusb_exit(). - * In other words, the default context is created and initialized when its - * reference count goes from 0 to 1, and is deinitialized and destroyed when - * its reference count goes from 1 to 0. - * - * You may be wondering why only a subset of libusb functions require a - * context pointer in their function definition. Internally, libusb stores - * context pointers in other objects (e.g. libusb_device instances) and hence - * can infer the context from those objects. - */ - - /** - * \page libusb_api Application Programming Interface - * - * This is the complete list of libusb functions, structures and - * enumerations in alphabetical order. - * - * \section Functions - * - libusb_alloc_streams() - * - libusb_alloc_transfer() - * - libusb_attach_kernel_driver() - * - libusb_bulk_transfer() - * - libusb_cancel_transfer() - * - libusb_claim_interface() - * - libusb_clear_halt() - * - libusb_close() - * - libusb_control_transfer() - * - libusb_control_transfer_get_data() - * - libusb_control_transfer_get_setup() - * - libusb_cpu_to_le16() - * - libusb_detach_kernel_driver() - * - libusb_dev_mem_alloc() - * - libusb_dev_mem_free() - * - libusb_error_name() - * - libusb_event_handler_active() - * - libusb_event_handling_ok() - * - libusb_exit() - * - libusb_fill_bulk_stream_transfer() - * - libusb_fill_bulk_transfer() - * - libusb_fill_control_setup() - * - libusb_fill_control_transfer() - * - libusb_fill_interrupt_transfer() - * - libusb_fill_iso_transfer() - * - libusb_free_bos_descriptor() - * - libusb_free_config_descriptor() - * - libusb_free_container_id_descriptor() - * - libusb_free_device_list() - * - libusb_free_pollfds() - * - libusb_free_ss_endpoint_companion_descriptor() - * - libusb_free_ss_usb_device_capability_descriptor() - * - libusb_free_streams() - * - libusb_free_transfer() - * - libusb_free_usb_2_0_extension_descriptor() - * - libusb_get_active_config_descriptor() - * - libusb_get_bos_descriptor() - * - libusb_get_bus_number() - * - libusb_get_config_descriptor() - * - libusb_get_config_descriptor_by_value() - * - libusb_get_configuration() - * - libusb_get_container_id_descriptor() - * - libusb_get_descriptor() - * - libusb_get_device() - * - libusb_get_device_address() - * - libusb_get_device_descriptor() - * - libusb_get_device_list() - * - libusb_get_device_speed() - * - libusb_get_iso_packet_buffer() - * - libusb_get_iso_packet_buffer_simple() - * - libusb_get_max_iso_packet_size() - * - libusb_get_max_packet_size() - * - libusb_get_next_timeout() - * - libusb_get_parent() - * - libusb_get_pollfds() - * - libusb_get_port_number() - * - libusb_get_port_numbers() - * - libusb_get_port_path() - * - libusb_get_ss_endpoint_companion_descriptor() - * - libusb_get_ss_usb_device_capability_descriptor() - * - libusb_get_string_descriptor() - * - libusb_get_string_descriptor_ascii() - * - libusb_get_usb_2_0_extension_descriptor() - * - libusb_get_version() - * - libusb_handle_events() - * - libusb_handle_events_completed() - * - libusb_handle_events_locked() - * - libusb_handle_events_timeout() - * - libusb_handle_events_timeout_completed() - * - libusb_has_capability() - * - libusb_hotplug_deregister_callback() - * - libusb_hotplug_register_callback() - * - libusb_init() - * - libusb_interrupt_event_handler() - * - libusb_interrupt_transfer() - * - libusb_kernel_driver_active() - * - libusb_lock_events() - * - libusb_lock_event_waiters() - * - libusb_open() - * - libusb_open_device_with_vid_pid() - * - libusb_pollfds_handle_timeouts() - * - libusb_ref_device() - * - libusb_release_interface() - * - libusb_reset_device() - * - libusb_set_auto_detach_kernel_driver() - * - libusb_set_configuration() - * - libusb_set_debug() - * - libusb_set_interface_alt_setting() - * - libusb_set_iso_packet_lengths() - * - libusb_setlocale() - * - libusb_set_pollfd_notifiers() - * - libusb_strerror() - * - libusb_submit_transfer() - * - libusb_transfer_get_stream_id() - * - libusb_transfer_set_stream_id() - * - libusb_try_lock_events() - * - libusb_unlock_events() - * - libusb_unlock_event_waiters() - * - libusb_unref_device() - * - libusb_wait_for_event() - * - * \section Structures - * - libusb_bos_descriptor - * - libusb_bos_dev_capability_descriptor - * - libusb_config_descriptor - * - libusb_container_id_descriptor - * - \ref libusb_context - * - libusb_control_setup - * - \ref libusb_device - * - libusb_device_descriptor - * - \ref libusb_device_handle - * - libusb_endpoint_descriptor - * - libusb_interface - * - libusb_interface_descriptor - * - libusb_iso_packet_descriptor - * - libusb_pollfd - * - libusb_ss_endpoint_companion_descriptor - * - libusb_ss_usb_device_capability_descriptor - * - libusb_transfer - * - libusb_usb_2_0_extension_descriptor - * - libusb_version - * - * \section Enums - * - \ref libusb_bos_type - * - \ref libusb_capability - * - \ref libusb_class_code - * - \ref libusb_descriptor_type - * - \ref libusb_endpoint_direction - * - \ref libusb_error - * - \ref libusb_iso_sync_type - * - \ref libusb_iso_usage_type - * - \ref libusb_log_level - * - \ref libusb_request_recipient - * - \ref libusb_request_type - * - \ref libusb_speed - * - \ref libusb_ss_usb_device_capability_attributes - * - \ref libusb_standard_request - * - \ref libusb_supported_speed - * - \ref libusb_transfer_flags - * - \ref libusb_transfer_status - * - \ref libusb_transfer_type - * - \ref libusb_usb_2_0_extension_attributes - */ - -/** - * @defgroup libusb_lib Library initialization/deinitialization - * This page details how to initialize and deinitialize libusb. Initialization - * must be performed before using any libusb functionality, and similarly you - * must not call any libusb functions after deinitialization. - */ - -/** - * @defgroup libusb_dev Device handling and enumeration - * The functionality documented below is designed to help with the following - * operations: - * - Enumerating the USB devices currently attached to the system - * - Choosing a device to operate from your software - * - Opening and closing the chosen device - * - * \section nutshell In a nutshell... - * - * The description below really makes things sound more complicated than they - * actually are. The following sequence of function calls will be suitable - * for almost all scenarios and does not require you to have such a deep - * understanding of the resource management issues: - * \code -// discover devices -libusb_device **list; -libusb_device *found = NULL; -ssize_t cnt = libusb_get_device_list(NULL, &list); -ssize_t i = 0; -int err = 0; -if (cnt < 0) - error(); - -for (i = 0; i < cnt; i++) { - libusb_device *device = list[i]; - if (is_interesting(device)) { - found = device; - break; - } -} - -if (found) { - libusb_device_handle *handle; - - err = libusb_open(found, &handle); - if (err) - error(); - // etc -} - -libusb_free_device_list(list, 1); -\endcode - * - * The two important points: - * - You asked libusb_free_device_list() to unreference the devices (2nd - * parameter) - * - You opened the device before freeing the list and unreferencing the - * devices - * - * If you ended up with a handle, you can now proceed to perform I/O on the - * device. - * - * \section devshandles Devices and device handles - * libusb has a concept of a USB device, represented by the - * \ref libusb_device opaque type. A device represents a USB device that - * is currently or was previously connected to the system. Using a reference - * to a device, you can determine certain information about the device (e.g. - * you can read the descriptor data). - * - * The libusb_get_device_list() function can be used to obtain a list of - * devices currently connected to the system. This is known as device - * discovery. - * - * Just because you have a reference to a device does not mean it is - * necessarily usable. The device may have been unplugged, you may not have - * permission to operate such device, or another program or driver may be - * using the device. - * - * When you've found a device that you'd like to operate, you must ask - * libusb to open the device using the libusb_open() function. Assuming - * success, libusb then returns you a device handle - * (a \ref libusb_device_handle pointer). All "real" I/O operations then - * operate on the handle rather than the original device pointer. - * - * \section devref Device discovery and reference counting - * - * Device discovery (i.e. calling libusb_get_device_list()) returns a - * freshly-allocated list of devices. The list itself must be freed when - * you are done with it. libusb also needs to know when it is OK to free - * the contents of the list - the devices themselves. - * - * To handle these issues, libusb provides you with two separate items: - * - A function to free the list itself - * - A reference counting system for the devices inside - * - * New devices presented by the libusb_get_device_list() function all have a - * reference count of 1. You can increase and decrease reference count using - * libusb_ref_device() and libusb_unref_device(). A device is destroyed when - * its reference count reaches 0. - * - * With the above information in mind, the process of opening a device can - * be viewed as follows: - * -# Discover devices using libusb_get_device_list(). - * -# Choose the device that you want to operate, and call libusb_open(). - * -# Unref all devices in the discovered device list. - * -# Free the discovered device list. - * - * The order is important - you must not unreference the device before - * attempting to open it, because unreferencing it may destroy the device. - * - * For convenience, the libusb_free_device_list() function includes a - * parameter to optionally unreference all the devices in the list before - * freeing the list itself. This combines steps 3 and 4 above. - * - * As an implementation detail, libusb_open() actually adds a reference to - * the device in question. This is because the device remains available - * through the handle via libusb_get_device(). The reference is deleted during - * libusb_close(). - */ - -/** @defgroup libusb_misc Miscellaneous */ - -/* we traverse usbfs without knowing how many devices we are going to find. - * so we create this discovered_devs model which is similar to a linked-list - * which grows when required. it can be freed once discovery has completed, - * eliminating the need for a list node in the libusb_device structure - * itself. */ -#define DISCOVERED_DEVICES_SIZE_STEP 8 - -static struct discovered_devs *discovered_devs_alloc(void) -{ - struct discovered_devs *ret = - malloc(sizeof(*ret) + (sizeof(void *) * DISCOVERED_DEVICES_SIZE_STEP)); - - if (ret) { - ret->len = 0; - ret->capacity = DISCOVERED_DEVICES_SIZE_STEP; - } - return ret; -} - -static void discovered_devs_free(struct discovered_devs *discdevs) -{ - size_t i; - - for (i = 0; i < discdevs->len; i++) - libusb_unref_device(discdevs->devices[i]); - - free(discdevs); -} - -/* append a device to the discovered devices collection. may realloc itself, - * returning new discdevs. returns NULL on realloc failure. */ -struct discovered_devs *discovered_devs_append( - struct discovered_devs *discdevs, struct libusb_device *dev) -{ - size_t len = discdevs->len; - size_t capacity; - struct discovered_devs *new_discdevs; - - /* if there is space, just append the device */ - if (len < discdevs->capacity) { - discdevs->devices[len] = libusb_ref_device(dev); - discdevs->len++; - return discdevs; - } - - /* exceeded capacity, need to grow */ - usbi_dbg("need to increase capacity"); - capacity = discdevs->capacity + DISCOVERED_DEVICES_SIZE_STEP; - /* can't use usbi_reallocf here because in failure cases it would - * free the existing discdevs without unreferencing its devices. */ - new_discdevs = realloc(discdevs, - sizeof(*discdevs) + (sizeof(void *) * capacity)); - if (!new_discdevs) { - discovered_devs_free(discdevs); - return NULL; - } - - discdevs = new_discdevs; - discdevs->capacity = capacity; - discdevs->devices[len] = libusb_ref_device(dev); - discdevs->len++; - - return discdevs; -} - -/* Allocate a new device with a specific session ID. The returned device has - * a reference count of 1. */ -struct libusb_device *usbi_alloc_device(struct libusb_context *ctx, - unsigned long session_id) -{ - size_t priv_size = usbi_backend->device_priv_size; - struct libusb_device *dev = calloc(1, sizeof(*dev) + priv_size); - int r; - - if (!dev) - return NULL; - - r = usbi_mutex_init(&dev->lock); - if (r) { - free(dev); - return NULL; - } - - dev->ctx = ctx; - dev->refcnt = 1; - dev->session_data = session_id; - dev->speed = LIBUSB_SPEED_UNKNOWN; - - if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { - usbi_connect_device (dev); - } - - return dev; -} - -void usbi_connect_device(struct libusb_device *dev) -{ - struct libusb_context *ctx = DEVICE_CTX(dev); - - dev->attached = 1; - - usbi_mutex_lock(&dev->ctx->usb_devs_lock); - list_add(&dev->list, &dev->ctx->usb_devs); - usbi_mutex_unlock(&dev->ctx->usb_devs_lock); - - /* Signal that an event has occurred for this device if we support hotplug AND - * the hotplug message list is ready. This prevents an event from getting raised - * during initial enumeration. */ - if (libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG) && dev->ctx->hotplug_msgs.next) { - usbi_hotplug_notification(ctx, dev, LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED); - } -} - -void usbi_disconnect_device(struct libusb_device *dev) -{ - struct libusb_context *ctx = DEVICE_CTX(dev); - - usbi_mutex_lock(&dev->lock); - dev->attached = 0; - usbi_mutex_unlock(&dev->lock); - - usbi_mutex_lock(&ctx->usb_devs_lock); - list_del(&dev->list); - usbi_mutex_unlock(&ctx->usb_devs_lock); - - /* Signal that an event has occurred for this device if we support hotplug AND - * the hotplug message list is ready. This prevents an event from getting raised - * during initial enumeration. libusb_handle_events will take care of dereferencing - * the device. */ - if (libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG) && dev->ctx->hotplug_msgs.next) { - usbi_hotplug_notification(ctx, dev, LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT); - } -} - -/* Perform some final sanity checks on a newly discovered device. If this - * function fails (negative return code), the device should not be added - * to the discovered device list. */ -int usbi_sanitize_device(struct libusb_device *dev) -{ - int r; - uint8_t num_configurations; - - r = usbi_device_cache_descriptor(dev); - if (r < 0) - return r; - - num_configurations = dev->device_descriptor.bNumConfigurations; - if (num_configurations > USB_MAXCONFIG) { - usbi_err(DEVICE_CTX(dev), "too many configurations"); - return LIBUSB_ERROR_IO; - } else if (0 == num_configurations) - usbi_dbg("zero configurations, maybe an unauthorized device"); - - dev->num_configurations = num_configurations; - return 0; -} - -/* Examine libusb's internal list of known devices, looking for one with - * a specific session ID. Returns the matching device if it was found, and - * NULL otherwise. */ -struct libusb_device *usbi_get_device_by_session_id(struct libusb_context *ctx, - unsigned long session_id) -{ - struct libusb_device *dev; - struct libusb_device *ret = NULL; - - usbi_mutex_lock(&ctx->usb_devs_lock); - list_for_each_entry(dev, &ctx->usb_devs, list, struct libusb_device) - if (dev->session_data == session_id) { - ret = libusb_ref_device(dev); - break; - } - usbi_mutex_unlock(&ctx->usb_devs_lock); - - return ret; -} - -/** @ingroup libusb_dev - * Returns a list of USB devices currently attached to the system. This is - * your entry point into finding a USB device to operate. - * - * You are expected to unreference all the devices when you are done with - * them, and then free the list with libusb_free_device_list(). Note that - * libusb_free_device_list() can unref all the devices for you. Be careful - * not to unreference a device you are about to open until after you have - * opened it. - * - * This return value of this function indicates the number of devices in - * the resultant list. The list is actually one element larger, as it is - * NULL-terminated. - * - * \param ctx the context to operate on, or NULL for the default context - * \param list output location for a list of devices. Must be later freed with - * libusb_free_device_list(). - * \returns the number of devices in the outputted list, or any - * \ref libusb_error according to errors encountered by the backend. - */ -ssize_t API_EXPORTED libusb_get_device_list(libusb_context *ctx, - libusb_device ***list) -{ - struct discovered_devs *discdevs = discovered_devs_alloc(); - struct libusb_device **ret; - int r = 0; - ssize_t i, len; - USBI_GET_CONTEXT(ctx); - usbi_dbg(""); - - if (!discdevs) - return LIBUSB_ERROR_NO_MEM; - - if (libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { - /* backend provides hotplug support */ - struct libusb_device *dev; - - if (usbi_backend->hotplug_poll) - usbi_backend->hotplug_poll(); - - usbi_mutex_lock(&ctx->usb_devs_lock); - list_for_each_entry(dev, &ctx->usb_devs, list, struct libusb_device) { - discdevs = discovered_devs_append(discdevs, dev); - - if (!discdevs) { - r = LIBUSB_ERROR_NO_MEM; - break; - } - } - usbi_mutex_unlock(&ctx->usb_devs_lock); - } else { - /* backend does not provide hotplug support */ - r = usbi_backend->get_device_list(ctx, &discdevs); - } - - if (r < 0) { - len = r; - goto out; - } - - /* convert discovered_devs into a list */ - len = discdevs->len; - ret = calloc(len + 1, sizeof(struct libusb_device *)); - if (!ret) { - len = LIBUSB_ERROR_NO_MEM; - goto out; - } - - ret[len] = NULL; - for (i = 0; i < len; i++) { - struct libusb_device *dev = discdevs->devices[i]; - ret[i] = libusb_ref_device(dev); - } - *list = ret; - -out: - if (discdevs) - discovered_devs_free(discdevs); - return len; -} - -/** \ingroup libusb_dev - * Frees a list of devices previously discovered using - * libusb_get_device_list(). If the unref_devices parameter is set, the - * reference count of each device in the list is decremented by 1. - * \param list the list to free - * \param unref_devices whether to unref the devices in the list - */ -void API_EXPORTED libusb_free_device_list(libusb_device **list, - int unref_devices) -{ - if (!list) - return; - - if (unref_devices) { - int i = 0; - struct libusb_device *dev; - - while ((dev = list[i++]) != NULL) - libusb_unref_device(dev); - } - free(list); -} - -/** \ingroup libusb_dev - * Get the number of the bus that a device is connected to. - * \param dev a device - * \returns the bus number - */ -uint8_t API_EXPORTED libusb_get_bus_number(libusb_device *dev) -{ - return dev->bus_number; -} - -/** \ingroup libusb_dev - * Get the number of the port that a device is connected to. - * Unless the OS does something funky, or you are hot-plugging USB extension cards, - * the port number returned by this call is usually guaranteed to be uniquely tied - * to a physical port, meaning that different devices plugged on the same physical - * port should return the same port number. - * - * But outside of this, there is no guarantee that the port number returned by this - * call will remain the same, or even match the order in which ports have been - * numbered by the HUB/HCD manufacturer. - * - * \param dev a device - * \returns the port number (0 if not available) - */ -uint8_t API_EXPORTED libusb_get_port_number(libusb_device *dev) -{ - return dev->port_number; -} - -/** \ingroup libusb_dev - * Get the list of all port numbers from root for the specified device - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * \param dev a device - * \param port_numbers the array that should contain the port numbers - * \param port_numbers_len the maximum length of the array. As per the USB 3.0 - * specs, the current maximum limit for the depth is 7. - * \returns the number of elements filled - * \returns LIBUSB_ERROR_OVERFLOW if the array is too small - */ -int API_EXPORTED libusb_get_port_numbers(libusb_device *dev, - uint8_t* port_numbers, int port_numbers_len) -{ - int i = port_numbers_len; - struct libusb_context *ctx = DEVICE_CTX(dev); - - if (port_numbers_len <= 0) - return LIBUSB_ERROR_INVALID_PARAM; - - // HCDs can be listed as devices with port #0 - while((dev) && (dev->port_number != 0)) { - if (--i < 0) { - usbi_warn(ctx, "port numbers array is too small"); - return LIBUSB_ERROR_OVERFLOW; - } - port_numbers[i] = dev->port_number; - dev = dev->parent_dev; - } - if (i < port_numbers_len) - memmove(port_numbers, &port_numbers[i], port_numbers_len - i); - return port_numbers_len - i; -} - -/** \ingroup libusb_dev - * Deprecated please use libusb_get_port_numbers instead. - */ -int API_EXPORTED libusb_get_port_path(libusb_context *ctx, libusb_device *dev, - uint8_t* port_numbers, uint8_t port_numbers_len) -{ - UNUSED(ctx); - - return libusb_get_port_numbers(dev, port_numbers, port_numbers_len); -} - -/** \ingroup libusb_dev - * Get the the parent from the specified device. - * \param dev a device - * \returns the device parent or NULL if not available - * You should issue a \ref libusb_get_device_list() before calling this - * function and make sure that you only access the parent before issuing - * \ref libusb_free_device_list(). The reason is that libusb currently does - * not maintain a permanent list of device instances, and therefore can - * only guarantee that parents are fully instantiated within a - * libusb_get_device_list() - libusb_free_device_list() block. - */ -DEFAULT_VISIBILITY -libusb_device * LIBUSB_CALL libusb_get_parent(libusb_device *dev) -{ - return dev->parent_dev; -} - -/** \ingroup libusb_dev - * Get the address of the device on the bus it is connected to. - * \param dev a device - * \returns the device address - */ -uint8_t API_EXPORTED libusb_get_device_address(libusb_device *dev) -{ - return dev->device_address; -} - -/** \ingroup libusb_dev - * Get the negotiated connection speed for a device. - * \param dev a device - * \returns a \ref libusb_speed code, where LIBUSB_SPEED_UNKNOWN means that - * the OS doesn't know or doesn't support returning the negotiated speed. - */ -int API_EXPORTED libusb_get_device_speed(libusb_device *dev) -{ - return dev->speed; -} - -static const struct libusb_endpoint_descriptor *find_endpoint( - struct libusb_config_descriptor *config, unsigned char endpoint) -{ - int iface_idx; - for (iface_idx = 0; iface_idx < config->bNumInterfaces; iface_idx++) { - const struct libusb_interface *iface = &config->interface[iface_idx]; - int altsetting_idx; - - for (altsetting_idx = 0; altsetting_idx < iface->num_altsetting; - altsetting_idx++) { - const struct libusb_interface_descriptor *altsetting - = &iface->altsetting[altsetting_idx]; - int ep_idx; - - for (ep_idx = 0; ep_idx < altsetting->bNumEndpoints; ep_idx++) { - const struct libusb_endpoint_descriptor *ep = - &altsetting->endpoint[ep_idx]; - if (ep->bEndpointAddress == endpoint) - return ep; - } - } - } - return NULL; -} - -/** \ingroup libusb_dev - * Convenience function to retrieve the wMaxPacketSize value for a particular - * endpoint in the active device configuration. - * - * This function was originally intended to be of assistance when setting up - * isochronous transfers, but a design mistake resulted in this function - * instead. It simply returns the wMaxPacketSize value without considering - * its contents. If you're dealing with isochronous transfers, you probably - * want libusb_get_max_iso_packet_size() instead. - * - * \param dev a device - * \param endpoint address of the endpoint in question - * \returns the wMaxPacketSize value - * \returns LIBUSB_ERROR_NOT_FOUND if the endpoint does not exist - * \returns LIBUSB_ERROR_OTHER on other failure - */ -int API_EXPORTED libusb_get_max_packet_size(libusb_device *dev, - unsigned char endpoint) -{ - struct libusb_config_descriptor *config; - const struct libusb_endpoint_descriptor *ep; - int r; - - r = libusb_get_active_config_descriptor(dev, &config); - if (r < 0) { - usbi_err(DEVICE_CTX(dev), - "could not retrieve active config descriptor"); - return LIBUSB_ERROR_OTHER; - } - - ep = find_endpoint(config, endpoint); - if (!ep) { - r = LIBUSB_ERROR_NOT_FOUND; - goto out; - } - - r = ep->wMaxPacketSize; - -out: - libusb_free_config_descriptor(config); - return r; -} - -/** \ingroup libusb_dev - * Calculate the maximum packet size which a specific endpoint is capable is - * sending or receiving in the duration of 1 microframe - * - * Only the active configuration is examined. The calculation is based on the - * wMaxPacketSize field in the endpoint descriptor as described in section - * 9.6.6 in the USB 2.0 specifications. - * - * If acting on an isochronous or interrupt endpoint, this function will - * multiply the value found in bits 0:10 by the number of transactions per - * microframe (determined by bits 11:12). Otherwise, this function just - * returns the numeric value found in bits 0:10. - * - * This function is useful for setting up isochronous transfers, for example - * you might pass the return value from this function to - * libusb_set_iso_packet_lengths() in order to set the length field of every - * isochronous packet in a transfer. - * - * Since v1.0.3. - * - * \param dev a device - * \param endpoint address of the endpoint in question - * \returns the maximum packet size which can be sent/received on this endpoint - * \returns LIBUSB_ERROR_NOT_FOUND if the endpoint does not exist - * \returns LIBUSB_ERROR_OTHER on other failure - */ -int API_EXPORTED libusb_get_max_iso_packet_size(libusb_device *dev, - unsigned char endpoint) -{ - struct libusb_config_descriptor *config; - const struct libusb_endpoint_descriptor *ep; - enum libusb_transfer_type ep_type; - uint16_t val; - int r; - - r = libusb_get_active_config_descriptor(dev, &config); - if (r < 0) { - usbi_err(DEVICE_CTX(dev), - "could not retrieve active config descriptor"); - return LIBUSB_ERROR_OTHER; - } - - ep = find_endpoint(config, endpoint); - if (!ep) { - r = LIBUSB_ERROR_NOT_FOUND; - goto out; - } - - val = ep->wMaxPacketSize; - ep_type = (enum libusb_transfer_type) (ep->bmAttributes & 0x3); - - r = val & 0x07ff; - if (ep_type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS - || ep_type == LIBUSB_TRANSFER_TYPE_INTERRUPT) - r *= (1 + ((val >> 11) & 3)); - -out: - libusb_free_config_descriptor(config); - return r; -} - -/** \ingroup libusb_dev - * Increment the reference count of a device. - * \param dev the device to reference - * \returns the same device - */ -DEFAULT_VISIBILITY -libusb_device * LIBUSB_CALL libusb_ref_device(libusb_device *dev) -{ - usbi_mutex_lock(&dev->lock); - dev->refcnt++; - usbi_mutex_unlock(&dev->lock); - return dev; -} - -/** \ingroup libusb_dev - * Decrement the reference count of a device. If the decrement operation - * causes the reference count to reach zero, the device shall be destroyed. - * \param dev the device to unreference - */ -void API_EXPORTED libusb_unref_device(libusb_device *dev) -{ - int refcnt; - - if (!dev) - return; - - usbi_mutex_lock(&dev->lock); - refcnt = --dev->refcnt; - usbi_mutex_unlock(&dev->lock); - - if (refcnt == 0) { - usbi_dbg("destroy device %d.%d", dev->bus_number, dev->device_address); - - libusb_unref_device(dev->parent_dev); - - if (usbi_backend->destroy_device) - usbi_backend->destroy_device(dev); - - if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { - /* backend does not support hotplug */ - usbi_disconnect_device(dev); - } - - usbi_mutex_destroy(&dev->lock); - free(dev); - } -} - -/* - * Signal the event pipe so that the event handling thread will be - * interrupted to process an internal event. - */ -int usbi_signal_event(struct libusb_context *ctx) -{ - unsigned char dummy = 1; - ssize_t r; - - /* write some data on event pipe to interrupt event handlers */ - r = usbi_write(ctx->event_pipe[1], &dummy, sizeof(dummy)); - if (r != sizeof(dummy)) { - usbi_warn(ctx, "internal signalling write failed"); - return LIBUSB_ERROR_IO; - } - - return 0; -} - -/* - * Clear the event pipe so that the event handling will no longer be - * interrupted. - */ -int usbi_clear_event(struct libusb_context *ctx) -{ - unsigned char dummy; - ssize_t r; - - /* read some data on event pipe to clear it */ - r = usbi_read(ctx->event_pipe[0], &dummy, sizeof(dummy)); - if (r != sizeof(dummy)) { - usbi_warn(ctx, "internal signalling read failed"); - return LIBUSB_ERROR_IO; - } - - return 0; -} - -/** \ingroup libusb_dev - * Open a device and obtain a device handle. A handle allows you to perform - * I/O on the device in question. - * - * Internally, this function adds a reference to the device and makes it - * available to you through libusb_get_device(). This reference is removed - * during libusb_close(). - * - * This is a non-blocking function; no requests are sent over the bus. - * - * \param dev the device to open - * \param dev_handle output location for the returned device handle pointer. Only - * populated when the return code is 0. - * \returns 0 on success - * \returns LIBUSB_ERROR_NO_MEM on memory allocation failure - * \returns LIBUSB_ERROR_ACCESS if the user has insufficient permissions - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - */ -int API_EXPORTED libusb_open(libusb_device *dev, - libusb_device_handle **dev_handle) -{ - struct libusb_context *ctx = DEVICE_CTX(dev); - struct libusb_device_handle *_dev_handle; - size_t priv_size = usbi_backend->device_handle_priv_size; - int r; - usbi_dbg("open %d.%d", dev->bus_number, dev->device_address); - - if (!dev->attached) { - return LIBUSB_ERROR_NO_DEVICE; - } - - _dev_handle = malloc(sizeof(*_dev_handle) + priv_size); - if (!_dev_handle) - return LIBUSB_ERROR_NO_MEM; - - r = usbi_mutex_init(&_dev_handle->lock); - if (r) { - free(_dev_handle); - return LIBUSB_ERROR_OTHER; - } - - _dev_handle->dev = libusb_ref_device(dev); - _dev_handle->auto_detach_kernel_driver = 0; - _dev_handle->claimed_interfaces = 0; - memset(&_dev_handle->os_priv, 0, priv_size); - - r = usbi_backend->open(_dev_handle); - if (r < 0) { - usbi_dbg("open %d.%d returns %d", dev->bus_number, dev->device_address, r); - libusb_unref_device(dev); - usbi_mutex_destroy(&_dev_handle->lock); - free(_dev_handle); - return r; - } - - usbi_mutex_lock(&ctx->open_devs_lock); - list_add(&_dev_handle->list, &ctx->open_devs); - usbi_mutex_unlock(&ctx->open_devs_lock); - *dev_handle = _dev_handle; - - return 0; -} - -/** \ingroup libusb_dev - * Convenience function for finding a device with a particular - * idVendor/idProduct combination. This function is intended - * for those scenarios where you are using libusb to knock up a quick test - * application - it allows you to avoid calling libusb_get_device_list() and - * worrying about traversing/freeing the list. - * - * This function has limitations and is hence not intended for use in real - * applications: if multiple devices have the same IDs it will only - * give you the first one, etc. - * - * \param ctx the context to operate on, or NULL for the default context - * \param vendor_id the idVendor value to search for - * \param product_id the idProduct value to search for - * \returns a device handle for the first found device, or NULL on error - * or if the device could not be found. */ -DEFAULT_VISIBILITY -libusb_device_handle * LIBUSB_CALL libusb_open_device_with_vid_pid( - libusb_context *ctx, uint16_t vendor_id, uint16_t product_id) -{ - struct libusb_device **devs; - struct libusb_device *found = NULL; - struct libusb_device *dev; - struct libusb_device_handle *dev_handle = NULL; - size_t i = 0; - int r; - - if (libusb_get_device_list(ctx, &devs) < 0) - return NULL; - - while ((dev = devs[i++]) != NULL) { - struct libusb_device_descriptor desc; - r = libusb_get_device_descriptor(dev, &desc); - if (r < 0) - goto out; - if (desc.idVendor == vendor_id && desc.idProduct == product_id) { - found = dev; - break; - } - } - - if (found) { - r = libusb_open(found, &dev_handle); - if (r < 0) - dev_handle = NULL; - } - -out: - libusb_free_device_list(devs, 1); - return dev_handle; -} - -static void do_close(struct libusb_context *ctx, - struct libusb_device_handle *dev_handle) -{ - struct usbi_transfer *itransfer; - struct usbi_transfer *tmp; - - /* remove any transfers in flight that are for this device */ - usbi_mutex_lock(&ctx->flying_transfers_lock); - - /* safe iteration because transfers may be being deleted */ - list_for_each_entry_safe(itransfer, tmp, &ctx->flying_transfers, list, struct usbi_transfer) { - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - if (transfer->dev_handle != dev_handle) - continue; - - usbi_mutex_lock(&itransfer->lock); - if (!(itransfer->state_flags & USBI_TRANSFER_DEVICE_DISAPPEARED)) { - usbi_err(ctx, "Device handle closed while transfer was still being processed, but the device is still connected as far as we know"); - - if (itransfer->state_flags & USBI_TRANSFER_CANCELLING) - usbi_warn(ctx, "A cancellation for an in-flight transfer hasn't completed but closing the device handle"); - else - usbi_err(ctx, "A cancellation hasn't even been scheduled on the transfer for which the device is closing"); - } - usbi_mutex_unlock(&itransfer->lock); - - /* remove from the list of in-flight transfers and make sure - * we don't accidentally use the device handle in the future - * (or that such accesses will be easily caught and identified as a crash) - */ - list_del(&itransfer->list); - transfer->dev_handle = NULL; - - /* it is up to the user to free up the actual transfer struct. this is - * just making sure that we don't attempt to process the transfer after - * the device handle is invalid - */ - usbi_dbg("Removed transfer %p from the in-flight list because device handle %p closed", - transfer, dev_handle); - } - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - usbi_mutex_lock(&ctx->open_devs_lock); - list_del(&dev_handle->list); - usbi_mutex_unlock(&ctx->open_devs_lock); - - usbi_backend->close(dev_handle); - libusb_unref_device(dev_handle->dev); - usbi_mutex_destroy(&dev_handle->lock); - free(dev_handle); -} - -/** \ingroup libusb_dev - * Close a device handle. Should be called on all open handles before your - * application exits. - * - * Internally, this function destroys the reference that was added by - * libusb_open() on the given device. - * - * This is a non-blocking function; no requests are sent over the bus. - * - * \param dev_handle the device handle to close - */ -void API_EXPORTED libusb_close(libusb_device_handle *dev_handle) -{ - struct libusb_context *ctx; - int handling_events; - int pending_events; - - if (!dev_handle) - return; - usbi_dbg(""); - - ctx = HANDLE_CTX(dev_handle); - handling_events = usbi_handling_events(ctx); - - /* Similarly to libusb_open(), we want to interrupt all event handlers - * at this point. More importantly, we want to perform the actual close of - * the device while holding the event handling lock (preventing any other - * thread from doing event handling) because we will be removing a file - * descriptor from the polling loop. If this is being called by the current - * event handler, we can bypass the interruption code because we already - * hold the event handling lock. */ - - if (!handling_events) { - /* Record that we are closing a device. - * Only signal an event if there are no prior pending events. */ - usbi_mutex_lock(&ctx->event_data_lock); - pending_events = usbi_pending_events(ctx); - ctx->device_close++; - if (!pending_events) - usbi_signal_event(ctx); - usbi_mutex_unlock(&ctx->event_data_lock); - - /* take event handling lock */ - libusb_lock_events(ctx); - } - - /* Close the device */ - do_close(ctx, dev_handle); - - if (!handling_events) { - /* We're done with closing this device. - * Clear the event pipe if there are no further pending events. */ - usbi_mutex_lock(&ctx->event_data_lock); - ctx->device_close--; - pending_events = usbi_pending_events(ctx); - if (!pending_events) - usbi_clear_event(ctx); - usbi_mutex_unlock(&ctx->event_data_lock); - - /* Release event handling lock and wake up event waiters */ - libusb_unlock_events(ctx); - } -} - -/** \ingroup libusb_dev - * Get the underlying device for a device handle. This function does not modify - * the reference count of the returned device, so do not feel compelled to - * unreference it when you are done. - * \param dev_handle a device handle - * \returns the underlying device - */ -DEFAULT_VISIBILITY -libusb_device * LIBUSB_CALL libusb_get_device(libusb_device_handle *dev_handle) -{ - return dev_handle->dev; -} - -/** \ingroup libusb_dev - * Determine the bConfigurationValue of the currently active configuration. - * - * You could formulate your own control request to obtain this information, - * but this function has the advantage that it may be able to retrieve the - * information from operating system caches (no I/O involved). - * - * If the OS does not cache this information, then this function will block - * while a control transfer is submitted to retrieve the information. - * - * This function will return a value of 0 in the config output - * parameter if the device is in unconfigured state. - * - * \param dev_handle a device handle - * \param config output location for the bConfigurationValue of the active - * configuration (only valid for return code 0) - * \returns 0 on success - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - */ -int API_EXPORTED libusb_get_configuration(libusb_device_handle *dev_handle, - int *config) -{ - int r = LIBUSB_ERROR_NOT_SUPPORTED; - - usbi_dbg(""); - if (usbi_backend->get_configuration) - r = usbi_backend->get_configuration(dev_handle, config); - - if (r == LIBUSB_ERROR_NOT_SUPPORTED) { - uint8_t tmp = 0; - usbi_dbg("falling back to control message"); - r = libusb_control_transfer(dev_handle, LIBUSB_ENDPOINT_IN, - LIBUSB_REQUEST_GET_CONFIGURATION, 0, 0, &tmp, 1, 1000); - if (r == 0) { - usbi_err(HANDLE_CTX(dev_handle), "zero bytes returned in ctrl transfer?"); - r = LIBUSB_ERROR_IO; - } else if (r == 1) { - r = 0; - *config = tmp; - } else { - usbi_dbg("control failed, error %d", r); - } - } - - if (r == 0) - usbi_dbg("active config %d", *config); - - return r; -} - -/** \ingroup libusb_dev - * Set the active configuration for a device. - * - * The operating system may or may not have already set an active - * configuration on the device. It is up to your application to ensure the - * correct configuration is selected before you attempt to claim interfaces - * and perform other operations. - * - * If you call this function on a device already configured with the selected - * configuration, then this function will act as a lightweight device reset: - * it will issue a SET_CONFIGURATION request using the current configuration, - * causing most USB-related device state to be reset (altsetting reset to zero, - * endpoint halts cleared, toggles reset). - * - * You cannot change/reset configuration if your application has claimed - * interfaces. It is advised to set the desired configuration before claiming - * interfaces. - * - * Alternatively you can call libusb_release_interface() first. Note if you - * do things this way you must ensure that auto_detach_kernel_driver for - * dev is 0, otherwise the kernel driver will be re-attached when you - * release the interface(s). - * - * You cannot change/reset configuration if other applications or drivers have - * claimed interfaces. - * - * A configuration value of -1 will put the device in unconfigured state. - * The USB specifications state that a configuration value of 0 does this, - * however buggy devices exist which actually have a configuration 0. - * - * You should always use this function rather than formulating your own - * SET_CONFIGURATION control request. This is because the underlying operating - * system needs to know when such changes happen. - * - * This is a blocking function. - * - * \param dev_handle a device handle - * \param configuration the bConfigurationValue of the configuration you - * wish to activate, or -1 if you wish to put the device in an unconfigured - * state - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the requested configuration does not exist - * \returns LIBUSB_ERROR_BUSY if interfaces are currently claimed - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - * \see libusb_set_auto_detach_kernel_driver() - */ -int API_EXPORTED libusb_set_configuration(libusb_device_handle *dev_handle, - int configuration) -{ - usbi_dbg("configuration %d", configuration); - return usbi_backend->set_configuration(dev_handle, configuration); -} - -/** \ingroup libusb_dev - * Claim an interface on a given device handle. You must claim the interface - * you wish to use before you can perform I/O on any of its endpoints. - * - * It is legal to attempt to claim an already-claimed interface, in which - * case libusb just returns 0 without doing anything. - * - * If auto_detach_kernel_driver is set to 1 for dev, the kernel driver - * will be detached if necessary, on failure the detach error is returned. - * - * Claiming of interfaces is a purely logical operation; it does not cause - * any requests to be sent over the bus. Interface claiming is used to - * instruct the underlying operating system that your application wishes - * to take ownership of the interface. - * - * This is a non-blocking function. - * - * \param dev_handle a device handle - * \param interface_number the bInterfaceNumber of the interface you - * wish to claim - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the requested interface does not exist - * \returns LIBUSB_ERROR_BUSY if another program or driver has claimed the - * interface - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns a LIBUSB_ERROR code on other failure - * \see libusb_set_auto_detach_kernel_driver() - */ -int API_EXPORTED libusb_claim_interface(libusb_device_handle *dev_handle, - int interface_number) -{ - int r = 0; - - usbi_dbg("interface %d", interface_number); - if (interface_number >= USB_MAXINTERFACES) - return LIBUSB_ERROR_INVALID_PARAM; - - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_mutex_lock(&dev_handle->lock); - if (dev_handle->claimed_interfaces & (1 << interface_number)) - goto out; - - r = usbi_backend->claim_interface(dev_handle, interface_number); - if (r == 0) - dev_handle->claimed_interfaces |= 1 << interface_number; - -out: - usbi_mutex_unlock(&dev_handle->lock); - return r; -} - -/** \ingroup libusb_dev - * Release an interface previously claimed with libusb_claim_interface(). You - * should release all claimed interfaces before closing a device handle. - * - * This is a blocking function. A SET_INTERFACE control request will be sent - * to the device, resetting interface state to the first alternate setting. - * - * If auto_detach_kernel_driver is set to 1 for dev, the kernel - * driver will be re-attached after releasing the interface. - * - * \param dev_handle a device handle - * \param interface_number the bInterfaceNumber of the - * previously-claimed interface - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the interface was not claimed - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - * \see libusb_set_auto_detach_kernel_driver() - */ -int API_EXPORTED libusb_release_interface(libusb_device_handle *dev_handle, - int interface_number) -{ - int r; - - usbi_dbg("interface %d", interface_number); - if (interface_number >= USB_MAXINTERFACES) - return LIBUSB_ERROR_INVALID_PARAM; - - usbi_mutex_lock(&dev_handle->lock); - if (!(dev_handle->claimed_interfaces & (1 << interface_number))) { - r = LIBUSB_ERROR_NOT_FOUND; - goto out; - } - - r = usbi_backend->release_interface(dev_handle, interface_number); - if (r == 0) - dev_handle->claimed_interfaces &= ~(1 << interface_number); - -out: - usbi_mutex_unlock(&dev_handle->lock); - return r; -} - -/** \ingroup libusb_dev - * Activate an alternate setting for an interface. The interface must have - * been previously claimed with libusb_claim_interface(). - * - * You should always use this function rather than formulating your own - * SET_INTERFACE control request. This is because the underlying operating - * system needs to know when such changes happen. - * - * This is a blocking function. - * - * \param dev_handle a device handle - * \param interface_number the bInterfaceNumber of the - * previously-claimed interface - * \param alternate_setting the bAlternateSetting of the alternate - * setting to activate - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the interface was not claimed, or the - * requested alternate setting does not exist - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - */ -int API_EXPORTED libusb_set_interface_alt_setting(libusb_device_handle *dev_handle, - int interface_number, int alternate_setting) -{ - usbi_dbg("interface %d altsetting %d", - interface_number, alternate_setting); - if (interface_number >= USB_MAXINTERFACES) - return LIBUSB_ERROR_INVALID_PARAM; - - usbi_mutex_lock(&dev_handle->lock); - if (!dev_handle->dev->attached) { - usbi_mutex_unlock(&dev_handle->lock); - return LIBUSB_ERROR_NO_DEVICE; - } - - if (!(dev_handle->claimed_interfaces & (1 << interface_number))) { - usbi_mutex_unlock(&dev_handle->lock); - return LIBUSB_ERROR_NOT_FOUND; - } - usbi_mutex_unlock(&dev_handle->lock); - - return usbi_backend->set_interface_altsetting(dev_handle, interface_number, - alternate_setting); -} - -/** \ingroup libusb_dev - * Clear the halt/stall condition for an endpoint. Endpoints with halt status - * are unable to receive or transmit data until the halt condition is stalled. - * - * You should cancel all pending transfers before attempting to clear the halt - * condition. - * - * This is a blocking function. - * - * \param dev_handle a device handle - * \param endpoint the endpoint to clear halt status - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the endpoint does not exist - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - */ -int API_EXPORTED libusb_clear_halt(libusb_device_handle *dev_handle, - unsigned char endpoint) -{ - usbi_dbg("endpoint %x", endpoint); - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - return usbi_backend->clear_halt(dev_handle, endpoint); -} - -/** \ingroup libusb_dev - * Perform a USB port reset to reinitialize a device. The system will attempt - * to restore the previous configuration and alternate settings after the - * reset has completed. - * - * If the reset fails, the descriptors change, or the previous state cannot be - * restored, the device will appear to be disconnected and reconnected. This - * means that the device handle is no longer valid (you should close it) and - * rediscover the device. A return code of LIBUSB_ERROR_NOT_FOUND indicates - * when this is the case. - * - * This is a blocking function which usually incurs a noticeable delay. - * - * \param dev_handle a handle of the device to reset - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if re-enumeration is required, or if the - * device has been disconnected - * \returns another LIBUSB_ERROR code on other failure - */ -int API_EXPORTED libusb_reset_device(libusb_device_handle *dev_handle) -{ - usbi_dbg(""); - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - return usbi_backend->reset_device(dev_handle); -} - -/** \ingroup libusb_asyncio - * Allocate up to num_streams usb bulk streams on the specified endpoints. This - * function takes an array of endpoints rather then a single endpoint because - * some protocols require that endpoints are setup with similar stream ids. - * All endpoints passed in must belong to the same interface. - * - * Note this function may return less streams then requested. Also note that the - * same number of streams are allocated for each endpoint in the endpoint array. - * - * Stream id 0 is reserved, and should not be used to communicate with devices. - * If libusb_alloc_streams() returns with a value of N, you may use stream ids - * 1 to N. - * - * Since version 1.0.19, \ref LIBUSB_API_VERSION >= 0x01000103 - * - * \param dev_handle a device handle - * \param num_streams number of streams to try to allocate - * \param endpoints array of endpoints to allocate streams on - * \param num_endpoints length of the endpoints array - * \returns number of streams allocated, or a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_alloc_streams(libusb_device_handle *dev_handle, - uint32_t num_streams, unsigned char *endpoints, int num_endpoints) -{ - usbi_dbg("streams %u eps %d", (unsigned) num_streams, num_endpoints); - - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - if (usbi_backend->alloc_streams) - return usbi_backend->alloc_streams(dev_handle, num_streams, endpoints, - num_endpoints); - else - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -/** \ingroup libusb_asyncio - * Free usb bulk streams allocated with libusb_alloc_streams(). - * - * Note streams are automatically free-ed when releasing an interface. - * - * Since version 1.0.19, \ref LIBUSB_API_VERSION >= 0x01000103 - * - * \param dev_handle a device handle - * \param endpoints array of endpoints to free streams on - * \param num_endpoints length of the endpoints array - * \returns LIBUSB_SUCCESS, or a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_free_streams(libusb_device_handle *dev_handle, - unsigned char *endpoints, int num_endpoints) -{ - usbi_dbg("eps %d", num_endpoints); - - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - if (usbi_backend->free_streams) - return usbi_backend->free_streams(dev_handle, endpoints, - num_endpoints); - else - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -/** \ingroup libusb_asyncio - * Attempts to allocate a block of persistent DMA memory suitable for transfers - * against the given device. If successful, will return a block of memory - * that is suitable for use as "buffer" in \ref libusb_transfer against this - * device. Using this memory instead of regular memory means that the host - * controller can use DMA directly into the buffer to increase performance, and - * also that transfers can no longer fail due to kernel memory fragmentation. - * - * Note that this means you should not modify this memory (or even data on - * the same cache lines) when a transfer is in progress, although it is legal - * to have several transfers going on within the same memory block. - * - * Will return NULL on failure. Many systems do not support such zerocopy - * and will always return NULL. Memory allocated with this function must be - * freed with \ref libusb_dev_mem_free. Specifically, this means that the - * flag \ref LIBUSB_TRANSFER_FREE_BUFFER cannot be used to free memory allocated - * with this function. - * - * Since version 1.0.21, \ref LIBUSB_API_VERSION >= 0x01000105 - * - * \param dev_handle a device handle - * \param length size of desired data buffer - * \returns a pointer to the newly allocated memory, or NULL on failure - */ -DEFAULT_VISIBILITY -unsigned char * LIBUSB_CALL libusb_dev_mem_alloc(libusb_device_handle *dev_handle, - size_t length) -{ - if (!dev_handle->dev->attached) - return NULL; - - if (usbi_backend->dev_mem_alloc) - return usbi_backend->dev_mem_alloc(dev_handle, length); - else - return NULL; -} - -/** \ingroup libusb_asyncio - * Free device memory allocated with libusb_dev_mem_alloc(). - * - * \param dev_handle a device handle - * \param buffer pointer to the previously allocated memory - * \param length size of previously allocated memory - * \returns LIBUSB_SUCCESS, or a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_dev_mem_free(libusb_device_handle *dev_handle, - unsigned char *buffer, size_t length) -{ - if (usbi_backend->dev_mem_free) - return usbi_backend->dev_mem_free(dev_handle, buffer, length); - else - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -/** \ingroup libusb_dev - * Determine if a kernel driver is active on an interface. If a kernel driver - * is active, you cannot claim the interface, and libusb will be unable to - * perform I/O. - * - * This functionality is not available on Windows. - * - * \param dev_handle a device handle - * \param interface_number the interface to check - * \returns 0 if no kernel driver is active - * \returns 1 if a kernel driver is active - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_NOT_SUPPORTED on platforms where the functionality - * is not available - * \returns another LIBUSB_ERROR code on other failure - * \see libusb_detach_kernel_driver() - */ -int API_EXPORTED libusb_kernel_driver_active(libusb_device_handle *dev_handle, - int interface_number) -{ - usbi_dbg("interface %d", interface_number); - - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - if (usbi_backend->kernel_driver_active) - return usbi_backend->kernel_driver_active(dev_handle, interface_number); - else - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -/** \ingroup libusb_dev - * Detach a kernel driver from an interface. If successful, you will then be - * able to claim the interface and perform I/O. - * - * This functionality is not available on Darwin or Windows. - * - * Note that libusb itself also talks to the device through a special kernel - * driver, if this driver is already attached to the device, this call will - * not detach it and return LIBUSB_ERROR_NOT_FOUND. - * - * \param dev_handle a device handle - * \param interface_number the interface to detach the driver from - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if no kernel driver was active - * \returns LIBUSB_ERROR_INVALID_PARAM if the interface does not exist - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_NOT_SUPPORTED on platforms where the functionality - * is not available - * \returns another LIBUSB_ERROR code on other failure - * \see libusb_kernel_driver_active() - */ -int API_EXPORTED libusb_detach_kernel_driver(libusb_device_handle *dev_handle, - int interface_number) -{ - usbi_dbg("interface %d", interface_number); - - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - if (usbi_backend->detach_kernel_driver) - return usbi_backend->detach_kernel_driver(dev_handle, interface_number); - else - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -/** \ingroup libusb_dev - * Re-attach an interface's kernel driver, which was previously detached - * using libusb_detach_kernel_driver(). This call is only effective on - * Linux and returns LIBUSB_ERROR_NOT_SUPPORTED on all other platforms. - * - * This functionality is not available on Darwin or Windows. - * - * \param dev_handle a device handle - * \param interface_number the interface to attach the driver from - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if no kernel driver was active - * \returns LIBUSB_ERROR_INVALID_PARAM if the interface does not exist - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_NOT_SUPPORTED on platforms where the functionality - * is not available - * \returns LIBUSB_ERROR_BUSY if the driver cannot be attached because the - * interface is claimed by a program or driver - * \returns another LIBUSB_ERROR code on other failure - * \see libusb_kernel_driver_active() - */ -int API_EXPORTED libusb_attach_kernel_driver(libusb_device_handle *dev_handle, - int interface_number) -{ - usbi_dbg("interface %d", interface_number); - - if (!dev_handle->dev->attached) - return LIBUSB_ERROR_NO_DEVICE; - - if (usbi_backend->attach_kernel_driver) - return usbi_backend->attach_kernel_driver(dev_handle, interface_number); - else - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -/** \ingroup libusb_dev - * Enable/disable libusb's automatic kernel driver detachment. When this is - * enabled libusb will automatically detach the kernel driver on an interface - * when claiming the interface, and attach it when releasing the interface. - * - * Automatic kernel driver detachment is disabled on newly opened device - * handles by default. - * - * On platforms which do not have LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER - * this function will return LIBUSB_ERROR_NOT_SUPPORTED, and libusb will - * continue as if this function was never called. - * - * \param dev_handle a device handle - * \param enable whether to enable or disable auto kernel driver detachment - * - * \returns LIBUSB_SUCCESS on success - * \returns LIBUSB_ERROR_NOT_SUPPORTED on platforms where the functionality - * is not available - * \see libusb_claim_interface() - * \see libusb_release_interface() - * \see libusb_set_configuration() - */ -int API_EXPORTED libusb_set_auto_detach_kernel_driver( - libusb_device_handle *dev_handle, int enable) -{ - if (!(usbi_backend->caps & USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER)) - return LIBUSB_ERROR_NOT_SUPPORTED; - - dev_handle->auto_detach_kernel_driver = enable; - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_lib - * Set log message verbosity. - * - * The default level is LIBUSB_LOG_LEVEL_NONE, which means no messages are ever - * printed. If you choose to increase the message verbosity level, ensure - * that your application does not close the stdout/stderr file descriptors. - * - * You are advised to use level LIBUSB_LOG_LEVEL_WARNING. libusb is conservative - * with its message logging and most of the time, will only log messages that - * explain error conditions and other oddities. This will help you debug - * your software. - * - * If the LIBUSB_DEBUG environment variable was set when libusb was - * initialized, this function does nothing: the message verbosity is fixed - * to the value in the environment variable. - * - * If libusb was compiled without any message logging, this function does - * nothing: you'll never get any messages. - * - * If libusb was compiled with verbose debug message logging, this function - * does nothing: you'll always get messages from all levels. - * - * \param ctx the context to operate on, or NULL for the default context - * \param level debug level to set - */ -void API_EXPORTED libusb_set_debug(libusb_context *ctx, int level) -{ - USBI_GET_CONTEXT(ctx); - if (!ctx->debug_fixed) - ctx->debug = level; -} - -/** \ingroup libusb_lib - * Initialize libusb. This function must be called before calling any other - * libusb function. - * - * If you do not provide an output location for a context pointer, a default - * context will be created. If there was already a default context, it will - * be reused (and nothing will be initialized/reinitialized). - * - * \param context Optional output location for context pointer. - * Only valid on return code 0. - * \returns 0 on success, or a LIBUSB_ERROR code on failure - * \see libusb_contexts - */ -int API_EXPORTED libusb_init(libusb_context **context) -{ - struct libusb_device *dev, *next; - char *dbg = getenv("LIBUSB_DEBUG"); - struct libusb_context *ctx; - static int first_init = 1; - int r = 0; - - usbi_mutex_static_lock(&default_context_lock); - - if (!timestamp_origin.tv_sec) { - usbi_backend->clock_gettime(USBI_CLOCK_REALTIME, ×tamp_origin); - } - - if (!context && usbi_default_context) { - usbi_dbg("reusing default context"); - default_context_refcnt++; - usbi_mutex_static_unlock(&default_context_lock); - return 0; - } - - ctx = calloc(1, sizeof(*ctx)); - if (!ctx) { - r = LIBUSB_ERROR_NO_MEM; - goto err_unlock; - } - -#ifdef ENABLE_DEBUG_LOGGING - ctx->debug = LIBUSB_LOG_LEVEL_DEBUG; -#endif - - if (dbg) { - ctx->debug = atoi(dbg); - if (ctx->debug) - ctx->debug_fixed = 1; - } - - /* default context should be initialized before calling usbi_dbg */ - if (!usbi_default_context) { - usbi_default_context = ctx; - default_context_refcnt++; - usbi_dbg("created default context"); - } - - usbi_dbg("libusb v%u.%u.%u.%u%s", libusb_version_internal.major, libusb_version_internal.minor, - libusb_version_internal.micro, libusb_version_internal.nano, libusb_version_internal.rc); - - usbi_mutex_init(&ctx->usb_devs_lock); - usbi_mutex_init(&ctx->open_devs_lock); - usbi_mutex_init(&ctx->hotplug_cbs_lock); - list_init(&ctx->usb_devs); - list_init(&ctx->open_devs); - list_init(&ctx->hotplug_cbs); - - usbi_mutex_static_lock(&active_contexts_lock); - if (first_init) { - first_init = 0; - list_init (&active_contexts_list); - } - list_add (&ctx->list, &active_contexts_list); - usbi_mutex_static_unlock(&active_contexts_lock); - - if (usbi_backend->init) { - r = usbi_backend->init(ctx); - if (r) - goto err_free_ctx; - } - - r = usbi_io_init(ctx); - if (r < 0) - goto err_backend_exit; - - usbi_mutex_static_unlock(&default_context_lock); - - if (context) - *context = ctx; - - return 0; - -err_backend_exit: - if (usbi_backend->exit) - usbi_backend->exit(); -err_free_ctx: - if (ctx == usbi_default_context) { - usbi_default_context = NULL; - default_context_refcnt--; - } - - usbi_mutex_static_lock(&active_contexts_lock); - list_del (&ctx->list); - usbi_mutex_static_unlock(&active_contexts_lock); - - usbi_mutex_lock(&ctx->usb_devs_lock); - list_for_each_entry_safe(dev, next, &ctx->usb_devs, list, struct libusb_device) { - list_del(&dev->list); - libusb_unref_device(dev); - } - usbi_mutex_unlock(&ctx->usb_devs_lock); - - usbi_mutex_destroy(&ctx->open_devs_lock); - usbi_mutex_destroy(&ctx->usb_devs_lock); - usbi_mutex_destroy(&ctx->hotplug_cbs_lock); - - free(ctx); -err_unlock: - usbi_mutex_static_unlock(&default_context_lock); - return r; -} - -/** \ingroup libusb_lib - * Deinitialize libusb. Should be called after closing all open devices and - * before your application terminates. - * \param ctx the context to deinitialize, or NULL for the default context - */ -void API_EXPORTED libusb_exit(struct libusb_context *ctx) -{ - struct libusb_device *dev, *next; - struct timeval tv = { 0, 0 }; - - usbi_dbg(""); - USBI_GET_CONTEXT(ctx); - - /* if working with default context, only actually do the deinitialization - * if we're the last user */ - usbi_mutex_static_lock(&default_context_lock); - if (ctx == usbi_default_context) { - if (--default_context_refcnt > 0) { - usbi_dbg("not destroying default context"); - usbi_mutex_static_unlock(&default_context_lock); - return; - } - usbi_dbg("destroying default context"); - usbi_default_context = NULL; - } - usbi_mutex_static_unlock(&default_context_lock); - - usbi_mutex_static_lock(&active_contexts_lock); - list_del (&ctx->list); - usbi_mutex_static_unlock(&active_contexts_lock); - - if (libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { - usbi_hotplug_deregister_all(ctx); - - /* - * Ensure any pending unplug events are read from the hotplug - * pipe. The usb_device-s hold in the events are no longer part - * of usb_devs, but the events still hold a reference! - * - * Note we don't do this if the application has left devices - * open (which implies a buggy app) to avoid packet completion - * handlers running when the app does not expect them to run. - */ - if (list_empty(&ctx->open_devs)) - libusb_handle_events_timeout(ctx, &tv); - - usbi_mutex_lock(&ctx->usb_devs_lock); - list_for_each_entry_safe(dev, next, &ctx->usb_devs, list, struct libusb_device) { - list_del(&dev->list); - libusb_unref_device(dev); - } - usbi_mutex_unlock(&ctx->usb_devs_lock); - } - - /* a few sanity checks. don't bother with locking because unless - * there is an application bug, nobody will be accessing these. */ - if (!list_empty(&ctx->usb_devs)) - usbi_warn(ctx, "some libusb_devices were leaked"); - if (!list_empty(&ctx->open_devs)) - usbi_warn(ctx, "application left some devices open"); - - usbi_io_exit(ctx); - if (usbi_backend->exit) - usbi_backend->exit(); - - usbi_mutex_destroy(&ctx->open_devs_lock); - usbi_mutex_destroy(&ctx->usb_devs_lock); - usbi_mutex_destroy(&ctx->hotplug_cbs_lock); - free(ctx); -} - -/** \ingroup libusb_misc - * Check at runtime if the loaded library has a given capability. - * This call should be performed after \ref libusb_init(), to ensure the - * backend has updated its capability set. - * - * \param capability the \ref libusb_capability to check for - * \returns nonzero if the running library has the capability, 0 otherwise - */ -int API_EXPORTED libusb_has_capability(uint32_t capability) -{ - switch (capability) { - case LIBUSB_CAP_HAS_CAPABILITY: - return 1; - case LIBUSB_CAP_HAS_HOTPLUG: - return !(usbi_backend->get_device_list); - case LIBUSB_CAP_HAS_HID_ACCESS: - return (usbi_backend->caps & USBI_CAP_HAS_HID_ACCESS); - case LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER: - return (usbi_backend->caps & USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER); - } - return 0; -} - -/* this is defined in libusbi.h if needed */ -#ifdef LIBUSB_PRINTF_WIN32 -/* - * Prior to VS2015, Microsoft did not provide the snprintf() function and - * provided a vsnprintf() that did not guarantee NULL-terminated output. - * Microsoft did provide a _snprintf() function, but again it did not - * guarantee NULL-terminated output. - * - * The below implementations guarantee NULL-terminated output and are - * C99 compliant. - */ - -int usbi_snprintf(char *str, size_t size, const char *format, ...) -{ - va_list ap; - int ret; - - va_start(ap, format); - ret = usbi_vsnprintf(str, size, format, ap); - va_end(ap); - - return ret; -} - -int usbi_vsnprintf(char *str, size_t size, const char *format, va_list ap) -{ - int ret; - - ret = _vsnprintf(str, size, format, ap); - if (ret < 0 || ret == (int)size) { - /* Output is truncated, ensure buffer is NULL-terminated and - * determine how many characters would have been written. */ - str[size - 1] = '\0'; - if (ret < 0) - ret = _vsnprintf(NULL, 0, format, ap); - } - - return ret; -} -#endif - -static void usbi_log_str(struct libusb_context *ctx, - enum libusb_log_level level, const char * str) -{ -#if defined(USE_SYSTEM_LOGGING_FACILITY) -#if defined(OS_WINDOWS) - OutputDebugString(str); -#elif defined(OS_WINCE) - /* Windows CE only supports the Unicode version of OutputDebugString. */ - WCHAR wbuf[USBI_MAX_LOG_LEN]; - MultiByteToWideChar(CP_UTF8, 0, str, -1, wbuf, sizeof(wbuf)); - OutputDebugStringW(wbuf); -#elif defined(__ANDROID__) - int priority = ANDROID_LOG_UNKNOWN; - switch (level) { - case LIBUSB_LOG_LEVEL_INFO: priority = ANDROID_LOG_INFO; break; - case LIBUSB_LOG_LEVEL_WARNING: priority = ANDROID_LOG_WARN; break; - case LIBUSB_LOG_LEVEL_ERROR: priority = ANDROID_LOG_ERROR; break; - case LIBUSB_LOG_LEVEL_DEBUG: priority = ANDROID_LOG_DEBUG; break; - } - __android_log_write(priority, "libusb", str); -#elif defined(HAVE_SYSLOG_FUNC) - int syslog_level = LOG_INFO; - switch (level) { - case LIBUSB_LOG_LEVEL_INFO: syslog_level = LOG_INFO; break; - case LIBUSB_LOG_LEVEL_WARNING: syslog_level = LOG_WARNING; break; - case LIBUSB_LOG_LEVEL_ERROR: syslog_level = LOG_ERR; break; - case LIBUSB_LOG_LEVEL_DEBUG: syslog_level = LOG_DEBUG; break; - } - syslog(syslog_level, "%s", str); -#else /* All of gcc, Clang, XCode seem to use #warning */ -#warning System logging is not supported on this platform. Logging to stderr will be used instead. - fputs(str, stderr); -#endif -#else - fputs(str, stderr); -#endif /* USE_SYSTEM_LOGGING_FACILITY */ - UNUSED(ctx); - UNUSED(level); -} - -void usbi_log_v(struct libusb_context *ctx, enum libusb_log_level level, - const char *function, const char *format, va_list args) -{ - const char *prefix = ""; - char buf[USBI_MAX_LOG_LEN]; - struct timespec now; - int global_debug, header_len, text_len; - static int has_debug_header_been_displayed = 0; - -#ifdef ENABLE_DEBUG_LOGGING - global_debug = 1; - UNUSED(ctx); -#else - int ctx_level = 0; - - USBI_GET_CONTEXT(ctx); - if (ctx) { - ctx_level = ctx->debug; - } else { - char *dbg = getenv("LIBUSB_DEBUG"); - if (dbg) - ctx_level = atoi(dbg); - } - global_debug = (ctx_level == LIBUSB_LOG_LEVEL_DEBUG); - if (!ctx_level) - return; - if (level == LIBUSB_LOG_LEVEL_WARNING && ctx_level < LIBUSB_LOG_LEVEL_WARNING) - return; - if (level == LIBUSB_LOG_LEVEL_INFO && ctx_level < LIBUSB_LOG_LEVEL_INFO) - return; - if (level == LIBUSB_LOG_LEVEL_DEBUG && ctx_level < LIBUSB_LOG_LEVEL_DEBUG) - return; -#endif - - usbi_backend->clock_gettime(USBI_CLOCK_REALTIME, &now); - if ((global_debug) && (!has_debug_header_been_displayed)) { - has_debug_header_been_displayed = 1; - usbi_log_str(ctx, LIBUSB_LOG_LEVEL_DEBUG, "[timestamp] [threadID] facility level [function call] " USBI_LOG_LINE_END); - usbi_log_str(ctx, LIBUSB_LOG_LEVEL_DEBUG, "--------------------------------------------------------------------------------" USBI_LOG_LINE_END); - } - if (now.tv_nsec < timestamp_origin.tv_nsec) { - now.tv_sec--; - now.tv_nsec += 1000000000L; - } - now.tv_sec -= timestamp_origin.tv_sec; - now.tv_nsec -= timestamp_origin.tv_nsec; - - switch (level) { - case LIBUSB_LOG_LEVEL_INFO: - prefix = "info"; - break; - case LIBUSB_LOG_LEVEL_WARNING: - prefix = "warning"; - break; - case LIBUSB_LOG_LEVEL_ERROR: - prefix = "error"; - break; - case LIBUSB_LOG_LEVEL_DEBUG: - prefix = "debug"; - break; - case LIBUSB_LOG_LEVEL_NONE: - return; - default: - prefix = "unknown"; - break; - } - - if (global_debug) { - header_len = snprintf(buf, sizeof(buf), - "[%2d.%06d] [%08x] libusb: %s [%s] ", - (int)now.tv_sec, (int)(now.tv_nsec / 1000L), usbi_get_tid(), prefix, function); - } else { - header_len = snprintf(buf, sizeof(buf), - "libusb: %s [%s] ", prefix, function); - } - - if (header_len < 0 || header_len >= (int)sizeof(buf)) { - /* Somehow snprintf failed to write to the buffer, - * remove the header so something useful is output. */ - header_len = 0; - } - /* Make sure buffer is NUL terminated */ - buf[header_len] = '\0'; - text_len = vsnprintf(buf + header_len, sizeof(buf) - header_len, - format, args); - if (text_len < 0 || text_len + header_len >= (int)sizeof(buf)) { - /* Truncated log output. On some platforms a -1 return value means - * that the output was truncated. */ - text_len = sizeof(buf) - header_len; - } - if (header_len + text_len + sizeof(USBI_LOG_LINE_END) >= sizeof(buf)) { - /* Need to truncate the text slightly to fit on the terminator. */ - text_len -= (header_len + text_len + sizeof(USBI_LOG_LINE_END)) - sizeof(buf); - } - strcpy(buf + header_len + text_len, USBI_LOG_LINE_END); - - usbi_log_str(ctx, level, buf); -} - -void usbi_log(struct libusb_context *ctx, enum libusb_log_level level, - const char *function, const char *format, ...) -{ - va_list args; - - va_start (args, format); - usbi_log_v(ctx, level, function, format, args); - va_end (args); -} - -/** \ingroup libusb_misc - * Returns a constant NULL-terminated string with the ASCII name of a libusb - * error or transfer status code. The caller must not free() the returned - * string. - * - * \param error_code The \ref libusb_error or libusb_transfer_status code to - * return the name of. - * \returns The error name, or the string **UNKNOWN** if the value of - * error_code is not a known error / status code. - */ -DEFAULT_VISIBILITY const char * LIBUSB_CALL libusb_error_name(int error_code) -{ - switch (error_code) { - case LIBUSB_ERROR_IO: - return "LIBUSB_ERROR_IO"; - case LIBUSB_ERROR_INVALID_PARAM: - return "LIBUSB_ERROR_INVALID_PARAM"; - case LIBUSB_ERROR_ACCESS: - return "LIBUSB_ERROR_ACCESS"; - case LIBUSB_ERROR_NO_DEVICE: - return "LIBUSB_ERROR_NO_DEVICE"; - case LIBUSB_ERROR_NOT_FOUND: - return "LIBUSB_ERROR_NOT_FOUND"; - case LIBUSB_ERROR_BUSY: - return "LIBUSB_ERROR_BUSY"; - case LIBUSB_ERROR_TIMEOUT: - return "LIBUSB_ERROR_TIMEOUT"; - case LIBUSB_ERROR_OVERFLOW: - return "LIBUSB_ERROR_OVERFLOW"; - case LIBUSB_ERROR_PIPE: - return "LIBUSB_ERROR_PIPE"; - case LIBUSB_ERROR_INTERRUPTED: - return "LIBUSB_ERROR_INTERRUPTED"; - case LIBUSB_ERROR_NO_MEM: - return "LIBUSB_ERROR_NO_MEM"; - case LIBUSB_ERROR_NOT_SUPPORTED: - return "LIBUSB_ERROR_NOT_SUPPORTED"; - case LIBUSB_ERROR_OTHER: - return "LIBUSB_ERROR_OTHER"; - - case LIBUSB_TRANSFER_ERROR: - return "LIBUSB_TRANSFER_ERROR"; - case LIBUSB_TRANSFER_TIMED_OUT: - return "LIBUSB_TRANSFER_TIMED_OUT"; - case LIBUSB_TRANSFER_CANCELLED: - return "LIBUSB_TRANSFER_CANCELLED"; - case LIBUSB_TRANSFER_STALL: - return "LIBUSB_TRANSFER_STALL"; - case LIBUSB_TRANSFER_NO_DEVICE: - return "LIBUSB_TRANSFER_NO_DEVICE"; - case LIBUSB_TRANSFER_OVERFLOW: - return "LIBUSB_TRANSFER_OVERFLOW"; - - case 0: - return "LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED"; - default: - return "**UNKNOWN**"; - } -} - -/** \ingroup libusb_misc - * Returns a pointer to const struct libusb_version with the version - * (major, minor, micro, nano and rc) of the running library. - */ -DEFAULT_VISIBILITY -const struct libusb_version * LIBUSB_CALL libusb_get_version(void) -{ - return &libusb_version_internal; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/descriptor.c b/vendor/github.com/karalabe/hid/libusb/libusb/descriptor.c deleted file mode 100644 index 4c9435ff..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/descriptor.c +++ /dev/null @@ -1,1191 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode:t ; c-basic-offset:8 -*- */ -/* - * USB descriptor handling functions for libusb - * Copyright © 2007 Daniel Drake - * Copyright © 2001 Johannes Erdfelt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include - -#include "libusbi.h" - -#define DESC_HEADER_LENGTH 2 -#define DEVICE_DESC_LENGTH 18 -#define CONFIG_DESC_LENGTH 9 -#define INTERFACE_DESC_LENGTH 9 -#define ENDPOINT_DESC_LENGTH 7 -#define ENDPOINT_AUDIO_DESC_LENGTH 9 - -/** @defgroup libusb_desc USB descriptors - * This page details how to examine the various standard USB descriptors - * for detected devices - */ - -/* set host_endian if the w values are already in host endian format, - * as opposed to bus endian. */ -int usbi_parse_descriptor(const unsigned char *source, const char *descriptor, - void *dest, int host_endian) -{ - const unsigned char *sp = source; - unsigned char *dp = dest; - uint16_t w; - const char *cp; - uint32_t d; - - for (cp = descriptor; *cp; cp++) { - switch (*cp) { - case 'b': /* 8-bit byte */ - *dp++ = *sp++; - break; - case 'w': /* 16-bit word, convert from little endian to CPU */ - dp += ((uintptr_t)dp & 1); /* Align to word boundary */ - - if (host_endian) { - memcpy(dp, sp, 2); - } else { - w = (sp[1] << 8) | sp[0]; - *((uint16_t *)dp) = w; - } - sp += 2; - dp += 2; - break; - case 'd': /* 32-bit word, convert from little endian to CPU */ - dp += ((uintptr_t)dp & 1); /* Align to word boundary */ - - if (host_endian) { - memcpy(dp, sp, 4); - } else { - d = (sp[3] << 24) | (sp[2] << 16) | - (sp[1] << 8) | sp[0]; - *((uint32_t *)dp) = d; - } - sp += 4; - dp += 4; - break; - case 'u': /* 16 byte UUID */ - memcpy(dp, sp, 16); - sp += 16; - dp += 16; - break; - } - } - - return (int) (sp - source); -} - -static void clear_endpoint(struct libusb_endpoint_descriptor *endpoint) -{ - free((void *) endpoint->extra); -} - -static int parse_endpoint(struct libusb_context *ctx, - struct libusb_endpoint_descriptor *endpoint, unsigned char *buffer, - int size, int host_endian) -{ - struct usb_descriptor_header header; - unsigned char *extra; - unsigned char *begin; - int parsed = 0; - int len; - - if (size < DESC_HEADER_LENGTH) { - usbi_err(ctx, "short endpoint descriptor read %d/%d", - size, DESC_HEADER_LENGTH); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(buffer, "bb", &header, 0); - if (header.bDescriptorType != LIBUSB_DT_ENDPOINT) { - usbi_err(ctx, "unexpected descriptor %x (expected %x)", - header.bDescriptorType, LIBUSB_DT_ENDPOINT); - return parsed; - } - if (header.bLength > size) { - usbi_warn(ctx, "short endpoint descriptor read %d/%d", - size, header.bLength); - return parsed; - } - if (header.bLength >= ENDPOINT_AUDIO_DESC_LENGTH) - usbi_parse_descriptor(buffer, "bbbbwbbb", endpoint, host_endian); - else if (header.bLength >= ENDPOINT_DESC_LENGTH) - usbi_parse_descriptor(buffer, "bbbbwb", endpoint, host_endian); - else { - usbi_err(ctx, "invalid endpoint bLength (%d)", header.bLength); - return LIBUSB_ERROR_IO; - } - - buffer += header.bLength; - size -= header.bLength; - parsed += header.bLength; - - /* Skip over the rest of the Class Specific or Vendor Specific */ - /* descriptors */ - begin = buffer; - while (size >= DESC_HEADER_LENGTH) { - usbi_parse_descriptor(buffer, "bb", &header, 0); - if (header.bLength < DESC_HEADER_LENGTH) { - usbi_err(ctx, "invalid extra ep desc len (%d)", - header.bLength); - return LIBUSB_ERROR_IO; - } else if (header.bLength > size) { - usbi_warn(ctx, "short extra ep desc read %d/%d", - size, header.bLength); - return parsed; - } - - /* If we find another "proper" descriptor then we're done */ - if ((header.bDescriptorType == LIBUSB_DT_ENDPOINT) || - (header.bDescriptorType == LIBUSB_DT_INTERFACE) || - (header.bDescriptorType == LIBUSB_DT_CONFIG) || - (header.bDescriptorType == LIBUSB_DT_DEVICE)) - break; - - usbi_dbg("skipping descriptor %x", header.bDescriptorType); - buffer += header.bLength; - size -= header.bLength; - parsed += header.bLength; - } - - /* Copy any unknown descriptors into a storage area for drivers */ - /* to later parse */ - len = (int)(buffer - begin); - if (!len) { - endpoint->extra = NULL; - endpoint->extra_length = 0; - return parsed; - } - - extra = malloc(len); - endpoint->extra = extra; - if (!extra) { - endpoint->extra_length = 0; - return LIBUSB_ERROR_NO_MEM; - } - - memcpy(extra, begin, len); - endpoint->extra_length = len; - - return parsed; -} - -static void clear_interface(struct libusb_interface *usb_interface) -{ - int i; - int j; - - if (usb_interface->altsetting) { - for (i = 0; i < usb_interface->num_altsetting; i++) { - struct libusb_interface_descriptor *ifp = - (struct libusb_interface_descriptor *) - usb_interface->altsetting + i; - free((void *) ifp->extra); - if (ifp->endpoint) { - for (j = 0; j < ifp->bNumEndpoints; j++) - clear_endpoint((struct libusb_endpoint_descriptor *) - ifp->endpoint + j); - } - free((void *) ifp->endpoint); - } - } - free((void *) usb_interface->altsetting); - usb_interface->altsetting = NULL; -} - -static int parse_interface(libusb_context *ctx, - struct libusb_interface *usb_interface, unsigned char *buffer, int size, - int host_endian) -{ - int i; - int len; - int r; - int parsed = 0; - int interface_number = -1; - struct usb_descriptor_header header; - struct libusb_interface_descriptor *ifp; - unsigned char *begin; - - usb_interface->num_altsetting = 0; - - while (size >= INTERFACE_DESC_LENGTH) { - struct libusb_interface_descriptor *altsetting = - (struct libusb_interface_descriptor *) usb_interface->altsetting; - altsetting = usbi_reallocf(altsetting, - sizeof(struct libusb_interface_descriptor) * - (usb_interface->num_altsetting + 1)); - if (!altsetting) { - r = LIBUSB_ERROR_NO_MEM; - goto err; - } - usb_interface->altsetting = altsetting; - - ifp = altsetting + usb_interface->num_altsetting; - usbi_parse_descriptor(buffer, "bbbbbbbbb", ifp, 0); - if (ifp->bDescriptorType != LIBUSB_DT_INTERFACE) { - usbi_err(ctx, "unexpected descriptor %x (expected %x)", - ifp->bDescriptorType, LIBUSB_DT_INTERFACE); - return parsed; - } - if (ifp->bLength < INTERFACE_DESC_LENGTH) { - usbi_err(ctx, "invalid interface bLength (%d)", - ifp->bLength); - r = LIBUSB_ERROR_IO; - goto err; - } - if (ifp->bLength > size) { - usbi_warn(ctx, "short intf descriptor read %d/%d", - size, ifp->bLength); - return parsed; - } - if (ifp->bNumEndpoints > USB_MAXENDPOINTS) { - usbi_err(ctx, "too many endpoints (%d)", ifp->bNumEndpoints); - r = LIBUSB_ERROR_IO; - goto err; - } - - usb_interface->num_altsetting++; - ifp->extra = NULL; - ifp->extra_length = 0; - ifp->endpoint = NULL; - - if (interface_number == -1) - interface_number = ifp->bInterfaceNumber; - - /* Skip over the interface */ - buffer += ifp->bLength; - parsed += ifp->bLength; - size -= ifp->bLength; - - begin = buffer; - - /* Skip over any interface, class or vendor descriptors */ - while (size >= DESC_HEADER_LENGTH) { - usbi_parse_descriptor(buffer, "bb", &header, 0); - if (header.bLength < DESC_HEADER_LENGTH) { - usbi_err(ctx, - "invalid extra intf desc len (%d)", - header.bLength); - r = LIBUSB_ERROR_IO; - goto err; - } else if (header.bLength > size) { - usbi_warn(ctx, - "short extra intf desc read %d/%d", - size, header.bLength); - return parsed; - } - - /* If we find another "proper" descriptor then we're done */ - if ((header.bDescriptorType == LIBUSB_DT_INTERFACE) || - (header.bDescriptorType == LIBUSB_DT_ENDPOINT) || - (header.bDescriptorType == LIBUSB_DT_CONFIG) || - (header.bDescriptorType == LIBUSB_DT_DEVICE)) - break; - - buffer += header.bLength; - parsed += header.bLength; - size -= header.bLength; - } - - /* Copy any unknown descriptors into a storage area for */ - /* drivers to later parse */ - len = (int)(buffer - begin); - if (len) { - ifp->extra = malloc(len); - if (!ifp->extra) { - r = LIBUSB_ERROR_NO_MEM; - goto err; - } - memcpy((unsigned char *) ifp->extra, begin, len); - ifp->extra_length = len; - } - - if (ifp->bNumEndpoints > 0) { - struct libusb_endpoint_descriptor *endpoint; - endpoint = calloc(ifp->bNumEndpoints, sizeof(struct libusb_endpoint_descriptor)); - ifp->endpoint = endpoint; - if (!endpoint) { - r = LIBUSB_ERROR_NO_MEM; - goto err; - } - - for (i = 0; i < ifp->bNumEndpoints; i++) { - r = parse_endpoint(ctx, endpoint + i, buffer, size, - host_endian); - if (r < 0) - goto err; - if (r == 0) { - ifp->bNumEndpoints = (uint8_t)i; - break;; - } - - buffer += r; - parsed += r; - size -= r; - } - } - - /* We check to see if it's an alternate to this one */ - ifp = (struct libusb_interface_descriptor *) buffer; - if (size < LIBUSB_DT_INTERFACE_SIZE || - ifp->bDescriptorType != LIBUSB_DT_INTERFACE || - ifp->bInterfaceNumber != interface_number) - return parsed; - } - - return parsed; -err: - clear_interface(usb_interface); - return r; -} - -static void clear_configuration(struct libusb_config_descriptor *config) -{ - int i; - if (config->interface) { - for (i = 0; i < config->bNumInterfaces; i++) - clear_interface((struct libusb_interface *) - config->interface + i); - } - free((void *) config->interface); - free((void *) config->extra); -} - -static int parse_configuration(struct libusb_context *ctx, - struct libusb_config_descriptor *config, unsigned char *buffer, - int size, int host_endian) -{ - int i; - int r; - struct usb_descriptor_header header; - struct libusb_interface *usb_interface; - - if (size < LIBUSB_DT_CONFIG_SIZE) { - usbi_err(ctx, "short config descriptor read %d/%d", - size, LIBUSB_DT_CONFIG_SIZE); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(buffer, "bbwbbbbb", config, host_endian); - if (config->bDescriptorType != LIBUSB_DT_CONFIG) { - usbi_err(ctx, "unexpected descriptor %x (expected %x)", - config->bDescriptorType, LIBUSB_DT_CONFIG); - return LIBUSB_ERROR_IO; - } - if (config->bLength < LIBUSB_DT_CONFIG_SIZE) { - usbi_err(ctx, "invalid config bLength (%d)", config->bLength); - return LIBUSB_ERROR_IO; - } - if (config->bLength > size) { - usbi_err(ctx, "short config descriptor read %d/%d", - size, config->bLength); - return LIBUSB_ERROR_IO; - } - if (config->bNumInterfaces > USB_MAXINTERFACES) { - usbi_err(ctx, "too many interfaces (%d)", config->bNumInterfaces); - return LIBUSB_ERROR_IO; - } - - usb_interface = calloc(config->bNumInterfaces, sizeof(struct libusb_interface)); - config->interface = usb_interface; - if (!usb_interface) - return LIBUSB_ERROR_NO_MEM; - - buffer += config->bLength; - size -= config->bLength; - - config->extra = NULL; - config->extra_length = 0; - - for (i = 0; i < config->bNumInterfaces; i++) { - int len; - unsigned char *begin; - - /* Skip over the rest of the Class Specific or Vendor */ - /* Specific descriptors */ - begin = buffer; - while (size >= DESC_HEADER_LENGTH) { - usbi_parse_descriptor(buffer, "bb", &header, 0); - - if (header.bLength < DESC_HEADER_LENGTH) { - usbi_err(ctx, - "invalid extra config desc len (%d)", - header.bLength); - r = LIBUSB_ERROR_IO; - goto err; - } else if (header.bLength > size) { - usbi_warn(ctx, - "short extra config desc read %d/%d", - size, header.bLength); - config->bNumInterfaces = (uint8_t)i; - return size; - } - - /* If we find another "proper" descriptor then we're done */ - if ((header.bDescriptorType == LIBUSB_DT_ENDPOINT) || - (header.bDescriptorType == LIBUSB_DT_INTERFACE) || - (header.bDescriptorType == LIBUSB_DT_CONFIG) || - (header.bDescriptorType == LIBUSB_DT_DEVICE)) - break; - - usbi_dbg("skipping descriptor 0x%x", header.bDescriptorType); - buffer += header.bLength; - size -= header.bLength; - } - - /* Copy any unknown descriptors into a storage area for */ - /* drivers to later parse */ - len = (int)(buffer - begin); - if (len) { - /* FIXME: We should realloc and append here */ - if (!config->extra_length) { - config->extra = malloc(len); - if (!config->extra) { - r = LIBUSB_ERROR_NO_MEM; - goto err; - } - - memcpy((unsigned char *) config->extra, begin, len); - config->extra_length = len; - } - } - - r = parse_interface(ctx, usb_interface + i, buffer, size, host_endian); - if (r < 0) - goto err; - if (r == 0) { - config->bNumInterfaces = (uint8_t)i; - break; - } - - buffer += r; - size -= r; - } - - return size; - -err: - clear_configuration(config); - return r; -} - -static int raw_desc_to_config(struct libusb_context *ctx, - unsigned char *buf, int size, int host_endian, - struct libusb_config_descriptor **config) -{ - struct libusb_config_descriptor *_config = malloc(sizeof(*_config)); - int r; - - if (!_config) - return LIBUSB_ERROR_NO_MEM; - - r = parse_configuration(ctx, _config, buf, size, host_endian); - if (r < 0) { - usbi_err(ctx, "parse_configuration failed with error %d", r); - free(_config); - return r; - } else if (r > 0) { - usbi_warn(ctx, "still %d bytes of descriptor data left", r); - } - - *config = _config; - return LIBUSB_SUCCESS; -} - -int usbi_device_cache_descriptor(libusb_device *dev) -{ - int r, host_endian = 0; - - r = usbi_backend->get_device_descriptor(dev, (unsigned char *) &dev->device_descriptor, - &host_endian); - if (r < 0) - return r; - - if (!host_endian) { - dev->device_descriptor.bcdUSB = libusb_le16_to_cpu(dev->device_descriptor.bcdUSB); - dev->device_descriptor.idVendor = libusb_le16_to_cpu(dev->device_descriptor.idVendor); - dev->device_descriptor.idProduct = libusb_le16_to_cpu(dev->device_descriptor.idProduct); - dev->device_descriptor.bcdDevice = libusb_le16_to_cpu(dev->device_descriptor.bcdDevice); - } - - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_desc - * Get the USB device descriptor for a given device. - * - * This is a non-blocking function; the device descriptor is cached in memory. - * - * Note since libusb-1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102, this - * function always succeeds. - * - * \param dev the device - * \param desc output location for the descriptor data - * \returns 0 on success or a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_get_device_descriptor(libusb_device *dev, - struct libusb_device_descriptor *desc) -{ - usbi_dbg(""); - memcpy((unsigned char *) desc, (unsigned char *) &dev->device_descriptor, - sizeof (dev->device_descriptor)); - return 0; -} - -/** \ingroup libusb_desc - * Get the USB configuration descriptor for the currently active configuration. - * This is a non-blocking function which does not involve any requests being - * sent to the device. - * - * \param dev a device - * \param config output location for the USB configuration descriptor. Only - * valid if 0 was returned. Must be freed with libusb_free_config_descriptor() - * after use. - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the device is in unconfigured state - * \returns another LIBUSB_ERROR code on error - * \see libusb_get_config_descriptor - */ -int API_EXPORTED libusb_get_active_config_descriptor(libusb_device *dev, - struct libusb_config_descriptor **config) -{ - struct libusb_config_descriptor _config; - unsigned char tmp[LIBUSB_DT_CONFIG_SIZE]; - unsigned char *buf = NULL; - int host_endian = 0; - int r; - - r = usbi_backend->get_active_config_descriptor(dev, tmp, - LIBUSB_DT_CONFIG_SIZE, &host_endian); - if (r < 0) - return r; - if (r < LIBUSB_DT_CONFIG_SIZE) { - usbi_err(dev->ctx, "short config descriptor read %d/%d", - r, LIBUSB_DT_CONFIG_SIZE); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(tmp, "bbw", &_config, host_endian); - buf = malloc(_config.wTotalLength); - if (!buf) - return LIBUSB_ERROR_NO_MEM; - - r = usbi_backend->get_active_config_descriptor(dev, buf, - _config.wTotalLength, &host_endian); - if (r >= 0) - r = raw_desc_to_config(dev->ctx, buf, r, host_endian, config); - - free(buf); - return r; -} - -/** \ingroup libusb_desc - * Get a USB configuration descriptor based on its index. - * This is a non-blocking function which does not involve any requests being - * sent to the device. - * - * \param dev a device - * \param config_index the index of the configuration you wish to retrieve - * \param config output location for the USB configuration descriptor. Only - * valid if 0 was returned. Must be freed with libusb_free_config_descriptor() - * after use. - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the configuration does not exist - * \returns another LIBUSB_ERROR code on error - * \see libusb_get_active_config_descriptor() - * \see libusb_get_config_descriptor_by_value() - */ -int API_EXPORTED libusb_get_config_descriptor(libusb_device *dev, - uint8_t config_index, struct libusb_config_descriptor **config) -{ - struct libusb_config_descriptor _config; - unsigned char tmp[LIBUSB_DT_CONFIG_SIZE]; - unsigned char *buf = NULL; - int host_endian = 0; - int r; - - usbi_dbg("index %d", config_index); - if (config_index >= dev->num_configurations) - return LIBUSB_ERROR_NOT_FOUND; - - r = usbi_backend->get_config_descriptor(dev, config_index, tmp, - LIBUSB_DT_CONFIG_SIZE, &host_endian); - if (r < 0) - return r; - if (r < LIBUSB_DT_CONFIG_SIZE) { - usbi_err(dev->ctx, "short config descriptor read %d/%d", - r, LIBUSB_DT_CONFIG_SIZE); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(tmp, "bbw", &_config, host_endian); - buf = malloc(_config.wTotalLength); - if (!buf) - return LIBUSB_ERROR_NO_MEM; - - r = usbi_backend->get_config_descriptor(dev, config_index, buf, - _config.wTotalLength, &host_endian); - if (r >= 0) - r = raw_desc_to_config(dev->ctx, buf, r, host_endian, config); - - free(buf); - return r; -} - -/* iterate through all configurations, returning the index of the configuration - * matching a specific bConfigurationValue in the idx output parameter, or -1 - * if the config was not found. - * returns 0 on success or a LIBUSB_ERROR code - */ -int usbi_get_config_index_by_value(struct libusb_device *dev, - uint8_t bConfigurationValue, int *idx) -{ - uint8_t i; - - usbi_dbg("value %d", bConfigurationValue); - for (i = 0; i < dev->num_configurations; i++) { - unsigned char tmp[6]; - int host_endian; - int r = usbi_backend->get_config_descriptor(dev, i, tmp, sizeof(tmp), - &host_endian); - if (r < 0) { - *idx = -1; - return r; - } - if (tmp[5] == bConfigurationValue) { - *idx = i; - return 0; - } - } - - *idx = -1; - return 0; -} - -/** \ingroup libusb_desc - * Get a USB configuration descriptor with a specific bConfigurationValue. - * This is a non-blocking function which does not involve any requests being - * sent to the device. - * - * \param dev a device - * \param bConfigurationValue the bConfigurationValue of the configuration you - * wish to retrieve - * \param config output location for the USB configuration descriptor. Only - * valid if 0 was returned. Must be freed with libusb_free_config_descriptor() - * after use. - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the configuration does not exist - * \returns another LIBUSB_ERROR code on error - * \see libusb_get_active_config_descriptor() - * \see libusb_get_config_descriptor() - */ -int API_EXPORTED libusb_get_config_descriptor_by_value(libusb_device *dev, - uint8_t bConfigurationValue, struct libusb_config_descriptor **config) -{ - int r, idx, host_endian; - unsigned char *buf = NULL; - - if (usbi_backend->get_config_descriptor_by_value) { - r = usbi_backend->get_config_descriptor_by_value(dev, - bConfigurationValue, &buf, &host_endian); - if (r < 0) - return r; - return raw_desc_to_config(dev->ctx, buf, r, host_endian, config); - } - - r = usbi_get_config_index_by_value(dev, bConfigurationValue, &idx); - if (r < 0) - return r; - else if (idx == -1) - return LIBUSB_ERROR_NOT_FOUND; - else - return libusb_get_config_descriptor(dev, (uint8_t) idx, config); -} - -/** \ingroup libusb_desc - * Free a configuration descriptor obtained from - * libusb_get_active_config_descriptor() or libusb_get_config_descriptor(). - * It is safe to call this function with a NULL config parameter, in which - * case the function simply returns. - * - * \param config the configuration descriptor to free - */ -void API_EXPORTED libusb_free_config_descriptor( - struct libusb_config_descriptor *config) -{ - if (!config) - return; - - clear_configuration(config); - free(config); -} - -/** \ingroup libusb_desc - * Get an endpoints superspeed endpoint companion descriptor (if any) - * - * \param ctx the context to operate on, or NULL for the default context - * \param endpoint endpoint descriptor from which to get the superspeed - * endpoint companion descriptor - * \param ep_comp output location for the superspeed endpoint companion - * descriptor. Only valid if 0 was returned. Must be freed with - * libusb_free_ss_endpoint_companion_descriptor() after use. - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the configuration does not exist - * \returns another LIBUSB_ERROR code on error - */ -int API_EXPORTED libusb_get_ss_endpoint_companion_descriptor( - struct libusb_context *ctx, - const struct libusb_endpoint_descriptor *endpoint, - struct libusb_ss_endpoint_companion_descriptor **ep_comp) -{ - struct usb_descriptor_header header; - int size = endpoint->extra_length; - const unsigned char *buffer = endpoint->extra; - - *ep_comp = NULL; - - while (size >= DESC_HEADER_LENGTH) { - usbi_parse_descriptor(buffer, "bb", &header, 0); - if (header.bLength < 2 || header.bLength > size) { - usbi_err(ctx, "invalid descriptor length %d", - header.bLength); - return LIBUSB_ERROR_IO; - } - if (header.bDescriptorType != LIBUSB_DT_SS_ENDPOINT_COMPANION) { - buffer += header.bLength; - size -= header.bLength; - continue; - } - if (header.bLength < LIBUSB_DT_SS_ENDPOINT_COMPANION_SIZE) { - usbi_err(ctx, "invalid ss-ep-comp-desc length %d", - header.bLength); - return LIBUSB_ERROR_IO; - } - *ep_comp = malloc(sizeof(**ep_comp)); - if (*ep_comp == NULL) - return LIBUSB_ERROR_NO_MEM; - usbi_parse_descriptor(buffer, "bbbbw", *ep_comp, 0); - return LIBUSB_SUCCESS; - } - return LIBUSB_ERROR_NOT_FOUND; -} - -/** \ingroup libusb_desc - * Free a superspeed endpoint companion descriptor obtained from - * libusb_get_ss_endpoint_companion_descriptor(). - * It is safe to call this function with a NULL ep_comp parameter, in which - * case the function simply returns. - * - * \param ep_comp the superspeed endpoint companion descriptor to free - */ -void API_EXPORTED libusb_free_ss_endpoint_companion_descriptor( - struct libusb_ss_endpoint_companion_descriptor *ep_comp) -{ - free(ep_comp); -} - -static int parse_bos(struct libusb_context *ctx, - struct libusb_bos_descriptor **bos, - unsigned char *buffer, int size, int host_endian) -{ - struct libusb_bos_descriptor bos_header, *_bos; - struct libusb_bos_dev_capability_descriptor dev_cap; - int i; - - if (size < LIBUSB_DT_BOS_SIZE) { - usbi_err(ctx, "short bos descriptor read %d/%d", - size, LIBUSB_DT_BOS_SIZE); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(buffer, "bbwb", &bos_header, host_endian); - if (bos_header.bDescriptorType != LIBUSB_DT_BOS) { - usbi_err(ctx, "unexpected descriptor %x (expected %x)", - bos_header.bDescriptorType, LIBUSB_DT_BOS); - return LIBUSB_ERROR_IO; - } - if (bos_header.bLength < LIBUSB_DT_BOS_SIZE) { - usbi_err(ctx, "invalid bos bLength (%d)", bos_header.bLength); - return LIBUSB_ERROR_IO; - } - if (bos_header.bLength > size) { - usbi_err(ctx, "short bos descriptor read %d/%d", - size, bos_header.bLength); - return LIBUSB_ERROR_IO; - } - - _bos = calloc (1, - sizeof(*_bos) + bos_header.bNumDeviceCaps * sizeof(void *)); - if (!_bos) - return LIBUSB_ERROR_NO_MEM; - - usbi_parse_descriptor(buffer, "bbwb", _bos, host_endian); - buffer += bos_header.bLength; - size -= bos_header.bLength; - - /* Get the device capability descriptors */ - for (i = 0; i < bos_header.bNumDeviceCaps; i++) { - if (size < LIBUSB_DT_DEVICE_CAPABILITY_SIZE) { - usbi_warn(ctx, "short dev-cap descriptor read %d/%d", - size, LIBUSB_DT_DEVICE_CAPABILITY_SIZE); - break; - } - usbi_parse_descriptor(buffer, "bbb", &dev_cap, host_endian); - if (dev_cap.bDescriptorType != LIBUSB_DT_DEVICE_CAPABILITY) { - usbi_warn(ctx, "unexpected descriptor %x (expected %x)", - dev_cap.bDescriptorType, LIBUSB_DT_DEVICE_CAPABILITY); - break; - } - if (dev_cap.bLength < LIBUSB_DT_DEVICE_CAPABILITY_SIZE) { - usbi_err(ctx, "invalid dev-cap bLength (%d)", - dev_cap.bLength); - libusb_free_bos_descriptor(_bos); - return LIBUSB_ERROR_IO; - } - if (dev_cap.bLength > size) { - usbi_warn(ctx, "short dev-cap descriptor read %d/%d", - size, dev_cap.bLength); - break; - } - - _bos->dev_capability[i] = malloc(dev_cap.bLength); - if (!_bos->dev_capability[i]) { - libusb_free_bos_descriptor(_bos); - return LIBUSB_ERROR_NO_MEM; - } - memcpy(_bos->dev_capability[i], buffer, dev_cap.bLength); - buffer += dev_cap.bLength; - size -= dev_cap.bLength; - } - _bos->bNumDeviceCaps = (uint8_t)i; - *bos = _bos; - - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_desc - * Get a Binary Object Store (BOS) descriptor - * This is a BLOCKING function, which will send requests to the device. - * - * \param dev_handle the handle of an open libusb device - * \param bos output location for the BOS descriptor. Only valid if 0 was returned. - * Must be freed with \ref libusb_free_bos_descriptor() after use. - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the device doesn't have a BOS descriptor - * \returns another LIBUSB_ERROR code on error - */ -int API_EXPORTED libusb_get_bos_descriptor(libusb_device_handle *dev_handle, - struct libusb_bos_descriptor **bos) -{ - struct libusb_bos_descriptor _bos; - uint8_t bos_header[LIBUSB_DT_BOS_SIZE] = {0}; - unsigned char *bos_data = NULL; - const int host_endian = 0; - int r; - - /* Read the BOS. This generates 2 requests on the bus, - * one for the header, and one for the full BOS */ - r = libusb_get_descriptor(dev_handle, LIBUSB_DT_BOS, 0, bos_header, - LIBUSB_DT_BOS_SIZE); - if (r < 0) { - if (r != LIBUSB_ERROR_PIPE) - usbi_err(HANDLE_CTX(dev_handle), "failed to read BOS (%d)", r); - return r; - } - if (r < LIBUSB_DT_BOS_SIZE) { - usbi_err(HANDLE_CTX(dev_handle), "short BOS read %d/%d", - r, LIBUSB_DT_BOS_SIZE); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(bos_header, "bbwb", &_bos, host_endian); - usbi_dbg("found BOS descriptor: size %d bytes, %d capabilities", - _bos.wTotalLength, _bos.bNumDeviceCaps); - bos_data = calloc(_bos.wTotalLength, 1); - if (bos_data == NULL) - return LIBUSB_ERROR_NO_MEM; - - r = libusb_get_descriptor(dev_handle, LIBUSB_DT_BOS, 0, bos_data, - _bos.wTotalLength); - if (r >= 0) - r = parse_bos(HANDLE_CTX(dev_handle), bos, bos_data, r, host_endian); - else - usbi_err(HANDLE_CTX(dev_handle), "failed to read BOS (%d)", r); - - free(bos_data); - return r; -} - -/** \ingroup libusb_desc - * Free a BOS descriptor obtained from libusb_get_bos_descriptor(). - * It is safe to call this function with a NULL bos parameter, in which - * case the function simply returns. - * - * \param bos the BOS descriptor to free - */ -void API_EXPORTED libusb_free_bos_descriptor(struct libusb_bos_descriptor *bos) -{ - int i; - - if (!bos) - return; - - for (i = 0; i < bos->bNumDeviceCaps; i++) - free(bos->dev_capability[i]); - free(bos); -} - -/** \ingroup libusb_desc - * Get an USB 2.0 Extension descriptor - * - * \param ctx the context to operate on, or NULL for the default context - * \param dev_cap Device Capability descriptor with a bDevCapabilityType of - * \ref libusb_capability_type::LIBUSB_BT_USB_2_0_EXTENSION - * LIBUSB_BT_USB_2_0_EXTENSION - * \param usb_2_0_extension output location for the USB 2.0 Extension - * descriptor. Only valid if 0 was returned. Must be freed with - * libusb_free_usb_2_0_extension_descriptor() after use. - * \returns 0 on success - * \returns a LIBUSB_ERROR code on error - */ -int API_EXPORTED libusb_get_usb_2_0_extension_descriptor( - struct libusb_context *ctx, - struct libusb_bos_dev_capability_descriptor *dev_cap, - struct libusb_usb_2_0_extension_descriptor **usb_2_0_extension) -{ - struct libusb_usb_2_0_extension_descriptor *_usb_2_0_extension; - const int host_endian = 0; - - if (dev_cap->bDevCapabilityType != LIBUSB_BT_USB_2_0_EXTENSION) { - usbi_err(ctx, "unexpected bDevCapabilityType %x (expected %x)", - dev_cap->bDevCapabilityType, - LIBUSB_BT_USB_2_0_EXTENSION); - return LIBUSB_ERROR_INVALID_PARAM; - } - if (dev_cap->bLength < LIBUSB_BT_USB_2_0_EXTENSION_SIZE) { - usbi_err(ctx, "short dev-cap descriptor read %d/%d", - dev_cap->bLength, LIBUSB_BT_USB_2_0_EXTENSION_SIZE); - return LIBUSB_ERROR_IO; - } - - _usb_2_0_extension = malloc(sizeof(*_usb_2_0_extension)); - if (!_usb_2_0_extension) - return LIBUSB_ERROR_NO_MEM; - - usbi_parse_descriptor((unsigned char *)dev_cap, "bbbd", - _usb_2_0_extension, host_endian); - - *usb_2_0_extension = _usb_2_0_extension; - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_desc - * Free a USB 2.0 Extension descriptor obtained from - * libusb_get_usb_2_0_extension_descriptor(). - * It is safe to call this function with a NULL usb_2_0_extension parameter, - * in which case the function simply returns. - * - * \param usb_2_0_extension the USB 2.0 Extension descriptor to free - */ -void API_EXPORTED libusb_free_usb_2_0_extension_descriptor( - struct libusb_usb_2_0_extension_descriptor *usb_2_0_extension) -{ - free(usb_2_0_extension); -} - -/** \ingroup libusb_desc - * Get a SuperSpeed USB Device Capability descriptor - * - * \param ctx the context to operate on, or NULL for the default context - * \param dev_cap Device Capability descriptor with a bDevCapabilityType of - * \ref libusb_capability_type::LIBUSB_BT_SS_USB_DEVICE_CAPABILITY - * LIBUSB_BT_SS_USB_DEVICE_CAPABILITY - * \param ss_usb_device_cap output location for the SuperSpeed USB Device - * Capability descriptor. Only valid if 0 was returned. Must be freed with - * libusb_free_ss_usb_device_capability_descriptor() after use. - * \returns 0 on success - * \returns a LIBUSB_ERROR code on error - */ -int API_EXPORTED libusb_get_ss_usb_device_capability_descriptor( - struct libusb_context *ctx, - struct libusb_bos_dev_capability_descriptor *dev_cap, - struct libusb_ss_usb_device_capability_descriptor **ss_usb_device_cap) -{ - struct libusb_ss_usb_device_capability_descriptor *_ss_usb_device_cap; - const int host_endian = 0; - - if (dev_cap->bDevCapabilityType != LIBUSB_BT_SS_USB_DEVICE_CAPABILITY) { - usbi_err(ctx, "unexpected bDevCapabilityType %x (expected %x)", - dev_cap->bDevCapabilityType, - LIBUSB_BT_SS_USB_DEVICE_CAPABILITY); - return LIBUSB_ERROR_INVALID_PARAM; - } - if (dev_cap->bLength < LIBUSB_BT_SS_USB_DEVICE_CAPABILITY_SIZE) { - usbi_err(ctx, "short dev-cap descriptor read %d/%d", - dev_cap->bLength, LIBUSB_BT_SS_USB_DEVICE_CAPABILITY_SIZE); - return LIBUSB_ERROR_IO; - } - - _ss_usb_device_cap = malloc(sizeof(*_ss_usb_device_cap)); - if (!_ss_usb_device_cap) - return LIBUSB_ERROR_NO_MEM; - - usbi_parse_descriptor((unsigned char *)dev_cap, "bbbbwbbw", - _ss_usb_device_cap, host_endian); - - *ss_usb_device_cap = _ss_usb_device_cap; - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_desc - * Free a SuperSpeed USB Device Capability descriptor obtained from - * libusb_get_ss_usb_device_capability_descriptor(). - * It is safe to call this function with a NULL ss_usb_device_cap - * parameter, in which case the function simply returns. - * - * \param ss_usb_device_cap the USB 2.0 Extension descriptor to free - */ -void API_EXPORTED libusb_free_ss_usb_device_capability_descriptor( - struct libusb_ss_usb_device_capability_descriptor *ss_usb_device_cap) -{ - free(ss_usb_device_cap); -} - -/** \ingroup libusb_desc - * Get a Container ID descriptor - * - * \param ctx the context to operate on, or NULL for the default context - * \param dev_cap Device Capability descriptor with a bDevCapabilityType of - * \ref libusb_capability_type::LIBUSB_BT_CONTAINER_ID - * LIBUSB_BT_CONTAINER_ID - * \param container_id output location for the Container ID descriptor. - * Only valid if 0 was returned. Must be freed with - * libusb_free_container_id_descriptor() after use. - * \returns 0 on success - * \returns a LIBUSB_ERROR code on error - */ -int API_EXPORTED libusb_get_container_id_descriptor(struct libusb_context *ctx, - struct libusb_bos_dev_capability_descriptor *dev_cap, - struct libusb_container_id_descriptor **container_id) -{ - struct libusb_container_id_descriptor *_container_id; - const int host_endian = 0; - - if (dev_cap->bDevCapabilityType != LIBUSB_BT_CONTAINER_ID) { - usbi_err(ctx, "unexpected bDevCapabilityType %x (expected %x)", - dev_cap->bDevCapabilityType, - LIBUSB_BT_CONTAINER_ID); - return LIBUSB_ERROR_INVALID_PARAM; - } - if (dev_cap->bLength < LIBUSB_BT_CONTAINER_ID_SIZE) { - usbi_err(ctx, "short dev-cap descriptor read %d/%d", - dev_cap->bLength, LIBUSB_BT_CONTAINER_ID_SIZE); - return LIBUSB_ERROR_IO; - } - - _container_id = malloc(sizeof(*_container_id)); - if (!_container_id) - return LIBUSB_ERROR_NO_MEM; - - usbi_parse_descriptor((unsigned char *)dev_cap, "bbbbu", - _container_id, host_endian); - - *container_id = _container_id; - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_desc - * Free a Container ID descriptor obtained from - * libusb_get_container_id_descriptor(). - * It is safe to call this function with a NULL container_id parameter, - * in which case the function simply returns. - * - * \param container_id the USB 2.0 Extension descriptor to free - */ -void API_EXPORTED libusb_free_container_id_descriptor( - struct libusb_container_id_descriptor *container_id) -{ - free(container_id); -} - -/** \ingroup libusb_desc - * Retrieve a string descriptor in C style ASCII. - * - * Wrapper around libusb_get_string_descriptor(). Uses the first language - * supported by the device. - * - * \param dev_handle a device handle - * \param desc_index the index of the descriptor to retrieve - * \param data output buffer for ASCII string descriptor - * \param length size of data buffer - * \returns number of bytes returned in data, or LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_get_string_descriptor_ascii(libusb_device_handle *dev_handle, - uint8_t desc_index, unsigned char *data, int length) -{ - unsigned char tbuf[255]; /* Some devices choke on size > 255 */ - int r, si, di; - uint16_t langid; - - /* Asking for the zero'th index is special - it returns a string - * descriptor that contains all the language IDs supported by the - * device. Typically there aren't many - often only one. Language - * IDs are 16 bit numbers, and they start at the third byte in the - * descriptor. There's also no point in trying to read descriptor 0 - * with this function. See USB 2.0 specification section 9.6.7 for - * more information. - */ - - if (desc_index == 0) - return LIBUSB_ERROR_INVALID_PARAM; - - r = libusb_get_string_descriptor(dev_handle, 0, 0, tbuf, sizeof(tbuf)); - if (r < 0) - return r; - - if (r < 4) - return LIBUSB_ERROR_IO; - - langid = tbuf[2] | (tbuf[3] << 8); - - r = libusb_get_string_descriptor(dev_handle, desc_index, langid, tbuf, - sizeof(tbuf)); - if (r < 0) - return r; - - if (tbuf[1] != LIBUSB_DT_STRING) - return LIBUSB_ERROR_IO; - - if (tbuf[0] > r) - return LIBUSB_ERROR_IO; - - for (di = 0, si = 2; si < tbuf[0]; si += 2) { - if (di >= (length - 1)) - break; - - if ((tbuf[si] & 0x80) || (tbuf[si + 1])) /* non-ASCII */ - data[di++] = '?'; - else - data[di++] = tbuf[si]; - } - - data[di] = 0; - return di; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/hotplug.c b/vendor/github.com/karalabe/hid/libusb/libusb/hotplug.c deleted file mode 100644 index bbfd6e79..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/hotplug.c +++ /dev/null @@ -1,350 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode:t ; c-basic-offset:8 -*- */ -/* - * Hotplug functions for libusb - * Copyright © 2012-2013 Nathan Hjelm - * Copyright © 2012-2013 Peter Stuge - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#include - -#include "libusbi.h" -#include "hotplug.h" - -/** - * @defgroup libusb_hotplug Device hotplug event notification - * This page details how to use the libusb hotplug interface, where available. - * - * Be mindful that not all platforms currently implement hotplug notification and - * that you should first call on \ref libusb_has_capability() with parameter - * \ref LIBUSB_CAP_HAS_HOTPLUG to confirm that hotplug support is available. - * - * \page libusb_hotplug Device hotplug event notification - * - * \section hotplug_intro Introduction - * - * Version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102, has added support - * for hotplug events on some platforms (you should test if your platform - * supports hotplug notification by calling \ref libusb_has_capability() with - * parameter \ref LIBUSB_CAP_HAS_HOTPLUG). - * - * This interface allows you to request notification for the arrival and departure - * of matching USB devices. - * - * To receive hotplug notification you register a callback by calling - * \ref libusb_hotplug_register_callback(). This function will optionally return - * a callback handle that can be passed to \ref libusb_hotplug_deregister_callback(). - * - * A callback function must return an int (0 or 1) indicating whether the callback is - * expecting additional events. Returning 0 will rearm the callback and 1 will cause - * the callback to be deregistered. Note that when callbacks are called from - * libusb_hotplug_register_callback() because of the \ref LIBUSB_HOTPLUG_ENUMERATE - * flag, the callback return value is ignored, iow you cannot cause a callback - * to be deregistered by returning 1 when it is called from - * libusb_hotplug_register_callback(). - * - * Callbacks for a particular context are automatically deregistered by libusb_exit(). - * - * As of 1.0.16 there are two supported hotplug events: - * - LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED: A device has arrived and is ready to use - * - LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT: A device has left and is no longer available - * - * A hotplug event can listen for either or both of these events. - * - * Note: If you receive notification that a device has left and you have any - * a libusb_device_handles for the device it is up to you to call libusb_close() - * on each device handle to free up any remaining resources associated with the device. - * Once a device has left any libusb_device_handle associated with the device - * are invalid and will remain so even if the device comes back. - * - * When handling a LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED event it is considered - * safe to call any libusb function that takes a libusb_device. It also safe to - * open a device and submit asynchronous transfers. However, most other functions - * that take a libusb_device_handle are not safe to call. Examples of such - * functions are any of the \ref libusb_syncio "synchronous API" functions or the blocking - * functions that retrieve various \ref libusb_desc "USB descriptors". These functions must - * be used outside of the context of the hotplug callback. - * - * When handling a LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT event the only safe function - * is libusb_get_device_descriptor(). - * - * The following code provides an example of the usage of the hotplug interface: -\code -#include -#include -#include -#include - -static int count = 0; - -int hotplug_callback(struct libusb_context *ctx, struct libusb_device *dev, - libusb_hotplug_event event, void *user_data) { - static libusb_device_handle *dev_handle = NULL; - struct libusb_device_descriptor desc; - int rc; - - (void)libusb_get_device_descriptor(dev, &desc); - - if (LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED == event) { - rc = libusb_open(dev, &dev_handle); - if (LIBUSB_SUCCESS != rc) { - printf("Could not open USB device\n"); - } - } else if (LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT == event) { - if (dev_handle) { - libusb_close(dev_handle); - dev_handle = NULL; - } - } else { - printf("Unhandled event %d\n", event); - } - count++; - - return 0; -} - -int main (void) { - libusb_hotplug_callback_handle callback_handle; - int rc; - - libusb_init(NULL); - - rc = libusb_hotplug_register_callback(NULL, LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | - LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT, 0, 0x045a, 0x5005, - LIBUSB_HOTPLUG_MATCH_ANY, hotplug_callback, NULL, - &callback_handle); - if (LIBUSB_SUCCESS != rc) { - printf("Error creating a hotplug callback\n"); - libusb_exit(NULL); - return EXIT_FAILURE; - } - - while (count < 2) { - libusb_handle_events_completed(NULL, NULL); - nanosleep(&(struct timespec){0, 10000000UL}, NULL); - } - - libusb_hotplug_deregister_callback(NULL, callback_handle); - libusb_exit(NULL); - - return 0; -} -\endcode - */ - -static int usbi_hotplug_match_cb (struct libusb_context *ctx, - struct libusb_device *dev, libusb_hotplug_event event, - struct libusb_hotplug_callback *hotplug_cb) -{ - /* Handle lazy deregistration of callback */ - if (hotplug_cb->needs_free) { - /* Free callback */ - return 1; - } - - if (!(hotplug_cb->events & event)) { - return 0; - } - - if (LIBUSB_HOTPLUG_MATCH_ANY != hotplug_cb->vendor_id && - hotplug_cb->vendor_id != dev->device_descriptor.idVendor) { - return 0; - } - - if (LIBUSB_HOTPLUG_MATCH_ANY != hotplug_cb->product_id && - hotplug_cb->product_id != dev->device_descriptor.idProduct) { - return 0; - } - - if (LIBUSB_HOTPLUG_MATCH_ANY != hotplug_cb->dev_class && - hotplug_cb->dev_class != dev->device_descriptor.bDeviceClass) { - return 0; - } - - return hotplug_cb->cb (ctx, dev, event, hotplug_cb->user_data); -} - -void usbi_hotplug_match(struct libusb_context *ctx, struct libusb_device *dev, - libusb_hotplug_event event) -{ - struct libusb_hotplug_callback *hotplug_cb, *next; - int ret; - - usbi_mutex_lock(&ctx->hotplug_cbs_lock); - - list_for_each_entry_safe(hotplug_cb, next, &ctx->hotplug_cbs, list, struct libusb_hotplug_callback) { - usbi_mutex_unlock(&ctx->hotplug_cbs_lock); - ret = usbi_hotplug_match_cb (ctx, dev, event, hotplug_cb); - usbi_mutex_lock(&ctx->hotplug_cbs_lock); - - if (ret) { - list_del(&hotplug_cb->list); - free(hotplug_cb); - } - } - - usbi_mutex_unlock(&ctx->hotplug_cbs_lock); - - /* the backend is expected to call the callback for each active transfer */ -} - -void usbi_hotplug_notification(struct libusb_context *ctx, struct libusb_device *dev, - libusb_hotplug_event event) -{ - int pending_events; - libusb_hotplug_message *message = calloc(1, sizeof(*message)); - - if (!message) { - usbi_err(ctx, "error allocating hotplug message"); - return; - } - - message->event = event; - message->device = dev; - - /* Take the event data lock and add this message to the list. - * Only signal an event if there are no prior pending events. */ - usbi_mutex_lock(&ctx->event_data_lock); - pending_events = usbi_pending_events(ctx); - list_add_tail(&message->list, &ctx->hotplug_msgs); - if (!pending_events) - usbi_signal_event(ctx); - usbi_mutex_unlock(&ctx->event_data_lock); -} - -int API_EXPORTED libusb_hotplug_register_callback(libusb_context *ctx, - libusb_hotplug_event events, libusb_hotplug_flag flags, - int vendor_id, int product_id, int dev_class, - libusb_hotplug_callback_fn cb_fn, void *user_data, - libusb_hotplug_callback_handle *callback_handle) -{ - libusb_hotplug_callback *new_callback; - static int handle_id = 1; - - /* check for hotplug support */ - if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { - return LIBUSB_ERROR_NOT_SUPPORTED; - } - - /* check for sane values */ - if ((LIBUSB_HOTPLUG_MATCH_ANY != vendor_id && (~0xffff & vendor_id)) || - (LIBUSB_HOTPLUG_MATCH_ANY != product_id && (~0xffff & product_id)) || - (LIBUSB_HOTPLUG_MATCH_ANY != dev_class && (~0xff & dev_class)) || - !cb_fn) { - return LIBUSB_ERROR_INVALID_PARAM; - } - - USBI_GET_CONTEXT(ctx); - - new_callback = (libusb_hotplug_callback *)calloc(1, sizeof (*new_callback)); - if (!new_callback) { - return LIBUSB_ERROR_NO_MEM; - } - - new_callback->ctx = ctx; - new_callback->vendor_id = vendor_id; - new_callback->product_id = product_id; - new_callback->dev_class = dev_class; - new_callback->flags = flags; - new_callback->events = events; - new_callback->cb = cb_fn; - new_callback->user_data = user_data; - new_callback->needs_free = 0; - - usbi_mutex_lock(&ctx->hotplug_cbs_lock); - - /* protect the handle by the context hotplug lock. it doesn't matter if the same handle - * is used for different contexts only that the handle is unique for this context */ - new_callback->handle = handle_id++; - - list_add(&new_callback->list, &ctx->hotplug_cbs); - - usbi_mutex_unlock(&ctx->hotplug_cbs_lock); - - - if (flags & LIBUSB_HOTPLUG_ENUMERATE) { - int i, len; - struct libusb_device **devs; - - len = (int) libusb_get_device_list(ctx, &devs); - if (len < 0) { - libusb_hotplug_deregister_callback(ctx, - new_callback->handle); - return len; - } - - for (i = 0; i < len; i++) { - usbi_hotplug_match_cb(ctx, devs[i], - LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED, - new_callback); - } - - libusb_free_device_list(devs, 1); - } - - - if (callback_handle) - *callback_handle = new_callback->handle; - - return LIBUSB_SUCCESS; -} - -void API_EXPORTED libusb_hotplug_deregister_callback (struct libusb_context *ctx, - libusb_hotplug_callback_handle callback_handle) -{ - struct libusb_hotplug_callback *hotplug_cb; - - /* check for hotplug support */ - if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { - return; - } - - USBI_GET_CONTEXT(ctx); - - usbi_mutex_lock(&ctx->hotplug_cbs_lock); - list_for_each_entry(hotplug_cb, &ctx->hotplug_cbs, list, - struct libusb_hotplug_callback) { - if (callback_handle == hotplug_cb->handle) { - /* Mark this callback for deregistration */ - hotplug_cb->needs_free = 1; - } - } - usbi_mutex_unlock(&ctx->hotplug_cbs_lock); - - usbi_hotplug_notification(ctx, NULL, 0); -} - -void usbi_hotplug_deregister_all(struct libusb_context *ctx) { - struct libusb_hotplug_callback *hotplug_cb, *next; - - usbi_mutex_lock(&ctx->hotplug_cbs_lock); - list_for_each_entry_safe(hotplug_cb, next, &ctx->hotplug_cbs, list, - struct libusb_hotplug_callback) { - list_del(&hotplug_cb->list); - free(hotplug_cb); - } - - usbi_mutex_unlock(&ctx->hotplug_cbs_lock); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/hotplug.h b/vendor/github.com/karalabe/hid/libusb/libusb/hotplug.h deleted file mode 100644 index 2bec81b0..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/hotplug.h +++ /dev/null @@ -1,90 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode:t ; c-basic-offset:8 -*- */ -/* - * Hotplug support for libusb - * Copyright © 2012-2013 Nathan Hjelm - * Copyright © 2012-2013 Peter Stuge - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#if !defined(USBI_HOTPLUG_H) -#define USBI_HOTPLUG_H - -#ifndef LIBUSBI_H -#include "libusbi.h" -#endif - -/** \ingroup hotplug - * The hotplug callback structure. The user populates this structure with - * libusb_hotplug_prepare_callback() and then calls libusb_hotplug_register_callback() - * to receive notification of hotplug events. - */ -struct libusb_hotplug_callback { - /** Context this callback is associated with */ - struct libusb_context *ctx; - - /** Vendor ID to match or LIBUSB_HOTPLUG_MATCH_ANY */ - int vendor_id; - - /** Product ID to match or LIBUSB_HOTPLUG_MATCH_ANY */ - int product_id; - - /** Device class to match or LIBUSB_HOTPLUG_MATCH_ANY */ - int dev_class; - - /** Hotplug callback flags */ - libusb_hotplug_flag flags; - - /** Event(s) that will trigger this callback */ - libusb_hotplug_event events; - - /** Callback function to invoke for matching event/device */ - libusb_hotplug_callback_fn cb; - - /** Handle for this callback (used to match on deregister) */ - libusb_hotplug_callback_handle handle; - - /** User data that will be passed to the callback function */ - void *user_data; - - /** Callback is marked for deletion */ - int needs_free; - - /** List this callback is registered in (ctx->hotplug_cbs) */ - struct list_head list; -}; - -typedef struct libusb_hotplug_callback libusb_hotplug_callback; - -struct libusb_hotplug_message { - /** The hotplug event that occurred */ - libusb_hotplug_event event; - - /** The device for which this hotplug event occurred */ - struct libusb_device *device; - - /** List this message is contained in (ctx->hotplug_msgs) */ - struct list_head list; -}; - -typedef struct libusb_hotplug_message libusb_hotplug_message; - -void usbi_hotplug_deregister_all(struct libusb_context *ctx); -void usbi_hotplug_match(struct libusb_context *ctx, struct libusb_device *dev, - libusb_hotplug_event event); -void usbi_hotplug_notification(struct libusb_context *ctx, struct libusb_device *dev, - libusb_hotplug_event event); - -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/io.c b/vendor/github.com/karalabe/hid/libusb/libusb/io.c deleted file mode 100644 index eb1eabf1..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/io.c +++ /dev/null @@ -1,2819 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode:t ; c-basic-offset:8 -*- */ -/* - * I/O functions for libusb - * Copyright © 2007-2009 Daniel Drake - * Copyright © 2001 Johannes Erdfelt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include -#include -#include -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef USBI_TIMERFD_AVAILABLE -#include -#endif - -#include "libusbi.h" -#include "hotplug.h" - -/** - * \page libusb_io Synchronous and asynchronous device I/O - * - * \section io_intro Introduction - * - * If you're using libusb in your application, you're probably wanting to - * perform I/O with devices - you want to perform USB data transfers. - * - * libusb offers two separate interfaces for device I/O. This page aims to - * introduce the two in order to help you decide which one is more suitable - * for your application. You can also choose to use both interfaces in your - * application by considering each transfer on a case-by-case basis. - * - * Once you have read through the following discussion, you should consult the - * detailed API documentation pages for the details: - * - \ref libusb_syncio - * - \ref libusb_asyncio - * - * \section theory Transfers at a logical level - * - * At a logical level, USB transfers typically happen in two parts. For - * example, when reading data from a endpoint: - * -# A request for data is sent to the device - * -# Some time later, the incoming data is received by the host - * - * or when writing data to an endpoint: - * - * -# The data is sent to the device - * -# Some time later, the host receives acknowledgement from the device that - * the data has been transferred. - * - * There may be an indefinite delay between the two steps. Consider a - * fictional USB input device with a button that the user can press. In order - * to determine when the button is pressed, you would likely submit a request - * to read data on a bulk or interrupt endpoint and wait for data to arrive. - * Data will arrive when the button is pressed by the user, which is - * potentially hours later. - * - * libusb offers both a synchronous and an asynchronous interface to performing - * USB transfers. The main difference is that the synchronous interface - * combines both steps indicated above into a single function call, whereas - * the asynchronous interface separates them. - * - * \section sync The synchronous interface - * - * The synchronous I/O interface allows you to perform a USB transfer with - * a single function call. When the function call returns, the transfer has - * completed and you can parse the results. - * - * If you have used the libusb-0.1 before, this I/O style will seem familar to - * you. libusb-0.1 only offered a synchronous interface. - * - * In our input device example, to read button presses you might write code - * in the following style: -\code -unsigned char data[4]; -int actual_length; -int r = libusb_bulk_transfer(dev_handle, LIBUSB_ENDPOINT_IN, data, sizeof(data), &actual_length, 0); -if (r == 0 && actual_length == sizeof(data)) { - // results of the transaction can now be found in the data buffer - // parse them here and report button press -} else { - error(); -} -\endcode - * - * The main advantage of this model is simplicity: you did everything with - * a single simple function call. - * - * However, this interface has its limitations. Your application will sleep - * inside libusb_bulk_transfer() until the transaction has completed. If it - * takes the user 3 hours to press the button, your application will be - * sleeping for that long. Execution will be tied up inside the library - - * the entire thread will be useless for that duration. - * - * Another issue is that by tieing up the thread with that single transaction - * there is no possibility of performing I/O with multiple endpoints and/or - * multiple devices simultaneously, unless you resort to creating one thread - * per transaction. - * - * Additionally, there is no opportunity to cancel the transfer after the - * request has been submitted. - * - * For details on how to use the synchronous API, see the - * \ref libusb_syncio "synchronous I/O API documentation" pages. - * - * \section async The asynchronous interface - * - * Asynchronous I/O is the most significant new feature in libusb-1.0. - * Although it is a more complex interface, it solves all the issues detailed - * above. - * - * Instead of providing which functions that block until the I/O has complete, - * libusb's asynchronous interface presents non-blocking functions which - * begin a transfer and then return immediately. Your application passes a - * callback function pointer to this non-blocking function, which libusb will - * call with the results of the transaction when it has completed. - * - * Transfers which have been submitted through the non-blocking functions - * can be cancelled with a separate function call. - * - * The non-blocking nature of this interface allows you to be simultaneously - * performing I/O to multiple endpoints on multiple devices, without having - * to use threads. - * - * This added flexibility does come with some complications though: - * - In the interest of being a lightweight library, libusb does not create - * threads and can only operate when your application is calling into it. Your - * application must call into libusb from it's main loop when events are ready - * to be handled, or you must use some other scheme to allow libusb to - * undertake whatever work needs to be done. - * - libusb also needs to be called into at certain fixed points in time in - * order to accurately handle transfer timeouts. - * - Memory handling becomes more complex. You cannot use stack memory unless - * the function with that stack is guaranteed not to return until the transfer - * callback has finished executing. - * - You generally lose some linearity from your code flow because submitting - * the transfer request is done in a separate function from where the transfer - * results are handled. This becomes particularly obvious when you want to - * submit a second transfer based on the results of an earlier transfer. - * - * Internally, libusb's synchronous interface is expressed in terms of function - * calls to the asynchronous interface. - * - * For details on how to use the asynchronous API, see the - * \ref libusb_asyncio "asynchronous I/O API" documentation pages. - */ - - -/** - * \page libusb_packetoverflow Packets and overflows - * - * \section packets Packet abstraction - * - * The USB specifications describe how data is transmitted in packets, with - * constraints on packet size defined by endpoint descriptors. The host must - * not send data payloads larger than the endpoint's maximum packet size. - * - * libusb and the underlying OS abstract out the packet concept, allowing you - * to request transfers of any size. Internally, the request will be divided - * up into correctly-sized packets. You do not have to be concerned with - * packet sizes, but there is one exception when considering overflows. - * - * \section overflow Bulk/interrupt transfer overflows - * - * When requesting data on a bulk endpoint, libusb requires you to supply a - * buffer and the maximum number of bytes of data that libusb can put in that - * buffer. However, the size of the buffer is not communicated to the device - - * the device is just asked to send any amount of data. - * - * There is no problem if the device sends an amount of data that is less than - * or equal to the buffer size. libusb reports this condition to you through - * the \ref libusb_transfer::actual_length "libusb_transfer.actual_length" - * field. - * - * Problems may occur if the device attempts to send more data than can fit in - * the buffer. libusb reports LIBUSB_TRANSFER_OVERFLOW for this condition but - * other behaviour is largely undefined: actual_length may or may not be - * accurate, the chunk of data that can fit in the buffer (before overflow) - * may or may not have been transferred. - * - * Overflows are nasty, but can be avoided. Even though you were told to - * ignore packets above, think about the lower level details: each transfer is - * split into packets (typically small, with a maximum size of 512 bytes). - * Overflows can only happen if the final packet in an incoming data transfer - * is smaller than the actual packet that the device wants to transfer. - * Therefore, you will never see an overflow if your transfer buffer size is a - * multiple of the endpoint's packet size: the final packet will either - * fill up completely or will be only partially filled. - */ - -/** - * @defgroup libusb_asyncio Asynchronous device I/O - * - * This page details libusb's asynchronous (non-blocking) API for USB device - * I/O. This interface is very powerful but is also quite complex - you will - * need to read this page carefully to understand the necessary considerations - * and issues surrounding use of this interface. Simplistic applications - * may wish to consider the \ref libusb_syncio "synchronous I/O API" instead. - * - * The asynchronous interface is built around the idea of separating transfer - * submission and handling of transfer completion (the synchronous model - * combines both of these into one). There may be a long delay between - * submission and completion, however the asynchronous submission function - * is non-blocking so will return control to your application during that - * potentially long delay. - * - * \section asyncabstraction Transfer abstraction - * - * For the asynchronous I/O, libusb implements the concept of a generic - * transfer entity for all types of I/O (control, bulk, interrupt, - * isochronous). The generic transfer object must be treated slightly - * differently depending on which type of I/O you are performing with it. - * - * This is represented by the public libusb_transfer structure type. - * - * \section asynctrf Asynchronous transfers - * - * We can view asynchronous I/O as a 5 step process: - * -# Allocation: allocate a libusb_transfer - * -# Filling: populate the libusb_transfer instance with information - * about the transfer you wish to perform - * -# Submission: ask libusb to submit the transfer - * -# Completion handling: examine transfer results in the - * libusb_transfer structure - * -# Deallocation: clean up resources - * - * - * \subsection asyncalloc Allocation - * - * This step involves allocating memory for a USB transfer. This is the - * generic transfer object mentioned above. At this stage, the transfer - * is "blank" with no details about what type of I/O it will be used for. - * - * Allocation is done with the libusb_alloc_transfer() function. You must use - * this function rather than allocating your own transfers. - * - * \subsection asyncfill Filling - * - * This step is where you take a previously allocated transfer and fill it - * with information to determine the message type and direction, data buffer, - * callback function, etc. - * - * You can either fill the required fields yourself or you can use the - * helper functions: libusb_fill_control_transfer(), libusb_fill_bulk_transfer() - * and libusb_fill_interrupt_transfer(). - * - * \subsection asyncsubmit Submission - * - * When you have allocated a transfer and filled it, you can submit it using - * libusb_submit_transfer(). This function returns immediately but can be - * regarded as firing off the I/O request in the background. - * - * \subsection asynccomplete Completion handling - * - * After a transfer has been submitted, one of four things can happen to it: - * - * - The transfer completes (i.e. some data was transferred) - * - The transfer has a timeout and the timeout expires before all data is - * transferred - * - The transfer fails due to an error - * - The transfer is cancelled - * - * Each of these will cause the user-specified transfer callback function to - * be invoked. It is up to the callback function to determine which of the - * above actually happened and to act accordingly. - * - * The user-specified callback is passed a pointer to the libusb_transfer - * structure which was used to setup and submit the transfer. At completion - * time, libusb has populated this structure with results of the transfer: - * success or failure reason, number of bytes of data transferred, etc. See - * the libusb_transfer structure documentation for more information. - * - * Important Note: The user-specified callback is called from an event - * handling context. It is therefore important that no calls are made into - * libusb that will attempt to perform any event handling. Examples of such - * functions are any listed in the \ref libusb_syncio "synchronous API" and any of - * the blocking functions that retrieve \ref libusb_desc "USB descriptors". - * - * \subsection Deallocation - * - * When a transfer has completed (i.e. the callback function has been invoked), - * you are advised to free the transfer (unless you wish to resubmit it, see - * below). Transfers are deallocated with libusb_free_transfer(). - * - * It is undefined behaviour to free a transfer which has not completed. - * - * \section asyncresubmit Resubmission - * - * You may be wondering why allocation, filling, and submission are all - * separated above where they could reasonably be combined into a single - * operation. - * - * The reason for separation is to allow you to resubmit transfers without - * having to allocate new ones every time. This is especially useful for - * common situations dealing with interrupt endpoints - you allocate one - * transfer, fill and submit it, and when it returns with results you just - * resubmit it for the next interrupt. - * - * \section asynccancel Cancellation - * - * Another advantage of using the asynchronous interface is that you have - * the ability to cancel transfers which have not yet completed. This is - * done by calling the libusb_cancel_transfer() function. - * - * libusb_cancel_transfer() is asynchronous/non-blocking in itself. When the - * cancellation actually completes, the transfer's callback function will - * be invoked, and the callback function should check the transfer status to - * determine that it was cancelled. - * - * Freeing the transfer after it has been cancelled but before cancellation - * has completed will result in undefined behaviour. - * - * When a transfer is cancelled, some of the data may have been transferred. - * libusb will communicate this to you in the transfer callback. Do not assume - * that no data was transferred. - * - * \section bulk_overflows Overflows on device-to-host bulk/interrupt endpoints - * - * If your device does not have predictable transfer sizes (or it misbehaves), - * your application may submit a request for data on an IN endpoint which is - * smaller than the data that the device wishes to send. In some circumstances - * this will cause an overflow, which is a nasty condition to deal with. See - * the \ref libusb_packetoverflow page for discussion. - * - * \section asyncctrl Considerations for control transfers - * - * The libusb_transfer structure is generic and hence does not - * include specific fields for the control-specific setup packet structure. - * - * In order to perform a control transfer, you must place the 8-byte setup - * packet at the start of the data buffer. To simplify this, you could - * cast the buffer pointer to type struct libusb_control_setup, or you can - * use the helper function libusb_fill_control_setup(). - * - * The wLength field placed in the setup packet must be the length you would - * expect to be sent in the setup packet: the length of the payload that - * follows (or the expected maximum number of bytes to receive). However, - * the length field of the libusb_transfer object must be the length of - * the data buffer - i.e. it should be wLength plus the size of - * the setup packet (LIBUSB_CONTROL_SETUP_SIZE). - * - * If you use the helper functions, this is simplified for you: - * -# Allocate a buffer of size LIBUSB_CONTROL_SETUP_SIZE plus the size of the - * data you are sending/requesting. - * -# Call libusb_fill_control_setup() on the data buffer, using the transfer - * request size as the wLength value (i.e. do not include the extra space you - * allocated for the control setup). - * -# If this is a host-to-device transfer, place the data to be transferred - * in the data buffer, starting at offset LIBUSB_CONTROL_SETUP_SIZE. - * -# Call libusb_fill_control_transfer() to associate the data buffer with - * the transfer (and to set the remaining details such as callback and timeout). - * - Note that there is no parameter to set the length field of the transfer. - * The length is automatically inferred from the wLength field of the setup - * packet. - * -# Submit the transfer. - * - * The multi-byte control setup fields (wValue, wIndex and wLength) must - * be given in little-endian byte order (the endianness of the USB bus). - * Endianness conversion is transparently handled by - * libusb_fill_control_setup() which is documented to accept host-endian - * values. - * - * Further considerations are needed when handling transfer completion in - * your callback function: - * - As you might expect, the setup packet will still be sitting at the start - * of the data buffer. - * - If this was a device-to-host transfer, the received data will be sitting - * at offset LIBUSB_CONTROL_SETUP_SIZE into the buffer. - * - The actual_length field of the transfer structure is relative to the - * wLength of the setup packet, rather than the size of the data buffer. So, - * if your wLength was 4, your transfer's length was 12, then you - * should expect an actual_length of 4 to indicate that the data was - * transferred in entirity. - * - * To simplify parsing of setup packets and obtaining the data from the - * correct offset, you may wish to use the libusb_control_transfer_get_data() - * and libusb_control_transfer_get_setup() functions within your transfer - * callback. - * - * Even though control endpoints do not halt, a completed control transfer - * may have a LIBUSB_TRANSFER_STALL status code. This indicates the control - * request was not supported. - * - * \section asyncintr Considerations for interrupt transfers - * - * All interrupt transfers are performed using the polling interval presented - * by the bInterval value of the endpoint descriptor. - * - * \section asynciso Considerations for isochronous transfers - * - * Isochronous transfers are more complicated than transfers to - * non-isochronous endpoints. - * - * To perform I/O to an isochronous endpoint, allocate the transfer by calling - * libusb_alloc_transfer() with an appropriate number of isochronous packets. - * - * During filling, set \ref libusb_transfer::type "type" to - * \ref libusb_transfer_type::LIBUSB_TRANSFER_TYPE_ISOCHRONOUS - * "LIBUSB_TRANSFER_TYPE_ISOCHRONOUS", and set - * \ref libusb_transfer::num_iso_packets "num_iso_packets" to a value less than - * or equal to the number of packets you requested during allocation. - * libusb_alloc_transfer() does not set either of these fields for you, given - * that you might not even use the transfer on an isochronous endpoint. - * - * Next, populate the length field for the first num_iso_packets entries in - * the \ref libusb_transfer::iso_packet_desc "iso_packet_desc" array. Section - * 5.6.3 of the USB2 specifications describe how the maximum isochronous - * packet length is determined by the wMaxPacketSize field in the endpoint - * descriptor. - * Two functions can help you here: - * - * - libusb_get_max_iso_packet_size() is an easy way to determine the max - * packet size for an isochronous endpoint. Note that the maximum packet - * size is actually the maximum number of bytes that can be transmitted in - * a single microframe, therefore this function multiplies the maximum number - * of bytes per transaction by the number of transaction opportunities per - * microframe. - * - libusb_set_iso_packet_lengths() assigns the same length to all packets - * within a transfer, which is usually what you want. - * - * For outgoing transfers, you'll obviously fill the buffer and populate the - * packet descriptors in hope that all the data gets transferred. For incoming - * transfers, you must ensure the buffer has sufficient capacity for - * the situation where all packets transfer the full amount of requested data. - * - * Completion handling requires some extra consideration. The - * \ref libusb_transfer::actual_length "actual_length" field of the transfer - * is meaningless and should not be examined; instead you must refer to the - * \ref libusb_iso_packet_descriptor::actual_length "actual_length" field of - * each individual packet. - * - * The \ref libusb_transfer::status "status" field of the transfer is also a - * little misleading: - * - If the packets were submitted and the isochronous data microframes - * completed normally, status will have value - * \ref libusb_transfer_status::LIBUSB_TRANSFER_COMPLETED - * "LIBUSB_TRANSFER_COMPLETED". Note that bus errors and software-incurred - * delays are not counted as transfer errors; the transfer.status field may - * indicate COMPLETED even if some or all of the packets failed. Refer to - * the \ref libusb_iso_packet_descriptor::status "status" field of each - * individual packet to determine packet failures. - * - The status field will have value - * \ref libusb_transfer_status::LIBUSB_TRANSFER_ERROR - * "LIBUSB_TRANSFER_ERROR" only when serious errors were encountered. - * - Other transfer status codes occur with normal behaviour. - * - * The data for each packet will be found at an offset into the buffer that - * can be calculated as if each prior packet completed in full. The - * libusb_get_iso_packet_buffer() and libusb_get_iso_packet_buffer_simple() - * functions may help you here. - * - * Note: Some operating systems (e.g. Linux) may impose limits on the - * length of individual isochronous packets and/or the total length of the - * isochronous transfer. Such limits can be difficult for libusb to detect, - * so the library will simply try and submit the transfer as set up by you. - * If the transfer fails to submit because it is too large, - * libusb_submit_transfer() will return - * \ref libusb_error::LIBUSB_ERROR_INVALID_PARAM "LIBUSB_ERROR_INVALID_PARAM". - * - * \section asyncmem Memory caveats - * - * In most circumstances, it is not safe to use stack memory for transfer - * buffers. This is because the function that fired off the asynchronous - * transfer may return before libusb has finished using the buffer, and when - * the function returns it's stack gets destroyed. This is true for both - * host-to-device and device-to-host transfers. - * - * The only case in which it is safe to use stack memory is where you can - * guarantee that the function owning the stack space for the buffer does not - * return until after the transfer's callback function has completed. In every - * other case, you need to use heap memory instead. - * - * \section asyncflags Fine control - * - * Through using this asynchronous interface, you may find yourself repeating - * a few simple operations many times. You can apply a bitwise OR of certain - * flags to a transfer to simplify certain things: - * - \ref libusb_transfer_flags::LIBUSB_TRANSFER_SHORT_NOT_OK - * "LIBUSB_TRANSFER_SHORT_NOT_OK" results in transfers which transferred - * less than the requested amount of data being marked with status - * \ref libusb_transfer_status::LIBUSB_TRANSFER_ERROR "LIBUSB_TRANSFER_ERROR" - * (they would normally be regarded as COMPLETED) - * - \ref libusb_transfer_flags::LIBUSB_TRANSFER_FREE_BUFFER - * "LIBUSB_TRANSFER_FREE_BUFFER" allows you to ask libusb to free the transfer - * buffer when freeing the transfer. - * - \ref libusb_transfer_flags::LIBUSB_TRANSFER_FREE_TRANSFER - * "LIBUSB_TRANSFER_FREE_TRANSFER" causes libusb to automatically free the - * transfer after the transfer callback returns. - * - * \section asyncevent Event handling - * - * An asynchronous model requires that libusb perform work at various - * points in time - namely processing the results of previously-submitted - * transfers and invoking the user-supplied callback function. - * - * This gives rise to the libusb_handle_events() function which your - * application must call into when libusb has work do to. This gives libusb - * the opportunity to reap pending transfers, invoke callbacks, etc. - * - * There are 2 different approaches to dealing with libusb_handle_events: - * - * -# Repeatedly call libusb_handle_events() in blocking mode from a dedicated - * thread. - * -# Integrate libusb with your application's main event loop. libusb - * exposes a set of file descriptors which allow you to do this. - * - * The first approach has the big advantage that it will also work on Windows - * were libusb' poll API for select / poll integration is not available. So - * if you want to support Windows and use the async API, you must use this - * approach, see the \ref eventthread "Using an event handling thread" section - * below for details. - * - * If you prefer a single threaded approach with a single central event loop, - * see the \ref libusb_poll "polling and timing" section for how to integrate libusb - * into your application's main event loop. - * - * \section eventthread Using an event handling thread - * - * Lets begin with stating the obvious: If you're going to use a separate - * thread for libusb event handling, your callback functions MUST be - * threadsafe. - * - * Other then that doing event handling from a separate thread, is mostly - * simple. You can use an event thread function as follows: -\code -void *event_thread_func(void *ctx) -{ - while (event_thread_run) - libusb_handle_events(ctx); - - return NULL; -} -\endcode - * - * There is one caveat though, stopping this thread requires setting the - * event_thread_run variable to 0, and after that libusb_handle_events() needs - * to return control to event_thread_func. But unless some event happens, - * libusb_handle_events() will not return. - * - * There are 2 different ways of dealing with this, depending on if your - * application uses libusb' \ref libusb_hotplug "hotplug" support or not. - * - * Applications which do not use hotplug support, should not start the event - * thread until after their first call to libusb_open(), and should stop the - * thread when closing the last open device as follows: -\code -void my_close_handle(libusb_device_handle *dev_handle) -{ - if (open_devs == 1) - event_thread_run = 0; - - libusb_close(dev_handle); // This wakes up libusb_handle_events() - - if (open_devs == 1) - pthread_join(event_thread); - - open_devs--; -} -\endcode - * - * Applications using hotplug support should start the thread at program init, - * after having successfully called libusb_hotplug_register_callback(), and - * should stop the thread at program exit as follows: -\code -void my_libusb_exit(void) -{ - event_thread_run = 0; - libusb_hotplug_deregister_callback(ctx, hotplug_cb_handle); // This wakes up libusb_handle_events() - pthread_join(event_thread); - libusb_exit(ctx); -} -\endcode - */ - -/** - * @defgroup libusb_poll Polling and timing - * - * This page documents libusb's functions for polling events and timing. - * These functions are only necessary for users of the - * \ref libusb_asyncio "asynchronous API". If you are only using the simpler - * \ref libusb_syncio "synchronous API" then you do not need to ever call these - * functions. - * - * The justification for the functionality described here has already been - * discussed in the \ref asyncevent "event handling" section of the - * asynchronous API documentation. In summary, libusb does not create internal - * threads for event processing and hence relies on your application calling - * into libusb at certain points in time so that pending events can be handled. - * - * Your main loop is probably already calling poll() or select() or a - * variant on a set of file descriptors for other event sources (e.g. keyboard - * button presses, mouse movements, network sockets, etc). You then add - * libusb's file descriptors to your poll()/select() calls, and when activity - * is detected on such descriptors you know it is time to call - * libusb_handle_events(). - * - * There is one final event handling complication. libusb supports - * asynchronous transfers which time out after a specified time period. - * - * On some platforms a timerfd is used, so the timeout handling is just another - * fd, on other platforms this requires that libusb is called into at or after - * the timeout to handle it. So, in addition to considering libusb's file - * descriptors in your main event loop, you must also consider that libusb - * sometimes needs to be called into at fixed points in time even when there - * is no file descriptor activity, see \ref polltime details. - * - * In order to know precisely when libusb needs to be called into, libusb - * offers you a set of pollable file descriptors and information about when - * the next timeout expires. - * - * If you are using the asynchronous I/O API, you must take one of the two - * following options, otherwise your I/O will not complete. - * - * \section pollsimple The simple option - * - * If your application revolves solely around libusb and does not need to - * handle other event sources, you can have a program structure as follows: -\code -// initialize libusb -// find and open device -// maybe fire off some initial async I/O - -while (user_has_not_requested_exit) - libusb_handle_events(ctx); - -// clean up and exit -\endcode - * - * With such a simple main loop, you do not have to worry about managing - * sets of file descriptors or handling timeouts. libusb_handle_events() will - * handle those details internally. - * - * \section libusb_pollmain The more advanced option - * - * \note This functionality is currently only available on Unix-like platforms. - * On Windows, libusb_get_pollfds() simply returns NULL. Applications which - * want to support Windows are advised to use an \ref eventthread - * "event handling thread" instead. - * - * In more advanced applications, you will already have a main loop which - * is monitoring other event sources: network sockets, X11 events, mouse - * movements, etc. Through exposing a set of file descriptors, libusb is - * designed to cleanly integrate into such main loops. - * - * In addition to polling file descriptors for the other event sources, you - * take a set of file descriptors from libusb and monitor those too. When you - * detect activity on libusb's file descriptors, you call - * libusb_handle_events_timeout() in non-blocking mode. - * - * What's more, libusb may also need to handle events at specific moments in - * time. No file descriptor activity is generated at these times, so your - * own application needs to be continually aware of when the next one of these - * moments occurs (through calling libusb_get_next_timeout()), and then it - * needs to call libusb_handle_events_timeout() in non-blocking mode when - * these moments occur. This means that you need to adjust your - * poll()/select() timeout accordingly. - * - * libusb provides you with a set of file descriptors to poll and expects you - * to poll all of them, treating them as a single entity. The meaning of each - * file descriptor in the set is an internal implementation detail, - * platform-dependent and may vary from release to release. Don't try and - * interpret the meaning of the file descriptors, just do as libusb indicates, - * polling all of them at once. - * - * In pseudo-code, you want something that looks like: -\code -// initialise libusb - -libusb_get_pollfds(ctx) -while (user has not requested application exit) { - libusb_get_next_timeout(ctx); - poll(on libusb file descriptors plus any other event sources of interest, - using a timeout no larger than the value libusb just suggested) - if (poll() indicated activity on libusb file descriptors) - libusb_handle_events_timeout(ctx, &zero_tv); - if (time has elapsed to or beyond the libusb timeout) - libusb_handle_events_timeout(ctx, &zero_tv); - // handle events from other sources here -} - -// clean up and exit -\endcode - * - * \subsection polltime Notes on time-based events - * - * The above complication with having to track time and call into libusb at - * specific moments is a bit of a headache. For maximum compatibility, you do - * need to write your main loop as above, but you may decide that you can - * restrict the supported platforms of your application and get away with - * a more simplistic scheme. - * - * These time-based event complications are \b not required on the following - * platforms: - * - Darwin - * - Linux, provided that the following version requirements are satisfied: - * - Linux v2.6.27 or newer, compiled with timerfd support - * - glibc v2.9 or newer - * - libusb v1.0.5 or newer - * - * Under these configurations, libusb_get_next_timeout() will \em always return - * 0, so your main loop can be simplified to: -\code -// initialise libusb - -libusb_get_pollfds(ctx) -while (user has not requested application exit) { - poll(on libusb file descriptors plus any other event sources of interest, - using any timeout that you like) - if (poll() indicated activity on libusb file descriptors) - libusb_handle_events_timeout(ctx, &zero_tv); - // handle events from other sources here -} - -// clean up and exit -\endcode - * - * Do remember that if you simplify your main loop to the above, you will - * lose compatibility with some platforms (including legacy Linux platforms, - * and any future platforms supported by libusb which may have time-based - * event requirements). The resultant problems will likely appear as - * strange bugs in your application. - * - * You can use the libusb_pollfds_handle_timeouts() function to do a runtime - * check to see if it is safe to ignore the time-based event complications. - * If your application has taken the shortcut of ignoring libusb's next timeout - * in your main loop, then you are advised to check the return value of - * libusb_pollfds_handle_timeouts() during application startup, and to abort - * if the platform does suffer from these timing complications. - * - * \subsection fdsetchange Changes in the file descriptor set - * - * The set of file descriptors that libusb uses as event sources may change - * during the life of your application. Rather than having to repeatedly - * call libusb_get_pollfds(), you can set up notification functions for when - * the file descriptor set changes using libusb_set_pollfd_notifiers(). - * - * \subsection mtissues Multi-threaded considerations - * - * Unfortunately, the situation is complicated further when multiple threads - * come into play. If two threads are monitoring the same file descriptors, - * the fact that only one thread will be woken up when an event occurs causes - * some headaches. - * - * The events lock, event waiters lock, and libusb_handle_events_locked() - * entities are added to solve these problems. You do not need to be concerned - * with these entities otherwise. - * - * See the extra documentation: \ref libusb_mtasync - */ - -/** \page libusb_mtasync Multi-threaded applications and asynchronous I/O - * - * libusb is a thread-safe library, but extra considerations must be applied - * to applications which interact with libusb from multiple threads. - * - * The underlying issue that must be addressed is that all libusb I/O - * revolves around monitoring file descriptors through the poll()/select() - * system calls. This is directly exposed at the - * \ref libusb_asyncio "asynchronous interface" but it is important to note that the - * \ref libusb_syncio "synchronous interface" is implemented on top of the - * asynchonrous interface, therefore the same considerations apply. - * - * The issue is that if two or more threads are concurrently calling poll() - * or select() on libusb's file descriptors then only one of those threads - * will be woken up when an event arrives. The others will be completely - * oblivious that anything has happened. - * - * Consider the following pseudo-code, which submits an asynchronous transfer - * then waits for its completion. This style is one way you could implement a - * synchronous interface on top of the asynchronous interface (and libusb - * does something similar, albeit more advanced due to the complications - * explained on this page). - * -\code -void cb(struct libusb_transfer *transfer) -{ - int *completed = transfer->user_data; - *completed = 1; -} - -void myfunc() { - struct libusb_transfer *transfer; - unsigned char buffer[LIBUSB_CONTROL_SETUP_SIZE] __attribute__ ((aligned (2))); - int completed = 0; - - transfer = libusb_alloc_transfer(0); - libusb_fill_control_setup(buffer, - LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_OUT, 0x04, 0x01, 0, 0); - libusb_fill_control_transfer(transfer, dev, buffer, cb, &completed, 1000); - libusb_submit_transfer(transfer); - - while (!completed) { - poll(libusb file descriptors, 120*1000); - if (poll indicates activity) - libusb_handle_events_timeout(ctx, &zero_tv); - } - printf("completed!"); - // other code here -} -\endcode - * - * Here we are serializing completion of an asynchronous event - * against a condition - the condition being completion of a specific transfer. - * The poll() loop has a long timeout to minimize CPU usage during situations - * when nothing is happening (it could reasonably be unlimited). - * - * If this is the only thread that is polling libusb's file descriptors, there - * is no problem: there is no danger that another thread will swallow up the - * event that we are interested in. On the other hand, if there is another - * thread polling the same descriptors, there is a chance that it will receive - * the event that we were interested in. In this situation, myfunc() - * will only realise that the transfer has completed on the next iteration of - * the loop, up to 120 seconds later. Clearly a two-minute delay is - * undesirable, and don't even think about using short timeouts to circumvent - * this issue! - * - * The solution here is to ensure that no two threads are ever polling the - * file descriptors at the same time. A naive implementation of this would - * impact the capabilities of the library, so libusb offers the scheme - * documented below to ensure no loss of functionality. - * - * Before we go any further, it is worth mentioning that all libusb-wrapped - * event handling procedures fully adhere to the scheme documented below. - * This includes libusb_handle_events() and its variants, and all the - * synchronous I/O functions - libusb hides this headache from you. - * - * \section Using libusb_handle_events() from multiple threads - * - * Even when only using libusb_handle_events() and synchronous I/O functions, - * you can still have a race condition. You might be tempted to solve the - * above with libusb_handle_events() like so: - * -\code - libusb_submit_transfer(transfer); - - while (!completed) { - libusb_handle_events(ctx); - } - printf("completed!"); -\endcode - * - * This however has a race between the checking of completed and - * libusb_handle_events() acquiring the events lock, so another thread - * could have completed the transfer, resulting in this thread hanging - * until either a timeout or another event occurs. See also commit - * 6696512aade99bb15d6792af90ae329af270eba6 which fixes this in the - * synchronous API implementation of libusb. - * - * Fixing this race requires checking the variable completed only after - * taking the event lock, which defeats the concept of just calling - * libusb_handle_events() without worrying about locking. This is why - * libusb-1.0.9 introduces the new libusb_handle_events_timeout_completed() - * and libusb_handle_events_completed() functions, which handles doing the - * completion check for you after they have acquired the lock: - * -\code - libusb_submit_transfer(transfer); - - while (!completed) { - libusb_handle_events_completed(ctx, &completed); - } - printf("completed!"); -\endcode - * - * This nicely fixes the race in our example. Note that if all you want to - * do is submit a single transfer and wait for its completion, then using - * one of the synchronous I/O functions is much easier. - * - * \section eventlock The events lock - * - * The problem is when we consider the fact that libusb exposes file - * descriptors to allow for you to integrate asynchronous USB I/O into - * existing main loops, effectively allowing you to do some work behind - * libusb's back. If you do take libusb's file descriptors and pass them to - * poll()/select() yourself, you need to be aware of the associated issues. - * - * The first concept to be introduced is the events lock. The events lock - * is used to serialize threads that want to handle events, such that only - * one thread is handling events at any one time. - * - * You must take the events lock before polling libusb file descriptors, - * using libusb_lock_events(). You must release the lock as soon as you have - * aborted your poll()/select() loop, using libusb_unlock_events(). - * - * \section threadwait Letting other threads do the work for you - * - * Although the events lock is a critical part of the solution, it is not - * enough on it's own. You might wonder if the following is sufficient... -\code - libusb_lock_events(ctx); - while (!completed) { - poll(libusb file descriptors, 120*1000); - if (poll indicates activity) - libusb_handle_events_timeout(ctx, &zero_tv); - } - libusb_unlock_events(ctx); -\endcode - * ...and the answer is that it is not. This is because the transfer in the - * code shown above may take a long time (say 30 seconds) to complete, and - * the lock is not released until the transfer is completed. - * - * Another thread with similar code that wants to do event handling may be - * working with a transfer that completes after a few milliseconds. Despite - * having such a quick completion time, the other thread cannot check that - * status of its transfer until the code above has finished (30 seconds later) - * due to contention on the lock. - * - * To solve this, libusb offers you a mechanism to determine when another - * thread is handling events. It also offers a mechanism to block your thread - * until the event handling thread has completed an event (and this mechanism - * does not involve polling of file descriptors). - * - * After determining that another thread is currently handling events, you - * obtain the event waiters lock using libusb_lock_event_waiters(). - * You then re-check that some other thread is still handling events, and if - * so, you call libusb_wait_for_event(). - * - * libusb_wait_for_event() puts your application to sleep until an event - * occurs, or until a thread releases the events lock. When either of these - * things happen, your thread is woken up, and should re-check the condition - * it was waiting on. It should also re-check that another thread is handling - * events, and if not, it should start handling events itself. - * - * This looks like the following, as pseudo-code: -\code -retry: -if (libusb_try_lock_events(ctx) == 0) { - // we obtained the event lock: do our own event handling - while (!completed) { - if (!libusb_event_handling_ok(ctx)) { - libusb_unlock_events(ctx); - goto retry; - } - poll(libusb file descriptors, 120*1000); - if (poll indicates activity) - libusb_handle_events_locked(ctx, 0); - } - libusb_unlock_events(ctx); -} else { - // another thread is doing event handling. wait for it to signal us that - // an event has completed - libusb_lock_event_waiters(ctx); - - while (!completed) { - // now that we have the event waiters lock, double check that another - // thread is still handling events for us. (it may have ceased handling - // events in the time it took us to reach this point) - if (!libusb_event_handler_active(ctx)) { - // whoever was handling events is no longer doing so, try again - libusb_unlock_event_waiters(ctx); - goto retry; - } - - libusb_wait_for_event(ctx, NULL); - } - libusb_unlock_event_waiters(ctx); -} -printf("completed!\n"); -\endcode - * - * A naive look at the above code may suggest that this can only support - * one event waiter (hence a total of 2 competing threads, the other doing - * event handling), because the event waiter seems to have taken the event - * waiters lock while waiting for an event. However, the system does support - * multiple event waiters, because libusb_wait_for_event() actually drops - * the lock while waiting, and reaquires it before continuing. - * - * We have now implemented code which can dynamically handle situations where - * nobody is handling events (so we should do it ourselves), and it can also - * handle situations where another thread is doing event handling (so we can - * piggyback onto them). It is also equipped to handle a combination of - * the two, for example, another thread is doing event handling, but for - * whatever reason it stops doing so before our condition is met, so we take - * over the event handling. - * - * Four functions were introduced in the above pseudo-code. Their importance - * should be apparent from the code shown above. - * -# libusb_try_lock_events() is a non-blocking function which attempts - * to acquire the events lock but returns a failure code if it is contended. - * -# libusb_event_handling_ok() checks that libusb is still happy for your - * thread to be performing event handling. Sometimes, libusb needs to - * interrupt the event handler, and this is how you can check if you have - * been interrupted. If this function returns 0, the correct behaviour is - * for you to give up the event handling lock, and then to repeat the cycle. - * The following libusb_try_lock_events() will fail, so you will become an - * events waiter. For more information on this, read \ref fullstory below. - * -# libusb_handle_events_locked() is a variant of - * libusb_handle_events_timeout() that you can call while holding the - * events lock. libusb_handle_events_timeout() itself implements similar - * logic to the above, so be sure not to call it when you are - * "working behind libusb's back", as is the case here. - * -# libusb_event_handler_active() determines if someone is currently - * holding the events lock - * - * You might be wondering why there is no function to wake up all threads - * blocked on libusb_wait_for_event(). This is because libusb can do this - * internally: it will wake up all such threads when someone calls - * libusb_unlock_events() or when a transfer completes (at the point after its - * callback has returned). - * - * \subsection fullstory The full story - * - * The above explanation should be enough to get you going, but if you're - * really thinking through the issues then you may be left with some more - * questions regarding libusb's internals. If you're curious, read on, and if - * not, skip to the next section to avoid confusing yourself! - * - * The immediate question that may spring to mind is: what if one thread - * modifies the set of file descriptors that need to be polled while another - * thread is doing event handling? - * - * There are 2 situations in which this may happen. - * -# libusb_open() will add another file descriptor to the poll set, - * therefore it is desirable to interrupt the event handler so that it - * restarts, picking up the new descriptor. - * -# libusb_close() will remove a file descriptor from the poll set. There - * are all kinds of race conditions that could arise here, so it is - * important that nobody is doing event handling at this time. - * - * libusb handles these issues internally, so application developers do not - * have to stop their event handlers while opening/closing devices. Here's how - * it works, focusing on the libusb_close() situation first: - * - * -# During initialization, libusb opens an internal pipe, and it adds the read - * end of this pipe to the set of file descriptors to be polled. - * -# During libusb_close(), libusb writes some dummy data on this event pipe. - * This immediately interrupts the event handler. libusb also records - * internally that it is trying to interrupt event handlers for this - * high-priority event. - * -# At this point, some of the functions described above start behaving - * differently: - * - libusb_event_handling_ok() starts returning 1, indicating that it is NOT - * OK for event handling to continue. - * - libusb_try_lock_events() starts returning 1, indicating that another - * thread holds the event handling lock, even if the lock is uncontended. - * - libusb_event_handler_active() starts returning 1, indicating that - * another thread is doing event handling, even if that is not true. - * -# The above changes in behaviour result in the event handler stopping and - * giving up the events lock very quickly, giving the high-priority - * libusb_close() operation a "free ride" to acquire the events lock. All - * threads that are competing to do event handling become event waiters. - * -# With the events lock held inside libusb_close(), libusb can safely remove - * a file descriptor from the poll set, in the safety of knowledge that - * nobody is polling those descriptors or trying to access the poll set. - * -# After obtaining the events lock, the close operation completes very - * quickly (usually a matter of milliseconds) and then immediately releases - * the events lock. - * -# At the same time, the behaviour of libusb_event_handling_ok() and friends - * reverts to the original, documented behaviour. - * -# The release of the events lock causes the threads that are waiting for - * events to be woken up and to start competing to become event handlers - * again. One of them will succeed; it will then re-obtain the list of poll - * descriptors, and USB I/O will then continue as normal. - * - * libusb_open() is similar, and is actually a more simplistic case. Upon a - * call to libusb_open(): - * - * -# The device is opened and a file descriptor is added to the poll set. - * -# libusb sends some dummy data on the event pipe, and records that it - * is trying to modify the poll descriptor set. - * -# The event handler is interrupted, and the same behaviour change as for - * libusb_close() takes effect, causing all event handling threads to become - * event waiters. - * -# The libusb_open() implementation takes its free ride to the events lock. - * -# Happy that it has successfully paused the events handler, libusb_open() - * releases the events lock. - * -# The event waiter threads are all woken up and compete to become event - * handlers again. The one that succeeds will obtain the list of poll - * descriptors again, which will include the addition of the new device. - * - * \subsection concl Closing remarks - * - * The above may seem a little complicated, but hopefully I have made it clear - * why such complications are necessary. Also, do not forget that this only - * applies to applications that take libusb's file descriptors and integrate - * them into their own polling loops. - * - * You may decide that it is OK for your multi-threaded application to ignore - * some of the rules and locks detailed above, because you don't think that - * two threads can ever be polling the descriptors at the same time. If that - * is the case, then that's good news for you because you don't have to worry. - * But be careful here; remember that the synchronous I/O functions do event - * handling internally. If you have one thread doing event handling in a loop - * (without implementing the rules and locking semantics documented above) - * and another trying to send a synchronous USB transfer, you will end up with - * two threads monitoring the same descriptors, and the above-described - * undesirable behaviour occurring. The solution is for your polling thread to - * play by the rules; the synchronous I/O functions do so, and this will result - * in them getting along in perfect harmony. - * - * If you do have a dedicated thread doing event handling, it is perfectly - * legal for it to take the event handling lock for long periods of time. Any - * synchronous I/O functions you call from other threads will transparently - * fall back to the "event waiters" mechanism detailed above. The only - * consideration that your event handling thread must apply is the one related - * to libusb_event_handling_ok(): you must call this before every poll(), and - * give up the events lock if instructed. - */ - -int usbi_io_init(struct libusb_context *ctx) -{ - int r; - - usbi_mutex_init(&ctx->flying_transfers_lock); - usbi_mutex_init(&ctx->events_lock); - usbi_mutex_init(&ctx->event_waiters_lock); - usbi_cond_init(&ctx->event_waiters_cond); - usbi_mutex_init(&ctx->event_data_lock); - usbi_tls_key_create(&ctx->event_handling_key); - list_init(&ctx->flying_transfers); - list_init(&ctx->ipollfds); - list_init(&ctx->hotplug_msgs); - list_init(&ctx->completed_transfers); - - /* FIXME should use an eventfd on kernels that support it */ - r = usbi_pipe(ctx->event_pipe); - if (r < 0) { - r = LIBUSB_ERROR_OTHER; - goto err; - } - - r = usbi_add_pollfd(ctx, ctx->event_pipe[0], POLLIN); - if (r < 0) - goto err_close_pipe; - -#ifdef USBI_TIMERFD_AVAILABLE - ctx->timerfd = timerfd_create(usbi_backend->get_timerfd_clockid(), - TFD_NONBLOCK); - if (ctx->timerfd >= 0) { - usbi_dbg("using timerfd for timeouts"); - r = usbi_add_pollfd(ctx, ctx->timerfd, POLLIN); - if (r < 0) - goto err_close_timerfd; - } else { - usbi_dbg("timerfd not available (code %d error %d)", ctx->timerfd, errno); - ctx->timerfd = -1; - } -#endif - - return 0; - -#ifdef USBI_TIMERFD_AVAILABLE -err_close_timerfd: - close(ctx->timerfd); - usbi_remove_pollfd(ctx, ctx->event_pipe[0]); -#endif -err_close_pipe: - usbi_close(ctx->event_pipe[0]); - usbi_close(ctx->event_pipe[1]); -err: - usbi_mutex_destroy(&ctx->flying_transfers_lock); - usbi_mutex_destroy(&ctx->events_lock); - usbi_mutex_destroy(&ctx->event_waiters_lock); - usbi_cond_destroy(&ctx->event_waiters_cond); - usbi_mutex_destroy(&ctx->event_data_lock); - usbi_tls_key_delete(ctx->event_handling_key); - return r; -} - -void usbi_io_exit(struct libusb_context *ctx) -{ - usbi_remove_pollfd(ctx, ctx->event_pipe[0]); - usbi_close(ctx->event_pipe[0]); - usbi_close(ctx->event_pipe[1]); -#ifdef USBI_TIMERFD_AVAILABLE - if (usbi_using_timerfd(ctx)) { - usbi_remove_pollfd(ctx, ctx->timerfd); - close(ctx->timerfd); - } -#endif - usbi_mutex_destroy(&ctx->flying_transfers_lock); - usbi_mutex_destroy(&ctx->events_lock); - usbi_mutex_destroy(&ctx->event_waiters_lock); - usbi_cond_destroy(&ctx->event_waiters_cond); - usbi_mutex_destroy(&ctx->event_data_lock); - usbi_tls_key_delete(ctx->event_handling_key); - if (ctx->pollfds) - free(ctx->pollfds); -} - -static int calculate_timeout(struct usbi_transfer *transfer) -{ - int r; - struct timespec current_time; - unsigned int timeout = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer)->timeout; - - if (!timeout) - return 0; - - r = usbi_backend->clock_gettime(USBI_CLOCK_MONOTONIC, ¤t_time); - if (r < 0) { - usbi_err(ITRANSFER_CTX(transfer), - "failed to read monotonic clock, errno=%d", errno); - return r; - } - - current_time.tv_sec += timeout / 1000; - current_time.tv_nsec += (timeout % 1000) * 1000000; - - while (current_time.tv_nsec >= 1000000000) { - current_time.tv_nsec -= 1000000000; - current_time.tv_sec++; - } - - TIMESPEC_TO_TIMEVAL(&transfer->timeout, ¤t_time); - return 0; -} - -/** \ingroup libusb_asyncio - * Allocate a libusb transfer with a specified number of isochronous packet - * descriptors. The returned transfer is pre-initialized for you. When the new - * transfer is no longer needed, it should be freed with - * libusb_free_transfer(). - * - * Transfers intended for non-isochronous endpoints (e.g. control, bulk, - * interrupt) should specify an iso_packets count of zero. - * - * For transfers intended for isochronous endpoints, specify an appropriate - * number of packet descriptors to be allocated as part of the transfer. - * The returned transfer is not specially initialized for isochronous I/O; - * you are still required to set the - * \ref libusb_transfer::num_iso_packets "num_iso_packets" and - * \ref libusb_transfer::type "type" fields accordingly. - * - * It is safe to allocate a transfer with some isochronous packets and then - * use it on a non-isochronous endpoint. If you do this, ensure that at time - * of submission, num_iso_packets is 0 and that type is set appropriately. - * - * \param iso_packets number of isochronous packet descriptors to allocate - * \returns a newly allocated transfer, or NULL on error - */ -DEFAULT_VISIBILITY -struct libusb_transfer * LIBUSB_CALL libusb_alloc_transfer( - int iso_packets) -{ - struct libusb_transfer *transfer; - size_t os_alloc_size = usbi_backend->transfer_priv_size; - size_t alloc_size = sizeof(struct usbi_transfer) - + sizeof(struct libusb_transfer) - + (sizeof(struct libusb_iso_packet_descriptor) * iso_packets) - + os_alloc_size; - struct usbi_transfer *itransfer = calloc(1, alloc_size); - if (!itransfer) - return NULL; - - itransfer->num_iso_packets = iso_packets; - usbi_mutex_init(&itransfer->lock); - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - usbi_dbg("transfer %p", transfer); - return transfer; -} - -/** \ingroup libusb_asyncio - * Free a transfer structure. This should be called for all transfers - * allocated with libusb_alloc_transfer(). - * - * If the \ref libusb_transfer_flags::LIBUSB_TRANSFER_FREE_BUFFER - * "LIBUSB_TRANSFER_FREE_BUFFER" flag is set and the transfer buffer is - * non-NULL, this function will also free the transfer buffer using the - * standard system memory allocator (e.g. free()). - * - * It is legal to call this function with a NULL transfer. In this case, - * the function will simply return safely. - * - * It is not legal to free an active transfer (one which has been submitted - * and has not yet completed). - * - * \param transfer the transfer to free - */ -void API_EXPORTED libusb_free_transfer(struct libusb_transfer *transfer) -{ - struct usbi_transfer *itransfer; - if (!transfer) - return; - - usbi_dbg("transfer %p", transfer); - if (transfer->flags & LIBUSB_TRANSFER_FREE_BUFFER && transfer->buffer) - free(transfer->buffer); - - itransfer = LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer); - usbi_mutex_destroy(&itransfer->lock); - free(itransfer); -} - -#ifdef USBI_TIMERFD_AVAILABLE -static int disarm_timerfd(struct libusb_context *ctx) -{ - const struct itimerspec disarm_timer = { { 0, 0 }, { 0, 0 } }; - int r; - - usbi_dbg(""); - r = timerfd_settime(ctx->timerfd, 0, &disarm_timer, NULL); - if (r < 0) - return LIBUSB_ERROR_OTHER; - else - return 0; -} - -/* iterates through the flying transfers, and rearms the timerfd based on the - * next upcoming timeout. - * must be called with flying_list locked. - * returns 0 on success or a LIBUSB_ERROR code on failure. - */ -static int arm_timerfd_for_next_timeout(struct libusb_context *ctx) -{ - struct usbi_transfer *transfer; - - list_for_each_entry(transfer, &ctx->flying_transfers, list, struct usbi_transfer) { - struct timeval *cur_tv = &transfer->timeout; - - /* if we've reached transfers of infinite timeout, then we have no - * arming to do */ - if (!timerisset(cur_tv)) - goto disarm; - - /* act on first transfer that has not already been handled */ - if (!(transfer->timeout_flags & (USBI_TRANSFER_TIMEOUT_HANDLED | USBI_TRANSFER_OS_HANDLES_TIMEOUT))) { - int r; - const struct itimerspec it = { {0, 0}, - { cur_tv->tv_sec, cur_tv->tv_usec * 1000 } }; - usbi_dbg("next timeout originally %dms", USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer)->timeout); - r = timerfd_settime(ctx->timerfd, TFD_TIMER_ABSTIME, &it, NULL); - if (r < 0) - return LIBUSB_ERROR_OTHER; - return 0; - } - } - -disarm: - return disarm_timerfd(ctx); -} -#else -static int arm_timerfd_for_next_timeout(struct libusb_context *ctx) -{ - UNUSED(ctx); - return 0; -} -#endif - -/* add a transfer to the (timeout-sorted) active transfers list. - * This function will return non 0 if fails to update the timer, - * in which case the transfer is *not* on the flying_transfers list. */ -static int add_to_flying_list(struct usbi_transfer *transfer) -{ - struct usbi_transfer *cur; - struct timeval *timeout = &transfer->timeout; - struct libusb_context *ctx = ITRANSFER_CTX(transfer); - int r; - int first = 1; - - r = calculate_timeout(transfer); - if (r) - return r; - - /* if we have no other flying transfers, start the list with this one */ - if (list_empty(&ctx->flying_transfers)) { - list_add(&transfer->list, &ctx->flying_transfers); - goto out; - } - - /* if we have infinite timeout, append to end of list */ - if (!timerisset(timeout)) { - list_add_tail(&transfer->list, &ctx->flying_transfers); - /* first is irrelevant in this case */ - goto out; - } - - /* otherwise, find appropriate place in list */ - list_for_each_entry(cur, &ctx->flying_transfers, list, struct usbi_transfer) { - /* find first timeout that occurs after the transfer in question */ - struct timeval *cur_tv = &cur->timeout; - - if (!timerisset(cur_tv) || (cur_tv->tv_sec > timeout->tv_sec) || - (cur_tv->tv_sec == timeout->tv_sec && - cur_tv->tv_usec > timeout->tv_usec)) { - list_add_tail(&transfer->list, &cur->list); - goto out; - } - first = 0; - } - /* first is 0 at this stage (list not empty) */ - - /* otherwise we need to be inserted at the end */ - list_add_tail(&transfer->list, &ctx->flying_transfers); -out: -#ifdef USBI_TIMERFD_AVAILABLE - if (first && usbi_using_timerfd(ctx) && timerisset(timeout)) { - /* if this transfer has the lowest timeout of all active transfers, - * rearm the timerfd with this transfer's timeout */ - const struct itimerspec it = { {0, 0}, - { timeout->tv_sec, timeout->tv_usec * 1000 } }; - usbi_dbg("arm timerfd for timeout in %dms (first in line)", - USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer)->timeout); - r = timerfd_settime(ctx->timerfd, TFD_TIMER_ABSTIME, &it, NULL); - if (r < 0) { - usbi_warn(ctx, "failed to arm first timerfd (errno %d)", errno); - r = LIBUSB_ERROR_OTHER; - } - } -#else - UNUSED(first); -#endif - - if (r) - list_del(&transfer->list); - - return r; -} - -/* remove a transfer from the active transfers list. - * This function will *always* remove the transfer from the - * flying_transfers list. It will return a LIBUSB_ERROR code - * if it fails to update the timer for the next timeout. */ -static int remove_from_flying_list(struct usbi_transfer *transfer) -{ - struct libusb_context *ctx = ITRANSFER_CTX(transfer); - int rearm_timerfd; - int r = 0; - - usbi_mutex_lock(&ctx->flying_transfers_lock); - rearm_timerfd = (timerisset(&transfer->timeout) && - list_first_entry(&ctx->flying_transfers, struct usbi_transfer, list) == transfer); - list_del(&transfer->list); - if (usbi_using_timerfd(ctx) && rearm_timerfd) - r = arm_timerfd_for_next_timeout(ctx); - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - return r; -} - -/** \ingroup libusb_asyncio - * Submit a transfer. This function will fire off the USB transfer and then - * return immediately. - * - * \param transfer the transfer to submit - * \returns 0 on success - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_BUSY if the transfer has already been submitted. - * \returns LIBUSB_ERROR_NOT_SUPPORTED if the transfer flags are not supported - * by the operating system. - * \returns LIBUSB_ERROR_INVALID_PARAM if the transfer size is larger than - * the operating system and/or hardware can support - * \returns another LIBUSB_ERROR code on other failure - */ -int API_EXPORTED libusb_submit_transfer(struct libusb_transfer *transfer) -{ - struct usbi_transfer *itransfer = - LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer); - struct libusb_context *ctx = TRANSFER_CTX(transfer); - int r; - - usbi_dbg("transfer %p", transfer); - - /* - * Important note on locking, this function takes / releases locks - * in the following order: - * take flying_transfers_lock - * take itransfer->lock - * clear transfer - * add to flying_transfers list - * release flying_transfers_lock - * submit transfer - * release itransfer->lock - * if submit failed: - * take flying_transfers_lock - * remove from flying_transfers list - * release flying_transfers_lock - * - * Note that it takes locks in the order a-b and then releases them - * in the same order a-b. This is somewhat unusual but not wrong, - * release order is not important as long as *all* locks are released - * before re-acquiring any locks. - * - * This means that the ordering of first releasing itransfer->lock - * and then re-acquiring the flying_transfers_list on error is - * important and must not be changed! - * - * This is done this way because when we take both locks we must always - * take flying_transfers_lock first to avoid ab-ba style deadlocks with - * the timeout handling and usbi_handle_disconnect paths. - * - * And we cannot release itransfer->lock before the submission is - * complete otherwise timeout handling for transfers with short - * timeouts may run before submission. - */ - usbi_mutex_lock(&ctx->flying_transfers_lock); - usbi_mutex_lock(&itransfer->lock); - if (itransfer->state_flags & USBI_TRANSFER_IN_FLIGHT) { - usbi_mutex_unlock(&ctx->flying_transfers_lock); - usbi_mutex_unlock(&itransfer->lock); - return LIBUSB_ERROR_BUSY; - } - itransfer->transferred = 0; - itransfer->state_flags = 0; - itransfer->timeout_flags = 0; - r = add_to_flying_list(itransfer); - if (r) { - usbi_mutex_unlock(&ctx->flying_transfers_lock); - usbi_mutex_unlock(&itransfer->lock); - return r; - } - /* - * We must release the flying transfers lock here, because with - * some backends the submit_transfer method is synchroneous. - */ - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - r = usbi_backend->submit_transfer(itransfer); - if (r == LIBUSB_SUCCESS) { - itransfer->state_flags |= USBI_TRANSFER_IN_FLIGHT; - /* keep a reference to this device */ - libusb_ref_device(transfer->dev_handle->dev); - } - usbi_mutex_unlock(&itransfer->lock); - - if (r != LIBUSB_SUCCESS) - remove_from_flying_list(itransfer); - - return r; -} - -/** \ingroup libusb_asyncio - * Asynchronously cancel a previously submitted transfer. - * This function returns immediately, but this does not indicate cancellation - * is complete. Your callback function will be invoked at some later time - * with a transfer status of - * \ref libusb_transfer_status::LIBUSB_TRANSFER_CANCELLED - * "LIBUSB_TRANSFER_CANCELLED." - * - * \param transfer the transfer to cancel - * \returns 0 on success - * \returns LIBUSB_ERROR_NOT_FOUND if the transfer is not in progress, - * already complete, or already cancelled. - * \returns a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_cancel_transfer(struct libusb_transfer *transfer) -{ - struct usbi_transfer *itransfer = - LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer); - int r; - - usbi_dbg("transfer %p", transfer ); - usbi_mutex_lock(&itransfer->lock); - if (!(itransfer->state_flags & USBI_TRANSFER_IN_FLIGHT) - || (itransfer->state_flags & USBI_TRANSFER_CANCELLING)) { - r = LIBUSB_ERROR_NOT_FOUND; - goto out; - } - r = usbi_backend->cancel_transfer(itransfer); - if (r < 0) { - if (r != LIBUSB_ERROR_NOT_FOUND && - r != LIBUSB_ERROR_NO_DEVICE) - usbi_err(TRANSFER_CTX(transfer), - "cancel transfer failed error %d", r); - else - usbi_dbg("cancel transfer failed error %d", r); - - if (r == LIBUSB_ERROR_NO_DEVICE) - itransfer->state_flags |= USBI_TRANSFER_DEVICE_DISAPPEARED; - } - - itransfer->state_flags |= USBI_TRANSFER_CANCELLING; - -out: - usbi_mutex_unlock(&itransfer->lock); - return r; -} - -/** \ingroup libusb_asyncio - * Set a transfers bulk stream id. Note users are advised to use - * libusb_fill_bulk_stream_transfer() instead of calling this function - * directly. - * - * Since version 1.0.19, \ref LIBUSB_API_VERSION >= 0x01000103 - * - * \param transfer the transfer to set the stream id for - * \param stream_id the stream id to set - * \see libusb_alloc_streams() - */ -void API_EXPORTED libusb_transfer_set_stream_id( - struct libusb_transfer *transfer, uint32_t stream_id) -{ - struct usbi_transfer *itransfer = - LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer); - - itransfer->stream_id = stream_id; -} - -/** \ingroup libusb_asyncio - * Get a transfers bulk stream id. - * - * Since version 1.0.19, \ref LIBUSB_API_VERSION >= 0x01000103 - * - * \param transfer the transfer to get the stream id for - * \returns the stream id for the transfer - */ -uint32_t API_EXPORTED libusb_transfer_get_stream_id( - struct libusb_transfer *transfer) -{ - struct usbi_transfer *itransfer = - LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer); - - return itransfer->stream_id; -} - -/* Handle completion of a transfer (completion might be an error condition). - * This will invoke the user-supplied callback function, which may end up - * freeing the transfer. Therefore you cannot use the transfer structure - * after calling this function, and you should free all backend-specific - * data before calling it. - * Do not call this function with the usbi_transfer lock held. User-specified - * callback functions may attempt to directly resubmit the transfer, which - * will attempt to take the lock. */ -int usbi_handle_transfer_completion(struct usbi_transfer *itransfer, - enum libusb_transfer_status status) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_device_handle *dev_handle = transfer->dev_handle; - uint8_t flags; - int r; - - r = remove_from_flying_list(itransfer); - if (r < 0) - usbi_err(ITRANSFER_CTX(itransfer), "failed to set timer for next timeout, errno=%d", errno); - - usbi_mutex_lock(&itransfer->lock); - itransfer->state_flags &= ~USBI_TRANSFER_IN_FLIGHT; - usbi_mutex_unlock(&itransfer->lock); - - if (status == LIBUSB_TRANSFER_COMPLETED - && transfer->flags & LIBUSB_TRANSFER_SHORT_NOT_OK) { - int rqlen = transfer->length; - if (transfer->type == LIBUSB_TRANSFER_TYPE_CONTROL) - rqlen -= LIBUSB_CONTROL_SETUP_SIZE; - if (rqlen != itransfer->transferred) { - usbi_dbg("interpreting short transfer as error"); - status = LIBUSB_TRANSFER_ERROR; - } - } - - flags = transfer->flags; - transfer->status = status; - transfer->actual_length = itransfer->transferred; - usbi_dbg("transfer %p has callback %p", transfer, transfer->callback); - if (transfer->callback) - transfer->callback(transfer); - /* transfer might have been freed by the above call, do not use from - * this point. */ - if (flags & LIBUSB_TRANSFER_FREE_TRANSFER) - libusb_free_transfer(transfer); - libusb_unref_device(dev_handle->dev); - return r; -} - -/* Similar to usbi_handle_transfer_completion() but exclusively for transfers - * that were asynchronously cancelled. The same concerns w.r.t. freeing of - * transfers exist here. - * Do not call this function with the usbi_transfer lock held. User-specified - * callback functions may attempt to directly resubmit the transfer, which - * will attempt to take the lock. */ -int usbi_handle_transfer_cancellation(struct usbi_transfer *transfer) -{ - struct libusb_context *ctx = ITRANSFER_CTX(transfer); - uint8_t timed_out; - - usbi_mutex_lock(&ctx->flying_transfers_lock); - timed_out = transfer->timeout_flags & USBI_TRANSFER_TIMED_OUT; - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - /* if the URB was cancelled due to timeout, report timeout to the user */ - if (timed_out) { - usbi_dbg("detected timeout cancellation"); - return usbi_handle_transfer_completion(transfer, LIBUSB_TRANSFER_TIMED_OUT); - } - - /* otherwise its a normal async cancel */ - return usbi_handle_transfer_completion(transfer, LIBUSB_TRANSFER_CANCELLED); -} - -/* Add a completed transfer to the completed_transfers list of the - * context and signal the event. The backend's handle_transfer_completion() - * function will be called the next time an event handler runs. */ -void usbi_signal_transfer_completion(struct usbi_transfer *transfer) -{ - struct libusb_context *ctx = ITRANSFER_CTX(transfer); - int pending_events; - - usbi_mutex_lock(&ctx->event_data_lock); - pending_events = usbi_pending_events(ctx); - list_add_tail(&transfer->completed_list, &ctx->completed_transfers); - if (!pending_events) - usbi_signal_event(ctx); - usbi_mutex_unlock(&ctx->event_data_lock); -} - -/** \ingroup libusb_poll - * Attempt to acquire the event handling lock. This lock is used to ensure that - * only one thread is monitoring libusb event sources at any one time. - * - * You only need to use this lock if you are developing an application - * which calls poll() or select() on libusb's file descriptors directly. - * If you stick to libusb's event handling loop functions (e.g. - * libusb_handle_events()) then you do not need to be concerned with this - * locking. - * - * While holding this lock, you are trusted to actually be handling events. - * If you are no longer handling events, you must call libusb_unlock_events() - * as soon as possible. - * - * \param ctx the context to operate on, or NULL for the default context - * \returns 0 if the lock was obtained successfully - * \returns 1 if the lock was not obtained (i.e. another thread holds the lock) - * \ref libusb_mtasync - */ -int API_EXPORTED libusb_try_lock_events(libusb_context *ctx) -{ - int r; - unsigned int ru; - USBI_GET_CONTEXT(ctx); - - /* is someone else waiting to close a device? if so, don't let this thread - * start event handling */ - usbi_mutex_lock(&ctx->event_data_lock); - ru = ctx->device_close; - usbi_mutex_unlock(&ctx->event_data_lock); - if (ru) { - usbi_dbg("someone else is closing a device"); - return 1; - } - - r = usbi_mutex_trylock(&ctx->events_lock); - if (r) - return 1; - - ctx->event_handler_active = 1; - return 0; -} - -/** \ingroup libusb_poll - * Acquire the event handling lock, blocking until successful acquisition if - * it is contended. This lock is used to ensure that only one thread is - * monitoring libusb event sources at any one time. - * - * You only need to use this lock if you are developing an application - * which calls poll() or select() on libusb's file descriptors directly. - * If you stick to libusb's event handling loop functions (e.g. - * libusb_handle_events()) then you do not need to be concerned with this - * locking. - * - * While holding this lock, you are trusted to actually be handling events. - * If you are no longer handling events, you must call libusb_unlock_events() - * as soon as possible. - * - * \param ctx the context to operate on, or NULL for the default context - * \ref libusb_mtasync - */ -void API_EXPORTED libusb_lock_events(libusb_context *ctx) -{ - USBI_GET_CONTEXT(ctx); - usbi_mutex_lock(&ctx->events_lock); - ctx->event_handler_active = 1; -} - -/** \ingroup libusb_poll - * Release the lock previously acquired with libusb_try_lock_events() or - * libusb_lock_events(). Releasing this lock will wake up any threads blocked - * on libusb_wait_for_event(). - * - * \param ctx the context to operate on, or NULL for the default context - * \ref libusb_mtasync - */ -void API_EXPORTED libusb_unlock_events(libusb_context *ctx) -{ - USBI_GET_CONTEXT(ctx); - ctx->event_handler_active = 0; - usbi_mutex_unlock(&ctx->events_lock); - - /* FIXME: perhaps we should be a bit more efficient by not broadcasting - * the availability of the events lock when we are modifying pollfds - * (check ctx->device_close)? */ - usbi_mutex_lock(&ctx->event_waiters_lock); - usbi_cond_broadcast(&ctx->event_waiters_cond); - usbi_mutex_unlock(&ctx->event_waiters_lock); -} - -/** \ingroup libusb_poll - * Determine if it is still OK for this thread to be doing event handling. - * - * Sometimes, libusb needs to temporarily pause all event handlers, and this - * is the function you should use before polling file descriptors to see if - * this is the case. - * - * If this function instructs your thread to give up the events lock, you - * should just continue the usual logic that is documented in \ref libusb_mtasync. - * On the next iteration, your thread will fail to obtain the events lock, - * and will hence become an event waiter. - * - * This function should be called while the events lock is held: you don't - * need to worry about the results of this function if your thread is not - * the current event handler. - * - * \param ctx the context to operate on, or NULL for the default context - * \returns 1 if event handling can start or continue - * \returns 0 if this thread must give up the events lock - * \ref fullstory "Multi-threaded I/O: the full story" - */ -int API_EXPORTED libusb_event_handling_ok(libusb_context *ctx) -{ - unsigned int r; - USBI_GET_CONTEXT(ctx); - - /* is someone else waiting to close a device? if so, don't let this thread - * continue event handling */ - usbi_mutex_lock(&ctx->event_data_lock); - r = ctx->device_close; - usbi_mutex_unlock(&ctx->event_data_lock); - if (r) { - usbi_dbg("someone else is closing a device"); - return 0; - } - - return 1; -} - - -/** \ingroup libusb_poll - * Determine if an active thread is handling events (i.e. if anyone is holding - * the event handling lock). - * - * \param ctx the context to operate on, or NULL for the default context - * \returns 1 if a thread is handling events - * \returns 0 if there are no threads currently handling events - * \ref libusb_mtasync - */ -int API_EXPORTED libusb_event_handler_active(libusb_context *ctx) -{ - unsigned int r; - USBI_GET_CONTEXT(ctx); - - /* is someone else waiting to close a device? if so, don't let this thread - * start event handling -- indicate that event handling is happening */ - usbi_mutex_lock(&ctx->event_data_lock); - r = ctx->device_close; - usbi_mutex_unlock(&ctx->event_data_lock); - if (r) { - usbi_dbg("someone else is closing a device"); - return 1; - } - - return ctx->event_handler_active; -} - -/** \ingroup libusb_poll - * Interrupt any active thread that is handling events. This is mainly useful - * for interrupting a dedicated event handling thread when an application - * wishes to call libusb_exit(). - * - * Since version 1.0.21, \ref LIBUSB_API_VERSION >= 0x01000105 - * - * \param ctx the context to operate on, or NULL for the default context - * \ref libusb_mtasync - */ -void API_EXPORTED libusb_interrupt_event_handler(libusb_context *ctx) -{ - int pending_events; - USBI_GET_CONTEXT(ctx); - - usbi_dbg(""); - usbi_mutex_lock(&ctx->event_data_lock); - - pending_events = usbi_pending_events(ctx); - ctx->event_flags |= USBI_EVENT_USER_INTERRUPT; - if (!pending_events) - usbi_signal_event(ctx); - - usbi_mutex_unlock(&ctx->event_data_lock); -} - -/** \ingroup libusb_poll - * Acquire the event waiters lock. This lock is designed to be obtained under - * the situation where you want to be aware when events are completed, but - * some other thread is event handling so calling libusb_handle_events() is not - * allowed. - * - * You then obtain this lock, re-check that another thread is still handling - * events, then call libusb_wait_for_event(). - * - * You only need to use this lock if you are developing an application - * which calls poll() or select() on libusb's file descriptors directly, - * and may potentially be handling events from 2 threads simultaenously. - * If you stick to libusb's event handling loop functions (e.g. - * libusb_handle_events()) then you do not need to be concerned with this - * locking. - * - * \param ctx the context to operate on, or NULL for the default context - * \ref libusb_mtasync - */ -void API_EXPORTED libusb_lock_event_waiters(libusb_context *ctx) -{ - USBI_GET_CONTEXT(ctx); - usbi_mutex_lock(&ctx->event_waiters_lock); -} - -/** \ingroup libusb_poll - * Release the event waiters lock. - * \param ctx the context to operate on, or NULL for the default context - * \ref libusb_mtasync - */ -void API_EXPORTED libusb_unlock_event_waiters(libusb_context *ctx) -{ - USBI_GET_CONTEXT(ctx); - usbi_mutex_unlock(&ctx->event_waiters_lock); -} - -/** \ingroup libusb_poll - * Wait for another thread to signal completion of an event. Must be called - * with the event waiters lock held, see libusb_lock_event_waiters(). - * - * This function will block until any of the following conditions are met: - * -# The timeout expires - * -# A transfer completes - * -# A thread releases the event handling lock through libusb_unlock_events() - * - * Condition 1 is obvious. Condition 2 unblocks your thread after - * the callback for the transfer has completed. Condition 3 is important - * because it means that the thread that was previously handling events is no - * longer doing so, so if any events are to complete, another thread needs to - * step up and start event handling. - * - * This function releases the event waiters lock before putting your thread - * to sleep, and reacquires the lock as it is being woken up. - * - * \param ctx the context to operate on, or NULL for the default context - * \param tv maximum timeout for this blocking function. A NULL value - * indicates unlimited timeout. - * \returns 0 after a transfer completes or another thread stops event handling - * \returns 1 if the timeout expired - * \ref libusb_mtasync - */ -int API_EXPORTED libusb_wait_for_event(libusb_context *ctx, struct timeval *tv) -{ - int r; - - USBI_GET_CONTEXT(ctx); - if (tv == NULL) { - usbi_cond_wait(&ctx->event_waiters_cond, &ctx->event_waiters_lock); - return 0; - } - - r = usbi_cond_timedwait(&ctx->event_waiters_cond, - &ctx->event_waiters_lock, tv); - - if (r < 0) - return r; - else - return (r == ETIMEDOUT); -} - -static void handle_timeout(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - int r; - - itransfer->timeout_flags |= USBI_TRANSFER_TIMEOUT_HANDLED; - r = libusb_cancel_transfer(transfer); - if (r == LIBUSB_SUCCESS) - itransfer->timeout_flags |= USBI_TRANSFER_TIMED_OUT; - else - usbi_warn(TRANSFER_CTX(transfer), - "async cancel failed %d errno=%d", r, errno); -} - -static int handle_timeouts_locked(struct libusb_context *ctx) -{ - int r; - struct timespec systime_ts; - struct timeval systime; - struct usbi_transfer *transfer; - - if (list_empty(&ctx->flying_transfers)) - return 0; - - /* get current time */ - r = usbi_backend->clock_gettime(USBI_CLOCK_MONOTONIC, &systime_ts); - if (r < 0) - return r; - - TIMESPEC_TO_TIMEVAL(&systime, &systime_ts); - - /* iterate through flying transfers list, finding all transfers that - * have expired timeouts */ - list_for_each_entry(transfer, &ctx->flying_transfers, list, struct usbi_transfer) { - struct timeval *cur_tv = &transfer->timeout; - - /* if we've reached transfers of infinite timeout, we're all done */ - if (!timerisset(cur_tv)) - return 0; - - /* ignore timeouts we've already handled */ - if (transfer->timeout_flags & (USBI_TRANSFER_TIMEOUT_HANDLED | USBI_TRANSFER_OS_HANDLES_TIMEOUT)) - continue; - - /* if transfer has non-expired timeout, nothing more to do */ - if ((cur_tv->tv_sec > systime.tv_sec) || - (cur_tv->tv_sec == systime.tv_sec && - cur_tv->tv_usec > systime.tv_usec)) - return 0; - - /* otherwise, we've got an expired timeout to handle */ - handle_timeout(transfer); - } - return 0; -} - -static int handle_timeouts(struct libusb_context *ctx) -{ - int r; - USBI_GET_CONTEXT(ctx); - usbi_mutex_lock(&ctx->flying_transfers_lock); - r = handle_timeouts_locked(ctx); - usbi_mutex_unlock(&ctx->flying_transfers_lock); - return r; -} - -#ifdef USBI_TIMERFD_AVAILABLE -static int handle_timerfd_trigger(struct libusb_context *ctx) -{ - int r; - - usbi_mutex_lock(&ctx->flying_transfers_lock); - - /* process the timeout that just happened */ - r = handle_timeouts_locked(ctx); - if (r < 0) - goto out; - - /* arm for next timeout*/ - r = arm_timerfd_for_next_timeout(ctx); - -out: - usbi_mutex_unlock(&ctx->flying_transfers_lock); - return r; -} -#endif - -/* do the actual event handling. assumes that no other thread is concurrently - * doing the same thing. */ -static int handle_events(struct libusb_context *ctx, struct timeval *tv) -{ - int r; - struct usbi_pollfd *ipollfd; - POLL_NFDS_TYPE nfds = 0; - POLL_NFDS_TYPE internal_nfds; - struct pollfd *fds = NULL; - int i = -1; - int timeout_ms; - int special_event; - - /* prevent attempts to recursively handle events (e.g. calling into - * libusb_handle_events() from within a hotplug or transfer callback) */ - if (usbi_handling_events(ctx)) - return LIBUSB_ERROR_BUSY; - usbi_start_event_handling(ctx); - - /* there are certain fds that libusb uses internally, currently: - * - * 1) event pipe - * 2) timerfd - * - * the backend will never need to attempt to handle events on these fds, so - * we determine how many fds are in use internally for this context and when - * handle_events() is called in the backend, the pollfd list and count will - * be adjusted to skip over these internal fds */ - if (usbi_using_timerfd(ctx)) - internal_nfds = 2; - else - internal_nfds = 1; - - /* only reallocate the poll fds when the list of poll fds has been modified - * since the last poll, otherwise reuse them to save the additional overhead */ - usbi_mutex_lock(&ctx->event_data_lock); - if (ctx->event_flags & USBI_EVENT_POLLFDS_MODIFIED) { - usbi_dbg("poll fds modified, reallocating"); - - if (ctx->pollfds) { - free(ctx->pollfds); - ctx->pollfds = NULL; - } - - /* sanity check - it is invalid for a context to have fewer than the - * required internal fds (memory corruption?) */ - assert(ctx->pollfds_cnt >= internal_nfds); - - ctx->pollfds = calloc(ctx->pollfds_cnt, sizeof(*ctx->pollfds)); - if (!ctx->pollfds) { - usbi_mutex_unlock(&ctx->event_data_lock); - r = LIBUSB_ERROR_NO_MEM; - goto done; - } - - list_for_each_entry(ipollfd, &ctx->ipollfds, list, struct usbi_pollfd) { - struct libusb_pollfd *pollfd = &ipollfd->pollfd; - i++; - ctx->pollfds[i].fd = pollfd->fd; - ctx->pollfds[i].events = pollfd->events; - } - - /* reset the flag now that we have the updated list */ - ctx->event_flags &= ~USBI_EVENT_POLLFDS_MODIFIED; - - /* if no further pending events, clear the event pipe so that we do - * not immediately return from poll */ - if (!usbi_pending_events(ctx)) - usbi_clear_event(ctx); - } - fds = ctx->pollfds; - nfds = ctx->pollfds_cnt; - usbi_mutex_unlock(&ctx->event_data_lock); - - timeout_ms = (int)(tv->tv_sec * 1000) + (tv->tv_usec / 1000); - - /* round up to next millisecond */ - if (tv->tv_usec % 1000) - timeout_ms++; - -redo_poll: - usbi_dbg("poll() %d fds with timeout in %dms", nfds, timeout_ms); - r = usbi_poll(fds, nfds, timeout_ms); - usbi_dbg("poll() returned %d", r); - if (r == 0) { - r = handle_timeouts(ctx); - goto done; - } - else if (r == -1 && errno == EINTR) { - r = LIBUSB_ERROR_INTERRUPTED; - goto done; - } - else if (r < 0) { - usbi_err(ctx, "poll failed %d err=%d", r, errno); - r = LIBUSB_ERROR_IO; - goto done; - } - - special_event = 0; - - /* fds[0] is always the event pipe */ - if (fds[0].revents) { - libusb_hotplug_message *message = NULL; - struct usbi_transfer *itransfer; - int ret = 0; - - usbi_dbg("caught a fish on the event pipe"); - - /* take the the event data lock while processing events */ - usbi_mutex_lock(&ctx->event_data_lock); - - /* check if someone added a new poll fd */ - if (ctx->event_flags & USBI_EVENT_POLLFDS_MODIFIED) - usbi_dbg("someone updated the poll fds"); - - if (ctx->event_flags & USBI_EVENT_USER_INTERRUPT) { - usbi_dbg("someone purposely interrupted"); - ctx->event_flags &= ~USBI_EVENT_USER_INTERRUPT; - } - - /* check if someone is closing a device */ - if (ctx->device_close) - usbi_dbg("someone is closing a device"); - - /* check for any pending hotplug messages */ - if (!list_empty(&ctx->hotplug_msgs)) { - usbi_dbg("hotplug message received"); - special_event = 1; - message = list_first_entry(&ctx->hotplug_msgs, libusb_hotplug_message, list); - list_del(&message->list); - } - - /* complete any pending transfers */ - while (ret == 0 && !list_empty(&ctx->completed_transfers)) { - itransfer = list_first_entry(&ctx->completed_transfers, struct usbi_transfer, completed_list); - list_del(&itransfer->completed_list); - usbi_mutex_unlock(&ctx->event_data_lock); - ret = usbi_backend->handle_transfer_completion(itransfer); - if (ret) - usbi_err(ctx, "backend handle_transfer_completion failed with error %d", ret); - usbi_mutex_lock(&ctx->event_data_lock); - } - - /* if no further pending events, clear the event pipe */ - if (!usbi_pending_events(ctx)) - usbi_clear_event(ctx); - - usbi_mutex_unlock(&ctx->event_data_lock); - - /* process the hotplug message, if any */ - if (message) { - usbi_hotplug_match(ctx, message->device, message->event); - - /* the device left, dereference the device */ - if (LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT == message->event) - libusb_unref_device(message->device); - - free(message); - } - - if (ret) { - /* return error code */ - r = ret; - goto done; - } - - if (0 == --r) - goto handled; - } - -#ifdef USBI_TIMERFD_AVAILABLE - /* on timerfd configurations, fds[1] is the timerfd */ - if (usbi_using_timerfd(ctx) && fds[1].revents) { - /* timerfd indicates that a timeout has expired */ - int ret; - usbi_dbg("timerfd triggered"); - special_event = 1; - - ret = handle_timerfd_trigger(ctx); - if (ret < 0) { - /* return error code */ - r = ret; - goto done; - } - - if (0 == --r) - goto handled; - } -#endif - - r = usbi_backend->handle_events(ctx, fds + internal_nfds, nfds - internal_nfds, r); - if (r) - usbi_err(ctx, "backend handle_events failed with error %d", r); - -handled: - if (r == 0 && special_event) { - timeout_ms = 0; - goto redo_poll; - } - -done: - usbi_end_event_handling(ctx); - return r; -} - -/* returns the smallest of: - * 1. timeout of next URB - * 2. user-supplied timeout - * returns 1 if there is an already-expired timeout, otherwise returns 0 - * and populates out - */ -static int get_next_timeout(libusb_context *ctx, struct timeval *tv, - struct timeval *out) -{ - struct timeval timeout; - int r = libusb_get_next_timeout(ctx, &timeout); - if (r) { - /* timeout already expired? */ - if (!timerisset(&timeout)) - return 1; - - /* choose the smallest of next URB timeout or user specified timeout */ - if (timercmp(&timeout, tv, <)) - *out = timeout; - else - *out = *tv; - } else { - *out = *tv; - } - return 0; -} - -/** \ingroup libusb_poll - * Handle any pending events. - * - * libusb determines "pending events" by checking if any timeouts have expired - * and by checking the set of file descriptors for activity. - * - * If a zero timeval is passed, this function will handle any already-pending - * events and then immediately return in non-blocking style. - * - * If a non-zero timeval is passed and no events are currently pending, this - * function will block waiting for events to handle up until the specified - * timeout. If an event arrives or a signal is raised, this function will - * return early. - * - * If the parameter completed is not NULL then after obtaining the event - * handling lock this function will return immediately if the integer - * pointed to is not 0. This allows for race free waiting for the completion - * of a specific transfer. - * - * \param ctx the context to operate on, or NULL for the default context - * \param tv the maximum time to block waiting for events, or an all zero - * timeval struct for non-blocking mode - * \param completed pointer to completion integer to check, or NULL - * \returns 0 on success, or a LIBUSB_ERROR code on failure - * \ref libusb_mtasync - */ -int API_EXPORTED libusb_handle_events_timeout_completed(libusb_context *ctx, - struct timeval *tv, int *completed) -{ - int r; - struct timeval poll_timeout; - - USBI_GET_CONTEXT(ctx); - r = get_next_timeout(ctx, tv, &poll_timeout); - if (r) { - /* timeout already expired */ - return handle_timeouts(ctx); - } - -retry: - if (libusb_try_lock_events(ctx) == 0) { - if (completed == NULL || !*completed) { - /* we obtained the event lock: do our own event handling */ - usbi_dbg("doing our own event handling"); - r = handle_events(ctx, &poll_timeout); - } - libusb_unlock_events(ctx); - return r; - } - - /* another thread is doing event handling. wait for thread events that - * notify event completion. */ - libusb_lock_event_waiters(ctx); - - if (completed && *completed) - goto already_done; - - if (!libusb_event_handler_active(ctx)) { - /* we hit a race: whoever was event handling earlier finished in the - * time it took us to reach this point. try the cycle again. */ - libusb_unlock_event_waiters(ctx); - usbi_dbg("event handler was active but went away, retrying"); - goto retry; - } - - usbi_dbg("another thread is doing event handling"); - r = libusb_wait_for_event(ctx, &poll_timeout); - -already_done: - libusb_unlock_event_waiters(ctx); - - if (r < 0) - return r; - else if (r == 1) - return handle_timeouts(ctx); - else - return 0; -} - -/** \ingroup libusb_poll - * Handle any pending events - * - * Like libusb_handle_events_timeout_completed(), but without the completed - * parameter, calling this function is equivalent to calling - * libusb_handle_events_timeout_completed() with a NULL completed parameter. - * - * This function is kept primarily for backwards compatibility. - * All new code should call libusb_handle_events_completed() or - * libusb_handle_events_timeout_completed() to avoid race conditions. - * - * \param ctx the context to operate on, or NULL for the default context - * \param tv the maximum time to block waiting for events, or an all zero - * timeval struct for non-blocking mode - * \returns 0 on success, or a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_handle_events_timeout(libusb_context *ctx, - struct timeval *tv) -{ - return libusb_handle_events_timeout_completed(ctx, tv, NULL); -} - -/** \ingroup libusb_poll - * Handle any pending events in blocking mode. There is currently a timeout - * hardcoded at 60 seconds but we plan to make it unlimited in future. For - * finer control over whether this function is blocking or non-blocking, or - * for control over the timeout, use libusb_handle_events_timeout_completed() - * instead. - * - * This function is kept primarily for backwards compatibility. - * All new code should call libusb_handle_events_completed() or - * libusb_handle_events_timeout_completed() to avoid race conditions. - * - * \param ctx the context to operate on, or NULL for the default context - * \returns 0 on success, or a LIBUSB_ERROR code on failure - */ -int API_EXPORTED libusb_handle_events(libusb_context *ctx) -{ - struct timeval tv; - tv.tv_sec = 60; - tv.tv_usec = 0; - return libusb_handle_events_timeout_completed(ctx, &tv, NULL); -} - -/** \ingroup libusb_poll - * Handle any pending events in blocking mode. - * - * Like libusb_handle_events(), with the addition of a completed parameter - * to allow for race free waiting for the completion of a specific transfer. - * - * See libusb_handle_events_timeout_completed() for details on the completed - * parameter. - * - * \param ctx the context to operate on, or NULL for the default context - * \param completed pointer to completion integer to check, or NULL - * \returns 0 on success, or a LIBUSB_ERROR code on failure - * \ref libusb_mtasync - */ -int API_EXPORTED libusb_handle_events_completed(libusb_context *ctx, - int *completed) -{ - struct timeval tv; - tv.tv_sec = 60; - tv.tv_usec = 0; - return libusb_handle_events_timeout_completed(ctx, &tv, completed); -} - -/** \ingroup libusb_poll - * Handle any pending events by polling file descriptors, without checking if - * any other threads are already doing so. Must be called with the event lock - * held, see libusb_lock_events(). - * - * This function is designed to be called under the situation where you have - * taken the event lock and are calling poll()/select() directly on libusb's - * file descriptors (as opposed to using libusb_handle_events() or similar). - * You detect events on libusb's descriptors, so you then call this function - * with a zero timeout value (while still holding the event lock). - * - * \param ctx the context to operate on, or NULL for the default context - * \param tv the maximum time to block waiting for events, or zero for - * non-blocking mode - * \returns 0 on success, or a LIBUSB_ERROR code on failure - * \ref libusb_mtasync - */ -int API_EXPORTED libusb_handle_events_locked(libusb_context *ctx, - struct timeval *tv) -{ - int r; - struct timeval poll_timeout; - - USBI_GET_CONTEXT(ctx); - r = get_next_timeout(ctx, tv, &poll_timeout); - if (r) { - /* timeout already expired */ - return handle_timeouts(ctx); - } - - return handle_events(ctx, &poll_timeout); -} - -/** \ingroup libusb_poll - * Determines whether your application must apply special timing considerations - * when monitoring libusb's file descriptors. - * - * This function is only useful for applications which retrieve and poll - * libusb's file descriptors in their own main loop (\ref libusb_pollmain). - * - * Ordinarily, libusb's event handler needs to be called into at specific - * moments in time (in addition to times when there is activity on the file - * descriptor set). The usual approach is to use libusb_get_next_timeout() - * to learn about when the next timeout occurs, and to adjust your - * poll()/select() timeout accordingly so that you can make a call into the - * library at that time. - * - * Some platforms supported by libusb do not come with this baggage - any - * events relevant to timing will be represented by activity on the file - * descriptor set, and libusb_get_next_timeout() will always return 0. - * This function allows you to detect whether you are running on such a - * platform. - * - * Since v1.0.5. - * - * \param ctx the context to operate on, or NULL for the default context - * \returns 0 if you must call into libusb at times determined by - * libusb_get_next_timeout(), or 1 if all timeout events are handled internally - * or through regular activity on the file descriptors. - * \ref libusb_pollmain "Polling libusb file descriptors for event handling" - */ -int API_EXPORTED libusb_pollfds_handle_timeouts(libusb_context *ctx) -{ -#if defined(USBI_TIMERFD_AVAILABLE) - USBI_GET_CONTEXT(ctx); - return usbi_using_timerfd(ctx); -#else - UNUSED(ctx); - return 0; -#endif -} - -/** \ingroup libusb_poll - * Determine the next internal timeout that libusb needs to handle. You only - * need to use this function if you are calling poll() or select() or similar - * on libusb's file descriptors yourself - you do not need to use it if you - * are calling libusb_handle_events() or a variant directly. - * - * You should call this function in your main loop in order to determine how - * long to wait for select() or poll() to return results. libusb needs to be - * called into at this timeout, so you should use it as an upper bound on - * your select() or poll() call. - * - * When the timeout has expired, call into libusb_handle_events_timeout() - * (perhaps in non-blocking mode) so that libusb can handle the timeout. - * - * This function may return 1 (success) and an all-zero timeval. If this is - * the case, it indicates that libusb has a timeout that has already expired - * so you should call libusb_handle_events_timeout() or similar immediately. - * A return code of 0 indicates that there are no pending timeouts. - * - * On some platforms, this function will always returns 0 (no pending - * timeouts). See \ref polltime. - * - * \param ctx the context to operate on, or NULL for the default context - * \param tv output location for a relative time against the current - * clock in which libusb must be called into in order to process timeout events - * \returns 0 if there are no pending timeouts, 1 if a timeout was returned, - * or LIBUSB_ERROR_OTHER on failure - */ -int API_EXPORTED libusb_get_next_timeout(libusb_context *ctx, - struct timeval *tv) -{ - struct usbi_transfer *transfer; - struct timespec cur_ts; - struct timeval cur_tv; - struct timeval next_timeout = { 0, 0 }; - int r; - - USBI_GET_CONTEXT(ctx); - if (usbi_using_timerfd(ctx)) - return 0; - - usbi_mutex_lock(&ctx->flying_transfers_lock); - if (list_empty(&ctx->flying_transfers)) { - usbi_mutex_unlock(&ctx->flying_transfers_lock); - usbi_dbg("no URBs, no timeout!"); - return 0; - } - - /* find next transfer which hasn't already been processed as timed out */ - list_for_each_entry(transfer, &ctx->flying_transfers, list, struct usbi_transfer) { - if (transfer->timeout_flags & (USBI_TRANSFER_TIMEOUT_HANDLED | USBI_TRANSFER_OS_HANDLES_TIMEOUT)) - continue; - - /* if we've reached transfers of infinte timeout, we're done looking */ - if (!timerisset(&transfer->timeout)) - break; - - next_timeout = transfer->timeout; - break; - } - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - if (!timerisset(&next_timeout)) { - usbi_dbg("no URB with timeout or all handled by OS; no timeout!"); - return 0; - } - - r = usbi_backend->clock_gettime(USBI_CLOCK_MONOTONIC, &cur_ts); - if (r < 0) { - usbi_err(ctx, "failed to read monotonic clock, errno=%d", errno); - return 0; - } - TIMESPEC_TO_TIMEVAL(&cur_tv, &cur_ts); - - if (!timercmp(&cur_tv, &next_timeout, <)) { - usbi_dbg("first timeout already expired"); - timerclear(tv); - } else { - timersub(&next_timeout, &cur_tv, tv); - usbi_dbg("next timeout in %d.%06ds", tv->tv_sec, tv->tv_usec); - } - - return 1; -} - -/** \ingroup libusb_poll - * Register notification functions for file descriptor additions/removals. - * These functions will be invoked for every new or removed file descriptor - * that libusb uses as an event source. - * - * To remove notifiers, pass NULL values for the function pointers. - * - * Note that file descriptors may have been added even before you register - * these notifiers (e.g. at libusb_init() time). - * - * Additionally, note that the removal notifier may be called during - * libusb_exit() (e.g. when it is closing file descriptors that were opened - * and added to the poll set at libusb_init() time). If you don't want this, - * remove the notifiers immediately before calling libusb_exit(). - * - * \param ctx the context to operate on, or NULL for the default context - * \param added_cb pointer to function for addition notifications - * \param removed_cb pointer to function for removal notifications - * \param user_data User data to be passed back to callbacks (useful for - * passing context information) - */ -void API_EXPORTED libusb_set_pollfd_notifiers(libusb_context *ctx, - libusb_pollfd_added_cb added_cb, libusb_pollfd_removed_cb removed_cb, - void *user_data) -{ - USBI_GET_CONTEXT(ctx); - ctx->fd_added_cb = added_cb; - ctx->fd_removed_cb = removed_cb; - ctx->fd_cb_user_data = user_data; -} - -/* - * Interrupt the iteration of the event handling thread, so that it picks - * up the fd change. Callers of this function must hold the event_data_lock. - */ -static void usbi_fd_notification(struct libusb_context *ctx) -{ - int pending_events; - - /* Record that there is a new poll fd. - * Only signal an event if there are no prior pending events. */ - pending_events = usbi_pending_events(ctx); - ctx->event_flags |= USBI_EVENT_POLLFDS_MODIFIED; - if (!pending_events) - usbi_signal_event(ctx); -} - -/* Add a file descriptor to the list of file descriptors to be monitored. - * events should be specified as a bitmask of events passed to poll(), e.g. - * POLLIN and/or POLLOUT. */ -int usbi_add_pollfd(struct libusb_context *ctx, int fd, short events) -{ - struct usbi_pollfd *ipollfd = malloc(sizeof(*ipollfd)); - if (!ipollfd) - return LIBUSB_ERROR_NO_MEM; - - usbi_dbg("add fd %d events %d", fd, events); - ipollfd->pollfd.fd = fd; - ipollfd->pollfd.events = events; - usbi_mutex_lock(&ctx->event_data_lock); - list_add_tail(&ipollfd->list, &ctx->ipollfds); - ctx->pollfds_cnt++; - usbi_fd_notification(ctx); - usbi_mutex_unlock(&ctx->event_data_lock); - - if (ctx->fd_added_cb) - ctx->fd_added_cb(fd, events, ctx->fd_cb_user_data); - return 0; -} - -/* Remove a file descriptor from the list of file descriptors to be polled. */ -void usbi_remove_pollfd(struct libusb_context *ctx, int fd) -{ - struct usbi_pollfd *ipollfd; - int found = 0; - - usbi_dbg("remove fd %d", fd); - usbi_mutex_lock(&ctx->event_data_lock); - list_for_each_entry(ipollfd, &ctx->ipollfds, list, struct usbi_pollfd) - if (ipollfd->pollfd.fd == fd) { - found = 1; - break; - } - - if (!found) { - usbi_dbg("couldn't find fd %d to remove", fd); - usbi_mutex_unlock(&ctx->event_data_lock); - return; - } - - list_del(&ipollfd->list); - ctx->pollfds_cnt--; - usbi_fd_notification(ctx); - usbi_mutex_unlock(&ctx->event_data_lock); - free(ipollfd); - if (ctx->fd_removed_cb) - ctx->fd_removed_cb(fd, ctx->fd_cb_user_data); -} - -/** \ingroup libusb_poll - * Retrieve a list of file descriptors that should be polled by your main loop - * as libusb event sources. - * - * The returned list is NULL-terminated and should be freed with libusb_free_pollfds() - * when done. The actual list contents must not be touched. - * - * As file descriptors are a Unix-specific concept, this function is not - * available on Windows and will always return NULL. - * - * \param ctx the context to operate on, or NULL for the default context - * \returns a NULL-terminated list of libusb_pollfd structures - * \returns NULL on error - * \returns NULL on platforms where the functionality is not available - */ -DEFAULT_VISIBILITY -const struct libusb_pollfd ** LIBUSB_CALL libusb_get_pollfds( - libusb_context *ctx) -{ -#ifndef OS_WINDOWS - struct libusb_pollfd **ret = NULL; - struct usbi_pollfd *ipollfd; - size_t i = 0; - USBI_GET_CONTEXT(ctx); - - usbi_mutex_lock(&ctx->event_data_lock); - - ret = calloc(ctx->pollfds_cnt + 1, sizeof(struct libusb_pollfd *)); - if (!ret) - goto out; - - list_for_each_entry(ipollfd, &ctx->ipollfds, list, struct usbi_pollfd) - ret[i++] = (struct libusb_pollfd *) ipollfd; - ret[ctx->pollfds_cnt] = NULL; - -out: - usbi_mutex_unlock(&ctx->event_data_lock); - return (const struct libusb_pollfd **) ret; -#else - usbi_err(ctx, "external polling of libusb's internal descriptors "\ - "is not yet supported on Windows platforms"); - return NULL; -#endif -} - -/** \ingroup libusb_poll - * Free a list of libusb_pollfd structures. This should be called for all - * pollfd lists allocated with libusb_get_pollfds(). - * - * Since version 1.0.20, \ref LIBUSB_API_VERSION >= 0x01000104 - * - * It is legal to call this function with a NULL pollfd list. In this case, - * the function will simply return safely. - * - * \param pollfds the list of libusb_pollfd structures to free - */ -void API_EXPORTED libusb_free_pollfds(const struct libusb_pollfd **pollfds) -{ - if (!pollfds) - return; - - free((void *)pollfds); -} - -/* Backends may call this from handle_events to report disconnection of a - * device. This function ensures transfers get cancelled appropriately. - * Callers of this function must hold the events_lock. - */ -void usbi_handle_disconnect(struct libusb_device_handle *dev_handle) -{ - struct usbi_transfer *cur; - struct usbi_transfer *to_cancel; - - usbi_dbg("device %d.%d", - dev_handle->dev->bus_number, dev_handle->dev->device_address); - - /* terminate all pending transfers with the LIBUSB_TRANSFER_NO_DEVICE - * status code. - * - * when we find a transfer for this device on the list, there are two - * possible scenarios: - * 1. the transfer is currently in-flight, in which case we terminate the - * transfer here - * 2. the transfer has been added to the flying transfer list by - * libusb_submit_transfer, has failed to submit and - * libusb_submit_transfer is waiting for us to release the - * flying_transfers_lock to remove it, so we ignore it - */ - - while (1) { - to_cancel = NULL; - usbi_mutex_lock(&HANDLE_CTX(dev_handle)->flying_transfers_lock); - list_for_each_entry(cur, &HANDLE_CTX(dev_handle)->flying_transfers, list, struct usbi_transfer) - if (USBI_TRANSFER_TO_LIBUSB_TRANSFER(cur)->dev_handle == dev_handle) { - usbi_mutex_lock(&cur->lock); - if (cur->state_flags & USBI_TRANSFER_IN_FLIGHT) - to_cancel = cur; - usbi_mutex_unlock(&cur->lock); - - if (to_cancel) - break; - } - usbi_mutex_unlock(&HANDLE_CTX(dev_handle)->flying_transfers_lock); - - if (!to_cancel) - break; - - usbi_dbg("cancelling transfer %p from disconnect", - USBI_TRANSFER_TO_LIBUSB_TRANSFER(to_cancel)); - - usbi_mutex_lock(&to_cancel->lock); - usbi_backend->clear_transfer_priv(to_cancel); - usbi_mutex_unlock(&to_cancel->lock); - usbi_handle_transfer_completion(to_cancel, LIBUSB_TRANSFER_NO_DEVICE); - } - -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/libusb.h b/vendor/github.com/karalabe/hid/libusb/libusb/libusb.h deleted file mode 100644 index c562690f..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/libusb.h +++ /dev/null @@ -1,2008 +0,0 @@ -/* - * Public libusb header file - * Copyright © 2001 Johannes Erdfelt - * Copyright © 2007-2008 Daniel Drake - * Copyright © 2012 Pete Batard - * Copyright © 2012 Nathan Hjelm - * For more information, please visit: http://libusb.info - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef LIBUSB_H -#define LIBUSB_H - -#ifdef _MSC_VER -/* on MS environments, the inline keyword is available in C++ only */ -#if !defined(__cplusplus) -#define inline __inline -#endif -/* ssize_t is also not available (copy/paste from MinGW) */ -#ifndef _SSIZE_T_DEFINED -#define _SSIZE_T_DEFINED -#undef ssize_t -#ifdef _WIN64 - typedef __int64 ssize_t; -#else - typedef int ssize_t; -#endif /* _WIN64 */ -#endif /* _SSIZE_T_DEFINED */ -#endif /* _MSC_VER */ - -/* stdint.h is not available on older MSVC */ -#if defined(_MSC_VER) && (_MSC_VER < 1600) && (!defined(_STDINT)) && (!defined(_STDINT_H)) -typedef unsigned __int8 uint8_t; -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -#else -#include -#endif - -#if !defined(_WIN32_WCE) -#include -#endif - -#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__HAIKU__) -#include -#endif - -#include -#include - -/* 'interface' might be defined as a macro on Windows, so we need to - * undefine it so as not to break the current libusb API, because - * libusb_config_descriptor has an 'interface' member - * As this can be problematic if you include windows.h after libusb.h - * in your sources, we force windows.h to be included first. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -#include -#if defined(interface) -#undef interface -#endif -#if !defined(__CYGWIN__) -#include -#endif -#endif - -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -#define LIBUSB_DEPRECATED_FOR(f) \ - __attribute__((deprecated("Use " #f " instead"))) -#else -#define LIBUSB_DEPRECATED_FOR(f) -#endif /* __GNUC__ */ - -/** \def LIBUSB_CALL - * \ingroup libusb_misc - * libusb's Windows calling convention. - * - * Under Windows, the selection of available compilers and configurations - * means that, unlike other platforms, there is not one true calling - * convention (calling convention: the manner in which parameters are - * passed to functions in the generated assembly code). - * - * Matching the Windows API itself, libusb uses the WINAPI convention (which - * translates to the stdcall convention) and guarantees that the - * library is compiled in this way. The public header file also includes - * appropriate annotations so that your own software will use the right - * convention, even if another convention is being used by default within - * your codebase. - * - * The one consideration that you must apply in your software is to mark - * all functions which you use as libusb callbacks with this LIBUSB_CALL - * annotation, so that they too get compiled for the correct calling - * convention. - * - * On non-Windows operating systems, this macro is defined as nothing. This - * means that you can apply it to your code without worrying about - * cross-platform compatibility. - */ -/* LIBUSB_CALL must be defined on both definition and declaration of libusb - * functions. You'd think that declaration would be enough, but cygwin will - * complain about conflicting types unless both are marked this way. - * The placement of this macro is important too; it must appear after the - * return type, before the function name. See internal documentation for - * API_EXPORTED. - */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -#define LIBUSB_CALL WINAPI -#else -#define LIBUSB_CALL -#endif - -/** \def LIBUSB_API_VERSION - * \ingroup libusb_misc - * libusb's API version. - * - * Since version 1.0.13, to help with feature detection, libusb defines - * a LIBUSB_API_VERSION macro that gets increased every time there is a - * significant change to the API, such as the introduction of a new call, - * the definition of a new macro/enum member, or any other element that - * libusb applications may want to detect at compilation time. - * - * The macro is typically used in an application as follows: - * \code - * #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01001234) - * // Use one of the newer features from the libusb API - * #endif - * \endcode - * - * Internally, LIBUSB_API_VERSION is defined as follows: - * (libusb major << 24) | (libusb minor << 16) | (16 bit incremental) - */ -#define LIBUSB_API_VERSION 0x01000105 - -/* The following is kept for compatibility, but will be deprecated in the future */ -#define LIBUSBX_API_VERSION LIBUSB_API_VERSION - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \ingroup libusb_misc - * Convert a 16-bit value from host-endian to little-endian format. On - * little endian systems, this function does nothing. On big endian systems, - * the bytes are swapped. - * \param x the host-endian value to convert - * \returns the value in little-endian byte order - */ -static inline uint16_t libusb_cpu_to_le16(const uint16_t x) -{ - union { - uint8_t b8[2]; - uint16_t b16; - } _tmp; - _tmp.b8[1] = (uint8_t) (x >> 8); - _tmp.b8[0] = (uint8_t) (x & 0xff); - return _tmp.b16; -} - -/** \def libusb_le16_to_cpu - * \ingroup libusb_misc - * Convert a 16-bit value from little-endian to host-endian format. On - * little endian systems, this function does nothing. On big endian systems, - * the bytes are swapped. - * \param x the little-endian value to convert - * \returns the value in host-endian byte order - */ -#define libusb_le16_to_cpu libusb_cpu_to_le16 - -/* standard USB stuff */ - -/** \ingroup libusb_desc - * Device and/or Interface Class codes */ -enum libusb_class_code { - /** In the context of a \ref libusb_device_descriptor "device descriptor", - * this bDeviceClass value indicates that each interface specifies its - * own class information and all interfaces operate independently. - */ - LIBUSB_CLASS_PER_INTERFACE = 0, - - /** Audio class */ - LIBUSB_CLASS_AUDIO = 1, - - /** Communications class */ - LIBUSB_CLASS_COMM = 2, - - /** Human Interface Device class */ - LIBUSB_CLASS_HID = 3, - - /** Physical */ - LIBUSB_CLASS_PHYSICAL = 5, - - /** Printer class */ - LIBUSB_CLASS_PRINTER = 7, - - /** Image class */ - LIBUSB_CLASS_PTP = 6, /* legacy name from libusb-0.1 usb.h */ - LIBUSB_CLASS_IMAGE = 6, - - /** Mass storage class */ - LIBUSB_CLASS_MASS_STORAGE = 8, - - /** Hub class */ - LIBUSB_CLASS_HUB = 9, - - /** Data class */ - LIBUSB_CLASS_DATA = 10, - - /** Smart Card */ - LIBUSB_CLASS_SMART_CARD = 0x0b, - - /** Content Security */ - LIBUSB_CLASS_CONTENT_SECURITY = 0x0d, - - /** Video */ - LIBUSB_CLASS_VIDEO = 0x0e, - - /** Personal Healthcare */ - LIBUSB_CLASS_PERSONAL_HEALTHCARE = 0x0f, - - /** Diagnostic Device */ - LIBUSB_CLASS_DIAGNOSTIC_DEVICE = 0xdc, - - /** Wireless class */ - LIBUSB_CLASS_WIRELESS = 0xe0, - - /** Application class */ - LIBUSB_CLASS_APPLICATION = 0xfe, - - /** Class is vendor-specific */ - LIBUSB_CLASS_VENDOR_SPEC = 0xff -}; - -/** \ingroup libusb_desc - * Descriptor types as defined by the USB specification. */ -enum libusb_descriptor_type { - /** Device descriptor. See libusb_device_descriptor. */ - LIBUSB_DT_DEVICE = 0x01, - - /** Configuration descriptor. See libusb_config_descriptor. */ - LIBUSB_DT_CONFIG = 0x02, - - /** String descriptor */ - LIBUSB_DT_STRING = 0x03, - - /** Interface descriptor. See libusb_interface_descriptor. */ - LIBUSB_DT_INTERFACE = 0x04, - - /** Endpoint descriptor. See libusb_endpoint_descriptor. */ - LIBUSB_DT_ENDPOINT = 0x05, - - /** BOS descriptor */ - LIBUSB_DT_BOS = 0x0f, - - /** Device Capability descriptor */ - LIBUSB_DT_DEVICE_CAPABILITY = 0x10, - - /** HID descriptor */ - LIBUSB_DT_HID = 0x21, - - /** HID report descriptor */ - LIBUSB_DT_REPORT = 0x22, - - /** Physical descriptor */ - LIBUSB_DT_PHYSICAL = 0x23, - - /** Hub descriptor */ - LIBUSB_DT_HUB = 0x29, - - /** SuperSpeed Hub descriptor */ - LIBUSB_DT_SUPERSPEED_HUB = 0x2a, - - /** SuperSpeed Endpoint Companion descriptor */ - LIBUSB_DT_SS_ENDPOINT_COMPANION = 0x30 -}; - -/* Descriptor sizes per descriptor type */ -#define LIBUSB_DT_DEVICE_SIZE 18 -#define LIBUSB_DT_CONFIG_SIZE 9 -#define LIBUSB_DT_INTERFACE_SIZE 9 -#define LIBUSB_DT_ENDPOINT_SIZE 7 -#define LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ -#define LIBUSB_DT_HUB_NONVAR_SIZE 7 -#define LIBUSB_DT_SS_ENDPOINT_COMPANION_SIZE 6 -#define LIBUSB_DT_BOS_SIZE 5 -#define LIBUSB_DT_DEVICE_CAPABILITY_SIZE 3 - -/* BOS descriptor sizes */ -#define LIBUSB_BT_USB_2_0_EXTENSION_SIZE 7 -#define LIBUSB_BT_SS_USB_DEVICE_CAPABILITY_SIZE 10 -#define LIBUSB_BT_CONTAINER_ID_SIZE 20 - -/* We unwrap the BOS => define its max size */ -#define LIBUSB_DT_BOS_MAX_SIZE ((LIBUSB_DT_BOS_SIZE) +\ - (LIBUSB_BT_USB_2_0_EXTENSION_SIZE) +\ - (LIBUSB_BT_SS_USB_DEVICE_CAPABILITY_SIZE) +\ - (LIBUSB_BT_CONTAINER_ID_SIZE)) - -#define LIBUSB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ -#define LIBUSB_ENDPOINT_DIR_MASK 0x80 - -/** \ingroup libusb_desc - * Endpoint direction. Values for bit 7 of the - * \ref libusb_endpoint_descriptor::bEndpointAddress "endpoint address" scheme. - */ -enum libusb_endpoint_direction { - /** In: device-to-host */ - LIBUSB_ENDPOINT_IN = 0x80, - - /** Out: host-to-device */ - LIBUSB_ENDPOINT_OUT = 0x00 -}; - -#define LIBUSB_TRANSFER_TYPE_MASK 0x03 /* in bmAttributes */ - -/** \ingroup libusb_desc - * Endpoint transfer type. Values for bits 0:1 of the - * \ref libusb_endpoint_descriptor::bmAttributes "endpoint attributes" field. - */ -enum libusb_transfer_type { - /** Control endpoint */ - LIBUSB_TRANSFER_TYPE_CONTROL = 0, - - /** Isochronous endpoint */ - LIBUSB_TRANSFER_TYPE_ISOCHRONOUS = 1, - - /** Bulk endpoint */ - LIBUSB_TRANSFER_TYPE_BULK = 2, - - /** Interrupt endpoint */ - LIBUSB_TRANSFER_TYPE_INTERRUPT = 3, - - /** Stream endpoint */ - LIBUSB_TRANSFER_TYPE_BULK_STREAM = 4, -}; - -/** \ingroup libusb_misc - * Standard requests, as defined in table 9-5 of the USB 3.0 specifications */ -enum libusb_standard_request { - /** Request status of the specific recipient */ - LIBUSB_REQUEST_GET_STATUS = 0x00, - - /** Clear or disable a specific feature */ - LIBUSB_REQUEST_CLEAR_FEATURE = 0x01, - - /* 0x02 is reserved */ - - /** Set or enable a specific feature */ - LIBUSB_REQUEST_SET_FEATURE = 0x03, - - /* 0x04 is reserved */ - - /** Set device address for all future accesses */ - LIBUSB_REQUEST_SET_ADDRESS = 0x05, - - /** Get the specified descriptor */ - LIBUSB_REQUEST_GET_DESCRIPTOR = 0x06, - - /** Used to update existing descriptors or add new descriptors */ - LIBUSB_REQUEST_SET_DESCRIPTOR = 0x07, - - /** Get the current device configuration value */ - LIBUSB_REQUEST_GET_CONFIGURATION = 0x08, - - /** Set device configuration */ - LIBUSB_REQUEST_SET_CONFIGURATION = 0x09, - - /** Return the selected alternate setting for the specified interface */ - LIBUSB_REQUEST_GET_INTERFACE = 0x0A, - - /** Select an alternate interface for the specified interface */ - LIBUSB_REQUEST_SET_INTERFACE = 0x0B, - - /** Set then report an endpoint's synchronization frame */ - LIBUSB_REQUEST_SYNCH_FRAME = 0x0C, - - /** Sets both the U1 and U2 Exit Latency */ - LIBUSB_REQUEST_SET_SEL = 0x30, - - /** Delay from the time a host transmits a packet to the time it is - * received by the device. */ - LIBUSB_SET_ISOCH_DELAY = 0x31, -}; - -/** \ingroup libusb_misc - * Request type bits of the - * \ref libusb_control_setup::bmRequestType "bmRequestType" field in control - * transfers. */ -enum libusb_request_type { - /** Standard */ - LIBUSB_REQUEST_TYPE_STANDARD = (0x00 << 5), - - /** Class */ - LIBUSB_REQUEST_TYPE_CLASS = (0x01 << 5), - - /** Vendor */ - LIBUSB_REQUEST_TYPE_VENDOR = (0x02 << 5), - - /** Reserved */ - LIBUSB_REQUEST_TYPE_RESERVED = (0x03 << 5) -}; - -/** \ingroup libusb_misc - * Recipient bits of the - * \ref libusb_control_setup::bmRequestType "bmRequestType" field in control - * transfers. Values 4 through 31 are reserved. */ -enum libusb_request_recipient { - /** Device */ - LIBUSB_RECIPIENT_DEVICE = 0x00, - - /** Interface */ - LIBUSB_RECIPIENT_INTERFACE = 0x01, - - /** Endpoint */ - LIBUSB_RECIPIENT_ENDPOINT = 0x02, - - /** Other */ - LIBUSB_RECIPIENT_OTHER = 0x03, -}; - -#define LIBUSB_ISO_SYNC_TYPE_MASK 0x0C - -/** \ingroup libusb_desc - * Synchronization type for isochronous endpoints. Values for bits 2:3 of the - * \ref libusb_endpoint_descriptor::bmAttributes "bmAttributes" field in - * libusb_endpoint_descriptor. - */ -enum libusb_iso_sync_type { - /** No synchronization */ - LIBUSB_ISO_SYNC_TYPE_NONE = 0, - - /** Asynchronous */ - LIBUSB_ISO_SYNC_TYPE_ASYNC = 1, - - /** Adaptive */ - LIBUSB_ISO_SYNC_TYPE_ADAPTIVE = 2, - - /** Synchronous */ - LIBUSB_ISO_SYNC_TYPE_SYNC = 3 -}; - -#define LIBUSB_ISO_USAGE_TYPE_MASK 0x30 - -/** \ingroup libusb_desc - * Usage type for isochronous endpoints. Values for bits 4:5 of the - * \ref libusb_endpoint_descriptor::bmAttributes "bmAttributes" field in - * libusb_endpoint_descriptor. - */ -enum libusb_iso_usage_type { - /** Data endpoint */ - LIBUSB_ISO_USAGE_TYPE_DATA = 0, - - /** Feedback endpoint */ - LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1, - - /** Implicit feedback Data endpoint */ - LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2, -}; - -/** \ingroup libusb_desc - * A structure representing the standard USB device descriptor. This - * descriptor is documented in section 9.6.1 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_device_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE LIBUSB_DT_DEVICE in this - * context. */ - uint8_t bDescriptorType; - - /** USB specification release number in binary-coded decimal. A value of - * 0x0200 indicates USB 2.0, 0x0110 indicates USB 1.1, etc. */ - uint16_t bcdUSB; - - /** USB-IF class code for the device. See \ref libusb_class_code. */ - uint8_t bDeviceClass; - - /** USB-IF subclass code for the device, qualified by the bDeviceClass - * value */ - uint8_t bDeviceSubClass; - - /** USB-IF protocol code for the device, qualified by the bDeviceClass and - * bDeviceSubClass values */ - uint8_t bDeviceProtocol; - - /** Maximum packet size for endpoint 0 */ - uint8_t bMaxPacketSize0; - - /** USB-IF vendor ID */ - uint16_t idVendor; - - /** USB-IF product ID */ - uint16_t idProduct; - - /** Device release number in binary-coded decimal */ - uint16_t bcdDevice; - - /** Index of string descriptor describing manufacturer */ - uint8_t iManufacturer; - - /** Index of string descriptor describing product */ - uint8_t iProduct; - - /** Index of string descriptor containing device serial number */ - uint8_t iSerialNumber; - - /** Number of possible configurations */ - uint8_t bNumConfigurations; -}; - -/** \ingroup libusb_desc - * A structure representing the standard USB endpoint descriptor. This - * descriptor is documented in section 9.6.6 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_endpoint_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_ENDPOINT LIBUSB_DT_ENDPOINT in - * this context. */ - uint8_t bDescriptorType; - - /** The address of the endpoint described by this descriptor. Bits 0:3 are - * the endpoint number. Bits 4:6 are reserved. Bit 7 indicates direction, - * see \ref libusb_endpoint_direction. - */ - uint8_t bEndpointAddress; - - /** Attributes which apply to the endpoint when it is configured using - * the bConfigurationValue. Bits 0:1 determine the transfer type and - * correspond to \ref libusb_transfer_type. Bits 2:3 are only used for - * isochronous endpoints and correspond to \ref libusb_iso_sync_type. - * Bits 4:5 are also only used for isochronous endpoints and correspond to - * \ref libusb_iso_usage_type. Bits 6:7 are reserved. - */ - uint8_t bmAttributes; - - /** Maximum packet size this endpoint is capable of sending/receiving. */ - uint16_t wMaxPacketSize; - - /** Interval for polling endpoint for data transfers. */ - uint8_t bInterval; - - /** For audio devices only: the rate at which synchronization feedback - * is provided. */ - uint8_t bRefresh; - - /** For audio devices only: the address if the synch endpoint */ - uint8_t bSynchAddress; - - /** Extra descriptors. If libusb encounters unknown endpoint descriptors, - * it will store them here, should you wish to parse them. */ - const unsigned char *extra; - - /** Length of the extra descriptors, in bytes. */ - int extra_length; -}; - -/** \ingroup libusb_desc - * A structure representing the standard USB interface descriptor. This - * descriptor is documented in section 9.6.5 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_interface_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_INTERFACE LIBUSB_DT_INTERFACE - * in this context. */ - uint8_t bDescriptorType; - - /** Number of this interface */ - uint8_t bInterfaceNumber; - - /** Value used to select this alternate setting for this interface */ - uint8_t bAlternateSetting; - - /** Number of endpoints used by this interface (excluding the control - * endpoint). */ - uint8_t bNumEndpoints; - - /** USB-IF class code for this interface. See \ref libusb_class_code. */ - uint8_t bInterfaceClass; - - /** USB-IF subclass code for this interface, qualified by the - * bInterfaceClass value */ - uint8_t bInterfaceSubClass; - - /** USB-IF protocol code for this interface, qualified by the - * bInterfaceClass and bInterfaceSubClass values */ - uint8_t bInterfaceProtocol; - - /** Index of string descriptor describing this interface */ - uint8_t iInterface; - - /** Array of endpoint descriptors. This length of this array is determined - * by the bNumEndpoints field. */ - const struct libusb_endpoint_descriptor *endpoint; - - /** Extra descriptors. If libusb encounters unknown interface descriptors, - * it will store them here, should you wish to parse them. */ - const unsigned char *extra; - - /** Length of the extra descriptors, in bytes. */ - int extra_length; -}; - -/** \ingroup libusb_desc - * A collection of alternate settings for a particular USB interface. - */ -struct libusb_interface { - /** Array of interface descriptors. The length of this array is determined - * by the num_altsetting field. */ - const struct libusb_interface_descriptor *altsetting; - - /** The number of alternate settings that belong to this interface */ - int num_altsetting; -}; - -/** \ingroup libusb_desc - * A structure representing the standard USB configuration descriptor. This - * descriptor is documented in section 9.6.3 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_config_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_CONFIG LIBUSB_DT_CONFIG - * in this context. */ - uint8_t bDescriptorType; - - /** Total length of data returned for this configuration */ - uint16_t wTotalLength; - - /** Number of interfaces supported by this configuration */ - uint8_t bNumInterfaces; - - /** Identifier value for this configuration */ - uint8_t bConfigurationValue; - - /** Index of string descriptor describing this configuration */ - uint8_t iConfiguration; - - /** Configuration characteristics */ - uint8_t bmAttributes; - - /** Maximum power consumption of the USB device from this bus in this - * configuration when the device is fully operation. Expressed in units - * of 2 mA when the device is operating in high-speed mode and in units - * of 8 mA when the device is operating in super-speed mode. */ - uint8_t MaxPower; - - /** Array of interfaces supported by this configuration. The length of - * this array is determined by the bNumInterfaces field. */ - const struct libusb_interface *interface; - - /** Extra descriptors. If libusb encounters unknown configuration - * descriptors, it will store them here, should you wish to parse them. */ - const unsigned char *extra; - - /** Length of the extra descriptors, in bytes. */ - int extra_length; -}; - -/** \ingroup libusb_desc - * A structure representing the superspeed endpoint companion - * descriptor. This descriptor is documented in section 9.6.7 of - * the USB 3.0 specification. All multiple-byte fields are represented in - * host-endian format. - */ -struct libusb_ss_endpoint_companion_descriptor { - - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_SS_ENDPOINT_COMPANION in - * this context. */ - uint8_t bDescriptorType; - - - /** The maximum number of packets the endpoint can send or - * receive as part of a burst. */ - uint8_t bMaxBurst; - - /** In bulk EP: bits 4:0 represents the maximum number of - * streams the EP supports. In isochronous EP: bits 1:0 - * represents the Mult - a zero based value that determines - * the maximum number of packets within a service interval */ - uint8_t bmAttributes; - - /** The total number of bytes this EP will transfer every - * service interval. valid only for periodic EPs. */ - uint16_t wBytesPerInterval; -}; - -/** \ingroup libusb_desc - * A generic representation of a BOS Device Capability descriptor. It is - * advised to check bDevCapabilityType and call the matching - * libusb_get_*_descriptor function to get a structure fully matching the type. - */ -struct libusb_bos_dev_capability_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE_CAPABILITY - * LIBUSB_DT_DEVICE_CAPABILITY in this context. */ - uint8_t bDescriptorType; - /** Device Capability type */ - uint8_t bDevCapabilityType; - /** Device Capability data (bLength - 3 bytes) */ - uint8_t dev_capability_data -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - [] /* valid C99 code */ -#else - [0] /* non-standard, but usually working code */ -#endif - ; -}; - -/** \ingroup libusb_desc - * A structure representing the Binary Device Object Store (BOS) descriptor. - * This descriptor is documented in section 9.6.2 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_bos_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_BOS LIBUSB_DT_BOS - * in this context. */ - uint8_t bDescriptorType; - - /** Length of this descriptor and all of its sub descriptors */ - uint16_t wTotalLength; - - /** The number of separate device capability descriptors in - * the BOS */ - uint8_t bNumDeviceCaps; - - /** bNumDeviceCap Device Capability Descriptors */ - struct libusb_bos_dev_capability_descriptor *dev_capability -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - [] /* valid C99 code */ -#else - [0] /* non-standard, but usually working code */ -#endif - ; -}; - -/** \ingroup libusb_desc - * A structure representing the USB 2.0 Extension descriptor - * This descriptor is documented in section 9.6.2.1 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_usb_2_0_extension_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE_CAPABILITY - * LIBUSB_DT_DEVICE_CAPABILITY in this context. */ - uint8_t bDescriptorType; - - /** Capability type. Will have value - * \ref libusb_capability_type::LIBUSB_BT_USB_2_0_EXTENSION - * LIBUSB_BT_USB_2_0_EXTENSION in this context. */ - uint8_t bDevCapabilityType; - - /** Bitmap encoding of supported device level features. - * A value of one in a bit location indicates a feature is - * supported; a value of zero indicates it is not supported. - * See \ref libusb_usb_2_0_extension_attributes. */ - uint32_t bmAttributes; -}; - -/** \ingroup libusb_desc - * A structure representing the SuperSpeed USB Device Capability descriptor - * This descriptor is documented in section 9.6.2.2 of the USB 3.0 specification. - * All multiple-byte fields are represented in host-endian format. - */ -struct libusb_ss_usb_device_capability_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE_CAPABILITY - * LIBUSB_DT_DEVICE_CAPABILITY in this context. */ - uint8_t bDescriptorType; - - /** Capability type. Will have value - * \ref libusb_capability_type::LIBUSB_BT_SS_USB_DEVICE_CAPABILITY - * LIBUSB_BT_SS_USB_DEVICE_CAPABILITY in this context. */ - uint8_t bDevCapabilityType; - - /** Bitmap encoding of supported device level features. - * A value of one in a bit location indicates a feature is - * supported; a value of zero indicates it is not supported. - * See \ref libusb_ss_usb_device_capability_attributes. */ - uint8_t bmAttributes; - - /** Bitmap encoding of the speed supported by this device when - * operating in SuperSpeed mode. See \ref libusb_supported_speed. */ - uint16_t wSpeedSupported; - - /** The lowest speed at which all the functionality supported - * by the device is available to the user. For example if the - * device supports all its functionality when connected at - * full speed and above then it sets this value to 1. */ - uint8_t bFunctionalitySupport; - - /** U1 Device Exit Latency. */ - uint8_t bU1DevExitLat; - - /** U2 Device Exit Latency. */ - uint16_t bU2DevExitLat; -}; - -/** \ingroup libusb_desc - * A structure representing the Container ID descriptor. - * This descriptor is documented in section 9.6.2.3 of the USB 3.0 specification. - * All multiple-byte fields, except UUIDs, are represented in host-endian format. - */ -struct libusb_container_id_descriptor { - /** Size of this descriptor (in bytes) */ - uint8_t bLength; - - /** Descriptor type. Will have value - * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE_CAPABILITY - * LIBUSB_DT_DEVICE_CAPABILITY in this context. */ - uint8_t bDescriptorType; - - /** Capability type. Will have value - * \ref libusb_capability_type::LIBUSB_BT_CONTAINER_ID - * LIBUSB_BT_CONTAINER_ID in this context. */ - uint8_t bDevCapabilityType; - - /** Reserved field */ - uint8_t bReserved; - - /** 128 bit UUID */ - uint8_t ContainerID[16]; -}; - -/** \ingroup libusb_asyncio - * Setup packet for control transfers. */ -struct libusb_control_setup { - /** Request type. Bits 0:4 determine recipient, see - * \ref libusb_request_recipient. Bits 5:6 determine type, see - * \ref libusb_request_type. Bit 7 determines data transfer direction, see - * \ref libusb_endpoint_direction. - */ - uint8_t bmRequestType; - - /** Request. If the type bits of bmRequestType are equal to - * \ref libusb_request_type::LIBUSB_REQUEST_TYPE_STANDARD - * "LIBUSB_REQUEST_TYPE_STANDARD" then this field refers to - * \ref libusb_standard_request. For other cases, use of this field is - * application-specific. */ - uint8_t bRequest; - - /** Value. Varies according to request */ - uint16_t wValue; - - /** Index. Varies according to request, typically used to pass an index - * or offset */ - uint16_t wIndex; - - /** Number of bytes to transfer */ - uint16_t wLength; -}; - -#define LIBUSB_CONTROL_SETUP_SIZE (sizeof(struct libusb_control_setup)) - -/* libusb */ - -struct libusb_context; -struct libusb_device; -struct libusb_device_handle; - -/** \ingroup libusb_lib - * Structure providing the version of the libusb runtime - */ -struct libusb_version { - /** Library major version. */ - const uint16_t major; - - /** Library minor version. */ - const uint16_t minor; - - /** Library micro version. */ - const uint16_t micro; - - /** Library nano version. */ - const uint16_t nano; - - /** Library release candidate suffix string, e.g. "-rc4". */ - const char *rc; - - /** For ABI compatibility only. */ - const char* describe; -}; - -/** \ingroup libusb_lib - * Structure representing a libusb session. The concept of individual libusb - * sessions allows for your program to use two libraries (or dynamically - * load two modules) which both independently use libusb. This will prevent - * interference between the individual libusb users - for example - * libusb_set_debug() will not affect the other user of the library, and - * libusb_exit() will not destroy resources that the other user is still - * using. - * - * Sessions are created by libusb_init() and destroyed through libusb_exit(). - * If your application is guaranteed to only ever include a single libusb - * user (i.e. you), you do not have to worry about contexts: pass NULL in - * every function call where a context is required. The default context - * will be used. - * - * For more information, see \ref libusb_contexts. - */ -typedef struct libusb_context libusb_context; - -/** \ingroup libusb_dev - * Structure representing a USB device detected on the system. This is an - * opaque type for which you are only ever provided with a pointer, usually - * originating from libusb_get_device_list(). - * - * Certain operations can be performed on a device, but in order to do any - * I/O you will have to first obtain a device handle using libusb_open(). - * - * Devices are reference counted with libusb_ref_device() and - * libusb_unref_device(), and are freed when the reference count reaches 0. - * New devices presented by libusb_get_device_list() have a reference count of - * 1, and libusb_free_device_list() can optionally decrease the reference count - * on all devices in the list. libusb_open() adds another reference which is - * later destroyed by libusb_close(). - */ -typedef struct libusb_device libusb_device; - - -/** \ingroup libusb_dev - * Structure representing a handle on a USB device. This is an opaque type for - * which you are only ever provided with a pointer, usually originating from - * libusb_open(). - * - * A device handle is used to perform I/O and other operations. When finished - * with a device handle, you should call libusb_close(). - */ -typedef struct libusb_device_handle libusb_device_handle; - -/** \ingroup libusb_dev - * Speed codes. Indicates the speed at which the device is operating. - */ -enum libusb_speed { - /** The OS doesn't report or know the device speed. */ - LIBUSB_SPEED_UNKNOWN = 0, - - /** The device is operating at low speed (1.5MBit/s). */ - LIBUSB_SPEED_LOW = 1, - - /** The device is operating at full speed (12MBit/s). */ - LIBUSB_SPEED_FULL = 2, - - /** The device is operating at high speed (480MBit/s). */ - LIBUSB_SPEED_HIGH = 3, - - /** The device is operating at super speed (5000MBit/s). */ - LIBUSB_SPEED_SUPER = 4, -}; - -/** \ingroup libusb_dev - * Supported speeds (wSpeedSupported) bitfield. Indicates what - * speeds the device supports. - */ -enum libusb_supported_speed { - /** Low speed operation supported (1.5MBit/s). */ - LIBUSB_LOW_SPEED_OPERATION = 1, - - /** Full speed operation supported (12MBit/s). */ - LIBUSB_FULL_SPEED_OPERATION = 2, - - /** High speed operation supported (480MBit/s). */ - LIBUSB_HIGH_SPEED_OPERATION = 4, - - /** Superspeed operation supported (5000MBit/s). */ - LIBUSB_SUPER_SPEED_OPERATION = 8, -}; - -/** \ingroup libusb_dev - * Masks for the bits of the - * \ref libusb_usb_2_0_extension_descriptor::bmAttributes "bmAttributes" field - * of the USB 2.0 Extension descriptor. - */ -enum libusb_usb_2_0_extension_attributes { - /** Supports Link Power Management (LPM) */ - LIBUSB_BM_LPM_SUPPORT = 2, -}; - -/** \ingroup libusb_dev - * Masks for the bits of the - * \ref libusb_ss_usb_device_capability_descriptor::bmAttributes "bmAttributes" field - * field of the SuperSpeed USB Device Capability descriptor. - */ -enum libusb_ss_usb_device_capability_attributes { - /** Supports Latency Tolerance Messages (LTM) */ - LIBUSB_BM_LTM_SUPPORT = 2, -}; - -/** \ingroup libusb_dev - * USB capability types - */ -enum libusb_bos_type { - /** Wireless USB device capability */ - LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY = 1, - - /** USB 2.0 extensions */ - LIBUSB_BT_USB_2_0_EXTENSION = 2, - - /** SuperSpeed USB device capability */ - LIBUSB_BT_SS_USB_DEVICE_CAPABILITY = 3, - - /** Container ID type */ - LIBUSB_BT_CONTAINER_ID = 4, -}; - -/** \ingroup libusb_misc - * Error codes. Most libusb functions return 0 on success or one of these - * codes on failure. - * You can call libusb_error_name() to retrieve a string representation of an - * error code or libusb_strerror() to get an end-user suitable description of - * an error code. - */ -enum libusb_error { - /** Success (no error) */ - LIBUSB_SUCCESS = 0, - - /** Input/output error */ - LIBUSB_ERROR_IO = -1, - - /** Invalid parameter */ - LIBUSB_ERROR_INVALID_PARAM = -2, - - /** Access denied (insufficient permissions) */ - LIBUSB_ERROR_ACCESS = -3, - - /** No such device (it may have been disconnected) */ - LIBUSB_ERROR_NO_DEVICE = -4, - - /** Entity not found */ - LIBUSB_ERROR_NOT_FOUND = -5, - - /** Resource busy */ - LIBUSB_ERROR_BUSY = -6, - - /** Operation timed out */ - LIBUSB_ERROR_TIMEOUT = -7, - - /** Overflow */ - LIBUSB_ERROR_OVERFLOW = -8, - - /** Pipe error */ - LIBUSB_ERROR_PIPE = -9, - - /** System call interrupted (perhaps due to signal) */ - LIBUSB_ERROR_INTERRUPTED = -10, - - /** Insufficient memory */ - LIBUSB_ERROR_NO_MEM = -11, - - /** Operation not supported or unimplemented on this platform */ - LIBUSB_ERROR_NOT_SUPPORTED = -12, - - /* NB: Remember to update LIBUSB_ERROR_COUNT below as well as the - message strings in strerror.c when adding new error codes here. */ - - /** Other error */ - LIBUSB_ERROR_OTHER = -99, -}; - -/* Total number of error codes in enum libusb_error */ -#define LIBUSB_ERROR_COUNT 14 - -/** \ingroup libusb_asyncio - * Transfer status codes */ -enum libusb_transfer_status { - /** Transfer completed without error. Note that this does not indicate - * that the entire amount of requested data was transferred. */ - LIBUSB_TRANSFER_COMPLETED, - - /** Transfer failed */ - LIBUSB_TRANSFER_ERROR, - - /** Transfer timed out */ - LIBUSB_TRANSFER_TIMED_OUT, - - /** Transfer was cancelled */ - LIBUSB_TRANSFER_CANCELLED, - - /** For bulk/interrupt endpoints: halt condition detected (endpoint - * stalled). For control endpoints: control request not supported. */ - LIBUSB_TRANSFER_STALL, - - /** Device was disconnected */ - LIBUSB_TRANSFER_NO_DEVICE, - - /** Device sent more data than requested */ - LIBUSB_TRANSFER_OVERFLOW, - - /* NB! Remember to update libusb_error_name() - when adding new status codes here. */ -}; - -/** \ingroup libusb_asyncio - * libusb_transfer.flags values */ -enum libusb_transfer_flags { - /** Report short frames as errors */ - LIBUSB_TRANSFER_SHORT_NOT_OK = 1<<0, - - /** Automatically free() transfer buffer during libusb_free_transfer(). - * Note that buffers allocated with libusb_dev_mem_alloc() should not - * be attempted freed in this way, since free() is not an appropriate - * way to release such memory. */ - LIBUSB_TRANSFER_FREE_BUFFER = 1<<1, - - /** Automatically call libusb_free_transfer() after callback returns. - * If this flag is set, it is illegal to call libusb_free_transfer() - * from your transfer callback, as this will result in a double-free - * when this flag is acted upon. */ - LIBUSB_TRANSFER_FREE_TRANSFER = 1<<2, - - /** Terminate transfers that are a multiple of the endpoint's - * wMaxPacketSize with an extra zero length packet. This is useful - * when a device protocol mandates that each logical request is - * terminated by an incomplete packet (i.e. the logical requests are - * not separated by other means). - * - * This flag only affects host-to-device transfers to bulk and interrupt - * endpoints. In other situations, it is ignored. - * - * This flag only affects transfers with a length that is a multiple of - * the endpoint's wMaxPacketSize. On transfers of other lengths, this - * flag has no effect. Therefore, if you are working with a device that - * needs a ZLP whenever the end of the logical request falls on a packet - * boundary, then it is sensible to set this flag on every - * transfer (you do not have to worry about only setting it on transfers - * that end on the boundary). - * - * This flag is currently only supported on Linux. - * On other systems, libusb_submit_transfer() will return - * LIBUSB_ERROR_NOT_SUPPORTED for every transfer where this flag is set. - * - * Available since libusb-1.0.9. - */ - LIBUSB_TRANSFER_ADD_ZERO_PACKET = 1 << 3, -}; - -/** \ingroup libusb_asyncio - * Isochronous packet descriptor. */ -struct libusb_iso_packet_descriptor { - /** Length of data to request in this packet */ - unsigned int length; - - /** Amount of data that was actually transferred */ - unsigned int actual_length; - - /** Status code for this packet */ - enum libusb_transfer_status status; -}; - -struct libusb_transfer; - -/** \ingroup libusb_asyncio - * Asynchronous transfer callback function type. When submitting asynchronous - * transfers, you pass a pointer to a callback function of this type via the - * \ref libusb_transfer::callback "callback" member of the libusb_transfer - * structure. libusb will call this function later, when the transfer has - * completed or failed. See \ref libusb_asyncio for more information. - * \param transfer The libusb_transfer struct the callback function is being - * notified about. - */ -typedef void (LIBUSB_CALL *libusb_transfer_cb_fn)(struct libusb_transfer *transfer); - -/** \ingroup libusb_asyncio - * The generic USB transfer structure. The user populates this structure and - * then submits it in order to request a transfer. After the transfer has - * completed, the library populates the transfer with the results and passes - * it back to the user. - */ -struct libusb_transfer { - /** Handle of the device that this transfer will be submitted to */ - libusb_device_handle *dev_handle; - - /** A bitwise OR combination of \ref libusb_transfer_flags. */ - uint8_t flags; - - /** Address of the endpoint where this transfer will be sent. */ - unsigned char endpoint; - - /** Type of the endpoint from \ref libusb_transfer_type */ - unsigned char type; - - /** Timeout for this transfer in milliseconds. A value of 0 indicates no - * timeout. */ - unsigned int timeout; - - /** The status of the transfer. Read-only, and only for use within - * transfer callback function. - * - * If this is an isochronous transfer, this field may read COMPLETED even - * if there were errors in the frames. Use the - * \ref libusb_iso_packet_descriptor::status "status" field in each packet - * to determine if errors occurred. */ - enum libusb_transfer_status status; - - /** Length of the data buffer */ - int length; - - /** Actual length of data that was transferred. Read-only, and only for - * use within transfer callback function. Not valid for isochronous - * endpoint transfers. */ - int actual_length; - - /** Callback function. This will be invoked when the transfer completes, - * fails, or is cancelled. */ - libusb_transfer_cb_fn callback; - - /** User context data to pass to the callback function. */ - void *user_data; - - /** Data buffer */ - unsigned char *buffer; - - /** Number of isochronous packets. Only used for I/O with isochronous - * endpoints. */ - int num_iso_packets; - - /** Isochronous packet descriptors, for isochronous transfers only. */ - struct libusb_iso_packet_descriptor iso_packet_desc -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - [] /* valid C99 code */ -#else - [0] /* non-standard, but usually working code */ -#endif - ; -}; - -/** \ingroup libusb_misc - * Capabilities supported by an instance of libusb on the current running - * platform. Test if the loaded library supports a given capability by calling - * \ref libusb_has_capability(). - */ -enum libusb_capability { - /** The libusb_has_capability() API is available. */ - LIBUSB_CAP_HAS_CAPABILITY = 0x0000, - /** Hotplug support is available on this platform. */ - LIBUSB_CAP_HAS_HOTPLUG = 0x0001, - /** The library can access HID devices without requiring user intervention. - * Note that before being able to actually access an HID device, you may - * still have to call additional libusb functions such as - * \ref libusb_detach_kernel_driver(). */ - LIBUSB_CAP_HAS_HID_ACCESS = 0x0100, - /** The library supports detaching of the default USB driver, using - * \ref libusb_detach_kernel_driver(), if one is set by the OS kernel */ - LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER = 0x0101 -}; - -/** \ingroup libusb_lib - * Log message levels. - * - LIBUSB_LOG_LEVEL_NONE (0) : no messages ever printed by the library (default) - * - LIBUSB_LOG_LEVEL_ERROR (1) : error messages are printed to stderr - * - LIBUSB_LOG_LEVEL_WARNING (2) : warning and error messages are printed to stderr - * - LIBUSB_LOG_LEVEL_INFO (3) : informational messages are printed to stdout, warning - * and error messages are printed to stderr - * - LIBUSB_LOG_LEVEL_DEBUG (4) : debug and informational messages are printed to stdout, - * warnings and errors to stderr - */ -enum libusb_log_level { - LIBUSB_LOG_LEVEL_NONE = 0, - LIBUSB_LOG_LEVEL_ERROR, - LIBUSB_LOG_LEVEL_WARNING, - LIBUSB_LOG_LEVEL_INFO, - LIBUSB_LOG_LEVEL_DEBUG, -}; - -int LIBUSB_CALL libusb_init(libusb_context **ctx); -void LIBUSB_CALL libusb_exit(libusb_context *ctx); -void LIBUSB_CALL libusb_set_debug(libusb_context *ctx, int level); -const struct libusb_version * LIBUSB_CALL libusb_get_version(void); -int LIBUSB_CALL libusb_has_capability(uint32_t capability); -const char * LIBUSB_CALL libusb_error_name(int errcode); -int LIBUSB_CALL libusb_setlocale(const char *locale); -const char * LIBUSB_CALL libusb_strerror(enum libusb_error errcode); - -ssize_t LIBUSB_CALL libusb_get_device_list(libusb_context *ctx, - libusb_device ***list); -void LIBUSB_CALL libusb_free_device_list(libusb_device **list, - int unref_devices); -libusb_device * LIBUSB_CALL libusb_ref_device(libusb_device *dev); -void LIBUSB_CALL libusb_unref_device(libusb_device *dev); - -int LIBUSB_CALL libusb_get_configuration(libusb_device_handle *dev, - int *config); -int LIBUSB_CALL libusb_get_device_descriptor(libusb_device *dev, - struct libusb_device_descriptor *desc); -int LIBUSB_CALL libusb_get_active_config_descriptor(libusb_device *dev, - struct libusb_config_descriptor **config); -int LIBUSB_CALL libusb_get_config_descriptor(libusb_device *dev, - uint8_t config_index, struct libusb_config_descriptor **config); -int LIBUSB_CALL libusb_get_config_descriptor_by_value(libusb_device *dev, - uint8_t bConfigurationValue, struct libusb_config_descriptor **config); -void LIBUSB_CALL libusb_free_config_descriptor( - struct libusb_config_descriptor *config); -int LIBUSB_CALL libusb_get_ss_endpoint_companion_descriptor( - struct libusb_context *ctx, - const struct libusb_endpoint_descriptor *endpoint, - struct libusb_ss_endpoint_companion_descriptor **ep_comp); -void LIBUSB_CALL libusb_free_ss_endpoint_companion_descriptor( - struct libusb_ss_endpoint_companion_descriptor *ep_comp); -int LIBUSB_CALL libusb_get_bos_descriptor(libusb_device_handle *dev_handle, - struct libusb_bos_descriptor **bos); -void LIBUSB_CALL libusb_free_bos_descriptor(struct libusb_bos_descriptor *bos); -int LIBUSB_CALL libusb_get_usb_2_0_extension_descriptor( - struct libusb_context *ctx, - struct libusb_bos_dev_capability_descriptor *dev_cap, - struct libusb_usb_2_0_extension_descriptor **usb_2_0_extension); -void LIBUSB_CALL libusb_free_usb_2_0_extension_descriptor( - struct libusb_usb_2_0_extension_descriptor *usb_2_0_extension); -int LIBUSB_CALL libusb_get_ss_usb_device_capability_descriptor( - struct libusb_context *ctx, - struct libusb_bos_dev_capability_descriptor *dev_cap, - struct libusb_ss_usb_device_capability_descriptor **ss_usb_device_cap); -void LIBUSB_CALL libusb_free_ss_usb_device_capability_descriptor( - struct libusb_ss_usb_device_capability_descriptor *ss_usb_device_cap); -int LIBUSB_CALL libusb_get_container_id_descriptor(struct libusb_context *ctx, - struct libusb_bos_dev_capability_descriptor *dev_cap, - struct libusb_container_id_descriptor **container_id); -void LIBUSB_CALL libusb_free_container_id_descriptor( - struct libusb_container_id_descriptor *container_id); -uint8_t LIBUSB_CALL libusb_get_bus_number(libusb_device *dev); -uint8_t LIBUSB_CALL libusb_get_port_number(libusb_device *dev); -int LIBUSB_CALL libusb_get_port_numbers(libusb_device *dev, uint8_t* port_numbers, int port_numbers_len); -LIBUSB_DEPRECATED_FOR(libusb_get_port_numbers) -int LIBUSB_CALL libusb_get_port_path(libusb_context *ctx, libusb_device *dev, uint8_t* path, uint8_t path_length); -libusb_device * LIBUSB_CALL libusb_get_parent(libusb_device *dev); -uint8_t LIBUSB_CALL libusb_get_device_address(libusb_device *dev); -int LIBUSB_CALL libusb_get_device_speed(libusb_device *dev); -int LIBUSB_CALL libusb_get_max_packet_size(libusb_device *dev, - unsigned char endpoint); -int LIBUSB_CALL libusb_get_max_iso_packet_size(libusb_device *dev, - unsigned char endpoint); - -int LIBUSB_CALL libusb_open(libusb_device *dev, libusb_device_handle **dev_handle); -void LIBUSB_CALL libusb_close(libusb_device_handle *dev_handle); -libusb_device * LIBUSB_CALL libusb_get_device(libusb_device_handle *dev_handle); - -int LIBUSB_CALL libusb_set_configuration(libusb_device_handle *dev_handle, - int configuration); -int LIBUSB_CALL libusb_claim_interface(libusb_device_handle *dev_handle, - int interface_number); -int LIBUSB_CALL libusb_release_interface(libusb_device_handle *dev_handle, - int interface_number); - -libusb_device_handle * LIBUSB_CALL libusb_open_device_with_vid_pid( - libusb_context *ctx, uint16_t vendor_id, uint16_t product_id); - -int LIBUSB_CALL libusb_set_interface_alt_setting(libusb_device_handle *dev_handle, - int interface_number, int alternate_setting); -int LIBUSB_CALL libusb_clear_halt(libusb_device_handle *dev_handle, - unsigned char endpoint); -int LIBUSB_CALL libusb_reset_device(libusb_device_handle *dev_handle); - -int LIBUSB_CALL libusb_alloc_streams(libusb_device_handle *dev_handle, - uint32_t num_streams, unsigned char *endpoints, int num_endpoints); -int LIBUSB_CALL libusb_free_streams(libusb_device_handle *dev_handle, - unsigned char *endpoints, int num_endpoints); - -unsigned char * LIBUSB_CALL libusb_dev_mem_alloc(libusb_device_handle *dev_handle, - size_t length); -int LIBUSB_CALL libusb_dev_mem_free(libusb_device_handle *dev_handle, - unsigned char *buffer, size_t length); - -int LIBUSB_CALL libusb_kernel_driver_active(libusb_device_handle *dev_handle, - int interface_number); -int LIBUSB_CALL libusb_detach_kernel_driver(libusb_device_handle *dev_handle, - int interface_number); -int LIBUSB_CALL libusb_attach_kernel_driver(libusb_device_handle *dev_handle, - int interface_number); -int LIBUSB_CALL libusb_set_auto_detach_kernel_driver( - libusb_device_handle *dev_handle, int enable); - -/* async I/O */ - -/** \ingroup libusb_asyncio - * Get the data section of a control transfer. This convenience function is here - * to remind you that the data does not start until 8 bytes into the actual - * buffer, as the setup packet comes first. - * - * Calling this function only makes sense from a transfer callback function, - * or situations where you have already allocated a suitably sized buffer at - * transfer->buffer. - * - * \param transfer a transfer - * \returns pointer to the first byte of the data section - */ -static inline unsigned char *libusb_control_transfer_get_data( - struct libusb_transfer *transfer) -{ - return transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE; -} - -/** \ingroup libusb_asyncio - * Get the control setup packet of a control transfer. This convenience - * function is here to remind you that the control setup occupies the first - * 8 bytes of the transfer data buffer. - * - * Calling this function only makes sense from a transfer callback function, - * or situations where you have already allocated a suitably sized buffer at - * transfer->buffer. - * - * \param transfer a transfer - * \returns a casted pointer to the start of the transfer data buffer - */ -static inline struct libusb_control_setup *libusb_control_transfer_get_setup( - struct libusb_transfer *transfer) -{ - return (struct libusb_control_setup *)(void *) transfer->buffer; -} - -/** \ingroup libusb_asyncio - * Helper function to populate the setup packet (first 8 bytes of the data - * buffer) for a control transfer. The wIndex, wValue and wLength values should - * be given in host-endian byte order. - * - * \param buffer buffer to output the setup packet into - * This pointer must be aligned to at least 2 bytes boundary. - * \param bmRequestType see the - * \ref libusb_control_setup::bmRequestType "bmRequestType" field of - * \ref libusb_control_setup - * \param bRequest see the - * \ref libusb_control_setup::bRequest "bRequest" field of - * \ref libusb_control_setup - * \param wValue see the - * \ref libusb_control_setup::wValue "wValue" field of - * \ref libusb_control_setup - * \param wIndex see the - * \ref libusb_control_setup::wIndex "wIndex" field of - * \ref libusb_control_setup - * \param wLength see the - * \ref libusb_control_setup::wLength "wLength" field of - * \ref libusb_control_setup - */ -static inline void libusb_fill_control_setup(unsigned char *buffer, - uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, - uint16_t wLength) -{ - struct libusb_control_setup *setup = (struct libusb_control_setup *)(void *) buffer; - setup->bmRequestType = bmRequestType; - setup->bRequest = bRequest; - setup->wValue = libusb_cpu_to_le16(wValue); - setup->wIndex = libusb_cpu_to_le16(wIndex); - setup->wLength = libusb_cpu_to_le16(wLength); -} - -struct libusb_transfer * LIBUSB_CALL libusb_alloc_transfer(int iso_packets); -int LIBUSB_CALL libusb_submit_transfer(struct libusb_transfer *transfer); -int LIBUSB_CALL libusb_cancel_transfer(struct libusb_transfer *transfer); -void LIBUSB_CALL libusb_free_transfer(struct libusb_transfer *transfer); -void LIBUSB_CALL libusb_transfer_set_stream_id( - struct libusb_transfer *transfer, uint32_t stream_id); -uint32_t LIBUSB_CALL libusb_transfer_get_stream_id( - struct libusb_transfer *transfer); - -/** \ingroup libusb_asyncio - * Helper function to populate the required \ref libusb_transfer fields - * for a control transfer. - * - * If you pass a transfer buffer to this function, the first 8 bytes will - * be interpreted as a control setup packet, and the wLength field will be - * used to automatically populate the \ref libusb_transfer::length "length" - * field of the transfer. Therefore the recommended approach is: - * -# Allocate a suitably sized data buffer (including space for control setup) - * -# Call libusb_fill_control_setup() - * -# If this is a host-to-device transfer with a data stage, put the data - * in place after the setup packet - * -# Call this function - * -# Call libusb_submit_transfer() - * - * It is also legal to pass a NULL buffer to this function, in which case this - * function will not attempt to populate the length field. Remember that you - * must then populate the buffer and length fields later. - * - * \param transfer the transfer to populate - * \param dev_handle handle of the device that will handle the transfer - * \param buffer data buffer. If provided, this function will interpret the - * first 8 bytes as a setup packet and infer the transfer length from that. - * This pointer must be aligned to at least 2 bytes boundary. - * \param callback callback function to be invoked on transfer completion - * \param user_data user data to pass to callback function - * \param timeout timeout for the transfer in milliseconds - */ -static inline void libusb_fill_control_transfer( - struct libusb_transfer *transfer, libusb_device_handle *dev_handle, - unsigned char *buffer, libusb_transfer_cb_fn callback, void *user_data, - unsigned int timeout) -{ - struct libusb_control_setup *setup = (struct libusb_control_setup *)(void *) buffer; - transfer->dev_handle = dev_handle; - transfer->endpoint = 0; - transfer->type = LIBUSB_TRANSFER_TYPE_CONTROL; - transfer->timeout = timeout; - transfer->buffer = buffer; - if (setup) - transfer->length = (int) (LIBUSB_CONTROL_SETUP_SIZE - + libusb_le16_to_cpu(setup->wLength)); - transfer->user_data = user_data; - transfer->callback = callback; -} - -/** \ingroup libusb_asyncio - * Helper function to populate the required \ref libusb_transfer fields - * for a bulk transfer. - * - * \param transfer the transfer to populate - * \param dev_handle handle of the device that will handle the transfer - * \param endpoint address of the endpoint where this transfer will be sent - * \param buffer data buffer - * \param length length of data buffer - * \param callback callback function to be invoked on transfer completion - * \param user_data user data to pass to callback function - * \param timeout timeout for the transfer in milliseconds - */ -static inline void libusb_fill_bulk_transfer(struct libusb_transfer *transfer, - libusb_device_handle *dev_handle, unsigned char endpoint, - unsigned char *buffer, int length, libusb_transfer_cb_fn callback, - void *user_data, unsigned int timeout) -{ - transfer->dev_handle = dev_handle; - transfer->endpoint = endpoint; - transfer->type = LIBUSB_TRANSFER_TYPE_BULK; - transfer->timeout = timeout; - transfer->buffer = buffer; - transfer->length = length; - transfer->user_data = user_data; - transfer->callback = callback; -} - -/** \ingroup libusb_asyncio - * Helper function to populate the required \ref libusb_transfer fields - * for a bulk transfer using bulk streams. - * - * Since version 1.0.19, \ref LIBUSB_API_VERSION >= 0x01000103 - * - * \param transfer the transfer to populate - * \param dev_handle handle of the device that will handle the transfer - * \param endpoint address of the endpoint where this transfer will be sent - * \param stream_id bulk stream id for this transfer - * \param buffer data buffer - * \param length length of data buffer - * \param callback callback function to be invoked on transfer completion - * \param user_data user data to pass to callback function - * \param timeout timeout for the transfer in milliseconds - */ -static inline void libusb_fill_bulk_stream_transfer( - struct libusb_transfer *transfer, libusb_device_handle *dev_handle, - unsigned char endpoint, uint32_t stream_id, - unsigned char *buffer, int length, libusb_transfer_cb_fn callback, - void *user_data, unsigned int timeout) -{ - libusb_fill_bulk_transfer(transfer, dev_handle, endpoint, buffer, - length, callback, user_data, timeout); - transfer->type = LIBUSB_TRANSFER_TYPE_BULK_STREAM; - libusb_transfer_set_stream_id(transfer, stream_id); -} - -/** \ingroup libusb_asyncio - * Helper function to populate the required \ref libusb_transfer fields - * for an interrupt transfer. - * - * \param transfer the transfer to populate - * \param dev_handle handle of the device that will handle the transfer - * \param endpoint address of the endpoint where this transfer will be sent - * \param buffer data buffer - * \param length length of data buffer - * \param callback callback function to be invoked on transfer completion - * \param user_data user data to pass to callback function - * \param timeout timeout for the transfer in milliseconds - */ -static inline void libusb_fill_interrupt_transfer( - struct libusb_transfer *transfer, libusb_device_handle *dev_handle, - unsigned char endpoint, unsigned char *buffer, int length, - libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout) -{ - transfer->dev_handle = dev_handle; - transfer->endpoint = endpoint; - transfer->type = LIBUSB_TRANSFER_TYPE_INTERRUPT; - transfer->timeout = timeout; - transfer->buffer = buffer; - transfer->length = length; - transfer->user_data = user_data; - transfer->callback = callback; -} - -/** \ingroup libusb_asyncio - * Helper function to populate the required \ref libusb_transfer fields - * for an isochronous transfer. - * - * \param transfer the transfer to populate - * \param dev_handle handle of the device that will handle the transfer - * \param endpoint address of the endpoint where this transfer will be sent - * \param buffer data buffer - * \param length length of data buffer - * \param num_iso_packets the number of isochronous packets - * \param callback callback function to be invoked on transfer completion - * \param user_data user data to pass to callback function - * \param timeout timeout for the transfer in milliseconds - */ -static inline void libusb_fill_iso_transfer(struct libusb_transfer *transfer, - libusb_device_handle *dev_handle, unsigned char endpoint, - unsigned char *buffer, int length, int num_iso_packets, - libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout) -{ - transfer->dev_handle = dev_handle; - transfer->endpoint = endpoint; - transfer->type = LIBUSB_TRANSFER_TYPE_ISOCHRONOUS; - transfer->timeout = timeout; - transfer->buffer = buffer; - transfer->length = length; - transfer->num_iso_packets = num_iso_packets; - transfer->user_data = user_data; - transfer->callback = callback; -} - -/** \ingroup libusb_asyncio - * Convenience function to set the length of all packets in an isochronous - * transfer, based on the num_iso_packets field in the transfer structure. - * - * \param transfer a transfer - * \param length the length to set in each isochronous packet descriptor - * \see libusb_get_max_packet_size() - */ -static inline void libusb_set_iso_packet_lengths( - struct libusb_transfer *transfer, unsigned int length) -{ - int i; - for (i = 0; i < transfer->num_iso_packets; i++) - transfer->iso_packet_desc[i].length = length; -} - -/** \ingroup libusb_asyncio - * Convenience function to locate the position of an isochronous packet - * within the buffer of an isochronous transfer. - * - * This is a thorough function which loops through all preceding packets, - * accumulating their lengths to find the position of the specified packet. - * Typically you will assign equal lengths to each packet in the transfer, - * and hence the above method is sub-optimal. You may wish to use - * libusb_get_iso_packet_buffer_simple() instead. - * - * \param transfer a transfer - * \param packet the packet to return the address of - * \returns the base address of the packet buffer inside the transfer buffer, - * or NULL if the packet does not exist. - * \see libusb_get_iso_packet_buffer_simple() - */ -static inline unsigned char *libusb_get_iso_packet_buffer( - struct libusb_transfer *transfer, unsigned int packet) -{ - int i; - size_t offset = 0; - int _packet; - - /* oops..slight bug in the API. packet is an unsigned int, but we use - * signed integers almost everywhere else. range-check and convert to - * signed to avoid compiler warnings. FIXME for libusb-2. */ - if (packet > INT_MAX) - return NULL; - _packet = (int) packet; - - if (_packet >= transfer->num_iso_packets) - return NULL; - - for (i = 0; i < _packet; i++) - offset += transfer->iso_packet_desc[i].length; - - return transfer->buffer + offset; -} - -/** \ingroup libusb_asyncio - * Convenience function to locate the position of an isochronous packet - * within the buffer of an isochronous transfer, for transfers where each - * packet is of identical size. - * - * This function relies on the assumption that every packet within the transfer - * is of identical size to the first packet. Calculating the location of - * the packet buffer is then just a simple calculation: - * buffer + (packet_size * packet) - * - * Do not use this function on transfers other than those that have identical - * packet lengths for each packet. - * - * \param transfer a transfer - * \param packet the packet to return the address of - * \returns the base address of the packet buffer inside the transfer buffer, - * or NULL if the packet does not exist. - * \see libusb_get_iso_packet_buffer() - */ -static inline unsigned char *libusb_get_iso_packet_buffer_simple( - struct libusb_transfer *transfer, unsigned int packet) -{ - int _packet; - - /* oops..slight bug in the API. packet is an unsigned int, but we use - * signed integers almost everywhere else. range-check and convert to - * signed to avoid compiler warnings. FIXME for libusb-2. */ - if (packet > INT_MAX) - return NULL; - _packet = (int) packet; - - if (_packet >= transfer->num_iso_packets) - return NULL; - - return transfer->buffer + ((int) transfer->iso_packet_desc[0].length * _packet); -} - -/* sync I/O */ - -int LIBUSB_CALL libusb_control_transfer(libusb_device_handle *dev_handle, - uint8_t request_type, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, - unsigned char *data, uint16_t wLength, unsigned int timeout); - -int LIBUSB_CALL libusb_bulk_transfer(libusb_device_handle *dev_handle, - unsigned char endpoint, unsigned char *data, int length, - int *actual_length, unsigned int timeout); - -int LIBUSB_CALL libusb_interrupt_transfer(libusb_device_handle *dev_handle, - unsigned char endpoint, unsigned char *data, int length, - int *actual_length, unsigned int timeout); - -/** \ingroup libusb_desc - * Retrieve a descriptor from the default control pipe. - * This is a convenience function which formulates the appropriate control - * message to retrieve the descriptor. - * - * \param dev_handle a device handle - * \param desc_type the descriptor type, see \ref libusb_descriptor_type - * \param desc_index the index of the descriptor to retrieve - * \param data output buffer for descriptor - * \param length size of data buffer - * \returns number of bytes returned in data, or LIBUSB_ERROR code on failure - */ -static inline int libusb_get_descriptor(libusb_device_handle *dev_handle, - uint8_t desc_type, uint8_t desc_index, unsigned char *data, int length) -{ - return libusb_control_transfer(dev_handle, LIBUSB_ENDPOINT_IN, - LIBUSB_REQUEST_GET_DESCRIPTOR, (uint16_t) ((desc_type << 8) | desc_index), - 0, data, (uint16_t) length, 1000); -} - -/** \ingroup libusb_desc - * Retrieve a descriptor from a device. - * This is a convenience function which formulates the appropriate control - * message to retrieve the descriptor. The string returned is Unicode, as - * detailed in the USB specifications. - * - * \param dev_handle a device handle - * \param desc_index the index of the descriptor to retrieve - * \param langid the language ID for the string descriptor - * \param data output buffer for descriptor - * \param length size of data buffer - * \returns number of bytes returned in data, or LIBUSB_ERROR code on failure - * \see libusb_get_string_descriptor_ascii() - */ -static inline int libusb_get_string_descriptor(libusb_device_handle *dev_handle, - uint8_t desc_index, uint16_t langid, unsigned char *data, int length) -{ - return libusb_control_transfer(dev_handle, LIBUSB_ENDPOINT_IN, - LIBUSB_REQUEST_GET_DESCRIPTOR, (uint16_t)((LIBUSB_DT_STRING << 8) | desc_index), - langid, data, (uint16_t) length, 1000); -} - -int LIBUSB_CALL libusb_get_string_descriptor_ascii(libusb_device_handle *dev_handle, - uint8_t desc_index, unsigned char *data, int length); - -/* polling and timeouts */ - -int LIBUSB_CALL libusb_try_lock_events(libusb_context *ctx); -void LIBUSB_CALL libusb_lock_events(libusb_context *ctx); -void LIBUSB_CALL libusb_unlock_events(libusb_context *ctx); -int LIBUSB_CALL libusb_event_handling_ok(libusb_context *ctx); -int LIBUSB_CALL libusb_event_handler_active(libusb_context *ctx); -void LIBUSB_CALL libusb_interrupt_event_handler(libusb_context *ctx); -void LIBUSB_CALL libusb_lock_event_waiters(libusb_context *ctx); -void LIBUSB_CALL libusb_unlock_event_waiters(libusb_context *ctx); -int LIBUSB_CALL libusb_wait_for_event(libusb_context *ctx, struct timeval *tv); - -int LIBUSB_CALL libusb_handle_events_timeout(libusb_context *ctx, - struct timeval *tv); -int LIBUSB_CALL libusb_handle_events_timeout_completed(libusb_context *ctx, - struct timeval *tv, int *completed); -int LIBUSB_CALL libusb_handle_events(libusb_context *ctx); -int LIBUSB_CALL libusb_handle_events_completed(libusb_context *ctx, int *completed); -int LIBUSB_CALL libusb_handle_events_locked(libusb_context *ctx, - struct timeval *tv); -int LIBUSB_CALL libusb_pollfds_handle_timeouts(libusb_context *ctx); -int LIBUSB_CALL libusb_get_next_timeout(libusb_context *ctx, - struct timeval *tv); - -/** \ingroup libusb_poll - * File descriptor for polling - */ -struct libusb_pollfd { - /** Numeric file descriptor */ - int fd; - - /** Event flags to poll for from . POLLIN indicates that you - * should monitor this file descriptor for becoming ready to read from, - * and POLLOUT indicates that you should monitor this file descriptor for - * nonblocking write readiness. */ - short events; -}; - -/** \ingroup libusb_poll - * Callback function, invoked when a new file descriptor should be added - * to the set of file descriptors monitored for events. - * \param fd the new file descriptor - * \param events events to monitor for, see \ref libusb_pollfd for a - * description - * \param user_data User data pointer specified in - * libusb_set_pollfd_notifiers() call - * \see libusb_set_pollfd_notifiers() - */ -typedef void (LIBUSB_CALL *libusb_pollfd_added_cb)(int fd, short events, - void *user_data); - -/** \ingroup libusb_poll - * Callback function, invoked when a file descriptor should be removed from - * the set of file descriptors being monitored for events. After returning - * from this callback, do not use that file descriptor again. - * \param fd the file descriptor to stop monitoring - * \param user_data User data pointer specified in - * libusb_set_pollfd_notifiers() call - * \see libusb_set_pollfd_notifiers() - */ -typedef void (LIBUSB_CALL *libusb_pollfd_removed_cb)(int fd, void *user_data); - -const struct libusb_pollfd ** LIBUSB_CALL libusb_get_pollfds( - libusb_context *ctx); -void LIBUSB_CALL libusb_free_pollfds(const struct libusb_pollfd **pollfds); -void LIBUSB_CALL libusb_set_pollfd_notifiers(libusb_context *ctx, - libusb_pollfd_added_cb added_cb, libusb_pollfd_removed_cb removed_cb, - void *user_data); - -/** \ingroup libusb_hotplug - * Callback handle. - * - * Callbacks handles are generated by libusb_hotplug_register_callback() - * and can be used to deregister callbacks. Callback handles are unique - * per libusb_context and it is safe to call libusb_hotplug_deregister_callback() - * on an already deregisted callback. - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * - * For more information, see \ref libusb_hotplug. - */ -typedef int libusb_hotplug_callback_handle; - -/** \ingroup libusb_hotplug - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * - * Flags for hotplug events */ -typedef enum { - /** Default value when not using any flags. */ - LIBUSB_HOTPLUG_NO_FLAGS = 0, - - /** Arm the callback and fire it for all matching currently attached devices. */ - LIBUSB_HOTPLUG_ENUMERATE = 1<<0, -} libusb_hotplug_flag; - -/** \ingroup libusb_hotplug - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * - * Hotplug events */ -typedef enum { - /** A device has been plugged in and is ready to use */ - LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED = 0x01, - - /** A device has left and is no longer available. - * It is the user's responsibility to call libusb_close on any handle associated with a disconnected device. - * It is safe to call libusb_get_device_descriptor on a device that has left */ - LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT = 0x02, -} libusb_hotplug_event; - -/** \ingroup libusb_hotplug - * Wildcard matching for hotplug events */ -#define LIBUSB_HOTPLUG_MATCH_ANY -1 - -/** \ingroup libusb_hotplug - * Hotplug callback function type. When requesting hotplug event notifications, - * you pass a pointer to a callback function of this type. - * - * This callback may be called by an internal event thread and as such it is - * recommended the callback do minimal processing before returning. - * - * libusb will call this function later, when a matching event had happened on - * a matching device. See \ref libusb_hotplug for more information. - * - * It is safe to call either libusb_hotplug_register_callback() or - * libusb_hotplug_deregister_callback() from within a callback function. - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * - * \param ctx context of this notification - * \param device libusb_device this event occurred on - * \param event event that occurred - * \param user_data user data provided when this callback was registered - * \returns bool whether this callback is finished processing events. - * returning 1 will cause this callback to be deregistered - */ -typedef int (LIBUSB_CALL *libusb_hotplug_callback_fn)(libusb_context *ctx, - libusb_device *device, - libusb_hotplug_event event, - void *user_data); - -/** \ingroup libusb_hotplug - * Register a hotplug callback function - * - * Register a callback with the libusb_context. The callback will fire - * when a matching event occurs on a matching device. The callback is - * armed until either it is deregistered with libusb_hotplug_deregister_callback() - * or the supplied callback returns 1 to indicate it is finished processing events. - * - * If the \ref LIBUSB_HOTPLUG_ENUMERATE is passed the callback will be - * called with a \ref LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED for all devices - * already plugged into the machine. Note that libusb modifies its internal - * device list from a separate thread, while calling hotplug callbacks from - * libusb_handle_events(), so it is possible for a device to already be present - * on, or removed from, its internal device list, while the hotplug callbacks - * still need to be dispatched. This means that when using \ref - * LIBUSB_HOTPLUG_ENUMERATE, your callback may be called twice for the arrival - * of the same device, once from libusb_hotplug_register_callback() and once - * from libusb_handle_events(); and/or your callback may be called for the - * removal of a device for which an arrived call was never made. - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * - * \param[in] ctx context to register this callback with - * \param[in] events bitwise or of events that will trigger this callback. See \ref - * libusb_hotplug_event - * \param[in] flags hotplug callback flags. See \ref libusb_hotplug_flag - * \param[in] vendor_id the vendor id to match or \ref LIBUSB_HOTPLUG_MATCH_ANY - * \param[in] product_id the product id to match or \ref LIBUSB_HOTPLUG_MATCH_ANY - * \param[in] dev_class the device class to match or \ref LIBUSB_HOTPLUG_MATCH_ANY - * \param[in] cb_fn the function to be invoked on a matching event/device - * \param[in] user_data user data to pass to the callback function - * \param[out] callback_handle pointer to store the handle of the allocated callback (can be NULL) - * \returns LIBUSB_SUCCESS on success LIBUSB_ERROR code on failure - */ -int LIBUSB_CALL libusb_hotplug_register_callback(libusb_context *ctx, - libusb_hotplug_event events, - libusb_hotplug_flag flags, - int vendor_id, int product_id, - int dev_class, - libusb_hotplug_callback_fn cb_fn, - void *user_data, - libusb_hotplug_callback_handle *callback_handle); - -/** \ingroup libusb_hotplug - * Deregisters a hotplug callback. - * - * Deregister a callback from a libusb_context. This function is safe to call from within - * a hotplug callback. - * - * Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102 - * - * \param[in] ctx context this callback is registered with - * \param[in] callback_handle the handle of the callback to deregister - */ -void LIBUSB_CALL libusb_hotplug_deregister_callback(libusb_context *ctx, - libusb_hotplug_callback_handle callback_handle); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/libusbi.h b/vendor/github.com/karalabe/hid/libusb/libusb/libusbi.h deleted file mode 100644 index 752e3988..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/libusbi.h +++ /dev/null @@ -1,1149 +0,0 @@ -/* - * Internal header for libusb - * Copyright © 2007-2009 Daniel Drake - * Copyright © 2001 Johannes Erdfelt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef LIBUSBI_H -#define LIBUSBI_H - -#include - -#include - -#include -#include -#include -#include -#ifdef HAVE_POLL_H -#include -#endif -#ifdef HAVE_MISSING_H -#include -#endif - -#include "libusb.h" -#include "version.h" - -/* Inside the libusb code, mark all public functions as follows: - * return_type API_EXPORTED function_name(params) { ... } - * But if the function returns a pointer, mark it as follows: - * DEFAULT_VISIBILITY return_type * LIBUSB_CALL function_name(params) { ... } - * In the libusb public header, mark all declarations as: - * return_type LIBUSB_CALL function_name(params); - */ -#define API_EXPORTED LIBUSB_CALL DEFAULT_VISIBILITY - -#ifdef __cplusplus -extern "C" { -#endif - -#define DEVICE_DESC_LENGTH 18 - -#define USB_MAXENDPOINTS 32 -#define USB_MAXINTERFACES 32 -#define USB_MAXCONFIG 8 - -/* Backend specific capabilities */ -#define USBI_CAP_HAS_HID_ACCESS 0x00010000 -#define USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER 0x00020000 - -/* Maximum number of bytes in a log line */ -#define USBI_MAX_LOG_LEN 1024 -/* Terminator for log lines */ -#define USBI_LOG_LINE_END "\n" - -/* The following is used to silence warnings for unused variables */ -#define UNUSED(var) do { (void)(var); } while(0) - -#if !defined(ARRAYSIZE) -#define ARRAYSIZE(array) (sizeof(array) / sizeof(array[0])) -#endif - -struct list_head { - struct list_head *prev, *next; -}; - -/* Get an entry from the list - * ptr - the address of this list_head element in "type" - * type - the data type that contains "member" - * member - the list_head element in "type" - */ -#define list_entry(ptr, type, member) \ - ((type *)((uintptr_t)(ptr) - (uintptr_t)offsetof(type, member))) - -#define list_first_entry(ptr, type, member) \ - list_entry((ptr)->next, type, member) - -/* Get each entry from a list - * pos - A structure pointer has a "member" element - * head - list head - * member - the list_head element in "pos" - * type - the type of the first parameter - */ -#define list_for_each_entry(pos, head, member, type) \ - for (pos = list_entry((head)->next, type, member); \ - &pos->member != (head); \ - pos = list_entry(pos->member.next, type, member)) - -#define list_for_each_entry_safe(pos, n, head, member, type) \ - for (pos = list_entry((head)->next, type, member), \ - n = list_entry(pos->member.next, type, member); \ - &pos->member != (head); \ - pos = n, n = list_entry(n->member.next, type, member)) - -#define list_empty(entry) ((entry)->next == (entry)) - -static inline void list_init(struct list_head *entry) -{ - entry->prev = entry->next = entry; -} - -static inline void list_add(struct list_head *entry, struct list_head *head) -{ - entry->next = head->next; - entry->prev = head; - - head->next->prev = entry; - head->next = entry; -} - -static inline void list_add_tail(struct list_head *entry, - struct list_head *head) -{ - entry->next = head; - entry->prev = head->prev; - - head->prev->next = entry; - head->prev = entry; -} - -static inline void list_del(struct list_head *entry) -{ - entry->next->prev = entry->prev; - entry->prev->next = entry->next; - entry->next = entry->prev = NULL; -} - -static inline void *usbi_reallocf(void *ptr, size_t size) -{ - void *ret = realloc(ptr, size); - if (!ret) - free(ptr); - return ret; -} - -#define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *mptr = (ptr); \ - (type *)( (char *)mptr - offsetof(type,member) );}) - -#ifndef MIN -#define MIN(a, b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef MAX -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#endif - -#define TIMESPEC_IS_SET(ts) ((ts)->tv_sec != 0 || (ts)->tv_nsec != 0) - -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -#define TIMEVAL_TV_SEC_TYPE long -#else -#define TIMEVAL_TV_SEC_TYPE time_t -#endif - -/* Some platforms don't have this define */ -#ifndef TIMESPEC_TO_TIMEVAL -#define TIMESPEC_TO_TIMEVAL(tv, ts) \ - do { \ - (tv)->tv_sec = (TIMEVAL_TV_SEC_TYPE) (ts)->tv_sec; \ - (tv)->tv_usec = (ts)->tv_nsec / 1000; \ - } while (0) -#endif - -void usbi_log(struct libusb_context *ctx, enum libusb_log_level level, - const char *function, const char *format, ...); - -void usbi_log_v(struct libusb_context *ctx, enum libusb_log_level level, - const char *function, const char *format, va_list args); - -#if !defined(_MSC_VER) || _MSC_VER >= 1400 - -#ifdef ENABLE_LOGGING -#define _usbi_log(ctx, level, ...) usbi_log(ctx, level, __FUNCTION__, __VA_ARGS__) -#define usbi_dbg(...) _usbi_log(NULL, LIBUSB_LOG_LEVEL_DEBUG, __VA_ARGS__) -#else -#define _usbi_log(ctx, level, ...) do { (void)(ctx); } while(0) -#define usbi_dbg(...) do {} while(0) -#endif - -#define usbi_info(ctx, ...) _usbi_log(ctx, LIBUSB_LOG_LEVEL_INFO, __VA_ARGS__) -#define usbi_warn(ctx, ...) _usbi_log(ctx, LIBUSB_LOG_LEVEL_WARNING, __VA_ARGS__) -#define usbi_err(ctx, ...) _usbi_log(ctx, LIBUSB_LOG_LEVEL_ERROR, __VA_ARGS__) - -#else /* !defined(_MSC_VER) || _MSC_VER >= 1400 */ - -#ifdef ENABLE_LOGGING -#define LOG_BODY(ctxt, level) \ -{ \ - va_list args; \ - va_start(args, format); \ - usbi_log_v(ctxt, level, "", format, args); \ - va_end(args); \ -} -#else -#define LOG_BODY(ctxt, level) \ -{ \ - (void)(ctxt); \ -} -#endif - -static inline void usbi_info(struct libusb_context *ctx, const char *format, ...) - LOG_BODY(ctx, LIBUSB_LOG_LEVEL_INFO) -static inline void usbi_warn(struct libusb_context *ctx, const char *format, ...) - LOG_BODY(ctx, LIBUSB_LOG_LEVEL_WARNING) -static inline void usbi_err(struct libusb_context *ctx, const char *format, ...) - LOG_BODY(ctx, LIBUSB_LOG_LEVEL_ERROR) - -static inline void usbi_dbg(const char *format, ...) - LOG_BODY(NULL, LIBUSB_LOG_LEVEL_DEBUG) - -#endif /* !defined(_MSC_VER) || _MSC_VER >= 1400 */ - -#define USBI_GET_CONTEXT(ctx) \ - do { \ - if (!(ctx)) \ - (ctx) = usbi_default_context; \ - } while(0) - -#define DEVICE_CTX(dev) ((dev)->ctx) -#define HANDLE_CTX(handle) (DEVICE_CTX((handle)->dev)) -#define TRANSFER_CTX(transfer) (HANDLE_CTX((transfer)->dev_handle)) -#define ITRANSFER_CTX(transfer) \ - (TRANSFER_CTX(USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer))) - -#define IS_EPIN(ep) (0 != ((ep) & LIBUSB_ENDPOINT_IN)) -#define IS_EPOUT(ep) (!IS_EPIN(ep)) -#define IS_XFERIN(xfer) (0 != ((xfer)->endpoint & LIBUSB_ENDPOINT_IN)) -#define IS_XFEROUT(xfer) (!IS_XFERIN(xfer)) - -/* Internal abstraction for thread synchronization */ -#if defined(THREADS_POSIX) -#include "os/threads_posix.h" -#elif defined(OS_WINDOWS) || defined(OS_WINCE) -#include "os/threads_windows.h" -#endif - -extern struct libusb_context *usbi_default_context; - -/* Forward declaration for use in context (fully defined inside poll abstraction) */ -struct pollfd; - -struct libusb_context { - int debug; - int debug_fixed; - - /* internal event pipe, used for signalling occurrence of an internal event. */ - int event_pipe[2]; - - struct list_head usb_devs; - usbi_mutex_t usb_devs_lock; - - /* A list of open handles. Backends are free to traverse this if required. - */ - struct list_head open_devs; - usbi_mutex_t open_devs_lock; - - /* A list of registered hotplug callbacks */ - struct list_head hotplug_cbs; - usbi_mutex_t hotplug_cbs_lock; - - /* this is a list of in-flight transfer handles, sorted by timeout - * expiration. URBs to timeout the soonest are placed at the beginning of - * the list, URBs that will time out later are placed after, and urbs with - * infinite timeout are always placed at the very end. */ - struct list_head flying_transfers; - /* Note paths taking both this and usbi_transfer->lock must always - * take this lock first */ - usbi_mutex_t flying_transfers_lock; - - /* user callbacks for pollfd changes */ - libusb_pollfd_added_cb fd_added_cb; - libusb_pollfd_removed_cb fd_removed_cb; - void *fd_cb_user_data; - - /* ensures that only one thread is handling events at any one time */ - usbi_mutex_t events_lock; - - /* used to see if there is an active thread doing event handling */ - int event_handler_active; - - /* A thread-local storage key to track which thread is performing event - * handling */ - usbi_tls_key_t event_handling_key; - - /* used to wait for event completion in threads other than the one that is - * event handling */ - usbi_mutex_t event_waiters_lock; - usbi_cond_t event_waiters_cond; - - /* A lock to protect internal context event data. */ - usbi_mutex_t event_data_lock; - - /* A bitmask of flags that are set to indicate specific events that need to - * be handled. Protected by event_data_lock. */ - unsigned int event_flags; - - /* A counter that is set when we want to interrupt and prevent event handling, - * in order to safely close a device. Protected by event_data_lock. */ - unsigned int device_close; - - /* list and count of poll fds and an array of poll fd structures that is - * (re)allocated as necessary prior to polling. Protected by event_data_lock. */ - struct list_head ipollfds; - struct pollfd *pollfds; - POLL_NFDS_TYPE pollfds_cnt; - - /* A list of pending hotplug messages. Protected by event_data_lock. */ - struct list_head hotplug_msgs; - - /* A list of pending completed transfers. Protected by event_data_lock. */ - struct list_head completed_transfers; - -#ifdef USBI_TIMERFD_AVAILABLE - /* used for timeout handling, if supported by OS. - * this timerfd is maintained to trigger on the next pending timeout */ - int timerfd; -#endif - - struct list_head list; -}; - -enum usbi_event_flags { - /* The list of pollfds has been modified */ - USBI_EVENT_POLLFDS_MODIFIED = 1 << 0, - - /* The user has interrupted the event handler */ - USBI_EVENT_USER_INTERRUPT = 1 << 1, -}; - -/* Macros for managing event handling state */ -#define usbi_handling_events(ctx) \ - (usbi_tls_key_get((ctx)->event_handling_key) != NULL) - -#define usbi_start_event_handling(ctx) \ - usbi_tls_key_set((ctx)->event_handling_key, ctx) - -#define usbi_end_event_handling(ctx) \ - usbi_tls_key_set((ctx)->event_handling_key, NULL) - -/* Update the following macro if new event sources are added */ -#define usbi_pending_events(ctx) \ - ((ctx)->event_flags || (ctx)->device_close \ - || !list_empty(&(ctx)->hotplug_msgs) || !list_empty(&(ctx)->completed_transfers)) - -#ifdef USBI_TIMERFD_AVAILABLE -#define usbi_using_timerfd(ctx) ((ctx)->timerfd >= 0) -#else -#define usbi_using_timerfd(ctx) (0) -#endif - -struct libusb_device { - /* lock protects refcnt, everything else is finalized at initialization - * time */ - usbi_mutex_t lock; - int refcnt; - - struct libusb_context *ctx; - - uint8_t bus_number; - uint8_t port_number; - struct libusb_device* parent_dev; - uint8_t device_address; - uint8_t num_configurations; - enum libusb_speed speed; - - struct list_head list; - unsigned long session_data; - - struct libusb_device_descriptor device_descriptor; - int attached; - - unsigned char os_priv -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - [] /* valid C99 code */ -#else - [0] /* non-standard, but usually working code */ -#endif -#if defined(OS_SUNOS) - __attribute__ ((aligned (8))); -#else - ; -#endif -}; - -struct libusb_device_handle { - /* lock protects claimed_interfaces */ - usbi_mutex_t lock; - unsigned long claimed_interfaces; - - struct list_head list; - struct libusb_device *dev; - int auto_detach_kernel_driver; - unsigned char os_priv -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - [] /* valid C99 code */ -#else - [0] /* non-standard, but usually working code */ -#endif -#if defined(OS_SUNOS) - __attribute__ ((aligned (8))); -#else - ; -#endif -}; - -enum { - USBI_CLOCK_MONOTONIC, - USBI_CLOCK_REALTIME -}; - -/* in-memory transfer layout: - * - * 1. struct usbi_transfer - * 2. struct libusb_transfer (which includes iso packets) [variable size] - * 3. os private data [variable size] - * - * from a libusb_transfer, you can get the usbi_transfer by rewinding the - * appropriate number of bytes. - * the usbi_transfer includes the number of allocated packets, so you can - * determine the size of the transfer and hence the start and length of the - * OS-private data. - */ - -struct usbi_transfer { - int num_iso_packets; - struct list_head list; - struct list_head completed_list; - struct timeval timeout; - int transferred; - uint32_t stream_id; - uint8_t state_flags; /* Protected by usbi_transfer->lock */ - uint8_t timeout_flags; /* Protected by the flying_stransfers_lock */ - - /* this lock is held during libusb_submit_transfer() and - * libusb_cancel_transfer() (allowing the OS backend to prevent duplicate - * cancellation, submission-during-cancellation, etc). the OS backend - * should also take this lock in the handle_events path, to prevent the user - * cancelling the transfer from another thread while you are processing - * its completion (presumably there would be races within your OS backend - * if this were possible). - * Note paths taking both this and the flying_transfers_lock must - * always take the flying_transfers_lock first */ - usbi_mutex_t lock; -}; - -enum usbi_transfer_state_flags { - /* Transfer successfully submitted by backend */ - USBI_TRANSFER_IN_FLIGHT = 1 << 0, - - /* Cancellation was requested via libusb_cancel_transfer() */ - USBI_TRANSFER_CANCELLING = 1 << 1, - - /* Operation on the transfer failed because the device disappeared */ - USBI_TRANSFER_DEVICE_DISAPPEARED = 1 << 2, -}; - -enum usbi_transfer_timeout_flags { - /* Set by backend submit_transfer() if the OS handles timeout */ - USBI_TRANSFER_OS_HANDLES_TIMEOUT = 1 << 0, - - /* The transfer timeout has been handled */ - USBI_TRANSFER_TIMEOUT_HANDLED = 1 << 1, - - /* The transfer timeout was successfully processed */ - USBI_TRANSFER_TIMED_OUT = 1 << 2, -}; - -#define USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer) \ - ((struct libusb_transfer *)(((unsigned char *)(transfer)) \ - + sizeof(struct usbi_transfer))) -#define LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer) \ - ((struct usbi_transfer *)(((unsigned char *)(transfer)) \ - - sizeof(struct usbi_transfer))) - -static inline void *usbi_transfer_get_os_priv(struct usbi_transfer *transfer) -{ - return ((unsigned char *)transfer) + sizeof(struct usbi_transfer) - + sizeof(struct libusb_transfer) - + (transfer->num_iso_packets - * sizeof(struct libusb_iso_packet_descriptor)); -} - -/* bus structures */ - -/* All standard descriptors have these 2 fields in common */ -struct usb_descriptor_header { - uint8_t bLength; - uint8_t bDescriptorType; -}; - -/* shared data and functions */ - -int usbi_io_init(struct libusb_context *ctx); -void usbi_io_exit(struct libusb_context *ctx); - -struct libusb_device *usbi_alloc_device(struct libusb_context *ctx, - unsigned long session_id); -struct libusb_device *usbi_get_device_by_session_id(struct libusb_context *ctx, - unsigned long session_id); -int usbi_sanitize_device(struct libusb_device *dev); -void usbi_handle_disconnect(struct libusb_device_handle *dev_handle); - -int usbi_handle_transfer_completion(struct usbi_transfer *itransfer, - enum libusb_transfer_status status); -int usbi_handle_transfer_cancellation(struct usbi_transfer *transfer); -void usbi_signal_transfer_completion(struct usbi_transfer *transfer); - -int usbi_parse_descriptor(const unsigned char *source, const char *descriptor, - void *dest, int host_endian); -int usbi_device_cache_descriptor(libusb_device *dev); -int usbi_get_config_index_by_value(struct libusb_device *dev, - uint8_t bConfigurationValue, int *idx); - -void usbi_connect_device (struct libusb_device *dev); -void usbi_disconnect_device (struct libusb_device *dev); - -int usbi_signal_event(struct libusb_context *ctx); -int usbi_clear_event(struct libusb_context *ctx); - -/* Internal abstraction for poll (needs struct usbi_transfer on Windows) */ -#if defined(OS_LINUX) || defined(OS_DARWIN) || defined(OS_OPENBSD) || defined(OS_NETBSD) ||\ - defined(OS_HAIKU) || defined(OS_SUNOS) -#include -#include "os/poll_posix.h" -#elif defined(OS_WINDOWS) || defined(OS_WINCE) -#include "os/poll_windows.h" -#endif - -#if defined(_MSC_VER) && (_MSC_VER < 1900) -#define snprintf usbi_snprintf -#define vsnprintf usbi_vsnprintf -int usbi_snprintf(char *dst, size_t size, const char *format, ...); -int usbi_vsnprintf(char *dst, size_t size, const char *format, va_list ap); -#define LIBUSB_PRINTF_WIN32 -#endif - -struct usbi_pollfd { - /* must come first */ - struct libusb_pollfd pollfd; - - struct list_head list; -}; - -int usbi_add_pollfd(struct libusb_context *ctx, int fd, short events); -void usbi_remove_pollfd(struct libusb_context *ctx, int fd); - -/* device discovery */ - -/* we traverse usbfs without knowing how many devices we are going to find. - * so we create this discovered_devs model which is similar to a linked-list - * which grows when required. it can be freed once discovery has completed, - * eliminating the need for a list node in the libusb_device structure - * itself. */ -struct discovered_devs { - size_t len; - size_t capacity; - struct libusb_device *devices -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) - [] /* valid C99 code */ -#else - [0] /* non-standard, but usually working code */ -#endif - ; -}; - -struct discovered_devs *discovered_devs_append( - struct discovered_devs *discdevs, struct libusb_device *dev); - -/* OS abstraction */ - -/* This is the interface that OS backends need to implement. - * All fields are mandatory, except ones explicitly noted as optional. */ -struct usbi_os_backend { - /* A human-readable name for your backend, e.g. "Linux usbfs" */ - const char *name; - - /* Binary mask for backend specific capabilities */ - uint32_t caps; - - /* Perform initialization of your backend. You might use this function - * to determine specific capabilities of the system, allocate required - * data structures for later, etc. - * - * This function is called when a libusb user initializes the library - * prior to use. - * - * Return 0 on success, or a LIBUSB_ERROR code on failure. - */ - int (*init)(struct libusb_context *ctx); - - /* Deinitialization. Optional. This function should destroy anything - * that was set up by init. - * - * This function is called when the user deinitializes the library. - */ - void (*exit)(void); - - /* Enumerate all the USB devices on the system, returning them in a list - * of discovered devices. - * - * Your implementation should enumerate all devices on the system, - * regardless of whether they have been seen before or not. - * - * When you have found a device, compute a session ID for it. The session - * ID should uniquely represent that particular device for that particular - * connection session since boot (i.e. if you disconnect and reconnect a - * device immediately after, it should be assigned a different session ID). - * If your OS cannot provide a unique session ID as described above, - * presenting a session ID of (bus_number << 8 | device_address) should - * be sufficient. Bus numbers and device addresses wrap and get reused, - * but that is an unlikely case. - * - * After computing a session ID for a device, call - * usbi_get_device_by_session_id(). This function checks if libusb already - * knows about the device, and if so, it provides you with a reference - * to a libusb_device structure for it. - * - * If usbi_get_device_by_session_id() returns NULL, it is time to allocate - * a new device structure for the device. Call usbi_alloc_device() to - * obtain a new libusb_device structure with reference count 1. Populate - * the bus_number and device_address attributes of the new device, and - * perform any other internal backend initialization you need to do. At - * this point, you should be ready to provide device descriptors and so - * on through the get_*_descriptor functions. Finally, call - * usbi_sanitize_device() to perform some final sanity checks on the - * device. Assuming all of the above succeeded, we can now continue. - * If any of the above failed, remember to unreference the device that - * was returned by usbi_alloc_device(). - * - * At this stage we have a populated libusb_device structure (either one - * that was found earlier, or one that we have just allocated and - * populated). This can now be added to the discovered devices list - * using discovered_devs_append(). Note that discovered_devs_append() - * may reallocate the list, returning a new location for it, and also - * note that reallocation can fail. Your backend should handle these - * error conditions appropriately. - * - * This function should not generate any bus I/O and should not block. - * If I/O is required (e.g. reading the active configuration value), it is - * OK to ignore these suggestions :) - * - * This function is executed when the user wishes to retrieve a list - * of USB devices connected to the system. - * - * If the backend has hotplug support, this function is not used! - * - * Return 0 on success, or a LIBUSB_ERROR code on failure. - */ - int (*get_device_list)(struct libusb_context *ctx, - struct discovered_devs **discdevs); - - /* Apps which were written before hotplug support, may listen for - * hotplug events on their own and call libusb_get_device_list on - * device addition. In this case libusb_get_device_list will likely - * return a list without the new device in there, as the hotplug - * event thread will still be busy enumerating the device, which may - * take a while, or may not even have seen the event yet. - * - * To avoid this libusb_get_device_list will call this optional - * function for backends with hotplug support before copying - * ctx->usb_devs to the user. In this function the backend should - * ensure any pending hotplug events are fully processed before - * returning. - * - * Optional, should be implemented by backends with hotplug support. - */ - void (*hotplug_poll)(void); - - /* Open a device for I/O and other USB operations. The device handle - * is preallocated for you, you can retrieve the device in question - * through handle->dev. - * - * Your backend should allocate any internal resources required for I/O - * and other operations so that those operations can happen (hopefully) - * without hiccup. This is also a good place to inform libusb that it - * should monitor certain file descriptors related to this device - - * see the usbi_add_pollfd() function. - * - * This function should not generate any bus I/O and should not block. - * - * This function is called when the user attempts to obtain a device - * handle for a device. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_ACCESS if the user has insufficient permissions - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since - * discovery - * - another LIBUSB_ERROR code on other failure - * - * Do not worry about freeing the handle on failed open, the upper layers - * do this for you. - */ - int (*open)(struct libusb_device_handle *dev_handle); - - /* Close a device such that the handle cannot be used again. Your backend - * should destroy any resources that were allocated in the open path. - * This may also be a good place to call usbi_remove_pollfd() to inform - * libusb of any file descriptors associated with this device that should - * no longer be monitored. - * - * This function is called when the user closes a device handle. - */ - void (*close)(struct libusb_device_handle *dev_handle); - - /* Retrieve the device descriptor from a device. - * - * The descriptor should be retrieved from memory, NOT via bus I/O to the - * device. This means that you may have to cache it in a private structure - * during get_device_list enumeration. Alternatively, you may be able - * to retrieve it from a kernel interface (some Linux setups can do this) - * still without generating bus I/O. - * - * This function is expected to write DEVICE_DESC_LENGTH (18) bytes into - * buffer, which is guaranteed to be big enough. - * - * This function is called when sanity-checking a device before adding - * it to the list of discovered devices, and also when the user requests - * to read the device descriptor. - * - * This function is expected to return the descriptor in bus-endian format - * (LE). If it returns the multi-byte values in host-endian format, - * set the host_endian output parameter to "1". - * - * Return 0 on success or a LIBUSB_ERROR code on failure. - */ - int (*get_device_descriptor)(struct libusb_device *device, - unsigned char *buffer, int *host_endian); - - /* Get the ACTIVE configuration descriptor for a device. - * - * The descriptor should be retrieved from memory, NOT via bus I/O to the - * device. This means that you may have to cache it in a private structure - * during get_device_list enumeration. You may also have to keep track - * of which configuration is active when the user changes it. - * - * This function is expected to write len bytes of data into buffer, which - * is guaranteed to be big enough. If you can only do a partial write, - * return an error code. - * - * This function is expected to return the descriptor in bus-endian format - * (LE). If it returns the multi-byte values in host-endian format, - * set the host_endian output parameter to "1". - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if the device is in unconfigured state - * - another LIBUSB_ERROR code on other failure - */ - int (*get_active_config_descriptor)(struct libusb_device *device, - unsigned char *buffer, size_t len, int *host_endian); - - /* Get a specific configuration descriptor for a device. - * - * The descriptor should be retrieved from memory, NOT via bus I/O to the - * device. This means that you may have to cache it in a private structure - * during get_device_list enumeration. - * - * The requested descriptor is expressed as a zero-based index (i.e. 0 - * indicates that we are requesting the first descriptor). The index does - * not (necessarily) equal the bConfigurationValue of the configuration - * being requested. - * - * This function is expected to write len bytes of data into buffer, which - * is guaranteed to be big enough. If you can only do a partial write, - * return an error code. - * - * This function is expected to return the descriptor in bus-endian format - * (LE). If it returns the multi-byte values in host-endian format, - * set the host_endian output parameter to "1". - * - * Return the length read on success or a LIBUSB_ERROR code on failure. - */ - int (*get_config_descriptor)(struct libusb_device *device, - uint8_t config_index, unsigned char *buffer, size_t len, - int *host_endian); - - /* Like get_config_descriptor but then by bConfigurationValue instead - * of by index. - * - * Optional, if not present the core will call get_config_descriptor - * for all configs until it finds the desired bConfigurationValue. - * - * Returns a pointer to the raw-descriptor in *buffer, this memory - * is valid as long as device is valid. - * - * Returns the length of the returned raw-descriptor on success, - * or a LIBUSB_ERROR code on failure. - */ - int (*get_config_descriptor_by_value)(struct libusb_device *device, - uint8_t bConfigurationValue, unsigned char **buffer, - int *host_endian); - - /* Get the bConfigurationValue for the active configuration for a device. - * Optional. This should only be implemented if you can retrieve it from - * cache (don't generate I/O). - * - * If you cannot retrieve this from cache, either do not implement this - * function, or return LIBUSB_ERROR_NOT_SUPPORTED. This will cause - * libusb to retrieve the information through a standard control transfer. - * - * This function must be non-blocking. - * Return: - * - 0 on success - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - LIBUSB_ERROR_NOT_SUPPORTED if the value cannot be retrieved without - * blocking - * - another LIBUSB_ERROR code on other failure. - */ - int (*get_configuration)(struct libusb_device_handle *dev_handle, int *config); - - /* Set the active configuration for a device. - * - * A configuration value of -1 should put the device in unconfigured state. - * - * This function can block. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if the configuration does not exist - * - LIBUSB_ERROR_BUSY if interfaces are currently claimed (and hence - * configuration cannot be changed) - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure. - */ - int (*set_configuration)(struct libusb_device_handle *dev_handle, int config); - - /* Claim an interface. When claimed, the application can then perform - * I/O to an interface's endpoints. - * - * This function should not generate any bus I/O and should not block. - * Interface claiming is a logical operation that simply ensures that - * no other drivers/applications are using the interface, and after - * claiming, no other drivers/applications can use the interface because - * we now "own" it. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if the interface does not exist - * - LIBUSB_ERROR_BUSY if the interface is in use by another driver/app - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*claim_interface)(struct libusb_device_handle *dev_handle, int interface_number); - - /* Release a previously claimed interface. - * - * This function should also generate a SET_INTERFACE control request, - * resetting the alternate setting of that interface to 0. It's OK for - * this function to block as a result. - * - * You will only ever be asked to release an interface which was - * successfully claimed earlier. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*release_interface)(struct libusb_device_handle *dev_handle, int interface_number); - - /* Set the alternate setting for an interface. - * - * You will only ever be asked to set the alternate setting for an - * interface which was successfully claimed earlier. - * - * It's OK for this function to block. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if the alternate setting does not exist - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*set_interface_altsetting)(struct libusb_device_handle *dev_handle, - int interface_number, int altsetting); - - /* Clear a halt/stall condition on an endpoint. - * - * It's OK for this function to block. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if the endpoint does not exist - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*clear_halt)(struct libusb_device_handle *dev_handle, - unsigned char endpoint); - - /* Perform a USB port reset to reinitialize a device. - * - * If possible, the device handle should still be usable after the reset - * completes, assuming that the device descriptors did not change during - * reset and all previous interface state can be restored. - * - * If something changes, or you cannot easily locate/verify the resetted - * device, return LIBUSB_ERROR_NOT_FOUND. This prompts the application - * to close the old handle and re-enumerate the device. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if re-enumeration is required, or if the device - * has been disconnected since it was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*reset_device)(struct libusb_device_handle *dev_handle); - - /* Alloc num_streams usb3 bulk streams on the passed in endpoints */ - int (*alloc_streams)(struct libusb_device_handle *dev_handle, - uint32_t num_streams, unsigned char *endpoints, int num_endpoints); - - /* Free usb3 bulk streams allocated with alloc_streams */ - int (*free_streams)(struct libusb_device_handle *dev_handle, - unsigned char *endpoints, int num_endpoints); - - /* Allocate persistent DMA memory for the given device, suitable for - * zerocopy. May return NULL on failure. Optional to implement. - */ - unsigned char *(*dev_mem_alloc)(struct libusb_device_handle *handle, - size_t len); - - /* Free memory allocated by dev_mem_alloc. */ - int (*dev_mem_free)(struct libusb_device_handle *handle, - unsigned char *buffer, size_t len); - - /* Determine if a kernel driver is active on an interface. Optional. - * - * The presence of a kernel driver on an interface indicates that any - * calls to claim_interface would fail with the LIBUSB_ERROR_BUSY code. - * - * Return: - * - 0 if no driver is active - * - 1 if a driver is active - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*kernel_driver_active)(struct libusb_device_handle *dev_handle, - int interface_number); - - /* Detach a kernel driver from an interface. Optional. - * - * After detaching a kernel driver, the interface should be available - * for claim. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if no kernel driver was active - * - LIBUSB_ERROR_INVALID_PARAM if the interface does not exist - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - another LIBUSB_ERROR code on other failure - */ - int (*detach_kernel_driver)(struct libusb_device_handle *dev_handle, - int interface_number); - - /* Attach a kernel driver to an interface. Optional. - * - * Reattach a kernel driver to the device. - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NOT_FOUND if no kernel driver was active - * - LIBUSB_ERROR_INVALID_PARAM if the interface does not exist - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected since it - * was opened - * - LIBUSB_ERROR_BUSY if a program or driver has claimed the interface, - * preventing reattachment - * - another LIBUSB_ERROR code on other failure - */ - int (*attach_kernel_driver)(struct libusb_device_handle *dev_handle, - int interface_number); - - /* Destroy a device. Optional. - * - * This function is called when the last reference to a device is - * destroyed. It should free any resources allocated in the get_device_list - * path. - */ - void (*destroy_device)(struct libusb_device *dev); - - /* Submit a transfer. Your implementation should take the transfer, - * morph it into whatever form your platform requires, and submit it - * asynchronously. - * - * This function must not block. - * - * This function gets called with the flying_transfers_lock locked! - * - * Return: - * - 0 on success - * - LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * - another LIBUSB_ERROR code on other failure - */ - int (*submit_transfer)(struct usbi_transfer *itransfer); - - /* Cancel a previously submitted transfer. - * - * This function must not block. The transfer cancellation must complete - * later, resulting in a call to usbi_handle_transfer_cancellation() - * from the context of handle_events. - */ - int (*cancel_transfer)(struct usbi_transfer *itransfer); - - /* Clear a transfer as if it has completed or cancelled, but do not - * report any completion/cancellation to the library. You should free - * all private data from the transfer as if you were just about to report - * completion or cancellation. - * - * This function might seem a bit out of place. It is used when libusb - * detects a disconnected device - it calls this function for all pending - * transfers before reporting completion (with the disconnect code) to - * the user. Maybe we can improve upon this internal interface in future. - */ - void (*clear_transfer_priv)(struct usbi_transfer *itransfer); - - /* Handle any pending events on file descriptors. Optional. - * - * Provide this function when file descriptors directly indicate device - * or transfer activity. If your backend does not have such file descriptors, - * implement the handle_transfer_completion function below. - * - * This involves monitoring any active transfers and processing their - * completion or cancellation. - * - * The function is passed an array of pollfd structures (size nfds) - * as a result of the poll() system call. The num_ready parameter - * indicates the number of file descriptors that have reported events - * (i.e. the poll() return value). This should be enough information - * for you to determine which actions need to be taken on the currently - * active transfers. - * - * For any cancelled transfers, call usbi_handle_transfer_cancellation(). - * For completed transfers, call usbi_handle_transfer_completion(). - * For control/bulk/interrupt transfers, populate the "transferred" - * element of the appropriate usbi_transfer structure before calling the - * above functions. For isochronous transfers, populate the status and - * transferred fields of the iso packet descriptors of the transfer. - * - * This function should also be able to detect disconnection of the - * device, reporting that situation with usbi_handle_disconnect(). - * - * When processing an event related to a transfer, you probably want to - * take usbi_transfer.lock to prevent races. See the documentation for - * the usbi_transfer structure. - * - * Return 0 on success, or a LIBUSB_ERROR code on failure. - */ - int (*handle_events)(struct libusb_context *ctx, - struct pollfd *fds, POLL_NFDS_TYPE nfds, int num_ready); - - /* Handle transfer completion. Optional. - * - * Provide this function when there are no file descriptors available - * that directly indicate device or transfer activity. If your backend does - * have such file descriptors, implement the handle_events function above. - * - * Your backend must tell the library when a transfer has completed by - * calling usbi_signal_transfer_completion(). You should store any private - * information about the transfer and its completion status in the transfer's - * private backend data. - * - * During event handling, this function will be called on each transfer for - * which usbi_signal_transfer_completion() was called. - * - * For any cancelled transfers, call usbi_handle_transfer_cancellation(). - * For completed transfers, call usbi_handle_transfer_completion(). - * For control/bulk/interrupt transfers, populate the "transferred" - * element of the appropriate usbi_transfer structure before calling the - * above functions. For isochronous transfers, populate the status and - * transferred fields of the iso packet descriptors of the transfer. - * - * Return 0 on success, or a LIBUSB_ERROR code on failure. - */ - int (*handle_transfer_completion)(struct usbi_transfer *itransfer); - - /* Get time from specified clock. At least two clocks must be implemented - by the backend: USBI_CLOCK_REALTIME, and USBI_CLOCK_MONOTONIC. - - Description of clocks: - USBI_CLOCK_REALTIME : clock returns time since system epoch. - USBI_CLOCK_MONOTONIC: clock returns time since unspecified start - time (usually boot). - */ - int (*clock_gettime)(int clkid, struct timespec *tp); - -#ifdef USBI_TIMERFD_AVAILABLE - /* clock ID of the clock that should be used for timerfd */ - clockid_t (*get_timerfd_clockid)(void); -#endif - - /* Number of bytes to reserve for per-device private backend data. - * This private data area is accessible through the "os_priv" field of - * struct libusb_device. */ - size_t device_priv_size; - - /* Number of bytes to reserve for per-handle private backend data. - * This private data area is accessible through the "os_priv" field of - * struct libusb_device. */ - size_t device_handle_priv_size; - - /* Number of bytes to reserve for per-transfer private backend data. - * This private data area is accessible by calling - * usbi_transfer_get_os_priv() on the appropriate usbi_transfer instance. - */ - size_t transfer_priv_size; -}; - -extern const struct usbi_os_backend * const usbi_backend; - -extern const struct usbi_os_backend linux_usbfs_backend; -extern const struct usbi_os_backend darwin_backend; -extern const struct usbi_os_backend openbsd_backend; -extern const struct usbi_os_backend netbsd_backend; -extern const struct usbi_os_backend windows_backend; -extern const struct usbi_os_backend usbdk_backend; -extern const struct usbi_os_backend wince_backend; -extern const struct usbi_os_backend haiku_usb_raw_backend; -extern const struct usbi_os_backend sunos_backend; - -extern struct list_head active_contexts_list; -extern usbi_mutex_static_t active_contexts_lock; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.c deleted file mode 100644 index b0219d1b..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.c +++ /dev/null @@ -1,2094 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode:nil -*- */ -/* - * darwin backend for libusb 1.0 - * Copyright © 2008-2016 Nathan Hjelm - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 && MAC_OS_X_VERSION_MIN_REQUIRED < 101200 - #include -#endif - -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101200 -/* Apple deprecated the darwin atomics in 10.12 in favor of C11 atomics */ -#include -#define libusb_darwin_atomic_fetch_add(x, y) atomic_fetch_add(x, y) - -_Atomic int32_t initCount = ATOMIC_VAR_INIT(0); -#else -/* use darwin atomics if the target is older than 10.12 */ -#include - -/* OSAtomicAdd32Barrier returns the new value */ -#define libusb_darwin_atomic_fetch_add(x, y) (OSAtomicAdd32Barrier(y, x) - y) - -static volatile int32_t initCount = 0; -#endif - -#include "darwin_usb.h" - -/* async event thread */ -static pthread_mutex_t libusb_darwin_at_mutex = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t libusb_darwin_at_cond = PTHREAD_COND_INITIALIZER; - -static pthread_once_t darwin_init_once = PTHREAD_ONCE_INIT; - -static clock_serv_t clock_realtime; -static clock_serv_t clock_monotonic; - -static CFRunLoopRef libusb_darwin_acfl = NULL; /* event cf loop */ -static CFRunLoopSourceRef libusb_darwin_acfls = NULL; /* shutdown signal for event cf loop */ - -static usbi_mutex_t darwin_cached_devices_lock = PTHREAD_MUTEX_INITIALIZER; -static struct list_head darwin_cached_devices = {&darwin_cached_devices, &darwin_cached_devices}; -static char *darwin_device_class = kIOUSBDeviceClassName; - -#define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev)) - -/* async event thread */ -static pthread_t libusb_darwin_at; - -static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian); -static int darwin_claim_interface(struct libusb_device_handle *dev_handle, int iface); -static int darwin_release_interface(struct libusb_device_handle *dev_handle, int iface); -static int darwin_reset_device(struct libusb_device_handle *dev_handle); -static void darwin_async_io_callback (void *refcon, IOReturn result, void *arg0); - -static int darwin_scan_devices(struct libusb_context *ctx); -static int process_new_device (struct libusb_context *ctx, io_service_t service); - -#if defined(ENABLE_LOGGING) -static const char *darwin_error_str (int result) { - static char string_buffer[50]; - switch (result) { - case kIOReturnSuccess: - return "no error"; - case kIOReturnNotOpen: - return "device not opened for exclusive access"; - case kIOReturnNoDevice: - return "no connection to an IOService"; - case kIOUSBNoAsyncPortErr: - return "no async port has been opened for interface"; - case kIOReturnExclusiveAccess: - return "another process has device opened for exclusive access"; - case kIOUSBPipeStalled: - return "pipe is stalled"; - case kIOReturnError: - return "could not establish a connection to the Darwin kernel"; - case kIOUSBTransactionTimeout: - return "transaction timed out"; - case kIOReturnBadArgument: - return "invalid argument"; - case kIOReturnAborted: - return "transaction aborted"; - case kIOReturnNotResponding: - return "device not responding"; - case kIOReturnOverrun: - return "data overrun"; - case kIOReturnCannotWire: - return "physical memory can not be wired down"; - case kIOReturnNoResources: - return "out of resources"; - case kIOUSBHighSpeedSplitError: - return "high speed split error"; - default: - snprintf(string_buffer, sizeof(string_buffer), "unknown error (0x%x)", result); - return string_buffer; - } -} -#endif - -static int darwin_to_libusb (int result) { - switch (result) { - case kIOReturnUnderrun: - case kIOReturnSuccess: - return LIBUSB_SUCCESS; - case kIOReturnNotOpen: - case kIOReturnNoDevice: - return LIBUSB_ERROR_NO_DEVICE; - case kIOReturnExclusiveAccess: - return LIBUSB_ERROR_ACCESS; - case kIOUSBPipeStalled: - return LIBUSB_ERROR_PIPE; - case kIOReturnBadArgument: - return LIBUSB_ERROR_INVALID_PARAM; - case kIOUSBTransactionTimeout: - return LIBUSB_ERROR_TIMEOUT; - case kIOReturnNotResponding: - case kIOReturnAborted: - case kIOReturnError: - case kIOUSBNoAsyncPortErr: - default: - return LIBUSB_ERROR_OTHER; - } -} - -/* this function must be called with the darwin_cached_devices_lock held */ -static void darwin_deref_cached_device(struct darwin_cached_device *cached_dev) { - cached_dev->refcount--; - /* free the device and remove it from the cache */ - if (0 == cached_dev->refcount) { - list_del(&cached_dev->list); - - (*(cached_dev->device))->Release(cached_dev->device); - free (cached_dev); - } -} - -static void darwin_ref_cached_device(struct darwin_cached_device *cached_dev) { - cached_dev->refcount++; -} - -static int ep_to_pipeRef(struct libusb_device_handle *dev_handle, uint8_t ep, uint8_t *pipep, uint8_t *ifcp, struct darwin_interface **interface_out) { - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - - /* current interface */ - struct darwin_interface *cInterface; - - int8_t i, iface; - - usbi_dbg ("converting ep address 0x%02x to pipeRef and interface", ep); - - for (iface = 0 ; iface < USB_MAXINTERFACES ; iface++) { - cInterface = &priv->interfaces[iface]; - - if (dev_handle->claimed_interfaces & (1 << iface)) { - for (i = 0 ; i < cInterface->num_endpoints ; i++) { - if (cInterface->endpoint_addrs[i] == ep) { - *pipep = i + 1; - - if (ifcp) - *ifcp = iface; - - if (interface_out) - *interface_out = cInterface; - - usbi_dbg ("pipe %d on interface %d matches", *pipep, iface); - return 0; - } - } - } - } - - /* No pipe found with the correct endpoint address */ - usbi_warn (HANDLE_CTX(dev_handle), "no pipeRef found with endpoint address 0x%02x.", ep); - - return LIBUSB_ERROR_NOT_FOUND; -} - -static int usb_setup_device_iterator (io_iterator_t *deviceIterator, UInt32 location) { - CFMutableDictionaryRef matchingDict = IOServiceMatching(darwin_device_class); - - if (!matchingDict) - return kIOReturnError; - - if (location) { - CFMutableDictionaryRef propertyMatchDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - - if (propertyMatchDict) { - /* there are no unsigned CFNumber types so treat the value as signed. the os seems to do this - internally (CFNumberType of locationID is 3) */ - CFTypeRef locationCF = CFNumberCreate (NULL, kCFNumberSInt32Type, &location); - - CFDictionarySetValue (propertyMatchDict, CFSTR(kUSBDevicePropertyLocationID), locationCF); - /* release our reference to the CFNumber (CFDictionarySetValue retains it) */ - CFRelease (locationCF); - - CFDictionarySetValue (matchingDict, CFSTR(kIOPropertyMatchKey), propertyMatchDict); - /* release out reference to the CFMutableDictionaryRef (CFDictionarySetValue retains it) */ - CFRelease (propertyMatchDict); - } - /* else we can still proceed as long as the caller accounts for the possibility of other devices in the iterator */ - } - - return IOServiceGetMatchingServices(kIOMasterPortDefault, matchingDict, deviceIterator); -} - -/* Returns 1 on success, 0 on failure. */ -static int get_ioregistry_value_number (io_service_t service, CFStringRef property, CFNumberType type, void *p) { - CFTypeRef cfNumber = IORegistryEntryCreateCFProperty (service, property, kCFAllocatorDefault, 0); - int ret = 0; - - if (cfNumber) { - if (CFGetTypeID(cfNumber) == CFNumberGetTypeID()) { - ret = CFNumberGetValue(cfNumber, type, p); - } - - CFRelease (cfNumber); - } - - return ret; -} - -static int get_ioregistry_value_data (io_service_t service, CFStringRef property, ssize_t size, void *p) { - CFTypeRef cfData = IORegistryEntryCreateCFProperty (service, property, kCFAllocatorDefault, 0); - int ret = 0; - - if (cfData) { - if (CFGetTypeID (cfData) == CFDataGetTypeID ()) { - CFIndex length = CFDataGetLength (cfData); - if (length < size) { - size = length; - } - - CFDataGetBytes (cfData, CFRangeMake(0, size), p); - ret = 1; - } - - CFRelease (cfData); - } - - return ret; -} - -static usb_device_t **darwin_device_from_service (io_service_t service) -{ - io_cf_plugin_ref_t *plugInInterface = NULL; - usb_device_t **device; - kern_return_t result; - SInt32 score; - - result = IOCreatePlugInInterfaceForService(service, kIOUSBDeviceUserClientTypeID, - kIOCFPlugInInterfaceID, &plugInInterface, - &score); - - if (kIOReturnSuccess != result || !plugInInterface) { - usbi_dbg ("could not set up plugin for service: %s", darwin_error_str (result)); - return NULL; - } - - (void)(*plugInInterface)->QueryInterface(plugInInterface, CFUUIDGetUUIDBytes(DeviceInterfaceID), - (LPVOID)&device); - /* Use release instead of IODestroyPlugInInterface to avoid stopping IOServices associated with this device */ - (*plugInInterface)->Release (plugInInterface); - - return device; -} - -static void darwin_devices_attached (void *ptr, io_iterator_t add_devices) { - struct libusb_context *ctx; - io_service_t service; - - usbi_mutex_lock(&active_contexts_lock); - - while ((service = IOIteratorNext(add_devices))) { - /* add this device to each active context's device list */ - list_for_each_entry(ctx, &active_contexts_list, list, struct libusb_context) { - process_new_device (ctx, service);; - } - - IOObjectRelease(service); - } - - usbi_mutex_unlock(&active_contexts_lock); -} - -static void darwin_devices_detached (void *ptr, io_iterator_t rem_devices) { - struct libusb_device *dev = NULL; - struct libusb_context *ctx; - struct darwin_cached_device *old_device; - - io_service_t device; - UInt64 session; - int ret; - - usbi_mutex_lock(&active_contexts_lock); - - while ((device = IOIteratorNext (rem_devices)) != 0) { - /* get the location from the i/o registry */ - ret = get_ioregistry_value_number (device, CFSTR("sessionID"), kCFNumberSInt64Type, &session); - IOObjectRelease (device); - if (!ret) - continue; - - /* we need to match darwin_ref_cached_device call made in darwin_get_cached_device function - otherwise no cached device will ever get freed */ - usbi_mutex_lock(&darwin_cached_devices_lock); - list_for_each_entry(old_device, &darwin_cached_devices, list, struct darwin_cached_device) { - if (old_device->session == session) { - darwin_deref_cached_device (old_device); - break; - } - } - usbi_mutex_unlock(&darwin_cached_devices_lock); - - list_for_each_entry(ctx, &active_contexts_list, list, struct libusb_context) { - usbi_dbg ("notifying context %p of device disconnect", ctx); - - dev = usbi_get_device_by_session_id(ctx, (unsigned long) session); - if (dev) { - /* signal the core that this device has been disconnected. the core will tear down this device - when the reference count reaches 0 */ - usbi_disconnect_device(dev); - libusb_unref_device(dev); - } - } - } - - usbi_mutex_unlock(&active_contexts_lock); -} - -static void darwin_hotplug_poll (void) -{ - /* not sure if 5 seconds will be too long/short but it should work ok */ - mach_timespec_t timeout = {.tv_sec = 5, .tv_nsec = 0}; - - /* since a kernel thread may nodify the IOInterators used for - * hotplug notidication we can't just clear the iterators. - * instead just wait until all IOService providers are quiet */ - (void) IOKitWaitQuiet (kIOMasterPortDefault, &timeout); -} - -static void darwin_clear_iterator (io_iterator_t iter) { - io_service_t device; - - while ((device = IOIteratorNext (iter)) != 0) - IOObjectRelease (device); -} - -static void *darwin_event_thread_main (void *arg0) { - IOReturn kresult; - struct libusb_context *ctx = (struct libusb_context *)arg0; - CFRunLoopRef runloop; - -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 - /* Set this thread's name, so it can be seen in the debugger - and crash reports. */ - pthread_setname_np ("org.libusb.device-hotplug"); -#endif - -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 && MAC_OS_X_VERSION_MIN_REQUIRED < 101200 - /* Tell the Objective-C garbage collector about this thread. - This is required because, unlike NSThreads, pthreads are - not automatically registered. Although we don't use - Objective-C, we use CoreFoundation, which does. - Garbage collection support was entirely removed in 10.12, - so don't bother there. */ - objc_registerThreadWithCollector(); -#endif - - /* hotplug (device arrival/removal) sources */ - CFRunLoopSourceContext libusb_shutdown_cfsourcectx; - CFRunLoopSourceRef libusb_notification_cfsource; - io_notification_port_t libusb_notification_port; - io_iterator_t libusb_rem_device_iterator; - io_iterator_t libusb_add_device_iterator; - - usbi_dbg ("creating hotplug event source"); - - runloop = CFRunLoopGetCurrent (); - CFRetain (runloop); - - /* add the shutdown cfsource to the run loop */ - memset(&libusb_shutdown_cfsourcectx, 0, sizeof(libusb_shutdown_cfsourcectx)); - libusb_shutdown_cfsourcectx.info = runloop; - libusb_shutdown_cfsourcectx.perform = (void (*)(void *))CFRunLoopStop; - libusb_darwin_acfls = CFRunLoopSourceCreate(NULL, 0, &libusb_shutdown_cfsourcectx); - CFRunLoopAddSource(runloop, libusb_darwin_acfls, kCFRunLoopDefaultMode); - - /* add the notification port to the run loop */ - libusb_notification_port = IONotificationPortCreate (kIOMasterPortDefault); - libusb_notification_cfsource = IONotificationPortGetRunLoopSource (libusb_notification_port); - CFRunLoopAddSource(runloop, libusb_notification_cfsource, kCFRunLoopDefaultMode); - - /* create notifications for removed devices */ - kresult = IOServiceAddMatchingNotification (libusb_notification_port, kIOTerminatedNotification, - IOServiceMatching(darwin_device_class), - darwin_devices_detached, - ctx, &libusb_rem_device_iterator); - - if (kresult != kIOReturnSuccess) { - usbi_err (ctx, "could not add hotplug event source: %s", darwin_error_str (kresult)); - - pthread_exit (NULL); - } - - /* create notifications for attached devices */ - kresult = IOServiceAddMatchingNotification(libusb_notification_port, kIOFirstMatchNotification, - IOServiceMatching(darwin_device_class), - darwin_devices_attached, - ctx, &libusb_add_device_iterator); - - if (kresult != kIOReturnSuccess) { - usbi_err (ctx, "could not add hotplug event source: %s", darwin_error_str (kresult)); - - pthread_exit (NULL); - } - - /* arm notifiers */ - darwin_clear_iterator (libusb_rem_device_iterator); - darwin_clear_iterator (libusb_add_device_iterator); - - usbi_dbg ("darwin event thread ready to receive events"); - - /* signal the main thread that the hotplug runloop has been created. */ - pthread_mutex_lock (&libusb_darwin_at_mutex); - libusb_darwin_acfl = runloop; - pthread_cond_signal (&libusb_darwin_at_cond); - pthread_mutex_unlock (&libusb_darwin_at_mutex); - - /* run the runloop */ - CFRunLoopRun(); - - usbi_dbg ("darwin event thread exiting"); - - /* remove the notification cfsource */ - CFRunLoopRemoveSource(runloop, libusb_notification_cfsource, kCFRunLoopDefaultMode); - - /* remove the shutdown cfsource */ - CFRunLoopRemoveSource(runloop, libusb_darwin_acfls, kCFRunLoopDefaultMode); - - /* delete notification port */ - IONotificationPortDestroy (libusb_notification_port); - - /* delete iterators */ - IOObjectRelease (libusb_rem_device_iterator); - IOObjectRelease (libusb_add_device_iterator); - - CFRelease (libusb_darwin_acfls); - CFRelease (runloop); - - libusb_darwin_acfls = NULL; - libusb_darwin_acfl = NULL; - - pthread_exit (NULL); -} - -/* cleanup function to destroy cached devices */ -static void __attribute__((destructor)) _darwin_finalize(void) { - struct darwin_cached_device *dev, *next; - - usbi_mutex_lock(&darwin_cached_devices_lock); - list_for_each_entry_safe(dev, next, &darwin_cached_devices, list, struct darwin_cached_device) { - darwin_deref_cached_device(dev); - } - usbi_mutex_unlock(&darwin_cached_devices_lock); -} - -static void darwin_check_version (void) { - /* adjust for changes in the USB stack in xnu 15 */ - int sysctl_args[] = {CTL_KERN, KERN_OSRELEASE}; - long version; - char version_string[256] = {'\0',}; - size_t length = 256; - - sysctl(sysctl_args, 2, version_string, &length, NULL, 0); - - errno = 0; - version = strtol (version_string, NULL, 10); - if (0 == errno && version >= 15) { - darwin_device_class = "IOUSBHostDevice"; - } -} - -static int darwin_init(struct libusb_context *ctx) { - host_name_port_t host_self; - int rc; - - rc = pthread_once (&darwin_init_once, darwin_check_version); - if (rc) { - return LIBUSB_ERROR_OTHER; - } - - rc = darwin_scan_devices (ctx); - if (LIBUSB_SUCCESS != rc) { - return rc; - } - - if (libusb_darwin_atomic_fetch_add (&initCount, 1) == 0) { - /* create the clocks that will be used */ - - host_self = mach_host_self(); - host_get_clock_service(host_self, CALENDAR_CLOCK, &clock_realtime); - host_get_clock_service(host_self, SYSTEM_CLOCK, &clock_monotonic); - mach_port_deallocate(mach_task_self(), host_self); - - pthread_create (&libusb_darwin_at, NULL, darwin_event_thread_main, ctx); - - pthread_mutex_lock (&libusb_darwin_at_mutex); - while (!libusb_darwin_acfl) - pthread_cond_wait (&libusb_darwin_at_cond, &libusb_darwin_at_mutex); - pthread_mutex_unlock (&libusb_darwin_at_mutex); - } - - return rc; -} - -static void darwin_exit (void) { - if (libusb_darwin_atomic_fetch_add (&initCount, -1) == 1) { - mach_port_deallocate(mach_task_self(), clock_realtime); - mach_port_deallocate(mach_task_self(), clock_monotonic); - - /* stop the event runloop and wait for the thread to terminate. */ - CFRunLoopSourceSignal(libusb_darwin_acfls); - CFRunLoopWakeUp (libusb_darwin_acfl); - pthread_join (libusb_darwin_at, NULL); - } -} - -static int darwin_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer, int *host_endian) { - struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); - - /* return cached copy */ - memmove (buffer, &(priv->dev_descriptor), DEVICE_DESC_LENGTH); - - *host_endian = 0; - - return 0; -} - -static int get_configuration_index (struct libusb_device *dev, int config_value) { - struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); - UInt8 i, numConfig; - IOUSBConfigurationDescriptorPtr desc; - IOReturn kresult; - - /* is there a simpler way to determine the index? */ - kresult = (*(priv->device))->GetNumberOfConfigurations (priv->device, &numConfig); - if (kresult != kIOReturnSuccess) - return darwin_to_libusb (kresult); - - for (i = 0 ; i < numConfig ; i++) { - (*(priv->device))->GetConfigurationDescriptorPtr (priv->device, i, &desc); - - if (desc->bConfigurationValue == config_value) - return i; - } - - /* configuration not found */ - return LIBUSB_ERROR_NOT_FOUND; -} - -static int darwin_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len, int *host_endian) { - struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); - int config_index; - - if (0 == priv->active_config) - return LIBUSB_ERROR_NOT_FOUND; - - config_index = get_configuration_index (dev, priv->active_config); - if (config_index < 0) - return config_index; - - return darwin_get_config_descriptor (dev, config_index, buffer, len, host_endian); -} - -static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) { - struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); - IOUSBConfigurationDescriptorPtr desc; - IOReturn kresult; - int ret; - - if (!priv || !priv->device) - return LIBUSB_ERROR_OTHER; - - kresult = (*priv->device)->GetConfigurationDescriptorPtr (priv->device, config_index, &desc); - if (kresult == kIOReturnSuccess) { - /* copy descriptor */ - if (libusb_le16_to_cpu(desc->wTotalLength) < len) - len = libusb_le16_to_cpu(desc->wTotalLength); - - memmove (buffer, desc, len); - - /* GetConfigurationDescriptorPtr returns the descriptor in USB bus order */ - *host_endian = 0; - } - - ret = darwin_to_libusb (kresult); - if (ret != LIBUSB_SUCCESS) - return ret; - - return (int) len; -} - -/* check whether the os has configured the device */ -static int darwin_check_configuration (struct libusb_context *ctx, struct darwin_cached_device *dev) { - usb_device_t **darwin_device = dev->device; - - IOUSBConfigurationDescriptorPtr configDesc; - IOUSBFindInterfaceRequest request; - kern_return_t kresult; - io_iterator_t interface_iterator; - io_service_t firstInterface; - - if (dev->dev_descriptor.bNumConfigurations < 1) { - usbi_err (ctx, "device has no configurations"); - return LIBUSB_ERROR_OTHER; /* no configurations at this speed so we can't use it */ - } - - /* checking the configuration of a root hub simulation takes ~1 s in 10.11. the device is - not usable anyway */ - if (0x05ac == dev->dev_descriptor.idVendor && 0x8005 == dev->dev_descriptor.idProduct) { - usbi_dbg ("ignoring configuration on root hub simulation"); - dev->active_config = 0; - return 0; - } - - /* find the first configuration */ - kresult = (*darwin_device)->GetConfigurationDescriptorPtr (darwin_device, 0, &configDesc); - dev->first_config = (kIOReturnSuccess == kresult) ? configDesc->bConfigurationValue : 1; - - /* check if the device is already configured. there is probably a better way than iterating over the - to accomplish this (the trick is we need to avoid a call to GetConfigurations since buggy devices - might lock up on the device request) */ - - /* Setup the Interface Request */ - request.bInterfaceClass = kIOUSBFindInterfaceDontCare; - request.bInterfaceSubClass = kIOUSBFindInterfaceDontCare; - request.bInterfaceProtocol = kIOUSBFindInterfaceDontCare; - request.bAlternateSetting = kIOUSBFindInterfaceDontCare; - - kresult = (*(darwin_device))->CreateInterfaceIterator(darwin_device, &request, &interface_iterator); - if (kresult) - return darwin_to_libusb (kresult); - - /* iterate once */ - firstInterface = IOIteratorNext(interface_iterator); - - /* done with the interface iterator */ - IOObjectRelease(interface_iterator); - - if (firstInterface) { - IOObjectRelease (firstInterface); - - /* device is configured */ - if (dev->dev_descriptor.bNumConfigurations == 1) - /* to avoid problems with some devices get the configurations value from the configuration descriptor */ - dev->active_config = dev->first_config; - else - /* devices with more than one configuration should work with GetConfiguration */ - (*darwin_device)->GetConfiguration (darwin_device, &dev->active_config); - } else - /* not configured */ - dev->active_config = 0; - - usbi_dbg ("active config: %u, first config: %u", dev->active_config, dev->first_config); - - return 0; -} - -static int darwin_request_descriptor (usb_device_t **device, UInt8 desc, UInt8 desc_index, void *buffer, size_t buffer_size) { - IOUSBDevRequestTO req; - - memset (buffer, 0, buffer_size); - - /* Set up request for descriptor/ */ - req.bmRequestType = USBmakebmRequestType(kUSBIn, kUSBStandard, kUSBDevice); - req.bRequest = kUSBRqGetDescriptor; - req.wValue = desc << 8; - req.wIndex = desc_index; - req.wLength = buffer_size; - req.pData = buffer; - req.noDataTimeout = 20; - req.completionTimeout = 100; - - return (*device)->DeviceRequestTO (device, &req); -} - -static int darwin_cache_device_descriptor (struct libusb_context *ctx, struct darwin_cached_device *dev) { - usb_device_t **device = dev->device; - int retries = 1, delay = 30000; - int unsuspended = 0, try_unsuspend = 1, try_reconfigure = 1; - int is_open = 0; - int ret = 0, ret2; - UInt8 bDeviceClass; - UInt16 idProduct, idVendor; - - dev->can_enumerate = 0; - - (*device)->GetDeviceClass (device, &bDeviceClass); - (*device)->GetDeviceProduct (device, &idProduct); - (*device)->GetDeviceVendor (device, &idVendor); - - /* According to Apple's documentation the device must be open for DeviceRequest but we may not be able to open some - * devices and Apple's USB Prober doesn't bother to open the device before issuing a descriptor request. Still, - * to follow the spec as closely as possible, try opening the device */ - is_open = ((*device)->USBDeviceOpenSeize(device) == kIOReturnSuccess); - - do { - /**** retrieve device descriptor ****/ - ret = darwin_request_descriptor (device, kUSBDeviceDesc, 0, &dev->dev_descriptor, sizeof(dev->dev_descriptor)); - - if (kIOReturnOverrun == ret && kUSBDeviceDesc == dev->dev_descriptor.bDescriptorType) - /* received an overrun error but we still received a device descriptor */ - ret = kIOReturnSuccess; - - if (kIOUSBVendorIDAppleComputer == idVendor) { - /* NTH: don't bother retrying or unsuspending Apple devices */ - break; - } - - if (kIOReturnSuccess == ret && (0 == dev->dev_descriptor.bNumConfigurations || - 0 == dev->dev_descriptor.bcdUSB)) { - /* work around for incorrectly configured devices */ - if (try_reconfigure && is_open) { - usbi_dbg("descriptor appears to be invalid. resetting configuration before trying again..."); - - /* set the first configuration */ - (*device)->SetConfiguration(device, 1); - - /* don't try to reconfigure again */ - try_reconfigure = 0; - } - - ret = kIOUSBPipeStalled; - } - - if (kIOReturnSuccess != ret && is_open && try_unsuspend) { - /* device may be suspended. unsuspend it and try again */ -#if DeviceVersion >= 320 - UInt32 info = 0; - - /* IOUSBFamily 320+ provides a way to detect device suspension but earlier versions do not */ - (void)(*device)->GetUSBDeviceInformation (device, &info); - - /* note that the device was suspended */ - if (info & (1 << kUSBInformationDeviceIsSuspendedBit) || 0 == info) - try_unsuspend = 1; -#endif - - if (try_unsuspend) { - /* try to unsuspend the device */ - ret2 = (*device)->USBDeviceSuspend (device, 0); - if (kIOReturnSuccess != ret2) { - /* prevent log spew from poorly behaving devices. this indicates the - os actually had trouble communicating with the device */ - usbi_dbg("could not retrieve device descriptor. failed to unsuspend: %s",darwin_error_str(ret2)); - } else - unsuspended = 1; - - try_unsuspend = 0; - } - } - - if (kIOReturnSuccess != ret) { - usbi_dbg("kernel responded with code: 0x%08x. sleeping for %d ms before trying again", ret, delay/1000); - /* sleep for a little while before trying again */ - nanosleep(&(struct timespec){delay / 1000000, (delay * 1000) % 1000000000UL}, NULL); - } - } while (kIOReturnSuccess != ret && retries--); - - if (unsuspended) - /* resuspend the device */ - (void)(*device)->USBDeviceSuspend (device, 1); - - if (is_open) - (void) (*device)->USBDeviceClose (device); - - if (ret != kIOReturnSuccess) { - /* a debug message was already printed out for this error */ - if (LIBUSB_CLASS_HUB == bDeviceClass) - usbi_dbg ("could not retrieve device descriptor %.4x:%.4x: %s (%x). skipping device", - idVendor, idProduct, darwin_error_str (ret), ret); - else - usbi_warn (ctx, "could not retrieve device descriptor %.4x:%.4x: %s (%x). skipping device", - idVendor, idProduct, darwin_error_str (ret), ret); - return darwin_to_libusb (ret); - } - - /* catch buggy hubs (which appear to be virtual). Apple's own USB prober has problems with these devices. */ - if (libusb_le16_to_cpu (dev->dev_descriptor.idProduct) != idProduct) { - /* not a valid device */ - usbi_warn (ctx, "idProduct from iokit (%04x) does not match idProduct in descriptor (%04x). skipping device", - idProduct, libusb_le16_to_cpu (dev->dev_descriptor.idProduct)); - return LIBUSB_ERROR_NO_DEVICE; - } - - usbi_dbg ("cached device descriptor:"); - usbi_dbg (" bDescriptorType: 0x%02x", dev->dev_descriptor.bDescriptorType); - usbi_dbg (" bcdUSB: 0x%04x", dev->dev_descriptor.bcdUSB); - usbi_dbg (" bDeviceClass: 0x%02x", dev->dev_descriptor.bDeviceClass); - usbi_dbg (" bDeviceSubClass: 0x%02x", dev->dev_descriptor.bDeviceSubClass); - usbi_dbg (" bDeviceProtocol: 0x%02x", dev->dev_descriptor.bDeviceProtocol); - usbi_dbg (" bMaxPacketSize0: 0x%02x", dev->dev_descriptor.bMaxPacketSize0); - usbi_dbg (" idVendor: 0x%04x", dev->dev_descriptor.idVendor); - usbi_dbg (" idProduct: 0x%04x", dev->dev_descriptor.idProduct); - usbi_dbg (" bcdDevice: 0x%04x", dev->dev_descriptor.bcdDevice); - usbi_dbg (" iManufacturer: 0x%02x", dev->dev_descriptor.iManufacturer); - usbi_dbg (" iProduct: 0x%02x", dev->dev_descriptor.iProduct); - usbi_dbg (" iSerialNumber: 0x%02x", dev->dev_descriptor.iSerialNumber); - usbi_dbg (" bNumConfigurations: 0x%02x", dev->dev_descriptor.bNumConfigurations); - - dev->can_enumerate = 1; - - return LIBUSB_SUCCESS; -} - -static int get_device_port (io_service_t service, UInt8 *port) { - kern_return_t result; - io_service_t parent; - int ret = 0; - - if (get_ioregistry_value_number (service, CFSTR("PortNum"), kCFNumberSInt8Type, port)) { - return 1; - } - - result = IORegistryEntryGetParentEntry (service, kIOServicePlane, &parent); - if (kIOReturnSuccess == result) { - ret = get_ioregistry_value_data (parent, CFSTR("port"), 1, port); - IOObjectRelease (parent); - } - - return ret; -} - -static int darwin_get_cached_device(struct libusb_context *ctx, io_service_t service, - struct darwin_cached_device **cached_out) { - struct darwin_cached_device *new_device; - UInt64 sessionID = 0, parent_sessionID = 0; - int ret = LIBUSB_SUCCESS; - usb_device_t **device; - io_service_t parent; - kern_return_t result; - UInt8 port = 0; - - /* get some info from the io registry */ - (void) get_ioregistry_value_number (service, CFSTR("sessionID"), kCFNumberSInt64Type, &sessionID); - if (!get_device_port (service, &port)) { - usbi_dbg("could not get connected port number"); - } - - usbi_dbg("finding cached device for sessionID 0x%" PRIx64, sessionID); - - result = IORegistryEntryGetParentEntry (service, kIOUSBPlane, &parent); - - if (kIOReturnSuccess == result) { - (void) get_ioregistry_value_number (parent, CFSTR("sessionID"), kCFNumberSInt64Type, &parent_sessionID); - IOObjectRelease(parent); - } - - usbi_mutex_lock(&darwin_cached_devices_lock); - do { - *cached_out = NULL; - - list_for_each_entry(new_device, &darwin_cached_devices, list, struct darwin_cached_device) { - usbi_dbg("matching sessionID 0x%" PRIx64 " against cached device with sessionID 0x%" PRIx64, sessionID, new_device->session); - if (new_device->session == sessionID) { - usbi_dbg("using cached device for device"); - *cached_out = new_device; - break; - } - } - - if (*cached_out) - break; - - usbi_dbg("caching new device with sessionID 0x%" PRIx64, sessionID); - - device = darwin_device_from_service (service); - if (!device) { - ret = LIBUSB_ERROR_NO_DEVICE; - break; - } - - new_device = calloc (1, sizeof (*new_device)); - if (!new_device) { - ret = LIBUSB_ERROR_NO_MEM; - break; - } - - /* add this device to the cached device list */ - list_add(&new_device->list, &darwin_cached_devices); - - (*device)->GetDeviceAddress (device, (USBDeviceAddress *)&new_device->address); - - /* keep a reference to this device */ - darwin_ref_cached_device(new_device); - - new_device->device = device; - new_device->session = sessionID; - (*device)->GetLocationID (device, &new_device->location); - new_device->port = port; - new_device->parent_session = parent_sessionID; - - /* cache the device descriptor */ - ret = darwin_cache_device_descriptor(ctx, new_device); - if (ret) - break; - - if (new_device->can_enumerate) { - snprintf(new_device->sys_path, 20, "%03i-%04x-%04x-%02x-%02x", new_device->address, - new_device->dev_descriptor.idVendor, new_device->dev_descriptor.idProduct, - new_device->dev_descriptor.bDeviceClass, new_device->dev_descriptor.bDeviceSubClass); - } - } while (0); - - usbi_mutex_unlock(&darwin_cached_devices_lock); - - /* keep track of devices regardless of if we successfully enumerate them to - prevent them from being enumerated multiple times */ - - *cached_out = new_device; - - return ret; -} - -static int process_new_device (struct libusb_context *ctx, io_service_t service) { - struct darwin_device_priv *priv; - struct libusb_device *dev = NULL; - struct darwin_cached_device *cached_device; - UInt8 devSpeed; - int ret = 0; - - do { - ret = darwin_get_cached_device (ctx, service, &cached_device); - - if (ret < 0 || !cached_device->can_enumerate) { - return ret; - } - - /* check current active configuration (and cache the first configuration value-- - which may be used by claim_interface) */ - ret = darwin_check_configuration (ctx, cached_device); - if (ret) - break; - - usbi_dbg ("allocating new device in context %p for with session 0x%" PRIx64, - ctx, cached_device->session); - - dev = usbi_alloc_device(ctx, (unsigned long) cached_device->session); - if (!dev) { - return LIBUSB_ERROR_NO_MEM; - } - - priv = (struct darwin_device_priv *)dev->os_priv; - - priv->dev = cached_device; - darwin_ref_cached_device (priv->dev); - - if (cached_device->parent_session > 0) { - dev->parent_dev = usbi_get_device_by_session_id (ctx, (unsigned long) cached_device->parent_session); - } else { - dev->parent_dev = NULL; - } - dev->port_number = cached_device->port; - dev->bus_number = cached_device->location >> 24; - dev->device_address = cached_device->address; - - (*(priv->dev->device))->GetDeviceSpeed (priv->dev->device, &devSpeed); - - switch (devSpeed) { - case kUSBDeviceSpeedLow: dev->speed = LIBUSB_SPEED_LOW; break; - case kUSBDeviceSpeedFull: dev->speed = LIBUSB_SPEED_FULL; break; - case kUSBDeviceSpeedHigh: dev->speed = LIBUSB_SPEED_HIGH; break; -#if DeviceVersion >= 500 - case kUSBDeviceSpeedSuper: dev->speed = LIBUSB_SPEED_SUPER; break; -#endif - default: - usbi_warn (ctx, "Got unknown device speed %d", devSpeed); - } - - ret = usbi_sanitize_device (dev); - if (ret < 0) - break; - - usbi_dbg ("found device with address %d port = %d parent = %p at %p", dev->device_address, - dev->port_number, (void *) dev->parent_dev, priv->dev->sys_path); - } while (0); - - if (0 == ret) { - usbi_connect_device (dev); - } else { - libusb_unref_device (dev); - } - - return ret; -} - -static int darwin_scan_devices(struct libusb_context *ctx) { - io_iterator_t deviceIterator; - io_service_t service; - kern_return_t kresult; - - kresult = usb_setup_device_iterator (&deviceIterator, 0); - if (kresult != kIOReturnSuccess) - return darwin_to_libusb (kresult); - - while ((service = IOIteratorNext (deviceIterator))) { - (void) process_new_device (ctx, service); - - IOObjectRelease(service); - } - - IOObjectRelease(deviceIterator); - - return 0; -} - -static int darwin_open (struct libusb_device_handle *dev_handle) { - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - IOReturn kresult; - - if (0 == dpriv->open_count) { - /* try to open the device */ - kresult = (*(dpriv->device))->USBDeviceOpenSeize (dpriv->device); - if (kresult != kIOReturnSuccess) { - usbi_warn (HANDLE_CTX (dev_handle), "USBDeviceOpen: %s", darwin_error_str(kresult)); - - if (kIOReturnExclusiveAccess != kresult) { - return darwin_to_libusb (kresult); - } - - /* it is possible to perform some actions on a device that is not open so do not return an error */ - priv->is_open = 0; - } else { - priv->is_open = 1; - } - - /* create async event source */ - kresult = (*(dpriv->device))->CreateDeviceAsyncEventSource (dpriv->device, &priv->cfSource); - if (kresult != kIOReturnSuccess) { - usbi_err (HANDLE_CTX (dev_handle), "CreateDeviceAsyncEventSource: %s", darwin_error_str(kresult)); - - if (priv->is_open) { - (*(dpriv->device))->USBDeviceClose (dpriv->device); - } - - priv->is_open = 0; - - return darwin_to_libusb (kresult); - } - - CFRetain (libusb_darwin_acfl); - - /* add the cfSource to the aync run loop */ - CFRunLoopAddSource(libusb_darwin_acfl, priv->cfSource, kCFRunLoopCommonModes); - } - - /* device opened successfully */ - dpriv->open_count++; - - usbi_dbg ("device open for access"); - - return 0; -} - -static void darwin_close (struct libusb_device_handle *dev_handle) { - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - IOReturn kresult; - int i; - - if (dpriv->open_count == 0) { - /* something is probably very wrong if this is the case */ - usbi_err (HANDLE_CTX (dev_handle), "Close called on a device that was not open!"); - return; - } - - dpriv->open_count--; - - /* make sure all interfaces are released */ - for (i = 0 ; i < USB_MAXINTERFACES ; i++) - if (dev_handle->claimed_interfaces & (1 << i)) - libusb_release_interface (dev_handle, i); - - if (0 == dpriv->open_count) { - /* delete the device's async event source */ - if (priv->cfSource) { - CFRunLoopRemoveSource (libusb_darwin_acfl, priv->cfSource, kCFRunLoopDefaultMode); - CFRelease (priv->cfSource); - priv->cfSource = NULL; - CFRelease (libusb_darwin_acfl); - } - - if (priv->is_open) { - /* close the device */ - kresult = (*(dpriv->device))->USBDeviceClose(dpriv->device); - if (kresult) { - /* Log the fact that we had a problem closing the file, however failing a - * close isn't really an error, so return success anyway */ - usbi_warn (HANDLE_CTX (dev_handle), "USBDeviceClose: %s", darwin_error_str(kresult)); - } - } - } -} - -static int darwin_get_configuration(struct libusb_device_handle *dev_handle, int *config) { - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - - *config = (int) dpriv->active_config; - - return 0; -} - -static int darwin_set_configuration(struct libusb_device_handle *dev_handle, int config) { - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - IOReturn kresult; - int i; - - /* Setting configuration will invalidate the interface, so we need - to reclaim it. First, dispose of existing interfaces, if any. */ - for (i = 0 ; i < USB_MAXINTERFACES ; i++) - if (dev_handle->claimed_interfaces & (1 << i)) - darwin_release_interface (dev_handle, i); - - kresult = (*(dpriv->device))->SetConfiguration (dpriv->device, config); - if (kresult != kIOReturnSuccess) - return darwin_to_libusb (kresult); - - /* Reclaim any interfaces. */ - for (i = 0 ; i < USB_MAXINTERFACES ; i++) - if (dev_handle->claimed_interfaces & (1 << i)) - darwin_claim_interface (dev_handle, i); - - dpriv->active_config = config; - - return 0; -} - -static int darwin_get_interface (usb_device_t **darwin_device, uint8_t ifc, io_service_t *usbInterfacep) { - IOUSBFindInterfaceRequest request; - kern_return_t kresult; - io_iterator_t interface_iterator; - UInt8 bInterfaceNumber; - int ret; - - *usbInterfacep = IO_OBJECT_NULL; - - /* Setup the Interface Request */ - request.bInterfaceClass = kIOUSBFindInterfaceDontCare; - request.bInterfaceSubClass = kIOUSBFindInterfaceDontCare; - request.bInterfaceProtocol = kIOUSBFindInterfaceDontCare; - request.bAlternateSetting = kIOUSBFindInterfaceDontCare; - - kresult = (*(darwin_device))->CreateInterfaceIterator(darwin_device, &request, &interface_iterator); - if (kresult) - return kresult; - - while ((*usbInterfacep = IOIteratorNext(interface_iterator))) { - /* find the interface number */ - ret = get_ioregistry_value_number (*usbInterfacep, CFSTR("bInterfaceNumber"), kCFNumberSInt8Type, - &bInterfaceNumber); - - if (ret && bInterfaceNumber == ifc) { - break; - } - - (void) IOObjectRelease (*usbInterfacep); - } - - /* done with the interface iterator */ - IOObjectRelease(interface_iterator); - - return 0; -} - -static int get_endpoints (struct libusb_device_handle *dev_handle, int iface) { - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - - /* current interface */ - struct darwin_interface *cInterface = &priv->interfaces[iface]; - - kern_return_t kresult; - - u_int8_t numep, direction, number; - u_int8_t dont_care1, dont_care3; - u_int16_t dont_care2; - int rc; - - usbi_dbg ("building table of endpoints."); - - /* retrieve the total number of endpoints on this interface */ - kresult = (*(cInterface->interface))->GetNumEndpoints(cInterface->interface, &numep); - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "can't get number of endpoints for interface: %s", darwin_error_str(kresult)); - return darwin_to_libusb (kresult); - } - - /* iterate through pipe references */ - for (int i = 1 ; i <= numep ; i++) { - kresult = (*(cInterface->interface))->GetPipeProperties(cInterface->interface, i, &direction, &number, &dont_care1, - &dont_care2, &dont_care3); - - if (kresult != kIOReturnSuccess) { - /* probably a buggy device. try to get the endpoint address from the descriptors */ - struct libusb_config_descriptor *config; - const struct libusb_endpoint_descriptor *endpoint_desc; - UInt8 alt_setting; - - kresult = (*(cInterface->interface))->GetAlternateSetting (cInterface->interface, &alt_setting); - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "can't get alternate setting for interface"); - return darwin_to_libusb (kresult); - } - - rc = libusb_get_active_config_descriptor (dev_handle->dev, &config); - if (LIBUSB_SUCCESS != rc) { - return rc; - } - - endpoint_desc = config->interface[iface].altsetting[alt_setting].endpoint + i - 1; - - cInterface->endpoint_addrs[i - 1] = endpoint_desc->bEndpointAddress; - } else { - cInterface->endpoint_addrs[i - 1] = (((kUSBIn == direction) << kUSBRqDirnShift) | (number & LIBUSB_ENDPOINT_ADDRESS_MASK)); - } - - usbi_dbg ("interface: %i pipe %i: dir: %i number: %i", iface, i, cInterface->endpoint_addrs[i - 1] >> kUSBRqDirnShift, - cInterface->endpoint_addrs[i - 1] & LIBUSB_ENDPOINT_ADDRESS_MASK); - } - - cInterface->num_endpoints = numep; - - return 0; -} - -static int darwin_claim_interface(struct libusb_device_handle *dev_handle, int iface) { - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - io_service_t usbInterface = IO_OBJECT_NULL; - IOReturn kresult; - IOCFPlugInInterface **plugInInterface = NULL; - SInt32 score; - - /* current interface */ - struct darwin_interface *cInterface = &priv->interfaces[iface]; - - kresult = darwin_get_interface (dpriv->device, iface, &usbInterface); - if (kresult != kIOReturnSuccess) - return darwin_to_libusb (kresult); - - /* make sure we have an interface */ - if (!usbInterface && dpriv->first_config != 0) { - usbi_info (HANDLE_CTX (dev_handle), "no interface found; setting configuration: %d", dpriv->first_config); - - /* set the configuration */ - kresult = darwin_set_configuration (dev_handle, dpriv->first_config); - if (kresult != LIBUSB_SUCCESS) { - usbi_err (HANDLE_CTX (dev_handle), "could not set configuration"); - return kresult; - } - - kresult = darwin_get_interface (dpriv->device, iface, &usbInterface); - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "darwin_get_interface: %s", darwin_error_str(kresult)); - return darwin_to_libusb (kresult); - } - } - - if (!usbInterface) { - usbi_err (HANDLE_CTX (dev_handle), "interface not found"); - return LIBUSB_ERROR_NOT_FOUND; - } - - /* get an interface to the device's interface */ - kresult = IOCreatePlugInInterfaceForService (usbInterface, kIOUSBInterfaceUserClientTypeID, - kIOCFPlugInInterfaceID, &plugInInterface, &score); - - /* ignore release error */ - (void)IOObjectRelease (usbInterface); - - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "IOCreatePlugInInterfaceForService: %s", darwin_error_str(kresult)); - return darwin_to_libusb (kresult); - } - - if (!plugInInterface) { - usbi_err (HANDLE_CTX (dev_handle), "plugin interface not found"); - return LIBUSB_ERROR_NOT_FOUND; - } - - /* Do the actual claim */ - kresult = (*plugInInterface)->QueryInterface(plugInInterface, - CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID), - (LPVOID)&cInterface->interface); - /* We no longer need the intermediate plug-in */ - /* Use release instead of IODestroyPlugInInterface to avoid stopping IOServices associated with this device */ - (*plugInInterface)->Release (plugInInterface); - if (kresult || !cInterface->interface) { - usbi_err (HANDLE_CTX (dev_handle), "QueryInterface: %s", darwin_error_str(kresult)); - return darwin_to_libusb (kresult); - } - - /* claim the interface */ - kresult = (*(cInterface->interface))->USBInterfaceOpen(cInterface->interface); - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "USBInterfaceOpen: %s", darwin_error_str(kresult)); - return darwin_to_libusb (kresult); - } - - /* update list of endpoints */ - kresult = get_endpoints (dev_handle, iface); - if (kresult) { - /* this should not happen */ - darwin_release_interface (dev_handle, iface); - usbi_err (HANDLE_CTX (dev_handle), "could not build endpoint table"); - return kresult; - } - - cInterface->cfSource = NULL; - - /* create async event source */ - kresult = (*(cInterface->interface))->CreateInterfaceAsyncEventSource (cInterface->interface, &cInterface->cfSource); - if (kresult != kIOReturnSuccess) { - usbi_err (HANDLE_CTX (dev_handle), "could not create async event source"); - - /* can't continue without an async event source */ - (void)darwin_release_interface (dev_handle, iface); - - return darwin_to_libusb (kresult); - } - - /* add the cfSource to the async thread's run loop */ - CFRunLoopAddSource(libusb_darwin_acfl, cInterface->cfSource, kCFRunLoopDefaultMode); - - usbi_dbg ("interface opened"); - - return 0; -} - -static int darwin_release_interface(struct libusb_device_handle *dev_handle, int iface) { - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - IOReturn kresult; - - /* current interface */ - struct darwin_interface *cInterface = &priv->interfaces[iface]; - - /* Check to see if an interface is open */ - if (!cInterface->interface) - return LIBUSB_SUCCESS; - - /* clean up endpoint data */ - cInterface->num_endpoints = 0; - - /* delete the interface's async event source */ - if (cInterface->cfSource) { - CFRunLoopRemoveSource (libusb_darwin_acfl, cInterface->cfSource, kCFRunLoopDefaultMode); - CFRelease (cInterface->cfSource); - } - - kresult = (*(cInterface->interface))->USBInterfaceClose(cInterface->interface); - if (kresult) - usbi_warn (HANDLE_CTX (dev_handle), "USBInterfaceClose: %s", darwin_error_str(kresult)); - - kresult = (*(cInterface->interface))->Release(cInterface->interface); - if (kresult != kIOReturnSuccess) - usbi_warn (HANDLE_CTX (dev_handle), "Release: %s", darwin_error_str(kresult)); - - cInterface->interface = (usb_interface_t **) IO_OBJECT_NULL; - - return darwin_to_libusb (kresult); -} - -static int darwin_set_interface_altsetting(struct libusb_device_handle *dev_handle, int iface, int altsetting) { - struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv; - IOReturn kresult; - - /* current interface */ - struct darwin_interface *cInterface = &priv->interfaces[iface]; - - if (!cInterface->interface) - return LIBUSB_ERROR_NO_DEVICE; - - kresult = (*(cInterface->interface))->SetAlternateInterface (cInterface->interface, altsetting); - if (kresult != kIOReturnSuccess) - darwin_reset_device (dev_handle); - - /* update list of endpoints */ - kresult = get_endpoints (dev_handle, iface); - if (kresult) { - /* this should not happen */ - darwin_release_interface (dev_handle, iface); - usbi_err (HANDLE_CTX (dev_handle), "could not build endpoint table"); - return kresult; - } - - return darwin_to_libusb (kresult); -} - -static int darwin_clear_halt(struct libusb_device_handle *dev_handle, unsigned char endpoint) { - /* current interface */ - struct darwin_interface *cInterface; - IOReturn kresult; - uint8_t pipeRef; - - /* determine the interface/endpoint to use */ - if (ep_to_pipeRef (dev_handle, endpoint, &pipeRef, NULL, &cInterface) != 0) { - usbi_err (HANDLE_CTX (dev_handle), "endpoint not found on any open interface"); - - return LIBUSB_ERROR_NOT_FOUND; - } - - /* newer versions of darwin support clearing additional bits on the device's endpoint */ - kresult = (*(cInterface->interface))->ClearPipeStallBothEnds(cInterface->interface, pipeRef); - if (kresult) - usbi_warn (HANDLE_CTX (dev_handle), "ClearPipeStall: %s", darwin_error_str (kresult)); - - return darwin_to_libusb (kresult); -} - -static int darwin_reset_device(struct libusb_device_handle *dev_handle) { - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - IOUSBDeviceDescriptor descriptor; - IOUSBConfigurationDescriptorPtr cached_configuration; - IOUSBConfigurationDescriptor configuration; - bool reenumerate = false; - IOReturn kresult; - int i; - - kresult = (*(dpriv->device))->ResetDevice (dpriv->device); - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "ResetDevice: %s", darwin_error_str (kresult)); - return darwin_to_libusb (kresult); - } - - do { - usbi_dbg ("darwin/reset_device: checking if device descriptor changed"); - - /* ignore return code. if we can't get a descriptor it might be worthwhile re-enumerating anway */ - (void) darwin_request_descriptor (dpriv->device, kUSBDeviceDesc, 0, &descriptor, sizeof (descriptor)); - - /* check if the device descriptor has changed */ - if (0 != memcmp (&dpriv->dev_descriptor, &descriptor, sizeof (descriptor))) { - reenumerate = true; - break; - } - - /* check if any configuration descriptor has changed */ - for (i = 0 ; i < descriptor.bNumConfigurations ; ++i) { - usbi_dbg ("darwin/reset_device: checking if configuration descriptor %d changed", i); - - (void) darwin_request_descriptor (dpriv->device, kUSBConfDesc, i, &configuration, sizeof (configuration)); - (*(dpriv->device))->GetConfigurationDescriptorPtr (dpriv->device, i, &cached_configuration); - - if (!cached_configuration || 0 != memcmp (cached_configuration, &configuration, sizeof (configuration))) { - reenumerate = true; - break; - } - } - } while (0); - - if (reenumerate) { - usbi_dbg ("darwin/reset_device: device requires reenumeration"); - (void) (*(dpriv->device))->USBDeviceReEnumerate (dpriv->device, 0); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg ("darwin/reset_device: device reset complete"); - - return LIBUSB_SUCCESS; -} - -static int darwin_kernel_driver_active(struct libusb_device_handle *dev_handle, int interface) { - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev); - io_service_t usbInterface; - CFTypeRef driver; - IOReturn kresult; - - kresult = darwin_get_interface (dpriv->device, interface, &usbInterface); - if (kresult) { - usbi_err (HANDLE_CTX (dev_handle), "darwin_get_interface: %s", darwin_error_str(kresult)); - - return darwin_to_libusb (kresult); - } - - driver = IORegistryEntryCreateCFProperty (usbInterface, kIOBundleIdentifierKey, kCFAllocatorDefault, 0); - IOObjectRelease (usbInterface); - - if (driver) { - CFRelease (driver); - - return 1; - } - - /* no driver */ - return 0; -} - -/* attaching/detaching kernel drivers is not currently supported (maybe in the future?) */ -static int darwin_attach_kernel_driver (struct libusb_device_handle *dev_handle, int interface) { - UNUSED(dev_handle); - UNUSED(interface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int darwin_detach_kernel_driver (struct libusb_device_handle *dev_handle, int interface) { - UNUSED(dev_handle); - UNUSED(interface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static void darwin_destroy_device(struct libusb_device *dev) { - struct darwin_device_priv *dpriv = (struct darwin_device_priv *) dev->os_priv; - - if (dpriv->dev) { - /* need to hold the lock in case this is the last reference to the device */ - usbi_mutex_lock(&darwin_cached_devices_lock); - darwin_deref_cached_device (dpriv->dev); - dpriv->dev = NULL; - usbi_mutex_unlock(&darwin_cached_devices_lock); - } -} - -static int submit_bulk_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - IOReturn ret; - uint8_t transferType; - /* None of the values below are used in libusbx for bulk transfers */ - uint8_t direction, number, interval, pipeRef; - uint16_t maxPacketSize; - - struct darwin_interface *cInterface; - - if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, NULL, &cInterface) != 0) { - usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface"); - - return LIBUSB_ERROR_NOT_FOUND; - } - - ret = (*(cInterface->interface))->GetPipeProperties (cInterface->interface, pipeRef, &direction, &number, - &transferType, &maxPacketSize, &interval); - - if (ret) { - usbi_err (TRANSFER_CTX (transfer), "bulk transfer failed (dir = %s): %s (code = 0x%08x)", IS_XFERIN(transfer) ? "In" : "Out", - darwin_error_str(ret), ret); - return darwin_to_libusb (ret); - } - - if (0 != (transfer->length % maxPacketSize)) { - /* do not need a zero packet */ - transfer->flags &= ~LIBUSB_TRANSFER_ADD_ZERO_PACKET; - } - - /* submit the request */ - /* timeouts are unavailable on interrupt endpoints */ - if (transferType == kUSBInterrupt) { - if (IS_XFERIN(transfer)) - ret = (*(cInterface->interface))->ReadPipeAsync(cInterface->interface, pipeRef, transfer->buffer, - transfer->length, darwin_async_io_callback, itransfer); - else - ret = (*(cInterface->interface))->WritePipeAsync(cInterface->interface, pipeRef, transfer->buffer, - transfer->length, darwin_async_io_callback, itransfer); - } else { - itransfer->timeout_flags |= USBI_TRANSFER_OS_HANDLES_TIMEOUT; - - if (IS_XFERIN(transfer)) - ret = (*(cInterface->interface))->ReadPipeAsyncTO(cInterface->interface, pipeRef, transfer->buffer, - transfer->length, transfer->timeout, transfer->timeout, - darwin_async_io_callback, (void *)itransfer); - else - ret = (*(cInterface->interface))->WritePipeAsyncTO(cInterface->interface, pipeRef, transfer->buffer, - transfer->length, transfer->timeout, transfer->timeout, - darwin_async_io_callback, (void *)itransfer); - } - - if (ret) - usbi_err (TRANSFER_CTX (transfer), "bulk transfer failed (dir = %s): %s (code = 0x%08x)", IS_XFERIN(transfer) ? "In" : "Out", - darwin_error_str(ret), ret); - - return darwin_to_libusb (ret); -} - -#if InterfaceVersion >= 550 -static int submit_stream_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_interface *cInterface; - uint8_t pipeRef; - IOReturn ret; - - if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, NULL, &cInterface) != 0) { - usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface"); - - return LIBUSB_ERROR_NOT_FOUND; - } - - itransfer->timeout_flags |= USBI_TRANSFER_OS_HANDLES_TIMEOUT; - - if (IS_XFERIN(transfer)) - ret = (*(cInterface->interface))->ReadStreamsPipeAsyncTO(cInterface->interface, pipeRef, itransfer->stream_id, - transfer->buffer, transfer->length, transfer->timeout, - transfer->timeout, darwin_async_io_callback, (void *)itransfer); - else - ret = (*(cInterface->interface))->WriteStreamsPipeAsyncTO(cInterface->interface, pipeRef, itransfer->stream_id, - transfer->buffer, transfer->length, transfer->timeout, - transfer->timeout, darwin_async_io_callback, (void *)itransfer); - - if (ret) - usbi_err (TRANSFER_CTX (transfer), "bulk stream transfer failed (dir = %s): %s (code = 0x%08x)", IS_XFERIN(transfer) ? "In" : "Out", - darwin_error_str(ret), ret); - - return darwin_to_libusb (ret); -} -#endif - -static int submit_iso_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - - IOReturn kresult; - uint8_t direction, number, interval, pipeRef, transferType; - uint16_t maxPacketSize; - UInt64 frame; - AbsoluteTime atTime; - int i; - - struct darwin_interface *cInterface; - - /* construct an array of IOUSBIsocFrames, reuse the old one if possible */ - if (tpriv->isoc_framelist && tpriv->num_iso_packets != transfer->num_iso_packets) { - free(tpriv->isoc_framelist); - tpriv->isoc_framelist = NULL; - } - - if (!tpriv->isoc_framelist) { - tpriv->num_iso_packets = transfer->num_iso_packets; - tpriv->isoc_framelist = (IOUSBIsocFrame*) calloc (transfer->num_iso_packets, sizeof(IOUSBIsocFrame)); - if (!tpriv->isoc_framelist) - return LIBUSB_ERROR_NO_MEM; - } - - /* copy the frame list from the libusb descriptor (the structures differ only is member order) */ - for (i = 0 ; i < transfer->num_iso_packets ; i++) - tpriv->isoc_framelist[i].frReqCount = transfer->iso_packet_desc[i].length; - - /* determine the interface/endpoint to use */ - if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, NULL, &cInterface) != 0) { - usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface"); - - return LIBUSB_ERROR_NOT_FOUND; - } - - /* determine the properties of this endpoint and the speed of the device */ - (*(cInterface->interface))->GetPipeProperties (cInterface->interface, pipeRef, &direction, &number, - &transferType, &maxPacketSize, &interval); - - /* Last but not least we need the bus frame number */ - kresult = (*(cInterface->interface))->GetBusFrameNumber(cInterface->interface, &frame, &atTime); - if (kresult) { - usbi_err (TRANSFER_CTX (transfer), "failed to get bus frame number: %d", kresult); - free(tpriv->isoc_framelist); - tpriv->isoc_framelist = NULL; - - return darwin_to_libusb (kresult); - } - - (*(cInterface->interface))->GetPipeProperties (cInterface->interface, pipeRef, &direction, &number, - &transferType, &maxPacketSize, &interval); - - /* schedule for a frame a little in the future */ - frame += 4; - - if (cInterface->frames[transfer->endpoint] && frame < cInterface->frames[transfer->endpoint]) - frame = cInterface->frames[transfer->endpoint]; - - /* submit the request */ - if (IS_XFERIN(transfer)) - kresult = (*(cInterface->interface))->ReadIsochPipeAsync(cInterface->interface, pipeRef, transfer->buffer, frame, - transfer->num_iso_packets, tpriv->isoc_framelist, darwin_async_io_callback, - itransfer); - else - kresult = (*(cInterface->interface))->WriteIsochPipeAsync(cInterface->interface, pipeRef, transfer->buffer, frame, - transfer->num_iso_packets, tpriv->isoc_framelist, darwin_async_io_callback, - itransfer); - - if (LIBUSB_SPEED_FULL == transfer->dev_handle->dev->speed) - /* Full speed */ - cInterface->frames[transfer->endpoint] = frame + transfer->num_iso_packets * (1 << (interval - 1)); - else - /* High/super speed */ - cInterface->frames[transfer->endpoint] = frame + transfer->num_iso_packets * (1 << (interval - 1)) / 8; - - if (kresult != kIOReturnSuccess) { - usbi_err (TRANSFER_CTX (transfer), "isochronous transfer failed (dir: %s): %s", IS_XFERIN(transfer) ? "In" : "Out", - darwin_error_str(kresult)); - free (tpriv->isoc_framelist); - tpriv->isoc_framelist = NULL; - } - - return darwin_to_libusb (kresult); -} - -static int submit_control_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_control_setup *setup = (struct libusb_control_setup *) transfer->buffer; - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(transfer->dev_handle->dev); - struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - - IOReturn kresult; - - memset(&tpriv->req, 0, sizeof(tpriv->req)); - - /* IOUSBDeviceInterface expects the request in cpu endianness */ - tpriv->req.bmRequestType = setup->bmRequestType; - tpriv->req.bRequest = setup->bRequest; - /* these values should be in bus order from libusb_fill_control_setup */ - tpriv->req.wValue = OSSwapLittleToHostInt16 (setup->wValue); - tpriv->req.wIndex = OSSwapLittleToHostInt16 (setup->wIndex); - tpriv->req.wLength = OSSwapLittleToHostInt16 (setup->wLength); - /* data is stored after the libusb control block */ - tpriv->req.pData = transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE; - tpriv->req.completionTimeout = transfer->timeout; - tpriv->req.noDataTimeout = transfer->timeout; - - itransfer->timeout_flags |= USBI_TRANSFER_OS_HANDLES_TIMEOUT; - - /* all transfers in libusb-1.0 are async */ - - if (transfer->endpoint) { - struct darwin_interface *cInterface; - uint8_t pipeRef; - - if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, NULL, &cInterface) != 0) { - usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface"); - - return LIBUSB_ERROR_NOT_FOUND; - } - - kresult = (*(cInterface->interface))->ControlRequestAsyncTO (cInterface->interface, pipeRef, &(tpriv->req), darwin_async_io_callback, itransfer); - } else - /* control request on endpoint 0 */ - kresult = (*(dpriv->device))->DeviceRequestAsyncTO(dpriv->device, &(tpriv->req), darwin_async_io_callback, itransfer); - - if (kresult != kIOReturnSuccess) - usbi_err (TRANSFER_CTX (transfer), "control request failed: %s", darwin_error_str(kresult)); - - return darwin_to_libusb (kresult); -} - -static int darwin_submit_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - return submit_control_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - return submit_bulk_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return submit_iso_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: -#if InterfaceVersion >= 550 - return submit_stream_transfer(itransfer); -#else - usbi_err (TRANSFER_CTX(transfer), "IOUSBFamily version does not support bulk stream transfers"); - return LIBUSB_ERROR_NOT_SUPPORTED; -#endif - default: - usbi_err (TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static int cancel_control_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(transfer->dev_handle->dev); - IOReturn kresult; - - usbi_warn (ITRANSFER_CTX (itransfer), "aborting all transactions control pipe"); - - if (!dpriv->device) - return LIBUSB_ERROR_NO_DEVICE; - - kresult = (*(dpriv->device))->USBDeviceAbortPipeZero (dpriv->device); - - return darwin_to_libusb (kresult); -} - -static int darwin_abort_transfers (struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(transfer->dev_handle->dev); - struct darwin_interface *cInterface; - uint8_t pipeRef, iface; - IOReturn kresult; - - if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface, &cInterface) != 0) { - usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface"); - - return LIBUSB_ERROR_NOT_FOUND; - } - - if (!dpriv->device) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_warn (ITRANSFER_CTX (itransfer), "aborting all transactions on interface %d pipe %d", iface, pipeRef); - - /* abort transactions */ -#if InterfaceVersion >= 550 - if (LIBUSB_TRANSFER_TYPE_BULK_STREAM == transfer->type) - (*(cInterface->interface))->AbortStreamsPipe (cInterface->interface, pipeRef, itransfer->stream_id); - else -#endif - (*(cInterface->interface))->AbortPipe (cInterface->interface, pipeRef); - - usbi_dbg ("calling clear pipe stall to clear the data toggle bit"); - - /* newer versions of darwin support clearing additional bits on the device's endpoint */ - kresult = (*(cInterface->interface))->ClearPipeStallBothEnds(cInterface->interface, pipeRef); - - return darwin_to_libusb (kresult); -} - -static int darwin_cancel_transfer(struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - return cancel_control_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return darwin_abort_transfers (itransfer); - default: - usbi_err (TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static void darwin_clear_transfer_priv (struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - - if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS && tpriv->isoc_framelist) { - free (tpriv->isoc_framelist); - tpriv->isoc_framelist = NULL; - } -} - -static void darwin_async_io_callback (void *refcon, IOReturn result, void *arg0) { - struct usbi_transfer *itransfer = (struct usbi_transfer *)refcon; - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - - usbi_dbg ("an async io operation has completed"); - - /* if requested write a zero packet */ - if (kIOReturnSuccess == result && IS_XFEROUT(transfer) && transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET) { - struct darwin_interface *cInterface; - uint8_t pipeRef; - - (void) ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, NULL, &cInterface); - - (*(cInterface->interface))->WritePipe (cInterface->interface, pipeRef, transfer->buffer, 0); - } - - tpriv->result = result; - tpriv->size = (UInt32) (uintptr_t) arg0; - - /* signal the core that this transfer is complete */ - usbi_signal_transfer_completion(itransfer); -} - -static int darwin_transfer_status (struct usbi_transfer *itransfer, kern_return_t result) { - if (itransfer->timeout_flags & USBI_TRANSFER_TIMED_OUT) - result = kIOUSBTransactionTimeout; - - switch (result) { - case kIOReturnUnderrun: - case kIOReturnSuccess: - return LIBUSB_TRANSFER_COMPLETED; - case kIOReturnAborted: - return LIBUSB_TRANSFER_CANCELLED; - case kIOUSBPipeStalled: - usbi_dbg ("transfer error: pipe is stalled"); - return LIBUSB_TRANSFER_STALL; - case kIOReturnOverrun: - usbi_warn (ITRANSFER_CTX (itransfer), "transfer error: data overrun"); - return LIBUSB_TRANSFER_OVERFLOW; - case kIOUSBTransactionTimeout: - usbi_warn (ITRANSFER_CTX (itransfer), "transfer error: timed out"); - itransfer->timeout_flags |= USBI_TRANSFER_TIMED_OUT; - return LIBUSB_TRANSFER_TIMED_OUT; - default: - usbi_warn (ITRANSFER_CTX (itransfer), "transfer error: %s (value = 0x%08x)", darwin_error_str (result), result); - return LIBUSB_TRANSFER_ERROR; - } -} - -static int darwin_handle_transfer_completion (struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - int isIsoc = LIBUSB_TRANSFER_TYPE_ISOCHRONOUS == transfer->type; - int isBulk = LIBUSB_TRANSFER_TYPE_BULK == transfer->type; - int isControl = LIBUSB_TRANSFER_TYPE_CONTROL == transfer->type; - int isInterrupt = LIBUSB_TRANSFER_TYPE_INTERRUPT == transfer->type; - int i; - - if (!isIsoc && !isBulk && !isControl && !isInterrupt) { - usbi_err (TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } - - usbi_dbg ("handling %s completion with kernel status %d", - isControl ? "control" : isBulk ? "bulk" : isIsoc ? "isoc" : "interrupt", tpriv->result); - - if (kIOReturnSuccess == tpriv->result || kIOReturnUnderrun == tpriv->result) { - if (isIsoc && tpriv->isoc_framelist) { - /* copy isochronous results back */ - - for (i = 0; i < transfer->num_iso_packets ; i++) { - struct libusb_iso_packet_descriptor *lib_desc = &transfer->iso_packet_desc[i]; - lib_desc->status = darwin_to_libusb (tpriv->isoc_framelist[i].frStatus); - lib_desc->actual_length = tpriv->isoc_framelist[i].frActCount; - } - } else if (!isIsoc) - itransfer->transferred += tpriv->size; - } - - /* it is ok to handle cancelled transfers without calling usbi_handle_transfer_cancellation (we catch timeout transfers) */ - return usbi_handle_transfer_completion (itransfer, darwin_transfer_status (itransfer, tpriv->result)); -} - -static int darwin_clock_gettime(int clk_id, struct timespec *tp) { - mach_timespec_t sys_time; - clock_serv_t clock_ref; - - switch (clk_id) { - case USBI_CLOCK_REALTIME: - /* CLOCK_REALTIME represents time since the epoch */ - clock_ref = clock_realtime; - break; - case USBI_CLOCK_MONOTONIC: - /* use system boot time as reference for the monotonic clock */ - clock_ref = clock_monotonic; - break; - default: - return LIBUSB_ERROR_INVALID_PARAM; - } - - clock_get_time (clock_ref, &sys_time); - - tp->tv_sec = sys_time.tv_sec; - tp->tv_nsec = sys_time.tv_nsec; - - return 0; -} - -#if InterfaceVersion >= 550 -static int darwin_alloc_streams (struct libusb_device_handle *dev_handle, uint32_t num_streams, unsigned char *endpoints, - int num_endpoints) { - struct darwin_interface *cInterface; - UInt32 supportsStreams; - uint8_t pipeRef; - int rc, i; - - /* find the mimimum number of supported streams on the endpoint list */ - for (i = 0 ; i < num_endpoints ; ++i) { - if (0 != (rc = ep_to_pipeRef (dev_handle, endpoints[i], &pipeRef, NULL, &cInterface))) { - return rc; - } - - (*(cInterface->interface))->SupportsStreams (cInterface->interface, pipeRef, &supportsStreams); - if (num_streams > supportsStreams) - num_streams = supportsStreams; - } - - /* it is an error if any endpoint in endpoints does not support streams */ - if (0 == num_streams) - return LIBUSB_ERROR_INVALID_PARAM; - - /* create the streams */ - for (i = 0 ; i < num_endpoints ; ++i) { - (void) ep_to_pipeRef (dev_handle, endpoints[i], &pipeRef, NULL, &cInterface); - - rc = (*(cInterface->interface))->CreateStreams (cInterface->interface, pipeRef, num_streams); - if (kIOReturnSuccess != rc) - return darwin_to_libusb(rc); - } - - return num_streams; -} - -static int darwin_free_streams (struct libusb_device_handle *dev_handle, unsigned char *endpoints, int num_endpoints) { - struct darwin_interface *cInterface; - UInt32 supportsStreams; - uint8_t pipeRef; - int rc; - - for (int i = 0 ; i < num_endpoints ; ++i) { - if (0 != (rc = ep_to_pipeRef (dev_handle, endpoints[i], &pipeRef, NULL, &cInterface))) - return rc; - - (*(cInterface->interface))->SupportsStreams (cInterface->interface, pipeRef, &supportsStreams); - if (0 == supportsStreams) - return LIBUSB_ERROR_INVALID_PARAM; - - rc = (*(cInterface->interface))->CreateStreams (cInterface->interface, pipeRef, 0); - if (kIOReturnSuccess != rc) - return darwin_to_libusb(rc); - } - - return LIBUSB_SUCCESS; -} -#endif - -const struct usbi_os_backend darwin_backend = { - .name = "Darwin", - .caps = 0, - .init = darwin_init, - .exit = darwin_exit, - .get_device_list = NULL, /* not needed */ - .get_device_descriptor = darwin_get_device_descriptor, - .get_active_config_descriptor = darwin_get_active_config_descriptor, - .get_config_descriptor = darwin_get_config_descriptor, - .hotplug_poll = darwin_hotplug_poll, - - .open = darwin_open, - .close = darwin_close, - .get_configuration = darwin_get_configuration, - .set_configuration = darwin_set_configuration, - .claim_interface = darwin_claim_interface, - .release_interface = darwin_release_interface, - - .set_interface_altsetting = darwin_set_interface_altsetting, - .clear_halt = darwin_clear_halt, - .reset_device = darwin_reset_device, - -#if InterfaceVersion >= 550 - .alloc_streams = darwin_alloc_streams, - .free_streams = darwin_free_streams, -#endif - - .kernel_driver_active = darwin_kernel_driver_active, - .detach_kernel_driver = darwin_detach_kernel_driver, - .attach_kernel_driver = darwin_attach_kernel_driver, - - .destroy_device = darwin_destroy_device, - - .submit_transfer = darwin_submit_transfer, - .cancel_transfer = darwin_cancel_transfer, - .clear_transfer_priv = darwin_clear_transfer_priv, - - .handle_transfer_completion = darwin_handle_transfer_completion, - - .clock_gettime = darwin_clock_gettime, - - .device_priv_size = sizeof(struct darwin_device_priv), - .device_handle_priv_size = sizeof(struct darwin_device_handle_priv), - .transfer_priv_size = sizeof(struct darwin_transfer_priv), -}; diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.h deleted file mode 100644 index 11804342..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/darwin_usb.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * darwin backend for libusb 1.0 - * Copyright © 2008-2015 Nathan Hjelm - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#if !defined(LIBUSB_DARWIN_H) -#define LIBUSB_DARWIN_H - -#include "libusbi.h" - -#include -#include -#include -#include - -/* IOUSBInterfaceInferface */ -#if defined (kIOUSBInterfaceInterfaceID700) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 - -#define usb_interface_t IOUSBInterfaceInterface700 -#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID700 -#define InterfaceVersion 700 - -#elif defined (kIOUSBInterfaceInterfaceID550) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 - -#define usb_interface_t IOUSBInterfaceInterface550 -#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID550 -#define InterfaceVersion 550 - -#elif defined (kIOUSBInterfaceInterfaceID500) - -#define usb_interface_t IOUSBInterfaceInterface500 -#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID500 -#define InterfaceVersion 500 - -#elif defined (kIOUSBInterfaceInterfaceID300) - -#define usb_interface_t IOUSBInterfaceInterface300 -#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID300 -#define InterfaceVersion 300 - -#elif defined (kIOUSBInterfaceInterfaceID245) - -#define usb_interface_t IOUSBInterfaceInterface245 -#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID245 -#define InterfaceVersion 245 - -#elif defined (kIOUSBInterfaceInterfaceID220) - -#define usb_interface_t IOUSBInterfaceInterface220 -#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID220 -#define InterfaceVersion 220 - -#else - -#error "IOUSBFamily is too old. Please upgrade your OS" - -#endif - -/* IOUSBDeviceInterface */ -#if defined (kIOUSBDeviceInterfaceID500) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 - -#define usb_device_t IOUSBDeviceInterface500 -#define DeviceInterfaceID kIOUSBDeviceInterfaceID500 -#define DeviceVersion 500 - -#elif defined (kIOUSBDeviceInterfaceID320) - -#define usb_device_t IOUSBDeviceInterface320 -#define DeviceInterfaceID kIOUSBDeviceInterfaceID320 -#define DeviceVersion 320 - -#elif defined (kIOUSBDeviceInterfaceID300) - -#define usb_device_t IOUSBDeviceInterface300 -#define DeviceInterfaceID kIOUSBDeviceInterfaceID300 -#define DeviceVersion 300 - -#elif defined (kIOUSBDeviceInterfaceID245) - -#define usb_device_t IOUSBDeviceInterface245 -#define DeviceInterfaceID kIOUSBDeviceInterfaceID245 -#define DeviceVersion 245 - -#elif defined (kIOUSBDeviceInterfaceID220) -#define usb_device_t IOUSBDeviceInterface197 -#define DeviceInterfaceID kIOUSBDeviceInterfaceID197 -#define DeviceVersion 197 - -#else - -#error "IOUSBFamily is too old. Please upgrade your OS" - -#endif - -#if !defined(IO_OBJECT_NULL) -#define IO_OBJECT_NULL ((io_object_t) 0) -#endif - -typedef IOCFPlugInInterface *io_cf_plugin_ref_t; -typedef IONotificationPortRef io_notification_port_t; - -/* private structures */ -struct darwin_cached_device { - struct list_head list; - IOUSBDeviceDescriptor dev_descriptor; - UInt32 location; - UInt64 parent_session; - UInt64 session; - UInt16 address; - char sys_path[21]; - usb_device_t **device; - int open_count; - UInt8 first_config, active_config, port; - int can_enumerate; - int refcount; -}; - -struct darwin_device_priv { - struct darwin_cached_device *dev; -}; - -struct darwin_device_handle_priv { - int is_open; - CFRunLoopSourceRef cfSource; - - struct darwin_interface { - usb_interface_t **interface; - uint8_t num_endpoints; - CFRunLoopSourceRef cfSource; - uint64_t frames[256]; - uint8_t endpoint_addrs[USB_MAXENDPOINTS]; - } interfaces[USB_MAXINTERFACES]; -}; - -struct darwin_transfer_priv { - /* Isoc */ - IOUSBIsocFrame *isoc_framelist; - int num_iso_packets; - - /* Control */ - IOUSBDevRequestTO req; - - /* Bulk */ - - /* Completion status */ - IOReturn result; - UInt32 size; -}; - -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_pollfs.cpp b/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_pollfs.cpp deleted file mode 100644 index e0c77132..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_pollfs.cpp +++ /dev/null @@ -1,367 +0,0 @@ -/* - * Copyright 2007-2008, Haiku Inc. All rights reserved. - * Distributed under the terms of the MIT License. - * - * Authors: - * Michael Lotz - */ - -#include "haiku_usb.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class WatchedEntry { -public: - WatchedEntry(BMessenger *, entry_ref *); - ~WatchedEntry(); - bool EntryCreated(entry_ref *ref); - bool EntryRemoved(ino_t node); - bool InitCheck(); - -private: - BMessenger* fMessenger; - node_ref fNode; - bool fIsDirectory; - USBDevice* fDevice; - WatchedEntry* fEntries; - WatchedEntry* fLink; - bool fInitCheck; -}; - - -class RosterLooper : public BLooper { -public: - RosterLooper(USBRoster *); - void Stop(); - virtual void MessageReceived(BMessage *); - bool InitCheck(); - -private: - USBRoster* fRoster; - WatchedEntry* fRoot; - BMessenger* fMessenger; - bool fInitCheck; -}; - - -WatchedEntry::WatchedEntry(BMessenger *messenger, entry_ref *ref) - : fMessenger(messenger), - fIsDirectory(false), - fDevice(NULL), - fEntries(NULL), - fLink(NULL), - fInitCheck(false) -{ - BEntry entry(ref); - entry.GetNodeRef(&fNode); - - BDirectory directory; - if (entry.IsDirectory() && directory.SetTo(ref) >= B_OK) { - fIsDirectory = true; - - while (directory.GetNextEntry(&entry) >= B_OK) { - if (entry.GetRef(ref) < B_OK) - continue; - - WatchedEntry *child = new(std::nothrow) WatchedEntry(fMessenger, ref); - if (child == NULL) - continue; - if (child->InitCheck() == false) { - delete child; - continue; - } - - child->fLink = fEntries; - fEntries = child; - } - - watch_node(&fNode, B_WATCH_DIRECTORY, *fMessenger); - } - else { - if (strncmp(ref->name, "raw", 3) == 0) - return; - - BPath path, parent_path; - entry.GetPath(&path); - fDevice = new(std::nothrow) USBDevice(path.Path()); - if (fDevice != NULL && fDevice->InitCheck() == true) { - // Add this new device to each active context's device list - struct libusb_context *ctx; - unsigned long session_id = (unsigned long)&fDevice; - - usbi_mutex_lock(&active_contexts_lock); - list_for_each_entry(ctx, &active_contexts_list, list, struct libusb_context) { - struct libusb_device *dev = usbi_get_device_by_session_id(ctx, session_id); - if (dev) { - usbi_dbg("using previously allocated device with location %lu", session_id); - libusb_unref_device(dev); - continue; - } - usbi_dbg("allocating new device with location %lu", session_id); - dev = usbi_alloc_device(ctx, session_id); - if (!dev) { - usbi_dbg("device allocation failed"); - continue; - } - *((USBDevice **)dev->os_priv) = fDevice; - - // Calculate pseudo-device-address - int addr, tmp; - if (strcmp(path.Leaf(), "hub") == 0) - tmp = 100; //Random Number - else - sscanf(path.Leaf(), "%d", &tmp); - addr = tmp + 1; - path.GetParent(&parent_path); - while (strcmp(parent_path.Leaf(), "usb") != 0) { - sscanf(parent_path.Leaf(), "%d", &tmp); - addr += tmp + 1; - parent_path.GetParent(&parent_path); - } - sscanf(path.Path(), "/dev/bus/usb/%d", &dev->bus_number); - dev->device_address = addr - (dev->bus_number + 1); - - if (usbi_sanitize_device(dev) < 0) { - usbi_dbg("device sanitization failed"); - libusb_unref_device(dev); - continue; - } - usbi_connect_device(dev); - } - usbi_mutex_unlock(&active_contexts_lock); - } - else if (fDevice) { - delete fDevice; - fDevice = NULL; - return; - } - } - fInitCheck = true; -} - - -WatchedEntry::~WatchedEntry() -{ - if (fIsDirectory) { - watch_node(&fNode, B_STOP_WATCHING, *fMessenger); - - WatchedEntry *child = fEntries; - while (child) { - WatchedEntry *next = child->fLink; - delete child; - child = next; - } - } - - if (fDevice) { - // Remove this device from each active context's device list - struct libusb_context *ctx; - struct libusb_device *dev; - unsigned long session_id = (unsigned long)&fDevice; - - usbi_mutex_lock(&active_contexts_lock); - list_for_each_entry(ctx, &active_contexts_list, list, struct libusb_context) { - dev = usbi_get_device_by_session_id(ctx, session_id); - if (dev != NULL) { - usbi_disconnect_device(dev); - libusb_unref_device(dev); - } else { - usbi_dbg("device with location %lu not found", session_id); - } - } - usbi_mutex_static_unlock(&active_contexts_lock); - delete fDevice; - } -} - - -bool -WatchedEntry::EntryCreated(entry_ref *ref) -{ - if (!fIsDirectory) - return false; - - if (ref->directory != fNode.node) { - WatchedEntry *child = fEntries; - while (child) { - if (child->EntryCreated(ref)) - return true; - child = child->fLink; - } - return false; - } - - WatchedEntry *child = new(std::nothrow) WatchedEntry(fMessenger, ref); - if (child == NULL) - return false; - child->fLink = fEntries; - fEntries = child; - return true; -} - - -bool -WatchedEntry::EntryRemoved(ino_t node) -{ - if (!fIsDirectory) - return false; - - WatchedEntry *child = fEntries; - WatchedEntry *lastChild = NULL; - while (child) { - if (child->fNode.node == node) { - if (lastChild) - lastChild->fLink = child->fLink; - else - fEntries = child->fLink; - delete child; - return true; - } - - if (child->EntryRemoved(node)) - return true; - - lastChild = child; - child = child->fLink; - } - return false; -} - - -bool -WatchedEntry::InitCheck() -{ - return fInitCheck; -} - - -RosterLooper::RosterLooper(USBRoster *roster) - : BLooper("LibusbRoster Looper"), - fRoster(roster), - fRoot(NULL), - fMessenger(NULL), - fInitCheck(false) -{ - BEntry entry("/dev/bus/usb"); - if (!entry.Exists()) { - usbi_err(NULL, "usb_raw not published"); - return; - } - - Run(); - fMessenger = new(std::nothrow) BMessenger(this); - if (fMessenger == NULL) { - usbi_err(NULL, "error creating BMessenger object"); - return; - } - - if (Lock()) { - entry_ref ref; - entry.GetRef(&ref); - fRoot = new(std::nothrow) WatchedEntry(fMessenger, &ref); - Unlock(); - if (fRoot == NULL) - return; - if (fRoot->InitCheck() == false) { - delete fRoot; - fRoot = NULL; - return; - } - } - fInitCheck = true; -} - - -void -RosterLooper::Stop() -{ - Lock(); - delete fRoot; - delete fMessenger; - Quit(); -} - - -void -RosterLooper::MessageReceived(BMessage *message) -{ - int32 opcode; - if (message->FindInt32("opcode", &opcode) < B_OK) - return; - - switch (opcode) { - case B_ENTRY_CREATED: - { - dev_t device; - ino_t directory; - const char *name; - if (message->FindInt32("device", &device) < B_OK || - message->FindInt64("directory", &directory) < B_OK || - message->FindString("name", &name) < B_OK) - break; - - entry_ref ref(device, directory, name); - fRoot->EntryCreated(&ref); - break; - } - case B_ENTRY_REMOVED: - { - ino_t node; - if (message->FindInt64("node", &node) < B_OK) - break; - fRoot->EntryRemoved(node); - break; - } - } -} - - -bool -RosterLooper::InitCheck() -{ - return fInitCheck; -} - - -USBRoster::USBRoster() - : fLooper(NULL) -{ -} - - -USBRoster::~USBRoster() -{ - Stop(); -} - - -int -USBRoster::Start() -{ - if (fLooper == NULL) { - fLooper = new(std::nothrow) RosterLooper(this); - if (fLooper == NULL || ((RosterLooper *)fLooper)->InitCheck() == false) { - if (fLooper) - fLooper = NULL; - return LIBUSB_ERROR_OTHER; - } - } - return LIBUSB_SUCCESS; -} - - -void -USBRoster::Stop() -{ - if (fLooper) { - ((RosterLooper *)fLooper)->Stop(); - fLooper = NULL; - } -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb.h deleted file mode 100644 index d51ae9ea..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Haiku Backend for libusb - * Copyright © 2014 Akshay Jaggi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include "libusbi.h" -#include "haiku_usb_raw.h" - -using namespace std; - -class USBDevice; -class USBDeviceHandle; -class USBTransfer; - -class USBDevice { -public: - USBDevice(const char *); - virtual ~USBDevice(); - const char* Location() const; - uint8 CountConfigurations() const; - const usb_device_descriptor* Descriptor() const; - const usb_configuration_descriptor* ConfigurationDescriptor(uint32) const; - const usb_configuration_descriptor* ActiveConfiguration() const; - uint8 EndpointToIndex(uint8) const; - uint8 EndpointToInterface(uint8) const; - int ClaimInterface(int); - int ReleaseInterface(int); - int CheckInterfacesFree(int); - int SetActiveConfiguration(int); - int ActiveConfigurationIndex() const; - bool InitCheck(); -private: - int Initialise(); - unsigned int fClaimedInterfaces; // Max Interfaces can be 32. Using a bitmask - usb_device_descriptor fDeviceDescriptor; - unsigned char** fConfigurationDescriptors; - int fActiveConfiguration; - char* fPath; - map fConfigToIndex; - map* fEndpointToIndex; - map* fEndpointToInterface; - bool fInitCheck; -}; - -class USBDeviceHandle { -public: - USBDeviceHandle(USBDevice *dev); - virtual ~USBDeviceHandle(); - int ClaimInterface(int); - int ReleaseInterface(int); - int SetConfiguration(int); - int SetAltSetting(int, int); - status_t SubmitTransfer(struct usbi_transfer *); - status_t CancelTransfer(USBTransfer *); - bool InitCheck(); -private: - int fRawFD; - static status_t TransfersThread(void *); - void TransfersWorker(); - USBDevice* fUSBDevice; - unsigned int fClaimedInterfaces; - BList fTransfers; - BLocker fTransfersLock; - sem_id fTransfersSem; - thread_id fTransfersThread; - bool fInitCheck; -}; - -class USBTransfer { -public: - USBTransfer(struct usbi_transfer *, USBDevice *); - virtual ~USBTransfer(); - void Do(int); - struct usbi_transfer* UsbiTransfer(); - void SetCancelled(); - bool IsCancelled(); -private: - struct usbi_transfer* fUsbiTransfer; - struct libusb_transfer* fLibusbTransfer; - USBDevice* fUSBDevice; - BLocker fStatusLock; - bool fCancelled; -}; - -class USBRoster { -public: - USBRoster(); - virtual ~USBRoster(); - int Start(); - void Stop(); -private: - void* fLooper; -}; diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_backend.cpp b/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_backend.cpp deleted file mode 100644 index d3de8cc0..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_backend.cpp +++ /dev/null @@ -1,517 +0,0 @@ -/* - * Haiku Backend for libusb - * Copyright © 2014 Akshay Jaggi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - - -#include -#include -#include -#include -#include - -#include "haiku_usb.h" - -int _errno_to_libusb(int status) -{ - return status; -} - -USBTransfer::USBTransfer(struct usbi_transfer *itransfer, USBDevice *device) -{ - fUsbiTransfer = itransfer; - fLibusbTransfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - fUSBDevice = device; - fCancelled = false; -} - -USBTransfer::~USBTransfer() -{ -} - -struct usbi_transfer * -USBTransfer::UsbiTransfer() -{ - return fUsbiTransfer; -} - -void -USBTransfer::SetCancelled() -{ - fCancelled = true; -} - -bool -USBTransfer::IsCancelled() -{ - return fCancelled; -} - -void -USBTransfer::Do(int fRawFD) -{ - switch (fLibusbTransfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - { - struct libusb_control_setup *setup = (struct libusb_control_setup *)fLibusbTransfer->buffer; - usb_raw_command command; - command.control.request_type = setup->bmRequestType; - command.control.request = setup->bRequest; - command.control.value = setup->wValue; - command.control.index = setup->wIndex; - command.control.length = setup->wLength; - command.control.data = fLibusbTransfer->buffer + LIBUSB_CONTROL_SETUP_SIZE; - if (fCancelled) - break; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_CONTROL_TRANSFER, &command, sizeof(command)) || - command.control.status != B_USB_RAW_STATUS_SUCCESS) { - fUsbiTransfer->transferred = -1; - usbi_err(TRANSFER_CTX(fLibusbTransfer), "failed control transfer"); - break; - } - fUsbiTransfer->transferred = command.control.length; - } - break; - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - { - usb_raw_command command; - command.transfer.interface = fUSBDevice->EndpointToInterface(fLibusbTransfer->endpoint); - command.transfer.endpoint = fUSBDevice->EndpointToIndex(fLibusbTransfer->endpoint); - command.transfer.data = fLibusbTransfer->buffer; - command.transfer.length = fLibusbTransfer->length; - if (fCancelled) - break; - if (fLibusbTransfer->type == LIBUSB_TRANSFER_TYPE_BULK) { - if (ioctl(fRawFD, B_USB_RAW_COMMAND_BULK_TRANSFER, &command, sizeof(command)) || - command.transfer.status != B_USB_RAW_STATUS_SUCCESS) { - fUsbiTransfer->transferred = -1; - usbi_err(TRANSFER_CTX(fLibusbTransfer), "failed bulk transfer"); - break; - } - } - else { - if (ioctl(fRawFD, B_USB_RAW_COMMAND_INTERRUPT_TRANSFER, &command, sizeof(command)) || - command.transfer.status != B_USB_RAW_STATUS_SUCCESS) { - fUsbiTransfer->transferred = -1; - usbi_err(TRANSFER_CTX(fLibusbTransfer), "failed interrupt transfer"); - break; - } - } - fUsbiTransfer->transferred = command.transfer.length; - } - break; - // IsochronousTransfers not tested - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - { - usb_raw_command command; - command.isochronous.interface = fUSBDevice->EndpointToInterface(fLibusbTransfer->endpoint); - command.isochronous.endpoint = fUSBDevice->EndpointToIndex(fLibusbTransfer->endpoint); - command.isochronous.data = fLibusbTransfer->buffer; - command.isochronous.length = fLibusbTransfer->length; - command.isochronous.packet_count = fLibusbTransfer->num_iso_packets; - int i; - usb_iso_packet_descriptor *packetDescriptors = new usb_iso_packet_descriptor[fLibusbTransfer->num_iso_packets]; - for (i = 0; i < fLibusbTransfer->num_iso_packets; i++) { - if ((int16)(fLibusbTransfer->iso_packet_desc[i]).length != (fLibusbTransfer->iso_packet_desc[i]).length) { - fUsbiTransfer->transferred = -1; - usbi_err(TRANSFER_CTX(fLibusbTransfer), "failed isochronous transfer"); - break; - } - packetDescriptors[i].request_length = (int16)(fLibusbTransfer->iso_packet_desc[i]).length; - } - if (i < fLibusbTransfer->num_iso_packets) - break; // TODO Handle this error - command.isochronous.packet_descriptors = packetDescriptors; - if (fCancelled) - break; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_ISOCHRONOUS_TRANSFER, &command, sizeof(command)) || - command.isochronous.status != B_USB_RAW_STATUS_SUCCESS) { - fUsbiTransfer->transferred = -1; - usbi_err(TRANSFER_CTX(fLibusbTransfer), "failed isochronous transfer"); - break; - } - for (i = 0; i < fLibusbTransfer->num_iso_packets; i++) { - (fLibusbTransfer->iso_packet_desc[i]).actual_length = packetDescriptors[i].actual_length; - switch (packetDescriptors[i].status) { - case B_OK: - (fLibusbTransfer->iso_packet_desc[i]).status = LIBUSB_TRANSFER_COMPLETED; - break; - default: - (fLibusbTransfer->iso_packet_desc[i]).status = LIBUSB_TRANSFER_ERROR; - break; - } - } - delete[] packetDescriptors; - // Do we put the length of transfer here, for isochronous transfers? - fUsbiTransfer->transferred = command.transfer.length; - } - break; - default: - usbi_err(TRANSFER_CTX(fLibusbTransfer), "Unknown type of transfer"); - } -} - -bool -USBDeviceHandle::InitCheck() -{ - return fInitCheck; -} - -status_t -USBDeviceHandle::TransfersThread(void *self) -{ - USBDeviceHandle *handle = (USBDeviceHandle *)self; - handle->TransfersWorker(); - return B_OK; -} - -void -USBDeviceHandle::TransfersWorker() -{ - while (true) { - status_t status = acquire_sem(fTransfersSem); - if (status == B_BAD_SEM_ID) - break; - if (status == B_INTERRUPTED) - continue; - fTransfersLock.Lock(); - USBTransfer *fPendingTransfer = (USBTransfer *) fTransfers.RemoveItem((int32)0); - fTransfersLock.Unlock(); - fPendingTransfer->Do(fRawFD); - usbi_signal_transfer_completion(fPendingTransfer->UsbiTransfer()); - } -} - -status_t -USBDeviceHandle::SubmitTransfer(struct usbi_transfer *itransfer) -{ - USBTransfer *transfer = new USBTransfer(itransfer, fUSBDevice); - *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)) = transfer; - BAutolock locker(fTransfersLock); - fTransfers.AddItem(transfer); - release_sem(fTransfersSem); - return LIBUSB_SUCCESS; -} - -status_t -USBDeviceHandle::CancelTransfer(USBTransfer *transfer) -{ - transfer->SetCancelled(); - fTransfersLock.Lock(); - bool removed = fTransfers.RemoveItem(transfer); - fTransfersLock.Unlock(); - if(removed) - usbi_signal_transfer_completion(transfer->UsbiTransfer()); - return LIBUSB_SUCCESS; -} - -USBDeviceHandle::USBDeviceHandle(USBDevice *dev) - : - fTransfersThread(-1), - fUSBDevice(dev), - fClaimedInterfaces(0), - fInitCheck(false) -{ - fRawFD = open(dev->Location(), O_RDWR | O_CLOEXEC); - if (fRawFD < 0) { - usbi_err(NULL,"failed to open device"); - return; - } - fTransfersSem = create_sem(0, "Transfers Queue Sem"); - fTransfersThread = spawn_thread(TransfersThread, "Transfer Worker", B_NORMAL_PRIORITY, this); - resume_thread(fTransfersThread); - fInitCheck = true; -} - -USBDeviceHandle::~USBDeviceHandle() -{ - if (fRawFD > 0) - close(fRawFD); - for(int i = 0; i < 32; i++) { - if (fClaimedInterfaces & (1 << i)) - ReleaseInterface(i); - } - delete_sem(fTransfersSem); - if (fTransfersThread > 0) - wait_for_thread(fTransfersThread, NULL); -} - -int -USBDeviceHandle::ClaimInterface(int inumber) -{ - int status = fUSBDevice->ClaimInterface(inumber); - if (status == LIBUSB_SUCCESS) - fClaimedInterfaces |= (1 << inumber); - return status; -} - -int -USBDeviceHandle::ReleaseInterface(int inumber) -{ - fUSBDevice->ReleaseInterface(inumber); - fClaimedInterfaces &= ~(1 << inumber); - return LIBUSB_SUCCESS; -} - -int -USBDeviceHandle::SetConfiguration(int config) -{ - int config_index = fUSBDevice->CheckInterfacesFree(config); - if(config_index == LIBUSB_ERROR_BUSY || config_index == LIBUSB_ERROR_NOT_FOUND) - return config_index; - usb_raw_command command; - command.config.config_index = config_index; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_SET_CONFIGURATION, &command, sizeof(command)) || - command.config.status != B_USB_RAW_STATUS_SUCCESS) { - return _errno_to_libusb(command.config.status); - } - fUSBDevice->SetActiveConfiguration(config_index); - return LIBUSB_SUCCESS; -} - -int -USBDeviceHandle::SetAltSetting(int inumber, int alt) -{ - usb_raw_command command; - command.alternate.config_index = fUSBDevice->ActiveConfigurationIndex(); - command.alternate.interface_index = inumber; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_GET_ACTIVE_ALT_INTERFACE_INDEX, &command, sizeof(command)) || - command.alternate.status != B_USB_RAW_STATUS_SUCCESS) { - usbi_err(NULL, "Error retrieving active alternate interface"); - return _errno_to_libusb(command.alternate.status); - } - if (command.alternate.alternate_info == alt) { - usbi_dbg("Setting alternate interface successful"); - return LIBUSB_SUCCESS; - } - command.alternate.alternate_info = alt; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_SET_ALT_INTERFACE, &command, sizeof(command)) || - command.alternate.status != B_USB_RAW_STATUS_SUCCESS) { //IF IOCTL FAILS DEVICE DISONNECTED PROBABLY - usbi_err(NULL, "Error setting alternate interface"); - return _errno_to_libusb(command.alternate.status); - } - usbi_dbg("Setting alternate interface successful"); - return LIBUSB_SUCCESS; -} - - -USBDevice::USBDevice(const char *path) - : - fPath(NULL), - fActiveConfiguration(0), //0? - fConfigurationDescriptors(NULL), - fClaimedInterfaces(0), - fEndpointToIndex(NULL), - fEndpointToInterface(NULL), - fInitCheck(false) -{ - fPath=strdup(path); - Initialise(); -} - -USBDevice::~USBDevice() -{ - free(fPath); - if (fConfigurationDescriptors) { - for(int i = 0; i < fDeviceDescriptor.num_configurations; i++) { - if (fConfigurationDescriptors[i]) - delete fConfigurationDescriptors[i]; - } - delete[] fConfigurationDescriptors; - } - if (fEndpointToIndex) - delete[] fEndpointToIndex; - if (fEndpointToInterface) - delete[] fEndpointToInterface; -} - -bool -USBDevice::InitCheck() -{ - return fInitCheck; -} - -const char * -USBDevice::Location() const -{ - return fPath; -} - -uint8 -USBDevice::CountConfigurations() const -{ - return fDeviceDescriptor.num_configurations; -} - -const usb_device_descriptor * -USBDevice::Descriptor() const -{ - return &fDeviceDescriptor; -} - -const usb_configuration_descriptor * -USBDevice::ConfigurationDescriptor(uint32 index) const -{ - if (index > CountConfigurations()) - return NULL; - return (usb_configuration_descriptor *) fConfigurationDescriptors[index]; -} - -const usb_configuration_descriptor * -USBDevice::ActiveConfiguration() const -{ - return (usb_configuration_descriptor *) fConfigurationDescriptors[fActiveConfiguration]; -} - -int -USBDevice::ActiveConfigurationIndex() const -{ - return fActiveConfiguration; -} - -int USBDevice::ClaimInterface(int interface) -{ - if (interface > ActiveConfiguration()->number_interfaces) - return LIBUSB_ERROR_NOT_FOUND; - if (fClaimedInterfaces & (1 << interface)) - return LIBUSB_ERROR_BUSY; - fClaimedInterfaces |= (1 << interface); - return LIBUSB_SUCCESS; -} - -int USBDevice::ReleaseInterface(int interface) -{ - fClaimedInterfaces &= ~(1 << interface); - return LIBUSB_SUCCESS; -} - -int -USBDevice::CheckInterfacesFree(int config) -{ - if (fConfigToIndex.count(config) == 0) - return LIBUSB_ERROR_NOT_FOUND; - if (fClaimedInterfaces == 0) - return fConfigToIndex[(uint8)config]; - return LIBUSB_ERROR_BUSY; -} - -int -USBDevice::SetActiveConfiguration(int config_index) -{ - fActiveConfiguration = config_index; - return LIBUSB_SUCCESS; -} - -uint8 -USBDevice::EndpointToIndex(uint8 address) const -{ - return fEndpointToIndex[fActiveConfiguration][address]; -} - -uint8 -USBDevice::EndpointToInterface(uint8 address) const -{ - return fEndpointToInterface[fActiveConfiguration][address]; -} - -int -USBDevice::Initialise() //Do we need more error checking, etc? How to report? -{ - int fRawFD = open(fPath, O_RDWR | O_CLOEXEC); - if (fRawFD < 0) - return B_ERROR; - usb_raw_command command; - command.device.descriptor = &fDeviceDescriptor; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_GET_DEVICE_DESCRIPTOR, &command, sizeof(command)) || - command.device.status != B_USB_RAW_STATUS_SUCCESS) { - close(fRawFD); - return B_ERROR; - } - - fConfigurationDescriptors = new(std::nothrow) unsigned char *[fDeviceDescriptor.num_configurations]; - fEndpointToIndex = new(std::nothrow) map [fDeviceDescriptor.num_configurations]; - fEndpointToInterface = new(std::nothrow) map [fDeviceDescriptor.num_configurations]; - for (int i = 0; i < fDeviceDescriptor.num_configurations; i++) { - usb_configuration_descriptor tmp_config; - command.config.descriptor = &tmp_config; - command.config.config_index = i; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_GET_CONFIGURATION_DESCRIPTOR, &command, sizeof(command)) || - command.config.status != B_USB_RAW_STATUS_SUCCESS) { - usbi_err(NULL, "failed retrieving configuration descriptor"); - close(fRawFD); - return B_ERROR; - } - fConfigToIndex[tmp_config.configuration_value] = i; - fConfigurationDescriptors[i] = new(std::nothrow) unsigned char[tmp_config.total_length]; - command.control.request_type = 128; - command.control.request = 6; - command.control.value = (2 << 8) | i; - command.control.index = 0; - command.control.length = tmp_config.total_length; - command.control.data = fConfigurationDescriptors[i]; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_CONTROL_TRANSFER, &command, sizeof(command)) || - command.control.status!=B_USB_RAW_STATUS_SUCCESS) { - usbi_err(NULL, "failed retrieving full configuration descriptor"); - close(fRawFD); - return B_ERROR; - } - for (int j = 0; j < tmp_config.number_interfaces; j++) { - command.alternate.config_index = i; - command.alternate.interface_index = j; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_GET_ALT_INTERFACE_COUNT, &command, sizeof(command)) || - command.config.status != B_USB_RAW_STATUS_SUCCESS) { - usbi_err(NULL, "failed retrieving number of alternate interfaces"); - close(fRawFD); - return B_ERROR; - } - int num_alternate = command.alternate.alternate_info; - for (int k = 0; k < num_alternate; k++) { - usb_interface_descriptor tmp_interface; - command.interface_etc.config_index = i; - command.interface_etc.interface_index = j; - command.interface_etc.alternate_index = k; - command.interface_etc.descriptor = &tmp_interface; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_GET_INTERFACE_DESCRIPTOR_ETC, &command, sizeof(command)) || - command.config.status != B_USB_RAW_STATUS_SUCCESS) { - usbi_err(NULL, "failed retrieving interface descriptor"); - close(fRawFD); - return B_ERROR; - } - for (int l = 0; l < tmp_interface.num_endpoints; l++) { - usb_endpoint_descriptor tmp_endpoint; - command.endpoint_etc.config_index = i; - command.endpoint_etc.interface_index = j; - command.endpoint_etc.alternate_index = k; - command.endpoint_etc.endpoint_index = l; - command.endpoint_etc.descriptor = &tmp_endpoint; - if (ioctl(fRawFD, B_USB_RAW_COMMAND_GET_ENDPOINT_DESCRIPTOR_ETC, &command, sizeof(command)) || - command.config.status != B_USB_RAW_STATUS_SUCCESS) { - usbi_err(NULL, "failed retrieving endpoint descriptor"); - close(fRawFD); - return B_ERROR; - } - fEndpointToIndex[i][tmp_endpoint.endpoint_address] = l; - fEndpointToInterface[i][tmp_endpoint.endpoint_address] = j; - } - } - } - } - close(fRawFD); - fInitCheck = true; - return B_OK; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.cpp b/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.cpp deleted file mode 100644 index 77adbd1e..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.cpp +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Haiku Backend for libusb - * Copyright © 2014 Akshay Jaggi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - - -#include -#include -#include -#include -#include - -#include "haiku_usb.h" - -USBRoster gUsbRoster; -int32 gInitCount = 0; - -static int -haiku_init(struct libusb_context *ctx) -{ - if (atomic_add(&gInitCount, 1) == 0) - return gUsbRoster.Start(); - return LIBUSB_SUCCESS; -} - -static void -haiku_exit(void) -{ - if (atomic_add(&gInitCount, -1) == 1) - gUsbRoster.Stop(); -} - -static int -haiku_open(struct libusb_device_handle *dev_handle) -{ - USBDevice *dev = *((USBDevice **)dev_handle->dev->os_priv); - USBDeviceHandle *handle = new(std::nothrow) USBDeviceHandle(dev); - if (handle == NULL) - return LIBUSB_ERROR_NO_MEM; - if (handle->InitCheck() == false) { - delete handle; - return LIBUSB_ERROR_NO_DEVICE; - } - *((USBDeviceHandle **)dev_handle->os_priv) = handle; - return LIBUSB_SUCCESS; -} - -static void -haiku_close(struct libusb_device_handle *dev_handle) -{ - USBDeviceHandle *handle = *((USBDeviceHandle **)dev_handle->os_priv); - if (handle == NULL) - return; - delete handle; - *((USBDeviceHandle **)dev_handle->os_priv) = NULL; -} - -static int -haiku_get_device_descriptor(struct libusb_device *device, unsigned char *buffer, int *host_endian) -{ - USBDevice *dev = *((USBDevice **)device->os_priv); - memcpy(buffer, dev->Descriptor(), DEVICE_DESC_LENGTH); - *host_endian = 0; - return LIBUSB_SUCCESS; -} - -static int -haiku_get_active_config_descriptor(struct libusb_device *device, unsigned char *buffer, size_t len, int *host_endian) -{ - USBDevice *dev = *((USBDevice **)device->os_priv); - const usb_configuration_descriptor *act_config = dev->ActiveConfiguration(); - if (len > act_config->total_length) - return LIBUSB_ERROR_OVERFLOW; - memcpy(buffer, act_config, len); - *host_endian = 0; - return LIBUSB_SUCCESS; -} - -static int -haiku_get_config_descriptor(struct libusb_device *device, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) -{ - USBDevice *dev = *((USBDevice **)device->os_priv); - const usb_configuration_descriptor *config = dev->ConfigurationDescriptor(config_index); - if (config == NULL) { - usbi_err(DEVICE_CTX(device), "failed getting configuration descriptor"); - return LIBUSB_ERROR_INVALID_PARAM; - } - if (len > config->total_length) - len = config->total_length; - memcpy(buffer, config, len); - *host_endian = 0; - return len; -} - -static int -haiku_set_configuration(struct libusb_device_handle *dev_handle, int config) -{ - USBDeviceHandle *handle= *((USBDeviceHandle **)dev_handle->os_priv); - return handle->SetConfiguration(config); -} - -static int -haiku_claim_interface(struct libusb_device_handle *dev_handle, int interface_number) -{ - USBDeviceHandle *handle = *((USBDeviceHandle **)dev_handle->os_priv); - return handle->ClaimInterface(interface_number); -} - -static int -haiku_set_altsetting(struct libusb_device_handle *dev_handle, int interface_number, int altsetting) -{ - USBDeviceHandle *handle = *((USBDeviceHandle **)dev_handle->os_priv); - return handle->SetAltSetting(interface_number, altsetting); -} - -static int -haiku_release_interface(struct libusb_device_handle *dev_handle, int interface_number) -{ - USBDeviceHandle *handle = *((USBDeviceHandle **)dev_handle->os_priv); - haiku_set_altsetting(dev_handle,interface_number, 0); - return handle->ReleaseInterface(interface_number); -} - -static int -haiku_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *fLibusbTransfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - USBDeviceHandle *fDeviceHandle = *((USBDeviceHandle **)fLibusbTransfer->dev_handle->os_priv); - return fDeviceHandle->SubmitTransfer(itransfer); -} - -static int -haiku_cancel_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *fLibusbTransfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - USBDeviceHandle *fDeviceHandle = *((USBDeviceHandle **)fLibusbTransfer->dev_handle->os_priv); - return fDeviceHandle->CancelTransfer(*((USBTransfer **)usbi_transfer_get_os_priv(itransfer))); -} - -static void -haiku_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - USBTransfer *transfer = *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)); - delete transfer; - *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)) = NULL; -} - -static int -haiku_handle_transfer_completion(struct usbi_transfer *itransfer) -{ - USBTransfer *transfer = *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)); - - usbi_mutex_lock(&itransfer->lock); - if (transfer->IsCancelled()) { - delete transfer; - *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)) = NULL; - usbi_mutex_unlock(&itransfer->lock); - if (itransfer->transferred < 0) - itransfer->transferred = 0; - return usbi_handle_transfer_cancellation(itransfer); - } - libusb_transfer_status status = LIBUSB_TRANSFER_COMPLETED; - if (itransfer->transferred < 0) { - usbi_err(ITRANSFER_CTX(itransfer), "error in transfer"); - status = LIBUSB_TRANSFER_ERROR; - itransfer->transferred = 0; - } - delete transfer; - *((USBTransfer **)usbi_transfer_get_os_priv(itransfer)) = NULL; - usbi_mutex_unlock(&itransfer->lock); - return usbi_handle_transfer_completion(itransfer, status); -} - -static int -haiku_clock_gettime(int clkid, struct timespec *tp) -{ - if (clkid == USBI_CLOCK_REALTIME) - return clock_gettime(CLOCK_REALTIME, tp); - if (clkid == USBI_CLOCK_MONOTONIC) - return clock_gettime(CLOCK_MONOTONIC, tp); - return LIBUSB_ERROR_INVALID_PARAM; -} - -const struct usbi_os_backend haiku_usb_raw_backend = { - /*.name =*/ "Haiku usbfs", - /*.caps =*/ 0, - /*.init =*/ haiku_init, - /*.exit =*/ haiku_exit, - /*.get_device_list =*/ NULL, - /*.hotplug_poll =*/ NULL, - /*.open =*/ haiku_open, - /*.close =*/ haiku_close, - /*.get_device_descriptor =*/ haiku_get_device_descriptor, - /*.get_active_config_descriptor =*/ haiku_get_active_config_descriptor, - /*.get_config_descriptor =*/ haiku_get_config_descriptor, - /*.get_config_descriptor_by_value =*/ NULL, - - - /*.get_configuration =*/ NULL, - /*.set_configuration =*/ haiku_set_configuration, - /*.claim_interface =*/ haiku_claim_interface, - /*.release_interface =*/ haiku_release_interface, - - /*.set_interface_altsetting =*/ haiku_set_altsetting, - /*.clear_halt =*/ NULL, - /*.reset_device =*/ NULL, - - /*.alloc_streams =*/ NULL, - /*.free_streams =*/ NULL, - - /*.dev_mem_alloc =*/ NULL, - /*.dev_mem_free =*/ NULL, - - /*.kernel_driver_active =*/ NULL, - /*.detach_kernel_driver =*/ NULL, - /*.attach_kernel_driver =*/ NULL, - - /*.destroy_device =*/ NULL, - - /*.submit_transfer =*/ haiku_submit_transfer, - /*.cancel_transfer =*/ haiku_cancel_transfer, - /*.clear_transfer_priv =*/ haiku_clear_transfer_priv, - - /*.handle_events =*/ NULL, - /*.handle_transfer_completion =*/ haiku_handle_transfer_completion, - - /*.clock_gettime =*/ haiku_clock_gettime, - -#ifdef USBI_TIMERFD_AVAILABLE - /*.get_timerfd_clockid =*/ NULL, -#endif - - /*.device_priv_size =*/ sizeof(USBDevice *), - /*.device_handle_priv_size =*/ sizeof(USBDeviceHandle *), - /*.transfer_priv_size =*/ sizeof(USBTransfer *), -}; diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.h deleted file mode 100644 index 5baf53d7..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/haiku_usb_raw.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2006-2008, Haiku Inc. All rights reserved. - * Distributed under the terms of the MIT License. - */ - -#ifndef _USB_RAW_H_ -#define _USB_RAW_H_ - -#include - -#define B_USB_RAW_PROTOCOL_VERSION 0x0015 -#define B_USB_RAW_ACTIVE_ALTERNATE 0xffffffff - -typedef enum { - B_USB_RAW_COMMAND_GET_VERSION = 0x1000, - - B_USB_RAW_COMMAND_GET_DEVICE_DESCRIPTOR = 0x2000, - B_USB_RAW_COMMAND_GET_CONFIGURATION_DESCRIPTOR, - B_USB_RAW_COMMAND_GET_INTERFACE_DESCRIPTOR, - B_USB_RAW_COMMAND_GET_ENDPOINT_DESCRIPTOR, - B_USB_RAW_COMMAND_GET_STRING_DESCRIPTOR, - B_USB_RAW_COMMAND_GET_GENERIC_DESCRIPTOR, - B_USB_RAW_COMMAND_GET_ALT_INTERFACE_COUNT, - B_USB_RAW_COMMAND_GET_ACTIVE_ALT_INTERFACE_INDEX, - B_USB_RAW_COMMAND_GET_INTERFACE_DESCRIPTOR_ETC, - B_USB_RAW_COMMAND_GET_ENDPOINT_DESCRIPTOR_ETC, - B_USB_RAW_COMMAND_GET_GENERIC_DESCRIPTOR_ETC, - - B_USB_RAW_COMMAND_SET_CONFIGURATION = 0x3000, - B_USB_RAW_COMMAND_SET_FEATURE, - B_USB_RAW_COMMAND_CLEAR_FEATURE, - B_USB_RAW_COMMAND_GET_STATUS, - B_USB_RAW_COMMAND_GET_DESCRIPTOR, - B_USB_RAW_COMMAND_SET_ALT_INTERFACE, - - B_USB_RAW_COMMAND_CONTROL_TRANSFER = 0x4000, - B_USB_RAW_COMMAND_INTERRUPT_TRANSFER, - B_USB_RAW_COMMAND_BULK_TRANSFER, - B_USB_RAW_COMMAND_ISOCHRONOUS_TRANSFER -} usb_raw_command_id; - - -typedef enum { - B_USB_RAW_STATUS_SUCCESS = 0, - - B_USB_RAW_STATUS_FAILED, - B_USB_RAW_STATUS_ABORTED, - B_USB_RAW_STATUS_STALLED, - B_USB_RAW_STATUS_CRC_ERROR, - B_USB_RAW_STATUS_TIMEOUT, - - B_USB_RAW_STATUS_INVALID_CONFIGURATION, - B_USB_RAW_STATUS_INVALID_INTERFACE, - B_USB_RAW_STATUS_INVALID_ENDPOINT, - B_USB_RAW_STATUS_INVALID_STRING, - - B_USB_RAW_STATUS_NO_MEMORY -} usb_raw_command_status; - - -typedef union { - struct { - status_t status; - } version; - - struct { - status_t status; - usb_device_descriptor *descriptor; - } device; - - struct { - status_t status; - usb_configuration_descriptor *descriptor; - uint32 config_index; - } config; - - struct { - status_t status; - uint32 alternate_info; - uint32 config_index; - uint32 interface_index; - } alternate; - - struct { - status_t status; - usb_interface_descriptor *descriptor; - uint32 config_index; - uint32 interface_index; - } interface; - - struct { - status_t status; - usb_interface_descriptor *descriptor; - uint32 config_index; - uint32 interface_index; - uint32 alternate_index; - } interface_etc; - - struct { - status_t status; - usb_endpoint_descriptor *descriptor; - uint32 config_index; - uint32 interface_index; - uint32 endpoint_index; - } endpoint; - - struct { - status_t status; - usb_endpoint_descriptor *descriptor; - uint32 config_index; - uint32 interface_index; - uint32 alternate_index; - uint32 endpoint_index; - } endpoint_etc; - - struct { - status_t status; - usb_descriptor *descriptor; - uint32 config_index; - uint32 interface_index; - uint32 generic_index; - size_t length; - } generic; - - struct { - status_t status; - usb_descriptor *descriptor; - uint32 config_index; - uint32 interface_index; - uint32 alternate_index; - uint32 generic_index; - size_t length; - } generic_etc; - - struct { - status_t status; - usb_string_descriptor *descriptor; - uint32 string_index; - size_t length; - } string; - - struct { - status_t status; - uint8 type; - uint8 index; - uint16 language_id; - void *data; - size_t length; - } descriptor; - - struct { - status_t status; - uint8 request_type; - uint8 request; - uint16 value; - uint16 index; - uint16 length; - void *data; - } control; - - struct { - status_t status; - uint32 interface; - uint32 endpoint; - void *data; - size_t length; - } transfer; - - struct { - status_t status; - uint32 interface; - uint32 endpoint; - void *data; - size_t length; - usb_iso_packet_descriptor *packet_descriptors; - uint32 packet_count; - } isochronous; -} usb_raw_command; - -#endif // _USB_RAW_H_ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_netlink.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_netlink.c deleted file mode 100644 index 60cf3ad1..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_netlink.c +++ /dev/null @@ -1,400 +0,0 @@ -/* -*- Mode: C; c-basic-offset:8 ; indent-tabs-mode:t -*- */ -/* - * Linux usbfs backend for libusb - * Copyright (C) 2007-2009 Daniel Drake - * Copyright (c) 2001 Johannes Erdfelt - * Copyright (c) 2013 Nathan Hjelm - * Copyright (c) 2016 Chris Dickens - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_ASM_TYPES_H -#include -#endif - -#include -#include - -#include "libusbi.h" -#include "linux_usbfs.h" - -#define NL_GROUP_KERNEL 1 - -static int linux_netlink_socket = -1; -static int netlink_control_pipe[2] = { -1, -1 }; -static pthread_t libusb_linux_event_thread; - -static void *linux_netlink_event_thread_main(void *arg); - -static int set_fd_cloexec_nb(int fd) -{ - int flags; - -#if defined(FD_CLOEXEC) - flags = fcntl(fd, F_GETFD); - if (flags == -1) { - usbi_err(NULL, "failed to get netlink fd flags (%d)", errno); - return -1; - } - - if (!(flags & FD_CLOEXEC)) { - if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1) { - usbi_err(NULL, "failed to set netlink fd flags (%d)", errno); - return -1; - } - } -#endif - - flags = fcntl(fd, F_GETFL); - if (flags == -1) { - usbi_err(NULL, "failed to get netlink fd status flags (%d)", errno); - return -1; - } - - if (!(flags & O_NONBLOCK)) { - if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1) { - usbi_err(NULL, "failed to set netlink fd status flags (%d)", errno); - return -1; - } - } - - return 0; -} - -int linux_netlink_start_event_monitor(void) -{ - struct sockaddr_nl sa_nl = { .nl_family = AF_NETLINK, .nl_groups = NL_GROUP_KERNEL }; - int socktype = SOCK_RAW; - int opt = 1; - int ret; - -#if defined(SOCK_CLOEXEC) - socktype |= SOCK_CLOEXEC; -#endif -#if defined(SOCK_NONBLOCK) - socktype |= SOCK_NONBLOCK; -#endif - - linux_netlink_socket = socket(PF_NETLINK, socktype, NETLINK_KOBJECT_UEVENT); - if (linux_netlink_socket == -1 && errno == EINVAL) { - usbi_dbg("failed to create netlink socket of type %d, attempting SOCK_RAW", socktype); - linux_netlink_socket = socket(PF_NETLINK, SOCK_RAW, NETLINK_KOBJECT_UEVENT); - } - - if (linux_netlink_socket == -1) { - usbi_err(NULL, "failed to create netlink socket (%d)", errno); - goto err; - } - - ret = set_fd_cloexec_nb(linux_netlink_socket); - if (ret == -1) - goto err_close_socket; - - ret = bind(linux_netlink_socket, (struct sockaddr *)&sa_nl, sizeof(sa_nl)); - if (ret == -1) { - usbi_err(NULL, "failed to bind netlink socket (%d)", errno); - goto err_close_socket; - } - - ret = setsockopt(linux_netlink_socket, SOL_SOCKET, SO_PASSCRED, &opt, sizeof(opt)); - if (ret == -1) { - usbi_err(NULL, "failed to set netlink socket SO_PASSCRED option (%d)", errno); - goto err_close_socket; - } - - ret = usbi_pipe(netlink_control_pipe); - if (ret) { - usbi_err(NULL, "failed to create netlink control pipe"); - goto err_close_socket; - } - - ret = pthread_create(&libusb_linux_event_thread, NULL, linux_netlink_event_thread_main, NULL); - if (ret != 0) { - usbi_err(NULL, "failed to create netlink event thread (%d)", ret); - goto err_close_pipe; - } - - return LIBUSB_SUCCESS; - -err_close_pipe: - close(netlink_control_pipe[0]); - close(netlink_control_pipe[1]); - netlink_control_pipe[0] = -1; - netlink_control_pipe[1] = -1; -err_close_socket: - close(linux_netlink_socket); - linux_netlink_socket = -1; -err: - return LIBUSB_ERROR_OTHER; -} - -int linux_netlink_stop_event_monitor(void) -{ - char dummy = 1; - ssize_t r; - - assert(linux_netlink_socket != -1); - - /* Write some dummy data to the control pipe and - * wait for the thread to exit */ - r = usbi_write(netlink_control_pipe[1], &dummy, sizeof(dummy)); - if (r <= 0) - usbi_warn(NULL, "netlink control pipe signal failed"); - - pthread_join(libusb_linux_event_thread, NULL); - - close(linux_netlink_socket); - linux_netlink_socket = -1; - - /* close and reset control pipe */ - close(netlink_control_pipe[0]); - close(netlink_control_pipe[1]); - netlink_control_pipe[0] = -1; - netlink_control_pipe[1] = -1; - - return LIBUSB_SUCCESS; -} - -static const char *netlink_message_parse(const char *buffer, size_t len, const char *key) -{ - const char *end = buffer + len; - size_t keylen = strlen(key); - - while (buffer < end && *buffer) { - if (strncmp(buffer, key, keylen) == 0 && buffer[keylen] == '=') - return buffer + keylen + 1; - buffer += strlen(buffer) + 1; - } - - return NULL; -} - -/* parse parts of netlink message common to both libudev and the kernel */ -static int linux_netlink_parse(const char *buffer, size_t len, int *detached, - const char **sys_name, uint8_t *busnum, uint8_t *devaddr) -{ - const char *tmp, *slash; - - errno = 0; - - *sys_name = NULL; - *detached = 0; - *busnum = 0; - *devaddr = 0; - - tmp = netlink_message_parse(buffer, len, "ACTION"); - if (!tmp) { - return -1; - } else if (strcmp(tmp, "remove") == 0) { - *detached = 1; - } else if (strcmp(tmp, "add") != 0) { - usbi_dbg("unknown device action %s", tmp); - return -1; - } - - /* check that this is a usb message */ - tmp = netlink_message_parse(buffer, len, "SUBSYSTEM"); - if (!tmp || strcmp(tmp, "usb") != 0) { - /* not usb. ignore */ - return -1; - } - - /* check that this is an actual usb device */ - tmp = netlink_message_parse(buffer, len, "DEVTYPE"); - if (!tmp || strcmp(tmp, "usb_device") != 0) { - /* not usb. ignore */ - return -1; - } - - tmp = netlink_message_parse(buffer, len, "BUSNUM"); - if (tmp) { - *busnum = (uint8_t)(strtoul(tmp, NULL, 10) & 0xff); - if (errno) { - errno = 0; - return -1; - } - - tmp = netlink_message_parse(buffer, len, "DEVNUM"); - if (NULL == tmp) - return -1; - - *devaddr = (uint8_t)(strtoul(tmp, NULL, 10) & 0xff); - if (errno) { - errno = 0; - return -1; - } - } else { - /* no bus number. try "DEVICE" */ - tmp = netlink_message_parse(buffer, len, "DEVICE"); - if (!tmp) { - /* not usb. ignore */ - return -1; - } - - /* Parse a device path such as /dev/bus/usb/003/004 */ - slash = strrchr(tmp, '/'); - if (!slash) - return -1; - - *busnum = (uint8_t)(strtoul(slash - 3, NULL, 10) & 0xff); - if (errno) { - errno = 0; - return -1; - } - - *devaddr = (uint8_t)(strtoul(slash + 1, NULL, 10) & 0xff); - if (errno) { - errno = 0; - return -1; - } - - return 0; - } - - tmp = netlink_message_parse(buffer, len, "DEVPATH"); - if (!tmp) - return -1; - - slash = strrchr(tmp, '/'); - if (slash) - *sys_name = slash + 1; - - /* found a usb device */ - return 0; -} - -static int linux_netlink_read_message(void) -{ - char cred_buffer[CMSG_SPACE(sizeof(struct ucred))]; - char msg_buffer[2048]; - const char *sys_name = NULL; - uint8_t busnum, devaddr; - int detached, r; - ssize_t len; - struct cmsghdr *cmsg; - struct ucred *cred; - struct sockaddr_nl sa_nl; - struct iovec iov = { .iov_base = msg_buffer, .iov_len = sizeof(msg_buffer) }; - struct msghdr msg = { - .msg_iov = &iov, .msg_iovlen = 1, - .msg_control = cred_buffer, .msg_controllen = sizeof(cred_buffer), - .msg_name = &sa_nl, .msg_namelen = sizeof(sa_nl) - }; - - /* read netlink message */ - len = recvmsg(linux_netlink_socket, &msg, 0); - if (len == -1) { - if (errno != EAGAIN && errno != EINTR) - usbi_err(NULL, "error receiving message from netlink (%d)", errno); - return -1; - } - - if (len < 32 || (msg.msg_flags & MSG_TRUNC)) { - usbi_err(NULL, "invalid netlink message length"); - return -1; - } - - if (sa_nl.nl_groups != NL_GROUP_KERNEL || sa_nl.nl_pid != 0) { - usbi_dbg("ignoring netlink message from unknown group/PID (%u/%u)", - (unsigned int)sa_nl.nl_groups, (unsigned int)sa_nl.nl_pid); - return -1; - } - - cmsg = CMSG_FIRSTHDR(&msg); - if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS) { - usbi_dbg("ignoring netlink message with no sender credentials"); - return -1; - } - - cred = (struct ucred *)CMSG_DATA(cmsg); - if (cred->uid != 0) { - usbi_dbg("ignoring netlink message with non-zero sender UID %u", (unsigned int)cred->uid); - return -1; - } - - r = linux_netlink_parse(msg_buffer, (size_t)len, &detached, &sys_name, &busnum, &devaddr); - if (r) - return r; - - usbi_dbg("netlink hotplug found device busnum: %hhu, devaddr: %hhu, sys_name: %s, removed: %s", - busnum, devaddr, sys_name, detached ? "yes" : "no"); - - /* signal device is available (or not) to all contexts */ - if (detached) - linux_device_disconnected(busnum, devaddr); - else - linux_hotplug_enumerate(busnum, devaddr, sys_name); - - return 0; -} - -static void *linux_netlink_event_thread_main(void *arg) -{ - char dummy; - ssize_t r; - struct pollfd fds[] = { - { .fd = netlink_control_pipe[0], - .events = POLLIN }, - { .fd = linux_netlink_socket, - .events = POLLIN }, - }; - - UNUSED(arg); - - usbi_dbg("netlink event thread entering"); - - while (poll(fds, 2, -1) >= 0) { - if (fds[0].revents & POLLIN) { - /* activity on control pipe, read the byte and exit */ - r = usbi_read(netlink_control_pipe[0], &dummy, sizeof(dummy)); - if (r <= 0) - usbi_warn(NULL, "netlink control pipe read failed"); - break; - } - if (fds[1].revents & POLLIN) { - usbi_mutex_static_lock(&linux_hotplug_lock); - linux_netlink_read_message(); - usbi_mutex_static_unlock(&linux_hotplug_lock); - } - } - - usbi_dbg("netlink event thread exiting"); - - return NULL; -} - -void linux_netlink_hotplug_poll(void) -{ - int r; - - usbi_mutex_static_lock(&linux_hotplug_lock); - do { - r = linux_netlink_read_message(); - } while (r == 0); - usbi_mutex_static_unlock(&linux_hotplug_lock); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_udev.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_udev.c deleted file mode 100644 index 61d953d8..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_udev.c +++ /dev/null @@ -1,311 +0,0 @@ -/* -*- Mode: C; c-basic-offset:8 ; indent-tabs-mode:t -*- */ -/* - * Linux usbfs backend for libusb - * Copyright (C) 2007-2009 Daniel Drake - * Copyright (c) 2001 Johannes Erdfelt - * Copyright (c) 2012-2013 Nathan Hjelm - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libusbi.h" -#include "linux_usbfs.h" - -/* udev context */ -static struct udev *udev_ctx = NULL; -static int udev_monitor_fd = -1; -static int udev_control_pipe[2] = {-1, -1}; -static struct udev_monitor *udev_monitor = NULL; -static pthread_t linux_event_thread; - -static void udev_hotplug_event(struct udev_device* udev_dev); -static void *linux_udev_event_thread_main(void *arg); - -int linux_udev_start_event_monitor(void) -{ - int r; - - assert(udev_ctx == NULL); - udev_ctx = udev_new(); - if (!udev_ctx) { - usbi_err(NULL, "could not create udev context"); - goto err; - } - - udev_monitor = udev_monitor_new_from_netlink(udev_ctx, "udev"); - if (!udev_monitor) { - usbi_err(NULL, "could not initialize udev monitor"); - goto err_free_ctx; - } - - r = udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "usb", "usb_device"); - if (r) { - usbi_err(NULL, "could not initialize udev monitor filter for \"usb\" subsystem"); - goto err_free_monitor; - } - - if (udev_monitor_enable_receiving(udev_monitor)) { - usbi_err(NULL, "failed to enable the udev monitor"); - goto err_free_monitor; - } - - udev_monitor_fd = udev_monitor_get_fd(udev_monitor); - - /* Some older versions of udev are not non-blocking by default, - * so make sure this is set */ - r = fcntl(udev_monitor_fd, F_GETFL); - if (r == -1) { - usbi_err(NULL, "getting udev monitor fd flags (%d)", errno); - goto err_free_monitor; - } - r = fcntl(udev_monitor_fd, F_SETFL, r | O_NONBLOCK); - if (r) { - usbi_err(NULL, "setting udev monitor fd flags (%d)", errno); - goto err_free_monitor; - } - - r = usbi_pipe(udev_control_pipe); - if (r) { - usbi_err(NULL, "could not create udev control pipe"); - goto err_free_monitor; - } - - r = pthread_create(&linux_event_thread, NULL, linux_udev_event_thread_main, NULL); - if (r) { - usbi_err(NULL, "creating hotplug event thread (%d)", r); - goto err_close_pipe; - } - - return LIBUSB_SUCCESS; - -err_close_pipe: - close(udev_control_pipe[0]); - close(udev_control_pipe[1]); -err_free_monitor: - udev_monitor_unref(udev_monitor); - udev_monitor = NULL; - udev_monitor_fd = -1; -err_free_ctx: - udev_unref(udev_ctx); -err: - udev_ctx = NULL; - return LIBUSB_ERROR_OTHER; -} - -int linux_udev_stop_event_monitor(void) -{ - char dummy = 1; - int r; - - assert(udev_ctx != NULL); - assert(udev_monitor != NULL); - assert(udev_monitor_fd != -1); - - /* Write some dummy data to the control pipe and - * wait for the thread to exit */ - r = usbi_write(udev_control_pipe[1], &dummy, sizeof(dummy)); - if (r <= 0) { - usbi_warn(NULL, "udev control pipe signal failed"); - } - pthread_join(linux_event_thread, NULL); - - /* Release the udev monitor */ - udev_monitor_unref(udev_monitor); - udev_monitor = NULL; - udev_monitor_fd = -1; - - /* Clean up the udev context */ - udev_unref(udev_ctx); - udev_ctx = NULL; - - /* close and reset control pipe */ - close(udev_control_pipe[0]); - close(udev_control_pipe[1]); - udev_control_pipe[0] = -1; - udev_control_pipe[1] = -1; - - return LIBUSB_SUCCESS; -} - -static void *linux_udev_event_thread_main(void *arg) -{ - char dummy; - int r; - struct udev_device* udev_dev; - struct pollfd fds[] = { - {.fd = udev_control_pipe[0], - .events = POLLIN}, - {.fd = udev_monitor_fd, - .events = POLLIN}, - }; - - usbi_dbg("udev event thread entering."); - - while ((r = poll(fds, 2, -1)) >= 0 || errno == EINTR) { - if (r < 0) { - /* temporary failure */ - continue; - } - if (fds[0].revents & POLLIN) { - /* activity on control pipe, read the byte and exit */ - r = usbi_read(udev_control_pipe[0], &dummy, sizeof(dummy)); - if (r <= 0) { - usbi_warn(NULL, "udev control pipe read failed"); - } - break; - } - if (fds[1].revents & POLLIN) { - usbi_mutex_static_lock(&linux_hotplug_lock); - udev_dev = udev_monitor_receive_device(udev_monitor); - if (udev_dev) - udev_hotplug_event(udev_dev); - usbi_mutex_static_unlock(&linux_hotplug_lock); - } - } - - usbi_dbg("udev event thread exiting"); - - return NULL; -} - -static int udev_device_info(struct libusb_context *ctx, int detached, - struct udev_device *udev_dev, uint8_t *busnum, - uint8_t *devaddr, const char **sys_name) { - const char *dev_node; - - dev_node = udev_device_get_devnode(udev_dev); - if (!dev_node) { - return LIBUSB_ERROR_OTHER; - } - - *sys_name = udev_device_get_sysname(udev_dev); - if (!*sys_name) { - return LIBUSB_ERROR_OTHER; - } - - return linux_get_device_address(ctx, detached, busnum, devaddr, - dev_node, *sys_name); -} - -static void udev_hotplug_event(struct udev_device* udev_dev) -{ - const char* udev_action; - const char* sys_name = NULL; - uint8_t busnum = 0, devaddr = 0; - int detached; - int r; - - do { - udev_action = udev_device_get_action(udev_dev); - if (!udev_action) { - break; - } - - detached = !strncmp(udev_action, "remove", 6); - - r = udev_device_info(NULL, detached, udev_dev, &busnum, &devaddr, &sys_name); - if (LIBUSB_SUCCESS != r) { - break; - } - - usbi_dbg("udev hotplug event. action: %s.", udev_action); - - if (strncmp(udev_action, "add", 3) == 0) { - linux_hotplug_enumerate(busnum, devaddr, sys_name); - } else if (detached) { - linux_device_disconnected(busnum, devaddr); - } else { - usbi_err(NULL, "ignoring udev action %s", udev_action); - } - } while (0); - - udev_device_unref(udev_dev); -} - -int linux_udev_scan_devices(struct libusb_context *ctx) -{ - struct udev_enumerate *enumerator; - struct udev_list_entry *devices, *entry; - struct udev_device *udev_dev; - const char *sys_name; - int r; - - assert(udev_ctx != NULL); - - enumerator = udev_enumerate_new(udev_ctx); - if (NULL == enumerator) { - usbi_err(ctx, "error creating udev enumerator"); - return LIBUSB_ERROR_OTHER; - } - - udev_enumerate_add_match_subsystem(enumerator, "usb"); - udev_enumerate_add_match_property(enumerator, "DEVTYPE", "usb_device"); - udev_enumerate_scan_devices(enumerator); - devices = udev_enumerate_get_list_entry(enumerator); - - udev_list_entry_foreach(entry, devices) { - const char *path = udev_list_entry_get_name(entry); - uint8_t busnum = 0, devaddr = 0; - - udev_dev = udev_device_new_from_syspath(udev_ctx, path); - - r = udev_device_info(ctx, 0, udev_dev, &busnum, &devaddr, &sys_name); - if (r) { - udev_device_unref(udev_dev); - continue; - } - - linux_enumerate_device(ctx, busnum, devaddr, sys_name); - udev_device_unref(udev_dev); - } - - udev_enumerate_unref(enumerator); - - return LIBUSB_SUCCESS; -} - -void linux_udev_hotplug_poll(void) -{ - struct udev_device* udev_dev; - - usbi_mutex_static_lock(&linux_hotplug_lock); - do { - udev_dev = udev_monitor_receive_device(udev_monitor); - if (udev_dev) { - usbi_dbg("Handling hotplug event from hotplug_poll"); - udev_hotplug_event(udev_dev); - } - } while (udev_dev); - usbi_mutex_static_unlock(&linux_hotplug_lock); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.c deleted file mode 100644 index 6b89ba28..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.c +++ /dev/null @@ -1,2738 +0,0 @@ -/* -*- Mode: C; c-basic-offset:8 ; indent-tabs-mode:t -*- */ -/* - * Linux usbfs backend for libusb - * Copyright © 2007-2009 Daniel Drake - * Copyright © 2001 Johannes Erdfelt - * Copyright © 2013 Nathan Hjelm - * Copyright © 2012-2013 Hans de Goede - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libusbi.h" -#include "linux_usbfs.h" - -/* sysfs vs usbfs: - * opening a usbfs node causes the device to be resumed, so we attempt to - * avoid this during enumeration. - * - * sysfs allows us to read the kernel's in-memory copies of device descriptors - * and so forth, avoiding the need to open the device: - * - The binary "descriptors" file contains all config descriptors since - * 2.6.26, commit 217a9081d8e69026186067711131b77f0ce219ed - * - The binary "descriptors" file was added in 2.6.23, commit - * 69d42a78f935d19384d1f6e4f94b65bb162b36df, but it only contains the - * active config descriptors - * - The "busnum" file was added in 2.6.22, commit - * 83f7d958eab2fbc6b159ee92bf1493924e1d0f72 - * - The "devnum" file has been present since pre-2.6.18 - * - the "bConfigurationValue" file has been present since pre-2.6.18 - * - * If we have bConfigurationValue, busnum, and devnum, then we can determine - * the active configuration without having to open the usbfs node in RDWR mode. - * The busnum file is important as that is the only way we can relate sysfs - * devices to usbfs nodes. - * - * If we also have all descriptors, we can obtain the device descriptor and - * configuration without touching usbfs at all. - */ - -/* endianness for multi-byte fields: - * - * Descriptors exposed by usbfs have the multi-byte fields in the device - * descriptor as host endian. Multi-byte fields in the other descriptors are - * bus-endian. The kernel documentation says otherwise, but it is wrong. - * - * In sysfs all descriptors are bus-endian. - */ - -static const char *usbfs_path = NULL; - -/* use usbdev*.* device names in /dev instead of the usbfs bus directories */ -static int usbdev_names = 0; - -/* Linux 2.6.32 adds support for a bulk continuation URB flag. this basically - * allows us to mark URBs as being part of a specific logical transfer when - * we submit them to the kernel. then, on any error except a cancellation, all - * URBs within that transfer will be cancelled and no more URBs will be - * accepted for the transfer, meaning that no more data can creep in. - * - * The BULK_CONTINUATION flag must be set on all URBs within a bulk transfer - * (in either direction) except the first. - * For IN transfers, we must also set SHORT_NOT_OK on all URBs except the - * last; it means that the kernel should treat a short reply as an error. - * For OUT transfers, SHORT_NOT_OK must not be set. it isn't needed (OUT - * transfers can't be short unless there's already some sort of error), and - * setting this flag is disallowed (a kernel with USB debugging enabled will - * reject such URBs). - */ -static int supports_flag_bulk_continuation = -1; - -/* Linux 2.6.31 fixes support for the zero length packet URB flag. This - * allows us to mark URBs that should be followed by a zero length data - * packet, which can be required by device- or class-specific protocols. - */ -static int supports_flag_zero_packet = -1; - -/* clock ID for monotonic clock, as not all clock sources are available on all - * systems. appropriate choice made at initialization time. */ -static clockid_t monotonic_clkid = -1; - -/* Linux 2.6.22 (commit 83f7d958eab2fbc6b159ee92bf1493924e1d0f72) adds a busnum - * to sysfs, so we can relate devices. This also implies that we can read - * the active configuration through bConfigurationValue */ -static int sysfs_can_relate_devices = -1; - -/* Linux 2.6.26 (commit 217a9081d8e69026186067711131b77f0ce219ed) adds all - * config descriptors (rather then just the active config) to the sysfs - * descriptors file, so from then on we can use them. */ -static int sysfs_has_descriptors = -1; - -/* how many times have we initted (and not exited) ? */ -static int init_count = 0; - -/* Serialize hotplug start/stop */ -static usbi_mutex_static_t linux_hotplug_startstop_lock = USBI_MUTEX_INITIALIZER; -/* Serialize scan-devices, event-thread, and poll */ -usbi_mutex_static_t linux_hotplug_lock = USBI_MUTEX_INITIALIZER; - -static int linux_start_event_monitor(void); -static int linux_stop_event_monitor(void); -static int linux_scan_devices(struct libusb_context *ctx); -static int sysfs_scan_device(struct libusb_context *ctx, const char *devname); -static int detach_kernel_driver_and_claim(struct libusb_device_handle *, int); - -#if !defined(USE_UDEV) -static int linux_default_scan_devices (struct libusb_context *ctx); -#endif - -struct linux_device_priv { - char *sysfs_dir; - unsigned char *descriptors; - int descriptors_len; - int active_config; /* cache val for !sysfs_can_relate_devices */ -}; - -struct linux_device_handle_priv { - int fd; - int fd_removed; - uint32_t caps; -}; - -enum reap_action { - NORMAL = 0, - /* submission failed after the first URB, so await cancellation/completion - * of all the others */ - SUBMIT_FAILED, - - /* cancelled by user or timeout */ - CANCELLED, - - /* completed multi-URB transfer in non-final URB */ - COMPLETED_EARLY, - - /* one or more urbs encountered a low-level error */ - ERROR, -}; - -struct linux_transfer_priv { - union { - struct usbfs_urb *urbs; - struct usbfs_urb **iso_urbs; - }; - - enum reap_action reap_action; - int num_urbs; - int num_retired; - enum libusb_transfer_status reap_status; - - /* next iso packet in user-supplied transfer to be populated */ - int iso_packet_offset; -}; - -static int _get_usbfs_fd(struct libusb_device *dev, mode_t mode, int silent) -{ - struct libusb_context *ctx = DEVICE_CTX(dev); - char path[PATH_MAX]; - int fd; - int delay = 10000; - - if (usbdev_names) - snprintf(path, PATH_MAX, "%s/usbdev%d.%d", - usbfs_path, dev->bus_number, dev->device_address); - else - snprintf(path, PATH_MAX, "%s/%03d/%03d", - usbfs_path, dev->bus_number, dev->device_address); - - fd = open(path, mode); - if (fd != -1) - return fd; /* Success */ - - if (errno == ENOENT) { - if (!silent) - usbi_err(ctx, "File doesn't exist, wait %d ms and try again", delay/1000); - - /* Wait 10ms for USB device path creation.*/ - nanosleep(&(struct timespec){delay / 1000000, (delay * 1000) % 1000000000UL}, NULL); - - fd = open(path, mode); - if (fd != -1) - return fd; /* Success */ - } - - if (!silent) { - usbi_err(ctx, "libusb couldn't open USB device %s: %s", - path, strerror(errno)); - if (errno == EACCES && mode == O_RDWR) - usbi_err(ctx, "libusb requires write access to USB " - "device nodes."); - } - - if (errno == EACCES) - return LIBUSB_ERROR_ACCESS; - if (errno == ENOENT) - return LIBUSB_ERROR_NO_DEVICE; - return LIBUSB_ERROR_IO; -} - -static struct linux_device_priv *_device_priv(struct libusb_device *dev) -{ - return (struct linux_device_priv *) dev->os_priv; -} - -static struct linux_device_handle_priv *_device_handle_priv( - struct libusb_device_handle *handle) -{ - return (struct linux_device_handle_priv *) handle->os_priv; -} - -/* check dirent for a /dev/usbdev%d.%d name - * optionally return bus/device on success */ -static int _is_usbdev_entry(struct dirent *entry, int *bus_p, int *dev_p) -{ - int busnum, devnum; - - if (sscanf(entry->d_name, "usbdev%d.%d", &busnum, &devnum) != 2) - return 0; - - usbi_dbg("found: %s", entry->d_name); - if (bus_p != NULL) - *bus_p = busnum; - if (dev_p != NULL) - *dev_p = devnum; - return 1; -} - -static int check_usb_vfs(const char *dirname) -{ - DIR *dir; - struct dirent *entry; - int found = 0; - - dir = opendir(dirname); - if (!dir) - return 0; - - while ((entry = readdir(dir)) != NULL) { - if (entry->d_name[0] == '.') - continue; - - /* We assume if we find any files that it must be the right place */ - found = 1; - break; - } - - closedir(dir); - return found; -} - -static const char *find_usbfs_path(void) -{ - const char *path = "/dev/bus/usb"; - const char *ret = NULL; - - if (check_usb_vfs(path)) { - ret = path; - } else { - path = "/proc/bus/usb"; - if (check_usb_vfs(path)) - ret = path; - } - - /* look for /dev/usbdev*.* if the normal places fail */ - if (ret == NULL) { - struct dirent *entry; - DIR *dir; - - path = "/dev"; - dir = opendir(path); - if (dir != NULL) { - while ((entry = readdir(dir)) != NULL) { - if (_is_usbdev_entry(entry, NULL, NULL)) { - /* found one; that's enough */ - ret = path; - usbdev_names = 1; - break; - } - } - closedir(dir); - } - } - -/* On udev based systems without any usb-devices /dev/bus/usb will not - * exist. So if we've not found anything and we're using udev for hotplug - * simply assume /dev/bus/usb rather then making libusb_init fail. */ -#if defined(USE_UDEV) - if (ret == NULL) - ret = "/dev/bus/usb"; -#endif - - if (ret != NULL) - usbi_dbg("found usbfs at %s", ret); - - return ret; -} - -/* the monotonic clock is not usable on all systems (e.g. embedded ones often - * seem to lack it). fall back to REALTIME if we have to. */ -static clockid_t find_monotonic_clock(void) -{ -#ifdef CLOCK_MONOTONIC - struct timespec ts; - int r; - - /* Linux 2.6.28 adds CLOCK_MONOTONIC_RAW but we don't use it - * because it's not available through timerfd */ - r = clock_gettime(CLOCK_MONOTONIC, &ts); - if (r == 0) - return CLOCK_MONOTONIC; - usbi_dbg("monotonic clock doesn't work, errno %d", errno); -#endif - - return CLOCK_REALTIME; -} - -static int kernel_version_ge(int major, int minor, int sublevel) -{ - struct utsname uts; - int atoms, kmajor, kminor, ksublevel; - - if (uname(&uts) < 0) - return -1; - atoms = sscanf(uts.release, "%d.%d.%d", &kmajor, &kminor, &ksublevel); - if (atoms < 1) - return -1; - - if (kmajor > major) - return 1; - if (kmajor < major) - return 0; - - /* kmajor == major */ - if (atoms < 2) - return 0 == minor && 0 == sublevel; - if (kminor > minor) - return 1; - if (kminor < minor) - return 0; - - /* kminor == minor */ - if (atoms < 3) - return 0 == sublevel; - - return ksublevel >= sublevel; -} - -static int op_init(struct libusb_context *ctx) -{ - struct stat statbuf; - int r; - - usbfs_path = find_usbfs_path(); - if (!usbfs_path) { - usbi_err(ctx, "could not find usbfs"); - return LIBUSB_ERROR_OTHER; - } - - if (monotonic_clkid == -1) - monotonic_clkid = find_monotonic_clock(); - - if (supports_flag_bulk_continuation == -1) { - /* bulk continuation URB flag available from Linux 2.6.32 */ - supports_flag_bulk_continuation = kernel_version_ge(2,6,32); - if (supports_flag_bulk_continuation == -1) { - usbi_err(ctx, "error checking for bulk continuation support"); - return LIBUSB_ERROR_OTHER; - } - } - - if (supports_flag_bulk_continuation) - usbi_dbg("bulk continuation flag supported"); - - if (-1 == supports_flag_zero_packet) { - /* zero length packet URB flag fixed since Linux 2.6.31 */ - supports_flag_zero_packet = kernel_version_ge(2,6,31); - if (-1 == supports_flag_zero_packet) { - usbi_err(ctx, "error checking for zero length packet support"); - return LIBUSB_ERROR_OTHER; - } - } - - if (supports_flag_zero_packet) - usbi_dbg("zero length packet flag supported"); - - if (-1 == sysfs_has_descriptors) { - /* sysfs descriptors has all descriptors since Linux 2.6.26 */ - sysfs_has_descriptors = kernel_version_ge(2,6,26); - if (-1 == sysfs_has_descriptors) { - usbi_err(ctx, "error checking for sysfs descriptors"); - return LIBUSB_ERROR_OTHER; - } - } - - if (-1 == sysfs_can_relate_devices) { - /* sysfs has busnum since Linux 2.6.22 */ - sysfs_can_relate_devices = kernel_version_ge(2,6,22); - if (-1 == sysfs_can_relate_devices) { - usbi_err(ctx, "error checking for sysfs busnum"); - return LIBUSB_ERROR_OTHER; - } - } - - if (sysfs_can_relate_devices || sysfs_has_descriptors) { - r = stat(SYSFS_DEVICE_PATH, &statbuf); - if (r != 0 || !S_ISDIR(statbuf.st_mode)) { - usbi_warn(ctx, "sysfs not mounted"); - sysfs_can_relate_devices = 0; - sysfs_has_descriptors = 0; - } - } - - if (sysfs_can_relate_devices) - usbi_dbg("sysfs can relate devices"); - - if (sysfs_has_descriptors) - usbi_dbg("sysfs has complete descriptors"); - - usbi_mutex_static_lock(&linux_hotplug_startstop_lock); - r = LIBUSB_SUCCESS; - if (init_count == 0) { - /* start up hotplug event handler */ - r = linux_start_event_monitor(); - } - if (r == LIBUSB_SUCCESS) { - r = linux_scan_devices(ctx); - if (r == LIBUSB_SUCCESS) - init_count++; - else if (init_count == 0) - linux_stop_event_monitor(); - } else - usbi_err(ctx, "error starting hotplug event monitor"); - usbi_mutex_static_unlock(&linux_hotplug_startstop_lock); - - return r; -} - -static void op_exit(void) -{ - usbi_mutex_static_lock(&linux_hotplug_startstop_lock); - assert(init_count != 0); - if (!--init_count) { - /* tear down event handler */ - (void)linux_stop_event_monitor(); - } - usbi_mutex_static_unlock(&linux_hotplug_startstop_lock); -} - -static int linux_start_event_monitor(void) -{ -#if defined(USE_UDEV) - return linux_udev_start_event_monitor(); -#else - return linux_netlink_start_event_monitor(); -#endif -} - -static int linux_stop_event_monitor(void) -{ -#if defined(USE_UDEV) - return linux_udev_stop_event_monitor(); -#else - return linux_netlink_stop_event_monitor(); -#endif -} - -static int linux_scan_devices(struct libusb_context *ctx) -{ - int ret; - - usbi_mutex_static_lock(&linux_hotplug_lock); - -#if defined(USE_UDEV) - ret = linux_udev_scan_devices(ctx); -#else - ret = linux_default_scan_devices(ctx); -#endif - - usbi_mutex_static_unlock(&linux_hotplug_lock); - - return ret; -} - -static void op_hotplug_poll(void) -{ -#if defined(USE_UDEV) - linux_udev_hotplug_poll(); -#else - linux_netlink_hotplug_poll(); -#endif -} - -static int _open_sysfs_attr(struct libusb_device *dev, const char *attr) -{ - struct linux_device_priv *priv = _device_priv(dev); - char filename[PATH_MAX]; - int fd; - - snprintf(filename, PATH_MAX, "%s/%s/%s", - SYSFS_DEVICE_PATH, priv->sysfs_dir, attr); - fd = open(filename, O_RDONLY); - if (fd < 0) { - usbi_err(DEVICE_CTX(dev), - "open %s failed ret=%d errno=%d", filename, fd, errno); - return LIBUSB_ERROR_IO; - } - - return fd; -} - -/* Note only suitable for attributes which always read >= 0, < 0 is error */ -static int __read_sysfs_attr(struct libusb_context *ctx, - const char *devname, const char *attr) -{ - char filename[PATH_MAX]; - FILE *f; - int r, value; - - snprintf(filename, PATH_MAX, "%s/%s/%s", SYSFS_DEVICE_PATH, - devname, attr); - f = fopen(filename, "r"); - if (f == NULL) { - if (errno == ENOENT) { - /* File doesn't exist. Assume the device has been - disconnected (see trac ticket #70). */ - return LIBUSB_ERROR_NO_DEVICE; - } - usbi_err(ctx, "open %s failed errno=%d", filename, errno); - return LIBUSB_ERROR_IO; - } - - r = fscanf(f, "%d", &value); - fclose(f); - if (r != 1) { - usbi_err(ctx, "fscanf %s returned %d, errno=%d", attr, r, errno); - return LIBUSB_ERROR_NO_DEVICE; /* For unplug race (trac #70) */ - } - if (value < 0) { - usbi_err(ctx, "%s contains a negative value", filename); - return LIBUSB_ERROR_IO; - } - - return value; -} - -static int op_get_device_descriptor(struct libusb_device *dev, - unsigned char *buffer, int *host_endian) -{ - struct linux_device_priv *priv = _device_priv(dev); - - *host_endian = sysfs_has_descriptors ? 0 : 1; - memcpy(buffer, priv->descriptors, DEVICE_DESC_LENGTH); - - return 0; -} - -/* read the bConfigurationValue for a device */ -static int sysfs_get_active_config(struct libusb_device *dev, int *config) -{ - char *endptr; - char tmp[5] = {0, 0, 0, 0, 0}; - long num; - int fd; - ssize_t r; - - fd = _open_sysfs_attr(dev, "bConfigurationValue"); - if (fd < 0) - return fd; - - r = read(fd, tmp, sizeof(tmp)); - close(fd); - if (r < 0) { - usbi_err(DEVICE_CTX(dev), - "read bConfigurationValue failed ret=%d errno=%d", r, errno); - return LIBUSB_ERROR_IO; - } else if (r == 0) { - usbi_dbg("device unconfigured"); - *config = -1; - return 0; - } - - if (tmp[sizeof(tmp) - 1] != 0) { - usbi_err(DEVICE_CTX(dev), "not null-terminated?"); - return LIBUSB_ERROR_IO; - } else if (tmp[0] == 0) { - usbi_err(DEVICE_CTX(dev), "no configuration value?"); - return LIBUSB_ERROR_IO; - } - - num = strtol(tmp, &endptr, 10); - if (endptr == tmp) { - usbi_err(DEVICE_CTX(dev), "error converting '%s' to integer", tmp); - return LIBUSB_ERROR_IO; - } - - *config = (int) num; - return 0; -} - -int linux_get_device_address (struct libusb_context *ctx, int detached, - uint8_t *busnum, uint8_t *devaddr,const char *dev_node, - const char *sys_name) -{ - int sysfs_attr; - - usbi_dbg("getting address for device: %s detached: %d", sys_name, detached); - /* can't use sysfs to read the bus and device number if the - * device has been detached */ - if (!sysfs_can_relate_devices || detached || NULL == sys_name) { - if (NULL == dev_node) { - return LIBUSB_ERROR_OTHER; - } - - /* will this work with all supported kernel versions? */ - if (!strncmp(dev_node, "/dev/bus/usb", 12)) { - sscanf (dev_node, "/dev/bus/usb/%hhu/%hhu", busnum, devaddr); - } else if (!strncmp(dev_node, "/proc/bus/usb", 13)) { - sscanf (dev_node, "/proc/bus/usb/%hhu/%hhu", busnum, devaddr); - } - - return LIBUSB_SUCCESS; - } - - usbi_dbg("scan %s", sys_name); - - sysfs_attr = __read_sysfs_attr(ctx, sys_name, "busnum"); - if (0 > sysfs_attr) - return sysfs_attr; - if (sysfs_attr > 255) - return LIBUSB_ERROR_INVALID_PARAM; - *busnum = (uint8_t) sysfs_attr; - - sysfs_attr = __read_sysfs_attr(ctx, sys_name, "devnum"); - if (0 > sysfs_attr) - return sysfs_attr; - if (sysfs_attr > 255) - return LIBUSB_ERROR_INVALID_PARAM; - - *devaddr = (uint8_t) sysfs_attr; - - usbi_dbg("bus=%d dev=%d", *busnum, *devaddr); - - return LIBUSB_SUCCESS; -} - -/* Return offset of the next descriptor with the given type */ -static int seek_to_next_descriptor(struct libusb_context *ctx, - uint8_t descriptor_type, unsigned char *buffer, int size) -{ - struct usb_descriptor_header header; - int i; - - for (i = 0; size >= 0; i += header.bLength, size -= header.bLength) { - if (size == 0) - return LIBUSB_ERROR_NOT_FOUND; - - if (size < 2) { - usbi_err(ctx, "short descriptor read %d/2", size); - return LIBUSB_ERROR_IO; - } - usbi_parse_descriptor(buffer + i, "bb", &header, 0); - - if (i && header.bDescriptorType == descriptor_type) - return i; - } - usbi_err(ctx, "bLength overflow by %d bytes", -size); - return LIBUSB_ERROR_IO; -} - -/* Return offset to next config */ -static int seek_to_next_config(struct libusb_context *ctx, - unsigned char *buffer, int size) -{ - struct libusb_config_descriptor config; - - if (size == 0) - return LIBUSB_ERROR_NOT_FOUND; - - if (size < LIBUSB_DT_CONFIG_SIZE) { - usbi_err(ctx, "short descriptor read %d/%d", - size, LIBUSB_DT_CONFIG_SIZE); - return LIBUSB_ERROR_IO; - } - - usbi_parse_descriptor(buffer, "bbwbbbbb", &config, 0); - if (config.bDescriptorType != LIBUSB_DT_CONFIG) { - usbi_err(ctx, "descriptor is not a config desc (type 0x%02x)", - config.bDescriptorType); - return LIBUSB_ERROR_IO; - } - - /* - * In usbfs the config descriptors are config.wTotalLength bytes apart, - * with any short reads from the device appearing as holes in the file. - * - * In sysfs wTotalLength is ignored, instead the kernel returns a - * config descriptor with verified bLength fields, with descriptors - * with an invalid bLength removed. - */ - if (sysfs_has_descriptors) { - int next = seek_to_next_descriptor(ctx, LIBUSB_DT_CONFIG, - buffer, size); - if (next == LIBUSB_ERROR_NOT_FOUND) - next = size; - if (next < 0) - return next; - - if (next != config.wTotalLength) - usbi_warn(ctx, "config length mismatch wTotalLength " - "%d real %d", config.wTotalLength, next); - return next; - } else { - if (config.wTotalLength < LIBUSB_DT_CONFIG_SIZE) { - usbi_err(ctx, "invalid wTotalLength %d", - config.wTotalLength); - return LIBUSB_ERROR_IO; - } else if (config.wTotalLength > size) { - usbi_warn(ctx, "short descriptor read %d/%d", - size, config.wTotalLength); - return size; - } else - return config.wTotalLength; - } -} - -static int op_get_config_descriptor_by_value(struct libusb_device *dev, - uint8_t value, unsigned char **buffer, int *host_endian) -{ - struct libusb_context *ctx = DEVICE_CTX(dev); - struct linux_device_priv *priv = _device_priv(dev); - unsigned char *descriptors = priv->descriptors; - int size = priv->descriptors_len; - struct libusb_config_descriptor *config; - - *buffer = NULL; - /* Unlike the device desc. config descs. are always in raw format */ - *host_endian = 0; - - /* Skip device header */ - descriptors += DEVICE_DESC_LENGTH; - size -= DEVICE_DESC_LENGTH; - - /* Seek till the config is found, or till "EOF" */ - while (1) { - int next = seek_to_next_config(ctx, descriptors, size); - if (next < 0) - return next; - config = (struct libusb_config_descriptor *)descriptors; - if (config->bConfigurationValue == value) { - *buffer = descriptors; - return next; - } - size -= next; - descriptors += next; - } -} - -static int op_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buffer, size_t len, int *host_endian) -{ - int r, config; - unsigned char *config_desc; - - if (sysfs_can_relate_devices) { - r = sysfs_get_active_config(dev, &config); - if (r < 0) - return r; - } else { - /* Use cached bConfigurationValue */ - struct linux_device_priv *priv = _device_priv(dev); - config = priv->active_config; - } - if (config == -1) - return LIBUSB_ERROR_NOT_FOUND; - - r = op_get_config_descriptor_by_value(dev, config, &config_desc, - host_endian); - if (r < 0) - return r; - - len = MIN(len, r); - memcpy(buffer, config_desc, len); - return len; -} - -static int op_get_config_descriptor(struct libusb_device *dev, - uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) -{ - struct linux_device_priv *priv = _device_priv(dev); - unsigned char *descriptors = priv->descriptors; - int i, r, size = priv->descriptors_len; - - /* Unlike the device desc. config descs. are always in raw format */ - *host_endian = 0; - - /* Skip device header */ - descriptors += DEVICE_DESC_LENGTH; - size -= DEVICE_DESC_LENGTH; - - /* Seek till the config is found, or till "EOF" */ - for (i = 0; ; i++) { - r = seek_to_next_config(DEVICE_CTX(dev), descriptors, size); - if (r < 0) - return r; - if (i == config_index) - break; - size -= r; - descriptors += r; - } - - len = MIN(len, r); - memcpy(buffer, descriptors, len); - return len; -} - -/* send a control message to retrieve active configuration */ -static int usbfs_get_active_config(struct libusb_device *dev, int fd) -{ - struct linux_device_priv *priv = _device_priv(dev); - unsigned char active_config = 0; - int r; - - struct usbfs_ctrltransfer ctrl = { - .bmRequestType = LIBUSB_ENDPOINT_IN, - .bRequest = LIBUSB_REQUEST_GET_CONFIGURATION, - .wValue = 0, - .wIndex = 0, - .wLength = 1, - .timeout = 1000, - .data = &active_config - }; - - r = ioctl(fd, IOCTL_USBFS_CONTROL, &ctrl); - if (r < 0) { - if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - /* we hit this error path frequently with buggy devices :( */ - usbi_warn(DEVICE_CTX(dev), - "get_configuration failed ret=%d errno=%d", r, errno); - priv->active_config = -1; - } else { - if (active_config > 0) { - priv->active_config = active_config; - } else { - /* some buggy devices have a configuration 0, but we're - * reaching into the corner of a corner case here, so let's - * not support buggy devices in these circumstances. - * stick to the specs: a configuration value of 0 means - * unconfigured. */ - usbi_warn(DEVICE_CTX(dev), - "active cfg 0? assuming unconfigured device"); - priv->active_config = -1; - } - } - - return LIBUSB_SUCCESS; -} - -static int initialize_device(struct libusb_device *dev, uint8_t busnum, - uint8_t devaddr, const char *sysfs_dir) -{ - struct linux_device_priv *priv = _device_priv(dev); - struct libusb_context *ctx = DEVICE_CTX(dev); - int descriptors_size = 512; /* Begin with a 1024 byte alloc */ - int fd, speed; - ssize_t r; - - dev->bus_number = busnum; - dev->device_address = devaddr; - - if (sysfs_dir) { - priv->sysfs_dir = strdup(sysfs_dir); - if (!priv->sysfs_dir) - return LIBUSB_ERROR_NO_MEM; - - /* Note speed can contain 1.5, in this case __read_sysfs_attr - will stop parsing at the '.' and return 1 */ - speed = __read_sysfs_attr(DEVICE_CTX(dev), sysfs_dir, "speed"); - if (speed >= 0) { - switch (speed) { - case 1: dev->speed = LIBUSB_SPEED_LOW; break; - case 12: dev->speed = LIBUSB_SPEED_FULL; break; - case 480: dev->speed = LIBUSB_SPEED_HIGH; break; - case 5000: dev->speed = LIBUSB_SPEED_SUPER; break; - default: - usbi_warn(DEVICE_CTX(dev), "Unknown device speed: %d Mbps", speed); - } - } - } - - /* cache descriptors in memory */ - if (sysfs_has_descriptors) - fd = _open_sysfs_attr(dev, "descriptors"); - else - fd = _get_usbfs_fd(dev, O_RDONLY, 0); - if (fd < 0) - return fd; - - do { - descriptors_size *= 2; - priv->descriptors = usbi_reallocf(priv->descriptors, - descriptors_size); - if (!priv->descriptors) { - close(fd); - return LIBUSB_ERROR_NO_MEM; - } - /* usbfs has holes in the file */ - if (!sysfs_has_descriptors) { - memset(priv->descriptors + priv->descriptors_len, - 0, descriptors_size - priv->descriptors_len); - } - r = read(fd, priv->descriptors + priv->descriptors_len, - descriptors_size - priv->descriptors_len); - if (r < 0) { - usbi_err(ctx, "read descriptor failed ret=%d errno=%d", - fd, errno); - close(fd); - return LIBUSB_ERROR_IO; - } - priv->descriptors_len += r; - } while (priv->descriptors_len == descriptors_size); - - close(fd); - - if (priv->descriptors_len < DEVICE_DESC_LENGTH) { - usbi_err(ctx, "short descriptor read (%d)", - priv->descriptors_len); - return LIBUSB_ERROR_IO; - } - - if (sysfs_can_relate_devices) - return LIBUSB_SUCCESS; - - /* cache active config */ - fd = _get_usbfs_fd(dev, O_RDWR, 1); - if (fd < 0) { - /* cannot send a control message to determine the active - * config. just assume the first one is active. */ - usbi_warn(ctx, "Missing rw usbfs access; cannot determine " - "active configuration descriptor"); - if (priv->descriptors_len >= - (DEVICE_DESC_LENGTH + LIBUSB_DT_CONFIG_SIZE)) { - struct libusb_config_descriptor config; - usbi_parse_descriptor( - priv->descriptors + DEVICE_DESC_LENGTH, - "bbwbbbbb", &config, 0); - priv->active_config = config.bConfigurationValue; - } else - priv->active_config = -1; /* No config dt */ - - return LIBUSB_SUCCESS; - } - - r = usbfs_get_active_config(dev, fd); - close(fd); - - return r; -} - -static int linux_get_parent_info(struct libusb_device *dev, const char *sysfs_dir) -{ - struct libusb_context *ctx = DEVICE_CTX(dev); - struct libusb_device *it; - char *parent_sysfs_dir, *tmp; - int ret, add_parent = 1; - - /* XXX -- can we figure out the topology when using usbfs? */ - if (NULL == sysfs_dir || 0 == strncmp(sysfs_dir, "usb", 3)) { - /* either using usbfs or finding the parent of a root hub */ - return LIBUSB_SUCCESS; - } - - parent_sysfs_dir = strdup(sysfs_dir); - if (NULL == parent_sysfs_dir) { - return LIBUSB_ERROR_NO_MEM; - } - if (NULL != (tmp = strrchr(parent_sysfs_dir, '.')) || - NULL != (tmp = strrchr(parent_sysfs_dir, '-'))) { - dev->port_number = atoi(tmp + 1); - *tmp = '\0'; - } else { - usbi_warn(ctx, "Can not parse sysfs_dir: %s, no parent info", - parent_sysfs_dir); - free (parent_sysfs_dir); - return LIBUSB_SUCCESS; - } - - /* is the parent a root hub? */ - if (NULL == strchr(parent_sysfs_dir, '-')) { - tmp = parent_sysfs_dir; - ret = asprintf (&parent_sysfs_dir, "usb%s", tmp); - free (tmp); - if (0 > ret) { - return LIBUSB_ERROR_NO_MEM; - } - } - -retry: - /* find the parent in the context */ - usbi_mutex_lock(&ctx->usb_devs_lock); - list_for_each_entry(it, &ctx->usb_devs, list, struct libusb_device) { - struct linux_device_priv *priv = _device_priv(it); - if (priv->sysfs_dir) { - if (0 == strcmp (priv->sysfs_dir, parent_sysfs_dir)) { - dev->parent_dev = libusb_ref_device(it); - break; - } - } - } - usbi_mutex_unlock(&ctx->usb_devs_lock); - - if (!dev->parent_dev && add_parent) { - usbi_dbg("parent_dev %s not enumerated yet, enumerating now", - parent_sysfs_dir); - sysfs_scan_device(ctx, parent_sysfs_dir); - add_parent = 0; - goto retry; - } - - usbi_dbg("Dev %p (%s) has parent %p (%s) port %d", dev, sysfs_dir, - dev->parent_dev, parent_sysfs_dir, dev->port_number); - - free (parent_sysfs_dir); - - return LIBUSB_SUCCESS; -} - -int linux_enumerate_device(struct libusb_context *ctx, - uint8_t busnum, uint8_t devaddr, const char *sysfs_dir) -{ - unsigned long session_id; - struct libusb_device *dev; - int r = 0; - - /* FIXME: session ID is not guaranteed unique as addresses can wrap and - * will be reused. instead we should add a simple sysfs attribute with - * a session ID. */ - session_id = busnum << 8 | devaddr; - usbi_dbg("busnum %d devaddr %d session_id %ld", busnum, devaddr, - session_id); - - dev = usbi_get_device_by_session_id(ctx, session_id); - if (dev) { - /* device already exists in the context */ - usbi_dbg("session_id %ld already exists", session_id); - libusb_unref_device(dev); - return LIBUSB_SUCCESS; - } - - usbi_dbg("allocating new device for %d/%d (session %ld)", - busnum, devaddr, session_id); - dev = usbi_alloc_device(ctx, session_id); - if (!dev) - return LIBUSB_ERROR_NO_MEM; - - r = initialize_device(dev, busnum, devaddr, sysfs_dir); - if (r < 0) - goto out; - r = usbi_sanitize_device(dev); - if (r < 0) - goto out; - - r = linux_get_parent_info(dev, sysfs_dir); - if (r < 0) - goto out; -out: - if (r < 0) - libusb_unref_device(dev); - else - usbi_connect_device(dev); - - return r; -} - -void linux_hotplug_enumerate(uint8_t busnum, uint8_t devaddr, const char *sys_name) -{ - struct libusb_context *ctx; - - usbi_mutex_static_lock(&active_contexts_lock); - list_for_each_entry(ctx, &active_contexts_list, list, struct libusb_context) { - linux_enumerate_device(ctx, busnum, devaddr, sys_name); - } - usbi_mutex_static_unlock(&active_contexts_lock); -} - -void linux_device_disconnected(uint8_t busnum, uint8_t devaddr) -{ - struct libusb_context *ctx; - struct libusb_device *dev; - unsigned long session_id = busnum << 8 | devaddr; - - usbi_mutex_static_lock(&active_contexts_lock); - list_for_each_entry(ctx, &active_contexts_list, list, struct libusb_context) { - dev = usbi_get_device_by_session_id (ctx, session_id); - if (NULL != dev) { - usbi_disconnect_device (dev); - libusb_unref_device(dev); - } else { - usbi_dbg("device not found for session %x", session_id); - } - } - usbi_mutex_static_unlock(&active_contexts_lock); -} - -#if !defined(USE_UDEV) -/* open a bus directory and adds all discovered devices to the context */ -static int usbfs_scan_busdir(struct libusb_context *ctx, uint8_t busnum) -{ - DIR *dir; - char dirpath[PATH_MAX]; - struct dirent *entry; - int r = LIBUSB_ERROR_IO; - - snprintf(dirpath, PATH_MAX, "%s/%03d", usbfs_path, busnum); - usbi_dbg("%s", dirpath); - dir = opendir(dirpath); - if (!dir) { - usbi_err(ctx, "opendir '%s' failed, errno=%d", dirpath, errno); - /* FIXME: should handle valid race conditions like hub unplugged - * during directory iteration - this is not an error */ - return r; - } - - while ((entry = readdir(dir))) { - int devaddr; - - if (entry->d_name[0] == '.') - continue; - - devaddr = atoi(entry->d_name); - if (devaddr == 0) { - usbi_dbg("unknown dir entry %s", entry->d_name); - continue; - } - - if (linux_enumerate_device(ctx, busnum, (uint8_t) devaddr, NULL)) { - usbi_dbg("failed to enumerate dir entry %s", entry->d_name); - continue; - } - - r = 0; - } - - closedir(dir); - return r; -} - -static int usbfs_get_device_list(struct libusb_context *ctx) -{ - struct dirent *entry; - DIR *buses = opendir(usbfs_path); - int r = 0; - - if (!buses) { - usbi_err(ctx, "opendir buses failed errno=%d", errno); - return LIBUSB_ERROR_IO; - } - - while ((entry = readdir(buses))) { - int busnum; - - if (entry->d_name[0] == '.') - continue; - - if (usbdev_names) { - int devaddr; - if (!_is_usbdev_entry(entry, &busnum, &devaddr)) - continue; - - r = linux_enumerate_device(ctx, busnum, (uint8_t) devaddr, NULL); - if (r < 0) { - usbi_dbg("failed to enumerate dir entry %s", entry->d_name); - continue; - } - } else { - busnum = atoi(entry->d_name); - if (busnum == 0) { - usbi_dbg("unknown dir entry %s", entry->d_name); - continue; - } - - r = usbfs_scan_busdir(ctx, busnum); - if (r < 0) - break; - } - } - - closedir(buses); - return r; - -} -#endif - -static int sysfs_scan_device(struct libusb_context *ctx, const char *devname) -{ - uint8_t busnum, devaddr; - int ret; - - ret = linux_get_device_address (ctx, 0, &busnum, &devaddr, NULL, devname); - if (LIBUSB_SUCCESS != ret) { - return ret; - } - - return linux_enumerate_device(ctx, busnum & 0xff, devaddr & 0xff, - devname); -} - -#if !defined(USE_UDEV) -static int sysfs_get_device_list(struct libusb_context *ctx) -{ - DIR *devices = opendir(SYSFS_DEVICE_PATH); - struct dirent *entry; - int r = LIBUSB_ERROR_IO; - - if (!devices) { - usbi_err(ctx, "opendir devices failed errno=%d", errno); - return r; - } - - while ((entry = readdir(devices))) { - if ((!isdigit(entry->d_name[0]) && strncmp(entry->d_name, "usb", 3)) - || strchr(entry->d_name, ':')) - continue; - - if (sysfs_scan_device(ctx, entry->d_name)) { - usbi_dbg("failed to enumerate dir entry %s", entry->d_name); - continue; - } - - r = 0; - } - - closedir(devices); - return r; -} - -static int linux_default_scan_devices (struct libusb_context *ctx) -{ - /* we can retrieve device list and descriptors from sysfs or usbfs. - * sysfs is preferable, because if we use usbfs we end up resuming - * any autosuspended USB devices. however, sysfs is not available - * everywhere, so we need a usbfs fallback too. - * - * as described in the "sysfs vs usbfs" comment at the top of this - * file, sometimes we have sysfs but not enough information to - * relate sysfs devices to usbfs nodes. op_init() determines the - * adequacy of sysfs and sets sysfs_can_relate_devices. - */ - if (sysfs_can_relate_devices != 0) - return sysfs_get_device_list(ctx); - else - return usbfs_get_device_list(ctx); -} -#endif - -static int op_open(struct libusb_device_handle *handle) -{ - struct linux_device_handle_priv *hpriv = _device_handle_priv(handle); - int r; - - hpriv->fd = _get_usbfs_fd(handle->dev, O_RDWR, 0); - if (hpriv->fd < 0) { - if (hpriv->fd == LIBUSB_ERROR_NO_DEVICE) { - /* device will still be marked as attached if hotplug monitor thread - * hasn't processed remove event yet */ - usbi_mutex_static_lock(&linux_hotplug_lock); - if (handle->dev->attached) { - usbi_dbg("open failed with no device, but device still attached"); - linux_device_disconnected(handle->dev->bus_number, - handle->dev->device_address); - } - usbi_mutex_static_unlock(&linux_hotplug_lock); - } - return hpriv->fd; - } - - r = ioctl(hpriv->fd, IOCTL_USBFS_GET_CAPABILITIES, &hpriv->caps); - if (r < 0) { - if (errno == ENOTTY) - usbi_dbg("getcap not available"); - else - usbi_err(HANDLE_CTX(handle), "getcap failed (%d)", errno); - hpriv->caps = 0; - if (supports_flag_zero_packet) - hpriv->caps |= USBFS_CAP_ZERO_PACKET; - if (supports_flag_bulk_continuation) - hpriv->caps |= USBFS_CAP_BULK_CONTINUATION; - } - - r = usbi_add_pollfd(HANDLE_CTX(handle), hpriv->fd, POLLOUT); - if (r < 0) - close(hpriv->fd); - - return r; -} - -static void op_close(struct libusb_device_handle *dev_handle) -{ - struct linux_device_handle_priv *hpriv = _device_handle_priv(dev_handle); - /* fd may have already been removed by POLLERR condition in op_handle_events() */ - if (!hpriv->fd_removed) - usbi_remove_pollfd(HANDLE_CTX(dev_handle), hpriv->fd); - close(hpriv->fd); -} - -static int op_get_configuration(struct libusb_device_handle *handle, - int *config) -{ - int r; - - if (sysfs_can_relate_devices) { - r = sysfs_get_active_config(handle->dev, config); - } else { - r = usbfs_get_active_config(handle->dev, - _device_handle_priv(handle)->fd); - if (r == LIBUSB_SUCCESS) - *config = _device_priv(handle->dev)->active_config; - } - if (r < 0) - return r; - - if (*config == -1) { - usbi_err(HANDLE_CTX(handle), "device unconfigured"); - *config = 0; - } - - return 0; -} - -static int op_set_configuration(struct libusb_device_handle *handle, int config) -{ - struct linux_device_priv *priv = _device_priv(handle->dev); - int fd = _device_handle_priv(handle)->fd; - int r = ioctl(fd, IOCTL_USBFS_SETCONFIG, &config); - if (r) { - if (errno == EINVAL) - return LIBUSB_ERROR_NOT_FOUND; - else if (errno == EBUSY) - return LIBUSB_ERROR_BUSY; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), "failed, error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - - /* update our cached active config descriptor */ - priv->active_config = config; - - return LIBUSB_SUCCESS; -} - -static int claim_interface(struct libusb_device_handle *handle, int iface) -{ - int fd = _device_handle_priv(handle)->fd; - int r = ioctl(fd, IOCTL_USBFS_CLAIMINTF, &iface); - if (r) { - if (errno == ENOENT) - return LIBUSB_ERROR_NOT_FOUND; - else if (errno == EBUSY) - return LIBUSB_ERROR_BUSY; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "claim interface failed, error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - return 0; -} - -static int release_interface(struct libusb_device_handle *handle, int iface) -{ - int fd = _device_handle_priv(handle)->fd; - int r = ioctl(fd, IOCTL_USBFS_RELEASEINTF, &iface); - if (r) { - if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "release interface failed, error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - return 0; -} - -static int op_set_interface(struct libusb_device_handle *handle, int iface, - int altsetting) -{ - int fd = _device_handle_priv(handle)->fd; - struct usbfs_setinterface setintf; - int r; - - setintf.interface = iface; - setintf.altsetting = altsetting; - r = ioctl(fd, IOCTL_USBFS_SETINTF, &setintf); - if (r) { - if (errno == EINVAL) - return LIBUSB_ERROR_NOT_FOUND; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "setintf failed error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - - return 0; -} - -static int op_clear_halt(struct libusb_device_handle *handle, - unsigned char endpoint) -{ - int fd = _device_handle_priv(handle)->fd; - unsigned int _endpoint = endpoint; - int r = ioctl(fd, IOCTL_USBFS_CLEAR_HALT, &_endpoint); - if (r) { - if (errno == ENOENT) - return LIBUSB_ERROR_NOT_FOUND; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "clear_halt failed error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - - return 0; -} - -static int op_reset_device(struct libusb_device_handle *handle) -{ - int fd = _device_handle_priv(handle)->fd; - int i, r, ret = 0; - - /* Doing a device reset will cause the usbfs driver to get unbound - from any interfaces it is bound to. By voluntarily unbinding - the usbfs driver ourself, we stop the kernel from rebinding - the interface after reset (which would end up with the interface - getting bound to the in kernel driver if any). */ - for (i = 0; i < USB_MAXINTERFACES; i++) { - if (handle->claimed_interfaces & (1L << i)) { - release_interface(handle, i); - } - } - - usbi_mutex_lock(&handle->lock); - r = ioctl(fd, IOCTL_USBFS_RESET, NULL); - if (r) { - if (errno == ENODEV) { - ret = LIBUSB_ERROR_NOT_FOUND; - goto out; - } - - usbi_err(HANDLE_CTX(handle), - "reset failed error %d errno %d", r, errno); - ret = LIBUSB_ERROR_OTHER; - goto out; - } - - /* And re-claim any interfaces which were claimed before the reset */ - for (i = 0; i < USB_MAXINTERFACES; i++) { - if (handle->claimed_interfaces & (1L << i)) { - /* - * A driver may have completed modprobing during - * IOCTL_USBFS_RESET, and bound itself as soon as - * IOCTL_USBFS_RESET released the device lock - */ - r = detach_kernel_driver_and_claim(handle, i); - if (r) { - usbi_warn(HANDLE_CTX(handle), - "failed to re-claim interface %d after reset: %s", - i, libusb_error_name(r)); - handle->claimed_interfaces &= ~(1L << i); - ret = LIBUSB_ERROR_NOT_FOUND; - } - } - } -out: - usbi_mutex_unlock(&handle->lock); - return ret; -} - -static int do_streams_ioctl(struct libusb_device_handle *handle, long req, - uint32_t num_streams, unsigned char *endpoints, int num_endpoints) -{ - int r, fd = _device_handle_priv(handle)->fd; - struct usbfs_streams *streams; - - if (num_endpoints > 30) /* Max 15 in + 15 out eps */ - return LIBUSB_ERROR_INVALID_PARAM; - - streams = malloc(sizeof(struct usbfs_streams) + num_endpoints); - if (!streams) - return LIBUSB_ERROR_NO_MEM; - - streams->num_streams = num_streams; - streams->num_eps = num_endpoints; - memcpy(streams->eps, endpoints, num_endpoints); - - r = ioctl(fd, req, streams); - - free(streams); - - if (r < 0) { - if (errno == ENOTTY) - return LIBUSB_ERROR_NOT_SUPPORTED; - else if (errno == EINVAL) - return LIBUSB_ERROR_INVALID_PARAM; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "streams-ioctl failed error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - return r; -} - -static int op_alloc_streams(struct libusb_device_handle *handle, - uint32_t num_streams, unsigned char *endpoints, int num_endpoints) -{ - return do_streams_ioctl(handle, IOCTL_USBFS_ALLOC_STREAMS, - num_streams, endpoints, num_endpoints); -} - -static int op_free_streams(struct libusb_device_handle *handle, - unsigned char *endpoints, int num_endpoints) -{ - return do_streams_ioctl(handle, IOCTL_USBFS_FREE_STREAMS, 0, - endpoints, num_endpoints); -} - -static unsigned char *op_dev_mem_alloc(struct libusb_device_handle *handle, - size_t len) -{ - struct linux_device_handle_priv *hpriv = _device_handle_priv(handle); - unsigned char *buffer = (unsigned char *)mmap(NULL, len, - PROT_READ | PROT_WRITE, MAP_SHARED, hpriv->fd, 0); - if (buffer == MAP_FAILED) { - usbi_err(HANDLE_CTX(handle), "alloc dev mem failed errno %d", - errno); - return NULL; - } - return buffer; -} - -static int op_dev_mem_free(struct libusb_device_handle *handle, - unsigned char *buffer, size_t len) -{ - if (munmap(buffer, len) != 0) { - usbi_err(HANDLE_CTX(handle), "free dev mem failed errno %d", - errno); - return LIBUSB_ERROR_OTHER; - } else { - return LIBUSB_SUCCESS; - } -} - -static int op_kernel_driver_active(struct libusb_device_handle *handle, - int interface) -{ - int fd = _device_handle_priv(handle)->fd; - struct usbfs_getdriver getdrv; - int r; - - getdrv.interface = interface; - r = ioctl(fd, IOCTL_USBFS_GETDRIVER, &getdrv); - if (r) { - if (errno == ENODATA) - return 0; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "get driver failed error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - - return (strcmp(getdrv.driver, "usbfs") == 0) ? 0 : 1; -} - -static int op_detach_kernel_driver(struct libusb_device_handle *handle, - int interface) -{ - int fd = _device_handle_priv(handle)->fd; - struct usbfs_ioctl command; - struct usbfs_getdriver getdrv; - int r; - - command.ifno = interface; - command.ioctl_code = IOCTL_USBFS_DISCONNECT; - command.data = NULL; - - getdrv.interface = interface; - r = ioctl(fd, IOCTL_USBFS_GETDRIVER, &getdrv); - if (r == 0 && strcmp(getdrv.driver, "usbfs") == 0) - return LIBUSB_ERROR_NOT_FOUND; - - r = ioctl(fd, IOCTL_USBFS_IOCTL, &command); - if (r) { - if (errno == ENODATA) - return LIBUSB_ERROR_NOT_FOUND; - else if (errno == EINVAL) - return LIBUSB_ERROR_INVALID_PARAM; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), - "detach failed error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } - - return 0; -} - -static int op_attach_kernel_driver(struct libusb_device_handle *handle, - int interface) -{ - int fd = _device_handle_priv(handle)->fd; - struct usbfs_ioctl command; - int r; - - command.ifno = interface; - command.ioctl_code = IOCTL_USBFS_CONNECT; - command.data = NULL; - - r = ioctl(fd, IOCTL_USBFS_IOCTL, &command); - if (r < 0) { - if (errno == ENODATA) - return LIBUSB_ERROR_NOT_FOUND; - else if (errno == EINVAL) - return LIBUSB_ERROR_INVALID_PARAM; - else if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - else if (errno == EBUSY) - return LIBUSB_ERROR_BUSY; - - usbi_err(HANDLE_CTX(handle), - "attach failed error %d errno %d", r, errno); - return LIBUSB_ERROR_OTHER; - } else if (r == 0) { - return LIBUSB_ERROR_NOT_FOUND; - } - - return 0; -} - -static int detach_kernel_driver_and_claim(struct libusb_device_handle *handle, - int interface) -{ - struct usbfs_disconnect_claim dc; - int r, fd = _device_handle_priv(handle)->fd; - - dc.interface = interface; - strcpy(dc.driver, "usbfs"); - dc.flags = USBFS_DISCONNECT_CLAIM_EXCEPT_DRIVER; - r = ioctl(fd, IOCTL_USBFS_DISCONNECT_CLAIM, &dc); - if (r == 0 || (r != 0 && errno != ENOTTY)) { - if (r == 0) - return 0; - - switch (errno) { - case EBUSY: - return LIBUSB_ERROR_BUSY; - case EINVAL: - return LIBUSB_ERROR_INVALID_PARAM; - case ENODEV: - return LIBUSB_ERROR_NO_DEVICE; - } - usbi_err(HANDLE_CTX(handle), - "disconnect-and-claim failed errno %d", errno); - return LIBUSB_ERROR_OTHER; - } - - /* Fallback code for kernels which don't support the - disconnect-and-claim ioctl */ - r = op_detach_kernel_driver(handle, interface); - if (r != 0 && r != LIBUSB_ERROR_NOT_FOUND) - return r; - - return claim_interface(handle, interface); -} - -static int op_claim_interface(struct libusb_device_handle *handle, int iface) -{ - if (handle->auto_detach_kernel_driver) - return detach_kernel_driver_and_claim(handle, iface); - else - return claim_interface(handle, iface); -} - -static int op_release_interface(struct libusb_device_handle *handle, int iface) -{ - int r; - - r = release_interface(handle, iface); - if (r) - return r; - - if (handle->auto_detach_kernel_driver) - op_attach_kernel_driver(handle, iface); - - return 0; -} - -static void op_destroy_device(struct libusb_device *dev) -{ - struct linux_device_priv *priv = _device_priv(dev); - if (priv->descriptors) - free(priv->descriptors); - if (priv->sysfs_dir) - free(priv->sysfs_dir); -} - -/* URBs are discarded in reverse order of submission to avoid races. */ -static int discard_urbs(struct usbi_transfer *itransfer, int first, int last_plus_one) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct linux_transfer_priv *tpriv = - usbi_transfer_get_os_priv(itransfer); - struct linux_device_handle_priv *dpriv = - _device_handle_priv(transfer->dev_handle); - int i, ret = 0; - struct usbfs_urb *urb; - - for (i = last_plus_one - 1; i >= first; i--) { - if (LIBUSB_TRANSFER_TYPE_ISOCHRONOUS == transfer->type) - urb = tpriv->iso_urbs[i]; - else - urb = &tpriv->urbs[i]; - - if (0 == ioctl(dpriv->fd, IOCTL_USBFS_DISCARDURB, urb)) - continue; - - if (EINVAL == errno) { - usbi_dbg("URB not found --> assuming ready to be reaped"); - if (i == (last_plus_one - 1)) - ret = LIBUSB_ERROR_NOT_FOUND; - } else if (ENODEV == errno) { - usbi_dbg("Device not found for URB --> assuming ready to be reaped"); - ret = LIBUSB_ERROR_NO_DEVICE; - } else { - usbi_warn(TRANSFER_CTX(transfer), - "unrecognised discard errno %d", errno); - ret = LIBUSB_ERROR_OTHER; - } - } - return ret; -} - -static void free_iso_urbs(struct linux_transfer_priv *tpriv) -{ - int i; - for (i = 0; i < tpriv->num_urbs; i++) { - struct usbfs_urb *urb = tpriv->iso_urbs[i]; - if (!urb) - break; - free(urb); - } - - free(tpriv->iso_urbs); - tpriv->iso_urbs = NULL; -} - -static int submit_bulk_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - struct linux_device_handle_priv *dpriv = - _device_handle_priv(transfer->dev_handle); - struct usbfs_urb *urbs; - int is_out = (transfer->endpoint & LIBUSB_ENDPOINT_DIR_MASK) - == LIBUSB_ENDPOINT_OUT; - int bulk_buffer_len, use_bulk_continuation; - int r; - int i; - - if (is_out && (transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET) && - !(dpriv->caps & USBFS_CAP_ZERO_PACKET)) - return LIBUSB_ERROR_NOT_SUPPORTED; - - /* - * Older versions of usbfs place a 16kb limit on bulk URBs. We work - * around this by splitting large transfers into 16k blocks, and then - * submit all urbs at once. it would be simpler to submit one urb at - * a time, but there is a big performance gain doing it this way. - * - * Newer versions lift the 16k limit (USBFS_CAP_NO_PACKET_SIZE_LIM), - * using arbritary large transfers can still be a bad idea though, as - * the kernel needs to allocate physical contiguous memory for this, - * which may fail for large buffers. - * - * The kernel solves this problem by splitting the transfer into - * blocks itself when the host-controller is scatter-gather capable - * (USBFS_CAP_BULK_SCATTER_GATHER), which most controllers are. - * - * Last, there is the issue of short-transfers when splitting, for - * short split-transfers to work reliable USBFS_CAP_BULK_CONTINUATION - * is needed, but this is not always available. - */ - if (dpriv->caps & USBFS_CAP_BULK_SCATTER_GATHER) { - /* Good! Just submit everything in one go */ - bulk_buffer_len = transfer->length ? transfer->length : 1; - use_bulk_continuation = 0; - } else if (dpriv->caps & USBFS_CAP_BULK_CONTINUATION) { - /* Split the transfers and use bulk-continuation to - avoid issues with short-transfers */ - bulk_buffer_len = MAX_BULK_BUFFER_LENGTH; - use_bulk_continuation = 1; - } else if (dpriv->caps & USBFS_CAP_NO_PACKET_SIZE_LIM) { - /* Don't split, assume the kernel can alloc the buffer - (otherwise the submit will fail with -ENOMEM) */ - bulk_buffer_len = transfer->length ? transfer->length : 1; - use_bulk_continuation = 0; - } else { - /* Bad, splitting without bulk-continuation, short transfers - which end before the last urb will not work reliable! */ - /* Note we don't warn here as this is "normal" on kernels < - 2.6.32 and not a problem for most applications */ - bulk_buffer_len = MAX_BULK_BUFFER_LENGTH; - use_bulk_continuation = 0; - } - - int num_urbs = transfer->length / bulk_buffer_len; - int last_urb_partial = 0; - - if (transfer->length == 0) { - num_urbs = 1; - } else if ((transfer->length % bulk_buffer_len) > 0) { - last_urb_partial = 1; - num_urbs++; - } - usbi_dbg("need %d urbs for new transfer with length %d", num_urbs, - transfer->length); - urbs = calloc(num_urbs, sizeof(struct usbfs_urb)); - if (!urbs) - return LIBUSB_ERROR_NO_MEM; - tpriv->urbs = urbs; - tpriv->num_urbs = num_urbs; - tpriv->num_retired = 0; - tpriv->reap_action = NORMAL; - tpriv->reap_status = LIBUSB_TRANSFER_COMPLETED; - - for (i = 0; i < num_urbs; i++) { - struct usbfs_urb *urb = &urbs[i]; - urb->usercontext = itransfer; - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_BULK: - urb->type = USBFS_URB_TYPE_BULK; - urb->stream_id = 0; - break; - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - urb->type = USBFS_URB_TYPE_BULK; - urb->stream_id = itransfer->stream_id; - break; - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - urb->type = USBFS_URB_TYPE_INTERRUPT; - break; - } - urb->endpoint = transfer->endpoint; - urb->buffer = transfer->buffer + (i * bulk_buffer_len); - /* don't set the short not ok flag for the last URB */ - if (use_bulk_continuation && !is_out && (i < num_urbs - 1)) - urb->flags = USBFS_URB_SHORT_NOT_OK; - if (i == num_urbs - 1 && last_urb_partial) - urb->buffer_length = transfer->length % bulk_buffer_len; - else if (transfer->length == 0) - urb->buffer_length = 0; - else - urb->buffer_length = bulk_buffer_len; - - if (i > 0 && use_bulk_continuation) - urb->flags |= USBFS_URB_BULK_CONTINUATION; - - /* we have already checked that the flag is supported */ - if (is_out && i == num_urbs - 1 && - transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET) - urb->flags |= USBFS_URB_ZERO_PACKET; - - r = ioctl(dpriv->fd, IOCTL_USBFS_SUBMITURB, urb); - if (r < 0) { - if (errno == ENODEV) { - r = LIBUSB_ERROR_NO_DEVICE; - } else { - usbi_err(TRANSFER_CTX(transfer), - "submiturb failed error %d errno=%d", r, errno); - r = LIBUSB_ERROR_IO; - } - - /* if the first URB submission fails, we can simply free up and - * return failure immediately. */ - if (i == 0) { - usbi_dbg("first URB failed, easy peasy"); - free(urbs); - tpriv->urbs = NULL; - return r; - } - - /* if it's not the first URB that failed, the situation is a bit - * tricky. we may need to discard all previous URBs. there are - * complications: - * - discarding is asynchronous - discarded urbs will be reaped - * later. the user must not have freed the transfer when the - * discarded URBs are reaped, otherwise libusb will be using - * freed memory. - * - the earlier URBs may have completed successfully and we do - * not want to throw away any data. - * - this URB failing may be no error; EREMOTEIO means that - * this transfer simply didn't need all the URBs we submitted - * so, we report that the transfer was submitted successfully and - * in case of error we discard all previous URBs. later when - * the final reap completes we can report error to the user, - * or success if an earlier URB was completed successfully. - */ - tpriv->reap_action = EREMOTEIO == errno ? COMPLETED_EARLY : SUBMIT_FAILED; - - /* The URBs we haven't submitted yet we count as already - * retired. */ - tpriv->num_retired += num_urbs - i; - - /* If we completed short then don't try to discard. */ - if (COMPLETED_EARLY == tpriv->reap_action) - return 0; - - discard_urbs(itransfer, 0, i); - - usbi_dbg("reporting successful submission but waiting for %d " - "discards before reporting error", i); - return 0; - } - } - - return 0; -} - -static int submit_iso_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - struct linux_device_handle_priv *dpriv = - _device_handle_priv(transfer->dev_handle); - struct usbfs_urb **urbs; - size_t alloc_size; - int num_packets = transfer->num_iso_packets; - int i; - int this_urb_len = 0; - int num_urbs = 1; - int packet_offset = 0; - unsigned int packet_len; - unsigned char *urb_buffer = transfer->buffer; - - /* usbfs places arbitrary limits on iso URBs. this limit has changed - * at least three times, and it's difficult to accurately detect which - * limit this running kernel might impose. so we attempt to submit - * whatever the user has provided. if the kernel rejects the request - * due to its size, we return an error indicating such to the user. - */ - - /* calculate how many URBs we need */ - for (i = 0; i < num_packets; i++) { - unsigned int space_remaining = MAX_ISO_BUFFER_LENGTH - this_urb_len; - packet_len = transfer->iso_packet_desc[i].length; - - if (packet_len > space_remaining) { - num_urbs++; - this_urb_len = packet_len; - /* check that we can actually support this packet length */ - if (this_urb_len > MAX_ISO_BUFFER_LENGTH) - return LIBUSB_ERROR_INVALID_PARAM; - } else { - this_urb_len += packet_len; - } - } - usbi_dbg("need %d %dk URBs for transfer", num_urbs, MAX_ISO_BUFFER_LENGTH / 1024); - - urbs = calloc(num_urbs, sizeof(*urbs)); - if (!urbs) - return LIBUSB_ERROR_NO_MEM; - - tpriv->iso_urbs = urbs; - tpriv->num_urbs = num_urbs; - tpriv->num_retired = 0; - tpriv->reap_action = NORMAL; - tpriv->iso_packet_offset = 0; - - /* allocate + initialize each URB with the correct number of packets */ - for (i = 0; i < num_urbs; i++) { - struct usbfs_urb *urb; - unsigned int space_remaining_in_urb = MAX_ISO_BUFFER_LENGTH; - int urb_packet_offset = 0; - unsigned char *urb_buffer_orig = urb_buffer; - int j; - int k; - - /* swallow up all the packets we can fit into this URB */ - while (packet_offset < transfer->num_iso_packets) { - packet_len = transfer->iso_packet_desc[packet_offset].length; - if (packet_len <= space_remaining_in_urb) { - /* throw it in */ - urb_packet_offset++; - packet_offset++; - space_remaining_in_urb -= packet_len; - urb_buffer += packet_len; - } else { - /* it can't fit, save it for the next URB */ - break; - } - } - - alloc_size = sizeof(*urb) - + (urb_packet_offset * sizeof(struct usbfs_iso_packet_desc)); - urb = calloc(1, alloc_size); - if (!urb) { - free_iso_urbs(tpriv); - return LIBUSB_ERROR_NO_MEM; - } - urbs[i] = urb; - - /* populate packet lengths */ - for (j = 0, k = packet_offset - urb_packet_offset; - k < packet_offset; k++, j++) { - packet_len = transfer->iso_packet_desc[k].length; - urb->iso_frame_desc[j].length = packet_len; - } - - urb->usercontext = itransfer; - urb->type = USBFS_URB_TYPE_ISO; - /* FIXME: interface for non-ASAP data? */ - urb->flags = USBFS_URB_ISO_ASAP; - urb->endpoint = transfer->endpoint; - urb->number_of_packets = urb_packet_offset; - urb->buffer = urb_buffer_orig; - } - - /* submit URBs */ - for (i = 0; i < num_urbs; i++) { - int r = ioctl(dpriv->fd, IOCTL_USBFS_SUBMITURB, urbs[i]); - if (r < 0) { - if (errno == ENODEV) { - r = LIBUSB_ERROR_NO_DEVICE; - } else if (errno == EINVAL) { - usbi_warn(TRANSFER_CTX(transfer), - "submiturb failed, transfer too large"); - r = LIBUSB_ERROR_INVALID_PARAM; - } else { - usbi_err(TRANSFER_CTX(transfer), - "submiturb failed error %d errno=%d", r, errno); - r = LIBUSB_ERROR_IO; - } - - /* if the first URB submission fails, we can simply free up and - * return failure immediately. */ - if (i == 0) { - usbi_dbg("first URB failed, easy peasy"); - free_iso_urbs(tpriv); - return r; - } - - /* if it's not the first URB that failed, the situation is a bit - * tricky. we must discard all previous URBs. there are - * complications: - * - discarding is asynchronous - discarded urbs will be reaped - * later. the user must not have freed the transfer when the - * discarded URBs are reaped, otherwise libusb will be using - * freed memory. - * - the earlier URBs may have completed successfully and we do - * not want to throw away any data. - * so, in this case we discard all the previous URBs BUT we report - * that the transfer was submitted successfully. then later when - * the final discard completes we can report error to the user. - */ - tpriv->reap_action = SUBMIT_FAILED; - - /* The URBs we haven't submitted yet we count as already - * retired. */ - tpriv->num_retired = num_urbs - i; - discard_urbs(itransfer, 0, i); - - usbi_dbg("reporting successful submission but waiting for %d " - "discards before reporting error", i); - return 0; - } - } - - return 0; -} - -static int submit_control_transfer(struct usbi_transfer *itransfer) -{ - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct linux_device_handle_priv *dpriv = - _device_handle_priv(transfer->dev_handle); - struct usbfs_urb *urb; - int r; - - if (transfer->length - LIBUSB_CONTROL_SETUP_SIZE > MAX_CTRL_BUFFER_LENGTH) - return LIBUSB_ERROR_INVALID_PARAM; - - urb = calloc(1, sizeof(struct usbfs_urb)); - if (!urb) - return LIBUSB_ERROR_NO_MEM; - tpriv->urbs = urb; - tpriv->num_urbs = 1; - tpriv->reap_action = NORMAL; - - urb->usercontext = itransfer; - urb->type = USBFS_URB_TYPE_CONTROL; - urb->endpoint = transfer->endpoint; - urb->buffer = transfer->buffer; - urb->buffer_length = transfer->length; - - r = ioctl(dpriv->fd, IOCTL_USBFS_SUBMITURB, urb); - if (r < 0) { - free(urb); - tpriv->urbs = NULL; - if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(TRANSFER_CTX(transfer), - "submiturb failed error %d errno=%d", r, errno); - return LIBUSB_ERROR_IO; - } - return 0; -} - -static int op_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - return submit_control_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - return submit_bulk_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - return submit_bulk_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return submit_iso_transfer(itransfer); - default: - usbi_err(TRANSFER_CTX(transfer), - "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static int op_cancel_transfer(struct usbi_transfer *itransfer) -{ - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - int r; - - if (!tpriv->urbs) - return LIBUSB_ERROR_NOT_FOUND; - - r = discard_urbs(itransfer, 0, tpriv->num_urbs); - if (r != 0) - return r; - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - if (tpriv->reap_action == ERROR) - break; - /* else, fall through */ - default: - tpriv->reap_action = CANCELLED; - } - - return 0; -} - -static void op_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - - /* urbs can be freed also in submit_transfer so lock mutex first */ - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - if (tpriv->urbs) { - free(tpriv->urbs); - tpriv->urbs = NULL; - } - break; - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - if (tpriv->iso_urbs) { - free_iso_urbs(tpriv); - tpriv->iso_urbs = NULL; - } - break; - default: - usbi_err(TRANSFER_CTX(transfer), - "unknown endpoint type %d", transfer->type); - } -} - -static int handle_bulk_completion(struct usbi_transfer *itransfer, - struct usbfs_urb *urb) -{ - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - int urb_idx = urb - tpriv->urbs; - - usbi_mutex_lock(&itransfer->lock); - usbi_dbg("handling completion status %d of bulk urb %d/%d", urb->status, - urb_idx + 1, tpriv->num_urbs); - - tpriv->num_retired++; - - if (tpriv->reap_action != NORMAL) { - /* cancelled, submit_fail, or completed early */ - usbi_dbg("abnormal reap: urb status %d", urb->status); - - /* even though we're in the process of cancelling, it's possible that - * we may receive some data in these URBs that we don't want to lose. - * examples: - * 1. while the kernel is cancelling all the packets that make up an - * URB, a few of them might complete. so we get back a successful - * cancellation *and* some data. - * 2. we receive a short URB which marks the early completion condition, - * so we start cancelling the remaining URBs. however, we're too - * slow and another URB completes (or at least completes partially). - * (this can't happen since we always use BULK_CONTINUATION.) - * - * When this happens, our objectives are not to lose any "surplus" data, - * and also to stick it at the end of the previously-received data - * (closing any holes), so that libusb reports the total amount of - * transferred data and presents it in a contiguous chunk. - */ - if (urb->actual_length > 0) { - unsigned char *target = transfer->buffer + itransfer->transferred; - usbi_dbg("received %d bytes of surplus data", urb->actual_length); - if (urb->buffer != target) { - usbi_dbg("moving surplus data from offset %d to offset %d", - (unsigned char *) urb->buffer - transfer->buffer, - target - transfer->buffer); - memmove(target, urb->buffer, urb->actual_length); - } - itransfer->transferred += urb->actual_length; - } - - if (tpriv->num_retired == tpriv->num_urbs) { - usbi_dbg("abnormal reap: last URB handled, reporting"); - if (tpriv->reap_action != COMPLETED_EARLY && - tpriv->reap_status == LIBUSB_TRANSFER_COMPLETED) - tpriv->reap_status = LIBUSB_TRANSFER_ERROR; - goto completed; - } - goto out_unlock; - } - - itransfer->transferred += urb->actual_length; - - /* Many of these errors can occur on *any* urb of a multi-urb - * transfer. When they do, we tear down the rest of the transfer. - */ - switch (urb->status) { - case 0: - break; - case -EREMOTEIO: /* short transfer */ - break; - case -ENOENT: /* cancelled */ - case -ECONNRESET: - break; - case -ENODEV: - case -ESHUTDOWN: - usbi_dbg("device removed"); - tpriv->reap_status = LIBUSB_TRANSFER_NO_DEVICE; - goto cancel_remaining; - case -EPIPE: - usbi_dbg("detected endpoint stall"); - if (tpriv->reap_status == LIBUSB_TRANSFER_COMPLETED) - tpriv->reap_status = LIBUSB_TRANSFER_STALL; - goto cancel_remaining; - case -EOVERFLOW: - /* overflow can only ever occur in the last urb */ - usbi_dbg("overflow, actual_length=%d", urb->actual_length); - if (tpriv->reap_status == LIBUSB_TRANSFER_COMPLETED) - tpriv->reap_status = LIBUSB_TRANSFER_OVERFLOW; - goto completed; - case -ETIME: - case -EPROTO: - case -EILSEQ: - case -ECOMM: - case -ENOSR: - usbi_dbg("low level error %d", urb->status); - tpriv->reap_action = ERROR; - goto cancel_remaining; - default: - usbi_warn(ITRANSFER_CTX(itransfer), - "unrecognised urb status %d", urb->status); - tpriv->reap_action = ERROR; - goto cancel_remaining; - } - - /* if we're the last urb or we got less data than requested then we're - * done */ - if (urb_idx == tpriv->num_urbs - 1) { - usbi_dbg("last URB in transfer --> complete!"); - goto completed; - } else if (urb->actual_length < urb->buffer_length) { - usbi_dbg("short transfer %d/%d --> complete!", - urb->actual_length, urb->buffer_length); - if (tpriv->reap_action == NORMAL) - tpriv->reap_action = COMPLETED_EARLY; - } else - goto out_unlock; - -cancel_remaining: - if (ERROR == tpriv->reap_action && LIBUSB_TRANSFER_COMPLETED == tpriv->reap_status) - tpriv->reap_status = LIBUSB_TRANSFER_ERROR; - - if (tpriv->num_retired == tpriv->num_urbs) /* nothing to cancel */ - goto completed; - - /* cancel remaining urbs and wait for their completion before - * reporting results */ - discard_urbs(itransfer, urb_idx + 1, tpriv->num_urbs); - -out_unlock: - usbi_mutex_unlock(&itransfer->lock); - return 0; - -completed: - free(tpriv->urbs); - tpriv->urbs = NULL; - usbi_mutex_unlock(&itransfer->lock); - return CANCELLED == tpriv->reap_action ? - usbi_handle_transfer_cancellation(itransfer) : - usbi_handle_transfer_completion(itransfer, tpriv->reap_status); -} - -static int handle_iso_completion(struct usbi_transfer *itransfer, - struct usbfs_urb *urb) -{ - struct libusb_transfer *transfer = - USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - int num_urbs = tpriv->num_urbs; - int urb_idx = 0; - int i; - enum libusb_transfer_status status = LIBUSB_TRANSFER_COMPLETED; - - usbi_mutex_lock(&itransfer->lock); - for (i = 0; i < num_urbs; i++) { - if (urb == tpriv->iso_urbs[i]) { - urb_idx = i + 1; - break; - } - } - if (urb_idx == 0) { - usbi_err(TRANSFER_CTX(transfer), "could not locate urb!"); - usbi_mutex_unlock(&itransfer->lock); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("handling completion status %d of iso urb %d/%d", urb->status, - urb_idx, num_urbs); - - /* copy isochronous results back in */ - - for (i = 0; i < urb->number_of_packets; i++) { - struct usbfs_iso_packet_desc *urb_desc = &urb->iso_frame_desc[i]; - struct libusb_iso_packet_descriptor *lib_desc = - &transfer->iso_packet_desc[tpriv->iso_packet_offset++]; - lib_desc->status = LIBUSB_TRANSFER_COMPLETED; - switch (urb_desc->status) { - case 0: - break; - case -ENOENT: /* cancelled */ - case -ECONNRESET: - break; - case -ENODEV: - case -ESHUTDOWN: - usbi_dbg("device removed"); - lib_desc->status = LIBUSB_TRANSFER_NO_DEVICE; - break; - case -EPIPE: - usbi_dbg("detected endpoint stall"); - lib_desc->status = LIBUSB_TRANSFER_STALL; - break; - case -EOVERFLOW: - usbi_dbg("overflow error"); - lib_desc->status = LIBUSB_TRANSFER_OVERFLOW; - break; - case -ETIME: - case -EPROTO: - case -EILSEQ: - case -ECOMM: - case -ENOSR: - case -EXDEV: - usbi_dbg("low-level USB error %d", urb_desc->status); - lib_desc->status = LIBUSB_TRANSFER_ERROR; - break; - default: - usbi_warn(TRANSFER_CTX(transfer), - "unrecognised urb status %d", urb_desc->status); - lib_desc->status = LIBUSB_TRANSFER_ERROR; - break; - } - lib_desc->actual_length = urb_desc->actual_length; - } - - tpriv->num_retired++; - - if (tpriv->reap_action != NORMAL) { /* cancelled or submit_fail */ - usbi_dbg("CANCEL: urb status %d", urb->status); - - if (tpriv->num_retired == num_urbs) { - usbi_dbg("CANCEL: last URB handled, reporting"); - free_iso_urbs(tpriv); - if (tpriv->reap_action == CANCELLED) { - usbi_mutex_unlock(&itransfer->lock); - return usbi_handle_transfer_cancellation(itransfer); - } else { - usbi_mutex_unlock(&itransfer->lock); - return usbi_handle_transfer_completion(itransfer, - LIBUSB_TRANSFER_ERROR); - } - } - goto out; - } - - switch (urb->status) { - case 0: - break; - case -ENOENT: /* cancelled */ - case -ECONNRESET: - break; - case -ESHUTDOWN: - usbi_dbg("device removed"); - status = LIBUSB_TRANSFER_NO_DEVICE; - break; - default: - usbi_warn(TRANSFER_CTX(transfer), - "unrecognised urb status %d", urb->status); - status = LIBUSB_TRANSFER_ERROR; - break; - } - - /* if we're the last urb then we're done */ - if (urb_idx == num_urbs) { - usbi_dbg("last URB in transfer --> complete!"); - free_iso_urbs(tpriv); - usbi_mutex_unlock(&itransfer->lock); - return usbi_handle_transfer_completion(itransfer, status); - } - -out: - usbi_mutex_unlock(&itransfer->lock); - return 0; -} - -static int handle_control_completion(struct usbi_transfer *itransfer, - struct usbfs_urb *urb) -{ - struct linux_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer); - int status; - - usbi_mutex_lock(&itransfer->lock); - usbi_dbg("handling completion status %d", urb->status); - - itransfer->transferred += urb->actual_length; - - if (tpriv->reap_action == CANCELLED) { - if (urb->status != 0 && urb->status != -ENOENT) - usbi_warn(ITRANSFER_CTX(itransfer), - "cancel: unrecognised urb status %d", urb->status); - free(tpriv->urbs); - tpriv->urbs = NULL; - usbi_mutex_unlock(&itransfer->lock); - return usbi_handle_transfer_cancellation(itransfer); - } - - switch (urb->status) { - case 0: - status = LIBUSB_TRANSFER_COMPLETED; - break; - case -ENOENT: /* cancelled */ - status = LIBUSB_TRANSFER_CANCELLED; - break; - case -ENODEV: - case -ESHUTDOWN: - usbi_dbg("device removed"); - status = LIBUSB_TRANSFER_NO_DEVICE; - break; - case -EPIPE: - usbi_dbg("unsupported control request"); - status = LIBUSB_TRANSFER_STALL; - break; - case -EOVERFLOW: - usbi_dbg("control overflow error"); - status = LIBUSB_TRANSFER_OVERFLOW; - break; - case -ETIME: - case -EPROTO: - case -EILSEQ: - case -ECOMM: - case -ENOSR: - usbi_dbg("low-level bus error occurred"); - status = LIBUSB_TRANSFER_ERROR; - break; - default: - usbi_warn(ITRANSFER_CTX(itransfer), - "unrecognised urb status %d", urb->status); - status = LIBUSB_TRANSFER_ERROR; - break; - } - - free(tpriv->urbs); - tpriv->urbs = NULL; - usbi_mutex_unlock(&itransfer->lock); - return usbi_handle_transfer_completion(itransfer, status); -} - -static int reap_for_handle(struct libusb_device_handle *handle) -{ - struct linux_device_handle_priv *hpriv = _device_handle_priv(handle); - int r; - struct usbfs_urb *urb; - struct usbi_transfer *itransfer; - struct libusb_transfer *transfer; - - r = ioctl(hpriv->fd, IOCTL_USBFS_REAPURBNDELAY, &urb); - if (r == -1 && errno == EAGAIN) - return 1; - if (r < 0) { - if (errno == ENODEV) - return LIBUSB_ERROR_NO_DEVICE; - - usbi_err(HANDLE_CTX(handle), "reap failed error %d errno=%d", - r, errno); - return LIBUSB_ERROR_IO; - } - - itransfer = urb->usercontext; - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - usbi_dbg("urb type=%d status=%d transferred=%d", urb->type, urb->status, - urb->actual_length); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return handle_iso_completion(itransfer, urb); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - return handle_bulk_completion(itransfer, urb); - case LIBUSB_TRANSFER_TYPE_CONTROL: - return handle_control_completion(itransfer, urb); - default: - usbi_err(HANDLE_CTX(handle), "unrecognised endpoint type %x", - transfer->type); - return LIBUSB_ERROR_OTHER; - } -} - -static int op_handle_events(struct libusb_context *ctx, - struct pollfd *fds, POLL_NFDS_TYPE nfds, int num_ready) -{ - int r; - unsigned int i = 0; - - usbi_mutex_lock(&ctx->open_devs_lock); - for (i = 0; i < nfds && num_ready > 0; i++) { - struct pollfd *pollfd = &fds[i]; - struct libusb_device_handle *handle; - struct linux_device_handle_priv *hpriv = NULL; - - if (!pollfd->revents) - continue; - - num_ready--; - list_for_each_entry(handle, &ctx->open_devs, list, struct libusb_device_handle) { - hpriv = _device_handle_priv(handle); - if (hpriv->fd == pollfd->fd) - break; - } - - if (!hpriv || hpriv->fd != pollfd->fd) { - usbi_err(ctx, "cannot find handle for fd %d", - pollfd->fd); - continue; - } - - if (pollfd->revents & POLLERR) { - /* remove the fd from the pollfd set so that it doesn't continuously - * trigger an event, and flag that it has been removed so op_close() - * doesn't try to remove it a second time */ - usbi_remove_pollfd(HANDLE_CTX(handle), hpriv->fd); - hpriv->fd_removed = 1; - - /* device will still be marked as attached if hotplug monitor thread - * hasn't processed remove event yet */ - usbi_mutex_static_lock(&linux_hotplug_lock); - if (handle->dev->attached) - linux_device_disconnected(handle->dev->bus_number, - handle->dev->device_address); - usbi_mutex_static_unlock(&linux_hotplug_lock); - - if (hpriv->caps & USBFS_CAP_REAP_AFTER_DISCONNECT) { - do { - r = reap_for_handle(handle); - } while (r == 0); - } - - usbi_handle_disconnect(handle); - continue; - } - - do { - r = reap_for_handle(handle); - } while (r == 0); - if (r == 1 || r == LIBUSB_ERROR_NO_DEVICE) - continue; - else if (r < 0) - goto out; - } - - r = 0; -out: - usbi_mutex_unlock(&ctx->open_devs_lock); - return r; -} - -static int op_clock_gettime(int clk_id, struct timespec *tp) -{ - switch (clk_id) { - case USBI_CLOCK_MONOTONIC: - return clock_gettime(monotonic_clkid, tp); - case USBI_CLOCK_REALTIME: - return clock_gettime(CLOCK_REALTIME, tp); - default: - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -#ifdef USBI_TIMERFD_AVAILABLE -static clockid_t op_get_timerfd_clockid(void) -{ - return monotonic_clkid; - -} -#endif - -const struct usbi_os_backend linux_usbfs_backend = { - .name = "Linux usbfs", - .caps = USBI_CAP_HAS_HID_ACCESS|USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER, - .init = op_init, - .exit = op_exit, - .get_device_list = NULL, - .hotplug_poll = op_hotplug_poll, - .get_device_descriptor = op_get_device_descriptor, - .get_active_config_descriptor = op_get_active_config_descriptor, - .get_config_descriptor = op_get_config_descriptor, - .get_config_descriptor_by_value = op_get_config_descriptor_by_value, - - .open = op_open, - .close = op_close, - .get_configuration = op_get_configuration, - .set_configuration = op_set_configuration, - .claim_interface = op_claim_interface, - .release_interface = op_release_interface, - - .set_interface_altsetting = op_set_interface, - .clear_halt = op_clear_halt, - .reset_device = op_reset_device, - - .alloc_streams = op_alloc_streams, - .free_streams = op_free_streams, - - .dev_mem_alloc = op_dev_mem_alloc, - .dev_mem_free = op_dev_mem_free, - - .kernel_driver_active = op_kernel_driver_active, - .detach_kernel_driver = op_detach_kernel_driver, - .attach_kernel_driver = op_attach_kernel_driver, - - .destroy_device = op_destroy_device, - - .submit_transfer = op_submit_transfer, - .cancel_transfer = op_cancel_transfer, - .clear_transfer_priv = op_clear_transfer_priv, - - .handle_events = op_handle_events, - - .clock_gettime = op_clock_gettime, - -#ifdef USBI_TIMERFD_AVAILABLE - .get_timerfd_clockid = op_get_timerfd_clockid, -#endif - - .device_priv_size = sizeof(struct linux_device_priv), - .device_handle_priv_size = sizeof(struct linux_device_handle_priv), - .transfer_priv_size = sizeof(struct linux_transfer_priv), -}; diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.h deleted file mode 100644 index 8bd3ebcb..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/linux_usbfs.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - * usbfs header structures - * Copyright © 2007 Daniel Drake - * Copyright © 2001 Johannes Erdfelt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef LIBUSB_USBFS_H -#define LIBUSB_USBFS_H - -#include - -#define SYSFS_DEVICE_PATH "/sys/bus/usb/devices" - -struct usbfs_ctrltransfer { - /* keep in sync with usbdevice_fs.h:usbdevfs_ctrltransfer */ - uint8_t bmRequestType; - uint8_t bRequest; - uint16_t wValue; - uint16_t wIndex; - uint16_t wLength; - - uint32_t timeout; /* in milliseconds */ - - /* pointer to data */ - void *data; -}; - -struct usbfs_bulktransfer { - /* keep in sync with usbdevice_fs.h:usbdevfs_bulktransfer */ - unsigned int ep; - unsigned int len; - unsigned int timeout; /* in milliseconds */ - - /* pointer to data */ - void *data; -}; - -struct usbfs_setinterface { - /* keep in sync with usbdevice_fs.h:usbdevfs_setinterface */ - unsigned int interface; - unsigned int altsetting; -}; - -#define USBFS_MAXDRIVERNAME 255 - -struct usbfs_getdriver { - unsigned int interface; - char driver[USBFS_MAXDRIVERNAME + 1]; -}; - -#define USBFS_URB_SHORT_NOT_OK 0x01 -#define USBFS_URB_ISO_ASAP 0x02 -#define USBFS_URB_BULK_CONTINUATION 0x04 -#define USBFS_URB_QUEUE_BULK 0x10 -#define USBFS_URB_ZERO_PACKET 0x40 - -enum usbfs_urb_type { - USBFS_URB_TYPE_ISO = 0, - USBFS_URB_TYPE_INTERRUPT = 1, - USBFS_URB_TYPE_CONTROL = 2, - USBFS_URB_TYPE_BULK = 3, -}; - -struct usbfs_iso_packet_desc { - unsigned int length; - unsigned int actual_length; - unsigned int status; -}; - -#define MAX_ISO_BUFFER_LENGTH 49152 * 128 -#define MAX_BULK_BUFFER_LENGTH 16384 -#define MAX_CTRL_BUFFER_LENGTH 4096 - -struct usbfs_urb { - unsigned char type; - unsigned char endpoint; - int status; - unsigned int flags; - void *buffer; - int buffer_length; - int actual_length; - int start_frame; - union { - int number_of_packets; /* Only used for isoc urbs */ - unsigned int stream_id; /* Only used with bulk streams */ - }; - int error_count; - unsigned int signr; - void *usercontext; - struct usbfs_iso_packet_desc iso_frame_desc[0]; -}; - -struct usbfs_connectinfo { - unsigned int devnum; - unsigned char slow; -}; - -struct usbfs_ioctl { - int ifno; /* interface 0..N ; negative numbers reserved */ - int ioctl_code; /* MUST encode size + direction of data so the - * macros in give correct values */ - void *data; /* param buffer (in, or out) */ -}; - -struct usbfs_hub_portinfo { - unsigned char numports; - unsigned char port[127]; /* port to device num mapping */ -}; - -#define USBFS_CAP_ZERO_PACKET 0x01 -#define USBFS_CAP_BULK_CONTINUATION 0x02 -#define USBFS_CAP_NO_PACKET_SIZE_LIM 0x04 -#define USBFS_CAP_BULK_SCATTER_GATHER 0x08 -#define USBFS_CAP_REAP_AFTER_DISCONNECT 0x10 - -#define USBFS_DISCONNECT_CLAIM_IF_DRIVER 0x01 -#define USBFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02 - -struct usbfs_disconnect_claim { - unsigned int interface; - unsigned int flags; - char driver[USBFS_MAXDRIVERNAME + 1]; -}; - -struct usbfs_streams { - unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ - unsigned int num_eps; - unsigned char eps[0]; -}; - -#define IOCTL_USBFS_CONTROL _IOWR('U', 0, struct usbfs_ctrltransfer) -#define IOCTL_USBFS_BULK _IOWR('U', 2, struct usbfs_bulktransfer) -#define IOCTL_USBFS_RESETEP _IOR('U', 3, unsigned int) -#define IOCTL_USBFS_SETINTF _IOR('U', 4, struct usbfs_setinterface) -#define IOCTL_USBFS_SETCONFIG _IOR('U', 5, unsigned int) -#define IOCTL_USBFS_GETDRIVER _IOW('U', 8, struct usbfs_getdriver) -#define IOCTL_USBFS_SUBMITURB _IOR('U', 10, struct usbfs_urb) -#define IOCTL_USBFS_DISCARDURB _IO('U', 11) -#define IOCTL_USBFS_REAPURB _IOW('U', 12, void *) -#define IOCTL_USBFS_REAPURBNDELAY _IOW('U', 13, void *) -#define IOCTL_USBFS_CLAIMINTF _IOR('U', 15, unsigned int) -#define IOCTL_USBFS_RELEASEINTF _IOR('U', 16, unsigned int) -#define IOCTL_USBFS_CONNECTINFO _IOW('U', 17, struct usbfs_connectinfo) -#define IOCTL_USBFS_IOCTL _IOWR('U', 18, struct usbfs_ioctl) -#define IOCTL_USBFS_HUB_PORTINFO _IOR('U', 19, struct usbfs_hub_portinfo) -#define IOCTL_USBFS_RESET _IO('U', 20) -#define IOCTL_USBFS_CLEAR_HALT _IOR('U', 21, unsigned int) -#define IOCTL_USBFS_DISCONNECT _IO('U', 22) -#define IOCTL_USBFS_CONNECT _IO('U', 23) -#define IOCTL_USBFS_CLAIM_PORT _IOR('U', 24, unsigned int) -#define IOCTL_USBFS_RELEASE_PORT _IOR('U', 25, unsigned int) -#define IOCTL_USBFS_GET_CAPABILITIES _IOR('U', 26, __u32) -#define IOCTL_USBFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbfs_disconnect_claim) -#define IOCTL_USBFS_ALLOC_STREAMS _IOR('U', 28, struct usbfs_streams) -#define IOCTL_USBFS_FREE_STREAMS _IOR('U', 29, struct usbfs_streams) - -extern usbi_mutex_static_t linux_hotplug_lock; - -#if defined(HAVE_LIBUDEV) -int linux_udev_start_event_monitor(void); -int linux_udev_stop_event_monitor(void); -int linux_udev_scan_devices(struct libusb_context *ctx); -void linux_udev_hotplug_poll(void); -#else -int linux_netlink_start_event_monitor(void); -int linux_netlink_stop_event_monitor(void); -void linux_netlink_hotplug_poll(void); -#endif - -void linux_hotplug_enumerate(uint8_t busnum, uint8_t devaddr, const char *sys_name); -void linux_device_disconnected(uint8_t busnum, uint8_t devaddr); - -int linux_get_device_address (struct libusb_context *ctx, int detached, - uint8_t *busnum, uint8_t *devaddr, const char *dev_node, - const char *sys_name); -int linux_enumerate_device(struct libusb_context *ctx, - uint8_t busnum, uint8_t devaddr, const char *sysfs_dir); - -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/netbsd_usb.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/netbsd_usb.c deleted file mode 100644 index ad1ede73..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/netbsd_usb.c +++ /dev/null @@ -1,677 +0,0 @@ -/* - * Copyright © 2011 Martin Pieuchot - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include "libusbi.h" - -struct device_priv { - char devnode[16]; - int fd; - - unsigned char *cdesc; /* active config descriptor */ - usb_device_descriptor_t ddesc; /* usb device descriptor */ -}; - -struct handle_priv { - int endpoints[USB_MAX_ENDPOINTS]; -}; - -/* - * Backend functions - */ -static int netbsd_get_device_list(struct libusb_context *, - struct discovered_devs **); -static int netbsd_open(struct libusb_device_handle *); -static void netbsd_close(struct libusb_device_handle *); - -static int netbsd_get_device_descriptor(struct libusb_device *, unsigned char *, - int *); -static int netbsd_get_active_config_descriptor(struct libusb_device *, - unsigned char *, size_t, int *); -static int netbsd_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t, int *); - -static int netbsd_get_configuration(struct libusb_device_handle *, int *); -static int netbsd_set_configuration(struct libusb_device_handle *, int); - -static int netbsd_claim_interface(struct libusb_device_handle *, int); -static int netbsd_release_interface(struct libusb_device_handle *, int); - -static int netbsd_set_interface_altsetting(struct libusb_device_handle *, int, - int); -static int netbsd_clear_halt(struct libusb_device_handle *, unsigned char); -static int netbsd_reset_device(struct libusb_device_handle *); -static void netbsd_destroy_device(struct libusb_device *); - -static int netbsd_submit_transfer(struct usbi_transfer *); -static int netbsd_cancel_transfer(struct usbi_transfer *); -static void netbsd_clear_transfer_priv(struct usbi_transfer *); -static int netbsd_handle_transfer_completion(struct usbi_transfer *); -static int netbsd_clock_gettime(int, struct timespec *); - -/* - * Private functions - */ -static int _errno_to_libusb(int); -static int _cache_active_config_descriptor(struct libusb_device *, int); -static int _sync_control_transfer(struct usbi_transfer *); -static int _sync_gen_transfer(struct usbi_transfer *); -static int _access_endpoint(struct libusb_transfer *); - -const struct usbi_os_backend netbsd_backend = { - "Synchronous NetBSD backend", - 0, - NULL, /* init() */ - NULL, /* exit() */ - netbsd_get_device_list, - NULL, /* hotplug_poll */ - netbsd_open, - netbsd_close, - - netbsd_get_device_descriptor, - netbsd_get_active_config_descriptor, - netbsd_get_config_descriptor, - NULL, /* get_config_descriptor_by_value() */ - - netbsd_get_configuration, - netbsd_set_configuration, - - netbsd_claim_interface, - netbsd_release_interface, - - netbsd_set_interface_altsetting, - netbsd_clear_halt, - netbsd_reset_device, - - NULL, /* alloc_streams */ - NULL, /* free_streams */ - - NULL, /* dev_mem_alloc() */ - NULL, /* dev_mem_free() */ - - NULL, /* kernel_driver_active() */ - NULL, /* detach_kernel_driver() */ - NULL, /* attach_kernel_driver() */ - - netbsd_destroy_device, - - netbsd_submit_transfer, - netbsd_cancel_transfer, - netbsd_clear_transfer_priv, - - NULL, /* handle_events() */ - netbsd_handle_transfer_completion, - - netbsd_clock_gettime, - sizeof(struct device_priv), - sizeof(struct handle_priv), - 0, /* transfer_priv_size */ -}; - -int -netbsd_get_device_list(struct libusb_context * ctx, - struct discovered_devs **discdevs) -{ - struct libusb_device *dev; - struct device_priv *dpriv; - struct usb_device_info di; - unsigned long session_id; - char devnode[16]; - int fd, err, i; - - usbi_dbg(""); - - /* Only ugen(4) is supported */ - for (i = 0; i < USB_MAX_DEVICES; i++) { - /* Control endpoint is always .00 */ - snprintf(devnode, sizeof(devnode), "/dev/ugen%d.00", i); - - if ((fd = open(devnode, O_RDONLY)) < 0) { - if (errno != ENOENT && errno != ENXIO) - usbi_err(ctx, "could not open %s", devnode); - continue; - } - - if (ioctl(fd, USB_GET_DEVICEINFO, &di) < 0) - continue; - - session_id = (di.udi_bus << 8 | di.udi_addr); - dev = usbi_get_device_by_session_id(ctx, session_id); - - if (dev == NULL) { - dev = usbi_alloc_device(ctx, session_id); - if (dev == NULL) - return (LIBUSB_ERROR_NO_MEM); - - dev->bus_number = di.udi_bus; - dev->device_address = di.udi_addr; - dev->speed = di.udi_speed; - - dpriv = (struct device_priv *)dev->os_priv; - strlcpy(dpriv->devnode, devnode, sizeof(devnode)); - dpriv->fd = -1; - - if (ioctl(fd, USB_GET_DEVICE_DESC, &dpriv->ddesc) < 0) { - err = errno; - goto error; - } - - dpriv->cdesc = NULL; - if (_cache_active_config_descriptor(dev, fd)) { - err = errno; - goto error; - } - - if ((err = usbi_sanitize_device(dev))) - goto error; - } - close(fd); - - if (discovered_devs_append(*discdevs, dev) == NULL) - return (LIBUSB_ERROR_NO_MEM); - - libusb_unref_device(dev); - } - - return (LIBUSB_SUCCESS); - -error: - close(fd); - libusb_unref_device(dev); - return _errno_to_libusb(err); -} - -int -netbsd_open(struct libusb_device_handle *handle) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - - dpriv->fd = open(dpriv->devnode, O_RDWR); - if (dpriv->fd < 0) { - dpriv->fd = open(dpriv->devnode, O_RDONLY); - if (dpriv->fd < 0) - return _errno_to_libusb(errno); - } - - usbi_dbg("open %s: fd %d", dpriv->devnode, dpriv->fd); - - return (LIBUSB_SUCCESS); -} - -void -netbsd_close(struct libusb_device_handle *handle) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - - usbi_dbg("close: fd %d", dpriv->fd); - - close(dpriv->fd); - dpriv->fd = -1; -} - -int -netbsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, - int *host_endian) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - - usbi_dbg(""); - - memcpy(buf, &dpriv->ddesc, DEVICE_DESC_LENGTH); - - *host_endian = 0; - - return (LIBUSB_SUCCESS); -} - -int -netbsd_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len, int *host_endian) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - usb_config_descriptor_t *ucd; - - ucd = (usb_config_descriptor_t *) dpriv->cdesc; - len = MIN(len, UGETW(ucd->wTotalLength)); - - usbi_dbg("len %d", len); - - memcpy(buf, dpriv->cdesc, len); - - *host_endian = 0; - - return len; -} - -int -netbsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len, int *host_endian) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - struct usb_full_desc ufd; - int fd, err; - - usbi_dbg("index %d, len %d", idx, len); - - /* A config descriptor may be requested before opening the device */ - if (dpriv->fd >= 0) { - fd = dpriv->fd; - } else { - fd = open(dpriv->devnode, O_RDONLY); - if (fd < 0) - return _errno_to_libusb(errno); - } - - ufd.ufd_config_index = idx; - ufd.ufd_size = len; - ufd.ufd_data = buf; - - if ((ioctl(fd, USB_GET_FULL_DESC, &ufd)) < 0) { - err = errno; - if (dpriv->fd < 0) - close(fd); - return _errno_to_libusb(err); - } - - if (dpriv->fd < 0) - close(fd); - - *host_endian = 0; - - return len; -} - -int -netbsd_get_configuration(struct libusb_device_handle *handle, int *config) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - - usbi_dbg(""); - - if (ioctl(dpriv->fd, USB_GET_CONFIG, config) < 0) - return _errno_to_libusb(errno); - - usbi_dbg("configuration %d", *config); - - return (LIBUSB_SUCCESS); -} - -int -netbsd_set_configuration(struct libusb_device_handle *handle, int config) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - - usbi_dbg("configuration %d", config); - - if (ioctl(dpriv->fd, USB_SET_CONFIG, &config) < 0) - return _errno_to_libusb(errno); - - return _cache_active_config_descriptor(handle->dev, dpriv->fd); -} - -int -netbsd_claim_interface(struct libusb_device_handle *handle, int iface) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - int i; - - for (i = 0; i < USB_MAX_ENDPOINTS; i++) - hpriv->endpoints[i] = -1; - - return (LIBUSB_SUCCESS); -} - -int -netbsd_release_interface(struct libusb_device_handle *handle, int iface) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - int i; - - for (i = 0; i < USB_MAX_ENDPOINTS; i++) - if (hpriv->endpoints[i] >= 0) - close(hpriv->endpoints[i]); - - return (LIBUSB_SUCCESS); -} - -int -netbsd_set_interface_altsetting(struct libusb_device_handle *handle, int iface, - int altsetting) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - struct usb_alt_interface intf; - - usbi_dbg("iface %d, setting %d", iface, altsetting); - - memset(&intf, 0, sizeof(intf)); - - intf.uai_interface_index = iface; - intf.uai_alt_no = altsetting; - - if (ioctl(dpriv->fd, USB_SET_ALTINTERFACE, &intf) < 0) - return _errno_to_libusb(errno); - - return (LIBUSB_SUCCESS); -} - -int -netbsd_clear_halt(struct libusb_device_handle *handle, unsigned char endpoint) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - struct usb_ctl_request req; - - usbi_dbg(""); - - req.ucr_request.bmRequestType = UT_WRITE_ENDPOINT; - req.ucr_request.bRequest = UR_CLEAR_FEATURE; - USETW(req.ucr_request.wValue, UF_ENDPOINT_HALT); - USETW(req.ucr_request.wIndex, endpoint); - USETW(req.ucr_request.wLength, 0); - - if (ioctl(dpriv->fd, USB_DO_REQUEST, &req) < 0) - return _errno_to_libusb(errno); - - return (LIBUSB_SUCCESS); -} - -int -netbsd_reset_device(struct libusb_device_handle *handle) -{ - usbi_dbg(""); - - return (LIBUSB_ERROR_NOT_SUPPORTED); -} - -void -netbsd_destroy_device(struct libusb_device *dev) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - - usbi_dbg(""); - - free(dpriv->cdesc); -} - -int -netbsd_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - struct handle_priv *hpriv; - int err = 0; - - usbi_dbg(""); - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - hpriv = (struct handle_priv *)transfer->dev_handle->os_priv; - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - err = _sync_control_transfer(itransfer); - break; - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - if (IS_XFEROUT(transfer)) { - /* Isochronous write is not supported */ - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - err = _sync_gen_transfer(itransfer); - break; - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - if (IS_XFEROUT(transfer) && - transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET) { - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - err = _sync_gen_transfer(itransfer); - break; - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - - if (err) - return (err); - - usbi_signal_transfer_completion(itransfer); - - return (LIBUSB_SUCCESS); -} - -int -netbsd_cancel_transfer(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - return (LIBUSB_ERROR_NOT_SUPPORTED); -} - -void -netbsd_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - /* Nothing to do */ -} - -int -netbsd_handle_transfer_completion(struct usbi_transfer *itransfer) -{ - return usbi_handle_transfer_completion(itransfer, LIBUSB_TRANSFER_COMPLETED); -} - -int -netbsd_clock_gettime(int clkid, struct timespec *tp) -{ - usbi_dbg("clock %d", clkid); - - if (clkid == USBI_CLOCK_REALTIME) - return clock_gettime(CLOCK_REALTIME, tp); - - if (clkid == USBI_CLOCK_MONOTONIC) - return clock_gettime(CLOCK_MONOTONIC, tp); - - return (LIBUSB_ERROR_INVALID_PARAM); -} - -int -_errno_to_libusb(int err) -{ - switch (err) { - case EIO: - return (LIBUSB_ERROR_IO); - case EACCES: - return (LIBUSB_ERROR_ACCESS); - case ENOENT: - return (LIBUSB_ERROR_NO_DEVICE); - case ENOMEM: - return (LIBUSB_ERROR_NO_MEM); - } - - usbi_dbg("error: %s", strerror(err)); - - return (LIBUSB_ERROR_OTHER); -} - -int -_cache_active_config_descriptor(struct libusb_device *dev, int fd) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - struct usb_config_desc ucd; - struct usb_full_desc ufd; - unsigned char* buf; - int len; - - usbi_dbg("fd %d", fd); - - ucd.ucd_config_index = USB_CURRENT_CONFIG_INDEX; - - if ((ioctl(fd, USB_GET_CONFIG_DESC, &ucd)) < 0) - return _errno_to_libusb(errno); - - usbi_dbg("active bLength %d", ucd.ucd_desc.bLength); - - len = UGETW(ucd.ucd_desc.wTotalLength); - buf = malloc(len); - if (buf == NULL) - return (LIBUSB_ERROR_NO_MEM); - - ufd.ufd_config_index = ucd.ucd_config_index; - ufd.ufd_size = len; - ufd.ufd_data = buf; - - usbi_dbg("index %d, len %d", ufd.ufd_config_index, len); - - if ((ioctl(fd, USB_GET_FULL_DESC, &ufd)) < 0) { - free(buf); - return _errno_to_libusb(errno); - } - - if (dpriv->cdesc) - free(dpriv->cdesc); - dpriv->cdesc = buf; - - return (0); -} - -int -_sync_control_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - struct libusb_control_setup *setup; - struct device_priv *dpriv; - struct usb_ctl_request req; - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - dpriv = (struct device_priv *)transfer->dev_handle->dev->os_priv; - setup = (struct libusb_control_setup *)transfer->buffer; - - usbi_dbg("type %d request %d value %d index %d length %d timeout %d", - setup->bmRequestType, setup->bRequest, - libusb_le16_to_cpu(setup->wValue), - libusb_le16_to_cpu(setup->wIndex), - libusb_le16_to_cpu(setup->wLength), transfer->timeout); - - req.ucr_request.bmRequestType = setup->bmRequestType; - req.ucr_request.bRequest = setup->bRequest; - /* Don't use USETW, libusb already deals with the endianness */ - (*(uint16_t *)req.ucr_request.wValue) = setup->wValue; - (*(uint16_t *)req.ucr_request.wIndex) = setup->wIndex; - (*(uint16_t *)req.ucr_request.wLength) = setup->wLength; - req.ucr_data = transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE; - - if ((transfer->flags & LIBUSB_TRANSFER_SHORT_NOT_OK) == 0) - req.ucr_flags = USBD_SHORT_XFER_OK; - - if ((ioctl(dpriv->fd, USB_SET_TIMEOUT, &transfer->timeout)) < 0) - return _errno_to_libusb(errno); - - if ((ioctl(dpriv->fd, USB_DO_REQUEST, &req)) < 0) - return _errno_to_libusb(errno); - - itransfer->transferred = req.ucr_actlen; - - usbi_dbg("transferred %d", itransfer->transferred); - - return (0); -} - -int -_access_endpoint(struct libusb_transfer *transfer) -{ - struct handle_priv *hpriv; - struct device_priv *dpriv; - char *s, devnode[16]; - int fd, endpt; - mode_t mode; - - hpriv = (struct handle_priv *)transfer->dev_handle->os_priv; - dpriv = (struct device_priv *)transfer->dev_handle->dev->os_priv; - - endpt = UE_GET_ADDR(transfer->endpoint); - mode = IS_XFERIN(transfer) ? O_RDONLY : O_WRONLY; - - usbi_dbg("endpoint %d mode %d", endpt, mode); - - if (hpriv->endpoints[endpt] < 0) { - /* Pick the right node given the control one */ - strlcpy(devnode, dpriv->devnode, sizeof(devnode)); - s = strchr(devnode, '.'); - snprintf(s, 4, ".%02d", endpt); - - /* We may need to read/write to the same endpoint later. */ - if (((fd = open(devnode, O_RDWR)) < 0) && (errno == ENXIO)) - if ((fd = open(devnode, mode)) < 0) - return (-1); - - hpriv->endpoints[endpt] = fd; - } - - return (hpriv->endpoints[endpt]); -} - -int -_sync_gen_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - int fd, nr = 1; - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - /* - * Bulk, Interrupt or Isochronous transfer depends on the - * endpoint and thus the node to open. - */ - if ((fd = _access_endpoint(transfer)) < 0) - return _errno_to_libusb(errno); - - if ((ioctl(fd, USB_SET_TIMEOUT, &transfer->timeout)) < 0) - return _errno_to_libusb(errno); - - if (IS_XFERIN(transfer)) { - if ((transfer->flags & LIBUSB_TRANSFER_SHORT_NOT_OK) == 0) - if ((ioctl(fd, USB_SET_SHORT_XFER, &nr)) < 0) - return _errno_to_libusb(errno); - - nr = read(fd, transfer->buffer, transfer->length); - } else { - nr = write(fd, transfer->buffer, transfer->length); - } - - if (nr < 0) - return _errno_to_libusb(errno); - - itransfer->transferred = nr; - - return (0); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/openbsd_usb.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/openbsd_usb.c deleted file mode 100644 index c6602571..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/openbsd_usb.c +++ /dev/null @@ -1,771 +0,0 @@ -/* - * Copyright © 2011-2013 Martin Pieuchot - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include "libusbi.h" - -struct device_priv { - char *devname; /* name of the ugen(4) node */ - int fd; /* device file descriptor */ - - unsigned char *cdesc; /* active config descriptor */ - usb_device_descriptor_t ddesc; /* usb device descriptor */ -}; - -struct handle_priv { - int endpoints[USB_MAX_ENDPOINTS]; -}; - -/* - * Backend functions - */ -static int obsd_get_device_list(struct libusb_context *, - struct discovered_devs **); -static int obsd_open(struct libusb_device_handle *); -static void obsd_close(struct libusb_device_handle *); - -static int obsd_get_device_descriptor(struct libusb_device *, unsigned char *, - int *); -static int obsd_get_active_config_descriptor(struct libusb_device *, - unsigned char *, size_t, int *); -static int obsd_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t, int *); - -static int obsd_get_configuration(struct libusb_device_handle *, int *); -static int obsd_set_configuration(struct libusb_device_handle *, int); - -static int obsd_claim_interface(struct libusb_device_handle *, int); -static int obsd_release_interface(struct libusb_device_handle *, int); - -static int obsd_set_interface_altsetting(struct libusb_device_handle *, int, - int); -static int obsd_clear_halt(struct libusb_device_handle *, unsigned char); -static int obsd_reset_device(struct libusb_device_handle *); -static void obsd_destroy_device(struct libusb_device *); - -static int obsd_submit_transfer(struct usbi_transfer *); -static int obsd_cancel_transfer(struct usbi_transfer *); -static void obsd_clear_transfer_priv(struct usbi_transfer *); -static int obsd_handle_transfer_completion(struct usbi_transfer *); -static int obsd_clock_gettime(int, struct timespec *); - -/* - * Private functions - */ -static int _errno_to_libusb(int); -static int _cache_active_config_descriptor(struct libusb_device *); -static int _sync_control_transfer(struct usbi_transfer *); -static int _sync_gen_transfer(struct usbi_transfer *); -static int _access_endpoint(struct libusb_transfer *); - -static int _bus_open(int); - - -const struct usbi_os_backend openbsd_backend = { - "Synchronous OpenBSD backend", - 0, - NULL, /* init() */ - NULL, /* exit() */ - obsd_get_device_list, - NULL, /* hotplug_poll */ - obsd_open, - obsd_close, - - obsd_get_device_descriptor, - obsd_get_active_config_descriptor, - obsd_get_config_descriptor, - NULL, /* get_config_descriptor_by_value() */ - - obsd_get_configuration, - obsd_set_configuration, - - obsd_claim_interface, - obsd_release_interface, - - obsd_set_interface_altsetting, - obsd_clear_halt, - obsd_reset_device, - - NULL, /* alloc_streams */ - NULL, /* free_streams */ - - NULL, /* dev_mem_alloc() */ - NULL, /* dev_mem_free() */ - - NULL, /* kernel_driver_active() */ - NULL, /* detach_kernel_driver() */ - NULL, /* attach_kernel_driver() */ - - obsd_destroy_device, - - obsd_submit_transfer, - obsd_cancel_transfer, - obsd_clear_transfer_priv, - - NULL, /* handle_events() */ - obsd_handle_transfer_completion, - - obsd_clock_gettime, - sizeof(struct device_priv), - sizeof(struct handle_priv), - 0, /* transfer_priv_size */ -}; - -#define DEVPATH "/dev/" -#define USBDEV DEVPATH "usb" - -int -obsd_get_device_list(struct libusb_context * ctx, - struct discovered_devs **discdevs) -{ - struct discovered_devs *ddd; - struct libusb_device *dev; - struct device_priv *dpriv; - struct usb_device_info di; - struct usb_device_ddesc dd; - unsigned long session_id; - char devices[USB_MAX_DEVICES]; - char busnode[16]; - char *udevname; - int fd, addr, i, j; - - usbi_dbg(""); - - for (i = 0; i < 8; i++) { - snprintf(busnode, sizeof(busnode), USBDEV "%d", i); - - if ((fd = open(busnode, O_RDWR)) < 0) { - if (errno != ENOENT && errno != ENXIO) - usbi_err(ctx, "could not open %s", busnode); - continue; - } - - bzero(devices, sizeof(devices)); - for (addr = 1; addr < USB_MAX_DEVICES; addr++) { - if (devices[addr]) - continue; - - di.udi_addr = addr; - if (ioctl(fd, USB_DEVICEINFO, &di) < 0) - continue; - - /* - * XXX If ugen(4) is attached to the USB device - * it will be used. - */ - udevname = NULL; - for (j = 0; j < USB_MAX_DEVNAMES; j++) - if (!strncmp("ugen", di.udi_devnames[j], 4)) { - udevname = strdup(di.udi_devnames[j]); - break; - } - - session_id = (di.udi_bus << 8 | di.udi_addr); - dev = usbi_get_device_by_session_id(ctx, session_id); - - if (dev == NULL) { - dev = usbi_alloc_device(ctx, session_id); - if (dev == NULL) { - close(fd); - return (LIBUSB_ERROR_NO_MEM); - } - - dev->bus_number = di.udi_bus; - dev->device_address = di.udi_addr; - dev->speed = di.udi_speed; - - dpriv = (struct device_priv *)dev->os_priv; - dpriv->fd = -1; - dpriv->cdesc = NULL; - dpriv->devname = udevname; - - dd.udd_bus = di.udi_bus; - dd.udd_addr = di.udi_addr; - if (ioctl(fd, USB_DEVICE_GET_DDESC, &dd) < 0) { - libusb_unref_device(dev); - continue; - } - dpriv->ddesc = dd.udd_desc; - - if (_cache_active_config_descriptor(dev)) { - libusb_unref_device(dev); - continue; - } - - if (usbi_sanitize_device(dev)) { - libusb_unref_device(dev); - continue; - } - } - - ddd = discovered_devs_append(*discdevs, dev); - if (ddd == NULL) { - close(fd); - return (LIBUSB_ERROR_NO_MEM); - } - libusb_unref_device(dev); - - *discdevs = ddd; - devices[addr] = 1; - } - - close(fd); - } - - return (LIBUSB_SUCCESS); -} - -int -obsd_open(struct libusb_device_handle *handle) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - char devnode[16]; - - if (dpriv->devname) { - /* - * Only open ugen(4) attached devices read-write, all - * read-only operations are done through the bus node. - */ - snprintf(devnode, sizeof(devnode), DEVPATH "%s.00", - dpriv->devname); - dpriv->fd = open(devnode, O_RDWR); - if (dpriv->fd < 0) - return _errno_to_libusb(errno); - - usbi_dbg("open %s: fd %d", devnode, dpriv->fd); - } - - return (LIBUSB_SUCCESS); -} - -void -obsd_close(struct libusb_device_handle *handle) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - - if (dpriv->devname) { - usbi_dbg("close: fd %d", dpriv->fd); - - close(dpriv->fd); - dpriv->fd = -1; - } -} - -int -obsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, - int *host_endian) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - - usbi_dbg(""); - - memcpy(buf, &dpriv->ddesc, DEVICE_DESC_LENGTH); - - *host_endian = 0; - - return (LIBUSB_SUCCESS); -} - -int -obsd_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len, int *host_endian) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - usb_config_descriptor_t *ucd = (usb_config_descriptor_t *)dpriv->cdesc; - - len = MIN(len, UGETW(ucd->wTotalLength)); - - usbi_dbg("len %d", len); - - memcpy(buf, dpriv->cdesc, len); - - *host_endian = 0; - - return (len); -} - -int -obsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len, int *host_endian) -{ - struct usb_device_fdesc udf; - int fd, err; - - if ((fd = _bus_open(dev->bus_number)) < 0) - return _errno_to_libusb(errno); - - udf.udf_bus = dev->bus_number; - udf.udf_addr = dev->device_address; - udf.udf_config_index = idx; - udf.udf_size = len; - udf.udf_data = buf; - - usbi_dbg("index %d, len %d", udf.udf_config_index, len); - - if (ioctl(fd, USB_DEVICE_GET_FDESC, &udf) < 0) { - err = errno; - close(fd); - return _errno_to_libusb(err); - } - close(fd); - - *host_endian = 0; - - return (len); -} - -int -obsd_get_configuration(struct libusb_device_handle *handle, int *config) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - usb_config_descriptor_t *ucd = (usb_config_descriptor_t *)dpriv->cdesc; - - *config = ucd->bConfigurationValue; - - usbi_dbg("bConfigurationValue %d", *config); - - return (LIBUSB_SUCCESS); -} - -int -obsd_set_configuration(struct libusb_device_handle *handle, int config) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - - if (dpriv->devname == NULL) - return (LIBUSB_ERROR_NOT_SUPPORTED); - - usbi_dbg("bConfigurationValue %d", config); - - if (ioctl(dpriv->fd, USB_SET_CONFIG, &config) < 0) - return _errno_to_libusb(errno); - - return _cache_active_config_descriptor(handle->dev); -} - -int -obsd_claim_interface(struct libusb_device_handle *handle, int iface) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - int i; - - for (i = 0; i < USB_MAX_ENDPOINTS; i++) - hpriv->endpoints[i] = -1; - - return (LIBUSB_SUCCESS); -} - -int -obsd_release_interface(struct libusb_device_handle *handle, int iface) -{ - struct handle_priv *hpriv = (struct handle_priv *)handle->os_priv; - int i; - - for (i = 0; i < USB_MAX_ENDPOINTS; i++) - if (hpriv->endpoints[i] >= 0) - close(hpriv->endpoints[i]); - - return (LIBUSB_SUCCESS); -} - -int -obsd_set_interface_altsetting(struct libusb_device_handle *handle, int iface, - int altsetting) -{ - struct device_priv *dpriv = (struct device_priv *)handle->dev->os_priv; - struct usb_alt_interface intf; - - if (dpriv->devname == NULL) - return (LIBUSB_ERROR_NOT_SUPPORTED); - - usbi_dbg("iface %d, setting %d", iface, altsetting); - - memset(&intf, 0, sizeof(intf)); - - intf.uai_interface_index = iface; - intf.uai_alt_no = altsetting; - - if (ioctl(dpriv->fd, USB_SET_ALTINTERFACE, &intf) < 0) - return _errno_to_libusb(errno); - - return (LIBUSB_SUCCESS); -} - -int -obsd_clear_halt(struct libusb_device_handle *handle, unsigned char endpoint) -{ - struct usb_ctl_request req; - int fd, err; - - if ((fd = _bus_open(handle->dev->bus_number)) < 0) - return _errno_to_libusb(errno); - - usbi_dbg(""); - - req.ucr_addr = handle->dev->device_address; - req.ucr_request.bmRequestType = UT_WRITE_ENDPOINT; - req.ucr_request.bRequest = UR_CLEAR_FEATURE; - USETW(req.ucr_request.wValue, UF_ENDPOINT_HALT); - USETW(req.ucr_request.wIndex, endpoint); - USETW(req.ucr_request.wLength, 0); - - if (ioctl(fd, USB_REQUEST, &req) < 0) { - err = errno; - close(fd); - return _errno_to_libusb(err); - } - close(fd); - - return (LIBUSB_SUCCESS); -} - -int -obsd_reset_device(struct libusb_device_handle *handle) -{ - usbi_dbg(""); - - return (LIBUSB_ERROR_NOT_SUPPORTED); -} - -void -obsd_destroy_device(struct libusb_device *dev) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - - usbi_dbg(""); - - free(dpriv->cdesc); - free(dpriv->devname); -} - -int -obsd_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - struct handle_priv *hpriv; - int err = 0; - - usbi_dbg(""); - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - hpriv = (struct handle_priv *)transfer->dev_handle->os_priv; - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - err = _sync_control_transfer(itransfer); - break; - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - if (IS_XFEROUT(transfer)) { - /* Isochronous write is not supported */ - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - err = _sync_gen_transfer(itransfer); - break; - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - if (IS_XFEROUT(transfer) && - transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET) { - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - err = _sync_gen_transfer(itransfer); - break; - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - - if (err) - return (err); - - usbi_signal_transfer_completion(itransfer); - - return (LIBUSB_SUCCESS); -} - -int -obsd_cancel_transfer(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - return (LIBUSB_ERROR_NOT_SUPPORTED); -} - -void -obsd_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - /* Nothing to do */ -} - -int -obsd_handle_transfer_completion(struct usbi_transfer *itransfer) -{ - return usbi_handle_transfer_completion(itransfer, LIBUSB_TRANSFER_COMPLETED); -} - -int -obsd_clock_gettime(int clkid, struct timespec *tp) -{ - usbi_dbg("clock %d", clkid); - - if (clkid == USBI_CLOCK_REALTIME) - return clock_gettime(CLOCK_REALTIME, tp); - - if (clkid == USBI_CLOCK_MONOTONIC) - return clock_gettime(CLOCK_MONOTONIC, tp); - - return (LIBUSB_ERROR_INVALID_PARAM); -} - -int -_errno_to_libusb(int err) -{ - usbi_dbg("error: %s (%d)", strerror(err), err); - - switch (err) { - case EIO: - return (LIBUSB_ERROR_IO); - case EACCES: - return (LIBUSB_ERROR_ACCESS); - case ENOENT: - return (LIBUSB_ERROR_NO_DEVICE); - case ENOMEM: - return (LIBUSB_ERROR_NO_MEM); - case ETIMEDOUT: - return (LIBUSB_ERROR_TIMEOUT); - } - - return (LIBUSB_ERROR_OTHER); -} - -int -_cache_active_config_descriptor(struct libusb_device *dev) -{ - struct device_priv *dpriv = (struct device_priv *)dev->os_priv; - struct usb_device_cdesc udc; - struct usb_device_fdesc udf; - unsigned char* buf; - int fd, len, err; - - if ((fd = _bus_open(dev->bus_number)) < 0) - return _errno_to_libusb(errno); - - usbi_dbg("fd %d, addr %d", fd, dev->device_address); - - udc.udc_bus = dev->bus_number; - udc.udc_addr = dev->device_address; - udc.udc_config_index = USB_CURRENT_CONFIG_INDEX; - if (ioctl(fd, USB_DEVICE_GET_CDESC, &udc) < 0) { - err = errno; - close(fd); - return _errno_to_libusb(errno); - } - - usbi_dbg("active bLength %d", udc.udc_desc.bLength); - - len = UGETW(udc.udc_desc.wTotalLength); - buf = malloc(len); - if (buf == NULL) - return (LIBUSB_ERROR_NO_MEM); - - udf.udf_bus = dev->bus_number; - udf.udf_addr = dev->device_address; - udf.udf_config_index = udc.udc_config_index; - udf.udf_size = len; - udf.udf_data = buf; - - usbi_dbg("index %d, len %d", udf.udf_config_index, len); - - if (ioctl(fd, USB_DEVICE_GET_FDESC, &udf) < 0) { - err = errno; - close(fd); - free(buf); - return _errno_to_libusb(err); - } - close(fd); - - if (dpriv->cdesc) - free(dpriv->cdesc); - dpriv->cdesc = buf; - - return (LIBUSB_SUCCESS); -} - -int -_sync_control_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - struct libusb_control_setup *setup; - struct device_priv *dpriv; - struct usb_ctl_request req; - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - dpriv = (struct device_priv *)transfer->dev_handle->dev->os_priv; - setup = (struct libusb_control_setup *)transfer->buffer; - - usbi_dbg("type %x request %x value %x index %d length %d timeout %d", - setup->bmRequestType, setup->bRequest, - libusb_le16_to_cpu(setup->wValue), - libusb_le16_to_cpu(setup->wIndex), - libusb_le16_to_cpu(setup->wLength), transfer->timeout); - - req.ucr_addr = transfer->dev_handle->dev->device_address; - req.ucr_request.bmRequestType = setup->bmRequestType; - req.ucr_request.bRequest = setup->bRequest; - /* Don't use USETW, libusb already deals with the endianness */ - (*(uint16_t *)req.ucr_request.wValue) = setup->wValue; - (*(uint16_t *)req.ucr_request.wIndex) = setup->wIndex; - (*(uint16_t *)req.ucr_request.wLength) = setup->wLength; - req.ucr_data = transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE; - - if ((transfer->flags & LIBUSB_TRANSFER_SHORT_NOT_OK) == 0) - req.ucr_flags = USBD_SHORT_XFER_OK; - - if (dpriv->devname == NULL) { - /* - * XXX If the device is not attached to ugen(4) it is - * XXX still possible to submit a control transfer but - * XXX with the default timeout only. - */ - int fd, err; - - if ((fd = _bus_open(transfer->dev_handle->dev->bus_number)) < 0) - return _errno_to_libusb(errno); - - if ((ioctl(fd, USB_REQUEST, &req)) < 0) { - err = errno; - close(fd); - return _errno_to_libusb(err); - } - close(fd); - } else { - if ((ioctl(dpriv->fd, USB_SET_TIMEOUT, &transfer->timeout)) < 0) - return _errno_to_libusb(errno); - - if ((ioctl(dpriv->fd, USB_DO_REQUEST, &req)) < 0) - return _errno_to_libusb(errno); - } - - itransfer->transferred = req.ucr_actlen; - - usbi_dbg("transferred %d", itransfer->transferred); - - return (0); -} - -int -_access_endpoint(struct libusb_transfer *transfer) -{ - struct handle_priv *hpriv; - struct device_priv *dpriv; - char devnode[16]; - int fd, endpt; - mode_t mode; - - hpriv = (struct handle_priv *)transfer->dev_handle->os_priv; - dpriv = (struct device_priv *)transfer->dev_handle->dev->os_priv; - - endpt = UE_GET_ADDR(transfer->endpoint); - mode = IS_XFERIN(transfer) ? O_RDONLY : O_WRONLY; - - usbi_dbg("endpoint %d mode %d", endpt, mode); - - if (hpriv->endpoints[endpt] < 0) { - /* Pick the right endpoint node */ - snprintf(devnode, sizeof(devnode), DEVPATH "%s.%02d", - dpriv->devname, endpt); - - /* We may need to read/write to the same endpoint later. */ - if (((fd = open(devnode, O_RDWR)) < 0) && (errno == ENXIO)) - if ((fd = open(devnode, mode)) < 0) - return (-1); - - hpriv->endpoints[endpt] = fd; - } - - return (hpriv->endpoints[endpt]); -} - -int -_sync_gen_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - struct device_priv *dpriv; - int fd, nr = 1; - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - dpriv = (struct device_priv *)transfer->dev_handle->dev->os_priv; - - if (dpriv->devname == NULL) - return (LIBUSB_ERROR_NOT_SUPPORTED); - - /* - * Bulk, Interrupt or Isochronous transfer depends on the - * endpoint and thus the node to open. - */ - if ((fd = _access_endpoint(transfer)) < 0) - return _errno_to_libusb(errno); - - if ((ioctl(fd, USB_SET_TIMEOUT, &transfer->timeout)) < 0) - return _errno_to_libusb(errno); - - if (IS_XFERIN(transfer)) { - if ((transfer->flags & LIBUSB_TRANSFER_SHORT_NOT_OK) == 0) - if ((ioctl(fd, USB_SET_SHORT_XFER, &nr)) < 0) - return _errno_to_libusb(errno); - - nr = read(fd, transfer->buffer, transfer->length); - } else { - nr = write(fd, transfer->buffer, transfer->length); - } - - if (nr < 0) - return _errno_to_libusb(errno); - - itransfer->transferred = nr; - - return (0); -} - -int -_bus_open(int number) -{ - char busnode[16]; - - snprintf(busnode, sizeof(busnode), USBDEV "%d", number); - - return open(busnode, O_RDWR); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.c deleted file mode 100644 index e2f55a57..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * poll_posix: poll compatibility wrapper for POSIX systems - * Copyright © 2013 RealVNC Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#include - -#include -#include -#include -#include - -#include "libusbi.h" - -int usbi_pipe(int pipefd[2]) -{ - int ret = pipe(pipefd); - if (ret != 0) { - return ret; - } - ret = fcntl(pipefd[1], F_GETFL); - if (ret == -1) { - usbi_dbg("Failed to get pipe fd flags: %d", errno); - goto err_close_pipe; - } - ret = fcntl(pipefd[1], F_SETFL, ret | O_NONBLOCK); - if (ret != 0) { - usbi_dbg("Failed to set non-blocking on new pipe: %d", errno); - goto err_close_pipe; - } - - return 0; - -err_close_pipe: - usbi_close(pipefd[0]); - usbi_close(pipefd[1]); - return ret; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.h deleted file mode 100644 index 5b4b2c90..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_posix.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef LIBUSB_POLL_POSIX_H -#define LIBUSB_POLL_POSIX_H - -#define usbi_write write -#define usbi_read read -#define usbi_close close -#define usbi_poll poll - -int usbi_pipe(int pipefd[2]); - -#endif /* LIBUSB_POLL_POSIX_H */ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.c deleted file mode 100644 index 98256075..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.c +++ /dev/null @@ -1,728 +0,0 @@ -/* - * poll_windows: poll compatibility wrapper for Windows - * Copyright © 2012-2013 RealVNC Ltd. - * Copyright © 2009-2010 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of poll implementation from libusb-win32, by Stephan Meyer et al. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -/* - * poll() and pipe() Windows compatibility layer for libusb 1.0 - * - * The way this layer works is by using OVERLAPPED with async I/O transfers, as - * OVERLAPPED have an associated event which is flagged for I/O completion. - * - * For USB pollable async I/O, you would typically: - * - obtain a Windows HANDLE to a file or device that has been opened in - * OVERLAPPED mode - * - call usbi_create_fd with this handle to obtain a custom fd. - * Note that if you need simultaneous R/W access, you need to call create_fd - * twice, once in RW_READ and once in RW_WRITE mode to obtain 2 separate - * pollable fds - * - leave the core functions call the poll routine and flag POLLIN/POLLOUT - * - * The pipe pollable synchronous I/O works using the overlapped event associated - * with a fake pipe. The read/write functions are only meant to be used in that - * context. - */ -#include - -#include -#include -#include - -#include "libusbi.h" - -// Uncomment to debug the polling layer -//#define DEBUG_POLL_WINDOWS -#if defined(DEBUG_POLL_WINDOWS) -#define poll_dbg usbi_dbg -#else -// MSVC++ < 2005 cannot use a variadic argument and non MSVC -// compilers produce warnings if parenthesis are omitted. -#if defined(_MSC_VER) && (_MSC_VER < 1400) -#define poll_dbg -#else -#define poll_dbg(...) -#endif -#endif - -#if defined(_PREFAST_) -#pragma warning(disable:28719) -#endif - -#define CHECK_INIT_POLLING do {if(!is_polling_set) init_polling();} while(0) - -// public fd data -const struct winfd INVALID_WINFD = {-1, INVALID_HANDLE_VALUE, NULL, NULL, NULL, RW_NONE}; -struct winfd poll_fd[MAX_FDS]; -// internal fd data -struct { - CRITICAL_SECTION mutex; // lock for fds - // Additional variables for XP CancelIoEx partial emulation - HANDLE original_handle; - DWORD thread_id; -} _poll_fd[MAX_FDS]; - -// globals -BOOLEAN is_polling_set = FALSE; -LONG pipe_number = 0; -static volatile LONG compat_spinlock = 0; - -#if !defined(_WIN32_WCE) -// CancelIoEx, available on Vista and later only, provides the ability to cancel -// a single transfer (OVERLAPPED) when used. As it may not be part of any of the -// platform headers, we hook into the Kernel32 system DLL directly to seek it. -static BOOL (__stdcall *pCancelIoEx)(HANDLE, LPOVERLAPPED) = NULL; -#define Use_Duplicate_Handles (pCancelIoEx == NULL) - -static inline void setup_cancel_io(void) -{ - HMODULE hKernel32 = GetModuleHandleA("KERNEL32"); - if (hKernel32 != NULL) { - pCancelIoEx = (BOOL (__stdcall *)(HANDLE,LPOVERLAPPED)) - GetProcAddress(hKernel32, "CancelIoEx"); - } - usbi_dbg("Will use CancelIo%s for I/O cancellation", - Use_Duplicate_Handles?"":"Ex"); -} - -static inline BOOL cancel_io(int _index) -{ - if ((_index < 0) || (_index >= MAX_FDS)) { - return FALSE; - } - - if ( (poll_fd[_index].fd < 0) || (poll_fd[_index].handle == INVALID_HANDLE_VALUE) - || (poll_fd[_index].handle == 0) || (poll_fd[_index].overlapped == NULL) ) { - return TRUE; - } - if (poll_fd[_index].itransfer && poll_fd[_index].cancel_fn) { - // Cancel outstanding transfer via the specific callback - (*poll_fd[_index].cancel_fn)(poll_fd[_index].itransfer); - return TRUE; - } - if (pCancelIoEx != NULL) { - return (*pCancelIoEx)(poll_fd[_index].handle, poll_fd[_index].overlapped); - } - if (_poll_fd[_index].thread_id == GetCurrentThreadId()) { - return CancelIo(poll_fd[_index].handle); - } - usbi_warn(NULL, "Unable to cancel I/O that was started from another thread"); - return FALSE; -} -#else -#define Use_Duplicate_Handles FALSE - -static __inline void setup_cancel_io() -{ - // No setup needed on WinCE -} - -static __inline BOOL cancel_io(int _index) -{ - if ((_index < 0) || (_index >= MAX_FDS)) { - return FALSE; - } - if ( (poll_fd[_index].fd < 0) || (poll_fd[_index].handle == INVALID_HANDLE_VALUE) - || (poll_fd[_index].handle == 0) || (poll_fd[_index].overlapped == NULL) ) { - return TRUE; - } - if (poll_fd[_index].itransfer && poll_fd[_index].cancel_fn) { - // Cancel outstanding transfer via the specific callback - (*poll_fd[_index].cancel_fn)(poll_fd[_index].itransfer); - } - return TRUE; -} -#endif - -// Init -void init_polling(void) -{ - int i; - - while (InterlockedExchange((LONG *)&compat_spinlock, 1) == 1) { - SleepEx(0, TRUE); - } - if (!is_polling_set) { - setup_cancel_io(); - for (i=0; ihEvent = CreateEvent(NULL, TRUE, FALSE, NULL); - if(overlapped->hEvent == NULL) { - free (overlapped); - return NULL; - } - return overlapped; -} - -static void free_overlapped(OVERLAPPED *overlapped) -{ - if (overlapped == NULL) - return; - - if ( (overlapped->hEvent != 0) - && (overlapped->hEvent != INVALID_HANDLE_VALUE) ) { - CloseHandle(overlapped->hEvent); - } - free(overlapped); -} - -void exit_polling(void) -{ - int i; - - while (InterlockedExchange((LONG *)&compat_spinlock, 1) == 1) { - SleepEx(0, TRUE); - } - if (is_polling_set) { - is_polling_set = FALSE; - - for (i=0; iInternal = STATUS_PENDING; - overlapped->InternalHigh = 0; - - for (i=0; i= 0) { - LeaveCriticalSection(&_poll_fd[i].mutex); - continue; - } - - // Use index as the unique fd number - poll_fd[i].fd = i; - // Read end of the "pipe" - filedes[0] = poll_fd[i].fd; - // We can use the same handle for both ends - filedes[1] = filedes[0]; - - poll_fd[i].handle = DUMMY_HANDLE; - poll_fd[i].overlapped = overlapped; - // There's no polling on the write end, so we just use READ for our needs - poll_fd[i].rw = RW_READ; - _poll_fd[i].original_handle = INVALID_HANDLE_VALUE; - LeaveCriticalSection(&_poll_fd[i].mutex); - return 0; - } - } - free_overlapped(overlapped); - return -1; -} - -/* - * Create both an fd and an OVERLAPPED from an open Windows handle, so that - * it can be used with our polling function - * The handle MUST support overlapped transfers (usually requires CreateFile - * with FILE_FLAG_OVERLAPPED) - * Return a pollable file descriptor struct, or INVALID_WINFD on error - * - * Note that the fd returned by this function is a per-transfer fd, rather - * than a per-session fd and cannot be used for anything else but our - * custom functions (the fd itself points to the NUL: device) - * if you plan to do R/W on the same handle, you MUST create 2 fds: one for - * read and one for write. Using a single R/W fd is unsupported and will - * produce unexpected results - */ -struct winfd usbi_create_fd(HANDLE handle, int access_mode, struct usbi_transfer *itransfer, cancel_transfer *cancel_fn) -{ - int i; - struct winfd wfd = INVALID_WINFD; - OVERLAPPED* overlapped = NULL; - - CHECK_INIT_POLLING; - - if ((handle == 0) || (handle == INVALID_HANDLE_VALUE)) { - return INVALID_WINFD; - } - - wfd.itransfer = itransfer; - wfd.cancel_fn = cancel_fn; - - if ((access_mode != RW_READ) && (access_mode != RW_WRITE)) { - usbi_warn(NULL, "only one of RW_READ or RW_WRITE are supported. " - "If you want to poll for R/W simultaneously, create multiple fds from the same handle."); - return INVALID_WINFD; - } - if (access_mode == RW_READ) { - wfd.rw = RW_READ; - } else { - wfd.rw = RW_WRITE; - } - - overlapped = create_overlapped(); - if(overlapped == NULL) { - return INVALID_WINFD; - } - - for (i=0; i= 0) { - LeaveCriticalSection(&_poll_fd[i].mutex); - continue; - } - // Use index as the unique fd number - wfd.fd = i; - // Attempt to emulate some of the CancelIoEx behaviour on platforms - // that don't have it - if (Use_Duplicate_Handles) { - _poll_fd[i].thread_id = GetCurrentThreadId(); - if (!DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(), - &wfd.handle, 0, TRUE, DUPLICATE_SAME_ACCESS)) { - usbi_dbg("could not duplicate handle for CancelIo - using original one"); - wfd.handle = handle; - // Make sure we won't close the original handle on fd deletion then - _poll_fd[i].original_handle = INVALID_HANDLE_VALUE; - } else { - _poll_fd[i].original_handle = handle; - } - } else { - wfd.handle = handle; - } - wfd.overlapped = overlapped; - memcpy(&poll_fd[i], &wfd, sizeof(struct winfd)); - LeaveCriticalSection(&_poll_fd[i].mutex); - return wfd; - } - } - free_overlapped(overlapped); - return INVALID_WINFD; -} - -static void _free_index(int _index) -{ - // Cancel any async IO (Don't care about the validity of our handles for this) - cancel_io(_index); - // close the duplicate handle (if we have an actual duplicate) - if (Use_Duplicate_Handles) { - if (_poll_fd[_index].original_handle != INVALID_HANDLE_VALUE) { - CloseHandle(poll_fd[_index].handle); - } - _poll_fd[_index].original_handle = INVALID_HANDLE_VALUE; - _poll_fd[_index].thread_id = 0; - } - free_overlapped(poll_fd[_index].overlapped); - poll_fd[_index] = INVALID_WINFD; -} - -/* - * Release a pollable file descriptor. - * - * Note that the associated Windows handle is not closed by this call - */ -void usbi_free_fd(struct winfd *wfd) -{ - int _index; - - CHECK_INIT_POLLING; - - _index = _fd_to_index_and_lock(wfd->fd); - if (_index < 0) { - return; - } - _free_index(_index); - *wfd = INVALID_WINFD; - LeaveCriticalSection(&_poll_fd[_index].mutex); -} - -/* - * The functions below perform various conversions between fd, handle and OVERLAPPED - */ -struct winfd fd_to_winfd(int fd) -{ - int i; - struct winfd wfd; - - CHECK_INIT_POLLING; - - if (fd < 0) - return INVALID_WINFD; - - for (i=0; i= 0) { - LeaveCriticalSection(&_poll_fd[_index].mutex); - } - usbi_warn(NULL, "invalid fd"); - triggered = -1; - goto poll_exit; - } - - // IN or OUT must match our fd direction - if ((fds[i].events & POLLIN) && (poll_fd[_index].rw != RW_READ)) { - fds[i].revents |= POLLNVAL | POLLERR; - errno = EBADF; - usbi_warn(NULL, "attempted POLLIN on fd without READ access"); - LeaveCriticalSection(&_poll_fd[_index].mutex); - triggered = -1; - goto poll_exit; - } - - if ((fds[i].events & POLLOUT) && (poll_fd[_index].rw != RW_WRITE)) { - fds[i].revents |= POLLNVAL | POLLERR; - errno = EBADF; - usbi_warn(NULL, "attempted POLLOUT on fd without WRITE access"); - LeaveCriticalSection(&_poll_fd[_index].mutex); - triggered = -1; - goto poll_exit; - } - - // The following macro only works if overlapped I/O was reported pending - if ( (HasOverlappedIoCompleted(poll_fd[_index].overlapped)) - || (HasOverlappedIoCompletedSync(poll_fd[_index].overlapped)) ) { - poll_dbg(" completed"); - // checks above should ensure this works: - fds[i].revents = fds[i].events; - triggered++; - } else { - handles_to_wait_on[nb_handles_to_wait_on] = poll_fd[_index].overlapped->hEvent; - handle_to_index[nb_handles_to_wait_on] = i; - nb_handles_to_wait_on++; - } - LeaveCriticalSection(&_poll_fd[_index].mutex); - } - - // If nothing was triggered, wait on all fds that require it - if ((timeout != 0) && (triggered == 0) && (nb_handles_to_wait_on != 0)) { - if (timeout < 0) { - poll_dbg("starting infinite wait for %u handles...", (unsigned int)nb_handles_to_wait_on); - } else { - poll_dbg("starting %d ms wait for %u handles...", timeout, (unsigned int)nb_handles_to_wait_on); - } - ret = WaitForMultipleObjects(nb_handles_to_wait_on, handles_to_wait_on, - FALSE, (timeout<0)?INFINITE:(DWORD)timeout); - object_index = ret-WAIT_OBJECT_0; - if ((object_index >= 0) && ((DWORD)object_index < nb_handles_to_wait_on)) { - poll_dbg(" completed after wait"); - i = handle_to_index[object_index]; - _index = _fd_to_index_and_lock(fds[i].fd); - fds[i].revents = fds[i].events; - triggered++; - if (_index >= 0) { - LeaveCriticalSection(&_poll_fd[_index].mutex); - } - } else if (ret == WAIT_TIMEOUT) { - poll_dbg(" timed out"); - triggered = 0; // 0 = timeout - } else { - errno = EIO; - triggered = -1; // error - } - } - -poll_exit: - if (handles_to_wait_on != NULL) { - free(handles_to_wait_on); - } - if (handle_to_index != NULL) { - free(handle_to_index); - } - return triggered; -} - -/* - * close a fake pipe fd - */ -int usbi_close(int fd) -{ - int _index; - int r = -1; - - CHECK_INIT_POLLING; - - _index = _fd_to_index_and_lock(fd); - - if (_index < 0) { - errno = EBADF; - } else { - free_overlapped(poll_fd[_index].overlapped); - poll_fd[_index] = INVALID_WINFD; - LeaveCriticalSection(&_poll_fd[_index].mutex); - } - return r; -} - -/* - * synchronous write for fake "pipe" signaling - */ -ssize_t usbi_write(int fd, const void *buf, size_t count) -{ - int _index; - UNUSED(buf); - - CHECK_INIT_POLLING; - - if (count != sizeof(unsigned char)) { - usbi_err(NULL, "this function should only used for signaling"); - return -1; - } - - _index = _fd_to_index_and_lock(fd); - - if ( (_index < 0) || (poll_fd[_index].overlapped == NULL) ) { - errno = EBADF; - if (_index >= 0) { - LeaveCriticalSection(&_poll_fd[_index].mutex); - } - return -1; - } - - poll_dbg("set pipe event (fd = %d, thread = %08X)", _index, (unsigned int)GetCurrentThreadId()); - SetEvent(poll_fd[_index].overlapped->hEvent); - poll_fd[_index].overlapped->Internal = STATUS_WAIT_0; - // If two threads write on the pipe at the same time, we need to - // process two separate reads => use the overlapped as a counter - poll_fd[_index].overlapped->InternalHigh++; - - LeaveCriticalSection(&_poll_fd[_index].mutex); - return sizeof(unsigned char); -} - -/* - * synchronous read for fake "pipe" signaling - */ -ssize_t usbi_read(int fd, void *buf, size_t count) -{ - int _index; - ssize_t r = -1; - UNUSED(buf); - - CHECK_INIT_POLLING; - - if (count != sizeof(unsigned char)) { - usbi_err(NULL, "this function should only used for signaling"); - return -1; - } - - _index = _fd_to_index_and_lock(fd); - - if (_index < 0) { - errno = EBADF; - return -1; - } - - if (WaitForSingleObject(poll_fd[_index].overlapped->hEvent, INFINITE) != WAIT_OBJECT_0) { - usbi_warn(NULL, "waiting for event failed: %u", (unsigned int)GetLastError()); - errno = EIO; - goto out; - } - - poll_dbg("clr pipe event (fd = %d, thread = %08X)", _index, (unsigned int)GetCurrentThreadId()); - poll_fd[_index].overlapped->InternalHigh--; - // Don't reset unless we don't have any more events to process - if (poll_fd[_index].overlapped->InternalHigh <= 0) { - ResetEvent(poll_fd[_index].overlapped->hEvent); - poll_fd[_index].overlapped->Internal = STATUS_PENDING; - } - - r = sizeof(unsigned char); - -out: - LeaveCriticalSection(&_poll_fd[_index].mutex); - return r; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.h deleted file mode 100644 index aa4c985d..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/poll_windows.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Windows compat: POSIX compatibility wrapper - * Copyright © 2012-2013 RealVNC Ltd. - * Copyright © 2009-2010 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of poll implementation from libusb-win32, by Stephan Meyer et al. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ -#pragma once - -#if defined(_MSC_VER) -// disable /W4 MSVC warnings that are benign -#pragma warning(disable:4127) // conditional expression is constant -#endif - -// Handle synchronous completion through the overlapped structure -#if !defined(STATUS_REPARSE) // reuse the REPARSE status code -#define STATUS_REPARSE ((LONG)0x00000104L) -#endif -#define STATUS_COMPLETED_SYNCHRONOUSLY STATUS_REPARSE -#if defined(_WIN32_WCE) -// WinCE doesn't have a HasOverlappedIoCompleted() macro, so attempt to emulate it -#define HasOverlappedIoCompleted(lpOverlapped) (((DWORD)(lpOverlapped)->Internal) != STATUS_PENDING) -#endif -#define HasOverlappedIoCompletedSync(lpOverlapped) (((DWORD)(lpOverlapped)->Internal) == STATUS_COMPLETED_SYNCHRONOUSLY) - -#define DUMMY_HANDLE ((HANDLE)(LONG_PTR)-2) - -/* Windows versions */ -enum windows_version { - WINDOWS_CE = -2, - WINDOWS_UNDEFINED = -1, - WINDOWS_UNSUPPORTED = 0, - WINDOWS_XP = 0x51, - WINDOWS_2003 = 0x52, // Also XP x64 - WINDOWS_VISTA = 0x60, - WINDOWS_7 = 0x61, - WINDOWS_8 = 0x62, - WINDOWS_8_1_OR_LATER = 0x63, - WINDOWS_MAX -}; -extern int windows_version; - -#define MAX_FDS 256 - -#define POLLIN 0x0001 /* There is data to read */ -#define POLLPRI 0x0002 /* There is urgent data to read */ -#define POLLOUT 0x0004 /* Writing now will not block */ -#define POLLERR 0x0008 /* Error condition */ -#define POLLHUP 0x0010 /* Hung up */ -#define POLLNVAL 0x0020 /* Invalid request: fd not open */ - -struct pollfd { - int fd; /* file descriptor */ - short events; /* requested events */ - short revents; /* returned events */ -}; - -// access modes -enum rw_type { - RW_NONE, - RW_READ, - RW_WRITE, -}; - -// fd struct that can be used for polling on Windows -typedef int cancel_transfer(struct usbi_transfer *itransfer); - -struct winfd { - int fd; // what's exposed to libusb core - HANDLE handle; // what we need to attach overlapped to the I/O op, so we can poll it - OVERLAPPED* overlapped; // what will report our I/O status - struct usbi_transfer *itransfer; // Associated transfer, or NULL if completed - cancel_transfer *cancel_fn; // Function pointer to cancel transfer API - enum rw_type rw; // I/O transfer direction: read *XOR* write (NOT BOTH) -}; -extern const struct winfd INVALID_WINFD; - -int usbi_pipe(int pipefd[2]); -int usbi_poll(struct pollfd *fds, unsigned int nfds, int timeout); -ssize_t usbi_write(int fd, const void *buf, size_t count); -ssize_t usbi_read(int fd, void *buf, size_t count); -int usbi_close(int fd); - -void init_polling(void); -void exit_polling(void); -struct winfd usbi_create_fd(HANDLE handle, int access_mode, - struct usbi_transfer *transfer, cancel_transfer *cancel_fn); -void usbi_free_fd(struct winfd* winfd); -struct winfd fd_to_winfd(int fd); -struct winfd handle_to_winfd(HANDLE handle); -struct winfd overlapped_to_winfd(OVERLAPPED* overlapped); - -/* - * Timeval operations - */ -#if defined(DDKBUILD) -#include // defines timeval functions on DDK -#endif - -#if !defined(TIMESPEC_TO_TIMEVAL) -#define TIMESPEC_TO_TIMEVAL(tv, ts) { \ - (tv)->tv_sec = (long)(ts)->tv_sec; \ - (tv)->tv_usec = (long)(ts)->tv_nsec / 1000; \ -} -#endif -#if !defined(timersub) -#define timersub(a, b, result) \ -do { \ - (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ - (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ - if ((result)->tv_usec < 0) { \ - --(result)->tv_sec; \ - (result)->tv_usec += 1000000; \ - } \ -} while (0) -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.c deleted file mode 100644 index cb608976..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.c +++ /dev/null @@ -1,1292 +0,0 @@ -/* - * - * Copyright (c) 2016, Oracle and/or its affiliates. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libusbi.h" -#include "sunos_usb.h" - -/* - * Backend functions - */ -static int sunos_init(struct libusb_context *); -static void sunos_exit(void); -static int sunos_get_device_list(struct libusb_context *, - struct discovered_devs **); -static int sunos_open(struct libusb_device_handle *); -static void sunos_close(struct libusb_device_handle *); -static int sunos_get_device_descriptor(struct libusb_device *, - uint8_t*, int *); -static int sunos_get_active_config_descriptor(struct libusb_device *, - uint8_t*, size_t, int *); -static int sunos_get_config_descriptor(struct libusb_device *, uint8_t, - uint8_t*, size_t, int *); -static int sunos_get_configuration(struct libusb_device_handle *, int *); -static int sunos_set_configuration(struct libusb_device_handle *, int); -static int sunos_claim_interface(struct libusb_device_handle *, int); -static int sunos_release_interface(struct libusb_device_handle *, int); -static int sunos_set_interface_altsetting(struct libusb_device_handle *, - int, int); -static int sunos_clear_halt(struct libusb_device_handle *, uint8_t); -static int sunos_reset_device(struct libusb_device_handle *); -static void sunos_destroy_device(struct libusb_device *); -static int sunos_submit_transfer(struct usbi_transfer *); -static int sunos_cancel_transfer(struct usbi_transfer *); -static void sunos_clear_transfer_priv(struct usbi_transfer *); -static int sunos_handle_transfer_completion(struct usbi_transfer *); -static int sunos_clock_gettime(int, struct timespec *); - -/* - * Private functions - */ -static int _errno_to_libusb(int); -static int sunos_usb_get_status(int fd); - -static int sunos_init(struct libusb_context *ctx) -{ - return (LIBUSB_SUCCESS); -} - -static void sunos_exit(void) -{ - usbi_dbg(""); -} - -static int -sunos_fill_in_dev_info(di_node_t node, struct libusb_device *dev) -{ - int proplen; - int n, *addr, *port_prop; - char *phypath; - uint8_t *rdata; - struct libusb_device_descriptor *descr; - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)dev->os_priv; - - /* Device descriptors */ - proplen = di_prop_lookup_bytes(DDI_DEV_T_ANY, node, - "usb-dev-descriptor", &rdata); - if (proplen <= 0) { - - return (LIBUSB_ERROR_IO); - } - - descr = (struct libusb_device_descriptor *)rdata; - bcopy(descr, &dpriv->dev_descr, LIBUSB_DT_DEVICE_SIZE); - dpriv->dev_descr.bcdUSB = libusb_cpu_to_le16(descr->bcdUSB); - dpriv->dev_descr.idVendor = libusb_cpu_to_le16(descr->idVendor); - dpriv->dev_descr.idProduct = libusb_cpu_to_le16(descr->idProduct); - dpriv->dev_descr.bcdDevice = libusb_cpu_to_le16(descr->bcdDevice); - - /* Raw configuration descriptors */ - proplen = di_prop_lookup_bytes(DDI_DEV_T_ANY, node, - "usb-raw-cfg-descriptors", &rdata); - if (proplen <= 0) { - usbi_dbg("can't find raw config descriptors"); - - return (LIBUSB_ERROR_IO); - } - dpriv->raw_cfgdescr = calloc(1, proplen); - if (dpriv->raw_cfgdescr == NULL) { - return (LIBUSB_ERROR_NO_MEM); - } else { - bcopy(rdata, dpriv->raw_cfgdescr, proplen); - dpriv->cfgvalue = ((struct libusb_config_descriptor *) - rdata)->bConfigurationValue; - } - - n = di_prop_lookup_ints(DDI_DEV_T_ANY, node, "reg", &port_prop); - - if ((n != 1) || (*port_prop <= 0)) { - return (LIBUSB_ERROR_IO); - } - dev->port_number = *port_prop; - - /* device physical path */ - phypath = di_devfs_path(node); - if (phypath) { - dpriv->phypath = strdup(phypath); - di_devfs_path_free(phypath); - } else { - free(dpriv->raw_cfgdescr); - - return (LIBUSB_ERROR_IO); - } - - /* address */ - n = di_prop_lookup_ints(DDI_DEV_T_ANY, node, "assigned-address", &addr); - if (n != 1 || *addr == 0) { - usbi_dbg("can't get address"); - } else { - dev->device_address = *addr; - } - - /* speed */ - if (di_prop_exists(DDI_DEV_T_ANY, node, "low-speed") == 1) { - dev->speed = LIBUSB_SPEED_LOW; - } else if (di_prop_exists(DDI_DEV_T_ANY, node, "high-speed") == 1) { - dev->speed = LIBUSB_SPEED_HIGH; - } else if (di_prop_exists(DDI_DEV_T_ANY, node, "full-speed") == 1) { - dev->speed = LIBUSB_SPEED_FULL; - } else if (di_prop_exists(DDI_DEV_T_ANY, node, "super-speed") == 1) { - dev->speed = LIBUSB_SPEED_SUPER; - } - - usbi_dbg("vid=%x pid=%x, path=%s, bus_nmber=0x%x, port_number=%d, " - "speed=%d", dpriv->dev_descr.idVendor, dpriv->dev_descr.idProduct, - dpriv->phypath, dev->bus_number, dev->port_number, dev->speed); - - return (LIBUSB_SUCCESS); -} - - -static int -sunos_add_devices(di_devlink_t link, void *arg) -{ - struct devlink_cbarg *largs = (struct devlink_cbarg *)arg; - struct node_args *nargs; - di_node_t myself, pnode; - uint64_t session_id = 0; - uint16_t bdf = 0; - struct libusb_device *dev; - sunos_dev_priv_t *devpriv; - const char *path, *newpath; - int n, i; - int *addr_prop; - uint8_t bus_number = 0; - - nargs = (struct node_args *)largs->nargs; - myself = largs->myself; - if (nargs->last_ugenpath) { - /* the same node's links */ - return (DI_WALK_CONTINUE); - } - - /* - * Construct session ID. - * session ID = ...parent hub addr|hub addr|dev addr. - */ - pnode = myself; - i = 0; - while (pnode != DI_NODE_NIL) { - if (di_prop_exists(DDI_DEV_T_ANY, pnode, "root-hub") == 1) { - /* walk to root */ - uint32_t *regbuf = NULL; - uint32_t reg; - - n = di_prop_lookup_ints(DDI_DEV_T_ANY, pnode, "reg", - (int **)®buf); - reg = regbuf[0]; - bdf = (PCI_REG_BUS_G(reg) << 8) | - (PCI_REG_DEV_G(reg) << 3) | PCI_REG_FUNC_G(reg); - session_id |= (bdf << i * 8); - - /* same as 'unit-address' property */ - bus_number = - (PCI_REG_DEV_G(reg) << 3) | PCI_REG_FUNC_G(reg); - - usbi_dbg("device bus address=%s:%x", - di_bus_addr(pnode), bus_number); - - break; - } - - /* usb_addr */ - n = di_prop_lookup_ints(DDI_DEV_T_ANY, pnode, - "assigned-address", &addr_prop); - if ((n != 1) || (addr_prop[0] == 0)) { - usbi_dbg("cannot get valid usb_addr"); - - return (DI_WALK_CONTINUE); - } - - session_id |= ((addr_prop[0] & 0xff) << i * 8); - if (++i > 7) - break; - - pnode = di_parent_node(pnode); - } - - path = di_devlink_path(link); - dev = usbi_get_device_by_session_id(nargs->ctx, session_id); - if (dev == NULL) { - dev = usbi_alloc_device(nargs->ctx, session_id); - if (dev == NULL) { - usbi_dbg("can't alloc device"); - - return (DI_WALK_TERMINATE); - } - devpriv = (sunos_dev_priv_t *)dev->os_priv; - if ((newpath = strrchr(path, '/')) == NULL) { - libusb_unref_device(dev); - - return (DI_WALK_TERMINATE); - } - devpriv->ugenpath = strndup(path, strlen(path) - - strlen(newpath)); - dev->bus_number = bus_number; - - if (sunos_fill_in_dev_info(myself, dev) != LIBUSB_SUCCESS) { - libusb_unref_device(dev); - - return (DI_WALK_TERMINATE); - } - if (usbi_sanitize_device(dev) < 0) { - libusb_unref_device(dev); - usbi_dbg("sanatize failed: "); - return (DI_WALK_TERMINATE); - } - } else { - usbi_dbg("Dev %s exists", path); - } - - devpriv = (sunos_dev_priv_t *)dev->os_priv; - if (nargs->last_ugenpath == NULL) { - /* first device */ - nargs->last_ugenpath = devpriv->ugenpath; - - if (discovered_devs_append(*(nargs->discdevs), dev) == NULL) { - usbi_dbg("cannot append device"); - } - - /* - * we alloc and hence ref this dev. We don't need to ref it - * hereafter. Front end or app should take care of their ref. - */ - libusb_unref_device(dev); - } - - usbi_dbg("Device %s %s id=0x%llx, devcount:%d, bdf=%x", - devpriv->ugenpath, path, (uint64_t)session_id, - (*nargs->discdevs)->len, bdf); - - return (DI_WALK_CONTINUE); -} - -static int -sunos_walk_minor_node_link(di_node_t node, void *args) -{ - di_minor_t minor = DI_MINOR_NIL; - char *minor_path; - struct devlink_cbarg arg; - struct node_args *nargs = (struct node_args *)args; - di_devlink_handle_t devlink_hdl = nargs->dlink_hdl; - - /* walk each minor to find ugen devices */ - while ((minor = di_minor_next(node, minor)) != DI_MINOR_NIL) { - minor_path = di_devfs_minor_path(minor); - arg.nargs = args; - arg.myself = node; - arg.minor = minor; - (void) di_devlink_walk(devlink_hdl, - "^usb/[0-9a-f]+[.][0-9a-f]+", minor_path, - DI_PRIMARY_LINK, (void *)&arg, sunos_add_devices); - di_devfs_path_free(minor_path); - } - - /* switch to a different node */ - nargs->last_ugenpath = NULL; - - return (DI_WALK_CONTINUE); -} - -int -sunos_get_device_list(struct libusb_context * ctx, - struct discovered_devs **discdevs) -{ - di_node_t root_node; - struct node_args args; - di_devlink_handle_t devlink_hdl; - - args.ctx = ctx; - args.discdevs = discdevs; - args.last_ugenpath = NULL; - if ((root_node = di_init("/", DINFOCPYALL)) == DI_NODE_NIL) { - usbi_dbg("di_int() failed: %s", strerror(errno)); - return (LIBUSB_ERROR_IO); - } - - if ((devlink_hdl = di_devlink_init(NULL, 0)) == NULL) { - di_fini(root_node); - usbi_dbg("di_devlink_init() failed: %s", strerror(errno)); - - return (LIBUSB_ERROR_IO); - } - args.dlink_hdl = devlink_hdl; - - /* walk each node to find USB devices */ - if (di_walk_node(root_node, DI_WALK_SIBFIRST, &args, - sunos_walk_minor_node_link) == -1) { - usbi_dbg("di_walk_node() failed: %s", strerror(errno)); - di_fini(root_node); - - return (LIBUSB_ERROR_IO); - } - - di_fini(root_node); - di_devlink_fini(&devlink_hdl); - - usbi_dbg("%d devices", (*discdevs)->len); - - return ((*discdevs)->len); -} - -static int -sunos_usb_open_ep0(sunos_dev_handle_priv_t *hpriv, sunos_dev_priv_t *dpriv) -{ - char filename[PATH_MAX + 1]; - - if (hpriv->eps[0].datafd > 0) { - - return (LIBUSB_SUCCESS); - } - snprintf(filename, PATH_MAX, "%s/cntrl0", dpriv->ugenpath); - - usbi_dbg("opening %s", filename); - hpriv->eps[0].datafd = open(filename, O_RDWR); - if (hpriv->eps[0].datafd < 0) { - return(_errno_to_libusb(errno)); - } - - snprintf(filename, PATH_MAX, "%s/cntrl0stat", dpriv->ugenpath); - hpriv->eps[0].statfd = open(filename, O_RDONLY); - if (hpriv->eps[0].statfd < 0) { - close(hpriv->eps[0].datafd); - hpriv->eps[0].datafd = -1; - - return(_errno_to_libusb(errno)); - } - - return (LIBUSB_SUCCESS); -} - -static void -sunos_usb_close_all_eps(sunos_dev_handle_priv_t *hdev) -{ - int i; - - /* not close ep0 */ - for (i = 1; i < USB_MAXENDPOINTS; i++) { - if (hdev->eps[i].datafd != -1) { - (void) close(hdev->eps[i].datafd); - hdev->eps[i].datafd = -1; - } - if (hdev->eps[i].statfd != -1) { - (void) close(hdev->eps[i].statfd); - hdev->eps[i].statfd = -1; - } - } -} - -static void -sunos_usb_close_ep0(sunos_dev_handle_priv_t *hdev, sunos_dev_priv_t *dpriv) -{ - if (hdev->eps[0].datafd >= 0) { - close(hdev->eps[0].datafd); - close(hdev->eps[0].statfd); - hdev->eps[0].datafd = -1; - hdev->eps[0].statfd = -1; - } -} - -static uchar_t -sunos_usb_ep_index(uint8_t ep_addr) -{ - return ((ep_addr & LIBUSB_ENDPOINT_ADDRESS_MASK) + - ((ep_addr & LIBUSB_ENDPOINT_DIR_MASK) ? 16 : 0)); -} - -static int -sunos_find_interface(struct libusb_device_handle *hdev, - uint8_t endpoint, uint8_t *interface) -{ - struct libusb_config_descriptor *config; - int r; - int iface_idx; - - r = libusb_get_active_config_descriptor(hdev->dev, &config); - if (r < 0) { - return (LIBUSB_ERROR_INVALID_PARAM); - } - - for (iface_idx = 0; iface_idx < config->bNumInterfaces; iface_idx++) { - const struct libusb_interface *iface = - &config->interface[iface_idx]; - int altsetting_idx; - - for (altsetting_idx = 0; altsetting_idx < iface->num_altsetting; - altsetting_idx++) { - const struct libusb_interface_descriptor *altsetting = - &iface->altsetting[altsetting_idx]; - int ep_idx; - - for (ep_idx = 0; ep_idx < altsetting->bNumEndpoints; - ep_idx++) { - const struct libusb_endpoint_descriptor *ep = - &altsetting->endpoint[ep_idx]; - if (ep->bEndpointAddress == endpoint) { - *interface = iface_idx; - libusb_free_config_descriptor(config); - - return (LIBUSB_SUCCESS); - } - } - } - } - libusb_free_config_descriptor(config); - - return (LIBUSB_ERROR_INVALID_PARAM); -} - -static int -sunos_check_device_and_status_open(struct libusb_device_handle *hdl, - uint8_t ep_addr, int ep_type) -{ - char filename[PATH_MAX + 1], statfilename[PATH_MAX + 1]; - char cfg_num[16], alt_num[16]; - int fd, fdstat, mode; - uint8_t ifc = 0; - uint8_t ep_index; - sunos_dev_handle_priv_t *hpriv; - - usbi_dbg("open ep 0x%02x", ep_addr); - hpriv = (sunos_dev_handle_priv_t *)hdl->os_priv; - ep_index = sunos_usb_ep_index(ep_addr); - /* ep already opened */ - if ((hpriv->eps[ep_index].datafd > 0) && - (hpriv->eps[ep_index].statfd > 0)) { - usbi_dbg("ep 0x%02x already opened, return success", - ep_addr); - - return (0); - } - - if (sunos_find_interface(hdl, ep_addr, &ifc) < 0) { - usbi_dbg("can't find interface for endpoint 0x%02x", - ep_addr); - - return (LIBUSB_ERROR_ACCESS); - } - - /* create filename */ - if (hpriv->config_index > 0) { - (void) snprintf(cfg_num, sizeof (cfg_num), "cfg%d", - hpriv->config_index + 1); - } else { - bzero(cfg_num, sizeof (cfg_num)); - } - - if (hpriv->altsetting[ifc] > 0) { - (void) snprintf(alt_num, sizeof (alt_num), ".%d", - hpriv->altsetting[ifc]); - } else { - bzero(alt_num, sizeof (alt_num)); - } - - (void) snprintf(filename, PATH_MAX, "%s/%sif%d%s%s%d", - hpriv->dpriv->ugenpath, cfg_num, ifc, alt_num, - (ep_addr & LIBUSB_ENDPOINT_DIR_MASK) ? "in" : - "out", (ep_addr & LIBUSB_ENDPOINT_ADDRESS_MASK)); - (void) snprintf(statfilename, PATH_MAX, "%sstat", filename); - - /* - * for interrupt IN endpoints, we need to enable one xfer - * mode before opening the endpoint - */ - if ((ep_type == LIBUSB_TRANSFER_TYPE_INTERRUPT) && - (ep_addr & LIBUSB_ENDPOINT_IN)) { - char control = USB_EP_INTR_ONE_XFER; - int count; - - /* open the status device node for the ep first RDWR */ - if ((fdstat = open(statfilename, O_RDWR)) == -1) { - usbi_dbg("can't open %s RDWR: %d", - statfilename, errno); - } else { - count = write(fdstat, &control, sizeof (control)); - if (count != 1) { - /* this should have worked */ - usbi_dbg("can't write to %s: %d", - statfilename, errno); - (void) close(fdstat); - - return (errno); - } - /* close status node and open xfer node first */ - close (fdstat); - } - } - - /* open the xfer node first in case alt needs to be changed */ - if (ep_type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS) { - mode = O_RDWR; - } else if (ep_addr & LIBUSB_ENDPOINT_IN) { - mode = O_RDONLY; - } else { - mode = O_WRONLY; - } - - /* - * IMPORTANT: must open data xfer node first and then open stat node - * Otherwise, it will fail on multi-config or multi-altsetting devices - * with "Device Busy" error. See ugen_epxs_switch_cfg_alt() and - * ugen_epxs_check_alt_switch() in ugen driver source code. - */ - if ((fd = open(filename, mode)) == -1) { - usbi_dbg("can't open %s: %d(%s)", filename, errno, - strerror(errno)); - - return (errno); - } - /* open the status node */ - if ((fdstat = open(statfilename, O_RDONLY)) == -1) { - usbi_dbg("can't open %s: %d", statfilename, errno); - - (void) close(fd); - - return (errno); - } - - hpriv->eps[ep_index].datafd = fd; - hpriv->eps[ep_index].statfd = fdstat; - usbi_dbg("ep=0x%02x datafd=%d, statfd=%d", ep_addr, fd, fdstat); - - return (0); -} - -int -sunos_open(struct libusb_device_handle *handle) -{ - sunos_dev_handle_priv_t *hpriv; - sunos_dev_priv_t *dpriv; - int i; - int ret; - - hpriv = (sunos_dev_handle_priv_t *)handle->os_priv; - dpriv = (sunos_dev_priv_t *)handle->dev->os_priv; - hpriv->dpriv = dpriv; - - /* set all file descriptors to "closed" */ - for (i = 0; i < USB_MAXENDPOINTS; i++) { - hpriv->eps[i].datafd = -1; - hpriv->eps[i].statfd = -1; - } - - if ((ret = sunos_usb_open_ep0(hpriv, dpriv)) != LIBUSB_SUCCESS) { - usbi_dbg("fail: %d", ret); - return (ret); - } - - return (LIBUSB_SUCCESS); -} - -void -sunos_close(struct libusb_device_handle *handle) -{ - sunos_dev_handle_priv_t *hpriv; - sunos_dev_priv_t *dpriv; - - usbi_dbg(""); - if (!handle) { - return; - } - - hpriv = (sunos_dev_handle_priv_t *)handle->os_priv; - if (!hpriv) { - return; - } - dpriv = (sunos_dev_priv_t *)handle->dev->os_priv; - if (!dpriv) { - return; - } - - sunos_usb_close_all_eps(hpriv); - sunos_usb_close_ep0(hpriv, dpriv); -} - -int -sunos_get_device_descriptor(struct libusb_device *dev, uint8_t *buf, - int *host_endian) -{ - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)dev->os_priv; - - memcpy(buf, &dpriv->dev_descr, LIBUSB_DT_DEVICE_SIZE); - *host_endian = 0; - - return (LIBUSB_SUCCESS); -} - -int -sunos_get_active_config_descriptor(struct libusb_device *dev, - uint8_t *buf, size_t len, int *host_endian) -{ - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)dev->os_priv; - struct libusb_config_descriptor *cfg; - int proplen; - di_node_t node; - uint8_t *rdata; - - /* - * Keep raw configuration descriptors updated, in case config - * has ever been changed through setCfg. - */ - if ((node = di_init(dpriv->phypath, DINFOCPYALL)) == DI_NODE_NIL) { - usbi_dbg("di_int() failed: %s", strerror(errno)); - return (LIBUSB_ERROR_IO); - } - proplen = di_prop_lookup_bytes(DDI_DEV_T_ANY, node, - "usb-raw-cfg-descriptors", &rdata); - if (proplen <= 0) { - usbi_dbg("can't find raw config descriptors"); - - return (LIBUSB_ERROR_IO); - } - dpriv->raw_cfgdescr = realloc(dpriv->raw_cfgdescr, proplen); - if (dpriv->raw_cfgdescr == NULL) { - return (LIBUSB_ERROR_NO_MEM); - } else { - bcopy(rdata, dpriv->raw_cfgdescr, proplen); - dpriv->cfgvalue = ((struct libusb_config_descriptor *) - rdata)->bConfigurationValue; - } - di_fini(node); - - cfg = (struct libusb_config_descriptor *)dpriv->raw_cfgdescr; - len = MIN(len, libusb_le16_to_cpu(cfg->wTotalLength)); - memcpy(buf, dpriv->raw_cfgdescr, len); - *host_endian = 0; - usbi_dbg("path:%s len %d", dpriv->phypath, len); - - return (len); -} - -int -sunos_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - uint8_t *buf, size_t len, int *host_endian) -{ - /* XXX */ - return(sunos_get_active_config_descriptor(dev, buf, len, host_endian)); -} - -int -sunos_get_configuration(struct libusb_device_handle *handle, int *config) -{ - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)handle->dev->os_priv; - - *config = dpriv->cfgvalue; - - usbi_dbg("bConfigurationValue %d", *config); - - return (LIBUSB_SUCCESS); -} - -int -sunos_set_configuration(struct libusb_device_handle *handle, int config) -{ - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)handle->dev->os_priv; - sunos_dev_handle_priv_t *hpriv; - - usbi_dbg("bConfigurationValue %d", config); - hpriv = (sunos_dev_handle_priv_t *)handle->os_priv; - - if (dpriv->ugenpath == NULL) - return (LIBUSB_ERROR_NOT_SUPPORTED); - - if (config < 1 || config > dpriv->dev_descr.bNumConfigurations) - return (LIBUSB_ERROR_INVALID_PARAM); - - dpriv->cfgvalue = config; - hpriv->config_index = config - 1; - - return (LIBUSB_SUCCESS); -} - -int -sunos_claim_interface(struct libusb_device_handle *handle, int iface) -{ - usbi_dbg("iface %d", iface); - if (iface < 0) { - return (LIBUSB_ERROR_INVALID_PARAM); - } - - return (LIBUSB_SUCCESS); -} - -int -sunos_release_interface(struct libusb_device_handle *handle, int iface) -{ - sunos_dev_handle_priv_t *hpriv = - (sunos_dev_handle_priv_t *)handle->os_priv; - - usbi_dbg("iface %d", iface); - if (iface < 0) { - return (LIBUSB_ERROR_INVALID_PARAM); - } - - /* XXX: can we release it? */ - hpriv->altsetting[iface] = 0; - - return (LIBUSB_SUCCESS); -} - -int -sunos_set_interface_altsetting(struct libusb_device_handle *handle, int iface, - int altsetting) -{ - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)handle->dev->os_priv; - sunos_dev_handle_priv_t *hpriv = - (sunos_dev_handle_priv_t *)handle->os_priv; - - usbi_dbg("iface %d, setting %d", iface, altsetting); - - if (iface < 0 || altsetting < 0) { - return (LIBUSB_ERROR_INVALID_PARAM); - } - if (dpriv->ugenpath == NULL) - return (LIBUSB_ERROR_NOT_FOUND); - - /* XXX: can we switch altsetting? */ - hpriv->altsetting[iface] = altsetting; - - return (LIBUSB_SUCCESS); -} - -static void -usb_dump_data(unsigned char *data, size_t size) -{ - int i; - - if (getenv("LIBUSB_DEBUG") == NULL) { - return; - } - - (void) fprintf(stderr, "data dump:"); - for (i = 0; i < size; i++) { - if (i % 16 == 0) { - (void) fprintf(stderr, "\n%08x ", i); - } - (void) fprintf(stderr, "%02x ", (uchar_t)data[i]); - } - (void) fprintf(stderr, "\n"); -} - -static void -sunos_async_callback(union sigval arg) -{ - struct sunos_transfer_priv *tpriv = - (struct sunos_transfer_priv *)arg.sival_ptr; - struct libusb_transfer *xfer = tpriv->transfer; - struct aiocb *aiocb = &tpriv->aiocb; - int ret; - sunos_dev_handle_priv_t *hpriv; - uint8_t ep; - - hpriv = (sunos_dev_handle_priv_t *)xfer->dev_handle->os_priv; - ep = sunos_usb_ep_index(xfer->endpoint); - - ret = aio_error(aiocb); - if (ret != 0) { - xfer->status = sunos_usb_get_status(hpriv->eps[ep].statfd); - } else { - xfer->actual_length = - LIBUSB_TRANSFER_TO_USBI_TRANSFER(xfer)->transferred = - aio_return(aiocb); - } - - usb_dump_data(xfer->buffer, xfer->actual_length); - - usbi_dbg("ret=%d, len=%d, actual_len=%d", ret, xfer->length, - xfer->actual_length); - - /* async notification */ - usbi_signal_transfer_completion(LIBUSB_TRANSFER_TO_USBI_TRANSFER(xfer)); -} - -static int -sunos_do_async_io(struct libusb_transfer *transfer) -{ - int ret = -1; - struct aiocb *aiocb; - sunos_dev_handle_priv_t *hpriv; - uint8_t ep; - struct sunos_transfer_priv *tpriv; - - usbi_dbg(""); - - tpriv = usbi_transfer_get_os_priv(LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)); - hpriv = (sunos_dev_handle_priv_t *)transfer->dev_handle->os_priv; - ep = sunos_usb_ep_index(transfer->endpoint); - - tpriv->transfer = transfer; - aiocb = &tpriv->aiocb; - bzero(aiocb, sizeof (*aiocb)); - aiocb->aio_fildes = hpriv->eps[ep].datafd; - aiocb->aio_buf = transfer->buffer; - aiocb->aio_nbytes = transfer->length; - aiocb->aio_lio_opcode = - ((transfer->endpoint & LIBUSB_ENDPOINT_DIR_MASK) == - LIBUSB_ENDPOINT_IN) ? LIO_READ:LIO_WRITE; - aiocb->aio_sigevent.sigev_notify = SIGEV_THREAD; - aiocb->aio_sigevent.sigev_value.sival_ptr = tpriv; - aiocb->aio_sigevent.sigev_notify_function = sunos_async_callback; - - if (aiocb->aio_lio_opcode == LIO_READ) { - ret = aio_read(aiocb); - } else { - ret = aio_write(aiocb); - } - - return (ret); -} - -/* return the number of bytes read/written */ -static int -usb_do_io(int fd, int stat_fd, char *data, size_t size, int flag, int *status) -{ - int error; - int ret = -1; - - usbi_dbg("usb_do_io(): datafd=%d statfd=%d size=0x%x flag=%s", - fd, stat_fd, size, flag? "WRITE":"READ"); - - switch (flag) { - case READ: - errno = 0; - ret = read(fd, data, size); - usb_dump_data(data, size); - break; - case WRITE: - usb_dump_data(data, size); - errno = 0; - ret = write(fd, data, size); - break; - } - - usbi_dbg("usb_do_io(): amount=%d", ret); - - if (ret < 0) { - int save_errno = errno; - - usbi_dbg("TID=%x io %s errno=%d(%s) ret=%d", pthread_self(), - flag?"WRITE":"READ", errno, strerror(errno), ret); - - /* sunos_usb_get_status will do a read and overwrite errno */ - error = sunos_usb_get_status(stat_fd); - usbi_dbg("io status=%d errno=%d(%s)", error, - save_errno, strerror(save_errno)); - - if (status) { - *status = save_errno; - } - - return (save_errno); - - } else if (status) { - *status = 0; - } - - return (ret); -} - -static int -solaris_submit_ctrl_on_default(struct libusb_transfer *transfer) -{ - int ret = -1, setup_ret; - int status; - sunos_dev_handle_priv_t *hpriv; - struct libusb_device_handle *hdl = transfer->dev_handle; - uint16_t wLength; - uint8_t *data = transfer->buffer; - - hpriv = (sunos_dev_handle_priv_t *)hdl->os_priv; - wLength = transfer->length - LIBUSB_CONTROL_SETUP_SIZE; - - if (hpriv->eps[0].datafd == -1) { - usbi_dbg("ep0 not opened"); - - return (LIBUSB_ERROR_NOT_FOUND); - } - - if ((data[0] & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN) { - usbi_dbg("IN request"); - ret = usb_do_io(hpriv->eps[0].datafd, - hpriv->eps[0].statfd, (char *)data, LIBUSB_CONTROL_SETUP_SIZE, - WRITE, (int *)&status); - } else { - usbi_dbg("OUT request"); - ret = usb_do_io(hpriv->eps[0].datafd, hpriv->eps[0].statfd, - transfer->buffer, transfer->length, WRITE, - (int *)&transfer->status); - } - - setup_ret = ret; - if (ret < LIBUSB_CONTROL_SETUP_SIZE) { - usbi_dbg("error sending control msg: %d", ret); - - return (LIBUSB_ERROR_IO); - } - - ret = transfer->length - LIBUSB_CONTROL_SETUP_SIZE; - - /* Read the remaining bytes for IN request */ - if ((wLength) && ((data[0] & LIBUSB_ENDPOINT_DIR_MASK) == - LIBUSB_ENDPOINT_IN)) { - usbi_dbg("DATA: %d", transfer->length - setup_ret); - ret = usb_do_io(hpriv->eps[0].datafd, - hpriv->eps[0].statfd, - (char *)transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE, - wLength, READ, (int *)&transfer->status); - } - - if (ret >= 0) { - transfer->actual_length = ret; - LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)->transferred = ret; - } - usbi_dbg("Done: ctrl data bytes %d", ret); - - /* sync transfer handling */ - ret = usbi_handle_transfer_completion(LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer), - transfer->status); - - return (ret); -} - -int -sunos_clear_halt(struct libusb_device_handle *handle, uint8_t endpoint) -{ - int ret; - - usbi_dbg("endpoint=0x%02x", endpoint); - - ret = libusb_control_transfer(handle, LIBUSB_ENDPOINT_OUT | - LIBUSB_RECIPIENT_ENDPOINT | LIBUSB_REQUEST_TYPE_STANDARD, - LIBUSB_REQUEST_CLEAR_FEATURE, 0, endpoint, NULL, 0, 1000); - - usbi_dbg("ret=%d", ret); - - return (ret); -} - -int -sunos_reset_device(struct libusb_device_handle *handle) -{ - usbi_dbg(""); - - return (LIBUSB_ERROR_NOT_SUPPORTED); -} - -void -sunos_destroy_device(struct libusb_device *dev) -{ - sunos_dev_priv_t *dpriv = (sunos_dev_priv_t *)dev->os_priv; - - usbi_dbg(""); - - free(dpriv->raw_cfgdescr); - free(dpriv->ugenpath); - free(dpriv->phypath); -} - -int -sunos_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer; - struct libusb_device_handle *hdl; - int err = 0; - - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - hdl = transfer->dev_handle; - - err = sunos_check_device_and_status_open(hdl, - transfer->endpoint, transfer->type); - if (err < 0) { - - return (_errno_to_libusb(err)); - } - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - /* sync transfer */ - usbi_dbg("CTRL transfer: %d", transfer->length); - err = solaris_submit_ctrl_on_default(transfer); - break; - - case LIBUSB_TRANSFER_TYPE_BULK: - /* fallthru */ - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - if (transfer->type == LIBUSB_TRANSFER_TYPE_BULK) - usbi_dbg("BULK transfer: %d", transfer->length); - else - usbi_dbg("INTR transfer: %d", transfer->length); - err = sunos_do_async_io(transfer); - break; - - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - /* Isochronous/Stream is not supported */ - - /* fallthru */ - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS) - usbi_dbg("ISOC transfer: %d", transfer->length); - else - usbi_dbg("BULK STREAM transfer: %d", transfer->length); - err = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - - return (err); -} - -int -sunos_cancel_transfer(struct usbi_transfer *itransfer) -{ - sunos_xfer_priv_t *tpriv; - sunos_dev_handle_priv_t *hpriv; - struct libusb_transfer *transfer; - struct aiocb *aiocb; - uint8_t ep; - int ret; - - tpriv = usbi_transfer_get_os_priv(itransfer); - aiocb = &tpriv->aiocb; - transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - hpriv = (sunos_dev_handle_priv_t *)transfer->dev_handle->os_priv; - ep = sunos_usb_ep_index(transfer->endpoint); - - ret = aio_cancel(hpriv->eps[ep].datafd, aiocb); - - usbi_dbg("aio->fd=%d fd=%d ret = %d, %s", aiocb->aio_fildes, - hpriv->eps[ep].datafd, ret, (ret == AIO_CANCELED)? - strerror(0):strerror(errno)); - - if (ret != AIO_CANCELED) { - ret = _errno_to_libusb(errno); - } else { - /* - * we don't need to call usbi_handle_transfer_cancellation(), - * because we'll handle everything in sunos_async_callback. - */ - ret = LIBUSB_SUCCESS; - } - - return (ret); -} - -void -sunos_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - usbi_dbg(""); - - /* Nothing to do */ -} - -int -sunos_handle_transfer_completion(struct usbi_transfer *itransfer) -{ - return usbi_handle_transfer_completion(itransfer, LIBUSB_TRANSFER_COMPLETED); -} - -int -sunos_clock_gettime(int clkid, struct timespec *tp) -{ - usbi_dbg("clock %d", clkid); - - if (clkid == USBI_CLOCK_REALTIME) - return clock_gettime(CLOCK_REALTIME, tp); - - if (clkid == USBI_CLOCK_MONOTONIC) - return clock_gettime(CLOCK_MONOTONIC, tp); - - return (LIBUSB_ERROR_INVALID_PARAM); -} - -int -_errno_to_libusb(int err) -{ - usbi_dbg("error: %s (%d)", strerror(err), err); - - switch (err) { - case EIO: - return (LIBUSB_ERROR_IO); - case EACCES: - return (LIBUSB_ERROR_ACCESS); - case ENOENT: - return (LIBUSB_ERROR_NO_DEVICE); - case ENOMEM: - return (LIBUSB_ERROR_NO_MEM); - case ETIMEDOUT: - return (LIBUSB_ERROR_TIMEOUT); - } - - return (LIBUSB_ERROR_OTHER); -} - -/* - * sunos_usb_get_status: - * gets status of endpoint - * - * Returns: ugen's last cmd status - */ -static int -sunos_usb_get_status(int fd) -{ - int status, ret; - - usbi_dbg("sunos_usb_get_status(): fd=%d", fd); - - ret = read(fd, &status, sizeof (status)); - if (ret == sizeof (status)) { - switch (status) { - case USB_LC_STAT_NOERROR: - usbi_dbg("No Error"); - break; - case USB_LC_STAT_CRC: - usbi_dbg("CRC Timeout Detected\n"); - break; - case USB_LC_STAT_BITSTUFFING: - usbi_dbg("Bit Stuffing Violation\n"); - break; - case USB_LC_STAT_DATA_TOGGLE_MM: - usbi_dbg("Data Toggle Mismatch\n"); - break; - case USB_LC_STAT_STALL: - usbi_dbg("End Point Stalled\n"); - break; - case USB_LC_STAT_DEV_NOT_RESP: - usbi_dbg("Device is Not Responding\n"); - break; - case USB_LC_STAT_PID_CHECKFAILURE: - usbi_dbg("PID Check Failure\n"); - break; - case USB_LC_STAT_UNEXP_PID: - usbi_dbg("Unexpected PID\n"); - break; - case USB_LC_STAT_DATA_OVERRUN: - usbi_dbg("Data Exceeded Size\n"); - break; - case USB_LC_STAT_DATA_UNDERRUN: - usbi_dbg("Less data received\n"); - break; - case USB_LC_STAT_BUFFER_OVERRUN: - usbi_dbg("Buffer Size Exceeded\n"); - break; - case USB_LC_STAT_BUFFER_UNDERRUN: - usbi_dbg("Buffer Underrun\n"); - break; - case USB_LC_STAT_TIMEOUT: - usbi_dbg("Command Timed Out\n"); - break; - case USB_LC_STAT_NOT_ACCESSED: - usbi_dbg("Not Accessed by h/w\n"); - break; - case USB_LC_STAT_UNSPECIFIED_ERR: - usbi_dbg("Unspecified Error\n"); - break; - case USB_LC_STAT_NO_BANDWIDTH: - usbi_dbg("No Bandwidth\n"); - break; - case USB_LC_STAT_HW_ERR: - usbi_dbg("Host Controller h/w Error\n"); - break; - case USB_LC_STAT_SUSPENDED: - usbi_dbg("Device was Suspended\n"); - break; - case USB_LC_STAT_DISCONNECTED: - usbi_dbg("Device was Disconnected\n"); - break; - case USB_LC_STAT_INTR_BUF_FULL: - usbi_dbg("Interrupt buffer was full\n"); - break; - case USB_LC_STAT_INVALID_REQ: - usbi_dbg("Request was Invalid\n"); - break; - case USB_LC_STAT_INTERRUPTED: - usbi_dbg("Request was Interrupted\n"); - break; - case USB_LC_STAT_NO_RESOURCES: - usbi_dbg("No resources available for " - "request\n"); - break; - case USB_LC_STAT_INTR_POLLING_FAILED: - usbi_dbg("Failed to Restart Poll"); - break; - default: - usbi_dbg("Error Not Determined %d\n", - status); - break; - } - } else { - usbi_dbg("read stat error: %s",strerror(errno)); - status = -1; - } - - return (status); -} - -const struct usbi_os_backend sunos_backend = { - .name = "Solaris", - .caps = 0, - .init = sunos_init, - .exit = sunos_exit, - .get_device_list = sunos_get_device_list, - .get_device_descriptor = sunos_get_device_descriptor, - .get_active_config_descriptor = sunos_get_active_config_descriptor, - .get_config_descriptor = sunos_get_config_descriptor, - .hotplug_poll = NULL, - .open = sunos_open, - .close = sunos_close, - .get_configuration = sunos_get_configuration, - .set_configuration = sunos_set_configuration, - - .claim_interface = sunos_claim_interface, - .release_interface = sunos_release_interface, - .set_interface_altsetting = sunos_set_interface_altsetting, - .clear_halt = sunos_clear_halt, - .reset_device = sunos_reset_device, /* TODO */ - .alloc_streams = NULL, - .free_streams = NULL, - .kernel_driver_active = NULL, - .detach_kernel_driver = NULL, - .attach_kernel_driver = NULL, - .destroy_device = sunos_destroy_device, - .submit_transfer = sunos_submit_transfer, - .cancel_transfer = sunos_cancel_transfer, - .handle_events = NULL, - .clear_transfer_priv = sunos_clear_transfer_priv, - .handle_transfer_completion = sunos_handle_transfer_completion, - .clock_gettime = sunos_clock_gettime, - .device_priv_size = sizeof(sunos_dev_priv_t), - .device_handle_priv_size = sizeof(sunos_dev_handle_priv_t), - .transfer_priv_size = sizeof(sunos_xfer_priv_t), -}; diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.h deleted file mode 100644 index 57416603..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/sunos_usb.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * - * Copyright (c) 2016, Oracle and/or its affiliates. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef LIBUSB_SUNOS_H -#define LIBUSB_SUNOS_H - -#include -#include -#include "libusbi.h" - -#define READ 0 -#define WRITE 1 - -typedef struct sunos_device_priv { - uint8_t cfgvalue; /* active config value */ - uint8_t *raw_cfgdescr; /* active config descriptor */ - struct libusb_device_descriptor dev_descr; /* usb device descriptor */ - char *ugenpath; /* name of the ugen(4) node */ - char *phypath; /* physical path */ -} sunos_dev_priv_t; - -typedef struct endpoint { - int datafd; /* data file */ - int statfd; /* state file */ -} sunos_ep_priv_t; - -typedef struct sunos_device_handle_priv { - uint8_t altsetting[USB_MAXINTERFACES]; /* a interface's alt */ - uint8_t config_index; - sunos_ep_priv_t eps[USB_MAXENDPOINTS]; - sunos_dev_priv_t *dpriv; /* device private */ -} sunos_dev_handle_priv_t; - -typedef struct sunos_transfer_priv { - struct aiocb aiocb; - struct libusb_transfer *transfer; -} sunos_xfer_priv_t; - -struct node_args { - struct libusb_context *ctx; - struct discovered_devs **discdevs; - const char *last_ugenpath; - di_devlink_handle_t dlink_hdl; -}; - -struct devlink_cbarg { - struct node_args *nargs; /* di node walk arguments */ - di_node_t myself; /* the di node */ - di_minor_t minor; -}; - -/* AIO callback args */ -struct aio_callback_args{ - struct libusb_transfer *transfer; - struct aiocb aiocb; -}; - -#endif /* LIBUSB_SUNOS_H */ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.c deleted file mode 100644 index a4f270bb..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * libusb synchronization using POSIX Threads - * - * Copyright © 2011 Vitali Lovich - * Copyright © 2011 Peter Stuge - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#if defined(__linux__) || defined(__OpenBSD__) -# if defined(__OpenBSD__) -# define _BSD_SOURCE -# endif -# include -# include -#elif defined(__APPLE__) -# include -#elif defined(__CYGWIN__) -# include -#endif - -#include "threads_posix.h" -#include "libusbi.h" - -int usbi_cond_timedwait(pthread_cond_t *cond, - pthread_mutex_t *mutex, const struct timeval *tv) -{ - struct timespec timeout; - int r; - - r = usbi_backend->clock_gettime(USBI_CLOCK_REALTIME, &timeout); - if (r < 0) - return r; - - timeout.tv_sec += tv->tv_sec; - timeout.tv_nsec += tv->tv_usec * 1000; - while (timeout.tv_nsec >= 1000000000L) { - timeout.tv_nsec -= 1000000000L; - timeout.tv_sec++; - } - - return pthread_cond_timedwait(cond, mutex, &timeout); -} - -int usbi_get_tid(void) -{ - int ret = -1; -#if defined(__ANDROID__) - ret = gettid(); -#elif defined(__linux__) - ret = syscall(SYS_gettid); -#elif defined(__OpenBSD__) - /* The following only works with OpenBSD > 5.1 as it requires - real thread support. For 5.1 and earlier, -1 is returned. */ - ret = syscall(SYS_getthrid); -#elif defined(__APPLE__) - ret = mach_thread_self(); - mach_port_deallocate(mach_task_self(), ret); -#elif defined(__CYGWIN__) - ret = GetCurrentThreadId(); -#endif -/* TODO: NetBSD thread ID support */ - return ret; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.h deleted file mode 100644 index 4c1514ea..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_posix.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * libusb synchronization using POSIX Threads - * - * Copyright © 2010 Peter Stuge - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef LIBUSB_THREADS_POSIX_H -#define LIBUSB_THREADS_POSIX_H - -#include -#ifdef HAVE_SYS_TIME_H -#include -#endif - -#define usbi_mutex_static_t pthread_mutex_t -#define USBI_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -#define usbi_mutex_static_lock pthread_mutex_lock -#define usbi_mutex_static_unlock pthread_mutex_unlock - -#define usbi_mutex_t pthread_mutex_t -#define usbi_mutex_init(mutex) pthread_mutex_init((mutex), NULL) -#define usbi_mutex_lock pthread_mutex_lock -#define usbi_mutex_unlock pthread_mutex_unlock -#define usbi_mutex_trylock pthread_mutex_trylock -#define usbi_mutex_destroy pthread_mutex_destroy - -#define usbi_cond_t pthread_cond_t -#define usbi_cond_init(cond) pthread_cond_init((cond), NULL) -#define usbi_cond_wait pthread_cond_wait -#define usbi_cond_broadcast pthread_cond_broadcast -#define usbi_cond_destroy pthread_cond_destroy - -#define usbi_tls_key_t pthread_key_t -#define usbi_tls_key_create(key) pthread_key_create((key), NULL) -#define usbi_tls_key_get pthread_getspecific -#define usbi_tls_key_set pthread_setspecific -#define usbi_tls_key_delete pthread_key_delete - -int usbi_get_tid(void); - -#endif /* LIBUSB_THREADS_POSIX_H */ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.c deleted file mode 100644 index 7c2e52db..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.c +++ /dev/null @@ -1,259 +0,0 @@ -/* - * libusb synchronization on Microsoft Windows - * - * Copyright © 2010 Michael Plante - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include - -#include "libusbi.h" - -struct usbi_cond_perthread { - struct list_head list; - DWORD tid; - HANDLE event; -}; - -int usbi_mutex_static_lock(usbi_mutex_static_t *mutex) -{ - if (!mutex) - return EINVAL; - while (InterlockedExchange(mutex, 1) == 1) - SleepEx(0, TRUE); - return 0; -} - -int usbi_mutex_static_unlock(usbi_mutex_static_t *mutex) -{ - if (!mutex) - return EINVAL; - InterlockedExchange(mutex, 0); - return 0; -} - -int usbi_mutex_init(usbi_mutex_t *mutex) -{ - if (!mutex) - return EINVAL; - *mutex = CreateMutex(NULL, FALSE, NULL); - if (!*mutex) - return ENOMEM; - return 0; -} - -int usbi_mutex_lock(usbi_mutex_t *mutex) -{ - DWORD result; - - if (!mutex) - return EINVAL; - result = WaitForSingleObject(*mutex, INFINITE); - if (result == WAIT_OBJECT_0 || result == WAIT_ABANDONED) - return 0; // acquired (ToDo: check that abandoned is ok) - else - return EINVAL; // don't know how this would happen - // so don't know proper errno -} - -int usbi_mutex_unlock(usbi_mutex_t *mutex) -{ - if (!mutex) - return EINVAL; - if (ReleaseMutex(*mutex)) - return 0; - else - return EPERM; -} - -int usbi_mutex_trylock(usbi_mutex_t *mutex) -{ - DWORD result; - - if (!mutex) - return EINVAL; - result = WaitForSingleObject(*mutex, 0); - if (result == WAIT_OBJECT_0 || result == WAIT_ABANDONED) - return 0; // acquired (ToDo: check that abandoned is ok) - else if (result == WAIT_TIMEOUT) - return EBUSY; - else - return EINVAL; // don't know how this would happen - // so don't know proper error -} - -int usbi_mutex_destroy(usbi_mutex_t *mutex) -{ - // It is not clear if CloseHandle failure is due to failure to unlock. - // If so, this should be errno=EBUSY. - if (!mutex || !CloseHandle(*mutex)) - return EINVAL; - *mutex = NULL; - return 0; -} - -int usbi_cond_init(usbi_cond_t *cond) -{ - if (!cond) - return EINVAL; - list_init(&cond->waiters); - list_init(&cond->not_waiting); - return 0; -} - -int usbi_cond_destroy(usbi_cond_t *cond) -{ - // This assumes no one is using this anymore. The check MAY NOT BE safe. - struct usbi_cond_perthread *pos, *next_pos; - - if(!cond) - return EINVAL; - if (!list_empty(&cond->waiters)) - return EBUSY; // (!see above!) - list_for_each_entry_safe(pos, next_pos, &cond->not_waiting, list, struct usbi_cond_perthread) { - CloseHandle(pos->event); - list_del(&pos->list); - free(pos); - } - return 0; -} - -int usbi_cond_broadcast(usbi_cond_t *cond) -{ - // Assumes mutex is locked; this is not in keeping with POSIX spec, but - // libusb does this anyway, so we simplify by not adding more sync - // primitives to the CV definition! - int fail = 0; - struct usbi_cond_perthread *pos; - - if (!cond) - return EINVAL; - list_for_each_entry(pos, &cond->waiters, list, struct usbi_cond_perthread) { - if (!SetEvent(pos->event)) - fail = 1; - } - // The wait function will remove its respective item from the list. - return fail ? EINVAL : 0; -} - -__inline static int usbi_cond_intwait(usbi_cond_t *cond, - usbi_mutex_t *mutex, DWORD timeout_ms) -{ - struct usbi_cond_perthread *pos; - int r, found = 0; - DWORD r2, tid = GetCurrentThreadId(); - - if (!cond || !mutex) - return EINVAL; - list_for_each_entry(pos, &cond->not_waiting, list, struct usbi_cond_perthread) { - if(tid == pos->tid) { - found = 1; - break; - } - } - - if (!found) { - pos = calloc(1, sizeof(struct usbi_cond_perthread)); - if (!pos) - return ENOMEM; // This errno is not POSIX-allowed. - pos->tid = tid; - pos->event = CreateEvent(NULL, FALSE, FALSE, NULL); // auto-reset. - if (!pos->event) { - free(pos); - return ENOMEM; - } - list_add(&pos->list, &cond->not_waiting); - } - - list_del(&pos->list); // remove from not_waiting list. - list_add(&pos->list, &cond->waiters); - - r = usbi_mutex_unlock(mutex); - if (r) - return r; - - r2 = WaitForSingleObject(pos->event, timeout_ms); - r = usbi_mutex_lock(mutex); - if (r) - return r; - - list_del(&pos->list); - list_add(&pos->list, &cond->not_waiting); - - if (r2 == WAIT_OBJECT_0) - return 0; - else if (r2 == WAIT_TIMEOUT) - return ETIMEDOUT; - else - return EINVAL; -} -// N.B.: usbi_cond_*wait() can also return ENOMEM, even though pthread_cond_*wait cannot! -int usbi_cond_wait(usbi_cond_t *cond, usbi_mutex_t *mutex) -{ - return usbi_cond_intwait(cond, mutex, INFINITE); -} - -int usbi_cond_timedwait(usbi_cond_t *cond, - usbi_mutex_t *mutex, const struct timeval *tv) -{ - DWORD millis; - - millis = (DWORD)(tv->tv_sec * 1000) + (tv->tv_usec / 1000); - /* round up to next millisecond */ - if (tv->tv_usec % 1000) - millis++; - return usbi_cond_intwait(cond, mutex, millis); -} - -int usbi_tls_key_create(usbi_tls_key_t *key) -{ - if (!key) - return EINVAL; - *key = TlsAlloc(); - if (*key == TLS_OUT_OF_INDEXES) - return ENOMEM; - else - return 0; -} - -void *usbi_tls_key_get(usbi_tls_key_t key) -{ - return TlsGetValue(key); -} - -int usbi_tls_key_set(usbi_tls_key_t key, void *value) -{ - if (TlsSetValue(key, value)) - return 0; - else - return EINVAL; -} - -int usbi_tls_key_delete(usbi_tls_key_t key) -{ - if (TlsFree(key)) - return 0; - else - return EINVAL; -} - -int usbi_get_tid(void) -{ - return (int)GetCurrentThreadId(); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.h deleted file mode 100644 index e97ee787..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/threads_windows.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * libusb synchronization on Microsoft Windows - * - * Copyright © 2010 Michael Plante - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef LIBUSB_THREADS_WINDOWS_H -#define LIBUSB_THREADS_WINDOWS_H - -#define usbi_mutex_static_t volatile LONG -#define USBI_MUTEX_INITIALIZER 0 - -#define usbi_mutex_t HANDLE - -typedef struct usbi_cond { - // Every time a thread touches the CV, it winds up in one of these lists. - // It stays there until the CV is destroyed, even if the thread terminates. - struct list_head waiters; - struct list_head not_waiting; -} usbi_cond_t; - -// We *were* getting timespec from pthread.h: -#if (!defined(HAVE_STRUCT_TIMESPEC) && !defined(_TIMESPEC_DEFINED)) -#define HAVE_STRUCT_TIMESPEC 1 -#define _TIMESPEC_DEFINED 1 -struct timespec { - long tv_sec; - long tv_nsec; -}; -#endif /* HAVE_STRUCT_TIMESPEC | _TIMESPEC_DEFINED */ - -// We *were* getting ETIMEDOUT from pthread.h: -#ifndef ETIMEDOUT -# define ETIMEDOUT 10060 /* This is the value in winsock.h. */ -#endif - -#define usbi_tls_key_t DWORD - -int usbi_mutex_static_lock(usbi_mutex_static_t *mutex); -int usbi_mutex_static_unlock(usbi_mutex_static_t *mutex); - -int usbi_mutex_init(usbi_mutex_t *mutex); -int usbi_mutex_lock(usbi_mutex_t *mutex); -int usbi_mutex_unlock(usbi_mutex_t *mutex); -int usbi_mutex_trylock(usbi_mutex_t *mutex); -int usbi_mutex_destroy(usbi_mutex_t *mutex); - -int usbi_cond_init(usbi_cond_t *cond); -int usbi_cond_wait(usbi_cond_t *cond, usbi_mutex_t *mutex); -int usbi_cond_timedwait(usbi_cond_t *cond, - usbi_mutex_t *mutex, const struct timeval *tv); -int usbi_cond_broadcast(usbi_cond_t *cond); -int usbi_cond_destroy(usbi_cond_t *cond); - -int usbi_tls_key_create(usbi_tls_key_t *key); -void *usbi_tls_key_get(usbi_tls_key_t key); -int usbi_tls_key_set(usbi_tls_key_t key, void *value); -int usbi_tls_key_delete(usbi_tls_key_t key); - -int usbi_get_tid(void); - -#endif /* LIBUSB_THREADS_WINDOWS_H */ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.c deleted file mode 100644 index 0d466b8c..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.c +++ /dev/null @@ -1,899 +0,0 @@ -/* - * Windows CE backend for libusb 1.0 - * Copyright © 2011-2013 RealVNC Ltd. - * Large portions taken from Windows backend, which is - * Copyright © 2009-2010 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include - -#include "libusbi.h" -#include "wince_usb.h" - -// Global variables -int windows_version = WINDOWS_CE; -static uint64_t hires_frequency, hires_ticks_to_ps; -static HANDLE driver_handle = INVALID_HANDLE_VALUE; -static int concurrent_usage = -1; - -/* - * Converts a windows error to human readable string - * uses retval as errorcode, or, if 0, use GetLastError() - */ -#if defined(ENABLE_LOGGING) -static const char *windows_error_str(DWORD error_code) -{ - static TCHAR wErr_string[ERR_BUFFER_SIZE]; - static char err_string[ERR_BUFFER_SIZE]; - - DWORD size; - int len; - - if (error_code == 0) - error_code = GetLastError(); - - len = sprintf(err_string, "[%u] ", (unsigned int)error_code); - - size = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - wErr_string, ERR_BUFFER_SIZE, NULL); - if (size == 0) { - DWORD format_error = GetLastError(); - if (format_error) - snprintf(err_string, ERR_BUFFER_SIZE, - "Windows error code %u (FormatMessage error code %u)", - (unsigned int)error_code, (unsigned int)format_error); - else - snprintf(err_string, ERR_BUFFER_SIZE, "Unknown error code %u", (unsigned int)error_code); - } else { - // Remove CR/LF terminators, if present - size_t pos = size - 2; - if (wErr_string[pos] == 0x0D) - wErr_string[pos] = 0; - - if (!WideCharToMultiByte(CP_ACP, 0, wErr_string, -1, &err_string[len], ERR_BUFFER_SIZE - len, NULL, NULL)) - strcpy(err_string, "Unable to convert error string"); - } - - return err_string; -} -#endif - -static struct wince_device_priv *_device_priv(struct libusb_device *dev) -{ - return (struct wince_device_priv *)dev->os_priv; -} - -// ceusbkwrapper to libusb error code mapping -static int translate_driver_error(DWORD error) -{ - switch (error) { - case ERROR_INVALID_PARAMETER: - return LIBUSB_ERROR_INVALID_PARAM; - case ERROR_CALL_NOT_IMPLEMENTED: - case ERROR_NOT_SUPPORTED: - return LIBUSB_ERROR_NOT_SUPPORTED; - case ERROR_NOT_ENOUGH_MEMORY: - return LIBUSB_ERROR_NO_MEM; - case ERROR_INVALID_HANDLE: - return LIBUSB_ERROR_NO_DEVICE; - case ERROR_BUSY: - return LIBUSB_ERROR_BUSY; - - // Error codes that are either unexpected, or have - // no suitable LIBUSB_ERROR equivalent. - case ERROR_CANCELLED: - case ERROR_INTERNAL_ERROR: - default: - return LIBUSB_ERROR_OTHER; - } -} - -static int init_dllimports(void) -{ - DLL_GET_HANDLE(ceusbkwrapper); - DLL_LOAD_FUNC(ceusbkwrapper, UkwOpenDriver, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwGetDeviceList, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwReleaseDeviceList, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwGetDeviceAddress, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwGetDeviceDescriptor, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwGetConfigDescriptor, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwCloseDriver, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwCancelTransfer, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwIssueControlTransfer, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwClaimInterface, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwReleaseInterface, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwSetInterfaceAlternateSetting, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwClearHaltHost, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwClearHaltDevice, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwGetConfig, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwSetConfig, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwResetDevice, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwKernelDriverActive, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwAttachKernelDriver, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwDetachKernelDriver, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwIssueBulkTransfer, TRUE); - DLL_LOAD_FUNC(ceusbkwrapper, UkwIsPipeHalted, TRUE); - - return LIBUSB_SUCCESS; -} - -static void exit_dllimports(void) -{ - DLL_FREE_HANDLE(ceusbkwrapper); -} - -static int init_device( - struct libusb_device *dev, UKW_DEVICE drv_dev, - unsigned char bus_addr, unsigned char dev_addr) -{ - struct wince_device_priv *priv = _device_priv(dev); - int r = LIBUSB_SUCCESS; - - dev->bus_number = bus_addr; - dev->device_address = dev_addr; - priv->dev = drv_dev; - - if (!UkwGetDeviceDescriptor(priv->dev, &(priv->desc))) - r = translate_driver_error(GetLastError()); - - return r; -} - -// Internal API functions -static int wince_init(struct libusb_context *ctx) -{ - int r = LIBUSB_ERROR_OTHER; - HANDLE semaphore; - LARGE_INTEGER li_frequency; - TCHAR sem_name[11 + 8 + 1]; // strlen("libusb_init") + (32-bit hex PID) + '\0' - - _stprintf(sem_name, _T("libusb_init%08X"), (unsigned int)(GetCurrentProcessId() & 0xFFFFFFFF)); - semaphore = CreateSemaphore(NULL, 1, 1, sem_name); - if (semaphore == NULL) { - usbi_err(ctx, "could not create semaphore: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_MEM; - } - - // A successful wait brings our semaphore count to 0 (unsignaled) - // => any concurent wait stalls until the semaphore's release - if (WaitForSingleObject(semaphore, INFINITE) != WAIT_OBJECT_0) { - usbi_err(ctx, "failure to access semaphore: %s", windows_error_str(0)); - CloseHandle(semaphore); - return LIBUSB_ERROR_NO_MEM; - } - - // NB: concurrent usage supposes that init calls are equally balanced with - // exit calls. If init is called more than exit, we will not exit properly - if ( ++concurrent_usage == 0 ) { // First init? - // Initialize pollable file descriptors - init_polling(); - - // Load DLL imports - if (init_dllimports() != LIBUSB_SUCCESS) { - usbi_err(ctx, "could not resolve DLL functions"); - r = LIBUSB_ERROR_NOT_SUPPORTED; - goto init_exit; - } - - // try to open a handle to the driver - driver_handle = UkwOpenDriver(); - if (driver_handle == INVALID_HANDLE_VALUE) { - usbi_err(ctx, "could not connect to driver"); - r = LIBUSB_ERROR_NOT_SUPPORTED; - goto init_exit; - } - - // find out if we have access to a monotonic (hires) timer - if (QueryPerformanceFrequency(&li_frequency)) { - hires_frequency = li_frequency.QuadPart; - // The hires frequency can go as high as 4 GHz, so we'll use a conversion - // to picoseconds to compute the tv_nsecs part in clock_gettime - hires_ticks_to_ps = UINT64_C(1000000000000) / hires_frequency; - usbi_dbg("hires timer available (Frequency: %"PRIu64" Hz)", hires_frequency); - } else { - usbi_dbg("no hires timer available on this platform"); - hires_frequency = 0; - hires_ticks_to_ps = UINT64_C(0); - } - } - // At this stage, either we went through full init successfully, or didn't need to - r = LIBUSB_SUCCESS; - -init_exit: // Holds semaphore here. - if (!concurrent_usage && r != LIBUSB_SUCCESS) { // First init failed? - exit_dllimports(); - exit_polling(); - - if (driver_handle != INVALID_HANDLE_VALUE) { - UkwCloseDriver(driver_handle); - driver_handle = INVALID_HANDLE_VALUE; - } - } - - if (r != LIBUSB_SUCCESS) - --concurrent_usage; // Not expected to call libusb_exit if we failed. - - ReleaseSemaphore(semaphore, 1, NULL); // increase count back to 1 - CloseHandle(semaphore); - return r; -} - -static void wince_exit(void) -{ - HANDLE semaphore; - TCHAR sem_name[11 + 8 + 1]; // strlen("libusb_init") + (32-bit hex PID) + '\0' - - _stprintf(sem_name, _T("libusb_init%08X"), (unsigned int)(GetCurrentProcessId() & 0xFFFFFFFF)); - semaphore = CreateSemaphore(NULL, 1, 1, sem_name); - if (semaphore == NULL) - return; - - // A successful wait brings our semaphore count to 0 (unsignaled) - // => any concurent wait stalls until the semaphore release - if (WaitForSingleObject(semaphore, INFINITE) != WAIT_OBJECT_0) { - CloseHandle(semaphore); - return; - } - - // Only works if exits and inits are balanced exactly - if (--concurrent_usage < 0) { // Last exit - exit_dllimports(); - exit_polling(); - - if (driver_handle != INVALID_HANDLE_VALUE) { - UkwCloseDriver(driver_handle); - driver_handle = INVALID_HANDLE_VALUE; - } - } - - ReleaseSemaphore(semaphore, 1, NULL); // increase count back to 1 - CloseHandle(semaphore); -} - -static int wince_get_device_list( - struct libusb_context *ctx, - struct discovered_devs **discdevs) -{ - UKW_DEVICE devices[MAX_DEVICE_COUNT]; - struct discovered_devs *new_devices = *discdevs; - DWORD count = 0, i; - struct libusb_device *dev = NULL; - unsigned char bus_addr, dev_addr; - unsigned long session_id; - BOOL success; - DWORD release_list_offset = 0; - int r = LIBUSB_SUCCESS; - - success = UkwGetDeviceList(driver_handle, devices, MAX_DEVICE_COUNT, &count); - if (!success) { - int libusbErr = translate_driver_error(GetLastError()); - usbi_err(ctx, "could not get devices: %s", windows_error_str(0)); - return libusbErr; - } - - for (i = 0; i < count; ++i) { - release_list_offset = i; - success = UkwGetDeviceAddress(devices[i], &bus_addr, &dev_addr, &session_id); - if (!success) { - r = translate_driver_error(GetLastError()); - usbi_err(ctx, "could not get device address for %u: %s", (unsigned int)i, windows_error_str(0)); - goto err_out; - } - - dev = usbi_get_device_by_session_id(ctx, session_id); - if (dev) { - usbi_dbg("using existing device for %u/%u (session %lu)", - bus_addr, dev_addr, session_id); - // Release just this element in the device list (as we already hold a - // reference to it). - UkwReleaseDeviceList(driver_handle, &devices[i], 1); - release_list_offset++; - } else { - usbi_dbg("allocating new device for %u/%u (session %lu)", - bus_addr, dev_addr, session_id); - dev = usbi_alloc_device(ctx, session_id); - if (!dev) { - r = LIBUSB_ERROR_NO_MEM; - goto err_out; - } - - r = init_device(dev, devices[i], bus_addr, dev_addr); - if (r < 0) - goto err_out; - - r = usbi_sanitize_device(dev); - if (r < 0) - goto err_out; - } - - new_devices = discovered_devs_append(new_devices, dev); - if (!discdevs) { - r = LIBUSB_ERROR_NO_MEM; - goto err_out; - } - - libusb_unref_device(dev); - } - - *discdevs = new_devices; - return r; -err_out: - *discdevs = new_devices; - libusb_unref_device(dev); - // Release the remainder of the unprocessed device list. - // The devices added to new_devices already will still be passed up to libusb, - // which can dispose of them at its leisure. - UkwReleaseDeviceList(driver_handle, &devices[release_list_offset], count - release_list_offset); - return r; -} - -static int wince_open(struct libusb_device_handle *handle) -{ - // Nothing to do to open devices as a handle to it has - // been retrieved by wince_get_device_list - return LIBUSB_SUCCESS; -} - -static void wince_close(struct libusb_device_handle *handle) -{ - // Nothing to do as wince_open does nothing. -} - -static int wince_get_device_descriptor( - struct libusb_device *device, - unsigned char *buffer, int *host_endian) -{ - struct wince_device_priv *priv = _device_priv(device); - - *host_endian = 1; - memcpy(buffer, &priv->desc, DEVICE_DESC_LENGTH); - return LIBUSB_SUCCESS; -} - -static int wince_get_active_config_descriptor( - struct libusb_device *device, - unsigned char *buffer, size_t len, int *host_endian) -{ - struct wince_device_priv *priv = _device_priv(device); - DWORD actualSize = len; - - *host_endian = 0; - if (!UkwGetConfigDescriptor(priv->dev, UKW_ACTIVE_CONFIGURATION, buffer, len, &actualSize)) - return translate_driver_error(GetLastError()); - - return actualSize; -} - -static int wince_get_config_descriptor( - struct libusb_device *device, - uint8_t config_index, - unsigned char *buffer, size_t len, int *host_endian) -{ - struct wince_device_priv *priv = _device_priv(device); - DWORD actualSize = len; - - *host_endian = 0; - if (!UkwGetConfigDescriptor(priv->dev, config_index, buffer, len, &actualSize)) - return translate_driver_error(GetLastError()); - - return actualSize; -} - -static int wince_get_configuration( - struct libusb_device_handle *handle, - int *config) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - UCHAR cv = 0; - - if (!UkwGetConfig(priv->dev, &cv)) - return translate_driver_error(GetLastError()); - - (*config) = cv; - return LIBUSB_SUCCESS; -} - -static int wince_set_configuration( - struct libusb_device_handle *handle, - int config) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - // Setting configuration 0 places the device in Address state. - // This should correspond to the "unconfigured state" required by - // libusb when the specified configuration is -1. - UCHAR cv = (config < 0) ? 0 : config; - if (!UkwSetConfig(priv->dev, cv)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_claim_interface( - struct libusb_device_handle *handle, - int interface_number) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwClaimInterface(priv->dev, interface_number)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_release_interface( - struct libusb_device_handle *handle, - int interface_number) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwSetInterfaceAlternateSetting(priv->dev, interface_number, 0)) - return translate_driver_error(GetLastError()); - - if (!UkwReleaseInterface(priv->dev, interface_number)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_set_interface_altsetting( - struct libusb_device_handle *handle, - int interface_number, int altsetting) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwSetInterfaceAlternateSetting(priv->dev, interface_number, altsetting)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_clear_halt( - struct libusb_device_handle *handle, - unsigned char endpoint) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwClearHaltHost(priv->dev, endpoint)) - return translate_driver_error(GetLastError()); - - if (!UkwClearHaltDevice(priv->dev, endpoint)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_reset_device( - struct libusb_device_handle *handle) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwResetDevice(priv->dev)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_kernel_driver_active( - struct libusb_device_handle *handle, - int interface_number) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - BOOL result = FALSE; - - if (!UkwKernelDriverActive(priv->dev, interface_number, &result)) - return translate_driver_error(GetLastError()); - - return result ? 1 : 0; -} - -static int wince_detach_kernel_driver( - struct libusb_device_handle *handle, - int interface_number) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwDetachKernelDriver(priv->dev, interface_number)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_attach_kernel_driver( - struct libusb_device_handle *handle, - int interface_number) -{ - struct wince_device_priv *priv = _device_priv(handle->dev); - - if (!UkwAttachKernelDriver(priv->dev, interface_number)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static void wince_destroy_device(struct libusb_device *dev) -{ - struct wince_device_priv *priv = _device_priv(dev); - - UkwReleaseDeviceList(driver_handle, &priv->dev, 1); -} - -static void wince_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - struct wince_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct winfd wfd = fd_to_winfd(transfer_priv->pollable_fd.fd); - - // No need to cancel transfer as it is either complete or abandoned - wfd.itransfer = NULL; - CloseHandle(wfd.handle); - usbi_free_fd(&transfer_priv->pollable_fd); -} - -static int wince_cancel_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct wince_device_priv *priv = _device_priv(transfer->dev_handle->dev); - struct wince_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - - if (!UkwCancelTransfer(priv->dev, transfer_priv->pollable_fd.overlapped, UKW_TF_NO_WAIT)) - return translate_driver_error(GetLastError()); - - return LIBUSB_SUCCESS; -} - -static int wince_submit_control_or_bulk_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct wince_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct wince_device_priv *priv = _device_priv(transfer->dev_handle->dev); - BOOL direction_in, ret; - struct winfd wfd; - DWORD flags; - HANDLE eventHandle; - PUKW_CONTROL_HEADER setup = NULL; - const BOOL control_transfer = transfer->type == LIBUSB_TRANSFER_TYPE_CONTROL; - - transfer_priv->pollable_fd = INVALID_WINFD; - if (control_transfer) { - setup = (PUKW_CONTROL_HEADER) transfer->buffer; - direction_in = setup->bmRequestType & LIBUSB_ENDPOINT_IN; - } else { - direction_in = transfer->endpoint & LIBUSB_ENDPOINT_IN; - } - flags = direction_in ? UKW_TF_IN_TRANSFER : UKW_TF_OUT_TRANSFER; - flags |= UKW_TF_SHORT_TRANSFER_OK; - - eventHandle = CreateEvent(NULL, FALSE, FALSE, NULL); - if (eventHandle == NULL) { - usbi_err(ctx, "Failed to create event for async transfer"); - return LIBUSB_ERROR_NO_MEM; - } - - wfd = usbi_create_fd(eventHandle, direction_in ? RW_READ : RW_WRITE, itransfer, &wince_cancel_transfer); - if (wfd.fd < 0) { - CloseHandle(eventHandle); - return LIBUSB_ERROR_NO_MEM; - } - - transfer_priv->pollable_fd = wfd; - if (control_transfer) { - // Split out control setup header and data buffer - DWORD bufLen = transfer->length - sizeof(UKW_CONTROL_HEADER); - PVOID buf = (PVOID) &transfer->buffer[sizeof(UKW_CONTROL_HEADER)]; - - ret = UkwIssueControlTransfer(priv->dev, flags, setup, buf, bufLen, &transfer->actual_length, wfd.overlapped); - } else { - ret = UkwIssueBulkTransfer(priv->dev, flags, transfer->endpoint, transfer->buffer, - transfer->length, &transfer->actual_length, wfd.overlapped); - } - - if (!ret) { - int libusbErr = translate_driver_error(GetLastError()); - usbi_err(ctx, "UkwIssue%sTransfer failed: error %u", - control_transfer ? "Control" : "Bulk", (unsigned int)GetLastError()); - wince_clear_transfer_priv(itransfer); - return libusbErr; - } - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, direction_in ? POLLIN : POLLOUT); - - return LIBUSB_SUCCESS; -} - -static int wince_submit_iso_transfer(struct usbi_transfer *itransfer) -{ - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int wince_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - return wince_submit_control_or_bulk_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return wince_submit_iso_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - return LIBUSB_ERROR_NOT_SUPPORTED; - default: - usbi_err(TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static void wince_transfer_callback( - struct usbi_transfer *itransfer, - uint32_t io_result, uint32_t io_size) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct wince_transfer_priv *transfer_priv = (struct wince_transfer_priv*)usbi_transfer_get_os_priv(itransfer); - struct wince_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int status; - - usbi_dbg("handling I/O completion with errcode %u", io_result); - - if (io_result == ERROR_NOT_SUPPORTED && - transfer->type != LIBUSB_TRANSFER_TYPE_CONTROL) { - /* For functional stalls, the WinCE USB layer (and therefore the USB Kernel Wrapper - * Driver) will report USB_ERROR_STALL/ERROR_NOT_SUPPORTED in situations where the - * endpoint isn't actually stalled. - * - * One example of this is that some devices will occasionally fail to reply to an IN - * token. The WinCE USB layer carries on with the transaction until it is completed - * (or cancelled) but then completes it with USB_ERROR_STALL. - * - * This code therefore needs to confirm that there really is a stall error, by both - * checking the pipe status and requesting the endpoint status from the device. - */ - BOOL halted = FALSE; - usbi_dbg("checking I/O completion with errcode ERROR_NOT_SUPPORTED is really a stall"); - if (UkwIsPipeHalted(priv->dev, transfer->endpoint, &halted)) { - /* Pipe status retrieved, so now request endpoint status by sending a GET_STATUS - * control request to the device. This is done synchronously, which is a bit - * naughty, but this is a special corner case. - */ - WORD wStatus = 0; - DWORD written = 0; - UKW_CONTROL_HEADER ctrlHeader; - ctrlHeader.bmRequestType = LIBUSB_REQUEST_TYPE_STANDARD | - LIBUSB_ENDPOINT_IN | LIBUSB_RECIPIENT_ENDPOINT; - ctrlHeader.bRequest = LIBUSB_REQUEST_GET_STATUS; - ctrlHeader.wValue = 0; - ctrlHeader.wIndex = transfer->endpoint; - ctrlHeader.wLength = sizeof(wStatus); - if (UkwIssueControlTransfer(priv->dev, - UKW_TF_IN_TRANSFER | UKW_TF_SEND_TO_ENDPOINT, - &ctrlHeader, &wStatus, sizeof(wStatus), &written, NULL)) { - if (written == sizeof(wStatus) && - (wStatus & STATUS_HALT_FLAG) == 0) { - if (!halted || UkwClearHaltHost(priv->dev, transfer->endpoint)) { - usbi_dbg("Endpoint doesn't appear to be stalled, overriding error with success"); - io_result = ERROR_SUCCESS; - } else { - usbi_dbg("Endpoint doesn't appear to be stalled, but the host is halted, changing error"); - io_result = ERROR_IO_DEVICE; - } - } - } - } - } - - switch(io_result) { - case ERROR_SUCCESS: - itransfer->transferred += io_size; - status = LIBUSB_TRANSFER_COMPLETED; - break; - case ERROR_CANCELLED: - usbi_dbg("detected transfer cancel"); - status = LIBUSB_TRANSFER_CANCELLED; - break; - case ERROR_NOT_SUPPORTED: - case ERROR_GEN_FAILURE: - usbi_dbg("detected endpoint stall"); - status = LIBUSB_TRANSFER_STALL; - break; - case ERROR_SEM_TIMEOUT: - usbi_dbg("detected semaphore timeout"); - status = LIBUSB_TRANSFER_TIMED_OUT; - break; - case ERROR_OPERATION_ABORTED: - usbi_dbg("detected operation aborted"); - status = LIBUSB_TRANSFER_CANCELLED; - break; - default: - usbi_err(ITRANSFER_CTX(itransfer), "detected I/O error: %s", windows_error_str(io_result)); - status = LIBUSB_TRANSFER_ERROR; - break; - } - - wince_clear_transfer_priv(itransfer); - if (status == LIBUSB_TRANSFER_CANCELLED) - usbi_handle_transfer_cancellation(itransfer); - else - usbi_handle_transfer_completion(itransfer, (enum libusb_transfer_status)status); -} - -static void wince_handle_callback( - struct usbi_transfer *itransfer, - uint32_t io_result, uint32_t io_size) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - wince_transfer_callback (itransfer, io_result, io_size); - break; - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - break; - default: - usbi_err(ITRANSFER_CTX(itransfer), "unknown endpoint type %d", transfer->type); - } -} - -static int wince_handle_events( - struct libusb_context *ctx, - struct pollfd *fds, POLL_NFDS_TYPE nfds, int num_ready) -{ - struct wince_transfer_priv* transfer_priv = NULL; - POLL_NFDS_TYPE i = 0; - BOOL found = FALSE; - struct usbi_transfer *transfer; - DWORD io_size, io_result; - int r = LIBUSB_SUCCESS; - - usbi_mutex_lock(&ctx->open_devs_lock); - for (i = 0; i < nfds && num_ready > 0; i++) { - - usbi_dbg("checking fd %d with revents = %04x", fds[i].fd, fds[i].revents); - - if (!fds[i].revents) - continue; - - num_ready--; - - // Because a Windows OVERLAPPED is used for poll emulation, - // a pollable fd is created and stored with each transfer - usbi_mutex_lock(&ctx->flying_transfers_lock); - list_for_each_entry(transfer, &ctx->flying_transfers, list, struct usbi_transfer) { - transfer_priv = usbi_transfer_get_os_priv(transfer); - if (transfer_priv->pollable_fd.fd == fds[i].fd) { - found = TRUE; - break; - } - } - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - if (found && HasOverlappedIoCompleted(transfer_priv->pollable_fd.overlapped)) { - io_result = (DWORD)transfer_priv->pollable_fd.overlapped->Internal; - io_size = (DWORD)transfer_priv->pollable_fd.overlapped->InternalHigh; - usbi_remove_pollfd(ctx, transfer_priv->pollable_fd.fd); - // let handle_callback free the event using the transfer wfd - // If you don't use the transfer wfd, you run a risk of trying to free a - // newly allocated wfd that took the place of the one from the transfer. - wince_handle_callback(transfer, io_result, io_size); - } else if (found) { - usbi_err(ctx, "matching transfer for fd %d has not completed", fds[i]); - r = LIBUSB_ERROR_OTHER; - break; - } else { - usbi_err(ctx, "could not find a matching transfer for fd %d", fds[i]); - r = LIBUSB_ERROR_NOT_FOUND; - break; - } - } - usbi_mutex_unlock(&ctx->open_devs_lock); - - return r; -} - -/* - * Monotonic and real time functions - */ -static int wince_clock_gettime(int clk_id, struct timespec *tp) -{ - LARGE_INTEGER hires_counter; - ULARGE_INTEGER rtime; - FILETIME filetime; - SYSTEMTIME st; - - switch(clk_id) { - case USBI_CLOCK_MONOTONIC: - if (hires_frequency != 0 && QueryPerformanceCounter(&hires_counter)) { - tp->tv_sec = (long)(hires_counter.QuadPart / hires_frequency); - tp->tv_nsec = (long)(((hires_counter.QuadPart % hires_frequency) / 1000) * hires_ticks_to_ps); - return LIBUSB_SUCCESS; - } - // Fall through and return real-time if monotonic read failed or was not detected @ init - case USBI_CLOCK_REALTIME: - // We follow http://msdn.microsoft.com/en-us/library/ms724928%28VS.85%29.aspx - // with a predef epoch time to have an epoch that starts at 1970.01.01 00:00 - // Note however that our resolution is bounded by the Windows system time - // functions and is at best of the order of 1 ms (or, usually, worse) - GetSystemTime(&st); - SystemTimeToFileTime(&st, &filetime); - rtime.LowPart = filetime.dwLowDateTime; - rtime.HighPart = filetime.dwHighDateTime; - rtime.QuadPart -= EPOCH_TIME; - tp->tv_sec = (long)(rtime.QuadPart / 10000000); - tp->tv_nsec = (long)((rtime.QuadPart % 10000000)*100); - return LIBUSB_SUCCESS; - default: - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -const struct usbi_os_backend wince_backend = { - "Windows CE", - 0, - wince_init, - wince_exit, - - wince_get_device_list, - NULL, /* hotplug_poll */ - wince_open, - wince_close, - - wince_get_device_descriptor, - wince_get_active_config_descriptor, - wince_get_config_descriptor, - NULL, /* get_config_descriptor_by_value() */ - - wince_get_configuration, - wince_set_configuration, - wince_claim_interface, - wince_release_interface, - - wince_set_interface_altsetting, - wince_clear_halt, - wince_reset_device, - - NULL, /* alloc_streams */ - NULL, /* free_streams */ - - NULL, /* dev_mem_alloc() */ - NULL, /* dev_mem_free() */ - - wince_kernel_driver_active, - wince_detach_kernel_driver, - wince_attach_kernel_driver, - - wince_destroy_device, - - wince_submit_transfer, - wince_cancel_transfer, - wince_clear_transfer_priv, - - wince_handle_events, - NULL, /* handle_transfer_completion() */ - - wince_clock_gettime, - sizeof(struct wince_device_priv), - 0, - sizeof(struct wince_transfer_priv), -}; diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.h deleted file mode 100644 index edcb9fcc..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/wince_usb.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Windows CE backend for libusb 1.0 - * Copyright © 2011-2013 RealVNC Ltd. - * Portions taken from Windows backend, which is - * Copyright © 2009-2010 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -#pragma once - -#include "windows_common.h" - -#include -#include "poll_windows.h" - -#define MAX_DEVICE_COUNT 256 - -// This is a modified dump of the types in the ceusbkwrapper.h library header -// with functions transformed into extern pointers. -// -// This backend dynamically loads ceusbkwrapper.dll and doesn't include -// ceusbkwrapper.h directly to simplify the build process. The kernel -// side wrapper driver is built using the platform image build tools, -// which makes it difficult to reference directly from the libusb build -// system. -struct UKW_DEVICE_PRIV; -typedef struct UKW_DEVICE_PRIV *UKW_DEVICE; -typedef UKW_DEVICE *PUKW_DEVICE, *LPUKW_DEVICE; - -typedef struct { - UINT8 bLength; - UINT8 bDescriptorType; - UINT16 bcdUSB; - UINT8 bDeviceClass; - UINT8 bDeviceSubClass; - UINT8 bDeviceProtocol; - UINT8 bMaxPacketSize0; - UINT16 idVendor; - UINT16 idProduct; - UINT16 bcdDevice; - UINT8 iManufacturer; - UINT8 iProduct; - UINT8 iSerialNumber; - UINT8 bNumConfigurations; -} UKW_DEVICE_DESCRIPTOR, *PUKW_DEVICE_DESCRIPTOR, *LPUKW_DEVICE_DESCRIPTOR; - -typedef struct { - UINT8 bmRequestType; - UINT8 bRequest; - UINT16 wValue; - UINT16 wIndex; - UINT16 wLength; -} UKW_CONTROL_HEADER, *PUKW_CONTROL_HEADER, *LPUKW_CONTROL_HEADER; - -// Collection of flags which can be used when issuing transfer requests -/* Indicates that the transfer direction is 'in' */ -#define UKW_TF_IN_TRANSFER 0x00000001 -/* Indicates that the transfer direction is 'out' */ -#define UKW_TF_OUT_TRANSFER 0x00000000 -/* Specifies that the transfer should complete as soon as possible, - * even if no OVERLAPPED structure has been provided. */ -#define UKW_TF_NO_WAIT 0x00000100 -/* Indicates that transfers shorter than the buffer are ok */ -#define UKW_TF_SHORT_TRANSFER_OK 0x00000200 -#define UKW_TF_SEND_TO_DEVICE 0x00010000 -#define UKW_TF_SEND_TO_INTERFACE 0x00020000 -#define UKW_TF_SEND_TO_ENDPOINT 0x00040000 -/* Don't block when waiting for memory allocations */ -#define UKW_TF_DONT_BLOCK_FOR_MEM 0x00080000 - -/* Value to use when dealing with configuration values, such as UkwGetConfigDescriptor, - * to specify the currently active configuration for the device. */ -#define UKW_ACTIVE_CONFIGURATION -1 - -DLL_DECLARE_HANDLE(ceusbkwrapper); -DLL_DECLARE_FUNC(WINAPI, HANDLE, UkwOpenDriver, ()); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwGetDeviceList, (HANDLE, LPUKW_DEVICE, DWORD, LPDWORD)); -DLL_DECLARE_FUNC(WINAPI, void, UkwReleaseDeviceList, (HANDLE, LPUKW_DEVICE, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwGetDeviceAddress, (UKW_DEVICE, unsigned char*, unsigned char*, unsigned long*)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwGetDeviceDescriptor, (UKW_DEVICE, LPUKW_DEVICE_DESCRIPTOR)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwGetConfigDescriptor, (UKW_DEVICE, DWORD, LPVOID, DWORD, LPDWORD)); -DLL_DECLARE_FUNC(WINAPI, void, UkwCloseDriver, (HANDLE)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwCancelTransfer, (UKW_DEVICE, LPOVERLAPPED, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwIssueControlTransfer, (UKW_DEVICE, DWORD, LPUKW_CONTROL_HEADER, LPVOID, DWORD, LPDWORD, LPOVERLAPPED)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwClaimInterface, (UKW_DEVICE, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwReleaseInterface, (UKW_DEVICE, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwSetInterfaceAlternateSetting, (UKW_DEVICE, DWORD, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwClearHaltHost, (UKW_DEVICE, UCHAR)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwClearHaltDevice, (UKW_DEVICE, UCHAR)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwGetConfig, (UKW_DEVICE, PUCHAR)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwSetConfig, (UKW_DEVICE, UCHAR)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwResetDevice, (UKW_DEVICE)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwKernelDriverActive, (UKW_DEVICE, DWORD, PBOOL)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwAttachKernelDriver, (UKW_DEVICE, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwDetachKernelDriver, (UKW_DEVICE, DWORD)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwIssueBulkTransfer, (UKW_DEVICE, DWORD, UCHAR, LPVOID, DWORD, LPDWORD, LPOVERLAPPED)); -DLL_DECLARE_FUNC(WINAPI, BOOL, UkwIsPipeHalted, (UKW_DEVICE, UCHAR, LPBOOL)); - -// Used to determine if an endpoint status really is halted on a failed transfer. -#define STATUS_HALT_FLAG 0x1 - -struct wince_device_priv { - UKW_DEVICE dev; - UKW_DEVICE_DESCRIPTOR desc; -}; - -struct wince_transfer_priv { - struct winfd pollable_fd; - uint8_t interface_number; -}; - diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_common.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_common.h deleted file mode 100644 index 55344ca2..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_common.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Windows backend common header for libusb 1.0 - * - * This file brings together header code common between - * the desktop Windows and Windows CE backends. - * Copyright © 2012-2013 RealVNC Ltd. - * Copyright © 2009-2012 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#pragma once - -// Windows API default is uppercase - ugh! -#if !defined(bool) -#define bool BOOL -#endif -#if !defined(true) -#define true TRUE -#endif -#if !defined(false) -#define false FALSE -#endif - -#define EPOCH_TIME UINT64_C(116444736000000000) // 1970.01.01 00:00:000 in MS Filetime - -#if defined(__CYGWIN__ ) -#define _stricmp strcasecmp -#define _strdup strdup -// _beginthreadex is MSVCRT => unavailable for cygwin. Fallback to using CreateThread -#define _beginthreadex(a, b, c, d, e, f) CreateThread(a, b, (LPTHREAD_START_ROUTINE)c, d, e, (LPDWORD)f) -#endif - -#define safe_free(p) do {if (p != NULL) {free((void *)p); p = NULL;}} while (0) - -#ifndef ARRAYSIZE -#define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) -#endif - -#define ERR_BUFFER_SIZE 256 - -/* - * API macros - leveraged from libusb-win32 1.x - */ -#ifndef _WIN32_WCE -#define DLL_STRINGIFY(s) #s -#define DLL_LOAD_LIBRARY(name) LoadLibraryA(DLL_STRINGIFY(name)) -#else -#define DLL_STRINGIFY(s) L#s -#define DLL_LOAD_LIBRARY(name) LoadLibrary(DLL_STRINGIFY(name)) -#endif - -/* - * Macros for handling DLL themselves - */ -#define DLL_DECLARE_HANDLE(name) \ - static HMODULE __dll_##name##_handle = NULL - -#define DLL_GET_HANDLE(name) \ - do { \ - __dll_##name##_handle = DLL_LOAD_LIBRARY(name); \ - if (!__dll_##name##_handle) \ - return LIBUSB_ERROR_OTHER; \ - } while (0) - -#define DLL_FREE_HANDLE(name) \ - do { \ - if (__dll_##name##_handle) { \ - FreeLibrary(__dll_##name##_handle); \ - __dll_##name##_handle = NULL; \ - } \ - } while(0) - - -/* - * Macros for handling functions within a DLL - */ -#define DLL_DECLARE_FUNC_PREFIXNAME(api, ret, prefixname, name, args) \ - typedef ret (api * __dll_##name##_func_t)args; \ - static __dll_##name##_func_t prefixname = NULL - -#define DLL_DECLARE_FUNC(api, ret, name, args) \ - DLL_DECLARE_FUNC_PREFIXNAME(api, ret, name, name, args) -#define DLL_DECLARE_FUNC_PREFIXED(api, ret, prefix, name, args) \ - DLL_DECLARE_FUNC_PREFIXNAME(api, ret, prefix##name, name, args) - -#define DLL_LOAD_FUNC_PREFIXNAME(dll, prefixname, name, ret_on_failure) \ - do { \ - HMODULE h = __dll_##dll##_handle; \ - prefixname = (__dll_##name##_func_t)GetProcAddress(h, \ - DLL_STRINGIFY(name)); \ - if (prefixname) \ - break; \ - prefixname = (__dll_##name##_func_t)GetProcAddress(h, \ - DLL_STRINGIFY(name) DLL_STRINGIFY(A)); \ - if (prefixname) \ - break; \ - prefixname = (__dll_##name##_func_t)GetProcAddress(h, \ - DLL_STRINGIFY(name) DLL_STRINGIFY(W)); \ - if (prefixname) \ - break; \ - if (ret_on_failure) \ - return LIBUSB_ERROR_NOT_FOUND; \ - } while(0) - -#define DLL_LOAD_FUNC(dll, name, ret_on_failure) \ - DLL_LOAD_FUNC_PREFIXNAME(dll, name, name, ret_on_failure) -#define DLL_LOAD_FUNC_PREFIXED(dll, prefix, name, ret_on_failure) \ - DLL_LOAD_FUNC_PREFIXNAME(dll, prefix##name, name, ret_on_failure) diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.c deleted file mode 100644 index d935394a..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.c +++ /dev/null @@ -1,591 +0,0 @@ -/* - * windows backend for libusb 1.0 - * Copyright © 2009-2012 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * HID Reports IOCTLs inspired from HIDAPI by Alan Ott, Signal 11 Software - * Hash table functions adapted from glibc, by Ulrich Drepper et al. - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include - -#include "libusbi.h" -#include "windows_common.h" -#include "windows_nt_common.h" - -// Global variables for clock_gettime mechanism -static uint64_t hires_ticks_to_ps; -static uint64_t hires_frequency; - -#define TIMER_REQUEST_RETRY_MS 100 -#define WM_TIMER_REQUEST (WM_USER + 1) -#define WM_TIMER_EXIT (WM_USER + 2) - -// used for monotonic clock_gettime() -struct timer_request { - struct timespec *tp; - HANDLE event; -}; - -// Timer thread -static HANDLE timer_thread = NULL; -static DWORD timer_thread_id = 0; - -/* User32 dependencies */ -DLL_DECLARE_HANDLE(User32); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, GetMessageA, (LPMSG, HWND, UINT, UINT)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, PeekMessageA, (LPMSG, HWND, UINT, UINT, UINT)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, PostThreadMessageA, (DWORD, UINT, WPARAM, LPARAM)); - -static unsigned __stdcall windows_clock_gettime_threaded(void *param); - -/* -* Converts a windows error to human readable string -* uses retval as errorcode, or, if 0, use GetLastError() -*/ -#if defined(ENABLE_LOGGING) -const char *windows_error_str(DWORD error_code) -{ - static char err_string[ERR_BUFFER_SIZE]; - - DWORD size; - int len; - - if (error_code == 0) - error_code = GetLastError(); - - len = sprintf(err_string, "[%u] ", (unsigned int)error_code); - - // Translate codes returned by SetupAPI. The ones we are dealing with are either - // in 0x0000xxxx or 0xE000xxxx and can be distinguished from standard error codes. - // See http://msdn.microsoft.com/en-us/library/windows/hardware/ff545011.aspx - switch (error_code & 0xE0000000) { - case 0: - error_code = HRESULT_FROM_WIN32(error_code); // Still leaves ERROR_SUCCESS unmodified - break; - case 0xE0000000: - error_code = 0x80000000 | (FACILITY_SETUPAPI << 16) | (error_code & 0x0000FFFF); - break; - default: - break; - } - - size = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - &err_string[len], ERR_BUFFER_SIZE - len, NULL); - if (size == 0) { - DWORD format_error = GetLastError(); - if (format_error) - snprintf(err_string, ERR_BUFFER_SIZE, - "Windows error code %u (FormatMessage error code %u)", - (unsigned int)error_code, (unsigned int)format_error); - else - snprintf(err_string, ERR_BUFFER_SIZE, "Unknown error code %u", (unsigned int)error_code); - } else { - // Remove CRLF from end of message, if present - size_t pos = len + size - 2; - if (err_string[pos] == '\r') - err_string[pos] = '\0'; - } - - return err_string; -} -#endif - -/* Hash table functions - modified From glibc 2.3.2: - [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986 - [Knuth] The Art of Computer Programming, part 3 (6.4) */ - -#define HTAB_SIZE 1021UL // *MUST* be a prime number!! - -typedef struct htab_entry { - unsigned long used; - char *str; -} htab_entry; - -static htab_entry *htab_table = NULL; -static usbi_mutex_t htab_mutex = NULL; -static unsigned long htab_filled; - -/* Before using the hash table we must allocate memory for it. - We allocate one element more as the found prime number says. - This is done for more effective indexing as explained in the - comment for the hash function. */ -static bool htab_create(struct libusb_context *ctx) -{ - if (htab_table != NULL) { - usbi_err(ctx, "hash table already allocated"); - return true; - } - - // Create a mutex - usbi_mutex_init(&htab_mutex); - - usbi_dbg("using %lu entries hash table", HTAB_SIZE); - htab_filled = 0; - - // allocate memory and zero out. - htab_table = calloc(HTAB_SIZE + 1, sizeof(htab_entry)); - if (htab_table == NULL) { - usbi_err(ctx, "could not allocate space for hash table"); - return false; - } - - return true; -} - -/* After using the hash table it has to be destroyed. */ -static void htab_destroy(void) -{ - unsigned long i; - - if (htab_table == NULL) - return; - - for (i = 0; i < HTAB_SIZE; i++) - free(htab_table[i].str); - - safe_free(htab_table); - - usbi_mutex_destroy(&htab_mutex); -} - -/* This is the search function. It uses double hashing with open addressing. - We use a trick to speed up the lookup. The table is created with one - more element available. This enables us to use the index zero special. - This index will never be used because we store the first hash index in - the field used where zero means not used. Every other value means used. - The used field can be used as a first fast comparison for equality of - the stored and the parameter value. This helps to prevent unnecessary - expensive calls of strcmp. */ -unsigned long htab_hash(const char *str) -{ - unsigned long hval, hval2; - unsigned long idx; - unsigned long r = 5381; - int c; - const char *sz = str; - - if (str == NULL) - return 0; - - // Compute main hash value (algorithm suggested by Nokia) - while ((c = *sz++) != 0) - r = ((r << 5) + r) + c; - if (r == 0) - ++r; - - // compute table hash: simply take the modulus - hval = r % HTAB_SIZE; - if (hval == 0) - ++hval; - - // Try the first index - idx = hval; - - // Mutually exclusive access (R/W lock would be better) - usbi_mutex_lock(&htab_mutex); - - if (htab_table[idx].used) { - if ((htab_table[idx].used == hval) && (strcmp(str, htab_table[idx].str) == 0)) - goto out_unlock; // existing hash - - usbi_dbg("hash collision ('%s' vs '%s')", str, htab_table[idx].str); - - // Second hash function, as suggested in [Knuth] - hval2 = 1 + hval % (HTAB_SIZE - 2); - - do { - // Because size is prime this guarantees to step through all available indexes - if (idx <= hval2) - idx = HTAB_SIZE + idx - hval2; - else - idx -= hval2; - - // If we visited all entries leave the loop unsuccessfully - if (idx == hval) - break; - - // If entry is found use it. - if ((htab_table[idx].used == hval) && (strcmp(str, htab_table[idx].str) == 0)) - goto out_unlock; - } while (htab_table[idx].used); - } - - // Not found => New entry - - // If the table is full return an error - if (htab_filled >= HTAB_SIZE) { - usbi_err(NULL, "hash table is full (%lu entries)", HTAB_SIZE); - idx = 0; - goto out_unlock; - } - - htab_table[idx].str = _strdup(str); - if (htab_table[idx].str == NULL) { - usbi_err(NULL, "could not duplicate string for hash table"); - idx = 0; - goto out_unlock; - } - - htab_table[idx].used = hval; - ++htab_filled; - -out_unlock: - usbi_mutex_unlock(&htab_mutex); - - return idx; -} - -static int windows_init_dlls(void) -{ - DLL_GET_HANDLE(User32); - DLL_LOAD_FUNC_PREFIXED(User32, p, GetMessageA, TRUE); - DLL_LOAD_FUNC_PREFIXED(User32, p, PeekMessageA, TRUE); - DLL_LOAD_FUNC_PREFIXED(User32, p, PostThreadMessageA, TRUE); - - return LIBUSB_SUCCESS; -} - -static void windows_exit_dlls(void) -{ - DLL_FREE_HANDLE(User32); -} - -static bool windows_init_clock(struct libusb_context *ctx) -{ - DWORD_PTR affinity, dummy; - HANDLE event = NULL; - LARGE_INTEGER li_frequency; - int i; - - if (QueryPerformanceFrequency(&li_frequency)) { - // Load DLL imports - if (windows_init_dlls() != LIBUSB_SUCCESS) { - usbi_err(ctx, "could not resolve DLL functions"); - return false; - } - - // The hires frequency can go as high as 4 GHz, so we'll use a conversion - // to picoseconds to compute the tv_nsecs part in clock_gettime - hires_frequency = li_frequency.QuadPart; - hires_ticks_to_ps = UINT64_C(1000000000000) / hires_frequency; - usbi_dbg("hires timer available (Frequency: %"PRIu64" Hz)", hires_frequency); - - // Because QueryPerformanceCounter might report different values when - // running on different cores, we create a separate thread for the timer - // calls, which we glue to the first available core always to prevent timing discrepancies. - if (!GetProcessAffinityMask(GetCurrentProcess(), &affinity, &dummy) || (affinity == 0)) { - usbi_err(ctx, "could not get process affinity: %s", windows_error_str(0)); - return false; - } - - // The process affinity mask is a bitmask where each set bit represents a core on - // which this process is allowed to run, so we find the first set bit - for (i = 0; !(affinity & (DWORD_PTR)(1 << i)); i++); - affinity = (DWORD_PTR)(1 << i); - - usbi_dbg("timer thread will run on core #%d", i); - - event = CreateEvent(NULL, FALSE, FALSE, NULL); - if (event == NULL) { - usbi_err(ctx, "could not create event: %s", windows_error_str(0)); - return false; - } - - timer_thread = (HANDLE)_beginthreadex(NULL, 0, windows_clock_gettime_threaded, (void *)event, - 0, (unsigned int *)&timer_thread_id); - if (timer_thread == NULL) { - usbi_err(ctx, "unable to create timer thread - aborting"); - CloseHandle(event); - return false; - } - - if (!SetThreadAffinityMask(timer_thread, affinity)) - usbi_warn(ctx, "unable to set timer thread affinity, timer discrepancies may arise"); - - // Wait for timer thread to init before continuing. - if (WaitForSingleObject(event, INFINITE) != WAIT_OBJECT_0) { - usbi_err(ctx, "failed to wait for timer thread to become ready - aborting"); - CloseHandle(event); - return false; - } - - CloseHandle(event); - } else { - usbi_dbg("no hires timer available on this platform"); - hires_frequency = 0; - hires_ticks_to_ps = UINT64_C(0); - } - - return true; -} - -void windows_destroy_clock(void) -{ - if (timer_thread) { - // actually the signal to quit the thread. - if (!pPostThreadMessageA(timer_thread_id, WM_TIMER_EXIT, 0, 0) - || (WaitForSingleObject(timer_thread, INFINITE) != WAIT_OBJECT_0)) { - usbi_dbg("could not wait for timer thread to quit"); - TerminateThread(timer_thread, 1); - // shouldn't happen, but we're destroying - // all objects it might have held anyway. - } - CloseHandle(timer_thread); - timer_thread = NULL; - timer_thread_id = 0; - } -} - -/* -* Monotonic and real time functions -*/ -static unsigned __stdcall windows_clock_gettime_threaded(void *param) -{ - struct timer_request *request; - LARGE_INTEGER hires_counter; - MSG msg; - - // The following call will create this thread's message queue - // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms644946.aspx - pPeekMessageA(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE); - - // Signal windows_init_clock() that we're ready to service requests - if (!SetEvent((HANDLE)param)) - usbi_dbg("SetEvent failed for timer init event: %s", windows_error_str(0)); - param = NULL; - - // Main loop - wait for requests - while (1) { - if (pGetMessageA(&msg, NULL, WM_TIMER_REQUEST, WM_TIMER_EXIT) == -1) { - usbi_err(NULL, "GetMessage failed for timer thread: %s", windows_error_str(0)); - return 1; - } - - switch (msg.message) { - case WM_TIMER_REQUEST: - // Requests to this thread are for hires always - // Microsoft says that this function always succeeds on XP and later - // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms644904.aspx - request = (struct timer_request *)msg.lParam; - QueryPerformanceCounter(&hires_counter); - request->tp->tv_sec = (long)(hires_counter.QuadPart / hires_frequency); - request->tp->tv_nsec = (long)(((hires_counter.QuadPart % hires_frequency) / 1000) * hires_ticks_to_ps); - if (!SetEvent(request->event)) - usbi_err(NULL, "SetEvent failed for timer request: %s", windows_error_str(0)); - break; - case WM_TIMER_EXIT: - usbi_dbg("timer thread quitting"); - return 0; - } - } -} - -int windows_clock_gettime(int clk_id, struct timespec *tp) -{ - struct timer_request request; -#if !defined(_MSC_VER) || (_MSC_VER < 1900) - FILETIME filetime; - ULARGE_INTEGER rtime; -#endif - DWORD r; - - switch (clk_id) { - case USBI_CLOCK_MONOTONIC: - if (timer_thread) { - request.tp = tp; - request.event = CreateEvent(NULL, FALSE, FALSE, NULL); - if (request.event == NULL) - return LIBUSB_ERROR_NO_MEM; - - if (!pPostThreadMessageA(timer_thread_id, WM_TIMER_REQUEST, 0, (LPARAM)&request)) { - usbi_err(NULL, "PostThreadMessage failed for timer thread: %s", windows_error_str(0)); - CloseHandle(request.event); - return LIBUSB_ERROR_OTHER; - } - - do { - r = WaitForSingleObject(request.event, TIMER_REQUEST_RETRY_MS); - if (r == WAIT_TIMEOUT) - usbi_dbg("could not obtain a timer value within reasonable timeframe - too much load?"); - else if (r == WAIT_FAILED) - usbi_err(NULL, "WaitForSingleObject failed: %s", windows_error_str(0)); - } while (r == WAIT_TIMEOUT); - CloseHandle(request.event); - - if (r == WAIT_OBJECT_0) - return LIBUSB_SUCCESS; - else - return LIBUSB_ERROR_OTHER; - } - // Fall through and return real-time if monotonic was not detected @ timer init - case USBI_CLOCK_REALTIME: -#if defined(_MSC_VER) && (_MSC_VER >= 1900) - timespec_get(tp, TIME_UTC); -#else - // We follow http://msdn.microsoft.com/en-us/library/ms724928%28VS.85%29.aspx - // with a predef epoch time to have an epoch that starts at 1970.01.01 00:00 - // Note however that our resolution is bounded by the Windows system time - // functions and is at best of the order of 1 ms (or, usually, worse) - GetSystemTimeAsFileTime(&filetime); - rtime.LowPart = filetime.dwLowDateTime; - rtime.HighPart = filetime.dwHighDateTime; - rtime.QuadPart -= EPOCH_TIME; - tp->tv_sec = (long)(rtime.QuadPart / 10000000); - tp->tv_nsec = (long)((rtime.QuadPart % 10000000) * 100); -#endif - return LIBUSB_SUCCESS; - default: - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static void windows_transfer_callback(struct usbi_transfer *itransfer, uint32_t io_result, uint32_t io_size) -{ - int status, istatus; - - usbi_dbg("handling I/O completion with errcode %u, size %u", io_result, io_size); - - switch (io_result) { - case NO_ERROR: - status = windows_copy_transfer_data(itransfer, io_size); - break; - case ERROR_GEN_FAILURE: - usbi_dbg("detected endpoint stall"); - status = LIBUSB_TRANSFER_STALL; - break; - case ERROR_SEM_TIMEOUT: - usbi_dbg("detected semaphore timeout"); - status = LIBUSB_TRANSFER_TIMED_OUT; - break; - case ERROR_OPERATION_ABORTED: - istatus = windows_copy_transfer_data(itransfer, io_size); - if (istatus != LIBUSB_TRANSFER_COMPLETED) - usbi_dbg("Failed to copy partial data in aborted operation: %d", istatus); - - usbi_dbg("detected operation aborted"); - status = LIBUSB_TRANSFER_CANCELLED; - break; - default: - usbi_err(ITRANSFER_CTX(itransfer), "detected I/O error %u: %s", io_result, windows_error_str(io_result)); - status = LIBUSB_TRANSFER_ERROR; - break; - } - windows_clear_transfer_priv(itransfer); // Cancel polling - if (status == LIBUSB_TRANSFER_CANCELLED) - usbi_handle_transfer_cancellation(itransfer); - else - usbi_handle_transfer_completion(itransfer, (enum libusb_transfer_status)status); -} - -void windows_handle_callback(struct usbi_transfer *itransfer, uint32_t io_result, uint32_t io_size) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - windows_transfer_callback(itransfer, io_result, io_size); - break; - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - usbi_warn(ITRANSFER_CTX(itransfer), "bulk stream transfers are not yet supported on this platform"); - break; - default: - usbi_err(ITRANSFER_CTX(itransfer), "unknown endpoint type %d", transfer->type); - } -} - -int windows_handle_events(struct libusb_context *ctx, struct pollfd *fds, POLL_NFDS_TYPE nfds, int num_ready) -{ - POLL_NFDS_TYPE i; - bool found = false; - struct usbi_transfer *transfer; - struct winfd *pollable_fd = NULL; - DWORD io_size, io_result; - int r = LIBUSB_SUCCESS; - - usbi_mutex_lock(&ctx->open_devs_lock); - for (i = 0; i < nfds && num_ready > 0; i++) { - - usbi_dbg("checking fd %d with revents = %04x", fds[i].fd, fds[i].revents); - - if (!fds[i].revents) - continue; - - num_ready--; - - // Because a Windows OVERLAPPED is used for poll emulation, - // a pollable fd is created and stored with each transfer - usbi_mutex_lock(&ctx->flying_transfers_lock); - found = false; - list_for_each_entry(transfer, &ctx->flying_transfers, list, struct usbi_transfer) { - pollable_fd = windows_get_fd(transfer); - if (pollable_fd->fd == fds[i].fd) { - found = true; - break; - } - } - usbi_mutex_unlock(&ctx->flying_transfers_lock); - - if (found) { - windows_get_overlapped_result(transfer, pollable_fd, &io_result, &io_size); - - usbi_remove_pollfd(ctx, pollable_fd->fd); - // let handle_callback free the event using the transfer wfd - // If you don't use the transfer wfd, you run a risk of trying to free a - // newly allocated wfd that took the place of the one from the transfer. - windows_handle_callback(transfer, io_result, io_size); - } else { - usbi_err(ctx, "could not find a matching transfer for fd %d", fds[i]); - r = LIBUSB_ERROR_NOT_FOUND; - break; - } - } - usbi_mutex_unlock(&ctx->open_devs_lock); - - return r; -} - -int windows_common_init(struct libusb_context *ctx) -{ - if (!windows_init_clock(ctx)) - goto error_roll_back; - - if (!htab_create(ctx)) - goto error_roll_back; - - return LIBUSB_SUCCESS; - -error_roll_back: - windows_common_exit(); - return LIBUSB_ERROR_NO_MEM; -} - -void windows_common_exit(void) -{ - htab_destroy(); - windows_destroy_clock(); - windows_exit_dlls(); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.h deleted file mode 100644 index 52ea8708..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_nt_common.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Windows backend common header for libusb 1.0 - * - * This file brings together header code common between - * the desktop Windows backends. - * Copyright © 2012-2013 RealVNC Ltd. - * Copyright © 2009-2012 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#pragma once - -// Missing from MinGW -#if !defined(FACILITY_SETUPAPI) -#define FACILITY_SETUPAPI 15 -#endif - -typedef struct USB_CONFIGURATION_DESCRIPTOR { - UCHAR bLength; - UCHAR bDescriptorType; - USHORT wTotalLength; - UCHAR bNumInterfaces; - UCHAR bConfigurationValue; - UCHAR iConfiguration; - UCHAR bmAttributes; - UCHAR MaxPower; -} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR; - -typedef struct libusb_device_descriptor USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR; - -int windows_common_init(struct libusb_context *ctx); -void windows_common_exit(void); - -unsigned long htab_hash(const char *str); -int windows_clock_gettime(int clk_id, struct timespec *tp); - -void windows_clear_transfer_priv(struct usbi_transfer *itransfer); -int windows_copy_transfer_data(struct usbi_transfer *itransfer, uint32_t io_size); -struct winfd *windows_get_fd(struct usbi_transfer *transfer); -void windows_get_overlapped_result(struct usbi_transfer *transfer, struct winfd *pollable_fd, DWORD *io_result, DWORD *io_size); - -void windows_handle_callback(struct usbi_transfer *itransfer, uint32_t io_result, uint32_t io_size); -int windows_handle_events(struct libusb_context *ctx, struct pollfd *fds, POLL_NFDS_TYPE nfds, int num_ready); - -#if defined(ENABLE_LOGGING) -const char *windows_error_str(DWORD error_code); -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.c deleted file mode 100644 index 7cc57938..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.c +++ /dev/null @@ -1,905 +0,0 @@ -/* - * windows UsbDk backend for libusb 1.0 - * Copyright © 2014 Red Hat, Inc. - - * Authors: - * Dmitry Fleytman - * Pavel Gurvich - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#if defined(USE_USBDK) - -#include -#include -#include - -#include "libusbi.h" -#include "windows_common.h" -#include "windows_nt_common.h" - -#define ULONG64 uint64_t -#define PVOID64 uint64_t - -typedef CONST WCHAR *PCWCHAR; -#define wcsncpy_s wcsncpy - -#include "windows_usbdk.h" - -#if !defined(STATUS_SUCCESS) -typedef LONG NTSTATUS; -#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) -#endif - -#if !defined(STATUS_CANCELLED) -#define STATUS_CANCELLED ((NTSTATUS)0xC0000120L) -#endif - -#if !defined(STATUS_REQUEST_CANCELED) -#define STATUS_REQUEST_CANCELED ((NTSTATUS)0xC0000703L) -#endif - -#if !defined(USBD_SUCCESS) -typedef int32_t USBD_STATUS; -#define USBD_SUCCESS(Status) ((USBD_STATUS) (Status) >= 0) -#define USBD_PENDING(Status) ((ULONG) (Status) >> 30 == 1) -#define USBD_ERROR(Status) ((USBD_STATUS) (Status) < 0) -#define USBD_STATUS_STALL_PID ((USBD_STATUS) 0xc0000004) -#define USBD_STATUS_ENDPOINT_HALTED ((USBD_STATUS) 0xc0000030) -#define USBD_STATUS_BAD_START_FRAME ((USBD_STATUS) 0xc0000a00) -#define USBD_STATUS_TIMEOUT ((USBD_STATUS) 0xc0006000) -#define USBD_STATUS_CANCELED ((USBD_STATUS) 0xc0010000) -#endif - -static int concurrent_usage = -1; - -struct usbdk_device_priv { - USB_DK_DEVICE_INFO info; - PUSB_CONFIGURATION_DESCRIPTOR *config_descriptors; - HANDLE redirector_handle; - uint8_t active_configuration; -}; - -struct usbdk_transfer_priv { - USB_DK_TRANSFER_REQUEST request; - struct winfd pollable_fd; - PULONG64 IsochronousPacketsArray; - PUSB_DK_ISO_TRANSFER_RESULT IsochronousResultsArray; -}; - -static inline struct usbdk_device_priv *_usbdk_device_priv(struct libusb_device *dev) -{ - return (struct usbdk_device_priv *)dev->os_priv; -} - -static inline struct usbdk_transfer_priv *_usbdk_transfer_priv(struct usbi_transfer *itransfer) -{ - return (struct usbdk_transfer_priv *)usbi_transfer_get_os_priv(itransfer); -} - -static struct { - HMODULE module; - - USBDK_GET_DEVICES_LIST GetDevicesList; - USBDK_RELEASE_DEVICES_LIST ReleaseDevicesList; - USBDK_START_REDIRECT StartRedirect; - USBDK_STOP_REDIRECT StopRedirect; - USBDK_GET_CONFIGURATION_DESCRIPTOR GetConfigurationDescriptor; - USBDK_RELEASE_CONFIGURATION_DESCRIPTOR ReleaseConfigurationDescriptor; - USBDK_READ_PIPE ReadPipe; - USBDK_WRITE_PIPE WritePipe; - USBDK_ABORT_PIPE AbortPipe; - USBDK_RESET_PIPE ResetPipe; - USBDK_SET_ALTSETTING SetAltsetting; - USBDK_RESET_DEVICE ResetDevice; - USBDK_GET_REDIRECTOR_SYSTEM_HANDLE GetRedirectorSystemHandle; -} usbdk_helper; - -static FARPROC get_usbdk_proc_addr(struct libusb_context *ctx, LPCSTR api_name) -{ - FARPROC api_ptr = GetProcAddress(usbdk_helper.module, api_name); - - if (api_ptr == NULL) - usbi_err(ctx, "UsbDkHelper API %s not found, error %d", api_name, GetLastError()); - - return api_ptr; -} - -static void unload_usbdk_helper_dll(void) -{ - if (usbdk_helper.module != NULL) { - FreeLibrary(usbdk_helper.module); - usbdk_helper.module = NULL; - } -} - -static int load_usbdk_helper_dll(struct libusb_context *ctx) -{ - usbdk_helper.module = LoadLibraryA("UsbDkHelper"); - if (usbdk_helper.module == NULL) { - usbi_err(ctx, "Failed to load UsbDkHelper.dll, error %d", GetLastError()); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbdk_helper.GetDevicesList = (USBDK_GET_DEVICES_LIST)get_usbdk_proc_addr(ctx, "UsbDk_GetDevicesList"); - if (usbdk_helper.GetDevicesList == NULL) - goto error_unload; - - usbdk_helper.ReleaseDevicesList = (USBDK_RELEASE_DEVICES_LIST)get_usbdk_proc_addr(ctx, "UsbDk_ReleaseDevicesList"); - if (usbdk_helper.ReleaseDevicesList == NULL) - goto error_unload; - - usbdk_helper.StartRedirect = (USBDK_START_REDIRECT)get_usbdk_proc_addr(ctx, "UsbDk_StartRedirect"); - if (usbdk_helper.StartRedirect == NULL) - goto error_unload; - - usbdk_helper.StopRedirect = (USBDK_STOP_REDIRECT)get_usbdk_proc_addr(ctx, "UsbDk_StopRedirect"); - if (usbdk_helper.StopRedirect == NULL) - goto error_unload; - - usbdk_helper.GetConfigurationDescriptor = (USBDK_GET_CONFIGURATION_DESCRIPTOR)get_usbdk_proc_addr(ctx, "UsbDk_GetConfigurationDescriptor"); - if (usbdk_helper.GetConfigurationDescriptor == NULL) - goto error_unload; - - usbdk_helper.ReleaseConfigurationDescriptor = (USBDK_RELEASE_CONFIGURATION_DESCRIPTOR)get_usbdk_proc_addr(ctx, "UsbDk_ReleaseConfigurationDescriptor"); - if (usbdk_helper.ReleaseConfigurationDescriptor == NULL) - goto error_unload; - - usbdk_helper.ReadPipe = (USBDK_READ_PIPE)get_usbdk_proc_addr(ctx, "UsbDk_ReadPipe"); - if (usbdk_helper.ReadPipe == NULL) - goto error_unload; - - usbdk_helper.WritePipe = (USBDK_WRITE_PIPE)get_usbdk_proc_addr(ctx, "UsbDk_WritePipe"); - if (usbdk_helper.WritePipe == NULL) - goto error_unload; - - usbdk_helper.AbortPipe = (USBDK_ABORT_PIPE)get_usbdk_proc_addr(ctx, "UsbDk_AbortPipe"); - if (usbdk_helper.AbortPipe == NULL) - goto error_unload; - - usbdk_helper.ResetPipe = (USBDK_RESET_PIPE)get_usbdk_proc_addr(ctx, "UsbDk_ResetPipe"); - if (usbdk_helper.ResetPipe == NULL) - goto error_unload; - - usbdk_helper.SetAltsetting = (USBDK_SET_ALTSETTING)get_usbdk_proc_addr(ctx, "UsbDk_SetAltsetting"); - if (usbdk_helper.SetAltsetting == NULL) - goto error_unload; - - usbdk_helper.ResetDevice = (USBDK_RESET_DEVICE)get_usbdk_proc_addr(ctx, "UsbDk_ResetDevice"); - if (usbdk_helper.ResetDevice == NULL) - goto error_unload; - - usbdk_helper.GetRedirectorSystemHandle = (USBDK_GET_REDIRECTOR_SYSTEM_HANDLE)get_usbdk_proc_addr(ctx, "UsbDk_GetRedirectorSystemHandle"); - if (usbdk_helper.GetRedirectorSystemHandle == NULL) - goto error_unload; - - return LIBUSB_SUCCESS; - -error_unload: - FreeLibrary(usbdk_helper.module); - usbdk_helper.module = NULL; - return LIBUSB_ERROR_NOT_FOUND; -} - -static int usbdk_init(struct libusb_context *ctx) -{ - int r; - - if (++concurrent_usage == 0) { // First init? - r = load_usbdk_helper_dll(ctx); - if (r) - goto init_exit; - - init_polling(); - - r = windows_common_init(ctx); - if (r) - goto init_exit; - } - // At this stage, either we went through full init successfully, or didn't need to - r = LIBUSB_SUCCESS; - -init_exit: - if (!concurrent_usage && r != LIBUSB_SUCCESS) { // First init failed? - exit_polling(); - windows_common_exit(); - unload_usbdk_helper_dll(); - } - - if (r != LIBUSB_SUCCESS) - --concurrent_usage; // Not expected to call libusb_exit if we failed. - - return r; -} - -static int usbdk_get_session_id_for_device(struct libusb_context *ctx, - PUSB_DK_DEVICE_ID id, unsigned long *session_id) -{ - char dev_identity[ARRAYSIZE(id->DeviceID) + ARRAYSIZE(id->InstanceID)]; - - if (sprintf(dev_identity, "%S%S", id->DeviceID, id->InstanceID) == -1) { - usbi_warn(ctx, "cannot form device identity", id->DeviceID); - return LIBUSB_ERROR_NOT_SUPPORTED; - } - - *session_id = htab_hash(dev_identity); - - return LIBUSB_SUCCESS; -} - -static void usbdk_release_config_descriptors(struct usbdk_device_priv *p, uint8_t count) -{ - uint8_t i; - - for (i = 0; i < count; i++) - usbdk_helper.ReleaseConfigurationDescriptor(p->config_descriptors[i]); - - free(p->config_descriptors); - p->config_descriptors = NULL; -} - -static int usbdk_cache_config_descriptors(struct libusb_context *ctx, - struct usbdk_device_priv *p, PUSB_DK_DEVICE_INFO info) -{ - uint8_t i; - USB_DK_CONFIG_DESCRIPTOR_REQUEST Request; - Request.ID = info->ID; - - p->config_descriptors = calloc(info->DeviceDescriptor.bNumConfigurations, sizeof(PUSB_CONFIGURATION_DESCRIPTOR)); - if (p->config_descriptors == NULL) { - usbi_err(ctx, "failed to allocate configuration descriptors holder"); - return LIBUSB_ERROR_NO_MEM; - } - - for (i = 0; i < info->DeviceDescriptor.bNumConfigurations; i++) { - ULONG Length; - - Request.Index = i; - if (!usbdk_helper.GetConfigurationDescriptor(&Request, &p->config_descriptors[i], &Length)) { - usbi_err(ctx, "failed to retrieve configuration descriptors"); - usbdk_release_config_descriptors(p, i); - return LIBUSB_ERROR_OTHER; - } - } - - return LIBUSB_SUCCESS; -} - -static inline int usbdk_device_priv_init(struct libusb_context *ctx, struct libusb_device *dev, PUSB_DK_DEVICE_INFO info) -{ - struct usbdk_device_priv *p = _usbdk_device_priv(dev); - - p->info = *info; - p->active_configuration = 0; - - return usbdk_cache_config_descriptors(ctx, p, info); -} - -static void usbdk_device_init(libusb_device *dev, PUSB_DK_DEVICE_INFO info) -{ - dev->bus_number = (uint8_t)info->FilterID; - dev->port_number = (uint8_t)info->Port; - dev->parent_dev = NULL; - - //Addresses in libusb are 1-based - dev->device_address = (uint8_t)(info->Port + 1); - - dev->num_configurations = info->DeviceDescriptor.bNumConfigurations; - dev->device_descriptor = info->DeviceDescriptor; - - switch (info->Speed) { - case LowSpeed: - dev->speed = LIBUSB_SPEED_LOW; - break; - case FullSpeed: - dev->speed = LIBUSB_SPEED_FULL; - break; - case HighSpeed: - dev->speed = LIBUSB_SPEED_HIGH; - break; - case SuperSpeed: - dev->speed = LIBUSB_SPEED_SUPER; - break; - case NoSpeed: - default: - dev->speed = LIBUSB_SPEED_UNKNOWN; - break; - } -} - -static int usbdk_get_device_list(struct libusb_context *ctx, struct discovered_devs **_discdevs) -{ - int r = LIBUSB_SUCCESS; - ULONG i; - struct discovered_devs *discdevs = NULL; - ULONG dev_number; - PUSB_DK_DEVICE_INFO devices; - - if(!usbdk_helper.GetDevicesList(&devices, &dev_number)) - return LIBUSB_ERROR_OTHER; - - for (i = 0; i < dev_number; i++) { - unsigned long session_id; - struct libusb_device *dev = NULL; - - if (usbdk_get_session_id_for_device(ctx, &devices[i].ID, &session_id)) - continue; - - dev = usbi_get_device_by_session_id(ctx, session_id); - if (dev == NULL) { - dev = usbi_alloc_device(ctx, session_id); - if (dev == NULL) { - usbi_err(ctx, "failed to allocate a new device structure"); - continue; - } - - usbdk_device_init(dev, &devices[i]); - if (usbdk_device_priv_init(ctx, dev, &devices[i]) != LIBUSB_SUCCESS) { - libusb_unref_device(dev); - continue; - } - } - - discdevs = discovered_devs_append(*_discdevs, dev); - libusb_unref_device(dev); - if (!discdevs) { - usbi_err(ctx, "cannot append new device to list"); - r = LIBUSB_ERROR_NO_MEM; - goto func_exit; - } - - *_discdevs = discdevs; - } - -func_exit: - usbdk_helper.ReleaseDevicesList(devices); - return r; -} - -static void usbdk_exit(void) -{ - if (--concurrent_usage < 0) { - windows_common_exit(); - exit_polling(); - unload_usbdk_helper_dll(); - } -} - -static int usbdk_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer, int *host_endian) -{ - struct usbdk_device_priv *priv = _usbdk_device_priv(dev); - - memcpy(buffer, &priv->info.DeviceDescriptor, DEVICE_DESC_LENGTH); - *host_endian = 0; - - return LIBUSB_SUCCESS; -} - -static int usbdk_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) -{ - struct usbdk_device_priv *priv = _usbdk_device_priv(dev); - PUSB_CONFIGURATION_DESCRIPTOR config_header; - size_t size; - - if (config_index >= dev->num_configurations) - return LIBUSB_ERROR_INVALID_PARAM; - - config_header = (PUSB_CONFIGURATION_DESCRIPTOR)priv->config_descriptors[config_index]; - - size = min(config_header->wTotalLength, len); - memcpy(buffer, config_header, size); - *host_endian = 0; - - return (int)size; -} - -static inline int usbdk_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len, int *host_endian) -{ - return usbdk_get_config_descriptor(dev, _usbdk_device_priv(dev)->active_configuration, - buffer, len, host_endian); -} - -static int usbdk_open(struct libusb_device_handle *dev_handle) -{ - struct usbdk_device_priv *priv = _usbdk_device_priv(dev_handle->dev); - - priv->redirector_handle = usbdk_helper.StartRedirect(&priv->info.ID); - if (priv->redirector_handle == INVALID_HANDLE_VALUE) { - usbi_err(DEVICE_CTX(dev_handle->dev), "Redirector startup failed"); - return LIBUSB_ERROR_OTHER; - } - - return LIBUSB_SUCCESS; -} - -static void usbdk_close(struct libusb_device_handle *dev_handle) -{ - struct usbdk_device_priv *priv = _usbdk_device_priv(dev_handle->dev); - - if (!usbdk_helper.StopRedirect(priv->redirector_handle)) { - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - usbi_err(ctx, "Redirector shutdown failed"); - } -} - -static int usbdk_get_configuration(struct libusb_device_handle *dev_handle, int *config) -{ - *config = _usbdk_device_priv(dev_handle->dev)->active_configuration; - - return LIBUSB_SUCCESS; -} - -static int usbdk_set_configuration(struct libusb_device_handle *dev_handle, int config) -{ - UNUSED(dev_handle); - UNUSED(config); - return LIBUSB_SUCCESS; -} - -static int usbdk_claim_interface(struct libusb_device_handle *dev_handle, int iface) -{ - UNUSED(dev_handle); - UNUSED(iface); - return LIBUSB_SUCCESS; -} - -static int usbdk_set_interface_altsetting(struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct usbdk_device_priv *priv = _usbdk_device_priv(dev_handle->dev); - - if (!usbdk_helper.SetAltsetting(priv->redirector_handle, iface, altsetting)) { - usbi_err(ctx, "SetAltsetting failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -static int usbdk_release_interface(struct libusb_device_handle *dev_handle, int iface) -{ - UNUSED(dev_handle); - UNUSED(iface); - return LIBUSB_SUCCESS; -} - -static int usbdk_clear_halt(struct libusb_device_handle *dev_handle, unsigned char endpoint) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct usbdk_device_priv *priv = _usbdk_device_priv(dev_handle->dev); - - if (!usbdk_helper.ResetPipe(priv->redirector_handle, endpoint)) { - usbi_err(ctx, "ResetPipe failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -static int usbdk_reset_device(struct libusb_device_handle *dev_handle) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct usbdk_device_priv *priv = _usbdk_device_priv(dev_handle->dev); - - if (!usbdk_helper.ResetDevice(priv->redirector_handle)) { - usbi_err(ctx, "ResetDevice failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -static int usbdk_kernel_driver_active(struct libusb_device_handle *dev_handle, int iface) -{ - UNUSED(dev_handle); - UNUSED(iface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int usbdk_attach_kernel_driver(struct libusb_device_handle *dev_handle, int iface) -{ - UNUSED(dev_handle); - UNUSED(iface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int usbdk_detach_kernel_driver(struct libusb_device_handle *dev_handle, int iface) -{ - UNUSED(dev_handle); - UNUSED(iface); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static void usbdk_destroy_device(struct libusb_device *dev) -{ - struct usbdk_device_priv* p = _usbdk_device_priv(dev); - - if (p->config_descriptors != NULL) - usbdk_release_config_descriptors(p, p->info.DeviceDescriptor.bNumConfigurations); -} - -void windows_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - struct usbdk_transfer_priv *transfer_priv = _usbdk_transfer_priv(itransfer); - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - usbi_free_fd(&transfer_priv->pollable_fd); - - if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS) { - safe_free(transfer_priv->IsochronousPacketsArray); - safe_free(transfer_priv->IsochronousResultsArray); - } -} - -static int usbdk_do_control_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct usbdk_device_priv *priv = _usbdk_device_priv(transfer->dev_handle->dev); - struct usbdk_transfer_priv *transfer_priv = _usbdk_transfer_priv(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct winfd wfd; - ULONG Length; - TransferResult transResult; - HANDLE sysHandle; - - sysHandle = usbdk_helper.GetRedirectorSystemHandle(priv->redirector_handle); - - wfd = usbi_create_fd(sysHandle, RW_READ, NULL, NULL); - // Always use the handle returned from usbi_create_fd (wfd.handle) - if (wfd.fd < 0) - return LIBUSB_ERROR_NO_MEM; - - transfer_priv->request.Buffer = (PVOID64)(uintptr_t)transfer->buffer; - transfer_priv->request.BufferLength = transfer->length; - transfer_priv->request.TransferType = ControlTransferType; - transfer_priv->pollable_fd = INVALID_WINFD; - Length = (ULONG)transfer->length; - - if (IS_XFERIN(transfer)) - transResult = usbdk_helper.ReadPipe(priv->redirector_handle, &transfer_priv->request, wfd.overlapped); - else - transResult = usbdk_helper.WritePipe(priv->redirector_handle, &transfer_priv->request, wfd.overlapped); - - switch (transResult) { - case TransferSuccess: - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - wfd.overlapped->InternalHigh = (DWORD)Length; - break; - case TransferSuccessAsync: - break; - case TransferFailure: - usbi_err(ctx, "ControlTransfer failed: %s", windows_error_str(0)); - usbi_free_fd(&wfd); - return LIBUSB_ERROR_IO; - } - - // Use priv_transfer to store data needed for async polling - transfer_priv->pollable_fd = wfd; - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, POLLIN); - - return LIBUSB_SUCCESS; -} - -static int usbdk_do_bulk_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct usbdk_device_priv *priv = _usbdk_device_priv(transfer->dev_handle->dev); - struct usbdk_transfer_priv *transfer_priv = _usbdk_transfer_priv(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct winfd wfd; - TransferResult transferRes; - HANDLE sysHandle; - - transfer_priv->request.Buffer = (PVOID64)(uintptr_t)transfer->buffer; - transfer_priv->request.BufferLength = transfer->length; - transfer_priv->request.EndpointAddress = transfer->endpoint; - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_BULK: - transfer_priv->request.TransferType = BulkTransferType; - break; - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - transfer_priv->request.TransferType = IntertuptTransferType; - break; - default: - usbi_err(ctx, "Wrong transfer type (%d) in usbdk_do_bulk_transfer. %s", transfer->type, windows_error_str(0)); - return LIBUSB_ERROR_INVALID_PARAM; - } - - transfer_priv->pollable_fd = INVALID_WINFD; - - sysHandle = usbdk_helper.GetRedirectorSystemHandle(priv->redirector_handle); - - wfd = usbi_create_fd(sysHandle, IS_XFERIN(transfer) ? RW_READ : RW_WRITE, NULL, NULL); - // Always use the handle returned from usbi_create_fd (wfd.handle) - if (wfd.fd < 0) - return LIBUSB_ERROR_NO_MEM; - - if (IS_XFERIN(transfer)) - transferRes = usbdk_helper.ReadPipe(priv->redirector_handle, &transfer_priv->request, wfd.overlapped); - else - transferRes = usbdk_helper.WritePipe(priv->redirector_handle, &transfer_priv->request, wfd.overlapped); - - switch (transferRes) { - case TransferSuccess: - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - break; - case TransferSuccessAsync: - break; - case TransferFailure: - usbi_err(ctx, "ReadPipe/WritePipe failed: %s", windows_error_str(0)); - usbi_free_fd(&wfd); - return LIBUSB_ERROR_IO; - } - - transfer_priv->pollable_fd = wfd; - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, IS_XFERIN(transfer) ? POLLIN : POLLOUT); - - return LIBUSB_SUCCESS; -} - -static int usbdk_do_iso_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct usbdk_device_priv *priv = _usbdk_device_priv(transfer->dev_handle->dev); - struct usbdk_transfer_priv *transfer_priv = _usbdk_transfer_priv(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct winfd wfd; - TransferResult transferRes; - int i; - HANDLE sysHandle; - - transfer_priv->request.Buffer = (PVOID64)(uintptr_t)transfer->buffer; - transfer_priv->request.BufferLength = transfer->length; - transfer_priv->request.EndpointAddress = transfer->endpoint; - transfer_priv->request.TransferType = IsochronousTransferType; - transfer_priv->request.IsochronousPacketsArraySize = transfer->num_iso_packets; - transfer_priv->IsochronousPacketsArray = malloc(transfer->num_iso_packets * sizeof(ULONG64)); - transfer_priv->request.IsochronousPacketsArray = (PVOID64)(uintptr_t)transfer_priv->IsochronousPacketsArray; - if (!transfer_priv->IsochronousPacketsArray) { - usbi_err(ctx, "Allocation of IsochronousPacketsArray is failed, %s", windows_error_str(0)); - return LIBUSB_ERROR_IO; - } - - transfer_priv->IsochronousResultsArray = malloc(transfer->num_iso_packets * sizeof(USB_DK_ISO_TRANSFER_RESULT)); - transfer_priv->request.Result.IsochronousResultsArray = (PVOID64)(uintptr_t)transfer_priv->IsochronousResultsArray; - if (!transfer_priv->IsochronousResultsArray) { - usbi_err(ctx, "Allocation of isochronousResultsArray is failed, %s", windows_error_str(0)); - free(transfer_priv->IsochronousPacketsArray); - return LIBUSB_ERROR_IO; - } - - for (i = 0; i < transfer->num_iso_packets; i++) - transfer_priv->IsochronousPacketsArray[i] = transfer->iso_packet_desc[i].length; - - transfer_priv->pollable_fd = INVALID_WINFD; - - sysHandle = usbdk_helper.GetRedirectorSystemHandle(priv->redirector_handle); - - wfd = usbi_create_fd(sysHandle, IS_XFERIN(transfer) ? RW_READ : RW_WRITE, NULL, NULL); - // Always use the handle returned from usbi_create_fd (wfd.handle) - if (wfd.fd < 0) { - free(transfer_priv->IsochronousPacketsArray); - free(transfer_priv->IsochronousResultsArray); - return LIBUSB_ERROR_NO_MEM; - } - - if (IS_XFERIN(transfer)) - transferRes = usbdk_helper.ReadPipe(priv->redirector_handle, &transfer_priv->request, wfd.overlapped); - else - transferRes = usbdk_helper.WritePipe(priv->redirector_handle, &transfer_priv->request, wfd.overlapped); - - switch (transferRes) { - case TransferSuccess: - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - break; - case TransferSuccessAsync: - break; - case TransferFailure: - usbi_err(ctx, "ReadPipe/WritePipe failed: %s", windows_error_str(0)); - usbi_free_fd(&wfd); - free(transfer_priv->IsochronousPacketsArray); - free(transfer_priv->IsochronousResultsArray); - return LIBUSB_ERROR_IO; - } - - transfer_priv->pollable_fd = wfd; - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, IS_XFERIN(transfer) ? POLLIN : POLLOUT); - - return LIBUSB_SUCCESS; -} - -static int usbdk_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - return usbdk_do_control_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - if (IS_XFEROUT(transfer) && (transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET)) - return LIBUSB_ERROR_NOT_SUPPORTED; //TODO: Check whether we can support this in UsbDk - else - return usbdk_do_bulk_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return usbdk_do_iso_transfer(itransfer); - default: - usbi_err(TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static int usbdk_abort_transfers(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct usbdk_device_priv *priv = _usbdk_device_priv(transfer->dev_handle->dev); - - if (!usbdk_helper.AbortPipe(priv->redirector_handle, transfer->endpoint)) { - usbi_err(ctx, "AbortPipe failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -static int usbdk_cancel_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - // Control transfers cancelled by IoCancelXXX() API - // No special treatment needed - return LIBUSB_SUCCESS; - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return usbdk_abort_transfers(itransfer); - default: - usbi_err(ITRANSFER_CTX(itransfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -int windows_copy_transfer_data(struct usbi_transfer *itransfer, uint32_t io_size) -{ - itransfer->transferred += io_size; - return LIBUSB_TRANSFER_COMPLETED; -} - -struct winfd *windows_get_fd(struct usbi_transfer *transfer) -{ - struct usbdk_transfer_priv *transfer_priv = _usbdk_transfer_priv(transfer); - return &transfer_priv->pollable_fd; -} - -static DWORD usbdk_translate_usbd_status(USBD_STATUS UsbdStatus) -{ - if (USBD_SUCCESS(UsbdStatus)) - return NO_ERROR; - - switch (UsbdStatus) { - case USBD_STATUS_STALL_PID: - case USBD_STATUS_ENDPOINT_HALTED: - case USBD_STATUS_BAD_START_FRAME: - return ERROR_GEN_FAILURE; - case USBD_STATUS_TIMEOUT: - return ERROR_SEM_TIMEOUT; - case USBD_STATUS_CANCELED: - return ERROR_OPERATION_ABORTED; - default: - return ERROR_FUNCTION_FAILED; - } -} - -void windows_get_overlapped_result(struct usbi_transfer *transfer, struct winfd *pollable_fd, DWORD *io_result, DWORD *io_size) -{ - if (HasOverlappedIoCompletedSync(pollable_fd->overlapped) // Handle async requests that completed synchronously first - || GetOverlappedResult(pollable_fd->handle, pollable_fd->overlapped, io_size, false)) { // Regular async overlapped - struct libusb_transfer *ltransfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer); - struct usbdk_transfer_priv *transfer_priv = _usbdk_transfer_priv(transfer); - - if (ltransfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS) { - int i; - for (i = 0; i < transfer_priv->request.IsochronousPacketsArraySize; i++) { - struct libusb_iso_packet_descriptor *lib_desc = <ransfer->iso_packet_desc[i]; - - switch (transfer_priv->IsochronousResultsArray[i].TransferResult) { - case STATUS_SUCCESS: - case STATUS_CANCELLED: - case STATUS_REQUEST_CANCELED: - lib_desc->status = LIBUSB_TRANSFER_COMPLETED; // == ERROR_SUCCESS - break; - default: - lib_desc->status = LIBUSB_TRANSFER_ERROR; // ERROR_UNKNOWN_EXCEPTION; - break; - } - - lib_desc->actual_length = (unsigned int)transfer_priv->IsochronousResultsArray[i].ActualLength; - } - } - - *io_size = (DWORD) transfer_priv->request.Result.GenResult.BytesTransferred; - *io_result = usbdk_translate_usbd_status((USBD_STATUS) transfer_priv->request.Result.GenResult.UsbdStatus); - } - else { - *io_result = GetLastError(); - } -} - -static int usbdk_clock_gettime(int clk_id, struct timespec *tp) -{ - return windows_clock_gettime(clk_id, tp); -} - -const struct usbi_os_backend usbdk_backend = { - "Windows", - USBI_CAP_HAS_HID_ACCESS, - usbdk_init, - usbdk_exit, - - usbdk_get_device_list, - NULL, - usbdk_open, - usbdk_close, - - usbdk_get_device_descriptor, - usbdk_get_active_config_descriptor, - usbdk_get_config_descriptor, - NULL, - - usbdk_get_configuration, - usbdk_set_configuration, - usbdk_claim_interface, - usbdk_release_interface, - - usbdk_set_interface_altsetting, - usbdk_clear_halt, - usbdk_reset_device, - - NULL, - NULL, - - NULL, // dev_mem_alloc() - NULL, // dev_mem_free() - - usbdk_kernel_driver_active, - usbdk_detach_kernel_driver, - usbdk_attach_kernel_driver, - - usbdk_destroy_device, - - usbdk_submit_transfer, - usbdk_cancel_transfer, - windows_clear_transfer_priv, - - windows_handle_events, - NULL, - - usbdk_clock_gettime, -#if defined(USBI_TIMERFD_AVAILABLE) - NULL, -#endif - sizeof(struct usbdk_device_priv), - 0, - sizeof(struct usbdk_transfer_priv), -}; - -#endif /* USE_USBDK */ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.h deleted file mode 100644 index 04a9787f..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_usbdk.h +++ /dev/null @@ -1,146 +0,0 @@ -/* -* windows UsbDk backend for libusb 1.0 -* Copyright © 2014 Red Hat, Inc. - -* Authors: -* Dmitry Fleytman -* Pavel Gurvich -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; either -* version 2.1 of the License, or (at your option) any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -typedef struct tag_USB_DK_DEVICE_ID { - WCHAR DeviceID[MAX_DEVICE_ID_LEN]; - WCHAR InstanceID[MAX_DEVICE_ID_LEN]; -} USB_DK_DEVICE_ID, *PUSB_DK_DEVICE_ID; - -static inline void UsbDkFillIDStruct(USB_DK_DEVICE_ID *ID, PCWCHAR DeviceID, PCWCHAR InstanceID) -{ - wcsncpy_s(ID->DeviceID, DeviceID, MAX_DEVICE_ID_LEN); - wcsncpy_s(ID->InstanceID, InstanceID, MAX_DEVICE_ID_LEN); -} - -typedef struct tag_USB_DK_DEVICE_INFO { - USB_DK_DEVICE_ID ID; - ULONG64 FilterID; - ULONG64 Port; - ULONG64 Speed; - USB_DEVICE_DESCRIPTOR DeviceDescriptor; -} USB_DK_DEVICE_INFO, *PUSB_DK_DEVICE_INFO; - -typedef struct tag_USB_DK_CONFIG_DESCRIPTOR_REQUEST { - USB_DK_DEVICE_ID ID; - ULONG64 Index; -} USB_DK_CONFIG_DESCRIPTOR_REQUEST, *PUSB_DK_CONFIG_DESCRIPTOR_REQUEST; - -typedef struct tag_USB_DK_ISO_TRANSFER_RESULT { - ULONG64 ActualLength; - ULONG64 TransferResult; -} USB_DK_ISO_TRANSFER_RESULT, *PUSB_DK_ISO_TRANSFER_RESULT; - -typedef struct tag_USB_DK_GEN_TRANSFER_RESULT { - ULONG64 BytesTransferred; - ULONG64 UsbdStatus; // USBD_STATUS code -} USB_DK_GEN_TRANSFER_RESULT, *PUSB_DK_GEN_TRANSFER_RESULT; - -typedef struct tag_USB_DK_TRANSFER_RESULT { - USB_DK_GEN_TRANSFER_RESULT GenResult; - PVOID64 IsochronousResultsArray; // array of USB_DK_ISO_TRANSFER_RESULT -} USB_DK_TRANSFER_RESULT, *PUSB_DK_TRANSFER_RESULT; - -typedef struct tag_USB_DK_TRANSFER_REQUEST { - ULONG64 EndpointAddress; - PVOID64 Buffer; - ULONG64 BufferLength; - ULONG64 TransferType; - ULONG64 IsochronousPacketsArraySize; - PVOID64 IsochronousPacketsArray; - - USB_DK_TRANSFER_RESULT Result; -} USB_DK_TRANSFER_REQUEST, *PUSB_DK_TRANSFER_REQUEST; - -typedef enum { - TransferFailure = 0, - TransferSuccess, - TransferSuccessAsync -} TransferResult; - -typedef enum { - NoSpeed = 0, - LowSpeed, - FullSpeed, - HighSpeed, - SuperSpeed -} USB_DK_DEVICE_SPEED; - -typedef enum { - ControlTransferType, - BulkTransferType, - IntertuptTransferType, - IsochronousTransferType -} USB_DK_TRANSFER_TYPE; - -typedef BOOL (__cdecl *USBDK_GET_DEVICES_LIST)( - PUSB_DK_DEVICE_INFO *DeviceInfo, - PULONG DeviceNumber -); -typedef void (__cdecl *USBDK_RELEASE_DEVICES_LIST)( - PUSB_DK_DEVICE_INFO DeviceInfo -); -typedef HANDLE (__cdecl *USBDK_START_REDIRECT)( - PUSB_DK_DEVICE_ID DeviceId -); -typedef BOOL (__cdecl *USBDK_STOP_REDIRECT)( - HANDLE DeviceHandle -); -typedef BOOL (__cdecl *USBDK_GET_CONFIGURATION_DESCRIPTOR)( - PUSB_DK_CONFIG_DESCRIPTOR_REQUEST Request, - PUSB_CONFIGURATION_DESCRIPTOR *Descriptor, - PULONG Length -); -typedef void (__cdecl *USBDK_RELEASE_CONFIGURATION_DESCRIPTOR)( - PUSB_CONFIGURATION_DESCRIPTOR Descriptor -); -typedef TransferResult (__cdecl *USBDK_WRITE_PIPE)( - HANDLE DeviceHandle, - PUSB_DK_TRANSFER_REQUEST Request, - LPOVERLAPPED lpOverlapped -); -typedef TransferResult (__cdecl *USBDK_READ_PIPE)( - HANDLE DeviceHandle, - PUSB_DK_TRANSFER_REQUEST Request, - LPOVERLAPPED lpOverlapped -); -typedef BOOL (__cdecl *USBDK_ABORT_PIPE)( - HANDLE DeviceHandle, - ULONG64 PipeAddress -); -typedef BOOL (__cdecl *USBDK_RESET_PIPE)( - HANDLE DeviceHandle, - ULONG64 PipeAddress -); -typedef BOOL (__cdecl *USBDK_SET_ALTSETTING)( - HANDLE DeviceHandle, - ULONG64 InterfaceIdx, - ULONG64 AltSettingIdx -); -typedef BOOL (__cdecl *USBDK_RESET_DEVICE)( - HANDLE DeviceHandle -); -typedef HANDLE (__cdecl *USBDK_GET_REDIRECTOR_SYSTEM_HANDLE)( - HANDLE DeviceHandle -); diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.c b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.c deleted file mode 100644 index 0dce0ea6..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.c +++ /dev/null @@ -1,4290 +0,0 @@ -/* - * windows backend for libusb 1.0 - * Copyright © 2009-2012 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * HID Reports IOCTLs inspired from HIDAPI by Alan Ott, Signal 11 Software - * Hash table functions adapted from glibc, by Ulrich Drepper et al. - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#if !defined(USE_USBDK) - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libusbi.h" -#include "poll_windows.h" -#include "windows_winusb.h" - -#define HANDLE_VALID(h) (((h) != 0) && ((h) != INVALID_HANDLE_VALUE)) - -// The 2 macros below are used in conjunction with safe loops. -#define LOOP_CHECK(fcall) \ - { \ - r = fcall; \ - if (r != LIBUSB_SUCCESS) \ - continue; \ - } -#define LOOP_BREAK(err) \ - { \ - r = err; \ - continue; \ - } - -// WinUSB-like API prototypes -static int winusbx_init(int sub_api, struct libusb_context *ctx); -static int winusbx_exit(int sub_api); -static int winusbx_open(int sub_api, struct libusb_device_handle *dev_handle); -static void winusbx_close(int sub_api, struct libusb_device_handle *dev_handle); -static int winusbx_configure_endpoints(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int winusbx_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int winusbx_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int winusbx_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer); -static int winusbx_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting); -static int winusbx_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer); -static int winusbx_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint); -static int winusbx_abort_transfers(int sub_api, struct usbi_transfer *itransfer); -static int winusbx_abort_control(int sub_api, struct usbi_transfer *itransfer); -static int winusbx_reset_device(int sub_api, struct libusb_device_handle *dev_handle); -static int winusbx_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size); -// HID API prototypes -static int hid_init(int sub_api, struct libusb_context *ctx); -static int hid_exit(int sub_api); -static int hid_open(int sub_api, struct libusb_device_handle *dev_handle); -static void hid_close(int sub_api, struct libusb_device_handle *dev_handle); -static int hid_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int hid_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int hid_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting); -static int hid_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer); -static int hid_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer); -static int hid_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint); -static int hid_abort_transfers(int sub_api, struct usbi_transfer *itransfer); -static int hid_reset_device(int sub_api, struct libusb_device_handle *dev_handle); -static int hid_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size); -// Composite API prototypes -static int composite_init(int sub_api, struct libusb_context *ctx); -static int composite_exit(int sub_api); -static int composite_open(int sub_api, struct libusb_device_handle *dev_handle); -static void composite_close(int sub_api, struct libusb_device_handle *dev_handle); -static int composite_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int composite_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting); -static int composite_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); -static int composite_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer); -static int composite_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer); -static int composite_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer); -static int composite_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint); -static int composite_abort_transfers(int sub_api, struct usbi_transfer *itransfer); -static int composite_abort_control(int sub_api, struct usbi_transfer *itransfer); -static int composite_reset_device(int sub_api, struct libusb_device_handle *dev_handle); -static int composite_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size); - - -// Global variables -int windows_version = WINDOWS_UNDEFINED; -static char windows_version_str[128] = "Undefined"; -// Concurrency -static int concurrent_usage = -1; -static usbi_mutex_t autoclaim_lock; -// API globals -#define CHECK_WINUSBX_AVAILABLE(sub_api) \ - do { \ - if (sub_api == SUB_API_NOTSET) \ - sub_api = priv->sub_api; \ - if (!WinUSBX[sub_api].initialized) \ - return LIBUSB_ERROR_ACCESS; \ - } while(0) - -static HMODULE WinUSBX_handle = NULL; -static struct winusb_interface WinUSBX[SUB_API_MAX]; -static const char *sub_api_name[SUB_API_MAX] = WINUSBX_DRV_NAMES; - -static bool api_hid_available = false; -#define CHECK_HID_AVAILABLE \ - do { \ - if (!api_hid_available) \ - return LIBUSB_ERROR_ACCESS; \ - } while (0) - -static inline BOOLEAN guid_eq(const GUID *guid1, const GUID *guid2) -{ - if ((guid1 != NULL) && (guid2 != NULL)) - return (memcmp(guid1, guid2, sizeof(GUID)) == 0); - - return false; -} - -#if defined(ENABLE_LOGGING) -static char *guid_to_string(const GUID *guid) -{ - static char guid_string[MAX_GUID_STRING_LENGTH]; - - if (guid == NULL) - return NULL; - - sprintf(guid_string, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", - (unsigned int)guid->Data1, guid->Data2, guid->Data3, - guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3], - guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]); - - return guid_string; -} -#endif - -/* - * Sanitize Microsoft's paths: convert to uppercase, add prefix and fix backslashes. - * Return an allocated sanitized string or NULL on error. - */ -static char *sanitize_path(const char *path) -{ - const char root_prefix[] = { '\\', '\\', '.', '\\' }; - size_t j, size; - char *ret_path; - size_t add_root = 0; - - if (path == NULL) - return NULL; - - size = strlen(path) + 1; - - // Microsoft indiscriminately uses '\\?\', '\\.\', '##?#" or "##.#" for root prefixes. - if (!((size > 3) && (((path[0] == '\\') && (path[1] == '\\') && (path[3] == '\\')) - || ((path[0] == '#') && (path[1] == '#') && (path[3] == '#'))))) { - add_root = sizeof(root_prefix); - size += add_root; - } - - ret_path = malloc(size); - if (ret_path == NULL) - return NULL; - - strcpy(&ret_path[add_root], path); - - // Ensure consistency with root prefix - memcpy(ret_path, root_prefix, sizeof(root_prefix)); - - // Same goes for '\' and '#' after the root prefix. Ensure '#' is used - for (j = sizeof(root_prefix); j < size; j++) { - ret_path[j] = (char)toupper((int)ret_path[j]); // Fix case too - if (ret_path[j] == '\\') - ret_path[j] = '#'; - } - - return ret_path; -} - -/* - * Cfgmgr32, OLE32 and SetupAPI DLL functions - */ -static int init_dlls(void) -{ - DLL_GET_HANDLE(Cfgmgr32); - DLL_LOAD_FUNC(Cfgmgr32, CM_Get_Parent, TRUE); - DLL_LOAD_FUNC(Cfgmgr32, CM_Get_Child, TRUE); - DLL_LOAD_FUNC(Cfgmgr32, CM_Get_Sibling, TRUE); - DLL_LOAD_FUNC(Cfgmgr32, CM_Get_Device_IDA, TRUE); - - // Prefixed to avoid conflict with header files - DLL_GET_HANDLE(AdvAPI32); - DLL_LOAD_FUNC_PREFIXED(AdvAPI32, p, RegQueryValueExW, TRUE); - DLL_LOAD_FUNC_PREFIXED(AdvAPI32, p, RegCloseKey, TRUE); - - DLL_GET_HANDLE(Kernel32); - DLL_LOAD_FUNC_PREFIXED(Kernel32, p, IsWow64Process, FALSE); - - DLL_GET_HANDLE(OLE32); - DLL_LOAD_FUNC_PREFIXED(OLE32, p, CLSIDFromString, TRUE); - - DLL_GET_HANDLE(SetupAPI); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiGetClassDevsA, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiEnumDeviceInfo, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiEnumDeviceInterfaces, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiGetDeviceInterfaceDetailA, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiDestroyDeviceInfoList, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiOpenDevRegKey, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiGetDeviceRegistryPropertyA, TRUE); - DLL_LOAD_FUNC_PREFIXED(SetupAPI, p, SetupDiOpenDeviceInterfaceRegKey, TRUE); - - return LIBUSB_SUCCESS; -} - -static void exit_dlls(void) -{ - DLL_FREE_HANDLE(Cfgmgr32); - DLL_FREE_HANDLE(AdvAPI32); - DLL_FREE_HANDLE(Kernel32); - DLL_FREE_HANDLE(OLE32); - DLL_FREE_HANDLE(SetupAPI); -} - -/* - * enumerate interfaces for the whole USB class - * - * Parameters: - * dev_info: a pointer to a dev_info list - * dev_info_data: a pointer to an SP_DEVINFO_DATA to be filled (or NULL if not needed) - * usb_class: the generic USB class for which to retrieve interface details - * index: zero based index of the interface in the device info list - * - * Note: it is the responsibility of the caller to free the DEVICE_INTERFACE_DETAIL_DATA - * structure returned and call this function repeatedly using the same guid (with an - * incremented index starting at zero) until all interfaces have been returned. - */ -static bool get_devinfo_data(struct libusb_context *ctx, - HDEVINFO *dev_info, SP_DEVINFO_DATA *dev_info_data, const char *usb_class, unsigned _index) -{ - if (_index <= 0) { - *dev_info = pSetupDiGetClassDevsA(NULL, usb_class, NULL, DIGCF_PRESENT|DIGCF_ALLCLASSES); - if (*dev_info == INVALID_HANDLE_VALUE) - return false; - } - - dev_info_data->cbSize = sizeof(SP_DEVINFO_DATA); - if (!pSetupDiEnumDeviceInfo(*dev_info, _index, dev_info_data)) { - if (GetLastError() != ERROR_NO_MORE_ITEMS) - usbi_err(ctx, "Could not obtain device info data for index %u: %s", - _index, windows_error_str(0)); - - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return false; - } - return true; -} - -/* - * enumerate interfaces for a specific GUID - * - * Parameters: - * dev_info: a pointer to a dev_info list - * dev_info_data: a pointer to an SP_DEVINFO_DATA to be filled (or NULL if not needed) - * guid: the GUID for which to retrieve interface details - * index: zero based index of the interface in the device info list - * - * Note: it is the responsibility of the caller to free the DEVICE_INTERFACE_DETAIL_DATA - * structure returned and call this function repeatedly using the same guid (with an - * incremented index starting at zero) until all interfaces have been returned. - */ -static SP_DEVICE_INTERFACE_DETAIL_DATA_A *get_interface_details(struct libusb_context *ctx, - HDEVINFO *dev_info, SP_DEVINFO_DATA *dev_info_data, const GUID *guid, unsigned _index) -{ - SP_DEVICE_INTERFACE_DATA dev_interface_data; - SP_DEVICE_INTERFACE_DETAIL_DATA_A *dev_interface_details; - DWORD size; - - if (_index <= 0) - *dev_info = pSetupDiGetClassDevsA(guid, NULL, NULL, DIGCF_PRESENT|DIGCF_DEVICEINTERFACE); - - if (dev_info_data != NULL) { - dev_info_data->cbSize = sizeof(SP_DEVINFO_DATA); - if (!pSetupDiEnumDeviceInfo(*dev_info, _index, dev_info_data)) { - if (GetLastError() != ERROR_NO_MORE_ITEMS) - usbi_err(ctx, "Could not obtain device info data for index %u: %s", - _index, windows_error_str(0)); - - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return NULL; - } - } - - dev_interface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - if (!pSetupDiEnumDeviceInterfaces(*dev_info, NULL, guid, _index, &dev_interface_data)) { - if (GetLastError() != ERROR_NO_MORE_ITEMS) - usbi_err(ctx, "Could not obtain interface data for index %u: %s", - _index, windows_error_str(0)); - - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return NULL; - } - - // Read interface data (dummy + actual) to access the device path - if (!pSetupDiGetDeviceInterfaceDetailA(*dev_info, &dev_interface_data, NULL, 0, &size, NULL)) { - // The dummy call should fail with ERROR_INSUFFICIENT_BUFFER - if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { - usbi_err(ctx, "could not access interface data (dummy) for index %u: %s", - _index, windows_error_str(0)); - goto err_exit; - } - } else { - usbi_err(ctx, "program assertion failed - http://msdn.microsoft.com/en-us/library/ms792901.aspx is wrong."); - goto err_exit; - } - - dev_interface_details = calloc(1, size); - if (dev_interface_details == NULL) { - usbi_err(ctx, "could not allocate interface data for index %u.", _index); - goto err_exit; - } - - dev_interface_details->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A); - if (!pSetupDiGetDeviceInterfaceDetailA(*dev_info, &dev_interface_data, - dev_interface_details, size, &size, NULL)) { - usbi_err(ctx, "could not access interface data (actual) for index %u: %s", - _index, windows_error_str(0)); - } - - return dev_interface_details; - -err_exit: - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return NULL; -} - -/* For libusb0 filter */ -static SP_DEVICE_INTERFACE_DETAIL_DATA_A *get_interface_details_filter(struct libusb_context *ctx, - HDEVINFO *dev_info, SP_DEVINFO_DATA *dev_info_data, const GUID *guid, unsigned _index, char *filter_path) -{ - SP_DEVICE_INTERFACE_DATA dev_interface_data; - SP_DEVICE_INTERFACE_DETAIL_DATA_A *dev_interface_details; - DWORD size; - - if (_index <= 0) - *dev_info = pSetupDiGetClassDevsA(guid, NULL, NULL, DIGCF_PRESENT|DIGCF_DEVICEINTERFACE); - - if (dev_info_data != NULL) { - dev_info_data->cbSize = sizeof(SP_DEVINFO_DATA); - if (!pSetupDiEnumDeviceInfo(*dev_info, _index, dev_info_data)) { - if (GetLastError() != ERROR_NO_MORE_ITEMS) - usbi_err(ctx, "Could not obtain device info data for index %u: %s", - _index, windows_error_str(0)); - - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return NULL; - } - } - - dev_interface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - if (!pSetupDiEnumDeviceInterfaces(*dev_info, NULL, guid, _index, &dev_interface_data)) { - if (GetLastError() != ERROR_NO_MORE_ITEMS) - usbi_err(ctx, "Could not obtain interface data for index %u: %s", - _index, windows_error_str(0)); - - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return NULL; - } - - // Read interface data (dummy + actual) to access the device path - if (!pSetupDiGetDeviceInterfaceDetailA(*dev_info, &dev_interface_data, NULL, 0, &size, NULL)) { - // The dummy call should fail with ERROR_INSUFFICIENT_BUFFER - if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { - usbi_err(ctx, "could not access interface data (dummy) for index %u: %s", - _index, windows_error_str(0)); - goto err_exit; - } - } else { - usbi_err(ctx, "program assertion failed - http://msdn.microsoft.com/en-us/library/ms792901.aspx is wrong."); - goto err_exit; - } - - dev_interface_details = calloc(1, size); - if (dev_interface_details == NULL) { - usbi_err(ctx, "could not allocate interface data for index %u.", _index); - goto err_exit; - } - - dev_interface_details->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A); - if (!pSetupDiGetDeviceInterfaceDetailA(*dev_info, &dev_interface_data, dev_interface_details, size, &size, NULL)) - usbi_err(ctx, "could not access interface data (actual) for index %u: %s", - _index, windows_error_str(0)); - - // [trobinso] lookup the libusb0 symbolic index. - if (dev_interface_details) { - HKEY hkey_device_interface = pSetupDiOpenDeviceInterfaceRegKey(*dev_info, &dev_interface_data, 0, KEY_READ); - if (hkey_device_interface != INVALID_HANDLE_VALUE) { - DWORD libusb0_symboliclink_index = 0; - DWORD value_length = sizeof(DWORD); - DWORD value_type = 0; - LONG status; - - status = pRegQueryValueExW(hkey_device_interface, L"LUsb0", NULL, &value_type, - (LPBYTE)&libusb0_symboliclink_index, &value_length); - if (status == ERROR_SUCCESS) { - if (libusb0_symboliclink_index < 256) { - // libusb0.sys is connected to this device instance. - // If the the device interface guid is {F9F3FF14-AE21-48A0-8A25-8011A7A931D9} then it's a filter. - sprintf(filter_path, "\\\\.\\libusb0-%04u", (unsigned int)libusb0_symboliclink_index); - usbi_dbg("assigned libusb0 symbolic link %s", filter_path); - } else { - // libusb0.sys was connected to this device instance at one time; but not anymore. - } - } - pRegCloseKey(hkey_device_interface); - } - } - - return dev_interface_details; - -err_exit: - pSetupDiDestroyDeviceInfoList(*dev_info); - *dev_info = INVALID_HANDLE_VALUE; - return NULL; -} - -/* - * Returns the session ID of a device's nth level ancestor - * If there's no device at the nth level, return 0 - */ -static unsigned long get_ancestor_session_id(DWORD devinst, unsigned level) -{ - DWORD parent_devinst; - unsigned long session_id; - char *sanitized_path; - char path[MAX_PATH_LENGTH]; - unsigned i; - - if (level < 1) - return 0; - - for (i = 0; i < level; i++) { - if (CM_Get_Parent(&parent_devinst, devinst, 0) != CR_SUCCESS) - return 0; - devinst = parent_devinst; - } - - if (CM_Get_Device_IDA(devinst, path, MAX_PATH_LENGTH, 0) != CR_SUCCESS) - return 0; - - // TODO: (post hotplug): try without sanitizing - sanitized_path = sanitize_path(path); - if (sanitized_path == NULL) - return 0; - - session_id = htab_hash(sanitized_path); - free(sanitized_path); - return session_id; -} - -/* - * Determine which interface the given endpoint address belongs to - */ -static int get_interface_by_endpoint(struct libusb_config_descriptor *conf_desc, uint8_t ep) -{ - const struct libusb_interface *intf; - const struct libusb_interface_descriptor *intf_desc; - int i, j, k; - - for (i = 0; i < conf_desc->bNumInterfaces; i++) { - intf = &conf_desc->interface[i]; - for (j = 0; j < intf->num_altsetting; j++) { - intf_desc = &intf->altsetting[j]; - for (k = 0; k < intf_desc->bNumEndpoints; k++) { - if (intf_desc->endpoint[k].bEndpointAddress == ep) { - usbi_dbg("found endpoint %02X on interface %d", intf_desc->bInterfaceNumber, i); - return intf_desc->bInterfaceNumber; - } - } - } - } - - usbi_dbg("endpoint %02X not found on any interface", ep); - return LIBUSB_ERROR_NOT_FOUND; -} - -/* - * Populate the endpoints addresses of the device_priv interface helper structs - */ -static int windows_assign_endpoints(struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - int i, r; - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - struct libusb_config_descriptor *conf_desc; - const struct libusb_interface_descriptor *if_desc; - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - - r = libusb_get_active_config_descriptor(dev_handle->dev, &conf_desc); - if (r != LIBUSB_SUCCESS) { - usbi_warn(ctx, "could not read config descriptor: error %d", r); - return r; - } - - if_desc = &conf_desc->interface[iface].altsetting[altsetting]; - safe_free(priv->usb_interface[iface].endpoint); - - if (if_desc->bNumEndpoints == 0) { - usbi_dbg("no endpoints found for interface %d", iface); - libusb_free_config_descriptor(conf_desc); - return LIBUSB_SUCCESS; - } - - priv->usb_interface[iface].endpoint = malloc(if_desc->bNumEndpoints); - if (priv->usb_interface[iface].endpoint == NULL) { - libusb_free_config_descriptor(conf_desc); - return LIBUSB_ERROR_NO_MEM; - } - - priv->usb_interface[iface].nb_endpoints = if_desc->bNumEndpoints; - for (i = 0; i < if_desc->bNumEndpoints; i++) { - priv->usb_interface[iface].endpoint[i] = if_desc->endpoint[i].bEndpointAddress; - usbi_dbg("(re)assigned endpoint %02X to interface %d", priv->usb_interface[iface].endpoint[i], iface); - } - libusb_free_config_descriptor(conf_desc); - - // Extra init may be required to configure endpoints - return priv->apib->configure_endpoints(SUB_API_NOTSET, dev_handle, iface); -} - -// Lookup for a match in the list of API driver names -// return -1 if not found, driver match number otherwise -static int get_sub_api(char *driver, int api) -{ - int i; - const char sep_str[2] = {LIST_SEPARATOR, 0}; - char *tok, *tmp_str; - size_t len = strlen(driver); - - if (len == 0) - return SUB_API_NOTSET; - - tmp_str = _strdup(driver); - if (tmp_str == NULL) - return SUB_API_NOTSET; - - tok = strtok(tmp_str, sep_str); - while (tok != NULL) { - for (i = 0; i < usb_api_backend[api].nb_driver_names; i++) { - if (_stricmp(tok, usb_api_backend[api].driver_name_list[i]) == 0) { - free(tmp_str); - return i; - } - } - tok = strtok(NULL, sep_str); - } - - free(tmp_str); - return SUB_API_NOTSET; -} - -/* - * auto-claiming and auto-release helper functions - */ -static int auto_claim(struct libusb_transfer *transfer, int *interface_number, int api_type) -{ - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv( - transfer->dev_handle); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int current_interface = *interface_number; - int r = LIBUSB_SUCCESS; - - switch(api_type) { - case USB_API_WINUSBX: - case USB_API_HID: - break; - default: - return LIBUSB_ERROR_INVALID_PARAM; - } - - usbi_mutex_lock(&autoclaim_lock); - if (current_interface < 0) { // No serviceable interface was found - for (current_interface = 0; current_interface < USB_MAXINTERFACES; current_interface++) { - // Must claim an interface of the same API type - if ((priv->usb_interface[current_interface].apib->id == api_type) - && (libusb_claim_interface(transfer->dev_handle, current_interface) == LIBUSB_SUCCESS)) { - usbi_dbg("auto-claimed interface %d for control request", current_interface); - if (handle_priv->autoclaim_count[current_interface] != 0) - usbi_warn(ctx, "program assertion failed - autoclaim_count was nonzero"); - handle_priv->autoclaim_count[current_interface]++; - break; - } - } - if (current_interface == USB_MAXINTERFACES) { - usbi_err(ctx, "could not auto-claim any interface"); - r = LIBUSB_ERROR_NOT_FOUND; - } - } else { - // If we have a valid interface that was autoclaimed, we must increment - // its autoclaim count so that we can prevent an early release. - if (handle_priv->autoclaim_count[current_interface] != 0) - handle_priv->autoclaim_count[current_interface]++; - } - usbi_mutex_unlock(&autoclaim_lock); - - *interface_number = current_interface; - return r; -} - -static void auto_release(struct usbi_transfer *itransfer) -{ - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - libusb_device_handle *dev_handle = transfer->dev_handle; - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - int r; - - usbi_mutex_lock(&autoclaim_lock); - if (handle_priv->autoclaim_count[transfer_priv->interface_number] > 0) { - handle_priv->autoclaim_count[transfer_priv->interface_number]--; - if (handle_priv->autoclaim_count[transfer_priv->interface_number] == 0) { - r = libusb_release_interface(dev_handle, transfer_priv->interface_number); - if (r == LIBUSB_SUCCESS) - usbi_dbg("auto-released interface %d", transfer_priv->interface_number); - else - usbi_dbg("failed to auto-release interface %d (%s)", - transfer_priv->interface_number, libusb_error_name((enum libusb_error)r)); - } - } - usbi_mutex_unlock(&autoclaim_lock); -} - -/* Windows version dtection */ -static BOOL is_x64(void) -{ - BOOL ret = FALSE; - - // Detect if we're running a 32 or 64 bit system - if (sizeof(uintptr_t) < 8) { - if (pIsWow64Process != NULL) - pIsWow64Process(GetCurrentProcess(), &ret); - } else { - ret = TRUE; - } - - return ret; -} - -static void get_windows_version(void) -{ - OSVERSIONINFOEXA vi, vi2; - const char *arch, *w = NULL; - unsigned major, minor; - ULONGLONG major_equal, minor_equal; - BOOL ws; - - memset(&vi, 0, sizeof(vi)); - vi.dwOSVersionInfoSize = sizeof(vi); - if (!GetVersionExA((OSVERSIONINFOA *)&vi)) { - memset(&vi, 0, sizeof(vi)); - vi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA); - if (!GetVersionExA((OSVERSIONINFOA *)&vi)) - return; - } - - if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT) { - if (vi.dwMajorVersion > 6 || (vi.dwMajorVersion == 6 && vi.dwMinorVersion >= 2)) { - // Starting with Windows 8.1 Preview, GetVersionEx() does no longer report the actual OS version - // See: http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx - - major_equal = VerSetConditionMask(0, VER_MAJORVERSION, VER_EQUAL); - for (major = vi.dwMajorVersion; major <= 9; major++) { - memset(&vi2, 0, sizeof(vi2)); - vi2.dwOSVersionInfoSize = sizeof(vi2); - vi2.dwMajorVersion = major; - if (!VerifyVersionInfoA(&vi2, VER_MAJORVERSION, major_equal)) - continue; - - if (vi.dwMajorVersion < major) { - vi.dwMajorVersion = major; - vi.dwMinorVersion = 0; - } - - minor_equal = VerSetConditionMask(0, VER_MINORVERSION, VER_EQUAL); - for (minor = vi.dwMinorVersion; minor <= 9; minor++) { - memset(&vi2, 0, sizeof(vi2)); - vi2.dwOSVersionInfoSize = sizeof(vi2); - vi2.dwMinorVersion = minor; - if (!VerifyVersionInfoA(&vi2, VER_MINORVERSION, minor_equal)) - continue; - - vi.dwMinorVersion = minor; - break; - } - - break; - } - } - - if (vi.dwMajorVersion <= 0xf && vi.dwMinorVersion <= 0xf) { - ws = (vi.wProductType <= VER_NT_WORKSTATION); - windows_version = vi.dwMajorVersion << 4 | vi.dwMinorVersion; - switch (windows_version) { - case 0x50: w = "2000"; break; - case 0x51: w = "XP"; break; - case 0x52: w = "2003"; break; - case 0x60: w = (ws ? "Vista" : "2008"); break; - case 0x61: w = (ws ? "7" : "2008_R2"); break; - case 0x62: w = (ws ? "8" : "2012"); break; - case 0x63: w = (ws ? "8.1" : "2012_R2"); break; - case 0x64: w = (ws ? "10" : "2015"); break; - default: - if (windows_version < 0x50) - windows_version = WINDOWS_UNSUPPORTED; - else - w = "11 or later"; - break; - } - } - } - - arch = is_x64() ? "64-bit" : "32-bit"; - - if (w == NULL) - snprintf(windows_version_str, sizeof(windows_version_str), "%s %u.%u %s", - (vi.dwPlatformId == VER_PLATFORM_WIN32_NT ? "NT" : "??"), - (unsigned int)vi.dwMajorVersion, (unsigned int)vi.dwMinorVersion, arch); - else if (vi.wServicePackMinor) - snprintf(windows_version_str, sizeof(windows_version_str), "%s SP%u.%u %s", - w, vi.wServicePackMajor, vi.wServicePackMinor, arch); - else if (vi.wServicePackMajor) - snprintf(windows_version_str, sizeof(windows_version_str), "%s SP%u %s", - w, vi.wServicePackMajor, arch); - else - snprintf(windows_version_str, sizeof(windows_version_str), "%s %s", - w, arch); -} - -/* - * init: libusb backend init function - * - * This function enumerates the HCDs (Host Controller Drivers) and populates our private HCD list - * In our implementation, we equate Windows' "HCD" to libusb's "bus". Note that bus is zero indexed. - * HCDs are not expected to change after init (might not hold true for hot pluggable USB PCI card?) - */ -static int windows_init(struct libusb_context *ctx) -{ - int i, r = LIBUSB_ERROR_OTHER; - HANDLE semaphore; - char sem_name[11 + 8 + 1]; // strlen("libusb_init") + (32-bit hex PID) + '\0' - - sprintf(sem_name, "libusb_init%08X", (unsigned int)(GetCurrentProcessId() & 0xFFFFFFFF)); - semaphore = CreateSemaphoreA(NULL, 1, 1, sem_name); - if (semaphore == NULL) { - usbi_err(ctx, "could not create semaphore: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_MEM; - } - - // A successful wait brings our semaphore count to 0 (unsignaled) - // => any concurent wait stalls until the semaphore's release - if (WaitForSingleObject(semaphore, INFINITE) != WAIT_OBJECT_0) { - usbi_err(ctx, "failure to access semaphore: %s", windows_error_str(0)); - CloseHandle(semaphore); - return LIBUSB_ERROR_NO_MEM; - } - - // NB: concurrent usage supposes that init calls are equally balanced with - // exit calls. If init is called more than exit, we will not exit properly - if (++concurrent_usage == 0) { // First init? - get_windows_version(); - usbi_dbg("Windows %s", windows_version_str); - - if (windows_version == WINDOWS_UNSUPPORTED) { - usbi_err(ctx, "This version of Windows is NOT supported"); - r = LIBUSB_ERROR_NOT_SUPPORTED; - goto init_exit; - } - - // We need a lock for proper auto-release - usbi_mutex_init(&autoclaim_lock); - - // Initialize pollable file descriptors - init_polling(); - - // Load DLL imports - if (init_dlls() != LIBUSB_SUCCESS) { - usbi_err(ctx, "could not resolve DLL functions"); - goto init_exit; - } - - // Initialize the low level APIs (we don't care about errors at this stage) - for (i = 0; i < USB_API_MAX; i++) - usb_api_backend[i].init(SUB_API_NOTSET, ctx); - - r = windows_common_init(ctx); - if (r) - goto init_exit; - } - // At this stage, either we went through full init successfully, or didn't need to - r = LIBUSB_SUCCESS; - -init_exit: // Holds semaphore here. - if (!concurrent_usage && r != LIBUSB_SUCCESS) { // First init failed? - for (i = 0; i < USB_API_MAX; i++) - usb_api_backend[i].exit(SUB_API_NOTSET); - exit_dlls(); - exit_polling(); - windows_common_exit(); - usbi_mutex_destroy(&autoclaim_lock); - } - - if (r != LIBUSB_SUCCESS) - --concurrent_usage; // Not expected to call libusb_exit if we failed. - - ReleaseSemaphore(semaphore, 1, NULL); // increase count back to 1 - CloseHandle(semaphore); - return r; -} - -/* - * HCD (root) hubs need to have their device descriptor manually populated - * - * Note that, like Microsoft does in the device manager, we populate the - * Vendor and Device ID for HCD hubs with the ones from the PCI HCD device. - */ -static int force_hcd_device_descriptor(struct libusb_device *dev) -{ - struct windows_device_priv *parent_priv, *priv = _device_priv(dev); - struct libusb_context *ctx = DEVICE_CTX(dev); - int vid, pid; - - dev->num_configurations = 1; - priv->dev_descriptor.bLength = sizeof(USB_DEVICE_DESCRIPTOR); - priv->dev_descriptor.bDescriptorType = USB_DEVICE_DESCRIPTOR_TYPE; - priv->dev_descriptor.bNumConfigurations = 1; - priv->active_config = 1; - - if (dev->parent_dev == NULL) { - usbi_err(ctx, "program assertion failed - HCD hub has no parent"); - return LIBUSB_ERROR_NO_DEVICE; - } - - parent_priv = _device_priv(dev->parent_dev); - if (sscanf(parent_priv->path, "\\\\.\\PCI#VEN_%04x&DEV_%04x%*s", &vid, &pid) == 2) { - priv->dev_descriptor.idVendor = (uint16_t)vid; - priv->dev_descriptor.idProduct = (uint16_t)pid; - } else { - usbi_warn(ctx, "could not infer VID/PID of HCD hub from '%s'", parent_priv->path); - priv->dev_descriptor.idVendor = 0x1d6b; // Linux Foundation root hub - priv->dev_descriptor.idProduct = 1; - } - - return LIBUSB_SUCCESS; -} - -/* - * fetch and cache all the config descriptors through I/O - */ -static int cache_config_descriptors(struct libusb_device *dev, HANDLE hub_handle, char *device_id) -{ - DWORD size, ret_size; - struct libusb_context *ctx = DEVICE_CTX(dev); - struct windows_device_priv *priv = _device_priv(dev); - int r; - uint8_t i; - - USB_CONFIGURATION_DESCRIPTOR_SHORT cd_buf_short; // dummy request - PUSB_DESCRIPTOR_REQUEST cd_buf_actual = NULL; // actual request - PUSB_CONFIGURATION_DESCRIPTOR cd_data = NULL; - - if (dev->num_configurations == 0) - return LIBUSB_ERROR_INVALID_PARAM; - - priv->config_descriptor = calloc(dev->num_configurations, sizeof(unsigned char *)); - if (priv->config_descriptor == NULL) - return LIBUSB_ERROR_NO_MEM; - - for (i = 0; i < dev->num_configurations; i++) - priv->config_descriptor[i] = NULL; - - for (i = 0, r = LIBUSB_SUCCESS; ; i++) { - // safe loop: release all dynamic resources - safe_free(cd_buf_actual); - - // safe loop: end of loop condition - if ((i >= dev->num_configurations) || (r != LIBUSB_SUCCESS)) - break; - - size = sizeof(USB_CONFIGURATION_DESCRIPTOR_SHORT); - memset(&cd_buf_short, 0, size); - - cd_buf_short.req.ConnectionIndex = (ULONG)priv->port; - cd_buf_short.req.SetupPacket.bmRequest = LIBUSB_ENDPOINT_IN; - cd_buf_short.req.SetupPacket.bRequest = USB_REQUEST_GET_DESCRIPTOR; - cd_buf_short.req.SetupPacket.wValue = (USB_CONFIGURATION_DESCRIPTOR_TYPE << 8) | i; - cd_buf_short.req.SetupPacket.wIndex = 0; - cd_buf_short.req.SetupPacket.wLength = (USHORT)(size - sizeof(USB_DESCRIPTOR_REQUEST)); - - // Dummy call to get the required data size. Initial failures are reported as info rather - // than error as they can occur for non-penalizing situations, such as with some hubs. - // coverity[tainted_data_argument] - if (!DeviceIoControl(hub_handle, IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, &cd_buf_short, size, - &cd_buf_short, size, &ret_size, NULL)) { - usbi_info(ctx, "could not access configuration descriptor (dummy) for '%s': %s", device_id, windows_error_str(0)); - LOOP_BREAK(LIBUSB_ERROR_IO); - } - - if ((ret_size != size) || (cd_buf_short.data.wTotalLength < sizeof(USB_CONFIGURATION_DESCRIPTOR))) { - usbi_info(ctx, "unexpected configuration descriptor size (dummy) for '%s'.", device_id); - LOOP_BREAK(LIBUSB_ERROR_IO); - } - - size = sizeof(USB_DESCRIPTOR_REQUEST) + cd_buf_short.data.wTotalLength; - cd_buf_actual = calloc(1, size); - if (cd_buf_actual == NULL) { - usbi_err(ctx, "could not allocate configuration descriptor buffer for '%s'.", device_id); - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - } - - // Actual call - cd_buf_actual->ConnectionIndex = (ULONG)priv->port; - cd_buf_actual->SetupPacket.bmRequest = LIBUSB_ENDPOINT_IN; - cd_buf_actual->SetupPacket.bRequest = USB_REQUEST_GET_DESCRIPTOR; - cd_buf_actual->SetupPacket.wValue = (USB_CONFIGURATION_DESCRIPTOR_TYPE << 8) | i; - cd_buf_actual->SetupPacket.wIndex = 0; - cd_buf_actual->SetupPacket.wLength = (USHORT)(size - sizeof(USB_DESCRIPTOR_REQUEST)); - - if (!DeviceIoControl(hub_handle, IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, cd_buf_actual, size, - cd_buf_actual, size, &ret_size, NULL)) { - usbi_err(ctx, "could not access configuration descriptor (actual) for '%s': %s", device_id, windows_error_str(0)); - LOOP_BREAK(LIBUSB_ERROR_IO); - } - - cd_data = (PUSB_CONFIGURATION_DESCRIPTOR)((UCHAR *)cd_buf_actual + sizeof(USB_DESCRIPTOR_REQUEST)); - - if ((size != ret_size) || (cd_data->wTotalLength != cd_buf_short.data.wTotalLength)) { - usbi_err(ctx, "unexpected configuration descriptor size (actual) for '%s'.", device_id); - LOOP_BREAK(LIBUSB_ERROR_IO); - } - - if (cd_data->bDescriptorType != USB_CONFIGURATION_DESCRIPTOR_TYPE) { - usbi_err(ctx, "not a configuration descriptor for '%s'", device_id); - LOOP_BREAK(LIBUSB_ERROR_IO); - } - - usbi_dbg("cached config descriptor %d (bConfigurationValue=%u, %u bytes)", - i, cd_data->bConfigurationValue, cd_data->wTotalLength); - - // Cache the descriptor - priv->config_descriptor[i] = malloc(cd_data->wTotalLength); - if (priv->config_descriptor[i] == NULL) - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - memcpy(priv->config_descriptor[i], cd_data, cd_data->wTotalLength); - } - return LIBUSB_SUCCESS; -} - -/* - * Populate a libusb device structure - */ -static int init_device(struct libusb_device *dev, struct libusb_device *parent_dev, - uint8_t port_number, char *device_id, DWORD devinst) -{ - HANDLE handle; - DWORD size; - USB_NODE_CONNECTION_INFORMATION_EX conn_info; - USB_NODE_CONNECTION_INFORMATION_EX_V2 conn_info_v2; - struct windows_device_priv *priv, *parent_priv; - struct libusb_context *ctx; - struct libusb_device *tmp_dev; - unsigned long tmp_id; - unsigned i; - - if ((dev == NULL) || (parent_dev == NULL)) - return LIBUSB_ERROR_NOT_FOUND; - - ctx = DEVICE_CTX(dev); - priv = _device_priv(dev); - parent_priv = _device_priv(parent_dev); - if (parent_priv->apib->id != USB_API_HUB) { - usbi_warn(ctx, "parent for device '%s' is not a hub", device_id); - return LIBUSB_ERROR_NOT_FOUND; - } - - // It is possible for the parent hub not to have been initialized yet - // If that's the case, lookup the ancestors to set the bus number - if (parent_dev->bus_number == 0) { - for (i = 2; ; i++) { - tmp_id = get_ancestor_session_id(devinst, i); - if (tmp_id == 0) - break; - - tmp_dev = usbi_get_device_by_session_id(ctx, tmp_id); - if (tmp_dev == NULL) - continue; - - if (tmp_dev->bus_number != 0) { - usbi_dbg("got bus number from ancestor #%u", i); - parent_dev->bus_number = tmp_dev->bus_number; - libusb_unref_device(tmp_dev); - break; - } - - libusb_unref_device(tmp_dev); - } - } - - if (parent_dev->bus_number == 0) { - usbi_err(ctx, "program assertion failed: unable to find ancestor bus number for '%s'", device_id); - return LIBUSB_ERROR_NOT_FOUND; - } - - dev->bus_number = parent_dev->bus_number; - priv->port = port_number; - dev->port_number = port_number; - priv->depth = parent_priv->depth + 1; - dev->parent_dev = parent_dev; - - // If the device address is already set, we can stop here - if (dev->device_address != 0) - return LIBUSB_SUCCESS; - - memset(&conn_info, 0, sizeof(conn_info)); - if (priv->depth != 0) { // Not a HCD hub - handle = CreateFileA(parent_priv->path, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, - FILE_FLAG_OVERLAPPED, NULL); - if (handle == INVALID_HANDLE_VALUE) { - usbi_warn(ctx, "could not open hub %s: %s", parent_priv->path, windows_error_str(0)); - return LIBUSB_ERROR_ACCESS; - } - - size = sizeof(conn_info); - conn_info.ConnectionIndex = (ULONG)port_number; - // coverity[tainted_data_argument] - if (!DeviceIoControl(handle, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, &conn_info, size, - &conn_info, size, &size, NULL)) { - usbi_warn(ctx, "could not get node connection information for device '%s': %s", - device_id, windows_error_str(0)); - CloseHandle(handle); - return LIBUSB_ERROR_NO_DEVICE; - } - - if (conn_info.ConnectionStatus == NoDeviceConnected) { - usbi_err(ctx, "device '%s' is no longer connected!", device_id); - CloseHandle(handle); - return LIBUSB_ERROR_NO_DEVICE; - } - - memcpy(&priv->dev_descriptor, &(conn_info.DeviceDescriptor), sizeof(USB_DEVICE_DESCRIPTOR)); - dev->num_configurations = priv->dev_descriptor.bNumConfigurations; - priv->active_config = conn_info.CurrentConfigurationValue; - usbi_dbg("found %u configurations (active conf: %u)", dev->num_configurations, priv->active_config); - - // If we can't read the config descriptors, just set the number of confs to zero - if (cache_config_descriptors(dev, handle, device_id) != LIBUSB_SUCCESS) { - dev->num_configurations = 0; - priv->dev_descriptor.bNumConfigurations = 0; - } - - // In their great wisdom, Microsoft decided to BREAK the USB speed report between Windows 7 and Windows 8 - if (windows_version >= WINDOWS_8) { - memset(&conn_info_v2, 0, sizeof(conn_info_v2)); - size = sizeof(conn_info_v2); - conn_info_v2.ConnectionIndex = (ULONG)port_number; - conn_info_v2.Length = size; - conn_info_v2.SupportedUsbProtocols.Usb300 = 1; - if (!DeviceIoControl(handle, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, - &conn_info_v2, size, &conn_info_v2, size, &size, NULL)) { - usbi_warn(ctx, "could not get node connection information (V2) for device '%s': %s", - device_id, windows_error_str(0)); - } else if (conn_info_v2.Flags.DeviceIsOperatingAtSuperSpeedOrHigher) { - conn_info.Speed = 3; - } - } - - CloseHandle(handle); - - if (conn_info.DeviceAddress > UINT8_MAX) - usbi_err(ctx, "program assertion failed: device address overflow"); - - dev->device_address = (uint8_t)conn_info.DeviceAddress + 1; - if (dev->device_address == 1) - usbi_err(ctx, "program assertion failed: device address collision with root hub"); - - switch (conn_info.Speed) { - case 0: dev->speed = LIBUSB_SPEED_LOW; break; - case 1: dev->speed = LIBUSB_SPEED_FULL; break; - case 2: dev->speed = LIBUSB_SPEED_HIGH; break; - case 3: dev->speed = LIBUSB_SPEED_SUPER; break; - default: - usbi_warn(ctx, "Got unknown device speed %u", conn_info.Speed); - break; - } - } else { - dev->device_address = 1; // root hubs are set to use device number 1 - force_hcd_device_descriptor(dev); - } - - usbi_sanitize_device(dev); - - usbi_dbg("(bus: %u, addr: %u, depth: %u, port: %u): '%s'", - dev->bus_number, dev->device_address, priv->depth, priv->port, device_id); - - return LIBUSB_SUCCESS; -} - -// Returns the api type, or 0 if not found/unsupported -static void get_api_type(struct libusb_context *ctx, HDEVINFO *dev_info, - SP_DEVINFO_DATA *dev_info_data, int *api, int *sub_api) -{ - // Precedence for filter drivers vs driver is in the order of this array - struct driver_lookup lookup[3] = { - {"\0\0", SPDRP_SERVICE, "driver"}, - {"\0\0", SPDRP_UPPERFILTERS, "upper filter driver"}, - {"\0\0", SPDRP_LOWERFILTERS, "lower filter driver"} - }; - DWORD size, reg_type; - unsigned k, l; - int i, j; - - *api = USB_API_UNSUPPORTED; - *sub_api = SUB_API_NOTSET; - - // Check the service & filter names to know the API we should use - for (k = 0; k < 3; k++) { - if (pSetupDiGetDeviceRegistryPropertyA(*dev_info, dev_info_data, lookup[k].reg_prop, - ®_type, (BYTE *)lookup[k].list, MAX_KEY_LENGTH, &size)) { - // Turn the REG_SZ SPDRP_SERVICE into REG_MULTI_SZ - if (lookup[k].reg_prop == SPDRP_SERVICE) - // our buffers are MAX_KEY_LENGTH + 1 so we can overflow if needed - lookup[k].list[strlen(lookup[k].list) + 1] = 0; - - // MULTI_SZ is a pain to work with. Turn it into something much more manageable - // NB: none of the driver names we check against contain LIST_SEPARATOR, - // (currently ';'), so even if an unsuported one does, it's not an issue - for (l = 0; (lookup[k].list[l] != 0) || (lookup[k].list[l + 1] != 0); l++) { - if (lookup[k].list[l] == 0) - lookup[k].list[l] = LIST_SEPARATOR; - } - usbi_dbg("%s(s): %s", lookup[k].designation, lookup[k].list); - } else { - if (GetLastError() != ERROR_INVALID_DATA) - usbi_dbg("could not access %s: %s", lookup[k].designation, windows_error_str(0)); - lookup[k].list[0] = 0; - } - } - - for (i = 1; i < USB_API_MAX; i++) { - for (k = 0; k < 3; k++) { - j = get_sub_api(lookup[k].list, i); - if (j >= 0) { - usbi_dbg("matched %s name against %s", lookup[k].designation, - (i != USB_API_WINUSBX) ? usb_api_backend[i].designation : sub_api_name[j]); - *api = i; - *sub_api = j; - return; - } - } - } -} - -static int set_composite_interface(struct libusb_context *ctx, struct libusb_device *dev, - char *dev_interface_path, char *device_id, int api, int sub_api) -{ - unsigned i; - struct windows_device_priv *priv = _device_priv(dev); - int interface_number; - - if (priv->apib->id != USB_API_COMPOSITE) { - usbi_err(ctx, "program assertion failed: '%s' is not composite", device_id); - return LIBUSB_ERROR_NO_DEVICE; - } - - // Because MI_## are not necessarily in sequential order (some composite - // devices will have only MI_00 & MI_03 for instance), we retrieve the actual - // interface number from the path's MI value - interface_number = 0; - for (i = 0; device_id[i] != 0; ) { - if ((device_id[i++] == 'M') && (device_id[i++] == 'I') - && (device_id[i++] == '_')) { - interface_number = (device_id[i++] - '0') * 10; - interface_number += device_id[i] - '0'; - break; - } - } - - if (device_id[i] == 0) - usbi_warn(ctx, "failure to read interface number for %s. Using default value %d", - device_id, interface_number); - - if (priv->usb_interface[interface_number].path != NULL) { - if (api == USB_API_HID) { - // HID devices can have multiple collections (COL##) for each MI_## interface - usbi_dbg("interface[%d] already set - ignoring HID collection: %s", - interface_number, device_id); - return LIBUSB_ERROR_ACCESS; - } - // In other cases, just use the latest data - safe_free(priv->usb_interface[interface_number].path); - } - - usbi_dbg("interface[%d] = %s", interface_number, dev_interface_path); - priv->usb_interface[interface_number].path = dev_interface_path; - priv->usb_interface[interface_number].apib = &usb_api_backend[api]; - priv->usb_interface[interface_number].sub_api = sub_api; - if ((api == USB_API_HID) && (priv->hid == NULL)) { - priv->hid = calloc(1, sizeof(struct hid_device_priv)); - if (priv->hid == NULL) - return LIBUSB_ERROR_NO_MEM; - } - - return LIBUSB_SUCCESS; -} - -static int set_hid_interface(struct libusb_context *ctx, struct libusb_device *dev, - char *dev_interface_path) -{ - int i; - struct windows_device_priv *priv = _device_priv(dev); - - if (priv->hid == NULL) { - usbi_err(ctx, "program assertion failed: parent is not HID"); - return LIBUSB_ERROR_NO_DEVICE; - } else if (priv->hid->nb_interfaces == USB_MAXINTERFACES) { - usbi_err(ctx, "program assertion failed: max USB interfaces reached for HID device"); - return LIBUSB_ERROR_NO_DEVICE; - } - - for (i = 0; i < priv->hid->nb_interfaces; i++) { - if ((priv->usb_interface[i].path != NULL) && strcmp(priv->usb_interface[i].path, dev_interface_path) == 0) { - usbi_dbg("interface[%d] already set to %s", i, dev_interface_path); - return LIBUSB_ERROR_ACCESS; - } - } - - priv->usb_interface[priv->hid->nb_interfaces].path = dev_interface_path; - priv->usb_interface[priv->hid->nb_interfaces].apib = &usb_api_backend[USB_API_HID]; - usbi_dbg("interface[%u] = %s", priv->hid->nb_interfaces, dev_interface_path); - priv->hid->nb_interfaces++; - return LIBUSB_SUCCESS; -} - -/* - * get_device_list: libusb backend device enumeration function - */ -static int windows_get_device_list(struct libusb_context *ctx, struct discovered_devs **_discdevs) -{ - struct discovered_devs *discdevs; - HDEVINFO dev_info = { 0 }; - const char *usb_class[] = {"USB", "NUSB3", "IUSB3", "IARUSB3"}; - SP_DEVINFO_DATA dev_info_data = { 0 }; - SP_DEVICE_INTERFACE_DETAIL_DATA_A *dev_interface_details = NULL; - GUID hid_guid; -#define MAX_ENUM_GUIDS 64 - const GUID *guid[MAX_ENUM_GUIDS]; -#define HCD_PASS 0 -#define HUB_PASS 1 -#define GEN_PASS 2 -#define DEV_PASS 3 -#define HID_PASS 4 - int r = LIBUSB_SUCCESS; - int api, sub_api; - size_t class_index = 0; - unsigned int nb_guids, pass, i, j, ancestor; - char path[MAX_PATH_LENGTH]; - char strbuf[MAX_PATH_LENGTH]; - struct libusb_device *dev, *parent_dev; - struct windows_device_priv *priv, *parent_priv; - char *dev_interface_path = NULL; - char *dev_id_path = NULL; - unsigned long session_id; - DWORD size, reg_type, port_nr, install_state; - HKEY key; - WCHAR guid_string_w[MAX_GUID_STRING_LENGTH]; - GUID *if_guid; - LONG s; - // Keep a list of newly allocated devs to unref - libusb_device **unref_list, **new_unref_list; - unsigned int unref_size = 64; - unsigned int unref_cur = 0; - - // PASS 1 : (re)enumerate HCDs (allows for HCD hotplug) - // PASS 2 : (re)enumerate HUBS - // PASS 3 : (re)enumerate generic USB devices (including driverless) - // and list additional USB device interface GUIDs to explore - // PASS 4 : (re)enumerate master USB devices that have a device interface - // PASS 5+: (re)enumerate device interfaced GUIDs (including HID) and - // set the device interfaces. - - // Init the GUID table - guid[HCD_PASS] = &GUID_DEVINTERFACE_USB_HOST_CONTROLLER; - guid[HUB_PASS] = &GUID_DEVINTERFACE_USB_HUB; - guid[GEN_PASS] = NULL; - guid[DEV_PASS] = &GUID_DEVINTERFACE_USB_DEVICE; - HidD_GetHidGuid(&hid_guid); - guid[HID_PASS] = &hid_guid; - nb_guids = HID_PASS + 1; - - unref_list = calloc(unref_size, sizeof(libusb_device *)); - if (unref_list == NULL) - return LIBUSB_ERROR_NO_MEM; - - for (pass = 0; ((pass < nb_guids) && (r == LIBUSB_SUCCESS)); pass++) { -//#define ENUM_DEBUG -#if defined(ENABLE_LOGGING) && defined(ENUM_DEBUG) - const char *passname[] = { "HCD", "HUB", "GEN", "DEV", "HID", "EXT" }; - usbi_dbg("#### PROCESSING %ss %s", passname[(pass <= HID_PASS) ? pass : (HID_PASS + 1)], - (pass != GEN_PASS) ? guid_to_string(guid[pass]) : ""); -#endif - for (i = 0; ; i++) { - // safe loop: free up any (unprotected) dynamic resource - // NB: this is always executed before breaking the loop - safe_free(dev_interface_details); - safe_free(dev_interface_path); - safe_free(dev_id_path); - priv = parent_priv = NULL; - dev = parent_dev = NULL; - - // Safe loop: end of loop conditions - if (r != LIBUSB_SUCCESS) - break; - - if ((pass == HCD_PASS) && (i == UINT8_MAX)) { - usbi_warn(ctx, "program assertion failed - found more than %d buses, skipping the rest.", UINT8_MAX); - break; - } - - if (pass != GEN_PASS) { - // Except for GEN, all passes deal with device interfaces - dev_interface_details = get_interface_details(ctx, &dev_info, &dev_info_data, guid[pass], i); - if (dev_interface_details == NULL) - break; - - dev_interface_path = sanitize_path(dev_interface_details->DevicePath); - if (dev_interface_path == NULL) { - usbi_warn(ctx, "could not sanitize device interface path for '%s'", dev_interface_details->DevicePath); - continue; - } - } else { - // Workaround for a Nec/Renesas USB 3.0 driver bug where root hubs are - // being listed under the "NUSB3" PnP Symbolic Name rather than "USB". - // The Intel USB 3.0 driver behaves similar, but uses "IUSB3" - // The Intel Alpine Ridge USB 3.1 driver uses "IARUSB3" - for (; class_index < ARRAYSIZE(usb_class); class_index++) { - if (get_devinfo_data(ctx, &dev_info, &dev_info_data, usb_class[class_index], i)) - break; - i = 0; - } - if (class_index >= ARRAYSIZE(usb_class)) - break; - } - - // Read the Device ID path. This is what we'll use as UID - // Note that if the device is plugged in a different port or hub, the Device ID changes - if (CM_Get_Device_IDA(dev_info_data.DevInst, path, sizeof(path), 0) != CR_SUCCESS) { - usbi_warn(ctx, "could not read the device id path for devinst %X, skipping", - (unsigned int)dev_info_data.DevInst); - continue; - } - - dev_id_path = sanitize_path(path); - if (dev_id_path == NULL) { - usbi_warn(ctx, "could not sanitize device id path for devinst %X, skipping", - (unsigned int)dev_info_data.DevInst); - continue; - } -#ifdef ENUM_DEBUG - usbi_dbg("PRO: %s", dev_id_path); -#endif - - // The SPDRP_ADDRESS for USB devices is the device port number on the hub - port_nr = 0; - if ((pass >= HUB_PASS) && (pass <= GEN_PASS)) { - if ((!pSetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_ADDRESS, - ®_type, (BYTE *)&port_nr, 4, &size)) || (size != 4)) { - usbi_warn(ctx, "could not retrieve port number for device '%s', skipping: %s", - dev_id_path, windows_error_str(0)); - continue; - } - } - - // Set API to use or get additional data from generic pass - api = USB_API_UNSUPPORTED; - sub_api = SUB_API_NOTSET; - switch (pass) { - case HCD_PASS: - break; - case GEN_PASS: - // We use the GEN pass to detect driverless devices... - size = sizeof(strbuf); - if (!pSetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_DRIVER, - ®_type, (BYTE *)strbuf, size, &size)) { - usbi_info(ctx, "The following device has no driver: '%s'", dev_id_path); - usbi_info(ctx, "libusb will not be able to access it."); - } - // ...and to add the additional device interface GUIDs - key = pSetupDiOpenDevRegKey(dev_info, &dev_info_data, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_READ); - if (key != INVALID_HANDLE_VALUE) { - size = sizeof(guid_string_w); - s = pRegQueryValueExW(key, L"DeviceInterfaceGUIDs", NULL, ®_type, - (BYTE *)guid_string_w, &size); - pRegCloseKey(key); - if (s == ERROR_SUCCESS) { - if (nb_guids >= MAX_ENUM_GUIDS) { - // If this assert is ever reported, grow a GUID table dynamically - usbi_err(ctx, "program assertion failed: too many GUIDs"); - LOOP_BREAK(LIBUSB_ERROR_OVERFLOW); - } - if_guid = calloc(1, sizeof(GUID)); - if (if_guid == NULL) { - usbi_err(ctx, "could not calloc for if_guid: not enough memory"); - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - } - pCLSIDFromString(guid_string_w, if_guid); - guid[nb_guids++] = if_guid; - usbi_dbg("extra GUID: %s", guid_to_string(if_guid)); - } - } - break; - case HID_PASS: - api = USB_API_HID; - break; - default: - // Get the API type (after checking that the driver installation is OK) - if ((!pSetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_INSTALL_STATE, - ®_type, (BYTE *)&install_state, 4, &size)) || (size != 4)) { - usbi_warn(ctx, "could not detect installation state of driver for '%s': %s", - dev_id_path, windows_error_str(0)); - } else if (install_state != 0) { - usbi_warn(ctx, "driver for device '%s' is reporting an issue (code: %u) - skipping", - dev_id_path, (unsigned int)install_state); - continue; - } - get_api_type(ctx, &dev_info, &dev_info_data, &api, &sub_api); - break; - } - - // Find parent device (for the passes that need it) - switch (pass) { - case HCD_PASS: - case DEV_PASS: - case HUB_PASS: - break; - default: - // Go through the ancestors until we see a face we recognize - parent_dev = NULL; - for (ancestor = 1; parent_dev == NULL; ancestor++) { - session_id = get_ancestor_session_id(dev_info_data.DevInst, ancestor); - if (session_id == 0) - break; - - parent_dev = usbi_get_device_by_session_id(ctx, session_id); - } - - if (parent_dev == NULL) { - usbi_dbg("unlisted ancestor for '%s' (non USB HID, newly connected, etc.) - ignoring", dev_id_path); - continue; - } - - parent_priv = _device_priv(parent_dev); - // virtual USB devices are also listed during GEN - don't process these yet - if ((pass == GEN_PASS) && (parent_priv->apib->id != USB_API_HUB)) { - libusb_unref_device(parent_dev); - continue; - } - - break; - } - - // Create new or match existing device, using the (hashed) device_id as session id - if (pass <= DEV_PASS) { // For subsequent passes, we'll lookup the parent - // These are the passes that create "new" devices - session_id = htab_hash(dev_id_path); - dev = usbi_get_device_by_session_id(ctx, session_id); - if (dev == NULL) { - if (pass == DEV_PASS) { - // This can occur if the OS only reports a newly plugged device after we started enum - usbi_warn(ctx, "'%s' was only detected in late pass (newly connected device?)" - " - ignoring", dev_id_path); - continue; - } - - usbi_dbg("allocating new device for session [%lX]", session_id); - dev = usbi_alloc_device(ctx, session_id); - if (dev == NULL) - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - - priv = windows_device_priv_init(dev); - } else { - usbi_dbg("found existing device for session [%lX] (%u.%u)", - session_id, dev->bus_number, dev->device_address); - - priv = _device_priv(dev); - if ((parent_dev != NULL) && (dev->parent_dev != NULL)) { - if (dev->parent_dev != parent_dev) { - // It is possible for the actual parent device to not have existed at the - // time of enumeration, so the currently assigned parent may in fact be a - // grandparent. If the devices differ, we assume the "new" parent device - // is in fact closer to the device. - usbi_dbg("updating parent device [session %lX -> %lX]", - dev->parent_dev->session_data, parent_dev->session_data); - libusb_unref_device(dev->parent_dev); - dev->parent_dev = parent_dev; - } else { - // We hold a reference to parent_dev instance, but this device already - // has a parent_dev reference (only one per child) - libusb_unref_device(parent_dev); - } - } - } - - // Keep track of devices that need unref - unref_list[unref_cur++] = dev; - if (unref_cur >= unref_size) { - unref_size += 64; - new_unref_list = usbi_reallocf(unref_list, unref_size * sizeof(libusb_device *)); - if (new_unref_list == NULL) { - usbi_err(ctx, "could not realloc list for unref - aborting."); - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - } else { - unref_list = new_unref_list; - } - } - } - - // Setup device - switch (pass) { - case HCD_PASS: - // If the hcd has already been setup, don't do it again - if (priv->path != NULL) - break; - dev->bus_number = (uint8_t)(i + 1); // bus 0 is reserved for disconnected - dev->device_address = 0; - dev->num_configurations = 0; - priv->apib = &usb_api_backend[USB_API_HUB]; - priv->sub_api = SUB_API_NOTSET; - priv->depth = UINT8_MAX; // Overflow to 0 for HCD Hubs - priv->path = dev_interface_path; - dev_interface_path = NULL; - break; - case HUB_PASS: - case DEV_PASS: - // If the device has already been setup, don't do it again - if (priv->path != NULL) - break; - // Take care of API initialization - priv->path = dev_interface_path; - dev_interface_path = NULL; - priv->apib = &usb_api_backend[api]; - priv->sub_api = sub_api; - switch(api) { - case USB_API_COMPOSITE: - case USB_API_HUB: - break; - case USB_API_HID: - priv->hid = calloc(1, sizeof(struct hid_device_priv)); - if (priv->hid == NULL) - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - - priv->hid->nb_interfaces = 0; - break; - default: - // For other devices, the first interface is the same as the device - priv->usb_interface[0].path = _strdup(priv->path); - if (priv->usb_interface[0].path == NULL) - usbi_warn(ctx, "could not duplicate interface path '%s'", priv->path); - // The following is needed if we want API calls to work for both simple - // and composite devices. - for (j = 0; j < USB_MAXINTERFACES; j++) - priv->usb_interface[j].apib = &usb_api_backend[api]; - - break; - } - break; - case GEN_PASS: - r = init_device(dev, parent_dev, (uint8_t)port_nr, dev_id_path, dev_info_data.DevInst); - if (r == LIBUSB_SUCCESS) { - // Append device to the list of discovered devices - discdevs = discovered_devs_append(*_discdevs, dev); - if (!discdevs) - LOOP_BREAK(LIBUSB_ERROR_NO_MEM); - - *_discdevs = discdevs; - } else if (r == LIBUSB_ERROR_NO_DEVICE) { - // This can occur if the device was disconnected but Windows hasn't - // refreshed its enumeration yet - in that case, we ignore the device - r = LIBUSB_SUCCESS; - } - break; - default: // HID_PASS and later - if (parent_priv->apib->id == USB_API_HID || parent_priv->apib->id == USB_API_COMPOSITE) { - if (parent_priv->apib->id == USB_API_HID) { - usbi_dbg("setting HID interface for [%lX]:", parent_dev->session_data); - r = set_hid_interface(ctx, parent_dev, dev_interface_path); - } else { - usbi_dbg("setting composite interface for [%lX]:", parent_dev->session_data); - r = set_composite_interface(ctx, parent_dev, dev_interface_path, dev_id_path, api, sub_api); - } - switch (r) { - case LIBUSB_SUCCESS: - dev_interface_path = NULL; - break; - case LIBUSB_ERROR_ACCESS: - // interface has already been set => make sure dev_interface_path is freed then - r = LIBUSB_SUCCESS; - break; - default: - LOOP_BREAK(r); - break; - } - } - libusb_unref_device(parent_dev); - break; - } - } - } - - // Free any additional GUIDs - for (pass = HID_PASS + 1; pass < nb_guids; pass++) - free((void *)guid[pass]); - - // Unref newly allocated devs - for (i = 0; i < unref_cur; i++) - libusb_unref_device(unref_list[i]); - free(unref_list); - - return r; -} - -/* - * exit: libusb backend deinitialization function - */ -static void windows_exit(void) -{ - int i; - HANDLE semaphore; - char sem_name[11 + 8 + 1]; // strlen("libusb_init") + (32-bit hex PID) + '\0' - - sprintf(sem_name, "libusb_init%08X", (unsigned int)(GetCurrentProcessId() & 0xFFFFFFFF)); - semaphore = CreateSemaphoreA(NULL, 1, 1, sem_name); - if (semaphore == NULL) - return; - - // A successful wait brings our semaphore count to 0 (unsignaled) - // => any concurent wait stalls until the semaphore release - if (WaitForSingleObject(semaphore, INFINITE) != WAIT_OBJECT_0) { - CloseHandle(semaphore); - return; - } - - // Only works if exits and inits are balanced exactly - if (--concurrent_usage < 0) { // Last exit - for (i = 0; i < USB_API_MAX; i++) - usb_api_backend[i].exit(SUB_API_NOTSET); - exit_dlls(); - exit_polling(); - windows_common_exit(); - usbi_mutex_destroy(&autoclaim_lock); - } - - ReleaseSemaphore(semaphore, 1, NULL); // increase count back to 1 - CloseHandle(semaphore); -} - -static int windows_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer, int *host_endian) -{ - struct windows_device_priv *priv = _device_priv(dev); - - memcpy(buffer, &priv->dev_descriptor, DEVICE_DESC_LENGTH); - *host_endian = 0; - - return LIBUSB_SUCCESS; -} - -static int windows_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) -{ - struct windows_device_priv *priv = _device_priv(dev); - PUSB_CONFIGURATION_DESCRIPTOR config_header; - size_t size; - - // config index is zero based - if (config_index >= dev->num_configurations) - return LIBUSB_ERROR_INVALID_PARAM; - - if ((priv->config_descriptor == NULL) || (priv->config_descriptor[config_index] == NULL)) - return LIBUSB_ERROR_NOT_FOUND; - - config_header = (PUSB_CONFIGURATION_DESCRIPTOR)priv->config_descriptor[config_index]; - - size = MIN(config_header->wTotalLength, len); - memcpy(buffer, priv->config_descriptor[config_index], size); - *host_endian = 0; - - return (int)size; -} - -static int windows_get_config_descriptor_by_value(struct libusb_device *dev, uint8_t bConfigurationValue, - unsigned char **buffer, int *host_endian) -{ - struct windows_device_priv *priv = _device_priv(dev); - PUSB_CONFIGURATION_DESCRIPTOR config_header; - uint8_t index; - - *buffer = NULL; - *host_endian = 0; - - if (priv->config_descriptor == NULL) - return LIBUSB_ERROR_NOT_FOUND; - - for (index = 0; index < dev->num_configurations; index++) { - config_header = (PUSB_CONFIGURATION_DESCRIPTOR)priv->config_descriptor[index]; - if (config_header->bConfigurationValue == bConfigurationValue) { - *buffer = priv->config_descriptor[index]; - return (int)config_header->wTotalLength; - } - } - - return LIBUSB_ERROR_NOT_FOUND; -} - -/* - * return the cached copy of the active config descriptor - */ -static int windows_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len, int *host_endian) -{ - struct windows_device_priv *priv = _device_priv(dev); - unsigned char *config_desc; - int r; - - if (priv->active_config == 0) - return LIBUSB_ERROR_NOT_FOUND; - - r = windows_get_config_descriptor_by_value(dev, priv->active_config, &config_desc, host_endian); - if (r < 0) - return r; - - len = MIN((size_t)r, len); - memcpy(buffer, config_desc, len); - return (int)len; -} - -static int windows_open(struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - - if (priv->apib == NULL) { - usbi_err(ctx, "program assertion failed - device is not initialized"); - return LIBUSB_ERROR_NO_DEVICE; - } - - return priv->apib->open(SUB_API_NOTSET, dev_handle); -} - -static void windows_close(struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - priv->apib->close(SUB_API_NOTSET, dev_handle); -} - -static int windows_get_configuration(struct libusb_device_handle *dev_handle, int *config) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - if (priv->active_config == 0) { - *config = 0; - return LIBUSB_ERROR_NOT_FOUND; - } - - *config = priv->active_config; - return LIBUSB_SUCCESS; -} - -/* - * from http://msdn.microsoft.com/en-us/library/ms793522.aspx: "The port driver - * does not currently expose a service that allows higher-level drivers to set - * the configuration." - */ -static int windows_set_configuration(struct libusb_device_handle *dev_handle, int config) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - int r = LIBUSB_SUCCESS; - - if (config >= USB_MAXCONFIG) - return LIBUSB_ERROR_INVALID_PARAM; - - r = libusb_control_transfer(dev_handle, LIBUSB_ENDPOINT_OUT | - LIBUSB_REQUEST_TYPE_STANDARD | LIBUSB_RECIPIENT_DEVICE, - LIBUSB_REQUEST_SET_CONFIGURATION, (uint16_t)config, - 0, NULL, 0, 1000); - - if (r == LIBUSB_SUCCESS) - priv->active_config = (uint8_t)config; - - return r; -} - -static int windows_claim_interface(struct libusb_device_handle *dev_handle, int iface) -{ - int r = LIBUSB_SUCCESS; - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - safe_free(priv->usb_interface[iface].endpoint); - priv->usb_interface[iface].nb_endpoints = 0; - - r = priv->apib->claim_interface(SUB_API_NOTSET, dev_handle, iface); - - if (r == LIBUSB_SUCCESS) - r = windows_assign_endpoints(dev_handle, iface, 0); - - return r; -} - -static int windows_set_interface_altsetting(struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - int r = LIBUSB_SUCCESS; - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - safe_free(priv->usb_interface[iface].endpoint); - priv->usb_interface[iface].nb_endpoints = 0; - - r = priv->apib->set_interface_altsetting(SUB_API_NOTSET, dev_handle, iface, altsetting); - - if (r == LIBUSB_SUCCESS) - r = windows_assign_endpoints(dev_handle, iface, altsetting); - - return r; -} - -static int windows_release_interface(struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - return priv->apib->release_interface(SUB_API_NOTSET, dev_handle, iface); -} - -static int windows_clear_halt(struct libusb_device_handle *dev_handle, unsigned char endpoint) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - return priv->apib->clear_halt(SUB_API_NOTSET, dev_handle, endpoint); -} - -static int windows_reset_device(struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - return priv->apib->reset_device(SUB_API_NOTSET, dev_handle); -} - -// The 3 functions below are unlikely to ever get supported on Windows -static int windows_kernel_driver_active(struct libusb_device_handle *dev_handle, int iface) -{ - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int windows_attach_kernel_driver(struct libusb_device_handle *dev_handle, int iface) -{ - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int windows_detach_kernel_driver(struct libusb_device_handle *dev_handle, int iface) -{ - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static void windows_destroy_device(struct libusb_device *dev) -{ - windows_device_priv_release(dev); -} - -void windows_clear_transfer_priv(struct usbi_transfer *itransfer) -{ - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - - usbi_free_fd(&transfer_priv->pollable_fd); - safe_free(transfer_priv->hid_buffer); - // When auto claim is in use, attempt to release the auto-claimed interface - auto_release(itransfer); -} - -static int submit_bulk_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int r; - - r = priv->apib->submit_bulk_transfer(SUB_API_NOTSET, itransfer); - if (r != LIBUSB_SUCCESS) - return r; - - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, - (short)(IS_XFERIN(transfer) ? POLLIN : POLLOUT)); - - return LIBUSB_SUCCESS; -} - -static int submit_iso_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int r; - - r = priv->apib->submit_iso_transfer(SUB_API_NOTSET, itransfer); - if (r != LIBUSB_SUCCESS) - return r; - - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, - (short)(IS_XFERIN(transfer) ? POLLIN : POLLOUT)); - - return LIBUSB_SUCCESS; -} - -static int submit_control_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int r; - - r = priv->apib->submit_control_transfer(SUB_API_NOTSET, itransfer); - if (r != LIBUSB_SUCCESS) - return r; - - usbi_add_pollfd(ctx, transfer_priv->pollable_fd.fd, POLLIN); - - return LIBUSB_SUCCESS; -} - -static int windows_submit_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - return submit_control_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - if (IS_XFEROUT(transfer) && (transfer->flags & LIBUSB_TRANSFER_ADD_ZERO_PACKET)) - return LIBUSB_ERROR_NOT_SUPPORTED; - return submit_bulk_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return submit_iso_transfer(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - return LIBUSB_ERROR_NOT_SUPPORTED; - default: - usbi_err(TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -static int windows_abort_control(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - - return priv->apib->abort_control(SUB_API_NOTSET, itransfer); -} - -static int windows_abort_transfers(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - - return priv->apib->abort_transfers(SUB_API_NOTSET, itransfer); -} - -static int windows_cancel_transfer(struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - - switch (transfer->type) { - case LIBUSB_TRANSFER_TYPE_CONTROL: - return windows_abort_control(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK: - case LIBUSB_TRANSFER_TYPE_INTERRUPT: - case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: - return windows_abort_transfers(itransfer); - case LIBUSB_TRANSFER_TYPE_BULK_STREAM: - return LIBUSB_ERROR_NOT_SUPPORTED; - default: - usbi_err(ITRANSFER_CTX(itransfer), "unknown endpoint type %d", transfer->type); - return LIBUSB_ERROR_INVALID_PARAM; - } -} - -int windows_copy_transfer_data(struct usbi_transfer *itransfer, uint32_t io_size) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - return priv->apib->copy_transfer_data(SUB_API_NOTSET, itransfer, io_size); -} - -struct winfd *windows_get_fd(struct usbi_transfer *transfer) -{ - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(transfer); - return &transfer_priv->pollable_fd; -} - -void windows_get_overlapped_result(struct usbi_transfer *transfer, struct winfd *pollable_fd, DWORD *io_result, DWORD *io_size) -{ - if (HasOverlappedIoCompletedSync(pollable_fd->overlapped)) { - *io_result = NO_ERROR; - *io_size = (DWORD)pollable_fd->overlapped->InternalHigh; - } else if (GetOverlappedResult(pollable_fd->handle, pollable_fd->overlapped, io_size, false)) { - // Regular async overlapped - *io_result = NO_ERROR; - } else { - *io_result = GetLastError(); - } -} - -// NB: MSVC6 does not support named initializers. -const struct usbi_os_backend windows_backend = { - "Windows", - USBI_CAP_HAS_HID_ACCESS, - windows_init, - windows_exit, - - windows_get_device_list, - NULL, /* hotplug_poll */ - windows_open, - windows_close, - - windows_get_device_descriptor, - windows_get_active_config_descriptor, - windows_get_config_descriptor, - windows_get_config_descriptor_by_value, - - windows_get_configuration, - windows_set_configuration, - windows_claim_interface, - windows_release_interface, - - windows_set_interface_altsetting, - windows_clear_halt, - windows_reset_device, - - NULL, /* alloc_streams */ - NULL, /* free_streams */ - - NULL, /* dev_mem_alloc */ - NULL, /* dev_mem_free */ - - windows_kernel_driver_active, - windows_detach_kernel_driver, - windows_attach_kernel_driver, - - windows_destroy_device, - - windows_submit_transfer, - windows_cancel_transfer, - windows_clear_transfer_priv, - - windows_handle_events, - NULL, - - windows_clock_gettime, -#if defined(USBI_TIMERFD_AVAILABLE) - NULL, -#endif - sizeof(struct windows_device_priv), - sizeof(struct windows_device_handle_priv), - sizeof(struct windows_transfer_priv), -}; - - -/* - * USB API backends - */ -static int unsupported_init(int sub_api, struct libusb_context *ctx) -{ - return LIBUSB_SUCCESS; -} - -static int unsupported_exit(int sub_api) -{ - return LIBUSB_SUCCESS; -} - -static int unsupported_open(int sub_api, struct libusb_device_handle *dev_handle) -{ - PRINT_UNSUPPORTED_API(open); -} - -static void unsupported_close(int sub_api, struct libusb_device_handle *dev_handle) -{ - usbi_dbg("unsupported API call for 'close'"); -} - -static int unsupported_configure_endpoints(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - PRINT_UNSUPPORTED_API(configure_endpoints); -} - -static int unsupported_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - PRINT_UNSUPPORTED_API(claim_interface); -} - -static int unsupported_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - PRINT_UNSUPPORTED_API(set_interface_altsetting); -} - -static int unsupported_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - PRINT_UNSUPPORTED_API(release_interface); -} - -static int unsupported_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint) -{ - PRINT_UNSUPPORTED_API(clear_halt); -} - -static int unsupported_reset_device(int sub_api, struct libusb_device_handle *dev_handle) -{ - PRINT_UNSUPPORTED_API(reset_device); -} - -static int unsupported_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - PRINT_UNSUPPORTED_API(submit_bulk_transfer); -} - -static int unsupported_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - PRINT_UNSUPPORTED_API(submit_iso_transfer); -} - -static int unsupported_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - PRINT_UNSUPPORTED_API(submit_control_transfer); -} - -static int unsupported_abort_control(int sub_api, struct usbi_transfer *itransfer) -{ - PRINT_UNSUPPORTED_API(abort_control); -} - -static int unsupported_abort_transfers(int sub_api, struct usbi_transfer *itransfer) -{ - PRINT_UNSUPPORTED_API(abort_transfers); -} - -static int unsupported_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size) -{ - PRINT_UNSUPPORTED_API(copy_transfer_data); -} - -static int common_configure_endpoints(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - return LIBUSB_SUCCESS; -} - -// These names must be uppercase -static const char *hub_driver_names[] = {"USBHUB", "USBHUB3", "USB3HUB", "NUSB3HUB", "RUSB3HUB", "FLXHCIH", "TIHUB3", "ETRONHUB3", "VIAHUB3", "ASMTHUB3", "IUSB3HUB", "VUSB3HUB", "AMDHUB30", "VHHUB", "AUSB3HUB"}; -static const char *composite_driver_names[] = {"USBCCGP"}; -static const char *winusbx_driver_names[] = WINUSBX_DRV_NAMES; -static const char *hid_driver_names[] = {"HIDUSB", "MOUHID", "KBDHID"}; -const struct windows_usb_api_backend usb_api_backend[USB_API_MAX] = { - { - USB_API_UNSUPPORTED, - "Unsupported API", - NULL, - 0, - unsupported_init, - unsupported_exit, - unsupported_open, - unsupported_close, - unsupported_configure_endpoints, - unsupported_claim_interface, - unsupported_set_interface_altsetting, - unsupported_release_interface, - unsupported_clear_halt, - unsupported_reset_device, - unsupported_submit_bulk_transfer, - unsupported_submit_iso_transfer, - unsupported_submit_control_transfer, - unsupported_abort_control, - unsupported_abort_transfers, - unsupported_copy_transfer_data, - }, - { - USB_API_HUB, - "HUB API", - hub_driver_names, - ARRAYSIZE(hub_driver_names), - unsupported_init, - unsupported_exit, - unsupported_open, - unsupported_close, - unsupported_configure_endpoints, - unsupported_claim_interface, - unsupported_set_interface_altsetting, - unsupported_release_interface, - unsupported_clear_halt, - unsupported_reset_device, - unsupported_submit_bulk_transfer, - unsupported_submit_iso_transfer, - unsupported_submit_control_transfer, - unsupported_abort_control, - unsupported_abort_transfers, - unsupported_copy_transfer_data, - }, - { - USB_API_COMPOSITE, - "Composite API", - composite_driver_names, - ARRAYSIZE(composite_driver_names), - composite_init, - composite_exit, - composite_open, - composite_close, - common_configure_endpoints, - composite_claim_interface, - composite_set_interface_altsetting, - composite_release_interface, - composite_clear_halt, - composite_reset_device, - composite_submit_bulk_transfer, - composite_submit_iso_transfer, - composite_submit_control_transfer, - composite_abort_control, - composite_abort_transfers, - composite_copy_transfer_data, - }, - { - USB_API_WINUSBX, - "WinUSB-like APIs", - winusbx_driver_names, - ARRAYSIZE(winusbx_driver_names), - winusbx_init, - winusbx_exit, - winusbx_open, - winusbx_close, - winusbx_configure_endpoints, - winusbx_claim_interface, - winusbx_set_interface_altsetting, - winusbx_release_interface, - winusbx_clear_halt, - winusbx_reset_device, - winusbx_submit_bulk_transfer, - unsupported_submit_iso_transfer, - winusbx_submit_control_transfer, - winusbx_abort_control, - winusbx_abort_transfers, - winusbx_copy_transfer_data, - }, - { - USB_API_HID, - "HID API", - hid_driver_names, - ARRAYSIZE(hid_driver_names), - hid_init, - hid_exit, - hid_open, - hid_close, - common_configure_endpoints, - hid_claim_interface, - hid_set_interface_altsetting, - hid_release_interface, - hid_clear_halt, - hid_reset_device, - hid_submit_bulk_transfer, - unsupported_submit_iso_transfer, - hid_submit_control_transfer, - hid_abort_transfers, - hid_abort_transfers, - hid_copy_transfer_data, - }, -}; - - -/* - * WinUSB-like (WinUSB, libusb0/libusbK through libusbk DLL) API functions - */ -#define WinUSBX_Set(fn) \ - do { \ - if (native_winusb) \ - WinUSBX[i].fn = (WinUsb_##fn##_t)GetProcAddress(h, "WinUsb_" #fn); \ - else \ - pLibK_GetProcAddress((PVOID *)&WinUSBX[i].fn, i, KUSB_FNID_##fn); \ - } while (0) - -static int winusbx_init(int sub_api, struct libusb_context *ctx) -{ - HMODULE h; - bool native_winusb; - int i; - KLIB_VERSION LibK_Version; - LibK_GetProcAddress_t pLibK_GetProcAddress = NULL; - LibK_GetVersion_t pLibK_GetVersion; - - h = LoadLibraryA("libusbK"); - - if (h == NULL) { - usbi_info(ctx, "libusbK DLL is not available, will use native WinUSB"); - h = LoadLibraryA("WinUSB"); - - if (h == NULL) { - usbi_warn(ctx, "WinUSB DLL is not available either, " - "you will not be able to access devices outside of enumeration"); - return LIBUSB_ERROR_NOT_FOUND; - } - } else { - usbi_dbg("using libusbK DLL for universal access"); - pLibK_GetVersion = (LibK_GetVersion_t)GetProcAddress(h, "LibK_GetVersion"); - if (pLibK_GetVersion != NULL) { - pLibK_GetVersion(&LibK_Version); - usbi_dbg("libusbK version: %d.%d.%d.%d", LibK_Version.Major, LibK_Version.Minor, - LibK_Version.Micro, LibK_Version.Nano); - } - pLibK_GetProcAddress = (LibK_GetProcAddress_t)GetProcAddress(h, "LibK_GetProcAddress"); - if (pLibK_GetProcAddress == NULL) { - usbi_err(ctx, "LibK_GetProcAddress() not found in libusbK DLL"); - FreeLibrary(h); - return LIBUSB_ERROR_NOT_FOUND; - } - } - - native_winusb = (pLibK_GetProcAddress == NULL); - for (i = SUB_API_LIBUSBK; i < SUB_API_MAX; i++) { - WinUSBX_Set(AbortPipe); - WinUSBX_Set(ControlTransfer); - WinUSBX_Set(FlushPipe); - WinUSBX_Set(Free); - WinUSBX_Set(GetAssociatedInterface); - WinUSBX_Set(GetCurrentAlternateSetting); - WinUSBX_Set(GetDescriptor); - WinUSBX_Set(GetOverlappedResult); - WinUSBX_Set(GetPipePolicy); - WinUSBX_Set(GetPowerPolicy); - WinUSBX_Set(Initialize); - WinUSBX_Set(QueryDeviceInformation); - WinUSBX_Set(QueryInterfaceSettings); - WinUSBX_Set(QueryPipe); - WinUSBX_Set(ReadPipe); - WinUSBX_Set(ResetPipe); - WinUSBX_Set(SetCurrentAlternateSetting); - WinUSBX_Set(SetPipePolicy); - WinUSBX_Set(SetPowerPolicy); - WinUSBX_Set(WritePipe); - if (!native_winusb) - WinUSBX_Set(ResetDevice); - - if (WinUSBX[i].Initialize != NULL) { - WinUSBX[i].initialized = true; - usbi_dbg("initalized sub API %s", sub_api_name[i]); - } else { - usbi_warn(ctx, "Failed to initalize sub API %s", sub_api_name[i]); - WinUSBX[i].initialized = false; - } - } - - WinUSBX_handle = h; - return LIBUSB_SUCCESS; -} - -static int winusbx_exit(int sub_api) -{ - if (WinUSBX_handle != NULL) { - FreeLibrary(WinUSBX_handle); - WinUSBX_handle = NULL; - - /* Reset the WinUSBX API structures */ - memset(&WinUSBX, 0, sizeof(WinUSBX)); - } - - return LIBUSB_SUCCESS; -} - -// NB: open and close must ensure that they only handle interface of -// the right API type, as these functions can be called wholesale from -// composite_open(), with interfaces belonging to different APIs -static int winusbx_open(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - - HANDLE file_handle; - int i; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - // WinUSB requires a separate handle for each interface - for (i = 0; i < USB_MAXINTERFACES; i++) { - if ((priv->usb_interface[i].path != NULL) - && (priv->usb_interface[i].apib->id == USB_API_WINUSBX)) { - file_handle = CreateFileA(priv->usb_interface[i].path, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - if (file_handle == INVALID_HANDLE_VALUE) { - usbi_err(ctx, "could not open device %s (interface %d): %s", priv->usb_interface[i].path, i, windows_error_str(0)); - switch(GetLastError()) { - case ERROR_FILE_NOT_FOUND: // The device was disconnected - return LIBUSB_ERROR_NO_DEVICE; - case ERROR_ACCESS_DENIED: - return LIBUSB_ERROR_ACCESS; - default: - return LIBUSB_ERROR_IO; - } - } - handle_priv->interface_handle[i].dev_handle = file_handle; - } - } - - return LIBUSB_SUCCESS; -} - -static void winusbx_close(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - HANDLE handle; - int i; - - if (sub_api == SUB_API_NOTSET) - sub_api = priv->sub_api; - - if (!WinUSBX[sub_api].initialized) - return; - - if (priv->apib->id == USB_API_COMPOSITE) { - // If this is a composite device, just free and close all WinUSB-like - // interfaces directly (each is independent and not associated with another) - for (i = 0; i < USB_MAXINTERFACES; i++) { - if (priv->usb_interface[i].apib->id == USB_API_WINUSBX) { - handle = handle_priv->interface_handle[i].api_handle; - if (HANDLE_VALID(handle)) - WinUSBX[sub_api].Free(handle); - - handle = handle_priv->interface_handle[i].dev_handle; - if (HANDLE_VALID(handle)) - CloseHandle(handle); - } - } - } else { - // If this is a WinUSB device, free all interfaces above interface 0, - // then free and close interface 0 last - for (i = 1; i < USB_MAXINTERFACES; i++) { - handle = handle_priv->interface_handle[i].api_handle; - if (HANDLE_VALID(handle)) - WinUSBX[sub_api].Free(handle); - } - handle = handle_priv->interface_handle[0].api_handle; - if (HANDLE_VALID(handle)) - WinUSBX[sub_api].Free(handle); - - handle = handle_priv->interface_handle[0].dev_handle; - if (HANDLE_VALID(handle)) - CloseHandle(handle); - } -} - -static int winusbx_configure_endpoints(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - HANDLE winusb_handle = handle_priv->interface_handle[iface].api_handle; - UCHAR policy; - ULONG timeout = 0; - uint8_t endpoint_address; - int i; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - // With handle and enpoints set (in parent), we can setup the default pipe properties - // see http://download.microsoft.com/download/D/1/D/D1DD7745-426B-4CC3-A269-ABBBE427C0EF/DVC-T705_DDC08.pptx - for (i = -1; i < priv->usb_interface[iface].nb_endpoints; i++) { - endpoint_address = (i == -1) ? 0 : priv->usb_interface[iface].endpoint[i]; - if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address, - PIPE_TRANSFER_TIMEOUT, sizeof(ULONG), &timeout)) - usbi_dbg("failed to set PIPE_TRANSFER_TIMEOUT for control endpoint %02X", endpoint_address); - - if ((i == -1) || (sub_api == SUB_API_LIBUSB0)) - continue; // Other policies don't apply to control endpoint or libusb0 - - policy = false; - if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address, - SHORT_PACKET_TERMINATE, sizeof(UCHAR), &policy)) - usbi_dbg("failed to disable SHORT_PACKET_TERMINATE for endpoint %02X", endpoint_address); - - if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address, - IGNORE_SHORT_PACKETS, sizeof(UCHAR), &policy)) - usbi_dbg("failed to disable IGNORE_SHORT_PACKETS for endpoint %02X", endpoint_address); - - policy = true; - /* ALLOW_PARTIAL_READS must be enabled due to likely libusbK bug. See: - https://sourceforge.net/mailarchive/message.php?msg_id=29736015 */ - if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address, - ALLOW_PARTIAL_READS, sizeof(UCHAR), &policy)) - usbi_dbg("failed to enable ALLOW_PARTIAL_READS for endpoint %02X", endpoint_address); - - if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address, - AUTO_CLEAR_STALL, sizeof(UCHAR), &policy)) - usbi_dbg("failed to enable AUTO_CLEAR_STALL for endpoint %02X", endpoint_address); - } - - return LIBUSB_SUCCESS; -} - -static int winusbx_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - bool is_using_usbccgp = (priv->apib->id == USB_API_COMPOSITE); - SP_DEVICE_INTERFACE_DETAIL_DATA_A *dev_interface_details = NULL; - HDEVINFO dev_info = INVALID_HANDLE_VALUE; - SP_DEVINFO_DATA dev_info_data; - char *dev_path_no_guid = NULL; - char filter_path[] = "\\\\.\\libusb0-0000"; - bool found_filter = false; - HANDLE file_handle, winusb_handle; - DWORD err; - int i; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - // If the device is composite, but using the default Windows composite parent driver (usbccgp) - // or if it's the first WinUSB-like interface, we get a handle through Initialize(). - if ((is_using_usbccgp) || (iface == 0)) { - // composite device (independent interfaces) or interface 0 - file_handle = handle_priv->interface_handle[iface].dev_handle; - if (!HANDLE_VALID(file_handle)) - return LIBUSB_ERROR_NOT_FOUND; - - if (!WinUSBX[sub_api].Initialize(file_handle, &winusb_handle)) { - handle_priv->interface_handle[iface].api_handle = INVALID_HANDLE_VALUE; - err = GetLastError(); - switch(err) { - case ERROR_BAD_COMMAND: - // The device was disconnected - usbi_err(ctx, "could not access interface %d: %s", iface, windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - default: - // it may be that we're using the libusb0 filter driver. - // TODO: can we move this whole business into the K/0 DLL? - for (i = 0; ; i++) { - safe_free(dev_interface_details); - safe_free(dev_path_no_guid); - - dev_interface_details = get_interface_details_filter(ctx, &dev_info, &dev_info_data, &GUID_DEVINTERFACE_LIBUSB0_FILTER, i, filter_path); - if ((found_filter) || (dev_interface_details == NULL)) - break; - - // ignore GUID part - dev_path_no_guid = sanitize_path(strtok(dev_interface_details->DevicePath, "{")); - if (dev_path_no_guid == NULL) - continue; - - if (strncmp(dev_path_no_guid, priv->usb_interface[iface].path, strlen(dev_path_no_guid)) == 0) { - file_handle = CreateFileA(filter_path, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - if (file_handle != INVALID_HANDLE_VALUE) { - if (WinUSBX[sub_api].Initialize(file_handle, &winusb_handle)) { - // Replace the existing file handle with the working one - CloseHandle(handle_priv->interface_handle[iface].dev_handle); - handle_priv->interface_handle[iface].dev_handle = file_handle; - found_filter = true; - } else { - usbi_err(ctx, "could not initialize filter driver for %s", filter_path); - CloseHandle(file_handle); - } - } else { - usbi_err(ctx, "could not open device %s: %s", filter_path, windows_error_str(0)); - } - } - } - free(dev_interface_details); - if (!found_filter) { - usbi_err(ctx, "could not access interface %d: %s", iface, windows_error_str(err)); - return LIBUSB_ERROR_ACCESS; - } - } - } - handle_priv->interface_handle[iface].api_handle = winusb_handle; - } else { - // For all other interfaces, use GetAssociatedInterface() - winusb_handle = handle_priv->interface_handle[0].api_handle; - // It is a requirement for multiple interface devices on Windows that, to you - // must first claim the first interface before you claim the others - if (!HANDLE_VALID(winusb_handle)) { - file_handle = handle_priv->interface_handle[0].dev_handle; - if (WinUSBX[sub_api].Initialize(file_handle, &winusb_handle)) { - handle_priv->interface_handle[0].api_handle = winusb_handle; - usbi_warn(ctx, "auto-claimed interface 0 (required to claim %d with WinUSB)", iface); - } else { - usbi_warn(ctx, "failed to auto-claim interface 0 (required to claim %d with WinUSB): %s", iface, windows_error_str(0)); - return LIBUSB_ERROR_ACCESS; - } - } - if (!WinUSBX[sub_api].GetAssociatedInterface(winusb_handle, (UCHAR)(iface - 1), - &handle_priv->interface_handle[iface].api_handle)) { - handle_priv->interface_handle[iface].api_handle = INVALID_HANDLE_VALUE; - switch(GetLastError()) { - case ERROR_NO_MORE_ITEMS: // invalid iface - return LIBUSB_ERROR_NOT_FOUND; - case ERROR_BAD_COMMAND: // The device was disconnected - return LIBUSB_ERROR_NO_DEVICE; - case ERROR_ALREADY_EXISTS: // already claimed - return LIBUSB_ERROR_BUSY; - default: - usbi_err(ctx, "could not claim interface %d: %s", iface, windows_error_str(0)); - return LIBUSB_ERROR_ACCESS; - } - } - } - usbi_dbg("claimed interface %d", iface); - handle_priv->active_interface = iface; - - return LIBUSB_SUCCESS; -} - -static int winusbx_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - HANDLE winusb_handle; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - winusb_handle = handle_priv->interface_handle[iface].api_handle; - if (!HANDLE_VALID(winusb_handle)) - return LIBUSB_ERROR_NOT_FOUND; - - WinUSBX[sub_api].Free(winusb_handle); - handle_priv->interface_handle[iface].api_handle = INVALID_HANDLE_VALUE; - - return LIBUSB_SUCCESS; -} - -/* - * Return the first valid interface (of the same API type), for control transfers - */ -static int get_valid_interface(struct libusb_device_handle *dev_handle, int api_id) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - int i; - - if ((api_id < USB_API_WINUSBX) || (api_id > USB_API_HID)) { - usbi_dbg("unsupported API ID"); - return -1; - } - - for (i = 0; i < USB_MAXINTERFACES; i++) { - if (HANDLE_VALID(handle_priv->interface_handle[i].dev_handle) - && HANDLE_VALID(handle_priv->interface_handle[i].api_handle) - && (priv->usb_interface[i].apib->id == api_id)) - return i; - } - - return -1; -} - -/* - * Lookup interface by endpoint address. -1 if not found - */ -static int interface_by_endpoint(struct windows_device_priv *priv, - struct windows_device_handle_priv *handle_priv, uint8_t endpoint_address) -{ - int i, j; - - for (i = 0; i < USB_MAXINTERFACES; i++) { - if (!HANDLE_VALID(handle_priv->interface_handle[i].api_handle)) - continue; - if (priv->usb_interface[i].endpoint == NULL) - continue; - for (j = 0; j < priv->usb_interface[i].nb_endpoints; j++) { - if (priv->usb_interface[i].endpoint[j] == endpoint_address) - return i; - } - } - - return -1; -} - -static int winusbx_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - WINUSB_SETUP_PACKET *setup = (WINUSB_SETUP_PACKET *)transfer->buffer; - ULONG size; - HANDLE winusb_handle; - int current_interface; - struct winfd wfd; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - transfer_priv->pollable_fd = INVALID_WINFD; - size = transfer->length - LIBUSB_CONTROL_SETUP_SIZE; - - // Windows places upper limits on the control transfer size - // See: https://msdn.microsoft.com/en-us/library/windows/hardware/ff538112.aspx - if (size > MAX_CTRL_BUFFER_LENGTH) - return LIBUSB_ERROR_INVALID_PARAM; - - current_interface = get_valid_interface(transfer->dev_handle, USB_API_WINUSBX); - if (current_interface < 0) { - if (auto_claim(transfer, ¤t_interface, USB_API_WINUSBX) != LIBUSB_SUCCESS) - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("will use interface %d", current_interface); - winusb_handle = handle_priv->interface_handle[current_interface].api_handle; - - wfd = usbi_create_fd(winusb_handle, RW_READ, NULL, NULL); - // Always use the handle returned from usbi_create_fd (wfd.handle) - if (wfd.fd < 0) - return LIBUSB_ERROR_NO_MEM; - - // Sending of set configuration control requests from WinUSB creates issues - if (((setup->request_type & (0x03 << 5)) == LIBUSB_REQUEST_TYPE_STANDARD) - && (setup->request == LIBUSB_REQUEST_SET_CONFIGURATION)) { - if (setup->value != priv->active_config) { - usbi_warn(ctx, "cannot set configuration other than the default one"); - usbi_free_fd(&wfd); - return LIBUSB_ERROR_INVALID_PARAM; - } - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - wfd.overlapped->InternalHigh = 0; - } else { - if (!WinUSBX[sub_api].ControlTransfer(wfd.handle, *setup, transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE, size, NULL, wfd.overlapped)) { - if (GetLastError() != ERROR_IO_PENDING) { - usbi_warn(ctx, "ControlTransfer failed: %s", windows_error_str(0)); - usbi_free_fd(&wfd); - return LIBUSB_ERROR_IO; - } - } else { - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - wfd.overlapped->InternalHigh = (DWORD)size; - } - } - - // Use priv_transfer to store data needed for async polling - transfer_priv->pollable_fd = wfd; - transfer_priv->interface_number = (uint8_t)current_interface; - - return LIBUSB_SUCCESS; -} - -static int winusbx_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - HANDLE winusb_handle; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - if (altsetting > 255) - return LIBUSB_ERROR_INVALID_PARAM; - - winusb_handle = handle_priv->interface_handle[iface].api_handle; - if (!HANDLE_VALID(winusb_handle)) { - usbi_err(ctx, "interface must be claimed first"); - return LIBUSB_ERROR_NOT_FOUND; - } - - if (!WinUSBX[sub_api].SetCurrentAlternateSetting(winusb_handle, (UCHAR)altsetting)) { - usbi_err(ctx, "SetCurrentAlternateSetting failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_IO; - } - - return LIBUSB_SUCCESS; -} - -static int winusbx_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - HANDLE winusb_handle; - bool ret; - int current_interface; - struct winfd wfd; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - transfer_priv->pollable_fd = INVALID_WINFD; - - current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("matched endpoint %02X with interface %d", transfer->endpoint, current_interface); - - winusb_handle = handle_priv->interface_handle[current_interface].api_handle; - - wfd = usbi_create_fd(winusb_handle, IS_XFERIN(transfer) ? RW_READ : RW_WRITE, NULL, NULL); - // Always use the handle returned from usbi_create_fd (wfd.handle) - if (wfd.fd < 0) - return LIBUSB_ERROR_NO_MEM; - - if (IS_XFERIN(transfer)) { - usbi_dbg("reading %d bytes", transfer->length); - ret = WinUSBX[sub_api].ReadPipe(wfd.handle, transfer->endpoint, transfer->buffer, transfer->length, NULL, wfd.overlapped); - } else { - usbi_dbg("writing %d bytes", transfer->length); - ret = WinUSBX[sub_api].WritePipe(wfd.handle, transfer->endpoint, transfer->buffer, transfer->length, NULL, wfd.overlapped); - } - - if (!ret) { - if (GetLastError() != ERROR_IO_PENDING) { - usbi_err(ctx, "ReadPipe/WritePipe failed: %s", windows_error_str(0)); - usbi_free_fd(&wfd); - return LIBUSB_ERROR_IO; - } - } else { - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - wfd.overlapped->InternalHigh = (DWORD)transfer->length; - } - - transfer_priv->pollable_fd = wfd; - transfer_priv->interface_number = (uint8_t)current_interface; - - return LIBUSB_SUCCESS; -} - -static int winusbx_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - HANDLE winusb_handle; - int current_interface; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - current_interface = interface_by_endpoint(priv, handle_priv, endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cannot clear"); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("matched endpoint %02X with interface %d", endpoint, current_interface); - winusb_handle = handle_priv->interface_handle[current_interface].api_handle; - - if (!WinUSBX[sub_api].ResetPipe(winusb_handle, endpoint)) { - usbi_err(ctx, "ResetPipe failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -/* - * from http://www.winvistatips.com/winusb-bugchecks-t335323.html (confirmed - * through testing as well): - * "You can not call WinUsb_AbortPipe on control pipe. You can possibly cancel - * the control transfer using CancelIo" - */ -static int winusbx_abort_control(int sub_api, struct usbi_transfer *itransfer) -{ - // Cancelling of the I/O is done in the parent - return LIBUSB_SUCCESS; -} - -static int winusbx_abort_transfers(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - HANDLE winusb_handle; - int current_interface; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - current_interface = transfer_priv->interface_number; - if ((current_interface < 0) || (current_interface >= USB_MAXINTERFACES)) { - usbi_err(ctx, "program assertion failed: invalid interface_number"); - return LIBUSB_ERROR_NOT_FOUND; - } - usbi_dbg("will use interface %d", current_interface); - - winusb_handle = handle_priv->interface_handle[current_interface].api_handle; - - if (!WinUSBX[sub_api].AbortPipe(winusb_handle, transfer->endpoint)) { - usbi_err(ctx, "AbortPipe failed: %s", windows_error_str(0)); - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -/* - * from the "How to Use WinUSB to Communicate with a USB Device" Microsoft white paper - * (http://www.microsoft.com/whdc/connect/usb/winusb_howto.mspx): - * "WinUSB does not support host-initiated reset port and cycle port operations" and - * IOCTL_INTERNAL_USB_CYCLE_PORT is only available in kernel mode and the - * IOCTL_USB_HUB_CYCLE_PORT ioctl was removed from Vista => the best we can do is - * cycle the pipes (and even then, the control pipe can not be reset using WinUSB) - */ -// TODO: (post hotplug): see if we can force eject the device and redetect it (reuse hotplug?) -static int winusbx_reset_device(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - struct winfd wfd; - HANDLE winusb_handle; - int i, j; - - CHECK_WINUSBX_AVAILABLE(sub_api); - - // Reset any available pipe (except control) - for (i = 0; i < USB_MAXINTERFACES; i++) { - winusb_handle = handle_priv->interface_handle[i].api_handle; - for (wfd = handle_to_winfd(winusb_handle); wfd.fd > 0; ) { - // Cancel any pollable I/O - usbi_remove_pollfd(ctx, wfd.fd); - usbi_free_fd(&wfd); - wfd = handle_to_winfd(winusb_handle); - } - - if (HANDLE_VALID(winusb_handle)) { - for (j = 0; j < priv->usb_interface[i].nb_endpoints; j++) { - usbi_dbg("resetting ep %02X", priv->usb_interface[i].endpoint[j]); - if (!WinUSBX[sub_api].AbortPipe(winusb_handle, priv->usb_interface[i].endpoint[j])) - usbi_err(ctx, "AbortPipe (pipe address %02X) failed: %s", - priv->usb_interface[i].endpoint[j], windows_error_str(0)); - - // FlushPipe seems to fail on OUT pipes - if (IS_EPIN(priv->usb_interface[i].endpoint[j]) - && (!WinUSBX[sub_api].FlushPipe(winusb_handle, priv->usb_interface[i].endpoint[j]))) - usbi_err(ctx, "FlushPipe (pipe address %02X) failed: %s", - priv->usb_interface[i].endpoint[j], windows_error_str(0)); - - if (!WinUSBX[sub_api].ResetPipe(winusb_handle, priv->usb_interface[i].endpoint[j])) - usbi_err(ctx, "ResetPipe (pipe address %02X) failed: %s", - priv->usb_interface[i].endpoint[j], windows_error_str(0)); - } - } - } - - // libusbK & libusb0 have the ability to issue an actual device reset - if (WinUSBX[sub_api].ResetDevice != NULL) { - winusb_handle = handle_priv->interface_handle[0].api_handle; - if (HANDLE_VALID(winusb_handle)) - WinUSBX[sub_api].ResetDevice(winusb_handle); - } - - return LIBUSB_SUCCESS; -} - -static int winusbx_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size) -{ - itransfer->transferred += io_size; - return LIBUSB_TRANSFER_COMPLETED; -} - -/* - * Internal HID Support functions (from libusb-win32) - * Note that functions that complete data transfer synchronously must return - * LIBUSB_COMPLETED instead of LIBUSB_SUCCESS - */ -static int _hid_get_hid_descriptor(struct hid_device_priv *dev, void *data, size_t *size); -static int _hid_get_report_descriptor(struct hid_device_priv *dev, void *data, size_t *size); - -static int _hid_wcslen(WCHAR *str) -{ - int i = 0; - - while (str[i] && (str[i] != 0x409)) - i++; - - return i; -} - -static int _hid_get_device_descriptor(struct hid_device_priv *dev, void *data, size_t *size) -{ - struct libusb_device_descriptor d; - - d.bLength = LIBUSB_DT_DEVICE_SIZE; - d.bDescriptorType = LIBUSB_DT_DEVICE; - d.bcdUSB = 0x0200; /* 2.00 */ - d.bDeviceClass = 0; - d.bDeviceSubClass = 0; - d.bDeviceProtocol = 0; - d.bMaxPacketSize0 = 64; /* fix this! */ - d.idVendor = (uint16_t)dev->vid; - d.idProduct = (uint16_t)dev->pid; - d.bcdDevice = 0x0100; - d.iManufacturer = dev->string_index[0]; - d.iProduct = dev->string_index[1]; - d.iSerialNumber = dev->string_index[2]; - d.bNumConfigurations = 1; - - if (*size > LIBUSB_DT_DEVICE_SIZE) - *size = LIBUSB_DT_DEVICE_SIZE; - memcpy(data, &d, *size); - - return LIBUSB_COMPLETED; -} - -static int _hid_get_config_descriptor(struct hid_device_priv *dev, void *data, size_t *size) -{ - char num_endpoints = 0; - size_t config_total_len = 0; - char tmp[HID_MAX_CONFIG_DESC_SIZE]; - struct libusb_config_descriptor *cd; - struct libusb_interface_descriptor *id; - struct libusb_hid_descriptor *hd; - struct libusb_endpoint_descriptor *ed; - size_t tmp_size; - - if (dev->input_report_size) - num_endpoints++; - if (dev->output_report_size) - num_endpoints++; - - config_total_len = LIBUSB_DT_CONFIG_SIZE + LIBUSB_DT_INTERFACE_SIZE - + LIBUSB_DT_HID_SIZE + num_endpoints * LIBUSB_DT_ENDPOINT_SIZE; - - cd = (struct libusb_config_descriptor *)tmp; - id = (struct libusb_interface_descriptor *)(tmp + LIBUSB_DT_CONFIG_SIZE); - hd = (struct libusb_hid_descriptor *)(tmp + LIBUSB_DT_CONFIG_SIZE - + LIBUSB_DT_INTERFACE_SIZE); - ed = (struct libusb_endpoint_descriptor *)(tmp + LIBUSB_DT_CONFIG_SIZE - + LIBUSB_DT_INTERFACE_SIZE - + LIBUSB_DT_HID_SIZE); - - cd->bLength = LIBUSB_DT_CONFIG_SIZE; - cd->bDescriptorType = LIBUSB_DT_CONFIG; - cd->wTotalLength = (uint16_t)config_total_len; - cd->bNumInterfaces = 1; - cd->bConfigurationValue = 1; - cd->iConfiguration = 0; - cd->bmAttributes = 1 << 7; /* bus powered */ - cd->MaxPower = 50; - - id->bLength = LIBUSB_DT_INTERFACE_SIZE; - id->bDescriptorType = LIBUSB_DT_INTERFACE; - id->bInterfaceNumber = 0; - id->bAlternateSetting = 0; - id->bNumEndpoints = num_endpoints; - id->bInterfaceClass = 3; - id->bInterfaceSubClass = 0; - id->bInterfaceProtocol = 0; - id->iInterface = 0; - - tmp_size = LIBUSB_DT_HID_SIZE; - _hid_get_hid_descriptor(dev, hd, &tmp_size); - - if (dev->input_report_size) { - ed->bLength = LIBUSB_DT_ENDPOINT_SIZE; - ed->bDescriptorType = LIBUSB_DT_ENDPOINT; - ed->bEndpointAddress = HID_IN_EP; - ed->bmAttributes = 3; - ed->wMaxPacketSize = dev->input_report_size - 1; - ed->bInterval = 10; - ed = (struct libusb_endpoint_descriptor *)((char *)ed + LIBUSB_DT_ENDPOINT_SIZE); - } - - if (dev->output_report_size) { - ed->bLength = LIBUSB_DT_ENDPOINT_SIZE; - ed->bDescriptorType = LIBUSB_DT_ENDPOINT; - ed->bEndpointAddress = HID_OUT_EP; - ed->bmAttributes = 3; - ed->wMaxPacketSize = dev->output_report_size - 1; - ed->bInterval = 10; - } - - if (*size > config_total_len) - *size = config_total_len; - memcpy(data, tmp, *size); - - return LIBUSB_COMPLETED; -} - -static int _hid_get_string_descriptor(struct hid_device_priv *dev, int _index, - void *data, size_t *size) -{ - void *tmp = NULL; - size_t tmp_size = 0; - int i; - - /* language ID, EN-US */ - char string_langid[] = {0x09, 0x04}; - - if ((*size < 2) || (*size > 255)) - return LIBUSB_ERROR_OVERFLOW; - - if (_index == 0) { - tmp = string_langid; - tmp_size = sizeof(string_langid) + 2; - } else { - for (i = 0; i < 3; i++) { - if (_index == (dev->string_index[i])) { - tmp = dev->string[i]; - tmp_size = (_hid_wcslen(dev->string[i]) + 1) * sizeof(WCHAR); - break; - } - } - - if (i == 3) // not found - return LIBUSB_ERROR_INVALID_PARAM; - } - - if (!tmp_size) - return LIBUSB_ERROR_INVALID_PARAM; - - if (tmp_size < *size) - *size = tmp_size; - - // 2 byte header - ((uint8_t *)data)[0] = (uint8_t)*size; - ((uint8_t *)data)[1] = LIBUSB_DT_STRING; - memcpy((uint8_t *)data + 2, tmp, *size - 2); - - return LIBUSB_COMPLETED; -} - -static int _hid_get_hid_descriptor(struct hid_device_priv *dev, void *data, size_t *size) -{ - struct libusb_hid_descriptor d; - uint8_t tmp[MAX_HID_DESCRIPTOR_SIZE]; - size_t report_len = MAX_HID_DESCRIPTOR_SIZE; - - _hid_get_report_descriptor(dev, tmp, &report_len); - - d.bLength = LIBUSB_DT_HID_SIZE; - d.bDescriptorType = LIBUSB_DT_HID; - d.bcdHID = 0x0110; /* 1.10 */ - d.bCountryCode = 0; - d.bNumDescriptors = 1; - d.bClassDescriptorType = LIBUSB_DT_REPORT; - d.wClassDescriptorLength = (uint16_t)report_len; - - if (*size > LIBUSB_DT_HID_SIZE) - *size = LIBUSB_DT_HID_SIZE; - memcpy(data, &d, *size); - - return LIBUSB_COMPLETED; -} - -static int _hid_get_report_descriptor(struct hid_device_priv *dev, void *data, size_t *size) -{ - uint8_t d[MAX_HID_DESCRIPTOR_SIZE]; - size_t i = 0; - - /* usage page (0xFFA0 == vendor defined) */ - d[i++] = 0x06; d[i++] = 0xA0; d[i++] = 0xFF; - /* usage (vendor defined) */ - d[i++] = 0x09; d[i++] = 0x01; - /* start collection (application) */ - d[i++] = 0xA1; d[i++] = 0x01; - /* input report */ - if (dev->input_report_size) { - /* usage (vendor defined) */ - d[i++] = 0x09; d[i++] = 0x01; - /* logical minimum (0) */ - d[i++] = 0x15; d[i++] = 0x00; - /* logical maximum (255) */ - d[i++] = 0x25; d[i++] = 0xFF; - /* report size (8 bits) */ - d[i++] = 0x75; d[i++] = 0x08; - /* report count */ - d[i++] = 0x95; d[i++] = (uint8_t)dev->input_report_size - 1; - /* input (data, variable, absolute) */ - d[i++] = 0x81; d[i++] = 0x00; - } - /* output report */ - if (dev->output_report_size) { - /* usage (vendor defined) */ - d[i++] = 0x09; d[i++] = 0x02; - /* logical minimum (0) */ - d[i++] = 0x15; d[i++] = 0x00; - /* logical maximum (255) */ - d[i++] = 0x25; d[i++] = 0xFF; - /* report size (8 bits) */ - d[i++] = 0x75; d[i++] = 0x08; - /* report count */ - d[i++] = 0x95; d[i++] = (uint8_t)dev->output_report_size - 1; - /* output (data, variable, absolute) */ - d[i++] = 0x91; d[i++] = 0x00; - } - /* feature report */ - if (dev->feature_report_size) { - /* usage (vendor defined) */ - d[i++] = 0x09; d[i++] = 0x03; - /* logical minimum (0) */ - d[i++] = 0x15; d[i++] = 0x00; - /* logical maximum (255) */ - d[i++] = 0x25; d[i++] = 0xFF; - /* report size (8 bits) */ - d[i++] = 0x75; d[i++] = 0x08; - /* report count */ - d[i++] = 0x95; d[i++] = (uint8_t)dev->feature_report_size - 1; - /* feature (data, variable, absolute) */ - d[i++] = 0xb2; d[i++] = 0x02; d[i++] = 0x01; - } - - /* end collection */ - d[i++] = 0xC0; - - if (*size > i) - *size = i; - memcpy(data, d, *size); - - return LIBUSB_COMPLETED; -} - -static int _hid_get_descriptor(struct hid_device_priv *dev, HANDLE hid_handle, int recipient, - int type, int _index, void *data, size_t *size) -{ - switch(type) { - case LIBUSB_DT_DEVICE: - usbi_dbg("LIBUSB_DT_DEVICE"); - return _hid_get_device_descriptor(dev, data, size); - case LIBUSB_DT_CONFIG: - usbi_dbg("LIBUSB_DT_CONFIG"); - if (!_index) - return _hid_get_config_descriptor(dev, data, size); - return LIBUSB_ERROR_INVALID_PARAM; - case LIBUSB_DT_STRING: - usbi_dbg("LIBUSB_DT_STRING"); - return _hid_get_string_descriptor(dev, _index, data, size); - case LIBUSB_DT_HID: - usbi_dbg("LIBUSB_DT_HID"); - if (!_index) - return _hid_get_hid_descriptor(dev, data, size); - return LIBUSB_ERROR_INVALID_PARAM; - case LIBUSB_DT_REPORT: - usbi_dbg("LIBUSB_DT_REPORT"); - if (!_index) - return _hid_get_report_descriptor(dev, data, size); - return LIBUSB_ERROR_INVALID_PARAM; - case LIBUSB_DT_PHYSICAL: - usbi_dbg("LIBUSB_DT_PHYSICAL"); - if (HidD_GetPhysicalDescriptor(hid_handle, data, (ULONG)*size)) - return LIBUSB_COMPLETED; - return LIBUSB_ERROR_OTHER; - } - - usbi_dbg("unsupported"); - return LIBUSB_ERROR_NOT_SUPPORTED; -} - -static int _hid_get_report(struct hid_device_priv *dev, HANDLE hid_handle, int id, void *data, - struct windows_transfer_priv *tp, size_t *size, OVERLAPPED *overlapped, int report_type) -{ - uint8_t *buf; - DWORD ioctl_code, read_size, expected_size = (DWORD)*size; - int r = LIBUSB_SUCCESS; - - if (tp->hid_buffer != NULL) - usbi_dbg("program assertion failed: hid_buffer is not NULL"); - - if ((*size == 0) || (*size > MAX_HID_REPORT_SIZE)) { - usbi_dbg("invalid size (%u)", *size); - return LIBUSB_ERROR_INVALID_PARAM; - } - - switch (report_type) { - case HID_REPORT_TYPE_INPUT: - ioctl_code = IOCTL_HID_GET_INPUT_REPORT; - break; - case HID_REPORT_TYPE_FEATURE: - ioctl_code = IOCTL_HID_GET_FEATURE; - break; - default: - usbi_dbg("unknown HID report type %d", report_type); - return LIBUSB_ERROR_INVALID_PARAM; - } - - // Add a trailing byte to detect overflows - buf = calloc(1, expected_size + 1); - if (buf == NULL) - return LIBUSB_ERROR_NO_MEM; - - buf[0] = (uint8_t)id; // Must be set always - usbi_dbg("report ID: 0x%02X", buf[0]); - - tp->hid_expected_size = expected_size; - read_size = expected_size; - - // NB: The size returned by DeviceIoControl doesn't include report IDs when not in use (0) - if (!DeviceIoControl(hid_handle, ioctl_code, buf, expected_size + 1, - buf, expected_size + 1, &read_size, overlapped)) { - if (GetLastError() != ERROR_IO_PENDING) { - usbi_dbg("Failed to Read HID Report: %s", windows_error_str(0)); - free(buf); - return LIBUSB_ERROR_IO; - } - // Asynchronous wait - tp->hid_buffer = buf; - tp->hid_dest = data; // copy dest, as not necessarily the start of the transfer buffer - return LIBUSB_SUCCESS; - } - - // Transfer completed synchronously => copy and discard extra buffer - if (read_size == 0) { - usbi_warn(NULL, "program assertion failed - read completed synchronously, but no data was read"); - *size = 0; - } else { - if (buf[0] != id) - usbi_warn(NULL, "mismatched report ID (data is %02X, parameter is %02X)", buf[0], id); - - if ((size_t)read_size > expected_size) { - r = LIBUSB_ERROR_OVERFLOW; - usbi_dbg("OVERFLOW!"); - } else { - r = LIBUSB_COMPLETED; - } - - *size = MIN((size_t)read_size, *size); - if (id == 0) - memcpy(data, buf + 1, *size); // Discard report ID - else - memcpy(data, buf, *size); - } - - free(buf); - return r; -} - -static int _hid_set_report(struct hid_device_priv *dev, HANDLE hid_handle, int id, void *data, - struct windows_transfer_priv *tp, size_t *size, OVERLAPPED *overlapped, int report_type) -{ - uint8_t *buf = NULL; - DWORD ioctl_code, write_size = (DWORD)*size; - - if (tp->hid_buffer != NULL) - usbi_dbg("program assertion failed: hid_buffer is not NULL"); - - if ((*size == 0) || (*size > MAX_HID_REPORT_SIZE)) { - usbi_dbg("invalid size (%u)", *size); - return LIBUSB_ERROR_INVALID_PARAM; - } - - switch (report_type) { - case HID_REPORT_TYPE_OUTPUT: - ioctl_code = IOCTL_HID_SET_OUTPUT_REPORT; - break; - case HID_REPORT_TYPE_FEATURE: - ioctl_code = IOCTL_HID_SET_FEATURE; - break; - default: - usbi_dbg("unknown HID report type %d", report_type); - return LIBUSB_ERROR_INVALID_PARAM; - } - - usbi_dbg("report ID: 0x%02X", id); - // When report IDs are not used (i.e. when id == 0), we must add - // a null report ID. Otherwise, we just use original data buffer - if (id == 0) - write_size++; - - buf = malloc(write_size); - if (buf == NULL) - return LIBUSB_ERROR_NO_MEM; - - if (id == 0) { - buf[0] = 0; - memcpy(buf + 1, data, *size); - } else { - // This seems like a waste, but if we don't duplicate the - // data, we'll get issues when freeing hid_buffer - memcpy(buf, data, *size); - if (buf[0] != id) - usbi_warn(NULL, "mismatched report ID (data is %02X, parameter is %02X)", buf[0], id); - } - - // NB: The size returned by DeviceIoControl doesn't include report IDs when not in use (0) - if (!DeviceIoControl(hid_handle, ioctl_code, buf, write_size, - buf, write_size, &write_size, overlapped)) { - if (GetLastError() != ERROR_IO_PENDING) { - usbi_dbg("Failed to Write HID Output Report: %s", windows_error_str(0)); - free(buf); - return LIBUSB_ERROR_IO; - } - tp->hid_buffer = buf; - tp->hid_dest = NULL; - return LIBUSB_SUCCESS; - } - - // Transfer completed synchronously - *size = write_size; - if (write_size == 0) - usbi_dbg("program assertion failed - write completed synchronously, but no data was written"); - - free(buf); - return LIBUSB_COMPLETED; -} - -static int _hid_class_request(struct hid_device_priv *dev, HANDLE hid_handle, int request_type, - int request, int value, int _index, void *data, struct windows_transfer_priv *tp, - size_t *size, OVERLAPPED *overlapped) -{ - int report_type = (value >> 8) & 0xFF; - int report_id = value & 0xFF; - - if ((LIBUSB_REQ_RECIPIENT(request_type) != LIBUSB_RECIPIENT_INTERFACE) - && (LIBUSB_REQ_RECIPIENT(request_type) != LIBUSB_RECIPIENT_DEVICE)) - return LIBUSB_ERROR_INVALID_PARAM; - - if (LIBUSB_REQ_OUT(request_type) && request == HID_REQ_SET_REPORT) - return _hid_set_report(dev, hid_handle, report_id, data, tp, size, overlapped, report_type); - - if (LIBUSB_REQ_IN(request_type) && request == HID_REQ_GET_REPORT) - return _hid_get_report(dev, hid_handle, report_id, data, tp, size, overlapped, report_type); - - return LIBUSB_ERROR_INVALID_PARAM; -} - - -/* - * HID API functions - */ -static int hid_init(int sub_api, struct libusb_context *ctx) -{ - DLL_GET_HANDLE(hid); - DLL_LOAD_FUNC(hid, HidD_GetAttributes, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetHidGuid, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetPreparsedData, TRUE); - DLL_LOAD_FUNC(hid, HidD_FreePreparsedData, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetManufacturerString, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetProductString, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetSerialNumberString, TRUE); - DLL_LOAD_FUNC(hid, HidP_GetCaps, TRUE); - DLL_LOAD_FUNC(hid, HidD_SetNumInputBuffers, TRUE); - DLL_LOAD_FUNC(hid, HidD_SetFeature, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetFeature, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetPhysicalDescriptor, TRUE); - DLL_LOAD_FUNC(hid, HidD_GetInputReport, FALSE); - DLL_LOAD_FUNC(hid, HidD_SetOutputReport, FALSE); - DLL_LOAD_FUNC(hid, HidD_FlushQueue, TRUE); - DLL_LOAD_FUNC(hid, HidP_GetValueCaps, TRUE); - - api_hid_available = true; - return LIBUSB_SUCCESS; -} - -static int hid_exit(int sub_api) -{ - DLL_FREE_HANDLE(hid); - - return LIBUSB_SUCCESS; -} - -// NB: open and close must ensure that they only handle interface of -// the right API type, as these functions can be called wholesale from -// composite_open(), with interfaces belonging to different APIs -static int hid_open(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - HIDD_ATTRIBUTES hid_attributes; - PHIDP_PREPARSED_DATA preparsed_data = NULL; - HIDP_CAPS capabilities; - HIDP_VALUE_CAPS *value_caps; - HANDLE hid_handle = INVALID_HANDLE_VALUE; - int i, j; - // report IDs handling - ULONG size[3]; - int nb_ids[2]; // zero and nonzero report IDs -#if defined(ENABLE_LOGGING) - const char *type[3] = {"input", "output", "feature"}; -#endif - - CHECK_HID_AVAILABLE; - - if (priv->hid == NULL) { - usbi_err(ctx, "program assertion failed - private HID structure is unitialized"); - return LIBUSB_ERROR_NOT_FOUND; - } - - for (i = 0; i < USB_MAXINTERFACES; i++) { - if ((priv->usb_interface[i].path != NULL) - && (priv->usb_interface[i].apib->id == USB_API_HID)) { - hid_handle = CreateFileA(priv->usb_interface[i].path, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - /* - * http://www.lvr.com/hidfaq.htm: Why do I receive "Access denied" when attempting to access my HID? - * "Windows 2000 and later have exclusive read/write access to HIDs that are configured as a system - * keyboards or mice. An application can obtain a handle to a system keyboard or mouse by not - * requesting READ or WRITE access with CreateFile. Applications can then use HidD_SetFeature and - * HidD_GetFeature (if the device supports Feature reports)." - */ - if (hid_handle == INVALID_HANDLE_VALUE) { - usbi_warn(ctx, "could not open HID device in R/W mode (keyboard or mouse?) - trying without"); - hid_handle = CreateFileA(priv->usb_interface[i].path, 0, FILE_SHARE_WRITE | FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - if (hid_handle == INVALID_HANDLE_VALUE) { - usbi_err(ctx, "could not open device %s (interface %d): %s", priv->path, i, windows_error_str(0)); - switch(GetLastError()) { - case ERROR_FILE_NOT_FOUND: // The device was disconnected - return LIBUSB_ERROR_NO_DEVICE; - case ERROR_ACCESS_DENIED: - return LIBUSB_ERROR_ACCESS; - default: - return LIBUSB_ERROR_IO; - } - } - priv->usb_interface[i].restricted_functionality = true; - } - handle_priv->interface_handle[i].api_handle = hid_handle; - } - } - - hid_attributes.Size = sizeof(hid_attributes); - do { - if (!HidD_GetAttributes(hid_handle, &hid_attributes)) { - usbi_err(ctx, "could not gain access to HID top collection (HidD_GetAttributes)"); - break; - } - - priv->hid->vid = hid_attributes.VendorID; - priv->hid->pid = hid_attributes.ProductID; - - // Set the maximum available input buffer size - for (i = 32; HidD_SetNumInputBuffers(hid_handle, i); i *= 2); - usbi_dbg("set maximum input buffer size to %d", i / 2); - - // Get the maximum input and output report size - if (!HidD_GetPreparsedData(hid_handle, &preparsed_data) || !preparsed_data) { - usbi_err(ctx, "could not read HID preparsed data (HidD_GetPreparsedData)"); - break; - } - if (HidP_GetCaps(preparsed_data, &capabilities) != HIDP_STATUS_SUCCESS) { - usbi_err(ctx, "could not parse HID capabilities (HidP_GetCaps)"); - break; - } - - // Find out if interrupt will need report IDs - size[0] = capabilities.NumberInputValueCaps; - size[1] = capabilities.NumberOutputValueCaps; - size[2] = capabilities.NumberFeatureValueCaps; - for (j = HidP_Input; j <= HidP_Feature; j++) { - usbi_dbg("%u HID %s report value(s) found", (unsigned int)size[j], type[j]); - priv->hid->uses_report_ids[j] = false; - if (size[j] > 0) { - value_caps = calloc(size[j], sizeof(HIDP_VALUE_CAPS)); - if ((value_caps != NULL) - && (HidP_GetValueCaps((HIDP_REPORT_TYPE)j, value_caps, &size[j], preparsed_data) == HIDP_STATUS_SUCCESS) - && (size[j] >= 1)) { - nb_ids[0] = 0; - nb_ids[1] = 0; - for (i = 0; i < (int)size[j]; i++) { - usbi_dbg(" Report ID: 0x%02X", value_caps[i].ReportID); - if (value_caps[i].ReportID != 0) - nb_ids[1]++; - else - nb_ids[0]++; - } - if (nb_ids[1] != 0) { - if (nb_ids[0] != 0) - usbi_warn(ctx, "program assertion failed: zero and nonzero report IDs used for %s", - type[j]); - priv->hid->uses_report_ids[j] = true; - } - } else { - usbi_warn(ctx, " could not process %s report IDs", type[j]); - } - free(value_caps); - } - } - - // Set the report sizes - priv->hid->input_report_size = capabilities.InputReportByteLength; - priv->hid->output_report_size = capabilities.OutputReportByteLength; - priv->hid->feature_report_size = capabilities.FeatureReportByteLength; - - // Fetch string descriptors - priv->hid->string_index[0] = priv->dev_descriptor.iManufacturer; - if (priv->hid->string_index[0] != 0) - HidD_GetManufacturerString(hid_handle, priv->hid->string[0], sizeof(priv->hid->string[0])); - else - priv->hid->string[0][0] = 0; - - priv->hid->string_index[1] = priv->dev_descriptor.iProduct; - if (priv->hid->string_index[1] != 0) - HidD_GetProductString(hid_handle, priv->hid->string[1], sizeof(priv->hid->string[1])); - else - priv->hid->string[1][0] = 0; - - priv->hid->string_index[2] = priv->dev_descriptor.iSerialNumber; - if (priv->hid->string_index[2] != 0) - HidD_GetSerialNumberString(hid_handle, priv->hid->string[2], sizeof(priv->hid->string[2])); - else - priv->hid->string[2][0] = 0; - } while(0); - - if (preparsed_data) - HidD_FreePreparsedData(preparsed_data); - - return LIBUSB_SUCCESS; -} - -static void hid_close(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - HANDLE file_handle; - int i; - - if (!api_hid_available) - return; - - for (i = 0; i < USB_MAXINTERFACES; i++) { - if (priv->usb_interface[i].apib->id == USB_API_HID) { - file_handle = handle_priv->interface_handle[i].api_handle; - if (HANDLE_VALID(file_handle)) - CloseHandle(file_handle); - } - } -} - -static int hid_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - CHECK_HID_AVAILABLE; - - // NB: Disconnection detection is not possible in this function - if (priv->usb_interface[iface].path == NULL) - return LIBUSB_ERROR_NOT_FOUND; // invalid iface - - // We use dev_handle as a flag for interface claimed - if (handle_priv->interface_handle[iface].dev_handle == INTERFACE_CLAIMED) - return LIBUSB_ERROR_BUSY; // already claimed - - - handle_priv->interface_handle[iface].dev_handle = INTERFACE_CLAIMED; - - usbi_dbg("claimed interface %d", iface); - handle_priv->active_interface = iface; - - return LIBUSB_SUCCESS; -} - -static int hid_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - CHECK_HID_AVAILABLE; - - if (priv->usb_interface[iface].path == NULL) - return LIBUSB_ERROR_NOT_FOUND; // invalid iface - - if (handle_priv->interface_handle[iface].dev_handle != INTERFACE_CLAIMED) - return LIBUSB_ERROR_NOT_FOUND; // invalid iface - - handle_priv->interface_handle[iface].dev_handle = INVALID_HANDLE_VALUE; - - return LIBUSB_SUCCESS; -} - -static int hid_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - - CHECK_HID_AVAILABLE; - - if (altsetting > 255) - return LIBUSB_ERROR_INVALID_PARAM; - - if (altsetting != 0) { - usbi_err(ctx, "set interface altsetting not supported for altsetting >0"); - return LIBUSB_ERROR_NOT_SUPPORTED; - } - - return LIBUSB_SUCCESS; -} - -static int hid_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - WINUSB_SETUP_PACKET *setup = (WINUSB_SETUP_PACKET *)transfer->buffer; - HANDLE hid_handle; - struct winfd wfd; - int current_interface, config; - size_t size; - int r = LIBUSB_ERROR_INVALID_PARAM; - - CHECK_HID_AVAILABLE; - - transfer_priv->pollable_fd = INVALID_WINFD; - safe_free(transfer_priv->hid_buffer); - transfer_priv->hid_dest = NULL; - size = transfer->length - LIBUSB_CONTROL_SETUP_SIZE; - - if (size > MAX_CTRL_BUFFER_LENGTH) - return LIBUSB_ERROR_INVALID_PARAM; - - current_interface = get_valid_interface(transfer->dev_handle, USB_API_HID); - if (current_interface < 0) { - if (auto_claim(transfer, ¤t_interface, USB_API_HID) != LIBUSB_SUCCESS) - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("will use interface %d", current_interface); - hid_handle = handle_priv->interface_handle[current_interface].api_handle; - // Always use the handle returned from usbi_create_fd (wfd.handle) - wfd = usbi_create_fd(hid_handle, RW_READ, NULL, NULL); - if (wfd.fd < 0) - return LIBUSB_ERROR_NOT_FOUND; - - switch(LIBUSB_REQ_TYPE(setup->request_type)) { - case LIBUSB_REQUEST_TYPE_STANDARD: - switch(setup->request) { - case LIBUSB_REQUEST_GET_DESCRIPTOR: - r = _hid_get_descriptor(priv->hid, wfd.handle, LIBUSB_REQ_RECIPIENT(setup->request_type), - (setup->value >> 8) & 0xFF, setup->value & 0xFF, transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE, &size); - break; - case LIBUSB_REQUEST_GET_CONFIGURATION: - r = windows_get_configuration(transfer->dev_handle, &config); - if (r == LIBUSB_SUCCESS) { - size = 1; - ((uint8_t *)transfer->buffer)[LIBUSB_CONTROL_SETUP_SIZE] = (uint8_t)config; - r = LIBUSB_COMPLETED; - } - break; - case LIBUSB_REQUEST_SET_CONFIGURATION: - if (setup->value == priv->active_config) { - r = LIBUSB_COMPLETED; - } else { - usbi_warn(ctx, "cannot set configuration other than the default one"); - r = LIBUSB_ERROR_NOT_SUPPORTED; - } - break; - case LIBUSB_REQUEST_GET_INTERFACE: - size = 1; - ((uint8_t *)transfer->buffer)[LIBUSB_CONTROL_SETUP_SIZE] = 0; - r = LIBUSB_COMPLETED; - break; - case LIBUSB_REQUEST_SET_INTERFACE: - r = hid_set_interface_altsetting(0, transfer->dev_handle, setup->index, setup->value); - if (r == LIBUSB_SUCCESS) - r = LIBUSB_COMPLETED; - break; - default: - usbi_warn(ctx, "unsupported HID control request"); - r = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - break; - case LIBUSB_REQUEST_TYPE_CLASS: - r = _hid_class_request(priv->hid, wfd.handle, setup->request_type, setup->request, setup->value, - setup->index, transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE, transfer_priv, - &size, wfd.overlapped); - break; - default: - usbi_warn(ctx, "unsupported HID control request"); - r = LIBUSB_ERROR_NOT_SUPPORTED; - break; - } - - if (r == LIBUSB_COMPLETED) { - // Force request to be completed synchronously. Transferred size has been set by previous call - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - // http://msdn.microsoft.com/en-us/library/ms684342%28VS.85%29.aspx - // set InternalHigh to the number of bytes transferred - wfd.overlapped->InternalHigh = (DWORD)size; - r = LIBUSB_SUCCESS; - } - - if (r == LIBUSB_SUCCESS) { - // Use priv_transfer to store data needed for async polling - transfer_priv->pollable_fd = wfd; - transfer_priv->interface_number = (uint8_t)current_interface; - } else { - usbi_free_fd(&wfd); - } - - return r; -} - -static int hid_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - struct winfd wfd; - HANDLE hid_handle; - bool direction_in, ret; - int current_interface, length; - DWORD size; - int r = LIBUSB_SUCCESS; - - CHECK_HID_AVAILABLE; - - transfer_priv->pollable_fd = INVALID_WINFD; - transfer_priv->hid_dest = NULL; - safe_free(transfer_priv->hid_buffer); - - current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("matched endpoint %02X with interface %d", transfer->endpoint, current_interface); - - hid_handle = handle_priv->interface_handle[current_interface].api_handle; - direction_in = transfer->endpoint & LIBUSB_ENDPOINT_IN; - - wfd = usbi_create_fd(hid_handle, direction_in?RW_READ:RW_WRITE, NULL, NULL); - // Always use the handle returned from usbi_create_fd (wfd.handle) - if (wfd.fd < 0) - return LIBUSB_ERROR_NO_MEM; - - // If report IDs are not in use, an extra prefix byte must be added - if (((direction_in) && (!priv->hid->uses_report_ids[0])) - || ((!direction_in) && (!priv->hid->uses_report_ids[1]))) - length = transfer->length + 1; - else - length = transfer->length; - - // Add a trailing byte to detect overflows on input - transfer_priv->hid_buffer = calloc(1, length + 1); - if (transfer_priv->hid_buffer == NULL) - return LIBUSB_ERROR_NO_MEM; - - transfer_priv->hid_expected_size = length; - - if (direction_in) { - transfer_priv->hid_dest = transfer->buffer; - usbi_dbg("reading %d bytes (report ID: 0x00)", length); - ret = ReadFile(wfd.handle, transfer_priv->hid_buffer, length + 1, &size, wfd.overlapped); - } else { - if (!priv->hid->uses_report_ids[1]) - memcpy(transfer_priv->hid_buffer + 1, transfer->buffer, transfer->length); - else - // We could actually do without the calloc and memcpy in this case - memcpy(transfer_priv->hid_buffer, transfer->buffer, transfer->length); - - usbi_dbg("writing %d bytes (report ID: 0x%02X)", length, transfer_priv->hid_buffer[0]); - ret = WriteFile(wfd.handle, transfer_priv->hid_buffer, length, &size, wfd.overlapped); - } - - if (!ret) { - if (GetLastError() != ERROR_IO_PENDING) { - usbi_err(ctx, "HID transfer failed: %s", windows_error_str(0)); - usbi_free_fd(&wfd); - safe_free(transfer_priv->hid_buffer); - return LIBUSB_ERROR_IO; - } - } else { - // Only write operations that completed synchronously need to free up - // hid_buffer. For reads, copy_transfer_data() handles that process. - if (!direction_in) - safe_free(transfer_priv->hid_buffer); - - if (size == 0) { - usbi_err(ctx, "program assertion failed - no data was transferred"); - size = 1; - } - if (size > (size_t)length) { - usbi_err(ctx, "OVERFLOW!"); - r = LIBUSB_ERROR_OVERFLOW; - } - wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; - wfd.overlapped->InternalHigh = size; - } - - transfer_priv->pollable_fd = wfd; - transfer_priv->interface_number = (uint8_t)current_interface; - - return r; -} - -static int hid_abort_transfers(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - HANDLE hid_handle; - int current_interface; - - CHECK_HID_AVAILABLE; - - current_interface = transfer_priv->interface_number; - hid_handle = handle_priv->interface_handle[current_interface].api_handle; - CancelIo(hid_handle); - - return LIBUSB_SUCCESS; -} - -static int hid_reset_device(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - HANDLE hid_handle; - int current_interface; - - CHECK_HID_AVAILABLE; - - // Flushing the queues on all interfaces is the best we can achieve - for (current_interface = 0; current_interface < USB_MAXINTERFACES; current_interface++) { - hid_handle = handle_priv->interface_handle[current_interface].api_handle; - if (HANDLE_VALID(hid_handle)) - HidD_FlushQueue(hid_handle); - } - - return LIBUSB_SUCCESS; -} - -static int hid_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - HANDLE hid_handle; - int current_interface; - - CHECK_HID_AVAILABLE; - - current_interface = interface_by_endpoint(priv, handle_priv, endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cannot clear"); - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_dbg("matched endpoint %02X with interface %d", endpoint, current_interface); - hid_handle = handle_priv->interface_handle[current_interface].api_handle; - - // No endpoint selection with Microsoft's implementation, so we try to flush the - // whole interface. Should be OK for most case scenarios - if (!HidD_FlushQueue(hid_handle)) { - usbi_err(ctx, "Flushing of HID queue failed: %s", windows_error_str(0)); - // Device was probably disconnected - return LIBUSB_ERROR_NO_DEVICE; - } - - return LIBUSB_SUCCESS; -} - -// This extra function is only needed for HID -static int hid_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - int r = LIBUSB_TRANSFER_COMPLETED; - uint32_t corrected_size = io_size; - - if (transfer_priv->hid_buffer != NULL) { - // If we have a valid hid_buffer, it means the transfer was async - if (transfer_priv->hid_dest != NULL) { // Data readout - if (corrected_size > 0) { - // First, check for overflow - if (corrected_size > transfer_priv->hid_expected_size) { - usbi_err(ctx, "OVERFLOW!"); - corrected_size = (uint32_t)transfer_priv->hid_expected_size; - r = LIBUSB_TRANSFER_OVERFLOW; - } - - if (transfer_priv->hid_buffer[0] == 0) { - // Discard the 1 byte report ID prefix - corrected_size--; - memcpy(transfer_priv->hid_dest, transfer_priv->hid_buffer + 1, corrected_size); - } else { - memcpy(transfer_priv->hid_dest, transfer_priv->hid_buffer, corrected_size); - } - } - transfer_priv->hid_dest = NULL; - } - // For write, we just need to free the hid buffer - safe_free(transfer_priv->hid_buffer); - } - - itransfer->transferred += corrected_size; - return r; -} - - -/* - * Composite API functions - */ -static int composite_init(int sub_api, struct libusb_context *ctx) -{ - return LIBUSB_SUCCESS; -} - -static int composite_exit(int sub_api) -{ - return LIBUSB_SUCCESS; -} - -static int composite_open(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - int r = LIBUSB_ERROR_NOT_FOUND; - uint8_t i; - // SUB_API_MAX + 1 as the SUB_API_MAX pos is used to indicate availability of HID - bool available[SUB_API_MAX + 1] = { 0 }; - - for (i = 0; i < USB_MAXINTERFACES; i++) { - switch (priv->usb_interface[i].apib->id) { - case USB_API_WINUSBX: - if (priv->usb_interface[i].sub_api != SUB_API_NOTSET) - available[priv->usb_interface[i].sub_api] = true; - break; - case USB_API_HID: - available[SUB_API_MAX] = true; - break; - default: - break; - } - } - - for (i = 0; i < SUB_API_MAX; i++) { // WinUSB-like drivers - if (available[i]) { - r = usb_api_backend[USB_API_WINUSBX].open(i, dev_handle); - if (r != LIBUSB_SUCCESS) - return r; - } - } - - if (available[SUB_API_MAX]) // HID driver - r = hid_open(SUB_API_NOTSET, dev_handle); - - return r; -} - -static void composite_close(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - uint8_t i; - // SUB_API_MAX + 1 as the SUB_API_MAX pos is used to indicate availability of HID - bool available[SUB_API_MAX + 1] = { 0 }; - - for (i = 0; i < USB_MAXINTERFACES; i++) { - switch (priv->usb_interface[i].apib->id) { - case USB_API_WINUSBX: - if (priv->usb_interface[i].sub_api != SUB_API_NOTSET) - available[priv->usb_interface[i].sub_api] = true; - break; - case USB_API_HID: - available[SUB_API_MAX] = true; - break; - default: - break; - } - } - - for (i = 0; i < SUB_API_MAX; i++) { // WinUSB-like drivers - if (available[i]) - usb_api_backend[USB_API_WINUSBX].close(i, dev_handle); - } - - if (available[SUB_API_MAX]) // HID driver - hid_close(SUB_API_NOTSET, dev_handle); -} - -static int composite_claim_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - return priv->usb_interface[iface].apib-> - claim_interface(priv->usb_interface[iface].sub_api, dev_handle, iface); -} - -static int composite_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - return priv->usb_interface[iface].apib-> - set_interface_altsetting(priv->usb_interface[iface].sub_api, dev_handle, iface, altsetting); -} - -static int composite_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - - return priv->usb_interface[iface].apib-> - release_interface(priv->usb_interface[iface].sub_api, dev_handle, iface); -} - -static int composite_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - struct libusb_config_descriptor *conf_desc; - WINUSB_SETUP_PACKET *setup = (WINUSB_SETUP_PACKET *)transfer->buffer; - int iface, pass, r; - - // Interface shouldn't matter for control, but it does in practice, with Windows' - // restrictions with regards to accessing HID keyboards and mice. Try to target - // a specific interface first, if possible. - switch (LIBUSB_REQ_RECIPIENT(setup->request_type)) { - case LIBUSB_RECIPIENT_INTERFACE: - iface = setup->index & 0xFF; - break; - case LIBUSB_RECIPIENT_ENDPOINT: - r = libusb_get_active_config_descriptor(transfer->dev_handle->dev, &conf_desc); - if (r == LIBUSB_SUCCESS) { - iface = get_interface_by_endpoint(conf_desc, (setup->index & 0xFF)); - libusb_free_config_descriptor(conf_desc); - break; - } - // Fall through if not able to determine interface - default: - iface = -1; - break; - } - - // Try and target a specific interface if the control setup indicates such - if ((iface >= 0) && (iface < USB_MAXINTERFACES)) { - usbi_dbg("attempting control transfer targeted to interface %d", iface); - if (priv->usb_interface[iface].path != NULL) { - r = priv->usb_interface[iface].apib->submit_control_transfer(priv->usb_interface[iface].sub_api, itransfer); - if (r == LIBUSB_SUCCESS) - return r; - } - } - - // Either not targeted to a specific interface or no luck in doing so. - // Try a 2 pass approach with all interfaces. - for (pass = 0; pass < 2; pass++) { - for (iface = 0; iface < USB_MAXINTERFACES; iface++) { - if (priv->usb_interface[iface].path != NULL) { - if ((pass == 0) && (priv->usb_interface[iface].restricted_functionality)) { - usbi_dbg("trying to skip restricted interface #%d (HID keyboard or mouse?)", iface); - continue; - } - usbi_dbg("using interface %d", iface); - r = priv->usb_interface[iface].apib->submit_control_transfer(priv->usb_interface[iface].sub_api, itransfer); - // If not supported on this API, it may be supported on another, so don't give up yet!! - if (r == LIBUSB_ERROR_NOT_SUPPORTED) - continue; - return r; - } - } - } - - usbi_err(ctx, "no libusb supported interfaces to complete request"); - return LIBUSB_ERROR_NOT_FOUND; -} - -static int composite_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int current_interface; - - current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); - return LIBUSB_ERROR_NOT_FOUND; - } - - return priv->usb_interface[current_interface].apib-> - submit_bulk_transfer(priv->usb_interface[current_interface].sub_api, itransfer); -} - -static int composite_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer) { - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - int current_interface; - - current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); - return LIBUSB_ERROR_NOT_FOUND; - } - - return priv->usb_interface[current_interface].apib-> - submit_iso_transfer(priv->usb_interface[current_interface].sub_api, itransfer); -} - -static int composite_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint) -{ - struct libusb_context *ctx = DEVICE_CTX(dev_handle->dev); - struct windows_device_handle_priv *handle_priv = _device_handle_priv(dev_handle); - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - int current_interface; - - current_interface = interface_by_endpoint(priv, handle_priv, endpoint); - if (current_interface < 0) { - usbi_err(ctx, "unable to match endpoint to an open interface - cannot clear"); - return LIBUSB_ERROR_NOT_FOUND; - } - - return priv->usb_interface[current_interface].apib-> - clear_halt(priv->usb_interface[current_interface].sub_api, dev_handle, endpoint); -} - -static int composite_abort_control(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - - return priv->usb_interface[transfer_priv->interface_number].apib-> - abort_control(priv->usb_interface[transfer_priv->interface_number].sub_api, itransfer); -} - -static int composite_abort_transfers(int sub_api, struct usbi_transfer *itransfer) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - - return priv->usb_interface[transfer_priv->interface_number].apib-> - abort_transfers(priv->usb_interface[transfer_priv->interface_number].sub_api, itransfer); -} - -static int composite_reset_device(int sub_api, struct libusb_device_handle *dev_handle) -{ - struct windows_device_priv *priv = _device_priv(dev_handle->dev); - int r; - uint8_t i; - bool available[SUB_API_MAX]; - - for (i = 0; i < SUB_API_MAX; i++) - available[i] = false; - - for (i = 0; i < USB_MAXINTERFACES; i++) { - if ((priv->usb_interface[i].apib->id == USB_API_WINUSBX) - && (priv->usb_interface[i].sub_api != SUB_API_NOTSET)) - available[priv->usb_interface[i].sub_api] = true; - } - - for (i = 0; i < SUB_API_MAX; i++) { - if (available[i]) { - r = usb_api_backend[USB_API_WINUSBX].reset_device(i, dev_handle); - if (r != LIBUSB_SUCCESS) - return r; - } - } - - return LIBUSB_SUCCESS; -} - -static int composite_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size) -{ - struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); - struct windows_transfer_priv *transfer_priv = usbi_transfer_get_os_priv(itransfer); - struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); - - return priv->usb_interface[transfer_priv->interface_number].apib-> - copy_transfer_data(priv->usb_interface[transfer_priv->interface_number].sub_api, itransfer, io_size); -} - -#endif /* !USE_USBDK */ diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.h b/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.h deleted file mode 100644 index b7b9cd91..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/os/windows_winusb.h +++ /dev/null @@ -1,937 +0,0 @@ -/* - * Windows backend for libusb 1.0 - * Copyright © 2009-2012 Pete Batard - * With contributions from Michael Plante, Orin Eman et al. - * Parts of this code adapted from libusb-win32-v1 by Stephan Meyer - * Major code testing contribution by Xiaofan Chen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#pragma once - -#include "windows_common.h" -#include "windows_nt_common.h" - -#if defined(_MSC_VER) -// disable /W4 MSVC warnings that are benign -#pragma warning(disable:4100) // unreferenced formal parameter -#pragma warning(disable:4127) // conditional expression is constant -#pragma warning(disable:4201) // nameless struct/union -#pragma warning(disable:4214) // bit field types other than int -#pragma warning(disable:4996) // deprecated API calls -#pragma warning(disable:28159) // more deprecated API calls -#endif - -// Missing from MSVC6 setupapi.h -#if !defined(SPDRP_ADDRESS) -#define SPDRP_ADDRESS 28 -#endif -#if !defined(SPDRP_INSTALL_STATE) -#define SPDRP_INSTALL_STATE 34 -#endif - -#define MAX_CTRL_BUFFER_LENGTH 4096 -#define MAX_USB_DEVICES 256 -#define MAX_USB_STRING_LENGTH 128 -#define MAX_HID_REPORT_SIZE 1024 -#define MAX_HID_DESCRIPTOR_SIZE 256 -#define MAX_GUID_STRING_LENGTH 40 -#define MAX_PATH_LENGTH 128 -#define MAX_KEY_LENGTH 256 -#define LIST_SEPARATOR ';' - -// Handle code for HID interface that have been claimed ("dibs") -#define INTERFACE_CLAIMED ((HANDLE)(intptr_t)0xD1B5) -// Additional return code for HID operations that completed synchronously -#define LIBUSB_COMPLETED (LIBUSB_SUCCESS + 1) - -// http://msdn.microsoft.com/en-us/library/ff545978.aspx -// http://msdn.microsoft.com/en-us/library/ff545972.aspx -// http://msdn.microsoft.com/en-us/library/ff545982.aspx -#if !defined(GUID_DEVINTERFACE_USB_HOST_CONTROLLER) -const GUID GUID_DEVINTERFACE_USB_HOST_CONTROLLER = { 0x3ABF6F2D, 0x71C4, 0x462A, {0x8A, 0x92, 0x1E, 0x68, 0x61, 0xE6, 0xAF, 0x27} }; -#endif -#if !defined(GUID_DEVINTERFACE_USB_DEVICE) -const GUID GUID_DEVINTERFACE_USB_DEVICE = { 0xA5DCBF10, 0x6530, 0x11D2, {0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED} }; -#endif -#if !defined(GUID_DEVINTERFACE_USB_HUB) -const GUID GUID_DEVINTERFACE_USB_HUB = { 0xF18A0E88, 0xC30C, 0x11D0, {0x88, 0x15, 0x00, 0xA0, 0xC9, 0x06, 0xBE, 0xD8} }; -#endif -#if !defined(GUID_DEVINTERFACE_LIBUSB0_FILTER) -const GUID GUID_DEVINTERFACE_LIBUSB0_FILTER = { 0xF9F3FF14, 0xAE21, 0x48A0, {0x8A, 0x25, 0x80, 0x11, 0xA7, 0xA9, 0x31, 0xD9} }; -#endif - - -/* - * Multiple USB API backend support - */ -#define USB_API_UNSUPPORTED 0 -#define USB_API_HUB 1 -#define USB_API_COMPOSITE 2 -#define USB_API_WINUSBX 3 -#define USB_API_HID 4 -#define USB_API_MAX 5 -// The following is used to indicate if the HID or composite extra props have already been set. -#define USB_API_SET (1 << USB_API_MAX) - -// Sub-APIs for WinUSB-like driver APIs (WinUSB, libusbK, libusb-win32 through the libusbK DLL) -// Must have the same values as the KUSB_DRVID enum from libusbk.h -#define SUB_API_NOTSET -1 -#define SUB_API_LIBUSBK 0 -#define SUB_API_LIBUSB0 1 -#define SUB_API_WINUSB 2 -#define SUB_API_MAX 3 - -#define WINUSBX_DRV_NAMES {"libusbK", "libusb0", "WinUSB"} - -struct windows_usb_api_backend { - const uint8_t id; - const char *designation; - const char **driver_name_list; // Driver name, without .sys, e.g. "usbccgp" - const uint8_t nb_driver_names; - int (*init)(int sub_api, struct libusb_context *ctx); - int (*exit)(int sub_api); - int (*open)(int sub_api, struct libusb_device_handle *dev_handle); - void (*close)(int sub_api, struct libusb_device_handle *dev_handle); - int (*configure_endpoints)(int sub_api, struct libusb_device_handle *dev_handle, int iface); - int (*claim_interface)(int sub_api, struct libusb_device_handle *dev_handle, int iface); - int (*set_interface_altsetting)(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting); - int (*release_interface)(int sub_api, struct libusb_device_handle *dev_handle, int iface); - int (*clear_halt)(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint); - int (*reset_device)(int sub_api, struct libusb_device_handle *dev_handle); - int (*submit_bulk_transfer)(int sub_api, struct usbi_transfer *itransfer); - int (*submit_iso_transfer)(int sub_api, struct usbi_transfer *itransfer); - int (*submit_control_transfer)(int sub_api, struct usbi_transfer *itransfer); - int (*abort_control)(int sub_api, struct usbi_transfer *itransfer); - int (*abort_transfers)(int sub_api, struct usbi_transfer *itransfer); - int (*copy_transfer_data)(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size); -}; - -extern const struct windows_usb_api_backend usb_api_backend[USB_API_MAX]; - -#define PRINT_UNSUPPORTED_API(fname) \ - usbi_dbg("unsupported API call for '" \ - #fname "' (unrecognized device driver)"); \ - return LIBUSB_ERROR_NOT_SUPPORTED; - -/* - * private structures definition - * with inline pseudo constructors/destructors - */ - -// TODO (v2+): move hid desc to libusb.h? -struct libusb_hid_descriptor { - uint8_t bLength; - uint8_t bDescriptorType; - uint16_t bcdHID; - uint8_t bCountryCode; - uint8_t bNumDescriptors; - uint8_t bClassDescriptorType; - uint16_t wClassDescriptorLength; -}; - -#define LIBUSB_DT_HID_SIZE 9 -#define HID_MAX_CONFIG_DESC_SIZE (LIBUSB_DT_CONFIG_SIZE + LIBUSB_DT_INTERFACE_SIZE \ - + LIBUSB_DT_HID_SIZE + 2 * LIBUSB_DT_ENDPOINT_SIZE) -#define HID_MAX_REPORT_SIZE 1024 -#define HID_IN_EP 0x81 -#define HID_OUT_EP 0x02 -#define LIBUSB_REQ_RECIPIENT(request_type) ((request_type) & 0x1F) -#define LIBUSB_REQ_TYPE(request_type) ((request_type) & (0x03 << 5)) -#define LIBUSB_REQ_IN(request_type) ((request_type) & LIBUSB_ENDPOINT_IN) -#define LIBUSB_REQ_OUT(request_type) (!LIBUSB_REQ_IN(request_type)) - -// The following are used for HID reports IOCTLs -#define HID_CTL_CODE(id) \ - CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_NEITHER, FILE_ANY_ACCESS) -#define HID_BUFFER_CTL_CODE(id) \ - CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_BUFFERED, FILE_ANY_ACCESS) -#define HID_IN_CTL_CODE(id) \ - CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_IN_DIRECT, FILE_ANY_ACCESS) -#define HID_OUT_CTL_CODE(id) \ - CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_OUT_DIRECT, FILE_ANY_ACCESS) - -#define IOCTL_HID_GET_FEATURE HID_OUT_CTL_CODE(100) -#define IOCTL_HID_GET_INPUT_REPORT HID_OUT_CTL_CODE(104) -#define IOCTL_HID_SET_FEATURE HID_IN_CTL_CODE(100) -#define IOCTL_HID_SET_OUTPUT_REPORT HID_IN_CTL_CODE(101) - -enum libusb_hid_request_type { - HID_REQ_GET_REPORT = 0x01, - HID_REQ_GET_IDLE = 0x02, - HID_REQ_GET_PROTOCOL = 0x03, - HID_REQ_SET_REPORT = 0x09, - HID_REQ_SET_IDLE = 0x0A, - HID_REQ_SET_PROTOCOL = 0x0B -}; - -enum libusb_hid_report_type { - HID_REPORT_TYPE_INPUT = 0x01, - HID_REPORT_TYPE_OUTPUT = 0x02, - HID_REPORT_TYPE_FEATURE = 0x03 -}; - -struct hid_device_priv { - uint16_t vid; - uint16_t pid; - uint8_t config; - uint8_t nb_interfaces; - bool uses_report_ids[3]; // input, ouptput, feature - uint16_t input_report_size; - uint16_t output_report_size; - uint16_t feature_report_size; - WCHAR string[3][MAX_USB_STRING_LENGTH]; - uint8_t string_index[3]; // man, prod, ser -}; - -struct windows_device_priv { - uint8_t depth; // distance to HCD - uint8_t port; // port number on the hub - uint8_t active_config; - struct windows_usb_api_backend const *apib; - char *path; // device interface path - int sub_api; // for WinUSB-like APIs - struct { - char *path; // each interface needs a device interface path, - struct windows_usb_api_backend const *apib; // an API backend (multiple drivers support), - int sub_api; - int8_t nb_endpoints; // and a set of endpoint addresses (USB_MAXENDPOINTS) - uint8_t *endpoint; - bool restricted_functionality; // indicates if the interface functionality is restricted - // by Windows (eg. HID keyboards or mice cannot do R/W) - } usb_interface[USB_MAXINTERFACES]; - struct hid_device_priv *hid; - USB_DEVICE_DESCRIPTOR dev_descriptor; - unsigned char **config_descriptor; // list of pointers to the cached config descriptors -}; - -static inline struct windows_device_priv *_device_priv(struct libusb_device *dev) -{ - return (struct windows_device_priv *)dev->os_priv; -} - -static inline struct windows_device_priv *windows_device_priv_init(struct libusb_device *dev) -{ - struct windows_device_priv *p = _device_priv(dev); - int i; - - p->apib = &usb_api_backend[USB_API_UNSUPPORTED]; - p->sub_api = SUB_API_NOTSET; - for (i = 0; i < USB_MAXINTERFACES; i++) { - p->usb_interface[i].apib = &usb_api_backend[USB_API_UNSUPPORTED]; - p->usb_interface[i].sub_api = SUB_API_NOTSET; - } - - return p; -} - -static inline void windows_device_priv_release(struct libusb_device *dev) -{ - struct windows_device_priv *p = _device_priv(dev); - int i; - - free(p->path); - if ((dev->num_configurations > 0) && (p->config_descriptor != NULL)) { - for (i = 0; i < dev->num_configurations; i++) - free(p->config_descriptor[i]); - } - free(p->config_descriptor); - free(p->hid); - for (i = 0; i < USB_MAXINTERFACES; i++) { - free(p->usb_interface[i].path); - free(p->usb_interface[i].endpoint); - } -} - -struct interface_handle_t { - HANDLE dev_handle; // WinUSB needs an extra handle for the file - HANDLE api_handle; // used by the API to communicate with the device -}; - -struct windows_device_handle_priv { - int active_interface; - struct interface_handle_t interface_handle[USB_MAXINTERFACES]; - int autoclaim_count[USB_MAXINTERFACES]; // For auto-release -}; - -static inline struct windows_device_handle_priv *_device_handle_priv( - struct libusb_device_handle *handle) -{ - return (struct windows_device_handle_priv *)handle->os_priv; -} - -// used for async polling functions -struct windows_transfer_priv { - struct winfd pollable_fd; - uint8_t interface_number; - uint8_t *hid_buffer; // 1 byte extended data buffer, required for HID - uint8_t *hid_dest; // transfer buffer destination, required for HID - size_t hid_expected_size; -}; - -// used to match a device driver (including filter drivers) against a supported API -struct driver_lookup { - char list[MAX_KEY_LENGTH + 1]; // REG_MULTI_SZ list of services (driver) names - const DWORD reg_prop; // SPDRP registry key to use to retrieve list - const char* designation; // internal designation (for debug output) -}; - -/* OLE32 dependency */ -DLL_DECLARE_HANDLE(OLE32); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, HRESULT, p, CLSIDFromString, (LPCOLESTR, LPCLSID)); - -/* Kernel32 dependencies */ -DLL_DECLARE_HANDLE(Kernel32); -/* This call is only available from XP SP2 */ -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, IsWow64Process, (HANDLE, PBOOL)); - -/* SetupAPI dependencies */ -DLL_DECLARE_HANDLE(SetupAPI); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, HDEVINFO, p, SetupDiGetClassDevsA, (const GUID*, PCSTR, HWND, DWORD)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, SetupDiEnumDeviceInfo, (HDEVINFO, DWORD, PSP_DEVINFO_DATA)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, SetupDiEnumDeviceInterfaces, (HDEVINFO, PSP_DEVINFO_DATA, - const GUID*, DWORD, PSP_DEVICE_INTERFACE_DATA)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, SetupDiGetDeviceInterfaceDetailA, (HDEVINFO, PSP_DEVICE_INTERFACE_DATA, - PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DWORD, PDWORD, PSP_DEVINFO_DATA)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, SetupDiDestroyDeviceInfoList, (HDEVINFO)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, HKEY, p, SetupDiOpenDevRegKey, (HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, REGSAM)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, BOOL, p, SetupDiGetDeviceRegistryPropertyA, (HDEVINFO, - PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, HKEY, p, SetupDiOpenDeviceInterfaceRegKey, (HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, DWORD)); - -/* AdvAPI32 dependencies */ -DLL_DECLARE_HANDLE(AdvAPI32); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, LONG, p, RegQueryValueExW, (HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD)); -DLL_DECLARE_FUNC_PREFIXED(WINAPI, LONG, p, RegCloseKey, (HKEY)); - -/* - * Windows DDK API definitions. Most of it copied from MinGW's includes - */ -typedef DWORD DEVNODE, DEVINST; -typedef DEVNODE *PDEVNODE, *PDEVINST; -typedef DWORD RETURN_TYPE; -typedef RETURN_TYPE CONFIGRET; - -#define CR_SUCCESS 0x00000000 -#define CR_NO_SUCH_DEVNODE 0x0000000D - -#define USB_DEVICE_DESCRIPTOR_TYPE LIBUSB_DT_DEVICE -#define USB_CONFIGURATION_DESCRIPTOR_TYPE LIBUSB_DT_CONFIG -#define USB_STRING_DESCRIPTOR_TYPE LIBUSB_DT_STRING -#define USB_INTERFACE_DESCRIPTOR_TYPE LIBUSB_DT_INTERFACE -#define USB_ENDPOINT_DESCRIPTOR_TYPE LIBUSB_DT_ENDPOINT - -#define USB_REQUEST_GET_STATUS LIBUSB_REQUEST_GET_STATUS -#define USB_REQUEST_CLEAR_FEATURE LIBUSB_REQUEST_CLEAR_FEATURE -#define USB_REQUEST_SET_FEATURE LIBUSB_REQUEST_SET_FEATURE -#define USB_REQUEST_SET_ADDRESS LIBUSB_REQUEST_SET_ADDRESS -#define USB_REQUEST_GET_DESCRIPTOR LIBUSB_REQUEST_GET_DESCRIPTOR -#define USB_REQUEST_SET_DESCRIPTOR LIBUSB_REQUEST_SET_DESCRIPTOR -#define USB_REQUEST_GET_CONFIGURATION LIBUSB_REQUEST_GET_CONFIGURATION -#define USB_REQUEST_SET_CONFIGURATION LIBUSB_REQUEST_SET_CONFIGURATION -#define USB_REQUEST_GET_INTERFACE LIBUSB_REQUEST_GET_INTERFACE -#define USB_REQUEST_SET_INTERFACE LIBUSB_REQUEST_SET_INTERFACE -#define USB_REQUEST_SYNC_FRAME LIBUSB_REQUEST_SYNCH_FRAME - -#define USB_GET_NODE_INFORMATION 258 -#define USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION 260 -#define USB_GET_NODE_CONNECTION_NAME 261 -#define USB_GET_HUB_CAPABILITIES 271 -#if !defined(USB_GET_NODE_CONNECTION_INFORMATION_EX) -#define USB_GET_NODE_CONNECTION_INFORMATION_EX 274 -#endif -#if !defined(USB_GET_HUB_CAPABILITIES_EX) -#define USB_GET_HUB_CAPABILITIES_EX 276 -#endif -#if !defined(USB_GET_NODE_CONNECTION_INFORMATION_EX_V2) -#define USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 279 -#endif - -#ifndef METHOD_BUFFERED -#define METHOD_BUFFERED 0 -#endif -#ifndef FILE_ANY_ACCESS -#define FILE_ANY_ACCESS 0x00000000 -#endif -#ifndef FILE_DEVICE_UNKNOWN -#define FILE_DEVICE_UNKNOWN 0x00000022 -#endif -#ifndef FILE_DEVICE_USB -#define FILE_DEVICE_USB FILE_DEVICE_UNKNOWN -#endif - -#ifndef CTL_CODE -#define CTL_CODE(DeviceType, Function, Method, Access) \ - (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) -#endif - -typedef enum USB_CONNECTION_STATUS { - NoDeviceConnected, - DeviceConnected, - DeviceFailedEnumeration, - DeviceGeneralFailure, - DeviceCausedOvercurrent, - DeviceNotEnoughPower, - DeviceNotEnoughBandwidth, - DeviceHubNestedTooDeeply, - DeviceInLegacyHub -} USB_CONNECTION_STATUS, *PUSB_CONNECTION_STATUS; - -typedef enum USB_HUB_NODE { - UsbHub, - UsbMIParent -} USB_HUB_NODE; - -/* Cfgmgr32.dll interface */ -DLL_DECLARE_HANDLE(Cfgmgr32); -DLL_DECLARE_FUNC(WINAPI, CONFIGRET, CM_Get_Parent, (PDEVINST, DEVINST, ULONG)); -DLL_DECLARE_FUNC(WINAPI, CONFIGRET, CM_Get_Child, (PDEVINST, DEVINST, ULONG)); -DLL_DECLARE_FUNC(WINAPI, CONFIGRET, CM_Get_Sibling, (PDEVINST, DEVINST, ULONG)); -DLL_DECLARE_FUNC(WINAPI, CONFIGRET, CM_Get_Device_IDA, (DEVINST, PCHAR, ULONG, ULONG)); - -#define IOCTL_USB_GET_HUB_CAPABILITIES_EX \ - CTL_CODE( FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES_EX, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_HUB_CAPABILITIES \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_ROOT_HUB_NAME \ - CTL_CODE(FILE_DEVICE_USB, HCD_GET_ROOT_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_NODE_INFORMATION \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_INFORMATION, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_ATTRIBUTES, METHOD_BUFFERED, FILE_ANY_ACCESS) - -#define IOCTL_USB_GET_NODE_CONNECTION_NAME \ - CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS) - -// Most of the structures below need to be packed -#pragma pack(push, 1) - -typedef struct USB_INTERFACE_DESCRIPTOR { - UCHAR bLength; - UCHAR bDescriptorType; - UCHAR bInterfaceNumber; - UCHAR bAlternateSetting; - UCHAR bNumEndpoints; - UCHAR bInterfaceClass; - UCHAR bInterfaceSubClass; - UCHAR bInterfaceProtocol; - UCHAR iInterface; -} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR; - -typedef struct USB_CONFIGURATION_DESCRIPTOR_SHORT { - struct { - ULONG ConnectionIndex; - struct { - UCHAR bmRequest; - UCHAR bRequest; - USHORT wValue; - USHORT wIndex; - USHORT wLength; - } SetupPacket; - } req; - USB_CONFIGURATION_DESCRIPTOR data; -} USB_CONFIGURATION_DESCRIPTOR_SHORT; - -typedef struct USB_ENDPOINT_DESCRIPTOR { - UCHAR bLength; - UCHAR bDescriptorType; - UCHAR bEndpointAddress; - UCHAR bmAttributes; - USHORT wMaxPacketSize; - UCHAR bInterval; -} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR; - -typedef struct USB_DESCRIPTOR_REQUEST { - ULONG ConnectionIndex; - struct { - UCHAR bmRequest; - UCHAR bRequest; - USHORT wValue; - USHORT wIndex; - USHORT wLength; - } SetupPacket; -// UCHAR Data[0]; -} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST; - -typedef struct USB_HUB_DESCRIPTOR { - UCHAR bDescriptorLength; - UCHAR bDescriptorType; - UCHAR bNumberOfPorts; - USHORT wHubCharacteristics; - UCHAR bPowerOnToPowerGood; - UCHAR bHubControlCurrent; - UCHAR bRemoveAndPowerMask[64]; -} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR; - -typedef struct USB_ROOT_HUB_NAME { - ULONG ActualLength; - WCHAR RootHubName[1]; -} USB_ROOT_HUB_NAME, *PUSB_ROOT_HUB_NAME; - -typedef struct USB_ROOT_HUB_NAME_FIXED { - ULONG ActualLength; - WCHAR RootHubName[MAX_PATH_LENGTH]; -} USB_ROOT_HUB_NAME_FIXED; - -typedef struct USB_NODE_CONNECTION_NAME { - ULONG ConnectionIndex; - ULONG ActualLength; - WCHAR NodeName[1]; -} USB_NODE_CONNECTION_NAME, *PUSB_NODE_CONNECTION_NAME; - -typedef struct USB_NODE_CONNECTION_NAME_FIXED { - ULONG ConnectionIndex; - ULONG ActualLength; - WCHAR NodeName[MAX_PATH_LENGTH]; -} USB_NODE_CONNECTION_NAME_FIXED; - -typedef struct USB_HUB_NAME_FIXED { - union { - USB_ROOT_HUB_NAME_FIXED root; - USB_NODE_CONNECTION_NAME_FIXED node; - } u; -} USB_HUB_NAME_FIXED; - -typedef struct USB_HUB_INFORMATION { - USB_HUB_DESCRIPTOR HubDescriptor; - BOOLEAN HubIsBusPowered; -} USB_HUB_INFORMATION, *PUSB_HUB_INFORMATION; - -typedef struct USB_MI_PARENT_INFORMATION { - ULONG NumberOfInterfaces; -} USB_MI_PARENT_INFORMATION, *PUSB_MI_PARENT_INFORMATION; - -typedef struct USB_NODE_INFORMATION { - USB_HUB_NODE NodeType; - union { - USB_HUB_INFORMATION HubInformation; - USB_MI_PARENT_INFORMATION MiParentInformation; - } u; -} USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION; - -typedef struct USB_PIPE_INFO { - USB_ENDPOINT_DESCRIPTOR EndpointDescriptor; - ULONG ScheduleOffset; -} USB_PIPE_INFO, *PUSB_PIPE_INFO; - -typedef struct USB_NODE_CONNECTION_INFORMATION_EX { - ULONG ConnectionIndex; - USB_DEVICE_DESCRIPTOR DeviceDescriptor; - UCHAR CurrentConfigurationValue; - UCHAR Speed; - BOOLEAN DeviceIsHub; - USHORT DeviceAddress; - ULONG NumberOfOpenPipes; - USB_CONNECTION_STATUS ConnectionStatus; -// USB_PIPE_INFO PipeList[0]; -} USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX; - -typedef union _USB_PROTOCOLS { - ULONG ul; - struct { - ULONG Usb110:1; - ULONG Usb200:1; - ULONG Usb300:1; - ULONG ReservedMBZ:29; - }; -} USB_PROTOCOLS, *PUSB_PROTOCOLS; - -typedef union _USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS { - ULONG ul; - struct { - ULONG DeviceIsOperatingAtSuperSpeedOrHigher:1; - ULONG DeviceIsSuperSpeedCapableOrHigher:1; - ULONG ReservedMBZ:30; - }; -} USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS, *PUSB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS; - -typedef struct _USB_NODE_CONNECTION_INFORMATION_EX_V2 { - ULONG ConnectionIndex; - ULONG Length; - USB_PROTOCOLS SupportedUsbProtocols; - USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS Flags; -} USB_NODE_CONNECTION_INFORMATION_EX_V2, *PUSB_NODE_CONNECTION_INFORMATION_EX_V2; - -typedef struct USB_HUB_CAP_FLAGS { - ULONG HubIsHighSpeedCapable:1; - ULONG HubIsHighSpeed:1; - ULONG HubIsMultiTtCapable:1; - ULONG HubIsMultiTt:1; - ULONG HubIsRoot:1; - ULONG HubIsArmedWakeOnConnect:1; - ULONG ReservedMBZ:26; -} USB_HUB_CAP_FLAGS, *PUSB_HUB_CAP_FLAGS; - -typedef struct USB_HUB_CAPABILITIES { - ULONG HubIs2xCapable:1; -} USB_HUB_CAPABILITIES, *PUSB_HUB_CAPABILITIES; - -typedef struct USB_HUB_CAPABILITIES_EX { - USB_HUB_CAP_FLAGS CapabilityFlags; -} USB_HUB_CAPABILITIES_EX, *PUSB_HUB_CAPABILITIES_EX; - -#pragma pack(pop) - -/* winusb.dll interface */ - -#define SHORT_PACKET_TERMINATE 0x01 -#define AUTO_CLEAR_STALL 0x02 -#define PIPE_TRANSFER_TIMEOUT 0x03 -#define IGNORE_SHORT_PACKETS 0x04 -#define ALLOW_PARTIAL_READS 0x05 -#define AUTO_FLUSH 0x06 -#define RAW_IO 0x07 -#define MAXIMUM_TRANSFER_SIZE 0x08 -#define AUTO_SUSPEND 0x81 -#define SUSPEND_DELAY 0x83 -#define DEVICE_SPEED 0x01 -#define LowSpeed 0x01 -#define FullSpeed 0x02 -#define HighSpeed 0x03 - -typedef enum USBD_PIPE_TYPE { - UsbdPipeTypeControl, - UsbdPipeTypeIsochronous, - UsbdPipeTypeBulk, - UsbdPipeTypeInterrupt -} USBD_PIPE_TYPE; - -typedef struct { - USBD_PIPE_TYPE PipeType; - UCHAR PipeId; - USHORT MaximumPacketSize; - UCHAR Interval; -} WINUSB_PIPE_INFORMATION, *PWINUSB_PIPE_INFORMATION; - -#pragma pack(1) -typedef struct { - UCHAR request_type; - UCHAR request; - USHORT value; - USHORT index; - USHORT length; -} WINUSB_SETUP_PACKET, *PWINUSB_SETUP_PACKET; -#pragma pack() - -typedef void *WINUSB_INTERFACE_HANDLE, *PWINUSB_INTERFACE_HANDLE; - -typedef BOOL (WINAPI *WinUsb_AbortPipe_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID -); -typedef BOOL (WINAPI *WinUsb_ControlTransfer_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - WINUSB_SETUP_PACKET SetupPacket, - PUCHAR Buffer, - ULONG BufferLength, - PULONG LengthTransferred, - LPOVERLAPPED Overlapped -); -typedef BOOL (WINAPI *WinUsb_FlushPipe_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID -); -typedef BOOL (WINAPI *WinUsb_Free_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle -); -typedef BOOL (WINAPI *WinUsb_GetAssociatedInterface_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR AssociatedInterfaceIndex, - PWINUSB_INTERFACE_HANDLE AssociatedInterfaceHandle -); -typedef BOOL (WINAPI *WinUsb_GetCurrentAlternateSetting_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - PUCHAR AlternateSetting -); -typedef BOOL (WINAPI *WinUsb_GetDescriptor_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR DescriptorType, - UCHAR Index, - USHORT LanguageID, - PUCHAR Buffer, - ULONG BufferLength, - PULONG LengthTransferred -); -typedef BOOL (WINAPI *WinUsb_GetOverlappedResult_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - LPOVERLAPPED lpOverlapped, - LPDWORD lpNumberOfBytesTransferred, - BOOL bWait -); -typedef BOOL (WINAPI *WinUsb_GetPipePolicy_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID, - ULONG PolicyType, - PULONG ValueLength, - PVOID Value -); -typedef BOOL (WINAPI *WinUsb_GetPowerPolicy_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - ULONG PolicyType, - PULONG ValueLength, - PVOID Value -); -typedef BOOL (WINAPI *WinUsb_Initialize_t)( - HANDLE DeviceHandle, - PWINUSB_INTERFACE_HANDLE InterfaceHandle -); -typedef BOOL (WINAPI *WinUsb_QueryDeviceInformation_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - ULONG InformationType, - PULONG BufferLength, - PVOID Buffer -); -typedef BOOL (WINAPI *WinUsb_QueryInterfaceSettings_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR AlternateSettingNumber, - PUSB_INTERFACE_DESCRIPTOR UsbAltInterfaceDescriptor -); -typedef BOOL (WINAPI *WinUsb_QueryPipe_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR AlternateInterfaceNumber, - UCHAR PipeIndex, - PWINUSB_PIPE_INFORMATION PipeInformation -); -typedef BOOL (WINAPI *WinUsb_ReadPipe_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID, - PUCHAR Buffer, - ULONG BufferLength, - PULONG LengthTransferred, - LPOVERLAPPED Overlapped -); -typedef BOOL (WINAPI *WinUsb_ResetPipe_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID -); -typedef BOOL (WINAPI *WinUsb_SetCurrentAlternateSetting_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR AlternateSetting -); -typedef BOOL (WINAPI *WinUsb_SetPipePolicy_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID, - ULONG PolicyType, - ULONG ValueLength, - PVOID Value -); -typedef BOOL (WINAPI *WinUsb_SetPowerPolicy_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - ULONG PolicyType, - ULONG ValueLength, - PVOID Value -); -typedef BOOL (WINAPI *WinUsb_WritePipe_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle, - UCHAR PipeID, - PUCHAR Buffer, - ULONG BufferLength, - PULONG LengthTransferred, - LPOVERLAPPED Overlapped -); -typedef BOOL (WINAPI *WinUsb_ResetDevice_t)( - WINUSB_INTERFACE_HANDLE InterfaceHandle -); - -/* /!\ These must match the ones from the official libusbk.h */ -typedef enum _KUSB_FNID { - KUSB_FNID_Init, - KUSB_FNID_Free, - KUSB_FNID_ClaimInterface, - KUSB_FNID_ReleaseInterface, - KUSB_FNID_SetAltInterface, - KUSB_FNID_GetAltInterface, - KUSB_FNID_GetDescriptor, - KUSB_FNID_ControlTransfer, - KUSB_FNID_SetPowerPolicy, - KUSB_FNID_GetPowerPolicy, - KUSB_FNID_SetConfiguration, - KUSB_FNID_GetConfiguration, - KUSB_FNID_ResetDevice, - KUSB_FNID_Initialize, - KUSB_FNID_SelectInterface, - KUSB_FNID_GetAssociatedInterface, - KUSB_FNID_Clone, - KUSB_FNID_QueryInterfaceSettings, - KUSB_FNID_QueryDeviceInformation, - KUSB_FNID_SetCurrentAlternateSetting, - KUSB_FNID_GetCurrentAlternateSetting, - KUSB_FNID_QueryPipe, - KUSB_FNID_SetPipePolicy, - KUSB_FNID_GetPipePolicy, - KUSB_FNID_ReadPipe, - KUSB_FNID_WritePipe, - KUSB_FNID_ResetPipe, - KUSB_FNID_AbortPipe, - KUSB_FNID_FlushPipe, - KUSB_FNID_IsoReadPipe, - KUSB_FNID_IsoWritePipe, - KUSB_FNID_GetCurrentFrameNumber, - KUSB_FNID_GetOverlappedResult, - KUSB_FNID_GetProperty, - KUSB_FNID_COUNT, -} KUSB_FNID; - -typedef struct _KLIB_VERSION { - INT Major; - INT Minor; - INT Micro; - INT Nano; -} KLIB_VERSION; -typedef KLIB_VERSION* PKLIB_VERSION; - -typedef BOOL (WINAPI *LibK_GetProcAddress_t)( - PVOID *ProcAddress, - ULONG DriverID, - ULONG FunctionID -); - -typedef VOID (WINAPI *LibK_GetVersion_t)( - PKLIB_VERSION Version -); - -struct winusb_interface { - bool initialized; - WinUsb_AbortPipe_t AbortPipe; - WinUsb_ControlTransfer_t ControlTransfer; - WinUsb_FlushPipe_t FlushPipe; - WinUsb_Free_t Free; - WinUsb_GetAssociatedInterface_t GetAssociatedInterface; - WinUsb_GetCurrentAlternateSetting_t GetCurrentAlternateSetting; - WinUsb_GetDescriptor_t GetDescriptor; - WinUsb_GetOverlappedResult_t GetOverlappedResult; - WinUsb_GetPipePolicy_t GetPipePolicy; - WinUsb_GetPowerPolicy_t GetPowerPolicy; - WinUsb_Initialize_t Initialize; - WinUsb_QueryDeviceInformation_t QueryDeviceInformation; - WinUsb_QueryInterfaceSettings_t QueryInterfaceSettings; - WinUsb_QueryPipe_t QueryPipe; - WinUsb_ReadPipe_t ReadPipe; - WinUsb_ResetPipe_t ResetPipe; - WinUsb_SetCurrentAlternateSetting_t SetCurrentAlternateSetting; - WinUsb_SetPipePolicy_t SetPipePolicy; - WinUsb_SetPowerPolicy_t SetPowerPolicy; - WinUsb_WritePipe_t WritePipe; - WinUsb_ResetDevice_t ResetDevice; -}; - -/* hid.dll interface */ - -#define HIDP_STATUS_SUCCESS 0x110000 -typedef void * PHIDP_PREPARSED_DATA; - -#pragma pack(1) -typedef struct { - ULONG Size; - USHORT VendorID; - USHORT ProductID; - USHORT VersionNumber; -} HIDD_ATTRIBUTES, *PHIDD_ATTRIBUTES; -#pragma pack() - -typedef USHORT USAGE; -typedef struct { - USAGE Usage; - USAGE UsagePage; - USHORT InputReportByteLength; - USHORT OutputReportByteLength; - USHORT FeatureReportByteLength; - USHORT Reserved[17]; - USHORT NumberLinkCollectionNodes; - USHORT NumberInputButtonCaps; - USHORT NumberInputValueCaps; - USHORT NumberInputDataIndices; - USHORT NumberOutputButtonCaps; - USHORT NumberOutputValueCaps; - USHORT NumberOutputDataIndices; - USHORT NumberFeatureButtonCaps; - USHORT NumberFeatureValueCaps; - USHORT NumberFeatureDataIndices; -} HIDP_CAPS, *PHIDP_CAPS; - -typedef enum _HIDP_REPORT_TYPE { - HidP_Input, - HidP_Output, - HidP_Feature -} HIDP_REPORT_TYPE; - -typedef struct _HIDP_VALUE_CAPS { - USAGE UsagePage; - UCHAR ReportID; - BOOLEAN IsAlias; - USHORT BitField; - USHORT LinkCollection; - USAGE LinkUsage; - USAGE LinkUsagePage; - BOOLEAN IsRange; - BOOLEAN IsStringRange; - BOOLEAN IsDesignatorRange; - BOOLEAN IsAbsolute; - BOOLEAN HasNull; - UCHAR Reserved; - USHORT BitSize; - USHORT ReportCount; - USHORT Reserved2[5]; - ULONG UnitsExp; - ULONG Units; - LONG LogicalMin, LogicalMax; - LONG PhysicalMin, PhysicalMax; - union { - struct { - USAGE UsageMin, UsageMax; - USHORT StringMin, StringMax; - USHORT DesignatorMin, DesignatorMax; - USHORT DataIndexMin, DataIndexMax; - } Range; - struct { - USAGE Usage, Reserved1; - USHORT StringIndex, Reserved2; - USHORT DesignatorIndex, Reserved3; - USHORT DataIndex, Reserved4; - } NotRange; - } u; -} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS; - -DLL_DECLARE_HANDLE(hid); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetAttributes, (HANDLE, PHIDD_ATTRIBUTES)); -DLL_DECLARE_FUNC(WINAPI, VOID, HidD_GetHidGuid, (LPGUID)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetPreparsedData, (HANDLE, PHIDP_PREPARSED_DATA *)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_FreePreparsedData, (PHIDP_PREPARSED_DATA)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetManufacturerString, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetProductString, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetSerialNumberString, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, LONG, HidP_GetCaps, (PHIDP_PREPARSED_DATA, PHIDP_CAPS)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_SetNumInputBuffers, (HANDLE, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_SetFeature, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetFeature, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetPhysicalDescriptor, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_GetInputReport, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_SetOutputReport, (HANDLE, PVOID, ULONG)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidD_FlushQueue, (HANDLE)); -DLL_DECLARE_FUNC(WINAPI, BOOL, HidP_GetValueCaps, (HIDP_REPORT_TYPE, PHIDP_VALUE_CAPS, PULONG, PHIDP_PREPARSED_DATA)); \ No newline at end of file diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/strerror.c b/vendor/github.com/karalabe/hid/libusb/libusb/strerror.c deleted file mode 100644 index d2be0e2a..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/strerror.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * libusb strerror code - * Copyright © 2013 Hans de Goede - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#if defined(HAVE_STRINGS_H) -#include -#endif - -#include "libusbi.h" - -#if defined(_MSC_VER) -#define strncasecmp _strnicmp -#endif - -static size_t usbi_locale = 0; - -/** \ingroup libusb_misc - * How to add a new \ref libusb_strerror() translation: - *
    - *
  1. Download the latest \c strerror.c from:
    - * https://raw.github.com/libusb/libusb/master/libusb/sterror.c
  2. - *
  3. Open the file in an UTF-8 capable editor
  4. - *
  5. Add the 2 letter ISO 639-1 - * code for your locale at the end of \c usbi_locale_supported[]
    - * Eg. for Chinese, you would add "zh" so that: - * \code... usbi_locale_supported[] = { "en", "nl", "fr" };\endcode - * becomes: - * \code... usbi_locale_supported[] = { "en", "nl", "fr", "zh" };\endcode
  6. - *
  7. Copy the { / * English (en) * / ... } section and add it at the end of \c usbi_localized_errors
    - * Eg. for Chinese, the last section of \c usbi_localized_errors could look like: - * \code - * }, { / * Chinese (zh) * / - * "Success", - * ... - * "Other error", - * } - * };\endcode
  8. - *
  9. Translate each of the English messages from the section you copied into your language
  10. - *
  11. Save the file (in UTF-8 format) and send it to \c libusb-devel\@lists.sourceforge.net
  12. - *
- */ - -static const char* usbi_locale_supported[] = { "en", "nl", "fr", "ru" }; -static const char* usbi_localized_errors[ARRAYSIZE(usbi_locale_supported)][LIBUSB_ERROR_COUNT] = { - { /* English (en) */ - "Success", - "Input/Output Error", - "Invalid parameter", - "Access denied (insufficient permissions)", - "No such device (it may have been disconnected)", - "Entity not found", - "Resource busy", - "Operation timed out", - "Overflow", - "Pipe error", - "System call interrupted (perhaps due to signal)", - "Insufficient memory", - "Operation not supported or unimplemented on this platform", - "Other error", - }, { /* Dutch (nl) */ - "Gelukt", - "Invoer-/uitvoerfout", - "Ongeldig argument", - "Toegang geweigerd (onvoldoende toegangsrechten)", - "Apparaat bestaat niet (verbinding met apparaat verbroken?)", - "Niet gevonden", - "Apparaat of hulpbron is bezig", - "Bewerking verlopen", - "Waarde is te groot", - "Gebroken pijp", - "Onderbroken systeemaanroep", - "Onvoldoende geheugen beschikbaar", - "Bewerking wordt niet ondersteund", - "Andere fout", - }, { /* French (fr) */ - "Succès", - "Erreur d'entrée/sortie", - "Paramètre invalide", - "Accès refusé (permissions insuffisantes)", - "Périphérique introuvable (peut-être déconnecté)", - "Elément introuvable", - "Resource déjà occupée", - "Operation expirée", - "Débordement", - "Erreur de pipe", - "Appel système abandonné (peut-être à cause d’un signal)", - "Mémoire insuffisante", - "Opération non supportée or non implémentée sur cette plateforme", - "Autre erreur", - }, { /* Russian (ru) */ - "УÑпех", - "Ошибка ввода/вывода", - "Ðеверный параметр", - "ДоÑтуп запрещён (не хватает прав)", - "УÑтройÑтво отÑутÑтвует (возможно, оно было отÑоединено)", - "Элемент не найден", - "РеÑÑƒÑ€Ñ Ð·Ð°Ð½ÑÑ‚", - "ИÑтекло Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸", - "Переполнение", - "Ошибка канала", - "СиÑтемный вызов прерван (возможно, Ñигналом)", - "ПамÑÑ‚ÑŒ иÑчерпана", - "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживаетÑÑ Ð´Ð°Ð½Ð½Ð¾Ð¹ платформой", - "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" - } -}; - -/** \ingroup libusb_misc - * Set the language, and only the language, not the encoding! used for - * translatable libusb messages. - * - * This takes a locale string in the default setlocale format: lang[-region] - * or lang[_country_region][.codeset]. Only the lang part of the string is - * used, and only 2 letter ISO 639-1 codes are accepted for it, such as "de". - * The optional region, country_region or codeset parts are ignored. This - * means that functions which return translatable strings will NOT honor the - * specified encoding. - * All strings returned are encoded as UTF-8 strings. - * - * If libusb_setlocale() is not called, all messages will be in English. - * - * The following functions return translatable strings: libusb_strerror(). - * Note that the libusb log messages controlled through libusb_set_debug() - * are not translated, they are always in English. - * - * For POSIX UTF-8 environments if you want libusb to follow the standard - * locale settings, call libusb_setlocale(setlocale(LC_MESSAGES, NULL)), - * after your app has done its locale setup. - * - * \param locale locale-string in the form of lang[_country_region][.codeset] - * or lang[-region], where lang is a 2 letter ISO 639-1 code - * \returns LIBUSB_SUCCESS on success - * \returns LIBUSB_ERROR_INVALID_PARAM if the locale doesn't meet the requirements - * \returns LIBUSB_ERROR_NOT_FOUND if the requested language is not supported - * \returns a LIBUSB_ERROR code on other errors - */ - -int API_EXPORTED libusb_setlocale(const char *locale) -{ - size_t i; - - if ( (locale == NULL) || (strlen(locale) < 2) - || ((strlen(locale) > 2) && (locale[2] != '-') && (locale[2] != '_') && (locale[2] != '.')) ) - return LIBUSB_ERROR_INVALID_PARAM; - - for (i=0; i= ARRAYSIZE(usbi_locale_supported)) { - return LIBUSB_ERROR_NOT_FOUND; - } - - usbi_locale = i; - - return LIBUSB_SUCCESS; -} - -/** \ingroup libusb_misc - * Returns a constant string with a short description of the given error code, - * this description is intended for displaying to the end user and will be in - * the language set by libusb_setlocale(). - * - * The returned string is encoded in UTF-8. - * - * The messages always start with a capital letter and end without any dot. - * The caller must not free() the returned string. - * - * \param errcode the error code whose description is desired - * \returns a short description of the error code in UTF-8 encoding - */ -DEFAULT_VISIBILITY const char* LIBUSB_CALL libusb_strerror(enum libusb_error errcode) -{ - int errcode_index = -errcode; - - if ((errcode_index < 0) || (errcode_index >= LIBUSB_ERROR_COUNT)) { - /* "Other Error", which should always be our last message, is returned */ - errcode_index = LIBUSB_ERROR_COUNT - 1; - } - - return usbi_localized_errors[usbi_locale][errcode_index]; -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/sync.c b/vendor/github.com/karalabe/hid/libusb/libusb/sync.c deleted file mode 100644 index a609f65f..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/sync.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Synchronous I/O functions for libusb - * Copyright © 2007-2008 Daniel Drake - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include -#include - -#include "libusbi.h" - -/** - * @defgroup libusb_syncio Synchronous device I/O - * - * This page documents libusb's synchronous (blocking) API for USB device I/O. - * This interface is easy to use but has some limitations. More advanced users - * may wish to consider using the \ref libusb_asyncio "asynchronous I/O API" instead. - */ - -static void LIBUSB_CALL sync_transfer_cb(struct libusb_transfer *transfer) -{ - int *completed = transfer->user_data; - *completed = 1; - usbi_dbg("actual_length=%d", transfer->actual_length); - /* caller interprets result and frees transfer */ -} - -static void sync_transfer_wait_for_completion(struct libusb_transfer *transfer) -{ - int r, *completed = transfer->user_data; - struct libusb_context *ctx = HANDLE_CTX(transfer->dev_handle); - - while (!*completed) { - r = libusb_handle_events_completed(ctx, completed); - if (r < 0) { - if (r == LIBUSB_ERROR_INTERRUPTED) - continue; - usbi_err(ctx, "libusb_handle_events failed: %s, cancelling transfer and retrying", - libusb_error_name(r)); - libusb_cancel_transfer(transfer); - continue; - } - } -} - -/** \ingroup libusb_syncio - * Perform a USB control transfer. - * - * The direction of the transfer is inferred from the bmRequestType field of - * the setup packet. - * - * The wValue, wIndex and wLength fields values should be given in host-endian - * byte order. - * - * \param dev_handle a handle for the device to communicate with - * \param bmRequestType the request type field for the setup packet - * \param bRequest the request field for the setup packet - * \param wValue the value field for the setup packet - * \param wIndex the index field for the setup packet - * \param data a suitably-sized data buffer for either input or output - * (depending on direction bits within bmRequestType) - * \param wLength the length field for the setup packet. The data buffer should - * be at least this size. - * \param timeout timeout (in millseconds) that this function should wait - * before giving up due to no response being received. For an unlimited - * timeout, use value 0. - * \returns on success, the number of bytes actually transferred - * \returns LIBUSB_ERROR_TIMEOUT if the transfer timed out - * \returns LIBUSB_ERROR_PIPE if the control request was not supported by the - * device - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_BUSY if called from event handling context - * \returns LIBUSB_ERROR_INVALID_PARAM if the transfer size is larger than - * the operating system and/or hardware can support - * \returns another LIBUSB_ERROR code on other failures - */ -int API_EXPORTED libusb_control_transfer(libusb_device_handle *dev_handle, - uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, - unsigned char *data, uint16_t wLength, unsigned int timeout) -{ - struct libusb_transfer *transfer; - unsigned char *buffer; - int completed = 0; - int r; - - if (usbi_handling_events(HANDLE_CTX(dev_handle))) - return LIBUSB_ERROR_BUSY; - - transfer = libusb_alloc_transfer(0); - if (!transfer) - return LIBUSB_ERROR_NO_MEM; - - buffer = (unsigned char*) malloc(LIBUSB_CONTROL_SETUP_SIZE + wLength); - if (!buffer) { - libusb_free_transfer(transfer); - return LIBUSB_ERROR_NO_MEM; - } - - libusb_fill_control_setup(buffer, bmRequestType, bRequest, wValue, wIndex, - wLength); - if ((bmRequestType & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_OUT) - memcpy(buffer + LIBUSB_CONTROL_SETUP_SIZE, data, wLength); - - libusb_fill_control_transfer(transfer, dev_handle, buffer, - sync_transfer_cb, &completed, timeout); - transfer->flags = LIBUSB_TRANSFER_FREE_BUFFER; - r = libusb_submit_transfer(transfer); - if (r < 0) { - libusb_free_transfer(transfer); - return r; - } - - sync_transfer_wait_for_completion(transfer); - - if ((bmRequestType & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN) - memcpy(data, libusb_control_transfer_get_data(transfer), - transfer->actual_length); - - switch (transfer->status) { - case LIBUSB_TRANSFER_COMPLETED: - r = transfer->actual_length; - break; - case LIBUSB_TRANSFER_TIMED_OUT: - r = LIBUSB_ERROR_TIMEOUT; - break; - case LIBUSB_TRANSFER_STALL: - r = LIBUSB_ERROR_PIPE; - break; - case LIBUSB_TRANSFER_NO_DEVICE: - r = LIBUSB_ERROR_NO_DEVICE; - break; - case LIBUSB_TRANSFER_OVERFLOW: - r = LIBUSB_ERROR_OVERFLOW; - break; - case LIBUSB_TRANSFER_ERROR: - case LIBUSB_TRANSFER_CANCELLED: - r = LIBUSB_ERROR_IO; - break; - default: - usbi_warn(HANDLE_CTX(dev_handle), - "unrecognised status code %d", transfer->status); - r = LIBUSB_ERROR_OTHER; - } - - libusb_free_transfer(transfer); - return r; -} - -static int do_sync_bulk_transfer(struct libusb_device_handle *dev_handle, - unsigned char endpoint, unsigned char *buffer, int length, - int *transferred, unsigned int timeout, unsigned char type) -{ - struct libusb_transfer *transfer; - int completed = 0; - int r; - - if (usbi_handling_events(HANDLE_CTX(dev_handle))) - return LIBUSB_ERROR_BUSY; - - transfer = libusb_alloc_transfer(0); - if (!transfer) - return LIBUSB_ERROR_NO_MEM; - - libusb_fill_bulk_transfer(transfer, dev_handle, endpoint, buffer, length, - sync_transfer_cb, &completed, timeout); - transfer->type = type; - - r = libusb_submit_transfer(transfer); - if (r < 0) { - libusb_free_transfer(transfer); - return r; - } - - sync_transfer_wait_for_completion(transfer); - - if (transferred) - *transferred = transfer->actual_length; - - switch (transfer->status) { - case LIBUSB_TRANSFER_COMPLETED: - r = 0; - break; - case LIBUSB_TRANSFER_TIMED_OUT: - r = LIBUSB_ERROR_TIMEOUT; - break; - case LIBUSB_TRANSFER_STALL: - r = LIBUSB_ERROR_PIPE; - break; - case LIBUSB_TRANSFER_OVERFLOW: - r = LIBUSB_ERROR_OVERFLOW; - break; - case LIBUSB_TRANSFER_NO_DEVICE: - r = LIBUSB_ERROR_NO_DEVICE; - break; - case LIBUSB_TRANSFER_ERROR: - case LIBUSB_TRANSFER_CANCELLED: - r = LIBUSB_ERROR_IO; - break; - default: - usbi_warn(HANDLE_CTX(dev_handle), - "unrecognised status code %d", transfer->status); - r = LIBUSB_ERROR_OTHER; - } - - libusb_free_transfer(transfer); - return r; -} - -/** \ingroup libusb_syncio - * Perform a USB bulk transfer. The direction of the transfer is inferred from - * the direction bits of the endpoint address. - * - * For bulk reads, the length field indicates the maximum length of - * data you are expecting to receive. If less data arrives than expected, - * this function will return that data, so be sure to check the - * transferred output parameter. - * - * You should also check the transferred parameter for bulk writes. - * Not all of the data may have been written. - * - * Also check transferred when dealing with a timeout error code. - * libusb may have to split your transfer into a number of chunks to satisfy - * underlying O/S requirements, meaning that the timeout may expire after - * the first few chunks have completed. libusb is careful not to lose any data - * that may have been transferred; do not assume that timeout conditions - * indicate a complete lack of I/O. - * - * \param dev_handle a handle for the device to communicate with - * \param endpoint the address of a valid endpoint to communicate with - * \param data a suitably-sized data buffer for either input or output - * (depending on endpoint) - * \param length for bulk writes, the number of bytes from data to be sent. for - * bulk reads, the maximum number of bytes to receive into the data buffer. - * \param transferred output location for the number of bytes actually - * transferred. Since version 1.0.21 (\ref LIBUSB_API_VERSION >= 0x01000105), - * it is legal to pass a NULL pointer if you do not wish to receive this - * information. - * \param timeout timeout (in millseconds) that this function should wait - * before giving up due to no response being received. For an unlimited - * timeout, use value 0. - * - * \returns 0 on success (and populates transferred) - * \returns LIBUSB_ERROR_TIMEOUT if the transfer timed out (and populates - * transferred) - * \returns LIBUSB_ERROR_PIPE if the endpoint halted - * \returns LIBUSB_ERROR_OVERFLOW if the device offered more data, see - * \ref libusb_packetoverflow - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_BUSY if called from event handling context - * \returns another LIBUSB_ERROR code on other failures - */ -int API_EXPORTED libusb_bulk_transfer(struct libusb_device_handle *dev_handle, - unsigned char endpoint, unsigned char *data, int length, int *transferred, - unsigned int timeout) -{ - return do_sync_bulk_transfer(dev_handle, endpoint, data, length, - transferred, timeout, LIBUSB_TRANSFER_TYPE_BULK); -} - -/** \ingroup libusb_syncio - * Perform a USB interrupt transfer. The direction of the transfer is inferred - * from the direction bits of the endpoint address. - * - * For interrupt reads, the length field indicates the maximum length - * of data you are expecting to receive. If less data arrives than expected, - * this function will return that data, so be sure to check the - * transferred output parameter. - * - * You should also check the transferred parameter for interrupt - * writes. Not all of the data may have been written. - * - * Also check transferred when dealing with a timeout error code. - * libusb may have to split your transfer into a number of chunks to satisfy - * underlying O/S requirements, meaning that the timeout may expire after - * the first few chunks have completed. libusb is careful not to lose any data - * that may have been transferred; do not assume that timeout conditions - * indicate a complete lack of I/O. - * - * The default endpoint bInterval value is used as the polling interval. - * - * \param dev_handle a handle for the device to communicate with - * \param endpoint the address of a valid endpoint to communicate with - * \param data a suitably-sized data buffer for either input or output - * (depending on endpoint) - * \param length for bulk writes, the number of bytes from data to be sent. for - * bulk reads, the maximum number of bytes to receive into the data buffer. - * \param transferred output location for the number of bytes actually - * transferred. Since version 1.0.21 (\ref LIBUSB_API_VERSION >= 0x01000105), - * it is legal to pass a NULL pointer if you do not wish to receive this - * information. - * \param timeout timeout (in millseconds) that this function should wait - * before giving up due to no response being received. For an unlimited - * timeout, use value 0. - * - * \returns 0 on success (and populates transferred) - * \returns LIBUSB_ERROR_TIMEOUT if the transfer timed out - * \returns LIBUSB_ERROR_PIPE if the endpoint halted - * \returns LIBUSB_ERROR_OVERFLOW if the device offered more data, see - * \ref libusb_packetoverflow - * \returns LIBUSB_ERROR_NO_DEVICE if the device has been disconnected - * \returns LIBUSB_ERROR_BUSY if called from event handling context - * \returns another LIBUSB_ERROR code on other error - */ -int API_EXPORTED libusb_interrupt_transfer( - struct libusb_device_handle *dev_handle, unsigned char endpoint, - unsigned char *data, int length, int *transferred, unsigned int timeout) -{ - return do_sync_bulk_transfer(dev_handle, endpoint, data, length, - transferred, timeout, LIBUSB_TRANSFER_TYPE_INTERRUPT); -} diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/version.h b/vendor/github.com/karalabe/hid/libusb/libusb/version.h deleted file mode 100644 index 6ce48a7d..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/version.h +++ /dev/null @@ -1,18 +0,0 @@ -/* This file is parsed by m4 and windres and RC.EXE so please keep it simple. */ -#include "version_nano.h" -#ifndef LIBUSB_MAJOR -#define LIBUSB_MAJOR 1 -#endif -#ifndef LIBUSB_MINOR -#define LIBUSB_MINOR 0 -#endif -#ifndef LIBUSB_MICRO -#define LIBUSB_MICRO 21 -#endif -#ifndef LIBUSB_NANO -#define LIBUSB_NANO 0 -#endif -/* LIBUSB_RC is the release candidate suffix. Should normally be empty. */ -#ifndef LIBUSB_RC -#define LIBUSB_RC "" -#endif diff --git a/vendor/github.com/karalabe/hid/libusb/libusb/version_nano.h b/vendor/github.com/karalabe/hid/libusb/libusb/version_nano.h deleted file mode 100644 index 0a5d1c99..00000000 --- a/vendor/github.com/karalabe/hid/libusb/libusb/version_nano.h +++ /dev/null @@ -1 +0,0 @@ -#define LIBUSB_NANO 11182 diff --git a/vendor/github.com/karalabe/hid/wchar_test.go b/vendor/github.com/karalabe/hid/wchar_test.go deleted file mode 100644 index b80ebb87..00000000 --- a/vendor/github.com/karalabe/hid/wchar_test.go +++ /dev/null @@ -1,66 +0,0 @@ -// This file is https://github.com/orofarne/gowchar/blob/master/gowchar_test.go -// -// It was vendored inline to work around CGO limitations that don't allow C types -// to directly cross package API boundaries. -// -// The vendored file is licensed under the 3-clause BSD license, according to: -// https://github.com/orofarne/gowchar/blob/master/LICENSE - -// +build !ios -// +build linux darwin windows - -package hid - -import ( - "fmt" - "testing" -) - -func TestGowcharSimple(t *testing.T) { - str1 := "Привет, 世界. 𪛖" - wstr, size := stringToWcharT(str1) - switch sizeofWcharT { - case 2: - if size != 15 { - t.Errorf("size(%v) != 15", size) - } - case 4: - if size != 14 { - t.Errorf("size(%v) != 14", size) - } - default: - panic(fmt.Sprintf("sizeof(wchar_t) = %v", sizeofWcharT)) - } - str2, err := wcharTToString(wstr) - if err != nil { - t.Errorf("wcharTToString error: %v", err) - } - if str1 != str2 { - t.Errorf("\"%s\" != \"%s\"", str1, str2) - } -} - -func TestGowcharSimpleN(t *testing.T) { - str1 := "Привет, 世界. 𪛖" - wstr, size := stringToWcharT(str1) - switch sizeofWcharT { - case 2: - if size != 15 { - t.Errorf("size(%v) != 15", size) - } - case 4: - if size != 14 { - t.Errorf("size(%v) != 14", size) - } - default: - panic(fmt.Sprintf("sizeof(wchar_t) = %v", sizeofWcharT)) - } - - str2, err := wcharTNToString(wstr, size-1) - if err != nil { - t.Errorf("wcharTToString error: %v", err) - } - if str1 != str2 { - t.Errorf("\"%s\" != \"%s\"", str1, str2) - } -} diff --git a/vendor/github.com/koron/go-ssdp/.gitignore b/vendor/github.com/koron/go-ssdp/.gitignore new file mode 100644 index 00000000..6e55ea03 --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/.gitignore @@ -0,0 +1,3 @@ +*.exe +/tmp/ +tags diff --git a/vendor/github.com/koron/go-ssdp/LICENSE b/vendor/github.com/koron/go-ssdp/LICENSE new file mode 100644 index 00000000..a00a41d5 --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 MURAOKA Taro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/koron/go-ssdp/Makefile b/vendor/github.com/koron/go-ssdp/Makefile new file mode 100644 index 00000000..d06fa31c --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/Makefile @@ -0,0 +1,57 @@ +EXAMPLES = advertise alive bye monitor search + +default: test + +test: + go test . + +test-full: + go test -v -race . + +lint: + go vet ./... + @echo "" + golint ./... + +cyclo: + -gocyclo -top 10 -avg . + +report: + @echo "misspell" + @find . -name "*.go" | xargs misspell + @echo "" + -gocyclo -over 14 -avg . + @echo "" + go vet ./... + @echo "" + golint ./... + +deps: + go get -v -u -d -t ./... + +clean: examples-clean + +examples: examples-build + +examples-build: $(EXAMPLES) + +examples-clean: + rm -f $(EXAMPLES) + +advertise: examples/advertise/*.go *.go + go build ./examples/advertise + +alive: examples/alive/*.go *.go + go build ./examples/alive + +bye: examples/bye/*.go *.go + go build ./examples/bye + +monitor: examples/monitor/*.go *.go + go build ./examples/monitor + +search: examples/search/*.go *.go + go build ./examples/search + +.PHONY: test test-full lint cyclo report deps clean \ + examples examples-build examples-clean diff --git a/vendor/github.com/koron/go-ssdp/README.md b/vendor/github.com/koron/go-ssdp/README.md new file mode 100644 index 00000000..b24f071c --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/README.md @@ -0,0 +1,3 @@ +# SSDP libraries + + * diff --git a/vendor/github.com/koron/go-ssdp/advertise.go b/vendor/github.com/koron/go-ssdp/advertise.go new file mode 100644 index 00000000..75c54c16 --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/advertise.go @@ -0,0 +1,181 @@ +package ssdp + +import ( + "bufio" + "bytes" + "fmt" + "io" + "net" + "net/http" + "sync" +) + +type message struct { + to *net.UDPAddr + data []byte +} + +// Advertiser is a server to advertise a service. +type Advertiser struct { + st string + usn string + location string + server string + maxAge int + + conn *net.UDPConn + ch chan *message + wg sync.WaitGroup + quit chan bool +} + +// Advertise starts advertisement of service. +func Advertise(st, usn, location, server string, maxAge int) (*Advertiser, error) { + conn, err := multicastListen("0.0.0.0:1900") + if err != nil { + return nil, err + } + logf("advertising on %s", conn.LocalAddr().String()) + a := &Advertiser{ + st: st, + usn: usn, + location: location, + server: server, + maxAge: maxAge, + conn: conn, + ch: make(chan *message), + quit: make(chan bool), + } + a.wg.Add(2) + go func() { + a.sendMain() + a.wg.Done() + }() + go func() { + a.serve() + a.wg.Done() + }() + return a, nil +} + +func (a *Advertiser) serve() error { + buf := make([]byte, 65535) + for { + n, addr, err := a.conn.ReadFromUDP(buf) + if err != nil { + if err == io.EOF { + return nil + } + return err + } + select { + case _ = <-a.quit: + return nil + default: + } + msg := buf[:n] + if err := a.handleRaw(addr, msg); err != nil { + logf("failed to handle message: %s", err) + } + } +} + +func (a *Advertiser) sendMain() error { + for { + select { + case msg, ok := <-a.ch: + if !ok { + return nil + } + _, err := sendTo(msg.to, msg.data) + if err != nil { + if nerr, ok := err.(net.Error); !ok || !nerr.Temporary() { + logf("failed to send: %s", err) + } + } + case _ = <-a.quit: + return nil + } + } +} + +func (a *Advertiser) handleRaw(from *net.UDPAddr, raw []byte) error { + if !bytes.HasPrefix(raw, []byte("M-SEARCH ")) { + // unexpected method. + return nil + } + req, err := http.ReadRequest(bufio.NewReader(bytes.NewReader(raw))) + if err != nil { + return err + } + var ( + man = req.Header.Get("MAN") + st = req.Header.Get("ST") + ) + if man != `"ssdp:discover"` { + return fmt.Errorf("unexpected MAN: %s", man) + } + if st != All && st != RootDevice && st != a.st { + // skip when ST is not matched/expected. + return nil + } + logf("received M-SEARCH MAN=%s ST=%s from %s", man, st, from.String()) + // build and send a response. + msg, err := buildOK(a.st, a.usn, a.location, a.server, a.maxAge) + if err != nil { + return err + } + a.ch <- &message{to: from, data: msg} + return nil +} + +func buildOK(st, usn, location, server string, maxAge int) ([]byte, error) { + b := new(bytes.Buffer) + // FIXME: error should be checked. + b.WriteString("HTTP/1.1 200 OK\r\n") + fmt.Fprintf(b, "ST: %s\r\n", st) + fmt.Fprintf(b, "USN: %s\r\n", usn) + if location != "" { + fmt.Fprintf(b, "LOCATION: %s\r\n", location) + } + if server != "" { + fmt.Fprintf(b, "SERVER: %s\r\n", server) + } + fmt.Fprintf(b, "CACHE-CONTROL: max-age=%d\r\n", maxAge) + b.WriteString("\r\n") + return b.Bytes(), nil +} + +// Close stops advertisement. +func (a *Advertiser) Close() error { + if a.conn != nil { + // closing order is very important. be caraful to change. + close(a.quit) + a.conn.Close() + a.wg.Wait() + close(a.ch) + a.conn = nil + } + return nil +} + +// Alive announces ssdp:alive message. +func (a *Advertiser) Alive() error { + msg, err := buildAlive(ssdpAddrIPv4, a.st, a.usn, a.location, a.server, + a.maxAge) + if err != nil { + return err + } + a.ch <- &message{to: ssdpAddrIPv4, data: msg} + return nil +} + +// Bye announces ssdp:byebye message. +func (a *Advertiser) Bye() error { + msg, err := buildBye(ssdpAddrIPv4, a.st, a.usn) + if err != nil { + return err + } + a.ch <- &message{to: ssdpAddrIPv4, data: msg} + return nil +} diff --git a/vendor/github.com/koron/go-ssdp/announce.go b/vendor/github.com/koron/go-ssdp/announce.go new file mode 100644 index 00000000..28157efb --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/announce.go @@ -0,0 +1,76 @@ +package ssdp + +import ( + "bytes" + "fmt" + "net" +) + +// AnnounceAlive sends ssdp:alive message. +func AnnounceAlive(nt, usn, location, server string, maxAge int, localAddr string) error { + // dial multicast UDP packet. + conn, err := multicastListen(localAddr) + if err != nil { + return err + } + defer conn.Close() + // build and send message. + msg, err := buildAlive(ssdpAddrIPv4, nt, usn, location, server, maxAge) + if err != nil { + return err + } + if _, err := conn.WriteTo(msg, ssdpAddrIPv4); err != nil { + return err + } + return nil +} + +func buildAlive(raddr net.Addr, nt, usn, location, server string, maxAge int) ([]byte, error) { + b := new(bytes.Buffer) + // FIXME: error should be checked. + b.WriteString("NOTIFY * HTTP/1.1\r\n") + fmt.Fprintf(b, "HOST: %s\r\n", raddr.String()) + fmt.Fprintf(b, "NT: %s\r\n", nt) + fmt.Fprintf(b, "NTS: %s\r\n", "ssdp:alive") + fmt.Fprintf(b, "USN: %s\r\n", usn) + if location != "" { + fmt.Fprintf(b, "LOCATION: %s\r\n", location) + } + if server != "" { + fmt.Fprintf(b, "SERVER: %s\r\n", server) + } + fmt.Fprintf(b, "CACHE-CONTROL: max-age=%d\r\n", maxAge) + b.WriteString("\r\n") + return b.Bytes(), nil +} + +// AnnounceBye sends ssdp:byebye message. +func AnnounceBye(nt, usn, localAddr string) error { + // dial multicast UDP packet. + conn, err := multicastListen(localAddr) + if err != nil { + return err + } + defer conn.Close() + // build and send message. + msg, err := buildBye(ssdpAddrIPv4, nt, usn) + if err != nil { + return err + } + if _, err := conn.WriteTo(msg, ssdpAddrIPv4); err != nil { + return err + } + return nil +} + +func buildBye(raddr net.Addr, nt, usn string) ([]byte, error) { + b := new(bytes.Buffer) + // FIXME: error should be checked. + b.WriteString("NOTIFY * HTTP/1.1\r\n") + fmt.Fprintf(b, "HOST: %s\r\n", raddr.String()) + fmt.Fprintf(b, "NT: %s\r\n", nt) + fmt.Fprintf(b, "NTS: %s\r\n", "ssdp:byebye") + fmt.Fprintf(b, "USN: %s\r\n", usn) + b.WriteString("\r\n") + return b.Bytes(), nil +} diff --git a/vendor/github.com/koron/go-ssdp/interface.go b/vendor/github.com/koron/go-ssdp/interface.go new file mode 100644 index 00000000..8c4cf55d --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/interface.go @@ -0,0 +1,39 @@ +package ssdp + +import "net" + +// Interfaces specify target interfaces to multicast. If no interfaces are +// specified, all interfaces will be used. +var Interfaces []net.Interface + +func interfacesIPv4() []net.Interface { + iflist, err := net.Interfaces() + if err != nil { + return nil + } + list := make([]net.Interface, 0, len(iflist)) + for _, ifi := range iflist { + if !hasIPv4Address(&ifi) { + continue + } + list = append(list, ifi) + } + return list +} + +func hasIPv4Address(ifi *net.Interface) bool { + addrs, err := ifi.Addrs() + if err != nil { + return false + } + for _, a := range addrs { + ip, _, err := net.ParseCIDR(a.String()) + if err != nil { + continue + } + if len(ip.To4()) == net.IPv4len && !ip.IsUnspecified() { + return true + } + } + return false +} diff --git a/vendor/github.com/koron/go-ssdp/log.go b/vendor/github.com/koron/go-ssdp/log.go new file mode 100644 index 00000000..a4be85ad --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/log.go @@ -0,0 +1,12 @@ +package ssdp + +import "log" + +// Logger is default logger for SSDP module. +var Logger *log.Logger + +func logf(s string, a ...interface{}) { + if Logger != nil { + Logger.Printf(s, a...) + } +} diff --git a/vendor/github.com/koron/go-ssdp/monitor.go b/vendor/github.com/koron/go-ssdp/monitor.go new file mode 100644 index 00000000..686d4f9f --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/monitor.go @@ -0,0 +1,173 @@ +package ssdp + +import ( + "bufio" + "bytes" + "fmt" + "io" + "net" + "net/http" + "sync" +) + +// Monitor monitors SSDP's alive and byebye messages. +type Monitor struct { + alive AliveHandler + bye ByeHandler + conn net.PacketConn + wg sync.WaitGroup +} + +// NewMonitor creates a new Monitor. +func NewMonitor(alive AliveHandler, bye ByeHandler) (*Monitor, error) { + if alive == nil { + alive = nullAlive + } + if bye == nil { + bye = nullBye + } + conn, err := multicastListen("0.0.0.0:1900") + if err != nil { + return nil, err + } + logf("monitoring on %s", conn.LocalAddr().String()) + m := &Monitor{ + alive: alive, + bye: bye, + conn: conn, + } + m.wg.Add(1) + go func() { + m.serve() + m.wg.Done() + }() + return m, nil +} + +func (m *Monitor) serve() error { + buf := make([]byte, 65535) + for { + n, addr, err := m.conn.ReadFrom(buf) + if err != nil { + if err == io.EOF { + return nil + } + return err + } + msg := make([]byte, n) + copy(msg, buf[:n]) + go m.handleRaw(addr, msg) + } +} + +func (m *Monitor) handleRaw(addr net.Addr, raw []byte) error { + req, err := http.ReadRequest(bufio.NewReader(bytes.NewReader(raw))) + if err != nil { + return err + } + switch nts := req.Header.Get("NTS"); nts { + case "ssdp:alive": + if req.Method != "NOTIFY" { + return fmt.Errorf("unexpected method for %q: %s", "ssdp:alive", req.Method) + } + m.alive(&Alive{ + From: addr, + Type: req.Header.Get("NT"), + USN: req.Header.Get("USN"), + Location: req.Header.Get("LOCATION"), + Server: req.Header.Get("SERVER"), + rawHeader: req.Header, + }) + case "ssdp:byebye": + if req.Method != "NOTIFY" { + return fmt.Errorf("unexpected method for %q: %s", "ssdp:byebye", req.Method) + } + m.bye(&Bye{ + From: addr, + Type: req.Header.Get("NT"), + USN: req.Header.Get("USN"), + rawHeader: req.Header, + }) + default: + return fmt.Errorf("unknown NTS: %s", nts) + } + return nil +} + +// Close closes monitoring. +func (m *Monitor) Close() error { + if m.conn != nil { + m.conn.Close() + m.conn = nil + m.wg.Wait() + } + return nil +} + +// Alive represents SSDP's ssdp:alive message. +type Alive struct { + // From is a sender of this message + From net.Addr + + // Type is a property of "NT" + Type string + + // USN is a property of "USN" + USN string + + // Location is a property of "LOCATION" + Location string + + // Server is a property of "SERVER" + Server string + + rawHeader http.Header + maxAge *int +} + +// Header returns all properties in response of search. +func (m *Alive) Header() http.Header { + return m.rawHeader +} + +// MaxAge extracts "max-age" value from "CACHE-CONTROL" property. +func (m *Alive) MaxAge() int { + if m.maxAge == nil { + m.maxAge = new(int) + *m.maxAge = extractMaxAge(m.rawHeader.Get("CACHE-CONTROL"), -1) + } + return *m.maxAge +} + +// AliveHandler is handler of Alive message. +type AliveHandler func(*Alive) + +func nullAlive(*Alive) { + // nothing to do. +} + +// Bye represents SSDP's ssdp:byebye message. +type Bye struct { + // From is a sender of this message + From net.Addr + + // Type is a property of "NT" + Type string + + // USN is a property of "USN" + USN string + + rawHeader http.Header +} + +// Header returns all properties in response of search. +func (m *Bye) Header() http.Header { + return m.rawHeader +} + +// ByeHandler is handler of Bye message. +type ByeHandler func(*Bye) + +func nullBye(*Bye) { + // nothing to do. +} diff --git a/vendor/github.com/koron/go-ssdp/search.go b/vendor/github.com/koron/go-ssdp/search.go new file mode 100644 index 00000000..0bc07758 --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/search.go @@ -0,0 +1,139 @@ +package ssdp + +import ( + "bufio" + "bytes" + "errors" + "fmt" + "net" + "net/http" + "regexp" + "strconv" + "time" +) + +// Service is discovered service. +type Service struct { + // Type is a property of "ST" + Type string + + // USN is a property of "USN" + USN string + + // Location is a property of "LOCATION" + Location string + + // Server is a property of "SERVER" + Server string + + rawHeader http.Header + maxAge *int +} + +var rxMaxAge = regexp.MustCompile(`\bmax-age\s*=\s*(\d+)\b`) + +func extractMaxAge(s string, value int) int { + v := value + if m := rxMaxAge.FindStringSubmatch(s); m != nil { + i64, err := strconv.ParseInt(m[1], 10, 32) + if err == nil { + v = int(i64) + } + } + return v +} + +// MaxAge extracts "max-age" value from "CACHE-CONTROL" property. +func (s *Service) MaxAge() int { + if s.maxAge == nil { + s.maxAge = new(int) + *s.maxAge = extractMaxAge(s.rawHeader.Get("CACHE-CONTROL"), -1) + } + return *s.maxAge +} + +// Header returns all properties in response of search. +func (s *Service) Header() http.Header { + return s.rawHeader +} + +const ( + // All is a search type to search all services and devices. + All = "ssdp:all" + + // RootDevice is a search type to search UPnP root devices. + RootDevice = "upnp:rootdevice" +) + +// Search searchs services by SSDP. +func Search(searchType string, waitSec int, localAddr string) ([]Service, error) { + // dial multicast UDP packet. + conn, err := multicastListen(localAddr) + if err != nil { + return nil, err + } + defer conn.Close() + logf("search on %s", conn.LocalAddr().String()) + + // send request. + msg, err := buildSearch(ssdpAddrIPv4, searchType, waitSec) + if err != nil { + return nil, err + } + if _, err := conn.WriteTo(msg, ssdpAddrIPv4); err != nil { + return nil, err + } + + // wait response. + var list []Service + h := func(a net.Addr, d []byte) error { + srv, err := parseService(a, d) + if err != nil { + logf("invalid search response from %s: %s", a.String(), err) + return nil + } + list = append(list, *srv) + logf("search response from %s: %s", a.String(), srv.USN) + return nil + } + d := time.Second * time.Duration(waitSec) + if err := readPackets(conn, d, h); err != nil { + return nil, err + } + + return list, err +} + +func buildSearch(raddr net.Addr, searchType string, waitSec int) ([]byte, error) { + b := new(bytes.Buffer) + // FIXME: error should be checked. + b.WriteString("M-SEARCH * HTTP/1.1\r\n") + fmt.Fprintf(b, "HOST: %s\r\n", raddr.String()) + fmt.Fprintf(b, "MAN: %q\r\n", "ssdp:discover") + fmt.Fprintf(b, "MX: %d\r\n", waitSec) + fmt.Fprintf(b, "ST: %s\r\n", searchType) + b.WriteString("\r\n") + return b.Bytes(), nil +} + +var ( + errWithoutHTTPPrefix = errors.New("without HTTP prefix") +) + +func parseService(addr net.Addr, data []byte) (*Service, error) { + if !bytes.HasPrefix(data, []byte("HTTP")) { + return nil, errWithoutHTTPPrefix + } + resp, err := http.ReadResponse(bufio.NewReader(bytes.NewReader(data)), nil) + if err != nil { + return nil, err + } + defer resp.Body.Close() + return &Service{ + Type: resp.Header.Get("ST"), + USN: resp.Header.Get("USN"), + Location: resp.Header.Get("LOCATION"), + Server: resp.Header.Get("SERVER"), + rawHeader: resp.Header, + }, nil +} diff --git a/vendor/github.com/koron/go-ssdp/udp.go b/vendor/github.com/koron/go-ssdp/udp.go new file mode 100644 index 00000000..f227e3a3 --- /dev/null +++ b/vendor/github.com/koron/go-ssdp/udp.go @@ -0,0 +1,96 @@ +package ssdp + +import ( + "errors" + "net" + "time" + + "golang.org/x/net/ipv4" +) + +var ( + ssdpAddrIPv4 *net.UDPAddr +) + +func init() { + var err error + ssdpAddrIPv4, err = net.ResolveUDPAddr("udp4", "239.255.255.250:1900") + if err != nil { + panic(err) + } +} + +type packetHandler func(net.Addr, []byte) error + +func readPackets(conn *net.UDPConn, timeout time.Duration, h packetHandler) error { + buf := make([]byte, 65535) + conn.SetReadBuffer(len(buf)) + conn.SetReadDeadline(time.Now().Add(timeout)) + for { + n, addr, err := conn.ReadFrom(buf) + if err != nil { + if nerr, ok := err.(net.Error); ok && nerr.Timeout() { + return nil + } + return err + } + if err := h(addr, buf[:n]); err != nil { + return err + } + } +} + +func sendTo(to *net.UDPAddr, data []byte) (int, error) { + conn, err := net.DialUDP("udp4", nil, to) + if err != nil { + return 0, err + } + defer conn.Close() + n, err := conn.Write(data) + if err != nil { + return 0, err + } + return n, nil +} + +func multicastListen(localAddr string) (*net.UDPConn, error) { + // prepare parameters. + laddr, err := net.ResolveUDPAddr("udp4", localAddr) + if err != nil { + return nil, err + } + // connect. + conn, err := net.ListenUDP("udp4", laddr) + if err != nil { + return nil, err + } + // configure socket to use with multicast. + if err := joinGroupIPv4(conn, Interfaces, ssdpAddrIPv4); err != nil { + conn.Close() + return nil, err + } + return conn, err +} + +// joinGroupIPv4 makes the connection join to a group on interfaces. +func joinGroupIPv4(conn net.PacketConn, iflist []net.Interface, gaddr net.Addr) error { + wrap := ipv4.NewPacketConn(conn) + wrap.SetMulticastLoopback(true) + if len(iflist) == 0 { + iflist = interfacesIPv4() + } + // add interfaces to multicast group. + joined := 0 + for _, ifi := range iflist { + if err := wrap.JoinGroup(&ifi, gaddr); err != nil { + logf("failed to join group %s on %s: %s", gaddr.String(), ifi.Name, err) + continue + } + joined++ + logf("joined gropup %s on %s", gaddr.String(), ifi.Name) + } + if joined == 0 { + return errors.New("no interfaces had joined to group") + } + return nil +} diff --git a/vendor/github.com/libp2p/go-addr-util/.travis.yml b/vendor/github.com/libp2p/go-addr-util/.travis.yml new file mode 100644 index 00000000..dde69d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - /Users/raul/go/src/gx + - /Users/raul/go/pkg/mod + - /Users/raul/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-addr-util/LICENSE b/vendor/github.com/libp2p/go-addr-util/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-addr-util/Makefile b/vendor/github.com/libp2p/go-addr-util/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-addr-util/README.md b/vendor/github.com/libp2p/go-addr-util/README.md new file mode 100644 index 00000000..617ea6af --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/README.md @@ -0,0 +1,34 @@ +go-addr-util +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![codecov](https://codecov.io/gh/libp2p/go-addr-util/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-addr-util) +[![Travis CI](https://travis-ci.org/libp2p/go-addr-util.svg?branch=master)](https://travis-ci.org/libp2p/go-addr-util) + +> Address utilities for libp2p swarm. + +## Table of Contents + +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-addr-util/issues)! + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-addr-util/addr.go b/vendor/github.com/libp2p/go-addr-util/addr.go new file mode 100644 index 00000000..3a922a6e --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/addr.go @@ -0,0 +1,197 @@ +package addrutil + +import ( + "context" + "fmt" + + logging "github.com/ipfs/go-log" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +var log = logging.Logger("addrutil") + +// FilterAddrs is a filter that removes certain addresses, according to the given filters. +// If all filters return true, the address is kept. +func FilterAddrs(a []ma.Multiaddr, filters ...func(ma.Multiaddr) bool) []ma.Multiaddr { + b := make([]ma.Multiaddr, 0, len(a)) + for _, addr := range a { + good := true + for _, filter := range filters { + good = good && filter(addr) + } + if good { + b = append(b, addr) + } + } + return b +} + +// AddrOverNonLocalIP returns whether the addr uses a non-local ip link +func AddrOverNonLocalIP(a ma.Multiaddr) bool { + split := ma.Split(a) + if len(split) < 1 { + return false + } + if manet.IsIP6LinkLocal(split[0]) { + return false + } + return true +} + +// ResolveUnspecifiedAddress expands an unspecified ip addresses (/ip4/0.0.0.0, /ip6/::) to +// use the known local interfaces. If ifaceAddr is nil, we request interface addresses +// from the network stack. (this is so you can provide a cached value if resolving many addrs) +func ResolveUnspecifiedAddress(resolve ma.Multiaddr, ifaceAddrs []ma.Multiaddr) ([]ma.Multiaddr, error) { + // split address into its components + split := ma.Split(resolve) + + // if first component (ip) is not unspecified, use it as is. + if !manet.IsIPUnspecified(split[0]) { + return []ma.Multiaddr{resolve}, nil + } + + out := make([]ma.Multiaddr, 0, len(ifaceAddrs)) + for _, ia := range ifaceAddrs { + // must match the first protocol to be resolve. + if ia.Protocols()[0].Code != resolve.Protocols()[0].Code { + continue + } + + split[0] = ia + joined := ma.Join(split...) + out = append(out, joined) + log.Debug("adding resolved addr:", resolve, joined, out) + } + if len(out) < 1 { + return nil, fmt.Errorf("failed to resolve: %s", resolve) + } + return out, nil +} + +// ResolveUnspecifiedAddresses expands unspecified ip addresses (/ip4/0.0.0.0, /ip6/::) to +// use the known local interfaces. +func ResolveUnspecifiedAddresses(unspecAddrs, ifaceAddrs []ma.Multiaddr) ([]ma.Multiaddr, error) { + + // todo optimize: only fetch these if we have a "any" addr. + if len(ifaceAddrs) < 1 { + var err error + ifaceAddrs, err = InterfaceAddresses() + if err != nil { + return nil, err + } + // log.Debug("InterfaceAddresses:", ifaceAddrs) + } + + var outputAddrs []ma.Multiaddr + for _, a := range unspecAddrs { + // unspecified? + resolved, err := ResolveUnspecifiedAddress(a, ifaceAddrs) + if err != nil { + continue // optimistic. if we cant resolve anything, we'll know at the bottom. + } + // log.Debug("resolved:", a, resolved) + outputAddrs = append(outputAddrs, resolved...) + } + + if len(outputAddrs) < 1 { + return nil, fmt.Errorf("failed to specify addrs: %s", unspecAddrs) + } + + log.Event(context.TODO(), "interfaceListenAddresses", func() logging.Loggable { + var addrs []string + for _, addr := range outputAddrs { + addrs = append(addrs, addr.String()) + } + return logging.Metadata{"addresses": addrs} + }()) + + log.Debug("ResolveUnspecifiedAddresses:", unspecAddrs, ifaceAddrs, outputAddrs) + return outputAddrs, nil +} + +// InterfaceAddresses returns a list of addresses associated with local machine +// Note: we do not return link local addresses. IP loopback is ok, because we +// may be connecting to other nodes in the same machine. +func InterfaceAddresses() ([]ma.Multiaddr, error) { + maddrs, err := manet.InterfaceMultiaddrs() + if err != nil { + return nil, err + } + log.Debug("InterfaceAddresses: from manet:", maddrs) + + var out []ma.Multiaddr + for _, a := range maddrs { + if !AddrOverNonLocalIP(a) { + // log.Debug("InterfaceAddresses: skipping unusable:", a) + continue + } + + out = append(out, a) + } + + log.Debug("InterfaceAddresses: usable:", out) + return out, nil +} + +// AddrInList returns whether or not an address is part of a list. +// this is useful to check if NAT is happening (or other bugs?) +func AddrInList(addr ma.Multiaddr, list []ma.Multiaddr) bool { + for _, addr2 := range list { + if addr.Equal(addr2) { + return true + } + } + return false +} + +// AddrIsShareableOnWAN returns whether the given address should be shareable on the +// wide area network (wide internet). +func AddrIsShareableOnWAN(addr ma.Multiaddr) bool { + s := ma.Split(addr) + if len(s) < 1 { + return false + } + a := s[0] + if manet.IsIPLoopback(a) || manet.IsIP6LinkLocal(a) || manet.IsIPUnspecified(a) { + return false + } + return manet.IsThinWaist(a) +} + +// WANShareableAddrs filters addresses based on whether they're shareable on WAN +func WANShareableAddrs(inp []ma.Multiaddr) []ma.Multiaddr { + return FilterAddrs(inp, AddrIsShareableOnWAN) +} + +// Subtract filters out all addrs in b from a +func Subtract(a, b []ma.Multiaddr) []ma.Multiaddr { + return FilterAddrs(a, func(m ma.Multiaddr) bool { + for _, bb := range b { + if m.Equal(bb) { + return false + } + } + return true + }) +} + +// CheckNATWarning checks if our observed addresses differ. if so, +// informs the user that certain things might not work yet +func CheckNATWarning(observed, expected ma.Multiaddr, listen []ma.Multiaddr) { + if observed.Equal(expected) { + return + } + + if !AddrInList(observed, listen) { // probably a nat + log.Warningf(natWarning, observed, listen) + } +} + +const natWarning = `Remote peer observed our address to be: %s +The local addresses are: %s +Thus, connection is going through NAT, and other connections may fail. + +IPFS NAT traversal is still under development. Please bug us on github or irc to fix this. +Baby steps: http://jbenet.static.s3.amazonaws.com/271dfcf/baby-steps.gif +` diff --git a/vendor/github.com/libp2p/go-addr-util/codecov.yml b/vendor/github.com/libp2p/go-addr-util/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-addr-util/filter.go b/vendor/github.com/libp2p/go-addr-util/filter.go new file mode 100644 index 00000000..dc9cddbf --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/filter.go @@ -0,0 +1,31 @@ +package addrutil + +import ( + ma "github.com/multiformats/go-multiaddr" + mafmt "github.com/whyrusleeping/mafmt" +) + +// SubtractFilter returns a filter func that filters all of the given addresses +func SubtractFilter(addrs ...ma.Multiaddr) func(ma.Multiaddr) bool { + addrmap := make(map[string]bool, len(addrs)) + for _, a := range addrs { + addrmap[string(a.Bytes())] = true + } + + return func(a ma.Multiaddr) bool { + return !addrmap[string(a.Bytes())] + } +} + +// IsFDCostlyTransport returns true for transports that require a new file +// descriptor per connection created +func IsFDCostlyTransport(a ma.Multiaddr) bool { + return mafmt.TCP.Matches(a) +} + +// FilterNeg returns a negated version of the passed in filter +func FilterNeg(f func(ma.Multiaddr) bool) func(ma.Multiaddr) bool { + return func(a ma.Multiaddr) bool { + return !f(a) + } +} diff --git a/vendor/github.com/libp2p/go-addr-util/go.mod b/vendor/github.com/libp2p/go-addr-util/go.mod new file mode 100644 index 00000000..f13ba7fc --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/go.mod @@ -0,0 +1,8 @@ +module github.com/libp2p/go-addr-util + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/whyrusleeping/mafmt v1.2.8 +) diff --git a/vendor/github.com/libp2p/go-addr-util/go.sum b/vendor/github.com/libp2p/go-addr-util/go.sum new file mode 100644 index 00000000..a9e0c634 --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/go.sum @@ -0,0 +1,49 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/libp2p/go-addr-util/package.json b/vendor/github.com/libp2p/go-addr-util/package.json new file mode 100644 index 00000000..55abab99 --- /dev/null +++ b/vendor/github.com/libp2p/go-addr-util/package.json @@ -0,0 +1,41 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-addr-util/issues" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-addr-util" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "jbenet", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "author": "whyrusleeping", + "hash": "QmUrZZavcArYChpibtP8KgQXsAEpvgzUk73B2oj3HLbWc4", + "name": "mafmt", + "version": "1.2.11" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "MIT", + "name": "go-addr-util", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.11" +} + diff --git a/vendor/github.com/libp2p/go-buffer-pool/.travis.yml b/vendor/github.com/libp2p/go-buffer-pool/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-buffer-pool/LICENSE b/vendor/github.com/libp2p/go-buffer-pool/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-buffer-pool/LICENSE-BSD b/vendor/github.com/libp2p/go-buffer-pool/LICENSE-BSD new file mode 100644 index 00000000..97ece789 --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/LICENSE-BSD @@ -0,0 +1,29 @@ +### Applies to buffer.go and buffer_test.go ### + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/libp2p/go-buffer-pool/Makefile b/vendor/github.com/libp2p/go-buffer-pool/Makefile new file mode 100644 index 00000000..2c5fbfe2 --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/Makefile @@ -0,0 +1,10 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo diff --git a/vendor/github.com/libp2p/go-buffer-pool/README.md b/vendor/github.com/libp2p/go-buffer-pool/README.md new file mode 100644 index 00000000..745d21cc --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/README.md @@ -0,0 +1,48 @@ +go-buffer-pool +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-blue.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23libp2p) +[![codecov](https://codecov.io/gh/libp2p/go-buffer-pool/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-buffer-pool) +[![Travis CI](https://travis-ci.org/libp2p/go-buffer-pool.svg?branch=master)](https://travis-ci.org/libp2p/go-buffer-pool) + +> A variable size buffer pool for go. + +## Table of Contents + +- [Use Case](#use-case) + - [Advantages over GC](#advantages-over-gc) + - [Disadvantages over GC:](#disadvantages-over-gc) +- [Contribute](#contribute) +- [License](#license) + +## Use Case + +Use this when you need to repeatedly allocate and free a bunch of temporary buffers of approximately the same size. + +### Advantages over GC + +* Reduces Memory Usage: + * We don't have to wait for a GC to run before we can reuse memory. This is essential if you're repeatedly allocating large short-lived buffers. + +* Reduces CPU usage: + * It takes some load off of the GC (due to buffer reuse). + * We don't have to zero buffers (fewer wasteful memory writes). + +### Disadvantages over GC: + +* Can leak memory contents. Unlike the go GC, we *don't* zero memory. +* All buffers have a capacity of a power of 2. This is fine if you either (a) actually need buffers with this size or (b) expect these buffers to be temporary. +* Requires that buffers be returned explicitly. This can lead to race conditions and memory corruption if the buffer is released while it's still in use. + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs +BSD © The Go Authors diff --git a/vendor/github.com/libp2p/go-buffer-pool/buffer.go b/vendor/github.com/libp2p/go-buffer-pool/buffer.go new file mode 100644 index 00000000..2e4645a9 --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/buffer.go @@ -0,0 +1,302 @@ +// This is a derivitive work of Go's bytes.Buffer implementation. +// +// Originally copyright 2009 The Go Authors. All rights reserved. +// +// Modifications copyright 2018 Steven Allen. All rights reserved. +// +// Use of this source code is governed by both a BSD-style and an MIT-style +// license that can be found in the LICENSE_BSD and LICENSE files. + +package pool + +import ( + "io" +) + +// Buffer is a buffer like bytes.Buffer that: +// +// 1. Uses a buffer pool. +// 2. Frees memory on read. +// +// If you only have a few buffers and read/write at a steady rate, *don't* use +// this package, it'll be slower. +// +// However: +// +// 1. If you frequently create/destroy buffers, this implementation will be +// significantly nicer to the allocator. +// 2. If you have many buffers with bursty traffic, this implementation will use +// significantly less memory. +type Buffer struct { + // Pool is the buffer pool to use. If nil, this Buffer will use the + // global buffer pool. + Pool *BufferPool + + buf []byte + rOff int + + // Preallocated slice for samll reads/writes. + // This is *really* important for performance and only costs 8 words. + bootstrap [64]byte +} + +// NewBuffer constructs a new buffer initialized to `buf`. +// Unlike `bytes.Buffer`, we *copy* the buffer but don't reuse it (to ensure +// that we *only* use buffers from the pool). +func NewBuffer(buf []byte) *Buffer { + b := new(Buffer) + if len(buf) > 0 { + b.buf = b.getBuf(len(buf)) + copy(b.buf, buf) + } + return b +} + +// NewBufferString is identical to NewBuffer *except* that it allows one to +// initialize the buffer from a string (without having to allocate an +// intermediate bytes slice). +func NewBufferString(buf string) *Buffer { + b := new(Buffer) + if len(buf) > 0 { + b.buf = b.getBuf(len(buf)) + copy(b.buf, buf) + } + return b +} + +func (b *Buffer) grow(n int) int { + wOff := len(b.buf) + bCap := cap(b.buf) + + if bCap >= wOff+n { + b.buf = b.buf[:wOff+n] + return wOff + } + + bSize := b.Len() + + minCap := 2*bSize + n + + // Slide if cap >= minCap. + // Reallocate otherwise. + if bCap >= minCap { + copy(b.buf, b.buf[b.rOff:]) + } else { + // Needs new buffer. + newBuf := b.getBuf(minCap) + copy(newBuf, b.buf[b.rOff:]) + b.returnBuf() + b.buf = newBuf + } + + b.rOff = 0 + b.buf = b.buf[:bSize+n] + return bSize +} + +func (b *Buffer) getPool() *BufferPool { + if b.Pool == nil { + return GlobalPool + } + return b.Pool +} + +func (b *Buffer) returnBuf() { + if cap(b.buf) > len(b.bootstrap) { + b.getPool().Put(b.buf) + } + b.buf = nil +} + +func (b *Buffer) getBuf(n int) []byte { + if n <= len(b.bootstrap) { + return b.bootstrap[:n] + } + return b.getPool().Get(n) +} + +// Len returns the number of bytes that can be read from this buffer. +func (b *Buffer) Len() int { + return len(b.buf) - b.rOff +} + +// Cap returns the current capacity of the buffer. +// +// Note: Buffer *may* re-allocate when writing (or growing by) `n` bytes even if +// `Cap() < Len() + n` to avoid excessive copying. +func (b *Buffer) Cap() int { + return cap(b.buf) +} + +// Bytes returns the slice of bytes currently buffered in the Buffer. +// +// The buffer returned by Bytes is valid until the next call grow, truncate, +// read, or write. Really, just don't touch the Buffer until you're done with +// the return value of this function. +func (b *Buffer) Bytes() []byte { + return b.buf[b.rOff:] +} + +// String returns the string representation of the buffer. +// +// It returns `` the buffer is a nil pointer. +func (b *Buffer) String() string { + if b == nil { + return "" + } + return string(b.buf[b.rOff:]) +} + +// WriteString writes a string to the buffer. +// +// This function is identical to Write except that it allows one to write a +// string directly without allocating an intermediate byte slice. +func (b *Buffer) WriteString(buf string) (int, error) { + wOff := b.grow(len(buf)) + return copy(b.buf[wOff:], buf), nil +} + +// Truncate truncates the Buffer. +// +// Panics if `n > b.Len()`. +// +// This function may free memory by shrinking the internal buffer. +func (b *Buffer) Truncate(n int) { + if n < 0 || n > b.Len() { + panic("truncation out of range") + } + b.buf = b.buf[:b.rOff+n] + b.shrink() +} + +// Reset is equivalent to Truncate(0). +func (b *Buffer) Reset() { + b.returnBuf() + b.rOff = 0 +} + +// ReadByte reads a single byte from the Buffer. +func (b *Buffer) ReadByte() (byte, error) { + if b.rOff >= len(b.buf) { + return 0, io.EOF + } + c := b.buf[b.rOff] + b.rOff++ + return c, nil +} + +// WriteByte writes a single byte to the Buffer. +func (b *Buffer) WriteByte(c byte) error { + wOff := b.grow(1) + b.buf[wOff] = c + return nil +} + +// Grow grows the internal buffer such that `n` bytes can be written without +// reallocating. +func (b *Buffer) Grow(n int) { + wOff := b.grow(n) + b.buf = b.buf[:wOff] +} + +// Next is an alternative to `Read` that returns a byte slice instead of taking +// one. +// +// The returned byte slice is valid until the next read, write, grow, or +// truncate. +func (b *Buffer) Next(n int) []byte { + m := b.Len() + if m < n { + n = m + } + data := b.buf[b.rOff : b.rOff+n] + b.rOff += n + return data +} + +// Write writes the byte slice to the buffer. +func (b *Buffer) Write(buf []byte) (int, error) { + wOff := b.grow(len(buf)) + return copy(b.buf[wOff:], buf), nil +} + +// WriteTo copies from the buffer into the given writer until the buffer is +// empty. +func (b *Buffer) WriteTo(w io.Writer) (int64, error) { + if b.rOff < len(b.buf) { + n, err := w.Write(b.buf[b.rOff:]) + b.rOff += n + if b.rOff > len(b.buf) { + panic("invalid write count") + } + b.shrink() + return int64(n), err + } + return 0, nil +} + +// MinRead is the minimum slice size passed to a Read call by +// Buffer.ReadFrom. As long as the Buffer has at least MinRead bytes beyond +// what is required to hold the contents of r, ReadFrom will not grow the +// underlying buffer. +const MinRead = 512 + +// ReadFrom reads from the given reader into the buffer. +func (b *Buffer) ReadFrom(r io.Reader) (int64, error) { + n := int64(0) + for { + wOff := b.grow(MinRead) + // Use *entire* buffer. + b.buf = b.buf[:cap(b.buf)] + + read, err := r.Read(b.buf[wOff:]) + b.buf = b.buf[:wOff+read] + n += int64(read) + switch err { + case nil: + case io.EOF: + err = nil + fallthrough + default: + b.shrink() + return n, err + } + } +} + +// Read reads at most `len(buf)` bytes from the internal buffer into the given +// buffer. +func (b *Buffer) Read(buf []byte) (int, error) { + if len(buf) == 0 { + return 0, nil + } + if b.rOff >= len(b.buf) { + return 0, io.EOF + } + n := copy(buf, b.buf[b.rOff:]) + b.rOff += n + b.shrink() + return n, nil +} + +func (b *Buffer) shrink() { + c := b.Cap() + // Either nil or bootstrap. + if c <= len(b.bootstrap) { + return + } + + l := b.Len() + if l == 0 { + // Shortcut if empty. + b.returnBuf() + b.rOff = 0 + } else if l*8 < c { + // Only shrink when capacity > 8x length. Avoids shrinking too aggressively. + newBuf := b.getBuf(l) + copy(newBuf, b.buf[b.rOff:]) + b.returnBuf() + b.rOff = 0 + b.buf = newBuf[:l] + } +} diff --git a/vendor/github.com/libp2p/go-buffer-pool/codecov.yml b/vendor/github.com/libp2p/go-buffer-pool/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-buffer-pool/go.mod b/vendor/github.com/libp2p/go-buffer-pool/go.mod new file mode 100644 index 00000000..4e3c78e9 --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/go.mod @@ -0,0 +1 @@ +module github.com/libp2p/go-buffer-pool diff --git a/vendor/github.com/libp2p/go-buffer-pool/package.json b/vendor/github.com/libp2p/go-buffer-pool/package.json new file mode 100644 index 00000000..bf5ed0ca --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/package.json @@ -0,0 +1,16 @@ +{ + "author": "Stebalien", + "bugs": { + "url": "github.com/libp2p/go-buffer-pool/issues" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-buffer-pool" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT+BSD", + "name": "go-buffer-pool", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.3" +} + diff --git a/vendor/github.com/libp2p/go-buffer-pool/pool.go b/vendor/github.com/libp2p/go-buffer-pool/pool.go new file mode 100644 index 00000000..d812840a --- /dev/null +++ b/vendor/github.com/libp2p/go-buffer-pool/pool.go @@ -0,0 +1,115 @@ +// Package pool provides a sync.Pool equivalent that buckets incoming +// requests to one of 32 sub-pools, one for each power of 2, 0-32. +// +// import (pool "github.com/libp2p/go-buffer-pool") +// var p pool.BufferPool +// +// small := make([]byte, 1024) +// large := make([]byte, 4194304) +// p.Put(small) +// p.Put(large) +// +// small2 := p.Get(1024) +// large2 := p.Get(4194304) +// fmt.Println("small2 len:", len(small2)) +// fmt.Println("large2 len:", len(large2)) +// +// // Output: +// // small2 len: 1024 +// // large2 len: 4194304 +// +package pool + +import ( + "math" + "math/bits" + "sync" +) + +// GlobalPool is a static Pool for reusing byteslices of various sizes. +var GlobalPool = new(BufferPool) + +// MaxLength is the maximum length of an element that can be added to the Pool. +const MaxLength = math.MaxInt32 + +// BufferPool is a pool to handle cases of reusing elements of varying sizes. It +// maintains 32 internal pools, for each power of 2 in 0-32. +// +// You should generally just call the package level Get and Put methods or use +// the GlobalPool BufferPool instead of constructing your own. +// +// You MUST NOT copy Pool after using. +type BufferPool struct { + pools [32]sync.Pool // a list of singlePools + ptrs sync.Pool +} + +type bufp struct { + buf []byte +} + +// Get retrieves a buffer of the appropriate length from the buffer pool or +// allocates a new one. Get may choose to ignore the pool and treat it as empty. +// Callers should not assume any relation between values passed to Put and the +// values returned by Get. +// +// If no suitable buffer exists in the pool, Get creates one. +func (p *BufferPool) Get(length int) []byte { + if length == 0 { + return nil + } + if length > MaxLength { + return make([]byte, length) + } + idx := nextLogBase2(uint32(length)) + if ptr := p.pools[idx].Get(); ptr != nil { + bp := ptr.(*bufp) + buf := bp.buf[:uint32(length)] + bp.buf = nil + p.ptrs.Put(ptr) + return buf + } + return make([]byte, 1< MaxLength { + return // drop it + } + idx := prevLogBase2(uint32(capacity)) + var bp *bufp + if ptr := p.ptrs.Get(); ptr != nil { + bp = ptr.(*bufp) + } else { + bp = new(bufp) + } + bp.buf = buf + p.pools[idx].Put(bp) +} + +// Get retrieves a buffer of the appropriate length from the global buffer pool +// (or allocates a new one). +func Get(length int) []byte { + return GlobalPool.Get(length) +} + +// Put returns a buffer to the global buffer pool. +func Put(slice []byte) { + GlobalPool.Put(slice) +} + +// Log of base two, round up (for v > 0). +func nextLogBase2(v uint32) uint32 { + return uint32(bits.Len32(v - 1)) +} + +// Log of base two, round down (for v > 0) +func prevLogBase2(num uint32) uint32 { + next := nextLogBase2(num) + if num == (1 << uint32(next)) { + return next + } + return next - 1 +} diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/.travis.yml b/vendor/github.com/libp2p/go-conn-security-multistream/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/LICENSE b/vendor/github.com/libp2p/go-conn-security-multistream/LICENSE new file mode 100644 index 00000000..6cccfc2b --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/README.md b/vendor/github.com/libp2p/go-conn-security-multistream/README.md new file mode 100644 index 00000000..be78746e --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/README.md @@ -0,0 +1,62 @@ +# go-conn-security-multistream + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-conn-security-multistream?status.svg)](https://godoc.org/github.com/libp2p/go-conn-security-multistream) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-conn-security-multistream/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-conn-security-multistream?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-conn-security-multistream.svg?branch=master)](https://travis-ci.org/libp2p/go-conn-security-multistream) + +> Connection security multistream multiplexer + +This package provides a multistream multiplexed [security transport](https://github.com/libp2p/go-conn-security). It: + +1. Selects a security security transport using multistream-select. +2. Secures the stream using the selected transport. + +Known libp2p security transports include: + +* [go-libp2p-secio](https://github.com/libp2p/go-libp2p-secio) + +## Install + +`go-conn-security-multistream` is a standard Go module which can be installed with: + +```sh +go get github.com/libp2p/go-conn-security-multistream +``` + +Note that `go-conn-security-multistream` is packaged with Gx, so it is recommended to use Gx to install and use it (see the Usage section). + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/libp2p/go-conn-security-multistream +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +For more information about how `go-conn-security-multistream` is used in the libp2p context, you can see the [go-libp2p-conn](https://github.com/libp2p/go-libp2p-conn) module. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-conn-security-multistream/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/libp2p/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/go.mod b/vendor/github.com/libp2p/go-conn-security-multistream/go.mod new file mode 100644 index 00000000..2ea048c8 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-conn-security-multistream + +require ( + github.com/libp2p/go-conn-security v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/multiformats/go-multistream v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/go.sum b/vendor/github.com/libp2p/go-conn-security-multistream/go.sum new file mode 100644 index 00000000..1e848e71 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/go.sum @@ -0,0 +1,110 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/package.json b/vendor/github.com/libp2p/go-conn-security-multistream/package.json new file mode 100644 index 00000000..f14cb147 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/package.json @@ -0,0 +1,36 @@ +{ + "author": "stebalien", + "bugs": { + "url": "https://github.com/libp2p/go-conn-security" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-conn-security-multistream" + }, + "gxDependencies": [ + { + "author": "Stebalien", + "hash": "QmPRoHqULmP4MuKAN5EFaJ64MLpeMY8cny2318xDBDmmkp", + "name": "go-conn-security", + "version": "0.1.28" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmabLh8TrJ3emfAoQk5AbqbLTbMyj7XqumMFmAFxa9epo8", + "name": "go-multistream", + "version": "0.3.9" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-conn-security-multistream", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.26" +} + diff --git a/vendor/github.com/libp2p/go-conn-security-multistream/ssms.go b/vendor/github.com/libp2p/go-conn-security-multistream/ssms.go new file mode 100644 index 00000000..312b775c --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security-multistream/ssms.go @@ -0,0 +1,87 @@ +package csms + +import ( + "context" + "fmt" + "net" + + connsec "github.com/libp2p/go-conn-security" + peer "github.com/libp2p/go-libp2p-peer" + mss "github.com/multiformats/go-multistream" +) + +// SSMuxer is a multistream stream security transport multiplexer. +// +// SSMuxer is safe to use without initialization. However, it's not safe to move +// after use. +type SSMuxer struct { + mux mss.MultistreamMuxer + tpts map[string]connsec.Transport + OrderPreference []string +} + +var _ connsec.Transport = (*SSMuxer)(nil) + +// AddTransport adds a stream security transport to this multistream muxer. +// +// This method is *not* thread-safe. It should be called only when initializing +// the SSMuxer. +func (sm *SSMuxer) AddTransport(path string, transport connsec.Transport) { + if sm.tpts == nil { + sm.tpts = make(map[string]connsec.Transport, 1) + } + + sm.mux.AddHandler(path, nil) + sm.tpts[path] = transport + sm.OrderPreference = append(sm.OrderPreference, path) +} + +// SecureInbound secures an inbound connection using this multistream +// multiplexed stream security transport. +func (sm *SSMuxer) SecureInbound(ctx context.Context, insecure net.Conn) (connsec.Conn, error) { + tpt, err := sm.selectProto(ctx, insecure, true) + if err != nil { + return nil, err + } + return tpt.SecureInbound(ctx, insecure) +} + +// SecureOutbound secures an outbound connection using this multistream +// multiplexed stream security transport. +func (sm *SSMuxer) SecureOutbound(ctx context.Context, insecure net.Conn, p peer.ID) (connsec.Conn, error) { + tpt, err := sm.selectProto(ctx, insecure, false) + if err != nil { + return nil, err + } + return tpt.SecureOutbound(ctx, insecure, p) +} + +func (sm *SSMuxer) selectProto(ctx context.Context, insecure net.Conn, server bool) (connsec.Transport, error) { + var proto string + var err error + done := make(chan struct{}) + go func() { + defer close(done) + if server { + proto, _, err = sm.mux.Negotiate(insecure) + } else { + proto, err = mss.SelectOneOf(sm.OrderPreference, insecure) + } + }() + + select { + case <-done: + if err != nil { + return nil, err + } + if tpt, ok := sm.tpts[proto]; ok { + return tpt, nil + } + return nil, fmt.Errorf("selected unknown security transport") + case <-ctx.Done(): + // We *must* do this. We have outstanding work on the connection + // and it's no longer safe to use. + insecure.Close() + return nil, ctx.Err() + } +} diff --git a/vendor/github.com/libp2p/go-conn-security/.travis.yml b/vendor/github.com/libp2p/go-conn-security/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-conn-security/LICENSE b/vendor/github.com/libp2p/go-conn-security/LICENSE new file mode 100644 index 00000000..6cccfc2b --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-conn-security/README.md b/vendor/github.com/libp2p/go-conn-security/README.md new file mode 100644 index 00000000..f34ab8d8 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/README.md @@ -0,0 +1,59 @@ +# go-conn-security + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-conn-security?status.svg)](https://godoc.org/github.com/libp2p/go-conn-security) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-conn-security/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-conn-security?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-conn-security.svg?branch=master)](https://travis-ci.org/libp2p/go-conn-security) + +> Stream security transport interfaces + +This package defines the interfaces that must be fulfilled by libp2p network security transports. Security transports take go `net.Conn` connections and upgrade them to encrypted and authenticated connections. + +Known libp2p security transports include: + +* [go-libp2p-secio](https://github.com/libp2p/go-libp2p-secio) + +## Install + +`go-conn-security` is a standard Go module which can be installed with: + +```sh +go get github.com/libp2p/go-conn-security +``` + +Note that `go-conn-security` is packaged with Gx, so it is recommended to use Gx to install and use it (see the Usage section). + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/libp2p/go-conn-security +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +For more information about how `go-conn-security` is used in the libp2p context, you can see the [go-libp2p-transport-upgrader](https://github.com/libp2p/go-libp2p-transport-upgrader) module. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-conn-security/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/libp2p/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-conn-security/go.mod b/vendor/github.com/libp2p/go-conn-security/go.mod new file mode 100644 index 00000000..e5831d35 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-conn-security + +require ( + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-conn-security/go.sum b/vendor/github.com/libp2p/go-conn-security/go.sum new file mode 100644 index 00000000..90920ecf --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/go.sum @@ -0,0 +1,106 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-conn-security/insecure/insecure.go b/vendor/github.com/libp2p/go-conn-security/insecure/insecure.go new file mode 100644 index 00000000..4c2cf6b0 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/insecure/insecure.go @@ -0,0 +1,86 @@ +package insecure + +import ( + "context" + "net" + + security "github.com/libp2p/go-conn-security" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" +) + +// ID is the multistream-select protocol ID that should be used when identifying +// this security transport. +const ID = "/plaintext/1.0.0" + +// Transport is a no-op stream security transport. It provides no +// security and simply wraps connections in blank +type Transport struct { + id peer.ID +} + +// New constructs a new insecure transport. +func New(id peer.ID) *Transport { + return &Transport{ + id: id, + } +} + +// LocalPeer returns the transports local peer ID. +func (t *Transport) LocalPeer() peer.ID { + return t.id +} + +// LocalPrivateKey returns nil. This transport is not secure. +func (t *Transport) LocalPrivateKey() ci.PrivKey { + return nil +} + +// SecureInbound *pretends to secure* an outbound connection to the given peer. +func (t *Transport) SecureInbound(ctx context.Context, insecure net.Conn) (security.Conn, error) { + return &Conn{ + Conn: insecure, + local: t.id, + }, nil +} + +// SecureOutbound *pretends to secure* an outbound connection to the given peer. +func (t *Transport) SecureOutbound(ctx context.Context, insecure net.Conn, p peer.ID) (security.Conn, error) { + return &Conn{ + Conn: insecure, + local: t.id, + remote: p, + }, nil +} + +// Conn is the connection type returned by the insecure transport. +type Conn struct { + net.Conn + local peer.ID + remote peer.ID +} + +// LocalPeer returns the local peer ID. +func (ic *Conn) LocalPeer() peer.ID { + return ic.local +} + +// RemotePeer returns the remote peer ID if we initiated the dial. Otherwise, it +// returns "" (because this connection isn't actually secure). +func (ic *Conn) RemotePeer() peer.ID { + return ic.remote +} + +// RemotePublicKey returns nil. This connection is not secure +func (ic *Conn) RemotePublicKey() ci.PubKey { + return nil +} + +// LocalPrivateKey returns nil. This connection is not secure. +func (ic *Conn) LocalPrivateKey() ci.PrivKey { + return nil +} + +var _ security.Transport = (*Transport)(nil) +var _ security.Conn = (*Conn)(nil) diff --git a/vendor/github.com/libp2p/go-conn-security/interface.go b/vendor/github.com/libp2p/go-conn-security/interface.go new file mode 100644 index 00000000..844c1399 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/interface.go @@ -0,0 +1,25 @@ +package connsec + +import ( + "context" + "net" + + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" +) + +// A Transport turns inbound and outbound unauthenticated, +// plain-text connections into authenticated, encrypted connections. +type Transport interface { + // SecureInbound secures an inbound connection. + SecureInbound(ctx context.Context, insecure net.Conn) (Conn, error) + + // SecureOutbound secures an outbound connection. + SecureOutbound(ctx context.Context, insecure net.Conn, p peer.ID) (Conn, error) +} + +// Conn is an authenticated, encrypted connection. +type Conn interface { + net.Conn + inet.ConnSecurity +} diff --git a/vendor/github.com/libp2p/go-conn-security/package.json b/vendor/github.com/libp2p/go-conn-security/package.json new file mode 100644 index 00000000..90bd2373 --- /dev/null +++ b/vendor/github.com/libp2p/go-conn-security/package.json @@ -0,0 +1,36 @@ +{ + "author": "Stebalien", + "bugs": { + "url": "https://github.com/libp2p/go-conn-security" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-conn-security" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-conn-security", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.28" +} + diff --git a/vendor/github.com/libp2p/go-flow-metrics/.travis.yml b/vendor/github.com/libp2p/go-flow-metrics/.travis.yml new file mode 100644 index 00000000..dde69d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - /Users/raul/go/src/gx + - /Users/raul/go/pkg/mod + - /Users/raul/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-flow-metrics/LICENSE b/vendor/github.com/libp2p/go-flow-metrics/LICENSE new file mode 100644 index 00000000..fa878af7 --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-flow-metrics/Makefile b/vendor/github.com/libp2p/go-flow-metrics/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-flow-metrics/README.md b/vendor/github.com/libp2p/go-flow-metrics/README.md new file mode 100644 index 00000000..11470a68 --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/README.md @@ -0,0 +1,33 @@ +go-flow-metrics +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![Travis CI](https://travis-ci.org/libp2p/go-flow-metrics.svg?branch=master)](https://travis-ci.org/libp2p/go-flow-metrics) + +> A simple library for tracking flow metrics. + +A simple alternative to [rcrowley's +go-metrics](https://github.com/rcrowley/go-metrics) that's a lot faster (and +only does simple bandwidth metrics). + +## Table of Contents + +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Protocol Labs diff --git a/vendor/github.com/libp2p/go-flow-metrics/go.mod b/vendor/github.com/libp2p/go-flow-metrics/go.mod new file mode 100644 index 00000000..908c4c39 --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/go.mod @@ -0,0 +1 @@ +module github.com/libp2p/go-flow-metrics diff --git a/vendor/github.com/libp2p/go-flow-metrics/meter.go b/vendor/github.com/libp2p/go-flow-metrics/meter.go new file mode 100644 index 00000000..412dd3de --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/meter.go @@ -0,0 +1,44 @@ +package flow + +import ( + "fmt" + "sync/atomic" +) + +// Snapshot is a rate/total snapshot. +type Snapshot struct { + Rate float64 + Total uint64 +} + +func (s Snapshot) String() string { + return fmt.Sprintf("%d (%f/s)", s.Total, s.Rate) +} + +// Meter is a meter for monitoring a flow. +type Meter struct { + accumulator uint64 + + // Take lock. + snapshot Snapshot +} + +// Mark updates the total. +func (m *Meter) Mark(count uint64) { + if count > 0 && atomic.AddUint64(&m.accumulator, count) == count { + // I'm the first one to bump this above 0. + // Register it. + globalSweeper.Register(m) + } +} + +// Snapshot gets a consistent snapshot of the total and rate. +func (m *Meter) Snapshot() Snapshot { + globalSweeper.mutex.RLock() + defer globalSweeper.mutex.RUnlock() + return m.snapshot +} + +func (m *Meter) String() string { + return m.Snapshot().String() +} diff --git a/vendor/github.com/libp2p/go-flow-metrics/package.json b/vendor/github.com/libp2p/go-flow-metrics/package.json new file mode 100644 index 00000000..df05d207 --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/package.json @@ -0,0 +1,16 @@ +{ + "author": "Stebalien", + "bugs": { + "url": "github.com/libp2p/go-flow-metrics" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-flow-metrics" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-flow-metrics", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.0" +} + diff --git a/vendor/github.com/libp2p/go-flow-metrics/registry.go b/vendor/github.com/libp2p/go-flow-metrics/registry.go new file mode 100644 index 00000000..226a4827 --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/registry.go @@ -0,0 +1,35 @@ +package flow + +import ( + "sync" +) + +// MeterRegistry is a registry for named meters. +type MeterRegistry struct { + meters sync.Map +} + +// Get gets (or creates) a meter by name. +func (r *MeterRegistry) Get(name string) *Meter { + if m, ok := r.meters.Load(name); ok { + return m.(*Meter) + } + m, _ := r.meters.LoadOrStore(name, new(Meter)) + return m.(*Meter) +} + +// Remove removes the named meter from the registry. +// +// Note: The only reason to do this is to save a bit of memory. Unused meters +// don't consume any CPU (after they go idle). +func (r *MeterRegistry) Remove(name string) { + r.meters.Delete(name) +} + +// ForEach calls the passed function for each registered meter. +func (r *MeterRegistry) ForEach(iterFunc func(string, *Meter)) { + r.meters.Range(func(k, v interface{}) bool { + iterFunc(k.(string), v.(*Meter)) + return true + }) +} diff --git a/vendor/github.com/libp2p/go-flow-metrics/sweeper.go b/vendor/github.com/libp2p/go-flow-metrics/sweeper.go new file mode 100644 index 00000000..21ecf31c --- /dev/null +++ b/vendor/github.com/libp2p/go-flow-metrics/sweeper.go @@ -0,0 +1,153 @@ +package flow + +import ( + "math" + "sync" + "sync/atomic" + "time" +) + +// IdleRate the rate at which we declare a meter idle (and stop tracking it +// until it's re-registered). +// +// The default ensures that 1 event every ~30s will keep the meter from going +// idle. +var IdleRate = 1e-13 + +// Alpha for EWMA of 1s +var alpha = 1 - math.Exp(-1.0) + +// The global sweeper. +var globalSweeper sweeper + +type sweeper struct { + sweepOnce sync.Once + meters []*Meter + mutex sync.RWMutex + lastUpdateTime time.Time + registerChannel chan *Meter +} + +func (sw *sweeper) start() { + sw.registerChannel = make(chan *Meter, 16) + go sw.run() +} + +func (sw *sweeper) run() { + for m := range sw.registerChannel { + sw.register(m) + sw.runActive() + } +} + +func (sw *sweeper) register(m *Meter) { + // Add back the snapshot total. If we unregistered this + // one, we set it to zero. + atomic.AddUint64(&m.accumulator, m.snapshot.Total) + sw.meters = append(sw.meters, m) +} + +func (sw *sweeper) runActive() { + ticker := time.NewTicker(time.Second) + defer ticker.Stop() + + sw.lastUpdateTime = time.Now() + for len(sw.meters) > 0 { + // Scale back allocation. + if len(sw.meters)*2 < cap(sw.meters) { + newMeters := make([]*Meter, len(sw.meters)) + copy(newMeters, sw.meters) + sw.meters = newMeters + } + + select { + case <-ticker.C: + sw.update() + case m := <-sw.registerChannel: + sw.register(m) + } + } + sw.meters = nil + // Till next time. +} + +func (sw *sweeper) update() { + sw.mutex.Lock() + defer sw.mutex.Unlock() + + now := time.Now() + tdiff := now.Sub(sw.lastUpdateTime) + if tdiff <= 0 { + return + } + sw.lastUpdateTime = now + timeMultiplier := float64(time.Second) / float64(tdiff) + + newLen := len(sw.meters) + + for i, m := range sw.meters { + total := atomic.LoadUint64(&m.accumulator) + instant := timeMultiplier * float64(total-m.snapshot.Total) + + if m.snapshot.Rate == 0 { + m.snapshot.Rate = instant + } else { + m.snapshot.Rate += alpha * (instant - m.snapshot.Rate) + } + m.snapshot.Total = total + + // This is equivalent to one zeros, then one, then 30 zeros. + // We'll consider that to be "idle". + if m.snapshot.Rate > IdleRate { + continue + } + + // Ok, so we are idle... + + // Mark this as idle by zeroing the accumulator. + swappedTotal := atomic.SwapUint64(&m.accumulator, 0) + + // So..., are we really idle? + if swappedTotal > total { + // Not so idle... + // Now we need to make sure this gets re-registered. + + // First, add back what we removed. If we can do this + // fast enough, we can put it back before anyone + // notices. + currentTotal := atomic.AddUint64(&m.accumulator, swappedTotal) + + // Did we make it? + if currentTotal == swappedTotal { + // Yes! Nobody noticed, move along. + continue + } + // No. Someone noticed and will (or has) put back into + // the registration channel. + // + // Remove the snapshot total, it'll get added back on + // registration. + // + // `^uint64(total - 1)` is the two's complement of + // `total`. It's the "correct" way to subtract + // atomically in go. + atomic.AddUint64(&m.accumulator, ^uint64(m.snapshot.Total-1)) + } + + // Reset the rate, keep the total. + m.snapshot.Rate = 0 + newLen-- + sw.meters[i] = sw.meters[newLen] + } + + // trim the meter list + for i := newLen; i < len(sw.meters); i++ { + sw.meters[i] = nil + } + sw.meters = sw.meters[:newLen] +} + +func (sw *sweeper) Register(m *Meter) { + sw.sweepOnce.Do(sw.start) + sw.registerChannel <- m +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/.gitignore b/vendor/github.com/libp2p/go-libp2p-autonat-svc/.gitignore new file mode 100644 index 00000000..f1c181ec --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/.gitignore @@ -0,0 +1,12 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/.travis.yml b/vendor/github.com/libp2p/go-libp2p-autonat-svc/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/LICENSE b/vendor/github.com/libp2p/go-libp2p-autonat-svc/LICENSE new file mode 100644 index 00000000..3f05397b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 libp2p + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/README.md b/vendor/github.com/libp2p/go-libp2p-autonat-svc/README.md new file mode 100644 index 00000000..2c30ea90 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/README.md @@ -0,0 +1,25 @@ +# go-libp2p-autonat-svc + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) + [![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + + +> AutoNAT service implementation + +This package provides an implementation of the AutoNATService; see [autonat](https://github.com/libp2p/go-libp2p-autonat). + +## Documentation + +See https://godoc.org/github.com/libp2p/go-libp2p-autonat-svc. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-discovery/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/go.mod b/vendor/github.com/libp2p/go-libp2p-autonat-svc/go.mod new file mode 100644 index 00000000..521af1a8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/go.mod @@ -0,0 +1,14 @@ +module github.com/libp2p/go-libp2p-autonat-svc + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p v0.0.2 + github.com/libp2p/go-libp2p-autonat v0.0.3 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/go.sum b/vendor/github.com/libp2p/go-libp2p-autonat-svc/go.sum new file mode 100644 index 00000000..e736cc49 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/go.sum @@ -0,0 +1,247 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fd/go-nat v1.0.0 h1:DPyQ97sxA9ThrWYRPcWUz/z9TnpTIGRYODIQc/dy64M= +github.com/fd/go-nat v1.0.0/go.mod h1:BTBu/CKvMmOMUPkKVef1pngt2WFH/lg7E6yQnulfp6E= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324 h1:PV190X5/DzQ/tbFFG5YpT5mH6q+cHlfgqI5JuRnH9oE= +github.com/huin/goupnp v0.0.0-20180415215157-1395d1447324/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jackpal/gateway v1.0.4 h1:LS5EHkLuQ6jzaHwULi0vL+JO0mU/n4yUtK8oUjHHOlM= +github.com/jackpal/gateway v1.0.4/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.1 h1:oEjzhRzymY7NILTMzOKNVOpNZGpcQHrHriWw91pbJNM= +github.com/libp2p/go-libp2p v0.0.1/go.mod h1:bmRs8I0vwn6iRaVssZnJx/epY6WPSKiLoK1vyle4EX0= +github.com/libp2p/go-libp2p v0.0.2 h1:+jvgi0Zy3y4TKXJKApchCk3pCBPZf1T54z3+vKie3gw= +github.com/libp2p/go-libp2p v0.0.2/go.mod h1:Qu8bWqFXiocPloabFGUcVG4kk94fLvfC8mWTDdFC9wE= +github.com/libp2p/go-libp2p-autonat v0.0.1 h1:d5eskFxeJ4ag1ekhMC3yLTK+z+6RTw9W1Yv8HQma75k= +github.com/libp2p/go-libp2p-autonat v0.0.1/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.2 h1:ilo9QPzNPf1hMkqaPG55yzvhILf5ZtijstJhcii+l3s= +github.com/libp2p/go-libp2p-autonat v0.0.2/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-autonat v0.0.3 h1:PUD+pAx8Qs9hh+Bowzxq8RCkg/Vwrz5oCFC4peixXQk= +github.com/libp2p/go-libp2p-autonat v0.0.3/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.1 h1:DYbjyQ5ZY3QVAVYZWG4uzBQ6Wmcd1C82Bk8Q/pJlM1I= +github.com/libp2p/go-libp2p-circuit v0.0.1/go.mod h1:Dqm0s/BiV63j8EEAs8hr1H5HudqvCAeXxDyic59lCwE= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1 h1:VkjCKmJQMwpDUwtA8Qc1z3TQAHJgQ5nGQ6cdN0wQXOw= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.1 h1:on/zju7XE+JXc8gH+vTKmIh2UJFC1K8kGnJYluQrlz4= +github.com/libp2p/go-libp2p-nat v0.0.1/go.mod h1:4L6ajyUIlJvx1Cbh5pc6Ma6vMDpKXf3GgLO5u7W0oQ4= +github.com/libp2p/go-libp2p-nat v0.0.2 h1:sKI5hiCsGFhuEKdXMsF9mywQu2qhfoIGX6a+VG6zelE= +github.com/libp2p/go-libp2p-nat v0.0.2/go.mod h1:QrjXQSD5Dj4IJOdEcjHRkWTSomyxRo6HnUkf/TfQpLQ= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.1 h1:9ytMqq86Xvp8rcnC/1ZNuH612eXLDglvcu4ZHseJl8s= +github.com/libp2p/go-ws-transport v0.0.1/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/package.json b/vendor/github.com/libp2p/go-libp2p-autonat-svc/package.json new file mode 100644 index 00000000..1ed05afe --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/package.json @@ -0,0 +1,21 @@ +{ + "author": "vyzo", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-autonat-svc" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTRN7hRxvGkxKxDdeudty7sRet4L7ZKZCqKsXHa79wmAc", + "name": "go-libp2p", + "version": "6.0.41" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-libp2p-autonat-svc", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.0.15" +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/proto.go b/vendor/github.com/libp2p/go-libp2p-autonat-svc/proto.go new file mode 100644 index 00000000..c0bd44a8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/proto.go @@ -0,0 +1,24 @@ +package autonat + +import ( + pb "github.com/libp2p/go-libp2p-autonat/pb" + + logging "github.com/ipfs/go-log" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("autonat-svc") + +func newDialResponseOK(addr ma.Multiaddr) *pb.Message_DialResponse { + dr := new(pb.Message_DialResponse) + dr.Status = pb.Message_OK.Enum() + dr.Addr = addr.Bytes() + return dr +} + +func newDialResponseError(status pb.Message_ResponseStatus, text string) *pb.Message_DialResponse { + dr := new(pb.Message_DialResponse) + dr.Status = status.Enum() + dr.StatusText = &text + return dr +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat-svc/svc.go b/vendor/github.com/libp2p/go-libp2p-autonat-svc/svc.go new file mode 100644 index 00000000..febae7a4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat-svc/svc.go @@ -0,0 +1,216 @@ +package autonat + +import ( + "context" + "sync" + "time" + + pb "github.com/libp2p/go-libp2p-autonat/pb" + + ggio "github.com/gogo/protobuf/io" + libp2p "github.com/libp2p/go-libp2p" + autonat "github.com/libp2p/go-libp2p-autonat" + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +const P_CIRCUIT = 290 + +var ( + AutoNATServiceDialTimeout = 15 * time.Second + AutoNATServiceResetInterval = 1 * time.Minute + + AutoNATServiceThrottle = 3 +) + +// AutoNATService provides NAT autodetection services to other peers +type AutoNATService struct { + ctx context.Context + dialer host.Host + + // rate limiter + mx sync.Mutex + reqs map[peer.ID]int +} + +// NewAutoNATService creates a new AutoNATService instance attached to a host +func NewAutoNATService(ctx context.Context, h host.Host, opts ...libp2p.Option) (*AutoNATService, error) { + opts = append(opts, libp2p.NoListenAddrs) + dialer, err := libp2p.New(ctx, opts...) + if err != nil { + return nil, err + } + + as := &AutoNATService{ + ctx: ctx, + dialer: dialer, + reqs: make(map[peer.ID]int), + } + h.SetStreamHandler(autonat.AutoNATProto, as.handleStream) + + go as.resetRateLimiter() + + return as, nil +} + +func (as *AutoNATService) handleStream(s inet.Stream) { + defer inet.FullClose(s) + + pid := s.Conn().RemotePeer() + log.Debugf("New stream from %s", pid.Pretty()) + + r := ggio.NewDelimitedReader(s, inet.MessageSizeMax) + w := ggio.NewDelimitedWriter(s) + + var req pb.Message + var res pb.Message + + err := r.ReadMsg(&req) + if err != nil { + log.Debugf("Error reading message from %s: %s", pid.Pretty(), err.Error()) + s.Reset() + return + } + + t := req.GetType() + if t != pb.Message_DIAL { + log.Debugf("Unexpected message from %s: %s (%d)", pid.Pretty(), t.String(), t) + s.Reset() + return + } + + dr := as.handleDial(pid, s.Conn().RemoteMultiaddr(), req.GetDial().GetPeer()) + res.Type = pb.Message_DIAL_RESPONSE.Enum() + res.DialResponse = dr + + err = w.WriteMsg(&res) + if err != nil { + log.Debugf("Error writing response to %s: %s", pid.Pretty(), err.Error()) + s.Reset() + return + } +} + +func (as *AutoNATService) handleDial(p peer.ID, obsaddr ma.Multiaddr, mpi *pb.Message_PeerInfo) *pb.Message_DialResponse { + if mpi == nil { + return newDialResponseError(pb.Message_E_BAD_REQUEST, "missing peer info") + } + + mpid := mpi.GetId() + if mpid != nil { + mp, err := peer.IDFromBytes(mpid) + if err != nil { + return newDialResponseError(pb.Message_E_BAD_REQUEST, "bad peer id") + } + + if mp != p { + return newDialResponseError(pb.Message_E_BAD_REQUEST, "peer id mismatch") + } + } + + addrs := make([]ma.Multiaddr, 0) + seen := make(map[string]struct{}) + + // add observed addr to the list of addresses to dial + if !as.skipDial(obsaddr) { + addrs = append(addrs, obsaddr) + seen[obsaddr.String()] = struct{}{} + } + + for _, maddr := range mpi.GetAddrs() { + addr, err := ma.NewMultiaddrBytes(maddr) + if err != nil { + log.Debugf("Error parsing multiaddr: %s", err.Error()) + continue + } + + if as.skipDial(addr) { + continue + } + + str := addr.String() + _, ok := seen[str] + if ok { + continue + } + + addrs = append(addrs, addr) + seen[str] = struct{}{} + } + + if len(addrs) == 0 { + return newDialResponseError(pb.Message_E_DIAL_ERROR, "no dialable addresses") + } + + return as.doDial(pstore.PeerInfo{ID: p, Addrs: addrs}) +} + +func (as *AutoNATService) skipDial(addr ma.Multiaddr) bool { + // skip relay addresses + _, err := addr.ValueForProtocol(P_CIRCUIT) + if err == nil { + return true + } + + // skip private network (unroutable) addresses + if !manet.IsPublicAddr(addr) { + return true + } + + return false +} + +func (as *AutoNATService) doDial(pi pstore.PeerInfo) *pb.Message_DialResponse { + // rate limit check + as.mx.Lock() + count := as.reqs[pi.ID] + if count >= AutoNATServiceThrottle { + as.mx.Unlock() + return newDialResponseError(pb.Message_E_DIAL_REFUSED, "too many dials") + } + as.reqs[pi.ID] = count + 1 + as.mx.Unlock() + + ctx, cancel := context.WithTimeout(as.ctx, AutoNATServiceDialTimeout) + defer cancel() + + err := as.dialer.Connect(ctx, pi) + if err != nil { + log.Debugf("error dialing %s: %s", pi.ID.Pretty(), err.Error()) + // wait for the context to timeout to avoid leaking timing information + // this renders the service ineffective as a port scanner + <-ctx.Done() + return newDialResponseError(pb.Message_E_DIAL_ERROR, "dial failed") + } + + conns := as.dialer.Network().ConnsToPeer(pi.ID) + if len(conns) == 0 { + log.Errorf("supposedly connected to %s, but no connection to peer", pi.ID.Pretty()) + return newDialResponseError(pb.Message_E_INTERNAL_ERROR, "internal service error") + } + + ra := conns[0].RemoteMultiaddr() + as.dialer.Network().ClosePeer(pi.ID) + return newDialResponseOK(ra) +} + +func (as *AutoNATService) resetRateLimiter() { + ticker := time.NewTicker(AutoNATServiceResetInterval) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + as.mx.Lock() + as.reqs = make(map[peer.ID]int) + as.mx.Unlock() + + case <-as.ctx.Done(): + return + } + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/.gitignore b/vendor/github.com/libp2p/go-libp2p-autonat/.gitignore new file mode 100644 index 00000000..a1338d68 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/.gitignore @@ -0,0 +1,14 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/.travis.yml b/vendor/github.com/libp2p/go-libp2p-autonat/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/LICENSE b/vendor/github.com/libp2p/go-libp2p-autonat/LICENSE new file mode 100644 index 00000000..3f05397b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 libp2p + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/Makefile b/vendor/github.com/libp2p/go-libp2p-autonat/Makefile new file mode 100644 index 00000000..3c64b37d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/Makefile @@ -0,0 +1,7 @@ +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/README.md b/vendor/github.com/libp2p/go-libp2p-autonat/README.md new file mode 100644 index 00000000..1daed18e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/README.md @@ -0,0 +1,27 @@ +# go-libp2p-autonat + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) + [![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + + + +> Ambient NAT discovery + +This package provides an ambient NAT autodiscovery service. +It allows peers to figure out their NAT dialability situation by using test dial backs through peers providing the AutoNAT service. + +## Documentation + +See https://godoc.org/github.com/libp2p/go-libp2p-autonat + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-discovery/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/autonat.go b/vendor/github.com/libp2p/go-libp2p-autonat/autonat.go new file mode 100644 index 00000000..60188c94 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/autonat.go @@ -0,0 +1,253 @@ +package autonat + +import ( + "context" + "errors" + "math/rand" + "sync" + "time" + + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" +) + +// NATStatus is the state of NAT as detected by the ambient service. +type NATStatus int + +const ( + // NAT status is unknown; this means that the ambient service has not been + // able to decide the presence of NAT in the most recent attempt to test + // dial through known autonat peers. initial state. + NATStatusUnknown NATStatus = iota + // NAT status is publicly dialable + NATStatusPublic + // NAT status is private network + NATStatusPrivate +) + +var ( + AutoNATBootDelay = 15 * time.Second + AutoNATRetryInterval = 90 * time.Second + AutoNATRefreshInterval = 15 * time.Minute + AutoNATRequestTimeout = 30 * time.Second +) + +// AutoNAT is the interface for ambient NAT autodiscovery +type AutoNAT interface { + // Status returns the current NAT status + Status() NATStatus + // PublicAddr returns the public dial address when NAT status is public and an + // error otherwise + PublicAddr() (ma.Multiaddr, error) +} + +// AmbientAutoNAT is the implementation of ambient NAT autodiscovery +type AmbientAutoNAT struct { + ctx context.Context + host host.Host + + getAddrs GetAddrs + + mx sync.Mutex + peers map[peer.ID][]ma.Multiaddr + status NATStatus + addr ma.Multiaddr + // Reflects the confidence on of the NATStatus being private, as a single + // dialback may fail for reasons unrelated to NAT. + // If it is <3, then multiple autoNAT peers may be contacted for dialback + // If only a single autoNAT peer is known, then the confidence increases + // for each failure until it reaches 3. + confidence int +} + +// NewAutoNAT creates a new ambient NAT autodiscovery instance attached to a host +// If getAddrs is nil, h.Addrs will be used +func NewAutoNAT(ctx context.Context, h host.Host, getAddrs GetAddrs) AutoNAT { + if getAddrs == nil { + getAddrs = h.Addrs + } + + as := &AmbientAutoNAT{ + ctx: ctx, + host: h, + getAddrs: getAddrs, + peers: make(map[peer.ID][]ma.Multiaddr), + status: NATStatusUnknown, + } + + h.Network().Notify(as) + go as.background() + + return as +} + +func (as *AmbientAutoNAT) Status() NATStatus { + as.mx.Lock() + defer as.mx.Unlock() + return as.status +} + +func (as *AmbientAutoNAT) PublicAddr() (ma.Multiaddr, error) { + as.mx.Lock() + defer as.mx.Unlock() + + if as.status != NATStatusPublic { + return nil, errors.New("NAT Status is not public") + } + + return as.addr, nil +} + +func (as *AmbientAutoNAT) background() { + // wait a bit for the node to come online and establish some connections + // before starting autodetection + select { + case <-time.After(AutoNATBootDelay): + case <-as.ctx.Done(): + return + } + + for { + as.autodetect() + + delay := AutoNATRefreshInterval + if as.status == NATStatusUnknown { + delay = AutoNATRetryInterval + } + + select { + case <-time.After(delay): + case <-as.ctx.Done(): + return + } + } +} + +func (as *AmbientAutoNAT) autodetect() { + peers := as.getPeers() + + if len(peers) == 0 { + log.Debugf("skipping NAT auto detection; no autonat peers") + return + } + + cli := NewAutoNATClient(as.host, as.getAddrs) + ctx, cancel := context.WithTimeout(as.ctx, AutoNATRequestTimeout) + defer cancel() + + var result struct { + sync.Mutex + private int + public int + pubaddr ma.Multiaddr + } + + probe := 3 - as.confidence + if probe == 0 { + probe = 1 + } + if probe > len(peers) { + probe = len(peers) + } + + var wg sync.WaitGroup + + for _, pi := range peers[:probe] { + wg.Add(1) + go func(pi pstore.PeerInfo) { + defer wg.Done() + + as.host.Peerstore().AddAddrs(pi.ID, pi.Addrs, pstore.TempAddrTTL) + a, err := cli.DialBack(ctx, pi.ID) + + switch { + case err == nil: + log.Debugf("Dialback through %s successful; public address is %s", pi.ID.Pretty(), a.String()) + result.Lock() + result.public++ + result.pubaddr = a + result.Unlock() + + case IsDialError(err): + log.Debugf("Dialback through %s failed", pi.ID.Pretty()) + result.Lock() + result.private++ + result.Unlock() + + default: + log.Debugf("Dialback error through %s: %s", pi.ID.Pretty(), err) + } + }(pi) + } + + wg.Wait() + + as.mx.Lock() + if result.public > 0 { + log.Debugf("NAT status is public") + if as.status == NATStatusPrivate { + // we are flipping our NATStatus, so confidence drops to 0 + as.confidence = 0 + } else if as.confidence < 3 { + as.confidence++ + } + as.status = NATStatusPublic + as.addr = result.pubaddr + } else if result.private > 0 { + log.Debugf("NAT status is private") + if as.status == NATStatusPublic { + // we are flipping our NATStatus, so confidence drops to 0 + as.confidence = 0 + } else if as.confidence < 3 { + as.confidence++ + } + as.status = NATStatusPrivate + as.addr = nil + } else if as.confidence > 0 { + // don't just flip to unknown, reduce confidence first + as.confidence-- + } else { + log.Debugf("NAT status is unknown") + as.status = NATStatusUnknown + as.addr = nil + } + as.mx.Unlock() +} + +func (as *AmbientAutoNAT) getPeers() []pstore.PeerInfo { + as.mx.Lock() + defer as.mx.Unlock() + + if len(as.peers) == 0 { + return nil + } + + var connected, others []pstore.PeerInfo + + for p, addrs := range as.peers { + if as.host.Network().Connectedness(p) == inet.Connected { + connected = append(connected, pstore.PeerInfo{ID: p, Addrs: addrs}) + } else { + others = append(others, pstore.PeerInfo{ID: p, Addrs: addrs}) + } + } + + shufflePeers(connected) + + if len(connected) < 3 { + shufflePeers(others) + return append(connected, others...) + } else { + return connected + } +} + +func shufflePeers(peers []pstore.PeerInfo) { + for i := range peers { + j := rand.Intn(i + 1) + peers[i], peers[j] = peers[j], peers[i] + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/client.go b/vendor/github.com/libp2p/go-libp2p-autonat/client.go new file mode 100644 index 00000000..aa3075e4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/client.go @@ -0,0 +1,110 @@ +package autonat + +import ( + "context" + "fmt" + + pb "github.com/libp2p/go-libp2p-autonat/pb" + + ggio "github.com/gogo/protobuf/io" + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" +) + +// AutoNATClient is a stateless client interface to AutoNAT peers +type AutoNATClient interface { + // DialBack requests from a peer providing AutoNAT services to test dial back + // and report the address on a successful connection. + DialBack(ctx context.Context, p peer.ID) (ma.Multiaddr, error) +} + +// AutoNATError is the class of errors signalled by AutoNAT services +type AutoNATError struct { + Status pb.Message_ResponseStatus + Text string +} + +// GetAddrs is a function that returns the addresses to dial back +type GetAddrs func() []ma.Multiaddr + +// NewAutoNATClient creates a fresh instance of an AutoNATClient +// If getAddrs is nil, h.Addrs will be used +func NewAutoNATClient(h host.Host, getAddrs GetAddrs) AutoNATClient { + if getAddrs == nil { + getAddrs = h.Addrs + } + return &client{h: h, getAddrs: getAddrs} +} + +type client struct { + h host.Host + getAddrs GetAddrs +} + +func (c *client) DialBack(ctx context.Context, p peer.ID) (ma.Multiaddr, error) { + s, err := c.h.NewStream(ctx, p, AutoNATProto) + if err != nil { + return nil, err + } + // Might as well just reset the stream. Once we get to this point, we + // don't care about being nice. + defer inet.FullClose(s) + + r := ggio.NewDelimitedReader(s, inet.MessageSizeMax) + w := ggio.NewDelimitedWriter(s) + + req := newDialMessage(pstore.PeerInfo{ID: c.h.ID(), Addrs: c.getAddrs()}) + err = w.WriteMsg(req) + if err != nil { + s.Reset() + return nil, err + } + + var res pb.Message + err = r.ReadMsg(&res) + if err != nil { + s.Reset() + return nil, err + } + + if res.GetType() != pb.Message_DIAL_RESPONSE { + return nil, fmt.Errorf("Unexpected response: %s", res.GetType().String()) + } + + status := res.GetDialResponse().GetStatus() + switch status { + case pb.Message_OK: + addr := res.GetDialResponse().GetAddr() + return ma.NewMultiaddrBytes(addr) + + default: + return nil, AutoNATError{Status: status, Text: res.GetDialResponse().GetStatusText()} + } +} + +func (e AutoNATError) Error() string { + return fmt.Sprintf("AutoNAT error: %s (%s)", e.Text, e.Status.String()) +} + +func (e AutoNATError) IsDialError() bool { + return e.Status == pb.Message_E_DIAL_ERROR +} + +func (e AutoNATError) IsDialRefused() bool { + return e.Status == pb.Message_E_DIAL_REFUSED +} + +// IsDialError returns true if the AutoNAT peer signalled an error dialing back +func IsDialError(e error) bool { + ae, ok := e.(AutoNATError) + return ok && ae.IsDialError() +} + +// IsDialRefused returns true if the AutoNAT peer signalled refusal to dial back +func IsDialRefused(e error) bool { + ae, ok := e.(AutoNATError) + return ok && ae.IsDialRefused() +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/go.mod b/vendor/github.com/libp2p/go-libp2p-autonat/go.mod new file mode 100644 index 00000000..c489716f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/go.mod @@ -0,0 +1,13 @@ +module github.com/libp2p/go-libp2p-autonat + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-blankhost v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-swarm v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/go.sum b/vendor/github.com/libp2p/go-libp2p-autonat/go.sum new file mode 100644 index 00000000..ecce8ed1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/go.sum @@ -0,0 +1,199 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/notify.go b/vendor/github.com/libp2p/go-libp2p-autonat/notify.go new file mode 100644 index 00000000..69f5a645 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/notify.go @@ -0,0 +1,41 @@ +package autonat + +import ( + "time" + + inet "github.com/libp2p/go-libp2p-net" + ma "github.com/multiformats/go-multiaddr" +) + +var _ inet.Notifiee = (*AmbientAutoNAT)(nil) + +var AutoNATIdentifyDelay = 5 * time.Second + +func (as *AmbientAutoNAT) Listen(net inet.Network, a ma.Multiaddr) {} +func (as *AmbientAutoNAT) ListenClose(net inet.Network, a ma.Multiaddr) {} +func (as *AmbientAutoNAT) OpenedStream(net inet.Network, s inet.Stream) {} +func (as *AmbientAutoNAT) ClosedStream(net inet.Network, s inet.Stream) {} + +func (as *AmbientAutoNAT) Connected(net inet.Network, c inet.Conn) { + p := c.RemotePeer() + + go func() { + // add some delay for identify + time.Sleep(AutoNATIdentifyDelay) + + protos, err := as.host.Peerstore().SupportsProtocols(p, AutoNATProto) + if err != nil { + log.Debugf("error retrieving supported protocols for peer %s: %s", p, err) + return + } + + if len(protos) > 0 { + log.Infof("Discovered AutoNAT peer %s", p.Pretty()) + as.mx.Lock() + as.peers[p] = as.host.Peerstore().Addrs(p) + as.mx.Unlock() + } + }() +} + +func (as *AmbientAutoNAT) Disconnected(net inet.Network, c inet.Conn) {} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/package.json b/vendor/github.com/libp2p/go-libp2p-autonat/package.json new file mode 100644 index 00000000..fa6b7def --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/package.json @@ -0,0 +1,68 @@ +{ + "author": "vyzo", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-autonat" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd", + "name": "go-libp2p-host", + "version": "3.0.26" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmcBTHN7uAMBdkzRoQ3n9cE7tGu8Ubd9zmahjskjTRw4Uf", + "name": "go-libp2p-blankhost", + "version": "0.3.26" + }, + { + "author": "whyrusleeping", + "hash": "QmQVoMEL1CxrVusTSUdYsiJXVBnvSqNUpBsGybkwSfksEF", + "name": "go-libp2p-swarm", + "version": "3.0.35" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-libp2p-autonat", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.0.14" +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-autonat/pb/Makefile new file mode 100644 index 00000000..dd21e878 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/pb/Makefile @@ -0,0 +1,6 @@ +pbgos := $(patsubst %.proto,%.pb.go,$(wildcard *.proto)) + +all: $(pbgos) + +%.pb.go: %.proto + protoc --gogofast_out=. --proto_path=$(GOPATH)/src:. $< diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.pb.go b/vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.pb.go new file mode 100644 index 00000000..3617b461 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.pb.go @@ -0,0 +1,1242 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: autonat.proto + +package autonat_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Message_MessageType int32 + +const ( + Message_DIAL Message_MessageType = 0 + Message_DIAL_RESPONSE Message_MessageType = 1 +) + +var Message_MessageType_name = map[int32]string{ + 0: "DIAL", + 1: "DIAL_RESPONSE", +} + +var Message_MessageType_value = map[string]int32{ + "DIAL": 0, + "DIAL_RESPONSE": 1, +} + +func (x Message_MessageType) Enum() *Message_MessageType { + p := new(Message_MessageType) + *p = x + return p +} + +func (x Message_MessageType) String() string { + return proto.EnumName(Message_MessageType_name, int32(x)) +} + +func (x *Message_MessageType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Message_MessageType_value, data, "Message_MessageType") + if err != nil { + return err + } + *x = Message_MessageType(value) + return nil +} + +func (Message_MessageType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a04e278ef61ac07a, []int{0, 0} +} + +type Message_ResponseStatus int32 + +const ( + Message_OK Message_ResponseStatus = 0 + Message_E_DIAL_ERROR Message_ResponseStatus = 100 + Message_E_DIAL_REFUSED Message_ResponseStatus = 101 + Message_E_BAD_REQUEST Message_ResponseStatus = 200 + Message_E_INTERNAL_ERROR Message_ResponseStatus = 300 +) + +var Message_ResponseStatus_name = map[int32]string{ + 0: "OK", + 100: "E_DIAL_ERROR", + 101: "E_DIAL_REFUSED", + 200: "E_BAD_REQUEST", + 300: "E_INTERNAL_ERROR", +} + +var Message_ResponseStatus_value = map[string]int32{ + "OK": 0, + "E_DIAL_ERROR": 100, + "E_DIAL_REFUSED": 101, + "E_BAD_REQUEST": 200, + "E_INTERNAL_ERROR": 300, +} + +func (x Message_ResponseStatus) Enum() *Message_ResponseStatus { + p := new(Message_ResponseStatus) + *p = x + return p +} + +func (x Message_ResponseStatus) String() string { + return proto.EnumName(Message_ResponseStatus_name, int32(x)) +} + +func (x *Message_ResponseStatus) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Message_ResponseStatus_value, data, "Message_ResponseStatus") + if err != nil { + return err + } + *x = Message_ResponseStatus(value) + return nil +} + +func (Message_ResponseStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a04e278ef61ac07a, []int{0, 1} +} + +type Message struct { + Type *Message_MessageType `protobuf:"varint,1,opt,name=type,enum=autonat.pb.Message_MessageType" json:"type,omitempty"` + Dial *Message_Dial `protobuf:"bytes,2,opt,name=dial" json:"dial,omitempty"` + DialResponse *Message_DialResponse `protobuf:"bytes,3,opt,name=dialResponse" json:"dialResponse,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { + return fileDescriptor_a04e278ef61ac07a, []int{0} +} +func (m *Message) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message.Merge(m, src) +} +func (m *Message) XXX_Size() int { + return m.Size() +} +func (m *Message) XXX_DiscardUnknown() { + xxx_messageInfo_Message.DiscardUnknown(m) +} + +var xxx_messageInfo_Message proto.InternalMessageInfo + +func (m *Message) GetType() Message_MessageType { + if m != nil && m.Type != nil { + return *m.Type + } + return Message_DIAL +} + +func (m *Message) GetDial() *Message_Dial { + if m != nil { + return m.Dial + } + return nil +} + +func (m *Message) GetDialResponse() *Message_DialResponse { + if m != nil { + return m.DialResponse + } + return nil +} + +type Message_PeerInfo struct { + Id []byte `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Addrs [][]byte `protobuf:"bytes,2,rep,name=addrs" json:"addrs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message_PeerInfo) Reset() { *m = Message_PeerInfo{} } +func (m *Message_PeerInfo) String() string { return proto.CompactTextString(m) } +func (*Message_PeerInfo) ProtoMessage() {} +func (*Message_PeerInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_a04e278ef61ac07a, []int{0, 0} +} +func (m *Message_PeerInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_PeerInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_PeerInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_PeerInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_PeerInfo.Merge(m, src) +} +func (m *Message_PeerInfo) XXX_Size() int { + return m.Size() +} +func (m *Message_PeerInfo) XXX_DiscardUnknown() { + xxx_messageInfo_Message_PeerInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_PeerInfo proto.InternalMessageInfo + +func (m *Message_PeerInfo) GetId() []byte { + if m != nil { + return m.Id + } + return nil +} + +func (m *Message_PeerInfo) GetAddrs() [][]byte { + if m != nil { + return m.Addrs + } + return nil +} + +type Message_Dial struct { + Peer *Message_PeerInfo `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message_Dial) Reset() { *m = Message_Dial{} } +func (m *Message_Dial) String() string { return proto.CompactTextString(m) } +func (*Message_Dial) ProtoMessage() {} +func (*Message_Dial) Descriptor() ([]byte, []int) { + return fileDescriptor_a04e278ef61ac07a, []int{0, 1} +} +func (m *Message_Dial) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_Dial) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_Dial.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_Dial) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_Dial.Merge(m, src) +} +func (m *Message_Dial) XXX_Size() int { + return m.Size() +} +func (m *Message_Dial) XXX_DiscardUnknown() { + xxx_messageInfo_Message_Dial.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_Dial proto.InternalMessageInfo + +func (m *Message_Dial) GetPeer() *Message_PeerInfo { + if m != nil { + return m.Peer + } + return nil +} + +type Message_DialResponse struct { + Status *Message_ResponseStatus `protobuf:"varint,1,opt,name=status,enum=autonat.pb.Message_ResponseStatus" json:"status,omitempty"` + StatusText *string `protobuf:"bytes,2,opt,name=statusText" json:"statusText,omitempty"` + Addr []byte `protobuf:"bytes,3,opt,name=addr" json:"addr,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message_DialResponse) Reset() { *m = Message_DialResponse{} } +func (m *Message_DialResponse) String() string { return proto.CompactTextString(m) } +func (*Message_DialResponse) ProtoMessage() {} +func (*Message_DialResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_a04e278ef61ac07a, []int{0, 2} +} +func (m *Message_DialResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_DialResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_DialResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_DialResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_DialResponse.Merge(m, src) +} +func (m *Message_DialResponse) XXX_Size() int { + return m.Size() +} +func (m *Message_DialResponse) XXX_DiscardUnknown() { + xxx_messageInfo_Message_DialResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_DialResponse proto.InternalMessageInfo + +func (m *Message_DialResponse) GetStatus() Message_ResponseStatus { + if m != nil && m.Status != nil { + return *m.Status + } + return Message_OK +} + +func (m *Message_DialResponse) GetStatusText() string { + if m != nil && m.StatusText != nil { + return *m.StatusText + } + return "" +} + +func (m *Message_DialResponse) GetAddr() []byte { + if m != nil { + return m.Addr + } + return nil +} + +func init() { + proto.RegisterEnum("autonat.pb.Message_MessageType", Message_MessageType_name, Message_MessageType_value) + proto.RegisterEnum("autonat.pb.Message_ResponseStatus", Message_ResponseStatus_name, Message_ResponseStatus_value) + proto.RegisterType((*Message)(nil), "autonat.pb.Message") + proto.RegisterType((*Message_PeerInfo)(nil), "autonat.pb.Message.PeerInfo") + proto.RegisterType((*Message_Dial)(nil), "autonat.pb.Message.Dial") + proto.RegisterType((*Message_DialResponse)(nil), "autonat.pb.Message.DialResponse") +} + +func init() { proto.RegisterFile("autonat.proto", fileDescriptor_a04e278ef61ac07a) } + +var fileDescriptor_a04e278ef61ac07a = []byte{ + // 372 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x90, 0xcf, 0x8a, 0xda, 0x50, + 0x14, 0xc6, 0xbd, 0x31, 0xb5, 0xf6, 0x18, 0xc3, 0xed, 0xa1, 0x85, 0x20, 0x25, 0x0d, 0x59, 0x49, + 0x29, 0x22, 0x76, 0x53, 0xba, 0x53, 0x72, 0x0b, 0xd2, 0x56, 0xed, 0x49, 0x5c, 0x87, 0x94, 0xdc, + 0x0e, 0x01, 0x31, 0x21, 0x89, 0x30, 0x6e, 0xe6, 0x89, 0x66, 0x3b, 0xef, 0xe0, 0x72, 0x1e, 0x61, + 0xf0, 0x49, 0x86, 0x5c, 0xa3, 0xa3, 0xe0, 0xac, 0xce, 0x1f, 0x7e, 0xdf, 0x39, 0x1f, 0x1f, 0x74, + 0xa3, 0x4d, 0x99, 0xae, 0xa3, 0x72, 0x90, 0xe5, 0x69, 0x99, 0x22, 0x9c, 0xc6, 0x7f, 0xee, 0x83, + 0x0e, 0x6f, 0xff, 0xc8, 0xa2, 0x88, 0x6e, 0x24, 0x7e, 0x03, 0xbd, 0xdc, 0x66, 0xd2, 0x62, 0x0e, + 0xeb, 0x9b, 0xa3, 0xcf, 0x83, 0x17, 0x6c, 0x50, 0x23, 0xc7, 0x1a, 0x6c, 0x33, 0x49, 0x0a, 0xc6, + 0xaf, 0xa0, 0xc7, 0x49, 0xb4, 0xb2, 0x34, 0x87, 0xf5, 0x3b, 0x23, 0xeb, 0x9a, 0xc8, 0x4b, 0xa2, + 0x15, 0x29, 0x0a, 0x3d, 0x30, 0xaa, 0x4a, 0xb2, 0xc8, 0xd2, 0x75, 0x21, 0xad, 0xa6, 0x52, 0x39, + 0xaf, 0xaa, 0x6a, 0x8e, 0x2e, 0x54, 0xbd, 0x21, 0xb4, 0x17, 0x52, 0xe6, 0xd3, 0xf5, 0xff, 0x14, + 0x4d, 0xd0, 0x92, 0x58, 0x59, 0x36, 0x48, 0x4b, 0x62, 0xfc, 0x00, 0x6f, 0xa2, 0x38, 0xce, 0x0b, + 0x4b, 0x73, 0x9a, 0x7d, 0x83, 0x0e, 0x43, 0xef, 0x3b, 0xe8, 0xd5, 0x3d, 0x1c, 0x82, 0x9e, 0x49, + 0x99, 0x2b, 0xbe, 0x33, 0xfa, 0x74, 0xed, 0xef, 0xf1, 0x32, 0x29, 0xb2, 0x77, 0x07, 0xc6, 0xb9, + 0x13, 0xfc, 0x01, 0xad, 0xa2, 0x8c, 0xca, 0x4d, 0x51, 0xc7, 0xe4, 0x5e, 0xbb, 0x71, 0xa4, 0x7d, + 0x45, 0x52, 0xad, 0x40, 0x1b, 0xe0, 0xd0, 0x05, 0xf2, 0xb6, 0x54, 0x89, 0xbd, 0xa3, 0xb3, 0x0d, + 0x22, 0xe8, 0x95, 0x5d, 0x95, 0x8a, 0x41, 0xaa, 0x77, 0xbf, 0x40, 0xe7, 0x2c, 0x74, 0x6c, 0x83, + 0xee, 0x4d, 0xc7, 0xbf, 0x79, 0x03, 0xdf, 0x43, 0xb7, 0xea, 0x42, 0x12, 0xfe, 0x62, 0x3e, 0xf3, + 0x05, 0x67, 0x6e, 0x02, 0xe6, 0xe5, 0x67, 0x6c, 0x81, 0x36, 0xff, 0xc5, 0x1b, 0xc8, 0xc1, 0x10, + 0xa1, 0xc2, 0x05, 0xd1, 0x9c, 0x78, 0x8c, 0x08, 0x66, 0xbd, 0x21, 0xf1, 0x73, 0xe9, 0x0b, 0x8f, + 0x4b, 0x44, 0xe8, 0x8a, 0x70, 0x32, 0xf6, 0x42, 0x12, 0x7f, 0x97, 0xc2, 0x0f, 0xf8, 0x8e, 0xe1, + 0x47, 0xe0, 0x22, 0x9c, 0xce, 0x02, 0x41, 0xb3, 0x93, 0xfa, 0x5e, 0x9b, 0x18, 0xbb, 0xbd, 0xcd, + 0x1e, 0xf7, 0x36, 0x7b, 0xda, 0xdb, 0xec, 0x39, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xe2, 0x93, 0x4e, + 0x61, 0x02, 0x00, 0x00, +} + +func (m *Message) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Type != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintAutonat(dAtA, i, uint64(*m.Type)) + } + if m.Dial != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintAutonat(dAtA, i, uint64(m.Dial.Size())) + n1, err := m.Dial.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.DialResponse != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintAutonat(dAtA, i, uint64(m.DialResponse.Size())) + n2, err := m.DialResponse.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Message_PeerInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_PeerInfo) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Id != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintAutonat(dAtA, i, uint64(len(m.Id))) + i += copy(dAtA[i:], m.Id) + } + if len(m.Addrs) > 0 { + for _, b := range m.Addrs { + dAtA[i] = 0x12 + i++ + i = encodeVarintAutonat(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Message_Dial) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_Dial) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Peer != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintAutonat(dAtA, i, uint64(m.Peer.Size())) + n3, err := m.Peer.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Message_DialResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_DialResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Status != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintAutonat(dAtA, i, uint64(*m.Status)) + } + if m.StatusText != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintAutonat(dAtA, i, uint64(len(*m.StatusText))) + i += copy(dAtA[i:], *m.StatusText) + } + if m.Addr != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintAutonat(dAtA, i, uint64(len(m.Addr))) + i += copy(dAtA[i:], m.Addr) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintAutonat(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Message) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != nil { + n += 1 + sovAutonat(uint64(*m.Type)) + } + if m.Dial != nil { + l = m.Dial.Size() + n += 1 + l + sovAutonat(uint64(l)) + } + if m.DialResponse != nil { + l = m.DialResponse.Size() + n += 1 + l + sovAutonat(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Message_PeerInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != nil { + l = len(m.Id) + n += 1 + l + sovAutonat(uint64(l)) + } + if len(m.Addrs) > 0 { + for _, b := range m.Addrs { + l = len(b) + n += 1 + l + sovAutonat(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Message_Dial) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Peer != nil { + l = m.Peer.Size() + n += 1 + l + sovAutonat(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Message_DialResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Status != nil { + n += 1 + sovAutonat(uint64(*m.Status)) + } + if m.StatusText != nil { + l = len(*m.StatusText) + n += 1 + l + sovAutonat(uint64(l)) + } + if m.Addr != nil { + l = len(m.Addr) + n += 1 + l + sovAutonat(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovAutonat(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozAutonat(x uint64) (n int) { + return sovAutonat(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Message: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Message: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var v Message_MessageType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= Message_MessageType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Type = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dial", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dial == nil { + m.Dial = &Message_Dial{} + } + if err := m.Dial.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DialResponse", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DialResponse == nil { + m.DialResponse = &Message_DialResponse{} + } + if err := m.DialResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAutonat(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_PeerInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PeerInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PeerInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = append(m.Id[:0], dAtA[iNdEx:postIndex]...) + if m.Id == nil { + m.Id = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addrs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addrs = append(m.Addrs, make([]byte, postIndex-iNdEx)) + copy(m.Addrs[len(m.Addrs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAutonat(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_Dial) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Dial: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Dial: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Peer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Peer == nil { + m.Peer = &Message_PeerInfo{} + } + if err := m.Peer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAutonat(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_DialResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DialResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DialResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var v Message_ResponseStatus + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= Message_ResponseStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Status = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StatusText", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.StatusText = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAutonat + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthAutonat + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthAutonat + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addr = append(m.Addr[:0], dAtA[iNdEx:postIndex]...) + if m.Addr == nil { + m.Addr = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAutonat(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthAutonat + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipAutonat(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAutonat + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAutonat + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAutonat + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthAutonat + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthAutonat + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAutonat + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipAutonat(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthAutonat + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthAutonat = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowAutonat = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.proto b/vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.proto new file mode 100644 index 00000000..7107e1c0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/pb/autonat.proto @@ -0,0 +1,35 @@ +package autonat.pb; + +message Message { + enum MessageType { + DIAL = 0; + DIAL_RESPONSE = 1; + } + + enum ResponseStatus { + OK = 0; + E_DIAL_ERROR = 100; + E_DIAL_REFUSED = 101; + E_BAD_REQUEST = 200; + E_INTERNAL_ERROR = 300; + } + + message PeerInfo { + optional bytes id = 1; + repeated bytes addrs = 2; + } + + message Dial { + optional PeerInfo peer = 1; + } + + message DialResponse { + optional ResponseStatus status = 1; + optional string statusText = 2; + optional bytes addr = 3; + } + + optional MessageType type = 1; + optional Dial dial = 2; + optional DialResponse dialResponse = 3; +} diff --git a/vendor/github.com/libp2p/go-libp2p-autonat/proto.go b/vendor/github.com/libp2p/go-libp2p-autonat/proto.go new file mode 100644 index 00000000..2dbb8eba --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-autonat/proto.go @@ -0,0 +1,26 @@ +package autonat + +import ( + pb "github.com/libp2p/go-libp2p-autonat/pb" + + logging "github.com/ipfs/go-log" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +const AutoNATProto = "/libp2p/autonat/1.0.0" + +var log = logging.Logger("autonat") + +func newDialMessage(pi pstore.PeerInfo) *pb.Message { + msg := new(pb.Message) + msg.Type = pb.Message_DIAL.Enum() + msg.Dial = new(pb.Message_Dial) + msg.Dial.Peer = new(pb.Message_PeerInfo) + msg.Dial.Peer.Id = []byte(pi.ID) + msg.Dial.Peer.Addrs = make([][]byte, len(pi.Addrs)) + for i, addr := range pi.Addrs { + msg.Dial.Peer.Addrs[i] = addr.Bytes() + } + + return msg +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/.travis.yml b/vendor/github.com/libp2p/go-libp2p-circuit/.travis.yml new file mode 100644 index 00000000..5163d693 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/LICENSE b/vendor/github.com/libp2p/go-libp2p-circuit/LICENSE new file mode 100644 index 00000000..2f06d0eb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/README.md b/vendor/github.com/libp2p/go-libp2p-circuit/README.md new file mode 100644 index 00000000..b777eb3b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/README.md @@ -0,0 +1,43 @@ +go-libp2p-circuit +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23libp2p) +[![Coverage Status](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-circuit.svg?style=flat-square&branch=master)](https://codecov.io/github/libp2p/go-libp2p-circuit?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-circuit.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-circuit) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + + +> The libp2p relay allows peers to relay connections on behalf of others. + + +## Table of Contents + +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +go get -u github.com/libp2p/go-libp2p-circuit +``` + +## Usage + +Refer to the [relay example](https://github.com/libp2p/go-libp2p-examples/tree/master/relay) in the `go-libp2p-examples` repository for usage instructions. + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson + +--- + +The last gx published version of this module was: 2.3.15: QmRTkLxADQRbgnhpt2zzQQJr8Ri764b7dujoDkZw33b3iE diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/codecov.yml b/vendor/github.com/libp2p/go-libp2p-circuit/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/conn.go b/vendor/github.com/libp2p/go-libp2p-circuit/conn.go new file mode 100644 index 00000000..df39f119 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/conn.go @@ -0,0 +1,59 @@ +package relay + +import ( + "fmt" + "net" + + inet "github.com/libp2p/go-libp2p-net" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +type Conn struct { + inet.Stream + remote pstore.PeerInfo +} + +type NetAddr struct { + Relay string + Remote string +} + +func (n *NetAddr) Network() string { + return "libp2p-circuit-relay" +} + +func (n *NetAddr) String() string { + return fmt.Sprintf("relay[%s-%s]", n.Remote, n.Relay) +} + +func (c *Conn) RemoteAddr() net.Addr { + return &NetAddr{ + Relay: c.Conn().RemotePeer().Pretty(), + Remote: c.remote.ID.Pretty(), + } +} + +// TODO: is it okay to cast c.Conn().RemotePeer() into a multiaddr? might be "user input" +func (c *Conn) RemoteMultiaddr() ma.Multiaddr { + proto := ma.ProtocolWithCode(ma.P_P2P).Name + peerid := c.Conn().RemotePeer().Pretty() + p2paddr := ma.StringCast(fmt.Sprintf("/%s/%s", proto, peerid)) + + circaddr := ma.Cast(ma.CodeToVarint(P_CIRCUIT)) + return p2paddr.Encapsulate(circaddr) +} + +func (c *Conn) LocalMultiaddr() ma.Multiaddr { + return c.Conn().LocalMultiaddr() +} + +func (c *Conn) LocalAddr() net.Addr { + na, err := manet.ToNetAddr(c.Conn().LocalMultiaddr()) + if err != nil { + log.Error("failed to convert local multiaddr to net addr:", err) + return nil + } + return na +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/dial.go b/vendor/github.com/libp2p/go-libp2p-circuit/dial.go new file mode 100644 index 00000000..ecfd23fe --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/dial.go @@ -0,0 +1,89 @@ +package relay + +import ( + "context" + "fmt" + "math/rand" + + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + tpt "github.com/libp2p/go-libp2p-transport" + ma "github.com/multiformats/go-multiaddr" +) + +func (d *RelayTransport) Dial(ctx context.Context, a ma.Multiaddr, p peer.ID) (tpt.Conn, error) { + c, err := d.Relay().Dial(ctx, a, p) + if err != nil { + return nil, err + } + return d.upgrader.UpgradeOutbound(ctx, d, c, p) +} + +func (r *Relay) Dial(ctx context.Context, a ma.Multiaddr, p peer.ID) (*Conn, error) { + if !r.Matches(a) { + return nil, fmt.Errorf("%s is not a relay address", a) + } + parts := ma.Split(a) + + spl := ma.Cast(ma.CodeToVarint(P_CIRCUIT)) + + var relayaddr, destaddr ma.Multiaddr + for i, p := range parts { + if p.Equal(spl) { + relayaddr = ma.Join(parts[:i]...) + destaddr = ma.Join(parts[i+1:]...) + break + } + } + + dinfo := &pstore.PeerInfo{ID: p, Addrs: []ma.Multiaddr{}} + if len(destaddr.Bytes()) > 0 { + dinfo.Addrs = append(dinfo.Addrs, destaddr) + } + + if len(relayaddr.Bytes()) == 0 { + // unspecific relay address, try dialing using known hop relays + return r.tryDialRelays(ctx, *dinfo) + } + + var rinfo *pstore.PeerInfo + rinfo, err := pstore.InfoFromP2pAddr(relayaddr) + if err != nil { + return nil, fmt.Errorf("error parsing multiaddr '%s': %s", relayaddr.String(), err) + } + + return r.DialPeer(ctx, *rinfo, *dinfo) +} + +func (r *Relay) tryDialRelays(ctx context.Context, dinfo pstore.PeerInfo) (*Conn, error) { + var relays []peer.ID + r.mx.Lock() + for p := range r.relays { + relays = append(relays, p) + } + r.mx.Unlock() + + // shuffle list of relays, avoid overloading a specific relay + for i := range relays { + j := rand.Intn(i + 1) + relays[i], relays[j] = relays[j], relays[i] + } + + for _, relay := range relays { + if len(r.host.Network().ConnsToPeer(relay)) == 0 { + continue + } + + rctx, cancel := context.WithTimeout(ctx, HopConnectTimeout) + c, err := r.DialPeer(rctx, pstore.PeerInfo{ID: relay}, dinfo) + cancel() + + if err == nil { + return c, nil + } + + log.Debugf("error opening relay connection through %s: %s", dinfo.ID, err.Error()) + } + + return nil, fmt.Errorf("Failed to dial through %d known relay hosts", len(relays)) +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/go.mod b/vendor/github.com/libp2p/go-libp2p-circuit/go.mod new file mode 100644 index 00000000..bf6d5b72 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/go.mod @@ -0,0 +1,17 @@ +module github.com/libp2p/go-libp2p-circuit + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-buffer-pool v0.0.1 + github.com/libp2p/go-libp2p-blankhost v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.2 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-swarm v0.0.2 + github.com/libp2p/go-libp2p-transport v0.0.4 + github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/go.sum b/vendor/github.com/libp2p/go-libp2p-circuit/go.sum new file mode 100644 index 00000000..d491a45b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/go.sum @@ -0,0 +1,203 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= +github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.2 h1:cpHHXTeU2IgUu8LPemF7vaLPGtVC6VxMoll2EwqlC+E= +github.com/libp2p/go-libp2p-swarm v0.0.2/go.mod h1:n0cAAcKyndIrJWctQwjqXlAdIPBZzfdpBjx1SSvz30g= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/listen.go b/vendor/github.com/libp2p/go-libp2p-circuit/listen.go new file mode 100644 index 00000000..35661cb8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/listen.go @@ -0,0 +1,58 @@ +package relay + +import ( + "net" + + pb "github.com/libp2p/go-libp2p-circuit/pb" + + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +var _ manet.Listener = (*RelayListener)(nil) + +type RelayListener Relay + +func (l *RelayListener) Relay() *Relay { + return (*Relay)(l) +} + +func (r *Relay) Listener() *RelayListener { + // TODO: Only allow one! + return (*RelayListener)(r) +} + +func (l *RelayListener) Accept() (manet.Conn, error) { + select { + case c := <-l.incoming: + err := l.Relay().writeResponse(c.Stream, pb.CircuitRelay_SUCCESS) + if err != nil { + log.Debugf("error writing relay response: %s", err.Error()) + c.Stream.Reset() + return nil, err + } + + // TODO: Pretty print. + log.Infof("accepted relay connection: %q", c) + + return c, nil + case <-l.ctx.Done(): + return nil, l.ctx.Err() + } +} + +func (l *RelayListener) Addr() net.Addr { + return &NetAddr{ + Relay: "any", + Remote: "any", + } +} + +func (l *RelayListener) Multiaddr() ma.Multiaddr { + return ma.Cast(ma.CodeToVarint(P_CIRCUIT)) +} + +func (l *RelayListener) Close() error { + // TODO: noop? + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/notify.go b/vendor/github.com/libp2p/go-libp2p-circuit/notify.go new file mode 100644 index 00000000..6d9f62dc --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/notify.go @@ -0,0 +1,54 @@ +package relay + +import ( + "context" + "time" + + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +var _ inet.Notifiee = (*RelayNotifiee)(nil) + +type RelayNotifiee Relay + +func (r *Relay) notifiee() inet.Notifiee { + return (*RelayNotifiee)(r) +} + +func (n *RelayNotifiee) Relay() *Relay { + return (*Relay)(n) +} + +func (n *RelayNotifiee) Listen(net inet.Network, a ma.Multiaddr) {} +func (n *RelayNotifiee) ListenClose(net inet.Network, a ma.Multiaddr) {} +func (n *RelayNotifiee) OpenedStream(net inet.Network, s inet.Stream) {} +func (n *RelayNotifiee) ClosedStream(net inet.Network, s inet.Stream) {} + +func (n *RelayNotifiee) Connected(s inet.Network, c inet.Conn) { + if n.Relay().Matches(c.RemoteMultiaddr()) { + return + } + + go func(id peer.ID) { + ctx, cancel := context.WithTimeout(n.ctx, time.Second) + defer cancel() + + canhop, err := n.Relay().CanHop(ctx, id) + if err != nil { + log.Debugf("Error testing relay hop: %s", err.Error()) + return + } + + if canhop { + log.Debugf("Discovered hop relay %s", id.Pretty()) + n.mx.Lock() + n.relays[id] = struct{}{} + n.mx.Unlock() + n.host.ConnManager().TagPeer(id, "relay-hop", 2) + } + }(c.RemotePeer()) +} + +func (n *RelayNotifiee) Disconnected(s inet.Network, c inet.Conn) {} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-circuit/pb/Makefile new file mode 100644 index 00000000..eb14b576 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofast_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.pb.go b/vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.pb.go new file mode 100644 index 00000000..ca165ee6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.pb.go @@ -0,0 +1,880 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: relay.proto + +package relay_pb + +import ( + fmt "fmt" + github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type CircuitRelay_Status int32 + +const ( + CircuitRelay_SUCCESS CircuitRelay_Status = 100 + CircuitRelay_HOP_SRC_ADDR_TOO_LONG CircuitRelay_Status = 220 + CircuitRelay_HOP_DST_ADDR_TOO_LONG CircuitRelay_Status = 221 + CircuitRelay_HOP_SRC_MULTIADDR_INVALID CircuitRelay_Status = 250 + CircuitRelay_HOP_DST_MULTIADDR_INVALID CircuitRelay_Status = 251 + CircuitRelay_HOP_NO_CONN_TO_DST CircuitRelay_Status = 260 + CircuitRelay_HOP_CANT_DIAL_DST CircuitRelay_Status = 261 + CircuitRelay_HOP_CANT_OPEN_DST_STREAM CircuitRelay_Status = 262 + CircuitRelay_HOP_CANT_SPEAK_RELAY CircuitRelay_Status = 270 + CircuitRelay_HOP_CANT_RELAY_TO_SELF CircuitRelay_Status = 280 + CircuitRelay_STOP_SRC_ADDR_TOO_LONG CircuitRelay_Status = 320 + CircuitRelay_STOP_DST_ADDR_TOO_LONG CircuitRelay_Status = 321 + CircuitRelay_STOP_SRC_MULTIADDR_INVALID CircuitRelay_Status = 350 + CircuitRelay_STOP_DST_MULTIADDR_INVALID CircuitRelay_Status = 351 + CircuitRelay_STOP_RELAY_REFUSED CircuitRelay_Status = 390 + CircuitRelay_MALFORMED_MESSAGE CircuitRelay_Status = 400 +) + +var CircuitRelay_Status_name = map[int32]string{ + 100: "SUCCESS", + 220: "HOP_SRC_ADDR_TOO_LONG", + 221: "HOP_DST_ADDR_TOO_LONG", + 250: "HOP_SRC_MULTIADDR_INVALID", + 251: "HOP_DST_MULTIADDR_INVALID", + 260: "HOP_NO_CONN_TO_DST", + 261: "HOP_CANT_DIAL_DST", + 262: "HOP_CANT_OPEN_DST_STREAM", + 270: "HOP_CANT_SPEAK_RELAY", + 280: "HOP_CANT_RELAY_TO_SELF", + 320: "STOP_SRC_ADDR_TOO_LONG", + 321: "STOP_DST_ADDR_TOO_LONG", + 350: "STOP_SRC_MULTIADDR_INVALID", + 351: "STOP_DST_MULTIADDR_INVALID", + 390: "STOP_RELAY_REFUSED", + 400: "MALFORMED_MESSAGE", +} + +var CircuitRelay_Status_value = map[string]int32{ + "SUCCESS": 100, + "HOP_SRC_ADDR_TOO_LONG": 220, + "HOP_DST_ADDR_TOO_LONG": 221, + "HOP_SRC_MULTIADDR_INVALID": 250, + "HOP_DST_MULTIADDR_INVALID": 251, + "HOP_NO_CONN_TO_DST": 260, + "HOP_CANT_DIAL_DST": 261, + "HOP_CANT_OPEN_DST_STREAM": 262, + "HOP_CANT_SPEAK_RELAY": 270, + "HOP_CANT_RELAY_TO_SELF": 280, + "STOP_SRC_ADDR_TOO_LONG": 320, + "STOP_DST_ADDR_TOO_LONG": 321, + "STOP_SRC_MULTIADDR_INVALID": 350, + "STOP_DST_MULTIADDR_INVALID": 351, + "STOP_RELAY_REFUSED": 390, + "MALFORMED_MESSAGE": 400, +} + +func (x CircuitRelay_Status) Enum() *CircuitRelay_Status { + p := new(CircuitRelay_Status) + *p = x + return p +} + +func (x CircuitRelay_Status) String() string { + return proto.EnumName(CircuitRelay_Status_name, int32(x)) +} + +func (x *CircuitRelay_Status) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(CircuitRelay_Status_value, data, "CircuitRelay_Status") + if err != nil { + return err + } + *x = CircuitRelay_Status(value) + return nil +} + +func (CircuitRelay_Status) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9f69a7d5a802d584, []int{0, 0} +} + +type CircuitRelay_Type int32 + +const ( + CircuitRelay_HOP CircuitRelay_Type = 1 + CircuitRelay_STOP CircuitRelay_Type = 2 + CircuitRelay_STATUS CircuitRelay_Type = 3 + CircuitRelay_CAN_HOP CircuitRelay_Type = 4 +) + +var CircuitRelay_Type_name = map[int32]string{ + 1: "HOP", + 2: "STOP", + 3: "STATUS", + 4: "CAN_HOP", +} + +var CircuitRelay_Type_value = map[string]int32{ + "HOP": 1, + "STOP": 2, + "STATUS": 3, + "CAN_HOP": 4, +} + +func (x CircuitRelay_Type) Enum() *CircuitRelay_Type { + p := new(CircuitRelay_Type) + *p = x + return p +} + +func (x CircuitRelay_Type) String() string { + return proto.EnumName(CircuitRelay_Type_name, int32(x)) +} + +func (x *CircuitRelay_Type) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(CircuitRelay_Type_value, data, "CircuitRelay_Type") + if err != nil { + return err + } + *x = CircuitRelay_Type(value) + return nil +} + +func (CircuitRelay_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9f69a7d5a802d584, []int{0, 1} +} + +type CircuitRelay struct { + Type *CircuitRelay_Type `protobuf:"varint,1,opt,name=type,enum=relay.pb.CircuitRelay_Type" json:"type,omitempty"` + SrcPeer *CircuitRelay_Peer `protobuf:"bytes,2,opt,name=srcPeer" json:"srcPeer,omitempty"` + DstPeer *CircuitRelay_Peer `protobuf:"bytes,3,opt,name=dstPeer" json:"dstPeer,omitempty"` + Code *CircuitRelay_Status `protobuf:"varint,4,opt,name=code,enum=relay.pb.CircuitRelay_Status" json:"code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CircuitRelay) Reset() { *m = CircuitRelay{} } +func (m *CircuitRelay) String() string { return proto.CompactTextString(m) } +func (*CircuitRelay) ProtoMessage() {} +func (*CircuitRelay) Descriptor() ([]byte, []int) { + return fileDescriptor_9f69a7d5a802d584, []int{0} +} +func (m *CircuitRelay) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CircuitRelay) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CircuitRelay.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CircuitRelay) XXX_Merge(src proto.Message) { + xxx_messageInfo_CircuitRelay.Merge(m, src) +} +func (m *CircuitRelay) XXX_Size() int { + return m.Size() +} +func (m *CircuitRelay) XXX_DiscardUnknown() { + xxx_messageInfo_CircuitRelay.DiscardUnknown(m) +} + +var xxx_messageInfo_CircuitRelay proto.InternalMessageInfo + +func (m *CircuitRelay) GetType() CircuitRelay_Type { + if m != nil && m.Type != nil { + return *m.Type + } + return CircuitRelay_HOP +} + +func (m *CircuitRelay) GetSrcPeer() *CircuitRelay_Peer { + if m != nil { + return m.SrcPeer + } + return nil +} + +func (m *CircuitRelay) GetDstPeer() *CircuitRelay_Peer { + if m != nil { + return m.DstPeer + } + return nil +} + +func (m *CircuitRelay) GetCode() CircuitRelay_Status { + if m != nil && m.Code != nil { + return *m.Code + } + return CircuitRelay_SUCCESS +} + +type CircuitRelay_Peer struct { + Id []byte `protobuf:"bytes,1,req,name=id" json:"id,omitempty"` + Addrs [][]byte `protobuf:"bytes,2,rep,name=addrs" json:"addrs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CircuitRelay_Peer) Reset() { *m = CircuitRelay_Peer{} } +func (m *CircuitRelay_Peer) String() string { return proto.CompactTextString(m) } +func (*CircuitRelay_Peer) ProtoMessage() {} +func (*CircuitRelay_Peer) Descriptor() ([]byte, []int) { + return fileDescriptor_9f69a7d5a802d584, []int{0, 0} +} +func (m *CircuitRelay_Peer) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CircuitRelay_Peer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CircuitRelay_Peer.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CircuitRelay_Peer) XXX_Merge(src proto.Message) { + xxx_messageInfo_CircuitRelay_Peer.Merge(m, src) +} +func (m *CircuitRelay_Peer) XXX_Size() int { + return m.Size() +} +func (m *CircuitRelay_Peer) XXX_DiscardUnknown() { + xxx_messageInfo_CircuitRelay_Peer.DiscardUnknown(m) +} + +var xxx_messageInfo_CircuitRelay_Peer proto.InternalMessageInfo + +func (m *CircuitRelay_Peer) GetId() []byte { + if m != nil { + return m.Id + } + return nil +} + +func (m *CircuitRelay_Peer) GetAddrs() [][]byte { + if m != nil { + return m.Addrs + } + return nil +} + +func init() { + proto.RegisterEnum("relay.pb.CircuitRelay_Status", CircuitRelay_Status_name, CircuitRelay_Status_value) + proto.RegisterEnum("relay.pb.CircuitRelay_Type", CircuitRelay_Type_name, CircuitRelay_Type_value) + proto.RegisterType((*CircuitRelay)(nil), "relay.pb.CircuitRelay") + proto.RegisterType((*CircuitRelay_Peer)(nil), "relay.pb.CircuitRelay.Peer") +} + +func init() { proto.RegisterFile("relay.proto", fileDescriptor_9f69a7d5a802d584) } + +var fileDescriptor_9f69a7d5a802d584 = []byte{ + // 473 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x4f, 0x6f, 0xd3, 0x3e, + 0x18, 0xc7, 0x65, 0x27, 0xbf, 0x76, 0x7a, 0x5a, 0x4d, 0xfe, 0x59, 0x63, 0x64, 0x9d, 0x56, 0xaa, + 0x9e, 0x7a, 0x40, 0x45, 0x4c, 0xe2, 0x05, 0x98, 0xc4, 0xdd, 0x2a, 0xd2, 0x38, 0xb2, 0x5d, 0x24, + 0x4e, 0x56, 0x69, 0x72, 0xa8, 0x84, 0xd4, 0x2a, 0xcd, 0x0e, 0xbd, 0xc3, 0xb8, 0x21, 0x8e, 0xbc, + 0x1c, 0xe0, 0xc4, 0x91, 0x17, 0xc0, 0x3f, 0xf5, 0x65, 0xc0, 0x05, 0xd9, 0x5d, 0x33, 0x44, 0x37, + 0x89, 0xa3, 0x9f, 0xef, 0xe7, 0xe3, 0x3c, 0xf9, 0x26, 0xd0, 0x28, 0xf2, 0x17, 0x93, 0x55, 0x7f, + 0x51, 0xcc, 0xcb, 0x39, 0xdd, 0xbb, 0x3a, 0x3c, 0xef, 0xbe, 0xae, 0x41, 0x33, 0x9c, 0x15, 0xd3, + 0x8b, 0x59, 0x29, 0xed, 0x8c, 0x3e, 0x00, 0xbf, 0x5c, 0x2d, 0xf2, 0x00, 0x75, 0x50, 0x6f, 0xff, + 0xf4, 0xb8, 0xbf, 0x25, 0xfb, 0x7f, 0x52, 0x7d, 0xbd, 0x5a, 0xe4, 0xd2, 0x81, 0xf4, 0x11, 0xd4, + 0x97, 0xc5, 0x34, 0xcd, 0xf3, 0x22, 0xc0, 0x1d, 0xd4, 0x6b, 0xdc, 0xea, 0x58, 0x44, 0x6e, 0x59, + 0xab, 0x65, 0xcb, 0xd2, 0x69, 0xde, 0x3f, 0x68, 0x57, 0x2c, 0x7d, 0x08, 0xfe, 0x74, 0x9e, 0xe5, + 0x81, 0xef, 0xd6, 0x3b, 0xb9, 0xc5, 0x51, 0xe5, 0xa4, 0xbc, 0x58, 0x4a, 0x87, 0xb6, 0xee, 0x83, + 0xef, 0xd4, 0x7d, 0xc0, 0xb3, 0x2c, 0x40, 0x1d, 0xdc, 0x6b, 0x4a, 0x3c, 0xcb, 0xe8, 0x01, 0xfc, + 0x37, 0xc9, 0xb2, 0x62, 0x19, 0xe0, 0x8e, 0xd7, 0x6b, 0xca, 0xcd, 0xa1, 0xfb, 0xd1, 0x83, 0xda, + 0x46, 0xa7, 0x0d, 0xa8, 0xab, 0x71, 0x18, 0x72, 0xa5, 0x48, 0x46, 0x5b, 0x70, 0xe7, 0x5c, 0xa4, + 0x46, 0xc9, 0xd0, 0xb0, 0x28, 0x92, 0x46, 0x0b, 0x61, 0x62, 0x91, 0x9c, 0x91, 0x2f, 0x68, 0x9b, + 0x45, 0x4a, 0xff, 0x95, 0x7d, 0x45, 0xb4, 0x0d, 0x47, 0x5b, 0x6f, 0x34, 0x8e, 0xf5, 0xd0, 0x01, + 0xc3, 0xe4, 0x29, 0x8b, 0x87, 0x11, 0xf9, 0x59, 0xe5, 0xd6, 0xdd, 0xcd, 0x7f, 0x21, 0x7a, 0x17, + 0xa8, 0xcd, 0x13, 0x61, 0x42, 0x91, 0x24, 0x46, 0x0b, 0x8b, 0x92, 0x97, 0x98, 0x1e, 0xc2, 0xff, + 0x36, 0x08, 0x59, 0xa2, 0x4d, 0x34, 0x64, 0xb1, 0x9b, 0xbf, 0xc2, 0xf4, 0x04, 0x82, 0x6a, 0x2e, + 0x52, 0x9e, 0xb8, 0xab, 0x95, 0x96, 0x9c, 0x8d, 0xc8, 0x25, 0xa6, 0x47, 0x70, 0x50, 0xc5, 0x2a, + 0xe5, 0xec, 0x89, 0x91, 0x3c, 0x66, 0xcf, 0xc8, 0x1b, 0x4c, 0x8f, 0xe1, 0xb0, 0x8a, 0xdc, 0xd0, + 0x3e, 0x4d, 0xf1, 0x78, 0x40, 0xde, 0xb9, 0x50, 0xe9, 0x1b, 0x0b, 0x78, 0x7f, 0x1d, 0xee, 0x36, + 0xf0, 0x01, 0xd3, 0x7b, 0xd0, 0xaa, 0xcc, 0xdd, 0x57, 0xfc, 0x76, 0x0d, 0xdc, 0xdc, 0xc1, 0x77, + 0x6c, 0x3b, 0x70, 0xc0, 0x66, 0x29, 0xc9, 0x07, 0x63, 0xc5, 0x23, 0x72, 0xe9, 0xd9, 0x0e, 0x46, + 0x2c, 0x1e, 0x08, 0x39, 0xe2, 0x91, 0x19, 0x71, 0xa5, 0xd8, 0x19, 0x27, 0x6f, 0xbd, 0xee, 0x29, + 0xf8, 0xf6, 0x0f, 0xa5, 0x75, 0xf0, 0xce, 0x45, 0x4a, 0x10, 0xdd, 0x03, 0xdf, 0xde, 0x40, 0x30, + 0x05, 0xa8, 0x29, 0xcd, 0xf4, 0x58, 0x11, 0xcf, 0x7e, 0xe0, 0x90, 0x25, 0xc6, 0x22, 0xfe, 0xe3, + 0xe6, 0xa7, 0x75, 0x1b, 0x7d, 0x5e, 0xb7, 0xd1, 0x8f, 0x75, 0x1b, 0xfd, 0x0e, 0x00, 0x00, 0xff, + 0xff, 0x6b, 0x22, 0x33, 0xbb, 0x2f, 0x03, 0x00, 0x00, +} + +func (m *CircuitRelay) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CircuitRelay) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Type != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintRelay(dAtA, i, uint64(*m.Type)) + } + if m.SrcPeer != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintRelay(dAtA, i, uint64(m.SrcPeer.Size())) + n1, err := m.SrcPeer.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.DstPeer != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintRelay(dAtA, i, uint64(m.DstPeer.Size())) + n2, err := m.DstPeer.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.Code != nil { + dAtA[i] = 0x20 + i++ + i = encodeVarintRelay(dAtA, i, uint64(*m.Code)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *CircuitRelay_Peer) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CircuitRelay_Peer) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Id == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("id") + } else { + dAtA[i] = 0xa + i++ + i = encodeVarintRelay(dAtA, i, uint64(len(m.Id))) + i += copy(dAtA[i:], m.Id) + } + if len(m.Addrs) > 0 { + for _, b := range m.Addrs { + dAtA[i] = 0x12 + i++ + i = encodeVarintRelay(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintRelay(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *CircuitRelay) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != nil { + n += 1 + sovRelay(uint64(*m.Type)) + } + if m.SrcPeer != nil { + l = m.SrcPeer.Size() + n += 1 + l + sovRelay(uint64(l)) + } + if m.DstPeer != nil { + l = m.DstPeer.Size() + n += 1 + l + sovRelay(uint64(l)) + } + if m.Code != nil { + n += 1 + sovRelay(uint64(*m.Code)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *CircuitRelay_Peer) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != nil { + l = len(m.Id) + n += 1 + l + sovRelay(uint64(l)) + } + if len(m.Addrs) > 0 { + for _, b := range m.Addrs { + l = len(b) + n += 1 + l + sovRelay(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovRelay(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozRelay(x uint64) (n int) { + return sovRelay(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *CircuitRelay) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CircuitRelay: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CircuitRelay: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var v CircuitRelay_Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= CircuitRelay_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Type = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SrcPeer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRelay + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRelay + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SrcPeer == nil { + m.SrcPeer = &CircuitRelay_Peer{} + } + if err := m.SrcPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DstPeer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRelay + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRelay + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DstPeer == nil { + m.DstPeer = &CircuitRelay_Peer{} + } + if err := m.DstPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + var v CircuitRelay_Status + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= CircuitRelay_Status(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Code = &v + default: + iNdEx = preIndex + skippy, err := skipRelay(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRelay + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRelay + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CircuitRelay_Peer) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Peer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Peer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRelay + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRelay + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = append(m.Id[:0], dAtA[iNdEx:postIndex]...) + if m.Id == nil { + m.Id = []byte{} + } + iNdEx = postIndex + hasFields[0] |= uint64(0x00000001) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addrs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRelay + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRelay + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRelay + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addrs = append(m.Addrs, make([]byte, postIndex-iNdEx)) + copy(m.Addrs[len(m.Addrs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRelay(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRelay + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRelay + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("id") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRelay(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRelay + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRelay + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRelay + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthRelay + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthRelay + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRelay + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipRelay(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthRelay + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthRelay = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRelay = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.proto b/vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.proto new file mode 100644 index 00000000..de3e637b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/pb/relay.proto @@ -0,0 +1,44 @@ +syntax = "proto2"; + +package relay.pb; + +message CircuitRelay { + + enum Status { + SUCCESS = 100; + HOP_SRC_ADDR_TOO_LONG = 220; + HOP_DST_ADDR_TOO_LONG = 221; + HOP_SRC_MULTIADDR_INVALID = 250; + HOP_DST_MULTIADDR_INVALID = 251; + HOP_NO_CONN_TO_DST = 260; + HOP_CANT_DIAL_DST = 261; + HOP_CANT_OPEN_DST_STREAM = 262; + HOP_CANT_SPEAK_RELAY = 270; + HOP_CANT_RELAY_TO_SELF = 280; + STOP_SRC_ADDR_TOO_LONG = 320; + STOP_DST_ADDR_TOO_LONG = 321; + STOP_SRC_MULTIADDR_INVALID = 350; + STOP_DST_MULTIADDR_INVALID = 351; + STOP_RELAY_REFUSED = 390; + MALFORMED_MESSAGE = 400; + } + + enum Type { // RPC identifier, either HOP, STOP or STATUS + HOP = 1; + STOP = 2; + STATUS = 3; + CAN_HOP = 4; + } + + message Peer { + required bytes id = 1; // peer id + repeated bytes addrs = 2; // peer's known addresses + } + + optional Type type = 1; // Type of the message + + optional Peer srcPeer = 2; // srcPeer and dstPeer are used when Type is HOP or STOP + optional Peer dstPeer = 3; + + optional Status code = 4; // Status code, used when Type is STATUS +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/relay.go b/vendor/github.com/libp2p/go-libp2p-circuit/relay.go new file mode 100644 index 00000000..b15841b2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/relay.go @@ -0,0 +1,479 @@ +package relay + +import ( + "context" + "fmt" + "io" + "sync" + "time" + + pb "github.com/libp2p/go-libp2p-circuit/pb" + + logging "github.com/ipfs/go-log" + pool "github.com/libp2p/go-buffer-pool" + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("relay") + +const ProtoID = "/libp2p/circuit/relay/0.1.0" + +const maxMessageSize = 4096 + +var RelayAcceptTimeout = time.Minute +var HopConnectTimeout = 10 * time.Second + +// Relay is the relay transport and service. +type Relay struct { + host host.Host + upgrader *tptu.Upgrader + ctx context.Context + self peer.ID + + active bool + hop bool + discovery bool + + incoming chan *Conn + + relays map[peer.ID]struct{} + mx sync.Mutex + + liveHops map[peer.ID]map[peer.ID]int + lhCount uint64 + lhLk sync.Mutex +} + +// RelayOpts are options for configuring the relay transport. +type RelayOpt int + +var ( + // OptActive configures the relay transport to actively establish + // outbound connections on behalf of clients. You probably don't want to + // enable this unless you know what you're doing. + OptActive = RelayOpt(0) + // OptHop configures the relay transport to accept requests to relay + // traffic on behalf of third-parties. Unless OptActive is specified, + // this will only relay traffic between peers already connected to this + // node. + OptHop = RelayOpt(1) + // OptDiscovery configures this relay transport to discover new relays + // by probing every new peer. You almost _certainly_ don't want to + // enable this. + OptDiscovery = RelayOpt(2) +) + +type RelayError struct { + Code pb.CircuitRelay_Status +} + +func (e RelayError) Error() string { + return fmt.Sprintf("error opening relay circuit: %s (%d)", pb.CircuitRelay_Status_name[int32(e.Code)], e.Code) +} + +// NewRelay constructs a new relay. +func NewRelay(ctx context.Context, h host.Host, upgrader *tptu.Upgrader, opts ...RelayOpt) (*Relay, error) { + r := &Relay{ + upgrader: upgrader, + host: h, + ctx: ctx, + self: h.ID(), + incoming: make(chan *Conn), + relays: make(map[peer.ID]struct{}), + liveHops: make(map[peer.ID]map[peer.ID]int), + } + + for _, opt := range opts { + switch opt { + case OptActive: + r.active = true + case OptHop: + r.hop = true + case OptDiscovery: + r.discovery = true + default: + return nil, fmt.Errorf("unrecognized option: %d", opt) + } + } + + h.SetStreamHandler(ProtoID, r.handleNewStream) + + if r.discovery { + h.Network().Notify(r.notifiee()) + } + + return r, nil +} + +func (r *Relay) addLiveHop(from, to peer.ID) { + r.lhLk.Lock() + defer r.lhLk.Unlock() + + trg, ok := r.liveHops[from] + if !ok { + trg = make(map[peer.ID]int) + r.liveHops[from] = trg + } + trg[to]++ + r.lhCount++ +} + +func (r *Relay) rmLiveHop(from, to peer.ID) { + r.lhLk.Lock() + defer r.lhLk.Unlock() + + trg, ok := r.liveHops[from] + if !ok { + return + } + var count int + if count, ok = trg[to]; !ok { + return + } + count-- + + r.lhCount-- + if count <= 0 { + delete(trg, to) + if len(trg) == 0 { + delete(r.liveHops, from) + } + } else { + trg[to] = count + } +} + +func (r *Relay) GetActiveHops() uint64 { + r.lhLk.Lock() + defer r.lhLk.Unlock() + + return r.lhCount +} + +func (r *Relay) DialPeer(ctx context.Context, relay pstore.PeerInfo, dest pstore.PeerInfo) (*Conn, error) { + + log.Debugf("dialing peer %s through relay %s", dest.ID, relay.ID) + + if len(relay.Addrs) > 0 { + r.host.Peerstore().AddAddrs(relay.ID, relay.Addrs, pstore.TempAddrTTL) + } + + s, err := r.host.NewStream(ctx, relay.ID, ProtoID) + if err != nil { + return nil, err + } + + rd := newDelimitedReader(s, maxMessageSize) + wr := newDelimitedWriter(s) + defer rd.Close() + + var msg pb.CircuitRelay + + msg.Type = pb.CircuitRelay_HOP.Enum() + msg.SrcPeer = peerInfoToPeer(r.host.Peerstore().PeerInfo(r.self)) + msg.DstPeer = peerInfoToPeer(dest) + + err = wr.WriteMsg(&msg) + if err != nil { + s.Reset() + return nil, err + } + + msg.Reset() + + err = rd.ReadMsg(&msg) + if err != nil { + s.Reset() + return nil, err + } + + if msg.GetType() != pb.CircuitRelay_STATUS { + s.Reset() + return nil, fmt.Errorf("unexpected relay response; not a status message (%d)", msg.GetType()) + } + + if msg.GetCode() != pb.CircuitRelay_SUCCESS { + s.Reset() + return nil, RelayError{msg.GetCode()} + } + + return &Conn{Stream: s, remote: dest}, nil +} + +func (r *Relay) Matches(addr ma.Multiaddr) bool { + // TODO: Look at the prefix transport as well. + _, err := addr.ValueForProtocol(P_CIRCUIT) + return err == nil +} + +func (r *Relay) CanHop(ctx context.Context, id peer.ID) (bool, error) { + s, err := r.host.NewStream(ctx, id, ProtoID) + if err != nil { + return false, err + } + + rd := newDelimitedReader(s, maxMessageSize) + wr := newDelimitedWriter(s) + defer rd.Close() + + var msg pb.CircuitRelay + + msg.Type = pb.CircuitRelay_CAN_HOP.Enum() + + if err := wr.WriteMsg(&msg); err != nil { + s.Reset() + return false, err + } + + msg.Reset() + + if err := rd.ReadMsg(&msg); err != nil { + s.Reset() + return false, err + } + if err := inet.FullClose(s); err != nil { + return false, err + } + + if msg.GetType() != pb.CircuitRelay_STATUS { + return false, fmt.Errorf("unexpected relay response; not a status message (%d)", msg.GetType()) + } + + return msg.GetCode() == pb.CircuitRelay_SUCCESS, nil +} + +func (r *Relay) handleNewStream(s inet.Stream) { + log.Infof("new relay stream from: %s", s.Conn().RemotePeer()) + + rd := newDelimitedReader(s, maxMessageSize) + defer rd.Close() + + var msg pb.CircuitRelay + + err := rd.ReadMsg(&msg) + if err != nil { + r.handleError(s, pb.CircuitRelay_MALFORMED_MESSAGE) + return + } + + switch msg.GetType() { + case pb.CircuitRelay_HOP: + r.handleHopStream(s, &msg) + case pb.CircuitRelay_STOP: + r.handleStopStream(s, &msg) + case pb.CircuitRelay_CAN_HOP: + r.handleCanHop(s, &msg) + default: + log.Warningf("unexpected relay handshake: %d", msg.GetType()) + r.handleError(s, pb.CircuitRelay_MALFORMED_MESSAGE) + } +} + +func (r *Relay) handleHopStream(s inet.Stream, msg *pb.CircuitRelay) { + if !r.hop { + r.handleError(s, pb.CircuitRelay_HOP_CANT_SPEAK_RELAY) + return + } + + src, err := peerToPeerInfo(msg.GetSrcPeer()) + if err != nil { + r.handleError(s, pb.CircuitRelay_HOP_SRC_MULTIADDR_INVALID) + return + } + + if src.ID != s.Conn().RemotePeer() { + r.handleError(s, pb.CircuitRelay_HOP_SRC_MULTIADDR_INVALID) + return + } + + dst, err := peerToPeerInfo(msg.GetDstPeer()) + if err != nil { + r.handleError(s, pb.CircuitRelay_HOP_DST_MULTIADDR_INVALID) + return + } + + if dst.ID == r.self { + r.handleError(s, pb.CircuitRelay_HOP_CANT_RELAY_TO_SELF) + return + } + + // open stream + ctx, cancel := context.WithTimeout(r.ctx, HopConnectTimeout) + defer cancel() + + if !r.active { + ctx = inet.WithNoDial(ctx, "relay hop") + } else if len(dst.Addrs) > 0 { + r.host.Peerstore().AddAddrs(dst.ID, dst.Addrs, pstore.TempAddrTTL) + } + + bs, err := r.host.NewStream(ctx, dst.ID, ProtoID) + if err != nil { + log.Debugf("error opening relay stream to %s: %s", dst.ID.Pretty(), err.Error()) + if err == inet.ErrNoConn { + r.handleError(s, pb.CircuitRelay_HOP_NO_CONN_TO_DST) + } else { + r.handleError(s, pb.CircuitRelay_HOP_CANT_DIAL_DST) + } + return + } + + // stop handshake + rd := newDelimitedReader(bs, maxMessageSize) + wr := newDelimitedWriter(bs) + defer rd.Close() + + msg.Type = pb.CircuitRelay_STOP.Enum() + + err = wr.WriteMsg(msg) + if err != nil { + log.Debugf("error writing stop handshake: %s", err.Error()) + bs.Reset() + r.handleError(s, pb.CircuitRelay_HOP_CANT_OPEN_DST_STREAM) + return + } + + msg.Reset() + + err = rd.ReadMsg(msg) + if err != nil { + log.Debugf("error reading stop response: %s", err.Error()) + bs.Reset() + r.handleError(s, pb.CircuitRelay_HOP_CANT_OPEN_DST_STREAM) + return + } + + if msg.GetType() != pb.CircuitRelay_STATUS { + log.Debugf("unexpected relay stop response: not a status message (%d)", msg.GetType()) + bs.Reset() + r.handleError(s, pb.CircuitRelay_HOP_CANT_OPEN_DST_STREAM) + return + } + + if msg.GetCode() != pb.CircuitRelay_SUCCESS { + log.Debugf("relay stop failure: %d", msg.GetCode()) + bs.Reset() + r.handleError(s, msg.GetCode()) + return + } + + err = r.writeResponse(s, pb.CircuitRelay_SUCCESS) + if err != nil { + log.Debugf("error writing relay response: %s", err.Error()) + bs.Reset() + s.Reset() + return + } + + // relay connection + log.Infof("relaying connection between %s and %s", src.ID.Pretty(), dst.ID.Pretty()) + + r.addLiveHop(src.ID, dst.ID) + + // Don't reset streams after finishing or the other side will get an + // error, not an EOF. + go func() { + defer r.rmLiveHop(src.ID, dst.ID) + + buf := pool.Get(4096) + defer pool.Put(buf) + + count, err := io.CopyBuffer(s, bs, buf) + if err != nil { + log.Debugf("relay copy error: %s", err) + // Reset both. + s.Reset() + bs.Reset() + } else { + // propagate the close + s.Close() + } + log.Debugf("relayed %d bytes from %s to %s", count, dst.ID.Pretty(), src.ID.Pretty()) + }() + + go func() { + buf := pool.Get(4096) + defer pool.Put(buf) + + count, err := io.CopyBuffer(bs, s, buf) + if err != nil { + log.Debugf("relay copy error: %s", err) + // Reset both. + bs.Reset() + s.Reset() + } else { + // propagate the close + bs.Close() + } + log.Debugf("relayed %d bytes from %s to %s", count, src.ID.Pretty(), dst.ID.Pretty()) + }() +} + +func (r *Relay) handleStopStream(s inet.Stream, msg *pb.CircuitRelay) { + src, err := peerToPeerInfo(msg.GetSrcPeer()) + if err != nil { + r.handleError(s, pb.CircuitRelay_STOP_SRC_MULTIADDR_INVALID) + return + } + + dst, err := peerToPeerInfo(msg.GetDstPeer()) + if err != nil || dst.ID != r.self { + r.handleError(s, pb.CircuitRelay_STOP_DST_MULTIADDR_INVALID) + return + } + + log.Infof("relay connection from: %s", src.ID) + + if len(src.Addrs) > 0 { + r.host.Peerstore().AddAddrs(src.ID, src.Addrs, pstore.TempAddrTTL) + } + + select { + case r.incoming <- &Conn{Stream: s, remote: src}: + case <-time.After(RelayAcceptTimeout): + r.handleError(s, pb.CircuitRelay_STOP_RELAY_REFUSED) + } +} + +func (r *Relay) handleCanHop(s inet.Stream, msg *pb.CircuitRelay) { + var err error + + if r.hop { + err = r.writeResponse(s, pb.CircuitRelay_SUCCESS) + } else { + err = r.writeResponse(s, pb.CircuitRelay_HOP_CANT_SPEAK_RELAY) + } + + if err != nil { + s.Reset() + log.Debugf("error writing relay response: %s", err.Error()) + } else { + inet.FullClose(s) + } +} + +func (r *Relay) handleError(s inet.Stream, code pb.CircuitRelay_Status) { + log.Warningf("relay error: %s (%d)", pb.CircuitRelay_Status_name[int32(code)], code) + err := r.writeResponse(s, code) + if err != nil { + s.Reset() + log.Debugf("error writing relay response: %s", err.Error()) + } else { + inet.FullClose(s) + } +} + +func (r *Relay) writeResponse(s inet.Stream, code pb.CircuitRelay_Status) error { + wr := newDelimitedWriter(s) + + var msg pb.CircuitRelay + msg.Type = pb.CircuitRelay_STATUS.Enum() + msg.Code = code.Enum() + + return wr.WriteMsg(&msg) +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/transport.go b/vendor/github.com/libp2p/go-libp2p-circuit/transport.go new file mode 100644 index 00000000..86821d32 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/transport.go @@ -0,0 +1,80 @@ +package relay + +import ( + "context" + "fmt" + + host "github.com/libp2p/go-libp2p-host" + tpt "github.com/libp2p/go-libp2p-transport" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + ma "github.com/multiformats/go-multiaddr" +) + +const P_CIRCUIT = 290 + +var Protocol = ma.Protocol{ + Code: P_CIRCUIT, + Size: 0, + Name: "p2p-circuit", + VCode: ma.CodeToVarint(P_CIRCUIT), +} + +func init() { + ma.AddProtocol(Protocol) +} + +var _ tpt.Transport = (*RelayTransport)(nil) + +type RelayTransport Relay + +func (t *RelayTransport) Relay() *Relay { + return (*Relay)(t) +} + +func (r *Relay) Transport() *RelayTransport { + return (*RelayTransport)(r) +} + +func (t *RelayTransport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) { + // TODO: Ensure we have a connection to the relay, if specified. Also, + // make sure the multiaddr makes sense. + if !t.Relay().Matches(laddr) { + return nil, fmt.Errorf("%s is not a relay address", laddr) + } + return t.upgrader.UpgradeListener(t, t.Relay().Listener()), nil +} + +func (t *RelayTransport) CanDial(raddr ma.Multiaddr) bool { + return t.Relay().Matches(raddr) +} + +func (t *RelayTransport) Proxy() bool { + return true +} + +func (t *RelayTransport) Protocols() []int { + return []int{P_CIRCUIT} +} + +// AddRelayTransport constructs a relay and adds it as a transport to the host network. +func AddRelayTransport(ctx context.Context, h host.Host, upgrader *tptu.Upgrader, opts ...RelayOpt) error { + n, ok := h.Network().(tpt.Network) + if !ok { + return fmt.Errorf("%v is not a transport network", h.Network()) + } + + r, err := NewRelay(ctx, h, upgrader, opts...) + if err != nil { + return err + } + + // There's no nice way to handle these errors as we have no way to tear + // down the relay. + // TODO + if err := n.AddTransport(r.Transport()); err != nil { + log.Error("failed to add relay transport:", err) + } else if err := n.Listen(r.Listener().Multiaddr()); err != nil { + log.Error("failed to listen on relay transport:", err) + } + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-circuit/util.go b/vendor/github.com/libp2p/go-libp2p-circuit/util.go new file mode 100644 index 00000000..7d56b895 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-circuit/util.go @@ -0,0 +1,105 @@ +package relay + +import ( + "encoding/binary" + "errors" + "io" + + pb "github.com/libp2p/go-libp2p-circuit/pb" + + ggio "github.com/gogo/protobuf/io" + proto "github.com/gogo/protobuf/proto" + pool "github.com/libp2p/go-buffer-pool" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" +) + +func peerToPeerInfo(p *pb.CircuitRelay_Peer) (pstore.PeerInfo, error) { + if p == nil { + return pstore.PeerInfo{}, errors.New("nil peer") + } + + id, err := peer.IDFromBytes(p.Id) + if err != nil { + return pstore.PeerInfo{}, err + } + + addrs := make([]ma.Multiaddr, 0, len(p.Addrs)) + for _, addrBytes := range p.Addrs { + a, err := ma.NewMultiaddrBytes(addrBytes) + if err == nil { + addrs = append(addrs, a) + } + } + + return pstore.PeerInfo{ID: id, Addrs: addrs}, nil +} + +func peerInfoToPeer(pi pstore.PeerInfo) *pb.CircuitRelay_Peer { + addrs := make([][]byte, len(pi.Addrs)) + for i, addr := range pi.Addrs { + addrs[i] = addr.Bytes() + } + + p := new(pb.CircuitRelay_Peer) + p.Id = []byte(pi.ID) + p.Addrs = addrs + + return p +} + +type delimitedReader struct { + r io.Reader + buf []byte +} + +// The gogo protobuf NewDelimitedReader is buffered, which may eat up stream data. +// So we need to implement a compatible delimited reader that reads unbuffered. +// There is a slowdown from unbuffered reading: when reading the message +// it can take multiple single byte Reads to read the length and another Read +// to read the message payload. +// However, this is not critical performance degradation as +// - the reader is utilized to read one (dialer, stop) or two messages (hop) during +// the handshake, so it's a drop in the water for the connection lifetime. +// - messages are small (max 4k) and the length fits in a couple of bytes, +// so overall we have at most three reads per message. +func newDelimitedReader(r io.Reader, maxSize int) *delimitedReader { + return &delimitedReader{r: r, buf: pool.Get(maxSize)} +} + +func (d *delimitedReader) Close() { + if d.buf != nil { + pool.Put(d.buf) + d.buf = nil + } +} + +func (d *delimitedReader) ReadByte() (byte, error) { + buf := d.buf[:1] + _, err := d.r.Read(buf) + return buf[0], err +} + +func (d *delimitedReader) ReadMsg(msg proto.Message) error { + mlen, err := binary.ReadUvarint(d) + if err != nil { + return err + } + + if uint64(len(d.buf)) < mlen { + return errors.New("Message too large") + } + + buf := d.buf[:mlen] + _, err = io.ReadFull(d.r, buf) + if err != nil { + return err + } + + return proto.Unmarshal(buf, msg) +} + +func newDelimitedWriter(w io.Writer) ggio.WriteCloser { + return ggio.NewDelimitedWriter(w) +} diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/.travis.yml b/vendor/github.com/libp2p/go-libp2p-connmgr/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/LICENSE b/vendor/github.com/libp2p/go-libp2p-connmgr/LICENSE new file mode 100644 index 00000000..83f48ce5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Whyrusleeping + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/Makefile b/vendor/github.com/libp2p/go-libp2p-connmgr/Makefile new file mode 100644 index 00000000..5c996090 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/Makefile @@ -0,0 +1,13 @@ +all: deps + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/README.md b/vendor/github.com/libp2p/go-libp2p-connmgr/README.md new file mode 100644 index 00000000..e0e727dc --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/README.md @@ -0,0 +1,41 @@ +go-libp2p-connmgr +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-connmgr/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-connmgr?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-connmgr.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-connmgr) + +> A package to help manage connections in go-libp2p + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Examples + +```go +// TODO: +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Whyrusleeping diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/codecov.yml b/vendor/github.com/libp2p/go-libp2p-connmgr/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/connmgr.go b/vendor/github.com/libp2p/go-libp2p-connmgr/connmgr.go new file mode 100644 index 00000000..2629dffd --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/connmgr.go @@ -0,0 +1,362 @@ +package connmgr + +import ( + "context" + "sort" + "sync" + "time" + + logging "github.com/ipfs/go-log" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +var SilencePeriod = 10 * time.Second + +var log = logging.Logger("connmgr") + +// BasicConnMgr is a ConnManager that trims connections whenever the count exceeds the +// high watermark. New connections are given a grace period before they're subject +// to trimming. Trims are automatically run on demand, only if the time from the +// previous trim is higher than 10 seconds. Furthermore, trims can be explicitly +// requested through the public interface of this struct (see TrimOpenConns). +// +// See configuration parameters in NewConnManager. +type BasicConnMgr struct { + lk sync.Mutex + highWater int + lowWater int + connCount int + gracePeriod time.Duration + peers map[peer.ID]*peerInfo + + plk sync.RWMutex + protected map[peer.ID]map[string]struct{} + + // channel-based semaphore that enforces only a single trim is in progress + trimRunningCh chan struct{} + lastTrim time.Time + silencePeriod time.Duration +} + +var _ ifconnmgr.ConnManager = (*BasicConnMgr)(nil) + +// NewConnManager creates a new BasicConnMgr with the provided params: +// * lo and hi are watermarks governing the number of connections that'll be maintained. +// When the peer count exceeds the 'high watermark', as many peers will be pruned (and +// their connections terminated) until 'low watermark' peers remain. +// * grace is the amount of time a newly opened connection is given before it becomes +// subject to pruning. +func NewConnManager(low, hi int, grace time.Duration) *BasicConnMgr { + return &BasicConnMgr{ + highWater: hi, + lowWater: low, + gracePeriod: grace, + peers: make(map[peer.ID]*peerInfo), + trimRunningCh: make(chan struct{}, 1), + protected: make(map[peer.ID]map[string]struct{}, 16), + silencePeriod: SilencePeriod, + } +} + +func (cm *BasicConnMgr) Protect(id peer.ID, tag string) { + cm.plk.Lock() + defer cm.plk.Unlock() + + tags, ok := cm.protected[id] + if !ok { + tags = make(map[string]struct{}, 2) + cm.protected[id] = tags + } + tags[tag] = struct{}{} +} + +func (cm *BasicConnMgr) Unprotect(id peer.ID, tag string) (protected bool) { + cm.plk.Lock() + defer cm.plk.Unlock() + + tags, ok := cm.protected[id] + if !ok { + return false + } + if delete(tags, tag); len(tags) == 0 { + delete(cm.protected, id) + return false + } + return true +} + +// peerInfo stores metadata for a given peer. +type peerInfo struct { + id peer.ID + tags map[string]int // value for each tag + value int // cached sum of all tag values + + conns map[inet.Conn]time.Time // start time of each connection + + firstSeen time.Time // timestamp when we began tracking this peer. +} + +// TrimOpenConns closes the connections of as many peers as needed to make the peer count +// equal the low watermark. Peers are sorted in ascending order based on their total value, +// pruning those peers with the lowest scores first, as long as they are not within their +// grace period. +// +// TODO: error return value so we can cleanly signal we are aborting because: +// (a) there's another trim in progress, or (b) the silence period is in effect. +func (cm *BasicConnMgr) TrimOpenConns(ctx context.Context) { + select { + case cm.trimRunningCh <- struct{}{}: + default: + return + } + defer func() { <-cm.trimRunningCh }() + if time.Since(cm.lastTrim) < cm.silencePeriod { + // skip this attempt to trim as the last one just took place. + return + } + defer log.EventBegin(ctx, "connCleanup").Done() + for _, c := range cm.getConnsToClose(ctx) { + log.Info("closing conn: ", c.RemotePeer()) + log.Event(ctx, "closeConn", c.RemotePeer()) + c.Close() + } + cm.lastTrim = time.Now() +} + +// getConnsToClose runs the heuristics described in TrimOpenConns and returns the +// connections to close. +func (cm *BasicConnMgr) getConnsToClose(ctx context.Context) []inet.Conn { + cm.lk.Lock() + defer cm.lk.Unlock() + + if cm.lowWater == 0 || cm.highWater == 0 { + // disabled + return nil + } + now := time.Now() + if len(cm.peers) < cm.lowWater { + log.Info("open connection count below limit") + return nil + } + + var candidates []*peerInfo + cm.plk.RLock() + for id, inf := range cm.peers { + if _, ok := cm.protected[id]; ok { + // skip over protected peer. + continue + } + candidates = append(candidates, inf) + } + cm.plk.RUnlock() + + // Sort peers according to their value. + sort.Slice(candidates, func(i, j int) bool { + return candidates[i].value < candidates[j].value + }) + + target := len(cm.peers) - cm.lowWater + + // 2x number of peers we're disconnecting from because we may have more + // than one connection per peer. Slightly over allocating isn't an issue + // as this is a very short-lived array. + selected := make([]inet.Conn, 0, target*2) + + for _, inf := range candidates { + // TODO: should we be using firstSeen or the time associated with the connection itself? + if inf.firstSeen.Add(cm.gracePeriod).After(now) { + continue + } + + for c := range inf.conns { + selected = append(selected, c) + } + + target-- + if target == 0 { + break + } + } + + return selected +} + +// GetTagInfo is called to fetch the tag information associated with a given +// peer, nil is returned if p refers to an unknown peer. +func (cm *BasicConnMgr) GetTagInfo(p peer.ID) *ifconnmgr.TagInfo { + cm.lk.Lock() + defer cm.lk.Unlock() + + pi, ok := cm.peers[p] + if !ok { + return nil + } + + out := &ifconnmgr.TagInfo{ + FirstSeen: pi.firstSeen, + Value: pi.value, + Tags: make(map[string]int), + Conns: make(map[string]time.Time), + } + + for t, v := range pi.tags { + out.Tags[t] = v + } + for c, t := range pi.conns { + out.Conns[c.RemoteMultiaddr().String()] = t + } + + return out +} + +// TagPeer is called to associate a string and integer with a given peer. +func (cm *BasicConnMgr) TagPeer(p peer.ID, tag string, val int) { + cm.lk.Lock() + defer cm.lk.Unlock() + + pi, ok := cm.peers[p] + if !ok { + log.Info("tried to tag conn from untracked peer: ", p) + return + } + + // Update the total value of the peer. + pi.value += (val - pi.tags[tag]) + pi.tags[tag] = val +} + +// UntagPeer is called to disassociate a string and integer from a given peer. +func (cm *BasicConnMgr) UntagPeer(p peer.ID, tag string) { + cm.lk.Lock() + defer cm.lk.Unlock() + + pi, ok := cm.peers[p] + if !ok { + log.Info("tried to remove tag from untracked peer: ", p) + return + } + + // Update the total value of the peer. + pi.value -= pi.tags[tag] + delete(pi.tags, tag) +} + +// CMInfo holds the configuration for BasicConnMgr, as well as status data. +type CMInfo struct { + // The low watermark, as described in NewConnManager. + LowWater int + + // The high watermark, as described in NewConnManager. + HighWater int + + // The timestamp when the last trim was triggered. + LastTrim time.Time + + // The configured grace period, as described in NewConnManager. + GracePeriod time.Duration + + // The current connection count. + ConnCount int +} + +// GetInfo returns the configuration and status data for this connection manager. +func (cm *BasicConnMgr) GetInfo() CMInfo { + cm.lk.Lock() + defer cm.lk.Unlock() + + return CMInfo{ + HighWater: cm.highWater, + LowWater: cm.lowWater, + LastTrim: cm.lastTrim, + GracePeriod: cm.gracePeriod, + ConnCount: cm.connCount, + } +} + +// Notifee returns a sink through which Notifiers can inform the BasicConnMgr when +// events occur. Currently, the notifee only reacts upon connection events +// {Connected, Disconnected}. +func (cm *BasicConnMgr) Notifee() inet.Notifiee { + return (*cmNotifee)(cm) +} + +type cmNotifee BasicConnMgr + +func (nn *cmNotifee) cm() *BasicConnMgr { + return (*BasicConnMgr)(nn) +} + +// Connected is called by notifiers to inform that a new connection has been established. +// The notifee updates the BasicConnMgr to start tracking the connection. If the new connection +// count exceeds the high watermark, a trim may be triggered. +func (nn *cmNotifee) Connected(n inet.Network, c inet.Conn) { + cm := nn.cm() + + cm.lk.Lock() + defer cm.lk.Unlock() + + pinfo, ok := cm.peers[c.RemotePeer()] + if !ok { + pinfo = &peerInfo{ + firstSeen: time.Now(), + tags: make(map[string]int), + conns: make(map[inet.Conn]time.Time), + } + cm.peers[c.RemotePeer()] = pinfo + } + + _, ok = pinfo.conns[c] + if ok { + log.Error("received connected notification for conn we are already tracking: ", c.RemotePeer()) + return + } + + pinfo.conns[c] = time.Now() + cm.connCount++ + + if cm.connCount > nn.highWater { + go cm.TrimOpenConns(context.Background()) + } +} + +// Disconnected is called by notifiers to inform that an existing connection has been closed or terminated. +// The notifee updates the BasicConnMgr accordingly to stop tracking the connection, and performs housekeeping. +func (nn *cmNotifee) Disconnected(n inet.Network, c inet.Conn) { + cm := nn.cm() + + cm.lk.Lock() + defer cm.lk.Unlock() + + cinf, ok := cm.peers[c.RemotePeer()] + if !ok { + log.Error("received disconnected notification for peer we are not tracking: ", c.RemotePeer()) + return + } + + _, ok = cinf.conns[c] + if !ok { + log.Error("received disconnected notification for conn we are not tracking: ", c.RemotePeer()) + return + } + + delete(cinf.conns, c) + cm.connCount-- + if len(cinf.conns) == 0 { + delete(cm.peers, c.RemotePeer()) + } +} + +// Listen is no-op in this implementation. +func (nn *cmNotifee) Listen(n inet.Network, addr ma.Multiaddr) {} + +// ListenClose is no-op in this implementation. +func (nn *cmNotifee) ListenClose(n inet.Network, addr ma.Multiaddr) {} + +// OpenedStream is no-op in this implementation. +func (nn *cmNotifee) OpenedStream(inet.Network, inet.Stream) {} + +// ClosedStream is no-op in this implementation. +func (nn *cmNotifee) ClosedStream(inet.Network, inet.Stream) {} diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/go.mod b/vendor/github.com/libp2p/go-libp2p-connmgr/go.mod new file mode 100644 index 00000000..275a7418 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/go.mod @@ -0,0 +1,10 @@ +module github.com/libp2p/go-libp2p-connmgr + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-interface-connmgr v0.0.3 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-testutil v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/go.sum b/vendor/github.com/libp2p/go-libp2p-connmgr/go.sum new file mode 100644 index 00000000..826f269b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/go.sum @@ -0,0 +1,120 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.2 h1:E0APsnVLuz/v1XGtqCi24GFQA6z2OKw/v4y8ps5EvuA= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.2/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.3 h1:uN9FGH9OUJAtQ2G19F60Huu7s3TIYRBaJLUaW0PlCUo= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.3/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-connmgr/package.json b/vendor/github.com/libp2p/go-libp2p-connmgr/package.json new file mode 100644 index 00000000..560d6533 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-connmgr/package.json @@ -0,0 +1,53 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-connmgr" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-connmgr" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W", + "name": "go-testutil", + "version": "1.2.19" + }, + { + "author": "why", + "hash": "QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd", + "name": "go-libp2p-interface-connmgr", + "version": "0.0.32" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.11.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-connmgr", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.3.34" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/.gitignore b/vendor/github.com/libp2p/go-libp2p-crypto/.gitignore new file mode 100644 index 00000000..cc53fd51 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/.gitignore @@ -0,0 +1,7 @@ +.DS_Store + +# vim +.swp +*~ +*.swp +*.swo diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/.travis.yml b/vendor/github.com/libp2p/go-libp2p-crypto/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/LICENSE b/vendor/github.com/libp2p/go-libp2p-crypto/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/Makefile b/vendor/github.com/libp2p/go-libp2p-crypto/Makefile new file mode 100644 index 00000000..7c146b10 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/Makefile @@ -0,0 +1,14 @@ +test: deps + go test -race -v ./... + +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + go get -t ./... + diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/README.md b/vendor/github.com/libp2p/go-libp2p-crypto/README.md new file mode 100644 index 00000000..ac1b554a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/README.md @@ -0,0 +1,40 @@ +# go-libp2p-crypto +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/pm-waffle-yellow.svg?style=flat-square)](http://github.com/libp2p/libp2p) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-crypto?status.svg)](https://godoc.org/github.com/ipfs/go-libp2p-crypto) +[![Coverage Status](https://coveralls.io/repos/github/ipfs/go-libp2p-crypto/badge.svg?branch=master)](https://coveralls.io/github/ipfs/go-libp2p-crypto?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-crypto.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-crypto) + +> Various cryptographic utilities used by ipfs + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) + - [Want to hack on IPFS?](#want-to-hack-on-ipfs) +- [License](#license) + +## Install + +```sh +go get github.com/libp2p/go-libp2p-crypto +``` + +## Usage + +Go to https://godoc.org/github.com/libp2p/go-libp2p-crypto. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-crypto/issues)! + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2016 Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/codecov.yml b/vendor/github.com/libp2p/go-libp2p-crypto/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/ecdsa.go b/vendor/github.com/libp2p/go-libp2p-crypto/ecdsa.go new file mode 100644 index 00000000..80229a45 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/ecdsa.go @@ -0,0 +1,186 @@ +package crypto + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/x509" + "encoding/asn1" + "errors" + "io" + "math/big" + + pb "github.com/libp2p/go-libp2p-crypto/pb" + + sha256 "github.com/minio/sha256-simd" +) + +// ECDSAPrivateKey is an implementation of an ECDSA private key +type ECDSAPrivateKey struct { + priv *ecdsa.PrivateKey +} + +// ECDSAPublicKey is an implementation of an ECDSA public key +type ECDSAPublicKey struct { + pub *ecdsa.PublicKey +} + +// ECDSASig holds the r and s values of an ECDSA signature +type ECDSASig struct { + R, S *big.Int +} + +var ( + // ErrNotECDSAPubKey is returned when the public key passed is not an ecdsa public key + ErrNotECDSAPubKey = errors.New("not an ecdsa public key") + // ErrNilSig is returned when the signature is nil + ErrNilSig = errors.New("sig is nil") + // ErrNilPrivateKey is returned when a nil private key is provided + ErrNilPrivateKey = errors.New("private key is nil") + // ECDSACurve is the default ecdsa curve used + ECDSACurve = elliptic.P256() +) + +// GenerateECDSAKeyPair generates a new ecdsa private and public key +func GenerateECDSAKeyPair(src io.Reader) (PrivKey, PubKey, error) { + return GenerateECDSAKeyPairWithCurve(ECDSACurve, src) +} + +// GenerateECDSAKeyPairWithCurve generates a new ecdsa private and public key with a speicified curve +func GenerateECDSAKeyPairWithCurve(curve elliptic.Curve, src io.Reader) (PrivKey, PubKey, error) { + priv, err := ecdsa.GenerateKey(curve, src) + if err != nil { + return nil, nil, err + } + + return &ECDSAPrivateKey{priv}, &ECDSAPublicKey{&priv.PublicKey}, nil +} + +// ECDSAKeyPairFromKey generates a new ecdsa private and public key from an input private key +func ECDSAKeyPairFromKey(priv *ecdsa.PrivateKey) (PrivKey, PubKey, error) { + if priv == nil { + return nil, nil, ErrNilPrivateKey + } + + return &ECDSAPrivateKey{priv}, &ECDSAPublicKey{&priv.PublicKey}, nil +} + +// MarshalECDSAPrivateKey returns x509 bytes from a private key +func MarshalECDSAPrivateKey(ePriv ECDSAPrivateKey) ([]byte, error) { + return x509.MarshalECPrivateKey(ePriv.priv) +} + +// MarshalECDSAPublicKey returns x509 bytes from a public key +func MarshalECDSAPublicKey(ePub ECDSAPublicKey) ([]byte, error) { + return x509.MarshalPKIXPublicKey(ePub.pub) +} + +// UnmarshalECDSAPrivateKey returns a private key from x509 bytes +func UnmarshalECDSAPrivateKey(data []byte) (PrivKey, error) { + priv, err := x509.ParseECPrivateKey(data) + if err != nil { + return nil, err + } + + return &ECDSAPrivateKey{priv}, nil +} + +// UnmarshalECDSAPublicKey returns the public key from x509 bytes +func UnmarshalECDSAPublicKey(data []byte) (PubKey, error) { + pubIfc, err := x509.ParsePKIXPublicKey(data) + if err != nil { + return nil, err + } + + pub, ok := pubIfc.(*ecdsa.PublicKey) + if !ok { + return nil, ErrNotECDSAPubKey + } + + return &ECDSAPublicKey{pub}, nil +} + +// Bytes returns the private key as protobuf bytes +func (ePriv *ECDSAPrivateKey) Bytes() ([]byte, error) { + return MarshalPrivateKey(ePriv) +} + +// Type returns the key type +func (ePriv *ECDSAPrivateKey) Type() pb.KeyType { + return pb.KeyType_ECDSA +} + +// Raw returns x509 bytes from a private key +func (ePriv *ECDSAPrivateKey) Raw() ([]byte, error) { + return x509.MarshalECPrivateKey(ePriv.priv) +} + +// Equals compares to private keys +func (ePriv *ECDSAPrivateKey) Equals(o Key) bool { + oPriv, ok := o.(*ECDSAPrivateKey) + if !ok { + return false + } + + return ePriv.priv.D.Cmp(oPriv.priv.D) == 0 +} + +// Sign returns the signature of the input data +func (ePriv *ECDSAPrivateKey) Sign(data []byte) ([]byte, error) { + hash := sha256.Sum256(data) + r, s, err := ecdsa.Sign(rand.Reader, ePriv.priv, hash[:]) + if err != nil { + return nil, err + } + + return asn1.Marshal(ECDSASig{ + R: r, + S: s, + }) +} + +// GetPublic returns a public key +func (ePriv *ECDSAPrivateKey) GetPublic() PubKey { + return &ECDSAPublicKey{&ePriv.priv.PublicKey} +} + +// Bytes returns the public key as protobuf bytes +func (ePub *ECDSAPublicKey) Bytes() ([]byte, error) { + return MarshalPublicKey(ePub) +} + +// Type returns the key type +func (ePub *ECDSAPublicKey) Type() pb.KeyType { + return pb.KeyType_ECDSA +} + +// Raw returns x509 bytes from a public key +func (ePub ECDSAPublicKey) Raw() ([]byte, error) { + return x509.MarshalPKIXPublicKey(ePub.pub) +} + +// Equals compares to public keys +func (ePub *ECDSAPublicKey) Equals(o Key) bool { + oPub, ok := o.(*ECDSAPublicKey) + if !ok { + return false + } + + return ePub.pub.X != nil && ePub.pub.Y != nil && oPub.pub.X != nil && oPub.pub.Y != nil && + 0 == ePub.pub.X.Cmp(oPub.pub.X) && 0 == ePub.pub.Y.Cmp(oPub.pub.Y) +} + +// Verify compares data to a signature +func (ePub *ECDSAPublicKey) Verify(data, sigBytes []byte) (bool, error) { + sig := new(ECDSASig) + if _, err := asn1.Unmarshal(sigBytes, sig); err != nil { + return false, err + } + if sig == nil { + return false, ErrNilSig + } + + hash := sha256.Sum256(data) + + return ecdsa.Verify(ePub.pub, hash[:], sig.R, sig.S), nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/ed25519.go b/vendor/github.com/libp2p/go-libp2p-crypto/ed25519.go new file mode 100644 index 00000000..960ad313 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/ed25519.go @@ -0,0 +1,155 @@ +package crypto + +import ( + "bytes" + "errors" + "fmt" + "io" + + pb "github.com/libp2p/go-libp2p-crypto/pb" + + "golang.org/x/crypto/ed25519" +) + +// Ed25519PrivateKey is an ed25519 private key. +type Ed25519PrivateKey struct { + k ed25519.PrivateKey +} + +// Ed25519PublicKey is an ed25519 public key. +type Ed25519PublicKey struct { + k ed25519.PublicKey +} + +// GenerateEd25519Key generate a new ed25519 private and public key pair. +func GenerateEd25519Key(src io.Reader) (PrivKey, PubKey, error) { + pub, priv, err := ed25519.GenerateKey(src) + if err != nil { + return nil, nil, err + } + + return &Ed25519PrivateKey{ + k: priv, + }, + &Ed25519PublicKey{ + k: pub, + }, + nil +} + +// Type of the private key (Ed25519). +func (k *Ed25519PrivateKey) Type() pb.KeyType { + return pb.KeyType_Ed25519 +} + +// Bytes marshals an ed25519 private key to protobuf bytes. +func (k *Ed25519PrivateKey) Bytes() ([]byte, error) { + return MarshalPrivateKey(k) +} + +// Raw private key bytes. +func (k *Ed25519PrivateKey) Raw() ([]byte, error) { + // The Ed25519 private key contains two 32-bytes curve points, the private + // key and the public key. + // It makes it more efficient to get the public key without re-computing an + // elliptic curve multiplication. + buf := make([]byte, len(k.k)) + copy(buf, k.k) + + return buf, nil +} + +func (k *Ed25519PrivateKey) pubKeyBytes() []byte { + return k.k[ed25519.PrivateKeySize-ed25519.PublicKeySize:] +} + +// Equals compares two ed25519 private keys. +func (k *Ed25519PrivateKey) Equals(o Key) bool { + edk, ok := o.(*Ed25519PrivateKey) + if !ok { + return false + } + + return bytes.Equal(k.k, edk.k) +} + +// GetPublic returns an ed25519 public key from a private key. +func (k *Ed25519PrivateKey) GetPublic() PubKey { + return &Ed25519PublicKey{k: k.pubKeyBytes()} +} + +// Sign returns a signature from an input message. +func (k *Ed25519PrivateKey) Sign(msg []byte) ([]byte, error) { + return ed25519.Sign(k.k, msg), nil +} + +// Type of the public key (Ed25519). +func (k *Ed25519PublicKey) Type() pb.KeyType { + return pb.KeyType_Ed25519 +} + +// Bytes returns a ed25519 public key as protobuf bytes. +func (k *Ed25519PublicKey) Bytes() ([]byte, error) { + return MarshalPublicKey(k) +} + +// Raw public key bytes. +func (k *Ed25519PublicKey) Raw() ([]byte, error) { + return k.k, nil +} + +// Equals compares two ed25519 public keys. +func (k *Ed25519PublicKey) Equals(o Key) bool { + edk, ok := o.(*Ed25519PublicKey) + if !ok { + return false + } + + return bytes.Equal(k.k, edk.k) +} + +// Verify checks a signature agains the input data. +func (k *Ed25519PublicKey) Verify(data []byte, sig []byte) (bool, error) { + return ed25519.Verify(k.k, data, sig), nil +} + +// UnmarshalEd25519PublicKey returns a public key from input bytes. +func UnmarshalEd25519PublicKey(data []byte) (PubKey, error) { + if len(data) != 32 { + return nil, errors.New("expect ed25519 public key data size to be 32") + } + + return &Ed25519PublicKey{ + k: ed25519.PublicKey(data), + }, nil +} + +// UnmarshalEd25519PrivateKey returns a private key from input bytes. +func UnmarshalEd25519PrivateKey(data []byte) (PrivKey, error) { + switch len(data) { + case ed25519.PrivateKeySize + ed25519.PublicKeySize: + // Remove the redundant public key. See issue #36. + redundantPk := data[ed25519.PrivateKeySize:] + pk := data[ed25519.PrivateKeySize-ed25519.PublicKeySize : ed25519.PrivateKeySize] + if !bytes.Equal(pk, redundantPk) { + return nil, errors.New("expected redundant ed25519 public key to be redundant") + } + + // No point in storing the extra data. + newKey := make([]byte, ed25519.PrivateKeySize) + copy(newKey, data[:ed25519.PrivateKeySize]) + data = newKey + case ed25519.PrivateKeySize: + default: + return nil, fmt.Errorf( + "expected ed25519 data size to be %d or %d, got %d", + ed25519.PrivateKeySize, + ed25519.PrivateKeySize+ed25519.PublicKeySize, + len(data), + ) + } + + return &Ed25519PrivateKey{ + k: ed25519.PrivateKey(data), + }, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/go.mod b/vendor/github.com/libp2p/go-libp2p-crypto/go.mod new file mode 100644 index 00000000..a9f8eecb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/go.mod @@ -0,0 +1,8 @@ +module github.com/libp2p/go-libp2p-crypto + +require ( + github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 + github.com/gogo/protobuf v1.2.1 + github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 + golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b +) diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/go.sum b/vendor/github.com/libp2p/go-libp2p-crypto/go.sum new file mode 100644 index 00000000..c52becaf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/go.sum @@ -0,0 +1,39 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495 h1:6IyqGr3fnd0tM3YxipK27TUskaOVUjU2nG45yzwcQKY= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/key.go b/vendor/github.com/libp2p/go-libp2p-crypto/key.go new file mode 100644 index 00000000..9900772d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/key.go @@ -0,0 +1,352 @@ +// Package crypto implements various cryptographic utilities used by ipfs. +// This includes a Public and Private key interface and an RSA key implementation +// that satisfies it. +package crypto + +import ( + "bytes" + "crypto/elliptic" + "crypto/hmac" + "crypto/rand" + "crypto/sha1" + "crypto/sha512" + "encoding/base64" + "errors" + "fmt" + "hash" + "io" + + pb "github.com/libp2p/go-libp2p-crypto/pb" + + "github.com/gogo/protobuf/proto" + sha256 "github.com/minio/sha256-simd" +) + +const ( + // RSA is an enum for the supported RSA key type + RSA = iota + // Ed25519 is an enum for the supported Ed25519 key type + Ed25519 + // Secp256k1 is an enum for the supported Secp256k1 key type + Secp256k1 + // ECDSA is an enum for the supported ECDSA key type + ECDSA +) + +var ( + // ErrBadKeyType is returned when a key is not supported + ErrBadKeyType = errors.New("invalid or unsupported key type") + // KeyTypes is a list of supported keys + KeyTypes = []int{ + RSA, + Ed25519, + Secp256k1, + ECDSA, + } +) + +// PubKeyUnmarshaller is a func that creates a PubKey from a given slice of bytes +type PubKeyUnmarshaller func(data []byte) (PubKey, error) + +// PrivKeyUnmarshaller is a func that creates a PrivKey from a given slice of bytes +type PrivKeyUnmarshaller func(data []byte) (PrivKey, error) + +// PubKeyUnmarshallers is a map of unmarshallers by key type +var PubKeyUnmarshallers = map[pb.KeyType]PubKeyUnmarshaller{ + pb.KeyType_RSA: UnmarshalRsaPublicKey, + pb.KeyType_Ed25519: UnmarshalEd25519PublicKey, + pb.KeyType_Secp256k1: UnmarshalSecp256k1PublicKey, + pb.KeyType_ECDSA: UnmarshalECDSAPublicKey, +} + +// PrivKeyUnmarshallers is a map of unmarshallers by key type +var PrivKeyUnmarshallers = map[pb.KeyType]PrivKeyUnmarshaller{ + pb.KeyType_RSA: UnmarshalRsaPrivateKey, + pb.KeyType_Ed25519: UnmarshalEd25519PrivateKey, + pb.KeyType_Secp256k1: UnmarshalSecp256k1PrivateKey, + pb.KeyType_ECDSA: UnmarshalECDSAPrivateKey, +} + +// Key represents a crypto key that can be compared to another key +type Key interface { + // Bytes returns a serialized, storeable representation of this key + // DEPRECATED in favor of Marshal / Unmarshal + Bytes() ([]byte, error) + + // Equals checks whether two PubKeys are the same + Equals(Key) bool + + // Raw returns the raw bytes of the key (not wrapped in the + // libp2p-crypto protobuf). + // + // This function is the inverse of {Priv,Pub}KeyUnmarshaler. + Raw() ([]byte, error) + + // Type returns the protobof key type. + Type() pb.KeyType +} + +// PrivKey represents a private key that can be used to generate a public key, +// sign data, and decrypt data that was encrypted with a public key +type PrivKey interface { + Key + + // Cryptographically sign the given bytes + Sign([]byte) ([]byte, error) + + // Return a public key paired with this private key + GetPublic() PubKey +} + +// PubKey is a public key +type PubKey interface { + Key + + // Verify that 'sig' is the signed hash of 'data' + Verify(data []byte, sig []byte) (bool, error) +} + +// GenSharedKey generates the shared key from a given private key +type GenSharedKey func([]byte) ([]byte, error) + +// GenerateKeyPair generates a private and public key +func GenerateKeyPair(typ, bits int) (PrivKey, PubKey, error) { + return GenerateKeyPairWithReader(typ, bits, rand.Reader) +} + +// GenerateKeyPairWithReader returns a keypair of the given type and bitsize +func GenerateKeyPairWithReader(typ, bits int, src io.Reader) (PrivKey, PubKey, error) { + switch typ { + case RSA: + return GenerateRSAKeyPair(bits, src) + case Ed25519: + return GenerateEd25519Key(src) + case Secp256k1: + return GenerateSecp256k1Key(src) + case ECDSA: + return GenerateECDSAKeyPair(src) + default: + return nil, nil, ErrBadKeyType + } +} + +// GenerateEKeyPair returns an ephemeral public key and returns a function that will compute +// the shared secret key. Used in the identify module. +// +// Focuses only on ECDH now, but can be made more general in the future. +func GenerateEKeyPair(curveName string) ([]byte, GenSharedKey, error) { + var curve elliptic.Curve + + switch curveName { + case "P-256": + curve = elliptic.P256() + case "P-384": + curve = elliptic.P384() + case "P-521": + curve = elliptic.P521() + } + + priv, x, y, err := elliptic.GenerateKey(curve, rand.Reader) + if err != nil { + return nil, nil, err + } + + pubKey := elliptic.Marshal(curve, x, y) + + done := func(theirPub []byte) ([]byte, error) { + // Verify and unpack node's public key. + x, y := elliptic.Unmarshal(curve, theirPub) + if x == nil { + return nil, fmt.Errorf("malformed public key: %d %v", len(theirPub), theirPub) + } + + if !curve.IsOnCurve(x, y) { + return nil, errors.New("invalid public key") + } + + // Generate shared secret. + secret, _ := curve.ScalarMult(x, y, priv) + + return secret.Bytes(), nil + } + + return pubKey, done, nil +} + +// StretchedKeys ... +type StretchedKeys struct { + IV []byte + MacKey []byte + CipherKey []byte +} + +// KeyStretcher returns a set of keys for each party by stretching the shared key. +// (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey) +func KeyStretcher(cipherType string, hashType string, secret []byte) (StretchedKeys, StretchedKeys) { + var cipherKeySize int + var ivSize int + switch cipherType { + case "AES-128": + ivSize = 16 + cipherKeySize = 16 + case "AES-256": + ivSize = 16 + cipherKeySize = 32 + case "Blowfish": + ivSize = 8 + // Note: 24 arbitrarily selected, needs more thought + cipherKeySize = 32 + } + + hmacKeySize := 20 + + seed := []byte("key expansion") + + result := make([]byte, 2*(ivSize+cipherKeySize+hmacKeySize)) + + var h func() hash.Hash + + switch hashType { + case "SHA1": + h = sha1.New + case "SHA256": + h = sha256.New + case "SHA512": + h = sha512.New + default: + panic("Unrecognized hash function, programmer error?") + } + + m := hmac.New(h, secret) + // note: guaranteed to never return an error + m.Write(seed) + + a := m.Sum(nil) + + j := 0 + for j < len(result) { + m.Reset() + + // note: guaranteed to never return an error. + m.Write(a) + m.Write(seed) + + b := m.Sum(nil) + + todo := len(b) + + if j+todo > len(result) { + todo = len(result) - j + } + + copy(result[j:j+todo], b) + + j += todo + + m.Reset() + + // note: guaranteed to never return an error. + m.Write(a) + + a = m.Sum(nil) + } + + half := len(result) / 2 + r1 := result[:half] + r2 := result[half:] + + var k1 StretchedKeys + var k2 StretchedKeys + + k1.IV = r1[0:ivSize] + k1.CipherKey = r1[ivSize : ivSize+cipherKeySize] + k1.MacKey = r1[ivSize+cipherKeySize:] + + k2.IV = r2[0:ivSize] + k2.CipherKey = r2[ivSize : ivSize+cipherKeySize] + k2.MacKey = r2[ivSize+cipherKeySize:] + + return k1, k2 +} + +// UnmarshalPublicKey converts a protobuf serialized public key into its +// representative object +func UnmarshalPublicKey(data []byte) (PubKey, error) { + pmes := new(pb.PublicKey) + err := proto.Unmarshal(data, pmes) + if err != nil { + return nil, err + } + + um, ok := PubKeyUnmarshallers[pmes.GetType()] + if !ok { + return nil, ErrBadKeyType + } + + return um(pmes.GetData()) +} + +// MarshalPublicKey converts a public key object into a protobuf serialized +// public key +func MarshalPublicKey(k PubKey) ([]byte, error) { + pbmes := new(pb.PublicKey) + pbmes.Type = k.Type() + data, err := k.Raw() + if err != nil { + return nil, err + } + pbmes.Data = data + + return proto.Marshal(pbmes) +} + +// UnmarshalPrivateKey converts a protobuf serialized private key into its +// representative object +func UnmarshalPrivateKey(data []byte) (PrivKey, error) { + pmes := new(pb.PrivateKey) + err := proto.Unmarshal(data, pmes) + if err != nil { + return nil, err + } + + um, ok := PrivKeyUnmarshallers[pmes.GetType()] + if !ok { + return nil, ErrBadKeyType + } + + return um(pmes.GetData()) +} + +// MarshalPrivateKey converts a key object into its protobuf serialized form. +func MarshalPrivateKey(k PrivKey) ([]byte, error) { + pbmes := new(pb.PrivateKey) + pbmes.Type = k.Type() + data, err := k.Raw() + if err != nil { + return nil, err + } + + pbmes.Data = data + return proto.Marshal(pbmes) +} + +// ConfigDecodeKey decodes from b64 (for config file), and unmarshals. +func ConfigDecodeKey(b string) ([]byte, error) { + return base64.StdEncoding.DecodeString(b) +} + +// ConfigEncodeKey encodes to b64 (for config file), and marshals. +func ConfigEncodeKey(b []byte) string { + return base64.StdEncoding.EncodeToString(b) +} + +// KeyEqual checks whether two +func KeyEqual(k1, k2 Key) bool { + if k1 == k2 { + return true + } + + b1, err1 := k1.Bytes() + b2, err2 := k2.Bytes() + return bytes.Equal(b1, b2) && err1 == err2 +} diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/package.json b/vendor/github.com/libp2p/go-libp2p-crypto/package.json new file mode 100644 index 00000000..f44acbf9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/package.json @@ -0,0 +1,42 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-transport" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-crypto" + }, + "gxDependencies": [ + { + "author": "btcsuite", + "hash": "QmWq5PJgAQKDWQerAijYUVKW8mN5MDatK5j7VMp8rizKQd", + "name": "btcec", + "version": "0.0.1" + }, + { + "author": "minio", + "hash": "QmcTzQXRcU2vf8yX5EEboz1BSvWC7wWmeYAKVQmhp8WZYU", + "name": "sha256-simd", + "version": "0.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + }, + { + "author": "golang", + "hash": "QmW7VUmSvhvSGbYbdsh7uRjhGmsYkc9fL8aJ5CorxxrU5N", + "name": "go-crypto", + "version": "0.2.1" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-crypto", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.7" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-crypto/pb/Makefile new file mode 100644 index 00000000..df34e54b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofaster_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.pb.go b/vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.pb.go new file mode 100644 index 00000000..5fa7aec7 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.pb.go @@ -0,0 +1,643 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: crypto.proto + +package crypto_pb + +import ( + fmt "fmt" + github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KeyType int32 + +const ( + KeyType_RSA KeyType = 0 + KeyType_Ed25519 KeyType = 1 + KeyType_Secp256k1 KeyType = 2 + KeyType_ECDSA KeyType = 3 +) + +var KeyType_name = map[int32]string{ + 0: "RSA", + 1: "Ed25519", + 2: "Secp256k1", + 3: "ECDSA", +} + +var KeyType_value = map[string]int32{ + "RSA": 0, + "Ed25519": 1, + "Secp256k1": 2, + "ECDSA": 3, +} + +func (x KeyType) Enum() *KeyType { + p := new(KeyType) + *p = x + return p +} + +func (x KeyType) String() string { + return proto.EnumName(KeyType_name, int32(x)) +} + +func (x *KeyType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(KeyType_value, data, "KeyType") + if err != nil { + return err + } + *x = KeyType(value) + return nil +} + +func (KeyType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_527278fb02d03321, []int{0} +} + +type PublicKey struct { + Type KeyType `protobuf:"varint,1,req,name=Type,enum=crypto.pb.KeyType" json:"Type"` + Data []byte `protobuf:"bytes,2,req,name=Data" json:"Data"` +} + +func (m *PublicKey) Reset() { *m = PublicKey{} } +func (m *PublicKey) String() string { return proto.CompactTextString(m) } +func (*PublicKey) ProtoMessage() {} +func (*PublicKey) Descriptor() ([]byte, []int) { + return fileDescriptor_527278fb02d03321, []int{0} +} +func (m *PublicKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PublicKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PublicKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicKey.Merge(m, src) +} +func (m *PublicKey) XXX_Size() int { + return m.Size() +} +func (m *PublicKey) XXX_DiscardUnknown() { + xxx_messageInfo_PublicKey.DiscardUnknown(m) +} + +var xxx_messageInfo_PublicKey proto.InternalMessageInfo + +func (m *PublicKey) GetType() KeyType { + if m != nil { + return m.Type + } + return KeyType_RSA +} + +func (m *PublicKey) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +type PrivateKey struct { + Type KeyType `protobuf:"varint,1,req,name=Type,enum=crypto.pb.KeyType" json:"Type"` + Data []byte `protobuf:"bytes,2,req,name=Data" json:"Data"` +} + +func (m *PrivateKey) Reset() { *m = PrivateKey{} } +func (m *PrivateKey) String() string { return proto.CompactTextString(m) } +func (*PrivateKey) ProtoMessage() {} +func (*PrivateKey) Descriptor() ([]byte, []int) { + return fileDescriptor_527278fb02d03321, []int{1} +} +func (m *PrivateKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PrivateKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PrivateKey.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PrivateKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrivateKey.Merge(m, src) +} +func (m *PrivateKey) XXX_Size() int { + return m.Size() +} +func (m *PrivateKey) XXX_DiscardUnknown() { + xxx_messageInfo_PrivateKey.DiscardUnknown(m) +} + +var xxx_messageInfo_PrivateKey proto.InternalMessageInfo + +func (m *PrivateKey) GetType() KeyType { + if m != nil { + return m.Type + } + return KeyType_RSA +} + +func (m *PrivateKey) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func init() { + proto.RegisterEnum("crypto.pb.KeyType", KeyType_name, KeyType_value) + proto.RegisterType((*PublicKey)(nil), "crypto.pb.PublicKey") + proto.RegisterType((*PrivateKey)(nil), "crypto.pb.PrivateKey") +} + +func init() { proto.RegisterFile("crypto.proto", fileDescriptor_527278fb02d03321) } + +var fileDescriptor_527278fb02d03321 = []byte{ + // 203 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x49, 0x2e, 0xaa, 0x2c, + 0x28, 0xc9, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0xf1, 0x92, 0x94, 0x82, 0xb9, + 0x38, 0x03, 0x4a, 0x93, 0x72, 0x32, 0x93, 0xbd, 0x53, 0x2b, 0x85, 0x74, 0xb8, 0x58, 0x42, 0x2a, + 0x0b, 0x52, 0x25, 0x18, 0x15, 0x98, 0x34, 0xf8, 0x8c, 0x84, 0xf4, 0xe0, 0xca, 0xf4, 0xbc, 0x53, + 0x2b, 0x41, 0x32, 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, 0x04, 0x81, 0x55, 0x09, 0x49, 0x70, 0xb1, + 0xb8, 0x24, 0x96, 0x24, 0x4a, 0x30, 0x29, 0x30, 0x69, 0xf0, 0xc0, 0x64, 0x40, 0x22, 0x4a, 0x21, + 0x5c, 0x5c, 0x01, 0x45, 0x99, 0x65, 0x89, 0x25, 0xa9, 0x54, 0x34, 0x55, 0xcb, 0x92, 0x8b, 0x1d, + 0xaa, 0x41, 0x88, 0x9d, 0x8b, 0x39, 0x28, 0xd8, 0x51, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0xdd, 0x35, + 0xc5, 0xc8, 0xd4, 0xd4, 0xd0, 0x52, 0x80, 0x51, 0x88, 0x97, 0x8b, 0x33, 0x38, 0x35, 0xb9, 0xc0, + 0xc8, 0xd4, 0x2c, 0xdb, 0x50, 0x80, 0x49, 0x88, 0x93, 0x8b, 0xd5, 0xd5, 0xd9, 0x25, 0xd8, 0x51, + 0x80, 0xd9, 0x49, 0xe2, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, + 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0x00, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x13, 0xbe, 0xd4, 0xff, 0x19, 0x01, 0x00, 0x00, +} + +func (m *PublicKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PublicKey) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintCrypto(dAtA, i, uint64(m.Type)) + if m.Data != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) + } + return i, nil +} + +func (m *PrivateKey) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PrivateKey) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintCrypto(dAtA, i, uint64(m.Type)) + if m.Data != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) + } + return i, nil +} + +func encodeVarintCrypto(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *PublicKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovCrypto(uint64(m.Type)) + if m.Data != nil { + l = len(m.Data) + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *PrivateKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovCrypto(uint64(m.Type)) + if m.Data != nil { + l = len(m.Data) + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + +func sovCrypto(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozCrypto(x uint64) (n int) { + return sovCrypto(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *PublicKey) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PublicKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PublicKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= KeyType(b&0x7F) << shift + if b < 0x80 { + break + } + } + hasFields[0] |= uint64(0x00000001) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + hasFields[0] |= uint64(0x00000002) + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Type") + } + if hasFields[0]&uint64(0x00000002) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Data") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PrivateKey) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PrivateKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PrivateKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= KeyType(b&0x7F) << shift + if b < 0x80 { + break + } + } + hasFields[0] |= uint64(0x00000001) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + hasFields[0] |= uint64(0x00000002) + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Type") + } + if hasFields[0]&uint64(0x00000002) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Data") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipCrypto(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthCrypto + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthCrypto + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowCrypto + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipCrypto(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthCrypto + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthCrypto = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowCrypto = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.proto b/vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.proto new file mode 100644 index 00000000..cb5cee8a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/pb/crypto.proto @@ -0,0 +1,20 @@ +syntax = "proto2"; + +package crypto.pb; + +enum KeyType { + RSA = 0; + Ed25519 = 1; + Secp256k1 = 2; + ECDSA = 3; +} + +message PublicKey { + required KeyType Type = 1; + required bytes Data = 2; +} + +message PrivateKey { + required KeyType Type = 1; + required bytes Data = 2; +} diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/rsa.go b/vendor/github.com/libp2p/go-libp2p-crypto/rsa.go new file mode 100644 index 00000000..e1ab22d6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/rsa.go @@ -0,0 +1,152 @@ +package crypto + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "errors" + "io" + + pb "github.com/libp2p/go-libp2p-crypto/pb" + + sha256 "github.com/minio/sha256-simd" +) + +// ErrRsaKeyTooSmall is returned when trying to generate or parse an RSA key +// that's smaller than 512 bits. Keys need to be larger enough to sign a 256bit +// hash so this is a reasonable absolute minimum. +var ErrRsaKeyTooSmall = errors.New("rsa keys must be >= 512 bits to be useful") + +// RsaPrivateKey is an rsa private key +type RsaPrivateKey struct { + sk *rsa.PrivateKey + pk *rsa.PublicKey +} + +// RsaPublicKey is an rsa public key +type RsaPublicKey struct { + k *rsa.PublicKey +} + +// GenerateRSAKeyPair generates a new rsa private and public key +func GenerateRSAKeyPair(bits int, src io.Reader) (PrivKey, PubKey, error) { + if bits < 512 { + return nil, nil, ErrRsaKeyTooSmall + } + priv, err := rsa.GenerateKey(src, bits) + if err != nil { + return nil, nil, err + } + pk := &priv.PublicKey + return &RsaPrivateKey{sk: priv}, &RsaPublicKey{pk}, nil +} + +// Verify compares a signature against input data +func (pk *RsaPublicKey) Verify(data, sig []byte) (bool, error) { + hashed := sha256.Sum256(data) + err := rsa.VerifyPKCS1v15(pk.k, crypto.SHA256, hashed[:], sig) + if err != nil { + return false, err + } + return true, nil +} + +func (pk *RsaPublicKey) Type() pb.KeyType { + return pb.KeyType_RSA +} + +// Bytes returns protobuf bytes of a public key +func (pk *RsaPublicKey) Bytes() ([]byte, error) { + return MarshalPublicKey(pk) +} + +func (pk *RsaPublicKey) Raw() ([]byte, error) { + return x509.MarshalPKIXPublicKey(pk.k) +} + +// Encrypt returns encrypted bytes from the inpu data +func (pk *RsaPublicKey) Encrypt(b []byte) ([]byte, error) { + return rsa.EncryptPKCS1v15(rand.Reader, pk.k, b) +} + +// Equals checks whether this key is equal to another +func (pk *RsaPublicKey) Equals(k Key) bool { + return KeyEqual(pk, k) +} + +// Sign returns a signature of the input data +func (sk *RsaPrivateKey) Sign(message []byte) ([]byte, error) { + hashed := sha256.Sum256(message) + return rsa.SignPKCS1v15(rand.Reader, sk.sk, crypto.SHA256, hashed[:]) +} + +// GetPublic returns a public key +func (sk *RsaPrivateKey) GetPublic() PubKey { + if sk.pk == nil { + sk.pk = &sk.sk.PublicKey + } + return &RsaPublicKey{sk.pk} +} + +// Decrypt returns decrypted bytes of the input encrypted bytes +func (sk *RsaPrivateKey) Decrypt(b []byte) ([]byte, error) { + return rsa.DecryptPKCS1v15(rand.Reader, sk.sk, b) +} + +func (sk *RsaPrivateKey) Type() pb.KeyType { + return pb.KeyType_RSA +} + +// Bytes returns protobuf bytes from a private key +func (sk *RsaPrivateKey) Bytes() ([]byte, error) { + return MarshalPrivateKey(sk) +} + +func (sk *RsaPrivateKey) Raw() ([]byte, error) { + b := x509.MarshalPKCS1PrivateKey(sk.sk) + return b, nil +} + +// Equals checks whether this key is equal to another +func (sk *RsaPrivateKey) Equals(k Key) bool { + return KeyEqual(sk, k) +} + +// UnmarshalRsaPrivateKey returns a private key from the input x509 bytes +func UnmarshalRsaPrivateKey(b []byte) (PrivKey, error) { + sk, err := x509.ParsePKCS1PrivateKey(b) + if err != nil { + return nil, err + } + if sk.N.BitLen() < 512 { + return nil, ErrRsaKeyTooSmall + } + return &RsaPrivateKey{sk: sk}, nil +} + +// MarshalRsaPrivateKey returns the x509 bytes of the private key +func MarshalRsaPrivateKey(k *RsaPrivateKey) []byte { + return x509.MarshalPKCS1PrivateKey(k.sk) +} + +// UnmarshalRsaPublicKey returns a public key from the input x509 bytes +func UnmarshalRsaPublicKey(b []byte) (PubKey, error) { + pub, err := x509.ParsePKIXPublicKey(b) + if err != nil { + return nil, err + } + pk, ok := pub.(*rsa.PublicKey) + if !ok { + return nil, errors.New("not actually an rsa public key") + } + if pk.N.BitLen() < 512 { + return nil, ErrRsaKeyTooSmall + } + return &RsaPublicKey{pk}, nil +} + +// MarshalRsaPublicKey returns the x509 bytes from the public key +func MarshalRsaPublicKey(k *RsaPublicKey) ([]byte, error) { + return x509.MarshalPKIXPublicKey(k.k) +} diff --git a/vendor/github.com/libp2p/go-libp2p-crypto/secp256k1.go b/vendor/github.com/libp2p/go-libp2p-crypto/secp256k1.go new file mode 100644 index 00000000..8bca33e7 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-crypto/secp256k1.go @@ -0,0 +1,125 @@ +package crypto + +import ( + "fmt" + "io" + + pb "github.com/libp2p/go-libp2p-crypto/pb" + + btcec "github.com/btcsuite/btcd/btcec" + sha256 "github.com/minio/sha256-simd" +) + +// Secp256k1PrivateKey is an Secp256k1 private key +type Secp256k1PrivateKey btcec.PrivateKey + +// Secp256k1PublicKey is an Secp256k1 public key +type Secp256k1PublicKey btcec.PublicKey + +// GenerateSecp256k1Key generates a new Secp256k1 private and public key pair +func GenerateSecp256k1Key(src io.Reader) (PrivKey, PubKey, error) { + privk, err := btcec.NewPrivateKey(btcec.S256()) + if err != nil { + return nil, nil, err + } + + k := (*Secp256k1PrivateKey)(privk) + return k, k.GetPublic(), nil +} + +// UnmarshalSecp256k1PrivateKey returns a private key from bytes +func UnmarshalSecp256k1PrivateKey(data []byte) (PrivKey, error) { + if len(data) != btcec.PrivKeyBytesLen { + return nil, fmt.Errorf("expected secp256k1 data size to be %d", btcec.PrivKeyBytesLen) + } + + privk, _ := btcec.PrivKeyFromBytes(btcec.S256(), data) + return (*Secp256k1PrivateKey)(privk), nil +} + +// UnmarshalSecp256k1PublicKey returns a public key from bytes +func UnmarshalSecp256k1PublicKey(data []byte) (PubKey, error) { + k, err := btcec.ParsePubKey(data, btcec.S256()) + if err != nil { + return nil, err + } + + return (*Secp256k1PublicKey)(k), nil +} + +// Bytes returns protobuf bytes from a private key +func (k *Secp256k1PrivateKey) Bytes() ([]byte, error) { + return MarshalPrivateKey(k) +} + +// Type returns the private key type +func (k *Secp256k1PrivateKey) Type() pb.KeyType { + return pb.KeyType_Secp256k1 +} + +// Raw returns the bytes of the key +func (k *Secp256k1PrivateKey) Raw() ([]byte, error) { + return (*btcec.PrivateKey)(k).Serialize(), nil +} + +// Equals compares two private keys +func (k *Secp256k1PrivateKey) Equals(o Key) bool { + sk, ok := o.(*Secp256k1PrivateKey) + if !ok { + return false + } + + return k.D.Cmp(sk.D) == 0 +} + +// Sign returns a signature from input data +func (k *Secp256k1PrivateKey) Sign(data []byte) ([]byte, error) { + hash := sha256.Sum256(data) + sig, err := (*btcec.PrivateKey)(k).Sign(hash[:]) + if err != nil { + return nil, err + } + + return sig.Serialize(), nil +} + +// GetPublic returns a public key +func (k *Secp256k1PrivateKey) GetPublic() PubKey { + return (*Secp256k1PublicKey)((*btcec.PrivateKey)(k).PubKey()) +} + +// Bytes returns protobuf bytes from a public key +func (k *Secp256k1PublicKey) Bytes() ([]byte, error) { + return MarshalPublicKey(k) +} + +// Type returns the public key type +func (k *Secp256k1PublicKey) Type() pb.KeyType { + return pb.KeyType_Secp256k1 +} + +// Raw returns the bytes of the key +func (k *Secp256k1PublicKey) Raw() ([]byte, error) { + return (*btcec.PublicKey)(k).SerializeCompressed(), nil +} + +// Equals compares two public keys +func (k *Secp256k1PublicKey) Equals(o Key) bool { + sk, ok := o.(*Secp256k1PublicKey) + if !ok { + return false + } + + return (*btcec.PublicKey)(k).IsEqual((*btcec.PublicKey)(sk)) +} + +// Verify compares a signature against the input data +func (k *Secp256k1PublicKey) Verify(data []byte, sigStr []byte) (bool, error) { + sig, err := btcec.ParseDERSignature(sigStr, btcec.S256()) + if err != nil { + return false, err + } + + hash := sha256.Sum256(data) + return sig.Verify(hash[:], (*btcec.PublicKey)(k)), nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/.gitignore b/vendor/github.com/libp2p/go-libp2p-discovery/.gitignore new file mode 100644 index 00000000..f1c181ec --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/.gitignore @@ -0,0 +1,12 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/.travis.yml b/vendor/github.com/libp2p/go-libp2p-discovery/.travis.yml new file mode 100644 index 00000000..5163d693 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/LICENSE b/vendor/github.com/libp2p/go-libp2p-discovery/LICENSE new file mode 100644 index 00000000..3f05397b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 libp2p + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/README.md b/vendor/github.com/libp2p/go-libp2p-discovery/README.md new file mode 100644 index 00000000..4ab7fe40 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/README.md @@ -0,0 +1,32 @@ +# go-libp2p-discovery + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> Interfaces for active peer discovery + +This package contains interfaces and utilities for active peer discovery. +Peers providing a service use the interface to advertise their presence in some namespace. +Vice versa, peers seeking a service use the interface to discover peers that have previously advertised +as service providers. +The package also includes a baseline implementation for discovery through [Content Routing](https://github.com/libp2p/go-libp2p-routing). + +## Documenation + +See https://godoc.org/github.com/libp2p/go-libp2p-discovery. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-discovery/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +## License + +MIT + +--- + +The last gx published version of this module was: 1.0.15: QmWA8k8apx6egshEjemkuxpKNJS7W7heCgzTnBhAvX9yoB diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/go.mod b/vendor/github.com/libp2p/go-libp2p-discovery/go.mod new file mode 100644 index 00000000..8dd2e8b1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/go.mod @@ -0,0 +1,13 @@ +module github.com/libp2p/go-libp2p-discovery + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-blankhost v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/libp2p/go-libp2p-swarm v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/go.sum b/vendor/github.com/libp2p/go-libp2p-discovery/go.sum new file mode 100644 index 00000000..49b4d9b3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/go.sum @@ -0,0 +1,206 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/interface.go b/vendor/github.com/libp2p/go-libp2p-discovery/interface.go new file mode 100644 index 00000000..f4e5f719 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/interface.go @@ -0,0 +1,26 @@ +package discovery + +import ( + "context" + "time" + + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +// Advertiser is an interface for advertising services +type Advertiser interface { + // Advertise advertises a service + Advertise(ctx context.Context, ns string, opts ...Option) (time.Duration, error) +} + +// Discoverer is an interface for peer discovery +type Discoverer interface { + // FindPeers discovers peers providing a service + FindPeers(ctx context.Context, ns string, opts ...Option) (<-chan pstore.PeerInfo, error) +} + +// Discovery is an interface that combines service advertisement and peer discovery +type Discovery interface { + Advertiser + Discoverer +} diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/options.go b/vendor/github.com/libp2p/go-libp2p-discovery/options.go new file mode 100644 index 00000000..f59e56ca --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/options.go @@ -0,0 +1,42 @@ +package discovery + +import ( + "time" +) + +// Option is a single discovery option +type Option func(opts *Options) error + +// Options is a set of discovery options +type Options struct { + Ttl time.Duration + Limit int + // Other (implementation-specific) options + Other map[interface{}]interface{} +} + +// Apply applies the given options to this Options +func (opts *Options) Apply(options ...Option) error { + for _, o := range options { + if err := o(opts); err != nil { + return err + } + } + return nil +} + +// TTL is an option that provides a hint for the duration of an advertisement +func TTL(ttl time.Duration) Option { + return func(opts *Options) error { + opts.Ttl = ttl + return nil + } +} + +// Limit is an option that provides an upper bound on the peer count for discovery +func Limit(limit int) Option { + return func(opts *Options) error { + opts.Limit = limit + return nil + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/routing.go b/vendor/github.com/libp2p/go-libp2p-discovery/routing.go new file mode 100644 index 00000000..c618ba7c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/routing.go @@ -0,0 +1,72 @@ +package discovery + +import ( + "context" + "time" + + cid "github.com/ipfs/go-cid" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + mh "github.com/multiformats/go-multihash" +) + +// RoutingDiscovery is an implementation of discovery using ContentRouting +// Namespaces are translated to Cids using the SHA256 hash. +type RoutingDiscovery struct { + routing.ContentRouting +} + +func NewRoutingDiscovery(router routing.ContentRouting) *RoutingDiscovery { + return &RoutingDiscovery{router} +} + +func (d *RoutingDiscovery) Advertise(ctx context.Context, ns string, opts ...Option) (time.Duration, error) { + cid, err := nsToCid(ns) + if err != nil { + return 0, err + } + + // this context requires a timeout; it determines how long the DHT looks for + // closest peers to the key/CID before it goes on to provide the record to them. + // Not setting a timeout here will make the DHT wander forever. + pctx, cancel := context.WithTimeout(ctx, 60*time.Second) + defer cancel() + + err = d.Provide(pctx, cid, true) + if err != nil { + return 0, err + } + + // the DHT provider record validity is 24hrs, but it is recommnded to republish at least every 6hrs + // we go one step further and republish every 3hrs + return 3 * time.Hour, nil +} + +func (d *RoutingDiscovery) FindPeers(ctx context.Context, ns string, opts ...Option) (<-chan pstore.PeerInfo, error) { + var options Options + err := options.Apply(opts...) + if err != nil { + return nil, err + } + + limit := options.Limit + if limit == 0 { + limit = 100 // that's just arbitrary, but FindProvidersAsync needs a count + } + + cid, err := nsToCid(ns) + if err != nil { + return nil, err + } + + return d.FindProvidersAsync(ctx, cid, limit), nil +} + +func nsToCid(ns string) (cid.Cid, error) { + h, err := mh.Sum([]byte(ns), mh.SHA2_256, -1) + if err != nil { + return cid.Undef, err + } + + return cid.NewCidV1(cid.Raw, h), nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-discovery/util.go b/vendor/github.com/libp2p/go-libp2p-discovery/util.go new file mode 100644 index 00000000..be43a4b1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-discovery/util.go @@ -0,0 +1,56 @@ +package discovery + +import ( + "context" + "time" + + logging "github.com/ipfs/go-log" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +var log = logging.Logger("discovery") + +// FindPeers is a utility function that synchonously collects peers from a Discoverer +func FindPeers(ctx context.Context, d Discoverer, ns string, limit int) ([]pstore.PeerInfo, error) { + res := make([]pstore.PeerInfo, 0, limit) + + ch, err := d.FindPeers(ctx, ns, Limit(limit)) + if err != nil { + return nil, err + } + + for pi := range ch { + res = append(res, pi) + } + + return res, nil +} + +// Advertise is a utility function that persistently advertises a service through an Advertiser +func Advertise(ctx context.Context, a Advertiser, ns string) { + go func() { + for { + ttl, err := a.Advertise(ctx, ns) + if err != nil { + log.Debugf("Error advertising %s: %s", ns, err.Error()) + if ctx.Err() != nil { + return + } + + select { + case <-time.After(2 * time.Minute): + continue + case <-ctx.Done(): + return + } + } + + wait := 7 * ttl / 8 + select { + case <-time.After(wait): + case <-ctx.Done(): + return + } + } + }() +} diff --git a/vendor/github.com/libp2p/go-libp2p-host/.travis.yml b/vendor/github.com/libp2p/go-libp2p-host/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-host/LICENSE b/vendor/github.com/libp2p/go-libp2p-host/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-host/Makefile b/vendor/github.com/libp2p/go-libp2p-host/Makefile new file mode 100644 index 00000000..4f5206e4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/Makefile @@ -0,0 +1,13 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-host/README.md b/vendor/github.com/libp2p/go-libp2p-host/README.md new file mode 100644 index 00000000..72397ad3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/README.md @@ -0,0 +1,33 @@ +go-libp2p-host +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-host/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-host?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-host.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-host) + +> The host interface for libp2p. + + +## Table of Contents + +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make deps +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-host/codecov.yml b/vendor/github.com/libp2p/go-libp2p-host/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-host/go.mod b/vendor/github.com/libp2p/go-libp2p-host/go.mod new file mode 100644 index 00000000..22131c47 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/go.mod @@ -0,0 +1,12 @@ +module github.com/libp2p/go-libp2p-host + +require ( + github.com/coreos/go-semver v0.2.1-0.20180108230905-e214231b295a + github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multistream v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-host/go.sum b/vendor/github.com/libp2p/go-libp2p-host/go.sum new file mode 100644 index 00000000..5b101007 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/go.sum @@ -0,0 +1,118 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.2.1-0.20180108230905-e214231b295a h1:U0BbGfKnviqVBJQB4etvm+mKx53KfkumNLBt6YeF/0Q= +github.com/coreos/go-semver v0.2.1-0.20180108230905-e214231b295a/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-host/helpers.go b/vendor/github.com/libp2p/go-libp2p-host/helpers.go new file mode 100644 index 00000000..17f97ea0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/helpers.go @@ -0,0 +1,11 @@ +package host + +import pstore "github.com/libp2p/go-libp2p-peerstore" + +// PeerInfoFromHost returns a PeerInfo struct with the Host's ID and all of its Addrs. +func PeerInfoFromHost(h Host) *pstore.PeerInfo { + return &pstore.PeerInfo{ + ID: h.ID(), + Addrs: h.Addrs(), + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-host/host.go b/vendor/github.com/libp2p/go-libp2p-host/host.go new file mode 100644 index 00000000..3530c6ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/host.go @@ -0,0 +1,68 @@ +package host + +import ( + "context" + + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + protocol "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" + msmux "github.com/multiformats/go-multistream" +) + +// Host is an object participating in a p2p network, which +// implements protocols or provides services. It handles +// requests like a Server, and issues requests like a Client. +// It is called Host because it is both Server and Client (and Peer +// may be confusing). +type Host interface { + // ID returns the (local) peer.ID associated with this Host + ID() peer.ID + + // Peerstore returns the Host's repository of Peer Addresses and Keys. + Peerstore() pstore.Peerstore + + // Returns the listen addresses of the Host + Addrs() []ma.Multiaddr + + // Networks returns the Network interface of the Host + Network() inet.Network + + // Mux returns the Mux multiplexing incoming streams to protocol handlers + Mux() *msmux.MultistreamMuxer + + // Connect ensures there is a connection between this host and the peer with + // given peer.ID. Connect will absorb the addresses in pi into its internal + // peerstore. If there is not an active connection, Connect will issue a + // h.Network.Dial, and block until a connection is open, or an error is + // returned. // TODO: Relay + NAT. + Connect(ctx context.Context, pi pstore.PeerInfo) error + + // SetStreamHandler sets the protocol handler on the Host's Mux. + // This is equivalent to: + // host.Mux().SetHandler(proto, handler) + // (Threadsafe) + SetStreamHandler(pid protocol.ID, handler inet.StreamHandler) + + // SetStreamHandlerMatch sets the protocol handler on the Host's Mux + // using a matching function for protocol selection. + SetStreamHandlerMatch(protocol.ID, func(string) bool, inet.StreamHandler) + + // RemoveStreamHandler removes a handler on the mux that was set by + // SetStreamHandler + RemoveStreamHandler(pid protocol.ID) + + // NewStream opens a new stream to given peer p, and writes a p2p/protocol + // header with given protocol.ID. If there is no connection to p, attempts + // to create one. If ProtocolID is "", writes no header. + // (Threadsafe) + NewStream(ctx context.Context, p peer.ID, pids ...protocol.ID) (inet.Stream, error) + + // Close shuts down the host, its Network, and services. + Close() error + + // ConnManager returns this hosts connection manager + ConnManager() ifconnmgr.ConnManager +} diff --git a/vendor/github.com/libp2p/go-libp2p-host/match.go b/vendor/github.com/libp2p/go-libp2p-host/match.go new file mode 100644 index 00000000..8a0044e5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/match.go @@ -0,0 +1,41 @@ +package host + +import ( + "strings" + + semver "github.com/coreos/go-semver/semver" + "github.com/libp2p/go-libp2p-protocol" +) + +// MultistreamSemverMatcher returns a matcher function for a given base protocol. +// The matcher function will return a boolean indicating whether a protocol ID +// matches the base protocol. A given protocol ID matches the base protocol if +// the IDs are the same and if the semantic version of the base protocol is the +// same or higher than that of the protocol ID provided. +func MultistreamSemverMatcher(base protocol.ID) (func(string) bool, error) { + parts := strings.Split(string(base), "/") + vers, err := semver.NewVersion(parts[len(parts)-1]) + if err != nil { + return nil, err + } + + return func(check string) bool { + chparts := strings.Split(check, "/") + if len(chparts) != len(parts) { + return false + } + + for i, v := range chparts[:len(chparts)-1] { + if parts[i] != v { + return false + } + } + + chvers, err := semver.NewVersion(chparts[len(chparts)-1]) + if err != nil { + return false + } + + return vers.Major == chvers.Major && vers.Minor >= chvers.Minor + }, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-host/package.json b/vendor/github.com/libp2p/go-libp2p-host/package.json new file mode 100644 index 00000000..c242c30d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-host/package.json @@ -0,0 +1,66 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-host" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-host" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa", + "name": "go-semver", + "version": "0.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmabLh8TrJ3emfAoQk5AbqbLTbMyj7XqumMFmAFxa9epo8", + "name": "go-multistream", + "version": "0.3.9" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "why", + "hash": "QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd", + "name": "go-libp2p-interface-connmgr", + "version": "0.0.32" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-libp2p-host", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.0.26" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/.travis.yml b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/LICENSE b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/LICENSE new file mode 100644 index 00000000..2f06d0eb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/Makefile b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/Makefile new file mode 100644 index 00000000..5c996090 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/Makefile @@ -0,0 +1,13 @@ +all: deps + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/README.md b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/README.md new file mode 100644 index 00000000..bf61b45f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/README.md @@ -0,0 +1,35 @@ +go-libp2p-interface-connmgr +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-interface-connmgr/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-interface-connmgr?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-interface-connmgr.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-interface-connmgr) + +> The interface for libp2p connection managers + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/codecov.yml b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.mod b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.mod new file mode 100644 index 00000000..8b9c22a7 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-libp2p-interface-connmgr + +require ( + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.sum b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.sum new file mode 100644 index 00000000..90920ecf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/go.sum @@ -0,0 +1,106 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/interface.go b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/interface.go new file mode 100644 index 00000000..8b5faf0f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/interface.go @@ -0,0 +1,60 @@ +package ifconnmgr + +import ( + "context" + "time" + + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" +) + +// ConnManager tracks connections to peers, and allows consumers to associate metadata +// with each peer. +// +// It enables connections to be trimmed based on implementation-defined heuristics. +type ConnManager interface { + + // TagPeer tags a peer with a string, associating a weight with the tag. + TagPeer(peer.ID, string, int) + + // Untag removes the tagged value from the peer. + UntagPeer(p peer.ID, tag string) + + // GetTagInfo returns the metadata associated with the peer, + // or nil if no metadata has been recorded for the peer. + GetTagInfo(p peer.ID) *TagInfo + + // TrimOpenConns terminates open connections based on an implementation-defined + // heuristic. + TrimOpenConns(ctx context.Context) + + // Notifee returns an implementation that can be called back to inform of + // opened and closed connections. + Notifee() inet.Notifiee + + // Protect protects a peer from having its connection(s) pruned. + // + // Tagging allows different parts of the system to manage protections without interfering with one another. + // + // Calls to Protect() with the same tag are idempotent. They are not refcounted, so after multiple calls + // to Protect() with the same tag, a single Unprotect() call bearing the same tag will revoke the protection. + Protect(id peer.ID, tag string) + + // Unprotect removes a protection that may have been placed on a peer, under the specified tag. + // + // The return value indicates whether the peer continues to be protected after this call, by way of a different tag. + // See notes on Protect() for more info. + Unprotect(id peer.ID, tag string) (protected bool) +} + +// TagInfo stores metadata associated with a peer. +type TagInfo struct { + FirstSeen time.Time + Value int + + // Tags maps tag ids to the numerical values. + Tags map[string]int + + // Conns maps connection ids (such as remote multiaddr) to their creation time. + Conns map[string]time.Time +} diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/null.go b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/null.go new file mode 100644 index 00000000..21039ac3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/null.go @@ -0,0 +1,30 @@ +package ifconnmgr + +import ( + "context" + + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +type NullConnMgr struct{} + +var _ ConnManager = (*NullConnMgr)(nil) + +func (_ NullConnMgr) TagPeer(peer.ID, string, int) {} +func (_ NullConnMgr) UntagPeer(peer.ID, string) {} +func (_ NullConnMgr) GetTagInfo(peer.ID) *TagInfo { return &TagInfo{} } +func (_ NullConnMgr) TrimOpenConns(context.Context) {} +func (_ NullConnMgr) Notifee() inet.Notifiee { return &cmNotifee{} } +func (_ NullConnMgr) Protect(peer.ID, string) {} +func (_ NullConnMgr) Unprotect(peer.ID, string) bool { return false } + +type cmNotifee struct{} + +func (nn *cmNotifee) Connected(n inet.Network, c inet.Conn) {} +func (nn *cmNotifee) Disconnected(n inet.Network, c inet.Conn) {} +func (nn *cmNotifee) Listen(n inet.Network, addr ma.Multiaddr) {} +func (nn *cmNotifee) ListenClose(n inet.Network, addr ma.Multiaddr) {} +func (nn *cmNotifee) OpenedStream(inet.Network, inet.Stream) {} +func (nn *cmNotifee) ClosedStream(inet.Network, inet.Stream) {} diff --git a/vendor/github.com/libp2p/go-libp2p-interface-connmgr/package.json b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/package.json new file mode 100644 index 00000000..2d90568e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-connmgr/package.json @@ -0,0 +1,36 @@ +{ + "author": "why", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-interface-connmgr" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-interface-connmgr" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + } + ], + "gxVersion": "0.11.0", + "language": "go", + "license": "", + "name": "go-libp2p-interface-connmgr", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.0.32" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/.travis.yml b/vendor/github.com/libp2p/go-libp2p-interface-pnet/.travis.yml new file mode 100644 index 00000000..dde69d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - /Users/raul/go/src/gx + - /Users/raul/go/pkg/mod + - /Users/raul/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/LICENSE b/vendor/github.com/libp2p/go-libp2p-interface-pnet/LICENSE new file mode 100644 index 00000000..244b53da --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2018 Jakub Sztandera + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/Makefile b/vendor/github.com/libp2p/go-libp2p-interface-pnet/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/README.md b/vendor/github.com/libp2p/go-libp2p-interface-pnet/README.md new file mode 100644 index 00000000..fe5be28b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/README.md @@ -0,0 +1,37 @@ +go-libp2p-interface-pnet +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) + +> An interface providing abstraction of swarm protection for libp2p. + + +## Table of Contents + +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Usage + +Core of this interface in `Protector` that is used to protect the swarm. +It makes decisions about which streams are allowed to pass. + +This interface is accepted in multiple places in libp2p but most importantly in +go-libp2p-swarm `NewSwarmWithProtector` and `NewNetworkWithProtector`. + +## Implementations: + + - [go-libp2p-pnet](//github.com/libp2p/go-libp2p-pnet) - simple PSK based Protector, using XSalsa20 + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/codecov.yml b/vendor/github.com/libp2p/go-libp2p-interface-pnet/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/error.go b/vendor/github.com/libp2p/go-libp2p-interface-pnet/error.go new file mode 100644 index 00000000..e4cb9f7c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/error.go @@ -0,0 +1,29 @@ +package ipnet + +// PNetError is error type for ease of detecting PNet errors +type PNetError interface { + IsPNetError() bool +} + +// NewError creates new PNetError +func NewError(err string) error { + return pnetErr("privnet: " + err) +} + +// IsPNetError checks if given error is PNet Error +func IsPNetError(err error) bool { + v, ok := err.(PNetError) + return ok && v.IsPNetError() +} + +type pnetErr string + +var _ PNetError = (PNetError)(pnetErr("")) + +func (p pnetErr) Error() string { + return string(p) +} + +func (pnetErr) IsPNetError() bool { + return true +} diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/go.mod b/vendor/github.com/libp2p/go-libp2p-interface-pnet/go.mod new file mode 100644 index 00000000..d4ab6b5e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/go.mod @@ -0,0 +1 @@ +module github.com/libp2p/go-libp2p-interface-pnet diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/interface.go b/vendor/github.com/libp2p/go-libp2p-interface-pnet/interface.go new file mode 100644 index 00000000..85632b48 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/interface.go @@ -0,0 +1,38 @@ +package ipnet + +import ( + "net" + "os" +) + +// EnvKey defines environment variable name for forcing usage of PNet in libp2p +// When environment variable of this name is set to "1" the ForcePrivateNetwork +// variable will be set to true. +const EnvKey = "LIBP2P_FORCE_PNET" + +// ForcePrivateNetwork is boolean variable that forces usage of PNet in libp2p +// Setting this variable to true or setting LIBP2P_FORCE_PNET environment variable +// to true will make libp2p to require private network protector. +// If no network protector is provided and this variable is set to true libp2p will +// refuse to connect. +var ForcePrivateNetwork = false + +func init() { + ForcePrivateNetwork = os.Getenv(EnvKey) == "1" +} + +// ErrNotInPrivateNetwork is an error that should be returned by libp2p when it +// tries to dial with ForcePrivateNetwork set and no PNet Protector +var ErrNotInPrivateNetwork = NewError("private network was not configured but" + + " is enforced by the environment") + +// Protector interface is a way for private network implementation to be transparent in +// libp2p. It is created by implementation and use by libp2p-conn to secure connections +// so they can be only established with selected number of peers. +type Protector interface { + // Wraps passed connection to protect it + Protect(net.Conn) (net.Conn, error) + + // Returns key fingerprint that is safe to expose + Fingerprint() []byte +} diff --git a/vendor/github.com/libp2p/go-libp2p-interface-pnet/package.json b/vendor/github.com/libp2p/go-libp2p-interface-pnet/package.json new file mode 100644 index 00000000..998e1145 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-interface-pnet/package.json @@ -0,0 +1,18 @@ +{ + "author": "libp2p", + "bugs": { + "URL": "https://github.com/libp2p/go-libp2p-interface-pnet/issues", + "url": "https://github.com/libp2p/go-libp2p-interface-pnet/issues" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-interface-pnet" + }, + "gxDependencies": [], + "gxVersion": "0.9.1", + "language": "go", + "license": "MIT", + "name": "go-libp2p-interface-pnet", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.0.0" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/.travis.yml b/vendor/github.com/libp2p/go-libp2p-kad-dht/.travis.yml new file mode 100644 index 00000000..ea3900d9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/.travis.yml @@ -0,0 +1,31 @@ +os: + - linux + +language: go + +go: + - 1.12.x + +env: + global: + - GOTFLAGS="-race" + - IPFS_REUSEPORT=false + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/LICENSE b/vendor/github.com/libp2p/go-libp2p-kad-dht/LICENSE new file mode 100644 index 00000000..0e323020 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Protocol Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/README.md b/vendor/github.com/libp2p/go-libp2p-kad-dht/README.md new file mode 100644 index 00000000..c774998a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/README.md @@ -0,0 +1,43 @@ +# go-libp2p-kad-dht + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23yellow) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-kad-dht?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-kad-dht) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-kad-dht.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-kad-dht) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> A Kademlia DHT implementation on go-libp2p + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +go get github.com/libp2p/go-libp2p-kad-dht +``` + +## Usage + +Go to https://godoc.org/github.com/libp2p/go-libp2p-kad-dht. + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/libp2p/go-libp2p-kad-dht/issues). + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © Protocol Labs Inc. + +--- + +The last gx published version of this module was: 4.4.34: QmXuNFLZc6Nb5akB4sZsxK3doShsFKT1sZFvxLXJvZQwAW diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/codecov.yml b/vendor/github.com/libp2p/go-libp2p-kad-dht/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/dht.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/dht.go new file mode 100644 index 00000000..426e0942 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/dht.go @@ -0,0 +1,438 @@ +package dht + +import ( + "bytes" + "context" + "errors" + "fmt" + "sync" + "time" + + "go.opencensus.io/tag" + "golang.org/x/xerrors" + + "github.com/libp2p/go-libp2p-kad-dht/metrics" + opts "github.com/libp2p/go-libp2p-kad-dht/opts" + pb "github.com/libp2p/go-libp2p-kad-dht/pb" + providers "github.com/libp2p/go-libp2p-kad-dht/providers" + + proto "github.com/gogo/protobuf/proto" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + host "github.com/libp2p/go-libp2p-host" + kb "github.com/libp2p/go-libp2p-kbucket" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + protocol "github.com/libp2p/go-libp2p-protocol" + record "github.com/libp2p/go-libp2p-record" + recpb "github.com/libp2p/go-libp2p-record/pb" + routing "github.com/libp2p/go-libp2p-routing" + base32 "github.com/whyrusleeping/base32" +) + +var logger = logging.Logger("dht") + +// NumBootstrapQueries defines the number of random dht queries to do to +// collect members of the routing table. +const NumBootstrapQueries = 5 + +// IpfsDHT is an implementation of Kademlia with S/Kademlia modifications. +// It is used to implement the base IpfsRouting module. +type IpfsDHT struct { + host host.Host // the network services we need + self peer.ID // Local peer (yourself) + peerstore pstore.Peerstore // Peer Registry + + datastore ds.Datastore // Local data + + routingTable *kb.RoutingTable // Array of routing tables for differently distanced nodes + providers *providers.ProviderManager + + birth time.Time // When this peer started up + + Validator record.Validator + + ctx context.Context + proc goprocess.Process + + strmap map[peer.ID]*messageSender + smlk sync.Mutex + + plk sync.Mutex + + protocols []protocol.ID // DHT protocols +} + +// Assert that IPFS assumptions about interfaces aren't broken. These aren't a +// guarantee, but we can use them to aid refactoring. +var ( + _ routing.ContentRouting = (*IpfsDHT)(nil) + _ routing.IpfsRouting = (*IpfsDHT)(nil) + _ routing.PeerRouting = (*IpfsDHT)(nil) + _ routing.PubKeyFetcher = (*IpfsDHT)(nil) + _ routing.ValueStore = (*IpfsDHT)(nil) +) + +// New creates a new DHT with the specified host and options. +func New(ctx context.Context, h host.Host, options ...opts.Option) (*IpfsDHT, error) { + var cfg opts.Options + if err := cfg.Apply(append([]opts.Option{opts.Defaults}, options...)...); err != nil { + return nil, err + } + dht := makeDHT(ctx, h, cfg.Datastore, cfg.Protocols) + + // register for network notifs. + dht.host.Network().Notify((*netNotifiee)(dht)) + + dht.proc = goprocessctx.WithContextAndTeardown(ctx, func() error { + // remove ourselves from network notifs. + dht.host.Network().StopNotify((*netNotifiee)(dht)) + return nil + }) + + dht.proc.AddChild(dht.providers.Process()) + dht.Validator = cfg.Validator + + if !cfg.Client { + for _, p := range cfg.Protocols { + h.SetStreamHandler(p, dht.handleNewStream) + } + } + return dht, nil +} + +// NewDHT creates a new DHT object with the given peer as the 'local' host. +// IpfsDHT's initialized with this function will respond to DHT requests, +// whereas IpfsDHT's initialized with NewDHTClient will not. +func NewDHT(ctx context.Context, h host.Host, dstore ds.Batching) *IpfsDHT { + dht, err := New(ctx, h, opts.Datastore(dstore)) + if err != nil { + panic(err) + } + return dht +} + +// NewDHTClient creates a new DHT object with the given peer as the 'local' +// host. IpfsDHT clients initialized with this function will not respond to DHT +// requests. If you need a peer to respond to DHT requests, use NewDHT instead. +// NewDHTClient creates a new DHT object with the given peer as the 'local' host +func NewDHTClient(ctx context.Context, h host.Host, dstore ds.Batching) *IpfsDHT { + dht, err := New(ctx, h, opts.Datastore(dstore), opts.Client(true)) + if err != nil { + panic(err) + } + return dht +} + +func makeDHT(ctx context.Context, h host.Host, dstore ds.Batching, protocols []protocol.ID) *IpfsDHT { + rt := kb.NewRoutingTable(KValue, kb.ConvertPeerID(h.ID()), time.Minute, h.Peerstore()) + + cmgr := h.ConnManager() + rt.PeerAdded = func(p peer.ID) { + cmgr.TagPeer(p, "kbucket", 5) + } + rt.PeerRemoved = func(p peer.ID) { + cmgr.UntagPeer(p, "kbucket") + } + + dht := &IpfsDHT{ + datastore: dstore, + self: h.ID(), + peerstore: h.Peerstore(), + host: h, + strmap: make(map[peer.ID]*messageSender), + ctx: ctx, + providers: providers.NewProviderManager(ctx, h.ID(), dstore), + birth: time.Now(), + routingTable: rt, + protocols: protocols, + } + + dht.ctx = dht.newContextWithLocalTags(ctx) + + return dht +} + +// putValueToPeer stores the given key/value pair at the peer 'p' +func (dht *IpfsDHT) putValueToPeer(ctx context.Context, p peer.ID, rec *recpb.Record) error { + + pmes := pb.NewMessage(pb.Message_PUT_VALUE, rec.Key, 0) + pmes.Record = rec + rpmes, err := dht.sendRequest(ctx, p, pmes) + if err != nil { + logger.Debugf("putValueToPeer: %v. (peer: %s, key: %s)", err, p.Pretty(), loggableKey(string(rec.Key))) + return err + } + + if !bytes.Equal(rpmes.GetRecord().Value, pmes.GetRecord().Value) { + logger.Warningf("putValueToPeer: value not put correctly. (%v != %v)", pmes, rpmes) + return errors.New("value not put correctly") + } + + return nil +} + +var errInvalidRecord = errors.New("received invalid record") + +// getValueOrPeers queries a particular peer p for the value for +// key. It returns either the value or a list of closer peers. +// NOTE: It will update the dht's peerstore with any new addresses +// it finds for the given peer. +func (dht *IpfsDHT) getValueOrPeers(ctx context.Context, p peer.ID, key string) (*recpb.Record, []*pstore.PeerInfo, error) { + + pmes, err := dht.getValueSingle(ctx, p, key) + if err != nil { + return nil, nil, err + } + + // Perhaps we were given closer peers + peers := pb.PBPeersToPeerInfos(pmes.GetCloserPeers()) + + if record := pmes.GetRecord(); record != nil { + // Success! We were given the value + logger.Debug("getValueOrPeers: got value") + + // make sure record is valid. + err = dht.Validator.Validate(string(record.GetKey()), record.GetValue()) + if err != nil { + logger.Info("Received invalid record! (discarded)") + // return a sentinal to signify an invalid record was received + err = errInvalidRecord + record = new(recpb.Record) + } + return record, peers, err + } + + if len(peers) > 0 { + logger.Debug("getValueOrPeers: peers") + return nil, peers, nil + } + + logger.Warning("getValueOrPeers: routing.ErrNotFound") + return nil, nil, routing.ErrNotFound +} + +// getValueSingle simply performs the get value RPC with the given parameters +func (dht *IpfsDHT) getValueSingle(ctx context.Context, p peer.ID, key string) (*pb.Message, error) { + meta := logging.LoggableMap{ + "key": key, + "peer": p, + } + + eip := logger.EventBegin(ctx, "getValueSingle", meta) + defer eip.Done() + + pmes := pb.NewMessage(pb.Message_GET_VALUE, []byte(key), 0) + resp, err := dht.sendRequest(ctx, p, pmes) + switch err { + case nil: + return resp, nil + case ErrReadTimeout: + logger.Warningf("getValueSingle: read timeout %s %s", p.Pretty(), key) + fallthrough + default: + eip.SetError(err) + return nil, err + } +} + +// getLocal attempts to retrieve the value from the datastore +func (dht *IpfsDHT) getLocal(key string) (*recpb.Record, error) { + logger.Debugf("getLocal %s", key) + rec, err := dht.getRecordFromDatastore(mkDsKey(key)) + if err != nil { + logger.Warningf("getLocal: %s", err) + return nil, err + } + + // Double check the key. Can't hurt. + if rec != nil && string(rec.GetKey()) != key { + logger.Errorf("BUG getLocal: found a DHT record that didn't match it's key: %s != %s", rec.GetKey(), key) + return nil, nil + + } + return rec, nil +} + +// putLocal stores the key value pair in the datastore +func (dht *IpfsDHT) putLocal(key string, rec *recpb.Record) error { + logger.Debugf("putLocal: %v %v", key, rec) + data, err := proto.Marshal(rec) + if err != nil { + logger.Warningf("putLocal: %s", err) + return err + } + + return dht.datastore.Put(mkDsKey(key), data) +} + +// Update signals the routingTable to Update its last-seen status +// on the given peer. +func (dht *IpfsDHT) Update(ctx context.Context, p peer.ID) { + logger.Event(ctx, "updatePeer", p) + dht.routingTable.Update(p) +} + +// FindLocal looks for a peer with a given ID connected to this dht and returns the peer and the table it was found in. +func (dht *IpfsDHT) FindLocal(id peer.ID) pstore.PeerInfo { + switch dht.host.Network().Connectedness(id) { + case inet.Connected, inet.CanConnect: + return dht.peerstore.PeerInfo(id) + default: + return pstore.PeerInfo{} + } +} + +// findPeerSingle asks peer 'p' if they know where the peer with id 'id' is +func (dht *IpfsDHT) findPeerSingle(ctx context.Context, p peer.ID, id peer.ID) (*pb.Message, error) { + eip := logger.EventBegin(ctx, "findPeerSingle", + logging.LoggableMap{ + "peer": p, + "target": id, + }) + defer eip.Done() + + pmes := pb.NewMessage(pb.Message_FIND_NODE, []byte(id), 0) + resp, err := dht.sendRequest(ctx, p, pmes) + switch err { + case nil: + return resp, nil + case ErrReadTimeout: + logger.Warningf("read timeout: %s %s", p.Pretty(), id) + fallthrough + default: + eip.SetError(err) + return nil, err + } +} + +func (dht *IpfsDHT) findProvidersSingle(ctx context.Context, p peer.ID, key cid.Cid) (*pb.Message, error) { + eip := logger.EventBegin(ctx, "findProvidersSingle", p, key) + defer eip.Done() + + pmes := pb.NewMessage(pb.Message_GET_PROVIDERS, key.Bytes(), 0) + resp, err := dht.sendRequest(ctx, p, pmes) + switch err { + case nil: + return resp, nil + case ErrReadTimeout: + logger.Warningf("read timeout: %s %s", p.Pretty(), key) + fallthrough + default: + eip.SetError(err) + return nil, err + } +} + +// nearestPeersToQuery returns the routing tables closest peers. +func (dht *IpfsDHT) nearestPeersToQuery(pmes *pb.Message, count int) []peer.ID { + closer := dht.routingTable.NearestPeers(kb.ConvertKey(string(pmes.GetKey())), count) + return closer +} + +// betterPeersToQuery returns nearestPeersToQuery, but if and only if closer than self. +func (dht *IpfsDHT) betterPeersToQuery(pmes *pb.Message, p peer.ID, count int) []peer.ID { + closer := dht.nearestPeersToQuery(pmes, count) + + // no node? nil + if closer == nil { + logger.Warning("betterPeersToQuery: no closer peers to send:", p) + return nil + } + + filtered := make([]peer.ID, 0, len(closer)) + for _, clp := range closer { + + // == to self? thats bad + if clp == dht.self { + logger.Error("BUG betterPeersToQuery: attempted to return self! this shouldn't happen...") + return nil + } + // Dont send a peer back themselves + if clp == p { + continue + } + + filtered = append(filtered, clp) + } + + // ok seems like closer nodes + return filtered +} + +// Context return dht's context +func (dht *IpfsDHT) Context() context.Context { + return dht.ctx +} + +// Process return dht's process +func (dht *IpfsDHT) Process() goprocess.Process { + return dht.proc +} + +// RoutingTable return dht's routingTable +func (dht *IpfsDHT) RoutingTable() *kb.RoutingTable { + return dht.routingTable +} + +// Close calls Process Close +func (dht *IpfsDHT) Close() error { + return dht.proc.Close() +} + +func (dht *IpfsDHT) protocolStrs() []string { + pstrs := make([]string, len(dht.protocols)) + for idx, proto := range dht.protocols { + pstrs[idx] = string(proto) + } + + return pstrs +} + +func mkDsKey(s string) ds.Key { + return ds.NewKey(base32.RawStdEncoding.EncodeToString([]byte(s))) +} + +func (dht *IpfsDHT) PeerID() peer.ID { + return dht.self +} + +func (dht *IpfsDHT) PeerKey() []byte { + return kb.ConvertPeerID(dht.self) +} + +func (dht *IpfsDHT) Host() host.Host { + return dht.host +} + +func (dht *IpfsDHT) Ping(ctx context.Context, p peer.ID) error { + req := pb.NewMessage(pb.Message_PING, nil, 0) + resp, err := dht.sendRequest(ctx, p, req) + if err != nil { + return xerrors.Errorf("sending request: %w", err) + } + if resp.Type != pb.Message_PING { + return xerrors.Errorf("got unexpected response type: %v", resp.Type) + } + return nil +} + +// newContextWithLocalTags returns a new context.Context with the InstanceID and +// PeerID keys populated. It will also take any extra tags that need adding to +// the context as tag.Mutators. +func (dht *IpfsDHT) newContextWithLocalTags(ctx context.Context, extraTags ...tag.Mutator) context.Context { + extraTags = append( + extraTags, + tag.Upsert(metrics.KeyPeerID, dht.self.Pretty()), + tag.Upsert(metrics.KeyInstanceID, fmt.Sprintf("%p", dht)), + ) + ctx, _ = tag.New( + ctx, + extraTags..., + ) // ignoring error as it is unrelated to the actual function of this code. + return ctx +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/dht_bootstrap.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/dht_bootstrap.go new file mode 100644 index 00000000..b70d81b1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/dht_bootstrap.go @@ -0,0 +1,184 @@ +package dht + +import ( + "context" + "crypto/rand" + "fmt" + "time" + + u "github.com/ipfs/go-ipfs-util" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + multiaddr "github.com/multiformats/go-multiaddr" + _ "github.com/multiformats/go-multiaddr-dns" +) + +var DefaultBootstrapPeers []multiaddr.Multiaddr + +func init() { + for _, s := range []string{ + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt", + "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", // mars.i.ipfs.io + "/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", // pluto.i.ipfs.io + "/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", // saturn.i.ipfs.io + "/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", // venus.i.ipfs.io + "/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", // earth.i.ipfs.io + "/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", // pluto.i.ipfs.io + "/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", // saturn.i.ipfs.io + "/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", // venus.i.ipfs.io + "/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", // earth.i.ipfs.io + } { + ma, err := multiaddr.NewMultiaddr(s) + if err != nil { + panic(err) + } + DefaultBootstrapPeers = append(DefaultBootstrapPeers, ma) + } +} + +// BootstrapConfig specifies parameters used bootstrapping the DHT. +// +// Note there is a tradeoff between the bootstrap period and the +// number of queries. We could support a higher period with less +// queries. +type BootstrapConfig struct { + Queries int // how many queries to run per period + Period time.Duration // how often to run periodic bootstrap. + Timeout time.Duration // how long to wait for a bootstrap query to run +} + +var DefaultBootstrapConfig = BootstrapConfig{ + // For now, this is set to 1 query. + // We are currently more interested in ensuring we have a properly formed + // DHT than making sure our dht minimizes traffic. Once we are more certain + // of our implementation's robustness, we should lower this down to 8 or 4. + Queries: 1, + + // For now, this is set to 5 minutes, which is a medium period. We are + // We are currently more interested in ensuring we have a properly formed + // DHT than making sure our dht minimizes traffic. + Period: time.Duration(5 * time.Minute), + + Timeout: time.Duration(10 * time.Second), +} + +// A method in the IpfsRouting interface. It calls BootstrapWithConfig with +// the default bootstrap config. +func (dht *IpfsDHT) Bootstrap(ctx context.Context) error { + return dht.BootstrapWithConfig(ctx, DefaultBootstrapConfig) +} + +// Runs cfg.Queries bootstrap queries every cfg.Period. +func (dht *IpfsDHT) BootstrapWithConfig(ctx context.Context, cfg BootstrapConfig) error { + // Because this method is not synchronous, we have to duplicate sanity + // checks on the config so that callers aren't oblivious. + if cfg.Queries <= 0 { + return fmt.Errorf("invalid number of queries: %d", cfg.Queries) + } + go func() { + for { + err := dht.runBootstrap(ctx, cfg) + if err != nil { + logger.Warningf("error bootstrapping: %s", err) + } + select { + case <-time.After(cfg.Period): + case <-ctx.Done(): + return + } + } + }() + return nil +} + +// This is a synchronous bootstrap. cfg.Queries queries will run each with a +// timeout of cfg.Timeout. cfg.Period is not used. +func (dht *IpfsDHT) BootstrapOnce(ctx context.Context, cfg BootstrapConfig) error { + if cfg.Queries <= 0 { + return fmt.Errorf("invalid number of queries: %d", cfg.Queries) + } + return dht.runBootstrap(ctx, cfg) +} + +func newRandomPeerId() peer.ID { + id := make([]byte, 32) // SHA256 is the default. TODO: Use a more canonical way to generate random IDs. + rand.Read(id) + id = u.Hash(id) // TODO: Feed this directly into the multihash instead of hashing it. + return peer.ID(id) +} + +// Traverse the DHT toward the given ID. +func (dht *IpfsDHT) walk(ctx context.Context, target peer.ID) (pstore.PeerInfo, error) { + // TODO: Extract the query action (traversal logic?) inside FindPeer, + // don't actually call through the FindPeer machinery, which can return + // things out of the peer store etc. + return dht.FindPeer(ctx, target) +} + +// Traverse the DHT toward a random ID. +func (dht *IpfsDHT) randomWalk(ctx context.Context) error { + id := newRandomPeerId() + p, err := dht.walk(ctx, id) + switch err { + case routing.ErrNotFound: + return nil + case nil: + // We found a peer from a randomly generated ID. This should be very + // unlikely. + logger.Warningf("random walk toward %s actually found peer: %s", id, p) + return nil + default: + return err + } +} + +// Traverse the DHT toward the self ID +func (dht *IpfsDHT) selfWalk(ctx context.Context) error { + _, err := dht.walk(ctx, dht.self) + if err == routing.ErrNotFound { + return nil + } + return err +} + +// runBootstrap builds up list of peers by requesting random peer IDs +func (dht *IpfsDHT) runBootstrap(ctx context.Context, cfg BootstrapConfig) error { + doQuery := func(n int, target string, f func(context.Context) error) error { + logger.Infof("starting bootstrap query (%d/%d) to %s (routing table size was %d)", + n, cfg.Queries, target, dht.routingTable.Size()) + defer func() { + logger.Infof("finished bootstrap query (%d/%d) to %s (routing table size is now %d)", + n, cfg.Queries, target, dht.routingTable.Size()) + }() + queryCtx, cancel := context.WithTimeout(ctx, cfg.Timeout) + defer cancel() + err := f(queryCtx) + if err == context.DeadlineExceeded && queryCtx.Err() == context.DeadlineExceeded && ctx.Err() == nil { + return nil + } + return err + } + + // Do all but one of the bootstrap queries as random walks. + for i := 0; i < cfg.Queries; i++ { + err := doQuery(i, "random ID", dht.randomWalk) + if err != nil { + return err + } + } + + // Find self to distribute peer info to our neighbors. + return doQuery(cfg.Queries, fmt.Sprintf("self: %s", dht.self), dht.selfWalk) +} + +func (dht *IpfsDHT) BootstrapRandom(ctx context.Context) error { + return dht.randomWalk(ctx) +} + +func (dht *IpfsDHT) BootstrapSelf(ctx context.Context) error { + return dht.selfWalk(ctx) +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/dht_net.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/dht_net.go new file mode 100644 index 00000000..f6261089 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/dht_net.go @@ -0,0 +1,403 @@ +package dht + +import ( + "bufio" + "context" + "fmt" + "io" + "sync" + "time" + + ggio "github.com/gogo/protobuf/io" + ctxio "github.com/jbenet/go-context/io" + "github.com/libp2p/go-libp2p-kad-dht/metrics" + pb "github.com/libp2p/go-libp2p-kad-dht/pb" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + "go.opencensus.io/stats" + "go.opencensus.io/tag" +) + +var dhtReadMessageTimeout = time.Minute +var ErrReadTimeout = fmt.Errorf("timed out reading response") + +type bufferedWriteCloser interface { + ggio.WriteCloser + Flush() error +} + +// The Protobuf writer performs multiple small writes when writing a message. +// We need to buffer those writes, to make sure that we're not sending a new +// packet for every single write. +type bufferedDelimitedWriter struct { + *bufio.Writer + ggio.WriteCloser +} + +func newBufferedDelimitedWriter(str io.Writer) bufferedWriteCloser { + w := bufio.NewWriter(str) + return &bufferedDelimitedWriter{ + Writer: w, + WriteCloser: ggio.NewDelimitedWriter(w), + } +} + +func (w *bufferedDelimitedWriter) Flush() error { + return w.Writer.Flush() +} + +// handleNewStream implements the inet.StreamHandler +func (dht *IpfsDHT) handleNewStream(s inet.Stream) { + defer s.Reset() + if dht.handleNewMessage(s) { + // Gracefully close the stream for writes. + s.Close() + } +} + +// Returns true on orderly completion of writes (so we can Close the stream). +func (dht *IpfsDHT) handleNewMessage(s inet.Stream) bool { + ctx := dht.ctx + + cr := ctxio.NewReader(ctx, s) // ok to use. we defer close stream in this func + cw := ctxio.NewWriter(ctx, s) // ok to use. we defer close stream in this func + r := ggio.NewDelimitedReader(cr, inet.MessageSizeMax) + w := newBufferedDelimitedWriter(cw) + mPeer := s.Conn().RemotePeer() + + for { + var req pb.Message + switch err := r.ReadMsg(&req); err { + case io.EOF: + return true + default: + // This string test is necessary because there isn't a single stream reset error + // instance in use. + if err.Error() != "stream reset" { + logger.Debugf("error reading message: %#v", err) + } + stats.RecordWithTags( + ctx, + []tag.Mutator{tag.Upsert(metrics.KeyMessageType, "UNKNOWN")}, + metrics.ReceivedMessageErrors.M(1), + ) + return false + case nil: + } + + startTime := time.Now() + ctx, _ = tag.New( + ctx, + tag.Upsert(metrics.KeyMessageType, req.GetType().String()), + ) + + stats.Record( + ctx, + metrics.ReceivedMessages.M(1), + metrics.ReceivedBytes.M(int64(req.Size())), + ) + + handler := dht.handlerForMsgType(req.GetType()) + if handler == nil { + stats.Record(ctx, metrics.ReceivedMessageErrors.M(1)) + logger.Warningf("can't handle received message of type %v", req.GetType()) + return false + } + + resp, err := handler(ctx, mPeer, &req) + if err != nil { + stats.Record(ctx, metrics.ReceivedMessageErrors.M(1)) + logger.Debugf("error handling message: %v", err) + return false + } + + dht.updateFromMessage(ctx, mPeer, &req) + + if resp == nil { + continue + } + + // send out response msg + err = w.WriteMsg(resp) + if err == nil { + err = w.Flush() + } + if err != nil { + stats.Record(ctx, metrics.ReceivedMessageErrors.M(1)) + logger.Debugf("error writing response: %v", err) + return false + } + + elapsedTime := time.Since(startTime) + latencyMillis := float64(elapsedTime) / float64(time.Millisecond) + stats.Record(ctx, metrics.InboundRequestLatency.M(latencyMillis)) + } +} + +// sendRequest sends out a request, but also makes sure to +// measure the RTT for latency measurements. +func (dht *IpfsDHT) sendRequest(ctx context.Context, p peer.ID, pmes *pb.Message) (*pb.Message, error) { + ctx, _ = tag.New(ctx, metrics.UpsertMessageType(pmes)) + + ms, err := dht.messageSenderForPeer(ctx, p) + if err != nil { + stats.Record(ctx, metrics.SentRequestErrors.M(1)) + return nil, err + } + + start := time.Now() + + rpmes, err := ms.SendRequest(ctx, pmes) + if err != nil { + stats.Record(ctx, metrics.SentRequestErrors.M(1)) + return nil, err + } + + // update the peer (on valid msgs only) + dht.updateFromMessage(ctx, p, rpmes) + + stats.Record( + ctx, + metrics.SentRequests.M(1), + metrics.SentBytes.M(int64(pmes.Size())), + metrics.OutboundRequestLatency.M( + float64(time.Since(start))/float64(time.Millisecond), + ), + ) + dht.peerstore.RecordLatency(p, time.Since(start)) + logger.Event(ctx, "dhtReceivedMessage", dht.self, p, rpmes) + return rpmes, nil +} + +// sendMessage sends out a message +func (dht *IpfsDHT) sendMessage(ctx context.Context, p peer.ID, pmes *pb.Message) error { + ctx, _ = tag.New(ctx, metrics.UpsertMessageType(pmes)) + + ms, err := dht.messageSenderForPeer(ctx, p) + if err != nil { + stats.Record(ctx, metrics.SentMessageErrors.M(1)) + return err + } + + if err := ms.SendMessage(ctx, pmes); err != nil { + stats.Record(ctx, metrics.SentMessageErrors.M(1)) + return err + } + + stats.Record( + ctx, + metrics.SentMessages.M(1), + metrics.SentBytes.M(int64(pmes.Size())), + ) + logger.Event(ctx, "dhtSentMessage", dht.self, p, pmes) + return nil +} + +func (dht *IpfsDHT) updateFromMessage(ctx context.Context, p peer.ID, mes *pb.Message) error { + // Make sure that this node is actually a DHT server, not just a client. + protos, err := dht.peerstore.SupportsProtocols(p, dht.protocolStrs()...) + if err == nil && len(protos) > 0 { + dht.Update(ctx, p) + } + return nil +} + +func (dht *IpfsDHT) messageSenderForPeer(ctx context.Context, p peer.ID) (*messageSender, error) { + dht.smlk.Lock() + ms, ok := dht.strmap[p] + if ok { + dht.smlk.Unlock() + return ms, nil + } + ms = &messageSender{p: p, dht: dht} + dht.strmap[p] = ms + dht.smlk.Unlock() + + if err := ms.prepOrInvalidate(ctx); err != nil { + dht.smlk.Lock() + defer dht.smlk.Unlock() + + if msCur, ok := dht.strmap[p]; ok { + // Changed. Use the new one, old one is invalid and + // not in the map so we can just throw it away. + if ms != msCur { + return msCur, nil + } + // Not changed, remove the now invalid stream from the + // map. + delete(dht.strmap, p) + } + // Invalid but not in map. Must have been removed by a disconnect. + return nil, err + } + // All ready to go. + return ms, nil +} + +type messageSender struct { + s inet.Stream + r ggio.ReadCloser + w bufferedWriteCloser + lk sync.Mutex + p peer.ID + dht *IpfsDHT + + invalid bool + singleMes int +} + +// invalidate is called before this messageSender is removed from the strmap. +// It prevents the messageSender from being reused/reinitialized and then +// forgotten (leaving the stream open). +func (ms *messageSender) invalidate() { + ms.invalid = true + if ms.s != nil { + ms.s.Reset() + ms.s = nil + } +} + +func (ms *messageSender) prepOrInvalidate(ctx context.Context) error { + ms.lk.Lock() + defer ms.lk.Unlock() + if err := ms.prep(ctx); err != nil { + ms.invalidate() + return err + } + return nil +} + +func (ms *messageSender) prep(ctx context.Context) error { + if ms.invalid { + return fmt.Errorf("message sender has been invalidated") + } + if ms.s != nil { + return nil + } + + nstr, err := ms.dht.host.NewStream(ctx, ms.p, ms.dht.protocols...) + if err != nil { + return err + } + + ms.r = ggio.NewDelimitedReader(nstr, inet.MessageSizeMax) + ms.w = newBufferedDelimitedWriter(nstr) + ms.s = nstr + + return nil +} + +// streamReuseTries is the number of times we will try to reuse a stream to a +// given peer before giving up and reverting to the old one-message-per-stream +// behaviour. +const streamReuseTries = 3 + +func (ms *messageSender) SendMessage(ctx context.Context, pmes *pb.Message) error { + ms.lk.Lock() + defer ms.lk.Unlock() + retry := false + for { + if err := ms.prep(ctx); err != nil { + return err + } + + if err := ms.writeMsg(pmes); err != nil { + ms.s.Reset() + ms.s = nil + + if retry { + logger.Info("error writing message, bailing: ", err) + return err + } + logger.Info("error writing message, trying again: ", err) + retry = true + continue + } + + logger.Event(ctx, "dhtSentMessage", ms.dht.self, ms.p, pmes) + + if ms.singleMes > streamReuseTries { + go inet.FullClose(ms.s) + ms.s = nil + } else if retry { + ms.singleMes++ + } + + return nil + } +} + +func (ms *messageSender) SendRequest(ctx context.Context, pmes *pb.Message) (*pb.Message, error) { + ms.lk.Lock() + defer ms.lk.Unlock() + retry := false + for { + if err := ms.prep(ctx); err != nil { + return nil, err + } + + if err := ms.writeMsg(pmes); err != nil { + ms.s.Reset() + ms.s = nil + + if retry { + logger.Info("error writing message, bailing: ", err) + return nil, err + } + logger.Info("error writing message, trying again: ", err) + retry = true + continue + } + + mes := new(pb.Message) + if err := ms.ctxReadMsg(ctx, mes); err != nil { + ms.s.Reset() + ms.s = nil + + if retry { + logger.Info("error reading message, bailing: ", err) + return nil, err + } + logger.Info("error reading message, trying again: ", err) + retry = true + continue + } + + logger.Event(ctx, "dhtSentMessage", ms.dht.self, ms.p, pmes) + + if ms.singleMes > streamReuseTries { + go inet.FullClose(ms.s) + ms.s = nil + } else if retry { + ms.singleMes++ + } + + return mes, nil + } +} + +func (ms *messageSender) writeMsg(pmes *pb.Message) error { + if err := ms.w.WriteMsg(pmes); err != nil { + return err + } + return ms.w.Flush() +} + +func (ms *messageSender) ctxReadMsg(ctx context.Context, mes *pb.Message) error { + errc := make(chan error, 1) + go func(r ggio.ReadCloser) { + errc <- r.ReadMsg(mes) + }(ms.r) + + t := time.NewTimer(dhtReadMessageTimeout) + defer t.Stop() + + select { + case err := <-errc: + return err + case <-ctx.Done(): + return ctx.Err() + case <-t.C: + return ErrReadTimeout + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/dial_queue.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/dial_queue.go new file mode 100644 index 00000000..07adddf8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/dial_queue.go @@ -0,0 +1,354 @@ +package dht + +import ( + "context" + "math" + "sync" + "time" + + peer "github.com/libp2p/go-libp2p-peer" + queue "github.com/libp2p/go-libp2p-peerstore/queue" +) + +const ( + // DefaultDialQueueMinParallelism is the default value for the minimum number of worker dial goroutines that will + // be alive at any time. + DefaultDialQueueMinParallelism = 6 + // DefaultDialQueueMaxParallelism is the default value for the maximum number of worker dial goroutines that can + // be alive at any time. + DefaultDialQueueMaxParallelism = 20 + // DefaultDialQueueMaxIdle is the default value for the period that a worker dial goroutine waits before signalling + // a worker pool downscaling. + DefaultDialQueueMaxIdle = 5 * time.Second + // DefaultDialQueueScalingMutePeriod is the default value for the amount of time to ignore further worker pool + // scaling events, after one is processed. Its role is to reduce jitter. + DefaultDialQueueScalingMutePeriod = 1 * time.Second + // DefaultDialQueueScalingFactor is the default factor by which the current number of workers will be multiplied + // or divided when upscaling and downscaling events occur, respectively. + DefaultDialQueueScalingFactor = 1.5 +) + +type dialQueue struct { + *dqParams + + nWorkers uint + out *queue.ChanQueue + startOnce sync.Once + + waitingCh chan waitingCh + dieCh chan struct{} + growCh chan struct{} + shrinkCh chan struct{} +} + +type dqParams struct { + ctx context.Context + target string + dialFn func(context.Context, peer.ID) error + in *queue.ChanQueue + config dqConfig +} + +type dqConfig struct { + // minParallelism is the minimum number of worker dial goroutines that will be alive at any time. + minParallelism uint + // maxParallelism is the maximum number of worker dial goroutines that can be alive at any time. + maxParallelism uint + // scalingFactor is the factor by which the current number of workers will be multiplied or divided when upscaling + // and downscaling events occur, respectively. + scalingFactor float64 + // mutePeriod is the amount of time to ignore further worker pool scaling events, after one is processed. + // Its role is to reduce jitter. + mutePeriod time.Duration + // maxIdle is the period that a worker dial goroutine waits before signalling a worker pool downscaling. + maxIdle time.Duration +} + +// dqDefaultConfig returns the default configuration for dial queues. See const documentation to learn the default values. +func dqDefaultConfig() dqConfig { + return dqConfig{ + minParallelism: DefaultDialQueueMinParallelism, + maxParallelism: DefaultDialQueueMaxParallelism, + scalingFactor: DefaultDialQueueScalingFactor, + maxIdle: DefaultDialQueueMaxIdle, + mutePeriod: DefaultDialQueueScalingMutePeriod, + } +} + +type waitingCh struct { + ch chan<- peer.ID + ts time.Time +} + +// newDialQueue returns an _unstarted_ adaptive dial queue that spawns a dynamically sized set of goroutines to +// preemptively stage dials for later handoff to the DHT protocol for RPC. It identifies backpressure on both +// ends (dial consumers and dial producers), and takes compensating action by adjusting the worker pool. To +// activate the dial queue, call Start(). +// +// Why? Dialing is expensive. It's orders of magnitude slower than running an RPC on an already-established +// connection, as it requires establishing a TCP connection, multistream handshake, crypto handshake, mux handshake, +// and protocol negotiation. +// +// We start with config.minParallelism number of workers, and scale up and down based on demand and supply of +// dialled peers. +// +// The following events trigger scaling: +// - we scale up when we can't immediately return a successful dial to a new consumer. +// - we scale down when we've been idle for a while waiting for new dial attempts. +// - we scale down when we complete a dial and realise nobody was waiting for it. +// +// Dialler throttling (e.g. FD limit exceeded) is a concern, as we can easily spin up more workers to compensate, and +// end up adding fuel to the fire. Since we have no deterministic way to detect this for now, we hard-limit concurrency +// to config.maxParallelism. +func newDialQueue(params *dqParams) (*dialQueue, error) { + dq := &dialQueue{ + dqParams: params, + out: queue.NewChanQueue(params.ctx, queue.NewXORDistancePQ(params.target)), + growCh: make(chan struct{}, 1), + shrinkCh: make(chan struct{}, 1), + waitingCh: make(chan waitingCh), + dieCh: make(chan struct{}, params.config.maxParallelism), + } + + return dq, nil +} + +// Start initiates action on this dial queue. It should only be called once; subsequent calls are ignored. +func (dq *dialQueue) Start() { + dq.startOnce.Do(func() { + go dq.control() + }) +} + +func (dq *dialQueue) control() { + var ( + dialled <-chan peer.ID + waiting []waitingCh + lastScalingEvt = time.Now() + ) + + defer func() { + for _, w := range waiting { + close(w.ch) + } + waiting = nil + }() + + // start workers + + tgt := int(dq.dqParams.config.minParallelism) + for i := 0; i < tgt; i++ { + go dq.worker() + } + dq.nWorkers = uint(tgt) + + // control workers + + for { + // First process any backlog of dial jobs and waiters -- making progress is the priority. + // This block is copied below; couldn't find a more concise way of doing this. + select { + case <-dq.ctx.Done(): + return + case w := <-dq.waitingCh: + waiting = append(waiting, w) + dialled = dq.out.DeqChan + continue // onto the top. + case p, ok := <-dialled: + if !ok { + return // we're done if the ChanQueue is closed, which happens when the context is closed. + } + w := waiting[0] + logger.Debugf("delivering dialled peer to DHT; took %dms.", time.Since(w.ts)/time.Millisecond) + w.ch <- p + close(w.ch) + waiting = waiting[1:] + if len(waiting) == 0 { + // no more waiters, so stop consuming dialled jobs. + dialled = nil + } + continue // onto the top. + default: + // there's nothing to process, so proceed onto the main select block. + } + + select { + case <-dq.ctx.Done(): + return + case w := <-dq.waitingCh: + waiting = append(waiting, w) + dialled = dq.out.DeqChan + case p, ok := <-dialled: + if !ok { + return // we're done if the ChanQueue is closed, which happens when the context is closed. + } + w := waiting[0] + logger.Debugf("delivering dialled peer to DHT; took %dms.", time.Since(w.ts)/time.Millisecond) + w.ch <- p + close(w.ch) + waiting = waiting[1:] + if len(waiting) == 0 { + // no more waiters, so stop consuming dialled jobs. + dialled = nil + } + case <-dq.growCh: + if time.Since(lastScalingEvt) < dq.config.mutePeriod { + continue + } + dq.grow() + lastScalingEvt = time.Now() + case <-dq.shrinkCh: + if time.Since(lastScalingEvt) < dq.config.mutePeriod { + continue + } + dq.shrink() + lastScalingEvt = time.Now() + } + } +} + +func (dq *dialQueue) Consume() <-chan peer.ID { + ch := make(chan peer.ID, 1) + + select { + case p, ok := <-dq.out.DeqChan: + // short circuit and return a dialled peer if it's immediately available, or abort if DeqChan is closed. + if ok { + ch <- p + } + close(ch) + return ch + case <-dq.ctx.Done(): + // return a closed channel with no value if we're done. + close(ch) + return ch + default: + } + + // we have no finished dials to return, trigger a scale up. + select { + case dq.growCh <- struct{}{}: + default: + } + + // park the channel until a dialled peer becomes available. + select { + case dq.waitingCh <- waitingCh{ch, time.Now()}: + // all good + case <-dq.ctx.Done(): + // return a closed channel with no value if we're done. + close(ch) + } + return ch +} + +func (dq *dialQueue) grow() { + // no mutex needed as this is only called from the (single-threaded) control loop. + defer func(prev uint) { + if prev == dq.nWorkers { + return + } + logger.Debugf("grew dial worker pool: %d => %d", prev, dq.nWorkers) + }(dq.nWorkers) + + if dq.nWorkers == dq.config.maxParallelism { + return + } + // choosing not to worry about uint wrapping beyond max value. + target := uint(math.Floor(float64(dq.nWorkers) * dq.config.scalingFactor)) + if target > dq.config.maxParallelism { + target = dq.config.maxParallelism + } + for ; dq.nWorkers < target; dq.nWorkers++ { + go dq.worker() + } +} + +func (dq *dialQueue) shrink() { + // no mutex needed as this is only called from the (single-threaded) control loop. + defer func(prev uint) { + if prev == dq.nWorkers { + return + } + logger.Debugf("shrunk dial worker pool: %d => %d", prev, dq.nWorkers) + }(dq.nWorkers) + + if dq.nWorkers == dq.config.minParallelism { + return + } + target := uint(math.Floor(float64(dq.nWorkers) / dq.config.scalingFactor)) + if target < dq.config.minParallelism { + target = dq.config.minParallelism + } + // send as many die signals as workers we have to prune. + for ; dq.nWorkers > target; dq.nWorkers-- { + select { + case dq.dieCh <- struct{}{}: + default: + logger.Debugf("too many die signals queued up.") + } + } +} + +func (dq *dialQueue) worker() { + // This idle timer tracks if the environment is slow. If we're waiting to long to acquire a peer to dial, + // it means that the DHT query is progressing slow and we should shrink the worker pool. + idleTimer := time.NewTimer(24 * time.Hour) // placeholder init value which will be overridden immediately. + for { + // trap exit signals first. + select { + case <-dq.ctx.Done(): + return + case <-dq.dieCh: + return + default: + } + + idleTimer.Stop() + select { + case <-idleTimer.C: + default: + } + idleTimer.Reset(dq.config.maxIdle) + + select { + case <-dq.dieCh: + return + case <-dq.ctx.Done(): + return + case <-idleTimer.C: + // no new dial requests during our idle period; time to scale down. + case p, ok := <-dq.in.DeqChan: + if !ok { + return + } + + t := time.Now() + if err := dq.dialFn(dq.ctx, p); err != nil { + logger.Debugf("discarding dialled peer because of error: %v", err) + continue + } + logger.Debugf("dialling %v took %dms (as observed by the dht subsystem).", p, time.Since(t)/time.Millisecond) + waiting := len(dq.waitingCh) + + // by the time we're done dialling, it's possible that the context is closed, in which case there will + // be nobody listening on dq.out.EnqChan and we could block forever. + select { + case dq.out.EnqChan <- p: + case <-dq.ctx.Done(): + return + } + if waiting > 0 { + // we have somebody to deliver this value to, so no need to shrink. + continue + } + } + + // scaling down; control only arrives here if the idle timer fires, or if there are no goroutines + // waiting for the value we just produced. + select { + case dq.shrinkCh <- struct{}{}: + default: + } + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/doc.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/doc.go new file mode 100644 index 00000000..acbb1814 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/doc.go @@ -0,0 +1,3 @@ +// Package dht implements a distributed hash table that satisfies the ipfs routing +// interface. This DHT is modeled after kademlia with S/Kademlia modifications. +package dht diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/go.mod b/vendor/github.com/libp2p/go-libp2p-kad-dht/go.mod new file mode 100644 index 00000000..2a835cf7 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/go.mod @@ -0,0 +1,34 @@ +module github.com/libp2p/go-libp2p-kad-dht + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/golang/protobuf v1.3.1 // indirect + github.com/hashicorp/golang-lru v0.5.1 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.4 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/ipfs/go-todocounter v0.0.1 + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-libp2p v0.0.12 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-kbucket v0.1.1 + github.com/libp2p/go-libp2p-net v0.0.2 + github.com/libp2p/go-libp2p-peer v0.1.0 + github.com/libp2p/go-libp2p-peerstore v0.0.2 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-libp2p-record v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/libp2p/go-libp2p-swarm v0.0.2 + github.com/libp2p/go-testutil v0.0.1 + github.com/mr-tron/base58 v1.1.0 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-dns v0.0.2 + github.com/multiformats/go-multistream v0.0.1 + github.com/stretchr/testify v1.3.0 + github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc + go.opencensus.io v0.20.2 + golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3 +) diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/go.sum b/vendor/github.com/libp2p/go-libp2p-kad-dht/go.sum new file mode 100644 index 00000000..19ad0658 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/go.sum @@ -0,0 +1,366 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.0.4 h1:FZgezmkbkMGXal1nXXFMyCKkWNglxK1c4jVqO1Emlso= +github.com/ipfs/go-datastore v0.0.4/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-todocounter v0.0.1 h1:kITWA5ZcQZfrUnDNkRn04Xzh0YFaDFXsoO2A81Eb6Lw= +github.com/ipfs/go-todocounter v0.0.1/go.mod h1:l5aErvQc8qKE2r7NDMjmq5UNAvuZy0rC8BHOplkWvZ4= +github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p v0.0.12 h1:UbZO296s6/Cvoz4LmymvL7LrXtHkD58Xtt8Iddx/N+I= +github.com/libp2p/go-libp2p v0.0.12/go.mod h1:l8kmLMc4DToz2TtA0aWEaE4/jVMALRKw8Kv2WTR0LHc= +github.com/libp2p/go-libp2p-autonat v0.0.4/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.4/go.mod h1:p1cHJnB9xnX5/1vZLkXgKwmNEOQQuF/Hp+SkATXnXYk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.1 h1:VkjCKmJQMwpDUwtA8Qc1z3TQAHJgQ5nGQ6cdN0wQXOw= +github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-kbucket v0.1.1 h1:ZrvW3qCM+lAuv7nrNts/zfEiClq+GZe8OIzX4Vb3Dwo= +github.com/libp2p/go-libp2p-kbucket v0.1.1/go.mod h1:Y0iQDHRTk/ZgM8PC4jExoF+E4j+yXWwRkdldkMa5Xm4= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.4 h1:+KXK324yaY701On8a0aGjTnw8467kW3ExKcqW2wwmyw= +github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= +github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peer v0.1.0 h1:9D1St1vqXRkeAhNdDtpt8AivS1bhzA6yH+YWrVXWcWI= +github.com/libp2p/go-libp2p-peer v0.1.0/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-peerstore v0.0.2 h1:Lirt3A1Oq11jszJ4SPNBo8chNv61UWXE538KUEGxTVk= +github.com/libp2p/go-libp2p-peerstore v0.0.2/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-swarm v0.0.2 h1:cpHHXTeU2IgUu8LPemF7vaLPGtVC6VxMoll2EwqlC+E= +github.com/libp2p/go-libp2p-swarm v0.0.2/go.mod h1:n0cAAcKyndIrJWctQwjqXlAdIPBZzfdpBjx1SSvz30g= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-nat v0.0.3 h1:l6fKV+p0Xa354EqQOQP+d8CivdLM4kl5GxC1hSc/UeI= +github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-reuseport-transport v0.0.2 h1:WglMwyXyBu61CMkjCCtnmqNqnjib0GIEjMiHTwR/KN4= +github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-tcp-transport v0.0.2 h1:EzOSRaHpyrGpJ5qe+9SaxJM1mrWlkSLFfNTufUkq0lg= +github.com/libp2p/go-tcp-transport v0.0.2/go.mod h1:VjZFHasNJ0QiJQNNwiFDy25qyGWTXQWs8GM5DR4/L1k= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.2/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc h1:BCPnHtcboadS0DvysUuJXZ4lWVv5Bh5i7+tbIyi+ck4= +github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc/go.mod h1:r45hJU7yEoA81k6MWNhpMj/kms0n14dkzkxYHoB96UM= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2 h1:NAfh7zF0/3/HqtMvJNZ/RFrSlCE6ZTlHmKfhL/Dm1Jk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6 h1:bjcUS9ztw9kFmmIxJInhon/0Is3p+EHBKNgquIzo1OI= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3 h1:P6iTFmrTQqWrqLZPX1VMzCUbCRCAUXSUsSpkEOvWzJ0= +golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/handlers.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/handlers.go new file mode 100644 index 00000000..99ad280f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/handlers.go @@ -0,0 +1,381 @@ +package dht + +import ( + "bytes" + "context" + "errors" + "fmt" + "time" + + proto "github.com/gogo/protobuf/proto" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + u "github.com/ipfs/go-ipfs-util" + pb "github.com/libp2p/go-libp2p-kad-dht/pb" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + recpb "github.com/libp2p/go-libp2p-record/pb" + base32 "github.com/whyrusleeping/base32" +) + +// The number of closer peers to send on requests. +var CloserPeerCount = KValue + +// dhthandler specifies the signature of functions that handle DHT messages. +type dhtHandler func(context.Context, peer.ID, *pb.Message) (*pb.Message, error) + +func (dht *IpfsDHT) handlerForMsgType(t pb.Message_MessageType) dhtHandler { + switch t { + case pb.Message_GET_VALUE: + return dht.handleGetValue + case pb.Message_PUT_VALUE: + return dht.handlePutValue + case pb.Message_FIND_NODE: + return dht.handleFindPeer + case pb.Message_ADD_PROVIDER: + return dht.handleAddProvider + case pb.Message_GET_PROVIDERS: + return dht.handleGetProviders + case pb.Message_PING: + return dht.handlePing + default: + return nil + } +} + +func (dht *IpfsDHT) handleGetValue(ctx context.Context, p peer.ID, pmes *pb.Message) (_ *pb.Message, err error) { + ctx = logger.Start(ctx, "handleGetValue") + logger.SetTag(ctx, "peer", p) + defer func() { logger.FinishWithErr(ctx, err) }() + logger.Debugf("%s handleGetValue for key: %s", dht.self, pmes.GetKey()) + + // setup response + resp := pb.NewMessage(pmes.GetType(), pmes.GetKey(), pmes.GetClusterLevel()) + + // first, is there even a key? + k := pmes.GetKey() + if len(k) == 0 { + return nil, errors.New("handleGetValue but no key was provided") + // TODO: send back an error response? could be bad, but the other node's hanging. + } + + rec, err := dht.checkLocalDatastore(k) + if err != nil { + return nil, err + } + resp.Record = rec + + // Find closest peer on given cluster to desired key and reply with that info + closer := dht.betterPeersToQuery(pmes, p, CloserPeerCount) + if len(closer) > 0 { + closerinfos := pstore.PeerInfos(dht.peerstore, closer) + for _, pi := range closerinfos { + logger.Debugf("handleGetValue returning closer peer: '%s'", pi.ID) + if len(pi.Addrs) < 1 { + logger.Warningf(`no addresses on peer being sent! + [local:%s] + [sending:%s] + [remote:%s]`, dht.self, pi.ID, p) + } + } + + resp.CloserPeers = pb.PeerInfosToPBPeers(dht.host.Network(), closerinfos) + } + + return resp, nil +} + +func (dht *IpfsDHT) checkLocalDatastore(k []byte) (*recpb.Record, error) { + logger.Debugf("%s handleGetValue looking into ds", dht.self) + dskey := convertToDsKey(k) + buf, err := dht.datastore.Get(dskey) + logger.Debugf("%s handleGetValue looking into ds GOT %v", dht.self, buf) + + if err == ds.ErrNotFound { + return nil, nil + } + + // if we got an unexpected error, bail. + if err != nil { + return nil, err + } + + // if we have the value, send it back + logger.Debugf("%s handleGetValue success!", dht.self) + + rec := new(recpb.Record) + err = proto.Unmarshal(buf, rec) + if err != nil { + logger.Debug("failed to unmarshal DHT record from datastore") + return nil, err + } + + var recordIsBad bool + recvtime, err := u.ParseRFC3339(rec.GetTimeReceived()) + if err != nil { + logger.Info("either no receive time set on record, or it was invalid: ", err) + recordIsBad = true + } + + if time.Since(recvtime) > MaxRecordAge { + logger.Debug("old record found, tossing.") + recordIsBad = true + } + + // NOTE: We do not verify the record here beyond checking these timestamps. + // we put the burden of checking the records on the requester as checking a record + // may be computationally expensive + + if recordIsBad { + err := dht.datastore.Delete(dskey) + if err != nil { + logger.Error("Failed to delete bad record from datastore: ", err) + } + + return nil, nil // can treat this as not having the record at all + } + + return rec, nil +} + +// Cleans the record (to avoid storing arbitrary data). +func cleanRecord(rec *recpb.Record) { + rec.TimeReceived = "" +} + +// Store a value in this peer local storage +func (dht *IpfsDHT) handlePutValue(ctx context.Context, p peer.ID, pmes *pb.Message) (_ *pb.Message, err error) { + ctx = logger.Start(ctx, "handlePutValue") + logger.SetTag(ctx, "peer", p) + defer func() { logger.FinishWithErr(ctx, err) }() + + rec := pmes.GetRecord() + if rec == nil { + logger.Infof("Got nil record from: %s", p.Pretty()) + return nil, errors.New("nil record") + } + + if !bytes.Equal(pmes.GetKey(), rec.GetKey()) { + return nil, errors.New("put key doesn't match record key") + } + + cleanRecord(rec) + + // Make sure the record is valid (not expired, valid signature etc) + if err = dht.Validator.Validate(string(rec.GetKey()), rec.GetValue()); err != nil { + logger.Warningf("Bad dht record in PUT from: %s. %s", p.Pretty(), err) + return nil, err + } + + dskey := convertToDsKey(rec.GetKey()) + + // Make sure the new record is "better" than the record we have locally. + // This prevents a record with for example a lower sequence number from + // overwriting a record with a higher sequence number. + existing, err := dht.getRecordFromDatastore(dskey) + if err != nil { + return nil, err + } + + if existing != nil { + recs := [][]byte{rec.GetValue(), existing.GetValue()} + i, err := dht.Validator.Select(string(rec.GetKey()), recs) + if err != nil { + logger.Warningf("Bad dht record in PUT from %s: %s", p.Pretty(), err) + return nil, err + } + if i != 0 { + logger.Infof("DHT record in PUT from %s is older than existing record. Ignoring", p.Pretty()) + return nil, errors.New("old record") + } + } + + // record the time we receive every record + rec.TimeReceived = u.FormatRFC3339(time.Now()) + + data, err := proto.Marshal(rec) + if err != nil { + return nil, err + } + + err = dht.datastore.Put(dskey, data) + logger.Debugf("%s handlePutValue %v", dht.self, dskey) + return pmes, err +} + +// returns nil, nil when either nothing is found or the value found doesn't properly validate. +// returns nil, some_error when there's a *datastore* error (i.e., something goes very wrong) +func (dht *IpfsDHT) getRecordFromDatastore(dskey ds.Key) (*recpb.Record, error) { + buf, err := dht.datastore.Get(dskey) + if err == ds.ErrNotFound { + return nil, nil + } + if err != nil { + logger.Errorf("Got error retrieving record with key %s from datastore: %s", dskey, err) + return nil, err + } + rec := new(recpb.Record) + err = proto.Unmarshal(buf, rec) + if err != nil { + // Bad data in datastore, log it but don't return an error, we'll just overwrite it + logger.Errorf("Bad record data stored in datastore with key %s: could not unmarshal record", dskey) + return nil, nil + } + + err = dht.Validator.Validate(string(rec.GetKey()), rec.GetValue()) + if err != nil { + // Invalid record in datastore, probably expired but don't return an error, + // we'll just overwrite it + logger.Debugf("Local record verify failed: %s (discarded)", err) + return nil, nil + } + + return rec, nil +} + +func (dht *IpfsDHT) handlePing(_ context.Context, p peer.ID, pmes *pb.Message) (*pb.Message, error) { + logger.Debugf("%s Responding to ping from %s!\n", dht.self, p) + return pmes, nil +} + +func (dht *IpfsDHT) handleFindPeer(ctx context.Context, p peer.ID, pmes *pb.Message) (_ *pb.Message, _err error) { + ctx = logger.Start(ctx, "handleFindPeer") + defer func() { logger.FinishWithErr(ctx, _err) }() + logger.SetTag(ctx, "peer", p) + resp := pb.NewMessage(pmes.GetType(), nil, pmes.GetClusterLevel()) + var closest []peer.ID + + // if looking for self... special case where we send it on CloserPeers. + targetPid := peer.ID(pmes.GetKey()) + if targetPid == dht.self { + closest = []peer.ID{dht.self} + } else { + closest = dht.betterPeersToQuery(pmes, p, CloserPeerCount) + + // Never tell a peer about itself. + if targetPid != p { + // If we're connected to the target peer, report their + // peer info. This makes FindPeer work even if the + // target peer isn't in our routing table. + // + // Alternatively, we could just check our peerstore. + // However, we don't want to return out of date + // information. We can change this in the future when we + // add a progressive, asynchronous `SearchPeer` function + // and improve peer routing in the host. + switch dht.host.Network().Connectedness(targetPid) { + case inet.Connected, inet.CanConnect: + closest = append(closest, targetPid) + } + } + } + + if closest == nil { + logger.Infof("%s handleFindPeer %s: could not find anything.", dht.self, p) + return resp, nil + } + + closestinfos := pstore.PeerInfos(dht.peerstore, closest) + // possibly an over-allocation but this array is temporary anyways. + withAddresses := make([]pstore.PeerInfo, 0, len(closestinfos)) + for _, pi := range closestinfos { + if len(pi.Addrs) > 0 { + withAddresses = append(withAddresses, pi) + } + } + + resp.CloserPeers = pb.PeerInfosToPBPeers(dht.host.Network(), withAddresses) + return resp, nil +} + +func (dht *IpfsDHT) handleGetProviders(ctx context.Context, p peer.ID, pmes *pb.Message) (_ *pb.Message, _err error) { + ctx = logger.Start(ctx, "handleGetProviders") + defer func() { logger.FinishWithErr(ctx, _err) }() + logger.SetTag(ctx, "peer", p) + + resp := pb.NewMessage(pmes.GetType(), pmes.GetKey(), pmes.GetClusterLevel()) + c, err := cid.Cast([]byte(pmes.GetKey())) + if err != nil { + return nil, err + } + logger.SetTag(ctx, "key", c) + + // debug logging niceness. + reqDesc := fmt.Sprintf("%s handleGetProviders(%s, %s): ", dht.self, p, c) + logger.Debugf("%s begin", reqDesc) + defer logger.Debugf("%s end", reqDesc) + + // check if we have this value, to add ourselves as provider. + has, err := dht.datastore.Has(convertToDsKey(c.Bytes())) + if err != nil && err != ds.ErrNotFound { + logger.Debugf("unexpected datastore error: %v\n", err) + has = false + } + + // setup providers + providers := dht.providers.GetProviders(ctx, c) + if has { + providers = append(providers, dht.self) + logger.Debugf("%s have the value. added self as provider", reqDesc) + } + + if len(providers) > 0 { + infos := pstore.PeerInfos(dht.peerstore, providers) + resp.ProviderPeers = pb.PeerInfosToPBPeers(dht.host.Network(), infos) + logger.Debugf("%s have %d providers: %s", reqDesc, len(providers), infos) + } + + // Also send closer peers. + closer := dht.betterPeersToQuery(pmes, p, CloserPeerCount) + if closer != nil { + infos := pstore.PeerInfos(dht.peerstore, closer) + resp.CloserPeers = pb.PeerInfosToPBPeers(dht.host.Network(), infos) + logger.Debugf("%s have %d closer peers: %s", reqDesc, len(closer), infos) + } + + return resp, nil +} + +func (dht *IpfsDHT) handleAddProvider(ctx context.Context, p peer.ID, pmes *pb.Message) (_ *pb.Message, _err error) { + ctx = logger.Start(ctx, "handleAddProvider") + defer func() { logger.FinishWithErr(ctx, _err) }() + logger.SetTag(ctx, "peer", p) + + c, err := cid.Cast([]byte(pmes.GetKey())) + if err != nil { + return nil, err + } + logger.SetTag(ctx, "key", c) + + logger.Debugf("%s adding %s as a provider for '%s'\n", dht.self, p, c) + + // add provider should use the address given in the message + pinfos := pb.PBPeersToPeerInfos(pmes.GetProviderPeers()) + for _, pi := range pinfos { + if pi.ID != p { + // we should ignore this provider record! not from originator. + // (we should sign them and check signature later...) + logger.Debugf("handleAddProvider received provider %s from %s. Ignore.", pi.ID, p) + continue + } + + if len(pi.Addrs) < 1 { + logger.Debugf("%s got no valid addresses for provider %s. Ignore.", dht.self, p) + continue + } + + logger.Debugf("received provider %s for %s (addrs: %s)", p, c, pi.Addrs) + if pi.ID != dht.self { // don't add own addrs. + // add the received addresses to our peerstore. + dht.peerstore.AddAddrs(pi.ID, pi.Addrs, pstore.ProviderAddrTTL) + } + dht.providers.AddProvider(ctx, c, p) + } + + return nil, nil +} + +func convertToDsKey(s []byte) ds.Key { + return ds.NewKey(base32.RawStdEncoding.EncodeToString(s)) +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/lookup.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/lookup.go new file mode 100644 index 00000000..9d482292 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/lookup.go @@ -0,0 +1,114 @@ +package dht + +import ( + "context" + "fmt" + "strings" + + cid "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + pb "github.com/libp2p/go-libp2p-kad-dht/pb" + kb "github.com/libp2p/go-libp2p-kbucket" + peer "github.com/libp2p/go-libp2p-peer" + notif "github.com/libp2p/go-libp2p-routing/notifications" +) + +func tryFormatLoggableKey(k string) (string, error) { + if len(k) == 0 { + return "", fmt.Errorf("loggableKey is empty") + } + var proto, cstr string + if k[0] == '/' { + // it's a path (probably) + protoEnd := strings.IndexByte(k[1:], '/') + if protoEnd < 0 { + return k, fmt.Errorf("loggableKey starts with '/' but is not a path: %x", k) + } + proto = k[1 : protoEnd+1] + cstr = k[protoEnd+2:] + } else { + proto = "provider" + cstr = k + } + + c, err := cid.Cast([]byte(cstr)) + if err != nil { + return "", fmt.Errorf("loggableKey could not cast key to a CID: %x %v", k, err) + } + return fmt.Sprintf("/%s/%s", proto, c.String()), nil +} + +func loggableKey(k string) logging.LoggableMap { + newKey, err := tryFormatLoggableKey(k) + if err != nil { + logger.Debug(err) + } else { + k = newKey + } + + return logging.LoggableMap{ + "key": k, + } +} + +// Kademlia 'node lookup' operation. Returns a channel of the K closest peers +// to the given key +func (dht *IpfsDHT) GetClosestPeers(ctx context.Context, key string) (<-chan peer.ID, error) { + e := logger.EventBegin(ctx, "getClosestPeers", loggableKey(key)) + tablepeers := dht.routingTable.NearestPeers(kb.ConvertKey(key), AlphaValue) + if len(tablepeers) == 0 { + return nil, kb.ErrLookupFailure + } + + out := make(chan peer.ID, KValue) + + // since the query doesnt actually pass our context down + // we have to hack this here. whyrusleeping isnt a huge fan of goprocess + parent := ctx + query := dht.newQuery(key, func(ctx context.Context, p peer.ID) (*dhtQueryResult, error) { + // For DHT query command + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.SendingQuery, + ID: p, + }) + + pmes, err := dht.findPeerSingle(ctx, p, peer.ID(key)) + if err != nil { + logger.Debugf("error getting closer peers: %s", err) + return nil, err + } + peers := pb.PBPeersToPeerInfos(pmes.GetCloserPeers()) + + // For DHT query command + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.PeerResponse, + ID: p, + Responses: peers, + }) + + return &dhtQueryResult{closerPeers: peers}, nil + }) + + go func() { + defer close(out) + defer e.Done() + // run it! + res, err := query.Run(ctx, tablepeers) + if err != nil { + logger.Debugf("closestPeers query run error: %s", err) + } + + if res != nil && res.queriedSet != nil { + sorted := kb.SortClosestPeers(res.queriedSet.Peers(), kb.ConvertKey(key)) + if len(sorted) > KValue { + sorted = sorted[:KValue] + } + + for _, p := range sorted { + out <- p + } + } + }() + + return out, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/metrics/metrics.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/metrics/metrics.go new file mode 100644 index 00000000..da07e701 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/metrics/metrics.go @@ -0,0 +1,96 @@ +package metrics + +import ( + pb "github.com/libp2p/go-libp2p-kad-dht/pb" + "go.opencensus.io/stats" + "go.opencensus.io/stats/view" + "go.opencensus.io/tag" +) + +var ( + defaultBytesDistribution = view.Distribution(1024, 2048, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824, 4294967296) + defaultMillisecondsDistribution = view.Distribution(0.01, 0.05, 0.1, 0.3, 0.6, 0.8, 1, 2, 3, 4, 5, 6, 8, 10, 13, 16, 20, 25, 30, 40, 50, 65, 80, 100, 130, 160, 200, 250, 300, 400, 500, 650, 800, 1000, 2000, 5000, 10000, 20000, 50000, 100000) +) + +// Keys +var ( + KeyMessageType, _ = tag.NewKey("message_type") + KeyPeerID, _ = tag.NewKey("peer_id") + // KeyInstanceID identifies a dht instance by the pointer address. + // Useful for differentiating between different dhts that have the same peer id. + KeyInstanceID, _ = tag.NewKey("instance_id") +) + +// UpsertMessageType is a convenience upserts the message type +// of a pb.Message into the KeyMessageType. +func UpsertMessageType(m *pb.Message) tag.Mutator { + return tag.Upsert(KeyMessageType, m.Type.String()) +} + +// Measures +var ( + ReceivedMessages = stats.Int64("libp2p.io/dht/kad/received_messages", "Total number of messages received per RPC", stats.UnitDimensionless) + ReceivedMessageErrors = stats.Int64("libp2p.io/dht/kad/received_message_errors", "Total number of errors for messages received per RPC", stats.UnitDimensionless) + ReceivedBytes = stats.Int64("libp2p.io/dht/kad/received_bytes", "Total received bytes per RPC", stats.UnitBytes) + InboundRequestLatency = stats.Float64("libp2p.io/dht/kad/inbound_request_latency", "Latency per RPC", stats.UnitMilliseconds) + OutboundRequestLatency = stats.Float64("libp2p.io/dht/kad/outbound_request_latency", "Latency per RPC", stats.UnitMilliseconds) + SentMessages = stats.Int64("libp2p.io/dht/kad/sent_messages", "Total number of messages sent per RPC", stats.UnitDimensionless) + SentMessageErrors = stats.Int64("libp2p.io/dht/kad/sent_message_errors", "Total number of errors for messages sent per RPC", stats.UnitDimensionless) + SentRequests = stats.Int64("libp2p.io/dht/kad/sent_requests", "Total number of requests sent per RPC", stats.UnitDimensionless) + SentRequestErrors = stats.Int64("libp2p.io/dht/kad/sent_request_errors", "Total number of errors for requests sent per RPC", stats.UnitDimensionless) + SentBytes = stats.Int64("libp2p.io/dht/kad/sent_bytes", "Total sent bytes per RPC", stats.UnitBytes) +) + +// Views +var ( + ReceivedMessagesView = &view.View{ + Measure: ReceivedMessages, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: view.Count(), + } + ReceivedMessageErrorsView = &view.View{ + Measure: ReceivedMessageErrors, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: view.Count(), + } + ReceivedBytesView = &view.View{ + Measure: ReceivedBytes, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: defaultBytesDistribution, + } + InboundRequestLatencyView = &view.View{ + Measure: InboundRequestLatency, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: defaultMillisecondsDistribution, + } + OutboundRequestLatencyView = &view.View{ + Measure: OutboundRequestLatency, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: defaultMillisecondsDistribution, + } + SentMessagesView = &view.View{ + Measure: SentMessages, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: view.Count(), + } + SentMessageErrorsView = &view.View{ + Measure: SentMessageErrors, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: view.Count(), + } + SentRequestsView = &view.View{ + Measure: SentRequests, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: view.Count(), + } + SentRequestErrorsView = &view.View{ + Measure: SentRequestErrors, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: view.Count(), + } + SentBytesView = &view.View{ + Measure: SentBytes, + TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID}, + Aggregation: defaultBytesDistribution, + } +) diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_posix.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_posix.go new file mode 100644 index 00000000..efd1b383 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_posix.go @@ -0,0 +1,12 @@ +// +build !windows,!wasm + +package dht + +import "syscall" + +func curFileLimit() uint64 { + var n syscall.Rlimit + syscall.Getrlimit(syscall.RLIMIT_NOFILE, &n) + // cast because some platforms use int64 (e.g., freebsd) + return uint64(n.Cur) +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_windows.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_windows.go new file mode 100644 index 00000000..888aec0c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/nofile_test_windows.go @@ -0,0 +1,5 @@ +package dht + +func curFileLimit() uint64 { + return 16 * 1024 * 1024 +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/notif.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/notif.go new file mode 100644 index 00000000..fbcb073b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/notif.go @@ -0,0 +1,116 @@ +package dht + +import ( + inet "github.com/libp2p/go-libp2p-net" + ma "github.com/multiformats/go-multiaddr" + mstream "github.com/multiformats/go-multistream" +) + +// netNotifiee defines methods to be used with the IpfsDHT +type netNotifiee IpfsDHT + +func (nn *netNotifiee) DHT() *IpfsDHT { + return (*IpfsDHT)(nn) +} + +func (nn *netNotifiee) Connected(n inet.Network, v inet.Conn) { + dht := nn.DHT() + select { + case <-dht.Process().Closing(): + return + default: + } + + p := v.RemotePeer() + protos, err := dht.peerstore.SupportsProtocols(p, dht.protocolStrs()...) + if err == nil && len(protos) != 0 { + // We lock here for consistency with the lock in testConnection. + // This probably isn't necessary because (dis)connect + // notifications are serialized but it's nice to be consistent. + dht.plk.Lock() + defer dht.plk.Unlock() + if dht.host.Network().Connectedness(p) == inet.Connected { + dht.Update(dht.Context(), p) + } + return + } + + // Note: Unfortunately, the peerstore may not yet know that this peer is + // a DHT server. So, if it didn't return a positive response above, test + // manually. + go nn.testConnection(v) +} + +func (nn *netNotifiee) testConnection(v inet.Conn) { + dht := nn.DHT() + p := v.RemotePeer() + + // Forcibly use *this* connection. Otherwise, if we have two connections, we could: + // 1. Test it twice. + // 2. Have it closed from under us leaving the second (open) connection untested. + s, err := v.NewStream() + if err != nil { + // Connection error + return + } + defer inet.FullClose(s) + + selected, err := mstream.SelectOneOf(dht.protocolStrs(), s) + if err != nil { + // Doesn't support the protocol + return + } + // Remember this choice (makes subsequent negotiations faster) + dht.peerstore.AddProtocols(p, selected) + + // We lock here as we race with disconnect. If we didn't lock, we could + // finish processing a connect after handling the associated disconnect + // event and add the peer to the routing table after removing it. + dht.plk.Lock() + defer dht.plk.Unlock() + if dht.host.Network().Connectedness(p) == inet.Connected { + dht.Update(dht.Context(), p) + } +} + +func (nn *netNotifiee) Disconnected(n inet.Network, v inet.Conn) { + dht := nn.DHT() + select { + case <-dht.Process().Closing(): + return + default: + } + + p := v.RemotePeer() + + // Lock and check to see if we're still connected. We lock to make sure + // we don't concurrently process a connect event. + dht.plk.Lock() + defer dht.plk.Unlock() + if dht.host.Network().Connectedness(p) == inet.Connected { + // We're still connected. + return + } + + dht.routingTable.Remove(p) + + dht.smlk.Lock() + defer dht.smlk.Unlock() + ms, ok := dht.strmap[p] + if !ok { + return + } + delete(dht.strmap, p) + + // Do this asynchronously as ms.lk can block for a while. + go func() { + ms.lk.Lock() + defer ms.lk.Unlock() + ms.invalidate() + }() +} + +func (nn *netNotifiee) OpenedStream(n inet.Network, v inet.Stream) {} +func (nn *netNotifiee) ClosedStream(n inet.Network, v inet.Stream) {} +func (nn *netNotifiee) Listen(n inet.Network, a ma.Multiaddr) {} +func (nn *netNotifiee) ListenClose(n inet.Network, a ma.Multiaddr) {} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/opts/options.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/opts/options.go new file mode 100644 index 00000000..fc73da8b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/opts/options.go @@ -0,0 +1,109 @@ +package dhtopts + +import ( + "fmt" + + ds "github.com/ipfs/go-datastore" + dssync "github.com/ipfs/go-datastore/sync" + protocol "github.com/libp2p/go-libp2p-protocol" + record "github.com/libp2p/go-libp2p-record" +) + +// Deprecated: The old format did not support more than one message per stream, and is not supported +// or relevant with stream pooling. ProtocolDHT should be used instead. +const ProtocolDHTOld protocol.ID = "/ipfs/dht" + +var ( + ProtocolDHT protocol.ID = "/ipfs/kad/1.0.0" + DefaultProtocols = []protocol.ID{ProtocolDHT} +) + +// Options is a structure containing all the options that can be used when constructing a DHT. +type Options struct { + Datastore ds.Batching + Validator record.Validator + Client bool + Protocols []protocol.ID +} + +// Apply applies the given options to this Option +func (o *Options) Apply(opts ...Option) error { + for i, opt := range opts { + if err := opt(o); err != nil { + return fmt.Errorf("dht option %d failed: %s", i, err) + } + } + return nil +} + +// Option DHT option type. +type Option func(*Options) error + +// Defaults are the default DHT options. This option will be automatically +// prepended to any options you pass to the DHT constructor. +var Defaults = func(o *Options) error { + o.Validator = record.NamespacedValidator{ + "pk": record.PublicKeyValidator{}, + } + o.Datastore = dssync.MutexWrap(ds.NewMapDatastore()) + o.Protocols = DefaultProtocols + return nil +} + +// Datastore configures the DHT to use the specified datastore. +// +// Defaults to an in-memory (temporary) map. +func Datastore(ds ds.Batching) Option { + return func(o *Options) error { + o.Datastore = ds + return nil + } +} + +// Client configures whether or not the DHT operates in client-only mode. +// +// Defaults to false. +func Client(only bool) Option { + return func(o *Options) error { + o.Client = only + return nil + } +} + +// Validator configures the DHT to use the specified validator. +// +// Defaults to a namespaced validator that can only validate public keys. +func Validator(v record.Validator) Option { + return func(o *Options) error { + o.Validator = v + return nil + } +} + +// NamespacedValidator adds a validator namespaced under `ns`. This option fails +// if the DHT is not using a `record.NamespacedValidator` as it's validator (it +// uses one by default but this can be overridden with the `Validator` option). +// +// Example: Given a validator registered as `NamespacedValidator("ipns", +// myValidator)`, all records with keys starting with `/ipns/` will be validated +// with `myValidator`. +func NamespacedValidator(ns string, v record.Validator) Option { + return func(o *Options) error { + nsval, ok := o.Validator.(record.NamespacedValidator) + if !ok { + return fmt.Errorf("can only add namespaced validators to a NamespacedValidator") + } + nsval[ns] = v + return nil + } +} + +// Protocols sets the protocols for the DHT +// +// Defaults to dht.DefaultProtocols +func Protocols(protocols ...protocol.ID) Option { + return func(o *Options) error { + o.Protocols = protocols + return nil + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/Makefile new file mode 100644 index 00000000..eb14b576 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofast_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.pb.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.pb.go new file mode 100644 index 00000000..eb59b73c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.pb.go @@ -0,0 +1,976 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: dht.proto + +package dht_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + pb "github.com/libp2p/go-libp2p-record/pb" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Message_MessageType int32 + +const ( + Message_PUT_VALUE Message_MessageType = 0 + Message_GET_VALUE Message_MessageType = 1 + Message_ADD_PROVIDER Message_MessageType = 2 + Message_GET_PROVIDERS Message_MessageType = 3 + Message_FIND_NODE Message_MessageType = 4 + Message_PING Message_MessageType = 5 +) + +var Message_MessageType_name = map[int32]string{ + 0: "PUT_VALUE", + 1: "GET_VALUE", + 2: "ADD_PROVIDER", + 3: "GET_PROVIDERS", + 4: "FIND_NODE", + 5: "PING", +} + +var Message_MessageType_value = map[string]int32{ + "PUT_VALUE": 0, + "GET_VALUE": 1, + "ADD_PROVIDER": 2, + "GET_PROVIDERS": 3, + "FIND_NODE": 4, + "PING": 5, +} + +func (x Message_MessageType) String() string { + return proto.EnumName(Message_MessageType_name, int32(x)) +} + +func (Message_MessageType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_616a434b24c97ff4, []int{0, 0} +} + +type Message_ConnectionType int32 + +const ( + // sender does not have a connection to peer, and no extra information (default) + Message_NOT_CONNECTED Message_ConnectionType = 0 + // sender has a live connection to peer + Message_CONNECTED Message_ConnectionType = 1 + // sender recently connected to peer + Message_CAN_CONNECT Message_ConnectionType = 2 + // sender recently tried to connect to peer repeatedly but failed to connect + // ("try" here is loose, but this should signal "made strong effort, failed") + Message_CANNOT_CONNECT Message_ConnectionType = 3 +) + +var Message_ConnectionType_name = map[int32]string{ + 0: "NOT_CONNECTED", + 1: "CONNECTED", + 2: "CAN_CONNECT", + 3: "CANNOT_CONNECT", +} + +var Message_ConnectionType_value = map[string]int32{ + "NOT_CONNECTED": 0, + "CONNECTED": 1, + "CAN_CONNECT": 2, + "CANNOT_CONNECT": 3, +} + +func (x Message_ConnectionType) String() string { + return proto.EnumName(Message_ConnectionType_name, int32(x)) +} + +func (Message_ConnectionType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_616a434b24c97ff4, []int{0, 1} +} + +type Message struct { + // defines what type of message it is. + Type Message_MessageType `protobuf:"varint,1,opt,name=type,proto3,enum=dht.pb.Message_MessageType" json:"type,omitempty"` + // defines what coral cluster level this query/response belongs to. + // in case we want to implement coral's cluster rings in the future. + ClusterLevelRaw int32 `protobuf:"varint,10,opt,name=clusterLevelRaw,proto3" json:"clusterLevelRaw,omitempty"` + // Used to specify the key associated with this message. + // PUT_VALUE, GET_VALUE, ADD_PROVIDER, GET_PROVIDERS + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + // Used to return a value + // PUT_VALUE, GET_VALUE + Record *pb.Record `protobuf:"bytes,3,opt,name=record,proto3" json:"record,omitempty"` + // Used to return peers closer to a key in a query + // GET_VALUE, GET_PROVIDERS, FIND_NODE + CloserPeers []*Message_Peer `protobuf:"bytes,8,rep,name=closerPeers,proto3" json:"closerPeers,omitempty"` + // Used to return Providers + // GET_VALUE, ADD_PROVIDER, GET_PROVIDERS + ProviderPeers []*Message_Peer `protobuf:"bytes,9,rep,name=providerPeers,proto3" json:"providerPeers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { + return fileDescriptor_616a434b24c97ff4, []int{0} +} +func (m *Message) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message.Merge(m, src) +} +func (m *Message) XXX_Size() int { + return m.Size() +} +func (m *Message) XXX_DiscardUnknown() { + xxx_messageInfo_Message.DiscardUnknown(m) +} + +var xxx_messageInfo_Message proto.InternalMessageInfo + +func (m *Message) GetType() Message_MessageType { + if m != nil { + return m.Type + } + return Message_PUT_VALUE +} + +func (m *Message) GetClusterLevelRaw() int32 { + if m != nil { + return m.ClusterLevelRaw + } + return 0 +} + +func (m *Message) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *Message) GetRecord() *pb.Record { + if m != nil { + return m.Record + } + return nil +} + +func (m *Message) GetCloserPeers() []*Message_Peer { + if m != nil { + return m.CloserPeers + } + return nil +} + +func (m *Message) GetProviderPeers() []*Message_Peer { + if m != nil { + return m.ProviderPeers + } + return nil +} + +type Message_Peer struct { + // ID of a given peer. + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // multiaddrs for a given peer + Addrs [][]byte `protobuf:"bytes,2,rep,name=addrs,proto3" json:"addrs,omitempty"` + // used to signal the sender's connection capabilities to the peer + Connection Message_ConnectionType `protobuf:"varint,3,opt,name=connection,proto3,enum=dht.pb.Message_ConnectionType" json:"connection,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message_Peer) Reset() { *m = Message_Peer{} } +func (m *Message_Peer) String() string { return proto.CompactTextString(m) } +func (*Message_Peer) ProtoMessage() {} +func (*Message_Peer) Descriptor() ([]byte, []int) { + return fileDescriptor_616a434b24c97ff4, []int{0, 0} +} +func (m *Message_Peer) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message_Peer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message_Peer.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message_Peer) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message_Peer.Merge(m, src) +} +func (m *Message_Peer) XXX_Size() int { + return m.Size() +} +func (m *Message_Peer) XXX_DiscardUnknown() { + xxx_messageInfo_Message_Peer.DiscardUnknown(m) +} + +var xxx_messageInfo_Message_Peer proto.InternalMessageInfo + +func (m *Message_Peer) GetId() []byte { + if m != nil { + return m.Id + } + return nil +} + +func (m *Message_Peer) GetAddrs() [][]byte { + if m != nil { + return m.Addrs + } + return nil +} + +func (m *Message_Peer) GetConnection() Message_ConnectionType { + if m != nil { + return m.Connection + } + return Message_NOT_CONNECTED +} + +func init() { + proto.RegisterEnum("dht.pb.Message_MessageType", Message_MessageType_name, Message_MessageType_value) + proto.RegisterEnum("dht.pb.Message_ConnectionType", Message_ConnectionType_name, Message_ConnectionType_value) + proto.RegisterType((*Message)(nil), "dht.pb.Message") + proto.RegisterType((*Message_Peer)(nil), "dht.pb.Message.Peer") +} + +func init() { proto.RegisterFile("dht.proto", fileDescriptor_616a434b24c97ff4) } + +var fileDescriptor_616a434b24c97ff4 = []byte{ + // 428 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xc1, 0x6e, 0x9b, 0x40, + 0x10, 0xed, 0x02, 0x76, 0xe3, 0x01, 0x93, 0xcd, 0x28, 0x07, 0x94, 0x4a, 0x16, 0xf2, 0x89, 0x1e, + 0x02, 0x12, 0x95, 0x7a, 0xe8, 0xa1, 0x92, 0x0b, 0x34, 0xb2, 0x94, 0x62, 0x6b, 0xeb, 0xa4, 0x47, + 0xcb, 0xc0, 0xca, 0x41, 0xa5, 0x5e, 0x04, 0x24, 0x95, 0xbf, 0xb0, 0x3d, 0xf6, 0x13, 0x2a, 0x7f, + 0x49, 0x05, 0x84, 0x16, 0xfb, 0xd0, 0xd3, 0xbe, 0x37, 0xf3, 0xde, 0xce, 0xdb, 0xd1, 0xc2, 0x28, + 0x79, 0xa8, 0xec, 0xbc, 0x10, 0x95, 0xc0, 0x61, 0x03, 0xa3, 0x2b, 0x77, 0x9b, 0x56, 0x0f, 0x8f, + 0x91, 0x1d, 0x8b, 0x6f, 0x4e, 0x96, 0x46, 0xb9, 0x9b, 0x3b, 0x5b, 0x71, 0xdd, 0xa2, 0xeb, 0x82, + 0xc7, 0xa2, 0x48, 0x9c, 0x3c, 0x72, 0x5a, 0xd4, 0x7a, 0xa7, 0x3f, 0x14, 0x78, 0xf9, 0x89, 0x97, + 0xe5, 0x66, 0xcb, 0xd1, 0x01, 0xa5, 0xda, 0xe7, 0xdc, 0x20, 0x26, 0xb1, 0x74, 0xf7, 0x95, 0xdd, + 0x5e, 0x6b, 0x3f, 0xb7, 0xbb, 0x73, 0xb5, 0xcf, 0x39, 0x6b, 0x84, 0x68, 0xc1, 0x79, 0x9c, 0x3d, + 0x96, 0x15, 0x2f, 0x6e, 0xf9, 0x13, 0xcf, 0xd8, 0xe6, 0xbb, 0x01, 0x26, 0xb1, 0x06, 0xec, 0xb4, + 0x8c, 0x14, 0xe4, 0xaf, 0x7c, 0x6f, 0x48, 0x26, 0xb1, 0x34, 0x56, 0x43, 0x7c, 0x0d, 0xc3, 0x36, + 0x88, 0x21, 0x9b, 0xc4, 0x52, 0xdd, 0x0b, 0xbb, 0xcb, 0x15, 0xd9, 0xac, 0x41, 0xec, 0x59, 0x80, + 0x6f, 0x41, 0x8d, 0x33, 0x51, 0xf2, 0x62, 0xc9, 0x79, 0x51, 0x1a, 0x67, 0xa6, 0x6c, 0xa9, 0xee, + 0xe5, 0x69, 0xbc, 0xba, 0xc9, 0xfa, 0x42, 0x7c, 0x07, 0xe3, 0xbc, 0x10, 0x4f, 0x69, 0xd2, 0x39, + 0x47, 0xff, 0x71, 0x1e, 0x4b, 0xaf, 0x32, 0x50, 0x6a, 0x80, 0x3a, 0x48, 0x69, 0xd2, 0x6c, 0x44, + 0x63, 0x52, 0x9a, 0xe0, 0x25, 0x0c, 0x36, 0x49, 0x52, 0x94, 0x86, 0x64, 0xca, 0x96, 0xc6, 0x5a, + 0x82, 0xef, 0x01, 0x62, 0xb1, 0xdb, 0xf1, 0xb8, 0x4a, 0xc5, 0xae, 0x79, 0x90, 0xee, 0x4e, 0x4e, + 0xc7, 0x78, 0x7f, 0x15, 0xcd, 0x0a, 0x7b, 0x8e, 0x69, 0x0a, 0x6a, 0x6f, 0xbb, 0x38, 0x86, 0xd1, + 0xf2, 0x6e, 0xb5, 0xbe, 0x9f, 0xdd, 0xde, 0x05, 0xf4, 0x45, 0x4d, 0x6f, 0x82, 0x8e, 0x12, 0xa4, + 0xa0, 0xcd, 0x7c, 0x7f, 0xbd, 0x64, 0x8b, 0xfb, 0xb9, 0x1f, 0x30, 0x2a, 0xe1, 0x05, 0x8c, 0x6b, + 0x41, 0x57, 0xf9, 0x4c, 0xe5, 0xda, 0xf3, 0x71, 0x1e, 0xfa, 0xeb, 0x70, 0xe1, 0x07, 0x54, 0xc1, + 0x33, 0x50, 0x96, 0xf3, 0xf0, 0x86, 0x0e, 0xa6, 0x5f, 0x40, 0x3f, 0x0e, 0x52, 0xbb, 0xc3, 0xc5, + 0x6a, 0xed, 0x2d, 0xc2, 0x30, 0xf0, 0x56, 0x81, 0xdf, 0x4e, 0xfc, 0x47, 0x09, 0x9e, 0x83, 0xea, + 0xcd, 0xc2, 0x4e, 0x41, 0x25, 0x44, 0xd0, 0xbd, 0x59, 0xd8, 0x73, 0x51, 0xf9, 0x83, 0xf6, 0xf3, + 0x30, 0x21, 0xbf, 0x0e, 0x13, 0xf2, 0xfb, 0x30, 0x21, 0xd1, 0xb0, 0xf9, 0x5e, 0x6f, 0xfe, 0x04, + 0x00, 0x00, 0xff, 0xff, 0xf4, 0x3c, 0x3f, 0x3f, 0xa7, 0x02, 0x00, 0x00, +} + +func (m *Message) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Type != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintDht(dAtA, i, uint64(m.Type)) + } + if len(m.Key) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintDht(dAtA, i, uint64(len(m.Key))) + i += copy(dAtA[i:], m.Key) + } + if m.Record != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintDht(dAtA, i, uint64(m.Record.Size())) + n1, err := m.Record.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if len(m.CloserPeers) > 0 { + for _, msg := range m.CloserPeers { + dAtA[i] = 0x42 + i++ + i = encodeVarintDht(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.ProviderPeers) > 0 { + for _, msg := range m.ProviderPeers { + dAtA[i] = 0x4a + i++ + i = encodeVarintDht(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.ClusterLevelRaw != 0 { + dAtA[i] = 0x50 + i++ + i = encodeVarintDht(dAtA, i, uint64(m.ClusterLevelRaw)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Message_Peer) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message_Peer) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Id) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintDht(dAtA, i, uint64(len(m.Id))) + i += copy(dAtA[i:], m.Id) + } + if len(m.Addrs) > 0 { + for _, b := range m.Addrs { + dAtA[i] = 0x12 + i++ + i = encodeVarintDht(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if m.Connection != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintDht(dAtA, i, uint64(m.Connection)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintDht(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Message) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovDht(uint64(m.Type)) + } + l = len(m.Key) + if l > 0 { + n += 1 + l + sovDht(uint64(l)) + } + if m.Record != nil { + l = m.Record.Size() + n += 1 + l + sovDht(uint64(l)) + } + if len(m.CloserPeers) > 0 { + for _, e := range m.CloserPeers { + l = e.Size() + n += 1 + l + sovDht(uint64(l)) + } + } + if len(m.ProviderPeers) > 0 { + for _, e := range m.ProviderPeers { + l = e.Size() + n += 1 + l + sovDht(uint64(l)) + } + } + if m.ClusterLevelRaw != 0 { + n += 1 + sovDht(uint64(m.ClusterLevelRaw)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Message_Peer) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) + if l > 0 { + n += 1 + l + sovDht(uint64(l)) + } + if len(m.Addrs) > 0 { + for _, b := range m.Addrs { + l = len(b) + n += 1 + l + sovDht(uint64(l)) + } + } + if m.Connection != 0 { + n += 1 + sovDht(uint64(m.Connection)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovDht(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozDht(x uint64) (n int) { + return sovDht(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Message: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Message: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= Message_MessageType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDht + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDht + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Record", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDht + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDht + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Record == nil { + m.Record = &pb.Record{} + } + if err := m.Record.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CloserPeers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDht + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDht + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CloserPeers = append(m.CloserPeers, &Message_Peer{}) + if err := m.CloserPeers[len(m.CloserPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderPeers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDht + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDht + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProviderPeers = append(m.ProviderPeers, &Message_Peer{}) + if err := m.ProviderPeers[len(m.ProviderPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterLevelRaw", wireType) + } + m.ClusterLevelRaw = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterLevelRaw |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDht(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthDht + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthDht + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message_Peer) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Peer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Peer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDht + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDht + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = append(m.Id[:0], dAtA[iNdEx:postIndex]...) + if m.Id == nil { + m.Id = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addrs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDht + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDht + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addrs = append(m.Addrs, make([]byte, postIndex-iNdEx)) + copy(m.Addrs[len(m.Addrs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Connection", wireType) + } + m.Connection = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDht + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Connection |= Message_ConnectionType(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDht(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthDht + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthDht + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipDht(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDht + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDht + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDht + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthDht + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthDht + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDht + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipDht(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthDht + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthDht = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowDht = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.proto b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.proto new file mode 100644 index 00000000..4d2d1fd2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/dht.proto @@ -0,0 +1,71 @@ +// In order to re-generate the golang packages for `Message` you will need... +// 1. Protobuf binary (tested with protoc 3.0.0). - https://github.com/gogo/protobuf/releases +// 2. Gogo Protobuf (tested with gogo 0.3). - https://github.com/gogo/protobuf +// 3. To have cloned `libp2p/go-libp2p-{record,kad-dht}` under the same directory. +// Now from `libp2p/go-libp2p-kad-dht/pb` you can run... +// `protoc --gogo_out=. --proto_path=../../go-libp2p-record/pb/ --proto_path=./ dht.proto` + +syntax = "proto3"; +package dht.pb; + +import "github.com/libp2p/go-libp2p-record/pb/record.proto"; + +message Message { + enum MessageType { + PUT_VALUE = 0; + GET_VALUE = 1; + ADD_PROVIDER = 2; + GET_PROVIDERS = 3; + FIND_NODE = 4; + PING = 5; + } + + enum ConnectionType { + // sender does not have a connection to peer, and no extra information (default) + NOT_CONNECTED = 0; + + // sender has a live connection to peer + CONNECTED = 1; + + // sender recently connected to peer + CAN_CONNECT = 2; + + // sender recently tried to connect to peer repeatedly but failed to connect + // ("try" here is loose, but this should signal "made strong effort, failed") + CANNOT_CONNECT = 3; + } + + message Peer { + // ID of a given peer. + bytes id = 1; + + // multiaddrs for a given peer + repeated bytes addrs = 2; + + // used to signal the sender's connection capabilities to the peer + ConnectionType connection = 3; + } + + // defines what type of message it is. + MessageType type = 1; + + // defines what coral cluster level this query/response belongs to. + // in case we want to implement coral's cluster rings in the future. + int32 clusterLevelRaw = 10; + + // Used to specify the key associated with this message. + // PUT_VALUE, GET_VALUE, ADD_PROVIDER, GET_PROVIDERS + bytes key = 2; + + // Used to return a value + // PUT_VALUE, GET_VALUE + record.pb.Record record = 3; + + // Used to return peers closer to a key in a query + // GET_VALUE, GET_PROVIDERS, FIND_NODE + repeated Peer closerPeers = 8; + + // Used to return Providers + // GET_VALUE, ADD_PROVIDER, GET_PROVIDERS + repeated Peer providerPeers = 9; +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/message.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/message.go new file mode 100644 index 00000000..a2a41254 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/pb/message.go @@ -0,0 +1,183 @@ +package dht_pb + +import ( + logging "github.com/ipfs/go-log" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + b58 "github.com/mr-tron/base58/base58" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("dht.pb") + +type PeerRoutingInfo struct { + pstore.PeerInfo + inet.Connectedness +} + +// NewMessage constructs a new dht message with given type, key, and level +func NewMessage(typ Message_MessageType, key []byte, level int) *Message { + m := &Message{ + Type: typ, + Key: key, + } + m.SetClusterLevel(level) + return m +} + +func peerRoutingInfoToPBPeer(p PeerRoutingInfo) *Message_Peer { + pbp := new(Message_Peer) + + pbp.Addrs = make([][]byte, len(p.Addrs)) + for i, maddr := range p.Addrs { + pbp.Addrs[i] = maddr.Bytes() // Bytes, not String. Compressed. + } + s := string(p.ID) + pbp.Id = []byte(s) + c := ConnectionType(p.Connectedness) + pbp.Connection = c + return pbp +} + +func peerInfoToPBPeer(p pstore.PeerInfo) *Message_Peer { + pbp := new(Message_Peer) + + pbp.Addrs = make([][]byte, len(p.Addrs)) + for i, maddr := range p.Addrs { + pbp.Addrs[i] = maddr.Bytes() // Bytes, not String. Compressed. + } + pbp.Id = []byte(p.ID) + return pbp +} + +// PBPeerToPeer turns a *Message_Peer into its pstore.PeerInfo counterpart +func PBPeerToPeerInfo(pbp *Message_Peer) *pstore.PeerInfo { + return &pstore.PeerInfo{ + ID: peer.ID(pbp.GetId()), + Addrs: pbp.Addresses(), + } +} + +// RawPeerInfosToPBPeers converts a slice of Peers into a slice of *Message_Peers, +// ready to go out on the wire. +func RawPeerInfosToPBPeers(peers []pstore.PeerInfo) []*Message_Peer { + pbpeers := make([]*Message_Peer, len(peers)) + for i, p := range peers { + pbpeers[i] = peerInfoToPBPeer(p) + } + return pbpeers +} + +// PeersToPBPeers converts given []peer.Peer into a set of []*Message_Peer, +// which can be written to a message and sent out. the key thing this function +// does (in addition to PeersToPBPeers) is set the ConnectionType with +// information from the given inet.Network. +func PeerInfosToPBPeers(n inet.Network, peers []pstore.PeerInfo) []*Message_Peer { + pbps := RawPeerInfosToPBPeers(peers) + for i, pbp := range pbps { + c := ConnectionType(n.Connectedness(peers[i].ID)) + pbp.Connection = c + } + return pbps +} + +func PeerRoutingInfosToPBPeers(peers []PeerRoutingInfo) []*Message_Peer { + pbpeers := make([]*Message_Peer, len(peers)) + for i, p := range peers { + pbpeers[i] = peerRoutingInfoToPBPeer(p) + } + return pbpeers +} + +// PBPeersToPeerInfos converts given []*Message_Peer into []pstore.PeerInfo +// Invalid addresses will be silently omitted. +func PBPeersToPeerInfos(pbps []*Message_Peer) []*pstore.PeerInfo { + peers := make([]*pstore.PeerInfo, 0, len(pbps)) + for _, pbp := range pbps { + peers = append(peers, PBPeerToPeerInfo(pbp)) + } + return peers +} + +// Addresses returns a multiaddr associated with the Message_Peer entry +func (m *Message_Peer) Addresses() []ma.Multiaddr { + if m == nil { + return nil + } + + maddrs := make([]ma.Multiaddr, 0, len(m.Addrs)) + for _, addr := range m.Addrs { + maddr, err := ma.NewMultiaddrBytes(addr) + if err != nil { + log.Warningf("error decoding Multiaddr for peer: %s", m.GetId()) + continue + } + + maddrs = append(maddrs, maddr) + } + return maddrs +} + +// GetClusterLevel gets and adjusts the cluster level on the message. +// a +/- 1 adjustment is needed to distinguish a valid first level (1) and +// default "no value" protobuf behavior (0) +func (m *Message) GetClusterLevel() int { + level := m.GetClusterLevelRaw() - 1 + if level < 0 { + return 0 + } + return int(level) +} + +// SetClusterLevel adjusts and sets the cluster level on the message. +// a +/- 1 adjustment is needed to distinguish a valid first level (1) and +// default "no value" protobuf behavior (0) +func (m *Message) SetClusterLevel(level int) { + lvl := int32(level) + m.ClusterLevelRaw = lvl +} + +// Loggable turns a Message into machine-readable log output +func (m *Message) Loggable() map[string]interface{} { + return map[string]interface{}{ + "message": map[string]string{ + "type": m.Type.String(), + "key": b58.Encode([]byte(m.GetKey())), + }, + } +} + +// ConnectionType returns a Message_ConnectionType associated with the +// inet.Connectedness. +func ConnectionType(c inet.Connectedness) Message_ConnectionType { + switch c { + default: + return Message_NOT_CONNECTED + case inet.NotConnected: + return Message_NOT_CONNECTED + case inet.Connected: + return Message_CONNECTED + case inet.CanConnect: + return Message_CAN_CONNECT + case inet.CannotConnect: + return Message_CANNOT_CONNECT + } +} + +// Connectedness returns an inet.Connectedness associated with the +// Message_ConnectionType. +func Connectedness(c Message_ConnectionType) inet.Connectedness { + switch c { + default: + return inet.NotConnected + case Message_NOT_CONNECTED: + return inet.NotConnected + case Message_CONNECTED: + return inet.Connected + case Message_CAN_CONNECT: + return inet.CanConnect + case Message_CANNOT_CONNECT: + return inet.CannotConnect + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/providers/providers.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/providers/providers.go new file mode 100644 index 00000000..fd696c30 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/providers/providers.go @@ -0,0 +1,350 @@ +package providers + +import ( + "context" + "encoding/binary" + "fmt" + "strings" + "time" + + lru "github.com/hashicorp/golang-lru/simplelru" + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + autobatch "github.com/ipfs/go-datastore/autobatch" + dsq "github.com/ipfs/go-datastore/query" + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + peer "github.com/libp2p/go-libp2p-peer" + base32 "github.com/whyrusleeping/base32" +) + +var batchBufferSize = 256 + +var log = logging.Logger("providers") + +var lruCacheSize = 256 +var ProvideValidity = time.Hour * 24 +var defaultCleanupInterval = time.Hour + +type ProviderManager struct { + // all non channel fields are meant to be accessed only within + // the run method + providers *lru.LRU + dstore *autobatch.Datastore + + newprovs chan *addProv + getprovs chan *getProv + proc goprocess.Process + + cleanupInterval time.Duration +} + +type providerSet struct { + providers []peer.ID + set map[peer.ID]time.Time +} + +type addProv struct { + k cid.Cid + val peer.ID +} + +type getProv struct { + k cid.Cid + resp chan []peer.ID +} + +func NewProviderManager(ctx context.Context, local peer.ID, dstore ds.Batching) *ProviderManager { + pm := new(ProviderManager) + pm.getprovs = make(chan *getProv) + pm.newprovs = make(chan *addProv) + pm.dstore = autobatch.NewAutoBatching(dstore, batchBufferSize) + cache, err := lru.NewLRU(lruCacheSize, nil) + if err != nil { + panic(err) //only happens if negative value is passed to lru constructor + } + pm.providers = cache + + pm.proc = goprocessctx.WithContext(ctx) + pm.cleanupInterval = defaultCleanupInterval + pm.proc.Go(pm.run) + + return pm +} + +const providersKeyPrefix = "/providers/" + +func mkProvKey(k cid.Cid) string { + return providersKeyPrefix + base32.RawStdEncoding.EncodeToString(k.Bytes()) +} + +func (pm *ProviderManager) Process() goprocess.Process { + return pm.proc +} + +func (pm *ProviderManager) providersForKey(k cid.Cid) ([]peer.ID, error) { + pset, err := pm.getProvSet(k) + if err != nil { + return nil, err + } + return pset.providers, nil +} + +func (pm *ProviderManager) getProvSet(k cid.Cid) (*providerSet, error) { + cached, ok := pm.providers.Get(k) + if ok { + return cached.(*providerSet), nil + } + + pset, err := loadProvSet(pm.dstore, k) + if err != nil { + return nil, err + } + + if len(pset.providers) > 0 { + pm.providers.Add(k, pset) + } + + return pset, nil +} + +func loadProvSet(dstore ds.Datastore, k cid.Cid) (*providerSet, error) { + res, err := dstore.Query(dsq.Query{Prefix: mkProvKey(k)}) + if err != nil { + return nil, err + } + defer res.Close() + + now := time.Now() + out := newProviderSet() + for { + e, ok := res.NextSync() + if !ok { + break + } + if e.Error != nil { + log.Error("got an error: ", e.Error) + continue + } + + // check expiration time + t, err := readTimeValue(e.Value) + switch { + case err != nil: + // couldn't parse the time + log.Warning("parsing providers record from disk: ", err) + fallthrough + case now.Sub(t) > ProvideValidity: + // or just expired + err = dstore.Delete(ds.RawKey(e.Key)) + if err != nil && err != ds.ErrNotFound { + log.Warning("failed to remove provider record from disk: ", err) + } + continue + } + + lix := strings.LastIndex(e.Key, "/") + + decstr, err := base32.RawStdEncoding.DecodeString(e.Key[lix+1:]) + if err != nil { + log.Error("base32 decoding error: ", err) + err = dstore.Delete(ds.RawKey(e.Key)) + if err != nil && err != ds.ErrNotFound { + log.Warning("failed to remove provider record from disk: ", err) + } + continue + } + + pid := peer.ID(decstr) + + out.setVal(pid, t) + } + + return out, nil +} + +func readTimeValue(data []byte) (time.Time, error) { + nsec, n := binary.Varint(data) + if n <= 0 { + return time.Time{}, fmt.Errorf("failed to parse time") + } + + return time.Unix(0, nsec), nil +} + +func (pm *ProviderManager) addProv(k cid.Cid, p peer.ID) error { + now := time.Now() + if provs, ok := pm.providers.Get(k); ok { + provs.(*providerSet).setVal(p, now) + } // else not cached, just write through + + return writeProviderEntry(pm.dstore, k, p, now) +} + +func mkProvKeyFor(k cid.Cid, p peer.ID) string { + return mkProvKey(k) + "/" + base32.RawStdEncoding.EncodeToString([]byte(p)) +} + +func writeProviderEntry(dstore ds.Datastore, k cid.Cid, p peer.ID, t time.Time) error { + dsk := mkProvKeyFor(k, p) + + buf := make([]byte, 16) + n := binary.PutVarint(buf, t.UnixNano()) + + return dstore.Put(ds.NewKey(dsk), buf[:n]) +} + +func (pm *ProviderManager) run(proc goprocess.Process) { + var ( + gcQuery dsq.Results + gcQueryRes <-chan dsq.Result + gcSkip map[string]struct{} + gcTime time.Time + gcTimer = time.NewTimer(pm.cleanupInterval) + ) + + defer func() { + gcTimer.Stop() + if gcQuery != nil { + // don't really care if this fails. + _ = gcQuery.Close() + } + if err := pm.dstore.Flush(); err != nil { + log.Error("failed to flush datastore: ", err) + } + }() + + for { + select { + case np := <-pm.newprovs: + err := pm.addProv(np.k, np.val) + if err != nil { + log.Error("error adding new providers: ", err) + continue + } + if gcSkip != nil { + // we have an gc, tell it to skip this provider + // as we've updated it since the GC started. + gcSkip[mkProvKeyFor(np.k, np.val)] = struct{}{} + } + case gp := <-pm.getprovs: + provs, err := pm.providersForKey(gp.k) + if err != nil && err != ds.ErrNotFound { + log.Error("error reading providers: ", err) + } + + // set the cap so the user can't append to this. + gp.resp <- provs[0:len(provs):len(provs)] + case res, ok := <-gcQueryRes: + if !ok { + if err := gcQuery.Close(); err != nil { + log.Error("failed to close provider GC query: ", err) + } + gcTimer.Reset(pm.cleanupInterval) + + // cleanup GC round + gcQueryRes = nil + gcSkip = nil + gcQuery = nil + continue + } + if res.Error != nil { + log.Error("got error from GC query: ", res.Error) + continue + } + if _, ok := gcSkip[res.Key]; ok { + // We've updated this record since starting the + // GC round, skip it. + continue + } + + // check expiration time + t, err := readTimeValue(res.Value) + switch { + case err != nil: + // couldn't parse the time + log.Warning("parsing providers record from disk: ", err) + fallthrough + case gcTime.Sub(t) > ProvideValidity: + // or expired + err = pm.dstore.Delete(ds.RawKey(res.Key)) + if err != nil && err != ds.ErrNotFound { + log.Warning("failed to remove provider record from disk: ", err) + } + } + + case gcTime = <-gcTimer.C: + // You know the wonderful thing about caches? You can + // drop them. + // + // Much faster than GCing. + pm.providers.Purge() + + // Now, kick off a GC of the datastore. + q, err := pm.dstore.Query(dsq.Query{ + Prefix: providersKeyPrefix, + }) + if err != nil { + log.Error("provider record GC query failed: ", err) + continue + } + gcQuery = q + gcQueryRes = q.Next() + gcSkip = make(map[string]struct{}) + case <-proc.Closing(): + return + } + } +} + +// AddProvider adds a provider. +func (pm *ProviderManager) AddProvider(ctx context.Context, k cid.Cid, val peer.ID) { + prov := &addProv{ + k: k, + val: val, + } + select { + case pm.newprovs <- prov: + case <-ctx.Done(): + } +} + +// GetProviders returns the set of providers for the given key. +// This method _does not_ copy the set. Do not modify it. +func (pm *ProviderManager) GetProviders(ctx context.Context, k cid.Cid) []peer.ID { + gp := &getProv{ + k: k, + resp: make(chan []peer.ID, 1), // buffered to prevent sender from blocking + } + select { + case <-ctx.Done(): + return nil + case pm.getprovs <- gp: + } + select { + case <-ctx.Done(): + return nil + case peers := <-gp.resp: + return peers + } +} + +func newProviderSet() *providerSet { + return &providerSet{ + set: make(map[peer.ID]time.Time), + } +} + +func (ps *providerSet) Add(p peer.ID) { + ps.setVal(p, time.Now()) +} + +func (ps *providerSet) setVal(p peer.ID, t time.Time) { + _, found := ps.set[p] + if !found { + ps.providers = append(ps.providers, p) + } + + ps.set[p] = t +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/query.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/query.go new file mode 100644 index 00000000..9e9c3596 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/query.go @@ -0,0 +1,323 @@ +package dht + +import ( + "context" + "sync" + + u "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" + todoctr "github.com/ipfs/go-todocounter" + process "github.com/jbenet/goprocess" + ctxproc "github.com/jbenet/goprocess/context" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pset "github.com/libp2p/go-libp2p-peer/peerset" + pstore "github.com/libp2p/go-libp2p-peerstore" + queue "github.com/libp2p/go-libp2p-peerstore/queue" + routing "github.com/libp2p/go-libp2p-routing" + notif "github.com/libp2p/go-libp2p-routing/notifications" +) + +var maxQueryConcurrency = AlphaValue + +type dhtQuery struct { + dht *IpfsDHT + key string // the key we're querying for + qfunc queryFunc // the function to execute per peer + concurrency int // the concurrency parameter +} + +type dhtQueryResult struct { + peer *pstore.PeerInfo // FindPeer + closerPeers []*pstore.PeerInfo // * + success bool + + finalSet *pset.PeerSet + queriedSet *pset.PeerSet +} + +// constructs query +func (dht *IpfsDHT) newQuery(k string, f queryFunc) *dhtQuery { + return &dhtQuery{ + key: k, + dht: dht, + qfunc: f, + concurrency: maxQueryConcurrency, + } +} + +// QueryFunc is a function that runs a particular query with a given peer. +// It returns either: +// - the value +// - a list of peers potentially better able to serve the query +// - an error +type queryFunc func(context.Context, peer.ID) (*dhtQueryResult, error) + +// Run runs the query at hand. pass in a list of peers to use first. +func (q *dhtQuery) Run(ctx context.Context, peers []peer.ID) (*dhtQueryResult, error) { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + runner := newQueryRunner(q) + return runner.Run(ctx, peers) +} + +type dhtQueryRunner struct { + query *dhtQuery // query to run + peersSeen *pset.PeerSet // all peers queried. prevent querying same peer 2x + peersQueried *pset.PeerSet // peers successfully connected to and queried + peersDialed *dialQueue // peers we have dialed to + peersToQuery *queue.ChanQueue // peers remaining to be queried + peersRemaining todoctr.Counter // peersToQuery + currently processing + + result *dhtQueryResult // query result + errs u.MultiErr // result errors. maybe should be a map[peer.ID]error + + rateLimit chan struct{} // processing semaphore + log logging.EventLogger + + runCtx context.Context + + proc process.Process + sync.RWMutex +} + +func newQueryRunner(q *dhtQuery) *dhtQueryRunner { + proc := process.WithParent(process.Background()) + ctx := ctxproc.OnClosingContext(proc) + peersToQuery := queue.NewChanQueue(ctx, queue.NewXORDistancePQ(string(q.key))) + r := &dhtQueryRunner{ + query: q, + peersRemaining: todoctr.NewSyncCounter(), + peersSeen: pset.New(), + peersQueried: pset.New(), + rateLimit: make(chan struct{}, q.concurrency), + peersToQuery: peersToQuery, + proc: proc, + } + dq, err := newDialQueue(&dqParams{ + ctx: ctx, + target: q.key, + in: peersToQuery, + dialFn: r.dialPeer, + config: dqDefaultConfig(), + }) + if err != nil { + panic(err) + } + r.peersDialed = dq + return r +} + +func (r *dhtQueryRunner) Run(ctx context.Context, peers []peer.ID) (*dhtQueryResult, error) { + r.log = logger + r.runCtx = ctx + + if len(peers) == 0 { + logger.Warning("Running query with no peers!") + return nil, nil + } + + // setup concurrency rate limiting + for i := 0; i < r.query.concurrency; i++ { + r.rateLimit <- struct{}{} + } + + // add all the peers we got first. + for _, p := range peers { + r.addPeerToQuery(p) + } + + // start the dial queue only after we've added the initial set of peers. + // this is to avoid race conditions that could cause the peersRemaining todoctr + // to be done too early if the initial dial fails before others make it into the queue. + r.peersDialed.Start() + + // go do this thing. + // do it as a child proc to make sure Run exits + // ONLY AFTER spawn workers has exited. + r.proc.Go(r.spawnWorkers) + + // wait until they're done. + var err error + + // now, if the context finishes, close the proc. + // we have to do it here because the logic before is setup, which + // should run without closing the proc. + ctxproc.CloseAfterContext(r.proc, ctx) + + select { + case <-r.peersRemaining.Done(): + r.proc.Close() + r.RLock() + defer r.RUnlock() + + err = routing.ErrNotFound + + // if every query to every peer failed, something must be very wrong. + if len(r.errs) > 0 && len(r.errs) == r.peersSeen.Size() { + logger.Debugf("query errs: %s", r.errs) + err = r.errs[0] + } + + case <-r.proc.Closed(): + r.RLock() + defer r.RUnlock() + err = r.runCtx.Err() + } + + if r.result != nil && r.result.success { + return r.result, nil + } + + return &dhtQueryResult{ + finalSet: r.peersSeen, + queriedSet: r.peersQueried, + }, err +} + +func (r *dhtQueryRunner) addPeerToQuery(next peer.ID) { + // if new peer is ourselves... + if next == r.query.dht.self { + r.log.Debug("addPeerToQuery skip self") + return + } + + if !r.peersSeen.TryAdd(next) { + return + } + + notif.PublishQueryEvent(r.runCtx, ¬if.QueryEvent{ + Type: notif.AddingPeer, + ID: next, + }) + + r.peersRemaining.Increment(1) + select { + case r.peersToQuery.EnqChan <- next: + case <-r.proc.Closing(): + } +} + +func (r *dhtQueryRunner) spawnWorkers(proc process.Process) { + for { + select { + case <-r.peersRemaining.Done(): + return + + case <-r.proc.Closing(): + return + + case <-r.rateLimit: + ch := r.peersDialed.Consume() + select { + case p, ok := <-ch: + if !ok { + // this signals context cancellation. + return + } + // do it as a child func to make sure Run exits + // ONLY AFTER spawn workers has exited. + proc.Go(func(proc process.Process) { + r.queryPeer(proc, p) + }) + case <-r.proc.Closing(): + return + case <-r.peersRemaining.Done(): + return + } + } + } +} + +func (r *dhtQueryRunner) dialPeer(ctx context.Context, p peer.ID) error { + // short-circuit if we're already connected. + if r.query.dht.host.Network().Connectedness(p) == inet.Connected { + return nil + } + + logger.Debug("not connected. dialing.") + notif.PublishQueryEvent(r.runCtx, ¬if.QueryEvent{ + Type: notif.DialingPeer, + ID: p, + }) + + pi := pstore.PeerInfo{ID: p} + if err := r.query.dht.host.Connect(ctx, pi); err != nil { + logger.Debugf("error connecting: %s", err) + notif.PublishQueryEvent(r.runCtx, ¬if.QueryEvent{ + Type: notif.QueryError, + Extra: err.Error(), + ID: p, + }) + + r.Lock() + r.errs = append(r.errs, err) + r.Unlock() + + // This peer is dropping out of the race. + r.peersRemaining.Decrement(1) + return err + } + logger.Debugf("connected. dial success.") + return nil +} + +func (r *dhtQueryRunner) queryPeer(proc process.Process, p peer.ID) { + // ok let's do this! + + // create a context from our proc. + ctx := ctxproc.OnClosingContext(proc) + + // make sure we do this when we exit + defer func() { + // signal we're done processing peer p + r.peersRemaining.Decrement(1) + r.rateLimit <- struct{}{} + }() + + // finally, run the query against this peer + res, err := r.query.qfunc(ctx, p) + + r.peersQueried.Add(p) + + if err != nil { + logger.Debugf("ERROR worker for: %v %v", p, err) + r.Lock() + r.errs = append(r.errs, err) + r.Unlock() + + } else if res.success { + logger.Debugf("SUCCESS worker for: %v %s", p, res) + r.Lock() + r.result = res + r.Unlock() + if res.peer != nil { + r.query.dht.peerstore.AddAddrs(res.peer.ID, res.peer.Addrs, pstore.TempAddrTTL) + } + go r.proc.Close() // signal to everyone that we're done. + // must be async, as we're one of the children, and Close blocks. + + } else if len(res.closerPeers) > 0 { + logger.Debugf("PEERS CLOSER -- worker for: %v (%d closer peers)", p, len(res.closerPeers)) + for _, next := range res.closerPeers { + if next.ID == r.query.dht.self { // don't add self. + logger.Debugf("PEERS CLOSER -- worker for: %v found self", p) + continue + } + + // add their addresses to the dialer's peerstore + r.query.dht.peerstore.AddAddrs(next.ID, next.Addrs, pstore.TempAddrTTL) + r.addPeerToQuery(next.ID) + logger.Debugf("PEERS CLOSER -- worker for: %v added %v (%v)", p, next.ID, next.Addrs) + } + } else { + logger.Debugf("QUERY worker for: %v - not found, and no closer peers.", p) + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/records.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/records.go new file mode 100644 index 00000000..5e508dba --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/records.go @@ -0,0 +1,136 @@ +package dht + +import ( + "context" + "fmt" + "time" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + routing "github.com/libp2p/go-libp2p-routing" +) + +// MaxRecordAge specifies the maximum time that any node will hold onto a record +// from the time its received. This does not apply to any other forms of validity that +// the record may contain. +// For example, a record may contain an ipns entry with an EOL saying its valid +// until the year 2020 (a great time in the future). For that record to stick around +// it must be rebroadcasted more frequently than once every 'MaxRecordAge' +const MaxRecordAge = time.Hour * 36 + +type pubkrs struct { + pubk ci.PubKey + err error +} + +func (dht *IpfsDHT) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) { + logger.Debugf("getPublicKey for: %s", p) + + // Check locally. Will also try to extract the public key from the peer + // ID itself if possible (if inlined). + pk := dht.peerstore.PubKey(p) + if pk != nil { + return pk, nil + } + + // Try getting the public key both directly from the node it identifies + // and from the DHT, in parallel + ctx, cancel := context.WithCancel(ctx) + defer cancel() + resp := make(chan pubkrs, 2) + go func() { + pubk, err := dht.getPublicKeyFromNode(ctx, p) + resp <- pubkrs{pubk, err} + }() + + // Note that the number of open connections is capped by the dial + // limiter, so there is a chance that getPublicKeyFromDHT(), which + // potentially opens a lot of connections, will block + // getPublicKeyFromNode() from getting a connection. + // Currently this doesn't seem to cause an issue so leaving as is + // for now. + go func() { + pubk, err := dht.getPublicKeyFromDHT(ctx, p) + resp <- pubkrs{pubk, err} + }() + + // Wait for one of the two go routines to return + // a public key (or for both to error out) + var err error + for i := 0; i < 2; i++ { + r := <-resp + if r.err == nil { + // Found the public key + err := dht.peerstore.AddPubKey(p, r.pubk) + if err != nil { + logger.Warningf("Failed to add public key to peerstore for %v", p) + } + return r.pubk, nil + } + err = r.err + } + + // Both go routines failed to find a public key + return nil, err +} + +func (dht *IpfsDHT) getPublicKeyFromDHT(ctx context.Context, p peer.ID) (ci.PubKey, error) { + // Only retrieve one value, because the public key is immutable + // so there's no need to retrieve multiple versions + pkkey := routing.KeyForPublicKey(p) + val, err := dht.GetValue(ctx, pkkey, Quorum(1)) + if err != nil { + return nil, err + } + + pubk, err := ci.UnmarshalPublicKey(val) + if err != nil { + logger.Errorf("Could not unmarshall public key retrieved from DHT for %v", p) + return nil, err + } + + // Note: No need to check that public key hash matches peer ID + // because this is done by GetValues() + logger.Debugf("Got public key for %s from DHT", p) + return pubk, nil +} + +func (dht *IpfsDHT) getPublicKeyFromNode(ctx context.Context, p peer.ID) (ci.PubKey, error) { + // check locally, just in case... + pk := dht.peerstore.PubKey(p) + if pk != nil { + return pk, nil + } + + // Get the key from the node itself + pkkey := routing.KeyForPublicKey(p) + pmes, err := dht.getValueSingle(ctx, p, pkkey) + if err != nil { + return nil, err + } + + // node doesn't have key :( + record := pmes.GetRecord() + if record == nil { + return nil, fmt.Errorf("node %v not responding with its public key", p) + } + + pubk, err := ci.UnmarshalPublicKey(record.GetValue()) + if err != nil { + logger.Errorf("Could not unmarshall public key for %v", p) + return nil, err + } + + // Make sure the public key matches the peer ID + id, err := peer.IDFromPublicKey(pubk) + if err != nil { + logger.Errorf("Could not extract peer id from public key for %v", p) + return nil, err + } + if id != p { + return nil, fmt.Errorf("public key %v does not match peer %v", id, p) + } + + logger.Debugf("Got public key from node %v itself", p) + return pubk, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/routing.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/routing.go new file mode 100644 index 00000000..585196c1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/routing.go @@ -0,0 +1,711 @@ +package dht + +import ( + "bytes" + "context" + "fmt" + "runtime" + "sync" + "time" + + cid "github.com/ipfs/go-cid" + u "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" + pb "github.com/libp2p/go-libp2p-kad-dht/pb" + kb "github.com/libp2p/go-libp2p-kbucket" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pset "github.com/libp2p/go-libp2p-peer/peerset" + pstore "github.com/libp2p/go-libp2p-peerstore" + record "github.com/libp2p/go-libp2p-record" + routing "github.com/libp2p/go-libp2p-routing" + notif "github.com/libp2p/go-libp2p-routing/notifications" + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +// asyncQueryBuffer is the size of buffered channels in async queries. This +// buffer allows multiple queries to execute simultaneously, return their +// results and continue querying closer peers. Note that different query +// results will wait for the channel to drain. +var asyncQueryBuffer = 10 + +// This file implements the Routing interface for the IpfsDHT struct. + +// Basic Put/Get + +// PutValue adds value corresponding to given Key. +// This is the top level "Store" operation of the DHT +func (dht *IpfsDHT) PutValue(ctx context.Context, key string, value []byte, opts ...ropts.Option) (err error) { + eip := logger.EventBegin(ctx, "PutValue") + defer func() { + eip.Append(loggableKey(key)) + if err != nil { + eip.SetError(err) + } + eip.Done() + }() + logger.Debugf("PutValue %s", key) + + // don't even allow local users to put bad values. + if err := dht.Validator.Validate(key, value); err != nil { + return err + } + + old, err := dht.getLocal(key) + if err != nil { + // Means something is wrong with the datastore. + return err + } + + // Check if we have an old value that's not the same as the new one. + if old != nil && !bytes.Equal(old.GetValue(), value) { + // Check to see if the new one is better. + i, err := dht.Validator.Select(key, [][]byte{value, old.GetValue()}) + if err != nil { + return err + } + if i != 0 { + return fmt.Errorf("can't replace a newer value with an older value") + } + } + + rec := record.MakePutRecord(key, value) + rec.TimeReceived = u.FormatRFC3339(time.Now()) + err = dht.putLocal(key, rec) + if err != nil { + return err + } + + pchan, err := dht.GetClosestPeers(ctx, key) + if err != nil { + return err + } + + wg := sync.WaitGroup{} + for p := range pchan { + wg.Add(1) + go func(p peer.ID) { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + defer wg.Done() + notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ + Type: notif.Value, + ID: p, + }) + + err := dht.putValueToPeer(ctx, p, rec) + if err != nil { + logger.Debugf("failed putting value to peer: %s", err) + } + }(p) + } + wg.Wait() + return nil +} + +// RecvdVal stores a value and the peer from which we got the value. +type RecvdVal struct { + Val []byte + From peer.ID +} + +// GetValue searches for the value corresponding to given Key. +func (dht *IpfsDHT) GetValue(ctx context.Context, key string, opts ...ropts.Option) (_ []byte, err error) { + eip := logger.EventBegin(ctx, "GetValue") + defer func() { + eip.Append(loggableKey(key)) + if err != nil { + eip.SetError(err) + } + eip.Done() + }() + + // apply defaultQuorum if relevant + var cfg ropts.Options + if err := cfg.Apply(opts...); err != nil { + return nil, err + } + opts = append(opts, Quorum(getQuorum(&cfg, defaultQuorum))) + + responses, err := dht.SearchValue(ctx, key, opts...) + if err != nil { + return nil, err + } + var best []byte + + for r := range responses { + best = r + } + + if ctx.Err() != nil { + return best, ctx.Err() + } + + if best == nil { + return nil, routing.ErrNotFound + } + logger.Debugf("GetValue %v %v", key, best) + return best, nil +} + +func (dht *IpfsDHT) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + var cfg ropts.Options + if err := cfg.Apply(opts...); err != nil { + return nil, err + } + + responsesNeeded := 0 + if !cfg.Offline { + responsesNeeded = getQuorum(&cfg, -1) + } + + valCh, err := dht.getValues(ctx, key, responsesNeeded) + if err != nil { + return nil, err + } + + out := make(chan []byte) + go func() { + defer close(out) + + maxVals := responsesNeeded + if maxVals < 0 { + maxVals = defaultQuorum * 4 // we want some upper bound on how + // much correctional entries we will send + } + + // vals is used collect entries we got so far and send corrections to peers + // when we exit this function + vals := make([]RecvdVal, 0, maxVals) + var best *RecvdVal + + defer func() { + if len(vals) <= 1 || best == nil { + return + } + fixupRec := record.MakePutRecord(key, best.Val) + for _, v := range vals { + // if someone sent us a different 'less-valid' record, lets correct them + if !bytes.Equal(v.Val, best.Val) { + go func(v RecvdVal) { + if v.From == dht.self { + err := dht.putLocal(key, fixupRec) + if err != nil { + logger.Error("Error correcting local dht entry:", err) + } + return + } + ctx, cancel := context.WithTimeout(dht.Context(), time.Second*30) + defer cancel() + err := dht.putValueToPeer(ctx, v.From, fixupRec) + if err != nil { + logger.Debug("Error correcting DHT entry: ", err) + } + }(v) + } + } + }() + + for { + select { + case v, ok := <-valCh: + if !ok { + return + } + + if len(vals) < maxVals { + vals = append(vals, v) + } + + if v.Val == nil { + continue + } + // Select best value + if best != nil { + if bytes.Equal(best.Val, v.Val) { + continue + } + sel, err := dht.Validator.Select(key, [][]byte{best.Val, v.Val}) + if err != nil { + logger.Warning("Failed to select dht key: ", err) + continue + } + if sel != 1 { + continue + } + } + best = &v + select { + case out <- v.Val: + case <-ctx.Done(): + return + } + case <-ctx.Done(): + return + } + } + }() + + return out, nil +} + +// GetValues gets nvals values corresponding to the given key. +func (dht *IpfsDHT) GetValues(ctx context.Context, key string, nvals int) (_ []RecvdVal, err error) { + eip := logger.EventBegin(ctx, "GetValues") + + eip.Append(loggableKey(key)) + defer eip.Done() + + valCh, err := dht.getValues(ctx, key, nvals) + if err != nil { + eip.SetError(err) + return nil, err + } + + out := make([]RecvdVal, 0, nvals) + for val := range valCh { + out = append(out, val) + } + + return out, ctx.Err() +} + +func (dht *IpfsDHT) getValues(ctx context.Context, key string, nvals int) (<-chan RecvdVal, error) { + vals := make(chan RecvdVal, 1) + + done := func(err error) (<-chan RecvdVal, error) { + defer close(vals) + return vals, err + } + + // If we have it local, don't bother doing an RPC! + lrec, err := dht.getLocal(key) + if err != nil { + // something is wrong with the datastore. + return done(err) + } + if lrec != nil { + // TODO: this is tricky, we don't always want to trust our own value + // what if the authoritative source updated it? + logger.Debug("have it locally") + vals <- RecvdVal{ + Val: lrec.GetValue(), + From: dht.self, + } + + if nvals == 0 || nvals == 1 { + return done(nil) + } + + nvals-- + } else if nvals == 0 { + return done(routing.ErrNotFound) + } + + // get closest peers in the routing table + rtp := dht.routingTable.NearestPeers(kb.ConvertKey(key), AlphaValue) + logger.Debugf("peers in rt: %d %s", len(rtp), rtp) + if len(rtp) == 0 { + logger.Warning("No peers from routing table!") + return done(kb.ErrLookupFailure) + } + + var valslock sync.Mutex + var got int + + // setup the Query + parent := ctx + query := dht.newQuery(key, func(ctx context.Context, p peer.ID) (*dhtQueryResult, error) { + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.SendingQuery, + ID: p, + }) + + rec, peers, err := dht.getValueOrPeers(ctx, p, key) + switch err { + case routing.ErrNotFound: + // in this case, they responded with nothing, + // still send a notification so listeners can know the + // request has completed 'successfully' + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.PeerResponse, + ID: p, + }) + return nil, err + default: + return nil, err + + case nil, errInvalidRecord: + // in either of these cases, we want to keep going + } + + res := &dhtQueryResult{closerPeers: peers} + + if rec.GetValue() != nil || err == errInvalidRecord { + rv := RecvdVal{ + Val: rec.GetValue(), + From: p, + } + valslock.Lock() + select { + case vals <- rv: + case <-ctx.Done(): + valslock.Unlock() + return nil, ctx.Err() + } + got++ + + // If we have collected enough records, we're done + if nvals == got { + res.success = true + } + valslock.Unlock() + } + + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.PeerResponse, + ID: p, + Responses: peers, + }) + + return res, nil + }) + + go func() { + reqCtx, cancel := context.WithTimeout(ctx, time.Minute) + defer cancel() + + _, err = query.Run(reqCtx, rtp) + + // We do have some values but we either ran out of peers to query or + // searched for a whole minute. + // + // We'll just call this a success. + if got > 0 && (err == routing.ErrNotFound || reqCtx.Err() == context.DeadlineExceeded) { + err = nil + } + done(err) + }() + + return vals, nil +} + +// Provider abstraction for indirect stores. +// Some DHTs store values directly, while an indirect store stores pointers to +// locations of the value, similarly to Coral and Mainline DHT. + +// Provide makes this node announce that it can provide a value for the given key +func (dht *IpfsDHT) Provide(ctx context.Context, key cid.Cid, brdcst bool) (err error) { + eip := logger.EventBegin(ctx, "Provide", key, logging.LoggableMap{"broadcast": brdcst}) + defer func() { + if err != nil { + eip.SetError(err) + } + eip.Done() + }() + + // add self locally + dht.providers.AddProvider(ctx, key, dht.self) + if !brdcst { + return nil + } + + peers, err := dht.GetClosestPeers(ctx, key.KeyString()) + if err != nil { + return err + } + + mes, err := dht.makeProvRecord(key) + if err != nil { + return err + } + + wg := sync.WaitGroup{} + for p := range peers { + wg.Add(1) + go func(p peer.ID) { + defer wg.Done() + logger.Debugf("putProvider(%s, %s)", key, p) + err := dht.sendMessage(ctx, p, mes) + if err != nil { + logger.Debug(err) + } + }(p) + } + wg.Wait() + return nil +} +func (dht *IpfsDHT) makeProvRecord(skey cid.Cid) (*pb.Message, error) { + pi := pstore.PeerInfo{ + ID: dht.self, + Addrs: dht.host.Addrs(), + } + + // // only share WAN-friendly addresses ?? + // pi.Addrs = addrutil.WANShareableAddrs(pi.Addrs) + if len(pi.Addrs) < 1 { + return nil, fmt.Errorf("no known addresses for self. cannot put provider.") + } + + pmes := pb.NewMessage(pb.Message_ADD_PROVIDER, skey.Bytes(), 0) + pmes.ProviderPeers = pb.RawPeerInfosToPBPeers([]pstore.PeerInfo{pi}) + return pmes, nil +} + +// FindProviders searches until the context expires. +func (dht *IpfsDHT) FindProviders(ctx context.Context, c cid.Cid) ([]pstore.PeerInfo, error) { + var providers []pstore.PeerInfo + for p := range dht.FindProvidersAsync(ctx, c, KValue) { + providers = append(providers, p) + } + return providers, nil +} + +// FindProvidersAsync is the same thing as FindProviders, but returns a channel. +// Peers will be returned on the channel as soon as they are found, even before +// the search query completes. +func (dht *IpfsDHT) FindProvidersAsync(ctx context.Context, key cid.Cid, count int) <-chan pstore.PeerInfo { + logger.Event(ctx, "findProviders", key) + peerOut := make(chan pstore.PeerInfo, count) + go dht.findProvidersAsyncRoutine(ctx, key, count, peerOut) + return peerOut +} + +func (dht *IpfsDHT) findProvidersAsyncRoutine(ctx context.Context, key cid.Cid, count int, peerOut chan pstore.PeerInfo) { + defer logger.EventBegin(ctx, "findProvidersAsync", key).Done() + defer close(peerOut) + + ps := pset.NewLimited(count) + provs := dht.providers.GetProviders(ctx, key) + for _, p := range provs { + // NOTE: Assuming that this list of peers is unique + if ps.TryAdd(p) { + pi := dht.peerstore.PeerInfo(p) + select { + case peerOut <- pi: + case <-ctx.Done(): + return + } + } + + // If we have enough peers locally, don't bother with remote RPC + // TODO: is this a DOS vector? + if ps.Size() >= count { + return + } + } + + // setup the Query + parent := ctx + query := dht.newQuery(key.KeyString(), func(ctx context.Context, p peer.ID) (*dhtQueryResult, error) { + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.SendingQuery, + ID: p, + }) + pmes, err := dht.findProvidersSingle(ctx, p, key) + if err != nil { + return nil, err + } + + logger.Debugf("%d provider entries", len(pmes.GetProviderPeers())) + provs := pb.PBPeersToPeerInfos(pmes.GetProviderPeers()) + logger.Debugf("%d provider entries decoded", len(provs)) + + // Add unique providers from request, up to 'count' + for _, prov := range provs { + if prov.ID != dht.self { + dht.peerstore.AddAddrs(prov.ID, prov.Addrs, pstore.TempAddrTTL) + } + logger.Debugf("got provider: %s", prov) + if ps.TryAdd(prov.ID) { + logger.Debugf("using provider: %s", prov) + select { + case peerOut <- *prov: + case <-ctx.Done(): + logger.Debug("context timed out sending more providers") + return nil, ctx.Err() + } + } + if ps.Size() >= count { + logger.Debugf("got enough providers (%d/%d)", ps.Size(), count) + return &dhtQueryResult{success: true}, nil + } + } + + // Give closer peers back to the query to be queried + closer := pmes.GetCloserPeers() + clpeers := pb.PBPeersToPeerInfos(closer) + logger.Debugf("got closer peers: %d %s", len(clpeers), clpeers) + + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.PeerResponse, + ID: p, + Responses: clpeers, + }) + return &dhtQueryResult{closerPeers: clpeers}, nil + }) + + peers := dht.routingTable.NearestPeers(kb.ConvertKey(key.KeyString()), AlphaValue) + _, err := query.Run(ctx, peers) + if err != nil { + logger.Debugf("Query error: %s", err) + // Special handling for issue: https://github.com/ipfs/go-ipfs/issues/3032 + if fmt.Sprint(err) == "" { + logger.Error("reproduced bug 3032:") + logger.Errorf("Errors type information: %#v", err) + logger.Errorf("go version: %s", runtime.Version()) + logger.Error("please report this information to: https://github.com/ipfs/go-ipfs/issues/3032") + + // replace problematic error with something that won't crash the daemon + err = fmt.Errorf("") + } + notif.PublishQueryEvent(ctx, ¬if.QueryEvent{ + Type: notif.QueryError, + Extra: err.Error(), + }) + } +} + +// FindPeer searches for a peer with given ID. +func (dht *IpfsDHT) FindPeer(ctx context.Context, id peer.ID) (_ pstore.PeerInfo, err error) { + eip := logger.EventBegin(ctx, "FindPeer", id) + defer func() { + if err != nil { + eip.SetError(err) + } + eip.Done() + }() + + // Check if were already connected to them + if pi := dht.FindLocal(id); pi.ID != "" { + return pi, nil + } + + peers := dht.routingTable.NearestPeers(kb.ConvertPeerID(id), AlphaValue) + if len(peers) == 0 { + return pstore.PeerInfo{}, kb.ErrLookupFailure + } + + // Sanity... + for _, p := range peers { + if p == id { + logger.Debug("found target peer in list of closest peers...") + return dht.peerstore.PeerInfo(p), nil + } + } + + // setup the Query + parent := ctx + query := dht.newQuery(string(id), func(ctx context.Context, p peer.ID) (*dhtQueryResult, error) { + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.SendingQuery, + ID: p, + }) + + pmes, err := dht.findPeerSingle(ctx, p, id) + if err != nil { + return nil, err + } + + closer := pmes.GetCloserPeers() + clpeerInfos := pb.PBPeersToPeerInfos(closer) + + // see if we got the peer here + for _, npi := range clpeerInfos { + if npi.ID == id { + return &dhtQueryResult{ + peer: npi, + success: true, + }, nil + } + } + + notif.PublishQueryEvent(parent, ¬if.QueryEvent{ + Type: notif.PeerResponse, + ID: p, + Responses: clpeerInfos, + }) + + return &dhtQueryResult{closerPeers: clpeerInfos}, nil + }) + + // run it! + result, err := query.Run(ctx, peers) + if err != nil { + return pstore.PeerInfo{}, err + } + + logger.Debugf("FindPeer %v %v", id, result.success) + if result.peer.ID == "" { + return pstore.PeerInfo{}, routing.ErrNotFound + } + + return *result.peer, nil +} + +// FindPeersConnectedToPeer searches for peers directly connected to a given peer. +func (dht *IpfsDHT) FindPeersConnectedToPeer(ctx context.Context, id peer.ID) (<-chan *pstore.PeerInfo, error) { + + peerchan := make(chan *pstore.PeerInfo, asyncQueryBuffer) + peersSeen := make(map[peer.ID]struct{}) + var peersSeenMx sync.Mutex + + peers := dht.routingTable.NearestPeers(kb.ConvertPeerID(id), AlphaValue) + if len(peers) == 0 { + return nil, kb.ErrLookupFailure + } + + // setup the Query + query := dht.newQuery(string(id), func(ctx context.Context, p peer.ID) (*dhtQueryResult, error) { + + pmes, err := dht.findPeerSingle(ctx, p, id) + if err != nil { + return nil, err + } + + var clpeers []*pstore.PeerInfo + closer := pmes.GetCloserPeers() + for _, pbp := range closer { + pi := pb.PBPeerToPeerInfo(pbp) + + // skip peers already seen + peersSeenMx.Lock() + if _, found := peersSeen[pi.ID]; found { + peersSeenMx.Unlock() + continue + } + peersSeen[pi.ID] = struct{}{} + peersSeenMx.Unlock() + + // if peer is connected, send it to our client. + if pb.Connectedness(pbp.Connection) == inet.Connected { + select { + case <-ctx.Done(): + return nil, ctx.Err() + case peerchan <- pi: + } + } + + // if peer is the peer we're looking for, don't bother querying it. + // TODO maybe query it? + if pb.Connectedness(pbp.Connection) != inet.Connected { + clpeers = append(clpeers, pi) + } + } + + return &dhtQueryResult{closerPeers: clpeers}, nil + }) + + // run it! run it asynchronously to gen peers as results are found. + // this does no error checking + go func() { + if _, err := query.Run(ctx, peers); err != nil { + logger.Debug(err) + } + + // close the peerchan channel when done. + close(peerchan) + }() + + return peerchan, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/routing_options.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/routing_options.go new file mode 100644 index 00000000..46083ea5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/routing_options.go @@ -0,0 +1,31 @@ +package dht + +import ( + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +type quorumOptionKey struct{} + +const defaultQuorum = 16 + +// Quorum is a DHT option that tells the DHT how many peers it needs to get +// values from before returning the best one. +// +// Default: 16 +func Quorum(n int) ropts.Option { + return func(opts *ropts.Options) error { + if opts.Other == nil { + opts.Other = make(map[interface{}]interface{}, 1) + } + opts.Other[quorumOptionKey{}] = n + return nil + } +} + +func getQuorum(opts *ropts.Options, ndefault int) int { + responsesNeeded, ok := opts.Other[quorumOptionKey{}].(int) + if !ok { + responsesNeeded = ndefault + } + return responsesNeeded +} diff --git a/vendor/github.com/libp2p/go-libp2p-kad-dht/util.go b/vendor/github.com/libp2p/go-libp2p-kad-dht/util.go new file mode 100644 index 00000000..6ab5c006 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kad-dht/util.go @@ -0,0 +1,10 @@ +package dht + +// Pool size is the number of nodes used for group find/set RPC calls +var PoolSize = 6 + +// K is the maximum number of requests to perform before returning failure. +var KValue = 20 + +// Alpha is the concurrency factor for asynchronous requests. +var AlphaValue = 3 diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/.travis.yml b/vendor/github.com/libp2p/go-libp2p-kbucket/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/LICENSE b/vendor/github.com/libp2p/go-libp2p-kbucket/LICENSE new file mode 100644 index 00000000..55a2d036 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/Makefile b/vendor/github.com/libp2p/go-libp2p-kbucket/Makefile new file mode 100644 index 00000000..a89e6d08 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/README.md b/vendor/github.com/libp2p/go-libp2p-kbucket/README.md new file mode 100644 index 00000000..7b115a2f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/README.md @@ -0,0 +1,26 @@ +# go-libp2p-kbucket + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> A kbucket implementation for use as a routing table in go-libp2p-kad-dht + +## Documenation + +See https://godoc.org/github.com/libp2p/go-libp2p-kbucket. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-key/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on libp2p? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/bucket.go b/vendor/github.com/libp2p/go-libp2p-kbucket/bucket.go new file mode 100644 index 00000000..391669ac --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/bucket.go @@ -0,0 +1,110 @@ +package kbucket + +import ( + "container/list" + "sync" + + peer "github.com/libp2p/go-libp2p-peer" +) + +// Bucket holds a list of peers. +type Bucket struct { + lk sync.RWMutex + list *list.List +} + +func newBucket() *Bucket { + b := new(Bucket) + b.list = list.New() + return b +} + +func (b *Bucket) Peers() []peer.ID { + b.lk.RLock() + defer b.lk.RUnlock() + ps := make([]peer.ID, 0, b.list.Len()) + for e := b.list.Front(); e != nil; e = e.Next() { + id := e.Value.(peer.ID) + ps = append(ps, id) + } + return ps +} + +func (b *Bucket) Has(id peer.ID) bool { + b.lk.RLock() + defer b.lk.RUnlock() + for e := b.list.Front(); e != nil; e = e.Next() { + if e.Value.(peer.ID) == id { + return true + } + } + return false +} + +func (b *Bucket) Remove(id peer.ID) bool { + b.lk.Lock() + defer b.lk.Unlock() + for e := b.list.Front(); e != nil; e = e.Next() { + if e.Value.(peer.ID) == id { + b.list.Remove(e) + return true + } + } + return false +} + +func (b *Bucket) MoveToFront(id peer.ID) { + b.lk.Lock() + defer b.lk.Unlock() + for e := b.list.Front(); e != nil; e = e.Next() { + if e.Value.(peer.ID) == id { + b.list.MoveToFront(e) + } + } +} + +func (b *Bucket) PushFront(p peer.ID) { + b.lk.Lock() + b.list.PushFront(p) + b.lk.Unlock() +} + +func (b *Bucket) PopBack() peer.ID { + b.lk.Lock() + defer b.lk.Unlock() + last := b.list.Back() + b.list.Remove(last) + return last.Value.(peer.ID) +} + +func (b *Bucket) Len() int { + b.lk.RLock() + defer b.lk.RUnlock() + return b.list.Len() +} + +// Split splits a buckets peers into two buckets, the methods receiver will have +// peers with CPL equal to cpl, the returned bucket will have peers with CPL +// greater than cpl (returned bucket has closer peers) +func (b *Bucket) Split(cpl int, target ID) *Bucket { + b.lk.Lock() + defer b.lk.Unlock() + + out := list.New() + newbuck := newBucket() + newbuck.list = out + e := b.list.Front() + for e != nil { + peerID := ConvertPeerID(e.Value.(peer.ID)) + peerCPL := CommonPrefixLen(peerID, target) + if peerCPL > cpl { + cur := e + out.PushBack(e.Value) + e = e.Next() + b.list.Remove(cur) + continue + } + e = e.Next() + } + return newbuck +} diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/codecov.yml b/vendor/github.com/libp2p/go-libp2p-kbucket/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/go.mod b/vendor/github.com/libp2p/go-libp2p-kbucket/go.mod new file mode 100644 index 00000000..0a4e7f32 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/go.mod @@ -0,0 +1,9 @@ +module github.com/libp2p/go-libp2p-kbucket + +require ( + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-testutil v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/go.sum b/vendor/github.com/libp2p/go-libp2p-kbucket/go.sum new file mode 100644 index 00000000..d131c950 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/go.sum @@ -0,0 +1,111 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/keyspace.go b/vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/keyspace.go new file mode 100644 index 00000000..e26a0e6d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/keyspace.go @@ -0,0 +1,97 @@ +package keyspace + +import ( + "sort" + + "math/big" +) + +// Key represents an identifier in a KeySpace. It holds a reference to the +// associated KeySpace, as well references to both the Original identifier, +// as well as the new, KeySpace Bytes one. +type Key struct { + + // Space is the KeySpace this Key is related to. + Space KeySpace + + // Original is the original value of the identifier + Original []byte + + // Bytes is the new value of the identifier, in the KeySpace. + Bytes []byte +} + +// Equal returns whether this key is equal to another. +func (k1 Key) Equal(k2 Key) bool { + if k1.Space != k2.Space { + panic("k1 and k2 not in same key space.") + } + return k1.Space.Equal(k1, k2) +} + +// Less returns whether this key comes before another. +func (k1 Key) Less(k2 Key) bool { + if k1.Space != k2.Space { + panic("k1 and k2 not in same key space.") + } + return k1.Space.Less(k1, k2) +} + +// Distance returns this key's distance to another +func (k1 Key) Distance(k2 Key) *big.Int { + if k1.Space != k2.Space { + panic("k1 and k2 not in same key space.") + } + return k1.Space.Distance(k1, k2) +} + +// KeySpace is an object used to do math on identifiers. Each keyspace has its +// own properties and rules. See XorKeySpace. +type KeySpace interface { + + // Key converts an identifier into a Key in this space. + Key([]byte) Key + + // Equal returns whether keys are equal in this key space + Equal(Key, Key) bool + + // Distance returns the distance metric in this key space + Distance(Key, Key) *big.Int + + // Less returns whether the first key is smaller than the second. + Less(Key, Key) bool +} + +// byDistanceToCenter is a type used to sort Keys by proximity to a center. +type byDistanceToCenter struct { + Center Key + Keys []Key +} + +func (s byDistanceToCenter) Len() int { + return len(s.Keys) +} + +func (s byDistanceToCenter) Swap(i, j int) { + s.Keys[i], s.Keys[j] = s.Keys[j], s.Keys[i] +} + +func (s byDistanceToCenter) Less(i, j int) bool { + a := s.Center.Distance(s.Keys[i]) + b := s.Center.Distance(s.Keys[j]) + return a.Cmp(b) == -1 +} + +// SortByDistance takes a KeySpace, a center Key, and a list of Keys toSort. +// It returns a new list, where the Keys toSort have been sorted by their +// distance to the center Key. +func SortByDistance(sp KeySpace, center Key, toSort []Key) []Key { + toSortCopy := make([]Key, len(toSort)) + copy(toSortCopy, toSort) + bdtc := &byDistanceToCenter{ + Center: center, + Keys: toSortCopy, // copy + } + sort.Sort(bdtc) + return bdtc.Keys +} diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/xor.go b/vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/xor.go new file mode 100644 index 00000000..ee6c65ce --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/keyspace/xor.go @@ -0,0 +1,59 @@ +package keyspace + +import ( + "bytes" + "crypto/sha256" + "math/big" + "math/bits" + + u "github.com/ipfs/go-ipfs-util" +) + +// XORKeySpace is a KeySpace which: +// - normalizes identifiers using a cryptographic hash (sha256) +// - measures distance by XORing keys together +var XORKeySpace = &xorKeySpace{} +var _ KeySpace = XORKeySpace // ensure it conforms + +type xorKeySpace struct{} + +// Key converts an identifier into a Key in this space. +func (s *xorKeySpace) Key(id []byte) Key { + hash := sha256.Sum256(id) + key := hash[:] + return Key{ + Space: s, + Original: id, + Bytes: key, + } +} + +// Equal returns whether keys are equal in this key space +func (s *xorKeySpace) Equal(k1, k2 Key) bool { + return bytes.Equal(k1.Bytes, k2.Bytes) +} + +// Distance returns the distance metric in this key space +func (s *xorKeySpace) Distance(k1, k2 Key) *big.Int { + // XOR the keys + k3 := u.XOR(k1.Bytes, k2.Bytes) + + // interpret it as an integer + dist := big.NewInt(0).SetBytes(k3) + return dist +} + +// Less returns whether the first key is smaller than the second. +func (s *xorKeySpace) Less(k1, k2 Key) bool { + return bytes.Compare(k1.Bytes, k2.Bytes) < 0 +} + +// ZeroPrefixLen returns the number of consecutive zeroes in a byte slice. +func ZeroPrefixLen(id []byte) int { + for i, b := range id { + if b != 0 { + return i*8 + bits.LeadingZeros8(uint8(b)) + } + } + return len(id) * 8 +} diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/package.json b/vendor/github.com/libp2p/go-libp2p-kbucket/package.json new file mode 100644 index 00000000..33e6cfd0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/package.json @@ -0,0 +1,46 @@ +{ + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-kbucket" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-kbucket", + "goversion": "1.5.2" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "hash": "QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W", + "name": "go-testutil", + "version": "1.2.19" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-kbucket", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.2.23" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/sorting.go b/vendor/github.com/libp2p/go-libp2p-kbucket/sorting.go new file mode 100644 index 00000000..da7315df --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/sorting.go @@ -0,0 +1,61 @@ +package kbucket + +import ( + "container/list" + "sort" + + peer "github.com/libp2p/go-libp2p-peer" +) + +// A helper struct to sort peers by their distance to the local node +type peerDistance struct { + p peer.ID + distance ID +} + +// peerSorterArr implements sort.Interface to sort peers by xor distance +type peerSorterArr []*peerDistance + +func (p peerSorterArr) Len() int { return len(p) } +func (p peerSorterArr) Swap(a, b int) { p[a], p[b] = p[b], p[a] } +func (p peerSorterArr) Less(a, b int) bool { + return p[a].distance.less(p[b].distance) +} + +// + +func copyPeersFromList(target ID, peerArr peerSorterArr, peerList *list.List) peerSorterArr { + if cap(peerArr) < len(peerArr)+peerList.Len() { + newArr := make(peerSorterArr, len(peerArr), len(peerArr)+peerList.Len()) + copy(newArr, peerArr) + peerArr = newArr + } + for e := peerList.Front(); e != nil; e = e.Next() { + p := e.Value.(peer.ID) + pID := ConvertPeerID(p) + pd := peerDistance{ + p: p, + distance: xor(target, pID), + } + peerArr = append(peerArr, &pd) + } + return peerArr +} + +func SortClosestPeers(peers []peer.ID, target ID) []peer.ID { + psarr := make(peerSorterArr, 0, len(peers)) + for _, p := range peers { + pID := ConvertPeerID(p) + pd := &peerDistance{ + p: p, + distance: xor(target, pID), + } + psarr = append(psarr, pd) + } + sort.Sort(psarr) + out := make([]peer.ID, 0, len(psarr)) + for _, p := range psarr { + out = append(out, p.p) + } + return out +} diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/table.go b/vendor/github.com/libp2p/go-libp2p-kbucket/table.go new file mode 100644 index 00000000..881102fd --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/table.go @@ -0,0 +1,251 @@ +// package kbucket implements a kademlia 'k-bucket' routing table. +package kbucket + +import ( + "errors" + "fmt" + "sort" + "sync" + "time" + + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +var log = logging.Logger("table") + +var ErrPeerRejectedHighLatency = errors.New("peer rejected; latency too high") +var ErrPeerRejectedNoCapacity = errors.New("peer rejected; insufficient capacity") + +// RoutingTable defines the routing table. +type RoutingTable struct { + + // ID of the local peer + local ID + + // Blanket lock, refine later for better performance + tabLock sync.RWMutex + + // latency metrics + metrics pstore.Metrics + + // Maximum acceptable latency for peers in this cluster + maxLatency time.Duration + + // kBuckets define all the fingers to other nodes. + Buckets []*Bucket + bucketsize int + + // notification functions + PeerRemoved func(peer.ID) + PeerAdded func(peer.ID) +} + +// NewRoutingTable creates a new routing table with a given bucketsize, local ID, and latency tolerance. +func NewRoutingTable(bucketsize int, localID ID, latency time.Duration, m pstore.Metrics) *RoutingTable { + rt := &RoutingTable{ + Buckets: []*Bucket{newBucket()}, + bucketsize: bucketsize, + local: localID, + maxLatency: latency, + metrics: m, + PeerRemoved: func(peer.ID) {}, + PeerAdded: func(peer.ID) {}, + } + + return rt +} + +// Update adds or moves the given peer to the front of its respective bucket +func (rt *RoutingTable) Update(p peer.ID) (evicted peer.ID, err error) { + peerID := ConvertPeerID(p) + cpl := CommonPrefixLen(peerID, rt.local) + + rt.tabLock.Lock() + defer rt.tabLock.Unlock() + bucketID := cpl + if bucketID >= len(rt.Buckets) { + bucketID = len(rt.Buckets) - 1 + } + + bucket := rt.Buckets[bucketID] + if bucket.Has(p) { + // If the peer is already in the table, move it to the front. + // This signifies that it it "more active" and the less active nodes + // Will as a result tend towards the back of the list + bucket.MoveToFront(p) + return "", nil + } + + if rt.metrics.LatencyEWMA(p) > rt.maxLatency { + // Connection doesnt meet requirements, skip! + return "", ErrPeerRejectedHighLatency + } + + // We have enough space in the bucket (whether spawned or grouped). + if bucket.Len() < rt.bucketsize { + bucket.PushFront(p) + rt.PeerAdded(p) + return "", nil + } + + if bucketID == len(rt.Buckets)-1 { + // if the bucket is too large and this is the last bucket (i.e. wildcard), unfold it. + rt.nextBucket() + // the structure of the table has changed, so let's recheck if the peer now has a dedicated bucket. + bucketID = cpl + if bucketID >= len(rt.Buckets) { + bucketID = len(rt.Buckets) - 1 + } + bucket = rt.Buckets[bucketID] + if bucket.Len() >= rt.bucketsize { + // if after all the unfolding, we're unable to find room for this peer, scrap it. + return "", ErrPeerRejectedNoCapacity + } + bucket.PushFront(p) + rt.PeerAdded(p) + return "", nil + } + + return "", ErrPeerRejectedNoCapacity +} + +// Remove deletes a peer from the routing table. This is to be used +// when we are sure a node has disconnected completely. +func (rt *RoutingTable) Remove(p peer.ID) { + rt.tabLock.Lock() + defer rt.tabLock.Unlock() + peerID := ConvertPeerID(p) + cpl := CommonPrefixLen(peerID, rt.local) + + bucketID := cpl + if bucketID >= len(rt.Buckets) { + bucketID = len(rt.Buckets) - 1 + } + + bucket := rt.Buckets[bucketID] + if bucket.Remove(p) { + rt.PeerRemoved(p) + } +} + +func (rt *RoutingTable) nextBucket() { + // This is the last bucket, which allegedly is a mixed bag containing peers not belonging in dedicated (unfolded) buckets. + // _allegedly_ is used here to denote that *all* peers in the last bucket might feasibly belong to another bucket. + // This could happen if e.g. we've unfolded 4 buckets, and all peers in folded bucket 5 really belong in bucket 8. + bucket := rt.Buckets[len(rt.Buckets)-1] + newBucket := bucket.Split(len(rt.Buckets)-1, rt.local) + rt.Buckets = append(rt.Buckets, newBucket) + + // The newly formed bucket still contains too many peers. We probably just unfolded a empty bucket. + if newBucket.Len() >= rt.bucketsize { + // Keep unfolding the table until the last bucket is not overflowing. + rt.nextBucket() + } +} + +// Find a specific peer by ID or return nil +func (rt *RoutingTable) Find(id peer.ID) peer.ID { + srch := rt.NearestPeers(ConvertPeerID(id), 1) + if len(srch) == 0 || srch[0] != id { + return "" + } + return srch[0] +} + +// NearestPeer returns a single peer that is nearest to the given ID +func (rt *RoutingTable) NearestPeer(id ID) peer.ID { + peers := rt.NearestPeers(id, 1) + if len(peers) > 0 { + return peers[0] + } + + log.Debugf("NearestPeer: Returning nil, table size = %d", rt.Size()) + return "" +} + +// NearestPeers returns a list of the 'count' closest peers to the given ID +func (rt *RoutingTable) NearestPeers(id ID, count int) []peer.ID { + cpl := CommonPrefixLen(id, rt.local) + + rt.tabLock.RLock() + + // Get bucket at cpl index or last bucket + var bucket *Bucket + if cpl >= len(rt.Buckets) { + cpl = len(rt.Buckets) - 1 + } + bucket = rt.Buckets[cpl] + + peerArr := make(peerSorterArr, 0, count) + peerArr = copyPeersFromList(id, peerArr, bucket.list) + if len(peerArr) < count { + // In the case of an unusual split, one bucket may be short or empty. + // if this happens, search both surrounding buckets for nearby peers + if cpl > 0 { + plist := rt.Buckets[cpl-1].list + peerArr = copyPeersFromList(id, peerArr, plist) + } + + if cpl < len(rt.Buckets)-1 { + plist := rt.Buckets[cpl+1].list + peerArr = copyPeersFromList(id, peerArr, plist) + } + } + rt.tabLock.RUnlock() + + // Sort by distance to local peer + sort.Sort(peerArr) + + if count < len(peerArr) { + peerArr = peerArr[:count] + } + + out := make([]peer.ID, 0, len(peerArr)) + for _, p := range peerArr { + out = append(out, p.p) + } + + return out +} + +// Size returns the total number of peers in the routing table +func (rt *RoutingTable) Size() int { + var tot int + rt.tabLock.RLock() + for _, buck := range rt.Buckets { + tot += buck.Len() + } + rt.tabLock.RUnlock() + return tot +} + +// ListPeers takes a RoutingTable and returns a list of all peers from all buckets in the table. +func (rt *RoutingTable) ListPeers() []peer.ID { + var peers []peer.ID + rt.tabLock.RLock() + for _, buck := range rt.Buckets { + peers = append(peers, buck.Peers()...) + } + rt.tabLock.RUnlock() + return peers +} + +// Print prints a descriptive statement about the provided RoutingTable +func (rt *RoutingTable) Print() { + fmt.Printf("Routing Table, bs = %d, Max latency = %d\n", rt.bucketsize, rt.maxLatency) + rt.tabLock.RLock() + + for i, b := range rt.Buckets { + fmt.Printf("\tbucket: %d\n", i) + + b.lk.RLock() + for e := b.list.Front(); e != nil; e = e.Next() { + p := e.Value.(peer.ID) + fmt.Printf("\t\t- %s %s\n", p.Pretty(), rt.metrics.LatencyEWMA(p).String()) + } + b.lk.RUnlock() + } + rt.tabLock.RUnlock() +} diff --git a/vendor/github.com/libp2p/go-libp2p-kbucket/util.go b/vendor/github.com/libp2p/go-libp2p-kbucket/util.go new file mode 100644 index 00000000..058aa3c4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-kbucket/util.go @@ -0,0 +1,62 @@ +package kbucket + +import ( + "bytes" + "crypto/sha256" + "errors" + + u "github.com/ipfs/go-ipfs-util" + ks "github.com/libp2p/go-libp2p-kbucket/keyspace" + peer "github.com/libp2p/go-libp2p-peer" +) + +// Returned if a routing table query returns no results. This is NOT expected +// behaviour +var ErrLookupFailure = errors.New("failed to find any peer in table") + +// ID for IpfsDHT is in the XORKeySpace +// +// The type dht.ID signifies that its contents have been hashed from either a +// peer.ID or a util.Key. This unifies the keyspace +type ID []byte + +func (id ID) equal(other ID) bool { + return bytes.Equal(id, other) +} + +func (id ID) less(other ID) bool { + a := ks.Key{Space: ks.XORKeySpace, Bytes: id} + b := ks.Key{Space: ks.XORKeySpace, Bytes: other} + return a.Less(b) +} + +func xor(a, b ID) ID { + return ID(u.XOR(a, b)) +} + +func CommonPrefixLen(a, b ID) int { + return ks.ZeroPrefixLen(u.XOR(a, b)) +} + +// ConvertPeerID creates a DHT ID by hashing a Peer ID (Multihash) +func ConvertPeerID(id peer.ID) ID { + hash := sha256.Sum256([]byte(id)) + return hash[:] +} + +// ConvertKey creates a DHT ID by hashing a local key (String) +func ConvertKey(id string) ID { + hash := sha256.Sum256([]byte(id)) + return hash[:] +} + +// Closer returns true if a is closer to key than b is +func Closer(a, b peer.ID, key string) bool { + aid := ConvertPeerID(a) + bid := ConvertPeerID(b) + tgt := ConvertKey(key) + adist := xor(aid, tgt) + bdist := xor(bid, tgt) + + return adist.less(bdist) +} diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/.travis.yml b/vendor/github.com/libp2p/go-libp2p-loggables/.travis.yml new file mode 100644 index 00000000..dde69d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - /Users/raul/go/src/gx + - /Users/raul/go/pkg/mod + - /Users/raul/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/LICENSE b/vendor/github.com/libp2p/go-libp2p-loggables/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/Makefile b/vendor/github.com/libp2p/go-libp2p-loggables/Makefile new file mode 100644 index 00000000..7c146b10 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/Makefile @@ -0,0 +1,14 @@ +test: deps + go test -race -v ./... + +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + go get -t ./... + diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/README.md b/vendor/github.com/libp2p/go-libp2p-loggables/README.md new file mode 100644 index 00000000..d644151e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/README.md @@ -0,0 +1,30 @@ +# go-libp2p-loggables + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-libp2p-blue.svg?style=flat-square)](http://github.com/libp2p/libp2p) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> logging helpers for go-libp2p + +## Install + +``` +go get github.com/libp2p/go-libp2p-loggables +``` + +## Usage + +See https://godoc.org/github.com/libp2p/go-libp2p-loggables. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-loggables/issues)! + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2016 Jeromy Johnson. diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/codecov.yml b/vendor/github.com/libp2p/go-libp2p-loggables/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/go.mod b/vendor/github.com/libp2p/go-libp2p-loggables/go.mod new file mode 100644 index 00000000..de5b01d9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/go.mod @@ -0,0 +1,9 @@ +module github.com/libp2p/go-libp2p-loggables + +require ( + github.com/google/uuid v1.1.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/go.sum b/vendor/github.com/libp2p/go-libp2p-loggables/go.sum new file mode 100644 index 00000000..4e7c74c1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/go.sum @@ -0,0 +1,79 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/loggables.go b/vendor/github.com/libp2p/go-libp2p-loggables/loggables.go new file mode 100644 index 00000000..6fda0f7e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/loggables.go @@ -0,0 +1,80 @@ +// Package loggables includes a bunch of transaltor functions for commonplace/stdlib +// objects. This is boilerplate code that shouldn't change much, and not sprinkled +// all over the place (i.e. gather it here). +// +// Note: it may make sense to put all stdlib Loggable functions in the eventlog +// package. Putting it here for now in case we don't want to polute it. +package loggables + +import ( + "net" + + uuid "github.com/google/uuid" + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +// NetConn returns an eventlog.Metadata with the conn addresses +func NetConn(c net.Conn) logging.Loggable { + return logging.Metadata{ + "localAddr": c.LocalAddr(), + "remoteAddr": c.RemoteAddr(), + } +} + +// Error returns an eventlog.Metadata with an error +func Error(e error) logging.Loggable { + return logging.Metadata{ + "error": e.Error(), + } +} + +func Uuid(key string) logging.Metadata { + ids := "#UUID-ERROR#" + if id, err := uuid.NewRandom(); err == nil { + ids = id.String() + } + return logging.Metadata{ + key: ids, + } +} + +// Dial metadata is metadata for dial events +func Dial(sys string, lid, rid peer.ID, laddr, raddr ma.Multiaddr) DeferredMap { + m := DeferredMap{} + m["subsystem"] = sys + if lid != "" { + m["localPeer"] = func() interface{} { return lid.Pretty() } + } + if laddr != nil { + m["localAddr"] = func() interface{} { return laddr.String() } + } + if rid != "" { + m["remotePeer"] = func() interface{} { return rid.Pretty() } + } + if raddr != nil { + m["remoteAddr"] = func() interface{} { return raddr.String() } + } + return m +} + +// DeferredMap is a Loggable which may contain deferred values. +type DeferredMap map[string]interface{} + +// Loggable describes objects that can be marshalled into Metadata for logging +func (m DeferredMap) Loggable() map[string]interface{} { + m2 := map[string]interface{}{} + for k, v := range m { + + if vf, ok := v.(func() interface{}); ok { + // if it's a DeferredVal, call it. + m2[k] = vf() + + } else { + // else use the value as is. + m2[k] = v + } + } + return m2 +} diff --git a/vendor/github.com/libp2p/go-libp2p-loggables/package.json b/vendor/github.com/libp2p/go-libp2p-loggables/package.json new file mode 100644 index 00000000..d93bef55 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-loggables/package.json @@ -0,0 +1,42 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-loggables" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-loggables" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "google", + "hash": "QmSSeQqc5QeuefkaM6JFV5tSF9knLUkXKVhW1eYRiqe72W", + "name": "uuid", + "version": "0.1.0" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-loggables", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.33" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/.travis.yml b/vendor/github.com/libp2p/go-libp2p-metrics/.travis.yml new file mode 100644 index 00000000..dde69d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - /Users/raul/go/src/gx + - /Users/raul/go/pkg/mod + - /Users/raul/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/LICENSE b/vendor/github.com/libp2p/go-libp2p-metrics/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/Makefile b/vendor/github.com/libp2p/go-libp2p-metrics/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/README.md b/vendor/github.com/libp2p/go-libp2p-metrics/README.md new file mode 100644 index 00000000..5da7bb5f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/README.md @@ -0,0 +1,33 @@ +go-libp2p-metrics +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-metrics/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-metrics?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-metrics.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-metrics) + +> A connection wrapper for go-libp2p that provides bandwidth statistics for wrapped connections. + + +## Table of Contents + +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/bw_stats.go b/vendor/github.com/libp2p/go-libp2p-metrics/bw_stats.go new file mode 100644 index 00000000..3936312b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/bw_stats.go @@ -0,0 +1,83 @@ +package metrics + +import ( + flow "github.com/libp2p/go-flow-metrics" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +type Stats struct { + TotalIn int64 + TotalOut int64 + RateIn float64 + RateOut float64 +} + +type BandwidthCounter struct { + totalIn flow.Meter + totalOut flow.Meter + + protocolIn flow.MeterRegistry + protocolOut flow.MeterRegistry + + peerIn flow.MeterRegistry + peerOut flow.MeterRegistry +} + +func NewBandwidthCounter() *BandwidthCounter { + return new(BandwidthCounter) +} + +func (bwc *BandwidthCounter) LogSentMessage(size int64) { + bwc.totalOut.Mark(uint64(size)) +} + +func (bwc *BandwidthCounter) LogRecvMessage(size int64) { + bwc.totalIn.Mark(uint64(size)) +} + +func (bwc *BandwidthCounter) LogSentMessageStream(size int64, proto protocol.ID, p peer.ID) { + bwc.protocolOut.Get(string(proto)).Mark(uint64(size)) + bwc.peerOut.Get(string(p)).Mark(uint64(size)) +} + +func (bwc *BandwidthCounter) LogRecvMessageStream(size int64, proto protocol.ID, p peer.ID) { + bwc.protocolIn.Get(string(proto)).Mark(uint64(size)) + bwc.peerIn.Get(string(p)).Mark(uint64(size)) +} + +func (bwc *BandwidthCounter) GetBandwidthForPeer(p peer.ID) (out Stats) { + inSnap := bwc.peerIn.Get(string(p)).Snapshot() + outSnap := bwc.peerOut.Get(string(p)).Snapshot() + + return Stats{ + TotalIn: int64(inSnap.Total), + TotalOut: int64(outSnap.Total), + RateIn: inSnap.Rate, + RateOut: outSnap.Rate, + } +} + +func (bwc *BandwidthCounter) GetBandwidthForProtocol(proto protocol.ID) (out Stats) { + inSnap := bwc.protocolIn.Get(string(proto)).Snapshot() + outSnap := bwc.protocolOut.Get(string(proto)).Snapshot() + + return Stats{ + TotalIn: int64(inSnap.Total), + TotalOut: int64(outSnap.Total), + RateIn: inSnap.Rate, + RateOut: outSnap.Rate, + } +} + +func (bwc *BandwidthCounter) GetBandwidthTotals() (out Stats) { + inSnap := bwc.totalIn.Snapshot() + outSnap := bwc.totalOut.Snapshot() + + return Stats{ + TotalIn: int64(inSnap.Total), + TotalOut: int64(outSnap.Total), + RateIn: inSnap.Rate, + RateOut: outSnap.Rate, + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/codecov.yml b/vendor/github.com/libp2p/go-libp2p-metrics/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/go.mod b/vendor/github.com/libp2p/go-libp2p-metrics/go.mod new file mode 100644 index 00000000..ac2b430b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-libp2p-metrics + +require ( + github.com/libp2p/go-flow-metrics v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/go.sum b/vendor/github.com/libp2p/go-libp2p-metrics/go.sum new file mode 100644 index 00000000..41922ab6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/go.sum @@ -0,0 +1,60 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495 h1:6IyqGr3fnd0tM3YxipK27TUskaOVUjU2nG45yzwcQKY= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/interface.go b/vendor/github.com/libp2p/go-libp2p-metrics/interface.go new file mode 100644 index 00000000..ef1bb97e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/interface.go @@ -0,0 +1,16 @@ +package metrics + +import ( + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +type Reporter interface { + LogSentMessage(int64) + LogRecvMessage(int64) + LogSentMessageStream(int64, protocol.ID, peer.ID) + LogRecvMessageStream(int64, protocol.ID, peer.ID) + GetBandwidthForPeer(peer.ID) Stats + GetBandwidthForProtocol(protocol.ID) Stats + GetBandwidthTotals() Stats +} diff --git a/vendor/github.com/libp2p/go-libp2p-metrics/package.json b/vendor/github.com/libp2p/go-libp2p-metrics/package.json new file mode 100644 index 00000000..e4ac0ee4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-metrics/package.json @@ -0,0 +1,36 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-metrics" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-metrics" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + }, + { + "author": "Stebalien", + "hash": "QmQFXpvKpF34dK9HcE7k8Ksk8V4BwWYZtdEcjzu5aUgRVr", + "name": "go-flow-metrics", + "version": "0.2.0" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-libp2p-metrics", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.1.14" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-nat/.travis.yml b/vendor/github.com/libp2p/go-libp2p-nat/.travis.yml new file mode 100644 index 00000000..5163d693 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-nat/LICENSE b/vendor/github.com/libp2p/go-libp2p-nat/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-nat/README.md b/vendor/github.com/libp2p/go-libp2p-nat/README.md new file mode 100644 index 00000000..5d1ac972 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/README.md @@ -0,0 +1,46 @@ +go-libp2p-nat +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-nat.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-nat) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> NAT port mapping library for go-libp2p. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Usage + +```sh +# TODO +``` + +## Contribute + +PRs are welcome! Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-libp2p-nat/issues)! + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © Jeromy Johnson + +--- + +The last gx published version of this module was: 0.8.13: QmRbx7DYHgw3uNn2RuU2nv9Bdh96ZdtT65CG1CGPNRQcGZ diff --git a/vendor/github.com/libp2p/go-libp2p-nat/codecov.yml b/vendor/github.com/libp2p/go-libp2p-nat/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-nat/go.mod b/vendor/github.com/libp2p/go-libp2p-nat/go.mod new file mode 100644 index 00000000..e43298be --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/go.mod @@ -0,0 +1,9 @@ +module github.com/libp2p/go-libp2p-nat + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec // indirect + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-nat v0.0.3 + github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f +) diff --git a/vendor/github.com/libp2p/go-libp2p-nat/go.sum b/vendor/github.com/libp2p/go-libp2p-nat/go.sum new file mode 100644 index 00000000..39da03d4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/go.sum @@ -0,0 +1,46 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/libp2p/go-nat v0.0.3 h1:l6fKV+p0Xa354EqQOQP+d8CivdLM4kl5GxC1hSc/UeI= +github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/libp2p/go-libp2p-nat/mapping.go b/vendor/github.com/libp2p/go-libp2p-nat/mapping.go new file mode 100644 index 00000000..33f25f61 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/mapping.go @@ -0,0 +1,122 @@ +package nat + +import ( + "fmt" + "net" + "sync" + "time" + + "github.com/jbenet/goprocess" +) + +// Mapping represents a port mapping in a NAT. +type Mapping interface { + // NAT returns the NAT object this Mapping belongs to. + NAT() *NAT + + // Protocol returns the protocol of this port mapping. This is either + // "tcp" or "udp" as no other protocols are likely to be NAT-supported. + Protocol() string + + // InternalPort returns the internal device port. Mapping will continue to + // try to map InternalPort() to an external facing port. + InternalPort() int + + // ExternalPort returns the external facing port. If the mapping is not + // established, port will be 0 + ExternalPort() int + + // ExternalAddr returns the external facing address. If the mapping is not + // established, addr will be nil, and and ErrNoMapping will be returned. + ExternalAddr() (addr net.Addr, err error) + + // Close closes the port mapping + Close() error +} + +// keeps republishing +type mapping struct { + sync.Mutex // guards all fields + + nat *NAT + proto string + intport int + extport int + permanent bool + proc goprocess.Process + + cached net.IP + cacheTime time.Time + cacheLk sync.Mutex +} + +func (m *mapping) NAT() *NAT { + m.Lock() + defer m.Unlock() + return m.nat +} + +func (m *mapping) Protocol() string { + m.Lock() + defer m.Unlock() + return m.proto +} + +func (m *mapping) InternalPort() int { + m.Lock() + defer m.Unlock() + return m.intport +} + +func (m *mapping) ExternalPort() int { + m.Lock() + defer m.Unlock() + return m.extport +} + +func (m *mapping) setExternalPort(p int) { + m.Lock() + defer m.Unlock() + m.extport = p +} + +func (m *mapping) ExternalAddr() (net.Addr, error) { + m.cacheLk.Lock() + defer m.cacheLk.Unlock() + oport := m.ExternalPort() + if oport == 0 { + // dont even try right now. + return nil, ErrNoMapping + } + + if time.Since(m.cacheTime) >= CacheTime { + m.nat.natmu.Lock() + cval, err := m.nat.nat.GetExternalAddress() + m.nat.natmu.Unlock() + + if err != nil { + return nil, err + } + + m.cached = cval + m.cacheTime = time.Now() + } + switch m.Protocol() { + case "tcp": + return &net.TCPAddr{ + IP: m.cached, + Port: oport, + }, nil + case "udp": + return &net.UDPAddr{ + IP: m.cached, + Port: oport, + }, nil + default: + panic(fmt.Sprintf("invalid protocol %q", m.Protocol())) + } +} + +func (m *mapping) Close() error { + return m.proc.Close() +} diff --git a/vendor/github.com/libp2p/go-libp2p-nat/nat.go b/vendor/github.com/libp2p/go-libp2p-nat/nat.go new file mode 100644 index 00000000..178f7d01 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/nat.go @@ -0,0 +1,210 @@ +package nat + +import ( + "context" + "errors" + "fmt" + "sync" + "time" + + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" + periodic "github.com/jbenet/goprocess/periodic" + nat "github.com/libp2p/go-nat" +) + +var ( + // ErrNoMapping signals no mapping exists for an address + ErrNoMapping = errors.New("mapping not established") +) + +var log = logging.Logger("nat") + +// MappingDuration is a default port mapping duration. +// Port mappings are renewed every (MappingDuration / 3) +const MappingDuration = time.Second * 60 + +// CacheTime is the time a mapping will cache an external address for +const CacheTime = time.Second * 15 + +// DiscoverNAT looks for a NAT device in the network and +// returns an object that can manage port mappings. +func DiscoverNAT(ctx context.Context) (*NAT, error) { + var ( + natInstance nat.NAT + err error + ) + + done := make(chan struct{}) + go func() { + defer close(done) + // This will abort in 10 seconds anyways. + natInstance, err = nat.DiscoverGateway() + }() + + select { + case <-done: + case <-ctx.Done(): + return nil, ctx.Err() + } + + if err != nil { + return nil, err + } + + // Log the device addr. + addr, err := natInstance.GetDeviceAddress() + if err != nil { + log.Debug("DiscoverGateway address error:", err) + } else { + log.Debug("DiscoverGateway address:", addr) + } + + return newNAT(natInstance), nil +} + +// NAT is an object that manages address port mappings in +// NATs (Network Address Translators). It is a long-running +// service that will periodically renew port mappings, +// and keep an up-to-date list of all the external addresses. +type NAT struct { + natmu sync.Mutex + nat nat.NAT + proc goprocess.Process + + mappingmu sync.RWMutex // guards mappings + mappings map[*mapping]struct{} + + Notifier +} + +func newNAT(realNAT nat.NAT) *NAT { + return &NAT{ + nat: realNAT, + proc: goprocess.WithParent(goprocess.Background()), + mappings: make(map[*mapping]struct{}), + } +} + +// Close shuts down all port mappings. NAT can no longer be used. +func (nat *NAT) Close() error { + return nat.proc.Close() +} + +// Process returns the nat's life-cycle manager, for making it listen +// to close signals. +func (nat *NAT) Process() goprocess.Process { + return nat.proc +} + +// Mappings returns a slice of all NAT mappings +func (nat *NAT) Mappings() []Mapping { + nat.mappingmu.Lock() + maps2 := make([]Mapping, 0, len(nat.mappings)) + for m := range nat.mappings { + maps2 = append(maps2, m) + } + nat.mappingmu.Unlock() + return maps2 +} + +func (nat *NAT) addMapping(m *mapping) { + // make mapping automatically close when nat is closed. + nat.proc.AddChild(m.proc) + + nat.mappingmu.Lock() + nat.mappings[m] = struct{}{} + nat.mappingmu.Unlock() +} + +func (nat *NAT) rmMapping(m *mapping) { + nat.mappingmu.Lock() + delete(nat.mappings, m) + nat.mappingmu.Unlock() +} + +// NewMapping attemps to construct a mapping on protocol and internal port +// It will also periodically renew the mapping until the returned Mapping +// -- or its parent NAT -- is Closed. +// +// May not succeed, and mappings may change over time; +// NAT devices may not respect our port requests, and even lie. +// Clients should not store the mapped results, but rather always +// poll our object for the latest mappings. +func (nat *NAT) NewMapping(protocol string, port int) (Mapping, error) { + if nat == nil { + return nil, fmt.Errorf("no nat available") + } + + switch protocol { + case "tcp", "udp": + default: + return nil, fmt.Errorf("invalid protocol: %s", protocol) + } + + m := &mapping{ + intport: port, + nat: nat, + proto: protocol, + } + + m.proc = goprocess.WithTeardown(func() error { + nat.rmMapping(m) + nat.natmu.Lock() + defer nat.natmu.Unlock() + nat.nat.DeletePortMapping(m.Protocol(), m.InternalPort()) + return nil + }) + + nat.addMapping(m) + + m.proc.AddChild(periodic.Every(MappingDuration/3, func(worker goprocess.Process) { + nat.establishMapping(m) + })) + + // do it once synchronously, so first mapping is done right away, and before exiting, + // allowing users -- in the optimistic case -- to use results right after. + nat.establishMapping(m) + return m, nil +} + +func (nat *NAT) establishMapping(m *mapping) { + oldport := m.ExternalPort() + + log.Debugf("Attempting port map: %s/%d", m.Protocol(), m.InternalPort()) + comment := "libp2p" + + nat.natmu.Lock() + newport, err := nat.nat.AddPortMapping(m.Protocol(), m.InternalPort(), comment, MappingDuration) + if err != nil { + // Some hardware does not support mappings with timeout, so try that + newport, err = nat.nat.AddPortMapping(m.Protocol(), m.InternalPort(), comment, 0) + } + nat.natmu.Unlock() + + if err != nil || newport == 0 { + m.setExternalPort(0) // clear mapping + // TODO: log.Event + log.Warningf("failed to establish port mapping: %s", err) + nat.Notifier.notifyAll(func(n Notifiee) { + n.MappingFailed(nat, m, oldport, err) + }) + + // we do not close if the mapping failed, + // because it may work again next time. + return + } + + m.setExternalPort(newport) + log.Debugf("NAT Mapping: %s --> %s (%s)", m.ExternalPort(), m.InternalPort(), m.Protocol()) + if oldport != 0 && newport != oldport { + log.Debugf("failed to renew same port mapping: ch %d -> %d", oldport, newport) + nat.Notifier.notifyAll(func(n Notifiee) { + n.MappingChanged(nat, m, oldport, newport) + }) + } + + nat.Notifier.notifyAll(func(n Notifiee) { + n.MappingSuccess(nat, m) + }) +} diff --git a/vendor/github.com/libp2p/go-libp2p-nat/notifier.go b/vendor/github.com/libp2p/go-libp2p-nat/notifier.go new file mode 100644 index 00000000..10fb6ac6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-nat/notifier.go @@ -0,0 +1,47 @@ +package nat + +import ( + notifier "github.com/whyrusleeping/go-notifier" +) + +// Notifier is an object that assists NAT in notifying listeners. +// It is implemented using thirdparty/notifier +type Notifier struct { + n notifier.Notifier +} + +func (n *Notifier) notifyAll(notify func(n Notifiee)) { + n.n.NotifyAll(func(n notifier.Notifiee) { + notify(n.(Notifiee)) + }) +} + +// Notify signs up notifiee to listen to NAT events. +func (n *Notifier) Notify(notifiee Notifiee) { + n.n.Notify(n) +} + +// StopNotify stops signaling events to notifiee. +func (n *Notifier) StopNotify(notifiee Notifiee) { + n.n.StopNotify(notifiee) +} + +// Notifiee is an interface objects must implement to listen to NAT events. +type Notifiee interface { + + // Called every time a successful mapping happens + // Warning: the port mapping may have changed. If that is the + // case, both MappingSuccess and MappingChanged are called. + MappingSuccess(nat *NAT, m Mapping) + + // Called when mapping a port succeeds, but the mapping is + // with a different port than an earlier success. + MappingChanged(nat *NAT, m Mapping, oldport, newport int) + + // Called when a port mapping fails. NAT will continue attempting after + // the next period. To stop trying, use: mapping.Close(). After this failure, + // mapping.ExternalPort() will be zero, and nat.ExternalAddrs() will not + // return the address for this mapping. With luck, the next attempt will + // succeed, without the client needing to do anything. + MappingFailed(nat *NAT, m Mapping, oldport int, err error) +} diff --git a/vendor/github.com/libp2p/go-libp2p-net/.travis.yml b/vendor/github.com/libp2p/go-libp2p-net/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-net/LICENSE b/vendor/github.com/libp2p/go-libp2p-net/LICENSE new file mode 100644 index 00000000..0c354d06 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016-2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-net/Makefile b/vendor/github.com/libp2p/go-libp2p-net/Makefile new file mode 100644 index 00000000..5c996090 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/Makefile @@ -0,0 +1,13 @@ +all: deps + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-net/README.md b/vendor/github.com/libp2p/go-libp2p-net/README.md new file mode 100644 index 00000000..b7d6b505 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/README.md @@ -0,0 +1,44 @@ +# go-libp2p-net + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> Network interfaces for go-libp2p + +The libp2p Network package handles all of the peer-to-peer networking. It connects to other hosts, it encrypts communications, it muxes messages between the network's client services and target hosts. It has multiple subcomponents: + +- `Conn` - a connection to a single Peer + - `MultiConn` - a set of connections to a single Peer + - `SecureConn` - an encrypted (tls-like) connection +- `Swarm` - holds connections to Peers, multiplexes from/to each `MultiConn` +- `Muxer` - multiplexes between `Services` and `Swarm`. Handles `Request/Reply`. + - `Service` - connects between an outside client service and Network. + - `Handler` - the client service part that handles requests + +It looks a bit like this: + +[![](https://docs.google.com/drawings/d/1FvU7GImRsb9GvAWDDo1le85jIrnFJNVB_OTPXC15WwM/pub?h=480)] + +## Install + +```sh +go get libp2p/go-libp2p-net +``` + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-libp2p-net/issues)! + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +[MIT](LICENSE) © 2016 Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-net/codecov.yml b/vendor/github.com/libp2p/go-libp2p-net/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-net/go.mod b/vendor/github.com/libp2p/go-libp2p-net/go.mod new file mode 100644 index 00000000..54482511 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/go.mod @@ -0,0 +1,11 @@ +module github.com/libp2p/go-libp2p-net + +require ( + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-net/go.sum b/vendor/github.com/libp2p/go-libp2p-net/go.sum new file mode 100644 index 00000000..9af7b291 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/go.sum @@ -0,0 +1,104 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-net/interface.go b/vendor/github.com/libp2p/go-libp2p-net/interface.go new file mode 100644 index 00000000..cf143664 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/interface.go @@ -0,0 +1,224 @@ +package net + +import ( + "context" + "errors" + "io" + + "github.com/jbenet/goprocess" + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + protocol "github.com/libp2p/go-libp2p-protocol" + smux "github.com/libp2p/go-stream-muxer" + ma "github.com/multiformats/go-multiaddr" +) + +// MessageSizeMax is a soft (recommended) maximum for network messages. +// One can write more, as the interface is a stream. But it is useful +// to bunch it up into multiple read/writes when the whole message is +// a single, large serialized object. +const MessageSizeMax = 1 << 22 // 4 MB + +// Stream represents a bidirectional channel between two agents in +// the IPFS network. "agent" is as granular as desired, potentially +// being a "request -> reply" pair, or whole protocols. +// Streams are backed by stream-muxer streams underneath the hood. +type Stream interface { + smux.Stream + + Protocol() protocol.ID + SetProtocol(protocol.ID) + + // Stat returns metadata pertaining to this stream. + Stat() Stat + + // Conn returns the connection this stream is part of. + Conn() Conn +} + +// Direction represents which peer in a stream initiated a connection. +type Direction int + +const ( + // DirUnknown is the default direction. + DirUnknown Direction = iota + // DirInbound is for when the remote peer initiated a connection. + DirInbound + // DirOutbound is for when the local peer initiated a connection. + DirOutbound +) + +// Stat stores metadata pertaining to a given Stream/Conn. +type Stat struct { + Direction Direction + Extra map[interface{}]interface{} +} + +// StreamHandler is the type of function used to listen for +// streams opened by the remote side. +type StreamHandler func(Stream) + +// ConnSecurity is the interface that one can mix into a connection interface to +// give it the security methods. +type ConnSecurity interface { + // LocalPeer returns our peer ID + LocalPeer() peer.ID + + // LocalPrivateKey returns our private key + LocalPrivateKey() ic.PrivKey + + // RemotePeer returns the peer ID of the remote peer. + RemotePeer() peer.ID + + // RemotePublicKey returns the public key of the remote peer. + RemotePublicKey() ic.PubKey +} + +// ConnMultiaddrs is an interface mixin for connection types that provide multiaddr +// addresses for the endpoints. +type ConnMultiaddrs interface { + // LocalMultiaddr returns the local Multiaddr associated + // with this connection + LocalMultiaddr() ma.Multiaddr + + // RemoteMultiaddr returns the remote Multiaddr associated + // with this connection + RemoteMultiaddr() ma.Multiaddr +} + +// Conn is a connection to a remote peer. It multiplexes streams. +// Usually there is no need to use a Conn directly, but it may +// be useful to get information about the peer on the other side: +// stream.Conn().RemotePeer() +type Conn interface { + io.Closer + + ConnSecurity + ConnMultiaddrs + + // NewStream constructs a new Stream over this conn. + NewStream() (Stream, error) + + // GetStreams returns all open streams over this conn. + GetStreams() []Stream + + // Stat stores metadata pertaining to this conn. + Stat() Stat +} + +// ConnHandler is the type of function used to listen for +// connections opened by the remote side. +type ConnHandler func(Conn) + +// Network is the interface used to connect to the outside world. +// It dials and listens for connections. it uses a Swarm to pool +// connnections (see swarm pkg, and peerstream.Swarm). Connections +// are encrypted with a TLS-like protocol. +type Network interface { + Dialer + io.Closer + + // SetStreamHandler sets the handler for new streams opened by the + // remote side. This operation is threadsafe. + SetStreamHandler(StreamHandler) + + // SetConnHandler sets the handler for new connections opened by the + // remote side. This operation is threadsafe. + SetConnHandler(ConnHandler) + + // NewStream returns a new stream to given peer p. + // If there is no connection to p, attempts to create one. + NewStream(context.Context, peer.ID) (Stream, error) + + // Listen tells the network to start listening on given multiaddrs. + Listen(...ma.Multiaddr) error + + // ListenAddresses returns a list of addresses at which this network listens. + ListenAddresses() []ma.Multiaddr + + // InterfaceListenAddresses returns a list of addresses at which this network + // listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to + // use the known local interfaces. + InterfaceListenAddresses() ([]ma.Multiaddr, error) + + // Process returns the network's Process + Process() goprocess.Process +} + +// There are no addresses associated with a peer when they were needed. +var ErrNoRemoteAddrs = errors.New("no remote addresses") + +// ErrNoConn is returned when attempting to open a stream to a peer with the NoDial +// option and no usable connection is available. +var ErrNoConn = errors.New("no usable connection to peer") + +// Dialer represents a service that can dial out to peers +// (this is usually just a Network, but other services may not need the whole +// stack, and thus it becomes easier to mock) +type Dialer interface { + + // Peerstore returns the internal peerstore + // This is useful to tell the dialer about a new address for a peer. + // Or use one of the public keys found out over the network. + Peerstore() pstore.Peerstore + + // LocalPeer returns the local peer associated with this network + LocalPeer() peer.ID + + // DialPeer establishes a connection to a given peer + DialPeer(context.Context, peer.ID) (Conn, error) + + // ClosePeer closes the connection to a given peer + ClosePeer(peer.ID) error + + // Connectedness returns a state signaling connection capabilities + Connectedness(peer.ID) Connectedness + + // Peers returns the peers connected + Peers() []peer.ID + + // Conns returns the connections in this Netowrk + Conns() []Conn + + // ConnsToPeer returns the connections in this Netowrk for given peer. + ConnsToPeer(p peer.ID) []Conn + + // Notify/StopNotify register and unregister a notifiee for signals + Notify(Notifiee) + StopNotify(Notifiee) +} + +// Connectedness signals the capacity for a connection with a given node. +// It is used to signal to services and other peers whether a node is reachable. +type Connectedness int + +const ( + // NotConnected means no connection to peer, and no extra information (default) + NotConnected Connectedness = iota + + // Connected means has an open, live connection to peer + Connected + + // CanConnect means recently connected to peer, terminated gracefully + CanConnect + + // CannotConnect means recently attempted connecting but failed to connect. + // (should signal "made effort, failed") + CannotConnect +) + +// Notifiee is an interface for an object wishing to receive +// notifications from a Network. +type Notifiee interface { + Listen(Network, ma.Multiaddr) // called when network starts listening on an addr + ListenClose(Network, ma.Multiaddr) // called when network stops listening on an addr + Connected(Network, Conn) // called when a connection opened + Disconnected(Network, Conn) // called when a connection closed + OpenedStream(Network, Stream) // called when a stream opened + ClosedStream(Network, Stream) // called when a stream closed + + // TODO + // PeerConnected(Network, peer.ID) // called when a peer connected + // PeerDisconnected(Network, peer.ID) // called when a peer disconnected +} diff --git a/vendor/github.com/libp2p/go-libp2p-net/notifiee.go b/vendor/github.com/libp2p/go-libp2p-net/notifiee.go new file mode 100644 index 00000000..74a80f5c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/notifiee.go @@ -0,0 +1,63 @@ +package net + +import ( + ma "github.com/multiformats/go-multiaddr" +) + +// NotifyBundle implements Notifiee by calling any of the functions set on it, +// and nop'ing if they are unset. This is the easy way to register for +// notifications. +type NotifyBundle struct { + ListenF func(Network, ma.Multiaddr) + ListenCloseF func(Network, ma.Multiaddr) + + ConnectedF func(Network, Conn) + DisconnectedF func(Network, Conn) + + OpenedStreamF func(Network, Stream) + ClosedStreamF func(Network, Stream) +} + +var _ Notifiee = (*NotifyBundle)(nil) + +// Listen calls ListenF if it is not null. +func (nb *NotifyBundle) Listen(n Network, a ma.Multiaddr) { + if nb.ListenF != nil { + nb.ListenF(n, a) + } +} + +// ListenClose calls ListenCloseF if it is not null. +func (nb *NotifyBundle) ListenClose(n Network, a ma.Multiaddr) { + if nb.ListenCloseF != nil { + nb.ListenCloseF(n, a) + } +} + +// Connected calls ConnectedF if it is not null. +func (nb *NotifyBundle) Connected(n Network, c Conn) { + if nb.ConnectedF != nil { + nb.ConnectedF(n, c) + } +} + +// Disconnected calls DisconnectedF if it is not null. +func (nb *NotifyBundle) Disconnected(n Network, c Conn) { + if nb.DisconnectedF != nil { + nb.DisconnectedF(n, c) + } +} + +// OpenedStream calls OpenedStreamF if it is not null. +func (nb *NotifyBundle) OpenedStream(n Network, s Stream) { + if nb.OpenedStreamF != nil { + nb.OpenedStreamF(n, s) + } +} + +// ClosedStream calls ClosedStreamF if it is not null. +func (nb *NotifyBundle) ClosedStream(n Network, s Stream) { + if nb.ClosedStreamF != nil { + nb.ClosedStreamF(n, s) + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-net/options.go b/vendor/github.com/libp2p/go-libp2p-net/options.go new file mode 100644 index 00000000..16d25f16 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/options.go @@ -0,0 +1,25 @@ +package net + +import ( + "context" +) + +type noDialCtxKey struct{} + +var noDial = noDialCtxKey{} + +// WithNoDial constructs a new context with an option that instructs the network +// to not attempt a new dial when opening a stream. +func WithNoDial(ctx context.Context, reason string) context.Context { + return context.WithValue(ctx, noDial, reason) +} + +// GetNoDial returns true if the no dial option is set in the context. +func GetNoDial(ctx context.Context) (nodial bool, reason string) { + v := ctx.Value(noDial) + if v != nil { + return true, v.(string) + } + + return false, "" +} diff --git a/vendor/github.com/libp2p/go-libp2p-net/package.json b/vendor/github.com/libp2p/go-libp2p-net/package.json new file mode 100644 index 00000000..efac1a00 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/package.json @@ -0,0 +1,60 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-net" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-net" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "author": "whyrusleeping", + "hash": "QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP", + "name": "goprocess", + "version": "1.0.0" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", + "name": "go-stream-muxer", + "version": "3.1.0" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-libp2p-net", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.0.30" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-net/stream_util.go b/vendor/github.com/libp2p/go-libp2p-net/stream_util.go new file mode 100644 index 00000000..762b8116 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/stream_util.go @@ -0,0 +1,54 @@ +package net + +import ( + "errors" + "io" + "time" +) + +// EOFTimeout is the maximum amount of time to wait to successfully observe an +// EOF on the stream. Defaults to 60 seconds. +var EOFTimeout = time.Second * 60 + +// ErrExpectedEOF is returned when we read data while expecting an EOF. +var ErrExpectedEOF = errors.New("read data when expecting EOF") + +// FullClose closes the stream and waits to read an EOF from the other side. +// +// * If it reads any data *before* the EOF, it resets the stream. +// * If it doesn't read an EOF within EOFTimeout, it resets the stream. +// +// You'll likely want to invoke this as `go FullClose(stream)` to close the +// stream in the background. +func FullClose(s Stream) error { + if err := s.Close(); err != nil { + s.Reset() + return err + } + return AwaitEOF(s) +} + +// AwaitEOF waits for an EOF on the given stream, returning an error if that +// fails. It waits at most EOFTimeout (defaults to 1 minute) after which it +// resets the stream. +func AwaitEOF(s Stream) error { + // So we don't wait forever + s.SetDeadline(time.Now().Add(EOFTimeout)) + + // We *have* to observe the EOF. Otherwise, we leak the stream. + // Now, technically, we should do this *before* + // returning from SendMessage as the message + // hasn't really been sent yet until we see the + // EOF but we don't actually *know* what + // protocol the other side is speaking. + n, err := s.Read([]byte{0}) + if n > 0 || err == nil { + s.Reset() + return ErrExpectedEOF + } + if err != io.EOF { + s.Reset() + return err + } + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-net/timeouts.go b/vendor/github.com/libp2p/go-libp2p-net/timeouts.go new file mode 100644 index 00000000..922232c0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-net/timeouts.go @@ -0,0 +1,29 @@ +package net + +import ( + "context" + "time" +) + +// DialPeerTimeout is the default timeout for a single call to `DialPeer`. When +// there are multiple concurrent calls to `DialPeer`, this timeout will apply to +// each independently. +var DialPeerTimeout = 60 * time.Second + +type dialPeerTimeoutCtxKey struct{} + +// GetDialPeerTimeout returns the current DialPeer timeout (or the default). +func GetDialPeerTimeout(ctx context.Context) time.Duration { + if to, ok := ctx.Value(dialPeerTimeoutCtxKey{}).(time.Duration); ok { + return to + } + return DialPeerTimeout +} + +// WithDialPeerTimeout returns a new context with the DialPeer timeout applied. +// +// This timeout overrides the default DialPeerTimeout and applies per-dial +// independently. +func WithDialPeerTimeout(ctx context.Context, timeout time.Duration) context.Context { + return context.WithValue(ctx, dialPeerTimeoutCtxKey{}, timeout) +} diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/.travis.yml b/vendor/github.com/libp2p/go-libp2p-netutil/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/LICENSE b/vendor/github.com/libp2p/go-libp2p-netutil/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/Makefile b/vendor/github.com/libp2p/go-libp2p-netutil/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/README.md b/vendor/github.com/libp2p/go-libp2p-netutil/README.md new file mode 100644 index 00000000..6a212fb1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/README.md @@ -0,0 +1,10 @@ +go-libp2p-netutil +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![codecov](https://codecov.io/gh/libp2p/go-libp2p-netutil/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-netutil) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-netutil.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-netutil) + +> Utility methods for creating public and private keys for use in tests. \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/codecov.yml b/vendor/github.com/libp2p/go-libp2p-netutil/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/go.mod b/vendor/github.com/libp2p/go-libp2p-netutil/go.mod new file mode 100644 index 00000000..fe1fd0b3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/go.mod @@ -0,0 +1,9 @@ +module github.com/libp2p/go-libp2p-netutil + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-testutil v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/go.sum b/vendor/github.com/libp2p/go-libp2p-netutil/go.sum new file mode 100644 index 00000000..0a044a24 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/go.sum @@ -0,0 +1,79 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/key.go b/vendor/github.com/libp2p/go-libp2p-netutil/key.go new file mode 100644 index 00000000..1ba25cdb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/key.go @@ -0,0 +1,178 @@ +package testutil + +import ( + "bytes" + "crypto/rand" + "io" + "testing" + + logging "github.com/ipfs/go-log" + ic "github.com/libp2p/go-libp2p-crypto" + pb "github.com/libp2p/go-libp2p-crypto/pb" + peer "github.com/libp2p/go-libp2p-peer" + testutil "github.com/libp2p/go-testutil" + + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("boguskey") + +// TestBogusPrivateKey is a key used for testing (to avoid expensive keygen) +type TestBogusPrivateKey []byte + +// TestBogusPublicKey is a key used for testing (to avoid expensive keygen) +type TestBogusPublicKey []byte + +func (pk TestBogusPublicKey) Verify(data, sig []byte) (bool, error) { + log.Errorf("TestBogusPublicKey.Verify -- this better be a test!") + return bytes.Equal(data, reverse(sig)), nil +} + +func (pk TestBogusPublicKey) Bytes() ([]byte, error) { + return []byte(pk), nil +} + +func (pk TestBogusPublicKey) Encrypt(b []byte) ([]byte, error) { + log.Errorf("TestBogusPublicKey.Encrypt -- this better be a test!") + return reverse(b), nil +} + +// Equals checks whether this key is equal to another +func (pk TestBogusPublicKey) Equals(k ic.Key) bool { + return ic.KeyEqual(pk, k) +} + +// Raw returns the raw bytes of the key (not wrapped in the +// libp2p-crypto protobuf). +func (pk TestBogusPublicKey) Raw() ([]byte, error) { + return pk, nil +} + +// Type returns the protobof key type. +func (pk TestBogusPublicKey) Type() pb.KeyType { + return pb.KeyType_RSA +} + +func (sk TestBogusPrivateKey) GenSecret() []byte { + return []byte(sk) +} + +func (sk TestBogusPrivateKey) Sign(message []byte) ([]byte, error) { + log.Errorf("TestBogusPrivateKey.Sign -- this better be a test!") + return reverse(message), nil +} + +func (sk TestBogusPrivateKey) GetPublic() ic.PubKey { + return TestBogusPublicKey(sk) +} + +func (sk TestBogusPrivateKey) Decrypt(b []byte) ([]byte, error) { + log.Errorf("TestBogusPrivateKey.Decrypt -- this better be a test!") + return reverse(b), nil +} + +func (sk TestBogusPrivateKey) Bytes() ([]byte, error) { + return []byte(sk), nil +} + +// Equals checks whether this key is equal to another +func (sk TestBogusPrivateKey) Equals(k ic.Key) bool { + return ic.KeyEqual(sk, k) +} + +// Raw returns the raw bytes of the key (not wrapped in the +// libp2p-crypto protobuf). +func (sk TestBogusPrivateKey) Raw() ([]byte, error) { + return sk, nil +} + +// Type returns the protobof key type. +func (pk TestBogusPrivateKey) Type() pb.KeyType { + return pb.KeyType_RSA +} + +func RandTestBogusPrivateKey() (TestBogusPrivateKey, error) { + k := make([]byte, 5) + if _, err := io.ReadFull(rand.Reader, k); err != nil { + return nil, err + } + return TestBogusPrivateKey(k), nil +} + +func RandTestBogusPublicKey() (TestBogusPublicKey, error) { + k, err := RandTestBogusPrivateKey() + return TestBogusPublicKey(k), err +} + +func RandTestBogusPrivateKeyOrFatal(t *testing.T) TestBogusPrivateKey { + k, err := RandTestBogusPrivateKey() + if err != nil { + t.Fatal(err) + } + return k +} + +func RandTestBogusPublicKeyOrFatal(t *testing.T) TestBogusPublicKey { + k, err := RandTestBogusPublicKey() + if err != nil { + t.Fatal(err) + } + return k +} + +func RandTestBogusIdentity() (testutil.Identity, error) { + k, err := RandTestBogusPrivateKey() + if err != nil { + return nil, err + } + + id, err := peer.IDFromPrivateKey(k) + if err != nil { + return nil, err + } + + return &identity{ + k: k, + id: id, + a: testutil.RandLocalTCPAddress(), + }, nil +} + +func RandTestBogusIdentityOrFatal(t *testing.T) testutil.Identity { + k, err := RandTestBogusIdentity() + if err != nil { + t.Fatal(err) + } + return k +} + +// identity is a temporary shim to delay binding of PeerNetParams. +type identity struct { + k TestBogusPrivateKey + id peer.ID + a ma.Multiaddr +} + +func (p *identity) ID() peer.ID { + return p.id +} + +func (p *identity) Address() ma.Multiaddr { + return p.a +} + +func (p *identity) PrivateKey() ic.PrivKey { + return p.k +} + +func (p *identity) PublicKey() ic.PubKey { + return p.k.GetPublic() +} + +func reverse(a []byte) []byte { + b := make([]byte, len(a)) + for i := 0; i < len(a); i++ { + b[i] = a[len(a)-1-i] + } + return b +} diff --git a/vendor/github.com/libp2p/go-libp2p-netutil/package.json b/vendor/github.com/libp2p/go-libp2p-netutil/package.json new file mode 100644 index 00000000..de55ff64 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-netutil/package.json @@ -0,0 +1,53 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-netutil" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-netutil" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W", + "name": "go-testutil", + "version": "1.2.19" + } + ], + "gxVersion": "0.10.0", + "language": "go", + "license": "", + "name": "go-libp2p-netutil", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.4.23" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-peer/.travis.yml b/vendor/github.com/libp2p/go-libp2p-peer/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-peer/LICENSE b/vendor/github.com/libp2p/go-libp2p-peer/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-peer/Makefile b/vendor/github.com/libp2p/go-libp2p-peer/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-peer/README.md b/vendor/github.com/libp2p/go-libp2p-peer/README.md new file mode 100644 index 00000000..035e168a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/README.md @@ -0,0 +1,33 @@ +# go-libp2p-peer + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](https://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-peer?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-peer) +[![Coverage Status](https://codecov.io/gh/libp2p/go-libp2p-peer/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-peer/branch/master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-peer.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-peer) + +> PKI based identities for use in go-libp2p + +## Install + +TODO + +## Usage + +TODO + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-peer/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-peer/codecov.yml b/vendor/github.com/libp2p/go-libp2p-peer/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-peer/go.mod b/vendor/github.com/libp2p/go-libp2p-peer/go.mod new file mode 100644 index 00000000..3880bb10 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-libp2p-peer + +require ( + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/mr-tron/base58 v1.1.0 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-peer/go.sum b/vendor/github.com/libp2p/go-libp2p-peer/go.sum new file mode 100644 index 00000000..fd8fc4d0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/go.sum @@ -0,0 +1,54 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495 h1:6IyqGr3fnd0tM3YxipK27TUskaOVUjU2nG45yzwcQKY= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-peer/package.json b/vendor/github.com/libp2p/go-libp2p-peer/package.json new file mode 100644 index 00000000..a9b6b699 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/package.json @@ -0,0 +1,36 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-peer" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-peer" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "mr-tron", + "hash": "QmWFAMPqsEyUX7gDUsRVmMWz59FxSpJ1b2v6bJ1yYzo7jY", + "name": "go-base58-fast", + "version": "0.1.1" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-peer", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.1.2" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-peer/peer.go b/vendor/github.com/libp2p/go-libp2p-peer/peer.go new file mode 100644 index 00000000..bd1fbd3a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/peer.go @@ -0,0 +1,181 @@ +// Package peer implements an object used to represent peers in the ipfs network. +package peer + +import ( + "encoding/hex" + "errors" + "fmt" + + ic "github.com/libp2p/go-libp2p-crypto" + b58 "github.com/mr-tron/base58/base58" + mh "github.com/multiformats/go-multihash" +) + +var ( + // ErrEmptyPeerID is an error for empty peer ID. + ErrEmptyPeerID = errors.New("empty peer ID") + // ErrNoPublicKey is an error for peer IDs that don't embed public keys + ErrNoPublicKey = errors.New("public key is not embedded in peer ID") +) + +// AdvancedEnableInlining enables automatically inlining keys shorter than +// 42 bytes into the peer ID (using the "identity" multihash function). +// +// WARNING: This flag will likely be set to false in the future and eventually +// be removed in favor of using a hash function specified by the key itself. +// See: https://github.com/libp2p/specs/issues/138 +// +// DO NOT change this flag unless you know what you're doing. +// +// This currently defaults to true for backwards compatibility but will likely +// be set to false by default when an upgrade path is determined. +var AdvancedEnableInlining = true + +const maxInlineKeyLength = 42 + +// ID is a libp2p peer identity. +type ID string + +// Pretty returns a b58-encoded string of the ID +func (id ID) Pretty() string { + return IDB58Encode(id) +} + +// Loggable returns a pretty peerID string in loggable JSON format +func (id ID) Loggable() map[string]interface{} { + return map[string]interface{}{ + "peerID": id.Pretty(), + } +} + +func (id ID) String() string { + return id.Pretty() +} + +// String prints out the peer. +// +// TODO(brian): ensure correctness at ID generation and +// enforce this by only exposing functions that generate +// IDs safely. Then any peer.ID type found in the +// codebase is known to be correct. +func (id ID) ShortString() string { + pid := id.Pretty() + if len(pid) <= 10 { + return fmt.Sprintf("", pid) + } + return fmt.Sprintf("", pid[:2], pid[len(pid)-6:]) +} + +// MatchesPrivateKey tests whether this ID was derived from sk +func (id ID) MatchesPrivateKey(sk ic.PrivKey) bool { + return id.MatchesPublicKey(sk.GetPublic()) +} + +// MatchesPublicKey tests whether this ID was derived from pk +func (id ID) MatchesPublicKey(pk ic.PubKey) bool { + oid, err := IDFromPublicKey(pk) + if err != nil { + return false + } + return oid == id +} + +// ExtractPublicKey attempts to extract the public key from an ID +// +// This method returns ErrNoPublicKey if the peer ID looks valid but it can't extract +// the public key. +func (id ID) ExtractPublicKey() (ic.PubKey, error) { + decoded, err := mh.Decode([]byte(id)) + if err != nil { + return nil, err + } + if decoded.Code != mh.ID { + return nil, ErrNoPublicKey + } + pk, err := ic.UnmarshalPublicKey(decoded.Digest) + if err != nil { + return nil, err + } + return pk, nil +} + +// Validate check if ID is empty or not +func (id ID) Validate() error { + if id == ID("") { + return ErrEmptyPeerID + } + + return nil +} + +// IDFromString cast a string to ID type, and validate +// the id to make sure it is a multihash. +func IDFromString(s string) (ID, error) { + if _, err := mh.Cast([]byte(s)); err != nil { + return ID(""), err + } + return ID(s), nil +} + +// IDFromBytes cast a string to ID type, and validate +// the id to make sure it is a multihash. +func IDFromBytes(b []byte) (ID, error) { + if _, err := mh.Cast(b); err != nil { + return ID(""), err + } + return ID(b), nil +} + +// IDB58Decode returns a b58-decoded Peer +func IDB58Decode(s string) (ID, error) { + m, err := mh.FromB58String(s) + if err != nil { + return "", err + } + return ID(m), err +} + +// IDB58Encode returns b58-encoded string +func IDB58Encode(id ID) string { + return b58.Encode([]byte(id)) +} + +// IDHexDecode returns a hex-decoded Peer +func IDHexDecode(s string) (ID, error) { + m, err := mh.FromHexString(s) + if err != nil { + return "", err + } + return ID(m), err +} + +// IDHexEncode returns hex-encoded string +func IDHexEncode(id ID) string { + return hex.EncodeToString([]byte(id)) +} + +// IDFromPublicKey returns the Peer ID corresponding to pk +func IDFromPublicKey(pk ic.PubKey) (ID, error) { + b, err := pk.Bytes() + if err != nil { + return "", err + } + var alg uint64 = mh.SHA2_256 + if AdvancedEnableInlining && len(b) <= maxInlineKeyLength { + alg = mh.ID + } + hash, _ := mh.Sum(b, alg, -1) + return ID(hash), nil +} + +// IDFromPrivateKey returns the Peer ID corresponding to sk +func IDFromPrivateKey(sk ic.PrivKey) (ID, error) { + return IDFromPublicKey(sk.GetPublic()) +} + +// IDSlice for sorting peers +type IDSlice []ID + +func (es IDSlice) Len() int { return len(es) } +func (es IDSlice) Swap(i, j int) { es[i], es[j] = es[j], es[i] } +func (es IDSlice) Less(i, j int) bool { return string(es[i]) < string(es[j]) } diff --git a/vendor/github.com/libp2p/go-libp2p-peer/peer_serde.go b/vendor/github.com/libp2p/go-libp2p-peer/peer_serde.go new file mode 100644 index 00000000..7f1b3e6a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/peer_serde.go @@ -0,0 +1,75 @@ +// This file contains Protobuf and JSON serialization/deserialization methods for peer IDs. +package peer + +import ( + "encoding" + "encoding/json" +) + +// Interface assertions commented out to avoid introducing hard dependencies to protobuf. +// var _ proto.Marshaler = (*ID)(nil) +// var _ proto.Unmarshaler = (*ID)(nil) +var _ json.Marshaler = (*ID)(nil) +var _ json.Unmarshaler = (*ID)(nil) + +var _ encoding.BinaryMarshaler = (*ID)(nil) +var _ encoding.BinaryUnmarshaler = (*ID)(nil) +var _ encoding.TextMarshaler = (*ID)(nil) +var _ encoding.TextUnmarshaler = (*ID)(nil) + +func (id ID) Marshal() ([]byte, error) { + return []byte(id), nil +} + +// BinaryMarshal returns the byte representation of the peer ID. +func (id ID) MarshalBinary() ([]byte, error) { + return id.Marshal() +} + +func (id ID) MarshalTo(data []byte) (n int, err error) { + return copy(data, []byte(id)), nil +} + +func (id *ID) Unmarshal(data []byte) (err error) { + *id, err = IDFromBytes(data) + return err +} + +// BinaryUnmarshal sets the ID from its binary representation. +func (id *ID) UnmarshalBinary(data []byte) error { + return id.Unmarshal(data) +} + +// Implements Gogo's proto.Sizer, but we omit the compile-time assertion to avoid introducing a hard +// dependency on gogo. +func (id ID) Size() int { + return len([]byte(id)) +} + +func (id ID) MarshalJSON() ([]byte, error) { + return json.Marshal(IDB58Encode(id)) +} + +func (id *ID) UnmarshalJSON(data []byte) (err error) { + var v string + if err = json.Unmarshal(data, &v); err != nil { + return err + } + *id, err = IDB58Decode(v) + return err +} + +// TextMarshal returns the text encoding of the ID. +func (id ID) MarshalText() ([]byte, error) { + return []byte(IDB58Encode(id)), nil +} + +// TextUnmarshal restores the ID from its text encoding. +func (id *ID) UnmarshalText(data []byte) error { + pid, err := IDB58Decode(string(data)) + if err != nil { + return err + } + *id = pid + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-peer/peerset/peerset.go b/vendor/github.com/libp2p/go-libp2p-peer/peerset/peerset.go new file mode 100644 index 00000000..0cc87dd8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/peerset/peerset.go @@ -0,0 +1,72 @@ +package peerset + +import ( + "sync" + + peer "github.com/libp2p/go-libp2p-peer" +) + +// PeerSet is a threadsafe set of peers +type PeerSet struct { + ps map[peer.ID]struct{} + lk sync.RWMutex + size int +} + +func New() *PeerSet { + ps := new(PeerSet) + ps.ps = make(map[peer.ID]struct{}) + ps.size = -1 + return ps +} + +func NewLimited(size int) *PeerSet { + ps := new(PeerSet) + ps.ps = make(map[peer.ID]struct{}) + ps.size = size + return ps +} + +func (ps *PeerSet) Add(p peer.ID) { + ps.lk.Lock() + ps.ps[p] = struct{}{} + ps.lk.Unlock() +} + +func (ps *PeerSet) Contains(p peer.ID) bool { + ps.lk.RLock() + _, ok := ps.ps[p] + ps.lk.RUnlock() + return ok +} + +func (ps *PeerSet) Size() int { + ps.lk.RLock() + defer ps.lk.RUnlock() + return len(ps.ps) +} + +// TryAdd Attempts to add the given peer into the set. +// This operation can fail for one of two reasons: +// 1) The given peer is already in the set +// 2) The number of peers in the set is equal to size +func (ps *PeerSet) TryAdd(p peer.ID) bool { + var success bool + ps.lk.Lock() + if _, ok := ps.ps[p]; !ok && (len(ps.ps) < ps.size || ps.size == -1) { + success = true + ps.ps[p] = struct{}{} + } + ps.lk.Unlock() + return success +} + +func (ps *PeerSet) Peers() []peer.ID { + ps.lk.Lock() + out := make([]peer.ID, 0, len(ps.ps)) + for p, _ := range ps.ps { + out = append(out, p) + } + ps.lk.Unlock() + return out +} diff --git a/vendor/github.com/libp2p/go-libp2p-peer/test/utils.go b/vendor/github.com/libp2p/go-libp2p-peer/test/utils.go new file mode 100644 index 00000000..fd23d1d0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peer/test/utils.go @@ -0,0 +1,39 @@ +package testutil + +import ( + "io" + "math/rand" + "sync/atomic" + "time" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + mh "github.com/multiformats/go-multihash" +) + +var generatedPairs int64 = 0 + +func RandPeerID() (peer.ID, error) { + r := rand.New(rand.NewSource(time.Now().UnixNano())) + buf := make([]byte, 16) + if _, err := io.ReadFull(r, buf); err != nil { + return "", err + } + h, _ := mh.Sum(buf, mh.SHA2_256, -1) + return peer.ID(h), nil +} + +func RandTestKeyPair(bits int) (ci.PrivKey, ci.PubKey, error) { + seed := time.Now().UnixNano() + + // workaround for low time resolution + seed += atomic.AddInt64(&generatedPairs, 1) << 32 + + r := rand.New(rand.NewSource(seed)) + return ci.GenerateKeyPairWithReader(ci.RSA, bits, r) +} + +func SeededTestKeyPair(seed int64) (ci.PrivKey, ci.PubKey, error) { + r := rand.New(rand.NewSource(seed)) + return ci.GenerateKeyPairWithReader(ci.RSA, 512, r) +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/.gitignore b/vendor/github.com/libp2p/go-libp2p-peerstore/.gitignore new file mode 100644 index 00000000..bea702c0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/.gitignore @@ -0,0 +1,2 @@ +*.swp +cover.out diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/.travis.yml b/vendor/github.com/libp2p/go-libp2p-peerstore/.travis.yml new file mode 100644 index 00000000..5163d693 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/LICENSE b/vendor/github.com/libp2p/go-libp2p-peerstore/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/README.md b/vendor/github.com/libp2p/go-libp2p-peerstore/README.md new file mode 100644 index 00000000..0ad7cf97 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/README.md @@ -0,0 +1,37 @@ +# go-libp2p-peerstore +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-peerstore?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-peerstore) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-peerstore/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-peerstore?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-peerstore.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-peerstore) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> An object to manage peers, their addresses, and other metadata about them. + +## Install + +```sh +go get github.com/libp2p/go-libp2p-peerstore +``` + +## Usage + +Check out the [GoDocs](https://godoc.org/github.com/libp2p/go-libp2p-peerstore). + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-libp2p-peerstore/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md) + +## License +MIT + +--- + +The last gx published version of this module was: 2.0.19: QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/addr/addrsrcs.go b/vendor/github.com/libp2p/go-libp2p-peerstore/addr/addrsrcs.go new file mode 100644 index 00000000..9be78d5c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/addr/addrsrcs.go @@ -0,0 +1,70 @@ +// Package addr provides utility functions to handle peer addresses. +package addr + +import ( + ma "github.com/multiformats/go-multiaddr" +) + +// AddrSource is a source of addresses. It allows clients to retrieve +// a set of addresses at a last possible moment in time. It is used +// to query a set of addresses that may change over time, as a result +// of the network changing interfaces or mappings. +type Source interface { + Addrs() []ma.Multiaddr +} + +// CombineSources returns a new AddrSource which is the +// concatenation of all input AddrSources: +// +// combined := CombinedSources(a, b) +// combined.Addrs() // append(a.Addrs(), b.Addrs()...) +// +func CombineSources(srcs ...Source) Source { + return combinedAS(srcs) +} + +type combinedAS []Source + +func (cas combinedAS) Addrs() []ma.Multiaddr { + var addrs []ma.Multiaddr + for _, s := range cas { + addrs = append(addrs, s.Addrs()...) + } + return addrs +} + +// UniqueSource returns a new AddrSource which omits duplicate +// addresses from the inputs: +// +// unique := UniqueSource(a, b) +// unique.Addrs() // append(a.Addrs(), b.Addrs()...) +// // but only adds each addr once. +// +func UniqueSource(srcs ...Source) Source { + return uniqueAS(srcs) +} + +type uniqueAS []Source + +func (uas uniqueAS) Addrs() []ma.Multiaddr { + seen := make(map[string]struct{}) + var addrs []ma.Multiaddr + for _, s := range uas { + for _, a := range s.Addrs() { + s := a.String() + if _, found := seen[s]; !found { + addrs = append(addrs, a) + seen[s] = struct{}{} + } + } + } + return addrs +} + +// Slice is a simple slice of addresses that implements +// the AddrSource interface. +type Slice []ma.Multiaddr + +func (as Slice) Addrs() []ma.Multiaddr { + return as +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/addr/sorting.go b/vendor/github.com/libp2p/go-libp2p-peerstore/addr/sorting.go new file mode 100644 index 00000000..f8a89150 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/addr/sorting.go @@ -0,0 +1,62 @@ +package addr + +import ( + "bytes" + + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" + mafmt "github.com/whyrusleeping/mafmt" +) + +func isFDCostlyTransport(a ma.Multiaddr) bool { + return mafmt.TCP.Matches(a) +} + +type AddrList []ma.Multiaddr + +func (al AddrList) Len() int { + return len(al) +} + +func (al AddrList) Swap(i, j int) { + al[i], al[j] = al[j], al[i] +} + +func (al AddrList) Less(i, j int) bool { + a := al[i] + b := al[j] + + // dial localhost addresses next, they should fail immediately + lba := manet.IsIPLoopback(a) + lbb := manet.IsIPLoopback(b) + if lba { + if !lbb { + return true + } + } + + // dial utp and similar 'non-fd-consuming' addresses first + fda := isFDCostlyTransport(a) + fdb := isFDCostlyTransport(b) + if !fda { + if fdb { + return true + } + + // if neither consume fd's, assume equal ordering + return false + } + + // if 'b' doesnt take a file descriptor + if !fdb { + return false + } + + // if 'b' is loopback and both take file descriptors + if lbb { + return false + } + + // for the rest, just sort by bytes + return bytes.Compare(a.Bytes(), b.Bytes()) > 0 +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/codecov.yml b/vendor/github.com/libp2p/go-libp2p-peerstore/codecov.yml new file mode 100644 index 00000000..96dcfd78 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/codecov.yml @@ -0,0 +1,5 @@ +coverage: + range: "50...100" +comment: off +ignore: + - "pb/*.pb.go" \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/go.mod b/vendor/github.com/libp2p/go-libp2p-peerstore/go.mod new file mode 100644 index 00000000..72b60496 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/go.mod @@ -0,0 +1,20 @@ +module github.com/libp2p/go-libp2p-peerstore + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/hashicorp/golang-lru v0.5.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ds-badger v0.0.2 + github.com/ipfs/go-ds-leveldb v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-buffer-pool v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/multiformats/go-base32 v0.0.3 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/multiformats/go-multihash v0.0.1 + github.com/pkg/errors v0.8.1 + github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 + github.com/whyrusleeping/mafmt v1.2.8 +) diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/go.sum b/vendor/github.com/libp2p/go-libp2p-peerstore/go.sum new file mode 100644 index 00000000..67176d5a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/go.sum @@ -0,0 +1,139 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi81xWQA2QIVxjWkFHptGgC547vchpUbtFo= +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1 h1:EJiD2VUQyh5A9hWJLmc6iWg6yIcJ7jpBcwC8GMGXfDk= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f h1:6itBiEUtu+gOzXZWn46bM5/qm8LlV6/byR7Yflx/y6M= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f h1:dDxpBYafY/GYpcl+LS4Bn3ziLPuEdGRkRjYAbSlWxSA= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2 h1:7ToQt7QByBhOTuZF2USMv+PGlMcBC7FW7FdgQ4FCsoo= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1 h1:Z0lsTFciec9qYsyngAw1f/czhRU35qBLR2vhavPFgqA= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/interface.go b/vendor/github.com/libp2p/go-libp2p-peerstore/interface.go new file mode 100644 index 00000000..c669ba94 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/interface.go @@ -0,0 +1,144 @@ +package peerstore + +import ( + "context" + "errors" + "io" + "math" + "time" + + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +var ErrNotFound = errors.New("item not found") + +var ( + // AddressTTL is the expiration time of addresses. + AddressTTL = time.Hour + + // TempAddrTTL is the ttl used for a short lived address + TempAddrTTL = time.Minute * 2 + + // ProviderAddrTTL is the TTL of an address we've received from a provider. + // This is also a temporary address, but lasts longer. After this expires, + // the records we return will require an extra lookup. + ProviderAddrTTL = time.Minute * 10 + + // RecentlyConnectedAddrTTL is used when we recently connected to a peer. + // It means that we are reasonably certain of the peer's address. + RecentlyConnectedAddrTTL = time.Minute * 10 + + // OwnObservedAddrTTL is used for our own external addresses observed by peers. + OwnObservedAddrTTL = time.Minute * 10 +) + +// Permanent TTLs (distinct so we can distinguish between them, constant as they +// are, in fact, permanent) +const ( + + // PermanentAddrTTL is the ttl for a "permanent address" (e.g. bootstrap nodes). + PermanentAddrTTL = math.MaxInt64 - iota + + // ConnectedAddrTTL is the ttl used for the addresses of a peer to whom + // we're connected directly. This is basically permanent, as we will + // clear them + re-add under a TempAddrTTL after disconnecting. + ConnectedAddrTTL +) + +// Peerstore provides a threadsafe store of Peer related +// information. +type Peerstore interface { + io.Closer + + AddrBook + KeyBook + PeerMetadata + Metrics + + // PeerInfo returns a peer.PeerInfo struct for given peer.ID. + // This is a small slice of the information Peerstore has on + // that peer, useful to other services. + PeerInfo(peer.ID) PeerInfo + + GetProtocols(peer.ID) ([]string, error) + AddProtocols(peer.ID, ...string) error + SetProtocols(peer.ID, ...string) error + SupportsProtocols(peer.ID, ...string) ([]string, error) + + // Peers returns all of the peer IDs stored across all inner stores. + Peers() peer.IDSlice +} + +// PeerMetadata can handle values of any type. Serializing values is +// up to the implementation. Dynamic type introspection may not be +// supported, in which case explicitly enlisting types in the +// serializer may be required. +// +// Refer to the docs of the underlying implementation for more +// information. +type PeerMetadata interface { + // Get/Put is a simple registry for other peer-related key/value pairs. + // if we find something we use often, it should become its own set of + // methods. this is a last resort. + Get(p peer.ID, key string) (interface{}, error) + Put(p peer.ID, key string, val interface{}) error +} + +// AddrBook holds the multiaddrs of peers. +type AddrBook interface { + + // AddAddr calls AddAddrs(p, []ma.Multiaddr{addr}, ttl) + AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) + + // AddAddrs gives this AddrBook addresses to use, with a given ttl + // (time-to-live), after which the address is no longer valid. + // If the manager has a longer TTL, the operation is a no-op for that address + AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) + + // SetAddr calls mgr.SetAddrs(p, addr, ttl) + SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) + + // SetAddrs sets the ttl on addresses. This clears any TTL there previously. + // This is used when we receive the best estimate of the validity of an address. + SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) + + // UpdateAddrs updates the addresses associated with the given peer that have + // the given oldTTL to have the given newTTL. + UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) + + // Addresses returns all known (and valid) addresses for a given peer + Addrs(p peer.ID) []ma.Multiaddr + + // AddrStream returns a channel that gets all addresses for a given + // peer sent on it. If new addresses are added after the call is made + // they will be sent along through the channel as well. + AddrStream(context.Context, peer.ID) <-chan ma.Multiaddr + + // ClearAddresses removes all previously stored addresses + ClearAddrs(p peer.ID) + + // PeersWithAddrs returns all of the peer IDs stored in the AddrBook + PeersWithAddrs() peer.IDSlice +} + +// KeyBook tracks the keys of Peers. +type KeyBook interface { + // PubKey stores the public key of a peer. + PubKey(peer.ID) ic.PubKey + + // AddPubKey stores the public key of a peer. + AddPubKey(peer.ID, ic.PubKey) error + + // PrivKey returns the private key of a peer, if known. Generally this might only be our own + // private key, see + // https://discuss.libp2p.io/t/what-is-the-purpose-of-having-map-peer-id-privatekey-in-peerstore/74. + PrivKey(peer.ID) ic.PrivKey + + // AddPrivKey stores the private key of a peer. + AddPrivKey(peer.ID, ic.PrivKey) error + + // PeersWithKeys returns all the peer IDs stored in the KeyBook + PeersWithKeys() peer.IDSlice +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/metrics.go b/vendor/github.com/libp2p/go-libp2p-peerstore/metrics.go new file mode 100644 index 00000000..05b86769 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/metrics.go @@ -0,0 +1,65 @@ +package peerstore + +import ( + "sync" + "time" + + "github.com/libp2p/go-libp2p-peer" +) + +// LatencyEWMASmooting governs the decay of the EWMA (the speed +// at which it changes). This must be a normalized (0-1) value. +// 1 is 100% change, 0 is no change. +var LatencyEWMASmoothing = 0.1 + +// Metrics is just an object that tracks metrics +// across a set of peers. +type Metrics interface { + + // RecordLatency records a new latency measurement + RecordLatency(peer.ID, time.Duration) + + // LatencyEWMA returns an exponentially-weighted moving avg. + // of all measurements of a peer's latency. + LatencyEWMA(peer.ID) time.Duration +} + +type metrics struct { + latmap map[peer.ID]time.Duration + latmu sync.RWMutex +} + +func NewMetrics() *metrics { + return &metrics{ + latmap: make(map[peer.ID]time.Duration), + } +} + +// RecordLatency records a new latency measurement +func (m *metrics) RecordLatency(p peer.ID, next time.Duration) { + nextf := float64(next) + s := LatencyEWMASmoothing + if s > 1 || s < 0 { + s = 0.1 // ignore the knob. it's broken. look, it jiggles. + } + + m.latmu.Lock() + ewma, found := m.latmap[p] + ewmaf := float64(ewma) + if !found { + m.latmap[p] = next // when no data, just take it as the mean. + } else { + nextf = ((1.0 - s) * ewmaf) + (s * nextf) + m.latmap[p] = time.Duration(nextf) + } + m.latmu.Unlock() +} + +// LatencyEWMA returns an exponentially-weighted moving avg. +// of all measurements of a peer's latency. +func (m *metrics) LatencyEWMA(p peer.ID) time.Duration { + m.latmu.RLock() + lat := m.latmap[p] + m.latmu.RUnlock() + return time.Duration(lat) +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/peerinfo.go b/vendor/github.com/libp2p/go-libp2p-peerstore/peerinfo.go new file mode 100644 index 00000000..6adaa203 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/peerinfo.go @@ -0,0 +1,115 @@ +package peerstore + +import ( + "encoding/json" + "fmt" + "strings" + + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +// PeerInfo is a small struct used to pass around a peer with +// a set of addresses (and later, keys?). This is not meant to be +// a complete view of the system, but rather to model updates to +// the peerstore. It is used by things like the routing system. +type PeerInfo struct { + ID peer.ID + Addrs []ma.Multiaddr +} + +var _ fmt.Stringer = PeerInfo{} + +func (pi PeerInfo) String() string { + return fmt.Sprintf("{%v: %v}", pi.ID, pi.Addrs) +} + +var ErrInvalidAddr = fmt.Errorf("invalid p2p multiaddr") + +func InfoFromP2pAddr(m ma.Multiaddr) (*PeerInfo, error) { + if m == nil { + return nil, ErrInvalidAddr + } + + // make sure it's an IPFS addr + parts := ma.Split(m) + if len(parts) < 1 { + return nil, ErrInvalidAddr + } + + // TODO(lgierth): we shouldn't assume /ipfs is the last part + ipfspart := parts[len(parts)-1] + if ipfspart.Protocols()[0].Code != ma.P_IPFS { + return nil, ErrInvalidAddr + } + + // make sure the /ipfs value parses as a peer.ID + peerIdParts := strings.Split(ipfspart.String(), "/") + peerIdStr := peerIdParts[len(peerIdParts)-1] + id, err := peer.IDB58Decode(peerIdStr) + if err != nil { + return nil, err + } + + // we might have received just an /ipfs part, which means there's no addr. + var addrs []ma.Multiaddr + if len(parts) > 1 { + addrs = append(addrs, ma.Join(parts[:len(parts)-1]...)) + } + + return &PeerInfo{ + ID: id, + Addrs: addrs, + }, nil +} + +func InfoToP2pAddrs(pi *PeerInfo) ([]ma.Multiaddr, error) { + var addrs []ma.Multiaddr + tpl := "/" + ma.ProtocolWithCode(ma.P_IPFS).Name + "/" + for _, addr := range pi.Addrs { + p2paddr, err := ma.NewMultiaddr(tpl + peer.IDB58Encode(pi.ID)) + if err != nil { + return nil, err + } + addrs = append(addrs, addr.Encapsulate(p2paddr)) + } + return addrs, nil +} + +func (pi *PeerInfo) Loggable() map[string]interface{} { + return map[string]interface{}{ + "peerID": pi.ID.Pretty(), + "addrs": pi.Addrs, + } +} + +func (pi PeerInfo) MarshalJSON() ([]byte, error) { + out := make(map[string]interface{}) + out["ID"] = pi.ID.Pretty() + var addrs []string + for _, a := range pi.Addrs { + addrs = append(addrs, a.String()) + } + out["Addrs"] = addrs + return json.Marshal(out) +} + +func (pi *PeerInfo) UnmarshalJSON(b []byte) error { + var data map[string]interface{} + err := json.Unmarshal(b, &data) + if err != nil { + return err + } + pid, err := peer.IDB58Decode(data["ID"].(string)) + if err != nil { + return err + } + pi.ID = pid + addrs, ok := data["Addrs"].([]interface{}) + if ok { + for _, a := range addrs { + pi.Addrs = append(pi.Addrs, ma.StringCast(a.(string))) + } + } + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/peerstore.go b/vendor/github.com/libp2p/go-libp2p-peerstore/peerstore.go new file mode 100644 index 00000000..306127e3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/peerstore.go @@ -0,0 +1,192 @@ +package peerstore + +import ( + "fmt" + "io" + "sync" + + peer "github.com/libp2p/go-libp2p-peer" +) + +var _ Peerstore = (*peerstore)(nil) + +const maxInternedProtocols = 512 +const maxInternedProtocolSize = 256 + +type peerstore struct { + Metrics + + KeyBook + AddrBook + PeerMetadata + + // lock for protocol information, separate from datastore lock + protolock sync.Mutex + internedProtocols map[string]string +} + +// NewPeerstore creates a data structure that stores peer data, backed by the +// supplied implementations of KeyBook, AddrBook and PeerMetadata. +func NewPeerstore(kb KeyBook, ab AddrBook, md PeerMetadata) Peerstore { + return &peerstore{ + KeyBook: kb, + AddrBook: ab, + PeerMetadata: md, + Metrics: NewMetrics(), + internedProtocols: make(map[string]string), + } +} + +func (ps *peerstore) Close() (err error) { + var errs []error + weakClose := func(name string, c interface{}) { + if cl, ok := c.(io.Closer); ok { + if err = cl.Close(); err != nil { + errs = append(errs, fmt.Errorf("%s error: %s", name, err)) + } + } + } + + weakClose("keybook", ps.KeyBook) + weakClose("addressbook", ps.AddrBook) + weakClose("peermetadata", ps.PeerMetadata) + + if len(errs) > 0 { + return fmt.Errorf("failed while closing peerstore; err(s): %q", errs) + } + return nil +} + +func (ps *peerstore) Peers() peer.IDSlice { + set := map[peer.ID]struct{}{} + for _, p := range ps.PeersWithKeys() { + set[p] = struct{}{} + } + for _, p := range ps.PeersWithAddrs() { + set[p] = struct{}{} + } + + pps := make(peer.IDSlice, 0, len(set)) + for p := range set { + pps = append(pps, p) + } + return pps +} + +func (ps *peerstore) PeerInfo(p peer.ID) PeerInfo { + return PeerInfo{ + ID: p, + Addrs: ps.AddrBook.Addrs(p), + } +} + +func (ps *peerstore) internProtocol(s string) string { + if len(s) > maxInternedProtocolSize { + return s + } + + if interned, ok := ps.internedProtocols[s]; ok { + return interned + } + + if len(ps.internedProtocols) >= maxInternedProtocols { + ps.internedProtocols = make(map[string]string, maxInternedProtocols) + } + + ps.internedProtocols[s] = s + return s +} + +func (ps *peerstore) SetProtocols(p peer.ID, protos ...string) error { + ps.protolock.Lock() + defer ps.protolock.Unlock() + + protomap := make(map[string]struct{}, len(protos)) + for _, proto := range protos { + protomap[ps.internProtocol(proto)] = struct{}{} + } + + return ps.Put(p, "protocols", protomap) +} + +func (ps *peerstore) AddProtocols(p peer.ID, protos ...string) error { + ps.protolock.Lock() + defer ps.protolock.Unlock() + protomap, err := ps.getProtocolMap(p) + if err != nil { + return err + } + + for _, proto := range protos { + protomap[ps.internProtocol(proto)] = struct{}{} + } + + return ps.Put(p, "protocols", protomap) +} + +func (ps *peerstore) getProtocolMap(p peer.ID) (map[string]struct{}, error) { + iprotomap, err := ps.Get(p, "protocols") + switch err { + default: + return nil, err + case ErrNotFound: + return make(map[string]struct{}), nil + case nil: + cast, ok := iprotomap.(map[string]struct{}) + if !ok { + return nil, fmt.Errorf("stored protocol set was not a map") + } + + return cast, nil + } +} + +func (ps *peerstore) GetProtocols(p peer.ID) ([]string, error) { + ps.protolock.Lock() + defer ps.protolock.Unlock() + pmap, err := ps.getProtocolMap(p) + if err != nil { + return nil, err + } + + out := make([]string, 0, len(pmap)) + for k := range pmap { + out = append(out, k) + } + + return out, nil +} + +func (ps *peerstore) SupportsProtocols(p peer.ID, protos ...string) ([]string, error) { + ps.protolock.Lock() + defer ps.protolock.Unlock() + pmap, err := ps.getProtocolMap(p) + if err != nil { + return nil, err + } + + out := make([]string, 0, len(protos)) + for _, proto := range protos { + if _, ok := pmap[proto]; ok { + out = append(out, proto) + } + } + + return out, nil +} + +func PeerInfos(ps Peerstore, peers peer.IDSlice) []PeerInfo { + pi := make([]PeerInfo, len(peers)) + for i, p := range peers { + pi[i] = ps.PeerInfo(p) + } + return pi +} + +func PeerInfoIDs(pis []PeerInfo) peer.IDSlice { + ps := make(peer.IDSlice, len(pis)) + for i, pi := range pis { + ps[i] = pi.ID + } + return ps +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/addr_book.go b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/addr_book.go new file mode 100644 index 00000000..723b4337 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/addr_book.go @@ -0,0 +1,354 @@ +package pstoremem + +import ( + "context" + "sort" + "sync" + "time" + + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" + + pstore "github.com/libp2p/go-libp2p-peerstore" + addr "github.com/libp2p/go-libp2p-peerstore/addr" +) + +var log = logging.Logger("peerstore") + +type expiringAddr struct { + Addr ma.Multiaddr + TTL time.Duration + Expires time.Time +} + +func (e *expiringAddr) ExpiredBy(t time.Time) bool { + return t.After(e.Expires) +} + +var _ pstore.AddrBook = (*memoryAddrBook)(nil) + +// memoryAddrBook manages addresses. +type memoryAddrBook struct { + addrmu sync.Mutex + // Use pointers to save memory. Maps always leave some fraction of their + // space unused. storing the *values* directly in the map will + // drastically increase the space waste. In our case, by 6x. + addrs map[peer.ID]map[string]*expiringAddr + + nextGC time.Time + + subManager *AddrSubManager +} + +func NewAddrBook() pstore.AddrBook { + return &memoryAddrBook{ + addrs: make(map[peer.ID]map[string]*expiringAddr), + subManager: NewAddrSubManager(), + } +} + +// gc garbage collects the in-memory address book. The caller *must* hold the addrmu lock. +func (mab *memoryAddrBook) gc() { + now := time.Now() + if !now.After(mab.nextGC) { + return + } + for p, amap := range mab.addrs { + for k, addr := range amap { + if addr.ExpiredBy(now) { + delete(amap, k) + } + } + if len(amap) == 0 { + delete(mab.addrs, p) + } + } + mab.nextGC = time.Now().Add(pstore.AddressTTL) +} + +func (mab *memoryAddrBook) PeersWithAddrs() peer.IDSlice { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + pids := make(peer.IDSlice, 0, len(mab.addrs)) + for pid := range mab.addrs { + pids = append(pids, pid) + } + return pids +} + +// AddAddr calls AddAddrs(p, []ma.Multiaddr{addr}, ttl) +func (mab *memoryAddrBook) AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { + mab.AddAddrs(p, []ma.Multiaddr{addr}, ttl) +} + +// AddAddrs gives memoryAddrBook addresses to use, with a given ttl +// (time-to-live), after which the address is no longer valid. +// If the manager has a longer TTL, the operation is a no-op for that address +func (mab *memoryAddrBook) AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + // if ttl is zero, exit. nothing to do. + if ttl <= 0 { + return + } + + amap := mab.addrs[p] + if amap == nil { + amap = make(map[string]*expiringAddr, len(addrs)) + mab.addrs[p] = amap + } + exp := time.Now().Add(ttl) + for _, addr := range addrs { + if addr == nil { + log.Warningf("was passed nil multiaddr for %s", p) + continue + } + addrstr := string(addr.Bytes()) + a, found := amap[addrstr] + if !found || exp.After(a.Expires) { + amap[addrstr] = &expiringAddr{Addr: addr, Expires: exp, TTL: ttl} + + mab.subManager.BroadcastAddr(p, addr) + } + } + mab.gc() +} + +// SetAddr calls mgr.SetAddrs(p, addr, ttl) +func (mab *memoryAddrBook) SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { + mab.SetAddrs(p, []ma.Multiaddr{addr}, ttl) +} + +// SetAddrs sets the ttl on addresses. This clears any TTL there previously. +// This is used when we receive the best estimate of the validity of an address. +func (mab *memoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + amap := mab.addrs[p] + if amap == nil { + amap = make(map[string]*expiringAddr, len(addrs)) + mab.addrs[p] = amap + } + + exp := time.Now().Add(ttl) + for _, addr := range addrs { + if addr == nil { + log.Warningf("was passed nil multiaddr for %s", p) + continue + } + // re-set all of them for new ttl. + addrstr := string(addr.Bytes()) + + if ttl > 0 { + amap[addrstr] = &expiringAddr{Addr: addr, Expires: exp, TTL: ttl} + + mab.subManager.BroadcastAddr(p, addr) + } else { + delete(amap, addrstr) + } + } + mab.gc() +} + +// UpdateAddrs updates the addresses associated with the given peer that have +// the given oldTTL to have the given newTTL. +func (mab *memoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + amap, found := mab.addrs[p] + if !found { + return + } + + exp := time.Now().Add(newTTL) + for k, addr := range amap { + if oldTTL == addr.TTL { + addr.TTL = newTTL + addr.Expires = exp + amap[k] = addr + } + } + mab.gc() +} + +// Addresses returns all known (and valid) addresses for a given +func (mab *memoryAddrBook) Addrs(p peer.ID) []ma.Multiaddr { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + amap, found := mab.addrs[p] + if !found { + return nil + } + + now := time.Now() + good := make([]ma.Multiaddr, 0, len(amap)) + for k, m := range amap { + if !m.ExpiredBy(now) { + good = append(good, m.Addr) + } else { + delete(amap, k) + } + } + + return good +} + +// ClearAddrs removes all previously stored addresses +func (mab *memoryAddrBook) ClearAddrs(p peer.ID) { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + delete(mab.addrs, p) +} + +// AddrStream returns a channel on which all new addresses discovered for a +// given peer ID will be published. +func (mab *memoryAddrBook) AddrStream(ctx context.Context, p peer.ID) <-chan ma.Multiaddr { + mab.addrmu.Lock() + defer mab.addrmu.Unlock() + + baseaddrslice := mab.addrs[p] + initial := make([]ma.Multiaddr, 0, len(baseaddrslice)) + for _, a := range baseaddrslice { + initial = append(initial, a.Addr) + } + + return mab.subManager.AddrStream(ctx, p, initial) +} + +type addrSub struct { + pubch chan ma.Multiaddr + lk sync.Mutex + buffer []ma.Multiaddr + ctx context.Context +} + +func (s *addrSub) pubAddr(a ma.Multiaddr) { + select { + case s.pubch <- a: + case <-s.ctx.Done(): + } +} + +// An abstracted, pub-sub manager for address streams. Extracted from +// memoryAddrBook in order to support additional implementations. +type AddrSubManager struct { + mu sync.RWMutex + subs map[peer.ID][]*addrSub +} + +// NewAddrSubManager initializes an AddrSubManager. +func NewAddrSubManager() *AddrSubManager { + return &AddrSubManager{ + subs: make(map[peer.ID][]*addrSub), + } +} + +// Used internally by the address stream coroutine to remove a subscription +// from the manager. +func (mgr *AddrSubManager) removeSub(p peer.ID, s *addrSub) { + mgr.mu.Lock() + defer mgr.mu.Unlock() + + subs := mgr.subs[p] + if len(subs) == 1 { + if subs[0] != s { + return + } + delete(mgr.subs, p) + return + } + + for i, v := range subs { + if v == s { + subs[i] = subs[len(subs)-1] + subs[len(subs)-1] = nil + mgr.subs[p] = subs[:len(subs)-1] + return + } + } +} + +// BroadcastAddr broadcasts a new address to all subscribed streams. +func (mgr *AddrSubManager) BroadcastAddr(p peer.ID, addr ma.Multiaddr) { + mgr.mu.RLock() + defer mgr.mu.RUnlock() + + if subs, ok := mgr.subs[p]; ok { + for _, sub := range subs { + sub.pubAddr(addr) + } + } +} + +// AddrStream creates a new subscription for a given peer ID, pre-populating the +// channel with any addresses we might already have on file. +func (mgr *AddrSubManager) AddrStream(ctx context.Context, p peer.ID, initial []ma.Multiaddr) <-chan ma.Multiaddr { + sub := &addrSub{pubch: make(chan ma.Multiaddr), ctx: ctx} + out := make(chan ma.Multiaddr) + + mgr.mu.Lock() + if _, ok := mgr.subs[p]; ok { + mgr.subs[p] = append(mgr.subs[p], sub) + } else { + mgr.subs[p] = []*addrSub{sub} + } + mgr.mu.Unlock() + + sort.Sort(addr.AddrList(initial)) + + go func(buffer []ma.Multiaddr) { + defer close(out) + + sent := make(map[string]bool, len(buffer)) + var outch chan ma.Multiaddr + + for _, a := range buffer { + sent[string(a.Bytes())] = true + } + + var next ma.Multiaddr + if len(buffer) > 0 { + next = buffer[0] + buffer = buffer[1:] + outch = out + } + + for { + select { + case outch <- next: + if len(buffer) > 0 { + next = buffer[0] + buffer = buffer[1:] + } else { + outch = nil + next = nil + } + case naddr := <-sub.pubch: + if sent[string(naddr.Bytes())] { + continue + } + + sent[string(naddr.Bytes())] = true + if next == nil { + next = naddr + outch = out + } else { + buffer = append(buffer, naddr) + } + case <-ctx.Done(): + mgr.removeSub(p, sub) + return + } + } + + }(initial) + + return out +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/keybook.go b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/keybook.go new file mode 100644 index 00000000..87baea24 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/keybook.go @@ -0,0 +1,93 @@ +package pstoremem + +import ( + "errors" + "sync" + + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +type memoryKeyBook struct { + sync.RWMutex // same lock. wont happen a ton. + pks map[peer.ID]ic.PubKey + sks map[peer.ID]ic.PrivKey +} + +var _ pstore.KeyBook = (*memoryKeyBook)(nil) + +// noop new, but in the future we may want to do some init work. +func NewKeyBook() pstore.KeyBook { + return &memoryKeyBook{ + pks: map[peer.ID]ic.PubKey{}, + sks: map[peer.ID]ic.PrivKey{}, + } +} + +func (mkb *memoryKeyBook) PeersWithKeys() peer.IDSlice { + mkb.RLock() + ps := make(peer.IDSlice, 0, len(mkb.pks)+len(mkb.sks)) + for p := range mkb.pks { + ps = append(ps, p) + } + for p := range mkb.sks { + if _, found := mkb.pks[p]; !found { + ps = append(ps, p) + } + } + mkb.RUnlock() + return ps +} + +func (mkb *memoryKeyBook) PubKey(p peer.ID) ic.PubKey { + mkb.RLock() + pk := mkb.pks[p] + mkb.RUnlock() + if pk != nil { + return pk + } + pk, err := p.ExtractPublicKey() + if err == nil { + mkb.Lock() + mkb.pks[p] = pk + mkb.Unlock() + } + return pk +} + +func (mkb *memoryKeyBook) AddPubKey(p peer.ID, pk ic.PubKey) error { + // check it's correct first + if !p.MatchesPublicKey(pk) { + return errors.New("ID does not match PublicKey") + } + + mkb.Lock() + mkb.pks[p] = pk + mkb.Unlock() + return nil +} + +func (mkb *memoryKeyBook) PrivKey(p peer.ID) ic.PrivKey { + mkb.RLock() + sk := mkb.sks[p] + mkb.RUnlock() + return sk +} + +func (mkb *memoryKeyBook) AddPrivKey(p peer.ID, sk ic.PrivKey) error { + if sk == nil { + return errors.New("sk is nil (PrivKey)") + } + + // check it's correct first + if !p.MatchesPrivateKey(sk) { + return errors.New("ID does not match PrivateKey") + } + + mkb.Lock() + mkb.sks[p] = sk + mkb.Unlock() + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/metadata.go b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/metadata.go new file mode 100644 index 00000000..5562c9cf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/metadata.go @@ -0,0 +1,45 @@ +package pstoremem + +import ( + "sync" + + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +type metakey struct { + id peer.ID + key string +} + +type memoryPeerMetadata struct { + // store other data, like versions + //ds ds.ThreadSafeDatastore + ds map[metakey]interface{} + dslock sync.Mutex +} + +var _ pstore.PeerMetadata = (*memoryPeerMetadata)(nil) + +func NewPeerMetadata() pstore.PeerMetadata { + return &memoryPeerMetadata{ + ds: make(map[metakey]interface{}), + } +} + +func (ps *memoryPeerMetadata) Put(p peer.ID, key string, val interface{}) error { + ps.dslock.Lock() + defer ps.dslock.Unlock() + ps.ds[metakey{p, key}] = val + return nil +} + +func (ps *memoryPeerMetadata) Get(p peer.ID, key string) (interface{}, error) { + ps.dslock.Lock() + defer ps.dslock.Unlock() + i, ok := ps.ds[metakey{p, key}] + if !ok { + return nil, pstore.ErrNotFound + } + return i, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/peerstore.go b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/peerstore.go new file mode 100644 index 00000000..7d87313d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/pstoremem/peerstore.go @@ -0,0 +1,11 @@ +package pstoremem + +import pstore "github.com/libp2p/go-libp2p-peerstore" + +// NewPeerstore creates an in-memory threadsafe collection of peers. +func NewPeerstore() pstore.Peerstore { + return pstore.NewPeerstore( + NewKeyBook(), + NewAddrBook(), + NewPeerMetadata()) +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/queue/distance.go b/vendor/github.com/libp2p/go-libp2p-peerstore/queue/distance.go new file mode 100644 index 00000000..9c3e026e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/queue/distance.go @@ -0,0 +1,100 @@ +package queue + +import ( + "container/heap" + "math/big" + "sync" + + "github.com/libp2p/go-libp2p-peer" + ks "github.com/whyrusleeping/go-keyspace" +) + +// peerMetric tracks a peer and its distance to something else. +type peerMetric struct { + // the peer + peer peer.ID + + // big.Int for XOR metric + metric *big.Int +} + +// peerMetricHeap implements a heap of peerDistances +type peerMetricHeap []*peerMetric + +func (ph peerMetricHeap) Len() int { + return len(ph) +} + +func (ph peerMetricHeap) Less(i, j int) bool { + return -1 == ph[i].metric.Cmp(ph[j].metric) +} + +func (ph peerMetricHeap) Swap(i, j int) { + ph[i], ph[j] = ph[j], ph[i] +} + +func (ph *peerMetricHeap) Push(x interface{}) { + item := x.(*peerMetric) + *ph = append(*ph, item) +} + +func (ph *peerMetricHeap) Pop() interface{} { + old := *ph + n := len(old) + item := old[n-1] + *ph = old[0 : n-1] + return item +} + +// distancePQ implements heap.Interface and PeerQueue +type distancePQ struct { + // from is the Key this PQ measures against + from ks.Key + + // heap is a heap of peerDistance items + heap peerMetricHeap + + sync.RWMutex +} + +func (pq *distancePQ) Len() int { + pq.Lock() + defer pq.Unlock() + return len(pq.heap) +} + +func (pq *distancePQ) Enqueue(p peer.ID) { + pq.Lock() + defer pq.Unlock() + + distance := ks.XORKeySpace.Key([]byte(p)).Distance(pq.from) + + heap.Push(&pq.heap, &peerMetric{ + peer: p, + metric: distance, + }) +} + +func (pq *distancePQ) Dequeue() peer.ID { + pq.Lock() + defer pq.Unlock() + + if len(pq.heap) < 1 { + panic("called Dequeue on an empty PeerQueue") + // will panic internally anyway, but we can help debug here + } + + o := heap.Pop(&pq.heap) + p := o.(*peerMetric) + return p.peer +} + +// NewXORDistancePQ returns a PeerQueue which maintains its peers sorted +// in terms of their distances to each other in an XORKeySpace (i.e. using +// XOR as a metric of distance). +func NewXORDistancePQ(from string) PeerQueue { + return &distancePQ{ + from: ks.XORKeySpace.Key([]byte(from)), + heap: peerMetricHeap{}, + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/queue/interface.go b/vendor/github.com/libp2p/go-libp2p-peerstore/queue/interface.go new file mode 100644 index 00000000..26e1d48b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/queue/interface.go @@ -0,0 +1,18 @@ +package queue + +import "github.com/libp2p/go-libp2p-peer" + +// PeerQueue maintains a set of peers ordered according to a metric. +// Implementations of PeerQueue could order peers based on distances along +// a KeySpace, latency measurements, trustworthiness, reputation, etc. +type PeerQueue interface { + + // Len returns the number of items in PeerQueue + Len() int + + // Enqueue adds this node to the queue. + Enqueue(peer.ID) + + // Dequeue retrieves the highest (smallest int) priority node + Dequeue() peer.ID +} diff --git a/vendor/github.com/libp2p/go-libp2p-peerstore/queue/sync.go b/vendor/github.com/libp2p/go-libp2p-peerstore/queue/sync.go new file mode 100644 index 00000000..3815ec78 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-peerstore/queue/sync.go @@ -0,0 +1,85 @@ +package queue + +import ( + "context" + + logging "github.com/ipfs/go-log" + "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("peerqueue") + +// ChanQueue makes any PeerQueue synchronizable through channels. +type ChanQueue struct { + Queue PeerQueue + EnqChan chan<- peer.ID + DeqChan <-chan peer.ID +} + +// NewChanQueue creates a ChanQueue by wrapping pq. +func NewChanQueue(ctx context.Context, pq PeerQueue) *ChanQueue { + cq := &ChanQueue{Queue: pq} + cq.process(ctx) + return cq +} + +func (cq *ChanQueue) process(ctx context.Context) { + // construct the channels here to be able to use them bidirectionally + enqChan := make(chan peer.ID) + deqChan := make(chan peer.ID) + + cq.EnqChan = enqChan + cq.DeqChan = deqChan + + go func() { + log.Debug("processing") + defer log.Debug("closed") + defer close(deqChan) + + var next peer.ID + var item peer.ID + var more bool + + for { + if cq.Queue.Len() == 0 { + // log.Debug("wait for enqueue") + select { + case next, more = <-enqChan: + if !more { + return + } + // log.Debug("got", next) + + case <-ctx.Done(): + return + } + + } else { + next = cq.Queue.Dequeue() + // log.Debug("peek", next) + } + + select { + case item, more = <-enqChan: + if !more { + if cq.Queue.Len() > 0 { + return // we're done done. + } + enqChan = nil // closed, so no use. + } + // log.Debug("got", item) + cq.Queue.Enqueue(item) + cq.Queue.Enqueue(next) // order may have changed. + next = "" + + case deqChan <- next: + // log.Debug("dequeued", next) + next = "" + + case <-ctx.Done(): + return + } + } + + }() +} diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/.travis.yml b/vendor/github.com/libp2p/go-libp2p-pnet/.travis.yml new file mode 100644 index 00000000..dde69d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - /Users/raul/go/src/gx + - /Users/raul/go/pkg/mod + - /Users/raul/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/LICENSE b/vendor/github.com/libp2p/go-libp2p-pnet/LICENSE new file mode 100644 index 00000000..4ddb347c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Jakub Sztandera + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/Makefile b/vendor/github.com/libp2p/go-libp2p-pnet/Makefile new file mode 100644 index 00000000..68ddbaec --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/Makefile @@ -0,0 +1,8 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx install --global + gx-go rewrite + diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/README.md b/vendor/github.com/libp2p/go-libp2p-pnet/README.md new file mode 100644 index 00000000..84574469 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/README.md @@ -0,0 +1,31 @@ +go-libp2p-pnet +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Travis CI](https://img.shields.io/travis/libp2p/go-libp2p-pnet.svg?style=flat-square&branch=master)](https://travis-ci.org/libp2p/go-libp2p-pnet) +[![codecov.io](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-pnet.svg?style=flat-square&branch=master)](https://codecov.io/github/libp2p/go-libp2p-pnet?branch=master) + +> An implementation of go-libp2p-interface-pnet + + +## Table of Contents + +- [Usage](#usage) +- [Contribute](#contribute) +- [License](#license) + +## Usage + +See [Godocs](https://godoc.org/github.com/libp2p/go-libp2p-pnet) + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jakub Sztandera diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/codec.go b/vendor/github.com/libp2p/go-libp2p-pnet/codec.go new file mode 100644 index 00000000..ac698283 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/codec.go @@ -0,0 +1,35 @@ +package pnet + +import ( + "fmt" + "io" + + mc "github.com/multiformats/go-multicodec" + bmux "github.com/multiformats/go-multicodec/base/mux" +) + +var ( + pathPSKv1 = []byte("/key/swarm/psk/1.0.0/") + headerPSKv1 = mc.Header(pathPSKv1) +) + +func decodeV1PSK(in io.Reader) (*[32]byte, error) { + var err error + in, err = mc.WrapTransformPathToHeader(in) + if err != nil { + return nil, err + } + err = mc.ConsumeHeader(in, headerPSKv1) + if err != nil { + return nil, fmt.Errorf("psk header error: %s", err.Error()) + } + + in, err = mc.WrapTransformPathToHeader(in) + if err != nil { + return nil, fmt.Errorf("wrapping error: %s", err.Error()) + } + out := [32]byte{} + + err = bmux.AllBasesMux().Decoder(in).Decode(out[:]) + return &out, err +} diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/codecov.yml b/vendor/github.com/libp2p/go-libp2p-pnet/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/fingerprint.go b/vendor/github.com/libp2p/go-libp2p-pnet/fingerprint.go new file mode 100644 index 00000000..978a46b6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/fingerprint.go @@ -0,0 +1,24 @@ +package pnet + +import ( + "golang.org/x/crypto/salsa20" + "golang.org/x/crypto/sha3" +) + +var zero64 = make([]byte, 64) + +func fingerprint(psk *[32]byte) []byte { + enc := make([]byte, 64) + + // We encrypt data first so we don't feed PSK to hash function. + // Salsa20 function is not reversible thus increasing our security margin. + salsa20.XORKeyStream(enc, zero64, []byte("finprint"), psk) + + out := make([]byte, 16) + // Then do Shake-128 hash to reduce its length. + // This way if for some reason Shake is broken and Salsa20 preimage is possible, + // attacker has only half of the bytes necessary to recreate psk. + sha3.ShakeSum128(out, enc) + + return out +} diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/generate.go b/vendor/github.com/libp2p/go-libp2p-pnet/generate.go new file mode 100644 index 00000000..cf220ced --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/generate.go @@ -0,0 +1,38 @@ +package pnet + +import ( + "bytes" + "crypto/rand" + "encoding/hex" + "io" +) + +func newLine() io.Reader { + return bytes.NewReader([]byte("\n")) +} + +// GenerateV1PSK generates new PSK key that can be used with NewProtector +func GenerateV1PSK() (io.Reader, error) { + psk, err := GenerateV1Bytes() + if err != nil { + return nil, err + } + + hexPsk := make([]byte, len(psk)*2) + hex.Encode(hexPsk, psk[:]) + + // just a shortcut to NewReader + nr := func(b []byte) io.Reader { + return bytes.NewReader(b) + } + return io.MultiReader(nr(pathPSKv1), newLine(), nr([]byte("/base16/")), newLine(), nr(hexPsk)), nil +} + +func GenerateV1Bytes() (*[32]byte, error) { + psk := [32]byte{} + _, err := rand.Read(psk[:]) + if err != nil { + return nil, err + } + return &psk, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/go.mod b/vendor/github.com/libp2p/go-libp2p-pnet/go.mod new file mode 100644 index 00000000..1b4bf11e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/go.mod @@ -0,0 +1,11 @@ +module github.com/libp2p/go-libp2p-pnet + +require ( + github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 + github.com/libp2p/go-buffer-pool v0.0.1 + github.com/libp2p/go-libp2p-interface-pnet v0.0.1 + github.com/libp2p/go-msgio v0.0.1 // indirect + github.com/multiformats/go-multicodec v0.1.6 + github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect + golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 +) diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/go.sum b/vendor/github.com/libp2p/go-libp2p-pnet/go.sum new file mode 100644 index 00000000..d0cae833 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/go.sum @@ -0,0 +1,16 @@ +github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 h1:6xT9KW8zLC5IlbaIF5Q7JNieBoACT7iW0YTxQHR0in0= +github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/multiformats/go-multicodec v0.1.6 h1:4u6lcjbE4VVVoigU4QJSSVYsGVP4j2jtDkR8lPwOrLE= +github.com/multiformats/go-multicodec v0.1.6/go.mod h1:lliaRHbcG8q33yf4Ot9BGD7JqR/Za9HE7HTyVyKwrUQ= +github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 h1:5HZfQkwe0mIfyDmc1Em5GqlNRzcdtlv4HTNmdpt7XH0= +github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11/go.mod h1:Wlo/SzPmxVp6vXpGt/zaXhHH0fn4IxgqZc82aKg6bpQ= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/package.json b/vendor/github.com/libp2p/go-libp2p-pnet/package.json new file mode 100644 index 00000000..e30162b6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/package.json @@ -0,0 +1,43 @@ +{ + "author": "libp2p", + "bugs": { + "URL": "https://github.com/libp2p/go-libp2p-pnet/issues", + "url": "https://github.com/libp2p/go-libp2p-pnet/issues" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-pnet" + }, + "gxDependencies": [ + { + "author": "libp2p", + "hash": "QmW7Ump7YyBMr712Ta3iEVh3ZYcfVvJaPryfbCnyE826b4", + "name": "go-libp2p-interface-pnet", + "version": "3.0.0" + }, + { + "author": "multiformats", + "hash": "QmZb2Hc6sQeFpmnSuFLYH2eWjaMcPPtzDzXY1PkMM1sjnP", + "name": "go-multicodec", + "version": "0.1.8" + }, + { + "author": "davidlazar", + "hash": "QmNi5J1mEQKAKWbPRBEMKKYVNok9EN4MsGM4YUqPvraPEX", + "name": "go-crypto-dav", + "version": "0.2.2" + }, + { + "author": "Stebalien", + "hash": "QmQDvJoB6aJWN3sjr3xsgXqKCXf4jU5zdMXpDMsBkYVNqa", + "name": "go-buffer-pool", + "version": "0.1.3" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "MIT", + "name": "go-libp2p-pnet", + "releaseCmd": "git commit -a -m \"gx release $VERSION\"", + "version": "3.0.5" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/protector.go b/vendor/github.com/libp2p/go-libp2p-pnet/protector.go new file mode 100644 index 00000000..38706817 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/protector.go @@ -0,0 +1,41 @@ +package pnet + +import ( + "fmt" + "io" + "net" + + ipnet "github.com/libp2p/go-libp2p-interface-pnet" +) + +var _ ipnet.Protector = (*protector)(nil) + +// NewProtector creates ipnet.Protector instance from a io.Reader stream +// that should include Multicodec encoded V1 PSK. +func NewProtector(input io.Reader) (ipnet.Protector, error) { + psk, err := decodeV1PSK(input) + if err != nil { + return nil, fmt.Errorf("malformed private network key: %s", err) + } + return NewV1ProtectorFromBytes(psk) +} + +// NewV1ProtectorFromBytes creates ipnet.Protector of the V1 version. +func NewV1ProtectorFromBytes(psk *[32]byte) (ipnet.Protector, error) { + return &protector{ + psk: psk, + fingerprint: fingerprint(psk), + }, nil +} + +type protector struct { + psk *[32]byte + fingerprint []byte +} + +func (p protector) Protect(in net.Conn) (net.Conn, error) { + return newPSKConn(p.psk, in) +} +func (p protector) Fingerprint() []byte { + return p.fingerprint +} diff --git a/vendor/github.com/libp2p/go-libp2p-pnet/psk_conn.go b/vendor/github.com/libp2p/go-libp2p-pnet/psk_conn.go new file mode 100644 index 00000000..5b16ef7a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pnet/psk_conn.go @@ -0,0 +1,82 @@ +package pnet + +import ( + "crypto/cipher" + "crypto/rand" + "io" + "net" + + salsa20 "github.com/davidlazar/go-crypto/salsa20" + pool "github.com/libp2p/go-buffer-pool" + ipnet "github.com/libp2p/go-libp2p-interface-pnet" +) + +// we are using buffer pool as user needs their slice back +// so we can't do XOR cripter in place +var ( + errShortNonce = ipnet.NewError("could not read full nonce") + errInsecureNil = ipnet.NewError("insecure is nil") + errPSKNil = ipnet.NewError("pre-shread key is nil") +) + +type pskConn struct { + net.Conn + psk *[32]byte + + writeS20 cipher.Stream + readS20 cipher.Stream +} + +func (c *pskConn) Read(out []byte) (int, error) { + if c.readS20 == nil { + nonce := make([]byte, 24) + _, err := io.ReadFull(c.Conn, nonce) + if err != nil { + return 0, errShortNonce + } + c.readS20 = salsa20.New(c.psk, nonce) + } + + n, err := c.Conn.Read(out) // read to in + if n > 0 { + c.readS20.XORKeyStream(out[:n], out[:n]) // decrypt to out buffer + } + return n, err +} + +func (c *pskConn) Write(in []byte) (int, error) { + if c.writeS20 == nil { + nonce := make([]byte, 24) + _, err := rand.Read(nonce) + if err != nil { + return 0, err + } + _, err = c.Conn.Write(nonce) + if err != nil { + return 0, err + } + + c.writeS20 = salsa20.New(c.psk, nonce) + } + out := pool.Get(len(in)) + defer pool.Put(out) + + c.writeS20.XORKeyStream(out, in) // encrypt + + return c.Conn.Write(out) // send +} + +var _ net.Conn = (*pskConn)(nil) + +func newPSKConn(psk *[32]byte, insecure net.Conn) (net.Conn, error) { + if insecure == nil { + return nil, errInsecureNil + } + if psk == nil { + return nil, errPSKNil + } + return &pskConn{ + Conn: insecure, + psk: psk, + }, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/.travis.yml b/vendor/github.com/libp2p/go-libp2p-protocol/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/LICENSE b/vendor/github.com/libp2p/go-libp2p-protocol/LICENSE new file mode 100644 index 00000000..f64ffb04 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Protocol Labs Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/Makefile b/vendor/github.com/libp2p/go-libp2p-protocol/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/README.md b/vendor/github.com/libp2p/go-libp2p-protocol/README.md new file mode 100644 index 00000000..e258b914 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/README.md @@ -0,0 +1,42 @@ +# go-libp2p-protocol + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-libp2p-blue.svg?style=flat-square)](http://github.com/libp2p/libp2p) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-protocol?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-protocol) +[![Coverage Status](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-protocol.svg?style=flat-square&branch=master)](https://codecov.io/github/libp2p/go-libp2p-protocol?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-protocol.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-protocol) + +> Just a type for protocol strings. Nothing more + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Contribute](#contribute) + - [Want to hack on IPFS?](#want-to-hack-on-ipfs) +- [License](#license) + +## Install + +```sh +go get github.com/libp2p/go-libp2p-protocol +``` + +## Usage + +Go to https://godoc.org/github.com/libp2p/go-libp2p-protocol. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-protocol/issues)! + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/codecov.yml b/vendor/github.com/libp2p/go-libp2p-protocol/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/go.mod b/vendor/github.com/libp2p/go-libp2p-protocol/go.mod new file mode 100644 index 00000000..18ac1448 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/go.mod @@ -0,0 +1 @@ +module github.com/libp2p/go-libp2p-protocol diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/package.json b/vendor/github.com/libp2p/go-libp2p-protocol/package.json new file mode 100644 index 00000000..02531a18 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/package.json @@ -0,0 +1,15 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-protocol" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-protocol" + }, + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-libp2p-protocol", + "version": "1.0.0" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-protocol/protocol.go b/vendor/github.com/libp2p/go-libp2p-protocol/protocol.go new file mode 100644 index 00000000..f7e4a32b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-protocol/protocol.go @@ -0,0 +1,9 @@ +package protocol + +// ID is an identifier used to write protocol headers in streams. +type ID string + +// These are reserved protocol.IDs. +const ( + TestingID ID = "/p2p/_testing" +) diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/.travis.yml b/vendor/github.com/libp2p/go-libp2p-pubsub-router/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/LICENSE b/vendor/github.com/libp2p/go-libp2p-pubsub-router/LICENSE new file mode 100644 index 00000000..6cccfc2b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/Makefile b/vendor/github.com/libp2p/go-libp2p-pubsub-router/Makefile new file mode 100644 index 00000000..a89e6d08 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/README.md b/vendor/github.com/libp2p/go-libp2p-pubsub-router/README.md new file mode 100644 index 00000000..feb070bf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/README.md @@ -0,0 +1,31 @@ +# go-libp2p-pubsub-router + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-pubsub-router?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-pubsub-router) +[![Coverage Status](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-pubsub-router.svg?style=flat-square&branch=master)](https://codecov.io/github/libp2p/go-libp2p-pubsub-router?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-pubsub-router.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-pubsub-router) + +> A libp2p router that uses pubsub. + +We currently only use this for IPNS over PubSub. + +## Documenation + +See https://godoc.org/github.com/libp2p/go-libp2p-pubsub-router. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-pubsub-router/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/go.mod b/vendor/github.com/libp2p/go-libp2p-pubsub-router/go.mod new file mode 100644 index 00000000..2f994da3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/go.mod @@ -0,0 +1,18 @@ +module github.com/libp2p/go-libp2p-pubsub-router + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-datastore v0.0.1 + github.com/ipfs/go-ipfs-ds-help v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-blankhost v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-pubsub v0.0.1 + github.com/libp2p/go-libp2p-record v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/libp2p/go-libp2p-routing-helpers v0.0.2 + github.com/libp2p/go-libp2p-swarm v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/go.sum b/vendor/github.com/libp2p/go-libp2p-pubsub-router/go.sum new file mode 100644 index 00000000..6dc1df7a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/go.sum @@ -0,0 +1,225 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1 h1:AW/KZCScnBWlSb5JbnEnLKFWXL224LBEh/9KXXOrUms= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v0.0.1 h1:QBg+Ts2zgeemK/dB0saiF/ykzRGgfoFMT90Rzo0OnVU= +github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-pubsub v0.0.1 h1:iJWpvBDZiZOoRBGqEifu9yUHti9ptnSODHt6tgrBC6c= +github.com/libp2p/go-libp2p-pubsub v0.0.1/go.mod h1:fYKlZBOF2yrJzYlgeEVFSbYWfbS+E8Zix6gMZ0A6WgE= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-routing-helpers v0.0.1 h1:fl02yxCXoPxt3tIRUC5yxKEIkKfJoZVkAkm+JN97SFE= +github.com/libp2p/go-libp2p-routing-helpers v0.0.1/go.mod h1:zf1ook9HoOQpfnVXrF4gGorkPrGGf1g25vgH5+4SRNU= +github.com/libp2p/go-libp2p-routing-helpers v0.0.2 h1:SLX7eDQE8Xo197NwNM/hM7WnH3w6fSGY9+G9HkiYwqQ= +github.com/libp2p/go-libp2p-routing-helpers v0.0.2/go.mod h1:zf1ook9HoOQpfnVXrF4gGorkPrGGf1g25vgH5+4SRNU= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSvJi5zk5GLKVuid9TVjS9a0OmLIDKTfoZBL6Ow= +github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/package.json b/vendor/github.com/libp2p/go-libp2p-pubsub-router/package.json new file mode 100644 index 00000000..19579e3a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/package.json @@ -0,0 +1,97 @@ +{ + "author": "stebalien", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-pubsub-router" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "jbenet", + "hash": "QmUadX5EcvrBmxAV9sE7wUWtWSqxns5K84qKJBixmcT1w9", + "name": "go-datastore", + "version": "3.6.1" + }, + { + "author": "hsanjuan", + "hash": "QmXSEqXLCzpCByJU4wqbJ37TcBEj77FKMUWUP1qLh56847", + "name": "go-ipfs-ds-help", + "version": "0.1.7" + }, + { + "author": "whyrusleeping", + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmcBTHN7uAMBdkzRoQ3n9cE7tGu8Ubd9zmahjskjTRw4Uf", + "name": "go-libp2p-blankhost", + "version": "0.3.26" + }, + { + "author": "whyrusleeping", + "hash": "QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd", + "name": "go-libp2p-host", + "version": "3.0.26" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "hash": "QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX", + "name": "go-libp2p-record", + "version": "4.1.15" + }, + { + "hash": "QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf", + "name": "go-libp2p-routing", + "version": "2.7.13" + }, + { + "author": "Stebalien", + "hash": "QmXwV9RskR8vpoYWu9bvKAeAWaBKyxEsEiM9yy6ezbpNBm", + "name": "go-libp2p-routing-helpers", + "version": "0.4.0" + }, + { + "author": "whyrusleeping", + "hash": "QmQVoMEL1CxrVusTSUdYsiJXVBnvSqNUpBsGybkwSfksEF", + "name": "go-libp2p-swarm", + "version": "3.0.35" + }, + { + "author": "whyrusleeping", + "hash": "QmfB4oDUTiaGEqT13P1JqCEhqW7cB1wpKtq3PP4BN8PhQd", + "name": "go-libp2p-pubsub", + "version": "0.11.16" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-libp2p-pubsub-router", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.5.18" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub-router/pubsub.go b/vendor/github.com/libp2p/go-libp2p-pubsub-router/pubsub.go new file mode 100644 index 00000000..22b1d974 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub-router/pubsub.go @@ -0,0 +1,393 @@ +package namesys + +import ( + "bytes" + "context" + "encoding/base64" + "errors" + "sync" + "time" + + cid "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + dssync "github.com/ipfs/go-datastore/sync" + dshelp "github.com/ipfs/go-ipfs-ds-help" + u "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" + p2phost "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + pubsub "github.com/libp2p/go-libp2p-pubsub" + record "github.com/libp2p/go-libp2p-record" + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +var log = logging.Logger("pubsub-valuestore") + +type watchGroup struct { + // Note: this chan must be buffered, see notifyWatchers + listeners map[chan []byte]struct{} +} + +type PubsubValueStore struct { + ctx context.Context + ds ds.Datastore + host p2phost.Host + cr routing.ContentRouting + ps *pubsub.PubSub + + // Map of keys to subscriptions. + // + // If a key is present but the subscription is nil, we've bootstrapped + // but haven't subscribed. + mx sync.Mutex + subs map[string]*pubsub.Subscription + + watchLk sync.Mutex + watching map[string]*watchGroup + + Validator record.Validator +} + +// KeyToTopic converts a binary record key to a pubsub topic key. +func KeyToTopic(key string) string { + // Record-store keys are arbitrary binary. However, pubsub requires UTF-8 string topic IDs. + // Encodes to "/record/base64url(key)" + return "/record/" + base64.RawURLEncoding.EncodeToString([]byte(key)) +} + +// NewPubsubPublisher constructs a new Publisher that publishes IPNS records through pubsub. +// The constructor interface is complicated by the need to bootstrap the pubsub topic. +// This could be greatly simplified if the pubsub implementation handled bootstrap itself +func NewPubsubValueStore(ctx context.Context, host p2phost.Host, cr routing.ContentRouting, ps *pubsub.PubSub, validator record.Validator) *PubsubValueStore { + return &PubsubValueStore{ + ctx: ctx, + + ds: dssync.MutexWrap(ds.NewMapDatastore()), + host: host, // needed for pubsub bootstrap + cr: cr, // needed for pubsub bootstrap + ps: ps, + + subs: make(map[string]*pubsub.Subscription), + watching: make(map[string]*watchGroup), + + Validator: validator, + } +} + +// Publish publishes an IPNS record through pubsub with default TTL +func (p *PubsubValueStore) PutValue(ctx context.Context, key string, value []byte, opts ...ropts.Option) error { + // Record-store keys are arbitrary binary. However, pubsub requires UTF-8 string topic IDs. + // Encode to "/record/base64url(key)" + topic := KeyToTopic(key) + + p.mx.Lock() + _, bootstraped := p.subs[key] + + if !bootstraped { + p.subs[key] = nil + p.mx.Unlock() + + bootstrapPubsub(p.ctx, p.cr, p.host, topic) + } else { + p.mx.Unlock() + } + + log.Debugf("PubsubPublish: publish value for key", key) + return p.ps.Publish(topic, value) +} + +func (p *PubsubValueStore) isBetter(key string, val []byte) bool { + if p.Validator.Validate(key, val) != nil { + return false + } + + old, err := p.getLocal(key) + if err != nil { + // If the old one is invalid, the new one is *always* better. + return true + } + + // Same record. Possible DoS vector, should consider failing? + if bytes.Equal(old, val) { + return true + } + + i, err := p.Validator.Select(key, [][]byte{val, old}) + return err == nil && i == 0 +} + +func (p *PubsubValueStore) Subscribe(key string) error { + p.mx.Lock() + // see if we already have a pubsub subscription; if not, subscribe + sub := p.subs[key] + p.mx.Unlock() + + if sub != nil { + return nil + } + + topic := KeyToTopic(key) + + // Ignore the error. We have to check again anyways to make sure the + // record hasn't expired. + // + // Also, make sure to do this *before* subscribing. + p.ps.RegisterTopicValidator(topic, func(ctx context.Context, _ peer.ID, msg *pubsub.Message) bool { + return p.isBetter(key, msg.GetData()) + }) + + sub, err := p.ps.Subscribe(topic) + if err != nil { + p.mx.Unlock() + return err + } + + p.mx.Lock() + existingSub, bootstraped := p.subs[key] + if existingSub != nil { + p.mx.Unlock() + sub.Cancel() + return nil + } + + p.subs[key] = sub + ctx, cancel := context.WithCancel(p.ctx) + go p.handleSubscription(sub, key, cancel) + p.mx.Unlock() + + log.Debugf("PubsubResolve: subscribed to %s", key) + + if !bootstraped { + // TODO: Deal with publish then resolve case? Cancel behaviour changes. + go bootstrapPubsub(ctx, p.cr, p.host, topic) + } + return nil +} + +func (p *PubsubValueStore) getLocal(key string) ([]byte, error) { + val, err := p.ds.Get(dshelp.NewKeyFromBinary([]byte(key))) + if err != nil { + // Don't invalidate due to ds errors. + if err == ds.ErrNotFound { + err = routing.ErrNotFound + } + return nil, err + } + + // If the old one is invalid, the new one is *always* better. + if err := p.Validator.Validate(key, val); err != nil { + return nil, err + } + return val, nil +} + +func (p *PubsubValueStore) GetValue(ctx context.Context, key string, opts ...ropts.Option) ([]byte, error) { + if err := p.Subscribe(key); err != nil { + return nil, err + } + + return p.getLocal(key) +} + +func (p *PubsubValueStore) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + if err := p.Subscribe(key); err != nil { + return nil, err + } + + p.watchLk.Lock() + defer p.watchLk.Unlock() + + out := make(chan []byte, 1) + lv, err := p.getLocal(key) + if err == nil { + out <- lv + close(out) + return out, nil + } + + wg, ok := p.watching[key] + if !ok { + wg = &watchGroup{ + listeners: map[chan []byte]struct{}{}, + } + p.watching[key] = wg + } + + proxy := make(chan []byte, 1) + + ctx, cancel := context.WithCancel(ctx) + wg.listeners[proxy] = struct{}{} + + go func() { + defer func() { + cancel() + + p.watchLk.Lock() + delete(wg.listeners, proxy) + + if _, ok := p.watching[key]; len(wg.listeners) == 0 && ok { + delete(p.watching, key) + } + p.watchLk.Unlock() + + close(out) + }() + + for { + select { + case val, ok := <-proxy: + if !ok { + return + } + + // outCh is buffered, so we just put the value or swap it for the newer one + select { + case out <- val: + case <-out: + out <- val + } + + // 1 is good enough + return + case <-ctx.Done(): + return + } + } + }() + + return out, nil +} + +// GetSubscriptions retrieves a list of active topic subscriptions +func (p *PubsubValueStore) GetSubscriptions() []string { + p.mx.Lock() + defer p.mx.Unlock() + + var res []string + for sub := range p.subs { + res = append(res, sub) + } + + return res +} + +// Cancel cancels a topic subscription; returns true if an active +// subscription was canceled +func (p *PubsubValueStore) Cancel(name string) (bool, error) { + p.mx.Lock() + defer p.mx.Unlock() + + p.watchLk.Lock() + if _, wok := p.watching[name]; wok { + p.watchLk.Unlock() + return false, errors.New("key has active subscriptions") + } + p.watchLk.Unlock() + + sub, ok := p.subs[name] + if ok { + sub.Cancel() + delete(p.subs, name) + } + + return ok, nil +} + +func (p *PubsubValueStore) handleSubscription(sub *pubsub.Subscription, key string, cancel func()) { + defer sub.Cancel() + defer cancel() + + for { + msg, err := sub.Next(p.ctx) + if err != nil { + if err != context.Canceled { + log.Warningf("PubsubResolve: subscription error in %s: %s", key, err.Error()) + } + return + } + if p.isBetter(key, msg.GetData()) { + err := p.ds.Put(dshelp.NewKeyFromBinary([]byte(key)), msg.GetData()) + if err != nil { + log.Warningf("PubsubResolve: error writing update for %s: %s", key, err) + } + p.notifyWatchers(key, msg.GetData()) + } + } +} + +func (p *PubsubValueStore) notifyWatchers(key string, data []byte) { + p.watchLk.Lock() + defer p.watchLk.Unlock() + sg, ok := p.watching[key] + if !ok { + return + } + + for watcher := range sg.listeners { + select { + case <-watcher: + watcher <- data + case watcher <- data: + } + } +} + +// rendezvous with peers in the name topic through provider records +// Note: rendezvous/boostrap should really be handled by the pubsub implementation itself! +func bootstrapPubsub(ctx context.Context, cr routing.ContentRouting, host p2phost.Host, name string) { + // TODO: consider changing this to `pubsub:...` + topic := "floodsub:" + name + hash := u.Hash([]byte(topic)) + rz := cid.NewCidV1(cid.Raw, hash) + + err := cr.Provide(ctx, rz, true) + if err != nil { + log.Warningf("bootstrapPubsub: error providing rendezvous for %s: %s", topic, err.Error()) + } + + go func() { + for { + select { + case <-time.After(8 * time.Hour): + err := cr.Provide(ctx, rz, true) + if err != nil { + log.Warningf("bootstrapPubsub: error providing rendezvous for %s: %s", topic, err.Error()) + } + case <-ctx.Done(): + return + } + } + }() + + rzctx, cancel := context.WithTimeout(ctx, time.Second*10) + defer cancel() + + wg := &sync.WaitGroup{} + for pi := range cr.FindProvidersAsync(rzctx, rz, 10) { + if pi.ID == host.ID() { + continue + } + wg.Add(1) + go func(pi pstore.PeerInfo) { + defer wg.Done() + + ctx, cancel := context.WithTimeout(ctx, time.Second*10) + defer cancel() + + err := host.Connect(ctx, pi) + if err != nil { + log.Debugf("Error connecting to pubsub peer %s: %s", pi.ID, err.Error()) + return + } + + // delay to let pubsub perform its handshake + time.Sleep(time.Millisecond * 250) + + log.Debugf("Connected to pubsub peer %s", pi.ID) + }(pi) + } + + wg.Wait() +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/.gitignore b/vendor/github.com/libp2p/go-libp2p-pubsub/.gitignore new file mode 100644 index 00000000..5b98de78 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/.gitignore @@ -0,0 +1,3 @@ +cover.out +prof.out +go-floodsub.test diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/.travis.yml b/vendor/github.com/libp2p/go-libp2p-pubsub/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/LICENSE b/vendor/github.com/libp2p/go-libp2p-pubsub/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/Makefile b/vendor/github.com/libp2p/go-libp2p-pubsub/Makefile new file mode 100644 index 00000000..3c64b37d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/Makefile @@ -0,0 +1,7 @@ +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/README.md b/vendor/github.com/libp2p/go-libp2p-pubsub/README.md new file mode 100644 index 00000000..38d20644 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/README.md @@ -0,0 +1,55 @@ +# go-libp2p-pubsub + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://github.com/libp2p/libp2p) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) + +> A pubsub system with flooding and gossiping variants. + +This is the canonical pubsub implementation for libp2p. + +We currently provide three implementations: +- floodsub, which is the baseline flooding protocol. +- gossipsub, which is a more advanced router with mesh formation and gossip propagation. + See [spec](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) and [implementation](https://github.com/libp2p/go-libp2p-pubsub/blob/master/gossipsub.go) for more details. +- randomsub, which is a simple probabilistic router that propagates to random subsets of peers. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Documentation](#documentation) +- [Contribute](#contribute) +- [License](#license) + +## Install + +``` +go get github.com/libp2p/go-libp2p-pubsub +``` + +## Usage + +To be used for messaging in p2p instrastructure (as part of libp2p) such as IPFS, Ethereum, other blockchains, etc. + +## Implementations + +See [libp2p/specs/pubsub#Implementations](https://github.com/libp2p/specs/tree/master/pubsub#Implementations). + +## Documentation + +See the [libp2p specs](https://github.com/libp2p/specs/tree/master/pubsub) for high level documentation +and [godoc](https://godoc.org/github.com/libp2p/go-libp2p-pubsub) for API documentation. + + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/libp2p/go-libp2p-pubsub/issues). + +Check out our [contributing document](https://github.com/libp2p/community/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/blacklist.go b/vendor/github.com/libp2p/go-libp2p-pubsub/blacklist.go new file mode 100644 index 00000000..84f2efb5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/blacklist.go @@ -0,0 +1,53 @@ +package pubsub + +import ( + lru "github.com/hashicorp/golang-lru" + peer "github.com/libp2p/go-libp2p-peer" +) + +// Blacklist is an interface for peer blacklisting. +type Blacklist interface { + Add(peer.ID) + Contains(peer.ID) bool +} + +// MapBlacklist is a blacklist implementation using a perfect map +type MapBlacklist map[peer.ID]struct{} + +// NewMapBlacklist creates a new MapBlacklist +func NewMapBlacklist() Blacklist { + return MapBlacklist(make(map[peer.ID]struct{})) +} + +func (b MapBlacklist) Add(p peer.ID) { + b[p] = struct{}{} +} + +func (b MapBlacklist) Contains(p peer.ID) bool { + _, ok := b[p] + return ok +} + +// LRUBlacklist is a blacklist implementation using an LRU cache +type LRUBlacklist struct { + lru *lru.Cache +} + +// NewLRUBlacklist creates a new LRUBlacklist with capacity cap +func NewLRUBlacklist(cap int) (Blacklist, error) { + c, err := lru.New(cap) + if err != nil { + return nil, err + } + + b := &LRUBlacklist{lru: c} + return b, nil +} + +func (b LRUBlacklist) Add(p peer.ID) { + b.lru.Add(p, nil) +} + +func (b LRUBlacklist) Contains(p peer.ID) bool { + return b.lru.Contains(p) +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/codecov.yml b/vendor/github.com/libp2p/go-libp2p-pubsub/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/comm.go b/vendor/github.com/libp2p/go-libp2p-pubsub/comm.go new file mode 100644 index 00000000..48b620c8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/comm.go @@ -0,0 +1,172 @@ +package pubsub + +import ( + "bufio" + "context" + "io" + + pb "github.com/libp2p/go-libp2p-pubsub/pb" + + ggio "github.com/gogo/protobuf/io" + proto "github.com/gogo/protobuf/proto" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + ms "github.com/multiformats/go-multistream" +) + +// get the initial RPC containing all of our subscriptions to send to new peers +func (p *PubSub) getHelloPacket() *RPC { + var rpc RPC + for t := range p.myTopics { + as := &pb.RPC_SubOpts{ + Topicid: proto.String(t), + Subscribe: proto.Bool(true), + } + rpc.Subscriptions = append(rpc.Subscriptions, as) + } + return &rpc +} + +func (p *PubSub) handleNewStream(s inet.Stream) { + r := ggio.NewDelimitedReader(s, 1<<20) + for { + rpc := new(RPC) + err := r.ReadMsg(&rpc.RPC) + if err != nil { + if err != io.EOF { + s.Reset() + log.Infof("error reading rpc from %s: %s", s.Conn().RemotePeer(), err) + } else { + // Just be nice. They probably won't read this + // but it doesn't hurt to send it. + s.Close() + } + return + } + + rpc.from = s.Conn().RemotePeer() + select { + case p.incoming <- rpc: + case <-p.ctx.Done(): + // Close is useless because the other side isn't reading. + s.Reset() + return + } + } +} + +func (p *PubSub) handleNewPeer(ctx context.Context, pid peer.ID, outgoing <-chan *RPC) { + s, err := p.host.NewStream(p.ctx, pid, p.rt.Protocols()...) + if err != nil { + log.Warning("opening new stream to peer: ", err, pid) + + var ch chan peer.ID + if err == ms.ErrNotSupported { + ch = p.newPeerError + } else { + ch = p.peerDead + } + + select { + case ch <- pid: + case <-ctx.Done(): + } + return + } + + go p.handleSendingMessages(ctx, s, outgoing) + go p.handlePeerEOF(ctx, s) + select { + case p.newPeerStream <- s: + case <-ctx.Done(): + } +} + +func (p *PubSub) handlePeerEOF(ctx context.Context, s inet.Stream) { + r := ggio.NewDelimitedReader(s, 1<<20) + rpc := new(RPC) + for { + err := r.ReadMsg(&rpc.RPC) + if err != nil { + select { + case p.peerDead <- s.Conn().RemotePeer(): + case <-ctx.Done(): + } + return + } + log.Warning("unexpected message from ", s.Conn().RemotePeer()) + } +} + +func (p *PubSub) handleSendingMessages(ctx context.Context, s inet.Stream, outgoing <-chan *RPC) { + bufw := bufio.NewWriter(s) + wc := ggio.NewDelimitedWriter(bufw) + + writeMsg := func(msg proto.Message) error { + err := wc.WriteMsg(msg) + if err != nil { + return err + } + + return bufw.Flush() + } + + defer inet.FullClose(s) + for { + select { + case rpc, ok := <-outgoing: + if !ok { + return + } + + err := writeMsg(&rpc.RPC) + if err != nil { + s.Reset() + log.Infof("writing message to %s: %s", s.Conn().RemotePeer(), err) + return + } + case <-ctx.Done(): + return + } + } +} + +func rpcWithSubs(subs ...*pb.RPC_SubOpts) *RPC { + return &RPC{ + RPC: pb.RPC{ + Subscriptions: subs, + }, + } +} + +func rpcWithMessages(msgs ...*pb.Message) *RPC { + return &RPC{RPC: pb.RPC{Publish: msgs}} +} + +func rpcWithControl(msgs []*pb.Message, + ihave []*pb.ControlIHave, + iwant []*pb.ControlIWant, + graft []*pb.ControlGraft, + prune []*pb.ControlPrune) *RPC { + return &RPC{ + RPC: pb.RPC{ + Publish: msgs, + Control: &pb.ControlMessage{ + Ihave: ihave, + Iwant: iwant, + Graft: graft, + Prune: prune, + }, + }, + } +} + +func copyRPC(rpc *RPC) *RPC { + res := new(RPC) + *res = *rpc + if rpc.Control != nil { + res.Control = new(pb.ControlMessage) + *res.Control = *rpc.Control + } + return res +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/doc.go b/vendor/github.com/libp2p/go-libp2p-pubsub/doc.go new file mode 100644 index 00000000..e8a5ac89 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/doc.go @@ -0,0 +1,27 @@ +// The pubsub package provides facilities for the Publish/Subscribe pattern of message +// propagation, also known as overlay multicast. +// The implementation provides topic-based pubsub, with pluggable routing algorithms. +// +// The main interface to the library is the PubSub object. +// You can construct this object with the following constructors: +// +// - NewFloodSub creates an instance that uses the floodsub routing algorithm. +// +// - NewGossipSub creates an instance that uses the gossipsub routing algorithm. +// +// - NewRandomSub creates an instance that uses the randomsub routing algorithm. +// +// In addition, there is a generic constructor that creates a pubsub instance with +// a custom PubSubRouter interface. This procedure is currently reserved for internal +// use within the package. +// +// Once you have constructed a PubSub instance, you need to establish some connections +// to your peers; the implementation relies on ambient peer discovery, leaving bootstrap +// and active peer discovery up to the client. +// +// To publish a message to some topic, use Publish; you don't need to be subscribed +// to the topic in order to publish. +// +// To subscribe to a topic, use Subscribe; this will give you a subscription interface +// from which new messages can be pumped. +package pubsub diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/floodsub.go b/vendor/github.com/libp2p/go-libp2p-pubsub/floodsub.go new file mode 100644 index 00000000..ff48d957 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/floodsub.go @@ -0,0 +1,84 @@ +package pubsub + +import ( + "context" + + pb "github.com/libp2p/go-libp2p-pubsub/pb" + + host "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +const ( + FloodSubID = protocol.ID("/floodsub/1.0.0") +) + +// NewFloodsubWithProtocols returns a new floodsub-enabled PubSub objecting using the protocols specified in ps. +func NewFloodsubWithProtocols(ctx context.Context, h host.Host, ps []protocol.ID, opts ...Option) (*PubSub, error) { + rt := &FloodSubRouter{ + protocols: ps, + } + return NewPubSub(ctx, h, rt, opts...) +} + +// NewFloodSub returns a new PubSub object using the FloodSubRouter. +func NewFloodSub(ctx context.Context, h host.Host, opts ...Option) (*PubSub, error) { + return NewFloodsubWithProtocols(ctx, h, []protocol.ID{FloodSubID}, opts...) +} + +type FloodSubRouter struct { + p *PubSub + protocols []protocol.ID +} + +func (fs *FloodSubRouter) Protocols() []protocol.ID { + return fs.protocols +} + +func (fs *FloodSubRouter) Attach(p *PubSub) { + fs.p = p +} + +func (fs *FloodSubRouter) AddPeer(peer.ID, protocol.ID) {} + +func (fs *FloodSubRouter) RemovePeer(peer.ID) {} + +func (fs *FloodSubRouter) HandleRPC(rpc *RPC) {} + +func (fs *FloodSubRouter) Publish(from peer.ID, msg *pb.Message) { + tosend := make(map[peer.ID]struct{}) + for _, topic := range msg.GetTopicIDs() { + tmap, ok := fs.p.topics[topic] + if !ok { + continue + } + + for p := range tmap { + tosend[p] = struct{}{} + } + } + + out := rpcWithMessages(msg) + for pid := range tosend { + if pid == from || pid == peer.ID(msg.GetFrom()) { + continue + } + + mch, ok := fs.p.peers[pid] + if !ok { + continue + } + + select { + case mch <- out: + default: + log.Infof("dropping message to peer %s: queue full", pid) + // Drop it. The peer is too slow. + } + } +} + +func (fs *FloodSubRouter) Join(topic string) {} + +func (fs *FloodSubRouter) Leave(topic string) {} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/go.mod b/vendor/github.com/libp2p/go-libp2p-pubsub/go.mod new file mode 100644 index 00000000..8b9a7c01 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/go.mod @@ -0,0 +1,17 @@ +module github.com/libp2p/go-libp2p-pubsub + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/hashicorp/golang-lru v0.5.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-blankhost v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-libp2p-swarm v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multistream v0.0.1 + github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee +) diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/go.sum b/vendor/github.com/libp2p/go-libp2p-pubsub/go.sum new file mode 100644 index 00000000..1a7e37f9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/go.sum @@ -0,0 +1,202 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSvJi5zk5GLKVuid9TVjS9a0OmLIDKTfoZBL6Ow= +github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/gossipsub.go b/vendor/github.com/libp2p/go-libp2p-pubsub/gossipsub.go new file mode 100644 index 00000000..81e7f616 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/gossipsub.go @@ -0,0 +1,669 @@ +package pubsub + +import ( + "context" + "fmt" + "math/rand" + "time" + + pb "github.com/libp2p/go-libp2p-pubsub/pb" + + host "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +const ( + GossipSubID = protocol.ID("/meshsub/1.0.0") +) + +var ( + // overlay parameters + GossipSubD = 6 + GossipSubDlo = 4 + GossipSubDhi = 12 + + // gossip parameters + GossipSubHistoryLength = 5 + GossipSubHistoryGossip = 3 + + // heartbeat interval + GossipSubHeartbeatInitialDelay = 100 * time.Millisecond + GossipSubHeartbeatInterval = 1 * time.Second + + // fanout ttl + GossipSubFanoutTTL = 60 * time.Second +) + +// NewGossipSub returns a new PubSub object using GossipSubRouter as the router. +func NewGossipSub(ctx context.Context, h host.Host, opts ...Option) (*PubSub, error) { + rt := &GossipSubRouter{ + peers: make(map[peer.ID]protocol.ID), + mesh: make(map[string]map[peer.ID]struct{}), + fanout: make(map[string]map[peer.ID]struct{}), + lastpub: make(map[string]int64), + gossip: make(map[peer.ID][]*pb.ControlIHave), + control: make(map[peer.ID]*pb.ControlMessage), + mcache: NewMessageCache(GossipSubHistoryGossip, GossipSubHistoryLength), + } + return NewPubSub(ctx, h, rt, opts...) +} + +// GossipSubRouter is a router that implements the gossipsub protocol. +// For each topic we have joined, we maintain an overlay through which +// messages flow; this is the mesh map. +// For each topic we publish to without joining, we maintain a list of peers +// to use for injecting our messages in the overlay with stable routes; this +// is the fanout map. Fanout peer lists are expired if we don't publish any +// messages to their topic for GossipSubFanoutTTL. +type GossipSubRouter struct { + p *PubSub + peers map[peer.ID]protocol.ID // peer protocols + mesh map[string]map[peer.ID]struct{} // topic meshes + fanout map[string]map[peer.ID]struct{} // topic fanout + lastpub map[string]int64 // last publish time for fanout topics + gossip map[peer.ID][]*pb.ControlIHave // pending gossip + control map[peer.ID]*pb.ControlMessage // pending control messages + mcache *MessageCache +} + +func (gs *GossipSubRouter) Protocols() []protocol.ID { + return []protocol.ID{GossipSubID, FloodSubID} +} + +func (gs *GossipSubRouter) Attach(p *PubSub) { + gs.p = p + go gs.heartbeatTimer() +} + +func (gs *GossipSubRouter) AddPeer(p peer.ID, proto protocol.ID) { + log.Debugf("PEERUP: Add new peer %s using %s", p, proto) + gs.peers[p] = proto +} + +func (gs *GossipSubRouter) RemovePeer(p peer.ID) { + log.Debugf("PEERDOWN: Remove disconnected peer %s", p) + delete(gs.peers, p) + for _, peers := range gs.mesh { + delete(peers, p) + } + for _, peers := range gs.fanout { + delete(peers, p) + } + delete(gs.gossip, p) + delete(gs.control, p) +} + +func (gs *GossipSubRouter) HandleRPC(rpc *RPC) { + ctl := rpc.GetControl() + if ctl == nil { + return + } + + iwant := gs.handleIHave(rpc.from, ctl) + ihave := gs.handleIWant(rpc.from, ctl) + prune := gs.handleGraft(rpc.from, ctl) + gs.handlePrune(rpc.from, ctl) + + if len(iwant) == 0 && len(ihave) == 0 && len(prune) == 0 { + return + } + + out := rpcWithControl(ihave, nil, iwant, nil, prune) + gs.sendRPC(rpc.from, out) +} + +func (gs *GossipSubRouter) handleIHave(p peer.ID, ctl *pb.ControlMessage) []*pb.ControlIWant { + iwant := make(map[string]struct{}) + + for _, ihave := range ctl.GetIhave() { + topic := ihave.GetTopicID() + _, ok := gs.mesh[topic] + if !ok { + continue + } + + for _, mid := range ihave.GetMessageIDs() { + if gs.p.seenMessage(mid) { + continue + } + iwant[mid] = struct{}{} + } + } + + if len(iwant) == 0 { + return nil + } + + log.Debugf("IHAVE: Asking for %d messages from %s", len(iwant), p) + + iwantlst := make([]string, 0, len(iwant)) + for mid := range iwant { + iwantlst = append(iwantlst, mid) + } + + return []*pb.ControlIWant{&pb.ControlIWant{MessageIDs: iwantlst}} +} + +func (gs *GossipSubRouter) handleIWant(p peer.ID, ctl *pb.ControlMessage) []*pb.Message { + ihave := make(map[string]*pb.Message) + for _, iwant := range ctl.GetIwant() { + for _, mid := range iwant.GetMessageIDs() { + msg, ok := gs.mcache.Get(mid) + if ok { + ihave[mid] = msg + } + } + } + + if len(ihave) == 0 { + return nil + } + + log.Debugf("IWANT: Sending %d messages to %s", len(ihave), p) + + msgs := make([]*pb.Message, 0, len(ihave)) + for _, msg := range ihave { + msgs = append(msgs, msg) + } + + return msgs +} + +func (gs *GossipSubRouter) handleGraft(p peer.ID, ctl *pb.ControlMessage) []*pb.ControlPrune { + var prune []string + for _, graft := range ctl.GetGraft() { + topic := graft.GetTopicID() + peers, ok := gs.mesh[topic] + if !ok { + prune = append(prune, topic) + } else { + log.Debugf("GRAFT: Add mesh link from %s in %s", p, topic) + peers[p] = struct{}{} + gs.tagPeer(p, topic) + } + } + + if len(prune) == 0 { + return nil + } + + cprune := make([]*pb.ControlPrune, 0, len(prune)) + for _, topic := range prune { + cprune = append(cprune, &pb.ControlPrune{TopicID: &topic}) + } + + return cprune +} + +func (gs *GossipSubRouter) handlePrune(p peer.ID, ctl *pb.ControlMessage) { + for _, prune := range ctl.GetPrune() { + topic := prune.GetTopicID() + peers, ok := gs.mesh[topic] + if ok { + log.Debugf("PRUNE: Remove mesh link to %s in %s", p, topic) + delete(peers, p) + gs.untagPeer(p, topic) + } + } +} + +func (gs *GossipSubRouter) Publish(from peer.ID, msg *pb.Message) { + gs.mcache.Put(msg) + + tosend := make(map[peer.ID]struct{}) + for _, topic := range msg.GetTopicIDs() { + // any peers in the topic? + tmap, ok := gs.p.topics[topic] + if !ok { + continue + } + + // floodsub peers + for p := range tmap { + if gs.peers[p] == FloodSubID { + tosend[p] = struct{}{} + } + } + + // gossipsub peers + gmap, ok := gs.mesh[topic] + if !ok { + // we are not in the mesh for topic, use fanout peers + gmap, ok = gs.fanout[topic] + if !ok { + // we don't have any, pick some + peers := gs.getPeers(topic, GossipSubD, func(peer.ID) bool { return true }) + + if len(peers) > 0 { + gmap = peerListToMap(peers) + gs.fanout[topic] = gmap + } + } + gs.lastpub[topic] = time.Now().UnixNano() + } + + for p := range gmap { + tosend[p] = struct{}{} + } + } + + out := rpcWithMessages(msg) + for pid := range tosend { + if pid == from || pid == peer.ID(msg.GetFrom()) { + continue + } + + gs.sendRPC(pid, out) + } +} + +func (gs *GossipSubRouter) Join(topic string) { + gmap, ok := gs.mesh[topic] + if ok { + return + } + + log.Debugf("JOIN %s", topic) + + gmap, ok = gs.fanout[topic] + if ok { + gs.mesh[topic] = gmap + delete(gs.fanout, topic) + delete(gs.lastpub, topic) + } else { + peers := gs.getPeers(topic, GossipSubD, func(peer.ID) bool { return true }) + gmap = peerListToMap(peers) + gs.mesh[topic] = gmap + } + + for p := range gmap { + log.Debugf("JOIN: Add mesh link to %s in %s", p, topic) + gs.sendGraft(p, topic) + gs.tagPeer(p, topic) + } +} + +func (gs *GossipSubRouter) Leave(topic string) { + gmap, ok := gs.mesh[topic] + if !ok { + return + } + + log.Debugf("LEAVE %s", topic) + + delete(gs.mesh, topic) + + for p := range gmap { + log.Debugf("LEAVE: Remove mesh link to %s in %s", p, topic) + gs.sendPrune(p, topic) + gs.untagPeer(p, topic) + } +} + +func (gs *GossipSubRouter) sendGraft(p peer.ID, topic string) { + graft := []*pb.ControlGraft{&pb.ControlGraft{TopicID: &topic}} + out := rpcWithControl(nil, nil, nil, graft, nil) + gs.sendRPC(p, out) +} + +func (gs *GossipSubRouter) sendPrune(p peer.ID, topic string) { + prune := []*pb.ControlPrune{&pb.ControlPrune{TopicID: &topic}} + out := rpcWithControl(nil, nil, nil, nil, prune) + gs.sendRPC(p, out) +} + +func (gs *GossipSubRouter) sendRPC(p peer.ID, out *RPC) { + // do we own the RPC? + own := false + + // piggyback control message retries + ctl, ok := gs.control[p] + if ok { + out = copyRPC(out) + own = true + gs.piggybackControl(p, out, ctl) + delete(gs.control, p) + } + + // piggyback gossip + ihave, ok := gs.gossip[p] + if ok { + if !own { + out = copyRPC(out) + own = true + } + gs.piggybackGossip(p, out, ihave) + delete(gs.gossip, p) + } + + mch, ok := gs.p.peers[p] + if !ok { + return + } + + select { + case mch <- out: + default: + log.Infof("dropping message to peer %s: queue full", p) + // push control messages that need to be retried + ctl := out.GetControl() + if ctl != nil { + gs.pushControl(p, ctl) + } + } +} + +func (gs *GossipSubRouter) heartbeatTimer() { + time.Sleep(GossipSubHeartbeatInitialDelay) + select { + case gs.p.eval <- gs.heartbeat: + case <-gs.p.ctx.Done(): + return + } + + ticker := time.NewTicker(GossipSubHeartbeatInterval) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + select { + case gs.p.eval <- gs.heartbeat: + case <-gs.p.ctx.Done(): + return + } + case <-gs.p.ctx.Done(): + return + } + } +} + +func (gs *GossipSubRouter) heartbeat() { + defer log.EventBegin(gs.p.ctx, "heartbeat").Done() + + // flush pending control message from retries and gossip + // that hasn't been piggybacked since the last heartbeat + gs.flush() + + tograft := make(map[peer.ID][]string) + toprune := make(map[peer.ID][]string) + + // maintain the mesh for topics we have joined + for topic, peers := range gs.mesh { + + // do we have enough peers? + if len(peers) < GossipSubDlo { + ineed := GossipSubD - len(peers) + plst := gs.getPeers(topic, ineed, func(p peer.ID) bool { + // filter our current peers + _, ok := peers[p] + return !ok + }) + + for _, p := range plst { + log.Debugf("HEARTBEAT: Add mesh link to %s in %s", p, topic) + peers[p] = struct{}{} + gs.tagPeer(p, topic) + topics := tograft[p] + tograft[p] = append(topics, topic) + } + } + + // do we have too many peers? + if len(peers) > GossipSubDhi { + idontneed := len(peers) - GossipSubD + plst := peerMapToList(peers) + shufflePeers(plst) + + for _, p := range plst[:idontneed] { + log.Debugf("HEARTBEAT: Remove mesh link to %s in %s", p, topic) + delete(peers, p) + gs.untagPeer(p, topic) + topics := toprune[p] + toprune[p] = append(topics, topic) + } + } + + gs.emitGossip(topic, peers) + } + + // expire fanout for topics we haven't published to in a while + now := time.Now().UnixNano() + for topic, lastpub := range gs.lastpub { + if lastpub+int64(GossipSubFanoutTTL) < now { + delete(gs.fanout, topic) + delete(gs.lastpub, topic) + } + } + + // maintain our fanout for topics we are publishing but we have not joined + for topic, peers := range gs.fanout { + // check whether our peers are still in the topic + for p := range peers { + _, ok := gs.p.topics[topic][p] + if !ok { + delete(peers, p) + } + } + + // do we need more peers? + if len(peers) < GossipSubD { + ineed := GossipSubD - len(peers) + plst := gs.getPeers(topic, ineed, func(p peer.ID) bool { + // filter our current peers + _, ok := peers[p] + return !ok + }) + + for _, p := range plst { + peers[p] = struct{}{} + } + } + + gs.emitGossip(topic, peers) + } + + // send coalesced GRAFT/PRUNE messages (will piggyback gossip) + gs.sendGraftPrune(tograft, toprune) + + // advance the message history window + gs.mcache.Shift() +} + +func (gs *GossipSubRouter) sendGraftPrune(tograft, toprune map[peer.ID][]string) { + for p, topics := range tograft { + graft := make([]*pb.ControlGraft, 0, len(topics)) + for _, topic := range topics { + graft = append(graft, &pb.ControlGraft{TopicID: &topic}) + } + + var prune []*pb.ControlPrune + pruning, ok := toprune[p] + if ok { + delete(toprune, p) + prune = make([]*pb.ControlPrune, 0, len(pruning)) + for _, topic := range pruning { + prune = append(prune, &pb.ControlPrune{TopicID: &topic}) + } + } + + out := rpcWithControl(nil, nil, nil, graft, prune) + gs.sendRPC(p, out) + } + + for p, topics := range toprune { + prune := make([]*pb.ControlPrune, 0, len(topics)) + for _, topic := range topics { + prune = append(prune, &pb.ControlPrune{TopicID: &topic}) + } + + out := rpcWithControl(nil, nil, nil, nil, prune) + gs.sendRPC(p, out) + } + +} + +func (gs *GossipSubRouter) emitGossip(topic string, peers map[peer.ID]struct{}) { + mids := gs.mcache.GetGossipIDs(topic) + if len(mids) == 0 { + return + } + + gpeers := gs.getPeers(topic, GossipSubD, func(peer.ID) bool { return true }) + for _, p := range gpeers { + // skip mesh peers + _, ok := peers[p] + if !ok { + gs.pushGossip(p, &pb.ControlIHave{TopicID: &topic, MessageIDs: mids}) + } + } +} + +func (gs *GossipSubRouter) flush() { + // send gossip first, which will also piggyback control + for p, ihave := range gs.gossip { + delete(gs.gossip, p) + out := rpcWithControl(nil, ihave, nil, nil, nil) + gs.sendRPC(p, out) + } + + // send the remaining control messages + for p, ctl := range gs.control { + delete(gs.control, p) + out := rpcWithControl(nil, nil, nil, ctl.Graft, ctl.Prune) + gs.sendRPC(p, out) + } +} + +func (gs *GossipSubRouter) pushGossip(p peer.ID, ihave *pb.ControlIHave) { + gossip := gs.gossip[p] + gossip = append(gossip, ihave) + gs.gossip[p] = gossip +} + +func (gs *GossipSubRouter) piggybackGossip(p peer.ID, out *RPC, ihave []*pb.ControlIHave) { + ctl := out.GetControl() + if ctl == nil { + ctl = &pb.ControlMessage{} + out.Control = ctl + } + + ctl.Ihave = ihave +} + +func (gs *GossipSubRouter) pushControl(p peer.ID, ctl *pb.ControlMessage) { + // remove IHAVE/IWANT from control message, gossip is not retried + ctl.Ihave = nil + ctl.Iwant = nil + if ctl.Graft != nil || ctl.Prune != nil { + gs.control[p] = ctl + } +} + +func (gs *GossipSubRouter) piggybackControl(p peer.ID, out *RPC, ctl *pb.ControlMessage) { + // check control message for staleness first + var tograft []*pb.ControlGraft + var toprune []*pb.ControlPrune + + for _, graft := range ctl.GetGraft() { + topic := graft.GetTopicID() + peers, ok := gs.mesh[topic] + if !ok { + continue + } + _, ok = peers[p] + if ok { + tograft = append(tograft, graft) + } + } + + for _, prune := range ctl.GetPrune() { + topic := prune.GetTopicID() + peers, ok := gs.mesh[topic] + if !ok { + toprune = append(toprune, prune) + continue + } + _, ok = peers[p] + if !ok { + toprune = append(toprune, prune) + } + } + + if len(tograft) == 0 && len(toprune) == 0 { + return + } + + xctl := out.Control + if xctl == nil { + xctl = &pb.ControlMessage{} + out.Control = xctl + } + + if len(tograft) > 0 { + xctl.Graft = append(xctl.Graft, tograft...) + } + if len(toprune) > 0 { + xctl.Prune = append(xctl.Prune, toprune...) + } +} + +func (gs *GossipSubRouter) getPeers(topic string, count int, filter func(peer.ID) bool) []peer.ID { + tmap, ok := gs.p.topics[topic] + if !ok { + return nil + } + + peers := make([]peer.ID, 0, len(tmap)) + for p := range tmap { + if gs.peers[p] == GossipSubID && filter(p) { + peers = append(peers, p) + } + } + + shufflePeers(peers) + + if count > 0 && len(peers) > count { + peers = peers[:count] + } + + return peers +} + +func (gs *GossipSubRouter) tagPeer(p peer.ID, topic string) { + tag := topicTag(topic) + gs.p.host.ConnManager().TagPeer(p, tag, 2) +} + +func (gs *GossipSubRouter) untagPeer(p peer.ID, topic string) { + tag := topicTag(topic) + gs.p.host.ConnManager().UntagPeer(p, tag) +} + +func topicTag(topic string) string { + return fmt.Sprintf("pubsub:%s", topic) +} + +func peerListToMap(peers []peer.ID) map[peer.ID]struct{} { + pmap := make(map[peer.ID]struct{}) + for _, p := range peers { + pmap[p] = struct{}{} + } + return pmap +} + +func peerMapToList(peers map[peer.ID]struct{}) []peer.ID { + plst := make([]peer.ID, 0, len(peers)) + for p := range peers { + plst = append(plst, p) + } + return plst +} + +func shufflePeers(peers []peer.ID) { + for i := range peers { + j := rand.Intn(i + 1) + peers[i], peers[j] = peers[j], peers[i] + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/mcache.go b/vendor/github.com/libp2p/go-libp2p-pubsub/mcache.go new file mode 100644 index 00000000..827987aa --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/mcache.go @@ -0,0 +1,61 @@ +package pubsub + +import ( + pb "github.com/libp2p/go-libp2p-pubsub/pb" +) + +func NewMessageCache(gossip, history int) *MessageCache { + return &MessageCache{ + msgs: make(map[string]*pb.Message), + history: make([][]CacheEntry, history), + gossip: gossip, + } +} + +type MessageCache struct { + msgs map[string]*pb.Message + history [][]CacheEntry + gossip int +} + +type CacheEntry struct { + mid string + topics []string +} + +func (mc *MessageCache) Put(msg *pb.Message) { + mid := msgID(msg) + mc.msgs[mid] = msg + mc.history[0] = append(mc.history[0], CacheEntry{mid: mid, topics: msg.GetTopicIDs()}) +} + +func (mc *MessageCache) Get(mid string) (*pb.Message, bool) { + m, ok := mc.msgs[mid] + return m, ok +} + +func (mc *MessageCache) GetGossipIDs(topic string) []string { + var mids []string + for _, entries := range mc.history[:mc.gossip] { + for _, entry := range entries { + for _, t := range entry.topics { + if t == topic { + mids = append(mids, entry.mid) + break + } + } + } + } + return mids +} + +func (mc *MessageCache) Shift() { + last := mc.history[len(mc.history)-1] + for _, entry := range last { + delete(mc.msgs, entry.mid) + } + for i := len(mc.history) - 2; i >= 0; i-- { + mc.history[i+1] = mc.history[i] + } + mc.history[0] = nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/notify.go b/vendor/github.com/libp2p/go-libp2p-pubsub/notify.go new file mode 100644 index 00000000..35f02ccb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/notify.go @@ -0,0 +1,34 @@ +package pubsub + +import ( + inet "github.com/libp2p/go-libp2p-net" + ma "github.com/multiformats/go-multiaddr" +) + +var _ inet.Notifiee = (*PubSubNotif)(nil) + +type PubSubNotif PubSub + +func (p *PubSubNotif) OpenedStream(n inet.Network, s inet.Stream) { +} + +func (p *PubSubNotif) ClosedStream(n inet.Network, s inet.Stream) { +} + +func (p *PubSubNotif) Connected(n inet.Network, c inet.Conn) { + go func() { + select { + case p.newPeers <- c.RemotePeer(): + case <-p.ctx.Done(): + } + }() +} + +func (p *PubSubNotif) Disconnected(n inet.Network, c inet.Conn) { +} + +func (p *PubSubNotif) Listen(n inet.Network, _ ma.Multiaddr) { +} + +func (p *PubSubNotif) ListenClose(n inet.Network, _ ma.Multiaddr) { +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/package.json b/vendor/github.com/libp2p/go-libp2p-pubsub/package.json new file mode 100644 index 00000000..b6ad15e9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/package.json @@ -0,0 +1,95 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-pubsub" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-pubsub" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmYftoT56eEfUBTD3erR6heXuPSUhGRezSmhSU8LeczP8b", + "name": "timecache", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd", + "name": "go-libp2p-host", + "version": "3.0.26" + }, + { + "author": "whyrusleeping", + "hash": "QmcBTHN7uAMBdkzRoQ3n9cE7tGu8Ubd9zmahjskjTRw4Uf", + "name": "go-libp2p-blankhost", + "version": "0.3.26" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "Qma3Xp3FXFSP4prirEiRYHJ2tgGE8EAx9i6JLziPLpAQjq", + "name": "go-libp2p-swarm", + "version": "3.0.34" + }, + { + "author": "whyrusleeping", + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmabLh8TrJ3emfAoQk5AbqbLTbMyj7XqumMFmAFxa9epo8", + "name": "go-multistream", + "version": "0.3.9" + }, + { + "author": "hashicorp", + "hash": "QmQjMHF8ptRgx4E57UFMiT4YM6kqaJeYxZ1MCDX23aw4rK", + "name": "golang-lru", + "version": "2017.10.18" + } + ], + "gxVersion": "0.9.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-pubsub", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.11.15" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-pubsub/pb/Makefile new file mode 100644 index 00000000..eb14b576 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofast_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.pb.go b/vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.pb.go new file mode 100644 index 00000000..12bc805c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.pb.go @@ -0,0 +1,3141 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: rpc.proto + +package pubsub_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type TopicDescriptor_AuthOpts_AuthMode int32 + +const ( + TopicDescriptor_AuthOpts_NONE TopicDescriptor_AuthOpts_AuthMode = 0 + TopicDescriptor_AuthOpts_KEY TopicDescriptor_AuthOpts_AuthMode = 1 + TopicDescriptor_AuthOpts_WOT TopicDescriptor_AuthOpts_AuthMode = 2 +) + +var TopicDescriptor_AuthOpts_AuthMode_name = map[int32]string{ + 0: "NONE", + 1: "KEY", + 2: "WOT", +} + +var TopicDescriptor_AuthOpts_AuthMode_value = map[string]int32{ + "NONE": 0, + "KEY": 1, + "WOT": 2, +} + +func (x TopicDescriptor_AuthOpts_AuthMode) Enum() *TopicDescriptor_AuthOpts_AuthMode { + p := new(TopicDescriptor_AuthOpts_AuthMode) + *p = x + return p +} + +func (x TopicDescriptor_AuthOpts_AuthMode) String() string { + return proto.EnumName(TopicDescriptor_AuthOpts_AuthMode_name, int32(x)) +} + +func (x *TopicDescriptor_AuthOpts_AuthMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TopicDescriptor_AuthOpts_AuthMode_value, data, "TopicDescriptor_AuthOpts_AuthMode") + if err != nil { + return err + } + *x = TopicDescriptor_AuthOpts_AuthMode(value) + return nil +} + +func (TopicDescriptor_AuthOpts_AuthMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{7, 0, 0} +} + +type TopicDescriptor_EncOpts_EncMode int32 + +const ( + TopicDescriptor_EncOpts_NONE TopicDescriptor_EncOpts_EncMode = 0 + TopicDescriptor_EncOpts_SHAREDKEY TopicDescriptor_EncOpts_EncMode = 1 + TopicDescriptor_EncOpts_WOT TopicDescriptor_EncOpts_EncMode = 2 +) + +var TopicDescriptor_EncOpts_EncMode_name = map[int32]string{ + 0: "NONE", + 1: "SHAREDKEY", + 2: "WOT", +} + +var TopicDescriptor_EncOpts_EncMode_value = map[string]int32{ + "NONE": 0, + "SHAREDKEY": 1, + "WOT": 2, +} + +func (x TopicDescriptor_EncOpts_EncMode) Enum() *TopicDescriptor_EncOpts_EncMode { + p := new(TopicDescriptor_EncOpts_EncMode) + *p = x + return p +} + +func (x TopicDescriptor_EncOpts_EncMode) String() string { + return proto.EnumName(TopicDescriptor_EncOpts_EncMode_name, int32(x)) +} + +func (x *TopicDescriptor_EncOpts_EncMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TopicDescriptor_EncOpts_EncMode_value, data, "TopicDescriptor_EncOpts_EncMode") + if err != nil { + return err + } + *x = TopicDescriptor_EncOpts_EncMode(value) + return nil +} + +func (TopicDescriptor_EncOpts_EncMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{7, 1, 0} +} + +type RPC struct { + Subscriptions []*RPC_SubOpts `protobuf:"bytes,1,rep,name=subscriptions" json:"subscriptions,omitempty"` + Publish []*Message `protobuf:"bytes,2,rep,name=publish" json:"publish,omitempty"` + Control *ControlMessage `protobuf:"bytes,3,opt,name=control" json:"control,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RPC) Reset() { *m = RPC{} } +func (m *RPC) String() string { return proto.CompactTextString(m) } +func (*RPC) ProtoMessage() {} +func (*RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{0} +} +func (m *RPC) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RPC.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_RPC.Merge(m, src) +} +func (m *RPC) XXX_Size() int { + return m.Size() +} +func (m *RPC) XXX_DiscardUnknown() { + xxx_messageInfo_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_RPC proto.InternalMessageInfo + +func (m *RPC) GetSubscriptions() []*RPC_SubOpts { + if m != nil { + return m.Subscriptions + } + return nil +} + +func (m *RPC) GetPublish() []*Message { + if m != nil { + return m.Publish + } + return nil +} + +func (m *RPC) GetControl() *ControlMessage { + if m != nil { + return m.Control + } + return nil +} + +type RPC_SubOpts struct { + Subscribe *bool `protobuf:"varint,1,opt,name=subscribe" json:"subscribe,omitempty"` + Topicid *string `protobuf:"bytes,2,opt,name=topicid" json:"topicid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RPC_SubOpts) Reset() { *m = RPC_SubOpts{} } +func (m *RPC_SubOpts) String() string { return proto.CompactTextString(m) } +func (*RPC_SubOpts) ProtoMessage() {} +func (*RPC_SubOpts) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{0, 0} +} +func (m *RPC_SubOpts) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RPC_SubOpts) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RPC_SubOpts.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RPC_SubOpts) XXX_Merge(src proto.Message) { + xxx_messageInfo_RPC_SubOpts.Merge(m, src) +} +func (m *RPC_SubOpts) XXX_Size() int { + return m.Size() +} +func (m *RPC_SubOpts) XXX_DiscardUnknown() { + xxx_messageInfo_RPC_SubOpts.DiscardUnknown(m) +} + +var xxx_messageInfo_RPC_SubOpts proto.InternalMessageInfo + +func (m *RPC_SubOpts) GetSubscribe() bool { + if m != nil && m.Subscribe != nil { + return *m.Subscribe + } + return false +} + +func (m *RPC_SubOpts) GetTopicid() string { + if m != nil && m.Topicid != nil { + return *m.Topicid + } + return "" +} + +type Message struct { + From []byte `protobuf:"bytes,1,opt,name=from" json:"from,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` + Seqno []byte `protobuf:"bytes,3,opt,name=seqno" json:"seqno,omitempty"` + TopicIDs []string `protobuf:"bytes,4,rep,name=topicIDs" json:"topicIDs,omitempty"` + Signature []byte `protobuf:"bytes,5,opt,name=signature" json:"signature,omitempty"` + Key []byte `protobuf:"bytes,6,opt,name=key" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{1} +} +func (m *Message) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Message.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Message) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message.Merge(m, src) +} +func (m *Message) XXX_Size() int { + return m.Size() +} +func (m *Message) XXX_DiscardUnknown() { + xxx_messageInfo_Message.DiscardUnknown(m) +} + +var xxx_messageInfo_Message proto.InternalMessageInfo + +func (m *Message) GetFrom() []byte { + if m != nil { + return m.From + } + return nil +} + +func (m *Message) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *Message) GetSeqno() []byte { + if m != nil { + return m.Seqno + } + return nil +} + +func (m *Message) GetTopicIDs() []string { + if m != nil { + return m.TopicIDs + } + return nil +} + +func (m *Message) GetSignature() []byte { + if m != nil { + return m.Signature + } + return nil +} + +func (m *Message) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +type ControlMessage struct { + Ihave []*ControlIHave `protobuf:"bytes,1,rep,name=ihave" json:"ihave,omitempty"` + Iwant []*ControlIWant `protobuf:"bytes,2,rep,name=iwant" json:"iwant,omitempty"` + Graft []*ControlGraft `protobuf:"bytes,3,rep,name=graft" json:"graft,omitempty"` + Prune []*ControlPrune `protobuf:"bytes,4,rep,name=prune" json:"prune,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControlMessage) Reset() { *m = ControlMessage{} } +func (m *ControlMessage) String() string { return proto.CompactTextString(m) } +func (*ControlMessage) ProtoMessage() {} +func (*ControlMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{2} +} +func (m *ControlMessage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControlMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ControlMessage.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ControlMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControlMessage.Merge(m, src) +} +func (m *ControlMessage) XXX_Size() int { + return m.Size() +} +func (m *ControlMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ControlMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_ControlMessage proto.InternalMessageInfo + +func (m *ControlMessage) GetIhave() []*ControlIHave { + if m != nil { + return m.Ihave + } + return nil +} + +func (m *ControlMessage) GetIwant() []*ControlIWant { + if m != nil { + return m.Iwant + } + return nil +} + +func (m *ControlMessage) GetGraft() []*ControlGraft { + if m != nil { + return m.Graft + } + return nil +} + +func (m *ControlMessage) GetPrune() []*ControlPrune { + if m != nil { + return m.Prune + } + return nil +} + +type ControlIHave struct { + TopicID *string `protobuf:"bytes,1,opt,name=topicID" json:"topicID,omitempty"` + MessageIDs []string `protobuf:"bytes,2,rep,name=messageIDs" json:"messageIDs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControlIHave) Reset() { *m = ControlIHave{} } +func (m *ControlIHave) String() string { return proto.CompactTextString(m) } +func (*ControlIHave) ProtoMessage() {} +func (*ControlIHave) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{3} +} +func (m *ControlIHave) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControlIHave) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ControlIHave.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ControlIHave) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControlIHave.Merge(m, src) +} +func (m *ControlIHave) XXX_Size() int { + return m.Size() +} +func (m *ControlIHave) XXX_DiscardUnknown() { + xxx_messageInfo_ControlIHave.DiscardUnknown(m) +} + +var xxx_messageInfo_ControlIHave proto.InternalMessageInfo + +func (m *ControlIHave) GetTopicID() string { + if m != nil && m.TopicID != nil { + return *m.TopicID + } + return "" +} + +func (m *ControlIHave) GetMessageIDs() []string { + if m != nil { + return m.MessageIDs + } + return nil +} + +type ControlIWant struct { + MessageIDs []string `protobuf:"bytes,1,rep,name=messageIDs" json:"messageIDs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControlIWant) Reset() { *m = ControlIWant{} } +func (m *ControlIWant) String() string { return proto.CompactTextString(m) } +func (*ControlIWant) ProtoMessage() {} +func (*ControlIWant) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{4} +} +func (m *ControlIWant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControlIWant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ControlIWant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ControlIWant) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControlIWant.Merge(m, src) +} +func (m *ControlIWant) XXX_Size() int { + return m.Size() +} +func (m *ControlIWant) XXX_DiscardUnknown() { + xxx_messageInfo_ControlIWant.DiscardUnknown(m) +} + +var xxx_messageInfo_ControlIWant proto.InternalMessageInfo + +func (m *ControlIWant) GetMessageIDs() []string { + if m != nil { + return m.MessageIDs + } + return nil +} + +type ControlGraft struct { + TopicID *string `protobuf:"bytes,1,opt,name=topicID" json:"topicID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControlGraft) Reset() { *m = ControlGraft{} } +func (m *ControlGraft) String() string { return proto.CompactTextString(m) } +func (*ControlGraft) ProtoMessage() {} +func (*ControlGraft) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{5} +} +func (m *ControlGraft) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControlGraft) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ControlGraft.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ControlGraft) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControlGraft.Merge(m, src) +} +func (m *ControlGraft) XXX_Size() int { + return m.Size() +} +func (m *ControlGraft) XXX_DiscardUnknown() { + xxx_messageInfo_ControlGraft.DiscardUnknown(m) +} + +var xxx_messageInfo_ControlGraft proto.InternalMessageInfo + +func (m *ControlGraft) GetTopicID() string { + if m != nil && m.TopicID != nil { + return *m.TopicID + } + return "" +} + +type ControlPrune struct { + TopicID *string `protobuf:"bytes,1,opt,name=topicID" json:"topicID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControlPrune) Reset() { *m = ControlPrune{} } +func (m *ControlPrune) String() string { return proto.CompactTextString(m) } +func (*ControlPrune) ProtoMessage() {} +func (*ControlPrune) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{6} +} +func (m *ControlPrune) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControlPrune) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ControlPrune.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ControlPrune) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControlPrune.Merge(m, src) +} +func (m *ControlPrune) XXX_Size() int { + return m.Size() +} +func (m *ControlPrune) XXX_DiscardUnknown() { + xxx_messageInfo_ControlPrune.DiscardUnknown(m) +} + +var xxx_messageInfo_ControlPrune proto.InternalMessageInfo + +func (m *ControlPrune) GetTopicID() string { + if m != nil && m.TopicID != nil { + return *m.TopicID + } + return "" +} + +type TopicDescriptor struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Auth *TopicDescriptor_AuthOpts `protobuf:"bytes,2,opt,name=auth" json:"auth,omitempty"` + Enc *TopicDescriptor_EncOpts `protobuf:"bytes,3,opt,name=enc" json:"enc,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopicDescriptor) Reset() { *m = TopicDescriptor{} } +func (m *TopicDescriptor) String() string { return proto.CompactTextString(m) } +func (*TopicDescriptor) ProtoMessage() {} +func (*TopicDescriptor) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{7} +} +func (m *TopicDescriptor) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TopicDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TopicDescriptor.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TopicDescriptor) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopicDescriptor.Merge(m, src) +} +func (m *TopicDescriptor) XXX_Size() int { + return m.Size() +} +func (m *TopicDescriptor) XXX_DiscardUnknown() { + xxx_messageInfo_TopicDescriptor.DiscardUnknown(m) +} + +var xxx_messageInfo_TopicDescriptor proto.InternalMessageInfo + +func (m *TopicDescriptor) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *TopicDescriptor) GetAuth() *TopicDescriptor_AuthOpts { + if m != nil { + return m.Auth + } + return nil +} + +func (m *TopicDescriptor) GetEnc() *TopicDescriptor_EncOpts { + if m != nil { + return m.Enc + } + return nil +} + +type TopicDescriptor_AuthOpts struct { + Mode *TopicDescriptor_AuthOpts_AuthMode `protobuf:"varint,1,opt,name=mode,enum=pubsub.pb.TopicDescriptor_AuthOpts_AuthMode" json:"mode,omitempty"` + Keys [][]byte `protobuf:"bytes,2,rep,name=keys" json:"keys,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopicDescriptor_AuthOpts) Reset() { *m = TopicDescriptor_AuthOpts{} } +func (m *TopicDescriptor_AuthOpts) String() string { return proto.CompactTextString(m) } +func (*TopicDescriptor_AuthOpts) ProtoMessage() {} +func (*TopicDescriptor_AuthOpts) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{7, 0} +} +func (m *TopicDescriptor_AuthOpts) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TopicDescriptor_AuthOpts) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TopicDescriptor_AuthOpts.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TopicDescriptor_AuthOpts) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopicDescriptor_AuthOpts.Merge(m, src) +} +func (m *TopicDescriptor_AuthOpts) XXX_Size() int { + return m.Size() +} +func (m *TopicDescriptor_AuthOpts) XXX_DiscardUnknown() { + xxx_messageInfo_TopicDescriptor_AuthOpts.DiscardUnknown(m) +} + +var xxx_messageInfo_TopicDescriptor_AuthOpts proto.InternalMessageInfo + +func (m *TopicDescriptor_AuthOpts) GetMode() TopicDescriptor_AuthOpts_AuthMode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return TopicDescriptor_AuthOpts_NONE +} + +func (m *TopicDescriptor_AuthOpts) GetKeys() [][]byte { + if m != nil { + return m.Keys + } + return nil +} + +type TopicDescriptor_EncOpts struct { + Mode *TopicDescriptor_EncOpts_EncMode `protobuf:"varint,1,opt,name=mode,enum=pubsub.pb.TopicDescriptor_EncOpts_EncMode" json:"mode,omitempty"` + KeyHashes [][]byte `protobuf:"bytes,2,rep,name=keyHashes" json:"keyHashes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopicDescriptor_EncOpts) Reset() { *m = TopicDescriptor_EncOpts{} } +func (m *TopicDescriptor_EncOpts) String() string { return proto.CompactTextString(m) } +func (*TopicDescriptor_EncOpts) ProtoMessage() {} +func (*TopicDescriptor_EncOpts) Descriptor() ([]byte, []int) { + return fileDescriptor_77a6da22d6a3feb1, []int{7, 1} +} +func (m *TopicDescriptor_EncOpts) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TopicDescriptor_EncOpts) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TopicDescriptor_EncOpts.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TopicDescriptor_EncOpts) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopicDescriptor_EncOpts.Merge(m, src) +} +func (m *TopicDescriptor_EncOpts) XXX_Size() int { + return m.Size() +} +func (m *TopicDescriptor_EncOpts) XXX_DiscardUnknown() { + xxx_messageInfo_TopicDescriptor_EncOpts.DiscardUnknown(m) +} + +var xxx_messageInfo_TopicDescriptor_EncOpts proto.InternalMessageInfo + +func (m *TopicDescriptor_EncOpts) GetMode() TopicDescriptor_EncOpts_EncMode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return TopicDescriptor_EncOpts_NONE +} + +func (m *TopicDescriptor_EncOpts) GetKeyHashes() [][]byte { + if m != nil { + return m.KeyHashes + } + return nil +} + +func init() { + proto.RegisterEnum("pubsub.pb.TopicDescriptor_AuthOpts_AuthMode", TopicDescriptor_AuthOpts_AuthMode_name, TopicDescriptor_AuthOpts_AuthMode_value) + proto.RegisterEnum("pubsub.pb.TopicDescriptor_EncOpts_EncMode", TopicDescriptor_EncOpts_EncMode_name, TopicDescriptor_EncOpts_EncMode_value) + proto.RegisterType((*RPC)(nil), "pubsub.pb.RPC") + proto.RegisterType((*RPC_SubOpts)(nil), "pubsub.pb.RPC.SubOpts") + proto.RegisterType((*Message)(nil), "pubsub.pb.Message") + proto.RegisterType((*ControlMessage)(nil), "pubsub.pb.ControlMessage") + proto.RegisterType((*ControlIHave)(nil), "pubsub.pb.ControlIHave") + proto.RegisterType((*ControlIWant)(nil), "pubsub.pb.ControlIWant") + proto.RegisterType((*ControlGraft)(nil), "pubsub.pb.ControlGraft") + proto.RegisterType((*ControlPrune)(nil), "pubsub.pb.ControlPrune") + proto.RegisterType((*TopicDescriptor)(nil), "pubsub.pb.TopicDescriptor") + proto.RegisterType((*TopicDescriptor_AuthOpts)(nil), "pubsub.pb.TopicDescriptor.AuthOpts") + proto.RegisterType((*TopicDescriptor_EncOpts)(nil), "pubsub.pb.TopicDescriptor.EncOpts") +} + +func init() { proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1) } + +var fileDescriptor_77a6da22d6a3feb1 = []byte{ + // 599 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0xc7, 0xd9, 0x38, 0xc5, 0xf1, 0xd4, 0x2d, 0xd1, 0x0a, 0x81, 0x89, 0xaa, 0x28, 0x32, 0x12, + 0xb2, 0xa0, 0xf8, 0x10, 0x90, 0xb8, 0x20, 0x44, 0x69, 0x22, 0x12, 0xa1, 0x7e, 0x68, 0x5b, 0xa9, + 0xe2, 0xb8, 0x76, 0xb6, 0x89, 0x95, 0xc6, 0x36, 0xf6, 0xba, 0x28, 0x6f, 0xc0, 0x1d, 0x9e, 0x85, + 0x67, 0xe0, 0xc0, 0x81, 0x47, 0x40, 0xb9, 0xf1, 0x16, 0x68, 0xc7, 0x4e, 0xe2, 0xa4, 0x1f, 0x70, + 0xf2, 0xec, 0xec, 0xef, 0xbf, 0xf3, 0x9f, 0xd9, 0x35, 0x18, 0x49, 0xec, 0xbb, 0x71, 0x12, 0xc9, + 0x88, 0x1a, 0x71, 0xe6, 0xa5, 0x99, 0xe7, 0xc6, 0x9e, 0xfd, 0x87, 0x80, 0xc6, 0x8e, 0xf7, 0xe9, + 0x6b, 0xd8, 0x4a, 0x33, 0x2f, 0xf5, 0x93, 0x20, 0x96, 0x41, 0x14, 0xa6, 0x16, 0x69, 0x69, 0xce, + 0x66, 0xfb, 0x81, 0xbb, 0x40, 0x5d, 0x76, 0xbc, 0xef, 0x9e, 0x64, 0xde, 0x51, 0x2c, 0x53, 0xb6, + 0x0a, 0xd3, 0x5d, 0xd0, 0xe3, 0xcc, 0xbb, 0x08, 0xd2, 0x91, 0x55, 0x41, 0x1d, 0x2d, 0xe9, 0x0e, + 0x44, 0x9a, 0xf2, 0xa1, 0x60, 0x73, 0x84, 0xbe, 0x00, 0xdd, 0x8f, 0x42, 0x99, 0x44, 0x17, 0x96, + 0xd6, 0x22, 0xce, 0x66, 0xfb, 0x51, 0x89, 0xde, 0xcf, 0x77, 0x16, 0xa2, 0x82, 0x6c, 0xec, 0x81, + 0x5e, 0x14, 0xa7, 0x3b, 0x60, 0x14, 0xe5, 0x3d, 0x61, 0x91, 0x16, 0x71, 0x6a, 0x6c, 0x99, 0xa0, + 0x16, 0xe8, 0x32, 0x8a, 0x03, 0x3f, 0x18, 0x58, 0x95, 0x16, 0x71, 0x0c, 0x36, 0x5f, 0xda, 0x5f, + 0x09, 0xe8, 0xc5, 0xb9, 0x94, 0x42, 0xf5, 0x3c, 0x89, 0x26, 0x28, 0x37, 0x19, 0xc6, 0x2a, 0x37, + 0xe0, 0x92, 0xa3, 0xcc, 0x64, 0x18, 0xd3, 0xfb, 0xb0, 0x91, 0x8a, 0x4f, 0x61, 0x84, 0x4e, 0x4d, + 0x96, 0x2f, 0x68, 0x03, 0x6a, 0x78, 0x68, 0xbf, 0x93, 0x5a, 0xd5, 0x96, 0xe6, 0x18, 0x6c, 0xb1, + 0x46, 0x77, 0xc1, 0x30, 0xe4, 0x32, 0x4b, 0x84, 0xb5, 0x81, 0xaa, 0x65, 0x82, 0xd6, 0x41, 0x1b, + 0x8b, 0xa9, 0x75, 0x17, 0xf3, 0x2a, 0xb4, 0x7f, 0x12, 0xd8, 0x5e, 0x6d, 0x9a, 0x3e, 0x87, 0x8d, + 0x60, 0xc4, 0x2f, 0x45, 0x71, 0x09, 0x0f, 0xaf, 0x8e, 0xa7, 0xdf, 0xe3, 0x97, 0x82, 0xe5, 0x14, + 0xe2, 0x9f, 0x79, 0x28, 0x8b, 0xd9, 0x5f, 0x87, 0x9f, 0xf1, 0x50, 0xb2, 0x9c, 0x52, 0xf8, 0x30, + 0xe1, 0xe7, 0xd2, 0xd2, 0x6e, 0xc2, 0xdf, 0xab, 0x6d, 0x96, 0x53, 0x0a, 0x8f, 0x93, 0x2c, 0x14, + 0xd8, 0xe8, 0xb5, 0xf8, 0xb1, 0xda, 0x66, 0x39, 0x65, 0xf7, 0xc0, 0x2c, 0x7b, 0x5c, 0x5c, 0x47, + 0xbf, 0x83, 0xb3, 0x9e, 0x5f, 0x47, 0xbf, 0x43, 0x9b, 0x00, 0x93, 0xbc, 0x61, 0x35, 0xc6, 0x0a, + 0x8e, 0xb1, 0x94, 0xb1, 0xdd, 0xe5, 0x49, 0xca, 0xfe, 0x1a, 0x4f, 0xae, 0xf0, 0xce, 0x82, 0x47, + 0xff, 0x37, 0x57, 0x2e, 0x91, 0x68, 0xfd, 0x16, 0xf2, 0xbb, 0x06, 0xf7, 0x4e, 0x55, 0xdc, 0x11, + 0xf9, 0x73, 0x8f, 0x12, 0xf5, 0x4c, 0x42, 0x3e, 0x11, 0x05, 0x8a, 0x31, 0x7d, 0x05, 0x55, 0x9e, + 0xc9, 0x11, 0x3e, 0x9d, 0xcd, 0xf6, 0xe3, 0xd2, 0x8c, 0xd6, 0xd4, 0xee, 0x5e, 0x26, 0x47, 0xf8, + 0x0b, 0xa1, 0x80, 0xbe, 0x04, 0x4d, 0x84, 0x7e, 0xf1, 0x1f, 0xd8, 0xb7, 0xe8, 0xba, 0xa1, 0x8f, + 0x32, 0x85, 0x37, 0xbe, 0x10, 0xa8, 0xcd, 0x0f, 0xa2, 0x6f, 0xa1, 0x3a, 0x89, 0x06, 0xb9, 0x9f, + 0xed, 0xf6, 0xee, 0x7f, 0xd4, 0xc6, 0xe0, 0x20, 0x1a, 0x08, 0x86, 0x4a, 0xd5, 0xd1, 0x58, 0x4c, + 0xf3, 0x3b, 0x30, 0x19, 0xc6, 0xf6, 0x93, 0xbc, 0x82, 0xa2, 0x68, 0x0d, 0xaa, 0x87, 0x47, 0x87, + 0xdd, 0xfa, 0x1d, 0xaa, 0x83, 0xf6, 0xa1, 0xfb, 0xb1, 0x4e, 0x54, 0x70, 0x76, 0x74, 0x5a, 0xaf, + 0x34, 0xbe, 0x11, 0xd0, 0x0b, 0x6f, 0xf4, 0xcd, 0x8a, 0x93, 0xa7, 0xff, 0xee, 0x46, 0x7d, 0x4b, + 0x3e, 0x76, 0xc0, 0x18, 0x8b, 0x69, 0x8f, 0xa7, 0x23, 0x31, 0x37, 0xb3, 0x4c, 0xd8, 0xcf, 0xb0, + 0xd0, 0x9a, 0xa1, 0x2d, 0x30, 0x4e, 0x7a, 0x7b, 0xac, 0xdb, 0x59, 0xb5, 0xf5, 0xce, 0xfc, 0x31, + 0x6b, 0x92, 0x5f, 0xb3, 0x26, 0xf9, 0x3d, 0x6b, 0x92, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf8, + 0xb0, 0xae, 0x4e, 0xfc, 0x04, 0x00, 0x00, +} + +func (m *RPC) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RPC) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Subscriptions) > 0 { + for _, msg := range m.Subscriptions { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Publish) > 0 { + for _, msg := range m.Publish { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.Control != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintRpc(dAtA, i, uint64(m.Control.Size())) + n1, err := m.Control.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *RPC_SubOpts) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RPC_SubOpts) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Subscribe != nil { + dAtA[i] = 0x8 + i++ + if *m.Subscribe { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.Topicid != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(*m.Topicid))) + i += copy(dAtA[i:], *m.Topicid) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Message) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.From != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(m.From))) + i += copy(dAtA[i:], m.From) + } + if m.Data != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) + } + if m.Seqno != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(m.Seqno))) + i += copy(dAtA[i:], m.Seqno) + } + if len(m.TopicIDs) > 0 { + for _, s := range m.TopicIDs { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.Signature != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(m.Signature))) + i += copy(dAtA[i:], m.Signature) + } + if m.Key != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(m.Key))) + i += copy(dAtA[i:], m.Key) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ControlMessage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControlMessage) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Ihave) > 0 { + for _, msg := range m.Ihave { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Iwant) > 0 { + for _, msg := range m.Iwant { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Graft) > 0 { + for _, msg := range m.Graft { + dAtA[i] = 0x1a + i++ + i = encodeVarintRpc(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Prune) > 0 { + for _, msg := range m.Prune { + dAtA[i] = 0x22 + i++ + i = encodeVarintRpc(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ControlIHave) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControlIHave) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TopicID != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(*m.TopicID))) + i += copy(dAtA[i:], *m.TopicID) + } + if len(m.MessageIDs) > 0 { + for _, s := range m.MessageIDs { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ControlIWant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControlIWant) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.MessageIDs) > 0 { + for _, s := range m.MessageIDs { + dAtA[i] = 0xa + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ControlGraft) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControlGraft) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TopicID != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(*m.TopicID))) + i += copy(dAtA[i:], *m.TopicID) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ControlPrune) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControlPrune) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TopicID != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(*m.TopicID))) + i += copy(dAtA[i:], *m.TopicID) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *TopicDescriptor) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TopicDescriptor) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Name != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(*m.Name))) + i += copy(dAtA[i:], *m.Name) + } + if m.Auth != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(m.Auth.Size())) + n2, err := m.Auth.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.Enc != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintRpc(dAtA, i, uint64(m.Enc.Size())) + n3, err := m.Enc.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *TopicDescriptor_AuthOpts) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TopicDescriptor_AuthOpts) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Mode != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintRpc(dAtA, i, uint64(*m.Mode)) + } + if len(m.Keys) > 0 { + for _, b := range m.Keys { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *TopicDescriptor_EncOpts) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TopicDescriptor_EncOpts) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Mode != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintRpc(dAtA, i, uint64(*m.Mode)) + } + if len(m.KeyHashes) > 0 { + for _, b := range m.KeyHashes { + dAtA[i] = 0x12 + i++ + i = encodeVarintRpc(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintRpc(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *RPC) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Subscriptions) > 0 { + for _, e := range m.Subscriptions { + l = e.Size() + n += 1 + l + sovRpc(uint64(l)) + } + } + if len(m.Publish) > 0 { + for _, e := range m.Publish { + l = e.Size() + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.Control != nil { + l = m.Control.Size() + n += 1 + l + sovRpc(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RPC_SubOpts) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Subscribe != nil { + n += 2 + } + if m.Topicid != nil { + l = len(*m.Topicid) + n += 1 + l + sovRpc(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Message) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.From != nil { + l = len(m.From) + n += 1 + l + sovRpc(uint64(l)) + } + if m.Data != nil { + l = len(m.Data) + n += 1 + l + sovRpc(uint64(l)) + } + if m.Seqno != nil { + l = len(m.Seqno) + n += 1 + l + sovRpc(uint64(l)) + } + if len(m.TopicIDs) > 0 { + for _, s := range m.TopicIDs { + l = len(s) + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.Signature != nil { + l = len(m.Signature) + n += 1 + l + sovRpc(uint64(l)) + } + if m.Key != nil { + l = len(m.Key) + n += 1 + l + sovRpc(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ControlMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Ihave) > 0 { + for _, e := range m.Ihave { + l = e.Size() + n += 1 + l + sovRpc(uint64(l)) + } + } + if len(m.Iwant) > 0 { + for _, e := range m.Iwant { + l = e.Size() + n += 1 + l + sovRpc(uint64(l)) + } + } + if len(m.Graft) > 0 { + for _, e := range m.Graft { + l = e.Size() + n += 1 + l + sovRpc(uint64(l)) + } + } + if len(m.Prune) > 0 { + for _, e := range m.Prune { + l = e.Size() + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ControlIHave) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TopicID != nil { + l = len(*m.TopicID) + n += 1 + l + sovRpc(uint64(l)) + } + if len(m.MessageIDs) > 0 { + for _, s := range m.MessageIDs { + l = len(s) + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ControlIWant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.MessageIDs) > 0 { + for _, s := range m.MessageIDs { + l = len(s) + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ControlGraft) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TopicID != nil { + l = len(*m.TopicID) + n += 1 + l + sovRpc(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ControlPrune) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TopicID != nil { + l = len(*m.TopicID) + n += 1 + l + sovRpc(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TopicDescriptor) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovRpc(uint64(l)) + } + if m.Auth != nil { + l = m.Auth.Size() + n += 1 + l + sovRpc(uint64(l)) + } + if m.Enc != nil { + l = m.Enc.Size() + n += 1 + l + sovRpc(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TopicDescriptor_AuthOpts) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Mode != nil { + n += 1 + sovRpc(uint64(*m.Mode)) + } + if len(m.Keys) > 0 { + for _, b := range m.Keys { + l = len(b) + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TopicDescriptor_EncOpts) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Mode != nil { + n += 1 + sovRpc(uint64(*m.Mode)) + } + if len(m.KeyHashes) > 0 { + for _, b := range m.KeyHashes { + l = len(b) + n += 1 + l + sovRpc(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovRpc(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozRpc(x uint64) (n int) { + return sovRpc(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RPC) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RPC: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RPC: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subscriptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Subscriptions = append(m.Subscriptions, &RPC_SubOpts{}) + if err := m.Subscriptions[len(m.Subscriptions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Publish", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Publish = append(m.Publish, &Message{}) + if err := m.Publish[len(m.Publish)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Control", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Control == nil { + m.Control = &ControlMessage{} + } + if err := m.Control.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RPC_SubOpts) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SubOpts: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SubOpts: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Subscribe", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Subscribe = &b + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Topicid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Topicid = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Message: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Message: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.From = append(m.From[:0], dAtA[iNdEx:postIndex]...) + if m.From == nil { + m.From = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Seqno", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Seqno = append(m.Seqno[:0], dAtA[iNdEx:postIndex]...) + if m.Seqno == nil { + m.Seqno = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TopicIDs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TopicIDs = append(m.TopicIDs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...) + if m.Signature == nil { + m.Signature = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControlMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControlMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControlMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ihave", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ihave = append(m.Ihave, &ControlIHave{}) + if err := m.Ihave[len(m.Ihave)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Iwant", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Iwant = append(m.Iwant, &ControlIWant{}) + if err := m.Iwant[len(m.Iwant)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Graft", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Graft = append(m.Graft, &ControlGraft{}) + if err := m.Graft[len(m.Graft)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prune", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Prune = append(m.Prune, &ControlPrune{}) + if err := m.Prune[len(m.Prune)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControlIHave) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControlIHave: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControlIHave: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TopicID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.TopicID = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MessageIDs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MessageIDs = append(m.MessageIDs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControlIWant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControlIWant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControlIWant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MessageIDs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MessageIDs = append(m.MessageIDs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControlGraft) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControlGraft: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControlGraft: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TopicID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.TopicID = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControlPrune) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControlPrune: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControlPrune: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TopicID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.TopicID = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TopicDescriptor) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TopicDescriptor: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TopicDescriptor: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Auth", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Auth == nil { + m.Auth = &TopicDescriptor_AuthOpts{} + } + if err := m.Auth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Enc", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Enc == nil { + m.Enc = &TopicDescriptor_EncOpts{} + } + if err := m.Enc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TopicDescriptor_AuthOpts) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuthOpts: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuthOpts: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + } + var v TopicDescriptor_AuthOpts_AuthMode + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= TopicDescriptor_AuthOpts_AuthMode(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Mode = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Keys = append(m.Keys, make([]byte, postIndex-iNdEx)) + copy(m.Keys[len(m.Keys)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TopicDescriptor_EncOpts) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EncOpts: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EncOpts: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + } + var v TopicDescriptor_EncOpts_EncMode + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= TopicDescriptor_EncOpts_EncMode(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Mode = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyHashes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRpc + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRpc + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRpc + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.KeyHashes = append(m.KeyHashes, make([]byte, postIndex-iNdEx)) + copy(m.KeyHashes[len(m.KeyHashes)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRpc(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRpc + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRpc(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRpc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRpc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRpc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthRpc + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthRpc + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRpc + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipRpc(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthRpc + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthRpc = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRpc = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.proto b/vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.proto new file mode 100644 index 00000000..4a058288 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/pb/rpc.proto @@ -0,0 +1,76 @@ +syntax = "proto2"; + +package pubsub.pb; + +message RPC { + repeated SubOpts subscriptions = 1; + repeated Message publish = 2; + + message SubOpts { + optional bool subscribe = 1; // subscribe or unsubcribe + optional string topicid = 2; + } + + optional ControlMessage control = 3; +} + +message Message { + optional bytes from = 1; + optional bytes data = 2; + optional bytes seqno = 3; + repeated string topicIDs = 4; + optional bytes signature = 5; + optional bytes key = 6; +} + +message ControlMessage { + repeated ControlIHave ihave = 1; + repeated ControlIWant iwant = 2; + repeated ControlGraft graft = 3; + repeated ControlPrune prune = 4; +} + +message ControlIHave { + optional string topicID = 1; + repeated string messageIDs = 2; +} + +message ControlIWant { + repeated string messageIDs = 1; +} + +message ControlGraft { + optional string topicID = 1; +} + +message ControlPrune { + optional string topicID = 1; +} + +message TopicDescriptor { + optional string name = 1; + optional AuthOpts auth = 2; + optional EncOpts enc = 3; + + message AuthOpts { + optional AuthMode mode = 1; + repeated bytes keys = 2; // root keys to trust + + enum AuthMode { + NONE = 0; // no authentication, anyone can publish + KEY = 1; // only messages signed by keys in the topic descriptor are accepted + WOT = 2; // web of trust, certificates can allow publisher set to grow + } + } + + message EncOpts { + optional EncMode mode = 1; + repeated bytes keyHashes = 2; // the hashes of the shared keys used (salted) + + enum EncMode { + NONE = 0; // no encryption, anyone can read + SHAREDKEY = 1; // messages are encrypted with shared key + WOT = 2; // web of trust, certificates can allow publisher set to grow + } + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/pubsub.go b/vendor/github.com/libp2p/go-libp2p-pubsub/pubsub.go new file mode 100644 index 00000000..79e48d0d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/pubsub.go @@ -0,0 +1,1011 @@ +package pubsub + +import ( + "context" + "encoding/binary" + "fmt" + "math/rand" + "sync/atomic" + "time" + + pb "github.com/libp2p/go-libp2p-pubsub/pb" + + logging "github.com/ipfs/go-log" + crypto "github.com/libp2p/go-libp2p-crypto" + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" + timecache "github.com/whyrusleeping/timecache" +) + +const ( + defaultValidateTimeout = 150 * time.Millisecond + defaultValidateConcurrency = 100 + defaultValidateThrottle = 8192 +) + +var ( + TimeCacheDuration = 120 * time.Second +) + +var log = logging.Logger("pubsub") + +// PubSub is the implementation of the pubsub system. +type PubSub struct { + // atomic counter for seqnos + // NOTE: Must be declared at the top of the struct as we perform atomic + // operations on this field. + // + // See: https://golang.org/pkg/sync/atomic/#pkg-note-BUG + counter uint64 + + host host.Host + + rt PubSubRouter + + // incoming messages from other peers + incoming chan *RPC + + // messages we are publishing out to our peers + publish chan *Message + + // addSub is a control channel for us to add and remove subscriptions + addSub chan *addSubReq + + // get list of topics we are subscribed to + getTopics chan *topicReq + + // get chan of peers we are connected to + getPeers chan *listPeerReq + + // send subscription here to cancel it + cancelCh chan *Subscription + + // a notification channel for new peer connections + newPeers chan peer.ID + + // a notification channel for new outoging peer streams + newPeerStream chan inet.Stream + + // a notification channel for errors opening new peer streams + newPeerError chan peer.ID + + // a notification channel for when our peers die + peerDead chan peer.ID + + // The set of topics we are subscribed to + myTopics map[string]map[*Subscription]struct{} + + // topics tracks which topics each of our peers are subscribed to + topics map[string]map[peer.ID]struct{} + + // sendMsg handles messages that have been validated + sendMsg chan *sendReq + + // addVal handles validator registration requests + addVal chan *addValReq + + // rmVal handles validator unregistration requests + rmVal chan *rmValReq + + // topicVals tracks per topic validators + topicVals map[string]*topicVal + + // validateThrottle limits the number of active validation goroutines + validateThrottle chan struct{} + + // eval thunk in event loop + eval chan func() + + // peer blacklist + blacklist Blacklist + blacklistPeer chan peer.ID + + peers map[peer.ID]chan *RPC + seenMessages *timecache.TimeCache + + // key for signing messages; nil when signing is disabled (default for now) + signKey crypto.PrivKey + // source ID for signed messages; corresponds to signKey + signID peer.ID + // strict mode rejects all unsigned messages prior to validation + signStrict bool + + ctx context.Context +} + +// PubSubRouter is the message router component of PubSub. +type PubSubRouter interface { + // Protocols returns the list of protocols supported by the router. + Protocols() []protocol.ID + // Attach is invoked by the PubSub constructor to attach the router to a + // freshly initialized PubSub instance. + Attach(*PubSub) + // AddPeer notifies the router that a new peer has been connected. + AddPeer(peer.ID, protocol.ID) + // RemovePeer notifies the router that a peer has been disconnected. + RemovePeer(peer.ID) + // HandleRPC is invoked to process control messages in the RPC envelope. + // It is invoked after subscriptions and payload messages have been processed. + HandleRPC(*RPC) + // Publish is invoked to forward a new message that has been validated. + Publish(peer.ID, *pb.Message) + // Join notifies the router that we want to receive and forward messages in a topic. + // It is invoked after the subscription announcement. + Join(topic string) + // Leave notifies the router that we are no longer interested in a topic. + // It is invoked after the unsubscription announcement. + Leave(topic string) +} + +type Message struct { + *pb.Message +} + +func (m *Message) GetFrom() peer.ID { + return peer.ID(m.Message.GetFrom()) +} + +type RPC struct { + pb.RPC + + // unexported on purpose, not sending this over the wire + from peer.ID +} + +type Option func(*PubSub) error + +// NewPubSub returns a new PubSub management object. +func NewPubSub(ctx context.Context, h host.Host, rt PubSubRouter, opts ...Option) (*PubSub, error) { + ps := &PubSub{ + host: h, + ctx: ctx, + rt: rt, + signID: h.ID(), + signKey: h.Peerstore().PrivKey(h.ID()), + incoming: make(chan *RPC, 32), + publish: make(chan *Message), + newPeers: make(chan peer.ID), + newPeerStream: make(chan inet.Stream), + newPeerError: make(chan peer.ID), + peerDead: make(chan peer.ID), + cancelCh: make(chan *Subscription), + getPeers: make(chan *listPeerReq), + addSub: make(chan *addSubReq), + getTopics: make(chan *topicReq), + sendMsg: make(chan *sendReq, 32), + addVal: make(chan *addValReq), + rmVal: make(chan *rmValReq), + validateThrottle: make(chan struct{}, defaultValidateThrottle), + eval: make(chan func()), + myTopics: make(map[string]map[*Subscription]struct{}), + topics: make(map[string]map[peer.ID]struct{}), + peers: make(map[peer.ID]chan *RPC), + topicVals: make(map[string]*topicVal), + blacklist: NewMapBlacklist(), + blacklistPeer: make(chan peer.ID), + seenMessages: timecache.NewTimeCache(TimeCacheDuration), + counter: uint64(time.Now().UnixNano()), + } + + for _, opt := range opts { + err := opt(ps) + if err != nil { + return nil, err + } + } + + if ps.signStrict && ps.signKey == nil { + return nil, fmt.Errorf("strict signature verification enabled but message signing is disabled") + } + + rt.Attach(ps) + + for _, id := range rt.Protocols() { + h.SetStreamHandler(id, ps.handleNewStream) + } + h.Network().Notify((*PubSubNotif)(ps)) + + go ps.processLoop(ctx) + + return ps, nil +} + +// WithValidateThrottle sets the upper bound on the number of active validation +// goroutines. +func WithValidateThrottle(n int) Option { + return func(ps *PubSub) error { + ps.validateThrottle = make(chan struct{}, n) + return nil + } +} + +// WithMessageSigning enables or disables message signing (enabled by default). +func WithMessageSigning(enabled bool) Option { + return func(p *PubSub) error { + if enabled { + p.signKey = p.host.Peerstore().PrivKey(p.signID) + if p.signKey == nil { + return fmt.Errorf("can't sign for peer %s: no private key", p.signID) + } + } else { + p.signKey = nil + } + return nil + } +} + +// WithMessageAuthor sets the author for outbound messages to the given peer ID +// (defaults to the host's ID). If message signing is enabled, the private key +// must be available in the host's peerstore. +func WithMessageAuthor(author peer.ID) Option { + return func(p *PubSub) error { + if author == "" { + author = p.host.ID() + } + if p.signKey != nil { + newSignKey := p.host.Peerstore().PrivKey(author) + if newSignKey == nil { + return fmt.Errorf("can't sign for peer %s: no private key", p.signID) + } + p.signKey = newSignKey + } + p.signID = author + return nil + } +} + +// WithStrictSignatureVerification enforces message signing. If set, unsigned +// messages will be discarded. +// +// This currently defaults to false but, as we transition to signing by default, +// will eventually default to true. +func WithStrictSignatureVerification(required bool) Option { + return func(p *PubSub) error { + p.signStrict = required + return nil + } +} + +// WithBlacklist provides an implementation of the blacklist; the default is a +// MapBlacklist +func WithBlacklist(b Blacklist) Option { + return func(p *PubSub) error { + p.blacklist = b + return nil + } +} + +// processLoop handles all inputs arriving on the channels +func (p *PubSub) processLoop(ctx context.Context) { + defer func() { + // Clean up go routines. + for _, ch := range p.peers { + close(ch) + } + p.peers = nil + p.topics = nil + }() + + for { + select { + case pid := <-p.newPeers: + if _, ok := p.peers[pid]; ok { + log.Warning("already have connection to peer: ", pid) + continue + } + + if p.blacklist.Contains(pid) { + log.Warning("ignoring connection from blacklisted peer: ", pid) + continue + } + + messages := make(chan *RPC, 32) + messages <- p.getHelloPacket() + go p.handleNewPeer(ctx, pid, messages) + p.peers[pid] = messages + + case s := <-p.newPeerStream: + pid := s.Conn().RemotePeer() + + ch, ok := p.peers[pid] + if !ok { + log.Warning("new stream for unknown peer: ", pid) + s.Reset() + continue + } + + if p.blacklist.Contains(pid) { + log.Warning("closing stream for blacklisted peer: ", pid) + close(ch) + s.Reset() + continue + } + + p.rt.AddPeer(pid, s.Protocol()) + + case pid := <-p.newPeerError: + delete(p.peers, pid) + + case pid := <-p.peerDead: + ch, ok := p.peers[pid] + if !ok { + continue + } + + close(ch) + + if p.host.Network().Connectedness(pid) == inet.Connected { + // still connected, must be a duplicate connection being closed. + // we respawn the writer as we need to ensure there is a stream active + log.Warning("peer declared dead but still connected; respawning writer: ", pid) + messages := make(chan *RPC, 32) + messages <- p.getHelloPacket() + go p.handleNewPeer(ctx, pid, messages) + p.peers[pid] = messages + continue + } + + delete(p.peers, pid) + for _, t := range p.topics { + delete(t, pid) + } + + p.rt.RemovePeer(pid) + + case treq := <-p.getTopics: + var out []string + for t := range p.myTopics { + out = append(out, t) + } + treq.resp <- out + case sub := <-p.cancelCh: + p.handleRemoveSubscription(sub) + case sub := <-p.addSub: + p.handleAddSubscription(sub) + case preq := <-p.getPeers: + tmap, ok := p.topics[preq.topic] + if preq.topic != "" && !ok { + preq.resp <- nil + continue + } + var peers []peer.ID + for p := range p.peers { + if preq.topic != "" { + _, ok := tmap[p] + if !ok { + continue + } + } + peers = append(peers, p) + } + preq.resp <- peers + case rpc := <-p.incoming: + p.handleIncomingRPC(rpc) + + case msg := <-p.publish: + vals := p.getValidators(msg) + p.pushMsg(vals, p.host.ID(), msg) + + case req := <-p.sendMsg: + p.publishMessage(req.from, req.msg.Message) + + case req := <-p.addVal: + p.addValidator(req) + + case req := <-p.rmVal: + p.rmValidator(req) + + case thunk := <-p.eval: + thunk() + + case pid := <-p.blacklistPeer: + log.Infof("Blacklisting peer %s", pid) + p.blacklist.Add(pid) + + ch, ok := p.peers[pid] + if ok { + close(ch) + delete(p.peers, pid) + for _, t := range p.topics { + delete(t, pid) + } + p.rt.RemovePeer(pid) + } + + case <-ctx.Done(): + log.Info("pubsub processloop shutting down") + return + } + } +} + +// handleRemoveSubscription removes Subscription sub from bookeeping. +// If this was the last Subscription for a given topic, it will also announce +// that this node is not subscribing to this topic anymore. +// Only called from processLoop. +func (p *PubSub) handleRemoveSubscription(sub *Subscription) { + subs := p.myTopics[sub.topic] + + if subs == nil { + return + } + + sub.err = fmt.Errorf("subscription cancelled by calling sub.Cancel()") + close(sub.ch) + delete(subs, sub) + + if len(subs) == 0 { + delete(p.myTopics, sub.topic) + p.announce(sub.topic, false) + p.rt.Leave(sub.topic) + } +} + +// handleAddSubscription adds a Subscription for a particular topic. If it is +// the first Subscription for the topic, it will announce that this node +// subscribes to the topic. +// Only called from processLoop. +func (p *PubSub) handleAddSubscription(req *addSubReq) { + sub := req.sub + subs := p.myTopics[sub.topic] + + // announce we want this topic + if len(subs) == 0 { + p.announce(sub.topic, true) + p.rt.Join(sub.topic) + } + + // make new if not there + if subs == nil { + p.myTopics[sub.topic] = make(map[*Subscription]struct{}) + subs = p.myTopics[sub.topic] + } + + sub.ch = make(chan *Message, 32) + sub.cancelCh = p.cancelCh + + p.myTopics[sub.topic][sub] = struct{}{} + + req.resp <- sub +} + +// announce announces whether or not this node is interested in a given topic +// Only called from processLoop. +func (p *PubSub) announce(topic string, sub bool) { + subopt := &pb.RPC_SubOpts{ + Topicid: &topic, + Subscribe: &sub, + } + + out := rpcWithSubs(subopt) + for pid, peer := range p.peers { + select { + case peer <- out: + default: + log.Infof("Can't send announce message to peer %s: queue full; scheduling retry", pid) + go p.announceRetry(pid, topic, sub) + } + } +} + +func (p *PubSub) announceRetry(pid peer.ID, topic string, sub bool) { + time.Sleep(time.Duration(1+rand.Intn(1000)) * time.Millisecond) + + retry := func() { + _, ok := p.myTopics[topic] + if (ok && sub) || (!ok && !sub) { + p.doAnnounceRetry(pid, topic, sub) + } + } + + select { + case p.eval <- retry: + case <-p.ctx.Done(): + } +} + +func (p *PubSub) doAnnounceRetry(pid peer.ID, topic string, sub bool) { + peer, ok := p.peers[pid] + if !ok { + return + } + + subopt := &pb.RPC_SubOpts{ + Topicid: &topic, + Subscribe: &sub, + } + + out := rpcWithSubs(subopt) + select { + case peer <- out: + default: + log.Infof("Can't send announce message to peer %s: queue full; scheduling retry", pid) + go p.announceRetry(pid, topic, sub) + } +} + +// notifySubs sends a given message to all corresponding subscribers. +// Only called from processLoop. +func (p *PubSub) notifySubs(msg *pb.Message) { + for _, topic := range msg.GetTopicIDs() { + subs := p.myTopics[topic] + for f := range subs { + select { + case f.ch <- &Message{msg}: + default: + log.Infof("Can't deliver message to subscription for topic %s; subscriber too slow", topic) + } + } + } +} + +// seenMessage returns whether we already saw this message before +func (p *PubSub) seenMessage(id string) bool { + return p.seenMessages.Has(id) +} + +// markSeen marks a message as seen such that seenMessage returns `true' for the given id +func (p *PubSub) markSeen(id string) { + p.seenMessages.Add(id) +} + +// subscribedToMessage returns whether we are subscribed to one of the topics +// of a given message +func (p *PubSub) subscribedToMsg(msg *pb.Message) bool { + if len(p.myTopics) == 0 { + return false + } + + for _, t := range msg.GetTopicIDs() { + if _, ok := p.myTopics[t]; ok { + return true + } + } + return false +} + +func (p *PubSub) handleIncomingRPC(rpc *RPC) { + for _, subopt := range rpc.GetSubscriptions() { + t := subopt.GetTopicid() + if subopt.GetSubscribe() { + tmap, ok := p.topics[t] + if !ok { + tmap = make(map[peer.ID]struct{}) + p.topics[t] = tmap + } + + tmap[rpc.from] = struct{}{} + } else { + tmap, ok := p.topics[t] + if !ok { + continue + } + delete(tmap, rpc.from) + } + } + + for _, pmsg := range rpc.GetPublish() { + if !p.subscribedToMsg(pmsg) { + log.Warning("received message we didn't subscribe to. Dropping.") + continue + } + + msg := &Message{pmsg} + vals := p.getValidators(msg) + p.pushMsg(vals, rpc.from, msg) + } + + p.rt.HandleRPC(rpc) +} + +// msgID returns a unique ID of the passed Message +func msgID(pmsg *pb.Message) string { + return string(pmsg.GetFrom()) + string(pmsg.GetSeqno()) +} + +// pushMsg pushes a message performing validation as necessary +func (p *PubSub) pushMsg(vals []*topicVal, src peer.ID, msg *Message) { + // reject messages from blacklisted peers + if p.blacklist.Contains(src) { + log.Warningf("dropping message from blacklisted peer %s", src) + return + } + + // even if they are forwarded by good peers + if p.blacklist.Contains(msg.GetFrom()) { + log.Warningf("dropping message from blacklisted source %s", src) + return + } + + // reject unsigned messages when strict before we even process the id + if p.signStrict && msg.Signature == nil { + log.Debugf("dropping unsigned message from %s", src) + return + } + + // have we already seen and validated this message? + id := msgID(msg.Message) + if p.seenMessage(id) { + return + } + + if len(vals) > 0 || msg.Signature != nil { + // validation is asynchronous and globally throttled with the throttleValidate semaphore. + // the purpose of the global throttle is to bound the goncurrency possible from incoming + // network traffic; each validator also has an individual throttle to preclude + // slow (or faulty) validators from starving other topics; see validate below. + select { + case p.validateThrottle <- struct{}{}: + go func() { + p.validate(vals, src, msg) + <-p.validateThrottle + }() + default: + log.Warningf("message validation throttled; dropping message from %s", src) + } + return + } + + p.publishMessage(src, msg.Message) +} + +// validate performs validation and only sends the message if all validators succeed +func (p *PubSub) validate(vals []*topicVal, src peer.ID, msg *Message) { + if msg.Signature != nil { + if !p.validateSignature(msg) { + log.Warningf("message signature validation failed; dropping message from %s", src) + return + } + } + + if len(vals) > 0 { + if !p.validateTopic(vals, src, msg) { + log.Warningf("message validation failed; dropping message from %s", src) + return + } + } + + // all validators were successful, send the message + p.sendMsg <- &sendReq{ + from: src, + msg: msg, + } +} + +func (p *PubSub) validateSignature(msg *Message) bool { + err := verifyMessageSignature(msg.Message) + if err != nil { + log.Debugf("signature verification error: %s", err.Error()) + return false + } + + return true +} + +func (p *PubSub) validateTopic(vals []*topicVal, src peer.ID, msg *Message) bool { + if len(vals) == 1 { + return p.validateSingleTopic(vals[0], src, msg) + } + + ctx, cancel := context.WithCancel(p.ctx) + defer cancel() + + rch := make(chan bool, len(vals)) + rcount := 0 + throttle := false + +loop: + for _, val := range vals { + rcount++ + + select { + case val.validateThrottle <- struct{}{}: + go func(val *topicVal) { + rch <- val.validateMsg(ctx, src, msg) + <-val.validateThrottle + }(val) + + default: + log.Debugf("validation throttled for topic %s", val.topic) + throttle = true + break loop + } + } + + if throttle { + return false + } + + for i := 0; i < rcount; i++ { + valid := <-rch + if !valid { + return false + } + } + + return true +} + +// fast path for single topic validation that avoids the extra goroutine +func (p *PubSub) validateSingleTopic(val *topicVal, src peer.ID, msg *Message) bool { + select { + case val.validateThrottle <- struct{}{}: + ctx, cancel := context.WithCancel(p.ctx) + defer cancel() + + res := val.validateMsg(ctx, src, msg) + <-val.validateThrottle + + return res + + default: + log.Debugf("validation throttled for topic %s", val.topic) + return false + } +} + +func (p *PubSub) publishMessage(from peer.ID, pmsg *pb.Message) { + id := msgID(pmsg) + if p.seenMessage(id) { + return + } + p.markSeen(id) + + p.notifySubs(pmsg) + p.rt.Publish(from, pmsg) +} + +// getValidators returns all validators that apply to a given message +func (p *PubSub) getValidators(msg *Message) []*topicVal { + var vals []*topicVal + + for _, topic := range msg.GetTopicIDs() { + val, ok := p.topicVals[topic] + if !ok { + continue + } + + vals = append(vals, val) + } + + return vals +} + +type addSubReq struct { + sub *Subscription + resp chan *Subscription +} + +type SubOpt func(sub *Subscription) error + +// Subscribe returns a new Subscription for the given topic. +// Note that subscription is not an instanteneous operation. It may take some time +// before the subscription is processed by the pubsub main loop and propagated to our peers. +func (p *PubSub) Subscribe(topic string, opts ...SubOpt) (*Subscription, error) { + td := pb.TopicDescriptor{Name: &topic} + + return p.SubscribeByTopicDescriptor(&td, opts...) +} + +// SubscribeByTopicDescriptor lets you subscribe a topic using a pb.TopicDescriptor. +func (p *PubSub) SubscribeByTopicDescriptor(td *pb.TopicDescriptor, opts ...SubOpt) (*Subscription, error) { + if td.GetAuth().GetMode() != pb.TopicDescriptor_AuthOpts_NONE { + return nil, fmt.Errorf("auth mode not yet supported") + } + + if td.GetEnc().GetMode() != pb.TopicDescriptor_EncOpts_NONE { + return nil, fmt.Errorf("encryption mode not yet supported") + } + + sub := &Subscription{ + topic: td.GetName(), + } + + for _, opt := range opts { + err := opt(sub) + if err != nil { + return nil, err + } + } + + out := make(chan *Subscription, 1) + p.addSub <- &addSubReq{ + sub: sub, + resp: out, + } + + return <-out, nil +} + +type topicReq struct { + resp chan []string +} + +// GetTopics returns the topics this node is subscribed to. +func (p *PubSub) GetTopics() []string { + out := make(chan []string, 1) + p.getTopics <- &topicReq{resp: out} + return <-out +} + +// Publish publishes data to the given topic. +func (p *PubSub) Publish(topic string, data []byte) error { + seqno := p.nextSeqno() + m := &pb.Message{ + Data: data, + TopicIDs: []string{topic}, + From: []byte(p.host.ID()), + Seqno: seqno, + } + if p.signKey != nil { + m.From = []byte(p.signID) + err := signMessage(p.signID, p.signKey, m) + if err != nil { + return err + } + } + p.publish <- &Message{m} + return nil +} + +func (p *PubSub) nextSeqno() []byte { + seqno := make([]byte, 8) + counter := atomic.AddUint64(&p.counter, 1) + binary.BigEndian.PutUint64(seqno, counter) + return seqno +} + +type listPeerReq struct { + resp chan []peer.ID + topic string +} + +// sendReq is a request to call publishMessage. +// It is issued after message validation is done. +type sendReq struct { + from peer.ID + msg *Message +} + +// ListPeers returns a list of peers we are connected to in the given topic. +func (p *PubSub) ListPeers(topic string) []peer.ID { + out := make(chan []peer.ID) + p.getPeers <- &listPeerReq{ + resp: out, + topic: topic, + } + return <-out +} + +// BlacklistPeer blacklists a peer; all messages from this peer will be unconditionally dropped. +func (p *PubSub) BlacklistPeer(pid peer.ID) { + p.blacklistPeer <- pid +} + +// per topic validators +type addValReq struct { + topic string + validate Validator + timeout time.Duration + throttle int + resp chan error +} + +type rmValReq struct { + topic string + resp chan error +} + +type topicVal struct { + topic string + validate Validator + validateTimeout time.Duration + validateThrottle chan struct{} +} + +// Validator is a function that validates a message. +type Validator func(context.Context, peer.ID, *Message) bool + +// ValidatorOpt is an option for RegisterTopicValidator. +type ValidatorOpt func(addVal *addValReq) error + +// WithValidatorTimeout is an option that sets the topic validator timeout. +func WithValidatorTimeout(timeout time.Duration) ValidatorOpt { + return func(addVal *addValReq) error { + addVal.timeout = timeout + return nil + } +} + +// WithValidatorConcurrency is an option that sets topic validator throttle. +func WithValidatorConcurrency(n int) ValidatorOpt { + return func(addVal *addValReq) error { + addVal.throttle = n + return nil + } +} + +// RegisterTopicValidator registers a validator for topic. +func (p *PubSub) RegisterTopicValidator(topic string, val Validator, opts ...ValidatorOpt) error { + addVal := &addValReq{ + topic: topic, + validate: val, + resp: make(chan error, 1), + } + + for _, opt := range opts { + err := opt(addVal) + if err != nil { + return err + } + } + + p.addVal <- addVal + return <-addVal.resp +} + +func (ps *PubSub) addValidator(req *addValReq) { + topic := req.topic + + _, ok := ps.topicVals[topic] + if ok { + req.resp <- fmt.Errorf("Duplicate validator for topic %s", topic) + return + } + + val := &topicVal{ + topic: topic, + validate: req.validate, + validateTimeout: defaultValidateTimeout, + validateThrottle: make(chan struct{}, defaultValidateConcurrency), + } + + if req.timeout > 0 { + val.validateTimeout = req.timeout + } + + if req.throttle > 0 { + val.validateThrottle = make(chan struct{}, req.throttle) + } + + ps.topicVals[topic] = val + req.resp <- nil +} + +// UnregisterTopicValidator removes a validator from a topic. +// Returns an error if there was no validator registered with the topic. +func (p *PubSub) UnregisterTopicValidator(topic string) error { + rmVal := &rmValReq{ + topic: topic, + resp: make(chan error, 1), + } + + p.rmVal <- rmVal + return <-rmVal.resp +} + +func (ps *PubSub) rmValidator(req *rmValReq) { + topic := req.topic + + _, ok := ps.topicVals[topic] + if ok { + delete(ps.topicVals, topic) + req.resp <- nil + } else { + req.resp <- fmt.Errorf("No validator for topic %s", topic) + } +} + +func (val *topicVal) validateMsg(ctx context.Context, src peer.ID, msg *Message) bool { + vctx, cancel := context.WithTimeout(ctx, val.validateTimeout) + defer cancel() + + valid := val.validate(vctx, src, msg) + if !valid { + log.Debugf("validation failed for topic %s", val.topic) + } + + return valid +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/randomsub.go b/vendor/github.com/libp2p/go-libp2p-pubsub/randomsub.go new file mode 100644 index 00000000..adb85ad5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/randomsub.go @@ -0,0 +1,108 @@ +package pubsub + +import ( + "context" + + pb "github.com/libp2p/go-libp2p-pubsub/pb" + + host "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +const ( + RandomSubID = protocol.ID("/randomsub/1.0.0") +) + +var ( + RandomSubD = 6 +) + +// NewRandomSub returns a new PubSub object using RandomSubRouter as the router. +func NewRandomSub(ctx context.Context, h host.Host, opts ...Option) (*PubSub, error) { + rt := &RandomSubRouter{ + peers: make(map[peer.ID]protocol.ID), + } + return NewPubSub(ctx, h, rt, opts...) +} + +// RandomSubRouter is a router that implements a random propagation strategy. +// For each message, it selects RandomSubD peers and forwards the message to them. +type RandomSubRouter struct { + p *PubSub + peers map[peer.ID]protocol.ID +} + +func (rs *RandomSubRouter) Protocols() []protocol.ID { + return []protocol.ID{RandomSubID, FloodSubID} +} + +func (rs *RandomSubRouter) Attach(p *PubSub) { + rs.p = p +} + +func (rs *RandomSubRouter) AddPeer(p peer.ID, proto protocol.ID) { + rs.peers[p] = proto +} + +func (rs *RandomSubRouter) RemovePeer(p peer.ID) { + delete(rs.peers, p) +} + +func (rs *RandomSubRouter) HandleRPC(rpc *RPC) {} + +func (rs *RandomSubRouter) Publish(from peer.ID, msg *pb.Message) { + tosend := make(map[peer.ID]struct{}) + rspeers := make(map[peer.ID]struct{}) + src := peer.ID(msg.GetFrom()) + + for _, topic := range msg.GetTopicIDs() { + tmap, ok := rs.p.topics[topic] + if !ok { + continue + } + + for p := range tmap { + if p == from || p == src { + continue + } + + if rs.peers[p] == FloodSubID { + tosend[p] = struct{}{} + } else { + rspeers[p] = struct{}{} + } + } + } + + if len(rspeers) > RandomSubD { + xpeers := peerMapToList(rspeers) + shufflePeers(xpeers) + xpeers = xpeers[:RandomSubD] + for _, p := range xpeers { + tosend[p] = struct{}{} + } + } else { + for p := range rspeers { + tosend[p] = struct{}{} + } + } + + out := rpcWithMessages(msg) + for p := range tosend { + mch, ok := rs.p.peers[p] + if !ok { + continue + } + + select { + case mch <- out: + default: + log.Infof("dropping message to peer %s: queue full", p) + } + } +} + +func (rs *RandomSubRouter) Join(topic string) {} + +func (rs *RandomSubRouter) Leave(topic string) {} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/sign.go b/vendor/github.com/libp2p/go-libp2p-pubsub/sign.go new file mode 100644 index 00000000..056c96b1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/sign.go @@ -0,0 +1,103 @@ +package pubsub + +import ( + "fmt" + + pb "github.com/libp2p/go-libp2p-pubsub/pb" + + crypto "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" +) + +const SignPrefix = "libp2p-pubsub:" + +func verifyMessageSignature(m *pb.Message) error { + pubk, err := messagePubKey(m) + if err != nil { + return err + } + + xm := *m + xm.Signature = nil + xm.Key = nil + bytes, err := xm.Marshal() + if err != nil { + return err + } + + bytes = withSignPrefix(bytes) + + valid, err := pubk.Verify(bytes, m.Signature) + if err != nil { + return err + } + + if !valid { + return fmt.Errorf("invalid signature") + } + + return nil +} + +func messagePubKey(m *pb.Message) (crypto.PubKey, error) { + var pubk crypto.PubKey + + pid, err := peer.IDFromBytes(m.From) + if err != nil { + return nil, err + } + + if m.Key == nil { + // no attached key, it must be extractable from the source ID + pubk, err = pid.ExtractPublicKey() + if err != nil { + return nil, fmt.Errorf("cannot extract signing key: %s", err.Error()) + } + if pubk == nil { + return nil, fmt.Errorf("cannot extract signing key") + } + } else { + pubk, err = crypto.UnmarshalPublicKey(m.Key) + if err != nil { + return nil, fmt.Errorf("cannot unmarshal signing key: %s", err.Error()) + } + + // verify that the source ID matches the attached key + if !pid.MatchesPublicKey(pubk) { + return nil, fmt.Errorf("bad signing key; source ID %s doesn't match key", pid) + } + } + + return pubk, nil +} + +func signMessage(pid peer.ID, key crypto.PrivKey, m *pb.Message) error { + bytes, err := m.Marshal() + if err != nil { + return err + } + + bytes = withSignPrefix(bytes) + + sig, err := key.Sign(bytes) + if err != nil { + return err + } + + m.Signature = sig + + pk, _ := pid.ExtractPublicKey() + if pk == nil { + pubk, err := key.GetPublic().Bytes() + if err != nil { + return err + } + m.Key = pubk + } + + return nil +} + +func withSignPrefix(bytes []byte) []byte { + return append([]byte(SignPrefix), bytes...) +} diff --git a/vendor/github.com/libp2p/go-libp2p-pubsub/subscription.go b/vendor/github.com/libp2p/go-libp2p-pubsub/subscription.go new file mode 100644 index 00000000..66a9e513 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-pubsub/subscription.go @@ -0,0 +1,33 @@ +package pubsub + +import ( + "context" +) + +type Subscription struct { + topic string + ch chan *Message + cancelCh chan<- *Subscription + err error +} + +func (sub *Subscription) Topic() string { + return sub.topic +} + +func (sub *Subscription) Next(ctx context.Context) (*Message, error) { + select { + case msg, ok := <-sub.ch: + if !ok { + return msg, sub.err + } + + return msg, nil + case <-ctx.Done(): + return nil, ctx.Err() + } +} + +func (sub *Subscription) Cancel() { + sub.cancelCh <- sub +} diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/.travis.yml b/vendor/github.com/libp2p/go-libp2p-quic-transport/.travis.yml new file mode 100644 index 00000000..82a83dbf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/.travis.yml @@ -0,0 +1,37 @@ +language: go + +go: + - "1.12.x" + +# first part of the GOARCH workaround +# setting the GOARCH directly doesn't work, since the value will be overwritten later +# so set it to a temporary environment variable first +env: + - TRAVIS_GOARCH=amd64 + - TRAVIS_GOARCH=386 + +# second part of the GOARCH workaround +# now actually set the GOARCH env variable to the value of the temporary variable set earlier +before_install: + - export GO111MODULE=on + - go get golang.org/x/tools/cmd/cover + - go get github.com/onsi/ginkgo/ginkgo + - go get github.com/onsi/gomega + - export GOARCH=$TRAVIS_GOARCH + - go env # for debugging + +# see https://github.com/travis-ci/travis-ci/issues/8361#issuecomment-350090030 +before_script: + - sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' + +script: + - ginkgo -r -v --cover --randomizeAllSpecs --randomizeSuites --trace --progress + +after_success: + - cat go-libp2p-quic-transport.coverprofile > coverage.txt + - cat */*.coverprofile >> coverage.txt + - bash <(curl -s https://codecov.io/bash) -f coverage.txt + +cache: + directories: + - $GOPATH/src/gx diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/README.md b/vendor/github.com/libp2p/go-libp2p-quic-transport/README.md new file mode 100644 index 00000000..21f6379c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/README.md @@ -0,0 +1,11 @@ +# go-quic-transport + +[![Godoc Reference](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](https://godoc.org/github.com/libp2p/go-libp2p-quic-transport) +[![Linux Build Status](https://img.shields.io/travis/libp2p/go-libp2p-quic-transport/master.svg?style=flat-square&label=linux+build)](https://travis-ci.org/libp2p/go-libp2p-quic-transport) +[![Code Coverage](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-quic-transport/master.svg?style=flat-square)](https://codecov.io/gh/libp2p/go-libp2p-quic-transport/) + +This is an implementation of the [libp2p transport](https://github.com/libp2p/go-libp2p-transport/blob/master/transport.go) and the [libp2p stream muxer](https://github.com/libp2p/go-stream-muxer) using QUIC. + +## Known limitations + +* currently only works with RSA host keys diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/codecov.yml b/vendor/github.com/libp2p/go-libp2p-quic-transport/codecov.yml new file mode 100644 index 00000000..21e0c484 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/codecov.yml @@ -0,0 +1,7 @@ +coverage: + round: nearest + status: + project: + default: + threshold: 0.5 + patch: false diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/conn.go b/vendor/github.com/libp2p/go-libp2p-quic-transport/conn.go new file mode 100644 index 00000000..ed837835 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/conn.go @@ -0,0 +1,80 @@ +package libp2pquic + +import ( + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + tpt "github.com/libp2p/go-libp2p-transport" + smux "github.com/libp2p/go-stream-muxer" + quic "github.com/lucas-clemente/quic-go" + ma "github.com/multiformats/go-multiaddr" +) + +type conn struct { + sess quic.Session + transport tpt.Transport + + localPeer peer.ID + privKey ic.PrivKey + localMultiaddr ma.Multiaddr + + remotePeerID peer.ID + remotePubKey ic.PubKey + remoteMultiaddr ma.Multiaddr +} + +var _ tpt.Conn = &conn{} + +func (c *conn) Close() error { + return c.sess.Close() +} + +// IsClosed returns whether a connection is fully closed. +func (c *conn) IsClosed() bool { + return c.sess.Context().Err() != nil +} + +// OpenStream creates a new stream. +func (c *conn) OpenStream() (smux.Stream, error) { + qstr, err := c.sess.OpenStreamSync() + return &stream{Stream: qstr}, err +} + +// AcceptStream accepts a stream opened by the other side. +func (c *conn) AcceptStream() (smux.Stream, error) { + qstr, err := c.sess.AcceptStream() + return &stream{Stream: qstr}, err +} + +// LocalPeer returns our peer ID +func (c *conn) LocalPeer() peer.ID { + return c.localPeer +} + +// LocalPrivateKey returns our private key +func (c *conn) LocalPrivateKey() ic.PrivKey { + return c.privKey +} + +// RemotePeer returns the peer ID of the remote peer. +func (c *conn) RemotePeer() peer.ID { + return c.remotePeerID +} + +// RemotePublicKey returns the public key of the remote peer. +func (c *conn) RemotePublicKey() ic.PubKey { + return c.remotePubKey +} + +// LocalMultiaddr returns the local Multiaddr associated +func (c *conn) LocalMultiaddr() ma.Multiaddr { + return c.localMultiaddr +} + +// RemoteMultiaddr returns the remote Multiaddr associated +func (c *conn) RemoteMultiaddr() ma.Multiaddr { + return c.remoteMultiaddr +} + +func (c *conn) Transport() tpt.Transport { + return c.transport +} diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/crypto.go b/vendor/github.com/libp2p/go-libp2p-quic-transport/crypto.go new file mode 100644 index 00000000..1ce18bcb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/crypto.go @@ -0,0 +1,120 @@ +package libp2pquic + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/tls" + "crypto/x509" + "errors" + "math/big" + "time" + + "github.com/gogo/protobuf/proto" + ic "github.com/libp2p/go-libp2p-crypto" + pb "github.com/libp2p/go-libp2p-crypto/pb" +) + +// mint certificate selection is broken. +const hostname = "quic.ipfs" + +const certValidityPeriod = 180 * 24 * time.Hour + +func generateConfig(privKey ic.PrivKey) (*tls.Config, error) { + key, hostCert, err := keyToCertificate(privKey) + if err != nil { + return nil, err + } + // The ephemeral key used just for a couple of connections (or a limited time). + ephemeralKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + return nil, err + } + // Sign the ephemeral key using the host key. + // This is the only time that the host's private key of the peer is needed. + // Note that this step could be done asynchronously, such that a running node doesn't need access its private key at all. + certTemplate := &x509.Certificate{ + DNSNames: []string{hostname}, + SerialNumber: big.NewInt(1), + NotBefore: time.Now().Add(-24 * time.Hour), + NotAfter: time.Now().Add(certValidityPeriod), + } + certDER, err := x509.CreateCertificate(rand.Reader, certTemplate, hostCert, ephemeralKey.Public(), key) + if err != nil { + return nil, err + } + cert, err := x509.ParseCertificate(certDER) + if err != nil { + return nil, err + } + return &tls.Config{ + ServerName: hostname, + InsecureSkipVerify: true, // This is not insecure here. We will verify the cert chain ourselves. + ClientAuth: tls.RequireAnyClientCert, + Certificates: []tls.Certificate{{ + Certificate: [][]byte{cert.Raw, hostCert.Raw}, + PrivateKey: ephemeralKey, + }}, + }, nil +} + +func getRemotePubKey(chain []*x509.Certificate) (ic.PubKey, error) { + if len(chain) != 2 { + return nil, errors.New("expected 2 certificates in the chain") + } + pool := x509.NewCertPool() + pool.AddCert(chain[1]) + if _, err := chain[0].Verify(x509.VerifyOptions{Roots: pool}); err != nil { + return nil, err + } + remotePubKey, err := x509.MarshalPKIXPublicKey(chain[1].PublicKey) + if err != nil { + return nil, err + } + return ic.UnmarshalRsaPublicKey(remotePubKey) +} + +func keyToCertificate(sk ic.PrivKey) (interface{}, *x509.Certificate, error) { + sn, err := rand.Int(rand.Reader, big.NewInt(1<<62)) + if err != nil { + return nil, nil, err + } + tmpl := &x509.Certificate{ + SerialNumber: sn, + NotBefore: time.Now().Add(-24 * time.Hour), + NotAfter: time.Now().Add(certValidityPeriod), + IsCA: true, + BasicConstraintsValid: true, + } + + var publicKey, privateKey interface{} + keyBytes, err := sk.Bytes() + if err != nil { + return nil, nil, err + } + pbmes := new(pb.PrivateKey) + if err := proto.Unmarshal(keyBytes, pbmes); err != nil { + return nil, nil, err + } + switch pbmes.GetType() { + case pb.KeyType_RSA: + k, err := x509.ParsePKCS1PrivateKey(pbmes.GetData()) + if err != nil { + return nil, nil, err + } + publicKey = &k.PublicKey + privateKey = k + // TODO: add support for ECDSA + default: + return nil, nil, errors.New("unsupported key type for TLS") + } + certDER, err := x509.CreateCertificate(rand.Reader, tmpl, tmpl, publicKey, privateKey) + if err != nil { + return nil, nil, err + } + cert, err := x509.ParseCertificate(certDER) + if err != nil { + return nil, nil, err + } + return privateKey, cert, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/go.mod b/vendor/github.com/libp2p/go-libp2p-quic-transport/go.mod new file mode 100644 index 00000000..c7bf89e2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/go.mod @@ -0,0 +1,15 @@ +module github.com/libp2p/go-libp2p-quic-transport + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-transport v0.0.4 + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/lucas-clemente/quic-go v0.11.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/onsi/ginkgo v1.7.0 + github.com/onsi/gomega v1.4.3 + github.com/whyrusleeping/mafmt v1.2.8 +) diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/go.sum b/vendor/github.com/libp2p/go-libp2p-quic-transport/go.sum new file mode 100644 index 00000000..7de3d406 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/go.sum @@ -0,0 +1,149 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/lucas-clemente/quic-go v0.11.0 h1:R7uxGrBWWSp817cdhkrunFsOA26vadf4EI9slWzkjlQ= +github.com/lucas-clemente/quic-go v0.11.0/go.mod h1:PpMmPfPKO9nKJ/psF49ESTAGQSdfXxlg1otPbEB2nOw= +github.com/lucas-clemente/quic-go v0.11.1 h1:zasajC848Dqq/+WqfqBCkmPw+YHNe1MBts/z7y7nXf4= +github.com/lucas-clemente/quic-go v0.11.1/go.mod h1:PpMmPfPKO9nKJ/psF49ESTAGQSdfXxlg1otPbEB2nOw= +github.com/marten-seemann/qtls v0.2.3 h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNAI4vA= +github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/listener.go b/vendor/github.com/libp2p/go-libp2p-quic-transport/listener.go new file mode 100644 index 00000000..ef8b0190 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/listener.go @@ -0,0 +1,113 @@ +package libp2pquic + +import ( + "crypto/tls" + "net" + + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + tpt "github.com/libp2p/go-libp2p-transport" + quic "github.com/lucas-clemente/quic-go" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +var quicListenAddr = quic.ListenAddr + +// A listener listens for QUIC connections. +type listener struct { + quicListener quic.Listener + transport tpt.Transport + + privKey ic.PrivKey + localPeer peer.ID + localMultiaddr ma.Multiaddr +} + +var _ tpt.Listener = &listener{} + +func newListener(addr ma.Multiaddr, transport tpt.Transport, localPeer peer.ID, key ic.PrivKey, tlsConf *tls.Config) (tpt.Listener, error) { + lnet, host, err := manet.DialArgs(addr) + if err != nil { + return nil, err + } + laddr, err := net.ResolveUDPAddr(lnet, host) + if err != nil { + return nil, err + } + conn, err := net.ListenUDP(lnet, laddr) + if err != nil { + return nil, err + } + ln, err := quic.Listen(conn, tlsConf, quicConfig) + if err != nil { + return nil, err + } + localMultiaddr, err := toQuicMultiaddr(ln.Addr()) + if err != nil { + return nil, err + } + return &listener{ + quicListener: ln, + transport: transport, + privKey: key, + localPeer: localPeer, + localMultiaddr: localMultiaddr, + }, nil +} + +// Accept accepts new connections. +func (l *listener) Accept() (tpt.Conn, error) { + for { + sess, err := l.quicListener.Accept() + if err != nil { + return nil, err + } + conn, err := l.setupConn(sess) + if err != nil { + sess.CloseWithError(0, err) + continue + } + return conn, nil + } +} + +func (l *listener) setupConn(sess quic.Session) (tpt.Conn, error) { + remotePubKey, err := getRemotePubKey(sess.ConnectionState().PeerCertificates) + if err != nil { + return nil, err + } + remotePeerID, err := peer.IDFromPublicKey(remotePubKey) + if err != nil { + return nil, err + } + remoteMultiaddr, err := toQuicMultiaddr(sess.RemoteAddr()) + if err != nil { + return nil, err + } + return &conn{ + sess: sess, + transport: l.transport, + localPeer: l.localPeer, + localMultiaddr: l.localMultiaddr, + privKey: l.privKey, + remoteMultiaddr: remoteMultiaddr, + remotePeerID: remotePeerID, + remotePubKey: remotePubKey, + }, nil +} + +// Close closes the listener. +func (l *listener) Close() error { + return l.quicListener.Close() +} + +// Addr returns the address of this listener. +func (l *listener) Addr() net.Addr { + return l.quicListener.Addr() +} + +// Multiaddr returns the multiaddress of this listener. +func (l *listener) Multiaddr() ma.Multiaddr { + return l.localMultiaddr +} diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/quic_multiaddr.go b/vendor/github.com/libp2p/go-libp2p-quic-transport/quic_multiaddr.go new file mode 100644 index 00000000..8b182b76 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/quic_multiaddr.go @@ -0,0 +1,30 @@ +package libp2pquic + +import ( + "net" + + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +var quicMA ma.Multiaddr + +func init() { + var err error + quicMA, err = ma.NewMultiaddr("/quic") + if err != nil { + panic(err) + } +} + +func toQuicMultiaddr(na net.Addr) (ma.Multiaddr, error) { + udpMA, err := manet.FromNetAddr(na) + if err != nil { + return nil, err + } + return udpMA.Encapsulate(quicMA), nil +} + +func fromQuicMultiaddr(addr ma.Multiaddr) (net.Addr, error) { + return manet.ToNetAddr(addr.Decapsulate(quicMA)) +} diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/stream.go b/vendor/github.com/libp2p/go-libp2p-quic-transport/stream.go new file mode 100644 index 00000000..10853656 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/stream.go @@ -0,0 +1,18 @@ +package libp2pquic + +import ( + smux "github.com/libp2p/go-stream-muxer" + quic "github.com/lucas-clemente/quic-go" +) + +type stream struct { + quic.Stream +} + +var _ smux.Stream = &stream{} + +func (s *stream) Reset() error { + s.Stream.CancelRead(0) + s.Stream.CancelWrite(0) + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-quic-transport/transport.go b/vendor/github.com/libp2p/go-libp2p-quic-transport/transport.go new file mode 100644 index 00000000..2351959c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-quic-transport/transport.go @@ -0,0 +1,177 @@ +package libp2pquic + +import ( + "context" + "crypto/tls" + "crypto/x509" + "errors" + "fmt" + "net" + "sync" + + ic "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + tpt "github.com/libp2p/go-libp2p-transport" + quic "github.com/lucas-clemente/quic-go" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" + "github.com/whyrusleeping/mafmt" +) + +var quicConfig = &quic.Config{ + MaxIncomingStreams: 1000, + MaxIncomingUniStreams: -1, // disable unidirectional streams + MaxReceiveStreamFlowControlWindow: 3 * (1 << 20), // 3 MB + MaxReceiveConnectionFlowControlWindow: 4.5 * (1 << 20), // 4.5 MB + AcceptCookie: func(clientAddr net.Addr, cookie *quic.Cookie) bool { + // TODO(#6): require source address validation when under load + return true + }, + KeepAlive: true, +} + +type connManager struct { + connIPv4Once sync.Once + connIPv4 net.PacketConn + + connIPv6Once sync.Once + connIPv6 net.PacketConn +} + +func (c *connManager) GetConnForAddr(network string) (net.PacketConn, error) { + switch network { + case "udp4": + var err error + c.connIPv4Once.Do(func() { + c.connIPv4, err = c.createConn(network, "0.0.0.0:0") + }) + return c.connIPv4, err + case "udp6": + var err error + c.connIPv6Once.Do(func() { + c.connIPv6, err = c.createConn(network, ":0") + }) + return c.connIPv6, err + default: + return nil, fmt.Errorf("unsupported network: %s", network) + } +} + +func (c *connManager) createConn(network, host string) (net.PacketConn, error) { + addr, err := net.ResolveUDPAddr(network, host) + if err != nil { + return nil, err + } + return net.ListenUDP(network, addr) +} + +// The Transport implements the tpt.Transport interface for QUIC connections. +type transport struct { + privKey ic.PrivKey + localPeer peer.ID + tlsConf *tls.Config + connManager *connManager +} + +var _ tpt.Transport = &transport{} + +// NewTransport creates a new QUIC transport +func NewTransport(key ic.PrivKey) (tpt.Transport, error) { + localPeer, err := peer.IDFromPrivateKey(key) + if err != nil { + return nil, err + } + tlsConf, err := generateConfig(key) + if err != nil { + return nil, err + } + + return &transport{ + privKey: key, + localPeer: localPeer, + tlsConf: tlsConf, + connManager: &connManager{}, + }, nil +} + +// Dial dials a new QUIC connection +func (t *transport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.Conn, error) { + network, host, err := manet.DialArgs(raddr) + if err != nil { + return nil, err + } + pconn, err := t.connManager.GetConnForAddr(network) + if err != nil { + return nil, err + } + addr, err := fromQuicMultiaddr(raddr) + if err != nil { + return nil, err + } + var remotePubKey ic.PubKey + tlsConf := t.tlsConf.Clone() + // We need to check the peer ID in the VerifyPeerCertificate callback. + // The tls.Config it is also used for listening, and we might also have concurrent dials. + // Clone it so we can check for the specific peer ID we're dialing here. + tlsConf.VerifyPeerCertificate = func(rawCerts [][]byte, _ [][]*x509.Certificate) error { + chain := make([]*x509.Certificate, len(rawCerts)) + for i := 0; i < len(rawCerts); i++ { + cert, err := x509.ParseCertificate(rawCerts[i]) + if err != nil { + return err + } + chain[i] = cert + } + var err error + remotePubKey, err = getRemotePubKey(chain) + if err != nil { + return err + } + if !p.MatchesPublicKey(remotePubKey) { + return errors.New("peer IDs don't match") + } + return nil + } + sess, err := quic.DialContext(ctx, pconn, addr, host, tlsConf, quicConfig) + if err != nil { + return nil, err + } + localMultiaddr, err := toQuicMultiaddr(sess.LocalAddr()) + if err != nil { + return nil, err + } + return &conn{ + sess: sess, + transport: t, + privKey: t.privKey, + localPeer: t.localPeer, + localMultiaddr: localMultiaddr, + remotePubKey: remotePubKey, + remotePeerID: p, + remoteMultiaddr: raddr, + }, nil +} + +// CanDial determines if we can dial to an address +func (t *transport) CanDial(addr ma.Multiaddr) bool { + return mafmt.QUIC.Matches(addr) +} + +// Listen listens for new QUIC connections on the passed multiaddr. +func (t *transport) Listen(addr ma.Multiaddr) (tpt.Listener, error) { + return newListener(addr, t, t.localPeer, t.privKey, t.tlsConf) +} + +// Proxy returns true if this transport proxies. +func (t *transport) Proxy() bool { + return false +} + +// Protocols returns the set of protocols handled by this transport. +func (t *transport) Protocols() []int { + return []int{ma.P_QUIC} +} + +func (t *transport) String() string { + return "QUIC" +} diff --git a/vendor/github.com/libp2p/go-libp2p-record/.travis.yml b/vendor/github.com/libp2p/go-libp2p-record/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-record/LICENSE b/vendor/github.com/libp2p/go-libp2p-record/LICENSE new file mode 100644 index 00000000..808d2e01 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 libp2p + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-record/Makefile b/vendor/github.com/libp2p/go-libp2p-record/Makefile new file mode 100644 index 00000000..a89e6d08 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-record/README.md b/vendor/github.com/libp2p/go-libp2p-record/README.md new file mode 100644 index 00000000..875d77e3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/README.md @@ -0,0 +1,26 @@ +# go-libp2p-record + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-libp2p-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> signed records for use with routing systems + +## Documenation + +See https://godoc.org/github.com/libp2p/go-libp2p-record. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/go-key/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-record/codecov.yml b/vendor/github.com/libp2p/go-libp2p-record/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-record/go.mod b/vendor/github.com/libp2p/go-libp2p-record/go.mod new file mode 100644 index 00000000..4c69846e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/go.mod @@ -0,0 +1,9 @@ +module github.com/libp2p/go-libp2p-record + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-record/go.sum b/vendor/github.com/libp2p/go-libp2p-record/go.sum new file mode 100644 index 00000000..d2f5c269 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/go.sum @@ -0,0 +1,76 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-record/package.json b/vendor/github.com/libp2p/go-libp2p-record/package.json new file mode 100644 index 00000000..5a77e37c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/package.json @@ -0,0 +1,50 @@ +{ + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-record" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-record", + "goversion": "1.5.2" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "hash": "QmNohiVssaPw3KVLZik59DBVGTSm2dGvYT9eoXt5DQ36Yz", + "name": "go-ipfs-util", + "version": "1.2.9" + }, + { + "hash": "QmddjPSGZb3ieihSseFeCfVRpZzcqczPNsD2DvarSwnjJB", + "name": "gogo-protobuf", + "version": "1.2.1" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-record", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "4.1.15" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-record/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-record/pb/Makefile new file mode 100644 index 00000000..eb14b576 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofast_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p-record/pb/record.pb.go b/vendor/github.com/libp2p/go-libp2p-record/pb/record.pb.go new file mode 100644 index 00000000..e8b679b6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/pb/record.pb.go @@ -0,0 +1,458 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: record.proto + +package record_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// Record represents a dht record that contains a value +// for a key value pair +type Record struct { + // The key that references this record + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // The actual value this record is storing + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // Time the record was received, set by receiver + TimeReceived string `protobuf:"bytes,5,opt,name=timeReceived,proto3" json:"timeReceived,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Record) Reset() { *m = Record{} } +func (m *Record) String() string { return proto.CompactTextString(m) } +func (*Record) ProtoMessage() {} +func (*Record) Descriptor() ([]byte, []int) { + return fileDescriptor_bf94fd919e302a1d, []int{0} +} +func (m *Record) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Record) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Record.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Record) XXX_Merge(src proto.Message) { + xxx_messageInfo_Record.Merge(m, src) +} +func (m *Record) XXX_Size() int { + return m.Size() +} +func (m *Record) XXX_DiscardUnknown() { + xxx_messageInfo_Record.DiscardUnknown(m) +} + +var xxx_messageInfo_Record proto.InternalMessageInfo + +func (m *Record) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *Record) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *Record) GetTimeReceived() string { + if m != nil { + return m.TimeReceived + } + return "" +} + +func init() { + proto.RegisterType((*Record)(nil), "record.pb.Record") +} + +func init() { proto.RegisterFile("record.proto", fileDescriptor_bf94fd919e302a1d) } + +var fileDescriptor_bf94fd919e302a1d = []byte{ + // 125 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4a, 0x4d, 0xce, + 0x2f, 0x4a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0xf1, 0x92, 0x94, 0x42, 0xb8, + 0xd8, 0x82, 0xc0, 0x1c, 0x21, 0x01, 0x2e, 0xe6, 0xec, 0xd4, 0x4a, 0x09, 0x46, 0x05, 0x46, 0x0d, + 0x9e, 0x20, 0x10, 0x53, 0x48, 0x84, 0x8b, 0xb5, 0x2c, 0x31, 0xa7, 0x34, 0x55, 0x82, 0x09, 0x2c, + 0x06, 0xe1, 0x08, 0x29, 0x71, 0xf1, 0x94, 0x64, 0xe6, 0xa6, 0x06, 0xa5, 0x26, 0xa7, 0x66, 0x96, + 0xa5, 0xa6, 0x48, 0xb0, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0xa1, 0x88, 0x39, 0xf1, 0x9c, 0x78, 0x24, + 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x49, 0x6c, 0x60, 0x5b, 0x8d, 0x01, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x64, 0x43, 0x08, 0x1c, 0x85, 0x00, 0x00, 0x00, +} + +func (m *Record) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Record) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintRecord(dAtA, i, uint64(len(m.Key))) + i += copy(dAtA[i:], m.Key) + } + if len(m.Value) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintRecord(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + if len(m.TimeReceived) > 0 { + dAtA[i] = 0x2a + i++ + i = encodeVarintRecord(dAtA, i, uint64(len(m.TimeReceived))) + i += copy(dAtA[i:], m.TimeReceived) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintRecord(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Record) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovRecord(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovRecord(uint64(l)) + } + l = len(m.TimeReceived) + if l > 0 { + n += 1 + l + sovRecord(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovRecord(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozRecord(x uint64) (n int) { + return sovRecord(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Record) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRecord + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Record: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Record: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRecord + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRecord + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRecord + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRecord + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRecord + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRecord + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeReceived", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRecord + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRecord + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRecord + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TimeReceived = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRecord(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRecord + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRecord + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRecord(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRecord + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRecord + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRecord + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthRecord + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthRecord + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRecord + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipRecord(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthRecord + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthRecord = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRecord = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-record/pb/record.proto b/vendor/github.com/libp2p/go-libp2p-record/pb/record.proto new file mode 100644 index 00000000..0720c8bc --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/pb/record.proto @@ -0,0 +1,27 @@ +// In order to re-generate the golang packages for `Record` you will need... +// 1. Protobuf binary (tested with protoc 3.0.0). - https://github.com/gogo/protobuf/releases +// 2. Gogo Protobuf (tested with gogo 0.3). - https://github.com/gogo/protobuf +// Now from `libp2p/go-libp2p-record/pb` you can run... +// `protoc --gogo_out=. record.proto` + +syntax = "proto3"; +package record.pb; + +// Record represents a dht record that contains a value +// for a key value pair +message Record { + // The key that references this record + bytes key = 1; + + // The actual value this record is storing + bytes value = 2; + + // Note: These fields were removed from the Record message + // hash of the authors public key + //optional string author = 3; + // A PKI signature for the key+value+author + //optional bytes signature = 4; + + // Time the record was received, set by receiver + string timeReceived = 5; +} diff --git a/vendor/github.com/libp2p/go-libp2p-record/pubkey.go b/vendor/github.com/libp2p/go-libp2p-record/pubkey.go new file mode 100644 index 00000000..02fc88b0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/pubkey.go @@ -0,0 +1,47 @@ +package record + +import ( + "bytes" + "errors" + "fmt" + + u "github.com/ipfs/go-ipfs-util" + mh "github.com/multiformats/go-multihash" +) + +// PublicKeyValidator is a Validator that validates public keys. +type PublicKeyValidator struct{} + +// Validate conforms to the Validator interface. +// +// It verifies that the passed in record value is the PublicKey that matches the +// passed in key. +func (pkv PublicKeyValidator) Validate(key string, value []byte) error { + ns, key, err := SplitKey(key) + if err != nil { + return err + } + if ns != "pk" { + return errors.New("namespace not 'pk'") + } + + keyhash := []byte(key) + if _, err := mh.Cast(keyhash); err != nil { + return fmt.Errorf("key did not contain valid multihash: %s", err) + } + + pkh := u.Hash(value) + if !bytes.Equal(keyhash, pkh) { + return errors.New("public key does not match storage key") + } + return nil +} + +// Select conforms to the Validator interface. +// +// It always returns 0 as all public keys are equivalently valid. +func (pkv PublicKeyValidator) Select(k string, vals [][]byte) (int, error) { + return 0, nil +} + +var _ Validator = PublicKeyValidator{} diff --git a/vendor/github.com/libp2p/go-libp2p-record/record.go b/vendor/github.com/libp2p/go-libp2p-record/record.go new file mode 100644 index 00000000..86b16d09 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/record.go @@ -0,0 +1,13 @@ +package record + +import ( + pb "github.com/libp2p/go-libp2p-record/pb" +) + +// MakePutRecord creates a dht record for the given key/value pair +func MakePutRecord(key string, value []byte) *pb.Record { + record := new(pb.Record) + record.Key = []byte(key) + record.Value = value + return record +} diff --git a/vendor/github.com/libp2p/go-libp2p-record/util.go b/vendor/github.com/libp2p/go-libp2p-record/util.go new file mode 100644 index 00000000..3870600f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/util.go @@ -0,0 +1,22 @@ +package record + +import ( + "strings" +) + +// SplitKey takes a key in the form `/$namespace/$path` and splits it into +// `$namespace` and `$path`. +func SplitKey(key string) (string, string, error) { + if len(key) == 0 || key[0] != '/' { + return "", "", ErrInvalidRecordType + } + + key = key[1:] + + i := strings.IndexByte(key, '/') + if i <= 0 { + return "", "", ErrInvalidRecordType + } + + return key[:i], key[i+1:], nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-record/validator.go b/vendor/github.com/libp2p/go-libp2p-record/validator.go new file mode 100644 index 00000000..ed0475f1 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-record/validator.go @@ -0,0 +1,63 @@ +package record + +import ( + "errors" + + logging "github.com/ipfs/go-log" +) + +var log = logging.Logger("routing/record") + +// ErrInvalidRecordType is returned if a DHTRecord keys prefix +// is not found in the Validator map of the DHT. +var ErrInvalidRecordType = errors.New("invalid record keytype") + +// Validator is an interface that should be implemented by record validators. +type Validator interface { + // Validate validates the given record, returning an error if it's + // invalid (e.g., expired, signed by the wrong key, etc.). + Validate(key string, value []byte) error + + // Select selects the best record from the set of records (e.g., the + // newest). + // + // Decisions made by select should be stable. + Select(key string, values [][]byte) (int, error) +} + +// NamespacedValidator is a validator that delegates to sub-validators by +// namespace. +type NamespacedValidator map[string]Validator + +// ValidatorByKey looks up the validator responsible for validating the given +// key. +func (v NamespacedValidator) ValidatorByKey(key string) Validator { + ns, _, err := SplitKey(key) + if err != nil { + return nil + } + return v[ns] +} + +// Validate conforms to the Validator interface. +func (v NamespacedValidator) Validate(key string, value []byte) error { + vi := v.ValidatorByKey(key) + if vi == nil { + return ErrInvalidRecordType + } + return vi.Validate(key, value) +} + +// Select conforms to the Validator interface. +func (v NamespacedValidator) Select(key string, values [][]byte) (int, error) { + if len(values) == 0 { + return 0, errors.New("can't select from no values") + } + vi := v.ValidatorByKey(key) + if vi == nil { + return 0, ErrInvalidRecordType + } + return vi.Select(key, values) +} + +var _ Validator = NamespacedValidator{} diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/.travis.yml b/vendor/github.com/libp2p/go-libp2p-routing-helpers/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/LICENSE b/vendor/github.com/libp2p/go-libp2p-routing-helpers/LICENSE new file mode 100644 index 00000000..6cccfc2b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/Makefile b/vendor/github.com/libp2p/go-libp2p-routing-helpers/Makefile new file mode 100644 index 00000000..a89e6d08 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/README.md b/vendor/github.com/libp2p/go-libp2p-routing-helpers/README.md new file mode 100644 index 00000000..133df308 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/README.md @@ -0,0 +1,29 @@ +# go-libp2p-routing-helpers + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-routing-helpers?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-routing-helpers) +[![Coverage Status](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-routing-helpers.svg?style=flat-square&branch=master)](https://codecov.io/github/libp2p/go-libp2p-routing-helpers?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-routing-helpers.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-routing-helpers) + +> A collection of helper types for composing different types of routers. + +## Documenation + +See https://godoc.org/github.com/libp2p/go-libp2p-routing-helpers. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-routing-helpers/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/bootstrap.go b/vendor/github.com/libp2p/go-libp2p-routing-helpers/bootstrap.go new file mode 100644 index 00000000..e8bb5e8a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/bootstrap.go @@ -0,0 +1,14 @@ +package routinghelpers + +import ( + "context" +) + +// TODO: Consider moving this to the routing package? + +// Bootstrap is an interface that should be implemented by any routers wishing +// to be bootstrapped. +type Bootstrap interface { + // Bootstrap bootstraps the router. + Bootstrap(ctx context.Context) error +} diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/composed.go b/vendor/github.com/libp2p/go-libp2p-routing-helpers/composed.go new file mode 100644 index 00000000..4a137627 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/composed.go @@ -0,0 +1,123 @@ +package routinghelpers + +import ( + "context" + + multierror "github.com/hashicorp/go-multierror" + cid "github.com/ipfs/go-cid" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +// Compose composes the components into a single router. Not specifying a +// component (leaving it nil) is equivalent to specifying the Null router. +// +// It also implements Bootstrap. All *distinct* components implementing +// Bootstrap will be bootstrapped in parallel. Identical components will not be +// bootstrapped twice. +type Compose struct { + ValueStore routing.ValueStore + PeerRouting routing.PeerRouting + ContentRouting routing.ContentRouting +} + +// note: we implement these methods explicitly to avoid having to manually +// specify the Null router everywhere we don't want to implement some +// functionality. + +// PutValue adds value corresponding to given Key. +func (cr *Compose) PutValue(ctx context.Context, key string, value []byte, opts ...ropts.Option) error { + if cr.ValueStore == nil { + return routing.ErrNotSupported + } + return cr.ValueStore.PutValue(ctx, key, value, opts...) +} + +// GetValue searches for the value corresponding to given Key. +func (cr *Compose) GetValue(ctx context.Context, key string, opts ...ropts.Option) ([]byte, error) { + if cr.ValueStore == nil { + return nil, routing.ErrNotFound + } + return cr.ValueStore.GetValue(ctx, key, opts...) +} + +// SearchValue searches for the value corresponding to given Key. +func (cr *Compose) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + if cr.ValueStore == nil { + out := make(chan []byte) + close(out) + return out, nil + } + return cr.ValueStore.SearchValue(ctx, key, opts...) +} + +// Provide adds the given cid to the content routing system. If 'true' is +// passed, it also announces it, otherwise it is just kept in the local +// accounting of which objects are being provided. +func (cr *Compose) Provide(ctx context.Context, c cid.Cid, local bool) error { + if cr.ContentRouting == nil { + return routing.ErrNotSupported + } + return cr.ContentRouting.Provide(ctx, c, local) +} + +// FindProvidersAsync searches for peers who are able to provide a given key +func (cr *Compose) FindProvidersAsync(ctx context.Context, c cid.Cid, count int) <-chan pstore.PeerInfo { + if cr.ContentRouting == nil { + ch := make(chan pstore.PeerInfo) + close(ch) + return ch + } + return cr.ContentRouting.FindProvidersAsync(ctx, c, count) +} + +// FindPeer searches for a peer with given ID, returns a pstore.PeerInfo +// with relevant addresses. +func (cr *Compose) FindPeer(ctx context.Context, p peer.ID) (pstore.PeerInfo, error) { + if cr.PeerRouting == nil { + return pstore.PeerInfo{}, routing.ErrNotFound + } + return cr.PeerRouting.FindPeer(ctx, p) +} + +// GetPublicKey returns the public key for the given peer. +func (cr *Compose) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) { + if cr.ValueStore == nil { + return nil, routing.ErrNotFound + } + return routing.GetPublicKey(cr.ValueStore, ctx, p) +} + +// Bootstrap the router. +func (cr *Compose) Bootstrap(ctx context.Context) error { + // Deduplicate. Technically, calling bootstrap multiple times shouldn't + // be an issue but using the same router for multiple fields of Compose + // is common. + routers := make(map[Bootstrap]struct{}, 3) + for _, value := range [...]interface{}{ + cr.ValueStore, + cr.ContentRouting, + cr.PeerRouting, + } { + switch b := value.(type) { + case nil: + case Null: + case Bootstrap: + routers[b] = struct{}{} + } + } + + var me multierror.Error + for b := range routers { + if err := b.Bootstrap(ctx); err != nil { + me.Errors = append(me.Errors, err) + } + } + return me.ErrorOrNil() +} + +var _ routing.IpfsRouting = (*Compose)(nil) +var _ routing.PubKeyFetcher = (*Compose)(nil) diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/go.mod b/vendor/github.com/libp2p/go-libp2p-routing-helpers/go.mod new file mode 100644 index 00000000..3aab2e29 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/go.mod @@ -0,0 +1,13 @@ +module github.com/libp2p/go-libp2p-routing-helpers + +require ( + github.com/hashicorp/errwrap v1.0.0 + github.com/hashicorp/go-multierror v1.0.0 + github.com/ipfs/go-cid v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-record v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/go.sum b/vendor/github.com/libp2p/go-libp2p-routing-helpers/go.sum new file mode 100644 index 00000000..d85f80af --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/go.sum @@ -0,0 +1,122 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= +github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/limited.go b/vendor/github.com/libp2p/go-libp2p-routing-helpers/limited.go new file mode 100644 index 00000000..308942af --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/limited.go @@ -0,0 +1,83 @@ +package routinghelpers + +import ( + "context" + "strings" + + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" +) + +// LimitedValueStore limits the internal value store to the given namespaces. +type LimitedValueStore struct { + routing.ValueStore + Namespaces []string +} + +// GetPublicKey returns the public key for the given peer. +func (lvs *LimitedValueStore) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) { + for _, ns := range lvs.Namespaces { + if ns == "pk" { + return routing.GetPublicKey(lvs.ValueStore, ctx, p) + } + } + return nil, routing.ErrNotFound +} + +// PutValue returns ErrNotSupported +func (lvs *LimitedValueStore) PutValue(ctx context.Context, key string, value []byte, opts ...ropts.Option) error { + if !lvs.KeySupported(key) { + return routing.ErrNotSupported + } + return lvs.ValueStore.PutValue(ctx, key, value, opts...) +} + +// KeySupported returns true if the passed key is supported by this value store. +func (lvs *LimitedValueStore) KeySupported(key string) bool { + if len(key) < 3 { + return false + } + if key[0] != '/' { + return false + } + key = key[1:] + for _, ns := range lvs.Namespaces { + if len(ns) < len(key) && strings.HasPrefix(key, ns) && key[len(ns)] == '/' { + return true + } + } + return false +} + +// GetValue returns routing.ErrNotFound if key isn't supported +func (lvs *LimitedValueStore) GetValue(ctx context.Context, key string, opts ...ropts.Option) ([]byte, error) { + if !lvs.KeySupported(key) { + return nil, routing.ErrNotFound + } + return lvs.ValueStore.GetValue(ctx, key, opts...) +} + +// SearchValue returns empty channel if key isn't supported or calls SearchValue +// on the underlying ValueStore +func (lvs *LimitedValueStore) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + if !lvs.KeySupported(key) { + out := make(chan []byte) + close(out) + return out, nil + } + return lvs.ValueStore.SearchValue(ctx, key, opts...) +} + +func (lvs *LimitedValueStore) Bootstrap(ctx context.Context) error { + if bs, ok := lvs.ValueStore.(Bootstrap); ok { + return bs.Bootstrap(ctx) + } + return nil +} + +var _ routing.PubKeyFetcher = (*LimitedValueStore)(nil) +var _ routing.ValueStore = (*LimitedValueStore)(nil) +var _ Bootstrap = (*LimitedValueStore)(nil) diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/null.go b/vendor/github.com/libp2p/go-libp2p-routing-helpers/null.go new file mode 100644 index 00000000..31c26404 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/null.go @@ -0,0 +1,54 @@ +package routinghelpers + +import ( + "context" + + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" + + cid "github.com/ipfs/go-cid" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +// Null is a router that doesn't do anything. +type Null struct{} + +// PutValue always returns ErrNotSupported +func (nr Null) PutValue(context.Context, string, []byte, ...ropts.Option) error { + return routing.ErrNotSupported +} + +// GetValue always returns ErrNotFound +func (nr Null) GetValue(context.Context, string, ...ropts.Option) ([]byte, error) { + return nil, routing.ErrNotFound +} + +// SearchValue always returns ErrNotFound +func (nr Null) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + return nil, routing.ErrNotFound +} + +// Provide always returns ErrNotSupported +func (nr Null) Provide(context.Context, cid.Cid, bool) error { + return routing.ErrNotSupported +} + +// FindProvidersAsync always returns a closed channel +func (nr Null) FindProvidersAsync(context.Context, cid.Cid, int) <-chan pstore.PeerInfo { + ch := make(chan pstore.PeerInfo) + close(ch) + return ch +} + +// FindPeer always returns ErrNotFound +func (nr Null) FindPeer(context.Context, peer.ID) (pstore.PeerInfo, error) { + return pstore.PeerInfo{}, routing.ErrNotFound +} + +// Bootstrap always succeeds instantly +func (nr Null) Bootstrap(context.Context) error { + return nil +} + +var _ routing.IpfsRouting = Null{} diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/package.json b/vendor/github.com/libp2p/go-libp2p-routing-helpers/package.json new file mode 100644 index 00000000..94eb5fe6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/package.json @@ -0,0 +1,70 @@ +{ + "author": "Stebalien", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-routing-helpers" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-routing-helpers" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "hash": "QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf", + "name": "go-libp2p-routing", + "version": "2.7.13" + }, + { + "author": "hashicorp", + "hash": "Qmbg4PQLEvf2XW8vrai9STFDerV7kttkfKcVdkoRf9Z7Xu", + "name": "go-errwrap", + "version": "0.1.0" + }, + { + "author": "hashicorp", + "hash": "QmfGQp6VVqdPCDyzEM6EGwMY74YPabTSEoQWHUxZuCSWj3", + "name": "go-multierror", + "version": "0.1.0" + }, + { + "hash": "QmbeHtaBy9nZsW4cHRcvgVY4CnDhXudE2Dr6qDxS7yg9rX", + "name": "go-libp2p-record", + "version": "4.1.15" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "MIT", + "name": "go-libp2p-routing-helpers", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.4.0" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/parallel.go b/vendor/github.com/libp2p/go-libp2p-routing-helpers/parallel.go new file mode 100644 index 00000000..01f8256f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/parallel.go @@ -0,0 +1,509 @@ +package routinghelpers + +import ( + "bytes" + "context" + "reflect" + "sync" + + multierror "github.com/hashicorp/go-multierror" + cid "github.com/ipfs/go-cid" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + record "github.com/libp2p/go-libp2p-record" + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" +) + +// Parallel operates on the slice of routers in parallel. +type Parallel struct { + Routers []routing.IpfsRouting + Validator record.Validator +} + +// Helper function that sees through router composition to avoid unnecessary +// go routines. +func supportsKey(vs routing.ValueStore, key string) bool { + switch vs := vs.(type) { + case Null: + return false + case *Compose: + return vs.ValueStore != nil && supportsKey(vs.ValueStore, key) + case Parallel: + for _, ri := range vs.Routers { + if supportsKey(ri, key) { + return true + } + } + return false + case Tiered: + for _, ri := range vs.Routers { + if supportsKey(ri, key) { + return true + } + } + return false + case *LimitedValueStore: + return vs.KeySupported(key) && supportsKey(vs.ValueStore, key) + default: + return true + } +} + +func supportsPeer(vs routing.PeerRouting) bool { + switch vs := vs.(type) { + case Null: + return false + case *Compose: + return vs.PeerRouting != nil && supportsPeer(vs.PeerRouting) + case Parallel: + for _, ri := range vs.Routers { + if supportsPeer(ri) { + return true + } + } + return false + case Tiered: + for _, ri := range vs.Routers { + if supportsPeer(ri) { + return true + } + } + return false + default: + return true + } +} + +func supportsContent(vs routing.ContentRouting) bool { + switch vs := vs.(type) { + case Null: + return false + case *Compose: + return vs.ContentRouting != nil && supportsContent(vs.ContentRouting) + case Parallel: + for _, ri := range vs.Routers { + if supportsContent(ri) { + return true + } + } + return false + case Tiered: + for _, ri := range vs.Routers { + if supportsContent(ri) { + return true + } + } + return false + default: + return true + } +} + +func (r Parallel) filter(filter func(routing.IpfsRouting) bool) Parallel { + cpy := make([]routing.IpfsRouting, 0, len(r.Routers)) + for _, ri := range r.Routers { + if filter(ri) { + cpy = append(cpy, ri) + } + } + return Parallel{Routers: cpy, Validator: r.Validator} +} + +func (r Parallel) put(do func(routing.IpfsRouting) error) error { + switch len(r.Routers) { + case 0: + return routing.ErrNotSupported + case 1: + return do(r.Routers[0]) + } + + var wg sync.WaitGroup + results := make([]error, len(r.Routers)) + wg.Add(len(r.Routers)) + for i, ri := range r.Routers { + go func(ri routing.IpfsRouting, i int) { + results[i] = do(ri) + wg.Done() + }(ri, i) + } + wg.Wait() + + var ( + errs []error + success bool + ) + for _, err := range results { + switch err { + case nil: + // at least one router supports this. + success = true + case routing.ErrNotSupported: + default: + errs = append(errs, err) + } + } + + switch len(errs) { + case 0: + if success { + // No errors and at least one router succeeded. + return nil + } + // No routers supported this operation. + return routing.ErrNotSupported + case 1: + return errs[0] + default: + return &multierror.Error{Errors: errs} + } +} + +func (r Parallel) search(ctx context.Context, do func(routing.IpfsRouting) (<-chan []byte, error)) (<-chan []byte, error) { + switch len(r.Routers) { + case 0: + return nil, routing.ErrNotFound + case 1: + return do(r.Routers[0]) + } + + ctx, cancel := context.WithCancel(ctx) + + out := make(chan []byte) + var errs []error + + var wg sync.WaitGroup + for _, ri := range r.Routers { + vchan, err := do(ri) + switch err { + case nil: + case routing.ErrNotFound, routing.ErrNotSupported: + continue + default: + errs = append(errs, err) + } + + wg.Add(1) + go func() { + var sent int + defer wg.Done() + + for { + select { + case v, ok := <-vchan: + if !ok { + if sent > 0 { + cancel() + } + return + } + + select { + case out <- v: + sent++ + case <-ctx.Done(): + return + } + case <-ctx.Done(): + return + } + } + }() + } + + go func() { + wg.Wait() + close(out) + cancel() + }() + + return out, nil +} + +func (r Parallel) get(ctx context.Context, do func(routing.IpfsRouting) (interface{}, error)) (interface{}, error) { + switch len(r.Routers) { + case 0: + return nil, routing.ErrNotFound + case 1: + return do(r.Routers[0]) + } + + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + results := make(chan struct { + val interface{} + err error + }) + for _, ri := range r.Routers { + go func(ri routing.IpfsRouting) { + value, err := do(ri) + select { + case results <- struct { + val interface{} + err error + }{ + val: value, + err: err, + }: + case <-ctx.Done(): + } + }(ri) + } + + var errs []error + for range r.Routers { + select { + case res := <-results: + switch res.err { + case nil: + return res.val, nil + case routing.ErrNotFound, routing.ErrNotSupported: + continue + } + // If the context has expired, just return that error + // and ignore the other errors. + if ctx.Err() != nil { + return nil, ctx.Err() + } + errs = append(errs, res.err) + case <-ctx.Done(): + return nil, ctx.Err() + } + } + + switch len(errs) { + case 0: + return nil, routing.ErrNotFound + case 1: + return nil, errs[0] + default: + return nil, &multierror.Error{Errors: errs} + } +} + +func (r Parallel) forKey(key string) Parallel { + return r.filter(func(ri routing.IpfsRouting) bool { + return supportsKey(ri, key) + }) +} + +func (r Parallel) PutValue(ctx context.Context, key string, value []byte, opts ...ropts.Option) error { + return r.forKey(key).put(func(ri routing.IpfsRouting) error { + return ri.PutValue(ctx, key, value, opts...) + }) +} + +func (r Parallel) GetValue(ctx context.Context, key string, opts ...ropts.Option) ([]byte, error) { + vInt, err := r.forKey(key).get(ctx, func(ri routing.IpfsRouting) (interface{}, error) { + return ri.GetValue(ctx, key, opts...) + }) + val, _ := vInt.([]byte) + return val, err +} + +func (r Parallel) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + resCh, err := r.forKey(key).search(ctx, func(ri routing.IpfsRouting) (<-chan []byte, error) { + return ri.SearchValue(ctx, key, opts...) + }) + if err != nil { + return nil, err + } + + valid := make(chan []byte) + var best []byte + go func() { + defer close(valid) + + for v := range resCh { + if best != nil { + n, err := r.Validator.Select(key, [][]byte{best, v}) + if err != nil { + continue + } + if n != 1 { + continue + } + } + if bytes.Equal(best, v) && len(v) != 0 { + continue + } + + best = v + select { + case valid <- v: + case <-ctx.Done(): + return + } + } + }() + + return valid, err +} + +func (r Parallel) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) { + vInt, err := r. + forKey(routing.KeyForPublicKey(p)). + get(ctx, func(ri routing.IpfsRouting) (interface{}, error) { + return routing.GetPublicKey(ri, ctx, p) + }) + val, _ := vInt.(ci.PubKey) + return val, err +} + +func (r Parallel) FindPeer(ctx context.Context, p peer.ID) (pstore.PeerInfo, error) { + vInt, err := r.filter(func(ri routing.IpfsRouting) bool { + return supportsPeer(ri) + }).get(ctx, func(ri routing.IpfsRouting) (interface{}, error) { + return ri.FindPeer(ctx, p) + }) + pi, _ := vInt.(pstore.PeerInfo) + return pi, err +} + +func (r Parallel) Provide(ctx context.Context, c cid.Cid, local bool) error { + return r.filter(func(ri routing.IpfsRouting) bool { + return supportsContent(ri) + }).put(func(ri routing.IpfsRouting) error { + return ri.Provide(ctx, c, local) + }) +} + +func (r Parallel) FindProvidersAsync(ctx context.Context, c cid.Cid, count int) <-chan pstore.PeerInfo { + routers := r.filter(func(ri routing.IpfsRouting) bool { + return supportsContent(ri) + }) + + switch len(routers.Routers) { + case 0: + ch := make(chan pstore.PeerInfo) + close(ch) + return ch + case 1: + return routers.Routers[0].FindProvidersAsync(ctx, c, count) + } + + out := make(chan pstore.PeerInfo) + + ctx, cancel := context.WithCancel(ctx) + + providers := make([]<-chan pstore.PeerInfo, len(routers.Routers)) + for i, ri := range routers.Routers { + providers[i] = ri.FindProvidersAsync(ctx, c, count) + } + + go func() { + defer cancel() + defer close(out) + if len(providers) > 8 { + manyProviders(ctx, out, providers, count) + } else { + fewProviders(ctx, out, providers, count) + } + }() + return out +} + +// Unoptimized many provider case. Doing this with reflection is a bit slow but +// definitely simpler. If we start having more than 8 peer routers running in +// parallel, we can revisit this. +func manyProviders(ctx context.Context, out chan<- pstore.PeerInfo, in []<-chan pstore.PeerInfo, count int) { + found := make(map[peer.ID]struct{}, count) + + selectCases := make([]reflect.SelectCase, len(in)) + for i, ch := range in { + selectCases[i] = reflect.SelectCase{ + Dir: reflect.SelectRecv, + Chan: reflect.ValueOf(ch), + } + } + for count > 0 && len(selectCases) > 0 { + chosen, val, ok := reflect.Select(selectCases) + if !ok { + // Remove the channel + selectCases[chosen] = selectCases[len(selectCases)-1] + selectCases = selectCases[:len(selectCases)-1] + continue + } + + pi := val.Interface().(pstore.PeerInfo) + if _, ok := found[pi.ID]; ok { + continue + } + + select { + case out <- pi: + found[pi.ID] = struct{}{} + count-- + case <-ctx.Done(): + return + } + } +} + +// Optimization for few providers (<=8). +func fewProviders(ctx context.Context, out chan<- pstore.PeerInfo, in []<-chan pstore.PeerInfo, count int) { + if len(in) > 8 { + panic("case only valid for combining fewer than 8 channels") + } + + found := make(map[peer.ID]struct{}, count) + + cases := make([]<-chan pstore.PeerInfo, 8) + copy(cases, in) + + // Oh go, what would we do without you! + nch := len(in) + var pi pstore.PeerInfo + for nch > 0 && count > 0 { + var ok bool + var selected int + select { + case pi, ok = <-cases[0]: + selected = 0 + case pi, ok = <-cases[1]: + selected = 1 + case pi, ok = <-cases[2]: + selected = 2 + case pi, ok = <-cases[3]: + selected = 3 + case pi, ok = <-cases[4]: + selected = 4 + case pi, ok = <-cases[5]: + selected = 5 + case pi, ok = <-cases[6]: + selected = 6 + case pi, ok = <-cases[7]: + selected = 7 + } + if !ok { + cases[selected] = nil + nch-- + continue + } + if _, ok = found[pi.ID]; ok { + continue + } + + select { + case out <- pi: + found[pi.ID] = struct{}{} + count-- + case <-ctx.Done(): + return + } + } +} + +func (r Parallel) Bootstrap(ctx context.Context) error { + var me multierror.Error + for _, b := range r.Routers { + if err := b.Bootstrap(ctx); err != nil { + me.Errors = append(me.Errors, err) + } + } + return me.ErrorOrNil() +} + +var _ routing.IpfsRouting = Parallel{} diff --git a/vendor/github.com/libp2p/go-libp2p-routing-helpers/tiered.go b/vendor/github.com/libp2p/go-libp2p-routing-helpers/tiered.go new file mode 100644 index 00000000..7d13eb27 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing-helpers/tiered.go @@ -0,0 +1,93 @@ +package routinghelpers + +import ( + "context" + + routing "github.com/libp2p/go-libp2p-routing" + ropts "github.com/libp2p/go-libp2p-routing/options" + + multierror "github.com/hashicorp/go-multierror" + cid "github.com/ipfs/go-cid" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + record "github.com/libp2p/go-libp2p-record" +) + +// Tiered is like the Parallel except that GetValue and FindPeer +// are called in series. +type Tiered struct { + Routers []routing.IpfsRouting + Validator record.Validator +} + +func (r Tiered) PutValue(ctx context.Context, key string, value []byte, opts ...ropts.Option) error { + return Parallel{Routers: r.Routers}.PutValue(ctx, key, value, opts...) +} + +func (r Tiered) get(ctx context.Context, do func(routing.IpfsRouting) (interface{}, error)) (interface{}, error) { + var errs []error + for _, ri := range r.Routers { + val, err := do(ri) + switch err { + case nil: + return val, nil + case routing.ErrNotFound, routing.ErrNotSupported: + continue + } + if ctx.Err() != nil { + return nil, ctx.Err() + } + errs = append(errs, err) + } + switch len(errs) { + case 0: + return nil, routing.ErrNotFound + case 1: + return nil, errs[0] + default: + return nil, &multierror.Error{Errors: errs} + } +} + +func (r Tiered) GetValue(ctx context.Context, key string, opts ...ropts.Option) ([]byte, error) { + valInt, err := r.get(ctx, func(ri routing.IpfsRouting) (interface{}, error) { + return ri.GetValue(ctx, key, opts...) + }) + val, _ := valInt.([]byte) + return val, err +} + +func (r Tiered) SearchValue(ctx context.Context, key string, opts ...ropts.Option) (<-chan []byte, error) { + return Parallel{Routers: r.Routers, Validator: r.Validator}.SearchValue(ctx, key, opts...) +} + +func (r Tiered) GetPublicKey(ctx context.Context, p peer.ID) (ci.PubKey, error) { + vInt, err := r.get(ctx, func(ri routing.IpfsRouting) (interface{}, error) { + return routing.GetPublicKey(ri, ctx, p) + }) + val, _ := vInt.(ci.PubKey) + return val, err +} + +func (r Tiered) Provide(ctx context.Context, c cid.Cid, local bool) error { + return Parallel{Routers: r.Routers}.Provide(ctx, c, local) +} + +func (r Tiered) FindProvidersAsync(ctx context.Context, c cid.Cid, count int) <-chan pstore.PeerInfo { + return Parallel{Routers: r.Routers}.FindProvidersAsync(ctx, c, count) +} + +func (r Tiered) FindPeer(ctx context.Context, p peer.ID) (pstore.PeerInfo, error) { + valInt, err := r.get(ctx, func(ri routing.IpfsRouting) (interface{}, error) { + return ri.FindPeer(ctx, p) + }) + val, _ := valInt.(pstore.PeerInfo) + return val, err +} + +func (r Tiered) Bootstrap(ctx context.Context) error { + return Parallel{Routers: r.Routers}.Bootstrap(ctx) +} + +var _ routing.IpfsRouting = Tiered{} diff --git a/vendor/github.com/libp2p/go-libp2p-routing/.travis.yml b/vendor/github.com/libp2p/go-libp2p-routing/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-routing/LICENSE b/vendor/github.com/libp2p/go-libp2p-routing/LICENSE new file mode 100644 index 00000000..55a2d036 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-routing/Makefile b/vendor/github.com/libp2p/go-libp2p-routing/Makefile new file mode 100644 index 00000000..a89e6d08 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-routing/README.md b/vendor/github.com/libp2p/go-libp2p-routing/README.md new file mode 100644 index 00000000..5b196bf5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/README.md @@ -0,0 +1,26 @@ +# go-libp2p-routing + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> A collection of routing interfaces for go-libp2p + +## Documenation + +See https://godoc.org/github.com/libp2p/go-libp2p-routing. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-routing/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-routing/codecov.yml b/vendor/github.com/libp2p/go-libp2p-routing/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-routing/go.mod b/vendor/github.com/libp2p/go-libp2p-routing/go.mod new file mode 100644 index 00000000..e661bcab --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/go.mod @@ -0,0 +1,8 @@ +module github.com/libp2p/go-libp2p-routing + +require ( + github.com/ipfs/go-cid v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-routing/go.sum b/vendor/github.com/libp2p/go-libp2p-routing/go.sum new file mode 100644 index 00000000..4105d68a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/go.sum @@ -0,0 +1,104 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-routing/notifications/query.go b/vendor/github.com/libp2p/go-libp2p-routing/notifications/query.go new file mode 100644 index 00000000..84eba85a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/notifications/query.go @@ -0,0 +1,121 @@ +package notifications + +import ( + "context" + "encoding/json" + "sync" + + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +type QueryEventType int + +// Number of events to buffer. +var QueryEventBufferSize = 16 + +const ( + SendingQuery QueryEventType = iota + PeerResponse + FinalPeer + QueryError + Provider + Value + AddingPeer + DialingPeer +) + +type QueryEvent struct { + ID peer.ID + Type QueryEventType + Responses []*pstore.PeerInfo + Extra string +} + +type routingQueryKey struct{} +type eventChannel struct { + mu sync.Mutex + ctx context.Context + ch chan<- *QueryEvent +} + +// waitThenClose is spawned in a goroutine when the channel is registered. This +// safely cleans up the channel when the context has been canceled. +func (e *eventChannel) waitThenClose() { + <-e.ctx.Done() + e.mu.Lock() + close(e.ch) + // 1. Signals that we're done. + // 2. Frees memory (in case we end up hanging on to this for a while). + e.ch = nil + e.mu.Unlock() +} + +// send sends an event on the event channel, aborting if either the passed or +// the internal context expire. +func (e *eventChannel) send(ctx context.Context, ev *QueryEvent) { + e.mu.Lock() + // Closed. + if e.ch == nil { + e.mu.Unlock() + return + } + // in case the passed context is unrelated, wait on both. + select { + case e.ch <- ev: + case <-e.ctx.Done(): + case <-ctx.Done(): + } + e.mu.Unlock() +} + +func RegisterForQueryEvents(ctx context.Context) (context.Context, <-chan *QueryEvent) { + ch := make(chan *QueryEvent, QueryEventBufferSize) + ech := &eventChannel{ch: ch, ctx: ctx} + go ech.waitThenClose() + return context.WithValue(ctx, routingQueryKey{}, ech), ch +} + +func PublishQueryEvent(ctx context.Context, ev *QueryEvent) { + ich := ctx.Value(routingQueryKey{}) + if ich == nil { + return + } + + // We *want* to panic here. + ech := ich.(*eventChannel) + ech.send(ctx, ev) +} + +func (qe *QueryEvent) MarshalJSON() ([]byte, error) { + return json.Marshal(map[string]interface{}{ + "ID": peer.IDB58Encode(qe.ID), + "Type": int(qe.Type), + "Responses": qe.Responses, + "Extra": qe.Extra, + }) +} + +func (qe *QueryEvent) UnmarshalJSON(b []byte) error { + temp := struct { + ID string + Type int + Responses []*pstore.PeerInfo + Extra string + }{} + err := json.Unmarshal(b, &temp) + if err != nil { + return err + } + if len(temp.ID) > 0 { + pid, err := peer.IDB58Decode(temp.ID) + if err != nil { + return err + } + qe.ID = pid + } + qe.Type = QueryEventType(temp.Type) + qe.Responses = temp.Responses + qe.Extra = temp.Extra + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-routing/options/options.go b/vendor/github.com/libp2p/go-libp2p-routing/options/options.go new file mode 100644 index 00000000..e0c9a52d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/options/options.go @@ -0,0 +1,50 @@ +package ropts + +// Option is a single routing option. +type Option func(opts *Options) error + +// Options is a set of routing options +type Options struct { + // Allow expired values. + Expired bool + Offline bool + // Other (ValueStore implementation specific) options. + Other map[interface{}]interface{} +} + +// Apply applies the given options to this Options +func (opts *Options) Apply(options ...Option) error { + for _, o := range options { + if err := o(opts); err != nil { + return err + } + } + return nil +} + +// ToOption converts this Options to a single Option. +func (opts *Options) ToOption() Option { + return func(nopts *Options) error { + *nopts = *opts + if opts.Other != nil { + nopts.Other = make(map[interface{}]interface{}, len(opts.Other)) + for k, v := range opts.Other { + nopts.Other[k] = v + } + } + return nil + } +} + +// Expired is an option that tells the routing system to return expired records +// when no newer records are known. +var Expired Option = func(opts *Options) error { + opts.Expired = true + return nil +} + +// Offline is an option that tells the routing system to operate offline (i.e., rely on cached/local data only). +var Offline Option = func(opts *Options) error { + opts.Offline = true + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-routing/package.json b/vendor/github.com/libp2p/go-libp2p-routing/package.json new file mode 100644 index 00000000..da12cf8c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/package.json @@ -0,0 +1,42 @@ +{ + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-routing" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-routing", + "goversion": "1.5.2" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "author": "whyrusleeping", + "hash": "QmTbxNB1NwDesLmKTscr4udL2tVP7MaxvXnD1D9yX7g3PN", + "name": "go-cid", + "version": "0.9.3" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-routing", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.7.13" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-routing/routing.go b/vendor/github.com/libp2p/go-libp2p-routing/routing.go new file mode 100644 index 00000000..5fc1e9fe --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-routing/routing.go @@ -0,0 +1,124 @@ +// package routing defines the interface for a routing system used by ipfs. +package routing + +import ( + "context" + "errors" + + ropts "github.com/libp2p/go-libp2p-routing/options" + + cid "github.com/ipfs/go-cid" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" +) + +// ErrNotFound is returned when the router fails to find the requested record. +var ErrNotFound = errors.New("routing: not found") + +// ErrNotSupported is returned when the router doesn't support the given record +// type/operation. +var ErrNotSupported = errors.New("routing: operation or key not supported") + +// ContentRouting is a value provider layer of indirection. It is used to find +// information about who has what content. +type ContentRouting interface { + // Provide adds the given cid to the content routing system. If 'true' is + // passed, it also announces it, otherwise it is just kept in the local + // accounting of which objects are being provided. + Provide(context.Context, cid.Cid, bool) error + + // Search for peers who are able to provide a given key + FindProvidersAsync(context.Context, cid.Cid, int) <-chan pstore.PeerInfo +} + +// PeerRouting is a way to find information about certain peers. +// This can be implemented by a simple lookup table, a tracking server, +// or even a DHT. +type PeerRouting interface { + // Find specific Peer + // FindPeer searches for a peer with given ID, returns a pstore.PeerInfo + // with relevant addresses. + FindPeer(context.Context, peer.ID) (pstore.PeerInfo, error) +} + +// ValueStore is a basic Put/Get interface. +type ValueStore interface { + + // PutValue adds value corresponding to given Key. + PutValue(context.Context, string, []byte, ...ropts.Option) error + + // GetValue searches for the value corresponding to given Key. + GetValue(context.Context, string, ...ropts.Option) ([]byte, error) + + // SearchValue searches for better and better values from this value + // store corresponding to the given Key. By default implementations must + // stop the search after a good value is found. A 'good' value is a value + // that would be returned from GetValue. + // + // Useful when you want a result *now* but still want to hear about + // better/newer results. + // + // Implementations of this methods won't return ErrNotFound. When a value + // couldn't be found, the channel will get closed without passing any results + SearchValue(context.Context, string, ...ropts.Option) (<-chan []byte, error) +} + +// IpfsRouting is the combination of different routing types that IPFS uses. +// It can be satisfied by a single item (such as a DHT) or multiple different +// pieces that are more optimized to each task. +type IpfsRouting interface { + ContentRouting + PeerRouting + ValueStore + + // Bootstrap allows callers to hint to the routing system to get into a + // Boostrapped state and remain there. It is not a synchronous call. + Bootstrap(context.Context) error + + // TODO expose io.Closer or plain-old Close error +} + +// PubKeyFetcher is an interfaces that should be implemented by value stores +// that can optimize retrieval of public keys. +// +// TODO(steb): Consider removing, see #22. +type PubKeyFetcher interface { + // GetPublicKey returns the public key for the given peer. + GetPublicKey(context.Context, peer.ID) (ci.PubKey, error) +} + +// KeyForPublicKey returns the key used to retrieve public keys +// from a value store. +func KeyForPublicKey(id peer.ID) string { + return "/pk/" + string(id) +} + +// GetPublicKey retrieves the public key associated with the given peer ID from +// the value store. +// +// If the ValueStore is also a PubKeyFetcher, this method will call GetPublicKey +// (which may be better optimized) instead of GetValue. +func GetPublicKey(r ValueStore, ctx context.Context, p peer.ID) (ci.PubKey, error) { + switch k, err := p.ExtractPublicKey(); err { + case peer.ErrNoPublicKey: + // check the datastore + case nil: + return k, nil + default: + return nil, err + } + + if dht, ok := r.(PubKeyFetcher); ok { + // If we have a DHT as our routing system, use optimized fetcher + return dht.GetPublicKey(ctx, p) + } + key := KeyForPublicKey(p) + pkval, err := r.GetValue(ctx, key) + if err != nil { + return nil, err + } + + // get PublicKey from node.Data + return ci.UnmarshalPublicKey(pkval) +} diff --git a/vendor/github.com/libp2p/go-libp2p-secio/.travis.yml b/vendor/github.com/libp2p/go-libp2p-secio/.travis.yml new file mode 100644 index 00000000..ab4bd3db --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/.travis.yml @@ -0,0 +1,31 @@ +os: + - linux + +language: go + +go: + - 1.11.x + - 1.12.x + +env: + global: + - GOTFLAGS="-race -count 2" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-secio/LICENSE b/vendor/github.com/libp2p/go-libp2p-secio/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-secio/README.md b/vendor/github.com/libp2p/go-libp2p-secio/README.md new file mode 100644 index 00000000..ca84a4fd --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/README.md @@ -0,0 +1,47 @@ +# go-libp2p-secio + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-secio?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-secio) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-secio.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-secio) + +> go-libp2p's secio encrypted transport + +Package `go-libp2p-secio` is a libp2p [stream security transport](https://github.com/libp2p/go-stream-security). Connections wrapped by `secio` use secure sessions provided by this package to encrypt all traffic. A TLS-like handshake is used to setup the communication channel. + +## Install + +`go-libp2p-secio` is a standard Go module which can be installed with: + +```sh +go get github.com/libp2p/go-libp2p-secio +``` + +This repo is [gomod](https://github.com/golang/go/wiki/Modules)-compatible, and users of +go 1.11 and later with modules enabled will automatically pull the latest tagged release +by referencing this package. Upgrades to future releases can be managed using `go get`, +or by editing your `go.mod` file as [described by the gomod documentation](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies). + +## Usage + +For more information about how `go-libp2p-secio` is used in the libp2p context, you can see the [go-libp2p-conn](https://github.com/libp2p/go-libp2p-conn) module. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-secio/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/libp2p/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT + +--- + +The last gx published version of this module was: 2.0.30: QmSVaJe1aRjc78cZARTtf4pqvXERYwihyYhZWoVWceHnsK diff --git a/vendor/github.com/libp2p/go-libp2p-secio/al.go b/vendor/github.com/libp2p/go-libp2p-secio/al.go new file mode 100644 index 00000000..7f557d28 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/al.go @@ -0,0 +1,122 @@ +package secio + +import ( + "errors" + "fmt" + "strings" + + "crypto/aes" + "crypto/cipher" + "crypto/hmac" + "crypto/sha1" + "crypto/sha512" + "hash" + + ci "github.com/libp2p/go-libp2p-crypto" + sha256 "github.com/minio/sha256-simd" + bfish "golang.org/x/crypto/blowfish" +) + +// SupportedExchanges is the list of supported ECDH curves +var SupportedExchanges = DefaultSupportedExchanges + +const DefaultSupportedExchanges = "P-256,P-384,P-521" + +// SupportedCiphers is the list of supported Ciphers +var SupportedCiphers = DefaultSupportedCiphers + +const DefaultSupportedCiphers = "AES-256,AES-128,Blowfish" + +// SupportedHashes is the list of supported Hashes +var SupportedHashes = DefaultSupportedHashes + +const DefaultSupportedHashes = "SHA256,SHA512" + +// HMAC carries a hash and its size +type HMAC struct { + hash.Hash + size int +} + +// encParams represent encryption parameters +type encParams struct { + // keys + permanentPubKey ci.PubKey + ephemeralPubKey []byte + keys ci.StretchedKeys + + // selections + curveT string + cipherT string + hashT string + + // cipher + mac + cipher cipher.Stream + mac HMAC +} + +func (e *encParams) makeMacAndCipher() error { + m, err := newMac(e.hashT, e.keys.MacKey) + if err != nil { + return err + } + + bc, err := newBlockCipher(e.cipherT, e.keys.CipherKey) + if err != nil { + return err + } + + e.cipher = cipher.NewCTR(bc, e.keys.IV) + e.mac = m + return nil +} + +func newMac(hashType string, key []byte) (HMAC, error) { + switch hashType { + case "SHA1": + return HMAC{hmac.New(sha1.New, key), sha1.Size}, nil + case "SHA512": + return HMAC{hmac.New(sha512.New, key), sha512.Size}, nil + case "SHA256": + return HMAC{hmac.New(sha256.New, key), sha256.Size}, nil + default: + return HMAC{}, fmt.Errorf("Unrecognized hash type: %s", hashType) + } +} + +func newBlockCipher(cipherT string, key []byte) (cipher.Block, error) { + switch cipherT { + case "AES-128", "AES-256": + return aes.NewCipher(key) + case "Blowfish": + return bfish.NewCipher(key) + default: + return nil, fmt.Errorf("Unrecognized cipher type: %s", cipherT) + } +} + +// Determines which algorithm to use. Note: f(a, b) = f(b, a) +func selectBest(order int, p1, p2 string) (string, error) { + var f, s []string + switch { + case order < 0: + f = strings.Split(p2, ",") + s = strings.Split(p1, ",") + case order > 0: + f = strings.Split(p1, ",") + s = strings.Split(p2, ",") + default: // Exact same preferences. + p := strings.Split(p1, ",") + return p[0], nil + } + + for _, fc := range f { + for _, sc := range s { + if fc == sc { + return fc, nil + } + } + } + + return "", errors.New("No algorithms in common!") +} diff --git a/vendor/github.com/libp2p/go-libp2p-secio/codecov.yml b/vendor/github.com/libp2p/go-libp2p-secio/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-secio/go.mod b/vendor/github.com/libp2p/go-libp2p-secio/go.mod new file mode 100644 index 00000000..00640012 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/go.mod @@ -0,0 +1,14 @@ +module github.com/libp2p/go-libp2p-secio + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-buffer-pool v0.0.1 + github.com/libp2p/go-conn-security v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-msgio v0.0.2 + github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 + github.com/multiformats/go-multihash v0.0.1 + golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 +) diff --git a/vendor/github.com/libp2p/go-libp2p-secio/go.sum b/vendor/github.com/libp2p/go-libp2p-secio/go.sum new file mode 100644 index 00000000..93892ca5 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/go.sum @@ -0,0 +1,121 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-msgio v0.0.2 h1:ivPvEKHxmVkTClHzg6RXTYHqaJQ0V9cDbq+6lKb3UV0= +github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-secio/gx-workspace-update.json b/vendor/github.com/libp2p/go-libp2p-secio/gx-workspace-update.json new file mode 100644 index 00000000..4dceb63f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/gx-workspace-update.json @@ -0,0 +1,35 @@ +{ + "Roots": [ + "go-libp2p-peer", + "go-multihash", + "go-libp2p-crypto" + ], + "Changes": { + "go-conn-security": "QmSdqPqBFMHnXJRGPdAHkLFrivJhrBh9xDmKmgpoRis4nn", + "go-libp2p-crypto": "QmaZ1F8vQdJaQqA8hjAzH8a7Qnqqb2n2ZYeUbKMjMcxAZe", + "go-libp2p-net": "QmPzduUbd2aomCUmjnu6anSPxYHV7dv6nJaQRwycPPKRgk", + "go-libp2p-peer": "QmUz7HmU4ws577TMEVNoTjNghVvq2jXnxnVhbkNXKPKpgK", + "go-libp2p-peerstore": "Qma8NCDUKLxeQ42JBN1erM52f5NtxkTSrBbt2UUYpqg5Cn", + "go-multiaddr": "QmRKLtwMw131aK7ugC3G7ybpumMz78YrJe5dzneyindvG1", + "go-multiaddr-net": "QmQVUtnrNGtCRkCMpXgpApfzQjc8FDaDVxHqWH8cnZQeh5", + "go-multihash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "mafmt": "QmXZVrmSiWPyuET6BMbGK3PjzVnQBrcnYc4GkHKhK2KXLp" + }, + "Todo": [], + "Current": "", + "Done": [ + "go-multiaddr", + "go-multiaddr-net", + "mafmt", + "go-libp2p-peerstore", + "go-libp2p-net", + "go-conn-security", + "go-libp2p-secio" + ], + "Skipped": [ + "go-libp2p-peer" + ], + "GoPath": "/home/steb/.gx/update-fzw9j3", + "Branch": "gx/update-fzw9j3", + "PullRequests": null +} \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p-secio/pb/Makefile b/vendor/github.com/libp2p/go-libp2p-secio/pb/Makefile new file mode 100644 index 00000000..df34e54b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofaster_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.pb.go b/vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.pb.go new file mode 100644 index 00000000..0f3236e2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.pb.go @@ -0,0 +1,757 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: spipe.proto + +package spipe_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Propose struct { + Rand []byte `protobuf:"bytes,1,opt,name=rand" json:"rand"` + Pubkey []byte `protobuf:"bytes,2,opt,name=pubkey" json:"pubkey"` + Exchanges string `protobuf:"bytes,3,opt,name=exchanges" json:"exchanges"` + Ciphers string `protobuf:"bytes,4,opt,name=ciphers" json:"ciphers"` + Hashes string `protobuf:"bytes,5,opt,name=hashes" json:"hashes"` +} + +func (m *Propose) Reset() { *m = Propose{} } +func (m *Propose) String() string { return proto.CompactTextString(m) } +func (*Propose) ProtoMessage() {} +func (*Propose) Descriptor() ([]byte, []int) { + return fileDescriptor_c474ec75f0379e64, []int{0} +} +func (m *Propose) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Propose) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Propose.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Propose) XXX_Merge(src proto.Message) { + xxx_messageInfo_Propose.Merge(m, src) +} +func (m *Propose) XXX_Size() int { + return m.Size() +} +func (m *Propose) XXX_DiscardUnknown() { + xxx_messageInfo_Propose.DiscardUnknown(m) +} + +var xxx_messageInfo_Propose proto.InternalMessageInfo + +func (m *Propose) GetRand() []byte { + if m != nil { + return m.Rand + } + return nil +} + +func (m *Propose) GetPubkey() []byte { + if m != nil { + return m.Pubkey + } + return nil +} + +func (m *Propose) GetExchanges() string { + if m != nil { + return m.Exchanges + } + return "" +} + +func (m *Propose) GetCiphers() string { + if m != nil { + return m.Ciphers + } + return "" +} + +func (m *Propose) GetHashes() string { + if m != nil { + return m.Hashes + } + return "" +} + +type Exchange struct { + Epubkey []byte `protobuf:"bytes,1,opt,name=epubkey" json:"epubkey"` + Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature"` +} + +func (m *Exchange) Reset() { *m = Exchange{} } +func (m *Exchange) String() string { return proto.CompactTextString(m) } +func (*Exchange) ProtoMessage() {} +func (*Exchange) Descriptor() ([]byte, []int) { + return fileDescriptor_c474ec75f0379e64, []int{1} +} +func (m *Exchange) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Exchange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Exchange.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Exchange) XXX_Merge(src proto.Message) { + xxx_messageInfo_Exchange.Merge(m, src) +} +func (m *Exchange) XXX_Size() int { + return m.Size() +} +func (m *Exchange) XXX_DiscardUnknown() { + xxx_messageInfo_Exchange.DiscardUnknown(m) +} + +var xxx_messageInfo_Exchange proto.InternalMessageInfo + +func (m *Exchange) GetEpubkey() []byte { + if m != nil { + return m.Epubkey + } + return nil +} + +func (m *Exchange) GetSignature() []byte { + if m != nil { + return m.Signature + } + return nil +} + +func init() { + proto.RegisterType((*Propose)(nil), "spipe.pb.Propose") + proto.RegisterType((*Exchange)(nil), "spipe.pb.Exchange") +} + +func init() { proto.RegisterFile("spipe.proto", fileDescriptor_c474ec75f0379e64) } + +var fileDescriptor_c474ec75f0379e64 = []byte{ + // 207 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x2e, 0xc8, 0x2c, + 0x48, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0x72, 0x92, 0x94, 0x16, 0x33, 0x72, + 0xb1, 0x07, 0x14, 0xe5, 0x17, 0xe4, 0x17, 0xa7, 0x0a, 0x49, 0x70, 0xb1, 0x14, 0x25, 0xe6, 0xa5, + 0x48, 0x30, 0x2a, 0x30, 0x6a, 0xf0, 0x38, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x04, 0x16, 0x11, + 0x92, 0xe1, 0x62, 0x2b, 0x28, 0x4d, 0xca, 0x4e, 0xad, 0x94, 0x60, 0x42, 0x92, 0x83, 0x8a, 0x09, + 0x29, 0x71, 0x71, 0xa6, 0x56, 0x24, 0x67, 0x24, 0xe6, 0xa5, 0xa7, 0x16, 0x4b, 0x30, 0x2b, 0x30, + 0x6a, 0x70, 0x42, 0x15, 0x20, 0x84, 0x85, 0xe4, 0xb8, 0xd8, 0x93, 0x33, 0x0b, 0x32, 0x52, 0x8b, + 0x8a, 0x25, 0x58, 0x90, 0x54, 0xc0, 0x04, 0x41, 0x36, 0x64, 0x24, 0x16, 0x67, 0xa4, 0x16, 0x4b, + 0xb0, 0x22, 0x49, 0x43, 0xc5, 0x94, 0xfc, 0xb8, 0x38, 0x5c, 0xa1, 0x46, 0x81, 0x4c, 0x4a, 0x85, + 0x3a, 0x06, 0xd9, 0xa1, 0x30, 0x41, 0x90, 0x6b, 0x8a, 0x33, 0xd3, 0xf3, 0x12, 0x4b, 0x4a, 0x8b, + 0x52, 0x51, 0x9c, 0x8b, 0x10, 0x76, 0x92, 0x38, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, + 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, + 0x06, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x0d, 0xc4, 0xcb, 0x27, 0x01, 0x00, 0x00, +} + +func (m *Propose) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Propose) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Rand != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Rand))) + i += copy(dAtA[i:], m.Rand) + } + if m.Pubkey != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Pubkey))) + i += copy(dAtA[i:], m.Pubkey) + } + dAtA[i] = 0x1a + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Exchanges))) + i += copy(dAtA[i:], m.Exchanges) + dAtA[i] = 0x22 + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Ciphers))) + i += copy(dAtA[i:], m.Ciphers) + dAtA[i] = 0x2a + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Hashes))) + i += copy(dAtA[i:], m.Hashes) + return i, nil +} + +func (m *Exchange) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Exchange) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Epubkey != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Epubkey))) + i += copy(dAtA[i:], m.Epubkey) + } + if m.Signature != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintSpipe(dAtA, i, uint64(len(m.Signature))) + i += copy(dAtA[i:], m.Signature) + } + return i, nil +} + +func encodeVarintSpipe(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Propose) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Rand != nil { + l = len(m.Rand) + n += 1 + l + sovSpipe(uint64(l)) + } + if m.Pubkey != nil { + l = len(m.Pubkey) + n += 1 + l + sovSpipe(uint64(l)) + } + l = len(m.Exchanges) + n += 1 + l + sovSpipe(uint64(l)) + l = len(m.Ciphers) + n += 1 + l + sovSpipe(uint64(l)) + l = len(m.Hashes) + n += 1 + l + sovSpipe(uint64(l)) + return n +} + +func (m *Exchange) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Epubkey != nil { + l = len(m.Epubkey) + n += 1 + l + sovSpipe(uint64(l)) + } + if m.Signature != nil { + l = len(m.Signature) + n += 1 + l + sovSpipe(uint64(l)) + } + return n +} + +func sovSpipe(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozSpipe(x uint64) (n int) { + return sovSpipe(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Propose) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Propose: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Propose: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rand", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rand = append(m.Rand[:0], dAtA[iNdEx:postIndex]...) + if m.Rand == nil { + m.Rand = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pubkey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Pubkey = append(m.Pubkey[:0], dAtA[iNdEx:postIndex]...) + if m.Pubkey == nil { + m.Pubkey = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Exchanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Exchanges = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ciphers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ciphers = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hashes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hashes = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSpipe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSpipe + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthSpipe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Exchange) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Exchange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Exchange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Epubkey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Epubkey = append(m.Epubkey[:0], dAtA[iNdEx:postIndex]...) + if m.Epubkey == nil { + m.Epubkey = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSpipe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthSpipe + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthSpipe + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...) + if m.Signature == nil { + m.Signature = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSpipe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSpipe + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthSpipe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipSpipe(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSpipe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSpipe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSpipe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthSpipe + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthSpipe + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSpipe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipSpipe(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthSpipe + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthSpipe = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSpipe = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.proto b/vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.proto new file mode 100644 index 00000000..ed5f3a78 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/pb/spipe.proto @@ -0,0 +1,16 @@ +syntax = "proto2"; + +package spipe.pb; + +message Propose { + optional bytes rand = 1; + optional bytes pubkey = 2; + optional string exchanges = 3; + optional string ciphers = 4; + optional string hashes = 5; +} + +message Exchange { + optional bytes epubkey = 1; + optional bytes signature = 2; +} diff --git a/vendor/github.com/libp2p/go-libp2p-secio/protocol.go b/vendor/github.com/libp2p/go-libp2p-secio/protocol.go new file mode 100644 index 00000000..4e54d87e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/protocol.go @@ -0,0 +1,386 @@ +package secio + +import ( + "bytes" + "context" + "crypto/rand" + "errors" + "fmt" + "net" + "time" + + proto "github.com/gogo/protobuf/proto" + logging "github.com/ipfs/go-log" + cs "github.com/libp2p/go-conn-security" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + pb "github.com/libp2p/go-libp2p-secio/pb" + msgio "github.com/libp2p/go-msgio" + mh "github.com/multiformats/go-multihash" +) + +var log = logging.Logger("secio") + +// ErrUnsupportedKeyType is returned when a private key cast/type switch fails. +var ErrUnsupportedKeyType = errors.New("unsupported key type") + +// ErrClosed signals the closing of a connection. +var ErrClosed = errors.New("connection closed") + +// ErrWrongPeer is returned when we attempt to handshake with the wrong peer. +var ErrWrongPeer = errors.New("connected to wrong peer") + +// ErrBadSig signals that the peer sent us a handshake packet with a bad signature. +var ErrBadSig = errors.New("bad signature") + +// ErrEcho is returned when we're attempting to handshake with the same keys and nonces. +var ErrEcho = errors.New("same keys and nonces. one side talking to self") + +// HandshakeTimeout governs how long the handshake will be allowed to take place for. +// Making this number large means there could be many bogus connections waiting to +// timeout in flight. Typical handshakes take ~3RTTs, so it should be completed within +// seconds across a typical planet in the solar system. +var HandshakeTimeout = time.Second * 30 + +// nonceSize is the size of our nonces (in bytes) +const nonceSize = 16 + +// secureSession encapsulates all the parameters needed for encrypting +// and decrypting traffic from an insecure channel. +type secureSession struct { + msgio.ReadWriteCloser + + insecure net.Conn + insecureM msgio.ReadWriter + + localKey ci.PrivKey + localPeer peer.ID + remotePeer peer.ID + + local encParams + remote encParams + + sharedSecret []byte +} + +var _ cs.Conn = &secureSession{} + +func (s *secureSession) Loggable() map[string]interface{} { + m := make(map[string]interface{}) + m["localPeer"] = s.localPeer.Pretty() + m["remotePeer"] = s.remotePeer.Pretty() + m["established"] = (s.ReadWriteCloser != nil) + return m +} + +func newSecureSession(ctx context.Context, local peer.ID, key ci.PrivKey, insecure net.Conn, remotePeer peer.ID) (*secureSession, error) { + s := &secureSession{localPeer: local, localKey: key} + + switch { + case s.localPeer == "": + return nil, errors.New("no local id provided") + case s.localKey == nil: + return nil, errors.New("no local private key provided") + case !s.localPeer.MatchesPrivateKey(s.localKey): + return nil, fmt.Errorf("peer.ID does not match PrivateKey") + case insecure == nil: + return nil, fmt.Errorf("insecure ReadWriter is nil") + } + + s.insecure = insecure + s.insecureM = msgio.NewReadWriter(insecure) + s.remotePeer = remotePeer + + handshakeCtx, cancel := context.WithTimeout(ctx, HandshakeTimeout) // remove + defer cancel() + if err := s.runHandshake(handshakeCtx); err != nil { + return nil, err + } + + return s, nil +} + +func hashSha256(data []byte) mh.Multihash { + h, err := mh.Sum(data, mh.SHA2_256, -1) + if err != nil { + // this error can be safely ignored (panic) because multihash only fails + // from the selection of hash function. If the fn + length are valid, it + // won't error. + panic("multihash failed to hash using SHA2_256.") + } + return h +} + +// runHandshake performs initial communication over insecure channel to share +// keys, IDs, and initiate communication, assigning all necessary params. +// requires the duplex channel to be a msgio.ReadWriter (for framed messaging) +func (s *secureSession) runHandshake(ctx context.Context) error { + defer log.EventBegin(ctx, "secureHandshake", s).Done() + + result := make(chan error, 1) + go func() { + // do *not* close the channel (will look like a success). + result <- s.runHandshakeSync() + }() + + var err error + select { + case <-ctx.Done(): + // State unknown. We *have* to close this. + s.insecure.Close() + err = ctx.Err() + case err = <-result: + } + return err +} + +func (s *secureSession) runHandshakeSync() error { + // ============================================================================= + // step 1. Propose -- propose cipher suite + send pubkeys + nonce + + // Generate and send Hello packet. + // Hello = (rand, PublicKey, Supported) + nonceOut := make([]byte, nonceSize) + _, err := rand.Read(nonceOut) + if err != nil { + return err + } + + s.local.permanentPubKey = s.localKey.GetPublic() + myPubKeyBytes, err := s.local.permanentPubKey.Bytes() + if err != nil { + return err + } + + proposeOut := new(pb.Propose) + proposeOut.Rand = nonceOut + proposeOut.Pubkey = myPubKeyBytes + proposeOut.Exchanges = SupportedExchanges + proposeOut.Ciphers = SupportedCiphers + proposeOut.Hashes = SupportedHashes + + // log.Debugf("1.0 Propose: nonce:%s exchanges:%s ciphers:%s hashes:%s", + // nonceOut, SupportedExchanges, SupportedCiphers, SupportedHashes) + + // Marshal our propose packet + proposeOutBytes, err := proto.Marshal(proposeOut) + if err != nil { + return err + } + + // Send Propose packet and Receive their Propose packet + proposeInBytes, err := readWriteMsg(s.insecureM, proposeOutBytes) + if err != nil { + return err + } + defer s.insecureM.ReleaseMsg(proposeInBytes) + + // Parse their propose packet + proposeIn := new(pb.Propose) + if err = proto.Unmarshal(proposeInBytes, proposeIn); err != nil { + return err + } + + // log.Debugf("1.0.1 Propose recv: nonce:%s exchanges:%s ciphers:%s hashes:%s", + // proposeIn.GetRand(), proposeIn.GetExchanges(), proposeIn.GetCiphers(), proposeIn.GetHashes()) + + // ============================================================================= + // step 1.1 Identify -- get identity from their key + + // get remote identity + s.remote.permanentPubKey, err = ci.UnmarshalPublicKey(proposeIn.GetPubkey()) + if err != nil { + return err + } + + // get peer id + actualRemotePeer, err := peer.IDFromPublicKey(s.remote.permanentPubKey) + if err != nil { + return err + } + switch s.remotePeer { + case actualRemotePeer: + // All good. + case "": + // No peer set. We're accepting a remote connection. + s.remotePeer = actualRemotePeer + default: + // Peer mismatch. Bail. + s.insecure.Close() + log.Debugf("expected peer %s, got peer %s", s.remotePeer, actualRemotePeer) + return ErrWrongPeer + } + + log.Debugf("1.1 Identify: %s Remote Peer Identified as %s", s.localPeer, s.remotePeer) + + // ============================================================================= + // step 1.2 Selection -- select/agree on best encryption parameters + + // to determine order, use cmp(H(remote_pubkey||local_rand), H(local_pubkey||remote_rand)). + oh1 := hashSha256(append(proposeIn.GetPubkey(), nonceOut...)) + oh2 := hashSha256(append(myPubKeyBytes, proposeIn.GetRand()...)) + order := bytes.Compare(oh1, oh2) + if order == 0 { + return ErrEcho // talking to self (same socket. must be reuseport + dialing self) + } + + s.local.curveT, err = selectBest(order, SupportedExchanges, proposeIn.GetExchanges()) + if err != nil { + return err + } + + s.local.cipherT, err = selectBest(order, SupportedCiphers, proposeIn.GetCiphers()) + if err != nil { + return err + } + + s.local.hashT, err = selectBest(order, SupportedHashes, proposeIn.GetHashes()) + if err != nil { + return err + } + + // we use the same params for both directions (must choose same curve) + // WARNING: if they dont SelectBest the same way, this won't work... + s.remote.curveT = s.local.curveT + s.remote.cipherT = s.local.cipherT + s.remote.hashT = s.local.hashT + + // log.Debugf("1.2 selection: exchange:%s cipher:%s hash:%s", + // s.local.curveT, s.local.cipherT, s.local.hashT) + + // ============================================================================= + // step 2. Exchange -- exchange (signed) ephemeral keys. verify signatures. + + // Generate EphemeralPubKey + var genSharedKey ci.GenSharedKey + s.local.ephemeralPubKey, genSharedKey, err = ci.GenerateEKeyPair(s.local.curveT) + if err != nil { + return err + } + + // Gather corpus to sign. + selectionOut := new(bytes.Buffer) + selectionOut.Write(proposeOutBytes) + selectionOut.Write(proposeInBytes) + selectionOut.Write(s.local.ephemeralPubKey) + selectionOutBytes := selectionOut.Bytes() + + // log.Debugf("2.0 exchange: %v", selectionOutBytes) + exchangeOut := new(pb.Exchange) + exchangeOut.Epubkey = s.local.ephemeralPubKey + exchangeOut.Signature, err = s.localKey.Sign(selectionOutBytes) + if err != nil { + return err + } + + // Marshal our exchange packet + exchangeOutBytes, err := proto.Marshal(exchangeOut) + if err != nil { + return err + } + + // Send Exchange packet and receive their Exchange packet + exchangeInBytes, err := readWriteMsg(s.insecureM, exchangeOutBytes) + if err != nil { + return err + } + defer s.insecureM.ReleaseMsg(exchangeInBytes) + + // Parse their Exchange packet. + exchangeIn := new(pb.Exchange) + if err = proto.Unmarshal(exchangeInBytes, exchangeIn); err != nil { + return err + } + + // ============================================================================= + // step 2.1. Verify -- verify their exchange packet is good. + + // get their ephemeral pub key + s.remote.ephemeralPubKey = exchangeIn.GetEpubkey() + + selectionIn := new(bytes.Buffer) + selectionIn.Write(proposeInBytes) + selectionIn.Write(proposeOutBytes) + selectionIn.Write(s.remote.ephemeralPubKey) + selectionInBytes := selectionIn.Bytes() + // log.Debugf("2.0.1 exchange recv: %v", selectionInBytes) + + // u.POut("Remote Peer Identified as %s\n", s.remote) + sigOK, err := s.remote.permanentPubKey.Verify(selectionInBytes, exchangeIn.GetSignature()) + if err != nil { + // log.Error("2.1 Verify: failed: %s", err) + return err + } + + if !sigOK { + // log.Error("2.1 Verify: failed: %s", ErrBadSig) + return ErrBadSig + } + // log.Debugf("2.1 Verify: signature verified.") + + // ============================================================================= + // step 2.2. Keys -- generate keys for mac + encryption + + // OK! seems like we're good to go. + s.sharedSecret, err = genSharedKey(exchangeIn.GetEpubkey()) + if err != nil { + return err + } + + // generate two sets of keys (stretching) + k1, k2 := ci.KeyStretcher(s.local.cipherT, s.local.hashT, s.sharedSecret) + + // use random nonces to decide order. + switch { + case order > 0: + // just break + case order < 0: + k1, k2 = k2, k1 // swap + default: + // we should've bailed before this. but if not, bail here. + return ErrEcho + } + s.local.keys = k1 + s.remote.keys = k2 + + // log.Debug("2.2 keys:\n\tshared: %v\n\tk1: %v\n\tk2: %v", + // s.sharedSecret, s.local.keys, s.remote.keys) + + // ============================================================================= + // step 2.3. MAC + Cipher -- prepare MAC + cipher + + if err := s.local.makeMacAndCipher(); err != nil { + return err + } + + if err := s.remote.makeMacAndCipher(); err != nil { + return err + } + + // log.Debug("2.3 mac + cipher.") + + // ============================================================================= + // step 3. Finish -- send expected message to verify encryption works (send local nonce) + + // setup ETM ReadWriter + w := NewETMWriter(s.insecure, s.local.cipher, s.local.mac) + r := NewETMReader(s.insecure, s.remote.cipher, s.remote.mac) + s.ReadWriteCloser = msgio.Combine(w, r).(msgio.ReadWriteCloser) + + // log.Debug("3.0 finish. sending: %v", proposeIn.GetRand()) + + // send their Nonce and receive ours + nonceOut2, err := readWriteMsg(s.ReadWriteCloser, proposeIn.GetRand()) + if err != nil { + return err + } + defer s.ReleaseMsg(nonceOut2) + + // log.Debug("3.0 finish.\n\texpect: %v\n\tactual: %v", nonceOut, nonceOut2) + if !bytes.Equal(nonceOut, nonceOut2) { + return fmt.Errorf("Failed to read our encrypted nonce: %s != %s", nonceOut2, nonceOut) + } + + // Whew! ok, that's all folks. + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-secio/rw.go b/vendor/github.com/libp2p/go-libp2p-secio/rw.go new file mode 100644 index 00000000..f3dd39b6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/rw.go @@ -0,0 +1,268 @@ +package secio + +import ( + "crypto/cipher" + "crypto/hmac" + "encoding/binary" + "errors" + "fmt" + "io" + "sync" + + pool "github.com/libp2p/go-buffer-pool" + msgio "github.com/libp2p/go-msgio" +) + +// ErrMACInvalid signals that a MAC verification failed +var ErrMACInvalid = errors.New("MAC verification failed") + +type etmWriter struct { + str cipher.Stream // the stream cipher to encrypt with + mac HMAC // the mac to authenticate data with + w io.Writer + + sync.Mutex +} + +// NewETMWriter Encrypt-Then-MAC +func NewETMWriter(w io.Writer, s cipher.Stream, mac HMAC) msgio.WriteCloser { + return &etmWriter{w: w, str: s, mac: mac} +} + +// Write writes passed in buffer as a single message. +func (w *etmWriter) Write(b []byte) (int, error) { + if err := w.WriteMsg(b); err != nil { + return 0, err + } + return len(b), nil +} + +// WriteMsg writes the msg in the passed in buffer. +func (w *etmWriter) WriteMsg(b []byte) error { + w.Lock() + defer w.Unlock() + + // encrypt. + buf := pool.Get(4 + len(b) + w.mac.Size()) + defer pool.Put(buf) + data := buf[4 : 4+len(b)] + w.str.XORKeyStream(data, b) + + // log.Debugf("ENC plaintext (%d): %s %v", len(b), b, b) + // log.Debugf("ENC ciphertext (%d): %s %v", len(data), data, data) + + // then, mac. + if _, err := w.mac.Write(data); err != nil { + return err + } + + // Sum appends. + data = w.mac.Sum(data) + w.mac.Reset() + binary.BigEndian.PutUint32(buf[:4], uint32(len(data))) + + _, err := w.w.Write(buf) + return err +} + +func (w *etmWriter) Close() error { + if c, ok := w.w.(io.Closer); ok { + return c.Close() + } + return nil +} + +type etmReader struct { + msgio.Reader + io.Closer + + // internal buffer returned from the msgio + buf []byte + + // low and high watermark for the buffered data + lowat int + hiwat int + + // params + msg msgio.ReadCloser // msgio for knowing where boundaries lie + str cipher.Stream // the stream cipher to encrypt with + mac HMAC // the mac to authenticate data with + + // internal buffer used for checking MACs, this saves us quite a few + // allocations and should be quite small. + macBuf []byte + + sync.Mutex +} + +// NewETMReader Encrypt-Then-MAC +func NewETMReader(r io.Reader, s cipher.Stream, mac HMAC) msgio.ReadCloser { + return &etmReader{msg: msgio.NewReader(r), str: s, mac: mac} +} + +func (r *etmReader) NextMsgLen() (int, error) { + return r.msg.NextMsgLen() +} + +func (r *etmReader) drain(buf []byte) int { + // Return zero if there is no data remaining in the internal buffer. + if r.lowat == r.hiwat { + return 0 + } + + // Copy data to the output buffer. + n := copy(buf, r.buf[r.lowat:r.hiwat]) + + // Update the low watermark. + r.lowat += n + + // Release the buffer and reset the watermarks if it has been fully read. + if r.lowat == r.hiwat { + r.msg.ReleaseMsg(r.buf) + r.buf = nil + r.lowat = 0 + r.hiwat = 0 + } + + return n +} + +func (r *etmReader) fill() error { + // Read a message from the underlying msgio. + msg, err := r.msg.ReadMsg() + if err != nil { + return err + } + + // Check the MAC. + n, err := r.macCheckThenDecrypt(msg) + if err != nil { + r.msg.ReleaseMsg(msg) + return err + } + + // Retain the buffer so it can be drained from and later released. + r.buf = msg + r.lowat = 0 + r.hiwat = n + + return nil +} + +func (r *etmReader) Read(buf []byte) (int, error) { + r.Lock() + defer r.Unlock() + + // Return buffered data without reading more, if possible. + copied := r.drain(buf) + if copied > 0 { + return copied, nil + } + + // Check the length of the next message. + fullLen, err := r.msg.NextMsgLen() + if err != nil { + return 0, err + } + + // If the destination buffer is too short, fill an internal buffer and then + // drain as much of that into the output buffer as will fit. + if cap(buf) < fullLen { + err := r.fill() + if err != nil { + return 0, err + } + + copied := r.drain(buf) + return copied, nil + } + + // Otherwise, read directly into the destination buffer. + n, err := io.ReadFull(r.msg, buf[:fullLen]) + if err != nil { + return 0, err + } + + m, err := r.macCheckThenDecrypt(buf[:n]) + if err != nil { + return 0, err + } + + return m, nil +} + +func (r *etmReader) ReadMsg() ([]byte, error) { + r.Lock() + defer r.Unlock() + + msg, err := r.msg.ReadMsg() + if err != nil { + return nil, err + } + + n, err := r.macCheckThenDecrypt(msg) + if err != nil { + r.msg.ReleaseMsg(msg) + return nil, err + } + return msg[:n], nil +} + +func (r *etmReader) macCheckThenDecrypt(m []byte) (int, error) { + l := len(m) + if l < r.mac.size { + return 0, fmt.Errorf("buffer (%d) shorter than MAC size (%d)", l, r.mac.size) + } + + mark := l - r.mac.size + data := m[:mark] + macd := m[mark:] + + r.mac.Write(data) + r.macBuf = r.mac.Sum(r.macBuf[:0]) + r.mac.Reset() + + // check mac. if failed, return error. + if !hmac.Equal(macd, r.macBuf) { + log.Debug("MAC Invalid:", r.macBuf, "!=", macd) + return 0, ErrMACInvalid + } + + // ok seems good. decrypt. (can decrypt in place, yay!) + // log.Debugf("DEC ciphertext (%d): %s %v", len(data), data, data) + r.str.XORKeyStream(data, data) + // log.Debugf("DEC plaintext (%d): %s %v", len(data), data, data) + + return mark, nil +} + +func (r *etmReader) Close() error { + return r.msg.Close() +} + +// ReleaseMsg signals a buffer can be reused. +func (r *etmReader) ReleaseMsg(b []byte) { + r.msg.ReleaseMsg(b) +} + +// read and write a message at the same time. +func readWriteMsg(c msgio.ReadWriter, out []byte) ([]byte, error) { + wresult := make(chan error) + go func() { + wresult <- c.WriteMsg(out) + }() + + msg, err1 := c.ReadMsg() + + // Always wait for the read to finish. + err2 := <-wresult + + if err1 != nil { + return nil, err1 + } + if err2 != nil { + c.ReleaseMsg(msg) + return nil, err2 + } + return msg, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-secio/transport.go b/vendor/github.com/libp2p/go-libp2p-secio/transport.go new file mode 100644 index 00000000..323f32fa --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-secio/transport.go @@ -0,0 +1,81 @@ +// Package secio is used to encrypt `go-libp2p-conn` connections. Connections wrapped by secio use secure sessions provided by this package to encrypt all traffic. A TLS-like handshake is used to setup the communication channel. +package secio + +import ( + "context" + "net" + "time" + + cs "github.com/libp2p/go-conn-security" + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" +) + +// ID is secio's protocol ID (used when negotiating with multistream) +const ID = "/secio/1.0.0" + +// SessionGenerator constructs secure communication sessions for a peer. +type Transport struct { + LocalID peer.ID + PrivateKey ci.PrivKey +} + +func New(sk ci.PrivKey) (*Transport, error) { + id, err := peer.IDFromPrivateKey(sk) + if err != nil { + return nil, err + } + return &Transport{ + LocalID: id, + PrivateKey: sk, + }, nil +} + +var _ cs.Transport = (*Transport)(nil) + +func (sg *Transport) SecureInbound(ctx context.Context, insecure net.Conn) (cs.Conn, error) { + return newSecureSession(ctx, sg.LocalID, sg.PrivateKey, insecure, "") +} +func (sg *Transport) SecureOutbound(ctx context.Context, insecure net.Conn, p peer.ID) (cs.Conn, error) { + return newSecureSession(ctx, sg.LocalID, sg.PrivateKey, insecure, p) +} + +func (s *secureSession) SetReadDeadline(t time.Time) error { + return s.insecure.SetReadDeadline(t) +} + +func (s *secureSession) SetWriteDeadline(t time.Time) error { + return s.insecure.SetWriteDeadline(t) +} + +func (s *secureSession) SetDeadline(t time.Time) error { + return s.insecure.SetDeadline(t) +} + +func (s *secureSession) RemoteAddr() net.Addr { + return s.insecure.RemoteAddr() +} + +func (s *secureSession) LocalAddr() net.Addr { + return s.insecure.LocalAddr() +} + +// LocalPeer retrieves the local peer. +func (s *secureSession) LocalPeer() peer.ID { + return s.localPeer +} + +// LocalPrivateKey retrieves the local peer's PrivateKey +func (s *secureSession) LocalPrivateKey() ci.PrivKey { + return s.localKey +} + +// RemotePeer retrieves the remote peer. +func (s *secureSession) RemotePeer() peer.ID { + return s.remotePeer +} + +// RemotePublicKey retrieves the remote public key. +func (s *secureSession) RemotePublicKey() ci.PubKey { + return s.remote.permanentPubKey +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/.travis.yml b/vendor/github.com/libp2p/go-libp2p-swarm/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/LICENSE b/vendor/github.com/libp2p/go-libp2p-swarm/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/Makefile b/vendor/github.com/libp2p/go-libp2p-swarm/Makefile new file mode 100644 index 00000000..4f5206e4 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/Makefile @@ -0,0 +1,13 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/README.md b/vendor/github.com/libp2p/go-libp2p-swarm/README.md new file mode 100644 index 00000000..4ba762bf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/README.md @@ -0,0 +1,152 @@ +go-libp2p-swarm +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-swarm/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-swarm?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-swarm.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-swarm) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +> The libp2p swarm manages groups of connections to peers, and handles incoming and outgoing streams. + +The libp2p swarm is the 'low level' interface for working with a given libp2p +network. It gives you more fine grained control over various aspects of the +system. Most applications don't need this level of access, so the `Swarm` is +generally wrapped in a `Host` abstraction that provides a more friendly +interface. See [the host interface](https://github.com/libp2p/go-libp2p-host) +for more info on that. + +## Table of Contents + +- [Install](#install) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Usage + +### Creating a swarm +To construct a swarm, you'll be calling `NewSwarm`. That function looks like this: +```go +swarm, err := NewSwarm(ctx, laddrs, pid, pstore, bwc) +``` + +It takes five items to fully construct a swarm, the first is a go +`context.Context`. This controls the lifetime of the swarm, and all swarm +processes have their lifespan derived from the given context. You can just use +`context.Background()` if you're not concerned with that. + +The next argument is an array of multiaddrs that the swarm will open up +listeners for. Once started, the swarm will start accepting and handling +incoming connections on every given address. This argument is optional, you can +pass `nil` and the swarm will not listen for any incoming connections (but will +still be able to dial out to other peers). + +After that, you'll need to give the swarm an identity in the form of a peer.ID. +If you're not wanting to enable secio (libp2p's transport layer encryption), +then you can pick any string for this value. For example `peer.ID("FooBar123")` +would work. Note that passing a random string ID will result in your node not +being able to communicate with other peers that have correctly generated IDs. +To see how to generate a proper ID, see the below section on "Identity +Generation". + +The fourth argument is a peerstore. This is essentially a database that the +swarm will use to store peer IDs, addresses, public keys, protocol preferences +and more. You can construct one by importing +`github.com/libp2p/go-libp2p-peerstore` and calling `peerstore.NewPeerstore()`. + +The final argument is a bandwidth metrics collector, This is used to track +incoming and outgoing bandwidth on connections managed by this swarm. It is +optional, and passing `nil` will simply result in no metrics for connections +being available. + +#### Identity Generation +A proper libp2p identity is PKI based. We currently have support for RSA and ed25519 keys. To create a 'correct' ID, you'll need to either load or generate a new keypair. Here is an example of doing so: + +```go +import ( + "fmt" + "crypto/rand" + + ci "github.com/libp2p/go-libp2p-crypto" + pstore "github.com/libp2p/go-libp2p-peerstore" + peer "github.com/libp2p/go-libp2p-peer" +) + +func demo() { + // First, select a source of entropy. We're using the stdlib's crypto reader here + src := rand.Reader + + // Now create a 2048 bit RSA key using that + priv, pub, err := ci.GenerateKeyPairWithReader(ci.RSA, 2048, src) + if err != nil { + panic(err) // oh no! + } + + // Now that we have a keypair, lets create our identity from it + pid, err := peer.IDFromPrivateKey(priv) + if err != nil { + panic(err) + } + + // Woo! Identity acquired! + fmt.Println("I am ", pid) + + // Now, for the purposes of building a swarm, lets add this all to a peerstore. + ps := pstore.NewPeerstore() + ps.AddPubKey(pid, pub) + ps.AddPrivKey(pid, priv) + + // Once you've got all that, creating a basic swarm can be as easy as + ctx := context.Background() + swarm, err := NewSwarm(ctx, nil, pid, ps, nil) + + // voila! A functioning swarm! +} +``` + +### Streams +The swarm is designed around using multiplexed streams to communicate with +other peers. When working with a swarm, you will want to set a function to +handle incoming streams from your peers: + +```go +swrm.SetStreamHandler(func(s inet.Stream) { + defer s.Close() + fmt.Println("Got a stream from: ", s.SwarmConn().RemotePeer()) + fmt.Fprintln(s, "Hello Friend!") +}) +``` + +Tip: Always make sure to close streams when you're done with them. + +Opening streams is also pretty simple: +```go +s, err := swrm.NewStreamWithPeer(ctx, rpid) +if err != nil { + panic(err) +} +defer s.Close() + +io.Copy(os.Stdout, s) // pipe the stream to stdout +``` + +Just pass a context and the ID of the peer you want a stream to, and you'll get +back a stream to read and write on. + + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/addrs.go b/vendor/github.com/libp2p/go-libp2p-swarm/addrs.go new file mode 100644 index 00000000..ed510f26 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/addrs.go @@ -0,0 +1,35 @@ +package swarm + +import ( + mafilter "github.com/libp2p/go-maddr-filter" + mamask "github.com/whyrusleeping/multiaddr-filter" +) + +// http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml +var lowTimeoutFilters = mafilter.NewFilters() + +func init() { + for _, p := range []string{ + "/ip4/10.0.0.0/ipcidr/8", + "/ip4/100.64.0.0/ipcidr/10", + "/ip4/169.254.0.0/ipcidr/16", + "/ip4/172.16.0.0/ipcidr/12", + "/ip4/192.0.0.0/ipcidr/24", + "/ip4/192.0.0.0/ipcidr/29", + "/ip4/192.0.0.8/ipcidr/32", + "/ip4/192.0.0.170/ipcidr/32", + "/ip4/192.0.0.171/ipcidr/32", + "/ip4/192.0.2.0/ipcidr/24", + "/ip4/192.168.0.0/ipcidr/16", + "/ip4/198.18.0.0/ipcidr/15", + "/ip4/198.51.100.0/ipcidr/24", + "/ip4/203.0.113.0/ipcidr/24", + "/ip4/240.0.0.0/ipcidr/4", + } { + f, err := mamask.NewMask(p) + if err != nil { + panic("error in lowTimeoutFilters init: " + err.Error()) + } + lowTimeoutFilters.AddDialFilter(f) + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/codecov.yml b/vendor/github.com/libp2p/go-libp2p-swarm/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/dial_sync.go b/vendor/github.com/libp2p/go-libp2p-swarm/dial_sync.go new file mode 100644 index 00000000..82256eca --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/dial_sync.go @@ -0,0 +1,122 @@ +package swarm + +import ( + "context" + "sync" + + peer "github.com/libp2p/go-libp2p-peer" +) + +// DialFunc is the type of function expected by DialSync. +type DialFunc func(context.Context, peer.ID) (*Conn, error) + +// NewDialSync constructs a new DialSync +func NewDialSync(dfn DialFunc) *DialSync { + return &DialSync{ + dials: make(map[peer.ID]*activeDial), + dialFunc: dfn, + } +} + +// DialSync is a dial synchronization helper that ensures that at most one dial +// to any given peer is active at any given time. +type DialSync struct { + dials map[peer.ID]*activeDial + dialsLk sync.Mutex + dialFunc DialFunc +} + +type activeDial struct { + id peer.ID + refCnt int + refCntLk sync.Mutex + cancel func() + + err error + conn *Conn + waitch chan struct{} + + ds *DialSync +} + +func (ad *activeDial) wait(ctx context.Context) (*Conn, error) { + defer ad.decref() + select { + case <-ad.waitch: + return ad.conn, ad.err + case <-ctx.Done(): + return nil, ctx.Err() + } +} + +func (ad *activeDial) incref() { + ad.refCntLk.Lock() + defer ad.refCntLk.Unlock() + ad.refCnt++ +} + +func (ad *activeDial) decref() { + ad.refCntLk.Lock() + ad.refCnt-- + maybeZero := (ad.refCnt <= 0) + ad.refCntLk.Unlock() + + // make sure to always take locks in correct order. + if maybeZero { + ad.ds.dialsLk.Lock() + ad.refCntLk.Lock() + // check again after lock swap drop to make sure nobody else called incref + // in between locks + if ad.refCnt <= 0 { + ad.cancel() + delete(ad.ds.dials, ad.id) + } + ad.refCntLk.Unlock() + ad.ds.dialsLk.Unlock() + } +} + +func (ad *activeDial) start(ctx context.Context) { + ad.conn, ad.err = ad.ds.dialFunc(ctx, ad.id) + close(ad.waitch) + ad.cancel() +} + +func (ds *DialSync) getActiveDial(p peer.ID) *activeDial { + ds.dialsLk.Lock() + defer ds.dialsLk.Unlock() + + actd, ok := ds.dials[p] + if !ok { + adctx, cancel := context.WithCancel(context.Background()) + actd = &activeDial{ + id: p, + cancel: cancel, + waitch: make(chan struct{}), + ds: ds, + } + ds.dials[p] = actd + + go actd.start(adctx) + } + + // increase ref count before dropping dialsLk + actd.incref() + + return actd +} + +// DialLock initiates a dial to the given peer if there are none in progress +// then waits for the dial to that peer to complete. +func (ds *DialSync) DialLock(ctx context.Context, p peer.ID) (*Conn, error) { + return ds.getActiveDial(p).wait(ctx) +} + +// CancelDial cancels all in-progress dials to the given peer. +func (ds *DialSync) CancelDial(p peer.ID) { + ds.dialsLk.Lock() + defer ds.dialsLk.Unlock() + if ad, ok := ds.dials[p]; ok { + ad.cancel() + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/go.mod b/vendor/github.com/libp2p/go-libp2p-swarm/go.mod new file mode 100644 index 00000000..15b27b0b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/go.mod @@ -0,0 +1,30 @@ +module github.com/libp2p/go-libp2p-swarm + +require ( + github.com/hashicorp/go-multierror v1.0.0 + github.com/ipfs/go-log v0.0.1 + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-addr-util v0.0.1 + github.com/libp2p/go-conn-security-multistream v0.0.1 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-loggables v0.0.1 + github.com/libp2p/go-libp2p-metrics v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.2 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.1 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-libp2p-secio v0.0.1 + github.com/libp2p/go-libp2p-transport v0.0.4 + github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 + github.com/libp2p/go-maddr-filter v0.0.1 + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/libp2p/go-tcp-transport v0.0.1 + github.com/libp2p/go-testutil v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible + github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible + github.com/whyrusleeping/mafmt v1.2.8 + github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 + github.com/whyrusleeping/yamux v1.1.5 // indirect +) diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/go.sum b/vendor/github.com/libp2p/go-libp2p-swarm/go.sum new file mode 100644 index 00000000..2fae010f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/go.sum @@ -0,0 +1,193 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= +github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/limiter.go b/vendor/github.com/libp2p/go-libp2p-swarm/limiter.go new file mode 100644 index 00000000..bd4ab572 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/limiter.go @@ -0,0 +1,225 @@ +package swarm + +import ( + "context" + "os" + "strconv" + "sync" + "time" + + addrutil "github.com/libp2p/go-addr-util" + peer "github.com/libp2p/go-libp2p-peer" + transport "github.com/libp2p/go-libp2p-transport" + ma "github.com/multiformats/go-multiaddr" +) + +type dialResult struct { + Conn transport.Conn + Addr ma.Multiaddr + Err error +} + +type dialJob struct { + addr ma.Multiaddr + peer peer.ID + ctx context.Context + resp chan dialResult +} + +func (dj *dialJob) cancelled() bool { + return dj.ctx.Err() != nil +} + +func (dj *dialJob) dialTimeout() time.Duration { + timeout := transport.DialTimeout + if lowTimeoutFilters.AddrBlocked(dj.addr) { + timeout = DialTimeoutLocal + } + + return timeout +} + +type dialLimiter struct { + lk sync.Mutex + + fdConsuming int + fdLimit int + waitingOnFd []*dialJob + + dialFunc dialfunc + + activePerPeer map[peer.ID]int + perPeerLimit int + waitingOnPeerLimit map[peer.ID][]*dialJob +} + +type dialfunc func(context.Context, peer.ID, ma.Multiaddr) (transport.Conn, error) + +func newDialLimiter(df dialfunc) *dialLimiter { + fd := ConcurrentFdDials + if env := os.Getenv("LIBP2P_SWARM_FD_LIMIT"); env != "" { + if n, err := strconv.ParseInt(env, 10, 32); err == nil { + fd = int(n) + } + } + return newDialLimiterWithParams(df, fd, DefaultPerPeerRateLimit) +} + +func newDialLimiterWithParams(df dialfunc, fdLimit, perPeerLimit int) *dialLimiter { + return &dialLimiter{ + fdLimit: fdLimit, + perPeerLimit: perPeerLimit, + waitingOnPeerLimit: make(map[peer.ID][]*dialJob), + activePerPeer: make(map[peer.ID]int), + dialFunc: df, + } +} + +// freeFDToken frees FD token and if there are any schedules another waiting dialJob +// in it's place +func (dl *dialLimiter) freeFDToken() { + log.Debugf("[limiter] freeing FD token; waiting: %d; consuming: %d", len(dl.waitingOnFd), dl.fdConsuming) + dl.fdConsuming-- + + for len(dl.waitingOnFd) > 0 { + next := dl.waitingOnFd[0] + dl.waitingOnFd[0] = nil // clear out memory + dl.waitingOnFd = dl.waitingOnFd[1:] + + if len(dl.waitingOnFd) == 0 { + // clear out memory. + dl.waitingOnFd = nil + } + + // Skip over canceled dials instead of queuing up a goroutine. + if next.cancelled() { + dl.freePeerToken(next) + continue + } + dl.fdConsuming++ + + // we already have activePerPeer token at this point so we can just dial + go dl.executeDial(next) + return + } +} + +func (dl *dialLimiter) freePeerToken(dj *dialJob) { + log.Debugf("[limiter] freeing peer token; peer %s; addr: %s; active for peer: %d; waiting on peer limit: %d", + dj.peer, dj.addr, dl.activePerPeer[dj.peer], len(dl.waitingOnPeerLimit[dj.peer])) + // release tokens in reverse order than we take them + dl.activePerPeer[dj.peer]-- + if dl.activePerPeer[dj.peer] == 0 { + delete(dl.activePerPeer, dj.peer) + } + + waitlist := dl.waitingOnPeerLimit[dj.peer] + for len(waitlist) > 0 { + next := waitlist[0] + waitlist[0] = nil // clear out memory + waitlist = waitlist[1:] + + if len(waitlist) == 0 { + delete(dl.waitingOnPeerLimit, next.peer) + } else { + dl.waitingOnPeerLimit[next.peer] = waitlist + } + + if next.cancelled() { + continue + } + + dl.activePerPeer[next.peer]++ // just kidding, we still want this token + + dl.addCheckFdLimit(next) + return + } +} + +func (dl *dialLimiter) finishedDial(dj *dialJob) { + dl.lk.Lock() + defer dl.lk.Unlock() + + if addrutil.IsFDCostlyTransport(dj.addr) { + dl.freeFDToken() + } + + dl.freePeerToken(dj) +} + +func (dl *dialLimiter) addCheckFdLimit(dj *dialJob) { + if addrutil.IsFDCostlyTransport(dj.addr) { + if dl.fdConsuming >= dl.fdLimit { + log.Debugf("[limiter] blocked dial waiting on FD token; peer: %s; addr: %s; consuming: %d; "+ + "limit: %d; waiting: %d", dj.peer, dj.addr, dl.fdConsuming, dl.fdLimit, len(dl.waitingOnFd)) + dl.waitingOnFd = append(dl.waitingOnFd, dj) + return + } + + log.Debugf("[limiter] taking FD token: peer: %s; addr: %s; prev consuming: %d", + dj.peer, dj.addr, dl.fdConsuming) + // take token + dl.fdConsuming++ + } + + log.Debugf("[limiter] executing dial; peer: %s; addr: %s; FD consuming: %d; waiting: %d", + dj.peer, dj.addr, dl.fdConsuming, len(dl.waitingOnFd)) + go dl.executeDial(dj) +} + +func (dl *dialLimiter) addCheckPeerLimit(dj *dialJob) { + if dl.activePerPeer[dj.peer] >= dl.perPeerLimit { + log.Debugf("[limiter] blocked dial waiting on peer limit; peer: %s; addr: %s; active: %d; "+ + "peer limit: %d; waiting: %d", dj.peer, dj.addr, dl.activePerPeer[dj.peer], dl.perPeerLimit, + len(dl.waitingOnPeerLimit[dj.peer])) + wlist := dl.waitingOnPeerLimit[dj.peer] + dl.waitingOnPeerLimit[dj.peer] = append(wlist, dj) + return + } + dl.activePerPeer[dj.peer]++ + + dl.addCheckFdLimit(dj) +} + +// AddDialJob tries to take the needed tokens for starting the given dial job. +// If it acquires all needed tokens, it immediately starts the dial, otherwise +// it will put it on the waitlist for the requested token. +func (dl *dialLimiter) AddDialJob(dj *dialJob) { + dl.lk.Lock() + defer dl.lk.Unlock() + + log.Debugf("[limiter] adding a dial job through limiter: %v", dj.addr) + dl.addCheckPeerLimit(dj) +} + +func (dl *dialLimiter) clearAllPeerDials(p peer.ID) { + dl.lk.Lock() + defer dl.lk.Unlock() + delete(dl.waitingOnPeerLimit, p) + log.Debugf("[limiter] clearing all peer dials: %v", p) + // NB: the waitingOnFd list doesn't need to be cleaned out here, we will + // remove them as we encounter them because they are 'cancelled' at this + // point +} + +// executeDial calls the dialFunc, and reports the result through the response +// channel when finished. Once the response is sent it also releases all tokens +// it held during the dial. +func (dl *dialLimiter) executeDial(j *dialJob) { + defer dl.finishedDial(j) + if j.cancelled() { + return + } + + dctx, cancel := context.WithTimeout(j.ctx, j.dialTimeout()) + defer cancel() + + con, err := dl.dialFunc(dctx, j.peer, j.addr) + select { + case j.resp <- dialResult{Conn: con, Addr: j.addr, Err: err}: + case <-j.ctx.Done(): + if err == nil { + con.Close() + } + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/package.json b/vendor/github.com/libp2p/go-libp2p-swarm/package.json new file mode 100644 index 00000000..8bd05c24 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/package.json @@ -0,0 +1,167 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-swarm/issues" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-swarm" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs", + "name": "go-libp2p-peerstore", + "version": "2.0.19" + }, + { + "author": "whyrusleeping", + "hash": "QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP", + "name": "goprocess", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmNQWMWWBmkAcaVEspSNwYB95axzKFhYTdqZtABA2zXoPu", + "name": "go-libp2p-transport", + "version": "3.0.27" + }, + { + "author": "whyrusleeping", + "hash": "QmUWkEreTZdTxUVDfpQ2fLywJh6dinfEYahEoBDTMQ2hks", + "name": "go-smux-multistream", + "version": "2.0.3" + }, + { + "author": "whyrusleeping", + "hash": "QmcqwxmCsWjNvQFzeZ4rzYVycWDY8C7Ejtiw2G3djArQzf", + "name": "go-smux-yamux", + "version": "2.0.10" + }, + { + "author": "whyrusleeping", + "hash": "QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv", + "name": "multiaddr-filter", + "version": "1.0.2" + }, + { + "author": "whyrusleeping", + "hash": "QmSwVwKUWzdf3ppM3FbBbpuqHUNtUFJPQQdfvKmgZoz2gR", + "name": "go-libp2p-metrics", + "version": "2.1.14" + }, + { + "author": "whyrusleeping", + "hash": "QmTGiDkw4eeKq31wwpQRk5GwWiReaxrcTQLuCCLWgfKo5M", + "name": "go-tcp-transport", + "version": "2.0.28" + }, + { + "author": "whyrusleeping", + "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", + "name": "go-stream-muxer", + "version": "3.1.0" + }, + { + "author": "whyrusleeping", + "hash": "QmT6C5ebDy92zyRzdmSNyda5q7zkNXy68X47RDJiHpvaxd", + "name": "go-maddr-filter", + "version": "1.1.13" + }, + { + "author": "whyrusleeping", + "hash": "QmZomXpA4HrYKRV2ftnE5odWMT2JNnhAXTvEyQrzXrnyEX", + "name": "go-addr-util", + "version": "2.0.11" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmWapVoHjtKhn4MhvKNoPTkJKADFGACfXPFnt7combwp5W", + "name": "go-testutil", + "version": "1.2.19" + }, + { + "author": "whyrusleeping", + "hash": "QmUbSLukzZYZvEYxynj9Dtd1WrGLxxg9R4U68vCMPWHmRU", + "name": "go-libp2p-loggables", + "version": "1.1.33" + }, + { + "author": "multiformats", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN", + "name": "go-libp2p-protocol", + "version": "1.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmUrZZavcArYChpibtP8KgQXsAEpvgzUk73B2oj3HLbWc4", + "name": "mafmt", + "version": "1.2.11" + }, + { + "author": "stebalien", + "hash": "QmZWmFkMm28sWeDr5Xh1LexdKBGYGp946MNCfgtLqfX73z", + "name": "go-conn-security-multistream", + "version": "0.1.26" + }, + { + "author": "steb", + "hash": "QmeqC5shQjEBRG9B8roZqQCJ9xb7Pq6AbWxJFMyLgqBBWh", + "name": "go-libp2p-transport-upgrader", + "version": "0.1.28" + }, + { + "author": "whyrusleeping", + "hash": "QmSVaJe1aRjc78cZARTtf4pqvXERYwihyYhZWoVWceHnsK", + "name": "go-libp2p-secio", + "version": "2.0.30" + }, + { + "author": "hashicorp", + "hash": "QmfGQp6VVqdPCDyzEM6EGwMY74YPabTSEoQWHUxZuCSWj3", + "name": "go-multierror", + "version": "0.1.0" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "MIT", + "name": "go-libp2p-swarm", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.0.35" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm.go new file mode 100644 index 00000000..1094e72e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm.go @@ -0,0 +1,504 @@ +package swarm + +import ( + "context" + "errors" + "fmt" + "strings" + "sync" + "sync/atomic" + "time" + + logging "github.com/ipfs/go-log" + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + metrics "github.com/libp2p/go-libp2p-metrics" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + transport "github.com/libp2p/go-libp2p-transport" + filter "github.com/libp2p/go-maddr-filter" + mafilter "github.com/whyrusleeping/multiaddr-filter" +) + +// DialTimeoutLocal is the maximum duration a Dial to local network address +// is allowed to take. +// This includes the time between dialing the raw network connection, +// protocol selection as well the handshake, if applicable. +var DialTimeoutLocal = 5 * time.Second + +var log = logging.Logger("swarm2") + +// ErrSwarmClosed is returned when one attempts to operate on a closed swarm. +var ErrSwarmClosed = errors.New("swarm closed") + +// ErrAddrFiltered is returned when trying to register a connection to a +// filtered address. You shouldn't see this error unless some underlying +// transport is misbehaving. +var ErrAddrFiltered = errors.New("address filtered") + +// Swarm is a connection muxer, allowing connections to other peers to +// be opened and closed, while still using the same Chan for all +// communication. The Chan sends/receives Messages, which note the +// destination or source Peer. +type Swarm struct { + // Close refcount. This allows us to fully wait for the swarm to be torn + // down before continuing. + refs sync.WaitGroup + + local peer.ID + peers pstore.Peerstore + + conns struct { + sync.RWMutex + m map[peer.ID][]*Conn + } + + listeners struct { + sync.RWMutex + m map[transport.Listener]struct{} + } + + notifs struct { + sync.RWMutex + m map[inet.Notifiee]struct{} + } + + transports struct { + sync.RWMutex + m map[int]transport.Transport + } + + // new connection and stream handlers + connh atomic.Value + streamh atomic.Value + + // dialing helpers + dsync *DialSync + backf DialBackoff + limiter *dialLimiter + + // filters for addresses that shouldnt be dialed (or accepted) + Filters *filter.Filters + + proc goprocess.Process + ctx context.Context + bwc metrics.Reporter +} + +// NewSwarm constructs a Swarm +func NewSwarm(ctx context.Context, local peer.ID, peers pstore.Peerstore, bwc metrics.Reporter) *Swarm { + s := &Swarm{ + local: local, + peers: peers, + bwc: bwc, + Filters: filter.NewFilters(), + } + + s.conns.m = make(map[peer.ID][]*Conn) + s.listeners.m = make(map[transport.Listener]struct{}) + s.transports.m = make(map[int]transport.Transport) + s.notifs.m = make(map[inet.Notifiee]struct{}) + + s.dsync = NewDialSync(s.doDial) + s.limiter = newDialLimiter(s.dialAddr) + s.proc = goprocessctx.WithContextAndTeardown(ctx, s.teardown) + s.ctx = goprocessctx.OnClosingContext(s.proc) + + return s +} + +func (s *Swarm) teardown() error { + // Prevents new connections and/or listeners from being added to the swarm. + + s.listeners.Lock() + listeners := s.listeners.m + s.listeners.m = nil + s.listeners.Unlock() + + s.conns.Lock() + conns := s.conns.m + s.conns.m = nil + s.conns.Unlock() + + // Lots of goroutines but we might as well do this in parallel. We want to shut down as fast as + // possible. + + for l := range listeners { + go func(l transport.Listener) { + if err := l.Close(); err != nil { + log.Errorf("error when shutting down listener: %s", err) + } + }(l) + } + + for _, cs := range conns { + for _, c := range cs { + go func(c *Conn) { + if err := c.Close(); err != nil { + log.Errorf("error when shutting down connection: %s", err) + } + }(c) + } + } + + // Wait for everything to finish. + s.refs.Wait() + + return nil +} + +// AddAddrFilter adds a multiaddr filter to the set of filters the swarm will use to determine which +// addresses not to dial to. +func (s *Swarm) AddAddrFilter(f string) error { + m, err := mafilter.NewMask(f) + if err != nil { + return err + } + + s.Filters.AddDialFilter(m) + return nil +} + +// Process returns the Process of the swarm +func (s *Swarm) Process() goprocess.Process { + return s.proc +} + +func (s *Swarm) addConn(tc transport.Conn, dir inet.Direction) (*Conn, error) { + // The underlying transport (or the dialer) *should* filter it's own + // connections but we should double check anyways. + raddr := tc.RemoteMultiaddr() + if s.Filters.AddrBlocked(raddr) { + tc.Close() + return nil, ErrAddrFiltered + } + + p := tc.RemotePeer() + + // Add the public key. + if pk := tc.RemotePublicKey(); pk != nil { + s.peers.AddPubKey(p, pk) + } + + // Clear any backoffs + s.backf.Clear(p) + + // Finally, add the peer. + s.conns.Lock() + // Check if we're still online + if s.conns.m == nil { + s.conns.Unlock() + tc.Close() + return nil, ErrSwarmClosed + } + + // Wrap and register the connection. + stat := inet.Stat{Direction: dir} + c := &Conn{ + conn: tc, + swarm: s, + stat: stat, + } + c.streams.m = make(map[*Stream]struct{}) + s.conns.m[p] = append(s.conns.m[p], c) + + // Add two swarm refs: + // * One will be decremented after the close notifications fire in Conn.doClose + // * The other will be decremented when Conn.start exits. + s.refs.Add(2) + + // Take the notification lock before releasing the conns lock to block + // Disconnect notifications until after the Connect notifications done. + c.notifyLk.Lock() + s.conns.Unlock() + + // We have a connection now. Cancel all other in-progress dials. + // This should be fast, no reason to wait till later. + s.dsync.CancelDial(p) + + s.notifyAll(func(f inet.Notifiee) { + f.Connected(s, c) + }) + c.notifyLk.Unlock() + + c.start() + + // TODO: Get rid of this. We use it for identify but that happen much + // earlier (really, inside the transport and, if not then, during the + // notifications). + if h := s.ConnHandler(); h != nil { + go h(c) + } + + return c, nil +} + +// Peerstore returns this swarms internal Peerstore. +func (s *Swarm) Peerstore() pstore.Peerstore { + return s.peers +} + +// Context returns the context of the swarm +func (s *Swarm) Context() context.Context { + return s.ctx +} + +// Close stops the Swarm. +func (s *Swarm) Close() error { + return s.proc.Close() +} + +// TODO: We probably don't need the conn handlers. + +// SetConnHandler assigns the handler for new connections. +// You will rarely use this. See SetStreamHandler +func (s *Swarm) SetConnHandler(handler inet.ConnHandler) { + s.connh.Store(handler) +} + +// ConnHandler gets the handler for new connections. +func (s *Swarm) ConnHandler() inet.ConnHandler { + handler, _ := s.connh.Load().(inet.ConnHandler) + return handler +} + +// SetStreamHandler assigns the handler for new streams. +func (s *Swarm) SetStreamHandler(handler inet.StreamHandler) { + s.streamh.Store(handler) +} + +// StreamHandler gets the handler for new streams. +func (s *Swarm) StreamHandler() inet.StreamHandler { + handler, _ := s.streamh.Load().(inet.StreamHandler) + return handler +} + +// NewStream creates a new stream on any available connection to peer, dialing +// if necessary. +func (s *Swarm) NewStream(ctx context.Context, p peer.ID) (inet.Stream, error) { + log.Debugf("[%s] opening stream to peer [%s]", s.local, p) + + // Algorithm: + // 1. Find the best connection, otherwise, dial. + // 2. Try opening a stream. + // 3. If the underlying connection is, in fact, closed, close the outer + // connection and try again. We do this in case we have a closed + // connection but don't notice it until we actually try to open a + // stream. + // + // Note: We only dial once. + // + // TODO: Try all connections even if we get an error opening a stream on + // a non-closed connection. + dials := 0 + for { + c := s.bestConnToPeer(p) + if c == nil { + if nodial, _ := inet.GetNoDial(ctx); nodial { + return nil, inet.ErrNoConn + } + + if dials >= DialAttempts { + return nil, errors.New("max dial attempts exceeded") + } + dials++ + + var err error + c, err = s.dialPeer(ctx, p) + if err != nil { + return nil, err + } + } + s, err := c.NewStream() + if err != nil { + if c.conn.IsClosed() { + continue + } + return nil, err + } + return s, nil + } +} + +// ConnsToPeer returns all the live connections to peer. +func (s *Swarm) ConnsToPeer(p peer.ID) []inet.Conn { + // TODO: Consider sorting the connection list best to worst. Currently, + // it's sorted oldest to newest. + s.conns.RLock() + defer s.conns.RUnlock() + conns := s.conns.m[p] + output := make([]inet.Conn, len(conns)) + for i, c := range conns { + output[i] = c + } + return output +} + +// bestConnToPeer returns the best connection to peer. +func (s *Swarm) bestConnToPeer(p peer.ID) *Conn { + // Selects the best connection we have to the peer. + // TODO: Prefer some transports over others. Currently, we just select + // the newest non-closed connection with the most streams. + s.conns.RLock() + defer s.conns.RUnlock() + + var best *Conn + bestLen := 0 + for _, c := range s.conns.m[p] { + if c.conn.IsClosed() { + // We *will* garbage collect this soon anyways. + continue + } + c.streams.Lock() + cLen := len(c.streams.m) + c.streams.Unlock() + + if cLen >= bestLen { + best = c + bestLen = cLen + } + + } + return best +} + +// Connectedness returns our "connectedness" state with the given peer. +// +// To check if we have an open connection, use `s.Connectedness(p) == +// inet.Connected`. +func (s *Swarm) Connectedness(p peer.ID) inet.Connectedness { + if s.bestConnToPeer(p) != nil { + return inet.Connected + } + return inet.NotConnected +} + +// Conns returns a slice of all connections. +func (s *Swarm) Conns() []inet.Conn { + s.conns.RLock() + defer s.conns.RUnlock() + + conns := make([]inet.Conn, 0, len(s.conns.m)) + for _, cs := range s.conns.m { + for _, c := range cs { + conns = append(conns, c) + } + } + return conns +} + +// ClosePeer closes all connections to the given peer. +func (s *Swarm) ClosePeer(p peer.ID) error { + conns := s.ConnsToPeer(p) + switch len(conns) { + case 0: + return nil + case 1: + return conns[0].Close() + default: + errCh := make(chan error) + for _, c := range conns { + go func(c inet.Conn) { + errCh <- c.Close() + }(c) + } + + var errs []string + for _ = range conns { + err := <-errCh + if err != nil { + errs = append(errs, err.Error()) + } + } + if len(errs) > 0 { + return fmt.Errorf("when disconnecting from peer %s: %s", p, strings.Join(errs, ", ")) + } + return nil + } +} + +// Peers returns a copy of the set of peers swarm is connected to. +func (s *Swarm) Peers() []peer.ID { + s.conns.RLock() + defer s.conns.RUnlock() + peers := make([]peer.ID, 0, len(s.conns.m)) + for p := range s.conns.m { + peers = append(peers, p) + } + + return peers +} + +// LocalPeer returns the local peer swarm is associated to. +func (s *Swarm) LocalPeer() peer.ID { + return s.local +} + +// Backoff returns the DialBackoff object for this swarm. +func (s *Swarm) Backoff() *DialBackoff { + return &s.backf +} + +// notifyAll sends a signal to all Notifiees +func (s *Swarm) notifyAll(notify func(inet.Notifiee)) { + var wg sync.WaitGroup + + s.notifs.RLock() + wg.Add(len(s.notifs.m)) + for f := range s.notifs.m { + go func(f inet.Notifiee) { + defer wg.Done() + notify(f) + }(f) + } + + wg.Wait() + s.notifs.RUnlock() +} + +// Notify signs up Notifiee to receive signals when events happen +func (s *Swarm) Notify(f inet.Notifiee) { + s.notifs.Lock() + s.notifs.m[f] = struct{}{} + s.notifs.Unlock() +} + +// StopNotify unregisters Notifiee fromr receiving signals +func (s *Swarm) StopNotify(f inet.Notifiee) { + s.notifs.Lock() + delete(s.notifs.m, f) + s.notifs.Unlock() +} + +func (s *Swarm) removeConn(c *Conn) { + p := c.RemotePeer() + + s.conns.Lock() + defer s.conns.Unlock() + cs := s.conns.m[p] + for i, ci := range cs { + if ci == c { + if len(cs) == 1 { + delete(s.conns.m, p) + } else { + // NOTE: We're intentionally preserving order. + // This way, connections to a peer are always + // sorted oldest to newest. + copy(cs[i:], cs[i+1:]) + cs[len(cs)-1] = nil + s.conns.m[p] = cs[:len(cs)-1] + } + return + } + } +} + +// String returns a string representation of Network. +func (s *Swarm) String() string { + return fmt.Sprintf("", s.LocalPeer()) +} + +// Swarm is a Network. +var _ inet.Network = (*Swarm)(nil) +var _ transport.Network = (*Swarm)(nil) diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm_addr.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_addr.go new file mode 100644 index 00000000..c86d58bb --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_addr.go @@ -0,0 +1,24 @@ +package swarm + +import ( + addrutil "github.com/libp2p/go-addr-util" + ma "github.com/multiformats/go-multiaddr" +) + +// ListenAddresses returns a list of addresses at which this swarm listens. +func (s *Swarm) ListenAddresses() []ma.Multiaddr { + s.listeners.RLock() + defer s.listeners.RUnlock() + addrs := make([]ma.Multiaddr, 0, len(s.listeners.m)) + for l := range s.listeners.m { + addrs = append(addrs, l.Multiaddr()) + } + return addrs +} + +// InterfaceListenAddresses returns a list of addresses at which this swarm +// listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to +// use the known local interfaces. +func (s *Swarm) InterfaceListenAddresses() ([]ma.Multiaddr, error) { + return addrutil.ResolveUnspecifiedAddresses(s.ListenAddresses(), nil) +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm_conn.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_conn.go new file mode 100644 index 00000000..26a7794d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_conn.go @@ -0,0 +1,222 @@ +package swarm + +import ( + "errors" + "fmt" + "sync" + + ic "github.com/libp2p/go-libp2p-crypto" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + transport "github.com/libp2p/go-libp2p-transport" + smux "github.com/libp2p/go-stream-muxer" + ma "github.com/multiformats/go-multiaddr" +) + +// TODO: Put this elsewhere. + +// ErrConnClosed is returned when operating on a closed connection. +var ErrConnClosed = errors.New("connection closed") + +// Conn is the connection type used by swarm. In general, you won't use this +// type directly. +type Conn struct { + conn transport.Conn + swarm *Swarm + + closeOnce sync.Once + err error + + notifyLk sync.Mutex + + streams struct { + sync.Mutex + m map[*Stream]struct{} + } + + stat inet.Stat +} + +// Close closes this connection. +// +// Note: This method won't wait for the close notifications to finish as that +// would create a deadlock when called from an open notification (because all +// open notifications must finish before we can fire off the close +// notifications). +func (c *Conn) Close() error { + c.closeOnce.Do(c.doClose) + return c.err +} + +func (c *Conn) doClose() { + c.swarm.removeConn(c) + + // Prevent new streams from opening. + c.streams.Lock() + streams := c.streams.m + c.streams.m = nil + c.streams.Unlock() + + c.err = c.conn.Close() + + // This is just for cleaning up state. The connection has already been closed. + // We *could* optimize this but it really isn't worth it. + for s := range streams { + s.Reset() + } + + // do this in a goroutine to avoid deadlocking if we call close in an open notification. + go func() { + // prevents us from issuing close notifications before finishing the open notifications + c.notifyLk.Lock() + defer c.notifyLk.Unlock() + + c.swarm.notifyAll(func(f inet.Notifiee) { + f.Disconnected(c.swarm, c) + }) + c.swarm.refs.Done() // taken in Swarm.addConn + }() +} + +func (c *Conn) removeStream(s *Stream) { + c.streams.Lock() + delete(c.streams.m, s) + c.streams.Unlock() +} + +// listens for new streams. +// +// The caller must take a swarm ref before calling. This function decrements the +// swarm ref count. +func (c *Conn) start() { + go func() { + defer c.swarm.refs.Done() + defer c.Close() + + for { + ts, err := c.conn.AcceptStream() + if err != nil { + return + } + c.swarm.refs.Add(1) + go func() { + s, err := c.addStream(ts, inet.DirInbound) + + // Don't defer this. We don't want to block + // swarm shutdown on the connection handler. + c.swarm.refs.Done() + + // We only get an error here when the swarm is closed or closing. + if err != nil { + return + } + + if h := c.swarm.StreamHandler(); h != nil { + h(s) + } + }() + } + }() +} + +func (c *Conn) String() string { + return fmt.Sprintf( + " %s (%s)>", + c.conn.Transport(), + c.conn.LocalMultiaddr(), + c.conn.LocalPeer().Pretty(), + c.conn.RemoteMultiaddr(), + c.conn.RemotePeer().Pretty(), + ) +} + +// LocalMultiaddr is the Multiaddr on this side +func (c *Conn) LocalMultiaddr() ma.Multiaddr { + return c.conn.LocalMultiaddr() +} + +// LocalPeer is the Peer on our side of the connection +func (c *Conn) LocalPeer() peer.ID { + return c.conn.LocalPeer() +} + +// RemoteMultiaddr is the Multiaddr on the remote side +func (c *Conn) RemoteMultiaddr() ma.Multiaddr { + return c.conn.RemoteMultiaddr() +} + +// RemotePeer is the Peer on the remote side +func (c *Conn) RemotePeer() peer.ID { + return c.conn.RemotePeer() +} + +// LocalPrivateKey is the public key of the peer on this side +func (c *Conn) LocalPrivateKey() ic.PrivKey { + return c.conn.LocalPrivateKey() +} + +// RemotePublicKey is the public key of the peer on the remote side +func (c *Conn) RemotePublicKey() ic.PubKey { + return c.conn.RemotePublicKey() +} + +// Stat returns metadata pertaining to this connection +func (c *Conn) Stat() inet.Stat { + return c.stat +} + +// NewStream returns a new Stream from this connection +func (c *Conn) NewStream() (inet.Stream, error) { + ts, err := c.conn.OpenStream() + if err != nil { + return nil, err + } + return c.addStream(ts, inet.DirOutbound) +} + +func (c *Conn) addStream(ts smux.Stream, dir inet.Direction) (*Stream, error) { + c.streams.Lock() + // Are we still online? + if c.streams.m == nil { + c.streams.Unlock() + ts.Reset() + return nil, ErrConnClosed + } + + // Wrap and register the stream. + stat := inet.Stat{Direction: dir} + s := &Stream{ + stream: ts, + conn: c, + stat: stat, + } + c.streams.m[s] = struct{}{} + + // Released once the stream disconnect notifications have finished + // firing (in Swarm.remove). + c.swarm.refs.Add(1) + + // Take the notification lock before releasing the streams lock to block + // StreamClose notifications until after the StreamOpen notifications + // done. + s.notifyLk.Lock() + c.streams.Unlock() + + c.swarm.notifyAll(func(f inet.Notifiee) { + f.OpenedStream(c.swarm, s) + }) + s.notifyLk.Unlock() + + return s, nil +} + +// GetStreams returns the streams associated with this connection. +func (c *Conn) GetStreams() []inet.Stream { + c.streams.Lock() + defer c.streams.Unlock() + streams := make([]inet.Stream, 0, len(c.streams.m)) + for s := range c.streams.m { + streams = append(streams, s) + } + return streams +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm_dial.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_dial.go new file mode 100644 index 00000000..d4b31552 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_dial.go @@ -0,0 +1,466 @@ +package swarm + +import ( + "context" + "errors" + "fmt" + "sync" + "time" + + "github.com/hashicorp/go-multierror" + + logging "github.com/ipfs/go-log" + addrutil "github.com/libp2p/go-addr-util" + lgbl "github.com/libp2p/go-libp2p-loggables" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + transport "github.com/libp2p/go-libp2p-transport" + ma "github.com/multiformats/go-multiaddr" +) + +// Diagram of dial sync: +// +// many callers of Dial() synched w. dials many addrs results to callers +// ----------------------\ dialsync use earliest /-------------- +// -----------------------\ |----------\ /---------------- +// ------------------------>------------<------- >---------<----------------- +// -----------------------| \----x \---------------- +// ----------------------| \-----x \--------------- +// any may fail if no addr at end +// retry dialAttempt x + +var ( + // ErrDialBackoff is returned by the backoff code when a given peer has + // been dialed too frequently + ErrDialBackoff = errors.New("dial backoff") + + // ErrDialFailed is returned when connecting to a peer has ultimately failed + ErrDialFailed = errors.New("dial attempt failed") + + // ErrDialToSelf is returned if we attempt to dial our own peer + ErrDialToSelf = errors.New("dial to self attempted") + + // ErrNoTransport is returned when we don't know a transport for the + // given multiaddr. + ErrNoTransport = errors.New("no transport for protocol") +) + +// DialAttempts governs how many times a goroutine will try to dial a given peer. +// Note: this is down to one, as we have _too many dials_ atm. To add back in, +// add loop back in Dial(.) +const DialAttempts = 1 + +// ConcurrentFdDials is the number of concurrent outbound dials over transports +// that consume file descriptors +const ConcurrentFdDials = 160 + +// DefaultPerPeerRateLimit is the number of concurrent outbound dials to make +// per peer +const DefaultPerPeerRateLimit = 8 + +// dialbackoff is a struct used to avoid over-dialing the same, dead peers. +// Whenever we totally time out on a peer (all three attempts), we add them +// to dialbackoff. Then, whenevers goroutines would _wait_ (dialsync), they +// check dialbackoff. If it's there, they don't wait and exit promptly with +// an error. (the single goroutine that is actually dialing continues to +// dial). If a dial is successful, the peer is removed from backoff. +// Example: +// +// for { +// if ok, wait := dialsync.Lock(p); !ok { +// if backoff.Backoff(p) { +// return errDialFailed +// } +// <-wait +// continue +// } +// defer dialsync.Unlock(p) +// c, err := actuallyDial(p) +// if err != nil { +// dialbackoff.AddBackoff(p) +// continue +// } +// dialbackoff.Clear(p) +// } +// + +// DialBackoff is a type for tracking peer dial backoffs. +// +// * It's safe to use its zero value. +// * It's thread-safe. +// * It's *not* safe to move this type after using. +type DialBackoff struct { + entries map[peer.ID]*backoffPeer + lock sync.RWMutex +} + +type backoffPeer struct { + tries int + until time.Time +} + +func (db *DialBackoff) init() { + if db.entries == nil { + db.entries = make(map[peer.ID]*backoffPeer) + } +} + +// Backoff returns whether the client should backoff from dialing +// peer p +func (db *DialBackoff) Backoff(p peer.ID) (backoff bool) { + db.lock.Lock() + defer db.lock.Unlock() + db.init() + bp, found := db.entries[p] + if found && time.Now().Before(bp.until) { + return true + } + + return false +} + +// BackoffBase is the base amount of time to backoff (default: 5s). +var BackoffBase = time.Second * 5 + +// BackoffCoef is the backoff coefficient (default: 1s). +var BackoffCoef = time.Second + +// BackoffMax is the maximum backoff time (default: 5m). +var BackoffMax = time.Minute * 5 + +// AddBackoff lets other nodes know that we've entered backoff with +// peer p, so dialers should not wait unnecessarily. We still will +// attempt to dial with one goroutine, in case we get through. +// +// Backoff is not exponential, it's quadratic and computed according to the +// following formula: +// +// BackoffBase + BakoffCoef * PriorBackoffs^2 +// +// Where PriorBackoffs is the number of previous backoffs. +func (db *DialBackoff) AddBackoff(p peer.ID) { + db.lock.Lock() + defer db.lock.Unlock() + db.init() + bp, ok := db.entries[p] + if !ok { + db.entries[p] = &backoffPeer{ + tries: 1, + until: time.Now().Add(BackoffBase), + } + return + } + + backoffTime := BackoffBase + BackoffCoef*time.Duration(bp.tries*bp.tries) + if backoffTime > BackoffMax { + backoffTime = BackoffMax + } + bp.until = time.Now().Add(backoffTime) + bp.tries++ +} + +// Clear removes a backoff record. Clients should call this after a +// successful Dial. +func (db *DialBackoff) Clear(p peer.ID) { + db.lock.Lock() + defer db.lock.Unlock() + db.init() + delete(db.entries, p) +} + +// DialPeer connects to a peer. +// +// The idea is that the client of Swarm does not need to know what network +// the connection will happen over. Swarm can use whichever it choses. +// This allows us to use various transport protocols, do NAT traversal/relay, +// etc. to achieve connection. +func (s *Swarm) DialPeer(ctx context.Context, p peer.ID) (inet.Conn, error) { + return s.dialPeer(ctx, p) +} + +// internal dial method that returns an unwrapped conn +// +// It is gated by the swarm's dial synchronization systems: dialsync and +// dialbackoff. +func (s *Swarm) dialPeer(ctx context.Context, p peer.ID) (*Conn, error) { + log.Debugf("[%s] swarm dialing peer [%s]", s.local, p) + var logdial = lgbl.Dial("swarm", s.LocalPeer(), p, nil, nil) + err := p.Validate() + if err != nil { + return nil, err + } + + if p == s.local { + log.Event(ctx, "swarmDialSelf", logdial) + return nil, ErrDialToSelf + } + + defer log.EventBegin(ctx, "swarmDialAttemptSync", p).Done() + + // check if we already have an open connection first + conn := s.bestConnToPeer(p) + if conn != nil { + return conn, nil + } + + // if this peer has been backed off, lets get out of here + if s.backf.Backoff(p) { + log.Event(ctx, "swarmDialBackoff", p) + return nil, ErrDialBackoff + } + + // apply the DialPeer timeout + ctx, cancel := context.WithTimeout(ctx, inet.GetDialPeerTimeout(ctx)) + defer cancel() + + conn, err = s.dsync.DialLock(ctx, p) + if err != nil { + return nil, err + } + + log.Debugf("network for %s finished dialing %s", s.local, p) + return conn, err +} + +// doDial is an ugly shim method to retain all the logging and backoff logic +// of the old dialsync code +func (s *Swarm) doDial(ctx context.Context, p peer.ID) (*Conn, error) { + // Short circuit. + // By the time we take the dial lock, we may already *have* a connection + // to the peer. + c := s.bestConnToPeer(p) + if c != nil { + return c, nil + } + + logdial := lgbl.Dial("swarm", s.LocalPeer(), p, nil, nil) + + // ok, we have been charged to dial! let's do it. + // if it succeeds, dial will add the conn to the swarm itself. + defer log.EventBegin(ctx, "swarmDialAttemptStart", logdial).Done() + + conn, err := s.dial(ctx, p) + if err != nil { + conn = s.bestConnToPeer(p) + if conn != nil { + // Hm? What error? + // Could have canceled the dial because we received a + // connection or some other random reason. + // Just ignore the error and return the connection. + log.Debugf("ignoring dial error because we have a connection: %s", err) + return conn, nil + } + if err != context.Canceled { + log.Event(ctx, "swarmDialBackoffAdd", logdial) + s.backf.AddBackoff(p) // let others know to backoff + } + + // ok, we failed. + return nil, fmt.Errorf("dial attempt failed: %s", err) + } + return conn, nil +} + +func (s *Swarm) canDial(addr ma.Multiaddr) bool { + t := s.TransportForDialing(addr) + return t != nil && t.CanDial(addr) +} + +// dial is the actual swarm's dial logic, gated by Dial. +func (s *Swarm) dial(ctx context.Context, p peer.ID) (*Conn, error) { + var logdial = lgbl.Dial("swarm", s.LocalPeer(), p, nil, nil) + if p == s.local { + log.Event(ctx, "swarmDialDoDialSelf", logdial) + return nil, ErrDialToSelf + } + defer log.EventBegin(ctx, "swarmDialDo", logdial).Done() + logdial["dial"] = "failure" // start off with failure. set to "success" at the end. + + sk := s.peers.PrivKey(s.local) + logdial["encrypted"] = sk != nil // log whether this will be an encrypted dial or not. + if sk == nil { + // fine for sk to be nil, just log. + log.Debug("Dial not given PrivateKey, so WILL NOT SECURE conn.") + } + + ////// + /* + This slice-to-chan code is temporary, the peerstore can currently provide + a channel as an interface for receiving addresses, but more thought + needs to be put into the execution. For now, this allows us to use + the improved rate limiter, while maintaining the outward behaviour + that we previously had (halting a dial when we run out of addrs) + */ + peerAddrs := s.peers.Addrs(p) + if len(peerAddrs) == 0 { + return nil, errors.New("no addresses") + } + goodAddrs := s.filterKnownUndialables(peerAddrs) + if len(goodAddrs) == 0 { + return nil, errors.New("no good addresses") + } + goodAddrsChan := make(chan ma.Multiaddr, len(goodAddrs)) + for _, a := range goodAddrs { + goodAddrsChan <- a + } + close(goodAddrsChan) + ///////// + + // try to get a connection to any addr + connC, err := s.dialAddrs(ctx, p, goodAddrsChan) + if err != nil { + logdial["error"] = err.Error() + return nil, err + } + logdial["conn"] = logging.Metadata{ + "localAddr": connC.LocalMultiaddr(), + "remoteAddr": connC.RemoteMultiaddr(), + } + swarmC, err := s.addConn(connC, inet.DirOutbound) + if err != nil { + logdial["error"] = err.Error() + connC.Close() // close the connection. didn't work out :( + return nil, err + } + + logdial["dial"] = "success" + return swarmC, nil +} + +// filterKnownUndialables takes a list of multiaddrs, and removes those +// that we definitely don't want to dial: addresses configured to be blocked, +// IPv6 link-local addresses, addresses without a dial-capable transport, +// and addresses that we know to be our own. +// This is an optimization to avoid wasting time on dials that we know are going to fail. +func (s *Swarm) filterKnownUndialables(addrs []ma.Multiaddr) []ma.Multiaddr { + lisAddrs, _ := s.InterfaceListenAddresses() + var ourAddrs []ma.Multiaddr + for _, addr := range lisAddrs { + protos := addr.Protocols() + // we're only sure about filtering out /ip4 and /ip6 addresses, so far + if len(protos) == 2 && (protos[0].Code == ma.P_IP4 || protos[0].Code == ma.P_IP6) { + ourAddrs = append(ourAddrs, addr) + } + } + + return addrutil.FilterAddrs(addrs, + addrutil.SubtractFilter(ourAddrs...), + s.canDial, + // TODO: Consider allowing link-local addresses + addrutil.AddrOverNonLocalIP, + addrutil.FilterNeg(s.Filters.AddrBlocked), + ) +} + +func (s *Swarm) dialAddrs(ctx context.Context, p peer.ID, remoteAddrs <-chan ma.Multiaddr) (transport.Conn, error) { + log.Debugf("%s swarm dialing %s", s.local, p) + + ctx, cancel := context.WithCancel(ctx) + defer cancel() // cancel work when we exit func + + // use a single response type instead of errs and conns, reduces complexity *a ton* + respch := make(chan dialResult) + var dialErrors *multierror.Error + + defer s.limiter.clearAllPeerDials(p) + + var active int + for remoteAddrs != nil || active > 0 { + // Check for context cancellations and/or responses first. + select { + case <-ctx.Done(): + if dialError := dialErrors.ErrorOrNil(); dialError != nil { + return nil, dialError + } + + return nil, ctx.Err() + case resp := <-respch: + active-- + if resp.Err != nil { + // Errors are normal, lots of dials will fail + log.Infof("got error on dial: %s", resp.Err) + dialErrors = multierror.Append(dialErrors, resp.Err) + } else if resp.Conn != nil { + return resp.Conn, nil + } + + // We got a result, try again from the top. + continue + default: + } + + // Now, attempt to dial. + select { + case addr, ok := <-remoteAddrs: + if !ok { + remoteAddrs = nil + continue + } + + s.limitedDial(ctx, p, addr, respch) + active++ + case <-ctx.Done(): + if dialError := dialErrors.ErrorOrNil(); dialError != nil { + return nil, dialError + } + + return nil, ctx.Err() + case resp := <-respch: + active-- + if resp.Err != nil { + // Errors are normal, lots of dials will fail + log.Infof("got error on dial: %s", resp.Err) + dialErrors = multierror.Append(dialErrors, resp.Err) + } else if resp.Conn != nil { + return resp.Conn, nil + } + } + } + + if dialError := dialErrors.ErrorOrNil(); dialError != nil { + return nil, dialError + } + + return nil, inet.ErrNoRemoteAddrs +} + +// limitedDial will start a dial to the given peer when +// it is able, respecting the various different types of rate +// limiting that occur without using extra goroutines per addr +func (s *Swarm) limitedDial(ctx context.Context, p peer.ID, a ma.Multiaddr, resp chan dialResult) { + s.limiter.AddDialJob(&dialJob{ + addr: a, + peer: p, + resp: resp, + ctx: ctx, + }) +} + +func (s *Swarm) dialAddr(ctx context.Context, p peer.ID, addr ma.Multiaddr) (transport.Conn, error) { + // Just to double check. Costs nothing. + if s.local == p { + return nil, ErrDialToSelf + } + log.Debugf("%s swarm dialing %s %s", s.local, p, addr) + + tpt := s.TransportForDialing(addr) + if tpt == nil { + return nil, ErrNoTransport + } + + connC, err := tpt.Dial(ctx, addr, p) + if err != nil { + return nil, fmt.Errorf("%s --> %s (%s) dial attempt failed: %s", s.local, p, addr, err) + } + + // Trust the transport? Yeah... right. + if connC.RemotePeer() != p { + connC.Close() + err = fmt.Errorf("BUG in transport %T: tried to dial %s, dialed %s", p, connC.RemotePeer(), tpt) + log.Error(err) + return nil, err + } + + // success! we got one! + return connC, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm_listen.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_listen.go new file mode 100644 index 00000000..7b37d534 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_listen.go @@ -0,0 +1,96 @@ +package swarm + +import ( + "fmt" + + inet "github.com/libp2p/go-libp2p-net" + ma "github.com/multiformats/go-multiaddr" +) + +// Listen sets up listeners for all of the given addresses. +// It returns as long as we successfully listen on at least *one* address. +func (s *Swarm) Listen(addrs ...ma.Multiaddr) error { + errs := make([]error, len(addrs)) + var succeeded int + for i, a := range addrs { + if err := s.AddListenAddr(a); err != nil { + errs[i] = err + } else { + succeeded++ + } + } + + for i, e := range errs { + if e != nil { + log.Warningf("listen on %s failed: %s", addrs[i], errs[i]) + } + } + + if succeeded == 0 && len(addrs) > 0 { + return fmt.Errorf("failed to listen on any addresses: %s", errs) + } + + return nil +} + +// AddListenAddr tells the swarm to listen on a single address. Unlike Listen, +// this method does not attempt to filter out bad addresses. +func (s *Swarm) AddListenAddr(a ma.Multiaddr) error { + tpt := s.TransportForListening(a) + if tpt == nil { + return ErrNoTransport + } + + list, err := tpt.Listen(a) + if err != nil { + return err + } + + s.listeners.Lock() + if s.listeners.m == nil { + s.listeners.Unlock() + list.Close() + return ErrSwarmClosed + } + s.refs.Add(1) + s.listeners.m[list] = struct{}{} + s.listeners.Unlock() + + maddr := list.Multiaddr() + + // signal to our notifiees on successful conn. + s.notifyAll(func(n inet.Notifiee) { + n.Listen(s, maddr) + }) + + go func() { + defer func() { + list.Close() + s.listeners.Lock() + delete(s.listeners.m, list) + s.listeners.Unlock() + s.refs.Done() + }() + for { + c, err := list.Accept() + if err != nil { + if s.ctx.Err() == nil { + log.Errorf("swarm listener accept error: %s", err) + } + return + } + log.Debugf("swarm listener accepted connection: %s", c) + s.refs.Add(1) + go func() { + defer s.refs.Done() + _, err := s.addConn(c, inet.DirInbound) + if err != nil { + // Probably just means that the swarm has been closed. + log.Warningf("add conn failed: ", err) + return + } + }() + } + }() + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm_stream.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_stream.go new file mode 100644 index 00000000..754dbd50 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_stream.go @@ -0,0 +1,177 @@ +package swarm + +import ( + "fmt" + "io" + "sync" + "sync/atomic" + "time" + + inet "github.com/libp2p/go-libp2p-net" + protocol "github.com/libp2p/go-libp2p-protocol" + smux "github.com/libp2p/go-stream-muxer" +) + +type streamState int + +const ( + streamOpen streamState = iota + streamCloseRead + streamCloseWrite + streamCloseBoth + streamReset +) + +// Validate Stream conforms to the go-libp2p-net Stream interface +var _ inet.Stream = &Stream{} + +// Stream is the stream type used by swarm. In general, you won't use this type +// directly. +type Stream struct { + stream smux.Stream + conn *Conn + + state struct { + sync.Mutex + v streamState + } + + notifyLk sync.Mutex + + protocol atomic.Value + + stat inet.Stat +} + +func (s *Stream) String() string { + return fmt.Sprintf( + " %s (%s)>", + s.conn.conn.Transport(), + s.conn.LocalMultiaddr(), + s.conn.LocalPeer(), + s.conn.RemoteMultiaddr(), + s.conn.RemotePeer(), + ) +} + +// Conn returns the Conn associated with this stream, as an inet.Conn +func (s *Stream) Conn() inet.Conn { + return s.conn +} + +// Read reads bytes from a stream. +func (s *Stream) Read(p []byte) (int, error) { + n, err := s.stream.Read(p) + // TODO: push this down to a lower level for better accuracy. + if s.conn.swarm.bwc != nil { + s.conn.swarm.bwc.LogRecvMessage(int64(n)) + s.conn.swarm.bwc.LogRecvMessageStream(int64(n), s.Protocol(), s.Conn().RemotePeer()) + } + // If we observe an EOF, this stream is now closed for reading. + // If we're already closed for writing, this stream is now fully closed. + if err == io.EOF { + s.state.Lock() + switch s.state.v { + case streamCloseWrite: + s.state.v = streamCloseBoth + s.remove() + case streamOpen: + s.state.v = streamCloseRead + } + s.state.Unlock() + } + return n, err +} + +// Write writes bytes to a stream, flushing for each call. +func (s *Stream) Write(p []byte) (int, error) { + n, err := s.stream.Write(p) + // TODO: push this down to a lower level for better accuracy. + if s.conn.swarm.bwc != nil { + s.conn.swarm.bwc.LogSentMessage(int64(n)) + s.conn.swarm.bwc.LogSentMessageStream(int64(n), s.Protocol(), s.Conn().RemotePeer()) + } + return n, err +} + +// Close closes the stream, indicating this side is finished +// with the stream. +func (s *Stream) Close() error { + err := s.stream.Close() + + s.state.Lock() + switch s.state.v { + case streamCloseRead: + s.state.v = streamCloseBoth + s.remove() + case streamOpen: + s.state.v = streamCloseWrite + } + s.state.Unlock() + return err +} + +// Reset resets the stream, closing both ends. +func (s *Stream) Reset() error { + err := s.stream.Reset() + s.state.Lock() + switch s.state.v { + case streamOpen, streamCloseRead, streamCloseWrite: + s.state.v = streamReset + s.remove() + } + s.state.Unlock() + return err +} + +func (s *Stream) remove() { + s.conn.removeStream(s) + + // We *must* do this in a goroutine. This can be called during a + // an open notification and will block until that notification is done. + go func() { + s.notifyLk.Lock() + defer s.notifyLk.Unlock() + + s.conn.swarm.notifyAll(func(f inet.Notifiee) { + f.ClosedStream(s.conn.swarm, s) + }) + s.conn.swarm.refs.Done() + }() +} + +// Protocol returns the protocol negotiated on this stream (if set). +func (s *Stream) Protocol() protocol.ID { + // Ignore type error. It means that the protocol is unset. + p, _ := s.protocol.Load().(protocol.ID) + return p +} + +// SetProtocol sets the protocol for this stream. +// +// This doesn't actually *do* anything other than record the fact that we're +// speaking the given protocol over this stream. It's still up to the user to +// negotiate the protocol. This is usually done by the Host. +func (s *Stream) SetProtocol(p protocol.ID) { + s.protocol.Store(p) +} + +// SetDeadline sets the read and write deadlines for this stream. +func (s *Stream) SetDeadline(t time.Time) error { + return s.stream.SetDeadline(t) +} + +// SetReadDeadline sets the read deadline for this stream. +func (s *Stream) SetReadDeadline(t time.Time) error { + return s.stream.SetReadDeadline(t) +} + +// SetWriteDeadline sets the write deadline for this stream. +func (s *Stream) SetWriteDeadline(t time.Time) error { + return s.stream.SetWriteDeadline(t) +} + +// Stat returns metadata information for this stream. +func (s *Stream) Stat() inet.Stat { + return s.stat +} diff --git a/vendor/github.com/libp2p/go-libp2p-swarm/swarm_transport.go b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_transport.go new file mode 100644 index 00000000..04314887 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-swarm/swarm_transport.go @@ -0,0 +1,101 @@ +package swarm + +import ( + "fmt" + "strings" + + transport "github.com/libp2p/go-libp2p-transport" + ma "github.com/multiformats/go-multiaddr" +) + +// TransportForDialing retrieves the appropriate transport for dialing the given +// multiaddr. +func (s *Swarm) TransportForDialing(a ma.Multiaddr) transport.Transport { + protocols := a.Protocols() + if len(protocols) == 0 { + return nil + } + + s.transports.RLock() + defer s.transports.RUnlock() + if len(s.transports.m) == 0 { + log.Error("you have no transports configured") + return nil + } + + for _, p := range protocols { + transport, ok := s.transports.m[p.Code] + if !ok { + continue + } + if transport.Proxy() { + return transport + } + } + + return s.transports.m[protocols[len(protocols)-1].Code] +} + +// TransportForListening retrieves the appropriate transport for listening on +// the given multiaddr. +func (s *Swarm) TransportForListening(a ma.Multiaddr) transport.Transport { + protocols := a.Protocols() + if len(protocols) == 0 { + return nil + } + + s.transports.RLock() + defer s.transports.RUnlock() + if len(s.transports.m) == 0 { + log.Error("you have no transports configured") + return nil + } + + selected := s.transports.m[protocols[len(protocols)-1].Code] + for _, p := range protocols { + transport, ok := s.transports.m[p.Code] + if !ok { + continue + } + if transport.Proxy() { + selected = transport + } + } + return selected +} + +// AddTransport adds a transport to this swarm. +// +// Satisfies the Network interface from go-libp2p-transport. +func (s *Swarm) AddTransport(t transport.Transport) error { + protocols := t.Protocols() + + if len(protocols) == 0 { + return fmt.Errorf("useless transport handles no protocols: %T", t) + } + + s.transports.Lock() + defer s.transports.Unlock() + var registered []string + for _, p := range protocols { + if _, ok := s.transports.m[p]; ok { + proto := ma.ProtocolWithCode(p) + name := proto.Name + if name == "" { + name = fmt.Sprintf("unknown (%d)", p) + } + registered = append(registered, name) + } + } + if len(registered) > 0 { + return fmt.Errorf( + "transports already registered for protocol(s): %s", + strings.Join(registered, ", "), + ) + } + + for _, p := range protocols { + s.transports.m[p] = t + } + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/.travis.yml b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/LICENSE b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/LICENSE new file mode 100644 index 00000000..6cccfc2b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Protocol Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/Makefile b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/README.md b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/README.md new file mode 100644 index 00000000..01832e50 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/README.md @@ -0,0 +1,136 @@ +# go-libp2p-transport-upgrader + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-transport-upgrader?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-transport-upgrader) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-libp2p-transport-upgrader/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-libp2p-transport-upgrader?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-transport-upgrader.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-transport-upgrader) + +> Stream connection to libp2p connection upgrader + +This package provides the necessary logic to upgrade [multiaddr-net][manet] connections listeners into full [libp2p-transport][tpt] connections and listeners. + +To use, construct a new `Upgrader` with: + +* An optional [pnet][pnet] `Protector`. +* An optional [multiaddr-net][manet] address `Filter`. +* A mandatory [stream security transport][ss]. +* A mandatory [stream multiplexer transport][smux]. + +[tpt]: https://github.com/libp2p/go-libp2p-transport +[manet]: https://github.com/multiformats/go-multiaddr-net +[ss]: https://github.com/libp2p/go-conn-security +[smux]: https://github.com/libp2p/go-stream-muxer +[pnet]: https://github.com/libp2p/go-libp2p-interface-pnet + +Note: This package largely replaces the functionality of [go-libp2p-conn](https://github.com/libp2p/go-libp2p-conn) but with half the code. + +## Install + +`go-libp2p-transport-upgrader` is a standard Go module which can be installed with: + +```sh +go get github.com/libp2p/go-libp2p-transport-upgrader +``` + +Note that `go-libp2p-transport-upgrader` is packaged with Gx, so it is recommended to use Gx to install and use it (see the Usage section). + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/libp2p/go-libp2p-transport-upgrader +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +## Example + +Below is a simplified TCP transport implementation using the transport upgrader. In practice, you'll want to use [go-tcp-transport](https://github.com/libp2p/go-tcp-transport) (which has reuseport support). + +```go +package tcptransport + +import ( + "context" + + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + + ma "github.com/multiformats/go-multiaddr" + mafmt "github.com/whyrusleeping/mafmt" + manet "github.com/multiformats/go-multiaddr-net" + tpt "github.com/libp2p/go-libp2p-transport" +) + +// TcpTransport is a simple TCP transport. +type TcpTransport struct { + // Connection upgrader for upgrading insecure stream connections to + // secure multiplex connections. + Upgrader *tptu.Upgrader +} + +var _ tpt.Transport = &TcpTransport{} + +// NewTCPTransport creates a new TCP transport instance. +func NewTCPTransport(upgrader *tptu.Upgrader) *TcpTransport { + return &TcpTransport{Upgrader: upgrader} +} + +// CanDial returns true if this transport believes it can dial the given +// multiaddr. +func (t *TcpTransport) CanDial(addr ma.Multiaddr) bool { + return mafmt.TCP.Matches(addr) +} + +// Dial dials the peer at the remote address. +func (t *TcpTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.Conn, error) { + var dialer manet.Dialer + conn, err := dialer.DialContext(ctx, raddr) + if err != nil { + return nil, err + } + return t.Upgrader.UpgradeOutbound(ctx, t, conn, p) +} + +// Listen listens on the given multiaddr. +func (t *TcpTransport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) { + list, err := manet.Listen(laddr) + if err != nil { + return nil, err + } + return t.Upgrader.UpgradeListener(t, list), nil +} + +// Protocols returns the list of terminal protocols this transport can dial. +func (t *TcpTransport) Protocols() []int { + return []int{ma.P_TCP} +} + +// Proxy always returns false for the TCP transport. +func (t *TcpTransport) Proxy() bool { + return false +} +``` + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-transport-upgrader/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/libp2p/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/codecov.yml b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/conn.go b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/conn.go new file mode 100644 index 00000000..48e48141 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/conn.go @@ -0,0 +1,35 @@ +package stream + +import ( + "fmt" + + inet "github.com/libp2p/go-libp2p-net" + transport "github.com/libp2p/go-libp2p-transport" + smux "github.com/libp2p/go-stream-muxer" +) + +type transportConn struct { + smux.Conn + inet.ConnMultiaddrs + inet.ConnSecurity + transport transport.Transport +} + +func (t *transportConn) Transport() transport.Transport { + return t.transport +} + +func (t *transportConn) String() string { + ts := "" + if s, ok := t.transport.(fmt.Stringer); ok { + ts = "[" + s.String() + "]" + } + return fmt.Sprintf( + " %s (%s)>", + ts, + t.LocalMultiaddr(), + t.LocalPeer(), + t.RemoteMultiaddr(), + t.RemotePeer(), + ) +} diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.mod b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.mod new file mode 100644 index 00000000..54baad7b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.mod @@ -0,0 +1,19 @@ +module github.com/libp2p/go-libp2p-transport-upgrader + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 + github.com/libp2p/go-conn-security v0.0.1 + github.com/libp2p/go-libp2p-interface-pnet v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-transport v0.0.1 + github.com/libp2p/go-maddr-filter v0.0.1 + github.com/libp2p/go-mplex v0.0.1 // indirect + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/onsi/ginkgo v1.7.0 + github.com/onsi/gomega v1.4.3 + github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible +) diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.sum b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.sum new file mode 100644 index 00000000..613dbae0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/go.sum @@ -0,0 +1,144 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-transport v0.0.1 h1:uF0ZSQvm9EDlGadHSaaWwXihpsh4HvWO4DOtsPyldXM= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/listener.go b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/listener.go new file mode 100644 index 00000000..fa26825f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/listener.go @@ -0,0 +1,159 @@ +package stream + +import ( + "context" + "fmt" + "sync" + + logging "github.com/ipfs/go-log" + tec "github.com/jbenet/go-temp-err-catcher" + transport "github.com/libp2p/go-libp2p-transport" + manet "github.com/multiformats/go-multiaddr-net" +) + +var log = logging.Logger("stream-upgrader") + +type connErr struct { + conn transport.Conn + err error +} + +type listener struct { + manet.Listener + + transport transport.Transport + upgrader *Upgrader + + incoming chan transport.Conn + err error + + // Used for backpressure + threshold *threshold + + // Canceling this context isn't sufficient to tear down the listener. + // Call close. + ctx context.Context + cancel func() +} + +// Close closes the listener. +func (l *listener) Close() error { + // Do this first to try to get any relevent errors. + err := l.Listener.Close() + + l.cancel() + // Drain and wait. + for c := range l.incoming { + c.Close() + } + return err +} + +// handles inbound connections. +// +// This function does a few interesting things that should be noted: +// +// 1. It logs and discards temporary/transient errors (errors with a Temporary() +// function that returns true). +// 2. It stops accepting new connections once AcceptQueueLength connections have +// been fully negotiated but not accepted. This gives us a basic backpressure +// mechanism while still allowing us to negotiate connections in parallel. +func (l *listener) handleIncoming() { + var wg sync.WaitGroup + defer func() { + // make sure we're closed + l.Listener.Close() + if l.err == nil { + l.err = fmt.Errorf("listener closed") + } + + wg.Wait() + close(l.incoming) + }() + + var catcher tec.TempErrCatcher + for l.ctx.Err() == nil { + maconn, err := l.Listener.Accept() + if err != nil { + // Note: function may pause the accept loop. + if catcher.IsTemporary(err) { + log.Infof("temporary accept error: %s", err) + continue + } + l.err = err + return + } + + // The go routine below calls Release when the context is + // canceled so there's no need to wait on it here. + l.threshold.Wait() + + log.Debugf("listener %s got connection: %s <---> %s", + l, + maconn.LocalMultiaddr(), + maconn.RemoteMultiaddr()) + + wg.Add(1) + go func() { + defer wg.Done() + + ctx, cancel := context.WithTimeout(l.ctx, transport.AcceptTimeout) + defer cancel() + + conn, err := l.upgrader.UpgradeInbound(ctx, l.transport, maconn) + if err != nil { + // Don't bother bubbling this up. We just failed + // to completely negotiate the connection. + log.Debugf("accept upgrade error: %s (%s <--> %s)", + err, + maconn.LocalMultiaddr(), + maconn.RemoteMultiaddr()) + return + } + + log.Debugf("listener %s accepted connection: %s", l, conn) + + // This records the fact that the connection has been + // setup and is waiting to be accepted. This call + // *never* blocks, even if we go over the threshold. It + // simply ensures that calls to Wait block while we're + // over the threshold. + l.threshold.Acquire() + defer l.threshold.Release() + + select { + case l.incoming <- conn: + case <-ctx.Done(): + if l.ctx.Err() == nil { + // Listener *not* closed but the accept timeout expired. + log.Warningf("listener dropped connection due to slow accept") + } + // Wait on the context with a timeout. This way, + // if we stop accepting connections for some reason, + // we'll eventually close all the open ones + // instead of hanging onto them. + conn.Close() + } + }() + } +} + +// Accept accepts a connection. +func (l *listener) Accept() (transport.Conn, error) { + for c := range l.incoming { + // Could have been sitting there for a while. + if !c.IsClosed() { + return c, nil + } + } + return nil, l.err +} + +func (l *listener) String() string { + if s, ok := l.transport.(fmt.Stringer); ok { + return fmt.Sprintf("", s, l.Multiaddr()) + } + return fmt.Sprintf("", l.Multiaddr()) +} + +var _ transport.Listener = (*listener)(nil) diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/package.json b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/package.json new file mode 100644 index 00000000..dc5eb7f8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/package.json @@ -0,0 +1,101 @@ +{ + "author": "steb", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-transport-upgrader" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-transport-upgrader" + }, + "gxDependencies": [ + { + "author": "Stebalien", + "hash": "QmPRoHqULmP4MuKAN5EFaJ64MLpeMY8cny2318xDBDmmkp", + "name": "go-conn-security", + "version": "0.1.28" + }, + { + "author": "whyrusleeping", + "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", + "name": "go-stream-muxer", + "version": "3.1.0" + }, + { + "author": "whyrusleeping", + "hash": "QmT6C5ebDy92zyRzdmSNyda5q7zkNXy68X47RDJiHpvaxd", + "name": "go-maddr-filter", + "version": "1.1.13" + }, + { + "author": "whyrusleeping", + "hash": "QmNQWMWWBmkAcaVEspSNwYB95axzKFhYTdqZtABA2zXoPu", + "name": "go-libp2p-transport", + "version": "3.0.27" + }, + { + "author": "libp2p", + "hash": "QmW7Ump7YyBMr712Ta3iEVh3ZYcfVvJaPryfbCnyE826b4", + "name": "go-libp2p-interface-pnet", + "version": "3.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "whyrusleeping", + "hash": "QmaJvNdDccVkTELQLCGXWrLxgaQ14aMdhzZx1EiHPXKbDc", + "name": "go-smux-multiplex", + "version": "3.0.19" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "multiformats", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmWHgLqrghM9zw77nF6gdvT9ExQ2RB9pLxkd8sDHZf1rWb", + "name": "go-temp-err-catcher", + "version": "0.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "onsi", + "hash": "QmNuLxhqRhfimRZeLttPe6Sa44MNwuHAdaFFa9TDuNZUmf", + "name": "ginkgo", + "version": "1.1.0" + }, + { + "author": "onsi", + "hash": "QmUWtNQd8JdEiYiDqNYTUcaqyteJZ2rTNQLiw3dauLPccy", + "name": "gomega", + "version": "1.1.0" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-libp2p-transport-upgrader", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.28" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/threshold.go b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/threshold.go new file mode 100644 index 00000000..2c278bd3 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/threshold.go @@ -0,0 +1,50 @@ +package stream + +import ( + "sync" +) + +func newThreshold(cutoff int) *threshold { + t := &threshold{ + threshold: cutoff, + } + t.cond.L = &t.mu + return t +} + +type threshold struct { + mu sync.Mutex + cond sync.Cond + + count int + threshold int +} + +// Acquire increments the counter. It will not block. +func (t *threshold) Acquire() { + t.mu.Lock() + t.count++ + t.mu.Unlock() +} + +// Release decrements the counter. +func (t *threshold) Release() { + t.mu.Lock() + if t.count == 0 { + panic("negative count") + } + if t.threshold == t.count { + t.cond.Broadcast() + } + t.count-- + t.mu.Unlock() +} + +// Wait waits for the counter to drop below the threshold +func (t *threshold) Wait() { + t.mu.Lock() + for t.count >= t.threshold { + t.cond.Wait() + } + t.mu.Unlock() +} diff --git a/vendor/github.com/libp2p/go-libp2p-transport-upgrader/upgrader.go b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/upgrader.go new file mode 100644 index 00000000..1c901b27 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport-upgrader/upgrader.go @@ -0,0 +1,127 @@ +package stream + +import ( + "context" + "errors" + "fmt" + "net" + + ss "github.com/libp2p/go-conn-security" + pnet "github.com/libp2p/go-libp2p-interface-pnet" + peer "github.com/libp2p/go-libp2p-peer" + transport "github.com/libp2p/go-libp2p-transport" + filter "github.com/libp2p/go-maddr-filter" + smux "github.com/libp2p/go-stream-muxer" + manet "github.com/multiformats/go-multiaddr-net" +) + +// ErrNilPeer is returned when attempting to upgrade an outbound connection +// without specifying a peer ID. +var ErrNilPeer = errors.New("nil peer") + +// AcceptQueueLength is the number of connections to fully setup before not accepting any new connections +var AcceptQueueLength = 16 + +// Upgrader is a multistream upgrader that can upgrade an underlying connection +// to a full transport connection (secure and multiplexed). +type Upgrader struct { + Protector pnet.Protector + Secure ss.Transport + Muxer smux.Transport + Filters *filter.Filters +} + +// UpgradeListener upgrades the passed multiaddr-net listener into a full libp2p-transport listener. +func (u *Upgrader) UpgradeListener(t transport.Transport, list manet.Listener) transport.Listener { + ctx, cancel := context.WithCancel(context.Background()) + l := &listener{ + Listener: list, + upgrader: u, + transport: t, + threshold: newThreshold(AcceptQueueLength), + incoming: make(chan transport.Conn), + cancel: cancel, + ctx: ctx, + } + go l.handleIncoming() + return l +} + +// UpgradeOutbound upgrades the given outbound multiaddr-net connection into a +// full libp2p-transport connection. +func (u *Upgrader) UpgradeOutbound(ctx context.Context, t transport.Transport, maconn manet.Conn, p peer.ID) (transport.Conn, error) { + if p == "" { + return nil, ErrNilPeer + } + return u.upgrade(ctx, t, maconn, p) +} + +// UpgradeInbound upgrades the given inbound multiaddr-net connection into a +// full libp2p-transport connection. +func (u *Upgrader) UpgradeInbound(ctx context.Context, t transport.Transport, maconn manet.Conn) (transport.Conn, error) { + return u.upgrade(ctx, t, maconn, "") +} + +func (u *Upgrader) upgrade(ctx context.Context, t transport.Transport, maconn manet.Conn, p peer.ID) (transport.Conn, error) { + if u.Filters != nil && u.Filters.AddrBlocked(maconn.RemoteMultiaddr()) { + log.Debugf("blocked connection from %s", maconn.RemoteMultiaddr()) + maconn.Close() + return nil, fmt.Errorf("blocked connection from %s", maconn.RemoteMultiaddr()) + } + + var conn net.Conn = maconn + if u.Protector != nil { + pconn, err := u.Protector.Protect(conn) + if err != nil { + conn.Close() + return nil, fmt.Errorf("failed to setup private network protector: %s", err) + } + conn = pconn + } else if pnet.ForcePrivateNetwork { + log.Error("tried to dial with no Private Network Protector but usage" + + " of Private Networks is forced by the enviroment") + return nil, pnet.ErrNotInPrivateNetwork + } + sconn, err := u.setupSecurity(ctx, conn, p) + if err != nil { + conn.Close() + return nil, fmt.Errorf("failed to negotiate security protocol: %s", err) + } + smconn, err := u.setupMuxer(ctx, sconn, p) + if err != nil { + conn.Close() + return nil, fmt.Errorf("failed to negotiate security stream multiplexer: %s", err) + } + return &transportConn{ + Conn: smconn, + ConnMultiaddrs: maconn, + ConnSecurity: sconn, + transport: t, + }, nil +} + +func (u *Upgrader) setupSecurity(ctx context.Context, conn net.Conn, p peer.ID) (ss.Conn, error) { + if p == "" { + return u.Secure.SecureInbound(ctx, conn) + } + return u.Secure.SecureOutbound(ctx, conn, p) +} + +func (u *Upgrader) setupMuxer(ctx context.Context, conn net.Conn, p peer.ID) (smux.Conn, error) { + // TODO: The muxer should take a context. + done := make(chan struct{}) + + var smconn smux.Conn + var err error + go func() { + defer close(done) + smconn, err = u.Muxer.NewConn(conn, p == "") + }() + + select { + case <-done: + return smconn, err + case <-ctx.Done(): + return nil, ctx.Err() + } +} diff --git a/vendor/github.com/libp2p/go-libp2p-transport/.gitignore b/vendor/github.com/libp2p/go-libp2p-transport/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/libp2p/go-libp2p-transport/.travis.yml b/vendor/github.com/libp2p/go-libp2p-transport/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p-transport/LICENSE b/vendor/github.com/libp2p/go-libp2p-transport/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p-transport/Makefile b/vendor/github.com/libp2p/go-libp2p-transport/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-libp2p-transport/README.md b/vendor/github.com/libp2p/go-libp2p-transport/README.md new file mode 100644 index 00000000..0e9b4ce2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/README.md @@ -0,0 +1,48 @@ +# go-libp2p-transport + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](https://libp2p.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p-transport?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p-transport) +[![Coverage Status](https://img.shields.io/codecov/c/github/libp2p/go-libp2p-transport.svg?style=flat-square&branch=master)](https://codecov.io/github/libp2p/go-libp2p-transport?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-libp2p-transport.svg?branch=master)](https://travis-ci.org/libp2p/go-libp2p-transport) + +> libp2p transport code + +A common interface for network transports. + +This is the 'base' layer for any transport that wants to be used by libp2p and ipfs. If you want to make 'ipfs work over X', the first thing you'll want to do is to implement the `Transport` interface for 'X'. + +Transports are: + +* Encrypted: Connections must be end-to-end encrypted. +* Authenticated: The endpoints, RemotePeer and LocalPeer, must be authenticated. +* Multiplexed: It must be possible to multiplex multiple reliable streams over a single transport connection. + +## Install + +```sh +> gx install --global +> gx-go rewrite +``` + +## Usage + +To actually *use* a transport, you'll likely want to register it with a `transport.Network` (e.g., [go-libp2p-swarm](https://github.com/libp2p/go-libp2p-swarm)). However, you're probably more interested in *implementing* transports. + +Transports construct fully featured, encrypted, multiplexed connections. However, there's a fairly good chance your transport won't meet all of those requirements. To make life easier, we've created a helper library called [go-libp2p-transport-upgrader](https://github.com/libp2p/go-libp2p-transport-upgrader) for upgrading simple stream transports to fully-featured (encrypted, authenticated, multiplexed) transports. Check out that package's [README](https://github.com/libp2p/go-libp2p-transport-upgrader/blob/master/README.md) for an example. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-transport/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-libp2p-transport/codecov.yml b/vendor/github.com/libp2p/go-libp2p-transport/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p-transport/go.mod b/vendor/github.com/libp2p/go-libp2p-transport/go.mod new file mode 100644 index 00000000..e9cd4566 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/go.mod @@ -0,0 +1,10 @@ +module github.com/libp2p/go-libp2p-transport + +require ( + github.com/ipfs/go-detect-race v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-libp2p-net v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-libp2p-transport/go.sum b/vendor/github.com/libp2p/go-libp2p-transport/go.sum new file mode 100644 index 00000000..8ab21f08 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/go.sum @@ -0,0 +1,116 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p-transport/package.json b/vendor/github.com/libp2p/go-libp2p-transport/package.json new file mode 100644 index 00000000..a0b8f0db --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/package.json @@ -0,0 +1,53 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-libp2p-transport" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-libp2p-transport" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "whyrusleeping", + "hash": "QmY3ArotKMKaL7YGfbQfyDrib6RVraLqZYWXZvVgZktBxp", + "name": "go-libp2p-net", + "version": "3.0.30" + }, + { + "author": "whyrusleeping", + "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", + "name": "go-stream-muxer", + "version": "3.1.0" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "author": "jbenet", + "hash": "Qmf7HqcW7LtCi1W8y2bdx2eJpze74jkbKqpByxgXikdbLF", + "name": "go-detect-race", + "version": "1.0.1" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-libp2p-transport", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.0.27" +} + diff --git a/vendor/github.com/libp2p/go-libp2p-transport/transport.go b/vendor/github.com/libp2p/go-libp2p-transport/transport.go new file mode 100644 index 00000000..e81428e2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p-transport/transport.go @@ -0,0 +1,97 @@ +package transport + +import ( + "context" + "net" + "time" + + logging "github.com/ipfs/go-log" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + smux "github.com/libp2p/go-stream-muxer" + ma "github.com/multiformats/go-multiaddr" +) + +// DialTimeout is the maximum duration a Dial is allowed to take. +// This includes the time between dialing the raw network connection, +// protocol selection as well the handshake, if applicable. +var DialTimeout = 60 * time.Second + +// AcceptTimeout is the maximum duration an Accept is allowed to take. +// This includes the time between accepting the raw network connection, +// protocol selection as well as the handshake, if applicable. +var AcceptTimeout = 60 * time.Second + +var log = logging.Logger("transport") + +// Conn is an extension of the net.Conn interface that provides multiaddr +// information, and an accessor for the transport used to create the conn +type Conn interface { + smux.Conn + inet.ConnSecurity + inet.ConnMultiaddrs + + // Transport returns the transport to which this connection belongs. + Transport() Transport +} + +// Transport represents any device by which you can connect to and accept +// connections from other peers. The built-in transports provided are TCP and UTP +// but many more can be implemented, sctp, audio signals, sneakernet, UDT, a +// network of drones carrying usb flash drives, and so on. +type Transport interface { + // Dial dials a remote peer. It should try to reuse local listener + // addresses if possible but it may choose not to. + Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (Conn, error) + + // CanDial returns true if this transport knows how to dial the given + // multiaddr. + // + // Returning true does not guarantee that dialing this multiaddr will + // succeed. This function should *only* be used to preemptively filter + // out addresses that we can't dial. + CanDial(addr ma.Multiaddr) bool + + // Listen listens on the passed multiaddr. + Listen(laddr ma.Multiaddr) (Listener, error) + + // Protocol returns the set of protocols handled by this transport. + // + // See the Network interface for an explanation of how this is used. + Protocols() []int + + // Proxy returns true if this is a proxy transport. + // + // See the Network interface for an explanation of how this is used. + // TODO: Make this a part of the go-multiaddr protocol instead? + Proxy() bool +} + +// Listener is an interface closely resembling the net.Listener interface. The +// only real difference is that Accept() returns Conn's of the type in this +// package, and also exposes a Multiaddr method as opposed to a regular Addr +// method +type Listener interface { + Accept() (Conn, error) + Close() error + Addr() net.Addr + Multiaddr() ma.Multiaddr +} + +// Network is an inet.Network with methods for managing transports. +type Network interface { + inet.Network + + // AddTransport adds a transport to this Network. + // + // When dialing, this Network will iterate over the protocols in the + // remote multiaddr and pick the first protocol registered with a proxy + // transport, if any. Otherwise, it'll pick the transport registered to + // handle the last protocol in the multiaddr. + // + // When listening, this Network will iterate over the protocols in the + // local multiaddr and pick the *last* protocol registered with a proxy + // transport, if any. Otherwise, it'll pick the transport registered to + // handle the last protocol in the multiaddr. + AddTransport(t Transport) error +} diff --git a/vendor/github.com/libp2p/go-libp2p/.gitignore b/vendor/github.com/libp2p/go-libp2p/.gitignore new file mode 100644 index 00000000..895adf13 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/.gitignore @@ -0,0 +1,4 @@ +*.swp +examples/echo/echo +examples/multicodecs/multicodecs +.idea \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-libp2p/.travis.yml b/vendor/github.com/libp2p/go-libp2p/.travis.yml new file mode 100644 index 00000000..5163d693 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-libp2p/LICENSE b/vendor/github.com/libp2p/go-libp2p/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-libp2p/NEWS.md b/vendor/github.com/libp2p/go-libp2p/NEWS.md new file mode 100644 index 00000000..ff497d72 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/NEWS.md @@ -0,0 +1,304 @@ +# go-libp2p release notes + +## 6.0.0 + +We're pleased to announce go-libp2p 6.0.0. This release includes a massive +refactor of go-libp2p that paves the way for new transports such as QUIC. +Unfortunately, as it is broad sweeping, there are some breaking changes, +*especially* for maintainers of custom transports. + +Below, we cover the changes you'll likely care about. For convenience, we've +broken this into a section for users and transport authors/maintainers. However, +transport maintainers should really read both sections. + +### For Users + +Libp2p users should be aware of a few major changes. + +* Guarantees and performance concerning connect/disconnect notification + processing have improved. +* Handling of half-closed streams has changed (READ THIS SECTION). +* Some constructors and method signatures have changed slightly. + +#### Dialing And Source Addresses + +We've improved the logic that selects the source address when dialing. In the +past, you may have run into an issue where you couldn't dial non-local nodes +when listening on 127.0.0.1 as opposed to 0.0.0.0. This happened because +go-libp2p would randomly pick the source address from the set of addresses on +which the node was listening. We did this to ensure that the other end could +dial us back at the same address. Unfortunately, one can't use 127.0.0.1 as a +source address when dialing any non-local address so outbound dials failed. + +go-libp2p now tries to be smarter about this and avoids picking source addresses +that have no route to the destination address. + +#### Bandwidth Metrics + +To start out on an unhappy note, bandwidth metrics are now less accurate. In the +past, transports returned "minimal" connections (e.g., a TCP connection) so we +could wrap these transport connections in "metrics" connections that counted +every byte sent and received. + +Unfortunately, now that we've moved encryption and multiplexing down into the +transport layer, the connection we're wrapping has significantly more +under-the-covers overhead. + +However, we do hope to improve this and get even *better* bandwidth metrics than +we did before. See [libp2p/go-libp2p-transport#31][] for details. + +[libp2p/go-libp2p-transport#31]: https://github.com/libp2p/go-libp2p-transport/issues/31 + +#### Notifications + +This release brings performance improvements and easy to reason about ordering +guarantees libp2p connect/disconnect events: + +1. For any given connection/stream, libp2p will wait for all connect/open event + handlers to finish exit before triggering a disconnect/close event for the + connection/stream. +2. When a user calls the Close (or `Reset`) method on a connection or stream, + go-libp2p will process the close event asynchronously (i.e., not block the + call to `Close`). Otherwise, a call to `Close` from within a connect event + handler would deadlock. +3. Unless otherwise noted, events will be handled in parallel. + +What does this mean for end users? Well: + +1. Reference counting connections to a peer using connect/disconnect events + should "just work" and should never go negative. +2. Under heavy connect/disconnect loads, connecting to new peers should be + faster (usually). + +For those interested in the history of this issue, ... + +In the past, (dis)connect and stream open/close notifications have been a bit of +a pain point. For a long time, they were fired off in parallel and one could, for +example, process a disconnect notification before a connect notification (we had +to support *negative* ref-counts in several places to account for this). + +After no end of trouble, we finally "fixed" this by synchronizing notification +delivery. We still delivered notifications to all notifiees in parallel, we just +processed the events in series. + +Unfortunately, under heavy connect/disconnect load, new connections could easily +get stuck on open behind a queue of connect events all being handled in series. +In theory, these events should have been handled quickly but in practice, it's +very hard to avoid locks *entirely* (bitswap's event handlers were especially +problematic). + +Worse, this serial delivery guarantee didn't actually provide us with an +*in-order* delivery guarantee as it was still possible for a disconnect to +happen before we even *started* to fire the connect event. The situation was +slightly better than before because the events couldn't overlap but still far +from optimal. + +However, this has all been resolved now. From now on, you'll never receive a +disconnect event before a connect event. + +#### Conn.GetStreams Signature Change + +The signature of the `GetStreams` method on `go-libp2p-net.Conn` has changed from: + +```go +GetStreams() ([]Stream, error) +``` + +To: + +```go +GetStreams() []Stream +``` + +Listing the streams on an open connection should never involve IO or do anything +that can fail so we removed this error to improve usability. + +#### Libp2p Constructor + +If you're not already doing so, you should be using the `libp2p.New` constructor +to make your libp2p nodes. This release brings quite a few new options to the +libp2p constructor so if it hasn't been flexible enough for you in the past, I +recommend that you try again. A simple example can be found in the +[echo][example:echo] example. + +Given this work and in an attempt to consolidate all of our configuration logic +in one place, we've removed all default transports from go-libp2p-swarm. + +TL;DR: Please use the libp2p constructor. + +#### Zombie Streams + +From this release on, when you're done with a stream, you must either call +`Reset` on it (in case of an error) or close it and read an EOF (or some other +error). Otherwise, libp2p can't determine if the stream is *actually* closed and +will hang onto it indefinitely. + +To make properly closing streams a bit easier, we've added two methods to +[go-libp2p-net][]: `AwaitEOF` and `FullClose`. + +* `AwaitEOF(stream)` tries to read a single byte from the stream. If `Read` +returns an EOF, `AwaitEOF` returns success. Otherwise, if `Read` either reads +some data or returns some other error, `AwaitEOF` resets the stream and returns +an error. To avoid waiting indefinitely, `AwaitEOF` resets the stream +unconditionally after 1 minute. +* `FullClose(stream)` is a convenience function that closes the stream and then +calls `AwaitEOF` on it. + +Like with libp2p notifications, this issue has a bit of history... + +In the beginning, libp2p assumed that calling `Close` on a stream would close +the stream for both reading and writing. Unfortunately, *none* of our stream +multiplexers actually behaved this way. In practice, `Close` always closed the +stream for writing. + +After realizing this, we made two changes: + +1. We accepted the fact that `Close` only closed the stream for writing. +2. We added a `Reset` method for killing the stream (closing it in both + directions, throwing away any buffered data). + +However, we ran into a bit of a snag because we try to track open streams and +need some way to tell when a stream has been closed. In the past this was easy: +when the user calls `Close` on the stream, stop tracking it. However, now that +`Close` only closes the stream for writing, we still *technically* needed to +track it until the *other* end closed the stream as well. Unfortunately, without +actually reading from the stream, we have no way of knowing about this. +Therefore, if the user calls `Close` on a stream and then walks away, we'd have +to hang onto the stream indefinitely. + +Our solution was to simply stop tracking streams once they were closed for +writing. This wasn't the *correct* behavior but it avoided leaking memory in the +common case: + +1. The user calls `Close` and drops all references to the stream. +2. The other end calls `Close` without writing any additional data. +3. The stream multiplexer observes both closes and drops *its* reference to the stream. +4. The garbage collector garbage collects the stream. + +However, this meant that: + +1. The list of "open" streams was technically incomplete. +2. If the other side either failed to call `Close` or tried to send data before + closing, the stream would remain "open" (until the connection was closed). + +In this release, we've changed this behavior. Now, when you `Close` a stream for +writing, libp2p *continues* to track it. We only stop tracking it when either: + +1. You call `Reset` (throwing away the stream). +2. You finish reading any data off of it and observe either an EOF or an error. + +This way, we never "forget" about open streams or leave them in a half-forgotten +state. + +In the future, I'd like to add a `CloseAndForget` method to streams that: + +1. Closes the stream (sends an EOF). +2. Tells the swarm to stop tracking the stream. +3. Tells the stream muxer to stop tracking the stream and throw away any data + the other side may send (possibly resetting the stream on unexpected data). + +However: + +1. This would likely require modifying our stream muxers which may not be + feasible. +2. Explicitly waiting for an EOF is still the correct thing to do unless you + really don't care if the operation succeeded. + +### For Transport Maintainers + +For transport maintainers, quite a bit has changed. Before this change, +transports created simple, unencrypted, stream connections and it was the job of +the libp2p Network (go-libp2p-swarm) to negotiate security, multiplexing, etc. + +However, when attempting to add support for the QUIC protocol, we realized that +this was going to be a problem: QUIC already handles authentication and +encryption (using TLS1.3) and multiplexing. After much debate, we inverted our +current architecture and made transports responsible for encrypting/multiplexing +their connections (before returning them). + +To make this palatable, we've also introduced a new ["upgrader" +library][go-libp2p-transport-upgrader] for upgrading go-multiaddr-net +connections/listeners to full libp2p transport connections/listeners. Transports +that don't support encryption/multiplexing out of the box can expect to have an +upgrader passed into the constructor. + +To get a feel for how this new transport system works, take a look at the TCP +and WebSocket transports and the transport interface documentation: + +* [TCP Transport][go-tcp-transport] +* [WebSocket Transport][go-ws-transport] +* [Transport Interface][doc:go-libp2p-transport] + +#### Deprecated Packages + +This release sees the deprecation of a few packages: + +* [go-peerstream][] has been deprecated and all functionality has been merged + into [go-libp2p-swarm][]. [go-peerstream][] was written as a general-purpose + (not libp2p specific) listener, connection, and stream manager. However, this + package caused more problems than it solved and was incompatible with the new + transport interface. +* [go-libp2p-interface-conn][] has been deprecated. These interfaces to bridge + the gap between transport-level connections and [go-libp2p-net][] connections + however, now that transport connections are fully multiplexed/encrypted, this + is no longer needed. +* [go-libp2p-conn][] has also been deprecated and most of the functionality has + been moved to [go-libp2p-transport-upgrader][]. This package used to provide + connection "upgrade" logic for upgrading transport-level connections to + [go-libp2p-interface-conn][] connections however, transport-level connections + now provide the required functionality out of the box. + +#### Testing + +We've moved `GenSwarmNetwork` in [go-libp2p-netutil][] to `GenSwarm` in +[go-libp2p-swarm/testing][] because: + +1. The swarm duplicated this exact function for its own tests. +2. The swarm couldn't depend on [go-libp2p-netutil][] because + [go-libp2p-netutil][] depends on [go-libp2p-swarm][]. + +We've also added a new transport test suit +[go-libp2p-transport/test][]. If you implement a new transport, please consider +testing against these suite. If you find a bug in an existing transport, please +consider adding a test to this suite. + +#### go-addr-util + +In go-addr-util, we've removed the `SupportedTransportStrings` and +`SupportedTransportProtocols` transport registries and the associated +`AddTransport` function. These registries were updated by `init` functions in +packages providing transports and were used to keep track of known transports. + +However, *importing* a transport doesn't mean any libp2p nodes have been +configured to actually *use* that transport. Therefore, in the new go-libp2p, +it's go-libp2p-swarm's job to keep track of which transports are supported +(i.e., which transports have been registered with the swarm). + +We've also removed the associated `AddrUsable`, `FilterUsableAddrs`, and +`AddrUsableFunc` functions. + +#### Pluggable Security Transports + +This release brings a new pluggable security transport framework. Implementing a +new security framework is now as simple as: + +1. Implement the interfaces defined in [go-conn-security][]. +2. Pass it into the libp2p constructor using the `Security` option. + +[go-conn-security]: https://github.com/libp2p/go-conn-security +[go-libp2p-conn]: https://github.com/libp2p/go-libp2p-conn +[go-libp2p-interface-conn]: https://github.com/libp2p/go-libp2p-interface-conn +[go-libp2p-net]: https://github.com/libp2p/go-libp2p-net +[go-libp2p-netutil]: https://github.com/libp2p/go-libp2p-netutil +[go-libp2p-swarm]: https://github.com/libp2p/go-libp2p-swarm +[go-libp2p-swarm/testing]: https://github.com/libp2p/go-libp2p-swarm/tree/master/testing +[go-libp2p-transport]: https://github.com/libp2p/go-libp2p-transport +[go-libp2p-transport/test]: https://github.com/libp2p/go-libp2p-transport/tree/master/test +[go-libp2p-transport-upgrader]: https://github.com/libp2p/go-libp2p-transport-upgrader +[go-peerstream]: https://github.com/libp2p/go-peerstream +[go-tcp-transport]: https://github.com/libp2p/go-tcp-transport +[go-ws-transport]: https://github.com/libp2p/go-ws-transport + +[example:echo]: https://github.com/libp2p/go-libp2p-examples/tree/master/echo + +[doc:go-libp2p-transport]: https://godoc.org/github.com/libp2p/go-libp2p-transport diff --git a/vendor/github.com/libp2p/go-libp2p/README.md b/vendor/github.com/libp2p/go-libp2p/README.md new file mode 100644 index 00000000..47ea441d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/README.md @@ -0,0 +1,214 @@ + +

+ libp2p hex logo +

+ +

The Go implementation of the libp2p Networking Stack.

+ +

+ + + + + +

+ +

+ +
+ + + +
+

+ +# Project status + +[![Throughput Graph](https://graphs.waffle.io/libp2p/go-libp2p/throughput.svg)](https://waffle.io/libp2p/go-libp2p/metrics/throughput) + +[**`Weekly Core Dev Calls`**](https://github.com/ipfs/pm/issues/674) + +# Table of Contents + +- [Background](#background) +- [Usage](#usage) + - [API](#api) + - [Examples](#examples) +- [Development](#development) + - [Using the libp2p Workspace](#using-the-libp2p-workspace) + - [About gx](#about-gx) + - [Tests](#tests) + - [Packages](#packages) +- [Contribute](#contribute) + +## Background + +[libp2p](https://github.com/libp2p/specs) is a networking stack and library modularized out of [The IPFS Project](https://github.com/ipfs/ipfs), and bundled separately for other tools to use. +> +libp2p is the product of a long, and arduous quest of understanding -- a deep dive into the internet's network stack, and plentiful peer-to-peer protocols from the past. Building large scale peer-to-peer systems has been complex and difficult in the last 15 years, and libp2p is a way to fix that. It is a "network stack" -- a protocol suite -- that cleanly separates concerns, and enables sophisticated applications to only use the protocols they absolutely need, without giving up interoperability and upgradeability. libp2p grew out of IPFS, but it is built so that lots of people can use it, for lots of different projects. +> +> We will be writing a set of docs, posts, tutorials, and talks to explain what p2p is, why it is tremendously useful, and how it can help your existing and new projects. But in the meantime, check out +> +> - [**Our developing collection of docs**](https://docs.libp2p.io) +> - [**Our community discussion forums**](https://discuss.libp2p.io) +> - [**The libp2p Specification**](https://github.com/libp2p/specs) +> - [**go-libp2p implementation**](https://github.com/libp2p/go-libp2p) +> - [**js-libp2p implementation**](https://github.com/libp2p/js-libp2p) +> - [**rust-libp2p implementation**](https://github.com/libp2p/rust-libp2p) + +## Usage + +This repository (`go-libp2p`) serves as the entrypoint to the universe of modules that compose the Go implementation of the libp2p stack. + +We mainly use [Go modules](https://github.com/golang/go/wiki/Modules) for our dependency and release management (and thus require go >= 1.11). In order to get the best developer experience, we recommend you do too. Otherwise, you may ocassionally encounter a breaking build as you'll be running off master (which, by definition, is not guaranteed to be stable). + +You can start using go-libp2p in your Go application simply by adding imports from our repos, e.g.: + +```go +import "github.com/libp2p/go-libp2p" +``` + +The next time you run `go get` or `go build`, the Go build tools will look for [available releases](https://github.com/libp2p/go-libp2p/releases), and will pick the highest available one. + +As new releases of go-libp2p are made available, you can upgrade your application by manually editing your `go.mod` file, or using the [Go tools](https://golang.org/cmd/go/#hdr-Maintaining_module_requirements) to maintain module requirements. + +### API + +[![GoDoc](https://godoc.org/github.com/libp2p/go-libp2p?status.svg)](https://godoc.org/github.com/libp2p/go-libp2p) + +### Examples + +Examples can be found in the [examples repo](https://github.com/libp2p/go-libp2p-examples). + +## Development + +### Using the libp2p Workspace + +While developing, you may need to make changes to several modules at once, or you may want changes made locally in one module to be available for import by another. + +The [go libp2p workspace](https://github.com/libp2p/workspace-go-libp2p) provides a developer-oriented view of the modules that comprise go-libp2p. + +Using the tooling in the workspace repository, you can checkout all of go-libp2p's module repos and enter "local mode", which adds [replace directives](https://github.com/golang/go/wiki/Modules#gomod) to the go.mod files in each local working copy. When you build locally, the libp2p depdendencies will be resolved from your local working copies. + +Once you've committed your changes, you can switch back to "remote mode", which removes the replace directives and pulls imports from the main go module cache. + +See the [workspace repo](https://github.com/libp2p/workspace-go-libp2p) for more information. + +### About gx + +Before adopting gomod, libp2p used [gx](https://github.com/whyrusleeping/gx) to manage dependencies using [IPFS](https://ipfs.io). + +Due to the difficulties in keeping both dependency management solutions up-to-date, gx support was ended in April 2019. + +Ending gx support does not mean that existing gx builds will break. Because gx references dependencies by their immutable IPFS hash, any currently working gx builds will continue to work for as long as the dependencies are resolvable in IPFS. + +However, new changes to go-libp2p will not be published via gx, and users are encouraged to adopt gomod to stay up-to-date. + +If you experience any issues migrating from gx to gomod, please [join the discussion at the libp2p forums](https://discuss.libp2p.io/t/gomod-and-go-libp2p/44). + +### Tests + +`go test ./...` will run all tests in the repo. + +### Packages + +> This table is generated using the module [`package-table`](https://github.com/ipfs-shipyard/package-table) with `package-table --data=package-list.json`. + +List of packages currently in existence for libp2p: + +| Name | CI | Coverage | Description | +| ---------|---------|---------|--------- | +| **Libp2p** | +| [`go-libp2p`](//github.com/libp2p/go-libp2p) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p) | go-libp2p entry point | +| [`go-libp2p-host`](//github.com/libp2p/go-libp2p-host) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-host.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-host) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-host/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-host) | libp2p "host" interface | +| [`go-libp2p-blankhost`](//github.com/libp2p/go-libp2p-blankhost) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-blankhost.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-blankhost) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-blankhost/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-blankhost) | minimal implementation of the "host" interface | +| **Network** | +| [`go-libp2p-net`](//github.com/libp2p/go-libp2p-net) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-net.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-net) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-net/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-net) | libp2p connection and "network" interfaces | +| [`go-libp2p-swarm`](//github.com/libp2p/go-libp2p-swarm) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-swarm.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-swarm) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-swarm/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-swarm) | reference implementation | +| **Transport** | +| [`go-libp2p-transport`](//github.com/libp2p/go-libp2p-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-transport) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-transport) | interfaces | +| [`go-ws-transport`](//github.com/libp2p/go-ws-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-ws-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-ws-transport) | [![codecov](https://codecov.io/gh/libp2p/go-ws-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-ws-transport) | WebSocket transport | +| [`go-tcp-transport`](//github.com/libp2p/go-tcp-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-tcp-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-tcp-transport) | [![codecov](https://codecov.io/gh/libp2p/go-tcp-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-tcp-transport) | TCP transport | +| [`go-libp2p-quic-transport`](//github.com/libp2p/go-libp2p-quic-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-quic-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-quic-transport) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-quic-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-quic-transport) | QUIC transport | +| [`go-udp-transport`](//github.com/libp2p/go-udp-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-udp-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-udp-transport) | [![codecov](https://codecov.io/gh/libp2p/go-udp-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-udp-transport) | UDP transport | +| [`go-utp-transport`](//github.com/libp2p/go-utp-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-utp-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-utp-transport) | [![codecov](https://codecov.io/gh/libp2p/go-utp-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-utp-transport) | uTorrent transport (UTP) | +| [`go-libp2p-circuit`](//github.com/libp2p/go-libp2p-circuit) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-circuit.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-circuit) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-circuit/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-circuit) | relay transport | +| [`go-libp2p-transport-upgrader`](//github.com/libp2p/go-libp2p-transport-upgrader) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-transport-upgrader.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-transport-upgrader) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-transport-upgrader/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-transport-upgrader) | upgrades multiaddr-net connections into full libp2p transports | +| [`go-libp2p-reuseport-transport`](//github.com/libp2p/go-libp2p-reuseport-transport) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-reuseport-transport.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-reuseport-transport) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-reuseport-transport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-reuseport-transport) | partial transport for building transports that reuse ports | +| **Encrypted Channels** | +| [`go-conn-security`](//github.com/libp2p/go-conn-security) | [![Travis CI](https://travis-ci.com/libp2p/go-conn-security.svg?branch=master)](https://travis-ci.com/libp2p/go-conn-security) | [![codecov](https://codecov.io/gh/libp2p/go-conn-security/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-conn-security) | interfaces | +| [`go-libp2p-secio`](//github.com/libp2p/go-libp2p-secio) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-secio.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-secio) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-secio/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-secio) | SecIO crypto channel | +| [`go-conn-security-multistream`](//github.com/libp2p/go-conn-security-multistream) | [![Travis CI](https://travis-ci.com/libp2p/go-conn-security-multistream.svg?branch=master)](https://travis-ci.com/libp2p/go-conn-security-multistream) | [![codecov](https://codecov.io/gh/libp2p/go-conn-security-multistream/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-conn-security-multistream) | multistream multiplexed meta crypto channel | +| **Private Network** | +| [`go-libp2p-interface-pnet`](//github.com/libp2p/go-libp2p-interface-pnet) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-interface-pnet.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-interface-pnet) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-interface-pnet/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-interface-pnet) | interfaces | +| [`go-libp2p-pnet`](//github.com/libp2p/go-libp2p-pnet) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-pnet.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-pnet) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-pnet/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-pnet) | reference implementation | +| **Stream Muxers** | +| [`go-stream-muxer`](//github.com/libp2p/go-stream-muxer) | [![Travis CI](https://travis-ci.com/libp2p/go-stream-muxer.svg?branch=master)](https://travis-ci.com/libp2p/go-stream-muxer) | [![codecov](https://codecov.io/gh/libp2p/go-stream-muxer/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-stream-muxer) | interfaces | +| [`go-smux-yamux`](//github.com/whyrusleeping/go-smux-yamux) | [![Travis CI](https://travis-ci.com/whyrusleeping/go-smux-yamux.svg?branch=master)](https://travis-ci.com/whyrusleeping/go-smux-yamux) | [![codecov](https://codecov.io/gh/whyrusleeping/go-smux-yamux/branch/master/graph/badge.svg)](https://codecov.io/gh/whyrusleeping/go-smux-yamux) | YAMUX stream multiplexer | +| [`go-smux-multiplex`](//github.com/whyrusleeping/go-smux-multiplex) | [![Travis CI](https://travis-ci.com/whyrusleeping/go-smux-multiplex.svg?branch=master)](https://travis-ci.com/whyrusleeping/go-smux-multiplex) | [![codecov](https://codecov.io/gh/whyrusleeping/go-smux-multiplex/branch/master/graph/badge.svg)](https://codecov.io/gh/whyrusleeping/go-smux-multiplex) | MPLEX stream multiplexer | +| **NAT Traversal** | +| [`go-libp2p-nat`](//github.com/libp2p/go-libp2p-nat) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-nat.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-nat) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-nat/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-nat) | | +| **Peerstore** | +| [`go-libp2p-peerstore`](//github.com/libp2p/go-libp2p-peerstore) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-peerstore.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-peerstore) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-peerstore/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-peerstore) | interfaces and reference implementation | +| **Connection Manager** | +| [`go-libp2p-interface-connmgr`](//github.com/libp2p/go-libp2p-interface-connmgr) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-interface-connmgr.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-interface-connmgr) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-interface-connmgr/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-interface-connmgr) | interface | +| [`go-libp2p-connmgr`](//github.com/libp2p/go-libp2p-connmgr) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-connmgr.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-connmgr) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-connmgr/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-connmgr) | reference implementation | +| **Routing** | +| [`go-libp2p-routing`](//github.com/libp2p/go-libp2p-routing) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-routing.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-routing) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-routing/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-routing) | routing interfaces | +| [`go-libp2p-record`](//github.com/libp2p/go-libp2p-record) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-record.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-record) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-record/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-record) | record type and validator logic | +| [`go-libp2p-routing-helpers`](//github.com/libp2p/go-libp2p-routing-helpers) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-routing-helpers.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-routing-helpers) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers) | helpers for composing routers | +| [`go-libp2p-kad-dht`](//github.com/libp2p/go-libp2p-kad-dht) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-kad-dht.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-kad-dht) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-kad-dht/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-kad-dht) | Kademlia-like router | +| [`go-libp2p-pubsub-router`](//github.com/libp2p/go-libp2p-pubsub-router) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-pubsub-router.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-pubsub-router) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router) | record-store over pubsub adapter | +| **Consensus** | +| [`go-libp2p-consensus`](//github.com/libp2p/go-libp2p-consensus) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-consensus.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-consensus) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-consensus/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-consensus) | consensus protocols interfaces | +| [`go-libp2p-raft`](//github.com/libp2p/go-libp2p-raft) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-raft.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-raft) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-raft/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-raft) | consensus implementation over raft | +| **Pubsub** | +| [`go-libp2p-pubsub`](//github.com/libp2p/go-libp2p-pubsub) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-pubsub.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-pubsub) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-pubsub/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-pubsub) | multiple pubsub over libp2p implementations | +| **RPC** | +| [`go-libp2p-gorpc`](//github.com/libp2p/go-libp2p-gorpc) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-gorpc.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-gorpc) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-gorpc/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-gorpc) | a simple RPC library for libp2p | +| **Metrics** | +| [`go-libp2p-metrics`](//github.com/libp2p/go-libp2p-metrics) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-metrics.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-metrics) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-metrics/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-metrics) | libp2p metrics interfaces/collectors | +| **Data Types** | +| [`go-libp2p-peer`](//github.com/libp2p/go-libp2p-peer) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-peer.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-peer) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-peer/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-peer) | libp2p peer-ID datatype | +| [`go-libp2p-crypto`](//github.com/libp2p/go-libp2p-crypto) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-crypto.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-crypto) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-crypto/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-crypto) | libp2p key types | +| [`go-libp2p-protocol`](//github.com/libp2p/go-libp2p-protocol) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-protocol.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-protocol) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-protocol/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-protocol) | libp2p protocol datatype | +| [`go-libp2p-kbucket`](//github.com/libp2p/go-libp2p-kbucket) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-kbucket.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-kbucket) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-kbucket/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-kbucket) | Kademlia routing table helper types | +| **Utilities/miscellaneous** | +| [`go-libp2p-loggables`](//github.com/libp2p/go-libp2p-loggables) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-loggables.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-loggables) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-loggables/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-loggables) | logging helpers | +| [`go-maddr-filter`](//github.com/libp2p/go-maddr-filter) | [![Travis CI](https://travis-ci.com/libp2p/go-maddr-filter.svg?branch=master)](https://travis-ci.com/libp2p/go-maddr-filter) | [![codecov](https://codecov.io/gh/libp2p/go-maddr-filter/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-maddr-filter) | multiaddr filtering helpers | +| [`go-libp2p-netutil`](//github.com/libp2p/go-libp2p-netutil) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-netutil.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-netutil) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-netutil/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-netutil) | misc utilities | +| [`go-msgio`](//github.com/libp2p/go-msgio) | [![Travis CI](https://travis-ci.com/libp2p/go-msgio.svg?branch=master)](https://travis-ci.com/libp2p/go-msgio) | [![codecov](https://codecov.io/gh/libp2p/go-msgio/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-msgio) | length prefixed data channel | +| [`go-addr-util`](//github.com/libp2p/go-addr-util) | [![Travis CI](https://travis-ci.com/libp2p/go-addr-util.svg?branch=master)](https://travis-ci.com/libp2p/go-addr-util) | [![codecov](https://codecov.io/gh/libp2p/go-addr-util/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-addr-util) | address utilities for libp2p swarm | +| [`go-buffer-pool`](//github.com/libp2p/go-buffer-pool) | [![Travis CI](https://travis-ci.com/libp2p/go-buffer-pool.svg?branch=master)](https://travis-ci.com/libp2p/go-buffer-pool) | [![codecov](https://codecov.io/gh/libp2p/go-buffer-pool/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-buffer-pool) | a variable size buffer pool for go | +| [`go-libp2p-routing-helpers`](//github.com/libp2p/go-libp2p-routing-helpers) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-routing-helpers.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-routing-helpers) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers) | routing helpers | +| [`go-reuseport`](//github.com/libp2p/go-reuseport) | [![Travis CI](https://travis-ci.com/libp2p/go-reuseport.svg?branch=master)](https://travis-ci.com/libp2p/go-reuseport) | [![codecov](https://codecov.io/gh/libp2p/go-reuseport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-reuseport) | enables reuse of addresses | +| [`go-sockaddr`](//github.com/libp2p/go-sockaddr) | [![Travis CI](https://travis-ci.com/libp2p/go-sockaddr.svg?branch=master)](https://travis-ci.com/libp2p/go-sockaddr) | [![codecov](https://codecov.io/gh/libp2p/go-sockaddr/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-sockaddr) | utils for sockaddr conversions | +| [`go-flow-metrics`](//github.com/libp2p/go-flow-metrics) | [![Travis CI](https://travis-ci.com/libp2p/go-flow-metrics.svg?branch=master)](https://travis-ci.com/libp2p/go-flow-metrics) | [![codecov](https://codecov.io/gh/libp2p/go-flow-metrics/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-flow-metrics) | metrics library | +| **Testing and examples** | +| [`go-testutil`](//github.com/libp2p/go-testutil) | [![Travis CI](https://travis-ci.com/libp2p/go-testutil.svg?branch=master)](https://travis-ci.com/libp2p/go-testutil) | [![codecov](https://codecov.io/gh/libp2p/go-testutil/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-testutil) | a collection of testing utilities for ipfs and libp2p | +| [`go-libp2p-examples`](//github.com/libp2p/go-libp2p-examples) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-examples.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-examples) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-examples/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-examples) | go-libp2p examples and tutorials | +| [`go-libp2p-circuit-progs`](//github.com/libp2p/go-libp2p-circuit-progs) | [![Travis CI](https://travis-ci.com/libp2p/go-libp2p-circuit-progs.svg?branch=master)](https://travis-ci.com/libp2p/go-libp2p-circuit-progs) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-circuit-progs/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-libp2p-circuit-progs) | testing programs for go-libp2p-circuit | + +# Contribute + +go-libp2p is part of [The IPFS Project](https://github.com/ipfs/ipfs), and is MIT licensed open source software. We welcome contributions big and small! Take a look at the [community contributing notes](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md). Please make sure to check the [issues](https://github.com/ipfs/go-libp2p/issues). Search the closed ones before reporting things, and help us with the open ones. + +Guidelines: + +- read the [libp2p spec](https://github.com/libp2p/specs) +- please make branches + pull-request, even if working on the main repository +- ask questions or talk about things in [Issues](https://github.com/libp2p/go-libp2p/issues), our [discussion forums](https://discuss.libp2p.io), or #libp2p or #ipfs on freenode. +- ensure you are able to contribute (no legal issues please-- we use the DCO) +- run `go fmt` before pushing any code +- run `golint` and `go vet` too -- some things (like protobuf files) are expected to fail. +- get in touch with @jbenet and @diasdavid about how best to contribute +- have fun! + +There's a few things you can do right now to help out: + - Go through the modules below and **check out existing issues**. This would be especially useful for modules in active development. Some knowledge of IPFS/libp2p may be required, as well as the infrasture behind it - for instance, you may need to read up on p2p and more complex operations like muxing to be able to help technically. + - **Perform code reviews**. + - **Add tests**. There can never be enough tests. + +--- + +The last gx published version of this module was: 6.0.41: QmTRN7hRxvGkxKxDdeudty7sRet4L7ZKZCqKsXHa79wmAc diff --git a/vendor/github.com/libp2p/go-libp2p/codecov.yml b/vendor/github.com/libp2p/go-libp2p/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-libp2p/config/config.go b/vendor/github.com/libp2p/go-libp2p/config/config.go new file mode 100644 index 00000000..79b04420 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/config/config.go @@ -0,0 +1,256 @@ +package config + +import ( + "context" + "fmt" + + bhost "github.com/libp2p/go-libp2p/p2p/host/basic" + relay "github.com/libp2p/go-libp2p/p2p/host/relay" + routed "github.com/libp2p/go-libp2p/p2p/host/routed" + + logging "github.com/ipfs/go-log" + circuit "github.com/libp2p/go-libp2p-circuit" + crypto "github.com/libp2p/go-libp2p-crypto" + discovery "github.com/libp2p/go-libp2p-discovery" + host "github.com/libp2p/go-libp2p-host" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + pnet "github.com/libp2p/go-libp2p-interface-pnet" + metrics "github.com/libp2p/go-libp2p-metrics" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + swarm "github.com/libp2p/go-libp2p-swarm" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + filter "github.com/libp2p/go-maddr-filter" + ma "github.com/multiformats/go-multiaddr" +) + +var log = logging.Logger("p2p-config") + +// AddrsFactory is a function that takes a set of multiaddrs we're listening on and +// returns the set of multiaddrs we should advertise to the network. +type AddrsFactory = bhost.AddrsFactory + +// NATManagerC is a NATManager constructor. +type NATManagerC func(inet.Network) bhost.NATManager + +type RoutingC func(host.Host) (routing.PeerRouting, error) + +// Config describes a set of settings for a libp2p node +// +// This is *not* a stable interface. Use the options defined in the root +// package. +type Config struct { + PeerKey crypto.PrivKey + + Transports []TptC + Muxers []MsMuxC + SecurityTransports []MsSecC + Insecure bool + Protector pnet.Protector + + RelayCustom bool + Relay bool + RelayOpts []circuit.RelayOpt + + ListenAddrs []ma.Multiaddr + AddrsFactory bhost.AddrsFactory + Filters *filter.Filters + + ConnManager ifconnmgr.ConnManager + NATManager NATManagerC + Peerstore pstore.Peerstore + Reporter metrics.Reporter + + DisablePing bool + + Routing RoutingC + + EnableAutoRelay bool +} + +// NewNode constructs a new libp2p Host from the Config. +// +// This function consumes the config. Do not reuse it (really!). +func (cfg *Config) NewNode(ctx context.Context) (host.Host, error) { + // Check this early. Prevents us from even *starting* without verifying this. + if pnet.ForcePrivateNetwork && cfg.Protector == nil { + log.Error("tried to create a libp2p node with no Private" + + " Network Protector but usage of Private Networks" + + " is forced by the enviroment") + // Note: This is *also* checked the upgrader itself so it'll be + // enforced even *if* you don't use the libp2p constructor. + return nil, pnet.ErrNotInPrivateNetwork + } + + if cfg.PeerKey == nil { + return nil, fmt.Errorf("no peer key specified") + } + + // Obtain Peer ID from public key + pid, err := peer.IDFromPublicKey(cfg.PeerKey.GetPublic()) + if err != nil { + return nil, err + } + + if cfg.Peerstore == nil { + return nil, fmt.Errorf("no peerstore specified") + } + + if !cfg.Insecure { + if err := cfg.Peerstore.AddPrivKey(pid, cfg.PeerKey); err != nil { + return nil, err + } + if err := cfg.Peerstore.AddPubKey(pid, cfg.PeerKey.GetPublic()); err != nil { + return nil, err + } + } + + // TODO: Make the swarm implementation configurable. + swrm := swarm.NewSwarm(ctx, pid, cfg.Peerstore, cfg.Reporter) + if cfg.Filters != nil { + swrm.Filters = cfg.Filters + } + + h, err := bhost.NewHost(ctx, swrm, &bhost.HostOpts{ + ConnManager: cfg.ConnManager, + AddrsFactory: cfg.AddrsFactory, + NATManager: cfg.NATManager, + EnablePing: !cfg.DisablePing, + }) + + if err != nil { + swrm.Close() + return nil, err + } + + if cfg.Relay { + // If we've enabled the relay, we should filter out relay + // addresses by default. + // + // TODO: We shouldn't be doing this here. + oldFactory := h.AddrsFactory + h.AddrsFactory = func(addrs []ma.Multiaddr) []ma.Multiaddr { + return oldFactory(relay.Filter(addrs)) + } + } + + upgrader := new(tptu.Upgrader) + upgrader.Protector = cfg.Protector + upgrader.Filters = swrm.Filters + if cfg.Insecure { + upgrader.Secure = makeInsecureTransport(pid) + } else { + upgrader.Secure, err = makeSecurityTransport(h, cfg.SecurityTransports) + if err != nil { + h.Close() + return nil, err + } + } + + upgrader.Muxer, err = makeMuxer(h, cfg.Muxers) + if err != nil { + h.Close() + return nil, err + } + + tpts, err := makeTransports(h, upgrader, cfg.Transports) + if err != nil { + h.Close() + return nil, err + } + for _, t := range tpts { + err = swrm.AddTransport(t) + if err != nil { + h.Close() + return nil, err + } + } + + if cfg.Relay { + err := circuit.AddRelayTransport(swrm.Context(), h, upgrader, cfg.RelayOpts...) + if err != nil { + h.Close() + return nil, err + } + } + + // TODO: This method succeeds if listening on one address succeeds. We + // should probably fail if listening on *any* addr fails. + if err := h.Network().Listen(cfg.ListenAddrs...); err != nil { + h.Close() + return nil, err + } + + // Configure routing and autorelay + var router routing.PeerRouting + if cfg.Routing != nil { + router, err = cfg.Routing(h) + if err != nil { + h.Close() + return nil, err + } + } + + if cfg.EnableAutoRelay { + if !cfg.Relay { + h.Close() + return nil, fmt.Errorf("cannot enable autorelay; relay is not enabled") + } + + if router == nil { + h.Close() + return nil, fmt.Errorf("cannot enable autorelay; no routing for discovery") + } + + crouter, ok := router.(routing.ContentRouting) + if !ok { + h.Close() + return nil, fmt.Errorf("cannot enable autorelay; no suitable routing for discovery") + } + + discovery := discovery.NewRoutingDiscovery(crouter) + + hop := false + for _, opt := range cfg.RelayOpts { + if opt == circuit.OptHop { + hop = true + break + } + } + + if hop { + // advertise ourselves + relay.Advertise(ctx, discovery) + } else { + _ = relay.NewAutoRelay(swrm.Context(), h, discovery, router) + } + } + + // start the host background tasks + h.Start() + + if router != nil { + return routed.Wrap(h, router), nil + } + return h, nil +} + +// Option is a libp2p config option that can be given to the libp2p constructor +// (`libp2p.New`). +type Option func(cfg *Config) error + +// Apply applies the given options to the config, returning the first error +// encountered (if any). +func (cfg *Config) Apply(opts ...Option) error { + for _, opt := range opts { + if opt == nil { + continue + } + if err := opt(cfg); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/config/constructor_types.go b/vendor/github.com/libp2p/go-libp2p/config/constructor_types.go new file mode 100644 index 00000000..0cf4163f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/config/constructor_types.go @@ -0,0 +1,62 @@ +package config + +import ( + "fmt" + "reflect" + + security "github.com/libp2p/go-conn-security" + crypto "github.com/libp2p/go-libp2p-crypto" + host "github.com/libp2p/go-libp2p-host" + pnet "github.com/libp2p/go-libp2p-interface-pnet" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + transport "github.com/libp2p/go-libp2p-transport" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + filter "github.com/libp2p/go-maddr-filter" + mux "github.com/libp2p/go-stream-muxer" +) + +var ( + // interfaces + hostType = reflect.TypeOf((*host.Host)(nil)).Elem() + networkType = reflect.TypeOf((*inet.Network)(nil)).Elem() + transportType = reflect.TypeOf((*transport.Transport)(nil)).Elem() + muxType = reflect.TypeOf((*mux.Transport)(nil)).Elem() + securityType = reflect.TypeOf((*security.Transport)(nil)).Elem() + protectorType = reflect.TypeOf((*pnet.Protector)(nil)).Elem() + privKeyType = reflect.TypeOf((*crypto.PrivKey)(nil)).Elem() + pubKeyType = reflect.TypeOf((*crypto.PubKey)(nil)).Elem() + pstoreType = reflect.TypeOf((*pstore.Peerstore)(nil)).Elem() + + // concrete types + peerIDType = reflect.TypeOf((peer.ID)("")) + filtersType = reflect.TypeOf((*filter.Filters)(nil)) + upgraderType = reflect.TypeOf((*tptu.Upgrader)(nil)) +) + +var argTypes = map[reflect.Type]constructor{ + upgraderType: func(h host.Host, u *tptu.Upgrader) interface{} { return u }, + hostType: func(h host.Host, u *tptu.Upgrader) interface{} { return h }, + networkType: func(h host.Host, u *tptu.Upgrader) interface{} { return h.Network() }, + muxType: func(h host.Host, u *tptu.Upgrader) interface{} { return u.Muxer }, + securityType: func(h host.Host, u *tptu.Upgrader) interface{} { return u.Secure }, + protectorType: func(h host.Host, u *tptu.Upgrader) interface{} { return u.Protector }, + filtersType: func(h host.Host, u *tptu.Upgrader) interface{} { return u.Filters }, + peerIDType: func(h host.Host, u *tptu.Upgrader) interface{} { return h.ID() }, + privKeyType: func(h host.Host, u *tptu.Upgrader) interface{} { return h.Peerstore().PrivKey(h.ID()) }, + pubKeyType: func(h host.Host, u *tptu.Upgrader) interface{} { return h.Peerstore().PubKey(h.ID()) }, + pstoreType: func(h host.Host, u *tptu.Upgrader) interface{} { return h.Peerstore() }, +} + +func newArgTypeSet(types ...reflect.Type) map[reflect.Type]constructor { + result := make(map[reflect.Type]constructor, len(types)) + for _, ty := range types { + c, ok := argTypes[ty] + if !ok { + panic(fmt.Sprintf("missing constructor for type %s", ty)) + } + result[ty] = c + } + return result +} diff --git a/vendor/github.com/libp2p/go-libp2p/config/muxer.go b/vendor/github.com/libp2p/go-libp2p/config/muxer.go new file mode 100644 index 00000000..ee2adeb0 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/config/muxer.go @@ -0,0 +1,63 @@ +package config + +import ( + "fmt" + + host "github.com/libp2p/go-libp2p-host" + mux "github.com/libp2p/go-stream-muxer" + msmux "github.com/whyrusleeping/go-smux-multistream" +) + +// MuxC is a stream multiplex transport constructor +type MuxC func(h host.Host) (mux.Transport, error) + +// MsMuxC is a tuple containing a multiplex transport constructor and a protocol +// ID. +type MsMuxC struct { + MuxC + ID string +} + +var muxArgTypes = newArgTypeSet(hostType, networkType, peerIDType, pstoreType) + +// MuxerConstructor creates a multiplex constructor from the passed parameter +// using reflection. +func MuxerConstructor(m interface{}) (MuxC, error) { + // Already constructed? + if t, ok := m.(mux.Transport); ok { + return func(_ host.Host) (mux.Transport, error) { + return t, nil + }, nil + } + + ctor, err := makeConstructor(m, muxType, muxArgTypes) + if err != nil { + return nil, err + } + return func(h host.Host) (mux.Transport, error) { + t, err := ctor(h, nil) + if err != nil { + return nil, err + } + return t.(mux.Transport), nil + }, nil +} + +func makeMuxer(h host.Host, tpts []MsMuxC) (mux.Transport, error) { + muxMuxer := msmux.NewBlankTransport() + transportSet := make(map[string]struct{}, len(tpts)) + for _, tptC := range tpts { + if _, ok := transportSet[tptC.ID]; ok { + return nil, fmt.Errorf("duplicate muxer transport: %s", tptC.ID) + } + transportSet[tptC.ID] = struct{}{} + } + for _, tptC := range tpts { + tpt, err := tptC.MuxC(h) + if err != nil { + return nil, err + } + muxMuxer.AddTransport(tptC.ID, tpt) + } + return muxMuxer, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/config/reflection_magic.go b/vendor/github.com/libp2p/go-libp2p/config/reflection_magic.go new file mode 100644 index 00000000..d66a26e2 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/config/reflection_magic.go @@ -0,0 +1,126 @@ +package config + +import ( + "fmt" + "reflect" + "runtime" + + host "github.com/libp2p/go-libp2p-host" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" +) + +var errorType = reflect.TypeOf((*error)(nil)).Elem() + +// checks if a function returns either the specified type or the specified type +// and an error. +func checkReturnType(fnType, tptType reflect.Type) error { + switch fnType.NumOut() { + case 2: + if fnType.Out(1) != errorType { + return fmt.Errorf("expected (optional) second return value from transport constructor to be an error") + } + + fallthrough + case 1: + if !fnType.Out(0).Implements(tptType) { + return fmt.Errorf("transport constructor returns %s which doesn't implement %s", fnType.Out(0), tptType) + } + default: + return fmt.Errorf("expected transport constructor to return a transport and, optionally, an error") + } + return nil +} + +// Handles return values with optional errors. That is, return values of the +// form `(something, error)` or just `something`. +// +// Panics if the return value isn't of the correct form. +func handleReturnValue(out []reflect.Value) (interface{}, error) { + switch len(out) { + case 2: + err := out[1] + if err != (reflect.Value{}) && !err.IsNil() { + return nil, err.Interface().(error) + } + fallthrough + case 1: + tpt := out[0] + + // Check for nil value and nil error. + if tpt == (reflect.Value{}) { + return nil, fmt.Errorf("unspecified error") + } + switch tpt.Kind() { + case reflect.Ptr, reflect.Interface, reflect.Func: + if tpt.IsNil() { + return nil, fmt.Errorf("unspecified error") + } + } + + return tpt.Interface(), nil + default: + panic("expected 1 or 2 return values from transport constructor") + } +} + +// calls the transport constructor and annotates the error with the name of the constructor. +func callConstructor(c reflect.Value, args []reflect.Value) (interface{}, error) { + val, err := handleReturnValue(c.Call(args)) + if err != nil { + name := runtime.FuncForPC(c.Pointer()).Name() + if name != "" { + // makes debugging easier + return nil, fmt.Errorf("transport constructor %s failed: %s", name, err) + } + } + return val, err +} + +type constructor func(h host.Host, u *tptu.Upgrader) interface{} + +func makeArgumentConstructors(fnType reflect.Type, argTypes map[reflect.Type]constructor) ([]constructor, error) { + out := make([]constructor, fnType.NumIn()) + for i := range out { + argType := fnType.In(i) + c, ok := argTypes[argType] + if !ok { + return nil, fmt.Errorf("argument %d has an unexpected type %s", i, argType.Name()) + } + out[i] = c + } + return out, nil +} + +// makes a transport constructor. +func makeConstructor( + tpt interface{}, + tptType reflect.Type, + argTypes map[reflect.Type]constructor, +) (func(host.Host, *tptu.Upgrader) (interface{}, error), error) { + v := reflect.ValueOf(tpt) + // avoid panicing on nil/zero value. + if v == (reflect.Value{}) { + return nil, fmt.Errorf("expected a transport or transport constructor, got a %T", tpt) + } + t := v.Type() + if t.Kind() != reflect.Func { + return nil, fmt.Errorf("expected a transport or transport constructor, got a %T", tpt) + } + + if err := checkReturnType(t, tptType); err != nil { + return nil, err + } + + argConstructors, err := makeArgumentConstructors(t, argTypes) + if err != nil { + return nil, err + } + + return func(h host.Host, u *tptu.Upgrader) (interface{}, error) { + arguments := make([]reflect.Value, len(argConstructors)) + for i, makeArg := range argConstructors { + arguments[i] = reflect.ValueOf(makeArg(h, u)) + } + return callConstructor(v, arguments) + }, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/config/security.go b/vendor/github.com/libp2p/go-libp2p/config/security.go new file mode 100644 index 00000000..2798fda8 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/config/security.go @@ -0,0 +1,77 @@ +package config + +import ( + "fmt" + + security "github.com/libp2p/go-conn-security" + csms "github.com/libp2p/go-conn-security-multistream" + insecure "github.com/libp2p/go-conn-security/insecure" + host "github.com/libp2p/go-libp2p-host" + peer "github.com/libp2p/go-libp2p-peer" +) + +// SecC is a security transport constructor +type SecC func(h host.Host) (security.Transport, error) + +// MsSecC is a tuple containing a security transport constructor and a protocol +// ID. +type MsSecC struct { + SecC + ID string +} + +var securityArgTypes = newArgTypeSet( + hostType, networkType, peerIDType, + privKeyType, pubKeyType, pstoreType, +) + +// SecurityConstructor creates a security constructor from the passed parameter +// using reflection. +func SecurityConstructor(sec interface{}) (SecC, error) { + // Already constructed? + if t, ok := sec.(security.Transport); ok { + return func(_ host.Host) (security.Transport, error) { + return t, nil + }, nil + } + + ctor, err := makeConstructor(sec, securityType, securityArgTypes) + if err != nil { + return nil, err + } + return func(h host.Host) (security.Transport, error) { + t, err := ctor(h, nil) + if err != nil { + return nil, err + } + return t.(security.Transport), nil + }, nil +} + +func makeInsecureTransport(id peer.ID) security.Transport { + secMuxer := new(csms.SSMuxer) + secMuxer.AddTransport(insecure.ID, insecure.New(id)) + return secMuxer +} + +func makeSecurityTransport(h host.Host, tpts []MsSecC) (security.Transport, error) { + secMuxer := new(csms.SSMuxer) + transportSet := make(map[string]struct{}, len(tpts)) + for _, tptC := range tpts { + if _, ok := transportSet[tptC.ID]; ok { + return nil, fmt.Errorf("duplicate security transport: %s", tptC.ID) + } + transportSet[tptC.ID] = struct{}{} + } + for _, tptC := range tpts { + tpt, err := tptC.SecC(h) + if err != nil { + return nil, err + } + if _, ok := tpt.(*insecure.Transport); ok { + return nil, fmt.Errorf("cannot construct libp2p with an insecure transport, set the Insecure config option instead") + } + secMuxer.AddTransport(tptC.ID, tpt) + } + return secMuxer, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/config/transport.go b/vendor/github.com/libp2p/go-libp2p/config/transport.go new file mode 100644 index 00000000..d9b4414d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/config/transport.go @@ -0,0 +1,66 @@ +package config + +import ( + host "github.com/libp2p/go-libp2p-host" + transport "github.com/libp2p/go-libp2p-transport" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" +) + +// TptC is the type for libp2p transport constructors. You probably won't ever +// implement this function interface directly. Instead, pass your transport +// constructor to TransportConstructor. +type TptC func(h host.Host, u *tptu.Upgrader) (transport.Transport, error) + +var transportArgTypes = argTypes + +// TransportConstructor uses reflection to turn a function that constructs a +// transport into a TptC. +// +// You can pass either a constructed transport (something that implements +// `transport.Transport`) or a function that takes any of: +// +// * The local peer ID. +// * A transport connection upgrader. +// * A private key. +// * A public key. +// * A Host. +// * A Network. +// * A Peerstore. +// * An address filter. +// * A security transport. +// * A stream multiplexer transport. +// * A private network protector. +// +// And returns a type implementing transport.Transport and, optionally, an error +// (as the second argument). +func TransportConstructor(tpt interface{}) (TptC, error) { + // Already constructed? + if t, ok := tpt.(transport.Transport); ok { + return func(_ host.Host, _ *tptu.Upgrader) (transport.Transport, error) { + return t, nil + }, nil + } + ctor, err := makeConstructor(tpt, transportType, transportArgTypes) + if err != nil { + return nil, err + } + return func(h host.Host, u *tptu.Upgrader) (transport.Transport, error) { + t, err := ctor(h, u) + if err != nil { + return nil, err + } + return t.(transport.Transport), nil + }, nil +} + +func makeTransports(h host.Host, u *tptu.Upgrader, tpts []TptC) ([]transport.Transport, error) { + transports := make([]transport.Transport, len(tpts)) + for i, tC := range tpts { + t, err := tC(h, u) + if err != nil { + return nil, err + } + transports[i] = t + } + return transports, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/defaults.go b/vendor/github.com/libp2p/go-libp2p/defaults.go new file mode 100644 index 00000000..679fd7af --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/defaults.go @@ -0,0 +1,140 @@ +package libp2p + +// This file contains all the default configuration options. + +import ( + "crypto/rand" + + crypto "github.com/libp2p/go-libp2p-crypto" + pstoremem "github.com/libp2p/go-libp2p-peerstore/pstoremem" + secio "github.com/libp2p/go-libp2p-secio" + tcp "github.com/libp2p/go-tcp-transport" + ws "github.com/libp2p/go-ws-transport" + multiaddr "github.com/multiformats/go-multiaddr" + mplex "github.com/whyrusleeping/go-smux-multiplex" + yamux "github.com/whyrusleeping/go-smux-yamux" +) + +// DefaultSecurity is the default security option. +// +// Useful when you want to extend, but not replace, the supported transport +// security protocols. +var DefaultSecurity = Security(secio.ID, secio.New) + +// DefaultMuxers configures libp2p to use the stream connection multiplexers. +// +// Use this option when you want to *extend* the set of multiplexers used by +// libp2p instead of replacing them. +var DefaultMuxers = ChainOptions( + Muxer("/yamux/1.0.0", yamux.DefaultTransport), + Muxer("/mplex/6.7.0", mplex.DefaultTransport), +) + +// DefaultTransports are the default libp2p transports. +// +// Use this option when you want to *extend* the set of transports used by +// libp2p instead of replacing them. +var DefaultTransports = ChainOptions( + Transport(tcp.NewTCPTransport), + Transport(ws.New), +) + +// DefaultPeerstore configures libp2p to use the default peerstore. +var DefaultPeerstore Option = func(cfg *Config) error { + return cfg.Apply(Peerstore(pstoremem.NewPeerstore())) +} + +// RandomIdentity generates a random identity (default behaviour) +var RandomIdentity = func(cfg *Config) error { + priv, _, err := crypto.GenerateKeyPairWithReader(crypto.RSA, 2048, rand.Reader) + if err != nil { + return err + } + return cfg.Apply(Identity(priv)) +} + +// DefaultListenAddrs configures libp2p to use default listen address +var DefaultListenAddrs = func(cfg *Config) error { + defaultIP4ListenAddr, err := multiaddr.NewMultiaddr("/ip4/0.0.0.0/tcp/0") + if err != nil { + return err + } + + defaultIP6ListenAddr, err := multiaddr.NewMultiaddr("/ip6/::/tcp/0") + if err != nil { + return err + } + return cfg.Apply(ListenAddrs( + defaultIP4ListenAddr, + defaultIP6ListenAddr, + )) +} + +// DefaultEnableRelay enables relay dialing and listening by default +var DefaultEnableRelay = func(cfg *Config) error { + return cfg.Apply(EnableRelay()) +} + +// Complete list of default options and when to fallback on them. +// +// Please *DON'T* specify default options any other way. Putting this all here +// makes tracking defaults *much* easier. +var defaults = []struct { + fallback func(cfg *Config) bool + opt Option +}{ + { + fallback: func(cfg *Config) bool { return cfg.Transports == nil && cfg.ListenAddrs == nil }, + opt: DefaultListenAddrs, + }, + { + fallback: func(cfg *Config) bool { return cfg.Transports == nil }, + opt: DefaultTransports, + }, + { + fallback: func(cfg *Config) bool { return cfg.Muxers == nil }, + opt: DefaultMuxers, + }, + { + fallback: func(cfg *Config) bool { return !cfg.Insecure && cfg.SecurityTransports == nil }, + opt: DefaultSecurity, + }, + { + fallback: func(cfg *Config) bool { return cfg.PeerKey == nil }, + opt: RandomIdentity, + }, + { + fallback: func(cfg *Config) bool { return cfg.Peerstore == nil }, + opt: DefaultPeerstore, + }, + { + fallback: func(cfg *Config) bool { return !cfg.RelayCustom }, + opt: DefaultEnableRelay, + }, +} + +// Defaults configures libp2p to use the default options. Can be combined with +// other options to *extend* the default options. +var Defaults Option = func(cfg *Config) error { + for _, def := range defaults { + if err := cfg.Apply(def.opt); err != nil { + return err + } + } + return nil +} + +// FallbackDefaults applies default options to the libp2p node if and only if no +// other relevent options have been applied. will be appended to the options +// passed into New. +var FallbackDefaults Option = func(cfg *Config) error { + for _, def := range defaults { + if !def.fallback(cfg) { + continue + } + if err := cfg.Apply(def.opt); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/error_util.go b/vendor/github.com/libp2p/go-libp2p/error_util.go new file mode 100644 index 00000000..86827f4e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/error_util.go @@ -0,0 +1,17 @@ +package libp2p + +import ( + "fmt" + "runtime" +) + +func traceError(err error, skip int) error { + if err == nil { + return nil + } + _, file, line, ok := runtime.Caller(skip + 1) + if !ok { + return err + } + return fmt.Errorf("%s:%d: %s", file, line, err) +} diff --git a/vendor/github.com/libp2p/go-libp2p/go.mod b/vendor/github.com/libp2p/go-libp2p/go.mod new file mode 100644 index 00000000..8bd4be5b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/go.mod @@ -0,0 +1,47 @@ +module github.com/libp2p/go-libp2p + +require ( + github.com/gogo/protobuf v1.2.1 + github.com/ipfs/go-cid v0.0.1 + github.com/ipfs/go-detect-race v0.0.1 + github.com/ipfs/go-ipfs-util v0.0.1 + github.com/ipfs/go-log v0.0.1 + github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 + github.com/libp2p/go-conn-security v0.0.1 + github.com/libp2p/go-conn-security-multistream v0.0.1 + github.com/libp2p/go-libp2p-autonat v0.0.4 + github.com/libp2p/go-libp2p-blankhost v0.0.1 + github.com/libp2p/go-libp2p-circuit v0.0.4 + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-discovery v0.0.2 + github.com/libp2p/go-libp2p-host v0.0.1 + github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 + github.com/libp2p/go-libp2p-interface-pnet v0.0.1 + github.com/libp2p/go-libp2p-loggables v0.0.1 + github.com/libp2p/go-libp2p-metrics v0.0.1 + github.com/libp2p/go-libp2p-nat v0.0.4 + github.com/libp2p/go-libp2p-net v0.0.2 + github.com/libp2p/go-libp2p-netutil v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-peerstore v0.0.2 + github.com/libp2p/go-libp2p-protocol v0.0.1 + github.com/libp2p/go-libp2p-routing v0.0.1 + github.com/libp2p/go-libp2p-secio v0.0.2 + github.com/libp2p/go-libp2p-swarm v0.0.2 + github.com/libp2p/go-libp2p-transport v0.0.4 + github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 + github.com/libp2p/go-maddr-filter v0.0.1 + github.com/libp2p/go-stream-muxer v0.0.1 + github.com/libp2p/go-tcp-transport v0.0.2 + github.com/libp2p/go-testutil v0.0.1 + github.com/libp2p/go-ws-transport v0.0.2 + github.com/miekg/dns v1.1.4 // indirect + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-dns v0.0.2 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/multiformats/go-multistream v0.0.1 + github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible + github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible + github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible + github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30 +) diff --git a/vendor/github.com/libp2p/go-libp2p/go.sum b/vendor/github.com/libp2p/go-libp2p/go.sum new file mode 100644 index 00000000..0526379e --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/go.sum @@ -0,0 +1,261 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/ipfs/go-cid v0.0.1 h1:GBjWPktLnNyX0JiQCNFpUuUSoMw5KMyqrsejHYlILBE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= +github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= +github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-libp2p-autonat v0.0.4 h1:cZzdB9KW1ZkHnSjLCB6aFNw47XS4r+SecCVMuVB1xgo= +github.com/libp2p/go-libp2p-autonat v0.0.4/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= +github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= +github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= +github.com/libp2p/go-libp2p-circuit v0.0.4 h1:yOgEadnSVFj3e9KLBuLG+edqCImeav0VXxXvcimpOUQ= +github.com/libp2p/go-libp2p-circuit v0.0.4/go.mod h1:p1cHJnB9xnX5/1vZLkXgKwmNEOQQuF/Hp+SkATXnXYk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-discovery v0.0.2 h1:Rf+20nsFcCnHo4Kxvf8ofAft75+fW+cXy9FonNVyU/g= +github.com/libp2p/go-libp2p-discovery v0.0.2/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= +github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= +github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= +github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= +github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= +github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= +github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-nat v0.0.4 h1:+KXK324yaY701On8a0aGjTnw8467kW3ExKcqW2wwmyw= +github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= +github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= +github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-peerstore v0.0.2 h1:Lirt3A1Oq11jszJ4SPNBo8chNv61UWXE538KUEGxTVk= +github.com/libp2p/go-libp2p-peerstore v0.0.2/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= +github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= +github.com/libp2p/go-libp2p-secio v0.0.1 h1:CqE/RdsizOwItdgLe632iyft/w0tshDLmZGAiKDcUAI= +github.com/libp2p/go-libp2p-secio v0.0.1/go.mod h1:IdG6iQybdcYmbTzxp4J5dwtUEDTOvZrT0opIDVNPrJs= +github.com/libp2p/go-libp2p-secio v0.0.2 h1:P8Sv1aAQ9bdLb58T4T7kUC1kXsPovdUFhUSmVy4z3oM= +github.com/libp2p/go-libp2p-secio v0.0.2/go.mod h1:hS7HQ00MgLhRO/Wyu1bTX6ctJKhVpm+j2/S2A5UqYb0= +github.com/libp2p/go-libp2p-swarm v0.0.1 h1:Vne+hjaDwXqzgNwQ2vb2YKbnbOTyXjtS47stT66Apc4= +github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= +github.com/libp2p/go-libp2p-swarm v0.0.2 h1:cpHHXTeU2IgUu8LPemF7vaLPGtVC6VxMoll2EwqlC+E= +github.com/libp2p/go-libp2p-swarm v0.0.2/go.mod h1:n0cAAcKyndIrJWctQwjqXlAdIPBZzfdpBjx1SSvz30g= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-msgio v0.0.1 h1:znj97n5FtXGCLDwe9x8jpHmY770SW4WStBGcCDh6GJw= +github.com/libp2p/go-msgio v0.0.1/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-msgio v0.0.2 h1:ivPvEKHxmVkTClHzg6RXTYHqaJQ0V9cDbq+6lKb3UV0= +github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-nat v0.0.3 h1:l6fKV+p0Xa354EqQOQP+d8CivdLM4kl5GxC1hSc/UeI= +github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.1 h1:UIRneNxLDmEGNjGHpIiWzSWkZ5bhxMCP9x3Vh7BSc7E= +github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-reuseport-transport v0.0.2 h1:WglMwyXyBu61CMkjCCtnmqNqnjib0GIEjMiHTwR/KN4= +github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-tcp-transport v0.0.1 h1:WyvJVw2lYAnr6CU+GZZ4oCt06fvORlmvBlFX2+ZpZDM= +github.com/libp2p/go-tcp-transport v0.0.1/go.mod h1:mnjg0o0O5TmXUaUIanYPUqkW4+u6mK0en8rlpA6BBTs= +github.com/libp2p/go-tcp-transport v0.0.2 h1:EzOSRaHpyrGpJ5qe+9SaxJM1mrWlkSLFfNTufUkq0lg= +github.com/libp2p/go-tcp-transport v0.0.2/go.mod h1:VjZFHasNJ0QiJQNNwiFDy25qyGWTXQWs8GM5DR4/L1k= +github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= +github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= +github.com/libp2p/go-ws-transport v0.0.2 h1:PtK1AoM16nm96FwPBQoq+4T4t9LdDwOhkB+mdXuGSlg= +github.com/libp2p/go-ws-transport v0.0.2/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/miekg/dns v1.1.4 h1:rCMZsU2ScVSYcAsOXgmC6+AKOK+6pmQTOcw03nfwYV0= +github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= +github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= +github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible h1:BdYHctE9HJZLquG9tpTdwWcbG4FaX6tVKPGjCGgiVxo= +github.com/whyrusleeping/go-smux-multistream v2.0.2+incompatible/go.mod h1:dRWHHvc4HDQSHh9gbKEBbUZ+f2Q8iZTPG3UOGYODxSQ= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible h1:IGm/UP/JpEFS6D787sZnZg7RA6fZIR9c/Ms9DeAVNuk= +github.com/whyrusleeping/go-smux-yamux v2.0.8+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible h1:nVkExQ7pYlN9e45LcqTCOiDD0904fjtm0flnHZGbXkw= +github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible/go.mod h1:6qHUzBXUbB9MXmw3AUdB52L8sEb/hScCqOdW2kj/wuI= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30 h1:nMCC9Pwz1pxfC1Y6mYncdk+kq8d5aLx0Q+/gyZGE44M= +github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= +github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-libp2p/libp2p.go b/vendor/github.com/libp2p/go-libp2p/libp2p.go new file mode 100644 index 00000000..252c9a29 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/libp2p.go @@ -0,0 +1,72 @@ +package libp2p + +import ( + "context" + + config "github.com/libp2p/go-libp2p/config" + + host "github.com/libp2p/go-libp2p-host" +) + +// Config describes a set of settings for a libp2p node +type Config = config.Config + +// Option is a libp2p config option that can be given to the libp2p constructor +// (`libp2p.New`). +type Option = config.Option + +// ChainOptions chains multiple options into a single option. +func ChainOptions(opts ...Option) Option { + return func(cfg *Config) error { + for _, opt := range opts { + if opt == nil { + continue + } + if err := opt(cfg); err != nil { + return err + } + } + return nil + } +} + +// New constructs a new libp2p node with the given options, falling back on +// reasonable defaults. The defaults are: +// +// - If no transport and listen addresses are provided, the node listens to +// the multiaddresses "/ip4/0.0.0.0/tcp/0" and "/ip6/::/tcp/0"; +// +// - If no transport options are provided, the node uses TCP and websocket +// transport protocols; +// +// - If no multiplexer configuration is provided, the node is configured by +// default to use the "yamux/1.0.0" and "mplux/6.7.0" stream connection +// multiplexers; +// +// - If no security transport is provided, the host uses the go-libp2p's secio +// encrypted transport to encrypt all traffic; +// +// - If no peer identity is provided, it generates a random RSA 2048 key-par +// and derives a new identity from it; +// +// - If no peerstore is provided, the host is initialized with an empty +// peerstore. +// +// Canceling the passed context will stop the returned libp2p node. +func New(ctx context.Context, opts ...Option) (host.Host, error) { + return NewWithoutDefaults(ctx, append(opts, FallbackDefaults)...) +} + +// NewWithoutDefaults constructs a new libp2p node with the given options but +// *without* falling back on reasonable defaults. +// +// Warning: This function should not be considered a stable interface. We may +// choose to add required services at any time and, by using this function, you +// opt-out of any defaults we may provide. +func NewWithoutDefaults(ctx context.Context, opts ...Option) (host.Host, error) { + var cfg Config + if err := cfg.Apply(opts...); err != nil { + return nil, err + } + return cfg.NewNode(ctx) +} diff --git a/vendor/github.com/libp2p/go-libp2p/options.go b/vendor/github.com/libp2p/go-libp2p/options.go new file mode 100644 index 00000000..e98edda9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/options.go @@ -0,0 +1,320 @@ +package libp2p + +// This file contains all libp2p configuration options (except the defaults, +// those are in defaults.go) + +import ( + "fmt" + "net" + + config "github.com/libp2p/go-libp2p/config" + bhost "github.com/libp2p/go-libp2p/p2p/host/basic" + + circuit "github.com/libp2p/go-libp2p-circuit" + crypto "github.com/libp2p/go-libp2p-crypto" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + pnet "github.com/libp2p/go-libp2p-interface-pnet" + metrics "github.com/libp2p/go-libp2p-metrics" + pstore "github.com/libp2p/go-libp2p-peerstore" + filter "github.com/libp2p/go-maddr-filter" + ma "github.com/multiformats/go-multiaddr" +) + +// ListenAddrStrings configures libp2p to listen on the given (unparsed) +// addresses. +func ListenAddrStrings(s ...string) Option { + return func(cfg *Config) error { + for _, addrstr := range s { + a, err := ma.NewMultiaddr(addrstr) + if err != nil { + return err + } + cfg.ListenAddrs = append(cfg.ListenAddrs, a) + } + return nil + } +} + +// ListenAddrs configures libp2p to listen on the given addresses. +func ListenAddrs(addrs ...ma.Multiaddr) Option { + return func(cfg *Config) error { + cfg.ListenAddrs = append(cfg.ListenAddrs, addrs...) + return nil + } +} + +// Security configures libp2p to use the given security transport (or transport +// constructor). +// +// Name is the protocol name. +// +// The transport can be a constructed security.Transport or a function taking +// any subset of this libp2p node's: +// * Public key +// * Private key +// * Peer ID +// * Host +// * Network +// * Peerstore +func Security(name string, tpt interface{}) Option { + stpt, err := config.SecurityConstructor(tpt) + err = traceError(err, 1) + return func(cfg *Config) error { + if err != nil { + return err + } + if cfg.Insecure { + return fmt.Errorf("cannot use security transports with an insecure libp2p configuration") + } + cfg.SecurityTransports = append(cfg.SecurityTransports, config.MsSecC{SecC: stpt, ID: name}) + return nil + } +} + +// NoSecurity is an option that completely disables all transport security. +// It's incompatible with all other transport security protocols. +var NoSecurity Option = func(cfg *Config) error { + if len(cfg.SecurityTransports) > 0 { + return fmt.Errorf("cannot use security transports with an insecure libp2p configuration") + } + cfg.Insecure = true + return nil +} + +// Muxer configures libp2p to use the given stream multiplexer (or stream +// multiplexer constructor). +// +// Name is the protocol name. +// +// The transport can be a constructed mux.Transport or a function taking any +// subset of this libp2p node's: +// * Peer ID +// * Host +// * Network +// * Peerstore +func Muxer(name string, tpt interface{}) Option { + mtpt, err := config.MuxerConstructor(tpt) + err = traceError(err, 1) + return func(cfg *Config) error { + if err != nil { + return err + } + cfg.Muxers = append(cfg.Muxers, config.MsMuxC{MuxC: mtpt, ID: name}) + return nil + } +} + +// Transport configures libp2p to use the given transport (or transport +// constructor). +// +// The transport can be a constructed transport.Transport or a function taking +// any subset of this libp2p node's: +// * Transport Upgrader (*tptu.Upgrader) +// * Host +// * Stream muxer (muxer.Transport) +// * Security transport (security.Transport) +// * Private network protector (pnet.Protector) +// * Peer ID +// * Private Key +// * Public Key +// * Address filter (filter.Filter) +// * Peerstore +func Transport(tpt interface{}) Option { + tptc, err := config.TransportConstructor(tpt) + err = traceError(err, 1) + return func(cfg *Config) error { + if err != nil { + return err + } + cfg.Transports = append(cfg.Transports, tptc) + return nil + } +} + +// Peerstore configures libp2p to use the given peerstore. +func Peerstore(ps pstore.Peerstore) Option { + return func(cfg *Config) error { + if cfg.Peerstore != nil { + return fmt.Errorf("cannot specify multiple peerstore options") + } + + cfg.Peerstore = ps + return nil + } +} + +// PrivateNetwork configures libp2p to use the given private network protector. +func PrivateNetwork(prot pnet.Protector) Option { + return func(cfg *Config) error { + if cfg.Protector != nil { + return fmt.Errorf("cannot specify multiple private network options") + } + + cfg.Protector = prot + return nil + } +} + +// BandwidthReporter configures libp2p to use the given bandwidth reporter. +func BandwidthReporter(rep metrics.Reporter) Option { + return func(cfg *Config) error { + if cfg.Reporter != nil { + return fmt.Errorf("cannot specify multiple bandwidth reporter options") + } + + cfg.Reporter = rep + return nil + } +} + +// Identity configures libp2p to use the given private key to identify itself. +func Identity(sk crypto.PrivKey) Option { + return func(cfg *Config) error { + if cfg.PeerKey != nil { + return fmt.Errorf("cannot specify multiple identities") + } + + cfg.PeerKey = sk + return nil + } +} + +// ConnectionManager configures libp2p to use the given connection manager. +func ConnectionManager(connman ifconnmgr.ConnManager) Option { + return func(cfg *Config) error { + if cfg.ConnManager != nil { + return fmt.Errorf("cannot specify multiple connection managers") + } + cfg.ConnManager = connman + return nil + } +} + +// AddrsFactory configures libp2p to use the given address factory. +func AddrsFactory(factory config.AddrsFactory) Option { + return func(cfg *Config) error { + if cfg.AddrsFactory != nil { + return fmt.Errorf("cannot specify multiple address factories") + } + cfg.AddrsFactory = factory + return nil + } +} + +// EnableRelay configures libp2p to enable the relay transport with +// configuration options. By default, this option only configures libp2p to +// accept inbound connections from relays and make outbound connections +// _through_ relays when requested by the remote peer. (default: enabled) +// +// To _act_ as a relay, pass the circuit.OptHop option. +func EnableRelay(options ...circuit.RelayOpt) Option { + return func(cfg *Config) error { + cfg.RelayCustom = true + cfg.Relay = true + cfg.RelayOpts = options + return nil + } +} + +// DisableRelay configures libp2p to disable the relay transport. +func DisableRelay() Option { + return func(cfg *Config) error { + cfg.RelayCustom = true + cfg.Relay = false + return nil + } +} + +// EnableAutoRelay configures libp2p to enable the AutoRelay subsystem. It is an +// error to enable AutoRelay without enabling relay (enabled by default) and +// routing (not enabled by default). +// +// This subsystem performs two functions: +// +// 1. When this libp2p node is configured to act as a relay "hop" +// (circuit.OptHop is passed to EnableRelay), this node will advertise itself +// as a public relay using the provided routing system. +// 2. When this libp2p node is _not_ configured as a relay "hop", it will +// automatically detect if it is unreachable (e.g., behind a NAT). If so, it will +// find, configure, and announce a set of public relays. +func EnableAutoRelay() Option { + return func(cfg *Config) error { + cfg.EnableAutoRelay = true + return nil + } +} + +// FilterAddresses configures libp2p to never dial nor accept connections from +// the given addresses. +func FilterAddresses(addrs ...*net.IPNet) Option { + return func(cfg *Config) error { + if cfg.Filters == nil { + cfg.Filters = filter.NewFilters() + } + for _, addr := range addrs { + cfg.Filters.AddDialFilter(addr) + } + return nil + } +} + +// NATPortMap configures libp2p to use the default NATManager. The default +// NATManager will attempt to open a port in your network's firewall using UPnP. +func NATPortMap() Option { + return NATManager(bhost.NewNATManager) +} + +// NATManager will configure libp2p to use the requested NATManager. This +// function should be passed a NATManager *constructor* that takes a libp2p Network. +func NATManager(nm config.NATManagerC) Option { + return func(cfg *Config) error { + if cfg.NATManager != nil { + return fmt.Errorf("cannot specify multiple NATManagers") + } + cfg.NATManager = nm + return nil + } +} + +// Ping will configure libp2p to support the ping service; enable by default. +func Ping(enable bool) Option { + return func(cfg *Config) error { + cfg.DisablePing = !enable + return nil + } +} + +// Routing will configure libp2p to use routing. +func Routing(rt config.RoutingC) Option { + return func(cfg *Config) error { + if cfg.Routing != nil { + return fmt.Errorf("cannot specify multiple routing options") + } + cfg.Routing = rt + return nil + } +} + +// NoListenAddrs will configure libp2p to not listen by default. +// +// This will both clear any configured listen addrs and prevent libp2p from +// applying the default listen address option. It also disables relay, unless the +// user explicitly specifies with an option, as the transport creates an implicit +// listen address that would make the node dialable through any relay it was connected to. +var NoListenAddrs = func(cfg *Config) error { + cfg.ListenAddrs = []ma.Multiaddr{} + if !cfg.RelayCustom { + cfg.RelayCustom = true + cfg.Relay = false + } + return nil +} + +// NoTransports will configure libp2p to not enable any transports. +// +// This will both clear any configured transports (specified in prior libp2p +// options) and prevent libp2p from applying the default transports. +var NoTransports = func(cfg *Config) error { + cfg.Transports = []config.TptC{} + return nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/discovery/mdns.go b/vendor/github.com/libp2p/go-libp2p/p2p/discovery/mdns.go new file mode 100644 index 00000000..e41c175c --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/discovery/mdns.go @@ -0,0 +1,207 @@ +package discovery + +import ( + "context" + "errors" + "io" + "net" + "sync" + "time" + + logging "github.com/ipfs/go-log" + "github.com/libp2p/go-libp2p-host" + "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" + "github.com/whyrusleeping/mdns" +) + +func init() { + // don't let mdns use logging... + mdns.DisableLogging = true +} + +var log = logging.Logger("mdns") + +const ServiceTag = "_ipfs-discovery._udp" + +type Service interface { + io.Closer + RegisterNotifee(Notifee) + UnregisterNotifee(Notifee) +} + +type Notifee interface { + HandlePeerFound(pstore.PeerInfo) +} + +type mdnsService struct { + server *mdns.Server + service *mdns.MDNSService + host host.Host + tag string + + lk sync.Mutex + notifees []Notifee + interval time.Duration +} + +func getDialableListenAddrs(ph host.Host) ([]*net.TCPAddr, error) { + var out []*net.TCPAddr + for _, addr := range ph.Addrs() { + na, err := manet.ToNetAddr(addr) + if err != nil { + continue + } + tcp, ok := na.(*net.TCPAddr) + if ok { + out = append(out, tcp) + } + } + if len(out) == 0 { + return nil, errors.New("failed to find good external addr from peerhost") + } + return out, nil +} + +func NewMdnsService(ctx context.Context, peerhost host.Host, interval time.Duration, serviceTag string) (Service, error) { + + var ipaddrs []net.IP + port := 4001 + + addrs, err := getDialableListenAddrs(peerhost) + if err != nil { + log.Warning(err) + } else { + port = addrs[0].Port + for _, a := range addrs { + ipaddrs = append(ipaddrs, a.IP) + } + } + + myid := peerhost.ID().Pretty() + + info := []string{myid} + if serviceTag == "" { + serviceTag = ServiceTag + } + service, err := mdns.NewMDNSService(myid, serviceTag, "", "", port, ipaddrs, info) + if err != nil { + return nil, err + } + + // Create the mDNS server, defer shutdown + server, err := mdns.NewServer(&mdns.Config{Zone: service}) + if err != nil { + return nil, err + } + + s := &mdnsService{ + server: server, + service: service, + host: peerhost, + interval: interval, + tag: serviceTag, + } + + go s.pollForEntries(ctx) + + return s, nil +} + +func (m *mdnsService) Close() error { + return m.server.Shutdown() +} + +func (m *mdnsService) pollForEntries(ctx context.Context) { + + ticker := time.NewTicker(m.interval) + for { + //execute mdns query right away at method call and then with every tick + entriesCh := make(chan *mdns.ServiceEntry, 16) + go func() { + for entry := range entriesCh { + m.handleEntry(entry) + } + }() + + log.Debug("starting mdns query") + qp := &mdns.QueryParam{ + Domain: "local", + Entries: entriesCh, + Service: m.tag, + Timeout: time.Second * 5, + } + + err := mdns.Query(qp) + if err != nil { + log.Error("mdns lookup error: ", err) + } + close(entriesCh) + log.Debug("mdns query complete") + + select { + case <-ticker.C: + continue + case <-ctx.Done(): + log.Debug("mdns service halting") + return + } + } +} + +func (m *mdnsService) handleEntry(e *mdns.ServiceEntry) { + log.Debugf("Handling MDNS entry: %s:%d %s", e.AddrV4, e.Port, e.Info) + mpeer, err := peer.IDB58Decode(e.Info) + if err != nil { + log.Warning("Error parsing peer ID from mdns entry: ", err) + return + } + + if mpeer == m.host.ID() { + log.Debug("got our own mdns entry, skipping") + return + } + + maddr, err := manet.FromNetAddr(&net.TCPAddr{ + IP: e.AddrV4, + Port: e.Port, + }) + if err != nil { + log.Warning("Error parsing multiaddr from mdns entry: ", err) + return + } + + pi := pstore.PeerInfo{ + ID: mpeer, + Addrs: []ma.Multiaddr{maddr}, + } + + m.lk.Lock() + for _, n := range m.notifees { + go n.HandlePeerFound(pi) + } + m.lk.Unlock() +} + +func (m *mdnsService) RegisterNotifee(n Notifee) { + m.lk.Lock() + m.notifees = append(m.notifees, n) + m.lk.Unlock() +} + +func (m *mdnsService) UnregisterNotifee(n Notifee) { + m.lk.Lock() + found := -1 + for i, notif := range m.notifees { + if notif == n { + found = i + break + } + } + if found != -1 { + m.notifees = append(m.notifees[:found], m.notifees[found+1:]...) + } + m.lk.Unlock() +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/basic/basic_host.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/basic/basic_host.go new file mode 100644 index 00000000..1b11bbdc --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/basic/basic_host.go @@ -0,0 +1,736 @@ +package basichost + +import ( + "context" + "io" + "net" + "sync" + "time" + + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + inat "github.com/libp2p/go-libp2p-nat" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + protocol "github.com/libp2p/go-libp2p-protocol" + identify "github.com/libp2p/go-libp2p/p2p/protocol/identify" + ping "github.com/libp2p/go-libp2p/p2p/protocol/ping" + ma "github.com/multiformats/go-multiaddr" + madns "github.com/multiformats/go-multiaddr-dns" + manet "github.com/multiformats/go-multiaddr-net" + msmux "github.com/multiformats/go-multistream" +) + +var log = logging.Logger("basichost") + +var ( + // DefaultNegotiationTimeout is the default value for HostOpts.NegotiationTimeout. + DefaultNegotiationTimeout = time.Second * 60 + + // DefaultAddrsFactory is the default value for HostOpts.AddrsFactory. + DefaultAddrsFactory = func(addrs []ma.Multiaddr) []ma.Multiaddr { return addrs } +) + +// AddrsFactory functions can be passed to New in order to override +// addresses returned by Addrs. +type AddrsFactory func([]ma.Multiaddr) []ma.Multiaddr + +// Option is a type used to pass in options to the host. +// +// Deprecated in favor of HostOpts and NewHost. +type Option int + +// NATPortMap makes the host attempt to open port-mapping in NAT devices +// for all its listeners. Pass in this option in the constructor to +// asynchronously a) find a gateway, b) open port mappings, c) republish +// port mappings periodically. The NATed addresses are included in the +// Host's Addrs() list. +// +// This option is deprecated in favor of HostOpts and NewHost. +const NATPortMap Option = iota + +// BasicHost is the basic implementation of the host.Host interface. This +// particular host implementation: +// * uses a protocol muxer to mux per-protocol streams +// * uses an identity service to send + receive node information +// * uses a nat service to establish NAT port mappings +type BasicHost struct { + network inet.Network + mux *msmux.MultistreamMuxer + ids *identify.IDService + pings *ping.PingService + natmgr NATManager + maResolver *madns.Resolver + cmgr ifconnmgr.ConnManager + + AddrsFactory AddrsFactory + + negtimeout time.Duration + + proc goprocess.Process + + ctx context.Context + cancel func() + mx sync.Mutex + lastAddrs []ma.Multiaddr +} + +// HostOpts holds options that can be passed to NewHost in order to +// customize construction of the *BasicHost. +type HostOpts struct { + + // MultistreamMuxer is essential for the *BasicHost and will use a sensible default value if omitted. + MultistreamMuxer *msmux.MultistreamMuxer + + // NegotiationTimeout determines the read and write timeouts on streams. + // If 0 or omitted, it will use DefaultNegotiationTimeout. + // If below 0, timeouts on streams will be deactivated. + NegotiationTimeout time.Duration + + // IdentifyService holds an implementation of the /ipfs/id/ protocol. + // If omitted, a new *identify.IDService will be used. + IdentifyService *identify.IDService + + // AddrsFactory holds a function which can be used to override or filter the result of Addrs. + // If omitted, there's no override or filtering, and the results of Addrs and AllAddrs are the same. + AddrsFactory AddrsFactory + + // MultiaddrResolves holds the go-multiaddr-dns.Resolver used for resolving + // /dns4, /dns6, and /dnsaddr addresses before trying to connect to a peer. + MultiaddrResolver *madns.Resolver + + // NATManager takes care of setting NAT port mappings, and discovering external addresses. + // If omitted, this will simply be disabled. + NATManager func(inet.Network) NATManager + + // ConnManager is a libp2p connection manager + ConnManager ifconnmgr.ConnManager + + // EnablePing indicates whether to instantiate the ping service + EnablePing bool +} + +// NewHost constructs a new *BasicHost and activates it by attaching its stream and connection handlers to the given inet.Network. +func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, error) { + h := &BasicHost{ + network: net, + mux: msmux.NewMultistreamMuxer(), + negtimeout: DefaultNegotiationTimeout, + AddrsFactory: DefaultAddrsFactory, + maResolver: madns.DefaultResolver, + } + + h.proc = goprocessctx.WithContextAndTeardown(ctx, func() error { + if h.natmgr != nil { + h.natmgr.Close() + } + return h.Network().Close() + }) + + if opts.MultistreamMuxer != nil { + h.mux = opts.MultistreamMuxer + } + + if opts.IdentifyService != nil { + h.ids = opts.IdentifyService + } else { + // we can't set this as a default above because it depends on the *BasicHost. + h.ids = identify.NewIDService(ctx, h) + } + + if uint64(opts.NegotiationTimeout) != 0 { + h.negtimeout = opts.NegotiationTimeout + } + + if opts.AddrsFactory != nil { + h.AddrsFactory = opts.AddrsFactory + } + + if opts.NATManager != nil { + h.natmgr = opts.NATManager(net) + } + + if opts.MultiaddrResolver != nil { + h.maResolver = opts.MultiaddrResolver + } + + if opts.ConnManager == nil { + h.cmgr = &ifconnmgr.NullConnMgr{} + } else { + h.cmgr = opts.ConnManager + net.Notify(h.cmgr.Notifee()) + } + + if opts.EnablePing { + h.pings = ping.NewPingService(h) + } + + net.SetConnHandler(h.newConnHandler) + net.SetStreamHandler(h.newStreamHandler) + + bgctx, cancel := context.WithCancel(ctx) + h.ctx = bgctx + h.cancel = cancel + + return h, nil +} + +// New constructs and sets up a new *BasicHost with given Network and options. +// The following options can be passed: +// * NATPortMap +// * AddrsFactory +// * ifconnmgr.ConnManager +// * madns.Resolver +// +// This function is deprecated in favor of NewHost and HostOpts. +func New(net inet.Network, opts ...interface{}) *BasicHost { + hostopts := &HostOpts{} + + for _, o := range opts { + switch o := o.(type) { + case Option: + switch o { + case NATPortMap: + hostopts.NATManager = NewNATManager + } + case AddrsFactory: + hostopts.AddrsFactory = AddrsFactory(o) + case ifconnmgr.ConnManager: + hostopts.ConnManager = o + case *madns.Resolver: + hostopts.MultiaddrResolver = o + } + } + + h, err := NewHost(context.Background(), net, hostopts) + if err != nil { + // this cannot happen with legacy options + // plus we want to keep the (deprecated) legacy interface unchanged + panic(err) + } + + return h +} + +// Start starts background tasks in the host +func (h *BasicHost) Start() { + go h.background() +} + +// newConnHandler is the remote-opened conn handler for inet.Network +func (h *BasicHost) newConnHandler(c inet.Conn) { + // Clear protocols on connecting to new peer to avoid issues caused + // by misremembering protocols between reconnects + h.Peerstore().SetProtocols(c.RemotePeer()) + h.ids.IdentifyConn(c) +} + +// newStreamHandler is the remote-opened stream handler for inet.Network +// TODO: this feels a bit wonky +func (h *BasicHost) newStreamHandler(s inet.Stream) { + before := time.Now() + + if h.negtimeout > 0 { + if err := s.SetDeadline(time.Now().Add(h.negtimeout)); err != nil { + log.Error("setting stream deadline: ", err) + s.Reset() + return + } + } + + lzc, protoID, handle, err := h.Mux().NegotiateLazy(s) + took := time.Now().Sub(before) + if err != nil { + if err == io.EOF { + logf := log.Debugf + if took > time.Second*10 { + logf = log.Warningf + } + logf("protocol EOF: %s (took %s)", s.Conn().RemotePeer(), took) + } else { + log.Debugf("protocol mux failed: %s (took %s)", err, took) + } + s.Reset() + return + } + + s = &streamWrapper{ + Stream: s, + rw: lzc, + } + + if h.negtimeout > 0 { + if err := s.SetDeadline(time.Time{}); err != nil { + log.Error("resetting stream deadline: ", err) + s.Reset() + return + } + } + + s.SetProtocol(protocol.ID(protoID)) + log.Debugf("protocol negotiation took %s", took) + + go handle(protoID, s) +} + +// PushIdentify pushes an identify update through the identify push protocol +// Warning: this interface is unstable and may disappear in the future. +func (h *BasicHost) PushIdentify() { + push := false + + h.mx.Lock() + addrs := h.Addrs() + if !sameAddrs(addrs, h.lastAddrs) { + push = true + h.lastAddrs = addrs + } + h.mx.Unlock() + + if push { + h.ids.Push() + } +} + +func (h *BasicHost) background() { + // periodically schedules an IdentifyPush to update our peers for changes + // in our address set (if needed) + ticker := time.NewTicker(1 * time.Minute) + defer ticker.Stop() + + // initialize lastAddrs + h.mx.Lock() + if h.lastAddrs == nil { + h.lastAddrs = h.Addrs() + } + h.mx.Unlock() + + for { + select { + case <-ticker.C: + h.PushIdentify() + + case <-h.ctx.Done(): + return + } + } +} + +func sameAddrs(a, b []ma.Multiaddr) bool { + if len(a) != len(b) { + return false + } + + bmap := make(map[string]struct{}, len(b)) + for _, addr := range b { + bmap[string(addr.Bytes())] = struct{}{} + } + + for _, addr := range a { + _, ok := bmap[string(addr.Bytes())] + if !ok { + return false + } + } + + return true +} + +// ID returns the (local) peer.ID associated with this Host +func (h *BasicHost) ID() peer.ID { + return h.Network().LocalPeer() +} + +// Peerstore returns the Host's repository of Peer Addresses and Keys. +func (h *BasicHost) Peerstore() pstore.Peerstore { + return h.Network().Peerstore() +} + +// Network returns the Network interface of the Host +func (h *BasicHost) Network() inet.Network { + return h.network +} + +// Mux returns the Mux multiplexing incoming streams to protocol handlers +func (h *BasicHost) Mux() *msmux.MultistreamMuxer { + return h.mux +} + +// IDService returns +func (h *BasicHost) IDService() *identify.IDService { + return h.ids +} + +// SetStreamHandler sets the protocol handler on the Host's Mux. +// This is equivalent to: +// host.Mux().SetHandler(proto, handler) +// (Threadsafe) +func (h *BasicHost) SetStreamHandler(pid protocol.ID, handler inet.StreamHandler) { + h.Mux().AddHandler(string(pid), func(p string, rwc io.ReadWriteCloser) error { + is := rwc.(inet.Stream) + is.SetProtocol(protocol.ID(p)) + handler(is) + return nil + }) +} + +// SetStreamHandlerMatch sets the protocol handler on the Host's Mux +// using a matching function to do protocol comparisons +func (h *BasicHost) SetStreamHandlerMatch(pid protocol.ID, m func(string) bool, handler inet.StreamHandler) { + h.Mux().AddHandlerWithFunc(string(pid), m, func(p string, rwc io.ReadWriteCloser) error { + is := rwc.(inet.Stream) + is.SetProtocol(protocol.ID(p)) + handler(is) + return nil + }) +} + +// RemoveStreamHandler returns .. +func (h *BasicHost) RemoveStreamHandler(pid protocol.ID) { + h.Mux().RemoveHandler(string(pid)) +} + +// NewStream opens a new stream to given peer p, and writes a p2p/protocol +// header with given protocol.ID. If there is no connection to p, attempts +// to create one. If ProtocolID is "", writes no header. +// (Threadsafe) +func (h *BasicHost) NewStream(ctx context.Context, p peer.ID, pids ...protocol.ID) (inet.Stream, error) { + pref, err := h.preferredProtocol(p, pids) + if err != nil { + return nil, err + } + + if pref != "" { + return h.newStream(ctx, p, pref) + } + + var protoStrs []string + for _, pid := range pids { + protoStrs = append(protoStrs, string(pid)) + } + + s, err := h.Network().NewStream(ctx, p) + if err != nil { + return nil, err + } + + selected, err := msmux.SelectOneOf(protoStrs, s) + if err != nil { + s.Reset() + return nil, err + } + selpid := protocol.ID(selected) + s.SetProtocol(selpid) + h.Peerstore().AddProtocols(p, selected) + + return s, nil +} + +func pidsToStrings(pids []protocol.ID) []string { + out := make([]string, len(pids)) + for i, p := range pids { + out[i] = string(p) + } + return out +} + +func (h *BasicHost) preferredProtocol(p peer.ID, pids []protocol.ID) (protocol.ID, error) { + pidstrs := pidsToStrings(pids) + supported, err := h.Peerstore().SupportsProtocols(p, pidstrs...) + if err != nil { + return "", err + } + + var out protocol.ID + if len(supported) > 0 { + out = protocol.ID(supported[0]) + } + return out, nil +} + +func (h *BasicHost) newStream(ctx context.Context, p peer.ID, pid protocol.ID) (inet.Stream, error) { + s, err := h.Network().NewStream(ctx, p) + if err != nil { + return nil, err + } + + s.SetProtocol(pid) + + lzcon := msmux.NewMSSelect(s, string(pid)) + return &streamWrapper{ + Stream: s, + rw: lzcon, + }, nil +} + +// Connect ensures there is a connection between this host and the peer with +// given peer.ID. If there is not an active connection, Connect will issue a +// h.Network.Dial, and block until a connection is open, or an error is returned. +// Connect will absorb the addresses in pi into its internal peerstore. +// It will also resolve any /dns4, /dns6, and /dnsaddr addresses. +func (h *BasicHost) Connect(ctx context.Context, pi pstore.PeerInfo) error { + // absorb addresses into peerstore + h.Peerstore().AddAddrs(pi.ID, pi.Addrs, pstore.TempAddrTTL) + + if h.Network().Connectedness(pi.ID) == inet.Connected { + return nil + } + + resolved, err := h.resolveAddrs(ctx, h.Peerstore().PeerInfo(pi.ID)) + if err != nil { + return err + } + h.Peerstore().AddAddrs(pi.ID, resolved, pstore.TempAddrTTL) + + return h.dialPeer(ctx, pi.ID) +} + +func (h *BasicHost) resolveAddrs(ctx context.Context, pi pstore.PeerInfo) ([]ma.Multiaddr, error) { + proto := ma.ProtocolWithCode(ma.P_P2P).Name + p2paddr, err := ma.NewMultiaddr("/" + proto + "/" + pi.ID.Pretty()) + if err != nil { + return nil, err + } + + var addrs []ma.Multiaddr + for _, addr := range pi.Addrs { + addrs = append(addrs, addr) + if !madns.Matches(addr) { + continue + } + + reqaddr := addr.Encapsulate(p2paddr) + resaddrs, err := h.maResolver.Resolve(ctx, reqaddr) + if err != nil { + log.Infof("error resolving %s: %s", reqaddr, err) + } + for _, res := range resaddrs { + pi, err := pstore.InfoFromP2pAddr(res) + if err != nil { + log.Infof("error parsing %s: %s", res, err) + } + addrs = append(addrs, pi.Addrs...) + } + } + + return addrs, nil +} + +// dialPeer opens a connection to peer, and makes sure to identify +// the connection once it has been opened. +func (h *BasicHost) dialPeer(ctx context.Context, p peer.ID) error { + log.Debugf("host %s dialing %s", h.ID(), p) + c, err := h.Network().DialPeer(ctx, p) + if err != nil { + return err + } + + // Clear protocols on connecting to new peer to avoid issues caused + // by misremembering protocols between reconnects + h.Peerstore().SetProtocols(p) + + // identify the connection before returning. + done := make(chan struct{}) + go func() { + h.ids.IdentifyConn(c) + close(done) + }() + + // respect don contexteone + select { + case <-done: + case <-ctx.Done(): + return ctx.Err() + } + + log.Debugf("host %s finished dialing %s", h.ID(), p) + return nil +} + +func (h *BasicHost) ConnManager() ifconnmgr.ConnManager { + return h.cmgr +} + +// Addrs returns listening addresses that are safe to announce to the network. +// The output is the same as AllAddrs, but processed by AddrsFactory. +func (h *BasicHost) Addrs() []ma.Multiaddr { + return h.AddrsFactory(h.AllAddrs()) +} + +// mergeAddrs merges input address lists, leave only unique addresses +func dedupAddrs(addrs []ma.Multiaddr) (uniqueAddrs []ma.Multiaddr) { + exists := make(map[string]bool) + for _, addr := range addrs { + k := string(addr.Bytes()) + if exists[k] { + continue + } + exists[k] = true + uniqueAddrs = append(uniqueAddrs, addr) + } + return uniqueAddrs +} + +// AllAddrs returns all the addresses of BasicHost at this moment in time. +// It's ok to not include addresses if they're not available to be used now. +func (h *BasicHost) AllAddrs() []ma.Multiaddr { + listenAddrs, err := h.Network().InterfaceListenAddresses() + if err != nil { + log.Debug("error retrieving network interface addrs") + } + var natMappings []inat.Mapping + + // natmgr is nil if we do not use nat option; + // h.natmgr.NAT() is nil if not ready, or no nat is available. + if h.natmgr != nil && h.natmgr.NAT() != nil { + natMappings = h.natmgr.NAT().Mappings() + } + + finalAddrs := listenAddrs + if len(natMappings) > 0 { + + // We have successfully mapped ports on our NAT. Use those + // instead of observed addresses (mostly). + + // First, generate a mapping table. + // protocol -> internal port -> external addr + ports := make(map[string]map[int]net.Addr) + for _, m := range natMappings { + addr, err := m.ExternalAddr() + if err != nil { + // mapping not ready yet. + continue + } + protoPorts, ok := ports[m.Protocol()] + if !ok { + protoPorts = make(map[int]net.Addr) + ports[m.Protocol()] = protoPorts + } + protoPorts[m.InternalPort()] = addr + } + + // Next, apply this mapping to our addresses. + for _, listen := range listenAddrs { + found := false + transport, rest := ma.SplitFunc(listen, func(c ma.Component) bool { + if found { + return true + } + switch c.Protocol().Code { + case ma.P_TCP, ma.P_UDP: + found = true + } + return false + }) + if !manet.IsThinWaist(transport) { + continue + } + + naddr, err := manet.ToNetAddr(transport) + if err != nil { + log.Error("error parsing net multiaddr %q: %s", transport, err) + continue + } + + var ( + ip net.IP + iport int + protocol string + ) + switch naddr := naddr.(type) { + case *net.TCPAddr: + ip = naddr.IP + iport = naddr.Port + protocol = "tcp" + case *net.UDPAddr: + ip = naddr.IP + iport = naddr.Port + protocol = "udp" + default: + continue + } + + if !ip.IsGlobalUnicast() { + // We only map global unicast ports. + continue + } + + mappedAddr, ok := ports[protocol][iport] + if !ok { + // Not mapped. + continue + } + + mappedMaddr, err := manet.FromNetAddr(mappedAddr) + if err != nil { + log.Errorf("mapped addr can't be turned into a multiaddr %q: %s", mappedAddr, err) + continue + } + + // Did the router give us a routable public addr? + if manet.IsPublicAddr(mappedMaddr) { + // Yes, use it. + extMaddr := mappedMaddr + if rest != nil { + extMaddr = ma.Join(extMaddr, rest) + } + + // Add in the mapped addr. + finalAddrs = append(finalAddrs, extMaddr) + continue + } + + // No. Ok, let's try our observed addresses. + + // Now, check if we have any observed addresses that + // differ from the one reported by the router. Routers + // don't always give the most accurate information. + observed := h.ids.ObservedAddrsFor(listen) + + if len(observed) == 0 { + continue + } + + // Drop the IP from the external maddr + _, extMaddrNoIP := ma.SplitFirst(mappedMaddr) + + for _, obsMaddr := range observed { + // Extract a public observed addr. + ip, _ := ma.SplitFirst(obsMaddr) + if ip == nil || !manet.IsPublicAddr(ip) { + continue + } + + finalAddrs = append(finalAddrs, ma.Join(ip, extMaddrNoIP)) + } + } + } else { + var observedAddrs []ma.Multiaddr + if h.ids != nil { + observedAddrs = h.ids.OwnObservedAddrs() + } + finalAddrs = append(finalAddrs, observedAddrs...) + } + return dedupAddrs(finalAddrs) +} + +// Close shuts down the Host's services (network, etc). +func (h *BasicHost) Close() error { + h.cancel() + return h.proc.Close() +} + +type streamWrapper struct { + inet.Stream + rw io.ReadWriter +} + +func (s *streamWrapper) Read(b []byte) (int, error) { + return s.rw.Read(b) +} + +func (s *streamWrapper) Write(b []byte) (int, error) { + return s.rw.Write(b) +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/basic/natmgr.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/basic/natmgr.go new file mode 100644 index 00000000..25c8b029 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/basic/natmgr.go @@ -0,0 +1,243 @@ +package basichost + +import ( + "net" + "strconv" + "sync" + + goprocess "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + inat "github.com/libp2p/go-libp2p-nat" + inet "github.com/libp2p/go-libp2p-net" + ma "github.com/multiformats/go-multiaddr" +) + +// A simple interface to manage NAT devices. +type NATManager interface { + + // Get the NAT device managed by the NAT manager. + NAT() *inat.NAT + + // Receive a notification when the NAT device is ready for use. + Ready() <-chan struct{} + + // Close all resources associated with a NAT manager. + Close() error +} + +// Create a NAT manager. +func NewNATManager(net inet.Network) NATManager { + return newNatManager(net) +} + +// natManager takes care of adding + removing port mappings to the nat. +// Initialized with the host if it has a NATPortMap option enabled. +// natManager receives signals from the network, and check on nat mappings: +// * natManager listens to the network and adds or closes port mappings +// as the network signals Listen() or ListenClose(). +// * closing the natManager closes the nat and its mappings. +type natManager struct { + net inet.Network + natmu sync.RWMutex + nat *inat.NAT + + ready chan struct{} // closed once the nat is ready to process port mappings + + syncMu sync.Mutex + + proc goprocess.Process // natManager has a process + children. can be closed. +} + +func newNatManager(net inet.Network) *natManager { + nmgr := &natManager{ + net: net, + ready: make(chan struct{}), + } + + nmgr.proc = goprocess.WithTeardown(func() error { + // on closing, unregister from network notifications. + net.StopNotify((*nmgrNetNotifiee)(nmgr)) + return nil + }) + + // discover the nat. + nmgr.discoverNAT() + return nmgr +} + +// Close closes the natManager, closing the underlying nat +// and unregistering from network events. +func (nmgr *natManager) Close() error { + return nmgr.proc.Close() +} + +// Ready returns a channel which will be closed when the NAT has been found +// and is ready to be used, or the search process is done. +func (nmgr *natManager) Ready() <-chan struct{} { + return nmgr.ready +} + +func (nmgr *natManager) discoverNAT() { + nmgr.proc.Go(func(worker goprocess.Process) { + // inat.DiscoverNAT blocks until the nat is found or a timeout + // is reached. we unfortunately cannot specify timeouts-- the + // library we're using just blocks. + // + // Note: on early shutdown, there may be a case where we're trying + // to close before DiscoverNAT() returns. Since we cant cancel it + // (library) we can choose to (1) drop the result and return early, + // or (2) wait until it times out to exit. For now we choose (2), + // to avoid leaking resources in a non-obvious way. the only case + // this affects is when the daemon is being started up and _immediately_ + // asked to close. other services are also starting up, so ok to wait. + + natInstance, err := inat.DiscoverNAT(goprocessctx.OnClosingContext(worker)) + if err != nil { + log.Info("DiscoverNAT error:", err) + close(nmgr.ready) + return + } + + nmgr.natmu.Lock() + nmgr.nat = natInstance + nmgr.natmu.Unlock() + close(nmgr.ready) + + // wire up the nat to close when nmgr closes. + // nmgr.proc is our parent, and waiting for us. + nmgr.proc.AddChild(nmgr.nat.Process()) + + // sign natManager up for network notifications + // we need to sign up here to avoid missing some notifs + // before the NAT has been found. + nmgr.net.Notify((*nmgrNetNotifiee)(nmgr)) + nmgr.sync() + }) +} + +// syncs the current NAT mappings, removing any outdated mappings and adding any +// new mappings. +func (nmgr *natManager) sync() { + nat := nmgr.NAT() + if nat == nil { + // Nothing to do. + return + } + + nmgr.proc.Go(func(_ goprocess.Process) { + nmgr.syncMu.Lock() + defer nmgr.syncMu.Unlock() + + ports := map[string]map[int]bool{ + "tcp": map[int]bool{}, + "udp": map[int]bool{}, + } + for _, maddr := range nmgr.net.ListenAddresses() { + // Strip the IP + maIP, rest := ma.SplitFirst(maddr) + if maIP == nil || rest == nil { + continue + } + + switch maIP.Protocol().Code { + case ma.P_IP6, ma.P_IP4: + default: + continue + } + + // Only bother if we're listening on a + // unicast/unspecified IP. + ip := net.IP(maIP.RawValue()) + if !(ip.IsGlobalUnicast() || ip.IsUnspecified()) { + continue + } + + // Extract the port/protocol + proto, _ := ma.SplitFirst(rest) + if proto == nil { + continue + } + + var protocol string + switch proto.Protocol().Code { + case ma.P_TCP: + protocol = "tcp" + case ma.P_UDP: + protocol = "udp" + default: + continue + } + + port, err := strconv.ParseUint(proto.Value(), 10, 16) + if err != nil { + // bug in multiaddr + panic(err) + } + ports[protocol][int(port)] = false + } + + var wg sync.WaitGroup + defer wg.Wait() + + // Close old mappings + for _, m := range nat.Mappings() { + mappedPort := m.InternalPort() + if _, ok := ports[m.Protocol()][mappedPort]; !ok { + // No longer need this mapping. + wg.Add(1) + go func(m inat.Mapping) { + defer wg.Done() + m.Close() + }(m) + } else { + // already mapped + ports[m.Protocol()][mappedPort] = true + } + } + + // Create new mappings. + for proto, pports := range ports { + for port, mapped := range pports { + if mapped { + continue + } + wg.Add(1) + go func(proto string, port int) { + defer wg.Done() + _, err := nat.NewMapping(proto, port) + if err != nil { + log.Errorf("failed to port-map %s port %d: %s", proto, port, err) + } + }(proto, port) + } + } + }) +} + +// NAT returns the natManager's nat object. this may be nil, if +// (a) the search process is still ongoing, or (b) the search process +// found no nat. Clients must check whether the return value is nil. +func (nmgr *natManager) NAT() *inat.NAT { + nmgr.natmu.Lock() + defer nmgr.natmu.Unlock() + return nmgr.nat +} + +type nmgrNetNotifiee natManager + +func (nn *nmgrNetNotifiee) natManager() *natManager { + return (*natManager)(nn) +} + +func (nn *nmgrNetNotifiee) Listen(n inet.Network, addr ma.Multiaddr) { + nn.natManager().sync() +} + +func (nn *nmgrNetNotifiee) ListenClose(n inet.Network, addr ma.Multiaddr) { + nn.natManager().sync() +} + +func (nn *nmgrNetNotifiee) Connected(inet.Network, inet.Conn) {} +func (nn *nmgrNetNotifiee) Disconnected(inet.Network, inet.Conn) {} +func (nn *nmgrNetNotifiee) OpenedStream(inet.Network, inet.Stream) {} +func (nn *nmgrNetNotifiee) ClosedStream(inet.Network, inet.Stream) {} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/addrsplosion.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/addrsplosion.go new file mode 100644 index 00000000..89965bca --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/addrsplosion.go @@ -0,0 +1,167 @@ +package relay + +import ( + "encoding/binary" + + circuit "github.com/libp2p/go-libp2p-circuit" + ma "github.com/multiformats/go-multiaddr" + dns "github.com/multiformats/go-multiaddr-dns" + manet "github.com/multiformats/go-multiaddr-net" +) + +// This function cleans up a relay's address set to remove private addresses and curtail +// addrsplosion. +func cleanupAddressSet(addrs []ma.Multiaddr) []ma.Multiaddr { + var public, private []ma.Multiaddr + + for _, a := range addrs { + if isRelayAddr(a) { + continue + } + + if manet.IsPublicAddr(a) || isDNSAddr(a) { + public = append(public, a) + continue + } + + // discard unroutable addrs + if manet.IsPrivateAddr(a) { + private = append(private, a) + } + } + + if !hasAddrsplosion(public) { + return public + } + + return sanitizeAddrsplodedSet(public, private) +} + +func isRelayAddr(a ma.Multiaddr) bool { + isRelay := false + + ma.ForEach(a, func(c ma.Component) bool { + switch c.Protocol().Code { + case circuit.P_CIRCUIT: + isRelay = true + return false + default: + return true + } + }) + + return isRelay +} + +func isDNSAddr(a ma.Multiaddr) bool { + if first, _ := ma.SplitFirst(a); first != nil { + switch first.Protocol().Code { + case dns.P_DNS4, dns.P_DNS6, dns.P_DNSADDR: + return true + } + } + return false +} + +// we have addrsplosion if for some protocol we advertise multiple ports on +// the same base address. +func hasAddrsplosion(addrs []ma.Multiaddr) bool { + aset := make(map[string]int) + + for _, a := range addrs { + key, port := addrKeyAndPort(a) + xport, ok := aset[key] + if ok && port != xport { + return true + } + aset[key] = port + } + + return false +} + +func addrKeyAndPort(a ma.Multiaddr) (string, int) { + var ( + key string + port int + ) + + ma.ForEach(a, func(c ma.Component) bool { + switch c.Protocol().Code { + case ma.P_TCP, ma.P_UDP: + port = int(binary.BigEndian.Uint16(c.RawValue())) + key += "/" + c.Protocol().Name + default: + val := c.Value() + if val == "" { + val = c.Protocol().Name + } + key += "/" + val + } + return true + }) + + return key, port +} + +// clean up addrsplosion +// the following heuristic is used: +// - for each base address/protocol combination, if there are multiple ports advertised then +// only accept the default port if present. +// - If the default port is not present, we check for non-standard ports by tracking +// private port bindings if present. +// - If there is no default or private port binding, then we can't infer the correct +// port and give up and return all addrs (for that base address) +func sanitizeAddrsplodedSet(public, private []ma.Multiaddr) []ma.Multiaddr { + type portAndAddr struct { + addr ma.Multiaddr + port int + } + + privports := make(map[int]struct{}) + pubaddrs := make(map[string][]portAndAddr) + + for _, a := range private { + _, port := addrKeyAndPort(a) + privports[port] = struct{}{} + } + + for _, a := range public { + key, port := addrKeyAndPort(a) + pubaddrs[key] = append(pubaddrs[key], portAndAddr{addr: a, port: port}) + } + + var result []ma.Multiaddr + for _, pas := range pubaddrs { + if len(pas) == 1 { + // it's not addrsploded + result = append(result, pas[0].addr) + continue + } + + haveAddr := false + for _, pa := range pas { + if _, ok := privports[pa.port]; ok { + // it matches a privately bound port, use it + result = append(result, pa.addr) + haveAddr = true + continue + } + + if pa.port == 4001 || pa.port == 4002 { + // it's a default port, use it + result = append(result, pa.addr) + haveAddr = true + } + } + + if !haveAddr { + // we weren't able to select a port; bite the bullet and use them all + for _, pa := range pas { + result = append(result, pa.addr) + } + } + } + + return result +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/autorelay.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/autorelay.go new file mode 100644 index 00000000..11fc436f --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/autorelay.go @@ -0,0 +1,332 @@ +package relay + +import ( + "context" + "fmt" + "math/rand" + "sync" + "time" + + basic "github.com/libp2p/go-libp2p/p2p/host/basic" + + autonat "github.com/libp2p/go-libp2p-autonat" + _ "github.com/libp2p/go-libp2p-circuit" + discovery "github.com/libp2p/go-libp2p-discovery" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + routing "github.com/libp2p/go-libp2p-routing" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +const ( + RelayRendezvous = "/libp2p/relay" +) + +var ( + DesiredRelays = 3 + + BootDelay = 20 * time.Second +) + +// AutoRelay is a Host that uses relays for connectivity when a NAT is detected. +type AutoRelay struct { + host *basic.BasicHost + discover discovery.Discoverer + router routing.PeerRouting + autonat autonat.AutoNAT + addrsF basic.AddrsFactory + + disconnect chan struct{} + + mx sync.Mutex + relays map[peer.ID]struct{} + status autonat.NATStatus + + cachedAddrs []ma.Multiaddr + cachedAddrsExpiry time.Time +} + +func NewAutoRelay(ctx context.Context, bhost *basic.BasicHost, discover discovery.Discoverer, router routing.PeerRouting) *AutoRelay { + ar := &AutoRelay{ + host: bhost, + discover: discover, + router: router, + addrsF: bhost.AddrsFactory, + relays: make(map[peer.ID]struct{}), + disconnect: make(chan struct{}, 1), + status: autonat.NATStatusUnknown, + } + ar.autonat = autonat.NewAutoNAT(ctx, bhost, ar.baseAddrs) + bhost.AddrsFactory = ar.hostAddrs + bhost.Network().Notify(ar) + go ar.background(ctx) + return ar +} + +func (ar *AutoRelay) baseAddrs() []ma.Multiaddr { + return ar.addrsF(ar.host.AllAddrs()) +} + +func (ar *AutoRelay) hostAddrs(addrs []ma.Multiaddr) []ma.Multiaddr { + return ar.relayAddrs(ar.addrsF(addrs)) +} + +func (ar *AutoRelay) background(ctx context.Context) { + select { + case <-time.After(autonat.AutoNATBootDelay + BootDelay): + case <-ctx.Done(): + return + } + + // when true, we need to identify push + push := false + + for { + wait := autonat.AutoNATRefreshInterval + switch ar.autonat.Status() { + case autonat.NATStatusUnknown: + ar.mx.Lock() + ar.status = autonat.NATStatusUnknown + ar.mx.Unlock() + wait = autonat.AutoNATRetryInterval + + case autonat.NATStatusPublic: + ar.mx.Lock() + if ar.status != autonat.NATStatusPublic { + push = true + } + ar.status = autonat.NATStatusPublic + ar.mx.Unlock() + + case autonat.NATStatusPrivate: + update := ar.findRelays(ctx) + ar.mx.Lock() + if update || ar.status != autonat.NATStatusPrivate { + push = true + } + ar.status = autonat.NATStatusPrivate + ar.mx.Unlock() + } + + if push { + ar.mx.Lock() + ar.cachedAddrs = nil + ar.mx.Unlock() + push = false + ar.host.PushIdentify() + } + + select { + case <-ar.disconnect: + push = true + case <-time.After(wait): + case <-ctx.Done(): + return + } + } +} + +func (ar *AutoRelay) findRelays(ctx context.Context) bool { + if ar.numRelays() >= DesiredRelays { + return false + } + + update := false + for retry := 0; retry < 5; retry++ { + if retry > 0 { + log.Debug("no relays connected; retrying in 30s") + select { + case <-time.After(30 * time.Second): + case <-ctx.Done(): + return update + } + } + + update = ar.findRelaysOnce(ctx) || update + if ar.numRelays() > 0 { + return update + } + } + return update +} + +func (ar *AutoRelay) findRelaysOnce(ctx context.Context) bool { + pis, err := ar.discoverRelays(ctx) + if err != nil { + log.Debugf("error discovering relays: %s", err) + return false + } + log.Debugf("discovered %d relays", len(pis)) + pis = ar.selectRelays(ctx, pis) + log.Debugf("selected %d relays", len(pis)) + + update := false + for _, pi := range pis { + update = ar.tryRelay(ctx, pi) || update + if ar.numRelays() >= DesiredRelays { + break + } + } + return update +} + +func (ar *AutoRelay) numRelays() int { + ar.mx.Lock() + defer ar.mx.Unlock() + return len(ar.relays) +} + +// usingRelay returns if we're currently using the given relay. +func (ar *AutoRelay) usingRelay(p peer.ID) bool { + ar.mx.Lock() + defer ar.mx.Unlock() + _, ok := ar.relays[p] + return ok +} + +// addRelay adds the given relay to our set of relays. +// returns true when we add a new relay +func (ar *AutoRelay) tryRelay(ctx context.Context, pi pstore.PeerInfo) bool { + if ar.usingRelay(pi.ID) { + return false + } + + if !ar.connect(ctx, pi) { + return false + } + + ar.mx.Lock() + defer ar.mx.Unlock() + + // make sure we're still connected. + if ar.host.Network().Connectedness(pi.ID) != inet.Connected { + return false + } + ar.relays[pi.ID] = struct{}{} + + return true +} + +func (ar *AutoRelay) connect(ctx context.Context, pi pstore.PeerInfo) bool { + ctx, cancel := context.WithTimeout(ctx, 60*time.Second) + defer cancel() + + if len(pi.Addrs) == 0 { + var err error + pi, err = ar.router.FindPeer(ctx, pi.ID) + if err != nil { + log.Debugf("error finding relay peer %s: %s", pi.ID, err.Error()) + return false + } + } + + err := ar.host.Connect(ctx, pi) + if err != nil { + log.Debugf("error connecting to relay %s: %s", pi.ID, err.Error()) + return false + } + + // tag the connection as very important + ar.host.ConnManager().TagPeer(pi.ID, "relay", 42) + return true +} + +func (ar *AutoRelay) discoverRelays(ctx context.Context) ([]pstore.PeerInfo, error) { + ctx, cancel := context.WithTimeout(ctx, 30*time.Second) + defer cancel() + return discovery.FindPeers(ctx, ar.discover, RelayRendezvous, 1000) +} + +func (ar *AutoRelay) selectRelays(ctx context.Context, pis []pstore.PeerInfo) []pstore.PeerInfo { + // TODO better relay selection strategy; this just selects random relays + // but we should probably use ping latency as the selection metric + + shuffleRelays(pis) + return pis +} + +// This function is computes the NATed relay addrs when our status is private: +// - The public addrs are removed from the address set. +// - The non-public addrs are included verbatim so that peers behind the same NAT/firewall +// can still dial us directly. +// - On top of those, we add the relay-specific addrs for the relays to which we are +// connected. For each non-private relay addr, we encapsulate the p2p-circuit addr +// through which we can be dialed. +func (ar *AutoRelay) relayAddrs(addrs []ma.Multiaddr) []ma.Multiaddr { + ar.mx.Lock() + defer ar.mx.Unlock() + + if ar.status != autonat.NATStatusPrivate { + return addrs + } + + if ar.cachedAddrs != nil && time.Now().Before(ar.cachedAddrsExpiry) { + return ar.cachedAddrs + } + + raddrs := make([]ma.Multiaddr, 0, 4*len(ar.relays)+4) + + // only keep private addrs from the original addr set + for _, addr := range addrs { + if manet.IsPrivateAddr(addr) { + raddrs = append(raddrs, addr) + } + } + + // add relay specific addrs to the list + for p := range ar.relays { + addrs := cleanupAddressSet(ar.host.Peerstore().Addrs(p)) + + circuit, err := ma.NewMultiaddr(fmt.Sprintf("/p2p/%s/p2p-circuit", p.Pretty())) + if err != nil { + panic(err) + } + + for _, addr := range addrs { + pub := addr.Encapsulate(circuit) + raddrs = append(raddrs, pub) + } + } + + ar.cachedAddrs = raddrs + ar.cachedAddrsExpiry = time.Now().Add(30 * time.Second) + + return raddrs +} + +func shuffleRelays(pis []pstore.PeerInfo) { + for i := range pis { + j := rand.Intn(i + 1) + pis[i], pis[j] = pis[j], pis[i] + } +} + +// Notifee +func (ar *AutoRelay) Listen(inet.Network, ma.Multiaddr) {} +func (ar *AutoRelay) ListenClose(inet.Network, ma.Multiaddr) {} +func (ar *AutoRelay) Connected(inet.Network, inet.Conn) {} + +func (ar *AutoRelay) Disconnected(net inet.Network, c inet.Conn) { + p := c.RemotePeer() + + ar.mx.Lock() + defer ar.mx.Unlock() + + if ar.host.Network().Connectedness(p) == inet.Connected { + // We have a second connection. + return + } + + if _, ok := ar.relays[p]; ok { + delete(ar.relays, p) + select { + case ar.disconnect <- struct{}{}: + default: + } + } +} + +func (ar *AutoRelay) OpenedStream(inet.Network, inet.Stream) {} +func (ar *AutoRelay) ClosedStream(inet.Network, inet.Stream) {} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/doc.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/doc.go new file mode 100644 index 00000000..f7511ad9 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/doc.go @@ -0,0 +1,28 @@ +/* +The relay package contains the components necessary to implement the "autorelay" +feature. + +Warning: the internal interfaces are unstable. + +System Components: +- A discovery service to discover public relays. +- An AutoNAT client used to determine if the node is behind a NAT/firewall. +- One or more autonat services, instances of `AutoNATServices`. These are used + by the autonat client. +- One or more relays, instances of `RelayHost`. +- The AutoRelay service. This is the service that actually: + +AutoNATService: https://github.com/libp2p/go-libp2p-autonat-svc +AutoNAT: https://github.com/libp2p/go-libp2p-autonat + +How it works: +- `AutoNATService` instances are instantiated in the bootstrappers (or other + well known publicly reachable hosts) +- `AutoRelay`s are constructed with `libp2p.New(libp2p.Routing(makeDHT))` + They passively discover autonat service instances and test dialability of + their listen address set through them. When the presence of NAT is detected, + they discover relays through the DHT, connect to some of them and begin + advertising relay addresses. The new set of addresses is propagated to + connected peers through the `identify/push` protocol. +*/ +package relay diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/log.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/log.go new file mode 100644 index 00000000..eca0fa45 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/log.go @@ -0,0 +1,7 @@ +package relay + +import ( + logging "github.com/ipfs/go-log" +) + +var log = logging.Logger("autorelay") diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/relay.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/relay.go new file mode 100644 index 00000000..2adea8fc --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/relay/relay.go @@ -0,0 +1,37 @@ +package relay + +import ( + "context" + "time" + + discovery "github.com/libp2p/go-libp2p-discovery" + ma "github.com/multiformats/go-multiaddr" +) + +var ( + // this is purposefully long to require some node stability before advertising as a relay + AdvertiseBootDelay = 15 * time.Minute +) + +// Advertise advertises this node as a libp2p relay. +func Advertise(ctx context.Context, advertise discovery.Advertiser) { + go func() { + select { + case <-time.After(AdvertiseBootDelay): + discovery.Advertise(ctx, advertise, RelayRendezvous) + case <-ctx.Done(): + } + }() +} + +// Filter filters out all relay addresses. +func Filter(addrs []ma.Multiaddr) []ma.Multiaddr { + raddrs := make([]ma.Multiaddr, 0, len(addrs)) + for _, addr := range addrs { + if isRelayAddr(addr) { + continue + } + raddrs = append(raddrs, addr) + } + return raddrs +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/host/routed/routed.go b/vendor/github.com/libp2p/go-libp2p/p2p/host/routed/routed.go new file mode 100644 index 00000000..e5b2e40d --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/host/routed/routed.go @@ -0,0 +1,190 @@ +package routedhost + +import ( + "context" + "fmt" + "time" + + host "github.com/libp2p/go-libp2p-host" + + logging "github.com/ipfs/go-log" + circuit "github.com/libp2p/go-libp2p-circuit" + ifconnmgr "github.com/libp2p/go-libp2p-interface-connmgr" + lgbl "github.com/libp2p/go-libp2p-loggables" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + protocol "github.com/libp2p/go-libp2p-protocol" + ma "github.com/multiformats/go-multiaddr" + msmux "github.com/multiformats/go-multistream" +) + +var log = logging.Logger("routedhost") + +// AddressTTL is the expiry time for our addresses. +// We expire them quickly. +const AddressTTL = time.Second * 10 + +// RoutedHost is a p2p Host that includes a routing system. +// This allows the Host to find the addresses for peers when +// it does not have them. +type RoutedHost struct { + host host.Host // embedded other host. + route Routing +} + +type Routing interface { + FindPeer(context.Context, peer.ID) (pstore.PeerInfo, error) +} + +func Wrap(h host.Host, r Routing) *RoutedHost { + return &RoutedHost{h, r} +} + +// Connect ensures there is a connection between this host and the peer with +// given peer.ID. See (host.Host).Connect for more information. +// +// RoutedHost's Connect differs in that if the host has no addresses for a +// given peer, it will use its routing system to try to find some. +func (rh *RoutedHost) Connect(ctx context.Context, pi pstore.PeerInfo) error { + // first, check if we're already connected. + if rh.Network().Connectedness(pi.ID) == inet.Connected { + return nil + } + + // if we were given some addresses, keep + use them. + if len(pi.Addrs) > 0 { + rh.Peerstore().AddAddrs(pi.ID, pi.Addrs, pstore.TempAddrTTL) + } + + // Check if we have some addresses in our recent memory. + addrs := rh.Peerstore().Addrs(pi.ID) + if len(addrs) < 1 { + // no addrs? find some with the routing system. + var err error + addrs, err = rh.findPeerAddrs(ctx, pi.ID) + if err != nil { + return err + } + } + + // Issue 448: if our address set includes routed specific relay addrs, + // we need to make sure the relay's addr itself is in the peerstore or else + // we wont be able to dial it. + for _, addr := range addrs { + _, err := addr.ValueForProtocol(circuit.P_CIRCUIT) + if err != nil { + // not a relay address + continue + } + + if addr.Protocols()[0].Code != ma.P_P2P { + // not a routed relay specific address + continue + } + + relay, _ := addr.ValueForProtocol(ma.P_P2P) + + relayID, err := peer.IDFromString(relay) + if err != nil { + log.Debugf("failed to parse relay ID in address %s: %s", relay, err) + continue + } + + if len(rh.Peerstore().Addrs(relayID)) > 0 { + // we already have addrs for this relay + continue + } + + relayAddrs, err := rh.findPeerAddrs(ctx, relayID) + if err != nil { + log.Debugf("failed to find relay %s: %s", relay, err) + continue + } + + rh.Peerstore().AddAddrs(relayID, relayAddrs, pstore.TempAddrTTL) + } + + // if we're here, we got some addrs. let's use our wrapped host to connect. + pi.Addrs = addrs + return rh.host.Connect(ctx, pi) +} + +func (rh *RoutedHost) findPeerAddrs(ctx context.Context, id peer.ID) ([]ma.Multiaddr, error) { + pi, err := rh.route.FindPeer(ctx, id) + if err != nil { + return nil, err // couldnt find any :( + } + + if pi.ID != id { + err = fmt.Errorf("routing failure: provided addrs for different peer") + logRoutingErrDifferentPeers(ctx, id, pi.ID, err) + return nil, err + } + + return pi.Addrs, nil +} + +func logRoutingErrDifferentPeers(ctx context.Context, wanted, got peer.ID, err error) { + lm := make(lgbl.DeferredMap) + lm["error"] = err + lm["wantedPeer"] = func() interface{} { return wanted.Pretty() } + lm["gotPeer"] = func() interface{} { return got.Pretty() } + log.Event(ctx, "routingError", lm) +} + +func (rh *RoutedHost) ID() peer.ID { + return rh.host.ID() +} + +func (rh *RoutedHost) Peerstore() pstore.Peerstore { + return rh.host.Peerstore() +} + +func (rh *RoutedHost) Addrs() []ma.Multiaddr { + return rh.host.Addrs() +} + +func (rh *RoutedHost) Network() inet.Network { + return rh.host.Network() +} + +func (rh *RoutedHost) Mux() *msmux.MultistreamMuxer { + return rh.host.Mux() +} + +func (rh *RoutedHost) SetStreamHandler(pid protocol.ID, handler inet.StreamHandler) { + rh.host.SetStreamHandler(pid, handler) +} + +func (rh *RoutedHost) SetStreamHandlerMatch(pid protocol.ID, m func(string) bool, handler inet.StreamHandler) { + rh.host.SetStreamHandlerMatch(pid, m, handler) +} + +func (rh *RoutedHost) RemoveStreamHandler(pid protocol.ID) { + rh.host.RemoveStreamHandler(pid) +} + +func (rh *RoutedHost) NewStream(ctx context.Context, p peer.ID, pids ...protocol.ID) (inet.Stream, error) { + // Ensure we have a connection, with peer addresses resolved by the routing system (#207) + // It is not sufficient to let the underlying host connect, it will most likely not have + // any addresses for the peer without any prior connections. + // If the caller wants to prevent the host from dialing, it should use the NoDial option. + if nodial, _ := inet.GetNoDial(ctx); !nodial { + err := rh.Connect(ctx, pstore.PeerInfo{ID: p}) + if err != nil { + return nil, err + } + } + + return rh.host.NewStream(ctx, p, pids...) +} +func (rh *RoutedHost) Close() error { + // no need to close IpfsRouting. we dont own it. + return rh.host.Close() +} +func (rh *RoutedHost) ConnManager() ifconnmgr.ConnManager { + return rh.host.ConnManager() +} + +var _ (host.Host) = (*RoutedHost)(nil) diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/interface.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/interface.go new file mode 100644 index 00000000..e62fc4d7 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/interface.go @@ -0,0 +1,105 @@ +// Package mocknet provides a mock net.Network to test with. +// +// - a Mocknet has many inet.Networks +// - a Mocknet has many Links +// - a Link joins two inet.Networks +// - inet.Conns and inet.Streams are created by inet.Networks +package mocknet + +import ( + "io" + "time" + + host "github.com/libp2p/go-libp2p-host" + + ic "github.com/libp2p/go-libp2p-crypto" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" +) + +type Mocknet interface { + + // GenPeer generates a peer and its inet.Network in the Mocknet + GenPeer() (host.Host, error) + + // AddPeer adds an existing peer. we need both a privkey and addr. + // ID is derived from PrivKey + AddPeer(ic.PrivKey, ma.Multiaddr) (host.Host, error) + AddPeerWithPeerstore(peer.ID, pstore.Peerstore) (host.Host, error) + + // retrieve things (with randomized iteration order) + Peers() []peer.ID + Net(peer.ID) inet.Network + Nets() []inet.Network + Host(peer.ID) host.Host + Hosts() []host.Host + Links() LinkMap + LinksBetweenPeers(a, b peer.ID) []Link + LinksBetweenNets(a, b inet.Network) []Link + + // Links are the **ability to connect**. + // think of Links as the physical medium. + // For p1 and p2 to connect, a link must exist between them. + // (this makes it possible to test dial failures, and + // things like relaying traffic) + LinkPeers(peer.ID, peer.ID) (Link, error) + LinkNets(inet.Network, inet.Network) (Link, error) + Unlink(Link) error + UnlinkPeers(peer.ID, peer.ID) error + UnlinkNets(inet.Network, inet.Network) error + + // LinkDefaults are the default options that govern links + // if they do not have thier own option set. + SetLinkDefaults(LinkOptions) + LinkDefaults() LinkOptions + + // Connections are the usual. Connecting means Dialing. + // **to succeed, peers must be linked beforehand** + ConnectPeers(peer.ID, peer.ID) (inet.Conn, error) + ConnectNets(inet.Network, inet.Network) (inet.Conn, error) + DisconnectPeers(peer.ID, peer.ID) error + DisconnectNets(inet.Network, inet.Network) error + LinkAll() error + ConnectAllButSelf() error +} + +// LinkOptions are used to change aspects of the links. +// Sorry but they dont work yet :( +type LinkOptions struct { + Latency time.Duration + Bandwidth float64 // in bytes-per-second + // we can make these values distributions down the road. +} + +// Link represents the **possibility** of a connection between +// two peers. Think of it like physical network links. Without +// them, the peers can try and try but they won't be able to +// connect. This allows constructing topologies where specific +// nodes cannot talk to each other directly. :) +type Link interface { + Networks() []inet.Network + Peers() []peer.ID + + SetOptions(LinkOptions) + Options() LinkOptions + + // Metrics() Metrics +} + +// LinkMap is a 3D map to give us an easy way to track links. +// (wow, much map. so data structure. how compose. ahhh pointer) +type LinkMap map[string]map[string]map[Link]struct{} + +// Printer lets you inspect things :) +type Printer interface { + // MocknetLinks shows the entire Mocknet's link table :) + MocknetLinks(mn Mocknet) + NetworkConns(ni inet.Network) +} + +// PrinterTo returns a Printer ready to write to w. +func PrinterTo(w io.Writer) Printer { + return &printer{w} +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock.go new file mode 100644 index 00000000..55256f86 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock.go @@ -0,0 +1,52 @@ +package mocknet + +import ( + "context" + + logging "github.com/ipfs/go-log" +) + +var log = logging.Logger("mocknet") + +// WithNPeers constructs a Mocknet with N peers. +func WithNPeers(ctx context.Context, n int) (Mocknet, error) { + m := New(ctx) + for i := 0; i < n; i++ { + if _, err := m.GenPeer(); err != nil { + return nil, err + } + } + return m, nil +} + +// FullMeshLinked constructs a Mocknet with full mesh of Links. +// This means that all the peers **can** connect to each other +// (not that they already are connected. you can use m.ConnectAll()) +func FullMeshLinked(ctx context.Context, n int) (Mocknet, error) { + m, err := WithNPeers(ctx, n) + if err != nil { + return nil, err + } + + if err := m.LinkAll(); err != nil { + return nil, err + } + + return m, nil +} + +// FullMeshConnected constructs a Mocknet with full mesh of Connections. +// This means that all the peers have dialed and are ready to talk to +// each other. +func FullMeshConnected(ctx context.Context, n int) (Mocknet, error) { + m, err := FullMeshLinked(ctx, n) + if err != nil { + return nil, err + } + + err = m.ConnectAllButSelf() + if err != nil { + return nil, err + } + return m, nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_conn.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_conn.go new file mode 100644 index 00000000..3e0af726 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_conn.go @@ -0,0 +1,160 @@ +package mocknet + +import ( + "container/list" + "sync" + + process "github.com/jbenet/goprocess" + ic "github.com/libp2p/go-libp2p-crypto" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +// conn represents one side's perspective of a +// live connection between two peers. +// it goes over a particular link. +type conn struct { + local peer.ID + remote peer.ID + + localAddr ma.Multiaddr + remoteAddr ma.Multiaddr + + localPrivKey ic.PrivKey + remotePubKey ic.PubKey + + net *peernet + link *link + rconn *conn // counterpart + streams list.List + proc process.Process + stat inet.Stat + + sync.RWMutex +} + +func newConn(ln, rn *peernet, l *link, dir inet.Direction) *conn { + c := &conn{net: ln, link: l} + c.local = ln.peer + c.remote = rn.peer + c.stat = inet.Stat{Direction: dir} + + c.localAddr = ln.ps.Addrs(ln.peer)[0] + c.remoteAddr = rn.ps.Addrs(rn.peer)[0] + + c.localPrivKey = ln.ps.PrivKey(ln.peer) + c.remotePubKey = rn.ps.PubKey(rn.peer) + + c.proc = process.WithTeardown(c.teardown) + return c +} + +func (c *conn) Close() error { + return c.proc.Close() +} + +func (c *conn) teardown() error { + for _, s := range c.allStreams() { + s.Reset() + } + c.net.removeConn(c) + c.net.notifyAll(func(n inet.Notifiee) { + n.Disconnected(c.net, c) + }) + return nil +} + +func (c *conn) addStream(s *stream) { + c.Lock() + s.conn = c + c.streams.PushBack(s) + c.Unlock() +} + +func (c *conn) removeStream(s *stream) { + c.Lock() + defer c.Unlock() + for e := c.streams.Front(); e != nil; e = e.Next() { + if s == e.Value { + c.streams.Remove(e) + return + } + } +} + +func (c *conn) allStreams() []inet.Stream { + c.RLock() + defer c.RUnlock() + + strs := make([]inet.Stream, 0, c.streams.Len()) + for e := c.streams.Front(); e != nil; e = e.Next() { + s := e.Value.(*stream) + strs = append(strs, s) + } + return strs +} + +func (c *conn) remoteOpenedStream(s *stream) { + c.addStream(s) + c.net.handleNewStream(s) + c.net.notifyAll(func(n inet.Notifiee) { + n.OpenedStream(c.net, s) + }) +} + +func (c *conn) openStream() *stream { + sl, sr := c.link.newStreamPair() + c.addStream(sl) + c.net.notifyAll(func(n inet.Notifiee) { + n.OpenedStream(c.net, sl) + }) + c.rconn.remoteOpenedStream(sr) + return sl +} + +func (c *conn) NewStream() (inet.Stream, error) { + log.Debugf("Conn.NewStreamWithProtocol: %s --> %s", c.local, c.remote) + + s := c.openStream() + return s, nil +} + +func (c *conn) GetStreams() []inet.Stream { + return c.allStreams() +} + +// LocalMultiaddr is the Multiaddr on this side +func (c *conn) LocalMultiaddr() ma.Multiaddr { + return c.localAddr +} + +// LocalPeer is the Peer on our side of the connection +func (c *conn) LocalPeer() peer.ID { + return c.local +} + +// LocalPrivateKey is the private key of the peer on our side. +func (c *conn) LocalPrivateKey() ic.PrivKey { + return c.localPrivKey +} + +// RemoteMultiaddr is the Multiaddr on the remote side +func (c *conn) RemoteMultiaddr() ma.Multiaddr { + return c.remoteAddr +} + +// RemotePeer is the Peer on the remote side +func (c *conn) RemotePeer() peer.ID { + return c.remote +} + +// RemotePublicKey is the private key of the peer on our side. +func (c *conn) RemotePublicKey() ic.PubKey { + return c.remotePubKey +} + +// Stat returns metadata about the connection +func (c *conn) Stat() inet.Stat { + return c.stat +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_link.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_link.go new file mode 100644 index 00000000..9e31cbec --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_link.go @@ -0,0 +1,99 @@ +package mocknet + +import ( + // "fmt" + "io" + "sync" + "time" + + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" +) + +// link implements mocknet.Link +// and, for simplicity, inet.Conn +type link struct { + mock *mocknet + nets []*peernet + opts LinkOptions + ratelimiter *RateLimiter + // this could have addresses on both sides. + + sync.RWMutex +} + +func newLink(mn *mocknet, opts LinkOptions) *link { + l := &link{mock: mn, + opts: opts, + ratelimiter: NewRateLimiter(opts.Bandwidth)} + return l +} + +func (l *link) newConnPair(dialer *peernet) (*conn, *conn) { + l.RLock() + defer l.RUnlock() + + c1 := newConn(l.nets[0], l.nets[1], l, inet.DirOutbound) + c2 := newConn(l.nets[1], l.nets[0], l, inet.DirInbound) + c1.rconn = c2 + c2.rconn = c1 + + if dialer == c1.net { + return c1, c2 + } + return c2, c1 +} + +func (l *link) newStreamPair() (*stream, *stream) { + ra, wb := io.Pipe() + rb, wa := io.Pipe() + + sa := NewStream(wa, ra, inet.DirOutbound) + sb := NewStream(wb, rb, inet.DirInbound) + return sa, sb +} + +func (l *link) Networks() []inet.Network { + l.RLock() + defer l.RUnlock() + + cp := make([]inet.Network, len(l.nets)) + for i, n := range l.nets { + cp[i] = n + } + return cp +} + +func (l *link) Peers() []peer.ID { + l.RLock() + defer l.RUnlock() + + cp := make([]peer.ID, len(l.nets)) + for i, n := range l.nets { + cp[i] = n.peer + } + return cp +} + +func (l *link) SetOptions(o LinkOptions) { + l.Lock() + defer l.Unlock() + l.opts = o + l.ratelimiter.UpdateBandwidth(l.opts.Bandwidth) +} + +func (l *link) Options() LinkOptions { + l.RLock() + defer l.RUnlock() + return l.opts +} + +func (l *link) GetLatency() time.Duration { + l.RLock() + defer l.RUnlock() + return l.opts.Latency +} + +func (l *link) RateLimit(dataSize int) time.Duration { + return l.ratelimiter.Limit(dataSize) +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_net.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_net.go new file mode 100644 index 00000000..2e34d3f7 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_net.go @@ -0,0 +1,396 @@ +package mocknet + +import ( + "context" + "fmt" + "net" + "sort" + "sync" + + host "github.com/libp2p/go-libp2p-host" + bhost "github.com/libp2p/go-libp2p/p2p/host/basic" + + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + ic "github.com/libp2p/go-libp2p-crypto" + inet "github.com/libp2p/go-libp2p-net" + p2putil "github.com/libp2p/go-libp2p-netutil" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + pstoremem "github.com/libp2p/go-libp2p-peerstore/pstoremem" + ma "github.com/multiformats/go-multiaddr" +) + +// IP6 range that gets blackholed (in case our traffic ever makes it out onto +// the internet). +var blackholeIP6 = net.ParseIP("100::") + +// mocknet implements mocknet.Mocknet +type mocknet struct { + nets map[peer.ID]*peernet + hosts map[peer.ID]*bhost.BasicHost + + // links make it possible to connect two peers. + // think of links as the physical medium. + // usually only one, but there could be multiple + // **links are shared between peers** + links map[peer.ID]map[peer.ID]map[*link]struct{} + + linkDefaults LinkOptions + + proc goprocess.Process // for Context closing + ctx context.Context + sync.Mutex +} + +func New(ctx context.Context) Mocknet { + return &mocknet{ + nets: map[peer.ID]*peernet{}, + hosts: map[peer.ID]*bhost.BasicHost{}, + links: map[peer.ID]map[peer.ID]map[*link]struct{}{}, + proc: goprocessctx.WithContext(ctx), + ctx: ctx, + } +} + +func (mn *mocknet) GenPeer() (host.Host, error) { + sk, err := p2putil.RandTestBogusPrivateKey() + if err != nil { + return nil, err + } + id, err := peer.IDFromPrivateKey(sk) + if err != nil { + return nil, err + } + suffix := id + if len(id) > 8 { + suffix = id[len(id)-8:] + } + ip := append(net.IP{}, blackholeIP6...) + copy(ip[net.IPv6len-len(suffix):], suffix) + a, err := ma.NewMultiaddr(fmt.Sprintf("/ip6/%s/tcp/4242", ip)) + if err != nil { + return nil, fmt.Errorf("failed to create test multiaddr: %s", err) + } + + h, err := mn.AddPeer(sk, a) + if err != nil { + return nil, err + } + + return h, nil +} + +func (mn *mocknet) AddPeer(k ic.PrivKey, a ma.Multiaddr) (host.Host, error) { + p, err := peer.IDFromPublicKey(k.GetPublic()) + if err != nil { + return nil, err + } + + ps := pstoremem.NewPeerstore() + ps.AddAddr(p, a, pstore.PermanentAddrTTL) + ps.AddPrivKey(p, k) + ps.AddPubKey(p, k.GetPublic()) + + return mn.AddPeerWithPeerstore(p, ps) +} + +func (mn *mocknet) AddPeerWithPeerstore(p peer.ID, ps pstore.Peerstore) (host.Host, error) { + n, err := newPeernet(mn.ctx, mn, p, ps) + if err != nil { + return nil, err + } + + opts := &bhost.HostOpts{ + NegotiationTimeout: -1, + } + + h, err := bhost.NewHost(mn.ctx, n, opts) + if err != nil { + return nil, err + } + + mn.proc.AddChild(n.proc) + + mn.Lock() + mn.nets[n.peer] = n + mn.hosts[n.peer] = h + mn.Unlock() + return h, nil +} + +func (mn *mocknet) Peers() []peer.ID { + mn.Lock() + defer mn.Unlock() + + cp := make([]peer.ID, 0, len(mn.nets)) + for _, n := range mn.nets { + cp = append(cp, n.peer) + } + sort.Sort(peer.IDSlice(cp)) + return cp +} + +func (mn *mocknet) Host(pid peer.ID) host.Host { + mn.Lock() + host := mn.hosts[pid] + mn.Unlock() + return host +} + +func (mn *mocknet) Net(pid peer.ID) inet.Network { + mn.Lock() + n := mn.nets[pid] + mn.Unlock() + return n +} + +func (mn *mocknet) Hosts() []host.Host { + mn.Lock() + defer mn.Unlock() + + cp := make([]host.Host, 0, len(mn.hosts)) + for _, h := range mn.hosts { + cp = append(cp, h) + } + + sort.Sort(hostSlice(cp)) + return cp +} + +func (mn *mocknet) Nets() []inet.Network { + mn.Lock() + defer mn.Unlock() + + cp := make([]inet.Network, 0, len(mn.nets)) + for _, n := range mn.nets { + cp = append(cp, n) + } + sort.Sort(netSlice(cp)) + return cp +} + +// Links returns a copy of the internal link state map. +// (wow, much map. so data structure. how compose. ahhh pointer) +func (mn *mocknet) Links() LinkMap { + mn.Lock() + defer mn.Unlock() + + links := map[string]map[string]map[Link]struct{}{} + for p1, lm := range mn.links { + sp1 := string(p1) + links[sp1] = map[string]map[Link]struct{}{} + for p2, ls := range lm { + sp2 := string(p2) + links[sp1][sp2] = map[Link]struct{}{} + for l := range ls { + links[sp1][sp2][l] = struct{}{} + } + } + } + return links +} + +func (mn *mocknet) LinkAll() error { + nets := mn.Nets() + for _, n1 := range nets { + for _, n2 := range nets { + if _, err := mn.LinkNets(n1, n2); err != nil { + return err + } + } + } + return nil +} + +func (mn *mocknet) LinkPeers(p1, p2 peer.ID) (Link, error) { + mn.Lock() + n1 := mn.nets[p1] + n2 := mn.nets[p2] + mn.Unlock() + + if n1 == nil { + return nil, fmt.Errorf("network for p1 not in mocknet") + } + + if n2 == nil { + return nil, fmt.Errorf("network for p2 not in mocknet") + } + + return mn.LinkNets(n1, n2) +} + +func (mn *mocknet) validate(n inet.Network) (*peernet, error) { + // WARNING: assumes locks acquired + + nr, ok := n.(*peernet) + if !ok { + return nil, fmt.Errorf("Network not supported (use mock package nets only)") + } + + if _, found := mn.nets[nr.peer]; !found { + return nil, fmt.Errorf("Network not on mocknet. is it from another mocknet?") + } + + return nr, nil +} + +func (mn *mocknet) LinkNets(n1, n2 inet.Network) (Link, error) { + mn.Lock() + n1r, err1 := mn.validate(n1) + n2r, err2 := mn.validate(n2) + ld := mn.linkDefaults + mn.Unlock() + + if err1 != nil { + return nil, err1 + } + if err2 != nil { + return nil, err2 + } + + l := newLink(mn, ld) + l.nets = append(l.nets, n1r, n2r) + mn.addLink(l) + return l, nil +} + +func (mn *mocknet) Unlink(l2 Link) error { + + l, ok := l2.(*link) + if !ok { + return fmt.Errorf("only links from mocknet are supported") + } + + mn.removeLink(l) + return nil +} + +func (mn *mocknet) UnlinkPeers(p1, p2 peer.ID) error { + ls := mn.LinksBetweenPeers(p1, p2) + if ls == nil { + return fmt.Errorf("no link between p1 and p2") + } + + for _, l := range ls { + if err := mn.Unlink(l); err != nil { + return err + } + } + return nil +} + +func (mn *mocknet) UnlinkNets(n1, n2 inet.Network) error { + return mn.UnlinkPeers(n1.LocalPeer(), n2.LocalPeer()) +} + +// get from the links map. and lazily contruct. +func (mn *mocknet) linksMapGet(p1, p2 peer.ID) map[*link]struct{} { + + l1, found := mn.links[p1] + if !found { + mn.links[p1] = map[peer.ID]map[*link]struct{}{} + l1 = mn.links[p1] // so we make sure it's there. + } + + l2, found := l1[p2] + if !found { + m := map[*link]struct{}{} + l1[p2] = m + l2 = l1[p2] + } + + return l2 +} + +func (mn *mocknet) addLink(l *link) { + mn.Lock() + defer mn.Unlock() + + n1, n2 := l.nets[0], l.nets[1] + mn.linksMapGet(n1.peer, n2.peer)[l] = struct{}{} + mn.linksMapGet(n2.peer, n1.peer)[l] = struct{}{} +} + +func (mn *mocknet) removeLink(l *link) { + mn.Lock() + defer mn.Unlock() + + n1, n2 := l.nets[0], l.nets[1] + delete(mn.linksMapGet(n1.peer, n2.peer), l) + delete(mn.linksMapGet(n2.peer, n1.peer), l) +} + +func (mn *mocknet) ConnectAllButSelf() error { + nets := mn.Nets() + for _, n1 := range nets { + for _, n2 := range nets { + if n1 == n2 { + continue + } + + if _, err := mn.ConnectNets(n1, n2); err != nil { + return err + } + } + } + return nil +} + +func (mn *mocknet) ConnectPeers(a, b peer.ID) (inet.Conn, error) { + return mn.Net(a).DialPeer(mn.ctx, b) +} + +func (mn *mocknet) ConnectNets(a, b inet.Network) (inet.Conn, error) { + return a.DialPeer(mn.ctx, b.LocalPeer()) +} + +func (mn *mocknet) DisconnectPeers(p1, p2 peer.ID) error { + return mn.Net(p1).ClosePeer(p2) +} + +func (mn *mocknet) DisconnectNets(n1, n2 inet.Network) error { + return n1.ClosePeer(n2.LocalPeer()) +} + +func (mn *mocknet) LinksBetweenPeers(p1, p2 peer.ID) []Link { + mn.Lock() + defer mn.Unlock() + + ls2 := mn.linksMapGet(p1, p2) + cp := make([]Link, 0, len(ls2)) + for l := range ls2 { + cp = append(cp, l) + } + return cp +} + +func (mn *mocknet) LinksBetweenNets(n1, n2 inet.Network) []Link { + return mn.LinksBetweenPeers(n1.LocalPeer(), n2.LocalPeer()) +} + +func (mn *mocknet) SetLinkDefaults(o LinkOptions) { + mn.Lock() + mn.linkDefaults = o + mn.Unlock() +} + +func (mn *mocknet) LinkDefaults() LinkOptions { + mn.Lock() + defer mn.Unlock() + return mn.linkDefaults +} + +// netSlice for sorting by peer +type netSlice []inet.Network + +func (es netSlice) Len() int { return len(es) } +func (es netSlice) Swap(i, j int) { es[i], es[j] = es[j], es[i] } +func (es netSlice) Less(i, j int) bool { return string(es[i].LocalPeer()) < string(es[j].LocalPeer()) } + +// hostSlice for sorting by peer +type hostSlice []host.Host + +func (es hostSlice) Len() int { return len(es) } +func (es hostSlice) Swap(i, j int) { es[i], es[j] = es[j], es[i] } +func (es hostSlice) Less(i, j int) bool { return string(es[i].ID()) < string(es[j].ID()) } diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_peernet.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_peernet.go new file mode 100644 index 00000000..35c9bbe6 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_peernet.go @@ -0,0 +1,385 @@ +package mocknet + +import ( + "context" + "fmt" + "math/rand" + "sync" + + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" +) + +// peernet implements inet.Network +type peernet struct { + mocknet *mocknet // parent + + peer peer.ID + ps pstore.Peerstore + + // conns are actual live connections between peers. + // many conns could run over each link. + // **conns are NOT shared between peers** + connsByPeer map[peer.ID]map[*conn]struct{} + connsByLink map[*link]map[*conn]struct{} + + // implement inet.Network + streamHandler inet.StreamHandler + connHandler inet.ConnHandler + + notifmu sync.Mutex + notifs map[inet.Notifiee]struct{} + + proc goprocess.Process + sync.RWMutex +} + +// newPeernet constructs a new peernet +func newPeernet(ctx context.Context, m *mocknet, p peer.ID, ps pstore.Peerstore) (*peernet, error) { + + n := &peernet{ + mocknet: m, + peer: p, + ps: ps, + + connsByPeer: map[peer.ID]map[*conn]struct{}{}, + connsByLink: map[*link]map[*conn]struct{}{}, + + notifs: make(map[inet.Notifiee]struct{}), + } + + n.proc = goprocessctx.WithContextAndTeardown(ctx, n.teardown) + return n, nil +} + +func (pn *peernet) teardown() error { + + // close the connections + for _, c := range pn.allConns() { + c.Close() + } + return nil +} + +// allConns returns all the connections between this peer and others +func (pn *peernet) allConns() []*conn { + pn.RLock() + var cs []*conn + for _, csl := range pn.connsByPeer { + for c := range csl { + cs = append(cs, c) + } + } + pn.RUnlock() + return cs +} + +// Close calls the ContextCloser func +func (pn *peernet) Close() error { + return pn.proc.Close() +} + +func (pn *peernet) Peerstore() pstore.Peerstore { + return pn.ps +} + +func (pn *peernet) String() string { + return fmt.Sprintf("", pn.peer, len(pn.allConns())) +} + +// handleNewStream is an internal function to trigger the client's handler +func (pn *peernet) handleNewStream(s inet.Stream) { + pn.RLock() + handler := pn.streamHandler + pn.RUnlock() + if handler != nil { + go handler(s) + } +} + +// handleNewConn is an internal function to trigger the client's handler +func (pn *peernet) handleNewConn(c inet.Conn) { + pn.RLock() + handler := pn.connHandler + pn.RUnlock() + if handler != nil { + go handler(c) + } +} + +// DialPeer attempts to establish a connection to a given peer. +// Respects the context. +func (pn *peernet) DialPeer(ctx context.Context, p peer.ID) (inet.Conn, error) { + return pn.connect(p) +} + +func (pn *peernet) connect(p peer.ID) (*conn, error) { + if p == pn.peer { + return nil, fmt.Errorf("attempted to dial self %s", p) + } + + // first, check if we already have live connections + pn.RLock() + cs, found := pn.connsByPeer[p] + if found && len(cs) > 0 { + var chosen *conn + for c := range cs { // because cs is a map + chosen = c // select first + break + } + pn.RUnlock() + return chosen, nil + } + pn.RUnlock() + + log.Debugf("%s (newly) dialing %s", pn.peer, p) + + // ok, must create a new connection. we need a link + links := pn.mocknet.LinksBetweenPeers(pn.peer, p) + if len(links) < 1 { + return nil, fmt.Errorf("%s cannot connect to %s", pn.peer, p) + } + + // if many links found, how do we select? for now, randomly... + // this would be an interesting place to test logic that can measure + // links (network interfaces) and select properly + l := links[rand.Intn(len(links))] + + log.Debugf("%s dialing %s openingConn", pn.peer, p) + // create a new connection with link + c := pn.openConn(p, l.(*link)) + return c, nil +} + +func (pn *peernet) openConn(r peer.ID, l *link) *conn { + lc, rc := l.newConnPair(pn) + log.Debugf("%s opening connection to %s", pn.LocalPeer(), lc.RemotePeer()) + pn.addConn(lc) + pn.notifyAll(func(n inet.Notifiee) { + n.Connected(pn, lc) + }) + rc.net.remoteOpenedConn(rc) + return lc +} + +func (pn *peernet) remoteOpenedConn(c *conn) { + log.Debugf("%s accepting connection from %s", pn.LocalPeer(), c.RemotePeer()) + pn.addConn(c) + pn.handleNewConn(c) + pn.notifyAll(func(n inet.Notifiee) { + n.Connected(pn, c) + }) +} + +// addConn constructs and adds a connection +// to given remote peer over given link +func (pn *peernet) addConn(c *conn) { + pn.Lock() + defer pn.Unlock() + + cs, found := pn.connsByPeer[c.RemotePeer()] + if !found { + cs = map[*conn]struct{}{} + pn.connsByPeer[c.RemotePeer()] = cs + } + pn.connsByPeer[c.RemotePeer()][c] = struct{}{} + + cs, found = pn.connsByLink[c.link] + if !found { + cs = map[*conn]struct{}{} + pn.connsByLink[c.link] = cs + } + pn.connsByLink[c.link][c] = struct{}{} +} + +// removeConn removes a given conn +func (pn *peernet) removeConn(c *conn) { + pn.Lock() + defer pn.Unlock() + + cs, found := pn.connsByLink[c.link] + if !found || len(cs) < 1 { + panic(fmt.Sprintf("attempting to remove a conn that doesnt exist %p", c.link)) + } + delete(cs, c) + + cs, found = pn.connsByPeer[c.remote] + if !found { + panic(fmt.Sprintf("attempting to remove a conn that doesnt exist %v", c.remote)) + } + delete(cs, c) +} + +// Process returns the network's Process +func (pn *peernet) Process() goprocess.Process { + return pn.proc +} + +// LocalPeer the network's LocalPeer +func (pn *peernet) LocalPeer() peer.ID { + return pn.peer +} + +// Peers returns the connected peers +func (pn *peernet) Peers() []peer.ID { + pn.RLock() + defer pn.RUnlock() + + peers := make([]peer.ID, 0, len(pn.connsByPeer)) + for _, cs := range pn.connsByPeer { + for c := range cs { + peers = append(peers, c.remote) + break + } + } + return peers +} + +// Conns returns all the connections of this peer +func (pn *peernet) Conns() []inet.Conn { + pn.RLock() + defer pn.RUnlock() + + out := make([]inet.Conn, 0, len(pn.connsByPeer)) + for _, cs := range pn.connsByPeer { + for c := range cs { + out = append(out, c) + } + } + return out +} + +func (pn *peernet) ConnsToPeer(p peer.ID) []inet.Conn { + pn.RLock() + defer pn.RUnlock() + + cs, found := pn.connsByPeer[p] + if !found || len(cs) == 0 { + return nil + } + + var cs2 []inet.Conn + for c := range cs { + cs2 = append(cs2, c) + } + return cs2 +} + +// ClosePeer connections to peer +func (pn *peernet) ClosePeer(p peer.ID) error { + pn.RLock() + cs, found := pn.connsByPeer[p] + if !found { + pn.RUnlock() + return nil + } + + var conns []*conn + for c := range cs { + conns = append(conns, c) + } + pn.RUnlock() + for _, c := range conns { + c.Close() + } + return nil +} + +// BandwidthTotals returns the total amount of bandwidth transferred +func (pn *peernet) BandwidthTotals() (in uint64, out uint64) { + // need to implement this. probably best to do it in swarm this time. + // need a "metrics" object + return 0, 0 +} + +// Listen tells the network to start listening on given multiaddrs. +func (pn *peernet) Listen(addrs ...ma.Multiaddr) error { + pn.Peerstore().AddAddrs(pn.LocalPeer(), addrs, pstore.PermanentAddrTTL) + return nil +} + +// ListenAddresses returns a list of addresses at which this network listens. +func (pn *peernet) ListenAddresses() []ma.Multiaddr { + return pn.Peerstore().Addrs(pn.LocalPeer()) +} + +// InterfaceListenAddresses returns a list of addresses at which this network +// listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to +// use the known local interfaces. +func (pn *peernet) InterfaceListenAddresses() ([]ma.Multiaddr, error) { + return pn.ListenAddresses(), nil +} + +// Connectedness returns a state signaling connection capabilities +// For now only returns Connecter || NotConnected. Expand into more later. +func (pn *peernet) Connectedness(p peer.ID) inet.Connectedness { + pn.Lock() + defer pn.Unlock() + + cs, found := pn.connsByPeer[p] + if found && len(cs) > 0 { + return inet.Connected + } + return inet.NotConnected +} + +// NewStream returns a new stream to given peer p. +// If there is no connection to p, attempts to create one. +func (pn *peernet) NewStream(ctx context.Context, p peer.ID) (inet.Stream, error) { + c, err := pn.DialPeer(ctx, p) + if err != nil { + return nil, err + } + return c.NewStream() +} + +// SetStreamHandler sets the new stream handler on the Network. +// This operation is threadsafe. +func (pn *peernet) SetStreamHandler(h inet.StreamHandler) { + pn.Lock() + pn.streamHandler = h + pn.Unlock() +} + +// SetConnHandler sets the new conn handler on the Network. +// This operation is threadsafe. +func (pn *peernet) SetConnHandler(h inet.ConnHandler) { + pn.Lock() + pn.connHandler = h + pn.Unlock() +} + +// Notify signs up Notifiee to receive signals when events happen +func (pn *peernet) Notify(f inet.Notifiee) { + pn.notifmu.Lock() + pn.notifs[f] = struct{}{} + pn.notifmu.Unlock() +} + +// StopNotify unregisters Notifiee from receiving signals +func (pn *peernet) StopNotify(f inet.Notifiee) { + pn.notifmu.Lock() + delete(pn.notifs, f) + pn.notifmu.Unlock() +} + +// notifyAll runs the notification function on all Notifiees +func (pn *peernet) notifyAll(notification func(f inet.Notifiee)) { + pn.notifmu.Lock() + var wg sync.WaitGroup + for n := range pn.notifs { + // make sure we dont block + // and they dont block each other. + wg.Add(1) + go func(n inet.Notifiee) { + defer wg.Done() + notification(n) + }(n) + } + wg.Wait() + pn.notifmu.Unlock() +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_printer.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_printer.go new file mode 100644 index 00000000..4990811a --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_printer.go @@ -0,0 +1,36 @@ +package mocknet + +import ( + "fmt" + "io" + + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" +) + +// separate object so our interfaces are separate :) +type printer struct { + w io.Writer +} + +func (p *printer) MocknetLinks(mn Mocknet) { + links := mn.Links() + + fmt.Fprintf(p.w, "Mocknet link map:\n") + for p1, lm := range links { + fmt.Fprintf(p.w, "\t%s linked to:\n", peer.ID(p1)) + for p2, l := range lm { + fmt.Fprintf(p.w, "\t\t%s (%d links)\n", peer.ID(p2), len(l)) + } + } + fmt.Fprintf(p.w, "\n") +} + +func (p *printer) NetworkConns(ni inet.Network) { + + fmt.Fprintf(p.w, "%s connected to:\n", ni.LocalPeer()) + for _, c := range ni.Conns() { + fmt.Fprintf(p.w, "\t%s (addr: %s)\n", c.RemotePeer(), c.RemoteMultiaddr()) + } + fmt.Fprintf(p.w, "\n") +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_stream.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_stream.go new file mode 100644 index 00000000..331b8960 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/mock_stream.go @@ -0,0 +1,266 @@ +package mocknet + +import ( + "bytes" + "errors" + "io" + "net" + "sync/atomic" + "time" + + inet "github.com/libp2p/go-libp2p-net" + protocol "github.com/libp2p/go-libp2p-protocol" +) + +// stream implements inet.Stream +type stream struct { + write *io.PipeWriter + read *io.PipeReader + conn *conn + toDeliver chan *transportObject + + reset chan struct{} + close chan struct{} + closed chan struct{} + + writeErr error + + protocol atomic.Value + stat inet.Stat +} + +var ErrReset error = errors.New("stream reset") +var ErrClosed error = errors.New("stream closed") + +type transportObject struct { + msg []byte + arrivalTime time.Time +} + +func NewStream(w *io.PipeWriter, r *io.PipeReader, dir inet.Direction) *stream { + s := &stream{ + read: r, + write: w, + reset: make(chan struct{}, 1), + close: make(chan struct{}, 1), + closed: make(chan struct{}), + toDeliver: make(chan *transportObject), + stat: inet.Stat{Direction: dir}, + } + + go s.transport() + return s +} + +// How to handle errors with writes? +func (s *stream) Write(p []byte) (n int, err error) { + l := s.conn.link + delay := l.GetLatency() + l.RateLimit(len(p)) + t := time.Now().Add(delay) + + // Copy it. + cpy := make([]byte, len(p)) + copy(cpy, p) + + select { + case <-s.closed: // bail out if we're closing. + return 0, s.writeErr + case s.toDeliver <- &transportObject{msg: cpy, arrivalTime: t}: + } + return len(p), nil +} + +func (s *stream) Protocol() protocol.ID { + // Ignore type error. It means that the protocol is unset. + p, _ := s.protocol.Load().(protocol.ID) + return p +} + +func (s *stream) Stat() inet.Stat { + return s.stat +} + +func (s *stream) SetProtocol(proto protocol.ID) { + s.protocol.Store(proto) +} + +func (s *stream) Close() error { + select { + case s.close <- struct{}{}: + default: + } + <-s.closed + if s.writeErr != ErrClosed { + return s.writeErr + } + return nil +} + +func (s *stream) Reset() error { + // Cancel any pending reads/writes with an error. + s.write.CloseWithError(ErrReset) + s.read.CloseWithError(ErrReset) + + select { + case s.reset <- struct{}{}: + default: + } + <-s.closed + + // No meaningful error case here. + return nil +} + +func (s *stream) teardown() { + // at this point, no streams are writing. + s.conn.removeStream(s) + + // Mark as closed. + close(s.closed) + + s.conn.net.notifyAll(func(n inet.Notifiee) { + n.ClosedStream(s.conn.net, s) + }) +} + +func (s *stream) Conn() inet.Conn { + return s.conn +} + +func (s *stream) SetDeadline(t time.Time) error { + return &net.OpError{Op: "set", Net: "pipe", Source: nil, Addr: nil, Err: errors.New("deadline not supported")} +} + +func (s *stream) SetReadDeadline(t time.Time) error { + return &net.OpError{Op: "set", Net: "pipe", Source: nil, Addr: nil, Err: errors.New("deadline not supported")} +} + +func (s *stream) SetWriteDeadline(t time.Time) error { + return &net.OpError{Op: "set", Net: "pipe", Source: nil, Addr: nil, Err: errors.New("deadline not supported")} +} + +func (s *stream) Read(b []byte) (int, error) { + return s.read.Read(b) +} + +// transport will grab message arrival times, wait until that time, and +// then write the message out when it is scheduled to arrive +func (s *stream) transport() { + defer s.teardown() + + bufsize := 256 + buf := new(bytes.Buffer) + timer := time.NewTimer(0) + if !timer.Stop() { + select { + case <-timer.C: + default: + } + } + + // cleanup + defer timer.Stop() + + // writeBuf writes the contents of buf through to the s.Writer. + // done only when arrival time makes sense. + drainBuf := func() error { + if buf.Len() > 0 { + _, err := s.write.Write(buf.Bytes()) + if err != nil { + return err + } + buf.Reset() + } + return nil + } + + // deliverOrWait is a helper func that processes + // an incoming packet. it waits until the arrival time, + // and then writes things out. + deliverOrWait := func(o *transportObject) error { + buffered := len(o.msg) + buf.Len() + + // Yes, we can end up extending a timer multiple times if we + // keep on making small writes but that shouldn't be too much of an + // issue. Fixing that would be painful. + if !timer.Stop() { + // FIXME: So, we *shouldn't* need to do this but we hang + // here if we don't... Go bug? + select { + case <-timer.C: + default: + } + } + delay := o.arrivalTime.Sub(time.Now()) + if delay >= 0 { + timer.Reset(delay) + } else { + timer.Reset(0) + } + + if buffered >= bufsize { + select { + case <-timer.C: + case <-s.reset: + select { + case s.reset <- struct{}{}: + default: + } + return ErrReset + } + if err := drainBuf(); err != nil { + return err + } + // write this message. + _, err := s.write.Write(o.msg) + if err != nil { + return err + } + } else { + buf.Write(o.msg) + } + return nil + } + + for { + // Reset takes precedent. + select { + case <-s.reset: + s.writeErr = ErrReset + return + default: + } + + select { + case <-s.reset: + s.writeErr = ErrReset + return + case <-s.close: + if err := drainBuf(); err != nil { + s.resetWith(err) + return + } + s.writeErr = s.write.Close() + if s.writeErr == nil { + s.writeErr = ErrClosed + } + return + case o := <-s.toDeliver: + if err := deliverOrWait(o); err != nil { + s.resetWith(err) + return + } + case <-timer.C: // ok, due to write it out. + if err := drainBuf(); err != nil { + s.resetWith(err) + return + } + } + } +} + +func (s *stream) resetWith(err error) { + s.write.CloseWithError(err) + s.read.CloseWithError(err) + s.writeErr = err +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/ratelimiter.go b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/ratelimiter.go new file mode 100644 index 00000000..d4e5797b --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/net/mock/ratelimiter.go @@ -0,0 +1,75 @@ +package mocknet + +import ( + "sync" + "time" +) + +// A RateLimiter is used by a link to determine how long to wait before sending +// data given a bandwidth cap. +type RateLimiter struct { + lock sync.Mutex + bandwidth float64 // bytes per nanosecond + allowance float64 // in bytes + maxAllowance float64 // in bytes + lastUpdate time.Time // when allowance was updated last + count int // number of times rate limiting was applied + duration time.Duration // total delay introduced due to rate limiting +} + +// Creates a new RateLimiter with bandwidth (in bytes/sec) +func NewRateLimiter(bandwidth float64) *RateLimiter { + // convert bandwidth to bytes per nanosecond + b := bandwidth / float64(time.Second) + return &RateLimiter{ + bandwidth: b, + allowance: 0, + maxAllowance: bandwidth, + lastUpdate: time.Now(), + } +} + +// Changes bandwidth of a RateLimiter and resets its allowance +func (r *RateLimiter) UpdateBandwidth(bandwidth float64) { + r.lock.Lock() + defer r.lock.Unlock() + // Convert bandwidth from bytes/second to bytes/nanosecond + b := bandwidth / float64(time.Second) + r.bandwidth = b + // Reset allowance + r.allowance = 0 + r.maxAllowance = bandwidth + r.lastUpdate = time.Now() +} + +// Returns how long to wait before sending data with length 'dataSize' bytes +func (r *RateLimiter) Limit(dataSize int) time.Duration { + r.lock.Lock() + defer r.lock.Unlock() + // update time + var duration time.Duration = time.Duration(0) + if r.bandwidth == 0 { + return duration + } + current := time.Now() + elapsedTime := current.Sub(r.lastUpdate) + r.lastUpdate = current + + allowance := r.allowance + float64(elapsedTime)*r.bandwidth + // allowance can't exceed bandwidth + if allowance > r.maxAllowance { + allowance = r.maxAllowance + } + + allowance -= float64(dataSize) + if allowance < 0 { + // sleep until allowance is back to 0 + duration = time.Duration(-allowance / r.bandwidth) + // rate limiting was applied, record stats + r.count++ + r.duration += duration + } + + r.allowance = allowance + return duration +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/id.go b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/id.go new file mode 100644 index 00000000..cfc4d088 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/id.go @@ -0,0 +1,515 @@ +package identify + +import ( + "context" + "sync" + "time" + + pb "github.com/libp2p/go-libp2p/p2p/protocol/identify/pb" + + ggio "github.com/gogo/protobuf/io" + logging "github.com/ipfs/go-log" + ic "github.com/libp2p/go-libp2p-crypto" + host "github.com/libp2p/go-libp2p-host" + lgbl "github.com/libp2p/go-libp2p-loggables" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" + msmux "github.com/multiformats/go-multistream" +) + +var log = logging.Logger("net/identify") + +// ID is the protocol.ID of the Identify Service. +const ID = "/ipfs/id/1.0.0" + +// IDPush is the protocol.ID of the Identify push protocol +const IDPush = "/ipfs/id/push/1.0.0" + +// LibP2PVersion holds the current protocol version for a client running this code +// TODO(jbenet): fix the versioning mess. +const LibP2PVersion = "ipfs/0.1.0" + +var ClientVersion = "go-libp2p/3.3.4" + +// transientTTL is a short ttl for invalidated previously connected addrs +const transientTTL = 10 * time.Second + +// IDService is a structure that implements ProtocolIdentify. +// It is a trivial service that gives the other peer some +// useful information about the local peer. A sort of hello. +// +// The IDService sends: +// * Our IPFS Protocol Version +// * Our IPFS Agent Version +// * Our public Listen Addresses +type IDService struct { + Host host.Host + + ctx context.Context + + // connections undergoing identification + // for wait purposes + currid map[inet.Conn]chan struct{} + currmu sync.RWMutex + + addrMu sync.Mutex + + // our own observed addresses. + // TODO: instead of expiring, remove these when we disconnect + observedAddrs *ObservedAddrSet +} + +// NewIDService constructs a new *IDService and activates it by +// attaching its stream handler to the given host.Host. +func NewIDService(ctx context.Context, h host.Host) *IDService { + s := &IDService{ + Host: h, + ctx: ctx, + currid: make(map[inet.Conn]chan struct{}), + observedAddrs: NewObservedAddrSet(ctx), + } + h.SetStreamHandler(ID, s.requestHandler) + h.SetStreamHandler(IDPush, s.pushHandler) + h.Network().Notify((*netNotifiee)(s)) + return s +} + +// OwnObservedAddrs returns the addresses peers have reported we've dialed from +func (ids *IDService) OwnObservedAddrs() []ma.Multiaddr { + return ids.observedAddrs.Addrs() +} + +func (ids *IDService) ObservedAddrsFor(local ma.Multiaddr) []ma.Multiaddr { + return ids.observedAddrs.AddrsFor(local) +} + +func (ids *IDService) IdentifyConn(c inet.Conn) { + ids.currmu.Lock() + if wait, found := ids.currid[c]; found { + ids.currmu.Unlock() + log.Debugf("IdentifyConn called twice on: %s", c) + <-wait // already identifying it. wait for it. + return + } + ch := make(chan struct{}) + ids.currid[c] = ch + ids.currmu.Unlock() + + defer func() { + close(ch) + ids.currmu.Lock() + delete(ids.currid, c) + ids.currmu.Unlock() + }() + + s, err := c.NewStream() + if err != nil { + log.Debugf("error opening initial stream for %s: %s", ID, err) + log.Event(context.TODO(), "IdentifyOpenFailed", c.RemotePeer()) + c.Close() + return + } + + s.SetProtocol(ID) + + // ok give the response to our handler. + if err := msmux.SelectProtoOrFail(ID, s); err != nil { + log.Event(context.TODO(), "IdentifyOpenFailed", c.RemotePeer(), logging.Metadata{"error": err}) + s.Reset() + return + } + + ids.responseHandler(s) +} + +func (ids *IDService) requestHandler(s inet.Stream) { + defer inet.FullClose(s) + c := s.Conn() + + w := ggio.NewDelimitedWriter(s) + mes := pb.Identify{} + ids.populateMessage(&mes, s.Conn()) + w.WriteMsg(&mes) + + log.Debugf("%s sent message to %s %s", ID, + c.RemotePeer(), c.RemoteMultiaddr()) +} + +func (ids *IDService) responseHandler(s inet.Stream) { + c := s.Conn() + + r := ggio.NewDelimitedReader(s, 2048) + mes := pb.Identify{} + if err := r.ReadMsg(&mes); err != nil { + log.Warning("error reading identify message: ", err) + s.Reset() + return + } + ids.consumeMessage(&mes, c) + log.Debugf("%s received message from %s %s", ID, + c.RemotePeer(), c.RemoteMultiaddr()) + + go inet.FullClose(s) +} + +func (ids *IDService) pushHandler(s inet.Stream) { + ids.responseHandler(s) +} + +func (ids *IDService) Push() { + var wg sync.WaitGroup + + ctx, cancel := context.WithTimeout(ids.ctx, 30*time.Second) + ctx = inet.WithNoDial(ctx, "identify push") + + for _, p := range ids.Host.Network().Peers() { + wg.Add(1) + go func(p peer.ID) { + defer wg.Done() + + s, err := ids.Host.NewStream(ctx, p, IDPush) + if err != nil { + log.Debugf("error opening push stream to %s: %s", p, err.Error()) + return + } + + rch := make(chan struct{}, 1) + go func() { + ids.requestHandler(s) + rch <- struct{}{} + }() + + select { + case <-rch: + case <-ctx.Done(): + // this is taking too long, abort! + s.Reset() + } + }(p) + } + + // this supervisory goroutine is necessary to cancel the context + go func() { + wg.Wait() + cancel() + }() +} + +func (ids *IDService) populateMessage(mes *pb.Identify, c inet.Conn) { + + // set protocols this node is currently handling + protos := ids.Host.Mux().Protocols() + mes.Protocols = make([]string, len(protos)) + for i, p := range protos { + mes.Protocols[i] = string(p) + } + + // observed address so other side is informed of their + // "public" address, at least in relation to us. + mes.ObservedAddr = c.RemoteMultiaddr().Bytes() + + // set listen addrs, get our latest addrs from Host. + laddrs := ids.Host.Addrs() + mes.ListenAddrs = make([][]byte, len(laddrs)) + for i, addr := range laddrs { + mes.ListenAddrs[i] = addr.Bytes() + } + log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs) + + // set our public key + ownKey := ids.Host.Peerstore().PubKey(ids.Host.ID()) + + // check if we even have a public key. + if ownKey == nil { + // public key is nil. We are either using insecure transport or something erratic happened. + // check if we're even operating in "secure mode" + if ids.Host.Peerstore().PrivKey(ids.Host.ID()) != nil { + // private key is present. But NO public key. Something bad happened. + log.Errorf("did not have own public key in Peerstore") + } + // if neither of the key is present it is safe to assume that we are using an insecure transport. + } else { + // public key is present. Safe to proceed. + if kb, err := ownKey.Bytes(); err != nil { + log.Errorf("failed to convert key to bytes") + } else { + mes.PublicKey = kb + } + } + + // set protocol versions + pv := LibP2PVersion + av := ClientVersion + mes.ProtocolVersion = &pv + mes.AgentVersion = &av +} + +func (ids *IDService) consumeMessage(mes *pb.Identify, c inet.Conn) { + p := c.RemotePeer() + + // mes.Protocols + ids.Host.Peerstore().SetProtocols(p, mes.Protocols...) + + // mes.ObservedAddr + ids.consumeObservedAddress(mes.GetObservedAddr(), c) + + // mes.ListenAddrs + laddrs := mes.GetListenAddrs() + lmaddrs := make([]ma.Multiaddr, 0, len(laddrs)) + for _, addr := range laddrs { + maddr, err := ma.NewMultiaddrBytes(addr) + if err != nil { + log.Debugf("%s failed to parse multiaddr from %s %s", ID, + p, c.RemoteMultiaddr()) + continue + } + lmaddrs = append(lmaddrs, maddr) + } + + // NOTE: Do not add `c.RemoteMultiaddr()` to the peerstore if the remote + // peer doesn't tell us to do so. Otherwise, we'll advertise it. + // + // This can cause an "addr-splosion" issue where the network will slowly + // gossip and collect observed but unadvertised addresses. Given a NAT + // that picks random source ports, this can cause DHT nodes to collect + // many undialable addresses for other peers. + + // Extend the TTLs on the known (probably) good addresses. + // Taking the lock ensures that we don't concurrently process a disconnect. + ids.addrMu.Lock() + switch ids.Host.Network().Connectedness(p) { + case inet.Connected: + // invalidate previous addrs -- we use a transient ttl instead of 0 to ensure there + // is no period of having no good addrs whatsoever + ids.Host.Peerstore().UpdateAddrs(p, pstore.ConnectedAddrTTL, transientTTL) + ids.Host.Peerstore().AddAddrs(p, lmaddrs, pstore.ConnectedAddrTTL) + default: + ids.Host.Peerstore().UpdateAddrs(p, pstore.ConnectedAddrTTL, transientTTL) + ids.Host.Peerstore().AddAddrs(p, lmaddrs, pstore.RecentlyConnectedAddrTTL) + } + ids.addrMu.Unlock() + + log.Debugf("%s received listen addrs for %s: %s", c.LocalPeer(), c.RemotePeer(), lmaddrs) + + // get protocol versions + pv := mes.GetProtocolVersion() + av := mes.GetAgentVersion() + + ids.Host.Peerstore().Put(p, "ProtocolVersion", pv) + ids.Host.Peerstore().Put(p, "AgentVersion", av) + + // get the key from the other side. we may not have it (no-auth transport) + ids.consumeReceivedPubKey(c, mes.PublicKey) +} + +func (ids *IDService) consumeReceivedPubKey(c inet.Conn, kb []byte) { + lp := c.LocalPeer() + rp := c.RemotePeer() + + if kb == nil { + log.Debugf("%s did not receive public key for remote peer: %s", lp, rp) + return + } + + newKey, err := ic.UnmarshalPublicKey(kb) + if err != nil { + log.Warningf("%s cannot unmarshal key from remote peer: %s, %s", lp, rp, err) + return + } + + // verify key matches peer.ID + np, err := peer.IDFromPublicKey(newKey) + if err != nil { + log.Debugf("%s cannot get peer.ID from key of remote peer: %s, %s", lp, rp, err) + return + } + + if np != rp { + // if the newKey's peer.ID does not match known peer.ID... + + if rp == "" && np != "" { + // if local peerid is empty, then use the new, sent key. + err := ids.Host.Peerstore().AddPubKey(rp, newKey) + if err != nil { + log.Debugf("%s could not add key for %s to peerstore: %s", lp, rp, err) + } + + } else { + // we have a local peer.ID and it does not match the sent key... error. + log.Errorf("%s received key for remote peer %s mismatch: %s", lp, rp, np) + } + return + } + + currKey := ids.Host.Peerstore().PubKey(rp) + if currKey == nil { + // no key? no auth transport. set this one. + err := ids.Host.Peerstore().AddPubKey(rp, newKey) + if err != nil { + log.Debugf("%s could not add key for %s to peerstore: %s", lp, rp, err) + } + return + } + + // ok, we have a local key, we should verify they match. + if currKey.Equals(newKey) { + return // ok great. we're done. + } + + // weird, got a different key... but the different key MATCHES the peer.ID. + // this odd. let's log error and investigate. this should basically never happen + // and it means we have something funky going on and possibly a bug. + log.Errorf("%s identify got a different key for: %s", lp, rp) + + // okay... does ours NOT match the remote peer.ID? + cp, err := peer.IDFromPublicKey(currKey) + if err != nil { + log.Errorf("%s cannot get peer.ID from local key of remote peer: %s, %s", lp, rp, err) + return + } + if cp != rp { + log.Errorf("%s local key for remote peer %s yields different peer.ID: %s", lp, rp, cp) + return + } + + // okay... curr key DOES NOT match new key. both match peer.ID. wat? + log.Errorf("%s local key and received key for %s do not match, but match peer.ID", lp, rp) +} + +// HasConsistentTransport returns true if the address 'a' shares a +// protocol set with any address in the green set. This is used +// to check if a given address might be one of the addresses a peer is +// listening on. +func HasConsistentTransport(a ma.Multiaddr, green []ma.Multiaddr) bool { + protosMatch := func(a, b []ma.Protocol) bool { + if len(a) != len(b) { + return false + } + + for i, p := range a { + if b[i].Code != p.Code { + return false + } + } + return true + } + + protos := a.Protocols() + + for _, ga := range green { + if protosMatch(protos, ga.Protocols()) { + return true + } + } + + return false +} + +// IdentifyWait returns a channel which will be closed once +// "ProtocolIdentify" (handshake3) finishes on given conn. +// This happens async so the connection can start to be used +// even if handshake3 knowledge is not necesary. +// Users **MUST** call IdentifyWait _after_ IdentifyConn +func (ids *IDService) IdentifyWait(c inet.Conn) <-chan struct{} { + ids.currmu.Lock() + ch, found := ids.currid[c] + ids.currmu.Unlock() + if found { + return ch + } + + // if not found, it means we are already done identifying it, or + // haven't even started. either way, return a new channel closed. + ch = make(chan struct{}) + close(ch) + return ch +} + +func (ids *IDService) consumeObservedAddress(observed []byte, c inet.Conn) { + if observed == nil { + return + } + + maddr, err := ma.NewMultiaddrBytes(observed) + if err != nil { + log.Debugf("error parsing received observed addr for %s: %s", c, err) + return + } + + // we should only use ObservedAddr when our connection's LocalAddr is one + // of our ListenAddrs. If we Dial out using an ephemeral addr, knowing that + // address's external mapping is not very useful because the port will not be + // the same as the listen addr. + ifaceaddrs, err := ids.Host.Network().InterfaceListenAddresses() + if err != nil { + log.Infof("failed to get interface listen addrs", err) + return + } + + log.Debugf("identify identifying observed multiaddr: %s %s", c.LocalMultiaddr(), ifaceaddrs) + if !addrInAddrs(c.LocalMultiaddr(), ifaceaddrs) && !addrInAddrs(c.LocalMultiaddr(), ids.Host.Network().ListenAddresses()) { + // not in our list + return + } + + if !HasConsistentTransport(maddr, ids.Host.Addrs()) { + log.Debugf("ignoring observed multiaddr that doesn't match the transports of any addresses we're announcing", c.RemoteMultiaddr()) + return + } + + // ok! we have the observed version of one of our ListenAddresses! + log.Debugf("added own observed listen addr: %s --> %s", c.LocalMultiaddr(), maddr) + ids.observedAddrs.Add(maddr, c.LocalMultiaddr(), c.RemoteMultiaddr(), + c.Stat().Direction) +} + +func addrInAddrs(a ma.Multiaddr, as []ma.Multiaddr) bool { + for _, b := range as { + if a.Equal(b) { + return true + } + } + return false +} + +// netNotifiee defines methods to be used with the IpfsDHT +type netNotifiee IDService + +func (nn *netNotifiee) IDService() *IDService { + return (*IDService)(nn) +} + +func (nn *netNotifiee) Connected(n inet.Network, v inet.Conn) { + // TODO: deprecate the setConnHandler hook, and kick off + // identification here. +} + +func (nn *netNotifiee) Disconnected(n inet.Network, v inet.Conn) { + // undo the setting of addresses to peer.ConnectedAddrTTL we did + ids := nn.IDService() + ids.addrMu.Lock() + defer ids.addrMu.Unlock() + + if ids.Host.Network().Connectedness(v.RemotePeer()) != inet.Connected { + // Last disconnect. + ps := ids.Host.Peerstore() + ps.UpdateAddrs(v.RemotePeer(), pstore.ConnectedAddrTTL, pstore.RecentlyConnectedAddrTTL) + } +} + +func (nn *netNotifiee) OpenedStream(n inet.Network, v inet.Stream) {} +func (nn *netNotifiee) ClosedStream(n inet.Network, v inet.Stream) {} +func (nn *netNotifiee) Listen(n inet.Network, a ma.Multiaddr) {} +func (nn *netNotifiee) ListenClose(n inet.Network, a ma.Multiaddr) {} + +func logProtocolMismatchDisconnect(c inet.Conn, protocol, agent string) { + lm := make(lgbl.DeferredMap) + lm["remotePeer"] = func() interface{} { return c.RemotePeer().Pretty() } + lm["remoteAddr"] = func() interface{} { return c.RemoteMultiaddr().String() } + lm["protocolVersion"] = protocol + lm["agentVersion"] = agent + log.Event(context.TODO(), "IdentifyProtocolMismatch", lm) + log.Debugf("IdentifyProtocolMismatch %s %s %s (disconnected)", c.RemotePeer(), protocol, agent) +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/obsaddr.go b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/obsaddr.go new file mode 100644 index 00000000..685e5f10 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/obsaddr.go @@ -0,0 +1,229 @@ +package identify + +import ( + "context" + "sync" + "time" + + net "github.com/libp2p/go-libp2p-net" + pstore "github.com/libp2p/go-libp2p-peerstore" + ma "github.com/multiformats/go-multiaddr" +) + +const ActivationThresh = 4 + +var GCInterval = 10 * time.Minute + +type observation struct { + seenTime time.Time + connDirection net.Direction +} + +// ObservedAddr is an entry for an address reported by our peers. +// We only use addresses that: +// - have been observed at least 4 times in last 1h. (counter symmetric nats) +// - have been observed at least once recently (1h), because our position in the +// network, or network port mapppings, may have changed. +type ObservedAddr struct { + Addr ma.Multiaddr + SeenBy map[string]observation // peer(observer) address -> observation info + LastSeen time.Time +} + +func (oa *ObservedAddr) activated(ttl time.Duration) bool { + // We only activate if in the TTL other peers observed the same address + // of ours at least 4 times. + return len(oa.SeenBy) >= ActivationThresh +} + +type newObservation struct { + observed, local, observer ma.Multiaddr + direction net.Direction +} + +// ObservedAddrSet keeps track of a set of ObservedAddrs +// the zero-value is ready to be used. +type ObservedAddrSet struct { + sync.RWMutex // guards whole datastruct. + + // local(internal) address -> list of observed(external) addresses + addrs map[string][]*ObservedAddr + ttl time.Duration + + // this is the worker channel + wch chan newObservation +} + +func NewObservedAddrSet(ctx context.Context) *ObservedAddrSet { + oas := &ObservedAddrSet{ + addrs: make(map[string][]*ObservedAddr), + ttl: pstore.OwnObservedAddrTTL, + wch: make(chan newObservation, 16), + } + go oas.worker(ctx) + return oas +} + +// AddrsFor return all activated observed addresses associated with the given +// (resolved) listen address. +func (oas *ObservedAddrSet) AddrsFor(addr ma.Multiaddr) (addrs []ma.Multiaddr) { + oas.RLock() + defer oas.RUnlock() + + if len(oas.addrs) == 0 { + return nil + } + + key := string(addr.Bytes()) + observedAddrs, ok := oas.addrs[key] + if !ok { + return + } + + now := time.Now() + for _, a := range observedAddrs { + if now.Sub(a.LastSeen) <= oas.ttl && a.activated(oas.ttl) { + addrs = append(addrs, a.Addr) + } + } + + return addrs +} + +// Addrs return all activated observed addresses +func (oas *ObservedAddrSet) Addrs() (addrs []ma.Multiaddr) { + oas.RLock() + defer oas.RUnlock() + + if len(oas.addrs) == 0 { + return nil + } + + now := time.Now() + for _, observedAddrs := range oas.addrs { + for _, a := range observedAddrs { + if now.Sub(a.LastSeen) <= oas.ttl && a.activated(oas.ttl) { + addrs = append(addrs, a.Addr) + } + } + } + return addrs +} + +func (oas *ObservedAddrSet) Add(observed, local, observer ma.Multiaddr, + direction net.Direction) { + select { + case oas.wch <- newObservation{observed: observed, local: local, observer: observer, direction: direction}: + default: + log.Debugf("dropping address observation of %s; buffer full", observed) + } +} + +func (oas *ObservedAddrSet) worker(ctx context.Context) { + ticker := time.NewTicker(GCInterval) + defer ticker.Stop() + + for { + select { + case obs := <-oas.wch: + oas.doAdd(obs.observed, obs.local, obs.observer, obs.direction) + + case <-ticker.C: + oas.gc() + + case <-ctx.Done(): + return + } + } +} + +func (oas *ObservedAddrSet) gc() { + oas.Lock() + defer oas.Unlock() + + now := time.Now() + for local, observedAddrs := range oas.addrs { + // TODO we can do this without allocating by compacting the array in place + filteredAddrs := make([]*ObservedAddr, 0, len(observedAddrs)) + + for _, a := range observedAddrs { + // clean up SeenBy set + for k, ob := range a.SeenBy { + if now.Sub(ob.seenTime) > oas.ttl*ActivationThresh { + delete(a.SeenBy, k) + } + } + + // leave only alive observed addresses + if now.Sub(a.LastSeen) <= oas.ttl { + filteredAddrs = append(filteredAddrs, a) + } + } + if len(filteredAddrs) > 0 { + oas.addrs[local] = filteredAddrs + } else { + delete(oas.addrs, local) + } + } +} + +func (oas *ObservedAddrSet) doAdd(observed, local, observer ma.Multiaddr, + direction net.Direction) { + + now := time.Now() + observerString := observerGroup(observer) + localString := string(local.Bytes()) + ob := observation{ + seenTime: now, + connDirection: direction, + } + + oas.Lock() + defer oas.Unlock() + + observedAddrs := oas.addrs[localString] + // check if observed address seen yet, if so, update it + for i, previousObserved := range observedAddrs { + if previousObserved.Addr.Equal(observed) { + observedAddrs[i].SeenBy[observerString] = ob + observedAddrs[i].LastSeen = now + return + } + } + // observed address not seen yet, append it + oas.addrs[localString] = append(oas.addrs[localString], &ObservedAddr{ + Addr: observed, + SeenBy: map[string]observation{ + observerString: ob, + }, + LastSeen: now, + }) +} + +// observerGroup is a function that determines what part of +// a multiaddr counts as a different observer. for example, +// two ipfs nodes at the same IP/TCP transport would get +// the exact same NAT mapping; they would count as the +// same observer. This may protect against NATs who assign +// different ports to addresses at different IP hosts, but +// not TCP ports. +// +// Here, we use the root multiaddr address. This is mostly +// IP addresses. In practice, this is what we want. +func observerGroup(m ma.Multiaddr) string { + //TODO: If IPv6 rolls out we should mark /64 routing zones as one group + first, _ := ma.SplitFirst(m) + return string(first.Bytes()) +} + +func (oas *ObservedAddrSet) SetTTL(ttl time.Duration) { + oas.Lock() + defer oas.Unlock() + oas.ttl = ttl +} + +func (oas *ObservedAddrSet) TTL() time.Duration { + oas.RLock() + defer oas.RUnlock() + return oas.ttl +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/Makefile b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/Makefile new file mode 100644 index 00000000..eb14b576 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(GOPATH)/src:. --gogofast_out=. $< + +clean: + rm -f *.pb.go + rm -f *.go diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.pb.go b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.pb.go new file mode 100644 index 00000000..de1275ba --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.pb.go @@ -0,0 +1,635 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: identify.proto + +package identify_pb + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Identify struct { + // protocolVersion determines compatibility between peers + ProtocolVersion *string `protobuf:"bytes,5,opt,name=protocolVersion" json:"protocolVersion,omitempty"` + // agentVersion is like a UserAgent string in browsers, or client version in bittorrent + // includes the client name and client. + AgentVersion *string `protobuf:"bytes,6,opt,name=agentVersion" json:"agentVersion,omitempty"` + // publicKey is this node's public key (which also gives its node.ID) + // - may not need to be sent, as secure channel implies it has been sent. + // - then again, if we change / disable secure channel, may still want it. + PublicKey []byte `protobuf:"bytes,1,opt,name=publicKey" json:"publicKey,omitempty"` + // listenAddrs are the multiaddrs the sender node listens for open connections on + ListenAddrs [][]byte `protobuf:"bytes,2,rep,name=listenAddrs" json:"listenAddrs,omitempty"` + // oservedAddr is the multiaddr of the remote endpoint that the sender node perceives + // this is useful information to convey to the other side, as it helps the remote endpoint + // determine whether its connection to the local peer goes through NAT. + ObservedAddr []byte `protobuf:"bytes,4,opt,name=observedAddr" json:"observedAddr,omitempty"` + // protocols are the services this node is running + Protocols []string `protobuf:"bytes,3,rep,name=protocols" json:"protocols,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Identify) Reset() { *m = Identify{} } +func (m *Identify) String() string { return proto.CompactTextString(m) } +func (*Identify) ProtoMessage() {} +func (*Identify) Descriptor() ([]byte, []int) { + return fileDescriptor_83f1e7e6b485409f, []int{0} +} +func (m *Identify) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Identify) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Identify.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Identify) XXX_Merge(src proto.Message) { + xxx_messageInfo_Identify.Merge(m, src) +} +func (m *Identify) XXX_Size() int { + return m.Size() +} +func (m *Identify) XXX_DiscardUnknown() { + xxx_messageInfo_Identify.DiscardUnknown(m) +} + +var xxx_messageInfo_Identify proto.InternalMessageInfo + +func (m *Identify) GetProtocolVersion() string { + if m != nil && m.ProtocolVersion != nil { + return *m.ProtocolVersion + } + return "" +} + +func (m *Identify) GetAgentVersion() string { + if m != nil && m.AgentVersion != nil { + return *m.AgentVersion + } + return "" +} + +func (m *Identify) GetPublicKey() []byte { + if m != nil { + return m.PublicKey + } + return nil +} + +func (m *Identify) GetListenAddrs() [][]byte { + if m != nil { + return m.ListenAddrs + } + return nil +} + +func (m *Identify) GetObservedAddr() []byte { + if m != nil { + return m.ObservedAddr + } + return nil +} + +func (m *Identify) GetProtocols() []string { + if m != nil { + return m.Protocols + } + return nil +} + +func init() { + proto.RegisterType((*Identify)(nil), "identify.pb.Identify") +} + +func init() { proto.RegisterFile("identify.proto", fileDescriptor_83f1e7e6b485409f) } + +var fileDescriptor_83f1e7e6b485409f = []byte{ + // 187 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x4c, 0x49, 0xcd, + 0x2b, 0xc9, 0x4c, 0xab, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46, 0xf0, 0x93, 0x94, + 0x6e, 0x31, 0x72, 0x71, 0x78, 0x42, 0xf9, 0x42, 0x1a, 0x5c, 0xfc, 0x60, 0x25, 0xc9, 0xf9, 0x39, + 0x61, 0xa9, 0x45, 0xc5, 0x99, 0xf9, 0x79, 0x12, 0xac, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0xe8, 0xc2, + 0x42, 0x4a, 0x5c, 0x3c, 0x89, 0xe9, 0xa9, 0x79, 0x25, 0x30, 0x65, 0x6c, 0x60, 0x65, 0x28, 0x62, + 0x42, 0x32, 0x5c, 0x9c, 0x05, 0xa5, 0x49, 0x39, 0x99, 0xc9, 0xde, 0xa9, 0x95, 0x12, 0x8c, 0x0a, + 0x8c, 0x1a, 0x3c, 0x41, 0x08, 0x01, 0x21, 0x05, 0x2e, 0xee, 0x9c, 0xcc, 0xe2, 0x92, 0xd4, 0x3c, + 0xc7, 0x94, 0x94, 0xa2, 0x62, 0x09, 0x26, 0x05, 0x66, 0x0d, 0x9e, 0x20, 0x64, 0x21, 0x90, 0x1d, + 0xf9, 0x49, 0xc5, 0xa9, 0x45, 0x65, 0xa9, 0x29, 0x20, 0x01, 0x09, 0x16, 0xb0, 0x11, 0x28, 0x62, + 0x60, 0x3b, 0xa0, 0x4e, 0x2b, 0x96, 0x60, 0x56, 0x60, 0xd6, 0xe0, 0x0c, 0x42, 0x08, 0x38, 0xf1, + 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x80, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xc2, 0x2c, 0x19, 0x46, 0x08, 0x01, 0x00, 0x00, +} + +func (m *Identify) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Identify) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.PublicKey != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIdentify(dAtA, i, uint64(len(m.PublicKey))) + i += copy(dAtA[i:], m.PublicKey) + } + if len(m.ListenAddrs) > 0 { + for _, b := range m.ListenAddrs { + dAtA[i] = 0x12 + i++ + i = encodeVarintIdentify(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if len(m.Protocols) > 0 { + for _, s := range m.Protocols { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.ObservedAddr != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintIdentify(dAtA, i, uint64(len(m.ObservedAddr))) + i += copy(dAtA[i:], m.ObservedAddr) + } + if m.ProtocolVersion != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintIdentify(dAtA, i, uint64(len(*m.ProtocolVersion))) + i += copy(dAtA[i:], *m.ProtocolVersion) + } + if m.AgentVersion != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintIdentify(dAtA, i, uint64(len(*m.AgentVersion))) + i += copy(dAtA[i:], *m.AgentVersion) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeVarintIdentify(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Identify) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PublicKey != nil { + l = len(m.PublicKey) + n += 1 + l + sovIdentify(uint64(l)) + } + if len(m.ListenAddrs) > 0 { + for _, b := range m.ListenAddrs { + l = len(b) + n += 1 + l + sovIdentify(uint64(l)) + } + } + if len(m.Protocols) > 0 { + for _, s := range m.Protocols { + l = len(s) + n += 1 + l + sovIdentify(uint64(l)) + } + } + if m.ObservedAddr != nil { + l = len(m.ObservedAddr) + n += 1 + l + sovIdentify(uint64(l)) + } + if m.ProtocolVersion != nil { + l = len(*m.ProtocolVersion) + n += 1 + l + sovIdentify(uint64(l)) + } + if m.AgentVersion != nil { + l = len(*m.AgentVersion) + n += 1 + l + sovIdentify(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovIdentify(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIdentify(x uint64) (n int) { + return sovIdentify(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Identify) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Identify: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Identify: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PublicKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIdentify + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIdentify + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PublicKey = append(m.PublicKey[:0], dAtA[iNdEx:postIndex]...) + if m.PublicKey == nil { + m.PublicKey = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListenAddrs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIdentify + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIdentify + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ListenAddrs = append(m.ListenAddrs, make([]byte, postIndex-iNdEx)) + copy(m.ListenAddrs[len(m.ListenAddrs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Protocols", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIdentify + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIdentify + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Protocols = append(m.Protocols, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedAddr", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIdentify + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIdentify + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ObservedAddr = append(m.ObservedAddr[:0], dAtA[iNdEx:postIndex]...) + if m.ObservedAddr == nil { + m.ObservedAddr = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIdentify + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIdentify + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ProtocolVersion = &s + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AgentVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIdentify + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIdentify + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIdentify + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.AgentVersion = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIdentify(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIdentify + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIdentify + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIdentify(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIdentify + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIdentify + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIdentify + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthIdentify + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthIdentify + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIdentify + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipIdentify(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthIdentify + } + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthIdentify = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIdentify = fmt.Errorf("proto: integer overflow") +) diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.proto b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.proto new file mode 100644 index 00000000..5270c4cf --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/identify/pb/identify.proto @@ -0,0 +1,29 @@ +syntax = "proto2"; + +package identify.pb; + +message Identify { + + // protocolVersion determines compatibility between peers + optional string protocolVersion = 5; // e.g. ipfs/1.0.0 + + // agentVersion is like a UserAgent string in browsers, or client version in bittorrent + // includes the client name and client. + optional string agentVersion = 6; // e.g. go-ipfs/0.1.0 + + // publicKey is this node's public key (which also gives its node.ID) + // - may not need to be sent, as secure channel implies it has been sent. + // - then again, if we change / disable secure channel, may still want it. + optional bytes publicKey = 1; + + // listenAddrs are the multiaddrs the sender node listens for open connections on + repeated bytes listenAddrs = 2; + + // oservedAddr is the multiaddr of the remote endpoint that the sender node perceives + // this is useful information to convey to the other side, as it helps the remote endpoint + // determine whether its connection to the local peer goes through NAT. + optional bytes observedAddr = 4; + + // protocols are the services this node is running + repeated string protocols = 3; +} diff --git a/vendor/github.com/libp2p/go-libp2p/p2p/protocol/ping/ping.go b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/ping/ping.go new file mode 100644 index 00000000..b76133cc --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/p2p/protocol/ping/ping.go @@ -0,0 +1,133 @@ +package ping + +import ( + "bytes" + "context" + "errors" + "io" + "time" + + u "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" + host "github.com/libp2p/go-libp2p-host" + inet "github.com/libp2p/go-libp2p-net" + peer "github.com/libp2p/go-libp2p-peer" +) + +var log = logging.Logger("ping") + +const PingSize = 32 + +const ID = "/ipfs/ping/1.0.0" + +const pingTimeout = time.Second * 60 + +type PingService struct { + Host host.Host +} + +func NewPingService(h host.Host) *PingService { + ps := &PingService{h} + h.SetStreamHandler(ID, ps.PingHandler) + return ps +} + +func (p *PingService) PingHandler(s inet.Stream) { + buf := make([]byte, PingSize) + + errCh := make(chan error, 1) + defer close(errCh) + timer := time.NewTimer(pingTimeout) + defer timer.Stop() + + go func() { + select { + case <-timer.C: + log.Debug("ping timeout") + case err, ok := <-errCh: + if ok { + log.Debug(err) + } else { + log.Error("ping loop failed without error") + } + } + s.Reset() + }() + + for { + _, err := io.ReadFull(s, buf) + if err != nil { + errCh <- err + return + } + + _, err = s.Write(buf) + if err != nil { + errCh <- err + return + } + + timer.Reset(pingTimeout) + } +} + +func (ps *PingService) Ping(ctx context.Context, p peer.ID) (<-chan time.Duration, error) { + return Ping(ctx, ps.Host, p) +} + +func Ping(ctx context.Context, h host.Host, p peer.ID) (<-chan time.Duration, error) { + s, err := h.NewStream(ctx, p, ID) + if err != nil { + return nil, err + } + + out := make(chan time.Duration) + go func() { + defer close(out) + defer s.Reset() + for { + select { + case <-ctx.Done(): + return + default: + t, err := ping(s) + if err != nil { + log.Debugf("ping error: %s", err) + return + } + + h.Peerstore().RecordLatency(p, t) + select { + case out <- t: + case <-ctx.Done(): + return + } + } + } + }() + + return out, nil +} + +func ping(s inet.Stream) (time.Duration, error) { + buf := make([]byte, PingSize) + u.NewTimeSeededRand().Read(buf) + + before := time.Now() + _, err := s.Write(buf) + if err != nil { + return 0, err + } + + rbuf := make([]byte, PingSize) + _, err = io.ReadFull(s, rbuf) + if err != nil { + return 0, err + } + + if !bytes.Equal(buf, rbuf) { + return 0, errors.New("ping packet was incorrect!") + } + + return time.Since(before), nil +} diff --git a/vendor/github.com/libp2p/go-libp2p/package-list.json b/vendor/github.com/libp2p/go-libp2p/package-list.json new file mode 100644 index 00000000..e29a7410 --- /dev/null +++ b/vendor/github.com/libp2p/go-libp2p/package-list.json @@ -0,0 +1,97 @@ +{ + "columns": [ + "Name", + "CI/Travis", + "Coverage", + "Description" + ], + "rows": [ + "Libp2p", + ["libp2p/go-libp2p", "go-libp2p", "go-libp2p entry point"], + ["libp2p/go-libp2p-host", "go-libp2p-host", "libp2p \"host\" interface"], + ["libp2p/go-libp2p-blankhost", "go-libp2p-blankhost", "minimal implementation of the \"host\" interface"], + + "Network", + ["libp2p/go-libp2p-net", "go-libp2p-net", "libp2p connection and \"network\" interfaces"], + ["libp2p/go-libp2p-swarm", "go-libp2p-swarm", "reference implementation"], + + "Transport", + ["libp2p/go-libp2p-transport", "go-libp2p-transport", "interfaces"], + ["libp2p/go-ws-transport", "go-ws-transport", "WebSocket transport"], + ["libp2p/go-tcp-transport", "go-tcp-transport", "TCP transport"], + ["libp2p/go-libp2p-quic-transport", "go-libp2p-quic-transport", "QUIC transport"], + ["libp2p/go-udp-transport", "go-udp-transport", "UDP transport"], + ["libp2p/go-utp-transport", "go-utp-transport", "uTorrent transport (UTP)"], + ["libp2p/go-libp2p-circuit", "go-libp2p-circuit", "relay transport"], + ["libp2p/go-libp2p-transport-upgrader", "go-libp2p-transport-upgrader", "upgrades multiaddr-net connections into full libp2p transports"], + ["libp2p/go-libp2p-reuseport-transport", "go-libp2p-reuseport-transport", "partial transport for building transports that reuse ports"], + + "Encrypted Channels", + ["libp2p/go-conn-security", "go-conn-security", "interfaces"], + ["libp2p/go-libp2p-secio", "go-libp2p-secio", "SecIO crypto channel"], + ["libp2p/go-conn-security-multistream", "go-conn-security-multistream", "multistream multiplexed meta crypto channel"], + + "Private Network", + ["libp2p/go-libp2p-interface-pnet", "go-libp2p-interface-pnet", "interfaces"], + ["libp2p/go-libp2p-pnet", "go-libp2p-pnet", "reference implementation"], + + "Stream Muxers", + ["libp2p/go-stream-muxer", "go-stream-muxer", "interfaces"], + ["whyrusleeping/go-smux-yamux", "go-smux-yamux", "YAMUX stream multiplexer"], + ["whyrusleeping/go-smux-mplex", "go-smux-mplex", "MPLEX stream multiplexer"], + + "NAT Traversal", + ["libp2p/go-libp2p-nat", "go-libp2p-nat"], + + "Peerstore", + ["libp2p/go-libp2p-peerstore", "go-libp2p-peerstore", "interfaces and reference implementation"], + + "Connection Manager", + ["libp2p/go-libp2p-interface-connmgr", "go-libp2p-interface-connmgr", "interface"], + ["libp2p/go-libp2p-connmgr", "go-libp2p-connmgr", "reference implementation"], + + "Routing", + ["libp2p/go-libp2p-routing", "go-libp2p-routing", "routing interfaces"], + ["libp2p/go-libp2p-record", "go-libp2p-record", "record type and validator logic"], + ["libp2p/go-libp2p-routing-helpers", "go-libp2p-routing-helpers", "helpers for composing routers"], + ["libp2p/go-libp2p-kad-dht", "go-libp2p-kad-dht", "Kademlia-like router"], + ["libp2p/go-libp2p-pubsub-router", "go-libp2p-pubsub-router", "record-store over pubsub adapter"], + + "Consensus", + ["libp2p/go-libp2p-consensus", "go-libp2p-consensus", "consensus protocols interfaces"], + ["libp2p/go-libp2p-raft", "go-libp2p-raft", "consensus implementation over raft"], + + "Pubsub", + ["libp2p/go-libp2p-pubsub", "go-libp2p-pubsub", "multiple pubsub over libp2p implementations"], + + "RPC", + ["libp2p/go-libp2p-gorpc", "go-libp2p-gorpc", "a simple RPC library for libp2p"], + + "Metrics", + ["libp2p/go-libp2p-metrics", "go-libp2p-metrics", "libp2p metrics interfaces/collectors"], + + "Data Types", + ["libp2p/go-libp2p-peer", "go-libp2p-peer", "libp2p peer-ID datatype"], + ["libp2p/go-libp2p-crypto", "go-libp2p-crypto", "libp2p key types"], + ["libp2p/go-libp2p-protocol", "go-libp2p-protocol", "libp2p protocol datatype"], + ["libp2p/go-libp2p-kbucket", "go-libp2p-kbucket", "Kademlia routing table helper types"], + + "Utilities/miscellaneous", + ["libp2p/go-libp2p-loggables", "go-libp2p-loggables", "logging helpers"], + ["libp2p/go-maddr-filter", "go-maddr-filter", "multiaddr filtering helpers"], + ["libp2p/go-libp2p-netutil", "go-libp2p-netutil", "misc utilities"], + ["libp2p/go-msgio", "go-msgio", "length prefixed data channel"], + ["libp2p/go-addr-util", "go-addr-util", "address utilities for libp2p swarm"], + ["libp2p/go-buffer-pool", "go-buffer-pool", "a variable size buffer pool for go"], + ["libp2p/go-libp2p-routing-helpers", "go-libp2p-routing-helpers", "routing helpers"], + ["libp2p/go-reuseport", "go-reuseport", "enables reuse of addresses"], + ["libp2p/go-sockaddr", "go-sockaddr", "utils for sockaddr conversions"], + ["libp2p/go-flow-metrics", "go-flow-metrics", "metrics library"], + + "Testing and examples", + ["libp2p/go-testutil", "go-testutil", "a collection of testing utilities for ipfs and libp2p"], + ["libp2p/go-libp2p-examples", "go-libp2p-examples", "go-libp2p examples and tutorials"], + ["libp2p/go-libp2p-circuit-progs", "go-libp2p-circuit-progs", "testing programs for go-libp2p-circuit"] + + ] +} diff --git a/vendor/github.com/libp2p/go-maddr-filter/.travis.yml b/vendor/github.com/libp2p/go-maddr-filter/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-maddr-filter/LICENSE b/vendor/github.com/libp2p/go-maddr-filter/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-maddr-filter/Makefile b/vendor/github.com/libp2p/go-maddr-filter/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-maddr-filter/README.md b/vendor/github.com/libp2p/go-maddr-filter/README.md new file mode 100644 index 00000000..f6787a2b --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/README.md @@ -0,0 +1,51 @@ +go-maddr-filter +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-maddr-filter/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-maddr-filter?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-maddr-filter.svg?branch=master)](https://travis-ci.org/libp2p/go-maddr-filter) + +> A library to perform filtering of multiaddrs. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Examples + +```go +// make a new filterset +f := NewFilters() + +// filter out addresses on the 192.168 subnet +_, ipnet, _ := net.ParseCIDR("192.168.0.0/16") +f.AddDialFilter(ipnet) + + +// check if an address is blocked +lanaddr, _ := ma.NewMultiaddr("/ip4/192.168.0.17/tcp/4050") +fmt.Println(f.AddrBlocked(lanaddr)) +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-maddr-filter/codecov.yml b/vendor/github.com/libp2p/go-maddr-filter/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-maddr-filter/filter.go b/vendor/github.com/libp2p/go-maddr-filter/filter.go new file mode 100644 index 00000000..88f9792e --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/filter.go @@ -0,0 +1,67 @@ +package filter + +import ( + "net" + "sync" + + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +type Filters struct { + mu sync.RWMutex + filters map[string]*net.IPNet +} + +func NewFilters() *Filters { + return &Filters{ + filters: make(map[string]*net.IPNet), + } +} + +func (fs *Filters) AddDialFilter(f *net.IPNet) { + fs.mu.Lock() + defer fs.mu.Unlock() + fs.filters[f.String()] = f +} + +func (f *Filters) AddrBlocked(a ma.Multiaddr) bool { + maddr := ma.Split(a) + if len(maddr) == 0 { + return false + } + netaddr, err := manet.ToNetAddr(maddr[0]) + if err != nil { + // if we can't parse it, it's probably not blocked + return false + } + netip := net.ParseIP(netaddr.String()) + if netip == nil { + return false + } + + f.mu.RLock() + defer f.mu.RUnlock() + for _, ft := range f.filters { + if ft.Contains(netip) { + return true + } + } + return false +} + +func (f *Filters) Filters() []*net.IPNet { + var out []*net.IPNet + f.mu.RLock() + defer f.mu.RUnlock() + for _, ff := range f.filters { + out = append(out, ff) + } + return out +} + +func (f *Filters) Remove(ff *net.IPNet) { + f.mu.Lock() + defer f.mu.Unlock() + delete(f.filters, ff.String()) +} diff --git a/vendor/github.com/libp2p/go-maddr-filter/go.mod b/vendor/github.com/libp2p/go-maddr-filter/go.mod new file mode 100644 index 00000000..4adb057d --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/go.mod @@ -0,0 +1,6 @@ +module github.com/libp2p/go-maddr-filter + +require ( + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-maddr-filter/go.sum b/vendor/github.com/libp2p/go-maddr-filter/go.sum new file mode 100644 index 00000000..11cfae50 --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/go.sum @@ -0,0 +1,22 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/libp2p/go-maddr-filter/package.json b/vendor/github.com/libp2p/go-maddr-filter/package.json new file mode 100644 index 00000000..bfb12114 --- /dev/null +++ b/vendor/github.com/libp2p/go-maddr-filter/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-maddr-filter" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-maddr-filter" + }, + "gxDependencies": [ + { + "author": "jbenet", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-maddr-filter", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.13" +} + diff --git a/vendor/github.com/libp2p/go-mplex/.travis.yml b/vendor/github.com/libp2p/go-mplex/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-mplex/LICENSE b/vendor/github.com/libp2p/go-mplex/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-mplex/Makefile b/vendor/github.com/libp2p/go-mplex/Makefile new file mode 100644 index 00000000..5c996090 --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/Makefile @@ -0,0 +1,13 @@ +all: deps + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-mplex/README.md b/vendor/github.com/libp2p/go-mplex/README.md new file mode 100644 index 00000000..e741b307 --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/README.md @@ -0,0 +1,17 @@ +# go-mplex + +A super simple stream muxing library implementing [mplex](https://github.com/libp2p/mplex/). + +## Usage + +```go +mplex := multiplex.NewMultiplex(mysocket) + +s, _ := mplex.NewStream() +s.Write([]byte("Hello World!")) +s.Close() + +os, _ := mplex.Accept() +// echo back everything received +io.Copy(os, os) +``` diff --git a/vendor/github.com/libp2p/go-mplex/codecov.yml b/vendor/github.com/libp2p/go-mplex/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-mplex/go.mod b/vendor/github.com/libp2p/go-mplex/go.mod new file mode 100644 index 00000000..9f8bc87b --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-mplex + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-buffer-pool v0.0.1 + github.com/libp2p/go-stream-muxer v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-mplex/go.sum b/vendor/github.com/libp2p/go-mplex/go.sum new file mode 100644 index 00000000..996558a7 --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/go.sum @@ -0,0 +1,30 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/libp2p/go-mplex/multiplex.go b/vendor/github.com/libp2p/go-mplex/multiplex.go new file mode 100644 index 00000000..0442616c --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/multiplex.go @@ -0,0 +1,454 @@ +package multiplex + +import ( + "bufio" + "context" + "encoding/binary" + "errors" + "fmt" + "io" + "net" + "sync" + "time" + + logging "github.com/ipfs/go-log" + pool "github.com/libp2p/go-buffer-pool" +) + +var log = logging.Logger("mplex") + +var MaxMessageSize = 1 << 20 + +// Max time to block waiting for a slow reader to read from a stream before +// resetting it. Preferably, we'd have some form of back-pressure mechanism but +// we don't have that in this protocol. +var ReceiveTimeout = 5 * time.Second + +// ErrShutdown is returned when operating on a shutdown session +var ErrShutdown = errors.New("session shut down") + +// ErrTwoInitiators is returned when both sides think they're the initiator +var ErrTwoInitiators = errors.New("two initiators") + +// ErrInvalidState is returned when the other side does something it shouldn't. +// In this case, we close the connection to be safe. +var ErrInvalidState = errors.New("received an unexpected message from the peer") + +// +1 for initiator +const ( + newStreamTag = 0 + messageTag = 2 + closeTag = 4 + resetTag = 6 +) + +// Multiplex is a mplex session. +type Multiplex struct { + con net.Conn + buf *bufio.Reader + nextID uint64 + initiator bool + + closed chan struct{} + shutdown chan struct{} + shutdownErr error + shutdownLock sync.Mutex + + wrTkn chan struct{} + + nstreams chan *Stream + + channels map[streamID]*Stream + chLock sync.Mutex +} + +// NewMultiplex creates a new multiplexer session. +func NewMultiplex(con net.Conn, initiator bool) *Multiplex { + mp := &Multiplex{ + con: con, + initiator: initiator, + buf: bufio.NewReader(con), + channels: make(map[streamID]*Stream), + closed: make(chan struct{}), + shutdown: make(chan struct{}), + wrTkn: make(chan struct{}, 1), + nstreams: make(chan *Stream, 16), + } + + go mp.handleIncoming() + + mp.wrTkn <- struct{}{} + + return mp +} + +func (mp *Multiplex) newStream(id streamID, name string) (s *Stream) { + s = &Stream{ + id: id, + name: name, + dataIn: make(chan []byte, 8), + reset: make(chan struct{}), + mp: mp, + } + + s.closedLocal, s.doCloseLocal = context.WithCancel(context.Background()) + return +} + +// Accept accepts the next stream from the connection. +func (m *Multiplex) Accept() (*Stream, error) { + select { + case s, ok := <-m.nstreams: + if !ok { + return nil, errors.New("multiplex closed") + } + return s, nil + case <-m.closed: + return nil, m.shutdownErr + } +} + +// Close closes the session. +func (mp *Multiplex) Close() error { + mp.closeNoWait() + + // Wait for the receive loop to finish. + <-mp.closed + + return nil +} + +func (mp *Multiplex) closeNoWait() { + mp.shutdownLock.Lock() + select { + case <-mp.shutdown: + default: + mp.con.Close() + close(mp.shutdown) + } + mp.shutdownLock.Unlock() +} + +// IsClosed returns true if the session is closed. +func (mp *Multiplex) IsClosed() bool { + select { + case <-mp.closed: + return true + default: + return false + } +} + +func (mp *Multiplex) sendMsg(ctx context.Context, header uint64, data []byte) error { + select { + case tkn := <-mp.wrTkn: + defer func() { mp.wrTkn <- tkn }() + case <-ctx.Done(): + return ctx.Err() + } + + dl, hasDl := ctx.Deadline() + if hasDl { + if err := mp.con.SetWriteDeadline(dl); err != nil { + return err + } + } + buf := pool.Get(len(data) + 20) + defer pool.Put(buf) + + n := 0 + n += binary.PutUvarint(buf[n:], header) + n += binary.PutUvarint(buf[n:], uint64(len(data))) + n += copy(buf[n:], data) + + written, err := mp.con.Write(buf[:n]) + if err != nil && written > 0 { + // Bail. We've written partial message and can't do anything + // about this. + mp.con.Close() + return err + } + + if hasDl { + // only return this error if we don't *already* have an error from the write. + if err2 := mp.con.SetWriteDeadline(time.Time{}); err == nil && err2 != nil { + return err2 + } + } + + return err +} + +func (mp *Multiplex) nextChanID() uint64 { + out := mp.nextID + mp.nextID++ + return out +} + +// NewStream creates a new stream. +func (mp *Multiplex) NewStream() (*Stream, error) { + return mp.NewNamedStream("") +} + +// NewNamedStream creates a new named stream. +func (mp *Multiplex) NewNamedStream(name string) (*Stream, error) { + mp.chLock.Lock() + + // We could call IsClosed but this is faster (given that we already have + // the lock). + if mp.channels == nil { + mp.chLock.Unlock() + return nil, ErrShutdown + } + + sid := mp.nextChanID() + header := (sid << 3) | newStreamTag + + if name == "" { + name = fmt.Sprint(sid) + } + s := mp.newStream(streamID{ + id: sid, + initiator: true, + }, name) + mp.channels[s.id] = s + mp.chLock.Unlock() + + err := mp.sendMsg(context.Background(), header, []byte(name)) + if err != nil { + return nil, err + } + + return s, nil +} + +func (mp *Multiplex) cleanup() { + mp.closeNoWait() + mp.chLock.Lock() + defer mp.chLock.Unlock() + for _, msch := range mp.channels { + msch.clLock.Lock() + if !msch.closedRemote { + msch.closedRemote = true + // Cancel readers + close(msch.reset) + } + + msch.doCloseLocal() + msch.clLock.Unlock() + } + // Don't remove this nil assignment. We check if this is nil to check if + // the connection is closed when we already have the lock (faster than + // checking if the stream is closed). + mp.channels = nil + if mp.shutdownErr == nil { + mp.shutdownErr = ErrShutdown + } + close(mp.closed) +} + +func (mp *Multiplex) handleIncoming() { + defer mp.cleanup() + + recvTimeout := time.NewTimer(0) + defer recvTimeout.Stop() + + if !recvTimeout.Stop() { + <-recvTimeout.C + } + + for { + chID, tag, err := mp.readNextHeader() + if err != nil { + mp.shutdownErr = err + return + } + + remoteIsInitiator := tag&1 == 0 + ch := streamID{ + // true if *I'm* the initiator. + initiator: !remoteIsInitiator, + id: chID, + } + // Rounds up the tag: + // 0 -> 0 + // 1 -> 2 + // 2 -> 2 + // 3 -> 4 + // etc... + tag += (tag & 1) + + b, err := mp.readNext() + if err != nil { + mp.shutdownErr = err + return + } + + mp.chLock.Lock() + msch, ok := mp.channels[ch] + mp.chLock.Unlock() + + switch tag { + case newStreamTag: + if ok { + log.Debugf("received NewStream message for existing stream: %d", ch) + mp.shutdownErr = ErrInvalidState + return + } + + name := string(b) + pool.Put(b) + + msch = mp.newStream(ch, name) + mp.chLock.Lock() + mp.channels[ch] = msch + mp.chLock.Unlock() + select { + case mp.nstreams <- msch: + case <-mp.shutdown: + return + } + + case resetTag: + if !ok { + // This is *ok*. We forget the stream on reset. + continue + } + msch.clLock.Lock() + + // Honestly, this check should never be true... It means we've leaked. + // However, this is an error on *our* side so we shouldn't just bail. + isClosed := msch.isClosed() + if isClosed && msch.closedRemote { + msch.clLock.Unlock() + log.Errorf("leaked a completely closed stream") + continue + } + + if !msch.closedRemote { + close(msch.reset) + } + msch.closedRemote = true + msch.doCloseLocal() + + msch.clLock.Unlock() + + mp.chLock.Lock() + delete(mp.channels, ch) + mp.chLock.Unlock() + case closeTag: + if !ok { + continue + } + + msch.clLock.Lock() + + if msch.closedRemote { + msch.clLock.Unlock() + // Technically a bug on the other side. We + // should consider killing the connection. + continue + } + + close(msch.dataIn) + msch.closedRemote = true + + cleanup := msch.isClosed() + + msch.clLock.Unlock() + + if cleanup { + mp.chLock.Lock() + delete(mp.channels, ch) + mp.chLock.Unlock() + } + case messageTag: + if !ok { + // reset stream, return b + pool.Put(b) + + // This is a perfectly valid case when we reset + // and forget about the stream. + log.Debugf("message for non-existant stream, dropping data: %d", ch) + go mp.sendMsg(context.Background(), ch.header(resetTag), nil) + continue + } + + msch.clLock.Lock() + remoteClosed := msch.closedRemote + msch.clLock.Unlock() + if remoteClosed { + // closed stream, return b + pool.Put(b) + + log.Errorf("Received data from remote after stream was closed by them. (len = %d)", len(b)) + go mp.sendMsg(context.Background(), msch.id.header(resetTag), nil) + continue + } + + recvTimeout.Reset(ReceiveTimeout) + select { + case msch.dataIn <- b: + case <-msch.reset: + pool.Put(b) + case <-recvTimeout.C: + pool.Put(b) + log.Warningf("timed out receiving message into stream queue.") + // Do not do this asynchronously. Otherwise, we + // could drop a message, then receive a message, + // then reset. + msch.Reset() + continue + case <-mp.shutdown: + pool.Put(b) + return + } + if !recvTimeout.Stop() { + <-recvTimeout.C + } + default: + log.Debugf("message with unknown header on stream %s", ch) + if ok { + msch.Reset() + } + } + } +} + +func (mp *Multiplex) readNextHeader() (uint64, uint64, error) { + h, err := binary.ReadUvarint(mp.buf) + if err != nil { + return 0, 0, err + } + + // get channel ID + ch := h >> 3 + + rem := h & 7 + + return ch, rem, nil +} + +func (mp *Multiplex) readNext() ([]byte, error) { + // get length + l, err := binary.ReadUvarint(mp.buf) + if err != nil { + return nil, err + } + + if l > uint64(MaxMessageSize) { + return nil, fmt.Errorf("message size too large!") + } + + if l == 0 { + return nil, nil + } + + buf := pool.Get(int(l)) + n, err := io.ReadFull(mp.buf, buf) + if err != nil { + return nil, err + } + + return buf[:n], nil +} diff --git a/vendor/github.com/libp2p/go-mplex/package.json b/vendor/github.com/libp2p/go-mplex/package.json new file mode 100644 index 00000000..3184646f --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/package.json @@ -0,0 +1,35 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-mplex" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-mplex" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "Stebalien", + "hash": "QmQDvJoB6aJWN3sjr3xsgXqKCXf4jU5zdMXpDMsBkYVNqa", + "name": "go-buffer-pool", + "version": "0.1.3" + }, + { + "author": "whyrusleeping", + "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", + "name": "go-stream-muxer", + "version": "3.1.0" + } + ], + "gxVersion": "0.7.0", + "language": "go", + "license": "MIT", + "name": "go-mplex", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.35" +} + diff --git a/vendor/github.com/libp2p/go-mplex/stream.go b/vendor/github.com/libp2p/go-mplex/stream.go new file mode 100644 index 00000000..910a9fd8 --- /dev/null +++ b/vendor/github.com/libp2p/go-mplex/stream.go @@ -0,0 +1,240 @@ +package multiplex + +import ( + "context" + "errors" + "io" + "sync" + "time" + + pool "github.com/libp2p/go-buffer-pool" + streammux "github.com/libp2p/go-stream-muxer" +) + +// streamID is a convenience type for operating on stream IDs +type streamID struct { + id uint64 + initiator bool +} + +// header computes the header for the given tag +func (id *streamID) header(tag uint64) uint64 { + header := id.id<<3 | tag + if !id.initiator { + header-- + } + return header +} + +type Stream struct { + id streamID + name string + dataIn chan []byte + mp *Multiplex + + extra []byte + + // exbuf is for holding the reference to the beginning of the extra slice + // for later memory pool freeing + exbuf []byte + + wDeadline time.Time + rDeadline time.Time + + clLock sync.Mutex + closedRemote bool + + // Closed when the connection is reset. + reset chan struct{} + + // Closed when the writer is closed (reset will also be closed) + closedLocal context.Context + doCloseLocal context.CancelFunc +} + +func (s *Stream) Name() string { + return s.name +} + +func (s *Stream) waitForData(ctx context.Context) error { + if !s.rDeadline.IsZero() { + dctx, cancel := context.WithDeadline(ctx, s.rDeadline) + defer cancel() + ctx = dctx + } + + select { + case <-s.reset: + // This is the only place where it's safe to return these. + s.returnBuffers() + return streammux.ErrReset + case read, ok := <-s.dataIn: + if !ok { + return io.EOF + } + s.extra = read + s.exbuf = read + return nil + case <-ctx.Done(): + return ctx.Err() + } +} + +func (s *Stream) returnBuffers() { + if s.exbuf != nil { + pool.Put(s.exbuf) + s.exbuf = nil + s.extra = nil + } + for { + select { + case read, ok := <-s.dataIn: + if !ok { + return + } + if read == nil { + continue + } + pool.Put(read) + default: + return + } + } +} + +func (s *Stream) Read(b []byte) (int, error) { + if s.extra == nil { + err := s.waitForData(context.Background()) + if err != nil { + return 0, err + } + } + n := copy(b, s.extra) + if n < len(s.extra) { + s.extra = s.extra[n:] + } else { + if s.exbuf != nil { + pool.Put(s.exbuf) + } + s.extra = nil + s.exbuf = nil + } + return n, nil +} + +func (s *Stream) Write(b []byte) (int, error) { + var written int + for written < len(b) { + wl := len(b) - written + if wl > MaxMessageSize { + wl = MaxMessageSize + } + + n, err := s.write(b[written : written+wl]) + if err != nil { + return written, err + } + + written += n + } + + return written, nil +} + +func (s *Stream) write(b []byte) (int, error) { + if s.isClosed() { + return 0, errors.New("cannot write to closed stream") + } + + wDeadlineCtx, cleanup := func(s *Stream) (context.Context, context.CancelFunc) { + if s.wDeadline.IsZero() { + return s.closedLocal, nil + } else { + return context.WithDeadline(s.closedLocal, s.wDeadline) + } + }(s) + + err := s.mp.sendMsg(wDeadlineCtx, s.id.header(messageTag), b) + + if cleanup != nil { + cleanup() + } + + if err != nil { + if err == context.Canceled { + err = errors.New("cannot write to closed stream") + } + return 0, err + } + + return len(b), nil +} + +func (s *Stream) isClosed() bool { + return s.closedLocal.Err() != nil +} + +func (s *Stream) Close() error { + err := s.mp.sendMsg(context.Background(), s.id.header(closeTag), nil) + + if s.isClosed() { + return nil + } + + s.clLock.Lock() + remote := s.closedRemote + s.clLock.Unlock() + + s.doCloseLocal() + + if remote { + s.mp.chLock.Lock() + delete(s.mp.channels, s.id) + s.mp.chLock.Unlock() + } + + return err +} + +func (s *Stream) Reset() error { + s.clLock.Lock() + isClosed := s.isClosed() + if s.closedRemote && isClosed { + s.clLock.Unlock() + return nil + } + + if !s.closedRemote { + close(s.reset) + // We generally call this to tell the other side to go away. No point in waiting around. + go s.mp.sendMsg(context.Background(), s.id.header(resetTag), nil) + } + + s.doCloseLocal() + + s.closedRemote = true + + s.clLock.Unlock() + + s.mp.chLock.Lock() + delete(s.mp.channels, s.id) + s.mp.chLock.Unlock() + + return nil +} + +func (s *Stream) SetDeadline(t time.Time) error { + s.rDeadline = t + s.wDeadline = t + return nil +} + +func (s *Stream) SetReadDeadline(t time.Time) error { + s.rDeadline = t + return nil +} + +func (s *Stream) SetWriteDeadline(t time.Time) error { + s.wDeadline = t + return nil +} diff --git a/vendor/github.com/libp2p/go-msgio/.gxignore b/vendor/github.com/libp2p/go-msgio/.gxignore new file mode 100644 index 00000000..39217cdd --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/.gxignore @@ -0,0 +1 @@ +Godeps/* \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-msgio/.travis.yml b/vendor/github.com/libp2p/go-msgio/.travis.yml new file mode 100644 index 00000000..b86c124d --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race -cpu=5" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-msgio/LICENSE b/vendor/github.com/libp2p/go-msgio/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-msgio/README.md b/vendor/github.com/libp2p/go-msgio/README.md new file mode 100644 index 00000000..c2196ec5 --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/README.md @@ -0,0 +1,89 @@ +# go-msgio - Message IO + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![codecov](https://codecov.io/gh/libp2p/go-libp2p-netutil/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-msgio) +[![Travis CI](https://travis-ci.org/libp2p/go-libp2p-netutil.svg?branch=master)](https://travis-ci.org/libp2p/go-msgio) +[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) + +This is a simple package that helps read and write length-delimited slices. It's helpful for building wire protocols. + +## Usage + +### Reading + +```go +import "github.com/libp2p/go-msgio" +rdr := ... // some reader from a wire +mrdr := msgio.NewReader(rdr) + +for { + msg, err := mrdr.ReadMsg() + if err != nil { + return err + } + + doSomething(msg) +} +``` + +### Writing + +```go +import "github.com/libp2p/go-msgio" +wtr := genReader() +mwtr := msgio.NewWriter(wtr) + +for { + msg := genMessage() + err := mwtr.WriteMsg(msg) + if err != nil { + return err + } +} +``` + +### Duplex + +```go +import "github.com/libp2p/go-msgio" +rw := genReadWriter() +mrw := msgio.NewReadWriter(rw) + +for { + msg, err := mrdr.ReadMsg() + if err != nil { + return err + } + + // echo it back :) + err = mwtr.WriteMsg(msg) + if err != nil { + return err + } +} +``` + +### Channels + +```go +import "github.com/libp2p/go-msgio" +rw := genReadWriter() +rch := msgio.NewReadChannel(rw) +wch := msgio.NewWriteChannel(rw) + +for { + msg, err := <-rch + if err != nil { + return err + } + + // echo it back :) + wch<- rw +} +``` + +--- + +The last gx published version of this module was: 0.0.6: QmcxL9MDzSU5Mj1GcWZD8CXkAFuJXjdbjotZ93o371bKSf diff --git a/vendor/github.com/libp2p/go-msgio/chan.go b/vendor/github.com/libp2p/go-msgio/chan.go new file mode 100644 index 00000000..4e5183f5 --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/chan.go @@ -0,0 +1,114 @@ +package msgio + +import ( + "io" + + pool "github.com/libp2p/go-buffer-pool" +) + +// Chan is a msgio duplex channel. It is used to have a channel interface +// around a msgio.Reader or Writer. +type Chan struct { + MsgChan chan []byte + ErrChan chan error + CloseChan chan bool +} + +// NewChan constructs a Chan with a given buffer size. +func NewChan(chanSize int) *Chan { + return &Chan{ + MsgChan: make(chan []byte, chanSize), + ErrChan: make(chan error, 1), + CloseChan: make(chan bool, 2), + } +} + +// ReadFrom wraps the given io.Reader with a msgio.Reader, reads all +// messages, ands sends them down the channel. +func (s *Chan) ReadFrom(r io.Reader) { + s.readFrom(NewReader(r)) +} + +// ReadFromWithPool wraps the given io.Reader with a msgio.Reader, reads all +// messages, ands sends them down the channel. Uses given BufferPool. +func (s *Chan) ReadFromWithPool(r io.Reader, p *pool.BufferPool) { + s.readFrom(NewReaderWithPool(r, p)) +} + +// ReadFrom wraps the given io.Reader with a msgio.Reader, reads all +// messages, ands sends them down the channel. +func (s *Chan) readFrom(mr Reader) { + // single reader, no need for Mutex + mr.(*reader).lock = new(nullLocker) + +Loop: + for { + buf, err := mr.ReadMsg() + if err != nil { + if err == io.EOF { + break Loop // done + } + + // unexpected error. tell the client. + s.ErrChan <- err + break Loop + } + + select { + case <-s.CloseChan: + break Loop // told we're done + case s.MsgChan <- buf: + // ok seems fine. send it away + } + } + + close(s.MsgChan) + // signal we're done + s.CloseChan <- true +} + +// WriteTo wraps the given io.Writer with a msgio.Writer, listens on the +// channel and writes all messages to the writer. +func (s *Chan) WriteTo(w io.Writer) { + // new buffer per message + // if bottleneck, cycle around a set of buffers + mw := NewWriter(w) + + // single writer, no need for Mutex + mw.(*writer).lock = new(nullLocker) +Loop: + for { + select { + case <-s.CloseChan: + break Loop // told we're done + + case msg, ok := <-s.MsgChan: + if !ok { // chan closed + break Loop + } + + if err := mw.WriteMsg(msg); err != nil { + if err != io.EOF { + // unexpected error. tell the client. + s.ErrChan <- err + } + + break Loop + } + } + } + + // signal we're done + s.CloseChan <- true +} + +// Close the Chan +func (s *Chan) Close() { + s.CloseChan <- true +} + +// nullLocker conforms to the sync.Locker interface but does nothing. +type nullLocker struct{} + +func (l *nullLocker) Lock() {} +func (l *nullLocker) Unlock() {} diff --git a/vendor/github.com/libp2p/go-msgio/codecov.yml b/vendor/github.com/libp2p/go-msgio/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-msgio/fuzz.go b/vendor/github.com/libp2p/go-msgio/fuzz.go new file mode 100644 index 00000000..055abdbb --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/fuzz.go @@ -0,0 +1,23 @@ +// +build gofuzz + +package msgio + +import "bytes" + +// get the go-fuzz tools and build a fuzzer +// $ go get -u github.com/dvyukov/go-fuzz/... +// $ go-fuzz-build github.com/libp2p/go-msgio + +// put a corpus of random (even better if actual, structured) data in a corpus directry +// $ go-fuzz -bin ./msgio-fuzz -corpus corpus -workdir=wdir -timeout=15 + +func Fuzz(data []byte) int { + rc := NewReader(bytes.NewReader(data)) + // rc := NewVarintReader(bytes.NewReader(data)) + + if _, err := rc.ReadMsg(); err != nil { + return 0 + } + + return 1 +} diff --git a/vendor/github.com/libp2p/go-msgio/go.mod b/vendor/github.com/libp2p/go-msgio/go.mod new file mode 100644 index 00000000..dff70980 --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/go.mod @@ -0,0 +1,3 @@ +module github.com/libp2p/go-msgio + +require github.com/libp2p/go-buffer-pool v0.0.1 diff --git a/vendor/github.com/libp2p/go-msgio/go.sum b/vendor/github.com/libp2p/go-msgio/go.sum new file mode 100644 index 00000000..f65bc04e --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/go.sum @@ -0,0 +1,2 @@ +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= diff --git a/vendor/github.com/libp2p/go-msgio/limit.go b/vendor/github.com/libp2p/go-msgio/limit.go new file mode 100644 index 00000000..bce33cff --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/limit.go @@ -0,0 +1,45 @@ +package msgio + +import ( + "bytes" + "io" + "sync" +) + +// LimitedReader wraps an io.Reader with a msgio framed reader. The LimitedReader +// will return a reader which will io.EOF when the msg length is done. +func LimitedReader(r io.Reader) (io.Reader, error) { + l, err := ReadLen(r, nil) + return io.LimitReader(r, int64(l)), err +} + +// LimitedWriter wraps an io.Writer with a msgio framed writer. It is the inverse +// of LimitedReader: it will buffer all writes until "Flush" is called. When Flush +// is called, it will write the size of the buffer first, flush the buffer, reset +// the buffer, and begin accept more incoming writes. +func NewLimitedWriter(w io.Writer) *LimitedWriter { + return &LimitedWriter{W: w} +} + +type LimitedWriter struct { + W io.Writer + B bytes.Buffer + M sync.Mutex +} + +func (w *LimitedWriter) Write(buf []byte) (n int, err error) { + w.M.Lock() + n, err = w.B.Write(buf) + w.M.Unlock() + return n, err +} + +func (w *LimitedWriter) Flush() error { + w.M.Lock() + defer w.M.Unlock() + if err := WriteLen(w.W, w.B.Len()); err != nil { + return err + } + _, err := w.B.WriteTo(w.W) + return err +} diff --git a/vendor/github.com/libp2p/go-msgio/msgio.go b/vendor/github.com/libp2p/go-msgio/msgio.go new file mode 100644 index 00000000..2a67025d --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/msgio.go @@ -0,0 +1,286 @@ +package msgio + +import ( + "errors" + "io" + "sync" + + pool "github.com/libp2p/go-buffer-pool" +) + +// ErrMsgTooLarge is returned when the message length is exessive +var ErrMsgTooLarge = errors.New("message too large") + +const ( + lengthSize = 4 + defaultMaxSize = 8 * 1024 * 1024 // 8mb +) + +// Writer is the msgio Writer interface. It writes len-framed messages. +type Writer interface { + + // Write writes passed in buffer as a single message. + Write([]byte) (int, error) + + // WriteMsg writes the msg in the passed in buffer. + WriteMsg([]byte) error +} + +// WriteCloser is a Writer + Closer interface. Like in `golang/pkg/io` +type WriteCloser interface { + Writer + io.Closer +} + +// Reader is the msgio Reader interface. It reads len-framed messages. +type Reader interface { + + // Read reads the next message from the Reader. + // The client must pass a buffer large enough, or io.ErrShortBuffer will be + // returned. + Read([]byte) (int, error) + + // ReadMsg reads the next message from the Reader. + // Uses a pool.BufferPool internally to reuse buffers. User may call + // ReleaseMsg(msg) to signal a buffer can be reused. + ReadMsg() ([]byte, error) + + // ReleaseMsg signals a buffer can be reused. + ReleaseMsg([]byte) + + // NextMsgLen returns the length of the next (peeked) message. Does + // not destroy the message or have other adverse effects + NextMsgLen() (int, error) +} + +// ReadCloser combines a Reader and Closer. +type ReadCloser interface { + Reader + io.Closer +} + +// ReadWriter combines a Reader and Writer. +type ReadWriter interface { + Reader + Writer +} + +// ReadWriteCloser combines a Reader, a Writer, and Closer. +type ReadWriteCloser interface { + Reader + Writer + io.Closer +} + +// writer is the underlying type that implements the Writer interface. +type writer struct { + W io.Writer + + lock sync.Locker +} + +// NewWriter wraps an io.Writer with a msgio framed writer. The msgio.Writer +// will write the length prefix of every message written. +func NewWriter(w io.Writer) WriteCloser { + return &writer{W: w, lock: new(sync.Mutex)} +} + +func (s *writer) Write(msg []byte) (int, error) { + err := s.WriteMsg(msg) + if err != nil { + return 0, err + } + return len(msg), nil +} + +func (s *writer) WriteMsg(msg []byte) (err error) { + s.lock.Lock() + defer s.lock.Unlock() + if err := WriteLen(s.W, len(msg)); err != nil { + return err + } + _, err = s.W.Write(msg) + return err +} + +func (s *writer) Close() error { + if c, ok := s.W.(io.Closer); ok { + return c.Close() + } + return nil +} + +// reader is the underlying type that implements the Reader interface. +type reader struct { + R io.Reader + + lbuf []byte + next int + pool *pool.BufferPool + lock sync.Locker + max int // the maximal message size (in bytes) this reader handles +} + +// NewReader wraps an io.Reader with a msgio framed reader. The msgio.Reader +// will read whole messages at a time (using the length). Assumes an equivalent +// writer on the other side. +func NewReader(r io.Reader) ReadCloser { + return NewReaderWithPool(r, pool.GlobalPool) +} + +// NewReaderWithPool wraps an io.Reader with a msgio framed reader. The msgio.Reader +// will read whole messages at a time (using the length). Assumes an equivalent +// writer on the other side. It uses a given pool.BufferPool +func NewReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser { + if p == nil { + panic("nil pool") + } + return &reader{ + R: r, + lbuf: make([]byte, lengthSize), + next: -1, + pool: p, + lock: new(sync.Mutex), + max: defaultMaxSize, + } +} + +// NextMsgLen reads the length of the next msg into s.lbuf, and returns it. +// WARNING: like Read, NextMsgLen is destructive. It reads from the internal +// reader. +func (s *reader) NextMsgLen() (int, error) { + s.lock.Lock() + defer s.lock.Unlock() + return s.nextMsgLen() +} + +func (s *reader) nextMsgLen() (int, error) { + if s.next == -1 { + n, err := ReadLen(s.R, s.lbuf) + if err != nil { + return 0, err + } + + s.next = n + } + return s.next, nil +} + +func (s *reader) Read(msg []byte) (int, error) { + s.lock.Lock() + defer s.lock.Unlock() + + length, err := s.nextMsgLen() + if err != nil { + return 0, err + } + + if length > len(msg) { + return 0, io.ErrShortBuffer + } + + read, err := io.ReadFull(s.R, msg[:length]) + if read < length { + s.next = length - read // we only partially consumed the message. + } else { + s.next = -1 // signal we've consumed this msg + } + return read, err +} + +func (s *reader) ReadMsg() ([]byte, error) { + s.lock.Lock() + defer s.lock.Unlock() + + length, err := s.nextMsgLen() + if err != nil { + return nil, err + } + + if length == 0 { + s.next = -1 + return nil, nil + } + + if length > s.max || length < 0 { + return nil, ErrMsgTooLarge + } + + msg := s.pool.Get(length) + read, err := io.ReadFull(s.R, msg) + if read < length { + s.next = length - read // we only partially consumed the message. + } else { + s.next = -1 // signal we've consumed this msg + } + return msg[:read], err +} + +func (s *reader) ReleaseMsg(msg []byte) { + s.pool.Put(msg) +} + +func (s *reader) Close() error { + if c, ok := s.R.(io.Closer); ok { + return c.Close() + } + return nil +} + +// readWriter is the underlying type that implements a ReadWriter. +type readWriter struct { + Reader + Writer +} + +// NewReadWriter wraps an io.ReadWriter with a msgio.ReadWriter. Writing +// and Reading will be appropriately framed. +func NewReadWriter(rw io.ReadWriter) ReadWriteCloser { + return &readWriter{ + Reader: NewReader(rw), + Writer: NewWriter(rw), + } +} + +// Combine wraps a pair of msgio.Writer and msgio.Reader with a msgio.ReadWriter. +func Combine(w Writer, r Reader) ReadWriteCloser { + return &readWriter{Reader: r, Writer: w} +} + +func (rw *readWriter) Close() error { + var errs []error + + if w, ok := rw.Writer.(WriteCloser); ok { + if err := w.Close(); err != nil { + errs = append(errs, err) + } + } + if r, ok := rw.Reader.(ReadCloser); ok { + if err := r.Close(); err != nil { + errs = append(errs, err) + } + } + + if len(errs) > 0 { + return multiErr(errs) + } + return nil +} + +// multiErr is a util to return multiple errors +type multiErr []error + +func (m multiErr) Error() string { + if len(m) == 0 { + return "no errors" + } + + s := "Multiple errors: " + for i, e := range m { + if i != 0 { + s += ", " + } + s += e.Error() + } + return s +} diff --git a/vendor/github.com/libp2p/go-msgio/num.go b/vendor/github.com/libp2p/go-msgio/num.go new file mode 100644 index 00000000..513c1994 --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/num.go @@ -0,0 +1,33 @@ +package msgio + +import ( + "encoding/binary" + "io" +) + +// NBO is NetworkByteOrder +var NBO = binary.BigEndian + +// WriteLen writes a length to the given writer. +func WriteLen(w io.Writer, l int) error { + ul := uint32(l) + return binary.Write(w, NBO, &ul) +} + +// ReadLen reads a length from the given reader. +// if buf is non-nil, it reuses the buffer. Ex: +// l, err := ReadLen(r, nil) +// _, err := ReadLen(r, buf) +func ReadLen(r io.Reader, buf []byte) (int, error) { + if len(buf) < 4 { + buf = make([]byte, 4) + } + buf = buf[:4] + + if _, err := io.ReadFull(r, buf); err != nil { + return 0, err + } + + n := int(NBO.Uint32(buf)) + return n, nil +} diff --git a/vendor/github.com/libp2p/go-msgio/varint.go b/vendor/github.com/libp2p/go-msgio/varint.go new file mode 100644 index 00000000..5915af91 --- /dev/null +++ b/vendor/github.com/libp2p/go-msgio/varint.go @@ -0,0 +1,183 @@ +package msgio + +import ( + "encoding/binary" + "io" + "sync" + + pool "github.com/libp2p/go-buffer-pool" +) + +// varintWriter is the underlying type that implements the Writer interface. +type varintWriter struct { + W io.Writer + + lbuf []byte // for encoding varints + lock sync.Locker // for threadsafe writes +} + +// NewVarintWriter wraps an io.Writer with a varint msgio framed writer. +// The msgio.Writer will write the length prefix of every message written +// as a varint, using https://golang.org/pkg/encoding/binary/#PutUvarint +func NewVarintWriter(w io.Writer) WriteCloser { + return &varintWriter{ + W: w, + lbuf: make([]byte, binary.MaxVarintLen64), + lock: new(sync.Mutex), + } +} + +func (s *varintWriter) Write(msg []byte) (int, error) { + err := s.WriteMsg(msg) + if err != nil { + return 0, err + } + return len(msg), nil +} + +func (s *varintWriter) WriteMsg(msg []byte) error { + s.lock.Lock() + defer s.lock.Unlock() + + length := uint64(len(msg)) + n := binary.PutUvarint(s.lbuf, length) + if _, err := s.W.Write(s.lbuf[:n]); err != nil { + return err + } + _, err := s.W.Write(msg) + return err +} + +func (s *varintWriter) Close() error { + if c, ok := s.W.(io.Closer); ok { + return c.Close() + } + return nil +} + +// varintReader is the underlying type that implements the Reader interface. +type varintReader struct { + R io.Reader + br io.ByteReader // for reading varints. + + lbuf []byte + next int + pool *pool.BufferPool + lock sync.Locker + max int // the maximal message size (in bytes) this reader handles +} + +// NewVarintReader wraps an io.Reader with a varint msgio framed reader. +// The msgio.Reader will read whole messages at a time (using the length). +// Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint +// Assumes an equivalent writer on the other side. +func NewVarintReader(r io.Reader) ReadCloser { + return NewVarintReaderWithPool(r, pool.GlobalPool) +} + +// NewVarintReaderWithPool wraps an io.Reader with a varint msgio framed reader. +// The msgio.Reader will read whole messages at a time (using the length). +// Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint +// Assumes an equivalent writer on the other side. It uses a given +// pool.BufferPool. +func NewVarintReaderWithPool(r io.Reader, p *pool.BufferPool) ReadCloser { + if p == nil { + panic("nil pool") + } + return &varintReader{ + R: r, + br: &simpleByteReader{R: r}, + lbuf: make([]byte, binary.MaxVarintLen64), + next: -1, + pool: p, + lock: new(sync.Mutex), + max: defaultMaxSize, + } +} + +// NextMsgLen reads the length of the next msg into s.lbuf, and returns it. +// WARNING: like Read, NextMsgLen is destructive. It reads from the internal +// reader. +func (s *varintReader) NextMsgLen() (int, error) { + s.lock.Lock() + defer s.lock.Unlock() + return s.nextMsgLen() +} + +func (s *varintReader) nextMsgLen() (int, error) { + if s.next == -1 { + length, err := binary.ReadUvarint(s.br) + if err != nil { + return 0, err + } + s.next = int(length) + } + return s.next, nil +} + +func (s *varintReader) Read(msg []byte) (int, error) { + s.lock.Lock() + defer s.lock.Unlock() + + length, err := s.nextMsgLen() + if err != nil { + return 0, err + } + + if length > len(msg) { + return 0, io.ErrShortBuffer + } + _, err = io.ReadFull(s.R, msg[:length]) + s.next = -1 // signal we've consumed this msg + return length, err +} + +func (s *varintReader) ReadMsg() ([]byte, error) { + s.lock.Lock() + defer s.lock.Unlock() + + length, err := s.nextMsgLen() + if err != nil { + return nil, err + } + if length == 0 { + s.next = -1 + return nil, nil + } + + if length > s.max { + return nil, ErrMsgTooLarge + } + + msg := s.pool.Get(length) + _, err = io.ReadFull(s.R, msg) + s.next = -1 // signal we've consumed this msg + return msg, err +} + +func (s *varintReader) ReleaseMsg(msg []byte) { + s.pool.Put(msg) +} + +func (s *varintReader) Close() error { + if c, ok := s.R.(io.Closer); ok { + return c.Close() + } + return nil +} + +type simpleByteReader struct { + R io.Reader + buf []byte +} + +func (r *simpleByteReader) ReadByte() (c byte, err error) { + if r.buf == nil { + r.buf = make([]byte, 1) + } + + if _, err := io.ReadFull(r.R, r.buf); err != nil { + return 0, err + } + return r.buf[0], nil +} diff --git a/vendor/github.com/libp2p/go-nat/.travis.yml b/vendor/github.com/libp2p/go-nat/.travis.yml new file mode 100644 index 00000000..5163d693 --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/.travis.yml @@ -0,0 +1,30 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-nat/LICENSE b/vendor/github.com/libp2p/go-nat/LICENSE new file mode 100644 index 00000000..37ec93a1 --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/libp2p/go-nat/README.md b/vendor/github.com/libp2p/go-nat/README.md new file mode 100644 index 00000000..61b5cc88 --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/README.md @@ -0,0 +1,9 @@ +# go-nat + +[![GoDoc](https://godoc.org/github.com/libp2p/go-nat?status.svg)](https://godoc.org/github.com/libp2p/go-nat) [![status](https://sourcegraph.com/api/repos/github.com/libp2p/go-nat/.badges/status.png)](https://sourcegraph.com/github.com/libp2p/go-nat) + +Forked from: [fd/go-nat](https://github.com/fd/go-nat). + +--- + +The last gx published version of this module was: 1.0.3: QmdwkZHamNNrj7k3G29rnurmW3mFzsDhnyXppNcgYsiBVz diff --git a/vendor/github.com/libp2p/go-nat/go.mod b/vendor/github.com/libp2p/go-nat/go.mod new file mode 100644 index 00000000..718fdbdf --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/go.mod @@ -0,0 +1,8 @@ +module github.com/libp2p/go-nat + +require ( + github.com/huin/goupnp v1.0.0 + github.com/jackpal/gateway v1.0.5 + github.com/jackpal/go-nat-pmp v1.0.1 + github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b +) diff --git a/vendor/github.com/libp2p/go-nat/go.sum b/vendor/github.com/libp2p/go-nat/go.sum new file mode 100644 index 00000000..1a3a280e --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/go.sum @@ -0,0 +1,13 @@ +github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ= +github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1 h1:Y/KGZSOdz/2r0WJ9Mkmz6NJBusp0kiNx1Cn82lzJQ6w= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/vendor/github.com/libp2p/go-nat/nat.go b/vendor/github.com/libp2p/go-nat/nat.go new file mode 100644 index 00000000..371fdb03 --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/nat.go @@ -0,0 +1,129 @@ +// Package nat implements NAT handling facilities +package nat + +import ( + "context" + "errors" + "math" + "math/rand" + "net" + "time" + + "github.com/jackpal/gateway" +) + +var ErrNoExternalAddress = errors.New("no external address") +var ErrNoInternalAddress = errors.New("no internal address") +var ErrNoNATFound = errors.New("no NAT found") + +// protocol is either "udp" or "tcp" +type NAT interface { + // Type returns the kind of NAT port mapping service that is used + Type() string + + // GetDeviceAddress returns the internal address of the gateway device. + GetDeviceAddress() (addr net.IP, err error) + + // GetExternalAddress returns the external address of the gateway device. + GetExternalAddress() (addr net.IP, err error) + + // GetInternalAddress returns the address of the local host. + GetInternalAddress() (addr net.IP, err error) + + // AddPortMapping maps a port on the local host to an external port. + AddPortMapping(protocol string, internalPort int, description string, timeout time.Duration) (mappedExternalPort int, err error) + + // DeletePortMapping removes a port mapping. + DeletePortMapping(protocol string, internalPort int) (err error) +} + +// DiscoverNATs returns all NATs discovered in the network. +func DiscoverNATs(ctx context.Context) <-chan NAT { + nats := make(chan NAT) + + go func() { + defer close(nats) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + upnpIg1 := discoverUPNP_IG1(ctx) + upnpIg2 := discoverUPNP_IG2(ctx) + natpmp := discoverNATPMP(ctx) + upnpGenIGDev := discoverUPNP_GenIGDev(ctx) + for upnpIg1 != nil || upnpIg2 != nil || natpmp != nil || upnpGenIGDev != nil { + var ( + nat NAT + ok bool + ) + select { + case nat, ok = <-upnpIg1: + if !ok { + upnpIg1 = nil + } + case nat, ok = <-upnpIg2: + if !ok { + upnpIg2 = nil + } + case nat, ok = <-upnpGenIGDev: + if !ok { + upnpGenIGDev = nil + } + case nat, ok = <-natpmp: + if !ok { + natpmp = nil + } + } + if ok { + select { + case nats <- nat: + case <-ctx.Done(): + return + } + } + } + }() + return nats +} + +// DiscoverGateway attempts to find a gateway device. +func DiscoverGateway() (NAT, error) { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + var nats []NAT + for nat := range DiscoverNATs(ctx) { + nats = append(nats, nat) + } + switch len(nats) { + case 0: + return nil, ErrNoNATFound + case 1: + return nats[0], nil + } + gw, _ := gateway.DiscoverGateway() + bestNAT := nats[0] + natGw, _ := bestNAT.GetDeviceAddress() + bestNATIsGw := gw != nil && natGw.Equal(gw) + // 1. Prefer gateways discovered _last_. This is an OK heuristic for + // discovering the most-upstream (furthest) NAT. + // 2. Prefer gateways that actually match our known gateway address. + // Some relays like to claim to be NATs even if they aren't. + for _, nat := range nats[1:] { + natGw, _ := nat.GetDeviceAddress() + natIsGw := gw != nil && natGw.Equal(gw) + + if bestNATIsGw && !natIsGw { + continue + } + + bestNATIsGw = natIsGw + bestNAT = nat + } + return bestNAT, nil +} + +func randomPort() int { + rand.Seed(time.Now().UnixNano()) + return rand.Intn(math.MaxUint16-10000) + 10000 +} diff --git a/vendor/github.com/libp2p/go-nat/natpmp.go b/vendor/github.com/libp2p/go-nat/natpmp.go new file mode 100644 index 00000000..a31a4999 --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/natpmp.go @@ -0,0 +1,133 @@ +package nat + +import ( + "context" + "net" + "time" + + "github.com/jackpal/gateway" + "github.com/jackpal/go-nat-pmp" +) + +var ( + _ NAT = (*natpmpNAT)(nil) +) + +func discoverNATPMP(ctx context.Context) <-chan NAT { + res := make(chan NAT, 1) + + ip, err := gateway.DiscoverGateway() + if err == nil { + go func() { + defer close(res) + // Unfortunately, we can't actually _stop_ the natpmp + // library. However, we can at least close _our_ channel + // and walk away. + select { + case client, ok := <-discoverNATPMPWithAddr(ip): + if ok { + res <- &natpmpNAT{client, ip, make(map[int]int)} + } + case <-ctx.Done(): + } + }() + } else { + close(res) + } + return res +} + +func discoverNATPMPWithAddr(ip net.IP) <-chan *natpmp.Client { + res := make(chan *natpmp.Client, 1) + go func() { + defer close(res) + client := natpmp.NewClient(ip) + _, err := client.GetExternalAddress() + if err != nil { + return + } + res <- client + }() + return res +} + +type natpmpNAT struct { + c *natpmp.Client + gateway net.IP + ports map[int]int +} + +func (n *natpmpNAT) GetDeviceAddress() (addr net.IP, err error) { + return n.gateway, nil +} + +func (n *natpmpNAT) GetInternalAddress() (addr net.IP, err error) { + ifaces, err := net.Interfaces() + if err != nil { + return nil, err + } + + for _, iface := range ifaces { + addrs, err := iface.Addrs() + if err != nil { + return nil, err + } + + for _, addr := range addrs { + switch x := addr.(type) { + case *net.IPNet: + if x.Contains(n.gateway) { + return x.IP, nil + } + } + } + } + + return nil, ErrNoInternalAddress +} + +func (n *natpmpNAT) GetExternalAddress() (addr net.IP, err error) { + res, err := n.c.GetExternalAddress() + if err != nil { + return nil, err + } + + d := res.ExternalIPAddress + return net.IPv4(d[0], d[1], d[2], d[3]), nil +} + +func (n *natpmpNAT) AddPortMapping(protocol string, internalPort int, description string, timeout time.Duration) (int, error) { + var ( + err error + ) + + timeoutInSeconds := int(timeout / time.Second) + + if externalPort := n.ports[internalPort]; externalPort > 0 { + _, err = n.c.AddPortMapping(protocol, internalPort, externalPort, timeoutInSeconds) + if err == nil { + n.ports[internalPort] = externalPort + return externalPort, nil + } + } + + for i := 0; i < 3; i++ { + externalPort := randomPort() + _, err = n.c.AddPortMapping(protocol, internalPort, externalPort, timeoutInSeconds) + if err == nil { + n.ports[internalPort] = externalPort + return externalPort, nil + } + } + + return 0, err +} + +func (n *natpmpNAT) DeletePortMapping(protocol string, internalPort int) (err error) { + delete(n.ports, internalPort) + return nil +} + +func (n *natpmpNAT) Type() string { + return "NAT-PMP" +} diff --git a/vendor/github.com/libp2p/go-nat/upnp.go b/vendor/github.com/libp2p/go-nat/upnp.go new file mode 100644 index 00000000..ccfeb14a --- /dev/null +++ b/vendor/github.com/libp2p/go-nat/upnp.go @@ -0,0 +1,327 @@ +package nat + +import ( + "context" + "net" + "net/url" + "strings" + "time" + + "github.com/huin/goupnp" + "github.com/huin/goupnp/dcps/internetgateway1" + "github.com/huin/goupnp/dcps/internetgateway2" + + "github.com/koron/go-ssdp" +) + +var ( + _ NAT = (*upnp_NAT)(nil) +) + +func discoverUPNP_IG1(ctx context.Context) <-chan NAT { + res := make(chan NAT) + go func() { + defer close(res) + + // find devices + devs, err := goupnp.DiscoverDevices(internetgateway1.URN_WANConnectionDevice_1) + if err != nil { + return + } + + for _, dev := range devs { + if dev.Root == nil { + continue + } + + dev.Root.Device.VisitServices(func(srv *goupnp.Service) { + if ctx.Err() != nil { + return + } + switch srv.ServiceType { + case internetgateway1.URN_WANIPConnection_1: + client := &internetgateway1.WANIPConnection1{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: dev.Root, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG1-IP1)", dev.Root}: + case <-ctx.Done(): + } + } + + case internetgateway1.URN_WANPPPConnection_1: + client := &internetgateway1.WANPPPConnection1{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: dev.Root, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG1-PPP1)", dev.Root}: + case <-ctx.Done(): + } + } + + } + }) + } + + }() + return res +} + +func discoverUPNP_IG2(ctx context.Context) <-chan NAT { + res := make(chan NAT) + go func() { + defer close(res) + + // find devices + devs, err := goupnp.DiscoverDevices(internetgateway2.URN_WANConnectionDevice_2) + if err != nil { + return + } + + for _, dev := range devs { + if dev.Root == nil { + continue + } + + dev.Root.Device.VisitServices(func(srv *goupnp.Service) { + if ctx.Err() != nil { + return + } + switch srv.ServiceType { + case internetgateway2.URN_WANIPConnection_1: + client := &internetgateway2.WANIPConnection1{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: dev.Root, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG2-IP1)", dev.Root}: + case <-ctx.Done(): + } + } + + case internetgateway2.URN_WANIPConnection_2: + client := &internetgateway2.WANIPConnection2{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: dev.Root, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG2-IP2)", dev.Root}: + case <-ctx.Done(): + } + } + + case internetgateway2.URN_WANPPPConnection_1: + client := &internetgateway2.WANPPPConnection1{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: dev.Root, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG2-PPP1)", dev.Root}: + case <-ctx.Done(): + } + } + + } + }) + } + + }() + return res +} + +func discoverUPNP_GenIGDev(ctx context.Context) <-chan NAT { + res := make(chan NAT, 1) + go func() { + defer close(res) + + DeviceList, err := ssdp.Search(ssdp.All, 5, "") + if err != nil { + return + } + var gw ssdp.Service + for _, Service := range DeviceList { + if strings.Contains(Service.Type, "InternetGatewayDevice") { + gw = Service + break + } + } + + DeviceURL, err := url.Parse(gw.Location) + if err != nil { + return + } + RootDevice, err := goupnp.DeviceByURL(DeviceURL) + if err != nil { + return + } + + RootDevice.Device.VisitServices(func(srv *goupnp.Service) { + if ctx.Err() != nil { + return + } + switch srv.ServiceType { + case internetgateway1.URN_WANIPConnection_1: + client := &internetgateway1.WANIPConnection1{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: RootDevice, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG1-IP1)", RootDevice}: + case <-ctx.Done(): + } + } + + case internetgateway1.URN_WANPPPConnection_1: + client := &internetgateway1.WANPPPConnection1{ServiceClient: goupnp.ServiceClient{ + SOAPClient: srv.NewSOAPClient(), + RootDevice: RootDevice, + Service: srv, + }} + _, isNat, err := client.GetNATRSIPStatus() + if err == nil && isNat { + select { + case res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG1-PPP1)", RootDevice}: + case <-ctx.Done(): + } + } + + } + }) + }() + return res +} + +type upnp_NAT_Client interface { + GetExternalIPAddress() (string, error) + AddPortMapping(string, uint16, string, uint16, string, bool, string, uint32) error + DeletePortMapping(string, uint16, string) error +} + +type upnp_NAT struct { + c upnp_NAT_Client + ports map[int]int + typ string + rootDevice *goupnp.RootDevice +} + +func (u *upnp_NAT) GetExternalAddress() (addr net.IP, err error) { + ipString, err := u.c.GetExternalIPAddress() + if err != nil { + return nil, err + } + + ip := net.ParseIP(ipString) + if ip == nil { + return nil, ErrNoExternalAddress + } + + return ip, nil +} + +func mapProtocol(s string) string { + switch s { + case "udp": + return "UDP" + case "tcp": + return "TCP" + default: + panic("invalid protocol: " + s) + } +} + +func (u *upnp_NAT) AddPortMapping(protocol string, internalPort int, description string, timeout time.Duration) (int, error) { + ip, err := u.GetInternalAddress() + if err != nil { + return 0, nil + } + + timeoutInSeconds := uint32(timeout / time.Second) + + if externalPort := u.ports[internalPort]; externalPort > 0 { + err = u.c.AddPortMapping("", uint16(externalPort), mapProtocol(protocol), uint16(internalPort), ip.String(), true, description, timeoutInSeconds) + if err == nil { + return externalPort, nil + } + } + + for i := 0; i < 3; i++ { + externalPort := randomPort() + err = u.c.AddPortMapping("", uint16(externalPort), mapProtocol(protocol), uint16(internalPort), ip.String(), true, description, timeoutInSeconds) + if err == nil { + u.ports[internalPort] = externalPort + return externalPort, nil + } + } + + return 0, err +} + +func (u *upnp_NAT) DeletePortMapping(protocol string, internalPort int) error { + if externalPort := u.ports[internalPort]; externalPort > 0 { + delete(u.ports, internalPort) + return u.c.DeletePortMapping("", uint16(externalPort), mapProtocol(protocol)) + } + + return nil +} + +func (u *upnp_NAT) GetDeviceAddress() (net.IP, error) { + addr, err := net.ResolveUDPAddr("udp4", u.rootDevice.URLBase.Host) + if err != nil { + return nil, err + } + + return addr.IP, nil +} + +func (u *upnp_NAT) GetInternalAddress() (net.IP, error) { + devAddr, err := u.GetDeviceAddress() + if err != nil { + return nil, err + } + + ifaces, err := net.Interfaces() + if err != nil { + return nil, err + } + + for _, iface := range ifaces { + addrs, err := iface.Addrs() + if err != nil { + return nil, err + } + + for _, addr := range addrs { + switch x := addr.(type) { + case *net.IPNet: + if x.Contains(devAddr) { + return x.IP, nil + } + } + } + } + + return nil, ErrNoInternalAddress +} + +func (n *upnp_NAT) Type() string { return n.typ } diff --git a/vendor/github.com/libp2p/go-reuseport-transport/.travis.yml b/vendor/github.com/libp2p/go-reuseport-transport/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-reuseport-transport/LICENSE b/vendor/github.com/libp2p/go-reuseport-transport/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-reuseport-transport/Makefile b/vendor/github.com/libp2p/go-reuseport-transport/Makefile new file mode 100644 index 00000000..54152565 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/libp2p/go-reuseport-transport/README.md b/vendor/github.com/libp2p/go-reuseport-transport/README.md new file mode 100644 index 00000000..ff707568 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/README.md @@ -0,0 +1,62 @@ +# go-reuseport-transport + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-reuseport-transport?status.svg)](https://godoc.org/github.com/libp2p/go-reuseport-transport) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-reuseport-transport/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-reuseport-transport?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-reuseport-transport.svg?branch=master)](https://travis-ci.org/libp2p/go-reuseport-transport) + +> Basic reuseport TCP transport + +This package provides a basic transport for automatically (and intelligently) reusing TCP ports. + +To use, construct a new `Transport` (the zero value is safe to use) and configure any listeners (`tr.Listen(...)`). + +Then, when dialing (`tr.Dial(...)`), the transport will attempt to reuse the ports it's currently listening on, choosing the best one depending on the destination address. + + +NOTE: Currently, we don't make any attempts to prevent two reusport transports from interfering with each other (reusing each other's ports). However, we reserve the right to fix this in the future. + +## Install + +`go-reuseport-transport` is a standard Go module which can be installed with: + +```sh +go get github.com/libp2p/go-reuseport-transport +``` + +Note that `go-reuseport-transport` is packaged with Gx, so it is recommended to use Gx to install and use it (see the Usage section). + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/libp2p/go-reuseport-transport +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +This package is *currently* used by the [go-tcp-transport](https://github.com/libp2p/go-tcp-transport) libp2p transport and will likely be used by more libp2p transports in the future. + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-reuseport-transport/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/libp2p/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-reuseport-transport/codecov.yml b/vendor/github.com/libp2p/go-reuseport-transport/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-reuseport-transport/dial.go b/vendor/github.com/libp2p/go-reuseport-transport/dial.go new file mode 100644 index 00000000..a16b5b2b --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/dial.go @@ -0,0 +1,113 @@ +package tcpreuse + +import ( + "context" + "net" + + reuseport "github.com/libp2p/go-reuseport" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +type dialer interface { + Dial(network, addr string) (net.Conn, error) + DialContext(ctx context.Context, network, addr string) (net.Conn, error) +} + +// Dial dials the given multiaddr, reusing ports we're currently listening on if +// possible. +// +// Dial attempts to be smart about choosing the source port. For example, If +// we're dialing a loopback address and we're listening on one or more loopback +// ports, Dial will randomly choose one of the loopback ports and addresses and +// reuse it. +func (t *Transport) Dial(raddr ma.Multiaddr) (manet.Conn, error) { + return t.DialContext(context.Background(), raddr) +} + +// DialContext is like Dial but takes a context. +func (t *Transport) DialContext(ctx context.Context, raddr ma.Multiaddr) (manet.Conn, error) { + network, addr, err := manet.DialArgs(raddr) + if err != nil { + return nil, err + } + var d dialer + switch network { + case "tcp4": + d = t.v4.getDialer(network) + case "tcp6": + d = t.v6.getDialer(network) + default: + return nil, ErrWrongProto + } + conn, err := d.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + maconn, err := manet.WrapNetConn(conn) + if err != nil { + conn.Close() + return nil, err + } + return maconn, nil +} + +func (n *network) getDialer(network string) dialer { + n.mu.RLock() + d := n.dialer + n.mu.RUnlock() + if d == nil { + n.mu.Lock() + defer n.mu.Unlock() + + if n.dialer == nil { + n.dialer = n.makeDialer(network) + } + d = n.dialer + } + return d +} + +func (n *network) makeDialer(network string) dialer { + if !reuseport.Available() { + log.Debug("reuseport not available") + return &net.Dialer{} + } + + var unspec net.IP + switch network { + case "tcp4": + unspec = net.IPv4zero + case "tcp6": + unspec = net.IPv6unspecified + default: + panic("invalid network: must be either tcp4 or tcp6") + } + + // How many ports are we listening on. + var port = 0 + for l := range n.listeners { + newPort := l.Addr().(*net.TCPAddr).Port + switch { + case newPort == 0: // Any port, ignore (really, we shouldn't get this case...). + case port == 0: // Haven't selected a port yet, choose this one. + port = newPort + case newPort == port: // Same as the selected port, continue... + default: // Multiple ports, use the multi dialer + return newMultiDialer(unspec, n.listeners) + } + } + + // None. + if port == 0 { + return &net.Dialer{} + } + + // One. Always dial from the single port we're listening on. + laddr := &net.TCPAddr{ + IP: unspec, + Port: port, + } + + return (*singleDialer)(laddr) +} diff --git a/vendor/github.com/libp2p/go-reuseport-transport/go.mod b/vendor/github.com/libp2p/go-reuseport-transport/go.mod new file mode 100644 index 00000000..190ba681 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/go.mod @@ -0,0 +1,8 @@ +module github.com/libp2p/go-reuseport-transport + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-reuseport v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-reuseport-transport/go.sum b/vendor/github.com/libp2p/go-reuseport-transport/go.sum new file mode 100644 index 00000000..a7abc2e2 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/go.sum @@ -0,0 +1,52 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/libp2p/go-reuseport-transport/listen.go b/vendor/github.com/libp2p/go-reuseport-transport/listen.go new file mode 100644 index 00000000..7b2a4c39 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/listen.go @@ -0,0 +1,80 @@ +package tcpreuse + +import ( + "net" + + reuseport "github.com/libp2p/go-reuseport" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +type listener struct { + manet.Listener + network *network +} + +func (l *listener) Close() error { + l.network.mu.Lock() + delete(l.network.listeners, l) + l.network.dialer = nil + l.network.mu.Unlock() + return l.Listener.Close() +} + +// Listen listens on the given multiaddr. +// +// If reuseport is supported, it will be enabled for this listener and future +// dials from this transport may reuse the port. +// +// Note: You can listen on the same multiaddr as many times as you want +// (although only *one* listener will end up handling the inbound connection). +func (t *Transport) Listen(laddr ma.Multiaddr) (manet.Listener, error) { + nw, naddr, err := manet.DialArgs(laddr) + if err != nil { + return nil, err + } + var n *network + switch nw { + case "tcp4": + n = &t.v4 + case "tcp6": + n = &t.v6 + default: + return nil, ErrWrongProto + } + + if !reuseport.Available() { + return manet.Listen(laddr) + } + nl, err := reuseport.Listen(nw, naddr) + if err != nil { + return manet.Listen(laddr) + } + + if _, ok := nl.Addr().(*net.TCPAddr); !ok { + nl.Close() + return nil, ErrWrongProto + } + + malist, err := manet.WrapNetListener(nl) + if err != nil { + nl.Close() + return nil, err + } + + list := &listener{ + Listener: malist, + network: n, + } + + n.mu.Lock() + defer n.mu.Unlock() + + if n.listeners == nil { + n.listeners = make(map[*listener]struct{}) + } + n.listeners[list] = struct{}{} + n.dialer = nil + + return list, nil +} diff --git a/vendor/github.com/libp2p/go-reuseport-transport/multidialer.go b/vendor/github.com/libp2p/go-reuseport-transport/multidialer.go new file mode 100644 index 00000000..c7d388c1 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/multidialer.go @@ -0,0 +1,110 @@ +package tcpreuse + +import ( + "context" + "fmt" + "math/rand" + "net" +) + +type multiDialer struct { + loopback []*net.TCPAddr + unspecified []*net.TCPAddr + global *net.TCPAddr +} + +func (d *multiDialer) Dial(network, addr string) (net.Conn, error) { + return d.DialContext(context.Background(), network, addr) +} + +func randAddr(addrs []*net.TCPAddr) *net.TCPAddr { + if len(addrs) > 0 { + return addrs[rand.Intn(len(addrs))] + } + return nil +} + +func (d *multiDialer) DialContext(ctx context.Context, network, addr string) (net.Conn, error) { + tcpAddr, err := net.ResolveTCPAddr(network, addr) + if err != nil { + return nil, err + } + + // We pick the source *port* based on the following algorithm. + // + // 1. If we're dialing loopback, choose a source-port in order of + // preference: + // 1. A port in-use by an explicit loopback listener. + // 2. A port in-use by a listener on an unspecified address (must + // also be listening on localhost). + // 3. A port in-use by a listener on a global address. We don't have + // any other better options (other than picking a random port). + // 2. If we're dialing a global address, choose a source-port in order + // of preference: + // 1. A port in-use by a listener on an unspecified address (the most + // general case). + // 2. A port in-use by a listener on the global address. + // 3. Fail on link-local dials (go-ipfs currently forbids this and I + // figured we could try lifting this restriction later). + // + // + // Note: We *always* dial from the unspecified address (regardless of + // the port we pick). In the future, we could use netlink (on Linux) to + // figure out the right source address but we're going to punt on that. + + ip := tcpAddr.IP + source := d.global + switch { + case ip.IsLoopback(): + switch { + case len(d.loopback) > 0: + source = randAddr(d.loopback) + case len(d.unspecified) > 0: + source = randAddr(d.unspecified) + } + case ip.IsGlobalUnicast(): + switch { + case len(d.unspecified) > 0: + source = randAddr(d.unspecified) + } + default: + return nil, fmt.Errorf("undialable IP: %s", tcpAddr.IP) + } + return reuseDial(ctx, source, network, addr) +} + +func newMultiDialer(unspec net.IP, listeners map[*listener]struct{}) dialer { + m := new(multiDialer) + for l := range listeners { + laddr := l.Addr().(*net.TCPAddr) + switch { + case laddr.IP.IsLoopback(): + m.loopback = append(m.loopback, laddr) + case laddr.IP.IsGlobalUnicast(): + // Different global ports? Crap. + // + // The *proper* way to deal with this is to, e.g., use + // netlink to figure out which source address we would + // normally use to dial a destination address and then + // pick one of the ports we're listening on on that + // source address. However, this is a pain in the ass. + // + // Instead, we're just going to always dial from the + // unspecified address with the first global port we + // find. + // + // TODO: Port priority? Addr priority? + if m.global == nil { + m.global = &net.TCPAddr{ + IP: unspec, + Port: laddr.Port, + } + } else { + log.Warning("listening on external interfaces on multiple ports, will dial from %d, not %s", m.global, laddr) + } + case laddr.IP.IsUnspecified(): + m.unspecified = append(m.unspecified, laddr) + } + } + return m +} diff --git a/vendor/github.com/libp2p/go-reuseport-transport/package.json b/vendor/github.com/libp2p/go-reuseport-transport/package.json new file mode 100644 index 00000000..a0b9189d --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/package.json @@ -0,0 +1,41 @@ +{ + "author": "stebalien", + "bugs": { + "url": "https://github.com/libp2p/go-reuseport-transport" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-reuseport-transport" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "multiformats", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "author": "whyrusleeping", + "hash": "Qme8kdM7thoCqLqd7GYCRqipoZJS64rhJo5MBcTpyWfsL9", + "name": "go-reuseport", + "version": "0.2.2" + } + ], + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "go-reuseport-transport", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.3" +} + diff --git a/vendor/github.com/libp2p/go-reuseport-transport/reuseport.go b/vendor/github.com/libp2p/go-reuseport-transport/reuseport.go new file mode 100644 index 00000000..82f9f37c --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/reuseport.go @@ -0,0 +1,64 @@ +package tcpreuse + +import ( + "context" + "net" + "syscall" + + reuseport "github.com/libp2p/go-reuseport" +) + +var fallbackDialer net.Dialer + +// reuseErrShouldRetry diagnoses whether to retry after a reuse error. +// if we failed to bind, we should retry. if bind worked and this is a +// real dial error (remote end didnt answer) then we should not retry. +func reuseErrShouldRetry(err error) bool { + if err == nil { + return false // hey, it worked! no need to retry. + } + + // if it's a network timeout error, it's a legitimate failure. + if nerr, ok := err.(net.Error); ok && nerr.Timeout() { + return false + } + + errno, ok := err.(syscall.Errno) + if !ok { // not an errno? who knows what this is. retry. + return true + } + + switch errno { + case syscall.EADDRINUSE, syscall.EADDRNOTAVAIL: + return true // failure to bind. retry. + case syscall.ECONNREFUSED: + return false // real dial error + default: + return true // optimistically default to retry. + } +} + +// Dials using reuseport and then redials normally if that fails. +func reuseDial(ctx context.Context, laddr *net.TCPAddr, network, raddr string) (con net.Conn, err error) { + if laddr == nil { + return fallbackDialer.DialContext(ctx, network, raddr) + } + + d := net.Dialer{ + LocalAddr: laddr, + Control: reuseport.Control, + } + + con, err = d.DialContext(ctx, network, raddr) + if err == nil { + return con, nil + } + + if reuseErrShouldRetry(err) && ctx.Err() == nil { + // We could have an existing socket open or we could have one + // stuck in TIME-WAIT. + log.Debugf("failed to reuse port, dialing with a random port: %s", err) + con, err = fallbackDialer.DialContext(ctx, network, raddr) + } + return con, err +} diff --git a/vendor/github.com/libp2p/go-reuseport-transport/singledialer.go b/vendor/github.com/libp2p/go-reuseport-transport/singledialer.go new file mode 100644 index 00000000..efb96eb1 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/singledialer.go @@ -0,0 +1,16 @@ +package tcpreuse + +import ( + "context" + "net" +) + +type singleDialer net.TCPAddr + +func (d *singleDialer) Dial(network, address string) (net.Conn, error) { + return d.DialContext(context.Background(), network, address) +} + +func (d *singleDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) { + return reuseDial(ctx, (*net.TCPAddr)(d), network, address) +} diff --git a/vendor/github.com/libp2p/go-reuseport-transport/transport.go b/vendor/github.com/libp2p/go-reuseport-transport/transport.go new file mode 100644 index 00000000..5f094d1a --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport-transport/transport.go @@ -0,0 +1,25 @@ +package tcpreuse + +import ( + "errors" + "sync" + + logging "github.com/ipfs/go-log" +) + +var log = logging.Logger("reuseport-transport") + +// ErrWrongProto is returned when dialing a protocol other than tcp. +var ErrWrongProto = errors.New("can only dial TCP over IPv4 or IPv6") + +// Transport is a TCP reuse transport that reuses listener ports. +type Transport struct { + v4 network + v6 network +} + +type network struct { + mu sync.RWMutex + listeners map[*listener]struct{} + dialer dialer +} diff --git a/vendor/github.com/libp2p/go-reuseport/.travis.yml b/vendor/github.com/libp2p/go-reuseport/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-reuseport/LICENSE b/vendor/github.com/libp2p/go-reuseport/LICENSE new file mode 100644 index 00000000..0d760cbb --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2013 Conformal Systems LLC. + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-reuseport/Makefile b/vendor/github.com/libp2p/go-reuseport/Makefile new file mode 100644 index 00000000..601c56d0 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/Makefile @@ -0,0 +1,26 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + + +SUPPORTED_OS = windows linux darwin freebsd openbsd netbsd +SUPPORTED_ARCH = 386 arm amd64p32 arm64 amd64 +XBUILD_TARGETS=$(foreach os,$(SUPPORTED_OS),$(foreach arch,$(SUPPORTED_ARCH),test-xbuild-$(os)/$(arch))) + +$(XBUILD_TARGETS): PLATFORM = $(subst /, ,$(patsubst test-xbuild-%,%,$@)) +$(XBUILD_TARGETS): GOOS = $(word 1,$(PLATFORM)) +$(XBUILD_TARGETS): GOARCH = $(word 2,$(PLATFORM)) +$(XBUILD_TARGETS): + @ if GOOS=$(GOOS) GOARCH=$(GOARCH) go version >/dev/null 2>&1 ; then \ + echo "building $(GOOS)/$(GOARCH)"; \ + GOOS=$(GOOS) GOARCH=$(GOARCH) go build; \ + fi + +test-xbuild: $(XBUILD_TARGETS) diff --git a/vendor/github.com/libp2p/go-reuseport/README.md b/vendor/github.com/libp2p/go-reuseport/README.md new file mode 100644 index 00000000..4a4605ba --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/README.md @@ -0,0 +1,46 @@ +# go-reuseport + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai) +[![](https://img.shields.io/badge/project-libp2p-blue.svg?style=flat-square)](https://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23libp2p-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23libp2p) +[![codecov](https://codecov.io/gh/libp2p/go-reuseport/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/go-reuseport) +[![Travis CI](https://travis-ci.org/libp2p/go-reuseport.svg?branch=master)](https://travis-ci.org/libp2p/go-reuseport) + +**NOTE:** This package REQUIRES go >= 1.11. + +This package enables listening and dialing from _the same_ TCP or UDP port. +This means that the following sockopts may be set: + +``` +SO_REUSEADDR +SO_REUSEPORT +``` + +- godoc: https://godoc.org/github.com/libp2p/go-reuseport + +This is a simple package to help with address reuse. This is particularly +important when attempting to do TCP NAT holepunching, which requires a process +to both Listen and Dial on the same TCP port. This package provides some +utilities around enabling this behaviour on various OS. + +## Examples + + +```Go +// listen on the same port. oh yeah. +l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") +l2, _ := reuse.Listen("tcp", "127.0.0.1:1234") +``` + +```Go +// dial from the same port. oh yeah. +l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") +l2, _ := reuse.Listen("tcp", "127.0.0.1:1235") +c, _ := reuse.Dial("tcp", "127.0.0.1:1234", "127.0.0.1:1235") +``` + +**Note: cant dial self because tcp/ip stacks use 4-tuples to identify connections, and doing so would clash.** + +## Tested + +Tested on `darwin`, `linux`, and `windows`. diff --git a/vendor/github.com/libp2p/go-reuseport/addr.go b/vendor/github.com/libp2p/go-reuseport/addr.go new file mode 100644 index 00000000..cfffc7c8 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/addr.go @@ -0,0 +1,20 @@ +package reuseport + +import ( + "net" +) + +func ResolveAddr(network, address string) (net.Addr, error) { + switch network { + default: + return nil, net.UnknownNetworkError(network) + case "ip", "ip4", "ip6": + return net.ResolveIPAddr(network, address) + case "tcp", "tcp4", "tcp6": + return net.ResolveTCPAddr(network, address) + case "udp", "udp4", "udp6": + return net.ResolveUDPAddr(network, address) + case "unix", "unixgram", "unixpacket": + return net.ResolveUnixAddr(network, address) + } +} diff --git a/vendor/github.com/libp2p/go-reuseport/codecov.yml b/vendor/github.com/libp2p/go-reuseport/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-reuseport/control_unix.go b/vendor/github.com/libp2p/go-reuseport/control_unix.go new file mode 100644 index 00000000..e75242a8 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/control_unix.go @@ -0,0 +1,25 @@ +// +build !windows,!wasm + +package reuseport + +import ( + "syscall" + + "golang.org/x/sys/unix" +) + +func Control(network, address string, c syscall.RawConn) error { + var err error + c.Control(func(fd uintptr) { + err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEADDR, 1) + if err != nil { + return + } + + err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1) + if err != nil { + return + } + }) + return err +} diff --git a/vendor/github.com/libp2p/go-reuseport/control_wasm.go b/vendor/github.com/libp2p/go-reuseport/control_wasm.go new file mode 100644 index 00000000..d5d0a523 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/control_wasm.go @@ -0,0 +1,11 @@ +// +build wasm + +package reuseport + +import ( + "syscall" +) + +func Control(network, address string, c syscall.RawConn) error { + return nil +} diff --git a/vendor/github.com/libp2p/go-reuseport/control_windows.go b/vendor/github.com/libp2p/go-reuseport/control_windows.go new file mode 100644 index 00000000..840534c9 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/control_windows.go @@ -0,0 +1,13 @@ +package reuseport + +import ( + "syscall" + + "golang.org/x/sys/windows" +) + +func Control(network, address string, c syscall.RawConn) (err error) { + return c.Control(func(fd uintptr) { + err = windows.SetsockoptInt(windows.Handle(fd), windows.SOL_SOCKET, windows.SO_REUSEADDR, 1) + }) +} diff --git a/vendor/github.com/libp2p/go-reuseport/go.mod b/vendor/github.com/libp2p/go-reuseport/go.mod new file mode 100644 index 00000000..f8053c7d --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/go.mod @@ -0,0 +1,7 @@ +module github.com/libp2p/go-reuseport + +require ( + github.com/pkg/errors v0.8.1 + github.com/stretchr/testify v1.3.0 + golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e +) diff --git a/vendor/github.com/libp2p/go-reuseport/go.sum b/vendor/github.com/libp2p/go-reuseport/go.sum new file mode 100644 index 00000000..af928c2c --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/go.sum @@ -0,0 +1,11 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/libp2p/go-reuseport/interface.go b/vendor/github.com/libp2p/go-reuseport/interface.go new file mode 100644 index 00000000..64b48af8 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/interface.go @@ -0,0 +1,64 @@ +// Package reuseport provides Listen and Dial functions that set socket +// options in order to be able to reuse ports. You should only use this +// package if you know what SO_REUSEADDR and SO_REUSEPORT are. +// +// For example: +// +// // listen on the same port. oh yeah. +// l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") +// l2, _ := reuse.Listen("tcp", "127.0.0.1:1234") +// +// // dial from the same port. oh yeah. +// l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") +// l2, _ := reuse.Listen("tcp", "127.0.0.1:1235") +// c, _ := reuse.Dial("tcp", "127.0.0.1:1234", "127.0.0.1:1235") +// +// Note: cant dial self because tcp/ip stacks use 4-tuples to identify connections, +// and doing so would clash. +package reuseport + +import ( + "context" + "net" + + "github.com/pkg/errors" +) + +// Available returns whether or not SO_REUSEPORT or equivalent behaviour is +// available in the OS. +func Available() bool { + return true +} + +var listenConfig = net.ListenConfig{ + Control: Control, +} + +// Listen listens at the given network and address. see net.Listen +// Returns a net.Listener created from a file discriptor for a socket +// with SO_REUSEPORT and SO_REUSEADDR option set. +func Listen(network, address string) (net.Listener, error) { + return listenConfig.Listen(context.Background(), network, address) +} + +// ListenPacket listens at the given network and address. see net.ListenPacket +// Returns a net.Listener created from a file discriptor for a socket +// with SO_REUSEPORT and SO_REUSEADDR option set. +func ListenPacket(network, address string) (net.PacketConn, error) { + return listenConfig.ListenPacket(context.Background(), network, address) +} + +// Dial dials the given network and address. see net.Dialer.Dial +// Returns a net.Conn created from a file descriptor for a socket +// with SO_REUSEPORT and SO_REUSEADDR option set. +func Dial(network, laddr, raddr string) (net.Conn, error) { + nla, err := ResolveAddr(network, laddr) + if err != nil { + return nil, errors.Wrap(err, "resolving local addr") + } + d := net.Dialer{ + Control: Control, + LocalAddr: nla, + } + return d.Dial(network, raddr) +} diff --git a/vendor/github.com/libp2p/go-reuseport/package.json b/vendor/github.com/libp2p/go-reuseport/package.json new file mode 100644 index 00000000..391d13f0 --- /dev/null +++ b/vendor/github.com/libp2p/go-reuseport/package.json @@ -0,0 +1,36 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-reuseport" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-reuseport" + }, + "gxDependencies": [ + { + "author": "The Go Authors", + "hash": "QmVGjyM9i2msKvLXwh9VosCTgP4mL91kC7hDmqnwTTx6Hu", + "name": "sys", + "version": "0.2.0" + }, + { + "author": "whyrusleeping", + "hash": "QmVmDhyTTUcQXFD1rRQ64fGLMSAoaQvNH3hwuaCFAPq2hy", + "name": "errors", + "version": "0.0.1" + }, + { + "author": "magik6k", + "hash": "QmPVkJMTeRC6iBByPWdrRkD3BE5UXsj5HPzb4kPqL186mS", + "name": "testify", + "version": "1.0.0" + } + ], + "gxVersion": "0.9.0", + "language": "go", + "license": "", + "name": "go-reuseport", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.2.2" +} + diff --git a/vendor/github.com/libp2p/go-stream-muxer/.gitignore b/vendor/github.com/libp2p/go-stream-muxer/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/libp2p/go-stream-muxer/.gxignore b/vendor/github.com/libp2p/go-stream-muxer/.gxignore new file mode 100644 index 00000000..69ae75fb --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/.gxignore @@ -0,0 +1 @@ +suite/* diff --git a/vendor/github.com/libp2p/go-stream-muxer/.travis.yml b/vendor/github.com/libp2p/go-stream-muxer/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-stream-muxer/LICENSE b/vendor/github.com/libp2p/go-stream-muxer/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-stream-muxer/Makefile b/vendor/github.com/libp2p/go-stream-muxer/Makefile new file mode 100644 index 00000000..5c996090 --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/Makefile @@ -0,0 +1,13 @@ +all: deps + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-stream-muxer/README.md b/vendor/github.com/libp2p/go-stream-muxer/README.md new file mode 100644 index 00000000..759ec5b6 --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/README.md @@ -0,0 +1,114 @@ +# go-stream-muxer - generalized stream multiplexing + + +go-stream-muxer is a common interface for stream muxers, with common tests. It wraps other stream muxers (like [muxado](https://github.com/inconshreveable/muxado), [spdystream](https://github.com/docker/spdystream) and [yamux](https://github.com/hashicorp/yamux)). + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) + +> A test suite and interface you can use to implement a stream muxer. + +### Godoc: https://godoc.org/github.com/libp2p/go-stream-muxer + +## Implementations + +* [yamux](https://github.com/whyrusleeping/go-smux-yamux) +* [muxado](https://github.com/whyrusleeping/go-smux-muxado) +* [multiplex](https://github.com/whyrusleeping/go-smux-multiplex) +* [spdystream](https://github.com/whyrusleeping/go-smux-spdystream) + +## Badge + +Include this badge in your readme if you make a new module that uses abstract-stream-muxer API. + +![](img/badge.png) + +## Installation + +```sh +go get -d github.com/libp2p/go-stream-muxer +cd $GOPATH/src/github.com/libp2p/go-stream-muxer +make deps +``` + +## Client example + +```go +import ( + "net" + "fmt" + "io" + "os" + + ymux "github.com/whyrusleeping/go-smux-yamux" +) + +func dial() { + nconn, _ := net.Dial("tcp", "localhost:1234") + sconn, _ := ymux.DefaultTransport.NewConn(nconn, false) // false == client + + go func() { + // no-op + for { + sconn.AcceptStream() + } + }() + + s1, _ := sconn.OpenStream() + s1.Write([]byte("hello")) + + s2, _ := sconn.OpenStream() + s2.Write([]byte("world")) + + length := 20 + buf2 := make([]byte, length) + fmt.Printf("reading %d bytes from stream (echoed)\n", length) + + s1.Read(buf2) + + fmt.Printf("received %s as a response\n", string(buf2)) + + s3, _ := sconn.OpenStream() + io.Copy(s3, os.Stdin) +} +``` + +## Server example + +```go +import ( + "net" + "fmt" + "io" + + smux "github.com/libp2p/go-stream-muxer" + ymux "github.com/whyrusleeping/go-smux-yamux" +) + +func listen() { + tr := ymux.DefaultTransport + l, _ := net.Listen("tcp", "localhost:1234") + + for { + c, _ := l.Accept() + + fmt.Println("accepted connection") + sc, _ := tr.NewConn(c, true) + + go func() { + fmt.Println("serving connection") + for { + s, _ := sc.AcceptStream() + echoStream(s) + } + }() + } +} + +func echoStream(s smux.Stream) { + defer s.Close() + + fmt.Println("accepted stream") + io.Copy(s, s) // echo everything + fmt.Println("closing stream") +} +``` diff --git a/vendor/github.com/libp2p/go-stream-muxer/codecov.yml b/vendor/github.com/libp2p/go-stream-muxer/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-stream-muxer/go.mod b/vendor/github.com/libp2p/go-stream-muxer/go.mod new file mode 100644 index 00000000..f07e3803 --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/go.mod @@ -0,0 +1 @@ +module github.com/libp2p/go-stream-muxer diff --git a/vendor/github.com/libp2p/go-stream-muxer/muxer.go b/vendor/github.com/libp2p/go-stream-muxer/muxer.go new file mode 100644 index 00000000..c534af5e --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/muxer.go @@ -0,0 +1,55 @@ +package streammux + +import ( + "errors" + "io" + "net" + "time" +) + +// ErrReset is returned when reading or writing on a reset stream. +var ErrReset = errors.New("stream reset") + +// Stream is a bidirectional io pipe within a connection. +type Stream interface { + io.Reader + io.Writer + + // Close closes the stream for writing. Reading will still work (that + // is, the remote side can still write). + io.Closer + + // Reset closes both ends of the stream. Use this to tell the remote + // side to hang up and go away. + Reset() error + + SetDeadline(time.Time) error + SetReadDeadline(time.Time) error + SetWriteDeadline(time.Time) error +} + +// NoOpHandler do nothing. Resets streams as soon as they are opened. +var NoOpHandler = func(s Stream) { s.Reset() } + +// Conn is a stream-multiplexing connection to a remote peer. +type Conn interface { + // Close closes the stream muxer and the the underlying net.Conn. + io.Closer + + // IsClosed returns whether a connection is fully closed, so it can + // be garbage collected. + IsClosed() bool + + // OpenStream creates a new stream. + OpenStream() (Stream, error) + + // AcceptStream accepts a stream opened by the other side. + AcceptStream() (Stream, error) +} + +// Transport constructs go-stream-muxer compatible connections. +type Transport interface { + + // NewConn constructs a new connection + NewConn(c net.Conn, isServer bool) (Conn, error) +} diff --git a/vendor/github.com/libp2p/go-stream-muxer/package.json b/vendor/github.com/libp2p/go-stream-muxer/package.json new file mode 100644 index 00000000..c63d0829 --- /dev/null +++ b/vendor/github.com/libp2p/go-stream-muxer/package.json @@ -0,0 +1,15 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-stream-muxer" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-stream-muxer" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "", + "name": "go-stream-muxer", + "version": "3.1.0" +} + diff --git a/vendor/github.com/libp2p/go-tcp-transport/.travis.yml b/vendor/github.com/libp2p/go-tcp-transport/.travis.yml new file mode 100644 index 00000000..cc4a155f --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/.travis.yml @@ -0,0 +1,31 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + - TEST_STRESS_TIMEOUT_MS=180000 + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-tcp-transport/LICENSE b/vendor/github.com/libp2p/go-tcp-transport/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/libp2p/go-tcp-transport/Makefile b/vendor/github.com/libp2p/go-tcp-transport/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/libp2p/go-tcp-transport/README.md b/vendor/github.com/libp2p/go-tcp-transport/README.md new file mode 100644 index 00000000..aaaed218 --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/README.md @@ -0,0 +1,35 @@ +go-tcp-transport +================== + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://libp2p.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-tcp-transport/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-tcp-transport?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-tcp-transport.svg?branch=master)](https://travis-ci.org/libp2p/go-tcp-transport) + +> A libp2p transport implementation for tcp, including reuseport socket options. + + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +make install +``` + +## Contribute + +PRs are welcome! + +Small note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +MIT © Jeromy Johnson diff --git a/vendor/github.com/libp2p/go-tcp-transport/codecov.yml b/vendor/github.com/libp2p/go-tcp-transport/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-tcp-transport/go.mod b/vendor/github.com/libp2p/go-tcp-transport/go.mod new file mode 100644 index 00000000..7f0f5b70 --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/go.mod @@ -0,0 +1,15 @@ +module github.com/libp2p/go-tcp-transport + +require ( + github.com/ipfs/go-log v0.0.1 + github.com/libp2p/go-conn-security v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-transport v0.0.4 + github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 + github.com/libp2p/go-reuseport v0.0.1 + github.com/libp2p/go-reuseport-transport v0.0.2 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible + github.com/whyrusleeping/mafmt v1.2.8 +) diff --git a/vendor/github.com/libp2p/go-tcp-transport/go.sum b/vendor/github.com/libp2p/go-tcp-transport/go.sum new file mode 100644 index 00000000..39982699 --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/go.sum @@ -0,0 +1,156 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport-transport v0.0.2 h1:WglMwyXyBu61CMkjCCtnmqNqnjib0GIEjMiHTwR/KN4= +github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-tcp-transport/package.json b/vendor/github.com/libp2p/go-tcp-transport/package.json new file mode 100644 index 00000000..7ac42a9f --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/package.json @@ -0,0 +1,83 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-tcp-transport" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-tcp-transport" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "Qme8kdM7thoCqLqd7GYCRqipoZJS64rhJo5MBcTpyWfsL9", + "name": "go-reuseport", + "version": "0.2.2" + }, + { + "author": "whyrusleeping", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "author": "whyrusleeping", + "hash": "QmUrZZavcArYChpibtP8KgQXsAEpvgzUk73B2oj3HLbWc4", + "name": "mafmt", + "version": "1.2.11" + }, + { + "author": "whyrusleeping", + "hash": "QmNQWMWWBmkAcaVEspSNwYB95axzKFhYTdqZtABA2zXoPu", + "name": "go-libp2p-transport", + "version": "3.0.27" + }, + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "Stebalien", + "hash": "QmPRoHqULmP4MuKAN5EFaJ64MLpeMY8cny2318xDBDmmkp", + "name": "go-conn-security", + "version": "0.1.28" + }, + { + "author": "stebalien", + "hash": "QmTmbamDjDWgHe8qeMt7ZpaeNpTj349JpFKuwTF321XavT", + "name": "go-reuseport-transport", + "version": "0.2.3" + }, + { + "author": "steb", + "hash": "QmeqC5shQjEBRG9B8roZqQCJ9xb7Pq6AbWxJFMyLgqBBWh", + "name": "go-libp2p-transport-upgrader", + "version": "0.1.28" + }, + { + "author": "whyrusleeping", + "hash": "QmaJvNdDccVkTELQLCGXWrLxgaQ14aMdhzZx1EiHPXKbDc", + "name": "go-smux-multiplex", + "version": "3.0.19" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-tcp-transport", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.28" +} + diff --git a/vendor/github.com/libp2p/go-tcp-transport/reuseport.go b/vendor/github.com/libp2p/go-tcp-transport/reuseport.go new file mode 100644 index 00000000..04a5da3e --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/reuseport.go @@ -0,0 +1,44 @@ +package tcp + +import ( + "os" + "strings" + + reuseport "github.com/libp2p/go-reuseport" +) + +// envReuseport is the env variable name used to turn off reuse port. +// It default to true. +const envReuseport = "LIBP2P_TCP_REUSEPORT" +const deprecatedEnvReuseport = "IPFS_REUSEPORT" + +// envReuseportVal stores the value of envReuseport. defaults to true. +var envReuseportVal = true + +func init() { + v := strings.ToLower(os.Getenv(envReuseport)) + if v == "false" || v == "f" || v == "0" { + envReuseportVal = false + log.Infof("REUSEPORT disabled (LIBP2P_TCP_REUSEPORT=%s)", v) + } + v, exist := os.LookupEnv(deprecatedEnvReuseport) + if exist { + log.Warning("IPFS_REUSEPORT is deprecated, use LIBP2P_TCP_REUSEPORT instead") + if v == "false" || v == "f" || v == "0" { + envReuseportVal = false + log.Infof("REUSEPORT disabled (IPFS_REUSEPORT=%s)", v) + } + } +} + +// reuseportIsAvailable returns whether reuseport is available to be used. This +// is here because we want to be able to turn reuseport on and off selectively. +// For now we use an ENV variable, as this handles our pressing need: +// +// LIBP2P_TCP_REUSEPORT=false ipfs daemon +// +// If this becomes a sought after feature, we could add this to the config. +// In the end, reuseport is a stop-gap. +func ReuseportIsAvailable() bool { + return envReuseportVal && reuseport.Available() +} diff --git a/vendor/github.com/libp2p/go-tcp-transport/tcp.go b/vendor/github.com/libp2p/go-tcp-transport/tcp.go new file mode 100644 index 00000000..5f7fec8a --- /dev/null +++ b/vendor/github.com/libp2p/go-tcp-transport/tcp.go @@ -0,0 +1,141 @@ +package tcp + +import ( + "context" + "net" + "time" + + logging "github.com/ipfs/go-log" + peer "github.com/libp2p/go-libp2p-peer" + tpt "github.com/libp2p/go-libp2p-transport" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + rtpt "github.com/libp2p/go-reuseport-transport" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" + mafmt "github.com/whyrusleeping/mafmt" +) + +// DefaultConnectTimeout is the (default) maximum amount of time the TCP +// transport will spend on the initial TCP connect before giving up. +var DefaultConnectTimeout = 5 * time.Second + +var log = logging.Logger("tcp-tpt") + +// try to set linger on the connection, if possible. +func tryLinger(conn net.Conn, sec int) { + if lingerConn, ok := conn.(interface { + SetLinger(int) error + }); ok { + _ = lingerConn.SetLinger(sec) + } +} + +type lingerListener struct { + manet.Listener + sec int +} + +func (ll *lingerListener) Accept() (manet.Conn, error) { + c, err := ll.Listener.Accept() + if err != nil { + return nil, err + } + tryLinger(c, ll.sec) + return c, nil +} + +// TcpTransport is the TCP transport. +type TcpTransport struct { + // Connection upgrader for upgrading insecure stream connections to + // secure multiplex connections. + Upgrader *tptu.Upgrader + + // Explicitly disable reuseport. + DisableReuseport bool + + // TCP connect timeout + ConnectTimeout time.Duration + + reuse rtpt.Transport +} + +var _ tpt.Transport = &TcpTransport{} + +// NewTCPTransport creates a tcp transport object that tracks dialers and listeners +// created. It represents an entire tcp stack (though it might not necessarily be) +func NewTCPTransport(upgrader *tptu.Upgrader) *TcpTransport { + return &TcpTransport{Upgrader: upgrader, ConnectTimeout: DefaultConnectTimeout} +} + +// CanDial returns true if this transport believes it can dial the given +// multiaddr. +func (t *TcpTransport) CanDial(addr ma.Multiaddr) bool { + return mafmt.TCP.Matches(addr) +} + +func (t *TcpTransport) maDial(ctx context.Context, raddr ma.Multiaddr) (manet.Conn, error) { + // Apply the deadline iff applicable + if t.ConnectTimeout > 0 { + deadline := time.Now().Add(t.ConnectTimeout) + if d, ok := ctx.Deadline(); !ok || deadline.Before(d) { + var cancel func() + ctx, cancel = context.WithDeadline(ctx, deadline) + defer cancel() + } + } + + if t.UseReuseport() { + return t.reuse.DialContext(ctx, raddr) + } + var d manet.Dialer + return d.DialContext(ctx, raddr) +} + +// Dial dials the peer at the remote address. +func (t *TcpTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.Conn, error) { + conn, err := t.maDial(ctx, raddr) + if err != nil { + return nil, err + } + // Set linger to 0 so we never get stuck in the TIME-WAIT state. When + // linger is 0, connections are _reset_ instead of closed with a FIN. + // This means we can immediately reuse the 5-tuple and reconnect. + tryLinger(conn, 0) + return t.Upgrader.UpgradeOutbound(ctx, t, conn, p) +} + +// UseReuseport returns true if reuseport is enabled and available. +func (t *TcpTransport) UseReuseport() bool { + return !t.DisableReuseport && ReuseportIsAvailable() +} + +func (t *TcpTransport) maListen(laddr ma.Multiaddr) (manet.Listener, error) { + if t.UseReuseport() { + return t.reuse.Listen(laddr) + } + return manet.Listen(laddr) +} + +// Listen listens on the given multiaddr. +func (t *TcpTransport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) { + list, err := t.maListen(laddr) + if err != nil { + return nil, err + } + list = &lingerListener{list, 0} + return t.Upgrader.UpgradeListener(t, list), nil +} + +// Protocols returns the list of terminal protocols this transport can dial. +func (t *TcpTransport) Protocols() []int { + return []int{ma.P_TCP} +} + +// Proxy always returns false for the TCP transport. +func (t *TcpTransport) Proxy() bool { + return false +} + +func (t *TcpTransport) String() string { + return "TCP" +} diff --git a/vendor/github.com/libp2p/go-testutil/.travis.yml b/vendor/github.com/libp2p/go-testutil/.travis.yml new file mode 100644 index 00000000..4cfe98c2 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-testutil/LICENSE b/vendor/github.com/libp2p/go-testutil/LICENSE new file mode 100644 index 00000000..172a8eb2 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Protocol Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/libp2p/go-testutil/Makefile b/vendor/github.com/libp2p/go-testutil/Makefile new file mode 100644 index 00000000..2c5fbfe2 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/Makefile @@ -0,0 +1,10 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo diff --git a/vendor/github.com/libp2p/go-testutil/README.md b/vendor/github.com/libp2p/go-testutil/README.md new file mode 100644 index 00000000..247d9624 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/README.md @@ -0,0 +1,34 @@ +# go-testutil + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-testutil/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-testutil?branch=master) +[![Travis CI](https://travis-ci.org/libp2p/go-testutil.svg?branch=master)](https://travis-ci.org/libp2p/go-testutil) + +> A collection of testing utilities for ipfs and libp2p + +## Install + +```sh +go get github.com/libp2p/go-testutil +``` + +## Usage + +See the [documentation](https://godoc.org/github.com/libp2p/go-testutil). + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-testutil/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +[MIT](LICENSE) © Protocol Labs, Inc. diff --git a/vendor/github.com/libp2p/go-testutil/codecov.yml b/vendor/github.com/libp2p/go-testutil/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-testutil/gen.go b/vendor/github.com/libp2p/go-testutil/gen.go new file mode 100644 index 00000000..18bb6fe2 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/gen.go @@ -0,0 +1,154 @@ +package testutil + +import ( + "bytes" + "errors" + "fmt" + "math/rand" + "sync" + "testing" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + ptest "github.com/libp2p/go-libp2p-peer/test" + ma "github.com/multiformats/go-multiaddr" + mh "github.com/multiformats/go-multihash" +) + +// ZeroLocalTCPAddress is the "zero" tcp local multiaddr. This means: +// /ip4/127.0.0.1/tcp/0 +var ZeroLocalTCPAddress ma.Multiaddr + +func init() { + // initialize ZeroLocalTCPAddress + maddr, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/0") + if err != nil { + panic(err) + } + ZeroLocalTCPAddress = maddr +} + +func RandTestKeyPair(bits int) (ci.PrivKey, ci.PubKey, error) { + return ptest.RandTestKeyPair(bits) +} + +func SeededTestKeyPair(seed int64) (ci.PrivKey, ci.PubKey, error) { + return ptest.SeededTestKeyPair(seed) +} + +// RandPeerID generates random "valid" peer IDs. it does not NEED to generate +// keys because it is as if we lost the key right away. fine to read randomness +// and hash it. to generate proper keys and corresponding PeerID, use: +// sk, pk, _ := testutil.RandKeyPair() +// id, _ := peer.IDFromPublicKey(pk) +func RandPeerID() (peer.ID, error) { + buf := make([]byte, 16) + rand.Read(buf) + h, _ := mh.Sum(buf, mh.SHA2_256, -1) + return peer.ID(h), nil +} + +func RandPeerIDFatal(t testing.TB) peer.ID { + p, err := RandPeerID() + if err != nil { + t.Fatal(err) + } + return p +} + +// RandLocalTCPAddress returns a random multiaddr. it suppresses errors +// for nice composability-- do check the address isn't nil. +// +// NOTE: for real network tests, use ZeroLocalTCPAddress so the kernel +// assigns an unused TCP port. otherwise you may get clashes. This +// function remains here so that p2p/net/mock (which does not touch the +// real network) can assign different addresses to peers. +func RandLocalTCPAddress() ma.Multiaddr { + + // chances are it will work out, but it **might** fail if the port is in use + // most ports above 10000 aren't in use by long running processes, so yay. + // (maybe there should be a range of "loopback" ports that are guaranteed + // to be open for the process, but naturally can only talk to self.) + + lastPort.Lock() + if lastPort.port == 0 { + lastPort.port = 10000 + SeededRand.Intn(50000) + } + port := lastPort.port + lastPort.port++ + lastPort.Unlock() + + addr := fmt.Sprintf("/ip4/127.0.0.1/tcp/%d", port) + maddr, _ := ma.NewMultiaddr(addr) + return maddr +} + +var lastPort = struct { + port int + sync.Mutex +}{} + +// PeerNetParams is a struct to bundle together the four things +// you need to run a connection with a peer: id, 2keys, and addr. +type PeerNetParams struct { + ID peer.ID + PrivKey ci.PrivKey + PubKey ci.PubKey + Addr ma.Multiaddr +} + +func (p *PeerNetParams) checkKeys() error { + if !p.ID.MatchesPrivateKey(p.PrivKey) { + return errors.New("p.ID does not match p.PrivKey") + } + + if !p.ID.MatchesPublicKey(p.PubKey) { + return errors.New("p.ID does not match p.PubKey") + } + + buf := new(bytes.Buffer) + buf.Write([]byte("hello world. this is me, I swear.")) + b := buf.Bytes() + + sig, err := p.PrivKey.Sign(b) + if err != nil { + return fmt.Errorf("sig signing failed: %s", err) + } + + sigok, err := p.PubKey.Verify(b, sig) + if err != nil { + return fmt.Errorf("sig verify failed: %s", err) + } + if !sigok { + return fmt.Errorf("sig verify failed: sig invalid") + } + + return nil // ok. move along. +} + +func RandPeerNetParamsOrFatal(t *testing.T) PeerNetParams { + p, err := RandPeerNetParams() + if err != nil { + t.Fatal(err) + return PeerNetParams{} // TODO return nil + } + return *p +} + +func RandPeerNetParams() (*PeerNetParams, error) { + var p PeerNetParams + var err error + p.Addr = ZeroLocalTCPAddress + p.PrivKey, p.PubKey, err = RandTestKeyPair(1024) + if err != nil { + return nil, err + } + p.ID, err = peer.IDFromPublicKey(p.PubKey) + if err != nil { + return nil, err + } + if err := p.checkKeys(); err != nil { + return nil, err + } + return &p, nil +} diff --git a/vendor/github.com/libp2p/go-testutil/go.mod b/vendor/github.com/libp2p/go-testutil/go.mod new file mode 100644 index 00000000..78fb4fec --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/go.mod @@ -0,0 +1,8 @@ +module github.com/libp2p/go-testutil + +require ( + github.com/libp2p/go-libp2p-crypto v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multihash v0.0.1 +) diff --git a/vendor/github.com/libp2p/go-testutil/go.sum b/vendor/github.com/libp2p/go-testutil/go.sum new file mode 100644 index 00000000..6d30cad9 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/go.sum @@ -0,0 +1,58 @@ +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495 h1:6IyqGr3fnd0tM3YxipK27TUskaOVUjU2nG45yzwcQKY= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-testutil/identity.go b/vendor/github.com/libp2p/go-testutil/identity.go new file mode 100644 index 00000000..de096d2e --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/identity.go @@ -0,0 +1,60 @@ +package testutil + +import ( + "testing" + + ci "github.com/libp2p/go-libp2p-crypto" + peer "github.com/libp2p/go-libp2p-peer" + ma "github.com/multiformats/go-multiaddr" +) + +type Identity interface { + Address() ma.Multiaddr + ID() peer.ID + PrivateKey() ci.PrivKey + PublicKey() ci.PubKey +} + +// TODO add a cheaper way to generate identities + +func RandIdentity() (Identity, error) { + p, err := RandPeerNetParams() + if err != nil { + return nil, err + } + return &identity{*p}, nil +} + +func RandIdentityOrFatal(t *testing.T) Identity { + p, err := RandPeerNetParams() + if err != nil { + t.Fatal(err) + } + return &identity{*p} +} + +// identity is a temporary shim to delay binding of PeerNetParams. +type identity struct { + PeerNetParams +} + +func (p *identity) ID() peer.ID { + return p.PeerNetParams.ID +} + +func (p *identity) Address() ma.Multiaddr { + return p.Addr +} + +func (p *identity) PrivateKey() ci.PrivKey { + return p.PrivKey +} + +func (p *identity) PublicKey() ci.PubKey { + return p.PubKey +} + +// NewIdentity constructs a new identity object with specific parameters +func NewIdentity(ID peer.ID, addr ma.Multiaddr, privk ci.PrivKey, pubk ci.PubKey) Identity { + return &identity{PeerNetParams{ID: ID, Addr: addr, PrivKey: privk, PubKey: pubk}} +} diff --git a/vendor/github.com/libp2p/go-testutil/latency_config.go b/vendor/github.com/libp2p/go-testutil/latency_config.go new file mode 100644 index 00000000..5628d9ed --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/latency_config.go @@ -0,0 +1,48 @@ +package testutil + +import "time" + +type LatencyConfig struct { + BlockstoreLatency time.Duration + NetworkLatency time.Duration + RoutingLatency time.Duration +} + +func (c LatencyConfig) AllInstantaneous() LatencyConfig { + // Could use a zero value but whatever. Consistency of interface + c.NetworkLatency = 0 + c.RoutingLatency = 0 + c.BlockstoreLatency = 0 + return c +} + +func (c LatencyConfig) NetworkNYtoSF() LatencyConfig { + c.NetworkLatency = 20 * time.Millisecond + return c +} + +func (c LatencyConfig) NetworkIntraDatacenter2014() LatencyConfig { + c.NetworkLatency = 250 * time.Microsecond + return c +} + +func (c LatencyConfig) BlockstoreFastSSD2014() LatencyConfig { + const iops = 100000 + c.BlockstoreLatency = (1 / iops) * time.Second + return c +} + +func (c LatencyConfig) BlockstoreSlowSSD2014() LatencyConfig { + c.BlockstoreLatency = 150 * time.Microsecond + return c +} + +func (c LatencyConfig) Blockstore7200RPM() LatencyConfig { + c.BlockstoreLatency = 8 * time.Millisecond + return c +} + +func (c LatencyConfig) RoutingSlow() LatencyConfig { + c.RoutingLatency = 200 * time.Millisecond + return c +} diff --git a/vendor/github.com/libp2p/go-testutil/package.json b/vendor/github.com/libp2p/go-testutil/package.json new file mode 100644 index 00000000..b81b72f0 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/package.json @@ -0,0 +1,47 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-testutil" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-testutil", + "goversion": "1.7" + }, + "gxDependencies": [ + { + "hash": "QmbkT7eMTyXfpeyB3ZMxxcxg7XH8t6uXp49jqzz4HB7BGF", + "name": "go-log", + "version": "1.5.9" + }, + { + "author": "whyrusleeping", + "hash": "QmTW4SdgBWq9GjsBsHeUx8WuGxzhgzAf88UMH2w62PC8yK", + "name": "go-libp2p-crypto", + "version": "2.0.7" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + }, + { + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "multiformats", + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + } + ], + "gxVersion": "0.8.0", + "language": "go", + "license": "MIT", + "name": "go-testutil", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.2.19" +} + diff --git a/vendor/github.com/libp2p/go-testutil/rand.go b/vendor/github.com/libp2p/go-testutil/rand.go new file mode 100644 index 00000000..9630bc14 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/rand.go @@ -0,0 +1,36 @@ +package testutil + +import ( + "math/rand" + "sync" + "time" +) + +var SeededRand *rand.Rand + +func init() { + SeededRand = NewSeededRand(time.Now().UTC().UnixNano()) +} + +func NewSeededRand(seed int64) *rand.Rand { + src := rand.NewSource(seed) + return rand.New(&LockedRandSource{src: src}) +} + +type LockedRandSource struct { + lk sync.Mutex + src rand.Source +} + +func (r *LockedRandSource) Int63() (n int64) { + r.lk.Lock() + n = r.src.Int63() + r.lk.Unlock() + return +} + +func (r *LockedRandSource) Seed(seed int64) { + r.lk.Lock() + r.src.Seed(seed) + r.lk.Unlock() +} diff --git a/vendor/github.com/libp2p/go-testutil/util.go b/vendor/github.com/libp2p/go-testutil/util.go new file mode 100644 index 00000000..ca27ea03 --- /dev/null +++ b/vendor/github.com/libp2p/go-testutil/util.go @@ -0,0 +1,21 @@ +package testutil + +import ( + "context" + "time" +) + +// WaitFor waits for `check` to stop returning an error or for the context to be +// canceled (whichever comes first). +func WaitFor(ctx context.Context, check func() error) error { + for { + time.Sleep(time.Millisecond * 10) + err := check() + if err == nil { + return nil + } + if ctx.Err() != nil { + return err + } + } +} diff --git a/vendor/github.com/libp2p/go-ws-transport/.travis.yml b/vendor/github.com/libp2p/go-ws-transport/.travis.yml new file mode 100644 index 00000000..923835bc --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/.travis.yml @@ -0,0 +1,31 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - $HOME/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/libp2p/go-ws-transport/Makefile b/vendor/github.com/libp2p/go-ws-transport/Makefile new file mode 100644 index 00000000..2c5fbfe2 --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/Makefile @@ -0,0 +1,10 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo diff --git a/vendor/github.com/libp2p/go-ws-transport/README.md b/vendor/github.com/libp2p/go-ws-transport/README.md new file mode 100644 index 00000000..13761e21 --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/README.md @@ -0,0 +1,35 @@ +# go-ws-transport + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/libp2p/go-ws-transport?status.svg)](https://godoc.org/github.com/libp2p/go-ws-transport) +[![Coverage Status](https://coveralls.io/repos/github/libp2p/go-ws-transport/badge.svg?branch=master)](https://coveralls.io/github/libp2p/go-ws-transport?branch=master) +[![Build Status](https://travis-ci.org/libp2p/go-ws-transport.svg?branch=master)](https://travis-ci.org/libp2p/go-ws-transport) + +> go-libp2p websocket transport + +## Install + +```sh +> gx install --global +> gx-go rewrite +``` + +## Usage + + +## Contribute + +Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-ws-transport/issues)! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +### Want to hack on IPFS? + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +MIT diff --git a/vendor/github.com/libp2p/go-ws-transport/addrs.go b/vendor/github.com/libp2p/go-ws-transport/addrs.go new file mode 100644 index 00000000..e5dbc46e --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/addrs.go @@ -0,0 +1,73 @@ +package websocket + +import ( + "fmt" + "net" + "net/url" + + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +// Addr is an implementation of net.Addr for WebSocket. +type Addr struct { + *url.URL +} + +var _ net.Addr = (*Addr)(nil) + +// Network returns the network type for a WebSocket, "websocket". +func (addr *Addr) Network() string { + return "websocket" +} + +// NewAddr creates a new Addr using the given host string +func NewAddr(host string) *Addr { + return &Addr{ + URL: &url.URL{ + Host: host, + }, + } +} + +func ConvertWebsocketMultiaddrToNetAddr(maddr ma.Multiaddr) (net.Addr, error) { + _, host, err := manet.DialArgs(maddr) + if err != nil { + return nil, err + } + + return NewAddr(host), nil +} + +func ParseWebsocketNetAddr(a net.Addr) (ma.Multiaddr, error) { + wsa, ok := a.(*Addr) + if !ok { + return nil, fmt.Errorf("not a websocket address") + } + + tcpaddr, err := net.ResolveTCPAddr("tcp", wsa.Host) + if err != nil { + return nil, err + } + + tcpma, err := manet.FromNetAddr(tcpaddr) + if err != nil { + return nil, err + } + + wsma, err := ma.NewMultiaddr("/ws") + if err != nil { + return nil, err + } + + return tcpma.Encapsulate(wsma), nil +} + +func parseMultiaddr(a ma.Multiaddr) (string, error) { + _, host, err := manet.DialArgs(a) + if err != nil { + return "", err + } + + return "ws://" + host, nil +} diff --git a/vendor/github.com/libp2p/go-ws-transport/codecov.yml b/vendor/github.com/libp2p/go-ws-transport/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/libp2p/go-ws-transport/conn.go b/vendor/github.com/libp2p/go-ws-transport/conn.go new file mode 100644 index 00000000..b63a28a9 --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/conn.go @@ -0,0 +1,129 @@ +package websocket + +import ( + "io" + "net" + "sync" + "time" + + ws "github.com/gorilla/websocket" +) + +// GracefulCloseTimeout is the time to wait trying to gracefully close a +// connection before simply cutting it. +var GracefulCloseTimeout = 100 * time.Millisecond + +var _ net.Conn = (*Conn)(nil) + +// Conn implements net.Conn interface for gorilla/websocket. +type Conn struct { + *ws.Conn + DefaultMessageType int + reader io.Reader + closeOnce sync.Once +} + +func (c *Conn) Read(b []byte) (int, error) { + if c.reader == nil { + if err := c.prepNextReader(); err != nil { + return 0, err + } + } + + for { + n, err := c.reader.Read(b) + switch err { + case io.EOF: + c.reader = nil + + if n > 0 { + return n, nil + } + + if err := c.prepNextReader(); err != nil { + return 0, err + } + + // explicitly looping + default: + return n, err + } + } +} + +func (c *Conn) prepNextReader() error { + t, r, err := c.Conn.NextReader() + if err != nil { + if wserr, ok := err.(*ws.CloseError); ok { + if wserr.Code == 1000 || wserr.Code == 1005 { + return io.EOF + } + } + return err + } + + if t == ws.CloseMessage { + return io.EOF + } + + c.reader = r + return nil +} + +func (c *Conn) Write(b []byte) (n int, err error) { + if err := c.Conn.WriteMessage(c.DefaultMessageType, b); err != nil { + return 0, err + } + + return len(b), nil +} + +// Close closes the connection. Only the first call to Close will receive the +// close error, subsequent and concurrent calls will return nil. +// This method is thread-safe. +func (c *Conn) Close() error { + var err error + c.closeOnce.Do(func() { + err1 := c.Conn.WriteControl(ws.CloseMessage, nil, time.Now().Add(GracefulCloseTimeout)) + err2 := c.Conn.Close() + switch { + case err1 != nil: + err = err1 + case err2 != nil: + err = err2 + } + }) + return err +} + +func (c *Conn) LocalAddr() net.Addr { + return NewAddr(c.Conn.LocalAddr().String()) +} + +func (c *Conn) RemoteAddr() net.Addr { + return NewAddr(c.Conn.RemoteAddr().String()) +} + +func (c *Conn) SetDeadline(t time.Time) error { + if err := c.SetReadDeadline(t); err != nil { + return err + } + + return c.SetWriteDeadline(t) +} + +func (c *Conn) SetReadDeadline(t time.Time) error { + return c.Conn.SetReadDeadline(t) +} + +func (c *Conn) SetWriteDeadline(t time.Time) error { + return c.Conn.SetWriteDeadline(t) +} + +// NewConn creates a Conn given a regular gorilla/websocket Conn. +func NewConn(raw *ws.Conn) *Conn { + return &Conn{ + Conn: raw, + DefaultMessageType: ws.BinaryMessage, + } +} diff --git a/vendor/github.com/libp2p/go-ws-transport/go.mod b/vendor/github.com/libp2p/go-ws-transport/go.mod new file mode 100644 index 00000000..9fb1001c --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/go.mod @@ -0,0 +1,13 @@ +module github.com/libp2p/go-ws-transport + +require ( + github.com/gorilla/websocket v1.4.0 + github.com/libp2p/go-conn-security v0.0.1 + github.com/libp2p/go-libp2p-peer v0.0.1 + github.com/libp2p/go-libp2p-transport v0.0.4 + github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-net v0.0.1 + github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible + github.com/whyrusleeping/mafmt v1.2.8 +) diff --git a/vendor/github.com/libp2p/go-ws-transport/go.sum b/vendor/github.com/libp2p/go-ws-transport/go.sum new file mode 100644 index 00000000..d01c0324 --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/go.sum @@ -0,0 +1,152 @@ +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2 h1:vhC1OXXiT9R2pczegwz6moDvuRpggaroAXhPIseh57A= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8 h1:bspPhN+oKYFk5fcGNuQzp6IGzYQSenLEgH3s6jkXrWw= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= +github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= +github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= +github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q= +github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY= +github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= +github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8= +github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= +github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= +github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= +github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= +github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= +github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= +github.com/libp2p/go-maddr-filter v0.0.1 h1:apvYTg0aIxxQyBX+XHKOR+0+lYhGs1Yv+JmTH9nyl5I= +github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-mplex v0.0.1 h1:dn2XGSrUxLtz3/8u85bGrwhUEKPX8MOF3lpmcWBZCWc= +github.com/libp2p/go-mplex v0.0.1/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-stream-muxer v0.0.1 h1:Ce6e2Pyu+b5MC1k3eeFtAax0pW4gc6MosYSLV05UeLw= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= +github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible/go.mod h1:34LEDbeKFZInPUrAG+bjuJmUXONGdEFW7XL0SpTY1y4= +github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b h1:+/WWzjwW6gidDJnMKWLKLX1gxn7irUTF1fLpQovfQ5M= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/libp2p/go-ws-transport/listener.go b/vendor/github.com/libp2p/go-ws-transport/listener.go new file mode 100644 index 00000000..437be989 --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/listener.go @@ -0,0 +1,62 @@ +package websocket + +import ( + "fmt" + "net" + "net/http" + + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" +) + +type listener struct { + net.Listener + + laddr ma.Multiaddr + + closed chan struct{} + incoming chan *Conn +} + +func (l *listener) serve() { + defer close(l.closed) + _ = http.Serve(l.Listener, l) +} + +func (l *listener) ServeHTTP(w http.ResponseWriter, r *http.Request) { + c, err := upgrader.Upgrade(w, r, nil) + if err != nil { + http.Error(w, "Failed to upgrade websocket", 400) + return + } + + select { + case l.incoming <- NewConn(c): + case <-l.closed: + c.Close() + } + // The connection has been hijacked, it's safe to return. +} + +func (l *listener) Accept() (manet.Conn, error) { + select { + case c, ok := <-l.incoming: + if !ok { + return nil, fmt.Errorf("listener is closed") + } + + mnc, err := manet.WrapNetConn(c) + if err != nil { + c.Close() + return nil, err + } + + return mnc, nil + case <-l.closed: + return nil, fmt.Errorf("listener is closed") + } +} + +func (l *listener) Multiaddr() ma.Multiaddr { + return l.laddr +} diff --git a/vendor/github.com/libp2p/go-ws-transport/package.json b/vendor/github.com/libp2p/go-ws-transport/package.json new file mode 100644 index 00000000..4be1f82d --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/package.json @@ -0,0 +1,72 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/libp2p/go-ws-transport/issues" + }, + "gx": { + "dvcsimport": "github.com/libp2p/go-ws-transport" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "Qmc85NSvmSG4Frn9Vb2cBc1rMyULH6D3TNVEfCzSKoUpip", + "name": "go-multiaddr-net", + "version": "1.7.2" + }, + { + "author": "whyrusleeping", + "hash": "QmUrZZavcArYChpibtP8KgQXsAEpvgzUk73B2oj3HLbWc4", + "name": "mafmt", + "version": "1.2.11" + }, + { + "author": "whyrusleeping", + "hash": "QmNQWMWWBmkAcaVEspSNwYB95axzKFhYTdqZtABA2zXoPu", + "name": "go-libp2p-transport", + "version": "3.0.27" + }, + { + "author": "gorilla", + "hash": "QmZH5VXfAJouGMyCCHTRPGCT3e5MG9Lu78Ln3YAYW1XTts", + "name": "websocket", + "version": "0.0.1" + }, + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "Stebalien", + "hash": "QmPRoHqULmP4MuKAN5EFaJ64MLpeMY8cny2318xDBDmmkp", + "name": "go-conn-security", + "version": "0.1.28" + }, + { + "author": "whyrusleeping", + "hash": "QmaJvNdDccVkTELQLCGXWrLxgaQ14aMdhzZx1EiHPXKbDc", + "name": "go-smux-multiplex", + "version": "3.0.19" + }, + { + "author": "steb", + "hash": "QmeqC5shQjEBRG9B8roZqQCJ9xb7Pq6AbWxJFMyLgqBBWh", + "name": "go-libp2p-transport-upgrader", + "version": "0.1.28" + }, + { + "author": "whyrusleeping", + "hash": "QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h", + "name": "go-libp2p-peer", + "version": "3.1.2" + } + ], + "gxVersion": "0.4.0", + "language": "go", + "license": "MIT", + "name": "go-ws-transport", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.27" +} + diff --git a/vendor/github.com/libp2p/go-ws-transport/websocket.go b/vendor/github.com/libp2p/go-ws-transport/websocket.go new file mode 100644 index 00000000..681d6764 --- /dev/null +++ b/vendor/github.com/libp2p/go-ws-transport/websocket.go @@ -0,0 +1,158 @@ +// Package websocket implements a websocket based transport for go-libp2p. +package websocket + +import ( + "context" + "fmt" + "net" + "net/http" + "net/url" + + ws "github.com/gorilla/websocket" + peer "github.com/libp2p/go-libp2p-peer" + tpt "github.com/libp2p/go-libp2p-transport" + tptu "github.com/libp2p/go-libp2p-transport-upgrader" + ma "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" + mafmt "github.com/whyrusleeping/mafmt" +) + +// WsProtocol is the multiaddr protocol definition for this transport. +var WsProtocol = ma.Protocol{ + Code: 477, + Name: "ws", + VCode: ma.CodeToVarint(477), +} + +// WsFmt is multiaddr formatter for WsProtocol +var WsFmt = mafmt.And(mafmt.TCP, mafmt.Base(WsProtocol.Code)) + +// WsCodec is the multiaddr-net codec definition for the websocket transport +var WsCodec = &manet.NetCodec{ + NetAddrNetworks: []string{"websocket"}, + ProtocolName: "ws", + ConvertMultiaddr: ConvertWebsocketMultiaddrToNetAddr, + ParseNetAddr: ParseWebsocketNetAddr, +} + +// Default gorilla upgrader +var upgrader = ws.Upgrader{ + // Allow requests from *all* origins. + CheckOrigin: func(r *http.Request) bool { + return true + }, +} + +func init() { + err := ma.AddProtocol(WsProtocol) + if err != nil { + panic(fmt.Errorf("error registering websocket protocol: %s", err)) + } + + manet.RegisterNetCodec(WsCodec) +} + +// WebsocketTransport is the actual go-libp2p transport +type WebsocketTransport struct { + Upgrader *tptu.Upgrader +} + +func New(u *tptu.Upgrader) *WebsocketTransport { + return &WebsocketTransport{u} +} + +var _ tpt.Transport = (*WebsocketTransport)(nil) + +func (t *WebsocketTransport) CanDial(a ma.Multiaddr) bool { + return WsFmt.Matches(a) +} + +func (t *WebsocketTransport) Protocols() []int { + return []int{WsProtocol.Code} +} + +func (t *WebsocketTransport) Proxy() bool { + return false +} + +func (t *WebsocketTransport) maDial(ctx context.Context, raddr ma.Multiaddr) (manet.Conn, error) { + wsurl, err := parseMultiaddr(raddr) + if err != nil { + return nil, err + } + + wscon, _, err := ws.DefaultDialer.Dial(wsurl, nil) + if err != nil { + return nil, err + } + + mnc, err := manet.WrapNetConn(NewConn(wscon)) + if err != nil { + wscon.Close() + return nil, err + } + return mnc, nil +} + +func (t *WebsocketTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.Conn, error) { + macon, err := t.maDial(ctx, raddr) + if err != nil { + return nil, err + } + return t.Upgrader.UpgradeOutbound(ctx, t, macon, p) +} + +func (t *WebsocketTransport) maListen(a ma.Multiaddr) (manet.Listener, error) { + lnet, lnaddr, err := manet.DialArgs(a) + if err != nil { + return nil, err + } + + nl, err := net.Listen(lnet, lnaddr) + if err != nil { + return nil, err + } + + u, err := url.Parse("http://" + nl.Addr().String()) + if err != nil { + nl.Close() + return nil, err + } + + malist, err := t.wrapListener(nl, u) + if err != nil { + nl.Close() + return nil, err + } + + go malist.serve() + + return malist, nil +} + +func (t *WebsocketTransport) Listen(a ma.Multiaddr) (tpt.Listener, error) { + malist, err := t.maListen(a) + if err != nil { + return nil, err + } + return t.Upgrader.UpgradeListener(t, malist), nil +} + +func (t *WebsocketTransport) wrapListener(l net.Listener, origin *url.URL) (*listener, error) { + laddr, err := manet.FromNetAddr(l.Addr()) + if err != nil { + return nil, err + } + wsma, err := ma.NewMultiaddr("/ws") + if err != nil { + return nil, err + } + laddr = laddr.Encapsulate(wsma) + + return &listener{ + laddr: laddr, + Listener: l, + incoming: make(chan *Conn), + closed: make(chan struct{}), + }, nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/.editorconfig b/vendor/github.com/lucas-clemente/quic-go/.editorconfig new file mode 100644 index 00000000..538ba2b2 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/.editorconfig @@ -0,0 +1,5 @@ +root = true + +[*] +indent_style = tab +indent_size = 2 diff --git a/vendor/github.com/lucas-clemente/quic-go/.gitignore b/vendor/github.com/lucas-clemente/quic-go/.gitignore new file mode 100644 index 00000000..040b55ac --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/.gitignore @@ -0,0 +1,3 @@ +debug +debug.test +main diff --git a/vendor/github.com/lucas-clemente/quic-go/.golangci.yml b/vendor/github.com/lucas-clemente/quic-go/.golangci.yml new file mode 100644 index 00000000..eb9de2f3 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/.golangci.yml @@ -0,0 +1,25 @@ +run: + skip-files: + - h2quic/response_writer_closenotifier.go + - internal/handshake/unsafe_test.go + +linters-settings: + misspell: + ignore-words: + - ect + +linters: + disable-all: true + enable: + - deadcode + - goconst + - goimports + - gosimple + - ineffassign + - misspell + - staticcheck + - structcheck + - unconvert + - unused + - varcheck + - vet diff --git a/vendor/github.com/lucas-clemente/quic-go/.travis.yml b/vendor/github.com/lucas-clemente/quic-go/.travis.yml new file mode 100644 index 00000000..a57287e6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/.travis.yml @@ -0,0 +1,39 @@ +dist: trusty +group: travis_latest + +language: go + +go: + - "1.12.x" + +# first part of the GOARCH workaround +# setting the GOARCH directly doesn't work, since the value will be overwritten later +# so set it to a temporary environment variable first +env: + global: + - TIMESCALE_FACTOR=20 + - GO111MODULE=on + matrix: + - TRAVIS_GOARCH=amd64 TESTMODE=lint + - TRAVIS_GOARCH=amd64 TESTMODE=unit + - TRAVIS_GOARCH=amd64 TESTMODE=integration + - TRAVIS_GOARCH=386 TESTMODE=unit + - TRAVIS_GOARCH=386 TESTMODE=integration + + +# second part of the GOARCH workaround +# now actually set the GOARCH env variable to the value of the temporary variable set earlier +before_install: + - go get golang.org/x/tools/cmd/cover + - go get github.com/onsi/ginkgo/ginkgo + - go get github.com/onsi/gomega + - export GOARCH=$TRAVIS_GOARCH + - go env # for debugging + - "export DISPLAY=:99.0" + - "Xvfb $DISPLAY &> /dev/null &" + +script: + - .travis/script.sh + +after_success: + - .travis/after_success.sh diff --git a/vendor/github.com/lucas-clemente/quic-go/Changelog.md b/vendor/github.com/lucas-clemente/quic-go/Changelog.md new file mode 100644 index 00000000..47b115dc --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/Changelog.md @@ -0,0 +1,52 @@ +# Changelog + +## v0.11.0 (2019-04-05) + +- Drop support for gQUIC. For qQUIC support, please switch to the *gquic* branch. +- Implement QUIC WG draft-19. +- Use [qtls](https://github.com/marten-seemann/qtls) for TLS 1.3. +- Return a `tls.ConnectionState` from `quic.Session.ConnectionState()`. +- Remove the error return values from `quic.Stream.CancelRead()` and `quic.Stream.CancelWrite()` + +## v0.10.0 (2018-08-28) + +- Add support for QUIC 44, drop support for QUIC 42. + +## v0.9.0 (2018-08-15) + +- Add a `quic.Config` option for the length of the connection ID (for IETF QUIC). +- Split Session.Close into one method for regular closing and one for closing with an error. + +## v0.8.0 (2018-06-26) + +- Add support for unidirectional streams (for IETF QUIC). +- Add a `quic.Config` option for the maximum number of incoming streams. +- Add support for QUIC 42 and 43. +- Add dial functions that use a context. +- Multiplex clients on a net.PacketConn, when using Dial(conn). + +## v0.7.0 (2018-02-03) + +- The lower boundary for packets included in ACKs is now derived, and the value sent in STOP_WAITING frames is ignored. +- Remove `DialNonFWSecure` and `DialAddrNonFWSecure`. +- Expose the `ConnectionState` in the `Session` (experimental API). +- Implement packet pacing. + +## v0.6.0 (2017-12-12) + +- Add support for QUIC 39, drop support for QUIC 35 - 37 +- Added `quic.Config` options for maximal flow control windows +- Add a `quic.Config` option for QUIC versions +- Add a `quic.Config` option to request omission of the connection ID from a server +- Add a `quic.Config` option to configure the source address validation +- Add a `quic.Config` option to configure the handshake timeout +- Add a `quic.Config` option to configure the idle timeout +- Add a `quic.Config` option to configure keep-alive +- Rename the STK to Cookie +- Implement `net.Conn`-style deadlines for streams +- Remove the `tls.Config` from the `quic.Config`. The `tls.Config` must now be passed to the `Dial` and `Listen` functions as a separate parameter. See the [Godoc](https://godoc.org/github.com/lucas-clemente/quic-go) for details. +- Changed the log level environment variable to only accept strings ("DEBUG", "INFO", "ERROR"), see [the wiki](https://github.com/lucas-clemente/quic-go/wiki/Logging) for more details. +- Rename the `h2quic.QuicRoundTripper` to `h2quic.RoundTripper` +- Changed `h2quic.Server.Serve()` to accept a `net.PacketConn` +- Drop support for Go 1.7 and 1.8. +- Various bugfixes diff --git a/vendor/github.com/lucas-clemente/quic-go/LICENSE b/vendor/github.com/lucas-clemente/quic-go/LICENSE new file mode 100644 index 00000000..51378bef --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 the quic-go authors & Google, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/lucas-clemente/quic-go/README.md b/vendor/github.com/lucas-clemente/quic-go/README.md new file mode 100644 index 00000000..19f987a4 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/README.md @@ -0,0 +1,68 @@ +# A QUIC implementation in pure Go + + + +[![Godoc Reference](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](https://godoc.org/github.com/lucas-clemente/quic-go) +[![Travis Build Status](https://img.shields.io/travis/lucas-clemente/quic-go/master.svg?style=flat-square&label=Travis+build)](https://travis-ci.org/lucas-clemente/quic-go) +[![CircleCI Build Status](https://img.shields.io/circleci/project/github/lucas-clemente/quic-go.svg?style=flat-square&label=CircleCI+build)](https://circleci.com/gh/lucas-clemente/quic-go) +[![Windows Build Status](https://img.shields.io/appveyor/ci/lucas-clemente/quic-go/master.svg?style=flat-square&label=windows+build)](https://ci.appveyor.com/project/lucas-clemente/quic-go/branch/master) +[![Code Coverage](https://img.shields.io/codecov/c/github/lucas-clemente/quic-go/master.svg?style=flat-square)](https://codecov.io/gh/lucas-clemente/quic-go/) + +quic-go is an implementation of the [QUIC](https://en.wikipedia.org/wiki/QUIC) protocol in Go. It roughly implements the [IETF QUIC draft](https://github.com/quicwg/base-drafts), although we don't fully support any of the draft versions at the moment. + +## Version compatibility + +Since quic-go is under active development, there's no guarantee that two builds of different commits are interoperable. The QUIC version used in the *master* branch is just a placeholder, and should not be considered stable. + +If you want to use quic-go as a library in other projects, please consider using a [tagged release](https://github.com/lucas-clemente/quic-go/releases). These releases expose [experimental QUIC versions](https://github.com/quicwg/base-drafts/wiki/QUIC-Versions), which are guaranteed to be stable. + +## Google QUIC + +quic-go used to support both the QUIC versions supported by Google Chrome and QUIC as deployed on Google's servers, as well as IETF QUIC. Due to the divergence of the two protocols, we decided to not support both versions any more. + +The *master* branch **only** supports IETF QUIC. For Google QUIC support, please refer to the [gquic branch](https://github.com/lucas-clemente/quic-go/tree/gquic). + +## Guides + +We currently support Go 1.12+. + +Installing and updating dependencies: + + go get -t -u ./... + +Running tests: + + go test ./... + +### HTTP mapping + +We're currently not implementing the HTTP mapping as described in the [QUIC over HTTP draft](https://quicwg.org/base-drafts/draft-ietf-quic-http.html). The HTTP mapping here is a leftover from Google QUIC. + +### QUIC without HTTP/2 + +Take a look at [this echo example](example/echo/echo.go). + +## Usage + +### As a server + +See the [example server](example/main.go). Starting a QUIC server is very similar to the standard lib http in go: + +```go +http.Handle("/", http.FileServer(http.Dir(wwwDir))) +h2quic.ListenAndServeQUIC("localhost:4242", "/path/to/cert/chain.pem", "/path/to/privkey.pem", nil) +``` + +### As a client + +See the [example client](example/client/main.go). Use a `h2quic.RoundTripper` as a `Transport` in a `http.Client`. + +```go +http.Client{ + Transport: &h2quic.RoundTripper{}, +} +``` + +## Contributing + +We are always happy to welcome new contributors! We have a number of self-contained issues that are suitable for first-time contributors, they are tagged with [help wanted](https://github.com/lucas-clemente/quic-go/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22). If you have any questions, please feel free to reach out by opening an issue or leaving a comment. diff --git a/vendor/github.com/lucas-clemente/quic-go/appveyor.yml b/vendor/github.com/lucas-clemente/quic-go/appveyor.yml new file mode 100644 index 00000000..9ecd2d04 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/appveyor.yml @@ -0,0 +1,34 @@ +version: "{build}" + +os: Windows Server 2012 R2 + +environment: + GOPATH: c:\gopath + CGO_ENABLED: 0 + TIMESCALE_FACTOR: 20 + matrix: + - GOARCH: 386 + - GOARCH: amd64 + +clone_folder: c:\gopath\src\github.com\lucas-clemente\quic-go + +install: + - rmdir c:\go /s /q + - appveyor DownloadFile https://storage.googleapis.com/golang/go1.12.windows-amd64.zip + - 7z x go1.12.windows-amd64.zip -y -oC:\ > NUL + - set PATH=%PATH%;%GOPATH%\bin\windows_%GOARCH%;%GOPATH%\bin + - set GO111MODULE=on + - echo %PATH% + - echo %GOPATH% + - go get github.com/onsi/ginkgo/ginkgo + - go get github.com/onsi/gomega + - go version + - go env + +build_script: + - ginkgo -r -v -randomizeAllSpecs -randomizeSuites -trace -skipPackage benchmark,integrationtests + - ginkgo -randomizeAllSpecs -randomizeSuites -trace benchmark -- -samples=1 + +test: off + +deploy: off diff --git a/vendor/github.com/lucas-clemente/quic-go/buffer_pool.go b/vendor/github.com/lucas-clemente/quic-go/buffer_pool.go new file mode 100644 index 00000000..d6fb7673 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/buffer_pool.go @@ -0,0 +1,75 @@ +package quic + +import ( + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +type packetBuffer struct { + Slice []byte + + // refCount counts how many packets the Slice is used in. + // It doesn't support concurrent use. + // It is > 1 when used for coalesced packet. + refCount int +} + +// Split increases the refCount. +// It must be called when a packet buffer is used for more than one packet, +// e.g. when splitting coalesced packets. +func (b *packetBuffer) Split() { + b.refCount++ +} + +// Decrement decrements the reference counter. +// It doesn't put the buffer back into the pool. +func (b *packetBuffer) Decrement() { + b.refCount-- + if b.refCount < 0 { + panic("negative packetBuffer refCount") + } +} + +// MaybeRelease puts the packet buffer back into the pool, +// if the reference counter already reached 0. +func (b *packetBuffer) MaybeRelease() { + // only put the packetBuffer back if it's not used any more + if b.refCount == 0 { + b.putBack() + } +} + +// Release puts back the packet buffer into the pool. +// It should be called when processing is definitely finished. +func (b *packetBuffer) Release() { + b.Decrement() + if b.refCount != 0 { + panic("packetBuffer refCount not zero") + } + b.putBack() +} + +func (b *packetBuffer) putBack() { + if cap(b.Slice) != int(protocol.MaxReceivePacketSize) { + panic("putPacketBuffer called with packet of wrong size!") + } + bufferPool.Put(b) +} + +var bufferPool sync.Pool + +func getPacketBuffer() *packetBuffer { + buf := bufferPool.Get().(*packetBuffer) + buf.refCount = 1 + buf.Slice = buf.Slice[:protocol.MaxReceivePacketSize] + return buf +} + +func init() { + bufferPool.New = func() interface{} { + return &packetBuffer{ + Slice: make([]byte, 0, protocol.MaxReceivePacketSize), + } + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/client.go b/vendor/github.com/lucas-clemente/quic-go/client.go new file mode 100644 index 00000000..9ede391f --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/client.go @@ -0,0 +1,413 @@ +package quic + +import ( + "context" + "crypto/tls" + "fmt" + "net" + "sync" + + "github.com/lucas-clemente/quic-go/internal/handshake" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type client struct { + mutex sync.Mutex + + conn connection + // If the client is created with DialAddr, we create a packet conn. + // If it is started with Dial, we take a packet conn as a parameter. + createdPacketConn bool + + packetHandlers packetHandlerManager + + versionNegotiated utils.AtomicBool // has the server accepted our version + receivedVersionNegotiationPacket bool + negotiatedVersions []protocol.VersionNumber // the list of versions from the version negotiation packet + + tlsConf *tls.Config + config *Config + + srcConnID protocol.ConnectionID + destConnID protocol.ConnectionID + + initialPacketNumber protocol.PacketNumber + + initialVersion protocol.VersionNumber + version protocol.VersionNumber + + handshakeChan chan struct{} + + session quicSession + + logger utils.Logger +} + +var _ packetHandler = &client{} + +var ( + // make it possible to mock connection ID generation in the tests + generateConnectionID = protocol.GenerateConnectionID + generateConnectionIDForInitial = protocol.GenerateConnectionIDForInitial +) + +// DialAddr establishes a new QUIC connection to a server. +// It uses a new UDP connection and closes this connection when the QUIC session is closed. +// The hostname for SNI is taken from the given address. +func DialAddr( + addr string, + tlsConf *tls.Config, + config *Config, +) (Session, error) { + return DialAddrContext(context.Background(), addr, tlsConf, config) +} + +// DialAddrContext establishes a new QUIC connection to a server using the provided context. +// See DialAddr for details. +func DialAddrContext( + ctx context.Context, + addr string, + tlsConf *tls.Config, + config *Config, +) (Session, error) { + udpAddr, err := net.ResolveUDPAddr("udp", addr) + if err != nil { + return nil, err + } + udpConn, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4zero, Port: 0}) + if err != nil { + return nil, err + } + return dialContext(ctx, udpConn, udpAddr, addr, tlsConf, config, true) +} + +// Dial establishes a new QUIC connection to a server using a net.PacketConn. +// The same PacketConn can be used for multiple calls to Dial and Listen, +// QUIC connection IDs are used for demultiplexing the different connections. +// The host parameter is used for SNI. +func Dial( + pconn net.PacketConn, + remoteAddr net.Addr, + host string, + tlsConf *tls.Config, + config *Config, +) (Session, error) { + return DialContext(context.Background(), pconn, remoteAddr, host, tlsConf, config) +} + +// DialContext establishes a new QUIC connection to a server using a net.PacketConn using the provided context. +// See Dial for details. +func DialContext( + ctx context.Context, + pconn net.PacketConn, + remoteAddr net.Addr, + host string, + tlsConf *tls.Config, + config *Config, +) (Session, error) { + return dialContext(ctx, pconn, remoteAddr, host, tlsConf, config, false) +} + +func dialContext( + ctx context.Context, + pconn net.PacketConn, + remoteAddr net.Addr, + host string, + tlsConf *tls.Config, + config *Config, + createdPacketConn bool, +) (Session, error) { + config = populateClientConfig(config, createdPacketConn) + packetHandlers, err := getMultiplexer().AddConn(pconn, config.ConnectionIDLength, config.StatelessResetKey) + if err != nil { + return nil, err + } + c, err := newClient(pconn, remoteAddr, config, tlsConf, host, createdPacketConn) + if err != nil { + return nil, err + } + c.packetHandlers = packetHandlers + if err := c.dial(ctx); err != nil { + return nil, err + } + return c.session, nil +} + +func newClient( + pconn net.PacketConn, + remoteAddr net.Addr, + config *Config, + tlsConf *tls.Config, + host string, + createdPacketConn bool, +) (*client, error) { + if tlsConf == nil { + tlsConf = &tls.Config{} + } + if tlsConf.ServerName == "" { + var err error + tlsConf.ServerName, _, err = net.SplitHostPort(host) + if err != nil { + return nil, err + } + } + + // check that all versions are actually supported + if config != nil { + for _, v := range config.Versions { + if !protocol.IsValidVersion(v) { + return nil, fmt.Errorf("%s is not a valid QUIC version", v) + } + } + } + + srcConnID, err := generateConnectionID(config.ConnectionIDLength) + if err != nil { + return nil, err + } + destConnID, err := generateConnectionIDForInitial() + if err != nil { + return nil, err + } + c := &client{ + srcConnID: srcConnID, + destConnID: destConnID, + conn: &conn{pconn: pconn, currentAddr: remoteAddr}, + createdPacketConn: createdPacketConn, + tlsConf: tlsConf, + config: config, + version: config.Versions[0], + handshakeChan: make(chan struct{}), + logger: utils.DefaultLogger.WithPrefix("client"), + } + return c, nil +} + +// populateClientConfig populates fields in the quic.Config with their default values, if none are set +// it may be called with nil +func populateClientConfig(config *Config, createdPacketConn bool) *Config { + if config == nil { + config = &Config{} + } + versions := config.Versions + if len(versions) == 0 { + versions = protocol.SupportedVersions + } + + handshakeTimeout := protocol.DefaultHandshakeTimeout + if config.HandshakeTimeout != 0 { + handshakeTimeout = config.HandshakeTimeout + } + idleTimeout := protocol.DefaultIdleTimeout + if config.IdleTimeout != 0 { + idleTimeout = config.IdleTimeout + } + + maxReceiveStreamFlowControlWindow := config.MaxReceiveStreamFlowControlWindow + if maxReceiveStreamFlowControlWindow == 0 { + maxReceiveStreamFlowControlWindow = protocol.DefaultMaxReceiveStreamFlowControlWindow + } + maxReceiveConnectionFlowControlWindow := config.MaxReceiveConnectionFlowControlWindow + if maxReceiveConnectionFlowControlWindow == 0 { + maxReceiveConnectionFlowControlWindow = protocol.DefaultMaxReceiveConnectionFlowControlWindow + } + maxIncomingStreams := config.MaxIncomingStreams + if maxIncomingStreams == 0 { + maxIncomingStreams = protocol.DefaultMaxIncomingStreams + } else if maxIncomingStreams < 0 { + maxIncomingStreams = 0 + } + maxIncomingUniStreams := config.MaxIncomingUniStreams + if maxIncomingUniStreams == 0 { + maxIncomingUniStreams = protocol.DefaultMaxIncomingUniStreams + } else if maxIncomingUniStreams < 0 { + maxIncomingUniStreams = 0 + } + connIDLen := config.ConnectionIDLength + if connIDLen == 0 && !createdPacketConn { + connIDLen = protocol.DefaultConnectionIDLength + } + + return &Config{ + Versions: versions, + HandshakeTimeout: handshakeTimeout, + IdleTimeout: idleTimeout, + ConnectionIDLength: connIDLen, + MaxReceiveStreamFlowControlWindow: maxReceiveStreamFlowControlWindow, + MaxReceiveConnectionFlowControlWindow: maxReceiveConnectionFlowControlWindow, + MaxIncomingStreams: maxIncomingStreams, + MaxIncomingUniStreams: maxIncomingUniStreams, + KeepAlive: config.KeepAlive, + StatelessResetKey: config.StatelessResetKey, + } +} + +func (c *client) dial(ctx context.Context) error { + c.logger.Infof("Starting new connection to %s (%s -> %s), source connection ID %s, destination connection ID %s, version %s", c.tlsConf.ServerName, c.conn.LocalAddr(), c.conn.RemoteAddr(), c.srcConnID, c.destConnID, c.version) + + if err := c.createNewTLSSession(c.version); err != nil { + return err + } + err := c.establishSecureConnection(ctx) + if err == errCloseForRecreating { + return c.dial(ctx) + } + return err +} + +// establishSecureConnection runs the session, and tries to establish a secure connection +// It returns: +// - errCloseForRecreating when the server sends a version negotiation packet +// - any other error that might occur +// - when the connection is forward-secure +func (c *client) establishSecureConnection(ctx context.Context) error { + errorChan := make(chan error, 1) + + go func() { + err := c.session.run() // returns as soon as the session is closed + if err != errCloseForRecreating && c.createdPacketConn { + c.packetHandlers.Close() + } + errorChan <- err + }() + + select { + case <-ctx.Done(): + // The session will send a PeerGoingAway error to the server. + c.session.Close() + return ctx.Err() + case err := <-errorChan: + return err + case <-c.handshakeChan: + // handshake successfully completed + return nil + } +} + +func (c *client) handlePacket(p *receivedPacket) { + if wire.IsVersionNegotiationPacket(p.data) { + go c.handleVersionNegotiationPacket(p) + return + } + + // this is the first packet we are receiving + // since it is not a Version Negotiation Packet, this means the server supports the suggested version + if !c.versionNegotiated.Get() { + c.versionNegotiated.Set(true) + } + + c.session.handlePacket(p) +} + +func (c *client) handleVersionNegotiationPacket(p *receivedPacket) { + c.mutex.Lock() + defer c.mutex.Unlock() + + hdr, _, _, err := wire.ParsePacket(p.data, 0) + if err != nil { + c.logger.Debugf("Error parsing Version Negotiation packet: %s", err) + return + } + + // ignore delayed / duplicated version negotiation packets + if c.receivedVersionNegotiationPacket || c.versionNegotiated.Get() { + c.logger.Debugf("Received a delayed Version Negotiation packet.") + return + } + + for _, v := range hdr.SupportedVersions { + if v == c.version { + // The Version Negotiation packet contains the version that we offered. + // This might be a packet sent by an attacker (or by a terribly broken server implementation). + return + } + } + + c.logger.Infof("Received a Version Negotiation packet. Supported Versions: %s", hdr.SupportedVersions) + newVersion, ok := protocol.ChooseSupportedVersion(c.config.Versions, hdr.SupportedVersions) + if !ok { + c.session.destroy(fmt.Errorf("No compatible QUIC version found. We support %s, server offered %s", c.config.Versions, hdr.SupportedVersions)) + c.logger.Debugf("No compatible QUIC version found.") + return + } + c.receivedVersionNegotiationPacket = true + c.negotiatedVersions = hdr.SupportedVersions + + // switch to negotiated version + c.initialVersion = c.version + c.version = newVersion + + c.logger.Infof("Switching to QUIC version %s. New connection ID: %s", newVersion, c.destConnID) + c.initialPacketNumber = c.session.closeForRecreating() +} + +func (c *client) createNewTLSSession(version protocol.VersionNumber) error { + params := &handshake.TransportParameters{ + InitialMaxStreamDataBidiRemote: protocol.InitialMaxStreamData, + InitialMaxStreamDataBidiLocal: protocol.InitialMaxStreamData, + InitialMaxStreamDataUni: protocol.InitialMaxStreamData, + InitialMaxData: protocol.InitialMaxData, + IdleTimeout: c.config.IdleTimeout, + MaxBidiStreams: uint64(c.config.MaxIncomingStreams), + MaxUniStreams: uint64(c.config.MaxIncomingUniStreams), + AckDelayExponent: protocol.AckDelayExponent, + DisableMigration: true, + } + + c.mutex.Lock() + defer c.mutex.Unlock() + runner := &runner{ + packetHandlerManager: c.packetHandlers, + onHandshakeCompleteImpl: func(_ Session) { close(c.handshakeChan) }, + } + sess, err := newClientSession( + c.conn, + runner, + c.destConnID, + c.srcConnID, + c.config, + c.tlsConf, + c.initialPacketNumber, + params, + c.initialVersion, + c.logger, + c.version, + ) + if err != nil { + return err + } + c.session = sess + c.packetHandlers.Add(c.srcConnID, c) + return nil +} + +func (c *client) Close() error { + c.mutex.Lock() + defer c.mutex.Unlock() + if c.session == nil { + return nil + } + return c.session.Close() +} + +func (c *client) destroy(e error) { + c.mutex.Lock() + defer c.mutex.Unlock() + if c.session == nil { + return + } + c.session.destroy(e) +} + +func (c *client) GetVersion() protocol.VersionNumber { + c.mutex.Lock() + v := c.version + c.mutex.Unlock() + return v +} + +func (c *client) getPerspective() protocol.Perspective { + return protocol.PerspectiveClient +} diff --git a/vendor/github.com/lucas-clemente/quic-go/codecov.yml b/vendor/github.com/lucas-clemente/quic-go/codecov.yml new file mode 100644 index 00000000..f077c1ad --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/codecov.yml @@ -0,0 +1,18 @@ +coverage: + round: nearest + ignore: + - streams_map_incoming_bidi.go + - streams_map_incoming_uni.go + - streams_map_outgoing_bidi.go + - streams_map_outgoing_uni.go + - h2quic/gzipreader.go + - h2quic/response.go + - internal/ackhandler/packet_linkedlist.go + - internal/utils/byteinterval_linkedlist.go + - internal/utils/packetinterval_linkedlist.go + - internal/utils/linkedlist/linkedlist.go + status: + project: + default: + threshold: 0.5 + patch: false diff --git a/vendor/github.com/lucas-clemente/quic-go/conn.go b/vendor/github.com/lucas-clemente/quic-go/conn.go new file mode 100644 index 00000000..700c1471 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/conn.go @@ -0,0 +1,54 @@ +package quic + +import ( + "net" + "sync" +) + +type connection interface { + Write([]byte) error + Read([]byte) (int, net.Addr, error) + Close() error + LocalAddr() net.Addr + RemoteAddr() net.Addr + SetCurrentRemoteAddr(net.Addr) +} + +type conn struct { + mutex sync.RWMutex + + pconn net.PacketConn + currentAddr net.Addr +} + +var _ connection = &conn{} + +func (c *conn) Write(p []byte) error { + _, err := c.pconn.WriteTo(p, c.currentAddr) + return err +} + +func (c *conn) Read(p []byte) (int, net.Addr, error) { + return c.pconn.ReadFrom(p) +} + +func (c *conn) SetCurrentRemoteAddr(addr net.Addr) { + c.mutex.Lock() + c.currentAddr = addr + c.mutex.Unlock() +} + +func (c *conn) LocalAddr() net.Addr { + return c.pconn.LocalAddr() +} + +func (c *conn) RemoteAddr() net.Addr { + c.mutex.RLock() + addr := c.currentAddr + c.mutex.RUnlock() + return addr +} + +func (c *conn) Close() error { + return c.pconn.Close() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/crypto_stream.go b/vendor/github.com/lucas-clemente/quic-go/crypto_stream.go new file mode 100644 index 00000000..095feb1d --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/crypto_stream.go @@ -0,0 +1,135 @@ +package quic + +import ( + "errors" + "fmt" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type cryptoStream interface { + // for receiving data + HandleCryptoFrame(*wire.CryptoFrame) error + GetCryptoData() []byte + Finish() error + // for sending data + io.Writer + HasData() bool + PopCryptoFrame(protocol.ByteCount) *wire.CryptoFrame +} + +type postHandshakeCryptoStream struct { + cryptoStream + + framer framer +} + +func newPostHandshakeCryptoStream(framer framer) cryptoStream { + return &postHandshakeCryptoStream{ + cryptoStream: newCryptoStream(), + framer: framer, + } +} + +// Write writes post-handshake messages. +// For simplicity, post-handshake crypto messages are treated as control frames. +// The framer functions as a stack (LIFO), so if there are multiple writes, +// they will be returned in the opposite order. +// This is acceptable, since post-handshake crypto messages are very rare. +func (s *postHandshakeCryptoStream) Write(p []byte) (int, error) { + n, err := s.cryptoStream.Write(p) + if err != nil { + return n, err + } + for s.cryptoStream.HasData() { + s.framer.QueueControlFrame(s.PopCryptoFrame(protocol.MaxPostHandshakeCryptoFrameSize)) + } + return n, nil +} + +type cryptoStreamImpl struct { + queue *frameSorter + msgBuf []byte + + highestOffset protocol.ByteCount + finished bool + + writeOffset protocol.ByteCount + writeBuf []byte +} + +func newCryptoStream() cryptoStream { + return &cryptoStreamImpl{queue: newFrameSorter()} +} + +func (s *cryptoStreamImpl) HandleCryptoFrame(f *wire.CryptoFrame) error { + highestOffset := f.Offset + protocol.ByteCount(len(f.Data)) + if maxOffset := highestOffset; maxOffset > protocol.MaxCryptoStreamOffset { + return fmt.Errorf("received invalid offset %d on crypto stream, maximum allowed %d", maxOffset, protocol.MaxCryptoStreamOffset) + } + if s.finished { + if highestOffset > s.highestOffset { + // reject crypto data received after this stream was already finished + return errors.New("received crypto data after change of encryption level") + } + // ignore data with a smaller offset than the highest received + // could e.g. be a retransmission + return nil + } + s.highestOffset = utils.MaxByteCount(s.highestOffset, highestOffset) + if err := s.queue.Push(f.Data, f.Offset); err != nil { + return err + } + for { + _, data := s.queue.Pop() + if data == nil { + return nil + } + s.msgBuf = append(s.msgBuf, data...) + } +} + +// GetCryptoData retrieves data that was received in CRYPTO frames +func (s *cryptoStreamImpl) GetCryptoData() []byte { + if len(s.msgBuf) < 4 { + return nil + } + msgLen := 4 + int(s.msgBuf[1])<<16 + int(s.msgBuf[2])<<8 + int(s.msgBuf[3]) + if len(s.msgBuf) < msgLen { + return nil + } + msg := make([]byte, msgLen) + copy(msg, s.msgBuf[:msgLen]) + s.msgBuf = s.msgBuf[msgLen:] + return msg +} + +func (s *cryptoStreamImpl) Finish() error { + if s.queue.HasMoreData() { + return errors.New("encryption level changed, but crypto stream has more data to read") + } + s.finished = true + return nil +} + +// Writes writes data that should be sent out in CRYPTO frames +func (s *cryptoStreamImpl) Write(p []byte) (int, error) { + s.writeBuf = append(s.writeBuf, p...) + return len(p), nil +} + +func (s *cryptoStreamImpl) HasData() bool { + return len(s.writeBuf) > 0 +} + +func (s *cryptoStreamImpl) PopCryptoFrame(maxLen protocol.ByteCount) *wire.CryptoFrame { + f := &wire.CryptoFrame{Offset: s.writeOffset} + n := utils.MinByteCount(f.MaxDataLen(maxLen), protocol.ByteCount(len(s.writeBuf))) + f.Data = s.writeBuf[:n] + s.writeBuf = s.writeBuf[n:] + s.writeOffset += n + return f +} diff --git a/vendor/github.com/lucas-clemente/quic-go/crypto_stream_manager.go b/vendor/github.com/lucas-clemente/quic-go/crypto_stream_manager.go new file mode 100644 index 00000000..489b306a --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/crypto_stream_manager.go @@ -0,0 +1,60 @@ +package quic + +import ( + "fmt" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type cryptoDataHandler interface { + HandleMessage([]byte, protocol.EncryptionLevel) bool +} + +type cryptoStreamManager struct { + cryptoHandler cryptoDataHandler + + initialStream cryptoStream + handshakeStream cryptoStream + oneRTTStream cryptoStream +} + +func newCryptoStreamManager( + cryptoHandler cryptoDataHandler, + initialStream cryptoStream, + handshakeStream cryptoStream, + oneRTTStream cryptoStream, +) *cryptoStreamManager { + return &cryptoStreamManager{ + cryptoHandler: cryptoHandler, + initialStream: initialStream, + handshakeStream: handshakeStream, + oneRTTStream: oneRTTStream, + } +} + +func (m *cryptoStreamManager) HandleCryptoFrame(frame *wire.CryptoFrame, encLevel protocol.EncryptionLevel) (bool /* encryption level changed */, error) { + var str cryptoStream + switch encLevel { + case protocol.EncryptionInitial: + str = m.initialStream + case protocol.EncryptionHandshake: + str = m.handshakeStream + case protocol.Encryption1RTT: + str = m.oneRTTStream + default: + return false, fmt.Errorf("received CRYPTO frame with unexpected encryption level: %s", encLevel) + } + if err := str.HandleCryptoFrame(frame); err != nil { + return false, err + } + for { + data := str.GetCryptoData() + if data == nil { + return false, nil + } + if encLevelFinished := m.cryptoHandler.HandleMessage(data, encLevel); encLevelFinished { + return true, str.Finish() + } + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/frame_sorter.go b/vendor/github.com/lucas-clemente/quic-go/frame_sorter.go new file mode 100644 index 00000000..609c35dd --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/frame_sorter.go @@ -0,0 +1,159 @@ +package quic + +import ( + "errors" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +type frameSorter struct { + queue map[protocol.ByteCount][]byte + readPos protocol.ByteCount + gaps *utils.ByteIntervalList +} + +var errDuplicateStreamData = errors.New("Duplicate Stream Data") + +func newFrameSorter() *frameSorter { + s := frameSorter{ + gaps: utils.NewByteIntervalList(), + queue: make(map[protocol.ByteCount][]byte), + } + s.gaps.PushFront(utils.ByteInterval{Start: 0, End: protocol.MaxByteCount}) + return &s +} + +func (s *frameSorter) Push(data []byte, offset protocol.ByteCount) error { + err := s.push(data, offset) + if err == errDuplicateStreamData { + return nil + } + return err +} + +func (s *frameSorter) push(data []byte, offset protocol.ByteCount) error { + if len(data) == 0 { + return nil + } + + var wasCut bool + if oldData, ok := s.queue[offset]; ok { + if len(data) <= len(oldData) { + return errDuplicateStreamData + } + data = data[len(oldData):] + offset += protocol.ByteCount(len(oldData)) + wasCut = true + } + + start := offset + end := offset + protocol.ByteCount(len(data)) + + // skip all gaps that are before this stream frame + var gap *utils.ByteIntervalElement + for gap = s.gaps.Front(); gap != nil; gap = gap.Next() { + // the frame is a duplicate. Ignore it + if end <= gap.Value.Start { + return errDuplicateStreamData + } + if end > gap.Value.Start && start <= gap.Value.End { + break + } + } + + if gap == nil { + return errors.New("StreamFrameSorter BUG: no gap found") + } + + if start < gap.Value.Start { + add := gap.Value.Start - start + offset += add + start += add + data = data[add:] + wasCut = true + } + + // find the highest gaps whose Start lies before the end of the frame + endGap := gap + for end >= endGap.Value.End { + nextEndGap := endGap.Next() + if nextEndGap == nil { + return errors.New("StreamFrameSorter BUG: no end gap found") + } + if endGap != gap { + s.gaps.Remove(endGap) + } + if end <= nextEndGap.Value.Start { + break + } + // delete queued frames completely covered by the current frame + delete(s.queue, endGap.Value.End) + endGap = nextEndGap + } + + if end > endGap.Value.End { + cutLen := end - endGap.Value.End + len := protocol.ByteCount(len(data)) - cutLen + end -= cutLen + data = data[:len] + wasCut = true + } + + if start == gap.Value.Start { + if end >= gap.Value.End { + // the frame completely fills this gap + // delete the gap + s.gaps.Remove(gap) + } + if end < endGap.Value.End { + // the frame covers the beginning of the gap + // adjust the Start value to shrink the gap + endGap.Value.Start = end + } + } else if end == endGap.Value.End { + // the frame covers the end of the gap + // adjust the End value to shrink the gap + gap.Value.End = start + } else { + if gap == endGap { + // the frame lies within the current gap, splitting it into two + // insert a new gap and adjust the current one + intv := utils.ByteInterval{Start: end, End: gap.Value.End} + s.gaps.InsertAfter(intv, gap) + gap.Value.End = start + } else { + gap.Value.End = start + endGap.Value.Start = end + } + } + + if s.gaps.Len() > protocol.MaxStreamFrameSorterGaps { + return errors.New("Too many gaps in received data") + } + + if wasCut { + newData := make([]byte, len(data)) + copy(newData, data) + data = newData + } + + s.queue[offset] = data + return nil +} + +func (s *frameSorter) Pop() (protocol.ByteCount, []byte) { + data, ok := s.queue[s.readPos] + if !ok { + return s.readPos, nil + } + delete(s.queue, s.readPos) + offset := s.readPos + s.readPos += protocol.ByteCount(len(data)) + return offset, data +} + +// HasMoreData says if there is any more data queued at *any* offset. +func (s *frameSorter) HasMoreData() bool { + return len(s.queue) > 0 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/framer.go b/vendor/github.com/lucas-clemente/quic-go/framer.go new file mode 100644 index 00000000..fbfe9bb7 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/framer.go @@ -0,0 +1,109 @@ +package quic + +import ( + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type framer interface { + QueueControlFrame(wire.Frame) + AppendControlFrames([]wire.Frame, protocol.ByteCount) ([]wire.Frame, protocol.ByteCount) + + AddActiveStream(protocol.StreamID) + AppendStreamFrames([]wire.Frame, protocol.ByteCount) []wire.Frame +} + +type framerI struct { + mutex sync.Mutex + + streamGetter streamGetter + version protocol.VersionNumber + + activeStreams map[protocol.StreamID]struct{} + streamQueue []protocol.StreamID + + controlFrameMutex sync.Mutex + controlFrames []wire.Frame +} + +var _ framer = &framerI{} + +func newFramer( + streamGetter streamGetter, + v protocol.VersionNumber, +) framer { + return &framerI{ + streamGetter: streamGetter, + activeStreams: make(map[protocol.StreamID]struct{}), + version: v, + } +} + +func (f *framerI) QueueControlFrame(frame wire.Frame) { + f.controlFrameMutex.Lock() + f.controlFrames = append(f.controlFrames, frame) + f.controlFrameMutex.Unlock() +} + +func (f *framerI) AppendControlFrames(frames []wire.Frame, maxLen protocol.ByteCount) ([]wire.Frame, protocol.ByteCount) { + var length protocol.ByteCount + f.controlFrameMutex.Lock() + for len(f.controlFrames) > 0 { + frame := f.controlFrames[len(f.controlFrames)-1] + frameLen := frame.Length(f.version) + if length+frameLen > maxLen { + break + } + frames = append(frames, frame) + length += frameLen + f.controlFrames = f.controlFrames[:len(f.controlFrames)-1] + } + f.controlFrameMutex.Unlock() + return frames, length +} + +func (f *framerI) AddActiveStream(id protocol.StreamID) { + f.mutex.Lock() + if _, ok := f.activeStreams[id]; !ok { + f.streamQueue = append(f.streamQueue, id) + f.activeStreams[id] = struct{}{} + } + f.mutex.Unlock() +} + +func (f *framerI) AppendStreamFrames(frames []wire.Frame, maxLen protocol.ByteCount) []wire.Frame { + var length protocol.ByteCount + f.mutex.Lock() + // pop STREAM frames, until less than MinStreamFrameSize bytes are left in the packet + numActiveStreams := len(f.streamQueue) + for i := 0; i < numActiveStreams; i++ { + if maxLen-length < protocol.MinStreamFrameSize { + break + } + id := f.streamQueue[0] + f.streamQueue = f.streamQueue[1:] + // This should never return an error. Better check it anyway. + // The stream will only be in the streamQueue, if it enqueued itself there. + str, err := f.streamGetter.GetOrOpenSendStream(id) + // The stream can be nil if it completed after it said it had data. + if str == nil || err != nil { + delete(f.activeStreams, id) + continue + } + frame, hasMoreData := str.popStreamFrame(maxLen - length) + if hasMoreData { // put the stream back in the queue (at the end) + f.streamQueue = append(f.streamQueue, id) + } else { // no more data to send. Stream is not active any more + delete(f.activeStreams, id) + } + if frame == nil { // can happen if the receiveStream was canceled after it said it had data + continue + } + frames = append(frames, frame) + length += frame.Length(f.version) + } + f.mutex.Unlock() + return frames +} diff --git a/vendor/github.com/lucas-clemente/quic-go/go.mod b/vendor/github.com/lucas-clemente/quic-go/go.mod new file mode 100644 index 00000000..63d9d89b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/go.mod @@ -0,0 +1,13 @@ +module github.com/lucas-clemente/quic-go + +go 1.12 + +require ( + github.com/cheekybits/genny v1.0.0 + github.com/golang/mock v1.2.0 + github.com/marten-seemann/qtls v0.2.3 + github.com/onsi/ginkgo v1.7.0 + github.com/onsi/gomega v1.4.3 + golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 + golang.org/x/net v0.0.0-20180906233101-161cd47e91fd +) diff --git a/vendor/github.com/lucas-clemente/quic-go/go.sum b/vendor/github.com/lucas-clemente/quic-go/go.sum new file mode 100644 index 00000000..c5efe853 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/go.sum @@ -0,0 +1,37 @@ +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/marten-seemann/qtls v0.2.3 h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNAI4vA= +github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/lucas-clemente/quic-go/interface.go b/vendor/github.com/lucas-clemente/quic-go/interface.go new file mode 100644 index 00000000..a83d09b8 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/interface.go @@ -0,0 +1,224 @@ +package quic + +import ( + "context" + "crypto/tls" + "io" + "net" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// The StreamID is the ID of a QUIC stream. +type StreamID = protocol.StreamID + +// A VersionNumber is a QUIC version number. +type VersionNumber = protocol.VersionNumber + +// A Cookie can be used to verify the ownership of the client address. +type Cookie struct { + RemoteAddr string + SentTime time.Time +} + +// An ErrorCode is an application-defined error code. +type ErrorCode = protocol.ApplicationErrorCode + +// Stream is the interface implemented by QUIC streams +type Stream interface { + // StreamID returns the stream ID. + StreamID() StreamID + // Read reads data from the stream. + // Read can be made to time out and return a net.Error with Timeout() == true + // after a fixed time limit; see SetDeadline and SetReadDeadline. + // If the stream was canceled by the peer, the error implements the StreamError + // interface, and Canceled() == true. + // If the session was closed due to a timeout, the error satisfies + // the net.Error interface, and Timeout() will be true. + io.Reader + // Write writes data to the stream. + // Write can be made to time out and return a net.Error with Timeout() == true + // after a fixed time limit; see SetDeadline and SetWriteDeadline. + // If the stream was canceled by the peer, the error implements the StreamError + // interface, and Canceled() == true. + // If the session was closed due to a timeout, the error satisfies + // the net.Error interface, and Timeout() will be true. + io.Writer + // Close closes the write-direction of the stream. + // Future calls to Write are not permitted after calling Close. + // It must not be called concurrently with Write. + // It must not be called after calling CancelWrite. + io.Closer + // CancelWrite aborts sending on this stream. + // Data already written, but not yet delivered to the peer is not guaranteed to be delivered reliably. + // Write will unblock immediately, and future calls to Write will fail. + // When called multiple times or after closing the stream it is a no-op. + CancelWrite(ErrorCode) + // CancelRead aborts receiving on this stream. + // It will ask the peer to stop transmitting stream data. + // Read will unblock immediately, and future Read calls will fail. + // When called multiple times or after reading the io.EOF it is a no-op. + CancelRead(ErrorCode) + // The context is canceled as soon as the write-side of the stream is closed. + // This happens when Close() or CancelWrite() is called, or when the peer + // cancels the read-side of their stream. + // Warning: This API should not be considered stable and might change soon. + Context() context.Context + // SetReadDeadline sets the deadline for future Read calls and + // any currently-blocked Read call. + // A zero value for t means Read will not time out. + SetReadDeadline(t time.Time) error + // SetWriteDeadline sets the deadline for future Write calls + // and any currently-blocked Write call. + // Even if write times out, it may return n > 0, indicating that + // some of the data was successfully written. + // A zero value for t means Write will not time out. + SetWriteDeadline(t time.Time) error + // SetDeadline sets the read and write deadlines associated + // with the connection. It is equivalent to calling both + // SetReadDeadline and SetWriteDeadline. + SetDeadline(t time.Time) error +} + +// A ReceiveStream is a unidirectional Receive Stream. +type ReceiveStream interface { + // see Stream.StreamID + StreamID() StreamID + // see Stream.Read + io.Reader + // see Stream.CancelRead + CancelRead(ErrorCode) + // see Stream.SetReadDealine + SetReadDeadline(t time.Time) error +} + +// A SendStream is a unidirectional Send Stream. +type SendStream interface { + // see Stream.StreamID + StreamID() StreamID + // see Stream.Write + io.Writer + // see Stream.Close + io.Closer + // see Stream.CancelWrite + CancelWrite(ErrorCode) + // see Stream.Context + Context() context.Context + // see Stream.SetWriteDeadline + SetWriteDeadline(t time.Time) error +} + +// StreamError is returned by Read and Write when the peer cancels the stream. +type StreamError interface { + error + Canceled() bool + ErrorCode() ErrorCode +} + +// A Session is a QUIC connection between two peers. +type Session interface { + // AcceptStream returns the next stream opened by the peer, blocking until one is available. + // If the session was closed due to a timeout, the error satisfies + // the net.Error interface, and Timeout() will be true. + AcceptStream() (Stream, error) + // AcceptUniStream returns the next unidirectional stream opened by the peer, blocking until one is available. + // If the session was closed due to a timeout, the error satisfies + // the net.Error interface, and Timeout() will be true. + AcceptUniStream() (ReceiveStream, error) + // OpenStream opens a new bidirectional QUIC stream. + // There is no signaling to the peer about new streams: + // The peer can only accept the stream after data has been sent on the stream. + // If the error is non-nil, it satisfies the net.Error interface. + // When reaching the peer's stream limit, err.Temporary() will be true. + // If the session was closed due to a timeout, Timeout() will be true. + OpenStream() (Stream, error) + // OpenStreamSync opens a new bidirectional QUIC stream. + // It blocks until a new stream can be opened. + // If the error is non-nil, it satisfies the net.Error interface. + // If the session was closed due to a timeout, Timeout() will be true. + OpenStreamSync() (Stream, error) + // OpenUniStream opens a new outgoing unidirectional QUIC stream. + // If the error is non-nil, it satisfies the net.Error interface. + // When reaching the peer's stream limit, Temporary() will be true. + // If the session was closed due to a timeout, Timeout() will be true. + OpenUniStream() (SendStream, error) + // OpenUniStreamSync opens a new outgoing unidirectional QUIC stream. + // It blocks until a new stream can be opened. + // If the error is non-nil, it satisfies the net.Error interface. + // If the session was closed due to a timeout, Timeout() will be true. + OpenUniStreamSync() (SendStream, error) + // LocalAddr returns the local address. + LocalAddr() net.Addr + // RemoteAddr returns the address of the peer. + RemoteAddr() net.Addr + // Close the connection. + io.Closer + // Close the connection with an error. + // The error must not be nil. + CloseWithError(ErrorCode, error) error + // The context is cancelled when the session is closed. + // Warning: This API should not be considered stable and might change soon. + Context() context.Context + // ConnectionState returns basic details about the QUIC connection. + // Warning: This API should not be considered stable and might change soon. + ConnectionState() tls.ConnectionState +} + +// Config contains all configuration data needed for a QUIC server or client. +type Config struct { + // The QUIC versions that can be negotiated. + // If not set, it uses all versions available. + // Warning: This API should not be considered stable and will change soon. + Versions []VersionNumber + // The length of the connection ID in bytes. + // It can be 0, or any value between 4 and 18. + // If not set, the interpretation depends on where the Config is used: + // If used for dialing an address, a 0 byte connection ID will be used. + // If used for a server, or dialing on a packet conn, a 4 byte connection ID will be used. + // When dialing on a packet conn, the ConnectionIDLength value must be the same for every Dial call. + ConnectionIDLength int + // HandshakeTimeout is the maximum duration that the cryptographic handshake may take. + // If the timeout is exceeded, the connection is closed. + // If this value is zero, the timeout is set to 10 seconds. + HandshakeTimeout time.Duration + // IdleTimeout is the maximum duration that may pass without any incoming network activity. + // This value only applies after the handshake has completed. + // If the timeout is exceeded, the connection is closed. + // If this value is zero, the timeout is set to 30 seconds. + IdleTimeout time.Duration + // AcceptCookie determines if a Cookie is accepted. + // It is called with cookie = nil if the client didn't send an Cookie. + // If not set, it verifies that the address matches, and that the Cookie was issued within the last 24 hours. + // This option is only valid for the server. + AcceptCookie func(clientAddr net.Addr, cookie *Cookie) bool + // MaxReceiveStreamFlowControlWindow is the maximum stream-level flow control window for receiving data. + // If this value is zero, it will default to 1 MB for the server and 6 MB for the client. + MaxReceiveStreamFlowControlWindow uint64 + // MaxReceiveConnectionFlowControlWindow is the connection-level flow control window for receiving data. + // If this value is zero, it will default to 1.5 MB for the server and 15 MB for the client. + MaxReceiveConnectionFlowControlWindow uint64 + // MaxIncomingStreams is the maximum number of concurrent bidirectional streams that a peer is allowed to open. + // If not set, it will default to 100. + // If set to a negative value, it doesn't allow any bidirectional streams. + MaxIncomingStreams int + // MaxIncomingUniStreams is the maximum number of concurrent unidirectional streams that a peer is allowed to open. + // If not set, it will default to 100. + // If set to a negative value, it doesn't allow any unidirectional streams. + MaxIncomingUniStreams int + // The StatelessResetKey is used to generate stateless reset tokens. + // If no key is configured, sending of stateless resets is disabled. + StatelessResetKey []byte + // KeepAlive defines whether this peer will periodically send a packet to keep the connection alive. + KeepAlive bool +} + +// A Listener for incoming QUIC connections +type Listener interface { + // Close the server. All active sessions will be closed. + Close() error + // Addr returns the local network addr that the server is listening on. + Addr() net.Addr + // Accept returns new sessions. It should be called in a loop. + Accept() (Session, error) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/gen.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/gen.go new file mode 100644 index 00000000..32235f81 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/gen.go @@ -0,0 +1,3 @@ +package ackhandler + +//go:generate genny -pkg ackhandler -in ../utils/linkedlist/linkedlist.go -out packet_linkedlist.go gen Item=Packet diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/interfaces.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/interfaces.go new file mode 100644 index 00000000..362b9fbe --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/interfaces.go @@ -0,0 +1,50 @@ +package ackhandler + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +// SentPacketHandler handles ACKs received for outgoing packets +type SentPacketHandler interface { + // SentPacket may modify the packet + SentPacket(packet *Packet) + SentPacketsAsRetransmission(packets []*Packet, retransmissionOf protocol.PacketNumber) + ReceivedAck(ackFrame *wire.AckFrame, withPacketNumber protocol.PacketNumber, encLevel protocol.EncryptionLevel, recvTime time.Time) error + SetHandshakeComplete() + ResetForRetry() error + + // The SendMode determines if and what kind of packets can be sent. + SendMode() SendMode + // TimeUntilSend is the time when the next packet should be sent. + // It is used for pacing packets. + TimeUntilSend() time.Time + // ShouldSendNumPackets returns the number of packets that should be sent immediately. + // It always returns a number greater or equal than 1. + // A number greater than 1 is returned when the pacing delay is smaller than the minimum pacing delay. + // Note that the number of packets is only calculated based on the pacing algorithm. + // Before sending any packet, SendingAllowed() must be called to learn if we can actually send it. + ShouldSendNumPackets() int + + // only to be called once the handshake is complete + GetLowestPacketNotConfirmedAcked() protocol.PacketNumber + DequeuePacketForRetransmission() *Packet + DequeueProbePacket() (*Packet, error) + + PeekPacketNumber(protocol.EncryptionLevel) (protocol.PacketNumber, protocol.PacketNumberLen) + PopPacketNumber(protocol.EncryptionLevel) protocol.PacketNumber + + GetAlarmTimeout() time.Time + OnAlarm() error +} + +// ReceivedPacketHandler handles ACKs needed to send for incoming packets +type ReceivedPacketHandler interface { + ReceivedPacket(pn protocol.PacketNumber, encLevel protocol.EncryptionLevel, rcvTime time.Time, shouldInstigateAck bool) error + IgnoreBelow(protocol.PacketNumber) + + GetAlarmTimeout() time.Time + GetAckFrame(protocol.EncryptionLevel) *wire.AckFrame +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet.go new file mode 100644 index 00000000..9673a85c --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet.go @@ -0,0 +1,29 @@ +package ackhandler + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +// A Packet is a packet +type Packet struct { + PacketNumber protocol.PacketNumber + PacketType protocol.PacketType + Frames []wire.Frame + Length protocol.ByteCount + EncryptionLevel protocol.EncryptionLevel + SendTime time.Time + + largestAcked protocol.PacketNumber // if the packet contains an ACK, the LargestAcked value of that ACK + + // There are two reasons why a packet cannot be retransmitted: + // * it was already retransmitted + // * this packet is a retransmission, and we already received an ACK for the original packet + canBeRetransmitted bool + includedInBytesInFlight bool + retransmittedAs []protocol.PacketNumber + isRetransmission bool // we need a separate bool here because 0 is a valid packet number + retransmissionOf protocol.PacketNumber +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_linkedlist.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_linkedlist.go new file mode 100644 index 00000000..bb74f4ef --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_linkedlist.go @@ -0,0 +1,217 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package ackhandler + +// Linked list implementation from the Go standard library. + +// PacketElement is an element of a linked list. +type PacketElement struct { + // Next and previous pointers in the doubly-linked list of elements. + // To simplify the implementation, internally a list l is implemented + // as a ring, such that &l.root is both the next element of the last + // list element (l.Back()) and the previous element of the first list + // element (l.Front()). + next, prev *PacketElement + + // The list to which this element belongs. + list *PacketList + + // The value stored with this element. + Value Packet +} + +// Next returns the next list element or nil. +func (e *PacketElement) Next() *PacketElement { + if p := e.next; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// Prev returns the previous list element or nil. +func (e *PacketElement) Prev() *PacketElement { + if p := e.prev; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// PacketList is a linked list of Packets. +type PacketList struct { + root PacketElement // sentinel list element, only &root, root.prev, and root.next are used + len int // current list length excluding (this) sentinel element +} + +// Init initializes or clears list l. +func (l *PacketList) Init() *PacketList { + l.root.next = &l.root + l.root.prev = &l.root + l.len = 0 + return l +} + +// NewPacketList returns an initialized list. +func NewPacketList() *PacketList { return new(PacketList).Init() } + +// Len returns the number of elements of list l. +// The complexity is O(1). +func (l *PacketList) Len() int { return l.len } + +// Front returns the first element of list l or nil if the list is empty. +func (l *PacketList) Front() *PacketElement { + if l.len == 0 { + return nil + } + return l.root.next +} + +// Back returns the last element of list l or nil if the list is empty. +func (l *PacketList) Back() *PacketElement { + if l.len == 0 { + return nil + } + return l.root.prev +} + +// lazyInit lazily initializes a zero List value. +func (l *PacketList) lazyInit() { + if l.root.next == nil { + l.Init() + } +} + +// insert inserts e after at, increments l.len, and returns e. +func (l *PacketList) insert(e, at *PacketElement) *PacketElement { + n := at.next + at.next = e + e.prev = at + e.next = n + n.prev = e + e.list = l + l.len++ + return e +} + +// insertValue is a convenience wrapper for insert(&Element{Value: v}, at). +func (l *PacketList) insertValue(v Packet, at *PacketElement) *PacketElement { + return l.insert(&PacketElement{Value: v}, at) +} + +// remove removes e from its list, decrements l.len, and returns e. +func (l *PacketList) remove(e *PacketElement) *PacketElement { + e.prev.next = e.next + e.next.prev = e.prev + e.next = nil // avoid memory leaks + e.prev = nil // avoid memory leaks + e.list = nil + l.len-- + return e +} + +// Remove removes e from l if e is an element of list l. +// It returns the element value e.Value. +// The element must not be nil. +func (l *PacketList) Remove(e *PacketElement) Packet { + if e.list == l { + // if e.list == l, l must have been initialized when e was inserted + // in l or l == nil (e is a zero Element) and l.remove will crash + l.remove(e) + } + return e.Value +} + +// PushFront inserts a new element e with value v at the front of list l and returns e. +func (l *PacketList) PushFront(v Packet) *PacketElement { + l.lazyInit() + return l.insertValue(v, &l.root) +} + +// PushBack inserts a new element e with value v at the back of list l and returns e. +func (l *PacketList) PushBack(v Packet) *PacketElement { + l.lazyInit() + return l.insertValue(v, l.root.prev) +} + +// InsertBefore inserts a new element e with value v immediately before mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *PacketList) InsertBefore(v Packet, mark *PacketElement) *PacketElement { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(v, mark.prev) +} + +// InsertAfter inserts a new element e with value v immediately after mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *PacketList) InsertAfter(v Packet, mark *PacketElement) *PacketElement { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(v, mark) +} + +// MoveToFront moves element e to the front of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *PacketList) MoveToFront(e *PacketElement) { + if e.list != l || l.root.next == e { + return + } + // see comment in List.Remove about initialization of l + l.insert(l.remove(e), &l.root) +} + +// MoveToBack moves element e to the back of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *PacketList) MoveToBack(e *PacketElement) { + if e.list != l || l.root.prev == e { + return + } + // see comment in List.Remove about initialization of l + l.insert(l.remove(e), l.root.prev) +} + +// MoveBefore moves element e to its new position before mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *PacketList) MoveBefore(e, mark *PacketElement) { + if e.list != l || e == mark || mark.list != l { + return + } + l.insert(l.remove(e), mark.prev) +} + +// MoveAfter moves element e to its new position after mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *PacketList) MoveAfter(e, mark *PacketElement) { + if e.list != l || e == mark || mark.list != l { + return + } + l.insert(l.remove(e), mark) +} + +// PushBackList inserts a copy of an other list at the back of list l. +// The lists l and other may be the same. They must not be nil. +func (l *PacketList) PushBackList(other *PacketList) { + l.lazyInit() + for i, e := other.Len(), other.Front(); i > 0; i, e = i-1, e.Next() { + l.insertValue(e.Value, l.root.prev) + } +} + +// PushFrontList inserts a copy of an other list at the front of list l. +// The lists l and other may be the same. They must not be nil. +func (l *PacketList) PushFrontList(other *PacketList) { + l.lazyInit() + for i, e := other.Len(), other.Back(); i > 0; i, e = i-1, e.Prev() { + l.insertValue(e.Value, &l.root) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_number_generator.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_number_generator.go new file mode 100644 index 00000000..56fbf3d8 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/packet_number_generator.go @@ -0,0 +1,78 @@ +package ackhandler + +import ( + "crypto/rand" + "math" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +// The packetNumberGenerator generates the packet number for the next packet +// it randomly skips a packet number every averagePeriod packets (on average) +// it is guarantued to never skip two consecutive packet numbers +type packetNumberGenerator struct { + averagePeriod protocol.PacketNumber + + next protocol.PacketNumber + nextToSkip protocol.PacketNumber + + history []protocol.PacketNumber +} + +func newPacketNumberGenerator(initial, averagePeriod protocol.PacketNumber) *packetNumberGenerator { + g := &packetNumberGenerator{ + next: initial, + averagePeriod: averagePeriod, + } + g.generateNewSkip() + return g +} + +func (p *packetNumberGenerator) Peek() protocol.PacketNumber { + return p.next +} + +func (p *packetNumberGenerator) Pop() protocol.PacketNumber { + next := p.next + + // generate a new packet number for the next packet + p.next++ + + if p.next == p.nextToSkip { + if len(p.history)+1 > protocol.MaxTrackedSkippedPackets { + p.history = p.history[1:] + } + p.history = append(p.history, p.next) + p.next++ + p.generateNewSkip() + } + + return next +} + +func (p *packetNumberGenerator) generateNewSkip() { + num := p.getRandomNumber() + skip := protocol.PacketNumber(num) * (p.averagePeriod - 1) / (math.MaxUint16 / 2) + // make sure that there are never two consecutive packet numbers that are skipped + p.nextToSkip = p.next + 2 + skip +} + +// getRandomNumber() generates a cryptographically secure random number between 0 and MaxUint16 (= 65535) +// The expectation value is 65535/2 +func (p *packetNumberGenerator) getRandomNumber() uint16 { + b := make([]byte, 2) + rand.Read(b) // ignore the error here + + num := uint16(b[0])<<8 + uint16(b[1]) + return num +} + +func (p *packetNumberGenerator) Validate(ack *wire.AckFrame) bool { + for _, pn := range p.history { + if ack.AcksPacket(pn) { + return false + } + } + return true +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_handler.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_handler.go new file mode 100644 index 00000000..1df64ea8 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_handler.go @@ -0,0 +1,98 @@ +package ackhandler + +import ( + "fmt" + "time" + + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +const ( + // maximum delay that can be applied to an ACK for a retransmittable packet + ackSendDelay = 25 * time.Millisecond + // initial maximum number of retransmittable packets received before sending an ack. + initialRetransmittablePacketsBeforeAck = 2 + // number of retransmittable that an ACK is sent for + retransmittablePacketsBeforeAck = 10 + // 1/5 RTT delay when doing ack decimation + ackDecimationDelay = 1.0 / 4 + // 1/8 RTT delay when doing ack decimation + shortAckDecimationDelay = 1.0 / 8 + // Minimum number of packets received before ack decimation is enabled. + // This intends to avoid the beginning of slow start, when CWNDs may be + // rapidly increasing. + minReceivedBeforeAckDecimation = 100 + // Maximum number of packets to ack immediately after a missing packet for + // fast retransmission to kick in at the sender. This limit is created to + // reduce the number of acks sent that have no benefit for fast retransmission. + // Set to the number of nacks needed for fast retransmit plus one for protection + // against an ack loss + maxPacketsAfterNewMissing = 4 +) + +type receivedPacketHandler struct { + initialPackets *receivedPacketTracker + handshakePackets *receivedPacketTracker + oneRTTPackets *receivedPacketTracker +} + +var _ ReceivedPacketHandler = &receivedPacketHandler{} + +// NewReceivedPacketHandler creates a new receivedPacketHandler +func NewReceivedPacketHandler( + rttStats *congestion.RTTStats, + logger utils.Logger, + version protocol.VersionNumber, +) ReceivedPacketHandler { + return &receivedPacketHandler{ + initialPackets: newReceivedPacketTracker(rttStats, logger, version), + handshakePackets: newReceivedPacketTracker(rttStats, logger, version), + oneRTTPackets: newReceivedPacketTracker(rttStats, logger, version), + } +} + +func (h *receivedPacketHandler) ReceivedPacket( + pn protocol.PacketNumber, + encLevel protocol.EncryptionLevel, + rcvTime time.Time, + shouldInstigateAck bool, +) error { + switch encLevel { + case protocol.EncryptionInitial: + return h.initialPackets.ReceivedPacket(pn, rcvTime, shouldInstigateAck) + case protocol.EncryptionHandshake: + return h.handshakePackets.ReceivedPacket(pn, rcvTime, shouldInstigateAck) + case protocol.Encryption1RTT: + return h.oneRTTPackets.ReceivedPacket(pn, rcvTime, shouldInstigateAck) + default: + return fmt.Errorf("received packet with unknown encryption level: %s", encLevel) + } +} + +// only to be used with 1-RTT packets +func (h *receivedPacketHandler) IgnoreBelow(pn protocol.PacketNumber) { + h.oneRTTPackets.IgnoreBelow(pn) +} + +func (h *receivedPacketHandler) GetAlarmTimeout() time.Time { + initialAlarm := h.initialPackets.GetAlarmTimeout() + handshakeAlarm := h.handshakePackets.GetAlarmTimeout() + oneRTTAlarm := h.oneRTTPackets.GetAlarmTimeout() + return utils.MinNonZeroTime(utils.MinNonZeroTime(initialAlarm, handshakeAlarm), oneRTTAlarm) +} + +func (h *receivedPacketHandler) GetAckFrame(encLevel protocol.EncryptionLevel) *wire.AckFrame { + switch encLevel { + case protocol.EncryptionInitial: + return h.initialPackets.GetAckFrame() + case protocol.EncryptionHandshake: + return h.handshakePackets.GetAckFrame() + case protocol.Encryption1RTT: + return h.oneRTTPackets.GetAckFrame() + default: + return nil + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_history.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_history.go new file mode 100644 index 00000000..0daba413 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_history.go @@ -0,0 +1,122 @@ +package ackhandler + +import ( + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +// The receivedPacketHistory stores if a packet number has already been received. +// It generates ACK ranges which can be used to assemble an ACK frame. +// It does not store packet contents. +type receivedPacketHistory struct { + ranges *utils.PacketIntervalList + + lowestInReceivedPacketNumbers protocol.PacketNumber +} + +var errTooManyOutstandingReceivedAckRanges = qerr.Error(qerr.InternalError, "Too many outstanding received ACK ranges") + +// newReceivedPacketHistory creates a new received packet history +func newReceivedPacketHistory() *receivedPacketHistory { + return &receivedPacketHistory{ + ranges: utils.NewPacketIntervalList(), + } +} + +// ReceivedPacket registers a packet with PacketNumber p and updates the ranges +func (h *receivedPacketHistory) ReceivedPacket(p protocol.PacketNumber) error { + if h.ranges.Len() >= protocol.MaxTrackedReceivedAckRanges { + return errTooManyOutstandingReceivedAckRanges + } + + if h.ranges.Len() == 0 { + h.ranges.PushBack(utils.PacketInterval{Start: p, End: p}) + return nil + } + + for el := h.ranges.Back(); el != nil; el = el.Prev() { + // p already included in an existing range. Nothing to do here + if p >= el.Value.Start && p <= el.Value.End { + return nil + } + + var rangeExtended bool + if el.Value.End == p-1 { // extend a range at the end + rangeExtended = true + el.Value.End = p + } else if el.Value.Start == p+1 { // extend a range at the beginning + rangeExtended = true + el.Value.Start = p + } + + // if a range was extended (either at the beginning or at the end, maybe it is possible to merge two ranges into one) + if rangeExtended { + prev := el.Prev() + if prev != nil && prev.Value.End+1 == el.Value.Start { // merge two ranges + prev.Value.End = el.Value.End + h.ranges.Remove(el) + return nil + } + return nil // if the two ranges were not merge, we're done here + } + + // create a new range at the end + if p > el.Value.End { + h.ranges.InsertAfter(utils.PacketInterval{Start: p, End: p}, el) + return nil + } + } + + // create a new range at the beginning + h.ranges.InsertBefore(utils.PacketInterval{Start: p, End: p}, h.ranges.Front()) + + return nil +} + +// DeleteBelow deletes all entries below (but not including) p +func (h *receivedPacketHistory) DeleteBelow(p protocol.PacketNumber) { + if p <= h.lowestInReceivedPacketNumbers { + return + } + h.lowestInReceivedPacketNumbers = p + + nextEl := h.ranges.Front() + for el := h.ranges.Front(); nextEl != nil; el = nextEl { + nextEl = el.Next() + + if p > el.Value.Start && p <= el.Value.End { + el.Value.Start = p + } else if el.Value.End < p { // delete a whole range + h.ranges.Remove(el) + } else { // no ranges affected. Nothing to do + return + } + } +} + +// GetAckRanges gets a slice of all AckRanges that can be used in an AckFrame +func (h *receivedPacketHistory) GetAckRanges() []wire.AckRange { + if h.ranges.Len() == 0 { + return nil + } + + ackRanges := make([]wire.AckRange, h.ranges.Len()) + i := 0 + for el := h.ranges.Back(); el != nil; el = el.Prev() { + ackRanges[i] = wire.AckRange{Smallest: el.Value.Start, Largest: el.Value.End} + i++ + } + return ackRanges +} + +func (h *receivedPacketHistory) GetHighestAckRange() wire.AckRange { + ackRange := wire.AckRange{} + if h.ranges.Len() > 0 { + r := h.ranges.Back().Value + ackRange.Smallest = r.Start + ackRange.Largest = r.End + } + return ackRange +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_tracker.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_tracker.go new file mode 100644 index 00000000..b7840490 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/received_packet_tracker.go @@ -0,0 +1,191 @@ +package ackhandler + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type receivedPacketTracker struct { + largestObserved protocol.PacketNumber + ignoreBelow protocol.PacketNumber + largestObservedReceivedTime time.Time + + packetHistory *receivedPacketHistory + + ackSendDelay time.Duration + rttStats *congestion.RTTStats + + packetsReceivedSinceLastAck int + retransmittablePacketsReceivedSinceLastAck int + ackQueued bool + ackAlarm time.Time + lastAck *wire.AckFrame + + logger utils.Logger + + version protocol.VersionNumber +} + +func newReceivedPacketTracker( + rttStats *congestion.RTTStats, + logger utils.Logger, + version protocol.VersionNumber, +) *receivedPacketTracker { + return &receivedPacketTracker{ + packetHistory: newReceivedPacketHistory(), + ackSendDelay: ackSendDelay, + rttStats: rttStats, + logger: logger, + version: version, + } +} + +func (h *receivedPacketTracker) ReceivedPacket(packetNumber protocol.PacketNumber, rcvTime time.Time, shouldInstigateAck bool) error { + if packetNumber < h.ignoreBelow { + return nil + } + + isMissing := h.isMissing(packetNumber) + if packetNumber >= h.largestObserved { + h.largestObserved = packetNumber + h.largestObservedReceivedTime = rcvTime + } + + if err := h.packetHistory.ReceivedPacket(packetNumber); err != nil { + return err + } + h.maybeQueueAck(packetNumber, rcvTime, shouldInstigateAck, isMissing) + return nil +} + +// IgnoreBelow sets a lower limit for acking packets. +// Packets with packet numbers smaller than p will not be acked. +func (h *receivedPacketTracker) IgnoreBelow(p protocol.PacketNumber) { + if p <= h.ignoreBelow { + return + } + h.ignoreBelow = p + h.packetHistory.DeleteBelow(p) + if h.logger.Debug() { + h.logger.Debugf("\tIgnoring all packets below %#x.", p) + } +} + +// isMissing says if a packet was reported missing in the last ACK. +func (h *receivedPacketTracker) isMissing(p protocol.PacketNumber) bool { + if h.lastAck == nil || p < h.ignoreBelow { + return false + } + return p < h.lastAck.LargestAcked() && !h.lastAck.AcksPacket(p) +} + +func (h *receivedPacketTracker) hasNewMissingPackets() bool { + if h.lastAck == nil { + return false + } + highestRange := h.packetHistory.GetHighestAckRange() + return highestRange.Smallest >= h.lastAck.LargestAcked() && highestRange.Len() <= maxPacketsAfterNewMissing +} + +// maybeQueueAck queues an ACK, if necessary. +// It is implemented analogously to Chrome's QuicConnection::MaybeQueueAck() +// in ACK_DECIMATION_WITH_REORDERING mode. +func (h *receivedPacketTracker) maybeQueueAck(packetNumber protocol.PacketNumber, rcvTime time.Time, shouldInstigateAck, wasMissing bool) { + h.packetsReceivedSinceLastAck++ + + // always ack the first packet + if h.lastAck == nil { + h.logger.Debugf("\tQueueing ACK because the first packet should be acknowledged.") + h.ackQueued = true + return + } + + // Send an ACK if this packet was reported missing in an ACK sent before. + // Ack decimation with reordering relies on the timer to send an ACK, but if + // missing packets we reported in the previous ack, send an ACK immediately. + if wasMissing { + if h.logger.Debug() { + h.logger.Debugf("\tQueueing ACK because packet %#x was missing before.", packetNumber) + } + h.ackQueued = true + } + + if !h.ackQueued && shouldInstigateAck { + h.retransmittablePacketsReceivedSinceLastAck++ + + if packetNumber > minReceivedBeforeAckDecimation { + // ack up to 10 packets at once + if h.retransmittablePacketsReceivedSinceLastAck >= retransmittablePacketsBeforeAck { + h.ackQueued = true + if h.logger.Debug() { + h.logger.Debugf("\tQueueing ACK because packet %d packets were received after the last ACK (using threshold: %d).", h.retransmittablePacketsReceivedSinceLastAck, retransmittablePacketsBeforeAck) + } + } else if h.ackAlarm.IsZero() { + // wait for the minimum of the ack decimation delay or the delayed ack time before sending an ack + ackDelay := utils.MinDuration(ackSendDelay, time.Duration(float64(h.rttStats.MinRTT())*float64(ackDecimationDelay))) + h.ackAlarm = rcvTime.Add(ackDelay) + if h.logger.Debug() { + h.logger.Debugf("\tSetting ACK timer to min(1/4 min-RTT, max ack delay): %s (%s from now)", ackDelay, time.Until(h.ackAlarm)) + } + } + } else { + // send an ACK every 2 retransmittable packets + if h.retransmittablePacketsReceivedSinceLastAck >= initialRetransmittablePacketsBeforeAck { + if h.logger.Debug() { + h.logger.Debugf("\tQueueing ACK because packet %d packets were received after the last ACK (using initial threshold: %d).", h.retransmittablePacketsReceivedSinceLastAck, initialRetransmittablePacketsBeforeAck) + } + h.ackQueued = true + } else if h.ackAlarm.IsZero() { + if h.logger.Debug() { + h.logger.Debugf("\tSetting ACK timer to max ack delay: %s", ackSendDelay) + } + h.ackAlarm = rcvTime.Add(ackSendDelay) + } + } + // If there are new missing packets to report, set a short timer to send an ACK. + if h.hasNewMissingPackets() { + // wait the minimum of 1/8 min RTT and the existing ack time + ackDelay := time.Duration(float64(h.rttStats.MinRTT()) * float64(shortAckDecimationDelay)) + ackTime := rcvTime.Add(ackDelay) + if h.ackAlarm.IsZero() || h.ackAlarm.After(ackTime) { + h.ackAlarm = ackTime + if h.logger.Debug() { + h.logger.Debugf("\tSetting ACK timer to 1/8 min-RTT: %s (%s from now)", ackDelay, time.Until(h.ackAlarm)) + } + } + } + } + + if h.ackQueued { + // cancel the ack alarm + h.ackAlarm = time.Time{} + } +} + +func (h *receivedPacketTracker) GetAckFrame() *wire.AckFrame { + now := time.Now() + if !h.ackQueued && (h.ackAlarm.IsZero() || h.ackAlarm.After(now)) { + return nil + } + if h.logger.Debug() && !h.ackQueued && !h.ackAlarm.IsZero() { + h.logger.Debugf("Sending ACK because the ACK timer expired.") + } + + ack := &wire.AckFrame{ + AckRanges: h.packetHistory.GetAckRanges(), + DelayTime: now.Sub(h.largestObservedReceivedTime), + } + + h.lastAck = ack + h.ackAlarm = time.Time{} + h.ackQueued = false + h.packetsReceivedSinceLastAck = 0 + h.retransmittablePacketsReceivedSinceLastAck = 0 + return ack +} + +func (h *receivedPacketTracker) GetAlarmTimeout() time.Time { return h.ackAlarm } diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/retransmittable.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/retransmittable.go new file mode 100644 index 00000000..ae622afd --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/retransmittable.go @@ -0,0 +1,34 @@ +package ackhandler + +import "github.com/lucas-clemente/quic-go/internal/wire" + +// Returns a new slice with all non-retransmittable frames deleted. +func stripNonRetransmittableFrames(fs []wire.Frame) []wire.Frame { + res := make([]wire.Frame, 0, len(fs)) + for _, f := range fs { + if IsFrameRetransmittable(f) { + res = append(res, f) + } + } + return res +} + +// IsFrameRetransmittable returns true if the frame should be retransmitted. +func IsFrameRetransmittable(f wire.Frame) bool { + switch f.(type) { + case *wire.AckFrame: + return false + default: + return true + } +} + +// HasRetransmittableFrames returns true if at least one frame is retransmittable. +func HasRetransmittableFrames(fs []wire.Frame) bool { + for _, f := range fs { + if IsFrameRetransmittable(f) { + return true + } + } + return false +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/send_mode.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/send_mode.go new file mode 100644 index 00000000..8cdaa7e6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/send_mode.go @@ -0,0 +1,36 @@ +package ackhandler + +import "fmt" + +// The SendMode says what kind of packets can be sent. +type SendMode uint8 + +const ( + // SendNone means that no packets should be sent + SendNone SendMode = iota + // SendAck means an ACK-only packet should be sent + SendAck + // SendRetransmission means that retransmissions should be sent + SendRetransmission + // SendPTO means that a probe packet should be sent + SendPTO + // SendAny means that any packet should be sent + SendAny +) + +func (s SendMode) String() string { + switch s { + case SendNone: + return "none" + case SendAck: + return "ack" + case SendRetransmission: + return "retransmission" + case SendPTO: + return "pto" + case SendAny: + return "any" + default: + return fmt.Sprintf("invalid send mode: %d", s) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_handler.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_handler.go new file mode 100644 index 00000000..51e28fc0 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_handler.go @@ -0,0 +1,647 @@ +package ackhandler + +import ( + "errors" + "fmt" + "math" + "time" + + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +const ( + // Maximum reordering in time space before time based loss detection considers a packet lost. + // In fraction of an RTT. + timeReorderingFraction = 1.0 / 8 + // Timer granularity. The timer will not be set to a value smaller than granularity. + granularity = time.Millisecond +) + +type packetNumberSpace struct { + history *sentPacketHistory + pns *packetNumberGenerator + + largestAcked protocol.PacketNumber + largestSent protocol.PacketNumber +} + +func newPacketNumberSpace(initialPN protocol.PacketNumber) *packetNumberSpace { + return &packetNumberSpace{ + history: newSentPacketHistory(), + pns: newPacketNumberGenerator(initialPN, protocol.SkipPacketAveragePeriodLength), + } +} + +type sentPacketHandler struct { + lastSentRetransmittablePacketTime time.Time // only applies to the application-data packet number space + lastSentCryptoPacketTime time.Time + + nextSendTime time.Time + + initialPackets *packetNumberSpace + handshakePackets *packetNumberSpace + oneRTTPackets *packetNumberSpace + + // lowestNotConfirmedAcked is the lowest packet number that we sent an ACK for, but haven't received confirmation, that this ACK actually arrived + // example: we send an ACK for packets 90-100 with packet number 20 + // once we receive an ACK from the peer for packet 20, the lowestNotConfirmedAcked is 101 + // Only applies to the application-data packet number space. + lowestNotConfirmedAcked protocol.PacketNumber + + retransmissionQueue []*Packet + + bytesInFlight protocol.ByteCount + + congestion congestion.SendAlgorithm + rttStats *congestion.RTTStats + + handshakeComplete bool + + // The number of times the crypto packets have been retransmitted without receiving an ack. + cryptoCount uint32 + // The number of times a PTO has been sent without receiving an ack. + ptoCount uint32 + // The number of PTO probe packets that should be sent. + // Only applies to the application-data packet number space. + numProbesToSend int + + // The time at which the next packet will be considered lost based on early transmit or exceeding the reordering window in time. + lossTime time.Time + + // The alarm timeout + alarm time.Time + + logger utils.Logger +} + +// NewSentPacketHandler creates a new sentPacketHandler +func NewSentPacketHandler( + initialPacketNumber protocol.PacketNumber, + rttStats *congestion.RTTStats, + logger utils.Logger, +) SentPacketHandler { + congestion := congestion.NewCubicSender( + congestion.DefaultClock{}, + rttStats, + false, /* don't use reno since chromium doesn't (why?) */ + protocol.InitialCongestionWindow, + protocol.DefaultMaxCongestionWindow, + ) + + return &sentPacketHandler{ + initialPackets: newPacketNumberSpace(initialPacketNumber), + handshakePackets: newPacketNumberSpace(0), + oneRTTPackets: newPacketNumberSpace(0), + rttStats: rttStats, + congestion: congestion, + logger: logger, + } +} + +func (h *sentPacketHandler) SetHandshakeComplete() { + h.logger.Debugf("Handshake complete. Discarding all outstanding crypto packets.") + var queue []*Packet + for _, packet := range h.retransmissionQueue { + if packet.EncryptionLevel == protocol.Encryption1RTT { + queue = append(queue, packet) + } + } + for _, pnSpace := range []*packetNumberSpace{h.initialPackets, h.handshakePackets} { + var cryptoPackets []*Packet + pnSpace.history.Iterate(func(p *Packet) (bool, error) { + cryptoPackets = append(cryptoPackets, p) + return true, nil + }) + for _, p := range cryptoPackets { + pnSpace.history.Remove(p.PacketNumber) + } + } + h.retransmissionQueue = queue + h.handshakeComplete = true +} + +func (h *sentPacketHandler) SentPacket(packet *Packet) { + if isRetransmittable := h.sentPacketImpl(packet); isRetransmittable { + h.getPacketNumberSpace(packet.EncryptionLevel).history.SentPacket(packet) + h.updateLossDetectionAlarm() + } +} + +func (h *sentPacketHandler) SentPacketsAsRetransmission(packets []*Packet, retransmissionOf protocol.PacketNumber) { + var p []*Packet + for _, packet := range packets { + if isRetransmittable := h.sentPacketImpl(packet); isRetransmittable { + p = append(p, packet) + } + } + h.getPacketNumberSpace(p[0].EncryptionLevel).history.SentPacketsAsRetransmission(p, retransmissionOf) + h.updateLossDetectionAlarm() +} + +func (h *sentPacketHandler) getPacketNumberSpace(encLevel protocol.EncryptionLevel) *packetNumberSpace { + switch encLevel { + case protocol.EncryptionInitial: + return h.initialPackets + case protocol.EncryptionHandshake: + return h.handshakePackets + case protocol.Encryption1RTT: + return h.oneRTTPackets + default: + panic("invalid packet number space") + } +} + +func (h *sentPacketHandler) sentPacketImpl(packet *Packet) bool /* isRetransmittable */ { + pnSpace := h.getPacketNumberSpace(packet.EncryptionLevel) + + if h.logger.Debug() && pnSpace.largestSent != 0 { + for p := pnSpace.largestSent + 1; p < packet.PacketNumber; p++ { + h.logger.Debugf("Skipping packet number %#x", p) + } + } + + pnSpace.largestSent = packet.PacketNumber + + if len(packet.Frames) > 0 { + if ackFrame, ok := packet.Frames[0].(*wire.AckFrame); ok { + packet.largestAcked = ackFrame.LargestAcked() + } + } + + packet.Frames = stripNonRetransmittableFrames(packet.Frames) + isRetransmittable := len(packet.Frames) != 0 + + if isRetransmittable { + if packet.EncryptionLevel != protocol.Encryption1RTT { + h.lastSentCryptoPacketTime = packet.SendTime + } + h.lastSentRetransmittablePacketTime = packet.SendTime + packet.includedInBytesInFlight = true + h.bytesInFlight += packet.Length + packet.canBeRetransmitted = true + if h.numProbesToSend > 0 { + h.numProbesToSend-- + } + } + h.congestion.OnPacketSent(packet.SendTime, h.bytesInFlight, packet.PacketNumber, packet.Length, isRetransmittable) + + h.nextSendTime = utils.MaxTime(h.nextSendTime, packet.SendTime).Add(h.congestion.TimeUntilSend(h.bytesInFlight)) + return isRetransmittable +} + +func (h *sentPacketHandler) ReceivedAck(ackFrame *wire.AckFrame, withPacketNumber protocol.PacketNumber, encLevel protocol.EncryptionLevel, rcvTime time.Time) error { + pnSpace := h.getPacketNumberSpace(encLevel) + + largestAcked := ackFrame.LargestAcked() + if largestAcked > pnSpace.largestSent { + return qerr.Error(qerr.ProtocolViolation, "Received ACK for an unsent packet") + } + + pnSpace.largestAcked = utils.MaxPacketNumber(pnSpace.largestAcked, largestAcked) + + if !pnSpace.pns.Validate(ackFrame) { + return qerr.Error(qerr.ProtocolViolation, "Received an ACK for a skipped packet number") + } + + // maybe update the RTT + if p := pnSpace.history.GetPacket(ackFrame.LargestAcked()); p != nil { + h.rttStats.UpdateRTT(rcvTime.Sub(p.SendTime), ackFrame.DelayTime, rcvTime) + if h.logger.Debug() { + h.logger.Debugf("\tupdated RTT: %s (σ: %s)", h.rttStats.SmoothedRTT(), h.rttStats.MeanDeviation()) + } + h.congestion.MaybeExitSlowStart() + } + + ackedPackets, err := h.determineNewlyAckedPackets(ackFrame, encLevel) + if err != nil { + return err + } + if len(ackedPackets) == 0 { + return nil + } + + priorInFlight := h.bytesInFlight + for _, p := range ackedPackets { + // largestAcked == 0 either means that the packet didn't contain an ACK, or it just acked packet 0 + // It is safe to ignore the corner case of packets that just acked packet 0, because + // the lowestPacketNotConfirmedAcked is only used to limit the number of ACK ranges we will send. + if p.largestAcked != 0 && encLevel == protocol.Encryption1RTT { + h.lowestNotConfirmedAcked = utils.MaxPacketNumber(h.lowestNotConfirmedAcked, p.largestAcked+1) + } + if err := h.onPacketAcked(p, rcvTime); err != nil { + return err + } + if p.includedInBytesInFlight { + h.congestion.OnPacketAcked(p.PacketNumber, p.Length, priorInFlight, rcvTime) + } + } + + if err := h.detectLostPackets(rcvTime, encLevel, priorInFlight); err != nil { + return err + } + + h.ptoCount = 0 + h.cryptoCount = 0 + h.numProbesToSend = 0 + + h.updateLossDetectionAlarm() + return nil +} + +func (h *sentPacketHandler) GetLowestPacketNotConfirmedAcked() protocol.PacketNumber { + return h.lowestNotConfirmedAcked +} + +func (h *sentPacketHandler) determineNewlyAckedPackets( + ackFrame *wire.AckFrame, + encLevel protocol.EncryptionLevel, +) ([]*Packet, error) { + pnSpace := h.getPacketNumberSpace(encLevel) + var ackedPackets []*Packet + ackRangeIndex := 0 + lowestAcked := ackFrame.LowestAcked() + largestAcked := ackFrame.LargestAcked() + err := pnSpace.history.Iterate(func(p *Packet) (bool, error) { + // Ignore packets below the lowest acked + if p.PacketNumber < lowestAcked { + return true, nil + } + // Break after largest acked is reached + if p.PacketNumber > largestAcked { + return false, nil + } + + if ackFrame.HasMissingRanges() { + ackRange := ackFrame.AckRanges[len(ackFrame.AckRanges)-1-ackRangeIndex] + + for p.PacketNumber > ackRange.Largest && ackRangeIndex < len(ackFrame.AckRanges)-1 { + ackRangeIndex++ + ackRange = ackFrame.AckRanges[len(ackFrame.AckRanges)-1-ackRangeIndex] + } + + if p.PacketNumber >= ackRange.Smallest { // packet i contained in ACK range + if p.PacketNumber > ackRange.Largest { + return false, fmt.Errorf("BUG: ackhandler would have acked wrong packet 0x%x, while evaluating range 0x%x -> 0x%x", p.PacketNumber, ackRange.Smallest, ackRange.Largest) + } + ackedPackets = append(ackedPackets, p) + } + } else { + ackedPackets = append(ackedPackets, p) + } + return true, nil + }) + if h.logger.Debug() && len(ackedPackets) > 0 { + pns := make([]protocol.PacketNumber, len(ackedPackets)) + for i, p := range ackedPackets { + pns[i] = p.PacketNumber + } + h.logger.Debugf("\tnewly acked packets (%d): %#x", len(pns), pns) + } + return ackedPackets, err +} + +func (h *sentPacketHandler) hasOutstandingCryptoPackets() bool { + return h.initialPackets.history.HasOutstandingPackets() || h.handshakePackets.history.HasOutstandingPackets() +} + +func (h *sentPacketHandler) hasOutstandingPackets() bool { + return h.oneRTTPackets.history.HasOutstandingPackets() || h.hasOutstandingCryptoPackets() +} + +func (h *sentPacketHandler) updateLossDetectionAlarm() { + // Cancel the alarm if no packets are outstanding + if !h.hasOutstandingPackets() { + h.alarm = time.Time{} + return + } + + if h.hasOutstandingCryptoPackets() { + h.alarm = h.lastSentCryptoPacketTime.Add(h.computeCryptoTimeout()) + } else if !h.lossTime.IsZero() { + // Early retransmit timer or time loss detection. + h.alarm = h.lossTime + } else { // PTO alarm + h.alarm = h.lastSentRetransmittablePacketTime.Add(h.computePTOTimeout()) + } +} + +func (h *sentPacketHandler) detectLostPackets( + now time.Time, + encLevel protocol.EncryptionLevel, + priorInFlight protocol.ByteCount, +) error { + if encLevel == protocol.Encryption1RTT { + h.lossTime = time.Time{} + } + pnSpace := h.getPacketNumberSpace(encLevel) + + maxRTT := float64(utils.MaxDuration(h.rttStats.LatestRTT(), h.rttStats.SmoothedRTT())) + delayUntilLost := time.Duration((1.0 + timeReorderingFraction) * maxRTT) + + var lostPackets []*Packet + pnSpace.history.Iterate(func(packet *Packet) (bool, error) { + if packet.PacketNumber > pnSpace.largestAcked { + return false, nil + } + + timeSinceSent := now.Sub(packet.SendTime) + if timeSinceSent > delayUntilLost { + lostPackets = append(lostPackets, packet) + } else if h.lossTime.IsZero() && encLevel == protocol.Encryption1RTT { + if h.logger.Debug() { + h.logger.Debugf("\tsetting loss timer for packet %#x to %s (in %s)", packet.PacketNumber, delayUntilLost, delayUntilLost-timeSinceSent) + } + // Note: This conditional is only entered once per call + h.lossTime = now.Add(delayUntilLost - timeSinceSent) + } + return true, nil + }) + + if h.logger.Debug() && len(lostPackets) > 0 { + pns := make([]protocol.PacketNumber, len(lostPackets)) + for i, p := range lostPackets { + pns[i] = p.PacketNumber + } + h.logger.Debugf("\tlost packets (%d): %#x", len(pns), pns) + } + + for _, p := range lostPackets { + // the bytes in flight need to be reduced no matter if this packet will be retransmitted + if p.includedInBytesInFlight { + h.bytesInFlight -= p.Length + h.congestion.OnPacketLost(p.PacketNumber, p.Length, priorInFlight) + } + if p.canBeRetransmitted { + // queue the packet for retransmission, and report the loss to the congestion controller + if err := h.queuePacketForRetransmission(p, pnSpace); err != nil { + return err + } + } + pnSpace.history.Remove(p.PacketNumber) + } + return nil +} + +func (h *sentPacketHandler) OnAlarm() error { + // When all outstanding are acknowledged, the alarm is canceled in + // updateLossDetectionAlarm. This doesn't reset the timer in the session though. + // When OnAlarm is called, we therefore need to make sure that there are + // actually packets outstanding. + if h.hasOutstandingPackets() { + if err := h.onVerifiedAlarm(); err != nil { + return err + } + } + h.updateLossDetectionAlarm() + return nil +} + +func (h *sentPacketHandler) onVerifiedAlarm() error { + var err error + if h.hasOutstandingCryptoPackets() { + if h.logger.Debug() { + h.logger.Debugf("Loss detection alarm fired in crypto mode. Crypto count: %d", h.cryptoCount) + } + h.cryptoCount++ + err = h.queueCryptoPacketsForRetransmission() + } else if !h.lossTime.IsZero() { + if h.logger.Debug() { + h.logger.Debugf("Loss detection alarm fired in loss timer mode. Loss time: %s", h.lossTime) + } + // Early retransmit or time loss detection + err = h.detectLostPackets(time.Now(), protocol.Encryption1RTT, h.bytesInFlight) + } else { // PTO + if h.logger.Debug() { + h.logger.Debugf("Loss detection alarm fired in PTO mode. PTO count: %d", h.ptoCount) + } + h.ptoCount++ + h.numProbesToSend += 2 + } + return err +} + +func (h *sentPacketHandler) GetAlarmTimeout() time.Time { + return h.alarm +} + +func (h *sentPacketHandler) onPacketAcked(p *Packet, rcvTime time.Time) error { + pnSpace := h.getPacketNumberSpace(p.EncryptionLevel) + // This happens if a packet and its retransmissions is acked in the same ACK. + // As soon as we process the first one, this will remove all the retransmissions, + // so we won't find the retransmitted packet number later. + if packet := pnSpace.history.GetPacket(p.PacketNumber); packet == nil { + return nil + } + + // only report the acking of this packet to the congestion controller if: + // * it is a retransmittable packet + // * this packet wasn't retransmitted yet + if p.isRetransmission { + // that the parent doesn't exist is expected to happen every time the original packet was already acked + if parent := pnSpace.history.GetPacket(p.retransmissionOf); parent != nil { + if len(parent.retransmittedAs) == 1 { + parent.retransmittedAs = nil + } else { + // remove this packet from the slice of retransmission + retransmittedAs := make([]protocol.PacketNumber, 0, len(parent.retransmittedAs)-1) + for _, pn := range parent.retransmittedAs { + if pn != p.PacketNumber { + retransmittedAs = append(retransmittedAs, pn) + } + } + parent.retransmittedAs = retransmittedAs + } + } + } + // this also applies to packets that have been retransmitted as probe packets + if p.includedInBytesInFlight { + h.bytesInFlight -= p.Length + } + if err := h.stopRetransmissionsFor(p, pnSpace); err != nil { + return err + } + return pnSpace.history.Remove(p.PacketNumber) +} + +func (h *sentPacketHandler) stopRetransmissionsFor(p *Packet, pnSpace *packetNumberSpace) error { + if err := pnSpace.history.MarkCannotBeRetransmitted(p.PacketNumber); err != nil { + return err + } + for _, r := range p.retransmittedAs { + packet := pnSpace.history.GetPacket(r) + if packet == nil { + return fmt.Errorf("sent packet handler BUG: marking packet as not retransmittable %d (retransmission of %d) not found in history", r, p.PacketNumber) + } + h.stopRetransmissionsFor(packet, pnSpace) + } + return nil +} + +func (h *sentPacketHandler) DequeuePacketForRetransmission() *Packet { + if len(h.retransmissionQueue) == 0 { + return nil + } + packet := h.retransmissionQueue[0] + // Shift the slice and don't retain anything that isn't needed. + copy(h.retransmissionQueue, h.retransmissionQueue[1:]) + h.retransmissionQueue[len(h.retransmissionQueue)-1] = nil + h.retransmissionQueue = h.retransmissionQueue[:len(h.retransmissionQueue)-1] + return packet +} + +func (h *sentPacketHandler) DequeueProbePacket() (*Packet, error) { + pnSpace := h.getPacketNumberSpace(protocol.Encryption1RTT) + if len(h.retransmissionQueue) == 0 { + p := pnSpace.history.FirstOutstanding() + if p == nil { + return nil, errors.New("cannot dequeue a probe packet. No outstanding packets") + } + if err := h.queuePacketForRetransmission(p, pnSpace); err != nil { + return nil, err + } + } + return h.DequeuePacketForRetransmission(), nil +} + +func (h *sentPacketHandler) PeekPacketNumber(encLevel protocol.EncryptionLevel) (protocol.PacketNumber, protocol.PacketNumberLen) { + pnSpace := h.getPacketNumberSpace(encLevel) + + var lowestUnacked protocol.PacketNumber + if p := pnSpace.history.FirstOutstanding(); p != nil { + lowestUnacked = p.PacketNumber + } else { + lowestUnacked = pnSpace.largestAcked + 1 + } + + pn := pnSpace.pns.Peek() + return pn, protocol.GetPacketNumberLengthForHeader(pn, lowestUnacked) +} + +func (h *sentPacketHandler) PopPacketNumber(encLevel protocol.EncryptionLevel) protocol.PacketNumber { + return h.getPacketNumberSpace(encLevel).pns.Pop() +} + +func (h *sentPacketHandler) SendMode() SendMode { + numTrackedPackets := len(h.retransmissionQueue) + h.initialPackets.history.Len() + + h.handshakePackets.history.Len() + h.oneRTTPackets.history.Len() + + // Don't send any packets if we're keeping track of the maximum number of packets. + // Note that since MaxOutstandingSentPackets is smaller than MaxTrackedSentPackets, + // we will stop sending out new data when reaching MaxOutstandingSentPackets, + // but still allow sending of retransmissions and ACKs. + if numTrackedPackets >= protocol.MaxTrackedSentPackets { + if h.logger.Debug() { + h.logger.Debugf("Limited by the number of tracked packets: tracking %d packets, maximum %d", numTrackedPackets, protocol.MaxTrackedSentPackets) + } + return SendNone + } + if h.numProbesToSend > 0 { + return SendPTO + } + // Only send ACKs if we're congestion limited. + if cwnd := h.congestion.GetCongestionWindow(); h.bytesInFlight > cwnd { + if h.logger.Debug() { + h.logger.Debugf("Congestion limited: bytes in flight %d, window %d", h.bytesInFlight, cwnd) + } + return SendAck + } + // Send retransmissions first, if there are any. + if len(h.retransmissionQueue) > 0 { + return SendRetransmission + } + if numTrackedPackets >= protocol.MaxOutstandingSentPackets { + if h.logger.Debug() { + h.logger.Debugf("Max outstanding limited: tracking %d packets, maximum: %d", numTrackedPackets, protocol.MaxOutstandingSentPackets) + } + return SendAck + } + return SendAny +} + +func (h *sentPacketHandler) TimeUntilSend() time.Time { + return h.nextSendTime +} + +func (h *sentPacketHandler) ShouldSendNumPackets() int { + if h.numProbesToSend > 0 { + // RTO probes should not be paced, but must be sent immediately. + return h.numProbesToSend + } + delay := h.congestion.TimeUntilSend(h.bytesInFlight) + if delay == 0 || delay > protocol.MinPacingDelay { + return 1 + } + return int(math.Ceil(float64(protocol.MinPacingDelay) / float64(delay))) +} + +func (h *sentPacketHandler) queueCryptoPacketsForRetransmission() error { + if err := h.queueAllPacketsForRetransmission(protocol.EncryptionInitial); err != nil { + return err + } + return h.queueAllPacketsForRetransmission(protocol.EncryptionHandshake) +} + +func (h *sentPacketHandler) queueAllPacketsForRetransmission(encLevel protocol.EncryptionLevel) error { + var packets []*Packet + pnSpace := h.getPacketNumberSpace(encLevel) + pnSpace.history.Iterate(func(p *Packet) (bool, error) { + if p.canBeRetransmitted { + packets = append(packets, p) + } + return true, nil + }) + for _, p := range packets { + h.logger.Debugf("Queueing packet %#x (%s) as a crypto retransmission", p.PacketNumber, encLevel) + if err := h.queuePacketForRetransmission(p, pnSpace); err != nil { + return err + } + } + return nil +} + +func (h *sentPacketHandler) queuePacketForRetransmission(p *Packet, pnSpace *packetNumberSpace) error { + if !p.canBeRetransmitted { + return fmt.Errorf("sent packet handler BUG: packet %d already queued for retransmission", p.PacketNumber) + } + if err := pnSpace.history.MarkCannotBeRetransmitted(p.PacketNumber); err != nil { + return err + } + h.retransmissionQueue = append(h.retransmissionQueue, p) + return nil +} + +func (h *sentPacketHandler) computeCryptoTimeout() time.Duration { + duration := utils.MaxDuration(2*h.rttStats.SmoothedOrInitialRTT(), granularity) + // exponential backoff + // There's an implicit limit to this set by the crypto timeout. + return duration << h.cryptoCount +} + +func (h *sentPacketHandler) computePTOTimeout() time.Duration { + // TODO(#1236): include the max_ack_delay + duration := utils.MaxDuration(h.rttStats.SmoothedOrInitialRTT()+4*h.rttStats.MeanDeviation(), granularity) + return duration << h.ptoCount +} + +func (h *sentPacketHandler) ResetForRetry() error { + h.cryptoCount = 0 + h.bytesInFlight = 0 + var packets []*Packet + h.initialPackets.history.Iterate(func(p *Packet) (bool, error) { + if p.canBeRetransmitted { + packets = append(packets, p) + } + return true, nil + }) + for _, p := range packets { + h.logger.Debugf("Queueing packet %#x for retransmission.", p.PacketNumber) + h.retransmissionQueue = append(h.retransmissionQueue, p) + } + h.initialPackets = newPacketNumberSpace(h.initialPackets.pns.Pop()) + h.updateLossDetectionAlarm() + return nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_history.go b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_history.go new file mode 100644 index 00000000..393ebba6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/ackhandler/sent_packet_history.go @@ -0,0 +1,148 @@ +package ackhandler + +import ( + "fmt" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +type sentPacketHistory struct { + packetList *PacketList + packetMap map[protocol.PacketNumber]*PacketElement + + numOutstandingPackets int + + firstOutstanding *PacketElement +} + +func newSentPacketHistory() *sentPacketHistory { + return &sentPacketHistory{ + packetList: NewPacketList(), + packetMap: make(map[protocol.PacketNumber]*PacketElement), + } +} + +func (h *sentPacketHistory) SentPacket(p *Packet) { + h.sentPacketImpl(p) +} + +func (h *sentPacketHistory) sentPacketImpl(p *Packet) *PacketElement { + el := h.packetList.PushBack(*p) + h.packetMap[p.PacketNumber] = el + if h.firstOutstanding == nil { + h.firstOutstanding = el + } + if p.canBeRetransmitted { + h.numOutstandingPackets++ + } + return el +} + +func (h *sentPacketHistory) SentPacketsAsRetransmission(packets []*Packet, retransmissionOf protocol.PacketNumber) { + retransmission, ok := h.packetMap[retransmissionOf] + // The retransmitted packet is not present anymore. + // This can happen if it was acked in between dequeueing of the retransmission and sending. + // Just treat the retransmissions as normal packets. + // TODO: This won't happen if we clear packets queued for retransmission on new ACKs. + if !ok { + for _, packet := range packets { + h.sentPacketImpl(packet) + } + return + } + retransmission.Value.retransmittedAs = make([]protocol.PacketNumber, len(packets)) + for i, packet := range packets { + retransmission.Value.retransmittedAs[i] = packet.PacketNumber + el := h.sentPacketImpl(packet) + el.Value.isRetransmission = true + el.Value.retransmissionOf = retransmissionOf + } +} + +func (h *sentPacketHistory) GetPacket(p protocol.PacketNumber) *Packet { + if el, ok := h.packetMap[p]; ok { + return &el.Value + } + return nil +} + +// Iterate iterates through all packets. +// The callback must not modify the history. +func (h *sentPacketHistory) Iterate(cb func(*Packet) (cont bool, err error)) error { + cont := true + for el := h.packetList.Front(); cont && el != nil; el = el.Next() { + var err error + cont, err = cb(&el.Value) + if err != nil { + return err + } + } + return nil +} + +// FirstOutStanding returns the first outstanding packet. +// It must not be modified (e.g. retransmitted). +// Use DequeueFirstPacketForRetransmission() to retransmit it. +func (h *sentPacketHistory) FirstOutstanding() *Packet { + if h.firstOutstanding == nil { + return nil + } + return &h.firstOutstanding.Value +} + +// QueuePacketForRetransmission marks a packet for retransmission. +// A packet can only be queued once. +func (h *sentPacketHistory) MarkCannotBeRetransmitted(pn protocol.PacketNumber) error { + el, ok := h.packetMap[pn] + if !ok { + return fmt.Errorf("sent packet history: packet %d not found", pn) + } + if el.Value.canBeRetransmitted { + h.numOutstandingPackets-- + if h.numOutstandingPackets < 0 { + panic("numOutstandingHandshakePackets negative") + } + } + el.Value.canBeRetransmitted = false + if el == h.firstOutstanding { + h.readjustFirstOutstanding() + } + return nil +} + +// readjustFirstOutstanding readjusts the pointer to the first outstanding packet. +// This is necessary every time the first outstanding packet is deleted or retransmitted. +func (h *sentPacketHistory) readjustFirstOutstanding() { + el := h.firstOutstanding.Next() + for el != nil && !el.Value.canBeRetransmitted { + el = el.Next() + } + h.firstOutstanding = el +} + +func (h *sentPacketHistory) Len() int { + return len(h.packetMap) +} + +func (h *sentPacketHistory) Remove(p protocol.PacketNumber) error { + el, ok := h.packetMap[p] + if !ok { + return fmt.Errorf("packet %d not found in sent packet history", p) + } + if el == h.firstOutstanding { + h.readjustFirstOutstanding() + } + if el.Value.canBeRetransmitted { + h.numOutstandingPackets-- + if h.numOutstandingPackets < 0 { + panic("numOutstandingHandshakePackets negative") + } + } + h.packetList.Remove(el) + delete(h.packetMap, p) + return nil +} + +func (h *sentPacketHistory) HasOutstandingPackets() bool { + return h.numOutstandingPackets > 0 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/bandwidth.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/bandwidth.go new file mode 100644 index 00000000..54269c56 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/bandwidth.go @@ -0,0 +1,22 @@ +package congestion + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// Bandwidth of a connection +type Bandwidth uint64 + +const ( + // BitsPerSecond is 1 bit per second + BitsPerSecond Bandwidth = 1 + // BytesPerSecond is 1 byte per second + BytesPerSecond = 8 * BitsPerSecond +) + +// BandwidthFromDelta calculates the bandwidth from a number of bytes and a time delta +func BandwidthFromDelta(bytes protocol.ByteCount, delta time.Duration) Bandwidth { + return Bandwidth(bytes) * Bandwidth(time.Second) / Bandwidth(delta) * BytesPerSecond +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/clock.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/clock.go new file mode 100644 index 00000000..405fae70 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/clock.go @@ -0,0 +1,18 @@ +package congestion + +import "time" + +// A Clock returns the current time +type Clock interface { + Now() time.Time +} + +// DefaultClock implements the Clock interface using the Go stdlib clock. +type DefaultClock struct{} + +var _ Clock = DefaultClock{} + +// Now gets the current time +func (DefaultClock) Now() time.Time { + return time.Now() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic.go new file mode 100644 index 00000000..dcf91fc6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic.go @@ -0,0 +1,210 @@ +package congestion + +import ( + "math" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// This cubic implementation is based on the one found in Chromiums's QUIC +// implementation, in the files net/quic/congestion_control/cubic.{hh,cc}. + +// Constants based on TCP defaults. +// The following constants are in 2^10 fractions of a second instead of ms to +// allow a 10 shift right to divide. + +// 1024*1024^3 (first 1024 is from 0.100^3) +// where 0.100 is 100 ms which is the scaling round trip time. +const cubeScale = 40 +const cubeCongestionWindowScale = 410 +const cubeFactor protocol.ByteCount = 1 << cubeScale / cubeCongestionWindowScale / protocol.DefaultTCPMSS + +const defaultNumConnections = 2 + +// Default Cubic backoff factor +const beta float32 = 0.7 + +// Additional backoff factor when loss occurs in the concave part of the Cubic +// curve. This additional backoff factor is expected to give up bandwidth to +// new concurrent flows and speed up convergence. +const betaLastMax float32 = 0.85 + +// Cubic implements the cubic algorithm from TCP +type Cubic struct { + clock Clock + + // Number of connections to simulate. + numConnections int + + // Time when this cycle started, after last loss event. + epoch time.Time + + // Max congestion window used just before last loss event. + // Note: to improve fairness to other streams an additional back off is + // applied to this value if the new value is below our latest value. + lastMaxCongestionWindow protocol.ByteCount + + // Number of acked bytes since the cycle started (epoch). + ackedBytesCount protocol.ByteCount + + // TCP Reno equivalent congestion window in packets. + estimatedTCPcongestionWindow protocol.ByteCount + + // Origin point of cubic function. + originPointCongestionWindow protocol.ByteCount + + // Time to origin point of cubic function in 2^10 fractions of a second. + timeToOriginPoint uint32 + + // Last congestion window in packets computed by cubic function. + lastTargetCongestionWindow protocol.ByteCount +} + +// NewCubic returns a new Cubic instance +func NewCubic(clock Clock) *Cubic { + c := &Cubic{ + clock: clock, + numConnections: defaultNumConnections, + } + c.Reset() + return c +} + +// Reset is called after a timeout to reset the cubic state +func (c *Cubic) Reset() { + c.epoch = time.Time{} + c.lastMaxCongestionWindow = 0 + c.ackedBytesCount = 0 + c.estimatedTCPcongestionWindow = 0 + c.originPointCongestionWindow = 0 + c.timeToOriginPoint = 0 + c.lastTargetCongestionWindow = 0 +} + +func (c *Cubic) alpha() float32 { + // TCPFriendly alpha is described in Section 3.3 of the CUBIC paper. Note that + // beta here is a cwnd multiplier, and is equal to 1-beta from the paper. + // We derive the equivalent alpha for an N-connection emulation as: + b := c.beta() + return 3 * float32(c.numConnections) * float32(c.numConnections) * (1 - b) / (1 + b) +} + +func (c *Cubic) beta() float32 { + // kNConnectionBeta is the backoff factor after loss for our N-connection + // emulation, which emulates the effective backoff of an ensemble of N + // TCP-Reno connections on a single loss event. The effective multiplier is + // computed as: + return (float32(c.numConnections) - 1 + beta) / float32(c.numConnections) +} + +func (c *Cubic) betaLastMax() float32 { + // betaLastMax is the additional backoff factor after loss for our + // N-connection emulation, which emulates the additional backoff of + // an ensemble of N TCP-Reno connections on a single loss event. The + // effective multiplier is computed as: + return (float32(c.numConnections) - 1 + betaLastMax) / float32(c.numConnections) +} + +// OnApplicationLimited is called on ack arrival when sender is unable to use +// the available congestion window. Resets Cubic state during quiescence. +func (c *Cubic) OnApplicationLimited() { + // When sender is not using the available congestion window, the window does + // not grow. But to be RTT-independent, Cubic assumes that the sender has been + // using the entire window during the time since the beginning of the current + // "epoch" (the end of the last loss recovery period). Since + // application-limited periods break this assumption, we reset the epoch when + // in such a period. This reset effectively freezes congestion window growth + // through application-limited periods and allows Cubic growth to continue + // when the entire window is being used. + c.epoch = time.Time{} +} + +// CongestionWindowAfterPacketLoss computes a new congestion window to use after +// a loss event. Returns the new congestion window in packets. The new +// congestion window is a multiplicative decrease of our current window. +func (c *Cubic) CongestionWindowAfterPacketLoss(currentCongestionWindow protocol.ByteCount) protocol.ByteCount { + if currentCongestionWindow+protocol.DefaultTCPMSS < c.lastMaxCongestionWindow { + // We never reached the old max, so assume we are competing with another + // flow. Use our extra back off factor to allow the other flow to go up. + c.lastMaxCongestionWindow = protocol.ByteCount(c.betaLastMax() * float32(currentCongestionWindow)) + } else { + c.lastMaxCongestionWindow = currentCongestionWindow + } + c.epoch = time.Time{} // Reset time. + return protocol.ByteCount(float32(currentCongestionWindow) * c.beta()) +} + +// CongestionWindowAfterAck computes a new congestion window to use after a received ACK. +// Returns the new congestion window in packets. The new congestion window +// follows a cubic function that depends on the time passed since last +// packet loss. +func (c *Cubic) CongestionWindowAfterAck( + ackedBytes protocol.ByteCount, + currentCongestionWindow protocol.ByteCount, + delayMin time.Duration, + eventTime time.Time, +) protocol.ByteCount { + c.ackedBytesCount += ackedBytes + + if c.epoch.IsZero() { + // First ACK after a loss event. + c.epoch = eventTime // Start of epoch. + c.ackedBytesCount = ackedBytes // Reset count. + // Reset estimated_tcp_congestion_window_ to be in sync with cubic. + c.estimatedTCPcongestionWindow = currentCongestionWindow + if c.lastMaxCongestionWindow <= currentCongestionWindow { + c.timeToOriginPoint = 0 + c.originPointCongestionWindow = currentCongestionWindow + } else { + c.timeToOriginPoint = uint32(math.Cbrt(float64(cubeFactor * (c.lastMaxCongestionWindow - currentCongestionWindow)))) + c.originPointCongestionWindow = c.lastMaxCongestionWindow + } + } + + // Change the time unit from microseconds to 2^10 fractions per second. Take + // the round trip time in account. This is done to allow us to use shift as a + // divide operator. + elapsedTime := int64(eventTime.Add(delayMin).Sub(c.epoch)/time.Microsecond) << 10 / (1000 * 1000) + + // Right-shifts of negative, signed numbers have implementation-dependent + // behavior, so force the offset to be positive, as is done in the kernel. + offset := int64(c.timeToOriginPoint) - elapsedTime + if offset < 0 { + offset = -offset + } + + deltaCongestionWindow := protocol.ByteCount(cubeCongestionWindowScale*offset*offset*offset) * protocol.DefaultTCPMSS >> cubeScale + var targetCongestionWindow protocol.ByteCount + if elapsedTime > int64(c.timeToOriginPoint) { + targetCongestionWindow = c.originPointCongestionWindow + deltaCongestionWindow + } else { + targetCongestionWindow = c.originPointCongestionWindow - deltaCongestionWindow + } + // Limit the CWND increase to half the acked bytes. + targetCongestionWindow = utils.MinByteCount(targetCongestionWindow, currentCongestionWindow+c.ackedBytesCount/2) + + // Increase the window by approximately Alpha * 1 MSS of bytes every + // time we ack an estimated tcp window of bytes. For small + // congestion windows (less than 25), the formula below will + // increase slightly slower than linearly per estimated tcp window + // of bytes. + c.estimatedTCPcongestionWindow += protocol.ByteCount(float32(c.ackedBytesCount) * c.alpha() * float32(protocol.DefaultTCPMSS) / float32(c.estimatedTCPcongestionWindow)) + c.ackedBytesCount = 0 + + // We have a new cubic congestion window. + c.lastTargetCongestionWindow = targetCongestionWindow + + // Compute target congestion_window based on cubic target and estimated TCP + // congestion_window, use highest (fastest). + if targetCongestionWindow < c.estimatedTCPcongestionWindow { + targetCongestionWindow = c.estimatedTCPcongestionWindow + } + return targetCongestionWindow +} + +// SetNumConnections sets the number of emulated connections +func (c *Cubic) SetNumConnections(n int) { + c.numConnections = n +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic_sender.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic_sender.go new file mode 100644 index 00000000..6f3d3289 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/cubic_sender.go @@ -0,0 +1,314 @@ +package congestion + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +const ( + maxBurstBytes = 3 * protocol.DefaultTCPMSS + renoBeta float32 = 0.7 // Reno backoff factor. + defaultMinimumCongestionWindow protocol.ByteCount = 2 * protocol.DefaultTCPMSS +) + +type cubicSender struct { + hybridSlowStart HybridSlowStart + prr PrrSender + rttStats *RTTStats + stats connectionStats + cubic *Cubic + + reno bool + + // Track the largest packet that has been sent. + largestSentPacketNumber protocol.PacketNumber + + // Track the largest packet that has been acked. + largestAckedPacketNumber protocol.PacketNumber + + // Track the largest packet number outstanding when a CWND cutback occurs. + largestSentAtLastCutback protocol.PacketNumber + + // Whether the last loss event caused us to exit slowstart. + // Used for stats collection of slowstartPacketsLost + lastCutbackExitedSlowstart bool + + // When true, exit slow start with large cutback of congestion window. + slowStartLargeReduction bool + + // Congestion window in packets. + congestionWindow protocol.ByteCount + + // Minimum congestion window in packets. + minCongestionWindow protocol.ByteCount + + // Maximum congestion window. + maxCongestionWindow protocol.ByteCount + + // Slow start congestion window in bytes, aka ssthresh. + slowstartThreshold protocol.ByteCount + + // Number of connections to simulate. + numConnections int + + // ACK counter for the Reno implementation. + numAckedPackets uint64 + + initialCongestionWindow protocol.ByteCount + initialMaxCongestionWindow protocol.ByteCount + + minSlowStartExitWindow protocol.ByteCount +} + +var _ SendAlgorithm = &cubicSender{} +var _ SendAlgorithmWithDebugInfo = &cubicSender{} + +// NewCubicSender makes a new cubic sender +func NewCubicSender(clock Clock, rttStats *RTTStats, reno bool, initialCongestionWindow, initialMaxCongestionWindow protocol.ByteCount) SendAlgorithmWithDebugInfo { + return &cubicSender{ + rttStats: rttStats, + initialCongestionWindow: initialCongestionWindow, + initialMaxCongestionWindow: initialMaxCongestionWindow, + congestionWindow: initialCongestionWindow, + minCongestionWindow: defaultMinimumCongestionWindow, + slowstartThreshold: initialMaxCongestionWindow, + maxCongestionWindow: initialMaxCongestionWindow, + numConnections: defaultNumConnections, + cubic: NewCubic(clock), + reno: reno, + } +} + +// TimeUntilSend returns when the next packet should be sent. +func (c *cubicSender) TimeUntilSend(bytesInFlight protocol.ByteCount) time.Duration { + if c.InRecovery() { + // PRR is used when in recovery. + if c.prr.CanSend(c.GetCongestionWindow(), bytesInFlight, c.GetSlowStartThreshold()) { + return 0 + } + } + return c.rttStats.SmoothedRTT() * time.Duration(protocol.DefaultTCPMSS) / time.Duration(2*c.GetCongestionWindow()) +} + +func (c *cubicSender) OnPacketSent( + sentTime time.Time, + bytesInFlight protocol.ByteCount, + packetNumber protocol.PacketNumber, + bytes protocol.ByteCount, + isRetransmittable bool, +) { + if !isRetransmittable { + return + } + if c.InRecovery() { + // PRR is used when in recovery. + c.prr.OnPacketSent(bytes) + } + c.largestSentPacketNumber = packetNumber + c.hybridSlowStart.OnPacketSent(packetNumber) +} + +func (c *cubicSender) InRecovery() bool { + return c.largestAckedPacketNumber <= c.largestSentAtLastCutback && c.largestAckedPacketNumber != 0 +} + +func (c *cubicSender) InSlowStart() bool { + return c.GetCongestionWindow() < c.GetSlowStartThreshold() +} + +func (c *cubicSender) GetCongestionWindow() protocol.ByteCount { + return c.congestionWindow +} + +func (c *cubicSender) GetSlowStartThreshold() protocol.ByteCount { + return c.slowstartThreshold +} + +func (c *cubicSender) ExitSlowstart() { + c.slowstartThreshold = c.congestionWindow +} + +func (c *cubicSender) SlowstartThreshold() protocol.ByteCount { + return c.slowstartThreshold +} + +func (c *cubicSender) MaybeExitSlowStart() { + if c.InSlowStart() && c.hybridSlowStart.ShouldExitSlowStart(c.rttStats.LatestRTT(), c.rttStats.MinRTT(), c.GetCongestionWindow()/protocol.DefaultTCPMSS) { + c.ExitSlowstart() + } +} + +func (c *cubicSender) OnPacketAcked( + ackedPacketNumber protocol.PacketNumber, + ackedBytes protocol.ByteCount, + priorInFlight protocol.ByteCount, + eventTime time.Time, +) { + c.largestAckedPacketNumber = utils.MaxPacketNumber(ackedPacketNumber, c.largestAckedPacketNumber) + if c.InRecovery() { + // PRR is used when in recovery. + c.prr.OnPacketAcked(ackedBytes) + return + } + c.maybeIncreaseCwnd(ackedPacketNumber, ackedBytes, priorInFlight, eventTime) + if c.InSlowStart() { + c.hybridSlowStart.OnPacketAcked(ackedPacketNumber) + } +} + +func (c *cubicSender) OnPacketLost( + packetNumber protocol.PacketNumber, + lostBytes protocol.ByteCount, + priorInFlight protocol.ByteCount, +) { + // TCP NewReno (RFC6582) says that once a loss occurs, any losses in packets + // already sent should be treated as a single loss event, since it's expected. + if packetNumber <= c.largestSentAtLastCutback { + if c.lastCutbackExitedSlowstart { + c.stats.slowstartPacketsLost++ + c.stats.slowstartBytesLost += lostBytes + if c.slowStartLargeReduction { + // Reduce congestion window by lost_bytes for every loss. + c.congestionWindow = utils.MaxByteCount(c.congestionWindow-lostBytes, c.minSlowStartExitWindow) + c.slowstartThreshold = c.congestionWindow + } + } + return + } + c.lastCutbackExitedSlowstart = c.InSlowStart() + if c.InSlowStart() { + c.stats.slowstartPacketsLost++ + } + + c.prr.OnPacketLost(priorInFlight) + + // TODO(chromium): Separate out all of slow start into a separate class. + if c.slowStartLargeReduction && c.InSlowStart() { + if c.congestionWindow >= 2*c.initialCongestionWindow { + c.minSlowStartExitWindow = c.congestionWindow / 2 + } + c.congestionWindow -= protocol.DefaultTCPMSS + } else if c.reno { + c.congestionWindow = protocol.ByteCount(float32(c.congestionWindow) * c.RenoBeta()) + } else { + c.congestionWindow = c.cubic.CongestionWindowAfterPacketLoss(c.congestionWindow) + } + if c.congestionWindow < c.minCongestionWindow { + c.congestionWindow = c.minCongestionWindow + } + c.slowstartThreshold = c.congestionWindow + c.largestSentAtLastCutback = c.largestSentPacketNumber + // reset packet count from congestion avoidance mode. We start + // counting again when we're out of recovery. + c.numAckedPackets = 0 +} + +func (c *cubicSender) RenoBeta() float32 { + // kNConnectionBeta is the backoff factor after loss for our N-connection + // emulation, which emulates the effective backoff of an ensemble of N + // TCP-Reno connections on a single loss event. The effective multiplier is + // computed as: + return (float32(c.numConnections) - 1. + renoBeta) / float32(c.numConnections) +} + +// Called when we receive an ack. Normal TCP tracks how many packets one ack +// represents, but quic has a separate ack for each packet. +func (c *cubicSender) maybeIncreaseCwnd( + ackedPacketNumber protocol.PacketNumber, + ackedBytes protocol.ByteCount, + priorInFlight protocol.ByteCount, + eventTime time.Time, +) { + // Do not increase the congestion window unless the sender is close to using + // the current window. + if !c.isCwndLimited(priorInFlight) { + c.cubic.OnApplicationLimited() + return + } + if c.congestionWindow >= c.maxCongestionWindow { + return + } + if c.InSlowStart() { + // TCP slow start, exponential growth, increase by one for each ACK. + c.congestionWindow += protocol.DefaultTCPMSS + return + } + // Congestion avoidance + if c.reno { + // Classic Reno congestion avoidance. + c.numAckedPackets++ + // Divide by num_connections to smoothly increase the CWND at a faster + // rate than conventional Reno. + if c.numAckedPackets*uint64(c.numConnections) >= uint64(c.congestionWindow)/uint64(protocol.DefaultTCPMSS) { + c.congestionWindow += protocol.DefaultTCPMSS + c.numAckedPackets = 0 + } + } else { + c.congestionWindow = utils.MinByteCount(c.maxCongestionWindow, c.cubic.CongestionWindowAfterAck(ackedBytes, c.congestionWindow, c.rttStats.MinRTT(), eventTime)) + } +} + +func (c *cubicSender) isCwndLimited(bytesInFlight protocol.ByteCount) bool { + congestionWindow := c.GetCongestionWindow() + if bytesInFlight >= congestionWindow { + return true + } + availableBytes := congestionWindow - bytesInFlight + slowStartLimited := c.InSlowStart() && bytesInFlight > congestionWindow/2 + return slowStartLimited || availableBytes <= maxBurstBytes +} + +// BandwidthEstimate returns the current bandwidth estimate +func (c *cubicSender) BandwidthEstimate() Bandwidth { + srtt := c.rttStats.SmoothedRTT() + if srtt == 0 { + // If we haven't measured an rtt, the bandwidth estimate is unknown. + return 0 + } + return BandwidthFromDelta(c.GetCongestionWindow(), srtt) +} + +// HybridSlowStart returns the hybrid slow start instance for testing +func (c *cubicSender) HybridSlowStart() *HybridSlowStart { + return &c.hybridSlowStart +} + +// SetNumEmulatedConnections sets the number of emulated connections +func (c *cubicSender) SetNumEmulatedConnections(n int) { + c.numConnections = utils.Max(n, 1) + c.cubic.SetNumConnections(c.numConnections) +} + +// OnRetransmissionTimeout is called on an retransmission timeout +func (c *cubicSender) OnRetransmissionTimeout(packetsRetransmitted bool) { + c.largestSentAtLastCutback = 0 + if !packetsRetransmitted { + return + } + c.hybridSlowStart.Restart() + c.cubic.Reset() + c.slowstartThreshold = c.congestionWindow / 2 + c.congestionWindow = c.minCongestionWindow +} + +// OnConnectionMigration is called when the connection is migrated (?) +func (c *cubicSender) OnConnectionMigration() { + c.hybridSlowStart.Restart() + c.prr = PrrSender{} + c.largestSentPacketNumber = 0 + c.largestAckedPacketNumber = 0 + c.largestSentAtLastCutback = 0 + c.lastCutbackExitedSlowstart = false + c.cubic.Reset() + c.numAckedPackets = 0 + c.congestionWindow = c.initialCongestionWindow + c.slowstartThreshold = c.initialMaxCongestionWindow + c.maxCongestionWindow = c.initialMaxCongestionWindow +} + +// SetSlowStartLargeReduction allows enabling the SSLR experiment +func (c *cubicSender) SetSlowStartLargeReduction(enabled bool) { + c.slowStartLargeReduction = enabled +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/hybrid_slow_start.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/hybrid_slow_start.go new file mode 100644 index 00000000..f41c1e5c --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/hybrid_slow_start.go @@ -0,0 +1,111 @@ +package congestion + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// Note(pwestin): the magic clamping numbers come from the original code in +// tcp_cubic.c. +const hybridStartLowWindow = protocol.ByteCount(16) + +// Number of delay samples for detecting the increase of delay. +const hybridStartMinSamples = uint32(8) + +// Exit slow start if the min rtt has increased by more than 1/8th. +const hybridStartDelayFactorExp = 3 // 2^3 = 8 +// The original paper specifies 2 and 8ms, but those have changed over time. +const hybridStartDelayMinThresholdUs = int64(4000) +const hybridStartDelayMaxThresholdUs = int64(16000) + +// HybridSlowStart implements the TCP hybrid slow start algorithm +type HybridSlowStart struct { + endPacketNumber protocol.PacketNumber + lastSentPacketNumber protocol.PacketNumber + started bool + currentMinRTT time.Duration + rttSampleCount uint32 + hystartFound bool +} + +// StartReceiveRound is called for the start of each receive round (burst) in the slow start phase. +func (s *HybridSlowStart) StartReceiveRound(lastSent protocol.PacketNumber) { + s.endPacketNumber = lastSent + s.currentMinRTT = 0 + s.rttSampleCount = 0 + s.started = true +} + +// IsEndOfRound returns true if this ack is the last packet number of our current slow start round. +func (s *HybridSlowStart) IsEndOfRound(ack protocol.PacketNumber) bool { + return s.endPacketNumber < ack +} + +// ShouldExitSlowStart should be called on every new ack frame, since a new +// RTT measurement can be made then. +// rtt: the RTT for this ack packet. +// minRTT: is the lowest delay (RTT) we have seen during the session. +// congestionWindow: the congestion window in packets. +func (s *HybridSlowStart) ShouldExitSlowStart(latestRTT time.Duration, minRTT time.Duration, congestionWindow protocol.ByteCount) bool { + if !s.started { + // Time to start the hybrid slow start. + s.StartReceiveRound(s.lastSentPacketNumber) + } + if s.hystartFound { + return true + } + // Second detection parameter - delay increase detection. + // Compare the minimum delay (s.currentMinRTT) of the current + // burst of packets relative to the minimum delay during the session. + // Note: we only look at the first few(8) packets in each burst, since we + // only want to compare the lowest RTT of the burst relative to previous + // bursts. + s.rttSampleCount++ + if s.rttSampleCount <= hybridStartMinSamples { + if s.currentMinRTT == 0 || s.currentMinRTT > latestRTT { + s.currentMinRTT = latestRTT + } + } + // We only need to check this once per round. + if s.rttSampleCount == hybridStartMinSamples { + // Divide minRTT by 8 to get a rtt increase threshold for exiting. + minRTTincreaseThresholdUs := int64(minRTT / time.Microsecond >> hybridStartDelayFactorExp) + // Ensure the rtt threshold is never less than 2ms or more than 16ms. + minRTTincreaseThresholdUs = utils.MinInt64(minRTTincreaseThresholdUs, hybridStartDelayMaxThresholdUs) + minRTTincreaseThreshold := time.Duration(utils.MaxInt64(minRTTincreaseThresholdUs, hybridStartDelayMinThresholdUs)) * time.Microsecond + + if s.currentMinRTT > (minRTT + minRTTincreaseThreshold) { + s.hystartFound = true + } + } + // Exit from slow start if the cwnd is greater than 16 and + // increasing delay is found. + return congestionWindow >= hybridStartLowWindow && s.hystartFound +} + +// OnPacketSent is called when a packet was sent +func (s *HybridSlowStart) OnPacketSent(packetNumber protocol.PacketNumber) { + s.lastSentPacketNumber = packetNumber +} + +// OnPacketAcked gets invoked after ShouldExitSlowStart, so it's best to end +// the round when the final packet of the burst is received and start it on +// the next incoming ack. +func (s *HybridSlowStart) OnPacketAcked(ackedPacketNumber protocol.PacketNumber) { + if s.IsEndOfRound(ackedPacketNumber) { + s.started = false + } +} + +// Started returns true if started +func (s *HybridSlowStart) Started() bool { + return s.started +} + +// Restart the slow start phase +func (s *HybridSlowStart) Restart() { + s.started = false + s.hystartFound = false +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/interface.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/interface.go new file mode 100644 index 00000000..7c27da64 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/interface.go @@ -0,0 +1,36 @@ +package congestion + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// A SendAlgorithm performs congestion control and calculates the congestion window +type SendAlgorithm interface { + TimeUntilSend(bytesInFlight protocol.ByteCount) time.Duration + OnPacketSent(sentTime time.Time, bytesInFlight protocol.ByteCount, packetNumber protocol.PacketNumber, bytes protocol.ByteCount, isRetransmittable bool) + GetCongestionWindow() protocol.ByteCount + MaybeExitSlowStart() + OnPacketAcked(number protocol.PacketNumber, ackedBytes protocol.ByteCount, priorInFlight protocol.ByteCount, eventTime time.Time) + OnPacketLost(number protocol.PacketNumber, lostBytes protocol.ByteCount, priorInFlight protocol.ByteCount) + SetNumEmulatedConnections(n int) + OnRetransmissionTimeout(packetsRetransmitted bool) + OnConnectionMigration() + + // Experiments + SetSlowStartLargeReduction(enabled bool) +} + +// SendAlgorithmWithDebugInfo adds some debug functions to SendAlgorithm +type SendAlgorithmWithDebugInfo interface { + SendAlgorithm + BandwidthEstimate() Bandwidth + + // Stuff only used in testing + + HybridSlowStart() *HybridSlowStart + SlowstartThreshold() protocol.ByteCount + RenoBeta() float32 + InRecovery() bool +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/prr_sender.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/prr_sender.go new file mode 100644 index 00000000..5c807d19 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/prr_sender.go @@ -0,0 +1,54 @@ +package congestion + +import ( + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// PrrSender implements the Proportional Rate Reduction (PRR) per RFC 6937 +type PrrSender struct { + bytesSentSinceLoss protocol.ByteCount + bytesDeliveredSinceLoss protocol.ByteCount + ackCountSinceLoss protocol.ByteCount + bytesInFlightBeforeLoss protocol.ByteCount +} + +// OnPacketSent should be called after a packet was sent +func (p *PrrSender) OnPacketSent(sentBytes protocol.ByteCount) { + p.bytesSentSinceLoss += sentBytes +} + +// OnPacketLost should be called on the first loss that triggers a recovery +// period and all other methods in this class should only be called when in +// recovery. +func (p *PrrSender) OnPacketLost(priorInFlight protocol.ByteCount) { + p.bytesSentSinceLoss = 0 + p.bytesInFlightBeforeLoss = priorInFlight + p.bytesDeliveredSinceLoss = 0 + p.ackCountSinceLoss = 0 +} + +// OnPacketAcked should be called after a packet was acked +func (p *PrrSender) OnPacketAcked(ackedBytes protocol.ByteCount) { + p.bytesDeliveredSinceLoss += ackedBytes + p.ackCountSinceLoss++ +} + +// CanSend returns if packets can be sent +func (p *PrrSender) CanSend(congestionWindow, bytesInFlight, slowstartThreshold protocol.ByteCount) bool { + // Return QuicTime::Zero In order to ensure limited transmit always works. + if p.bytesSentSinceLoss == 0 || bytesInFlight < protocol.DefaultTCPMSS { + return true + } + if congestionWindow > bytesInFlight { + // During PRR-SSRB, limit outgoing packets to 1 extra MSS per ack, instead + // of sending the entire available window. This prevents burst retransmits + // when more packets are lost than the CWND reduction. + // limit = MAX(prr_delivered - prr_out, DeliveredData) + MSS + return p.bytesDeliveredSinceLoss+p.ackCountSinceLoss*protocol.DefaultTCPMSS > p.bytesSentSinceLoss + } + // Implement Proportional Rate Reduction (RFC6937). + // Checks a simplified version of the PRR formula that doesn't use division: + // AvailableSendWindow = + // CEIL(prr_delivered * ssthresh / BytesInFlightAtLoss) - prr_sent + return p.bytesDeliveredSinceLoss*slowstartThreshold > p.bytesSentSinceLoss*p.bytesInFlightBeforeLoss +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/rtt_stats.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/rtt_stats.go new file mode 100644 index 00000000..f0ebbb23 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/rtt_stats.go @@ -0,0 +1,101 @@ +package congestion + +import ( + "time" + + "github.com/lucas-clemente/quic-go/internal/utils" +) + +const ( + rttAlpha float32 = 0.125 + oneMinusAlpha float32 = (1 - rttAlpha) + rttBeta float32 = 0.25 + oneMinusBeta float32 = (1 - rttBeta) + // The default RTT used before an RTT sample is taken. + defaultInitialRTT = 100 * time.Millisecond +) + +// RTTStats provides round-trip statistics +type RTTStats struct { + minRTT time.Duration + latestRTT time.Duration + smoothedRTT time.Duration + meanDeviation time.Duration +} + +// NewRTTStats makes a properly initialized RTTStats object +func NewRTTStats() *RTTStats { + return &RTTStats{} +} + +// MinRTT Returns the minRTT for the entire connection. +// May return Zero if no valid updates have occurred. +func (r *RTTStats) MinRTT() time.Duration { return r.minRTT } + +// LatestRTT returns the most recent rtt measurement. +// May return Zero if no valid updates have occurred. +func (r *RTTStats) LatestRTT() time.Duration { return r.latestRTT } + +// SmoothedRTT returns the EWMA smoothed RTT for the connection. +// May return Zero if no valid updates have occurred. +func (r *RTTStats) SmoothedRTT() time.Duration { return r.smoothedRTT } + +// SmoothedOrInitialRTT returns the EWMA smoothed RTT for the connection. +// If no valid updates have occurred, it returns the initial RTT. +func (r *RTTStats) SmoothedOrInitialRTT() time.Duration { + if r.smoothedRTT != 0 { + return r.smoothedRTT + } + return defaultInitialRTT +} + +// MeanDeviation gets the mean deviation +func (r *RTTStats) MeanDeviation() time.Duration { return r.meanDeviation } + +// UpdateRTT updates the RTT based on a new sample. +func (r *RTTStats) UpdateRTT(sendDelta, ackDelay time.Duration, now time.Time) { + if sendDelta == utils.InfDuration || sendDelta <= 0 { + return + } + + // Update r.minRTT first. r.minRTT does not use an rttSample corrected for + // ackDelay but the raw observed sendDelta, since poor clock granularity at + // the client may cause a high ackDelay to result in underestimation of the + // r.minRTT. + if r.minRTT == 0 || r.minRTT > sendDelta { + r.minRTT = sendDelta + } + + // Correct for ackDelay if information received from the peer results in a + // an RTT sample at least as large as minRTT. Otherwise, only use the + // sendDelta. + sample := sendDelta + if sample-r.minRTT >= ackDelay { + sample -= ackDelay + } + r.latestRTT = sample + // First time call. + if r.smoothedRTT == 0 { + r.smoothedRTT = sample + r.meanDeviation = sample / 2 + } else { + r.meanDeviation = time.Duration(oneMinusBeta*float32(r.meanDeviation/time.Microsecond)+rttBeta*float32(utils.AbsDuration(r.smoothedRTT-sample)/time.Microsecond)) * time.Microsecond + r.smoothedRTT = time.Duration((float32(r.smoothedRTT/time.Microsecond)*oneMinusAlpha)+(float32(sample/time.Microsecond)*rttAlpha)) * time.Microsecond + } +} + +// OnConnectionMigration is called when connection migrates and rtt measurement needs to be reset. +func (r *RTTStats) OnConnectionMigration() { + r.latestRTT = 0 + r.minRTT = 0 + r.smoothedRTT = 0 + r.meanDeviation = 0 +} + +// ExpireSmoothedMetrics causes the smoothed_rtt to be increased to the latest_rtt if the latest_rtt +// is larger. The mean deviation is increased to the most recent deviation if +// it's larger. +func (r *RTTStats) ExpireSmoothedMetrics() { + r.meanDeviation = utils.MaxDuration(r.meanDeviation, utils.AbsDuration(r.smoothedRTT-r.latestRTT)) + r.smoothedRTT = utils.MaxDuration(r.smoothedRTT, r.latestRTT) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/congestion/stats.go b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/stats.go new file mode 100644 index 00000000..ed669c14 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/congestion/stats.go @@ -0,0 +1,8 @@ +package congestion + +import "github.com/lucas-clemente/quic-go/internal/protocol" + +type connectionStats struct { + slowstartPacketsLost protocol.PacketNumber + slowstartBytesLost protocol.ByteCount +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/base_flow_controller.go b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/base_flow_controller.go new file mode 100644 index 00000000..6a0aa3c5 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/base_flow_controller.go @@ -0,0 +1,122 @@ +package flowcontrol + +import ( + "sync" + "time" + + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +type baseFlowController struct { + // for sending data + bytesSent protocol.ByteCount + sendWindow protocol.ByteCount + lastBlockedAt protocol.ByteCount + + // for receiving data + mutex sync.RWMutex + bytesRead protocol.ByteCount + highestReceived protocol.ByteCount + receiveWindow protocol.ByteCount + receiveWindowSize protocol.ByteCount + maxReceiveWindowSize protocol.ByteCount + + epochStartTime time.Time + epochStartOffset protocol.ByteCount + rttStats *congestion.RTTStats + + logger utils.Logger +} + +// IsNewlyBlocked says if it is newly blocked by flow control. +// For every offset, it only returns true once. +// If it is blocked, the offset is returned. +func (c *baseFlowController) IsNewlyBlocked() (bool, protocol.ByteCount) { + if c.sendWindowSize() != 0 || c.sendWindow == c.lastBlockedAt { + return false, 0 + } + c.lastBlockedAt = c.sendWindow + return true, c.sendWindow +} + +func (c *baseFlowController) AddBytesSent(n protocol.ByteCount) { + c.bytesSent += n +} + +// UpdateSendWindow should be called after receiving a WindowUpdateFrame +// it returns true if the window was actually updated +func (c *baseFlowController) UpdateSendWindow(offset protocol.ByteCount) { + if offset > c.sendWindow { + c.sendWindow = offset + } +} + +func (c *baseFlowController) sendWindowSize() protocol.ByteCount { + // this only happens during connection establishment, when data is sent before we receive the peer's transport parameters + if c.bytesSent > c.sendWindow { + return 0 + } + return c.sendWindow - c.bytesSent +} + +func (c *baseFlowController) AddBytesRead(n protocol.ByteCount) { + c.mutex.Lock() + defer c.mutex.Unlock() + + // pretend we sent a WindowUpdate when reading the first byte + // this way auto-tuning of the window size already works for the first WindowUpdate + if c.bytesRead == 0 { + c.startNewAutoTuningEpoch() + } + c.bytesRead += n +} + +func (c *baseFlowController) hasWindowUpdate() bool { + bytesRemaining := c.receiveWindow - c.bytesRead + // update the window when more than the threshold was consumed + return bytesRemaining <= protocol.ByteCount((float64(c.receiveWindowSize) * float64((1 - protocol.WindowUpdateThreshold)))) +} + +// getWindowUpdate updates the receive window, if necessary +// it returns the new offset +func (c *baseFlowController) getWindowUpdate() protocol.ByteCount { + if !c.hasWindowUpdate() { + return 0 + } + + c.maybeAdjustWindowSize() + c.receiveWindow = c.bytesRead + c.receiveWindowSize + return c.receiveWindow +} + +// maybeAdjustWindowSize increases the receiveWindowSize if we're sending updates too often. +// For details about auto-tuning, see https://docs.google.com/document/d/1SExkMmGiz8VYzV3s9E35JQlJ73vhzCekKkDi85F1qCE/edit?usp=sharing. +func (c *baseFlowController) maybeAdjustWindowSize() { + bytesReadInEpoch := c.bytesRead - c.epochStartOffset + // don't do anything if less than half the window has been consumed + if bytesReadInEpoch <= c.receiveWindowSize/2 { + return + } + rtt := c.rttStats.SmoothedRTT() + if rtt == 0 { + return + } + + fraction := float64(bytesReadInEpoch) / float64(c.receiveWindowSize) + if time.Since(c.epochStartTime) < time.Duration(4*fraction*float64(rtt)) { + // window is consumed too fast, try to increase the window size + c.receiveWindowSize = utils.MinByteCount(2*c.receiveWindowSize, c.maxReceiveWindowSize) + } + c.startNewAutoTuningEpoch() +} + +func (c *baseFlowController) startNewAutoTuningEpoch() { + c.epochStartTime = time.Now() + c.epochStartOffset = c.bytesRead +} + +func (c *baseFlowController) checkFlowControlViolation() bool { + return c.highestReceived > c.receiveWindow +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/connection_flow_controller.go b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/connection_flow_controller.go new file mode 100644 index 00000000..1393335b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/connection_flow_controller.go @@ -0,0 +1,92 @@ +package flowcontrol + +import ( + "fmt" + + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +type connectionFlowController struct { + baseFlowController + + queueWindowUpdate func() +} + +var _ ConnectionFlowController = &connectionFlowController{} + +// NewConnectionFlowController gets a new flow controller for the connection +// It is created before we receive the peer's transport paramenters, thus it starts with a sendWindow of 0. +func NewConnectionFlowController( + receiveWindow protocol.ByteCount, + maxReceiveWindow protocol.ByteCount, + queueWindowUpdate func(), + rttStats *congestion.RTTStats, + logger utils.Logger, +) ConnectionFlowController { + return &connectionFlowController{ + baseFlowController: baseFlowController{ + rttStats: rttStats, + receiveWindow: receiveWindow, + receiveWindowSize: receiveWindow, + maxReceiveWindowSize: maxReceiveWindow, + logger: logger, + }, + queueWindowUpdate: queueWindowUpdate, + } +} + +func (c *connectionFlowController) SendWindowSize() protocol.ByteCount { + return c.baseFlowController.sendWindowSize() +} + +// IncrementHighestReceived adds an increment to the highestReceived value +func (c *connectionFlowController) IncrementHighestReceived(increment protocol.ByteCount) error { + c.mutex.Lock() + defer c.mutex.Unlock() + + c.highestReceived += increment + if c.checkFlowControlViolation() { + return qerr.Error(qerr.FlowControlError, fmt.Sprintf("Received %d bytes for the connection, allowed %d bytes", c.highestReceived, c.receiveWindow)) + } + return nil +} + +func (c *connectionFlowController) AddBytesRead(n protocol.ByteCount) { + c.baseFlowController.AddBytesRead(n) + c.maybeQueueWindowUpdate() +} + +func (c *connectionFlowController) maybeQueueWindowUpdate() { + c.mutex.Lock() + hasWindowUpdate := c.hasWindowUpdate() + c.mutex.Unlock() + if hasWindowUpdate { + c.queueWindowUpdate() + } +} + +func (c *connectionFlowController) GetWindowUpdate() protocol.ByteCount { + c.mutex.Lock() + oldWindowSize := c.receiveWindowSize + offset := c.baseFlowController.getWindowUpdate() + if oldWindowSize < c.receiveWindowSize { + c.logger.Debugf("Increasing receive flow control window for the connection to %d kB", c.receiveWindowSize/(1<<10)) + } + c.mutex.Unlock() + return offset +} + +// EnsureMinimumWindowSize sets a minimum window size +// it should make sure that the connection-level window is increased when a stream-level window grows +func (c *connectionFlowController) EnsureMinimumWindowSize(inc protocol.ByteCount) { + c.mutex.Lock() + if inc > c.receiveWindowSize { + c.logger.Debugf("Increasing receive flow control window for the connection to %d kB, in response to stream flow control window increase", c.receiveWindowSize/(1<<10)) + c.receiveWindowSize = utils.MinByteCount(inc, c.maxReceiveWindowSize) + c.startNewAutoTuningEpoch() + } + c.mutex.Unlock() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/interface.go b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/interface.go new file mode 100644 index 00000000..a47e7cd7 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/interface.go @@ -0,0 +1,41 @@ +package flowcontrol + +import "github.com/lucas-clemente/quic-go/internal/protocol" + +type flowController interface { + // for sending + SendWindowSize() protocol.ByteCount + UpdateSendWindow(protocol.ByteCount) + AddBytesSent(protocol.ByteCount) + // for receiving + AddBytesRead(protocol.ByteCount) + GetWindowUpdate() protocol.ByteCount // returns 0 if no update is necessary + IsNewlyBlocked() (bool, protocol.ByteCount) +} + +// A StreamFlowController is a flow controller for a QUIC stream. +type StreamFlowController interface { + flowController + // for receiving + // UpdateHighestReceived should be called when a new highest offset is received + // final has to be to true if this is the final offset of the stream, + // as contained in a STREAM frame with FIN bit, and the RESET_STREAM frame + UpdateHighestReceived(offset protocol.ByteCount, final bool) error + // Abandon should be called when reading from the stream is aborted early, + // and there won't be any further calls to AddBytesRead. + Abandon() +} + +// The ConnectionFlowController is the flow controller for the connection. +type ConnectionFlowController interface { + flowController +} + +type connectionFlowControllerI interface { + ConnectionFlowController + // The following two methods are not supposed to be called from outside this packet, but are needed internally + // for sending + EnsureMinimumWindowSize(protocol.ByteCount) + // for receiving + IncrementHighestReceived(protocol.ByteCount) error +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/stream_flow_controller.go b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/stream_flow_controller.go new file mode 100644 index 00000000..bb22337d --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/flowcontrol/stream_flow_controller.go @@ -0,0 +1,139 @@ +package flowcontrol + +import ( + "fmt" + + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +type streamFlowController struct { + baseFlowController + + streamID protocol.StreamID + + queueWindowUpdate func() + + connection connectionFlowControllerI + + receivedFinalOffset bool +} + +var _ StreamFlowController = &streamFlowController{} + +// NewStreamFlowController gets a new flow controller for a stream +func NewStreamFlowController( + streamID protocol.StreamID, + cfc ConnectionFlowController, + receiveWindow protocol.ByteCount, + maxReceiveWindow protocol.ByteCount, + initialSendWindow protocol.ByteCount, + queueWindowUpdate func(protocol.StreamID), + rttStats *congestion.RTTStats, + logger utils.Logger, +) StreamFlowController { + return &streamFlowController{ + streamID: streamID, + connection: cfc.(connectionFlowControllerI), + queueWindowUpdate: func() { queueWindowUpdate(streamID) }, + baseFlowController: baseFlowController{ + rttStats: rttStats, + receiveWindow: receiveWindow, + receiveWindowSize: receiveWindow, + maxReceiveWindowSize: maxReceiveWindow, + sendWindow: initialSendWindow, + logger: logger, + }, + } +} + +// UpdateHighestReceived updates the highestReceived value, if the offset is higher. +func (c *streamFlowController) UpdateHighestReceived(offset protocol.ByteCount, final bool) error { + c.mutex.Lock() + defer c.mutex.Unlock() + + // If the final offset for this stream is already known, check for consistency. + if c.receivedFinalOffset { + // If we receive another final offset, check that it's the same. + if final && offset != c.highestReceived { + return qerr.Error(qerr.FinalSizeError, fmt.Sprintf("Received inconsistent final offset for stream %d (old: %#x, new: %#x bytes)", c.streamID, c.highestReceived, offset)) + } + // Check that the offset is below the final offset. + if offset > c.highestReceived { + return qerr.Error(qerr.FinalSizeError, fmt.Sprintf("Received offset %#x for stream %d. Final offset was already received at %#x", offset, c.streamID, c.highestReceived)) + } + } + + if final { + c.receivedFinalOffset = true + } + if offset == c.highestReceived { + return nil + } + // A higher offset was received before. + // This can happen due to reordering. + if offset <= c.highestReceived { + if final { + return qerr.Error(qerr.FinalSizeError, fmt.Sprintf("Received final offset %#x for stream %d, but already received offset %#x before", offset, c.streamID, c.highestReceived)) + } + return nil + } + + increment := offset - c.highestReceived + c.highestReceived = offset + if c.checkFlowControlViolation() { + return qerr.Error(qerr.FlowControlError, fmt.Sprintf("Received %#x bytes on stream %d, allowed %#x bytes", offset, c.streamID, c.receiveWindow)) + } + return c.connection.IncrementHighestReceived(increment) +} + +func (c *streamFlowController) AddBytesRead(n protocol.ByteCount) { + c.baseFlowController.AddBytesRead(n) + c.maybeQueueWindowUpdate() + c.connection.AddBytesRead(n) +} + +func (c *streamFlowController) Abandon() { + if unread := c.highestReceived - c.bytesRead; unread > 0 { + c.connection.AddBytesRead(unread) + } +} + +func (c *streamFlowController) AddBytesSent(n protocol.ByteCount) { + c.baseFlowController.AddBytesSent(n) + c.connection.AddBytesSent(n) +} + +func (c *streamFlowController) SendWindowSize() protocol.ByteCount { + return utils.MinByteCount(c.baseFlowController.sendWindowSize(), c.connection.SendWindowSize()) +} + +func (c *streamFlowController) maybeQueueWindowUpdate() { + c.mutex.Lock() + hasWindowUpdate := !c.receivedFinalOffset && c.hasWindowUpdate() + c.mutex.Unlock() + if hasWindowUpdate { + c.queueWindowUpdate() + } +} + +func (c *streamFlowController) GetWindowUpdate() protocol.ByteCount { + // don't use defer for unlocking the mutex here, GetWindowUpdate() is called frequently and defer shows up in the profiler + c.mutex.Lock() + // if we already received the final offset for this stream, the peer won't need any additional flow control credit + if c.receivedFinalOffset { + c.mutex.Unlock() + return 0 + } + + oldWindowSize := c.receiveWindowSize + offset := c.baseFlowController.getWindowUpdate() + if c.receiveWindowSize > oldWindowSize { // auto-tuning enlarged the window size + c.logger.Debugf("Increasing receive flow control window for stream %d to %d kB", c.streamID, c.receiveWindowSize/(1<<10)) + c.connection.EnsureMinimumWindowSize(protocol.ByteCount(float64(c.receiveWindowSize) * protocol.ConnectionFlowControlMultiplier)) + } + c.mutex.Unlock() + return offset +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/aead.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/aead.go new file mode 100644 index 00000000..07ce74f7 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/aead.go @@ -0,0 +1,104 @@ +package handshake + +import ( + "crypto/cipher" + "encoding/binary" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +type sealer struct { + aead cipher.AEAD + hpEncrypter cipher.Block + + // use a single slice to avoid allocations + nonceBuf []byte + hpMask []byte + + // short headers protect 5 bits in the first byte, long headers only 4 + is1RTT bool +} + +var _ Sealer = &sealer{} + +func newSealer(aead cipher.AEAD, hpEncrypter cipher.Block, is1RTT bool) Sealer { + return &sealer{ + aead: aead, + nonceBuf: make([]byte, aead.NonceSize()), + is1RTT: is1RTT, + hpEncrypter: hpEncrypter, + hpMask: make([]byte, hpEncrypter.BlockSize()), + } +} + +func (s *sealer) Seal(dst, src []byte, pn protocol.PacketNumber, ad []byte) []byte { + binary.BigEndian.PutUint64(s.nonceBuf[len(s.nonceBuf)-8:], uint64(pn)) + // The AEAD we're using here will be the qtls.aeadAESGCM13. + // It uses the nonce provided here and XOR it with the IV. + return s.aead.Seal(dst, s.nonceBuf, src, ad) +} + +func (s *sealer) EncryptHeader(sample []byte, firstByte *byte, pnBytes []byte) { + if len(sample) != s.hpEncrypter.BlockSize() { + panic("invalid sample size") + } + s.hpEncrypter.Encrypt(s.hpMask, sample) + if s.is1RTT { + *firstByte ^= s.hpMask[0] & 0x1f + } else { + *firstByte ^= s.hpMask[0] & 0xf + } + for i := range pnBytes { + pnBytes[i] ^= s.hpMask[i+1] + } +} + +func (s *sealer) Overhead() int { + return s.aead.Overhead() +} + +type opener struct { + aead cipher.AEAD + pnDecrypter cipher.Block + + // use a single slice to avoid allocations + nonceBuf []byte + hpMask []byte + + // short headers protect 5 bits in the first byte, long headers only 4 + is1RTT bool +} + +var _ Opener = &opener{} + +func newOpener(aead cipher.AEAD, pnDecrypter cipher.Block, is1RTT bool) Opener { + return &opener{ + aead: aead, + nonceBuf: make([]byte, aead.NonceSize()), + is1RTT: is1RTT, + pnDecrypter: pnDecrypter, + hpMask: make([]byte, pnDecrypter.BlockSize()), + } +} + +func (o *opener) Open(dst, src []byte, pn protocol.PacketNumber, ad []byte) ([]byte, error) { + binary.BigEndian.PutUint64(o.nonceBuf[len(o.nonceBuf)-8:], uint64(pn)) + // The AEAD we're using here will be the qtls.aeadAESGCM13. + // It uses the nonce provided here and XOR it with the IV. + return o.aead.Open(dst, o.nonceBuf, src, ad) +} + +func (o *opener) DecryptHeader(sample []byte, firstByte *byte, pnBytes []byte) { + if len(sample) != o.pnDecrypter.BlockSize() { + panic("invalid sample size") + } + o.pnDecrypter.Encrypt(o.hpMask, sample) + if o.is1RTT { + *firstByte ^= o.hpMask[0] & 0x1f + } else { + *firstByte ^= o.hpMask[0] & 0xf + } + for i := range pnBytes { + pnBytes[i] ^= o.hpMask[i+1] + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_generator.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_generator.go new file mode 100644 index 00000000..6d1288ed --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_generator.go @@ -0,0 +1,109 @@ +package handshake + +import ( + "encoding/asn1" + "fmt" + "net" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +const ( + cookiePrefixIP byte = iota + cookiePrefixString +) + +// A Cookie is derived from the client address and can be used to verify the ownership of this address. +type Cookie struct { + RemoteAddr string + OriginalDestConnectionID protocol.ConnectionID + // The time that the Cookie was issued (resolution 1 second) + SentTime time.Time +} + +// token is the struct that is used for ASN1 serialization and deserialization +type token struct { + RemoteAddr []byte + OriginalDestConnectionID []byte + + Timestamp int64 +} + +// A CookieGenerator generates Cookies +type CookieGenerator struct { + cookieProtector cookieProtector +} + +// NewCookieGenerator initializes a new CookieGenerator +func NewCookieGenerator() (*CookieGenerator, error) { + cookieProtector, err := newCookieProtector() + if err != nil { + return nil, err + } + return &CookieGenerator{ + cookieProtector: cookieProtector, + }, nil +} + +// NewToken generates a new Cookie for a given source address +func (g *CookieGenerator) NewToken(raddr net.Addr, origConnID protocol.ConnectionID) ([]byte, error) { + data, err := asn1.Marshal(token{ + RemoteAddr: encodeRemoteAddr(raddr), + OriginalDestConnectionID: origConnID, + Timestamp: time.Now().Unix(), + }) + if err != nil { + return nil, err + } + return g.cookieProtector.NewToken(data) +} + +// DecodeToken decodes a Cookie +func (g *CookieGenerator) DecodeToken(encrypted []byte) (*Cookie, error) { + // if the client didn't send any Cookie, DecodeToken will be called with a nil-slice + if len(encrypted) == 0 { + return nil, nil + } + + data, err := g.cookieProtector.DecodeToken(encrypted) + if err != nil { + return nil, err + } + t := &token{} + rest, err := asn1.Unmarshal(data, t) + if err != nil { + return nil, err + } + if len(rest) != 0 { + return nil, fmt.Errorf("rest when unpacking token: %d", len(rest)) + } + cookie := &Cookie{ + RemoteAddr: decodeRemoteAddr(t.RemoteAddr), + SentTime: time.Unix(t.Timestamp, 0), + } + if len(t.OriginalDestConnectionID) > 0 { + cookie.OriginalDestConnectionID = protocol.ConnectionID(t.OriginalDestConnectionID) + } + return cookie, nil +} + +// encodeRemoteAddr encodes a remote address such that it can be saved in the Cookie +func encodeRemoteAddr(remoteAddr net.Addr) []byte { + if udpAddr, ok := remoteAddr.(*net.UDPAddr); ok { + return append([]byte{cookiePrefixIP}, udpAddr.IP...) + } + return append([]byte{cookiePrefixString}, []byte(remoteAddr.String())...) +} + +// decodeRemoteAddr decodes the remote address saved in the Cookie +func decodeRemoteAddr(data []byte) string { + // data will never be empty for a Cookie that we generated. Check it to be on the safe side + if len(data) == 0 { + return "" + } + if data[0] == cookiePrefixIP { + return net.IP(data[1:]).String() + } + return string(data[1:]) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_protector.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_protector.go new file mode 100644 index 00000000..7ebdfa18 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/cookie_protector.go @@ -0,0 +1,86 @@ +package handshake + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "crypto/sha256" + "fmt" + "io" + + "golang.org/x/crypto/hkdf" +) + +// CookieProtector is used to create and verify a cookie +type cookieProtector interface { + // NewToken creates a new token + NewToken([]byte) ([]byte, error) + // DecodeToken decodes a token + DecodeToken([]byte) ([]byte, error) +} + +const ( + cookieSecretSize = 32 + cookieNonceSize = 32 +) + +// cookieProtector is used to create and verify a cookie +type cookieProtectorImpl struct { + secret []byte +} + +// newCookieProtector creates a source for source address tokens +func newCookieProtector() (cookieProtector, error) { + secret := make([]byte, cookieSecretSize) + if _, err := rand.Read(secret); err != nil { + return nil, err + } + return &cookieProtectorImpl{secret: secret}, nil +} + +// NewToken encodes data into a new token. +func (s *cookieProtectorImpl) NewToken(data []byte) ([]byte, error) { + nonce := make([]byte, cookieNonceSize) + if _, err := rand.Read(nonce); err != nil { + return nil, err + } + aead, aeadNonce, err := s.createAEAD(nonce) + if err != nil { + return nil, err + } + return append(nonce, aead.Seal(nil, aeadNonce, data, nil)...), nil +} + +// DecodeToken decodes a token. +func (s *cookieProtectorImpl) DecodeToken(p []byte) ([]byte, error) { + if len(p) < cookieNonceSize { + return nil, fmt.Errorf("Token too short: %d", len(p)) + } + nonce := p[:cookieNonceSize] + aead, aeadNonce, err := s.createAEAD(nonce) + if err != nil { + return nil, err + } + return aead.Open(nil, aeadNonce, p[cookieNonceSize:], nil) +} + +func (s *cookieProtectorImpl) createAEAD(nonce []byte) (cipher.AEAD, []byte, error) { + h := hkdf.New(sha256.New, s.secret, nonce, []byte("quic-go cookie source")) + key := make([]byte, 32) // use a 32 byte key, in order to select AES-256 + if _, err := io.ReadFull(h, key); err != nil { + return nil, nil, err + } + aeadNonce := make([]byte, 12) + if _, err := io.ReadFull(h, aeadNonce); err != nil { + return nil, nil, err + } + c, err := aes.NewCipher(key) + if err != nil { + return nil, nil, err + } + aead, err := cipher.NewGCM(c) + if err != nil { + return nil, nil, err + } + return aead, aeadNonce, nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go new file mode 100644 index 00000000..de6ddc68 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go @@ -0,0 +1,581 @@ +package handshake + +import ( + "crypto/aes" + "crypto/tls" + "errors" + "fmt" + "io" + "net" + "sync" + "unsafe" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/marten-seemann/qtls" +) + +type messageType uint8 + +// TLS handshake message types. +const ( + typeClientHello messageType = 1 + typeServerHello messageType = 2 + typeNewSessionTicket messageType = 4 + typeEncryptedExtensions messageType = 8 + typeCertificate messageType = 11 + typeCertificateRequest messageType = 13 + typeCertificateVerify messageType = 15 + typeFinished messageType = 20 +) + +func (m messageType) String() string { + switch m { + case typeClientHello: + return "ClientHello" + case typeServerHello: + return "ServerHello" + case typeNewSessionTicket: + return "NewSessionTicket" + case typeEncryptedExtensions: + return "EncryptedExtensions" + case typeCertificate: + return "Certificate" + case typeCertificateRequest: + return "CertificateRequest" + case typeCertificateVerify: + return "CertificateVerify" + case typeFinished: + return "Finished" + default: + return fmt.Sprintf("unknown message type: %d", m) + } +} + +// ErrOpenerNotYetAvailable is returned when an opener is requested for an encryption level, +// but the corresponding opener has not yet been initialized +// This can happen when packets arrive out of order. +var ErrOpenerNotYetAvailable = errors.New("CryptoSetup: opener at this encryption level not yet available") + +type cryptoSetup struct { + tlsConf *qtls.Config + conn *qtls.Conn + + messageChan chan []byte + + paramsChan <-chan []byte + handleParamsCallback func([]byte) + + alertChan chan uint8 + // HandleData() sends errors on the messageErrChan + messageErrChan chan error + // handshakeDone is closed as soon as the go routine running qtls.Handshake() returns + handshakeDone chan struct{} + // is closed when Close() is called + closeChan chan struct{} + + clientHelloWritten bool + clientHelloWrittenChan chan struct{} + + receivedWriteKey chan struct{} + receivedReadKey chan struct{} + // WriteRecord does a non-blocking send on this channel. + // This way, handleMessage can see if qtls tries to write a message. + // This is necessary: + // for servers: to see if a HelloRetryRequest should be sent in response to a ClientHello + // for clients: to see if a ServerHello is a HelloRetryRequest + writeRecord chan struct{} + + logger utils.Logger + + perspective protocol.Perspective + + mutex sync.Mutex // protects all members below + + readEncLevel protocol.EncryptionLevel + writeEncLevel protocol.EncryptionLevel + + initialStream io.Writer + initialOpener Opener + initialSealer Sealer + + handshakeStream io.Writer + handshakeOpener Opener + handshakeSealer Sealer + + oneRTTStream io.Writer + opener Opener + sealer Sealer +} + +var _ qtls.RecordLayer = &cryptoSetup{} +var _ CryptoSetup = &cryptoSetup{} + +// NewCryptoSetupClient creates a new crypto setup for the client +func NewCryptoSetupClient( + initialStream io.Writer, + handshakeStream io.Writer, + oneRTTStream io.Writer, + connID protocol.ConnectionID, + remoteAddr net.Addr, + tp *TransportParameters, + handleParams func([]byte), + tlsConf *tls.Config, + logger utils.Logger, +) (CryptoSetup, <-chan struct{} /* ClientHello written */, error) { + cs, clientHelloWritten, err := newCryptoSetup( + initialStream, + handshakeStream, + oneRTTStream, + connID, + tp, + handleParams, + tlsConf, + logger, + protocol.PerspectiveClient, + ) + if err != nil { + return nil, nil, err + } + cs.conn = qtls.Client(newConn(remoteAddr), cs.tlsConf) + return cs, clientHelloWritten, nil +} + +// NewCryptoSetupServer creates a new crypto setup for the server +func NewCryptoSetupServer( + initialStream io.Writer, + handshakeStream io.Writer, + oneRTTStream io.Writer, + connID protocol.ConnectionID, + remoteAddr net.Addr, + tp *TransportParameters, + handleParams func([]byte), + tlsConf *tls.Config, + logger utils.Logger, +) (CryptoSetup, error) { + cs, _, err := newCryptoSetup( + initialStream, + handshakeStream, + oneRTTStream, + connID, + tp, + handleParams, + tlsConf, + logger, + protocol.PerspectiveServer, + ) + if err != nil { + return nil, err + } + cs.conn = qtls.Server(newConn(remoteAddr), cs.tlsConf) + return cs, nil +} + +func newCryptoSetup( + initialStream io.Writer, + handshakeStream io.Writer, + oneRTTStream io.Writer, + connID protocol.ConnectionID, + tp *TransportParameters, + handleParams func([]byte), + tlsConf *tls.Config, + logger utils.Logger, + perspective protocol.Perspective, +) (*cryptoSetup, <-chan struct{} /* ClientHello written */, error) { + initialSealer, initialOpener, err := NewInitialAEAD(connID, perspective) + if err != nil { + return nil, nil, err + } + extHandler := newExtensionHandler(tp.Marshal(), perspective) + cs := &cryptoSetup{ + initialStream: initialStream, + initialSealer: initialSealer, + initialOpener: initialOpener, + handshakeStream: handshakeStream, + oneRTTStream: oneRTTStream, + readEncLevel: protocol.EncryptionInitial, + writeEncLevel: protocol.EncryptionInitial, + handleParamsCallback: handleParams, + paramsChan: extHandler.TransportParameters(), + logger: logger, + perspective: perspective, + handshakeDone: make(chan struct{}), + alertChan: make(chan uint8), + messageErrChan: make(chan error, 1), + clientHelloWrittenChan: make(chan struct{}), + messageChan: make(chan []byte, 100), + receivedReadKey: make(chan struct{}), + receivedWriteKey: make(chan struct{}), + writeRecord: make(chan struct{}), + closeChan: make(chan struct{}), + } + qtlsConf := tlsConfigToQtlsConfig(tlsConf, cs, extHandler) + cs.tlsConf = qtlsConf + return cs, cs.clientHelloWrittenChan, nil +} + +func (h *cryptoSetup) ChangeConnectionID(id protocol.ConnectionID) error { + initialSealer, initialOpener, err := NewInitialAEAD(id, h.perspective) + if err != nil { + return err + } + h.initialSealer = initialSealer + h.initialOpener = initialOpener + return nil +} + +func (h *cryptoSetup) RunHandshake() error { + // Handle errors that might occur when HandleData() is called. + handshakeComplete := make(chan struct{}) + handshakeErrChan := make(chan error, 1) + go func() { + defer close(h.handshakeDone) + if err := h.conn.Handshake(); err != nil { + handshakeErrChan <- err + return + } + close(handshakeComplete) + }() + + select { + case <-h.closeChan: + close(h.messageChan) + // wait until the Handshake() go routine has returned + return errors.New("Handshake aborted") + case <-handshakeComplete: // return when the handshake is done + return nil + case alert := <-h.alertChan: + err := <-handshakeErrChan + return qerr.CryptoError(alert, err.Error()) + case err := <-h.messageErrChan: + // If the handshake errored because of an error that occurred during HandleData(), + // that error message will be more useful than the error message generated by Handshake(). + // Close the message chan that qtls is receiving messages from. + // This will make qtls.Handshake() return. + // Thereby the go routine running qtls.Handshake() will return. + close(h.messageChan) + return err + } +} + +func (h *cryptoSetup) Close() error { + close(h.closeChan) + // wait until qtls.Handshake() actually returned + <-h.handshakeDone + return nil +} + +// handleMessage handles a TLS handshake message. +// It is called by the crypto streams when a new message is available. +// It returns if it is done with messages on the same encryption level. +func (h *cryptoSetup) HandleMessage(data []byte, encLevel protocol.EncryptionLevel) bool /* stream finished */ { + msgType := messageType(data[0]) + h.logger.Debugf("Received %s message (%d bytes, encryption level: %s)", msgType, len(data), encLevel) + if err := h.checkEncryptionLevel(msgType, encLevel); err != nil { + h.messageErrChan <- err + return false + } + h.messageChan <- data + switch h.perspective { + case protocol.PerspectiveClient: + return h.handleMessageForClient(msgType) + case protocol.PerspectiveServer: + return h.handleMessageForServer(msgType) + default: + panic("") + } +} + +func (h *cryptoSetup) checkEncryptionLevel(msgType messageType, encLevel protocol.EncryptionLevel) error { + var expected protocol.EncryptionLevel + switch msgType { + case typeClientHello, + typeServerHello: + expected = protocol.EncryptionInitial + case typeEncryptedExtensions, + typeCertificate, + typeCertificateRequest, + typeCertificateVerify, + typeFinished: + expected = protocol.EncryptionHandshake + case typeNewSessionTicket: + expected = protocol.Encryption1RTT + default: + return fmt.Errorf("unexpected handshake message: %d", msgType) + } + if encLevel != expected { + return fmt.Errorf("expected handshake message %s to have encryption level %s, has %s", msgType, expected, encLevel) + } + return nil +} + +func (h *cryptoSetup) handleMessageForServer(msgType messageType) bool { + switch msgType { + case typeClientHello: + select { + case <-h.writeRecord: + // If qtls sends a HelloRetryRequest, it will only write the record. + // If it accepts the ClientHello, it will first read the transport parameters. + h.logger.Debugf("Sending HelloRetryRequest") + return false + case data := <-h.paramsChan: + h.handleParamsCallback(data) + case <-h.handshakeDone: + return false + } + // get the handshake read key + select { + case <-h.receivedReadKey: + case <-h.handshakeDone: + return false + } + // get the handshake write key + select { + case <-h.receivedWriteKey: + case <-h.handshakeDone: + return false + } + // get the 1-RTT write key + select { + case <-h.receivedWriteKey: + case <-h.handshakeDone: + return false + } + return true + case typeCertificate, typeCertificateVerify: + // nothing to do + return false + case typeFinished: + // get the 1-RTT read key + select { + case <-h.receivedReadKey: + case <-h.handshakeDone: + return false + } + return true + default: + panic("unexpected handshake message") + } +} + +func (h *cryptoSetup) handleMessageForClient(msgType messageType) bool { + switch msgType { + case typeServerHello: + // get the handshake write key + select { + case <-h.writeRecord: + // If qtls writes in response to a ServerHello, this means that this ServerHello + // is a HelloRetryRequest. + // Otherwise, we'd just wait for the Certificate message. + h.logger.Debugf("ServerHello is a HelloRetryRequest") + return false + case <-h.receivedWriteKey: + case <-h.handshakeDone: + return false + } + // get the handshake read key + select { + case <-h.receivedReadKey: + case <-h.handshakeDone: + return false + } + return true + case typeEncryptedExtensions: + select { + case data := <-h.paramsChan: + h.handleParamsCallback(data) + case <-h.handshakeDone: + return false + } + return false + case typeCertificateRequest, typeCertificate, typeCertificateVerify: + // nothing to do + return false + case typeFinished: + // get the 1-RTT read key + select { + case <-h.receivedReadKey: + case <-h.handshakeDone: + return false + } + // get the handshake write key + select { + case <-h.receivedWriteKey: + case <-h.handshakeDone: + return false + } + return true + case typeNewSessionTicket: + <-h.handshakeDone // don't process session tickets before the handshake has completed + h.conn.HandlePostHandshakeMessage() + return false + default: + panic("unexpected handshake message: ") + } +} + +// ReadHandshakeMessage is called by TLS. +// It blocks until a new handshake message is available. +func (h *cryptoSetup) ReadHandshakeMessage() ([]byte, error) { + msg, ok := <-h.messageChan + if !ok { + return nil, errors.New("error while handling the handshake message") + } + return msg, nil +} + +func (h *cryptoSetup) SetReadKey(suite *qtls.CipherSuite, trafficSecret []byte) { + key := qtls.HkdfExpandLabel(suite.Hash(), trafficSecret, []byte{}, "quic key", suite.KeyLen()) + iv := qtls.HkdfExpandLabel(suite.Hash(), trafficSecret, []byte{}, "quic iv", suite.IVLen()) + hpKey := qtls.HkdfExpandLabel(suite.Hash(), trafficSecret, []byte{}, "quic hp", suite.KeyLen()) + hpDecrypter, err := aes.NewCipher(hpKey) + if err != nil { + panic(fmt.Sprintf("error creating new AES cipher: %s", err)) + } + + h.mutex.Lock() + switch h.readEncLevel { + case protocol.EncryptionInitial: + h.readEncLevel = protocol.EncryptionHandshake + h.handshakeOpener = newOpener(suite.AEAD(key, iv), hpDecrypter, false) + h.logger.Debugf("Installed Handshake Read keys") + case protocol.EncryptionHandshake: + h.readEncLevel = protocol.Encryption1RTT + h.opener = newOpener(suite.AEAD(key, iv), hpDecrypter, true) + h.logger.Debugf("Installed 1-RTT Read keys") + default: + panic("unexpected read encryption level") + } + h.mutex.Unlock() + h.receivedReadKey <- struct{}{} +} + +func (h *cryptoSetup) SetWriteKey(suite *qtls.CipherSuite, trafficSecret []byte) { + key := qtls.HkdfExpandLabel(suite.Hash(), trafficSecret, []byte{}, "quic key", suite.KeyLen()) + iv := qtls.HkdfExpandLabel(suite.Hash(), trafficSecret, []byte{}, "quic iv", suite.IVLen()) + hpKey := qtls.HkdfExpandLabel(suite.Hash(), trafficSecret, []byte{}, "quic hp", suite.KeyLen()) + hpEncrypter, err := aes.NewCipher(hpKey) + if err != nil { + panic(fmt.Sprintf("error creating new AES cipher: %s", err)) + } + + h.mutex.Lock() + switch h.writeEncLevel { + case protocol.EncryptionInitial: + h.writeEncLevel = protocol.EncryptionHandshake + h.handshakeSealer = newSealer(suite.AEAD(key, iv), hpEncrypter, false) + h.logger.Debugf("Installed Handshake Write keys") + case protocol.EncryptionHandshake: + h.writeEncLevel = protocol.Encryption1RTT + h.sealer = newSealer(suite.AEAD(key, iv), hpEncrypter, true) + h.logger.Debugf("Installed 1-RTT Write keys") + default: + panic("unexpected write encryption level") + } + h.mutex.Unlock() + h.receivedWriteKey <- struct{}{} +} + +// WriteRecord is called when TLS writes data +func (h *cryptoSetup) WriteRecord(p []byte) (int, error) { + defer func() { + select { + case h.writeRecord <- struct{}{}: + default: + } + }() + + h.mutex.Lock() + defer h.mutex.Unlock() + + switch h.writeEncLevel { + case protocol.EncryptionInitial: + // assume that the first WriteRecord call contains the ClientHello + n, err := h.initialStream.Write(p) + if !h.clientHelloWritten && h.perspective == protocol.PerspectiveClient { + h.clientHelloWritten = true + close(h.clientHelloWrittenChan) + } + return n, err + case protocol.EncryptionHandshake: + return h.handshakeStream.Write(p) + case protocol.Encryption1RTT: + return h.oneRTTStream.Write(p) + default: + panic(fmt.Sprintf("unexpected write encryption level: %s", h.writeEncLevel)) + } +} + +func (h *cryptoSetup) SendAlert(alert uint8) { + h.alertChan <- alert +} + +func (h *cryptoSetup) GetSealer() (protocol.EncryptionLevel, Sealer) { + h.mutex.Lock() + defer h.mutex.Unlock() + + if h.sealer != nil { + return protocol.Encryption1RTT, h.sealer + } + if h.handshakeSealer != nil { + return protocol.EncryptionHandshake, h.handshakeSealer + } + return protocol.EncryptionInitial, h.initialSealer +} + +func (h *cryptoSetup) GetSealerWithEncryptionLevel(level protocol.EncryptionLevel) (Sealer, error) { + errNoSealer := fmt.Errorf("CryptoSetup: no sealer with encryption level %s", level.String()) + + h.mutex.Lock() + defer h.mutex.Unlock() + + switch level { + case protocol.EncryptionInitial: + return h.initialSealer, nil + case protocol.EncryptionHandshake: + if h.handshakeSealer == nil { + return nil, errNoSealer + } + return h.handshakeSealer, nil + case protocol.Encryption1RTT: + if h.sealer == nil { + return nil, errNoSealer + } + return h.sealer, nil + default: + return nil, errNoSealer + } +} + +func (h *cryptoSetup) GetOpener(level protocol.EncryptionLevel) (Opener, error) { + h.mutex.Lock() + defer h.mutex.Unlock() + + switch level { + case protocol.EncryptionInitial: + return h.initialOpener, nil + case protocol.EncryptionHandshake: + if h.handshakeOpener == nil { + return nil, ErrOpenerNotYetAvailable + } + return h.handshakeOpener, nil + case protocol.Encryption1RTT: + if h.opener == nil { + return nil, ErrOpenerNotYetAvailable + } + return h.opener, nil + default: + return nil, fmt.Errorf("CryptoSetup: no opener with encryption level %s", level) + } +} + +func (h *cryptoSetup) ConnectionState() tls.ConnectionState { + cs := h.conn.ConnectionState() + // h.conn is a qtls.Conn, which returns a qtls.ConnectionState. + // qtls.ConnectionState is identical to the tls.ConnectionState. + // It contains an unexported field which is used ExportKeyingMaterial(). + // The only way to return a tls.ConnectionState is to use unsafe. + // In unsafe.go we check that the two objects are actually identical. + return *(*tls.ConnectionState)(unsafe.Pointer(&cs)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/initial_aead.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/initial_aead.go new file mode 100644 index 00000000..5d78bbe2 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/initial_aead.go @@ -0,0 +1,52 @@ +package handshake + +import ( + "crypto" + "crypto/aes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/marten-seemann/qtls" +) + +var quicVersion1Salt = []byte{0xef, 0x4f, 0xb0, 0xab, 0xb4, 0x74, 0x70, 0xc4, 0x1b, 0xef, 0xcf, 0x80, 0x31, 0x33, 0x4f, 0xae, 0x48, 0x5e, 0x09, 0xa0} + +// NewInitialAEAD creates a new AEAD for Initial encryption / decryption. +func NewInitialAEAD(connID protocol.ConnectionID, pers protocol.Perspective) (Sealer, Opener, error) { + clientSecret, serverSecret := computeSecrets(connID) + var mySecret, otherSecret []byte + if pers == protocol.PerspectiveClient { + mySecret = clientSecret + otherSecret = serverSecret + } else { + mySecret = serverSecret + otherSecret = clientSecret + } + myKey, myHPKey, myIV := computeInitialKeyAndIV(mySecret) + otherKey, otherHPKey, otherIV := computeInitialKeyAndIV(otherSecret) + + encrypter := qtls.AEADAESGCMTLS13(myKey, myIV) + hpEncrypter, err := aes.NewCipher(myHPKey) + if err != nil { + return nil, nil, err + } + decrypter := qtls.AEADAESGCMTLS13(otherKey, otherIV) + hpDecrypter, err := aes.NewCipher(otherHPKey) + if err != nil { + return nil, nil, err + } + return newSealer(encrypter, hpEncrypter, false), newOpener(decrypter, hpDecrypter, false), nil +} + +func computeSecrets(connID protocol.ConnectionID) (clientSecret, serverSecret []byte) { + initialSecret := qtls.HkdfExtract(crypto.SHA256, connID, quicVersion1Salt) + clientSecret = qtls.HkdfExpandLabel(crypto.SHA256, initialSecret, []byte{}, "client in", crypto.SHA256.Size()) + serverSecret = qtls.HkdfExpandLabel(crypto.SHA256, initialSecret, []byte{}, "server in", crypto.SHA256.Size()) + return +} + +func computeInitialKeyAndIV(secret []byte) (key, hpKey, iv []byte) { + key = qtls.HkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic key", 16) + hpKey = qtls.HkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic hp", 16) + iv = qtls.HkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic iv", 12) + return +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/interface.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/interface.go new file mode 100644 index 00000000..22522513 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/interface.go @@ -0,0 +1,52 @@ +package handshake + +import ( + "crypto/tls" + "crypto/x509" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/marten-seemann/qtls" +) + +// Opener opens a packet +type Opener interface { + Open(dst, src []byte, packetNumber protocol.PacketNumber, associatedData []byte) ([]byte, error) + DecryptHeader(sample []byte, firstByte *byte, pnBytes []byte) +} + +// Sealer seals a packet +type Sealer interface { + Seal(dst, src []byte, packetNumber protocol.PacketNumber, associatedData []byte) []byte + EncryptHeader(sample []byte, firstByte *byte, pnBytes []byte) + Overhead() int +} + +// A tlsExtensionHandler sends and received the QUIC TLS extension. +type tlsExtensionHandler interface { + GetExtensions(msgType uint8) []qtls.Extension + ReceivedExtensions(msgType uint8, exts []qtls.Extension) + TransportParameters() <-chan []byte +} + +// CryptoSetup handles the handshake and protecting / unprotecting packets +type CryptoSetup interface { + RunHandshake() error + io.Closer + ChangeConnectionID(protocol.ConnectionID) error + + HandleMessage([]byte, protocol.EncryptionLevel) bool + ConnectionState() tls.ConnectionState + + GetSealer() (protocol.EncryptionLevel, Sealer) + GetSealerWithEncryptionLevel(protocol.EncryptionLevel) (Sealer, error) + GetOpener(protocol.EncryptionLevel) (Opener, error) +} + +// ConnectionState records basic details about the QUIC connection. +// Warning: This API should not be considered stable and might change soon. +type ConnectionState struct { + HandshakeComplete bool // handshake is complete + ServerName string // server name requested by client, if any (server side only) + PeerCertificates []*x509.Certificate // certificate chain presented by remote peer +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/qtls.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/qtls.go new file mode 100644 index 00000000..8880d9cb --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/qtls.go @@ -0,0 +1,132 @@ +package handshake + +import ( + "crypto/tls" + "net" + "time" + "unsafe" + + "github.com/marten-seemann/qtls" +) + +type conn struct { + remoteAddr net.Addr +} + +func newConn(remote net.Addr) net.Conn { + return &conn{remoteAddr: remote} +} + +var _ net.Conn = &conn{} + +func (c *conn) Read([]byte) (int, error) { return 0, nil } +func (c *conn) Write([]byte) (int, error) { return 0, nil } +func (c *conn) Close() error { return nil } +func (c *conn) RemoteAddr() net.Addr { return c.remoteAddr } +func (c *conn) LocalAddr() net.Addr { return nil } +func (c *conn) SetReadDeadline(time.Time) error { return nil } +func (c *conn) SetWriteDeadline(time.Time) error { return nil } +func (c *conn) SetDeadline(time.Time) error { return nil } + +type clientSessionCache struct { + tls.ClientSessionCache +} + +var _ qtls.ClientSessionCache = &clientSessionCache{} + +func (c *clientSessionCache) Get(sessionKey string) (*qtls.ClientSessionState, bool) { + sess, ok := c.ClientSessionCache.Get(sessionKey) + if sess == nil { + return nil, ok + } + // qtls.ClientSessionState is identical to the tls.ClientSessionState. + // In order to allow users of quic-go to use a tls.Config, + // we need this workaround to use the ClientSessionCache. + // In unsafe.go we check that the two structs are actually identical. + usess := (*[unsafe.Sizeof(*sess)]byte)(unsafe.Pointer(sess))[:] + var session qtls.ClientSessionState + usession := (*[unsafe.Sizeof(session)]byte)(unsafe.Pointer(&session))[:] + copy(usession, usess) + return &session, ok +} + +func (c *clientSessionCache) Put(sessionKey string, cs *qtls.ClientSessionState) { + // qtls.ClientSessionState is identical to the tls.ClientSessionState. + // In order to allow users of quic-go to use a tls.Config, + // we need this workaround to use the ClientSessionCache. + // In unsafe.go we check that the two structs are actually identical. + usess := (*[unsafe.Sizeof(*cs)]byte)(unsafe.Pointer(cs))[:] + var session tls.ClientSessionState + usession := (*[unsafe.Sizeof(session)]byte)(unsafe.Pointer(&session))[:] + copy(usession, usess) + c.ClientSessionCache.Put(sessionKey, &session) +} + +func tlsConfigToQtlsConfig( + c *tls.Config, + recordLayer qtls.RecordLayer, + extHandler tlsExtensionHandler, +) *qtls.Config { + if c == nil { + c = &tls.Config{} + } + // Clone the config first. This executes the tls.Config.serverInit(). + // This sets the SessionTicketKey, if the user didn't supply one. + c = c.Clone() + // QUIC requires TLS 1.3 or newer + minVersion := c.MinVersion + if minVersion < qtls.VersionTLS13 { + minVersion = qtls.VersionTLS13 + } + maxVersion := c.MaxVersion + if maxVersion < qtls.VersionTLS13 { + maxVersion = qtls.VersionTLS13 + } + var getConfigForClient func(ch *tls.ClientHelloInfo) (*qtls.Config, error) + if c.GetConfigForClient != nil { + getConfigForClient = func(ch *tls.ClientHelloInfo) (*qtls.Config, error) { + tlsConf, err := c.GetConfigForClient(ch) + if err != nil { + return nil, err + } + if tlsConf == nil { + return nil, nil + } + return tlsConfigToQtlsConfig(tlsConf, recordLayer, extHandler), nil + } + } + var csc qtls.ClientSessionCache + if c.ClientSessionCache != nil { + csc = &clientSessionCache{c.ClientSessionCache} + } + return &qtls.Config{ + Rand: c.Rand, + Time: c.Time, + Certificates: c.Certificates, + NameToCertificate: c.NameToCertificate, + GetCertificate: c.GetCertificate, + GetClientCertificate: c.GetClientCertificate, + GetConfigForClient: getConfigForClient, + VerifyPeerCertificate: c.VerifyPeerCertificate, + RootCAs: c.RootCAs, + NextProtos: c.NextProtos, + ServerName: c.ServerName, + ClientAuth: c.ClientAuth, + ClientCAs: c.ClientCAs, + InsecureSkipVerify: c.InsecureSkipVerify, + CipherSuites: c.CipherSuites, + PreferServerCipherSuites: c.PreferServerCipherSuites, + SessionTicketsDisabled: c.SessionTicketsDisabled, + SessionTicketKey: c.SessionTicketKey, + ClientSessionCache: csc, + MinVersion: minVersion, + MaxVersion: maxVersion, + CurvePreferences: c.CurvePreferences, + DynamicRecordSizingDisabled: c.DynamicRecordSizingDisabled, + // no need to copy Renegotiation, it's not supported by TLS 1.3 + KeyLogWriter: c.KeyLogWriter, + AlternativeRecordLayer: recordLayer, + GetExtensions: extHandler.GetExtensions, + ReceivedExtensions: extHandler.ReceivedExtensions, + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/tls_extension_handler.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/tls_extension_handler.go new file mode 100644 index 00000000..590aafd1 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/tls_extension_handler.go @@ -0,0 +1,58 @@ +package handshake + +import ( + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/marten-seemann/qtls" +) + +const quicTLSExtensionType = 0xffa5 + +type extensionHandler struct { + ourParams []byte + paramsChan chan []byte + + perspective protocol.Perspective +} + +var _ tlsExtensionHandler = &extensionHandler{} + +// newExtensionHandler creates a new extension handler +func newExtensionHandler(params []byte, pers protocol.Perspective) tlsExtensionHandler { + return &extensionHandler{ + ourParams: params, + paramsChan: make(chan []byte), + perspective: pers, + } +} + +func (h *extensionHandler) GetExtensions(msgType uint8) []qtls.Extension { + if (h.perspective == protocol.PerspectiveClient && messageType(msgType) != typeClientHello) || + (h.perspective == protocol.PerspectiveServer && messageType(msgType) != typeEncryptedExtensions) { + return nil + } + return []qtls.Extension{{ + Type: quicTLSExtensionType, + Data: h.ourParams, + }} +} + +func (h *extensionHandler) ReceivedExtensions(msgType uint8, exts []qtls.Extension) { + if (h.perspective == protocol.PerspectiveClient && messageType(msgType) != typeEncryptedExtensions) || + (h.perspective == protocol.PerspectiveServer && messageType(msgType) != typeClientHello) { + return + } + + var data []byte + for _, ext := range exts { + if ext.Type == quicTLSExtensionType { + data = ext.Data + break + } + } + + h.paramsChan <- data +} + +func (h *extensionHandler) TransportParameters() <-chan []byte { + return h.paramsChan +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/transport_parameters.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/transport_parameters.go new file mode 100644 index 00000000..6810cbc3 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/transport_parameters.go @@ -0,0 +1,260 @@ +package handshake + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "sort" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +type transportParameterID uint16 + +const ( + originalConnectionIDParameterID transportParameterID = 0x0 + idleTimeoutParameterID transportParameterID = 0x1 + statelessResetTokenParameterID transportParameterID = 0x2 + maxPacketSizeParameterID transportParameterID = 0x3 + initialMaxDataParameterID transportParameterID = 0x4 + initialMaxStreamDataBidiLocalParameterID transportParameterID = 0x5 + initialMaxStreamDataBidiRemoteParameterID transportParameterID = 0x6 + initialMaxStreamDataUniParameterID transportParameterID = 0x7 + initialMaxStreamsBidiParameterID transportParameterID = 0x8 + initialMaxStreamsUniParameterID transportParameterID = 0x9 + ackDelayExponentParameterID transportParameterID = 0xa + disableMigrationParameterID transportParameterID = 0xc +) + +// TransportParameters are parameters sent to the peer during the handshake +type TransportParameters struct { + InitialMaxStreamDataBidiLocal protocol.ByteCount + InitialMaxStreamDataBidiRemote protocol.ByteCount + InitialMaxStreamDataUni protocol.ByteCount + InitialMaxData protocol.ByteCount + + AckDelayExponent uint8 + + MaxPacketSize protocol.ByteCount + + MaxUniStreams uint64 + MaxBidiStreams uint64 + + IdleTimeout time.Duration + DisableMigration bool + + StatelessResetToken *[16]byte + OriginalConnectionID protocol.ConnectionID +} + +// Unmarshal the transport parameters +func (p *TransportParameters) Unmarshal(data []byte, sentBy protocol.Perspective) error { + if len(data) < 2 { + return errors.New("transport parameter data too short") + } + length := binary.BigEndian.Uint16(data[:2]) + if len(data)-2 < int(length) { + return fmt.Errorf("expected transport parameters to be %d bytes long, have %d", length, len(data)-2) + } + + // needed to check that every parameter is only sent at most once + var parameterIDs []transportParameterID + + var readAckDelayExponent bool + + r := bytes.NewReader(data[2:]) + for r.Len() >= 4 { + paramIDInt, _ := utils.BigEndian.ReadUint16(r) + paramID := transportParameterID(paramIDInt) + paramLen, _ := utils.BigEndian.ReadUint16(r) + parameterIDs = append(parameterIDs, paramID) + switch paramID { + case ackDelayExponentParameterID: + readAckDelayExponent = true + fallthrough + case initialMaxStreamDataBidiLocalParameterID, + initialMaxStreamDataBidiRemoteParameterID, + initialMaxStreamDataUniParameterID, + initialMaxDataParameterID, + initialMaxStreamsBidiParameterID, + initialMaxStreamsUniParameterID, + idleTimeoutParameterID, + maxPacketSizeParameterID: + if err := p.readNumericTransportParameter(r, paramID, int(paramLen)); err != nil { + return err + } + default: + if r.Len() < int(paramLen) { + return fmt.Errorf("remaining length (%d) smaller than parameter length (%d)", r.Len(), paramLen) + } + switch paramID { + case disableMigrationParameterID: + if paramLen != 0 { + return fmt.Errorf("wrong length for disable_migration: %d (expected empty)", paramLen) + } + p.DisableMigration = true + case statelessResetTokenParameterID: + if sentBy == protocol.PerspectiveClient { + return errors.New("client sent a stateless_reset_token") + } + if paramLen != 16 { + return fmt.Errorf("wrong length for stateless_reset_token: %d (expected 16)", paramLen) + } + var token [16]byte + r.Read(token[:]) + p.StatelessResetToken = &token + case originalConnectionIDParameterID: + if sentBy == protocol.PerspectiveClient { + return errors.New("client sent an original_connection_id") + } + p.OriginalConnectionID, _ = protocol.ReadConnectionID(r, int(paramLen)) + default: + r.Seek(int64(paramLen), io.SeekCurrent) + } + } + } + + if !readAckDelayExponent { + p.AckDelayExponent = protocol.DefaultAckDelayExponent + } + + // check that every transport parameter was sent at most once + sort.Slice(parameterIDs, func(i, j int) bool { return parameterIDs[i] < parameterIDs[j] }) + for i := 0; i < len(parameterIDs)-1; i++ { + if parameterIDs[i] == parameterIDs[i+1] { + return fmt.Errorf("received duplicate transport parameter %#x", parameterIDs[i]) + } + } + + if r.Len() != 0 { + return fmt.Errorf("should have read all data. Still have %d bytes", r.Len()) + } + return nil +} + +func (p *TransportParameters) readNumericTransportParameter( + r *bytes.Reader, + paramID transportParameterID, + expectedLen int, +) error { + remainingLen := r.Len() + val, err := utils.ReadVarInt(r) + if err != nil { + return fmt.Errorf("error while reading transport parameter %d: %s", paramID, err) + } + if remainingLen-r.Len() != expectedLen { + return fmt.Errorf("inconsistent transport parameter length for %d", paramID) + } + switch paramID { + case initialMaxStreamDataBidiLocalParameterID: + p.InitialMaxStreamDataBidiLocal = protocol.ByteCount(val) + case initialMaxStreamDataBidiRemoteParameterID: + p.InitialMaxStreamDataBidiRemote = protocol.ByteCount(val) + case initialMaxStreamDataUniParameterID: + p.InitialMaxStreamDataUni = protocol.ByteCount(val) + case initialMaxDataParameterID: + p.InitialMaxData = protocol.ByteCount(val) + case initialMaxStreamsBidiParameterID: + p.MaxBidiStreams = val + case initialMaxStreamsUniParameterID: + p.MaxUniStreams = val + case idleTimeoutParameterID: + p.IdleTimeout = utils.MaxDuration(protocol.MinRemoteIdleTimeout, time.Duration(val)*time.Millisecond) + case maxPacketSizeParameterID: + if val < 1200 { + return fmt.Errorf("invalid value for max_packet_size: %d (minimum 1200)", val) + } + p.MaxPacketSize = protocol.ByteCount(val) + case ackDelayExponentParameterID: + if val > protocol.MaxAckDelayExponent { + return fmt.Errorf("invalid value for ack_delay_exponent: %d (maximum %d)", val, protocol.MaxAckDelayExponent) + } + p.AckDelayExponent = uint8(val) + default: + return fmt.Errorf("TransportParameter BUG: transport parameter %d not found", paramID) + } + return nil +} + +// Marshal the transport parameters +func (p *TransportParameters) Marshal() []byte { + b := &bytes.Buffer{} + b.Write([]byte{0, 0}) // length. Will be replaced later + + // initial_max_stream_data_bidi_local + utils.BigEndian.WriteUint16(b, uint16(initialMaxStreamDataBidiLocalParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(uint64(p.InitialMaxStreamDataBidiLocal)))) + utils.WriteVarInt(b, uint64(p.InitialMaxStreamDataBidiLocal)) + // initial_max_stream_data_bidi_remote + utils.BigEndian.WriteUint16(b, uint16(initialMaxStreamDataBidiRemoteParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(uint64(p.InitialMaxStreamDataBidiRemote)))) + utils.WriteVarInt(b, uint64(p.InitialMaxStreamDataBidiRemote)) + // initial_max_stream_data_uni + utils.BigEndian.WriteUint16(b, uint16(initialMaxStreamDataUniParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(uint64(p.InitialMaxStreamDataUni)))) + utils.WriteVarInt(b, uint64(p.InitialMaxStreamDataUni)) + // initial_max_data + utils.BigEndian.WriteUint16(b, uint16(initialMaxDataParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(uint64(p.InitialMaxData)))) + utils.WriteVarInt(b, uint64(p.InitialMaxData)) + // initial_max_bidi_streams + utils.BigEndian.WriteUint16(b, uint16(initialMaxStreamsBidiParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(p.MaxBidiStreams))) + utils.WriteVarInt(b, p.MaxBidiStreams) + // initial_max_uni_streams + utils.BigEndian.WriteUint16(b, uint16(initialMaxStreamsUniParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(p.MaxUniStreams))) + utils.WriteVarInt(b, p.MaxUniStreams) + // idle_timeout + idleTimeout := uint64(p.IdleTimeout / time.Millisecond) + utils.BigEndian.WriteUint16(b, uint16(idleTimeoutParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(idleTimeout))) + utils.WriteVarInt(b, idleTimeout) + // max_packet_size + utils.BigEndian.WriteUint16(b, uint16(maxPacketSizeParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(uint64(protocol.MaxReceivePacketSize)))) + utils.WriteVarInt(b, uint64(protocol.MaxReceivePacketSize)) + // ack_delay_exponent + // Only send it if is different from the default value. + if p.AckDelayExponent != protocol.DefaultAckDelayExponent { + utils.BigEndian.WriteUint16(b, uint16(ackDelayExponentParameterID)) + utils.BigEndian.WriteUint16(b, uint16(utils.VarIntLen(uint64(p.AckDelayExponent)))) + utils.WriteVarInt(b, uint64(p.AckDelayExponent)) + } + // disable_migration + if p.DisableMigration { + utils.BigEndian.WriteUint16(b, uint16(disableMigrationParameterID)) + utils.BigEndian.WriteUint16(b, 0) + } + if p.StatelessResetToken != nil { + utils.BigEndian.WriteUint16(b, uint16(statelessResetTokenParameterID)) + utils.BigEndian.WriteUint16(b, 16) + b.Write(p.StatelessResetToken[:]) + } + // original_connection_id + if p.OriginalConnectionID.Len() > 0 { + utils.BigEndian.WriteUint16(b, uint16(originalConnectionIDParameterID)) + utils.BigEndian.WriteUint16(b, uint16(p.OriginalConnectionID.Len())) + b.Write(p.OriginalConnectionID.Bytes()) + } + + data := b.Bytes() + binary.BigEndian.PutUint16(data[:2], uint16(b.Len()-2)) + return data +} + +// String returns a string representation, intended for logging. +func (p *TransportParameters) String() string { + logString := "&handshake.TransportParameters{OriginalConnectionID: %s, InitialMaxStreamDataBidiLocal: %#x, InitialMaxStreamDataBidiRemote: %#x, InitialMaxStreamDataUni: %#x, InitialMaxData: %#x, MaxBidiStreams: %d, MaxUniStreams: %d, IdleTimeout: %s, AckDelayExponent: %d" + logParams := []interface{}{p.OriginalConnectionID, p.InitialMaxStreamDataBidiLocal, p.InitialMaxStreamDataBidiRemote, p.InitialMaxStreamDataUni, p.InitialMaxData, p.MaxBidiStreams, p.MaxUniStreams, p.IdleTimeout, p.AckDelayExponent} + if p.StatelessResetToken != nil { // the client never sends a stateless reset token + logString += ", StatelessResetToken: %#x" + logParams = append(logParams, *p.StatelessResetToken) + } + logString += "}" + return fmt.Sprintf(logString, logParams...) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/handshake/unsafe.go b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/unsafe.go new file mode 100644 index 00000000..fb051aeb --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/handshake/unsafe.go @@ -0,0 +1,38 @@ +package handshake + +// This package uses unsafe to convert between: +// * qtls.ConnectionState and tls.ConnectionState +// * qtls.ClientSessionState and tls.ClientSessionState +// We check in init() that this conversion actually is safe. + +import ( + "crypto/tls" + "reflect" + + "github.com/marten-seemann/qtls" +) + +func init() { + if !structsEqual(&tls.ConnectionState{}, &qtls.ConnectionState{}) { + panic("qtls.ConnectionState not compatible with tls.ConnectionState") + } + if !structsEqual(&tls.ClientSessionState{}, &qtls.ClientSessionState{}) { + panic("qtls.ClientSessionState not compatible with tls.ClientSessionState") + } +} + +func structsEqual(a, b interface{}) bool { + sa := reflect.ValueOf(a).Elem() + sb := reflect.ValueOf(b).Elem() + if sa.NumField() != sb.NumField() { + return false + } + for i := 0; i < sa.NumField(); i++ { + fa := sa.Type().Field(i) + fb := sb.Type().Field(i) + if !reflect.DeepEqual(fa.Index, fb.Index) || fa.Name != fb.Name || fa.Anonymous != fb.Anonymous || fa.Offset != fb.Offset || !reflect.DeepEqual(fa.Type, fb.Type) { + return false + } + } + return true +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/connection_id.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/connection_id.go new file mode 100644 index 00000000..f99461b2 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/connection_id.go @@ -0,0 +1,69 @@ +package protocol + +import ( + "bytes" + "crypto/rand" + "fmt" + "io" +) + +// A ConnectionID in QUIC +type ConnectionID []byte + +const maxConnectionIDLen = 18 + +// GenerateConnectionID generates a connection ID using cryptographic random +func GenerateConnectionID(len int) (ConnectionID, error) { + b := make([]byte, len) + if _, err := rand.Read(b); err != nil { + return nil, err + } + return ConnectionID(b), nil +} + +// GenerateConnectionIDForInitial generates a connection ID for the Initial packet. +// It uses a length randomly chosen between 8 and 18 bytes. +func GenerateConnectionIDForInitial() (ConnectionID, error) { + r := make([]byte, 1) + if _, err := rand.Read(r); err != nil { + return nil, err + } + len := MinConnectionIDLenInitial + int(r[0])%(maxConnectionIDLen-MinConnectionIDLenInitial+1) + return GenerateConnectionID(len) +} + +// ReadConnectionID reads a connection ID of length len from the given io.Reader. +// It returns io.EOF if there are not enough bytes to read. +func ReadConnectionID(r io.Reader, len int) (ConnectionID, error) { + if len == 0 { + return nil, nil + } + c := make(ConnectionID, len) + _, err := io.ReadFull(r, c) + if err == io.ErrUnexpectedEOF { + return nil, io.EOF + } + return c, err +} + +// Equal says if two connection IDs are equal +func (c ConnectionID) Equal(other ConnectionID) bool { + return bytes.Equal(c, other) +} + +// Len returns the length of the connection ID in bytes +func (c ConnectionID) Len() int { + return len(c) +} + +// Bytes returns the byte representation +func (c ConnectionID) Bytes() []byte { + return []byte(c) +} + +func (c ConnectionID) String() string { + if c.Len() == 0 { + return "(empty)" + } + return fmt.Sprintf("%#x", c.Bytes()) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/encryption_level.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/encryption_level.go new file mode 100644 index 00000000..4b059b3a --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/encryption_level.go @@ -0,0 +1,28 @@ +package protocol + +// EncryptionLevel is the encryption level +// Default value is Unencrypted +type EncryptionLevel int + +const ( + // EncryptionUnspecified is a not specified encryption level + EncryptionUnspecified EncryptionLevel = iota + // EncryptionInitial is the Initial encryption level + EncryptionInitial + // EncryptionHandshake is the Handshake encryption level + EncryptionHandshake + // Encryption1RTT is the 1-RTT encryption level + Encryption1RTT +) + +func (e EncryptionLevel) String() string { + switch e { + case EncryptionInitial: + return "Initial" + case EncryptionHandshake: + return "Handshake" + case Encryption1RTT: + return "1-RTT" + } + return "unknown" +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/packet_number.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/packet_number.go new file mode 100644 index 00000000..405a07ac --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/packet_number.go @@ -0,0 +1,85 @@ +package protocol + +// PacketNumberLen is the length of the packet number in bytes +type PacketNumberLen uint8 + +const ( + // PacketNumberLenInvalid is the default value and not a valid length for a packet number + PacketNumberLenInvalid PacketNumberLen = 0 + // PacketNumberLen1 is a packet number length of 1 byte + PacketNumberLen1 PacketNumberLen = 1 + // PacketNumberLen2 is a packet number length of 2 bytes + PacketNumberLen2 PacketNumberLen = 2 + // PacketNumberLen3 is a packet number length of 3 bytes + PacketNumberLen3 PacketNumberLen = 3 + // PacketNumberLen4 is a packet number length of 4 bytes + PacketNumberLen4 PacketNumberLen = 4 +) + +// DecodePacketNumber calculates the packet number based on the received packet number, its length and the last seen packet number +func DecodePacketNumber( + packetNumberLength PacketNumberLen, + lastPacketNumber PacketNumber, + wirePacketNumber PacketNumber, +) PacketNumber { + var epochDelta PacketNumber + switch packetNumberLength { + case PacketNumberLen1: + epochDelta = PacketNumber(1) << 8 + case PacketNumberLen2: + epochDelta = PacketNumber(1) << 16 + case PacketNumberLen3: + epochDelta = PacketNumber(1) << 24 + case PacketNumberLen4: + epochDelta = PacketNumber(1) << 32 + } + epoch := lastPacketNumber & ^(epochDelta - 1) + prevEpochBegin := epoch - epochDelta + nextEpochBegin := epoch + epochDelta + return closestTo( + lastPacketNumber+1, + epoch+wirePacketNumber, + closestTo(lastPacketNumber+1, prevEpochBegin+wirePacketNumber, nextEpochBegin+wirePacketNumber), + ) +} + +func closestTo(target, a, b PacketNumber) PacketNumber { + if delta(target, a) < delta(target, b) { + return a + } + return b +} + +func delta(a, b PacketNumber) PacketNumber { + if a < b { + return b - a + } + return a - b +} + +// GetPacketNumberLengthForHeader gets the length of the packet number for the public header +// it never chooses a PacketNumberLen of 1 byte, since this is too short under certain circumstances +func GetPacketNumberLengthForHeader(packetNumber, leastUnacked PacketNumber) PacketNumberLen { + diff := uint64(packetNumber - leastUnacked) + if diff < (1 << (16 - 1)) { + return PacketNumberLen2 + } + if diff < (1 << (24 - 1)) { + return PacketNumberLen3 + } + return PacketNumberLen4 +} + +// GetPacketNumberLength gets the minimum length needed to fully represent the packet number +func GetPacketNumberLength(packetNumber PacketNumber) PacketNumberLen { + if packetNumber < (1 << (uint8(PacketNumberLen1) * 8)) { + return PacketNumberLen1 + } + if packetNumber < (1 << (uint8(PacketNumberLen2) * 8)) { + return PacketNumberLen2 + } + if packetNumber < (1 << (uint8(PacketNumberLen3) * 8)) { + return PacketNumberLen3 + } + return PacketNumberLen4 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/params.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/params.go new file mode 100644 index 00000000..88e0ae45 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/params.go @@ -0,0 +1,126 @@ +package protocol + +import "time" + +// MaxPacketSizeIPv4 is the maximum packet size that we use for sending IPv4 packets. +const MaxPacketSizeIPv4 = 1252 + +// MaxPacketSizeIPv6 is the maximum packet size that we use for sending IPv6 packets. +const MaxPacketSizeIPv6 = 1232 + +const defaultMaxCongestionWindowPackets = 1000 + +// DefaultMaxCongestionWindow is the default for the max congestion window +const DefaultMaxCongestionWindow ByteCount = defaultMaxCongestionWindowPackets * DefaultTCPMSS + +// InitialCongestionWindow is the initial congestion window in QUIC packets +const InitialCongestionWindow ByteCount = 32 * DefaultTCPMSS + +// MaxUndecryptablePackets limits the number of undecryptable packets that are queued in the session. +const MaxUndecryptablePackets = 10 + +// ConnectionFlowControlMultiplier determines how much larger the connection flow control windows needs to be relative to any stream's flow control window +// This is the value that Chromium is using +const ConnectionFlowControlMultiplier = 1.5 + +// InitialMaxStreamData is the stream-level flow control window for receiving data +const InitialMaxStreamData = (1 << 10) * 512 // 512 kb + +// InitialMaxData is the connection-level flow control window for receiving data +const InitialMaxData = ConnectionFlowControlMultiplier * InitialMaxStreamData + +// DefaultMaxReceiveStreamFlowControlWindow is the default maximum stream-level flow control window for receiving data, for the server +const DefaultMaxReceiveStreamFlowControlWindow = 6 * (1 << 20) // 6 MB + +// DefaultMaxReceiveConnectionFlowControlWindow is the default connection-level flow control window for receiving data, for the server +const DefaultMaxReceiveConnectionFlowControlWindow = 15 * (1 << 20) // 12 MB + +// WindowUpdateThreshold is the fraction of the receive window that has to be consumed before an higher offset is advertised to the client +const WindowUpdateThreshold = 0.25 + +// DefaultMaxIncomingStreams is the maximum number of streams that a peer may open +const DefaultMaxIncomingStreams = 100 + +// DefaultMaxIncomingUniStreams is the maximum number of unidirectional streams that a peer may open +const DefaultMaxIncomingUniStreams = 100 + +// MaxSessionUnprocessedPackets is the max number of packets stored in each session that are not yet processed. +const MaxSessionUnprocessedPackets = defaultMaxCongestionWindowPackets + +// SkipPacketAveragePeriodLength is the average period length in which one packet number is skipped to prevent an Optimistic ACK attack +const SkipPacketAveragePeriodLength PacketNumber = 500 + +// MaxTrackedSkippedPackets is the maximum number of skipped packet numbers the SentPacketHandler keep track of for Optimistic ACK attack mitigation +const MaxTrackedSkippedPackets = 10 + +// MaxAcceptQueueSize is the maximum number of sessions that the server queues for accepting. +// If the queue is full, new connection attempts will be rejected. +const MaxAcceptQueueSize = 32 + +// CookieExpiryTime is the valid time of a cookie +const CookieExpiryTime = 24 * time.Hour + +// MaxOutstandingSentPackets is maximum number of packets saved for retransmission. +// When reached, it imposes a soft limit on sending new packets: +// Sending ACKs and retransmission is still allowed, but now new regular packets can be sent. +const MaxOutstandingSentPackets = 2 * defaultMaxCongestionWindowPackets + +// MaxTrackedSentPackets is maximum number of sent packets saved for retransmission. +// When reached, no more packets will be sent. +// This value *must* be larger than MaxOutstandingSentPackets. +const MaxTrackedSentPackets = MaxOutstandingSentPackets * 5 / 4 + +// MaxTrackedReceivedAckRanges is the maximum number of ACK ranges tracked +const MaxTrackedReceivedAckRanges = defaultMaxCongestionWindowPackets + +// MaxNonRetransmittableAcks is the maximum number of packets containing an ACK, but no retransmittable frames, that we send in a row +const MaxNonRetransmittableAcks = 19 + +// MaxStreamFrameSorterGaps is the maximum number of gaps between received StreamFrames +// prevents DoS attacks against the streamFrameSorter +const MaxStreamFrameSorterGaps = 1000 + +// MaxCryptoStreamOffset is the maximum offset allowed on any of the crypto streams. +// This limits the size of the ClientHello and Certificates that can be received. +const MaxCryptoStreamOffset = 16 * (1 << 10) + +// MinRemoteIdleTimeout is the minimum value that we accept for the remote idle timeout +const MinRemoteIdleTimeout = 5 * time.Second + +// DefaultIdleTimeout is the default idle timeout +const DefaultIdleTimeout = 30 * time.Second + +// DefaultHandshakeTimeout is the default timeout for a connection until the crypto handshake succeeds. +const DefaultHandshakeTimeout = 10 * time.Second + +// RetiredConnectionIDDeleteTimeout is the time we keep closed sessions around in order to retransmit the CONNECTION_CLOSE. +// after this time all information about the old connection will be deleted +const RetiredConnectionIDDeleteTimeout = 5 * time.Second + +// MinStreamFrameSize is the minimum size that has to be left in a packet, so that we add another STREAM frame. +// This avoids splitting up STREAM frames into small pieces, which has 2 advantages: +// 1. it reduces the framing overhead +// 2. it reduces the head-of-line blocking, when a packet is lost +const MinStreamFrameSize ByteCount = 128 + +// MaxPostHandshakeCryptoFrameSize is the maximum size of CRYPTO frames +// we send after the handshake completes. +const MaxPostHandshakeCryptoFrameSize ByteCount = 1000 + +// MaxAckFrameSize is the maximum size for an ACK frame that we write +// Due to the varint encoding, ACK frames can grow (almost) indefinitely large. +// The MaxAckFrameSize should be large enough to encode many ACK range, +// but must ensure that a maximum size ACK frame fits into one packet. +const MaxAckFrameSize ByteCount = 1000 + +// MinPacingDelay is the minimum duration that is used for packet pacing +// If the packet packing frequency is higher, multiple packets might be sent at once. +// Example: For a packet pacing delay of 20 microseconds, we would send 5 packets at once, wait for 100 microseconds, and so forth. +const MinPacingDelay time.Duration = 100 * time.Microsecond + +// DefaultConnectionIDLength is the connection ID length that is used for multiplexed connections +// if no other value is configured. +const DefaultConnectionIDLength = 4 + +// AckDelayExponent is the ack delay exponent used when sending ACKs. +const AckDelayExponent = 3 diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/perspective.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/perspective.go new file mode 100644 index 00000000..43358fec --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/perspective.go @@ -0,0 +1,26 @@ +package protocol + +// Perspective determines if we're acting as a server or a client +type Perspective int + +// the perspectives +const ( + PerspectiveServer Perspective = 1 + PerspectiveClient Perspective = 2 +) + +// Opposite returns the perspective of the peer +func (p Perspective) Opposite() Perspective { + return 3 - p +} + +func (p Perspective) String() string { + switch p { + case PerspectiveServer: + return "Server" + case PerspectiveClient: + return "Client" + default: + return "invalid perspective" + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/protocol.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/protocol.go new file mode 100644 index 00000000..6e59afcb --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/protocol.go @@ -0,0 +1,75 @@ +package protocol + +import ( + "fmt" +) + +// A PacketNumber in QUIC +type PacketNumber uint64 + +// The PacketType is the Long Header Type +type PacketType uint8 + +const ( + // PacketTypeInitial is the packet type of an Initial packet + PacketTypeInitial PacketType = 1 + iota + // PacketTypeRetry is the packet type of a Retry packet + PacketTypeRetry + // PacketTypeHandshake is the packet type of a Handshake packet + PacketTypeHandshake + // PacketType0RTT is the packet type of a 0-RTT packet + PacketType0RTT +) + +func (t PacketType) String() string { + switch t { + case PacketTypeInitial: + return "Initial" + case PacketTypeRetry: + return "Retry" + case PacketTypeHandshake: + return "Handshake" + case PacketType0RTT: + return "0-RTT Protected" + default: + return fmt.Sprintf("unknown packet type: %d", t) + } +} + +// A ByteCount in QUIC +type ByteCount uint64 + +// MaxByteCount is the maximum value of a ByteCount +const MaxByteCount = ByteCount(1<<62 - 1) + +// An ApplicationErrorCode is an application-defined error code. +type ApplicationErrorCode uint16 + +// MaxReceivePacketSize maximum packet size of any QUIC packet, based on +// ethernet's max size, minus the IP and UDP headers. IPv6 has a 40 byte header, +// UDP adds an additional 8 bytes. This is a total overhead of 48 bytes. +// Ethernet's max packet size is 1500 bytes, 1500 - 48 = 1452. +const MaxReceivePacketSize ByteCount = 1452 + +// DefaultTCPMSS is the default maximum packet size used in the Linux TCP implementation. +// Used in QUIC for congestion window computations in bytes. +const DefaultTCPMSS ByteCount = 1460 + +// MinInitialPacketSize is the minimum size an Initial packet is required to have. +const MinInitialPacketSize = 1200 + +// MinStatelessResetSize is the minimum size of a stateless reset packet +const MinStatelessResetSize = 1 /* first byte */ + 22 /* random bytes */ + 16 /* token */ + +// MinConnectionIDLenInitial is the minimum length of the destination connection ID on an Initial packet. +const MinConnectionIDLenInitial = 8 + +// MaxStreamCount is the maximum stream count value that can be sent in MAX_STREAMS frames +// and as the stream count in the transport parameters +const MaxStreamCount = 1 << 60 + +// DefaultAckDelayExponent is the default ack delay exponent +const DefaultAckDelayExponent = 3 + +// MaxAckDelayExponent is the maximum ack delay exponent +const MaxAckDelayExponent = 20 diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/stream_id.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/stream_id.go new file mode 100644 index 00000000..b96e0c2b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/stream_id.go @@ -0,0 +1,67 @@ +package protocol + +// A StreamID in QUIC +type StreamID uint64 + +// StreamType encodes if this is a unidirectional or bidirectional stream +type StreamType uint8 + +const ( + // StreamTypeUni is a unidirectional stream + StreamTypeUni StreamType = iota + // StreamTypeBidi is a bidirectional stream + StreamTypeBidi +) + +// InitiatedBy says if the stream was initiated by the client or by the server +func (s StreamID) InitiatedBy() Perspective { + if s%2 == 0 { + return PerspectiveClient + } + return PerspectiveServer +} + +//Type says if this is a unidirectional or bidirectional stream +func (s StreamID) Type() StreamType { + if s%4 >= 2 { + return StreamTypeUni + } + return StreamTypeBidi +} + +// StreamNum returns how many streams in total are below this +// Example: for stream 9 it returns 3 (i.e. streams 1, 5 and 9) +func (s StreamID) StreamNum() uint64 { + return uint64(s/4) + 1 +} + +// MaxStreamID is the highest stream ID that a peer is allowed to open, +// when it is allowed to open numStreams. +func MaxStreamID(stype StreamType, numStreams uint64, pers Perspective) StreamID { + if numStreams == 0 { + return 0 + } + var first StreamID + switch stype { + case StreamTypeBidi: + switch pers { + case PerspectiveClient: + first = 0 + case PerspectiveServer: + first = 1 + } + case StreamTypeUni: + switch pers { + case PerspectiveClient: + first = 2 + case PerspectiveServer: + first = 3 + } + } + return first + 4*StreamID(numStreams-1) +} + +// FirstStream returns the first valid stream ID +func FirstStream(stype StreamType, pers Perspective) StreamID { + return MaxStreamID(stype, 1, pers) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/protocol/version.go b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/version.go new file mode 100644 index 00000000..6e7d6d95 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/protocol/version.go @@ -0,0 +1,119 @@ +package protocol + +import ( + "crypto/rand" + "encoding/binary" + "fmt" + "math" +) + +// VersionNumber is a version number as int +type VersionNumber uint32 + +// gQUIC version range as defined in the wiki: https://github.com/quicwg/base-drafts/wiki/QUIC-Versions +const ( + gquicVersion0 = 0x51303030 + maxGquicVersion = 0x51303439 +) + +// The version numbers, making grepping easier +const ( + VersionTLS VersionNumber = VersionMilestone0_11_1 + VersionWhatever VersionNumber = 1 // for when the version doesn't matter + VersionUnknown VersionNumber = math.MaxUint32 + + VersionMilestone0_11_1 VersionNumber = 0xff000013 // QUIC WG draft-19 +) + +// SupportedVersions lists the versions that the server supports +// must be in sorted descending order +var SupportedVersions = []VersionNumber{VersionMilestone0_11_1} + +// IsValidVersion says if the version is known to quic-go +func IsValidVersion(v VersionNumber) bool { + return v == VersionTLS || IsSupportedVersion(SupportedVersions, v) +} + +func (vn VersionNumber) String() string { + switch vn { + case VersionWhatever: + return "whatever" + case VersionUnknown: + return "unknown" + case VersionMilestone0_11_1: + return "QUIC WG draft-19" + default: + if vn.isGQUIC() { + return fmt.Sprintf("gQUIC %d", vn.toGQUICVersion()) + } + return fmt.Sprintf("%#x", uint32(vn)) + } +} + +// ToAltSvc returns the representation of the version for the H2 Alt-Svc parameters +func (vn VersionNumber) ToAltSvc() string { + return fmt.Sprintf("%d", vn) +} + +func (vn VersionNumber) isGQUIC() bool { + return vn > gquicVersion0 && vn <= maxGquicVersion +} + +func (vn VersionNumber) toGQUICVersion() int { + return int(10*(vn-gquicVersion0)/0x100) + int(vn%0x10) +} + +// IsSupportedVersion returns true if the server supports this version +func IsSupportedVersion(supported []VersionNumber, v VersionNumber) bool { + for _, t := range supported { + if t == v { + return true + } + } + return false +} + +// ChooseSupportedVersion finds the best version in the overlap of ours and theirs +// ours is a slice of versions that we support, sorted by our preference (descending) +// theirs is a slice of versions offered by the peer. The order does not matter. +// The bool returned indicates if a matching version was found. +func ChooseSupportedVersion(ours, theirs []VersionNumber) (VersionNumber, bool) { + for _, ourVer := range ours { + for _, theirVer := range theirs { + if ourVer == theirVer { + return ourVer, true + } + } + } + return 0, false +} + +// generateReservedVersion generates a reserved version number (v & 0x0f0f0f0f == 0x0a0a0a0a) +func generateReservedVersion() VersionNumber { + b := make([]byte, 4) + _, _ = rand.Read(b) // ignore the error here. Failure to read random data doesn't break anything + return VersionNumber((binary.BigEndian.Uint32(b) | 0x0a0a0a0a) & 0xfafafafa) +} + +// GetGreasedVersions adds one reserved version number to a slice of version numbers, at a random position +func GetGreasedVersions(supported []VersionNumber) []VersionNumber { + b := make([]byte, 1) + _, _ = rand.Read(b) // ignore the error here. Failure to read random data doesn't break anything + randPos := int(b[0]) % (len(supported) + 1) + greased := make([]VersionNumber, len(supported)+1) + copy(greased, supported[:randPos]) + greased[randPos] = generateReservedVersion() + copy(greased[randPos+1:], supported[randPos:]) + return greased +} + +// StripGreasedVersions strips all greased versions from a slice of versions +func StripGreasedVersions(versions []VersionNumber) []VersionNumber { + realVersions := make([]VersionNumber, 0, len(versions)) + for _, v := range versions { + if v&0x0f0f0f0f != 0x0a0a0a0a { + realVersions = append(realVersions, v) + } + } + return realVersions +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/qerr/error_codes.go b/vendor/github.com/lucas-clemente/quic-go/internal/qerr/error_codes.go new file mode 100644 index 00000000..091de1ca --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/qerr/error_codes.go @@ -0,0 +1,71 @@ +package qerr + +import ( + "fmt" + + "github.com/marten-seemann/qtls" +) + +// ErrorCode can be used as a normal error without reason. +type ErrorCode uint16 + +// The error codes defined by QUIC +const ( + NoError ErrorCode = 0x0 + InternalError ErrorCode = 0x1 + ServerBusy ErrorCode = 0x2 + FlowControlError ErrorCode = 0x3 + StreamLimitError ErrorCode = 0x4 + StreamStateError ErrorCode = 0x5 + FinalSizeError ErrorCode = 0x6 + FrameEncodingError ErrorCode = 0x7 + TransportParameterError ErrorCode = 0x8 + VersionNegotiationError ErrorCode = 0x9 + ProtocolViolation ErrorCode = 0xa + InvalidMigration ErrorCode = 0xc +) + +func (e ErrorCode) isCryptoError() bool { + return e >= 0x100 && e < 0x200 +} + +func (e ErrorCode) Error() string { + if e.isCryptoError() { + return fmt.Sprintf("%s: %s", e.String(), qtls.Alert(e-0x100).Error()) + } + return e.String() +} + +func (e ErrorCode) String() string { + switch e { + case NoError: + return "NO_ERROR" + case InternalError: + return "INTERNAL_ERROR" + case ServerBusy: + return "SERVER_BUSY" + case FlowControlError: + return "FLOW_CONTROL_ERROR" + case StreamLimitError: + return "STREAM_LIMIT_ERROR" + case StreamStateError: + return "STREAM_STATE_ERROR" + case FinalSizeError: + return "FINAL_SIZE_ERROR" + case FrameEncodingError: + return "FRAME_ENCODING_ERROR" + case TransportParameterError: + return "TRANSPORT_PARAMETER_ERROR" + case VersionNegotiationError: + return "VERSION_NEGOTIATION_ERROR" + case ProtocolViolation: + return "PROTOCOL_VIOLATION" + case InvalidMigration: + return "INVALID_MIGRATION" + default: + if e.isCryptoError() { + return "CRYPTO_ERROR" + } + return fmt.Sprintf("unknown error code: %#x", uint16(e)) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/qerr/quic_error.go b/vendor/github.com/lucas-clemente/quic-go/internal/qerr/quic_error.go new file mode 100644 index 00000000..3a1718b0 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/qerr/quic_error.go @@ -0,0 +1,73 @@ +package qerr + +import ( + "fmt" + "net" +) + +// A QuicError consists of an error code plus a error reason +type QuicError struct { + ErrorCode ErrorCode + ErrorMessage string + isTimeout bool +} + +var _ net.Error = &QuicError{} + +// Error creates a new QuicError instance +func Error(errorCode ErrorCode, errorMessage string) *QuicError { + return &QuicError{ + ErrorCode: errorCode, + ErrorMessage: errorMessage, + } +} + +// TimeoutError creates a new QuicError instance for a timeout error +func TimeoutError(errorMessage string) *QuicError { + return &QuicError{ + ErrorMessage: errorMessage, + isTimeout: true, + } +} + +// CryptoError create a new QuicError instance for a crypto error +func CryptoError(tlsAlert uint8, errorMessage string) *QuicError { + return &QuicError{ + ErrorCode: 0x100 + ErrorCode(tlsAlert), + ErrorMessage: errorMessage, + } +} + +func (e *QuicError) Error() string { + if len(e.ErrorMessage) == 0 { + return e.ErrorCode.Error() + } + return fmt.Sprintf("%s: %s", e.ErrorCode.String(), e.ErrorMessage) +} + +// IsCryptoError says if this error is a crypto error +func (e *QuicError) IsCryptoError() bool { + return e.ErrorCode.isCryptoError() +} + +// Temporary says if the error is temporary. +func (e *QuicError) Temporary() bool { + return false +} + +// Timeout says if this error is a timeout. +func (e *QuicError) Timeout() bool { + return e.isTimeout +} + +// ToQuicError converts an arbitrary error to a QuicError. It leaves QuicErrors +// unchanged, and properly handles `ErrorCode`s. +func ToQuicError(err error) *QuicError { + switch e := err.(type) { + case *QuicError: + return e + case ErrorCode: + return Error(e, "") + } + return Error(InternalError, err.Error()) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/atomic_bool.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/atomic_bool.go new file mode 100644 index 00000000..cf464250 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/atomic_bool.go @@ -0,0 +1,22 @@ +package utils + +import "sync/atomic" + +// An AtomicBool is an atomic bool +type AtomicBool struct { + v int32 +} + +// Set sets the value +func (a *AtomicBool) Set(value bool) { + var n int32 + if value { + n = 1 + } + atomic.StoreInt32(&a.v, n) +} + +// Get gets the value +func (a *AtomicBool) Get() bool { + return atomic.LoadInt32(&a.v) != 0 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteinterval_linkedlist.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteinterval_linkedlist.go new file mode 100644 index 00000000..096023ef --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteinterval_linkedlist.go @@ -0,0 +1,217 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package utils + +// Linked list implementation from the Go standard library. + +// ByteIntervalElement is an element of a linked list. +type ByteIntervalElement struct { + // Next and previous pointers in the doubly-linked list of elements. + // To simplify the implementation, internally a list l is implemented + // as a ring, such that &l.root is both the next element of the last + // list element (l.Back()) and the previous element of the first list + // element (l.Front()). + next, prev *ByteIntervalElement + + // The list to which this element belongs. + list *ByteIntervalList + + // The value stored with this element. + Value ByteInterval +} + +// Next returns the next list element or nil. +func (e *ByteIntervalElement) Next() *ByteIntervalElement { + if p := e.next; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// Prev returns the previous list element or nil. +func (e *ByteIntervalElement) Prev() *ByteIntervalElement { + if p := e.prev; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// ByteIntervalList is a linked list of ByteIntervals. +type ByteIntervalList struct { + root ByteIntervalElement // sentinel list element, only &root, root.prev, and root.next are used + len int // current list length excluding (this) sentinel element +} + +// Init initializes or clears list l. +func (l *ByteIntervalList) Init() *ByteIntervalList { + l.root.next = &l.root + l.root.prev = &l.root + l.len = 0 + return l +} + +// NewByteIntervalList returns an initialized list. +func NewByteIntervalList() *ByteIntervalList { return new(ByteIntervalList).Init() } + +// Len returns the number of elements of list l. +// The complexity is O(1). +func (l *ByteIntervalList) Len() int { return l.len } + +// Front returns the first element of list l or nil if the list is empty. +func (l *ByteIntervalList) Front() *ByteIntervalElement { + if l.len == 0 { + return nil + } + return l.root.next +} + +// Back returns the last element of list l or nil if the list is empty. +func (l *ByteIntervalList) Back() *ByteIntervalElement { + if l.len == 0 { + return nil + } + return l.root.prev +} + +// lazyInit lazily initializes a zero List value. +func (l *ByteIntervalList) lazyInit() { + if l.root.next == nil { + l.Init() + } +} + +// insert inserts e after at, increments l.len, and returns e. +func (l *ByteIntervalList) insert(e, at *ByteIntervalElement) *ByteIntervalElement { + n := at.next + at.next = e + e.prev = at + e.next = n + n.prev = e + e.list = l + l.len++ + return e +} + +// insertValue is a convenience wrapper for insert(&Element{Value: v}, at). +func (l *ByteIntervalList) insertValue(v ByteInterval, at *ByteIntervalElement) *ByteIntervalElement { + return l.insert(&ByteIntervalElement{Value: v}, at) +} + +// remove removes e from its list, decrements l.len, and returns e. +func (l *ByteIntervalList) remove(e *ByteIntervalElement) *ByteIntervalElement { + e.prev.next = e.next + e.next.prev = e.prev + e.next = nil // avoid memory leaks + e.prev = nil // avoid memory leaks + e.list = nil + l.len-- + return e +} + +// Remove removes e from l if e is an element of list l. +// It returns the element value e.Value. +// The element must not be nil. +func (l *ByteIntervalList) Remove(e *ByteIntervalElement) ByteInterval { + if e.list == l { + // if e.list == l, l must have been initialized when e was inserted + // in l or l == nil (e is a zero Element) and l.remove will crash + l.remove(e) + } + return e.Value +} + +// PushFront inserts a new element e with value v at the front of list l and returns e. +func (l *ByteIntervalList) PushFront(v ByteInterval) *ByteIntervalElement { + l.lazyInit() + return l.insertValue(v, &l.root) +} + +// PushBack inserts a new element e with value v at the back of list l and returns e. +func (l *ByteIntervalList) PushBack(v ByteInterval) *ByteIntervalElement { + l.lazyInit() + return l.insertValue(v, l.root.prev) +} + +// InsertBefore inserts a new element e with value v immediately before mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *ByteIntervalList) InsertBefore(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(v, mark.prev) +} + +// InsertAfter inserts a new element e with value v immediately after mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *ByteIntervalList) InsertAfter(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(v, mark) +} + +// MoveToFront moves element e to the front of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *ByteIntervalList) MoveToFront(e *ByteIntervalElement) { + if e.list != l || l.root.next == e { + return + } + // see comment in List.Remove about initialization of l + l.insert(l.remove(e), &l.root) +} + +// MoveToBack moves element e to the back of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *ByteIntervalList) MoveToBack(e *ByteIntervalElement) { + if e.list != l || l.root.prev == e { + return + } + // see comment in List.Remove about initialization of l + l.insert(l.remove(e), l.root.prev) +} + +// MoveBefore moves element e to its new position before mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *ByteIntervalList) MoveBefore(e, mark *ByteIntervalElement) { + if e.list != l || e == mark || mark.list != l { + return + } + l.insert(l.remove(e), mark.prev) +} + +// MoveAfter moves element e to its new position after mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *ByteIntervalList) MoveAfter(e, mark *ByteIntervalElement) { + if e.list != l || e == mark || mark.list != l { + return + } + l.insert(l.remove(e), mark) +} + +// PushBackList inserts a copy of an other list at the back of list l. +// The lists l and other may be the same. They must not be nil. +func (l *ByteIntervalList) PushBackList(other *ByteIntervalList) { + l.lazyInit() + for i, e := other.Len(), other.Front(); i > 0; i, e = i-1, e.Next() { + l.insertValue(e.Value, l.root.prev) + } +} + +// PushFrontList inserts a copy of an other list at the front of list l. +// The lists l and other may be the same. They must not be nil. +func (l *ByteIntervalList) PushFrontList(other *ByteIntervalList) { + l.lazyInit() + for i, e := other.Len(), other.Back(); i > 0; i, e = i-1, e.Prev() { + l.insertValue(e.Value, &l.root) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder.go new file mode 100644 index 00000000..6b92cfa2 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder.go @@ -0,0 +1,17 @@ +package utils + +import ( + "bytes" + "io" +) + +// A ByteOrder specifies how to convert byte sequences into 16-, 32-, or 64-bit unsigned integers. +type ByteOrder interface { + ReadUintN(b io.ByteReader, length uint8) (uint64, error) + ReadUint32(io.ByteReader) (uint32, error) + ReadUint16(io.ByteReader) (uint16, error) + + WriteUintN(b *bytes.Buffer, length uint8, value uint64) + WriteUint32(*bytes.Buffer, uint32) + WriteUint16(*bytes.Buffer, uint16) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder_big_endian.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder_big_endian.go new file mode 100644 index 00000000..eede9cd7 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/byteorder_big_endian.go @@ -0,0 +1,74 @@ +package utils + +import ( + "bytes" + "io" +) + +// BigEndian is the big-endian implementation of ByteOrder. +var BigEndian ByteOrder = bigEndian{} + +type bigEndian struct{} + +var _ ByteOrder = &bigEndian{} + +// ReadUintN reads N bytes +func (bigEndian) ReadUintN(b io.ByteReader, length uint8) (uint64, error) { + var res uint64 + for i := uint8(0); i < length; i++ { + bt, err := b.ReadByte() + if err != nil { + return 0, err + } + res ^= uint64(bt) << ((length - 1 - i) * 8) + } + return res, nil +} + +// ReadUint32 reads a uint32 +func (bigEndian) ReadUint32(b io.ByteReader) (uint32, error) { + var b1, b2, b3, b4 uint8 + var err error + if b4, err = b.ReadByte(); err != nil { + return 0, err + } + if b3, err = b.ReadByte(); err != nil { + return 0, err + } + if b2, err = b.ReadByte(); err != nil { + return 0, err + } + if b1, err = b.ReadByte(); err != nil { + return 0, err + } + return uint32(b1) + uint32(b2)<<8 + uint32(b3)<<16 + uint32(b4)<<24, nil +} + +// ReadUint16 reads a uint16 +func (bigEndian) ReadUint16(b io.ByteReader) (uint16, error) { + var b1, b2 uint8 + var err error + if b2, err = b.ReadByte(); err != nil { + return 0, err + } + if b1, err = b.ReadByte(); err != nil { + return 0, err + } + return uint16(b1) + uint16(b2)<<8, nil +} + +func (bigEndian) WriteUintN(b *bytes.Buffer, length uint8, i uint64) { + for j := length; j > 0; j-- { + b.WriteByte(uint8(i >> (8 * (j - 1)))) + } +} + +// WriteUint32 writes a uint32 +func (bigEndian) WriteUint32(b *bytes.Buffer, i uint32) { + b.Write([]byte{uint8(i >> 24), uint8(i >> 16), uint8(i >> 8), uint8(i)}) +} + +// WriteUint16 writes a uint16 +func (bigEndian) WriteUint16(b *bytes.Buffer, i uint16) { + b.Write([]byte{uint8(i >> 8), uint8(i)}) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/gen.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/gen.go new file mode 100644 index 00000000..bb839be6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/gen.go @@ -0,0 +1,4 @@ +package utils + +//go:generate genny -pkg utils -in linkedlist/linkedlist.go -out byteinterval_linkedlist.go gen Item=ByteInterval +//go:generate genny -pkg utils -in linkedlist/linkedlist.go -out packetinterval_linkedlist.go gen Item=PacketInterval diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/host.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/host.go new file mode 100644 index 00000000..a1d6453b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/host.go @@ -0,0 +1,27 @@ +package utils + +import ( + "net/url" + "strings" +) + +// HostnameFromAddr determines the hostname in an address string +func HostnameFromAddr(addr string) (string, error) { + p, err := url.Parse(addr) + if err != nil { + return "", err + } + h := p.Host + + // copied from https://golang.org/src/net/http/transport.go + if hasPort(h) { + h = h[:strings.LastIndex(h, ":")] + } + + return h, nil +} + +// copied from https://golang.org/src/net/http/http.go +func hasPort(s string) bool { + return strings.LastIndex(s, ":") > strings.LastIndex(s, "]") +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/log.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/log.go new file mode 100644 index 00000000..e27f01b4 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/log.go @@ -0,0 +1,131 @@ +package utils + +import ( + "fmt" + "log" + "os" + "strings" + "time" +) + +// LogLevel of quic-go +type LogLevel uint8 + +const ( + // LogLevelNothing disables + LogLevelNothing LogLevel = iota + // LogLevelError enables err logs + LogLevelError + // LogLevelInfo enables info logs (e.g. packets) + LogLevelInfo + // LogLevelDebug enables debug logs (e.g. packet contents) + LogLevelDebug +) + +const logEnv = "QUIC_GO_LOG_LEVEL" + +// A Logger logs. +type Logger interface { + SetLogLevel(LogLevel) + SetLogTimeFormat(format string) + WithPrefix(prefix string) Logger + Debug() bool + + Errorf(format string, args ...interface{}) + Infof(format string, args ...interface{}) + Debugf(format string, args ...interface{}) +} + +// DefaultLogger is used by quic-go for logging. +var DefaultLogger Logger + +type defaultLogger struct { + prefix string + + logLevel LogLevel + timeFormat string +} + +var _ Logger = &defaultLogger{} + +// SetLogLevel sets the log level +func (l *defaultLogger) SetLogLevel(level LogLevel) { + l.logLevel = level +} + +// SetLogTimeFormat sets the format of the timestamp +// an empty string disables the logging of timestamps +func (l *defaultLogger) SetLogTimeFormat(format string) { + log.SetFlags(0) // disable timestamp logging done by the log package + l.timeFormat = format +} + +// Debugf logs something +func (l *defaultLogger) Debugf(format string, args ...interface{}) { + if l.logLevel == LogLevelDebug { + l.logMessage(format, args...) + } +} + +// Infof logs something +func (l *defaultLogger) Infof(format string, args ...interface{}) { + if l.logLevel >= LogLevelInfo { + l.logMessage(format, args...) + } +} + +// Errorf logs something +func (l *defaultLogger) Errorf(format string, args ...interface{}) { + if l.logLevel >= LogLevelError { + l.logMessage(format, args...) + } +} + +func (l *defaultLogger) logMessage(format string, args ...interface{}) { + var pre string + + if len(l.timeFormat) > 0 { + pre = time.Now().Format(l.timeFormat) + " " + } + if len(l.prefix) > 0 { + pre += l.prefix + " " + } + log.Printf(pre+format, args...) +} + +func (l *defaultLogger) WithPrefix(prefix string) Logger { + if len(l.prefix) > 0 { + prefix = l.prefix + " " + prefix + } + return &defaultLogger{ + logLevel: l.logLevel, + timeFormat: l.timeFormat, + prefix: prefix, + } +} + +// Debug returns true if the log level is LogLevelDebug +func (l *defaultLogger) Debug() bool { + return l.logLevel == LogLevelDebug +} + +func init() { + DefaultLogger = &defaultLogger{} + DefaultLogger.SetLogLevel(readLoggingEnv()) +} + +func readLoggingEnv() LogLevel { + switch strings.ToLower(os.Getenv(logEnv)) { + case "": + return LogLevelNothing + case "debug": + return LogLevelDebug + case "info": + return LogLevelInfo + case "error": + return LogLevelError + default: + fmt.Fprintln(os.Stderr, "invalid quic-go log level, see https://github.com/lucas-clemente/quic-go/wiki/Logging") + return LogLevelNothing + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/minmax.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/minmax.go new file mode 100644 index 00000000..84cbec7b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/minmax.go @@ -0,0 +1,159 @@ +package utils + +import ( + "math" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// InfDuration is a duration of infinite length +const InfDuration = time.Duration(math.MaxInt64) + +// Max returns the maximum of two Ints +func Max(a, b int) int { + if a < b { + return b + } + return a +} + +// MaxUint32 returns the maximum of two uint32 +func MaxUint32(a, b uint32) uint32 { + if a < b { + return b + } + return a +} + +// MaxUint64 returns the maximum of two uint64 +func MaxUint64(a, b uint64) uint64 { + if a < b { + return b + } + return a +} + +// MinUint64 returns the maximum of two uint64 +func MinUint64(a, b uint64) uint64 { + if a < b { + return a + } + return b +} + +// Min returns the minimum of two Ints +func Min(a, b int) int { + if a < b { + return a + } + return b +} + +// MinUint32 returns the maximum of two uint32 +func MinUint32(a, b uint32) uint32 { + if a < b { + return a + } + return b +} + +// MinInt64 returns the minimum of two int64 +func MinInt64(a, b int64) int64 { + if a < b { + return a + } + return b +} + +// MaxInt64 returns the minimum of two int64 +func MaxInt64(a, b int64) int64 { + if a > b { + return a + } + return b +} + +// MinByteCount returns the minimum of two ByteCounts +func MinByteCount(a, b protocol.ByteCount) protocol.ByteCount { + if a < b { + return a + } + return b +} + +// MaxByteCount returns the maximum of two ByteCounts +func MaxByteCount(a, b protocol.ByteCount) protocol.ByteCount { + if a < b { + return b + } + return a +} + +// MaxDuration returns the max duration +func MaxDuration(a, b time.Duration) time.Duration { + if a > b { + return a + } + return b +} + +// MinDuration returns the minimum duration +func MinDuration(a, b time.Duration) time.Duration { + if a > b { + return b + } + return a +} + +// AbsDuration returns the absolute value of a time duration +func AbsDuration(d time.Duration) time.Duration { + if d >= 0 { + return d + } + return -d +} + +// MinTime returns the earlier time +func MinTime(a, b time.Time) time.Time { + if a.After(b) { + return b + } + return a +} + +// MinNonZeroTime returns the earlist time that is not time.Time{} +// If both a and b are time.Time{}, it returns time.Time{} +func MinNonZeroTime(a, b time.Time) time.Time { + if a.IsZero() { + return b + } + if b.IsZero() { + return a + } + return MinTime(a, b) +} + +// MaxTime returns the later time +func MaxTime(a, b time.Time) time.Time { + if a.After(b) { + return a + } + return b +} + +// MaxPacketNumber returns the max packet number +func MaxPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber { + if a > b { + return a + } + return b +} + +// MinPacketNumber returns the min packet number +func MinPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber { + if a < b { + return a + } + return b +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/packet_interval.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/packet_interval.go new file mode 100644 index 00000000..62cc8b9c --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/packet_interval.go @@ -0,0 +1,9 @@ +package utils + +import "github.com/lucas-clemente/quic-go/internal/protocol" + +// PacketInterval is an interval from one PacketNumber to the other +type PacketInterval struct { + Start protocol.PacketNumber + End protocol.PacketNumber +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/packetinterval_linkedlist.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/packetinterval_linkedlist.go new file mode 100644 index 00000000..b461e85a --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/packetinterval_linkedlist.go @@ -0,0 +1,217 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package utils + +// Linked list implementation from the Go standard library. + +// PacketIntervalElement is an element of a linked list. +type PacketIntervalElement struct { + // Next and previous pointers in the doubly-linked list of elements. + // To simplify the implementation, internally a list l is implemented + // as a ring, such that &l.root is both the next element of the last + // list element (l.Back()) and the previous element of the first list + // element (l.Front()). + next, prev *PacketIntervalElement + + // The list to which this element belongs. + list *PacketIntervalList + + // The value stored with this element. + Value PacketInterval +} + +// Next returns the next list element or nil. +func (e *PacketIntervalElement) Next() *PacketIntervalElement { + if p := e.next; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// Prev returns the previous list element or nil. +func (e *PacketIntervalElement) Prev() *PacketIntervalElement { + if p := e.prev; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// PacketIntervalList is a linked list of PacketIntervals. +type PacketIntervalList struct { + root PacketIntervalElement // sentinel list element, only &root, root.prev, and root.next are used + len int // current list length excluding (this) sentinel element +} + +// Init initializes or clears list l. +func (l *PacketIntervalList) Init() *PacketIntervalList { + l.root.next = &l.root + l.root.prev = &l.root + l.len = 0 + return l +} + +// NewPacketIntervalList returns an initialized list. +func NewPacketIntervalList() *PacketIntervalList { return new(PacketIntervalList).Init() } + +// Len returns the number of elements of list l. +// The complexity is O(1). +func (l *PacketIntervalList) Len() int { return l.len } + +// Front returns the first element of list l or nil if the list is empty. +func (l *PacketIntervalList) Front() *PacketIntervalElement { + if l.len == 0 { + return nil + } + return l.root.next +} + +// Back returns the last element of list l or nil if the list is empty. +func (l *PacketIntervalList) Back() *PacketIntervalElement { + if l.len == 0 { + return nil + } + return l.root.prev +} + +// lazyInit lazily initializes a zero List value. +func (l *PacketIntervalList) lazyInit() { + if l.root.next == nil { + l.Init() + } +} + +// insert inserts e after at, increments l.len, and returns e. +func (l *PacketIntervalList) insert(e, at *PacketIntervalElement) *PacketIntervalElement { + n := at.next + at.next = e + e.prev = at + e.next = n + n.prev = e + e.list = l + l.len++ + return e +} + +// insertValue is a convenience wrapper for insert(&Element{Value: v}, at). +func (l *PacketIntervalList) insertValue(v PacketInterval, at *PacketIntervalElement) *PacketIntervalElement { + return l.insert(&PacketIntervalElement{Value: v}, at) +} + +// remove removes e from its list, decrements l.len, and returns e. +func (l *PacketIntervalList) remove(e *PacketIntervalElement) *PacketIntervalElement { + e.prev.next = e.next + e.next.prev = e.prev + e.next = nil // avoid memory leaks + e.prev = nil // avoid memory leaks + e.list = nil + l.len-- + return e +} + +// Remove removes e from l if e is an element of list l. +// It returns the element value e.Value. +// The element must not be nil. +func (l *PacketIntervalList) Remove(e *PacketIntervalElement) PacketInterval { + if e.list == l { + // if e.list == l, l must have been initialized when e was inserted + // in l or l == nil (e is a zero Element) and l.remove will crash + l.remove(e) + } + return e.Value +} + +// PushFront inserts a new element e with value v at the front of list l and returns e. +func (l *PacketIntervalList) PushFront(v PacketInterval) *PacketIntervalElement { + l.lazyInit() + return l.insertValue(v, &l.root) +} + +// PushBack inserts a new element e with value v at the back of list l and returns e. +func (l *PacketIntervalList) PushBack(v PacketInterval) *PacketIntervalElement { + l.lazyInit() + return l.insertValue(v, l.root.prev) +} + +// InsertBefore inserts a new element e with value v immediately before mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *PacketIntervalList) InsertBefore(v PacketInterval, mark *PacketIntervalElement) *PacketIntervalElement { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(v, mark.prev) +} + +// InsertAfter inserts a new element e with value v immediately after mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *PacketIntervalList) InsertAfter(v PacketInterval, mark *PacketIntervalElement) *PacketIntervalElement { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(v, mark) +} + +// MoveToFront moves element e to the front of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *PacketIntervalList) MoveToFront(e *PacketIntervalElement) { + if e.list != l || l.root.next == e { + return + } + // see comment in List.Remove about initialization of l + l.insert(l.remove(e), &l.root) +} + +// MoveToBack moves element e to the back of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *PacketIntervalList) MoveToBack(e *PacketIntervalElement) { + if e.list != l || l.root.prev == e { + return + } + // see comment in List.Remove about initialization of l + l.insert(l.remove(e), l.root.prev) +} + +// MoveBefore moves element e to its new position before mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *PacketIntervalList) MoveBefore(e, mark *PacketIntervalElement) { + if e.list != l || e == mark || mark.list != l { + return + } + l.insert(l.remove(e), mark.prev) +} + +// MoveAfter moves element e to its new position after mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *PacketIntervalList) MoveAfter(e, mark *PacketIntervalElement) { + if e.list != l || e == mark || mark.list != l { + return + } + l.insert(l.remove(e), mark) +} + +// PushBackList inserts a copy of an other list at the back of list l. +// The lists l and other may be the same. They must not be nil. +func (l *PacketIntervalList) PushBackList(other *PacketIntervalList) { + l.lazyInit() + for i, e := other.Len(), other.Front(); i > 0; i, e = i-1, e.Next() { + l.insertValue(e.Value, l.root.prev) + } +} + +// PushFrontList inserts a copy of an other list at the front of list l. +// The lists l and other may be the same. They must not be nil. +func (l *PacketIntervalList) PushFrontList(other *PacketIntervalList) { + l.lazyInit() + for i, e := other.Len(), other.Back(); i > 0; i, e = i-1, e.Prev() { + l.insertValue(e.Value, &l.root) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/streamframe_interval.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/streamframe_interval.go new file mode 100644 index 00000000..ec16d251 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/streamframe_interval.go @@ -0,0 +1,9 @@ +package utils + +import "github.com/lucas-clemente/quic-go/internal/protocol" + +// ByteInterval is an interval from one ByteCount to the other +type ByteInterval struct { + Start protocol.ByteCount + End protocol.ByteCount +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/timer.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/timer.go new file mode 100644 index 00000000..1fefc6ec --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/timer.go @@ -0,0 +1,48 @@ +package utils + +import ( + "math" + "time" +) + +// A Timer wrapper that behaves correctly when resetting +type Timer struct { + t *time.Timer + read bool + deadline time.Time +} + +// NewTimer creates a new timer that is not set +func NewTimer() *Timer { + return &Timer{t: time.NewTimer(time.Duration(math.MaxInt64))} +} + +// Chan returns the channel of the wrapped timer +func (t *Timer) Chan() <-chan time.Time { + return t.t.C +} + +// Reset the timer, no matter whether the value was read or not +func (t *Timer) Reset(deadline time.Time) { + if deadline.Equal(t.deadline) && !t.read { + // No need to reset the timer + return + } + + // We need to drain the timer if the value from its channel was not read yet. + // See https://groups.google.com/forum/#!topic/golang-dev/c9UUfASVPoU + if !t.t.Stop() && !t.read { + <-t.t.C + } + if !deadline.IsZero() { + t.t.Reset(time.Until(deadline)) + } + + t.read = false + t.deadline = deadline +} + +// SetRead should be called after the value from the chan was read +func (t *Timer) SetRead() { + t.read = true +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/utils/varint.go b/vendor/github.com/lucas-clemente/quic-go/internal/utils/varint.go new file mode 100644 index 00000000..35e8674e --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/utils/varint.go @@ -0,0 +1,101 @@ +package utils + +import ( + "bytes" + "fmt" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// taken from the QUIC draft +const ( + maxVarInt1 = 63 + maxVarInt2 = 16383 + maxVarInt4 = 1073741823 + maxVarInt8 = 4611686018427387903 +) + +// ReadVarInt reads a number in the QUIC varint format +func ReadVarInt(b io.ByteReader) (uint64, error) { + firstByte, err := b.ReadByte() + if err != nil { + return 0, err + } + // the first two bits of the first byte encode the length + len := 1 << ((firstByte & 0xc0) >> 6) + b1 := firstByte & (0xff - 0xc0) + if len == 1 { + return uint64(b1), nil + } + b2, err := b.ReadByte() + if err != nil { + return 0, err + } + if len == 2 { + return uint64(b2) + uint64(b1)<<8, nil + } + b3, err := b.ReadByte() + if err != nil { + return 0, err + } + b4, err := b.ReadByte() + if err != nil { + return 0, err + } + if len == 4 { + return uint64(b4) + uint64(b3)<<8 + uint64(b2)<<16 + uint64(b1)<<24, nil + } + b5, err := b.ReadByte() + if err != nil { + return 0, err + } + b6, err := b.ReadByte() + if err != nil { + return 0, err + } + b7, err := b.ReadByte() + if err != nil { + return 0, err + } + b8, err := b.ReadByte() + if err != nil { + return 0, err + } + return uint64(b8) + uint64(b7)<<8 + uint64(b6)<<16 + uint64(b5)<<24 + uint64(b4)<<32 + uint64(b3)<<40 + uint64(b2)<<48 + uint64(b1)<<56, nil +} + +// WriteVarInt writes a number in the QUIC varint format +func WriteVarInt(b *bytes.Buffer, i uint64) { + if i <= maxVarInt1 { + b.WriteByte(uint8(i)) + } else if i <= maxVarInt2 { + b.Write([]byte{uint8(i>>8) | 0x40, uint8(i)}) + } else if i <= maxVarInt4 { + b.Write([]byte{uint8(i>>24) | 0x80, uint8(i >> 16), uint8(i >> 8), uint8(i)}) + } else if i <= maxVarInt8 { + b.Write([]byte{ + uint8(i>>56) | 0xc0, uint8(i >> 48), uint8(i >> 40), uint8(i >> 32), + uint8(i >> 24), uint8(i >> 16), uint8(i >> 8), uint8(i), + }) + } else { + panic(fmt.Sprintf("%#x doesn't fit into 62 bits", i)) + } +} + +// VarIntLen determines the number of bytes that will be needed to write a number +func VarIntLen(i uint64) protocol.ByteCount { + if i <= maxVarInt1 { + return 1 + } + if i <= maxVarInt2 { + return 2 + } + if i <= maxVarInt4 { + return 4 + } + if i <= maxVarInt8 { + return 8 + } + panic(fmt.Sprintf("%#x doesn't fit into 62 bits", i)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_frame.go new file mode 100644 index 00000000..7909bffa --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_frame.go @@ -0,0 +1,226 @@ +package wire + +import ( + "bytes" + "errors" + "sort" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +var errInvalidAckRanges = errors.New("AckFrame: ACK frame contains invalid ACK ranges") + +// An AckFrame is an ACK frame +type AckFrame struct { + AckRanges []AckRange // has to be ordered. The highest ACK range goes first, the lowest ACK range goes last + DelayTime time.Duration +} + +// parseAckFrame reads an ACK frame +func parseAckFrame(r *bytes.Reader, ackDelayExponent uint8, version protocol.VersionNumber) (*AckFrame, error) { + typeByte, err := r.ReadByte() + if err != nil { + return nil, err + } + ecn := typeByte&0x1 > 0 + + frame := &AckFrame{} + + la, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + largestAcked := protocol.PacketNumber(la) + delay, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + frame.DelayTime = time.Duration(delay*1< largestAcked { + return nil, errors.New("invalid first ACK range") + } + smallest := largestAcked - ackBlock + + // read all the other ACK ranges + frame.AckRanges = append(frame.AckRanges, AckRange{Smallest: smallest, Largest: largestAcked}) + for i := uint64(0); i < numBlocks; i++ { + g, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + gap := protocol.PacketNumber(g) + if smallest < gap+2 { + return nil, errInvalidAckRanges + } + largest := smallest - gap - 2 + + ab, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + ackBlock := protocol.PacketNumber(ab) + + if ackBlock > largest { + return nil, errInvalidAckRanges + } + smallest = largest - ackBlock + frame.AckRanges = append(frame.AckRanges, AckRange{Smallest: smallest, Largest: largest}) + } + + if !frame.validateAckRanges() { + return nil, errInvalidAckRanges + } + + // parse (and skip) the ECN section + if ecn { + for i := 0; i < 3; i++ { + if _, err := utils.ReadVarInt(r); err != nil { + return nil, err + } + } + } + + return frame, nil +} + +// Write writes an ACK frame. +func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + b.WriteByte(0x2) + utils.WriteVarInt(b, uint64(f.LargestAcked())) + utils.WriteVarInt(b, encodeAckDelay(f.DelayTime)) + + numRanges := f.numEncodableAckRanges() + utils.WriteVarInt(b, uint64(numRanges-1)) + + // write the first range + _, firstRange := f.encodeAckRange(0) + utils.WriteVarInt(b, firstRange) + + // write all the other range + for i := 1; i < numRanges; i++ { + gap, len := f.encodeAckRange(i) + utils.WriteVarInt(b, gap) + utils.WriteVarInt(b, len) + } + return nil +} + +// Length of a written frame +func (f *AckFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + largestAcked := f.AckRanges[0].Largest + numRanges := f.numEncodableAckRanges() + + length := 1 + utils.VarIntLen(uint64(largestAcked)) + utils.VarIntLen(encodeAckDelay(f.DelayTime)) + + length += utils.VarIntLen(uint64(numRanges - 1)) + lowestInFirstRange := f.AckRanges[0].Smallest + length += utils.VarIntLen(uint64(largestAcked - lowestInFirstRange)) + + for i := 1; i < numRanges; i++ { + gap, len := f.encodeAckRange(i) + length += utils.VarIntLen(gap) + length += utils.VarIntLen(len) + } + return length +} + +// gets the number of ACK ranges that can be encoded +// such that the resulting frame is smaller than the maximum ACK frame size +func (f *AckFrame) numEncodableAckRanges() int { + length := 1 + utils.VarIntLen(uint64(f.LargestAcked())) + utils.VarIntLen(encodeAckDelay(f.DelayTime)) + length += 2 // assume that the number of ranges will consume 2 bytes + for i := 1; i < len(f.AckRanges); i++ { + gap, len := f.encodeAckRange(i) + rangeLen := utils.VarIntLen(gap) + utils.VarIntLen(len) + if length+rangeLen > protocol.MaxAckFrameSize { + // Writing range i would exceed the MaxAckFrameSize. + // So encode one range less than that. + return i - 1 + } + length += rangeLen + } + return len(f.AckRanges) +} + +func (f *AckFrame) encodeAckRange(i int) (uint64 /* gap */, uint64 /* length */) { + if i == 0 { + return 0, uint64(f.AckRanges[0].Largest - f.AckRanges[0].Smallest) + } + return uint64(f.AckRanges[i-1].Smallest - f.AckRanges[i].Largest - 2), + uint64(f.AckRanges[i].Largest - f.AckRanges[i].Smallest) +} + +// HasMissingRanges returns if this frame reports any missing packets +func (f *AckFrame) HasMissingRanges() bool { + return len(f.AckRanges) > 1 +} + +func (f *AckFrame) validateAckRanges() bool { + if len(f.AckRanges) == 0 { + return false + } + + // check the validity of every single ACK range + for _, ackRange := range f.AckRanges { + if ackRange.Smallest > ackRange.Largest { + return false + } + } + + // check the consistency for ACK with multiple NACK ranges + for i, ackRange := range f.AckRanges { + if i == 0 { + continue + } + lastAckRange := f.AckRanges[i-1] + if lastAckRange.Smallest <= ackRange.Smallest { + return false + } + if lastAckRange.Smallest <= ackRange.Largest+1 { + return false + } + } + + return true +} + +// LargestAcked is the largest acked packet number +func (f *AckFrame) LargestAcked() protocol.PacketNumber { + return f.AckRanges[0].Largest +} + +// LowestAcked is the lowest acked packet number +func (f *AckFrame) LowestAcked() protocol.PacketNumber { + return f.AckRanges[len(f.AckRanges)-1].Smallest +} + +// AcksPacket determines if this ACK frame acks a certain packet number +func (f *AckFrame) AcksPacket(p protocol.PacketNumber) bool { + if p < f.LowestAcked() || p > f.LargestAcked() { + return false + } + + i := sort.Search(len(f.AckRanges), func(i int) bool { + return p >= f.AckRanges[i].Smallest + }) + // i will always be < len(f.AckRanges), since we checked above that p is not bigger than the largest acked + return p <= f.AckRanges[i].Largest +} + +func encodeAckDelay(delay time.Duration) uint64 { + return uint64(delay.Nanoseconds() / (1000 * (1 << protocol.AckDelayExponent))) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_range.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_range.go new file mode 100644 index 00000000..0f418580 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/ack_range.go @@ -0,0 +1,14 @@ +package wire + +import "github.com/lucas-clemente/quic-go/internal/protocol" + +// AckRange is an ACK range +type AckRange struct { + Smallest protocol.PacketNumber + Largest protocol.PacketNumber +} + +// Len returns the number of packets contained in this ACK range +func (r AckRange) Len() protocol.PacketNumber { + return r.Largest - r.Smallest + 1 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/connection_close_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/connection_close_frame.go new file mode 100644 index 00000000..60378a5d --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/connection_close_frame.go @@ -0,0 +1,81 @@ +package wire + +import ( + "bytes" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A ConnectionCloseFrame is a CONNECTION_CLOSE frame +type ConnectionCloseFrame struct { + IsApplicationError bool + ErrorCode qerr.ErrorCode + ReasonPhrase string +} + +func parseConnectionCloseFrame(r *bytes.Reader, version protocol.VersionNumber) (*ConnectionCloseFrame, error) { + typeByte, err := r.ReadByte() + if err != nil { + return nil, err + } + + f := &ConnectionCloseFrame{IsApplicationError: typeByte == 0x1d} + ec, err := utils.BigEndian.ReadUint16(r) + if err != nil { + return nil, err + } + f.ErrorCode = qerr.ErrorCode(ec) + // read the Frame Type, if this is not an application error + if !f.IsApplicationError { + if _, err := utils.ReadVarInt(r); err != nil { + return nil, err + } + } + var reasonPhraseLen uint64 + reasonPhraseLen, err = utils.ReadVarInt(r) + if err != nil { + return nil, err + } + // shortcut to prevent the unnecessary allocation of dataLen bytes + // if the dataLen is larger than the remaining length of the packet + // reading the whole reason phrase would result in EOF when attempting to READ + if int(reasonPhraseLen) > r.Len() { + return nil, io.EOF + } + + reasonPhrase := make([]byte, reasonPhraseLen) + if _, err := io.ReadFull(r, reasonPhrase); err != nil { + // this should never happen, since we already checked the reasonPhraseLen earlier + return nil, err + } + f.ReasonPhrase = string(reasonPhrase) + return f, nil +} + +// Length of a written frame +func (f *ConnectionCloseFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + length := 1 + 2 + utils.VarIntLen(uint64(len(f.ReasonPhrase))) + protocol.ByteCount(len(f.ReasonPhrase)) + if !f.IsApplicationError { + length++ // for the frame type + } + return length +} + +func (f *ConnectionCloseFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + if f.IsApplicationError { + b.WriteByte(0x1d) + } else { + b.WriteByte(0x1c) + } + + utils.BigEndian.WriteUint16(b, uint16(f.ErrorCode)) + if !f.IsApplicationError { + utils.WriteVarInt(b, 0) + } + utils.WriteVarInt(b, uint64(len(f.ReasonPhrase))) + b.WriteString(f.ReasonPhrase) + return nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/crypto_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/crypto_frame.go new file mode 100644 index 00000000..eeafea97 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/crypto_frame.go @@ -0,0 +1,71 @@ +package wire + +import ( + "bytes" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A CryptoFrame is a CRYPTO frame +type CryptoFrame struct { + Offset protocol.ByteCount + Data []byte +} + +func parseCryptoFrame(r *bytes.Reader, _ protocol.VersionNumber) (*CryptoFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + frame := &CryptoFrame{} + offset, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + frame.Offset = protocol.ByteCount(offset) + dataLen, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + if dataLen > uint64(r.Len()) { + return nil, io.EOF + } + if dataLen != 0 { + frame.Data = make([]byte, dataLen) + if _, err := io.ReadFull(r, frame.Data); err != nil { + // this should never happen, since we already checked the dataLen earlier + return nil, err + } + } + return frame, nil +} + +func (f *CryptoFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x6) + utils.WriteVarInt(b, uint64(f.Offset)) + utils.WriteVarInt(b, uint64(len(f.Data))) + b.Write(f.Data) + return nil +} + +// Length of a written frame +func (f *CryptoFrame) Length(_ protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.Offset)) + utils.VarIntLen(uint64(len(f.Data))) + protocol.ByteCount(len(f.Data)) +} + +// MaxDataLen returns the maximum data length +func (f *CryptoFrame) MaxDataLen(maxSize protocol.ByteCount) protocol.ByteCount { + // pretend that the data size will be 1 bytes + // if it turns out that varint encoding the length will consume 2 bytes, we need to adjust the data length afterwards + headerLen := 1 + utils.VarIntLen(uint64(f.Offset)) + 1 + if headerLen > maxSize { + return 0 + } + maxDataLen := maxSize - headerLen + if utils.VarIntLen(uint64(maxDataLen)) != 1 { + maxDataLen-- + } + return maxDataLen +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/data_blocked_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/data_blocked_frame.go new file mode 100644 index 00000000..91c05ccf --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/data_blocked_frame.go @@ -0,0 +1,38 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A DataBlockedFrame is a DATA_BLOCKED frame +type DataBlockedFrame struct { + DataLimit protocol.ByteCount +} + +func parseDataBlockedFrame(r *bytes.Reader, _ protocol.VersionNumber) (*DataBlockedFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + offset, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + return &DataBlockedFrame{ + DataLimit: protocol.ByteCount(offset), + }, nil +} + +func (f *DataBlockedFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + typeByte := uint8(0x14) + b.WriteByte(typeByte) + utils.WriteVarInt(b, uint64(f.DataLimit)) + return nil +} + +// Length of a written frame +func (f *DataBlockedFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.DataLimit)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/extended_header.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/extended_header.go new file mode 100644 index 00000000..19a0b064 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/extended_header.go @@ -0,0 +1,204 @@ +package wire + +import ( + "bytes" + "errors" + "fmt" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// ExtendedHeader is the header of a QUIC packet. +type ExtendedHeader struct { + Header + + typeByte byte + + PacketNumberLen protocol.PacketNumberLen + PacketNumber protocol.PacketNumber + + KeyPhase int +} + +func (h *ExtendedHeader) parse(b *bytes.Reader, v protocol.VersionNumber) (*ExtendedHeader, error) { + // read the (now unencrypted) first byte + var err error + h.typeByte, err = b.ReadByte() + if err != nil { + return nil, err + } + if _, err := b.Seek(int64(h.ParsedLen())-1, io.SeekCurrent); err != nil { + return nil, err + } + if h.IsLongHeader { + return h.parseLongHeader(b, v) + } + return h.parseShortHeader(b, v) +} + +func (h *ExtendedHeader) parseLongHeader(b *bytes.Reader, v protocol.VersionNumber) (*ExtendedHeader, error) { + if h.typeByte&0xc != 0 { + return nil, errors.New("5th and 6th bit must be 0") + } + if err := h.readPacketNumber(b); err != nil { + return nil, err + } + return h, nil +} + +func (h *ExtendedHeader) parseShortHeader(b *bytes.Reader, v protocol.VersionNumber) (*ExtendedHeader, error) { + if h.typeByte&0x18 != 0 { + return nil, errors.New("4th and 5th bit must be 0") + } + + h.KeyPhase = int(h.typeByte&0x4) >> 2 + + if err := h.readPacketNumber(b); err != nil { + return nil, err + } + return h, nil +} + +func (h *ExtendedHeader) readPacketNumber(b *bytes.Reader) error { + h.PacketNumberLen = protocol.PacketNumberLen(h.typeByte&0x3) + 1 + pn, err := utils.BigEndian.ReadUintN(b, uint8(h.PacketNumberLen)) + if err != nil { + return err + } + h.PacketNumber = protocol.PacketNumber(pn) + return nil +} + +// Write writes the Header. +func (h *ExtendedHeader) Write(b *bytes.Buffer, ver protocol.VersionNumber) error { + if h.IsLongHeader { + return h.writeLongHeader(b, ver) + } + return h.writeShortHeader(b, ver) +} + +func (h *ExtendedHeader) writeLongHeader(b *bytes.Buffer, v protocol.VersionNumber) error { + var packetType uint8 + switch h.Type { + case protocol.PacketTypeInitial: + packetType = 0x0 + case protocol.PacketType0RTT: + packetType = 0x1 + case protocol.PacketTypeHandshake: + packetType = 0x2 + case protocol.PacketTypeRetry: + packetType = 0x3 + } + firstByte := 0xc0 | packetType<<4 + if h.Type == protocol.PacketTypeRetry { + odcil, err := encodeSingleConnIDLen(h.OrigDestConnectionID) + if err != nil { + return err + } + firstByte |= odcil + } else { // Retry packets don't have a packet number + firstByte |= uint8(h.PacketNumberLen - 1) + } + + b.WriteByte(firstByte) + utils.BigEndian.WriteUint32(b, uint32(h.Version)) + connIDLen, err := encodeConnIDLen(h.DestConnectionID, h.SrcConnectionID) + if err != nil { + return err + } + b.WriteByte(connIDLen) + b.Write(h.DestConnectionID.Bytes()) + b.Write(h.SrcConnectionID.Bytes()) + + switch h.Type { + case protocol.PacketTypeRetry: + b.Write(h.OrigDestConnectionID.Bytes()) + b.Write(h.Token) + return nil + case protocol.PacketTypeInitial: + utils.WriteVarInt(b, uint64(len(h.Token))) + b.Write(h.Token) + } + + utils.WriteVarInt(b, uint64(h.Length)) + return h.writePacketNumber(b) +} + +// TODO: add support for the key phase +func (h *ExtendedHeader) writeShortHeader(b *bytes.Buffer, v protocol.VersionNumber) error { + typeByte := 0x40 | uint8(h.PacketNumberLen-1) + typeByte |= byte(h.KeyPhase << 2) + + b.WriteByte(typeByte) + b.Write(h.DestConnectionID.Bytes()) + return h.writePacketNumber(b) +} + +func (h *ExtendedHeader) writePacketNumber(b *bytes.Buffer) error { + if h.PacketNumberLen == protocol.PacketNumberLenInvalid || h.PacketNumberLen > protocol.PacketNumberLen4 { + return fmt.Errorf("invalid packet number length: %d", h.PacketNumberLen) + } + utils.BigEndian.WriteUintN(b, uint8(h.PacketNumberLen), uint64(h.PacketNumber)) + return nil +} + +// GetLength determines the length of the Header. +func (h *ExtendedHeader) GetLength(v protocol.VersionNumber) protocol.ByteCount { + if h.IsLongHeader { + length := 1 /* type byte */ + 4 /* version */ + 1 /* conn id len byte */ + protocol.ByteCount(h.DestConnectionID.Len()+h.SrcConnectionID.Len()) + protocol.ByteCount(h.PacketNumberLen) + utils.VarIntLen(uint64(h.Length)) + if h.Type == protocol.PacketTypeInitial { + length += utils.VarIntLen(uint64(len(h.Token))) + protocol.ByteCount(len(h.Token)) + } + return length + } + + length := protocol.ByteCount(1 /* type byte */ + h.DestConnectionID.Len()) + length += protocol.ByteCount(h.PacketNumberLen) + return length +} + +// Log logs the Header +func (h *ExtendedHeader) Log(logger utils.Logger) { + if h.IsLongHeader { + var token string + if h.Type == protocol.PacketTypeInitial || h.Type == protocol.PacketTypeRetry { + if len(h.Token) == 0 { + token = "Token: (empty), " + } else { + token = fmt.Sprintf("Token: %#x, ", h.Token) + } + if h.Type == protocol.PacketTypeRetry { + logger.Debugf("\tLong Header{Type: %s, DestConnectionID: %s, SrcConnectionID: %s, %sOrigDestConnectionID: %s, Version: %s}", h.Type, h.DestConnectionID, h.SrcConnectionID, token, h.OrigDestConnectionID, h.Version) + return + } + } + logger.Debugf("\tLong Header{Type: %s, DestConnectionID: %s, SrcConnectionID: %s, %sPacketNumber: %#x, PacketNumberLen: %d, Length: %d, Version: %s}", h.Type, h.DestConnectionID, h.SrcConnectionID, token, h.PacketNumber, h.PacketNumberLen, h.Length, h.Version) + } else { + logger.Debugf("\tShort Header{DestConnectionID: %s, PacketNumber: %#x, PacketNumberLen: %d, KeyPhase: %d}", h.DestConnectionID, h.PacketNumber, h.PacketNumberLen, h.KeyPhase) + } +} + +func encodeConnIDLen(dest, src protocol.ConnectionID) (byte, error) { + dcil, err := encodeSingleConnIDLen(dest) + if err != nil { + return 0, err + } + scil, err := encodeSingleConnIDLen(src) + if err != nil { + return 0, err + } + return scil | dcil<<4, nil +} + +func encodeSingleConnIDLen(id protocol.ConnectionID) (byte, error) { + len := id.Len() + if len == 0 { + return 0, nil + } + if len < 4 || len > 18 { + return 0, fmt.Errorf("invalid connection ID length: %d bytes", len) + } + return byte(len - 3), nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/frame_parser.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/frame_parser.go new file mode 100644 index 00000000..e9d3d6a5 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/frame_parser.go @@ -0,0 +1,97 @@ +package wire + +import ( + "bytes" + "fmt" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" +) + +type frameParser struct { + ackDelayExponent uint8 + + version protocol.VersionNumber +} + +// NewFrameParser creates a new frame parser. +func NewFrameParser(v protocol.VersionNumber) FrameParser { + return &frameParser{version: v} +} + +// ParseNextFrame parses the next frame +// It skips PADDING frames. +func (p *frameParser) ParseNext(r *bytes.Reader, encLevel protocol.EncryptionLevel) (Frame, error) { + for r.Len() != 0 { + typeByte, _ := r.ReadByte() + if typeByte == 0x0 { // PADDING frame + continue + } + r.UnreadByte() + + return p.parseFrame(r, typeByte, encLevel) + } + return nil, nil +} + +func (p *frameParser) parseFrame(r *bytes.Reader, typeByte byte, encLevel protocol.EncryptionLevel) (Frame, error) { + var frame Frame + var err error + if typeByte&0xf8 == 0x8 { + frame, err = parseStreamFrame(r, p.version) + if err != nil { + return nil, qerr.Error(qerr.FrameEncodingError, err.Error()) + } + return frame, nil + } + switch typeByte { + case 0x1: + frame, err = parsePingFrame(r, p.version) + case 0x2, 0x3: + ackDelayExponent := p.ackDelayExponent + if encLevel != protocol.Encryption1RTT { + ackDelayExponent = protocol.DefaultAckDelayExponent + } + frame, err = parseAckFrame(r, ackDelayExponent, p.version) + case 0x4: + frame, err = parseResetStreamFrame(r, p.version) + case 0x5: + frame, err = parseStopSendingFrame(r, p.version) + case 0x6: + frame, err = parseCryptoFrame(r, p.version) + case 0x7: + frame, err = parseNewTokenFrame(r, p.version) + case 0x10: + frame, err = parseMaxDataFrame(r, p.version) + case 0x11: + frame, err = parseMaxStreamDataFrame(r, p.version) + case 0x12, 0x13: + frame, err = parseMaxStreamsFrame(r, p.version) + case 0x14: + frame, err = parseDataBlockedFrame(r, p.version) + case 0x15: + frame, err = parseStreamDataBlockedFrame(r, p.version) + case 0x16, 0x17: + frame, err = parseStreamsBlockedFrame(r, p.version) + case 0x18: + frame, err = parseNewConnectionIDFrame(r, p.version) + case 0x19: + frame, err = parseRetireConnectionIDFrame(r, p.version) + case 0x1a: + frame, err = parsePathChallengeFrame(r, p.version) + case 0x1b: + frame, err = parsePathResponseFrame(r, p.version) + case 0x1c, 0x1d: + frame, err = parseConnectionCloseFrame(r, p.version) + default: + err = fmt.Errorf("unknown type byte 0x%x", typeByte) + } + if err != nil { + return nil, qerr.Error(qerr.FrameEncodingError, err.Error()) + } + return frame, nil +} + +func (p *frameParser) SetAckDelayExponent(exp uint8) { + p.ackDelayExponent = exp +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/header.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/header.go new file mode 100644 index 00000000..21eb784c --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/header.go @@ -0,0 +1,251 @@ +package wire + +import ( + "bytes" + "errors" + "fmt" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// ParseConnectionID parses the destination connection ID of a packet. +// It uses the data slice for the connection ID. +// That means that the connection ID must not be used after the packet buffer is released. +func ParseConnectionID(data []byte, shortHeaderConnIDLen int) (protocol.ConnectionID, error) { + if len(data) == 0 { + return nil, io.EOF + } + isLongHeader := data[0]&0x80 > 0 + if !isLongHeader { + if len(data) < shortHeaderConnIDLen+1 { + return nil, io.EOF + } + return protocol.ConnectionID(data[1 : 1+shortHeaderConnIDLen]), nil + } + if len(data) < 6 { + return nil, io.EOF + } + destConnIDLen, _ := decodeConnIDLen(data[5]) + if len(data) < 6+destConnIDLen { + return nil, io.EOF + } + return protocol.ConnectionID(data[6 : 6+destConnIDLen]), nil +} + +// IsVersionNegotiationPacket says if this is a version negotiation packet +func IsVersionNegotiationPacket(b []byte) bool { + if len(b) < 5 { + return false + } + return b[0]&0x80 > 0 && b[1] == 0 && b[2] == 0 && b[3] == 0 && b[4] == 0 +} + +var errUnsupportedVersion = errors.New("unsupported version") + +// The Header is the version independent part of the header +type Header struct { + Version protocol.VersionNumber + SrcConnectionID protocol.ConnectionID + DestConnectionID protocol.ConnectionID + + IsLongHeader bool + Type protocol.PacketType + Length protocol.ByteCount + + Token []byte + SupportedVersions []protocol.VersionNumber // sent in a Version Negotiation Packet + OrigDestConnectionID protocol.ConnectionID // sent in the Retry packet + + typeByte byte + parsedLen protocol.ByteCount // how many bytes were read while parsing this header +} + +// ParsePacket parses a packet. +// If the packet has a long header, the packet is cut according to the length field. +// If we understand the version, the packet is header up unto the packet number. +// Otherwise, only the invariant part of the header is parsed. +func ParsePacket(data []byte, shortHeaderConnIDLen int) (*Header, []byte /* packet data */, []byte /* rest */, error) { + hdr, err := parseHeader(bytes.NewReader(data), shortHeaderConnIDLen) + if err != nil { + if err == errUnsupportedVersion { + return hdr, nil, nil, nil + } + return nil, nil, nil, err + } + var rest []byte + if hdr.IsLongHeader { + if protocol.ByteCount(len(data)) < hdr.ParsedLen()+hdr.Length { + return nil, nil, nil, fmt.Errorf("packet length (%d bytes) is smaller than the expected length (%d bytes)", len(data)-int(hdr.ParsedLen()), hdr.Length) + } + packetLen := int(hdr.ParsedLen() + hdr.Length) + rest = data[packetLen:] + data = data[:packetLen] + } + return hdr, data, rest, nil +} + +// ParseHeader parses the header. +// For short header packets: up to the packet number. +// For long header packets: +// * if we understand the version: up to the packet number +// * if not, only the invariant part of the header +func parseHeader(b *bytes.Reader, shortHeaderConnIDLen int) (*Header, error) { + startLen := b.Len() + h, err := parseHeaderImpl(b, shortHeaderConnIDLen) + if err != nil { + return h, err + } + h.parsedLen = protocol.ByteCount(startLen - b.Len()) + return h, err +} + +func parseHeaderImpl(b *bytes.Reader, shortHeaderConnIDLen int) (*Header, error) { + typeByte, err := b.ReadByte() + if err != nil { + return nil, err + } + + h := &Header{ + typeByte: typeByte, + IsLongHeader: typeByte&0x80 > 0, + } + + if !h.IsLongHeader { + if h.typeByte&0x40 == 0 { + return nil, errors.New("not a QUIC packet") + } + if err := h.parseShortHeader(b, shortHeaderConnIDLen); err != nil { + return nil, err + } + return h, nil + } + return h, h.parseLongHeader(b) +} + +func (h *Header) parseShortHeader(b *bytes.Reader, shortHeaderConnIDLen int) error { + var err error + h.DestConnectionID, err = protocol.ReadConnectionID(b, shortHeaderConnIDLen) + return err +} + +func (h *Header) parseLongHeader(b *bytes.Reader) error { + v, err := utils.BigEndian.ReadUint32(b) + if err != nil { + return err + } + h.Version = protocol.VersionNumber(v) + if h.Version != 0 && h.typeByte&0x40 == 0 { + return errors.New("not a QUIC packet") + } + connIDLenByte, err := b.ReadByte() + if err != nil { + return err + } + dcil, scil := decodeConnIDLen(connIDLenByte) + h.DestConnectionID, err = protocol.ReadConnectionID(b, dcil) + if err != nil { + return err + } + h.SrcConnectionID, err = protocol.ReadConnectionID(b, scil) + if err != nil { + return err + } + if h.Version == 0 { + return h.parseVersionNegotiationPacket(b) + } + // If we don't understand the version, we have no idea how to interpret the rest of the bytes + if !protocol.IsSupportedVersion(protocol.SupportedVersions, h.Version) { + return errUnsupportedVersion + } + + switch (h.typeByte & 0x30) >> 4 { + case 0x0: + h.Type = protocol.PacketTypeInitial + case 0x1: + h.Type = protocol.PacketType0RTT + case 0x2: + h.Type = protocol.PacketTypeHandshake + case 0x3: + h.Type = protocol.PacketTypeRetry + } + + if h.Type == protocol.PacketTypeRetry { + odcil := decodeSingleConnIDLen(h.typeByte & 0xf) + h.OrigDestConnectionID, err = protocol.ReadConnectionID(b, odcil) + if err != nil { + return err + } + h.Token = make([]byte, b.Len()) + if _, err := io.ReadFull(b, h.Token); err != nil { + return err + } + return nil + } + + if h.Type == protocol.PacketTypeInitial { + tokenLen, err := utils.ReadVarInt(b) + if err != nil { + return err + } + if tokenLen > uint64(b.Len()) { + return io.EOF + } + h.Token = make([]byte, tokenLen) + if _, err := io.ReadFull(b, h.Token); err != nil { + return err + } + } + + pl, err := utils.ReadVarInt(b) + if err != nil { + return err + } + h.Length = protocol.ByteCount(pl) + return nil +} + +func (h *Header) parseVersionNegotiationPacket(b *bytes.Reader) error { + if b.Len() == 0 { + return errors.New("Version Negoation packet has empty version list") + } + if b.Len()%4 != 0 { + return errors.New("Version Negotation packet has a version list with an invalid length") + } + h.SupportedVersions = make([]protocol.VersionNumber, b.Len()/4) + for i := 0; b.Len() > 0; i++ { + v, err := utils.BigEndian.ReadUint32(b) + if err != nil { + return err + } + h.SupportedVersions[i] = protocol.VersionNumber(v) + } + return nil +} + +// ParsedLen returns the number of bytes that were consumed when parsing the header +func (h *Header) ParsedLen() protocol.ByteCount { + return h.parsedLen +} + +// ParseExtended parses the version dependent part of the header. +// The Reader has to be set such that it points to the first byte of the header. +func (h *Header) ParseExtended(b *bytes.Reader, ver protocol.VersionNumber) (*ExtendedHeader, error) { + return h.toExtendedHeader().parse(b, ver) +} + +func (h *Header) toExtendedHeader() *ExtendedHeader { + return &ExtendedHeader{Header: *h} +} + +func decodeConnIDLen(enc byte) (int /*dest conn id len*/, int /*src conn id len*/) { + return decodeSingleConnIDLen(enc >> 4), decodeSingleConnIDLen(enc & 0xf) +} + +func decodeSingleConnIDLen(enc uint8) int { + if enc == 0 { + return 0 + } + return int(enc) + 3 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/interface.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/interface.go new file mode 100644 index 00000000..99fdc80f --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/interface.go @@ -0,0 +1,19 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// A Frame in QUIC +type Frame interface { + Write(b *bytes.Buffer, version protocol.VersionNumber) error + Length(version protocol.VersionNumber) protocol.ByteCount +} + +// A FrameParser parses QUIC frames, one by one. +type FrameParser interface { + ParseNext(*bytes.Reader, protocol.EncryptionLevel) (Frame, error) + SetAckDelayExponent(uint8) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/log.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/log.go new file mode 100644 index 00000000..3c56ac45 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/log.go @@ -0,0 +1,43 @@ +package wire + +import ( + "fmt" + "strings" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// LogFrame logs a frame, either sent or received +func LogFrame(logger utils.Logger, frame Frame, sent bool) { + if !logger.Debug() { + return + } + dir := "<-" + if sent { + dir = "->" + } + switch f := frame.(type) { + case *CryptoFrame: + dataLen := protocol.ByteCount(len(f.Data)) + logger.Debugf("\t%s &wire.CryptoFrame{Offset: 0x%x, Data length: 0x%x, Offset + Data length: 0x%x}", dir, f.Offset, dataLen, f.Offset+dataLen) + case *StreamFrame: + logger.Debugf("\t%s &wire.StreamFrame{StreamID: %d, FinBit: %t, Offset: 0x%x, Data length: 0x%x, Offset + Data length: 0x%x}", dir, f.StreamID, f.FinBit, f.Offset, f.DataLen(), f.Offset+f.DataLen()) + case *AckFrame: + if len(f.AckRanges) > 1 { + ackRanges := make([]string, len(f.AckRanges)) + for i, r := range f.AckRanges { + ackRanges[i] = fmt.Sprintf("{Largest: %#x, Smallest: %#x}", r.Largest, r.Smallest) + } + logger.Debugf("\t%s &wire.AckFrame{LargestAcked: %#x, LowestAcked: %#x, AckRanges: {%s}, DelayTime: %s}", dir, f.LargestAcked(), f.LowestAcked(), strings.Join(ackRanges, ", "), f.DelayTime.String()) + } else { + logger.Debugf("\t%s &wire.AckFrame{LargestAcked: %#x, LowestAcked: %#x, DelayTime: %s}", dir, f.LargestAcked(), f.LowestAcked(), f.DelayTime.String()) + } + case *NewConnectionIDFrame: + logger.Debugf("\t%s &wire.NewConnectionIDFrame{SequenceNumber: %d, ConnectionID: %s, StatelessResetToken: %#x}", dir, f.SequenceNumber, f.ConnectionID, f.StatelessResetToken) + case *NewTokenFrame: + logger.Debugf("\t%s &wire.NewTokenFrame{Token: %#x}", dir, f.Token) + default: + logger.Debugf("\t%s %#v", dir, frame) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_data_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_data_frame.go new file mode 100644 index 00000000..c4a9be0d --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_data_frame.go @@ -0,0 +1,40 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A MaxDataFrame carries flow control information for the connection +type MaxDataFrame struct { + ByteOffset protocol.ByteCount +} + +// parseMaxDataFrame parses a MAX_DATA frame +func parseMaxDataFrame(r *bytes.Reader, version protocol.VersionNumber) (*MaxDataFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + frame := &MaxDataFrame{} + byteOffset, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + frame.ByteOffset = protocol.ByteCount(byteOffset) + return frame, nil +} + +//Write writes a MAX_STREAM_DATA frame +func (f *MaxDataFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + b.WriteByte(0x10) + utils.WriteVarInt(b, uint64(f.ByteOffset)) + return nil +} + +// Length of a written frame +func (f *MaxDataFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.ByteOffset)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_stream_data_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_stream_data_frame.go new file mode 100644 index 00000000..2566f1c9 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_stream_data_frame.go @@ -0,0 +1,46 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A MaxStreamDataFrame is a MAX_STREAM_DATA frame +type MaxStreamDataFrame struct { + StreamID protocol.StreamID + ByteOffset protocol.ByteCount +} + +func parseMaxStreamDataFrame(r *bytes.Reader, version protocol.VersionNumber) (*MaxStreamDataFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + sid, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + offset, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + + return &MaxStreamDataFrame{ + StreamID: protocol.StreamID(sid), + ByteOffset: protocol.ByteCount(offset), + }, nil +} + +func (f *MaxStreamDataFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + b.WriteByte(0x11) + utils.WriteVarInt(b, uint64(f.StreamID)) + utils.WriteVarInt(b, uint64(f.ByteOffset)) + return nil +} + +// Length of a written frame +func (f *MaxStreamDataFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.StreamID)) + utils.VarIntLen(uint64(f.ByteOffset)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_streams_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_streams_frame.go new file mode 100644 index 00000000..c7a3cd41 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/max_streams_frame.go @@ -0,0 +1,51 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A MaxStreamsFrame is a MAX_STREAMS frame +type MaxStreamsFrame struct { + Type protocol.StreamType + MaxStreams uint64 +} + +func parseMaxStreamsFrame(r *bytes.Reader, _ protocol.VersionNumber) (*MaxStreamsFrame, error) { + typeByte, err := r.ReadByte() + if err != nil { + return nil, err + } + + f := &MaxStreamsFrame{} + switch typeByte { + case 0x12: + f.Type = protocol.StreamTypeBidi + case 0x13: + f.Type = protocol.StreamTypeUni + } + streamID, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + f.MaxStreams = streamID + return f, nil +} + +func (f *MaxStreamsFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + switch f.Type { + case protocol.StreamTypeBidi: + b.WriteByte(0x12) + case protocol.StreamTypeUni: + b.WriteByte(0x13) + } + utils.WriteVarInt(b, f.MaxStreams) + return nil +} + +// Length of a written frame +func (f *MaxStreamsFrame) Length(protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(f.MaxStreams) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/new_connection_id_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/new_connection_id_frame.go new file mode 100644 index 00000000..9a612aa6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/new_connection_id_frame.go @@ -0,0 +1,70 @@ +package wire + +import ( + "bytes" + "fmt" + "io" + + "github.com/lucas-clemente/quic-go/internal/utils" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// A NewConnectionIDFrame is a NEW_CONNECTION_ID frame +type NewConnectionIDFrame struct { + SequenceNumber uint64 + ConnectionID protocol.ConnectionID + StatelessResetToken [16]byte +} + +func parseNewConnectionIDFrame(r *bytes.Reader, _ protocol.VersionNumber) (*NewConnectionIDFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + seq, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + connIDLen, err := r.ReadByte() + if err != nil { + return nil, err + } + if connIDLen < 4 || connIDLen > 18 { + return nil, fmt.Errorf("invalid connection ID length: %d", connIDLen) + } + connID, err := protocol.ReadConnectionID(r, int(connIDLen)) + if err != nil { + return nil, err + } + frame := &NewConnectionIDFrame{ + SequenceNumber: seq, + ConnectionID: connID, + } + if _, err := io.ReadFull(r, frame.StatelessResetToken[:]); err != nil { + if err == io.ErrUnexpectedEOF { + return nil, io.EOF + } + return nil, err + } + + return frame, nil +} + +func (f *NewConnectionIDFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x18) + utils.WriteVarInt(b, f.SequenceNumber) + connIDLen := f.ConnectionID.Len() + if connIDLen < 4 || connIDLen > 18 { + return fmt.Errorf("invalid connection ID length: %d", connIDLen) + } + b.WriteByte(uint8(connIDLen)) + b.Write(f.ConnectionID.Bytes()) + b.Write(f.StatelessResetToken[:]) + return nil +} + +// Length of a written frame +func (f *NewConnectionIDFrame) Length(protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(f.SequenceNumber) + 1 /* connection ID length */ + protocol.ByteCount(f.ConnectionID.Len()) + 16 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/new_token_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/new_token_frame.go new file mode 100644 index 00000000..2cf6fce5 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/new_token_frame.go @@ -0,0 +1,44 @@ +package wire + +import ( + "bytes" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A NewTokenFrame is a NEW_TOKEN frame +type NewTokenFrame struct { + Token []byte +} + +func parseNewTokenFrame(r *bytes.Reader, _ protocol.VersionNumber) (*NewTokenFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + tokenLen, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + if uint64(r.Len()) < tokenLen { + return nil, io.EOF + } + token := make([]byte, int(tokenLen)) + if _, err := io.ReadFull(r, token); err != nil { + return nil, err + } + return &NewTokenFrame{Token: token}, nil +} + +func (f *NewTokenFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x7) + utils.WriteVarInt(b, uint64(len(f.Token))) + b.Write(f.Token) + return nil +} + +// Length of a written frame +func (f *NewTokenFrame) Length(protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(len(f.Token))) + protocol.ByteCount(len(f.Token)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/path_challenge_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/path_challenge_frame.go new file mode 100644 index 00000000..d35ee3b5 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/path_challenge_frame.go @@ -0,0 +1,38 @@ +package wire + +import ( + "bytes" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// A PathChallengeFrame is a PATH_CHALLENGE frame +type PathChallengeFrame struct { + Data [8]byte +} + +func parsePathChallengeFrame(r *bytes.Reader, version protocol.VersionNumber) (*PathChallengeFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + frame := &PathChallengeFrame{} + if _, err := io.ReadFull(r, frame.Data[:]); err != nil { + if err == io.ErrUnexpectedEOF { + return nil, io.EOF + } + return nil, err + } + return frame, nil +} + +func (f *PathChallengeFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x1a) + b.Write(f.Data[:]) + return nil +} + +// Length of a written frame +func (f *PathChallengeFrame) Length(_ protocol.VersionNumber) protocol.ByteCount { + return 1 + 8 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/path_response_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/path_response_frame.go new file mode 100644 index 00000000..20d8fd72 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/path_response_frame.go @@ -0,0 +1,38 @@ +package wire + +import ( + "bytes" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// A PathResponseFrame is a PATH_RESPONSE frame +type PathResponseFrame struct { + Data [8]byte +} + +func parsePathResponseFrame(r *bytes.Reader, version protocol.VersionNumber) (*PathResponseFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + frame := &PathResponseFrame{} + if _, err := io.ReadFull(r, frame.Data[:]); err != nil { + if err == io.ErrUnexpectedEOF { + return nil, io.EOF + } + return nil, err + } + return frame, nil +} + +func (f *PathResponseFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x1b) + b.Write(f.Data[:]) + return nil +} + +// Length of a written frame +func (f *PathResponseFrame) Length(_ protocol.VersionNumber) protocol.ByteCount { + return 1 + 8 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/ping_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/ping_frame.go new file mode 100644 index 00000000..aed6857b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/ping_frame.go @@ -0,0 +1,27 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// A PingFrame is a PING frame +type PingFrame struct{} + +func parsePingFrame(r *bytes.Reader, version protocol.VersionNumber) (*PingFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + return &PingFrame{}, nil +} + +func (f *PingFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + b.WriteByte(0x1) + return nil +} + +// Length of a written frame +func (f *PingFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + return 1 +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/reset_stream_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/reset_stream_frame.go new file mode 100644 index 00000000..d3a40dcf --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/reset_stream_frame.go @@ -0,0 +1,58 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A ResetStreamFrame is a RESET_STREAM frame in QUIC +type ResetStreamFrame struct { + StreamID protocol.StreamID + ErrorCode protocol.ApplicationErrorCode + ByteOffset protocol.ByteCount +} + +func parseResetStreamFrame(r *bytes.Reader, version protocol.VersionNumber) (*ResetStreamFrame, error) { + if _, err := r.ReadByte(); err != nil { // read the TypeByte + return nil, err + } + + var streamID protocol.StreamID + var errorCode uint16 + var byteOffset protocol.ByteCount + sid, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + streamID = protocol.StreamID(sid) + errorCode, err = utils.BigEndian.ReadUint16(r) + if err != nil { + return nil, err + } + bo, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + byteOffset = protocol.ByteCount(bo) + + return &ResetStreamFrame{ + StreamID: streamID, + ErrorCode: protocol.ApplicationErrorCode(errorCode), + ByteOffset: byteOffset, + }, nil +} + +func (f *ResetStreamFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + b.WriteByte(0x4) + utils.WriteVarInt(b, uint64(f.StreamID)) + utils.BigEndian.WriteUint16(b, uint16(f.ErrorCode)) + utils.WriteVarInt(b, uint64(f.ByteOffset)) + return nil +} + +// Length of a written frame +func (f *ResetStreamFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.StreamID)) + 2 + utils.VarIntLen(uint64(f.ByteOffset)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/retire_connection_id_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/retire_connection_id_frame.go new file mode 100644 index 00000000..9a715a4c --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/retire_connection_id_frame.go @@ -0,0 +1,36 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A RetireConnectionIDFrame is a RETIRE_CONNECTION_ID frame +type RetireConnectionIDFrame struct { + SequenceNumber uint64 +} + +func parseRetireConnectionIDFrame(r *bytes.Reader, _ protocol.VersionNumber) (*RetireConnectionIDFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + seq, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + return &RetireConnectionIDFrame{SequenceNumber: seq}, nil +} + +func (f *RetireConnectionIDFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x19) + utils.WriteVarInt(b, f.SequenceNumber) + return nil +} + +// Length of a written frame +func (f *RetireConnectionIDFrame) Length(protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(f.SequenceNumber) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/stop_sending_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/stop_sending_frame.go new file mode 100644 index 00000000..f9a5d60b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/stop_sending_frame.go @@ -0,0 +1,47 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A StopSendingFrame is a STOP_SENDING frame +type StopSendingFrame struct { + StreamID protocol.StreamID + ErrorCode protocol.ApplicationErrorCode +} + +// parseStopSendingFrame parses a STOP_SENDING frame +func parseStopSendingFrame(r *bytes.Reader, _ protocol.VersionNumber) (*StopSendingFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + streamID, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + errorCode, err := utils.BigEndian.ReadUint16(r) + if err != nil { + return nil, err + } + + return &StopSendingFrame{ + StreamID: protocol.StreamID(streamID), + ErrorCode: protocol.ApplicationErrorCode(errorCode), + }, nil +} + +// Length of a written frame +func (f *StopSendingFrame) Length(_ protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.StreamID)) + 2 +} + +func (f *StopSendingFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + b.WriteByte(0x5) + utils.WriteVarInt(b, uint64(f.StreamID)) + utils.BigEndian.WriteUint16(b, uint16(f.ErrorCode)) + return nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_data_blocked_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_data_blocked_frame.go new file mode 100644 index 00000000..9f2e90be --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_data_blocked_frame.go @@ -0,0 +1,46 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A StreamDataBlockedFrame is a STREAM_DATA_BLOCKED frame +type StreamDataBlockedFrame struct { + StreamID protocol.StreamID + DataLimit protocol.ByteCount +} + +func parseStreamDataBlockedFrame(r *bytes.Reader, _ protocol.VersionNumber) (*StreamDataBlockedFrame, error) { + if _, err := r.ReadByte(); err != nil { + return nil, err + } + + sid, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + offset, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + + return &StreamDataBlockedFrame{ + StreamID: protocol.StreamID(sid), + DataLimit: protocol.ByteCount(offset), + }, nil +} + +func (f *StreamDataBlockedFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + b.WriteByte(0x15) + utils.WriteVarInt(b, uint64(f.StreamID)) + utils.WriteVarInt(b, uint64(f.DataLimit)) + return nil +} + +// Length of a written frame +func (f *StreamDataBlockedFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(uint64(f.StreamID)) + utils.VarIntLen(uint64(f.DataLimit)) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_frame.go new file mode 100644 index 00000000..dfc1d1ad --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/stream_frame.go @@ -0,0 +1,168 @@ +package wire + +import ( + "bytes" + "errors" + "io" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A StreamFrame of QUIC +type StreamFrame struct { + StreamID protocol.StreamID + FinBit bool + DataLenPresent bool + Offset protocol.ByteCount + Data []byte +} + +func parseStreamFrame(r *bytes.Reader, version protocol.VersionNumber) (*StreamFrame, error) { + typeByte, err := r.ReadByte() + if err != nil { + return nil, err + } + + hasOffset := typeByte&0x4 > 0 + frame := &StreamFrame{ + FinBit: typeByte&0x1 > 0, + DataLenPresent: typeByte&0x2 > 0, + } + + streamID, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + frame.StreamID = protocol.StreamID(streamID) + if hasOffset { + offset, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + frame.Offset = protocol.ByteCount(offset) + } + + var dataLen uint64 + if frame.DataLenPresent { + var err error + dataLen, err = utils.ReadVarInt(r) + if err != nil { + return nil, err + } + // shortcut to prevent the unnecessary allocation of dataLen bytes + // if the dataLen is larger than the remaining length of the packet + // reading the packet contents would result in EOF when attempting to READ + if dataLen > uint64(r.Len()) { + return nil, io.EOF + } + } else { + // The rest of the packet is data + dataLen = uint64(r.Len()) + } + if dataLen != 0 { + frame.Data = make([]byte, dataLen) + if _, err := io.ReadFull(r, frame.Data); err != nil { + // this should never happen, since we already checked the dataLen earlier + return nil, err + } + } + if frame.Offset+frame.DataLen() > protocol.MaxByteCount { + return nil, qerr.Error(qerr.FrameEncodingError, "stream data overflows maximum offset") + } + return frame, nil +} + +// Write writes a STREAM frame +func (f *StreamFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error { + if len(f.Data) == 0 && !f.FinBit { + return errors.New("StreamFrame: attempting to write empty frame without FIN") + } + + typeByte := byte(0x8) + if f.FinBit { + typeByte ^= 0x1 + } + hasOffset := f.Offset != 0 + if f.DataLenPresent { + typeByte ^= 0x2 + } + if hasOffset { + typeByte ^= 0x4 + } + b.WriteByte(typeByte) + utils.WriteVarInt(b, uint64(f.StreamID)) + if hasOffset { + utils.WriteVarInt(b, uint64(f.Offset)) + } + if f.DataLenPresent { + utils.WriteVarInt(b, uint64(f.DataLen())) + } + b.Write(f.Data) + return nil +} + +// Length returns the total length of the STREAM frame +func (f *StreamFrame) Length(version protocol.VersionNumber) protocol.ByteCount { + length := 1 + utils.VarIntLen(uint64(f.StreamID)) + if f.Offset != 0 { + length += utils.VarIntLen(uint64(f.Offset)) + } + if f.DataLenPresent { + length += utils.VarIntLen(uint64(f.DataLen())) + } + return length + f.DataLen() +} + +// DataLen gives the length of data in bytes +func (f *StreamFrame) DataLen() protocol.ByteCount { + return protocol.ByteCount(len(f.Data)) +} + +// MaxDataLen returns the maximum data length +// If 0 is returned, writing will fail (a STREAM frame must contain at least 1 byte of data). +func (f *StreamFrame) MaxDataLen(maxSize protocol.ByteCount, version protocol.VersionNumber) protocol.ByteCount { + headerLen := 1 + utils.VarIntLen(uint64(f.StreamID)) + if f.Offset != 0 { + headerLen += utils.VarIntLen(uint64(f.Offset)) + } + if f.DataLenPresent { + // pretend that the data size will be 1 bytes + // if it turns out that varint encoding the length will consume 2 bytes, we need to adjust the data length afterwards + headerLen++ + } + if headerLen > maxSize { + return 0 + } + maxDataLen := maxSize - headerLen + if f.DataLenPresent && utils.VarIntLen(uint64(maxDataLen)) != 1 { + maxDataLen-- + } + return maxDataLen +} + +// MaybeSplitOffFrame splits a frame such that it is not bigger than n bytes. +// If n >= len(frame), nil is returned and nothing is modified. +func (f *StreamFrame) MaybeSplitOffFrame(maxSize protocol.ByteCount, version protocol.VersionNumber) (*StreamFrame, error) { + if maxSize >= f.Length(version) { + return nil, nil + } + + n := f.MaxDataLen(maxSize, version) + if n == 0 { + return nil, errors.New("too small") + } + newFrame := &StreamFrame{ + FinBit: false, + StreamID: f.StreamID, + Offset: f.Offset, + Data: f.Data[:n], + DataLenPresent: f.DataLenPresent, + } + + f.Data = f.Data[n:] + f.Offset += n + + return newFrame, nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/streams_blocked_frame.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/streams_blocked_frame.go new file mode 100644 index 00000000..b41d68f1 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/streams_blocked_frame.go @@ -0,0 +1,52 @@ +package wire + +import ( + "bytes" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// A StreamsBlockedFrame is a STREAMS_BLOCKED frame +type StreamsBlockedFrame struct { + Type protocol.StreamType + StreamLimit uint64 +} + +func parseStreamsBlockedFrame(r *bytes.Reader, _ protocol.VersionNumber) (*StreamsBlockedFrame, error) { + typeByte, err := r.ReadByte() + if err != nil { + return nil, err + } + + f := &StreamsBlockedFrame{} + switch typeByte { + case 0x16: + f.Type = protocol.StreamTypeBidi + case 0x17: + f.Type = protocol.StreamTypeUni + } + streamLimit, err := utils.ReadVarInt(r) + if err != nil { + return nil, err + } + f.StreamLimit = streamLimit + + return f, nil +} + +func (f *StreamsBlockedFrame) Write(b *bytes.Buffer, _ protocol.VersionNumber) error { + switch f.Type { + case protocol.StreamTypeBidi: + b.WriteByte(0x16) + case protocol.StreamTypeUni: + b.WriteByte(0x17) + } + utils.WriteVarInt(b, f.StreamLimit) + return nil +} + +// Length of a written frame +func (f *StreamsBlockedFrame) Length(_ protocol.VersionNumber) protocol.ByteCount { + return 1 + utils.VarIntLen(f.StreamLimit) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/internal/wire/version_negotiation.go b/vendor/github.com/lucas-clemente/quic-go/internal/wire/version_negotiation.go new file mode 100644 index 00000000..bfc27af7 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/internal/wire/version_negotiation.go @@ -0,0 +1,31 @@ +package wire + +import ( + "bytes" + "crypto/rand" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" +) + +// ComposeVersionNegotiation composes a Version Negotiation +func ComposeVersionNegotiation(destConnID, srcConnID protocol.ConnectionID, versions []protocol.VersionNumber) ([]byte, error) { + greasedVersions := protocol.GetGreasedVersions(versions) + expectedLen := 1 /* type byte */ + 4 /* version field */ + 1 /* connection ID length field */ + destConnID.Len() + srcConnID.Len() + len(greasedVersions)*4 + buf := bytes.NewBuffer(make([]byte, 0, expectedLen)) + r := make([]byte, 1) + _, _ = rand.Read(r) // ignore the error here. It is not critical to have perfect random here. + buf.WriteByte(r[0] | 0xc0) + utils.BigEndian.WriteUint32(buf, 0) // version 0 + connIDLen, err := encodeConnIDLen(destConnID, srcConnID) + if err != nil { + return nil, err + } + buf.WriteByte(connIDLen) + buf.Write(destConnID) + buf.Write(srcConnID) + for _, v := range greasedVersions { + utils.BigEndian.WriteUint32(buf, uint32(v)) + } + return buf.Bytes(), nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/mockgen.go b/vendor/github.com/lucas-clemente/quic-go/mockgen.go new file mode 100644 index 00000000..1a882c35 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/mockgen.go @@ -0,0 +1,21 @@ +package quic + +//go:generate sh -c "./mockgen_private.sh quic mock_stream_internal_test.go github.com/lucas-clemente/quic-go streamI" +//go:generate sh -c "./mockgen_private.sh quic mock_crypto_stream_test.go github.com/lucas-clemente/quic-go cryptoStream" +//go:generate sh -c "./mockgen_private.sh quic mock_receive_stream_internal_test.go github.com/lucas-clemente/quic-go receiveStreamI" +//go:generate sh -c "./mockgen_private.sh quic mock_send_stream_internal_test.go github.com/lucas-clemente/quic-go sendStreamI" +//go:generate sh -c "./mockgen_private.sh quic mock_stream_sender_test.go github.com/lucas-clemente/quic-go streamSender" +//go:generate sh -c "./mockgen_private.sh quic mock_stream_getter_test.go github.com/lucas-clemente/quic-go streamGetter" +//go:generate sh -c "./mockgen_private.sh quic mock_crypto_data_handler_test.go github.com/lucas-clemente/quic-go cryptoDataHandler" +//go:generate sh -c "./mockgen_private.sh quic mock_frame_source_test.go github.com/lucas-clemente/quic-go frameSource" +//go:generate sh -c "./mockgen_private.sh quic mock_ack_frame_source_test.go github.com/lucas-clemente/quic-go ackFrameSource" +//go:generate sh -c "./mockgen_private.sh quic mock_stream_manager_test.go github.com/lucas-clemente/quic-go streamManager" +//go:generate sh -c "./mockgen_private.sh quic mock_sealing_manager_test.go github.com/lucas-clemente/quic-go sealingManager" +//go:generate sh -c "./mockgen_private.sh quic mock_unpacker_test.go github.com/lucas-clemente/quic-go unpacker" +//go:generate sh -c "./mockgen_private.sh quic mock_packer_test.go github.com/lucas-clemente/quic-go packer" +//go:generate sh -c "./mockgen_private.sh quic mock_session_runner_test.go github.com/lucas-clemente/quic-go sessionRunner" +//go:generate sh -c "./mockgen_private.sh quic mock_quic_session_test.go github.com/lucas-clemente/quic-go quicSession" +//go:generate sh -c "./mockgen_private.sh quic mock_packet_handler_test.go github.com/lucas-clemente/quic-go packetHandler" +//go:generate sh -c "./mockgen_private.sh quic mock_unknown_packet_handler_test.go github.com/lucas-clemente/quic-go unknownPacketHandler" +//go:generate sh -c "./mockgen_private.sh quic mock_packet_handler_manager_test.go github.com/lucas-clemente/quic-go packetHandlerManager" +//go:generate sh -c "./mockgen_private.sh quic mock_multiplexer_test.go github.com/lucas-clemente/quic-go multiplexer" diff --git a/vendor/github.com/lucas-clemente/quic-go/mockgen_private.sh b/vendor/github.com/lucas-clemente/quic-go/mockgen_private.sh new file mode 100755 index 00000000..0ba5f64e --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/mockgen_private.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Mockgen refuses to generate mocks private types. +# This script copies the quic package to a temporary directory, and adds an public alias for the private type. +# It then creates a mock for this public (alias) type. + +TEMP_DIR=$(mktemp -d) +mkdir -p $TEMP_DIR/src/github.com/lucas-clemente/quic-go/ + +# uppercase the name of the interface +INTERFACE_NAME="$(tr '[:lower:]' '[:upper:]' <<< ${4:0:1})${4:1}" + +# copy all .go files to a temporary directory +rsync -r --exclude 'vendor' --include='*.go' --include '*/' --exclude '*' $GOPATH/src/github.com/lucas-clemente/quic-go/ $TEMP_DIR/src/github.com/lucas-clemente/quic-go/ + +# create a public alias for the interface, so that mockgen can process it +echo -e "package $1\n" > $TEMP_DIR/src/github.com/lucas-clemente/quic-go/mockgen_interface.go +echo "type $INTERFACE_NAME = $4" >> $TEMP_DIR/src/github.com/lucas-clemente/quic-go/mockgen_interface.go + +export GOPATH="$TEMP_DIR:$GOPATH" + +mockgen -package $1 -self_package $1 -destination $2 $3 $INTERFACE_NAME + +# mockgen imports quic-go as 'import quic_go github.com/lucas_clemente/quic-go' +sed -i '' 's/quic_go.//g' $2 +goimports -w $2 + +rm -r "$TEMP_DIR" diff --git a/vendor/github.com/lucas-clemente/quic-go/multiplexer.go b/vendor/github.com/lucas-clemente/quic-go/multiplexer.go new file mode 100644 index 00000000..eeffca53 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/multiplexer.go @@ -0,0 +1,89 @@ +package quic + +import ( + "bytes" + "fmt" + "net" + "sync" + + "github.com/lucas-clemente/quic-go/internal/utils" +) + +var ( + connMuxerOnce sync.Once + connMuxer multiplexer +) + +type multiplexer interface { + AddConn(c net.PacketConn, connIDLen int, statelessResetKey []byte) (packetHandlerManager, error) + RemoveConn(net.PacketConn) error +} + +type connManager struct { + connIDLen int + statelessResetKey []byte + manager packetHandlerManager +} + +// The connMultiplexer listens on multiple net.PacketConns and dispatches +// incoming packets to the session handler. +type connMultiplexer struct { + mutex sync.Mutex + + conns map[net.PacketConn]connManager + newPacketHandlerManager func(net.PacketConn, int, []byte, utils.Logger) packetHandlerManager // so it can be replaced in the tests + + logger utils.Logger +} + +var _ multiplexer = &connMultiplexer{} + +func getMultiplexer() multiplexer { + connMuxerOnce.Do(func() { + connMuxer = &connMultiplexer{ + conns: make(map[net.PacketConn]connManager), + logger: utils.DefaultLogger.WithPrefix("muxer"), + newPacketHandlerManager: newPacketHandlerMap, + } + }) + return connMuxer +} + +func (m *connMultiplexer) AddConn( + c net.PacketConn, + connIDLen int, + statelessResetKey []byte, +) (packetHandlerManager, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + p, ok := m.conns[c] + if !ok { + manager := m.newPacketHandlerManager(c, connIDLen, statelessResetKey, m.logger) + p = connManager{ + connIDLen: connIDLen, + statelessResetKey: statelessResetKey, + manager: manager, + } + m.conns[c] = p + } + if p.connIDLen != connIDLen { + return nil, fmt.Errorf("cannot use %d byte connection IDs on a connection that is already using %d byte connction IDs", connIDLen, p.connIDLen) + } + if statelessResetKey != nil && !bytes.Equal(p.statelessResetKey, statelessResetKey) { + return nil, fmt.Errorf("cannot use different stateless reset keys on the same packet conn") + } + return p.manager, nil +} + +func (m *connMultiplexer) RemoveConn(c net.PacketConn) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + if _, ok := m.conns[c]; !ok { + return fmt.Errorf("cannote remove connection, connection is unknown") + } + + delete(m.conns, c) + return nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/packet_handler_map.go b/vendor/github.com/lucas-clemente/quic-go/packet_handler_map.go new file mode 100644 index 00000000..0af6a407 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/packet_handler_map.go @@ -0,0 +1,274 @@ +package quic + +import ( + "crypto/hmac" + "crypto/rand" + "crypto/sha256" + "errors" + "hash" + "net" + "sync" + "time" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +// The packetHandlerMap stores packetHandlers, identified by connection ID. +// It is used: +// * by the server to store sessions +// * when multiplexing outgoing connections to store clients +type packetHandlerMap struct { + mutex sync.RWMutex + + conn net.PacketConn + connIDLen int + + handlers map[string] /* string(ConnectionID)*/ packetHandler + resetTokens map[[16]byte] /* stateless reset token */ packetHandler + server unknownPacketHandler + + listening chan struct{} // is closed when listen returns + closed bool + + deleteRetiredSessionsAfter time.Duration + + statelessResetEnabled bool + statelessResetHasher hash.Hash + + logger utils.Logger +} + +var _ packetHandlerManager = &packetHandlerMap{} + +func newPacketHandlerMap( + conn net.PacketConn, + connIDLen int, + statelessResetKey []byte, + logger utils.Logger, +) packetHandlerManager { + m := &packetHandlerMap{ + conn: conn, + connIDLen: connIDLen, + listening: make(chan struct{}), + handlers: make(map[string]packetHandler), + resetTokens: make(map[[16]byte]packetHandler), + deleteRetiredSessionsAfter: protocol.RetiredConnectionIDDeleteTimeout, + statelessResetEnabled: len(statelessResetKey) > 0, + statelessResetHasher: hmac.New(sha256.New, statelessResetKey), + logger: logger, + } + go m.listen() + return m +} + +func (h *packetHandlerMap) Add(id protocol.ConnectionID, handler packetHandler) { + h.mutex.Lock() + h.handlers[string(id)] = handler + h.mutex.Unlock() +} + +func (h *packetHandlerMap) Remove(id protocol.ConnectionID) { + h.removeByConnectionIDAsString(string(id)) +} + +func (h *packetHandlerMap) removeByConnectionIDAsString(id string) { + h.mutex.Lock() + delete(h.handlers, id) + h.mutex.Unlock() +} + +func (h *packetHandlerMap) Retire(id protocol.ConnectionID) { + h.retireByConnectionIDAsString(string(id)) +} + +func (h *packetHandlerMap) retireByConnectionIDAsString(id string) { + time.AfterFunc(h.deleteRetiredSessionsAfter, func() { + h.removeByConnectionIDAsString(id) + }) +} + +func (h *packetHandlerMap) AddResetToken(token [16]byte, handler packetHandler) { + h.mutex.Lock() + h.resetTokens[token] = handler + h.mutex.Unlock() +} + +func (h *packetHandlerMap) RemoveResetToken(token [16]byte) { + h.mutex.Lock() + delete(h.resetTokens, token) + h.mutex.Unlock() +} + +func (h *packetHandlerMap) SetServer(s unknownPacketHandler) { + h.mutex.Lock() + h.server = s + h.mutex.Unlock() +} + +func (h *packetHandlerMap) CloseServer() { + h.mutex.Lock() + h.server = nil + var wg sync.WaitGroup + for id, handler := range h.handlers { + if handler.getPerspective() == protocol.PerspectiveServer { + wg.Add(1) + go func(id string, handler packetHandler) { + // session.Close() blocks until the CONNECTION_CLOSE has been sent and the run-loop has stopped + _ = handler.Close() + h.retireByConnectionIDAsString(id) + wg.Done() + }(id, handler) + } + } + h.mutex.Unlock() + wg.Wait() +} + +// Close the underlying connection and wait until listen() has returned. +func (h *packetHandlerMap) Close() error { + if err := h.conn.Close(); err != nil { + return err + } + <-h.listening // wait until listening returns + return nil +} + +func (h *packetHandlerMap) close(e error) error { + h.mutex.Lock() + if h.closed { + h.mutex.Unlock() + return nil + } + h.closed = true + + var wg sync.WaitGroup + for _, handler := range h.handlers { + wg.Add(1) + go func(handler packetHandler) { + handler.destroy(e) + wg.Done() + }(handler) + } + + if h.server != nil { + h.server.closeWithError(e) + } + h.mutex.Unlock() + wg.Wait() + return getMultiplexer().RemoveConn(h.conn) +} + +func (h *packetHandlerMap) listen() { + defer close(h.listening) + for { + buffer := getPacketBuffer() + data := buffer.Slice + // The packet size should not exceed protocol.MaxReceivePacketSize bytes + // If it does, we only read a truncated packet, which will then end up undecryptable + n, addr, err := h.conn.ReadFrom(data) + if err != nil { + h.close(err) + return + } + h.handlePacket(addr, buffer, data[:n]) + } +} + +func (h *packetHandlerMap) handlePacket( + addr net.Addr, + buffer *packetBuffer, + data []byte, +) { + connID, err := wire.ParseConnectionID(data, h.connIDLen) + if err != nil { + h.logger.Debugf("error parsing connection ID on packet from %s: %s", addr, err) + return + } + rcvTime := time.Now() + + h.mutex.RLock() + defer h.mutex.RUnlock() + + if isStatelessReset := h.maybeHandleStatelessReset(data); isStatelessReset { + return + } + + handler, handlerFound := h.handlers[string(connID)] + + p := &receivedPacket{ + remoteAddr: addr, + rcvTime: rcvTime, + buffer: buffer, + data: data, + } + if handlerFound { // existing session + handler.handlePacket(p) + return + } + if data[0]&0x80 == 0 { + go h.maybeSendStatelessReset(p, connID) + return + } + if h.server == nil { // no server set + h.logger.Debugf("received a packet with an unexpected connection ID %s", connID) + return + } + h.server.handlePacket(p) +} + +func (h *packetHandlerMap) maybeHandleStatelessReset(data []byte) bool { + // stateless resets are always short header packets + if data[0]&0x80 != 0 { + return false + } + if len(data) < protocol.MinStatelessResetSize { + return false + } + + var token [16]byte + copy(token[:], data[len(data)-16:]) + if sess, ok := h.resetTokens[token]; ok { + h.logger.Debugf("Received a stateless retry with token %#x. Closing session.", token) + go sess.destroy(errors.New("received a stateless reset")) + return true + } + return false +} + +func (h *packetHandlerMap) GetStatelessResetToken(connID protocol.ConnectionID) [16]byte { + var token [16]byte + if !h.statelessResetEnabled { + // Return a random stateless reset token. + // This token will be sent in the server's transport parameters. + // By using a random token, an off-path attacker won't be able to disrupt the connection. + rand.Read(token[:]) + return token + } + h.statelessResetHasher.Write(connID.Bytes()) + copy(token[:], h.statelessResetHasher.Sum(nil)) + h.statelessResetHasher.Reset() + return token +} + +func (h *packetHandlerMap) maybeSendStatelessReset(p *receivedPacket, connID protocol.ConnectionID) { + defer p.buffer.Release() + if !h.statelessResetEnabled { + return + } + // Don't send a stateless reset in response to very small packets. + // This includes packets that could be stateless resets. + if len(p.data) <= protocol.MinStatelessResetSize { + return + } + token := h.GetStatelessResetToken(connID) + h.logger.Debugf("Sending stateless reset to %s (connection ID: %s). Token: %#x", p.remoteAddr, connID, token) + data := make([]byte, 23) + rand.Read(data) + data[0] = (data[0] & 0x7f) | 0x40 + data = append(data, token[:]...) + if _, err := h.conn.WriteTo(data, p.remoteAddr); err != nil { + h.logger.Debugf("Error sending Stateless Reset: %s", err) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/packet_packer.go b/vendor/github.com/lucas-clemente/quic-go/packet_packer.go new file mode 100644 index 00000000..7fae340e --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/packet_packer.go @@ -0,0 +1,491 @@ +package quic + +import ( + "bytes" + "errors" + "fmt" + "net" + "time" + + "github.com/lucas-clemente/quic-go/internal/ackhandler" + "github.com/lucas-clemente/quic-go/internal/handshake" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type packer interface { + PackPacket() (*packedPacket, error) + MaybePackAckPacket() (*packedPacket, error) + PackRetransmission(packet *ackhandler.Packet) ([]*packedPacket, error) + PackConnectionClose(*wire.ConnectionCloseFrame) (*packedPacket, error) + + HandleTransportParameters(*handshake.TransportParameters) + SetToken([]byte) + ChangeDestConnectionID(protocol.ConnectionID) +} + +type packedPacket struct { + header *wire.ExtendedHeader + raw []byte + frames []wire.Frame + + buffer *packetBuffer +} + +func (p *packedPacket) EncryptionLevel() protocol.EncryptionLevel { + if !p.header.IsLongHeader { + return protocol.Encryption1RTT + } + switch p.header.Type { + case protocol.PacketTypeInitial: + return protocol.EncryptionInitial + case protocol.PacketTypeHandshake: + return protocol.EncryptionHandshake + default: + return protocol.EncryptionUnspecified + } +} + +func (p *packedPacket) IsRetransmittable() bool { + return ackhandler.HasRetransmittableFrames(p.frames) +} + +func (p *packedPacket) ToAckHandlerPacket() *ackhandler.Packet { + return &ackhandler.Packet{ + PacketNumber: p.header.PacketNumber, + PacketType: p.header.Type, + Frames: p.frames, + Length: protocol.ByteCount(len(p.raw)), + EncryptionLevel: p.EncryptionLevel(), + SendTime: time.Now(), + } +} + +func getMaxPacketSize(addr net.Addr) protocol.ByteCount { + maxSize := protocol.ByteCount(protocol.MinInitialPacketSize) + // If this is not a UDP address, we don't know anything about the MTU. + // Use the minimum size of an Initial packet as the max packet size. + if udpAddr, ok := addr.(*net.UDPAddr); ok { + // If ip is not an IPv4 address, To4 returns nil. + // Note that there might be some corner cases, where this is not correct. + // See https://stackoverflow.com/questions/22751035/golang-distinguish-ipv4-ipv6. + if udpAddr.IP.To4() == nil { + maxSize = protocol.MaxPacketSizeIPv6 + } else { + maxSize = protocol.MaxPacketSizeIPv4 + } + } + return maxSize +} + +type packetNumberManager interface { + PeekPacketNumber(protocol.EncryptionLevel) (protocol.PacketNumber, protocol.PacketNumberLen) + PopPacketNumber(protocol.EncryptionLevel) protocol.PacketNumber +} + +type sealingManager interface { + GetSealer() (protocol.EncryptionLevel, handshake.Sealer) + GetSealerWithEncryptionLevel(protocol.EncryptionLevel) (handshake.Sealer, error) +} + +type frameSource interface { + AppendStreamFrames([]wire.Frame, protocol.ByteCount) []wire.Frame + AppendControlFrames([]wire.Frame, protocol.ByteCount) ([]wire.Frame, protocol.ByteCount) +} + +type ackFrameSource interface { + GetAckFrame(protocol.EncryptionLevel) *wire.AckFrame +} + +type packetPacker struct { + destConnID protocol.ConnectionID + srcConnID protocol.ConnectionID + + perspective protocol.Perspective + version protocol.VersionNumber + cryptoSetup sealingManager + + initialStream cryptoStream + handshakeStream cryptoStream + + token []byte + + pnManager packetNumberManager + framer frameSource + acks ackFrameSource + + maxPacketSize protocol.ByteCount + numNonRetransmittableAcks int +} + +var _ packer = &packetPacker{} + +func newPacketPacker( + destConnID protocol.ConnectionID, + srcConnID protocol.ConnectionID, + initialStream cryptoStream, + handshakeStream cryptoStream, + packetNumberManager packetNumberManager, + remoteAddr net.Addr, // only used for determining the max packet size + cryptoSetup sealingManager, + framer frameSource, + acks ackFrameSource, + perspective protocol.Perspective, + version protocol.VersionNumber, +) *packetPacker { + return &packetPacker{ + cryptoSetup: cryptoSetup, + destConnID: destConnID, + srcConnID: srcConnID, + initialStream: initialStream, + handshakeStream: handshakeStream, + perspective: perspective, + version: version, + framer: framer, + acks: acks, + pnManager: packetNumberManager, + maxPacketSize: getMaxPacketSize(remoteAddr), + } +} + +// PackConnectionClose packs a packet that ONLY contains a ConnectionCloseFrame +func (p *packetPacker) PackConnectionClose(ccf *wire.ConnectionCloseFrame) (*packedPacket, error) { + frames := []wire.Frame{ccf} + encLevel, sealer := p.cryptoSetup.GetSealer() + header := p.getHeader(encLevel) + return p.writeAndSealPacket(header, frames, encLevel, sealer) +} + +func (p *packetPacker) MaybePackAckPacket() (*packedPacket, error) { + ack := p.acks.GetAckFrame(protocol.Encryption1RTT) + if ack == nil { + return nil, nil + } + // TODO(#1534): only pack ACKs with the right encryption level + encLevel, sealer := p.cryptoSetup.GetSealer() + header := p.getHeader(encLevel) + frames := []wire.Frame{ack} + return p.writeAndSealPacket(header, frames, encLevel, sealer) +} + +// PackRetransmission packs a retransmission +// For packets sent after completion of the handshake, it might happen that 2 packets have to be sent. +// This can happen e.g. when a longer packet number is used in the header. +func (p *packetPacker) PackRetransmission(packet *ackhandler.Packet) ([]*packedPacket, error) { + var controlFrames []wire.Frame + var streamFrames []*wire.StreamFrame + for _, f := range packet.Frames { + // CRYPTO frames are treated as control frames here. + // Since we're making sure that the header can never be larger for a retransmission, + // we never have to split CRYPTO frames. + if sf, ok := f.(*wire.StreamFrame); ok { + sf.DataLenPresent = true + streamFrames = append(streamFrames, sf) + } else { + controlFrames = append(controlFrames, f) + } + } + + var packets []*packedPacket + encLevel := packet.EncryptionLevel + sealer, err := p.cryptoSetup.GetSealerWithEncryptionLevel(encLevel) + if err != nil { + return nil, err + } + for len(controlFrames) > 0 || len(streamFrames) > 0 { + var frames []wire.Frame + var length protocol.ByteCount + + header := p.getHeader(encLevel) + headerLen := header.GetLength(p.version) + maxSize := p.maxPacketSize - protocol.ByteCount(sealer.Overhead()) - headerLen + + for len(controlFrames) > 0 { + frame := controlFrames[0] + frameLen := frame.Length(p.version) + if length+frameLen > maxSize { + break + } + length += frameLen + frames = append(frames, frame) + controlFrames = controlFrames[1:] + } + + for len(streamFrames) > 0 && length+protocol.MinStreamFrameSize < maxSize { + frame := streamFrames[0] + frame.DataLenPresent = false + frameToAdd := frame + + sf, err := frame.MaybeSplitOffFrame(maxSize-length, p.version) + if err != nil { + return nil, err + } + if sf != nil { + frameToAdd = sf + } else { + streamFrames = streamFrames[1:] + } + frame.DataLenPresent = true + length += frameToAdd.Length(p.version) + frames = append(frames, frameToAdd) + } + if sf, ok := frames[len(frames)-1].(*wire.StreamFrame); ok { + sf.DataLenPresent = false + } + p, err := p.writeAndSealPacket(header, frames, encLevel, sealer) + if err != nil { + return nil, err + } + packets = append(packets, p) + } + return packets, nil +} + +// PackPacket packs a new packet +// the other controlFrames are sent in the next packet, but might be queued and sent in the next packet if the packet would overflow MaxPacketSize otherwise +func (p *packetPacker) PackPacket() (*packedPacket, error) { + packet, err := p.maybePackCryptoPacket() + if err != nil { + return nil, err + } + if packet != nil { + return packet, nil + } + + encLevel, sealer := p.cryptoSetup.GetSealer() + header := p.getHeader(encLevel) + headerLen := header.GetLength(p.version) + if err != nil { + return nil, err + } + + maxSize := p.maxPacketSize - protocol.ByteCount(sealer.Overhead()) - headerLen + frames, err := p.composeNextPacket(maxSize) + if err != nil { + return nil, err + } + + // Check if we have enough frames to send + if len(frames) == 0 { + return nil, nil + } + // check if this packet only contains an ACK + if !ackhandler.HasRetransmittableFrames(frames) { + if p.numNonRetransmittableAcks >= protocol.MaxNonRetransmittableAcks { + frames = append(frames, &wire.PingFrame{}) + p.numNonRetransmittableAcks = 0 + } else { + p.numNonRetransmittableAcks++ + } + } else { + p.numNonRetransmittableAcks = 0 + } + + return p.writeAndSealPacket(header, frames, encLevel, sealer) +} + +func (p *packetPacker) maybePackCryptoPacket() (*packedPacket, error) { + var s cryptoStream + var encLevel protocol.EncryptionLevel + + hasData := p.initialStream.HasData() + ack := p.acks.GetAckFrame(protocol.EncryptionInitial) + if hasData || ack != nil { + s = p.initialStream + encLevel = protocol.EncryptionInitial + } else { + hasData = p.handshakeStream.HasData() + ack = p.acks.GetAckFrame(protocol.EncryptionHandshake) + if hasData || ack != nil { + s = p.handshakeStream + encLevel = protocol.EncryptionHandshake + } + } + if s == nil { + return nil, nil + } + sealer, err := p.cryptoSetup.GetSealerWithEncryptionLevel(encLevel) + if err != nil { + // The sealer + return nil, err + } + + hdr := p.getHeader(encLevel) + hdrLen := hdr.GetLength(p.version) + var length protocol.ByteCount + frames := make([]wire.Frame, 0, 2) + if ack != nil { + frames = append(frames, ack) + length += ack.Length(p.version) + } + if hasData { + cf := s.PopCryptoFrame(p.maxPacketSize - hdrLen - protocol.ByteCount(sealer.Overhead()) - length) + frames = append(frames, cf) + } + return p.writeAndSealPacket(hdr, frames, encLevel, sealer) +} + +func (p *packetPacker) composeNextPacket(maxFrameSize protocol.ByteCount) ([]wire.Frame, error) { + var length protocol.ByteCount + var frames []wire.Frame + + // ACKs need to go first, so that the sentPacketHandler will recognize them + if ack := p.acks.GetAckFrame(protocol.Encryption1RTT); ack != nil { + frames = append(frames, ack) + length += ack.Length(p.version) + } + + var lengthAdded protocol.ByteCount + frames, lengthAdded = p.framer.AppendControlFrames(frames, maxFrameSize-length) + length += lengthAdded + + // temporarily increase the maxFrameSize by the (minimum) length of the DataLen field + // this leads to a properly sized packet in all cases, since we do all the packet length calculations with STREAM frames that have the DataLen set + // however, for the last STREAM frame in the packet, we can omit the DataLen, thus yielding a packet of exactly the correct size + // the length is encoded to either 1 or 2 bytes + maxFrameSize++ + + frames = p.framer.AppendStreamFrames(frames, maxFrameSize-length) + if len(frames) > 0 { + lastFrame := frames[len(frames)-1] + if sf, ok := lastFrame.(*wire.StreamFrame); ok { + sf.DataLenPresent = false + } + } + return frames, nil +} + +func (p *packetPacker) getHeader(encLevel protocol.EncryptionLevel) *wire.ExtendedHeader { + pn, pnLen := p.pnManager.PeekPacketNumber(encLevel) + header := &wire.ExtendedHeader{} + header.PacketNumber = pn + header.PacketNumberLen = pnLen + header.Version = p.version + header.DestConnectionID = p.destConnID + + if encLevel != protocol.Encryption1RTT { + header.IsLongHeader = true + // Always send Initial and Handshake packets with the maximum packet number length. + // This simplifies retransmissions: Since the header can't get any larger, + // we don't need to split CRYPTO frames. + header.PacketNumberLen = protocol.PacketNumberLen4 + header.SrcConnectionID = p.srcConnID + // Set the length to the maximum packet size. + // Since it is encoded as a varint, this guarantees us that the header will end up at most as big as GetLength() returns. + header.Length = p.maxPacketSize + switch encLevel { + case protocol.EncryptionInitial: + header.Type = protocol.PacketTypeInitial + case protocol.EncryptionHandshake: + header.Type = protocol.PacketTypeHandshake + } + } + + return header +} + +func (p *packetPacker) writeAndSealPacket( + header *wire.ExtendedHeader, + frames []wire.Frame, + encLevel protocol.EncryptionLevel, + sealer handshake.Sealer, +) (*packedPacket, error) { + packetBuffer := getPacketBuffer() + buffer := bytes.NewBuffer(packetBuffer.Slice[:0]) + + addPaddingForInitial := p.perspective == protocol.PerspectiveClient && header.Type == protocol.PacketTypeInitial + + if header.IsLongHeader { + if p.perspective == protocol.PerspectiveClient && header.Type == protocol.PacketTypeInitial { + header.Token = p.token + } + if addPaddingForInitial { + headerLen := header.GetLength(p.version) + header.Length = protocol.ByteCount(header.PacketNumberLen) + protocol.MinInitialPacketSize - headerLen + } else { + // long header packets always use 4 byte packet number, so we never need to pad short payloads + length := protocol.ByteCount(sealer.Overhead()) + protocol.ByteCount(header.PacketNumberLen) + for _, frame := range frames { + length += frame.Length(p.version) + } + header.Length = length + } + } + + if err := header.Write(buffer, p.version); err != nil { + return nil, err + } + payloadOffset := buffer.Len() + + // write all frames but the last one + for _, frame := range frames[:len(frames)-1] { + if err := frame.Write(buffer, p.version); err != nil { + return nil, err + } + } + lastFrame := frames[len(frames)-1] + if addPaddingForInitial { + // when appending padding, we need to make sure that the last STREAM frames has the data length set + if sf, ok := lastFrame.(*wire.StreamFrame); ok { + sf.DataLenPresent = true + } + } else { + payloadLen := buffer.Len() - payloadOffset + int(lastFrame.Length(p.version)) + if paddingLen := 4 - int(header.PacketNumberLen) - payloadLen; paddingLen > 0 { + // Pad the packet such that packet number length + payload length is 4 bytes. + // This is needed to enable the peer to get a 16 byte sample for header protection. + buffer.Write(bytes.Repeat([]byte{0}, paddingLen)) + } + } + if err := lastFrame.Write(buffer, p.version); err != nil { + return nil, err + } + + if addPaddingForInitial { + paddingLen := protocol.MinInitialPacketSize - sealer.Overhead() - buffer.Len() + if paddingLen > 0 { + buffer.Write(bytes.Repeat([]byte{0}, paddingLen)) + } + } + + if size := protocol.ByteCount(buffer.Len() + sealer.Overhead()); size > p.maxPacketSize { + return nil, fmt.Errorf("PacketPacker BUG: packet too large (%d bytes, allowed %d bytes)", size, p.maxPacketSize) + } + + raw := buffer.Bytes() + _ = sealer.Seal(raw[payloadOffset:payloadOffset], raw[payloadOffset:], header.PacketNumber, raw[:payloadOffset]) + raw = raw[0 : buffer.Len()+sealer.Overhead()] + + pnOffset := payloadOffset - int(header.PacketNumberLen) + sealer.EncryptHeader( + raw[pnOffset+4:pnOffset+4+16], + &raw[0], + raw[pnOffset:payloadOffset], + ) + + num := p.pnManager.PopPacketNumber(encLevel) + if num != header.PacketNumber { + return nil, errors.New("packetPacker BUG: Peeked and Popped packet numbers do not match") + } + return &packedPacket{ + header: header, + raw: raw, + frames: frames, + buffer: packetBuffer, + }, nil +} + +func (p *packetPacker) ChangeDestConnectionID(connID protocol.ConnectionID) { + p.destConnID = connID +} + +func (p *packetPacker) SetToken(token []byte) { + p.token = token +} + +func (p *packetPacker) HandleTransportParameters(params *handshake.TransportParameters) { + if params.MaxPacketSize != 0 { + p.maxPacketSize = utils.MinByteCount(p.maxPacketSize, params.MaxPacketSize) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/packet_unpacker.go b/vendor/github.com/lucas-clemente/quic-go/packet_unpacker.go new file mode 100644 index 00000000..f3b5a2f7 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/packet_unpacker.go @@ -0,0 +1,102 @@ +package quic + +import ( + "bytes" + "fmt" + + "github.com/lucas-clemente/quic-go/internal/handshake" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type unpackedPacket struct { + packetNumber protocol.PacketNumber // the decoded packet number + hdr *wire.ExtendedHeader + encryptionLevel protocol.EncryptionLevel + data []byte +} + +// The packetUnpacker unpacks QUIC packets. +type packetUnpacker struct { + cs handshake.CryptoSetup + + largestRcvdPacketNumber protocol.PacketNumber + + version protocol.VersionNumber +} + +var _ unpacker = &packetUnpacker{} + +func newPacketUnpacker(cs handshake.CryptoSetup, version protocol.VersionNumber) unpacker { + return &packetUnpacker{ + cs: cs, + version: version, + } +} + +func (u *packetUnpacker) Unpack(hdr *wire.Header, data []byte) (*unpackedPacket, error) { + r := bytes.NewReader(data) + + var encLevel protocol.EncryptionLevel + switch hdr.Type { + case protocol.PacketTypeInitial: + encLevel = protocol.EncryptionInitial + case protocol.PacketTypeHandshake: + encLevel = protocol.EncryptionHandshake + default: + if hdr.IsLongHeader { + return nil, fmt.Errorf("unknown packet type: %s", hdr.Type) + } + encLevel = protocol.Encryption1RTT + } + opener, err := u.cs.GetOpener(encLevel) + if err != nil { + return nil, err + } + hdrLen := int(hdr.ParsedLen()) + if len(data) < hdrLen+4+16 { + return nil, fmt.Errorf("Packet too small. Expected at least 20 bytes after the header, got %d", len(data)-hdrLen) + } + // The packet number can be up to 4 bytes long, but we won't know the length until we decrypt it. + // 1. save a copy of the 4 bytes + origPNBytes := make([]byte, 4) + copy(origPNBytes, data[hdrLen:hdrLen+4]) + // 2. decrypt the header, assuming a 4 byte packet number + opener.DecryptHeader( + data[hdrLen+4:hdrLen+4+16], + &data[0], + data[hdrLen:hdrLen+4], + ) + // 3. parse the header (and learn the actual length of the packet number) + extHdr, err := hdr.ParseExtended(r, u.version) + if err != nil { + return nil, fmt.Errorf("error parsing extended header: %s", err) + } + extHdrLen := hdrLen + int(extHdr.PacketNumberLen) + // 4. if the packet number is shorter than 4 bytes, replace the remaining bytes with the copy we saved earlier + if extHdr.PacketNumberLen != protocol.PacketNumberLen4 { + copy(data[extHdrLen:hdrLen+4], origPNBytes[int(extHdr.PacketNumberLen):]) + } + + pn := protocol.DecodePacketNumber( + extHdr.PacketNumberLen, + u.largestRcvdPacketNumber, + extHdr.PacketNumber, + ) + + decrypted, err := opener.Open(data[extHdrLen:extHdrLen], data[extHdrLen:], pn, data[:extHdrLen]) + if err != nil { + return nil, err + } + + // Only do this after decrypting, so we are sure the packet is not attacker-controlled + u.largestRcvdPacketNumber = utils.MaxPacketNumber(u.largestRcvdPacketNumber, pn) + + return &unpackedPacket{ + hdr: extHdr, + packetNumber: pn, + encryptionLevel: encLevel, + data: decrypted, + }, nil +} diff --git a/vendor/github.com/lucas-clemente/quic-go/receive_stream.go b/vendor/github.com/lucas-clemente/quic-go/receive_stream.go new file mode 100644 index 00000000..de76335e --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/receive_stream.go @@ -0,0 +1,324 @@ +package quic + +import ( + "fmt" + "io" + "sync" + "time" + + "github.com/lucas-clemente/quic-go/internal/flowcontrol" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type receiveStreamI interface { + ReceiveStream + + handleStreamFrame(*wire.StreamFrame) error + handleResetStreamFrame(*wire.ResetStreamFrame) error + closeForShutdown(error) + getWindowUpdate() protocol.ByteCount +} + +type receiveStream struct { + mutex sync.Mutex + + streamID protocol.StreamID + + sender streamSender + + frameQueue *frameSorter + readOffset protocol.ByteCount + finalOffset protocol.ByteCount + + currentFrame []byte + currentFrameIsLast bool // is the currentFrame the last frame on this stream + readPosInFrame int + + closeForShutdownErr error + cancelReadErr error + resetRemotelyErr StreamError + + closedForShutdown bool // set when CloseForShutdown() is called + finRead bool // set once we read a frame with a FinBit + canceledRead bool // set when CancelRead() is called + resetRemotely bool // set when HandleResetStreamFrame() is called + + readChan chan struct{} + deadline time.Time + + flowController flowcontrol.StreamFlowController + version protocol.VersionNumber +} + +var _ ReceiveStream = &receiveStream{} +var _ receiveStreamI = &receiveStream{} + +func newReceiveStream( + streamID protocol.StreamID, + sender streamSender, + flowController flowcontrol.StreamFlowController, + version protocol.VersionNumber, +) *receiveStream { + return &receiveStream{ + streamID: streamID, + sender: sender, + flowController: flowController, + frameQueue: newFrameSorter(), + readChan: make(chan struct{}, 1), + finalOffset: protocol.MaxByteCount, + version: version, + } +} + +func (s *receiveStream) StreamID() protocol.StreamID { + return s.streamID +} + +// Read implements io.Reader. It is not thread safe! +func (s *receiveStream) Read(p []byte) (int, error) { + s.mutex.Lock() + completed, n, err := s.readImpl(p) + s.mutex.Unlock() + + if completed { + s.streamCompleted() + } + return n, err +} + +func (s *receiveStream) readImpl(p []byte) (bool /*stream completed */, int, error) { + if s.finRead { + return false, 0, io.EOF + } + if s.canceledRead { + return false, 0, s.cancelReadErr + } + if s.resetRemotely { + return false, 0, s.resetRemotelyErr + } + if s.closedForShutdown { + return false, 0, s.closeForShutdownErr + } + + bytesRead := 0 + for bytesRead < len(p) { + if s.currentFrame == nil || s.readPosInFrame >= len(s.currentFrame) { + s.dequeueNextFrame() + } + if s.currentFrame == nil && bytesRead > 0 { + return false, bytesRead, s.closeForShutdownErr + } + + var deadlineTimer *utils.Timer + for { + // Stop waiting on errors + if s.closedForShutdown { + return false, bytesRead, s.closeForShutdownErr + } + if s.canceledRead { + return false, bytesRead, s.cancelReadErr + } + if s.resetRemotely { + return false, bytesRead, s.resetRemotelyErr + } + + deadline := s.deadline + if !deadline.IsZero() { + if !time.Now().Before(deadline) { + return false, bytesRead, errDeadline + } + if deadlineTimer == nil { + deadlineTimer = utils.NewTimer() + } + deadlineTimer.Reset(deadline) + } + + if s.currentFrame != nil || s.currentFrameIsLast { + break + } + + s.mutex.Unlock() + if deadline.IsZero() { + <-s.readChan + } else { + select { + case <-s.readChan: + case <-deadlineTimer.Chan(): + deadlineTimer.SetRead() + } + } + s.mutex.Lock() + if s.currentFrame == nil { + s.dequeueNextFrame() + } + } + + if bytesRead > len(p) { + return false, bytesRead, fmt.Errorf("BUG: bytesRead (%d) > len(p) (%d) in stream.Read", bytesRead, len(p)) + } + if s.readPosInFrame > len(s.currentFrame) { + return false, bytesRead, fmt.Errorf("BUG: readPosInFrame (%d) > frame.DataLen (%d) in stream.Read", s.readPosInFrame, len(s.currentFrame)) + } + + s.mutex.Unlock() + + m := copy(p[bytesRead:], s.currentFrame[s.readPosInFrame:]) + s.readPosInFrame += m + bytesRead += m + s.readOffset += protocol.ByteCount(m) + + s.mutex.Lock() + // when a RESET_STREAM was received, the was already informed about the final byteOffset for this stream + if !s.resetRemotely { + s.flowController.AddBytesRead(protocol.ByteCount(m)) + } + + if s.readPosInFrame >= len(s.currentFrame) && s.currentFrameIsLast { + s.finRead = true + return true, bytesRead, io.EOF + } + } + return false, bytesRead, nil +} + +func (s *receiveStream) dequeueNextFrame() { + var offset protocol.ByteCount + offset, s.currentFrame = s.frameQueue.Pop() + s.currentFrameIsLast = offset+protocol.ByteCount(len(s.currentFrame)) >= s.finalOffset + s.readPosInFrame = 0 +} + +func (s *receiveStream) CancelRead(errorCode protocol.ApplicationErrorCode) { + s.mutex.Lock() + completed := s.cancelReadImpl(errorCode) + s.mutex.Unlock() + + if completed { + s.streamCompleted() + } +} + +func (s *receiveStream) cancelReadImpl(errorCode protocol.ApplicationErrorCode) bool /* completed */ { + if s.finRead || s.canceledRead || s.resetRemotely { + return false + } + s.canceledRead = true + s.cancelReadErr = fmt.Errorf("Read on stream %d canceled with error code %d", s.streamID, errorCode) + s.signalRead() + s.sender.queueControlFrame(&wire.StopSendingFrame{ + StreamID: s.streamID, + ErrorCode: errorCode, + }) + // We're done with this stream if the final offset was already received. + return s.finalOffset != protocol.MaxByteCount +} + +func (s *receiveStream) handleStreamFrame(frame *wire.StreamFrame) error { + s.mutex.Lock() + completed, err := s.handleStreamFrameImpl(frame) + s.mutex.Unlock() + + if completed { + s.streamCompleted() + } + return err +} + +func (s *receiveStream) handleStreamFrameImpl(frame *wire.StreamFrame) (bool /* completed */, error) { + maxOffset := frame.Offset + frame.DataLen() + if err := s.flowController.UpdateHighestReceived(maxOffset, frame.FinBit); err != nil { + return false, err + } + if frame.FinBit { + s.finalOffset = maxOffset + } + if s.canceledRead { + return frame.FinBit, nil + } + if err := s.frameQueue.Push(frame.Data, frame.Offset); err != nil { + return false, err + } + s.signalRead() + return false, nil +} + +func (s *receiveStream) handleResetStreamFrame(frame *wire.ResetStreamFrame) error { + s.mutex.Lock() + completed, err := s.handleResetStreamFrameImpl(frame) + s.mutex.Unlock() + + if completed { + s.streamCompleted() + } + return err +} + +func (s *receiveStream) handleResetStreamFrameImpl(frame *wire.ResetStreamFrame) (bool /*completed */, error) { + if s.closedForShutdown { + return false, nil + } + if err := s.flowController.UpdateHighestReceived(frame.ByteOffset, true); err != nil { + return false, err + } + s.finalOffset = frame.ByteOffset + + // ignore duplicate RESET_STREAM frames for this stream (after checking their final offset) + if s.resetRemotely { + return false, nil + } + s.resetRemotely = true + s.resetRemotelyErr = streamCanceledError{ + errorCode: frame.ErrorCode, + error: fmt.Errorf("Stream %d was reset with error code %d", s.streamID, frame.ErrorCode), + } + s.signalRead() + return true, nil +} + +func (s *receiveStream) CloseRemote(offset protocol.ByteCount) { + s.handleStreamFrame(&wire.StreamFrame{FinBit: true, Offset: offset}) +} + +func (s *receiveStream) SetReadDeadline(t time.Time) error { + s.mutex.Lock() + s.deadline = t + s.mutex.Unlock() + s.signalRead() + return nil +} + +// CloseForShutdown closes a stream abruptly. +// It makes Read unblock (and return the error) immediately. +// The peer will NOT be informed about this: the stream is closed without sending a FIN or RESET. +func (s *receiveStream) closeForShutdown(err error) { + s.mutex.Lock() + s.closedForShutdown = true + s.closeForShutdownErr = err + s.mutex.Unlock() + s.signalRead() +} + +func (s *receiveStream) getWindowUpdate() protocol.ByteCount { + return s.flowController.GetWindowUpdate() +} + +func (s *receiveStream) streamCompleted() { + s.mutex.Lock() + finRead := s.finRead + s.mutex.Unlock() + + if !finRead { + s.flowController.Abandon() + } + s.sender.onStreamCompleted(s.streamID) +} + +// signalRead performs a non-blocking send on the readChan +func (s *receiveStream) signalRead() { + select { + case s.readChan <- struct{}{}: + default: + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/send_stream.go b/vendor/github.com/lucas-clemente/quic-go/send_stream.go new file mode 100644 index 00000000..46f24c4b --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/send_stream.go @@ -0,0 +1,332 @@ +package quic + +import ( + "context" + "fmt" + "sync" + "time" + + "github.com/lucas-clemente/quic-go/internal/flowcontrol" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type sendStreamI interface { + SendStream + handleStopSendingFrame(*wire.StopSendingFrame) + hasData() bool + popStreamFrame(maxBytes protocol.ByteCount) (*wire.StreamFrame, bool) + closeForShutdown(error) + handleMaxStreamDataFrame(*wire.MaxStreamDataFrame) +} + +type sendStream struct { + mutex sync.Mutex + + ctx context.Context + ctxCancel context.CancelFunc + + streamID protocol.StreamID + sender streamSender + + writeOffset protocol.ByteCount + + cancelWriteErr error + closeForShutdownErr error + + closedForShutdown bool // set when CloseForShutdown() is called + finishedWriting bool // set once Close() is called + canceledWrite bool // set when CancelWrite() is called, or a STOP_SENDING frame is received + finSent bool // set when a STREAM_FRAME with FIN bit has b + + dataForWriting []byte + + writeChan chan struct{} + deadline time.Time + + flowController flowcontrol.StreamFlowController + + version protocol.VersionNumber +} + +var _ SendStream = &sendStream{} +var _ sendStreamI = &sendStream{} + +func newSendStream( + streamID protocol.StreamID, + sender streamSender, + flowController flowcontrol.StreamFlowController, + version protocol.VersionNumber, +) *sendStream { + s := &sendStream{ + streamID: streamID, + sender: sender, + flowController: flowController, + writeChan: make(chan struct{}, 1), + version: version, + } + s.ctx, s.ctxCancel = context.WithCancel(context.Background()) + return s +} + +func (s *sendStream) StreamID() protocol.StreamID { + return s.streamID // same for receiveStream and sendStream +} + +func (s *sendStream) Write(p []byte) (int, error) { + s.mutex.Lock() + defer s.mutex.Unlock() + + if s.finishedWriting { + return 0, fmt.Errorf("write on closed stream %d", s.streamID) + } + if s.canceledWrite { + return 0, s.cancelWriteErr + } + if s.closeForShutdownErr != nil { + return 0, s.closeForShutdownErr + } + if !s.deadline.IsZero() && !time.Now().Before(s.deadline) { + return 0, errDeadline + } + if len(p) == 0 { + return 0, nil + } + + s.dataForWriting = p + + var ( + deadlineTimer *utils.Timer + bytesWritten int + notifiedSender bool + ) + for { + bytesWritten = len(p) - len(s.dataForWriting) + deadline := s.deadline + if !deadline.IsZero() { + if !time.Now().Before(deadline) { + s.dataForWriting = nil + return bytesWritten, errDeadline + } + if deadlineTimer == nil { + deadlineTimer = utils.NewTimer() + } + deadlineTimer.Reset(deadline) + } + if s.dataForWriting == nil || s.canceledWrite || s.closedForShutdown { + break + } + + s.mutex.Unlock() + if !notifiedSender { + s.sender.onHasStreamData(s.streamID) // must be called without holding the mutex + notifiedSender = true + } + if deadline.IsZero() { + <-s.writeChan + } else { + select { + case <-s.writeChan: + case <-deadlineTimer.Chan(): + deadlineTimer.SetRead() + } + } + s.mutex.Lock() + } + + if s.closeForShutdownErr != nil { + return bytesWritten, s.closeForShutdownErr + } else if s.cancelWriteErr != nil { + return bytesWritten, s.cancelWriteErr + } + return bytesWritten, nil +} + +// popStreamFrame returns the next STREAM frame that is supposed to be sent on this stream +// maxBytes is the maximum length this frame (including frame header) will have. +func (s *sendStream) popStreamFrame(maxBytes protocol.ByteCount) (*wire.StreamFrame, bool /* has more data to send */) { + s.mutex.Lock() + completed, frame, hasMoreData := s.popStreamFrameImpl(maxBytes) + s.mutex.Unlock() + + if completed { + s.sender.onStreamCompleted(s.streamID) + } + return frame, hasMoreData +} + +func (s *sendStream) popStreamFrameImpl(maxBytes protocol.ByteCount) (bool /* completed */, *wire.StreamFrame, bool /* has more data to send */) { + if s.canceledWrite || s.closeForShutdownErr != nil { + return false, nil, false + } + + frame := &wire.StreamFrame{ + StreamID: s.streamID, + Offset: s.writeOffset, + DataLenPresent: true, + } + maxDataLen := frame.MaxDataLen(maxBytes, s.version) + if maxDataLen == 0 { // a STREAM frame must have at least one byte of data + return false, nil, s.dataForWriting != nil + } + frame.Data, frame.FinBit = s.getDataForWriting(maxDataLen) + if len(frame.Data) == 0 && !frame.FinBit { + // this can happen if: + // - popStreamFrame is called but there's no data for writing + // - there's data for writing, but the stream is stream-level flow control blocked + // - there's data for writing, but the stream is connection-level flow control blocked + if s.dataForWriting == nil { + return false, nil, false + } + if isBlocked, offset := s.flowController.IsNewlyBlocked(); isBlocked { + s.sender.queueControlFrame(&wire.StreamDataBlockedFrame{ + StreamID: s.streamID, + DataLimit: offset, + }) + return false, nil, false + } + return false, nil, true + } + if frame.FinBit { + s.finSent = true + } + return frame.FinBit, frame, s.dataForWriting != nil +} + +func (s *sendStream) hasData() bool { + s.mutex.Lock() + hasData := len(s.dataForWriting) > 0 + s.mutex.Unlock() + return hasData +} + +func (s *sendStream) getDataForWriting(maxBytes protocol.ByteCount) ([]byte, bool /* should send FIN */) { + if s.dataForWriting == nil { + return nil, s.finishedWriting && !s.finSent + } + + maxBytes = utils.MinByteCount(maxBytes, s.flowController.SendWindowSize()) + if maxBytes == 0 { + return nil, false + } + + var ret []byte + if protocol.ByteCount(len(s.dataForWriting)) > maxBytes { + ret = make([]byte, int(maxBytes)) + copy(ret, s.dataForWriting[:maxBytes]) + s.dataForWriting = s.dataForWriting[maxBytes:] + } else { + ret = make([]byte, len(s.dataForWriting)) + copy(ret, s.dataForWriting) + s.dataForWriting = nil + s.signalWrite() + } + s.writeOffset += protocol.ByteCount(len(ret)) + s.flowController.AddBytesSent(protocol.ByteCount(len(ret))) + return ret, s.finishedWriting && s.dataForWriting == nil && !s.finSent +} + +func (s *sendStream) Close() error { + s.mutex.Lock() + if s.canceledWrite { + s.mutex.Unlock() + return fmt.Errorf("Close called for canceled stream %d", s.streamID) + } + s.finishedWriting = true + s.mutex.Unlock() + + s.sender.onHasStreamData(s.streamID) // need to send the FIN, must be called without holding the mutex + s.ctxCancel() + return nil +} + +func (s *sendStream) CancelWrite(errorCode protocol.ApplicationErrorCode) { + s.mutex.Lock() + completed := s.cancelWriteImpl(errorCode, fmt.Errorf("Write on stream %d canceled with error code %d", s.streamID, errorCode)) + s.mutex.Unlock() + + if completed { + s.sender.onStreamCompleted(s.streamID) // must be called without holding the mutex + } +} + +// must be called after locking the mutex +func (s *sendStream) cancelWriteImpl(errorCode protocol.ApplicationErrorCode, writeErr error) bool /*completed */ { + if s.canceledWrite || s.finishedWriting { + return false + } + s.canceledWrite = true + s.cancelWriteErr = writeErr + s.signalWrite() + s.sender.queueControlFrame(&wire.ResetStreamFrame{ + StreamID: s.streamID, + ByteOffset: s.writeOffset, + ErrorCode: errorCode, + }) + // TODO(#991): cancel retransmissions for this stream + s.ctxCancel() + return true +} + +func (s *sendStream) handleMaxStreamDataFrame(frame *wire.MaxStreamDataFrame) { + s.mutex.Lock() + hasStreamData := s.dataForWriting != nil + s.mutex.Unlock() + + s.flowController.UpdateSendWindow(frame.ByteOffset) + if hasStreamData { + s.sender.onHasStreamData(s.streamID) + } +} + +func (s *sendStream) handleStopSendingFrame(frame *wire.StopSendingFrame) { + s.mutex.Lock() + completed := s.handleStopSendingFrameImpl(frame) + s.mutex.Unlock() + + if completed { + s.sender.onStreamCompleted(s.streamID) + } +} + +// must be called after locking the mutex +func (s *sendStream) handleStopSendingFrameImpl(frame *wire.StopSendingFrame) bool /*completed*/ { + writeErr := streamCanceledError{ + errorCode: frame.ErrorCode, + error: fmt.Errorf("Stream %d was reset with error code %d", s.streamID, frame.ErrorCode), + } + return s.cancelWriteImpl(errorCodeStopping, writeErr) +} + +func (s *sendStream) Context() context.Context { + return s.ctx +} + +func (s *sendStream) SetWriteDeadline(t time.Time) error { + s.mutex.Lock() + s.deadline = t + s.mutex.Unlock() + s.signalWrite() + return nil +} + +// CloseForShutdown closes a stream abruptly. +// It makes Write unblock (and return the error) immediately. +// The peer will NOT be informed about this: the stream is closed without sending a FIN or RST. +func (s *sendStream) closeForShutdown(err error) { + s.mutex.Lock() + s.closedForShutdown = true + s.closeForShutdownErr = err + s.mutex.Unlock() + s.signalWrite() + s.ctxCancel() +} + +// signalWrite performs a non-blocking send on the writeChan +func (s *sendStream) signalWrite() { + select { + case s.writeChan <- struct{}{}: + default: + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/server.go b/vendor/github.com/lucas-clemente/quic-go/server.go new file mode 100644 index 00000000..fe2f9388 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/server.go @@ -0,0 +1,558 @@ +package quic + +import ( + "bytes" + "crypto/tls" + "errors" + "fmt" + "io" + "net" + "sync" + "sync/atomic" + "time" + + "github.com/lucas-clemente/quic-go/internal/handshake" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +// packetHandler handles packets +type packetHandler interface { + handlePacket(*receivedPacket) + io.Closer + destroy(error) + getPerspective() protocol.Perspective +} + +type unknownPacketHandler interface { + handlePacket(*receivedPacket) + closeWithError(error) error +} + +type packetHandlerManager interface { + io.Closer + Add(protocol.ConnectionID, packetHandler) + Retire(protocol.ConnectionID) + Remove(protocol.ConnectionID) + AddResetToken([16]byte, packetHandler) + RemoveResetToken([16]byte) + GetStatelessResetToken(protocol.ConnectionID) [16]byte + SetServer(unknownPacketHandler) + CloseServer() +} + +type quicSession interface { + Session + handlePacket(*receivedPacket) + GetVersion() protocol.VersionNumber + getPerspective() protocol.Perspective + run() error + destroy(error) + closeForRecreating() protocol.PacketNumber + closeRemote(error) +} + +type sessionRunner interface { + OnHandshakeComplete(Session) + Retire(protocol.ConnectionID) + Remove(protocol.ConnectionID) + AddResetToken([16]byte, packetHandler) + RemoveResetToken([16]byte) +} + +type runner struct { + packetHandlerManager + + onHandshakeCompleteImpl func(Session) +} + +func (r *runner) OnHandshakeComplete(s Session) { r.onHandshakeCompleteImpl(s) } + +var _ sessionRunner = &runner{} + +// A Listener of QUIC +type server struct { + mutex sync.Mutex + + tlsConf *tls.Config + config *Config + + conn net.PacketConn + // If the server is started with ListenAddr, we create a packet conn. + // If it is started with Listen, we take a packet conn as a parameter. + createdPacketConn bool + + cookieGenerator *handshake.CookieGenerator + + sessionHandler packetHandlerManager + + // set as a member, so they can be set in the tests + newSession func(connection, sessionRunner, protocol.ConnectionID /* original connection ID */, protocol.ConnectionID /* destination connection ID */, protocol.ConnectionID /* source connection ID */, *Config, *tls.Config, *handshake.TransportParameters, utils.Logger, protocol.VersionNumber) (quicSession, error) + + serverError error + errorChan chan struct{} + closed bool + + sessionQueue chan Session + sessionQueueLen int32 // to be used as an atomic + + sessionRunner sessionRunner + + logger utils.Logger +} + +var _ Listener = &server{} +var _ unknownPacketHandler = &server{} + +// ListenAddr creates a QUIC server listening on a given address. +// The tls.Config must not be nil and must contain a certificate configuration. +// The quic.Config may be nil, in that case the default values will be used. +func ListenAddr(addr string, tlsConf *tls.Config, config *Config) (Listener, error) { + udpAddr, err := net.ResolveUDPAddr("udp", addr) + if err != nil { + return nil, err + } + conn, err := net.ListenUDP("udp", udpAddr) + if err != nil { + return nil, err + } + serv, err := listen(conn, tlsConf, config) + if err != nil { + return nil, err + } + serv.createdPacketConn = true + return serv, nil +} + +// Listen listens for QUIC connections on a given net.PacketConn. +// A single PacketConn only be used for a single call to Listen. +// The PacketConn can be used for simultaneous calls to Dial. +// QUIC connection IDs are used for demultiplexing the different connections. +// The tls.Config must not be nil and must contain a certificate configuration. +// The quic.Config may be nil, in that case the default values will be used. +func Listen(conn net.PacketConn, tlsConf *tls.Config, config *Config) (Listener, error) { + return listen(conn, tlsConf, config) +} + +func listen(conn net.PacketConn, tlsConf *tls.Config, config *Config) (*server, error) { + // TODO(#1655): only require that tls.Config.Certificates or tls.Config.GetCertificate is set + if tlsConf == nil || len(tlsConf.Certificates) == 0 { + return nil, errors.New("quic: Certificates not set in tls.Config") + } + config = populateServerConfig(config) + for _, v := range config.Versions { + if !protocol.IsValidVersion(v) { + return nil, fmt.Errorf("%s is not a valid QUIC version", v) + } + } + + sessionHandler, err := getMultiplexer().AddConn(conn, config.ConnectionIDLength, config.StatelessResetKey) + if err != nil { + return nil, err + } + s := &server{ + conn: conn, + tlsConf: tlsConf, + config: config, + sessionHandler: sessionHandler, + sessionQueue: make(chan Session), + errorChan: make(chan struct{}), + newSession: newSession, + logger: utils.DefaultLogger.WithPrefix("server"), + } + if err := s.setup(); err != nil { + return nil, err + } + sessionHandler.SetServer(s) + s.logger.Debugf("Listening for %s connections on %s", conn.LocalAddr().Network(), conn.LocalAddr().String()) + return s, nil +} + +func (s *server) setup() error { + s.sessionRunner = &runner{ + packetHandlerManager: s.sessionHandler, + onHandshakeCompleteImpl: func(sess Session) { + go func() { + atomic.AddInt32(&s.sessionQueueLen, 1) + defer atomic.AddInt32(&s.sessionQueueLen, -1) + select { + case s.sessionQueue <- sess: + // blocks until the session is accepted + case <-sess.Context().Done(): + // don't pass sessions that were already closed to Accept() + } + }() + }, + } + cookieGenerator, err := handshake.NewCookieGenerator() + if err != nil { + return err + } + s.cookieGenerator = cookieGenerator + return nil +} + +var defaultAcceptCookie = func(clientAddr net.Addr, cookie *Cookie) bool { + if cookie == nil { + return false + } + if time.Now().After(cookie.SentTime.Add(protocol.CookieExpiryTime)) { + return false + } + var sourceAddr string + if udpAddr, ok := clientAddr.(*net.UDPAddr); ok { + sourceAddr = udpAddr.IP.String() + } else { + sourceAddr = clientAddr.String() + } + return sourceAddr == cookie.RemoteAddr +} + +// populateServerConfig populates fields in the quic.Config with their default values, if none are set +// it may be called with nil +func populateServerConfig(config *Config) *Config { + if config == nil { + config = &Config{} + } + versions := config.Versions + if len(versions) == 0 { + versions = protocol.SupportedVersions + } + + vsa := defaultAcceptCookie + if config.AcceptCookie != nil { + vsa = config.AcceptCookie + } + + handshakeTimeout := protocol.DefaultHandshakeTimeout + if config.HandshakeTimeout != 0 { + handshakeTimeout = config.HandshakeTimeout + } + idleTimeout := protocol.DefaultIdleTimeout + if config.IdleTimeout != 0 { + idleTimeout = config.IdleTimeout + } + + maxReceiveStreamFlowControlWindow := config.MaxReceiveStreamFlowControlWindow + if maxReceiveStreamFlowControlWindow == 0 { + maxReceiveStreamFlowControlWindow = protocol.DefaultMaxReceiveStreamFlowControlWindow + } + maxReceiveConnectionFlowControlWindow := config.MaxReceiveConnectionFlowControlWindow + if maxReceiveConnectionFlowControlWindow == 0 { + maxReceiveConnectionFlowControlWindow = protocol.DefaultMaxReceiveConnectionFlowControlWindow + } + maxIncomingStreams := config.MaxIncomingStreams + if maxIncomingStreams == 0 { + maxIncomingStreams = protocol.DefaultMaxIncomingStreams + } else if maxIncomingStreams < 0 { + maxIncomingStreams = 0 + } + maxIncomingUniStreams := config.MaxIncomingUniStreams + if maxIncomingUniStreams == 0 { + maxIncomingUniStreams = protocol.DefaultMaxIncomingUniStreams + } else if maxIncomingUniStreams < 0 { + maxIncomingUniStreams = 0 + } + connIDLen := config.ConnectionIDLength + if connIDLen == 0 { + connIDLen = protocol.DefaultConnectionIDLength + } + + return &Config{ + Versions: versions, + HandshakeTimeout: handshakeTimeout, + IdleTimeout: idleTimeout, + AcceptCookie: vsa, + KeepAlive: config.KeepAlive, + MaxReceiveStreamFlowControlWindow: maxReceiveStreamFlowControlWindow, + MaxReceiveConnectionFlowControlWindow: maxReceiveConnectionFlowControlWindow, + MaxIncomingStreams: maxIncomingStreams, + MaxIncomingUniStreams: maxIncomingUniStreams, + ConnectionIDLength: connIDLen, + StatelessResetKey: config.StatelessResetKey, + } +} + +// Accept returns newly openend sessions +func (s *server) Accept() (Session, error) { + var sess Session + select { + case sess = <-s.sessionQueue: + return sess, nil + case <-s.errorChan: + return nil, s.serverError + } +} + +// Close the server +func (s *server) Close() error { + s.mutex.Lock() + defer s.mutex.Unlock() + if s.closed { + return nil + } + return s.closeWithMutex() +} + +func (s *server) closeWithMutex() error { + s.sessionHandler.CloseServer() + if s.serverError == nil { + s.serverError = errors.New("server closed") + } + var err error + // If the server was started with ListenAddr, we created the packet conn. + // We need to close it in order to make the go routine reading from that conn return. + if s.createdPacketConn { + err = s.sessionHandler.Close() + } + s.closed = true + close(s.errorChan) + return err +} + +func (s *server) closeWithError(e error) error { + s.mutex.Lock() + defer s.mutex.Unlock() + if s.closed { + return nil + } + s.serverError = e + return s.closeWithMutex() +} + +// Addr returns the server's network address +func (s *server) Addr() net.Addr { + return s.conn.LocalAddr() +} + +func (s *server) handlePacket(p *receivedPacket) { + go func() { + if shouldReleaseBuffer := s.handlePacketImpl(p); !shouldReleaseBuffer { + p.buffer.Release() + } + }() +} + +func (s *server) handlePacketImpl(p *receivedPacket) bool /* was the packet passed on to a session */ { + if len(p.data) < protocol.MinInitialPacketSize { + s.logger.Debugf("Dropping a packet that is too small to be a valid Initial (%d bytes)", len(p.data)) + return false + } + // If we're creating a new session, the packet will be passed to the session. + // The header will then be parsed again. + hdr, _, _, err := wire.ParsePacket(p.data, s.config.ConnectionIDLength) + if err != nil { + s.logger.Debugf("Error parsing packet: %s", err) + return false + } + // Short header packets should never end up here in the first place + if !hdr.IsLongHeader { + return false + } + // send a Version Negotiation Packet if the client is speaking a different protocol version + if !protocol.IsSupportedVersion(s.config.Versions, hdr.Version) { + s.sendVersionNegotiationPacket(p, hdr) + return false + } + if hdr.IsLongHeader && hdr.Type != protocol.PacketTypeInitial { + // Drop long header packets. + // There's litte point in sending a Stateless Reset, since the client + // might not have received the token yet. + return false + } + + s.logger.Debugf("<- Received Initial packet.") + + sess, connID, err := s.handleInitialImpl(p, hdr) + if err != nil { + s.logger.Errorf("Error occurred handling initial packet: %s", err) + return false + } + if sess == nil { // a retry was done, or the connection attempt was rejected + return false + } + // Don't put the packet buffer back if a new session was created. + // The session will handle the packet and take of that. + s.sessionHandler.Add(connID, sess) + return true +} + +func (s *server) handleInitialImpl(p *receivedPacket, hdr *wire.Header) (quicSession, protocol.ConnectionID, error) { + if len(hdr.Token) == 0 && hdr.DestConnectionID.Len() < protocol.MinConnectionIDLenInitial { + return nil, nil, errors.New("too short connection ID") + } + + var cookie *Cookie + var origDestConnectionID protocol.ConnectionID + if len(hdr.Token) > 0 { + c, err := s.cookieGenerator.DecodeToken(hdr.Token) + if err == nil { + cookie = &Cookie{ + RemoteAddr: c.RemoteAddr, + SentTime: c.SentTime, + } + origDestConnectionID = c.OriginalDestConnectionID + } + } + if !s.config.AcceptCookie(p.remoteAddr, cookie) { + // Log the Initial packet now. + // If no Retry is sent, the packet will be logged by the session. + (&wire.ExtendedHeader{Header: *hdr}).Log(s.logger) + return nil, nil, s.sendRetry(p.remoteAddr, hdr) + } + + if queueLen := atomic.LoadInt32(&s.sessionQueueLen); queueLen >= protocol.MaxAcceptQueueSize { + s.logger.Debugf("Rejecting new connection. Server currently busy. Accept queue length: %d (max %d)", queueLen, protocol.MaxAcceptQueueSize) + return nil, nil, s.sendServerBusy(p.remoteAddr, hdr) + } + + connID, err := protocol.GenerateConnectionID(s.config.ConnectionIDLength) + if err != nil { + return nil, nil, err + } + s.logger.Debugf("Changing connection ID to %s.", connID) + sess, err := s.createNewSession( + p.remoteAddr, + origDestConnectionID, + hdr.DestConnectionID, + hdr.SrcConnectionID, + connID, + hdr.Version, + ) + if err != nil { + return nil, nil, err + } + sess.handlePacket(p) + return sess, connID, nil +} + +func (s *server) createNewSession( + remoteAddr net.Addr, + origDestConnID protocol.ConnectionID, + clientDestConnID protocol.ConnectionID, + destConnID protocol.ConnectionID, + srcConnID protocol.ConnectionID, + version protocol.VersionNumber, +) (quicSession, error) { + token := s.sessionHandler.GetStatelessResetToken(srcConnID) + params := &handshake.TransportParameters{ + InitialMaxStreamDataBidiLocal: protocol.InitialMaxStreamData, + InitialMaxStreamDataBidiRemote: protocol.InitialMaxStreamData, + InitialMaxStreamDataUni: protocol.InitialMaxStreamData, + InitialMaxData: protocol.InitialMaxData, + IdleTimeout: s.config.IdleTimeout, + MaxBidiStreams: uint64(s.config.MaxIncomingStreams), + MaxUniStreams: uint64(s.config.MaxIncomingUniStreams), + AckDelayExponent: protocol.AckDelayExponent, + DisableMigration: true, + StatelessResetToken: &token, + OriginalConnectionID: origDestConnID, + } + sess, err := s.newSession( + &conn{pconn: s.conn, currentAddr: remoteAddr}, + s.sessionRunner, + clientDestConnID, + destConnID, + srcConnID, + s.config, + s.tlsConf, + params, + s.logger, + version, + ) + if err != nil { + return nil, err + } + go sess.run() + return sess, nil +} + +func (s *server) sendRetry(remoteAddr net.Addr, hdr *wire.Header) error { + token, err := s.cookieGenerator.NewToken(remoteAddr, hdr.DestConnectionID) + if err != nil { + return err + } + connID, err := protocol.GenerateConnectionID(s.config.ConnectionIDLength) + if err != nil { + return err + } + replyHdr := &wire.ExtendedHeader{} + replyHdr.IsLongHeader = true + replyHdr.Type = protocol.PacketTypeRetry + replyHdr.Version = hdr.Version + replyHdr.SrcConnectionID = connID + replyHdr.DestConnectionID = hdr.SrcConnectionID + replyHdr.OrigDestConnectionID = hdr.DestConnectionID + replyHdr.Token = token + s.logger.Debugf("Changing connection ID to %s.\n-> Sending Retry", connID) + replyHdr.Log(s.logger) + buf := &bytes.Buffer{} + if err := replyHdr.Write(buf, hdr.Version); err != nil { + return err + } + if _, err := s.conn.WriteTo(buf.Bytes(), remoteAddr); err != nil { + s.logger.Debugf("Error sending Retry: %s", err) + } + return nil +} + +func (s *server) sendServerBusy(remoteAddr net.Addr, hdr *wire.Header) error { + sealer, _, err := handshake.NewInitialAEAD(hdr.DestConnectionID, protocol.PerspectiveServer) + if err != nil { + return err + } + packetBuffer := getPacketBuffer() + defer packetBuffer.Release() + buf := bytes.NewBuffer(packetBuffer.Slice[:0]) + + ccf := &wire.ConnectionCloseFrame{ErrorCode: qerr.ServerBusy} + + replyHdr := &wire.ExtendedHeader{} + replyHdr.IsLongHeader = true + replyHdr.Type = protocol.PacketTypeInitial + replyHdr.Version = hdr.Version + replyHdr.SrcConnectionID = hdr.DestConnectionID + replyHdr.DestConnectionID = hdr.SrcConnectionID + replyHdr.PacketNumberLen = protocol.PacketNumberLen4 + replyHdr.Length = 4 /* packet number len */ + ccf.Length(hdr.Version) + protocol.ByteCount(sealer.Overhead()) + if err := replyHdr.Write(buf, hdr.Version); err != nil { + return err + } + payloadOffset := buf.Len() + + if err := ccf.Write(buf, hdr.Version); err != nil { + return err + } + + raw := buf.Bytes() + _ = sealer.Seal(raw[payloadOffset:payloadOffset], raw[payloadOffset:], replyHdr.PacketNumber, raw[:payloadOffset]) + raw = raw[0 : buf.Len()+sealer.Overhead()] + + pnOffset := payloadOffset - int(replyHdr.PacketNumberLen) + sealer.EncryptHeader( + raw[pnOffset+4:pnOffset+4+16], + &raw[0], + raw[pnOffset:payloadOffset], + ) + + replyHdr.Log(s.logger) + wire.LogFrame(s.logger, ccf, true) + if _, err := s.conn.WriteTo(raw, remoteAddr); err != nil { + s.logger.Debugf("Error rejecting connection: %s", err) + } + return nil +} + +func (s *server) sendVersionNegotiationPacket(p *receivedPacket, hdr *wire.Header) { + s.logger.Debugf("Client offered version %s, sending Version Negotiation", hdr.Version) + data, err := wire.ComposeVersionNegotiation(hdr.SrcConnectionID, hdr.DestConnectionID, s.config.Versions) + if err != nil { + s.logger.Debugf("Error composing Version Negotiation: %s", err) + return + } + if _, err := s.conn.WriteTo(data, p.remoteAddr); err != nil { + s.logger.Debugf("Error sending Version Negotiation: %s", err) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/session.go b/vendor/github.com/lucas-clemente/quic-go/session.go new file mode 100644 index 00000000..ba1f5566 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/session.go @@ -0,0 +1,1287 @@ +package quic + +import ( + "bytes" + "context" + "crypto/tls" + "errors" + "fmt" + "io" + "net" + "reflect" + "sync" + "time" + + "github.com/lucas-clemente/quic-go/internal/ackhandler" + "github.com/lucas-clemente/quic-go/internal/congestion" + "github.com/lucas-clemente/quic-go/internal/flowcontrol" + "github.com/lucas-clemente/quic-go/internal/handshake" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/utils" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type unpacker interface { + Unpack(hdr *wire.Header, data []byte) (*unpackedPacket, error) +} + +type streamGetter interface { + GetOrOpenReceiveStream(protocol.StreamID) (receiveStreamI, error) + GetOrOpenSendStream(protocol.StreamID) (sendStreamI, error) +} + +type streamManager interface { + GetOrOpenSendStream(protocol.StreamID) (sendStreamI, error) + GetOrOpenReceiveStream(protocol.StreamID) (receiveStreamI, error) + OpenStream() (Stream, error) + OpenUniStream() (SendStream, error) + OpenStreamSync() (Stream, error) + OpenUniStreamSync() (SendStream, error) + AcceptStream() (Stream, error) + AcceptUniStream() (ReceiveStream, error) + DeleteStream(protocol.StreamID) error + UpdateLimits(*handshake.TransportParameters) error + HandleMaxStreamsFrame(*wire.MaxStreamsFrame) error + CloseWithError(error) +} + +type cryptoStreamHandler interface { + RunHandshake() error + ChangeConnectionID(protocol.ConnectionID) error + io.Closer + ConnectionState() tls.ConnectionState +} + +type receivedPacket struct { + remoteAddr net.Addr + rcvTime time.Time + data []byte + + buffer *packetBuffer +} + +func (p *receivedPacket) Clone() *receivedPacket { + return &receivedPacket{ + remoteAddr: p.remoteAddr, + rcvTime: p.rcvTime, + data: p.data, + buffer: p.buffer, + } +} + +type closeError struct { + err error + remote bool + sendClose bool +} + +var errCloseForRecreating = errors.New("closing session in order to recreate it") + +// A Session is a QUIC session +type session struct { + sessionRunner sessionRunner + + destConnID protocol.ConnectionID + origDestConnID protocol.ConnectionID // if the server sends a Retry, this is the connection ID we used initially + srcConnID protocol.ConnectionID + + perspective protocol.Perspective + initialVersion protocol.VersionNumber // if version negotiation is performed, this is the version we initially tried + version protocol.VersionNumber + config *Config + + conn connection + + streamsMap streamManager + + rttStats *congestion.RTTStats + + cryptoStreamManager *cryptoStreamManager + sentPacketHandler ackhandler.SentPacketHandler + receivedPacketHandler ackhandler.ReceivedPacketHandler + framer framer + windowUpdateQueue *windowUpdateQueue + connFlowController flowcontrol.ConnectionFlowController + + unpacker unpacker + frameParser wire.FrameParser + packer packer + + cryptoStreamHandler cryptoStreamHandler + + receivedPackets chan *receivedPacket + sendingScheduled chan struct{} + + closeOnce sync.Once + closed utils.AtomicBool + // closeChan is used to notify the run loop that it should terminate + closeChan chan closeError + connectionClosePacket *packedPacket + packetsReceivedAfterClose int + + ctx context.Context + ctxCancel context.CancelFunc + + undecryptablePackets []*receivedPacket + + clientHelloWritten <-chan struct{} + handshakeCompleteChan chan struct{} // is closed when the handshake completes + handshakeComplete bool + + receivedRetry bool + receivedFirstPacket bool + receivedFirstForwardSecurePacket bool + + sessionCreationTime time.Time + // The idle timeout is set based on the max of the time we received the last packet... + lastPacketReceivedTime time.Time + // ... and the time we sent a new retransmittable packet after receiving a packet. + firstRetransmittablePacketAfterIdleSentTime time.Time + // pacingDeadline is the time when the next packet should be sent + pacingDeadline time.Time + + peerParams *handshake.TransportParameters + + timer *utils.Timer + // keepAlivePingSent stores whether a Ping frame was sent to the peer or not + // it is reset as soon as we receive a packet from the peer + keepAlivePingSent bool + + logger utils.Logger +} + +var _ Session = &session{} +var _ streamSender = &session{} + +var newSession = func( + conn connection, + runner sessionRunner, + clientDestConnID protocol.ConnectionID, + destConnID protocol.ConnectionID, + srcConnID protocol.ConnectionID, + conf *Config, + tlsConf *tls.Config, + params *handshake.TransportParameters, + logger utils.Logger, + v protocol.VersionNumber, +) (quicSession, error) { + s := &session{ + conn: conn, + sessionRunner: runner, + config: conf, + srcConnID: srcConnID, + destConnID: destConnID, + perspective: protocol.PerspectiveServer, + handshakeCompleteChan: make(chan struct{}), + logger: logger, + version: v, + } + s.preSetup() + s.sentPacketHandler = ackhandler.NewSentPacketHandler(0, s.rttStats, s.logger) + s.streamsMap = newStreamsMap( + s, + s.newFlowController, + uint64(s.config.MaxIncomingStreams), + uint64(s.config.MaxIncomingUniStreams), + s.perspective, + s.version, + ) + s.framer = newFramer(s.streamsMap, s.version) + initialStream := newCryptoStream() + handshakeStream := newCryptoStream() + oneRTTStream := newPostHandshakeCryptoStream(s.framer) + cs, err := handshake.NewCryptoSetupServer( + initialStream, + handshakeStream, + oneRTTStream, + clientDestConnID, + conn.RemoteAddr(), + params, + s.processTransportParameters, + tlsConf, + logger, + ) + if err != nil { + return nil, err + } + s.cryptoStreamHandler = cs + s.packer = newPacketPacker( + s.destConnID, + s.srcConnID, + initialStream, + handshakeStream, + s.sentPacketHandler, + s.RemoteAddr(), + cs, + s.framer, + s.receivedPacketHandler, + s.perspective, + s.version, + ) + s.cryptoStreamManager = newCryptoStreamManager(cs, initialStream, handshakeStream, oneRTTStream) + + if err := s.postSetup(); err != nil { + return nil, err + } + s.unpacker = newPacketUnpacker(cs, s.version) + return s, nil +} + +// declare this as a variable, such that we can it mock it in the tests +var newClientSession = func( + conn connection, + runner sessionRunner, + destConnID protocol.ConnectionID, + srcConnID protocol.ConnectionID, + conf *Config, + tlsConf *tls.Config, + initialPacketNumber protocol.PacketNumber, + params *handshake.TransportParameters, + initialVersion protocol.VersionNumber, + logger utils.Logger, + v protocol.VersionNumber, +) (quicSession, error) { + s := &session{ + conn: conn, + sessionRunner: runner, + config: conf, + srcConnID: srcConnID, + destConnID: destConnID, + perspective: protocol.PerspectiveClient, + handshakeCompleteChan: make(chan struct{}), + logger: logger, + initialVersion: initialVersion, + version: v, + } + s.preSetup() + s.sentPacketHandler = ackhandler.NewSentPacketHandler(initialPacketNumber, s.rttStats, s.logger) + initialStream := newCryptoStream() + handshakeStream := newCryptoStream() + oneRTTStream := newPostHandshakeCryptoStream(s.framer) + cs, clientHelloWritten, err := handshake.NewCryptoSetupClient( + initialStream, + handshakeStream, + oneRTTStream, + s.destConnID, + conn.RemoteAddr(), + params, + s.processTransportParameters, + tlsConf, + logger, + ) + if err != nil { + return nil, err + } + s.clientHelloWritten = clientHelloWritten + s.cryptoStreamHandler = cs + s.cryptoStreamManager = newCryptoStreamManager(cs, initialStream, handshakeStream, oneRTTStream) + s.unpacker = newPacketUnpacker(cs, s.version) + s.streamsMap = newStreamsMap( + s, + s.newFlowController, + uint64(s.config.MaxIncomingStreams), + uint64(s.config.MaxIncomingUniStreams), + s.perspective, + s.version, + ) + s.framer = newFramer(s.streamsMap, s.version) + s.packer = newPacketPacker( + s.destConnID, + s.srcConnID, + initialStream, + handshakeStream, + s.sentPacketHandler, + s.RemoteAddr(), + cs, + s.framer, + s.receivedPacketHandler, + s.perspective, + s.version, + ) + return s, s.postSetup() +} + +func (s *session) preSetup() { + s.frameParser = wire.NewFrameParser(s.version) + s.rttStats = &congestion.RTTStats{} + s.receivedPacketHandler = ackhandler.NewReceivedPacketHandler(s.rttStats, s.logger, s.version) + s.connFlowController = flowcontrol.NewConnectionFlowController( + protocol.InitialMaxData, + protocol.ByteCount(s.config.MaxReceiveConnectionFlowControlWindow), + s.onHasConnectionWindowUpdate, + s.rttStats, + s.logger, + ) +} + +func (s *session) postSetup() error { + s.receivedPackets = make(chan *receivedPacket, protocol.MaxSessionUnprocessedPackets) + s.closeChan = make(chan closeError, 1) + s.sendingScheduled = make(chan struct{}, 1) + s.undecryptablePackets = make([]*receivedPacket, 0, protocol.MaxUndecryptablePackets) + s.ctx, s.ctxCancel = context.WithCancel(context.Background()) + + s.timer = utils.NewTimer() + now := time.Now() + s.lastPacketReceivedTime = now + s.sessionCreationTime = now + + s.windowUpdateQueue = newWindowUpdateQueue(s.streamsMap, s.connFlowController, s.framer.QueueControlFrame) + return nil +} + +// run the session main loop +func (s *session) run() error { + defer s.ctxCancel() + + go func() { + if err := s.cryptoStreamHandler.RunHandshake(); err != nil { + s.closeLocal(err) + return + } + close(s.handshakeCompleteChan) + }() + if s.perspective == protocol.PerspectiveClient { + select { + case <-s.clientHelloWritten: + s.scheduleSending() + case closeErr := <-s.closeChan: + // put the close error back into the channel, so that the run loop can receive it + s.closeChan <- closeErr + } + } + + var closeErr closeError + +runLoop: + for { + // Close immediately if requested + select { + case closeErr = <-s.closeChan: + break runLoop + case <-s.handshakeCompleteChan: + s.handleHandshakeComplete() + default: + } + + s.maybeResetTimer() + + select { + case closeErr = <-s.closeChan: + break runLoop + case <-s.timer.Chan(): + s.timer.SetRead() + // We do all the interesting stuff after the switch statement, so + // nothing to see here. + case <-s.sendingScheduled: + // We do all the interesting stuff after the switch statement, so + // nothing to see here. + case p := <-s.receivedPackets: + // Only reset the timers if this packet was actually processed. + // This avoids modifying any state when handling undecryptable packets, + // which could be injected by an attacker. + if wasProcessed := s.handlePacketImpl(p); !wasProcessed { + continue + } + case <-s.handshakeCompleteChan: + s.handleHandshakeComplete() + } + + now := time.Now() + if timeout := s.sentPacketHandler.GetAlarmTimeout(); !timeout.IsZero() && timeout.Before(now) { + // This could cause packets to be retransmitted. + // Check it before trying to send packets. + if err := s.sentPacketHandler.OnAlarm(); err != nil { + s.closeLocal(err) + } + } + + var pacingDeadline time.Time + if s.pacingDeadline.IsZero() { // the timer didn't have a pacing deadline set + pacingDeadline = s.sentPacketHandler.TimeUntilSend() + } + if s.config.KeepAlive && !s.keepAlivePingSent && s.handshakeComplete && s.firstRetransmittablePacketAfterIdleSentTime.IsZero() && time.Since(s.lastPacketReceivedTime) >= s.peerParams.IdleTimeout/2 { + // send a PING frame since there is no activity in the session + s.logger.Debugf("Sending a keep-alive ping to keep the connection alive.") + s.framer.QueueControlFrame(&wire.PingFrame{}) + s.keepAlivePingSent = true + } else if !pacingDeadline.IsZero() && now.Before(pacingDeadline) { + // If we get to this point before the pacing deadline, we should wait until that deadline. + // This can happen when scheduleSending is called, or a packet is received. + // Set the timer and restart the run loop. + s.pacingDeadline = pacingDeadline + continue + } + + if !s.handshakeComplete && now.Sub(s.sessionCreationTime) >= s.config.HandshakeTimeout { + s.destroy(qerr.TimeoutError("Handshake did not complete in time")) + continue + } + if s.handshakeComplete && now.Sub(s.idleTimeoutStartTime()) >= s.config.IdleTimeout { + s.destroy(qerr.TimeoutError("No recent network activity")) + continue + } + + if err := s.sendPackets(); err != nil { + s.closeLocal(err) + } + } + + s.handleCloseError(closeErr) + s.closed.Set(true) + s.logger.Infof("Connection %s closed.", s.srcConnID) + s.cryptoStreamHandler.Close() + return closeErr.err +} + +func (s *session) Context() context.Context { + return s.ctx +} + +func (s *session) ConnectionState() tls.ConnectionState { + return s.cryptoStreamHandler.ConnectionState() +} + +func (s *session) maybeResetTimer() { + var deadline time.Time + if s.config.KeepAlive && s.handshakeComplete && !s.keepAlivePingSent { + deadline = s.idleTimeoutStartTime().Add(s.peerParams.IdleTimeout / 2) + } else { + deadline = s.idleTimeoutStartTime().Add(s.config.IdleTimeout) + } + + if ackAlarm := s.receivedPacketHandler.GetAlarmTimeout(); !ackAlarm.IsZero() { + deadline = utils.MinTime(deadline, ackAlarm) + } + if lossTime := s.sentPacketHandler.GetAlarmTimeout(); !lossTime.IsZero() { + deadline = utils.MinTime(deadline, lossTime) + } + if !s.handshakeComplete { + handshakeDeadline := s.sessionCreationTime.Add(s.config.HandshakeTimeout) + deadline = utils.MinTime(deadline, handshakeDeadline) + } + if !s.pacingDeadline.IsZero() { + deadline = utils.MinTime(deadline, s.pacingDeadline) + } + + s.timer.Reset(deadline) +} + +func (s *session) idleTimeoutStartTime() time.Time { + return utils.MaxTime(s.lastPacketReceivedTime, s.firstRetransmittablePacketAfterIdleSentTime) +} + +func (s *session) handleHandshakeComplete() { + s.handshakeComplete = true + s.handshakeCompleteChan = nil // prevent this case from ever being selected again + s.sessionRunner.OnHandshakeComplete(s) + + // The client completes the handshake first (after sending the CFIN). + // We need to make sure they learn about the peer completing the handshake, + // in order to stop retransmitting handshake packets. + // They will stop retransmitting handshake packets when receiving the first forward-secure packet. + // We need to make sure that a retransmittable forward-secure packet is sent, + // independent from the application protocol. + if s.perspective == protocol.PerspectiveServer { + s.queueControlFrame(&wire.PingFrame{}) + s.sentPacketHandler.SetHandshakeComplete() + } +} + +func (s *session) handlePacketImpl(rp *receivedPacket) bool { + var counter uint8 + var lastConnID protocol.ConnectionID + var processed bool + data := rp.data + p := rp + for len(data) > 0 { + if counter > 0 { + p = p.Clone() + p.data = data + } + + hdr, packetData, rest, err := wire.ParsePacket(p.data, s.srcConnID.Len()) + if err != nil { + s.logger.Debugf("error parsing packet: %s", err) + break + } + + if counter > 0 && !hdr.DestConnectionID.Equal(lastConnID) { + s.logger.Debugf("coalesced packet has different destination connection ID: %s, expected %s", hdr.DestConnectionID, lastConnID) + break + } + lastConnID = hdr.DestConnectionID + + if counter > 0 { + p.buffer.Split() + } + counter++ + + // only log if this actually a coalesced packet + if s.logger.Debug() && (counter > 1 || len(rest) > 0) { + s.logger.Debugf("Parsed a coalesced packet. Part %d: %d bytes. Remaining: %d bytes.", counter, len(packetData), len(rest)) + } + p.data = packetData + if wasProcessed := s.handleSinglePacket(p, hdr); wasProcessed { + processed = true + } + data = rest + } + p.buffer.MaybeRelease() + return processed +} + +func (s *session) handleSinglePacket(p *receivedPacket, hdr *wire.Header) bool /* was the packet successfully processed */ { + var wasQueued bool + + defer func() { + // Put back the packet buffer if the packet wasn't queued for later decryption. + if !wasQueued { + p.buffer.Decrement() + } + }() + + if hdr.Type == protocol.PacketTypeRetry { + return s.handleRetryPacket(p, hdr) + } + + // The server can change the source connection ID with the first Handshake packet. + // After this, all packets with a different source connection have to be ignored. + if s.receivedFirstPacket && hdr.IsLongHeader && !hdr.SrcConnectionID.Equal(s.destConnID) { + s.logger.Debugf("Dropping packet with unexpected source connection ID: %s (expected %s)", hdr.SrcConnectionID, s.destConnID) + return false + } + // drop 0-RTT packets + if hdr.Type == protocol.PacketType0RTT { + return false + } + + packet, err := s.unpacker.Unpack(hdr, p.data) + if err != nil { + if err == handshake.ErrOpenerNotYetAvailable { + // Sealer for this encryption level not yet available. + // Try again later. + wasQueued = true + s.tryQueueingUndecryptablePacket(p) + return false + } + // This might be a packet injected by an attacker. + // Drop it. + s.logger.Debugf("Dropping packet that could not be unpacked. Unpack error: %s", err) + return false + } + + if s.logger.Debug() { + s.logger.Debugf("<- Reading packet %#x (%d bytes) for connection %s, %s", packet.packetNumber, len(p.data), hdr.DestConnectionID, packet.encryptionLevel) + packet.hdr.Log(s.logger) + } + + if err := s.handleUnpackedPacket(packet, p.rcvTime); err != nil { + s.closeLocal(err) + return false + } + return true +} + +func (s *session) handleRetryPacket(p *receivedPacket, hdr *wire.Header) bool /* was this a valid Retry */ { + if s.perspective == protocol.PerspectiveServer { + s.logger.Debugf("Ignoring Retry.") + return false + } + if s.receivedFirstPacket { + s.logger.Debugf("Ignoring Retry, since we already received a packet.") + return false + } + (&wire.ExtendedHeader{Header: *hdr}).Log(s.logger) + if !hdr.OrigDestConnectionID.Equal(s.destConnID) { + s.logger.Debugf("Ignoring spoofed Retry. Original Destination Connection ID: %s, expected: %s", hdr.OrigDestConnectionID, s.destConnID) + return false + } + if hdr.SrcConnectionID.Equal(s.destConnID) { + s.logger.Debugf("Ignoring Retry, since the server didn't change the Source Connection ID.") + return false + } + // If a token is already set, this means that we already received a Retry from the server. + // Ignore this Retry packet. + if s.receivedRetry { + s.logger.Debugf("Ignoring Retry, since a Retry was already received.") + return false + } + s.logger.Debugf("<- Received Retry") + s.logger.Debugf("Switching destination connection ID to: %s", hdr.SrcConnectionID) + s.origDestConnID = s.destConnID + s.destConnID = hdr.SrcConnectionID + s.receivedRetry = true + if err := s.sentPacketHandler.ResetForRetry(); err != nil { + s.closeLocal(err) + return false + } + s.cryptoStreamHandler.ChangeConnectionID(s.destConnID) + s.packer.SetToken(hdr.Token) + s.packer.ChangeDestConnectionID(s.destConnID) + s.scheduleSending() + return true +} + +func (s *session) handleUnpackedPacket(packet *unpackedPacket, rcvTime time.Time) error { + if len(packet.data) == 0 { + return qerr.Error(qerr.ProtocolViolation, "empty packet") + } + + // The server can change the source connection ID with the first Handshake packet. + if s.perspective == protocol.PerspectiveClient && !s.receivedFirstPacket && packet.hdr.IsLongHeader && !packet.hdr.SrcConnectionID.Equal(s.destConnID) { + s.logger.Debugf("Received first packet. Switching destination connection ID to: %s", packet.hdr.SrcConnectionID) + s.destConnID = packet.hdr.SrcConnectionID + s.packer.ChangeDestConnectionID(s.destConnID) + } + + s.receivedFirstPacket = true + s.lastPacketReceivedTime = rcvTime + s.firstRetransmittablePacketAfterIdleSentTime = time.Time{} + s.keepAlivePingSent = false + + // The client completes the handshake first (after sending the CFIN). + // We know that the server completed the handshake as soon as we receive a forward-secure packet. + if s.perspective == protocol.PerspectiveClient { + if !s.receivedFirstForwardSecurePacket && packet.encryptionLevel == protocol.Encryption1RTT { + s.receivedFirstForwardSecurePacket = true + s.sentPacketHandler.SetHandshakeComplete() + } + } + + r := bytes.NewReader(packet.data) + var isRetransmittable bool + for { + frame, err := s.frameParser.ParseNext(r, packet.encryptionLevel) + if err != nil { + return err + } + if frame == nil { + break + } + if ackhandler.IsFrameRetransmittable(frame) { + isRetransmittable = true + } + if err := s.handleFrame(frame, packet.packetNumber, packet.encryptionLevel); err != nil { + return err + } + } + + if err := s.receivedPacketHandler.ReceivedPacket(packet.packetNumber, packet.encryptionLevel, rcvTime, isRetransmittable); err != nil { + return err + } + return nil +} + +func (s *session) handleFrame(f wire.Frame, pn protocol.PacketNumber, encLevel protocol.EncryptionLevel) error { + var err error + wire.LogFrame(s.logger, f, false) + switch frame := f.(type) { + case *wire.CryptoFrame: + err = s.handleCryptoFrame(frame, encLevel) + case *wire.StreamFrame: + err = s.handleStreamFrame(frame, encLevel) + case *wire.AckFrame: + err = s.handleAckFrame(frame, pn, encLevel) + case *wire.ConnectionCloseFrame: + s.closeRemote(qerr.Error(frame.ErrorCode, frame.ReasonPhrase)) + case *wire.ResetStreamFrame: + err = s.handleResetStreamFrame(frame) + case *wire.MaxDataFrame: + s.handleMaxDataFrame(frame) + case *wire.MaxStreamDataFrame: + err = s.handleMaxStreamDataFrame(frame) + case *wire.MaxStreamsFrame: + err = s.handleMaxStreamsFrame(frame) + case *wire.DataBlockedFrame: + case *wire.StreamDataBlockedFrame: + case *wire.StreamsBlockedFrame: + case *wire.StopSendingFrame: + err = s.handleStopSendingFrame(frame) + case *wire.PingFrame: + case *wire.PathChallengeFrame: + s.handlePathChallengeFrame(frame) + case *wire.PathResponseFrame: + // since we don't send PATH_CHALLENGEs, we don't expect PATH_RESPONSEs + err = errors.New("unexpected PATH_RESPONSE frame") + case *wire.NewTokenFrame: + case *wire.NewConnectionIDFrame: + case *wire.RetireConnectionIDFrame: + // since we don't send new connection IDs, we don't expect retirements + err = errors.New("unexpected RETIRE_CONNECTION_ID frame") + default: + err = fmt.Errorf("unexpected frame type: %s", reflect.ValueOf(&frame).Elem().Type().Name()) + } + return err +} + +// handlePacket is called by the server with a new packet +func (s *session) handlePacket(p *receivedPacket) { + if s.closed.Get() { + s.handlePacketAfterClosed(p) + } + // Discard packets once the amount of queued packets is larger than + // the channel size, protocol.MaxSessionUnprocessedPackets + select { + case s.receivedPackets <- p: + default: + } +} + +func (s *session) handlePacketAfterClosed(p *receivedPacket) { + s.packetsReceivedAfterClose++ + if s.connectionClosePacket == nil { + return + } + // exponential backoff + // only send a CONNECTION_CLOSE for the 1st, 2nd, 4th, 8th, 16th, ... packet arriving + for n := s.packetsReceivedAfterClose; n > 1; n = n / 2 { + if n%2 != 0 { + return + } + } + s.logger.Debugf("Received %d packets after sending CONNECTION_CLOSE. Retransmitting.", s.packetsReceivedAfterClose) + if err := s.conn.Write(s.connectionClosePacket.raw); err != nil { + s.logger.Debugf("Error retransmitting CONNECTION_CLOSE: %s", err) + } +} + +func (s *session) handleCryptoFrame(frame *wire.CryptoFrame, encLevel protocol.EncryptionLevel) error { + encLevelChanged, err := s.cryptoStreamManager.HandleCryptoFrame(frame, encLevel) + if err != nil { + return err + } + s.logger.Debugf("Handled crypto frame at level %s. encLevelChanged: %t", encLevel, encLevelChanged) + if encLevelChanged { + s.tryDecryptingQueuedPackets() + } + return nil +} + +func (s *session) handleStreamFrame(frame *wire.StreamFrame, encLevel protocol.EncryptionLevel) error { + // TODO(#1261): implement strict rules for frames types in unencrypted packets + if encLevel < protocol.Encryption1RTT { + return qerr.Error(qerr.ProtocolViolation, fmt.Sprintf("received unencrypted stream data on stream %d", frame.StreamID)) + } + str, err := s.streamsMap.GetOrOpenReceiveStream(frame.StreamID) + if err != nil { + return err + } + if str == nil { + // Stream is closed and already garbage collected + // ignore this StreamFrame + return nil + } + return str.handleStreamFrame(frame) +} + +func (s *session) handleMaxDataFrame(frame *wire.MaxDataFrame) { + s.connFlowController.UpdateSendWindow(frame.ByteOffset) +} + +func (s *session) handleMaxStreamDataFrame(frame *wire.MaxStreamDataFrame) error { + str, err := s.streamsMap.GetOrOpenSendStream(frame.StreamID) + if err != nil { + return err + } + if str == nil { + // stream is closed and already garbage collected + return nil + } + str.handleMaxStreamDataFrame(frame) + return nil +} + +func (s *session) handleMaxStreamsFrame(frame *wire.MaxStreamsFrame) error { + return s.streamsMap.HandleMaxStreamsFrame(frame) +} + +func (s *session) handleResetStreamFrame(frame *wire.ResetStreamFrame) error { + str, err := s.streamsMap.GetOrOpenReceiveStream(frame.StreamID) + if err != nil { + return err + } + if str == nil { + // stream is closed and already garbage collected + return nil + } + return str.handleResetStreamFrame(frame) +} + +func (s *session) handleStopSendingFrame(frame *wire.StopSendingFrame) error { + str, err := s.streamsMap.GetOrOpenSendStream(frame.StreamID) + if err != nil { + return err + } + if str == nil { + // stream is closed and already garbage collected + return nil + } + str.handleStopSendingFrame(frame) + return nil +} + +func (s *session) handlePathChallengeFrame(frame *wire.PathChallengeFrame) { + s.queueControlFrame(&wire.PathResponseFrame{Data: frame.Data}) +} + +func (s *session) handleAckFrame(frame *wire.AckFrame, pn protocol.PacketNumber, encLevel protocol.EncryptionLevel) error { + if err := s.sentPacketHandler.ReceivedAck(frame, pn, encLevel, s.lastPacketReceivedTime); err != nil { + return err + } + if encLevel == protocol.Encryption1RTT { + s.receivedPacketHandler.IgnoreBelow(s.sentPacketHandler.GetLowestPacketNotConfirmedAcked()) + } + return nil +} + +// closeLocal closes the session and send a CONNECTION_CLOSE containing the error +func (s *session) closeLocal(e error) { + s.closeOnce.Do(func() { + if e == nil { + s.logger.Infof("Closing session.") + } else { + s.logger.Errorf("Closing session with error: %s", e) + } + s.sessionRunner.Retire(s.srcConnID) + s.closeChan <- closeError{err: e, sendClose: true, remote: false} + }) +} + +// destroy closes the session without sending the error on the wire +func (s *session) destroy(e error) { + s.closeOnce.Do(func() { + if nerr, ok := e.(net.Error); ok && nerr.Timeout() { + s.logger.Errorf("Destroying session %s: %s", s.destConnID, e) + } else { + s.logger.Errorf("Destroying session %s with error: %s", s.destConnID, e) + } + s.sessionRunner.Remove(s.srcConnID) + s.closeChan <- closeError{err: e, sendClose: false, remote: false} + }) +} + +// closeForRecreating closes the session in order to recreate it immediately afterwards +// It returns the first packet number that should be used in the new session. +func (s *session) closeForRecreating() protocol.PacketNumber { + s.destroy(errCloseForRecreating) + nextPN, _ := s.sentPacketHandler.PeekPacketNumber(protocol.EncryptionInitial) + return nextPN +} + +func (s *session) closeRemote(e error) { + s.closeOnce.Do(func() { + s.logger.Errorf("Peer closed session with error: %s", e) + s.sessionRunner.Remove(s.srcConnID) + s.closeChan <- closeError{err: e, remote: true} + }) +} + +// Close the connection. It sends a qerr.NoError. +// It waits until the run loop has stopped before returning +func (s *session) Close() error { + s.closeLocal(nil) + <-s.ctx.Done() + return nil +} + +func (s *session) CloseWithError(code protocol.ApplicationErrorCode, e error) error { + s.closeLocal(qerr.Error(qerr.ErrorCode(code), e.Error())) + <-s.ctx.Done() + return nil +} + +func (s *session) handleCloseError(closeErr closeError) { + if closeErr.err == nil { + closeErr.err = qerr.NoError + } + + var quicErr *qerr.QuicError + var ok bool + if quicErr, ok = closeErr.err.(*qerr.QuicError); !ok { + quicErr = qerr.ToQuicError(closeErr.err) + } + + s.streamsMap.CloseWithError(quicErr) + + if !closeErr.sendClose { + return + } + // If this is a remote close we're done here + if closeErr.remote { + return + } + if err := s.sendConnectionClose(quicErr); err != nil { + s.logger.Debugf("Error sending CONNECTION_CLOSE: %s", err) + } +} + +func (s *session) processTransportParameters(data []byte) { + var params *handshake.TransportParameters + var err error + switch s.perspective { + case protocol.PerspectiveClient: + params, err = s.processTransportParametersForClient(data) + case protocol.PerspectiveServer: + params, err = s.processTransportParametersForServer(data) + } + if err != nil { + s.closeLocal(err) + return + } + s.logger.Debugf("Received Transport Parameters: %s", params) + s.peerParams = params + if err := s.streamsMap.UpdateLimits(params); err != nil { + s.closeLocal(err) + return + } + s.packer.HandleTransportParameters(params) + s.frameParser.SetAckDelayExponent(params.AckDelayExponent) + s.connFlowController.UpdateSendWindow(params.InitialMaxData) + if params.StatelessResetToken != nil { + s.sessionRunner.AddResetToken(*params.StatelessResetToken, s) + } +} + +func (s *session) processTransportParametersForClient(data []byte) (*handshake.TransportParameters, error) { + params := &handshake.TransportParameters{} + if err := params.Unmarshal(data, s.perspective.Opposite()); err != nil { + return nil, err + } + + // check the Retry token + if !params.OriginalConnectionID.Equal(s.origDestConnID) { + return nil, fmt.Errorf("expected original_connection_id to equal %s, is %s", s.origDestConnID, params.OriginalConnectionID) + } + + return params, nil +} + +func (s *session) processTransportParametersForServer(data []byte) (*handshake.TransportParameters, error) { + params := &handshake.TransportParameters{} + if err := params.Unmarshal(data, s.perspective.Opposite()); err != nil { + return nil, err + } + return params, nil +} + +func (s *session) sendPackets() error { + s.pacingDeadline = time.Time{} + + sendMode := s.sentPacketHandler.SendMode() + if sendMode == ackhandler.SendNone { // shortcut: return immediately if there's nothing to send + return nil + } + + numPackets := s.sentPacketHandler.ShouldSendNumPackets() + var numPacketsSent int +sendLoop: + for { + switch sendMode { + case ackhandler.SendNone: + break sendLoop + case ackhandler.SendAck: + // If we already sent packets, and the send mode switches to SendAck, + // we've just become congestion limited. + // There's no need to try to send an ACK at this moment. + if numPacketsSent > 0 { + return nil + } + // We can at most send a single ACK only packet. + // There will only be a new ACK after receiving new packets. + // SendAck is only returned when we're congestion limited, so we don't need to set the pacingt timer. + return s.maybeSendAckOnlyPacket() + case ackhandler.SendPTO: + if err := s.sendProbePacket(); err != nil { + return err + } + numPacketsSent++ + case ackhandler.SendRetransmission: + sentPacket, err := s.maybeSendRetransmission() + if err != nil { + return err + } + if sentPacket { + numPacketsSent++ + // This can happen if a retransmission queued, but it wasn't necessary to send it. + // e.g. when an Initial is queued, but we already received a packet from the server. + } + case ackhandler.SendAny: + sentPacket, err := s.sendPacket() + if err != nil { + return err + } + if !sentPacket { + break sendLoop + } + numPacketsSent++ + default: + return fmt.Errorf("BUG: invalid send mode %d", sendMode) + } + if numPacketsSent >= numPackets { + break + } + sendMode = s.sentPacketHandler.SendMode() + } + // Only start the pacing timer if we sent as many packets as we were allowed. + // There will probably be more to send when calling sendPacket again. + if numPacketsSent == numPackets { + s.pacingDeadline = s.sentPacketHandler.TimeUntilSend() + } + return nil +} + +func (s *session) maybeSendAckOnlyPacket() error { + packet, err := s.packer.MaybePackAckPacket() + if err != nil { + return err + } + if packet == nil { + return nil + } + s.sentPacketHandler.SentPacket(packet.ToAckHandlerPacket()) + return s.sendPackedPacket(packet) +} + +// maybeSendRetransmission sends retransmissions for at most one packet. +// It takes care that Initials aren't retransmitted, if a packet from the server was already received. +func (s *session) maybeSendRetransmission() (bool, error) { + retransmitPacket := s.sentPacketHandler.DequeuePacketForRetransmission() + if retransmitPacket == nil { + return false, nil + } + + s.logger.Debugf("Dequeueing retransmission for packet 0x%x (%s)", retransmitPacket.PacketNumber, retransmitPacket.EncryptionLevel) + packets, err := s.packer.PackRetransmission(retransmitPacket) + if err != nil { + return false, err + } + ackhandlerPackets := make([]*ackhandler.Packet, len(packets)) + for i, packet := range packets { + ackhandlerPackets[i] = packet.ToAckHandlerPacket() + } + s.sentPacketHandler.SentPacketsAsRetransmission(ackhandlerPackets, retransmitPacket.PacketNumber) + for _, packet := range packets { + if err := s.sendPackedPacket(packet); err != nil { + return false, err + } + } + return true, nil +} + +func (s *session) sendProbePacket() error { + p, err := s.sentPacketHandler.DequeueProbePacket() + if err != nil { + return err + } + s.logger.Debugf("Sending a retransmission for %#x as a probe packet.", p.PacketNumber) + + packets, err := s.packer.PackRetransmission(p) + if err != nil { + return err + } + ackhandlerPackets := make([]*ackhandler.Packet, len(packets)) + for i, packet := range packets { + ackhandlerPackets[i] = packet.ToAckHandlerPacket() + } + s.sentPacketHandler.SentPacketsAsRetransmission(ackhandlerPackets, p.PacketNumber) + for _, packet := range packets { + if err := s.sendPackedPacket(packet); err != nil { + return err + } + } + return nil +} + +func (s *session) sendPacket() (bool, error) { + if isBlocked, offset := s.connFlowController.IsNewlyBlocked(); isBlocked { + s.framer.QueueControlFrame(&wire.DataBlockedFrame{DataLimit: offset}) + } + s.windowUpdateQueue.QueueAll() + + packet, err := s.packer.PackPacket() + if err != nil || packet == nil { + return false, err + } + s.sentPacketHandler.SentPacket(packet.ToAckHandlerPacket()) + if err := s.sendPackedPacket(packet); err != nil { + return false, err + } + return true, nil +} + +func (s *session) sendPackedPacket(packet *packedPacket) error { + defer packet.buffer.Release() + if s.firstRetransmittablePacketAfterIdleSentTime.IsZero() && packet.IsRetransmittable() { + s.firstRetransmittablePacketAfterIdleSentTime = time.Now() + } + s.logPacket(packet) + return s.conn.Write(packet.raw) +} + +func (s *session) sendConnectionClose(quicErr *qerr.QuicError) error { + var reason string + // don't send details of crypto errors + if !quicErr.IsCryptoError() { + reason = quicErr.ErrorMessage + } + packet, err := s.packer.PackConnectionClose(&wire.ConnectionCloseFrame{ + ErrorCode: quicErr.ErrorCode, + ReasonPhrase: reason, + }) + if err != nil { + return err + } + s.connectionClosePacket = packet + s.logPacket(packet) + return s.conn.Write(packet.raw) +} + +func (s *session) logPacket(packet *packedPacket) { + if !s.logger.Debug() { + // We don't need to allocate the slices for calling the format functions + return + } + s.logger.Debugf("-> Sending packet 0x%x (%d bytes) for connection %s, %s", packet.header.PacketNumber, len(packet.raw), s.srcConnID, packet.EncryptionLevel()) + packet.header.Log(s.logger) + for _, frame := range packet.frames { + wire.LogFrame(s.logger, frame, true) + } +} + +// GetOrOpenStream either returns an existing stream, a newly opened stream, or nil if a stream with the provided ID is already closed. +// It is *only* needed for gQUIC's H2. +// It will be removed as soon as gQUIC moves towards the IETF H2/QUIC stream mapping. +func (s *session) GetOrOpenStream(id protocol.StreamID) (Stream, error) { + str, err := s.streamsMap.GetOrOpenSendStream(id) + if str != nil { + if bstr, ok := str.(Stream); ok { + return bstr, err + } + return nil, fmt.Errorf("Stream %d is not a bidirectional stream", id) + } + // make sure to return an actual nil value here, not an Stream with value nil + return nil, err +} + +// AcceptStream returns the next stream openend by the peer +func (s *session) AcceptStream() (Stream, error) { + return s.streamsMap.AcceptStream() +} + +func (s *session) AcceptUniStream() (ReceiveStream, error) { + return s.streamsMap.AcceptUniStream() +} + +// OpenStream opens a stream +func (s *session) OpenStream() (Stream, error) { + return s.streamsMap.OpenStream() +} + +func (s *session) OpenStreamSync() (Stream, error) { + return s.streamsMap.OpenStreamSync() +} + +func (s *session) OpenUniStream() (SendStream, error) { + return s.streamsMap.OpenUniStream() +} + +func (s *session) OpenUniStreamSync() (SendStream, error) { + return s.streamsMap.OpenUniStreamSync() +} + +func (s *session) newFlowController(id protocol.StreamID) flowcontrol.StreamFlowController { + var initialSendWindow protocol.ByteCount + if s.peerParams != nil { + if id.Type() == protocol.StreamTypeUni { + initialSendWindow = s.peerParams.InitialMaxStreamDataUni + } else { + if id.InitiatedBy() == s.perspective { + initialSendWindow = s.peerParams.InitialMaxStreamDataBidiRemote + } else { + initialSendWindow = s.peerParams.InitialMaxStreamDataBidiLocal + } + } + } + return flowcontrol.NewStreamFlowController( + id, + s.connFlowController, + protocol.InitialMaxStreamData, + protocol.ByteCount(s.config.MaxReceiveStreamFlowControlWindow), + initialSendWindow, + s.onHasStreamWindowUpdate, + s.rttStats, + s.logger, + ) +} + +// scheduleSending signals that we have data for sending +func (s *session) scheduleSending() { + select { + case s.sendingScheduled <- struct{}{}: + default: + } +} + +func (s *session) tryQueueingUndecryptablePacket(p *receivedPacket) { + if s.handshakeComplete { + s.logger.Debugf("Received undecryptable packet from %s after the handshake (%d bytes)", p.remoteAddr.String(), len(p.data)) + return + } + if len(s.undecryptablePackets)+1 > protocol.MaxUndecryptablePackets { + s.logger.Infof("Dropping undecrytable packet (%d bytes). Undecryptable packet queue full.", len(p.data)) + return + } + s.logger.Infof("Queueing packet (%d bytes) for later decryption", len(p.data)) + s.undecryptablePackets = append(s.undecryptablePackets, p) +} + +func (s *session) tryDecryptingQueuedPackets() { + for _, p := range s.undecryptablePackets { + s.handlePacket(p) + } + s.undecryptablePackets = s.undecryptablePackets[:0] +} + +func (s *session) queueControlFrame(f wire.Frame) { + s.framer.QueueControlFrame(f) + s.scheduleSending() +} + +func (s *session) onHasStreamWindowUpdate(id protocol.StreamID) { + s.windowUpdateQueue.AddStream(id) + s.scheduleSending() +} + +func (s *session) onHasConnectionWindowUpdate() { + s.windowUpdateQueue.AddConnection() + s.scheduleSending() +} + +func (s *session) onHasStreamData(id protocol.StreamID) { + s.framer.AddActiveStream(id) + s.scheduleSending() +} + +func (s *session) onStreamCompleted(id protocol.StreamID) { + if err := s.streamsMap.DeleteStream(id); err != nil { + s.closeLocal(err) + } +} + +func (s *session) LocalAddr() net.Addr { + return s.conn.LocalAddr() +} + +func (s *session) RemoteAddr() net.Addr { + return s.conn.RemoteAddr() +} + +func (s *session) getPerspective() protocol.Perspective { + return s.perspective +} + +func (s *session) GetVersion() protocol.VersionNumber { + return s.version +} diff --git a/vendor/github.com/lucas-clemente/quic-go/stream.go b/vendor/github.com/lucas-clemente/quic-go/stream.go new file mode 100644 index 00000000..dfd0cc6a --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/stream.go @@ -0,0 +1,163 @@ +package quic + +import ( + "net" + "sync" + "time" + + "github.com/lucas-clemente/quic-go/internal/flowcontrol" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +const errorCodeStopping protocol.ApplicationErrorCode = 0 + +// The streamSender is notified by the stream about various events. +type streamSender interface { + queueControlFrame(wire.Frame) + onHasStreamData(protocol.StreamID) + // must be called without holding the mutex that is acquired by closeForShutdown + onStreamCompleted(protocol.StreamID) +} + +// Each of the both stream halves gets its own uniStreamSender. +// This is necessary in order to keep track when both halves have been completed. +type uniStreamSender struct { + streamSender + onStreamCompletedImpl func() +} + +func (s *uniStreamSender) queueControlFrame(f wire.Frame) { + s.streamSender.queueControlFrame(f) +} + +func (s *uniStreamSender) onHasStreamData(id protocol.StreamID) { + s.streamSender.onHasStreamData(id) +} + +func (s *uniStreamSender) onStreamCompleted(protocol.StreamID) { + s.onStreamCompletedImpl() +} + +var _ streamSender = &uniStreamSender{} + +type streamI interface { + Stream + closeForShutdown(error) + // for receiving + handleStreamFrame(*wire.StreamFrame) error + handleResetStreamFrame(*wire.ResetStreamFrame) error + getWindowUpdate() protocol.ByteCount + // for sending + hasData() bool + handleStopSendingFrame(*wire.StopSendingFrame) + popStreamFrame(maxBytes protocol.ByteCount) (*wire.StreamFrame, bool) + handleMaxStreamDataFrame(*wire.MaxStreamDataFrame) +} + +var _ receiveStreamI = (streamI)(nil) +var _ sendStreamI = (streamI)(nil) + +// A Stream assembles the data from StreamFrames and provides a super-convenient Read-Interface +// +// Read() and Write() may be called concurrently, but multiple calls to Read() or Write() individually must be synchronized manually. +type stream struct { + receiveStream + sendStream + + completedMutex sync.Mutex + sender streamSender + receiveStreamCompleted bool + sendStreamCompleted bool + + version protocol.VersionNumber +} + +var _ Stream = &stream{} + +type deadlineError struct{} + +func (deadlineError) Error() string { return "deadline exceeded" } +func (deadlineError) Temporary() bool { return true } +func (deadlineError) Timeout() bool { return true } + +var errDeadline net.Error = &deadlineError{} + +type streamCanceledError struct { + error + errorCode protocol.ApplicationErrorCode +} + +func (streamCanceledError) Canceled() bool { return true } +func (e streamCanceledError) ErrorCode() protocol.ApplicationErrorCode { return e.errorCode } + +var _ StreamError = &streamCanceledError{} + +// newStream creates a new Stream +func newStream(streamID protocol.StreamID, + sender streamSender, + flowController flowcontrol.StreamFlowController, + version protocol.VersionNumber, +) *stream { + s := &stream{sender: sender, version: version} + senderForSendStream := &uniStreamSender{ + streamSender: sender, + onStreamCompletedImpl: func() { + s.completedMutex.Lock() + s.sendStreamCompleted = true + s.checkIfCompleted() + s.completedMutex.Unlock() + }, + } + s.sendStream = *newSendStream(streamID, senderForSendStream, flowController, version) + senderForReceiveStream := &uniStreamSender{ + streamSender: sender, + onStreamCompletedImpl: func() { + s.completedMutex.Lock() + s.receiveStreamCompleted = true + s.checkIfCompleted() + s.completedMutex.Unlock() + }, + } + s.receiveStream = *newReceiveStream(streamID, senderForReceiveStream, flowController, version) + return s +} + +// need to define StreamID() here, since both receiveStream and readStream have a StreamID() +func (s *stream) StreamID() protocol.StreamID { + // the result is same for receiveStream and sendStream + return s.sendStream.StreamID() +} + +func (s *stream) Close() error { + if err := s.sendStream.Close(); err != nil { + return err + } + return nil +} + +func (s *stream) SetDeadline(t time.Time) error { + _ = s.SetReadDeadline(t) // SetReadDeadline never errors + _ = s.SetWriteDeadline(t) // SetWriteDeadline never errors + return nil +} + +// CloseForShutdown closes a stream abruptly. +// It makes Read and Write unblock (and return the error) immediately. +// The peer will NOT be informed about this: the stream is closed without sending a FIN or RST. +func (s *stream) closeForShutdown(err error) { + s.sendStream.closeForShutdown(err) + s.receiveStream.closeForShutdown(err) +} + +func (s *stream) handleResetStreamFrame(frame *wire.ResetStreamFrame) error { + return s.receiveStream.handleResetStreamFrame(frame) +} + +// checkIfCompleted is called from the uniStreamSender, when one of the stream halves is completed. +// It makes sure that the onStreamCompleted callback is only called if both receive and send side have completed. +func (s *stream) checkIfCompleted() { + if s.sendStreamCompleted && s.receiveStreamCompleted { + s.sender.onStreamCompleted(s.StreamID()) + } +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map.go b/vendor/github.com/lucas-clemente/quic-go/streams_map.go new file mode 100644 index 00000000..846ece00 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map.go @@ -0,0 +1,192 @@ +package quic + +import ( + "errors" + "fmt" + "net" + + "github.com/lucas-clemente/quic-go/internal/flowcontrol" + "github.com/lucas-clemente/quic-go/internal/handshake" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type streamOpenErr struct{ error } + +var _ net.Error = &streamOpenErr{} + +func (e streamOpenErr) Temporary() bool { return e.error == errTooManyOpenStreams } +func (streamOpenErr) Timeout() bool { return false } + +// errTooManyOpenStreams is used internally by the outgoing streams maps. +var errTooManyOpenStreams = errors.New("too many open streams") + +type streamsMap struct { + perspective protocol.Perspective + + sender streamSender + newFlowController func(protocol.StreamID) flowcontrol.StreamFlowController + + outgoingBidiStreams *outgoingBidiStreamsMap + outgoingUniStreams *outgoingUniStreamsMap + incomingBidiStreams *incomingBidiStreamsMap + incomingUniStreams *incomingUniStreamsMap +} + +var _ streamManager = &streamsMap{} + +func newStreamsMap( + sender streamSender, + newFlowController func(protocol.StreamID) flowcontrol.StreamFlowController, + maxIncomingStreams uint64, + maxIncomingUniStreams uint64, + perspective protocol.Perspective, + version protocol.VersionNumber, +) streamManager { + m := &streamsMap{ + perspective: perspective, + newFlowController: newFlowController, + sender: sender, + } + newBidiStream := func(id protocol.StreamID) streamI { + return newStream(id, m.sender, m.newFlowController(id), version) + } + newUniSendStream := func(id protocol.StreamID) sendStreamI { + return newSendStream(id, m.sender, m.newFlowController(id), version) + } + newUniReceiveStream := func(id protocol.StreamID) receiveStreamI { + return newReceiveStream(id, m.sender, m.newFlowController(id), version) + } + m.outgoingBidiStreams = newOutgoingBidiStreamsMap( + protocol.FirstStream(protocol.StreamTypeBidi, perspective), + newBidiStream, + sender.queueControlFrame, + ) + m.incomingBidiStreams = newIncomingBidiStreamsMap( + protocol.FirstStream(protocol.StreamTypeBidi, perspective.Opposite()), + protocol.MaxStreamID(protocol.StreamTypeBidi, maxIncomingStreams, perspective.Opposite()), + maxIncomingStreams, + sender.queueControlFrame, + newBidiStream, + ) + m.outgoingUniStreams = newOutgoingUniStreamsMap( + protocol.FirstStream(protocol.StreamTypeUni, perspective), + newUniSendStream, + sender.queueControlFrame, + ) + m.incomingUniStreams = newIncomingUniStreamsMap( + protocol.FirstStream(protocol.StreamTypeUni, perspective.Opposite()), + protocol.MaxStreamID(protocol.StreamTypeUni, maxIncomingUniStreams, perspective.Opposite()), + maxIncomingUniStreams, + sender.queueControlFrame, + newUniReceiveStream, + ) + return m +} + +func (m *streamsMap) OpenStream() (Stream, error) { + return m.outgoingBidiStreams.OpenStream() +} + +func (m *streamsMap) OpenStreamSync() (Stream, error) { + return m.outgoingBidiStreams.OpenStreamSync() +} + +func (m *streamsMap) OpenUniStream() (SendStream, error) { + return m.outgoingUniStreams.OpenStream() +} + +func (m *streamsMap) OpenUniStreamSync() (SendStream, error) { + return m.outgoingUniStreams.OpenStreamSync() +} + +func (m *streamsMap) AcceptStream() (Stream, error) { + return m.incomingBidiStreams.AcceptStream() +} + +func (m *streamsMap) AcceptUniStream() (ReceiveStream, error) { + return m.incomingUniStreams.AcceptStream() +} + +func (m *streamsMap) DeleteStream(id protocol.StreamID) error { + switch id.Type() { + case protocol.StreamTypeUni: + if id.InitiatedBy() == m.perspective { + return m.outgoingUniStreams.DeleteStream(id) + } + return m.incomingUniStreams.DeleteStream(id) + case protocol.StreamTypeBidi: + if id.InitiatedBy() == m.perspective { + return m.outgoingBidiStreams.DeleteStream(id) + } + return m.incomingBidiStreams.DeleteStream(id) + } + panic("") +} + +func (m *streamsMap) GetOrOpenReceiveStream(id protocol.StreamID) (receiveStreamI, error) { + switch id.Type() { + case protocol.StreamTypeUni: + if id.InitiatedBy() == m.perspective { + // an outgoing unidirectional stream is a send stream, not a receive stream + return nil, fmt.Errorf("peer attempted to open receive stream %d", id) + } + return m.incomingUniStreams.GetOrOpenStream(id) + case protocol.StreamTypeBidi: + if id.InitiatedBy() == m.perspective { + return m.outgoingBidiStreams.GetStream(id) + } + return m.incomingBidiStreams.GetOrOpenStream(id) + } + panic("") +} + +func (m *streamsMap) GetOrOpenSendStream(id protocol.StreamID) (sendStreamI, error) { + switch id.Type() { + case protocol.StreamTypeUni: + if id.InitiatedBy() == m.perspective { + return m.outgoingUniStreams.GetStream(id) + } + // an incoming unidirectional stream is a receive stream, not a send stream + return nil, fmt.Errorf("peer attempted to open send stream %d", id) + case protocol.StreamTypeBidi: + if id.InitiatedBy() == m.perspective { + return m.outgoingBidiStreams.GetStream(id) + } + return m.incomingBidiStreams.GetOrOpenStream(id) + } + panic("") +} + +func (m *streamsMap) HandleMaxStreamsFrame(f *wire.MaxStreamsFrame) error { + if f.MaxStreams > protocol.MaxStreamCount { + return qerr.StreamLimitError + } + id := protocol.MaxStreamID(f.Type, f.MaxStreams, m.perspective) + switch id.Type() { + case protocol.StreamTypeUni: + m.outgoingUniStreams.SetMaxStream(id) + case protocol.StreamTypeBidi: + fmt.Printf("") + m.outgoingBidiStreams.SetMaxStream(id) + } + return nil +} + +func (m *streamsMap) UpdateLimits(p *handshake.TransportParameters) error { + if p.MaxBidiStreams > protocol.MaxStreamCount || p.MaxUniStreams > protocol.MaxStreamCount { + return qerr.StreamLimitError + } + // Max{Uni,Bidi}StreamID returns the highest stream ID that the peer is allowed to open. + m.outgoingBidiStreams.SetMaxStream(protocol.MaxStreamID(protocol.StreamTypeBidi, p.MaxBidiStreams, m.perspective)) + m.outgoingUniStreams.SetMaxStream(protocol.MaxStreamID(protocol.StreamTypeUni, p.MaxUniStreams, m.perspective)) + return nil +} + +func (m *streamsMap) CloseWithError(err error) { + m.outgoingBidiStreams.CloseWithError(err) + m.outgoingUniStreams.CloseWithError(err) + m.incomingBidiStreams.CloseWithError(err) + m.incomingUniStreams.CloseWithError(err) +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_generic_helper.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_generic_helper.go new file mode 100644 index 00000000..692f093e --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_generic_helper.go @@ -0,0 +1,17 @@ +package quic + +import ( + "github.com/cheekybits/genny/generic" + + "github.com/lucas-clemente/quic-go/internal/protocol" +) + +// In the auto-generated streams maps, we need to be able to close the streams. +// Therefore, extend the generic.Type with the stream close method. +// This definition must be in a file that Genny doesn't process. +type item interface { + generic.Type + closeForShutdown(error) +} + +const streamTypeGeneric protocol.StreamType = protocol.StreamTypeUni diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_bidi.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_bidi.go new file mode 100644 index 00000000..787c3d90 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_bidi.go @@ -0,0 +1,162 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package quic + +import ( + "fmt" + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type incomingBidiStreamsMap struct { + mutex sync.RWMutex + cond sync.Cond + + streams map[protocol.StreamID]streamI + // When a stream is deleted before it was accepted, we can't delete it immediately. + // We need to wait until the application accepts it, and delete it immediately then. + streamsToDelete map[protocol.StreamID]struct{} // used as a set + + nextStreamToAccept protocol.StreamID // the next stream that will be returned by AcceptStream() + nextStreamToOpen protocol.StreamID // the highest stream that the peer openend + maxStream protocol.StreamID // the highest stream that the peer is allowed to open + maxNumStreams uint64 // maximum number of streams + + newStream func(protocol.StreamID) streamI + queueMaxStreamID func(*wire.MaxStreamsFrame) + + closeErr error +} + +func newIncomingBidiStreamsMap( + nextStreamToAccept protocol.StreamID, + initialMaxStreamID protocol.StreamID, + maxNumStreams uint64, + queueControlFrame func(wire.Frame), + newStream func(protocol.StreamID) streamI, +) *incomingBidiStreamsMap { + m := &incomingBidiStreamsMap{ + streams: make(map[protocol.StreamID]streamI), + streamsToDelete: make(map[protocol.StreamID]struct{}), + nextStreamToAccept: nextStreamToAccept, + nextStreamToOpen: nextStreamToAccept, + maxStream: initialMaxStreamID, + maxNumStreams: maxNumStreams, + newStream: newStream, + queueMaxStreamID: func(f *wire.MaxStreamsFrame) { queueControlFrame(f) }, + } + m.cond.L = &m.mutex + return m +} + +func (m *incomingBidiStreamsMap) AcceptStream() (streamI, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + var id protocol.StreamID + var str streamI + for { + id = m.nextStreamToAccept + var ok bool + if m.closeErr != nil { + return nil, m.closeErr + } + str, ok = m.streams[id] + if ok { + break + } + m.cond.Wait() + } + m.nextStreamToAccept += 4 + // If this stream was completed before being accepted, we can delete it now. + if _, ok := m.streamsToDelete[id]; ok { + delete(m.streamsToDelete, id) + if err := m.deleteStream(id); err != nil { + return nil, err + } + } + return str, nil +} + +func (m *incomingBidiStreamsMap) GetOrOpenStream(id protocol.StreamID) (streamI, error) { + m.mutex.RLock() + if id > m.maxStream { + m.mutex.RUnlock() + return nil, fmt.Errorf("peer tried to open stream %d (current limit: %d)", id, m.maxStream) + } + // if the id is smaller than the highest we accepted + // * this stream exists in the map, and we can return it, or + // * this stream was already closed, then we can return the nil + if id < m.nextStreamToOpen { + var s streamI + // If the stream was already queued for deletion, and is just waiting to be accepted, don't return it. + if _, ok := m.streamsToDelete[id]; !ok { + s = m.streams[id] + } + m.mutex.RUnlock() + return s, nil + } + m.mutex.RUnlock() + + m.mutex.Lock() + // no need to check the two error conditions from above again + // * maxStream can only increase, so if the id was valid before, it definitely is valid now + // * highestStream is only modified by this function + for newID := m.nextStreamToOpen; newID <= id; newID += 4 { + m.streams[newID] = m.newStream(newID) + m.cond.Signal() + } + m.nextStreamToOpen = id + 4 + s := m.streams[id] + m.mutex.Unlock() + return s, nil +} + +func (m *incomingBidiStreamsMap) DeleteStream(id protocol.StreamID) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + return m.deleteStream(id) +} + +func (m *incomingBidiStreamsMap) deleteStream(id protocol.StreamID) error { + if _, ok := m.streams[id]; !ok { + return fmt.Errorf("Tried to delete unknown stream %d", id) + } + + // Don't delete this stream yet, if it was not yet accepted. + // Just save it to streamsToDelete map, to make sure it is deleted as soon as it gets accepted. + if id >= m.nextStreamToAccept { + if _, ok := m.streamsToDelete[id]; ok { + return fmt.Errorf("Tried to delete stream %d multiple times", id) + } + m.streamsToDelete[id] = struct{}{} + return nil + } + + delete(m.streams, id) + // queue a MAX_STREAM_ID frame, giving the peer the option to open a new stream + if m.maxNumStreams > uint64(len(m.streams)) { + numNewStreams := m.maxNumStreams - uint64(len(m.streams)) + m.maxStream = m.nextStreamToOpen + protocol.StreamID((numNewStreams-1)*4) + m.queueMaxStreamID(&wire.MaxStreamsFrame{ + Type: protocol.StreamTypeBidi, + MaxStreams: m.maxStream.StreamNum(), + }) + } + return nil +} + +func (m *incomingBidiStreamsMap) CloseWithError(err error) { + m.mutex.Lock() + m.closeErr = err + for _, str := range m.streams { + str.closeForShutdown(err) + } + m.mutex.Unlock() + m.cond.Broadcast() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_generic.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_generic.go new file mode 100644 index 00000000..503f0290 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_generic.go @@ -0,0 +1,160 @@ +package quic + +import ( + "fmt" + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +//go:generate genny -in $GOFILE -out streams_map_incoming_bidi.go gen "item=streamI Item=BidiStream streamTypeGeneric=protocol.StreamTypeBidi" +//go:generate genny -in $GOFILE -out streams_map_incoming_uni.go gen "item=receiveStreamI Item=UniStream streamTypeGeneric=protocol.StreamTypeUni" +type incomingItemsMap struct { + mutex sync.RWMutex + cond sync.Cond + + streams map[protocol.StreamID]item + // When a stream is deleted before it was accepted, we can't delete it immediately. + // We need to wait until the application accepts it, and delete it immediately then. + streamsToDelete map[protocol.StreamID]struct{} // used as a set + + nextStreamToAccept protocol.StreamID // the next stream that will be returned by AcceptStream() + nextStreamToOpen protocol.StreamID // the highest stream that the peer openend + maxStream protocol.StreamID // the highest stream that the peer is allowed to open + maxNumStreams uint64 // maximum number of streams + + newStream func(protocol.StreamID) item + queueMaxStreamID func(*wire.MaxStreamsFrame) + + closeErr error +} + +func newIncomingItemsMap( + nextStreamToAccept protocol.StreamID, + initialMaxStreamID protocol.StreamID, + maxNumStreams uint64, + queueControlFrame func(wire.Frame), + newStream func(protocol.StreamID) item, +) *incomingItemsMap { + m := &incomingItemsMap{ + streams: make(map[protocol.StreamID]item), + streamsToDelete: make(map[protocol.StreamID]struct{}), + nextStreamToAccept: nextStreamToAccept, + nextStreamToOpen: nextStreamToAccept, + maxStream: initialMaxStreamID, + maxNumStreams: maxNumStreams, + newStream: newStream, + queueMaxStreamID: func(f *wire.MaxStreamsFrame) { queueControlFrame(f) }, + } + m.cond.L = &m.mutex + return m +} + +func (m *incomingItemsMap) AcceptStream() (item, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + var id protocol.StreamID + var str item + for { + id = m.nextStreamToAccept + var ok bool + if m.closeErr != nil { + return nil, m.closeErr + } + str, ok = m.streams[id] + if ok { + break + } + m.cond.Wait() + } + m.nextStreamToAccept += 4 + // If this stream was completed before being accepted, we can delete it now. + if _, ok := m.streamsToDelete[id]; ok { + delete(m.streamsToDelete, id) + if err := m.deleteStream(id); err != nil { + return nil, err + } + } + return str, nil +} + +func (m *incomingItemsMap) GetOrOpenStream(id protocol.StreamID) (item, error) { + m.mutex.RLock() + if id > m.maxStream { + m.mutex.RUnlock() + return nil, fmt.Errorf("peer tried to open stream %d (current limit: %d)", id, m.maxStream) + } + // if the id is smaller than the highest we accepted + // * this stream exists in the map, and we can return it, or + // * this stream was already closed, then we can return the nil + if id < m.nextStreamToOpen { + var s item + // If the stream was already queued for deletion, and is just waiting to be accepted, don't return it. + if _, ok := m.streamsToDelete[id]; !ok { + s = m.streams[id] + } + m.mutex.RUnlock() + return s, nil + } + m.mutex.RUnlock() + + m.mutex.Lock() + // no need to check the two error conditions from above again + // * maxStream can only increase, so if the id was valid before, it definitely is valid now + // * highestStream is only modified by this function + for newID := m.nextStreamToOpen; newID <= id; newID += 4 { + m.streams[newID] = m.newStream(newID) + m.cond.Signal() + } + m.nextStreamToOpen = id + 4 + s := m.streams[id] + m.mutex.Unlock() + return s, nil +} + +func (m *incomingItemsMap) DeleteStream(id protocol.StreamID) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + return m.deleteStream(id) +} + +func (m *incomingItemsMap) deleteStream(id protocol.StreamID) error { + if _, ok := m.streams[id]; !ok { + return fmt.Errorf("Tried to delete unknown stream %d", id) + } + + // Don't delete this stream yet, if it was not yet accepted. + // Just save it to streamsToDelete map, to make sure it is deleted as soon as it gets accepted. + if id >= m.nextStreamToAccept { + if _, ok := m.streamsToDelete[id]; ok { + return fmt.Errorf("Tried to delete stream %d multiple times", id) + } + m.streamsToDelete[id] = struct{}{} + return nil + } + + delete(m.streams, id) + // queue a MAX_STREAM_ID frame, giving the peer the option to open a new stream + if m.maxNumStreams > uint64(len(m.streams)) { + numNewStreams := m.maxNumStreams - uint64(len(m.streams)) + m.maxStream = m.nextStreamToOpen + protocol.StreamID((numNewStreams-1)*4) + m.queueMaxStreamID(&wire.MaxStreamsFrame{ + Type: streamTypeGeneric, + MaxStreams: m.maxStream.StreamNum(), + }) + } + return nil +} + +func (m *incomingItemsMap) CloseWithError(err error) { + m.mutex.Lock() + m.closeErr = err + for _, str := range m.streams { + str.closeForShutdown(err) + } + m.mutex.Unlock() + m.cond.Broadcast() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_uni.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_uni.go new file mode 100644 index 00000000..f36fcee5 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_incoming_uni.go @@ -0,0 +1,162 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package quic + +import ( + "fmt" + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type incomingUniStreamsMap struct { + mutex sync.RWMutex + cond sync.Cond + + streams map[protocol.StreamID]receiveStreamI + // When a stream is deleted before it was accepted, we can't delete it immediately. + // We need to wait until the application accepts it, and delete it immediately then. + streamsToDelete map[protocol.StreamID]struct{} // used as a set + + nextStreamToAccept protocol.StreamID // the next stream that will be returned by AcceptStream() + nextStreamToOpen protocol.StreamID // the highest stream that the peer openend + maxStream protocol.StreamID // the highest stream that the peer is allowed to open + maxNumStreams uint64 // maximum number of streams + + newStream func(protocol.StreamID) receiveStreamI + queueMaxStreamID func(*wire.MaxStreamsFrame) + + closeErr error +} + +func newIncomingUniStreamsMap( + nextStreamToAccept protocol.StreamID, + initialMaxStreamID protocol.StreamID, + maxNumStreams uint64, + queueControlFrame func(wire.Frame), + newStream func(protocol.StreamID) receiveStreamI, +) *incomingUniStreamsMap { + m := &incomingUniStreamsMap{ + streams: make(map[protocol.StreamID]receiveStreamI), + streamsToDelete: make(map[protocol.StreamID]struct{}), + nextStreamToAccept: nextStreamToAccept, + nextStreamToOpen: nextStreamToAccept, + maxStream: initialMaxStreamID, + maxNumStreams: maxNumStreams, + newStream: newStream, + queueMaxStreamID: func(f *wire.MaxStreamsFrame) { queueControlFrame(f) }, + } + m.cond.L = &m.mutex + return m +} + +func (m *incomingUniStreamsMap) AcceptStream() (receiveStreamI, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + var id protocol.StreamID + var str receiveStreamI + for { + id = m.nextStreamToAccept + var ok bool + if m.closeErr != nil { + return nil, m.closeErr + } + str, ok = m.streams[id] + if ok { + break + } + m.cond.Wait() + } + m.nextStreamToAccept += 4 + // If this stream was completed before being accepted, we can delete it now. + if _, ok := m.streamsToDelete[id]; ok { + delete(m.streamsToDelete, id) + if err := m.deleteStream(id); err != nil { + return nil, err + } + } + return str, nil +} + +func (m *incomingUniStreamsMap) GetOrOpenStream(id protocol.StreamID) (receiveStreamI, error) { + m.mutex.RLock() + if id > m.maxStream { + m.mutex.RUnlock() + return nil, fmt.Errorf("peer tried to open stream %d (current limit: %d)", id, m.maxStream) + } + // if the id is smaller than the highest we accepted + // * this stream exists in the map, and we can return it, or + // * this stream was already closed, then we can return the nil + if id < m.nextStreamToOpen { + var s receiveStreamI + // If the stream was already queued for deletion, and is just waiting to be accepted, don't return it. + if _, ok := m.streamsToDelete[id]; !ok { + s = m.streams[id] + } + m.mutex.RUnlock() + return s, nil + } + m.mutex.RUnlock() + + m.mutex.Lock() + // no need to check the two error conditions from above again + // * maxStream can only increase, so if the id was valid before, it definitely is valid now + // * highestStream is only modified by this function + for newID := m.nextStreamToOpen; newID <= id; newID += 4 { + m.streams[newID] = m.newStream(newID) + m.cond.Signal() + } + m.nextStreamToOpen = id + 4 + s := m.streams[id] + m.mutex.Unlock() + return s, nil +} + +func (m *incomingUniStreamsMap) DeleteStream(id protocol.StreamID) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + return m.deleteStream(id) +} + +func (m *incomingUniStreamsMap) deleteStream(id protocol.StreamID) error { + if _, ok := m.streams[id]; !ok { + return fmt.Errorf("Tried to delete unknown stream %d", id) + } + + // Don't delete this stream yet, if it was not yet accepted. + // Just save it to streamsToDelete map, to make sure it is deleted as soon as it gets accepted. + if id >= m.nextStreamToAccept { + if _, ok := m.streamsToDelete[id]; ok { + return fmt.Errorf("Tried to delete stream %d multiple times", id) + } + m.streamsToDelete[id] = struct{}{} + return nil + } + + delete(m.streams, id) + // queue a MAX_STREAM_ID frame, giving the peer the option to open a new stream + if m.maxNumStreams > uint64(len(m.streams)) { + numNewStreams := m.maxNumStreams - uint64(len(m.streams)) + m.maxStream = m.nextStreamToOpen + protocol.StreamID((numNewStreams-1)*4) + m.queueMaxStreamID(&wire.MaxStreamsFrame{ + Type: protocol.StreamTypeUni, + MaxStreams: m.maxStream.StreamNum(), + }) + } + return nil +} + +func (m *incomingUniStreamsMap) CloseWithError(err error) { + m.mutex.Lock() + m.closeErr = err + for _, str := range m.streams { + str.closeForShutdown(err) + } + m.mutex.Unlock() + m.cond.Broadcast() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_bidi.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_bidi.go new file mode 100644 index 00000000..a4457775 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_bidi.go @@ -0,0 +1,147 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package quic + +import ( + "fmt" + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type outgoingBidiStreamsMap struct { + mutex sync.RWMutex + cond sync.Cond + + streams map[protocol.StreamID]streamI + + nextStream protocol.StreamID // stream ID of the stream returned by OpenStream(Sync) + maxStream protocol.StreamID // the maximum stream ID we're allowed to open + maxStreamSet bool // was maxStream set. If not, it's not possible to any stream (also works for stream 0) + blockedSent bool // was a STREAMS_BLOCKED sent for the current maxStream + + newStream func(protocol.StreamID) streamI + queueStreamIDBlocked func(*wire.StreamsBlockedFrame) + + closeErr error +} + +func newOutgoingBidiStreamsMap( + nextStream protocol.StreamID, + newStream func(protocol.StreamID) streamI, + queueControlFrame func(wire.Frame), +) *outgoingBidiStreamsMap { + m := &outgoingBidiStreamsMap{ + streams: make(map[protocol.StreamID]streamI), + nextStream: nextStream, + newStream: newStream, + queueStreamIDBlocked: func(f *wire.StreamsBlockedFrame) { queueControlFrame(f) }, + } + m.cond.L = &m.mutex + return m +} + +func (m *outgoingBidiStreamsMap) OpenStream() (streamI, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + if m.closeErr != nil { + return nil, m.closeErr + } + + str, err := m.openStreamImpl() + if err != nil { + return nil, streamOpenErr{err} + } + return str, nil +} + +func (m *outgoingBidiStreamsMap) OpenStreamSync() (streamI, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + for { + if m.closeErr != nil { + return nil, m.closeErr + } + str, err := m.openStreamImpl() + if err == nil { + return str, nil + } + if err != nil && err != errTooManyOpenStreams { + return nil, streamOpenErr{err} + } + m.cond.Wait() + } +} + +func (m *outgoingBidiStreamsMap) openStreamImpl() (streamI, error) { + if !m.maxStreamSet || m.nextStream > m.maxStream { + if !m.blockedSent { + if m.maxStreamSet { + m.queueStreamIDBlocked(&wire.StreamsBlockedFrame{ + Type: protocol.StreamTypeBidi, + StreamLimit: m.maxStream.StreamNum(), + }) + } else { + m.queueStreamIDBlocked(&wire.StreamsBlockedFrame{ + Type: protocol.StreamTypeBidi, + StreamLimit: 0, + }) + } + m.blockedSent = true + } + return nil, errTooManyOpenStreams + } + s := m.newStream(m.nextStream) + m.streams[m.nextStream] = s + m.nextStream += 4 + return s, nil +} + +func (m *outgoingBidiStreamsMap) GetStream(id protocol.StreamID) (streamI, error) { + m.mutex.RLock() + if id >= m.nextStream { + m.mutex.RUnlock() + return nil, qerr.Error(qerr.StreamStateError, fmt.Sprintf("peer attempted to open stream %d", id)) + } + s := m.streams[id] + m.mutex.RUnlock() + return s, nil +} + +func (m *outgoingBidiStreamsMap) DeleteStream(id protocol.StreamID) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + if _, ok := m.streams[id]; !ok { + return fmt.Errorf("Tried to delete unknown stream %d", id) + } + delete(m.streams, id) + return nil +} + +func (m *outgoingBidiStreamsMap) SetMaxStream(id protocol.StreamID) { + m.mutex.Lock() + if !m.maxStreamSet || id > m.maxStream { + m.maxStream = id + m.maxStreamSet = true + m.blockedSent = false + m.cond.Broadcast() + } + m.mutex.Unlock() +} + +func (m *outgoingBidiStreamsMap) CloseWithError(err error) { + m.mutex.Lock() + m.closeErr = err + for _, str := range m.streams { + str.closeForShutdown(err) + } + m.cond.Broadcast() + m.mutex.Unlock() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_generic.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_generic.go new file mode 100644 index 00000000..c0657b90 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_generic.go @@ -0,0 +1,145 @@ +package quic + +import ( + "fmt" + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +//go:generate genny -in $GOFILE -out streams_map_outgoing_bidi.go gen "item=streamI Item=BidiStream streamTypeGeneric=protocol.StreamTypeBidi" +//go:generate genny -in $GOFILE -out streams_map_outgoing_uni.go gen "item=sendStreamI Item=UniStream streamTypeGeneric=protocol.StreamTypeUni" +type outgoingItemsMap struct { + mutex sync.RWMutex + cond sync.Cond + + streams map[protocol.StreamID]item + + nextStream protocol.StreamID // stream ID of the stream returned by OpenStream(Sync) + maxStream protocol.StreamID // the maximum stream ID we're allowed to open + maxStreamSet bool // was maxStream set. If not, it's not possible to any stream (also works for stream 0) + blockedSent bool // was a STREAMS_BLOCKED sent for the current maxStream + + newStream func(protocol.StreamID) item + queueStreamIDBlocked func(*wire.StreamsBlockedFrame) + + closeErr error +} + +func newOutgoingItemsMap( + nextStream protocol.StreamID, + newStream func(protocol.StreamID) item, + queueControlFrame func(wire.Frame), +) *outgoingItemsMap { + m := &outgoingItemsMap{ + streams: make(map[protocol.StreamID]item), + nextStream: nextStream, + newStream: newStream, + queueStreamIDBlocked: func(f *wire.StreamsBlockedFrame) { queueControlFrame(f) }, + } + m.cond.L = &m.mutex + return m +} + +func (m *outgoingItemsMap) OpenStream() (item, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + if m.closeErr != nil { + return nil, m.closeErr + } + + str, err := m.openStreamImpl() + if err != nil { + return nil, streamOpenErr{err} + } + return str, nil +} + +func (m *outgoingItemsMap) OpenStreamSync() (item, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + for { + if m.closeErr != nil { + return nil, m.closeErr + } + str, err := m.openStreamImpl() + if err == nil { + return str, nil + } + if err != nil && err != errTooManyOpenStreams { + return nil, streamOpenErr{err} + } + m.cond.Wait() + } +} + +func (m *outgoingItemsMap) openStreamImpl() (item, error) { + if !m.maxStreamSet || m.nextStream > m.maxStream { + if !m.blockedSent { + if m.maxStreamSet { + m.queueStreamIDBlocked(&wire.StreamsBlockedFrame{ + Type: streamTypeGeneric, + StreamLimit: m.maxStream.StreamNum(), + }) + } else { + m.queueStreamIDBlocked(&wire.StreamsBlockedFrame{ + Type: streamTypeGeneric, + StreamLimit: 0, + }) + } + m.blockedSent = true + } + return nil, errTooManyOpenStreams + } + s := m.newStream(m.nextStream) + m.streams[m.nextStream] = s + m.nextStream += 4 + return s, nil +} + +func (m *outgoingItemsMap) GetStream(id protocol.StreamID) (item, error) { + m.mutex.RLock() + if id >= m.nextStream { + m.mutex.RUnlock() + return nil, qerr.Error(qerr.StreamStateError, fmt.Sprintf("peer attempted to open stream %d", id)) + } + s := m.streams[id] + m.mutex.RUnlock() + return s, nil +} + +func (m *outgoingItemsMap) DeleteStream(id protocol.StreamID) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + if _, ok := m.streams[id]; !ok { + return fmt.Errorf("Tried to delete unknown stream %d", id) + } + delete(m.streams, id) + return nil +} + +func (m *outgoingItemsMap) SetMaxStream(id protocol.StreamID) { + m.mutex.Lock() + if !m.maxStreamSet || id > m.maxStream { + m.maxStream = id + m.maxStreamSet = true + m.blockedSent = false + m.cond.Broadcast() + } + m.mutex.Unlock() +} + +func (m *outgoingItemsMap) CloseWithError(err error) { + m.mutex.Lock() + m.closeErr = err + for _, str := range m.streams { + str.closeForShutdown(err) + } + m.cond.Broadcast() + m.mutex.Unlock() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_uni.go b/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_uni.go new file mode 100644 index 00000000..a38240a6 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/streams_map_outgoing_uni.go @@ -0,0 +1,147 @@ +// This file was automatically generated by genny. +// Any changes will be lost if this file is regenerated. +// see https://github.com/cheekybits/genny + +package quic + +import ( + "fmt" + "sync" + + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/qerr" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type outgoingUniStreamsMap struct { + mutex sync.RWMutex + cond sync.Cond + + streams map[protocol.StreamID]sendStreamI + + nextStream protocol.StreamID // stream ID of the stream returned by OpenStream(Sync) + maxStream protocol.StreamID // the maximum stream ID we're allowed to open + maxStreamSet bool // was maxStream set. If not, it's not possible to any stream (also works for stream 0) + blockedSent bool // was a STREAMS_BLOCKED sent for the current maxStream + + newStream func(protocol.StreamID) sendStreamI + queueStreamIDBlocked func(*wire.StreamsBlockedFrame) + + closeErr error +} + +func newOutgoingUniStreamsMap( + nextStream protocol.StreamID, + newStream func(protocol.StreamID) sendStreamI, + queueControlFrame func(wire.Frame), +) *outgoingUniStreamsMap { + m := &outgoingUniStreamsMap{ + streams: make(map[protocol.StreamID]sendStreamI), + nextStream: nextStream, + newStream: newStream, + queueStreamIDBlocked: func(f *wire.StreamsBlockedFrame) { queueControlFrame(f) }, + } + m.cond.L = &m.mutex + return m +} + +func (m *outgoingUniStreamsMap) OpenStream() (sendStreamI, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + if m.closeErr != nil { + return nil, m.closeErr + } + + str, err := m.openStreamImpl() + if err != nil { + return nil, streamOpenErr{err} + } + return str, nil +} + +func (m *outgoingUniStreamsMap) OpenStreamSync() (sendStreamI, error) { + m.mutex.Lock() + defer m.mutex.Unlock() + + for { + if m.closeErr != nil { + return nil, m.closeErr + } + str, err := m.openStreamImpl() + if err == nil { + return str, nil + } + if err != nil && err != errTooManyOpenStreams { + return nil, streamOpenErr{err} + } + m.cond.Wait() + } +} + +func (m *outgoingUniStreamsMap) openStreamImpl() (sendStreamI, error) { + if !m.maxStreamSet || m.nextStream > m.maxStream { + if !m.blockedSent { + if m.maxStreamSet { + m.queueStreamIDBlocked(&wire.StreamsBlockedFrame{ + Type: protocol.StreamTypeUni, + StreamLimit: m.maxStream.StreamNum(), + }) + } else { + m.queueStreamIDBlocked(&wire.StreamsBlockedFrame{ + Type: protocol.StreamTypeUni, + StreamLimit: 0, + }) + } + m.blockedSent = true + } + return nil, errTooManyOpenStreams + } + s := m.newStream(m.nextStream) + m.streams[m.nextStream] = s + m.nextStream += 4 + return s, nil +} + +func (m *outgoingUniStreamsMap) GetStream(id protocol.StreamID) (sendStreamI, error) { + m.mutex.RLock() + if id >= m.nextStream { + m.mutex.RUnlock() + return nil, qerr.Error(qerr.StreamStateError, fmt.Sprintf("peer attempted to open stream %d", id)) + } + s := m.streams[id] + m.mutex.RUnlock() + return s, nil +} + +func (m *outgoingUniStreamsMap) DeleteStream(id protocol.StreamID) error { + m.mutex.Lock() + defer m.mutex.Unlock() + + if _, ok := m.streams[id]; !ok { + return fmt.Errorf("Tried to delete unknown stream %d", id) + } + delete(m.streams, id) + return nil +} + +func (m *outgoingUniStreamsMap) SetMaxStream(id protocol.StreamID) { + m.mutex.Lock() + if !m.maxStreamSet || id > m.maxStream { + m.maxStream = id + m.maxStreamSet = true + m.blockedSent = false + m.cond.Broadcast() + } + m.mutex.Unlock() +} + +func (m *outgoingUniStreamsMap) CloseWithError(err error) { + m.mutex.Lock() + m.closeErr = err + for _, str := range m.streams { + str.closeForShutdown(err) + } + m.cond.Broadcast() + m.mutex.Unlock() +} diff --git a/vendor/github.com/lucas-clemente/quic-go/window_update_queue.go b/vendor/github.com/lucas-clemente/quic-go/window_update_queue.go new file mode 100644 index 00000000..64b912a3 --- /dev/null +++ b/vendor/github.com/lucas-clemente/quic-go/window_update_queue.go @@ -0,0 +1,71 @@ +package quic + +import ( + "sync" + + "github.com/lucas-clemente/quic-go/internal/flowcontrol" + "github.com/lucas-clemente/quic-go/internal/protocol" + "github.com/lucas-clemente/quic-go/internal/wire" +) + +type windowUpdateQueue struct { + mutex sync.Mutex + + queue map[protocol.StreamID]bool // used as a set + queuedConn bool // connection-level window update + + streamGetter streamGetter + connFlowController flowcontrol.ConnectionFlowController + callback func(wire.Frame) +} + +func newWindowUpdateQueue( + streamGetter streamGetter, + connFC flowcontrol.ConnectionFlowController, + cb func(wire.Frame), +) *windowUpdateQueue { + return &windowUpdateQueue{ + queue: make(map[protocol.StreamID]bool), + streamGetter: streamGetter, + connFlowController: connFC, + callback: cb, + } +} + +func (q *windowUpdateQueue) AddStream(id protocol.StreamID) { + q.mutex.Lock() + q.queue[id] = true + q.mutex.Unlock() +} + +func (q *windowUpdateQueue) AddConnection() { + q.mutex.Lock() + q.queuedConn = true + q.mutex.Unlock() +} + +func (q *windowUpdateQueue) QueueAll() { + q.mutex.Lock() + // queue a connection-level window update + if q.queuedConn { + q.callback(&wire.MaxDataFrame{ByteOffset: q.connFlowController.GetWindowUpdate()}) + q.queuedConn = false + } + // queue all stream-level window updates + for id := range q.queue { + str, err := q.streamGetter.GetOrOpenReceiveStream(id) + if err != nil || str == nil { // the stream can be nil if it was completed before dequeing the window update + continue + } + offset := str.getWindowUpdate() + if offset == 0 { // can happen if we received a final offset, right after queueing the window update + continue + } + q.callback(&wire.MaxStreamDataFrame{ + StreamID: id, + ByteOffset: offset, + }) + delete(q.queue, id) + } + q.mutex.Unlock() +} diff --git a/vendor/github.com/marten-seemann/qtls/alert.go b/vendor/github.com/marten-seemann/qtls/alert.go new file mode 100644 index 00000000..ba1c9ce3 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/alert.go @@ -0,0 +1,88 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import "strconv" + +type alert uint8 + +// Alert is a TLS alert +type Alert = alert + +const ( + // alert level + alertLevelWarning = 1 + alertLevelError = 2 +) + +const ( + alertCloseNotify alert = 0 + alertUnexpectedMessage alert = 10 + alertBadRecordMAC alert = 20 + alertDecryptionFailed alert = 21 + alertRecordOverflow alert = 22 + alertDecompressionFailure alert = 30 + alertHandshakeFailure alert = 40 + alertBadCertificate alert = 42 + alertUnsupportedCertificate alert = 43 + alertCertificateRevoked alert = 44 + alertCertificateExpired alert = 45 + alertCertificateUnknown alert = 46 + alertIllegalParameter alert = 47 + alertUnknownCA alert = 48 + alertAccessDenied alert = 49 + alertDecodeError alert = 50 + alertDecryptError alert = 51 + alertProtocolVersion alert = 70 + alertInsufficientSecurity alert = 71 + alertInternalError alert = 80 + alertInappropriateFallback alert = 86 + alertUserCanceled alert = 90 + alertNoRenegotiation alert = 100 + alertMissingExtension alert = 109 + alertUnsupportedExtension alert = 110 + alertNoApplicationProtocol alert = 120 +) + +var alertText = map[alert]string{ + alertCloseNotify: "close notify", + alertUnexpectedMessage: "unexpected message", + alertBadRecordMAC: "bad record MAC", + alertDecryptionFailed: "decryption failed", + alertRecordOverflow: "record overflow", + alertDecompressionFailure: "decompression failure", + alertHandshakeFailure: "handshake failure", + alertBadCertificate: "bad certificate", + alertUnsupportedCertificate: "unsupported certificate", + alertCertificateRevoked: "revoked certificate", + alertCertificateExpired: "expired certificate", + alertCertificateUnknown: "unknown certificate", + alertIllegalParameter: "illegal parameter", + alertUnknownCA: "unknown certificate authority", + alertAccessDenied: "access denied", + alertDecodeError: "error decoding message", + alertDecryptError: "error decrypting message", + alertProtocolVersion: "protocol version not supported", + alertInsufficientSecurity: "insufficient security level", + alertInternalError: "internal error", + alertInappropriateFallback: "inappropriate fallback", + alertUserCanceled: "user canceled", + alertNoRenegotiation: "no renegotiation", + alertMissingExtension: "missing extension", + alertUnsupportedExtension: "unsupported extension", + alertNoApplicationProtocol: "no application protocol", +} + +func (e alert) String() string { + s, ok := alertText[e] + if ok { + return "tls: " + s + } + return "tls: alert(" + strconv.Itoa(int(e)) + ")" +} + +func (e alert) Error() string { + return e.String() +} diff --git a/vendor/github.com/marten-seemann/qtls/auth.go b/vendor/github.com/marten-seemann/qtls/auth.go new file mode 100644 index 00000000..b8fd7f9b --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/auth.go @@ -0,0 +1,221 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "encoding/asn1" + "errors" + "fmt" + "hash" + "io" +) + +// pickSignatureAlgorithm selects a signature algorithm that is compatible with +// the given public key and the list of algorithms from the peer and this side. +// The lists of signature algorithms (peerSigAlgs and ourSigAlgs) are ignored +// for tlsVersion < VersionTLS12. +// +// The returned SignatureScheme codepoint is only meaningful for TLS 1.2, +// previous TLS versions have a fixed hash function. +func pickSignatureAlgorithm(pubkey crypto.PublicKey, peerSigAlgs, ourSigAlgs []SignatureScheme, tlsVersion uint16) (sigAlg SignatureScheme, sigType uint8, hashFunc crypto.Hash, err error) { + if tlsVersion < VersionTLS12 || len(peerSigAlgs) == 0 { + // For TLS 1.1 and before, the signature algorithm could not be + // negotiated and the hash is fixed based on the signature type. For TLS + // 1.2, if the client didn't send signature_algorithms extension then we + // can assume that it supports SHA1. See RFC 5246, Section 7.4.1.4.1. + switch pubkey.(type) { + case *rsa.PublicKey: + if tlsVersion < VersionTLS12 { + return 0, signaturePKCS1v15, crypto.MD5SHA1, nil + } else { + return PKCS1WithSHA1, signaturePKCS1v15, crypto.SHA1, nil + } + case *ecdsa.PublicKey: + return ECDSAWithSHA1, signatureECDSA, crypto.SHA1, nil + default: + return 0, 0, 0, fmt.Errorf("tls: unsupported public key: %T", pubkey) + } + } + for _, sigAlg := range peerSigAlgs { + if !isSupportedSignatureAlgorithm(sigAlg, ourSigAlgs) { + continue + } + hashAlg, err := hashFromSignatureScheme(sigAlg) + if err != nil { + panic("tls: supported signature algorithm has an unknown hash function") + } + sigType := signatureFromSignatureScheme(sigAlg) + switch pubkey.(type) { + case *rsa.PublicKey: + if sigType == signaturePKCS1v15 || sigType == signatureRSAPSS { + return sigAlg, sigType, hashAlg, nil + } + case *ecdsa.PublicKey: + if sigType == signatureECDSA { + return sigAlg, sigType, hashAlg, nil + } + default: + return 0, 0, 0, fmt.Errorf("tls: unsupported public key: %T", pubkey) + } + } + return 0, 0, 0, errors.New("tls: peer doesn't support any common signature algorithms") +} + +// verifyHandshakeSignature verifies a signature against pre-hashed handshake +// contents. +func verifyHandshakeSignature(sigType uint8, pubkey crypto.PublicKey, hashFunc crypto.Hash, digest, sig []byte) error { + switch sigType { + case signatureECDSA: + pubKey, ok := pubkey.(*ecdsa.PublicKey) + if !ok { + return errors.New("tls: ECDSA signing requires a ECDSA public key") + } + ecdsaSig := new(ecdsaSignature) + if _, err := asn1.Unmarshal(sig, ecdsaSig); err != nil { + return err + } + if ecdsaSig.R.Sign() <= 0 || ecdsaSig.S.Sign() <= 0 { + return errors.New("tls: ECDSA signature contained zero or negative values") + } + if !ecdsa.Verify(pubKey, digest, ecdsaSig.R, ecdsaSig.S) { + return errors.New("tls: ECDSA verification failure") + } + case signaturePKCS1v15: + pubKey, ok := pubkey.(*rsa.PublicKey) + if !ok { + return errors.New("tls: RSA signing requires a RSA public key") + } + if err := rsa.VerifyPKCS1v15(pubKey, hashFunc, digest, sig); err != nil { + return err + } + case signatureRSAPSS: + pubKey, ok := pubkey.(*rsa.PublicKey) + if !ok { + return errors.New("tls: RSA signing requires a RSA public key") + } + signOpts := &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash} + if err := rsa.VerifyPSS(pubKey, hashFunc, digest, sig, signOpts); err != nil { + return err + } + default: + return errors.New("tls: unknown signature algorithm") + } + return nil +} + +const ( + serverSignatureContext = "TLS 1.3, server CertificateVerify\x00" + clientSignatureContext = "TLS 1.3, client CertificateVerify\x00" +) + +var signaturePadding = []byte{ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +} + +// writeSignedMessage writes the content to be signed by certificate keys in TLS +// 1.3 to sigHash. See RFC 8446, Section 4.4.3. +func writeSignedMessage(sigHash io.Writer, context string, transcript hash.Hash) { + sigHash.Write(signaturePadding) + io.WriteString(sigHash, context) + sigHash.Write(transcript.Sum(nil)) +} + +// signatureSchemesForCertificate returns the list of supported SignatureSchemes +// for a given certificate, based on the public key and the protocol version. It +// does not support the crypto.Decrypter interface, so shouldn't be used on the +// server side in TLS 1.2 and earlier. +func signatureSchemesForCertificate(version uint16, cert *Certificate) []SignatureScheme { + priv, ok := cert.PrivateKey.(crypto.Signer) + if !ok { + return nil + } + + switch pub := priv.Public().(type) { + case *ecdsa.PublicKey: + if version != VersionTLS13 { + // In TLS 1.2 and earlier, ECDSA algorithms are not + // constrained to a single curve. + return []SignatureScheme{ + ECDSAWithP256AndSHA256, + ECDSAWithP384AndSHA384, + ECDSAWithP521AndSHA512, + ECDSAWithSHA1, + } + } + switch pub.Curve { + case elliptic.P256(): + return []SignatureScheme{ECDSAWithP256AndSHA256} + case elliptic.P384(): + return []SignatureScheme{ECDSAWithP384AndSHA384} + case elliptic.P521(): + return []SignatureScheme{ECDSAWithP521AndSHA512} + default: + return nil + } + case *rsa.PublicKey: + if version != VersionTLS13 { + return []SignatureScheme{ + PSSWithSHA256, + PSSWithSHA384, + PSSWithSHA512, + PKCS1WithSHA256, + PKCS1WithSHA384, + PKCS1WithSHA512, + PKCS1WithSHA1, + } + } + // RSA keys with RSA-PSS OID are not supported by crypto/x509. + return []SignatureScheme{ + PSSWithSHA256, + PSSWithSHA384, + PSSWithSHA512, + } + default: + return nil + } +} + +// unsupportedCertificateError returns a helpful error for certificates with +// an unsupported private key. +func unsupportedCertificateError(cert *Certificate) error { + switch cert.PrivateKey.(type) { + case rsa.PrivateKey, ecdsa.PrivateKey: + return fmt.Errorf("tls: unsupported certificate: private key is %T, expected *%T", + cert.PrivateKey, cert.PrivateKey) + } + + signer, ok := cert.PrivateKey.(crypto.Signer) + if !ok { + return fmt.Errorf("tls: certificate private key (%T) does not implement crypto.Signer", + cert.PrivateKey) + } + + switch pub := signer.Public().(type) { + case *ecdsa.PublicKey: + switch pub.Curve { + case elliptic.P256(): + case elliptic.P384(): + case elliptic.P521(): + default: + return fmt.Errorf("tls: unsupported certificate curve (%s)", pub.Curve.Params().Name) + } + case *rsa.PublicKey: + default: + return fmt.Errorf("tls: unsupported certificate key (%T)", pub) + } + + return fmt.Errorf("tls: internal error: unsupported key (%T)", cert.PrivateKey) +} diff --git a/vendor/github.com/marten-seemann/qtls/cipher_suites.go b/vendor/github.com/marten-seemann/qtls/cipher_suites.go new file mode 100644 index 00000000..e0b7e2f1 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/cipher_suites.go @@ -0,0 +1,487 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "crypto" + "crypto/aes" + "crypto/cipher" + "crypto/des" + "crypto/hmac" + "crypto/rc4" + "crypto/sha1" + "crypto/sha256" + "crypto/x509" + "hash" + + "golang.org/x/crypto/chacha20poly1305" +) + +// a keyAgreement implements the client and server side of a TLS key agreement +// protocol by generating and processing key exchange messages. +type keyAgreement interface { + // On the server side, the first two methods are called in order. + + // In the case that the key agreement protocol doesn't use a + // ServerKeyExchange message, generateServerKeyExchange can return nil, + // nil. + generateServerKeyExchange(*Config, *Certificate, *clientHelloMsg, *serverHelloMsg) (*serverKeyExchangeMsg, error) + processClientKeyExchange(*Config, *Certificate, *clientKeyExchangeMsg, uint16) ([]byte, error) + + // On the client side, the next two methods are called in order. + + // This method may not be called if the server doesn't send a + // ServerKeyExchange message. + processServerKeyExchange(*Config, *clientHelloMsg, *serverHelloMsg, *x509.Certificate, *serverKeyExchangeMsg) error + generateClientKeyExchange(*Config, *clientHelloMsg, *x509.Certificate) ([]byte, *clientKeyExchangeMsg, error) +} + +const ( + // suiteECDH indicates that the cipher suite involves elliptic curve + // Diffie-Hellman. This means that it should only be selected when the + // client indicates that it supports ECC with a curve and point format + // that we're happy with. + suiteECDHE = 1 << iota + // suiteECDSA indicates that the cipher suite involves an ECDSA + // signature and therefore may only be selected when the server's + // certificate is ECDSA. If this is not set then the cipher suite is + // RSA based. + suiteECDSA + // suiteTLS12 indicates that the cipher suite should only be advertised + // and accepted when using TLS 1.2. + suiteTLS12 + // suiteSHA384 indicates that the cipher suite uses SHA384 as the + // handshake hash. + suiteSHA384 + // suiteDefaultOff indicates that this cipher suite is not included by + // default. + suiteDefaultOff +) + +type CipherSuite struct { + *cipherSuiteTLS13 +} + +func (c *CipherSuite) Hash() crypto.Hash { return c.hash } +func (c *CipherSuite) KeyLen() int { return c.keyLen } +func (c *CipherSuite) IVLen() int { return aeadNonceLength } +func (c *CipherSuite) AEAD(key, fixedNonce []byte) cipher.AEAD { return c.aead(key, fixedNonce) } + +// A cipherSuite is a specific combination of key agreement, cipher and MAC function. +type cipherSuite struct { + id uint16 + // the lengths, in bytes, of the key material needed for each component. + keyLen int + macLen int + ivLen int + ka func(version uint16) keyAgreement + // flags is a bitmask of the suite* values, above. + flags int + cipher func(key, iv []byte, isRead bool) interface{} + mac func(version uint16, macKey []byte) macFunction + aead func(key, fixedNonce []byte) aead +} + +var cipherSuites = []*cipherSuite{ + // Ciphersuite order is chosen so that ECDHE comes before plain RSA and + // AEADs are the top preference. + {TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, 32, 0, 12, ecdheRSAKA, suiteECDHE | suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, 32, 0, 12, ecdheECDSAKA, suiteECDHE | suiteECDSA | suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, ecdheRSAKA, suiteECDHE | suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, ecdheECDSAKA, suiteECDHE | suiteECDSA | suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, ecdheRSAKA, suiteECDHE | suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, ecdheECDSAKA, suiteECDHE | suiteECDSA | suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, ecdheRSAKA, suiteECDHE | suiteTLS12 | suiteDefaultOff, cipherAES, macSHA256, nil}, + {TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, ecdheRSAKA, suiteECDHE, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, ecdheECDSAKA, suiteECDHE | suiteECDSA | suiteTLS12 | suiteDefaultOff, cipherAES, macSHA256, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 16, 20, 16, ecdheECDSAKA, suiteECDHE | suiteECDSA, cipherAES, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, ecdheRSAKA, suiteECDHE, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, 32, 20, 16, ecdheECDSAKA, suiteECDHE | suiteECDSA, cipherAES, macSHA1, nil}, + {TLS_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, rsaKA, suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, rsaKA, suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, rsaKA, suiteTLS12 | suiteDefaultOff, cipherAES, macSHA256, nil}, + {TLS_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, rsaKA, 0, cipherAES, macSHA1, nil}, + {TLS_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, rsaKA, 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, ecdheRSAKA, suiteECDHE, cipher3DES, macSHA1, nil}, + {TLS_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, rsaKA, 0, cipher3DES, macSHA1, nil}, + + // RC4-based cipher suites are disabled by default. + {TLS_RSA_WITH_RC4_128_SHA, 16, 20, 0, rsaKA, suiteDefaultOff, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_RC4_128_SHA, 16, 20, 0, ecdheRSAKA, suiteECDHE | suiteDefaultOff, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, 16, 20, 0, ecdheECDSAKA, suiteECDHE | suiteECDSA | suiteDefaultOff, cipherRC4, macSHA1, nil}, +} + +// A cipherSuiteTLS13 defines only the pair of the AEAD algorithm and hash +// algorithm to be used with HKDF. See RFC 8446, Appendix B.4. +type cipherSuiteTLS13 struct { + id uint16 + keyLen int + aead func(key, fixedNonce []byte) aead + hash crypto.Hash +} + +var cipherSuitesTLS13 = []*cipherSuiteTLS13{ + {TLS_AES_128_GCM_SHA256, 16, aeadAESGCMTLS13, crypto.SHA256}, + {TLS_CHACHA20_POLY1305_SHA256, 32, aeadChaCha20Poly1305, crypto.SHA256}, + {TLS_AES_256_GCM_SHA384, 32, aeadAESGCMTLS13, crypto.SHA384}, +} + +func cipherRC4(key, iv []byte, isRead bool) interface{} { + cipher, _ := rc4.NewCipher(key) + return cipher +} + +func cipher3DES(key, iv []byte, isRead bool) interface{} { + block, _ := des.NewTripleDESCipher(key) + if isRead { + return cipher.NewCBCDecrypter(block, iv) + } + return cipher.NewCBCEncrypter(block, iv) +} + +func cipherAES(key, iv []byte, isRead bool) interface{} { + block, _ := aes.NewCipher(key) + if isRead { + return cipher.NewCBCDecrypter(block, iv) + } + return cipher.NewCBCEncrypter(block, iv) +} + +// macSHA1 returns a macFunction for the given protocol version. +func macSHA1(version uint16, key []byte) macFunction { + if version == VersionSSL30 { + mac := ssl30MAC{ + h: sha1.New(), + key: make([]byte, len(key)), + } + copy(mac.key, key) + return mac + } + return tls10MAC{h: hmac.New(newConstantTimeHash(sha1.New), key)} +} + +// macSHA256 returns a SHA-256 based MAC. These are only supported in TLS 1.2 +// so the given version is ignored. +func macSHA256(version uint16, key []byte) macFunction { + return tls10MAC{h: hmac.New(sha256.New, key)} +} + +type macFunction interface { + // Size returns the length of the MAC. + Size() int + // MAC appends the MAC of (seq, header, data) to out. The extra data is fed + // into the MAC after obtaining the result to normalize timing. The result + // is only valid until the next invocation of MAC as the buffer is reused. + MAC(seq, header, data, extra []byte) []byte +} + +type aead interface { + cipher.AEAD + + // explicitNonceLen returns the number of bytes of explicit nonce + // included in each record. This is eight for older AEADs and + // zero for modern ones. + explicitNonceLen() int +} + +const ( + aeadNonceLength = 12 + noncePrefixLength = 4 +) + +// prefixNonceAEAD wraps an AEAD and prefixes a fixed portion of the nonce to +// each call. +type prefixNonceAEAD struct { + // nonce contains the fixed part of the nonce in the first four bytes. + nonce [aeadNonceLength]byte + aead cipher.AEAD +} + +func (f *prefixNonceAEAD) NonceSize() int { return aeadNonceLength - noncePrefixLength } +func (f *prefixNonceAEAD) Overhead() int { return f.aead.Overhead() } +func (f *prefixNonceAEAD) explicitNonceLen() int { return f.NonceSize() } + +func (f *prefixNonceAEAD) Seal(out, nonce, plaintext, additionalData []byte) []byte { + copy(f.nonce[4:], nonce) + return f.aead.Seal(out, f.nonce[:], plaintext, additionalData) +} + +func (f *prefixNonceAEAD) Open(out, nonce, ciphertext, additionalData []byte) ([]byte, error) { + copy(f.nonce[4:], nonce) + return f.aead.Open(out, f.nonce[:], ciphertext, additionalData) +} + +// xoredNonceAEAD wraps an AEAD by XORing in a fixed pattern to the nonce +// before each call. +type xorNonceAEAD struct { + nonceMask [aeadNonceLength]byte + aead cipher.AEAD +} + +func (f *xorNonceAEAD) NonceSize() int { return 8 } // 64-bit sequence number +func (f *xorNonceAEAD) Overhead() int { return f.aead.Overhead() } +func (f *xorNonceAEAD) explicitNonceLen() int { return 0 } + +func (f *xorNonceAEAD) Seal(out, nonce, plaintext, additionalData []byte) []byte { + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + result := f.aead.Seal(out, f.nonceMask[:], plaintext, additionalData) + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + + return result +} + +func (f *xorNonceAEAD) Open(out, nonce, ciphertext, additionalData []byte) ([]byte, error) { + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + result, err := f.aead.Open(out, f.nonceMask[:], ciphertext, additionalData) + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + + return result, err +} + +func aeadAESGCM(key, noncePrefix []byte) aead { + if len(noncePrefix) != noncePrefixLength { + panic("tls: internal error: wrong nonce length") + } + aes, err := aes.NewCipher(key) + if err != nil { + panic(err) + } + aead, err := cipher.NewGCM(aes) + if err != nil { + panic(err) + } + + ret := &prefixNonceAEAD{aead: aead} + copy(ret.nonce[:], noncePrefix) + return ret +} + +// AEADAESGCMTLS13 creates a new AES-GCM AEAD for TLS 1.3 +func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { + return aeadAESGCMTLS13(key, fixedNonce) +} + +func aeadAESGCMTLS13(key, nonceMask []byte) aead { + if len(nonceMask) != aeadNonceLength { + panic("tls: internal error: wrong nonce length") + } + aes, err := aes.NewCipher(key) + if err != nil { + panic(err) + } + aead, err := cipher.NewGCM(aes) + if err != nil { + panic(err) + } + + ret := &xorNonceAEAD{aead: aead} + copy(ret.nonceMask[:], nonceMask) + return ret +} + +func aeadChaCha20Poly1305(key, nonceMask []byte) aead { + if len(nonceMask) != aeadNonceLength { + panic("tls: internal error: wrong nonce length") + } + aead, err := chacha20poly1305.New(key) + if err != nil { + panic(err) + } + + ret := &xorNonceAEAD{aead: aead} + copy(ret.nonceMask[:], nonceMask) + return ret +} + +// ssl30MAC implements the SSLv3 MAC function, as defined in +// www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt section 5.2.3.1 +type ssl30MAC struct { + h hash.Hash + key []byte + buf []byte +} + +func (s ssl30MAC) Size() int { + return s.h.Size() +} + +var ssl30Pad1 = [48]byte{0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36} + +var ssl30Pad2 = [48]byte{0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c} + +// MAC does not offer constant timing guarantees for SSL v3.0, since it's deemed +// useless considering the similar, protocol-level POODLE vulnerability. +func (s ssl30MAC) MAC(seq, header, data, extra []byte) []byte { + padLength := 48 + if s.h.Size() == 20 { + padLength = 40 + } + + s.h.Reset() + s.h.Write(s.key) + s.h.Write(ssl30Pad1[:padLength]) + s.h.Write(seq) + s.h.Write(header[:1]) + s.h.Write(header[3:5]) + s.h.Write(data) + s.buf = s.h.Sum(s.buf[:0]) + + s.h.Reset() + s.h.Write(s.key) + s.h.Write(ssl30Pad2[:padLength]) + s.h.Write(s.buf) + return s.h.Sum(s.buf[:0]) +} + +type constantTimeHash interface { + hash.Hash + ConstantTimeSum(b []byte) []byte +} + +// cthWrapper wraps any hash.Hash that implements ConstantTimeSum, and replaces +// with that all calls to Sum. It's used to obtain a ConstantTimeSum-based HMAC. +type cthWrapper struct { + h constantTimeHash +} + +func (c *cthWrapper) Size() int { return c.h.Size() } +func (c *cthWrapper) BlockSize() int { return c.h.BlockSize() } +func (c *cthWrapper) Reset() { c.h.Reset() } +func (c *cthWrapper) Write(p []byte) (int, error) { return c.h.Write(p) } +func (c *cthWrapper) Sum(b []byte) []byte { return c.h.ConstantTimeSum(b) } + +func newConstantTimeHash(h func() hash.Hash) func() hash.Hash { + return func() hash.Hash { + return &cthWrapper{h().(constantTimeHash)} + } +} + +// tls10MAC implements the TLS 1.0 MAC function. RFC 2246, Section 6.2.3. +type tls10MAC struct { + h hash.Hash + buf []byte +} + +func (s tls10MAC) Size() int { + return s.h.Size() +} + +// MAC is guaranteed to take constant time, as long as +// len(seq)+len(header)+len(data)+len(extra) is constant. extra is not fed into +// the MAC, but is only provided to make the timing profile constant. +func (s tls10MAC) MAC(seq, header, data, extra []byte) []byte { + s.h.Reset() + s.h.Write(seq) + s.h.Write(header) + s.h.Write(data) + res := s.h.Sum(s.buf[:0]) + if extra != nil { + s.h.Write(extra) + } + return res +} + +func rsaKA(version uint16) keyAgreement { + return rsaKeyAgreement{} +} + +func ecdheECDSAKA(version uint16) keyAgreement { + return &ecdheKeyAgreement{ + isRSA: false, + version: version, + } +} + +func ecdheRSAKA(version uint16) keyAgreement { + return &ecdheKeyAgreement{ + isRSA: true, + version: version, + } +} + +// mutualCipherSuite returns a cipherSuite given a list of supported +// ciphersuites and the id requested by the peer. +func mutualCipherSuite(have []uint16, want uint16) *cipherSuite { + for _, id := range have { + if id == want { + return cipherSuiteByID(id) + } + } + return nil +} + +func cipherSuiteByID(id uint16) *cipherSuite { + for _, cipherSuite := range cipherSuites { + if cipherSuite.id == id { + return cipherSuite + } + } + return nil +} + +func mutualCipherSuiteTLS13(have []uint16, want uint16) *cipherSuiteTLS13 { + for _, id := range have { + if id == want { + return cipherSuiteTLS13ByID(id) + } + } + return nil +} + +func cipherSuiteTLS13ByID(id uint16) *cipherSuiteTLS13 { + for _, cipherSuite := range cipherSuitesTLS13 { + if cipherSuite.id == id { + return cipherSuite + } + } + return nil +} + +// A list of cipher suite IDs that are, or have been, implemented by this +// package. +// +// Taken from https://www.iana.org/assignments/tls-parameters/tls-parameters.xml +const ( + // TLS 1.0 - 1.2 cipher suites. + TLS_RSA_WITH_RC4_128_SHA uint16 = 0x0005 + TLS_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x000a + TLS_RSA_WITH_AES_128_CBC_SHA uint16 = 0x002f + TLS_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0035 + TLS_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003c + TLS_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009c + TLS_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009d + TLS_ECDHE_ECDSA_WITH_RC4_128_SHA uint16 = 0xc007 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xc009 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xc00a + TLS_ECDHE_RSA_WITH_RC4_128_SHA uint16 = 0xc011 + TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xc012 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0xc013 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0xc014 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc023 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc027 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02f + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02b + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc030 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc02c + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 uint16 = 0xcca8 + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 uint16 = 0xcca9 + + // TLS 1.3 cipher suites. + TLS_AES_128_GCM_SHA256 uint16 = 0x1301 + TLS_AES_256_GCM_SHA384 uint16 = 0x1302 + TLS_CHACHA20_POLY1305_SHA256 uint16 = 0x1303 + + // TLS_FALLBACK_SCSV isn't a standard cipher suite but an indicator + // that the client is doing version fallback. See RFC 7507. + TLS_FALLBACK_SCSV uint16 = 0x5600 +) diff --git a/vendor/github.com/marten-seemann/qtls/common.go b/vendor/github.com/marten-seemann/qtls/common.go new file mode 100644 index 00000000..df4c98e8 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/common.go @@ -0,0 +1,1148 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "container/list" + "crypto/rand" + "crypto/sha512" + "crypto/tls" + "crypto/x509" + "errors" + "fmt" + "io" + "math/big" + "os" + "strings" + "sync" + "time" + + "golang.org/x/sys/cpu" +) + +const ( + VersionSSL30 = 0x0300 + VersionTLS10 = 0x0301 + VersionTLS11 = 0x0302 + VersionTLS12 = 0x0303 + VersionTLS13 = 0x0304 +) + +const ( + maxPlaintext = 16384 // maximum plaintext payload length + maxCiphertext = 16384 + 2048 // maximum ciphertext payload length + maxCiphertextTLS13 = 16384 + 256 // maximum ciphertext length in TLS 1.3 + recordHeaderLen = 5 // record header length + maxHandshake = 65536 // maximum handshake we support (protocol max is 16 MB) + maxUselessRecords = 16 // maximum number of consecutive non-advancing records +) + +// TLS record types. +type recordType uint8 + +const ( + recordTypeChangeCipherSpec recordType = 20 + recordTypeAlert recordType = 21 + recordTypeHandshake recordType = 22 + recordTypeApplicationData recordType = 23 +) + +// TLS handshake message types. +const ( + typeHelloRequest uint8 = 0 + typeClientHello uint8 = 1 + typeServerHello uint8 = 2 + typeNewSessionTicket uint8 = 4 + typeEndOfEarlyData uint8 = 5 + typeEncryptedExtensions uint8 = 8 + typeCertificate uint8 = 11 + typeServerKeyExchange uint8 = 12 + typeCertificateRequest uint8 = 13 + typeServerHelloDone uint8 = 14 + typeCertificateVerify uint8 = 15 + typeClientKeyExchange uint8 = 16 + typeFinished uint8 = 20 + typeCertificateStatus uint8 = 22 + typeKeyUpdate uint8 = 24 + typeNextProtocol uint8 = 67 // Not IANA assigned + typeMessageHash uint8 = 254 // synthetic message +) + +// TLS compression types. +const ( + compressionNone uint8 = 0 +) + +type Extension struct { + Type uint16 + Data []byte +} + +// TLS extension numbers +const ( + extensionServerName uint16 = 0 + extensionStatusRequest uint16 = 5 + extensionSupportedCurves uint16 = 10 // supported_groups in TLS 1.3, see RFC 8446, Section 4.2.7 + extensionSupportedPoints uint16 = 11 + extensionSignatureAlgorithms uint16 = 13 + extensionALPN uint16 = 16 + extensionSCT uint16 = 18 + extensionSessionTicket uint16 = 35 + extensionPreSharedKey uint16 = 41 + extensionEarlyData uint16 = 42 + extensionSupportedVersions uint16 = 43 + extensionCookie uint16 = 44 + extensionPSKModes uint16 = 45 + extensionCertificateAuthorities uint16 = 47 + extensionSignatureAlgorithmsCert uint16 = 50 + extensionKeyShare uint16 = 51 + extensionNextProtoNeg uint16 = 13172 // not IANA assigned + extensionRenegotiationInfo uint16 = 0xff01 +) + +// TLS signaling cipher suite values +const ( + scsvRenegotiation uint16 = 0x00ff +) + +// CurveID is a tls.CurveID +type CurveID = tls.CurveID + +const ( + CurveP256 CurveID = 23 + CurveP384 CurveID = 24 + CurveP521 CurveID = 25 + X25519 CurveID = 29 +) + +// TLS 1.3 Key Share. See RFC 8446, Section 4.2.8. +type keyShare struct { + group CurveID + data []byte +} + +// TLS 1.3 PSK Key Exchange Modes. See RFC 8446, Section 4.2.9. +const ( + pskModePlain uint8 = 0 + pskModeDHE uint8 = 1 +) + +// TLS 1.3 PSK Identity. Can be a Session Ticket, or a reference to a saved +// session. See RFC 8446, Section 4.2.11. +type pskIdentity struct { + label []byte + obfuscatedTicketAge uint32 +} + +// TLS Elliptic Curve Point Formats +// https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-9 +const ( + pointFormatUncompressed uint8 = 0 +) + +// TLS CertificateStatusType (RFC 3546) +const ( + statusTypeOCSP uint8 = 1 +) + +// Certificate types (for certificateRequestMsg) +const ( + certTypeRSASign = 1 + certTypeECDSASign = 64 // RFC 4492, Section 5.5 +) + +// Signature algorithms (for internal signaling use). Starting at 16 to avoid overlap with +// TLS 1.2 codepoints (RFC 5246, Appendix A.4.1), with which these have nothing to do. +const ( + signaturePKCS1v15 uint8 = iota + 16 + signatureECDSA + signatureRSAPSS +) + +// supportedSignatureAlgorithms contains the signature and hash algorithms that +// the code advertises as supported in a TLS 1.2+ ClientHello and in a TLS 1.2+ +// CertificateRequest. The two fields are merged to match with TLS 1.3. +// Note that in TLS 1.2, the ECDSA algorithms are not constrained to P-256, etc. +var supportedSignatureAlgorithms = []SignatureScheme{ + PSSWithSHA256, + PSSWithSHA384, + PSSWithSHA512, + PKCS1WithSHA256, + ECDSAWithP256AndSHA256, + PKCS1WithSHA384, + ECDSAWithP384AndSHA384, + PKCS1WithSHA512, + ECDSAWithP521AndSHA512, + PKCS1WithSHA1, + ECDSAWithSHA1, +} + +// RSA-PSS is disabled in TLS 1.2 for Go 1.12. See Issue 30055. +var supportedSignatureAlgorithmsTLS12 = supportedSignatureAlgorithms[3:] + +// helloRetryRequestRandom is set as the Random value of a ServerHello +// to signal that the message is actually a HelloRetryRequest. +var helloRetryRequestRandom = []byte{ // See RFC 8446, Section 4.1.3. + 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, + 0xBE, 0x1D, 0x8C, 0x02, 0x1E, 0x65, 0xB8, 0x91, + 0xC2, 0xA2, 0x11, 0x16, 0x7A, 0xBB, 0x8C, 0x5E, + 0x07, 0x9E, 0x09, 0xE2, 0xC8, 0xA8, 0x33, 0x9C, +} + +const ( + // downgradeCanaryTLS12 or downgradeCanaryTLS11 is embedded in the server + // random as a downgrade protection if the server would be capable of + // negotiating a higher version. See RFC 8446, Section 4.1.3. + downgradeCanaryTLS12 = "DOWNGRD\x01" + downgradeCanaryTLS11 = "DOWNGRD\x00" +) + +// ConnectionState records basic TLS details about the connection. +type ConnectionState struct { + Version uint16 // TLS version used by the connection (e.g. VersionTLS12) + HandshakeComplete bool // TLS handshake is complete + DidResume bool // connection resumes a previous TLS connection + CipherSuite uint16 // cipher suite in use (TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, ...) + NegotiatedProtocol string // negotiated next protocol (not guaranteed to be from Config.NextProtos) + NegotiatedProtocolIsMutual bool // negotiated protocol was advertised by server (client side only) + ServerName string // server name requested by client, if any (server side only) + PeerCertificates []*x509.Certificate // certificate chain presented by remote peer + VerifiedChains [][]*x509.Certificate // verified chains built from PeerCertificates + SignedCertificateTimestamps [][]byte // SCTs from the peer, if any + OCSPResponse []byte // stapled OCSP response from peer, if any + + // ekm is a closure exposed via ExportKeyingMaterial. + ekm func(label string, context []byte, length int) ([]byte, error) + + // TLSUnique contains the "tls-unique" channel binding value (see RFC + // 5929, section 3). For resumed sessions this value will be nil + // because resumption does not include enough context (see + // https://mitls.org/pages/attacks/3SHAKE#channelbindings). This will + // change in future versions of Go once the TLS master-secret fix has + // been standardized and implemented. It is not defined in TLS 1.3. + TLSUnique []byte +} + +// ExportKeyingMaterial returns length bytes of exported key material in a new +// slice as defined in RFC 5705. If context is nil, it is not used as part of +// the seed. If the connection was set to allow renegotiation via +// Config.Renegotiation, this function will return an error. +func (cs *ConnectionState) ExportKeyingMaterial(label string, context []byte, length int) ([]byte, error) { + return cs.ekm(label, context, length) +} + +// ClientAuthType is tls.ClientAuthType +type ClientAuthType = tls.ClientAuthType + +const ( + NoClientCert ClientAuthType = iota + RequestClientCert + RequireAnyClientCert + VerifyClientCertIfGiven + RequireAndVerifyClientCert +) + +// requiresClientCert reports whether the ClientAuthType requires a client +// certificate to be provided. +func requiresClientCert(c ClientAuthType) bool { + switch c { + case RequireAnyClientCert, RequireAndVerifyClientCert: + return true + default: + return false + } +} + +// ClientSessionState contains the state needed by clients to resume TLS +// sessions. +type ClientSessionState struct { + sessionTicket []uint8 // Encrypted ticket used for session resumption with server + vers uint16 // SSL/TLS version negotiated for the session + cipherSuite uint16 // Ciphersuite negotiated for the session + masterSecret []byte // Full handshake MasterSecret, or TLS 1.3 resumption_master_secret + serverCertificates []*x509.Certificate // Certificate chain presented by the server + verifiedChains [][]*x509.Certificate // Certificate chains we built for verification + receivedAt time.Time // When the session ticket was received from the server + + // TLS 1.3 fields. + nonce []byte // Ticket nonce sent by the server, to derive PSK + useBy time.Time // Expiration of the ticket lifetime as set by the server + ageAdd uint32 // Random obfuscation factor for sending the ticket age +} + +// ClientSessionCache is a cache of ClientSessionState objects that can be used +// by a client to resume a TLS session with a given server. ClientSessionCache +// implementations should expect to be called concurrently from different +// goroutines. Up to TLS 1.2, only ticket-based resumption is supported, not +// SessionID-based resumption. In TLS 1.3 they were merged into PSK modes, which +// are supported via this interface. +type ClientSessionCache interface { + // Get searches for a ClientSessionState associated with the given key. + // On return, ok is true if one was found. + Get(sessionKey string) (session *ClientSessionState, ok bool) + + // Put adds the ClientSessionState to the cache with the given key. It might + // get called multiple times in a connection if a TLS 1.3 server provides + // more than one session ticket. If called with a nil *ClientSessionState, + // it should remove the cache entry. + Put(sessionKey string, cs *ClientSessionState) +} + +// SignatureScheme is a tls.SignatureScheme +type SignatureScheme = tls.SignatureScheme + +const ( + // RSASSA-PKCS1-v1_5 algorithms. + PKCS1WithSHA256 SignatureScheme = 0x0401 + PKCS1WithSHA384 SignatureScheme = 0x0501 + PKCS1WithSHA512 SignatureScheme = 0x0601 + + // RSASSA-PSS algorithms with public key OID rsaEncryption. + PSSWithSHA256 SignatureScheme = 0x0804 + PSSWithSHA384 SignatureScheme = 0x0805 + PSSWithSHA512 SignatureScheme = 0x0806 + + // ECDSA algorithms. Only constrained to a specific curve in TLS 1.3. + ECDSAWithP256AndSHA256 SignatureScheme = 0x0403 + ECDSAWithP384AndSHA384 SignatureScheme = 0x0503 + ECDSAWithP521AndSHA512 SignatureScheme = 0x0603 + + // Legacy signature and hash algorithms for TLS 1.2. + PKCS1WithSHA1 SignatureScheme = 0x0201 + ECDSAWithSHA1 SignatureScheme = 0x0203 +) + +// A ClientHelloInfo is a tls.ClientHelloInfo +type ClientHelloInfo = tls.ClientHelloInfo + +// The CertificateRequestInfo is a tls.CertificateRequestInfo +type CertificateRequestInfo = tls.CertificateRequestInfo + +// RenegotiationSupport enumerates the different levels of support for TLS +// renegotiation. TLS renegotiation is the act of performing subsequent +// handshakes on a connection after the first. This significantly complicates +// the state machine and has been the source of numerous, subtle security +// issues. Initiating a renegotiation is not supported, but support for +// accepting renegotiation requests may be enabled. +// +// Even when enabled, the server may not change its identity between handshakes +// (i.e. the leaf certificate must be the same). Additionally, concurrent +// handshake and application data flow is not permitted so renegotiation can +// only be used with protocols that synchronise with the renegotiation, such as +// HTTPS. +// +// Renegotiation is not defined in TLS 1.3. +type RenegotiationSupport int + +const ( + // RenegotiateNever disables renegotiation. + RenegotiateNever RenegotiationSupport = iota + + // RenegotiateOnceAsClient allows a remote server to request + // renegotiation once per connection. + RenegotiateOnceAsClient + + // RenegotiateFreelyAsClient allows a remote server to repeatedly + // request renegotiation. + RenegotiateFreelyAsClient +) + +// A Config structure is used to configure a TLS client or server. +// After one has been passed to a TLS function it must not be +// modified. A Config may be reused; the tls package will also not +// modify it. +type Config struct { + // Rand provides the source of entropy for nonces and RSA blinding. + // If Rand is nil, TLS uses the cryptographic random reader in package + // crypto/rand. + // The Reader must be safe for use by multiple goroutines. + Rand io.Reader + + // Time returns the current time as the number of seconds since the epoch. + // If Time is nil, TLS uses time.Now. + Time func() time.Time + + // Certificates contains one or more certificate chains to present to + // the other side of the connection. Server configurations must include + // at least one certificate or else set GetCertificate. Clients doing + // client-authentication may set either Certificates or + // GetClientCertificate. + Certificates []Certificate + + // NameToCertificate maps from a certificate name to an element of + // Certificates. Note that a certificate name can be of the form + // '*.example.com' and so doesn't have to be a domain name as such. + // See Config.BuildNameToCertificate + // The nil value causes the first element of Certificates to be used + // for all connections. + NameToCertificate map[string]*Certificate + + // GetCertificate returns a Certificate based on the given + // ClientHelloInfo. It will only be called if the client supplies SNI + // information or if Certificates is empty. + // + // If GetCertificate is nil or returns nil, then the certificate is + // retrieved from NameToCertificate. If NameToCertificate is nil, the + // first element of Certificates will be used. + GetCertificate func(*ClientHelloInfo) (*Certificate, error) + + // GetClientCertificate, if not nil, is called when a server requests a + // certificate from a client. If set, the contents of Certificates will + // be ignored. + // + // If GetClientCertificate returns an error, the handshake will be + // aborted and that error will be returned. Otherwise + // GetClientCertificate must return a non-nil Certificate. If + // Certificate.Certificate is empty then no certificate will be sent to + // the server. If this is unacceptable to the server then it may abort + // the handshake. + // + // GetClientCertificate may be called multiple times for the same + // connection if renegotiation occurs or if TLS 1.3 is in use. + GetClientCertificate func(*CertificateRequestInfo) (*Certificate, error) + + // GetConfigForClient, if not nil, is called after a ClientHello is + // received from a client. It may return a non-nil Config in order to + // change the Config that will be used to handle this connection. If + // the returned Config is nil, the original Config will be used. The + // Config returned by this callback may not be subsequently modified. + // + // If GetConfigForClient is nil, the Config passed to Server() will be + // used for all connections. + // + // Uniquely for the fields in the returned Config, session ticket keys + // will be duplicated from the original Config if not set. + // Specifically, if SetSessionTicketKeys was called on the original + // config but not on the returned config then the ticket keys from the + // original config will be copied into the new config before use. + // Otherwise, if SessionTicketKey was set in the original config but + // not in the returned config then it will be copied into the returned + // config before use. If neither of those cases applies then the key + // material from the returned config will be used for session tickets. + GetConfigForClient func(*ClientHelloInfo) (*Config, error) + + // VerifyPeerCertificate, if not nil, is called after normal + // certificate verification by either a TLS client or server. It + // receives the raw ASN.1 certificates provided by the peer and also + // any verified chains that normal processing found. If it returns a + // non-nil error, the handshake is aborted and that error results. + // + // If normal verification fails then the handshake will abort before + // considering this callback. If normal verification is disabled by + // setting InsecureSkipVerify, or (for a server) when ClientAuth is + // RequestClientCert or RequireAnyClientCert, then this callback will + // be considered but the verifiedChains argument will always be nil. + VerifyPeerCertificate func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error + + // RootCAs defines the set of root certificate authorities + // that clients use when verifying server certificates. + // If RootCAs is nil, TLS uses the host's root CA set. + RootCAs *x509.CertPool + + // NextProtos is a list of supported application level protocols, in + // order of preference. + NextProtos []string + + // ServerName is used to verify the hostname on the returned + // certificates unless InsecureSkipVerify is given. It is also included + // in the client's handshake to support virtual hosting unless it is + // an IP address. + ServerName string + + // ClientAuth determines the server's policy for + // TLS Client Authentication. The default is NoClientCert. + ClientAuth ClientAuthType + + // ClientCAs defines the set of root certificate authorities + // that servers use if required to verify a client certificate + // by the policy in ClientAuth. + ClientCAs *x509.CertPool + + // InsecureSkipVerify controls whether a client verifies the + // server's certificate chain and host name. + // If InsecureSkipVerify is true, TLS accepts any certificate + // presented by the server and any host name in that certificate. + // In this mode, TLS is susceptible to man-in-the-middle attacks. + // This should be used only for testing. + InsecureSkipVerify bool + + // CipherSuites is a list of supported cipher suites for TLS versions up to + // TLS 1.2. If CipherSuites is nil, a default list of secure cipher suites + // is used, with a preference order based on hardware performance. The + // default cipher suites might change over Go versions. Note that TLS 1.3 + // ciphersuites are not configurable. + CipherSuites []uint16 + + // PreferServerCipherSuites controls whether the server selects the + // client's most preferred ciphersuite, or the server's most preferred + // ciphersuite. If true then the server's preference, as expressed in + // the order of elements in CipherSuites, is used. + PreferServerCipherSuites bool + + // SessionTicketsDisabled may be set to true to disable session ticket and + // PSK (resumption) support. Note that on clients, session ticket support is + // also disabled if ClientSessionCache is nil. + SessionTicketsDisabled bool + + // SessionTicketKey is used by TLS servers to provide session resumption. + // See RFC 5077 and the PSK mode of RFC 8446. If zero, it will be filled + // with random data before the first server handshake. + // + // If multiple servers are terminating connections for the same host + // they should all have the same SessionTicketKey. If the + // SessionTicketKey leaks, previously recorded and future TLS + // connections using that key might be compromised. + SessionTicketKey [32]byte + + // ClientSessionCache is a cache of ClientSessionState entries for TLS + // session resumption. It is only used by clients. + ClientSessionCache ClientSessionCache + + // MinVersion contains the minimum SSL/TLS version that is acceptable. + // If zero, then TLS 1.0 is taken as the minimum. + MinVersion uint16 + + // MaxVersion contains the maximum SSL/TLS version that is acceptable. + // If zero, then the maximum version supported by this package is used, + // which is currently TLS 1.3. + MaxVersion uint16 + + // CurvePreferences contains the elliptic curves that will be used in + // an ECDHE handshake, in preference order. If empty, the default will + // be used. The client will use the first preference as the type for + // its key share in TLS 1.3. This may change in the future. + CurvePreferences []CurveID + + // DynamicRecordSizingDisabled disables adaptive sizing of TLS records. + // When true, the largest possible TLS record size is always used. When + // false, the size of TLS records may be adjusted in an attempt to + // improve latency. + DynamicRecordSizingDisabled bool + + // Renegotiation controls what types of renegotiation are supported. + // The default, none, is correct for the vast majority of applications. + Renegotiation RenegotiationSupport + + // KeyLogWriter optionally specifies a destination for TLS master secrets + // in NSS key log format that can be used to allow external programs + // such as Wireshark to decrypt TLS connections. + // See https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format. + // Use of KeyLogWriter compromises security and should only be + // used for debugging. + KeyLogWriter io.Writer + + // GetExtensions, if not nil, is called before a message that allows + // sending of extensions is sent. + // Currently only implemented for the ClientHello message (for the client) + // and for the EncryptedExtensions message (for the server). + // Only valid for TLS 1.3. + GetExtensions func(handshakeMessageType uint8) []Extension + + // ReceivedExtensions, if not nil, is called when a message that allows the + // inclusion of extensions is received. + // It is called with an empty slice of extensions, if the message didn't + // contain any extensions. + // Currently only implemented for the ClientHello message (sent by the + // client) and for the EncryptedExtensions message (sent by the server). + // Only valid for TLS 1.3. + ReceivedExtensions func(handshakeMessageType uint8, exts []Extension) + + serverInitOnce sync.Once // guards calling (*Config).serverInit + + // mutex protects sessionTicketKeys. + mutex sync.RWMutex + // sessionTicketKeys contains zero or more ticket keys. If the length + // is zero, SessionTicketsDisabled must be true. The first key is used + // for new tickets and any subsequent keys can be used to decrypt old + // tickets. + sessionTicketKeys []ticketKey + + // AlternativeRecordLayer is used by QUIC + AlternativeRecordLayer RecordLayer +} + +type RecordLayer interface { + SetReadKey(suite *CipherSuite, trafficSecret []byte) + SetWriteKey(suite *CipherSuite, trafficSecret []byte) + ReadHandshakeMessage() ([]byte, error) + WriteRecord([]byte) (int, error) + SendAlert(uint8) +} + +// ticketKeyNameLen is the number of bytes of identifier that is prepended to +// an encrypted session ticket in order to identify the key used to encrypt it. +const ticketKeyNameLen = 16 + +// ticketKey is the internal representation of a session ticket key. +type ticketKey struct { + // keyName is an opaque byte string that serves to identify the session + // ticket key. It's exposed as plaintext in every session ticket. + keyName [ticketKeyNameLen]byte + aesKey [16]byte + hmacKey [16]byte +} + +// ticketKeyFromBytes converts from the external representation of a session +// ticket key to a ticketKey. Externally, session ticket keys are 32 random +// bytes and this function expands that into sufficient name and key material. +func ticketKeyFromBytes(b [32]byte) (key ticketKey) { + hashed := sha512.Sum512(b[:]) + copy(key.keyName[:], hashed[:ticketKeyNameLen]) + copy(key.aesKey[:], hashed[ticketKeyNameLen:ticketKeyNameLen+16]) + copy(key.hmacKey[:], hashed[ticketKeyNameLen+16:ticketKeyNameLen+32]) + return key +} + +// maxSessionTicketLifetime is the maximum allowed lifetime of a TLS 1.3 session +// ticket, and the lifetime we set for tickets we send. +const maxSessionTicketLifetime = 7 * 24 * time.Hour + +// Clone returns a shallow clone of c. It is safe to clone a Config that is +// being used concurrently by a TLS client or server. +func (c *Config) Clone() *Config { + // Running serverInit ensures that it's safe to read + // SessionTicketsDisabled. + c.serverInitOnce.Do(func() { c.serverInit(nil) }) + + var sessionTicketKeys []ticketKey + c.mutex.RLock() + sessionTicketKeys = c.sessionTicketKeys + c.mutex.RUnlock() + + return &Config{ + Rand: c.Rand, + Time: c.Time, + Certificates: c.Certificates, + NameToCertificate: c.NameToCertificate, + GetCertificate: c.GetCertificate, + GetClientCertificate: c.GetClientCertificate, + GetConfigForClient: c.GetConfigForClient, + VerifyPeerCertificate: c.VerifyPeerCertificate, + RootCAs: c.RootCAs, + NextProtos: c.NextProtos, + ServerName: c.ServerName, + ClientAuth: c.ClientAuth, + ClientCAs: c.ClientCAs, + InsecureSkipVerify: c.InsecureSkipVerify, + CipherSuites: c.CipherSuites, + PreferServerCipherSuites: c.PreferServerCipherSuites, + SessionTicketsDisabled: c.SessionTicketsDisabled, + SessionTicketKey: c.SessionTicketKey, + ClientSessionCache: c.ClientSessionCache, + MinVersion: c.MinVersion, + MaxVersion: c.MaxVersion, + CurvePreferences: c.CurvePreferences, + DynamicRecordSizingDisabled: c.DynamicRecordSizingDisabled, + Renegotiation: c.Renegotiation, + KeyLogWriter: c.KeyLogWriter, + GetExtensions: c.GetExtensions, + ReceivedExtensions: c.ReceivedExtensions, + sessionTicketKeys: sessionTicketKeys, + } +} + +// serverInit is run under c.serverInitOnce to do initialization of c. If c was +// returned by a GetConfigForClient callback then the argument should be the +// Config that was passed to Server, otherwise it should be nil. +func (c *Config) serverInit(originalConfig *Config) { + if c.SessionTicketsDisabled || len(c.ticketKeys()) != 0 { + return + } + + alreadySet := false + for _, b := range c.SessionTicketKey { + if b != 0 { + alreadySet = true + break + } + } + + if !alreadySet { + if originalConfig != nil { + copy(c.SessionTicketKey[:], originalConfig.SessionTicketKey[:]) + } else if _, err := io.ReadFull(c.rand(), c.SessionTicketKey[:]); err != nil { + c.SessionTicketsDisabled = true + return + } + } + + if originalConfig != nil { + originalConfig.mutex.RLock() + c.sessionTicketKeys = originalConfig.sessionTicketKeys + originalConfig.mutex.RUnlock() + } else { + c.sessionTicketKeys = []ticketKey{ticketKeyFromBytes(c.SessionTicketKey)} + } +} + +func (c *Config) ticketKeys() []ticketKey { + c.mutex.RLock() + // c.sessionTicketKeys is constant once created. SetSessionTicketKeys + // will only update it by replacing it with a new value. + ret := c.sessionTicketKeys + c.mutex.RUnlock() + return ret +} + +// SetSessionTicketKeys updates the session ticket keys for a server. The first +// key will be used when creating new tickets, while all keys can be used for +// decrypting tickets. It is safe to call this function while the server is +// running in order to rotate the session ticket keys. The function will panic +// if keys is empty. +func (c *Config) SetSessionTicketKeys(keys [][32]byte) { + if len(keys) == 0 { + panic("tls: keys must have at least one key") + } + + newKeys := make([]ticketKey, len(keys)) + for i, bytes := range keys { + newKeys[i] = ticketKeyFromBytes(bytes) + } + + c.mutex.Lock() + c.sessionTicketKeys = newKeys + c.mutex.Unlock() +} + +func (c *Config) rand() io.Reader { + r := c.Rand + if r == nil { + return rand.Reader + } + return r +} + +func (c *Config) time() time.Time { + t := c.Time + if t == nil { + t = time.Now + } + return t() +} + +func (c *Config) cipherSuites() []uint16 { + s := c.CipherSuites + if s == nil { + s = defaultCipherSuites() + } + return s +} + +var supportedVersions = []uint16{ + VersionTLS13, + VersionTLS12, + VersionTLS11, + VersionTLS10, + VersionSSL30, +} + +func (c *Config) supportedVersions(isClient bool) []uint16 { + versions := make([]uint16, 0, len(supportedVersions)) + for _, v := range supportedVersions { + if c != nil && c.MinVersion != 0 && v < c.MinVersion { + continue + } + if c != nil && c.MaxVersion != 0 && v > c.MaxVersion { + continue + } + // TLS 1.0 is the minimum version supported as a client. + if isClient && v < VersionTLS10 { + continue + } + // TLS 1.3 is opt-in in Go 1.12. + if v == VersionTLS13 && !isTLS13Supported() { + continue + } + versions = append(versions, v) + } + return versions +} + +// tls13Support caches the result for isTLS13Supported. +var tls13Support struct { + sync.Once + cached bool +} + +// isTLS13Supported returns whether the program opted into TLS 1.3 via +// GODEBUG=tls13=1. It's cached after the first execution. +func isTLS13Supported() bool { + return true + tls13Support.Do(func() { + tls13Support.cached = goDebugString("tls13") == "1" + }) + return tls13Support.cached +} + +// goDebugString returns the value of the named GODEBUG key. +// GODEBUG is of the form "key=val,key2=val2". +func goDebugString(key string) string { + s := os.Getenv("GODEBUG") + for i := 0; i < len(s)-len(key)-1; i++ { + if i > 0 && s[i-1] != ',' { + continue + } + afterKey := s[i+len(key):] + if afterKey[0] != '=' || s[i:i+len(key)] != key { + continue + } + val := afterKey[1:] + for i, b := range val { + if b == ',' { + return val[:i] + } + } + return val + } + return "" +} + +func (c *Config) maxSupportedVersion(isClient bool) uint16 { + supportedVersions := c.supportedVersions(isClient) + if len(supportedVersions) == 0 { + return 0 + } + return supportedVersions[0] +} + +// supportedVersionsFromMax returns a list of supported versions derived from a +// legacy maximum version value. Note that only versions supported by this +// library are returned. Any newer peer will use supportedVersions anyway. +func supportedVersionsFromMax(maxVersion uint16) []uint16 { + versions := make([]uint16, 0, len(supportedVersions)) + for _, v := range supportedVersions { + if v > maxVersion { + continue + } + versions = append(versions, v) + } + return versions +} + +var defaultCurvePreferences = []CurveID{X25519, CurveP256, CurveP384, CurveP521} + +func (c *Config) curvePreferences() []CurveID { + if c == nil || len(c.CurvePreferences) == 0 { + return defaultCurvePreferences + } + return c.CurvePreferences +} + +// mutualVersion returns the protocol version to use given the advertised +// versions of the peer. Priority is given to the peer preference order. +func (c *Config) mutualVersion(isClient bool, peerVersions []uint16) (uint16, bool) { + supportedVersions := c.supportedVersions(isClient) + for _, peerVersion := range peerVersions { + for _, v := range supportedVersions { + if v == peerVersion { + return v, true + } + } + } + return 0, false +} + +// getCertificate returns the best certificate for the given ClientHelloInfo, +// defaulting to the first element of c.Certificates. +func (c *Config) getCertificate(clientHello *ClientHelloInfo) (*Certificate, error) { + if c.GetCertificate != nil && + (len(c.Certificates) == 0 || len(clientHello.ServerName) > 0) { + cert, err := c.GetCertificate(clientHello) + if cert != nil || err != nil { + return cert, err + } + } + + if len(c.Certificates) == 0 { + return nil, errors.New("tls: no certificates configured") + } + + if len(c.Certificates) == 1 || c.NameToCertificate == nil { + // There's only one choice, so no point doing any work. + return &c.Certificates[0], nil + } + + name := strings.ToLower(clientHello.ServerName) + for len(name) > 0 && name[len(name)-1] == '.' { + name = name[:len(name)-1] + } + + if cert, ok := c.NameToCertificate[name]; ok { + return cert, nil + } + + // try replacing labels in the name with wildcards until we get a + // match. + labels := strings.Split(name, ".") + for i := range labels { + labels[i] = "*" + candidate := strings.Join(labels, ".") + if cert, ok := c.NameToCertificate[candidate]; ok { + return cert, nil + } + } + + // If nothing matches, return the first certificate. + return &c.Certificates[0], nil +} + +// BuildNameToCertificate parses c.Certificates and builds c.NameToCertificate +// from the CommonName and SubjectAlternateName fields of each of the leaf +// certificates. +func (c *Config) BuildNameToCertificate() { + c.NameToCertificate = make(map[string]*Certificate) + for i := range c.Certificates { + cert := &c.Certificates[i] + x509Cert := cert.Leaf + if x509Cert == nil { + var err error + x509Cert, err = x509.ParseCertificate(cert.Certificate[0]) + if err != nil { + continue + } + } + if len(x509Cert.Subject.CommonName) > 0 { + c.NameToCertificate[x509Cert.Subject.CommonName] = cert + } + for _, san := range x509Cert.DNSNames { + c.NameToCertificate[san] = cert + } + } +} + +const ( + keyLogLabelTLS12 = "CLIENT_RANDOM" + keyLogLabelClientHandshake = "CLIENT_HANDSHAKE_TRAFFIC_SECRET" + keyLogLabelServerHandshake = "SERVER_HANDSHAKE_TRAFFIC_SECRET" + keyLogLabelClientTraffic = "CLIENT_TRAFFIC_SECRET_0" + keyLogLabelServerTraffic = "SERVER_TRAFFIC_SECRET_0" +) + +func (c *Config) writeKeyLog(label string, clientRandom, secret []byte) error { + if c.KeyLogWriter == nil { + return nil + } + + logLine := []byte(fmt.Sprintf("%s %x %x\n", label, clientRandom, secret)) + + writerMutex.Lock() + _, err := c.KeyLogWriter.Write(logLine) + writerMutex.Unlock() + + return err +} + +// writerMutex protects all KeyLogWriters globally. It is rarely enabled, +// and is only for debugging, so a global mutex saves space. +var writerMutex sync.Mutex + +// A Certificate is a tls.Certificate +type Certificate = tls.Certificate + +type handshakeMessage interface { + marshal() []byte + unmarshal([]byte) bool +} + +// lruSessionCache is a ClientSessionCache implementation that uses an LRU +// caching strategy. +type lruSessionCache struct { + sync.Mutex + + m map[string]*list.Element + q *list.List + capacity int +} + +type lruSessionCacheEntry struct { + sessionKey string + state *ClientSessionState +} + +// NewLRUClientSessionCache returns a ClientSessionCache with the given +// capacity that uses an LRU strategy. If capacity is < 1, a default capacity +// is used instead. +func NewLRUClientSessionCache(capacity int) ClientSessionCache { + const defaultSessionCacheCapacity = 64 + + if capacity < 1 { + capacity = defaultSessionCacheCapacity + } + return &lruSessionCache{ + m: make(map[string]*list.Element), + q: list.New(), + capacity: capacity, + } +} + +// Put adds the provided (sessionKey, cs) pair to the cache. If cs is nil, the entry +// corresponding to sessionKey is removed from the cache instead. +func (c *lruSessionCache) Put(sessionKey string, cs *ClientSessionState) { + c.Lock() + defer c.Unlock() + + if elem, ok := c.m[sessionKey]; ok { + if cs == nil { + c.q.Remove(elem) + delete(c.m, sessionKey) + } else { + entry := elem.Value.(*lruSessionCacheEntry) + entry.state = cs + c.q.MoveToFront(elem) + } + return + } + + if c.q.Len() < c.capacity { + entry := &lruSessionCacheEntry{sessionKey, cs} + c.m[sessionKey] = c.q.PushFront(entry) + return + } + + elem := c.q.Back() + entry := elem.Value.(*lruSessionCacheEntry) + delete(c.m, entry.sessionKey) + entry.sessionKey = sessionKey + entry.state = cs + c.q.MoveToFront(elem) + c.m[sessionKey] = elem +} + +// Get returns the ClientSessionState value associated with a given key. It +// returns (nil, false) if no value is found. +func (c *lruSessionCache) Get(sessionKey string) (*ClientSessionState, bool) { + c.Lock() + defer c.Unlock() + + if elem, ok := c.m[sessionKey]; ok { + c.q.MoveToFront(elem) + return elem.Value.(*lruSessionCacheEntry).state, true + } + return nil, false +} + +// TODO(jsing): Make these available to both crypto/x509 and crypto/tls. +type dsaSignature struct { + R, S *big.Int +} + +type ecdsaSignature dsaSignature + +var emptyConfig Config + +func defaultConfig() *Config { + return &emptyConfig +} + +var ( + once sync.Once + varDefaultCipherSuites []uint16 + varDefaultCipherSuitesTLS13 []uint16 +) + +func defaultCipherSuites() []uint16 { + once.Do(initDefaultCipherSuites) + return varDefaultCipherSuites +} + +func defaultCipherSuitesTLS13() []uint16 { + once.Do(initDefaultCipherSuites) + return varDefaultCipherSuitesTLS13 +} + +func initDefaultCipherSuites() { + var topCipherSuites []uint16 + + // Check the cpu flags for each platform that has optimized GCM implementations. + // Worst case, these variables will just all be false. + var ( + hasGCMAsmAMD64 = cpu.X86.HasAES && cpu.X86.HasPCLMULQDQ + hasGCMAsmARM64 = cpu.ARM64.HasAES && cpu.ARM64.HasPMULL + // Keep in sync with crypto/aes/cipher_s390x.go. + // TODO: check for s390 + // hasGCMAsmS390X = cpu.S390X.HasAES && cpu.S390X.HasAESCBC && cpu.S390X.HasAESCTR && (cpu.S390X.HasGHASH || cpu.S390X.HasAESGCM) + hasGCMAsmS390X = false + + hasGCMAsm = hasGCMAsmAMD64 || hasGCMAsmARM64 || hasGCMAsmS390X + ) + + if hasGCMAsm { + // If AES-GCM hardware is provided then prioritise AES-GCM + // cipher suites. + topCipherSuites = []uint16{ + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, + } + varDefaultCipherSuitesTLS13 = []uint16{ + TLS_AES_128_GCM_SHA256, + TLS_CHACHA20_POLY1305_SHA256, + TLS_AES_256_GCM_SHA384, + } + } else { + // Without AES-GCM hardware, we put the ChaCha20-Poly1305 + // cipher suites first. + topCipherSuites = []uint16{ + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, + } + varDefaultCipherSuitesTLS13 = []uint16{ + TLS_CHACHA20_POLY1305_SHA256, + TLS_AES_128_GCM_SHA256, + TLS_AES_256_GCM_SHA384, + } + } + + varDefaultCipherSuites = make([]uint16, 0, len(cipherSuites)) + varDefaultCipherSuites = append(varDefaultCipherSuites, topCipherSuites...) + +NextCipherSuite: + for _, suite := range cipherSuites { + if suite.flags&suiteDefaultOff != 0 { + continue + } + for _, existing := range varDefaultCipherSuites { + if existing == suite.id { + continue NextCipherSuite + } + } + varDefaultCipherSuites = append(varDefaultCipherSuites, suite.id) + } +} + +func unexpectedMessageError(wanted, got interface{}) error { + return fmt.Errorf("tls: received unexpected handshake message of type %T when waiting for %T", got, wanted) +} + +func isSupportedSignatureAlgorithm(sigAlg SignatureScheme, supportedSignatureAlgorithms []SignatureScheme) bool { + for _, s := range supportedSignatureAlgorithms { + if s == sigAlg { + return true + } + } + return false +} + +// signatureFromSignatureScheme maps a signature algorithm to the underlying +// signature method (without hash function). +func signatureFromSignatureScheme(signatureAlgorithm SignatureScheme) uint8 { + switch signatureAlgorithm { + case PKCS1WithSHA1, PKCS1WithSHA256, PKCS1WithSHA384, PKCS1WithSHA512: + return signaturePKCS1v15 + case PSSWithSHA256, PSSWithSHA384, PSSWithSHA512: + return signatureRSAPSS + case ECDSAWithSHA1, ECDSAWithP256AndSHA256, ECDSAWithP384AndSHA384, ECDSAWithP521AndSHA512: + return signatureECDSA + default: + return 0 + } +} diff --git a/vendor/github.com/marten-seemann/qtls/conn.go b/vendor/github.com/marten-seemann/qtls/conn.go new file mode 100644 index 00000000..bbb67e56 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/conn.go @@ -0,0 +1,1467 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TLS low level connection and record layer + +package qtls + +import ( + "bytes" + "crypto/cipher" + "crypto/subtle" + "crypto/x509" + "errors" + "fmt" + "io" + "net" + "sync" + "sync/atomic" + "time" +) + +// A Conn represents a secured connection. +// It implements the net.Conn interface. +type Conn struct { + // constant + conn net.Conn + isClient bool + + // handshakeStatus is 1 if the connection is currently transferring + // application data (i.e. is not currently processing a handshake). + // This field is only to be accessed with sync/atomic. + handshakeStatus uint32 + // constant after handshake; protected by handshakeMutex + handshakeMutex sync.Mutex + handshakeErr error // error resulting from handshake + vers uint16 // TLS version + haveVers bool // version has been negotiated + config *Config // configuration passed to constructor + // handshakes counts the number of handshakes performed on the + // connection so far. If renegotiation is disabled then this is either + // zero or one. + handshakes int + didResume bool // whether this connection was a session resumption + cipherSuite uint16 + ocspResponse []byte // stapled OCSP response + scts [][]byte // signed certificate timestamps from server + peerCertificates []*x509.Certificate + // verifiedChains contains the certificate chains that we built, as + // opposed to the ones presented by the server. + verifiedChains [][]*x509.Certificate + // serverName contains the server name indicated by the client, if any. + serverName string + // secureRenegotiation is true if the server echoed the secure + // renegotiation extension. (This is meaningless as a server because + // renegotiation is not supported in that case.) + secureRenegotiation bool + // ekm is a closure for exporting keying material. + ekm func(label string, context []byte, length int) ([]byte, error) + // resumptionSecret is the resumption_master_secret for handling + // NewSessionTicket messages. nil if config.SessionTicketsDisabled. + resumptionSecret []byte + + // clientFinishedIsFirst is true if the client sent the first Finished + // message during the most recent handshake. This is recorded because + // the first transmitted Finished message is the tls-unique + // channel-binding value. + clientFinishedIsFirst bool + + // closeNotifyErr is any error from sending the alertCloseNotify record. + closeNotifyErr error + // closeNotifySent is true if the Conn attempted to send an + // alertCloseNotify record. + closeNotifySent bool + + // clientFinished and serverFinished contain the Finished message sent + // by the client or server in the most recent handshake. This is + // retained to support the renegotiation extension and tls-unique + // channel-binding. + clientFinished [12]byte + serverFinished [12]byte + + clientProtocol string + clientProtocolFallback bool + + // input/output + in, out halfConn + rawInput bytes.Buffer // raw input, starting with a record header + input bytes.Reader // application data waiting to be read, from rawInput.Next + hand bytes.Buffer // handshake data waiting to be read + outBuf []byte // scratch buffer used by out.encrypt + buffering bool // whether records are buffered in sendBuf + sendBuf []byte // a buffer of records waiting to be sent + + // bytesSent counts the bytes of application data sent. + // packetsSent counts packets. + bytesSent int64 + packetsSent int64 + + // retryCount counts the number of consecutive non-advancing records + // received by Conn.readRecord. That is, records that neither advance the + // handshake, nor deliver application data. Protected by in.Mutex. + retryCount int + + // activeCall is an atomic int32; the low bit is whether Close has + // been called. the rest of the bits are the number of goroutines + // in Conn.Write. + activeCall int32 + + tmp [16]byte +} + +// Access to net.Conn methods. +// Cannot just embed net.Conn because that would +// export the struct field too. + +// LocalAddr returns the local network address. +func (c *Conn) LocalAddr() net.Addr { + return c.conn.LocalAddr() +} + +// RemoteAddr returns the remote network address. +func (c *Conn) RemoteAddr() net.Addr { + return c.conn.RemoteAddr() +} + +// SetDeadline sets the read and write deadlines associated with the connection. +// A zero value for t means Read and Write will not time out. +// After a Write has timed out, the TLS state is corrupt and all future writes will return the same error. +func (c *Conn) SetDeadline(t time.Time) error { + return c.conn.SetDeadline(t) +} + +// SetReadDeadline sets the read deadline on the underlying connection. +// A zero value for t means Read will not time out. +func (c *Conn) SetReadDeadline(t time.Time) error { + return c.conn.SetReadDeadline(t) +} + +// SetWriteDeadline sets the write deadline on the underlying connection. +// A zero value for t means Write will not time out. +// After a Write has timed out, the TLS state is corrupt and all future writes will return the same error. +func (c *Conn) SetWriteDeadline(t time.Time) error { + return c.conn.SetWriteDeadline(t) +} + +// A halfConn represents one direction of the record layer +// connection, either sending or receiving. +type halfConn struct { + sync.Mutex + + err error // first permanent error + version uint16 // protocol version + cipher interface{} // cipher algorithm + mac macFunction + seq [8]byte // 64-bit sequence number + additionalData [13]byte // to avoid allocs; interface method args escape + + nextCipher interface{} // next encryption state + nextMac macFunction // next MAC algorithm + + trafficSecret []byte // current TLS 1.3 traffic secret + + setKeyCallback func(suite *CipherSuite, trafficSecret []byte) +} + +func (hc *halfConn) setErrorLocked(err error) error { + hc.err = err + return err +} + +// prepareCipherSpec sets the encryption and MAC states +// that a subsequent changeCipherSpec will use. +func (hc *halfConn) prepareCipherSpec(version uint16, cipher interface{}, mac macFunction) { + hc.version = version + hc.nextCipher = cipher + hc.nextMac = mac +} + +// changeCipherSpec changes the encryption and MAC states +// to the ones previously passed to prepareCipherSpec. +func (hc *halfConn) changeCipherSpec() error { + if hc.nextCipher == nil || hc.version == VersionTLS13 { + return alertInternalError + } + hc.cipher = hc.nextCipher + hc.mac = hc.nextMac + hc.nextCipher = nil + hc.nextMac = nil + for i := range hc.seq { + hc.seq[i] = 0 + } + return nil +} + +func (hc *halfConn) exportKey(suite *cipherSuiteTLS13, trafficSecret []byte) { + if hc.setKeyCallback != nil { + hc.setKeyCallback(&CipherSuite{suite}, trafficSecret) + } +} + +func (hc *halfConn) setTrafficSecret(suite *cipherSuiteTLS13, secret []byte) { + hc.trafficSecret = secret + key, iv := suite.trafficKey(secret) + hc.cipher = suite.aead(key, iv) + for i := range hc.seq { + hc.seq[i] = 0 + } +} + +// incSeq increments the sequence number. +func (hc *halfConn) incSeq() { + for i := 7; i >= 0; i-- { + hc.seq[i]++ + if hc.seq[i] != 0 { + return + } + } + + // Not allowed to let sequence number wrap. + // Instead, must renegotiate before it does. + // Not likely enough to bother. + panic("TLS: sequence number wraparound") +} + +// explicitNonceLen returns the number of bytes of explicit nonce or IV included +// in each record. Explicit nonces are present only in CBC modes after TLS 1.0 +// and in certain AEAD modes in TLS 1.2. +func (hc *halfConn) explicitNonceLen() int { + if hc.cipher == nil { + return 0 + } + + switch c := hc.cipher.(type) { + case cipher.Stream: + return 0 + case aead: + return c.explicitNonceLen() + case cbcMode: + // TLS 1.1 introduced a per-record explicit IV to fix the BEAST attack. + if hc.version >= VersionTLS11 { + return c.BlockSize() + } + return 0 + default: + panic("unknown cipher type") + } +} + +// extractPadding returns, in constant time, the length of the padding to remove +// from the end of payload. It also returns a byte which is equal to 255 if the +// padding was valid and 0 otherwise. See RFC 2246, Section 6.2.3.2. +func extractPadding(payload []byte) (toRemove int, good byte) { + if len(payload) < 1 { + return 0, 0 + } + + paddingLen := payload[len(payload)-1] + t := uint(len(payload)-1) - uint(paddingLen) + // if len(payload) >= (paddingLen - 1) then the MSB of t is zero + good = byte(int32(^t) >> 31) + + // The maximum possible padding length plus the actual length field + toCheck := 256 + // The length of the padded data is public, so we can use an if here + if toCheck > len(payload) { + toCheck = len(payload) + } + + for i := 0; i < toCheck; i++ { + t := uint(paddingLen) - uint(i) + // if i <= paddingLen then the MSB of t is zero + mask := byte(int32(^t) >> 31) + b := payload[len(payload)-1-i] + good &^= mask&paddingLen ^ mask&b + } + + // We AND together the bits of good and replicate the result across + // all the bits. + good &= good << 4 + good &= good << 2 + good &= good << 1 + good = uint8(int8(good) >> 7) + + toRemove = int(paddingLen) + 1 + return +} + +// extractPaddingSSL30 is a replacement for extractPadding in the case that the +// protocol version is SSLv3. In this version, the contents of the padding +// are random and cannot be checked. +func extractPaddingSSL30(payload []byte) (toRemove int, good byte) { + if len(payload) < 1 { + return 0, 0 + } + + paddingLen := int(payload[len(payload)-1]) + 1 + if paddingLen > len(payload) { + return 0, 0 + } + + return paddingLen, 255 +} + +func roundUp(a, b int) int { + return a + (b-a%b)%b +} + +// cbcMode is an interface for block ciphers using cipher block chaining. +type cbcMode interface { + cipher.BlockMode + SetIV([]byte) +} + +// decrypt authenticates and decrypts the record if protection is active at +// this stage. The returned plaintext might overlap with the input. +func (hc *halfConn) decrypt(record []byte) ([]byte, recordType, error) { + var plaintext []byte + typ := recordType(record[0]) + payload := record[recordHeaderLen:] + + // In TLS 1.3, change_cipher_spec messages are to be ignored without being + // decrypted. See RFC 8446, Appendix D.4. + if hc.version == VersionTLS13 && typ == recordTypeChangeCipherSpec { + return payload, typ, nil + } + + paddingGood := byte(255) + paddingLen := 0 + + explicitNonceLen := hc.explicitNonceLen() + + if hc.cipher != nil { + switch c := hc.cipher.(type) { + case cipher.Stream: + c.XORKeyStream(payload, payload) + case aead: + if len(payload) < explicitNonceLen { + return nil, 0, alertBadRecordMAC + } + nonce := payload[:explicitNonceLen] + if len(nonce) == 0 { + nonce = hc.seq[:] + } + payload = payload[explicitNonceLen:] + + additionalData := hc.additionalData[:] + if hc.version == VersionTLS13 { + additionalData = record[:recordHeaderLen] + } else { + copy(additionalData, hc.seq[:]) + copy(additionalData[8:], record[:3]) + n := len(payload) - c.Overhead() + additionalData[11] = byte(n >> 8) + additionalData[12] = byte(n) + } + + var err error + plaintext, err = c.Open(payload[:0], nonce, payload, additionalData) + if err != nil { + return nil, 0, alertBadRecordMAC + } + case cbcMode: + blockSize := c.BlockSize() + minPayload := explicitNonceLen + roundUp(hc.mac.Size()+1, blockSize) + if len(payload)%blockSize != 0 || len(payload) < minPayload { + return nil, 0, alertBadRecordMAC + } + + if explicitNonceLen > 0 { + c.SetIV(payload[:explicitNonceLen]) + payload = payload[explicitNonceLen:] + } + c.CryptBlocks(payload, payload) + + // In a limited attempt to protect against CBC padding oracles like + // Lucky13, the data past paddingLen (which is secret) is passed to + // the MAC function as extra data, to be fed into the HMAC after + // computing the digest. This makes the MAC roughly constant time as + // long as the digest computation is constant time and does not + // affect the subsequent write, modulo cache effects. + if hc.version == VersionSSL30 { + paddingLen, paddingGood = extractPaddingSSL30(payload) + } else { + paddingLen, paddingGood = extractPadding(payload) + } + default: + panic("unknown cipher type") + } + + if hc.version == VersionTLS13 { + if typ != recordTypeApplicationData { + return nil, 0, alertUnexpectedMessage + } + if len(plaintext) > maxPlaintext+1 { + return nil, 0, alertRecordOverflow + } + // Remove padding and find the ContentType scanning from the end. + for i := len(plaintext) - 1; i >= 0; i-- { + if plaintext[i] != 0 { + typ = recordType(plaintext[i]) + plaintext = plaintext[:i] + break + } + if i == 0 { + return nil, 0, alertUnexpectedMessage + } + } + } + } else { + plaintext = payload + } + + if hc.mac != nil { + macSize := hc.mac.Size() + if len(payload) < macSize { + return nil, 0, alertBadRecordMAC + } + + n := len(payload) - macSize - paddingLen + n = subtle.ConstantTimeSelect(int(uint32(n)>>31), 0, n) // if n < 0 { n = 0 } + record[3] = byte(n >> 8) + record[4] = byte(n) + remoteMAC := payload[n : n+macSize] + localMAC := hc.mac.MAC(hc.seq[0:], record[:recordHeaderLen], payload[:n], payload[n+macSize:]) + + if subtle.ConstantTimeCompare(localMAC, remoteMAC) != 1 || paddingGood != 255 { + return nil, 0, alertBadRecordMAC + } + + plaintext = payload[:n] + } + + hc.incSeq() + return plaintext, typ, nil +} + +func (c *Conn) setAlternativeRecordLayer() { + if c.config.AlternativeRecordLayer != nil { + c.in.setKeyCallback = c.config.AlternativeRecordLayer.SetReadKey + c.out.setKeyCallback = c.config.AlternativeRecordLayer.SetWriteKey + } +} + +// sliceForAppend extends the input slice by n bytes. head is the full extended +// slice, while tail is the appended part. If the original slice has sufficient +// capacity no allocation is performed. +func sliceForAppend(in []byte, n int) (head, tail []byte) { + if total := len(in) + n; cap(in) >= total { + head = in[:total] + } else { + head = make([]byte, total) + copy(head, in) + } + tail = head[len(in):] + return +} + +// encrypt encrypts payload, adding the appropriate nonce and/or MAC, and +// appends it to record, which contains the record header. +func (hc *halfConn) encrypt(record, payload []byte, rand io.Reader) ([]byte, error) { + if hc.cipher == nil { + return append(record, payload...), nil + } + + var explicitNonce []byte + if explicitNonceLen := hc.explicitNonceLen(); explicitNonceLen > 0 { + record, explicitNonce = sliceForAppend(record, explicitNonceLen) + if _, isCBC := hc.cipher.(cbcMode); !isCBC && explicitNonceLen < 16 { + // The AES-GCM construction in TLS has an explicit nonce so that the + // nonce can be random. However, the nonce is only 8 bytes which is + // too small for a secure, random nonce. Therefore we use the + // sequence number as the nonce. The 3DES-CBC construction also has + // an 8 bytes nonce but its nonces must be unpredictable (see RFC + // 5246, Appendix F.3), forcing us to use randomness. That's not + // 3DES' biggest problem anyway because the birthday bound on block + // collision is reached first due to its simlarly small block size + // (see the Sweet32 attack). + copy(explicitNonce, hc.seq[:]) + } else { + if _, err := io.ReadFull(rand, explicitNonce); err != nil { + return nil, err + } + } + } + + var mac []byte + if hc.mac != nil { + mac = hc.mac.MAC(hc.seq[:], record[:recordHeaderLen], payload, nil) + } + + var dst []byte + switch c := hc.cipher.(type) { + case cipher.Stream: + record, dst = sliceForAppend(record, len(payload)+len(mac)) + c.XORKeyStream(dst[:len(payload)], payload) + c.XORKeyStream(dst[len(payload):], mac) + case aead: + nonce := explicitNonce + if len(nonce) == 0 { + nonce = hc.seq[:] + } + + if hc.version == VersionTLS13 { + record = append(record, payload...) + + // Encrypt the actual ContentType and replace the plaintext one. + record = append(record, record[0]) + record[0] = byte(recordTypeApplicationData) + + n := len(payload) + 1 + c.Overhead() + record[3] = byte(n >> 8) + record[4] = byte(n) + + record = c.Seal(record[:recordHeaderLen], + nonce, record[recordHeaderLen:], record[:recordHeaderLen]) + } else { + copy(hc.additionalData[:], hc.seq[:]) + copy(hc.additionalData[8:], record) + record = c.Seal(record, nonce, payload, hc.additionalData[:]) + } + case cbcMode: + blockSize := c.BlockSize() + plaintextLen := len(payload) + len(mac) + paddingLen := blockSize - plaintextLen%blockSize + record, dst = sliceForAppend(record, plaintextLen+paddingLen) + copy(dst, payload) + copy(dst[len(payload):], mac) + for i := plaintextLen; i < len(dst); i++ { + dst[i] = byte(paddingLen - 1) + } + if len(explicitNonce) > 0 { + c.SetIV(explicitNonce) + } + c.CryptBlocks(dst, dst) + default: + panic("unknown cipher type") + } + + // Update length to include nonce, MAC and any block padding needed. + n := len(record) - recordHeaderLen + record[3] = byte(n >> 8) + record[4] = byte(n) + hc.incSeq() + + return record, nil +} + +// RecordHeaderError is returned when a TLS record header is invalid. +type RecordHeaderError struct { + // Msg contains a human readable string that describes the error. + Msg string + // RecordHeader contains the five bytes of TLS record header that + // triggered the error. + RecordHeader [5]byte + // Conn provides the underlying net.Conn in the case that a client + // sent an initial handshake that didn't look like TLS. + // It is nil if there's already been a handshake or a TLS alert has + // been written to the connection. + Conn net.Conn +} + +func (e RecordHeaderError) Error() string { return "tls: " + e.Msg } + +func (c *Conn) newRecordHeaderError(conn net.Conn, msg string) (err RecordHeaderError) { + err.Msg = msg + err.Conn = conn + copy(err.RecordHeader[:], c.rawInput.Bytes()) + return err +} + +func (c *Conn) readRecord() error { + return c.readRecordOrCCS(false) +} + +func (c *Conn) readChangeCipherSpec() error { + return c.readRecordOrCCS(true) +} + +// readRecordOrCCS reads one or more TLS records from the connection and +// updates the record layer state. Some invariants: +// * c.in must be locked +// * c.input must be empty +// During the handshake one and only one of the following will happen: +// - c.hand grows +// - c.in.changeCipherSpec is called +// - an error is returned +// After the handshake one and only one of the following will happen: +// - c.hand grows +// - c.input is set +// - an error is returned +func (c *Conn) readRecordOrCCS(expectChangeCipherSpec bool) error { + if c.in.err != nil { + return c.in.err + } + handshakeComplete := c.handshakeComplete() + + // This function modifies c.rawInput, which owns the c.input memory. + if c.input.Len() != 0 { + return c.in.setErrorLocked(errors.New("tls: internal error: attempted to read record with pending application data")) + } + c.input.Reset(nil) + + // Read header, payload. + if err := c.readFromUntil(c.conn, recordHeaderLen); err != nil { + // RFC 8446, Section 6.1 suggests that EOF without an alertCloseNotify + // is an error, but popular web sites seem to do this, so we accept it + // if and only if at the record boundary. + if err == io.ErrUnexpectedEOF && c.rawInput.Len() == 0 { + err = io.EOF + } + if e, ok := err.(net.Error); !ok || !e.Temporary() { + c.in.setErrorLocked(err) + } + return err + } + hdr := c.rawInput.Bytes()[:recordHeaderLen] + typ := recordType(hdr[0]) + + // No valid TLS record has a type of 0x80, however SSLv2 handshakes + // start with a uint16 length where the MSB is set and the first record + // is always < 256 bytes long. Therefore typ == 0x80 strongly suggests + // an SSLv2 client. + if !handshakeComplete && typ == 0x80 { + c.sendAlert(alertProtocolVersion) + return c.in.setErrorLocked(c.newRecordHeaderError(nil, "unsupported SSLv2 handshake received")) + } + + vers := uint16(hdr[1])<<8 | uint16(hdr[2]) + n := int(hdr[3])<<8 | int(hdr[4]) + if c.haveVers && c.vers != VersionTLS13 && vers != c.vers { + c.sendAlert(alertProtocolVersion) + msg := fmt.Sprintf("received record with version %x when expecting version %x", vers, c.vers) + return c.in.setErrorLocked(c.newRecordHeaderError(nil, msg)) + } + if !c.haveVers { + // First message, be extra suspicious: this might not be a TLS + // client. Bail out before reading a full 'body', if possible. + // The current max version is 3.3 so if the version is >= 16.0, + // it's probably not real. + if (typ != recordTypeAlert && typ != recordTypeHandshake) || vers >= 0x1000 { + return c.in.setErrorLocked(c.newRecordHeaderError(c.conn, "first record does not look like a TLS handshake")) + } + } + if c.vers == VersionTLS13 && n > maxCiphertextTLS13 || n > maxCiphertext { + c.sendAlert(alertRecordOverflow) + msg := fmt.Sprintf("oversized record received with length %d", n) + return c.in.setErrorLocked(c.newRecordHeaderError(nil, msg)) + } + if err := c.readFromUntil(c.conn, recordHeaderLen+n); err != nil { + if e, ok := err.(net.Error); !ok || !e.Temporary() { + c.in.setErrorLocked(err) + } + return err + } + + // Process message. + record := c.rawInput.Next(recordHeaderLen + n) + data, typ, err := c.in.decrypt(record) + if err != nil { + return c.in.setErrorLocked(c.sendAlert(err.(alert))) + } + if len(data) > maxPlaintext { + return c.in.setErrorLocked(c.sendAlert(alertRecordOverflow)) + } + + // Application Data messages are always protected. + if c.in.cipher == nil && typ == recordTypeApplicationData { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + + if typ != recordTypeAlert && typ != recordTypeChangeCipherSpec && len(data) > 0 { + // This is a state-advancing message: reset the retry count. + c.retryCount = 0 + } + + // Handshake messages MUST NOT be interleaved with other record types in TLS 1.3. + if c.vers == VersionTLS13 && typ != recordTypeHandshake && c.hand.Len() > 0 { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + + switch typ { + default: + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + + case recordTypeAlert: + if len(data) != 2 { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + if alert(data[1]) == alertCloseNotify { + return c.in.setErrorLocked(io.EOF) + } + if c.vers == VersionTLS13 { + return c.in.setErrorLocked(&net.OpError{Op: "remote error", Err: alert(data[1])}) + } + switch data[0] { + case alertLevelWarning: + // Drop the record on the floor and retry. + return c.retryReadRecord(expectChangeCipherSpec) + case alertLevelError: + return c.in.setErrorLocked(&net.OpError{Op: "remote error", Err: alert(data[1])}) + default: + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + + case recordTypeChangeCipherSpec: + if len(data) != 1 || data[0] != 1 { + return c.in.setErrorLocked(c.sendAlert(alertDecodeError)) + } + // Handshake messages are not allowed to fragment across the CCS. + if c.hand.Len() > 0 { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + // In TLS 1.3, change_cipher_spec records are ignored until the + // Finished. See RFC 8446, Appendix D.4. Note that according to Section + // 5, a server can send a ChangeCipherSpec before its ServerHello, when + // c.vers is still unset. That's not useful though and suspicious if the + // server then selects a lower protocol version, so don't allow that. + if c.vers == VersionTLS13 { + return c.retryReadRecord(expectChangeCipherSpec) + } + if !expectChangeCipherSpec { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + if err := c.in.changeCipherSpec(); err != nil { + return c.in.setErrorLocked(c.sendAlert(err.(alert))) + } + + case recordTypeApplicationData: + if !handshakeComplete || expectChangeCipherSpec { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + // Some OpenSSL servers send empty records in order to randomize the + // CBC IV. Ignore a limited number of empty records. + if len(data) == 0 { + return c.retryReadRecord(expectChangeCipherSpec) + } + // Note that data is owned by c.rawInput, following the Next call above, + // to avoid copying the plaintext. This is safe because c.rawInput is + // not read from or written to until c.input is drained. + c.input.Reset(data) + + case recordTypeHandshake: + if len(data) == 0 || expectChangeCipherSpec { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + c.hand.Write(data) + } + + return nil +} + +// retryReadRecord recurses into readRecordOrCCS to drop a non-advancing record, like +// a warning alert, empty application_data, or a change_cipher_spec in TLS 1.3. +func (c *Conn) retryReadRecord(expectChangeCipherSpec bool) error { + c.retryCount++ + if c.retryCount > maxUselessRecords { + c.sendAlert(alertUnexpectedMessage) + return c.in.setErrorLocked(errors.New("tls: too many ignored records")) + } + return c.readRecordOrCCS(expectChangeCipherSpec) +} + +// atLeastReader reads from R, stopping with EOF once at least N bytes have been +// read. It is different from an io.LimitedReader in that it doesn't cut short +// the last Read call, and in that it considers an early EOF an error. +type atLeastReader struct { + R io.Reader + N int64 +} + +func (r *atLeastReader) Read(p []byte) (int, error) { + if r.N <= 0 { + return 0, io.EOF + } + n, err := r.R.Read(p) + r.N -= int64(n) // won't underflow unless len(p) >= n > 9223372036854775809 + if r.N > 0 && err == io.EOF { + return n, io.ErrUnexpectedEOF + } + if r.N <= 0 && err == nil { + return n, io.EOF + } + return n, err +} + +// readFromUntil reads from r into c.rawInput until c.rawInput contains +// at least n bytes or else returns an error. +func (c *Conn) readFromUntil(r io.Reader, n int) error { + if c.rawInput.Len() >= n { + return nil + } + needs := n - c.rawInput.Len() + // There might be extra input waiting on the wire. Make a best effort + // attempt to fetch it so that it can be used in (*Conn).Read to + // "predict" closeNotify alerts. + c.rawInput.Grow(needs + bytes.MinRead) + _, err := c.rawInput.ReadFrom(&atLeastReader{r, int64(needs)}) + return err +} + +// sendAlert sends a TLS alert message. +func (c *Conn) sendAlertLocked(err alert) error { + switch err { + case alertNoRenegotiation, alertCloseNotify: + c.tmp[0] = alertLevelWarning + default: + c.tmp[0] = alertLevelError + } + c.tmp[1] = byte(err) + + _, writeErr := c.writeRecordLocked(recordTypeAlert, c.tmp[0:2]) + if err == alertCloseNotify { + // closeNotify is a special case in that it isn't an error. + return writeErr + } + + return c.out.setErrorLocked(&net.OpError{Op: "local error", Err: err}) +} + +// sendAlert sends a TLS alert message. +func (c *Conn) sendAlert(err alert) error { + if c.config.AlternativeRecordLayer != nil { + c.config.AlternativeRecordLayer.SendAlert(uint8(err)) + return &net.OpError{Op: "local error", Err: err} + } + + c.out.Lock() + defer c.out.Unlock() + return c.sendAlertLocked(err) +} + +const ( + // tcpMSSEstimate is a conservative estimate of the TCP maximum segment + // size (MSS). A constant is used, rather than querying the kernel for + // the actual MSS, to avoid complexity. The value here is the IPv6 + // minimum MTU (1280 bytes) minus the overhead of an IPv6 header (40 + // bytes) and a TCP header with timestamps (32 bytes). + tcpMSSEstimate = 1208 + + // recordSizeBoostThreshold is the number of bytes of application data + // sent after which the TLS record size will be increased to the + // maximum. + recordSizeBoostThreshold = 128 * 1024 +) + +// maxPayloadSizeForWrite returns the maximum TLS payload size to use for the +// next application data record. There is the following trade-off: +// +// - For latency-sensitive applications, such as web browsing, each TLS +// record should fit in one TCP segment. +// - For throughput-sensitive applications, such as large file transfers, +// larger TLS records better amortize framing and encryption overheads. +// +// A simple heuristic that works well in practice is to use small records for +// the first 1MB of data, then use larger records for subsequent data, and +// reset back to smaller records after the connection becomes idle. See "High +// Performance Web Networking", Chapter 4, or: +// https://www.igvita.com/2013/10/24/optimizing-tls-record-size-and-buffering-latency/ +// +// In the interests of simplicity and determinism, this code does not attempt +// to reset the record size once the connection is idle, however. +func (c *Conn) maxPayloadSizeForWrite(typ recordType) int { + if c.config.DynamicRecordSizingDisabled || typ != recordTypeApplicationData { + return maxPlaintext + } + + if c.bytesSent >= recordSizeBoostThreshold { + return maxPlaintext + } + + // Subtract TLS overheads to get the maximum payload size. + payloadBytes := tcpMSSEstimate - recordHeaderLen - c.out.explicitNonceLen() + if c.out.cipher != nil { + switch ciph := c.out.cipher.(type) { + case cipher.Stream: + payloadBytes -= c.out.mac.Size() + case cipher.AEAD: + payloadBytes -= ciph.Overhead() + case cbcMode: + blockSize := ciph.BlockSize() + // The payload must fit in a multiple of blockSize, with + // room for at least one padding byte. + payloadBytes = (payloadBytes & ^(blockSize - 1)) - 1 + // The MAC is appended before padding so affects the + // payload size directly. + payloadBytes -= c.out.mac.Size() + default: + panic("unknown cipher type") + } + } + if c.vers == VersionTLS13 { + payloadBytes-- // encrypted ContentType + } + + // Allow packet growth in arithmetic progression up to max. + pkt := c.packetsSent + c.packetsSent++ + if pkt > 1000 { + return maxPlaintext // avoid overflow in multiply below + } + + n := payloadBytes * int(pkt+1) + if n > maxPlaintext { + n = maxPlaintext + } + return n +} + +func (c *Conn) write(data []byte) (int, error) { + if c.buffering { + c.sendBuf = append(c.sendBuf, data...) + return len(data), nil + } + + n, err := c.conn.Write(data) + c.bytesSent += int64(n) + return n, err +} + +func (c *Conn) flush() (int, error) { + if len(c.sendBuf) == 0 { + return 0, nil + } + + n, err := c.conn.Write(c.sendBuf) + c.bytesSent += int64(n) + c.sendBuf = nil + c.buffering = false + return n, err +} + +// writeRecordLocked writes a TLS record with the given type and payload to the +// connection and updates the record layer state. +func (c *Conn) writeRecordLocked(typ recordType, data []byte) (int, error) { + var n int + for len(data) > 0 { + m := len(data) + if maxPayload := c.maxPayloadSizeForWrite(typ); m > maxPayload { + m = maxPayload + } + + _, c.outBuf = sliceForAppend(c.outBuf[:0], recordHeaderLen) + c.outBuf[0] = byte(typ) + vers := c.vers + if vers == 0 { + // Some TLS servers fail if the record version is + // greater than TLS 1.0 for the initial ClientHello. + vers = VersionTLS10 + } else if vers == VersionTLS13 { + // TLS 1.3 froze the record layer version to 1.2. + // See RFC 8446, Section 5.1. + vers = VersionTLS12 + } + c.outBuf[1] = byte(vers >> 8) + c.outBuf[2] = byte(vers) + c.outBuf[3] = byte(m >> 8) + c.outBuf[4] = byte(m) + + var err error + c.outBuf, err = c.out.encrypt(c.outBuf, data[:m], c.config.rand()) + if err != nil { + return n, err + } + if _, err := c.write(c.outBuf); err != nil { + return n, err + } + n += m + data = data[m:] + } + + if typ == recordTypeChangeCipherSpec && c.vers != VersionTLS13 { + if err := c.out.changeCipherSpec(); err != nil { + return n, c.sendAlertLocked(err.(alert)) + } + } + + return n, nil +} + +// writeRecord writes a TLS record with the given type and payload to the +// connection and updates the record layer state. +func (c *Conn) writeRecord(typ recordType, data []byte) (int, error) { + if c.config.AlternativeRecordLayer != nil { + if typ == recordTypeChangeCipherSpec { + return len(data), nil + } + return c.config.AlternativeRecordLayer.WriteRecord(data) + } + + c.out.Lock() + defer c.out.Unlock() + + return c.writeRecordLocked(typ, data) +} + +// readHandshake reads the next handshake message from +// the record layer. +func (c *Conn) readHandshake() (interface{}, error) { + var data []byte + if c.config.AlternativeRecordLayer != nil { + var err error + data, err = c.config.AlternativeRecordLayer.ReadHandshakeMessage() + if err != nil { + return nil, err + } + } else { + for c.hand.Len() < 4 { + if err := c.readRecord(); err != nil { + return nil, err + } + } + + data = c.hand.Bytes() + n := int(data[1])<<16 | int(data[2])<<8 | int(data[3]) + if n > maxHandshake { + c.sendAlertLocked(alertInternalError) + return nil, c.in.setErrorLocked(fmt.Errorf("tls: handshake message of length %d bytes exceeds maximum of %d bytes", n, maxHandshake)) + } + for c.hand.Len() < 4+n { + if err := c.readRecord(); err != nil { + return nil, err + } + } + data = c.hand.Next(4 + n) + } + var m handshakeMessage + switch data[0] { + case typeHelloRequest: + m = new(helloRequestMsg) + case typeClientHello: + m = new(clientHelloMsg) + case typeServerHello: + m = new(serverHelloMsg) + case typeNewSessionTicket: + if c.vers == VersionTLS13 { + m = new(newSessionTicketMsgTLS13) + } else { + m = new(newSessionTicketMsg) + } + case typeCertificate: + if c.vers == VersionTLS13 { + m = new(certificateMsgTLS13) + } else { + m = new(certificateMsg) + } + case typeCertificateRequest: + if c.vers == VersionTLS13 { + m = new(certificateRequestMsgTLS13) + } else { + m = &certificateRequestMsg{ + hasSignatureAlgorithm: c.vers >= VersionTLS12, + } + } + case typeCertificateStatus: + m = new(certificateStatusMsg) + case typeServerKeyExchange: + m = new(serverKeyExchangeMsg) + case typeServerHelloDone: + m = new(serverHelloDoneMsg) + case typeClientKeyExchange: + m = new(clientKeyExchangeMsg) + case typeCertificateVerify: + m = &certificateVerifyMsg{ + hasSignatureAlgorithm: c.vers >= VersionTLS12, + } + case typeNextProtocol: + m = new(nextProtoMsg) + case typeFinished: + m = new(finishedMsg) + case typeEncryptedExtensions: + m = new(encryptedExtensionsMsg) + case typeEndOfEarlyData: + m = new(endOfEarlyDataMsg) + case typeKeyUpdate: + m = new(keyUpdateMsg) + default: + return nil, c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + + // The handshake message unmarshalers + // expect to be able to keep references to data, + // so pass in a fresh copy that won't be overwritten. + data = append([]byte(nil), data...) + + if !m.unmarshal(data) { + return nil, c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } + return m, nil +} + +var ( + errClosed = errors.New("tls: use of closed connection") + errShutdown = errors.New("tls: protocol is shutdown") +) + +// Write writes data to the connection. +func (c *Conn) Write(b []byte) (int, error) { + // interlock with Close below + for { + x := atomic.LoadInt32(&c.activeCall) + if x&1 != 0 { + return 0, errClosed + } + if atomic.CompareAndSwapInt32(&c.activeCall, x, x+2) { + defer atomic.AddInt32(&c.activeCall, -2) + break + } + } + + if err := c.Handshake(); err != nil { + return 0, err + } + + c.out.Lock() + defer c.out.Unlock() + + if err := c.out.err; err != nil { + return 0, err + } + + if !c.handshakeComplete() { + return 0, alertInternalError + } + + if c.closeNotifySent { + return 0, errShutdown + } + + // SSL 3.0 and TLS 1.0 are susceptible to a chosen-plaintext + // attack when using block mode ciphers due to predictable IVs. + // This can be prevented by splitting each Application Data + // record into two records, effectively randomizing the IV. + // + // https://www.openssl.org/~bodo/tls-cbc.txt + // https://bugzilla.mozilla.org/show_bug.cgi?id=665814 + // https://www.imperialviolet.org/2012/01/15/beastfollowup.html + + var m int + if len(b) > 1 && c.vers <= VersionTLS10 { + if _, ok := c.out.cipher.(cipher.BlockMode); ok { + n, err := c.writeRecordLocked(recordTypeApplicationData, b[:1]) + if err != nil { + return n, c.out.setErrorLocked(err) + } + m, b = 1, b[1:] + } + } + + n, err := c.writeRecordLocked(recordTypeApplicationData, b) + return n + m, c.out.setErrorLocked(err) +} + +// handleRenegotiation processes a HelloRequest handshake message. +func (c *Conn) handleRenegotiation() error { + if c.vers == VersionTLS13 { + return errors.New("tls: internal error: unexpected renegotiation") + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + helloReq, ok := msg.(*helloRequestMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(helloReq, msg) + } + + if !c.isClient { + return c.sendAlert(alertNoRenegotiation) + } + + switch c.config.Renegotiation { + case RenegotiateNever: + return c.sendAlert(alertNoRenegotiation) + case RenegotiateOnceAsClient: + if c.handshakes > 1 { + return c.sendAlert(alertNoRenegotiation) + } + case RenegotiateFreelyAsClient: + // Ok. + default: + c.sendAlert(alertInternalError) + return errors.New("tls: unknown Renegotiation value") + } + + c.handshakeMutex.Lock() + defer c.handshakeMutex.Unlock() + + atomic.StoreUint32(&c.handshakeStatus, 0) + if c.handshakeErr = c.clientHandshake(); c.handshakeErr == nil { + c.handshakes++ + } + return c.handshakeErr +} + +func (c *Conn) HandlePostHandshakeMessage() error { + return c.handlePostHandshakeMessage() +} + +// handlePostHandshakeMessage processes a handshake message arrived after the +// handshake is complete. Up to TLS 1.2, it indicates the start of a renegotiation. +func (c *Conn) handlePostHandshakeMessage() error { + if c.vers != VersionTLS13 { + return c.handleRenegotiation() + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + c.retryCount++ + if c.retryCount > maxUselessRecords { + c.sendAlert(alertUnexpectedMessage) + return c.in.setErrorLocked(errors.New("tls: too many non-advancing records")) + } + + switch msg := msg.(type) { + case *newSessionTicketMsgTLS13: + return c.handleNewSessionTicket(msg) + case *keyUpdateMsg: + return c.handleKeyUpdate(msg) + default: + c.sendAlert(alertUnexpectedMessage) + return fmt.Errorf("tls: received unexpected handshake message of type %T", msg) + } +} + +func (c *Conn) handleKeyUpdate(keyUpdate *keyUpdateMsg) error { + cipherSuite := cipherSuiteTLS13ByID(c.cipherSuite) + if cipherSuite == nil { + return c.in.setErrorLocked(c.sendAlert(alertInternalError)) + } + + newSecret := cipherSuite.nextTrafficSecret(c.in.trafficSecret) + c.in.setTrafficSecret(cipherSuite, newSecret) + + if keyUpdate.updateRequested { + c.out.Lock() + defer c.out.Unlock() + + msg := &keyUpdateMsg{} + _, err := c.writeRecordLocked(recordTypeHandshake, msg.marshal()) + if err != nil { + // Surface the error at the next write. + c.out.setErrorLocked(err) + return nil + } + + newSecret := cipherSuite.nextTrafficSecret(c.out.trafficSecret) + c.out.setTrafficSecret(cipherSuite, newSecret) + } + + return nil +} + +// Read can be made to time out and return a net.Error with Timeout() == true +// after a fixed time limit; see SetDeadline and SetReadDeadline. +func (c *Conn) Read(b []byte) (int, error) { + if err := c.Handshake(); err != nil { + return 0, err + } + if len(b) == 0 { + // Put this after Handshake, in case people were calling + // Read(nil) for the side effect of the Handshake. + return 0, nil + } + + c.in.Lock() + defer c.in.Unlock() + + for c.input.Len() == 0 { + if err := c.readRecord(); err != nil { + return 0, err + } + for c.hand.Len() > 0 { + if err := c.handlePostHandshakeMessage(); err != nil { + return 0, err + } + } + } + + n, _ := c.input.Read(b) + + // If a close-notify alert is waiting, read it so that we can return (n, + // EOF) instead of (n, nil), to signal to the HTTP response reading + // goroutine that the connection is now closed. This eliminates a race + // where the HTTP response reading goroutine would otherwise not observe + // the EOF until its next read, by which time a client goroutine might + // have already tried to reuse the HTTP connection for a new request. + // See https://golang.org/cl/76400046 and https://golang.org/issue/3514 + if n != 0 && c.input.Len() == 0 && c.rawInput.Len() > 0 && + recordType(c.rawInput.Bytes()[0]) == recordTypeAlert { + if err := c.readRecord(); err != nil { + return n, err // will be io.EOF on closeNotify + } + } + + return n, nil +} + +// Close closes the connection. +func (c *Conn) Close() error { + // Interlock with Conn.Write above. + var x int32 + for { + x = atomic.LoadInt32(&c.activeCall) + if x&1 != 0 { + return errClosed + } + if atomic.CompareAndSwapInt32(&c.activeCall, x, x|1) { + break + } + } + if x != 0 { + // io.Writer and io.Closer should not be used concurrently. + // If Close is called while a Write is currently in-flight, + // interpret that as a sign that this Close is really just + // being used to break the Write and/or clean up resources and + // avoid sending the alertCloseNotify, which may block + // waiting on handshakeMutex or the c.out mutex. + return c.conn.Close() + } + + var alertErr error + + if c.handshakeComplete() { + alertErr = c.closeNotify() + } + + if err := c.conn.Close(); err != nil { + return err + } + return alertErr +} + +var errEarlyCloseWrite = errors.New("tls: CloseWrite called before handshake complete") + +// CloseWrite shuts down the writing side of the connection. It should only be +// called once the handshake has completed and does not call CloseWrite on the +// underlying connection. Most callers should just use Close. +func (c *Conn) CloseWrite() error { + if !c.handshakeComplete() { + return errEarlyCloseWrite + } + + return c.closeNotify() +} + +func (c *Conn) closeNotify() error { + c.out.Lock() + defer c.out.Unlock() + + if !c.closeNotifySent { + c.closeNotifyErr = c.sendAlertLocked(alertCloseNotify) + c.closeNotifySent = true + } + return c.closeNotifyErr +} + +// Handshake runs the client or server handshake +// protocol if it has not yet been run. +// Most uses of this package need not call Handshake +// explicitly: the first Read or Write will call it automatically. +func (c *Conn) Handshake() error { + c.handshakeMutex.Lock() + defer c.handshakeMutex.Unlock() + + if err := c.handshakeErr; err != nil { + return err + } + if c.handshakeComplete() { + return nil + } + + c.in.Lock() + defer c.in.Unlock() + + if c.isClient { + c.handshakeErr = c.clientHandshake() + } else { + c.handshakeErr = c.serverHandshake() + } + if c.handshakeErr == nil { + c.handshakes++ + } else { + // If an error occurred during the hadshake try to flush the + // alert that might be left in the buffer. + c.flush() + } + + if c.handshakeErr == nil && !c.handshakeComplete() { + c.handshakeErr = errors.New("tls: internal error: handshake should have had a result") + } + + return c.handshakeErr +} + +// ConnectionState returns basic TLS details about the connection. +func (c *Conn) ConnectionState() ConnectionState { + c.handshakeMutex.Lock() + defer c.handshakeMutex.Unlock() + + var state ConnectionState + state.HandshakeComplete = c.handshakeComplete() + state.ServerName = c.serverName + + if state.HandshakeComplete { + state.Version = c.vers + state.NegotiatedProtocol = c.clientProtocol + state.DidResume = c.didResume + state.NegotiatedProtocolIsMutual = !c.clientProtocolFallback + state.CipherSuite = c.cipherSuite + state.PeerCertificates = c.peerCertificates + state.VerifiedChains = c.verifiedChains + state.SignedCertificateTimestamps = c.scts + state.OCSPResponse = c.ocspResponse + if !c.didResume && c.vers != VersionTLS13 { + if c.clientFinishedIsFirst { + state.TLSUnique = c.clientFinished[:] + } else { + state.TLSUnique = c.serverFinished[:] + } + } + if c.config.Renegotiation != RenegotiateNever { + state.ekm = noExportedKeyingMaterial + } else { + state.ekm = c.ekm + } + } + + return state +} + +// OCSPResponse returns the stapled OCSP response from the TLS server, if +// any. (Only valid for client connections.) +func (c *Conn) OCSPResponse() []byte { + c.handshakeMutex.Lock() + defer c.handshakeMutex.Unlock() + + return c.ocspResponse +} + +// VerifyHostname checks that the peer certificate chain is valid for +// connecting to host. If so, it returns nil; if not, it returns an error +// describing the problem. +func (c *Conn) VerifyHostname(host string) error { + c.handshakeMutex.Lock() + defer c.handshakeMutex.Unlock() + if !c.isClient { + return errors.New("tls: VerifyHostname called on TLS server connection") + } + if !c.handshakeComplete() { + return errors.New("tls: handshake has not yet been performed") + } + if len(c.verifiedChains) == 0 { + return errors.New("tls: handshake did not verify certificate chain") + } + return c.peerCertificates[0].VerifyHostname(host) +} + +func (c *Conn) handshakeComplete() bool { + return atomic.LoadUint32(&c.handshakeStatus) == 1 +} diff --git a/vendor/github.com/marten-seemann/qtls/generate_cert.go b/vendor/github.com/marten-seemann/qtls/generate_cert.go new file mode 100644 index 00000000..8d012be7 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/generate_cert.go @@ -0,0 +1,169 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// Generate a self-signed X.509 certificate for a TLS server. Outputs to +// 'cert.pem' and 'key.pem' and will overwrite existing files. + +package main + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "crypto/x509/pkix" + "encoding/pem" + "flag" + "fmt" + "log" + "math/big" + "net" + "os" + "strings" + "time" +) + +var ( + host = flag.String("host", "", "Comma-separated hostnames and IPs to generate a certificate for") + validFrom = flag.String("start-date", "", "Creation date formatted as Jan 1 15:04:05 2011") + validFor = flag.Duration("duration", 365*24*time.Hour, "Duration that certificate is valid for") + isCA = flag.Bool("ca", false, "whether this cert should be its own Certificate Authority") + rsaBits = flag.Int("rsa-bits", 2048, "Size of RSA key to generate. Ignored if --ecdsa-curve is set") + ecdsaCurve = flag.String("ecdsa-curve", "", "ECDSA curve to use to generate a key. Valid values are P224, P256 (recommended), P384, P521") +) + +func publicKey(priv interface{}) interface{} { + switch k := priv.(type) { + case *rsa.PrivateKey: + return &k.PublicKey + case *ecdsa.PrivateKey: + return &k.PublicKey + default: + return nil + } +} + +func pemBlockForKey(priv interface{}) *pem.Block { + switch k := priv.(type) { + case *rsa.PrivateKey: + return &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(k)} + case *ecdsa.PrivateKey: + b, err := x509.MarshalECPrivateKey(k) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable to marshal ECDSA private key: %v", err) + os.Exit(2) + } + return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b} + default: + return nil + } +} + +func main() { + flag.Parse() + + if len(*host) == 0 { + log.Fatalf("Missing required --host parameter") + } + + var priv interface{} + var err error + switch *ecdsaCurve { + case "": + priv, err = rsa.GenerateKey(rand.Reader, *rsaBits) + case "P224": + priv, err = ecdsa.GenerateKey(elliptic.P224(), rand.Reader) + case "P256": + priv, err = ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + case "P384": + priv, err = ecdsa.GenerateKey(elliptic.P384(), rand.Reader) + case "P521": + priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader) + default: + fmt.Fprintf(os.Stderr, "Unrecognized elliptic curve: %q", *ecdsaCurve) + os.Exit(1) + } + if err != nil { + log.Fatalf("failed to generate private key: %s", err) + } + + var notBefore time.Time + if len(*validFrom) == 0 { + notBefore = time.Now() + } else { + notBefore, err = time.Parse("Jan 2 15:04:05 2006", *validFrom) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to parse creation date: %s\n", err) + os.Exit(1) + } + } + + notAfter := notBefore.Add(*validFor) + + serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) + serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) + if err != nil { + log.Fatalf("failed to generate serial number: %s", err) + } + + template := x509.Certificate{ + SerialNumber: serialNumber, + Subject: pkix.Name{ + Organization: []string{"Acme Co"}, + }, + NotBefore: notBefore, + NotAfter: notAfter, + + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, + ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, + BasicConstraintsValid: true, + } + + hosts := strings.Split(*host, ",") + for _, h := range hosts { + if ip := net.ParseIP(h); ip != nil { + template.IPAddresses = append(template.IPAddresses, ip) + } else { + template.DNSNames = append(template.DNSNames, h) + } + } + + if *isCA { + template.IsCA = true + template.KeyUsage |= x509.KeyUsageCertSign + } + + derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv) + if err != nil { + log.Fatalf("Failed to create certificate: %s", err) + } + + certOut, err := os.Create("cert.pem") + if err != nil { + log.Fatalf("failed to open cert.pem for writing: %s", err) + } + if err := pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}); err != nil { + log.Fatalf("failed to write data to cert.pem: %s", err) + } + if err := certOut.Close(); err != nil { + log.Fatalf("error closing cert.pem: %s", err) + } + log.Print("wrote cert.pem\n") + + keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) + if err != nil { + log.Print("failed to open key.pem for writing:", err) + return + } + if err := pem.Encode(keyOut, pemBlockForKey(priv)); err != nil { + log.Fatalf("failed to write data to key.pem: %s", err) + } + if err := keyOut.Close(); err != nil { + log.Fatalf("error closing key.pem: %s", err) + } + log.Print("wrote key.pem\n") +} diff --git a/vendor/github.com/marten-seemann/qtls/go.mod b/vendor/github.com/marten-seemann/qtls/go.mod new file mode 100644 index 00000000..9cd2ced5 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/go.mod @@ -0,0 +1,8 @@ +module github.com/marten-seemann/qtls + +go 1.12 + +require ( + golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 + golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e +) diff --git a/vendor/github.com/marten-seemann/qtls/go.sum b/vendor/github.com/marten-seemann/qtls/go.sum new file mode 100644 index 00000000..a47aabd2 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/go.sum @@ -0,0 +1,5 @@ +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/marten-seemann/qtls/handshake_client.go b/vendor/github.com/marten-seemann/qtls/handshake_client.go new file mode 100644 index 00000000..1d2903d5 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/handshake_client.go @@ -0,0 +1,1023 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "bytes" + "crypto" + "crypto/ecdsa" + "crypto/rsa" + "crypto/subtle" + "crypto/x509" + "errors" + "fmt" + "io" + "net" + "strconv" + "strings" + "sync/atomic" + "time" +) + +type clientHandshakeState struct { + c *Conn + serverHello *serverHelloMsg + hello *clientHelloMsg + suite *cipherSuite + finishedHash finishedHash + masterSecret []byte + session *ClientSessionState +} + +func (c *Conn) makeClientHello() (*clientHelloMsg, ecdheParameters, error) { + config := c.config + if len(config.ServerName) == 0 && !config.InsecureSkipVerify { + return nil, nil, errors.New("tls: either ServerName or InsecureSkipVerify must be specified in the tls.Config") + } + + nextProtosLength := 0 + for _, proto := range config.NextProtos { + if l := len(proto); l == 0 || l > 255 { + return nil, nil, errors.New("tls: invalid NextProtos value") + } else { + nextProtosLength += 1 + l + } + } + if nextProtosLength > 0xffff { + return nil, nil, errors.New("tls: NextProtos values too large") + } + + supportedVersions := config.supportedVersions(true) + if len(supportedVersions) == 0 { + return nil, nil, errors.New("tls: no supported versions satisfy MinVersion and MaxVersion") + } + + clientHelloVersion := supportedVersions[0] + // The version at the beginning of the ClientHello was capped at TLS 1.2 + // for compatibility reasons. The supported_versions extension is used + // to negotiate versions now. See RFC 8446, Section 4.2.1. + if clientHelloVersion > VersionTLS12 { + clientHelloVersion = VersionTLS12 + } + + hello := &clientHelloMsg{ + vers: clientHelloVersion, + compressionMethods: []uint8{compressionNone}, + random: make([]byte, 32), + sessionId: make([]byte, 32), + ocspStapling: true, + scts: true, + serverName: hostnameInSNI(config.ServerName), + supportedCurves: config.curvePreferences(), + supportedPoints: []uint8{pointFormatUncompressed}, + nextProtoNeg: len(config.NextProtos) > 0, + secureRenegotiationSupported: true, + alpnProtocols: config.NextProtos, + supportedVersions: supportedVersions, + } + + if c.handshakes > 0 { + hello.secureRenegotiation = c.clientFinished[:] + } + + possibleCipherSuites := config.cipherSuites() + hello.cipherSuites = make([]uint16, 0, len(possibleCipherSuites)) + +NextCipherSuite: + for _, suiteId := range possibleCipherSuites { + for _, suite := range cipherSuites { + if suite.id != suiteId { + continue + } + // Don't advertise TLS 1.2-only cipher suites unless + // we're attempting TLS 1.2. + if hello.vers < VersionTLS12 && suite.flags&suiteTLS12 != 0 { + continue + } + hello.cipherSuites = append(hello.cipherSuites, suiteId) + continue NextCipherSuite + } + } + + _, err := io.ReadFull(config.rand(), hello.random) + if err != nil { + return nil, nil, errors.New("tls: short read from Rand: " + err.Error()) + } + + // A random session ID is used to detect when the server accepted a ticket + // and is resuming a session (see RFC 5077). In TLS 1.3, it's always set as + // a compatibility measure (see RFC 8446, Section 4.1.2). + if _, err := io.ReadFull(config.rand(), hello.sessionId); err != nil { + return nil, nil, errors.New("tls: short read from Rand: " + err.Error()) + } + + if hello.vers >= VersionTLS12 { + hello.supportedSignatureAlgorithms = supportedSignatureAlgorithms + } + + var params ecdheParameters + if hello.supportedVersions[0] == VersionTLS13 { + hello.cipherSuites = append(hello.cipherSuites, defaultCipherSuitesTLS13()...) + + curveID := config.curvePreferences()[0] + if _, ok := curveForCurveID(curveID); curveID != X25519 && !ok { + return nil, nil, errors.New("tls: CurvePreferences includes unsupported curve") + } + params, err = generateECDHEParameters(config.rand(), curveID) + if err != nil { + return nil, nil, err + } + hello.keyShares = []keyShare{{group: curveID, data: params.PublicKey()}} + } + + if hello.supportedVersions[0] == VersionTLS13 && config.GetExtensions != nil { + hello.additionalExtensions = config.GetExtensions(typeClientHello) + } + + return hello, params, nil +} + +func (c *Conn) clientHandshake() (err error) { + if c.config == nil { + c.config = defaultConfig() + } + c.setAlternativeRecordLayer() + + // This may be a renegotiation handshake, in which case some fields + // need to be reset. + c.didResume = false + + hello, ecdheParams, err := c.makeClientHello() + if err != nil { + return err + } + + cacheKey, session, earlySecret, binderKey := c.loadSession(hello) + if cacheKey != "" && session != nil { + defer func() { + // If we got a handshake failure when resuming a session, throw away + // the session ticket. See RFC 5077, Section 3.2. + // + // RFC 8446 makes no mention of dropping tickets on failure, but it + // does require servers to abort on invalid binders, so we need to + // delete tickets to recover from a corrupted PSK. + if err != nil { + c.config.ClientSessionCache.Put(cacheKey, nil) + } + }() + } + + if _, err := c.writeRecord(recordTypeHandshake, hello.marshal()); err != nil { + return err + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + serverHello, ok := msg.(*serverHelloMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(serverHello, msg) + } + + if err := c.pickTLSVersion(serverHello); err != nil { + return err + } + + if c.vers == VersionTLS13 { + hs := &clientHandshakeStateTLS13{ + c: c, + serverHello: serverHello, + hello: hello, + ecdheParams: ecdheParams, + session: session, + earlySecret: earlySecret, + binderKey: binderKey, + } + + // In TLS 1.3, session tickets are delivered after the handshake. + return hs.handshake() + } + + hs := &clientHandshakeState{ + c: c, + serverHello: serverHello, + hello: hello, + session: session, + } + + if err := hs.handshake(); err != nil { + return err + } + + // If we had a successful handshake and hs.session is different from + // the one already cached - cache a new one. + if cacheKey != "" && hs.session != nil && session != hs.session { + c.config.ClientSessionCache.Put(cacheKey, hs.session) + } + + return nil +} + +func (c *Conn) loadSession(hello *clientHelloMsg) (cacheKey string, + session *ClientSessionState, earlySecret, binderKey []byte) { + if c.config.SessionTicketsDisabled || c.config.ClientSessionCache == nil { + return "", nil, nil, nil + } + + hello.ticketSupported = true + + if hello.supportedVersions[0] == VersionTLS13 { + // Require DHE on resumption as it guarantees forward secrecy against + // compromise of the session ticket key. See RFC 8446, Section 4.2.9. + hello.pskModes = []uint8{pskModeDHE} + } + + // Session resumption is not allowed if renegotiating because + // renegotiation is primarily used to allow a client to send a client + // certificate, which would be skipped if session resumption occurred. + if c.handshakes != 0 { + return "", nil, nil, nil + } + + // Try to resume a previously negotiated TLS session, if available. + cacheKey = clientSessionCacheKey(c.conn.RemoteAddr(), c.config) + session, ok := c.config.ClientSessionCache.Get(cacheKey) + if !ok || session == nil { + return cacheKey, nil, nil, nil + } + + // Check that version used for the previous session is still valid. + versOk := false + for _, v := range hello.supportedVersions { + if v == session.vers { + versOk = true + break + } + } + if !versOk { + return cacheKey, nil, nil, nil + } + + // Check that the cached server certificate is not expired, and that it's + // valid for the ServerName. This should be ensured by the cache key, but + // protect the application from a faulty ClientSessionCache implementation. + if !c.config.InsecureSkipVerify { + if len(session.verifiedChains) == 0 { + // The original connection had InsecureSkipVerify, while this doesn't. + return cacheKey, nil, nil, nil + } + serverCert := session.serverCertificates[0] + if c.config.time().After(serverCert.NotAfter) { + // Expired certificate, delete the entry. + c.config.ClientSessionCache.Put(cacheKey, nil) + return cacheKey, nil, nil, nil + } + if err := serverCert.VerifyHostname(c.config.ServerName); err != nil { + return cacheKey, nil, nil, nil + } + } + + if session.vers != VersionTLS13 { + // In TLS 1.2 the cipher suite must match the resumed session. Ensure we + // are still offering it. + if mutualCipherSuite(hello.cipherSuites, session.cipherSuite) == nil { + return cacheKey, nil, nil, nil + } + + hello.sessionTicket = session.sessionTicket + return + } + + // Check that the session ticket is not expired. + if c.config.time().After(session.useBy) { + c.config.ClientSessionCache.Put(cacheKey, nil) + return cacheKey, nil, nil, nil + } + + // In TLS 1.3 the KDF hash must match the resumed session. Ensure we + // offer at least one cipher suite with that hash. + cipherSuite := cipherSuiteTLS13ByID(session.cipherSuite) + if cipherSuite == nil { + return cacheKey, nil, nil, nil + } + cipherSuiteOk := false + for _, offeredID := range hello.cipherSuites { + offeredSuite := cipherSuiteTLS13ByID(offeredID) + if offeredSuite != nil && offeredSuite.hash == cipherSuite.hash { + cipherSuiteOk = true + break + } + } + if !cipherSuiteOk { + return cacheKey, nil, nil, nil + } + + // Set the pre_shared_key extension. See RFC 8446, Section 4.2.11.1. + ticketAge := uint32(c.config.time().Sub(session.receivedAt) / time.Millisecond) + identity := pskIdentity{ + label: session.sessionTicket, + obfuscatedTicketAge: ticketAge + session.ageAdd, + } + hello.pskIdentities = []pskIdentity{identity} + hello.pskBinders = [][]byte{make([]byte, cipherSuite.hash.Size())} + + // Compute the PSK binders. See RFC 8446, Section 4.2.11.2. + psk := cipherSuite.expandLabel(session.masterSecret, "resumption", + session.nonce, cipherSuite.hash.Size()) + earlySecret = cipherSuite.extract(psk, nil) + binderKey = cipherSuite.deriveSecret(earlySecret, resumptionBinderLabel, nil) + transcript := cipherSuite.hash.New() + transcript.Write(hello.marshalWithoutBinders()) + pskBinders := [][]byte{cipherSuite.finishedHash(binderKey, transcript)} + hello.updateBinders(pskBinders) + + return +} + +func (c *Conn) pickTLSVersion(serverHello *serverHelloMsg) error { + peerVersion := serverHello.vers + if serverHello.supportedVersion != 0 { + peerVersion = serverHello.supportedVersion + } + + vers, ok := c.config.mutualVersion(true, []uint16{peerVersion}) + if !ok { + c.sendAlert(alertProtocolVersion) + return fmt.Errorf("tls: server selected unsupported protocol version %x", peerVersion) + } + + c.vers = vers + c.haveVers = true + c.in.version = vers + c.out.version = vers + + return nil +} + +// Does the handshake, either a full one or resumes old session. Requires hs.c, +// hs.hello, hs.serverHello, and, optionally, hs.session to be set. +func (hs *clientHandshakeState) handshake() error { + c := hs.c + + isResume, err := hs.processServerHello() + if err != nil { + return err + } + + hs.finishedHash = newFinishedHash(c.vers, hs.suite) + + // No signatures of the handshake are needed in a resumption. + // Otherwise, in a full handshake, if we don't have any certificates + // configured then we will never send a CertificateVerify message and + // thus no signatures are needed in that case either. + if isResume || (len(c.config.Certificates) == 0 && c.config.GetClientCertificate == nil) { + hs.finishedHash.discardHandshakeBuffer() + } + + hs.finishedHash.Write(hs.hello.marshal()) + hs.finishedHash.Write(hs.serverHello.marshal()) + + c.buffering = true + if isResume { + if err := hs.establishKeys(); err != nil { + return err + } + if err := hs.readSessionTicket(); err != nil { + return err + } + if err := hs.readFinished(c.serverFinished[:]); err != nil { + return err + } + c.clientFinishedIsFirst = false + if err := hs.sendFinished(c.clientFinished[:]); err != nil { + return err + } + if _, err := c.flush(); err != nil { + return err + } + } else { + if err := hs.doFullHandshake(); err != nil { + return err + } + if err := hs.establishKeys(); err != nil { + return err + } + if err := hs.sendFinished(c.clientFinished[:]); err != nil { + return err + } + if _, err := c.flush(); err != nil { + return err + } + c.clientFinishedIsFirst = true + if err := hs.readSessionTicket(); err != nil { + return err + } + if err := hs.readFinished(c.serverFinished[:]); err != nil { + return err + } + } + + c.ekm = ekmFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.hello.random, hs.serverHello.random) + c.didResume = isResume + atomic.StoreUint32(&c.handshakeStatus, 1) + + return nil +} + +func (hs *clientHandshakeState) pickCipherSuite() error { + if hs.suite = mutualCipherSuite(hs.hello.cipherSuites, hs.serverHello.cipherSuite); hs.suite == nil { + hs.c.sendAlert(alertHandshakeFailure) + return errors.New("tls: server chose an unconfigured cipher suite") + } + + hs.c.cipherSuite = hs.suite.id + return nil +} + +func (hs *clientHandshakeState) doFullHandshake() error { + c := hs.c + + msg, err := c.readHandshake() + if err != nil { + return err + } + certMsg, ok := msg.(*certificateMsg) + if !ok || len(certMsg.certificates) == 0 { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certMsg, msg) + } + hs.finishedHash.Write(certMsg.marshal()) + + if c.handshakes == 0 { + // If this is the first handshake on a connection, process and + // (optionally) verify the server's certificates. + if err := c.verifyServerCertificate(certMsg.certificates); err != nil { + return err + } + } else { + // This is a renegotiation handshake. We require that the + // server's identity (i.e. leaf certificate) is unchanged and + // thus any previous trust decision is still valid. + // + // See https://mitls.org/pages/attacks/3SHAKE for the + // motivation behind this requirement. + if !bytes.Equal(c.peerCertificates[0].Raw, certMsg.certificates[0]) { + c.sendAlert(alertBadCertificate) + return errors.New("tls: server's identity changed during renegotiation") + } + } + + msg, err = c.readHandshake() + if err != nil { + return err + } + + cs, ok := msg.(*certificateStatusMsg) + if ok { + // RFC4366 on Certificate Status Request: + // The server MAY return a "certificate_status" message. + + if !hs.serverHello.ocspStapling { + // If a server returns a "CertificateStatus" message, then the + // server MUST have included an extension of type "status_request" + // with empty "extension_data" in the extended server hello. + + c.sendAlert(alertUnexpectedMessage) + return errors.New("tls: received unexpected CertificateStatus message") + } + hs.finishedHash.Write(cs.marshal()) + + c.ocspResponse = cs.response + + msg, err = c.readHandshake() + if err != nil { + return err + } + } + + keyAgreement := hs.suite.ka(c.vers) + + skx, ok := msg.(*serverKeyExchangeMsg) + if ok { + hs.finishedHash.Write(skx.marshal()) + err = keyAgreement.processServerKeyExchange(c.config, hs.hello, hs.serverHello, c.peerCertificates[0], skx) + if err != nil { + c.sendAlert(alertUnexpectedMessage) + return err + } + + msg, err = c.readHandshake() + if err != nil { + return err + } + } + + var chainToSend *Certificate + var certRequested bool + certReq, ok := msg.(*certificateRequestMsg) + if ok { + certRequested = true + hs.finishedHash.Write(certReq.marshal()) + + cri := certificateRequestInfoFromMsg(certReq) + if chainToSend, err = c.getClientCertificate(cri); err != nil { + c.sendAlert(alertInternalError) + return err + } + + msg, err = c.readHandshake() + if err != nil { + return err + } + } + + shd, ok := msg.(*serverHelloDoneMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(shd, msg) + } + hs.finishedHash.Write(shd.marshal()) + + // If the server requested a certificate then we have to send a + // Certificate message, even if it's empty because we don't have a + // certificate to send. + if certRequested { + certMsg = new(certificateMsg) + certMsg.certificates = chainToSend.Certificate + hs.finishedHash.Write(certMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certMsg.marshal()); err != nil { + return err + } + } + + preMasterSecret, ckx, err := keyAgreement.generateClientKeyExchange(c.config, hs.hello, c.peerCertificates[0]) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + if ckx != nil { + hs.finishedHash.Write(ckx.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, ckx.marshal()); err != nil { + return err + } + } + + if chainToSend != nil && len(chainToSend.Certificate) > 0 { + certVerify := &certificateVerifyMsg{ + hasSignatureAlgorithm: c.vers >= VersionTLS12, + } + + key, ok := chainToSend.PrivateKey.(crypto.Signer) + if !ok { + c.sendAlert(alertInternalError) + return fmt.Errorf("tls: client certificate private key of type %T does not implement crypto.Signer", chainToSend.PrivateKey) + } + + signatureAlgorithm, sigType, hashFunc, err := pickSignatureAlgorithm(key.Public(), certReq.supportedSignatureAlgorithms, hs.hello.supportedSignatureAlgorithms, c.vers) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + // SignatureAndHashAlgorithm was introduced in TLS 1.2. + if certVerify.hasSignatureAlgorithm { + certVerify.signatureAlgorithm = signatureAlgorithm + } + digest, err := hs.finishedHash.hashForClientCertificate(sigType, hashFunc, hs.masterSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + signOpts := crypto.SignerOpts(hashFunc) + if sigType == signatureRSAPSS { + signOpts = &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash, Hash: hashFunc} + } + certVerify.signature, err = key.Sign(c.config.rand(), digest, signOpts) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + + hs.finishedHash.Write(certVerify.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certVerify.marshal()); err != nil { + return err + } + } + + hs.masterSecret = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.hello.random, hs.serverHello.random) + if err := c.config.writeKeyLog(keyLogLabelTLS12, hs.hello.random, hs.masterSecret); err != nil { + c.sendAlert(alertInternalError) + return errors.New("tls: failed to write to key log: " + err.Error()) + } + + hs.finishedHash.discardHandshakeBuffer() + + return nil +} + +func (hs *clientHandshakeState) establishKeys() error { + c := hs.c + + clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV := + keysFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.hello.random, hs.serverHello.random, hs.suite.macLen, hs.suite.keyLen, hs.suite.ivLen) + var clientCipher, serverCipher interface{} + var clientHash, serverHash macFunction + if hs.suite.cipher != nil { + clientCipher = hs.suite.cipher(clientKey, clientIV, false /* not for reading */) + clientHash = hs.suite.mac(c.vers, clientMAC) + serverCipher = hs.suite.cipher(serverKey, serverIV, true /* for reading */) + serverHash = hs.suite.mac(c.vers, serverMAC) + } else { + clientCipher = hs.suite.aead(clientKey, clientIV) + serverCipher = hs.suite.aead(serverKey, serverIV) + } + + c.in.prepareCipherSpec(c.vers, serverCipher, serverHash) + c.out.prepareCipherSpec(c.vers, clientCipher, clientHash) + return nil +} + +func (hs *clientHandshakeState) serverResumedSession() bool { + // If the server responded with the same sessionId then it means the + // sessionTicket is being used to resume a TLS session. + return hs.session != nil && hs.hello.sessionId != nil && + bytes.Equal(hs.serverHello.sessionId, hs.hello.sessionId) +} + +func (hs *clientHandshakeState) processServerHello() (bool, error) { + c := hs.c + + if err := hs.pickCipherSuite(); err != nil { + return false, err + } + + if hs.serverHello.compressionMethod != compressionNone { + c.sendAlert(alertUnexpectedMessage) + return false, errors.New("tls: server selected unsupported compression format") + } + + if c.handshakes == 0 && hs.serverHello.secureRenegotiationSupported { + c.secureRenegotiation = true + if len(hs.serverHello.secureRenegotiation) != 0 { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: initial handshake had non-empty renegotiation extension") + } + } + + if c.handshakes > 0 && c.secureRenegotiation { + var expectedSecureRenegotiation [24]byte + copy(expectedSecureRenegotiation[:], c.clientFinished[:]) + copy(expectedSecureRenegotiation[12:], c.serverFinished[:]) + if !bytes.Equal(hs.serverHello.secureRenegotiation, expectedSecureRenegotiation[:]) { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: incorrect renegotiation extension contents") + } + } + + clientDidNPN := hs.hello.nextProtoNeg + clientDidALPN := len(hs.hello.alpnProtocols) > 0 + serverHasNPN := hs.serverHello.nextProtoNeg + serverHasALPN := len(hs.serverHello.alpnProtocol) > 0 + + if !clientDidNPN && serverHasNPN { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: server advertised unrequested NPN extension") + } + + if !clientDidALPN && serverHasALPN { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: server advertised unrequested ALPN extension") + } + + if serverHasNPN && serverHasALPN { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: server advertised both NPN and ALPN extensions") + } + + if serverHasALPN { + c.clientProtocol = hs.serverHello.alpnProtocol + c.clientProtocolFallback = false + } + c.scts = hs.serverHello.scts + + if !hs.serverResumedSession() { + return false, nil + } + + if hs.session.vers != c.vers { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: server resumed a session with a different version") + } + + if hs.session.cipherSuite != hs.suite.id { + c.sendAlert(alertHandshakeFailure) + return false, errors.New("tls: server resumed a session with a different cipher suite") + } + + // Restore masterSecret and peerCerts from previous state + hs.masterSecret = hs.session.masterSecret + c.peerCertificates = hs.session.serverCertificates + c.verifiedChains = hs.session.verifiedChains + return true, nil +} + +func (hs *clientHandshakeState) readFinished(out []byte) error { + c := hs.c + + if err := c.readChangeCipherSpec(); err != nil { + return err + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + serverFinished, ok := msg.(*finishedMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(serverFinished, msg) + } + + verify := hs.finishedHash.serverSum(hs.masterSecret) + if len(verify) != len(serverFinished.verifyData) || + subtle.ConstantTimeCompare(verify, serverFinished.verifyData) != 1 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: server's Finished message was incorrect") + } + hs.finishedHash.Write(serverFinished.marshal()) + copy(out, verify) + return nil +} + +func (hs *clientHandshakeState) readSessionTicket() error { + if !hs.serverHello.ticketSupported { + return nil + } + + c := hs.c + msg, err := c.readHandshake() + if err != nil { + return err + } + sessionTicketMsg, ok := msg.(*newSessionTicketMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(sessionTicketMsg, msg) + } + hs.finishedHash.Write(sessionTicketMsg.marshal()) + + hs.session = &ClientSessionState{ + sessionTicket: sessionTicketMsg.ticket, + vers: c.vers, + cipherSuite: hs.suite.id, + masterSecret: hs.masterSecret, + serverCertificates: c.peerCertificates, + verifiedChains: c.verifiedChains, + receivedAt: c.config.time(), + } + + return nil +} + +func (hs *clientHandshakeState) sendFinished(out []byte) error { + c := hs.c + + if _, err := c.writeRecord(recordTypeChangeCipherSpec, []byte{1}); err != nil { + return err + } + if hs.serverHello.nextProtoNeg { + nextProto := new(nextProtoMsg) + proto, fallback := mutualProtocol(c.config.NextProtos, hs.serverHello.nextProtos) + nextProto.proto = proto + c.clientProtocol = proto + c.clientProtocolFallback = fallback + + hs.finishedHash.Write(nextProto.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, nextProto.marshal()); err != nil { + return err + } + } + + finished := new(finishedMsg) + finished.verifyData = hs.finishedHash.clientSum(hs.masterSecret) + hs.finishedHash.Write(finished.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, finished.marshal()); err != nil { + return err + } + copy(out, finished.verifyData) + return nil +} + +// verifyServerCertificate parses and verifies the provided chain, setting +// c.verifiedChains and c.peerCertificates or sending the appropriate alert. +func (c *Conn) verifyServerCertificate(certificates [][]byte) error { + certs := make([]*x509.Certificate, len(certificates)) + for i, asn1Data := range certificates { + cert, err := x509.ParseCertificate(asn1Data) + if err != nil { + c.sendAlert(alertBadCertificate) + return errors.New("tls: failed to parse certificate from server: " + err.Error()) + } + certs[i] = cert + } + + if !c.config.InsecureSkipVerify { + opts := x509.VerifyOptions{ + Roots: c.config.RootCAs, + CurrentTime: c.config.time(), + DNSName: c.config.ServerName, + Intermediates: x509.NewCertPool(), + } + + for i, cert := range certs { + if i == 0 { + continue + } + opts.Intermediates.AddCert(cert) + } + var err error + c.verifiedChains, err = certs[0].Verify(opts) + if err != nil { + c.sendAlert(alertBadCertificate) + return err + } + } + + if c.config.VerifyPeerCertificate != nil { + if err := c.config.VerifyPeerCertificate(certificates, c.verifiedChains); err != nil { + c.sendAlert(alertBadCertificate) + return err + } + } + + switch certs[0].PublicKey.(type) { + case *rsa.PublicKey, *ecdsa.PublicKey: + break + default: + c.sendAlert(alertUnsupportedCertificate) + return fmt.Errorf("tls: server's certificate contains an unsupported type of public key: %T", certs[0].PublicKey) + } + + c.peerCertificates = certs + + return nil +} + +// tls11SignatureSchemes contains the signature schemes that we synthesise for +// a TLS <= 1.1 connection, based on the supported certificate types. +var ( + tls11SignatureSchemes = []SignatureScheme{ECDSAWithP256AndSHA256, ECDSAWithP384AndSHA384, ECDSAWithP521AndSHA512, PKCS1WithSHA256, PKCS1WithSHA384, PKCS1WithSHA512, PKCS1WithSHA1} + tls11SignatureSchemesECDSA = tls11SignatureSchemes[:3] + tls11SignatureSchemesRSA = tls11SignatureSchemes[3:] +) + +// certificateRequestInfoFromMsg generates a CertificateRequestInfo from a TLS +// <= 1.2 CertificateRequest, making an effort to fill in missing information. +func certificateRequestInfoFromMsg(certReq *certificateRequestMsg) *CertificateRequestInfo { + var rsaAvail, ecdsaAvail bool + for _, certType := range certReq.certificateTypes { + switch certType { + case certTypeRSASign: + rsaAvail = true + case certTypeECDSASign: + ecdsaAvail = true + } + } + + cri := &CertificateRequestInfo{ + AcceptableCAs: certReq.certificateAuthorities, + } + + if !certReq.hasSignatureAlgorithm { + // Prior to TLS 1.2, the signature schemes were not + // included in the certificate request message. In this + // case we use a plausible list based on the acceptable + // certificate types. + switch { + case rsaAvail && ecdsaAvail: + cri.SignatureSchemes = tls11SignatureSchemes + case rsaAvail: + cri.SignatureSchemes = tls11SignatureSchemesRSA + case ecdsaAvail: + cri.SignatureSchemes = tls11SignatureSchemesECDSA + } + return cri + } + + // In TLS 1.2, the signature schemes apply to both the certificate chain and + // the leaf key, while the certificate types only apply to the leaf key. + // See RFC 5246, Section 7.4.4 (where it calls this "somewhat complicated"). + // Filter the signature schemes based on the certificate type. + cri.SignatureSchemes = make([]SignatureScheme, 0, len(certReq.supportedSignatureAlgorithms)) + for _, sigScheme := range certReq.supportedSignatureAlgorithms { + switch signatureFromSignatureScheme(sigScheme) { + case signatureECDSA: + if ecdsaAvail { + cri.SignatureSchemes = append(cri.SignatureSchemes, sigScheme) + } + case signatureRSAPSS, signaturePKCS1v15: + if rsaAvail { + cri.SignatureSchemes = append(cri.SignatureSchemes, sigScheme) + } + } + } + + return cri +} + +func (c *Conn) getClientCertificate(cri *CertificateRequestInfo) (*Certificate, error) { + if c.config.GetClientCertificate != nil { + return c.config.GetClientCertificate(cri) + } + + // We need to search our list of client certs for one + // where SignatureAlgorithm is acceptable to the server and the + // Issuer is in AcceptableCAs. + for i, chain := range c.config.Certificates { + sigOK := false + for _, alg := range signatureSchemesForCertificate(c.vers, &chain) { + if isSupportedSignatureAlgorithm(alg, cri.SignatureSchemes) { + sigOK = true + break + } + } + if !sigOK { + continue + } + + if len(cri.AcceptableCAs) == 0 { + return &chain, nil + } + + for j, cert := range chain.Certificate { + x509Cert := chain.Leaf + // Parse the certificate if this isn't the leaf node, or if + // chain.Leaf was nil. + if j != 0 || x509Cert == nil { + var err error + if x509Cert, err = x509.ParseCertificate(cert); err != nil { + c.sendAlert(alertInternalError) + return nil, errors.New("tls: failed to parse configured certificate chain #" + strconv.Itoa(i) + ": " + err.Error()) + } + } + + for _, ca := range cri.AcceptableCAs { + if bytes.Equal(x509Cert.RawIssuer, ca) { + return &chain, nil + } + } + } + } + + // No acceptable certificate found. Don't send a certificate. + return new(Certificate), nil +} + +// clientSessionCacheKey returns a key used to cache sessionTickets that could +// be used to resume previously negotiated TLS sessions with a server. +func clientSessionCacheKey(serverAddr net.Addr, config *Config) string { + if len(config.ServerName) > 0 { + return config.ServerName + } + return serverAddr.String() +} + +// mutualProtocol finds the mutual Next Protocol Negotiation or ALPN protocol +// given list of possible protocols and a list of the preference order. The +// first list must not be empty. It returns the resulting protocol and flag +// indicating if the fallback case was reached. +func mutualProtocol(protos, preferenceProtos []string) (string, bool) { + for _, s := range preferenceProtos { + for _, c := range protos { + if s == c { + return s, false + } + } + } + + return protos[0], true +} + +// hostnameInSNI converts name into an approriate hostname for SNI. +// Literal IP addresses and absolute FQDNs are not permitted as SNI values. +// See RFC 6066, Section 3. +func hostnameInSNI(name string) string { + host := name + if len(host) > 0 && host[0] == '[' && host[len(host)-1] == ']' { + host = host[1 : len(host)-1] + } + if i := strings.LastIndex(host, "%"); i > 0 { + host = host[:i] + } + if net.ParseIP(host) != nil { + return "" + } + for len(name) > 0 && name[len(name)-1] == '.' { + name = name[:len(name)-1] + } + return name +} diff --git a/vendor/github.com/marten-seemann/qtls/handshake_client_tls13.go b/vendor/github.com/marten-seemann/qtls/handshake_client_tls13.go new file mode 100644 index 00000000..9d8e0f7b --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/handshake_client_tls13.go @@ -0,0 +1,680 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "bytes" + "crypto" + "crypto/hmac" + "crypto/rsa" + "errors" + "hash" + "sync/atomic" + "time" +) + +type clientHandshakeStateTLS13 struct { + c *Conn + serverHello *serverHelloMsg + hello *clientHelloMsg + ecdheParams ecdheParameters + + session *ClientSessionState + earlySecret []byte + binderKey []byte + + certReq *certificateRequestMsgTLS13 + usingPSK bool + sentDummyCCS bool + suite *cipherSuiteTLS13 + transcript hash.Hash + masterSecret []byte + trafficSecret []byte // client_application_traffic_secret_0 +} + +// handshake requires hs.c, hs.hello, hs.serverHello, hs.ecdheParams, and, +// optionally, hs.session, hs.earlySecret and hs.binderKey to be set. +func (hs *clientHandshakeStateTLS13) handshake() error { + c := hs.c + + // The server must not select TLS 1.3 in a renegotiation. See RFC 8446, + // sections 4.1.2 and 4.1.3. + if c.handshakes > 0 { + c.sendAlert(alertProtocolVersion) + return errors.New("tls: server selected TLS 1.3 in a renegotiation") + } + + // Consistency check on the presence of a keyShare and its parameters. + if hs.ecdheParams == nil || len(hs.hello.keyShares) != 1 { + return c.sendAlert(alertInternalError) + } + + if err := hs.checkServerHelloOrHRR(); err != nil { + return err + } + + hs.transcript = hs.suite.hash.New() + hs.transcript.Write(hs.hello.marshal()) + + if bytes.Equal(hs.serverHello.random, helloRetryRequestRandom) { + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } + if err := hs.processHelloRetryRequest(); err != nil { + return err + } + } + + hs.transcript.Write(hs.serverHello.marshal()) + + c.buffering = true + if err := hs.processServerHello(); err != nil { + return err + } + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } + if err := hs.establishHandshakeKeys(); err != nil { + return err + } + if err := hs.readServerParameters(); err != nil { + return err + } + if err := hs.readServerCertificate(); err != nil { + return err + } + if err := hs.readServerFinished(); err != nil { + return err + } + if err := hs.sendClientCertificate(); err != nil { + return err + } + if err := hs.sendClientFinished(); err != nil { + return err + } + if _, err := c.flush(); err != nil { + return err + } + + atomic.StoreUint32(&c.handshakeStatus, 1) + + return nil +} + +// checkServerHelloOrHRR does validity checks that apply to both ServerHello and +// HelloRetryRequest messages. It sets hs.suite. +func (hs *clientHandshakeStateTLS13) checkServerHelloOrHRR() error { + c := hs.c + + if hs.serverHello.supportedVersion == 0 { + c.sendAlert(alertMissingExtension) + return errors.New("tls: server selected TLS 1.3 using the legacy version field") + } + + if hs.serverHello.supportedVersion != VersionTLS13 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected an invalid version after a HelloRetryRequest") + } + + if hs.serverHello.vers != VersionTLS12 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server sent an incorrect legacy version") + } + + if hs.serverHello.nextProtoNeg || + len(hs.serverHello.nextProtos) != 0 || + hs.serverHello.ocspStapling || + hs.serverHello.ticketSupported || + hs.serverHello.secureRenegotiationSupported || + len(hs.serverHello.secureRenegotiation) != 0 || + len(hs.serverHello.alpnProtocol) != 0 || + len(hs.serverHello.scts) != 0 { + c.sendAlert(alertUnsupportedExtension) + return errors.New("tls: server sent a ServerHello extension forbidden in TLS 1.3") + } + + if !bytes.Equal(hs.hello.sessionId, hs.serverHello.sessionId) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server did not echo the legacy session ID") + } + + if hs.serverHello.compressionMethod != compressionNone { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected unsupported compression format") + } + + selectedSuite := mutualCipherSuiteTLS13(hs.hello.cipherSuites, hs.serverHello.cipherSuite) + if hs.suite != nil && selectedSuite != hs.suite { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server changed cipher suite after a HelloRetryRequest") + } + if selectedSuite == nil { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server chose an unconfigured cipher suite") + } + hs.suite = selectedSuite + c.cipherSuite = hs.suite.id + + return nil +} + +// sendDummyChangeCipherSpec sends a ChangeCipherSpec record for compatibility +// with middleboxes that didn't implement TLS correctly. See RFC 8446, Appendix D.4. +func (hs *clientHandshakeStateTLS13) sendDummyChangeCipherSpec() error { + if hs.sentDummyCCS { + return nil + } + hs.sentDummyCCS = true + + _, err := hs.c.writeRecord(recordTypeChangeCipherSpec, []byte{1}) + return err +} + +// processHelloRetryRequest handles the HRR in hs.serverHello, modifies and +// resends hs.hello, and reads the new ServerHello into hs.serverHello. +func (hs *clientHandshakeStateTLS13) processHelloRetryRequest() error { + c := hs.c + + // The first ClientHello gets double-hashed into the transcript upon a + // HelloRetryRequest. See RFC 8446, Section 4.4.1. + chHash := hs.transcript.Sum(nil) + hs.transcript.Reset() + hs.transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) + hs.transcript.Write(chHash) + hs.transcript.Write(hs.serverHello.marshal()) + + if hs.serverHello.serverShare.group != 0 { + c.sendAlert(alertDecodeError) + return errors.New("tls: received malformed key_share extension") + } + + curveID := hs.serverHello.selectedGroup + if curveID == 0 { + c.sendAlert(alertMissingExtension) + return errors.New("tls: received HelloRetryRequest without selected group") + } + curveOK := false + for _, id := range hs.hello.supportedCurves { + if id == curveID { + curveOK = true + break + } + } + if !curveOK { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected unsupported group") + } + if hs.ecdheParams.CurveID() == curveID { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server sent an unnecessary HelloRetryRequest message") + } + if _, ok := curveForCurveID(curveID); curveID != X25519 && !ok { + c.sendAlert(alertInternalError) + return errors.New("tls: CurvePreferences includes unsupported curve") + } + params, err := generateECDHEParameters(c.config.rand(), curveID) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + hs.ecdheParams = params + hs.hello.keyShares = []keyShare{{group: curveID, data: params.PublicKey()}} + + hs.hello.cookie = hs.serverHello.cookie + + hs.hello.raw = nil + if len(hs.hello.pskIdentities) > 0 { + pskSuite := cipherSuiteTLS13ByID(hs.session.cipherSuite) + if pskSuite == nil { + return c.sendAlert(alertInternalError) + } + if pskSuite.hash == hs.suite.hash { + // Update binders and obfuscated_ticket_age. + ticketAge := uint32(c.config.time().Sub(hs.session.receivedAt) / time.Millisecond) + hs.hello.pskIdentities[0].obfuscatedTicketAge = ticketAge + hs.session.ageAdd + + transcript := hs.suite.hash.New() + transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) + transcript.Write(chHash) + transcript.Write(hs.serverHello.marshal()) + transcript.Write(hs.hello.marshalWithoutBinders()) + pskBinders := [][]byte{hs.suite.finishedHash(hs.binderKey, transcript)} + hs.hello.updateBinders(pskBinders) + } else { + // Server selected a cipher suite incompatible with the PSK. + hs.hello.pskIdentities = nil + hs.hello.pskBinders = nil + } + } + + hs.transcript.Write(hs.hello.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, hs.hello.marshal()); err != nil { + return err + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + serverHello, ok := msg.(*serverHelloMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(serverHello, msg) + } + hs.serverHello = serverHello + + if err := hs.checkServerHelloOrHRR(); err != nil { + return err + } + + return nil +} + +func (hs *clientHandshakeStateTLS13) processServerHello() error { + c := hs.c + + if bytes.Equal(hs.serverHello.random, helloRetryRequestRandom) { + c.sendAlert(alertUnexpectedMessage) + return errors.New("tls: server sent two HelloRetryRequest messages") + } + + if len(hs.serverHello.cookie) != 0 { + c.sendAlert(alertUnsupportedExtension) + return errors.New("tls: server sent a cookie in a normal ServerHello") + } + + if hs.serverHello.selectedGroup != 0 { + c.sendAlert(alertDecodeError) + return errors.New("tls: malformed key_share extension") + } + + if hs.serverHello.serverShare.group == 0 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server did not send a key share") + } + if hs.serverHello.serverShare.group != hs.ecdheParams.CurveID() { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected unsupported group") + } + + if !hs.serverHello.selectedIdentityPresent { + return nil + } + + if int(hs.serverHello.selectedIdentity) >= len(hs.hello.pskIdentities) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected an invalid PSK") + } + + if len(hs.hello.pskIdentities) != 1 || hs.session == nil { + return c.sendAlert(alertInternalError) + } + pskSuite := cipherSuiteTLS13ByID(hs.session.cipherSuite) + if pskSuite == nil { + return c.sendAlert(alertInternalError) + } + if pskSuite.hash != hs.suite.hash { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected an invalid PSK and cipher suite pair") + } + + hs.usingPSK = true + c.didResume = true + c.peerCertificates = hs.session.serverCertificates + c.verifiedChains = hs.session.verifiedChains + return nil +} + +func (hs *clientHandshakeStateTLS13) establishHandshakeKeys() error { + c := hs.c + + sharedKey := hs.ecdheParams.SharedKey(hs.serverHello.serverShare.data) + if sharedKey == nil { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid server key share") + } + + earlySecret := hs.earlySecret + if !hs.usingPSK { + earlySecret = hs.suite.extract(nil, nil) + } + handshakeSecret := hs.suite.extract(sharedKey, + hs.suite.deriveSecret(earlySecret, "derived", nil)) + + clientSecret := hs.suite.deriveSecret(handshakeSecret, + clientHandshakeTrafficLabel, hs.transcript) + c.out.exportKey(hs.suite, clientSecret) + c.out.setTrafficSecret(hs.suite, clientSecret) + serverSecret := hs.suite.deriveSecret(handshakeSecret, + serverHandshakeTrafficLabel, hs.transcript) + c.in.exportKey(hs.suite, serverSecret) + c.in.setTrafficSecret(hs.suite, serverSecret) + + err := c.config.writeKeyLog(keyLogLabelClientHandshake, hs.hello.random, clientSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerHandshake, hs.hello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + + hs.masterSecret = hs.suite.extract(nil, + hs.suite.deriveSecret(handshakeSecret, "derived", nil)) + + return nil +} + +func (hs *clientHandshakeStateTLS13) readServerParameters() error { + c := hs.c + + msg, err := c.readHandshake() + if err != nil { + return err + } + + encryptedExtensions, ok := msg.(*encryptedExtensionsMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(encryptedExtensions, msg) + } + if hs.c.config.ReceivedExtensions != nil { + hs.c.config.ReceivedExtensions(typeEncryptedExtensions, encryptedExtensions.additionalExtensions) + } + hs.transcript.Write(encryptedExtensions.marshal()) + + if len(encryptedExtensions.alpnProtocol) != 0 && len(hs.hello.alpnProtocols) == 0 { + c.sendAlert(alertUnsupportedExtension) + return errors.New("tls: server advertised unrequested ALPN extension") + } + c.clientProtocol = encryptedExtensions.alpnProtocol + + return nil +} + +func (hs *clientHandshakeStateTLS13) readServerCertificate() error { + c := hs.c + + // Either a PSK or a certificate is always used, but not both. + // See RFC 8446, Section 4.1.1. + if hs.usingPSK { + return nil + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + certReq, ok := msg.(*certificateRequestMsgTLS13) + if ok { + hs.transcript.Write(certReq.marshal()) + + hs.certReq = certReq + + msg, err = c.readHandshake() + if err != nil { + return err + } + } + + certMsg, ok := msg.(*certificateMsgTLS13) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certMsg, msg) + } + if len(certMsg.certificate.Certificate) == 0 { + c.sendAlert(alertDecodeError) + return errors.New("tls: received empty certificates message") + } + hs.transcript.Write(certMsg.marshal()) + + c.scts = certMsg.certificate.SignedCertificateTimestamps + c.ocspResponse = certMsg.certificate.OCSPStaple + + if err := c.verifyServerCertificate(certMsg.certificate.Certificate); err != nil { + return err + } + + msg, err = c.readHandshake() + if err != nil { + return err + } + + certVerify, ok := msg.(*certificateVerifyMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certVerify, msg) + } + + // See RFC 8446, Section 4.4.3. + if !isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, supportedSignatureAlgorithms) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid certificate signature algorithm") + } + sigType := signatureFromSignatureScheme(certVerify.signatureAlgorithm) + sigHash, err := hashFromSignatureScheme(certVerify.signatureAlgorithm) + if sigType == 0 || err != nil { + c.sendAlert(alertInternalError) + return err + } + if sigType == signaturePKCS1v15 || sigHash == crypto.SHA1 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid certificate signature algorithm") + } + h := sigHash.New() + writeSignedMessage(h, serverSignatureContext, hs.transcript) + if err := verifyHandshakeSignature(sigType, c.peerCertificates[0].PublicKey, + sigHash, h.Sum(nil), certVerify.signature); err != nil { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid certificate signature") + } + + hs.transcript.Write(certVerify.marshal()) + + return nil +} + +func (hs *clientHandshakeStateTLS13) readServerFinished() error { + c := hs.c + + msg, err := c.readHandshake() + if err != nil { + return err + } + + finished, ok := msg.(*finishedMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(finished, msg) + } + + expectedMAC := hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) + if !hmac.Equal(expectedMAC, finished.verifyData) { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid server finished hash") + } + + hs.transcript.Write(finished.marshal()) + + // Derive secrets that take context through the server Finished. + + hs.trafficSecret = hs.suite.deriveSecret(hs.masterSecret, + clientApplicationTrafficLabel, hs.transcript) + serverSecret := hs.suite.deriveSecret(hs.masterSecret, + serverApplicationTrafficLabel, hs.transcript) + c.in.exportKey(hs.suite, serverSecret) + c.in.setTrafficSecret(hs.suite, serverSecret) + + err = c.config.writeKeyLog(keyLogLabelClientTraffic, hs.hello.random, hs.trafficSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerTraffic, hs.hello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + + c.ekm = hs.suite.exportKeyingMaterial(hs.masterSecret, hs.transcript) + + return nil +} + +func (hs *clientHandshakeStateTLS13) sendClientCertificate() error { + c := hs.c + + if hs.certReq == nil { + return nil + } + + cert, err := c.getClientCertificate(&CertificateRequestInfo{ + AcceptableCAs: hs.certReq.certificateAuthorities, + SignatureSchemes: hs.certReq.supportedSignatureAlgorithms, + }) + if err != nil { + return err + } + + certMsg := new(certificateMsgTLS13) + + certMsg.certificate = *cert + certMsg.scts = hs.certReq.scts && len(cert.SignedCertificateTimestamps) > 0 + certMsg.ocspStapling = hs.certReq.ocspStapling && len(cert.OCSPStaple) > 0 + + hs.transcript.Write(certMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certMsg.marshal()); err != nil { + return err + } + + // If we sent an empty certificate message, skip the CertificateVerify. + if len(cert.Certificate) == 0 { + return nil + } + + certVerifyMsg := new(certificateVerifyMsg) + certVerifyMsg.hasSignatureAlgorithm = true + + supportedAlgs := signatureSchemesForCertificate(c.vers, cert) + if supportedAlgs == nil { + c.sendAlert(alertInternalError) + return unsupportedCertificateError(cert) + } + // Pick signature scheme in server preference order, as the client + // preference order is not configurable. + for _, preferredAlg := range hs.certReq.supportedSignatureAlgorithms { + if isSupportedSignatureAlgorithm(preferredAlg, supportedAlgs) { + certVerifyMsg.signatureAlgorithm = preferredAlg + break + } + } + if certVerifyMsg.signatureAlgorithm == 0 { + // getClientCertificate returned a certificate incompatible with the + // CertificateRequestInfo supported signature algorithms. + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: server doesn't support selected certificate") + } + + sigType := signatureFromSignatureScheme(certVerifyMsg.signatureAlgorithm) + sigHash, err := hashFromSignatureScheme(certVerifyMsg.signatureAlgorithm) + if sigType == 0 || err != nil { + return c.sendAlert(alertInternalError) + } + h := sigHash.New() + writeSignedMessage(h, clientSignatureContext, hs.transcript) + + signOpts := crypto.SignerOpts(sigHash) + if sigType == signatureRSAPSS { + signOpts = &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash, Hash: sigHash} + } + sig, err := cert.PrivateKey.(crypto.Signer).Sign(c.config.rand(), h.Sum(nil), signOpts) + if err != nil { + c.sendAlert(alertInternalError) + return errors.New("tls: failed to sign handshake: " + err.Error()) + } + certVerifyMsg.signature = sig + + hs.transcript.Write(certVerifyMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certVerifyMsg.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *clientHandshakeStateTLS13) sendClientFinished() error { + c := hs.c + + finished := &finishedMsg{ + verifyData: hs.suite.finishedHash(c.out.trafficSecret, hs.transcript), + } + + hs.transcript.Write(finished.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, finished.marshal()); err != nil { + return err + } + + c.out.exportKey(hs.suite, hs.trafficSecret) + c.out.setTrafficSecret(hs.suite, hs.trafficSecret) + + if !c.config.SessionTicketsDisabled && c.config.ClientSessionCache != nil { + c.resumptionSecret = hs.suite.deriveSecret(hs.masterSecret, + resumptionLabel, hs.transcript) + } + + return nil +} + +func (c *Conn) handleNewSessionTicket(msg *newSessionTicketMsgTLS13) error { + if !c.isClient { + c.sendAlert(alertUnexpectedMessage) + return errors.New("tls: received new session ticket from a client") + } + + if c.config.SessionTicketsDisabled || c.config.ClientSessionCache == nil { + return nil + } + + // See RFC 8446, Section 4.6.1. + if msg.lifetime == 0 { + return nil + } + lifetime := time.Duration(msg.lifetime) * time.Second + if lifetime > maxSessionTicketLifetime { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: received a session ticket with invalid lifetime") + } + + cipherSuite := cipherSuiteTLS13ByID(c.cipherSuite) + if cipherSuite == nil || c.resumptionSecret == nil { + return c.sendAlert(alertInternalError) + } + + // Save the resumption_master_secret and nonce instead of deriving the PSK + // to do the least amount of work on NewSessionTicket messages before we + // know if the ticket will be used. Forward secrecy of resumed connections + // is guaranteed by the requirement for pskModeDHE. + session := &ClientSessionState{ + sessionTicket: msg.label, + vers: c.vers, + cipherSuite: c.cipherSuite, + masterSecret: c.resumptionSecret, + serverCertificates: c.peerCertificates, + verifiedChains: c.verifiedChains, + receivedAt: c.config.time(), + nonce: msg.nonce, + useBy: c.config.time().Add(lifetime), + ageAdd: msg.ageAdd, + } + + cacheKey := clientSessionCacheKey(c.conn.RemoteAddr(), c.config) + c.config.ClientSessionCache.Put(cacheKey, session) + + return nil +} diff --git a/vendor/github.com/marten-seemann/qtls/handshake_messages.go b/vendor/github.com/marten-seemann/qtls/handshake_messages.go new file mode 100644 index 00000000..9c2ffa1d --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/handshake_messages.go @@ -0,0 +1,1900 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "fmt" + "strings" + + "golang.org/x/crypto/cryptobyte" +) + +// The marshalingFunction type is an adapter to allow the use of ordinary +// functions as cryptobyte.MarshalingValue. +type marshalingFunction func(b *cryptobyte.Builder) error + +func (f marshalingFunction) Marshal(b *cryptobyte.Builder) error { + return f(b) +} + +// addBytesWithLength appends a sequence of bytes to the cryptobyte.Builder. If +// the length of the sequence is not the value specified, it produces an error. +func addBytesWithLength(b *cryptobyte.Builder, v []byte, n int) { + b.AddValue(marshalingFunction(func(b *cryptobyte.Builder) error { + if len(v) != n { + return fmt.Errorf("invalid value length: expected %d, got %d", n, len(v)) + } + b.AddBytes(v) + return nil + })) +} + +// addUint64 appends a big-endian, 64-bit value to the cryptobyte.Builder. +func addUint64(b *cryptobyte.Builder, v uint64) { + b.AddUint32(uint32(v >> 32)) + b.AddUint32(uint32(v)) +} + +// readUint64 decodes a big-endian, 64-bit value into out and advances over it. +// It reports whether the read was successful. +func readUint64(s *cryptobyte.String, out *uint64) bool { + var hi, lo uint32 + if !s.ReadUint32(&hi) || !s.ReadUint32(&lo) { + return false + } + *out = uint64(hi)<<32 | uint64(lo) + return true +} + +// readUint8LengthPrefixed acts like s.ReadUint8LengthPrefixed, but targets a +// []byte instead of a cryptobyte.String. +func readUint8LengthPrefixed(s *cryptobyte.String, out *[]byte) bool { + return s.ReadUint8LengthPrefixed((*cryptobyte.String)(out)) +} + +// readUint16LengthPrefixed acts like s.ReadUint16LengthPrefixed, but targets a +// []byte instead of a cryptobyte.String. +func readUint16LengthPrefixed(s *cryptobyte.String, out *[]byte) bool { + return s.ReadUint16LengthPrefixed((*cryptobyte.String)(out)) +} + +// readUint24LengthPrefixed acts like s.ReadUint24LengthPrefixed, but targets a +// []byte instead of a cryptobyte.String. +func readUint24LengthPrefixed(s *cryptobyte.String, out *[]byte) bool { + return s.ReadUint24LengthPrefixed((*cryptobyte.String)(out)) +} + +type clientHelloMsg struct { + raw []byte + vers uint16 + random []byte + sessionId []byte + cipherSuites []uint16 + compressionMethods []uint8 + nextProtoNeg bool + serverName string + ocspStapling bool + supportedCurves []CurveID + supportedPoints []uint8 + ticketSupported bool + sessionTicket []uint8 + supportedSignatureAlgorithms []SignatureScheme + supportedSignatureAlgorithmsCert []SignatureScheme + secureRenegotiationSupported bool + secureRenegotiation []byte + alpnProtocols []string + scts bool + supportedVersions []uint16 + cookie []byte + keyShares []keyShare + earlyData bool + pskModes []uint8 + pskIdentities []pskIdentity + pskBinders [][]byte + additionalExtensions []Extension +} + +func (m *clientHelloMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeClientHello) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16(m.vers) + addBytesWithLength(b, m.random, 32) + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.sessionId) + }) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, suite := range m.cipherSuites { + b.AddUint16(suite) + } + }) + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.compressionMethods) + }) + + // If extensions aren't present, omit them. + var extensionsPresent bool + bWithoutExtensions := *b + + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if m.nextProtoNeg { + // draft-agl-tls-nextprotoneg-04 + b.AddUint16(extensionNextProtoNeg) + b.AddUint16(0) // empty extension_data + } + if len(m.serverName) > 0 { + // RFC 6066, Section 3 + b.AddUint16(extensionServerName) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8(0) // name_type = host_name + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte(m.serverName)) + }) + }) + }) + } + if m.ocspStapling { + // RFC 4366, Section 3.6 + b.AddUint16(extensionStatusRequest) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8(1) // status_type = ocsp + b.AddUint16(0) // empty responder_id_list + b.AddUint16(0) // empty request_extensions + }) + } + if len(m.supportedCurves) > 0 { + // RFC 4492, sections 5.1.1 and RFC 8446, Section 4.2.7 + b.AddUint16(extensionSupportedCurves) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, curve := range m.supportedCurves { + b.AddUint16(uint16(curve)) + } + }) + }) + } + if len(m.supportedPoints) > 0 { + // RFC 4492, Section 5.1.2 + b.AddUint16(extensionSupportedPoints) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.supportedPoints) + }) + }) + } + if m.ticketSupported { + // RFC 5077, Section 3.2 + b.AddUint16(extensionSessionTicket) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.sessionTicket) + }) + } + if len(m.supportedSignatureAlgorithms) > 0 { + // RFC 5246, Section 7.4.1.4.1 + b.AddUint16(extensionSignatureAlgorithms) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sigAlgo := range m.supportedSignatureAlgorithms { + b.AddUint16(uint16(sigAlgo)) + } + }) + }) + } + if len(m.supportedSignatureAlgorithmsCert) > 0 { + // RFC 8446, Section 4.2.3 + b.AddUint16(extensionSignatureAlgorithmsCert) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sigAlgo := range m.supportedSignatureAlgorithmsCert { + b.AddUint16(uint16(sigAlgo)) + } + }) + }) + } + if m.secureRenegotiationSupported { + // RFC 5746, Section 3.2 + b.AddUint16(extensionRenegotiationInfo) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.secureRenegotiation) + }) + }) + } + if len(m.alpnProtocols) > 0 { + // RFC 7301, Section 3.1 + b.AddUint16(extensionALPN) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, proto := range m.alpnProtocols { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte(proto)) + }) + } + }) + }) + } + if m.scts { + // RFC 6962, Section 3.3.1 + b.AddUint16(extensionSCT) + b.AddUint16(0) // empty extension_data + } + if len(m.supportedVersions) > 0 { + // RFC 8446, Section 4.2.1 + b.AddUint16(extensionSupportedVersions) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + for _, vers := range m.supportedVersions { + b.AddUint16(vers) + } + }) + }) + } + if len(m.cookie) > 0 { + // RFC 8446, Section 4.2.2 + b.AddUint16(extensionCookie) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.cookie) + }) + }) + } + if len(m.keyShares) > 0 { + // RFC 8446, Section 4.2.8 + b.AddUint16(extensionKeyShare) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, ks := range m.keyShares { + b.AddUint16(uint16(ks.group)) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(ks.data) + }) + } + }) + }) + } + if m.earlyData { + // RFC 8446, Section 4.2.10 + b.AddUint16(extensionEarlyData) + b.AddUint16(0) // empty extension_data + } + if len(m.pskModes) > 0 { + // RFC 8446, Section 4.2.9 + b.AddUint16(extensionPSKModes) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.pskModes) + }) + }) + } + for _, ext := range m.additionalExtensions { + b.AddUint16(ext.Type) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(ext.Data) + }) + } + if len(m.pskIdentities) > 0 { // pre_shared_key must be the last extension + // RFC 8446, Section 4.2.11 + b.AddUint16(extensionPreSharedKey) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, psk := range m.pskIdentities { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(psk.label) + }) + b.AddUint32(psk.obfuscatedTicketAge) + } + }) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, binder := range m.pskBinders { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(binder) + }) + } + }) + }) + } + + extensionsPresent = len(b.BytesOrPanic()) > 2 + }) + + if !extensionsPresent { + *b = bWithoutExtensions + } + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +// marshalWithoutBinders returns the ClientHello through the +// PreSharedKeyExtension.identities field, according to RFC 8446, Section +// 4.2.11.2. Note that m.pskBinders must be set to slices of the correct length. +func (m *clientHelloMsg) marshalWithoutBinders() []byte { + bindersLen := 2 // uint16 length prefix + for _, binder := range m.pskBinders { + bindersLen += 1 // uint8 length prefix + bindersLen += len(binder) + } + + fullMessage := m.marshal() + return fullMessage[:len(fullMessage)-bindersLen] +} + +// updateBinders updates the m.pskBinders field, if necessary updating the +// cached marshalled representation. The supplied binders must have the same +// length as the current m.pskBinders. +func (m *clientHelloMsg) updateBinders(pskBinders [][]byte) { + if len(pskBinders) != len(m.pskBinders) { + panic("tls: internal error: pskBinders length mismatch") + } + for i := range m.pskBinders { + if len(pskBinders[i]) != len(m.pskBinders[i]) { + panic("tls: internal error: pskBinders length mismatch") + } + } + m.pskBinders = pskBinders + if m.raw != nil { + lenWithoutBinders := len(m.marshalWithoutBinders()) + // TODO(filippo): replace with NewFixedBuilder once CL 148882 is imported. + b := cryptobyte.NewBuilder(m.raw[:lenWithoutBinders]) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, binder := range m.pskBinders { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(binder) + }) + } + }) + if len(b.BytesOrPanic()) != len(m.raw) { + panic("tls: internal error: failed to update binders") + } + } +} + +func (m *clientHelloMsg) unmarshal(data []byte) bool { + *m = clientHelloMsg{raw: data} + s := cryptobyte.String(data) + + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint16(&m.vers) || !s.ReadBytes(&m.random, 32) || + !readUint8LengthPrefixed(&s, &m.sessionId) { + return false + } + + var cipherSuites cryptobyte.String + if !s.ReadUint16LengthPrefixed(&cipherSuites) { + return false + } + m.cipherSuites = []uint16{} + m.secureRenegotiationSupported = false + for !cipherSuites.Empty() { + var suite uint16 + if !cipherSuites.ReadUint16(&suite) { + return false + } + if suite == scsvRenegotiation { + m.secureRenegotiationSupported = true + } + m.cipherSuites = append(m.cipherSuites, suite) + } + + if !readUint8LengthPrefixed(&s, &m.compressionMethods) { + return false + } + + if s.Empty() { + // ClientHello is optionally followed by extension data + return true + } + + var extensions cryptobyte.String + if !s.ReadUint16LengthPrefixed(&extensions) || !s.Empty() { + return false + } + + for !extensions.Empty() { + var ext uint16 + var extData cryptobyte.String + if !extensions.ReadUint16(&ext) || + !extensions.ReadUint16LengthPrefixed(&extData) { + return false + } + + switch ext { + case extensionServerName: + // RFC 6066, Section 3 + var nameList cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&nameList) || nameList.Empty() { + return false + } + for !nameList.Empty() { + var nameType uint8 + var serverName cryptobyte.String + if !nameList.ReadUint8(&nameType) || + !nameList.ReadUint16LengthPrefixed(&serverName) || + serverName.Empty() { + return false + } + if nameType != 0 { + continue + } + if len(m.serverName) != 0 { + // Multiple names of the same name_type are prohibited. + return false + } + m.serverName = string(serverName) + // An SNI value may not include a trailing dot. + if strings.HasSuffix(m.serverName, ".") { + return false + } + } + case extensionNextProtoNeg: + // draft-agl-tls-nextprotoneg-04 + m.nextProtoNeg = true + case extensionStatusRequest: + // RFC 4366, Section 3.6 + var statusType uint8 + var ignored cryptobyte.String + if !extData.ReadUint8(&statusType) || + !extData.ReadUint16LengthPrefixed(&ignored) || + !extData.ReadUint16LengthPrefixed(&ignored) { + return false + } + m.ocspStapling = statusType == statusTypeOCSP + case extensionSupportedCurves: + // RFC 4492, sections 5.1.1 and RFC 8446, Section 4.2.7 + var curves cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&curves) || curves.Empty() { + return false + } + for !curves.Empty() { + var curve uint16 + if !curves.ReadUint16(&curve) { + return false + } + m.supportedCurves = append(m.supportedCurves, CurveID(curve)) + } + case extensionSupportedPoints: + // RFC 4492, Section 5.1.2 + if !readUint8LengthPrefixed(&extData, &m.supportedPoints) || + len(m.supportedPoints) == 0 { + return false + } + case extensionSessionTicket: + // RFC 5077, Section 3.2 + m.ticketSupported = true + extData.ReadBytes(&m.sessionTicket, len(extData)) + case extensionSignatureAlgorithms: + // RFC 5246, Section 7.4.1.4.1 + var sigAndAlgs cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&sigAndAlgs) || sigAndAlgs.Empty() { + return false + } + for !sigAndAlgs.Empty() { + var sigAndAlg uint16 + if !sigAndAlgs.ReadUint16(&sigAndAlg) { + return false + } + m.supportedSignatureAlgorithms = append( + m.supportedSignatureAlgorithms, SignatureScheme(sigAndAlg)) + } + case extensionSignatureAlgorithmsCert: + // RFC 8446, Section 4.2.3 + var sigAndAlgs cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&sigAndAlgs) || sigAndAlgs.Empty() { + return false + } + for !sigAndAlgs.Empty() { + var sigAndAlg uint16 + if !sigAndAlgs.ReadUint16(&sigAndAlg) { + return false + } + m.supportedSignatureAlgorithmsCert = append( + m.supportedSignatureAlgorithmsCert, SignatureScheme(sigAndAlg)) + } + case extensionRenegotiationInfo: + // RFC 5746, Section 3.2 + if !readUint8LengthPrefixed(&extData, &m.secureRenegotiation) { + return false + } + m.secureRenegotiationSupported = true + case extensionALPN: + // RFC 7301, Section 3.1 + var protoList cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&protoList) || protoList.Empty() { + return false + } + for !protoList.Empty() { + var proto cryptobyte.String + if !protoList.ReadUint8LengthPrefixed(&proto) || proto.Empty() { + return false + } + m.alpnProtocols = append(m.alpnProtocols, string(proto)) + } + case extensionSCT: + // RFC 6962, Section 3.3.1 + m.scts = true + case extensionSupportedVersions: + // RFC 8446, Section 4.2.1 + var versList cryptobyte.String + if !extData.ReadUint8LengthPrefixed(&versList) || versList.Empty() { + return false + } + for !versList.Empty() { + var vers uint16 + if !versList.ReadUint16(&vers) { + return false + } + m.supportedVersions = append(m.supportedVersions, vers) + } + case extensionCookie: + // RFC 8446, Section 4.2.2 + if !readUint16LengthPrefixed(&extData, &m.cookie) || + len(m.cookie) == 0 { + return false + } + case extensionKeyShare: + // RFC 8446, Section 4.2.8 + var clientShares cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&clientShares) { + return false + } + for !clientShares.Empty() { + var ks keyShare + if !clientShares.ReadUint16((*uint16)(&ks.group)) || + !readUint16LengthPrefixed(&clientShares, &ks.data) || + len(ks.data) == 0 { + return false + } + m.keyShares = append(m.keyShares, ks) + } + case extensionEarlyData: + // RFC 8446, Section 4.2.10 + m.earlyData = true + case extensionPSKModes: + // RFC 8446, Section 4.2.9 + if !readUint8LengthPrefixed(&extData, &m.pskModes) { + return false + } + case extensionPreSharedKey: + // RFC 8446, Section 4.2.11 + if !extensions.Empty() { + return false // pre_shared_key must be the last extension + } + var identities cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&identities) || identities.Empty() { + return false + } + for !identities.Empty() { + var psk pskIdentity + if !readUint16LengthPrefixed(&identities, &psk.label) || + !identities.ReadUint32(&psk.obfuscatedTicketAge) || + len(psk.label) == 0 { + return false + } + m.pskIdentities = append(m.pskIdentities, psk) + } + var binders cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&binders) || binders.Empty() { + return false + } + for !binders.Empty() { + var binder []byte + if !readUint8LengthPrefixed(&binders, &binder) || + len(binder) == 0 { + return false + } + m.pskBinders = append(m.pskBinders, binder) + } + default: + m.additionalExtensions = append(m.additionalExtensions, Extension{Type: ext, Data: extData}) + continue + } + + if !extData.Empty() { + return false + } + } + + return true +} + +type serverHelloMsg struct { + raw []byte + vers uint16 + random []byte + sessionId []byte + cipherSuite uint16 + compressionMethod uint8 + nextProtoNeg bool + nextProtos []string + ocspStapling bool + ticketSupported bool + secureRenegotiationSupported bool + secureRenegotiation []byte + alpnProtocol string + scts [][]byte + supportedVersion uint16 + serverShare keyShare + selectedIdentityPresent bool + selectedIdentity uint16 + + // HelloRetryRequest extensions + cookie []byte + selectedGroup CurveID +} + +func (m *serverHelloMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeServerHello) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16(m.vers) + addBytesWithLength(b, m.random, 32) + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.sessionId) + }) + b.AddUint16(m.cipherSuite) + b.AddUint8(m.compressionMethod) + + // If extensions aren't present, omit them. + var extensionsPresent bool + bWithoutExtensions := *b + + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if m.nextProtoNeg { + b.AddUint16(extensionNextProtoNeg) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, proto := range m.nextProtos { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte(proto)) + }) + } + }) + } + if m.ocspStapling { + b.AddUint16(extensionStatusRequest) + b.AddUint16(0) // empty extension_data + } + if m.ticketSupported { + b.AddUint16(extensionSessionTicket) + b.AddUint16(0) // empty extension_data + } + if m.secureRenegotiationSupported { + b.AddUint16(extensionRenegotiationInfo) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.secureRenegotiation) + }) + }) + } + if len(m.alpnProtocol) > 0 { + b.AddUint16(extensionALPN) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte(m.alpnProtocol)) + }) + }) + }) + } + if len(m.scts) > 0 { + b.AddUint16(extensionSCT) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sct := range m.scts { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(sct) + }) + } + }) + }) + } + if m.supportedVersion != 0 { + b.AddUint16(extensionSupportedVersions) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16(m.supportedVersion) + }) + } + if m.serverShare.group != 0 { + b.AddUint16(extensionKeyShare) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16(uint16(m.serverShare.group)) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.serverShare.data) + }) + }) + } + if m.selectedIdentityPresent { + b.AddUint16(extensionPreSharedKey) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16(m.selectedIdentity) + }) + } + + if len(m.cookie) > 0 { + b.AddUint16(extensionCookie) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.cookie) + }) + }) + } + if m.selectedGroup != 0 { + b.AddUint16(extensionKeyShare) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16(uint16(m.selectedGroup)) + }) + } + + extensionsPresent = len(b.BytesOrPanic()) > 2 + }) + + if !extensionsPresent { + *b = bWithoutExtensions + } + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *serverHelloMsg) unmarshal(data []byte) bool { + *m = serverHelloMsg{raw: data} + s := cryptobyte.String(data) + + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint16(&m.vers) || !s.ReadBytes(&m.random, 32) || + !readUint8LengthPrefixed(&s, &m.sessionId) || + !s.ReadUint16(&m.cipherSuite) || + !s.ReadUint8(&m.compressionMethod) { + return false + } + + if s.Empty() { + // ServerHello is optionally followed by extension data + return true + } + + var extensions cryptobyte.String + if !s.ReadUint16LengthPrefixed(&extensions) || !s.Empty() { + return false + } + + for !extensions.Empty() { + var extension uint16 + var extData cryptobyte.String + if !extensions.ReadUint16(&extension) || + !extensions.ReadUint16LengthPrefixed(&extData) { + return false + } + + switch extension { + case extensionNextProtoNeg: + m.nextProtoNeg = true + for !extData.Empty() { + var proto cryptobyte.String + if !extData.ReadUint8LengthPrefixed(&proto) || + proto.Empty() { + return false + } + m.nextProtos = append(m.nextProtos, string(proto)) + } + case extensionStatusRequest: + m.ocspStapling = true + case extensionSessionTicket: + m.ticketSupported = true + case extensionRenegotiationInfo: + if !readUint8LengthPrefixed(&extData, &m.secureRenegotiation) { + return false + } + m.secureRenegotiationSupported = true + case extensionALPN: + var protoList cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&protoList) || protoList.Empty() { + return false + } + var proto cryptobyte.String + if !protoList.ReadUint8LengthPrefixed(&proto) || + proto.Empty() || !protoList.Empty() { + return false + } + m.alpnProtocol = string(proto) + case extensionSCT: + var sctList cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&sctList) || sctList.Empty() { + return false + } + for !sctList.Empty() { + var sct []byte + if !readUint16LengthPrefixed(&sctList, &sct) || + len(sct) == 0 { + return false + } + m.scts = append(m.scts, sct) + } + case extensionSupportedVersions: + if !extData.ReadUint16(&m.supportedVersion) { + return false + } + case extensionCookie: + if !readUint16LengthPrefixed(&extData, &m.cookie) || + len(m.cookie) == 0 { + return false + } + case extensionKeyShare: + // This extension has different formats in SH and HRR, accept either + // and let the handshake logic decide. See RFC 8446, Section 4.2.8. + if len(extData) == 2 { + if !extData.ReadUint16((*uint16)(&m.selectedGroup)) { + return false + } + } else { + if !extData.ReadUint16((*uint16)(&m.serverShare.group)) || + !readUint16LengthPrefixed(&extData, &m.serverShare.data) { + return false + } + } + case extensionPreSharedKey: + m.selectedIdentityPresent = true + if !extData.ReadUint16(&m.selectedIdentity) { + return false + } + default: + // Ignore unknown extensions. + continue + } + + if !extData.Empty() { + return false + } + } + + return true +} + +type encryptedExtensionsMsg struct { + raw []byte + alpnProtocol string + + additionalExtensions []Extension +} + +func (m *encryptedExtensionsMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeEncryptedExtensions) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if len(m.alpnProtocol) > 0 { + b.AddUint16(extensionALPN) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte(m.alpnProtocol)) + }) + }) + }) + } + for _, ext := range m.additionalExtensions { + b.AddUint16(ext.Type) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(ext.Data) + }) + } + }) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *encryptedExtensionsMsg) unmarshal(data []byte) bool { + *m = encryptedExtensionsMsg{raw: data} + s := cryptobyte.String(data) + + var extensions cryptobyte.String + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint16LengthPrefixed(&extensions) || !s.Empty() { + return false + } + + for !extensions.Empty() { + var ext uint16 + var extData cryptobyte.String + if !extensions.ReadUint16(&ext) || + !extensions.ReadUint16LengthPrefixed(&extData) { + return false + } + + switch ext { + case extensionALPN: + var protoList cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&protoList) || protoList.Empty() { + return false + } + var proto cryptobyte.String + if !protoList.ReadUint8LengthPrefixed(&proto) || + proto.Empty() || !protoList.Empty() { + return false + } + m.alpnProtocol = string(proto) + default: + m.additionalExtensions = append(m.additionalExtensions, Extension{Type: ext, Data: extData}) + continue + } + + if !extData.Empty() { + return false + } + } + + return true +} + +type endOfEarlyDataMsg struct{} + +func (m *endOfEarlyDataMsg) marshal() []byte { + x := make([]byte, 4) + x[0] = typeEndOfEarlyData + return x +} + +func (m *endOfEarlyDataMsg) unmarshal(data []byte) bool { + return len(data) == 4 +} + +type keyUpdateMsg struct { + raw []byte + updateRequested bool +} + +func (m *keyUpdateMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeKeyUpdate) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + if m.updateRequested { + b.AddUint8(1) + } else { + b.AddUint8(0) + } + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *keyUpdateMsg) unmarshal(data []byte) bool { + m.raw = data + s := cryptobyte.String(data) + + var updateRequested uint8 + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint8(&updateRequested) || !s.Empty() { + return false + } + switch updateRequested { + case 0: + m.updateRequested = false + case 1: + m.updateRequested = true + default: + return false + } + return true +} + +type newSessionTicketMsgTLS13 struct { + raw []byte + lifetime uint32 + ageAdd uint32 + nonce []byte + label []byte + maxEarlyData uint32 +} + +func (m *newSessionTicketMsgTLS13) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeNewSessionTicket) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint32(m.lifetime) + b.AddUint32(m.ageAdd) + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.nonce) + }) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.label) + }) + + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if m.maxEarlyData > 0 { + b.AddUint16(extensionEarlyData) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint32(m.maxEarlyData) + }) + } + }) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *newSessionTicketMsgTLS13) unmarshal(data []byte) bool { + *m = newSessionTicketMsgTLS13{raw: data} + s := cryptobyte.String(data) + + var extensions cryptobyte.String + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint32(&m.lifetime) || + !s.ReadUint32(&m.ageAdd) || + !readUint8LengthPrefixed(&s, &m.nonce) || + !readUint16LengthPrefixed(&s, &m.label) || + !s.ReadUint16LengthPrefixed(&extensions) || + !s.Empty() { + return false + } + + for !extensions.Empty() { + var extension uint16 + var extData cryptobyte.String + if !extensions.ReadUint16(&extension) || + !extensions.ReadUint16LengthPrefixed(&extData) { + return false + } + + switch extension { + case extensionEarlyData: + if !extData.ReadUint32(&m.maxEarlyData) { + return false + } + default: + // Ignore unknown extensions. + continue + } + + if !extData.Empty() { + return false + } + } + + return true +} + +type certificateRequestMsgTLS13 struct { + raw []byte + ocspStapling bool + scts bool + supportedSignatureAlgorithms []SignatureScheme + supportedSignatureAlgorithmsCert []SignatureScheme + certificateAuthorities [][]byte +} + +func (m *certificateRequestMsgTLS13) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeCertificateRequest) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + // certificate_request_context (SHALL be zero length unless used for + // post-handshake authentication) + b.AddUint8(0) + + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if m.ocspStapling { + b.AddUint16(extensionStatusRequest) + b.AddUint16(0) // empty extension_data + } + if m.scts { + // RFC 8446, Section 4.4.2.1 makes no mention of + // signed_certificate_timestamp in CertificateRequest, but + // "Extensions in the Certificate message from the client MUST + // correspond to extensions in the CertificateRequest message + // from the server." and it appears in the table in Section 4.2. + b.AddUint16(extensionSCT) + b.AddUint16(0) // empty extension_data + } + if len(m.supportedSignatureAlgorithms) > 0 { + b.AddUint16(extensionSignatureAlgorithms) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sigAlgo := range m.supportedSignatureAlgorithms { + b.AddUint16(uint16(sigAlgo)) + } + }) + }) + } + if len(m.supportedSignatureAlgorithmsCert) > 0 { + b.AddUint16(extensionSignatureAlgorithmsCert) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sigAlgo := range m.supportedSignatureAlgorithmsCert { + b.AddUint16(uint16(sigAlgo)) + } + }) + }) + } + if len(m.certificateAuthorities) > 0 { + b.AddUint16(extensionCertificateAuthorities) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, ca := range m.certificateAuthorities { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(ca) + }) + } + }) + }) + } + }) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *certificateRequestMsgTLS13) unmarshal(data []byte) bool { + *m = certificateRequestMsgTLS13{raw: data} + s := cryptobyte.String(data) + + var context, extensions cryptobyte.String + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint8LengthPrefixed(&context) || !context.Empty() || + !s.ReadUint16LengthPrefixed(&extensions) || + !s.Empty() { + return false + } + + for !extensions.Empty() { + var extension uint16 + var extData cryptobyte.String + if !extensions.ReadUint16(&extension) || + !extensions.ReadUint16LengthPrefixed(&extData) { + return false + } + + switch extension { + case extensionStatusRequest: + m.ocspStapling = true + case extensionSCT: + m.scts = true + case extensionSignatureAlgorithms: + var sigAndAlgs cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&sigAndAlgs) || sigAndAlgs.Empty() { + return false + } + for !sigAndAlgs.Empty() { + var sigAndAlg uint16 + if !sigAndAlgs.ReadUint16(&sigAndAlg) { + return false + } + m.supportedSignatureAlgorithms = append( + m.supportedSignatureAlgorithms, SignatureScheme(sigAndAlg)) + } + case extensionSignatureAlgorithmsCert: + var sigAndAlgs cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&sigAndAlgs) || sigAndAlgs.Empty() { + return false + } + for !sigAndAlgs.Empty() { + var sigAndAlg uint16 + if !sigAndAlgs.ReadUint16(&sigAndAlg) { + return false + } + m.supportedSignatureAlgorithmsCert = append( + m.supportedSignatureAlgorithmsCert, SignatureScheme(sigAndAlg)) + } + case extensionCertificateAuthorities: + var auths cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&auths) || auths.Empty() { + return false + } + for !auths.Empty() { + var ca []byte + if !readUint16LengthPrefixed(&auths, &ca) || len(ca) == 0 { + return false + } + m.certificateAuthorities = append(m.certificateAuthorities, ca) + } + default: + // Ignore unknown extensions. + continue + } + + if !extData.Empty() { + return false + } + } + + return true +} + +type certificateMsg struct { + raw []byte + certificates [][]byte +} + +func (m *certificateMsg) marshal() (x []byte) { + if m.raw != nil { + return m.raw + } + + var i int + for _, slice := range m.certificates { + i += len(slice) + } + + length := 3 + 3*len(m.certificates) + i + x = make([]byte, 4+length) + x[0] = typeCertificate + x[1] = uint8(length >> 16) + x[2] = uint8(length >> 8) + x[3] = uint8(length) + + certificateOctets := length - 3 + x[4] = uint8(certificateOctets >> 16) + x[5] = uint8(certificateOctets >> 8) + x[6] = uint8(certificateOctets) + + y := x[7:] + for _, slice := range m.certificates { + y[0] = uint8(len(slice) >> 16) + y[1] = uint8(len(slice) >> 8) + y[2] = uint8(len(slice)) + copy(y[3:], slice) + y = y[3+len(slice):] + } + + m.raw = x + return +} + +func (m *certificateMsg) unmarshal(data []byte) bool { + if len(data) < 7 { + return false + } + + m.raw = data + certsLen := uint32(data[4])<<16 | uint32(data[5])<<8 | uint32(data[6]) + if uint32(len(data)) != certsLen+7 { + return false + } + + numCerts := 0 + d := data[7:] + for certsLen > 0 { + if len(d) < 4 { + return false + } + certLen := uint32(d[0])<<16 | uint32(d[1])<<8 | uint32(d[2]) + if uint32(len(d)) < 3+certLen { + return false + } + d = d[3+certLen:] + certsLen -= 3 + certLen + numCerts++ + } + + m.certificates = make([][]byte, numCerts) + d = data[7:] + for i := 0; i < numCerts; i++ { + certLen := uint32(d[0])<<16 | uint32(d[1])<<8 | uint32(d[2]) + m.certificates[i] = d[3 : 3+certLen] + d = d[3+certLen:] + } + + return true +} + +type certificateMsgTLS13 struct { + raw []byte + certificate Certificate + ocspStapling bool + scts bool +} + +func (m *certificateMsgTLS13) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeCertificate) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8(0) // certificate_request_context + + certificate := m.certificate + if !m.ocspStapling { + certificate.OCSPStaple = nil + } + if !m.scts { + certificate.SignedCertificateTimestamps = nil + } + marshalCertificate(b, certificate) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func marshalCertificate(b *cryptobyte.Builder, certificate Certificate) { + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + for i, cert := range certificate.Certificate { + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(cert) + }) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if i > 0 { + // This library only supports OCSP and SCT for leaf certificates. + return + } + if certificate.OCSPStaple != nil { + b.AddUint16(extensionStatusRequest) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8(statusTypeOCSP) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(certificate.OCSPStaple) + }) + }) + } + if certificate.SignedCertificateTimestamps != nil { + b.AddUint16(extensionSCT) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sct := range certificate.SignedCertificateTimestamps { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(sct) + }) + } + }) + }) + } + }) + } + }) +} + +func (m *certificateMsgTLS13) unmarshal(data []byte) bool { + *m = certificateMsgTLS13{raw: data} + s := cryptobyte.String(data) + + var context cryptobyte.String + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint8LengthPrefixed(&context) || !context.Empty() || + !unmarshalCertificate(&s, &m.certificate) || + !s.Empty() { + return false + } + + m.scts = m.certificate.SignedCertificateTimestamps != nil + m.ocspStapling = m.certificate.OCSPStaple != nil + + return true +} + +func unmarshalCertificate(s *cryptobyte.String, certificate *Certificate) bool { + var certList cryptobyte.String + if !s.ReadUint24LengthPrefixed(&certList) { + return false + } + for !certList.Empty() { + var cert []byte + var extensions cryptobyte.String + if !readUint24LengthPrefixed(&certList, &cert) || + !certList.ReadUint16LengthPrefixed(&extensions) { + return false + } + certificate.Certificate = append(certificate.Certificate, cert) + for !extensions.Empty() { + var extension uint16 + var extData cryptobyte.String + if !extensions.ReadUint16(&extension) || + !extensions.ReadUint16LengthPrefixed(&extData) { + return false + } + if len(certificate.Certificate) > 1 { + // This library only supports OCSP and SCT for leaf certificates. + continue + } + + switch extension { + case extensionStatusRequest: + var statusType uint8 + if !extData.ReadUint8(&statusType) || statusType != statusTypeOCSP || + !readUint24LengthPrefixed(&extData, &certificate.OCSPStaple) || + len(certificate.OCSPStaple) == 0 { + return false + } + case extensionSCT: + var sctList cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&sctList) || sctList.Empty() { + return false + } + for !sctList.Empty() { + var sct []byte + if !readUint16LengthPrefixed(&sctList, &sct) || + len(sct) == 0 { + return false + } + certificate.SignedCertificateTimestamps = append( + certificate.SignedCertificateTimestamps, sct) + } + default: + // Ignore unknown extensions. + continue + } + + if !extData.Empty() { + return false + } + } + } + return true +} + +type serverKeyExchangeMsg struct { + raw []byte + key []byte +} + +func (m *serverKeyExchangeMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + length := len(m.key) + x := make([]byte, length+4) + x[0] = typeServerKeyExchange + x[1] = uint8(length >> 16) + x[2] = uint8(length >> 8) + x[3] = uint8(length) + copy(x[4:], m.key) + + m.raw = x + return x +} + +func (m *serverKeyExchangeMsg) unmarshal(data []byte) bool { + m.raw = data + if len(data) < 4 { + return false + } + m.key = data[4:] + return true +} + +type certificateStatusMsg struct { + raw []byte + response []byte +} + +func (m *certificateStatusMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeCertificateStatus) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8(statusTypeOCSP) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.response) + }) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *certificateStatusMsg) unmarshal(data []byte) bool { + m.raw = data + s := cryptobyte.String(data) + + var statusType uint8 + if !s.Skip(4) || // message type and uint24 length field + !s.ReadUint8(&statusType) || statusType != statusTypeOCSP || + !readUint24LengthPrefixed(&s, &m.response) || + len(m.response) == 0 || !s.Empty() { + return false + } + return true +} + +type serverHelloDoneMsg struct{} + +func (m *serverHelloDoneMsg) marshal() []byte { + x := make([]byte, 4) + x[0] = typeServerHelloDone + return x +} + +func (m *serverHelloDoneMsg) unmarshal(data []byte) bool { + return len(data) == 4 +} + +type clientKeyExchangeMsg struct { + raw []byte + ciphertext []byte +} + +func (m *clientKeyExchangeMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + length := len(m.ciphertext) + x := make([]byte, length+4) + x[0] = typeClientKeyExchange + x[1] = uint8(length >> 16) + x[2] = uint8(length >> 8) + x[3] = uint8(length) + copy(x[4:], m.ciphertext) + + m.raw = x + return x +} + +func (m *clientKeyExchangeMsg) unmarshal(data []byte) bool { + m.raw = data + if len(data) < 4 { + return false + } + l := int(data[1])<<16 | int(data[2])<<8 | int(data[3]) + if l != len(data)-4 { + return false + } + m.ciphertext = data[4:] + return true +} + +type finishedMsg struct { + raw []byte + verifyData []byte +} + +func (m *finishedMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeFinished) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.verifyData) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *finishedMsg) unmarshal(data []byte) bool { + m.raw = data + s := cryptobyte.String(data) + return s.Skip(1) && + readUint24LengthPrefixed(&s, &m.verifyData) && + s.Empty() +} + +type nextProtoMsg struct { + raw []byte + proto string +} + +func (m *nextProtoMsg) marshal() []byte { + if m.raw != nil { + return m.raw + } + l := len(m.proto) + if l > 255 { + l = 255 + } + + padding := 32 - (l+2)%32 + length := l + padding + 2 + x := make([]byte, length+4) + x[0] = typeNextProtocol + x[1] = uint8(length >> 16) + x[2] = uint8(length >> 8) + x[3] = uint8(length) + + y := x[4:] + y[0] = byte(l) + copy(y[1:], []byte(m.proto[0:l])) + y = y[1+l:] + y[0] = byte(padding) + + m.raw = x + + return x +} + +func (m *nextProtoMsg) unmarshal(data []byte) bool { + m.raw = data + + if len(data) < 5 { + return false + } + data = data[4:] + protoLen := int(data[0]) + data = data[1:] + if len(data) < protoLen { + return false + } + m.proto = string(data[0:protoLen]) + data = data[protoLen:] + + if len(data) < 1 { + return false + } + paddingLen := int(data[0]) + data = data[1:] + if len(data) != paddingLen { + return false + } + + return true +} + +type certificateRequestMsg struct { + raw []byte + // hasSignatureAlgorithm indicates whether this message includes a list of + // supported signature algorithms. This change was introduced with TLS 1.2. + hasSignatureAlgorithm bool + + certificateTypes []byte + supportedSignatureAlgorithms []SignatureScheme + certificateAuthorities [][]byte +} + +func (m *certificateRequestMsg) marshal() (x []byte) { + if m.raw != nil { + return m.raw + } + + // See RFC 4346, Section 7.4.4. + length := 1 + len(m.certificateTypes) + 2 + casLength := 0 + for _, ca := range m.certificateAuthorities { + casLength += 2 + len(ca) + } + length += casLength + + if m.hasSignatureAlgorithm { + length += 2 + 2*len(m.supportedSignatureAlgorithms) + } + + x = make([]byte, 4+length) + x[0] = typeCertificateRequest + x[1] = uint8(length >> 16) + x[2] = uint8(length >> 8) + x[3] = uint8(length) + + x[4] = uint8(len(m.certificateTypes)) + + copy(x[5:], m.certificateTypes) + y := x[5+len(m.certificateTypes):] + + if m.hasSignatureAlgorithm { + n := len(m.supportedSignatureAlgorithms) * 2 + y[0] = uint8(n >> 8) + y[1] = uint8(n) + y = y[2:] + for _, sigAlgo := range m.supportedSignatureAlgorithms { + y[0] = uint8(sigAlgo >> 8) + y[1] = uint8(sigAlgo) + y = y[2:] + } + } + + y[0] = uint8(casLength >> 8) + y[1] = uint8(casLength) + y = y[2:] + for _, ca := range m.certificateAuthorities { + y[0] = uint8(len(ca) >> 8) + y[1] = uint8(len(ca)) + y = y[2:] + copy(y, ca) + y = y[len(ca):] + } + + m.raw = x + return +} + +func (m *certificateRequestMsg) unmarshal(data []byte) bool { + m.raw = data + + if len(data) < 5 { + return false + } + + length := uint32(data[1])<<16 | uint32(data[2])<<8 | uint32(data[3]) + if uint32(len(data))-4 != length { + return false + } + + numCertTypes := int(data[4]) + data = data[5:] + if numCertTypes == 0 || len(data) <= numCertTypes { + return false + } + + m.certificateTypes = make([]byte, numCertTypes) + if copy(m.certificateTypes, data) != numCertTypes { + return false + } + + data = data[numCertTypes:] + + if m.hasSignatureAlgorithm { + if len(data) < 2 { + return false + } + sigAndHashLen := uint16(data[0])<<8 | uint16(data[1]) + data = data[2:] + if sigAndHashLen&1 != 0 { + return false + } + if len(data) < int(sigAndHashLen) { + return false + } + numSigAlgos := sigAndHashLen / 2 + m.supportedSignatureAlgorithms = make([]SignatureScheme, numSigAlgos) + for i := range m.supportedSignatureAlgorithms { + m.supportedSignatureAlgorithms[i] = SignatureScheme(data[0])<<8 | SignatureScheme(data[1]) + data = data[2:] + } + } + + if len(data) < 2 { + return false + } + casLength := uint16(data[0])<<8 | uint16(data[1]) + data = data[2:] + if len(data) < int(casLength) { + return false + } + cas := make([]byte, casLength) + copy(cas, data) + data = data[casLength:] + + m.certificateAuthorities = nil + for len(cas) > 0 { + if len(cas) < 2 { + return false + } + caLen := uint16(cas[0])<<8 | uint16(cas[1]) + cas = cas[2:] + + if len(cas) < int(caLen) { + return false + } + + m.certificateAuthorities = append(m.certificateAuthorities, cas[:caLen]) + cas = cas[caLen:] + } + + return len(data) == 0 +} + +type certificateVerifyMsg struct { + raw []byte + hasSignatureAlgorithm bool // format change introduced in TLS 1.2 + signatureAlgorithm SignatureScheme + signature []byte +} + +func (m *certificateVerifyMsg) marshal() (x []byte) { + if m.raw != nil { + return m.raw + } + + var b cryptobyte.Builder + b.AddUint8(typeCertificateVerify) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + if m.hasSignatureAlgorithm { + b.AddUint16(uint16(m.signatureAlgorithm)) + } + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.signature) + }) + }) + + m.raw = b.BytesOrPanic() + return m.raw +} + +func (m *certificateVerifyMsg) unmarshal(data []byte) bool { + m.raw = data + s := cryptobyte.String(data) + + if !s.Skip(4) { // message type and uint24 length field + return false + } + if m.hasSignatureAlgorithm { + if !s.ReadUint16((*uint16)(&m.signatureAlgorithm)) { + return false + } + } + return readUint16LengthPrefixed(&s, &m.signature) && s.Empty() +} + +type newSessionTicketMsg struct { + raw []byte + ticket []byte +} + +func (m *newSessionTicketMsg) marshal() (x []byte) { + if m.raw != nil { + return m.raw + } + + // See RFC 5077, Section 3.3. + ticketLen := len(m.ticket) + length := 2 + 4 + ticketLen + x = make([]byte, 4+length) + x[0] = typeNewSessionTicket + x[1] = uint8(length >> 16) + x[2] = uint8(length >> 8) + x[3] = uint8(length) + x[8] = uint8(ticketLen >> 8) + x[9] = uint8(ticketLen) + copy(x[10:], m.ticket) + + m.raw = x + + return +} + +func (m *newSessionTicketMsg) unmarshal(data []byte) bool { + m.raw = data + + if len(data) < 10 { + return false + } + + length := uint32(data[1])<<16 | uint32(data[2])<<8 | uint32(data[3]) + if uint32(len(data))-4 != length { + return false + } + + ticketLen := int(data[8])<<8 + int(data[9]) + if len(data)-10 != ticketLen { + return false + } + + m.ticket = data[10:] + + return true +} + +type helloRequestMsg struct { +} + +func (*helloRequestMsg) marshal() []byte { + return []byte{typeHelloRequest, 0, 0, 0} +} + +func (*helloRequestMsg) unmarshal(data []byte) bool { + return len(data) == 4 +} diff --git a/vendor/github.com/marten-seemann/qtls/handshake_server.go b/vendor/github.com/marten-seemann/qtls/handshake_server.go new file mode 100644 index 00000000..2f3b4144 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/handshake_server.go @@ -0,0 +1,822 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "crypto" + "crypto/ecdsa" + "crypto/rsa" + "crypto/subtle" + "crypto/x509" + "errors" + "fmt" + "io" + "sync/atomic" +) + +// serverHandshakeState contains details of a server handshake in progress. +// It's discarded once the handshake has completed. +type serverHandshakeState struct { + c *Conn + clientHello *clientHelloMsg + hello *serverHelloMsg + suite *cipherSuite + ellipticOk bool + ecdsaOk bool + rsaDecryptOk bool + rsaSignOk bool + sessionState *sessionState + finishedHash finishedHash + masterSecret []byte + cert *Certificate +} + +// serverHandshake performs a TLS handshake as a server. +func (c *Conn) serverHandshake() error { + // If this is the first server handshake, we generate a random key to + // encrypt the tickets with. + c.config.serverInitOnce.Do(func() { c.config.serverInit(nil) }) + c.setAlternativeRecordLayer() + + clientHello, err := c.readClientHello() + if err != nil { + return err + } + + if c.vers == VersionTLS13 { + hs := serverHandshakeStateTLS13{ + c: c, + clientHello: clientHello, + } + return hs.handshake() + } + + hs := serverHandshakeState{ + c: c, + clientHello: clientHello, + } + return hs.handshake() +} + +func (hs *serverHandshakeState) handshake() error { + c := hs.c + + if err := hs.processClientHello(); err != nil { + return err + } + + // For an overview of TLS handshaking, see RFC 5246, Section 7.3. + c.buffering = true + if hs.checkForResumption() { + // The client has included a session ticket and so we do an abbreviated handshake. + if err := hs.doResumeHandshake(); err != nil { + return err + } + if err := hs.establishKeys(); err != nil { + return err + } + // ticketSupported is set in a resumption handshake if the + // ticket from the client was encrypted with an old session + // ticket key and thus a refreshed ticket should be sent. + if hs.hello.ticketSupported { + if err := hs.sendSessionTicket(); err != nil { + return err + } + } + if err := hs.sendFinished(c.serverFinished[:]); err != nil { + return err + } + if _, err := c.flush(); err != nil { + return err + } + c.clientFinishedIsFirst = false + if err := hs.readFinished(nil); err != nil { + return err + } + c.didResume = true + } else { + // The client didn't include a session ticket, or it wasn't + // valid so we do a full handshake. + if err := hs.pickCipherSuite(); err != nil { + return err + } + if err := hs.doFullHandshake(); err != nil { + return err + } + if err := hs.establishKeys(); err != nil { + return err + } + if err := hs.readFinished(c.clientFinished[:]); err != nil { + return err + } + c.clientFinishedIsFirst = true + c.buffering = true + if err := hs.sendSessionTicket(); err != nil { + return err + } + if err := hs.sendFinished(nil); err != nil { + return err + } + if _, err := c.flush(); err != nil { + return err + } + } + + c.ekm = ekmFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.clientHello.random, hs.hello.random) + atomic.StoreUint32(&c.handshakeStatus, 1) + + return nil +} + +// readClientHello reads a ClientHello message and selects the protocol version. +func (c *Conn) readClientHello() (*clientHelloMsg, error) { + msg, err := c.readHandshake() + if err != nil { + return nil, err + } + clientHello, ok := msg.(*clientHelloMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return nil, unexpectedMessageError(clientHello, msg) + } + + if c.config.GetConfigForClient != nil { + chi := clientHelloInfo(c, clientHello) + if newConfig, err := c.config.GetConfigForClient(chi); err != nil { + c.sendAlert(alertInternalError) + return nil, err + } else if newConfig != nil { + newConfig.serverInitOnce.Do(func() { newConfig.serverInit(c.config) }) + c.config = newConfig + } + } + + clientVersions := clientHello.supportedVersions + if len(clientHello.supportedVersions) == 0 { + clientVersions = supportedVersionsFromMax(clientHello.vers) + } + c.vers, ok = c.config.mutualVersion(false, clientVersions) + if !ok { + c.sendAlert(alertProtocolVersion) + return nil, fmt.Errorf("tls: client offered only unsupported versions: %x", clientVersions) + } + c.haveVers = true + c.in.version = c.vers + c.out.version = c.vers + + return clientHello, nil +} + +func (hs *serverHandshakeState) processClientHello() error { + c := hs.c + + hs.hello = new(serverHelloMsg) + hs.hello.vers = c.vers + + supportedCurve := false + preferredCurves := c.config.curvePreferences() +Curves: + for _, curve := range hs.clientHello.supportedCurves { + for _, supported := range preferredCurves { + if supported == curve { + supportedCurve = true + break Curves + } + } + } + + supportedPointFormat := false + for _, pointFormat := range hs.clientHello.supportedPoints { + if pointFormat == pointFormatUncompressed { + supportedPointFormat = true + break + } + } + hs.ellipticOk = supportedCurve && supportedPointFormat + + foundCompression := false + // We only support null compression, so check that the client offered it. + for _, compression := range hs.clientHello.compressionMethods { + if compression == compressionNone { + foundCompression = true + break + } + } + + if !foundCompression { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: client does not support uncompressed connections") + } + + hs.hello.random = make([]byte, 32) + serverRandom := hs.hello.random + // Downgrade protection canaries. See RFC 8446, Section 4.1.3. + maxVers := c.config.maxSupportedVersion(false) + if maxVers >= VersionTLS12 && c.vers < maxVers { + if c.vers == VersionTLS12 { + copy(serverRandom[24:], downgradeCanaryTLS12) + } else { + copy(serverRandom[24:], downgradeCanaryTLS11) + } + serverRandom = serverRandom[:24] + } + _, err := io.ReadFull(c.config.rand(), serverRandom) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + + if len(hs.clientHello.secureRenegotiation) != 0 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: initial handshake had non-empty renegotiation extension") + } + + hs.hello.secureRenegotiationSupported = hs.clientHello.secureRenegotiationSupported + hs.hello.compressionMethod = compressionNone + if len(hs.clientHello.serverName) > 0 { + c.serverName = hs.clientHello.serverName + } + + if len(hs.clientHello.alpnProtocols) > 0 { + if selectedProto, fallback := mutualProtocol(hs.clientHello.alpnProtocols, c.config.NextProtos); !fallback { + hs.hello.alpnProtocol = selectedProto + c.clientProtocol = selectedProto + } + } else { + // Although sending an empty NPN extension is reasonable, Firefox has + // had a bug around this. Best to send nothing at all if + // c.config.NextProtos is empty. See + // https://golang.org/issue/5445. + if hs.clientHello.nextProtoNeg && len(c.config.NextProtos) > 0 { + hs.hello.nextProtoNeg = true + hs.hello.nextProtos = c.config.NextProtos + } + } + + hs.cert, err = c.config.getCertificate(clientHelloInfo(c, hs.clientHello)) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + if hs.clientHello.scts { + hs.hello.scts = hs.cert.SignedCertificateTimestamps + } + + if priv, ok := hs.cert.PrivateKey.(crypto.Signer); ok { + switch priv.Public().(type) { + case *ecdsa.PublicKey: + hs.ecdsaOk = true + case *rsa.PublicKey: + hs.rsaSignOk = true + default: + c.sendAlert(alertInternalError) + return fmt.Errorf("tls: unsupported signing key type (%T)", priv.Public()) + } + } + if priv, ok := hs.cert.PrivateKey.(crypto.Decrypter); ok { + switch priv.Public().(type) { + case *rsa.PublicKey: + hs.rsaDecryptOk = true + default: + c.sendAlert(alertInternalError) + return fmt.Errorf("tls: unsupported decryption key type (%T)", priv.Public()) + } + } + + return nil +} + +func (hs *serverHandshakeState) pickCipherSuite() error { + c := hs.c + + var preferenceList, supportedList []uint16 + if c.config.PreferServerCipherSuites { + preferenceList = c.config.cipherSuites() + supportedList = hs.clientHello.cipherSuites + } else { + preferenceList = hs.clientHello.cipherSuites + supportedList = c.config.cipherSuites() + } + + for _, id := range preferenceList { + if hs.setCipherSuite(id, supportedList, c.vers) { + break + } + } + + if hs.suite == nil { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: no cipher suite supported by both client and server") + } + + for _, id := range hs.clientHello.cipherSuites { + if id == TLS_FALLBACK_SCSV { + // The client is doing a fallback connection. See RFC 7507. + if hs.clientHello.vers < c.config.maxSupportedVersion(false) { + c.sendAlert(alertInappropriateFallback) + return errors.New("tls: client using inappropriate protocol fallback") + } + break + } + } + + return nil +} + +// checkForResumption reports whether we should perform resumption on this connection. +func (hs *serverHandshakeState) checkForResumption() bool { + c := hs.c + + if c.config.SessionTicketsDisabled { + return false + } + + plaintext, usedOldKey := c.decryptTicket(hs.clientHello.sessionTicket) + if plaintext == nil { + return false + } + hs.sessionState = &sessionState{usedOldKey: usedOldKey} + ok := hs.sessionState.unmarshal(plaintext) + if !ok { + return false + } + + // Never resume a session for a different TLS version. + if c.vers != hs.sessionState.vers { + return false + } + + cipherSuiteOk := false + // Check that the client is still offering the ciphersuite in the session. + for _, id := range hs.clientHello.cipherSuites { + if id == hs.sessionState.cipherSuite { + cipherSuiteOk = true + break + } + } + if !cipherSuiteOk { + return false + } + + // Check that we also support the ciphersuite from the session. + if !hs.setCipherSuite(hs.sessionState.cipherSuite, c.config.cipherSuites(), hs.sessionState.vers) { + return false + } + + sessionHasClientCerts := len(hs.sessionState.certificates) != 0 + needClientCerts := requiresClientCert(c.config.ClientAuth) + if needClientCerts && !sessionHasClientCerts { + return false + } + if sessionHasClientCerts && c.config.ClientAuth == NoClientCert { + return false + } + + return true +} + +func (hs *serverHandshakeState) doResumeHandshake() error { + c := hs.c + + hs.hello.cipherSuite = hs.suite.id + // We echo the client's session ID in the ServerHello to let it know + // that we're doing a resumption. + hs.hello.sessionId = hs.clientHello.sessionId + hs.hello.ticketSupported = hs.sessionState.usedOldKey + hs.finishedHash = newFinishedHash(c.vers, hs.suite) + hs.finishedHash.discardHandshakeBuffer() + hs.finishedHash.Write(hs.clientHello.marshal()) + hs.finishedHash.Write(hs.hello.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, hs.hello.marshal()); err != nil { + return err + } + + if err := c.processCertsFromClient(Certificate{ + Certificate: hs.sessionState.certificates, + }); err != nil { + return err + } + + hs.masterSecret = hs.sessionState.masterSecret + + return nil +} + +func (hs *serverHandshakeState) doFullHandshake() error { + c := hs.c + + if hs.clientHello.ocspStapling && len(hs.cert.OCSPStaple) > 0 { + hs.hello.ocspStapling = true + } + + hs.hello.ticketSupported = hs.clientHello.ticketSupported && !c.config.SessionTicketsDisabled + hs.hello.cipherSuite = hs.suite.id + + hs.finishedHash = newFinishedHash(hs.c.vers, hs.suite) + if c.config.ClientAuth == NoClientCert { + // No need to keep a full record of the handshake if client + // certificates won't be used. + hs.finishedHash.discardHandshakeBuffer() + } + hs.finishedHash.Write(hs.clientHello.marshal()) + hs.finishedHash.Write(hs.hello.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, hs.hello.marshal()); err != nil { + return err + } + + certMsg := new(certificateMsg) + certMsg.certificates = hs.cert.Certificate + hs.finishedHash.Write(certMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certMsg.marshal()); err != nil { + return err + } + + if hs.hello.ocspStapling { + certStatus := new(certificateStatusMsg) + certStatus.response = hs.cert.OCSPStaple + hs.finishedHash.Write(certStatus.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certStatus.marshal()); err != nil { + return err + } + } + + keyAgreement := hs.suite.ka(c.vers) + skx, err := keyAgreement.generateServerKeyExchange(c.config, hs.cert, hs.clientHello, hs.hello) + if err != nil { + c.sendAlert(alertHandshakeFailure) + return err + } + if skx != nil { + hs.finishedHash.Write(skx.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, skx.marshal()); err != nil { + return err + } + } + + if c.config.ClientAuth >= RequestClientCert { + // Request a client certificate + certReq := new(certificateRequestMsg) + certReq.certificateTypes = []byte{ + byte(certTypeRSASign), + byte(certTypeECDSASign), + } + if c.vers >= VersionTLS12 { + certReq.hasSignatureAlgorithm = true + certReq.supportedSignatureAlgorithms = supportedSignatureAlgorithmsTLS12 + } + + // An empty list of certificateAuthorities signals to + // the client that it may send any certificate in response + // to our request. When we know the CAs we trust, then + // we can send them down, so that the client can choose + // an appropriate certificate to give to us. + if c.config.ClientCAs != nil { + certReq.certificateAuthorities = c.config.ClientCAs.Subjects() + } + hs.finishedHash.Write(certReq.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certReq.marshal()); err != nil { + return err + } + } + + helloDone := new(serverHelloDoneMsg) + hs.finishedHash.Write(helloDone.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, helloDone.marshal()); err != nil { + return err + } + + if _, err := c.flush(); err != nil { + return err + } + + var pub crypto.PublicKey // public key for client auth, if any + + msg, err := c.readHandshake() + if err != nil { + return err + } + + // If we requested a client certificate, then the client must send a + // certificate message, even if it's empty. + if c.config.ClientAuth >= RequestClientCert { + certMsg, ok := msg.(*certificateMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certMsg, msg) + } + hs.finishedHash.Write(certMsg.marshal()) + + if err := c.processCertsFromClient(Certificate{ + Certificate: certMsg.certificates, + }); err != nil { + return err + } + if len(certMsg.certificates) != 0 { + pub = c.peerCertificates[0].PublicKey + } + + msg, err = c.readHandshake() + if err != nil { + return err + } + } + + // Get client key exchange + ckx, ok := msg.(*clientKeyExchangeMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(ckx, msg) + } + hs.finishedHash.Write(ckx.marshal()) + + preMasterSecret, err := keyAgreement.processClientKeyExchange(c.config, hs.cert, ckx, c.vers) + if err != nil { + c.sendAlert(alertHandshakeFailure) + return err + } + hs.masterSecret = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.clientHello.random, hs.hello.random) + if err := c.config.writeKeyLog(keyLogLabelTLS12, hs.clientHello.random, hs.masterSecret); err != nil { + c.sendAlert(alertInternalError) + return err + } + + // If we received a client cert in response to our certificate request message, + // the client will send us a certificateVerifyMsg immediately after the + // clientKeyExchangeMsg. This message is a digest of all preceding + // handshake-layer messages that is signed using the private key corresponding + // to the client's certificate. This allows us to verify that the client is in + // possession of the private key of the certificate. + if len(c.peerCertificates) > 0 { + msg, err = c.readHandshake() + if err != nil { + return err + } + certVerify, ok := msg.(*certificateVerifyMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certVerify, msg) + } + + // Determine the signature type. + _, sigType, hashFunc, err := pickSignatureAlgorithm(pub, []SignatureScheme{certVerify.signatureAlgorithm}, supportedSignatureAlgorithmsTLS12, c.vers) + if err != nil { + c.sendAlert(alertIllegalParameter) + return err + } + + var digest []byte + if digest, err = hs.finishedHash.hashForClientCertificate(sigType, hashFunc, hs.masterSecret); err == nil { + err = verifyHandshakeSignature(sigType, pub, hashFunc, digest, certVerify.signature) + } + if err != nil { + c.sendAlert(alertBadCertificate) + return errors.New("tls: could not validate signature of connection nonces: " + err.Error()) + } + + hs.finishedHash.Write(certVerify.marshal()) + } + + hs.finishedHash.discardHandshakeBuffer() + + return nil +} + +func (hs *serverHandshakeState) establishKeys() error { + c := hs.c + + clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV := + keysFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.clientHello.random, hs.hello.random, hs.suite.macLen, hs.suite.keyLen, hs.suite.ivLen) + + var clientCipher, serverCipher interface{} + var clientHash, serverHash macFunction + + if hs.suite.aead == nil { + clientCipher = hs.suite.cipher(clientKey, clientIV, true /* for reading */) + clientHash = hs.suite.mac(c.vers, clientMAC) + serverCipher = hs.suite.cipher(serverKey, serverIV, false /* not for reading */) + serverHash = hs.suite.mac(c.vers, serverMAC) + } else { + clientCipher = hs.suite.aead(clientKey, clientIV) + serverCipher = hs.suite.aead(serverKey, serverIV) + } + + c.in.prepareCipherSpec(c.vers, clientCipher, clientHash) + c.out.prepareCipherSpec(c.vers, serverCipher, serverHash) + + return nil +} + +func (hs *serverHandshakeState) readFinished(out []byte) error { + c := hs.c + + if err := c.readChangeCipherSpec(); err != nil { + return err + } + + if hs.hello.nextProtoNeg { + msg, err := c.readHandshake() + if err != nil { + return err + } + nextProto, ok := msg.(*nextProtoMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(nextProto, msg) + } + hs.finishedHash.Write(nextProto.marshal()) + c.clientProtocol = nextProto.proto + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + clientFinished, ok := msg.(*finishedMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(clientFinished, msg) + } + + verify := hs.finishedHash.clientSum(hs.masterSecret) + if len(verify) != len(clientFinished.verifyData) || + subtle.ConstantTimeCompare(verify, clientFinished.verifyData) != 1 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: client's Finished message is incorrect") + } + + hs.finishedHash.Write(clientFinished.marshal()) + copy(out, verify) + return nil +} + +func (hs *serverHandshakeState) sendSessionTicket() error { + if !hs.hello.ticketSupported { + return nil + } + + c := hs.c + m := new(newSessionTicketMsg) + + var certsFromClient [][]byte + for _, cert := range c.peerCertificates { + certsFromClient = append(certsFromClient, cert.Raw) + } + state := sessionState{ + vers: c.vers, + cipherSuite: hs.suite.id, + masterSecret: hs.masterSecret, + certificates: certsFromClient, + } + var err error + m.ticket, err = c.encryptTicket(state.marshal()) + if err != nil { + return err + } + + hs.finishedHash.Write(m.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, m.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeState) sendFinished(out []byte) error { + c := hs.c + + if _, err := c.writeRecord(recordTypeChangeCipherSpec, []byte{1}); err != nil { + return err + } + + finished := new(finishedMsg) + finished.verifyData = hs.finishedHash.serverSum(hs.masterSecret) + hs.finishedHash.Write(finished.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, finished.marshal()); err != nil { + return err + } + + c.cipherSuite = hs.suite.id + copy(out, finished.verifyData) + + return nil +} + +// processCertsFromClient takes a chain of client certificates either from a +// Certificates message or from a sessionState and verifies them. It returns +// the public key of the leaf certificate. +func (c *Conn) processCertsFromClient(certificate Certificate) error { + certificates := certificate.Certificate + certs := make([]*x509.Certificate, len(certificates)) + var err error + for i, asn1Data := range certificates { + if certs[i], err = x509.ParseCertificate(asn1Data); err != nil { + c.sendAlert(alertBadCertificate) + return errors.New("tls: failed to parse client certificate: " + err.Error()) + } + } + + if len(certs) == 0 && requiresClientCert(c.config.ClientAuth) { + c.sendAlert(alertBadCertificate) + return errors.New("tls: client didn't provide a certificate") + } + + if c.config.ClientAuth >= VerifyClientCertIfGiven && len(certs) > 0 { + opts := x509.VerifyOptions{ + Roots: c.config.ClientCAs, + CurrentTime: c.config.time(), + Intermediates: x509.NewCertPool(), + KeyUsages: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, + } + + for _, cert := range certs[1:] { + opts.Intermediates.AddCert(cert) + } + + chains, err := certs[0].Verify(opts) + if err != nil { + c.sendAlert(alertBadCertificate) + return errors.New("tls: failed to verify client's certificate: " + err.Error()) + } + + c.verifiedChains = chains + } + + if c.config.VerifyPeerCertificate != nil { + if err := c.config.VerifyPeerCertificate(certificates, c.verifiedChains); err != nil { + c.sendAlert(alertBadCertificate) + return err + } + } + + if len(certs) == 0 { + return nil + } + + switch certs[0].PublicKey.(type) { + case *ecdsa.PublicKey, *rsa.PublicKey: + default: + c.sendAlert(alertUnsupportedCertificate) + return fmt.Errorf("tls: client's certificate contains an unsupported public key of type %T", certs[0].PublicKey) + } + + c.peerCertificates = certs + c.ocspResponse = certificate.OCSPStaple + c.scts = certificate.SignedCertificateTimestamps + return nil +} + +// setCipherSuite sets a cipherSuite with the given id as the serverHandshakeState +// suite if that cipher suite is acceptable to use. +// It returns a bool indicating if the suite was set. +func (hs *serverHandshakeState) setCipherSuite(id uint16, supportedCipherSuites []uint16, version uint16) bool { + for _, supported := range supportedCipherSuites { + if id == supported { + candidate := cipherSuiteByID(id) + if candidate == nil { + continue + } + // Don't select a ciphersuite which we can't + // support for this client. + if candidate.flags&suiteECDHE != 0 { + if !hs.ellipticOk { + continue + } + if candidate.flags&suiteECDSA != 0 { + if !hs.ecdsaOk { + continue + } + } else if !hs.rsaSignOk { + continue + } + } else if !hs.rsaDecryptOk { + continue + } + if version < VersionTLS12 && candidate.flags&suiteTLS12 != 0 { + continue + } + hs.suite = candidate + return true + } + } + return false +} + +func clientHelloInfo(c *Conn, clientHello *clientHelloMsg) *ClientHelloInfo { + supportedVersions := clientHello.supportedVersions + if len(clientHello.supportedVersions) == 0 { + supportedVersions = supportedVersionsFromMax(clientHello.vers) + } + + return &ClientHelloInfo{ + CipherSuites: clientHello.cipherSuites, + ServerName: clientHello.serverName, + SupportedCurves: clientHello.supportedCurves, + SupportedPoints: clientHello.supportedPoints, + SignatureSchemes: clientHello.supportedSignatureAlgorithms, + SupportedProtos: clientHello.alpnProtocols, + SupportedVersions: supportedVersions, + Conn: c.conn, + } +} diff --git a/vendor/github.com/marten-seemann/qtls/handshake_server_tls13.go b/vendor/github.com/marten-seemann/qtls/handshake_server_tls13.go new file mode 100644 index 00000000..97f15091 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/handshake_server_tls13.go @@ -0,0 +1,872 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "bytes" + "crypto" + "crypto/hmac" + "crypto/rsa" + "errors" + "hash" + "io" + "sync/atomic" + "time" +) + +// maxClientPSKIdentities is the number of client PSK identities the server will +// attempt to validate. It will ignore the rest not to let cheap ClientHello +// messages cause too much work in session ticket decryption attempts. +const maxClientPSKIdentities = 5 + +type serverHandshakeStateTLS13 struct { + c *Conn + clientHello *clientHelloMsg + hello *serverHelloMsg + sentDummyCCS bool + usingPSK bool + suite *cipherSuiteTLS13 + cert *Certificate + sigAlg SignatureScheme + earlySecret []byte + sharedKey []byte + handshakeSecret []byte + masterSecret []byte + trafficSecret []byte // client_application_traffic_secret_0 + transcript hash.Hash + clientFinished []byte +} + +func (hs *serverHandshakeStateTLS13) handshake() error { + c := hs.c + + // For an overview of the TLS 1.3 handshake, see RFC 8446, Section 2. + if err := hs.processClientHello(); err != nil { + return err + } + if err := hs.checkForResumption(); err != nil { + return err + } + if err := hs.pickCertificate(); err != nil { + return err + } + c.buffering = true + if err := hs.sendServerParameters(); err != nil { + return err + } + if err := hs.sendServerCertificate(); err != nil { + return err + } + if err := hs.sendServerFinished(); err != nil { + return err + } + // Note that at this point we could start sending application data without + // waiting for the client's second flight, but the application might not + // expect the lack of replay protection of the ClientHello parameters. + if _, err := c.flush(); err != nil { + return err + } + if err := hs.readClientCertificate(); err != nil { + return err + } + if err := hs.readClientFinished(); err != nil { + return err + } + + atomic.StoreUint32(&c.handshakeStatus, 1) + + return nil +} + +func (hs *serverHandshakeStateTLS13) processClientHello() error { + c := hs.c + + hs.hello = new(serverHelloMsg) + + // TLS 1.3 froze the ServerHello.legacy_version field, and uses + // supported_versions instead. See RFC 8446, sections 4.1.3 and 4.2.1. + hs.hello.vers = VersionTLS12 + hs.hello.supportedVersion = c.vers + + if len(hs.clientHello.supportedVersions) == 0 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client used the legacy version field to negotiate TLS 1.3") + } + + // Abort if the client is doing a fallback and landing lower than what we + // support. See RFC 7507, which however does not specify the interaction + // with supported_versions. The only difference is that with + // supported_versions a client has a chance to attempt a [TLS 1.2, TLS 1.4] + // handshake in case TLS 1.3 is broken but 1.2 is not. Alas, in that case, + // it will have to drop the TLS_FALLBACK_SCSV protection if it falls back to + // TLS 1.2, because a TLS 1.3 server would abort here. The situation before + // supported_versions was not better because there was just no way to do a + // TLS 1.4 handshake without risking the server selecting TLS 1.3. + for _, id := range hs.clientHello.cipherSuites { + if id == TLS_FALLBACK_SCSV { + // Use c.vers instead of max(supported_versions) because an attacker + // could defeat this by adding an arbitrary high version otherwise. + if c.vers < c.config.maxSupportedVersion(false) { + c.sendAlert(alertInappropriateFallback) + return errors.New("tls: client using inappropriate protocol fallback") + } + break + } + } + + if len(hs.clientHello.compressionMethods) != 1 || + hs.clientHello.compressionMethods[0] != compressionNone { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: TLS 1.3 client supports illegal compression methods") + } + + hs.hello.random = make([]byte, 32) + if _, err := io.ReadFull(c.config.rand(), hs.hello.random); err != nil { + c.sendAlert(alertInternalError) + return err + } + + if len(hs.clientHello.secureRenegotiation) != 0 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: initial handshake had non-empty renegotiation extension") + } + + if hs.clientHello.earlyData { + // See RFC 8446, Section 4.2.10 for the complicated behavior required + // here. The scenario is that a different server at our address offered + // to accept early data in the past, which we can't handle. For now, all + // 0-RTT enabled session tickets need to expire before a Go server can + // replace a server or join a pool. That's the same requirement that + // applies to mixing or replacing with any TLS 1.2 server. + c.sendAlert(alertUnsupportedExtension) + return errors.New("tls: client sent unexpected early data") + } + + hs.hello.sessionId = hs.clientHello.sessionId + hs.hello.compressionMethod = compressionNone + + var preferenceList, supportedList []uint16 + if c.config.PreferServerCipherSuites { + preferenceList = defaultCipherSuitesTLS13() + supportedList = hs.clientHello.cipherSuites + } else { + preferenceList = hs.clientHello.cipherSuites + supportedList = defaultCipherSuitesTLS13() + } + for _, suiteID := range preferenceList { + hs.suite = mutualCipherSuiteTLS13(supportedList, suiteID) + if hs.suite != nil { + break + } + } + if hs.suite == nil { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: no cipher suite supported by both client and server") + } + c.cipherSuite = hs.suite.id + hs.hello.cipherSuite = hs.suite.id + hs.transcript = hs.suite.hash.New() + + // Pick the ECDHE group in server preference order, but give priority to + // groups with a key share, to avoid a HelloRetryRequest round-trip. + var selectedGroup CurveID + var clientKeyShare *keyShare +GroupSelection: + for _, preferredGroup := range c.config.curvePreferences() { + for _, ks := range hs.clientHello.keyShares { + if ks.group == preferredGroup { + selectedGroup = ks.group + clientKeyShare = &ks + break GroupSelection + } + } + if selectedGroup != 0 { + continue + } + for _, group := range hs.clientHello.supportedCurves { + if group == preferredGroup { + selectedGroup = group + break + } + } + } + if selectedGroup == 0 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: no ECDHE curve supported by both client and server") + } + if clientKeyShare == nil { + if err := hs.doHelloRetryRequest(selectedGroup); err != nil { + return err + } + clientKeyShare = &hs.clientHello.keyShares[0] + } + + if _, ok := curveForCurveID(selectedGroup); selectedGroup != X25519 && !ok { + c.sendAlert(alertInternalError) + return errors.New("tls: CurvePreferences includes unsupported curve") + } + params, err := generateECDHEParameters(c.config.rand(), selectedGroup) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + hs.hello.serverShare = keyShare{group: selectedGroup, data: params.PublicKey()} + hs.sharedKey = params.SharedKey(clientKeyShare.data) + if hs.sharedKey == nil { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid client key share") + } + + c.serverName = hs.clientHello.serverName + + if c.config.ReceivedExtensions != nil { + c.config.ReceivedExtensions(typeClientHello, hs.clientHello.additionalExtensions) + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) checkForResumption() error { + c := hs.c + + if c.config.SessionTicketsDisabled { + return nil + } + + modeOK := false + for _, mode := range hs.clientHello.pskModes { + if mode == pskModeDHE { + modeOK = true + break + } + } + if !modeOK { + return nil + } + + if len(hs.clientHello.pskIdentities) != len(hs.clientHello.pskBinders) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid or missing PSK binders") + } + if len(hs.clientHello.pskIdentities) == 0 { + return nil + } + + for i, identity := range hs.clientHello.pskIdentities { + if i >= maxClientPSKIdentities { + break + } + + plaintext, _ := c.decryptTicket(identity.label) + if plaintext == nil { + continue + } + sessionState := new(sessionStateTLS13) + if ok := sessionState.unmarshal(plaintext); !ok { + continue + } + + createdAt := time.Unix(int64(sessionState.createdAt), 0) + if c.config.time().Sub(createdAt) > maxSessionTicketLifetime { + continue + } + + // We don't check the obfuscated ticket age because it's affected by + // clock skew and it's only a freshness signal useful for shrinking the + // window for replay attacks, which don't affect us as we don't do 0-RTT. + + pskSuite := cipherSuiteTLS13ByID(sessionState.cipherSuite) + if pskSuite == nil || pskSuite.hash != hs.suite.hash { + continue + } + + // PSK connections don't re-establish client certificates, but carry + // them over in the session ticket. Ensure the presence of client certs + // in the ticket is consistent with the configured requirements. + sessionHasClientCerts := len(sessionState.certificate.Certificate) != 0 + needClientCerts := requiresClientCert(c.config.ClientAuth) + if needClientCerts && !sessionHasClientCerts { + continue + } + if sessionHasClientCerts && c.config.ClientAuth == NoClientCert { + continue + } + + psk := hs.suite.expandLabel(sessionState.resumptionSecret, "resumption", + nil, hs.suite.hash.Size()) + hs.earlySecret = hs.suite.extract(psk, nil) + binderKey := hs.suite.deriveSecret(hs.earlySecret, resumptionBinderLabel, nil) + // Clone the transcript in case a HelloRetryRequest was recorded. + transcript := cloneHash(hs.transcript, hs.suite.hash) + if transcript == nil { + c.sendAlert(alertInternalError) + return errors.New("tls: internal error: failed to clone hash") + } + transcript.Write(hs.clientHello.marshalWithoutBinders()) + pskBinder := hs.suite.finishedHash(binderKey, transcript) + if !hmac.Equal(hs.clientHello.pskBinders[i], pskBinder) { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid PSK binder") + } + + if err := c.processCertsFromClient(sessionState.certificate); err != nil { + return err + } + + hs.hello.selectedIdentityPresent = true + hs.hello.selectedIdentity = uint16(i) + hs.usingPSK = true + c.didResume = true + return nil + } + + return nil +} + +// cloneHash uses the encoding.BinaryMarshaler and encoding.BinaryUnmarshaler +// interfaces implemented by standard library hashes to clone the state of in +// to a new instance of h. It returns nil if the operation fails. +func cloneHash(in hash.Hash, h crypto.Hash) hash.Hash { + // Recreate the interface to avoid importing encoding. + type binaryMarshaler interface { + MarshalBinary() (data []byte, err error) + UnmarshalBinary(data []byte) error + } + marshaler, ok := in.(binaryMarshaler) + if !ok { + return nil + } + state, err := marshaler.MarshalBinary() + if err != nil { + return nil + } + out := h.New() + unmarshaler, ok := out.(binaryMarshaler) + if !ok { + return nil + } + if err := unmarshaler.UnmarshalBinary(state); err != nil { + return nil + } + return out +} + +func (hs *serverHandshakeStateTLS13) pickCertificate() error { + c := hs.c + + // Only one of PSK and certificates are used at a time. + if hs.usingPSK { + return nil + } + + // This implements a very simplistic certificate selection strategy for now: + // getCertificate delegates to the application Config.GetCertificate, or + // selects based on the server_name only. If the selected certificate's + // public key does not match the client signature_algorithms, the handshake + // is aborted. No attention is given to signature_algorithms_cert, and it is + // not passed to the application Config.GetCertificate. This will need to + // improve according to RFC 8446, sections 4.4.2.2 and 4.2.3. + certificate, err := c.config.getCertificate(clientHelloInfo(c, hs.clientHello)) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + supportedAlgs := signatureSchemesForCertificate(c.vers, certificate) + if supportedAlgs == nil { + c.sendAlert(alertInternalError) + return unsupportedCertificateError(certificate) + } + // Pick signature scheme in client preference order, as the server + // preference order is not configurable. + for _, preferredAlg := range hs.clientHello.supportedSignatureAlgorithms { + if isSupportedSignatureAlgorithm(preferredAlg, supportedAlgs) { + hs.sigAlg = preferredAlg + break + } + } + if hs.sigAlg == 0 { + // getCertificate returned a certificate incompatible with the + // ClientHello supported signature algorithms. + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: client doesn't support selected certificate") + } + hs.cert = certificate + + return nil +} + +// sendDummyChangeCipherSpec sends a ChangeCipherSpec record for compatibility +// with middleboxes that didn't implement TLS correctly. See RFC 8446, Appendix D.4. +func (hs *serverHandshakeStateTLS13) sendDummyChangeCipherSpec() error { + if hs.sentDummyCCS { + return nil + } + hs.sentDummyCCS = true + + _, err := hs.c.writeRecord(recordTypeChangeCipherSpec, []byte{1}) + return err +} + +func (hs *serverHandshakeStateTLS13) doHelloRetryRequest(selectedGroup CurveID) error { + c := hs.c + + // The first ClientHello gets double-hashed into the transcript upon a + // HelloRetryRequest. See RFC 8446, Section 4.4.1. + hs.transcript.Write(hs.clientHello.marshal()) + chHash := hs.transcript.Sum(nil) + hs.transcript.Reset() + hs.transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) + hs.transcript.Write(chHash) + + helloRetryRequest := &serverHelloMsg{ + vers: hs.hello.vers, + random: helloRetryRequestRandom, + sessionId: hs.hello.sessionId, + cipherSuite: hs.hello.cipherSuite, + compressionMethod: hs.hello.compressionMethod, + supportedVersion: hs.hello.supportedVersion, + selectedGroup: selectedGroup, + } + + hs.transcript.Write(helloRetryRequest.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, helloRetryRequest.marshal()); err != nil { + return err + } + + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + clientHello, ok := msg.(*clientHelloMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(clientHello, msg) + } + + if len(clientHello.keyShares) != 1 || clientHello.keyShares[0].group != selectedGroup { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client sent invalid key share in second ClientHello") + } + + if clientHello.earlyData { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client indicated early data in second ClientHello") + } + + if illegalClientHelloChange(clientHello, hs.clientHello) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client illegally modified second ClientHello") + } + + hs.clientHello = clientHello + return nil +} + +// illegalClientHelloChange reports whether the two ClientHello messages are +// different, with the exception of the changes allowed before and after a +// HelloRetryRequest. See RFC 8446, Section 4.1.2. +func illegalClientHelloChange(ch, ch1 *clientHelloMsg) bool { + if len(ch.supportedVersions) != len(ch1.supportedVersions) || + len(ch.cipherSuites) != len(ch1.cipherSuites) || + len(ch.supportedCurves) != len(ch1.supportedCurves) || + len(ch.supportedSignatureAlgorithms) != len(ch1.supportedSignatureAlgorithms) || + len(ch.supportedSignatureAlgorithmsCert) != len(ch1.supportedSignatureAlgorithmsCert) || + len(ch.alpnProtocols) != len(ch1.alpnProtocols) { + return true + } + for i := range ch.supportedVersions { + if ch.supportedVersions[i] != ch1.supportedVersions[i] { + return true + } + } + for i := range ch.cipherSuites { + if ch.cipherSuites[i] != ch1.cipherSuites[i] { + return true + } + } + for i := range ch.supportedCurves { + if ch.supportedCurves[i] != ch1.supportedCurves[i] { + return true + } + } + for i := range ch.supportedSignatureAlgorithms { + if ch.supportedSignatureAlgorithms[i] != ch1.supportedSignatureAlgorithms[i] { + return true + } + } + for i := range ch.supportedSignatureAlgorithmsCert { + if ch.supportedSignatureAlgorithmsCert[i] != ch1.supportedSignatureAlgorithmsCert[i] { + return true + } + } + for i := range ch.alpnProtocols { + if ch.alpnProtocols[i] != ch1.alpnProtocols[i] { + return true + } + } + return ch.vers != ch1.vers || + !bytes.Equal(ch.random, ch1.random) || + !bytes.Equal(ch.sessionId, ch1.sessionId) || + !bytes.Equal(ch.compressionMethods, ch1.compressionMethods) || + ch.nextProtoNeg != ch1.nextProtoNeg || + ch.serverName != ch1.serverName || + ch.ocspStapling != ch1.ocspStapling || + !bytes.Equal(ch.supportedPoints, ch1.supportedPoints) || + ch.ticketSupported != ch1.ticketSupported || + !bytes.Equal(ch.sessionTicket, ch1.sessionTicket) || + ch.secureRenegotiationSupported != ch1.secureRenegotiationSupported || + !bytes.Equal(ch.secureRenegotiation, ch1.secureRenegotiation) || + ch.scts != ch1.scts || + !bytes.Equal(ch.cookie, ch1.cookie) || + !bytes.Equal(ch.pskModes, ch1.pskModes) +} + +func (hs *serverHandshakeStateTLS13) sendServerParameters() error { + c := hs.c + + hs.transcript.Write(hs.clientHello.marshal()) + hs.transcript.Write(hs.hello.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, hs.hello.marshal()); err != nil { + return err + } + + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } + + earlySecret := hs.earlySecret + if earlySecret == nil { + earlySecret = hs.suite.extract(nil, nil) + } + hs.handshakeSecret = hs.suite.extract(hs.sharedKey, + hs.suite.deriveSecret(earlySecret, "derived", nil)) + + clientSecret := hs.suite.deriveSecret(hs.handshakeSecret, + clientHandshakeTrafficLabel, hs.transcript) + c.in.exportKey(hs.suite, clientSecret) + c.in.setTrafficSecret(hs.suite, clientSecret) + serverSecret := hs.suite.deriveSecret(hs.handshakeSecret, + serverHandshakeTrafficLabel, hs.transcript) + c.out.exportKey(hs.suite, serverSecret) + c.out.setTrafficSecret(hs.suite, serverSecret) + + err := c.config.writeKeyLog(keyLogLabelClientHandshake, hs.clientHello.random, clientSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerHandshake, hs.clientHello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + + encryptedExtensions := new(encryptedExtensionsMsg) + + if len(hs.clientHello.alpnProtocols) > 0 { + if selectedProto, fallback := mutualProtocol(hs.clientHello.alpnProtocols, c.config.NextProtos); !fallback { + encryptedExtensions.alpnProtocol = selectedProto + c.clientProtocol = selectedProto + } + } + if hs.c.config.GetExtensions != nil { + encryptedExtensions.additionalExtensions = hs.c.config.GetExtensions(typeEncryptedExtensions) + } + + hs.transcript.Write(encryptedExtensions.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, encryptedExtensions.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) requestClientCert() bool { + return hs.c.config.ClientAuth >= RequestClientCert && !hs.usingPSK +} + +func (hs *serverHandshakeStateTLS13) sendServerCertificate() error { + c := hs.c + + // Only one of PSK and certificates are used at a time. + if hs.usingPSK { + return nil + } + + if hs.requestClientCert() { + // Request a client certificate + certReq := new(certificateRequestMsgTLS13) + certReq.ocspStapling = true + certReq.scts = true + certReq.supportedSignatureAlgorithms = supportedSignatureAlgorithms + if c.config.ClientCAs != nil { + certReq.certificateAuthorities = c.config.ClientCAs.Subjects() + } + + hs.transcript.Write(certReq.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certReq.marshal()); err != nil { + return err + } + } + + certMsg := new(certificateMsgTLS13) + + certMsg.certificate = *hs.cert + certMsg.scts = hs.clientHello.scts && len(hs.cert.SignedCertificateTimestamps) > 0 + certMsg.ocspStapling = hs.clientHello.ocspStapling && len(hs.cert.OCSPStaple) > 0 + + hs.transcript.Write(certMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certMsg.marshal()); err != nil { + return err + } + + certVerifyMsg := new(certificateVerifyMsg) + certVerifyMsg.hasSignatureAlgorithm = true + certVerifyMsg.signatureAlgorithm = hs.sigAlg + + sigType := signatureFromSignatureScheme(hs.sigAlg) + sigHash, err := hashFromSignatureScheme(hs.sigAlg) + if sigType == 0 || err != nil { + return c.sendAlert(alertInternalError) + } + h := sigHash.New() + writeSignedMessage(h, serverSignatureContext, hs.transcript) + + signOpts := crypto.SignerOpts(sigHash) + if sigType == signatureRSAPSS { + signOpts = &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash, Hash: sigHash} + } + sig, err := hs.cert.PrivateKey.(crypto.Signer).Sign(c.config.rand(), h.Sum(nil), signOpts) + if err != nil { + public := hs.cert.PrivateKey.(crypto.Signer).Public() + if rsaKey, ok := public.(*rsa.PublicKey); ok && sigType == signatureRSAPSS && + rsaKey.N.BitLen()/8 < sigHash.Size()*2+2 { // key too small for RSA-PSS + c.sendAlert(alertHandshakeFailure) + } else { + c.sendAlert(alertInternalError) + } + return errors.New("tls: failed to sign handshake: " + err.Error()) + } + certVerifyMsg.signature = sig + + hs.transcript.Write(certVerifyMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certVerifyMsg.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) sendServerFinished() error { + c := hs.c + + finished := &finishedMsg{ + verifyData: hs.suite.finishedHash(c.out.trafficSecret, hs.transcript), + } + + hs.transcript.Write(finished.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, finished.marshal()); err != nil { + return err + } + + // Derive secrets that take context through the server Finished. + + hs.masterSecret = hs.suite.extract(nil, + hs.suite.deriveSecret(hs.handshakeSecret, "derived", nil)) + + hs.trafficSecret = hs.suite.deriveSecret(hs.masterSecret, + clientApplicationTrafficLabel, hs.transcript) + serverSecret := hs.suite.deriveSecret(hs.masterSecret, + serverApplicationTrafficLabel, hs.transcript) + c.out.exportKey(hs.suite, serverSecret) + c.out.setTrafficSecret(hs.suite, serverSecret) + + err := c.config.writeKeyLog(keyLogLabelClientTraffic, hs.clientHello.random, hs.trafficSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerTraffic, hs.clientHello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + + c.ekm = hs.suite.exportKeyingMaterial(hs.masterSecret, hs.transcript) + + // If we did not request client certificates, at this point we can + // precompute the client finished and roll the transcript forward to send + // session tickets in our first flight. + if !hs.requestClientCert() { + if err := hs.sendSessionTickets(); err != nil { + return err + } + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) shouldSendSessionTickets() bool { + if hs.c.config.SessionTicketsDisabled { + return false + } + + // Don't send tickets the client wouldn't use. See RFC 8446, Section 4.2.9. + for _, pskMode := range hs.clientHello.pskModes { + if pskMode == pskModeDHE { + return true + } + } + return false +} + +func (hs *serverHandshakeStateTLS13) sendSessionTickets() error { + c := hs.c + + hs.clientFinished = hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) + finishedMsg := &finishedMsg{ + verifyData: hs.clientFinished, + } + hs.transcript.Write(finishedMsg.marshal()) + + if !hs.shouldSendSessionTickets() { + return nil + } + + resumptionSecret := hs.suite.deriveSecret(hs.masterSecret, + resumptionLabel, hs.transcript) + + m := new(newSessionTicketMsgTLS13) + + var certsFromClient [][]byte + for _, cert := range c.peerCertificates { + certsFromClient = append(certsFromClient, cert.Raw) + } + state := sessionStateTLS13{ + cipherSuite: hs.suite.id, + createdAt: uint64(c.config.time().Unix()), + resumptionSecret: resumptionSecret, + certificate: Certificate{ + Certificate: certsFromClient, + OCSPStaple: c.ocspResponse, + SignedCertificateTimestamps: c.scts, + }, + } + var err error + m.label, err = c.encryptTicket(state.marshal()) + if err != nil { + return err + } + m.lifetime = uint32(maxSessionTicketLifetime / time.Second) + + if _, err := c.writeRecord(recordTypeHandshake, m.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) readClientCertificate() error { + c := hs.c + + if !hs.requestClientCert() { + return nil + } + + // If we requested a client certificate, then the client must send a + // certificate message. If it's empty, no CertificateVerify is sent. + + msg, err := c.readHandshake() + if err != nil { + return err + } + + certMsg, ok := msg.(*certificateMsgTLS13) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certMsg, msg) + } + hs.transcript.Write(certMsg.marshal()) + + if err := c.processCertsFromClient(certMsg.certificate); err != nil { + return err + } + + if len(certMsg.certificate.Certificate) != 0 { + msg, err = c.readHandshake() + if err != nil { + return err + } + + certVerify, ok := msg.(*certificateVerifyMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certVerify, msg) + } + + // See RFC 8446, Section 4.4.3. + if !isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, supportedSignatureAlgorithms) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid certificate signature algorithm") + } + sigType := signatureFromSignatureScheme(certVerify.signatureAlgorithm) + sigHash, err := hashFromSignatureScheme(certVerify.signatureAlgorithm) + if sigType == 0 || err != nil { + c.sendAlert(alertInternalError) + return err + } + if sigType == signaturePKCS1v15 || sigHash == crypto.SHA1 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid certificate signature algorithm") + } + h := sigHash.New() + writeSignedMessage(h, clientSignatureContext, hs.transcript) + if err := verifyHandshakeSignature(sigType, c.peerCertificates[0].PublicKey, + sigHash, h.Sum(nil), certVerify.signature); err != nil { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid certificate signature") + } + + hs.transcript.Write(certVerify.marshal()) + } + + // If we waited until the client certificates to send session tickets, we + // are ready to do it now. + if err := hs.sendSessionTickets(); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) readClientFinished() error { + c := hs.c + + msg, err := c.readHandshake() + if err != nil { + return err + } + + finished, ok := msg.(*finishedMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(finished, msg) + } + + if !hmac.Equal(hs.clientFinished, finished.verifyData) { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid client finished hash") + } + + c.in.exportKey(hs.suite, hs.trafficSecret) + c.in.setTrafficSecret(hs.suite, hs.trafficSecret) + + return nil +} diff --git a/vendor/github.com/marten-seemann/qtls/key_agreement.go b/vendor/github.com/marten-seemann/qtls/key_agreement.go new file mode 100644 index 00000000..477aae4a --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/key_agreement.go @@ -0,0 +1,313 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "crypto" + "crypto/md5" + "crypto/rsa" + "crypto/sha1" + "crypto/x509" + "errors" + "io" +) + +var errClientKeyExchange = errors.New("tls: invalid ClientKeyExchange message") +var errServerKeyExchange = errors.New("tls: invalid ServerKeyExchange message") + +// rsaKeyAgreement implements the standard TLS key agreement where the client +// encrypts the pre-master secret to the server's public key. +type rsaKeyAgreement struct{} + +func (ka rsaKeyAgreement) generateServerKeyExchange(config *Config, cert *Certificate, clientHello *clientHelloMsg, hello *serverHelloMsg) (*serverKeyExchangeMsg, error) { + return nil, nil +} + +func (ka rsaKeyAgreement) processClientKeyExchange(config *Config, cert *Certificate, ckx *clientKeyExchangeMsg, version uint16) ([]byte, error) { + if len(ckx.ciphertext) < 2 { + return nil, errClientKeyExchange + } + + ciphertext := ckx.ciphertext + if version != VersionSSL30 { + ciphertextLen := int(ckx.ciphertext[0])<<8 | int(ckx.ciphertext[1]) + if ciphertextLen != len(ckx.ciphertext)-2 { + return nil, errClientKeyExchange + } + ciphertext = ckx.ciphertext[2:] + } + priv, ok := cert.PrivateKey.(crypto.Decrypter) + if !ok { + return nil, errors.New("tls: certificate private key does not implement crypto.Decrypter") + } + // Perform constant time RSA PKCS#1 v1.5 decryption + preMasterSecret, err := priv.Decrypt(config.rand(), ciphertext, &rsa.PKCS1v15DecryptOptions{SessionKeyLen: 48}) + if err != nil { + return nil, err + } + // We don't check the version number in the premaster secret. For one, + // by checking it, we would leak information about the validity of the + // encrypted pre-master secret. Secondly, it provides only a small + // benefit against a downgrade attack and some implementations send the + // wrong version anyway. See the discussion at the end of section + // 7.4.7.1 of RFC 4346. + return preMasterSecret, nil +} + +func (ka rsaKeyAgreement) processServerKeyExchange(config *Config, clientHello *clientHelloMsg, serverHello *serverHelloMsg, cert *x509.Certificate, skx *serverKeyExchangeMsg) error { + return errors.New("tls: unexpected ServerKeyExchange") +} + +func (ka rsaKeyAgreement) generateClientKeyExchange(config *Config, clientHello *clientHelloMsg, cert *x509.Certificate) ([]byte, *clientKeyExchangeMsg, error) { + preMasterSecret := make([]byte, 48) + preMasterSecret[0] = byte(clientHello.vers >> 8) + preMasterSecret[1] = byte(clientHello.vers) + _, err := io.ReadFull(config.rand(), preMasterSecret[2:]) + if err != nil { + return nil, nil, err + } + + encrypted, err := rsa.EncryptPKCS1v15(config.rand(), cert.PublicKey.(*rsa.PublicKey), preMasterSecret) + if err != nil { + return nil, nil, err + } + ckx := new(clientKeyExchangeMsg) + ckx.ciphertext = make([]byte, len(encrypted)+2) + ckx.ciphertext[0] = byte(len(encrypted) >> 8) + ckx.ciphertext[1] = byte(len(encrypted)) + copy(ckx.ciphertext[2:], encrypted) + return preMasterSecret, ckx, nil +} + +// sha1Hash calculates a SHA1 hash over the given byte slices. +func sha1Hash(slices [][]byte) []byte { + hsha1 := sha1.New() + for _, slice := range slices { + hsha1.Write(slice) + } + return hsha1.Sum(nil) +} + +// md5SHA1Hash implements TLS 1.0's hybrid hash function which consists of the +// concatenation of an MD5 and SHA1 hash. +func md5SHA1Hash(slices [][]byte) []byte { + md5sha1 := make([]byte, md5.Size+sha1.Size) + hmd5 := md5.New() + for _, slice := range slices { + hmd5.Write(slice) + } + copy(md5sha1, hmd5.Sum(nil)) + copy(md5sha1[md5.Size:], sha1Hash(slices)) + return md5sha1 +} + +// hashForServerKeyExchange hashes the given slices and returns their digest +// using the given hash function (for >= TLS 1.2) or using a default based on +// the sigType (for earlier TLS versions). +func hashForServerKeyExchange(sigType uint8, hashFunc crypto.Hash, version uint16, slices ...[]byte) ([]byte, error) { + if version >= VersionTLS12 { + h := hashFunc.New() + for _, slice := range slices { + h.Write(slice) + } + digest := h.Sum(nil) + return digest, nil + } + if sigType == signatureECDSA { + return sha1Hash(slices), nil + } + return md5SHA1Hash(slices), nil +} + +// ecdheKeyAgreement implements a TLS key agreement where the server +// generates an ephemeral EC public/private key pair and signs it. The +// pre-master secret is then calculated using ECDH. The signature may +// either be ECDSA or RSA. +type ecdheKeyAgreement struct { + version uint16 + isRSA bool + params ecdheParameters + + // ckx and preMasterSecret are generated in processServerKeyExchange + // and returned in generateClientKeyExchange. + ckx *clientKeyExchangeMsg + preMasterSecret []byte +} + +func (ka *ecdheKeyAgreement) generateServerKeyExchange(config *Config, cert *Certificate, clientHello *clientHelloMsg, hello *serverHelloMsg) (*serverKeyExchangeMsg, error) { + preferredCurves := config.curvePreferences() + + var curveID CurveID +NextCandidate: + for _, candidate := range preferredCurves { + for _, c := range clientHello.supportedCurves { + if candidate == c { + curveID = c + break NextCandidate + } + } + } + + if curveID == 0 { + return nil, errors.New("tls: no supported elliptic curves offered") + } + if _, ok := curveForCurveID(curveID); curveID != X25519 && !ok { + return nil, errors.New("tls: CurvePreferences includes unsupported curve") + } + + params, err := generateECDHEParameters(config.rand(), curveID) + if err != nil { + return nil, err + } + ka.params = params + + // See RFC 4492, Section 5.4. + ecdhePublic := params.PublicKey() + serverECDHParams := make([]byte, 1+2+1+len(ecdhePublic)) + serverECDHParams[0] = 3 // named curve + serverECDHParams[1] = byte(curveID >> 8) + serverECDHParams[2] = byte(curveID) + serverECDHParams[3] = byte(len(ecdhePublic)) + copy(serverECDHParams[4:], ecdhePublic) + + priv, ok := cert.PrivateKey.(crypto.Signer) + if !ok { + return nil, errors.New("tls: certificate private key does not implement crypto.Signer") + } + + signatureAlgorithm, sigType, hashFunc, err := pickSignatureAlgorithm(priv.Public(), clientHello.supportedSignatureAlgorithms, supportedSignatureAlgorithmsTLS12, ka.version) + if err != nil { + return nil, err + } + if (sigType == signaturePKCS1v15 || sigType == signatureRSAPSS) != ka.isRSA { + return nil, errors.New("tls: certificate cannot be used with the selected cipher suite") + } + + digest, err := hashForServerKeyExchange(sigType, hashFunc, ka.version, clientHello.random, hello.random, serverECDHParams) + if err != nil { + return nil, err + } + + signOpts := crypto.SignerOpts(hashFunc) + if sigType == signatureRSAPSS { + signOpts = &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash, Hash: hashFunc} + } + sig, err := priv.Sign(config.rand(), digest, signOpts) + if err != nil { + return nil, errors.New("tls: failed to sign ECDHE parameters: " + err.Error()) + } + + skx := new(serverKeyExchangeMsg) + sigAndHashLen := 0 + if ka.version >= VersionTLS12 { + sigAndHashLen = 2 + } + skx.key = make([]byte, len(serverECDHParams)+sigAndHashLen+2+len(sig)) + copy(skx.key, serverECDHParams) + k := skx.key[len(serverECDHParams):] + if ka.version >= VersionTLS12 { + k[0] = byte(signatureAlgorithm >> 8) + k[1] = byte(signatureAlgorithm) + k = k[2:] + } + k[0] = byte(len(sig) >> 8) + k[1] = byte(len(sig)) + copy(k[2:], sig) + + return skx, nil +} + +func (ka *ecdheKeyAgreement) processClientKeyExchange(config *Config, cert *Certificate, ckx *clientKeyExchangeMsg, version uint16) ([]byte, error) { + if len(ckx.ciphertext) == 0 || int(ckx.ciphertext[0]) != len(ckx.ciphertext)-1 { + return nil, errClientKeyExchange + } + + preMasterSecret := ka.params.SharedKey(ckx.ciphertext[1:]) + if preMasterSecret == nil { + return nil, errClientKeyExchange + } + + return preMasterSecret, nil +} + +func (ka *ecdheKeyAgreement) processServerKeyExchange(config *Config, clientHello *clientHelloMsg, serverHello *serverHelloMsg, cert *x509.Certificate, skx *serverKeyExchangeMsg) error { + if len(skx.key) < 4 { + return errServerKeyExchange + } + if skx.key[0] != 3 { // named curve + return errors.New("tls: server selected unsupported curve") + } + curveID := CurveID(skx.key[1])<<8 | CurveID(skx.key[2]) + + publicLen := int(skx.key[3]) + if publicLen+4 > len(skx.key) { + return errServerKeyExchange + } + serverECDHParams := skx.key[:4+publicLen] + publicKey := serverECDHParams[4:] + + sig := skx.key[4+publicLen:] + if len(sig) < 2 { + return errServerKeyExchange + } + + if _, ok := curveForCurveID(curveID); curveID != X25519 && !ok { + return errors.New("tls: server selected unsupported curve") + } + + params, err := generateECDHEParameters(config.rand(), curveID) + if err != nil { + return err + } + ka.params = params + + ka.preMasterSecret = params.SharedKey(publicKey) + if ka.preMasterSecret == nil { + return errServerKeyExchange + } + + ourPublicKey := params.PublicKey() + ka.ckx = new(clientKeyExchangeMsg) + ka.ckx.ciphertext = make([]byte, 1+len(ourPublicKey)) + ka.ckx.ciphertext[0] = byte(len(ourPublicKey)) + copy(ka.ckx.ciphertext[1:], ourPublicKey) + + var signatureAlgorithm SignatureScheme + if ka.version >= VersionTLS12 { + // handle SignatureAndHashAlgorithm + signatureAlgorithm = SignatureScheme(sig[0])<<8 | SignatureScheme(sig[1]) + sig = sig[2:] + if len(sig) < 2 { + return errServerKeyExchange + } + } + _, sigType, hashFunc, err := pickSignatureAlgorithm(cert.PublicKey, []SignatureScheme{signatureAlgorithm}, clientHello.supportedSignatureAlgorithms, ka.version) + if err != nil { + return err + } + if (sigType == signaturePKCS1v15 || sigType == signatureRSAPSS) != ka.isRSA { + return errServerKeyExchange + } + + sigLen := int(sig[0])<<8 | int(sig[1]) + if sigLen+2 != len(sig) { + return errServerKeyExchange + } + sig = sig[2:] + + digest, err := hashForServerKeyExchange(sigType, hashFunc, ka.version, clientHello.random, serverHello.random, serverECDHParams) + if err != nil { + return err + } + return verifyHandshakeSignature(sigType, cert.PublicKey, hashFunc, digest, sig) +} + +func (ka *ecdheKeyAgreement) generateClientKeyExchange(config *Config, clientHello *clientHelloMsg, cert *x509.Certificate) ([]byte, *clientKeyExchangeMsg, error) { + if ka.ckx == nil { + return nil, nil, errors.New("tls: missing ServerKeyExchange message") + } + + return ka.preMasterSecret, ka.ckx, nil +} diff --git a/vendor/github.com/marten-seemann/qtls/key_schedule.go b/vendor/github.com/marten-seemann/qtls/key_schedule.go new file mode 100644 index 00000000..24bae2e6 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/key_schedule.go @@ -0,0 +1,216 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "crypto" + "crypto/elliptic" + "crypto/hmac" + "errors" + "hash" + "io" + "math/big" + + "golang.org/x/crypto/cryptobyte" + "golang.org/x/crypto/curve25519" + "golang.org/x/crypto/hkdf" +) + +// This file contains the functions necessary to compute the TLS 1.3 key +// schedule. See RFC 8446, Section 7. + +const ( + resumptionBinderLabel = "res binder" + clientHandshakeTrafficLabel = "c hs traffic" + serverHandshakeTrafficLabel = "s hs traffic" + clientApplicationTrafficLabel = "c ap traffic" + serverApplicationTrafficLabel = "s ap traffic" + exporterLabel = "exp master" + resumptionLabel = "res master" + trafficUpdateLabel = "traffic upd" +) + +// HkdfExtract generates a pseudorandom key for use with Expand from an input secret and an optional independent salt. +func HkdfExtract(hash crypto.Hash, newSecret, currentSecret []byte) []byte { + if newSecret == nil { + newSecret = make([]byte, hash.Size()) + } + return hkdf.Extract(hash.New, newSecret, currentSecret) +} + +// HkdfExpandLabel HKDF expands a label +func HkdfExpandLabel(hash crypto.Hash, secret, hashValue []byte, label string, L int) []byte { + return hkdfExpandLabel(hash, secret, hashValue, label, L) +} + +func hkdfExpandLabel(hash crypto.Hash, secret, context []byte, label string, length int) []byte { + var hkdfLabel cryptobyte.Builder + hkdfLabel.AddUint16(uint16(length)) + hkdfLabel.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte("tls13 ")) + b.AddBytes([]byte(label)) + }) + hkdfLabel.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(context) + }) + out := make([]byte, length) + n, err := hkdf.Expand(hash.New, secret, hkdfLabel.BytesOrPanic()).Read(out) + if err != nil || n != length { + panic("tls: HKDF-Expand-Label invocation failed unexpectedly") + } + return out +} + +// expandLabel implements HKDF-Expand-Label from RFC 8446, Section 7.1. +func (c *cipherSuiteTLS13) expandLabel(secret []byte, label string, context []byte, length int) []byte { + return hkdfExpandLabel(c.hash, secret, context, label, length) +} + +// deriveSecret implements Derive-Secret from RFC 8446, Section 7.1. +func (c *cipherSuiteTLS13) deriveSecret(secret []byte, label string, transcript hash.Hash) []byte { + if transcript == nil { + transcript = c.hash.New() + } + return c.expandLabel(secret, label, transcript.Sum(nil), c.hash.Size()) +} + +// extract implements HKDF-Extract with the cipher suite hash. +func (c *cipherSuiteTLS13) extract(newSecret, currentSecret []byte) []byte { + return HkdfExtract(c.hash, newSecret, currentSecret) +} + +// nextTrafficSecret generates the next traffic secret, given the current one, +// according to RFC 8446, Section 7.2. +func (c *cipherSuiteTLS13) nextTrafficSecret(trafficSecret []byte) []byte { + return c.expandLabel(trafficSecret, trafficUpdateLabel, nil, c.hash.Size()) +} + +// trafficKey generates traffic keys according to RFC 8446, Section 7.3. +func (c *cipherSuiteTLS13) trafficKey(trafficSecret []byte) (key, iv []byte) { + key = c.expandLabel(trafficSecret, "key", nil, c.keyLen) + iv = c.expandLabel(trafficSecret, "iv", nil, aeadNonceLength) + return +} + +// finishedHash generates the Finished verify_data or PskBinderEntry according +// to RFC 8446, Section 4.4.4. See sections 4.4 and 4.2.11.2 for the baseKey +// selection. +func (c *cipherSuiteTLS13) finishedHash(baseKey []byte, transcript hash.Hash) []byte { + finishedKey := c.expandLabel(baseKey, "finished", nil, c.hash.Size()) + verifyData := hmac.New(c.hash.New, finishedKey) + verifyData.Write(transcript.Sum(nil)) + return verifyData.Sum(nil) +} + +// exportKeyingMaterial implements RFC5705 exporters for TLS 1.3 according to +// RFC 8446, Section 7.5. +func (c *cipherSuiteTLS13) exportKeyingMaterial(masterSecret []byte, transcript hash.Hash) func(string, []byte, int) ([]byte, error) { + expMasterSecret := c.deriveSecret(masterSecret, exporterLabel, transcript) + return func(label string, context []byte, length int) ([]byte, error) { + secret := c.deriveSecret(expMasterSecret, label, nil) + h := c.hash.New() + h.Write(context) + return c.expandLabel(secret, "exporter", h.Sum(nil), length), nil + } +} + +// ecdheParameters implements Diffie-Hellman with either NIST curves or X25519, +// according to RFC 8446, Section 4.2.8.2. +type ecdheParameters interface { + CurveID() CurveID + PublicKey() []byte + SharedKey(peerPublicKey []byte) []byte +} + +func generateECDHEParameters(rand io.Reader, curveID CurveID) (ecdheParameters, error) { + if curveID == X25519 { + p := &x25519Parameters{} + if _, err := io.ReadFull(rand, p.privateKey[:]); err != nil { + return nil, err + } + curve25519.ScalarBaseMult(&p.publicKey, &p.privateKey) + return p, nil + } + + curve, ok := curveForCurveID(curveID) + if !ok { + return nil, errors.New("tls: internal error: unsupported curve") + } + + p := &nistParameters{curveID: curveID} + var err error + p.privateKey, p.x, p.y, err = elliptic.GenerateKey(curve, rand) + if err != nil { + return nil, err + } + return p, nil +} + +func curveForCurveID(id CurveID) (elliptic.Curve, bool) { + switch id { + case CurveP256: + return elliptic.P256(), true + case CurveP384: + return elliptic.P384(), true + case CurveP521: + return elliptic.P521(), true + default: + return nil, false + } +} + +type nistParameters struct { + privateKey []byte + x, y *big.Int // public key + curveID CurveID +} + +func (p *nistParameters) CurveID() CurveID { + return p.curveID +} + +func (p *nistParameters) PublicKey() []byte { + curve, _ := curveForCurveID(p.curveID) + return elliptic.Marshal(curve, p.x, p.y) +} + +func (p *nistParameters) SharedKey(peerPublicKey []byte) []byte { + curve, _ := curveForCurveID(p.curveID) + // Unmarshal also checks whether the given point is on the curve. + x, y := elliptic.Unmarshal(curve, peerPublicKey) + if x == nil { + return nil + } + + xShared, _ := curve.ScalarMult(x, y, p.privateKey) + sharedKey := make([]byte, (curve.Params().BitSize+7)>>3) + xBytes := xShared.Bytes() + copy(sharedKey[len(sharedKey)-len(xBytes):], xBytes) + + return sharedKey +} + +type x25519Parameters struct { + privateKey [32]byte + publicKey [32]byte +} + +func (p *x25519Parameters) CurveID() CurveID { + return X25519 +} + +func (p *x25519Parameters) PublicKey() []byte { + return p.publicKey[:] +} + +func (p *x25519Parameters) SharedKey(peerPublicKey []byte) []byte { + if len(peerPublicKey) != 32 { + return nil + } + var theirPublicKey, sharedKey [32]byte + copy(theirPublicKey[:], peerPublicKey) + curve25519.ScalarMult(&sharedKey, &p.privateKey, &theirPublicKey) + return sharedKey[:] +} diff --git a/vendor/github.com/marten-seemann/qtls/prf.go b/vendor/github.com/marten-seemann/qtls/prf.go new file mode 100644 index 00000000..a973d6ad --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/prf.go @@ -0,0 +1,385 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "crypto" + "crypto/hmac" + "crypto/md5" + "crypto/sha1" + "crypto/sha256" + "crypto/sha512" + "errors" + "fmt" + "hash" +) + +// Split a premaster secret in two as specified in RFC 4346, Section 5. +func splitPreMasterSecret(secret []byte) (s1, s2 []byte) { + s1 = secret[0 : (len(secret)+1)/2] + s2 = secret[len(secret)/2:] + return +} + +// pHash implements the P_hash function, as defined in RFC 4346, Section 5. +func pHash(result, secret, seed []byte, hash func() hash.Hash) { + h := hmac.New(hash, secret) + h.Write(seed) + a := h.Sum(nil) + + j := 0 + for j < len(result) { + h.Reset() + h.Write(a) + h.Write(seed) + b := h.Sum(nil) + copy(result[j:], b) + j += len(b) + + h.Reset() + h.Write(a) + a = h.Sum(nil) + } +} + +// prf10 implements the TLS 1.0 pseudo-random function, as defined in RFC 2246, Section 5. +func prf10(result, secret, label, seed []byte) { + hashSHA1 := sha1.New + hashMD5 := md5.New + + labelAndSeed := make([]byte, len(label)+len(seed)) + copy(labelAndSeed, label) + copy(labelAndSeed[len(label):], seed) + + s1, s2 := splitPreMasterSecret(secret) + pHash(result, s1, labelAndSeed, hashMD5) + result2 := make([]byte, len(result)) + pHash(result2, s2, labelAndSeed, hashSHA1) + + for i, b := range result2 { + result[i] ^= b + } +} + +// prf12 implements the TLS 1.2 pseudo-random function, as defined in RFC 5246, Section 5. +func prf12(hashFunc func() hash.Hash) func(result, secret, label, seed []byte) { + return func(result, secret, label, seed []byte) { + labelAndSeed := make([]byte, len(label)+len(seed)) + copy(labelAndSeed, label) + copy(labelAndSeed[len(label):], seed) + + pHash(result, secret, labelAndSeed, hashFunc) + } +} + +// prf30 implements the SSL 3.0 pseudo-random function, as defined in +// www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt section 6. +func prf30(result, secret, label, seed []byte) { + hashSHA1 := sha1.New() + hashMD5 := md5.New() + + done := 0 + i := 0 + // RFC 5246 section 6.3 says that the largest PRF output needed is 128 + // bytes. Since no more ciphersuites will be added to SSLv3, this will + // remain true. Each iteration gives us 16 bytes so 10 iterations will + // be sufficient. + var b [11]byte + for done < len(result) { + for j := 0; j <= i; j++ { + b[j] = 'A' + byte(i) + } + + hashSHA1.Reset() + hashSHA1.Write(b[:i+1]) + hashSHA1.Write(secret) + hashSHA1.Write(seed) + digest := hashSHA1.Sum(nil) + + hashMD5.Reset() + hashMD5.Write(secret) + hashMD5.Write(digest) + + done += copy(result[done:], hashMD5.Sum(nil)) + i++ + } +} + +const ( + masterSecretLength = 48 // Length of a master secret in TLS 1.1. + finishedVerifyLength = 12 // Length of verify_data in a Finished message. +) + +var masterSecretLabel = []byte("master secret") +var keyExpansionLabel = []byte("key expansion") +var clientFinishedLabel = []byte("client finished") +var serverFinishedLabel = []byte("server finished") + +func prfAndHashForVersion(version uint16, suite *cipherSuite) (func(result, secret, label, seed []byte), crypto.Hash) { + switch version { + case VersionSSL30: + return prf30, crypto.Hash(0) + case VersionTLS10, VersionTLS11: + return prf10, crypto.Hash(0) + case VersionTLS12: + if suite.flags&suiteSHA384 != 0 { + return prf12(sha512.New384), crypto.SHA384 + } + return prf12(sha256.New), crypto.SHA256 + default: + panic("unknown version") + } +} + +func prfForVersion(version uint16, suite *cipherSuite) func(result, secret, label, seed []byte) { + prf, _ := prfAndHashForVersion(version, suite) + return prf +} + +// masterFromPreMasterSecret generates the master secret from the pre-master +// secret. See RFC 5246, Section 8.1. +func masterFromPreMasterSecret(version uint16, suite *cipherSuite, preMasterSecret, clientRandom, serverRandom []byte) []byte { + seed := make([]byte, 0, len(clientRandom)+len(serverRandom)) + seed = append(seed, clientRandom...) + seed = append(seed, serverRandom...) + + masterSecret := make([]byte, masterSecretLength) + prfForVersion(version, suite)(masterSecret, preMasterSecret, masterSecretLabel, seed) + return masterSecret +} + +// keysFromMasterSecret generates the connection keys from the master +// secret, given the lengths of the MAC key, cipher key and IV, as defined in +// RFC 2246, Section 6.3. +func keysFromMasterSecret(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte, macLen, keyLen, ivLen int) (clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV []byte) { + seed := make([]byte, 0, len(serverRandom)+len(clientRandom)) + seed = append(seed, serverRandom...) + seed = append(seed, clientRandom...) + + n := 2*macLen + 2*keyLen + 2*ivLen + keyMaterial := make([]byte, n) + prfForVersion(version, suite)(keyMaterial, masterSecret, keyExpansionLabel, seed) + clientMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + serverMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + clientKey = keyMaterial[:keyLen] + keyMaterial = keyMaterial[keyLen:] + serverKey = keyMaterial[:keyLen] + keyMaterial = keyMaterial[keyLen:] + clientIV = keyMaterial[:ivLen] + keyMaterial = keyMaterial[ivLen:] + serverIV = keyMaterial[:ivLen] + return +} + +// hashFromSignatureScheme returns the corresponding crypto.Hash for a given +// hash from a TLS SignatureScheme. +func hashFromSignatureScheme(signatureAlgorithm SignatureScheme) (crypto.Hash, error) { + switch signatureAlgorithm { + case PKCS1WithSHA1, ECDSAWithSHA1: + return crypto.SHA1, nil + case PKCS1WithSHA256, PSSWithSHA256, ECDSAWithP256AndSHA256: + return crypto.SHA256, nil + case PKCS1WithSHA384, PSSWithSHA384, ECDSAWithP384AndSHA384: + return crypto.SHA384, nil + case PKCS1WithSHA512, PSSWithSHA512, ECDSAWithP521AndSHA512: + return crypto.SHA512, nil + default: + return 0, fmt.Errorf("tls: unsupported signature algorithm: %#04x", signatureAlgorithm) + } +} + +func newFinishedHash(version uint16, cipherSuite *cipherSuite) finishedHash { + var buffer []byte + if version == VersionSSL30 || version >= VersionTLS12 { + buffer = []byte{} + } + + prf, hash := prfAndHashForVersion(version, cipherSuite) + if hash != 0 { + return finishedHash{hash.New(), hash.New(), nil, nil, buffer, version, prf} + } + + return finishedHash{sha1.New(), sha1.New(), md5.New(), md5.New(), buffer, version, prf} +} + +// A finishedHash calculates the hash of a set of handshake messages suitable +// for including in a Finished message. +type finishedHash struct { + client hash.Hash + server hash.Hash + + // Prior to TLS 1.2, an additional MD5 hash is required. + clientMD5 hash.Hash + serverMD5 hash.Hash + + // In TLS 1.2, a full buffer is sadly required. + buffer []byte + + version uint16 + prf func(result, secret, label, seed []byte) +} + +func (h *finishedHash) Write(msg []byte) (n int, err error) { + h.client.Write(msg) + h.server.Write(msg) + + if h.version < VersionTLS12 { + h.clientMD5.Write(msg) + h.serverMD5.Write(msg) + } + + if h.buffer != nil { + h.buffer = append(h.buffer, msg...) + } + + return len(msg), nil +} + +func (h finishedHash) Sum() []byte { + if h.version >= VersionTLS12 { + return h.client.Sum(nil) + } + + out := make([]byte, 0, md5.Size+sha1.Size) + out = h.clientMD5.Sum(out) + return h.client.Sum(out) +} + +// finishedSum30 calculates the contents of the verify_data member of a SSLv3 +// Finished message given the MD5 and SHA1 hashes of a set of handshake +// messages. +func finishedSum30(md5, sha1 hash.Hash, masterSecret []byte, magic []byte) []byte { + md5.Write(magic) + md5.Write(masterSecret) + md5.Write(ssl30Pad1[:]) + md5Digest := md5.Sum(nil) + + md5.Reset() + md5.Write(masterSecret) + md5.Write(ssl30Pad2[:]) + md5.Write(md5Digest) + md5Digest = md5.Sum(nil) + + sha1.Write(magic) + sha1.Write(masterSecret) + sha1.Write(ssl30Pad1[:40]) + sha1Digest := sha1.Sum(nil) + + sha1.Reset() + sha1.Write(masterSecret) + sha1.Write(ssl30Pad2[:40]) + sha1.Write(sha1Digest) + sha1Digest = sha1.Sum(nil) + + ret := make([]byte, len(md5Digest)+len(sha1Digest)) + copy(ret, md5Digest) + copy(ret[len(md5Digest):], sha1Digest) + return ret +} + +var ssl3ClientFinishedMagic = [4]byte{0x43, 0x4c, 0x4e, 0x54} +var ssl3ServerFinishedMagic = [4]byte{0x53, 0x52, 0x56, 0x52} + +// clientSum returns the contents of the verify_data member of a client's +// Finished message. +func (h finishedHash) clientSum(masterSecret []byte) []byte { + if h.version == VersionSSL30 { + return finishedSum30(h.clientMD5, h.client, masterSecret, ssl3ClientFinishedMagic[:]) + } + + out := make([]byte, finishedVerifyLength) + h.prf(out, masterSecret, clientFinishedLabel, h.Sum()) + return out +} + +// serverSum returns the contents of the verify_data member of a server's +// Finished message. +func (h finishedHash) serverSum(masterSecret []byte) []byte { + if h.version == VersionSSL30 { + return finishedSum30(h.serverMD5, h.server, masterSecret, ssl3ServerFinishedMagic[:]) + } + + out := make([]byte, finishedVerifyLength) + h.prf(out, masterSecret, serverFinishedLabel, h.Sum()) + return out +} + +// hashForClientCertificate returns a digest over the handshake messages so far, +// suitable for signing by a TLS client certificate. +func (h finishedHash) hashForClientCertificate(sigType uint8, hashAlg crypto.Hash, masterSecret []byte) ([]byte, error) { + if (h.version == VersionSSL30 || h.version >= VersionTLS12) && h.buffer == nil { + panic("a handshake hash for a client-certificate was requested after discarding the handshake buffer") + } + + if h.version == VersionSSL30 { + if sigType != signaturePKCS1v15 { + return nil, errors.New("tls: unsupported signature type for client certificate") + } + + md5Hash := md5.New() + md5Hash.Write(h.buffer) + sha1Hash := sha1.New() + sha1Hash.Write(h.buffer) + return finishedSum30(md5Hash, sha1Hash, masterSecret, nil), nil + } + if h.version >= VersionTLS12 { + hash := hashAlg.New() + hash.Write(h.buffer) + return hash.Sum(nil), nil + } + + if sigType == signatureECDSA { + return h.server.Sum(nil), nil + } + + return h.Sum(), nil +} + +// discardHandshakeBuffer is called when there is no more need to +// buffer the entirety of the handshake messages. +func (h *finishedHash) discardHandshakeBuffer() { + h.buffer = nil +} + +// noExportedKeyingMaterial is used as a value of +// ConnectionState.ekm when renegotation is enabled and thus +// we wish to fail all key-material export requests. +func noExportedKeyingMaterial(label string, context []byte, length int) ([]byte, error) { + return nil, errors.New("crypto/tls: ExportKeyingMaterial is unavailable when renegotiation is enabled") +} + +// ekmFromMasterSecret generates exported keying material as defined in RFC 5705. +func ekmFromMasterSecret(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte) func(string, []byte, int) ([]byte, error) { + return func(label string, context []byte, length int) ([]byte, error) { + switch label { + case "client finished", "server finished", "master secret", "key expansion": + // These values are reserved and may not be used. + return nil, fmt.Errorf("crypto/tls: reserved ExportKeyingMaterial label: %s", label) + } + + seedLen := len(serverRandom) + len(clientRandom) + if context != nil { + seedLen += 2 + len(context) + } + seed := make([]byte, 0, seedLen) + + seed = append(seed, clientRandom...) + seed = append(seed, serverRandom...) + + if context != nil { + if len(context) >= 1<<16 { + return nil, fmt.Errorf("crypto/tls: ExportKeyingMaterial context too long") + } + seed = append(seed, byte(len(context)>>8), byte(len(context))) + seed = append(seed, context...) + } + + keyMaterial := make([]byte, length) + prfForVersion(version, suite)(keyMaterial, masterSecret, []byte(label), seed) + return keyMaterial, nil + } +} diff --git a/vendor/github.com/marten-seemann/qtls/ticket.go b/vendor/github.com/marten-seemann/qtls/ticket.go new file mode 100644 index 00000000..989c9787 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/ticket.go @@ -0,0 +1,215 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package qtls + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/hmac" + "crypto/sha256" + "crypto/subtle" + "errors" + "io" + + "golang.org/x/crypto/cryptobyte" +) + +// sessionState contains the information that is serialized into a session +// ticket in order to later resume a connection. +type sessionState struct { + vers uint16 + cipherSuite uint16 + masterSecret []byte + certificates [][]byte + // usedOldKey is true if the ticket from which this session came from + // was encrypted with an older key and thus should be refreshed. + usedOldKey bool +} + +func (s *sessionState) marshal() []byte { + length := 2 + 2 + 2 + len(s.masterSecret) + 2 + for _, cert := range s.certificates { + length += 4 + len(cert) + } + + ret := make([]byte, length) + x := ret + x[0] = byte(s.vers >> 8) + x[1] = byte(s.vers) + x[2] = byte(s.cipherSuite >> 8) + x[3] = byte(s.cipherSuite) + x[4] = byte(len(s.masterSecret) >> 8) + x[5] = byte(len(s.masterSecret)) + x = x[6:] + copy(x, s.masterSecret) + x = x[len(s.masterSecret):] + + x[0] = byte(len(s.certificates) >> 8) + x[1] = byte(len(s.certificates)) + x = x[2:] + + for _, cert := range s.certificates { + x[0] = byte(len(cert) >> 24) + x[1] = byte(len(cert) >> 16) + x[2] = byte(len(cert) >> 8) + x[3] = byte(len(cert)) + copy(x[4:], cert) + x = x[4+len(cert):] + } + + return ret +} + +func (s *sessionState) unmarshal(data []byte) bool { + if len(data) < 8 { + return false + } + + s.vers = uint16(data[0])<<8 | uint16(data[1]) + s.cipherSuite = uint16(data[2])<<8 | uint16(data[3]) + masterSecretLen := int(data[4])<<8 | int(data[5]) + data = data[6:] + if len(data) < masterSecretLen { + return false + } + + s.masterSecret = data[:masterSecretLen] + data = data[masterSecretLen:] + + if len(data) < 2 { + return false + } + + numCerts := int(data[0])<<8 | int(data[1]) + data = data[2:] + + s.certificates = make([][]byte, numCerts) + for i := range s.certificates { + if len(data) < 4 { + return false + } + certLen := int(data[0])<<24 | int(data[1])<<16 | int(data[2])<<8 | int(data[3]) + data = data[4:] + if certLen < 0 { + return false + } + if len(data) < certLen { + return false + } + s.certificates[i] = data[:certLen] + data = data[certLen:] + } + + return len(data) == 0 +} + +// sessionStateTLS13 is the content of a TLS 1.3 session ticket. Its first +// version (revision = 0) doesn't carry any of the information needed for 0-RTT +// validation and the nonce is always empty. +type sessionStateTLS13 struct { + // uint8 version = 0x0304; + // uint8 revision = 0; + cipherSuite uint16 + createdAt uint64 + resumptionSecret []byte // opaque resumption_master_secret<1..2^8-1>; + certificate Certificate // CertificateEntry certificate_list<0..2^24-1>; +} + +func (m *sessionStateTLS13) marshal() []byte { + var b cryptobyte.Builder + b.AddUint16(VersionTLS13) + b.AddUint8(0) // revision + b.AddUint16(m.cipherSuite) + addUint64(&b, m.createdAt) + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.resumptionSecret) + }) + marshalCertificate(&b, m.certificate) + return b.BytesOrPanic() +} + +func (m *sessionStateTLS13) unmarshal(data []byte) bool { + *m = sessionStateTLS13{} + s := cryptobyte.String(data) + var version uint16 + var revision uint8 + return s.ReadUint16(&version) && + version == VersionTLS13 && + s.ReadUint8(&revision) && + revision == 0 && + s.ReadUint16(&m.cipherSuite) && + readUint64(&s, &m.createdAt) && + readUint8LengthPrefixed(&s, &m.resumptionSecret) && + len(m.resumptionSecret) != 0 && + unmarshalCertificate(&s, &m.certificate) && + s.Empty() +} + +func (c *Conn) encryptTicket(state []byte) ([]byte, error) { + encrypted := make([]byte, ticketKeyNameLen+aes.BlockSize+len(state)+sha256.Size) + keyName := encrypted[:ticketKeyNameLen] + iv := encrypted[ticketKeyNameLen : ticketKeyNameLen+aes.BlockSize] + macBytes := encrypted[len(encrypted)-sha256.Size:] + + if _, err := io.ReadFull(c.config.rand(), iv); err != nil { + return nil, err + } + key := c.config.ticketKeys()[0] + copy(keyName, key.keyName[:]) + block, err := aes.NewCipher(key.aesKey[:]) + if err != nil { + return nil, errors.New("tls: failed to create cipher while encrypting ticket: " + err.Error()) + } + cipher.NewCTR(block, iv).XORKeyStream(encrypted[ticketKeyNameLen+aes.BlockSize:], state) + + mac := hmac.New(sha256.New, key.hmacKey[:]) + mac.Write(encrypted[:len(encrypted)-sha256.Size]) + mac.Sum(macBytes[:0]) + + return encrypted, nil +} + +func (c *Conn) decryptTicket(encrypted []byte) (plaintext []byte, usedOldKey bool) { + if len(encrypted) < ticketKeyNameLen+aes.BlockSize+sha256.Size { + return nil, false + } + + keyName := encrypted[:ticketKeyNameLen] + iv := encrypted[ticketKeyNameLen : ticketKeyNameLen+aes.BlockSize] + macBytes := encrypted[len(encrypted)-sha256.Size:] + ciphertext := encrypted[ticketKeyNameLen+aes.BlockSize : len(encrypted)-sha256.Size] + + keys := c.config.ticketKeys() + keyIndex := -1 + for i, candidateKey := range keys { + if bytes.Equal(keyName, candidateKey.keyName[:]) { + keyIndex = i + break + } + } + + if keyIndex == -1 { + return nil, false + } + key := &keys[keyIndex] + + mac := hmac.New(sha256.New, key.hmacKey[:]) + mac.Write(encrypted[:len(encrypted)-sha256.Size]) + expected := mac.Sum(nil) + + if subtle.ConstantTimeCompare(macBytes, expected) != 1 { + return nil, false + } + + block, err := aes.NewCipher(key.aesKey[:]) + if err != nil { + return nil, false + } + plaintext = make([]byte, len(ciphertext)) + cipher.NewCTR(block, iv).XORKeyStream(plaintext, ciphertext) + + return plaintext, keyIndex > 0 +} diff --git a/vendor/github.com/marten-seemann/qtls/tls.go b/vendor/github.com/marten-seemann/qtls/tls.go new file mode 100644 index 00000000..818997d3 --- /dev/null +++ b/vendor/github.com/marten-seemann/qtls/tls.go @@ -0,0 +1,306 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// package qtls partially implements TLS 1.2, as specified in RFC 5246, +// and TLS 1.3, as specified in RFC 8446. +// +// TLS 1.3 is available only on an opt-in basis in Go 1.12. To enable +// it, set the GODEBUG environment variable (comma-separated key=value +// options) such that it includes "tls13=1". To enable it from within +// the process, set the environment variable before any use of TLS: +// +// func init() { +// os.Setenv("GODEBUG", os.Getenv("GODEBUG")+",tls13=1") +// } +package qtls + +// BUG(agl): The crypto/tls package only implements some countermeasures +// against Lucky13 attacks on CBC-mode encryption, and only on SHA1 +// variants. See http://www.isg.rhul.ac.uk/tls/TLStiming.pdf and +// https://www.imperialviolet.org/2013/02/04/luckythirteen.html. + +import ( + "crypto" + "crypto/ecdsa" + "crypto/rsa" + "crypto/x509" + "encoding/pem" + "errors" + "fmt" + "io/ioutil" + "net" + "strings" + "time" +) + +// Server returns a new TLS server side connection +// using conn as the underlying transport. +// The configuration config must be non-nil and must include +// at least one certificate or else set GetCertificate. +func Server(conn net.Conn, config *Config) *Conn { + return &Conn{conn: conn, config: config} +} + +// Client returns a new TLS client side connection +// using conn as the underlying transport. +// The config cannot be nil: users must set either ServerName or +// InsecureSkipVerify in the config. +func Client(conn net.Conn, config *Config) *Conn { + return &Conn{conn: conn, config: config, isClient: true} +} + +// A listener implements a network listener (net.Listener) for TLS connections. +type listener struct { + net.Listener + config *Config +} + +// Accept waits for and returns the next incoming TLS connection. +// The returned connection is of type *Conn. +func (l *listener) Accept() (net.Conn, error) { + c, err := l.Listener.Accept() + if err != nil { + return nil, err + } + return Server(c, l.config), nil +} + +// NewListener creates a Listener which accepts connections from an inner +// Listener and wraps each connection with Server. +// The configuration config must be non-nil and must include +// at least one certificate or else set GetCertificate. +func NewListener(inner net.Listener, config *Config) net.Listener { + l := new(listener) + l.Listener = inner + l.config = config + return l +} + +// Listen creates a TLS listener accepting connections on the +// given network address using net.Listen. +// The configuration config must be non-nil and must include +// at least one certificate or else set GetCertificate. +func Listen(network, laddr string, config *Config) (net.Listener, error) { + if config == nil || (len(config.Certificates) == 0 && config.GetCertificate == nil) { + return nil, errors.New("tls: neither Certificates nor GetCertificate set in Config") + } + l, err := net.Listen(network, laddr) + if err != nil { + return nil, err + } + return NewListener(l, config), nil +} + +type timeoutError struct{} + +func (timeoutError) Error() string { return "tls: DialWithDialer timed out" } +func (timeoutError) Timeout() bool { return true } +func (timeoutError) Temporary() bool { return true } + +// DialWithDialer connects to the given network address using dialer.Dial and +// then initiates a TLS handshake, returning the resulting TLS connection. Any +// timeout or deadline given in the dialer apply to connection and TLS +// handshake as a whole. +// +// DialWithDialer interprets a nil configuration as equivalent to the zero +// configuration; see the documentation of Config for the defaults. +func DialWithDialer(dialer *net.Dialer, network, addr string, config *Config) (*Conn, error) { + // We want the Timeout and Deadline values from dialer to cover the + // whole process: TCP connection and TLS handshake. This means that we + // also need to start our own timers now. + timeout := dialer.Timeout + + if !dialer.Deadline.IsZero() { + deadlineTimeout := time.Until(dialer.Deadline) + if timeout == 0 || deadlineTimeout < timeout { + timeout = deadlineTimeout + } + } + + var errChannel chan error + + if timeout != 0 { + errChannel = make(chan error, 2) + time.AfterFunc(timeout, func() { + errChannel <- timeoutError{} + }) + } + + rawConn, err := dialer.Dial(network, addr) + if err != nil { + return nil, err + } + + colonPos := strings.LastIndex(addr, ":") + if colonPos == -1 { + colonPos = len(addr) + } + hostname := addr[:colonPos] + + if config == nil { + config = defaultConfig() + } + // If no ServerName is set, infer the ServerName + // from the hostname we're connecting to. + if config.ServerName == "" { + // Make a copy to avoid polluting argument or default. + c := config.Clone() + c.ServerName = hostname + config = c + } + + conn := Client(rawConn, config) + + if timeout == 0 { + err = conn.Handshake() + } else { + go func() { + errChannel <- conn.Handshake() + }() + + err = <-errChannel + } + + if err != nil { + rawConn.Close() + return nil, err + } + + return conn, nil +} + +// Dial connects to the given network address using net.Dial +// and then initiates a TLS handshake, returning the resulting +// TLS connection. +// Dial interprets a nil configuration as equivalent to +// the zero configuration; see the documentation of Config +// for the defaults. +func Dial(network, addr string, config *Config) (*Conn, error) { + return DialWithDialer(new(net.Dialer), network, addr, config) +} + +// LoadX509KeyPair reads and parses a public/private key pair from a pair +// of files. The files must contain PEM encoded data. The certificate file +// may contain intermediate certificates following the leaf certificate to +// form a certificate chain. On successful return, Certificate.Leaf will +// be nil because the parsed form of the certificate is not retained. +func LoadX509KeyPair(certFile, keyFile string) (Certificate, error) { + certPEMBlock, err := ioutil.ReadFile(certFile) + if err != nil { + return Certificate{}, err + } + keyPEMBlock, err := ioutil.ReadFile(keyFile) + if err != nil { + return Certificate{}, err + } + return X509KeyPair(certPEMBlock, keyPEMBlock) +} + +// X509KeyPair parses a public/private key pair from a pair of +// PEM encoded data. On successful return, Certificate.Leaf will be nil because +// the parsed form of the certificate is not retained. +func X509KeyPair(certPEMBlock, keyPEMBlock []byte) (Certificate, error) { + fail := func(err error) (Certificate, error) { return Certificate{}, err } + + var cert Certificate + var skippedBlockTypes []string + for { + var certDERBlock *pem.Block + certDERBlock, certPEMBlock = pem.Decode(certPEMBlock) + if certDERBlock == nil { + break + } + if certDERBlock.Type == "CERTIFICATE" { + cert.Certificate = append(cert.Certificate, certDERBlock.Bytes) + } else { + skippedBlockTypes = append(skippedBlockTypes, certDERBlock.Type) + } + } + + if len(cert.Certificate) == 0 { + if len(skippedBlockTypes) == 0 { + return fail(errors.New("tls: failed to find any PEM data in certificate input")) + } + if len(skippedBlockTypes) == 1 && strings.HasSuffix(skippedBlockTypes[0], "PRIVATE KEY") { + return fail(errors.New("tls: failed to find certificate PEM data in certificate input, but did find a private key; PEM inputs may have been switched")) + } + return fail(fmt.Errorf("tls: failed to find \"CERTIFICATE\" PEM block in certificate input after skipping PEM blocks of the following types: %v", skippedBlockTypes)) + } + + skippedBlockTypes = skippedBlockTypes[:0] + var keyDERBlock *pem.Block + for { + keyDERBlock, keyPEMBlock = pem.Decode(keyPEMBlock) + if keyDERBlock == nil { + if len(skippedBlockTypes) == 0 { + return fail(errors.New("tls: failed to find any PEM data in key input")) + } + if len(skippedBlockTypes) == 1 && skippedBlockTypes[0] == "CERTIFICATE" { + return fail(errors.New("tls: found a certificate rather than a key in the PEM for the private key")) + } + return fail(fmt.Errorf("tls: failed to find PEM block with type ending in \"PRIVATE KEY\" in key input after skipping PEM blocks of the following types: %v", skippedBlockTypes)) + } + if keyDERBlock.Type == "PRIVATE KEY" || strings.HasSuffix(keyDERBlock.Type, " PRIVATE KEY") { + break + } + skippedBlockTypes = append(skippedBlockTypes, keyDERBlock.Type) + } + + // We don't need to parse the public key for TLS, but we so do anyway + // to check that it looks sane and matches the private key. + x509Cert, err := x509.ParseCertificate(cert.Certificate[0]) + if err != nil { + return fail(err) + } + + cert.PrivateKey, err = parsePrivateKey(keyDERBlock.Bytes) + if err != nil { + return fail(err) + } + + switch pub := x509Cert.PublicKey.(type) { + case *rsa.PublicKey: + priv, ok := cert.PrivateKey.(*rsa.PrivateKey) + if !ok { + return fail(errors.New("tls: private key type does not match public key type")) + } + if pub.N.Cmp(priv.N) != 0 { + return fail(errors.New("tls: private key does not match public key")) + } + case *ecdsa.PublicKey: + priv, ok := cert.PrivateKey.(*ecdsa.PrivateKey) + if !ok { + return fail(errors.New("tls: private key type does not match public key type")) + } + if pub.X.Cmp(priv.X) != 0 || pub.Y.Cmp(priv.Y) != 0 { + return fail(errors.New("tls: private key does not match public key")) + } + default: + return fail(errors.New("tls: unknown public key algorithm")) + } + + return cert, nil +} + +// Attempt to parse the given private key DER block. OpenSSL 0.9.8 generates +// PKCS#1 private keys by default, while OpenSSL 1.0.0 generates PKCS#8 keys. +// OpenSSL ecparam generates SEC1 EC private keys for ECDSA. We try all three. +func parsePrivateKey(der []byte) (crypto.PrivateKey, error) { + if key, err := x509.ParsePKCS1PrivateKey(der); err == nil { + return key, nil + } + if key, err := x509.ParsePKCS8PrivateKey(der); err == nil { + switch key := key.(type) { + case *rsa.PrivateKey, *ecdsa.PrivateKey: + return key, nil + default: + return nil, errors.New("tls: found unknown private key type in PKCS#8 wrapping") + } + } + if key, err := x509.ParseECPrivateKey(der); err == nil { + return key, nil + } + + return nil, errors.New("tls: failed to parse private key") +} diff --git a/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go b/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go deleted file mode 100644 index 8cbcb909..00000000 --- a/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go +++ /dev/null @@ -1,16 +0,0 @@ -package main - -import ( - "bufio" - "fmt" - - "github.com/mattn/go-colorable" -) - -func main() { - stdOut := bufio.NewWriter(colorable.NewColorableStdout()) - - fmt.Fprint(stdOut, "\x1B[3GMove to 3rd Column\n") - fmt.Fprint(stdOut, "\x1B[1;2HMove to 2nd Column on 1st Line\n") - stdOut.Flush() -} diff --git a/vendor/github.com/mattn/go-colorable/_example/logrus/main.go b/vendor/github.com/mattn/go-colorable/_example/logrus/main.go deleted file mode 100644 index c569164b..00000000 --- a/vendor/github.com/mattn/go-colorable/_example/logrus/main.go +++ /dev/null @@ -1,16 +0,0 @@ -package main - -import ( - "github.com/mattn/go-colorable" - "github.com/sirupsen/logrus" -) - -func main() { - logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true}) - logrus.SetOutput(colorable.NewColorableStdout()) - - logrus.Info("succeeded") - logrus.Warn("not correct") - logrus.Error("something error") - logrus.Fatal("panic") -} diff --git a/vendor/github.com/mattn/go-colorable/_example/title/main.go b/vendor/github.com/mattn/go-colorable/_example/title/main.go deleted file mode 100644 index e208870e..00000000 --- a/vendor/github.com/mattn/go-colorable/_example/title/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "fmt" - "os" - . "github.com/mattn/go-colorable" -) - -func main() { - out := NewColorableStdout() - fmt.Fprint(out, "\x1B]0;TITLE Changed\007(See title and hit any key)") - var c [1]byte - os.Stdin.Read(c[:]) -} diff --git a/vendor/github.com/mattn/go-colorable/cmd/colorable/colorable.go b/vendor/github.com/mattn/go-colorable/cmd/colorable/colorable.go deleted file mode 100644 index 87904774..00000000 --- a/vendor/github.com/mattn/go-colorable/cmd/colorable/colorable.go +++ /dev/null @@ -1,12 +0,0 @@ -package main - -import ( - "io" - "os" - - "github.com/mattn/go-colorable" -) - -func main() { - io.Copy(colorable.NewColorableStdout(), os.Stdin) -} diff --git a/vendor/github.com/mattn/go-colorable/colorable_test.go b/vendor/github.com/mattn/go-colorable/colorable_test.go deleted file mode 100644 index 72446395..00000000 --- a/vendor/github.com/mattn/go-colorable/colorable_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package colorable - -import ( - "bytes" - "os" - "runtime" - "testing" -) - -// checkEncoding checks that colorable is output encoding agnostic as long as -// the encoding is a superset of ASCII. This implies that one byte not part of -// an ANSI sequence must give exactly one byte in output -func checkEncoding(t *testing.T, data []byte) { - // Send non-UTF8 data to colorable - b := bytes.NewBuffer(make([]byte, 0, 10)) - if b.Len() != 0 { - t.FailNow() - } - // TODO move colorable wrapping outside the test - c := NewNonColorable(b) - c.Write(data) - if b.Len() != len(data) { - t.Fatalf("%d bytes expected, got %d", len(data), b.Len()) - } -} - -func TestEncoding(t *testing.T) { - checkEncoding(t, []byte{}) // Empty - checkEncoding(t, []byte(`abc`)) // "abc" - checkEncoding(t, []byte(`é`)) // "é" in UTF-8 - checkEncoding(t, []byte{233}) // 'é' in Latin-1 -} - -func TestNonColorable(t *testing.T) { - var buf bytes.Buffer - want := "hello" - NewNonColorable(&buf).Write([]byte("\x1b[0m" + want + "\x1b[2J")) - got := buf.String() - if got != "hello" { - t.Fatalf("want %q but %q", want, got) - } - - buf.Reset() - NewNonColorable(&buf).Write([]byte("\x1b[")) - got = buf.String() - if got != "" { - t.Fatalf("want %q but %q", "", got) - } -} - -func TestNonColorableNil(t *testing.T) { - paniced := false - func() { - defer func() { - recover() - paniced = true - }() - NewNonColorable(nil) - NewColorable(nil) - }() - - if !paniced { - t.Fatalf("should panic") - } -} - -func TestNonColorableESC(t *testing.T) { - var b bytes.Buffer - c := NewNonColorable(&b) - c.Write([]byte{0x1b}) - if b.Len() > 0 { - t.Fatalf("0 bytes expected, got %d", b.Len()) - } -} - -func TestNonColorableBadESC(t *testing.T) { - var b bytes.Buffer - c := NewNonColorable(&b) - c.Write([]byte{0x1b, 0x1b}) - if b.Len() > 0 { - t.Fatalf("0 bytes expected, got %d", b.Len()) - } -} - -func TestColorable(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skipf("skip this test on windows") - } - _, ok := NewColorableStdout().(*os.File) - if !ok { - t.Fatalf("should os.Stdout on UNIX") - } - _, ok = NewColorableStderr().(*os.File) - if !ok { - t.Fatalf("should os.Stdout on UNIX") - } - _, ok = NewColorable(os.Stdout).(*os.File) - if !ok { - t.Fatalf("should os.Stdout on UNIX") - } -} diff --git a/vendor/github.com/mattn/go-isatty/example_test.go b/vendor/github.com/mattn/go-isatty/example_test.go deleted file mode 100644 index fa8f7e74..00000000 --- a/vendor/github.com/mattn/go-isatty/example_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package isatty_test - -import ( - "fmt" - "os" - - "github.com/mattn/go-isatty" -) - -func Example() { - if isatty.IsTerminal(os.Stdout.Fd()) { - fmt.Println("Is Terminal") - } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) { - fmt.Println("Is Cygwin/MSYS2 Terminal") - } else { - fmt.Println("Is Not Terminal") - } -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_others_test.go b/vendor/github.com/mattn/go-isatty/isatty_others_test.go deleted file mode 100644 index a2091cf4..00000000 --- a/vendor/github.com/mattn/go-isatty/isatty_others_test.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build !windows - -package isatty - -import ( - "os" - "testing" -) - -func TestTerminal(t *testing.T) { - // test for non-panic - IsTerminal(os.Stdout.Fd()) -} - -func TestCygwinPipeName(t *testing.T) { - if IsCygwinTerminal(os.Stdout.Fd()) { - t.Fatal("should be false always") - } -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows_test.go b/vendor/github.com/mattn/go-isatty/isatty_windows_test.go deleted file mode 100644 index 777e8a60..00000000 --- a/vendor/github.com/mattn/go-isatty/isatty_windows_test.go +++ /dev/null @@ -1,35 +0,0 @@ -// +build windows - -package isatty - -import ( - "testing" -) - -func TestCygwinPipeName(t *testing.T) { - tests := []struct { - name string - result bool - }{ - {``, false}, - {`\msys-`, false}, - {`\cygwin-----`, false}, - {`\msys-x-PTY5-pty1-from-master`, false}, - {`\cygwin-x-PTY5-from-master`, false}, - {`\cygwin-x-pty2-from-toaster`, false}, - {`\cygwin--pty2-from-master`, false}, - {`\\cygwin-x-pty2-from-master`, false}, - {`\cygwin-x-pty2-from-master-`, true}, // for the feature - {`\cygwin-e022582115c10879-pty4-from-master`, true}, - {`\msys-e022582115c10879-pty4-to-master`, true}, - {`\cygwin-e022582115c10879-pty4-to-master`, true}, - } - - for _, test := range tests { - want := test.result - got := isCygwinPipeName(test.name) - if want != got { - t.Fatalf("isatty(%q): got %v, want %v:", test.name, got, want) - } - } -} diff --git a/vendor/github.com/miekg/dns/.codecov.yml b/vendor/github.com/miekg/dns/.codecov.yml new file mode 100644 index 00000000..f91e5c1f --- /dev/null +++ b/vendor/github.com/miekg/dns/.codecov.yml @@ -0,0 +1,8 @@ +coverage: + status: + project: + default: + target: 40% + threshold: null + patch: false + changes: false diff --git a/vendor/github.com/miekg/dns/.gitignore b/vendor/github.com/miekg/dns/.gitignore new file mode 100644 index 00000000..776cd950 --- /dev/null +++ b/vendor/github.com/miekg/dns/.gitignore @@ -0,0 +1,4 @@ +*.6 +tags +test.out +a.out diff --git a/vendor/github.com/miekg/dns/.travis.yml b/vendor/github.com/miekg/dns/.travis.yml new file mode 100644 index 00000000..013b5ae4 --- /dev/null +++ b/vendor/github.com/miekg/dns/.travis.yml @@ -0,0 +1,19 @@ +language: go +sudo: false + +go: + - 1.10.x + - 1.11.x + - 1.12.x + - tip + +before_install: + # don't use the miekg/dns when testing forks + - mkdir -p $GOPATH/src/github.com/miekg + - ln -s $TRAVIS_BUILD_DIR $GOPATH/src/github.com/miekg/ || true + +script: + - go test -race -v -bench=. -coverprofile=coverage.txt -covermode=atomic ./... + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/miekg/dns/AUTHORS b/vendor/github.com/miekg/dns/AUTHORS new file mode 100644 index 00000000..19656835 --- /dev/null +++ b/vendor/github.com/miekg/dns/AUTHORS @@ -0,0 +1 @@ +Miek Gieben diff --git a/vendor/github.com/miekg/dns/CONTRIBUTORS b/vendor/github.com/miekg/dns/CONTRIBUTORS new file mode 100644 index 00000000..5903779d --- /dev/null +++ b/vendor/github.com/miekg/dns/CONTRIBUTORS @@ -0,0 +1,10 @@ +Alex A. Skinner +Andrew Tunnell-Jones +Ask Bjørn Hansen +Dave Cheney +Dusty Wilson +Marek Majkowski +Peter van Dijk +Omri Bahumi +Alex Sergeyev +James Hartig diff --git a/vendor/github.com/miekg/dns/COPYRIGHT b/vendor/github.com/miekg/dns/COPYRIGHT new file mode 100644 index 00000000..35702b10 --- /dev/null +++ b/vendor/github.com/miekg/dns/COPYRIGHT @@ -0,0 +1,9 @@ +Copyright 2009 The Go Authors. All rights reserved. Use of this source code +is governed by a BSD-style license that can be found in the LICENSE file. +Extensions of the original work are copyright (c) 2011 Miek Gieben + +Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is +governed by a BSD-style license that can be found in the LICENSE file. + +Copyright 2014 CloudFlare. All rights reserved. Use of this source code is +governed by a BSD-style license that can be found in the LICENSE file. diff --git a/vendor/github.com/miekg/dns/Gopkg.lock b/vendor/github.com/miekg/dns/Gopkg.lock new file mode 100644 index 00000000..68663220 --- /dev/null +++ b/vendor/github.com/miekg/dns/Gopkg.lock @@ -0,0 +1,57 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + branch = "master" + digest = "1:6914c49eed986dfb8dffb33516fa129c49929d4d873f41e073c83c11c372b870" + name = "golang.org/x/crypto" + packages = [ + "ed25519", + "ed25519/internal/edwards25519", + ] + pruneopts = "" + revision = "e3636079e1a4c1f337f212cc5cd2aca108f6c900" + +[[projects]] + branch = "master" + digest = "1:08e41d63f8dac84d83797368b56cf0b339e42d0224e5e56668963c28aec95685" + name = "golang.org/x/net" + packages = [ + "bpf", + "context", + "internal/iana", + "internal/socket", + "ipv4", + "ipv6", + ] + pruneopts = "" + revision = "4dfa2610cdf3b287375bbba5b8f2a14d3b01d8de" + +[[projects]] + branch = "master" + digest = "1:b2ea75de0ccb2db2ac79356407f8a4cd8f798fe15d41b381c00abf3ae8e55ed1" + name = "golang.org/x/sync" + packages = ["errgroup"] + pruneopts = "" + revision = "1d60e4601c6fd243af51cc01ddf169918a5407ca" + +[[projects]] + branch = "master" + digest = "1:149a432fabebb8221a80f77731b1cd63597197ded4f14af606ebe3a0959004ec" + name = "golang.org/x/sys" + packages = ["unix"] + pruneopts = "" + revision = "e4b3c5e9061176387e7cea65e4dc5853801f3fb7" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + input-imports = [ + "golang.org/x/crypto/ed25519", + "golang.org/x/net/ipv4", + "golang.org/x/net/ipv6", + "golang.org/x/sync/errgroup", + "golang.org/x/sys/unix", + ] + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/vendor/github.com/miekg/dns/Gopkg.toml b/vendor/github.com/miekg/dns/Gopkg.toml new file mode 100644 index 00000000..85e6ff31 --- /dev/null +++ b/vendor/github.com/miekg/dns/Gopkg.toml @@ -0,0 +1,38 @@ + +# Gopkg.toml example +# +# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" + + +[[constraint]] + branch = "master" + name = "golang.org/x/crypto" + +[[constraint]] + branch = "master" + name = "golang.org/x/net" + +[[constraint]] + branch = "master" + name = "golang.org/x/sys" + +[[constraint]] + branch = "master" + name = "golang.org/x/sync" diff --git a/vendor/github.com/miekg/dns/LICENSE b/vendor/github.com/miekg/dns/LICENSE new file mode 100644 index 00000000..5763fa7f --- /dev/null +++ b/vendor/github.com/miekg/dns/LICENSE @@ -0,0 +1,32 @@ +Extensions of the original work are copyright (c) 2011 Miek Gieben + +As this is fork of the official Go code the same license applies: + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/github.com/miekg/dns/Makefile.fuzz b/vendor/github.com/miekg/dns/Makefile.fuzz new file mode 100644 index 00000000..dc158c4a --- /dev/null +++ b/vendor/github.com/miekg/dns/Makefile.fuzz @@ -0,0 +1,33 @@ +# Makefile for fuzzing +# +# Use go-fuzz and needs the tools installed. +# See https://blog.cloudflare.com/dns-parser-meet-go-fuzzer/ +# +# Installing go-fuzz: +# $ make -f Makefile.fuzz get +# Installs: +# * github.com/dvyukov/go-fuzz/go-fuzz +# * get github.com/dvyukov/go-fuzz/go-fuzz-build + +all: build + +.PHONY: build +build: + go-fuzz-build -tags fuzz github.com/miekg/dns + +.PHONY: build-newrr +build-newrr: + go-fuzz-build -func FuzzNewRR -tags fuzz github.com/miekg/dns + +.PHONY: fuzz +fuzz: + go-fuzz -bin=dns-fuzz.zip -workdir=fuzz + +.PHONY: get +get: + go get github.com/dvyukov/go-fuzz/go-fuzz + go get github.com/dvyukov/go-fuzz/go-fuzz-build + +.PHONY: clean +clean: + rm *-fuzz.zip diff --git a/vendor/github.com/miekg/dns/Makefile.release b/vendor/github.com/miekg/dns/Makefile.release new file mode 100644 index 00000000..8fb748e8 --- /dev/null +++ b/vendor/github.com/miekg/dns/Makefile.release @@ -0,0 +1,52 @@ +# Makefile for releasing. +# +# The release is controlled from version.go. The version found there is +# used to tag the git repo, we're not building any artifects so there is nothing +# to upload to github. +# +# * Up the version in version.go +# * Run: make -f Makefile.release release +# * will *commit* your change with 'Release $VERSION' +# * push to github +# + +define GO +//+build ignore + +package main + +import ( + "fmt" + + "github.com/miekg/dns" +) + +func main() { + fmt.Println(dns.Version.String()) +} +endef + +$(file > version_release.go,$(GO)) +VERSION:=$(shell go run version_release.go) +TAG="v$(VERSION)" + +all: + @echo Use the \'release\' target to start a release $(VERSION) + rm -f version_release.go + +.PHONY: release +release: commit push + @echo Released $(VERSION) + rm -f version_release.go + +.PHONY: commit +commit: + @echo Committing release $(VERSION) + git commit -am"Release $(VERSION)" + git tag $(TAG) + +.PHONY: push +push: + @echo Pushing release $(VERSION) to master + git push --tags + git push diff --git a/vendor/github.com/miekg/dns/README.md b/vendor/github.com/miekg/dns/README.md new file mode 100644 index 00000000..dc2a8228 --- /dev/null +++ b/vendor/github.com/miekg/dns/README.md @@ -0,0 +1,172 @@ +[![Build Status](https://travis-ci.org/miekg/dns.svg?branch=master)](https://travis-ci.org/miekg/dns) +[![Code Coverage](https://img.shields.io/codecov/c/github/miekg/dns/master.svg)](https://codecov.io/github/miekg/dns?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/miekg/dns)](https://goreportcard.com/report/miekg/dns) +[![](https://godoc.org/github.com/miekg/dns?status.svg)](https://godoc.org/github.com/miekg/dns) + +# Alternative (more granular) approach to a DNS library + +> Less is more. + +Complete and usable DNS library. All Resource Records are supported, including the DNSSEC types. +It follows a lean and mean philosophy. If there is stuff you should know as a DNS programmer there +isn't a convenience function for it. Server side and client side programming is supported, i.e. you +can build servers and resolvers with it. + +We try to keep the "master" branch as sane as possible and at the bleeding edge of standards, +avoiding breaking changes wherever reasonable. We support the last two versions of Go. + +# Goals + +* KISS; +* Fast; +* Small API. If it's easy to code in Go, don't make a function for it. + +# Users + +A not-so-up-to-date-list-that-may-be-actually-current: + +* https://github.com/coredns/coredns +* https://cloudflare.com +* https://github.com/abh/geodns +* http://www.statdns.com/ +* http://www.dnsinspect.com/ +* https://github.com/chuangbo/jianbing-dictionary-dns +* http://www.dns-lg.com/ +* https://github.com/fcambus/rrda +* https://github.com/kenshinx/godns +* https://github.com/skynetservices/skydns +* https://github.com/hashicorp/consul +* https://github.com/DevelopersPL/godnsagent +* https://github.com/duedil-ltd/discodns +* https://github.com/StalkR/dns-reverse-proxy +* https://github.com/tianon/rawdns +* https://mesosphere.github.io/mesos-dns/ +* https://pulse.turbobytes.com/ +* https://github.com/fcambus/statzone +* https://github.com/benschw/dns-clb-go +* https://github.com/corny/dnscheck for +* https://namesmith.io +* https://github.com/miekg/unbound +* https://github.com/miekg/exdns +* https://dnslookup.org +* https://github.com/looterz/grimd +* https://github.com/phamhongviet/serf-dns +* https://github.com/mehrdadrad/mylg +* https://github.com/bamarni/dockness +* https://github.com/fffaraz/microdns +* http://kelda.io +* https://github.com/ipdcode/hades +* https://github.com/StackExchange/dnscontrol/ +* https://www.dnsperf.com/ +* https://dnssectest.net/ +* https://dns.apebits.com +* https://github.com/oif/apex +* https://github.com/jedisct1/dnscrypt-proxy +* https://github.com/jedisct1/rpdns +* https://github.com/xor-gate/sshfp +* https://github.com/rs/dnstrace +* https://blitiri.com.ar/p/dnss ([github mirror](https://github.com/albertito/dnss)) +* https://github.com/semihalev/sdns +* https://render.com +* https://github.com/peterzen/goresolver + +Send pull request if you want to be listed here. + +# Features + +* UDP/TCP queries, IPv4 and IPv6 +* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported +* Fast +* Server side programming (mimicking the net/http package) +* Client side programming +* DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519 +* EDNS0, NSID, Cookies +* AXFR/IXFR +* TSIG, SIG(0) +* DNS over TLS (DoT): encrypted connection between client and server over TCP +* DNS name compression + +Have fun! + +Miek Gieben - 2010-2012 - +DNS Authors 2012- + +# Building + +Building is done with the `go` tool. If you have setup your GOPATH correctly, the following should +work: + + go get github.com/miekg/dns + go build github.com/miekg/dns + +## Examples + +A short "how to use the API" is at the beginning of doc.go (this also will show when you call `godoc +github.com/miekg/dns`). + +Example programs can be found in the `github.com/miekg/exdns` repository. + +## Supported RFCs + +*all of them* + +* 103{4,5} - DNS standard +* 1348 - NSAP record (removed the record) +* 1982 - Serial Arithmetic +* 1876 - LOC record +* 1995 - IXFR +* 1996 - DNS notify +* 2136 - DNS Update (dynamic updates) +* 2181 - RRset definition - there is no RRset type though, just []RR +* 2537 - RSAMD5 DNS keys +* 2065 - DNSSEC (updated in later RFCs) +* 2671 - EDNS record +* 2782 - SRV record +* 2845 - TSIG record +* 2915 - NAPTR record +* 2929 - DNS IANA Considerations +* 3110 - RSASHA1 DNS keys +* 3225 - DO bit (DNSSEC OK) +* 340{1,2,3} - NAPTR record +* 3445 - Limiting the scope of (DNS)KEY +* 3597 - Unknown RRs +* 403{3,4,5} - DNSSEC + validation functions +* 4255 - SSHFP record +* 4343 - Case insensitivity +* 4408 - SPF record +* 4509 - SHA256 Hash in DS +* 4592 - Wildcards in the DNS +* 4635 - HMAC SHA TSIG +* 4701 - DHCID +* 4892 - id.server +* 5001 - NSID +* 5155 - NSEC3 record +* 5205 - HIP record +* 5702 - SHA2 in the DNS +* 5936 - AXFR +* 5966 - TCP implementation recommendations +* 6605 - ECDSA +* 6725 - IANA Registry Update +* 6742 - ILNP DNS +* 6840 - Clarifications and Implementation Notes for DNS Security +* 6844 - CAA record +* 6891 - EDNS0 update +* 6895 - DNS IANA considerations +* 6975 - Algorithm Understanding in DNSSEC +* 7043 - EUI48/EUI64 records +* 7314 - DNS (EDNS) EXPIRE Option +* 7477 - CSYNC RR +* 7828 - edns-tcp-keepalive EDNS0 Option +* 7553 - URI record +* 7858 - DNS over TLS: Initiation and Performance Considerations +* 7871 - EDNS0 Client Subnet +* 7873 - Domain Name System (DNS) Cookies +* 8080 - EdDSA for DNSSEC +* 8499 - DNS Terminology + +## Loosely Based Upon + +* ldns - +* NSD - +* Net::DNS - +* GRONG - diff --git a/vendor/github.com/miekg/dns/acceptfunc.go b/vendor/github.com/miekg/dns/acceptfunc.go new file mode 100644 index 00000000..78c076c2 --- /dev/null +++ b/vendor/github.com/miekg/dns/acceptfunc.go @@ -0,0 +1,56 @@ +package dns + +// MsgAcceptFunc is used early in the server code to accept or reject a message with RcodeFormatError. +// It returns a MsgAcceptAction to indicate what should happen with the message. +type MsgAcceptFunc func(dh Header) MsgAcceptAction + +// DefaultMsgAcceptFunc checks the request and will reject if: +// +// * isn't a request (don't respond in that case). +// * opcode isn't OpcodeQuery or OpcodeNotify +// * Zero bit isn't zero +// * has more than 1 question in the question section +// * has more than 1 RR in the Answer section +// * has more than 0 RRs in the Authority section +// * has more than 2 RRs in the Additional section +var DefaultMsgAcceptFunc MsgAcceptFunc = defaultMsgAcceptFunc + +// MsgAcceptAction represents the action to be taken. +type MsgAcceptAction int + +const ( + MsgAccept MsgAcceptAction = iota // Accept the message + MsgReject // Reject the message with a RcodeFormatError + MsgIgnore // Ignore the error and send nothing back. +) + +func defaultMsgAcceptFunc(dh Header) MsgAcceptAction { + if isResponse := dh.Bits&_QR != 0; isResponse { + return MsgIgnore + } + + // Don't allow dynamic updates, because then the sections can contain a whole bunch of RRs. + opcode := int(dh.Bits>>11) & 0xF + if opcode != OpcodeQuery && opcode != OpcodeNotify { + return MsgReject + } + + if isZero := dh.Bits&_Z != 0; isZero { + return MsgReject + } + if dh.Qdcount != 1 { + return MsgReject + } + // NOTIFY requests can have a SOA in the ANSWER section. See RFC 1996 Section 3.7 and 3.11. + if dh.Ancount > 1 { + return MsgReject + } + // IXFR request could have one SOA RR in the NS section. See RFC 1995, section 3. + if dh.Nscount > 1 { + return MsgReject + } + if dh.Arcount > 2 { + return MsgReject + } + return MsgAccept +} diff --git a/vendor/github.com/miekg/dns/client.go b/vendor/github.com/miekg/dns/client.go new file mode 100644 index 00000000..20cafe27 --- /dev/null +++ b/vendor/github.com/miekg/dns/client.go @@ -0,0 +1,421 @@ +package dns + +// A client implementation. + +import ( + "context" + "crypto/tls" + "encoding/binary" + "io" + "net" + "strings" + "time" +) + +const ( + dnsTimeout time.Duration = 2 * time.Second + tcpIdleTimeout time.Duration = 8 * time.Second +) + +// A Conn represents a connection to a DNS server. +type Conn struct { + net.Conn // a net.Conn holding the connection + UDPSize uint16 // minimum receive buffer for UDP messages + TsigSecret map[string]string // secret(s) for Tsig map[], zonename must be in canonical form (lowercase, fqdn, see RFC 4034 Section 6.2) + tsigRequestMAC string +} + +// A Client defines parameters for a DNS client. +type Client struct { + Net string // if "tcp" or "tcp-tls" (DNS over TLS) a TCP query will be initiated, otherwise an UDP one (default is "" for UDP) + UDPSize uint16 // minimum receive buffer for UDP messages + TLSConfig *tls.Config // TLS connection configuration + Dialer *net.Dialer // a net.Dialer used to set local address, timeouts and more + // Timeout is a cumulative timeout for dial, write and read, defaults to 0 (disabled) - overrides DialTimeout, ReadTimeout, + // WriteTimeout when non-zero. Can be overridden with net.Dialer.Timeout (see Client.ExchangeWithDialer and + // Client.Dialer) or context.Context.Deadline (see the deprecated ExchangeContext) + Timeout time.Duration + DialTimeout time.Duration // net.DialTimeout, defaults to 2 seconds, or net.Dialer.Timeout if expiring earlier - overridden by Timeout when that value is non-zero + ReadTimeout time.Duration // net.Conn.SetReadTimeout value for connections, defaults to 2 seconds - overridden by Timeout when that value is non-zero + WriteTimeout time.Duration // net.Conn.SetWriteTimeout value for connections, defaults to 2 seconds - overridden by Timeout when that value is non-zero + TsigSecret map[string]string // secret(s) for Tsig map[], zonename must be in canonical form (lowercase, fqdn, see RFC 4034 Section 6.2) + SingleInflight bool // if true suppress multiple outstanding queries for the same Qname, Qtype and Qclass + group singleflight +} + +// Exchange performs a synchronous UDP query. It sends the message m to the address +// contained in a and waits for a reply. Exchange does not retry a failed query, nor +// will it fall back to TCP in case of truncation. +// See client.Exchange for more information on setting larger buffer sizes. +func Exchange(m *Msg, a string) (r *Msg, err error) { + client := Client{Net: "udp"} + r, _, err = client.Exchange(m, a) + return r, err +} + +func (c *Client) dialTimeout() time.Duration { + if c.Timeout != 0 { + return c.Timeout + } + if c.DialTimeout != 0 { + return c.DialTimeout + } + return dnsTimeout +} + +func (c *Client) readTimeout() time.Duration { + if c.ReadTimeout != 0 { + return c.ReadTimeout + } + return dnsTimeout +} + +func (c *Client) writeTimeout() time.Duration { + if c.WriteTimeout != 0 { + return c.WriteTimeout + } + return dnsTimeout +} + +// Dial connects to the address on the named network. +func (c *Client) Dial(address string) (conn *Conn, err error) { + // create a new dialer with the appropriate timeout + var d net.Dialer + if c.Dialer == nil { + d = net.Dialer{Timeout: c.getTimeoutForRequest(c.dialTimeout())} + } else { + d = *c.Dialer + } + + network := c.Net + if network == "" { + network = "udp" + } + + useTLS := strings.HasPrefix(network, "tcp") && strings.HasSuffix(network, "-tls") + + conn = new(Conn) + if useTLS { + network = strings.TrimSuffix(network, "-tls") + + conn.Conn, err = tls.DialWithDialer(&d, network, address, c.TLSConfig) + } else { + conn.Conn, err = d.Dial(network, address) + } + if err != nil { + return nil, err + } + + return conn, nil +} + +// Exchange performs a synchronous query. It sends the message m to the address +// contained in a and waits for a reply. Basic use pattern with a *dns.Client: +// +// c := new(dns.Client) +// in, rtt, err := c.Exchange(message, "127.0.0.1:53") +// +// Exchange does not retry a failed query, nor will it fall back to TCP in +// case of truncation. +// It is up to the caller to create a message that allows for larger responses to be +// returned. Specifically this means adding an EDNS0 OPT RR that will advertise a larger +// buffer, see SetEdns0. Messages without an OPT RR will fallback to the historic limit +// of 512 bytes +// To specify a local address or a timeout, the caller has to set the `Client.Dialer` +// attribute appropriately +func (c *Client) Exchange(m *Msg, address string) (r *Msg, rtt time.Duration, err error) { + if !c.SingleInflight { + return c.exchange(m, address) + } + + t := "nop" + if t1, ok := TypeToString[m.Question[0].Qtype]; ok { + t = t1 + } + cl := "nop" + if cl1, ok := ClassToString[m.Question[0].Qclass]; ok { + cl = cl1 + } + r, rtt, err, shared := c.group.Do(m.Question[0].Name+t+cl, func() (*Msg, time.Duration, error) { + return c.exchange(m, address) + }) + if r != nil && shared { + r = r.Copy() + } + return r, rtt, err +} + +func (c *Client) exchange(m *Msg, a string) (r *Msg, rtt time.Duration, err error) { + var co *Conn + + co, err = c.Dial(a) + + if err != nil { + return nil, 0, err + } + defer co.Close() + + opt := m.IsEdns0() + // If EDNS0 is used use that for size. + if opt != nil && opt.UDPSize() >= MinMsgSize { + co.UDPSize = opt.UDPSize() + } + // Otherwise use the client's configured UDP size. + if opt == nil && c.UDPSize >= MinMsgSize { + co.UDPSize = c.UDPSize + } + + co.TsigSecret = c.TsigSecret + t := time.Now() + // write with the appropriate write timeout + co.SetWriteDeadline(t.Add(c.getTimeoutForRequest(c.writeTimeout()))) + if err = co.WriteMsg(m); err != nil { + return nil, 0, err + } + + co.SetReadDeadline(time.Now().Add(c.getTimeoutForRequest(c.readTimeout()))) + r, err = co.ReadMsg() + if err == nil && r.Id != m.Id { + err = ErrId + } + rtt = time.Since(t) + return r, rtt, err +} + +// ReadMsg reads a message from the connection co. +// If the received message contains a TSIG record the transaction signature +// is verified. This method always tries to return the message, however if an +// error is returned there are no guarantees that the returned message is a +// valid representation of the packet read. +func (co *Conn) ReadMsg() (*Msg, error) { + p, err := co.ReadMsgHeader(nil) + if err != nil { + return nil, err + } + + m := new(Msg) + if err := m.Unpack(p); err != nil { + // If an error was returned, we still want to allow the user to use + // the message, but naively they can just check err if they don't want + // to use an erroneous message + return m, err + } + if t := m.IsTsig(); t != nil { + if _, ok := co.TsigSecret[t.Hdr.Name]; !ok { + return m, ErrSecret + } + // Need to work on the original message p, as that was used to calculate the tsig. + err = TsigVerify(p, co.TsigSecret[t.Hdr.Name], co.tsigRequestMAC, false) + } + return m, err +} + +// ReadMsgHeader reads a DNS message, parses and populates hdr (when hdr is not nil). +// Returns message as a byte slice to be parsed with Msg.Unpack later on. +// Note that error handling on the message body is not possible as only the header is parsed. +func (co *Conn) ReadMsgHeader(hdr *Header) ([]byte, error) { + var ( + p []byte + n int + err error + ) + switch co.Conn.(type) { + case *net.TCPConn, *tls.Conn: + var length uint16 + if err := binary.Read(co.Conn, binary.BigEndian, &length); err != nil { + return nil, err + } + + p = make([]byte, length) + n, err = io.ReadFull(co.Conn, p) + default: + if co.UDPSize > MinMsgSize { + p = make([]byte, co.UDPSize) + } else { + p = make([]byte, MinMsgSize) + } + n, err = co.Read(p) + } + + if err != nil { + return nil, err + } else if n < headerSize { + return nil, ErrShortRead + } + + p = p[:n] + if hdr != nil { + dh, _, err := unpackMsgHdr(p, 0) + if err != nil { + return nil, err + } + *hdr = dh + } + return p, err +} + +// Read implements the net.Conn read method. +func (co *Conn) Read(p []byte) (n int, err error) { + if co.Conn == nil { + return 0, ErrConnEmpty + } + + switch co.Conn.(type) { + case *net.TCPConn, *tls.Conn: + var length uint16 + if err := binary.Read(co.Conn, binary.BigEndian, &length); err != nil { + return 0, err + } + if int(length) > len(p) { + return 0, io.ErrShortBuffer + } + + return io.ReadFull(co.Conn, p[:length]) + } + + // UDP connection + return co.Conn.Read(p) +} + +// WriteMsg sends a message through the connection co. +// If the message m contains a TSIG record the transaction +// signature is calculated. +func (co *Conn) WriteMsg(m *Msg) (err error) { + var out []byte + if t := m.IsTsig(); t != nil { + mac := "" + if _, ok := co.TsigSecret[t.Hdr.Name]; !ok { + return ErrSecret + } + out, mac, err = TsigGenerate(m, co.TsigSecret[t.Hdr.Name], co.tsigRequestMAC, false) + // Set for the next read, although only used in zone transfers + co.tsigRequestMAC = mac + } else { + out, err = m.Pack() + } + if err != nil { + return err + } + _, err = co.Write(out) + return err +} + +// Write implements the net.Conn Write method. +func (co *Conn) Write(p []byte) (n int, err error) { + switch co.Conn.(type) { + case *net.TCPConn, *tls.Conn: + if len(p) > MaxMsgSize { + return 0, &Error{err: "message too large"} + } + + l := make([]byte, 2) + binary.BigEndian.PutUint16(l, uint16(len(p))) + + n, err := (&net.Buffers{l, p}).WriteTo(co.Conn) + return int(n), err + } + + return co.Conn.Write(p) +} + +// Return the appropriate timeout for a specific request +func (c *Client) getTimeoutForRequest(timeout time.Duration) time.Duration { + var requestTimeout time.Duration + if c.Timeout != 0 { + requestTimeout = c.Timeout + } else { + requestTimeout = timeout + } + // net.Dialer.Timeout has priority if smaller than the timeouts computed so + // far + if c.Dialer != nil && c.Dialer.Timeout != 0 { + if c.Dialer.Timeout < requestTimeout { + requestTimeout = c.Dialer.Timeout + } + } + return requestTimeout +} + +// Dial connects to the address on the named network. +func Dial(network, address string) (conn *Conn, err error) { + conn = new(Conn) + conn.Conn, err = net.Dial(network, address) + if err != nil { + return nil, err + } + return conn, nil +} + +// ExchangeContext performs a synchronous UDP query, like Exchange. It +// additionally obeys deadlines from the passed Context. +func ExchangeContext(ctx context.Context, m *Msg, a string) (r *Msg, err error) { + client := Client{Net: "udp"} + r, _, err = client.ExchangeContext(ctx, m, a) + // ignorint rtt to leave the original ExchangeContext API unchanged, but + // this function will go away + return r, err +} + +// ExchangeConn performs a synchronous query. It sends the message m via the connection +// c and waits for a reply. The connection c is not closed by ExchangeConn. +// Deprecated: This function is going away, but can easily be mimicked: +// +// co := &dns.Conn{Conn: c} // c is your net.Conn +// co.WriteMsg(m) +// in, _ := co.ReadMsg() +// co.Close() +// +func ExchangeConn(c net.Conn, m *Msg) (r *Msg, err error) { + println("dns: ExchangeConn: this function is deprecated") + co := new(Conn) + co.Conn = c + if err = co.WriteMsg(m); err != nil { + return nil, err + } + r, err = co.ReadMsg() + if err == nil && r.Id != m.Id { + err = ErrId + } + return r, err +} + +// DialTimeout acts like Dial but takes a timeout. +func DialTimeout(network, address string, timeout time.Duration) (conn *Conn, err error) { + client := Client{Net: network, Dialer: &net.Dialer{Timeout: timeout}} + return client.Dial(address) +} + +// DialWithTLS connects to the address on the named network with TLS. +func DialWithTLS(network, address string, tlsConfig *tls.Config) (conn *Conn, err error) { + if !strings.HasSuffix(network, "-tls") { + network += "-tls" + } + client := Client{Net: network, TLSConfig: tlsConfig} + return client.Dial(address) +} + +// DialTimeoutWithTLS acts like DialWithTLS but takes a timeout. +func DialTimeoutWithTLS(network, address string, tlsConfig *tls.Config, timeout time.Duration) (conn *Conn, err error) { + if !strings.HasSuffix(network, "-tls") { + network += "-tls" + } + client := Client{Net: network, Dialer: &net.Dialer{Timeout: timeout}, TLSConfig: tlsConfig} + return client.Dial(address) +} + +// ExchangeContext acts like Exchange, but honors the deadline on the provided +// context, if present. If there is both a context deadline and a configured +// timeout on the client, the earliest of the two takes effect. +func (c *Client) ExchangeContext(ctx context.Context, m *Msg, a string) (r *Msg, rtt time.Duration, err error) { + var timeout time.Duration + if deadline, ok := ctx.Deadline(); !ok { + timeout = 0 + } else { + timeout = time.Until(deadline) + } + // not passing the context to the underlying calls, as the API does not support + // context. For timeouts you should set up Client.Dialer and call Client.Exchange. + // TODO(tmthrgd,miekg): this is a race condition. + c.Dialer = &net.Dialer{Timeout: timeout} + return c.Exchange(m, a) +} diff --git a/vendor/github.com/miekg/dns/clientconfig.go b/vendor/github.com/miekg/dns/clientconfig.go new file mode 100644 index 00000000..e11b630d --- /dev/null +++ b/vendor/github.com/miekg/dns/clientconfig.go @@ -0,0 +1,135 @@ +package dns + +import ( + "bufio" + "io" + "os" + "strconv" + "strings" +) + +// ClientConfig wraps the contents of the /etc/resolv.conf file. +type ClientConfig struct { + Servers []string // servers to use + Search []string // suffixes to append to local name + Port string // what port to use + Ndots int // number of dots in name to trigger absolute lookup + Timeout int // seconds before giving up on packet + Attempts int // lost packets before giving up on server, not used in the package dns +} + +// ClientConfigFromFile parses a resolv.conf(5) like file and returns +// a *ClientConfig. +func ClientConfigFromFile(resolvconf string) (*ClientConfig, error) { + file, err := os.Open(resolvconf) + if err != nil { + return nil, err + } + defer file.Close() + return ClientConfigFromReader(file) +} + +// ClientConfigFromReader works like ClientConfigFromFile but takes an io.Reader as argument +func ClientConfigFromReader(resolvconf io.Reader) (*ClientConfig, error) { + c := new(ClientConfig) + scanner := bufio.NewScanner(resolvconf) + c.Servers = make([]string, 0) + c.Search = make([]string, 0) + c.Port = "53" + c.Ndots = 1 + c.Timeout = 5 + c.Attempts = 2 + + for scanner.Scan() { + if err := scanner.Err(); err != nil { + return nil, err + } + line := scanner.Text() + f := strings.Fields(line) + if len(f) < 1 { + continue + } + switch f[0] { + case "nameserver": // add one name server + if len(f) > 1 { + // One more check: make sure server name is + // just an IP address. Otherwise we need DNS + // to look it up. + name := f[1] + c.Servers = append(c.Servers, name) + } + + case "domain": // set search path to just this domain + if len(f) > 1 { + c.Search = make([]string, 1) + c.Search[0] = f[1] + } else { + c.Search = make([]string, 0) + } + + case "search": // set search path to given servers + c.Search = append([]string(nil), f[1:]...) + + case "options": // magic options + for _, s := range f[1:] { + switch { + case len(s) >= 6 && s[:6] == "ndots:": + n, _ := strconv.Atoi(s[6:]) + if n < 0 { + n = 0 + } else if n > 15 { + n = 15 + } + c.Ndots = n + case len(s) >= 8 && s[:8] == "timeout:": + n, _ := strconv.Atoi(s[8:]) + if n < 1 { + n = 1 + } + c.Timeout = n + case len(s) >= 9 && s[:9] == "attempts:": + n, _ := strconv.Atoi(s[9:]) + if n < 1 { + n = 1 + } + c.Attempts = n + case s == "rotate": + /* not imp */ + } + } + } + } + return c, nil +} + +// NameList returns all of the names that should be queried based on the +// config. It is based off of go's net/dns name building, but it does not +// check the length of the resulting names. +func (c *ClientConfig) NameList(name string) []string { + // if this domain is already fully qualified, no append needed. + if IsFqdn(name) { + return []string{name} + } + + // Check to see if the name has more labels than Ndots. Do this before making + // the domain fully qualified. + hasNdots := CountLabel(name) > c.Ndots + // Make the domain fully qualified. + name = Fqdn(name) + + // Make a list of names based off search. + names := []string{} + + // If name has enough dots, try that first. + if hasNdots { + names = append(names, name) + } + for _, s := range c.Search { + names = append(names, Fqdn(name+s)) + } + // If we didn't have enough dots, try after suffixes. + if !hasNdots { + names = append(names, name) + } + return names +} diff --git a/vendor/github.com/miekg/dns/dane.go b/vendor/github.com/miekg/dns/dane.go new file mode 100644 index 00000000..8c4a14ef --- /dev/null +++ b/vendor/github.com/miekg/dns/dane.go @@ -0,0 +1,43 @@ +package dns + +import ( + "crypto/sha256" + "crypto/sha512" + "crypto/x509" + "encoding/hex" + "errors" +) + +// CertificateToDANE converts a certificate to a hex string as used in the TLSA or SMIMEA records. +func CertificateToDANE(selector, matchingType uint8, cert *x509.Certificate) (string, error) { + switch matchingType { + case 0: + switch selector { + case 0: + return hex.EncodeToString(cert.Raw), nil + case 1: + return hex.EncodeToString(cert.RawSubjectPublicKeyInfo), nil + } + case 1: + h := sha256.New() + switch selector { + case 0: + h.Write(cert.Raw) + return hex.EncodeToString(h.Sum(nil)), nil + case 1: + h.Write(cert.RawSubjectPublicKeyInfo) + return hex.EncodeToString(h.Sum(nil)), nil + } + case 2: + h := sha512.New() + switch selector { + case 0: + h.Write(cert.Raw) + return hex.EncodeToString(h.Sum(nil)), nil + case 1: + h.Write(cert.RawSubjectPublicKeyInfo) + return hex.EncodeToString(h.Sum(nil)), nil + } + } + return "", errors.New("dns: bad MatchingType or Selector") +} diff --git a/vendor/github.com/miekg/dns/defaults.go b/vendor/github.com/miekg/dns/defaults.go new file mode 100644 index 00000000..b059f6fc --- /dev/null +++ b/vendor/github.com/miekg/dns/defaults.go @@ -0,0 +1,378 @@ +package dns + +import ( + "errors" + "net" + "strconv" + "strings" +) + +const hexDigit = "0123456789abcdef" + +// Everything is assumed in ClassINET. + +// SetReply creates a reply message from a request message. +func (dns *Msg) SetReply(request *Msg) *Msg { + dns.Id = request.Id + dns.Response = true + dns.Opcode = request.Opcode + if dns.Opcode == OpcodeQuery { + dns.RecursionDesired = request.RecursionDesired // Copy rd bit + dns.CheckingDisabled = request.CheckingDisabled // Copy cd bit + } + dns.Rcode = RcodeSuccess + if len(request.Question) > 0 { + dns.Question = make([]Question, 1) + dns.Question[0] = request.Question[0] + } + return dns +} + +// SetQuestion creates a question message, it sets the Question +// section, generates an Id and sets the RecursionDesired (RD) +// bit to true. +func (dns *Msg) SetQuestion(z string, t uint16) *Msg { + dns.Id = Id() + dns.RecursionDesired = true + dns.Question = make([]Question, 1) + dns.Question[0] = Question{z, t, ClassINET} + return dns +} + +// SetNotify creates a notify message, it sets the Question +// section, generates an Id and sets the Authoritative (AA) +// bit to true. +func (dns *Msg) SetNotify(z string) *Msg { + dns.Opcode = OpcodeNotify + dns.Authoritative = true + dns.Id = Id() + dns.Question = make([]Question, 1) + dns.Question[0] = Question{z, TypeSOA, ClassINET} + return dns +} + +// SetRcode creates an error message suitable for the request. +func (dns *Msg) SetRcode(request *Msg, rcode int) *Msg { + dns.SetReply(request) + dns.Rcode = rcode + return dns +} + +// SetRcodeFormatError creates a message with FormError set. +func (dns *Msg) SetRcodeFormatError(request *Msg) *Msg { + dns.Rcode = RcodeFormatError + dns.Opcode = OpcodeQuery + dns.Response = true + dns.Authoritative = false + dns.Id = request.Id + return dns +} + +// SetUpdate makes the message a dynamic update message. It +// sets the ZONE section to: z, TypeSOA, ClassINET. +func (dns *Msg) SetUpdate(z string) *Msg { + dns.Id = Id() + dns.Response = false + dns.Opcode = OpcodeUpdate + dns.Compress = false // BIND9 cannot handle compression + dns.Question = make([]Question, 1) + dns.Question[0] = Question{z, TypeSOA, ClassINET} + return dns +} + +// SetIxfr creates message for requesting an IXFR. +func (dns *Msg) SetIxfr(z string, serial uint32, ns, mbox string) *Msg { + dns.Id = Id() + dns.Question = make([]Question, 1) + dns.Ns = make([]RR, 1) + s := new(SOA) + s.Hdr = RR_Header{z, TypeSOA, ClassINET, defaultTtl, 0} + s.Serial = serial + s.Ns = ns + s.Mbox = mbox + dns.Question[0] = Question{z, TypeIXFR, ClassINET} + dns.Ns[0] = s + return dns +} + +// SetAxfr creates message for requesting an AXFR. +func (dns *Msg) SetAxfr(z string) *Msg { + dns.Id = Id() + dns.Question = make([]Question, 1) + dns.Question[0] = Question{z, TypeAXFR, ClassINET} + return dns +} + +// SetTsig appends a TSIG RR to the message. +// This is only a skeleton TSIG RR that is added as the last RR in the +// additional section. The Tsig is calculated when the message is being send. +func (dns *Msg) SetTsig(z, algo string, fudge uint16, timesigned int64) *Msg { + t := new(TSIG) + t.Hdr = RR_Header{z, TypeTSIG, ClassANY, 0, 0} + t.Algorithm = algo + t.Fudge = fudge + t.TimeSigned = uint64(timesigned) + t.OrigId = dns.Id + dns.Extra = append(dns.Extra, t) + return dns +} + +// SetEdns0 appends a EDNS0 OPT RR to the message. +// TSIG should always the last RR in a message. +func (dns *Msg) SetEdns0(udpsize uint16, do bool) *Msg { + e := new(OPT) + e.Hdr.Name = "." + e.Hdr.Rrtype = TypeOPT + e.SetUDPSize(udpsize) + if do { + e.SetDo() + } + dns.Extra = append(dns.Extra, e) + return dns +} + +// IsTsig checks if the message has a TSIG record as the last record +// in the additional section. It returns the TSIG record found or nil. +func (dns *Msg) IsTsig() *TSIG { + if len(dns.Extra) > 0 { + if dns.Extra[len(dns.Extra)-1].Header().Rrtype == TypeTSIG { + return dns.Extra[len(dns.Extra)-1].(*TSIG) + } + } + return nil +} + +// IsEdns0 checks if the message has a EDNS0 (OPT) record, any EDNS0 +// record in the additional section will do. It returns the OPT record +// found or nil. +func (dns *Msg) IsEdns0() *OPT { + // RFC 6891, Section 6.1.1 allows the OPT record to appear + // anywhere in the additional record section, but it's usually at + // the end so start there. + for i := len(dns.Extra) - 1; i >= 0; i-- { + if dns.Extra[i].Header().Rrtype == TypeOPT { + return dns.Extra[i].(*OPT) + } + } + return nil +} + +// popEdns0 is like IsEdns0, but it removes the record from the message. +func (dns *Msg) popEdns0() *OPT { + // RFC 6891, Section 6.1.1 allows the OPT record to appear + // anywhere in the additional record section, but it's usually at + // the end so start there. + for i := len(dns.Extra) - 1; i >= 0; i-- { + if dns.Extra[i].Header().Rrtype == TypeOPT { + opt := dns.Extra[i].(*OPT) + dns.Extra = append(dns.Extra[:i], dns.Extra[i+1:]...) + return opt + } + } + return nil +} + +// IsDomainName checks if s is a valid domain name, it returns the number of +// labels and true, when a domain name is valid. Note that non fully qualified +// domain name is considered valid, in this case the last label is counted in +// the number of labels. When false is returned the number of labels is not +// defined. Also note that this function is extremely liberal; almost any +// string is a valid domain name as the DNS is 8 bit protocol. It checks if each +// label fits in 63 characters and that the entire name will fit into the 255 +// octet wire format limit. +func IsDomainName(s string) (labels int, ok bool) { + // XXX: The logic in this function was copied from packDomainName and + // should be kept in sync with that function. + + const lenmsg = 256 + + if len(s) == 0 { // Ok, for instance when dealing with update RR without any rdata. + return 0, false + } + + s = Fqdn(s) + + // Each dot ends a segment of the name. Except for escaped dots (\.), which + // are normal dots. + + var ( + off int + begin int + wasDot bool + ) + for i := 0; i < len(s); i++ { + switch s[i] { + case '\\': + if off+1 > lenmsg { + return labels, false + } + + // check for \DDD + if i+3 < len(s) && isDigit(s[i+1]) && isDigit(s[i+2]) && isDigit(s[i+3]) { + i += 3 + begin += 3 + } else { + i++ + begin++ + } + + wasDot = false + case '.': + if wasDot { + // two dots back to back is not legal + return labels, false + } + wasDot = true + + labelLen := i - begin + if labelLen >= 1<<6 { // top two bits of length must be clear + return labels, false + } + + // off can already (we're in a loop) be bigger than lenmsg + // this happens when a name isn't fully qualified + off += 1 + labelLen + if off > lenmsg { + return labels, false + } + + labels++ + begin = i + 1 + default: + wasDot = false + } + } + + return labels, true +} + +// IsSubDomain checks if child is indeed a child of the parent. If child and parent +// are the same domain true is returned as well. +func IsSubDomain(parent, child string) bool { + // Entire child is contained in parent + return CompareDomainName(parent, child) == CountLabel(parent) +} + +// IsMsg sanity checks buf and returns an error if it isn't a valid DNS packet. +// The checking is performed on the binary payload. +func IsMsg(buf []byte) error { + // Header + if len(buf) < headerSize { + return errors.New("dns: bad message header") + } + // Header: Opcode + // TODO(miek): more checks here, e.g. check all header bits. + return nil +} + +// IsFqdn checks if a domain name is fully qualified. +func IsFqdn(s string) bool { + s2 := strings.TrimSuffix(s, ".") + if s == s2 { + return false + } + + i := strings.LastIndexFunc(s2, func(r rune) bool { + return r != '\\' + }) + + // Test whether we have an even number of escape sequences before + // the dot or none. + return (len(s2)-i)%2 != 0 +} + +// IsRRset checks if a set of RRs is a valid RRset as defined by RFC 2181. +// This means the RRs need to have the same type, name, and class. Returns true +// if the RR set is valid, otherwise false. +func IsRRset(rrset []RR) bool { + if len(rrset) == 0 { + return false + } + if len(rrset) == 1 { + return true + } + rrHeader := rrset[0].Header() + rrType := rrHeader.Rrtype + rrClass := rrHeader.Class + rrName := rrHeader.Name + + for _, rr := range rrset[1:] { + curRRHeader := rr.Header() + if curRRHeader.Rrtype != rrType || curRRHeader.Class != rrClass || curRRHeader.Name != rrName { + // Mismatch between the records, so this is not a valid rrset for + //signing/verifying + return false + } + } + + return true +} + +// Fqdn return the fully qualified domain name from s. +// If s is already fully qualified, it behaves as the identity function. +func Fqdn(s string) string { + if IsFqdn(s) { + return s + } + return s + "." +} + +// Copied from the official Go code. + +// ReverseAddr returns the in-addr.arpa. or ip6.arpa. hostname of the IP +// address suitable for reverse DNS (PTR) record lookups or an error if it fails +// to parse the IP address. +func ReverseAddr(addr string) (arpa string, err error) { + ip := net.ParseIP(addr) + if ip == nil { + return "", &Error{err: "unrecognized address: " + addr} + } + if v4 := ip.To4(); v4 != nil { + buf := make([]byte, 0, net.IPv4len*4+len("in-addr.arpa.")) + // Add it, in reverse, to the buffer + for i := len(v4) - 1; i >= 0; i-- { + buf = strconv.AppendInt(buf, int64(v4[i]), 10) + buf = append(buf, '.') + } + // Append "in-addr.arpa." and return (buf already has the final .) + buf = append(buf, "in-addr.arpa."...) + return string(buf), nil + } + // Must be IPv6 + buf := make([]byte, 0, net.IPv6len*4+len("ip6.arpa.")) + // Add it, in reverse, to the buffer + for i := len(ip) - 1; i >= 0; i-- { + v := ip[i] + buf = append(buf, hexDigit[v&0xF]) + buf = append(buf, '.') + buf = append(buf, hexDigit[v>>4]) + buf = append(buf, '.') + } + // Append "ip6.arpa." and return (buf already has the final .) + buf = append(buf, "ip6.arpa."...) + return string(buf), nil +} + +// String returns the string representation for the type t. +func (t Type) String() string { + if t1, ok := TypeToString[uint16(t)]; ok { + return t1 + } + return "TYPE" + strconv.Itoa(int(t)) +} + +// String returns the string representation for the class c. +func (c Class) String() string { + if s, ok := ClassToString[uint16(c)]; ok { + // Only emit mnemonics when they are unambiguous, specically ANY is in both. + if _, ok := StringToType[s]; !ok { + return s + } + } + return "CLASS" + strconv.Itoa(int(c)) +} + +// String returns the string representation for the name n. +func (n Name) String() string { + return sprintName(string(n)) +} diff --git a/vendor/github.com/miekg/dns/dns.go b/vendor/github.com/miekg/dns/dns.go new file mode 100644 index 00000000..f57337b8 --- /dev/null +++ b/vendor/github.com/miekg/dns/dns.go @@ -0,0 +1,134 @@ +package dns + +import "strconv" + +const ( + year68 = 1 << 31 // For RFC1982 (Serial Arithmetic) calculations in 32 bits. + defaultTtl = 3600 // Default internal TTL. + + // DefaultMsgSize is the standard default for messages larger than 512 bytes. + DefaultMsgSize = 4096 + // MinMsgSize is the minimal size of a DNS packet. + MinMsgSize = 512 + // MaxMsgSize is the largest possible DNS packet. + MaxMsgSize = 65535 +) + +// Error represents a DNS error. +type Error struct{ err string } + +func (e *Error) Error() string { + if e == nil { + return "dns: " + } + return "dns: " + e.err +} + +// An RR represents a resource record. +type RR interface { + // Header returns the header of an resource record. The header contains + // everything up to the rdata. + Header() *RR_Header + // String returns the text representation of the resource record. + String() string + + // copy returns a copy of the RR + copy() RR + + // len returns the length (in octets) of the compressed or uncompressed RR in wire format. + // + // If compression is nil, the uncompressed size will be returned, otherwise the compressed + // size will be returned and domain names will be added to the map for future compression. + len(off int, compression map[string]struct{}) int + + // pack packs the records RDATA into wire format. The header will + // already have been packed into msg. + pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) + + // unpack unpacks an RR from wire format. + // + // This will only be called on a new and empty RR type with only the header populated. It + // will only be called if the record's RDATA is non-empty. + unpack(msg []byte, off int) (off1 int, err error) + + // parse parses an RR from zone file format. + // + // This will only be called on a new and empty RR type with only the header populated. + parse(c *zlexer, origin, file string) *ParseError + + // isDuplicate returns whether the two RRs are duplicates. + isDuplicate(r2 RR) bool +} + +// RR_Header is the header all DNS resource records share. +type RR_Header struct { + Name string `dns:"cdomain-name"` + Rrtype uint16 + Class uint16 + Ttl uint32 + Rdlength uint16 // Length of data after header. +} + +// Header returns itself. This is here to make RR_Header implements the RR interface. +func (h *RR_Header) Header() *RR_Header { return h } + +// Just to implement the RR interface. +func (h *RR_Header) copy() RR { return nil } + +func (h *RR_Header) String() string { + var s string + + if h.Rrtype == TypeOPT { + s = ";" + // and maybe other things + } + + s += sprintName(h.Name) + "\t" + s += strconv.FormatInt(int64(h.Ttl), 10) + "\t" + s += Class(h.Class).String() + "\t" + s += Type(h.Rrtype).String() + "\t" + return s +} + +func (h *RR_Header) len(off int, compression map[string]struct{}) int { + l := domainNameLen(h.Name, off, compression, true) + l += 10 // rrtype(2) + class(2) + ttl(4) + rdlength(2) + return l +} + +func (h *RR_Header) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + // RR_Header has no RDATA to pack. + return off, nil +} + +func (h *RR_Header) unpack(msg []byte, off int) (int, error) { + panic("dns: internal error: unpack should never be called on RR_Header") +} + +func (h *RR_Header) parse(c *zlexer, origin, file string) *ParseError { + panic("dns: internal error: parse should never be called on RR_Header") +} + +// ToRFC3597 converts a known RR to the unknown RR representation from RFC 3597. +func (rr *RFC3597) ToRFC3597(r RR) error { + buf := make([]byte, Len(r)*2) + headerEnd, off, err := packRR(r, buf, 0, compressionMap{}, false) + if err != nil { + return err + } + buf = buf[:off] + + *rr = RFC3597{Hdr: *r.Header()} + rr.Hdr.Rdlength = uint16(off - headerEnd) + + if noRdata(rr.Hdr) { + return nil + } + + _, err = rr.unpack(buf, headerEnd) + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/miekg/dns/dnssec.go b/vendor/github.com/miekg/dns/dnssec.go new file mode 100644 index 00000000..faf1dc65 --- /dev/null +++ b/vendor/github.com/miekg/dns/dnssec.go @@ -0,0 +1,791 @@ +package dns + +import ( + "bytes" + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + _ "crypto/md5" + "crypto/rand" + "crypto/rsa" + _ "crypto/sha1" + _ "crypto/sha256" + _ "crypto/sha512" + "encoding/asn1" + "encoding/binary" + "encoding/hex" + "math/big" + "sort" + "strings" + "time" + + "golang.org/x/crypto/ed25519" +) + +// DNSSEC encryption algorithm codes. +const ( + _ uint8 = iota + RSAMD5 + DH + DSA + _ // Skip 4, RFC 6725, section 2.1 + RSASHA1 + DSANSEC3SHA1 + RSASHA1NSEC3SHA1 + RSASHA256 + _ // Skip 9, RFC 6725, section 2.1 + RSASHA512 + _ // Skip 11, RFC 6725, section 2.1 + ECCGOST + ECDSAP256SHA256 + ECDSAP384SHA384 + ED25519 + ED448 + INDIRECT uint8 = 252 + PRIVATEDNS uint8 = 253 // Private (experimental keys) + PRIVATEOID uint8 = 254 +) + +// AlgorithmToString is a map of algorithm IDs to algorithm names. +var AlgorithmToString = map[uint8]string{ + RSAMD5: "RSAMD5", + DH: "DH", + DSA: "DSA", + RSASHA1: "RSASHA1", + DSANSEC3SHA1: "DSA-NSEC3-SHA1", + RSASHA1NSEC3SHA1: "RSASHA1-NSEC3-SHA1", + RSASHA256: "RSASHA256", + RSASHA512: "RSASHA512", + ECCGOST: "ECC-GOST", + ECDSAP256SHA256: "ECDSAP256SHA256", + ECDSAP384SHA384: "ECDSAP384SHA384", + ED25519: "ED25519", + ED448: "ED448", + INDIRECT: "INDIRECT", + PRIVATEDNS: "PRIVATEDNS", + PRIVATEOID: "PRIVATEOID", +} + +// AlgorithmToHash is a map of algorithm crypto hash IDs to crypto.Hash's. +var AlgorithmToHash = map[uint8]crypto.Hash{ + RSAMD5: crypto.MD5, // Deprecated in RFC 6725 + DSA: crypto.SHA1, + RSASHA1: crypto.SHA1, + RSASHA1NSEC3SHA1: crypto.SHA1, + RSASHA256: crypto.SHA256, + ECDSAP256SHA256: crypto.SHA256, + ECDSAP384SHA384: crypto.SHA384, + RSASHA512: crypto.SHA512, + ED25519: crypto.Hash(0), +} + +// DNSSEC hashing algorithm codes. +const ( + _ uint8 = iota + SHA1 // RFC 4034 + SHA256 // RFC 4509 + GOST94 // RFC 5933 + SHA384 // Experimental + SHA512 // Experimental +) + +// HashToString is a map of hash IDs to names. +var HashToString = map[uint8]string{ + SHA1: "SHA1", + SHA256: "SHA256", + GOST94: "GOST94", + SHA384: "SHA384", + SHA512: "SHA512", +} + +// DNSKEY flag values. +const ( + SEP = 1 + REVOKE = 1 << 7 + ZONE = 1 << 8 +) + +// The RRSIG needs to be converted to wireformat with some of the rdata (the signature) missing. +type rrsigWireFmt struct { + TypeCovered uint16 + Algorithm uint8 + Labels uint8 + OrigTtl uint32 + Expiration uint32 + Inception uint32 + KeyTag uint16 + SignerName string `dns:"domain-name"` + /* No Signature */ +} + +// Used for converting DNSKEY's rdata to wirefmt. +type dnskeyWireFmt struct { + Flags uint16 + Protocol uint8 + Algorithm uint8 + PublicKey string `dns:"base64"` + /* Nothing is left out */ +} + +func divRoundUp(a, b int) int { + return (a + b - 1) / b +} + +// KeyTag calculates the keytag (or key-id) of the DNSKEY. +func (k *DNSKEY) KeyTag() uint16 { + if k == nil { + return 0 + } + var keytag int + switch k.Algorithm { + case RSAMD5: + // Look at the bottom two bytes of the modules, which the last + // item in the pubkey. We could do this faster by looking directly + // at the base64 values. But I'm lazy. + modulus, _ := fromBase64([]byte(k.PublicKey)) + if len(modulus) > 1 { + x := binary.BigEndian.Uint16(modulus[len(modulus)-2:]) + keytag = int(x) + } + default: + keywire := new(dnskeyWireFmt) + keywire.Flags = k.Flags + keywire.Protocol = k.Protocol + keywire.Algorithm = k.Algorithm + keywire.PublicKey = k.PublicKey + wire := make([]byte, DefaultMsgSize) + n, err := packKeyWire(keywire, wire) + if err != nil { + return 0 + } + wire = wire[:n] + for i, v := range wire { + if i&1 != 0 { + keytag += int(v) // must be larger than uint32 + } else { + keytag += int(v) << 8 + } + } + keytag += keytag >> 16 & 0xFFFF + keytag &= 0xFFFF + } + return uint16(keytag) +} + +// ToDS converts a DNSKEY record to a DS record. +func (k *DNSKEY) ToDS(h uint8) *DS { + if k == nil { + return nil + } + ds := new(DS) + ds.Hdr.Name = k.Hdr.Name + ds.Hdr.Class = k.Hdr.Class + ds.Hdr.Rrtype = TypeDS + ds.Hdr.Ttl = k.Hdr.Ttl + ds.Algorithm = k.Algorithm + ds.DigestType = h + ds.KeyTag = k.KeyTag() + + keywire := new(dnskeyWireFmt) + keywire.Flags = k.Flags + keywire.Protocol = k.Protocol + keywire.Algorithm = k.Algorithm + keywire.PublicKey = k.PublicKey + wire := make([]byte, DefaultMsgSize) + n, err := packKeyWire(keywire, wire) + if err != nil { + return nil + } + wire = wire[:n] + + owner := make([]byte, 255) + off, err1 := PackDomainName(strings.ToLower(k.Hdr.Name), owner, 0, nil, false) + if err1 != nil { + return nil + } + owner = owner[:off] + // RFC4034: + // digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA); + // "|" denotes concatenation + // DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key. + + var hash crypto.Hash + switch h { + case SHA1: + hash = crypto.SHA1 + case SHA256: + hash = crypto.SHA256 + case SHA384: + hash = crypto.SHA384 + case SHA512: + hash = crypto.SHA512 + default: + return nil + } + + s := hash.New() + s.Write(owner) + s.Write(wire) + ds.Digest = hex.EncodeToString(s.Sum(nil)) + return ds +} + +// ToCDNSKEY converts a DNSKEY record to a CDNSKEY record. +func (k *DNSKEY) ToCDNSKEY() *CDNSKEY { + c := &CDNSKEY{DNSKEY: *k} + c.Hdr = k.Hdr + c.Hdr.Rrtype = TypeCDNSKEY + return c +} + +// ToCDS converts a DS record to a CDS record. +func (d *DS) ToCDS() *CDS { + c := &CDS{DS: *d} + c.Hdr = d.Hdr + c.Hdr.Rrtype = TypeCDS + return c +} + +// Sign signs an RRSet. The signature needs to be filled in with the values: +// Inception, Expiration, KeyTag, SignerName and Algorithm. The rest is copied +// from the RRset. Sign returns a non-nill error when the signing went OK. +// There is no check if RRSet is a proper (RFC 2181) RRSet. If OrigTTL is non +// zero, it is used as-is, otherwise the TTL of the RRset is used as the +// OrigTTL. +func (rr *RRSIG) Sign(k crypto.Signer, rrset []RR) error { + if k == nil { + return ErrPrivKey + } + // s.Inception and s.Expiration may be 0 (rollover etc.), the rest must be set + if rr.KeyTag == 0 || len(rr.SignerName) == 0 || rr.Algorithm == 0 { + return ErrKey + } + + h0 := rrset[0].Header() + rr.Hdr.Rrtype = TypeRRSIG + rr.Hdr.Name = h0.Name + rr.Hdr.Class = h0.Class + if rr.OrigTtl == 0 { // If set don't override + rr.OrigTtl = h0.Ttl + } + rr.TypeCovered = h0.Rrtype + rr.Labels = uint8(CountLabel(h0.Name)) + + if strings.HasPrefix(h0.Name, "*") { + rr.Labels-- // wildcard, remove from label count + } + + sigwire := new(rrsigWireFmt) + sigwire.TypeCovered = rr.TypeCovered + sigwire.Algorithm = rr.Algorithm + sigwire.Labels = rr.Labels + sigwire.OrigTtl = rr.OrigTtl + sigwire.Expiration = rr.Expiration + sigwire.Inception = rr.Inception + sigwire.KeyTag = rr.KeyTag + // For signing, lowercase this name + sigwire.SignerName = strings.ToLower(rr.SignerName) + + // Create the desired binary blob + signdata := make([]byte, DefaultMsgSize) + n, err := packSigWire(sigwire, signdata) + if err != nil { + return err + } + signdata = signdata[:n] + wire, err := rawSignatureData(rrset, rr) + if err != nil { + return err + } + + hash, ok := AlgorithmToHash[rr.Algorithm] + if !ok { + return ErrAlg + } + + switch rr.Algorithm { + case ED25519: + // ed25519 signs the raw message and performs hashing internally. + // All other supported signature schemes operate over the pre-hashed + // message, and thus ed25519 must be handled separately here. + // + // The raw message is passed directly into sign and crypto.Hash(0) is + // used to signal to the crypto.Signer that the data has not been hashed. + signature, err := sign(k, append(signdata, wire...), crypto.Hash(0), rr.Algorithm) + if err != nil { + return err + } + + rr.Signature = toBase64(signature) + default: + h := hash.New() + h.Write(signdata) + h.Write(wire) + + signature, err := sign(k, h.Sum(nil), hash, rr.Algorithm) + if err != nil { + return err + } + + rr.Signature = toBase64(signature) + } + + return nil +} + +func sign(k crypto.Signer, hashed []byte, hash crypto.Hash, alg uint8) ([]byte, error) { + signature, err := k.Sign(rand.Reader, hashed, hash) + if err != nil { + return nil, err + } + + switch alg { + case RSASHA1, RSASHA1NSEC3SHA1, RSASHA256, RSASHA512: + return signature, nil + + case ECDSAP256SHA256, ECDSAP384SHA384: + ecdsaSignature := &struct { + R, S *big.Int + }{} + if _, err := asn1.Unmarshal(signature, ecdsaSignature); err != nil { + return nil, err + } + + var intlen int + switch alg { + case ECDSAP256SHA256: + intlen = 32 + case ECDSAP384SHA384: + intlen = 48 + } + + signature := intToBytes(ecdsaSignature.R, intlen) + signature = append(signature, intToBytes(ecdsaSignature.S, intlen)...) + return signature, nil + + // There is no defined interface for what a DSA backed crypto.Signer returns + case DSA, DSANSEC3SHA1: + // t := divRoundUp(divRoundUp(p.PublicKey.Y.BitLen(), 8)-64, 8) + // signature := []byte{byte(t)} + // signature = append(signature, intToBytes(r1, 20)...) + // signature = append(signature, intToBytes(s1, 20)...) + // rr.Signature = signature + + case ED25519: + return signature, nil + } + + return nil, ErrAlg +} + +// Verify validates an RRSet with the signature and key. This is only the +// cryptographic test, the signature validity period must be checked separately. +// This function copies the rdata of some RRs (to lowercase domain names) for the validation to work. +func (rr *RRSIG) Verify(k *DNSKEY, rrset []RR) error { + // First the easy checks + if !IsRRset(rrset) { + return ErrRRset + } + if rr.KeyTag != k.KeyTag() { + return ErrKey + } + if rr.Hdr.Class != k.Hdr.Class { + return ErrKey + } + if rr.Algorithm != k.Algorithm { + return ErrKey + } + if !strings.EqualFold(rr.SignerName, k.Hdr.Name) { + return ErrKey + } + if k.Protocol != 3 { + return ErrKey + } + + // IsRRset checked that we have at least one RR and that the RRs in + // the set have consistent type, class, and name. Also check that type and + // class matches the RRSIG record. + if h0 := rrset[0].Header(); h0.Class != rr.Hdr.Class || h0.Rrtype != rr.TypeCovered { + return ErrRRset + } + + // RFC 4035 5.3.2. Reconstructing the Signed Data + // Copy the sig, except the rrsig data + sigwire := new(rrsigWireFmt) + sigwire.TypeCovered = rr.TypeCovered + sigwire.Algorithm = rr.Algorithm + sigwire.Labels = rr.Labels + sigwire.OrigTtl = rr.OrigTtl + sigwire.Expiration = rr.Expiration + sigwire.Inception = rr.Inception + sigwire.KeyTag = rr.KeyTag + sigwire.SignerName = strings.ToLower(rr.SignerName) + // Create the desired binary blob + signeddata := make([]byte, DefaultMsgSize) + n, err := packSigWire(sigwire, signeddata) + if err != nil { + return err + } + signeddata = signeddata[:n] + wire, err := rawSignatureData(rrset, rr) + if err != nil { + return err + } + + sigbuf := rr.sigBuf() // Get the binary signature data + if rr.Algorithm == PRIVATEDNS { // PRIVATEOID + // TODO(miek) + // remove the domain name and assume its ours? + } + + hash, ok := AlgorithmToHash[rr.Algorithm] + if !ok { + return ErrAlg + } + + switch rr.Algorithm { + case RSASHA1, RSASHA1NSEC3SHA1, RSASHA256, RSASHA512, RSAMD5: + // TODO(mg): this can be done quicker, ie. cache the pubkey data somewhere?? + pubkey := k.publicKeyRSA() // Get the key + if pubkey == nil { + return ErrKey + } + + h := hash.New() + h.Write(signeddata) + h.Write(wire) + return rsa.VerifyPKCS1v15(pubkey, hash, h.Sum(nil), sigbuf) + + case ECDSAP256SHA256, ECDSAP384SHA384: + pubkey := k.publicKeyECDSA() + if pubkey == nil { + return ErrKey + } + + // Split sigbuf into the r and s coordinates + r := new(big.Int).SetBytes(sigbuf[:len(sigbuf)/2]) + s := new(big.Int).SetBytes(sigbuf[len(sigbuf)/2:]) + + h := hash.New() + h.Write(signeddata) + h.Write(wire) + if ecdsa.Verify(pubkey, h.Sum(nil), r, s) { + return nil + } + return ErrSig + + case ED25519: + pubkey := k.publicKeyED25519() + if pubkey == nil { + return ErrKey + } + + if ed25519.Verify(pubkey, append(signeddata, wire...), sigbuf) { + return nil + } + return ErrSig + + default: + return ErrAlg + } +} + +// ValidityPeriod uses RFC1982 serial arithmetic to calculate +// if a signature period is valid. If t is the zero time, the +// current time is taken other t is. Returns true if the signature +// is valid at the given time, otherwise returns false. +func (rr *RRSIG) ValidityPeriod(t time.Time) bool { + var utc int64 + if t.IsZero() { + utc = time.Now().UTC().Unix() + } else { + utc = t.UTC().Unix() + } + modi := (int64(rr.Inception) - utc) / year68 + mode := (int64(rr.Expiration) - utc) / year68 + ti := int64(rr.Inception) + modi*year68 + te := int64(rr.Expiration) + mode*year68 + return ti <= utc && utc <= te +} + +// Return the signatures base64 encodedig sigdata as a byte slice. +func (rr *RRSIG) sigBuf() []byte { + sigbuf, err := fromBase64([]byte(rr.Signature)) + if err != nil { + return nil + } + return sigbuf +} + +// publicKeyRSA returns the RSA public key from a DNSKEY record. +func (k *DNSKEY) publicKeyRSA() *rsa.PublicKey { + keybuf, err := fromBase64([]byte(k.PublicKey)) + if err != nil { + return nil + } + + if len(keybuf) < 1+1+64 { + // Exponent must be at least 1 byte and modulus at least 64 + return nil + } + + // RFC 2537/3110, section 2. RSA Public KEY Resource Records + // Length is in the 0th byte, unless its zero, then it + // it in bytes 1 and 2 and its a 16 bit number + explen := uint16(keybuf[0]) + keyoff := 1 + if explen == 0 { + explen = uint16(keybuf[1])<<8 | uint16(keybuf[2]) + keyoff = 3 + } + + if explen > 4 || explen == 0 || keybuf[keyoff] == 0 { + // Exponent larger than supported by the crypto package, + // empty, or contains prohibited leading zero. + return nil + } + + modoff := keyoff + int(explen) + modlen := len(keybuf) - modoff + if modlen < 64 || modlen > 512 || keybuf[modoff] == 0 { + // Modulus is too small, large, or contains prohibited leading zero. + return nil + } + + pubkey := new(rsa.PublicKey) + + var expo uint64 + // The exponent of length explen is between keyoff and modoff. + for _, v := range keybuf[keyoff:modoff] { + expo <<= 8 + expo |= uint64(v) + } + if expo > 1<<31-1 { + // Larger exponent than supported by the crypto package. + return nil + } + + pubkey.E = int(expo) + pubkey.N = new(big.Int).SetBytes(keybuf[modoff:]) + return pubkey +} + +// publicKeyECDSA returns the Curve public key from the DNSKEY record. +func (k *DNSKEY) publicKeyECDSA() *ecdsa.PublicKey { + keybuf, err := fromBase64([]byte(k.PublicKey)) + if err != nil { + return nil + } + pubkey := new(ecdsa.PublicKey) + switch k.Algorithm { + case ECDSAP256SHA256: + pubkey.Curve = elliptic.P256() + if len(keybuf) != 64 { + // wrongly encoded key + return nil + } + case ECDSAP384SHA384: + pubkey.Curve = elliptic.P384() + if len(keybuf) != 96 { + // Wrongly encoded key + return nil + } + } + pubkey.X = new(big.Int).SetBytes(keybuf[:len(keybuf)/2]) + pubkey.Y = new(big.Int).SetBytes(keybuf[len(keybuf)/2:]) + return pubkey +} + +func (k *DNSKEY) publicKeyDSA() *dsa.PublicKey { + keybuf, err := fromBase64([]byte(k.PublicKey)) + if err != nil { + return nil + } + if len(keybuf) < 22 { + return nil + } + t, keybuf := int(keybuf[0]), keybuf[1:] + size := 64 + t*8 + q, keybuf := keybuf[:20], keybuf[20:] + if len(keybuf) != 3*size { + return nil + } + p, keybuf := keybuf[:size], keybuf[size:] + g, y := keybuf[:size], keybuf[size:] + pubkey := new(dsa.PublicKey) + pubkey.Parameters.Q = new(big.Int).SetBytes(q) + pubkey.Parameters.P = new(big.Int).SetBytes(p) + pubkey.Parameters.G = new(big.Int).SetBytes(g) + pubkey.Y = new(big.Int).SetBytes(y) + return pubkey +} + +func (k *DNSKEY) publicKeyED25519() ed25519.PublicKey { + keybuf, err := fromBase64([]byte(k.PublicKey)) + if err != nil { + return nil + } + if len(keybuf) != ed25519.PublicKeySize { + return nil + } + return keybuf +} + +type wireSlice [][]byte + +func (p wireSlice) Len() int { return len(p) } +func (p wireSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } +func (p wireSlice) Less(i, j int) bool { + _, ioff, _ := UnpackDomainName(p[i], 0) + _, joff, _ := UnpackDomainName(p[j], 0) + return bytes.Compare(p[i][ioff+10:], p[j][joff+10:]) < 0 +} + +// Return the raw signature data. +func rawSignatureData(rrset []RR, s *RRSIG) (buf []byte, err error) { + wires := make(wireSlice, len(rrset)) + for i, r := range rrset { + r1 := r.copy() + h := r1.Header() + h.Ttl = s.OrigTtl + labels := SplitDomainName(h.Name) + // 6.2. Canonical RR Form. (4) - wildcards + if len(labels) > int(s.Labels) { + // Wildcard + h.Name = "*." + strings.Join(labels[len(labels)-int(s.Labels):], ".") + "." + } + // RFC 4034: 6.2. Canonical RR Form. (2) - domain name to lowercase + h.Name = strings.ToLower(h.Name) + // 6.2. Canonical RR Form. (3) - domain rdata to lowercase. + // NS, MD, MF, CNAME, SOA, MB, MG, MR, PTR, + // HINFO, MINFO, MX, RP, AFSDB, RT, SIG, PX, NXT, NAPTR, KX, + // SRV, DNAME, A6 + // + // RFC 6840 - Clarifications and Implementation Notes for DNS Security (DNSSEC): + // Section 6.2 of [RFC4034] also erroneously lists HINFO as a record + // that needs conversion to lowercase, and twice at that. Since HINFO + // records contain no domain names, they are not subject to case + // conversion. + switch x := r1.(type) { + case *NS: + x.Ns = strings.ToLower(x.Ns) + case *MD: + x.Md = strings.ToLower(x.Md) + case *MF: + x.Mf = strings.ToLower(x.Mf) + case *CNAME: + x.Target = strings.ToLower(x.Target) + case *SOA: + x.Ns = strings.ToLower(x.Ns) + x.Mbox = strings.ToLower(x.Mbox) + case *MB: + x.Mb = strings.ToLower(x.Mb) + case *MG: + x.Mg = strings.ToLower(x.Mg) + case *MR: + x.Mr = strings.ToLower(x.Mr) + case *PTR: + x.Ptr = strings.ToLower(x.Ptr) + case *MINFO: + x.Rmail = strings.ToLower(x.Rmail) + x.Email = strings.ToLower(x.Email) + case *MX: + x.Mx = strings.ToLower(x.Mx) + case *RP: + x.Mbox = strings.ToLower(x.Mbox) + x.Txt = strings.ToLower(x.Txt) + case *AFSDB: + x.Hostname = strings.ToLower(x.Hostname) + case *RT: + x.Host = strings.ToLower(x.Host) + case *SIG: + x.SignerName = strings.ToLower(x.SignerName) + case *PX: + x.Map822 = strings.ToLower(x.Map822) + x.Mapx400 = strings.ToLower(x.Mapx400) + case *NAPTR: + x.Replacement = strings.ToLower(x.Replacement) + case *KX: + x.Exchanger = strings.ToLower(x.Exchanger) + case *SRV: + x.Target = strings.ToLower(x.Target) + case *DNAME: + x.Target = strings.ToLower(x.Target) + } + // 6.2. Canonical RR Form. (5) - origTTL + wire := make([]byte, Len(r1)+1) // +1 to be safe(r) + off, err1 := PackRR(r1, wire, 0, nil, false) + if err1 != nil { + return nil, err1 + } + wire = wire[:off] + wires[i] = wire + } + sort.Sort(wires) + for i, wire := range wires { + if i > 0 && bytes.Equal(wire, wires[i-1]) { + continue + } + buf = append(buf, wire...) + } + return buf, nil +} + +func packSigWire(sw *rrsigWireFmt, msg []byte) (int, error) { + // copied from zmsg.go RRSIG packing + off, err := packUint16(sw.TypeCovered, msg, 0) + if err != nil { + return off, err + } + off, err = packUint8(sw.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(sw.Labels, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(sw.OrigTtl, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(sw.Expiration, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(sw.Inception, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(sw.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = PackDomainName(sw.SignerName, msg, off, nil, false) + if err != nil { + return off, err + } + return off, nil +} + +func packKeyWire(dw *dnskeyWireFmt, msg []byte) (int, error) { + // copied from zmsg.go DNSKEY packing + off, err := packUint16(dw.Flags, msg, 0) + if err != nil { + return off, err + } + off, err = packUint8(dw.Protocol, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(dw.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(dw.PublicKey, msg, off) + if err != nil { + return off, err + } + return off, nil +} diff --git a/vendor/github.com/miekg/dns/dnssec_keygen.go b/vendor/github.com/miekg/dns/dnssec_keygen.go new file mode 100644 index 00000000..33e913ac --- /dev/null +++ b/vendor/github.com/miekg/dns/dnssec_keygen.go @@ -0,0 +1,178 @@ +package dns + +import ( + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "math/big" + + "golang.org/x/crypto/ed25519" +) + +// Generate generates a DNSKEY of the given bit size. +// The public part is put inside the DNSKEY record. +// The Algorithm in the key must be set as this will define +// what kind of DNSKEY will be generated. +// The ECDSA algorithms imply a fixed keysize, in that case +// bits should be set to the size of the algorithm. +func (k *DNSKEY) Generate(bits int) (crypto.PrivateKey, error) { + switch k.Algorithm { + case DSA, DSANSEC3SHA1: + if bits != 1024 { + return nil, ErrKeySize + } + case RSAMD5, RSASHA1, RSASHA256, RSASHA1NSEC3SHA1: + if bits < 512 || bits > 4096 { + return nil, ErrKeySize + } + case RSASHA512: + if bits < 1024 || bits > 4096 { + return nil, ErrKeySize + } + case ECDSAP256SHA256: + if bits != 256 { + return nil, ErrKeySize + } + case ECDSAP384SHA384: + if bits != 384 { + return nil, ErrKeySize + } + case ED25519: + if bits != 256 { + return nil, ErrKeySize + } + } + + switch k.Algorithm { + case DSA, DSANSEC3SHA1: + params := new(dsa.Parameters) + if err := dsa.GenerateParameters(params, rand.Reader, dsa.L1024N160); err != nil { + return nil, err + } + priv := new(dsa.PrivateKey) + priv.PublicKey.Parameters = *params + err := dsa.GenerateKey(priv, rand.Reader) + if err != nil { + return nil, err + } + k.setPublicKeyDSA(params.Q, params.P, params.G, priv.PublicKey.Y) + return priv, nil + case RSAMD5, RSASHA1, RSASHA256, RSASHA512, RSASHA1NSEC3SHA1: + priv, err := rsa.GenerateKey(rand.Reader, bits) + if err != nil { + return nil, err + } + k.setPublicKeyRSA(priv.PublicKey.E, priv.PublicKey.N) + return priv, nil + case ECDSAP256SHA256, ECDSAP384SHA384: + var c elliptic.Curve + switch k.Algorithm { + case ECDSAP256SHA256: + c = elliptic.P256() + case ECDSAP384SHA384: + c = elliptic.P384() + } + priv, err := ecdsa.GenerateKey(c, rand.Reader) + if err != nil { + return nil, err + } + k.setPublicKeyECDSA(priv.PublicKey.X, priv.PublicKey.Y) + return priv, nil + case ED25519: + pub, priv, err := ed25519.GenerateKey(rand.Reader) + if err != nil { + return nil, err + } + k.setPublicKeyED25519(pub) + return priv, nil + default: + return nil, ErrAlg + } +} + +// Set the public key (the value E and N) +func (k *DNSKEY) setPublicKeyRSA(_E int, _N *big.Int) bool { + if _E == 0 || _N == nil { + return false + } + buf := exponentToBuf(_E) + buf = append(buf, _N.Bytes()...) + k.PublicKey = toBase64(buf) + return true +} + +// Set the public key for Elliptic Curves +func (k *DNSKEY) setPublicKeyECDSA(_X, _Y *big.Int) bool { + if _X == nil || _Y == nil { + return false + } + var intlen int + switch k.Algorithm { + case ECDSAP256SHA256: + intlen = 32 + case ECDSAP384SHA384: + intlen = 48 + } + k.PublicKey = toBase64(curveToBuf(_X, _Y, intlen)) + return true +} + +// Set the public key for DSA +func (k *DNSKEY) setPublicKeyDSA(_Q, _P, _G, _Y *big.Int) bool { + if _Q == nil || _P == nil || _G == nil || _Y == nil { + return false + } + buf := dsaToBuf(_Q, _P, _G, _Y) + k.PublicKey = toBase64(buf) + return true +} + +// Set the public key for Ed25519 +func (k *DNSKEY) setPublicKeyED25519(_K ed25519.PublicKey) bool { + if _K == nil { + return false + } + k.PublicKey = toBase64(_K) + return true +} + +// Set the public key (the values E and N) for RSA +// RFC 3110: Section 2. RSA Public KEY Resource Records +func exponentToBuf(_E int) []byte { + var buf []byte + i := big.NewInt(int64(_E)).Bytes() + if len(i) < 256 { + buf = make([]byte, 1, 1+len(i)) + buf[0] = uint8(len(i)) + } else { + buf = make([]byte, 3, 3+len(i)) + buf[0] = 0 + buf[1] = uint8(len(i) >> 8) + buf[2] = uint8(len(i)) + } + buf = append(buf, i...) + return buf +} + +// Set the public key for X and Y for Curve. The two +// values are just concatenated. +func curveToBuf(_X, _Y *big.Int, intlen int) []byte { + buf := intToBytes(_X, intlen) + buf = append(buf, intToBytes(_Y, intlen)...) + return buf +} + +// Set the public key for X and Y for Curve. The two +// values are just concatenated. +func dsaToBuf(_Q, _P, _G, _Y *big.Int) []byte { + t := divRoundUp(divRoundUp(_G.BitLen(), 8)-64, 8) + buf := []byte{byte(t)} + buf = append(buf, intToBytes(_Q, 20)...) + buf = append(buf, intToBytes(_P, 64+t*8)...) + buf = append(buf, intToBytes(_G, 64+t*8)...) + buf = append(buf, intToBytes(_Y, 64+t*8)...) + return buf +} diff --git a/vendor/github.com/miekg/dns/dnssec_keyscan.go b/vendor/github.com/miekg/dns/dnssec_keyscan.go new file mode 100644 index 00000000..e9dd6957 --- /dev/null +++ b/vendor/github.com/miekg/dns/dnssec_keyscan.go @@ -0,0 +1,352 @@ +package dns + +import ( + "bufio" + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/rsa" + "io" + "math/big" + "strconv" + "strings" + + "golang.org/x/crypto/ed25519" +) + +// NewPrivateKey returns a PrivateKey by parsing the string s. +// s should be in the same form of the BIND private key files. +func (k *DNSKEY) NewPrivateKey(s string) (crypto.PrivateKey, error) { + if s == "" || s[len(s)-1] != '\n' { // We need a closing newline + return k.ReadPrivateKey(strings.NewReader(s+"\n"), "") + } + return k.ReadPrivateKey(strings.NewReader(s), "") +} + +// ReadPrivateKey reads a private key from the io.Reader q. The string file is +// only used in error reporting. +// The public key must be known, because some cryptographic algorithms embed +// the public inside the privatekey. +func (k *DNSKEY) ReadPrivateKey(q io.Reader, file string) (crypto.PrivateKey, error) { + m, err := parseKey(q, file) + if m == nil { + return nil, err + } + if _, ok := m["private-key-format"]; !ok { + return nil, ErrPrivKey + } + if m["private-key-format"] != "v1.2" && m["private-key-format"] != "v1.3" { + return nil, ErrPrivKey + } + // TODO(mg): check if the pubkey matches the private key + algo, err := strconv.ParseUint(strings.SplitN(m["algorithm"], " ", 2)[0], 10, 8) + if err != nil { + return nil, ErrPrivKey + } + switch uint8(algo) { + case DSA: + priv, err := readPrivateKeyDSA(m) + if err != nil { + return nil, err + } + pub := k.publicKeyDSA() + if pub == nil { + return nil, ErrKey + } + priv.PublicKey = *pub + return priv, nil + case RSAMD5: + fallthrough + case RSASHA1: + fallthrough + case RSASHA1NSEC3SHA1: + fallthrough + case RSASHA256: + fallthrough + case RSASHA512: + priv, err := readPrivateKeyRSA(m) + if err != nil { + return nil, err + } + pub := k.publicKeyRSA() + if pub == nil { + return nil, ErrKey + } + priv.PublicKey = *pub + return priv, nil + case ECCGOST: + return nil, ErrPrivKey + case ECDSAP256SHA256: + fallthrough + case ECDSAP384SHA384: + priv, err := readPrivateKeyECDSA(m) + if err != nil { + return nil, err + } + pub := k.publicKeyECDSA() + if pub == nil { + return nil, ErrKey + } + priv.PublicKey = *pub + return priv, nil + case ED25519: + return readPrivateKeyED25519(m) + default: + return nil, ErrPrivKey + } +} + +// Read a private key (file) string and create a public key. Return the private key. +func readPrivateKeyRSA(m map[string]string) (*rsa.PrivateKey, error) { + p := new(rsa.PrivateKey) + p.Primes = []*big.Int{nil, nil} + for k, v := range m { + switch k { + case "modulus", "publicexponent", "privateexponent", "prime1", "prime2": + v1, err := fromBase64([]byte(v)) + if err != nil { + return nil, err + } + switch k { + case "modulus": + p.PublicKey.N = new(big.Int).SetBytes(v1) + case "publicexponent": + i := new(big.Int).SetBytes(v1) + p.PublicKey.E = int(i.Int64()) // int64 should be large enough + case "privateexponent": + p.D = new(big.Int).SetBytes(v1) + case "prime1": + p.Primes[0] = new(big.Int).SetBytes(v1) + case "prime2": + p.Primes[1] = new(big.Int).SetBytes(v1) + } + case "exponent1", "exponent2", "coefficient": + // not used in Go (yet) + case "created", "publish", "activate": + // not used in Go (yet) + } + } + return p, nil +} + +func readPrivateKeyDSA(m map[string]string) (*dsa.PrivateKey, error) { + p := new(dsa.PrivateKey) + p.X = new(big.Int) + for k, v := range m { + switch k { + case "private_value(x)": + v1, err := fromBase64([]byte(v)) + if err != nil { + return nil, err + } + p.X.SetBytes(v1) + case "created", "publish", "activate": + /* not used in Go (yet) */ + } + } + return p, nil +} + +func readPrivateKeyECDSA(m map[string]string) (*ecdsa.PrivateKey, error) { + p := new(ecdsa.PrivateKey) + p.D = new(big.Int) + // TODO: validate that the required flags are present + for k, v := range m { + switch k { + case "privatekey": + v1, err := fromBase64([]byte(v)) + if err != nil { + return nil, err + } + p.D.SetBytes(v1) + case "created", "publish", "activate": + /* not used in Go (yet) */ + } + } + return p, nil +} + +func readPrivateKeyED25519(m map[string]string) (ed25519.PrivateKey, error) { + var p ed25519.PrivateKey + // TODO: validate that the required flags are present + for k, v := range m { + switch k { + case "privatekey": + p1, err := fromBase64([]byte(v)) + if err != nil { + return nil, err + } + if len(p1) != ed25519.SeedSize { + return nil, ErrPrivKey + } + p = ed25519.NewKeyFromSeed(p1) + case "created", "publish", "activate": + /* not used in Go (yet) */ + } + } + return p, nil +} + +// parseKey reads a private key from r. It returns a map[string]string, +// with the key-value pairs, or an error when the file is not correct. +func parseKey(r io.Reader, file string) (map[string]string, error) { + m := make(map[string]string) + var k string + + c := newKLexer(r) + + for l, ok := c.Next(); ok; l, ok = c.Next() { + // It should alternate + switch l.value { + case zKey: + k = l.token + case zValue: + if k == "" { + return nil, &ParseError{file, "no private key seen", l} + } + + m[strings.ToLower(k)] = l.token + k = "" + } + } + + // Surface any read errors from r. + if err := c.Err(); err != nil { + return nil, &ParseError{file: file, err: err.Error()} + } + + return m, nil +} + +type klexer struct { + br io.ByteReader + + readErr error + + line int + column int + + key bool + + eol bool // end-of-line +} + +func newKLexer(r io.Reader) *klexer { + br, ok := r.(io.ByteReader) + if !ok { + br = bufio.NewReaderSize(r, 1024) + } + + return &klexer{ + br: br, + + line: 1, + + key: true, + } +} + +func (kl *klexer) Err() error { + if kl.readErr == io.EOF { + return nil + } + + return kl.readErr +} + +// readByte returns the next byte from the input +func (kl *klexer) readByte() (byte, bool) { + if kl.readErr != nil { + return 0, false + } + + c, err := kl.br.ReadByte() + if err != nil { + kl.readErr = err + return 0, false + } + + // delay the newline handling until the next token is delivered, + // fixes off-by-one errors when reporting a parse error. + if kl.eol { + kl.line++ + kl.column = 0 + kl.eol = false + } + + if c == '\n' { + kl.eol = true + } else { + kl.column++ + } + + return c, true +} + +func (kl *klexer) Next() (lex, bool) { + var ( + l lex + + str strings.Builder + + commt bool + ) + + for x, ok := kl.readByte(); ok; x, ok = kl.readByte() { + l.line, l.column = kl.line, kl.column + + switch x { + case ':': + if commt || !kl.key { + break + } + + kl.key = false + + // Next token is a space, eat it + kl.readByte() + + l.value = zKey + l.token = str.String() + return l, true + case ';': + commt = true + case '\n': + if commt { + // Reset a comment + commt = false + } + + if kl.key && str.Len() == 0 { + // ignore empty lines + break + } + + kl.key = true + + l.value = zValue + l.token = str.String() + return l, true + default: + if commt { + break + } + + str.WriteByte(x) + } + } + + if kl.readErr != nil && kl.readErr != io.EOF { + // Don't return any tokens after a read error occurs. + return lex{value: zEOF}, false + } + + if str.Len() > 0 { + // Send remainder + l.value = zValue + l.token = str.String() + return l, true + } + + return lex{value: zEOF}, false +} diff --git a/vendor/github.com/miekg/dns/dnssec_privkey.go b/vendor/github.com/miekg/dns/dnssec_privkey.go new file mode 100644 index 00000000..4493c9d5 --- /dev/null +++ b/vendor/github.com/miekg/dns/dnssec_privkey.go @@ -0,0 +1,94 @@ +package dns + +import ( + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/rsa" + "math/big" + "strconv" + + "golang.org/x/crypto/ed25519" +) + +const format = "Private-key-format: v1.3\n" + +var bigIntOne = big.NewInt(1) + +// PrivateKeyString converts a PrivateKey to a string. This string has the same +// format as the private-key-file of BIND9 (Private-key-format: v1.3). +// It needs some info from the key (the algorithm), so its a method of the DNSKEY +// It supports rsa.PrivateKey, ecdsa.PrivateKey and dsa.PrivateKey +func (r *DNSKEY) PrivateKeyString(p crypto.PrivateKey) string { + algorithm := strconv.Itoa(int(r.Algorithm)) + algorithm += " (" + AlgorithmToString[r.Algorithm] + ")" + + switch p := p.(type) { + case *rsa.PrivateKey: + modulus := toBase64(p.PublicKey.N.Bytes()) + e := big.NewInt(int64(p.PublicKey.E)) + publicExponent := toBase64(e.Bytes()) + privateExponent := toBase64(p.D.Bytes()) + prime1 := toBase64(p.Primes[0].Bytes()) + prime2 := toBase64(p.Primes[1].Bytes()) + // Calculate Exponent1/2 and Coefficient as per: http://en.wikipedia.org/wiki/RSA#Using_the_Chinese_remainder_algorithm + // and from: http://code.google.com/p/go/issues/detail?id=987 + p1 := new(big.Int).Sub(p.Primes[0], bigIntOne) + q1 := new(big.Int).Sub(p.Primes[1], bigIntOne) + exp1 := new(big.Int).Mod(p.D, p1) + exp2 := new(big.Int).Mod(p.D, q1) + coeff := new(big.Int).ModInverse(p.Primes[1], p.Primes[0]) + + exponent1 := toBase64(exp1.Bytes()) + exponent2 := toBase64(exp2.Bytes()) + coefficient := toBase64(coeff.Bytes()) + + return format + + "Algorithm: " + algorithm + "\n" + + "Modulus: " + modulus + "\n" + + "PublicExponent: " + publicExponent + "\n" + + "PrivateExponent: " + privateExponent + "\n" + + "Prime1: " + prime1 + "\n" + + "Prime2: " + prime2 + "\n" + + "Exponent1: " + exponent1 + "\n" + + "Exponent2: " + exponent2 + "\n" + + "Coefficient: " + coefficient + "\n" + + case *ecdsa.PrivateKey: + var intlen int + switch r.Algorithm { + case ECDSAP256SHA256: + intlen = 32 + case ECDSAP384SHA384: + intlen = 48 + } + private := toBase64(intToBytes(p.D, intlen)) + return format + + "Algorithm: " + algorithm + "\n" + + "PrivateKey: " + private + "\n" + + case *dsa.PrivateKey: + T := divRoundUp(divRoundUp(p.PublicKey.Parameters.G.BitLen(), 8)-64, 8) + prime := toBase64(intToBytes(p.PublicKey.Parameters.P, 64+T*8)) + subprime := toBase64(intToBytes(p.PublicKey.Parameters.Q, 20)) + base := toBase64(intToBytes(p.PublicKey.Parameters.G, 64+T*8)) + priv := toBase64(intToBytes(p.X, 20)) + pub := toBase64(intToBytes(p.PublicKey.Y, 64+T*8)) + return format + + "Algorithm: " + algorithm + "\n" + + "Prime(p): " + prime + "\n" + + "Subprime(q): " + subprime + "\n" + + "Base(g): " + base + "\n" + + "Private_value(x): " + priv + "\n" + + "Public_value(y): " + pub + "\n" + + case ed25519.PrivateKey: + private := toBase64(p.Seed()) + return format + + "Algorithm: " + algorithm + "\n" + + "PrivateKey: " + private + "\n" + + default: + return "" + } +} diff --git a/vendor/github.com/miekg/dns/doc.go b/vendor/github.com/miekg/dns/doc.go new file mode 100644 index 00000000..d3d7cec9 --- /dev/null +++ b/vendor/github.com/miekg/dns/doc.go @@ -0,0 +1,269 @@ +/* +Package dns implements a full featured interface to the Domain Name System. +Both server- and client-side programming is supported. The package allows +complete control over what is sent out to the DNS. The API follows the +less-is-more principle, by presenting a small, clean interface. + +It supports (asynchronous) querying/replying, incoming/outgoing zone transfers, +TSIG, EDNS0, dynamic updates, notifies and DNSSEC validation/signing. + +Note that domain names MUST be fully qualified before sending them, unqualified +names in a message will result in a packing failure. + +Resource records are native types. They are not stored in wire format. Basic +usage pattern for creating a new resource record: + + r := new(dns.MX) + r.Hdr = dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeMX, Class: dns.ClassINET, Ttl: 3600} + r.Preference = 10 + r.Mx = "mx.miek.nl." + +Or directly from a string: + + mx, err := dns.NewRR("miek.nl. 3600 IN MX 10 mx.miek.nl.") + +Or when the default origin (.) and TTL (3600) and class (IN) suit you: + + mx, err := dns.NewRR("miek.nl MX 10 mx.miek.nl") + +Or even: + + mx, err := dns.NewRR("$ORIGIN nl.\nmiek 1H IN MX 10 mx.miek") + +In the DNS messages are exchanged, these messages contain resource records +(sets). Use pattern for creating a message: + + m := new(dns.Msg) + m.SetQuestion("miek.nl.", dns.TypeMX) + +Or when not certain if the domain name is fully qualified: + + m.SetQuestion(dns.Fqdn("miek.nl"), dns.TypeMX) + +The message m is now a message with the question section set to ask the MX +records for the miek.nl. zone. + +The following is slightly more verbose, but more flexible: + + m1 := new(dns.Msg) + m1.Id = dns.Id() + m1.RecursionDesired = true + m1.Question = make([]dns.Question, 1) + m1.Question[0] = dns.Question{"miek.nl.", dns.TypeMX, dns.ClassINET} + +After creating a message it can be sent. Basic use pattern for synchronous +querying the DNS at a server configured on 127.0.0.1 and port 53: + + c := new(dns.Client) + in, rtt, err := c.Exchange(m1, "127.0.0.1:53") + +Suppressing multiple outstanding queries (with the same question, type and +class) is as easy as setting: + + c.SingleInflight = true + +More advanced options are available using a net.Dialer and the corresponding API. +For example it is possible to set a timeout, or to specify a source IP address +and port to use for the connection: + + c := new(dns.Client) + laddr := net.UDPAddr{ + IP: net.ParseIP("[::1]"), + Port: 12345, + Zone: "", + } + c.Dialer := &net.Dialer{ + Timeout: 200 * time.Millisecond, + LocalAddr: &laddr, + } + in, rtt, err := c.Exchange(m1, "8.8.8.8:53") + +If these "advanced" features are not needed, a simple UDP query can be sent, +with: + + in, err := dns.Exchange(m1, "127.0.0.1:53") + +When this functions returns you will get dns message. A dns message consists +out of four sections. +The question section: in.Question, the answer section: in.Answer, +the authority section: in.Ns and the additional section: in.Extra. + +Each of these sections (except the Question section) contain a []RR. Basic +use pattern for accessing the rdata of a TXT RR as the first RR in +the Answer section: + + if t, ok := in.Answer[0].(*dns.TXT); ok { + // do something with t.Txt + } + +Domain Name and TXT Character String Representations + +Both domain names and TXT character strings are converted to presentation form +both when unpacked and when converted to strings. + +For TXT character strings, tabs, carriage returns and line feeds will be +converted to \t, \r and \n respectively. Back slashes and quotations marks will +be escaped. Bytes below 32 and above 127 will be converted to \DDD form. + +For domain names, in addition to the above rules brackets, periods, spaces, +semicolons and the at symbol are escaped. + +DNSSEC + +DNSSEC (DNS Security Extension) adds a layer of security to the DNS. It uses +public key cryptography to sign resource records. The public keys are stored in +DNSKEY records and the signatures in RRSIG records. + +Requesting DNSSEC information for a zone is done by adding the DO (DNSSEC OK) +bit to a request. + + m := new(dns.Msg) + m.SetEdns0(4096, true) + +Signature generation, signature verification and key generation are all supported. + +DYNAMIC UPDATES + +Dynamic updates reuses the DNS message format, but renames three of the +sections. Question is Zone, Answer is Prerequisite, Authority is Update, only +the Additional is not renamed. See RFC 2136 for the gory details. + +You can set a rather complex set of rules for the existence of absence of +certain resource records or names in a zone to specify if resource records +should be added or removed. The table from RFC 2136 supplemented with the Go +DNS function shows which functions exist to specify the prerequisites. + + 3.2.4 - Table Of Metavalues Used In Prerequisite Section + + CLASS TYPE RDATA Meaning Function + -------------------------------------------------------------- + ANY ANY empty Name is in use dns.NameUsed + ANY rrset empty RRset exists (value indep) dns.RRsetUsed + NONE ANY empty Name is not in use dns.NameNotUsed + NONE rrset empty RRset does not exist dns.RRsetNotUsed + zone rrset rr RRset exists (value dep) dns.Used + +The prerequisite section can also be left empty. If you have decided on the +prerequisites you can tell what RRs should be added or deleted. The next table +shows the options you have and what functions to call. + + 3.4.2.6 - Table Of Metavalues Used In Update Section + + CLASS TYPE RDATA Meaning Function + --------------------------------------------------------------- + ANY ANY empty Delete all RRsets from name dns.RemoveName + ANY rrset empty Delete an RRset dns.RemoveRRset + NONE rrset rr Delete an RR from RRset dns.Remove + zone rrset rr Add to an RRset dns.Insert + +TRANSACTION SIGNATURE + +An TSIG or transaction signature adds a HMAC TSIG record to each message sent. +The supported algorithms include: HmacMD5, HmacSHA1, HmacSHA256 and HmacSHA512. + +Basic use pattern when querying with a TSIG name "axfr." (note that these key names +must be fully qualified - as they are domain names) and the base64 secret +"so6ZGir4GPAqINNh9U5c3A==": + +If an incoming message contains a TSIG record it MUST be the last record in +the additional section (RFC2845 3.2). This means that you should make the +call to SetTsig last, right before executing the query. If you make any +changes to the RRset after calling SetTsig() the signature will be incorrect. + + c := new(dns.Client) + c.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} + m := new(dns.Msg) + m.SetQuestion("miek.nl.", dns.TypeMX) + m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) + ... + // When sending the TSIG RR is calculated and filled in before sending + +When requesting an zone transfer (almost all TSIG usage is when requesting zone +transfers), with TSIG, this is the basic use pattern. In this example we +request an AXFR for miek.nl. with TSIG key named "axfr." and secret +"so6ZGir4GPAqINNh9U5c3A==" and using the server 176.58.119.54: + + t := new(dns.Transfer) + m := new(dns.Msg) + t.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} + m.SetAxfr("miek.nl.") + m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) + c, err := t.In(m, "176.58.119.54:53") + for r := range c { ... } + +You can now read the records from the transfer as they come in. Each envelope +is checked with TSIG. If something is not correct an error is returned. + +Basic use pattern validating and replying to a message that has TSIG set. + + server := &dns.Server{Addr: ":53", Net: "udp"} + server.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} + go server.ListenAndServe() + dns.HandleFunc(".", handleRequest) + + func handleRequest(w dns.ResponseWriter, r *dns.Msg) { + m := new(dns.Msg) + m.SetReply(r) + if r.IsTsig() != nil { + if w.TsigStatus() == nil { + // *Msg r has an TSIG record and it was validated + m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) + } else { + // *Msg r has an TSIG records and it was not valided + } + } + w.WriteMsg(m) + } + +PRIVATE RRS + +RFC 6895 sets aside a range of type codes for private use. This range is 65,280 +- 65,534 (0xFF00 - 0xFFFE). When experimenting with new Resource Records these +can be used, before requesting an official type code from IANA. + +See https://miek.nl/2014/September/21/idn-and-private-rr-in-go-dns/ for more +information. + +EDNS0 + +EDNS0 is an extension mechanism for the DNS defined in RFC 2671 and updated by +RFC 6891. It defines an new RR type, the OPT RR, which is then completely +abused. + +Basic use pattern for creating an (empty) OPT RR: + + o := new(dns.OPT) + o.Hdr.Name = "." // MUST be the root zone, per definition. + o.Hdr.Rrtype = dns.TypeOPT + +The rdata of an OPT RR consists out of a slice of EDNS0 (RFC 6891) interfaces. +Currently only a few have been standardized: EDNS0_NSID (RFC 5001) and +EDNS0_SUBNET (draft-vandergaast-edns-client-subnet-02). Note that these options +may be combined in an OPT RR. Basic use pattern for a server to check if (and +which) options are set: + + // o is a dns.OPT + for _, s := range o.Option { + switch e := s.(type) { + case *dns.EDNS0_NSID: + // do stuff with e.Nsid + case *dns.EDNS0_SUBNET: + // access e.Family, e.Address, etc. + } + } + +SIG(0) + +From RFC 2931: + + SIG(0) provides protection for DNS transactions and requests .... + ... protection for glue records, DNS requests, protection for message headers + on requests and responses, and protection of the overall integrity of a response. + +It works like TSIG, except that SIG(0) uses public key cryptography, instead of +the shared secret approach in TSIG. Supported algorithms: DSA, ECDSAP256SHA256, +ECDSAP384SHA384, RSASHA1, RSASHA256 and RSASHA512. + +Signing subsequent messages in multi-message sessions is not implemented. +*/ +package dns diff --git a/vendor/github.com/miekg/dns/duplicate.go b/vendor/github.com/miekg/dns/duplicate.go new file mode 100644 index 00000000..00cda0aa --- /dev/null +++ b/vendor/github.com/miekg/dns/duplicate.go @@ -0,0 +1,38 @@ +package dns + +//go:generate go run duplicate_generate.go + +// IsDuplicate checks of r1 and r2 are duplicates of each other, excluding the TTL. +// So this means the header data is equal *and* the RDATA is the same. Return true +// is so, otherwise false. +// It's is a protocol violation to have identical RRs in a message. +func IsDuplicate(r1, r2 RR) bool { + // Check whether the record header is identical. + if !r1.Header().isDuplicate(r2.Header()) { + return false + } + + // Check whether the RDATA is identical. + return r1.isDuplicate(r2) +} + +func (r1 *RR_Header) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*RR_Header) + if !ok { + return false + } + if r1.Class != r2.Class { + return false + } + if r1.Rrtype != r2.Rrtype { + return false + } + if !isDuplicateName(r1.Name, r2.Name) { + return false + } + // ignore TTL + return true +} + +// isDuplicateName checks if the domain names s1 and s2 are equal. +func isDuplicateName(s1, s2 string) bool { return equal(s1, s2) } diff --git a/vendor/github.com/miekg/dns/duplicate_generate.go b/vendor/github.com/miekg/dns/duplicate_generate.go new file mode 100644 index 00000000..9b7a71b1 --- /dev/null +++ b/vendor/github.com/miekg/dns/duplicate_generate.go @@ -0,0 +1,144 @@ +//+build ignore + +// types_generate.go is meant to run with go generate. It will use +// go/{importer,types} to track down all the RR struct types. Then for each type +// it will generate conversion tables (TypeToRR and TypeToString) and banal +// methods (len, Header, copy) based on the struct tags. The generated source is +// written to ztypes.go, and is meant to be checked into git. +package main + +import ( + "bytes" + "fmt" + "go/format" + "go/importer" + "go/types" + "log" + "os" +) + +var packageHdr = ` +// Code generated by "go run duplicate_generate.go"; DO NOT EDIT. + +package dns + +` + +func getTypeStruct(t types.Type, scope *types.Scope) (*types.Struct, bool) { + st, ok := t.Underlying().(*types.Struct) + if !ok { + return nil, false + } + if st.Field(0).Type() == scope.Lookup("RR_Header").Type() { + return st, false + } + if st.Field(0).Anonymous() { + st, _ := getTypeStruct(st.Field(0).Type(), scope) + return st, true + } + return nil, false +} + +func main() { + // Import and type-check the package + pkg, err := importer.Default().Import("github.com/miekg/dns") + fatalIfErr(err) + scope := pkg.Scope() + + // Collect actual types (*X) + var namedTypes []string + for _, name := range scope.Names() { + o := scope.Lookup(name) + if o == nil || !o.Exported() { + continue + } + + if st, _ := getTypeStruct(o.Type(), scope); st == nil { + continue + } + + if name == "PrivateRR" || name == "OPT" { + continue + } + + namedTypes = append(namedTypes, o.Name()) + } + + b := &bytes.Buffer{} + b.WriteString(packageHdr) + + // Generate the duplicate check for each type. + fmt.Fprint(b, "// isDuplicate() functions\n\n") + for _, name := range namedTypes { + + o := scope.Lookup(name) + st, isEmbedded := getTypeStruct(o.Type(), scope) + if isEmbedded { + continue + } + fmt.Fprintf(b, "func (r1 *%s) isDuplicate(_r2 RR) bool {\n", name) + fmt.Fprintf(b, "r2, ok := _r2.(*%s)\n", name) + fmt.Fprint(b, "if !ok { return false }\n") + fmt.Fprint(b, "_ = r2\n") + for i := 1; i < st.NumFields(); i++ { + field := st.Field(i).Name() + o2 := func(s string) { fmt.Fprintf(b, s+"\n", field, field) } + o3 := func(s string) { fmt.Fprintf(b, s+"\n", field, field, field) } + + // For some reason, a and aaaa don't pop up as *types.Slice here (mostly like because the are + // *indirectly* defined as a slice in the net package). + if _, ok := st.Field(i).Type().(*types.Slice); ok { + o2("if len(r1.%s) != len(r2.%s) {\nreturn false\n}") + + if st.Tag(i) == `dns:"cdomain-name"` || st.Tag(i) == `dns:"domain-name"` { + o3(`for i := 0; i < len(r1.%s); i++ { + if !isDuplicateName(r1.%s[i], r2.%s[i]) { + return false + } + }`) + + continue + } + + o3(`for i := 0; i < len(r1.%s); i++ { + if r1.%s[i] != r2.%s[i] { + return false + } + }`) + + continue + } + + switch st.Tag(i) { + case `dns:"-"`: + // ignored + case `dns:"a"`, `dns:"aaaa"`: + o2("if !r1.%s.Equal(r2.%s) {\nreturn false\n}") + case `dns:"cdomain-name"`, `dns:"domain-name"`: + o2("if !isDuplicateName(r1.%s, r2.%s) {\nreturn false\n}") + default: + o2("if r1.%s != r2.%s {\nreturn false\n}") + } + } + fmt.Fprintf(b, "return true\n}\n\n") + } + + // gofmt + res, err := format.Source(b.Bytes()) + if err != nil { + b.WriteTo(os.Stderr) + log.Fatal(err) + } + + // write result + f, err := os.Create("zduplicate.go") + fatalIfErr(err) + defer f.Close() + f.Write(res) +} + +func fatalIfErr(err error) { + if err != nil { + log.Fatal(err) + } +} diff --git a/vendor/github.com/miekg/dns/edns.go b/vendor/github.com/miekg/dns/edns.go new file mode 100644 index 00000000..ca8873e1 --- /dev/null +++ b/vendor/github.com/miekg/dns/edns.go @@ -0,0 +1,659 @@ +package dns + +import ( + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + "net" + "strconv" +) + +// EDNS0 Option codes. +const ( + EDNS0LLQ = 0x1 // long lived queries: http://tools.ietf.org/html/draft-sekar-dns-llq-01 + EDNS0UL = 0x2 // update lease draft: http://files.dns-sd.org/draft-sekar-dns-ul.txt + EDNS0NSID = 0x3 // nsid (See RFC 5001) + EDNS0DAU = 0x5 // DNSSEC Algorithm Understood + EDNS0DHU = 0x6 // DS Hash Understood + EDNS0N3U = 0x7 // NSEC3 Hash Understood + EDNS0SUBNET = 0x8 // client-subnet (See RFC 7871) + EDNS0EXPIRE = 0x9 // EDNS0 expire + EDNS0COOKIE = 0xa // EDNS0 Cookie + EDNS0TCPKEEPALIVE = 0xb // EDNS0 tcp keep alive (See RFC 7828) + EDNS0PADDING = 0xc // EDNS0 padding (See RFC 7830) + EDNS0LOCALSTART = 0xFDE9 // Beginning of range reserved for local/experimental use (See RFC 6891) + EDNS0LOCALEND = 0xFFFE // End of range reserved for local/experimental use (See RFC 6891) + _DO = 1 << 15 // DNSSEC OK +) + +// OPT is the EDNS0 RR appended to messages to convey extra (meta) information. +// See RFC 6891. +type OPT struct { + Hdr RR_Header + Option []EDNS0 `dns:"opt"` +} + +func (rr *OPT) String() string { + s := "\n;; OPT PSEUDOSECTION:\n; EDNS: version " + strconv.Itoa(int(rr.Version())) + "; " + if rr.Do() { + s += "flags: do; " + } else { + s += "flags: ; " + } + s += "udp: " + strconv.Itoa(int(rr.UDPSize())) + + for _, o := range rr.Option { + switch o.(type) { + case *EDNS0_NSID: + s += "\n; NSID: " + o.String() + h, e := o.pack() + var r string + if e == nil { + for _, c := range h { + r += "(" + string(c) + ")" + } + s += " " + r + } + case *EDNS0_SUBNET: + s += "\n; SUBNET: " + o.String() + case *EDNS0_COOKIE: + s += "\n; COOKIE: " + o.String() + case *EDNS0_UL: + s += "\n; UPDATE LEASE: " + o.String() + case *EDNS0_LLQ: + s += "\n; LONG LIVED QUERIES: " + o.String() + case *EDNS0_DAU: + s += "\n; DNSSEC ALGORITHM UNDERSTOOD: " + o.String() + case *EDNS0_DHU: + s += "\n; DS HASH UNDERSTOOD: " + o.String() + case *EDNS0_N3U: + s += "\n; NSEC3 HASH UNDERSTOOD: " + o.String() + case *EDNS0_LOCAL: + s += "\n; LOCAL OPT: " + o.String() + case *EDNS0_PADDING: + s += "\n; PADDING: " + o.String() + } + } + return s +} + +func (rr *OPT) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + for _, o := range rr.Option { + l += 4 // Account for 2-byte option code and 2-byte option length. + lo, _ := o.pack() + l += len(lo) + } + return l +} + +func (rr *OPT) parse(c *zlexer, origin, file string) *ParseError { + panic("dns: internal error: parse should never be called on OPT") +} + +func (r1 *OPT) isDuplicate(r2 RR) bool { return false } + +// return the old value -> delete SetVersion? + +// Version returns the EDNS version used. Only zero is defined. +func (rr *OPT) Version() uint8 { + return uint8(rr.Hdr.Ttl & 0x00FF0000 >> 16) +} + +// SetVersion sets the version of EDNS. This is usually zero. +func (rr *OPT) SetVersion(v uint8) { + rr.Hdr.Ttl = rr.Hdr.Ttl&0xFF00FFFF | uint32(v)<<16 +} + +// ExtendedRcode returns the EDNS extended RCODE field (the upper 8 bits of the TTL). +func (rr *OPT) ExtendedRcode() int { + return int(rr.Hdr.Ttl&0xFF000000>>24) << 4 +} + +// SetExtendedRcode sets the EDNS extended RCODE field. +// +// If the RCODE is not an extended RCODE, will reset the extended RCODE field to 0. +func (rr *OPT) SetExtendedRcode(v uint16) { + rr.Hdr.Ttl = rr.Hdr.Ttl&0x00FFFFFF | uint32(v>>4)<<24 +} + +// UDPSize returns the UDP buffer size. +func (rr *OPT) UDPSize() uint16 { + return rr.Hdr.Class +} + +// SetUDPSize sets the UDP buffer size. +func (rr *OPT) SetUDPSize(size uint16) { + rr.Hdr.Class = size +} + +// Do returns the value of the DO (DNSSEC OK) bit. +func (rr *OPT) Do() bool { + return rr.Hdr.Ttl&_DO == _DO +} + +// SetDo sets the DO (DNSSEC OK) bit. +// If we pass an argument, set the DO bit to that value. +// It is possible to pass 2 or more arguments. Any arguments after the 1st is silently ignored. +func (rr *OPT) SetDo(do ...bool) { + if len(do) == 1 { + if do[0] { + rr.Hdr.Ttl |= _DO + } else { + rr.Hdr.Ttl &^= _DO + } + } else { + rr.Hdr.Ttl |= _DO + } +} + +// EDNS0 defines an EDNS0 Option. An OPT RR can have multiple options appended to it. +type EDNS0 interface { + // Option returns the option code for the option. + Option() uint16 + // pack returns the bytes of the option data. + pack() ([]byte, error) + // unpack sets the data as found in the buffer. Is also sets + // the length of the slice as the length of the option data. + unpack([]byte) error + // String returns the string representation of the option. + String() string + // copy returns a deep-copy of the option. + copy() EDNS0 +} + +// EDNS0_NSID option is used to retrieve a nameserver +// identifier. When sending a request Nsid must be set to the empty string +// The identifier is an opaque string encoded as hex. +// Basic use pattern for creating an nsid option: +// +// o := new(dns.OPT) +// o.Hdr.Name = "." +// o.Hdr.Rrtype = dns.TypeOPT +// e := new(dns.EDNS0_NSID) +// e.Code = dns.EDNS0NSID +// e.Nsid = "AA" +// o.Option = append(o.Option, e) +type EDNS0_NSID struct { + Code uint16 // Always EDNS0NSID + Nsid string // This string needs to be hex encoded +} + +func (e *EDNS0_NSID) pack() ([]byte, error) { + h, err := hex.DecodeString(e.Nsid) + if err != nil { + return nil, err + } + return h, nil +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_NSID) Option() uint16 { return EDNS0NSID } // Option returns the option code. +func (e *EDNS0_NSID) unpack(b []byte) error { e.Nsid = hex.EncodeToString(b); return nil } +func (e *EDNS0_NSID) String() string { return e.Nsid } +func (e *EDNS0_NSID) copy() EDNS0 { return &EDNS0_NSID{e.Code, e.Nsid} } + +// EDNS0_SUBNET is the subnet option that is used to give the remote nameserver +// an idea of where the client lives. See RFC 7871. It can then give back a different +// answer depending on the location or network topology. +// Basic use pattern for creating an subnet option: +// +// o := new(dns.OPT) +// o.Hdr.Name = "." +// o.Hdr.Rrtype = dns.TypeOPT +// e := new(dns.EDNS0_SUBNET) +// e.Code = dns.EDNS0SUBNET +// e.Family = 1 // 1 for IPv4 source address, 2 for IPv6 +// e.SourceNetmask = 32 // 32 for IPV4, 128 for IPv6 +// e.SourceScope = 0 +// e.Address = net.ParseIP("127.0.0.1").To4() // for IPv4 +// // e.Address = net.ParseIP("2001:7b8:32a::2") // for IPV6 +// o.Option = append(o.Option, e) +// +// This code will parse all the available bits when unpacking (up to optlen). +// When packing it will apply SourceNetmask. If you need more advanced logic, +// patches welcome and good luck. +type EDNS0_SUBNET struct { + Code uint16 // Always EDNS0SUBNET + Family uint16 // 1 for IP, 2 for IP6 + SourceNetmask uint8 + SourceScope uint8 + Address net.IP +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_SUBNET) Option() uint16 { return EDNS0SUBNET } + +func (e *EDNS0_SUBNET) pack() ([]byte, error) { + b := make([]byte, 4) + binary.BigEndian.PutUint16(b[0:], e.Family) + b[2] = e.SourceNetmask + b[3] = e.SourceScope + switch e.Family { + case 0: + // "dig" sets AddressFamily to 0 if SourceNetmask is also 0 + // We might don't need to complain either + if e.SourceNetmask != 0 { + return nil, errors.New("dns: bad address family") + } + case 1: + if e.SourceNetmask > net.IPv4len*8 { + return nil, errors.New("dns: bad netmask") + } + if len(e.Address.To4()) != net.IPv4len { + return nil, errors.New("dns: bad address") + } + ip := e.Address.To4().Mask(net.CIDRMask(int(e.SourceNetmask), net.IPv4len*8)) + needLength := (e.SourceNetmask + 8 - 1) / 8 // division rounding up + b = append(b, ip[:needLength]...) + case 2: + if e.SourceNetmask > net.IPv6len*8 { + return nil, errors.New("dns: bad netmask") + } + if len(e.Address) != net.IPv6len { + return nil, errors.New("dns: bad address") + } + ip := e.Address.Mask(net.CIDRMask(int(e.SourceNetmask), net.IPv6len*8)) + needLength := (e.SourceNetmask + 8 - 1) / 8 // division rounding up + b = append(b, ip[:needLength]...) + default: + return nil, errors.New("dns: bad address family") + } + return b, nil +} + +func (e *EDNS0_SUBNET) unpack(b []byte) error { + if len(b) < 4 { + return ErrBuf + } + e.Family = binary.BigEndian.Uint16(b) + e.SourceNetmask = b[2] + e.SourceScope = b[3] + switch e.Family { + case 0: + // "dig" sets AddressFamily to 0 if SourceNetmask is also 0 + // It's okay to accept such a packet + if e.SourceNetmask != 0 { + return errors.New("dns: bad address family") + } + e.Address = net.IPv4(0, 0, 0, 0) + case 1: + if e.SourceNetmask > net.IPv4len*8 || e.SourceScope > net.IPv4len*8 { + return errors.New("dns: bad netmask") + } + addr := make(net.IP, net.IPv4len) + copy(addr, b[4:]) + e.Address = addr.To16() + case 2: + if e.SourceNetmask > net.IPv6len*8 || e.SourceScope > net.IPv6len*8 { + return errors.New("dns: bad netmask") + } + addr := make(net.IP, net.IPv6len) + copy(addr, b[4:]) + e.Address = addr + default: + return errors.New("dns: bad address family") + } + return nil +} + +func (e *EDNS0_SUBNET) String() (s string) { + if e.Address == nil { + s = "" + } else if e.Address.To4() != nil { + s = e.Address.String() + } else { + s = "[" + e.Address.String() + "]" + } + s += "/" + strconv.Itoa(int(e.SourceNetmask)) + "/" + strconv.Itoa(int(e.SourceScope)) + return +} + +func (e *EDNS0_SUBNET) copy() EDNS0 { + return &EDNS0_SUBNET{ + e.Code, + e.Family, + e.SourceNetmask, + e.SourceScope, + e.Address, + } +} + +// The EDNS0_COOKIE option is used to add a DNS Cookie to a message. +// +// o := new(dns.OPT) +// o.Hdr.Name = "." +// o.Hdr.Rrtype = dns.TypeOPT +// e := new(dns.EDNS0_COOKIE) +// e.Code = dns.EDNS0COOKIE +// e.Cookie = "24a5ac.." +// o.Option = append(o.Option, e) +// +// The Cookie field consists out of a client cookie (RFC 7873 Section 4), that is +// always 8 bytes. It may then optionally be followed by the server cookie. The server +// cookie is of variable length, 8 to a maximum of 32 bytes. In other words: +// +// cCookie := o.Cookie[:16] +// sCookie := o.Cookie[16:] +// +// There is no guarantee that the Cookie string has a specific length. +type EDNS0_COOKIE struct { + Code uint16 // Always EDNS0COOKIE + Cookie string // Hex-encoded cookie data +} + +func (e *EDNS0_COOKIE) pack() ([]byte, error) { + h, err := hex.DecodeString(e.Cookie) + if err != nil { + return nil, err + } + return h, nil +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_COOKIE) Option() uint16 { return EDNS0COOKIE } +func (e *EDNS0_COOKIE) unpack(b []byte) error { e.Cookie = hex.EncodeToString(b); return nil } +func (e *EDNS0_COOKIE) String() string { return e.Cookie } +func (e *EDNS0_COOKIE) copy() EDNS0 { return &EDNS0_COOKIE{e.Code, e.Cookie} } + +// The EDNS0_UL (Update Lease) (draft RFC) option is used to tell the server to set +// an expiration on an update RR. This is helpful for clients that cannot clean +// up after themselves. This is a draft RFC and more information can be found at +// http://files.dns-sd.org/draft-sekar-dns-ul.txt +// +// o := new(dns.OPT) +// o.Hdr.Name = "." +// o.Hdr.Rrtype = dns.TypeOPT +// e := new(dns.EDNS0_UL) +// e.Code = dns.EDNS0UL +// e.Lease = 120 // in seconds +// o.Option = append(o.Option, e) +type EDNS0_UL struct { + Code uint16 // Always EDNS0UL + Lease uint32 +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_UL) Option() uint16 { return EDNS0UL } +func (e *EDNS0_UL) String() string { return strconv.FormatUint(uint64(e.Lease), 10) } +func (e *EDNS0_UL) copy() EDNS0 { return &EDNS0_UL{e.Code, e.Lease} } + +// Copied: http://golang.org/src/pkg/net/dnsmsg.go +func (e *EDNS0_UL) pack() ([]byte, error) { + b := make([]byte, 4) + binary.BigEndian.PutUint32(b, e.Lease) + return b, nil +} + +func (e *EDNS0_UL) unpack(b []byte) error { + if len(b) < 4 { + return ErrBuf + } + e.Lease = binary.BigEndian.Uint32(b) + return nil +} + +// EDNS0_LLQ stands for Long Lived Queries: http://tools.ietf.org/html/draft-sekar-dns-llq-01 +// Implemented for completeness, as the EDNS0 type code is assigned. +type EDNS0_LLQ struct { + Code uint16 // Always EDNS0LLQ + Version uint16 + Opcode uint16 + Error uint16 + Id uint64 + LeaseLife uint32 +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_LLQ) Option() uint16 { return EDNS0LLQ } + +func (e *EDNS0_LLQ) pack() ([]byte, error) { + b := make([]byte, 18) + binary.BigEndian.PutUint16(b[0:], e.Version) + binary.BigEndian.PutUint16(b[2:], e.Opcode) + binary.BigEndian.PutUint16(b[4:], e.Error) + binary.BigEndian.PutUint64(b[6:], e.Id) + binary.BigEndian.PutUint32(b[14:], e.LeaseLife) + return b, nil +} + +func (e *EDNS0_LLQ) unpack(b []byte) error { + if len(b) < 18 { + return ErrBuf + } + e.Version = binary.BigEndian.Uint16(b[0:]) + e.Opcode = binary.BigEndian.Uint16(b[2:]) + e.Error = binary.BigEndian.Uint16(b[4:]) + e.Id = binary.BigEndian.Uint64(b[6:]) + e.LeaseLife = binary.BigEndian.Uint32(b[14:]) + return nil +} + +func (e *EDNS0_LLQ) String() string { + s := strconv.FormatUint(uint64(e.Version), 10) + " " + strconv.FormatUint(uint64(e.Opcode), 10) + + " " + strconv.FormatUint(uint64(e.Error), 10) + " " + strconv.FormatUint(e.Id, 10) + + " " + strconv.FormatUint(uint64(e.LeaseLife), 10) + return s +} +func (e *EDNS0_LLQ) copy() EDNS0 { + return &EDNS0_LLQ{e.Code, e.Version, e.Opcode, e.Error, e.Id, e.LeaseLife} +} + +// EDNS0_DUA implements the EDNS0 "DNSSEC Algorithm Understood" option. See RFC 6975. +type EDNS0_DAU struct { + Code uint16 // Always EDNS0DAU + AlgCode []uint8 +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_DAU) Option() uint16 { return EDNS0DAU } +func (e *EDNS0_DAU) pack() ([]byte, error) { return e.AlgCode, nil } +func (e *EDNS0_DAU) unpack(b []byte) error { e.AlgCode = b; return nil } + +func (e *EDNS0_DAU) String() string { + s := "" + for _, alg := range e.AlgCode { + if a, ok := AlgorithmToString[alg]; ok { + s += " " + a + } else { + s += " " + strconv.Itoa(int(alg)) + } + } + return s +} +func (e *EDNS0_DAU) copy() EDNS0 { return &EDNS0_DAU{e.Code, e.AlgCode} } + +// EDNS0_DHU implements the EDNS0 "DS Hash Understood" option. See RFC 6975. +type EDNS0_DHU struct { + Code uint16 // Always EDNS0DHU + AlgCode []uint8 +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_DHU) Option() uint16 { return EDNS0DHU } +func (e *EDNS0_DHU) pack() ([]byte, error) { return e.AlgCode, nil } +func (e *EDNS0_DHU) unpack(b []byte) error { e.AlgCode = b; return nil } + +func (e *EDNS0_DHU) String() string { + s := "" + for _, alg := range e.AlgCode { + if a, ok := HashToString[alg]; ok { + s += " " + a + } else { + s += " " + strconv.Itoa(int(alg)) + } + } + return s +} +func (e *EDNS0_DHU) copy() EDNS0 { return &EDNS0_DHU{e.Code, e.AlgCode} } + +// EDNS0_N3U implements the EDNS0 "NSEC3 Hash Understood" option. See RFC 6975. +type EDNS0_N3U struct { + Code uint16 // Always EDNS0N3U + AlgCode []uint8 +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_N3U) Option() uint16 { return EDNS0N3U } +func (e *EDNS0_N3U) pack() ([]byte, error) { return e.AlgCode, nil } +func (e *EDNS0_N3U) unpack(b []byte) error { e.AlgCode = b; return nil } + +func (e *EDNS0_N3U) String() string { + // Re-use the hash map + s := "" + for _, alg := range e.AlgCode { + if a, ok := HashToString[alg]; ok { + s += " " + a + } else { + s += " " + strconv.Itoa(int(alg)) + } + } + return s +} +func (e *EDNS0_N3U) copy() EDNS0 { return &EDNS0_N3U{e.Code, e.AlgCode} } + +// EDNS0_EXPIRE implementes the EDNS0 option as described in RFC 7314. +type EDNS0_EXPIRE struct { + Code uint16 // Always EDNS0EXPIRE + Expire uint32 +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_EXPIRE) Option() uint16 { return EDNS0EXPIRE } +func (e *EDNS0_EXPIRE) String() string { return strconv.FormatUint(uint64(e.Expire), 10) } +func (e *EDNS0_EXPIRE) copy() EDNS0 { return &EDNS0_EXPIRE{e.Code, e.Expire} } + +func (e *EDNS0_EXPIRE) pack() ([]byte, error) { + b := make([]byte, 4) + binary.BigEndian.PutUint32(b, e.Expire) + return b, nil +} + +func (e *EDNS0_EXPIRE) unpack(b []byte) error { + if len(b) < 4 { + return ErrBuf + } + e.Expire = binary.BigEndian.Uint32(b) + return nil +} + +// The EDNS0_LOCAL option is used for local/experimental purposes. The option +// code is recommended to be within the range [EDNS0LOCALSTART, EDNS0LOCALEND] +// (RFC6891), although any unassigned code can actually be used. The content of +// the option is made available in Data, unaltered. +// Basic use pattern for creating a local option: +// +// o := new(dns.OPT) +// o.Hdr.Name = "." +// o.Hdr.Rrtype = dns.TypeOPT +// e := new(dns.EDNS0_LOCAL) +// e.Code = dns.EDNS0LOCALSTART +// e.Data = []byte{72, 82, 74} +// o.Option = append(o.Option, e) +type EDNS0_LOCAL struct { + Code uint16 + Data []byte +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_LOCAL) Option() uint16 { return e.Code } +func (e *EDNS0_LOCAL) String() string { + return strconv.FormatInt(int64(e.Code), 10) + ":0x" + hex.EncodeToString(e.Data) +} +func (e *EDNS0_LOCAL) copy() EDNS0 { + b := make([]byte, len(e.Data)) + copy(b, e.Data) + return &EDNS0_LOCAL{e.Code, b} +} + +func (e *EDNS0_LOCAL) pack() ([]byte, error) { + b := make([]byte, len(e.Data)) + copied := copy(b, e.Data) + if copied != len(e.Data) { + return nil, ErrBuf + } + return b, nil +} + +func (e *EDNS0_LOCAL) unpack(b []byte) error { + e.Data = make([]byte, len(b)) + copied := copy(e.Data, b) + if copied != len(b) { + return ErrBuf + } + return nil +} + +// EDNS0_TCP_KEEPALIVE is an EDNS0 option that instructs the server to keep +// the TCP connection alive. See RFC 7828. +type EDNS0_TCP_KEEPALIVE struct { + Code uint16 // Always EDNSTCPKEEPALIVE + Length uint16 // the value 0 if the TIMEOUT is omitted, the value 2 if it is present; + Timeout uint16 // an idle timeout value for the TCP connection, specified in units of 100 milliseconds, encoded in network byte order. +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_TCP_KEEPALIVE) Option() uint16 { return EDNS0TCPKEEPALIVE } + +func (e *EDNS0_TCP_KEEPALIVE) pack() ([]byte, error) { + if e.Timeout != 0 && e.Length != 2 { + return nil, errors.New("dns: timeout specified but length is not 2") + } + if e.Timeout == 0 && e.Length != 0 { + return nil, errors.New("dns: timeout not specified but length is not 0") + } + b := make([]byte, 4+e.Length) + binary.BigEndian.PutUint16(b[0:], e.Code) + binary.BigEndian.PutUint16(b[2:], e.Length) + if e.Length == 2 { + binary.BigEndian.PutUint16(b[4:], e.Timeout) + } + return b, nil +} + +func (e *EDNS0_TCP_KEEPALIVE) unpack(b []byte) error { + if len(b) < 4 { + return ErrBuf + } + e.Length = binary.BigEndian.Uint16(b[2:4]) + if e.Length != 0 && e.Length != 2 { + return errors.New("dns: length mismatch, want 0/2 but got " + strconv.FormatUint(uint64(e.Length), 10)) + } + if e.Length == 2 { + if len(b) < 6 { + return ErrBuf + } + e.Timeout = binary.BigEndian.Uint16(b[4:6]) + } + return nil +} + +func (e *EDNS0_TCP_KEEPALIVE) String() (s string) { + s = "use tcp keep-alive" + if e.Length == 0 { + s += ", timeout omitted" + } else { + s += fmt.Sprintf(", timeout %dms", e.Timeout*100) + } + return +} +func (e *EDNS0_TCP_KEEPALIVE) copy() EDNS0 { return &EDNS0_TCP_KEEPALIVE{e.Code, e.Length, e.Timeout} } + +// EDNS0_PADDING option is used to add padding to a request/response. The default +// value of padding SHOULD be 0x0 but other values MAY be used, for instance if +// compression is applied before encryption which may break signatures. +type EDNS0_PADDING struct { + Padding []byte +} + +// Option implements the EDNS0 interface. +func (e *EDNS0_PADDING) Option() uint16 { return EDNS0PADDING } +func (e *EDNS0_PADDING) pack() ([]byte, error) { return e.Padding, nil } +func (e *EDNS0_PADDING) unpack(b []byte) error { e.Padding = b; return nil } +func (e *EDNS0_PADDING) String() string { return fmt.Sprintf("%0X", e.Padding) } +func (e *EDNS0_PADDING) copy() EDNS0 { + b := make([]byte, len(e.Padding)) + copy(b, e.Padding) + return &EDNS0_PADDING{b} +} diff --git a/vendor/github.com/miekg/dns/format.go b/vendor/github.com/miekg/dns/format.go new file mode 100644 index 00000000..0ec79f2f --- /dev/null +++ b/vendor/github.com/miekg/dns/format.go @@ -0,0 +1,93 @@ +package dns + +import ( + "net" + "reflect" + "strconv" +) + +// NumField returns the number of rdata fields r has. +func NumField(r RR) int { + return reflect.ValueOf(r).Elem().NumField() - 1 // Remove RR_Header +} + +// Field returns the rdata field i as a string. Fields are indexed starting from 1. +// RR types that holds slice data, for instance the NSEC type bitmap will return a single +// string where the types are concatenated using a space. +// Accessing non existing fields will cause a panic. +func Field(r RR, i int) string { + if i == 0 { + return "" + } + d := reflect.ValueOf(r).Elem().Field(i) + switch d.Kind() { + case reflect.String: + return d.String() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return strconv.FormatInt(d.Int(), 10) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return strconv.FormatUint(d.Uint(), 10) + case reflect.Slice: + switch reflect.ValueOf(r).Elem().Type().Field(i).Tag { + case `dns:"a"`: + // TODO(miek): Hmm store this as 16 bytes + if d.Len() < net.IPv4len { + return "" + } + if d.Len() < net.IPv6len { + return net.IPv4(byte(d.Index(0).Uint()), + byte(d.Index(1).Uint()), + byte(d.Index(2).Uint()), + byte(d.Index(3).Uint())).String() + } + return net.IPv4(byte(d.Index(12).Uint()), + byte(d.Index(13).Uint()), + byte(d.Index(14).Uint()), + byte(d.Index(15).Uint())).String() + case `dns:"aaaa"`: + if d.Len() < net.IPv6len { + return "" + } + return net.IP{ + byte(d.Index(0).Uint()), + byte(d.Index(1).Uint()), + byte(d.Index(2).Uint()), + byte(d.Index(3).Uint()), + byte(d.Index(4).Uint()), + byte(d.Index(5).Uint()), + byte(d.Index(6).Uint()), + byte(d.Index(7).Uint()), + byte(d.Index(8).Uint()), + byte(d.Index(9).Uint()), + byte(d.Index(10).Uint()), + byte(d.Index(11).Uint()), + byte(d.Index(12).Uint()), + byte(d.Index(13).Uint()), + byte(d.Index(14).Uint()), + byte(d.Index(15).Uint()), + }.String() + case `dns:"nsec"`: + if d.Len() == 0 { + return "" + } + s := Type(d.Index(0).Uint()).String() + for i := 1; i < d.Len(); i++ { + s += " " + Type(d.Index(i).Uint()).String() + } + return s + default: + // if it does not have a tag its a string slice + fallthrough + case `dns:"txt"`: + if d.Len() == 0 { + return "" + } + s := d.Index(0).String() + for i := 1; i < d.Len(); i++ { + s += " " + d.Index(i).String() + } + return s + } + } + return "" +} diff --git a/vendor/github.com/miekg/dns/fuzz.go b/vendor/github.com/miekg/dns/fuzz.go new file mode 100644 index 00000000..a8a09184 --- /dev/null +++ b/vendor/github.com/miekg/dns/fuzz.go @@ -0,0 +1,23 @@ +// +build fuzz + +package dns + +func Fuzz(data []byte) int { + msg := new(Msg) + + if err := msg.Unpack(data); err != nil { + return 0 + } + if _, err := msg.Pack(); err != nil { + return 0 + } + + return 1 +} + +func FuzzNewRR(data []byte) int { + if _, err := NewRR(string(data)); err != nil { + return 0 + } + return 1 +} diff --git a/vendor/github.com/miekg/dns/generate.go b/vendor/github.com/miekg/dns/generate.go new file mode 100644 index 00000000..97bc39f5 --- /dev/null +++ b/vendor/github.com/miekg/dns/generate.go @@ -0,0 +1,242 @@ +package dns + +import ( + "bytes" + "fmt" + "io" + "strconv" + "strings" +) + +// Parse the $GENERATE statement as used in BIND9 zones. +// See http://www.zytrax.com/books/dns/ch8/generate.html for instance. +// We are called after '$GENERATE '. After which we expect: +// * the range (12-24/2) +// * lhs (ownername) +// * [[ttl][class]] +// * type +// * rhs (rdata) +// But we are lazy here, only the range is parsed *all* occurrences +// of $ after that are interpreted. +func (zp *ZoneParser) generate(l lex) (RR, bool) { + token := l.token + step := 1 + if i := strings.IndexByte(token, '/'); i >= 0 { + if i+1 == len(token) { + return zp.setParseError("bad step in $GENERATE range", l) + } + + s, err := strconv.Atoi(token[i+1:]) + if err != nil || s <= 0 { + return zp.setParseError("bad step in $GENERATE range", l) + } + + step = s + token = token[:i] + } + + sx := strings.SplitN(token, "-", 2) + if len(sx) != 2 { + return zp.setParseError("bad start-stop in $GENERATE range", l) + } + + start, err := strconv.Atoi(sx[0]) + if err != nil { + return zp.setParseError("bad start in $GENERATE range", l) + } + + end, err := strconv.Atoi(sx[1]) + if err != nil { + return zp.setParseError("bad stop in $GENERATE range", l) + } + if end < 0 || start < 0 || end < start { + return zp.setParseError("bad range in $GENERATE range", l) + } + + zp.c.Next() // _BLANK + + // Create a complete new string, which we then parse again. + var s string + for l, ok := zp.c.Next(); ok; l, ok = zp.c.Next() { + if l.err { + return zp.setParseError("bad data in $GENERATE directive", l) + } + if l.value == zNewline { + break + } + + s += l.token + } + + r := &generateReader{ + s: s, + + cur: start, + start: start, + end: end, + step: step, + + file: zp.file, + lex: &l, + } + zp.sub = NewZoneParser(r, zp.origin, zp.file) + zp.sub.includeDepth, zp.sub.includeAllowed = zp.includeDepth, zp.includeAllowed + zp.sub.SetDefaultTTL(defaultTtl) + return zp.subNext() +} + +type generateReader struct { + s string + si int + + cur int + start int + end int + step int + + mod bytes.Buffer + + escape bool + + eof bool + + file string + lex *lex +} + +func (r *generateReader) parseError(msg string, end int) *ParseError { + r.eof = true // Make errors sticky. + + l := *r.lex + l.token = r.s[r.si-1 : end] + l.column += r.si // l.column starts one zBLANK before r.s + + return &ParseError{r.file, msg, l} +} + +func (r *generateReader) Read(p []byte) (int, error) { + // NewZLexer, through NewZoneParser, should use ReadByte and + // not end up here. + + panic("not implemented") +} + +func (r *generateReader) ReadByte() (byte, error) { + if r.eof { + return 0, io.EOF + } + if r.mod.Len() > 0 { + return r.mod.ReadByte() + } + + if r.si >= len(r.s) { + r.si = 0 + r.cur += r.step + + r.eof = r.cur > r.end || r.cur < 0 + return '\n', nil + } + + si := r.si + r.si++ + + switch r.s[si] { + case '\\': + if r.escape { + r.escape = false + return '\\', nil + } + + r.escape = true + return r.ReadByte() + case '$': + if r.escape { + r.escape = false + return '$', nil + } + + mod := "%d" + + if si >= len(r.s)-1 { + // End of the string + fmt.Fprintf(&r.mod, mod, r.cur) + return r.mod.ReadByte() + } + + if r.s[si+1] == '$' { + r.si++ + return '$', nil + } + + var offset int + + // Search for { and } + if r.s[si+1] == '{' { + // Modifier block + sep := strings.Index(r.s[si+2:], "}") + if sep < 0 { + return 0, r.parseError("bad modifier in $GENERATE", len(r.s)) + } + + var errMsg string + mod, offset, errMsg = modToPrintf(r.s[si+2 : si+2+sep]) + if errMsg != "" { + return 0, r.parseError(errMsg, si+3+sep) + } + if r.start+offset < 0 || r.end+offset > 1<<31-1 { + return 0, r.parseError("bad offset in $GENERATE", si+3+sep) + } + + r.si += 2 + sep // Jump to it + } + + fmt.Fprintf(&r.mod, mod, r.cur+offset) + return r.mod.ReadByte() + default: + if r.escape { // Pretty useless here + r.escape = false + return r.ReadByte() + } + + return r.s[si], nil + } +} + +// Convert a $GENERATE modifier 0,0,d to something Printf can deal with. +func modToPrintf(s string) (string, int, string) { + // Modifier is { offset [ ,width [ ,base ] ] } - provide default + // values for optional width and type, if necessary. + var offStr, widthStr, base string + switch xs := strings.Split(s, ","); len(xs) { + case 1: + offStr, widthStr, base = xs[0], "0", "d" + case 2: + offStr, widthStr, base = xs[0], xs[1], "d" + case 3: + offStr, widthStr, base = xs[0], xs[1], xs[2] + default: + return "", 0, "bad modifier in $GENERATE" + } + + switch base { + case "o", "d", "x", "X": + default: + return "", 0, "bad base in $GENERATE" + } + + offset, err := strconv.Atoi(offStr) + if err != nil { + return "", 0, "bad offset in $GENERATE" + } + + width, err := strconv.Atoi(widthStr) + if err != nil || width < 0 || width > 255 { + return "", 0, "bad width in $GENERATE" + } + + if width == 0 { + return "%" + base, offset, "" + } + + return "%0" + widthStr + base, offset, "" +} diff --git a/vendor/github.com/miekg/dns/labels.go b/vendor/github.com/miekg/dns/labels.go new file mode 100644 index 00000000..e32d2a1d --- /dev/null +++ b/vendor/github.com/miekg/dns/labels.go @@ -0,0 +1,188 @@ +package dns + +// Holds a bunch of helper functions for dealing with labels. + +// SplitDomainName splits a name string into it's labels. +// www.miek.nl. returns []string{"www", "miek", "nl"} +// .www.miek.nl. returns []string{"", "www", "miek", "nl"}, +// The root label (.) returns nil. Note that using +// strings.Split(s) will work in most cases, but does not handle +// escaped dots (\.) for instance. +// s must be a syntactically valid domain name, see IsDomainName. +func SplitDomainName(s string) (labels []string) { + if len(s) == 0 { + return nil + } + fqdnEnd := 0 // offset of the final '.' or the length of the name + idx := Split(s) + begin := 0 + if IsFqdn(s) { + fqdnEnd = len(s) - 1 + } else { + fqdnEnd = len(s) + } + + switch len(idx) { + case 0: + return nil + case 1: + // no-op + default: + for _, end := range idx[1:] { + labels = append(labels, s[begin:end-1]) + begin = end + } + } + + return append(labels, s[begin:fqdnEnd]) +} + +// CompareDomainName compares the names s1 and s2 and +// returns how many labels they have in common starting from the *right*. +// The comparison stops at the first inequality. The names are downcased +// before the comparison. +// +// www.miek.nl. and miek.nl. have two labels in common: miek and nl +// www.miek.nl. and www.bla.nl. have one label in common: nl +// +// s1 and s2 must be syntactically valid domain names. +func CompareDomainName(s1, s2 string) (n int) { + // the first check: root label + if s1 == "." || s2 == "." { + return 0 + } + + l1 := Split(s1) + l2 := Split(s2) + + j1 := len(l1) - 1 // end + i1 := len(l1) - 2 // start + j2 := len(l2) - 1 + i2 := len(l2) - 2 + // the second check can be done here: last/only label + // before we fall through into the for-loop below + if equal(s1[l1[j1]:], s2[l2[j2]:]) { + n++ + } else { + return + } + for { + if i1 < 0 || i2 < 0 { + break + } + if equal(s1[l1[i1]:l1[j1]], s2[l2[i2]:l2[j2]]) { + n++ + } else { + break + } + j1-- + i1-- + j2-- + i2-- + } + return +} + +// CountLabel counts the the number of labels in the string s. +// s must be a syntactically valid domain name. +func CountLabel(s string) (labels int) { + if s == "." { + return + } + off := 0 + end := false + for { + off, end = NextLabel(s, off) + labels++ + if end { + return + } + } +} + +// Split splits a name s into its label indexes. +// www.miek.nl. returns []int{0, 4, 9}, www.miek.nl also returns []int{0, 4, 9}. +// The root name (.) returns nil. Also see SplitDomainName. +// s must be a syntactically valid domain name. +func Split(s string) []int { + if s == "." { + return nil + } + idx := make([]int, 1, 3) + off := 0 + end := false + + for { + off, end = NextLabel(s, off) + if end { + return idx + } + idx = append(idx, off) + } +} + +// NextLabel returns the index of the start of the next label in the +// string s starting at offset. +// The bool end is true when the end of the string has been reached. +// Also see PrevLabel. +func NextLabel(s string, offset int) (i int, end bool) { + quote := false + for i = offset; i < len(s)-1; i++ { + switch s[i] { + case '\\': + quote = !quote + default: + quote = false + case '.': + if quote { + quote = !quote + continue + } + return i + 1, false + } + } + return i + 1, true +} + +// PrevLabel returns the index of the label when starting from the right and +// jumping n labels to the left. +// The bool start is true when the start of the string has been overshot. +// Also see NextLabel. +func PrevLabel(s string, n int) (i int, start bool) { + if n == 0 { + return len(s), false + } + lab := Split(s) + if lab == nil { + return 0, true + } + if n > len(lab) { + return 0, true + } + return lab[len(lab)-n], false +} + +// equal compares a and b while ignoring case. It returns true when equal otherwise false. +func equal(a, b string) bool { + // might be lifted into API function. + la := len(a) + lb := len(b) + if la != lb { + return false + } + + for i := la - 1; i >= 0; i-- { + ai := a[i] + bi := b[i] + if ai >= 'A' && ai <= 'Z' { + ai |= 'a' - 'A' + } + if bi >= 'A' && bi <= 'Z' { + bi |= 'a' - 'A' + } + if ai != bi { + return false + } + } + return true +} diff --git a/vendor/github.com/miekg/dns/listen_go111.go b/vendor/github.com/miekg/dns/listen_go111.go new file mode 100644 index 00000000..fad195cf --- /dev/null +++ b/vendor/github.com/miekg/dns/listen_go111.go @@ -0,0 +1,44 @@ +// +build go1.11 +// +build aix darwin dragonfly freebsd linux netbsd openbsd + +package dns + +import ( + "context" + "net" + "syscall" + + "golang.org/x/sys/unix" +) + +const supportsReusePort = true + +func reuseportControl(network, address string, c syscall.RawConn) error { + var opErr error + err := c.Control(func(fd uintptr) { + opErr = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1) + }) + if err != nil { + return err + } + + return opErr +} + +func listenTCP(network, addr string, reuseport bool) (net.Listener, error) { + var lc net.ListenConfig + if reuseport { + lc.Control = reuseportControl + } + + return lc.Listen(context.Background(), network, addr) +} + +func listenUDP(network, addr string, reuseport bool) (net.PacketConn, error) { + var lc net.ListenConfig + if reuseport { + lc.Control = reuseportControl + } + + return lc.ListenPacket(context.Background(), network, addr) +} diff --git a/vendor/github.com/miekg/dns/listen_go_not111.go b/vendor/github.com/miekg/dns/listen_go_not111.go new file mode 100644 index 00000000..b9201417 --- /dev/null +++ b/vendor/github.com/miekg/dns/listen_go_not111.go @@ -0,0 +1,23 @@ +// +build !go1.11 !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd + +package dns + +import "net" + +const supportsReusePort = false + +func listenTCP(network, addr string, reuseport bool) (net.Listener, error) { + if reuseport { + // TODO(tmthrgd): return an error? + } + + return net.Listen(network, addr) +} + +func listenUDP(network, addr string, reuseport bool) (net.PacketConn, error) { + if reuseport { + // TODO(tmthrgd): return an error? + } + + return net.ListenPacket(network, addr) +} diff --git a/vendor/github.com/miekg/dns/msg.go b/vendor/github.com/miekg/dns/msg.go new file mode 100644 index 00000000..e04fb5d7 --- /dev/null +++ b/vendor/github.com/miekg/dns/msg.go @@ -0,0 +1,1228 @@ +// DNS packet assembly, see RFC 1035. Converting from - Unpack() - +// and to - Pack() - wire format. +// All the packers and unpackers take a (msg []byte, off int) +// and return (off1 int, ok bool). If they return ok==false, they +// also return off1==len(msg), so that the next unpacker will +// also fail. This lets us avoid checks of ok until the end of a +// packing sequence. + +package dns + +//go:generate go run msg_generate.go + +import ( + crand "crypto/rand" + "encoding/binary" + "fmt" + "math/big" + "math/rand" + "strconv" + "strings" + "sync" +) + +const ( + maxCompressionOffset = 2 << 13 // We have 14 bits for the compression pointer + maxDomainNameWireOctets = 255 // See RFC 1035 section 2.3.4 + + // This is the maximum number of compression pointers that should occur in a + // semantically valid message. Each label in a domain name must be at least one + // octet and is separated by a period. The root label won't be represented by a + // compression pointer to a compression pointer, hence the -2 to exclude the + // smallest valid root label. + // + // It is possible to construct a valid message that has more compression pointers + // than this, and still doesn't loop, by pointing to a previous pointer. This is + // not something a well written implementation should ever do, so we leave them + // to trip the maximum compression pointer check. + maxCompressionPointers = (maxDomainNameWireOctets+1)/2 - 2 + + // This is the maximum length of a domain name in presentation format. The + // maximum wire length of a domain name is 255 octets (see above), with the + // maximum label length being 63. The wire format requires one extra byte over + // the presentation format, reducing the number of octets by 1. Each label in + // the name will be separated by a single period, with each octet in the label + // expanding to at most 4 bytes (\DDD). If all other labels are of the maximum + // length, then the final label can only be 61 octets long to not exceed the + // maximum allowed wire length. + maxDomainNamePresentationLength = 61*4 + 1 + 63*4 + 1 + 63*4 + 1 + 63*4 + 1 +) + +// Errors defined in this package. +var ( + ErrAlg error = &Error{err: "bad algorithm"} // ErrAlg indicates an error with the (DNSSEC) algorithm. + ErrAuth error = &Error{err: "bad authentication"} // ErrAuth indicates an error in the TSIG authentication. + ErrBuf error = &Error{err: "buffer size too small"} // ErrBuf indicates that the buffer used is too small for the message. + ErrConnEmpty error = &Error{err: "conn has no connection"} // ErrConnEmpty indicates a connection is being used before it is initialized. + ErrExtendedRcode error = &Error{err: "bad extended rcode"} // ErrExtendedRcode ... + ErrFqdn error = &Error{err: "domain must be fully qualified"} // ErrFqdn indicates that a domain name does not have a closing dot. + ErrId error = &Error{err: "id mismatch"} // ErrId indicates there is a mismatch with the message's ID. + ErrKeyAlg error = &Error{err: "bad key algorithm"} // ErrKeyAlg indicates that the algorithm in the key is not valid. + ErrKey error = &Error{err: "bad key"} + ErrKeySize error = &Error{err: "bad key size"} + ErrLongDomain error = &Error{err: fmt.Sprintf("domain name exceeded %d wire-format octets", maxDomainNameWireOctets)} + ErrNoSig error = &Error{err: "no signature found"} + ErrPrivKey error = &Error{err: "bad private key"} + ErrRcode error = &Error{err: "bad rcode"} + ErrRdata error = &Error{err: "bad rdata"} + ErrRRset error = &Error{err: "bad rrset"} + ErrSecret error = &Error{err: "no secrets defined"} + ErrShortRead error = &Error{err: "short read"} + ErrSig error = &Error{err: "bad signature"} // ErrSig indicates that a signature can not be cryptographically validated. + ErrSoa error = &Error{err: "no SOA"} // ErrSOA indicates that no SOA RR was seen when doing zone transfers. + ErrTime error = &Error{err: "bad time"} // ErrTime indicates a timing error in TSIG authentication. +) + +// Id by default, returns a 16 bits random number to be used as a +// message id. The random provided should be good enough. This being a +// variable the function can be reassigned to a custom function. +// For instance, to make it return a static value: +// +// dns.Id = func() uint16 { return 3 } +var Id = id + +var ( + idLock sync.Mutex + idRand *rand.Rand +) + +// id returns a 16 bits random number to be used as a +// message id. The random provided should be good enough. +func id() uint16 { + idLock.Lock() + + if idRand == nil { + // This (partially) works around + // https://github.com/golang/go/issues/11833 by only + // seeding idRand upon the first call to id. + + var seed int64 + var buf [8]byte + + if _, err := crand.Read(buf[:]); err == nil { + seed = int64(binary.LittleEndian.Uint64(buf[:])) + } else { + seed = rand.Int63() + } + + idRand = rand.New(rand.NewSource(seed)) + } + + // The call to idRand.Uint32 must be within the + // mutex lock because *rand.Rand is not safe for + // concurrent use. + // + // There is no added performance overhead to calling + // idRand.Uint32 inside a mutex lock over just + // calling rand.Uint32 as the global math/rand rng + // is internally protected by a sync.Mutex. + id := uint16(idRand.Uint32()) + + idLock.Unlock() + return id +} + +// MsgHdr is a a manually-unpacked version of (id, bits). +type MsgHdr struct { + Id uint16 + Response bool + Opcode int + Authoritative bool + Truncated bool + RecursionDesired bool + RecursionAvailable bool + Zero bool + AuthenticatedData bool + CheckingDisabled bool + Rcode int +} + +// Msg contains the layout of a DNS message. +type Msg struct { + MsgHdr + Compress bool `json:"-"` // If true, the message will be compressed when converted to wire format. + Question []Question // Holds the RR(s) of the question section. + Answer []RR // Holds the RR(s) of the answer section. + Ns []RR // Holds the RR(s) of the authority section. + Extra []RR // Holds the RR(s) of the additional section. +} + +// ClassToString is a maps Classes to strings for each CLASS wire type. +var ClassToString = map[uint16]string{ + ClassINET: "IN", + ClassCSNET: "CS", + ClassCHAOS: "CH", + ClassHESIOD: "HS", + ClassNONE: "NONE", + ClassANY: "ANY", +} + +// OpcodeToString maps Opcodes to strings. +var OpcodeToString = map[int]string{ + OpcodeQuery: "QUERY", + OpcodeIQuery: "IQUERY", + OpcodeStatus: "STATUS", + OpcodeNotify: "NOTIFY", + OpcodeUpdate: "UPDATE", +} + +// RcodeToString maps Rcodes to strings. +var RcodeToString = map[int]string{ + RcodeSuccess: "NOERROR", + RcodeFormatError: "FORMERR", + RcodeServerFailure: "SERVFAIL", + RcodeNameError: "NXDOMAIN", + RcodeNotImplemented: "NOTIMP", + RcodeRefused: "REFUSED", + RcodeYXDomain: "YXDOMAIN", // See RFC 2136 + RcodeYXRrset: "YXRRSET", + RcodeNXRrset: "NXRRSET", + RcodeNotAuth: "NOTAUTH", + RcodeNotZone: "NOTZONE", + RcodeBadSig: "BADSIG", // Also known as RcodeBadVers, see RFC 6891 + // RcodeBadVers: "BADVERS", + RcodeBadKey: "BADKEY", + RcodeBadTime: "BADTIME", + RcodeBadMode: "BADMODE", + RcodeBadName: "BADNAME", + RcodeBadAlg: "BADALG", + RcodeBadTrunc: "BADTRUNC", + RcodeBadCookie: "BADCOOKIE", +} + +// compressionMap is used to allow a more efficient compression map +// to be used for internal packDomainName calls without changing the +// signature or functionality of public API. +// +// In particular, map[string]uint16 uses 25% less per-entry memory +// than does map[string]int. +type compressionMap struct { + ext map[string]int // external callers + int map[string]uint16 // internal callers +} + +func (m compressionMap) valid() bool { + return m.int != nil || m.ext != nil +} + +func (m compressionMap) insert(s string, pos int) { + if m.ext != nil { + m.ext[s] = pos + } else { + m.int[s] = uint16(pos) + } +} + +func (m compressionMap) find(s string) (int, bool) { + if m.ext != nil { + pos, ok := m.ext[s] + return pos, ok + } + + pos, ok := m.int[s] + return int(pos), ok +} + +// Domain names are a sequence of counted strings +// split at the dots. They end with a zero-length string. + +// PackDomainName packs a domain name s into msg[off:]. +// If compression is wanted compress must be true and the compression +// map needs to hold a mapping between domain names and offsets +// pointing into msg. +func PackDomainName(s string, msg []byte, off int, compression map[string]int, compress bool) (off1 int, err error) { + return packDomainName(s, msg, off, compressionMap{ext: compression}, compress) +} + +func packDomainName(s string, msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + // XXX: A logical copy of this function exists in IsDomainName and + // should be kept in sync with this function. + + ls := len(s) + if ls == 0 { // Ok, for instance when dealing with update RR without any rdata. + return off, nil + } + + // If not fully qualified, error out. + if !IsFqdn(s) { + return len(msg), ErrFqdn + } + + // Each dot ends a segment of the name. + // We trade each dot byte for a length byte. + // Except for escaped dots (\.), which are normal dots. + // There is also a trailing zero. + + // Compression + pointer := -1 + + // Emit sequence of counted strings, chopping at dots. + var ( + begin int + compBegin int + compOff int + bs []byte + wasDot bool + ) +loop: + for i := 0; i < ls; i++ { + var c byte + if bs == nil { + c = s[i] + } else { + c = bs[i] + } + + switch c { + case '\\': + if off+1 > len(msg) { + return len(msg), ErrBuf + } + + if bs == nil { + bs = []byte(s) + } + + // check for \DDD + if i+3 < ls && isDigit(bs[i+1]) && isDigit(bs[i+2]) && isDigit(bs[i+3]) { + bs[i] = dddToByte(bs[i+1:]) + copy(bs[i+1:ls-3], bs[i+4:]) + ls -= 3 + compOff += 3 + } else { + copy(bs[i:ls-1], bs[i+1:]) + ls-- + compOff++ + } + + wasDot = false + case '.': + if wasDot { + // two dots back to back is not legal + return len(msg), ErrRdata + } + wasDot = true + + labelLen := i - begin + if labelLen >= 1<<6 { // top two bits of length must be clear + return len(msg), ErrRdata + } + + // off can already (we're in a loop) be bigger than len(msg) + // this happens when a name isn't fully qualified + if off+1+labelLen > len(msg) { + return len(msg), ErrBuf + } + + // Don't try to compress '.' + // We should only compress when compress is true, but we should also still pick + // up names that can be used for *future* compression(s). + if compression.valid() && !isRootLabel(s, bs, begin, ls) { + if p, ok := compression.find(s[compBegin:]); ok { + // The first hit is the longest matching dname + // keep the pointer offset we get back and store + // the offset of the current name, because that's + // where we need to insert the pointer later + + // If compress is true, we're allowed to compress this dname + if compress { + pointer = p // Where to point to + break loop + } + } else if off < maxCompressionOffset { + // Only offsets smaller than maxCompressionOffset can be used. + compression.insert(s[compBegin:], off) + } + } + + // The following is covered by the length check above. + msg[off] = byte(labelLen) + + if bs == nil { + copy(msg[off+1:], s[begin:i]) + } else { + copy(msg[off+1:], bs[begin:i]) + } + off += 1 + labelLen + + begin = i + 1 + compBegin = begin + compOff + default: + wasDot = false + } + } + + // Root label is special + if isRootLabel(s, bs, 0, ls) { + return off, nil + } + + // If we did compression and we find something add the pointer here + if pointer != -1 { + // We have two bytes (14 bits) to put the pointer in + binary.BigEndian.PutUint16(msg[off:], uint16(pointer^0xC000)) + return off + 2, nil + } + + if off < len(msg) { + msg[off] = 0 + } + + return off + 1, nil +} + +// isRootLabel returns whether s or bs, from off to end, is the root +// label ".". +// +// If bs is nil, s will be checked, otherwise bs will be checked. +func isRootLabel(s string, bs []byte, off, end int) bool { + if bs == nil { + return s[off:end] == "." + } + + return end-off == 1 && bs[off] == '.' +} + +// Unpack a domain name. +// In addition to the simple sequences of counted strings above, +// domain names are allowed to refer to strings elsewhere in the +// packet, to avoid repeating common suffixes when returning +// many entries in a single domain. The pointers are marked +// by a length byte with the top two bits set. Ignoring those +// two bits, that byte and the next give a 14 bit offset from msg[0] +// where we should pick up the trail. +// Note that if we jump elsewhere in the packet, +// we return off1 == the offset after the first pointer we found, +// which is where the next record will start. +// In theory, the pointers are only allowed to jump backward. +// We let them jump anywhere and stop jumping after a while. + +// UnpackDomainName unpacks a domain name into a string. It returns +// the name, the new offset into msg and any error that occurred. +// +// When an error is encountered, the unpacked name will be discarded +// and len(msg) will be returned as the offset. +func UnpackDomainName(msg []byte, off int) (string, int, error) { + s := make([]byte, 0, maxDomainNamePresentationLength) + off1 := 0 + lenmsg := len(msg) + budget := maxDomainNameWireOctets + ptr := 0 // number of pointers followed +Loop: + for { + if off >= lenmsg { + return "", lenmsg, ErrBuf + } + c := int(msg[off]) + off++ + switch c & 0xC0 { + case 0x00: + if c == 0x00 { + // end of name + break Loop + } + // literal string + if off+c > lenmsg { + return "", lenmsg, ErrBuf + } + budget -= c + 1 // +1 for the label separator + if budget <= 0 { + return "", lenmsg, ErrLongDomain + } + for _, b := range msg[off : off+c] { + switch b { + case '.', '(', ')', ';', ' ', '@': + fallthrough + case '"', '\\': + s = append(s, '\\', b) + default: + if b < ' ' || b > '~' { // unprintable, use \DDD + s = append(s, escapeByte(b)...) + } else { + s = append(s, b) + } + } + } + s = append(s, '.') + off += c + case 0xC0: + // pointer to somewhere else in msg. + // remember location after first ptr, + // since that's how many bytes we consumed. + // also, don't follow too many pointers -- + // maybe there's a loop. + if off >= lenmsg { + return "", lenmsg, ErrBuf + } + c1 := msg[off] + off++ + if ptr == 0 { + off1 = off + } + if ptr++; ptr > maxCompressionPointers { + return "", lenmsg, &Error{err: "too many compression pointers"} + } + // pointer should guarantee that it advances and points forwards at least + // but the condition on previous three lines guarantees that it's + // at least loop-free + off = (c^0xC0)<<8 | int(c1) + default: + // 0x80 and 0x40 are reserved + return "", lenmsg, ErrRdata + } + } + if ptr == 0 { + off1 = off + } + if len(s) == 0 { + return ".", off1, nil + } + return string(s), off1, nil +} + +func packTxt(txt []string, msg []byte, offset int, tmp []byte) (int, error) { + if len(txt) == 0 { + if offset >= len(msg) { + return offset, ErrBuf + } + msg[offset] = 0 + return offset, nil + } + var err error + for _, s := range txt { + if len(s) > len(tmp) { + return offset, ErrBuf + } + offset, err = packTxtString(s, msg, offset, tmp) + if err != nil { + return offset, err + } + } + return offset, nil +} + +func packTxtString(s string, msg []byte, offset int, tmp []byte) (int, error) { + lenByteOffset := offset + if offset >= len(msg) || len(s) > len(tmp) { + return offset, ErrBuf + } + offset++ + bs := tmp[:len(s)] + copy(bs, s) + for i := 0; i < len(bs); i++ { + if len(msg) <= offset { + return offset, ErrBuf + } + if bs[i] == '\\' { + i++ + if i == len(bs) { + break + } + // check for \DDD + if i+2 < len(bs) && isDigit(bs[i]) && isDigit(bs[i+1]) && isDigit(bs[i+2]) { + msg[offset] = dddToByte(bs[i:]) + i += 2 + } else { + msg[offset] = bs[i] + } + } else { + msg[offset] = bs[i] + } + offset++ + } + l := offset - lenByteOffset - 1 + if l > 255 { + return offset, &Error{err: "string exceeded 255 bytes in txt"} + } + msg[lenByteOffset] = byte(l) + return offset, nil +} + +func packOctetString(s string, msg []byte, offset int, tmp []byte) (int, error) { + if offset >= len(msg) || len(s) > len(tmp) { + return offset, ErrBuf + } + bs := tmp[:len(s)] + copy(bs, s) + for i := 0; i < len(bs); i++ { + if len(msg) <= offset { + return offset, ErrBuf + } + if bs[i] == '\\' { + i++ + if i == len(bs) { + break + } + // check for \DDD + if i+2 < len(bs) && isDigit(bs[i]) && isDigit(bs[i+1]) && isDigit(bs[i+2]) { + msg[offset] = dddToByte(bs[i:]) + i += 2 + } else { + msg[offset] = bs[i] + } + } else { + msg[offset] = bs[i] + } + offset++ + } + return offset, nil +} + +func unpackTxt(msg []byte, off0 int) (ss []string, off int, err error) { + off = off0 + var s string + for off < len(msg) && err == nil { + s, off, err = unpackString(msg, off) + if err == nil { + ss = append(ss, s) + } + } + return +} + +// Helpers for dealing with escaped bytes +func isDigit(b byte) bool { return b >= '0' && b <= '9' } + +func dddToByte(s []byte) byte { + _ = s[2] // bounds check hint to compiler; see golang.org/issue/14808 + return byte((s[0]-'0')*100 + (s[1]-'0')*10 + (s[2] - '0')) +} + +func dddStringToByte(s string) byte { + _ = s[2] // bounds check hint to compiler; see golang.org/issue/14808 + return byte((s[0]-'0')*100 + (s[1]-'0')*10 + (s[2] - '0')) +} + +// Helper function for packing and unpacking +func intToBytes(i *big.Int, length int) []byte { + buf := i.Bytes() + if len(buf) < length { + b := make([]byte, length) + copy(b[length-len(buf):], buf) + return b + } + return buf +} + +// PackRR packs a resource record rr into msg[off:]. +// See PackDomainName for documentation about the compression. +func PackRR(rr RR, msg []byte, off int, compression map[string]int, compress bool) (off1 int, err error) { + headerEnd, off1, err := packRR(rr, msg, off, compressionMap{ext: compression}, compress) + if err == nil { + // packRR no longer sets the Rdlength field on the rr, but + // callers might be expecting it so we set it here. + rr.Header().Rdlength = uint16(off1 - headerEnd) + } + return off1, err +} + +func packRR(rr RR, msg []byte, off int, compression compressionMap, compress bool) (headerEnd int, off1 int, err error) { + if rr == nil { + return len(msg), len(msg), &Error{err: "nil rr"} + } + + headerEnd, err = rr.Header().packHeader(msg, off, compression, compress) + if err != nil { + return headerEnd, len(msg), err + } + + off1, err = rr.pack(msg, headerEnd, compression, compress) + if err != nil { + return headerEnd, len(msg), err + } + + rdlength := off1 - headerEnd + if int(uint16(rdlength)) != rdlength { // overflow + return headerEnd, len(msg), ErrRdata + } + + // The RDLENGTH field is the last field in the header and we set it here. + binary.BigEndian.PutUint16(msg[headerEnd-2:], uint16(rdlength)) + return headerEnd, off1, nil +} + +// UnpackRR unpacks msg[off:] into an RR. +func UnpackRR(msg []byte, off int) (rr RR, off1 int, err error) { + h, off, msg, err := unpackHeader(msg, off) + if err != nil { + return nil, len(msg), err + } + + return UnpackRRWithHeader(h, msg, off) +} + +// UnpackRRWithHeader unpacks the record type specific payload given an existing +// RR_Header. +func UnpackRRWithHeader(h RR_Header, msg []byte, off int) (rr RR, off1 int, err error) { + if newFn, ok := TypeToRR[h.Rrtype]; ok { + rr = newFn() + *rr.Header() = h + } else { + rr = &RFC3597{Hdr: h} + } + + if noRdata(h) { + return rr, off, nil + } + + end := off + int(h.Rdlength) + + off, err = rr.unpack(msg, off) + if err != nil { + return nil, end, err + } + if off != end { + return &h, end, &Error{err: "bad rdlength"} + } + + return rr, off, nil +} + +// unpackRRslice unpacks msg[off:] into an []RR. +// If we cannot unpack the whole array, then it will return nil +func unpackRRslice(l int, msg []byte, off int) (dst1 []RR, off1 int, err error) { + var r RR + // Don't pre-allocate, l may be under attacker control + var dst []RR + for i := 0; i < l; i++ { + off1 := off + r, off, err = UnpackRR(msg, off) + if err != nil { + off = len(msg) + break + } + // If offset does not increase anymore, l is a lie + if off1 == off { + l = i + break + } + dst = append(dst, r) + } + if err != nil && off == len(msg) { + dst = nil + } + return dst, off, err +} + +// Convert a MsgHdr to a string, with dig-like headers: +// +//;; opcode: QUERY, status: NOERROR, id: 48404 +// +//;; flags: qr aa rd ra; +func (h *MsgHdr) String() string { + if h == nil { + return " MsgHdr" + } + + s := ";; opcode: " + OpcodeToString[h.Opcode] + s += ", status: " + RcodeToString[h.Rcode] + s += ", id: " + strconv.Itoa(int(h.Id)) + "\n" + + s += ";; flags:" + if h.Response { + s += " qr" + } + if h.Authoritative { + s += " aa" + } + if h.Truncated { + s += " tc" + } + if h.RecursionDesired { + s += " rd" + } + if h.RecursionAvailable { + s += " ra" + } + if h.Zero { // Hmm + s += " z" + } + if h.AuthenticatedData { + s += " ad" + } + if h.CheckingDisabled { + s += " cd" + } + + s += ";" + return s +} + +// Pack packs a Msg: it is converted to to wire format. +// If the dns.Compress is true the message will be in compressed wire format. +func (dns *Msg) Pack() (msg []byte, err error) { + return dns.PackBuffer(nil) +} + +// PackBuffer packs a Msg, using the given buffer buf. If buf is too small a new buffer is allocated. +func (dns *Msg) PackBuffer(buf []byte) (msg []byte, err error) { + // If this message can't be compressed, avoid filling the + // compression map and creating garbage. + if dns.Compress && dns.isCompressible() { + compression := make(map[string]uint16) // Compression pointer mappings. + return dns.packBufferWithCompressionMap(buf, compressionMap{int: compression}, true) + } + + return dns.packBufferWithCompressionMap(buf, compressionMap{}, false) +} + +// packBufferWithCompressionMap packs a Msg, using the given buffer buf. +func (dns *Msg) packBufferWithCompressionMap(buf []byte, compression compressionMap, compress bool) (msg []byte, err error) { + if dns.Rcode < 0 || dns.Rcode > 0xFFF { + return nil, ErrRcode + } + + // Set extended rcode unconditionally if we have an opt, this will allow + // reseting the extended rcode bits if they need to. + if opt := dns.IsEdns0(); opt != nil { + opt.SetExtendedRcode(uint16(dns.Rcode)) + } else if dns.Rcode > 0xF { + // If Rcode is an extended one and opt is nil, error out. + return nil, ErrExtendedRcode + } + + // Convert convenient Msg into wire-like Header. + var dh Header + dh.Id = dns.Id + dh.Bits = uint16(dns.Opcode)<<11 | uint16(dns.Rcode&0xF) + if dns.Response { + dh.Bits |= _QR + } + if dns.Authoritative { + dh.Bits |= _AA + } + if dns.Truncated { + dh.Bits |= _TC + } + if dns.RecursionDesired { + dh.Bits |= _RD + } + if dns.RecursionAvailable { + dh.Bits |= _RA + } + if dns.Zero { + dh.Bits |= _Z + } + if dns.AuthenticatedData { + dh.Bits |= _AD + } + if dns.CheckingDisabled { + dh.Bits |= _CD + } + + dh.Qdcount = uint16(len(dns.Question)) + dh.Ancount = uint16(len(dns.Answer)) + dh.Nscount = uint16(len(dns.Ns)) + dh.Arcount = uint16(len(dns.Extra)) + + // We need the uncompressed length here, because we first pack it and then compress it. + msg = buf + uncompressedLen := msgLenWithCompressionMap(dns, nil) + if packLen := uncompressedLen + 1; len(msg) < packLen { + msg = make([]byte, packLen) + } + + // Pack it in: header and then the pieces. + off := 0 + off, err = dh.pack(msg, off, compression, compress) + if err != nil { + return nil, err + } + for _, r := range dns.Question { + off, err = r.pack(msg, off, compression, compress) + if err != nil { + return nil, err + } + } + for _, r := range dns.Answer { + _, off, err = packRR(r, msg, off, compression, compress) + if err != nil { + return nil, err + } + } + for _, r := range dns.Ns { + _, off, err = packRR(r, msg, off, compression, compress) + if err != nil { + return nil, err + } + } + for _, r := range dns.Extra { + _, off, err = packRR(r, msg, off, compression, compress) + if err != nil { + return nil, err + } + } + return msg[:off], nil +} + +func (dns *Msg) unpack(dh Header, msg []byte, off int) (err error) { + // If we are at the end of the message we should return *just* the + // header. This can still be useful to the caller. 9.9.9.9 sends these + // when responding with REFUSED for instance. + if off == len(msg) { + // reset sections before returning + dns.Question, dns.Answer, dns.Ns, dns.Extra = nil, nil, nil, nil + return nil + } + + // Qdcount, Ancount, Nscount, Arcount can't be trusted, as they are + // attacker controlled. This means we can't use them to pre-allocate + // slices. + dns.Question = nil + for i := 0; i < int(dh.Qdcount); i++ { + off1 := off + var q Question + q, off, err = unpackQuestion(msg, off) + if err != nil { + return err + } + if off1 == off { // Offset does not increase anymore, dh.Qdcount is a lie! + dh.Qdcount = uint16(i) + break + } + dns.Question = append(dns.Question, q) + } + + dns.Answer, off, err = unpackRRslice(int(dh.Ancount), msg, off) + // The header counts might have been wrong so we need to update it + dh.Ancount = uint16(len(dns.Answer)) + if err == nil { + dns.Ns, off, err = unpackRRslice(int(dh.Nscount), msg, off) + } + // The header counts might have been wrong so we need to update it + dh.Nscount = uint16(len(dns.Ns)) + if err == nil { + dns.Extra, off, err = unpackRRslice(int(dh.Arcount), msg, off) + } + // The header counts might have been wrong so we need to update it + dh.Arcount = uint16(len(dns.Extra)) + + // Set extended Rcode + if opt := dns.IsEdns0(); opt != nil { + dns.Rcode |= opt.ExtendedRcode() + } + + if off != len(msg) { + // TODO(miek) make this an error? + // use PackOpt to let people tell how detailed the error reporting should be? + // println("dns: extra bytes in dns packet", off, "<", len(msg)) + } + return err + +} + +// Unpack unpacks a binary message to a Msg structure. +func (dns *Msg) Unpack(msg []byte) (err error) { + dh, off, err := unpackMsgHdr(msg, 0) + if err != nil { + return err + } + + dns.setHdr(dh) + return dns.unpack(dh, msg, off) +} + +// Convert a complete message to a string with dig-like output. +func (dns *Msg) String() string { + if dns == nil { + return " MsgHdr" + } + s := dns.MsgHdr.String() + " " + s += "QUERY: " + strconv.Itoa(len(dns.Question)) + ", " + s += "ANSWER: " + strconv.Itoa(len(dns.Answer)) + ", " + s += "AUTHORITY: " + strconv.Itoa(len(dns.Ns)) + ", " + s += "ADDITIONAL: " + strconv.Itoa(len(dns.Extra)) + "\n" + if len(dns.Question) > 0 { + s += "\n;; QUESTION SECTION:\n" + for _, r := range dns.Question { + s += r.String() + "\n" + } + } + if len(dns.Answer) > 0 { + s += "\n;; ANSWER SECTION:\n" + for _, r := range dns.Answer { + if r != nil { + s += r.String() + "\n" + } + } + } + if len(dns.Ns) > 0 { + s += "\n;; AUTHORITY SECTION:\n" + for _, r := range dns.Ns { + if r != nil { + s += r.String() + "\n" + } + } + } + if len(dns.Extra) > 0 { + s += "\n;; ADDITIONAL SECTION:\n" + for _, r := range dns.Extra { + if r != nil { + s += r.String() + "\n" + } + } + } + return s +} + +// isCompressible returns whether the msg may be compressible. +func (dns *Msg) isCompressible() bool { + // If we only have one question, there is nothing we can ever compress. + return len(dns.Question) > 1 || len(dns.Answer) > 0 || + len(dns.Ns) > 0 || len(dns.Extra) > 0 +} + +// Len returns the message length when in (un)compressed wire format. +// If dns.Compress is true compression it is taken into account. Len() +// is provided to be a faster way to get the size of the resulting packet, +// than packing it, measuring the size and discarding the buffer. +func (dns *Msg) Len() int { + // If this message can't be compressed, avoid filling the + // compression map and creating garbage. + if dns.Compress && dns.isCompressible() { + compression := make(map[string]struct{}) + return msgLenWithCompressionMap(dns, compression) + } + + return msgLenWithCompressionMap(dns, nil) +} + +func msgLenWithCompressionMap(dns *Msg, compression map[string]struct{}) int { + l := headerSize + + for _, r := range dns.Question { + l += r.len(l, compression) + } + for _, r := range dns.Answer { + if r != nil { + l += r.len(l, compression) + } + } + for _, r := range dns.Ns { + if r != nil { + l += r.len(l, compression) + } + } + for _, r := range dns.Extra { + if r != nil { + l += r.len(l, compression) + } + } + + return l +} + +func domainNameLen(s string, off int, compression map[string]struct{}, compress bool) int { + if s == "" || s == "." { + return 1 + } + + escaped := strings.Contains(s, "\\") + + if compression != nil && (compress || off < maxCompressionOffset) { + // compressionLenSearch will insert the entry into the compression + // map if it doesn't contain it. + if l, ok := compressionLenSearch(compression, s, off); ok && compress { + if escaped { + return escapedNameLen(s[:l]) + 2 + } + + return l + 2 + } + } + + if escaped { + return escapedNameLen(s) + 1 + } + + return len(s) + 1 +} + +func escapedNameLen(s string) int { + nameLen := len(s) + for i := 0; i < len(s); i++ { + if s[i] != '\\' { + continue + } + + if i+3 < len(s) && isDigit(s[i+1]) && isDigit(s[i+2]) && isDigit(s[i+3]) { + nameLen -= 3 + i += 3 + } else { + nameLen-- + i++ + } + } + + return nameLen +} + +func compressionLenSearch(c map[string]struct{}, s string, msgOff int) (int, bool) { + for off, end := 0, false; !end; off, end = NextLabel(s, off) { + if _, ok := c[s[off:]]; ok { + return off, true + } + + if msgOff+off < maxCompressionOffset { + c[s[off:]] = struct{}{} + } + } + + return 0, false +} + +// Copy returns a new RR which is a deep-copy of r. +func Copy(r RR) RR { return r.copy() } + +// Len returns the length (in octets) of the uncompressed RR in wire format. +func Len(r RR) int { return r.len(0, nil) } + +// Copy returns a new *Msg which is a deep-copy of dns. +func (dns *Msg) Copy() *Msg { return dns.CopyTo(new(Msg)) } + +// CopyTo copies the contents to the provided message using a deep-copy and returns the copy. +func (dns *Msg) CopyTo(r1 *Msg) *Msg { + r1.MsgHdr = dns.MsgHdr + r1.Compress = dns.Compress + + if len(dns.Question) > 0 { + r1.Question = make([]Question, len(dns.Question)) + copy(r1.Question, dns.Question) // TODO(miek): Question is an immutable value, ok to do a shallow-copy + } + + rrArr := make([]RR, len(dns.Answer)+len(dns.Ns)+len(dns.Extra)) + r1.Answer, rrArr = rrArr[:0:len(dns.Answer)], rrArr[len(dns.Answer):] + r1.Ns, rrArr = rrArr[:0:len(dns.Ns)], rrArr[len(dns.Ns):] + r1.Extra = rrArr[:0:len(dns.Extra)] + + for _, r := range dns.Answer { + r1.Answer = append(r1.Answer, r.copy()) + } + + for _, r := range dns.Ns { + r1.Ns = append(r1.Ns, r.copy()) + } + + for _, r := range dns.Extra { + r1.Extra = append(r1.Extra, r.copy()) + } + + return r1 +} + +func (q *Question) pack(msg []byte, off int, compression compressionMap, compress bool) (int, error) { + off, err := packDomainName(q.Name, msg, off, compression, compress) + if err != nil { + return off, err + } + off, err = packUint16(q.Qtype, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(q.Qclass, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func unpackQuestion(msg []byte, off int) (Question, int, error) { + var ( + q Question + err error + ) + q.Name, off, err = UnpackDomainName(msg, off) + if err != nil { + return q, off, err + } + if off == len(msg) { + return q, off, nil + } + q.Qtype, off, err = unpackUint16(msg, off) + if err != nil { + return q, off, err + } + if off == len(msg) { + return q, off, nil + } + q.Qclass, off, err = unpackUint16(msg, off) + if off == len(msg) { + return q, off, nil + } + return q, off, err +} + +func (dh *Header) pack(msg []byte, off int, compression compressionMap, compress bool) (int, error) { + off, err := packUint16(dh.Id, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(dh.Bits, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(dh.Qdcount, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(dh.Ancount, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(dh.Nscount, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(dh.Arcount, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func unpackMsgHdr(msg []byte, off int) (Header, int, error) { + var ( + dh Header + err error + ) + dh.Id, off, err = unpackUint16(msg, off) + if err != nil { + return dh, off, err + } + dh.Bits, off, err = unpackUint16(msg, off) + if err != nil { + return dh, off, err + } + dh.Qdcount, off, err = unpackUint16(msg, off) + if err != nil { + return dh, off, err + } + dh.Ancount, off, err = unpackUint16(msg, off) + if err != nil { + return dh, off, err + } + dh.Nscount, off, err = unpackUint16(msg, off) + if err != nil { + return dh, off, err + } + dh.Arcount, off, err = unpackUint16(msg, off) + if err != nil { + return dh, off, err + } + return dh, off, nil +} + +// setHdr set the header in the dns using the binary data in dh. +func (dns *Msg) setHdr(dh Header) { + dns.Id = dh.Id + dns.Response = dh.Bits&_QR != 0 + dns.Opcode = int(dh.Bits>>11) & 0xF + dns.Authoritative = dh.Bits&_AA != 0 + dns.Truncated = dh.Bits&_TC != 0 + dns.RecursionDesired = dh.Bits&_RD != 0 + dns.RecursionAvailable = dh.Bits&_RA != 0 + dns.Zero = dh.Bits&_Z != 0 // _Z covers the zero bit, which should be zero; not sure why we set it to the opposite. + dns.AuthenticatedData = dh.Bits&_AD != 0 + dns.CheckingDisabled = dh.Bits&_CD != 0 + dns.Rcode = int(dh.Bits & 0xF) +} diff --git a/vendor/github.com/miekg/dns/msg_generate.go b/vendor/github.com/miekg/dns/msg_generate.go new file mode 100644 index 00000000..721a0fce --- /dev/null +++ b/vendor/github.com/miekg/dns/msg_generate.go @@ -0,0 +1,328 @@ +//+build ignore + +// msg_generate.go is meant to run with go generate. It will use +// go/{importer,types} to track down all the RR struct types. Then for each type +// it will generate pack/unpack methods based on the struct tags. The generated source is +// written to zmsg.go, and is meant to be checked into git. +package main + +import ( + "bytes" + "fmt" + "go/format" + "go/importer" + "go/types" + "log" + "os" + "strings" +) + +var packageHdr = ` +// Code generated by "go run msg_generate.go"; DO NOT EDIT. + +package dns + +` + +// getTypeStruct will take a type and the package scope, and return the +// (innermost) struct if the type is considered a RR type (currently defined as +// those structs beginning with a RR_Header, could be redefined as implementing +// the RR interface). The bool return value indicates if embedded structs were +// resolved. +func getTypeStruct(t types.Type, scope *types.Scope) (*types.Struct, bool) { + st, ok := t.Underlying().(*types.Struct) + if !ok { + return nil, false + } + if st.Field(0).Type() == scope.Lookup("RR_Header").Type() { + return st, false + } + if st.Field(0).Anonymous() { + st, _ := getTypeStruct(st.Field(0).Type(), scope) + return st, true + } + return nil, false +} + +func main() { + // Import and type-check the package + pkg, err := importer.Default().Import("github.com/miekg/dns") + fatalIfErr(err) + scope := pkg.Scope() + + // Collect actual types (*X) + var namedTypes []string + for _, name := range scope.Names() { + o := scope.Lookup(name) + if o == nil || !o.Exported() { + continue + } + if st, _ := getTypeStruct(o.Type(), scope); st == nil { + continue + } + if name == "PrivateRR" { + continue + } + + // Check if corresponding TypeX exists + if scope.Lookup("Type"+o.Name()) == nil && o.Name() != "RFC3597" { + log.Fatalf("Constant Type%s does not exist.", o.Name()) + } + + namedTypes = append(namedTypes, o.Name()) + } + + b := &bytes.Buffer{} + b.WriteString(packageHdr) + + fmt.Fprint(b, "// pack*() functions\n\n") + for _, name := range namedTypes { + o := scope.Lookup(name) + st, _ := getTypeStruct(o.Type(), scope) + + fmt.Fprintf(b, "func (rr *%s) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {\n", name) + for i := 1; i < st.NumFields(); i++ { + o := func(s string) { + fmt.Fprintf(b, s, st.Field(i).Name()) + fmt.Fprint(b, `if err != nil { +return off, err +} +`) + } + + if _, ok := st.Field(i).Type().(*types.Slice); ok { + switch st.Tag(i) { + case `dns:"-"`: // ignored + case `dns:"txt"`: + o("off, err = packStringTxt(rr.%s, msg, off)\n") + case `dns:"opt"`: + o("off, err = packDataOpt(rr.%s, msg, off)\n") + case `dns:"nsec"`: + o("off, err = packDataNsec(rr.%s, msg, off)\n") + case `dns:"domain-name"`: + o("off, err = packDataDomainNames(rr.%s, msg, off, compression, false)\n") + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + continue + } + + switch { + case st.Tag(i) == `dns:"-"`: // ignored + case st.Tag(i) == `dns:"cdomain-name"`: + o("off, err = packDomainName(rr.%s, msg, off, compression, compress)\n") + case st.Tag(i) == `dns:"domain-name"`: + o("off, err = packDomainName(rr.%s, msg, off, compression, false)\n") + case st.Tag(i) == `dns:"a"`: + o("off, err = packDataA(rr.%s, msg, off)\n") + case st.Tag(i) == `dns:"aaaa"`: + o("off, err = packDataAAAA(rr.%s, msg, off)\n") + case st.Tag(i) == `dns:"uint48"`: + o("off, err = packUint48(rr.%s, msg, off)\n") + case st.Tag(i) == `dns:"txt"`: + o("off, err = packString(rr.%s, msg, off)\n") + + case strings.HasPrefix(st.Tag(i), `dns:"size-base32`): // size-base32 can be packed just like base32 + fallthrough + case st.Tag(i) == `dns:"base32"`: + o("off, err = packStringBase32(rr.%s, msg, off)\n") + + case strings.HasPrefix(st.Tag(i), `dns:"size-base64`): // size-base64 can be packed just like base64 + fallthrough + case st.Tag(i) == `dns:"base64"`: + o("off, err = packStringBase64(rr.%s, msg, off)\n") + + case strings.HasPrefix(st.Tag(i), `dns:"size-hex:SaltLength`): + // directly write instead of using o() so we get the error check in the correct place + field := st.Field(i).Name() + fmt.Fprintf(b, `// Only pack salt if value is not "-", i.e. empty +if rr.%s != "-" { + off, err = packStringHex(rr.%s, msg, off) + if err != nil { + return off, err + } +} +`, field, field) + continue + case strings.HasPrefix(st.Tag(i), `dns:"size-hex`): // size-hex can be packed just like hex + fallthrough + case st.Tag(i) == `dns:"hex"`: + o("off, err = packStringHex(rr.%s, msg, off)\n") + case st.Tag(i) == `dns:"any"`: + o("off, err = packStringAny(rr.%s, msg, off)\n") + case st.Tag(i) == `dns:"octet"`: + o("off, err = packStringOctet(rr.%s, msg, off)\n") + case st.Tag(i) == "": + switch st.Field(i).Type().(*types.Basic).Kind() { + case types.Uint8: + o("off, err = packUint8(rr.%s, msg, off)\n") + case types.Uint16: + o("off, err = packUint16(rr.%s, msg, off)\n") + case types.Uint32: + o("off, err = packUint32(rr.%s, msg, off)\n") + case types.Uint64: + o("off, err = packUint64(rr.%s, msg, off)\n") + case types.String: + o("off, err = packString(rr.%s, msg, off)\n") + default: + log.Fatalln(name, st.Field(i).Name()) + } + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + } + fmt.Fprintln(b, "return off, nil }\n") + } + + fmt.Fprint(b, "// unpack*() functions\n\n") + for _, name := range namedTypes { + o := scope.Lookup(name) + st, _ := getTypeStruct(o.Type(), scope) + + fmt.Fprintf(b, "func (rr *%s) unpack(msg []byte, off int) (off1 int, err error) {\n", name) + fmt.Fprint(b, `rdStart := off +_ = rdStart + +`) + for i := 1; i < st.NumFields(); i++ { + o := func(s string) { + fmt.Fprintf(b, s, st.Field(i).Name()) + fmt.Fprint(b, `if err != nil { +return off, err +} +`) + } + + // size-* are special, because they reference a struct member we should use for the length. + if strings.HasPrefix(st.Tag(i), `dns:"size-`) { + structMember := structMember(st.Tag(i)) + structTag := structTag(st.Tag(i)) + switch structTag { + case "hex": + fmt.Fprintf(b, "rr.%s, off, err = unpackStringHex(msg, off, off + int(rr.%s))\n", st.Field(i).Name(), structMember) + case "base32": + fmt.Fprintf(b, "rr.%s, off, err = unpackStringBase32(msg, off, off + int(rr.%s))\n", st.Field(i).Name(), structMember) + case "base64": + fmt.Fprintf(b, "rr.%s, off, err = unpackStringBase64(msg, off, off + int(rr.%s))\n", st.Field(i).Name(), structMember) + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + fmt.Fprint(b, `if err != nil { +return off, err +} +`) + continue + } + + if _, ok := st.Field(i).Type().(*types.Slice); ok { + switch st.Tag(i) { + case `dns:"-"`: // ignored + case `dns:"txt"`: + o("rr.%s, off, err = unpackStringTxt(msg, off)\n") + case `dns:"opt"`: + o("rr.%s, off, err = unpackDataOpt(msg, off)\n") + case `dns:"nsec"`: + o("rr.%s, off, err = unpackDataNsec(msg, off)\n") + case `dns:"domain-name"`: + o("rr.%s, off, err = unpackDataDomainNames(msg, off, rdStart + int(rr.Hdr.Rdlength))\n") + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + continue + } + + switch st.Tag(i) { + case `dns:"-"`: // ignored + case `dns:"cdomain-name"`: + fallthrough + case `dns:"domain-name"`: + o("rr.%s, off, err = UnpackDomainName(msg, off)\n") + case `dns:"a"`: + o("rr.%s, off, err = unpackDataA(msg, off)\n") + case `dns:"aaaa"`: + o("rr.%s, off, err = unpackDataAAAA(msg, off)\n") + case `dns:"uint48"`: + o("rr.%s, off, err = unpackUint48(msg, off)\n") + case `dns:"txt"`: + o("rr.%s, off, err = unpackString(msg, off)\n") + case `dns:"base32"`: + o("rr.%s, off, err = unpackStringBase32(msg, off, rdStart + int(rr.Hdr.Rdlength))\n") + case `dns:"base64"`: + o("rr.%s, off, err = unpackStringBase64(msg, off, rdStart + int(rr.Hdr.Rdlength))\n") + case `dns:"hex"`: + o("rr.%s, off, err = unpackStringHex(msg, off, rdStart + int(rr.Hdr.Rdlength))\n") + case `dns:"any"`: + o("rr.%s, off, err = unpackStringAny(msg, off, rdStart + int(rr.Hdr.Rdlength))\n") + case `dns:"octet"`: + o("rr.%s, off, err = unpackStringOctet(msg, off)\n") + case "": + switch st.Field(i).Type().(*types.Basic).Kind() { + case types.Uint8: + o("rr.%s, off, err = unpackUint8(msg, off)\n") + case types.Uint16: + o("rr.%s, off, err = unpackUint16(msg, off)\n") + case types.Uint32: + o("rr.%s, off, err = unpackUint32(msg, off)\n") + case types.Uint64: + o("rr.%s, off, err = unpackUint64(msg, off)\n") + case types.String: + o("rr.%s, off, err = unpackString(msg, off)\n") + default: + log.Fatalln(name, st.Field(i).Name()) + } + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + // If we've hit len(msg) we return without error. + if i < st.NumFields()-1 { + fmt.Fprintf(b, `if off == len(msg) { +return off, nil + } +`) + } + } + fmt.Fprintf(b, "return off, nil }\n\n") + } + + // gofmt + res, err := format.Source(b.Bytes()) + if err != nil { + b.WriteTo(os.Stderr) + log.Fatal(err) + } + + // write result + f, err := os.Create("zmsg.go") + fatalIfErr(err) + defer f.Close() + f.Write(res) +} + +// structMember will take a tag like dns:"size-base32:SaltLength" and return the last part of this string. +func structMember(s string) string { + fields := strings.Split(s, ":") + if len(fields) == 0 { + return "" + } + f := fields[len(fields)-1] + // f should have a closing " + if len(f) > 1 { + return f[:len(f)-1] + } + return f +} + +// structTag will take a tag like dns:"size-base32:SaltLength" and return base32. +func structTag(s string) string { + fields := strings.Split(s, ":") + if len(fields) < 2 { + return "" + } + return fields[1][len("\"size-"):] +} + +func fatalIfErr(err error) { + if err != nil { + log.Fatal(err) + } +} diff --git a/vendor/github.com/miekg/dns/msg_helpers.go b/vendor/github.com/miekg/dns/msg_helpers.go new file mode 100644 index 00000000..ecd9280f --- /dev/null +++ b/vendor/github.com/miekg/dns/msg_helpers.go @@ -0,0 +1,648 @@ +package dns + +import ( + "encoding/base32" + "encoding/base64" + "encoding/binary" + "encoding/hex" + "net" + "strings" +) + +// helper functions called from the generated zmsg.go + +// These function are named after the tag to help pack/unpack, if there is no tag it is the name +// of the type they pack/unpack (string, int, etc). We prefix all with unpackData or packData, so packDataA or +// packDataDomainName. + +func unpackDataA(msg []byte, off int) (net.IP, int, error) { + if off+net.IPv4len > len(msg) { + return nil, len(msg), &Error{err: "overflow unpacking a"} + } + a := append(make(net.IP, 0, net.IPv4len), msg[off:off+net.IPv4len]...) + off += net.IPv4len + return a, off, nil +} + +func packDataA(a net.IP, msg []byte, off int) (int, error) { + switch len(a) { + case net.IPv4len, net.IPv6len: + // It must be a slice of 4, even if it is 16, we encode only the first 4 + if off+net.IPv4len > len(msg) { + return len(msg), &Error{err: "overflow packing a"} + } + + copy(msg[off:], a.To4()) + off += net.IPv4len + case 0: + // Allowed, for dynamic updates. + default: + return len(msg), &Error{err: "overflow packing a"} + } + return off, nil +} + +func unpackDataAAAA(msg []byte, off int) (net.IP, int, error) { + if off+net.IPv6len > len(msg) { + return nil, len(msg), &Error{err: "overflow unpacking aaaa"} + } + aaaa := append(make(net.IP, 0, net.IPv6len), msg[off:off+net.IPv6len]...) + off += net.IPv6len + return aaaa, off, nil +} + +func packDataAAAA(aaaa net.IP, msg []byte, off int) (int, error) { + switch len(aaaa) { + case net.IPv6len: + if off+net.IPv6len > len(msg) { + return len(msg), &Error{err: "overflow packing aaaa"} + } + + copy(msg[off:], aaaa) + off += net.IPv6len + case 0: + // Allowed, dynamic updates. + default: + return len(msg), &Error{err: "overflow packing aaaa"} + } + return off, nil +} + +// unpackHeader unpacks an RR header, returning the offset to the end of the header and a +// re-sliced msg according to the expected length of the RR. +func unpackHeader(msg []byte, off int) (rr RR_Header, off1 int, truncmsg []byte, err error) { + hdr := RR_Header{} + if off == len(msg) { + return hdr, off, msg, nil + } + + hdr.Name, off, err = UnpackDomainName(msg, off) + if err != nil { + return hdr, len(msg), msg, err + } + hdr.Rrtype, off, err = unpackUint16(msg, off) + if err != nil { + return hdr, len(msg), msg, err + } + hdr.Class, off, err = unpackUint16(msg, off) + if err != nil { + return hdr, len(msg), msg, err + } + hdr.Ttl, off, err = unpackUint32(msg, off) + if err != nil { + return hdr, len(msg), msg, err + } + hdr.Rdlength, off, err = unpackUint16(msg, off) + if err != nil { + return hdr, len(msg), msg, err + } + msg, err = truncateMsgFromRdlength(msg, off, hdr.Rdlength) + return hdr, off, msg, err +} + +// packHeader packs an RR header, returning the offset to the end of the header. +// See PackDomainName for documentation about the compression. +func (hdr RR_Header) packHeader(msg []byte, off int, compression compressionMap, compress bool) (int, error) { + if off == len(msg) { + return off, nil + } + + off, err := packDomainName(hdr.Name, msg, off, compression, compress) + if err != nil { + return len(msg), err + } + off, err = packUint16(hdr.Rrtype, msg, off) + if err != nil { + return len(msg), err + } + off, err = packUint16(hdr.Class, msg, off) + if err != nil { + return len(msg), err + } + off, err = packUint32(hdr.Ttl, msg, off) + if err != nil { + return len(msg), err + } + off, err = packUint16(0, msg, off) // The RDLENGTH field will be set later in packRR. + if err != nil { + return len(msg), err + } + return off, nil +} + +// helper helper functions. + +// truncateMsgFromRdLength truncates msg to match the expected length of the RR. +// Returns an error if msg is smaller than the expected size. +func truncateMsgFromRdlength(msg []byte, off int, rdlength uint16) (truncmsg []byte, err error) { + lenrd := off + int(rdlength) + if lenrd > len(msg) { + return msg, &Error{err: "overflowing header size"} + } + return msg[:lenrd], nil +} + +var base32HexNoPadEncoding = base32.HexEncoding.WithPadding(base32.NoPadding) + +func fromBase32(s []byte) (buf []byte, err error) { + for i, b := range s { + if b >= 'a' && b <= 'z' { + s[i] = b - 32 + } + } + buflen := base32HexNoPadEncoding.DecodedLen(len(s)) + buf = make([]byte, buflen) + n, err := base32HexNoPadEncoding.Decode(buf, s) + buf = buf[:n] + return +} + +func toBase32(b []byte) string { + return base32HexNoPadEncoding.EncodeToString(b) +} + +func fromBase64(s []byte) (buf []byte, err error) { + buflen := base64.StdEncoding.DecodedLen(len(s)) + buf = make([]byte, buflen) + n, err := base64.StdEncoding.Decode(buf, s) + buf = buf[:n] + return +} + +func toBase64(b []byte) string { return base64.StdEncoding.EncodeToString(b) } + +// dynamicUpdate returns true if the Rdlength is zero. +func noRdata(h RR_Header) bool { return h.Rdlength == 0 } + +func unpackUint8(msg []byte, off int) (i uint8, off1 int, err error) { + if off+1 > len(msg) { + return 0, len(msg), &Error{err: "overflow unpacking uint8"} + } + return msg[off], off + 1, nil +} + +func packUint8(i uint8, msg []byte, off int) (off1 int, err error) { + if off+1 > len(msg) { + return len(msg), &Error{err: "overflow packing uint8"} + } + msg[off] = i + return off + 1, nil +} + +func unpackUint16(msg []byte, off int) (i uint16, off1 int, err error) { + if off+2 > len(msg) { + return 0, len(msg), &Error{err: "overflow unpacking uint16"} + } + return binary.BigEndian.Uint16(msg[off:]), off + 2, nil +} + +func packUint16(i uint16, msg []byte, off int) (off1 int, err error) { + if off+2 > len(msg) { + return len(msg), &Error{err: "overflow packing uint16"} + } + binary.BigEndian.PutUint16(msg[off:], i) + return off + 2, nil +} + +func unpackUint32(msg []byte, off int) (i uint32, off1 int, err error) { + if off+4 > len(msg) { + return 0, len(msg), &Error{err: "overflow unpacking uint32"} + } + return binary.BigEndian.Uint32(msg[off:]), off + 4, nil +} + +func packUint32(i uint32, msg []byte, off int) (off1 int, err error) { + if off+4 > len(msg) { + return len(msg), &Error{err: "overflow packing uint32"} + } + binary.BigEndian.PutUint32(msg[off:], i) + return off + 4, nil +} + +func unpackUint48(msg []byte, off int) (i uint64, off1 int, err error) { + if off+6 > len(msg) { + return 0, len(msg), &Error{err: "overflow unpacking uint64 as uint48"} + } + // Used in TSIG where the last 48 bits are occupied, so for now, assume a uint48 (6 bytes) + i = uint64(msg[off])<<40 | uint64(msg[off+1])<<32 | uint64(msg[off+2])<<24 | uint64(msg[off+3])<<16 | + uint64(msg[off+4])<<8 | uint64(msg[off+5]) + off += 6 + return i, off, nil +} + +func packUint48(i uint64, msg []byte, off int) (off1 int, err error) { + if off+6 > len(msg) { + return len(msg), &Error{err: "overflow packing uint64 as uint48"} + } + msg[off] = byte(i >> 40) + msg[off+1] = byte(i >> 32) + msg[off+2] = byte(i >> 24) + msg[off+3] = byte(i >> 16) + msg[off+4] = byte(i >> 8) + msg[off+5] = byte(i) + off += 6 + return off, nil +} + +func unpackUint64(msg []byte, off int) (i uint64, off1 int, err error) { + if off+8 > len(msg) { + return 0, len(msg), &Error{err: "overflow unpacking uint64"} + } + return binary.BigEndian.Uint64(msg[off:]), off + 8, nil +} + +func packUint64(i uint64, msg []byte, off int) (off1 int, err error) { + if off+8 > len(msg) { + return len(msg), &Error{err: "overflow packing uint64"} + } + binary.BigEndian.PutUint64(msg[off:], i) + off += 8 + return off, nil +} + +func unpackString(msg []byte, off int) (string, int, error) { + if off+1 > len(msg) { + return "", off, &Error{err: "overflow unpacking txt"} + } + l := int(msg[off]) + if off+l+1 > len(msg) { + return "", off, &Error{err: "overflow unpacking txt"} + } + var s strings.Builder + s.Grow(l) + for _, b := range msg[off+1 : off+1+l] { + switch { + case b == '"' || b == '\\': + s.WriteByte('\\') + s.WriteByte(b) + case b < ' ' || b > '~': // unprintable + s.WriteString(escapeByte(b)) + default: + s.WriteByte(b) + } + } + off += 1 + l + return s.String(), off, nil +} + +func packString(s string, msg []byte, off int) (int, error) { + txtTmp := make([]byte, 256*4+1) + off, err := packTxtString(s, msg, off, txtTmp) + if err != nil { + return len(msg), err + } + return off, nil +} + +func unpackStringBase32(msg []byte, off, end int) (string, int, error) { + if end > len(msg) { + return "", len(msg), &Error{err: "overflow unpacking base32"} + } + s := toBase32(msg[off:end]) + return s, end, nil +} + +func packStringBase32(s string, msg []byte, off int) (int, error) { + b32, err := fromBase32([]byte(s)) + if err != nil { + return len(msg), err + } + if off+len(b32) > len(msg) { + return len(msg), &Error{err: "overflow packing base32"} + } + copy(msg[off:off+len(b32)], b32) + off += len(b32) + return off, nil +} + +func unpackStringBase64(msg []byte, off, end int) (string, int, error) { + // Rest of the RR is base64 encoded value, so we don't need an explicit length + // to be set. Thus far all RR's that have base64 encoded fields have those as their + // last one. What we do need is the end of the RR! + if end > len(msg) { + return "", len(msg), &Error{err: "overflow unpacking base64"} + } + s := toBase64(msg[off:end]) + return s, end, nil +} + +func packStringBase64(s string, msg []byte, off int) (int, error) { + b64, err := fromBase64([]byte(s)) + if err != nil { + return len(msg), err + } + if off+len(b64) > len(msg) { + return len(msg), &Error{err: "overflow packing base64"} + } + copy(msg[off:off+len(b64)], b64) + off += len(b64) + return off, nil +} + +func unpackStringHex(msg []byte, off, end int) (string, int, error) { + // Rest of the RR is hex encoded value, so we don't need an explicit length + // to be set. NSEC and TSIG have hex fields with a length field. + // What we do need is the end of the RR! + if end > len(msg) { + return "", len(msg), &Error{err: "overflow unpacking hex"} + } + + s := hex.EncodeToString(msg[off:end]) + return s, end, nil +} + +func packStringHex(s string, msg []byte, off int) (int, error) { + h, err := hex.DecodeString(s) + if err != nil { + return len(msg), err + } + if off+len(h) > len(msg) { + return len(msg), &Error{err: "overflow packing hex"} + } + copy(msg[off:off+len(h)], h) + off += len(h) + return off, nil +} + +func unpackStringAny(msg []byte, off, end int) (string, int, error) { + if end > len(msg) { + return "", len(msg), &Error{err: "overflow unpacking anything"} + } + return string(msg[off:end]), end, nil +} + +func packStringAny(s string, msg []byte, off int) (int, error) { + if off+len(s) > len(msg) { + return len(msg), &Error{err: "overflow packing anything"} + } + copy(msg[off:off+len(s)], s) + off += len(s) + return off, nil +} + +func unpackStringTxt(msg []byte, off int) ([]string, int, error) { + txt, off, err := unpackTxt(msg, off) + if err != nil { + return nil, len(msg), err + } + return txt, off, nil +} + +func packStringTxt(s []string, msg []byte, off int) (int, error) { + txtTmp := make([]byte, 256*4+1) // If the whole string consists out of \DDD we need this many. + off, err := packTxt(s, msg, off, txtTmp) + if err != nil { + return len(msg), err + } + return off, nil +} + +func unpackDataOpt(msg []byte, off int) ([]EDNS0, int, error) { + var edns []EDNS0 +Option: + var code uint16 + if off+4 > len(msg) { + return nil, len(msg), &Error{err: "overflow unpacking opt"} + } + code = binary.BigEndian.Uint16(msg[off:]) + off += 2 + optlen := binary.BigEndian.Uint16(msg[off:]) + off += 2 + if off+int(optlen) > len(msg) { + return nil, len(msg), &Error{err: "overflow unpacking opt"} + } + switch code { + case EDNS0NSID: + e := new(EDNS0_NSID) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0SUBNET: + e := new(EDNS0_SUBNET) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0COOKIE: + e := new(EDNS0_COOKIE) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0UL: + e := new(EDNS0_UL) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0LLQ: + e := new(EDNS0_LLQ) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0DAU: + e := new(EDNS0_DAU) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0DHU: + e := new(EDNS0_DHU) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0N3U: + e := new(EDNS0_N3U) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + case EDNS0PADDING: + e := new(EDNS0_PADDING) + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + default: + e := new(EDNS0_LOCAL) + e.Code = code + if err := e.unpack(msg[off : off+int(optlen)]); err != nil { + return nil, len(msg), err + } + edns = append(edns, e) + off += int(optlen) + } + + if off < len(msg) { + goto Option + } + + return edns, off, nil +} + +func packDataOpt(options []EDNS0, msg []byte, off int) (int, error) { + for _, el := range options { + b, err := el.pack() + if err != nil || off+3 > len(msg) { + return len(msg), &Error{err: "overflow packing opt"} + } + binary.BigEndian.PutUint16(msg[off:], el.Option()) // Option code + binary.BigEndian.PutUint16(msg[off+2:], uint16(len(b))) // Length + off += 4 + if off+len(b) > len(msg) { + copy(msg[off:], b) + off = len(msg) + continue + } + // Actual data + copy(msg[off:off+len(b)], b) + off += len(b) + } + return off, nil +} + +func unpackStringOctet(msg []byte, off int) (string, int, error) { + s := string(msg[off:]) + return s, len(msg), nil +} + +func packStringOctet(s string, msg []byte, off int) (int, error) { + txtTmp := make([]byte, 256*4+1) + off, err := packOctetString(s, msg, off, txtTmp) + if err != nil { + return len(msg), err + } + return off, nil +} + +func unpackDataNsec(msg []byte, off int) ([]uint16, int, error) { + var nsec []uint16 + length, window, lastwindow := 0, 0, -1 + for off < len(msg) { + if off+2 > len(msg) { + return nsec, len(msg), &Error{err: "overflow unpacking nsecx"} + } + window = int(msg[off]) + length = int(msg[off+1]) + off += 2 + if window <= lastwindow { + // RFC 4034: Blocks are present in the NSEC RR RDATA in + // increasing numerical order. + return nsec, len(msg), &Error{err: "out of order NSEC block"} + } + if length == 0 { + // RFC 4034: Blocks with no types present MUST NOT be included. + return nsec, len(msg), &Error{err: "empty NSEC block"} + } + if length > 32 { + return nsec, len(msg), &Error{err: "NSEC block too long"} + } + if off+length > len(msg) { + return nsec, len(msg), &Error{err: "overflowing NSEC block"} + } + + // Walk the bytes in the window and extract the type bits + for j, b := range msg[off : off+length] { + // Check the bits one by one, and set the type + if b&0x80 == 0x80 { + nsec = append(nsec, uint16(window*256+j*8+0)) + } + if b&0x40 == 0x40 { + nsec = append(nsec, uint16(window*256+j*8+1)) + } + if b&0x20 == 0x20 { + nsec = append(nsec, uint16(window*256+j*8+2)) + } + if b&0x10 == 0x10 { + nsec = append(nsec, uint16(window*256+j*8+3)) + } + if b&0x8 == 0x8 { + nsec = append(nsec, uint16(window*256+j*8+4)) + } + if b&0x4 == 0x4 { + nsec = append(nsec, uint16(window*256+j*8+5)) + } + if b&0x2 == 0x2 { + nsec = append(nsec, uint16(window*256+j*8+6)) + } + if b&0x1 == 0x1 { + nsec = append(nsec, uint16(window*256+j*8+7)) + } + } + off += length + lastwindow = window + } + return nsec, off, nil +} + +func packDataNsec(bitmap []uint16, msg []byte, off int) (int, error) { + if len(bitmap) == 0 { + return off, nil + } + var lastwindow, lastlength uint16 + for _, t := range bitmap { + window := t / 256 + length := (t-window*256)/8 + 1 + if window > lastwindow && lastlength != 0 { // New window, jump to the new offset + off += int(lastlength) + 2 + lastlength = 0 + } + if window < lastwindow || length < lastlength { + return len(msg), &Error{err: "nsec bits out of order"} + } + if off+2+int(length) > len(msg) { + return len(msg), &Error{err: "overflow packing nsec"} + } + // Setting the window # + msg[off] = byte(window) + // Setting the octets length + msg[off+1] = byte(length) + // Setting the bit value for the type in the right octet + msg[off+1+int(length)] |= byte(1 << (7 - t%8)) + lastwindow, lastlength = window, length + } + off += int(lastlength) + 2 + return off, nil +} + +func unpackDataDomainNames(msg []byte, off, end int) ([]string, int, error) { + var ( + servers []string + s string + err error + ) + if end > len(msg) { + return nil, len(msg), &Error{err: "overflow unpacking domain names"} + } + for off < end { + s, off, err = UnpackDomainName(msg, off) + if err != nil { + return servers, len(msg), err + } + servers = append(servers, s) + } + return servers, off, nil +} + +func packDataDomainNames(names []string, msg []byte, off int, compression compressionMap, compress bool) (int, error) { + var err error + for _, name := range names { + off, err = packDomainName(name, msg, off, compression, compress) + if err != nil { + return len(msg), err + } + } + return off, nil +} diff --git a/vendor/github.com/miekg/dns/msg_truncate.go b/vendor/github.com/miekg/dns/msg_truncate.go new file mode 100644 index 00000000..4763fc61 --- /dev/null +++ b/vendor/github.com/miekg/dns/msg_truncate.go @@ -0,0 +1,106 @@ +package dns + +// Truncate ensures the reply message will fit into the requested buffer +// size by removing records that exceed the requested size. +// +// It will first check if the reply fits without compression and then with +// compression. If it won't fit with compression, Scrub then walks the +// record adding as many records as possible without exceeding the +// requested buffer size. +// +// The TC bit will be set if any answer records were excluded from the +// message. This indicates to that the client should retry over TCP. +// +// The appropriate buffer size can be retrieved from the requests OPT +// record, if present, and is transport specific otherwise. dns.MinMsgSize +// should be used for UDP requests without an OPT record, and +// dns.MaxMsgSize for TCP requests without an OPT record. +func (dns *Msg) Truncate(size int) { + if dns.IsTsig() != nil { + // To simplify this implementation, we don't perform + // truncation on responses with a TSIG record. + return + } + + // RFC 6891 mandates that the payload size in an OPT record + // less than 512 bytes must be treated as equal to 512 bytes. + // + // For ease of use, we impose that restriction here. + if size < 512 { + size = 512 + } + + l := msgLenWithCompressionMap(dns, nil) // uncompressed length + if l <= size { + // Don't waste effort compressing this message. + dns.Compress = false + return + } + + dns.Compress = true + + edns0 := dns.popEdns0() + if edns0 != nil { + // Account for the OPT record that gets added at the end, + // by subtracting that length from our budget. + // + // The EDNS(0) OPT record must have the root domain and + // it's length is thus unaffected by compression. + size -= Len(edns0) + } + + compression := make(map[string]struct{}) + + l = headerSize + for _, r := range dns.Question { + l += r.len(l, compression) + } + + var numAnswer int + if l < size { + l, numAnswer = truncateLoop(dns.Answer, size, l, compression) + } + + var numNS int + if l < size { + l, numNS = truncateLoop(dns.Ns, size, l, compression) + } + + var numExtra int + if l < size { + l, numExtra = truncateLoop(dns.Extra, size, l, compression) + } + + // According to RFC 2181, the TC bit should only be set if not all + // of the answer RRs can be included in the response. + dns.Truncated = len(dns.Answer) > numAnswer + + dns.Answer = dns.Answer[:numAnswer] + dns.Ns = dns.Ns[:numNS] + dns.Extra = dns.Extra[:numExtra] + + if edns0 != nil { + // Add the OPT record back onto the additional section. + dns.Extra = append(dns.Extra, edns0) + } +} + +func truncateLoop(rrs []RR, size, l int, compression map[string]struct{}) (int, int) { + for i, r := range rrs { + if r == nil { + continue + } + + l += r.len(l, compression) + if l > size { + // Return size, rather than l prior to this record, + // to prevent any further records being added. + return size, i + } + if l == size { + return l, i + 1 + } + } + + return l, len(rrs) +} diff --git a/vendor/github.com/miekg/dns/nsecx.go b/vendor/github.com/miekg/dns/nsecx.go new file mode 100644 index 00000000..8f071a47 --- /dev/null +++ b/vendor/github.com/miekg/dns/nsecx.go @@ -0,0 +1,95 @@ +package dns + +import ( + "crypto/sha1" + "encoding/hex" + "strings" +) + +// HashName hashes a string (label) according to RFC 5155. It returns the hashed string in uppercase. +func HashName(label string, ha uint8, iter uint16, salt string) string { + if ha != SHA1 { + return "" + } + + wireSalt := make([]byte, hex.DecodedLen(len(salt))) + n, err := packStringHex(salt, wireSalt, 0) + if err != nil { + return "" + } + wireSalt = wireSalt[:n] + + name := make([]byte, 255) + off, err := PackDomainName(strings.ToLower(label), name, 0, nil, false) + if err != nil { + return "" + } + name = name[:off] + + s := sha1.New() + // k = 0 + s.Write(name) + s.Write(wireSalt) + nsec3 := s.Sum(nil) + + // k > 0 + for k := uint16(0); k < iter; k++ { + s.Reset() + s.Write(nsec3) + s.Write(wireSalt) + nsec3 = s.Sum(nsec3[:0]) + } + + return toBase32(nsec3) +} + +// Cover returns true if a name is covered by the NSEC3 record +func (rr *NSEC3) Cover(name string) bool { + nameHash := HashName(name, rr.Hash, rr.Iterations, rr.Salt) + owner := strings.ToUpper(rr.Hdr.Name) + labelIndices := Split(owner) + if len(labelIndices) < 2 { + return false + } + ownerHash := owner[:labelIndices[1]-1] + ownerZone := owner[labelIndices[1]:] + if !IsSubDomain(ownerZone, strings.ToUpper(name)) { // name is outside owner zone + return false + } + + nextHash := rr.NextDomain + + // if empty interval found, try cover wildcard hashes so nameHash shouldn't match with ownerHash + if ownerHash == nextHash && nameHash != ownerHash { // empty interval + return true + } + if ownerHash > nextHash { // end of zone + if nameHash > ownerHash { // covered since there is nothing after ownerHash + return true + } + return nameHash < nextHash // if nameHash is before beginning of zone it is covered + } + if nameHash < ownerHash { // nameHash is before ownerHash, not covered + return false + } + return nameHash < nextHash // if nameHash is before nextHash is it covered (between ownerHash and nextHash) +} + +// Match returns true if a name matches the NSEC3 record +func (rr *NSEC3) Match(name string) bool { + nameHash := HashName(name, rr.Hash, rr.Iterations, rr.Salt) + owner := strings.ToUpper(rr.Hdr.Name) + labelIndices := Split(owner) + if len(labelIndices) < 2 { + return false + } + ownerHash := owner[:labelIndices[1]-1] + ownerZone := owner[labelIndices[1]:] + if !IsSubDomain(ownerZone, strings.ToUpper(name)) { // name is outside owner zone + return false + } + if ownerHash == nameHash { + return true + } + return false +} diff --git a/vendor/github.com/miekg/dns/privaterr.go b/vendor/github.com/miekg/dns/privaterr.go new file mode 100644 index 00000000..d9c0d267 --- /dev/null +++ b/vendor/github.com/miekg/dns/privaterr.go @@ -0,0 +1,132 @@ +package dns + +import ( + "fmt" + "strings" +) + +// PrivateRdata is an interface used for implementing "Private Use" RR types, see +// RFC 6895. This allows one to experiment with new RR types, without requesting an +// official type code. Also see dns.PrivateHandle and dns.PrivateHandleRemove. +type PrivateRdata interface { + // String returns the text presentaton of the Rdata of the Private RR. + String() string + // Parse parses the Rdata of the private RR. + Parse([]string) error + // Pack is used when packing a private RR into a buffer. + Pack([]byte) (int, error) + // Unpack is used when unpacking a private RR from a buffer. + // TODO(miek): diff. signature than Pack, see edns0.go for instance. + Unpack([]byte) (int, error) + // Copy copies the Rdata. + Copy(PrivateRdata) error + // Len returns the length in octets of the Rdata. + Len() int +} + +// PrivateRR represents an RR that uses a PrivateRdata user-defined type. +// It mocks normal RRs and implements dns.RR interface. +type PrivateRR struct { + Hdr RR_Header + Data PrivateRdata +} + +func mkPrivateRR(rrtype uint16) *PrivateRR { + // Panics if RR is not an instance of PrivateRR. + rrfunc, ok := TypeToRR[rrtype] + if !ok { + panic(fmt.Sprintf("dns: invalid operation with Private RR type %d", rrtype)) + } + + anyrr := rrfunc() + rr, ok := anyrr.(*PrivateRR) + if !ok { + panic(fmt.Sprintf("dns: RR is not a PrivateRR, TypeToRR[%d] generator returned %T", rrtype, anyrr)) + } + + return rr +} + +// Header return the RR header of r. +func (r *PrivateRR) Header() *RR_Header { return &r.Hdr } + +func (r *PrivateRR) String() string { return r.Hdr.String() + r.Data.String() } + +// Private len and copy parts to satisfy RR interface. +func (r *PrivateRR) len(off int, compression map[string]struct{}) int { + l := r.Hdr.len(off, compression) + l += r.Data.Len() + return l +} + +func (r *PrivateRR) copy() RR { + // make new RR like this: + rr := mkPrivateRR(r.Hdr.Rrtype) + rr.Hdr = r.Hdr + + err := r.Data.Copy(rr.Data) + if err != nil { + panic("dns: got value that could not be used to copy Private rdata") + } + return rr +} + +func (r *PrivateRR) pack(msg []byte, off int, compression compressionMap, compress bool) (int, error) { + n, err := r.Data.Pack(msg[off:]) + if err != nil { + return len(msg), err + } + off += n + return off, nil +} + +func (r *PrivateRR) unpack(msg []byte, off int) (int, error) { + off1, err := r.Data.Unpack(msg[off:]) + off += off1 + return off, err +} + +func (r *PrivateRR) parse(c *zlexer, origin, file string) *ParseError { + var l lex + text := make([]string, 0, 2) // could be 0..N elements, median is probably 1 +Fetch: + for { + // TODO(miek): we could also be returning _QUOTE, this might or might not + // be an issue (basically parsing TXT becomes hard) + switch l, _ = c.Next(); l.value { + case zNewline, zEOF: + break Fetch + case zString: + text = append(text, l.token) + } + } + + err := r.Data.Parse(text) + if err != nil { + return &ParseError{file, err.Error(), l} + } + + return nil +} + +func (r1 *PrivateRR) isDuplicate(r2 RR) bool { return false } + +// PrivateHandle registers a private resource record type. It requires +// string and numeric representation of private RR type and generator function as argument. +func PrivateHandle(rtypestr string, rtype uint16, generator func() PrivateRdata) { + rtypestr = strings.ToUpper(rtypestr) + + TypeToRR[rtype] = func() RR { return &PrivateRR{RR_Header{}, generator()} } + TypeToString[rtype] = rtypestr + StringToType[rtypestr] = rtype +} + +// PrivateHandleRemove removes definitions required to support private RR type. +func PrivateHandleRemove(rtype uint16) { + rtypestr, ok := TypeToString[rtype] + if ok { + delete(TypeToRR, rtype) + delete(TypeToString, rtype) + delete(StringToType, rtypestr) + } +} diff --git a/vendor/github.com/miekg/dns/reverse.go b/vendor/github.com/miekg/dns/reverse.go new file mode 100644 index 00000000..28151af8 --- /dev/null +++ b/vendor/github.com/miekg/dns/reverse.go @@ -0,0 +1,52 @@ +package dns + +// StringToType is the reverse of TypeToString, needed for string parsing. +var StringToType = reverseInt16(TypeToString) + +// StringToClass is the reverse of ClassToString, needed for string parsing. +var StringToClass = reverseInt16(ClassToString) + +// StringToOpcode is a map of opcodes to strings. +var StringToOpcode = reverseInt(OpcodeToString) + +// StringToRcode is a map of rcodes to strings. +var StringToRcode = reverseInt(RcodeToString) + +func init() { + // Preserve previous NOTIMP typo, see github.com/miekg/dns/issues/733. + StringToRcode["NOTIMPL"] = RcodeNotImplemented +} + +// StringToAlgorithm is the reverse of AlgorithmToString. +var StringToAlgorithm = reverseInt8(AlgorithmToString) + +// StringToHash is a map of names to hash IDs. +var StringToHash = reverseInt8(HashToString) + +// StringToCertType is the reverseof CertTypeToString. +var StringToCertType = reverseInt16(CertTypeToString) + +// Reverse a map +func reverseInt8(m map[uint8]string) map[string]uint8 { + n := make(map[string]uint8, len(m)) + for u, s := range m { + n[s] = u + } + return n +} + +func reverseInt16(m map[uint16]string) map[string]uint16 { + n := make(map[string]uint16, len(m)) + for u, s := range m { + n[s] = u + } + return n +} + +func reverseInt(m map[int]string) map[string]int { + n := make(map[string]int, len(m)) + for u, s := range m { + n[s] = u + } + return n +} diff --git a/vendor/github.com/miekg/dns/sanitize.go b/vendor/github.com/miekg/dns/sanitize.go new file mode 100644 index 00000000..a638e862 --- /dev/null +++ b/vendor/github.com/miekg/dns/sanitize.go @@ -0,0 +1,86 @@ +package dns + +// Dedup removes identical RRs from rrs. It preserves the original ordering. +// The lowest TTL of any duplicates is used in the remaining one. Dedup modifies +// rrs. +// m is used to store the RRs temporary. If it is nil a new map will be allocated. +func Dedup(rrs []RR, m map[string]RR) []RR { + + if m == nil { + m = make(map[string]RR) + } + // Save the keys, so we don't have to call normalizedString twice. + keys := make([]*string, 0, len(rrs)) + + for _, r := range rrs { + key := normalizedString(r) + keys = append(keys, &key) + if mr, ok := m[key]; ok { + // Shortest TTL wins. + rh, mrh := r.Header(), mr.Header() + if mrh.Ttl > rh.Ttl { + mrh.Ttl = rh.Ttl + } + continue + } + + m[key] = r + } + // If the length of the result map equals the amount of RRs we got, + // it means they were all different. We can then just return the original rrset. + if len(m) == len(rrs) { + return rrs + } + + j := 0 + for i, r := range rrs { + // If keys[i] lives in the map, we should copy and remove it. + if _, ok := m[*keys[i]]; ok { + delete(m, *keys[i]) + rrs[j] = r + j++ + } + + if len(m) == 0 { + break + } + } + + return rrs[:j] +} + +// normalizedString returns a normalized string from r. The TTL +// is removed and the domain name is lowercased. We go from this: +// DomainNameTTLCLASSTYPERDATA to: +// lowercasenameCLASSTYPE... +func normalizedString(r RR) string { + // A string Go DNS makes has: domainnameTTL... + b := []byte(r.String()) + + // find the first non-escaped tab, then another, so we capture where the TTL lives. + esc := false + ttlStart, ttlEnd := 0, 0 + for i := 0; i < len(b) && ttlEnd == 0; i++ { + switch { + case b[i] == '\\': + esc = !esc + case b[i] == '\t' && !esc: + if ttlStart == 0 { + ttlStart = i + continue + } + if ttlEnd == 0 { + ttlEnd = i + } + case b[i] >= 'A' && b[i] <= 'Z' && !esc: + b[i] += 32 + default: + esc = false + } + } + + // remove TTL. + copy(b[ttlStart:], b[ttlEnd:]) + cut := ttlEnd - ttlStart + return string(b[:len(b)-cut]) +} diff --git a/vendor/github.com/miekg/dns/scan.go b/vendor/github.com/miekg/dns/scan.go new file mode 100644 index 00000000..a8691bca --- /dev/null +++ b/vendor/github.com/miekg/dns/scan.go @@ -0,0 +1,1337 @@ +package dns + +import ( + "bufio" + "fmt" + "io" + "os" + "path/filepath" + "strconv" + "strings" +) + +const maxTok = 2048 // Largest token we can return. + +// The maximum depth of $INCLUDE directives supported by the +// ZoneParser API. +const maxIncludeDepth = 7 + +// Tokinize a RFC 1035 zone file. The tokenizer will normalize it: +// * Add ownernames if they are left blank; +// * Suppress sequences of spaces; +// * Make each RR fit on one line (_NEWLINE is send as last) +// * Handle comments: ; +// * Handle braces - anywhere. +const ( + // Zonefile + zEOF = iota + zString + zBlank + zQuote + zNewline + zRrtpe + zOwner + zClass + zDirOrigin // $ORIGIN + zDirTTL // $TTL + zDirInclude // $INCLUDE + zDirGenerate // $GENERATE + + // Privatekey file + zValue + zKey + + zExpectOwnerDir // Ownername + zExpectOwnerBl // Whitespace after the ownername + zExpectAny // Expect rrtype, ttl or class + zExpectAnyNoClass // Expect rrtype or ttl + zExpectAnyNoClassBl // The whitespace after _EXPECT_ANY_NOCLASS + zExpectAnyNoTTL // Expect rrtype or class + zExpectAnyNoTTLBl // Whitespace after _EXPECT_ANY_NOTTL + zExpectRrtype // Expect rrtype + zExpectRrtypeBl // Whitespace BEFORE rrtype + zExpectRdata // The first element of the rdata + zExpectDirTTLBl // Space after directive $TTL + zExpectDirTTL // Directive $TTL + zExpectDirOriginBl // Space after directive $ORIGIN + zExpectDirOrigin // Directive $ORIGIN + zExpectDirIncludeBl // Space after directive $INCLUDE + zExpectDirInclude // Directive $INCLUDE + zExpectDirGenerate // Directive $GENERATE + zExpectDirGenerateBl // Space after directive $GENERATE +) + +// ParseError is a parsing error. It contains the parse error and the location in the io.Reader +// where the error occurred. +type ParseError struct { + file string + err string + lex lex +} + +func (e *ParseError) Error() (s string) { + if e.file != "" { + s = e.file + ": " + } + s += "dns: " + e.err + ": " + strconv.QuoteToASCII(e.lex.token) + " at line: " + + strconv.Itoa(e.lex.line) + ":" + strconv.Itoa(e.lex.column) + return +} + +type lex struct { + token string // text of the token + err bool // when true, token text has lexer error + value uint8 // value: zString, _BLANK, etc. + torc uint16 // type or class as parsed in the lexer, we only need to look this up in the grammar + line int // line in the file + column int // column in the file +} + +// Token holds the token that are returned when a zone file is parsed. +type Token struct { + // The scanned resource record when error is not nil. + RR + // When an error occurred, this has the error specifics. + Error *ParseError + // A potential comment positioned after the RR and on the same line. + Comment string +} + +// ttlState describes the state necessary to fill in an omitted RR TTL +type ttlState struct { + ttl uint32 // ttl is the current default TTL + isByDirective bool // isByDirective indicates whether ttl was set by a $TTL directive +} + +// NewRR reads the RR contained in the string s. Only the first RR is +// returned. If s contains no records, NewRR will return nil with no +// error. +// +// The class defaults to IN and TTL defaults to 3600. The full zone +// file syntax like $TTL, $ORIGIN, etc. is supported. +// +// All fields of the returned RR are set, except RR.Header().Rdlength +// which is set to 0. +func NewRR(s string) (RR, error) { + if len(s) > 0 && s[len(s)-1] != '\n' { // We need a closing newline + return ReadRR(strings.NewReader(s+"\n"), "") + } + return ReadRR(strings.NewReader(s), "") +} + +// ReadRR reads the RR contained in r. +// +// The string file is used in error reporting and to resolve relative +// $INCLUDE directives. +// +// See NewRR for more documentation. +func ReadRR(r io.Reader, file string) (RR, error) { + zp := NewZoneParser(r, ".", file) + zp.SetDefaultTTL(defaultTtl) + zp.SetIncludeAllowed(true) + rr, _ := zp.Next() + return rr, zp.Err() +} + +// ParseZone reads a RFC 1035 style zonefile from r. It returns +// *Tokens on the returned channel, each consisting of either a +// parsed RR and optional comment or a nil RR and an error. The +// channel is closed by ParseZone when the end of r is reached. +// +// The string file is used in error reporting and to resolve relative +// $INCLUDE directives. The string origin is used as the initial +// origin, as if the file would start with an $ORIGIN directive. +// +// The directives $INCLUDE, $ORIGIN, $TTL and $GENERATE are all +// supported. +// +// Basic usage pattern when reading from a string (z) containing the +// zone data: +// +// for x := range dns.ParseZone(strings.NewReader(z), "", "") { +// if x.Error != nil { +// // log.Println(x.Error) +// } else { +// // Do something with x.RR +// } +// } +// +// Comments specified after an RR (and on the same line!) are +// returned too: +// +// foo. IN A 10.0.0.1 ; this is a comment +// +// The text "; this is comment" is returned in Token.Comment. +// Comments inside the RR are returned concatenated along with the +// RR. Comments on a line by themselves are discarded. +// +// To prevent memory leaks it is important to always fully drain the +// returned channel. If an error occurs, it will always be the last +// Token sent on the channel. +// +// Deprecated: New users should prefer the ZoneParser API. +func ParseZone(r io.Reader, origin, file string) chan *Token { + t := make(chan *Token, 10000) + go parseZone(r, origin, file, t) + return t +} + +func parseZone(r io.Reader, origin, file string, t chan *Token) { + defer close(t) + + zp := NewZoneParser(r, origin, file) + zp.SetIncludeAllowed(true) + + for rr, ok := zp.Next(); ok; rr, ok = zp.Next() { + t <- &Token{RR: rr, Comment: zp.Comment()} + } + + if err := zp.Err(); err != nil { + pe, ok := err.(*ParseError) + if !ok { + pe = &ParseError{file: file, err: err.Error()} + } + + t <- &Token{Error: pe} + } +} + +// ZoneParser is a parser for an RFC 1035 style zonefile. +// +// Each parsed RR in the zone is returned sequentially from Next. An +// optional comment can be retrieved with Comment. +// +// The directives $INCLUDE, $ORIGIN, $TTL and $GENERATE are all +// supported. Although $INCLUDE is disabled by default. +// +// Basic usage pattern when reading from a string (z) containing the +// zone data: +// +// zp := NewZoneParser(strings.NewReader(z), "", "") +// +// for rr, ok := zp.Next(); ok; rr, ok = zp.Next() { +// // Do something with rr +// } +// +// if err := zp.Err(); err != nil { +// // log.Println(err) +// } +// +// Comments specified after an RR (and on the same line!) are +// returned too: +// +// foo. IN A 10.0.0.1 ; this is a comment +// +// The text "; this is comment" is returned from Comment. Comments inside +// the RR are returned concatenated along with the RR. Comments on a line +// by themselves are discarded. +type ZoneParser struct { + c *zlexer + + parseErr *ParseError + + origin string + file string + + defttl *ttlState + + h RR_Header + + // sub is used to parse $INCLUDE files and $GENERATE directives. + // Next, by calling subNext, forwards the resulting RRs from this + // sub parser to the calling code. + sub *ZoneParser + osFile *os.File + + includeDepth uint8 + + includeAllowed bool +} + +// NewZoneParser returns an RFC 1035 style zonefile parser that reads +// from r. +// +// The string file is used in error reporting and to resolve relative +// $INCLUDE directives. The string origin is used as the initial +// origin, as if the file would start with an $ORIGIN directive. +func NewZoneParser(r io.Reader, origin, file string) *ZoneParser { + var pe *ParseError + if origin != "" { + origin = Fqdn(origin) + if _, ok := IsDomainName(origin); !ok { + pe = &ParseError{file, "bad initial origin name", lex{}} + } + } + + return &ZoneParser{ + c: newZLexer(r), + + parseErr: pe, + + origin: origin, + file: file, + } +} + +// SetDefaultTTL sets the parsers default TTL to ttl. +func (zp *ZoneParser) SetDefaultTTL(ttl uint32) { + zp.defttl = &ttlState{ttl, false} +} + +// SetIncludeAllowed controls whether $INCLUDE directives are +// allowed. $INCLUDE directives are not supported by default. +// +// The $INCLUDE directive will open and read from a user controlled +// file on the system. Even if the file is not a valid zonefile, the +// contents of the file may be revealed in error messages, such as: +// +// /etc/passwd: dns: not a TTL: "root:x:0:0:root:/root:/bin/bash" at line: 1:31 +// /etc/shadow: dns: not a TTL: "root:$6$::0:99999:7:::" at line: 1:125 +func (zp *ZoneParser) SetIncludeAllowed(v bool) { + zp.includeAllowed = v +} + +// Err returns the first non-EOF error that was encountered by the +// ZoneParser. +func (zp *ZoneParser) Err() error { + if zp.parseErr != nil { + return zp.parseErr + } + + if zp.sub != nil { + if err := zp.sub.Err(); err != nil { + return err + } + } + + return zp.c.Err() +} + +func (zp *ZoneParser) setParseError(err string, l lex) (RR, bool) { + zp.parseErr = &ParseError{zp.file, err, l} + return nil, false +} + +// Comment returns an optional text comment that occurred alongside +// the RR. +func (zp *ZoneParser) Comment() string { + if zp.parseErr != nil { + return "" + } + + if zp.sub != nil { + return zp.sub.Comment() + } + + return zp.c.Comment() +} + +func (zp *ZoneParser) subNext() (RR, bool) { + if rr, ok := zp.sub.Next(); ok { + return rr, true + } + + if zp.sub.osFile != nil { + zp.sub.osFile.Close() + zp.sub.osFile = nil + } + + if zp.sub.Err() != nil { + // We have errors to surface. + return nil, false + } + + zp.sub = nil + return zp.Next() +} + +// Next advances the parser to the next RR in the zonefile and +// returns the (RR, true). It will return (nil, false) when the +// parsing stops, either by reaching the end of the input or an +// error. After Next returns (nil, false), the Err method will return +// any error that occurred during parsing. +func (zp *ZoneParser) Next() (RR, bool) { + if zp.parseErr != nil { + return nil, false + } + if zp.sub != nil { + return zp.subNext() + } + + // 6 possible beginnings of a line (_ is a space): + // + // 0. zRRTYPE -> all omitted until the rrtype + // 1. zOwner _ zRrtype -> class/ttl omitted + // 2. zOwner _ zString _ zRrtype -> class omitted + // 3. zOwner _ zString _ zClass _ zRrtype -> ttl/class + // 4. zOwner _ zClass _ zRrtype -> ttl omitted + // 5. zOwner _ zClass _ zString _ zRrtype -> class/ttl (reversed) + // + // After detecting these, we know the zRrtype so we can jump to functions + // handling the rdata for each of these types. + + st := zExpectOwnerDir // initial state + h := &zp.h + + for l, ok := zp.c.Next(); ok; l, ok = zp.c.Next() { + // zlexer spotted an error already + if l.err { + return zp.setParseError(l.token, l) + } + + switch st { + case zExpectOwnerDir: + // We can also expect a directive, like $TTL or $ORIGIN + if zp.defttl != nil { + h.Ttl = zp.defttl.ttl + } + + h.Class = ClassINET + + switch l.value { + case zNewline: + st = zExpectOwnerDir + case zOwner: + name, ok := toAbsoluteName(l.token, zp.origin) + if !ok { + return zp.setParseError("bad owner name", l) + } + + h.Name = name + + st = zExpectOwnerBl + case zDirTTL: + st = zExpectDirTTLBl + case zDirOrigin: + st = zExpectDirOriginBl + case zDirInclude: + st = zExpectDirIncludeBl + case zDirGenerate: + st = zExpectDirGenerateBl + case zRrtpe: + h.Rrtype = l.torc + + st = zExpectRdata + case zClass: + h.Class = l.torc + + st = zExpectAnyNoClassBl + case zBlank: + // Discard, can happen when there is nothing on the + // line except the RR type + case zString: + ttl, ok := stringToTTL(l.token) + if !ok { + return zp.setParseError("not a TTL", l) + } + + h.Ttl = ttl + + if zp.defttl == nil || !zp.defttl.isByDirective { + zp.defttl = &ttlState{ttl, false} + } + + st = zExpectAnyNoTTLBl + default: + return zp.setParseError("syntax error at beginning", l) + } + case zExpectDirIncludeBl: + if l.value != zBlank { + return zp.setParseError("no blank after $INCLUDE-directive", l) + } + + st = zExpectDirInclude + case zExpectDirInclude: + if l.value != zString { + return zp.setParseError("expecting $INCLUDE value, not this...", l) + } + + neworigin := zp.origin // There may be optionally a new origin set after the filename, if not use current one + switch l, _ := zp.c.Next(); l.value { + case zBlank: + l, _ := zp.c.Next() + if l.value == zString { + name, ok := toAbsoluteName(l.token, zp.origin) + if !ok { + return zp.setParseError("bad origin name", l) + } + + neworigin = name + } + case zNewline, zEOF: + // Ok + default: + return zp.setParseError("garbage after $INCLUDE", l) + } + + if !zp.includeAllowed { + return zp.setParseError("$INCLUDE directive not allowed", l) + } + if zp.includeDepth >= maxIncludeDepth { + return zp.setParseError("too deeply nested $INCLUDE", l) + } + + // Start with the new file + includePath := l.token + if !filepath.IsAbs(includePath) { + includePath = filepath.Join(filepath.Dir(zp.file), includePath) + } + + r1, e1 := os.Open(includePath) + if e1 != nil { + var as string + if !filepath.IsAbs(l.token) { + as = fmt.Sprintf(" as `%s'", includePath) + } + + msg := fmt.Sprintf("failed to open `%s'%s: %v", l.token, as, e1) + return zp.setParseError(msg, l) + } + + zp.sub = NewZoneParser(r1, neworigin, includePath) + zp.sub.defttl, zp.sub.includeDepth, zp.sub.osFile = zp.defttl, zp.includeDepth+1, r1 + zp.sub.SetIncludeAllowed(true) + return zp.subNext() + case zExpectDirTTLBl: + if l.value != zBlank { + return zp.setParseError("no blank after $TTL-directive", l) + } + + st = zExpectDirTTL + case zExpectDirTTL: + if l.value != zString { + return zp.setParseError("expecting $TTL value, not this...", l) + } + + if e := slurpRemainder(zp.c, zp.file); e != nil { + zp.parseErr = e + return nil, false + } + + ttl, ok := stringToTTL(l.token) + if !ok { + return zp.setParseError("expecting $TTL value, not this...", l) + } + + zp.defttl = &ttlState{ttl, true} + + st = zExpectOwnerDir + case zExpectDirOriginBl: + if l.value != zBlank { + return zp.setParseError("no blank after $ORIGIN-directive", l) + } + + st = zExpectDirOrigin + case zExpectDirOrigin: + if l.value != zString { + return zp.setParseError("expecting $ORIGIN value, not this...", l) + } + + if e := slurpRemainder(zp.c, zp.file); e != nil { + zp.parseErr = e + return nil, false + } + + name, ok := toAbsoluteName(l.token, zp.origin) + if !ok { + return zp.setParseError("bad origin name", l) + } + + zp.origin = name + + st = zExpectOwnerDir + case zExpectDirGenerateBl: + if l.value != zBlank { + return zp.setParseError("no blank after $GENERATE-directive", l) + } + + st = zExpectDirGenerate + case zExpectDirGenerate: + if l.value != zString { + return zp.setParseError("expecting $GENERATE value, not this...", l) + } + + return zp.generate(l) + case zExpectOwnerBl: + if l.value != zBlank { + return zp.setParseError("no blank after owner", l) + } + + st = zExpectAny + case zExpectAny: + switch l.value { + case zRrtpe: + if zp.defttl == nil { + return zp.setParseError("missing TTL with no previous value", l) + } + + h.Rrtype = l.torc + + st = zExpectRdata + case zClass: + h.Class = l.torc + + st = zExpectAnyNoClassBl + case zString: + ttl, ok := stringToTTL(l.token) + if !ok { + return zp.setParseError("not a TTL", l) + } + + h.Ttl = ttl + + if zp.defttl == nil || !zp.defttl.isByDirective { + zp.defttl = &ttlState{ttl, false} + } + + st = zExpectAnyNoTTLBl + default: + return zp.setParseError("expecting RR type, TTL or class, not this...", l) + } + case zExpectAnyNoClassBl: + if l.value != zBlank { + return zp.setParseError("no blank before class", l) + } + + st = zExpectAnyNoClass + case zExpectAnyNoTTLBl: + if l.value != zBlank { + return zp.setParseError("no blank before TTL", l) + } + + st = zExpectAnyNoTTL + case zExpectAnyNoTTL: + switch l.value { + case zClass: + h.Class = l.torc + + st = zExpectRrtypeBl + case zRrtpe: + h.Rrtype = l.torc + + st = zExpectRdata + default: + return zp.setParseError("expecting RR type or class, not this...", l) + } + case zExpectAnyNoClass: + switch l.value { + case zString: + ttl, ok := stringToTTL(l.token) + if !ok { + return zp.setParseError("not a TTL", l) + } + + h.Ttl = ttl + + if zp.defttl == nil || !zp.defttl.isByDirective { + zp.defttl = &ttlState{ttl, false} + } + + st = zExpectRrtypeBl + case zRrtpe: + h.Rrtype = l.torc + + st = zExpectRdata + default: + return zp.setParseError("expecting RR type or TTL, not this...", l) + } + case zExpectRrtypeBl: + if l.value != zBlank { + return zp.setParseError("no blank before RR type", l) + } + + st = zExpectRrtype + case zExpectRrtype: + if l.value != zRrtpe { + return zp.setParseError("unknown RR type", l) + } + + h.Rrtype = l.torc + + st = zExpectRdata + case zExpectRdata: + r, e := setRR(*h, zp.c, zp.origin, zp.file) + if e != nil { + // If e.lex is nil than we have encounter a unknown RR type + // in that case we substitute our current lex token + if e.lex.token == "" && e.lex.value == 0 { + e.lex = l // Uh, dirty + } + + zp.parseErr = e + return nil, false + } + + return r, true + } + } + + // If we get here, we and the h.Rrtype is still zero, we haven't parsed anything, this + // is not an error, because an empty zone file is still a zone file. + return nil, false +} + +type zlexer struct { + br io.ByteReader + + readErr error + + line int + column int + + comBuf string + comment string + + l lex + + brace int + quote bool + space bool + commt bool + rrtype bool + owner bool + + nextL bool + + eol bool // end-of-line +} + +func newZLexer(r io.Reader) *zlexer { + br, ok := r.(io.ByteReader) + if !ok { + br = bufio.NewReaderSize(r, 1024) + } + + return &zlexer{ + br: br, + + line: 1, + + owner: true, + } +} + +func (zl *zlexer) Err() error { + if zl.readErr == io.EOF { + return nil + } + + return zl.readErr +} + +// readByte returns the next byte from the input +func (zl *zlexer) readByte() (byte, bool) { + if zl.readErr != nil { + return 0, false + } + + c, err := zl.br.ReadByte() + if err != nil { + zl.readErr = err + return 0, false + } + + // delay the newline handling until the next token is delivered, + // fixes off-by-one errors when reporting a parse error. + if zl.eol { + zl.line++ + zl.column = 0 + zl.eol = false + } + + if c == '\n' { + zl.eol = true + } else { + zl.column++ + } + + return c, true +} + +func (zl *zlexer) Next() (lex, bool) { + l := &zl.l + if zl.nextL { + zl.nextL = false + return *l, true + } + if l.err { + // Parsing errors should be sticky. + return lex{value: zEOF}, false + } + + var ( + str [maxTok]byte // Hold string text + com [maxTok]byte // Hold comment text + + stri int // Offset in str (0 means empty) + comi int // Offset in com (0 means empty) + + escape bool + ) + + if zl.comBuf != "" { + comi = copy(com[:], zl.comBuf) + zl.comBuf = "" + } + + zl.comment = "" + + for x, ok := zl.readByte(); ok; x, ok = zl.readByte() { + l.line, l.column = zl.line, zl.column + + if stri >= len(str) { + l.token = "token length insufficient for parsing" + l.err = true + return *l, true + } + if comi >= len(com) { + l.token = "comment length insufficient for parsing" + l.err = true + return *l, true + } + + switch x { + case ' ', '\t': + if escape || zl.quote { + // Inside quotes or escaped this is legal. + str[stri] = x + stri++ + + escape = false + break + } + + if zl.commt { + com[comi] = x + comi++ + break + } + + var retL lex + if stri == 0 { + // Space directly in the beginning, handled in the grammar + } else if zl.owner { + // If we have a string and its the first, make it an owner + l.value = zOwner + l.token = string(str[:stri]) + + // escape $... start with a \ not a $, so this will work + switch strings.ToUpper(l.token) { + case "$TTL": + l.value = zDirTTL + case "$ORIGIN": + l.value = zDirOrigin + case "$INCLUDE": + l.value = zDirInclude + case "$GENERATE": + l.value = zDirGenerate + } + + retL = *l + } else { + l.value = zString + l.token = string(str[:stri]) + + if !zl.rrtype { + tokenUpper := strings.ToUpper(l.token) + if t, ok := StringToType[tokenUpper]; ok { + l.value = zRrtpe + l.torc = t + + zl.rrtype = true + } else if strings.HasPrefix(tokenUpper, "TYPE") { + t, ok := typeToInt(l.token) + if !ok { + l.token = "unknown RR type" + l.err = true + return *l, true + } + + l.value = zRrtpe + l.torc = t + + zl.rrtype = true + } + + if t, ok := StringToClass[tokenUpper]; ok { + l.value = zClass + l.torc = t + } else if strings.HasPrefix(tokenUpper, "CLASS") { + t, ok := classToInt(l.token) + if !ok { + l.token = "unknown class" + l.err = true + return *l, true + } + + l.value = zClass + l.torc = t + } + } + + retL = *l + } + + zl.owner = false + + if !zl.space { + zl.space = true + + l.value = zBlank + l.token = " " + + if retL == (lex{}) { + return *l, true + } + + zl.nextL = true + } + + if retL != (lex{}) { + return retL, true + } + case ';': + if escape || zl.quote { + // Inside quotes or escaped this is legal. + str[stri] = x + stri++ + + escape = false + break + } + + zl.commt = true + zl.comBuf = "" + + if comi > 1 { + // A newline was previously seen inside a comment that + // was inside braces and we delayed adding it until now. + com[comi] = ' ' // convert newline to space + comi++ + } + + com[comi] = ';' + comi++ + + if stri > 0 { + zl.comBuf = string(com[:comi]) + + l.value = zString + l.token = string(str[:stri]) + return *l, true + } + case '\r': + escape = false + + if zl.quote { + str[stri] = x + stri++ + } + + // discard if outside of quotes + case '\n': + escape = false + + // Escaped newline + if zl.quote { + str[stri] = x + stri++ + break + } + + if zl.commt { + // Reset a comment + zl.commt = false + zl.rrtype = false + + // If not in a brace this ends the comment AND the RR + if zl.brace == 0 { + zl.owner = true + + l.value = zNewline + l.token = "\n" + zl.comment = string(com[:comi]) + return *l, true + } + + zl.comBuf = string(com[:comi]) + break + } + + if zl.brace == 0 { + // If there is previous text, we should output it here + var retL lex + if stri != 0 { + l.value = zString + l.token = string(str[:stri]) + + if !zl.rrtype { + tokenUpper := strings.ToUpper(l.token) + if t, ok := StringToType[tokenUpper]; ok { + zl.rrtype = true + + l.value = zRrtpe + l.torc = t + } + } + + retL = *l + } + + l.value = zNewline + l.token = "\n" + + zl.comment = zl.comBuf + zl.comBuf = "" + zl.rrtype = false + zl.owner = true + + if retL != (lex{}) { + zl.nextL = true + return retL, true + } + + return *l, true + } + case '\\': + // comments do not get escaped chars, everything is copied + if zl.commt { + com[comi] = x + comi++ + break + } + + // something already escaped must be in string + if escape { + str[stri] = x + stri++ + + escape = false + break + } + + // something escaped outside of string gets added to string + str[stri] = x + stri++ + + escape = true + case '"': + if zl.commt { + com[comi] = x + comi++ + break + } + + if escape { + str[stri] = x + stri++ + + escape = false + break + } + + zl.space = false + + // send previous gathered text and the quote + var retL lex + if stri != 0 { + l.value = zString + l.token = string(str[:stri]) + + retL = *l + } + + // send quote itself as separate token + l.value = zQuote + l.token = "\"" + + zl.quote = !zl.quote + + if retL != (lex{}) { + zl.nextL = true + return retL, true + } + + return *l, true + case '(', ')': + if zl.commt { + com[comi] = x + comi++ + break + } + + if escape || zl.quote { + // Inside quotes or escaped this is legal. + str[stri] = x + stri++ + + escape = false + break + } + + switch x { + case ')': + zl.brace-- + + if zl.brace < 0 { + l.token = "extra closing brace" + l.err = true + return *l, true + } + case '(': + zl.brace++ + } + default: + escape = false + + if zl.commt { + com[comi] = x + comi++ + break + } + + str[stri] = x + stri++ + + zl.space = false + } + } + + if zl.readErr != nil && zl.readErr != io.EOF { + // Don't return any tokens after a read error occurs. + return lex{value: zEOF}, false + } + + var retL lex + if stri > 0 { + // Send remainder of str + l.value = zString + l.token = string(str[:stri]) + retL = *l + + if comi <= 0 { + return retL, true + } + } + + if comi > 0 { + // Send remainder of com + l.value = zNewline + l.token = "\n" + zl.comment = string(com[:comi]) + + if retL != (lex{}) { + zl.nextL = true + return retL, true + } + + return *l, true + } + + if zl.brace != 0 { + l.token = "unbalanced brace" + l.err = true + return *l, true + } + + return lex{value: zEOF}, false +} + +func (zl *zlexer) Comment() string { + if zl.l.err { + return "" + } + + return zl.comment +} + +// Extract the class number from CLASSxx +func classToInt(token string) (uint16, bool) { + offset := 5 + if len(token) < offset+1 { + return 0, false + } + class, err := strconv.ParseUint(token[offset:], 10, 16) + if err != nil { + return 0, false + } + return uint16(class), true +} + +// Extract the rr number from TYPExxx +func typeToInt(token string) (uint16, bool) { + offset := 4 + if len(token) < offset+1 { + return 0, false + } + typ, err := strconv.ParseUint(token[offset:], 10, 16) + if err != nil { + return 0, false + } + return uint16(typ), true +} + +// stringToTTL parses things like 2w, 2m, etc, and returns the time in seconds. +func stringToTTL(token string) (uint32, bool) { + var s, i uint32 + for _, c := range token { + switch c { + case 's', 'S': + s += i + i = 0 + case 'm', 'M': + s += i * 60 + i = 0 + case 'h', 'H': + s += i * 60 * 60 + i = 0 + case 'd', 'D': + s += i * 60 * 60 * 24 + i = 0 + case 'w', 'W': + s += i * 60 * 60 * 24 * 7 + i = 0 + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + i *= 10 + i += uint32(c) - '0' + default: + return 0, false + } + } + return s + i, true +} + +// Parse LOC records' [.][mM] into a +// mantissa exponent format. Token should contain the entire +// string (i.e. no spaces allowed) +func stringToCm(token string) (e, m uint8, ok bool) { + if token[len(token)-1] == 'M' || token[len(token)-1] == 'm' { + token = token[0 : len(token)-1] + } + s := strings.SplitN(token, ".", 2) + var meters, cmeters, val int + var err error + switch len(s) { + case 2: + if cmeters, err = strconv.Atoi(s[1]); err != nil { + return + } + fallthrough + case 1: + if meters, err = strconv.Atoi(s[0]); err != nil { + return + } + case 0: + // huh? + return 0, 0, false + } + ok = true + if meters > 0 { + e = 2 + val = meters + } else { + e = 0 + val = cmeters + } + for val > 10 { + e++ + val /= 10 + } + if e > 9 { + ok = false + } + m = uint8(val) + return +} + +func toAbsoluteName(name, origin string) (absolute string, ok bool) { + // check for an explicit origin reference + if name == "@" { + // require a nonempty origin + if origin == "" { + return "", false + } + return origin, true + } + + // require a valid domain name + _, ok = IsDomainName(name) + if !ok || name == "" { + return "", false + } + + // check if name is already absolute + if IsFqdn(name) { + return name, true + } + + // require a nonempty origin + if origin == "" { + return "", false + } + return appendOrigin(name, origin), true +} + +func appendOrigin(name, origin string) string { + if origin == "." { + return name + origin + } + return name + "." + origin +} + +// LOC record helper function +func locCheckNorth(token string, latitude uint32) (uint32, bool) { + switch token { + case "n", "N": + return LOC_EQUATOR + latitude, true + case "s", "S": + return LOC_EQUATOR - latitude, true + } + return latitude, false +} + +// LOC record helper function +func locCheckEast(token string, longitude uint32) (uint32, bool) { + switch token { + case "e", "E": + return LOC_EQUATOR + longitude, true + case "w", "W": + return LOC_EQUATOR - longitude, true + } + return longitude, false +} + +// "Eat" the rest of the "line" +func slurpRemainder(c *zlexer, f string) *ParseError { + l, _ := c.Next() + switch l.value { + case zBlank: + l, _ = c.Next() + if l.value != zNewline && l.value != zEOF { + return &ParseError{f, "garbage after rdata", l} + } + case zNewline: + case zEOF: + default: + return &ParseError{f, "garbage after rdata", l} + } + return nil +} + +// Parse a 64 bit-like ipv6 address: "0014:4fff:ff20:ee64" +// Used for NID and L64 record. +func stringToNodeID(l lex) (uint64, *ParseError) { + if len(l.token) < 19 { + return 0, &ParseError{l.token, "bad NID/L64 NodeID/Locator64", l} + } + // There must be three colons at fixes postitions, if not its a parse error + if l.token[4] != ':' && l.token[9] != ':' && l.token[14] != ':' { + return 0, &ParseError{l.token, "bad NID/L64 NodeID/Locator64", l} + } + s := l.token[0:4] + l.token[5:9] + l.token[10:14] + l.token[15:19] + u, err := strconv.ParseUint(s, 16, 64) + if err != nil { + return 0, &ParseError{l.token, "bad NID/L64 NodeID/Locator64", l} + } + return u, nil +} diff --git a/vendor/github.com/miekg/dns/scan_rr.go b/vendor/github.com/miekg/dns/scan_rr.go new file mode 100644 index 00000000..6096f9b0 --- /dev/null +++ b/vendor/github.com/miekg/dns/scan_rr.go @@ -0,0 +1,1945 @@ +package dns + +import ( + "encoding/base64" + "net" + "strconv" + "strings" +) + +// Parse the rdata of each rrtype. +// All data from the channel c is either zString or zBlank. +// After the rdata there may come a zBlank and then a zNewline +// or immediately a zNewline. If this is not the case we flag +// an *ParseError: garbage after rdata. +func setRR(h RR_Header, c *zlexer, o, f string) (RR, *ParseError) { + var rr RR + if newFn, ok := TypeToRR[h.Rrtype]; ok && canParseAsRR(h.Rrtype) { + rr = newFn() + *rr.Header() = h + } else { + rr = &RFC3597{Hdr: h} + } + + err := rr.parse(c, o, f) + if err != nil { + return nil, err + } + + return rr, nil +} + +// canParseAsRR returns true if the record type can be parsed as a +// concrete RR. It blacklists certain record types that must be parsed +// according to RFC 3597 because they lack a presentation format. +func canParseAsRR(rrtype uint16) bool { + switch rrtype { + case TypeANY, TypeNULL, TypeOPT, TypeTSIG: + return false + default: + return true + } +} + +// A remainder of the rdata with embedded spaces, return the parsed string (sans the spaces) +// or an error +func endingToString(c *zlexer, errstr, f string) (string, *ParseError) { + var s string + l, _ := c.Next() // zString + for l.value != zNewline && l.value != zEOF { + if l.err { + return s, &ParseError{f, errstr, l} + } + switch l.value { + case zString: + s += l.token + case zBlank: // Ok + default: + return "", &ParseError{f, errstr, l} + } + l, _ = c.Next() + } + + return s, nil +} + +// A remainder of the rdata with embedded spaces, split on unquoted whitespace +// and return the parsed string slice or an error +func endingToTxtSlice(c *zlexer, errstr, f string) ([]string, *ParseError) { + // Get the remaining data until we see a zNewline + l, _ := c.Next() + if l.err { + return nil, &ParseError{f, errstr, l} + } + + // Build the slice + s := make([]string, 0) + quote := false + empty := false + for l.value != zNewline && l.value != zEOF { + if l.err { + return nil, &ParseError{f, errstr, l} + } + switch l.value { + case zString: + empty = false + if len(l.token) > 255 { + // split up tokens that are larger than 255 into 255-chunks + sx := []string{} + p, i := 0, 255 + for { + if i <= len(l.token) { + sx = append(sx, l.token[p:i]) + } else { + sx = append(sx, l.token[p:]) + break + + } + p, i = p+255, i+255 + } + s = append(s, sx...) + break + } + + s = append(s, l.token) + case zBlank: + if quote { + // zBlank can only be seen in between txt parts. + return nil, &ParseError{f, errstr, l} + } + case zQuote: + if empty && quote { + s = append(s, "") + } + quote = !quote + empty = true + default: + return nil, &ParseError{f, errstr, l} + } + l, _ = c.Next() + } + + if quote { + return nil, &ParseError{f, errstr, l} + } + + return s, nil +} + +func (rr *A) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + rr.A = net.ParseIP(l.token) + // IPv4 addresses cannot include ":". + // We do this rather than use net.IP's To4() because + // To4() treats IPv4-mapped IPv6 addresses as being + // IPv4. + isIPv4 := !strings.Contains(l.token, ":") + if rr.A == nil || !isIPv4 || l.err { + return &ParseError{f, "bad A A", l} + } + return slurpRemainder(c, f) +} + +func (rr *AAAA) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + rr.AAAA = net.ParseIP(l.token) + // IPv6 addresses must include ":", and IPv4 + // addresses cannot include ":". + isIPv6 := strings.Contains(l.token, ":") + if rr.AAAA == nil || !isIPv6 || l.err { + return &ParseError{f, "bad AAAA AAAA", l} + } + return slurpRemainder(c, f) +} + +func (rr *NS) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Ns = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad NS Ns", l} + } + rr.Ns = name + return slurpRemainder(c, f) +} + +func (rr *PTR) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Ptr = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad PTR Ptr", l} + } + rr.Ptr = name + return slurpRemainder(c, f) +} + +func (rr *NSAPPTR) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Ptr = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad NSAP-PTR Ptr", l} + } + rr.Ptr = name + return slurpRemainder(c, f) +} + +func (rr *RP) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Mbox = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + mbox, mboxOk := toAbsoluteName(l.token, o) + if l.err || !mboxOk { + return &ParseError{f, "bad RP Mbox", l} + } + rr.Mbox = mbox + + c.Next() // zBlank + l, _ = c.Next() + rr.Txt = l.token + + txt, txtOk := toAbsoluteName(l.token, o) + if l.err || !txtOk { + return &ParseError{f, "bad RP Txt", l} + } + rr.Txt = txt + + return slurpRemainder(c, f) +} + +func (rr *MR) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Mr = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad MR Mr", l} + } + rr.Mr = name + return slurpRemainder(c, f) +} + +func (rr *MB) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Mb = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad MB Mb", l} + } + rr.Mb = name + return slurpRemainder(c, f) +} + +func (rr *MG) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Mg = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad MG Mg", l} + } + rr.Mg = name + return slurpRemainder(c, f) +} + +func (rr *HINFO) parse(c *zlexer, o, f string) *ParseError { + chunks, e := endingToTxtSlice(c, "bad HINFO Fields", f) + if e != nil { + return e + } + + if ln := len(chunks); ln == 0 { + return nil + } else if ln == 1 { + // Can we split it? + if out := strings.Fields(chunks[0]); len(out) > 1 { + chunks = out + } else { + chunks = append(chunks, "") + } + } + + rr.Cpu = chunks[0] + rr.Os = strings.Join(chunks[1:], " ") + + return nil +} + +func (rr *MINFO) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Rmail = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + rmail, rmailOk := toAbsoluteName(l.token, o) + if l.err || !rmailOk { + return &ParseError{f, "bad MINFO Rmail", l} + } + rr.Rmail = rmail + + c.Next() // zBlank + l, _ = c.Next() + rr.Email = l.token + + email, emailOk := toAbsoluteName(l.token, o) + if l.err || !emailOk { + return &ParseError{f, "bad MINFO Email", l} + } + rr.Email = email + + return slurpRemainder(c, f) +} + +func (rr *MF) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Mf = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad MF Mf", l} + } + rr.Mf = name + return slurpRemainder(c, f) +} + +func (rr *MD) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Md = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad MD Md", l} + } + rr.Md = name + return slurpRemainder(c, f) +} + +func (rr *MX) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad MX Pref", l} + } + rr.Preference = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Mx = l.token + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad MX Mx", l} + } + rr.Mx = name + + return slurpRemainder(c, f) +} + +func (rr *RT) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil { + return &ParseError{f, "bad RT Preference", l} + } + rr.Preference = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Host = l.token + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad RT Host", l} + } + rr.Host = name + + return slurpRemainder(c, f) +} + +func (rr *AFSDB) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad AFSDB Subtype", l} + } + rr.Subtype = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Hostname = l.token + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad AFSDB Hostname", l} + } + rr.Hostname = name + return slurpRemainder(c, f) +} + +func (rr *X25) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + if l.err { + return &ParseError{f, "bad X25 PSDNAddress", l} + } + rr.PSDNAddress = l.token + return slurpRemainder(c, f) +} + +func (rr *KX) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad KX Pref", l} + } + rr.Preference = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Exchanger = l.token + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad KX Exchanger", l} + } + rr.Exchanger = name + return slurpRemainder(c, f) +} + +func (rr *CNAME) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Target = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad CNAME Target", l} + } + rr.Target = name + return slurpRemainder(c, f) +} + +func (rr *DNAME) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Target = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad DNAME Target", l} + } + rr.Target = name + return slurpRemainder(c, f) +} + +func (rr *SOA) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.Ns = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + ns, nsOk := toAbsoluteName(l.token, o) + if l.err || !nsOk { + return &ParseError{f, "bad SOA Ns", l} + } + rr.Ns = ns + + c.Next() // zBlank + l, _ = c.Next() + rr.Mbox = l.token + + mbox, mboxOk := toAbsoluteName(l.token, o) + if l.err || !mboxOk { + return &ParseError{f, "bad SOA Mbox", l} + } + rr.Mbox = mbox + + c.Next() // zBlank + + var ( + v uint32 + ok bool + ) + for i := 0; i < 5; i++ { + l, _ = c.Next() + if l.err { + return &ParseError{f, "bad SOA zone parameter", l} + } + if j, e := strconv.ParseUint(l.token, 10, 32); e != nil { + if i == 0 { + // Serial must be a number + return &ParseError{f, "bad SOA zone parameter", l} + } + // We allow other fields to be unitful duration strings + if v, ok = stringToTTL(l.token); !ok { + return &ParseError{f, "bad SOA zone parameter", l} + + } + } else { + v = uint32(j) + } + switch i { + case 0: + rr.Serial = v + c.Next() // zBlank + case 1: + rr.Refresh = v + c.Next() // zBlank + case 2: + rr.Retry = v + c.Next() // zBlank + case 3: + rr.Expire = v + c.Next() // zBlank + case 4: + rr.Minttl = v + } + } + return slurpRemainder(c, f) +} + +func (rr *SRV) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad SRV Priority", l} + } + rr.Priority = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad SRV Weight", l} + } + rr.Weight = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad SRV Port", l} + } + rr.Port = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Target = l.token + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad SRV Target", l} + } + rr.Target = name + return slurpRemainder(c, f) +} + +func (rr *NAPTR) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad NAPTR Order", l} + } + rr.Order = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad NAPTR Preference", l} + } + rr.Preference = uint16(i) + + // Flags + c.Next() // zBlank + l, _ = c.Next() // _QUOTE + if l.value != zQuote { + return &ParseError{f, "bad NAPTR Flags", l} + } + l, _ = c.Next() // Either String or Quote + if l.value == zString { + rr.Flags = l.token + l, _ = c.Next() // _QUOTE + if l.value != zQuote { + return &ParseError{f, "bad NAPTR Flags", l} + } + } else if l.value == zQuote { + rr.Flags = "" + } else { + return &ParseError{f, "bad NAPTR Flags", l} + } + + // Service + c.Next() // zBlank + l, _ = c.Next() // _QUOTE + if l.value != zQuote { + return &ParseError{f, "bad NAPTR Service", l} + } + l, _ = c.Next() // Either String or Quote + if l.value == zString { + rr.Service = l.token + l, _ = c.Next() // _QUOTE + if l.value != zQuote { + return &ParseError{f, "bad NAPTR Service", l} + } + } else if l.value == zQuote { + rr.Service = "" + } else { + return &ParseError{f, "bad NAPTR Service", l} + } + + // Regexp + c.Next() // zBlank + l, _ = c.Next() // _QUOTE + if l.value != zQuote { + return &ParseError{f, "bad NAPTR Regexp", l} + } + l, _ = c.Next() // Either String or Quote + if l.value == zString { + rr.Regexp = l.token + l, _ = c.Next() // _QUOTE + if l.value != zQuote { + return &ParseError{f, "bad NAPTR Regexp", l} + } + } else if l.value == zQuote { + rr.Regexp = "" + } else { + return &ParseError{f, "bad NAPTR Regexp", l} + } + + // After quote no space?? + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Replacement = l.token + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad NAPTR Replacement", l} + } + rr.Replacement = name + return slurpRemainder(c, f) +} + +func (rr *TALINK) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.PreviousName = l.token + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + previousName, previousNameOk := toAbsoluteName(l.token, o) + if l.err || !previousNameOk { + return &ParseError{f, "bad TALINK PreviousName", l} + } + rr.PreviousName = previousName + + c.Next() // zBlank + l, _ = c.Next() + rr.NextName = l.token + + nextName, nextNameOk := toAbsoluteName(l.token, o) + if l.err || !nextNameOk { + return &ParseError{f, "bad TALINK NextName", l} + } + rr.NextName = nextName + + return slurpRemainder(c, f) +} + +func (rr *LOC) parse(c *zlexer, o, f string) *ParseError { + // Non zero defaults for LOC record, see RFC 1876, Section 3. + rr.HorizPre = 165 // 10000 + rr.VertPre = 162 // 10 + rr.Size = 18 // 1 + ok := false + + // North + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + i, e := strconv.ParseUint(l.token, 10, 32) + if e != nil || l.err { + return &ParseError{f, "bad LOC Latitude", l} + } + rr.Latitude = 1000 * 60 * 60 * uint32(i) + + c.Next() // zBlank + // Either number, 'N' or 'S' + l, _ = c.Next() + if rr.Latitude, ok = locCheckNorth(l.token, rr.Latitude); ok { + goto East + } + i, e = strconv.ParseUint(l.token, 10, 32) + if e != nil || l.err { + return &ParseError{f, "bad LOC Latitude minutes", l} + } + rr.Latitude += 1000 * 60 * uint32(i) + + c.Next() // zBlank + l, _ = c.Next() + if i, e := strconv.ParseFloat(l.token, 32); e != nil || l.err { + return &ParseError{f, "bad LOC Latitude seconds", l} + } else { + rr.Latitude += uint32(1000 * i) + } + c.Next() // zBlank + // Either number, 'N' or 'S' + l, _ = c.Next() + if rr.Latitude, ok = locCheckNorth(l.token, rr.Latitude); ok { + goto East + } + // If still alive, flag an error + return &ParseError{f, "bad LOC Latitude North/South", l} + +East: + // East + c.Next() // zBlank + l, _ = c.Next() + if i, e := strconv.ParseUint(l.token, 10, 32); e != nil || l.err { + return &ParseError{f, "bad LOC Longitude", l} + } else { + rr.Longitude = 1000 * 60 * 60 * uint32(i) + } + c.Next() // zBlank + // Either number, 'E' or 'W' + l, _ = c.Next() + if rr.Longitude, ok = locCheckEast(l.token, rr.Longitude); ok { + goto Altitude + } + if i, e := strconv.ParseUint(l.token, 10, 32); e != nil || l.err { + return &ParseError{f, "bad LOC Longitude minutes", l} + } else { + rr.Longitude += 1000 * 60 * uint32(i) + } + c.Next() // zBlank + l, _ = c.Next() + if i, e := strconv.ParseFloat(l.token, 32); e != nil || l.err { + return &ParseError{f, "bad LOC Longitude seconds", l} + } else { + rr.Longitude += uint32(1000 * i) + } + c.Next() // zBlank + // Either number, 'E' or 'W' + l, _ = c.Next() + if rr.Longitude, ok = locCheckEast(l.token, rr.Longitude); ok { + goto Altitude + } + // If still alive, flag an error + return &ParseError{f, "bad LOC Longitude East/West", l} + +Altitude: + c.Next() // zBlank + l, _ = c.Next() + if len(l.token) == 0 || l.err { + return &ParseError{f, "bad LOC Altitude", l} + } + if l.token[len(l.token)-1] == 'M' || l.token[len(l.token)-1] == 'm' { + l.token = l.token[0 : len(l.token)-1] + } + if i, e := strconv.ParseFloat(l.token, 32); e != nil { + return &ParseError{f, "bad LOC Altitude", l} + } else { + rr.Altitude = uint32(i*100.0 + 10000000.0 + 0.5) + } + + // And now optionally the other values + l, _ = c.Next() + count := 0 + for l.value != zNewline && l.value != zEOF { + switch l.value { + case zString: + switch count { + case 0: // Size + e, m, ok := stringToCm(l.token) + if !ok { + return &ParseError{f, "bad LOC Size", l} + } + rr.Size = e&0x0f | m<<4&0xf0 + case 1: // HorizPre + e, m, ok := stringToCm(l.token) + if !ok { + return &ParseError{f, "bad LOC HorizPre", l} + } + rr.HorizPre = e&0x0f | m<<4&0xf0 + case 2: // VertPre + e, m, ok := stringToCm(l.token) + if !ok { + return &ParseError{f, "bad LOC VertPre", l} + } + rr.VertPre = e&0x0f | m<<4&0xf0 + } + count++ + case zBlank: + // Ok + default: + return &ParseError{f, "bad LOC Size, HorizPre or VertPre", l} + } + l, _ = c.Next() + } + return nil +} + +func (rr *HIP) parse(c *zlexer, o, f string) *ParseError { + // HitLength is not represented + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad HIP PublicKeyAlgorithm", l} + } + rr.PublicKeyAlgorithm = uint8(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + if len(l.token) == 0 || l.err { + return &ParseError{f, "bad HIP Hit", l} + } + rr.Hit = l.token // This can not contain spaces, see RFC 5205 Section 6. + rr.HitLength = uint8(len(rr.Hit)) / 2 + + c.Next() // zBlank + l, _ = c.Next() // zString + if len(l.token) == 0 || l.err { + return &ParseError{f, "bad HIP PublicKey", l} + } + rr.PublicKey = l.token // This cannot contain spaces + rr.PublicKeyLength = uint16(base64.StdEncoding.DecodedLen(len(rr.PublicKey))) + + // RendezvousServers (if any) + l, _ = c.Next() + var xs []string + for l.value != zNewline && l.value != zEOF { + switch l.value { + case zString: + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad HIP RendezvousServers", l} + } + xs = append(xs, name) + case zBlank: + // Ok + default: + return &ParseError{f, "bad HIP RendezvousServers", l} + } + l, _ = c.Next() + } + + rr.RendezvousServers = xs + return nil +} + +func (rr *CERT) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + if v, ok := StringToCertType[l.token]; ok { + rr.Type = v + } else if i, e := strconv.ParseUint(l.token, 10, 16); e != nil { + return &ParseError{f, "bad CERT Type", l} + } else { + rr.Type = uint16(i) + } + c.Next() // zBlank + l, _ = c.Next() // zString + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad CERT KeyTag", l} + } + rr.KeyTag = uint16(i) + c.Next() // zBlank + l, _ = c.Next() // zString + if v, ok := StringToAlgorithm[l.token]; ok { + rr.Algorithm = v + } else if i, e := strconv.ParseUint(l.token, 10, 8); e != nil { + return &ParseError{f, "bad CERT Algorithm", l} + } else { + rr.Algorithm = uint8(i) + } + s, e1 := endingToString(c, "bad CERT Certificate", f) + if e1 != nil { + return e1 + } + rr.Certificate = s + return nil +} + +func (rr *OPENPGPKEY) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToString(c, "bad OPENPGPKEY PublicKey", f) + if e != nil { + return e + } + rr.PublicKey = s + return nil +} + +func (rr *CSYNC) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + j, e := strconv.ParseUint(l.token, 10, 32) + if e != nil { + // Serial must be a number + return &ParseError{f, "bad CSYNC serial", l} + } + rr.Serial = uint32(j) + + c.Next() // zBlank + + l, _ = c.Next() + j, e = strconv.ParseUint(l.token, 10, 16) + if e != nil { + // Serial must be a number + return &ParseError{f, "bad CSYNC flags", l} + } + rr.Flags = uint16(j) + + rr.TypeBitMap = make([]uint16, 0) + var ( + k uint16 + ok bool + ) + l, _ = c.Next() + for l.value != zNewline && l.value != zEOF { + switch l.value { + case zBlank: + // Ok + case zString: + tokenUpper := strings.ToUpper(l.token) + if k, ok = StringToType[tokenUpper]; !ok { + if k, ok = typeToInt(l.token); !ok { + return &ParseError{f, "bad CSYNC TypeBitMap", l} + } + } + rr.TypeBitMap = append(rr.TypeBitMap, k) + default: + return &ParseError{f, "bad CSYNC TypeBitMap", l} + } + l, _ = c.Next() + } + return nil +} + +func (rr *SIG) parse(c *zlexer, o, f string) *ParseError { + return rr.RRSIG.parse(c, o, f) +} + +func (rr *RRSIG) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + tokenUpper := strings.ToUpper(l.token) + if t, ok := StringToType[tokenUpper]; !ok { + if strings.HasPrefix(tokenUpper, "TYPE") { + t, ok = typeToInt(l.token) + if !ok { + return &ParseError{f, "bad RRSIG Typecovered", l} + } + rr.TypeCovered = t + } else { + return &ParseError{f, "bad RRSIG Typecovered", l} + } + } else { + rr.TypeCovered = t + } + + c.Next() // zBlank + l, _ = c.Next() + i, err := strconv.ParseUint(l.token, 10, 8) + if err != nil || l.err { + return &ParseError{f, "bad RRSIG Algorithm", l} + } + rr.Algorithm = uint8(i) + + c.Next() // zBlank + l, _ = c.Next() + i, err = strconv.ParseUint(l.token, 10, 8) + if err != nil || l.err { + return &ParseError{f, "bad RRSIG Labels", l} + } + rr.Labels = uint8(i) + + c.Next() // zBlank + l, _ = c.Next() + i, err = strconv.ParseUint(l.token, 10, 32) + if err != nil || l.err { + return &ParseError{f, "bad RRSIG OrigTtl", l} + } + rr.OrigTtl = uint32(i) + + c.Next() // zBlank + l, _ = c.Next() + if i, err := StringToTime(l.token); err != nil { + // Try to see if all numeric and use it as epoch + if i, err := strconv.ParseInt(l.token, 10, 64); err == nil { + // TODO(miek): error out on > MAX_UINT32, same below + rr.Expiration = uint32(i) + } else { + return &ParseError{f, "bad RRSIG Expiration", l} + } + } else { + rr.Expiration = i + } + + c.Next() // zBlank + l, _ = c.Next() + if i, err := StringToTime(l.token); err != nil { + if i, err := strconv.ParseInt(l.token, 10, 64); err == nil { + rr.Inception = uint32(i) + } else { + return &ParseError{f, "bad RRSIG Inception", l} + } + } else { + rr.Inception = i + } + + c.Next() // zBlank + l, _ = c.Next() + i, err = strconv.ParseUint(l.token, 10, 16) + if err != nil || l.err { + return &ParseError{f, "bad RRSIG KeyTag", l} + } + rr.KeyTag = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() + rr.SignerName = l.token + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad RRSIG SignerName", l} + } + rr.SignerName = name + + s, e := endingToString(c, "bad RRSIG Signature", f) + if e != nil { + return e + } + rr.Signature = s + + return nil +} + +func (rr *NSEC) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + rr.NextDomain = l.token + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad NSEC NextDomain", l} + } + rr.NextDomain = name + + rr.TypeBitMap = make([]uint16, 0) + var ( + k uint16 + ok bool + ) + l, _ = c.Next() + for l.value != zNewline && l.value != zEOF { + switch l.value { + case zBlank: + // Ok + case zString: + tokenUpper := strings.ToUpper(l.token) + if k, ok = StringToType[tokenUpper]; !ok { + if k, ok = typeToInt(l.token); !ok { + return &ParseError{f, "bad NSEC TypeBitMap", l} + } + } + rr.TypeBitMap = append(rr.TypeBitMap, k) + default: + return &ParseError{f, "bad NSEC TypeBitMap", l} + } + l, _ = c.Next() + } + return nil +} + +func (rr *NSEC3) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad NSEC3 Hash", l} + } + rr.Hash = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad NSEC3 Flags", l} + } + rr.Flags = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad NSEC3 Iterations", l} + } + rr.Iterations = uint16(i) + c.Next() + l, _ = c.Next() + if len(l.token) == 0 || l.err { + return &ParseError{f, "bad NSEC3 Salt", l} + } + if l.token != "-" { + rr.SaltLength = uint8(len(l.token)) / 2 + rr.Salt = l.token + } + + c.Next() + l, _ = c.Next() + if len(l.token) == 0 || l.err { + return &ParseError{f, "bad NSEC3 NextDomain", l} + } + rr.HashLength = 20 // Fix for NSEC3 (sha1 160 bits) + rr.NextDomain = l.token + + rr.TypeBitMap = make([]uint16, 0) + var ( + k uint16 + ok bool + ) + l, _ = c.Next() + for l.value != zNewline && l.value != zEOF { + switch l.value { + case zBlank: + // Ok + case zString: + tokenUpper := strings.ToUpper(l.token) + if k, ok = StringToType[tokenUpper]; !ok { + if k, ok = typeToInt(l.token); !ok { + return &ParseError{f, "bad NSEC3 TypeBitMap", l} + } + } + rr.TypeBitMap = append(rr.TypeBitMap, k) + default: + return &ParseError{f, "bad NSEC3 TypeBitMap", l} + } + l, _ = c.Next() + } + return nil +} + +func (rr *NSEC3PARAM) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad NSEC3PARAM Hash", l} + } + rr.Hash = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad NSEC3PARAM Flags", l} + } + rr.Flags = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad NSEC3PARAM Iterations", l} + } + rr.Iterations = uint16(i) + c.Next() + l, _ = c.Next() + if l.token != "-" { + rr.SaltLength = uint8(len(l.token)) + rr.Salt = l.token + } + return slurpRemainder(c, f) +} + +func (rr *EUI48) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + if len(l.token) != 17 || l.err { + return &ParseError{f, "bad EUI48 Address", l} + } + addr := make([]byte, 12) + dash := 0 + for i := 0; i < 10; i += 2 { + addr[i] = l.token[i+dash] + addr[i+1] = l.token[i+1+dash] + dash++ + if l.token[i+1+dash] != '-' { + return &ParseError{f, "bad EUI48 Address", l} + } + } + addr[10] = l.token[15] + addr[11] = l.token[16] + + i, e := strconv.ParseUint(string(addr), 16, 48) + if e != nil { + return &ParseError{f, "bad EUI48 Address", l} + } + rr.Address = i + return slurpRemainder(c, f) +} + +func (rr *EUI64) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + if len(l.token) != 23 || l.err { + return &ParseError{f, "bad EUI64 Address", l} + } + addr := make([]byte, 16) + dash := 0 + for i := 0; i < 14; i += 2 { + addr[i] = l.token[i+dash] + addr[i+1] = l.token[i+1+dash] + dash++ + if l.token[i+1+dash] != '-' { + return &ParseError{f, "bad EUI64 Address", l} + } + } + addr[14] = l.token[21] + addr[15] = l.token[22] + + i, e := strconv.ParseUint(string(addr), 16, 64) + if e != nil { + return &ParseError{f, "bad EUI68 Address", l} + } + rr.Address = i + return slurpRemainder(c, f) +} + +func (rr *SSHFP) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad SSHFP Algorithm", l} + } + rr.Algorithm = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad SSHFP Type", l} + } + rr.Type = uint8(i) + c.Next() // zBlank + s, e1 := endingToString(c, "bad SSHFP Fingerprint", f) + if e1 != nil { + return e1 + } + rr.FingerPrint = s + return nil +} + +func (rr *DNSKEY) parseDNSKEY(c *zlexer, o, f, typ string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad " + typ + " Flags", l} + } + rr.Flags = uint16(i) + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad " + typ + " Protocol", l} + } + rr.Protocol = uint8(i) + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad " + typ + " Algorithm", l} + } + rr.Algorithm = uint8(i) + s, e1 := endingToString(c, "bad "+typ+" PublicKey", f) + if e1 != nil { + return e1 + } + rr.PublicKey = s + return nil +} + +func (rr *DNSKEY) parse(c *zlexer, o, f string) *ParseError { + return rr.parseDNSKEY(c, o, f, "DNSKEY") +} + +func (rr *KEY) parse(c *zlexer, o, f string) *ParseError { + return rr.parseDNSKEY(c, o, f, "KEY") +} + +func (rr *CDNSKEY) parse(c *zlexer, o, f string) *ParseError { + return rr.parseDNSKEY(c, o, f, "CDNSKEY") +} + +func (rr *RKEY) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad RKEY Flags", l} + } + rr.Flags = uint16(i) + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad RKEY Protocol", l} + } + rr.Protocol = uint8(i) + c.Next() // zBlank + l, _ = c.Next() // zString + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad RKEY Algorithm", l} + } + rr.Algorithm = uint8(i) + s, e1 := endingToString(c, "bad RKEY PublicKey", f) + if e1 != nil { + return e1 + } + rr.PublicKey = s + return nil +} + +func (rr *EID) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToString(c, "bad EID Endpoint", f) + if e != nil { + return e + } + rr.Endpoint = s + return nil +} + +func (rr *NIMLOC) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToString(c, "bad NIMLOC Locator", f) + if e != nil { + return e + } + rr.Locator = s + return nil +} + +func (rr *GPOS) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + _, e := strconv.ParseFloat(l.token, 64) + if e != nil || l.err { + return &ParseError{f, "bad GPOS Longitude", l} + } + rr.Longitude = l.token + c.Next() // zBlank + l, _ = c.Next() + _, e = strconv.ParseFloat(l.token, 64) + if e != nil || l.err { + return &ParseError{f, "bad GPOS Latitude", l} + } + rr.Latitude = l.token + c.Next() // zBlank + l, _ = c.Next() + _, e = strconv.ParseFloat(l.token, 64) + if e != nil || l.err { + return &ParseError{f, "bad GPOS Altitude", l} + } + rr.Altitude = l.token + return slurpRemainder(c, f) +} + +func (rr *DS) parseDS(c *zlexer, o, f, typ string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad " + typ + " KeyTag", l} + } + rr.KeyTag = uint16(i) + c.Next() // zBlank + l, _ = c.Next() + if i, e = strconv.ParseUint(l.token, 10, 8); e != nil { + tokenUpper := strings.ToUpper(l.token) + i, ok := StringToAlgorithm[tokenUpper] + if !ok || l.err { + return &ParseError{f, "bad " + typ + " Algorithm", l} + } + rr.Algorithm = i + } else { + rr.Algorithm = uint8(i) + } + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad " + typ + " DigestType", l} + } + rr.DigestType = uint8(i) + s, e1 := endingToString(c, "bad "+typ+" Digest", f) + if e1 != nil { + return e1 + } + rr.Digest = s + return nil +} + +func (rr *DS) parse(c *zlexer, o, f string) *ParseError { + return rr.parseDS(c, o, f, "DS") +} + +func (rr *DLV) parse(c *zlexer, o, f string) *ParseError { + return rr.parseDS(c, o, f, "DLV") +} + +func (rr *CDS) parse(c *zlexer, o, f string) *ParseError { + return rr.parseDS(c, o, f, "CDS") +} + +func (rr *TA) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad TA KeyTag", l} + } + rr.KeyTag = uint16(i) + c.Next() // zBlank + l, _ = c.Next() + if i, e := strconv.ParseUint(l.token, 10, 8); e != nil { + tokenUpper := strings.ToUpper(l.token) + i, ok := StringToAlgorithm[tokenUpper] + if !ok || l.err { + return &ParseError{f, "bad TA Algorithm", l} + } + rr.Algorithm = i + } else { + rr.Algorithm = uint8(i) + } + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad TA DigestType", l} + } + rr.DigestType = uint8(i) + s, err := endingToString(c, "bad TA Digest", f) + if err != nil { + return err + } + rr.Digest = s + return nil +} + +func (rr *TLSA) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad TLSA Usage", l} + } + rr.Usage = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad TLSA Selector", l} + } + rr.Selector = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad TLSA MatchingType", l} + } + rr.MatchingType = uint8(i) + // So this needs be e2 (i.e. different than e), because...??t + s, e2 := endingToString(c, "bad TLSA Certificate", f) + if e2 != nil { + return e2 + } + rr.Certificate = s + return nil +} + +func (rr *SMIMEA) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad SMIMEA Usage", l} + } + rr.Usage = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad SMIMEA Selector", l} + } + rr.Selector = uint8(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 8) + if e != nil || l.err { + return &ParseError{f, "bad SMIMEA MatchingType", l} + } + rr.MatchingType = uint8(i) + // So this needs be e2 (i.e. different than e), because...??t + s, e2 := endingToString(c, "bad SMIMEA Certificate", f) + if e2 != nil { + return e2 + } + rr.Certificate = s + return nil +} + +func (rr *RFC3597) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if l.token != "\\#" { + return &ParseError{f, "bad RFC3597 Rdata", l} + } + + c.Next() // zBlank + l, _ = c.Next() + rdlength, e := strconv.Atoi(l.token) + if e != nil || l.err { + return &ParseError{f, "bad RFC3597 Rdata ", l} + } + + s, e1 := endingToString(c, "bad RFC3597 Rdata", f) + if e1 != nil { + return e1 + } + if rdlength*2 != len(s) { + return &ParseError{f, "bad RFC3597 Rdata", l} + } + rr.Rdata = s + return nil +} + +func (rr *SPF) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToTxtSlice(c, "bad SPF Txt", f) + if e != nil { + return e + } + rr.Txt = s + return nil +} + +func (rr *AVC) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToTxtSlice(c, "bad AVC Txt", f) + if e != nil { + return e + } + rr.Txt = s + return nil +} + +func (rr *TXT) parse(c *zlexer, o, f string) *ParseError { + // no zBlank reading here, because all this rdata is TXT + s, e := endingToTxtSlice(c, "bad TXT Txt", f) + if e != nil { + return e + } + rr.Txt = s + return nil +} + +// identical to setTXT +func (rr *NINFO) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToTxtSlice(c, "bad NINFO ZSData", f) + if e != nil { + return e + } + rr.ZSData = s + return nil +} + +func (rr *URI) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad URI Priority", l} + } + rr.Priority = uint16(i) + c.Next() // zBlank + l, _ = c.Next() + i, e = strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad URI Weight", l} + } + rr.Weight = uint16(i) + + c.Next() // zBlank + s, err := endingToTxtSlice(c, "bad URI Target", f) + if err != nil { + return err + } + if len(s) != 1 { + return &ParseError{f, "bad URI Target", l} + } + rr.Target = s[0] + return nil +} + +func (rr *DHCID) parse(c *zlexer, o, f string) *ParseError { + // awesome record to parse! + s, e := endingToString(c, "bad DHCID Digest", f) + if e != nil { + return e + } + rr.Digest = s + return nil +} + +func (rr *NID) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad NID Preference", l} + } + rr.Preference = uint16(i) + c.Next() // zBlank + l, _ = c.Next() // zString + u, err := stringToNodeID(l) + if err != nil || l.err { + return err + } + rr.NodeID = u + return slurpRemainder(c, f) +} + +func (rr *L32) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad L32 Preference", l} + } + rr.Preference = uint16(i) + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Locator32 = net.ParseIP(l.token) + if rr.Locator32 == nil || l.err { + return &ParseError{f, "bad L32 Locator", l} + } + return slurpRemainder(c, f) +} + +func (rr *LP) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad LP Preference", l} + } + rr.Preference = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Fqdn = l.token + name, nameOk := toAbsoluteName(l.token, o) + if l.err || !nameOk { + return &ParseError{f, "bad LP Fqdn", l} + } + rr.Fqdn = name + + return slurpRemainder(c, f) +} + +func (rr *L64) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad L64 Preference", l} + } + rr.Preference = uint16(i) + c.Next() // zBlank + l, _ = c.Next() // zString + u, err := stringToNodeID(l) + if err != nil || l.err { + return err + } + rr.Locator64 = u + return slurpRemainder(c, f) +} + +func (rr *UID) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 32) + if e != nil || l.err { + return &ParseError{f, "bad UID Uid", l} + } + rr.Uid = uint32(i) + return slurpRemainder(c, f) +} + +func (rr *GID) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 32) + if e != nil || l.err { + return &ParseError{f, "bad GID Gid", l} + } + rr.Gid = uint32(i) + return slurpRemainder(c, f) +} + +func (rr *UINFO) parse(c *zlexer, o, f string) *ParseError { + s, e := endingToTxtSlice(c, "bad UINFO Uinfo", f) + if e != nil { + return e + } + if ln := len(s); ln == 0 { + return nil + } + rr.Uinfo = s[0] // silently discard anything after the first character-string + return nil +} + +func (rr *PX) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return slurpRemainder(c, f) + } + + i, e := strconv.ParseUint(l.token, 10, 16) + if e != nil || l.err { + return &ParseError{f, "bad PX Preference", l} + } + rr.Preference = uint16(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Map822 = l.token + map822, map822Ok := toAbsoluteName(l.token, o) + if l.err || !map822Ok { + return &ParseError{f, "bad PX Map822", l} + } + rr.Map822 = map822 + + c.Next() // zBlank + l, _ = c.Next() // zString + rr.Mapx400 = l.token + mapx400, mapx400Ok := toAbsoluteName(l.token, o) + if l.err || !mapx400Ok { + return &ParseError{f, "bad PX Mapx400", l} + } + rr.Mapx400 = mapx400 + + return slurpRemainder(c, f) +} + +func (rr *CAA) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + if len(l.token) == 0 { // dynamic update rr. + return nil + } + + i, err := strconv.ParseUint(l.token, 10, 8) + if err != nil || l.err { + return &ParseError{f, "bad CAA Flag", l} + } + rr.Flag = uint8(i) + + c.Next() // zBlank + l, _ = c.Next() // zString + if l.value != zString { + return &ParseError{f, "bad CAA Tag", l} + } + rr.Tag = l.token + + c.Next() // zBlank + s, e := endingToTxtSlice(c, "bad CAA Value", f) + if e != nil { + return e + } + if len(s) != 1 { + return &ParseError{f, "bad CAA Value", l} + } + rr.Value = s[0] + return nil +} + +func (rr *TKEY) parse(c *zlexer, o, f string) *ParseError { + l, _ := c.Next() + + // Algorithm + if l.value != zString { + return &ParseError{f, "bad TKEY algorithm", l} + } + rr.Algorithm = l.token + c.Next() // zBlank + + // Get the key length and key values + l, _ = c.Next() + i, err := strconv.ParseUint(l.token, 10, 8) + if err != nil || l.err { + return &ParseError{f, "bad TKEY key length", l} + } + rr.KeySize = uint16(i) + c.Next() // zBlank + l, _ = c.Next() + if l.value != zString { + return &ParseError{f, "bad TKEY key", l} + } + rr.Key = l.token + c.Next() // zBlank + + // Get the otherdata length and string data + l, _ = c.Next() + i, err = strconv.ParseUint(l.token, 10, 8) + if err != nil || l.err { + return &ParseError{f, "bad TKEY otherdata length", l} + } + rr.OtherLen = uint16(i) + c.Next() // zBlank + l, _ = c.Next() + if l.value != zString { + return &ParseError{f, "bad TKEY otherday", l} + } + rr.OtherData = l.token + + return nil +} diff --git a/vendor/github.com/miekg/dns/serve_mux.go b/vendor/github.com/miekg/dns/serve_mux.go new file mode 100644 index 00000000..ae304db5 --- /dev/null +++ b/vendor/github.com/miekg/dns/serve_mux.go @@ -0,0 +1,147 @@ +package dns + +import ( + "strings" + "sync" +) + +// ServeMux is an DNS request multiplexer. It matches the zone name of +// each incoming request against a list of registered patterns add calls +// the handler for the pattern that most closely matches the zone name. +// +// ServeMux is DNSSEC aware, meaning that queries for the DS record are +// redirected to the parent zone (if that is also registered), otherwise +// the child gets the query. +// +// ServeMux is also safe for concurrent access from multiple goroutines. +// +// The zero ServeMux is empty and ready for use. +type ServeMux struct { + z map[string]Handler + m sync.RWMutex +} + +// NewServeMux allocates and returns a new ServeMux. +func NewServeMux() *ServeMux { + return new(ServeMux) +} + +// DefaultServeMux is the default ServeMux used by Serve. +var DefaultServeMux = NewServeMux() + +func (mux *ServeMux) match(q string, t uint16) Handler { + mux.m.RLock() + defer mux.m.RUnlock() + if mux.z == nil { + return nil + } + + var handler Handler + + // TODO(tmthrgd): Once https://go-review.googlesource.com/c/go/+/137575 + // lands in a go release, replace the following with strings.ToLower. + var sb strings.Builder + for i := 0; i < len(q); i++ { + c := q[i] + if !(c >= 'A' && c <= 'Z') { + continue + } + + sb.Grow(len(q)) + sb.WriteString(q[:i]) + + for ; i < len(q); i++ { + c := q[i] + if c >= 'A' && c <= 'Z' { + c += 'a' - 'A' + } + + sb.WriteByte(c) + } + + q = sb.String() + break + } + + for off, end := 0, false; !end; off, end = NextLabel(q, off) { + if h, ok := mux.z[q[off:]]; ok { + if t != TypeDS { + return h + } + // Continue for DS to see if we have a parent too, if so delegate to the parent + handler = h + } + } + + // Wildcard match, if we have found nothing try the root zone as a last resort. + if h, ok := mux.z["."]; ok { + return h + } + + return handler +} + +// Handle adds a handler to the ServeMux for pattern. +func (mux *ServeMux) Handle(pattern string, handler Handler) { + if pattern == "" { + panic("dns: invalid pattern " + pattern) + } + mux.m.Lock() + if mux.z == nil { + mux.z = make(map[string]Handler) + } + mux.z[Fqdn(pattern)] = handler + mux.m.Unlock() +} + +// HandleFunc adds a handler function to the ServeMux for pattern. +func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Msg)) { + mux.Handle(pattern, HandlerFunc(handler)) +} + +// HandleRemove deregisters the handler specific for pattern from the ServeMux. +func (mux *ServeMux) HandleRemove(pattern string) { + if pattern == "" { + panic("dns: invalid pattern " + pattern) + } + mux.m.Lock() + delete(mux.z, Fqdn(pattern)) + mux.m.Unlock() +} + +// ServeDNS dispatches the request to the handler whose pattern most +// closely matches the request message. +// +// ServeDNS is DNSSEC aware, meaning that queries for the DS record +// are redirected to the parent zone (if that is also registered), +// otherwise the child gets the query. +// +// If no handler is found, or there is no question, a standard SERVFAIL +// message is returned +func (mux *ServeMux) ServeDNS(w ResponseWriter, req *Msg) { + var h Handler + if len(req.Question) >= 1 { // allow more than one question + h = mux.match(req.Question[0].Name, req.Question[0].Qtype) + } + + if h != nil { + h.ServeDNS(w, req) + } else { + HandleFailed(w, req) + } +} + +// Handle registers the handler with the given pattern +// in the DefaultServeMux. The documentation for +// ServeMux explains how patterns are matched. +func Handle(pattern string, handler Handler) { DefaultServeMux.Handle(pattern, handler) } + +// HandleRemove deregisters the handle with the given pattern +// in the DefaultServeMux. +func HandleRemove(pattern string) { DefaultServeMux.HandleRemove(pattern) } + +// HandleFunc registers the handler function with the given pattern +// in the DefaultServeMux. +func HandleFunc(pattern string, handler func(ResponseWriter, *Msg)) { + DefaultServeMux.HandleFunc(pattern, handler) +} diff --git a/vendor/github.com/miekg/dns/server.go b/vendor/github.com/miekg/dns/server.go new file mode 100644 index 00000000..b09d3717 --- /dev/null +++ b/vendor/github.com/miekg/dns/server.go @@ -0,0 +1,758 @@ +// DNS server implementation. + +package dns + +import ( + "context" + "crypto/tls" + "encoding/binary" + "errors" + "io" + "net" + "strings" + "sync" + "time" +) + +// Default maximum number of TCP queries before we close the socket. +const maxTCPQueries = 128 + +// aLongTimeAgo is a non-zero time, far in the past, used for +// immediate cancelation of network operations. +var aLongTimeAgo = time.Unix(1, 0) + +// Handler is implemented by any value that implements ServeDNS. +type Handler interface { + ServeDNS(w ResponseWriter, r *Msg) +} + +// The HandlerFunc type is an adapter to allow the use of +// ordinary functions as DNS handlers. If f is a function +// with the appropriate signature, HandlerFunc(f) is a +// Handler object that calls f. +type HandlerFunc func(ResponseWriter, *Msg) + +// ServeDNS calls f(w, r). +func (f HandlerFunc) ServeDNS(w ResponseWriter, r *Msg) { + f(w, r) +} + +// A ResponseWriter interface is used by an DNS handler to +// construct an DNS response. +type ResponseWriter interface { + // LocalAddr returns the net.Addr of the server + LocalAddr() net.Addr + // RemoteAddr returns the net.Addr of the client that sent the current request. + RemoteAddr() net.Addr + // WriteMsg writes a reply back to the client. + WriteMsg(*Msg) error + // Write writes a raw buffer back to the client. + Write([]byte) (int, error) + // Close closes the connection. + Close() error + // TsigStatus returns the status of the Tsig. + TsigStatus() error + // TsigTimersOnly sets the tsig timers only boolean. + TsigTimersOnly(bool) + // Hijack lets the caller take over the connection. + // After a call to Hijack(), the DNS package will not do anything with the connection. + Hijack() +} + +// A ConnectionStater interface is used by a DNS Handler to access TLS connection state +// when available. +type ConnectionStater interface { + ConnectionState() *tls.ConnectionState +} + +type response struct { + closed bool // connection has been closed + hijacked bool // connection has been hijacked by handler + tsigTimersOnly bool + tsigStatus error + tsigRequestMAC string + tsigSecret map[string]string // the tsig secrets + udp *net.UDPConn // i/o connection if UDP was used + tcp net.Conn // i/o connection if TCP was used + udpSession *SessionUDP // oob data to get egress interface right + writer Writer // writer to output the raw DNS bits +} + +// HandleFailed returns a HandlerFunc that returns SERVFAIL for every request it gets. +func HandleFailed(w ResponseWriter, r *Msg) { + m := new(Msg) + m.SetRcode(r, RcodeServerFailure) + // does not matter if this write fails + w.WriteMsg(m) +} + +// ListenAndServe Starts a server on address and network specified Invoke handler +// for incoming queries. +func ListenAndServe(addr string, network string, handler Handler) error { + server := &Server{Addr: addr, Net: network, Handler: handler} + return server.ListenAndServe() +} + +// ListenAndServeTLS acts like http.ListenAndServeTLS, more information in +// http://golang.org/pkg/net/http/#ListenAndServeTLS +func ListenAndServeTLS(addr, certFile, keyFile string, handler Handler) error { + cert, err := tls.LoadX509KeyPair(certFile, keyFile) + if err != nil { + return err + } + + config := tls.Config{ + Certificates: []tls.Certificate{cert}, + } + + server := &Server{ + Addr: addr, + Net: "tcp-tls", + TLSConfig: &config, + Handler: handler, + } + + return server.ListenAndServe() +} + +// ActivateAndServe activates a server with a listener from systemd, +// l and p should not both be non-nil. +// If both l and p are not nil only p will be used. +// Invoke handler for incoming queries. +func ActivateAndServe(l net.Listener, p net.PacketConn, handler Handler) error { + server := &Server{Listener: l, PacketConn: p, Handler: handler} + return server.ActivateAndServe() +} + +// Writer writes raw DNS messages; each call to Write should send an entire message. +type Writer interface { + io.Writer +} + +// Reader reads raw DNS messages; each call to ReadTCP or ReadUDP should return an entire message. +type Reader interface { + // ReadTCP reads a raw message from a TCP connection. Implementations may alter + // connection properties, for example the read-deadline. + ReadTCP(conn net.Conn, timeout time.Duration) ([]byte, error) + // ReadUDP reads a raw message from a UDP connection. Implementations may alter + // connection properties, for example the read-deadline. + ReadUDP(conn *net.UDPConn, timeout time.Duration) ([]byte, *SessionUDP, error) +} + +// defaultReader is an adapter for the Server struct that implements the Reader interface +// using the readTCP and readUDP func of the embedded Server. +type defaultReader struct { + *Server +} + +func (dr defaultReader) ReadTCP(conn net.Conn, timeout time.Duration) ([]byte, error) { + return dr.readTCP(conn, timeout) +} + +func (dr defaultReader) ReadUDP(conn *net.UDPConn, timeout time.Duration) ([]byte, *SessionUDP, error) { + return dr.readUDP(conn, timeout) +} + +// DecorateReader is a decorator hook for extending or supplanting the functionality of a Reader. +// Implementations should never return a nil Reader. +type DecorateReader func(Reader) Reader + +// DecorateWriter is a decorator hook for extending or supplanting the functionality of a Writer. +// Implementations should never return a nil Writer. +type DecorateWriter func(Writer) Writer + +// A Server defines parameters for running an DNS server. +type Server struct { + // Address to listen on, ":dns" if empty. + Addr string + // if "tcp" or "tcp-tls" (DNS over TLS) it will invoke a TCP listener, otherwise an UDP one + Net string + // TCP Listener to use, this is to aid in systemd's socket activation. + Listener net.Listener + // TLS connection configuration + TLSConfig *tls.Config + // UDP "Listener" to use, this is to aid in systemd's socket activation. + PacketConn net.PacketConn + // Handler to invoke, dns.DefaultServeMux if nil. + Handler Handler + // Default buffer size to use to read incoming UDP messages. If not set + // it defaults to MinMsgSize (512 B). + UDPSize int + // The net.Conn.SetReadTimeout value for new connections, defaults to 2 * time.Second. + ReadTimeout time.Duration + // The net.Conn.SetWriteTimeout value for new connections, defaults to 2 * time.Second. + WriteTimeout time.Duration + // TCP idle timeout for multiple queries, if nil, defaults to 8 * time.Second (RFC 5966). + IdleTimeout func() time.Duration + // Secret(s) for Tsig map[]. The zonename must be in canonical form (lowercase, fqdn, see RFC 4034 Section 6.2). + TsigSecret map[string]string + // If NotifyStartedFunc is set it is called once the server has started listening. + NotifyStartedFunc func() + // DecorateReader is optional, allows customization of the process that reads raw DNS messages. + DecorateReader DecorateReader + // DecorateWriter is optional, allows customization of the process that writes raw DNS messages. + DecorateWriter DecorateWriter + // Maximum number of TCP queries before we close the socket. Default is maxTCPQueries (unlimited if -1). + MaxTCPQueries int + // Whether to set the SO_REUSEPORT socket option, allowing multiple listeners to be bound to a single address. + // It is only supported on go1.11+ and when using ListenAndServe. + ReusePort bool + // AcceptMsgFunc will check the incoming message and will reject it early in the process. + // By default DefaultMsgAcceptFunc will be used. + MsgAcceptFunc MsgAcceptFunc + + // Shutdown handling + lock sync.RWMutex + started bool + shutdown chan struct{} + conns map[net.Conn]struct{} + + // A pool for UDP message buffers. + udpPool sync.Pool +} + +func (srv *Server) isStarted() bool { + srv.lock.RLock() + started := srv.started + srv.lock.RUnlock() + return started +} + +func makeUDPBuffer(size int) func() interface{} { + return func() interface{} { + return make([]byte, size) + } +} + +func (srv *Server) init() { + srv.shutdown = make(chan struct{}) + srv.conns = make(map[net.Conn]struct{}) + + if srv.UDPSize == 0 { + srv.UDPSize = MinMsgSize + } + if srv.MsgAcceptFunc == nil { + srv.MsgAcceptFunc = DefaultMsgAcceptFunc + } + if srv.Handler == nil { + srv.Handler = DefaultServeMux + } + + srv.udpPool.New = makeUDPBuffer(srv.UDPSize) +} + +func unlockOnce(l sync.Locker) func() { + var once sync.Once + return func() { once.Do(l.Unlock) } +} + +// ListenAndServe starts a nameserver on the configured address in *Server. +func (srv *Server) ListenAndServe() error { + unlock := unlockOnce(&srv.lock) + srv.lock.Lock() + defer unlock() + + if srv.started { + return &Error{err: "server already started"} + } + + addr := srv.Addr + if addr == "" { + addr = ":domain" + } + + srv.init() + + switch srv.Net { + case "tcp", "tcp4", "tcp6": + l, err := listenTCP(srv.Net, addr, srv.ReusePort) + if err != nil { + return err + } + srv.Listener = l + srv.started = true + unlock() + return srv.serveTCP(l) + case "tcp-tls", "tcp4-tls", "tcp6-tls": + if srv.TLSConfig == nil || (len(srv.TLSConfig.Certificates) == 0 && srv.TLSConfig.GetCertificate == nil) { + return errors.New("dns: neither Certificates nor GetCertificate set in Config") + } + network := strings.TrimSuffix(srv.Net, "-tls") + l, err := listenTCP(network, addr, srv.ReusePort) + if err != nil { + return err + } + l = tls.NewListener(l, srv.TLSConfig) + srv.Listener = l + srv.started = true + unlock() + return srv.serveTCP(l) + case "udp", "udp4", "udp6": + l, err := listenUDP(srv.Net, addr, srv.ReusePort) + if err != nil { + return err + } + u := l.(*net.UDPConn) + if e := setUDPSocketOptions(u); e != nil { + return e + } + srv.PacketConn = l + srv.started = true + unlock() + return srv.serveUDP(u) + } + return &Error{err: "bad network"} +} + +// ActivateAndServe starts a nameserver with the PacketConn or Listener +// configured in *Server. Its main use is to start a server from systemd. +func (srv *Server) ActivateAndServe() error { + unlock := unlockOnce(&srv.lock) + srv.lock.Lock() + defer unlock() + + if srv.started { + return &Error{err: "server already started"} + } + + srv.init() + + pConn := srv.PacketConn + l := srv.Listener + if pConn != nil { + // Check PacketConn interface's type is valid and value + // is not nil + if t, ok := pConn.(*net.UDPConn); ok && t != nil { + if e := setUDPSocketOptions(t); e != nil { + return e + } + srv.started = true + unlock() + return srv.serveUDP(t) + } + } + if l != nil { + srv.started = true + unlock() + return srv.serveTCP(l) + } + return &Error{err: "bad listeners"} +} + +// Shutdown shuts down a server. After a call to Shutdown, ListenAndServe and +// ActivateAndServe will return. +func (srv *Server) Shutdown() error { + return srv.ShutdownContext(context.Background()) +} + +// ShutdownContext shuts down a server. After a call to ShutdownContext, +// ListenAndServe and ActivateAndServe will return. +// +// A context.Context may be passed to limit how long to wait for connections +// to terminate. +func (srv *Server) ShutdownContext(ctx context.Context) error { + srv.lock.Lock() + if !srv.started { + srv.lock.Unlock() + return &Error{err: "server not started"} + } + + srv.started = false + + if srv.PacketConn != nil { + srv.PacketConn.SetReadDeadline(aLongTimeAgo) // Unblock reads + } + + if srv.Listener != nil { + srv.Listener.Close() + } + + for rw := range srv.conns { + rw.SetReadDeadline(aLongTimeAgo) // Unblock reads + } + + srv.lock.Unlock() + + if testShutdownNotify != nil { + testShutdownNotify.Broadcast() + } + + var ctxErr error + select { + case <-srv.shutdown: + case <-ctx.Done(): + ctxErr = ctx.Err() + } + + if srv.PacketConn != nil { + srv.PacketConn.Close() + } + + return ctxErr +} + +var testShutdownNotify *sync.Cond + +// getReadTimeout is a helper func to use system timeout if server did not intend to change it. +func (srv *Server) getReadTimeout() time.Duration { + if srv.ReadTimeout != 0 { + return srv.ReadTimeout + } + return dnsTimeout +} + +// serveTCP starts a TCP listener for the server. +func (srv *Server) serveTCP(l net.Listener) error { + defer l.Close() + + if srv.NotifyStartedFunc != nil { + srv.NotifyStartedFunc() + } + + var wg sync.WaitGroup + defer func() { + wg.Wait() + close(srv.shutdown) + }() + + for srv.isStarted() { + rw, err := l.Accept() + if err != nil { + if !srv.isStarted() { + return nil + } + if neterr, ok := err.(net.Error); ok && neterr.Temporary() { + continue + } + return err + } + srv.lock.Lock() + // Track the connection to allow unblocking reads on shutdown. + srv.conns[rw] = struct{}{} + srv.lock.Unlock() + wg.Add(1) + go srv.serveTCPConn(&wg, rw) + } + + return nil +} + +// serveUDP starts a UDP listener for the server. +func (srv *Server) serveUDP(l *net.UDPConn) error { + defer l.Close() + + if srv.NotifyStartedFunc != nil { + srv.NotifyStartedFunc() + } + + reader := Reader(defaultReader{srv}) + if srv.DecorateReader != nil { + reader = srv.DecorateReader(reader) + } + + var wg sync.WaitGroup + defer func() { + wg.Wait() + close(srv.shutdown) + }() + + rtimeout := srv.getReadTimeout() + // deadline is not used here + for srv.isStarted() { + m, s, err := reader.ReadUDP(l, rtimeout) + if err != nil { + if !srv.isStarted() { + return nil + } + if netErr, ok := err.(net.Error); ok && netErr.Temporary() { + continue + } + return err + } + if len(m) < headerSize { + if cap(m) == srv.UDPSize { + srv.udpPool.Put(m[:srv.UDPSize]) + } + continue + } + wg.Add(1) + go srv.serveUDPPacket(&wg, m, l, s) + } + + return nil +} + +// Serve a new TCP connection. +func (srv *Server) serveTCPConn(wg *sync.WaitGroup, rw net.Conn) { + w := &response{tsigSecret: srv.TsigSecret, tcp: rw} + if srv.DecorateWriter != nil { + w.writer = srv.DecorateWriter(w) + } else { + w.writer = w + } + + reader := Reader(defaultReader{srv}) + if srv.DecorateReader != nil { + reader = srv.DecorateReader(reader) + } + + idleTimeout := tcpIdleTimeout + if srv.IdleTimeout != nil { + idleTimeout = srv.IdleTimeout() + } + + timeout := srv.getReadTimeout() + + limit := srv.MaxTCPQueries + if limit == 0 { + limit = maxTCPQueries + } + + for q := 0; (q < limit || limit == -1) && srv.isStarted(); q++ { + m, err := reader.ReadTCP(w.tcp, timeout) + if err != nil { + // TODO(tmthrgd): handle error + break + } + srv.serveDNS(m, w) + if w.closed { + break // Close() was called + } + if w.hijacked { + break // client will call Close() themselves + } + // The first read uses the read timeout, the rest use the + // idle timeout. + timeout = idleTimeout + } + + if !w.hijacked { + w.Close() + } + + srv.lock.Lock() + delete(srv.conns, w.tcp) + srv.lock.Unlock() + + wg.Done() +} + +// Serve a new UDP request. +func (srv *Server) serveUDPPacket(wg *sync.WaitGroup, m []byte, u *net.UDPConn, s *SessionUDP) { + w := &response{tsigSecret: srv.TsigSecret, udp: u, udpSession: s} + if srv.DecorateWriter != nil { + w.writer = srv.DecorateWriter(w) + } else { + w.writer = w + } + + srv.serveDNS(m, w) + wg.Done() +} + +func (srv *Server) serveDNS(m []byte, w *response) { + dh, off, err := unpackMsgHdr(m, 0) + if err != nil { + // Let client hang, they are sending crap; any reply can be used to amplify. + return + } + + req := new(Msg) + req.setHdr(dh) + + switch srv.MsgAcceptFunc(dh) { + case MsgAccept: + if req.unpack(dh, m, off) == nil { + break + } + + fallthrough + case MsgReject: + req.SetRcodeFormatError(req) + // Are we allowed to delete any OPT records here? + req.Ns, req.Answer, req.Extra = nil, nil, nil + + w.WriteMsg(req) + + if w.udp != nil && cap(m) == srv.UDPSize { + srv.udpPool.Put(m[:srv.UDPSize]) + } + + return + case MsgIgnore: + return + } + + w.tsigStatus = nil + if w.tsigSecret != nil { + if t := req.IsTsig(); t != nil { + if secret, ok := w.tsigSecret[t.Hdr.Name]; ok { + w.tsigStatus = TsigVerify(m, secret, "", false) + } else { + w.tsigStatus = ErrSecret + } + w.tsigTimersOnly = false + w.tsigRequestMAC = req.Extra[len(req.Extra)-1].(*TSIG).MAC + } + } + + if w.udp != nil && cap(m) == srv.UDPSize { + srv.udpPool.Put(m[:srv.UDPSize]) + } + + srv.Handler.ServeDNS(w, req) // Writes back to the client +} + +func (srv *Server) readTCP(conn net.Conn, timeout time.Duration) ([]byte, error) { + // If we race with ShutdownContext, the read deadline may + // have been set in the distant past to unblock the read + // below. We must not override it, otherwise we may block + // ShutdownContext. + srv.lock.RLock() + if srv.started { + conn.SetReadDeadline(time.Now().Add(timeout)) + } + srv.lock.RUnlock() + + var length uint16 + if err := binary.Read(conn, binary.BigEndian, &length); err != nil { + return nil, err + } + + m := make([]byte, length) + if _, err := io.ReadFull(conn, m); err != nil { + return nil, err + } + + return m, nil +} + +func (srv *Server) readUDP(conn *net.UDPConn, timeout time.Duration) ([]byte, *SessionUDP, error) { + srv.lock.RLock() + if srv.started { + // See the comment in readTCP above. + conn.SetReadDeadline(time.Now().Add(timeout)) + } + srv.lock.RUnlock() + + m := srv.udpPool.Get().([]byte) + n, s, err := ReadFromSessionUDP(conn, m) + if err != nil { + srv.udpPool.Put(m) + return nil, nil, err + } + m = m[:n] + return m, s, nil +} + +// WriteMsg implements the ResponseWriter.WriteMsg method. +func (w *response) WriteMsg(m *Msg) (err error) { + if w.closed { + return &Error{err: "WriteMsg called after Close"} + } + + var data []byte + if w.tsigSecret != nil { // if no secrets, dont check for the tsig (which is a longer check) + if t := m.IsTsig(); t != nil { + data, w.tsigRequestMAC, err = TsigGenerate(m, w.tsigSecret[t.Hdr.Name], w.tsigRequestMAC, w.tsigTimersOnly) + if err != nil { + return err + } + _, err = w.writer.Write(data) + return err + } + } + data, err = m.Pack() + if err != nil { + return err + } + _, err = w.writer.Write(data) + return err +} + +// Write implements the ResponseWriter.Write method. +func (w *response) Write(m []byte) (int, error) { + if w.closed { + return 0, &Error{err: "Write called after Close"} + } + + switch { + case w.udp != nil: + return WriteToSessionUDP(w.udp, m, w.udpSession) + case w.tcp != nil: + if len(m) > MaxMsgSize { + return 0, &Error{err: "message too large"} + } + + l := make([]byte, 2) + binary.BigEndian.PutUint16(l, uint16(len(m))) + + n, err := (&net.Buffers{l, m}).WriteTo(w.tcp) + return int(n), err + default: + panic("dns: internal error: udp and tcp both nil") + } +} + +// LocalAddr implements the ResponseWriter.LocalAddr method. +func (w *response) LocalAddr() net.Addr { + switch { + case w.udp != nil: + return w.udp.LocalAddr() + case w.tcp != nil: + return w.tcp.LocalAddr() + default: + panic("dns: internal error: udp and tcp both nil") + } +} + +// RemoteAddr implements the ResponseWriter.RemoteAddr method. +func (w *response) RemoteAddr() net.Addr { + switch { + case w.udpSession != nil: + return w.udpSession.RemoteAddr() + case w.tcp != nil: + return w.tcp.RemoteAddr() + default: + panic("dns: internal error: udpSession and tcp both nil") + } +} + +// TsigStatus implements the ResponseWriter.TsigStatus method. +func (w *response) TsigStatus() error { return w.tsigStatus } + +// TsigTimersOnly implements the ResponseWriter.TsigTimersOnly method. +func (w *response) TsigTimersOnly(b bool) { w.tsigTimersOnly = b } + +// Hijack implements the ResponseWriter.Hijack method. +func (w *response) Hijack() { w.hijacked = true } + +// Close implements the ResponseWriter.Close method +func (w *response) Close() error { + if w.closed { + return &Error{err: "connection already closed"} + } + w.closed = true + + switch { + case w.udp != nil: + // Can't close the udp conn, as that is actually the listener. + return nil + case w.tcp != nil: + return w.tcp.Close() + default: + panic("dns: internal error: udp and tcp both nil") + } +} + +// ConnectionState() implements the ConnectionStater.ConnectionState() interface. +func (w *response) ConnectionState() *tls.ConnectionState { + type tlsConnectionStater interface { + ConnectionState() tls.ConnectionState + } + if v, ok := w.tcp.(tlsConnectionStater); ok { + t := v.ConnectionState() + return &t + } + return nil +} diff --git a/vendor/github.com/miekg/dns/sig0.go b/vendor/github.com/miekg/dns/sig0.go new file mode 100644 index 00000000..55cf1c38 --- /dev/null +++ b/vendor/github.com/miekg/dns/sig0.go @@ -0,0 +1,209 @@ +package dns + +import ( + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/rsa" + "encoding/binary" + "math/big" + "strings" + "time" +) + +// Sign signs a dns.Msg. It fills the signature with the appropriate data. +// The SIG record should have the SignerName, KeyTag, Algorithm, Inception +// and Expiration set. +func (rr *SIG) Sign(k crypto.Signer, m *Msg) ([]byte, error) { + if k == nil { + return nil, ErrPrivKey + } + if rr.KeyTag == 0 || len(rr.SignerName) == 0 || rr.Algorithm == 0 { + return nil, ErrKey + } + + rr.Hdr = RR_Header{Name: ".", Rrtype: TypeSIG, Class: ClassANY, Ttl: 0} + rr.OrigTtl, rr.TypeCovered, rr.Labels = 0, 0, 0 + + buf := make([]byte, m.Len()+Len(rr)) + mbuf, err := m.PackBuffer(buf) + if err != nil { + return nil, err + } + if &buf[0] != &mbuf[0] { + return nil, ErrBuf + } + off, err := PackRR(rr, buf, len(mbuf), nil, false) + if err != nil { + return nil, err + } + buf = buf[:off:cap(buf)] + + hash, ok := AlgorithmToHash[rr.Algorithm] + if !ok { + return nil, ErrAlg + } + + hasher := hash.New() + // Write SIG rdata + hasher.Write(buf[len(mbuf)+1+2+2+4+2:]) + // Write message + hasher.Write(buf[:len(mbuf)]) + + signature, err := sign(k, hasher.Sum(nil), hash, rr.Algorithm) + if err != nil { + return nil, err + } + + rr.Signature = toBase64(signature) + + buf = append(buf, signature...) + if len(buf) > int(^uint16(0)) { + return nil, ErrBuf + } + // Adjust sig data length + rdoff := len(mbuf) + 1 + 2 + 2 + 4 + rdlen := binary.BigEndian.Uint16(buf[rdoff:]) + rdlen += uint16(len(signature)) + binary.BigEndian.PutUint16(buf[rdoff:], rdlen) + // Adjust additional count + adc := binary.BigEndian.Uint16(buf[10:]) + adc++ + binary.BigEndian.PutUint16(buf[10:], adc) + return buf, nil +} + +// Verify validates the message buf using the key k. +// It's assumed that buf is a valid message from which rr was unpacked. +func (rr *SIG) Verify(k *KEY, buf []byte) error { + if k == nil { + return ErrKey + } + if rr.KeyTag == 0 || len(rr.SignerName) == 0 || rr.Algorithm == 0 { + return ErrKey + } + + var hash crypto.Hash + switch rr.Algorithm { + case DSA, RSASHA1: + hash = crypto.SHA1 + case RSASHA256, ECDSAP256SHA256: + hash = crypto.SHA256 + case ECDSAP384SHA384: + hash = crypto.SHA384 + case RSASHA512: + hash = crypto.SHA512 + default: + return ErrAlg + } + hasher := hash.New() + + buflen := len(buf) + qdc := binary.BigEndian.Uint16(buf[4:]) + anc := binary.BigEndian.Uint16(buf[6:]) + auc := binary.BigEndian.Uint16(buf[8:]) + adc := binary.BigEndian.Uint16(buf[10:]) + offset := headerSize + var err error + for i := uint16(0); i < qdc && offset < buflen; i++ { + _, offset, err = UnpackDomainName(buf, offset) + if err != nil { + return err + } + // Skip past Type and Class + offset += 2 + 2 + } + for i := uint16(1); i < anc+auc+adc && offset < buflen; i++ { + _, offset, err = UnpackDomainName(buf, offset) + if err != nil { + return err + } + // Skip past Type, Class and TTL + offset += 2 + 2 + 4 + if offset+1 >= buflen { + continue + } + rdlen := binary.BigEndian.Uint16(buf[offset:]) + offset += 2 + offset += int(rdlen) + } + if offset >= buflen { + return &Error{err: "overflowing unpacking signed message"} + } + + // offset should be just prior to SIG + bodyend := offset + // owner name SHOULD be root + _, offset, err = UnpackDomainName(buf, offset) + if err != nil { + return err + } + // Skip Type, Class, TTL, RDLen + offset += 2 + 2 + 4 + 2 + sigstart := offset + // Skip Type Covered, Algorithm, Labels, Original TTL + offset += 2 + 1 + 1 + 4 + if offset+4+4 >= buflen { + return &Error{err: "overflow unpacking signed message"} + } + expire := binary.BigEndian.Uint32(buf[offset:]) + offset += 4 + incept := binary.BigEndian.Uint32(buf[offset:]) + offset += 4 + now := uint32(time.Now().Unix()) + if now < incept || now > expire { + return ErrTime + } + // Skip key tag + offset += 2 + var signername string + signername, offset, err = UnpackDomainName(buf, offset) + if err != nil { + return err + } + // If key has come from the DNS name compression might + // have mangled the case of the name + if !strings.EqualFold(signername, k.Header().Name) { + return &Error{err: "signer name doesn't match key name"} + } + sigend := offset + hasher.Write(buf[sigstart:sigend]) + hasher.Write(buf[:10]) + hasher.Write([]byte{ + byte((adc - 1) << 8), + byte(adc - 1), + }) + hasher.Write(buf[12:bodyend]) + + hashed := hasher.Sum(nil) + sig := buf[sigend:] + switch k.Algorithm { + case DSA: + pk := k.publicKeyDSA() + sig = sig[1:] + r := new(big.Int).SetBytes(sig[:len(sig)/2]) + s := new(big.Int).SetBytes(sig[len(sig)/2:]) + if pk != nil { + if dsa.Verify(pk, hashed, r, s) { + return nil + } + return ErrSig + } + case RSASHA1, RSASHA256, RSASHA512: + pk := k.publicKeyRSA() + if pk != nil { + return rsa.VerifyPKCS1v15(pk, hash, hashed, sig) + } + case ECDSAP256SHA256, ECDSAP384SHA384: + pk := k.publicKeyECDSA() + r := new(big.Int).SetBytes(sig[:len(sig)/2]) + s := new(big.Int).SetBytes(sig[len(sig)/2:]) + if pk != nil { + if ecdsa.Verify(pk, hashed, r, s) { + return nil + } + return ErrSig + } + } + return ErrKeyAlg +} diff --git a/vendor/github.com/miekg/dns/singleinflight.go b/vendor/github.com/miekg/dns/singleinflight.go new file mode 100644 index 00000000..febcc300 --- /dev/null +++ b/vendor/github.com/miekg/dns/singleinflight.go @@ -0,0 +1,61 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Adapted for dns package usage by Miek Gieben. + +package dns + +import "sync" +import "time" + +// call is an in-flight or completed singleflight.Do call +type call struct { + wg sync.WaitGroup + val *Msg + rtt time.Duration + err error + dups int +} + +// singleflight represents a class of work and forms a namespace in +// which units of work can be executed with duplicate suppression. +type singleflight struct { + sync.Mutex // protects m + m map[string]*call // lazily initialized + + dontDeleteForTesting bool // this is only to be used by TestConcurrentExchanges +} + +// Do executes and returns the results of the given function, making +// sure that only one execution is in-flight for a given key at a +// time. If a duplicate comes in, the duplicate caller waits for the +// original to complete and receives the same results. +// The return value shared indicates whether v was given to multiple callers. +func (g *singleflight) Do(key string, fn func() (*Msg, time.Duration, error)) (v *Msg, rtt time.Duration, err error, shared bool) { + g.Lock() + if g.m == nil { + g.m = make(map[string]*call) + } + if c, ok := g.m[key]; ok { + c.dups++ + g.Unlock() + c.wg.Wait() + return c.val, c.rtt, c.err, true + } + c := new(call) + c.wg.Add(1) + g.m[key] = c + g.Unlock() + + c.val, c.rtt, c.err = fn() + c.wg.Done() + + if !g.dontDeleteForTesting { + g.Lock() + delete(g.m, key) + g.Unlock() + } + + return c.val, c.rtt, c.err, c.dups > 0 +} diff --git a/vendor/github.com/miekg/dns/smimea.go b/vendor/github.com/miekg/dns/smimea.go new file mode 100644 index 00000000..89f09f0d --- /dev/null +++ b/vendor/github.com/miekg/dns/smimea.go @@ -0,0 +1,44 @@ +package dns + +import ( + "crypto/sha256" + "crypto/x509" + "encoding/hex" +) + +// Sign creates a SMIMEA record from an SSL certificate. +func (r *SMIMEA) Sign(usage, selector, matchingType int, cert *x509.Certificate) (err error) { + r.Hdr.Rrtype = TypeSMIMEA + r.Usage = uint8(usage) + r.Selector = uint8(selector) + r.MatchingType = uint8(matchingType) + + r.Certificate, err = CertificateToDANE(r.Selector, r.MatchingType, cert) + return err +} + +// Verify verifies a SMIMEA record against an SSL certificate. If it is OK +// a nil error is returned. +func (r *SMIMEA) Verify(cert *x509.Certificate) error { + c, err := CertificateToDANE(r.Selector, r.MatchingType, cert) + if err != nil { + return err // Not also ErrSig? + } + if r.Certificate == c { + return nil + } + return ErrSig // ErrSig, really? +} + +// SMIMEAName returns the ownername of a SMIMEA resource record as per the +// format specified in RFC 'draft-ietf-dane-smime-12' Section 2 and 3 +func SMIMEAName(email, domain string) (string, error) { + hasher := sha256.New() + hasher.Write([]byte(email)) + + // RFC Section 3: "The local-part is hashed using the SHA2-256 + // algorithm with the hash truncated to 28 octets and + // represented in its hexadecimal representation to become the + // left-most label in the prepared domain name" + return hex.EncodeToString(hasher.Sum(nil)[:28]) + "." + "_smimecert." + domain, nil +} diff --git a/vendor/github.com/miekg/dns/tlsa.go b/vendor/github.com/miekg/dns/tlsa.go new file mode 100644 index 00000000..4e07983b --- /dev/null +++ b/vendor/github.com/miekg/dns/tlsa.go @@ -0,0 +1,44 @@ +package dns + +import ( + "crypto/x509" + "net" + "strconv" +) + +// Sign creates a TLSA record from an SSL certificate. +func (r *TLSA) Sign(usage, selector, matchingType int, cert *x509.Certificate) (err error) { + r.Hdr.Rrtype = TypeTLSA + r.Usage = uint8(usage) + r.Selector = uint8(selector) + r.MatchingType = uint8(matchingType) + + r.Certificate, err = CertificateToDANE(r.Selector, r.MatchingType, cert) + return err +} + +// Verify verifies a TLSA record against an SSL certificate. If it is OK +// a nil error is returned. +func (r *TLSA) Verify(cert *x509.Certificate) error { + c, err := CertificateToDANE(r.Selector, r.MatchingType, cert) + if err != nil { + return err // Not also ErrSig? + } + if r.Certificate == c { + return nil + } + return ErrSig // ErrSig, really? +} + +// TLSAName returns the ownername of a TLSA resource record as per the +// rules specified in RFC 6698, Section 3. +func TLSAName(name, service, network string) (string, error) { + if !IsFqdn(name) { + return "", ErrFqdn + } + p, err := net.LookupPort(network, service) + if err != nil { + return "", err + } + return "_" + strconv.Itoa(p) + "._" + network + "." + name, nil +} diff --git a/vendor/github.com/miekg/dns/tsig.go b/vendor/github.com/miekg/dns/tsig.go new file mode 100644 index 00000000..afa462fa --- /dev/null +++ b/vendor/github.com/miekg/dns/tsig.go @@ -0,0 +1,389 @@ +package dns + +import ( + "crypto/hmac" + "crypto/md5" + "crypto/sha1" + "crypto/sha256" + "crypto/sha512" + "encoding/binary" + "encoding/hex" + "hash" + "strconv" + "strings" + "time" +) + +// HMAC hashing codes. These are transmitted as domain names. +const ( + HmacMD5 = "hmac-md5.sig-alg.reg.int." + HmacSHA1 = "hmac-sha1." + HmacSHA256 = "hmac-sha256." + HmacSHA512 = "hmac-sha512." +) + +// TSIG is the RR the holds the transaction signature of a message. +// See RFC 2845 and RFC 4635. +type TSIG struct { + Hdr RR_Header + Algorithm string `dns:"domain-name"` + TimeSigned uint64 `dns:"uint48"` + Fudge uint16 + MACSize uint16 + MAC string `dns:"size-hex:MACSize"` + OrigId uint16 + Error uint16 + OtherLen uint16 + OtherData string `dns:"size-hex:OtherLen"` +} + +// TSIG has no official presentation format, but this will suffice. + +func (rr *TSIG) String() string { + s := "\n;; TSIG PSEUDOSECTION:\n" + s += rr.Hdr.String() + + " " + rr.Algorithm + + " " + tsigTimeToString(rr.TimeSigned) + + " " + strconv.Itoa(int(rr.Fudge)) + + " " + strconv.Itoa(int(rr.MACSize)) + + " " + strings.ToUpper(rr.MAC) + + " " + strconv.Itoa(int(rr.OrigId)) + + " " + strconv.Itoa(int(rr.Error)) + // BIND prints NOERROR + " " + strconv.Itoa(int(rr.OtherLen)) + + " " + rr.OtherData + return s +} + +func (rr *TSIG) parse(c *zlexer, origin, file string) *ParseError { + panic("dns: internal error: parse should never be called on TSIG") +} + +// The following values must be put in wireformat, so that the MAC can be calculated. +// RFC 2845, section 3.4.2. TSIG Variables. +type tsigWireFmt struct { + // From RR_Header + Name string `dns:"domain-name"` + Class uint16 + Ttl uint32 + // Rdata of the TSIG + Algorithm string `dns:"domain-name"` + TimeSigned uint64 `dns:"uint48"` + Fudge uint16 + // MACSize, MAC and OrigId excluded + Error uint16 + OtherLen uint16 + OtherData string `dns:"size-hex:OtherLen"` +} + +// If we have the MAC use this type to convert it to wiredata. Section 3.4.3. Request MAC +type macWireFmt struct { + MACSize uint16 + MAC string `dns:"size-hex:MACSize"` +} + +// 3.3. Time values used in TSIG calculations +type timerWireFmt struct { + TimeSigned uint64 `dns:"uint48"` + Fudge uint16 +} + +// TsigGenerate fills out the TSIG record attached to the message. +// The message should contain +// a "stub" TSIG RR with the algorithm, key name (owner name of the RR), +// time fudge (defaults to 300 seconds) and the current time +// The TSIG MAC is saved in that Tsig RR. +// When TsigGenerate is called for the first time requestMAC is set to the empty string and +// timersOnly is false. +// If something goes wrong an error is returned, otherwise it is nil. +func TsigGenerate(m *Msg, secret, requestMAC string, timersOnly bool) ([]byte, string, error) { + if m.IsTsig() == nil { + panic("dns: TSIG not last RR in additional") + } + // If we barf here, the caller is to blame + rawsecret, err := fromBase64([]byte(secret)) + if err != nil { + return nil, "", err + } + + rr := m.Extra[len(m.Extra)-1].(*TSIG) + m.Extra = m.Extra[0 : len(m.Extra)-1] // kill the TSIG from the msg + mbuf, err := m.Pack() + if err != nil { + return nil, "", err + } + buf := tsigBuffer(mbuf, rr, requestMAC, timersOnly) + + t := new(TSIG) + var h hash.Hash + switch strings.ToLower(rr.Algorithm) { + case HmacMD5: + h = hmac.New(md5.New, rawsecret) + case HmacSHA1: + h = hmac.New(sha1.New, rawsecret) + case HmacSHA256: + h = hmac.New(sha256.New, rawsecret) + case HmacSHA512: + h = hmac.New(sha512.New, rawsecret) + default: + return nil, "", ErrKeyAlg + } + h.Write(buf) + t.MAC = hex.EncodeToString(h.Sum(nil)) + t.MACSize = uint16(len(t.MAC) / 2) // Size is half! + + t.Hdr = RR_Header{Name: rr.Hdr.Name, Rrtype: TypeTSIG, Class: ClassANY, Ttl: 0} + t.Fudge = rr.Fudge + t.TimeSigned = rr.TimeSigned + t.Algorithm = rr.Algorithm + t.OrigId = m.Id + + tbuf := make([]byte, Len(t)) + off, err := PackRR(t, tbuf, 0, nil, false) + if err != nil { + return nil, "", err + } + mbuf = append(mbuf, tbuf[:off]...) + // Update the ArCount directly in the buffer. + binary.BigEndian.PutUint16(mbuf[10:], uint16(len(m.Extra)+1)) + + return mbuf, t.MAC, nil +} + +// TsigVerify verifies the TSIG on a message. +// If the signature does not validate err contains the +// error, otherwise it is nil. +func TsigVerify(msg []byte, secret, requestMAC string, timersOnly bool) error { + rawsecret, err := fromBase64([]byte(secret)) + if err != nil { + return err + } + // Strip the TSIG from the incoming msg + stripped, tsig, err := stripTsig(msg) + if err != nil { + return err + } + + msgMAC, err := hex.DecodeString(tsig.MAC) + if err != nil { + return err + } + + buf := tsigBuffer(stripped, tsig, requestMAC, timersOnly) + + // Fudge factor works both ways. A message can arrive before it was signed because + // of clock skew. + now := uint64(time.Now().Unix()) + ti := now - tsig.TimeSigned + if now < tsig.TimeSigned { + ti = tsig.TimeSigned - now + } + if uint64(tsig.Fudge) < ti { + return ErrTime + } + + var h hash.Hash + switch strings.ToLower(tsig.Algorithm) { + case HmacMD5: + h = hmac.New(md5.New, rawsecret) + case HmacSHA1: + h = hmac.New(sha1.New, rawsecret) + case HmacSHA256: + h = hmac.New(sha256.New, rawsecret) + case HmacSHA512: + h = hmac.New(sha512.New, rawsecret) + default: + return ErrKeyAlg + } + h.Write(buf) + if !hmac.Equal(h.Sum(nil), msgMAC) { + return ErrSig + } + return nil +} + +// Create a wiredata buffer for the MAC calculation. +func tsigBuffer(msgbuf []byte, rr *TSIG, requestMAC string, timersOnly bool) []byte { + var buf []byte + if rr.TimeSigned == 0 { + rr.TimeSigned = uint64(time.Now().Unix()) + } + if rr.Fudge == 0 { + rr.Fudge = 300 // Standard (RFC) default. + } + + // Replace message ID in header with original ID from TSIG + binary.BigEndian.PutUint16(msgbuf[0:2], rr.OrigId) + + if requestMAC != "" { + m := new(macWireFmt) + m.MACSize = uint16(len(requestMAC) / 2) + m.MAC = requestMAC + buf = make([]byte, len(requestMAC)) // long enough + n, _ := packMacWire(m, buf) + buf = buf[:n] + } + + tsigvar := make([]byte, DefaultMsgSize) + if timersOnly { + tsig := new(timerWireFmt) + tsig.TimeSigned = rr.TimeSigned + tsig.Fudge = rr.Fudge + n, _ := packTimerWire(tsig, tsigvar) + tsigvar = tsigvar[:n] + } else { + tsig := new(tsigWireFmt) + tsig.Name = strings.ToLower(rr.Hdr.Name) + tsig.Class = ClassANY + tsig.Ttl = rr.Hdr.Ttl + tsig.Algorithm = strings.ToLower(rr.Algorithm) + tsig.TimeSigned = rr.TimeSigned + tsig.Fudge = rr.Fudge + tsig.Error = rr.Error + tsig.OtherLen = rr.OtherLen + tsig.OtherData = rr.OtherData + n, _ := packTsigWire(tsig, tsigvar) + tsigvar = tsigvar[:n] + } + + if requestMAC != "" { + x := append(buf, msgbuf...) + buf = append(x, tsigvar...) + } else { + buf = append(msgbuf, tsigvar...) + } + return buf +} + +// Strip the TSIG from the raw message. +func stripTsig(msg []byte) ([]byte, *TSIG, error) { + // Copied from msg.go's Unpack() Header, but modified. + var ( + dh Header + err error + ) + off, tsigoff := 0, 0 + + if dh, off, err = unpackMsgHdr(msg, off); err != nil { + return nil, nil, err + } + if dh.Arcount == 0 { + return nil, nil, ErrNoSig + } + + // Rcode, see msg.go Unpack() + if int(dh.Bits&0xF) == RcodeNotAuth { + return nil, nil, ErrAuth + } + + for i := 0; i < int(dh.Qdcount); i++ { + _, off, err = unpackQuestion(msg, off) + if err != nil { + return nil, nil, err + } + } + + _, off, err = unpackRRslice(int(dh.Ancount), msg, off) + if err != nil { + return nil, nil, err + } + _, off, err = unpackRRslice(int(dh.Nscount), msg, off) + if err != nil { + return nil, nil, err + } + + rr := new(TSIG) + var extra RR + for i := 0; i < int(dh.Arcount); i++ { + tsigoff = off + extra, off, err = UnpackRR(msg, off) + if err != nil { + return nil, nil, err + } + if extra.Header().Rrtype == TypeTSIG { + rr = extra.(*TSIG) + // Adjust Arcount. + arcount := binary.BigEndian.Uint16(msg[10:]) + binary.BigEndian.PutUint16(msg[10:], arcount-1) + break + } + } + if rr == nil { + return nil, nil, ErrNoSig + } + return msg[:tsigoff], rr, nil +} + +// Translate the TSIG time signed into a date. There is no +// need for RFC1982 calculations as this date is 48 bits. +func tsigTimeToString(t uint64) string { + ti := time.Unix(int64(t), 0).UTC() + return ti.Format("20060102150405") +} + +func packTsigWire(tw *tsigWireFmt, msg []byte) (int, error) { + // copied from zmsg.go TSIG packing + // RR_Header + off, err := PackDomainName(tw.Name, msg, 0, nil, false) + if err != nil { + return off, err + } + off, err = packUint16(tw.Class, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(tw.Ttl, msg, off) + if err != nil { + return off, err + } + + off, err = PackDomainName(tw.Algorithm, msg, off, nil, false) + if err != nil { + return off, err + } + off, err = packUint48(tw.TimeSigned, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(tw.Fudge, msg, off) + if err != nil { + return off, err + } + + off, err = packUint16(tw.Error, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(tw.OtherLen, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(tw.OtherData, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func packMacWire(mw *macWireFmt, msg []byte) (int, error) { + off, err := packUint16(mw.MACSize, msg, 0) + if err != nil { + return off, err + } + off, err = packStringHex(mw.MAC, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func packTimerWire(tw *timerWireFmt, msg []byte) (int, error) { + off, err := packUint48(tw.TimeSigned, msg, 0) + if err != nil { + return off, err + } + off, err = packUint16(tw.Fudge, msg, off) + if err != nil { + return off, err + } + return off, nil +} diff --git a/vendor/github.com/miekg/dns/types.go b/vendor/github.com/miekg/dns/types.go new file mode 100644 index 00000000..835f2fe7 --- /dev/null +++ b/vendor/github.com/miekg/dns/types.go @@ -0,0 +1,1434 @@ +package dns + +import ( + "fmt" + "net" + "strconv" + "strings" + "time" +) + +type ( + // Type is a DNS type. + Type uint16 + // Class is a DNS class. + Class uint16 + // Name is a DNS domain name. + Name string +) + +// Packet formats + +// Wire constants and supported types. +const ( + // valid RR_Header.Rrtype and Question.qtype + + TypeNone uint16 = 0 + TypeA uint16 = 1 + TypeNS uint16 = 2 + TypeMD uint16 = 3 + TypeMF uint16 = 4 + TypeCNAME uint16 = 5 + TypeSOA uint16 = 6 + TypeMB uint16 = 7 + TypeMG uint16 = 8 + TypeMR uint16 = 9 + TypeNULL uint16 = 10 + TypePTR uint16 = 12 + TypeHINFO uint16 = 13 + TypeMINFO uint16 = 14 + TypeMX uint16 = 15 + TypeTXT uint16 = 16 + TypeRP uint16 = 17 + TypeAFSDB uint16 = 18 + TypeX25 uint16 = 19 + TypeISDN uint16 = 20 + TypeRT uint16 = 21 + TypeNSAPPTR uint16 = 23 + TypeSIG uint16 = 24 + TypeKEY uint16 = 25 + TypePX uint16 = 26 + TypeGPOS uint16 = 27 + TypeAAAA uint16 = 28 + TypeLOC uint16 = 29 + TypeNXT uint16 = 30 + TypeEID uint16 = 31 + TypeNIMLOC uint16 = 32 + TypeSRV uint16 = 33 + TypeATMA uint16 = 34 + TypeNAPTR uint16 = 35 + TypeKX uint16 = 36 + TypeCERT uint16 = 37 + TypeDNAME uint16 = 39 + TypeOPT uint16 = 41 // EDNS + TypeDS uint16 = 43 + TypeSSHFP uint16 = 44 + TypeRRSIG uint16 = 46 + TypeNSEC uint16 = 47 + TypeDNSKEY uint16 = 48 + TypeDHCID uint16 = 49 + TypeNSEC3 uint16 = 50 + TypeNSEC3PARAM uint16 = 51 + TypeTLSA uint16 = 52 + TypeSMIMEA uint16 = 53 + TypeHIP uint16 = 55 + TypeNINFO uint16 = 56 + TypeRKEY uint16 = 57 + TypeTALINK uint16 = 58 + TypeCDS uint16 = 59 + TypeCDNSKEY uint16 = 60 + TypeOPENPGPKEY uint16 = 61 + TypeCSYNC uint16 = 62 + TypeSPF uint16 = 99 + TypeUINFO uint16 = 100 + TypeUID uint16 = 101 + TypeGID uint16 = 102 + TypeUNSPEC uint16 = 103 + TypeNID uint16 = 104 + TypeL32 uint16 = 105 + TypeL64 uint16 = 106 + TypeLP uint16 = 107 + TypeEUI48 uint16 = 108 + TypeEUI64 uint16 = 109 + TypeURI uint16 = 256 + TypeCAA uint16 = 257 + TypeAVC uint16 = 258 + + TypeTKEY uint16 = 249 + TypeTSIG uint16 = 250 + + // valid Question.Qtype only + TypeIXFR uint16 = 251 + TypeAXFR uint16 = 252 + TypeMAILB uint16 = 253 + TypeMAILA uint16 = 254 + TypeANY uint16 = 255 + + TypeTA uint16 = 32768 + TypeDLV uint16 = 32769 + TypeReserved uint16 = 65535 + + // valid Question.Qclass + ClassINET = 1 + ClassCSNET = 2 + ClassCHAOS = 3 + ClassHESIOD = 4 + ClassNONE = 254 + ClassANY = 255 + + // Message Response Codes, see https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml + RcodeSuccess = 0 // NoError - No Error [DNS] + RcodeFormatError = 1 // FormErr - Format Error [DNS] + RcodeServerFailure = 2 // ServFail - Server Failure [DNS] + RcodeNameError = 3 // NXDomain - Non-Existent Domain [DNS] + RcodeNotImplemented = 4 // NotImp - Not Implemented [DNS] + RcodeRefused = 5 // Refused - Query Refused [DNS] + RcodeYXDomain = 6 // YXDomain - Name Exists when it should not [DNS Update] + RcodeYXRrset = 7 // YXRRSet - RR Set Exists when it should not [DNS Update] + RcodeNXRrset = 8 // NXRRSet - RR Set that should exist does not [DNS Update] + RcodeNotAuth = 9 // NotAuth - Server Not Authoritative for zone [DNS Update] + RcodeNotZone = 10 // NotZone - Name not contained in zone [DNS Update/TSIG] + RcodeBadSig = 16 // BADSIG - TSIG Signature Failure [TSIG] + RcodeBadVers = 16 // BADVERS - Bad OPT Version [EDNS0] + RcodeBadKey = 17 // BADKEY - Key not recognized [TSIG] + RcodeBadTime = 18 // BADTIME - Signature out of time window [TSIG] + RcodeBadMode = 19 // BADMODE - Bad TKEY Mode [TKEY] + RcodeBadName = 20 // BADNAME - Duplicate key name [TKEY] + RcodeBadAlg = 21 // BADALG - Algorithm not supported [TKEY] + RcodeBadTrunc = 22 // BADTRUNC - Bad Truncation [TSIG] + RcodeBadCookie = 23 // BADCOOKIE - Bad/missing Server Cookie [DNS Cookies] + + // Message Opcodes. There is no 3. + OpcodeQuery = 0 + OpcodeIQuery = 1 + OpcodeStatus = 2 + OpcodeNotify = 4 + OpcodeUpdate = 5 +) + +// Header is the wire format for the DNS packet header. +type Header struct { + Id uint16 + Bits uint16 + Qdcount, Ancount, Nscount, Arcount uint16 +} + +const ( + headerSize = 12 + + // Header.Bits + _QR = 1 << 15 // query/response (response=1) + _AA = 1 << 10 // authoritative + _TC = 1 << 9 // truncated + _RD = 1 << 8 // recursion desired + _RA = 1 << 7 // recursion available + _Z = 1 << 6 // Z + _AD = 1 << 5 // authticated data + _CD = 1 << 4 // checking disabled +) + +// Various constants used in the LOC RR, See RFC 1887. +const ( + LOC_EQUATOR = 1 << 31 // RFC 1876, Section 2. + LOC_PRIMEMERIDIAN = 1 << 31 // RFC 1876, Section 2. + LOC_HOURS = 60 * 1000 + LOC_DEGREES = 60 * LOC_HOURS + LOC_ALTITUDEBASE = 100000 +) + +// Different Certificate Types, see RFC 4398, Section 2.1 +const ( + CertPKIX = 1 + iota + CertSPKI + CertPGP + CertIPIX + CertISPKI + CertIPGP + CertACPKIX + CertIACPKIX + CertURI = 253 + CertOID = 254 +) + +// CertTypeToString converts the Cert Type to its string representation. +// See RFC 4398 and RFC 6944. +var CertTypeToString = map[uint16]string{ + CertPKIX: "PKIX", + CertSPKI: "SPKI", + CertPGP: "PGP", + CertIPIX: "IPIX", + CertISPKI: "ISPKI", + CertIPGP: "IPGP", + CertACPKIX: "ACPKIX", + CertIACPKIX: "IACPKIX", + CertURI: "URI", + CertOID: "OID", +} + +//go:generate go run types_generate.go + +// Question holds a DNS question. There can be multiple questions in the +// question section of a message. Usually there is just one. +type Question struct { + Name string `dns:"cdomain-name"` // "cdomain-name" specifies encoding (and may be compressed) + Qtype uint16 + Qclass uint16 +} + +func (q *Question) len(off int, compression map[string]struct{}) int { + l := domainNameLen(q.Name, off, compression, true) + l += 2 + 2 + return l +} + +func (q *Question) String() (s string) { + // prefix with ; (as in dig) + s = ";" + sprintName(q.Name) + "\t" + s += Class(q.Qclass).String() + "\t" + s += " " + Type(q.Qtype).String() + return s +} + +// ANY is a wildcard record. See RFC 1035, Section 3.2.3. ANY +// is named "*" there. +type ANY struct { + Hdr RR_Header + // Does not have any rdata +} + +func (rr *ANY) String() string { return rr.Hdr.String() } + +func (rr *ANY) parse(c *zlexer, origin, file string) *ParseError { + panic("dns: internal error: parse should never be called on ANY") +} + +// NULL RR. See RFC 1035. +type NULL struct { + Hdr RR_Header + Data string `dns:"any"` +} + +func (rr *NULL) String() string { + // There is no presentation format; prefix string with a comment. + return ";" + rr.Hdr.String() + rr.Data +} + +func (rr *NULL) parse(c *zlexer, origin, file string) *ParseError { + panic("dns: internal error: parse should never be called on NULL") +} + +// CNAME RR. See RFC 1034. +type CNAME struct { + Hdr RR_Header + Target string `dns:"cdomain-name"` +} + +func (rr *CNAME) String() string { return rr.Hdr.String() + sprintName(rr.Target) } + +// HINFO RR. See RFC 1034. +type HINFO struct { + Hdr RR_Header + Cpu string + Os string +} + +func (rr *HINFO) String() string { + return rr.Hdr.String() + sprintTxt([]string{rr.Cpu, rr.Os}) +} + +// MB RR. See RFC 1035. +type MB struct { + Hdr RR_Header + Mb string `dns:"cdomain-name"` +} + +func (rr *MB) String() string { return rr.Hdr.String() + sprintName(rr.Mb) } + +// MG RR. See RFC 1035. +type MG struct { + Hdr RR_Header + Mg string `dns:"cdomain-name"` +} + +func (rr *MG) String() string { return rr.Hdr.String() + sprintName(rr.Mg) } + +// MINFO RR. See RFC 1035. +type MINFO struct { + Hdr RR_Header + Rmail string `dns:"cdomain-name"` + Email string `dns:"cdomain-name"` +} + +func (rr *MINFO) String() string { + return rr.Hdr.String() + sprintName(rr.Rmail) + " " + sprintName(rr.Email) +} + +// MR RR. See RFC 1035. +type MR struct { + Hdr RR_Header + Mr string `dns:"cdomain-name"` +} + +func (rr *MR) String() string { + return rr.Hdr.String() + sprintName(rr.Mr) +} + +// MF RR. See RFC 1035. +type MF struct { + Hdr RR_Header + Mf string `dns:"cdomain-name"` +} + +func (rr *MF) String() string { + return rr.Hdr.String() + sprintName(rr.Mf) +} + +// MD RR. See RFC 1035. +type MD struct { + Hdr RR_Header + Md string `dns:"cdomain-name"` +} + +func (rr *MD) String() string { + return rr.Hdr.String() + sprintName(rr.Md) +} + +// MX RR. See RFC 1035. +type MX struct { + Hdr RR_Header + Preference uint16 + Mx string `dns:"cdomain-name"` +} + +func (rr *MX) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Mx) +} + +// AFSDB RR. See RFC 1183. +type AFSDB struct { + Hdr RR_Header + Subtype uint16 + Hostname string `dns:"domain-name"` +} + +func (rr *AFSDB) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Subtype)) + " " + sprintName(rr.Hostname) +} + +// X25 RR. See RFC 1183, Section 3.1. +type X25 struct { + Hdr RR_Header + PSDNAddress string +} + +func (rr *X25) String() string { + return rr.Hdr.String() + rr.PSDNAddress +} + +// RT RR. See RFC 1183, Section 3.3. +type RT struct { + Hdr RR_Header + Preference uint16 + Host string `dns:"domain-name"` // RFC 3597 prohibits compressing records not defined in RFC 1035. +} + +func (rr *RT) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Host) +} + +// NS RR. See RFC 1035. +type NS struct { + Hdr RR_Header + Ns string `dns:"cdomain-name"` +} + +func (rr *NS) String() string { + return rr.Hdr.String() + sprintName(rr.Ns) +} + +// PTR RR. See RFC 1035. +type PTR struct { + Hdr RR_Header + Ptr string `dns:"cdomain-name"` +} + +func (rr *PTR) String() string { + return rr.Hdr.String() + sprintName(rr.Ptr) +} + +// RP RR. See RFC 1138, Section 2.2. +type RP struct { + Hdr RR_Header + Mbox string `dns:"domain-name"` + Txt string `dns:"domain-name"` +} + +func (rr *RP) String() string { + return rr.Hdr.String() + sprintName(rr.Mbox) + " " + sprintName(rr.Txt) +} + +// SOA RR. See RFC 1035. +type SOA struct { + Hdr RR_Header + Ns string `dns:"cdomain-name"` + Mbox string `dns:"cdomain-name"` + Serial uint32 + Refresh uint32 + Retry uint32 + Expire uint32 + Minttl uint32 +} + +func (rr *SOA) String() string { + return rr.Hdr.String() + sprintName(rr.Ns) + " " + sprintName(rr.Mbox) + + " " + strconv.FormatInt(int64(rr.Serial), 10) + + " " + strconv.FormatInt(int64(rr.Refresh), 10) + + " " + strconv.FormatInt(int64(rr.Retry), 10) + + " " + strconv.FormatInt(int64(rr.Expire), 10) + + " " + strconv.FormatInt(int64(rr.Minttl), 10) +} + +// TXT RR. See RFC 1035. +type TXT struct { + Hdr RR_Header + Txt []string `dns:"txt"` +} + +func (rr *TXT) String() string { return rr.Hdr.String() + sprintTxt(rr.Txt) } + +func sprintName(s string) string { + var dst strings.Builder + dst.Grow(len(s)) + for i := 0; i < len(s); { + if i+1 < len(s) && s[i] == '\\' && s[i+1] == '.' { + dst.WriteString(s[i : i+2]) + i += 2 + continue + } + + b, n := nextByte(s, i) + switch { + case n == 0: + i++ // dangling back slash + case b == '.': + dst.WriteByte('.') + default: + writeDomainNameByte(&dst, b) + } + i += n + } + return dst.String() +} + +func sprintTxtOctet(s string) string { + var dst strings.Builder + dst.Grow(2 + len(s)) + dst.WriteByte('"') + for i := 0; i < len(s); { + if i+1 < len(s) && s[i] == '\\' && s[i+1] == '.' { + dst.WriteString(s[i : i+2]) + i += 2 + continue + } + + b, n := nextByte(s, i) + switch { + case n == 0: + i++ // dangling back slash + case b == '.': + dst.WriteByte('.') + case b < ' ' || b > '~': + dst.WriteString(escapeByte(b)) + default: + dst.WriteByte(b) + } + i += n + } + dst.WriteByte('"') + return dst.String() +} + +func sprintTxt(txt []string) string { + var out strings.Builder + for i, s := range txt { + out.Grow(3 + len(s)) + if i > 0 { + out.WriteString(` "`) + } else { + out.WriteByte('"') + } + for j := 0; j < len(s); { + b, n := nextByte(s, j) + if n == 0 { + break + } + writeTXTStringByte(&out, b) + j += n + } + out.WriteByte('"') + } + return out.String() +} + +func writeDomainNameByte(s *strings.Builder, b byte) { + switch b { + case '.', ' ', '\'', '@', ';', '(', ')': // additional chars to escape + s.WriteByte('\\') + s.WriteByte(b) + default: + writeTXTStringByte(s, b) + } +} + +func writeTXTStringByte(s *strings.Builder, b byte) { + switch { + case b == '"' || b == '\\': + s.WriteByte('\\') + s.WriteByte(b) + case b < ' ' || b > '~': + s.WriteString(escapeByte(b)) + default: + s.WriteByte(b) + } +} + +const ( + escapedByteSmall = "" + + `\000\001\002\003\004\005\006\007\008\009` + + `\010\011\012\013\014\015\016\017\018\019` + + `\020\021\022\023\024\025\026\027\028\029` + + `\030\031` + escapedByteLarge = `\127\128\129` + + `\130\131\132\133\134\135\136\137\138\139` + + `\140\141\142\143\144\145\146\147\148\149` + + `\150\151\152\153\154\155\156\157\158\159` + + `\160\161\162\163\164\165\166\167\168\169` + + `\170\171\172\173\174\175\176\177\178\179` + + `\180\181\182\183\184\185\186\187\188\189` + + `\190\191\192\193\194\195\196\197\198\199` + + `\200\201\202\203\204\205\206\207\208\209` + + `\210\211\212\213\214\215\216\217\218\219` + + `\220\221\222\223\224\225\226\227\228\229` + + `\230\231\232\233\234\235\236\237\238\239` + + `\240\241\242\243\244\245\246\247\248\249` + + `\250\251\252\253\254\255` +) + +// escapeByte returns the \DDD escaping of b which must +// satisfy b < ' ' || b > '~'. +func escapeByte(b byte) string { + if b < ' ' { + return escapedByteSmall[b*4 : b*4+4] + } + + b -= '~' + 1 + // The cast here is needed as b*4 may overflow byte. + return escapedByteLarge[int(b)*4 : int(b)*4+4] +} + +func nextByte(s string, offset int) (byte, int) { + if offset >= len(s) { + return 0, 0 + } + if s[offset] != '\\' { + // not an escape sequence + return s[offset], 1 + } + switch len(s) - offset { + case 1: // dangling escape + return 0, 0 + case 2, 3: // too short to be \ddd + default: // maybe \ddd + if isDigit(s[offset+1]) && isDigit(s[offset+2]) && isDigit(s[offset+3]) { + return dddStringToByte(s[offset+1:]), 4 + } + } + // not \ddd, just an RFC 1035 "quoted" character + return s[offset+1], 2 +} + +// SPF RR. See RFC 4408, Section 3.1.1. +type SPF struct { + Hdr RR_Header + Txt []string `dns:"txt"` +} + +func (rr *SPF) String() string { return rr.Hdr.String() + sprintTxt(rr.Txt) } + +// AVC RR. See https://www.iana.org/assignments/dns-parameters/AVC/avc-completed-template. +type AVC struct { + Hdr RR_Header + Txt []string `dns:"txt"` +} + +func (rr *AVC) String() string { return rr.Hdr.String() + sprintTxt(rr.Txt) } + +// SRV RR. See RFC 2782. +type SRV struct { + Hdr RR_Header + Priority uint16 + Weight uint16 + Port uint16 + Target string `dns:"domain-name"` +} + +func (rr *SRV) String() string { + return rr.Hdr.String() + + strconv.Itoa(int(rr.Priority)) + " " + + strconv.Itoa(int(rr.Weight)) + " " + + strconv.Itoa(int(rr.Port)) + " " + sprintName(rr.Target) +} + +// NAPTR RR. See RFC 2915. +type NAPTR struct { + Hdr RR_Header + Order uint16 + Preference uint16 + Flags string + Service string + Regexp string + Replacement string `dns:"domain-name"` +} + +func (rr *NAPTR) String() string { + return rr.Hdr.String() + + strconv.Itoa(int(rr.Order)) + " " + + strconv.Itoa(int(rr.Preference)) + " " + + "\"" + rr.Flags + "\" " + + "\"" + rr.Service + "\" " + + "\"" + rr.Regexp + "\" " + + rr.Replacement +} + +// CERT RR. See RFC 4398. +type CERT struct { + Hdr RR_Header + Type uint16 + KeyTag uint16 + Algorithm uint8 + Certificate string `dns:"base64"` +} + +func (rr *CERT) String() string { + var ( + ok bool + certtype, algorithm string + ) + if certtype, ok = CertTypeToString[rr.Type]; !ok { + certtype = strconv.Itoa(int(rr.Type)) + } + if algorithm, ok = AlgorithmToString[rr.Algorithm]; !ok { + algorithm = strconv.Itoa(int(rr.Algorithm)) + } + return rr.Hdr.String() + certtype + + " " + strconv.Itoa(int(rr.KeyTag)) + + " " + algorithm + + " " + rr.Certificate +} + +// DNAME RR. See RFC 2672. +type DNAME struct { + Hdr RR_Header + Target string `dns:"domain-name"` +} + +func (rr *DNAME) String() string { + return rr.Hdr.String() + sprintName(rr.Target) +} + +// A RR. See RFC 1035. +type A struct { + Hdr RR_Header + A net.IP `dns:"a"` +} + +func (rr *A) String() string { + if rr.A == nil { + return rr.Hdr.String() + } + return rr.Hdr.String() + rr.A.String() +} + +// AAAA RR. See RFC 3596. +type AAAA struct { + Hdr RR_Header + AAAA net.IP `dns:"aaaa"` +} + +func (rr *AAAA) String() string { + if rr.AAAA == nil { + return rr.Hdr.String() + } + return rr.Hdr.String() + rr.AAAA.String() +} + +// PX RR. See RFC 2163. +type PX struct { + Hdr RR_Header + Preference uint16 + Map822 string `dns:"domain-name"` + Mapx400 string `dns:"domain-name"` +} + +func (rr *PX) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Map822) + " " + sprintName(rr.Mapx400) +} + +// GPOS RR. See RFC 1712. +type GPOS struct { + Hdr RR_Header + Longitude string + Latitude string + Altitude string +} + +func (rr *GPOS) String() string { + return rr.Hdr.String() + rr.Longitude + " " + rr.Latitude + " " + rr.Altitude +} + +// LOC RR. See RFC RFC 1876. +type LOC struct { + Hdr RR_Header + Version uint8 + Size uint8 + HorizPre uint8 + VertPre uint8 + Latitude uint32 + Longitude uint32 + Altitude uint32 +} + +// cmToM takes a cm value expressed in RFC1876 SIZE mantissa/exponent +// format and returns a string in m (two decimals for the cm) +func cmToM(m, e uint8) string { + if e < 2 { + if e == 1 { + m *= 10 + } + + return fmt.Sprintf("0.%02d", m) + } + + s := fmt.Sprintf("%d", m) + for e > 2 { + s += "0" + e-- + } + return s +} + +func (rr *LOC) String() string { + s := rr.Hdr.String() + + lat := rr.Latitude + ns := "N" + if lat > LOC_EQUATOR { + lat = lat - LOC_EQUATOR + } else { + ns = "S" + lat = LOC_EQUATOR - lat + } + h := lat / LOC_DEGREES + lat = lat % LOC_DEGREES + m := lat / LOC_HOURS + lat = lat % LOC_HOURS + s += fmt.Sprintf("%02d %02d %0.3f %s ", h, m, float64(lat)/1000, ns) + + lon := rr.Longitude + ew := "E" + if lon > LOC_PRIMEMERIDIAN { + lon = lon - LOC_PRIMEMERIDIAN + } else { + ew = "W" + lon = LOC_PRIMEMERIDIAN - lon + } + h = lon / LOC_DEGREES + lon = lon % LOC_DEGREES + m = lon / LOC_HOURS + lon = lon % LOC_HOURS + s += fmt.Sprintf("%02d %02d %0.3f %s ", h, m, float64(lon)/1000, ew) + + var alt = float64(rr.Altitude) / 100 + alt -= LOC_ALTITUDEBASE + if rr.Altitude%100 != 0 { + s += fmt.Sprintf("%.2fm ", alt) + } else { + s += fmt.Sprintf("%.0fm ", alt) + } + + s += cmToM(rr.Size&0xf0>>4, rr.Size&0x0f) + "m " + s += cmToM(rr.HorizPre&0xf0>>4, rr.HorizPre&0x0f) + "m " + s += cmToM(rr.VertPre&0xf0>>4, rr.VertPre&0x0f) + "m" + + return s +} + +// SIG RR. See RFC 2535. The SIG RR is identical to RRSIG and nowadays only used for SIG(0), See RFC 2931. +type SIG struct { + RRSIG +} + +// RRSIG RR. See RFC 4034 and RFC 3755. +type RRSIG struct { + Hdr RR_Header + TypeCovered uint16 + Algorithm uint8 + Labels uint8 + OrigTtl uint32 + Expiration uint32 + Inception uint32 + KeyTag uint16 + SignerName string `dns:"domain-name"` + Signature string `dns:"base64"` +} + +func (rr *RRSIG) String() string { + s := rr.Hdr.String() + s += Type(rr.TypeCovered).String() + s += " " + strconv.Itoa(int(rr.Algorithm)) + + " " + strconv.Itoa(int(rr.Labels)) + + " " + strconv.FormatInt(int64(rr.OrigTtl), 10) + + " " + TimeToString(rr.Expiration) + + " " + TimeToString(rr.Inception) + + " " + strconv.Itoa(int(rr.KeyTag)) + + " " + sprintName(rr.SignerName) + + " " + rr.Signature + return s +} + +// NSEC RR. See RFC 4034 and RFC 3755. +type NSEC struct { + Hdr RR_Header + NextDomain string `dns:"domain-name"` + TypeBitMap []uint16 `dns:"nsec"` +} + +func (rr *NSEC) String() string { + s := rr.Hdr.String() + sprintName(rr.NextDomain) + for _, t := range rr.TypeBitMap { + s += " " + Type(t).String() + } + return s +} + +func (rr *NSEC) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.NextDomain, off+l, compression, false) + lastwindow := uint32(2 ^ 32 + 1) + for _, t := range rr.TypeBitMap { + window := t / 256 + if uint32(window) != lastwindow { + l += 1 + 32 + } + lastwindow = uint32(window) + } + return l +} + +// DLV RR. See RFC 4431. +type DLV struct{ DS } + +// CDS RR. See RFC 7344. +type CDS struct{ DS } + +// DS RR. See RFC 4034 and RFC 3658. +type DS struct { + Hdr RR_Header + KeyTag uint16 + Algorithm uint8 + DigestType uint8 + Digest string `dns:"hex"` +} + +func (rr *DS) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.KeyTag)) + + " " + strconv.Itoa(int(rr.Algorithm)) + + " " + strconv.Itoa(int(rr.DigestType)) + + " " + strings.ToUpper(rr.Digest) +} + +// KX RR. See RFC 2230. +type KX struct { + Hdr RR_Header + Preference uint16 + Exchanger string `dns:"domain-name"` +} + +func (rr *KX) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + + " " + sprintName(rr.Exchanger) +} + +// TA RR. See http://www.watson.org/~weiler/INI1999-19.pdf. +type TA struct { + Hdr RR_Header + KeyTag uint16 + Algorithm uint8 + DigestType uint8 + Digest string `dns:"hex"` +} + +func (rr *TA) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.KeyTag)) + + " " + strconv.Itoa(int(rr.Algorithm)) + + " " + strconv.Itoa(int(rr.DigestType)) + + " " + strings.ToUpper(rr.Digest) +} + +// TALINK RR. See https://www.iana.org/assignments/dns-parameters/TALINK/talink-completed-template. +type TALINK struct { + Hdr RR_Header + PreviousName string `dns:"domain-name"` + NextName string `dns:"domain-name"` +} + +func (rr *TALINK) String() string { + return rr.Hdr.String() + + sprintName(rr.PreviousName) + " " + sprintName(rr.NextName) +} + +// SSHFP RR. See RFC RFC 4255. +type SSHFP struct { + Hdr RR_Header + Algorithm uint8 + Type uint8 + FingerPrint string `dns:"hex"` +} + +func (rr *SSHFP) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Algorithm)) + + " " + strconv.Itoa(int(rr.Type)) + + " " + strings.ToUpper(rr.FingerPrint) +} + +// KEY RR. See RFC RFC 2535. +type KEY struct { + DNSKEY +} + +// CDNSKEY RR. See RFC 7344. +type CDNSKEY struct { + DNSKEY +} + +// DNSKEY RR. See RFC 4034 and RFC 3755. +type DNSKEY struct { + Hdr RR_Header + Flags uint16 + Protocol uint8 + Algorithm uint8 + PublicKey string `dns:"base64"` +} + +func (rr *DNSKEY) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Flags)) + + " " + strconv.Itoa(int(rr.Protocol)) + + " " + strconv.Itoa(int(rr.Algorithm)) + + " " + rr.PublicKey +} + +// RKEY RR. See https://www.iana.org/assignments/dns-parameters/RKEY/rkey-completed-template. +type RKEY struct { + Hdr RR_Header + Flags uint16 + Protocol uint8 + Algorithm uint8 + PublicKey string `dns:"base64"` +} + +func (rr *RKEY) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Flags)) + + " " + strconv.Itoa(int(rr.Protocol)) + + " " + strconv.Itoa(int(rr.Algorithm)) + + " " + rr.PublicKey +} + +// NSAPPTR RR. See RFC 1348. +type NSAPPTR struct { + Hdr RR_Header + Ptr string `dns:"domain-name"` +} + +func (rr *NSAPPTR) String() string { return rr.Hdr.String() + sprintName(rr.Ptr) } + +// NSEC3 RR. See RFC 5155. +type NSEC3 struct { + Hdr RR_Header + Hash uint8 + Flags uint8 + Iterations uint16 + SaltLength uint8 + Salt string `dns:"size-hex:SaltLength"` + HashLength uint8 + NextDomain string `dns:"size-base32:HashLength"` + TypeBitMap []uint16 `dns:"nsec"` +} + +func (rr *NSEC3) String() string { + s := rr.Hdr.String() + s += strconv.Itoa(int(rr.Hash)) + + " " + strconv.Itoa(int(rr.Flags)) + + " " + strconv.Itoa(int(rr.Iterations)) + + " " + saltToString(rr.Salt) + + " " + rr.NextDomain + for _, t := range rr.TypeBitMap { + s += " " + Type(t).String() + } + return s +} + +func (rr *NSEC3) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 6 + len(rr.Salt)/2 + 1 + len(rr.NextDomain) + 1 + lastwindow := uint32(2 ^ 32 + 1) + for _, t := range rr.TypeBitMap { + window := t / 256 + if uint32(window) != lastwindow { + l += 1 + 32 + } + lastwindow = uint32(window) + } + return l +} + +// NSEC3PARAM RR. See RFC 5155. +type NSEC3PARAM struct { + Hdr RR_Header + Hash uint8 + Flags uint8 + Iterations uint16 + SaltLength uint8 + Salt string `dns:"size-hex:SaltLength"` +} + +func (rr *NSEC3PARAM) String() string { + s := rr.Hdr.String() + s += strconv.Itoa(int(rr.Hash)) + + " " + strconv.Itoa(int(rr.Flags)) + + " " + strconv.Itoa(int(rr.Iterations)) + + " " + saltToString(rr.Salt) + return s +} + +// TKEY RR. See RFC 2930. +type TKEY struct { + Hdr RR_Header + Algorithm string `dns:"domain-name"` + Inception uint32 + Expiration uint32 + Mode uint16 + Error uint16 + KeySize uint16 + Key string `dns:"size-hex:KeySize"` + OtherLen uint16 + OtherData string `dns:"size-hex:OtherLen"` +} + +// TKEY has no official presentation format, but this will suffice. +func (rr *TKEY) String() string { + s := ";" + rr.Hdr.String() + + " " + rr.Algorithm + + " " + TimeToString(rr.Inception) + + " " + TimeToString(rr.Expiration) + + " " + strconv.Itoa(int(rr.Mode)) + + " " + strconv.Itoa(int(rr.Error)) + + " " + strconv.Itoa(int(rr.KeySize)) + + " " + rr.Key + + " " + strconv.Itoa(int(rr.OtherLen)) + + " " + rr.OtherData + return s +} + +// RFC3597 represents an unknown/generic RR. See RFC 3597. +type RFC3597 struct { + Hdr RR_Header + Rdata string `dns:"hex"` +} + +func (rr *RFC3597) String() string { + // Let's call it a hack + s := rfc3597Header(rr.Hdr) + + s += "\\# " + strconv.Itoa(len(rr.Rdata)/2) + " " + rr.Rdata + return s +} + +func rfc3597Header(h RR_Header) string { + var s string + + s += sprintName(h.Name) + "\t" + s += strconv.FormatInt(int64(h.Ttl), 10) + "\t" + s += "CLASS" + strconv.Itoa(int(h.Class)) + "\t" + s += "TYPE" + strconv.Itoa(int(h.Rrtype)) + "\t" + return s +} + +// URI RR. See RFC 7553. +type URI struct { + Hdr RR_Header + Priority uint16 + Weight uint16 + Target string `dns:"octet"` +} + +func (rr *URI) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Priority)) + + " " + strconv.Itoa(int(rr.Weight)) + " " + sprintTxtOctet(rr.Target) +} + +// DHCID RR. See RFC 4701. +type DHCID struct { + Hdr RR_Header + Digest string `dns:"base64"` +} + +func (rr *DHCID) String() string { return rr.Hdr.String() + rr.Digest } + +// TLSA RR. See RFC 6698. +type TLSA struct { + Hdr RR_Header + Usage uint8 + Selector uint8 + MatchingType uint8 + Certificate string `dns:"hex"` +} + +func (rr *TLSA) String() string { + return rr.Hdr.String() + + strconv.Itoa(int(rr.Usage)) + + " " + strconv.Itoa(int(rr.Selector)) + + " " + strconv.Itoa(int(rr.MatchingType)) + + " " + rr.Certificate +} + +// SMIMEA RR. See RFC 8162. +type SMIMEA struct { + Hdr RR_Header + Usage uint8 + Selector uint8 + MatchingType uint8 + Certificate string `dns:"hex"` +} + +func (rr *SMIMEA) String() string { + s := rr.Hdr.String() + + strconv.Itoa(int(rr.Usage)) + + " " + strconv.Itoa(int(rr.Selector)) + + " " + strconv.Itoa(int(rr.MatchingType)) + + // Every Nth char needs a space on this output. If we output + // this as one giant line, we can't read it can in because in some cases + // the cert length overflows scan.maxTok (2048). + sx := splitN(rr.Certificate, 1024) // conservative value here + s += " " + strings.Join(sx, " ") + return s +} + +// HIP RR. See RFC 8005. +type HIP struct { + Hdr RR_Header + HitLength uint8 + PublicKeyAlgorithm uint8 + PublicKeyLength uint16 + Hit string `dns:"size-hex:HitLength"` + PublicKey string `dns:"size-base64:PublicKeyLength"` + RendezvousServers []string `dns:"domain-name"` +} + +func (rr *HIP) String() string { + s := rr.Hdr.String() + + strconv.Itoa(int(rr.PublicKeyAlgorithm)) + + " " + rr.Hit + + " " + rr.PublicKey + for _, d := range rr.RendezvousServers { + s += " " + sprintName(d) + } + return s +} + +// NINFO RR. See https://www.iana.org/assignments/dns-parameters/NINFO/ninfo-completed-template. +type NINFO struct { + Hdr RR_Header + ZSData []string `dns:"txt"` +} + +func (rr *NINFO) String() string { return rr.Hdr.String() + sprintTxt(rr.ZSData) } + +// NID RR. See RFC RFC 6742. +type NID struct { + Hdr RR_Header + Preference uint16 + NodeID uint64 +} + +func (rr *NID) String() string { + s := rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + node := fmt.Sprintf("%0.16x", rr.NodeID) + s += " " + node[0:4] + ":" + node[4:8] + ":" + node[8:12] + ":" + node[12:16] + return s +} + +// L32 RR, See RFC 6742. +type L32 struct { + Hdr RR_Header + Preference uint16 + Locator32 net.IP `dns:"a"` +} + +func (rr *L32) String() string { + if rr.Locator32 == nil { + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + } + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + + " " + rr.Locator32.String() +} + +// L64 RR, See RFC 6742. +type L64 struct { + Hdr RR_Header + Preference uint16 + Locator64 uint64 +} + +func (rr *L64) String() string { + s := rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + node := fmt.Sprintf("%0.16X", rr.Locator64) + s += " " + node[0:4] + ":" + node[4:8] + ":" + node[8:12] + ":" + node[12:16] + return s +} + +// LP RR. See RFC 6742. +type LP struct { + Hdr RR_Header + Preference uint16 + Fqdn string `dns:"domain-name"` +} + +func (rr *LP) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Fqdn) +} + +// EUI48 RR. See RFC 7043. +type EUI48 struct { + Hdr RR_Header + Address uint64 `dns:"uint48"` +} + +func (rr *EUI48) String() string { return rr.Hdr.String() + euiToString(rr.Address, 48) } + +// EUI64 RR. See RFC 7043. +type EUI64 struct { + Hdr RR_Header + Address uint64 +} + +func (rr *EUI64) String() string { return rr.Hdr.String() + euiToString(rr.Address, 64) } + +// CAA RR. See RFC 6844. +type CAA struct { + Hdr RR_Header + Flag uint8 + Tag string + Value string `dns:"octet"` +} + +func (rr *CAA) String() string { + return rr.Hdr.String() + strconv.Itoa(int(rr.Flag)) + " " + rr.Tag + " " + sprintTxtOctet(rr.Value) +} + +// UID RR. Deprecated, IANA-Reserved. +type UID struct { + Hdr RR_Header + Uid uint32 +} + +func (rr *UID) String() string { return rr.Hdr.String() + strconv.FormatInt(int64(rr.Uid), 10) } + +// GID RR. Deprecated, IANA-Reserved. +type GID struct { + Hdr RR_Header + Gid uint32 +} + +func (rr *GID) String() string { return rr.Hdr.String() + strconv.FormatInt(int64(rr.Gid), 10) } + +// UINFO RR. Deprecated, IANA-Reserved. +type UINFO struct { + Hdr RR_Header + Uinfo string +} + +func (rr *UINFO) String() string { return rr.Hdr.String() + sprintTxt([]string{rr.Uinfo}) } + +// EID RR. See http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt. +type EID struct { + Hdr RR_Header + Endpoint string `dns:"hex"` +} + +func (rr *EID) String() string { return rr.Hdr.String() + strings.ToUpper(rr.Endpoint) } + +// NIMLOC RR. See http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt. +type NIMLOC struct { + Hdr RR_Header + Locator string `dns:"hex"` +} + +func (rr *NIMLOC) String() string { return rr.Hdr.String() + strings.ToUpper(rr.Locator) } + +// OPENPGPKEY RR. See RFC 7929. +type OPENPGPKEY struct { + Hdr RR_Header + PublicKey string `dns:"base64"` +} + +func (rr *OPENPGPKEY) String() string { return rr.Hdr.String() + rr.PublicKey } + +// CSYNC RR. See RFC 7477. +type CSYNC struct { + Hdr RR_Header + Serial uint32 + Flags uint16 + TypeBitMap []uint16 `dns:"nsec"` +} + +func (rr *CSYNC) String() string { + s := rr.Hdr.String() + strconv.FormatInt(int64(rr.Serial), 10) + " " + strconv.Itoa(int(rr.Flags)) + + for _, t := range rr.TypeBitMap { + s += " " + Type(t).String() + } + return s +} + +func (rr *CSYNC) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 4 + 2 + lastwindow := uint32(2 ^ 32 + 1) + for _, t := range rr.TypeBitMap { + window := t / 256 + if uint32(window) != lastwindow { + l += 1 + 32 + } + lastwindow = uint32(window) + } + return l +} + +// TimeToString translates the RRSIG's incep. and expir. times to the +// string representation used when printing the record. +// It takes serial arithmetic (RFC 1982) into account. +func TimeToString(t uint32) string { + mod := (int64(t)-time.Now().Unix())/year68 - 1 + if mod < 0 { + mod = 0 + } + ti := time.Unix(int64(t)-mod*year68, 0).UTC() + return ti.Format("20060102150405") +} + +// StringToTime translates the RRSIG's incep. and expir. times from +// string values like "20110403154150" to an 32 bit integer. +// It takes serial arithmetic (RFC 1982) into account. +func StringToTime(s string) (uint32, error) { + t, err := time.Parse("20060102150405", s) + if err != nil { + return 0, err + } + mod := t.Unix()/year68 - 1 + if mod < 0 { + mod = 0 + } + return uint32(t.Unix() - mod*year68), nil +} + +// saltToString converts a NSECX salt to uppercase and returns "-" when it is empty. +func saltToString(s string) string { + if len(s) == 0 { + return "-" + } + return strings.ToUpper(s) +} + +func euiToString(eui uint64, bits int) (hex string) { + switch bits { + case 64: + hex = fmt.Sprintf("%16.16x", eui) + hex = hex[0:2] + "-" + hex[2:4] + "-" + hex[4:6] + "-" + hex[6:8] + + "-" + hex[8:10] + "-" + hex[10:12] + "-" + hex[12:14] + "-" + hex[14:16] + case 48: + hex = fmt.Sprintf("%12.12x", eui) + hex = hex[0:2] + "-" + hex[2:4] + "-" + hex[4:6] + "-" + hex[6:8] + + "-" + hex[8:10] + "-" + hex[10:12] + } + return +} + +// copyIP returns a copy of ip. +func copyIP(ip net.IP) net.IP { + p := make(net.IP, len(ip)) + copy(p, ip) + return p +} + +// SplitN splits a string into N sized string chunks. +// This might become an exported function once. +func splitN(s string, n int) []string { + if len(s) < n { + return []string{s} + } + sx := []string{} + p, i := 0, n + for { + if i <= len(s) { + sx = append(sx, s[p:i]) + } else { + sx = append(sx, s[p:]) + break + + } + p, i = p+n, i+n + } + + return sx +} diff --git a/vendor/github.com/miekg/dns/types_generate.go b/vendor/github.com/miekg/dns/types_generate.go new file mode 100644 index 00000000..cbb4a00c --- /dev/null +++ b/vendor/github.com/miekg/dns/types_generate.go @@ -0,0 +1,287 @@ +//+build ignore + +// types_generate.go is meant to run with go generate. It will use +// go/{importer,types} to track down all the RR struct types. Then for each type +// it will generate conversion tables (TypeToRR and TypeToString) and banal +// methods (len, Header, copy) based on the struct tags. The generated source is +// written to ztypes.go, and is meant to be checked into git. +package main + +import ( + "bytes" + "fmt" + "go/format" + "go/importer" + "go/types" + "log" + "os" + "strings" + "text/template" +) + +var skipLen = map[string]struct{}{ + "NSEC": {}, + "NSEC3": {}, + "OPT": {}, + "CSYNC": {}, +} + +var packageHdr = ` +// Code generated by "go run types_generate.go"; DO NOT EDIT. + +package dns + +import ( + "encoding/base64" + "net" +) + +` + +var TypeToRR = template.Must(template.New("TypeToRR").Parse(` +// TypeToRR is a map of constructors for each RR type. +var TypeToRR = map[uint16]func() RR{ +{{range .}}{{if ne . "RFC3597"}} Type{{.}}: func() RR { return new({{.}}) }, +{{end}}{{end}} } + +`)) + +var typeToString = template.Must(template.New("typeToString").Parse(` +// TypeToString is a map of strings for each RR type. +var TypeToString = map[uint16]string{ +{{range .}}{{if ne . "NSAPPTR"}} Type{{.}}: "{{.}}", +{{end}}{{end}} TypeNSAPPTR: "NSAP-PTR", +} + +`)) + +var headerFunc = template.Must(template.New("headerFunc").Parse(` +{{range .}} func (rr *{{.}}) Header() *RR_Header { return &rr.Hdr } +{{end}} + +`)) + +// getTypeStruct will take a type and the package scope, and return the +// (innermost) struct if the type is considered a RR type (currently defined as +// those structs beginning with a RR_Header, could be redefined as implementing +// the RR interface). The bool return value indicates if embedded structs were +// resolved. +func getTypeStruct(t types.Type, scope *types.Scope) (*types.Struct, bool) { + st, ok := t.Underlying().(*types.Struct) + if !ok { + return nil, false + } + if st.Field(0).Type() == scope.Lookup("RR_Header").Type() { + return st, false + } + if st.Field(0).Anonymous() { + st, _ := getTypeStruct(st.Field(0).Type(), scope) + return st, true + } + return nil, false +} + +func main() { + // Import and type-check the package + pkg, err := importer.Default().Import("github.com/miekg/dns") + fatalIfErr(err) + scope := pkg.Scope() + + // Collect constants like TypeX + var numberedTypes []string + for _, name := range scope.Names() { + o := scope.Lookup(name) + if o == nil || !o.Exported() { + continue + } + b, ok := o.Type().(*types.Basic) + if !ok || b.Kind() != types.Uint16 { + continue + } + if !strings.HasPrefix(o.Name(), "Type") { + continue + } + name := strings.TrimPrefix(o.Name(), "Type") + if name == "PrivateRR" { + continue + } + numberedTypes = append(numberedTypes, name) + } + + // Collect actual types (*X) + var namedTypes []string + for _, name := range scope.Names() { + o := scope.Lookup(name) + if o == nil || !o.Exported() { + continue + } + if st, _ := getTypeStruct(o.Type(), scope); st == nil { + continue + } + if name == "PrivateRR" { + continue + } + + // Check if corresponding TypeX exists + if scope.Lookup("Type"+o.Name()) == nil && o.Name() != "RFC3597" { + log.Fatalf("Constant Type%s does not exist.", o.Name()) + } + + namedTypes = append(namedTypes, o.Name()) + } + + b := &bytes.Buffer{} + b.WriteString(packageHdr) + + // Generate TypeToRR + fatalIfErr(TypeToRR.Execute(b, namedTypes)) + + // Generate typeToString + fatalIfErr(typeToString.Execute(b, numberedTypes)) + + // Generate headerFunc + fatalIfErr(headerFunc.Execute(b, namedTypes)) + + // Generate len() + fmt.Fprint(b, "// len() functions\n") + for _, name := range namedTypes { + if _, ok := skipLen[name]; ok { + continue + } + o := scope.Lookup(name) + st, isEmbedded := getTypeStruct(o.Type(), scope) + if isEmbedded { + continue + } + fmt.Fprintf(b, "func (rr *%s) len(off int, compression map[string]struct{}) int {\n", name) + fmt.Fprintf(b, "l := rr.Hdr.len(off, compression)\n") + for i := 1; i < st.NumFields(); i++ { + o := func(s string) { fmt.Fprintf(b, s, st.Field(i).Name()) } + + if _, ok := st.Field(i).Type().(*types.Slice); ok { + switch st.Tag(i) { + case `dns:"-"`: + // ignored + case `dns:"cdomain-name"`: + o("for _, x := range rr.%s { l += domainNameLen(x, off+l, compression, true) }\n") + case `dns:"domain-name"`: + o("for _, x := range rr.%s { l += domainNameLen(x, off+l, compression, false) }\n") + case `dns:"txt"`: + o("for _, x := range rr.%s { l += len(x) + 1 }\n") + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + continue + } + + switch { + case st.Tag(i) == `dns:"-"`: + // ignored + case st.Tag(i) == `dns:"cdomain-name"`: + o("l += domainNameLen(rr.%s, off+l, compression, true)\n") + case st.Tag(i) == `dns:"domain-name"`: + o("l += domainNameLen(rr.%s, off+l, compression, false)\n") + case st.Tag(i) == `dns:"octet"`: + o("l += len(rr.%s)\n") + case strings.HasPrefix(st.Tag(i), `dns:"size-base64`): + fallthrough + case st.Tag(i) == `dns:"base64"`: + o("l += base64.StdEncoding.DecodedLen(len(rr.%s))\n") + case strings.HasPrefix(st.Tag(i), `dns:"size-hex:`): // this has an extra field where the length is stored + o("l += len(rr.%s)/2\n") + case strings.HasPrefix(st.Tag(i), `dns:"size-hex`): + fallthrough + case st.Tag(i) == `dns:"hex"`: + o("l += len(rr.%s)/2 + 1\n") + case st.Tag(i) == `dns:"any"`: + o("l += len(rr.%s)\n") + case st.Tag(i) == `dns:"a"`: + o("if len(rr.%s) != 0 { l += net.IPv4len }\n") + case st.Tag(i) == `dns:"aaaa"`: + o("if len(rr.%s) != 0 { l += net.IPv6len }\n") + case st.Tag(i) == `dns:"txt"`: + o("for _, t := range rr.%s { l += len(t) + 1 }\n") + case st.Tag(i) == `dns:"uint48"`: + o("l += 6 // %s\n") + case st.Tag(i) == "": + switch st.Field(i).Type().(*types.Basic).Kind() { + case types.Uint8: + o("l++ // %s\n") + case types.Uint16: + o("l += 2 // %s\n") + case types.Uint32: + o("l += 4 // %s\n") + case types.Uint64: + o("l += 8 // %s\n") + case types.String: + o("l += len(rr.%s) + 1\n") + default: + log.Fatalln(name, st.Field(i).Name()) + } + default: + log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) + } + } + fmt.Fprintf(b, "return l }\n") + } + + // Generate copy() + fmt.Fprint(b, "// copy() functions\n") + for _, name := range namedTypes { + o := scope.Lookup(name) + st, isEmbedded := getTypeStruct(o.Type(), scope) + if isEmbedded { + continue + } + fmt.Fprintf(b, "func (rr *%s) copy() RR {\n", name) + fields := []string{"rr.Hdr"} + for i := 1; i < st.NumFields(); i++ { + f := st.Field(i).Name() + if sl, ok := st.Field(i).Type().(*types.Slice); ok { + t := sl.Underlying().String() + t = strings.TrimPrefix(t, "[]") + if strings.Contains(t, ".") { + splits := strings.Split(t, ".") + t = splits[len(splits)-1] + } + // For the EDNS0 interface (used in the OPT RR), we need to call the copy method on each element. + if t == "EDNS0" { + fmt.Fprintf(b, "%s := make([]%s, len(rr.%s));\nfor i,e := range rr.%s {\n %s[i] = e.copy()\n}\n", + f, t, f, f, f) + fields = append(fields, f) + continue + } + fmt.Fprintf(b, "%s := make([]%s, len(rr.%s)); copy(%s, rr.%s)\n", + f, t, f, f, f) + fields = append(fields, f) + continue + } + if st.Field(i).Type().String() == "net.IP" { + fields = append(fields, "copyIP(rr."+f+")") + continue + } + fields = append(fields, "rr."+f) + } + fmt.Fprintf(b, "return &%s{%s}\n", name, strings.Join(fields, ",")) + fmt.Fprintf(b, "}\n") + } + + // gofmt + res, err := format.Source(b.Bytes()) + if err != nil { + b.WriteTo(os.Stderr) + log.Fatal(err) + } + + // write result + f, err := os.Create("ztypes.go") + fatalIfErr(err) + defer f.Close() + f.Write(res) +} + +func fatalIfErr(err error) { + if err != nil { + log.Fatal(err) + } +} diff --git a/vendor/github.com/miekg/dns/udp.go b/vendor/github.com/miekg/dns/udp.go new file mode 100644 index 00000000..a4826ee2 --- /dev/null +++ b/vendor/github.com/miekg/dns/udp.go @@ -0,0 +1,102 @@ +// +build !windows + +package dns + +import ( + "net" + + "golang.org/x/net/ipv4" + "golang.org/x/net/ipv6" +) + +// This is the required size of the OOB buffer to pass to ReadMsgUDP. +var udpOOBSize = func() int { + // We can't know whether we'll get an IPv4 control message or an + // IPv6 control message ahead of time. To get around this, we size + // the buffer equal to the largest of the two. + + oob4 := ipv4.NewControlMessage(ipv4.FlagDst | ipv4.FlagInterface) + oob6 := ipv6.NewControlMessage(ipv6.FlagDst | ipv6.FlagInterface) + + if len(oob4) > len(oob6) { + return len(oob4) + } + + return len(oob6) +}() + +// SessionUDP holds the remote address and the associated +// out-of-band data. +type SessionUDP struct { + raddr *net.UDPAddr + context []byte +} + +// RemoteAddr returns the remote network address. +func (s *SessionUDP) RemoteAddr() net.Addr { return s.raddr } + +// ReadFromSessionUDP acts just like net.UDPConn.ReadFrom(), but returns a session object instead of a +// net.UDPAddr. +func ReadFromSessionUDP(conn *net.UDPConn, b []byte) (int, *SessionUDP, error) { + oob := make([]byte, udpOOBSize) + n, oobn, _, raddr, err := conn.ReadMsgUDP(b, oob) + if err != nil { + return n, nil, err + } + return n, &SessionUDP{raddr, oob[:oobn]}, err +} + +// WriteToSessionUDP acts just like net.UDPConn.WriteTo(), but uses a *SessionUDP instead of a net.Addr. +func WriteToSessionUDP(conn *net.UDPConn, b []byte, session *SessionUDP) (int, error) { + oob := correctSource(session.context) + n, _, err := conn.WriteMsgUDP(b, oob, session.raddr) + return n, err +} + +func setUDPSocketOptions(conn *net.UDPConn) error { + // Try setting the flags for both families and ignore the errors unless they + // both error. + err6 := ipv6.NewPacketConn(conn).SetControlMessage(ipv6.FlagDst|ipv6.FlagInterface, true) + err4 := ipv4.NewPacketConn(conn).SetControlMessage(ipv4.FlagDst|ipv4.FlagInterface, true) + if err6 != nil && err4 != nil { + return err4 + } + return nil +} + +// parseDstFromOOB takes oob data and returns the destination IP. +func parseDstFromOOB(oob []byte) net.IP { + // Start with IPv6 and then fallback to IPv4 + // TODO(fastest963): Figure out a way to prefer one or the other. Looking at + // the lvl of the header for a 0 or 41 isn't cross-platform. + cm6 := new(ipv6.ControlMessage) + if cm6.Parse(oob) == nil && cm6.Dst != nil { + return cm6.Dst + } + cm4 := new(ipv4.ControlMessage) + if cm4.Parse(oob) == nil && cm4.Dst != nil { + return cm4.Dst + } + return nil +} + +// correctSource takes oob data and returns new oob data with the Src equal to the Dst +func correctSource(oob []byte) []byte { + dst := parseDstFromOOB(oob) + if dst == nil { + return nil + } + // If the dst is definitely an IPv6, then use ipv6's ControlMessage to + // respond otherwise use ipv4's because ipv6's marshal ignores ipv4 + // addresses. + if dst.To4() == nil { + cm := new(ipv6.ControlMessage) + cm.Src = dst + oob = cm.Marshal() + } else { + cm := new(ipv4.ControlMessage) + cm.Src = dst + oob = cm.Marshal() + } + return oob +} diff --git a/vendor/github.com/miekg/dns/udp_windows.go b/vendor/github.com/miekg/dns/udp_windows.go new file mode 100644 index 00000000..e7dd8ca3 --- /dev/null +++ b/vendor/github.com/miekg/dns/udp_windows.go @@ -0,0 +1,35 @@ +// +build windows + +package dns + +import "net" + +// SessionUDP holds the remote address +type SessionUDP struct { + raddr *net.UDPAddr +} + +// RemoteAddr returns the remote network address. +func (s *SessionUDP) RemoteAddr() net.Addr { return s.raddr } + +// ReadFromSessionUDP acts just like net.UDPConn.ReadFrom(), but returns a session object instead of a +// net.UDPAddr. +// TODO(fastest963): Once go1.10 is released, use ReadMsgUDP. +func ReadFromSessionUDP(conn *net.UDPConn, b []byte) (int, *SessionUDP, error) { + n, raddr, err := conn.ReadFrom(b) + if err != nil { + return n, nil, err + } + return n, &SessionUDP{raddr.(*net.UDPAddr)}, err +} + +// WriteToSessionUDP acts just like net.UDPConn.WriteTo(), but uses a *SessionUDP instead of a net.Addr. +// TODO(fastest963): Once go1.10 is released, use WriteMsgUDP. +func WriteToSessionUDP(conn *net.UDPConn, b []byte, session *SessionUDP) (int, error) { + return conn.WriteTo(b, session.raddr) +} + +// TODO(fastest963): Once go1.10 is released and we can use *MsgUDP methods +// use the standard method in udp.go for these. +func setUDPSocketOptions(*net.UDPConn) error { return nil } +func parseDstFromOOB([]byte, net.IP) net.IP { return nil } diff --git a/vendor/github.com/miekg/dns/update.go b/vendor/github.com/miekg/dns/update.go new file mode 100644 index 00000000..69dd3865 --- /dev/null +++ b/vendor/github.com/miekg/dns/update.go @@ -0,0 +1,110 @@ +package dns + +// NameUsed sets the RRs in the prereq section to +// "Name is in use" RRs. RFC 2136 section 2.4.4. +func (u *Msg) NameUsed(rr []RR) { + if u.Answer == nil { + u.Answer = make([]RR, 0, len(rr)) + } + for _, r := range rr { + u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassANY}}) + } +} + +// NameNotUsed sets the RRs in the prereq section to +// "Name is in not use" RRs. RFC 2136 section 2.4.5. +func (u *Msg) NameNotUsed(rr []RR) { + if u.Answer == nil { + u.Answer = make([]RR, 0, len(rr)) + } + for _, r := range rr { + u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassNONE}}) + } +} + +// Used sets the RRs in the prereq section to +// "RRset exists (value dependent -- with rdata)" RRs. RFC 2136 section 2.4.2. +func (u *Msg) Used(rr []RR) { + if len(u.Question) == 0 { + panic("dns: empty question section") + } + if u.Answer == nil { + u.Answer = make([]RR, 0, len(rr)) + } + for _, r := range rr { + r.Header().Class = u.Question[0].Qclass + u.Answer = append(u.Answer, r) + } +} + +// RRsetUsed sets the RRs in the prereq section to +// "RRset exists (value independent -- no rdata)" RRs. RFC 2136 section 2.4.1. +func (u *Msg) RRsetUsed(rr []RR) { + if u.Answer == nil { + u.Answer = make([]RR, 0, len(rr)) + } + for _, r := range rr { + h := r.Header() + u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: h.Name, Ttl: 0, Rrtype: h.Rrtype, Class: ClassANY}}) + } +} + +// RRsetNotUsed sets the RRs in the prereq section to +// "RRset does not exist" RRs. RFC 2136 section 2.4.3. +func (u *Msg) RRsetNotUsed(rr []RR) { + if u.Answer == nil { + u.Answer = make([]RR, 0, len(rr)) + } + for _, r := range rr { + h := r.Header() + u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: h.Name, Ttl: 0, Rrtype: h.Rrtype, Class: ClassNONE}}) + } +} + +// Insert creates a dynamic update packet that adds an complete RRset, see RFC 2136 section 2.5.1. +func (u *Msg) Insert(rr []RR) { + if len(u.Question) == 0 { + panic("dns: empty question section") + } + if u.Ns == nil { + u.Ns = make([]RR, 0, len(rr)) + } + for _, r := range rr { + r.Header().Class = u.Question[0].Qclass + u.Ns = append(u.Ns, r) + } +} + +// RemoveRRset creates a dynamic update packet that deletes an RRset, see RFC 2136 section 2.5.2. +func (u *Msg) RemoveRRset(rr []RR) { + if u.Ns == nil { + u.Ns = make([]RR, 0, len(rr)) + } + for _, r := range rr { + h := r.Header() + u.Ns = append(u.Ns, &ANY{Hdr: RR_Header{Name: h.Name, Ttl: 0, Rrtype: h.Rrtype, Class: ClassANY}}) + } +} + +// RemoveName creates a dynamic update packet that deletes all RRsets of a name, see RFC 2136 section 2.5.3 +func (u *Msg) RemoveName(rr []RR) { + if u.Ns == nil { + u.Ns = make([]RR, 0, len(rr)) + } + for _, r := range rr { + u.Ns = append(u.Ns, &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassANY}}) + } +} + +// Remove creates a dynamic update packet deletes RR from a RRSset, see RFC 2136 section 2.5.4 +func (u *Msg) Remove(rr []RR) { + if u.Ns == nil { + u.Ns = make([]RR, 0, len(rr)) + } + for _, r := range rr { + h := r.Header() + h.Class = ClassNONE + h.Ttl = 0 + u.Ns = append(u.Ns, r) + } +} diff --git a/vendor/github.com/miekg/dns/version.go b/vendor/github.com/miekg/dns/version.go new file mode 100644 index 00000000..0e21bd6a --- /dev/null +++ b/vendor/github.com/miekg/dns/version.go @@ -0,0 +1,15 @@ +package dns + +import "fmt" + +// Version is current version of this library. +var Version = V{1, 1, 8} + +// V holds the version of this library. +type V struct { + Major, Minor, Patch int +} + +func (v V) String() string { + return fmt.Sprintf("%d.%d.%d", v.Major, v.Minor, v.Patch) +} diff --git a/vendor/github.com/miekg/dns/xfr.go b/vendor/github.com/miekg/dns/xfr.go new file mode 100644 index 00000000..82afc52e --- /dev/null +++ b/vendor/github.com/miekg/dns/xfr.go @@ -0,0 +1,260 @@ +package dns + +import ( + "fmt" + "time" +) + +// Envelope is used when doing a zone transfer with a remote server. +type Envelope struct { + RR []RR // The set of RRs in the answer section of the xfr reply message. + Error error // If something went wrong, this contains the error. +} + +// A Transfer defines parameters that are used during a zone transfer. +type Transfer struct { + *Conn + DialTimeout time.Duration // net.DialTimeout, defaults to 2 seconds + ReadTimeout time.Duration // net.Conn.SetReadTimeout value for connections, defaults to 2 seconds + WriteTimeout time.Duration // net.Conn.SetWriteTimeout value for connections, defaults to 2 seconds + TsigSecret map[string]string // Secret(s) for Tsig map[], zonename must be in canonical form (lowercase, fqdn, see RFC 4034 Section 6.2) + tsigTimersOnly bool +} + +// Think we need to away to stop the transfer + +// In performs an incoming transfer with the server in a. +// If you would like to set the source IP, or some other attribute +// of a Dialer for a Transfer, you can do so by specifying the attributes +// in the Transfer.Conn: +// +// d := net.Dialer{LocalAddr: transfer_source} +// con, err := d.Dial("tcp", master) +// dnscon := &dns.Conn{Conn:con} +// transfer = &dns.Transfer{Conn: dnscon} +// channel, err := transfer.In(message, master) +// +func (t *Transfer) In(q *Msg, a string) (env chan *Envelope, err error) { + switch q.Question[0].Qtype { + case TypeAXFR, TypeIXFR: + default: + return nil, &Error{"unsupported question type"} + } + + timeout := dnsTimeout + if t.DialTimeout != 0 { + timeout = t.DialTimeout + } + + if t.Conn == nil { + t.Conn, err = DialTimeout("tcp", a, timeout) + if err != nil { + return nil, err + } + } + + if err := t.WriteMsg(q); err != nil { + return nil, err + } + + env = make(chan *Envelope) + switch q.Question[0].Qtype { + case TypeAXFR: + go t.inAxfr(q, env) + case TypeIXFR: + go t.inIxfr(q, env) + } + + return env, nil +} + +func (t *Transfer) inAxfr(q *Msg, c chan *Envelope) { + first := true + defer t.Close() + defer close(c) + timeout := dnsTimeout + if t.ReadTimeout != 0 { + timeout = t.ReadTimeout + } + for { + t.Conn.SetReadDeadline(time.Now().Add(timeout)) + in, err := t.ReadMsg() + if err != nil { + c <- &Envelope{nil, err} + return + } + if q.Id != in.Id { + c <- &Envelope{in.Answer, ErrId} + return + } + if first { + if in.Rcode != RcodeSuccess { + c <- &Envelope{in.Answer, &Error{err: fmt.Sprintf(errXFR, in.Rcode)}} + return + } + if !isSOAFirst(in) { + c <- &Envelope{in.Answer, ErrSoa} + return + } + first = !first + // only one answer that is SOA, receive more + if len(in.Answer) == 1 { + t.tsigTimersOnly = true + c <- &Envelope{in.Answer, nil} + continue + } + } + + if !first { + t.tsigTimersOnly = true // Subsequent envelopes use this. + if isSOALast(in) { + c <- &Envelope{in.Answer, nil} + return + } + c <- &Envelope{in.Answer, nil} + } + } +} + +func (t *Transfer) inIxfr(q *Msg, c chan *Envelope) { + var serial uint32 // The first serial seen is the current server serial + axfr := true + n := 0 + qser := q.Ns[0].(*SOA).Serial + defer t.Close() + defer close(c) + timeout := dnsTimeout + if t.ReadTimeout != 0 { + timeout = t.ReadTimeout + } + for { + t.SetReadDeadline(time.Now().Add(timeout)) + in, err := t.ReadMsg() + if err != nil { + c <- &Envelope{nil, err} + return + } + if q.Id != in.Id { + c <- &Envelope{in.Answer, ErrId} + return + } + if in.Rcode != RcodeSuccess { + c <- &Envelope{in.Answer, &Error{err: fmt.Sprintf(errXFR, in.Rcode)}} + return + } + if n == 0 { + // Check if the returned answer is ok + if !isSOAFirst(in) { + c <- &Envelope{in.Answer, ErrSoa} + return + } + // This serial is important + serial = in.Answer[0].(*SOA).Serial + // Check if there are no changes in zone + if qser >= serial { + c <- &Envelope{in.Answer, nil} + return + } + } + // Now we need to check each message for SOA records, to see what we need to do + t.tsigTimersOnly = true + for _, rr := range in.Answer { + if v, ok := rr.(*SOA); ok { + if v.Serial == serial { + n++ + // quit if it's a full axfr or the the servers' SOA is repeated the third time + if axfr && n == 2 || n == 3 { + c <- &Envelope{in.Answer, nil} + return + } + } else if axfr { + // it's an ixfr + axfr = false + } + } + } + c <- &Envelope{in.Answer, nil} + } +} + +// Out performs an outgoing transfer with the client connecting in w. +// Basic use pattern: +// +// ch := make(chan *dns.Envelope) +// tr := new(dns.Transfer) +// go tr.Out(w, r, ch) +// ch <- &dns.Envelope{RR: []dns.RR{soa, rr1, rr2, rr3, soa}} +// close(ch) +// w.Hijack() +// // w.Close() // Client closes connection +// +// The server is responsible for sending the correct sequence of RRs through the +// channel ch. +func (t *Transfer) Out(w ResponseWriter, q *Msg, ch chan *Envelope) error { + for x := range ch { + r := new(Msg) + // Compress? + r.SetReply(q) + r.Authoritative = true + // assume it fits TODO(miek): fix + r.Answer = append(r.Answer, x.RR...) + if err := w.WriteMsg(r); err != nil { + return err + } + } + w.TsigTimersOnly(true) + return nil +} + +// ReadMsg reads a message from the transfer connection t. +func (t *Transfer) ReadMsg() (*Msg, error) { + m := new(Msg) + p := make([]byte, MaxMsgSize) + n, err := t.Read(p) + if err != nil && n == 0 { + return nil, err + } + p = p[:n] + if err := m.Unpack(p); err != nil { + return nil, err + } + if ts := m.IsTsig(); ts != nil && t.TsigSecret != nil { + if _, ok := t.TsigSecret[ts.Hdr.Name]; !ok { + return m, ErrSecret + } + // Need to work on the original message p, as that was used to calculate the tsig. + err = TsigVerify(p, t.TsigSecret[ts.Hdr.Name], t.tsigRequestMAC, t.tsigTimersOnly) + t.tsigRequestMAC = ts.MAC + } + return m, err +} + +// WriteMsg writes a message through the transfer connection t. +func (t *Transfer) WriteMsg(m *Msg) (err error) { + var out []byte + if ts := m.IsTsig(); ts != nil && t.TsigSecret != nil { + if _, ok := t.TsigSecret[ts.Hdr.Name]; !ok { + return ErrSecret + } + out, t.tsigRequestMAC, err = TsigGenerate(m, t.TsigSecret[ts.Hdr.Name], t.tsigRequestMAC, t.tsigTimersOnly) + } else { + out, err = m.Pack() + } + if err != nil { + return err + } + _, err = t.Write(out) + return err +} + +func isSOAFirst(in *Msg) bool { + return len(in.Answer) > 0 && + in.Answer[0].Header().Rrtype == TypeSOA +} + +func isSOALast(in *Msg) bool { + return len(in.Answer) > 0 && + in.Answer[len(in.Answer)-1].Header().Rrtype == TypeSOA +} + +const errXFR = "bad xfr rcode: %d" diff --git a/vendor/github.com/miekg/dns/zduplicate.go b/vendor/github.com/miekg/dns/zduplicate.go new file mode 100644 index 00000000..74389162 --- /dev/null +++ b/vendor/github.com/miekg/dns/zduplicate.go @@ -0,0 +1,1140 @@ +// Code generated by "go run duplicate_generate.go"; DO NOT EDIT. + +package dns + +// isDuplicate() functions + +func (r1 *A) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*A) + if !ok { + return false + } + _ = r2 + if !r1.A.Equal(r2.A) { + return false + } + return true +} + +func (r1 *AAAA) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*AAAA) + if !ok { + return false + } + _ = r2 + if !r1.AAAA.Equal(r2.AAAA) { + return false + } + return true +} + +func (r1 *AFSDB) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*AFSDB) + if !ok { + return false + } + _ = r2 + if r1.Subtype != r2.Subtype { + return false + } + if !isDuplicateName(r1.Hostname, r2.Hostname) { + return false + } + return true +} + +func (r1 *ANY) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*ANY) + if !ok { + return false + } + _ = r2 + return true +} + +func (r1 *AVC) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*AVC) + if !ok { + return false + } + _ = r2 + if len(r1.Txt) != len(r2.Txt) { + return false + } + for i := 0; i < len(r1.Txt); i++ { + if r1.Txt[i] != r2.Txt[i] { + return false + } + } + return true +} + +func (r1 *CAA) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*CAA) + if !ok { + return false + } + _ = r2 + if r1.Flag != r2.Flag { + return false + } + if r1.Tag != r2.Tag { + return false + } + if r1.Value != r2.Value { + return false + } + return true +} + +func (r1 *CERT) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*CERT) + if !ok { + return false + } + _ = r2 + if r1.Type != r2.Type { + return false + } + if r1.KeyTag != r2.KeyTag { + return false + } + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.Certificate != r2.Certificate { + return false + } + return true +} + +func (r1 *CNAME) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*CNAME) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Target, r2.Target) { + return false + } + return true +} + +func (r1 *CSYNC) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*CSYNC) + if !ok { + return false + } + _ = r2 + if r1.Serial != r2.Serial { + return false + } + if r1.Flags != r2.Flags { + return false + } + if len(r1.TypeBitMap) != len(r2.TypeBitMap) { + return false + } + for i := 0; i < len(r1.TypeBitMap); i++ { + if r1.TypeBitMap[i] != r2.TypeBitMap[i] { + return false + } + } + return true +} + +func (r1 *DHCID) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*DHCID) + if !ok { + return false + } + _ = r2 + if r1.Digest != r2.Digest { + return false + } + return true +} + +func (r1 *DNAME) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*DNAME) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Target, r2.Target) { + return false + } + return true +} + +func (r1 *DNSKEY) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*DNSKEY) + if !ok { + return false + } + _ = r2 + if r1.Flags != r2.Flags { + return false + } + if r1.Protocol != r2.Protocol { + return false + } + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.PublicKey != r2.PublicKey { + return false + } + return true +} + +func (r1 *DS) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*DS) + if !ok { + return false + } + _ = r2 + if r1.KeyTag != r2.KeyTag { + return false + } + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.DigestType != r2.DigestType { + return false + } + if r1.Digest != r2.Digest { + return false + } + return true +} + +func (r1 *EID) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*EID) + if !ok { + return false + } + _ = r2 + if r1.Endpoint != r2.Endpoint { + return false + } + return true +} + +func (r1 *EUI48) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*EUI48) + if !ok { + return false + } + _ = r2 + if r1.Address != r2.Address { + return false + } + return true +} + +func (r1 *EUI64) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*EUI64) + if !ok { + return false + } + _ = r2 + if r1.Address != r2.Address { + return false + } + return true +} + +func (r1 *GID) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*GID) + if !ok { + return false + } + _ = r2 + if r1.Gid != r2.Gid { + return false + } + return true +} + +func (r1 *GPOS) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*GPOS) + if !ok { + return false + } + _ = r2 + if r1.Longitude != r2.Longitude { + return false + } + if r1.Latitude != r2.Latitude { + return false + } + if r1.Altitude != r2.Altitude { + return false + } + return true +} + +func (r1 *HINFO) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*HINFO) + if !ok { + return false + } + _ = r2 + if r1.Cpu != r2.Cpu { + return false + } + if r1.Os != r2.Os { + return false + } + return true +} + +func (r1 *HIP) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*HIP) + if !ok { + return false + } + _ = r2 + if r1.HitLength != r2.HitLength { + return false + } + if r1.PublicKeyAlgorithm != r2.PublicKeyAlgorithm { + return false + } + if r1.PublicKeyLength != r2.PublicKeyLength { + return false + } + if r1.Hit != r2.Hit { + return false + } + if r1.PublicKey != r2.PublicKey { + return false + } + if len(r1.RendezvousServers) != len(r2.RendezvousServers) { + return false + } + for i := 0; i < len(r1.RendezvousServers); i++ { + if !isDuplicateName(r1.RendezvousServers[i], r2.RendezvousServers[i]) { + return false + } + } + return true +} + +func (r1 *KX) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*KX) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if !isDuplicateName(r1.Exchanger, r2.Exchanger) { + return false + } + return true +} + +func (r1 *L32) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*L32) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if !r1.Locator32.Equal(r2.Locator32) { + return false + } + return true +} + +func (r1 *L64) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*L64) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if r1.Locator64 != r2.Locator64 { + return false + } + return true +} + +func (r1 *LOC) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*LOC) + if !ok { + return false + } + _ = r2 + if r1.Version != r2.Version { + return false + } + if r1.Size != r2.Size { + return false + } + if r1.HorizPre != r2.HorizPre { + return false + } + if r1.VertPre != r2.VertPre { + return false + } + if r1.Latitude != r2.Latitude { + return false + } + if r1.Longitude != r2.Longitude { + return false + } + if r1.Altitude != r2.Altitude { + return false + } + return true +} + +func (r1 *LP) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*LP) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if !isDuplicateName(r1.Fqdn, r2.Fqdn) { + return false + } + return true +} + +func (r1 *MB) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MB) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Mb, r2.Mb) { + return false + } + return true +} + +func (r1 *MD) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MD) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Md, r2.Md) { + return false + } + return true +} + +func (r1 *MF) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MF) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Mf, r2.Mf) { + return false + } + return true +} + +func (r1 *MG) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MG) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Mg, r2.Mg) { + return false + } + return true +} + +func (r1 *MINFO) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MINFO) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Rmail, r2.Rmail) { + return false + } + if !isDuplicateName(r1.Email, r2.Email) { + return false + } + return true +} + +func (r1 *MR) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MR) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Mr, r2.Mr) { + return false + } + return true +} + +func (r1 *MX) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*MX) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if !isDuplicateName(r1.Mx, r2.Mx) { + return false + } + return true +} + +func (r1 *NAPTR) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NAPTR) + if !ok { + return false + } + _ = r2 + if r1.Order != r2.Order { + return false + } + if r1.Preference != r2.Preference { + return false + } + if r1.Flags != r2.Flags { + return false + } + if r1.Service != r2.Service { + return false + } + if r1.Regexp != r2.Regexp { + return false + } + if !isDuplicateName(r1.Replacement, r2.Replacement) { + return false + } + return true +} + +func (r1 *NID) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NID) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if r1.NodeID != r2.NodeID { + return false + } + return true +} + +func (r1 *NIMLOC) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NIMLOC) + if !ok { + return false + } + _ = r2 + if r1.Locator != r2.Locator { + return false + } + return true +} + +func (r1 *NINFO) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NINFO) + if !ok { + return false + } + _ = r2 + if len(r1.ZSData) != len(r2.ZSData) { + return false + } + for i := 0; i < len(r1.ZSData); i++ { + if r1.ZSData[i] != r2.ZSData[i] { + return false + } + } + return true +} + +func (r1 *NS) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NS) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Ns, r2.Ns) { + return false + } + return true +} + +func (r1 *NSAPPTR) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NSAPPTR) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Ptr, r2.Ptr) { + return false + } + return true +} + +func (r1 *NSEC) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NSEC) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.NextDomain, r2.NextDomain) { + return false + } + if len(r1.TypeBitMap) != len(r2.TypeBitMap) { + return false + } + for i := 0; i < len(r1.TypeBitMap); i++ { + if r1.TypeBitMap[i] != r2.TypeBitMap[i] { + return false + } + } + return true +} + +func (r1 *NSEC3) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NSEC3) + if !ok { + return false + } + _ = r2 + if r1.Hash != r2.Hash { + return false + } + if r1.Flags != r2.Flags { + return false + } + if r1.Iterations != r2.Iterations { + return false + } + if r1.SaltLength != r2.SaltLength { + return false + } + if r1.Salt != r2.Salt { + return false + } + if r1.HashLength != r2.HashLength { + return false + } + if r1.NextDomain != r2.NextDomain { + return false + } + if len(r1.TypeBitMap) != len(r2.TypeBitMap) { + return false + } + for i := 0; i < len(r1.TypeBitMap); i++ { + if r1.TypeBitMap[i] != r2.TypeBitMap[i] { + return false + } + } + return true +} + +func (r1 *NSEC3PARAM) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NSEC3PARAM) + if !ok { + return false + } + _ = r2 + if r1.Hash != r2.Hash { + return false + } + if r1.Flags != r2.Flags { + return false + } + if r1.Iterations != r2.Iterations { + return false + } + if r1.SaltLength != r2.SaltLength { + return false + } + if r1.Salt != r2.Salt { + return false + } + return true +} + +func (r1 *NULL) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*NULL) + if !ok { + return false + } + _ = r2 + if r1.Data != r2.Data { + return false + } + return true +} + +func (r1 *OPENPGPKEY) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*OPENPGPKEY) + if !ok { + return false + } + _ = r2 + if r1.PublicKey != r2.PublicKey { + return false + } + return true +} + +func (r1 *PTR) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*PTR) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Ptr, r2.Ptr) { + return false + } + return true +} + +func (r1 *PX) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*PX) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if !isDuplicateName(r1.Map822, r2.Map822) { + return false + } + if !isDuplicateName(r1.Mapx400, r2.Mapx400) { + return false + } + return true +} + +func (r1 *RFC3597) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*RFC3597) + if !ok { + return false + } + _ = r2 + if r1.Rdata != r2.Rdata { + return false + } + return true +} + +func (r1 *RKEY) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*RKEY) + if !ok { + return false + } + _ = r2 + if r1.Flags != r2.Flags { + return false + } + if r1.Protocol != r2.Protocol { + return false + } + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.PublicKey != r2.PublicKey { + return false + } + return true +} + +func (r1 *RP) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*RP) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Mbox, r2.Mbox) { + return false + } + if !isDuplicateName(r1.Txt, r2.Txt) { + return false + } + return true +} + +func (r1 *RRSIG) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*RRSIG) + if !ok { + return false + } + _ = r2 + if r1.TypeCovered != r2.TypeCovered { + return false + } + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.Labels != r2.Labels { + return false + } + if r1.OrigTtl != r2.OrigTtl { + return false + } + if r1.Expiration != r2.Expiration { + return false + } + if r1.Inception != r2.Inception { + return false + } + if r1.KeyTag != r2.KeyTag { + return false + } + if !isDuplicateName(r1.SignerName, r2.SignerName) { + return false + } + if r1.Signature != r2.Signature { + return false + } + return true +} + +func (r1 *RT) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*RT) + if !ok { + return false + } + _ = r2 + if r1.Preference != r2.Preference { + return false + } + if !isDuplicateName(r1.Host, r2.Host) { + return false + } + return true +} + +func (r1 *SMIMEA) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*SMIMEA) + if !ok { + return false + } + _ = r2 + if r1.Usage != r2.Usage { + return false + } + if r1.Selector != r2.Selector { + return false + } + if r1.MatchingType != r2.MatchingType { + return false + } + if r1.Certificate != r2.Certificate { + return false + } + return true +} + +func (r1 *SOA) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*SOA) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Ns, r2.Ns) { + return false + } + if !isDuplicateName(r1.Mbox, r2.Mbox) { + return false + } + if r1.Serial != r2.Serial { + return false + } + if r1.Refresh != r2.Refresh { + return false + } + if r1.Retry != r2.Retry { + return false + } + if r1.Expire != r2.Expire { + return false + } + if r1.Minttl != r2.Minttl { + return false + } + return true +} + +func (r1 *SPF) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*SPF) + if !ok { + return false + } + _ = r2 + if len(r1.Txt) != len(r2.Txt) { + return false + } + for i := 0; i < len(r1.Txt); i++ { + if r1.Txt[i] != r2.Txt[i] { + return false + } + } + return true +} + +func (r1 *SRV) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*SRV) + if !ok { + return false + } + _ = r2 + if r1.Priority != r2.Priority { + return false + } + if r1.Weight != r2.Weight { + return false + } + if r1.Port != r2.Port { + return false + } + if !isDuplicateName(r1.Target, r2.Target) { + return false + } + return true +} + +func (r1 *SSHFP) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*SSHFP) + if !ok { + return false + } + _ = r2 + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.Type != r2.Type { + return false + } + if r1.FingerPrint != r2.FingerPrint { + return false + } + return true +} + +func (r1 *TA) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*TA) + if !ok { + return false + } + _ = r2 + if r1.KeyTag != r2.KeyTag { + return false + } + if r1.Algorithm != r2.Algorithm { + return false + } + if r1.DigestType != r2.DigestType { + return false + } + if r1.Digest != r2.Digest { + return false + } + return true +} + +func (r1 *TALINK) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*TALINK) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.PreviousName, r2.PreviousName) { + return false + } + if !isDuplicateName(r1.NextName, r2.NextName) { + return false + } + return true +} + +func (r1 *TKEY) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*TKEY) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Algorithm, r2.Algorithm) { + return false + } + if r1.Inception != r2.Inception { + return false + } + if r1.Expiration != r2.Expiration { + return false + } + if r1.Mode != r2.Mode { + return false + } + if r1.Error != r2.Error { + return false + } + if r1.KeySize != r2.KeySize { + return false + } + if r1.Key != r2.Key { + return false + } + if r1.OtherLen != r2.OtherLen { + return false + } + if r1.OtherData != r2.OtherData { + return false + } + return true +} + +func (r1 *TLSA) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*TLSA) + if !ok { + return false + } + _ = r2 + if r1.Usage != r2.Usage { + return false + } + if r1.Selector != r2.Selector { + return false + } + if r1.MatchingType != r2.MatchingType { + return false + } + if r1.Certificate != r2.Certificate { + return false + } + return true +} + +func (r1 *TSIG) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*TSIG) + if !ok { + return false + } + _ = r2 + if !isDuplicateName(r1.Algorithm, r2.Algorithm) { + return false + } + if r1.TimeSigned != r2.TimeSigned { + return false + } + if r1.Fudge != r2.Fudge { + return false + } + if r1.MACSize != r2.MACSize { + return false + } + if r1.MAC != r2.MAC { + return false + } + if r1.OrigId != r2.OrigId { + return false + } + if r1.Error != r2.Error { + return false + } + if r1.OtherLen != r2.OtherLen { + return false + } + if r1.OtherData != r2.OtherData { + return false + } + return true +} + +func (r1 *TXT) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*TXT) + if !ok { + return false + } + _ = r2 + if len(r1.Txt) != len(r2.Txt) { + return false + } + for i := 0; i < len(r1.Txt); i++ { + if r1.Txt[i] != r2.Txt[i] { + return false + } + } + return true +} + +func (r1 *UID) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*UID) + if !ok { + return false + } + _ = r2 + if r1.Uid != r2.Uid { + return false + } + return true +} + +func (r1 *UINFO) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*UINFO) + if !ok { + return false + } + _ = r2 + if r1.Uinfo != r2.Uinfo { + return false + } + return true +} + +func (r1 *URI) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*URI) + if !ok { + return false + } + _ = r2 + if r1.Priority != r2.Priority { + return false + } + if r1.Weight != r2.Weight { + return false + } + if r1.Target != r2.Target { + return false + } + return true +} + +func (r1 *X25) isDuplicate(_r2 RR) bool { + r2, ok := _r2.(*X25) + if !ok { + return false + } + _ = r2 + if r1.PSDNAddress != r2.PSDNAddress { + return false + } + return true +} diff --git a/vendor/github.com/miekg/dns/zmsg.go b/vendor/github.com/miekg/dns/zmsg.go new file mode 100644 index 00000000..c4cf4757 --- /dev/null +++ b/vendor/github.com/miekg/dns/zmsg.go @@ -0,0 +1,2722 @@ +// Code generated by "go run msg_generate.go"; DO NOT EDIT. + +package dns + +// pack*() functions + +func (rr *A) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDataA(rr.A, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *AAAA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDataAAAA(rr.AAAA, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *AFSDB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Subtype, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Hostname, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *ANY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + return off, nil +} + +func (rr *AVC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringTxt(rr.Txt, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CAA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Flag, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Tag, msg, off) + if err != nil { + return off, err + } + off, err = packStringOctet(rr.Value, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CDNSKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Protocol, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.PublicKey, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CDS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.DigestType, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Digest, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CERT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Type, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.Certificate, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Target, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CSYNC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint32(rr.Serial, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packDataNsec(rr.TypeBitMap, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DHCID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringBase64(rr.Digest, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DLV) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.DigestType, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Digest, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Target, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DNSKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Protocol, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.PublicKey, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.DigestType, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Digest, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *EID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringHex(rr.Endpoint, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *EUI48) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint48(rr.Address, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *EUI64) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint64(rr.Address, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *GID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint32(rr.Gid, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *GPOS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packString(rr.Longitude, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Latitude, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Altitude, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *HINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packString(rr.Cpu, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Os, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *HIP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.HitLength, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.PublicKeyAlgorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.PublicKeyLength, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Hit, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.PublicKey, msg, off) + if err != nil { + return off, err + } + off, err = packDataDomainNames(rr.RendezvousServers, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *KEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Protocol, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.PublicKey, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *KX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Exchanger, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *L32) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packDataA(rr.Locator32, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *L64) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packUint64(rr.Locator64, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *LOC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Version, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Size, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.HorizPre, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.VertPre, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Latitude, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Longitude, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Altitude, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *LP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Fqdn, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Mb, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MD) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Md, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MF) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Mf, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Mg, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Rmail, msg, off, compression, compress) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Email, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Mr, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Mx, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NAPTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Order, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Service, msg, off) + if err != nil { + return off, err + } + off, err = packString(rr.Regexp, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Replacement, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packUint64(rr.NodeID, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NIMLOC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringHex(rr.Locator, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringTxt(rr.ZSData, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Ns, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSAPPTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Ptr, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSEC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.NextDomain, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packDataNsec(rr.TypeBitMap, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSEC3) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Hash, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Iterations, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.SaltLength, msg, off) + if err != nil { + return off, err + } + // Only pack salt if value is not "-", i.e. empty + if rr.Salt != "-" { + off, err = packStringHex(rr.Salt, msg, off) + if err != nil { + return off, err + } + } + off, err = packUint8(rr.HashLength, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase32(rr.NextDomain, msg, off) + if err != nil { + return off, err + } + off, err = packDataNsec(rr.TypeBitMap, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSEC3PARAM) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Hash, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Iterations, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.SaltLength, msg, off) + if err != nil { + return off, err + } + // Only pack salt if value is not "-", i.e. empty + if rr.Salt != "-" { + off, err = packStringHex(rr.Salt, msg, off) + if err != nil { + return off, err + } + } + return off, nil +} + +func (rr *NULL) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringAny(rr.Data, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *OPENPGPKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringBase64(rr.PublicKey, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *OPT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDataOpt(rr.Option, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *PTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Ptr, msg, off, compression, compress) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *PX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Map822, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Mapx400, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RFC3597) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringHex(rr.Rdata, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Flags, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Protocol, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.PublicKey, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Mbox, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Txt, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RRSIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.TypeCovered, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Labels, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.OrigTtl, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Expiration, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Inception, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.SignerName, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.Signature, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Preference, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Host, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.TypeCovered, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Labels, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.OrigTtl, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Expiration, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Inception, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.SignerName, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packStringBase64(rr.Signature, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SMIMEA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Usage, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Selector, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.MatchingType, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Certificate, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SOA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Ns, msg, off, compression, compress) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Mbox, msg, off, compression, compress) + if err != nil { + return off, err + } + off, err = packUint32(rr.Serial, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Refresh, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Retry, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Expire, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Minttl, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SPF) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringTxt(rr.Txt, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SRV) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Priority, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Weight, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Port, msg, off) + if err != nil { + return off, err + } + off, err = packDomainName(rr.Target, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SSHFP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Type, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.FingerPrint, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.KeyTag, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Algorithm, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.DigestType, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Digest, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TALINK) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.PreviousName, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packDomainName(rr.NextName, msg, off, compression, false) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Algorithm, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packUint32(rr.Inception, msg, off) + if err != nil { + return off, err + } + off, err = packUint32(rr.Expiration, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Mode, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Error, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.KeySize, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Key, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.OtherLen, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.OtherData, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TLSA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint8(rr.Usage, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.Selector, msg, off) + if err != nil { + return off, err + } + off, err = packUint8(rr.MatchingType, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.Certificate, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TSIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packDomainName(rr.Algorithm, msg, off, compression, false) + if err != nil { + return off, err + } + off, err = packUint48(rr.TimeSigned, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Fudge, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.MACSize, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.MAC, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.OrigId, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Error, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.OtherLen, msg, off) + if err != nil { + return off, err + } + off, err = packStringHex(rr.OtherData, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TXT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packStringTxt(rr.Txt, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *UID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint32(rr.Uid, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *UINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packString(rr.Uinfo, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *URI) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packUint16(rr.Priority, msg, off) + if err != nil { + return off, err + } + off, err = packUint16(rr.Weight, msg, off) + if err != nil { + return off, err + } + off, err = packStringOctet(rr.Target, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *X25) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { + off, err = packString(rr.PSDNAddress, msg, off) + if err != nil { + return off, err + } + return off, nil +} + +// unpack*() functions + +func (rr *A) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.A, off, err = unpackDataA(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *AAAA) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.AAAA, off, err = unpackDataAAAA(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *AFSDB) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Subtype, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Hostname, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *ANY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + return off, nil +} + +func (rr *AVC) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Txt, off, err = unpackStringTxt(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CAA) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Flag, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Tag, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Value, off, err = unpackStringOctet(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CDNSKEY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Flags, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Protocol, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CDS) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.DigestType, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CERT) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Type, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Certificate, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CNAME) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Target, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *CSYNC) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Serial, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Flags, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.TypeBitMap, off, err = unpackDataNsec(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DHCID) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Digest, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DLV) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.DigestType, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DNAME) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Target, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DNSKEY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Flags, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Protocol, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *DS) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.DigestType, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *EID) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Endpoint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *EUI48) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Address, off, err = unpackUint48(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *EUI64) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Address, off, err = unpackUint64(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *GID) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Gid, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *GPOS) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Longitude, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Latitude, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Altitude, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *HINFO) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Cpu, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Os, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *HIP) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.HitLength, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.PublicKeyAlgorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.PublicKeyLength, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Hit, off, err = unpackStringHex(msg, off, off+int(rr.HitLength)) + if err != nil { + return off, err + } + rr.PublicKey, off, err = unpackStringBase64(msg, off, off+int(rr.PublicKeyLength)) + if err != nil { + return off, err + } + rr.RendezvousServers, off, err = unpackDataDomainNames(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *KEY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Flags, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Protocol, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *KX) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Exchanger, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *L32) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Locator32, off, err = unpackDataA(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *L64) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Locator64, off, err = unpackUint64(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *LOC) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Version, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Size, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.HorizPre, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.VertPre, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Latitude, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Longitude, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Altitude, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *LP) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Fqdn, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MB) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Mb, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MD) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Md, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MF) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Mf, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MG) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Mg, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MINFO) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Rmail, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Email, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MR) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Mr, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *MX) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Mx, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NAPTR) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Order, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Flags, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Service, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Regexp, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Replacement, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NID) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.NodeID, off, err = unpackUint64(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NIMLOC) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Locator, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NINFO) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.ZSData, off, err = unpackStringTxt(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NS) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Ns, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSAPPTR) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Ptr, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSEC) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.NextDomain, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.TypeBitMap, off, err = unpackDataNsec(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSEC3) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Hash, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Flags, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Iterations, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.SaltLength, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength)) + if err != nil { + return off, err + } + rr.HashLength, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.NextDomain, off, err = unpackStringBase32(msg, off, off+int(rr.HashLength)) + if err != nil { + return off, err + } + rr.TypeBitMap, off, err = unpackDataNsec(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NSEC3PARAM) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Hash, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Flags, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Iterations, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.SaltLength, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *NULL) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Data, off, err = unpackStringAny(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *OPENPGPKEY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *OPT) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Option, off, err = unpackDataOpt(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *PTR) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Ptr, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *PX) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Map822, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Mapx400, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RFC3597) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Rdata, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RKEY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Flags, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Protocol, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RP) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Mbox, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Txt, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RRSIG) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.TypeCovered, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Labels, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.OrigTtl, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Expiration, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Inception, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.SignerName, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *RT) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Preference, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Host, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SIG) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.TypeCovered, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Labels, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.OrigTtl, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Expiration, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Inception, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.SignerName, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SMIMEA) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Usage, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Selector, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.MatchingType, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SOA) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Ns, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Mbox, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Serial, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Refresh, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Retry, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Expire, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Minttl, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SPF) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Txt, off, err = unpackStringTxt(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SRV) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Priority, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Weight, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Port, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Target, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *SSHFP) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Type, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.FingerPrint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TA) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.KeyTag, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Algorithm, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.DigestType, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TALINK) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.PreviousName, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.NextName, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TKEY) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Algorithm, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Inception, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Expiration, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Mode, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Error, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.KeySize, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Key, off, err = unpackStringHex(msg, off, off+int(rr.KeySize)) + if err != nil { + return off, err + } + rr.OtherLen, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TLSA) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Usage, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Selector, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.MatchingType, off, err = unpackUint8(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TSIG) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Algorithm, off, err = UnpackDomainName(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.TimeSigned, off, err = unpackUint48(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Fudge, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.MACSize, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.MAC, off, err = unpackStringHex(msg, off, off+int(rr.MACSize)) + if err != nil { + return off, err + } + rr.OrigId, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Error, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.OtherLen, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen)) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *TXT) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Txt, off, err = unpackStringTxt(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *UID) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Uid, off, err = unpackUint32(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *UINFO) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Uinfo, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *URI) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.Priority, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Weight, off, err = unpackUint16(msg, off) + if err != nil { + return off, err + } + if off == len(msg) { + return off, nil + } + rr.Target, off, err = unpackStringOctet(msg, off) + if err != nil { + return off, err + } + return off, nil +} + +func (rr *X25) unpack(msg []byte, off int) (off1 int, err error) { + rdStart := off + _ = rdStart + + rr.PSDNAddress, off, err = unpackString(msg, off) + if err != nil { + return off, err + } + return off, nil +} diff --git a/vendor/github.com/miekg/dns/ztypes.go b/vendor/github.com/miekg/dns/ztypes.go new file mode 100644 index 00000000..495a83e3 --- /dev/null +++ b/vendor/github.com/miekg/dns/ztypes.go @@ -0,0 +1,881 @@ +// Code generated by "go run types_generate.go"; DO NOT EDIT. + +package dns + +import ( + "encoding/base64" + "net" +) + +// TypeToRR is a map of constructors for each RR type. +var TypeToRR = map[uint16]func() RR{ + TypeA: func() RR { return new(A) }, + TypeAAAA: func() RR { return new(AAAA) }, + TypeAFSDB: func() RR { return new(AFSDB) }, + TypeANY: func() RR { return new(ANY) }, + TypeAVC: func() RR { return new(AVC) }, + TypeCAA: func() RR { return new(CAA) }, + TypeCDNSKEY: func() RR { return new(CDNSKEY) }, + TypeCDS: func() RR { return new(CDS) }, + TypeCERT: func() RR { return new(CERT) }, + TypeCNAME: func() RR { return new(CNAME) }, + TypeCSYNC: func() RR { return new(CSYNC) }, + TypeDHCID: func() RR { return new(DHCID) }, + TypeDLV: func() RR { return new(DLV) }, + TypeDNAME: func() RR { return new(DNAME) }, + TypeDNSKEY: func() RR { return new(DNSKEY) }, + TypeDS: func() RR { return new(DS) }, + TypeEID: func() RR { return new(EID) }, + TypeEUI48: func() RR { return new(EUI48) }, + TypeEUI64: func() RR { return new(EUI64) }, + TypeGID: func() RR { return new(GID) }, + TypeGPOS: func() RR { return new(GPOS) }, + TypeHINFO: func() RR { return new(HINFO) }, + TypeHIP: func() RR { return new(HIP) }, + TypeKEY: func() RR { return new(KEY) }, + TypeKX: func() RR { return new(KX) }, + TypeL32: func() RR { return new(L32) }, + TypeL64: func() RR { return new(L64) }, + TypeLOC: func() RR { return new(LOC) }, + TypeLP: func() RR { return new(LP) }, + TypeMB: func() RR { return new(MB) }, + TypeMD: func() RR { return new(MD) }, + TypeMF: func() RR { return new(MF) }, + TypeMG: func() RR { return new(MG) }, + TypeMINFO: func() RR { return new(MINFO) }, + TypeMR: func() RR { return new(MR) }, + TypeMX: func() RR { return new(MX) }, + TypeNAPTR: func() RR { return new(NAPTR) }, + TypeNID: func() RR { return new(NID) }, + TypeNIMLOC: func() RR { return new(NIMLOC) }, + TypeNINFO: func() RR { return new(NINFO) }, + TypeNS: func() RR { return new(NS) }, + TypeNSAPPTR: func() RR { return new(NSAPPTR) }, + TypeNSEC: func() RR { return new(NSEC) }, + TypeNSEC3: func() RR { return new(NSEC3) }, + TypeNSEC3PARAM: func() RR { return new(NSEC3PARAM) }, + TypeNULL: func() RR { return new(NULL) }, + TypeOPENPGPKEY: func() RR { return new(OPENPGPKEY) }, + TypeOPT: func() RR { return new(OPT) }, + TypePTR: func() RR { return new(PTR) }, + TypePX: func() RR { return new(PX) }, + TypeRKEY: func() RR { return new(RKEY) }, + TypeRP: func() RR { return new(RP) }, + TypeRRSIG: func() RR { return new(RRSIG) }, + TypeRT: func() RR { return new(RT) }, + TypeSIG: func() RR { return new(SIG) }, + TypeSMIMEA: func() RR { return new(SMIMEA) }, + TypeSOA: func() RR { return new(SOA) }, + TypeSPF: func() RR { return new(SPF) }, + TypeSRV: func() RR { return new(SRV) }, + TypeSSHFP: func() RR { return new(SSHFP) }, + TypeTA: func() RR { return new(TA) }, + TypeTALINK: func() RR { return new(TALINK) }, + TypeTKEY: func() RR { return new(TKEY) }, + TypeTLSA: func() RR { return new(TLSA) }, + TypeTSIG: func() RR { return new(TSIG) }, + TypeTXT: func() RR { return new(TXT) }, + TypeUID: func() RR { return new(UID) }, + TypeUINFO: func() RR { return new(UINFO) }, + TypeURI: func() RR { return new(URI) }, + TypeX25: func() RR { return new(X25) }, +} + +// TypeToString is a map of strings for each RR type. +var TypeToString = map[uint16]string{ + TypeA: "A", + TypeAAAA: "AAAA", + TypeAFSDB: "AFSDB", + TypeANY: "ANY", + TypeATMA: "ATMA", + TypeAVC: "AVC", + TypeAXFR: "AXFR", + TypeCAA: "CAA", + TypeCDNSKEY: "CDNSKEY", + TypeCDS: "CDS", + TypeCERT: "CERT", + TypeCNAME: "CNAME", + TypeCSYNC: "CSYNC", + TypeDHCID: "DHCID", + TypeDLV: "DLV", + TypeDNAME: "DNAME", + TypeDNSKEY: "DNSKEY", + TypeDS: "DS", + TypeEID: "EID", + TypeEUI48: "EUI48", + TypeEUI64: "EUI64", + TypeGID: "GID", + TypeGPOS: "GPOS", + TypeHINFO: "HINFO", + TypeHIP: "HIP", + TypeISDN: "ISDN", + TypeIXFR: "IXFR", + TypeKEY: "KEY", + TypeKX: "KX", + TypeL32: "L32", + TypeL64: "L64", + TypeLOC: "LOC", + TypeLP: "LP", + TypeMAILA: "MAILA", + TypeMAILB: "MAILB", + TypeMB: "MB", + TypeMD: "MD", + TypeMF: "MF", + TypeMG: "MG", + TypeMINFO: "MINFO", + TypeMR: "MR", + TypeMX: "MX", + TypeNAPTR: "NAPTR", + TypeNID: "NID", + TypeNIMLOC: "NIMLOC", + TypeNINFO: "NINFO", + TypeNS: "NS", + TypeNSEC: "NSEC", + TypeNSEC3: "NSEC3", + TypeNSEC3PARAM: "NSEC3PARAM", + TypeNULL: "NULL", + TypeNXT: "NXT", + TypeNone: "None", + TypeOPENPGPKEY: "OPENPGPKEY", + TypeOPT: "OPT", + TypePTR: "PTR", + TypePX: "PX", + TypeRKEY: "RKEY", + TypeRP: "RP", + TypeRRSIG: "RRSIG", + TypeRT: "RT", + TypeReserved: "Reserved", + TypeSIG: "SIG", + TypeSMIMEA: "SMIMEA", + TypeSOA: "SOA", + TypeSPF: "SPF", + TypeSRV: "SRV", + TypeSSHFP: "SSHFP", + TypeTA: "TA", + TypeTALINK: "TALINK", + TypeTKEY: "TKEY", + TypeTLSA: "TLSA", + TypeTSIG: "TSIG", + TypeTXT: "TXT", + TypeUID: "UID", + TypeUINFO: "UINFO", + TypeUNSPEC: "UNSPEC", + TypeURI: "URI", + TypeX25: "X25", + TypeNSAPPTR: "NSAP-PTR", +} + +func (rr *A) Header() *RR_Header { return &rr.Hdr } +func (rr *AAAA) Header() *RR_Header { return &rr.Hdr } +func (rr *AFSDB) Header() *RR_Header { return &rr.Hdr } +func (rr *ANY) Header() *RR_Header { return &rr.Hdr } +func (rr *AVC) Header() *RR_Header { return &rr.Hdr } +func (rr *CAA) Header() *RR_Header { return &rr.Hdr } +func (rr *CDNSKEY) Header() *RR_Header { return &rr.Hdr } +func (rr *CDS) Header() *RR_Header { return &rr.Hdr } +func (rr *CERT) Header() *RR_Header { return &rr.Hdr } +func (rr *CNAME) Header() *RR_Header { return &rr.Hdr } +func (rr *CSYNC) Header() *RR_Header { return &rr.Hdr } +func (rr *DHCID) Header() *RR_Header { return &rr.Hdr } +func (rr *DLV) Header() *RR_Header { return &rr.Hdr } +func (rr *DNAME) Header() *RR_Header { return &rr.Hdr } +func (rr *DNSKEY) Header() *RR_Header { return &rr.Hdr } +func (rr *DS) Header() *RR_Header { return &rr.Hdr } +func (rr *EID) Header() *RR_Header { return &rr.Hdr } +func (rr *EUI48) Header() *RR_Header { return &rr.Hdr } +func (rr *EUI64) Header() *RR_Header { return &rr.Hdr } +func (rr *GID) Header() *RR_Header { return &rr.Hdr } +func (rr *GPOS) Header() *RR_Header { return &rr.Hdr } +func (rr *HINFO) Header() *RR_Header { return &rr.Hdr } +func (rr *HIP) Header() *RR_Header { return &rr.Hdr } +func (rr *KEY) Header() *RR_Header { return &rr.Hdr } +func (rr *KX) Header() *RR_Header { return &rr.Hdr } +func (rr *L32) Header() *RR_Header { return &rr.Hdr } +func (rr *L64) Header() *RR_Header { return &rr.Hdr } +func (rr *LOC) Header() *RR_Header { return &rr.Hdr } +func (rr *LP) Header() *RR_Header { return &rr.Hdr } +func (rr *MB) Header() *RR_Header { return &rr.Hdr } +func (rr *MD) Header() *RR_Header { return &rr.Hdr } +func (rr *MF) Header() *RR_Header { return &rr.Hdr } +func (rr *MG) Header() *RR_Header { return &rr.Hdr } +func (rr *MINFO) Header() *RR_Header { return &rr.Hdr } +func (rr *MR) Header() *RR_Header { return &rr.Hdr } +func (rr *MX) Header() *RR_Header { return &rr.Hdr } +func (rr *NAPTR) Header() *RR_Header { return &rr.Hdr } +func (rr *NID) Header() *RR_Header { return &rr.Hdr } +func (rr *NIMLOC) Header() *RR_Header { return &rr.Hdr } +func (rr *NINFO) Header() *RR_Header { return &rr.Hdr } +func (rr *NS) Header() *RR_Header { return &rr.Hdr } +func (rr *NSAPPTR) Header() *RR_Header { return &rr.Hdr } +func (rr *NSEC) Header() *RR_Header { return &rr.Hdr } +func (rr *NSEC3) Header() *RR_Header { return &rr.Hdr } +func (rr *NSEC3PARAM) Header() *RR_Header { return &rr.Hdr } +func (rr *NULL) Header() *RR_Header { return &rr.Hdr } +func (rr *OPENPGPKEY) Header() *RR_Header { return &rr.Hdr } +func (rr *OPT) Header() *RR_Header { return &rr.Hdr } +func (rr *PTR) Header() *RR_Header { return &rr.Hdr } +func (rr *PX) Header() *RR_Header { return &rr.Hdr } +func (rr *RFC3597) Header() *RR_Header { return &rr.Hdr } +func (rr *RKEY) Header() *RR_Header { return &rr.Hdr } +func (rr *RP) Header() *RR_Header { return &rr.Hdr } +func (rr *RRSIG) Header() *RR_Header { return &rr.Hdr } +func (rr *RT) Header() *RR_Header { return &rr.Hdr } +func (rr *SIG) Header() *RR_Header { return &rr.Hdr } +func (rr *SMIMEA) Header() *RR_Header { return &rr.Hdr } +func (rr *SOA) Header() *RR_Header { return &rr.Hdr } +func (rr *SPF) Header() *RR_Header { return &rr.Hdr } +func (rr *SRV) Header() *RR_Header { return &rr.Hdr } +func (rr *SSHFP) Header() *RR_Header { return &rr.Hdr } +func (rr *TA) Header() *RR_Header { return &rr.Hdr } +func (rr *TALINK) Header() *RR_Header { return &rr.Hdr } +func (rr *TKEY) Header() *RR_Header { return &rr.Hdr } +func (rr *TLSA) Header() *RR_Header { return &rr.Hdr } +func (rr *TSIG) Header() *RR_Header { return &rr.Hdr } +func (rr *TXT) Header() *RR_Header { return &rr.Hdr } +func (rr *UID) Header() *RR_Header { return &rr.Hdr } +func (rr *UINFO) Header() *RR_Header { return &rr.Hdr } +func (rr *URI) Header() *RR_Header { return &rr.Hdr } +func (rr *X25) Header() *RR_Header { return &rr.Hdr } + +// len() functions +func (rr *A) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + if len(rr.A) != 0 { + l += net.IPv4len + } + return l +} +func (rr *AAAA) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + if len(rr.AAAA) != 0 { + l += net.IPv6len + } + return l +} +func (rr *AFSDB) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Subtype + l += domainNameLen(rr.Hostname, off+l, compression, false) + return l +} +func (rr *ANY) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + return l +} +func (rr *AVC) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + for _, x := range rr.Txt { + l += len(x) + 1 + } + return l +} +func (rr *CAA) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // Flag + l += len(rr.Tag) + 1 + l += len(rr.Value) + return l +} +func (rr *CERT) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Type + l += 2 // KeyTag + l++ // Algorithm + l += base64.StdEncoding.DecodedLen(len(rr.Certificate)) + return l +} +func (rr *CNAME) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Target, off+l, compression, true) + return l +} +func (rr *DHCID) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += base64.StdEncoding.DecodedLen(len(rr.Digest)) + return l +} +func (rr *DNAME) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Target, off+l, compression, false) + return l +} +func (rr *DNSKEY) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Flags + l++ // Protocol + l++ // Algorithm + l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) + return l +} +func (rr *DS) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // KeyTag + l++ // Algorithm + l++ // DigestType + l += len(rr.Digest)/2 + 1 + return l +} +func (rr *EID) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Endpoint)/2 + 1 + return l +} +func (rr *EUI48) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 6 // Address + return l +} +func (rr *EUI64) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 8 // Address + return l +} +func (rr *GID) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 4 // Gid + return l +} +func (rr *GPOS) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Longitude) + 1 + l += len(rr.Latitude) + 1 + l += len(rr.Altitude) + 1 + return l +} +func (rr *HINFO) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Cpu) + 1 + l += len(rr.Os) + 1 + return l +} +func (rr *HIP) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // HitLength + l++ // PublicKeyAlgorithm + l += 2 // PublicKeyLength + l += len(rr.Hit) / 2 + l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) + for _, x := range rr.RendezvousServers { + l += domainNameLen(x, off+l, compression, false) + } + return l +} +func (rr *KX) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += domainNameLen(rr.Exchanger, off+l, compression, false) + return l +} +func (rr *L32) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + if len(rr.Locator32) != 0 { + l += net.IPv4len + } + return l +} +func (rr *L64) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += 8 // Locator64 + return l +} +func (rr *LOC) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // Version + l++ // Size + l++ // HorizPre + l++ // VertPre + l += 4 // Latitude + l += 4 // Longitude + l += 4 // Altitude + return l +} +func (rr *LP) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += domainNameLen(rr.Fqdn, off+l, compression, false) + return l +} +func (rr *MB) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Mb, off+l, compression, true) + return l +} +func (rr *MD) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Md, off+l, compression, true) + return l +} +func (rr *MF) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Mf, off+l, compression, true) + return l +} +func (rr *MG) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Mg, off+l, compression, true) + return l +} +func (rr *MINFO) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Rmail, off+l, compression, true) + l += domainNameLen(rr.Email, off+l, compression, true) + return l +} +func (rr *MR) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Mr, off+l, compression, true) + return l +} +func (rr *MX) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += domainNameLen(rr.Mx, off+l, compression, true) + return l +} +func (rr *NAPTR) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Order + l += 2 // Preference + l += len(rr.Flags) + 1 + l += len(rr.Service) + 1 + l += len(rr.Regexp) + 1 + l += domainNameLen(rr.Replacement, off+l, compression, false) + return l +} +func (rr *NID) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += 8 // NodeID + return l +} +func (rr *NIMLOC) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Locator)/2 + 1 + return l +} +func (rr *NINFO) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + for _, x := range rr.ZSData { + l += len(x) + 1 + } + return l +} +func (rr *NS) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Ns, off+l, compression, true) + return l +} +func (rr *NSAPPTR) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Ptr, off+l, compression, false) + return l +} +func (rr *NSEC3PARAM) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // Hash + l++ // Flags + l += 2 // Iterations + l++ // SaltLength + l += len(rr.Salt) / 2 + return l +} +func (rr *NULL) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Data) + return l +} +func (rr *OPENPGPKEY) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) + return l +} +func (rr *PTR) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Ptr, off+l, compression, true) + return l +} +func (rr *PX) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += domainNameLen(rr.Map822, off+l, compression, false) + l += domainNameLen(rr.Mapx400, off+l, compression, false) + return l +} +func (rr *RFC3597) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Rdata)/2 + 1 + return l +} +func (rr *RKEY) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Flags + l++ // Protocol + l++ // Algorithm + l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) + return l +} +func (rr *RP) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Mbox, off+l, compression, false) + l += domainNameLen(rr.Txt, off+l, compression, false) + return l +} +func (rr *RRSIG) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // TypeCovered + l++ // Algorithm + l++ // Labels + l += 4 // OrigTtl + l += 4 // Expiration + l += 4 // Inception + l += 2 // KeyTag + l += domainNameLen(rr.SignerName, off+l, compression, false) + l += base64.StdEncoding.DecodedLen(len(rr.Signature)) + return l +} +func (rr *RT) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Preference + l += domainNameLen(rr.Host, off+l, compression, false) + return l +} +func (rr *SMIMEA) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // Usage + l++ // Selector + l++ // MatchingType + l += len(rr.Certificate)/2 + 1 + return l +} +func (rr *SOA) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Ns, off+l, compression, true) + l += domainNameLen(rr.Mbox, off+l, compression, true) + l += 4 // Serial + l += 4 // Refresh + l += 4 // Retry + l += 4 // Expire + l += 4 // Minttl + return l +} +func (rr *SPF) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + for _, x := range rr.Txt { + l += len(x) + 1 + } + return l +} +func (rr *SRV) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Priority + l += 2 // Weight + l += 2 // Port + l += domainNameLen(rr.Target, off+l, compression, false) + return l +} +func (rr *SSHFP) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // Algorithm + l++ // Type + l += len(rr.FingerPrint)/2 + 1 + return l +} +func (rr *TA) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // KeyTag + l++ // Algorithm + l++ // DigestType + l += len(rr.Digest)/2 + 1 + return l +} +func (rr *TALINK) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.PreviousName, off+l, compression, false) + l += domainNameLen(rr.NextName, off+l, compression, false) + return l +} +func (rr *TKEY) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Algorithm, off+l, compression, false) + l += 4 // Inception + l += 4 // Expiration + l += 2 // Mode + l += 2 // Error + l += 2 // KeySize + l += len(rr.Key) / 2 + l += 2 // OtherLen + l += len(rr.OtherData) / 2 + return l +} +func (rr *TLSA) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l++ // Usage + l++ // Selector + l++ // MatchingType + l += len(rr.Certificate)/2 + 1 + return l +} +func (rr *TSIG) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += domainNameLen(rr.Algorithm, off+l, compression, false) + l += 6 // TimeSigned + l += 2 // Fudge + l += 2 // MACSize + l += len(rr.MAC) / 2 + l += 2 // OrigId + l += 2 // Error + l += 2 // OtherLen + l += len(rr.OtherData) / 2 + return l +} +func (rr *TXT) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + for _, x := range rr.Txt { + l += len(x) + 1 + } + return l +} +func (rr *UID) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 4 // Uid + return l +} +func (rr *UINFO) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.Uinfo) + 1 + return l +} +func (rr *URI) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += 2 // Priority + l += 2 // Weight + l += len(rr.Target) + return l +} +func (rr *X25) len(off int, compression map[string]struct{}) int { + l := rr.Hdr.len(off, compression) + l += len(rr.PSDNAddress) + 1 + return l +} + +// copy() functions +func (rr *A) copy() RR { + return &A{rr.Hdr, copyIP(rr.A)} +} +func (rr *AAAA) copy() RR { + return &AAAA{rr.Hdr, copyIP(rr.AAAA)} +} +func (rr *AFSDB) copy() RR { + return &AFSDB{rr.Hdr, rr.Subtype, rr.Hostname} +} +func (rr *ANY) copy() RR { + return &ANY{rr.Hdr} +} +func (rr *AVC) copy() RR { + Txt := make([]string, len(rr.Txt)) + copy(Txt, rr.Txt) + return &AVC{rr.Hdr, Txt} +} +func (rr *CAA) copy() RR { + return &CAA{rr.Hdr, rr.Flag, rr.Tag, rr.Value} +} +func (rr *CERT) copy() RR { + return &CERT{rr.Hdr, rr.Type, rr.KeyTag, rr.Algorithm, rr.Certificate} +} +func (rr *CNAME) copy() RR { + return &CNAME{rr.Hdr, rr.Target} +} +func (rr *CSYNC) copy() RR { + TypeBitMap := make([]uint16, len(rr.TypeBitMap)) + copy(TypeBitMap, rr.TypeBitMap) + return &CSYNC{rr.Hdr, rr.Serial, rr.Flags, TypeBitMap} +} +func (rr *DHCID) copy() RR { + return &DHCID{rr.Hdr, rr.Digest} +} +func (rr *DNAME) copy() RR { + return &DNAME{rr.Hdr, rr.Target} +} +func (rr *DNSKEY) copy() RR { + return &DNSKEY{rr.Hdr, rr.Flags, rr.Protocol, rr.Algorithm, rr.PublicKey} +} +func (rr *DS) copy() RR { + return &DS{rr.Hdr, rr.KeyTag, rr.Algorithm, rr.DigestType, rr.Digest} +} +func (rr *EID) copy() RR { + return &EID{rr.Hdr, rr.Endpoint} +} +func (rr *EUI48) copy() RR { + return &EUI48{rr.Hdr, rr.Address} +} +func (rr *EUI64) copy() RR { + return &EUI64{rr.Hdr, rr.Address} +} +func (rr *GID) copy() RR { + return &GID{rr.Hdr, rr.Gid} +} +func (rr *GPOS) copy() RR { + return &GPOS{rr.Hdr, rr.Longitude, rr.Latitude, rr.Altitude} +} +func (rr *HINFO) copy() RR { + return &HINFO{rr.Hdr, rr.Cpu, rr.Os} +} +func (rr *HIP) copy() RR { + RendezvousServers := make([]string, len(rr.RendezvousServers)) + copy(RendezvousServers, rr.RendezvousServers) + return &HIP{rr.Hdr, rr.HitLength, rr.PublicKeyAlgorithm, rr.PublicKeyLength, rr.Hit, rr.PublicKey, RendezvousServers} +} +func (rr *KX) copy() RR { + return &KX{rr.Hdr, rr.Preference, rr.Exchanger} +} +func (rr *L32) copy() RR { + return &L32{rr.Hdr, rr.Preference, copyIP(rr.Locator32)} +} +func (rr *L64) copy() RR { + return &L64{rr.Hdr, rr.Preference, rr.Locator64} +} +func (rr *LOC) copy() RR { + return &LOC{rr.Hdr, rr.Version, rr.Size, rr.HorizPre, rr.VertPre, rr.Latitude, rr.Longitude, rr.Altitude} +} +func (rr *LP) copy() RR { + return &LP{rr.Hdr, rr.Preference, rr.Fqdn} +} +func (rr *MB) copy() RR { + return &MB{rr.Hdr, rr.Mb} +} +func (rr *MD) copy() RR { + return &MD{rr.Hdr, rr.Md} +} +func (rr *MF) copy() RR { + return &MF{rr.Hdr, rr.Mf} +} +func (rr *MG) copy() RR { + return &MG{rr.Hdr, rr.Mg} +} +func (rr *MINFO) copy() RR { + return &MINFO{rr.Hdr, rr.Rmail, rr.Email} +} +func (rr *MR) copy() RR { + return &MR{rr.Hdr, rr.Mr} +} +func (rr *MX) copy() RR { + return &MX{rr.Hdr, rr.Preference, rr.Mx} +} +func (rr *NAPTR) copy() RR { + return &NAPTR{rr.Hdr, rr.Order, rr.Preference, rr.Flags, rr.Service, rr.Regexp, rr.Replacement} +} +func (rr *NID) copy() RR { + return &NID{rr.Hdr, rr.Preference, rr.NodeID} +} +func (rr *NIMLOC) copy() RR { + return &NIMLOC{rr.Hdr, rr.Locator} +} +func (rr *NINFO) copy() RR { + ZSData := make([]string, len(rr.ZSData)) + copy(ZSData, rr.ZSData) + return &NINFO{rr.Hdr, ZSData} +} +func (rr *NS) copy() RR { + return &NS{rr.Hdr, rr.Ns} +} +func (rr *NSAPPTR) copy() RR { + return &NSAPPTR{rr.Hdr, rr.Ptr} +} +func (rr *NSEC) copy() RR { + TypeBitMap := make([]uint16, len(rr.TypeBitMap)) + copy(TypeBitMap, rr.TypeBitMap) + return &NSEC{rr.Hdr, rr.NextDomain, TypeBitMap} +} +func (rr *NSEC3) copy() RR { + TypeBitMap := make([]uint16, len(rr.TypeBitMap)) + copy(TypeBitMap, rr.TypeBitMap) + return &NSEC3{rr.Hdr, rr.Hash, rr.Flags, rr.Iterations, rr.SaltLength, rr.Salt, rr.HashLength, rr.NextDomain, TypeBitMap} +} +func (rr *NSEC3PARAM) copy() RR { + return &NSEC3PARAM{rr.Hdr, rr.Hash, rr.Flags, rr.Iterations, rr.SaltLength, rr.Salt} +} +func (rr *NULL) copy() RR { + return &NULL{rr.Hdr, rr.Data} +} +func (rr *OPENPGPKEY) copy() RR { + return &OPENPGPKEY{rr.Hdr, rr.PublicKey} +} +func (rr *OPT) copy() RR { + Option := make([]EDNS0, len(rr.Option)) + for i, e := range rr.Option { + Option[i] = e.copy() + } + return &OPT{rr.Hdr, Option} +} +func (rr *PTR) copy() RR { + return &PTR{rr.Hdr, rr.Ptr} +} +func (rr *PX) copy() RR { + return &PX{rr.Hdr, rr.Preference, rr.Map822, rr.Mapx400} +} +func (rr *RFC3597) copy() RR { + return &RFC3597{rr.Hdr, rr.Rdata} +} +func (rr *RKEY) copy() RR { + return &RKEY{rr.Hdr, rr.Flags, rr.Protocol, rr.Algorithm, rr.PublicKey} +} +func (rr *RP) copy() RR { + return &RP{rr.Hdr, rr.Mbox, rr.Txt} +} +func (rr *RRSIG) copy() RR { + return &RRSIG{rr.Hdr, rr.TypeCovered, rr.Algorithm, rr.Labels, rr.OrigTtl, rr.Expiration, rr.Inception, rr.KeyTag, rr.SignerName, rr.Signature} +} +func (rr *RT) copy() RR { + return &RT{rr.Hdr, rr.Preference, rr.Host} +} +func (rr *SMIMEA) copy() RR { + return &SMIMEA{rr.Hdr, rr.Usage, rr.Selector, rr.MatchingType, rr.Certificate} +} +func (rr *SOA) copy() RR { + return &SOA{rr.Hdr, rr.Ns, rr.Mbox, rr.Serial, rr.Refresh, rr.Retry, rr.Expire, rr.Minttl} +} +func (rr *SPF) copy() RR { + Txt := make([]string, len(rr.Txt)) + copy(Txt, rr.Txt) + return &SPF{rr.Hdr, Txt} +} +func (rr *SRV) copy() RR { + return &SRV{rr.Hdr, rr.Priority, rr.Weight, rr.Port, rr.Target} +} +func (rr *SSHFP) copy() RR { + return &SSHFP{rr.Hdr, rr.Algorithm, rr.Type, rr.FingerPrint} +} +func (rr *TA) copy() RR { + return &TA{rr.Hdr, rr.KeyTag, rr.Algorithm, rr.DigestType, rr.Digest} +} +func (rr *TALINK) copy() RR { + return &TALINK{rr.Hdr, rr.PreviousName, rr.NextName} +} +func (rr *TKEY) copy() RR { + return &TKEY{rr.Hdr, rr.Algorithm, rr.Inception, rr.Expiration, rr.Mode, rr.Error, rr.KeySize, rr.Key, rr.OtherLen, rr.OtherData} +} +func (rr *TLSA) copy() RR { + return &TLSA{rr.Hdr, rr.Usage, rr.Selector, rr.MatchingType, rr.Certificate} +} +func (rr *TSIG) copy() RR { + return &TSIG{rr.Hdr, rr.Algorithm, rr.TimeSigned, rr.Fudge, rr.MACSize, rr.MAC, rr.OrigId, rr.Error, rr.OtherLen, rr.OtherData} +} +func (rr *TXT) copy() RR { + Txt := make([]string, len(rr.Txt)) + copy(Txt, rr.Txt) + return &TXT{rr.Hdr, Txt} +} +func (rr *UID) copy() RR { + return &UID{rr.Hdr, rr.Uid} +} +func (rr *UINFO) copy() RR { + return &UINFO{rr.Hdr, rr.Uinfo} +} +func (rr *URI) copy() RR { + return &URI{rr.Hdr, rr.Priority, rr.Weight, rr.Target} +} +func (rr *X25) copy() RR { + return &X25{rr.Hdr, rr.PSDNAddress} +} diff --git a/vendor/github.com/minio/blake2b-simd/.gitignore b/vendor/github.com/minio/blake2b-simd/.gitignore new file mode 100644 index 00000000..c56069fe --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/.gitignore @@ -0,0 +1 @@ +*.test \ No newline at end of file diff --git a/vendor/github.com/minio/blake2b-simd/.travis.yml b/vendor/github.com/minio/blake2b-simd/.travis.yml new file mode 100644 index 00000000..545066eb --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/.travis.yml @@ -0,0 +1,21 @@ +sudo: required +dist: trusty +language: go + +os: +- linux +- osx + +osx_image: xcode7.2 + +go: +- 1.6 +- 1.5 + +env: +- ARCH=x86_64 +- ARCH=i686 + +script: +- diff -au <(gofmt -d .) <(printf "") +- go test -race -v ./... diff --git a/vendor/github.com/minio/blake2b-simd/LICENSE b/vendor/github.com/minio/blake2b-simd/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/minio/blake2b-simd/README.md b/vendor/github.com/minio/blake2b-simd/README.md new file mode 100644 index 00000000..31fcbf74 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/README.md @@ -0,0 +1,144 @@ +BLAKE2b-SIMD +============ + +Pure Go implementation of BLAKE2b using SIMD optimizations. + +Introduction +------------ + +This package was initially based on the pure go [BLAKE2b](https://github.com/dchest/blake2b) implementation of Dmitry Chestnykh and merged with the (`cgo` dependent) AVX optimized [BLAKE2](https://github.com/codahale/blake2) implementation (which in turn is based on the [official implementation](https://github.com/BLAKE2/BLAKE2). It does so by using [Go's Assembler](https://golang.org/doc/asm) for amd64 architectures with a golang only fallback for other architectures. + +In addition to AVX there is also support for AVX2 as well as SSE. Best performance is obtained with AVX2 which gives roughly a **4X** performance increase approaching hashing speeds of **1GB/sec** on a single core. + +Benchmarks +---------- + +This is a summary of the performance improvements. Full details are shown below. + +| Technology | 128K | +| ---------- |:-----:| +| AVX2 | 3.94x | +| AVX | 3.28x | +| SSE | 2.85x | + +asm2plan9s +---------- + +In order to be able to work more easily with AVX2/AVX instructions, a separate tool was developed to convert AVX2/AVX instructions into the corresponding BYTE sequence as accepted by Go assembly. See [asm2plan9s](https://github.com/minio/asm2plan9s) for more information. + +bt2sum +------ + +[bt2sum](https://github.com/s3git/bt2sum) is a utility that takes advantages of the BLAKE2b SIMD optimizations to compute check sums using the BLAKE2 Tree hashing mode in so called 'unlimited fanout' mode. + +Technical details +----------------- + +BLAKE2b is a hashing algorithm that operates on 64-bit integer values. The AVX2 version uses the 256-bit wide YMM registers in order to essentially process four operations in parallel. AVX and SSE operate on 128-bit values simultaneously (two operations in parallel). Below are excerpts from `compressAvx2_amd64.s`, `compressAvx_amd64.s`, and `compress_generic.go` respectively. + +``` + VPADDQ YMM0,YMM0,YMM1 /* v0 += v4, v1 += v5, v2 += v6, v3 += v7 */ +``` + +``` + VPADDQ XMM0,XMM0,XMM2 /* v0 += v4, v1 += v5 */ + VPADDQ XMM1,XMM1,XMM3 /* v2 += v6, v3 += v7 */ +``` + +``` + v0 += v4 + v1 += v5 + v2 += v6 + v3 += v7 +``` + +Detailed benchmarks +------------------- + +Example performance metrics were generated on Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz - 6 physical cores, 12 logical cores running Ubuntu GNU/Linux with kernel version 4.4.0-24-generic (vanilla with no optimizations). + +### AVX2 + +``` +$ benchcmp go.txt avx2.txt +benchmark old ns/op new ns/op delta +BenchmarkHash64-12 1481 849 -42.67% +BenchmarkHash128-12 1428 746 -47.76% +BenchmarkHash1K-12 6379 2227 -65.09% +BenchmarkHash8K-12 37219 11714 -68.53% +BenchmarkHash32K-12 140716 35935 -74.46% +BenchmarkHash128K-12 561656 142634 -74.60% + +benchmark old MB/s new MB/s speedup +BenchmarkHash64-12 43.20 75.37 1.74x +BenchmarkHash128-12 89.64 171.35 1.91x +BenchmarkHash1K-12 160.52 459.69 2.86x +BenchmarkHash8K-12 220.10 699.32 3.18x +BenchmarkHash32K-12 232.87 911.85 3.92x +BenchmarkHash128K-12 233.37 918.93 3.94x +``` + +### AVX2: Comparison to other hashing techniques + +``` +$ go test -bench=Comparison +BenchmarkComparisonMD5-12 1000 1726121 ns/op 607.48 MB/s +BenchmarkComparisonSHA1-12 500 2005164 ns/op 522.94 MB/s +BenchmarkComparisonSHA256-12 300 5531036 ns/op 189.58 MB/s +BenchmarkComparisonSHA512-12 500 3423030 ns/op 306.33 MB/s +BenchmarkComparisonBlake2B-12 1000 1232690 ns/op 850.64 MB/s +``` + +Benchmarks below were generated on a MacBook Pro with a 2.7 GHz Intel Core i7. + +### AVX + +``` +$ benchcmp go.txt avx.txt +benchmark old ns/op new ns/op delta +BenchmarkHash64-8 813 458 -43.67% +BenchmarkHash128-8 766 401 -47.65% +BenchmarkHash1K-8 4881 1763 -63.88% +BenchmarkHash8K-8 36127 12273 -66.03% +BenchmarkHash32K-8 140582 43155 -69.30% +BenchmarkHash128K-8 567850 173246 -69.49% + +benchmark old MB/s new MB/s speedup +BenchmarkHash64-8 78.63 139.57 1.78x +BenchmarkHash128-8 166.98 318.73 1.91x +BenchmarkHash1K-8 209.76 580.68 2.77x +BenchmarkHash8K-8 226.76 667.46 2.94x +BenchmarkHash32K-8 233.09 759.29 3.26x +BenchmarkHash128K-8 230.82 756.56 3.28x +``` + +### SSE + +``` +$ benchcmp go.txt sse.txt +benchmark old ns/op new ns/op delta +BenchmarkHash64-8 813 478 -41.21% +BenchmarkHash128-8 766 411 -46.34% +BenchmarkHash1K-8 4881 1870 -61.69% +BenchmarkHash8K-8 36127 12427 -65.60% +BenchmarkHash32K-8 140582 49512 -64.78% +BenchmarkHash128K-8 567850 199040 -64.95% + +benchmark old MB/s new MB/s speedup +BenchmarkHash64-8 78.63 133.78 1.70x +BenchmarkHash128-8 166.98 311.23 1.86x +BenchmarkHash1K-8 209.76 547.37 2.61x +BenchmarkHash8K-8 226.76 659.20 2.91x +BenchmarkHash32K-8 233.09 661.81 2.84x +BenchmarkHash128K-8 230.82 658.52 2.85x +``` + +License +------- + +Released under the Apache License v2.0. You can find the complete text in the file LICENSE. + +Contributing +------------ + +Contributions are welcome, please send PRs for any enhancements. diff --git a/vendor/github.com/minio/blake2b-simd/appveyor.yml b/vendor/github.com/minio/blake2b-simd/appveyor.yml new file mode 100644 index 00000000..77595feb --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/appveyor.yml @@ -0,0 +1,32 @@ +# version format +version: "{build}" + +# Operating system (build VM template) +os: Windows Server 2012 R2 + +# Platform. +platform: x64 + +clone_folder: c:\gopath\src\github.com\minio\blake2b-simd + +# environment variables +environment: + GOPATH: c:\gopath + GO15VENDOREXPERIMENT: 1 + +# scripts that run after cloning repository +install: + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% + - go version + - go env + +# to run your custom scripts instead of automatic MSBuild +build_script: + - go test . + - go test -race . + +# to disable automatic tests +test: off + +# to disable deployment +deploy: off diff --git a/vendor/github.com/minio/blake2b-simd/blake2b.go b/vendor/github.com/minio/blake2b-simd/blake2b.go new file mode 100644 index 00000000..538466a1 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/blake2b.go @@ -0,0 +1,301 @@ +// Written in 2012 by Dmitry Chestnykh. +// +// To the extent possible under law, the author have dedicated all copyright +// and related and neighboring rights to this software to the public domain +// worldwide. This software is distributed without any warranty. +// http://creativecommons.org/publicdomain/zero/1.0/ + +// Package blake2b implements BLAKE2b cryptographic hash function. +package blake2b + +import ( + "encoding/binary" + "errors" + "hash" +) + +const ( + BlockSize = 128 // block size of algorithm + Size = 64 // maximum digest size + SaltSize = 16 // maximum salt size + PersonSize = 16 // maximum personalization string size + KeySize = 64 // maximum size of key +) + +type digest struct { + h [8]uint64 // current chain value + t [2]uint64 // message bytes counter + f [2]uint64 // finalization flags + x [BlockSize]byte // buffer for data not yet compressed + nx int // number of bytes in buffer + + ih [8]uint64 // initial chain value (after config) + paddedKey [BlockSize]byte // copy of key, padded with zeros + isKeyed bool // indicates whether hash was keyed + size uint8 // digest size in bytes + isLastNode bool // indicates processing of the last node in tree hashing +} + +// Initialization values. +var iv = [8]uint64{ + 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, + 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, + 0x510e527fade682d1, 0x9b05688c2b3e6c1f, + 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179, +} + +// Config is used to configure hash function parameters and keying. +// All parameters are optional. +type Config struct { + Size uint8 // digest size (if zero, default size of 64 bytes is used) + Key []byte // key for prefix-MAC + Salt []byte // salt (if < 16 bytes, padded with zeros) + Person []byte // personalization (if < 16 bytes, padded with zeros) + Tree *Tree // parameters for tree hashing +} + +// Tree represents parameters for tree hashing. +type Tree struct { + Fanout uint8 // fanout + MaxDepth uint8 // maximal depth + LeafSize uint32 // leaf maximal byte length (0 for unlimited) + NodeOffset uint64 // node offset (0 for first, leftmost or leaf) + NodeDepth uint8 // node depth (0 for leaves) + InnerHashSize uint8 // inner hash byte length + IsLastNode bool // indicates processing of the last node of layer +} + +var ( + defaultConfig = &Config{Size: Size} + config256 = &Config{Size: 32} +) + +func verifyConfig(c *Config) error { + if c.Size > Size { + return errors.New("digest size is too large") + } + if len(c.Key) > KeySize { + return errors.New("key is too large") + } + if len(c.Salt) > SaltSize { + // Smaller salt is okay: it will be padded with zeros. + return errors.New("salt is too large") + } + if len(c.Person) > PersonSize { + // Smaller personalization is okay: it will be padded with zeros. + return errors.New("personalization is too large") + } + if c.Tree != nil { + if c.Tree.Fanout == 1 { + return errors.New("fanout of 1 is not allowed in tree mode") + } + if c.Tree.MaxDepth < 2 { + return errors.New("incorrect tree depth") + } + if c.Tree.InnerHashSize < 1 || c.Tree.InnerHashSize > Size { + return errors.New("incorrect tree inner hash size") + } + } + return nil +} + +// New returns a new hash.Hash configured with the given Config. +// Config can be nil, in which case the default one is used, calculating 64-byte digest. +// Returns non-nil error if Config contains invalid parameters. +func New(c *Config) (hash.Hash, error) { + if c == nil { + c = defaultConfig + } else { + if c.Size == 0 { + // Set default size if it's zero. + c.Size = Size + } + if err := verifyConfig(c); err != nil { + return nil, err + } + } + d := new(digest) + d.initialize(c) + return d, nil +} + +// initialize initializes digest with the given +// config, which must be non-nil and verified. +func (d *digest) initialize(c *Config) { + // Create parameter block. + var p [BlockSize]byte + p[0] = c.Size + p[1] = uint8(len(c.Key)) + if c.Salt != nil { + copy(p[32:], c.Salt) + } + if c.Person != nil { + copy(p[48:], c.Person) + } + if c.Tree != nil { + p[2] = c.Tree.Fanout + p[3] = c.Tree.MaxDepth + binary.LittleEndian.PutUint32(p[4:], c.Tree.LeafSize) + binary.LittleEndian.PutUint64(p[8:], c.Tree.NodeOffset) + p[16] = c.Tree.NodeDepth + p[17] = c.Tree.InnerHashSize + } else { + p[2] = 1 + p[3] = 1 + } + + // Initialize. + d.size = c.Size + for i := 0; i < 8; i++ { + d.h[i] = iv[i] ^ binary.LittleEndian.Uint64(p[i*8:]) + } + if c.Tree != nil && c.Tree.IsLastNode { + d.isLastNode = true + } + + // Process key. + if c.Key != nil { + copy(d.paddedKey[:], c.Key) + d.Write(d.paddedKey[:]) + d.isKeyed = true + } + // Save a copy of initialized state. + copy(d.ih[:], d.h[:]) +} + +// New512 returns a new hash.Hash computing the BLAKE2b 64-byte checksum. +func New512() hash.Hash { + d := new(digest) + d.initialize(defaultConfig) + return d +} + +// New256 returns a new hash.Hash computing the BLAKE2b 32-byte checksum. +func New256() hash.Hash { + d := new(digest) + d.initialize(config256) + return d +} + +// NewMAC returns a new hash.Hash computing BLAKE2b prefix- +// Message Authentication Code of the given size in bytes +// (up to 64) with the given key (up to 64 bytes in length). +func NewMAC(outBytes uint8, key []byte) hash.Hash { + d, err := New(&Config{Size: outBytes, Key: key}) + if err != nil { + panic(err.Error()) + } + return d +} + +// Reset resets the state of digest to the initial state +// after configuration and keying. +func (d *digest) Reset() { + copy(d.h[:], d.ih[:]) + d.t[0] = 0 + d.t[1] = 0 + d.f[0] = 0 + d.f[1] = 0 + d.nx = 0 + if d.isKeyed { + d.Write(d.paddedKey[:]) + } +} + +// Size returns the digest size in bytes. +func (d *digest) Size() int { return int(d.size) } + +// BlockSize returns the algorithm block size in bytes. +func (d *digest) BlockSize() int { return BlockSize } + +func (d *digest) Write(p []byte) (nn int, err error) { + nn = len(p) + left := BlockSize - d.nx + if len(p) > left { + // Process buffer. + copy(d.x[d.nx:], p[:left]) + p = p[left:] + compress(d, d.x[:]) + d.nx = 0 + } + // Process full blocks except for the last one. + if len(p) > BlockSize { + n := len(p) &^ (BlockSize - 1) + if n == len(p) { + n -= BlockSize + } + compress(d, p[:n]) + p = p[n:] + } + // Fill buffer. + d.nx += copy(d.x[d.nx:], p) + return +} + +// Sum returns the calculated checksum. +func (d *digest) Sum(in []byte) []byte { + // Make a copy of d so that caller can keep writing and summing. + d0 := *d + hash := d0.checkSum() + return append(in, hash[:d0.size]...) +} + +func (d *digest) checkSum() [Size]byte { + // Do not create unnecessary copies of the key. + if d.isKeyed { + for i := 0; i < len(d.paddedKey); i++ { + d.paddedKey[i] = 0 + } + } + + dec := BlockSize - uint64(d.nx) + if d.t[0] < dec { + d.t[1]-- + } + d.t[0] -= dec + + // Pad buffer with zeros. + for i := d.nx; i < len(d.x); i++ { + d.x[i] = 0 + } + // Set last block flag. + d.f[0] = 0xffffffffffffffff + if d.isLastNode { + d.f[1] = 0xffffffffffffffff + } + // Compress last block. + compress(d, d.x[:]) + + var out [Size]byte + j := 0 + for _, s := range d.h[:(d.size-1)/8+1] { + out[j+0] = byte(s >> 0) + out[j+1] = byte(s >> 8) + out[j+2] = byte(s >> 16) + out[j+3] = byte(s >> 24) + out[j+4] = byte(s >> 32) + out[j+5] = byte(s >> 40) + out[j+6] = byte(s >> 48) + out[j+7] = byte(s >> 56) + j += 8 + } + return out +} + +// Sum512 returns a 64-byte BLAKE2b hash of data. +func Sum512(data []byte) [64]byte { + var d digest + d.initialize(defaultConfig) + d.Write(data) + return d.checkSum() +} + +// Sum256 returns a 32-byte BLAKE2b hash of data. +func Sum256(data []byte) (out [32]byte) { + var d digest + d.initialize(config256) + d.Write(data) + sum := d.checkSum() + copy(out[:], sum[:32]) + return +} diff --git a/vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.go b/vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.go new file mode 100644 index 00000000..ec53599f --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.go @@ -0,0 +1,47 @@ +//+build !noasm +//+build !appengine + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package blake2b + +//go:noescape +func compressAVX2Loop(p []uint8, in, iv, t, f, shffle, out []uint64) + +func compressAVX2(d *digest, p []uint8) { + var ( + in [8]uint64 + out [8]uint64 + shffle [8]uint64 + ) + + // vector for PSHUFB instruction + shffle[0] = 0x0201000706050403 + shffle[1] = 0x0a09080f0e0d0c0b + shffle[2] = 0x0201000706050403 + shffle[3] = 0x0a09080f0e0d0c0b + shffle[4] = 0x0100070605040302 + shffle[5] = 0x09080f0e0d0c0b0a + shffle[6] = 0x0100070605040302 + shffle[7] = 0x09080f0e0d0c0b0a + + in[0], in[1], in[2], in[3], in[4], in[5], in[6], in[7] = d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] + + compressAVX2Loop(p, in[:], iv[:], d.t[:], d.f[:], shffle[:], out[:]) + + d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] = out[0], out[1], out[2], out[3], out[4], out[5], out[6], out[7] +} diff --git a/vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.s b/vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.s new file mode 100644 index 00000000..24df234b --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compressAvx2_amd64.s @@ -0,0 +1,671 @@ +//+build !noasm !appengine + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// Based on AVX2 implementation from https://github.com/sneves/blake2-avx2/blob/master/blake2b-common.h +// +// Use github.com/fwessels/asm2plan9s on this file to assemble instructions to their Plan9 equivalent +// +// Assembly code below essentially follows the ROUND macro (see blake2b-round.h) which is defined as: +// #define ROUND(r) \ +// LOAD_MSG_ ##r ##_1(b0, b1); \ +// G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// LOAD_MSG_ ##r ##_2(b0, b1); \ +// G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ +// LOAD_MSG_ ##r ##_3(b0, b1); \ +// G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// LOAD_MSG_ ##r ##_4(b0, b1); \ +// G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); +// +// as well as the go equivalent in https://github.com/dchest/blake2b/blob/master/block.go +// +// As in the macro, G1/G2 in the 1st and 2nd half are identical (so literal copy of assembly) +// +// Rounds are also the same, except for the loading of the message (and rounds 1 & 11 and +// rounds 2 & 12 are identical) +// + +#define G1 \ + \ // G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); + BYTE $0xc5; BYTE $0xfd; BYTE $0xd4; BYTE $0xc4 \ // VPADDQ YMM0,YMM0,YMM4 /* v0 += m[0], v1 += m[2], v2 += m[4], v3 += m[6] */ + BYTE $0xc5; BYTE $0xfd; BYTE $0xd4; BYTE $0xc1 \ // VPADDQ YMM0,YMM0,YMM1 /* v0 += v4, v1 += v5, v2 += v6, v3 += v7 */ + BYTE $0xc5; BYTE $0xe5; BYTE $0xef; BYTE $0xd8 \ // VPXOR YMM3,YMM3,YMM0 /* v12 ^= v0, v13 ^= v1, v14 ^= v2, v15 ^= v3 */ + BYTE $0xc5; BYTE $0xfd; BYTE $0x70; BYTE $0xdb; BYTE $0xb1 \ // VPSHUFD YMM3,YMM3,0xb1 /* v12 = v12<<(64-32) | v12>>32, v13 = */ + BYTE $0xc5; BYTE $0xed; BYTE $0xd4; BYTE $0xd3 \ // VPADDQ YMM2,YMM2,YMM3 /* v8 += v12, v9 += v13, v10 += v14, v11 += v15 */ + BYTE $0xc5; BYTE $0xf5; BYTE $0xef; BYTE $0xca \ // VPXOR YMM1,YMM1,YMM2 /* v4 ^= v8, v5 ^= v9, v6 ^= v10, v7 ^= v11 */ + BYTE $0xc4; BYTE $0xe2; BYTE $0x75; BYTE $0x00; BYTE $0xce // VPSHUFB YMM1,YMM1,YMM6 /* v4 = v4<<(64-24) | v4>>24, ..., ..., v7 = v7<<(64-24) | v7>>24 */ + +#define G2 \ + BYTE $0xc5; BYTE $0xfd; BYTE $0xd4; BYTE $0xc5 \ // VPADDQ YMM0,YMM0,YMM5 /* v0 += m[1], v1 += m[3], v2 += m[5], v3 += m[7] */ + BYTE $0xc5; BYTE $0xfd; BYTE $0xd4; BYTE $0xc1 \ // VPADDQ YMM0,YMM0,YMM1 /* v0 += v4, v1 += v5, v2 += v6, v3 += v7 */ + BYTE $0xc5; BYTE $0xe5; BYTE $0xef; BYTE $0xd8 \ // VPXOR YMM3,YMM3,YMM0 /* v12 ^= v0, v13 ^= v1, v14 ^= v2, v15 ^= v3 */ + BYTE $0xc4; BYTE $0xe2; BYTE $0x65; BYTE $0x00; BYTE $0xdf \ // VPSHUFB YMM3,YMM3,YMM7 /* v12 = v12<<(64-16) | v12>>16, ..., ..., v15 = v15<<(64-16) | v15>>16 */ + BYTE $0xc5; BYTE $0xed; BYTE $0xd4; BYTE $0xd3 \ // VPADDQ YMM2,YMM2,YMM3 /* v8 += v12, v9 += v13, v10 += v14, v11 += v15 */ + BYTE $0xc5; BYTE $0xf5; BYTE $0xef; BYTE $0xca \ // VPXOR YMM1,YMM1,YMM2 /* v4 ^= v8, v5 ^= v9, v6 ^= v10, v7 ^= v11 */ + BYTE $0xc5; BYTE $0x75; BYTE $0xd4; BYTE $0xf9 \ // VPADDQ YMM15,YMM1,YMM1 /* temp reg = reg*2 */ + BYTE $0xc5; BYTE $0xf5; BYTE $0x73; BYTE $0xd1; BYTE $0x3f \ // VPSRLQ YMM1,YMM1,0x3f /* reg = reg>>63 */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x75; BYTE $0xef; BYTE $0xcf // VPXOR YMM1,YMM1,YMM15 /* ORed together: v4 = v4<<(64-63) | v4>>63, v5 = v5<<(64-63) | v5>>63 */ + +#define DIAGONALIZE \ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb \ // VPERMQ YMM3, YMM3, 0x93 + BYTE $0x93 \ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2 \ // VPERMQ YMM2, YMM2, 0x4e + BYTE $0x4e \ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 \ // VPERMQ YMM1, YMM1, 0x39 + BYTE $0x39 \ + // DO NOT DELETE -- macro delimiter (previous line extended) + +#define UNDIAGONALIZE \ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb \ // VPERMQ YMM3, YMM3, 0x39 + BYTE $0x39 \ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2 \ // VPERMQ YMM2, YMM2, 0x4e + BYTE $0x4e \ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 \ // VPERMQ YMM1, YMM1, 0x93 + BYTE $0x93 \ + // DO NOT DELETE -- macro delimiter (previous line extended) + +#define LOAD_SHUFFLE \ + MOVQ shffle+120(FP), SI \ // SI: &shuffle + BYTE $0xc5; BYTE $0xfe; BYTE $0x6f; BYTE $0x36 \ // VMOVDQU YMM6, [rsi] + BYTE $0xc5; BYTE $0xfe; BYTE $0x6f; BYTE $0x7e; BYTE $0x20 // VMOVDQU YMM7, 32[rsi] + +// func compressAVX2Loop(compressSSE(p []uint8, in, iv, t, f, shffle, out []uint64) +TEXT ·compressAVX2Loop(SB), 7, $0 + + // REGISTER USE + // Y0 - Y3: v0 - v15 + // Y4 - Y5: m[0] - m[7] + // Y6 - Y7: shuffle value + // Y8 - Y9: temp registers + // Y10 -Y13: copy of full message + // Y15: temp register + + // Load digest + MOVQ in+24(FP), SI // SI: &in + BYTE $0xc5; BYTE $0xfe; BYTE $0x6f; BYTE $0x06 // VMOVDQU YMM0, [rsi] + BYTE $0xc5; BYTE $0xfe; BYTE $0x6f; BYTE $0x4e; BYTE $0x20 // VMOVDQU YMM1, 32[rsi] + + // Already store digest into &out (so we can reload it later generically) + MOVQ out+144(FP), SI // SI: &out + BYTE $0xc5; BYTE $0xfe; BYTE $0x7f; BYTE $0x06 // VMOVDQU [rsi], YMM0 + BYTE $0xc5; BYTE $0xfe; BYTE $0x7f; BYTE $0x4e; BYTE $0x20 // VMOVDQU 32[rsi], YMM1 + + // Initialize message pointer and loop counter + MOVQ message+0(FP), DX // DX: &p (message) + MOVQ message_len+8(FP), R8 // R8: len(message) + SHRQ $7, R8 // len(message) / 128 + CMPQ R8, $0 + JEQ complete + +loop: + // Increment counter + MOVQ t+72(FP), SI // SI: &t + MOVQ 0(SI), R9 // + ADDQ $128, R9 // /* d.t[0] += BlockSize */ + MOVQ R9, 0(SI) // + CMPQ R9, $128 // /* if d.t[0] < BlockSize { */ + JGE noincr // + MOVQ 8(SI), R9 // + ADDQ $1, R9 // /* d.t[1]++ */ + MOVQ R9, 8(SI) // +noincr: // /* } */ + + // Load initialization vector + MOVQ iv+48(FP), SI // SI: &iv + BYTE $0xc5; BYTE $0xfe; BYTE $0x6f; BYTE $0x16 // VMOVDQU YMM2, [rsi] + BYTE $0xc5; BYTE $0xfe; BYTE $0x6f; BYTE $0x5e; BYTE $0x20 // VMOVDQU YMM3, 32[rsi] + MOVQ t+72(FP), SI // SI: &t + BYTE $0xc4; BYTE $0x63; BYTE $0x3d; BYTE $0x38; BYTE $0x06 // VINSERTI128 YMM8, YMM8, [rsi], 0 /* Y8 = t[0]+t[1] */ + BYTE $0x00 + MOVQ t+96(FP), SI // SI: &f + BYTE $0xc4; BYTE $0x63; BYTE $0x3d; BYTE $0x38; BYTE $0x06 // VINSERTI128 YMM8, YMM8, [rsi], 1 /* Y8 = t[0]+t[1]+f[0]+f[1] */ + BYTE $0x01 + BYTE $0xc4; BYTE $0xc1; BYTE $0x65; BYTE $0xef; BYTE $0xd8 // VPXOR YMM3,YMM3,YMM8 /* Y3 = Y3 ^ Y8 */ + + BYTE $0xc5; BYTE $0x7e; BYTE $0x6f; BYTE $0x12 // VMOVDQU YMM10, [rdx] /* Y10 = m[0]+ m[1]+ m[2]+ m[3] */ + BYTE $0xc5; BYTE $0x7e; BYTE $0x6f; BYTE $0x5a; BYTE $0x20 // VMOVDQU YMM11, 32[rdx] /* Y11 = m[4]+ m[5]+ m[6]+ m[7] */ + BYTE $0xc5; BYTE $0x7e; BYTE $0x6f; BYTE $0x62; BYTE $0x40 // VMOVDQU YMM12, 64[rdx] /* Y12 = m[8]+ m[9]+m[10]+m[11] */ + BYTE $0xc5; BYTE $0x7e; BYTE $0x6f; BYTE $0x6a; BYTE $0x60 // VMOVDQU YMM13, 96[rdx] /* Y13 = m[12]+m[13]+m[14]+m[15] */ + + LOAD_SHUFFLE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0xc1; BYTE $0x2d; BYTE $0x6c; BYTE $0xe3 // VPUNPCKLQDQ YMM4, YMM10, YMM11 /* m[0], m[4], m[2], m[6] */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x2d; BYTE $0x6d; BYTE $0xeb // VPUNPCKHQDQ YMM5, YMM10, YMM11 /* m[1], m[5], m[3], m[7] */ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xe4 // VPERMQ YMM4, YMM4, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xed // VPERMQ YMM5, YMM5, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0xc1; BYTE $0x1d; BYTE $0x6c; BYTE $0xe5 // VPUNPCKLQDQ YMM4, YMM12, YMM13 /* m[8], m[12], m[10], m[14] */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x1d; BYTE $0x6d; BYTE $0xed // VPUNPCKHQDQ YMM5, YMM12, YMM13 /* m[9], m[13], m[11], m[15] */ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xe4 // VPERMQ YMM4, YMM4, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xed // VPERMQ YMM5, YMM5, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 2 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc5 // VPUNPCKLQDQ YMM8, YMM11, YMM13 /* m[4], ____, ____, m[14] */ + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x03 /* m[14], m[4], ____, ____ */ /* xxxx 0011 = 0x03 */ + BYTE $0x03 + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xcd // VPUNPCKHQDQ YMM9, YMM12, YMM13 /* m[9], m[13], ____, ____ */ + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 /* m[9], m[13], ____, ____ */ /* 0010 0000 = 0x20 */ + BYTE $0x20 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc4 // VPERMQ YMM8, YMM12, 0x02 /* m[10], m[8], ____, ____ */ /* xxxx 0010 = 0x02 */ + BYTE $0x02 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0x30 /* ____, ____, m[15], ____ */ /* xx11 xxxx = 0x30 */ + BYTE $0x30 + BYTE $0xc4; BYTE $0x41; BYTE $0x35; BYTE $0x6c; BYTE $0xcb // VPUNPCKLQDQ YMM9, YMM9, YMM11 /* ____, ____, m[15], m[6] */ + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 /* m[9], m[13], m[15], m[6] */ /* 0011 0000 = 0x30 */ + BYTE $0x30 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc2 // VPERMQ YMM8, YMM10, 0x01 /* m[1], m[0], ____, ____ */ /* xxxx 0001 = 0x01 */ + BYTE $0x01 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xcc // VPUNPCKHQDQ YMM9, YMM11, YMM12 /* m[5], ____, ____, m[11] */ + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x03 /* m[11], m[5], ____, ____ */ /* xxxx 0011 = 0x03 */ + BYTE $0x03 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 /* m[1], m[0], m[11], m[5] */ /* 0010 0000 = 0x20 */ + BYTE $0x20 + + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc5 // VPUNPCKLQDQ YMM8, YMM10, YMM13 /* ___, m[12], m[2], ____ */ + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x09 /* m[12], m[2], ____, ____ */ /* xxxx 1001 = 0x09 */ + BYTE $0x09 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xca // VPUNPCKHQDQ YMM9, YMM11, YMM10 /* ____, ____, m[7], m[3] */ + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 /* m[9], m[13], m[15], m[6] */ /* 0011 0000 = 0x30 */ + BYTE $0x30 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 3 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc5 // VPERMQ YMM8, YMM13, 0x00 + BYTE $0x00 + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xc0 // VPUNPCKHQDQ YMM8, YMM12, YMM8 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xcd // VPUNPCKHQDQ YMM9, YMM11, YMM13 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x21 + BYTE $0x21 + + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6c; BYTE $0xc2 // VPUNPCKLQDQ YMM8, YMM12, YMM10 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0x55 + BYTE $0x55 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM10, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 + BYTE $0x30 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc2 // VPERMQ YMM8, YMM10, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6c; BYTE $0xc0 // VPUNPCKLQDQ YMM8, YMM12, YMM8 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xcc // VPUNPCKHQDQ YMM9, YMM11, YMM12 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x31 + BYTE $0x31 + + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xc3 // VPUNPCKLQDQ YMM8, YMM13, YMM11 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcb // VPERMQ YMM9, YMM11, 0x00 + BYTE $0x00 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6d; BYTE $0xc9 // VPUNPCKHQDQ YMM9, YMM10, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x21 + BYTE $0x21 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 4 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xc2 // VPUNPCKHQDQ YMM8, YMM11, YMM10 + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xcc // VPUNPCKHQDQ YMM9, YMM13, YMM12 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x21 + BYTE $0x21 + + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xc2 // VPUNPCKHQDQ YMM8, YMM12, YMM10 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0x08 + BYTE $0x08 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x20 + BYTE $0x20 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc3 // VPERMQ YMM8, YMM11, 0x55 + BYTE $0x55 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc0 // VPUNPCKLQDQ YMM8, YMM10, YMM8 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM11, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x21 + BYTE $0x21 + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc4 // VPUNPCKLQDQ YMM8, YMM11, YMM12 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xcc // VPUNPCKLQDQ YMM9, YMM10, YMM12 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x21 + BYTE $0x21 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 5 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xc3 // VPUNPCKHQDQ YMM8, YMM12, YMM11 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xcc // VPUNPCKLQDQ YMM9, YMM10, YMM12 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x30 + BYTE $0x30 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc3 // VPERMQ YMM8, YMM11, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc0 // VPUNPCKLQDQ YMM8, YMM10, YMM8 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM11, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x20 + BYTE $0x20 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc4 // VPERMQ YMM8, YMM12, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xc0 // VPUNPCKLQDQ YMM8, YMM13, YMM8 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xca // VPERMQ YMM9, YMM10, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM11, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x31 + BYTE $0x31 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc5 // VPERMQ YMM8, YMM13, 0x00 + BYTE $0x00 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6d; BYTE $0xc0 // VPUNPCKHQDQ YMM8, YMM10, YMM8 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0x55 + BYTE $0x55 + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM12, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x20 + BYTE $0x20 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 6 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc3 // VPUNPCKLQDQ YMM8, YMM10, YMM11 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xcc // VPUNPCKLQDQ YMM9, YMM10, YMM12 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x21 + BYTE $0x21 + + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xc4 // VPUNPCKLQDQ YMM8, YMM13, YMM12 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xca // VPUNPCKHQDQ YMM9, YMM12, YMM10 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 + BYTE $0x30 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc3 // VPERMQ YMM8, YMM11, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xca // VPUNPCKHQDQ YMM9, YMM13, YMM10 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x30 + BYTE $0x30 + + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xc3 // VPUNPCKHQDQ YMM8, YMM13, YMM11 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcc // VPERMQ YMM9, YMM12, 0x55 + BYTE $0x55 + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM13, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 + BYTE $0x30 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 7 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc2 // VPERMQ YMM8, YMM10, 0x55 + BYTE $0x55 + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xc0 // VPUNPCKLQDQ YMM8, YMM13, YMM8 + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xcb // VPUNPCKLQDQ YMM9, YMM13, YMM11 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x30 + BYTE $0x30 + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xc5 // VPUNPCKHQDQ YMM8, YMM11, YMM13 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcc // VPERMQ YMM9, YMM12, 0xaa + BYTE $0xaa + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xc9 // VPUNPCKHQDQ YMM9, YMM13, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x20 + BYTE $0x20 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc3 // VPUNPCKLQDQ YMM8, YMM10, YMM11 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcc // VPERMQ YMM9, YMM12, 0x01 + BYTE $0x01 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 + BYTE $0x20 + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xc2 // VPUNPCKHQDQ YMM8, YMM11, YMM10 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcc // VPERMQ YMM9, YMM12, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM10, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x31 + BYTE $0x31 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 8 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xc3 // VPUNPCKHQDQ YMM8, YMM13, YMM11 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xca // VPERMQ YMM9, YMM10, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xc9 // VPUNPCKLQDQ YMM9, YMM13, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 + BYTE $0x20 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc5 // VPERMQ YMM8, YMM13, 0xaa + BYTE $0xaa + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xc0 // VPUNPCKHQDQ YMM8, YMM12, YMM8 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6d; BYTE $0xcc // VPUNPCKHQDQ YMM9, YMM10, YMM12 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x21 + BYTE $0x21 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xc5 // VPUNPCKHQDQ YMM8, YMM11, YMM13 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6c; BYTE $0xca // VPUNPCKLQDQ YMM9, YMM12, YMM10 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x0c + BYTE $0x0c + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 + BYTE $0x20 + + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc3 // VPUNPCKLQDQ YMM8, YMM10, YMM11 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xcc // VPUNPCKLQDQ YMM9, YMM11, YMM12 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 + BYTE $0x30 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 9 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc5 // VPUNPCKLQDQ YMM8, YMM11, YMM13 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xca // VPERMQ YMM9, YMM10, 0x00 + BYTE $0x00 + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xc9 // VPUNPCKHQDQ YMM9, YMM12, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x31 + BYTE $0x31 + + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xc4 // VPUNPCKHQDQ YMM8, YMM13, YMM12 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcc // VPERMQ YMM9, YMM12, 0x00 + BYTE $0x00 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6d; BYTE $0xc9 // VPUNPCKHQDQ YMM9, YMM10, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x31 + BYTE $0x31 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcc // VPERMQ YMM9, YMM12, 0xaa + BYTE $0xaa + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6d; BYTE $0xc9 // VPUNPCKHQDQ YMM9, YMM10, YMM9 + BYTE $0xc4; BYTE $0xc3; BYTE $0x15; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM13, YMM9, 0x20 + BYTE $0x20 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc3 // VPERMQ YMM8, YMM11, 0xff + BYTE $0xff + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc0 // VPUNPCKLQDQ YMM8, YMM10, YMM8 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcb // VPERMQ YMM9, YMM11, 0x04 + BYTE $0x04 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x21 + BYTE $0x21 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 10 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc4 // VPERMQ YMM8, YMM12, 0x20 + BYTE $0x20 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xca // VPUNPCKHQDQ YMM9, YMM11, YMM10 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x31 + BYTE $0x31 + + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc3 // VPUNPCKLQDQ YMM8, YMM10, YMM11 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcb // VPERMQ YMM9, YMM11, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x31 + BYTE $0x31 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6d; BYTE $0xc4 // VPUNPCKHQDQ YMM8, YMM13, YMM12 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6d; BYTE $0xcd // VPUNPCKHQDQ YMM9, YMM10, YMM13 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x60 + BYTE $0x60 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x31 + BYTE $0x31 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc5 // VPERMQ YMM8, YMM13, 0xaa + BYTE $0xaa + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xc0 // VPUNPCKHQDQ YMM8, YMM12, YMM8 + BYTE $0xc4; BYTE $0x41; BYTE $0x15; BYTE $0x6c; BYTE $0xca // VPUNPCKLQDQ YMM9, YMM13, YMM10 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x21 + BYTE $0x21 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 1 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0xc1; BYTE $0x2d; BYTE $0x6c; BYTE $0xe3 // VPUNPCKLQDQ YMM4, YMM10, YMM11 /* m[0], m[4], m[2], m[6] */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x2d; BYTE $0x6d; BYTE $0xeb // VPUNPCKHQDQ YMM5, YMM10, YMM11 /* m[1], m[5], m[3], m[7] */ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xe4 // VPERMQ YMM4, YMM4, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xed // VPERMQ YMM5, YMM5, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0xc1; BYTE $0x1d; BYTE $0x6c; BYTE $0xe5 // VPUNPCKLQDQ YMM4, YMM12, YMM13 /* m[8], m[12], m[10], m[14] */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x1d; BYTE $0x6d; BYTE $0xed // VPUNPCKHQDQ YMM5, YMM12, YMM13 /* m[9], m[13], m[11], m[15] */ + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xe4 // VPERMQ YMM4, YMM4, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xed // VPERMQ YMM5, YMM5, 0xd8 /* 0x1101 1000 = 0xd8 */ + BYTE $0xd8 + + G1 + G2 + + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 2 + /////////////////////////////////////////////////////////////////////////// + + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6c; BYTE $0xc5 // VPUNPCKLQDQ YMM8, YMM11, YMM13 /* m[4], ____, ____, m[14] */ + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x03 /* m[14], m[4], ____, ____ */ /* xxxx 0011 = 0x03 */ + BYTE $0x03 + BYTE $0xc4; BYTE $0x41; BYTE $0x1d; BYTE $0x6d; BYTE $0xcd // VPUNPCKHQDQ YMM9, YMM12, YMM13 /* m[9], m[13], ____, ____ */ + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 /* m[9], m[13], ____, ____ */ /* 0010 0000 = 0x20 */ + BYTE $0x20 + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc4 // VPERMQ YMM8, YMM12, 0x02 /* m[10], m[8], ____, ____ */ /* xxxx 0010 = 0x02 */ + BYTE $0x02 + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xcd // VPERMQ YMM9, YMM13, 0x30 /* ____, ____, m[15], ____ */ /* xx11 xxxx = 0x30 */ + BYTE $0x30 + BYTE $0xc4; BYTE $0x41; BYTE $0x35; BYTE $0x6c; BYTE $0xcb // VPUNPCKLQDQ YMM9, YMM9, YMM11 /* ____, ____, m[15], m[6] */ + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 /* m[9], m[13], m[15], m[6] */ /* 0011 0000 = 0x30 */ + BYTE $0x30 + + G1 + G2 + + DIAGONALIZE + + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc2 // VPERMQ YMM8, YMM10, 0x01 /* m[1], m[0], ____, ____ */ /* xxxx 0001 = 0x01 */ + BYTE $0x01 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xcc // VPUNPCKHQDQ YMM9, YMM11, YMM12 /* m[5], ____, ____, m[11] */ + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc9 // VPERMQ YMM9, YMM9, 0x03 /* m[11], m[5], ____, ____ */ /* xxxx 0011 = 0x03 */ + BYTE $0x03 + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe1 // VPERM2I128 YMM4, YMM8, YMM9, 0x20 /* m[1], m[0], m[11], m[5] */ /* 0010 0000 = 0x20 */ + BYTE $0x20 + + BYTE $0xc4; BYTE $0x41; BYTE $0x2d; BYTE $0x6c; BYTE $0xc5 // VPUNPCKLQDQ YMM8, YMM10, YMM13 /* ___, m[12], m[2], ____ */ + BYTE $0xc4; BYTE $0x43; BYTE $0xfd; BYTE $0x00; BYTE $0xc0 // VPERMQ YMM8, YMM8, 0x09 /* m[12], m[2], ____, ____ */ /* xxxx 1001 = 0x09 */ + BYTE $0x09 + BYTE $0xc4; BYTE $0x41; BYTE $0x25; BYTE $0x6d; BYTE $0xca // VPUNPCKHQDQ YMM9, YMM11, YMM10 /* ____, ____, m[7], m[3] */ + BYTE $0xc4; BYTE $0xc3; BYTE $0x3d; BYTE $0x46; BYTE $0xe9 // VPERM2I128 YMM5, YMM8, YMM9, 0x30 /* m[9], m[13], m[15], m[6] */ /* 0011 0000 = 0x30 */ + BYTE $0x30 + + G1 + G2 + + UNDIAGONALIZE + + // Reload digest (most current value store in &out) + MOVQ out+144(FP), SI // SI: &in + BYTE $0xc5; BYTE $0x7e; BYTE $0x6f; BYTE $0x26 // VMOVDQU YMM12, [rsi] + BYTE $0xc5; BYTE $0x7e; BYTE $0x6f; BYTE $0x6e; BYTE $0x20 // VMOVDQU YMM13, 32[rsi] + + BYTE $0xc5; BYTE $0xfd; BYTE $0xef; BYTE $0xc2 // VPXOR YMM0,YMM0,YMM2 /* X0 = X0 ^ X4, X1 = X1 ^ X5 */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x7d; BYTE $0xef; BYTE $0xc4 // VPXOR YMM0,YMM0,YMM12 /* X0 = X0 ^ X12, X1 = X1 ^ X13 */ + BYTE $0xc5; BYTE $0xf5; BYTE $0xef; BYTE $0xcb // VPXOR YMM1,YMM1,YMM3 /* X2 = X2 ^ X6, X3 = X3 ^ X7 */ + BYTE $0xc4; BYTE $0xc1; BYTE $0x75; BYTE $0xef; BYTE $0xcd // VPXOR YMM1,YMM1,YMM13 /* X2 = X2 ^ X14, X3 = X3 ^ X15 */ + + // Store digest into &out + MOVQ out+144(FP), SI // SI: &out + BYTE $0xc5; BYTE $0xfe; BYTE $0x7f; BYTE $0x06 // VMOVDQU [rsi], YMM0 + BYTE $0xc5; BYTE $0xfe; BYTE $0x7f; BYTE $0x4e; BYTE $0x20 // VMOVDQU 32[rsi], YMM1 + + // Increment message pointer and check if there's more to do + ADDQ $128, DX // message += 128 + SUBQ $1, R8 + JNZ loop + +complete: + BYTE $0xc5; BYTE $0xf8; BYTE $0x77 // VZEROUPPER /* Prevent further context switches */ + RET + diff --git a/vendor/github.com/minio/blake2b-simd/compressAvx_amd64.go b/vendor/github.com/minio/blake2b-simd/compressAvx_amd64.go new file mode 100644 index 00000000..cfa12c04 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compressAvx_amd64.go @@ -0,0 +1,41 @@ +//+build !noasm +//+build !appengine + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package blake2b + +//go:noescape +func blockAVXLoop(p []uint8, in, iv, t, f, shffle, out []uint64) + +func compressAVX(d *digest, p []uint8) { + var ( + in [8]uint64 + out [8]uint64 + shffle [2]uint64 + ) + + // vector for PSHUFB instruction + shffle[0] = 0x0201000706050403 + shffle[1] = 0x0a09080f0e0d0c0b + + in[0], in[1], in[2], in[3], in[4], in[5], in[6], in[7] = d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] + + blockAVXLoop(p, in[:], iv[:], d.t[:], d.f[:], shffle[:], out[:]) + + d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] = out[0], out[1], out[2], out[3], out[4], out[5], out[6], out[7] +} diff --git a/vendor/github.com/minio/blake2b-simd/compressAvx_amd64.s b/vendor/github.com/minio/blake2b-simd/compressAvx_amd64.s new file mode 100644 index 00000000..f68e1739 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compressAvx_amd64.s @@ -0,0 +1,682 @@ +//+build !noasm !appengine + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// Based on SSE implementation from https://github.com/BLAKE2/BLAKE2/blob/master/sse/blake2b.c +// +// Use github.com/fwessels/asm2plan9s on this file to assemble instructions to their Plan9 equivalent +// +// Assembly code below essentially follows the ROUND macro (see blake2b-round.h) which is defined as: +// #define ROUND(r) \ +// LOAD_MSG_ ##r ##_1(b0, b1); \ +// G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// LOAD_MSG_ ##r ##_2(b0, b1); \ +// G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ +// LOAD_MSG_ ##r ##_3(b0, b1); \ +// G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// LOAD_MSG_ ##r ##_4(b0, b1); \ +// G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); +// +// as well as the go equivalent in https://github.com/dchest/blake2b/blob/master/block.go +// +// As in the macro, G1/G2 in the 1st and 2nd half are identical (so literal copy of assembly) +// +// Rounds are also the same, except for the loading of the message (and rounds 1 & 11 and +// rounds 2 & 12 are identical) +// + +#define G1 \ + \ // G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); + LONG $0xd479c1c4; BYTE $0xc0 \ // VPADDQ XMM0,XMM0,XMM8 /* v0 += m[0], v1 += m[2] */ + LONG $0xd471c1c4; BYTE $0xc9 \ // VPADDQ XMM1,XMM1,XMM9 /* v2 += m[4], v3 += m[6] */ + LONG $0xc2d4f9c5 \ // VPADDQ XMM0,XMM0,XMM2 /* v0 += v4, v1 += v5 */ + LONG $0xcbd4f1c5 \ // VPADDQ XMM1,XMM1,XMM3 /* v2 += v6, v3 += v7 */ + LONG $0xf0efc9c5 \ // VPXOR XMM6,XMM6,XMM0 /* v12 ^= v0, v13 ^= v1 */ + LONG $0xf9efc1c5 \ // VPXOR XMM7,XMM7,XMM1 /* v14 ^= v2, v15 ^= v3 */ + LONG $0xf670f9c5; BYTE $0xb1 \ // VPSHUFD XMM6,XMM6,0xb1 /* v12 = v12<<(64-32) | v12>>32, v13 = v13<<(64-32) | v13>>32 */ + LONG $0xff70f9c5; BYTE $0xb1 \ // VPSHUFD XMM7,XMM7,0xb1 /* v14 = v14<<(64-32) | v14>>32, v15 = v15<<(64-32) | v15>>32 */ + LONG $0xe6d4d9c5 \ // VPADDQ XMM4,XMM4,XMM6 /* v8 += v12, v9 += v13 */ + LONG $0xefd4d1c5 \ // VPADDQ XMM5,XMM5,XMM7 /* v10 += v14, v11 += v15 */ + LONG $0xd4efe9c5 \ // VPXOR XMM2,XMM2,XMM4 /* v4 ^= v8, v5 ^= v9 */ + LONG $0xddefe1c5 \ // VPXOR XMM3,XMM3,XMM5 /* v6 ^= v10, v7 ^= v11 */ + LONG $0x0069c2c4; BYTE $0xd4 \ // VPSHUFB XMM2,XMM2,XMM12 /* v4 = v4<<(64-24) | v4>>24, v5 = v5<<(64-24) | v5>>24 */ + LONG $0x0061c2c4; BYTE $0xdc // VPSHUFB XMM3,XMM3,XMM12 /* v6 = v6<<(64-24) | v6>>24, v7 = v7<<(64-24) | v7>>24 */ + +#define G2 \ + \ // G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); + LONG $0xd479c1c4; BYTE $0xc2 \ // VPADDQ XMM0,XMM0,XMM10 /* v0 += m[1], v1 += m[3] */ + LONG $0xd471c1c4; BYTE $0xcb \ // VPADDQ XMM1,XMM1,XMM11 /* v2 += m[5], v3 += m[7] */ + LONG $0xc2d4f9c5 \ // VPADDQ XMM0,XMM0,XMM2 /* v0 += v4, v1 += v5 */ + LONG $0xcbd4f1c5 \ // VPADDQ XMM1,XMM1,XMM3 /* v2 += v6, v3 += v7 */ + LONG $0xf0efc9c5 \ // VPXOR XMM6,XMM6,XMM0 /* v12 ^= v0, v13 ^= v1 */ + LONG $0xf9efc1c5 \ // VPXOR XMM7,XMM7,XMM1 /* v14 ^= v2, v15 ^= v3 */ + LONG $0xf670fbc5; BYTE $0x39 \ // VPSHUFLW XMM6,XMM6,0x39 /* combined with next ... */ + LONG $0xf670fac5; BYTE $0x39 \ // VPSHUFHW XMM6,XMM6,0x39 /* v12 = v12<<(64-16) | v12>>16, v13 = v13<<(64-16) | v13>>16 */ + LONG $0xff70fbc5; BYTE $0x39 \ // VPSHUFLW XMM7,XMM7,0x39 /* combined with next ... */ + LONG $0xff70fac5; BYTE $0x39 \ // VPSHUFHW XMM7,XMM7,0x39 /* v14 = v14<<(64-16) | v14>>16, v15 = v15<<(64-16) | v15>>16 */ + LONG $0xe6d4d9c5 \ // VPADDQ XMM4,XMM4,XMM6 /* v8 += v12, v9 += v13 */ + LONG $0xefd4d1c5 \ // VPADDQ XMM5,XMM5,XMM7 /* v10 += v14, v11 += v15 */ + LONG $0xd4efe9c5 \ // VPXOR XMM2,XMM2,XMM4 /* v4 ^= v8, v5 ^= v9 */ + LONG $0xddefe1c5 \ // VPXOR XMM3,XMM3,XMM5 /* v6 ^= v10, v7 ^= v11 */ + LONG $0xfad469c5 \ // VPADDQ XMM15,XMM2,XMM2 /* temp reg = reg*2 */ + LONG $0xd273e9c5; BYTE $0x3f \ // VPSRLQ XMM2,XMM2,0x3f /* reg = reg>>63 */ + LONG $0xef69c1c4; BYTE $0xd7 \ // VPXOR XMM2,XMM2,XMM15 /* ORed together: v4 = v4<<(64-63) | v4>>63, v5 = v5<<(64-63) | v5>>63 */ + LONG $0xfbd461c5 \ // VPADDQ XMM15,XMM3,XMM3 /* temp reg = reg*2 */ + LONG $0xd373e1c5; BYTE $0x3f \ // VPSRLQ XMM3,XMM3,0x3f /* reg = reg>>63 */ + LONG $0xef61c1c4; BYTE $0xdf // VPXOR XMM3,XMM3,XMM15 /* ORed together: v6 = v6<<(64-63) | v6>>63, v7 = v7<<(64-63) | v7>>63 */ + +#define DIAGONALIZE \ + \ // DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); + MOVOU X6, X13 \ /* t0 = row4l;\ */ + MOVOU X2, X14 \ /* t1 = row2l;\ */ + MOVOU X4, X6 \ /* row4l = row3l;\ */ + MOVOU X5, X4 \ /* row3l = row3h;\ */ + MOVOU X6, X5 \ /* row3h = row4l;\ */ + LONG $0x6c1141c4; BYTE $0xfd \ // VPUNPCKLQDQ XMM15, XMM13, XMM13 /* _mm_unpacklo_epi64(t0, t0) */ + LONG $0x6d41c1c4; BYTE $0xf7 \ // VPUNPCKHQDQ XMM6, XMM7, XMM15 /* row4l = _mm_unpackhi_epi64(row4h, ); \ */ + LONG $0xff6c41c5 \ // VPUNPCKLQDQ XMM15, XMM7, XMM7 /* _mm_unpacklo_epi64(row4h, row4h) */ + LONG $0x6d11c1c4; BYTE $0xff \ // VPUNPCKHQDQ XMM7, XMM13, XMM15 /* row4h = _mm_unpackhi_epi64(t0, ); \ */ + LONG $0xfb6c61c5 \ // VPUNPCKLQDQ XMM15, XMM3, XMM3 /* _mm_unpacklo_epi64(row2h, row2h) */ + LONG $0x6d69c1c4; BYTE $0xd7 \ // VPUNPCKHQDQ XMM2, XMM2, XMM15 /* row2l = _mm_unpackhi_epi64(row2l, ); \ */ + LONG $0x6c0941c4; BYTE $0xfe \ // VPUNPCKLQDQ XMM15, XMM14, XMM14 /* _mm_unpacklo_epi64(t1, t1) */ + LONG $0x6d61c1c4; BYTE $0xdf // VPUNPCKHQDQ XMM3, XMM3, XMM15 /* row2h = _mm_unpackhi_epi64(row2h, ) */ + +#define UNDIAGONALIZE \ + \ // UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); + MOVOU X4, X13 \ /* t0 = row3l;\ */ + MOVOU X5, X4 \ /* row3l = row3h;\ */ + MOVOU X13, X5 \ /* row3h = t0;\ */ + MOVOU X2, X13 \ /* t0 = row2l;\ */ + MOVOU X6, X14 \ /* t1 = row4l;\ */ + LONG $0xfa6c69c5 \ // VPUNPCKLQDQ XMM15, XMM2, XMM2 /* _mm_unpacklo_epi64(row2l, row2l) */ + LONG $0x6d61c1c4; BYTE $0xd7 \ // VPUNPCKHQDQ XMM2, XMM3, XMM15 /* row2l = _mm_unpackhi_epi64(row2h, ); \ */ + LONG $0xfb6c61c5 \ // VPUNPCKLQDQ XMM15, XMM3, XMM3 /* _mm_unpacklo_epi64(row2h, row2h) */ + LONG $0x6d11c1c4; BYTE $0xdf \ // VPUNPCKHQDQ XMM3, XMM13, XMM15 /* row2h = _mm_unpackhi_epi64(t0, ); \ */ + LONG $0xff6c41c5 \ // VPUNPCKLQDQ XMM15, XMM7, XMM7 /* _mm_unpacklo_epi64(row4h, row4h) */ + LONG $0x6d49c1c4; BYTE $0xf7 \ // VPUNPCKHQDQ XMM6, XMM6, XMM15 /* row4l = _mm_unpackhi_epi64(row4l, ); \ */ + LONG $0x6c0941c4; BYTE $0xfe \ // VPUNPCKLQDQ XMM15, XMM14, XMM14 /* _mm_unpacklo_epi64(t1, t1) */ + LONG $0x6d41c1c4; BYTE $0xff // VPUNPCKHQDQ XMM7, XMM7, XMM15 /* row4h = _mm_unpackhi_epi64(row4h, ) */ + +#define LOAD_SHUFFLE \ + \ // Load shuffle value + MOVQ shffle+120(FP), SI \ // SI: &shuffle + MOVOU 0(SI), X12 // X12 = 03040506 07000102 0b0c0d0e 0f08090a + +// func blockAVXLoop(p []uint8, in, iv, t, f, shffle, out []uint64) +TEXT ·blockAVXLoop(SB), 7, $0 + // REGISTER USE + // R8: loop counter + // DX: message pointer + // SI: temp pointer for loading + // X0 - X7: v0 - v15 + // X8 - X11: m[0] - m[7] + // X12: shuffle value + // X13 - X15: temp registers + + // Load digest + MOVQ in+24(FP), SI // SI: &in + MOVOU 0(SI), X0 // X0 = in[0]+in[1] /* row1l = LOAD( &S->h[0] ); */ + MOVOU 16(SI), X1 // X1 = in[2]+in[3] /* row1h = LOAD( &S->h[2] ); */ + MOVOU 32(SI), X2 // X2 = in[4]+in[5] /* row2l = LOAD( &S->h[4] ); */ + MOVOU 48(SI), X3 // X3 = in[6]+in[7] /* row2h = LOAD( &S->h[6] ); */ + + // Already store digest into &out (so we can reload it later generically) + MOVQ out+144(FP), SI // SI: &out + MOVOU X0, 0(SI) // out[0]+out[1] = X0 + MOVOU X1, 16(SI) // out[2]+out[3] = X1 + MOVOU X2, 32(SI) // out[4]+out[5] = X2 + MOVOU X3, 48(SI) // out[6]+out[7] = X3 + + // Initialize message pointer and loop counter + MOVQ message+0(FP), DX // DX: &p (message) + MOVQ message_len+8(FP), R8 // R8: len(message) + SHRQ $7, R8 // len(message) / 128 + CMPQ R8, $0 + JEQ complete + +loop: + // Increment counter + MOVQ t+72(FP), SI // SI: &t + MOVQ 0(SI), R9 + ADDQ $128, R9 // /* d.t[0] += BlockSize */ + MOVQ R9, 0(SI) + CMPQ R9, $128 // /* if d.t[0] < BlockSize { */ + JGE noincr + MOVQ 8(SI), R9 + ADDQ $1, R9 // /* d.t[1]++ */ + MOVQ R9, 8(SI) +noincr: // /* } */ + + // Load initialization vector + MOVQ iv+48(FP), SI // SI: &iv + MOVOU 0(SI), X4 // X4 = iv[0]+iv[1] /* row3l = LOAD( &blake2b_IV[0] ); */ + MOVOU 16(SI), X5 // X5 = iv[2]+iv[3] /* row3h = LOAD( &blake2b_IV[2] ); */ + MOVOU 32(SI), X6 // X6 = iv[4]+iv[5] /* LOAD( &blake2b_IV[4] ) */ + MOVOU 48(SI), X7 // X7 = iv[6]+iv[7] /* LOAD( &blake2b_IV[6] ) */ + MOVQ t+72(FP), SI // SI: &t + MOVOU 0(SI), X8 // X8 = t[0]+t[1] /* LOAD( &S->t[0] ) */ + PXOR X8, X6 // X6 = X6 ^ X8 /* row4l = _mm_xor_si128( , ); */ + MOVQ t+96(FP), SI // SI: &f + MOVOU 0(SI), X8 // X8 = f[0]+f[1] /* LOAD( &S->f[0] ) */ + PXOR X8, X7 // X7 = X7 ^ X8 /* row4h = _mm_xor_si128( , ); */ + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+m[1] + MOVOU 16(DX), X13 // X13 = m[2]+m[3] + MOVOU 32(DX), X14 // X14 = m[4]+m[5] + MOVOU 48(DX), X15 // X15 = m[6]+m[7] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[0], m[2] */ + LONG $0x6c0941c4; BYTE $0xcf // VPUNPCKLQDQ XMM9, XMM14, XMM15 /* m[4], m[6] */ + LONG $0x6d1941c4; BYTE $0xd5 // VPUNPCKHQDQ XMM10, XMM12, XMM13 /* m[1], m[3] */ + LONG $0x6d0941c4; BYTE $0xdf // VPUNPCKHQDQ XMM11, XMM14, XMM15 /* m[5], m[7] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 64(DX), X12 // X12 = m[8]+ m[9] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[8],m[10] */ + LONG $0x6c0941c4; BYTE $0xcf // VPUNPCKLQDQ XMM9, XMM14, XMM15 /* m[12],m[14] */ + LONG $0x6d1941c4; BYTE $0xd5 // VPUNPCKHQDQ XMM10, XMM12, XMM13 /* m[9],m[11] */ + LONG $0x6d0941c4; BYTE $0xdf // VPUNPCKHQDQ XMM11, XMM14, XMM15 /* m[13],m[15] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 2 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 112(DX), X12 // X12 = m[14]+m[15] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[14], m[4] */ + LONG $0x6d0941c4; BYTE $0xcf // VPUNPCKHQDQ XMM9, XMM14, XMM15 /* m[9], m[13] */ + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 48(DX), X15 // X15 = m[6]+ m[7] + LONG $0x6c1141c4; BYTE $0xd6 // VPUNPCKLQDQ XMM10, XMM13, XMM14 /* m[10], m[8] */ + LONG $0x0f0143c4; WORD $0x08dc // VPALIGNR XMM11, XMM15, XMM12, 0x8 /* m[15], m[6] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + LONG $0x0f1943c4; WORD $0x08c4 // VPALIGNR XMM8, XMM12, XMM12, 0x8 /* m[1], m[0] */ + LONG $0x6d0941c4; BYTE $0xcd // VPUNPCKHQDQ XMM9, XMM14, XMM13 /* m[11], m[5] */ + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + LONG $0x6c0941c4; BYTE $0xd4 // VPUNPCKLQDQ XMM10, XMM14, XMM12 /* m[12], m[2] */ + LONG $0x6d1141c4; BYTE $0xdc // VPUNPCKHQDQ XMM11, XMM13, XMM12 /* m[7], m[3] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 3 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 32(DX), X12 // X12 = m[4]+ m[5] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x0f0943c4; WORD $0x08c5 // VPALIGNR XMM8, XMM14, XMM13, 0x8 /* m[11], m[12] */ + LONG $0x6d1941c4; BYTE $0xcf // VPUNPCKHQDQ XMM9, XMM12, XMM15 /* m[5], m[15] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 64(DX), X15 // X15 = m[8]+ m[9] + LONG $0x6c0141c4; BYTE $0xd4 // VPUNPCKLQDQ XMM10, XMM15, XMM12 /* m[8], m[0] */ + LONG $0x6d0941c4; BYTE $0xde // VPUNPCKHQDQ XMM11, XMM14, XMM14 /* ___, m[13] */ + LONG $0x6c1141c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM13, XMM11 /* m[2], ___ */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + LONG $0x6d1941c4; BYTE $0xc4 // VPUNPCKHQDQ XMM8, XMM12, XMM12 /* ___, m[3] */ + LONG $0x6c0141c4; BYTE $0xc0 // VPUNPCKLQDQ XMM8, XMM15, XMM8 /* m[10], ___ */ + LONG $0x6d1141c4; BYTE $0xce // VPUNPCKHQDQ XMM9, XMM13, XMM14 /* m[7], m[9] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X14 // X14 = m[4]+ m[5] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6c0141c4; BYTE $0xd5 // VPUNPCKLQDQ XMM10, XMM15, XMM13 /* m[14], m[6] */ + LONG $0x0f0943c4; WORD $0x08dc // VPALIGNR XMM11, XMM14, XMM12, 0x8 /* m[1], m[4] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 4 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + LONG $0x6d1141c4; BYTE $0xc4 // VPUNPCKHQDQ XMM8, XMM13, XMM12 /* m[7], m[3] */ + LONG $0x6d0141c4; BYTE $0xce // VPUNPCKHQDQ XMM9, XMM15, XMM14 /* m[13], m[11] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 64(DX), X13 // X13 = m[8]+ m[9] + MOVOU 112(DX), X14 // X14 = m[14]+m[15] + LONG $0x6d1141c4; BYTE $0xd4 // VPUNPCKHQDQ XMM10, XMM13, XMM12 /* m[9], m[1] */ + LONG $0x6c0141c4; BYTE $0xde // VPUNPCKLQDQ XMM11, XMM15, XMM14 /* m[12], m[14] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d1141c4; BYTE $0xc5 // VPUNPCKHQDQ XMM8, XMM13, XMM13 /* ___, m[5] */ + LONG $0x6c1941c4; BYTE $0xc0 // VPUNPCKLQDQ XMM8, XMM12, XMM8 /* m[2], ____ */ + LONG $0x6d0141c4; BYTE $0xcf // VPUNPCKHQDQ XMM9, XMM15, XMM15 /* ___, m[15] */ + LONG $0x6c1141c4; BYTE $0xc9 // VPUNPCKLQDQ XMM9, XMM13, XMM9 /* m[4], ____ */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X15 // X15 = m[8]+ m[9] + LONG $0x6c1141c4; BYTE $0xd6 // VPUNPCKLQDQ XMM10, XMM13, XMM14 /* m[6], m[10] */ + LONG $0x6c1941c4; BYTE $0xdf // VPUNPCKLQDQ XMM11, XMM12, XMM15 /* m[0], m[8] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 5 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + LONG $0x6d0941c4; BYTE $0xc5 // VPUNPCKHQDQ XMM8, XMM14, XMM13 /* m[9], m[5] */ + LONG $0x6c1941c4; BYTE $0xcf // VPUNPCKLQDQ XMM9, XMM12, XMM15 /* m[2], m[10] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0941c4; BYTE $0xd6 // VPUNPCKHQDQ XMM10, XMM14, XMM14 /* ___, m[7] */ + LONG $0x6c1941c4; BYTE $0xd2 // VPUNPCKLQDQ XMM10, XMM12, XMM10 /* m[0], ____ */ + LONG $0x6d0141c4; BYTE $0xdf // VPUNPCKHQDQ XMM11, XMM15, XMM15 /* ___, m[15] */ + LONG $0x6c1141c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM13, XMM11 /* m[4], ____ */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0941c4; BYTE $0xc6 // VPUNPCKHQDQ XMM8, XMM14, XMM14 /* ___, m[11] */ + LONG $0x6c0141c4; BYTE $0xc0 // VPUNPCKLQDQ XMM8, XMM15, XMM8 /* m[14], ____ */ + LONG $0x6d1941c4; BYTE $0xcc // VPUNPCKHQDQ XMM9, XMM12, XMM12 /* ___, m[3] */ + LONG $0x6c1141c4; BYTE $0xc9 // VPUNPCKLQDQ XMM9, XMM13, XMM9 /* m[6], ____ */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 64(DX), X13 // X13 = m[8]+ m[9] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + LONG $0x0f0943c4; WORD $0x08d4 // VPALIGNR XMM10, XMM14, XMM12, 0x8 /* m[1], m[12] */ + LONG $0x6d0941c4; BYTE $0xde // VPUNPCKHQDQ XMM11, XMM14, XMM14 /* ___, m[13] */ + LONG $0x6c1141c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM13, XMM11 /* m[8], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 6 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 64(DX), X15 // X15 = m[8]+ m[9] + LONG $0x6c1141c4; BYTE $0xc6 // VPUNPCKLQDQ XMM8, XMM13, XMM14 /* m[2], m[6] */ + LONG $0x6c1941c4; BYTE $0xcf // VPUNPCKLQDQ XMM9, XMM12, XMM15 /* m[0], m[8] */ + MOVOU 80(DX), X12 // X12 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + LONG $0x6c0941c4; BYTE $0xd4 // VPUNPCKLQDQ XMM10, XMM14, XMM12 /* m[12], m[10] */ + LONG $0x6d1941c4; BYTE $0xdd // VPUNPCKHQDQ XMM11, XMM12, XMM13 /* m[11], m[3] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0941c4; BYTE $0xc6 // VPUNPCKHQDQ XMM8, XMM14, XMM14 /* ___, m[7] */ + LONG $0x6c1141c4; BYTE $0xc0 // VPUNPCKLQDQ XMM8, XMM13, XMM8 /* m[4], ____ */ + LONG $0x6d0141c4; BYTE $0xcc // VPUNPCKHQDQ XMM9, XMM15, XMM12 /* m[15], m[1] */ + MOVOU 64(DX), X12 // X12 = m[8]+ m[9] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + LONG $0x6d0941c4; BYTE $0xd5 // VPUNPCKHQDQ XMM10, XMM14, XMM13 /* m[13], m[5] */ + LONG $0x6d1941c4; BYTE $0xdc // VPUNPCKHQDQ XMM11, XMM12, XMM12 /* ___, m[9] */ + LONG $0x6c0141c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM15, XMM11 /* m[14], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 7 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d1941c4; BYTE $0xc4 // VPUNPCKHQDQ XMM8, XMM12, XMM12 /* ___, m[1] */ + LONG $0x6c0941c4; BYTE $0xc0 // VPUNPCKLQDQ XMM8, XMM14, XMM8 /* m[12], ____ */ + LONG $0x6c0141c4; BYTE $0xcd // VPUNPCKLQDQ XMM9, XMM15, XMM13 /* m[14], m[4] */ + MOVOU 80(DX), X12 // X12 = m[10]+m[11] + LONG $0x6d1141c4; BYTE $0xd7 // VPUNPCKHQDQ XMM10, XMM13, XMM15 /* m[5], m[15] */ + LONG $0x0f1943c4; WORD $0x08de // VPALIGNR XMM11, XMM12, XMM14, 0x8 /* m[13], m[10] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[0], m[6] */ + LONG $0x0f0943c4; WORD $0x08ce // VPALIGNR XMM9, XMM14, XMM14, 0x8 /* m[9], m[8] */ + MOVOU 16(DX), X14 // X14 = m[2]+ m[3] + LONG $0x6d1141c4; BYTE $0xd6 // VPUNPCKHQDQ XMM10, XMM13, XMM14 /* m[7], m[3] */ + LONG $0x6d0141c4; BYTE $0xdf // VPUNPCKHQDQ XMM11, XMM15, XMM15 /* ___, m[11] */ + LONG $0x6c0941c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM14, XMM11 /* m[2], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 8 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0941c4; BYTE $0xc5 // VPUNPCKHQDQ XMM8, XMM14, XMM13 /* m[13], m[7] */ + LONG $0x6d1941c4; BYTE $0xcc // VPUNPCKHQDQ XMM9, XMM12, XMM12 /* ___, m[3] */ + LONG $0x6c0941c4; BYTE $0xc9 // VPUNPCKLQDQ XMM9, XMM14, XMM9 /* m[12], ____ */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 64(DX), X13 // X13 = m[8]+ m[9] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + LONG $0x0f0143c4; WORD $0x08d6 // VPALIGNR XMM10, XMM15, XMM14, 0x8 /* m[11], m[14] */ + LONG $0x6d1941c4; BYTE $0xdd // VPUNPCKHQDQ XMM11, XMM12, XMM13 /* m[1], m[9] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d1141c4; BYTE $0xc7 // VPUNPCKHQDQ XMM8, XMM13, XMM15 /* m[5], m[15] */ + LONG $0x6c0941c4; BYTE $0xcc // VPUNPCKLQDQ XMM9, XMM14, XMM12 /* m[8], m[2] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + LONG $0x6c1941c4; BYTE $0xd5 // VPUNPCKLQDQ XMM10, XMM12, XMM13 /* m[0], m[4] */ + LONG $0x6c0941c4; BYTE $0xdf // VPUNPCKLQDQ XMM11, XMM14, XMM15 /* m[6], m[10] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 9 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6c1141c4; BYTE $0xc7 // VPUNPCKLQDQ XMM8, XMM13, XMM15 /* m[6], m[14] */ + LONG $0x0f1943c4; WORD $0x08ce // VPALIGNR XMM9, XMM12, XMM14, 0x8 /* m[11], m[0] */ + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + LONG $0x6d0141c4; BYTE $0xd6 // VPUNPCKHQDQ XMM10, XMM15, XMM14 /* m[15], m[9] */ + LONG $0x0f0943c4; WORD $0x08dd // VPALIGNR XMM11, XMM14, XMM13, 0x8 /* m[3], m[8] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + LONG $0x6d0141c4; BYTE $0xc7 // VPUNPCKHQDQ XMM8, XMM15, XMM15 /* ___, m[13] */ + LONG $0x6c0141c4; BYTE $0xc0 // VPUNPCKLQDQ XMM8, XMM15, XMM8 /* m[12], ____ */ + LONG $0x0f0943c4; WORD $0x08cc // VPALIGNR XMM9, XMM14, XMM12, 0x8 /* m[1], m[10] */ + MOVOU 32(DX), X12 // X12 = m[4]+ m[5] + MOVOU 48(DX), X15 // X15 = m[6]+ m[7] + LONG $0x6d0141c4; BYTE $0xd7 // VPUNPCKHQDQ XMM10, XMM15, XMM15 /* ___, m[7] */ + LONG $0x6c1141c4; BYTE $0xd2 // VPUNPCKLQDQ XMM10, XMM13, XMM10 /* m[2], ____ */ + LONG $0x6d1941c4; BYTE $0xdc // VPUNPCKHQDQ XMM11, XMM12, XMM12 /* ___, m[5] */ + LONG $0x6c1941c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM12, XMM11 /* m[4], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 0 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + LONG $0x6c0141c4; BYTE $0xc6 // VPUNPCKLQDQ XMM8, XMM15, XMM14 /* m[10], m[8] */ + LONG $0x6d1141c4; BYTE $0xcc // VPUNPCKHQDQ XMM9, XMM13, XMM12 /* m[7], m[1] */ + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X14 // X14 = m[4]+ m[5] + LONG $0x6c1941c4; BYTE $0xd6 // VPUNPCKLQDQ XMM10, XMM12, XMM14 /* m[2], m[4] */ + LONG $0x6d0941c4; BYTE $0xde // VPUNPCKHQDQ XMM11, XMM14, XMM14 /* ___, m[5] */ + LONG $0x6c1141c4; BYTE $0xdb // VPUNPCKLQDQ XMM11, XMM13, XMM11 /* m[6], ____ */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 64(DX), X13 // X13 = m[8]+ m[9] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0141c4; BYTE $0xc5 // VPUNPCKHQDQ XMM8, XMM15, XMM13 /* m[15], m[9] */ + LONG $0x6d1941c4; BYTE $0xce // VPUNPCKHQDQ XMM9, XMM12, XMM14 /* m[3], m[13] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + LONG $0x0f0143c4; WORD $0x08d5 // VPALIGNR XMM10, XMM15, XMM13, 0x8 /* m[11], m[14] */ + LONG $0x6c0941c4; BYTE $0xdc // VPUNPCKLQDQ XMM11, XMM14, XMM12 /* m[12], m[0] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 1 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+m[1] + MOVOU 16(DX), X13 // X13 = m[2]+m[3] + MOVOU 32(DX), X14 // X14 = m[4]+m[5] + MOVOU 48(DX), X15 // X15 = m[6]+m[7] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[0], m[2] */ + LONG $0x6c0941c4; BYTE $0xcf // VPUNPCKLQDQ XMM9, XMM14, XMM15 /* m[4], m[6] */ + LONG $0x6d1941c4; BYTE $0xd5 // VPUNPCKHQDQ XMM10, XMM12, XMM13 /* m[1], m[3] */ + LONG $0x6d0941c4; BYTE $0xdf // VPUNPCKHQDQ XMM11, XMM14, XMM15 /* m[5], m[7] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 64(DX), X12 // X12 = m[8]+ m[9] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[8],m[10] */ + LONG $0x6c0941c4; BYTE $0xcf // VPUNPCKLQDQ XMM9, XMM14, XMM15 /* m[12],m[14] */ + LONG $0x6d1941c4; BYTE $0xd5 // VPUNPCKHQDQ XMM10, XMM12, XMM13 /* m[9],m[11] */ + LONG $0x6d0941c4; BYTE $0xdf // VPUNPCKHQDQ XMM11, XMM14, XMM15 /* m[13],m[15] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 2 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 112(DX), X12 // X12 = m[14]+m[15] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + LONG $0x6c1941c4; BYTE $0xc5 // VPUNPCKLQDQ XMM8, XMM12, XMM13 /* m[14], m[4] */ + LONG $0x6d0941c4; BYTE $0xcf // VPUNPCKHQDQ XMM9, XMM14, XMM15 /* m[9], m[13] */ + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 48(DX), X15 // X15 = m[6]+ m[7] + LONG $0x6c1141c4; BYTE $0xd6 // VPUNPCKLQDQ XMM10, XMM13, XMM14 /* m[10], m[8] */ + LONG $0x0f0143c4; WORD $0x08dc // VPALIGNR XMM11, XMM15, XMM12, 0x8 /* m[15], m[6] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + LONG $0x0f1943c4; WORD $0x08c4 // VPALIGNR XMM8, XMM12, XMM12, 0x8 /* m[1], m[0] */ + LONG $0x6d0941c4; BYTE $0xcd // VPUNPCKHQDQ XMM9, XMM14, XMM13 /* m[11], m[5] */ + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + LONG $0x6c0941c4; BYTE $0xd4 // VPUNPCKLQDQ XMM10, XMM14, XMM12 /* m[12], m[2] */ + LONG $0x6d1141c4; BYTE $0xdc // VPUNPCKHQDQ XMM11, XMM13, XMM12 /* m[7], m[3] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + // Reload digest (most current value store in &out) + MOVQ out+144(FP), SI // SI: &in + MOVOU 0(SI), X12 // X12 = in[0]+in[1] /* row1l = LOAD( &S->h[0] ); */ + MOVOU 16(SI), X13 // X13 = in[2]+in[3] /* row1h = LOAD( &S->h[2] ); */ + MOVOU 32(SI), X14 // X14 = in[4]+in[5] /* row2l = LOAD( &S->h[4] ); */ + MOVOU 48(SI), X15 // X15 = in[6]+in[7] /* row2h = LOAD( &S->h[6] ); */ + + // Final computations and prepare for storing + PXOR X4, X0 // X0 = X0 ^ X4 /* row1l = _mm_xor_si128( row3l, row1l ); */ + PXOR X5, X1 // X1 = X1 ^ X5 /* row1h = _mm_xor_si128( row3h, row1h ); */ + PXOR X12, X0 // X0 = X0 ^ X12 /* STORE( &S->h[0], _mm_xor_si128( LOAD( &S->h[0] ), row1l ) ); */ + PXOR X13, X1 // X1 = X1 ^ X13 /* STORE( &S->h[2], _mm_xor_si128( LOAD( &S->h[2] ), row1h ) ); */ + PXOR X6, X2 // X2 = X2 ^ X6 /* row2l = _mm_xor_si128( row4l, row2l ); */ + PXOR X7, X3 // X3 = X3 ^ X7 /* row2h = _mm_xor_si128( row4h, row2h ); */ + PXOR X14, X2 // X2 = X2 ^ X14 /* STORE( &S->h[4], _mm_xor_si128( LOAD( &S->h[4] ), row2l ) ); */ + PXOR X15, X3 // X3 = X3 ^ X15 /* STORE( &S->h[6], _mm_xor_si128( LOAD( &S->h[6] ), row2h ) ); */ + + // Store digest into &out + MOVQ out+144(FP), SI // SI: &out + MOVOU X0, 0(SI) // out[0]+out[1] = X0 + MOVOU X1, 16(SI) // out[2]+out[3] = X1 + MOVOU X2, 32(SI) // out[4]+out[5] = X2 + MOVOU X3, 48(SI) // out[6]+out[7] = X3 + + // Increment message pointer and check if there's more to do + ADDQ $128, DX // message += 128 + SUBQ $1, R8 + JNZ loop + +complete: + RET diff --git a/vendor/github.com/minio/blake2b-simd/compressSse_amd64.go b/vendor/github.com/minio/blake2b-simd/compressSse_amd64.go new file mode 100644 index 00000000..d539a7ad --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compressSse_amd64.go @@ -0,0 +1,41 @@ +//+build !noasm +//+build !appengine + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package blake2b + +//go:noescape +func blockSSELoop(p []uint8, in, iv, t, f, shffle, out []uint64) + +func compressSSE(d *digest, p []uint8) { + var ( + in [8]uint64 + out [8]uint64 + shffle [2]uint64 + ) + + // vector for PSHUFB instruction + shffle[0] = 0x0201000706050403 + shffle[1] = 0x0a09080f0e0d0c0b + + in[0], in[1], in[2], in[3], in[4], in[5], in[6], in[7] = d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] + + blockSSELoop(p, in[:], iv[:], d.t[:], d.f[:], shffle[:], out[:]) + + d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] = out[0], out[1], out[2], out[3], out[4], out[5], out[6], out[7] +} diff --git a/vendor/github.com/minio/blake2b-simd/compressSse_amd64.s b/vendor/github.com/minio/blake2b-simd/compressSse_amd64.s new file mode 100644 index 00000000..6f31c949 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compressSse_amd64.s @@ -0,0 +1,770 @@ +//+build !noasm !appengine + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// Based on SSE implementation from https://github.com/BLAKE2/BLAKE2/blob/master/sse/blake2b.c +// +// Use github.com/fwessels/asm2plan9s on this file to assemble instructions to their Plan9 equivalent +// +// Assembly code below essentially follows the ROUND macro (see blake2b-round.h) which is defined as: +// #define ROUND(r) \ +// LOAD_MSG_ ##r ##_1(b0, b1); \ +// G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// LOAD_MSG_ ##r ##_2(b0, b1); \ +// G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ +// LOAD_MSG_ ##r ##_3(b0, b1); \ +// G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// LOAD_MSG_ ##r ##_4(b0, b1); \ +// G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +// UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); +// +// as well as the go equivalent in https://github.com/dchest/blake2b/blob/master/block.go +// +// As in the macro, G1/G2 in the 1st and 2nd half are identical (so literal copy of assembly) +// +// Rounds are also the same, except for the loading of the message (and rounds 1 & 11 and +// rounds 2 & 12 are identical) +// + +#define G1 \ + \ // G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); + LONG $0xd40f4166; BYTE $0xc0 \ // PADDQ XMM0,XMM8 /* v0 += m[0], v1 += m[2] */ + LONG $0xd40f4166; BYTE $0xc9 \ // PADDQ XMM1,XMM9 /* v2 += m[4], v3 += m[6] */ + LONG $0xc2d40f66 \ // PADDQ XMM0,XMM2 /* v0 += v4, v1 += v5 */ + LONG $0xcbd40f66 \ // PADDQ XMM1,XMM3 /* v2 += v6, v3 += v7 */ + LONG $0xf0ef0f66 \ // PXOR XMM6,XMM0 /* v12 ^= v0, v13 ^= v1 */ + LONG $0xf9ef0f66 \ // PXOR XMM7,XMM1 /* v14 ^= v2, v15 ^= v3 */ + LONG $0xf6700f66; BYTE $0xb1 \ // PSHUFD XMM6,XMM6,0xb1 /* v12 = v12<<(64-32) | v12>>32, v13 = v13<<(64-32) | v13>>32 */ + LONG $0xff700f66; BYTE $0xb1 \ // PSHUFD XMM7,XMM7,0xb1 /* v14 = v14<<(64-32) | v14>>32, v15 = v15<<(64-32) | v15>>32 */ + LONG $0xe6d40f66 \ // PADDQ XMM4,XMM6 /* v8 += v12, v9 += v13 */ + LONG $0xefd40f66 \ // PADDQ XMM5,XMM7 /* v10 += v14, v11 += v15 */ + LONG $0xd4ef0f66 \ // PXOR XMM2,XMM4 /* v4 ^= v8, v5 ^= v9 */ + LONG $0xddef0f66 \ // PXOR XMM3,XMM5 /* v6 ^= v10, v7 ^= v11 */ + LONG $0x380f4166; WORD $0xd400 \ // PSHUFB XMM2,XMM12 /* v4 = v4<<(64-24) | v4>>24, v5 = v5<<(64-24) | v5>>24 */ + LONG $0x380f4166; WORD $0xdc00 // PSHUFB XMM3,XMM12 /* v6 = v6<<(64-24) | v6>>24, v7 = v7<<(64-24) | v7>>24 */ + +#define G2 \ + \ // G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); + LONG $0xd40f4166; BYTE $0xc2 \ // PADDQ XMM0,XMM10 /* v0 += m[1], v1 += m[3] */ + LONG $0xd40f4166; BYTE $0xcb \ // PADDQ XMM1,XMM11 /* v2 += m[5], v3 += m[7] */ + LONG $0xc2d40f66 \ // PADDQ XMM0,XMM2 /* v0 += v4, v1 += v5 */ + LONG $0xcbd40f66 \ // PADDQ XMM1,XMM3 /* v2 += v6, v3 += v7 */ + LONG $0xf0ef0f66 \ // PXOR XMM6,XMM0 /* v12 ^= v0, v13 ^= v1 */ + LONG $0xf9ef0f66 \ // PXOR XMM7,XMM1 /* v14 ^= v2, v15 ^= v3 */ + LONG $0xf6700ff2; BYTE $0x39 \ // PSHUFLW XMM6,XMM6,0x39 /* combined with next ... */ + LONG $0xf6700ff3; BYTE $0x39 \ // PSHUFHW XMM6,XMM6,0x39 /* v12 = v12<<(64-16) | v12>>16, v13 = v13<<(64-16) | v13>>16 */ + LONG $0xff700ff2; BYTE $0x39 \ // PSHUFLW XMM7,XMM7,0x39 /* combined with next ... */ + LONG $0xff700ff3; BYTE $0x39 \ // PSHUFHW XMM7,XMM7,0x39 /* v14 = v14<<(64-16) | v14>>16, v15 = v15<<(64-16) | v15>>16 */ + LONG $0xe6d40f66 \ // PADDQ XMM4,XMM6 /* v8 += v12, v9 += v13 */ + LONG $0xefd40f66 \ // PADDQ XMM5,XMM7 /* v10 += v14, v11 += v15 */ + LONG $0xd4ef0f66 \ // PXOR XMM2,XMM4 /* v4 ^= v8, v5 ^= v9 */ + LONG $0xddef0f66 \ // PXOR XMM3,XMM5 /* v6 ^= v10, v7 ^= v11 */ + MOVOU X2, X15 \ + LONG $0xd40f4466; BYTE $0xfa \ // PADDQ XMM15,XMM2 /* temp reg = reg*2 */ + LONG $0xd2730f66; BYTE $0x3f \ // PSRLQ XMM2,0x3f /* reg = reg>>63 */ + LONG $0xef0f4166; BYTE $0xd7 \ // PXOR XMM2,XMM15 /* ORed together: v4 = v4<<(64-63) | v4>>63, v5 = v5<<(64-63) | v5>>63 */ + MOVOU X3, X15 \ + LONG $0xd40f4466; BYTE $0xfb \ // PADDQ XMM15,XMM3 /* temp reg = reg*2 */ + LONG $0xd3730f66; BYTE $0x3f \ // PSRLQ XMM3,0x3f /* reg = reg>>63 */ + LONG $0xef0f4166; BYTE $0xdf // PXOR XMM3,XMM15 /* ORed together: v6 = v6<<(64-63) | v6>>63, v7 = v7<<(64-63) | v7>>63 */ + +#define DIAGONALIZE \ + \ // DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); + MOVOU X6, X13 \ /* t0 = row4l;\ */ + MOVOU X2, X14 \ /* t1 = row2l;\ */ + MOVOU X4, X6 \ /* row4l = row3l;\ */ + MOVOU X5, X4 \ /* row3l = row3h;\ */ + MOVOU X6, X5 \ /* row3h = row4l;\ */ + LONG $0x6c0f4566; BYTE $0xfd \ // PUNPCKLQDQ XMM15, XMM13 /* _mm_unpacklo_epi64(t0, t0) */ + MOVOU X7, X6 \ + LONG $0x6d0f4166; BYTE $0xf7 \ // PUNPCKHQDQ XMM6, XMM15 /* row4l = _mm_unpackhi_epi64(row4h, ); \ */ + LONG $0x6c0f4466; BYTE $0xff \ // PUNPCKLQDQ XMM15, XMM7 /* _mm_unpacklo_epi64(row4h, row4h) */ + MOVOU X13, X7 \ + LONG $0x6d0f4166; BYTE $0xff \ // PUNPCKHQDQ XMM7, XMM15 /* row4h = _mm_unpackhi_epi64(t0, ); \ */ + LONG $0x6c0f4466; BYTE $0xfb \ // PUNPCKLQDQ XMM15, XMM3 /* _mm_unpacklo_epi64(row2h, row2h) */ + LONG $0x6d0f4166; BYTE $0xd7 \ // PUNPCKHQDQ XMM2, XMM15 /* row2l = _mm_unpackhi_epi64(row2l, ); \ */ + LONG $0x6c0f4566; BYTE $0xfe \ // PUNPCKLQDQ XMM15, XMM14 /* _mm_unpacklo_epi64(t1, t1) */ + LONG $0x6d0f4166; BYTE $0xdf // PUNPCKHQDQ XMM3, XMM15 /* row2h = _mm_unpackhi_epi64(row2h, ) */ + +#define UNDIAGONALIZE \ + \ // UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); + MOVOU X4, X13 \ /* t0 = row3l;\ */ + MOVOU X5, X4 \ /* row3l = row3h;\ */ + MOVOU X13, X5 \ /* row3h = t0;\ */ + MOVOU X2, X13 \ /* t0 = row2l;\ */ + MOVOU X6, X14 \ /* t1 = row4l;\ */ + LONG $0x6c0f4466; BYTE $0xfa \ // PUNPCKLQDQ XMM15, XMM2 /* _mm_unpacklo_epi64(row2l, row2l) */ + MOVOU X3, X2 \ + LONG $0x6d0f4166; BYTE $0xd7 \ // PUNPCKHQDQ XMM2, XMM15 /* row2l = _mm_unpackhi_epi64(row2h, ); \ */ + LONG $0x6c0f4466; BYTE $0xfb \ // PUNPCKLQDQ XMM15, XMM3 /* _mm_unpacklo_epi64(row2h, row2h) */ + MOVOU X13, X3 \ + LONG $0x6d0f4166; BYTE $0xdf \ // PUNPCKHQDQ XMM3, XMM15 /* row2h = _mm_unpackhi_epi64(t0, ); \ */ + LONG $0x6c0f4466; BYTE $0xff \ // PUNPCKLQDQ XMM15, XMM7 /* _mm_unpacklo_epi64(row4h, row4h) */ + LONG $0x6d0f4166; BYTE $0xf7 \ // PUNPCKHQDQ XMM6, XMM15 /* row4l = _mm_unpackhi_epi64(row4l, ); \ */ + LONG $0x6c0f4566; BYTE $0xfe \ // PUNPCKLQDQ XMM15, XMM14 /* _mm_unpacklo_epi64(t1, t1) */ + LONG $0x6d0f4166; BYTE $0xff // PUNPCKHQDQ XMM7, XMM15 /* row4h = _mm_unpackhi_epi64(row4h, ) */ + +#define LOAD_SHUFFLE \ + \ // Load shuffle value + MOVQ shffle+120(FP), SI \ // SI: &shuffle + MOVOU 0(SI), X12 // X12 = 03040506 07000102 0b0c0d0e 0f08090a + +// func blockSSELoop(p []uint8, in, iv, t, f, shffle, out []uint64) +TEXT ·blockSSELoop(SB), 7, $0 + // REGISTER USE + // R8: loop counter + // DX: message pointer + // SI: temp pointer for loading + // X0 - X7: v0 - v15 + // X8 - X11: m[0] - m[7] + // X12: shuffle value + // X13 - X15: temp registers + + // Load digest + MOVQ in+24(FP), SI // SI: &in + MOVOU 0(SI), X0 // X0 = in[0]+in[1] /* row1l = LOAD( &S->h[0] ); */ + MOVOU 16(SI), X1 // X1 = in[2]+in[3] /* row1h = LOAD( &S->h[2] ); */ + MOVOU 32(SI), X2 // X2 = in[4]+in[5] /* row2l = LOAD( &S->h[4] ); */ + MOVOU 48(SI), X3 // X3 = in[6]+in[7] /* row2h = LOAD( &S->h[6] ); */ + + // Already store digest into &out (so we can reload it later generically) + MOVQ out+144(FP), SI // SI: &out + MOVOU X0, 0(SI) // out[0]+out[1] = X0 + MOVOU X1, 16(SI) // out[2]+out[3] = X1 + MOVOU X2, 32(SI) // out[4]+out[5] = X2 + MOVOU X3, 48(SI) // out[6]+out[7] = X3 + + // Initialize message pointer and loop counter + MOVQ message+0(FP), DX // DX: &p (message) + MOVQ message_len+8(FP), R8 // R8: len(message) + SHRQ $7, R8 // len(message) / 128 + CMPQ R8, $0 + JEQ complete + +loop: + // Increment counter + MOVQ t+72(FP), SI // SI: &t + MOVQ 0(SI), R9 + ADDQ $128, R9 // /* d.t[0] += BlockSize */ + MOVQ R9, 0(SI) + CMPQ R9, $128 // /* if d.t[0] < BlockSize { */ + JGE noincr + MOVQ 8(SI), R9 + ADDQ $1, R9 // /* d.t[1]++ */ + MOVQ R9, 8(SI) + +noincr: // /* } */ + + // Load initialization vector + MOVQ iv+48(FP), SI // SI: &iv + MOVOU 0(SI), X4 // X4 = iv[0]+iv[1] /* row3l = LOAD( &blake2b_IV[0] ); */ + MOVOU 16(SI), X5 // X5 = iv[2]+iv[3] /* row3h = LOAD( &blake2b_IV[2] ); */ + MOVOU 32(SI), X6 // X6 = iv[4]+iv[5] /* LOAD( &blake2b_IV[4] ) */ + MOVOU 48(SI), X7 // X7 = iv[6]+iv[7] /* LOAD( &blake2b_IV[6] ) */ + MOVQ t+72(FP), SI // SI: &t + MOVOU 0(SI), X8 // X8 = t[0]+t[1] /* LOAD( &S->t[0] ) */ + PXOR X8, X6 // X6 = X6 ^ X8 /* row4l = _mm_xor_si128( , ); */ + MOVQ t+96(FP), SI // SI: &f + MOVOU 0(SI), X8 // X8 = f[0]+f[1] /* LOAD( &S->f[0] ) */ + PXOR X8, X7 // X7 = X7 ^ X8 /* row4h = _mm_xor_si128( , ); */ + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+m[1] + MOVOU 16(DX), X13 // X13 = m[2]+m[3] + MOVOU 32(DX), X14 // X14 = m[4]+m[5] + MOVOU 48(DX), X15 // X15 = m[6]+m[7] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[0], m[2] */ + MOVOU X14, X9 + LONG $0x6c0f4566; BYTE $0xcf // PUNPCKLQDQ XMM9, XMM15 /* m[4], m[6] */ + MOVOU X12, X10 + LONG $0x6d0f4566; BYTE $0xd5 // PUNPCKHQDQ XMM10, XMM13 /* m[1], m[3] */ + MOVOU X14, X11 + LONG $0x6d0f4566; BYTE $0xdf // PUNPCKHQDQ XMM11, XMM15 /* m[5], m[7] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 64(DX), X12 // X12 = m[8]+ m[9] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[8],m[10] */ + MOVOU X14, X9 + LONG $0x6c0f4566; BYTE $0xcf // PUNPCKLQDQ XMM9, XMM15 /* m[12],m[14] */ + MOVOU X12, X10 + LONG $0x6d0f4566; BYTE $0xd5 // PUNPCKHQDQ XMM10, XMM13 /* m[9],m[11] */ + MOVOU X14, X11 + LONG $0x6d0f4566; BYTE $0xdf // PUNPCKHQDQ XMM11, XMM15 /* m[13],m[15] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 2 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 112(DX), X12 // X12 = m[14]+m[15] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[14], m[4] */ + MOVOU X14, X9 + LONG $0x6d0f4566; BYTE $0xcf // PUNPCKHQDQ XMM9, XMM15 /* m[9], m[13] */ + MOVOU 80(DX), X10 // X10 = m[10]+m[11] + MOVOU 48(DX), X11 // X11 = m[6]+ m[7] + LONG $0x6c0f4566; BYTE $0xd6 // PUNPCKLQDQ XMM10, XMM14 /* m[10], m[8] */ + LONG $0x3a0f4566; WORD $0xdc0f; BYTE $0x08 // PALIGNR XMM11, XMM12, 0x8 /* m[15], m[6] */; ; ; ; ; + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU X12, X8 + LONG $0x3a0f4566; WORD $0xc40f; BYTE $0x08 // PALIGNR XMM8, XMM12, 0x8 /* m[1], m[0] */ + MOVOU X14, X9 + LONG $0x6d0f4566; BYTE $0xcd // PUNPCKHQDQ XMM9, XMM13 /* m[11], m[5] */ + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X11 // X11 = m[6]+ m[7] + MOVOU 96(DX), X10 // X10 = m[12]+m[13] + LONG $0x6c0f4566; BYTE $0xd4 // PUNPCKLQDQ XMM10, XMM12 /* m[12], m[2] */ + LONG $0x6d0f4566; BYTE $0xdc // PUNPCKHQDQ XMM11, XMM12 /* m[7], m[3] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 3 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 32(DX), X12 // X12 = m[4]+ m[5] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X14, X8 + LONG $0x3a0f4566; WORD $0xc50f; BYTE $0x08 // PALIGNR XMM8, XMM13, 0x8 /* m[11], m[12] */ + MOVOU X12, X9 + LONG $0x6d0f4566; BYTE $0xcf // PUNPCKHQDQ XMM9, XMM15 /* m[5], m[15] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 64(DX), X10 // X10 = m[8]+ m[9] + LONG $0x6c0f4566; BYTE $0xd4 // PUNPCKLQDQ XMM10, XMM12 /* m[8], m[0] */ + LONG $0x6d0f4566; BYTE $0xf6 // PUNPCKHQDQ XMM14, XMM14 /* ___, m[13] */ + MOVOU X13, X11 + LONG $0x6c0f4566; BYTE $0xde // PUNPCKLQDQ XMM11, XMM14 /* m[2], ___ */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + MOVOU X12, X9 + LONG $0x6d0f4566; BYTE $0xcc // PUNPCKHQDQ XMM9, XMM12 /* ___, m[3] */ + MOVOU X15, X8 + LONG $0x6c0f4566; BYTE $0xc1 // PUNPCKLQDQ XMM8, XMM9 /* m[10], ___ */ + MOVOU X13, X9 + LONG $0x6d0f4566; BYTE $0xce // PUNPCKHQDQ XMM9, XMM14 /* m[7], m[9] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X11 // X11 = m[4]+ m[5] + MOVOU 112(DX), X10 // X10 = m[14]+m[15] + LONG $0x6c0f4566; BYTE $0xd5 // PUNPCKLQDQ XMM10, XMM13 /* m[14], m[6] */ + LONG $0x3a0f4566; WORD $0xdc0f; BYTE $0x08 // PALIGNR XMM11, XMM12, 0x8 /* m[1], m[4] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 4 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + MOVOU X13, X8 + LONG $0x6d0f4566; BYTE $0xc4 // PUNPCKHQDQ XMM8, XMM12 /* m[7], m[3] */ + MOVOU X15, X9 + LONG $0x6d0f4566; BYTE $0xce // PUNPCKHQDQ XMM9, XMM14 /* m[13], m[11] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 64(DX), X10 // X10 = m[8]+ m[9] + MOVOU 112(DX), X14 // X14 = m[14]+m[15] + LONG $0x6d0f4566; BYTE $0xd4 // PUNPCKHQDQ XMM10, XMM12 /* m[9], m[1] */ + MOVOU X15, X11 + LONG $0x6c0f4566; BYTE $0xde // PUNPCKLQDQ XMM11, XMM14 /* m[12], m[14] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X13, X9 + LONG $0x6d0f4566; BYTE $0xcd // PUNPCKHQDQ XMM9, XMM13 /* ___, m[5] */ + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc1 // PUNPCKLQDQ XMM8, XMM9 /* m[2], ____ */ + MOVOU X15, X10 + LONG $0x6d0f4566; BYTE $0xd7 // PUNPCKHQDQ XMM10, XMM15 /* ___, m[15] */ + MOVOU X13, X9 + LONG $0x6c0f4566; BYTE $0xca // PUNPCKLQDQ XMM9, XMM10 /* m[4], ____ */ + MOVOU 0(DX), X11 // X11 = m[0]+ m[1] + MOVOU 48(DX), X10 // X10 = m[6]+ m[7] + MOVOU 64(DX), X15 // X15 = m[8]+ m[9] + LONG $0x6c0f4566; BYTE $0xd6 // PUNPCKLQDQ XMM10, XMM14 /* m[6], m[10] */ + LONG $0x6c0f4566; BYTE $0xdf // PUNPCKLQDQ XMM11, XMM15 /* m[0], m[8] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 5 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + MOVOU X14, X8 + LONG $0x6d0f4566; BYTE $0xc5 // PUNPCKHQDQ XMM8, XMM13 /* m[9], m[5] */ + MOVOU X12, X9 + LONG $0x6c0f4566; BYTE $0xcf // PUNPCKLQDQ XMM9, XMM15 /* m[2], m[10] */ + MOVOU 0(DX), X10 // X10 = m[0]+ m[1] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0f4566; BYTE $0xf6 // PUNPCKHQDQ XMM14, XMM14 /* ___, m[7] */ + LONG $0x6c0f4566; BYTE $0xd6 // PUNPCKLQDQ XMM10, XMM14 /* m[0], ____ */ + LONG $0x6d0f4566; BYTE $0xff // PUNPCKHQDQ XMM15, XMM15 /* ___, m[15] */ + MOVOU X13, X11 + LONG $0x6c0f4566; BYTE $0xdf // PUNPCKLQDQ XMM11, XMM15 /* m[4], ____ */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + LONG $0x6d0f4566; BYTE $0xf6 // PUNPCKHQDQ XMM14, XMM14 /* ___, m[11] */ + MOVOU X15, X8 + LONG $0x6c0f4566; BYTE $0xc6 // PUNPCKLQDQ XMM8, XMM14 /* m[14], ____ */ + LONG $0x6d0f4566; BYTE $0xe4 // PUNPCKHQDQ XMM12, XMM12 /* ___, m[3] */ + MOVOU X13, X9 + LONG $0x6c0f4566; BYTE $0xcc // PUNPCKLQDQ XMM9, XMM12 /* m[6], ____ */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 64(DX), X11 // X11 = m[8]+ m[9] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU X14, X10 + LONG $0x3a0f4566; WORD $0xd40f; BYTE $0x08 // PALIGNR XMM10, XMM12, 0x8 /* m[1], m[12] */ + LONG $0x6d0f4566; BYTE $0xf6 // PUNPCKHQDQ XMM14, XMM14 /* ___, m[13] */ + LONG $0x6c0f4566; BYTE $0xde // PUNPCKLQDQ XMM11, XMM14 /* m[8], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 6 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 64(DX), X15 // X15 = m[8]+ m[9] + MOVOU X13, X8 + LONG $0x6c0f4566; BYTE $0xc6 // PUNPCKLQDQ XMM8, XMM14 /* m[2], m[6] */ + MOVOU X12, X9 + LONG $0x6c0f4566; BYTE $0xcf // PUNPCKLQDQ XMM9, XMM15 /* m[0], m[8] */ + MOVOU 80(DX), X12 // X12 = m[10]+m[11] + MOVOU 96(DX), X10 // X10 = m[12]+m[13] + LONG $0x6c0f4566; BYTE $0xd4 // PUNPCKLQDQ XMM10, XMM12 /* m[12], m[10] */ + MOVOU X12, X11 + LONG $0x6d0f4566; BYTE $0xdd // PUNPCKHQDQ XMM11, XMM13 /* m[11], m[3] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 48(DX), X14 // X14 = m[6]+ m[7] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X14, X9 + LONG $0x6d0f4566; BYTE $0xce // PUNPCKHQDQ XMM9, XMM14 /* ___, m[7] */ + MOVOU X13, X8 + LONG $0x6c0f4566; BYTE $0xc1 // PUNPCKLQDQ XMM8, XMM9 /* m[4], ____ */ + MOVOU X15, X9 + LONG $0x6d0f4566; BYTE $0xcc // PUNPCKHQDQ XMM9, XMM12 /* m[15], m[1] */ + MOVOU 64(DX), X12 // X12 = m[8]+ m[9] + MOVOU 96(DX), X10 // X10 = m[12]+m[13] + LONG $0x6d0f4566; BYTE $0xd5 // PUNPCKHQDQ XMM10, XMM13 /* m[13], m[5] */ + LONG $0x6d0f4566; BYTE $0xe4 // PUNPCKHQDQ XMM12, XMM12 /* ___, m[9] */ + MOVOU X15, X11 + LONG $0x6c0f4566; BYTE $0xdc // PUNPCKLQDQ XMM11, XMM12 /* m[14], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 7 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X12, X9 + LONG $0x6d0f4566; BYTE $0xcc // PUNPCKHQDQ XMM9, XMM12 /* ___, m[1] */ + MOVOU X14, X8 + LONG $0x6c0f4566; BYTE $0xc1 // PUNPCKLQDQ XMM8, XMM9 /* m[12], ____ */ + MOVOU X15, X9 + LONG $0x6c0f4566; BYTE $0xcd // PUNPCKLQDQ XMM9, XMM13 /* m[14], m[4] */ + MOVOU 80(DX), X11 // X11 = m[10]+m[11] + MOVOU X13, X10 + LONG $0x6d0f4566; BYTE $0xd7 // PUNPCKHQDQ XMM10, XMM15 /* m[5], m[15] */ + LONG $0x3a0f4566; WORD $0xde0f; BYTE $0x08 // PALIGNR XMM11, XMM14, 0x8 /* m[13], m[10] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[0], m[6] */ + MOVOU X14, X9 + LONG $0x3a0f4566; WORD $0xce0f; BYTE $0x08 // PALIGNR XMM9, XMM14, 0x8 /* m[9], m[8] */ + MOVOU 16(DX), X11 // X14 = m[2]+ m[3] + MOVOU X13, X10 + LONG $0x6d0f4566; BYTE $0xd3 // PUNPCKHQDQ XMM10, XMM11 /* m[7], m[3] */ + LONG $0x6d0f4566; BYTE $0xff // PUNPCKHQDQ XMM15, XMM15 /* ___, m[11] */ + LONG $0x6c0f4566; BYTE $0xdf // PUNPCKLQDQ XMM11, XMM15 /* m[2], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 8 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X14, X8 + LONG $0x6d0f4566; BYTE $0xc5 // PUNPCKHQDQ XMM8, XMM13 /* m[13], m[7] */ + MOVOU X12, X10 + LONG $0x6d0f4566; BYTE $0xd4 // PUNPCKHQDQ XMM10, XMM12 /* ___, m[3] */ + MOVOU X14, X9 + LONG $0x6c0f4566; BYTE $0xca // PUNPCKLQDQ XMM9, XMM10 /* m[12], ____ */ + MOVOU 0(DX), X11 // X11 = m[0]+ m[1] + MOVOU 64(DX), X13 // X13 = m[8]+ m[9] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU X15, X10 + LONG $0x3a0f4566; WORD $0xd60f; BYTE $0x08 // PALIGNR XMM10, XMM14, 0x8 /* m[11], m[14] */ + LONG $0x6d0f4566; BYTE $0xdd // PUNPCKHQDQ XMM11, XMM13 /* m[1], m[9] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X13, X8 + LONG $0x6d0f4566; BYTE $0xc7 // PUNPCKHQDQ XMM8, XMM15 /* m[5], m[15] */ + MOVOU X14, X9 + LONG $0x6c0f4566; BYTE $0xcc // PUNPCKLQDQ XMM9, XMM12 /* m[8], m[2] */ + MOVOU 0(DX), X10 // X10 = m[0]+ m[1] + MOVOU 48(DX), X11 // X11 = m[6]+ m[7] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + LONG $0x6c0f4566; BYTE $0xd5 // PUNPCKLQDQ XMM10, XMM13 /* m[0], m[4] */ + LONG $0x6c0f4566; BYTE $0xdf // PUNPCKLQDQ XMM11, XMM15 /* m[6], m[10] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 9 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X13, X8 + LONG $0x6c0f4566; BYTE $0xc7 // PUNPCKLQDQ XMM8, XMM15 /* m[6], m[14] */ + MOVOU X12, X9 + LONG $0x3a0f4566; WORD $0xce0f; BYTE $0x08 // PALIGNR XMM9, XMM14, 0x8 /* m[11], m[0] */ + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 64(DX), X11 // X11 = m[8]+ m[9] + MOVOU X15, X10 + LONG $0x6d0f4566; BYTE $0xd3 // PUNPCKHQDQ XMM10, XMM11 /* m[15], m[9] */ + LONG $0x3a0f4566; WORD $0xdd0f; BYTE $0x08 // PALIGNR XMM11, XMM13, 0x8 /* m[3], m[8] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 16(DX), X13 // X13 = m[2]+ m[3] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + MOVOU X15, X9 + LONG $0x6d0f4566; BYTE $0xcf // PUNPCKHQDQ XMM9, XMM15 /* ___, m[13] */ + MOVOU X15, X8 + LONG $0x6c0f4566; BYTE $0xc1 // PUNPCKLQDQ XMM8, XMM9 /* m[12], ____ */ + MOVOU X14, X9 + LONG $0x3a0f4566; WORD $0xcc0f; BYTE $0x08 // PALIGNR XMM9, XMM12, 0x8 /* m[1], m[10] */ + MOVOU 32(DX), X12 // X12 = m[4]+ m[5] + MOVOU 48(DX), X15 // X15 = m[6]+ m[7] + MOVOU X15, X11 + LONG $0x6d0f4566; BYTE $0xdf // PUNPCKHQDQ XMM11, XMM15 /* ___, m[7] */ + MOVOU X13, X10 + LONG $0x6c0f4566; BYTE $0xd3 // PUNPCKLQDQ XMM10, XMM11 /* m[2], ____ */ + MOVOU X12, X15 + LONG $0x6d0f4566; BYTE $0xfc // PUNPCKHQDQ XMM15, XMM12 /* ___, m[5] */ + MOVOU X12, X11 + LONG $0x6c0f4566; BYTE $0xdf // PUNPCKLQDQ XMM11, XMM15 /* m[4], ____ */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 0 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 48(DX), X13 // X13 = m[6]+ m[7] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 80(DX), X15 // X15 = m[10]+m[11] + MOVOU X15, X8 + LONG $0x6c0f4566; BYTE $0xc6 // PUNPCKLQDQ XMM8, XMM14 /* m[10], m[8] */ + MOVOU X13, X9 + LONG $0x6d0f4566; BYTE $0xcc // PUNPCKHQDQ XMM9, XMM12 /* m[7], m[1] */ + MOVOU 16(DX), X10 // X10 = m[2]+ m[3] + MOVOU 32(DX), X14 // X14 = m[4]+ m[5] + LONG $0x6c0f4566; BYTE $0xd6 // PUNPCKLQDQ XMM10, XMM14 /* m[2], m[4] */ + MOVOU X14, X15 + LONG $0x6d0f4566; BYTE $0xfe // PUNPCKHQDQ XMM15, XMM14 /* ___, m[5] */ + MOVOU X13, X11 + LONG $0x6c0f4566; BYTE $0xdf // PUNPCKLQDQ XMM11, XMM15 /* m[6], ____ */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 64(DX), X13 // X13 = m[8]+ m[9] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X15, X8 + LONG $0x6d0f4566; BYTE $0xc5 // PUNPCKHQDQ XMM8, XMM13 /* m[15], m[9] */ + MOVOU X12, X9 + LONG $0x6d0f4566; BYTE $0xce // PUNPCKHQDQ XMM9, XMM14 /* m[3], m[13] */ + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU X15, X10 + LONG $0x3a0f4566; WORD $0xd50f; BYTE $0x08 // PALIGNR XMM10, XMM13, 0x8 /* m[11], m[14] */ + MOVOU X14, X11 + LONG $0x6c0f4566; BYTE $0xdc // PUNPCKLQDQ XMM11, XMM12 /* m[12], m[0] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 1 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+m[1] + MOVOU 16(DX), X13 // X13 = m[2]+m[3] + MOVOU 32(DX), X14 // X14 = m[4]+m[5] + MOVOU 48(DX), X15 // X15 = m[6]+m[7] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[0], m[2] */ + MOVOU X14, X9 + LONG $0x6c0f4566; BYTE $0xcf // PUNPCKLQDQ XMM9, XMM15 /* m[4], m[6] */ + MOVOU X12, X10 + LONG $0x6d0f4566; BYTE $0xd5 // PUNPCKHQDQ XMM10, XMM13 /* m[1], m[3] */ + MOVOU X14, X11 + LONG $0x6d0f4566; BYTE $0xdf // PUNPCKHQDQ XMM11, XMM15 /* m[5], m[7] */ + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 64(DX), X12 // X12 = m[8]+ m[9] + MOVOU 80(DX), X13 // X13 = m[10]+m[11] + MOVOU 96(DX), X14 // X14 = m[12]+m[13] + MOVOU 112(DX), X15 // X15 = m[14]+m[15] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[8],m[10] */ + MOVOU X14, X9 + LONG $0x6c0f4566; BYTE $0xcf // PUNPCKLQDQ XMM9, XMM15 /* m[12],m[14] */ + MOVOU X12, X10 + LONG $0x6d0f4566; BYTE $0xd5 // PUNPCKHQDQ XMM10, XMM13 /* m[9],m[11] */ + MOVOU X14, X11 + LONG $0x6d0f4566; BYTE $0xdf // PUNPCKHQDQ XMM11, XMM15 /* m[13],m[15] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + /////////////////////////////////////////////////////////////////////////// + // R O U N D 1 2 + /////////////////////////////////////////////////////////////////////////// + + // LOAD_MSG_ ##r ##_1 / ##_2(b0, b1); (X12 is temp register) + MOVOU 112(DX), X12 // X12 = m[14]+m[15] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 64(DX), X14 // X14 = m[8]+ m[9] + MOVOU 96(DX), X15 // X15 = m[12]+m[13] + MOVOU X12, X8 + LONG $0x6c0f4566; BYTE $0xc5 // PUNPCKLQDQ XMM8, XMM13 /* m[14], m[4] */ + MOVOU X14, X9 + LONG $0x6d0f4566; BYTE $0xcf // PUNPCKHQDQ XMM9, XMM15 /* m[9], m[13] */ + MOVOU 80(DX), X10 // X10 = m[10]+m[11] + MOVOU 48(DX), X11 // X11 = m[6]+ m[7] + LONG $0x6c0f4566; BYTE $0xd6 // PUNPCKLQDQ XMM10, XMM14 /* m[10], m[8] */ + LONG $0x3a0f4566; WORD $0xdc0f; BYTE $0x08 // PALIGNR XMM11, XMM12, 0x8 /* m[15], m[6] */; ; ; ; ; + + LOAD_SHUFFLE + G1 + G2 + DIAGONALIZE + + // LOAD_MSG_ ##r ##_3 / ##_4(b0, b1); (X12 is temp register) + MOVOU 0(DX), X12 // X12 = m[0]+ m[1] + MOVOU 32(DX), X13 // X13 = m[4]+ m[5] + MOVOU 80(DX), X14 // X14 = m[10]+m[11] + MOVOU X12, X8 + LONG $0x3a0f4566; WORD $0xc40f; BYTE $0x08 // PALIGNR XMM8, XMM12, 0x8 /* m[1], m[0] */ + MOVOU X14, X9 + LONG $0x6d0f4566; BYTE $0xcd // PUNPCKHQDQ XMM9, XMM13 /* m[11], m[5] */ + MOVOU 16(DX), X12 // X12 = m[2]+ m[3] + MOVOU 48(DX), X11 // X11 = m[6]+ m[7] + MOVOU 96(DX), X10 // X10 = m[12]+m[13] + LONG $0x6c0f4566; BYTE $0xd4 // PUNPCKLQDQ XMM10, XMM12 /* m[12], m[2] */ + LONG $0x6d0f4566; BYTE $0xdc // PUNPCKHQDQ XMM11, XMM12 /* m[7], m[3] */ + + LOAD_SHUFFLE + G1 + G2 + UNDIAGONALIZE + + // Reload digest (most current value store in &out) + MOVQ out+144(FP), SI // SI: &in + MOVOU 0(SI), X12 // X12 = in[0]+in[1] /* row1l = LOAD( &S->h[0] ); */ + MOVOU 16(SI), X13 // X13 = in[2]+in[3] /* row1h = LOAD( &S->h[2] ); */ + MOVOU 32(SI), X14 // X14 = in[4]+in[5] /* row2l = LOAD( &S->h[4] ); */ + MOVOU 48(SI), X15 // X15 = in[6]+in[7] /* row2h = LOAD( &S->h[6] ); */ + + // Final computations and prepare for storing + PXOR X4, X0 // X0 = X0 ^ X4 /* row1l = _mm_xor_si128( row3l, row1l ); */ + PXOR X5, X1 // X1 = X1 ^ X5 /* row1h = _mm_xor_si128( row3h, row1h ); */ + PXOR X12, X0 // X0 = X0 ^ X12 /* STORE( &S->h[0], _mm_xor_si128( LOAD( &S->h[0] ), row1l ) ); */ + PXOR X13, X1 // X1 = X1 ^ X13 /* STORE( &S->h[2], _mm_xor_si128( LOAD( &S->h[2] ), row1h ) ); */ + PXOR X6, X2 // X2 = X2 ^ X6 /* row2l = _mm_xor_si128( row4l, row2l ); */ + PXOR X7, X3 // X3 = X3 ^ X7 /* row2h = _mm_xor_si128( row4h, row2h ); */ + PXOR X14, X2 // X2 = X2 ^ X14 /* STORE( &S->h[4], _mm_xor_si128( LOAD( &S->h[4] ), row2l ) ); */ + PXOR X15, X3 // X3 = X3 ^ X15 /* STORE( &S->h[6], _mm_xor_si128( LOAD( &S->h[6] ), row2h ) ); */ + + // Store digest into &out + MOVQ out+144(FP), SI // SI: &out + MOVOU X0, 0(SI) // out[0]+out[1] = X0 + MOVOU X1, 16(SI) // out[2]+out[3] = X1 + MOVOU X2, 32(SI) // out[4]+out[5] = X2 + MOVOU X3, 48(SI) // out[6]+out[7] = X3 + + // Increment message pointer and check if there's more to do + ADDQ $128, DX // message += 128 + SUBQ $1, R8 + JNZ loop + +complete: + RET diff --git a/vendor/github.com/minio/blake2b-simd/compress_amd64.go b/vendor/github.com/minio/blake2b-simd/compress_amd64.go new file mode 100644 index 00000000..4fc5e388 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compress_amd64.go @@ -0,0 +1,30 @@ +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package blake2b + +func compress(d *digest, p []uint8) { + // Verifies if AVX2 or AVX is available, use optimized code path. + if avx2 { + compressAVX2(d, p) + } else if avx { + compressAVX(d, p) + } else if ssse3 { + compressSSE(d, p) + } else { + compressGeneric(d, p) + } +} diff --git a/vendor/github.com/minio/blake2b-simd/compress_generic.go b/vendor/github.com/minio/blake2b-simd/compress_generic.go new file mode 100644 index 00000000..e9e16e8b --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compress_generic.go @@ -0,0 +1,1419 @@ +// Written in 2012 by Dmitry Chestnykh. +// +// To the extent possible under law, the author have dedicated all copyright +// and related and neighboring rights to this software to the public domain +// worldwide. This software is distributed without any warranty. +// http://creativecommons.org/publicdomain/zero/1.0/ + +package blake2b + +func compressGeneric(d *digest, p []uint8) { + h0, h1, h2, h3, h4, h5, h6, h7 := d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] + + for len(p) >= BlockSize { + // Increment counter. + d.t[0] += BlockSize + if d.t[0] < BlockSize { + d.t[1]++ + } + // Initialize compression function. + v0, v1, v2, v3, v4, v5, v6, v7 := h0, h1, h2, h3, h4, h5, h6, h7 + v8 := iv[0] + v9 := iv[1] + v10 := iv[2] + v11 := iv[3] + v12 := iv[4] ^ d.t[0] + v13 := iv[5] ^ d.t[1] + v14 := iv[6] ^ d.f[0] + v15 := iv[7] ^ d.f[1] + + j := 0 + var m [16]uint64 + for i := range m { + m[i] = uint64(p[j]) | uint64(p[j+1])<<8 | uint64(p[j+2])<<16 | + uint64(p[j+3])<<24 | uint64(p[j+4])<<32 | uint64(p[j+5])<<40 | + uint64(p[j+6])<<48 | uint64(p[j+7])<<56 + j += 8 + } + + // Round 1. + v0 += m[0] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[2] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[4] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[6] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[5] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[7] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[3] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[1] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[8] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[10] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[12] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[14] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[13] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[15] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[11] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[9] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 2. + v0 += m[14] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[4] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[9] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[13] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[15] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[6] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[8] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[10] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[1] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[0] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[11] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[5] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[7] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[3] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[2] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[12] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 3. + v0 += m[11] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[12] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[5] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[15] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[2] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[13] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[0] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[8] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[10] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[3] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[7] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[9] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[1] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[4] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[6] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[14] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 4. + v0 += m[7] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[3] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[13] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[11] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[12] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[14] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[1] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[9] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[2] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[5] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[4] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[15] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[0] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[8] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[10] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[6] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 5. + v0 += m[9] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[5] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[2] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[10] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[4] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[15] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[7] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[0] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[14] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[11] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[6] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[3] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[8] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[13] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[12] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[1] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 6. + v0 += m[2] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[6] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[0] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[8] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[11] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[3] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[10] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[12] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[4] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[7] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[15] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[1] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[14] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[9] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[5] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[13] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 7. + v0 += m[12] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[1] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[14] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[4] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[13] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[10] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[15] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[5] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[0] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[6] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[9] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[8] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[2] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[11] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[3] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[7] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 8. + v0 += m[13] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[7] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[12] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[3] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[1] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[9] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[14] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[11] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[5] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[15] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[8] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[2] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[6] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[10] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[4] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[0] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 9. + v0 += m[6] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[14] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[11] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[0] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[3] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[8] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[9] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[15] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[12] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[13] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[1] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[10] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[4] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[5] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[7] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[2] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 10. + v0 += m[10] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[8] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[7] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[1] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[6] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[5] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[4] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[2] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[15] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[9] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[3] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[13] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[12] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[0] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[14] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[11] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 11. + v0 += m[0] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[2] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[4] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[6] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[5] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[7] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[3] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[1] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[8] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[10] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[12] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[14] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[13] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[15] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[11] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[9] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + // Round 12. + v0 += m[14] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-32) | v12>>32 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-24) | v4>>24 + v1 += m[4] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-32) | v13>>32 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-24) | v5>>24 + v2 += m[9] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-32) | v14>>32 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-24) | v6>>24 + v3 += m[13] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-32) | v15>>32 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-24) | v7>>24 + v2 += m[15] + v2 += v6 + v14 ^= v2 + v14 = v14<<(64-16) | v14>>16 + v10 += v14 + v6 ^= v10 + v6 = v6<<(64-63) | v6>>63 + v3 += m[6] + v3 += v7 + v15 ^= v3 + v15 = v15<<(64-16) | v15>>16 + v11 += v15 + v7 ^= v11 + v7 = v7<<(64-63) | v7>>63 + v1 += m[8] + v1 += v5 + v13 ^= v1 + v13 = v13<<(64-16) | v13>>16 + v9 += v13 + v5 ^= v9 + v5 = v5<<(64-63) | v5>>63 + v0 += m[10] + v0 += v4 + v12 ^= v0 + v12 = v12<<(64-16) | v12>>16 + v8 += v12 + v4 ^= v8 + v4 = v4<<(64-63) | v4>>63 + v0 += m[1] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-32) | v15>>32 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-24) | v5>>24 + v1 += m[0] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-32) | v12>>32 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-24) | v6>>24 + v2 += m[11] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-32) | v13>>32 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-24) | v7>>24 + v3 += m[5] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-32) | v14>>32 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-24) | v4>>24 + v2 += m[7] + v2 += v7 + v13 ^= v2 + v13 = v13<<(64-16) | v13>>16 + v8 += v13 + v7 ^= v8 + v7 = v7<<(64-63) | v7>>63 + v3 += m[3] + v3 += v4 + v14 ^= v3 + v14 = v14<<(64-16) | v14>>16 + v9 += v14 + v4 ^= v9 + v4 = v4<<(64-63) | v4>>63 + v1 += m[2] + v1 += v6 + v12 ^= v1 + v12 = v12<<(64-16) | v12>>16 + v11 += v12 + v6 ^= v11 + v6 = v6<<(64-63) | v6>>63 + v0 += m[12] + v0 += v5 + v15 ^= v0 + v15 = v15<<(64-16) | v15>>16 + v10 += v15 + v5 ^= v10 + v5 = v5<<(64-63) | v5>>63 + + h0 ^= v0 ^ v8 + h1 ^= v1 ^ v9 + h2 ^= v2 ^ v10 + h3 ^= v3 ^ v11 + h4 ^= v4 ^ v12 + h5 ^= v5 ^ v13 + h6 ^= v6 ^ v14 + h7 ^= v7 ^ v15 + + p = p[BlockSize:] + } + d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] = h0, h1, h2, h3, h4, h5, h6, h7 +} diff --git a/vendor/github.com/minio/blake2b-simd/compress_noasm.go b/vendor/github.com/minio/blake2b-simd/compress_noasm.go new file mode 100644 index 00000000..d3c67584 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/compress_noasm.go @@ -0,0 +1,23 @@ +//+build !amd64 noasm appengine + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package blake2b + +func compress(d *digest, p []uint8) { + compressGeneric(d, p) +} diff --git a/vendor/github.com/minio/blake2b-simd/cpuid.go b/vendor/github.com/minio/blake2b-simd/cpuid.go new file mode 100644 index 00000000..a9f95508 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/cpuid.go @@ -0,0 +1,60 @@ +// +build 386,!gccgo amd64,!gccgo + +// Copyright 2016 Frank Wessels +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package blake2b + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +func xgetbv(index uint32) (eax, edx uint32) + +// True when SIMD instructions are available. +var avx2 = haveAVX2() +var avx = haveAVX() +var ssse3 = haveSSSE3() + +// haveAVX returns true when there is AVX support +func haveAVX() bool { + _, _, c, _ := cpuid(1) + + // Check XGETBV, OXSAVE and AVX bits + if c&(1<<26) != 0 && c&(1<<27) != 0 && c&(1<<28) != 0 { + // Check for OS support + eax, _ := xgetbv(0) + return (eax & 0x6) == 0x6 + } + return false +} + +// haveAVX2 returns true when there is AVX2 support +func haveAVX2() bool { + mfi, _, _, _ := cpuid(0) + + // Check AVX2, AVX2 requires OS support, but BMI1/2 don't. + if mfi >= 7 && haveAVX() { + _, ebx, _, _ := cpuidex(7, 0) + return (ebx & 0x00000020) != 0 + } + return false +} + +// haveSSSE3 returns true when there is SSSE3 support +func haveSSSE3() bool { + + _, _, c, _ := cpuid(1) + + return (c & 0x00000200) != 0 +} diff --git a/vendor/github.com/minio/blake2b-simd/cpuid_386.s b/vendor/github.com/minio/blake2b-simd/cpuid_386.s new file mode 100644 index 00000000..fa38814e --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/cpuid_386.s @@ -0,0 +1,33 @@ +// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. + +// +build 386,!gccgo + +// func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuid(SB), 7, $0 + XORL CX, CX + MOVL op+0(FP), AX + CPUID + MOVL AX, eax+4(FP) + MOVL BX, ebx+8(FP) + MOVL CX, ecx+12(FP) + MOVL DX, edx+16(FP) + RET + +// func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuidex(SB), 7, $0 + MOVL op+0(FP), AX + MOVL op2+4(FP), CX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + +// func xgetbv(index uint32) (eax, edx uint32) +TEXT ·xgetbv(SB), 7, $0 + MOVL index+0(FP), CX + BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV + MOVL AX, eax+4(FP) + MOVL DX, edx+8(FP) + RET diff --git a/vendor/github.com/minio/blake2b-simd/cpuid_amd64.s b/vendor/github.com/minio/blake2b-simd/cpuid_amd64.s new file mode 100644 index 00000000..fb45a656 --- /dev/null +++ b/vendor/github.com/minio/blake2b-simd/cpuid_amd64.s @@ -0,0 +1,34 @@ +// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. + +// +build amd64,!gccgo + +// func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuid(SB), 7, $0 + XORQ CX, CX + MOVL op+0(FP), AX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + + +// func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuidex(SB), 7, $0 + MOVL op+0(FP), AX + MOVL op2+4(FP), CX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + +// func xgetbv(index uint32) (eax, edx uint32) +TEXT ·xgetbv(SB), 7, $0 + MOVL index+0(FP), CX + BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV + MOVL AX, eax+8(FP) + MOVL DX, edx+12(FP) + RET diff --git a/vendor/github.com/minio/sha256-simd/.gitignore b/vendor/github.com/minio/sha256-simd/.gitignore new file mode 100644 index 00000000..c56069fe --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/.gitignore @@ -0,0 +1 @@ +*.test \ No newline at end of file diff --git a/vendor/github.com/minio/sha256-simd/.travis.yml b/vendor/github.com/minio/sha256-simd/.travis.yml new file mode 100644 index 00000000..744e64cf --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/.travis.yml @@ -0,0 +1,24 @@ +sudo: required +dist: trusty +language: go + +os: +- linux + +go: +- tip +- 1.11.x + +env: +- ARCH=x86_64 +- ARCH=i686 + +matrix: + fast_finish: true + allow_failures: + - go: tip + +script: +- diff -au <(gofmt -d .) <(printf "") +- go test -race -v ./... +- go tool vet -asmdecl . diff --git a/vendor/github.com/minio/sha256-simd/LICENSE b/vendor/github.com/minio/sha256-simd/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/minio/sha256-simd/README.md b/vendor/github.com/minio/sha256-simd/README.md new file mode 100644 index 00000000..5282d83a --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/README.md @@ -0,0 +1,133 @@ +# sha256-simd + +Accelerate SHA256 computations in pure Go using AVX512, SHA Extensions and AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x improvement (over 3 GB/s per core) in comparison to AVX2. SHA Extensions give a performance boost of close to 4x over AVX2. + +## Introduction + +This package is designed as a replacement for `crypto/sha256`. For Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also supported). For ARM CPUs with the Cryptography Extensions, advantage is taken of the SHA2 instructions resulting in a massive performance improvement. + +This package uses Golang assembly. The AVX512 version is based on the Intel's "multi-buffer crypto library for IPSec" whereas the other Intel implementations are described in "Fast SHA-256 Implementations on Intel Architecture Processors" by J. Guilford et al. + +## New: Support for Intel SHA Extensions + +Support for the Intel SHA Extensions has been added by Kristofer Peterson (@svenski123), originally developed for spacemeshos [here](https://github.com/spacemeshos/POET/issues/23). On CPUs that support it (known thus far Intel Celeron J3455 and AMD Ryzen) it gives a significant boost in performance (with thanks to @AudriusButkevicius for reporting the results; full results [here](https://github.com/minio/sha256-simd/pull/37#issuecomment-451607827)). + +``` +$ benchcmp avx2.txt sha-ext.txt +benchmark AVX2 MB/s SHA Ext MB/s speedup +BenchmarkHash5M 514.40 1975.17 3.84x +``` + +Thanks to Kristofer Peterson, we also added additional performance changes such as optimized padding, endian conversions which sped up all implementations i.e. Intel SHA alone while doubled performance for small sizes, the other changes increased everything roughly 50%. + +## Support for AVX512 + +We have added support for AVX512 which results in an up to 8x performance improvement over AVX2 (3.0 GHz Xeon Platinum 8124M CPU): + +``` +$ benchcmp avx2.txt avx512.txt +benchmark AVX2 MB/s AVX512 MB/s speedup +BenchmarkHash5M 448.62 3498.20 7.80x +``` + +The original code was developed by Intel as part of the [multi-buffer crypto library](https://github.com/intel/intel-ipsec-mb) for IPSec or more specifically this [AVX512](https://github.com/intel/intel-ipsec-mb/blob/master/avx512/sha256_x16_avx512.asm) implementation. The key idea behind it is to process a total of 16 checksums in parallel by “transposing†16 (independent) messages of 64 bytes between a total of 16 ZMM registers (each 64 bytes wide). + +Transposing the input messages means that in order to take full advantage of the speedup you need to have a (server) workload where multiple threads are doing SHA256 calculations in parallel. Unfortunately for this algorithm it is not possible for two message blocks processed in parallel to be dependent on one another — because then the (interim) result of the first part of the message has to be an input into the processing of the second part of the message. + +Whereas the original Intel C implementation requires some sort of explicit scheduling of messages to be processed in parallel, for Golang it makes sense to take advantage of channels in order to group messages together and use channels as well for sending back the results (thereby effectively decoupling the calculations). We have implemented a fairly simple scheduling mechanism that seems to work well in practice. + +Due to this different way of scheduling, we decided to use an explicit method to instantiate the AVX512 version. Essentially one or more AVX512 processing servers ([`Avx512Server`](https://github.com/minio/sha256-simd/blob/master/sha256blockAvx512_amd64.go#L294)) have to be created whereby each server can hash over 3 GB/s on a single core. An `hash.Hash` object ([`Avx512Digest`](https://github.com/minio/sha256-simd/blob/master/sha256blockAvx512_amd64.go#L45)) is then instantiated using one of these servers and used in the regular fashion: + +```go +import "github.com/minio/sha256-simd" + +func main() { + server := sha256.NewAvx512Server() + h512 := sha256.NewAvx512(server) + h512.Write(fileBlock) + digest := h512.Sum([]byte{}) +} +``` + +Note that, because of the scheduling overhead, for small messages (< 1 MB) you will be better off using the regular SHA256 hashing (but those are typically not performance critical anyway). Some other tips to get the best performance: +* Have many go routines doing SHA256 calculations in parallel. +* Try to Write() messages in multiples of 64 bytes. +* Try to keep the overall length of messages to a roughly similar size ie. 5 MB (this way all 16 ‘lanes’ in the AVX512 computations are contributing as much as possible). + +More detailed information can be found in this [blog](https://blog.minio.io/accelerate-sha256-up-to-8x-over-3-gb-s-per-core-with-avx512-a0b1d64f78f) post including scaling across cores. + +## Drop-In Replacement + +The following code snippet shows how you can use `github.com/minio/sha256-simd`. This will automatically select the fastest method for the architecture on which it will be executed. + +```go +import "github.com/minio/sha256-simd" + +func main() { + ... + shaWriter := sha256.New() + io.Copy(shaWriter, file) + ... +} +``` + +## Performance + +Below is the speed in MB/s for a single core (ranked fast to slow) for blocks larger than 1 MB. + +| Processor | SIMD | Speed (MB/s) | +| --------------------------------- | ------- | ------------:| +| 3.0 GHz Intel Xeon Platinum 8124M | AVX512 | 3498 | +| 3.7 GHz AMD Ryzen 7 2700X | SHA Ext | 1979 | +| 1.2 GHz ARM Cortex-A53 | ARM64 | 638 | +| 3.0 GHz Intel Xeon Platinum 8124M | AVX2 | 449 | +| 3.1 GHz Intel Core i7 | AVX | 362 | +| 3.1 GHz Intel Core i7 | SSE | 299 | + +## asm2plan9s + +In order to be able to work more easily with AVX512/AVX2 instructions, a separate tool was developed to convert SIMD instructions into the corresponding BYTE sequence as accepted by Go assembly. See [asm2plan9s](https://github.com/minio/asm2plan9s) for more information. + +## Why and benefits + +One of the most performance sensitive parts of the [Minio](https://github.com/minio/minio) object storage server is related to SHA256 hash sums calculations. For instance during multi part uploads each part that is uploaded needs to be verified for data integrity by the server. + +Other applications that can benefit from enhanced SHA256 performance are deduplication in storage systems, intrusion detection, version control systems, integrity checking, etc. + +## ARM SHA Extensions + +The 64-bit ARMv8 core has introduced new instructions for SHA1 and SHA2 acceleration as part of the [Cryptography Extensions](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0501f/CHDFJBCJ.html). Below you can see a small excerpt highlighting one of the rounds as is done for the SHA256 calculation process (for full code see [sha256block_arm64.s](https://github.com/minio/sha256-simd/blob/master/sha256block_arm64.s)). + + ``` + sha256h q2, q3, v9.4s + sha256h2 q3, q4, v9.4s + sha256su0 v5.4s, v6.4s + rev32 v8.16b, v8.16b + add v9.4s, v7.4s, v18.4s + mov v4.16b, v2.16b + sha256h q2, q3, v10.4s + sha256h2 q3, q4, v10.4s + sha256su0 v6.4s, v7.4s + sha256su1 v5.4s, v7.4s, v8.4s + ``` + +### Detailed benchmarks + +Benchmarks generated on a 1.2 Ghz Quad-Core ARM Cortex A53 equipped [Pine64](https://www.pine64.com/). + +``` +minio@minio-arm:$ benchcmp golang.txt arm64.txt +benchmark golang arm64 speedup +BenchmarkHash8Bytes-4 0.68 MB/s 5.70 MB/s 8.38x +BenchmarkHash1K-4 5.65 MB/s 326.30 MB/s 57.75x +BenchmarkHash8K-4 6.00 MB/s 570.63 MB/s 95.11x +BenchmarkHash1M-4 6.05 MB/s 638.23 MB/s 105.49x +``` + +## License + +Released under the Apache License v2.0. You can find the complete text in the file LICENSE. + +## Contributing + +Contributions are welcome, please send PRs for any enhancements. diff --git a/vendor/github.com/minio/sha256-simd/appveyor.yml b/vendor/github.com/minio/sha256-simd/appveyor.yml new file mode 100644 index 00000000..a66bfa9f --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/appveyor.yml @@ -0,0 +1,32 @@ +# version format +version: "{build}" + +# Operating system (build VM template) +os: Windows Server 2012 R2 + +# Platform. +platform: x64 + +clone_folder: c:\gopath\src\github.com\minio\sha256-simd + +# environment variables +environment: + GOPATH: c:\gopath + GO15VENDOREXPERIMENT: 1 + +# scripts that run after cloning repository +install: + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% + - go version + - go env + +# to run your custom scripts instead of automatic MSBuild +build_script: + - go test . + - go test -race . + +# to disable automatic tests +test: off + +# to disable deployment +deploy: off diff --git a/vendor/github.com/minio/sha256-simd/cpuid.go b/vendor/github.com/minio/sha256-simd/cpuid.go new file mode 100644 index 00000000..878ad463 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid.go @@ -0,0 +1,119 @@ +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package sha256 + +// True when SIMD instructions are available. +var avx512 bool +var avx2 bool +var avx bool +var sse bool +var sse2 bool +var sse3 bool +var ssse3 bool +var sse41 bool +var sse42 bool +var popcnt bool +var sha bool +var armSha = haveArmSha() + +func init() { + var _xsave bool + var _osxsave bool + var _avx bool + var _avx2 bool + var _avx512f bool + var _avx512dq bool + // var _avx512pf bool + // var _avx512er bool + // var _avx512cd bool + var _avx512bw bool + var _avx512vl bool + var _sseState bool + var _avxState bool + var _opmaskState bool + var _zmmHI256State bool + var _hi16ZmmState bool + + mfi, _, _, _ := cpuid(0) + + if mfi >= 1 { + _, _, c, d := cpuid(1) + + sse = (d & (1 << 25)) != 0 + sse2 = (d & (1 << 26)) != 0 + sse3 = (c & (1 << 0)) != 0 + ssse3 = (c & (1 << 9)) != 0 + sse41 = (c & (1 << 19)) != 0 + sse42 = (c & (1 << 20)) != 0 + popcnt = (c & (1 << 23)) != 0 + _xsave = (c & (1 << 26)) != 0 + _osxsave = (c & (1 << 27)) != 0 + _avx = (c & (1 << 28)) != 0 + } + + if mfi >= 7 { + _, b, _, _ := cpuid(7) + + _avx2 = (b & (1 << 5)) != 0 + _avx512f = (b & (1 << 16)) != 0 + _avx512dq = (b & (1 << 17)) != 0 + // _avx512pf = (b & (1 << 26)) != 0 + // _avx512er = (b & (1 << 27)) != 0 + // _avx512cd = (b & (1 << 28)) != 0 + _avx512bw = (b & (1 << 30)) != 0 + _avx512vl = (b & (1 << 31)) != 0 + sha = (b & (1 << 29)) != 0 + } + + // Stop here if XSAVE unsupported or not enabled + if !_xsave || !_osxsave { + return + } + + if _xsave && _osxsave { + a, _ := xgetbv(0) + + _sseState = (a & (1 << 1)) != 0 + _avxState = (a & (1 << 2)) != 0 + _opmaskState = (a & (1 << 5)) != 0 + _zmmHI256State = (a & (1 << 6)) != 0 + _hi16ZmmState = (a & (1 << 7)) != 0 + } else { + _sseState = true + } + + // Very unlikely that OS would enable XSAVE and then disable SSE + if !_sseState { + sse = false + sse2 = false + sse3 = false + ssse3 = false + sse41 = false + sse42 = false + } + + if _avxState { + avx = _avx + avx2 = _avx2 + } + + if _opmaskState && _zmmHI256State && _hi16ZmmState { + avx512 = (_avx512f && + _avx512dq && + _avx512bw && + _avx512vl) + } +} diff --git a/vendor/github.com/minio/sha256-simd/cpuid_386.go b/vendor/github.com/minio/sha256-simd/cpuid_386.go new file mode 100644 index 00000000..c9890be4 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_386.go @@ -0,0 +1,24 @@ +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package sha256 + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +func xgetbv(index uint32) (eax, edx uint32) + +func haveArmSha() bool { + return false +} diff --git a/vendor/github.com/minio/sha256-simd/cpuid_386.s b/vendor/github.com/minio/sha256-simd/cpuid_386.s new file mode 100644 index 00000000..1511cd6f --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_386.s @@ -0,0 +1,53 @@ +// The MIT License (MIT) +// +// Copyright (c) 2015 Klaus Post +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// +build 386,!gccgo + +// func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuid(SB), 7, $0 + XORL CX, CX + MOVL op+0(FP), AX + CPUID + MOVL AX, eax+4(FP) + MOVL BX, ebx+8(FP) + MOVL CX, ecx+12(FP) + MOVL DX, edx+16(FP) + RET + +// func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuidex(SB), 7, $0 + MOVL op+0(FP), AX + MOVL op2+4(FP), CX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + +// func xgetbv(index uint32) (eax, edx uint32) +TEXT ·xgetbv(SB), 7, $0 + MOVL index+0(FP), CX + BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV + MOVL AX, eax+4(FP) + MOVL DX, edx+8(FP) + RET diff --git a/vendor/github.com/minio/sha256-simd/cpuid_amd64.go b/vendor/github.com/minio/sha256-simd/cpuid_amd64.go new file mode 100644 index 00000000..c9890be4 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_amd64.go @@ -0,0 +1,24 @@ +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package sha256 + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +func xgetbv(index uint32) (eax, edx uint32) + +func haveArmSha() bool { + return false +} diff --git a/vendor/github.com/minio/sha256-simd/cpuid_amd64.s b/vendor/github.com/minio/sha256-simd/cpuid_amd64.s new file mode 100644 index 00000000..b0f41474 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_amd64.s @@ -0,0 +1,53 @@ +// The MIT License (MIT) +// +// Copyright (c) 2015 Klaus Post +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// +build amd64,!gccgo + +// func cpuid(op uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuid(SB), 7, $0 + XORQ CX, CX + MOVL op+0(FP), AX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + +// func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) +TEXT ·cpuidex(SB), 7, $0 + MOVL op+0(FP), AX + MOVL op2+4(FP), CX + CPUID + MOVL AX, eax+8(FP) + MOVL BX, ebx+12(FP) + MOVL CX, ecx+16(FP) + MOVL DX, edx+20(FP) + RET + +// func xgetbv(index uint32) (eax, edx uint32) +TEXT ·xgetbv(SB), 7, $0 + MOVL index+0(FP), CX + BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV + MOVL AX, eax+8(FP) + MOVL DX, edx+12(FP) + RET diff --git a/vendor/github.com/minio/sha256-simd/cpuid_arm.go b/vendor/github.com/minio/sha256-simd/cpuid_arm.go new file mode 100644 index 00000000..351dff4b --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_arm.go @@ -0,0 +1,32 @@ +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package sha256 + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func xgetbv(index uint32) (eax, edx uint32) { + return 0, 0 +} + +func haveArmSha() bool { + return false +} diff --git a/vendor/github.com/minio/sha256-simd/cpuid_linux_arm64.go b/vendor/github.com/minio/sha256-simd/cpuid_linux_arm64.go new file mode 100644 index 00000000..e739996d --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_linux_arm64.go @@ -0,0 +1,49 @@ +// +build arm64,linux + +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package sha256 + +import ( + "bytes" + "io/ioutil" +) + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func xgetbv(index uint32) (eax, edx uint32) { + return 0, 0 +} + +// File to check for cpu capabilities. +const procCPUInfo = "/proc/cpuinfo" + +// Feature to check for. +const sha256Feature = "sha2" + +func haveArmSha() bool { + cpuInfo, err := ioutil.ReadFile(procCPUInfo) + if err != nil { + return false + } + return bytes.Contains(cpuInfo, []byte(sha256Feature)) +} diff --git a/vendor/github.com/minio/sha256-simd/cpuid_other.go b/vendor/github.com/minio/sha256-simd/cpuid_other.go new file mode 100644 index 00000000..04f26ce8 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_other.go @@ -0,0 +1,34 @@ +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +build ppc64 ppc64le mips mipsle mips64 mips64le s390x wasm + +package sha256 + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func xgetbv(index uint32) (eax, edx uint32) { + return 0, 0 +} + +func haveArmSha() bool { + return false +} diff --git a/vendor/github.com/minio/sha256-simd/cpuid_others_arm64.go b/vendor/github.com/minio/sha256-simd/cpuid_others_arm64.go new file mode 100644 index 00000000..0fb4022f --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/cpuid_others_arm64.go @@ -0,0 +1,35 @@ +// +build arm64,!linux + +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package sha256 + +func cpuid(op uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func cpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) { + return 0, 0, 0, 0 +} + +func xgetbv(index uint32) (eax, edx uint32) { + return 0, 0 +} + +// Check for sha2 instruction flag. +func haveArmSha() bool { + return false +} diff --git a/vendor/github.com/minio/sha256-simd/go.mod b/vendor/github.com/minio/sha256-simd/go.mod new file mode 100644 index 00000000..b68fb0a0 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/go.mod @@ -0,0 +1 @@ +module github.com/minio/sha256-simd diff --git a/vendor/github.com/minio/sha256-simd/sha256.go b/vendor/github.com/minio/sha256-simd/sha256.go new file mode 100644 index 00000000..4e1f6d2f --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256.go @@ -0,0 +1,409 @@ +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +import ( + "crypto/sha256" + "encoding/binary" + "hash" + "runtime" +) + +// Size - The size of a SHA256 checksum in bytes. +const Size = 32 + +// BlockSize - The blocksize of SHA256 in bytes. +const BlockSize = 64 + +const ( + chunk = BlockSize + init0 = 0x6A09E667 + init1 = 0xBB67AE85 + init2 = 0x3C6EF372 + init3 = 0xA54FF53A + init4 = 0x510E527F + init5 = 0x9B05688C + init6 = 0x1F83D9AB + init7 = 0x5BE0CD19 +) + +// digest represents the partial evaluation of a checksum. +type digest struct { + h [8]uint32 + x [chunk]byte + nx int + len uint64 +} + +// Reset digest back to default +func (d *digest) Reset() { + d.h[0] = init0 + d.h[1] = init1 + d.h[2] = init2 + d.h[3] = init3 + d.h[4] = init4 + d.h[5] = init5 + d.h[6] = init6 + d.h[7] = init7 + d.nx = 0 + d.len = 0 +} + +type blockfuncType int + +const ( + blockfuncGeneric blockfuncType = iota + blockfuncAvx512 blockfuncType = iota + blockfuncAvx2 blockfuncType = iota + blockfuncAvx blockfuncType = iota + blockfuncSsse blockfuncType = iota + blockfuncSha blockfuncType = iota + blockfuncArm blockfuncType = iota +) + +var blockfunc blockfuncType + +func init() { + is386bit := runtime.GOARCH == "386" + isARM := runtime.GOARCH == "arm" + switch { + case is386bit || isARM: + blockfunc = blockfuncGeneric + case sha && ssse3 && sse41: + blockfunc = blockfuncSha + case avx2: + blockfunc = blockfuncAvx2 + case avx: + blockfunc = blockfuncAvx + case ssse3: + blockfunc = blockfuncSsse + case armSha: + blockfunc = blockfuncArm + default: + blockfunc = blockfuncGeneric + } +} + +// New returns a new hash.Hash computing the SHA256 checksum. +func New() hash.Hash { + if blockfunc != blockfuncGeneric { + d := new(digest) + d.Reset() + return d + } + // Fallback to the standard golang implementation + // if no features were found. + return sha256.New() +} + +// Sum256 - single caller sha256 helper +func Sum256(data []byte) (result [Size]byte) { + var d digest + d.Reset() + d.Write(data) + result = d.checkSum() + return +} + +// Return size of checksum +func (d *digest) Size() int { return Size } + +// Return blocksize of checksum +func (d *digest) BlockSize() int { return BlockSize } + +// Write to digest +func (d *digest) Write(p []byte) (nn int, err error) { + nn = len(p) + d.len += uint64(nn) + if d.nx > 0 { + n := copy(d.x[d.nx:], p) + d.nx += n + if d.nx == chunk { + block(d, d.x[:]) + d.nx = 0 + } + p = p[n:] + } + if len(p) >= chunk { + n := len(p) &^ (chunk - 1) + block(d, p[:n]) + p = p[n:] + } + if len(p) > 0 { + d.nx = copy(d.x[:], p) + } + return +} + +// Return sha256 sum in bytes +func (d *digest) Sum(in []byte) []byte { + // Make a copy of d0 so that caller can keep writing and summing. + d0 := *d + hash := d0.checkSum() + return append(in, hash[:]...) +} + +// Intermediate checksum function +func (d *digest) checkSum() (digest [Size]byte) { + n := d.nx + + var k [64]byte + copy(k[:], d.x[:n]) + + k[n] = 0x80 + + if n >= 56 { + block(d, k[:]) + + // clear block buffer - go compiles this to optimal 1x xorps + 4x movups + // unfortunately expressing this more succinctly results in much worse code + k[0] = 0 + k[1] = 0 + k[2] = 0 + k[3] = 0 + k[4] = 0 + k[5] = 0 + k[6] = 0 + k[7] = 0 + k[8] = 0 + k[9] = 0 + k[10] = 0 + k[11] = 0 + k[12] = 0 + k[13] = 0 + k[14] = 0 + k[15] = 0 + k[16] = 0 + k[17] = 0 + k[18] = 0 + k[19] = 0 + k[20] = 0 + k[21] = 0 + k[22] = 0 + k[23] = 0 + k[24] = 0 + k[25] = 0 + k[26] = 0 + k[27] = 0 + k[28] = 0 + k[29] = 0 + k[30] = 0 + k[31] = 0 + k[32] = 0 + k[33] = 0 + k[34] = 0 + k[35] = 0 + k[36] = 0 + k[37] = 0 + k[38] = 0 + k[39] = 0 + k[40] = 0 + k[41] = 0 + k[42] = 0 + k[43] = 0 + k[44] = 0 + k[45] = 0 + k[46] = 0 + k[47] = 0 + k[48] = 0 + k[49] = 0 + k[50] = 0 + k[51] = 0 + k[52] = 0 + k[53] = 0 + k[54] = 0 + k[55] = 0 + k[56] = 0 + k[57] = 0 + k[58] = 0 + k[59] = 0 + k[60] = 0 + k[61] = 0 + k[62] = 0 + k[63] = 0 + } + binary.BigEndian.PutUint64(k[56:64], uint64(d.len)<<3) + block(d, k[:]) + + { + const i = 0 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 1 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 2 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 3 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 4 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 5 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 6 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + { + const i = 7 + binary.BigEndian.PutUint32(digest[i*4:i*4+4], d.h[i]) + } + + return +} + +func block(dig *digest, p []byte) { + if blockfunc == blockfuncSha { + blockShaGo(dig, p) + } else if blockfunc == blockfuncAvx2 { + blockAvx2Go(dig, p) + } else if blockfunc == blockfuncAvx { + blockAvxGo(dig, p) + } else if blockfunc == blockfuncSsse { + blockSsseGo(dig, p) + } else if blockfunc == blockfuncArm { + blockArmGo(dig, p) + } else if blockfunc == blockfuncGeneric { + blockGeneric(dig, p) + } +} + +func blockGeneric(dig *digest, p []byte) { + var w [64]uint32 + h0, h1, h2, h3, h4, h5, h6, h7 := dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7] + for len(p) >= chunk { + // Can interlace the computation of w with the + // rounds below if needed for speed. + for i := 0; i < 16; i++ { + j := i * 4 + w[i] = uint32(p[j])<<24 | uint32(p[j+1])<<16 | uint32(p[j+2])<<8 | uint32(p[j+3]) + } + for i := 16; i < 64; i++ { + v1 := w[i-2] + t1 := (v1>>17 | v1<<(32-17)) ^ (v1>>19 | v1<<(32-19)) ^ (v1 >> 10) + v2 := w[i-15] + t2 := (v2>>7 | v2<<(32-7)) ^ (v2>>18 | v2<<(32-18)) ^ (v2 >> 3) + w[i] = t1 + w[i-7] + t2 + w[i-16] + } + + a, b, c, d, e, f, g, h := h0, h1, h2, h3, h4, h5, h6, h7 + + for i := 0; i < 64; i++ { + t1 := h + ((e>>6 | e<<(32-6)) ^ (e>>11 | e<<(32-11)) ^ (e>>25 | e<<(32-25))) + ((e & f) ^ (^e & g)) + _K[i] + w[i] + + t2 := ((a>>2 | a<<(32-2)) ^ (a>>13 | a<<(32-13)) ^ (a>>22 | a<<(32-22))) + ((a & b) ^ (a & c) ^ (b & c)) + + h = g + g = f + f = e + e = d + t1 + d = c + c = b + b = a + a = t1 + t2 + } + + h0 += a + h1 += b + h2 += c + h3 += d + h4 += e + h5 += f + h6 += g + h7 += h + + p = p[chunk:] + } + + dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7] = h0, h1, h2, h3, h4, h5, h6, h7 +} + +var _K = []uint32{ + 0x428a2f98, + 0x71374491, + 0xb5c0fbcf, + 0xe9b5dba5, + 0x3956c25b, + 0x59f111f1, + 0x923f82a4, + 0xab1c5ed5, + 0xd807aa98, + 0x12835b01, + 0x243185be, + 0x550c7dc3, + 0x72be5d74, + 0x80deb1fe, + 0x9bdc06a7, + 0xc19bf174, + 0xe49b69c1, + 0xefbe4786, + 0x0fc19dc6, + 0x240ca1cc, + 0x2de92c6f, + 0x4a7484aa, + 0x5cb0a9dc, + 0x76f988da, + 0x983e5152, + 0xa831c66d, + 0xb00327c8, + 0xbf597fc7, + 0xc6e00bf3, + 0xd5a79147, + 0x06ca6351, + 0x14292967, + 0x27b70a85, + 0x2e1b2138, + 0x4d2c6dfc, + 0x53380d13, + 0x650a7354, + 0x766a0abb, + 0x81c2c92e, + 0x92722c85, + 0xa2bfe8a1, + 0xa81a664b, + 0xc24b8b70, + 0xc76c51a3, + 0xd192e819, + 0xd6990624, + 0xf40e3585, + 0x106aa070, + 0x19a4c116, + 0x1e376c08, + 0x2748774c, + 0x34b0bcb5, + 0x391c0cb3, + 0x4ed8aa4a, + 0x5b9cca4f, + 0x682e6ff3, + 0x748f82ee, + 0x78a5636f, + 0x84c87814, + 0x8cc70208, + 0x90befffa, + 0xa4506ceb, + 0xbef9a3f7, + 0xc67178f2, +} diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.go b/vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.go new file mode 100644 index 00000000..43ee7a94 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.go @@ -0,0 +1,22 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +//go:noescape +func blockAvx2(h []uint32, message []uint8) diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.s b/vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.s new file mode 100644 index 00000000..80b0b739 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx2_amd64.s @@ -0,0 +1,1449 @@ +//+build !noasm,!appengine + +// SHA256 implementation for AVX2 + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// This code is based on an Intel White-Paper: +// "Fast SHA-256 Implementations on Intel Architecture Processors" +// +// together with the reference implementation from the following authors: +// James Guilford +// Kirk Yap +// Tim Chen +// +// For Golang it has been converted to Plan 9 assembly with the help of +// github.com/minio/asm2plan9s to assemble Intel instructions to their Plan9 +// equivalents +// + +DATA K256<>+0x000(SB)/8, $0x71374491428a2f98 +DATA K256<>+0x008(SB)/8, $0xe9b5dba5b5c0fbcf +DATA K256<>+0x010(SB)/8, $0x71374491428a2f98 +DATA K256<>+0x018(SB)/8, $0xe9b5dba5b5c0fbcf +DATA K256<>+0x020(SB)/8, $0x59f111f13956c25b +DATA K256<>+0x028(SB)/8, $0xab1c5ed5923f82a4 +DATA K256<>+0x030(SB)/8, $0x59f111f13956c25b +DATA K256<>+0x038(SB)/8, $0xab1c5ed5923f82a4 +DATA K256<>+0x040(SB)/8, $0x12835b01d807aa98 +DATA K256<>+0x048(SB)/8, $0x550c7dc3243185be +DATA K256<>+0x050(SB)/8, $0x12835b01d807aa98 +DATA K256<>+0x058(SB)/8, $0x550c7dc3243185be +DATA K256<>+0x060(SB)/8, $0x80deb1fe72be5d74 +DATA K256<>+0x068(SB)/8, $0xc19bf1749bdc06a7 +DATA K256<>+0x070(SB)/8, $0x80deb1fe72be5d74 +DATA K256<>+0x078(SB)/8, $0xc19bf1749bdc06a7 +DATA K256<>+0x080(SB)/8, $0xefbe4786e49b69c1 +DATA K256<>+0x088(SB)/8, $0x240ca1cc0fc19dc6 +DATA K256<>+0x090(SB)/8, $0xefbe4786e49b69c1 +DATA K256<>+0x098(SB)/8, $0x240ca1cc0fc19dc6 +DATA K256<>+0x0a0(SB)/8, $0x4a7484aa2de92c6f +DATA K256<>+0x0a8(SB)/8, $0x76f988da5cb0a9dc +DATA K256<>+0x0b0(SB)/8, $0x4a7484aa2de92c6f +DATA K256<>+0x0b8(SB)/8, $0x76f988da5cb0a9dc +DATA K256<>+0x0c0(SB)/8, $0xa831c66d983e5152 +DATA K256<>+0x0c8(SB)/8, $0xbf597fc7b00327c8 +DATA K256<>+0x0d0(SB)/8, $0xa831c66d983e5152 +DATA K256<>+0x0d8(SB)/8, $0xbf597fc7b00327c8 +DATA K256<>+0x0e0(SB)/8, $0xd5a79147c6e00bf3 +DATA K256<>+0x0e8(SB)/8, $0x1429296706ca6351 +DATA K256<>+0x0f0(SB)/8, $0xd5a79147c6e00bf3 +DATA K256<>+0x0f8(SB)/8, $0x1429296706ca6351 +DATA K256<>+0x100(SB)/8, $0x2e1b213827b70a85 +DATA K256<>+0x108(SB)/8, $0x53380d134d2c6dfc +DATA K256<>+0x110(SB)/8, $0x2e1b213827b70a85 +DATA K256<>+0x118(SB)/8, $0x53380d134d2c6dfc +DATA K256<>+0x120(SB)/8, $0x766a0abb650a7354 +DATA K256<>+0x128(SB)/8, $0x92722c8581c2c92e +DATA K256<>+0x130(SB)/8, $0x766a0abb650a7354 +DATA K256<>+0x138(SB)/8, $0x92722c8581c2c92e +DATA K256<>+0x140(SB)/8, $0xa81a664ba2bfe8a1 +DATA K256<>+0x148(SB)/8, $0xc76c51a3c24b8b70 +DATA K256<>+0x150(SB)/8, $0xa81a664ba2bfe8a1 +DATA K256<>+0x158(SB)/8, $0xc76c51a3c24b8b70 +DATA K256<>+0x160(SB)/8, $0xd6990624d192e819 +DATA K256<>+0x168(SB)/8, $0x106aa070f40e3585 +DATA K256<>+0x170(SB)/8, $0xd6990624d192e819 +DATA K256<>+0x178(SB)/8, $0x106aa070f40e3585 +DATA K256<>+0x180(SB)/8, $0x1e376c0819a4c116 +DATA K256<>+0x188(SB)/8, $0x34b0bcb52748774c +DATA K256<>+0x190(SB)/8, $0x1e376c0819a4c116 +DATA K256<>+0x198(SB)/8, $0x34b0bcb52748774c +DATA K256<>+0x1a0(SB)/8, $0x4ed8aa4a391c0cb3 +DATA K256<>+0x1a8(SB)/8, $0x682e6ff35b9cca4f +DATA K256<>+0x1b0(SB)/8, $0x4ed8aa4a391c0cb3 +DATA K256<>+0x1b8(SB)/8, $0x682e6ff35b9cca4f +DATA K256<>+0x1c0(SB)/8, $0x78a5636f748f82ee +DATA K256<>+0x1c8(SB)/8, $0x8cc7020884c87814 +DATA K256<>+0x1d0(SB)/8, $0x78a5636f748f82ee +DATA K256<>+0x1d8(SB)/8, $0x8cc7020884c87814 +DATA K256<>+0x1e0(SB)/8, $0xa4506ceb90befffa +DATA K256<>+0x1e8(SB)/8, $0xc67178f2bef9a3f7 +DATA K256<>+0x1f0(SB)/8, $0xa4506ceb90befffa +DATA K256<>+0x1f8(SB)/8, $0xc67178f2bef9a3f7 + +DATA K256<>+0x200(SB)/8, $0x0405060700010203 +DATA K256<>+0x208(SB)/8, $0x0c0d0e0f08090a0b +DATA K256<>+0x210(SB)/8, $0x0405060700010203 +DATA K256<>+0x218(SB)/8, $0x0c0d0e0f08090a0b +DATA K256<>+0x220(SB)/8, $0x0b0a090803020100 +DATA K256<>+0x228(SB)/8, $0xffffffffffffffff +DATA K256<>+0x230(SB)/8, $0x0b0a090803020100 +DATA K256<>+0x238(SB)/8, $0xffffffffffffffff +DATA K256<>+0x240(SB)/8, $0xffffffffffffffff +DATA K256<>+0x248(SB)/8, $0x0b0a090803020100 +DATA K256<>+0x250(SB)/8, $0xffffffffffffffff +DATA K256<>+0x258(SB)/8, $0x0b0a090803020100 + +GLOBL K256<>(SB), 8, $608 + +// We need 0x220 stack space aligned on a 512 boundary, so for the +// worstcase-aligned SP we need twice this amount, being 1088 (=0x440) +// +// SP aligned end-aligned stacksize +// 100013d0 10001400 10001620 592 +// 100013d8 10001400 10001620 584 +// 100013e0 10001600 10001820 1088 +// 100013e8 10001600 10001820 1080 + +// func blockAvx2(h []uint32, message []uint8) +TEXT ·blockAvx2(SB),$1088-48 + + MOVQ h+0(FP), DI // DI: &h + MOVQ message_base+24(FP), SI // SI: &message + MOVQ message_len+32(FP), DX // len(message) + ADDQ SI, DX // end pointer of input + MOVQ SP, R11 // copy stack pointer + ADDQ $0x220, SP // sp += 0x220 + ANDQ $0xfffffffffffffe00, SP // align stack frame + ADDQ $0x1c0, SP + MOVQ DI, 0x40(SP) // save ctx + MOVQ SI, 0x48(SP) // save input + MOVQ DX, 0x50(SP) // save end pointer + MOVQ R11, 0x58(SP) // save copy of stack pointer + + WORD $0xf8c5; BYTE $0x77 // vzeroupper + ADDQ $0x40, SI // input++ + MOVL (DI), AX + MOVQ SI, R12 // borrow $T1 + MOVL 4(DI), BX + CMPQ SI, DX // $_end + MOVL 8(DI), CX + LONG $0xe4440f4c // cmove r12,rsp /* next block or random data */ + MOVL 12(DI), DX + MOVL 16(DI), R8 + MOVL 20(DI), R9 + MOVL 24(DI), R10 + MOVL 28(DI), R11 + + LEAQ K256<>(SB), BP + LONG $0x856f7dc5; LONG $0x00000220 // VMOVDQA YMM8, 0x220[rbp] /* vmovdqa ymm8,YMMWORD PTR [rip+0x220] */ + LONG $0x8d6f7dc5; LONG $0x00000240 // VMOVDQA YMM9, 0x240[rbp] /* vmovdqa ymm9,YMMWORD PTR [rip+0x240] */ + LONG $0x956f7dc5; LONG $0x00000200 // VMOVDQA YMM10, 0x200[rbp] /* vmovdqa ymm7,YMMWORD PTR [rip+0x200] */ + +loop0: + LONG $0x6f7dc1c4; BYTE $0xfa // VMOVDQA YMM7, YMM10 + + // Load first 16 dwords from two blocks + MOVOU -64(SI), X0 // vmovdqu xmm0,XMMWORD PTR [rsi-0x40] + MOVOU -48(SI), X1 // vmovdqu xmm1,XMMWORD PTR [rsi-0x30] + MOVOU -32(SI), X2 // vmovdqu xmm2,XMMWORD PTR [rsi-0x20] + MOVOU -16(SI), X3 // vmovdqu xmm3,XMMWORD PTR [rsi-0x10] + + // Byte swap data and transpose data into high/low + LONG $0x387dc3c4; WORD $0x2404; BYTE $0x01 // vinserti128 ymm0,ymm0,[r12],0x1 + LONG $0x3875c3c4; LONG $0x0110244c // vinserti128 ymm1,ymm1,0x10[r12],0x1 + LONG $0x007de2c4; BYTE $0xc7 // vpshufb ymm0,ymm0,ymm7 + LONG $0x386dc3c4; LONG $0x01202454 // vinserti128 ymm2,ymm2,0x20[r12],0x1 + LONG $0x0075e2c4; BYTE $0xcf // vpshufb ymm1,ymm1,ymm7 + LONG $0x3865c3c4; LONG $0x0130245c // vinserti128 ymm3,ymm3,0x30[r12],0x1 + + LEAQ K256<>(SB), BP + LONG $0x006de2c4; BYTE $0xd7 // vpshufb ymm2,ymm2,ymm7 + LONG $0x65fefdc5; BYTE $0x00 // vpaddd ymm4,ymm0,[rbp] + LONG $0x0065e2c4; BYTE $0xdf // vpshufb ymm3,ymm3,ymm7 + LONG $0x6dfef5c5; BYTE $0x20 // vpaddd ymm5,ymm1,0x20[rbp] + LONG $0x75feedc5; BYTE $0x40 // vpaddd ymm6,ymm2,0x40[rbp] + LONG $0x7dfee5c5; BYTE $0x60 // vpaddd ymm7,ymm3,0x60[rbp] + + LONG $0x247ffdc5; BYTE $0x24 // vmovdqa [rsp],ymm4 + XORQ R14, R14 + LONG $0x6c7ffdc5; WORD $0x2024 // vmovdqa [rsp+0x20],ymm5 + + ADDQ $-0x40, SP + MOVQ BX, DI + LONG $0x347ffdc5; BYTE $0x24 // vmovdqa [rsp],ymm6 + XORQ CX, DI // magic + LONG $0x7c7ffdc5; WORD $0x2024 // vmovdqa [rsp+0x20],ymm7 + MOVQ R9, R12 + ADDQ $0x80, BP + +loop1: + // Schedule 48 input dwords, by doing 3 rounds of 12 each + // Note: SIMD instructions are interleaved with the SHA calculations + ADDQ $-0x40, SP + LONG $0x0f75e3c4; WORD $0x04e0 // vpalignr ymm4,ymm1,ymm0,0x4 + + // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, SP, 0x80) + LONG $0x249c0344; LONG $0x00000080 // add r11d,[rsp+0x80] + WORD $0x2145; BYTE $0xc4 // and r12d,r8d + LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 + LONG $0x0f65e3c4; WORD $0x04fa // vpalignr ymm7,ymm3,ymm2,0x4 + LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb + LONG $0x30048d42 // lea eax,[rax+r14*1] + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + LONG $0xd472cdc5; BYTE $0x07 // vpsrld ymm6,ymm4,0x7 + LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 + LONG $0xc7fefdc5 // vpaddd ymm0,ymm0,ymm7 + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xc7 // mov r15d,eax + LONG $0xd472c5c5; BYTE $0x03 // vpsrld ymm7,ymm4,0x3 + LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 + LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] + WORD $0x3141; BYTE $0xdf // xor r15d,ebx + LONG $0xf472d5c5; BYTE $0x0e // vpslld ymm5,ymm4,0xe + LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd + LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 + LONG $0x1a148d42 // lea edx,[rdx+r11*1] + LONG $0xe6efc5c5 // vpxor ymm4,ymm7,ymm6 + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xdf31 // xor edi,ebx + LONG $0xfb70fdc5; BYTE $0xfa // vpshufd ymm7,ymm3,0xfa + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] + WORD $0x8945; BYTE $0xc4 // mov r12d,r8d + LONG $0xd672cdc5; BYTE $0x0b // vpsrld ymm6,ymm6,0xb + + // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, SP, 0x84) + LONG $0x24940344; LONG $0x00000084 // add r10d,[rsp+0x84] + WORD $0x2141; BYTE $0xd4 // and r12d,edx + LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb + LONG $0x331c8d47 // lea r11d,[r11+r14*1] + LONG $0x22148d47 // lea r10d,[r10+r12*1] + LONG $0xf572d5c5; BYTE $0x0b // vpslld ymm5,ymm5,0xb + LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 + LONG $0xe6efddc5 // vpxor ymm4,ymm4,ymm6 + LONG $0x22148d47 // lea r10d,[r10+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xdf // mov edi,r11d + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 + LONG $0x2a148d47 // lea r10d,[r10+r13*1] + WORD $0xc731 // xor edi,eax + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd + LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 + LONG $0x110c8d42 // lea ecx,[rcx+r10*1] + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xc7 // xor r15d,eax + LONG $0xc4fefdc5 // vpaddd ymm0,ymm0,ymm4 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3a148d47 // lea r10d,[r10+r15*1] + WORD $0x8941; BYTE $0xd4 // mov r12d,edx + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, SP, 0x88) + LONG $0x248c0344; LONG $0x00000088 // add r9d,[rsp+0x88] + WORD $0x2141; BYTE $0xcc // and r12d,ecx + LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb + LONG $0x32148d47 // lea r10d,[r10+r14*1] + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 + LONG $0x004dc2c4; BYTE $0xf0 // vpshufb ymm6,ymm6,ymm8 + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xd7 // mov r15d,r10d + LONG $0xc6fefdc5 // vpaddd ymm0,ymm0,ymm6 + LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 + LONG $0x290c8d47 // lea r9d,[r9+r13*1] + WORD $0x3145; BYTE $0xdf // xor r15d,r11d + LONG $0xf870fdc5; BYTE $0x50 // vpshufd ymm7,ymm0,0x50 + LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd + LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 + LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xdf // xor edi,r11d + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d45 // lea r9d,[r9+rdi*1] + WORD $0x8941; BYTE $0xcc // mov r12d,ecx + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, SP, 0x8c) + LONG $0x24840344; LONG $0x0000008c // add r8d,[rsp+0x8c] + WORD $0x2141; BYTE $0xdc // and r12d,ebx + LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb + LONG $0x310c8d47 // lea r9d,[r9+r14*1] + LONG $0x20048d47 // lea r8d,[r8+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 + LONG $0x004dc2c4; BYTE $0xf1 // vpshufb ymm6,ymm6,ymm9 + LONG $0x20048d47 // lea r8d,[r8+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xcf // mov edi,r9d + LONG $0xc6fefdc5 // vpaddd ymm0,ymm0,ymm6 + LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 + LONG $0x28048d47 // lea r8d,[r8+r13*1] + WORD $0x3144; BYTE $0xd7 // xor edi,r10d + LONG $0x75fefdc5; BYTE $0x00 // vpaddd ymm6,ymm0,[rbp+0x0] + LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd + LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 + LONG $0x00048d42 // lea eax,[rax+r8*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xd7 // xor r15d,r10d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d47 // lea r8d,[r8+r15*1] + WORD $0x8941; BYTE $0xdc // mov r12d,ebx + + LONG $0x347ffdc5; BYTE $0x24 // vmovdqa [rsp],ymm6 + LONG $0x0f6de3c4; WORD $0x04e1 // vpalignr ymm4,ymm2,ymm1,0x4 + + // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, SP, 0xa0) + LONG $0xa0249403; WORD $0x0000; BYTE $0x00 // add edx,[rsp+0xa0] + WORD $0x2141; BYTE $0xc4 // and r12d,eax + LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 + LONG $0x0f7de3c4; WORD $0x04fb // vpalignr ymm7,ymm0,ymm3,0x4 + LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb + LONG $0x30048d47 // lea r8d,[r8+r14*1] + LONG $0x22148d42 // lea edx,[rdx+r12*1] + LONG $0xd472cdc5; BYTE $0x07 // vpsrld ymm6,ymm4,0x7 + LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 + LONG $0xcffef5c5 // vpaddd ymm1,ymm1,ymm7 + LONG $0x22148d42 // lea edx,[rdx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xc7 // mov r15d,r8d + LONG $0xd472c5c5; BYTE $0x03 // vpsrld ymm7,ymm4,0x3 + LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 + LONG $0x2a148d42 // lea edx,[rdx+r13*1] + WORD $0x3145; BYTE $0xcf // xor r15d,r9d + LONG $0xf472d5c5; BYTE $0x0e // vpslld ymm5,ymm4,0xe + LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd + LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 + LONG $0x131c8d45 // lea r11d,[r11+rdx*1] + LONG $0xe6efc5c5 // vpxor ymm4,ymm7,ymm6 + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xcf // xor edi,r9d + LONG $0xf870fdc5; BYTE $0xfa // vpshufd ymm7,ymm0,0xfa + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] + WORD $0x8941; BYTE $0xc4 // mov r12d,eax + LONG $0xd672cdc5; BYTE $0x0b // vpsrld ymm6,ymm6,0xb + + // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, SP, 0xa4) + LONG $0xa4248c03; WORD $0x0000; BYTE $0x00 // add ecx,[rsp+0xa4] + WORD $0x2145; BYTE $0xdc // and r12d,r11d + LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb + LONG $0x32148d42 // lea edx,[rdx+r14*1] + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + LONG $0xf572d5c5; BYTE $0x0b // vpslld ymm5,ymm5,0xb + LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 + LONG $0xe6efddc5 // vpxor ymm4,ymm4,ymm6 + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xd789 // mov edi,edx + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 + LONG $0x290c8d42 // lea ecx,[rcx+r13*1] + WORD $0x3144; BYTE $0xc7 // xor edi,r8d + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd + LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 + LONG $0x0a148d45 // lea r10d,[r10+rcx*1] + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xc7 // xor r15d,r8d + LONG $0xccfef5c5 // vpaddd ymm1,ymm1,ymm4 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d42 // lea ecx,[rcx+r15*1] + WORD $0x8945; BYTE $0xdc // mov r12d,r11d + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, SP, 0xa8) + LONG $0xa8249c03; WORD $0x0000; BYTE $0x00 // add ebx,[rsp+0xa8] + WORD $0x2145; BYTE $0xd4 // and r12d,r10d + LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb + LONG $0x310c8d42 // lea ecx,[rcx+r14*1] + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 + LONG $0x004dc2c4; BYTE $0xf0 // vpshufb ymm6,ymm6,ymm8 + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xcf // mov r15d,ecx + LONG $0xcefef5c5 // vpaddd ymm1,ymm1,ymm6 + LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 + LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] + WORD $0x3141; BYTE $0xd7 // xor r15d,edx + LONG $0xf970fdc5; BYTE $0x50 // vpshufd ymm7,ymm1,0x50 + LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd + LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 + LONG $0x190c8d45 // lea r9d,[r9+rbx*1] + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xd731 // xor edi,edx + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] + WORD $0x8945; BYTE $0xd4 // mov r12d,r10d + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, SP, 0xac) + LONG $0xac248403; WORD $0x0000; BYTE $0x00 // add eax,[rsp+0xac] + WORD $0x2145; BYTE $0xcc // and r12d,r9d + LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb + LONG $0x331c8d42 // lea ebx,[rbx+r14*1] + LONG $0x20048d42 // lea eax,[rax+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 + LONG $0x004dc2c4; BYTE $0xf1 // vpshufb ymm6,ymm6,ymm9 + LONG $0x20048d42 // lea eax,[rax+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xdf89 // mov edi,ebx + LONG $0xcefef5c5 // vpaddd ymm1,ymm1,ymm6 + LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 + LONG $0x28048d42 // lea eax,[rax+r13*1] + WORD $0xcf31 // xor edi,ecx + LONG $0x75fef5c5; BYTE $0x20 // vpaddd ymm6,ymm1,[rbp+0x20] + LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd + LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 + LONG $0x00048d45 // lea r8d,[r8+rax*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xcf // xor r15d,ecx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d42 // lea eax,[rax+r15*1] + WORD $0x8945; BYTE $0xcc // mov r12d,r9d + + LONG $0x747ffdc5; WORD $0x2024 // vmovdqa [rsp+0x20],ymm6 + + LONG $0x24648d48; BYTE $0xc0 // lea rsp,[rsp-0x40] + LONG $0x0f65e3c4; WORD $0x04e2 // vpalignr ymm4,ymm3,ymm2,0x4 + + // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, SP, 0x80) + LONG $0x249c0344; LONG $0x00000080 // add r11d,[rsp+0x80] + WORD $0x2145; BYTE $0xc4 // and r12d,r8d + LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 + LONG $0x0f75e3c4; WORD $0x04f8 // vpalignr ymm7,ymm1,ymm0,0x4 + LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb + LONG $0x30048d42 // lea eax,[rax+r14*1] + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + LONG $0xd472cdc5; BYTE $0x07 // vpsrld ymm6,ymm4,0x7 + LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 + LONG $0xd7feedc5 // vpaddd ymm2,ymm2,ymm7 + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xc7 // mov r15d,eax + LONG $0xd472c5c5; BYTE $0x03 // vpsrld ymm7,ymm4,0x3 + LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 + LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] + WORD $0x3141; BYTE $0xdf // xor r15d,ebx + LONG $0xf472d5c5; BYTE $0x0e // vpslld ymm5,ymm4,0xe + LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd + LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 + LONG $0x1a148d42 // lea edx,[rdx+r11*1] + LONG $0xe6efc5c5 // vpxor ymm4,ymm7,ymm6 + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xdf31 // xor edi,ebx + LONG $0xf970fdc5; BYTE $0xfa // vpshufd ymm7,ymm1,0xfa + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] + WORD $0x8945; BYTE $0xc4 // mov r12d,r8d + LONG $0xd672cdc5; BYTE $0x0b // vpsrld ymm6,ymm6,0xb + + // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, SP, 0x84) + LONG $0x24940344; LONG $0x00000084 // add r10d,[rsp+0x84] + WORD $0x2141; BYTE $0xd4 // and r12d,edx + LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb + LONG $0x331c8d47 // lea r11d,[r11+r14*1] + LONG $0x22148d47 // lea r10d,[r10+r12*1] + LONG $0xf572d5c5; BYTE $0x0b // vpslld ymm5,ymm5,0xb + LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 + LONG $0xe6efddc5 // vpxor ymm4,ymm4,ymm6 + LONG $0x22148d47 // lea r10d,[r10+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xdf // mov edi,r11d + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 + LONG $0x2a148d47 // lea r10d,[r10+r13*1] + WORD $0xc731 // xor edi,eax + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd + LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 + LONG $0x110c8d42 // lea ecx,[rcx+r10*1] + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xc7 // xor r15d,eax + LONG $0xd4feedc5 // vpaddd ymm2,ymm2,ymm4 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3a148d47 // lea r10d,[r10+r15*1] + WORD $0x8941; BYTE $0xd4 // mov r12d,edx + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, SP, 0x88) + LONG $0x248c0344; LONG $0x00000088 // add r9d,[rsp+0x88] + WORD $0x2141; BYTE $0xcc // and r12d,ecx + LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb + LONG $0x32148d47 // lea r10d,[r10+r14*1] + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 + LONG $0x004dc2c4; BYTE $0xf0 // vpshufb ymm6,ymm6,ymm8 + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xd7 // mov r15d,r10d + LONG $0xd6feedc5 // vpaddd ymm2,ymm2,ymm6 + LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 + LONG $0x290c8d47 // lea r9d,[r9+r13*1] + WORD $0x3145; BYTE $0xdf // xor r15d,r11d + LONG $0xfa70fdc5; BYTE $0x50 // vpshufd ymm7,ymm2,0x50 + LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd + LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 + LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xdf // xor edi,r11d + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d45 // lea r9d,[r9+rdi*1] + WORD $0x8941; BYTE $0xcc // mov r12d,ecx + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, SP, 0x8c) + LONG $0x24840344; LONG $0x0000008c // add r8d,[rsp+0x8c] + WORD $0x2141; BYTE $0xdc // and r12d,ebx + LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb + LONG $0x310c8d47 // lea r9d,[r9+r14*1] + LONG $0x20048d47 // lea r8d,[r8+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 + LONG $0x004dc2c4; BYTE $0xf1 // vpshufb ymm6,ymm6,ymm9 + LONG $0x20048d47 // lea r8d,[r8+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xcf // mov edi,r9d + LONG $0xd6feedc5 // vpaddd ymm2,ymm2,ymm6 + LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 + LONG $0x28048d47 // lea r8d,[r8+r13*1] + WORD $0x3144; BYTE $0xd7 // xor edi,r10d + LONG $0x75feedc5; BYTE $0x40 // vpaddd ymm6,ymm2,[rbp+0x40] + LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd + LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 + LONG $0x00048d42 // lea eax,[rax+r8*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xd7 // xor r15d,r10d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d47 // lea r8d,[r8+r15*1] + WORD $0x8941; BYTE $0xdc // mov r12d,ebx + + LONG $0x347ffdc5; BYTE $0x24 // vmovdqa [rsp],ymm6 + LONG $0x0f7de3c4; WORD $0x04e3 // vpalignr ymm4,ymm0,ymm3,0x4 + + // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, SP, 0xa0) + LONG $0xa0249403; WORD $0x0000; BYTE $0x00 // add edx,[rsp+0xa0] + WORD $0x2141; BYTE $0xc4 // and r12d,eax + LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 + LONG $0x0f6de3c4; WORD $0x04f9 // vpalignr ymm7,ymm2,ymm1,0x4 + LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb + LONG $0x30048d47 // lea r8d,[r8+r14*1] + LONG $0x22148d42 // lea edx,[rdx+r12*1] + LONG $0xd472cdc5; BYTE $0x07 // vpsrld ymm6,ymm4,0x7 + LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 + LONG $0xdffee5c5 // vpaddd ymm3,ymm3,ymm7 + LONG $0x22148d42 // lea edx,[rdx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xc7 // mov r15d,r8d + LONG $0xd472c5c5; BYTE $0x03 // vpsrld ymm7,ymm4,0x3 + LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 + LONG $0x2a148d42 // lea edx,[rdx+r13*1] + WORD $0x3145; BYTE $0xcf // xor r15d,r9d + LONG $0xf472d5c5; BYTE $0x0e // vpslld ymm5,ymm4,0xe + LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd + LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 + LONG $0x131c8d45 // lea r11d,[r11+rdx*1] + LONG $0xe6efc5c5 // vpxor ymm4,ymm7,ymm6 + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xcf // xor edi,r9d + LONG $0xfa70fdc5; BYTE $0xfa // vpshufd ymm7,ymm2,0xfa + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] + WORD $0x8941; BYTE $0xc4 // mov r12d,eax + LONG $0xd672cdc5; BYTE $0x0b // vpsrld ymm6,ymm6,0xb + + // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, SP, 0xa4) + LONG $0xa4248c03; WORD $0x0000; BYTE $0x00 // add ecx,[rsp+0xa4] + WORD $0x2145; BYTE $0xdc // and r12d,r11d + LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb + LONG $0x32148d42 // lea edx,[rdx+r14*1] + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + LONG $0xf572d5c5; BYTE $0x0b // vpslld ymm5,ymm5,0xb + LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 + LONG $0xe6efddc5 // vpxor ymm4,ymm4,ymm6 + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xd789 // mov edi,edx + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 + LONG $0x290c8d42 // lea ecx,[rcx+r13*1] + WORD $0x3144; BYTE $0xc7 // xor edi,r8d + LONG $0xe5efddc5 // vpxor ymm4,ymm4,ymm5 + LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd + LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 + LONG $0x0a148d45 // lea r10d,[r10+rcx*1] + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xc7 // xor r15d,r8d + LONG $0xdcfee5c5 // vpaddd ymm3,ymm3,ymm4 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d42 // lea ecx,[rcx+r15*1] + WORD $0x8945; BYTE $0xdc // mov r12d,r11d + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, SP, 0xa8) + LONG $0xa8249c03; WORD $0x0000; BYTE $0x00 // add ebx,[rsp+0xa8] + WORD $0x2145; BYTE $0xd4 // and r12d,r10d + LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb + LONG $0x310c8d42 // lea ecx,[rcx+r14*1] + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 + LONG $0x004dc2c4; BYTE $0xf0 // vpshufb ymm6,ymm6,ymm8 + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xcf // mov r15d,ecx + LONG $0xdefee5c5 // vpaddd ymm3,ymm3,ymm6 + LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 + LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] + WORD $0x3141; BYTE $0xd7 // xor r15d,edx + LONG $0xfb70fdc5; BYTE $0x50 // vpshufd ymm7,ymm3,0x50 + LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd + LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 + LONG $0x190c8d45 // lea r9d,[r9+rbx*1] + LONG $0xd772cdc5; BYTE $0x0a // vpsrld ymm6,ymm7,0xa + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xd731 // xor edi,edx + LONG $0xd773c5c5; BYTE $0x11 // vpsrlq ymm7,ymm7,0x11 + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] + WORD $0x8945; BYTE $0xd4 // mov r12d,r10d + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + + // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, SP, 0xac) + LONG $0xac248403; WORD $0x0000; BYTE $0x00 // add eax,[rsp+0xac] + WORD $0x2145; BYTE $0xcc // and r12d,r9d + LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 + LONG $0xd773c5c5; BYTE $0x02 // vpsrlq ymm7,ymm7,0x2 + LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb + LONG $0x331c8d42 // lea ebx,[rbx+r14*1] + LONG $0x20048d42 // lea eax,[rax+r12*1] + LONG $0xf7efcdc5 // vpxor ymm6,ymm6,ymm7 + LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 + LONG $0x004dc2c4; BYTE $0xf1 // vpshufb ymm6,ymm6,ymm9 + LONG $0x20048d42 // lea eax,[rax+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xdf89 // mov edi,ebx + LONG $0xdefee5c5 // vpaddd ymm3,ymm3,ymm6 + LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 + LONG $0x28048d42 // lea eax,[rax+r13*1] + WORD $0xcf31 // xor edi,ecx + LONG $0x75fee5c5; BYTE $0x60 // vpaddd ymm6,ymm3,[rbp+0x60] + LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd + LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 + LONG $0x00048d45 // lea r8d,[r8+rax*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xcf // xor r15d,ecx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d42 // lea eax,[rax+r15*1] + WORD $0x8945; BYTE $0xcc // mov r12d,r9d + + LONG $0x747ffdc5; WORD $0x2024 // vmovdqa [rsp+0x20],ymm6 + ADDQ $0x80, BP + + CMPB 0x3(BP), $0x0 + JNE loop1 + + // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, SP, 0x40) + LONG $0x245c0344; BYTE $0x40 // add r11d,[rsp+0x40] + WORD $0x2145; BYTE $0xc4 // and r12d,r8d + LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 + LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb + LONG $0x30048d42 // lea eax,[rax+r14*1] + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xc7 // mov r15d,eax + LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 + LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] + WORD $0x3141; BYTE $0xdf // xor r15d,ebx + LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd + LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 + LONG $0x1a148d42 // lea edx,[rdx+r11*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xdf31 // xor edi,ebx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] + WORD $0x8945; BYTE $0xc4 // mov r12d,r8d + + // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, SP, 0x44) + LONG $0x24540344; BYTE $0x44 // add r10d,[rsp+0x44] + WORD $0x2141; BYTE $0xd4 // and r12d,edx + LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 + LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb + LONG $0x331c8d47 // lea r11d,[r11+r14*1] + LONG $0x22148d47 // lea r10d,[r10+r12*1] + LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 + LONG $0x22148d47 // lea r10d,[r10+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xdf // mov edi,r11d + LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 + LONG $0x2a148d47 // lea r10d,[r10+r13*1] + WORD $0xc731 // xor edi,eax + LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd + LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 + LONG $0x110c8d42 // lea ecx,[rcx+r10*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xc7 // xor r15d,eax + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3a148d47 // lea r10d,[r10+r15*1] + WORD $0x8941; BYTE $0xd4 // mov r12d,edx + + // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, SP, 0x48) + LONG $0x244c0344; BYTE $0x48 // add r9d,[rsp+0x48] + WORD $0x2141; BYTE $0xcc // and r12d,ecx + LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 + LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb + LONG $0x32148d47 // lea r10d,[r10+r14*1] + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xd7 // mov r15d,r10d + LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 + LONG $0x290c8d47 // lea r9d,[r9+r13*1] + WORD $0x3145; BYTE $0xdf // xor r15d,r11d + LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd + LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 + LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xdf // xor edi,r11d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d45 // lea r9d,[r9+rdi*1] + WORD $0x8941; BYTE $0xcc // mov r12d,ecx + + // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, SP, 0x4c) + LONG $0x24440344; BYTE $0x4c // add r8d,[rsp+0x4c] + WORD $0x2141; BYTE $0xdc // and r12d,ebx + LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 + LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb + LONG $0x310c8d47 // lea r9d,[r9+r14*1] + LONG $0x20048d47 // lea r8d,[r8+r12*1] + LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 + LONG $0x20048d47 // lea r8d,[r8+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xcf // mov edi,r9d + LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 + LONG $0x28048d47 // lea r8d,[r8+r13*1] + WORD $0x3144; BYTE $0xd7 // xor edi,r10d + LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd + LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 + LONG $0x00048d42 // lea eax,[rax+r8*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xd7 // xor r15d,r10d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d47 // lea r8d,[r8+r15*1] + WORD $0x8941; BYTE $0xdc // mov r12d,ebx + + // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, SP, 0x60) + LONG $0x60245403 // add edx,[rsp+0x60] + WORD $0x2141; BYTE $0xc4 // and r12d,eax + LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 + LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb + LONG $0x30048d47 // lea r8d,[r8+r14*1] + LONG $0x22148d42 // lea edx,[rdx+r12*1] + LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 + LONG $0x22148d42 // lea edx,[rdx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xc7 // mov r15d,r8d + LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 + LONG $0x2a148d42 // lea edx,[rdx+r13*1] + WORD $0x3145; BYTE $0xcf // xor r15d,r9d + LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd + LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 + LONG $0x131c8d45 // lea r11d,[r11+rdx*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xcf // xor edi,r9d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] + WORD $0x8941; BYTE $0xc4 // mov r12d,eax + + // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, SP, 0x64) + LONG $0x64244c03 // add ecx,[rsp+0x64] + WORD $0x2145; BYTE $0xdc // and r12d,r11d + LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 + LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb + LONG $0x32148d42 // lea edx,[rdx+r14*1] + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xd789 // mov edi,edx + LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 + LONG $0x290c8d42 // lea ecx,[rcx+r13*1] + WORD $0x3144; BYTE $0xc7 // xor edi,r8d + LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd + LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 + LONG $0x0a148d45 // lea r10d,[r10+rcx*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xc7 // xor r15d,r8d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d42 // lea ecx,[rcx+r15*1] + WORD $0x8945; BYTE $0xdc // mov r12d,r11d + + // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, SP, 0x68) + LONG $0x68245c03 // add ebx,[rsp+0x68] + WORD $0x2145; BYTE $0xd4 // and r12d,r10d + LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 + LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb + LONG $0x310c8d42 // lea ecx,[rcx+r14*1] + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xcf // mov r15d,ecx + LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 + LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] + WORD $0x3141; BYTE $0xd7 // xor r15d,edx + LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd + LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 + LONG $0x190c8d45 // lea r9d,[r9+rbx*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xd731 // xor edi,edx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] + WORD $0x8945; BYTE $0xd4 // mov r12d,r10d + + // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, SP, 0x6c) + LONG $0x6c244403 // add eax,[rsp+0x6c] + WORD $0x2145; BYTE $0xcc // and r12d,r9d + LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 + LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb + LONG $0x331c8d42 // lea ebx,[rbx+r14*1] + LONG $0x20048d42 // lea eax,[rax+r12*1] + LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 + LONG $0x20048d42 // lea eax,[rax+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xdf89 // mov edi,ebx + LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 + LONG $0x28048d42 // lea eax,[rax+r13*1] + WORD $0xcf31 // xor edi,ecx + LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd + LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 + LONG $0x00048d45 // lea r8d,[r8+rax*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xcf // xor r15d,ecx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d42 // lea eax,[rax+r15*1] + WORD $0x8945; BYTE $0xcc // mov r12d,r9d + + // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, SP, 0x00) + LONG $0x241c0344 // add r11d,[rsp] + WORD $0x2145; BYTE $0xc4 // and r12d,r8d + LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 + LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb + LONG $0x30048d42 // lea eax,[rax+r14*1] + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xc7 // mov r15d,eax + LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 + LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] + WORD $0x3141; BYTE $0xdf // xor r15d,ebx + LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd + LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 + LONG $0x1a148d42 // lea edx,[rdx+r11*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xdf31 // xor edi,ebx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] + WORD $0x8945; BYTE $0xc4 // mov r12d,r8d + + // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, SP, 0x04) + LONG $0x24540344; BYTE $0x04 // add r10d,[rsp+0x4] + WORD $0x2141; BYTE $0xd4 // and r12d,edx + LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 + LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb + LONG $0x331c8d47 // lea r11d,[r11+r14*1] + LONG $0x22148d47 // lea r10d,[r10+r12*1] + LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 + LONG $0x22148d47 // lea r10d,[r10+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xdf // mov edi,r11d + LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 + LONG $0x2a148d47 // lea r10d,[r10+r13*1] + WORD $0xc731 // xor edi,eax + LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd + LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 + LONG $0x110c8d42 // lea ecx,[rcx+r10*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xc7 // xor r15d,eax + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3a148d47 // lea r10d,[r10+r15*1] + WORD $0x8941; BYTE $0xd4 // mov r12d,edx + + // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, SP, 0x08) + LONG $0x244c0344; BYTE $0x08 // add r9d,[rsp+0x8] + WORD $0x2141; BYTE $0xcc // and r12d,ecx + LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 + LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb + LONG $0x32148d47 // lea r10d,[r10+r14*1] + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xd7 // mov r15d,r10d + LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 + LONG $0x290c8d47 // lea r9d,[r9+r13*1] + WORD $0x3145; BYTE $0xdf // xor r15d,r11d + LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd + LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 + LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xdf // xor edi,r11d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d45 // lea r9d,[r9+rdi*1] + WORD $0x8941; BYTE $0xcc // mov r12d,ecx + + // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, SP, 0x0c) + LONG $0x24440344; BYTE $0x0c // add r8d,[rsp+0xc] + WORD $0x2141; BYTE $0xdc // and r12d,ebx + LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 + LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb + LONG $0x310c8d47 // lea r9d,[r9+r14*1] + LONG $0x20048d47 // lea r8d,[r8+r12*1] + LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 + LONG $0x20048d47 // lea r8d,[r8+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xcf // mov edi,r9d + LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 + LONG $0x28048d47 // lea r8d,[r8+r13*1] + WORD $0x3144; BYTE $0xd7 // xor edi,r10d + LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd + LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 + LONG $0x00048d42 // lea eax,[rax+r8*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xd7 // xor r15d,r10d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d47 // lea r8d,[r8+r15*1] + WORD $0x8941; BYTE $0xdc // mov r12d,ebx + + // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, SP, 0x20) + LONG $0x20245403 // add edx,[rsp+0x20] + WORD $0x2141; BYTE $0xc4 // and r12d,eax + LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 + LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb + LONG $0x30048d47 // lea r8d,[r8+r14*1] + LONG $0x22148d42 // lea edx,[rdx+r12*1] + LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 + LONG $0x22148d42 // lea edx,[rdx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xc7 // mov r15d,r8d + LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 + LONG $0x2a148d42 // lea edx,[rdx+r13*1] + WORD $0x3145; BYTE $0xcf // xor r15d,r9d + LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd + LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 + LONG $0x131c8d45 // lea r11d,[r11+rdx*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xcf // xor edi,r9d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] + WORD $0x8941; BYTE $0xc4 // mov r12d,eax + + // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, SP, 0x24) + LONG $0x24244c03 // add ecx,[rsp+0x24] + WORD $0x2145; BYTE $0xdc // and r12d,r11d + LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 + LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb + LONG $0x32148d42 // lea edx,[rdx+r14*1] + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xd789 // mov edi,edx + LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 + LONG $0x290c8d42 // lea ecx,[rcx+r13*1] + WORD $0x3144; BYTE $0xc7 // xor edi,r8d + LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd + LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 + LONG $0x0a148d45 // lea r10d,[r10+rcx*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xc7 // xor r15d,r8d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d42 // lea ecx,[rcx+r15*1] + WORD $0x8945; BYTE $0xdc // mov r12d,r11d + + // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, SP, 0x28) + LONG $0x28245c03 // add ebx,[rsp+0x28] + WORD $0x2145; BYTE $0xd4 // and r12d,r10d + LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 + LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb + LONG $0x310c8d42 // lea ecx,[rcx+r14*1] + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xcf // mov r15d,ecx + LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 + LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] + WORD $0x3141; BYTE $0xd7 // xor r15d,edx + LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd + LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 + LONG $0x190c8d45 // lea r9d,[r9+rbx*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xd731 // xor edi,edx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] + WORD $0x8945; BYTE $0xd4 // mov r12d,r10d + + // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, SP, 0x2c) + LONG $0x2c244403 // add eax,[rsp+0x2c] + WORD $0x2145; BYTE $0xcc // and r12d,r9d + LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 + LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb + LONG $0x331c8d42 // lea ebx,[rbx+r14*1] + LONG $0x20048d42 // lea eax,[rax+r12*1] + LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 + LONG $0x20048d42 // lea eax,[rax+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xdf89 // mov edi,ebx + LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 + LONG $0x28048d42 // lea eax,[rax+r13*1] + WORD $0xcf31 // xor edi,ecx + LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd + LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 + LONG $0x00048d45 // lea r8d,[r8+rax*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xcf // xor r15d,ecx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d42 // lea eax,[rax+r15*1] + WORD $0x8945; BYTE $0xcc // mov r12d,r9d + + MOVQ 0x200(SP), DI // $_ctx + ADDQ R14, AX + + LEAQ 0x1c0(SP), BP + + ADDL (DI), AX + ADDL 4(DI), BX + ADDL 8(DI), CX + ADDL 12(DI), DX + ADDL 16(DI), R8 + ADDL 20(DI), R9 + ADDL 24(DI), R10 + ADDL 28(DI), R11 + + MOVL AX, (DI) + MOVL BX, 4(DI) + MOVL CX, 8(DI) + MOVL DX, 12(DI) + MOVL R8, 16(DI) + MOVL R9, 20(DI) + MOVL R10, 24(DI) + MOVL R11, 28(DI) + + CMPQ SI, 0x50(BP) // $_end + JE done + + XORQ R14, R14 + MOVQ BX, DI + XORQ CX, DI // magic + MOVQ R9, R12 + +loop2: + // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, BP, 0x10) + LONG $0x105d0344 // add r11d,[rbp+0x10] + WORD $0x2145; BYTE $0xc4 // and r12d,r8d + LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 + LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb + LONG $0x30048d42 // lea eax,[rax+r14*1] + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 + LONG $0x231c8d47 // lea r11d,[r11+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xc7 // mov r15d,eax + LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 + LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] + WORD $0x3141; BYTE $0xdf // xor r15d,ebx + LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd + LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 + LONG $0x1a148d42 // lea edx,[rdx+r11*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xdf31 // xor edi,ebx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] + WORD $0x8945; BYTE $0xc4 // mov r12d,r8d + + // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, BP, 0x14) + LONG $0x14550344 // add r10d,[rbp+0x14] + WORD $0x2141; BYTE $0xd4 // and r12d,edx + LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 + LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb + LONG $0x331c8d47 // lea r11d,[r11+r14*1] + LONG $0x22148d47 // lea r10d,[r10+r12*1] + LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 + LONG $0x22148d47 // lea r10d,[r10+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xdf // mov edi,r11d + LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 + LONG $0x2a148d47 // lea r10d,[r10+r13*1] + WORD $0xc731 // xor edi,eax + LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd + LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 + LONG $0x110c8d42 // lea ecx,[rcx+r10*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xc7 // xor r15d,eax + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x3a148d47 // lea r10d,[r10+r15*1] + WORD $0x8941; BYTE $0xd4 // mov r12d,edx + + // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, BP, 0x18) + LONG $0x184d0344 // add r9d,[rbp+0x18] + WORD $0x2141; BYTE $0xcc // and r12d,ecx + LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 + LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb + LONG $0x32148d47 // lea r10d,[r10+r14*1] + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 + LONG $0x210c8d47 // lea r9d,[r9+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xd7 // mov r15d,r10d + LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 + LONG $0x290c8d47 // lea r9d,[r9+r13*1] + WORD $0x3145; BYTE $0xdf // xor r15d,r11d + LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd + LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 + LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xdf // xor edi,r11d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d45 // lea r9d,[r9+rdi*1] + WORD $0x8941; BYTE $0xcc // mov r12d,ecx + + // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, BP, 0x1c) + LONG $0x1c450344 // add r8d,[rbp+0x1c] + WORD $0x2141; BYTE $0xdc // and r12d,ebx + LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 + LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb + LONG $0x310c8d47 // lea r9d,[r9+r14*1] + LONG $0x20048d47 // lea r8d,[r8+r12*1] + LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 + LONG $0x20048d47 // lea r8d,[r8+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8944; BYTE $0xcf // mov edi,r9d + LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 + LONG $0x28048d47 // lea r8d,[r8+r13*1] + WORD $0x3144; BYTE $0xd7 // xor edi,r10d + LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd + LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 + LONG $0x00048d42 // lea eax,[rax+r8*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xd7 // xor r15d,r10d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d47 // lea r8d,[r8+r15*1] + WORD $0x8941; BYTE $0xdc // mov r12d,ebx + + // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, BP, 0x30) + WORD $0x5503; BYTE $0x30 // add edx,[rbp+0x30] + WORD $0x2141; BYTE $0xc4 // and r12d,eax + LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 + LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb + LONG $0x30048d47 // lea r8d,[r8+r14*1] + LONG $0x22148d42 // lea edx,[rdx+r12*1] + LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 + LONG $0x22148d42 // lea edx,[rdx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8945; BYTE $0xc7 // mov r15d,r8d + LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 + LONG $0x2a148d42 // lea edx,[rdx+r13*1] + WORD $0x3145; BYTE $0xcf // xor r15d,r9d + LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd + LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 + LONG $0x131c8d45 // lea r11d,[r11+rdx*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3144; BYTE $0xcf // xor edi,r9d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] + WORD $0x8941; BYTE $0xc4 // mov r12d,eax + + // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, BP, 0x34) + WORD $0x4d03; BYTE $0x34 // add ecx,[rbp+0x34] + WORD $0x2145; BYTE $0xdc // and r12d,r11d + LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 + LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb + LONG $0x32148d42 // lea edx,[rdx+r14*1] + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 + LONG $0x210c8d42 // lea ecx,[rcx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xd789 // mov edi,edx + LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 + LONG $0x290c8d42 // lea ecx,[rcx+r13*1] + WORD $0x3144; BYTE $0xc7 // xor edi,r8d + LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd + LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 + LONG $0x0a148d45 // lea r10d,[r10+rcx*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3145; BYTE $0xc7 // xor r15d,r8d + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x390c8d42 // lea ecx,[rcx+r15*1] + WORD $0x8945; BYTE $0xdc // mov r12d,r11d + + // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, BP, 0x38) + WORD $0x5d03; BYTE $0x38 // add ebx,[rbp+0x38] + WORD $0x2145; BYTE $0xd4 // and r12d,r10d + LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 + LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb + LONG $0x310c8d42 // lea ecx,[rcx+r14*1] + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax + WORD $0x3145; BYTE $0xfd // xor r13d,r15d + LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 + LONG $0x231c8d42 // lea ebx,[rbx+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0x8941; BYTE $0xcf // mov r15d,ecx + LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 + LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] + WORD $0x3141; BYTE $0xd7 // xor r15d,edx + LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd + LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 + LONG $0x190c8d45 // lea r9d,[r9+rbx*1] + WORD $0x2144; BYTE $0xff // and edi,r15d + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0xd731 // xor edi,edx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] + WORD $0x8945; BYTE $0xd4 // mov r12d,r10d + + // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, BP, 0x3c) + WORD $0x4503; BYTE $0x3c // add eax,[rbp+0x3c] + WORD $0x2145; BYTE $0xcc // and r12d,r9d + LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 + LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb + LONG $0x331c8d42 // lea ebx,[rbx+r14*1] + LONG $0x20048d42 // lea eax,[rax+r12*1] + LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d + WORD $0x3141; BYTE $0xfd // xor r13d,edi + LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 + LONG $0x20048d42 // lea eax,[rax+r12*1] + WORD $0x3145; BYTE $0xf5 // xor r13d,r14d + WORD $0xdf89 // mov edi,ebx + LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 + LONG $0x28048d42 // lea eax,[rax+r13*1] + WORD $0xcf31 // xor edi,ecx + LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd + LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 + LONG $0x00048d45 // lea r8d,[r8+rax*1] + WORD $0x2141; BYTE $0xff // and r15d,edi + WORD $0x3145; BYTE $0xe6 // xor r14d,r12d + WORD $0x3141; BYTE $0xcf // xor r15d,ecx + WORD $0x3145; BYTE $0xee // xor r14d,r13d + LONG $0x38048d42 // lea eax,[rax+r15*1] + WORD $0x8945; BYTE $0xcc // mov r12d,r9d + + ADDQ $-0x40, BP + CMPQ BP, SP + JAE loop2 + + MOVQ 0x200(SP), DI // $_ctx + ADDQ R14, AX + + ADDQ $0x1c0, SP + + ADDL (DI), AX + ADDL 4(DI), BX + ADDL 8(DI), CX + ADDL 12(DI), DX + ADDL 16(DI), R8 + ADDL 20(DI), R9 + + ADDQ $0x80, SI // input += 2 + ADDL 24(DI), R10 + MOVQ SI, R12 + ADDL 28(DI), R11 + CMPQ SI, 0x50(SP) // input == _end + + MOVL AX, (DI) + LONG $0xe4440f4c // cmove r12,rsp /* next block or stale data */ + MOVL AX, (DI) + MOVL BX, 4(DI) + MOVL CX, 8(DI) + MOVL DX, 12(DI) + MOVL R8, 16(DI) + MOVL R9, 20(DI) + MOVL R10, 24(DI) + MOVL R11, 28(DI) + + JBE loop0 + LEAQ (SP), BP + +done: + MOVQ BP, SP + MOVQ 0x58(SP), SP // restore saved stack pointer + WORD $0xf8c5; BYTE $0x77 // vzeroupper + + RET + diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.asm b/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.asm new file mode 100644 index 00000000..c959b1aa --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.asm @@ -0,0 +1,686 @@ + +// 16x Parallel implementation of SHA256 for AVX512 + +// +// Minio Cloud Storage, (C) 2017 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +// This code is based on the Intel Multi-Buffer Crypto for IPSec library +// and more specifically the following implementation: +// https://github.com/intel/intel-ipsec-mb/blob/master/avx512/sha256_x16_avx512.asm +// +// For Golang it has been converted into Plan 9 assembly with the help of +// github.com/minio/asm2plan9s to assemble the AVX512 instructions +// + +// Copyright (c) 2017, Intel Corporation +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Intel Corporation nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#define SHA256_DIGEST_ROW_SIZE 64 + +// arg1 +#define STATE rdi +#define STATE_P9 DI +// arg2 +#define INP_SIZE rsi +#define INP_SIZE_P9 SI + +#define IDX rcx +#define TBL rdx +#define TBL_P9 DX + +#define INPUT rax +#define INPUT_P9 AX + +#define inp0 r9 +#define SCRATCH_P9 R12 +#define SCRATCH r12 +#define maskp r13 +#define MASKP_P9 R13 +#define mask r14 +#define MASK_P9 R14 + +#define A zmm0 +#define B zmm1 +#define C zmm2 +#define D zmm3 +#define E zmm4 +#define F zmm5 +#define G zmm6 +#define H zmm7 +#define T1 zmm8 +#define TMP0 zmm9 +#define TMP1 zmm10 +#define TMP2 zmm11 +#define TMP3 zmm12 +#define TMP4 zmm13 +#define TMP5 zmm14 +#define TMP6 zmm15 + +#define W0 zmm16 +#define W1 zmm17 +#define W2 zmm18 +#define W3 zmm19 +#define W4 zmm20 +#define W5 zmm21 +#define W6 zmm22 +#define W7 zmm23 +#define W8 zmm24 +#define W9 zmm25 +#define W10 zmm26 +#define W11 zmm27 +#define W12 zmm28 +#define W13 zmm29 +#define W14 zmm30 +#define W15 zmm31 + + +#define TRANSPOSE16(_r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7, _r8, _r9, _r10, _r11, _r12, _r13, _r14, _r15, _t0, _t1) \ + \ + \ // input r0 = {a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0} + \ // r1 = {b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0} + \ // r2 = {c15 c14 c13 c12 c11 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0} + \ // r3 = {d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0} + \ // r4 = {e15 e14 e13 e12 e11 e10 e9 e8 e7 e6 e5 e4 e3 e2 e1 e0} + \ // r5 = {f15 f14 f13 f12 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0} + \ // r6 = {g15 g14 g13 g12 g11 g10 g9 g8 g7 g6 g5 g4 g3 g2 g1 g0} + \ // r7 = {h15 h14 h13 h12 h11 h10 h9 h8 h7 h6 h5 h4 h3 h2 h1 h0} + \ // r8 = {i15 i14 i13 i12 i11 i10 i9 i8 i7 i6 i5 i4 i3 i2 i1 i0} + \ // r9 = {j15 j14 j13 j12 j11 j10 j9 j8 j7 j6 j5 j4 j3 j2 j1 j0} + \ // r10 = {k15 k14 k13 k12 k11 k10 k9 k8 k7 k6 k5 k4 k3 k2 k1 k0} + \ // r11 = {l15 l14 l13 l12 l11 l10 l9 l8 l7 l6 l5 l4 l3 l2 l1 l0} + \ // r12 = {m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0} + \ // r13 = {n15 n14 n13 n12 n11 n10 n9 n8 n7 n6 n5 n4 n3 n2 n1 n0} + \ // r14 = {o15 o14 o13 o12 o11 o10 o9 o8 o7 o6 o5 o4 o3 o2 o1 o0} + \ // r15 = {p15 p14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0} + \ + \ // output r0 = { p0 o0 n0 m0 l0 k0 j0 i0 h0 g0 f0 e0 d0 c0 b0 a0} + \ // r1 = { p1 o1 n1 m1 l1 k1 j1 i1 h1 g1 f1 e1 d1 c1 b1 a1} + \ // r2 = { p2 o2 n2 m2 l2 k2 j2 i2 h2 g2 f2 e2 d2 c2 b2 a2} + \ // r3 = { p3 o3 n3 m3 l3 k3 j3 i3 h3 g3 f3 e3 d3 c3 b3 a3} + \ // r4 = { p4 o4 n4 m4 l4 k4 j4 i4 h4 g4 f4 e4 d4 c4 b4 a4} + \ // r5 = { p5 o5 n5 m5 l5 k5 j5 i5 h5 g5 f5 e5 d5 c5 b5 a5} + \ // r6 = { p6 o6 n6 m6 l6 k6 j6 i6 h6 g6 f6 e6 d6 c6 b6 a6} + \ // r7 = { p7 o7 n7 m7 l7 k7 j7 i7 h7 g7 f7 e7 d7 c7 b7 a7} + \ // r8 = { p8 o8 n8 m8 l8 k8 j8 i8 h8 g8 f8 e8 d8 c8 b8 a8} + \ // r9 = { p9 o9 n9 m9 l9 k9 j9 i9 h9 g9 f9 e9 d9 c9 b9 a9} + \ // r10 = {p10 o10 n10 m10 l10 k10 j10 i10 h10 g10 f10 e10 d10 c10 b10 a10} + \ // r11 = {p11 o11 n11 m11 l11 k11 j11 i11 h11 g11 f11 e11 d11 c11 b11 a11} + \ // r12 = {p12 o12 n12 m12 l12 k12 j12 i12 h12 g12 f12 e12 d12 c12 b12 a12} + \ // r13 = {p13 o13 n13 m13 l13 k13 j13 i13 h13 g13 f13 e13 d13 c13 b13 a13} + \ // r14 = {p14 o14 n14 m14 l14 k14 j14 i14 h14 g14 f14 e14 d14 c14 b14 a14} + \ // r15 = {p15 o15 n15 m15 l15 k15 j15 i15 h15 g15 f15 e15 d15 c15 b15 a15} + \ + \ // process top half + vshufps _t0, _r0, _r1, 0x44 \ // t0 = {b13 b12 a13 a12 b9 b8 a9 a8 b5 b4 a5 a4 b1 b0 a1 a0} + vshufps _r0, _r0, _r1, 0xEE \ // r0 = {b15 b14 a15 a14 b11 b10 a11 a10 b7 b6 a7 a6 b3 b2 a3 a2} + vshufps _t1, _r2, _r3, 0x44 \ // t1 = {d13 d12 c13 c12 d9 d8 c9 c8 d5 d4 c5 c4 d1 d0 c1 c0} + vshufps _r2, _r2, _r3, 0xEE \ // r2 = {d15 d14 c15 c14 d11 d10 c11 c10 d7 d6 c7 c6 d3 d2 c3 c2} + \ + vshufps _r3, _t0, _t1, 0xDD \ // r3 = {d13 c13 b13 a13 d9 c9 b9 a9 d5 c5 b5 a5 d1 c1 b1 a1} + vshufps _r1, _r0, _r2, 0x88 \ // r1 = {d14 c14 b14 a14 d10 c10 b10 a10 d6 c6 b6 a6 d2 c2 b2 a2} + vshufps _r0, _r0, _r2, 0xDD \ // r0 = {d15 c15 b15 a15 d11 c11 b11 a11 d7 c7 b7 a7 d3 c3 b3 a3} + vshufps _t0, _t0, _t1, 0x88 \ // t0 = {d12 c12 b12 a12 d8 c8 b8 a8 d4 c4 b4 a4 d0 c0 b0 a0} + \ + \ // use r2 in place of t0 + vshufps _r2, _r4, _r5, 0x44 \ // r2 = {f13 f12 e13 e12 f9 f8 e9 e8 f5 f4 e5 e4 f1 f0 e1 e0} + vshufps _r4, _r4, _r5, 0xEE \ // r4 = {f15 f14 e15 e14 f11 f10 e11 e10 f7 f6 e7 e6 f3 f2 e3 e2} + vshufps _t1, _r6, _r7, 0x44 \ // t1 = {h13 h12 g13 g12 h9 h8 g9 g8 h5 h4 g5 g4 h1 h0 g1 g0} + vshufps _r6, _r6, _r7, 0xEE \ // r6 = {h15 h14 g15 g14 h11 h10 g11 g10 h7 h6 g7 g6 h3 h2 g3 g2} + \ + vshufps _r7, _r2, _t1, 0xDD \ // r7 = {h13 g13 f13 e13 h9 g9 f9 e9 h5 g5 f5 e5 h1 g1 f1 e1} + vshufps _r5, _r4, _r6, 0x88 \ // r5 = {h14 g14 f14 e14 h10 g10 f10 e10 h6 g6 f6 e6 h2 g2 f2 e2} + vshufps _r4, _r4, _r6, 0xDD \ // r4 = {h15 g15 f15 e15 h11 g11 f11 e11 h7 g7 f7 e7 h3 g3 f3 e3} + vshufps _r2, _r2, _t1, 0x88 \ // r2 = {h12 g12 f12 e12 h8 g8 f8 e8 h4 g4 f4 e4 h0 g0 f0 e0} + \ + \ // use r6 in place of t0 + vshufps _r6, _r8, _r9, 0x44 \ // r6 = {j13 j12 i13 i12 j9 j8 i9 i8 j5 j4 i5 i4 j1 j0 i1 i0} + vshufps _r8, _r8, _r9, 0xEE \ // r8 = {j15 j14 i15 i14 j11 j10 i11 i10 j7 j6 i7 i6 j3 j2 i3 i2} + vshufps _t1, _r10, _r11, 0x44 \ // t1 = {l13 l12 k13 k12 l9 l8 k9 k8 l5 l4 k5 k4 l1 l0 k1 k0} + vshufps _r10, _r10, _r11, 0xEE \ // r10 = {l15 l14 k15 k14 l11 l10 k11 k10 l7 l6 k7 k6 l3 l2 k3 k2} + \ + vshufps _r11, _r6, _t1, 0xDD \ // r11 = {l13 k13 j13 113 l9 k9 j9 i9 l5 k5 j5 i5 l1 k1 j1 i1} + vshufps _r9, _r8, _r10, 0x88 \ // r9 = {l14 k14 j14 114 l10 k10 j10 i10 l6 k6 j6 i6 l2 k2 j2 i2} + vshufps _r8, _r8, _r10, 0xDD \ // r8 = {l15 k15 j15 115 l11 k11 j11 i11 l7 k7 j7 i7 l3 k3 j3 i3} + vshufps _r6, _r6, _t1, 0x88 \ // r6 = {l12 k12 j12 112 l8 k8 j8 i8 l4 k4 j4 i4 l0 k0 j0 i0} + \ + \ // use r10 in place of t0 + vshufps _r10, _r12, _r13, 0x44 \ // r10 = {n13 n12 m13 m12 n9 n8 m9 m8 n5 n4 m5 m4 n1 n0 a1 m0} + vshufps _r12, _r12, _r13, 0xEE \ // r12 = {n15 n14 m15 m14 n11 n10 m11 m10 n7 n6 m7 m6 n3 n2 a3 m2} + vshufps _t1, _r14, _r15, 0x44 \ // t1 = {p13 p12 013 012 p9 p8 09 08 p5 p4 05 04 p1 p0 01 00} + vshufps _r14, _r14, _r15, 0xEE \ // r14 = {p15 p14 015 014 p11 p10 011 010 p7 p6 07 06 p3 p2 03 02} + \ + vshufps _r15, _r10, _t1, 0xDD \ // r15 = {p13 013 n13 m13 p9 09 n9 m9 p5 05 n5 m5 p1 01 n1 m1} + vshufps _r13, _r12, _r14, 0x88 \ // r13 = {p14 014 n14 m14 p10 010 n10 m10 p6 06 n6 m6 p2 02 n2 m2} + vshufps _r12, _r12, _r14, 0xDD \ // r12 = {p15 015 n15 m15 p11 011 n11 m11 p7 07 n7 m7 p3 03 n3 m3} + vshufps _r10, _r10, _t1, 0x88 \ // r10 = {p12 012 n12 m12 p8 08 n8 m8 p4 04 n4 m4 p0 00 n0 m0} + \ + \ // At this point, the registers that contain interesting data are: + \ // t0, r3, r1, r0, r2, r7, r5, r4, r6, r11, r9, r8, r10, r15, r13, r12 + \ // Can use t1 and r14 as scratch registers + LEAQ PSHUFFLE_TRANSPOSE16_MASK1<>(SB), BX \ + LEAQ PSHUFFLE_TRANSPOSE16_MASK2<>(SB), R8 \ + \ + vmovdqu32 _r14, [rbx] \ + vpermi2q _r14, _t0, _r2 \ // r14 = {h8 g8 f8 e8 d8 c8 b8 a8 h0 g0 f0 e0 d0 c0 b0 a0} + vmovdqu32 _t1, [r8] \ + vpermi2q _t1, _t0, _r2 \ // t1 = {h12 g12 f12 e12 d12 c12 b12 a12 h4 g4 f4 e4 d4 c4 b4 a4} + \ + vmovdqu32 _r2, [rbx] \ + vpermi2q _r2, _r3, _r7 \ // r2 = {h9 g9 f9 e9 d9 c9 b9 a9 h1 g1 f1 e1 d1 c1 b1 a1} + vmovdqu32 _t0, [r8] \ + vpermi2q _t0, _r3, _r7 \ // t0 = {h13 g13 f13 e13 d13 c13 b13 a13 h5 g5 f5 e5 d5 c5 b5 a5} + \ + vmovdqu32 _r3, [rbx] \ + vpermi2q _r3, _r1, _r5 \ // r3 = {h10 g10 f10 e10 d10 c10 b10 a10 h2 g2 f2 e2 d2 c2 b2 a2} + vmovdqu32 _r7, [r8] \ + vpermi2q _r7, _r1, _r5 \ // r7 = {h14 g14 f14 e14 d14 c14 b14 a14 h6 g6 f6 e6 d6 c6 b6 a6} + \ + vmovdqu32 _r1, [rbx] \ + vpermi2q _r1, _r0, _r4 \ // r1 = {h11 g11 f11 e11 d11 c11 b11 a11 h3 g3 f3 e3 d3 c3 b3 a3} + vmovdqu32 _r5, [r8] \ + vpermi2q _r5, _r0, _r4 \ // r5 = {h15 g15 f15 e15 d15 c15 b15 a15 h7 g7 f7 e7 d7 c7 b7 a7} + \ + vmovdqu32 _r0, [rbx] \ + vpermi2q _r0, _r6, _r10 \ // r0 = {p8 o8 n8 m8 l8 k8 j8 i8 p0 o0 n0 m0 l0 k0 j0 i0} + vmovdqu32 _r4, [r8] \ + vpermi2q _r4, _r6, _r10 \ // r4 = {p12 o12 n12 m12 l12 k12 j12 i12 p4 o4 n4 m4 l4 k4 j4 i4} + \ + vmovdqu32 _r6, [rbx] \ + vpermi2q _r6, _r11, _r15 \ // r6 = {p9 o9 n9 m9 l9 k9 j9 i9 p1 o1 n1 m1 l1 k1 j1 i1} + vmovdqu32 _r10, [r8] \ + vpermi2q _r10, _r11, _r15 \ // r10 = {p13 o13 n13 m13 l13 k13 j13 i13 p5 o5 n5 m5 l5 k5 j5 i5} + \ + vmovdqu32 _r11, [rbx] \ + vpermi2q _r11, _r9, _r13 \ // r11 = {p10 o10 n10 m10 l10 k10 j10 i10 p2 o2 n2 m2 l2 k2 j2 i2} + vmovdqu32 _r15, [r8] \ + vpermi2q _r15, _r9, _r13 \ // r15 = {p14 o14 n14 m14 l14 k14 j14 i14 p6 o6 n6 m6 l6 k6 j6 i6} + \ + vmovdqu32 _r9, [rbx] \ + vpermi2q _r9, _r8, _r12 \ // r9 = {p11 o11 n11 m11 l11 k11 j11 i11 p3 o3 n3 m3 l3 k3 j3 i3} + vmovdqu32 _r13, [r8] \ + vpermi2q _r13, _r8, _r12 \ // r13 = {p15 o15 n15 m15 l15 k15 j15 i15 p7 o7 n7 m7 l7 k7 j7 i7} + \ + \ // At this point r8 and r12 can be used as scratch registers + vshuff64x2 _r8, _r14, _r0, 0xEE \ // r8 = {p8 o8 n8 m8 l8 k8 j8 i8 h8 g8 f8 e8 d8 c8 b8 a8} + vshuff64x2 _r0, _r14, _r0, 0x44 \ // r0 = {p0 o0 n0 m0 l0 k0 j0 i0 h0 g0 f0 e0 d0 c0 b0 a0} + \ + vshuff64x2 _r12, _t1, _r4, 0xEE \ // r12 = {p12 o12 n12 m12 l12 k12 j12 i12 h12 g12 f12 e12 d12 c12 b12 a12} + vshuff64x2 _r4, _t1, _r4, 0x44 \ // r4 = {p4 o4 n4 m4 l4 k4 j4 i4 h4 g4 f4 e4 d4 c4 b4 a4} + \ + vshuff64x2 _r14, _r7, _r15, 0xEE \ // r14 = {p14 o14 n14 m14 l14 k14 j14 i14 h14 g14 f14 e14 d14 c14 b14 a14} + vshuff64x2 _t1, _r7, _r15, 0x44 \ // t1 = {p6 o6 n6 m6 l6 k6 j6 i6 h6 g6 f6 e6 d6 c6 b6 a6} + \ + vshuff64x2 _r15, _r5, _r13, 0xEE \ // r15 = {p15 o15 n15 m15 l15 k15 j15 i15 h15 g15 f15 e15 d15 c15 b15 a15} + vshuff64x2 _r7, _r5, _r13, 0x44 \ // r7 = {p7 o7 n7 m7 l7 k7 j7 i7 h7 g7 f7 e7 d7 c7 b7 a7} + \ + vshuff64x2 _r13, _t0, _r10, 0xEE \ // r13 = {p13 o13 n13 m13 l13 k13 j13 i13 h13 g13 f13 e13 d13 c13 b13 a13} + vshuff64x2 _r5, _t0, _r10, 0x44 \ // r5 = {p5 o5 n5 m5 l5 k5 j5 i5 h5 g5 f5 e5 d5 c5 b5 a5} + \ + vshuff64x2 _r10, _r3, _r11, 0xEE \ // r10 = {p10 o10 n10 m10 l10 k10 j10 i10 h10 g10 f10 e10 d10 c10 b10 a10} + vshuff64x2 _t0, _r3, _r11, 0x44 \ // t0 = {p2 o2 n2 m2 l2 k2 j2 i2 h2 g2 f2 e2 d2 c2 b2 a2} + \ + vshuff64x2 _r11, _r1, _r9, 0xEE \ // r11 = {p11 o11 n11 m11 l11 k11 j11 i11 h11 g11 f11 e11 d11 c11 b11 a11} + vshuff64x2 _r3, _r1, _r9, 0x44 \ // r3 = {p3 o3 n3 m3 l3 k3 j3 i3 h3 g3 f3 e3 d3 c3 b3 a3} + \ + vshuff64x2 _r9, _r2, _r6, 0xEE \ // r9 = {p9 o9 n9 m9 l9 k9 j9 i9 h9 g9 f9 e9 d9 c9 b9 a9} + vshuff64x2 _r1, _r2, _r6, 0x44 \ // r1 = {p1 o1 n1 m1 l1 k1 j1 i1 h1 g1 f1 e1 d1 c1 b1 a1} + \ + vmovdqu32 _r2, _t0 \ // r2 = {p2 o2 n2 m2 l2 k2 j2 i2 h2 g2 f2 e2 d2 c2 b2 a2} + vmovdqu32 _r6, _t1 \ // r6 = {p6 o6 n6 m6 l6 k6 j6 i6 h6 g6 f6 e6 d6 c6 b6 a6} + + +// CH(A, B, C) = (A&B) ^ (~A&C) +// MAJ(E, F, G) = (E&F) ^ (E&G) ^ (F&G) +// SIGMA0 = ROR_2 ^ ROR_13 ^ ROR_22 +// SIGMA1 = ROR_6 ^ ROR_11 ^ ROR_25 +// sigma0 = ROR_7 ^ ROR_18 ^ SHR_3 +// sigma1 = ROR_17 ^ ROR_19 ^ SHR_10 + +// Main processing loop per round +#define PROCESS_LOOP(_WT, _ROUND, _A, _B, _C, _D, _E, _F, _G, _H) \ + \ // T1 = H + SIGMA1(E) + CH(E, F, G) + Kt + Wt + \ // T2 = SIGMA0(A) + MAJ(A, B, C) + \ // H=G, G=F, F=E, E=D+T1, D=C, C=B, B=A, A=T1+T2 + \ + \ // H becomes T2, then add T1 for A + \ // D becomes D + T1 for E + \ + vpaddd T1, _H, TMP3 \ // T1 = H + Kt + vmovdqu32 TMP0, _E \ + vprord TMP1, _E, 6 \ // ROR_6(E) + vprord TMP2, _E, 11 \ // ROR_11(E) + vprord TMP3, _E, 25 \ // ROR_25(E) + vpternlogd TMP0, _F, _G, 0xCA \ // TMP0 = CH(E,F,G) + vpaddd T1, T1, _WT \ // T1 = T1 + Wt + vpternlogd TMP1, TMP2, TMP3, 0x96 \ // TMP1 = SIGMA1(E) + vpaddd T1, T1, TMP0 \ // T1 = T1 + CH(E,F,G) + vpaddd T1, T1, TMP1 \ // T1 = T1 + SIGMA1(E) + vpaddd _D, _D, T1 \ // D = D + T1 + \ + vprord _H, _A, 2 \ // ROR_2(A) + vprord TMP2, _A, 13 \ // ROR_13(A) + vprord TMP3, _A, 22 \ // ROR_22(A) + vmovdqu32 TMP0, _A \ + vpternlogd TMP0, _B, _C, 0xE8 \ // TMP0 = MAJ(A,B,C) + vpternlogd _H, TMP2, TMP3, 0x96 \ // H(T2) = SIGMA0(A) + vpaddd _H, _H, TMP0 \ // H(T2) = SIGMA0(A) + MAJ(A,B,C) + vpaddd _H, _H, T1 \ // H(A) = H(T2) + T1 + \ + vmovdqu32 TMP3, [TBL + ((_ROUND+1)*64)] \ // Next Kt + + +#define MSG_SCHED_ROUND_16_63(_WT, _WTp1, _WTp9, _WTp14) \ + vprord TMP4, _WTp14, 17 \ // ROR_17(Wt-2) + vprord TMP5, _WTp14, 19 \ // ROR_19(Wt-2) + vpsrld TMP6, _WTp14, 10 \ // SHR_10(Wt-2) + vpternlogd TMP4, TMP5, TMP6, 0x96 \ // TMP4 = sigma1(Wt-2) + \ + vpaddd _WT, _WT, TMP4 \ // Wt = Wt-16 + sigma1(Wt-2) + vpaddd _WT, _WT, _WTp9 \ // Wt = Wt-16 + sigma1(Wt-2) + Wt-7 + \ + vprord TMP4, _WTp1, 7 \ // ROR_7(Wt-15) + vprord TMP5, _WTp1, 18 \ // ROR_18(Wt-15) + vpsrld TMP6, _WTp1, 3 \ // SHR_3(Wt-15) + vpternlogd TMP4, TMP5, TMP6, 0x96 \ // TMP4 = sigma0(Wt-15) + \ + vpaddd _WT, _WT, TMP4 \ // Wt = Wt-16 + sigma1(Wt-2) + + \ // Wt-7 + sigma0(Wt-15) + + + +// Note this is reading in a block of data for one lane +// When all 16 are read, the data must be transposed to build msg schedule +#define MSG_SCHED_ROUND_00_15(_WT, OFFSET, LABEL) \ + TESTQ $(1<(SB), TBL_P9 + vmovdqu32 TMP2, [TBL] + + // Get first K from table + MOVQ table+16(FP), TBL_P9 + vmovdqu32 TMP3, [TBL] + + // Save digests for later addition + vmovdqu32 [SCRATCH + 64*0], A + vmovdqu32 [SCRATCH + 64*1], B + vmovdqu32 [SCRATCH + 64*2], C + vmovdqu32 [SCRATCH + 64*3], D + vmovdqu32 [SCRATCH + 64*4], E + vmovdqu32 [SCRATCH + 64*5], F + vmovdqu32 [SCRATCH + 64*6], G + vmovdqu32 [SCRATCH + 64*7], H + + add IDX, 64 + + // Transpose input data + TRANSPOSE16(W0, W1, W2, W3, W4, W5, W6, W7, W8, W9, W10, W11, W12, W13, W14, W15, TMP0, TMP1) + + vpshufb W0, W0, TMP2 + vpshufb W1, W1, TMP2 + vpshufb W2, W2, TMP2 + vpshufb W3, W3, TMP2 + vpshufb W4, W4, TMP2 + vpshufb W5, W5, TMP2 + vpshufb W6, W6, TMP2 + vpshufb W7, W7, TMP2 + vpshufb W8, W8, TMP2 + vpshufb W9, W9, TMP2 + vpshufb W10, W10, TMP2 + vpshufb W11, W11, TMP2 + vpshufb W12, W12, TMP2 + vpshufb W13, W13, TMP2 + vpshufb W14, W14, TMP2 + vpshufb W15, W15, TMP2 + + // MSG Schedule for W0-W15 is now complete in registers + // Process first 48 rounds + // Calculate next Wt+16 after processing is complete and Wt is unneeded + + PROCESS_LOOP( W0, 0, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_16_63( W0, W1, W9, W14) + PROCESS_LOOP( W1, 1, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_16_63( W1, W2, W10, W15) + PROCESS_LOOP( W2, 2, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_16_63( W2, W3, W11, W0) + PROCESS_LOOP( W3, 3, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_16_63( W3, W4, W12, W1) + PROCESS_LOOP( W4, 4, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_16_63( W4, W5, W13, W2) + PROCESS_LOOP( W5, 5, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_16_63( W5, W6, W14, W3) + PROCESS_LOOP( W6, 6, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_16_63( W6, W7, W15, W4) + PROCESS_LOOP( W7, 7, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_16_63( W7, W8, W0, W5) + PROCESS_LOOP( W8, 8, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_16_63( W8, W9, W1, W6) + PROCESS_LOOP( W9, 9, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_16_63( W9, W10, W2, W7) + PROCESS_LOOP(W10, 10, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_16_63(W10, W11, W3, W8) + PROCESS_LOOP(W11, 11, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_16_63(W11, W12, W4, W9) + PROCESS_LOOP(W12, 12, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_16_63(W12, W13, W5, W10) + PROCESS_LOOP(W13, 13, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_16_63(W13, W14, W6, W11) + PROCESS_LOOP(W14, 14, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_16_63(W14, W15, W7, W12) + PROCESS_LOOP(W15, 15, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_16_63(W15, W0, W8, W13) + PROCESS_LOOP( W0, 16, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_16_63( W0, W1, W9, W14) + PROCESS_LOOP( W1, 17, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_16_63( W1, W2, W10, W15) + PROCESS_LOOP( W2, 18, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_16_63( W2, W3, W11, W0) + PROCESS_LOOP( W3, 19, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_16_63( W3, W4, W12, W1) + PROCESS_LOOP( W4, 20, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_16_63( W4, W5, W13, W2) + PROCESS_LOOP( W5, 21, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_16_63( W5, W6, W14, W3) + PROCESS_LOOP( W6, 22, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_16_63( W6, W7, W15, W4) + PROCESS_LOOP( W7, 23, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_16_63( W7, W8, W0, W5) + PROCESS_LOOP( W8, 24, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_16_63( W8, W9, W1, W6) + PROCESS_LOOP( W9, 25, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_16_63( W9, W10, W2, W7) + PROCESS_LOOP(W10, 26, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_16_63(W10, W11, W3, W8) + PROCESS_LOOP(W11, 27, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_16_63(W11, W12, W4, W9) + PROCESS_LOOP(W12, 28, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_16_63(W12, W13, W5, W10) + PROCESS_LOOP(W13, 29, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_16_63(W13, W14, W6, W11) + PROCESS_LOOP(W14, 30, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_16_63(W14, W15, W7, W12) + PROCESS_LOOP(W15, 31, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_16_63(W15, W0, W8, W13) + PROCESS_LOOP( W0, 32, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_16_63( W0, W1, W9, W14) + PROCESS_LOOP( W1, 33, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_16_63( W1, W2, W10, W15) + PROCESS_LOOP( W2, 34, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_16_63( W2, W3, W11, W0) + PROCESS_LOOP( W3, 35, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_16_63( W3, W4, W12, W1) + PROCESS_LOOP( W4, 36, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_16_63( W4, W5, W13, W2) + PROCESS_LOOP( W5, 37, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_16_63( W5, W6, W14, W3) + PROCESS_LOOP( W6, 38, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_16_63( W6, W7, W15, W4) + PROCESS_LOOP( W7, 39, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_16_63( W7, W8, W0, W5) + PROCESS_LOOP( W8, 40, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_16_63( W8, W9, W1, W6) + PROCESS_LOOP( W9, 41, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_16_63( W9, W10, W2, W7) + PROCESS_LOOP(W10, 42, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_16_63(W10, W11, W3, W8) + PROCESS_LOOP(W11, 43, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_16_63(W11, W12, W4, W9) + PROCESS_LOOP(W12, 44, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_16_63(W12, W13, W5, W10) + PROCESS_LOOP(W13, 45, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_16_63(W13, W14, W6, W11) + PROCESS_LOOP(W14, 46, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_16_63(W14, W15, W7, W12) + PROCESS_LOOP(W15, 47, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_16_63(W15, W0, W8, W13) + + // Check if this is the last block + sub INP_SIZE, 1 + JE lastLoop + + // Load next mask for inputs + ADDQ $8, MASKP_P9 + MOVQ (MASKP_P9), MASK_P9 + + // Process last 16 rounds + // Read in next block msg data for use in first 16 words of msg sched + + PROCESS_LOOP( W0, 48, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_00_15( W0, 0, skipNext0) + PROCESS_LOOP( W1, 49, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_00_15( W1, 1, skipNext1) + PROCESS_LOOP( W2, 50, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_00_15( W2, 2, skipNext2) + PROCESS_LOOP( W3, 51, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_00_15( W3, 3, skipNext3) + PROCESS_LOOP( W4, 52, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_00_15( W4, 4, skipNext4) + PROCESS_LOOP( W5, 53, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_00_15( W5, 5, skipNext5) + PROCESS_LOOP( W6, 54, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_00_15( W6, 6, skipNext6) + PROCESS_LOOP( W7, 55, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_00_15( W7, 7, skipNext7) + PROCESS_LOOP( W8, 56, A, B, C, D, E, F, G, H) + MSG_SCHED_ROUND_00_15( W8, 8, skipNext8) + PROCESS_LOOP( W9, 57, H, A, B, C, D, E, F, G) + MSG_SCHED_ROUND_00_15( W9, 9, skipNext9) + PROCESS_LOOP(W10, 58, G, H, A, B, C, D, E, F) + MSG_SCHED_ROUND_00_15(W10, 10, skipNext10) + PROCESS_LOOP(W11, 59, F, G, H, A, B, C, D, E) + MSG_SCHED_ROUND_00_15(W11, 11, skipNext11) + PROCESS_LOOP(W12, 60, E, F, G, H, A, B, C, D) + MSG_SCHED_ROUND_00_15(W12, 12, skipNext12) + PROCESS_LOOP(W13, 61, D, E, F, G, H, A, B, C) + MSG_SCHED_ROUND_00_15(W13, 13, skipNext13) + PROCESS_LOOP(W14, 62, C, D, E, F, G, H, A, B) + MSG_SCHED_ROUND_00_15(W14, 14, skipNext14) + PROCESS_LOOP(W15, 63, B, C, D, E, F, G, H, A) + MSG_SCHED_ROUND_00_15(W15, 15, skipNext15) + + // Add old digest + vmovdqu32 TMP2, A + vmovdqu32 A, [SCRATCH + 64*0] + vpaddd A{k1}, A, TMP2 + vmovdqu32 TMP2, B + vmovdqu32 B, [SCRATCH + 64*1] + vpaddd B{k1}, B, TMP2 + vmovdqu32 TMP2, C + vmovdqu32 C, [SCRATCH + 64*2] + vpaddd C{k1}, C, TMP2 + vmovdqu32 TMP2, D + vmovdqu32 D, [SCRATCH + 64*3] + vpaddd D{k1}, D, TMP2 + vmovdqu32 TMP2, E + vmovdqu32 E, [SCRATCH + 64*4] + vpaddd E{k1}, E, TMP2 + vmovdqu32 TMP2, F + vmovdqu32 F, [SCRATCH + 64*5] + vpaddd F{k1}, F, TMP2 + vmovdqu32 TMP2, G + vmovdqu32 G, [SCRATCH + 64*6] + vpaddd G{k1}, G, TMP2 + vmovdqu32 TMP2, H + vmovdqu32 H, [SCRATCH + 64*7] + vpaddd H{k1}, H, TMP2 + + kmovq k1, mask + JMP lloop + +lastLoop: + // Process last 16 rounds + PROCESS_LOOP( W0, 48, A, B, C, D, E, F, G, H) + PROCESS_LOOP( W1, 49, H, A, B, C, D, E, F, G) + PROCESS_LOOP( W2, 50, G, H, A, B, C, D, E, F) + PROCESS_LOOP( W3, 51, F, G, H, A, B, C, D, E) + PROCESS_LOOP( W4, 52, E, F, G, H, A, B, C, D) + PROCESS_LOOP( W5, 53, D, E, F, G, H, A, B, C) + PROCESS_LOOP( W6, 54, C, D, E, F, G, H, A, B) + PROCESS_LOOP( W7, 55, B, C, D, E, F, G, H, A) + PROCESS_LOOP( W8, 56, A, B, C, D, E, F, G, H) + PROCESS_LOOP( W9, 57, H, A, B, C, D, E, F, G) + PROCESS_LOOP(W10, 58, G, H, A, B, C, D, E, F) + PROCESS_LOOP(W11, 59, F, G, H, A, B, C, D, E) + PROCESS_LOOP(W12, 60, E, F, G, H, A, B, C, D) + PROCESS_LOOP(W13, 61, D, E, F, G, H, A, B, C) + PROCESS_LOOP(W14, 62, C, D, E, F, G, H, A, B) + PROCESS_LOOP(W15, 63, B, C, D, E, F, G, H, A) + + // Add old digest + vmovdqu32 TMP2, A + vmovdqu32 A, [SCRATCH + 64*0] + vpaddd A{k1}, A, TMP2 + vmovdqu32 TMP2, B + vmovdqu32 B, [SCRATCH + 64*1] + vpaddd B{k1}, B, TMP2 + vmovdqu32 TMP2, C + vmovdqu32 C, [SCRATCH + 64*2] + vpaddd C{k1}, C, TMP2 + vmovdqu32 TMP2, D + vmovdqu32 D, [SCRATCH + 64*3] + vpaddd D{k1}, D, TMP2 + vmovdqu32 TMP2, E + vmovdqu32 E, [SCRATCH + 64*4] + vpaddd E{k1}, E, TMP2 + vmovdqu32 TMP2, F + vmovdqu32 F, [SCRATCH + 64*5] + vpaddd F{k1}, F, TMP2 + vmovdqu32 TMP2, G + vmovdqu32 G, [SCRATCH + 64*6] + vpaddd G{k1}, G, TMP2 + vmovdqu32 TMP2, H + vmovdqu32 H, [SCRATCH + 64*7] + vpaddd H{k1}, H, TMP2 + + // Write out digest + vmovdqu32 [STATE + 0*SHA256_DIGEST_ROW_SIZE], A + vmovdqu32 [STATE + 1*SHA256_DIGEST_ROW_SIZE], B + vmovdqu32 [STATE + 2*SHA256_DIGEST_ROW_SIZE], C + vmovdqu32 [STATE + 3*SHA256_DIGEST_ROW_SIZE], D + vmovdqu32 [STATE + 4*SHA256_DIGEST_ROW_SIZE], E + vmovdqu32 [STATE + 5*SHA256_DIGEST_ROW_SIZE], F + vmovdqu32 [STATE + 6*SHA256_DIGEST_ROW_SIZE], G + vmovdqu32 [STATE + 7*SHA256_DIGEST_ROW_SIZE], H + + VZEROUPPER + RET + +// +// Tables +// + +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x000(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x008(SB)/8, $0x0c0d0e0f08090a0b +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x010(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x018(SB)/8, $0x0c0d0e0f08090a0b +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x020(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x028(SB)/8, $0x0c0d0e0f08090a0b +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x030(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x038(SB)/8, $0x0c0d0e0f08090a0b +GLOBL PSHUFFLE_BYTE_FLIP_MASK<>(SB), 8, $64 + +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x000(SB)/8, $0x0000000000000000 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x008(SB)/8, $0x0000000000000001 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x010(SB)/8, $0x0000000000000008 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x018(SB)/8, $0x0000000000000009 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x020(SB)/8, $0x0000000000000004 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x028(SB)/8, $0x0000000000000005 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x030(SB)/8, $0x000000000000000C +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x038(SB)/8, $0x000000000000000D +GLOBL PSHUFFLE_TRANSPOSE16_MASK1<>(SB), 8, $64 + +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x000(SB)/8, $0x0000000000000002 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x008(SB)/8, $0x0000000000000003 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x010(SB)/8, $0x000000000000000A +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x018(SB)/8, $0x000000000000000B +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x020(SB)/8, $0x0000000000000006 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x028(SB)/8, $0x0000000000000007 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x030(SB)/8, $0x000000000000000E +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x038(SB)/8, $0x000000000000000F +GLOBL PSHUFFLE_TRANSPOSE16_MASK2<>(SB), 8, $64 diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.go b/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.go new file mode 100644 index 00000000..e6bd455d --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.go @@ -0,0 +1,500 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2017 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +import ( + "encoding/binary" + "errors" + "hash" + "sort" + "sync/atomic" + "time" +) + +//go:noescape +func sha256X16Avx512(digests *[512]byte, scratch *[512]byte, table *[512]uint64, mask []uint64, inputs [16][]byte) + +// Avx512ServerUID - Do not start at 0 but next multiple of 16 so as to be able to +// differentiate with default initialiation value of 0 +const Avx512ServerUID = 16 + +var uidCounter uint64 + +// NewAvx512 - initialize sha256 Avx512 implementation. +func NewAvx512(a512srv *Avx512Server) hash.Hash { + uid := atomic.AddUint64(&uidCounter, 1) + return &Avx512Digest{uid: uid, a512srv: a512srv} +} + +// Avx512Digest - Type for computing SHA256 using Avx512 +type Avx512Digest struct { + uid uint64 + a512srv *Avx512Server + x [chunk]byte + nx int + len uint64 + final bool + result [Size]byte +} + +// Size - Return size of checksum +func (d *Avx512Digest) Size() int { return Size } + +// BlockSize - Return blocksize of checksum +func (d Avx512Digest) BlockSize() int { return BlockSize } + +// Reset - reset sha digest to its initial values +func (d *Avx512Digest) Reset() { + d.a512srv.blocksCh <- blockInput{uid: d.uid, reset: true} + d.nx = 0 + d.len = 0 + d.final = false +} + +// Write to digest +func (d *Avx512Digest) Write(p []byte) (nn int, err error) { + + if d.final { + return 0, errors.New("Avx512Digest already finalized. Reset first before writing again") + } + + nn = len(p) + d.len += uint64(nn) + if d.nx > 0 { + n := copy(d.x[d.nx:], p) + d.nx += n + if d.nx == chunk { + d.a512srv.blocksCh <- blockInput{uid: d.uid, msg: d.x[:]} + d.nx = 0 + } + p = p[n:] + } + if len(p) >= chunk { + n := len(p) &^ (chunk - 1) + d.a512srv.blocksCh <- blockInput{uid: d.uid, msg: p[:n]} + p = p[n:] + } + if len(p) > 0 { + d.nx = copy(d.x[:], p) + } + return +} + +// Sum - Return sha256 sum in bytes +func (d *Avx512Digest) Sum(in []byte) (result []byte) { + + if d.final { + return append(in, d.result[:]...) + } + + trail := make([]byte, 0, 128) + + len := d.len + // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. + var tmp [64]byte + tmp[0] = 0x80 + if len%64 < 56 { + trail = append(d.x[:d.nx], tmp[0:56-len%64]...) + } else { + trail = append(d.x[:d.nx], tmp[0:64+56-len%64]...) + } + d.nx = 0 + + // Length in bits. + len <<= 3 + for i := uint(0); i < 8; i++ { + tmp[i] = byte(len >> (56 - 8*i)) + } + trail = append(trail, tmp[0:8]...) + + sumCh := make(chan [Size]byte) + d.a512srv.blocksCh <- blockInput{uid: d.uid, msg: trail, final: true, sumCh: sumCh} + d.result = <-sumCh + d.final = true + return append(in, d.result[:]...) +} + +var table = [512]uint64{ + 0x428a2f98428a2f98, 0x428a2f98428a2f98, 0x428a2f98428a2f98, 0x428a2f98428a2f98, + 0x428a2f98428a2f98, 0x428a2f98428a2f98, 0x428a2f98428a2f98, 0x428a2f98428a2f98, + 0x7137449171374491, 0x7137449171374491, 0x7137449171374491, 0x7137449171374491, + 0x7137449171374491, 0x7137449171374491, 0x7137449171374491, 0x7137449171374491, + 0xb5c0fbcfb5c0fbcf, 0xb5c0fbcfb5c0fbcf, 0xb5c0fbcfb5c0fbcf, 0xb5c0fbcfb5c0fbcf, + 0xb5c0fbcfb5c0fbcf, 0xb5c0fbcfb5c0fbcf, 0xb5c0fbcfb5c0fbcf, 0xb5c0fbcfb5c0fbcf, + 0xe9b5dba5e9b5dba5, 0xe9b5dba5e9b5dba5, 0xe9b5dba5e9b5dba5, 0xe9b5dba5e9b5dba5, + 0xe9b5dba5e9b5dba5, 0xe9b5dba5e9b5dba5, 0xe9b5dba5e9b5dba5, 0xe9b5dba5e9b5dba5, + 0x3956c25b3956c25b, 0x3956c25b3956c25b, 0x3956c25b3956c25b, 0x3956c25b3956c25b, + 0x3956c25b3956c25b, 0x3956c25b3956c25b, 0x3956c25b3956c25b, 0x3956c25b3956c25b, + 0x59f111f159f111f1, 0x59f111f159f111f1, 0x59f111f159f111f1, 0x59f111f159f111f1, + 0x59f111f159f111f1, 0x59f111f159f111f1, 0x59f111f159f111f1, 0x59f111f159f111f1, + 0x923f82a4923f82a4, 0x923f82a4923f82a4, 0x923f82a4923f82a4, 0x923f82a4923f82a4, + 0x923f82a4923f82a4, 0x923f82a4923f82a4, 0x923f82a4923f82a4, 0x923f82a4923f82a4, + 0xab1c5ed5ab1c5ed5, 0xab1c5ed5ab1c5ed5, 0xab1c5ed5ab1c5ed5, 0xab1c5ed5ab1c5ed5, + 0xab1c5ed5ab1c5ed5, 0xab1c5ed5ab1c5ed5, 0xab1c5ed5ab1c5ed5, 0xab1c5ed5ab1c5ed5, + 0xd807aa98d807aa98, 0xd807aa98d807aa98, 0xd807aa98d807aa98, 0xd807aa98d807aa98, + 0xd807aa98d807aa98, 0xd807aa98d807aa98, 0xd807aa98d807aa98, 0xd807aa98d807aa98, + 0x12835b0112835b01, 0x12835b0112835b01, 0x12835b0112835b01, 0x12835b0112835b01, + 0x12835b0112835b01, 0x12835b0112835b01, 0x12835b0112835b01, 0x12835b0112835b01, + 0x243185be243185be, 0x243185be243185be, 0x243185be243185be, 0x243185be243185be, + 0x243185be243185be, 0x243185be243185be, 0x243185be243185be, 0x243185be243185be, + 0x550c7dc3550c7dc3, 0x550c7dc3550c7dc3, 0x550c7dc3550c7dc3, 0x550c7dc3550c7dc3, + 0x550c7dc3550c7dc3, 0x550c7dc3550c7dc3, 0x550c7dc3550c7dc3, 0x550c7dc3550c7dc3, + 0x72be5d7472be5d74, 0x72be5d7472be5d74, 0x72be5d7472be5d74, 0x72be5d7472be5d74, + 0x72be5d7472be5d74, 0x72be5d7472be5d74, 0x72be5d7472be5d74, 0x72be5d7472be5d74, + 0x80deb1fe80deb1fe, 0x80deb1fe80deb1fe, 0x80deb1fe80deb1fe, 0x80deb1fe80deb1fe, + 0x80deb1fe80deb1fe, 0x80deb1fe80deb1fe, 0x80deb1fe80deb1fe, 0x80deb1fe80deb1fe, + 0x9bdc06a79bdc06a7, 0x9bdc06a79bdc06a7, 0x9bdc06a79bdc06a7, 0x9bdc06a79bdc06a7, + 0x9bdc06a79bdc06a7, 0x9bdc06a79bdc06a7, 0x9bdc06a79bdc06a7, 0x9bdc06a79bdc06a7, + 0xc19bf174c19bf174, 0xc19bf174c19bf174, 0xc19bf174c19bf174, 0xc19bf174c19bf174, + 0xc19bf174c19bf174, 0xc19bf174c19bf174, 0xc19bf174c19bf174, 0xc19bf174c19bf174, + 0xe49b69c1e49b69c1, 0xe49b69c1e49b69c1, 0xe49b69c1e49b69c1, 0xe49b69c1e49b69c1, + 0xe49b69c1e49b69c1, 0xe49b69c1e49b69c1, 0xe49b69c1e49b69c1, 0xe49b69c1e49b69c1, + 0xefbe4786efbe4786, 0xefbe4786efbe4786, 0xefbe4786efbe4786, 0xefbe4786efbe4786, + 0xefbe4786efbe4786, 0xefbe4786efbe4786, 0xefbe4786efbe4786, 0xefbe4786efbe4786, + 0x0fc19dc60fc19dc6, 0x0fc19dc60fc19dc6, 0x0fc19dc60fc19dc6, 0x0fc19dc60fc19dc6, + 0x0fc19dc60fc19dc6, 0x0fc19dc60fc19dc6, 0x0fc19dc60fc19dc6, 0x0fc19dc60fc19dc6, + 0x240ca1cc240ca1cc, 0x240ca1cc240ca1cc, 0x240ca1cc240ca1cc, 0x240ca1cc240ca1cc, + 0x240ca1cc240ca1cc, 0x240ca1cc240ca1cc, 0x240ca1cc240ca1cc, 0x240ca1cc240ca1cc, + 0x2de92c6f2de92c6f, 0x2de92c6f2de92c6f, 0x2de92c6f2de92c6f, 0x2de92c6f2de92c6f, + 0x2de92c6f2de92c6f, 0x2de92c6f2de92c6f, 0x2de92c6f2de92c6f, 0x2de92c6f2de92c6f, + 0x4a7484aa4a7484aa, 0x4a7484aa4a7484aa, 0x4a7484aa4a7484aa, 0x4a7484aa4a7484aa, + 0x4a7484aa4a7484aa, 0x4a7484aa4a7484aa, 0x4a7484aa4a7484aa, 0x4a7484aa4a7484aa, + 0x5cb0a9dc5cb0a9dc, 0x5cb0a9dc5cb0a9dc, 0x5cb0a9dc5cb0a9dc, 0x5cb0a9dc5cb0a9dc, + 0x5cb0a9dc5cb0a9dc, 0x5cb0a9dc5cb0a9dc, 0x5cb0a9dc5cb0a9dc, 0x5cb0a9dc5cb0a9dc, + 0x76f988da76f988da, 0x76f988da76f988da, 0x76f988da76f988da, 0x76f988da76f988da, + 0x76f988da76f988da, 0x76f988da76f988da, 0x76f988da76f988da, 0x76f988da76f988da, + 0x983e5152983e5152, 0x983e5152983e5152, 0x983e5152983e5152, 0x983e5152983e5152, + 0x983e5152983e5152, 0x983e5152983e5152, 0x983e5152983e5152, 0x983e5152983e5152, + 0xa831c66da831c66d, 0xa831c66da831c66d, 0xa831c66da831c66d, 0xa831c66da831c66d, + 0xa831c66da831c66d, 0xa831c66da831c66d, 0xa831c66da831c66d, 0xa831c66da831c66d, + 0xb00327c8b00327c8, 0xb00327c8b00327c8, 0xb00327c8b00327c8, 0xb00327c8b00327c8, + 0xb00327c8b00327c8, 0xb00327c8b00327c8, 0xb00327c8b00327c8, 0xb00327c8b00327c8, + 0xbf597fc7bf597fc7, 0xbf597fc7bf597fc7, 0xbf597fc7bf597fc7, 0xbf597fc7bf597fc7, + 0xbf597fc7bf597fc7, 0xbf597fc7bf597fc7, 0xbf597fc7bf597fc7, 0xbf597fc7bf597fc7, + 0xc6e00bf3c6e00bf3, 0xc6e00bf3c6e00bf3, 0xc6e00bf3c6e00bf3, 0xc6e00bf3c6e00bf3, + 0xc6e00bf3c6e00bf3, 0xc6e00bf3c6e00bf3, 0xc6e00bf3c6e00bf3, 0xc6e00bf3c6e00bf3, + 0xd5a79147d5a79147, 0xd5a79147d5a79147, 0xd5a79147d5a79147, 0xd5a79147d5a79147, + 0xd5a79147d5a79147, 0xd5a79147d5a79147, 0xd5a79147d5a79147, 0xd5a79147d5a79147, + 0x06ca635106ca6351, 0x06ca635106ca6351, 0x06ca635106ca6351, 0x06ca635106ca6351, + 0x06ca635106ca6351, 0x06ca635106ca6351, 0x06ca635106ca6351, 0x06ca635106ca6351, + 0x1429296714292967, 0x1429296714292967, 0x1429296714292967, 0x1429296714292967, + 0x1429296714292967, 0x1429296714292967, 0x1429296714292967, 0x1429296714292967, + 0x27b70a8527b70a85, 0x27b70a8527b70a85, 0x27b70a8527b70a85, 0x27b70a8527b70a85, + 0x27b70a8527b70a85, 0x27b70a8527b70a85, 0x27b70a8527b70a85, 0x27b70a8527b70a85, + 0x2e1b21382e1b2138, 0x2e1b21382e1b2138, 0x2e1b21382e1b2138, 0x2e1b21382e1b2138, + 0x2e1b21382e1b2138, 0x2e1b21382e1b2138, 0x2e1b21382e1b2138, 0x2e1b21382e1b2138, + 0x4d2c6dfc4d2c6dfc, 0x4d2c6dfc4d2c6dfc, 0x4d2c6dfc4d2c6dfc, 0x4d2c6dfc4d2c6dfc, + 0x4d2c6dfc4d2c6dfc, 0x4d2c6dfc4d2c6dfc, 0x4d2c6dfc4d2c6dfc, 0x4d2c6dfc4d2c6dfc, + 0x53380d1353380d13, 0x53380d1353380d13, 0x53380d1353380d13, 0x53380d1353380d13, + 0x53380d1353380d13, 0x53380d1353380d13, 0x53380d1353380d13, 0x53380d1353380d13, + 0x650a7354650a7354, 0x650a7354650a7354, 0x650a7354650a7354, 0x650a7354650a7354, + 0x650a7354650a7354, 0x650a7354650a7354, 0x650a7354650a7354, 0x650a7354650a7354, + 0x766a0abb766a0abb, 0x766a0abb766a0abb, 0x766a0abb766a0abb, 0x766a0abb766a0abb, + 0x766a0abb766a0abb, 0x766a0abb766a0abb, 0x766a0abb766a0abb, 0x766a0abb766a0abb, + 0x81c2c92e81c2c92e, 0x81c2c92e81c2c92e, 0x81c2c92e81c2c92e, 0x81c2c92e81c2c92e, + 0x81c2c92e81c2c92e, 0x81c2c92e81c2c92e, 0x81c2c92e81c2c92e, 0x81c2c92e81c2c92e, + 0x92722c8592722c85, 0x92722c8592722c85, 0x92722c8592722c85, 0x92722c8592722c85, + 0x92722c8592722c85, 0x92722c8592722c85, 0x92722c8592722c85, 0x92722c8592722c85, + 0xa2bfe8a1a2bfe8a1, 0xa2bfe8a1a2bfe8a1, 0xa2bfe8a1a2bfe8a1, 0xa2bfe8a1a2bfe8a1, + 0xa2bfe8a1a2bfe8a1, 0xa2bfe8a1a2bfe8a1, 0xa2bfe8a1a2bfe8a1, 0xa2bfe8a1a2bfe8a1, + 0xa81a664ba81a664b, 0xa81a664ba81a664b, 0xa81a664ba81a664b, 0xa81a664ba81a664b, + 0xa81a664ba81a664b, 0xa81a664ba81a664b, 0xa81a664ba81a664b, 0xa81a664ba81a664b, + 0xc24b8b70c24b8b70, 0xc24b8b70c24b8b70, 0xc24b8b70c24b8b70, 0xc24b8b70c24b8b70, + 0xc24b8b70c24b8b70, 0xc24b8b70c24b8b70, 0xc24b8b70c24b8b70, 0xc24b8b70c24b8b70, + 0xc76c51a3c76c51a3, 0xc76c51a3c76c51a3, 0xc76c51a3c76c51a3, 0xc76c51a3c76c51a3, + 0xc76c51a3c76c51a3, 0xc76c51a3c76c51a3, 0xc76c51a3c76c51a3, 0xc76c51a3c76c51a3, + 0xd192e819d192e819, 0xd192e819d192e819, 0xd192e819d192e819, 0xd192e819d192e819, + 0xd192e819d192e819, 0xd192e819d192e819, 0xd192e819d192e819, 0xd192e819d192e819, + 0xd6990624d6990624, 0xd6990624d6990624, 0xd6990624d6990624, 0xd6990624d6990624, + 0xd6990624d6990624, 0xd6990624d6990624, 0xd6990624d6990624, 0xd6990624d6990624, + 0xf40e3585f40e3585, 0xf40e3585f40e3585, 0xf40e3585f40e3585, 0xf40e3585f40e3585, + 0xf40e3585f40e3585, 0xf40e3585f40e3585, 0xf40e3585f40e3585, 0xf40e3585f40e3585, + 0x106aa070106aa070, 0x106aa070106aa070, 0x106aa070106aa070, 0x106aa070106aa070, + 0x106aa070106aa070, 0x106aa070106aa070, 0x106aa070106aa070, 0x106aa070106aa070, + 0x19a4c11619a4c116, 0x19a4c11619a4c116, 0x19a4c11619a4c116, 0x19a4c11619a4c116, + 0x19a4c11619a4c116, 0x19a4c11619a4c116, 0x19a4c11619a4c116, 0x19a4c11619a4c116, + 0x1e376c081e376c08, 0x1e376c081e376c08, 0x1e376c081e376c08, 0x1e376c081e376c08, + 0x1e376c081e376c08, 0x1e376c081e376c08, 0x1e376c081e376c08, 0x1e376c081e376c08, + 0x2748774c2748774c, 0x2748774c2748774c, 0x2748774c2748774c, 0x2748774c2748774c, + 0x2748774c2748774c, 0x2748774c2748774c, 0x2748774c2748774c, 0x2748774c2748774c, + 0x34b0bcb534b0bcb5, 0x34b0bcb534b0bcb5, 0x34b0bcb534b0bcb5, 0x34b0bcb534b0bcb5, + 0x34b0bcb534b0bcb5, 0x34b0bcb534b0bcb5, 0x34b0bcb534b0bcb5, 0x34b0bcb534b0bcb5, + 0x391c0cb3391c0cb3, 0x391c0cb3391c0cb3, 0x391c0cb3391c0cb3, 0x391c0cb3391c0cb3, + 0x391c0cb3391c0cb3, 0x391c0cb3391c0cb3, 0x391c0cb3391c0cb3, 0x391c0cb3391c0cb3, + 0x4ed8aa4a4ed8aa4a, 0x4ed8aa4a4ed8aa4a, 0x4ed8aa4a4ed8aa4a, 0x4ed8aa4a4ed8aa4a, + 0x4ed8aa4a4ed8aa4a, 0x4ed8aa4a4ed8aa4a, 0x4ed8aa4a4ed8aa4a, 0x4ed8aa4a4ed8aa4a, + 0x5b9cca4f5b9cca4f, 0x5b9cca4f5b9cca4f, 0x5b9cca4f5b9cca4f, 0x5b9cca4f5b9cca4f, + 0x5b9cca4f5b9cca4f, 0x5b9cca4f5b9cca4f, 0x5b9cca4f5b9cca4f, 0x5b9cca4f5b9cca4f, + 0x682e6ff3682e6ff3, 0x682e6ff3682e6ff3, 0x682e6ff3682e6ff3, 0x682e6ff3682e6ff3, + 0x682e6ff3682e6ff3, 0x682e6ff3682e6ff3, 0x682e6ff3682e6ff3, 0x682e6ff3682e6ff3, + 0x748f82ee748f82ee, 0x748f82ee748f82ee, 0x748f82ee748f82ee, 0x748f82ee748f82ee, + 0x748f82ee748f82ee, 0x748f82ee748f82ee, 0x748f82ee748f82ee, 0x748f82ee748f82ee, + 0x78a5636f78a5636f, 0x78a5636f78a5636f, 0x78a5636f78a5636f, 0x78a5636f78a5636f, + 0x78a5636f78a5636f, 0x78a5636f78a5636f, 0x78a5636f78a5636f, 0x78a5636f78a5636f, + 0x84c8781484c87814, 0x84c8781484c87814, 0x84c8781484c87814, 0x84c8781484c87814, + 0x84c8781484c87814, 0x84c8781484c87814, 0x84c8781484c87814, 0x84c8781484c87814, + 0x8cc702088cc70208, 0x8cc702088cc70208, 0x8cc702088cc70208, 0x8cc702088cc70208, + 0x8cc702088cc70208, 0x8cc702088cc70208, 0x8cc702088cc70208, 0x8cc702088cc70208, + 0x90befffa90befffa, 0x90befffa90befffa, 0x90befffa90befffa, 0x90befffa90befffa, + 0x90befffa90befffa, 0x90befffa90befffa, 0x90befffa90befffa, 0x90befffa90befffa, + 0xa4506ceba4506ceb, 0xa4506ceba4506ceb, 0xa4506ceba4506ceb, 0xa4506ceba4506ceb, + 0xa4506ceba4506ceb, 0xa4506ceba4506ceb, 0xa4506ceba4506ceb, 0xa4506ceba4506ceb, + 0xbef9a3f7bef9a3f7, 0xbef9a3f7bef9a3f7, 0xbef9a3f7bef9a3f7, 0xbef9a3f7bef9a3f7, + 0xbef9a3f7bef9a3f7, 0xbef9a3f7bef9a3f7, 0xbef9a3f7bef9a3f7, 0xbef9a3f7bef9a3f7, + 0xc67178f2c67178f2, 0xc67178f2c67178f2, 0xc67178f2c67178f2, 0xc67178f2c67178f2, + 0xc67178f2c67178f2, 0xc67178f2c67178f2, 0xc67178f2c67178f2, 0xc67178f2c67178f2} + +// Interface function to assembly ode +func blockAvx512(digests *[512]byte, input [16][]byte, mask []uint64) [16][Size]byte { + + scratch := [512]byte{} + sha256X16Avx512(digests, &scratch, &table, mask, input) + + output := [16][Size]byte{} + for i := 0; i < 16; i++ { + output[i] = getDigest(i, digests[:]) + } + + return output +} + +func getDigest(index int, state []byte) (sum [Size]byte) { + for j := 0; j < 16; j += 2 { + for i := index*4 + j*Size; i < index*4+(j+1)*Size; i += Size { + binary.BigEndian.PutUint32(sum[j*2:], binary.LittleEndian.Uint32(state[i:i+4])) + } + } + return +} + +// Message to send across input channel +type blockInput struct { + uid uint64 + msg []byte + reset bool + final bool + sumCh chan [Size]byte +} + +// Avx512Server - Type to implement 16x parallel handling of SHA256 invocations +type Avx512Server struct { + blocksCh chan blockInput // Input channel + totalIn int // Total number of inputs waiting to be processed + lanes [16]Avx512LaneInfo // Array with info per lane (out of 16) + digests map[uint64][Size]byte // Map of uids to (interim) digest results +} + +// Avx512LaneInfo - Info for each lane +type Avx512LaneInfo struct { + uid uint64 // unique identification for this SHA processing + block []byte // input block to be processed + outputCh chan [Size]byte // channel for output result +} + +// NewAvx512Server - Create new object for parallel processing handling +func NewAvx512Server() *Avx512Server { + a512srv := &Avx512Server{} + a512srv.digests = make(map[uint64][Size]byte) + a512srv.blocksCh = make(chan blockInput) + + // Start a single thread for reading from the input channel + go a512srv.Process() + return a512srv +} + +// Process - Sole handler for reading from the input channel +func (a512srv *Avx512Server) Process() { + for { + select { + case block := <-a512srv.blocksCh: + if block.reset { + a512srv.reset(block.uid) + continue + } + index := block.uid & 0xf + // fmt.Println("Adding message:", block.uid, index) + + if a512srv.lanes[index].block != nil { // If slot is already filled, process all inputs + //fmt.Println("Invoking Blocks()") + a512srv.blocks() + } + a512srv.totalIn++ + a512srv.lanes[index] = Avx512LaneInfo{uid: block.uid, block: block.msg} + if block.final { + a512srv.lanes[index].outputCh = block.sumCh + } + if a512srv.totalIn == len(a512srv.lanes) { + // fmt.Println("Invoking Blocks() while FULL: ") + a512srv.blocks() + } + + // TODO: test with larger timeout + case <-time.After(1 * time.Microsecond): + for _, lane := range a512srv.lanes { + if lane.block != nil { // check if there is any input to process + // fmt.Println("Invoking Blocks() on TIMEOUT: ") + a512srv.blocks() + break // we are done + } + } + } + } +} + +// Do a reset for this calculation +func (a512srv *Avx512Server) reset(uid uint64) { + + // Check if there is a message still waiting to be processed (and remove if so) + for i, lane := range a512srv.lanes { + if lane.uid == uid { + if lane.block != nil { + a512srv.lanes[i] = Avx512LaneInfo{} // clear message + a512srv.totalIn-- + } + } + } + + // Delete entry from hash map + delete(a512srv.digests, uid) +} + +// Invoke assembly and send results back +func (a512srv *Avx512Server) blocks() (err error) { + + inputs := [16][]byte{} + for i := range inputs { + inputs[i] = a512srv.lanes[i].block + } + + mask := expandMask(genMask(inputs)) + outputs := blockAvx512(a512srv.getDigests(), inputs, mask) + + a512srv.totalIn = 0 + for i := 0; i < len(outputs); i++ { + uid, outputCh := a512srv.lanes[i].uid, a512srv.lanes[i].outputCh + a512srv.digests[uid] = outputs[i] + a512srv.lanes[i] = Avx512LaneInfo{} + + if outputCh != nil { + // Send back result + outputCh <- outputs[i] + delete(a512srv.digests, uid) // Delete entry from hashmap + } + } + return +} + +func (a512srv *Avx512Server) Write(uid uint64, p []byte) (nn int, err error) { + a512srv.blocksCh <- blockInput{uid: uid, msg: p} + return len(p), nil +} + +// Sum - return sha256 sum in bytes for a given sum id. +func (a512srv *Avx512Server) Sum(uid uint64, p []byte) [32]byte { + sumCh := make(chan [32]byte) + a512srv.blocksCh <- blockInput{uid: uid, msg: p, final: true, sumCh: sumCh} + return <-sumCh +} + +func (a512srv *Avx512Server) getDigests() *[512]byte { + digests := [512]byte{} + for i, lane := range a512srv.lanes { + a, ok := a512srv.digests[lane.uid] + if ok { + binary.BigEndian.PutUint32(digests[(i+0*16)*4:], binary.LittleEndian.Uint32(a[0:4])) + binary.BigEndian.PutUint32(digests[(i+1*16)*4:], binary.LittleEndian.Uint32(a[4:8])) + binary.BigEndian.PutUint32(digests[(i+2*16)*4:], binary.LittleEndian.Uint32(a[8:12])) + binary.BigEndian.PutUint32(digests[(i+3*16)*4:], binary.LittleEndian.Uint32(a[12:16])) + binary.BigEndian.PutUint32(digests[(i+4*16)*4:], binary.LittleEndian.Uint32(a[16:20])) + binary.BigEndian.PutUint32(digests[(i+5*16)*4:], binary.LittleEndian.Uint32(a[20:24])) + binary.BigEndian.PutUint32(digests[(i+6*16)*4:], binary.LittleEndian.Uint32(a[24:28])) + binary.BigEndian.PutUint32(digests[(i+7*16)*4:], binary.LittleEndian.Uint32(a[28:32])) + } else { + binary.LittleEndian.PutUint32(digests[(i+0*16)*4:], init0) + binary.LittleEndian.PutUint32(digests[(i+1*16)*4:], init1) + binary.LittleEndian.PutUint32(digests[(i+2*16)*4:], init2) + binary.LittleEndian.PutUint32(digests[(i+3*16)*4:], init3) + binary.LittleEndian.PutUint32(digests[(i+4*16)*4:], init4) + binary.LittleEndian.PutUint32(digests[(i+5*16)*4:], init5) + binary.LittleEndian.PutUint32(digests[(i+6*16)*4:], init6) + binary.LittleEndian.PutUint32(digests[(i+7*16)*4:], init7) + } + } + return &digests +} + +// Helper struct for sorting blocks based on length +type lane struct { + len uint + pos uint +} + +type lanes []lane + +func (lns lanes) Len() int { return len(lns) } +func (lns lanes) Swap(i, j int) { lns[i], lns[j] = lns[j], lns[i] } +func (lns lanes) Less(i, j int) bool { return lns[i].len < lns[j].len } + +// Helper struct for +type maskRounds struct { + mask uint64 + rounds uint64 +} + +func genMask(input [16][]byte) [16]maskRounds { + + // Sort on blocks length small to large + var sorted [16]lane + for c, inpt := range input { + sorted[c] = lane{uint(len(inpt)), uint(c)} + } + sort.Sort(lanes(sorted[:])) + + // Create mask array including 'rounds' between masks + m, round, index := uint64(0xffff), uint64(0), 0 + var mr [16]maskRounds + for _, s := range sorted { + if s.len > 0 { + if uint64(s.len)>>6 > round { + mr[index] = maskRounds{m, (uint64(s.len) >> 6) - round} + index++ + } + round = uint64(s.len) >> 6 + } + m = m & ^(1 << uint(s.pos)) + } + + return mr +} + +// TODO: remove function +func expandMask(mr [16]maskRounds) []uint64 { + size := uint64(0) + for _, r := range mr { + size += r.rounds + } + result, index := make([]uint64, size), 0 + for _, r := range mr { + for j := uint64(0); j < r.rounds; j++ { + result[index] = r.mask + index++ + } + } + return result +} diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.s b/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.s new file mode 100644 index 00000000..275bcacb --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx512_amd64.s @@ -0,0 +1,267 @@ +//+build !noasm,!appengine + +TEXT ·sha256X16Avx512(SB), 7, $0 + MOVQ digests+0(FP), DI + MOVQ scratch+8(FP), R12 + MOVQ mask_len+32(FP), SI + MOVQ mask_base+24(FP), R13 + MOVQ (R13), R14 + LONG $0x92fbc1c4; BYTE $0xce + LEAQ inputs+48(FP), AX + QUAD $0xf162076f487ef162; QUAD $0x7ef162014f6f487e; QUAD $0x487ef16202576f48; QUAD $0x6f487ef162035f6f; QUAD $0x6f6f487ef1620467; QUAD $0x06776f487ef16205; LONG $0x487ef162; WORD $0x7f6f; BYTE $0x07 + MOVQ table+16(FP), DX + WORD $0x3148; BYTE $0xc9 + TESTQ $(1<<0), R14 + JE skipInput0 + MOVQ 0*24(AX), R9 + LONG $0x487cc162; WORD $0x0410; BYTE $0x09 + +skipInput0: + TESTQ $(1<<1), R14 + JE skipInput1 + MOVQ 1*24(AX), R9 + LONG $0x487cc162; WORD $0x0c10; BYTE $0x09 + +skipInput1: + TESTQ $(1<<2), R14 + JE skipInput2 + MOVQ 2*24(AX), R9 + LONG $0x487cc162; WORD $0x1410; BYTE $0x09 + +skipInput2: + TESTQ $(1<<3), R14 + JE skipInput3 + MOVQ 3*24(AX), R9 + LONG $0x487cc162; WORD $0x1c10; BYTE $0x09 + +skipInput3: + TESTQ $(1<<4), R14 + JE skipInput4 + MOVQ 4*24(AX), R9 + LONG $0x487cc162; WORD $0x2410; BYTE $0x09 + +skipInput4: + TESTQ $(1<<5), R14 + JE skipInput5 + MOVQ 5*24(AX), R9 + LONG $0x487cc162; WORD $0x2c10; BYTE $0x09 + +skipInput5: + TESTQ $(1<<6), R14 + JE skipInput6 + MOVQ 6*24(AX), R9 + LONG $0x487cc162; WORD $0x3410; BYTE $0x09 + +skipInput6: + TESTQ $(1<<7), R14 + JE skipInput7 + MOVQ 7*24(AX), R9 + LONG $0x487cc162; WORD $0x3c10; BYTE $0x09 + +skipInput7: + TESTQ $(1<<8), R14 + JE skipInput8 + MOVQ 8*24(AX), R9 + LONG $0x487c4162; WORD $0x0410; BYTE $0x09 + +skipInput8: + TESTQ $(1<<9), R14 + JE skipInput9 + MOVQ 9*24(AX), R9 + LONG $0x487c4162; WORD $0x0c10; BYTE $0x09 + +skipInput9: + TESTQ $(1<<10), R14 + JE skipInput10 + MOVQ 10*24(AX), R9 + LONG $0x487c4162; WORD $0x1410; BYTE $0x09 + +skipInput10: + TESTQ $(1<<11), R14 + JE skipInput11 + MOVQ 11*24(AX), R9 + LONG $0x487c4162; WORD $0x1c10; BYTE $0x09 + +skipInput11: + TESTQ $(1<<12), R14 + JE skipInput12 + MOVQ 12*24(AX), R9 + LONG $0x487c4162; WORD $0x2410; BYTE $0x09 + +skipInput12: + TESTQ $(1<<13), R14 + JE skipInput13 + MOVQ 13*24(AX), R9 + LONG $0x487c4162; WORD $0x2c10; BYTE $0x09 + +skipInput13: + TESTQ $(1<<14), R14 + JE skipInput14 + MOVQ 14*24(AX), R9 + LONG $0x487c4162; WORD $0x3410; BYTE $0x09 + +skipInput14: + TESTQ $(1<<15), R14 + JE skipInput15 + MOVQ 15*24(AX), R9 + LONG $0x487c4162; WORD $0x3c10; BYTE $0x09 + +skipInput15: +lloop: + LEAQ PSHUFFLE_BYTE_FLIP_MASK<>(SB), DX + LONG $0x487e7162; WORD $0x1a6f + MOVQ table+16(FP), DX + QUAD $0xd162226f487e7162; QUAD $0x7ed16224047f487e; QUAD $0x7ed16201244c7f48; QUAD $0x7ed1620224547f48; QUAD $0x7ed16203245c7f48; QUAD $0x7ed1620424647f48; QUAD $0x7ed16205246c7f48; QUAD $0x7ed1620624747f48; QUAD $0xc1834807247c7f48; QUAD $0x44c9c6407c316240; QUAD $0x62eec1c6407ca162; QUAD $0xa16244d3c6406c31; QUAD $0x34c162eed3c6406c; QUAD $0x407ca162dddac648; QUAD $0xc6407ca16288cac6; QUAD $0xcac648345162ddc2; QUAD $0x44d5c6405ca16288; QUAD $0x62eee5c6405ca162; QUAD $0xa16244d7c6404c31; QUAD $0x6cc162eef7c6404c; QUAD $0x405ca162ddfac640; QUAD $0xc6405ca16288eec6; QUAD $0xd2c6406cc162dde6; QUAD $0x44f1c6403c816288; QUAD $0x62eec1c6403c0162; QUAD $0x016244d3c6402c11; QUAD $0x4c4162eed3c6402c; QUAD $0x403c0162dddac640; QUAD $0xc6403c016288cac6; QUAD $0xf2c6404cc162ddc2; QUAD $0x44d5c6401c016288; QUAD $0x62eee5c6401c0162; QUAD $0x016244d7c6400c11; QUAD $0x2c4162eef7c6400c; QUAD $0x401c0162ddfac640; QUAD $0xc6401c016288eec6; QUAD $0xd2c6402c4162dde6; BYTE $0x88 + LEAQ PSHUFFLE_TRANSPOSE16_MASK1<>(SB), BX + LEAQ PSHUFFLE_TRANSPOSE16_MASK2<>(SB), R8 + QUAD $0x2262336f487e6162; QUAD $0x487e5162f27648b5; QUAD $0xd27648b53262106f; QUAD $0xa262136f487ee162; QUAD $0x487e5162d77640e5; QUAD $0xcf7640e53262086f; QUAD $0xa2621b6f487ee162; QUAD $0x487ec162dd7640f5; QUAD $0xfd7640f5a262386f; QUAD $0xa2620b6f487ee162; QUAD $0x487ec162cc7640fd; QUAD $0xec7640fda262286f; QUAD $0x8262036f487ee162; QUAD $0x487ec162c27640cd; QUAD $0xe27640cd8262206f; QUAD $0x8262336f487ee162; QUAD $0x487e4162f77640a5; QUAD $0xd77640a50262106f; QUAD $0x02621b6f487e6162; QUAD $0x487e4162dd7640b5; QUAD $0xfd7640b50262386f; QUAD $0x02620b6f487e6162; QUAD $0x487e4162cc7640bd; QUAD $0xec7640bd0262286f; QUAD $0x62eec023408d2362; QUAD $0x236244c023408da3; QUAD $0xada362eee42348ad; QUAD $0x40c5036244e42348; QUAD $0x2340c51362eef723; QUAD $0xfd2340d5036244d7; QUAD $0x44fd2340d58362ee; QUAD $0x62eeea2348b50362; QUAD $0x036244ea2348b583; QUAD $0xe51362eed32340e5; QUAD $0x40f5036244cb2340; QUAD $0x2340f58362eed923; QUAD $0xce2340ed236244d9; QUAD $0x44ce2340eda362ee; QUAD $0xc162d16f487ec162; QUAD $0x407dc262f26f487e; QUAD $0xcb004075c262c300; QUAD $0xc262d300406dc262; QUAD $0x405dc262db004065; QUAD $0xeb004055c262e300; QUAD $0xc262f300404dc262; QUAD $0x403d4262fb004045; QUAD $0xcb0040354262c300; QUAD $0x4262d300402d4262; QUAD $0x401d4262db004025; QUAD $0xeb0040154262e300; QUAD $0x4262f300400d4262; QUAD $0x48455162fb004005; QUAD $0xcc6f487e7162c4fe; QUAD $0x6206c472482df162; QUAD $0xf1620bc4724825f1; QUAD $0x55736219c472481d; QUAD $0x483d3162cace2548; QUAD $0xd42548255362c0fe; QUAD $0x62c1fe483d516296; QUAD $0x65d162c2fe483d51; QUAD $0x724845f162d8fe48; QUAD $0xc0724825f16202c0; QUAD $0x16c072481df1620d; QUAD $0x7362c86f487e7162; QUAD $0x25d362e8ca254875; QUAD $0x4845d16296fc2548; QUAD $0xf8fe4845d162f9fe; QUAD $0x6201626f487e7162; QUAD $0x916211c672481591; QUAD $0x05916213c672480d; QUAD $0x480d53620ad67248; QUAD $0xfe407dc16296ef25; QUAD $0x62c1fe407d8162c5; QUAD $0xb16207c1724815b1; QUAD $0x05b16212c172480d; QUAD $0x480d536203d17248; QUAD $0xfe407dc16296ef25; QUAD $0x62c4fe484d5162c5; QUAD $0x2df162cb6f487e71; QUAD $0x4825f16206c37248; QUAD $0x72481df1620bc372; QUAD $0xcd25485d736219c3; QUAD $0x62c1fe483d3162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xd0fe486dd162c2fe; QUAD $0x6202c772484df162; QUAD $0xf1620dc7724825f1; QUAD $0x7e716216c772481d; QUAD $0x25487d7362cf6f48; QUAD $0xf4254825d362e8c9; QUAD $0x62f1fe484dd16296; QUAD $0x7e7162f0fe484dd1; QUAD $0x4815916202626f48; QUAD $0x72480d916211c772; QUAD $0xd7724805916213c7; QUAD $0x96ef25480d53620a; QUAD $0x8162cdfe4075c162; QUAD $0x4815b162cafe4075; QUAD $0x72480db16207c272; QUAD $0xd2724805b16212c2; QUAD $0x96ef25480d536203; QUAD $0x5162cdfe4075c162; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x3162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x11c0724815b16203; QUAD $0x6213c072480db162; QUAD $0x53620ad0724805b1; QUAD $0x6dc16296ef25480d; QUAD $0xfe406d8162d5fe40; QUAD $0x07c3724815b162d3; QUAD $0x6212c372480db162; QUAD $0x536203d3724805b1; QUAD $0x6dc16296ef25480d; QUAD $0xfe485d5162d5fe40; QUAD $0x62c96f487e7162c4; QUAD $0xf16206c172482df1; QUAD $0x1df1620bc1724825; QUAD $0x486d736219c17248; QUAD $0xfe483d3162cacb25; QUAD $0x96d42548255362c3; QUAD $0x5162c1fe483d5162; QUAD $0x487dd162c2fe483d; QUAD $0xc572485df162c0fe; QUAD $0x0dc5724825f16202; QUAD $0x6216c572481df162; QUAD $0x4d7362cd6f487e71; QUAD $0x4825d362e8cf2548; QUAD $0xfe485dd16296e425; QUAD $0x62e0fe485dd162e1; QUAD $0xb16204626f487e71; QUAD $0x0db16211c1724815; QUAD $0x4805b16213c17248; QUAD $0x25480d53620ad172; QUAD $0xddfe4065c16296ef; QUAD $0xb162dcfe40658162; QUAD $0x0db16207c4724815; QUAD $0x4805b16212c47248; QUAD $0x25480d536203d472; QUAD $0xddfe4065c16296ef; QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; QUAD $0x724815b16205626f; QUAD $0xc272480db16211c2; QUAD $0x0ad2724805b16213; QUAD $0x6296ef25480d5362; QUAD $0x5d8162e5fe405dc1; QUAD $0x724815b162e5fe40; QUAD $0xc572480db16207c5; QUAD $0x03d5724805b16212; QUAD $0x6296ef25480d5362; QUAD $0x6d5162e5fe405dc1; QUAD $0x6f487e7162c4fe48; QUAD $0x06c772482df162cf; QUAD $0x620bc7724825f162; QUAD $0x736219c772481df1; QUAD $0x3d3162cac925487d; QUAD $0x2548255362c5fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x486df162f0fe484d; QUAD $0x724825f16202c372; QUAD $0xc372481df1620dc3; QUAD $0x62cb6f487e716216; QUAD $0xd362e8cd25485d73; QUAD $0x6dd16296d4254825; QUAD $0xfe486dd162d1fe48; QUAD $0x06626f487e7162d0; QUAD $0x6211c3724815b162; QUAD $0xb16213c372480db1; QUAD $0x0d53620ad3724805; QUAD $0x4055c16296ef2548; QUAD $0xeefe40558162edfe; QUAD $0x6207c6724815b162; QUAD $0xb16212c672480db1; QUAD $0x0d536203d6724805; QUAD $0x4055c16296ef2548; QUAD $0xc4fe48755162edfe; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d3162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x15b16207626f487e; QUAD $0x480db16211c47248; QUAD $0x724805b16213c472; QUAD $0xef25480d53620ad4; QUAD $0x62f5fe404dc16296; QUAD $0x15b162f7fe404d81; QUAD $0x480db16207c77248; QUAD $0x724805b16212c772; QUAD $0xef25480d536203d7; QUAD $0x62f5fe404dc16296; QUAD $0x7e7162c4fe487d51; QUAD $0x72482df162cd6f48; QUAD $0xc5724825f16206c5; QUAD $0x19c572481df1620b; QUAD $0x62cacf25484d7362; QUAD $0x255362c7fe483d31; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162e0fe485dd162; QUAD $0x25f16202c172487d; QUAD $0x481df1620dc17248; QUAD $0x6f487e716216c172; QUAD $0xe8cb25486d7362c9; QUAD $0x6296c4254825d362; QUAD $0x7dd162c1fe487dd1; QUAD $0x6f487e7162c0fe48; QUAD $0xc5724815b1620862; QUAD $0x13c572480db16211; QUAD $0x620ad5724805b162; QUAD $0xc16296ef25480d53; QUAD $0x4045a162fdfe4045; QUAD $0xc07248159162f8fe; QUAD $0x12c072480d916207; QUAD $0x6203d07248059162; QUAD $0xc16296ef25480d53; QUAD $0x48455162fdfe4045; QUAD $0xcc6f487e7162c4fe; QUAD $0x6206c472482df162; QUAD $0xf1620bc4724825f1; QUAD $0x55736219c472481d; QUAD $0x483d1162cace2548; QUAD $0xd42548255362c0fe; QUAD $0x62c1fe483d516296; QUAD $0x65d162c2fe483d51; QUAD $0x724845f162d8fe48; QUAD $0xc0724825f16202c0; QUAD $0x16c072481df1620d; QUAD $0x7362c86f487e7162; QUAD $0x25d362e8ca254875; QUAD $0x4845d16296fc2548; QUAD $0xf8fe4845d162f9fe; QUAD $0x6209626f487e7162; QUAD $0xb16211c6724815b1; QUAD $0x05b16213c672480d; QUAD $0x480d53620ad67248; QUAD $0xfe403d416296ef25; QUAD $0x62c1fe403d2162c5; QUAD $0x916207c172481591; QUAD $0x05916212c172480d; QUAD $0x480d536203d17248; QUAD $0xfe403d416296ef25; QUAD $0x62c4fe484d5162c5; QUAD $0x2df162cb6f487e71; QUAD $0x4825f16206c37248; QUAD $0x72481df1620bc372; QUAD $0xcd25485d736219c3; QUAD $0x62c1fe483d1162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xd0fe486dd162c2fe; QUAD $0x6202c772484df162; QUAD $0xf1620dc7724825f1; QUAD $0x7e716216c772481d; QUAD $0x25487d7362cf6f48; QUAD $0xf4254825d362e8c9; QUAD $0x62f1fe484dd16296; QUAD $0x7e7162f0fe484dd1; QUAD $0x4815b1620a626f48; QUAD $0x72480db16211c772; QUAD $0xd7724805b16213c7; QUAD $0x96ef25480d53620a; QUAD $0x2162cdfe40354162; QUAD $0x48159162cafe4035; QUAD $0x72480d916207c272; QUAD $0xd2724805916212c2; QUAD $0x96ef25480d536203; QUAD $0x5162cdfe40354162; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x1162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x11c072481591620b; QUAD $0x6213c072480d9162; QUAD $0x53620ad072480591; QUAD $0x2d416296ef25480d; QUAD $0xfe402d2162d5fe40; QUAD $0x07c37248159162d3; QUAD $0x6212c372480d9162; QUAD $0x536203d372480591; QUAD $0x2d416296ef25480d; QUAD $0xfe485d5162d5fe40; QUAD $0x62c96f487e7162c4; QUAD $0xf16206c172482df1; QUAD $0x1df1620bc1724825; QUAD $0x486d736219c17248; QUAD $0xfe483d1162cacb25; QUAD $0x96d42548255362c3; QUAD $0x5162c1fe483d5162; QUAD $0x487dd162c2fe483d; QUAD $0xc572485df162c0fe; QUAD $0x0dc5724825f16202; QUAD $0x6216c572481df162; QUAD $0x4d7362cd6f487e71; QUAD $0x4825d362e8cf2548; QUAD $0xfe485dd16296e425; QUAD $0x62e0fe485dd162e1; QUAD $0x91620c626f487e71; QUAD $0x0d916211c1724815; QUAD $0x4805916213c17248; QUAD $0x25480d53620ad172; QUAD $0xddfe4025416296ef; QUAD $0x9162dcfe40252162; QUAD $0x0d916207c4724815; QUAD $0x4805916212c47248; QUAD $0x25480d536203d472; QUAD $0xddfe4025416296ef; QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; QUAD $0x72481591620d626f; QUAD $0xc272480d916211c2; QUAD $0x0ad2724805916213; QUAD $0x6296ef25480d5362; QUAD $0x1d2162e5fe401d41; QUAD $0x7248159162e5fe40; QUAD $0xc572480d916207c5; QUAD $0x03d5724805916212; QUAD $0x6296ef25480d5362; QUAD $0x6d5162e5fe401d41; QUAD $0x6f487e7162c4fe48; QUAD $0x06c772482df162cf; QUAD $0x620bc7724825f162; QUAD $0x736219c772481df1; QUAD $0x3d1162cac925487d; QUAD $0x2548255362c5fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x486df162f0fe484d; QUAD $0x724825f16202c372; QUAD $0xc372481df1620dc3; QUAD $0x62cb6f487e716216; QUAD $0xd362e8cd25485d73; QUAD $0x6dd16296d4254825; QUAD $0xfe486dd162d1fe48; QUAD $0x0e626f487e7162d0; QUAD $0x6211c37248159162; QUAD $0x916213c372480d91; QUAD $0x0d53620ad3724805; QUAD $0x4015416296ef2548; QUAD $0xeefe40152162edfe; QUAD $0x6207c67248159162; QUAD $0x916212c672480d91; QUAD $0x0d536203d6724805; QUAD $0x4015416296ef2548; QUAD $0xc4fe48755162edfe; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d1162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x1591620f626f487e; QUAD $0x480d916211c47248; QUAD $0x724805916213c472; QUAD $0xef25480d53620ad4; QUAD $0x62f5fe400d416296; QUAD $0x159162f7fe400d21; QUAD $0x480d916207c77248; QUAD $0x724805916212c772; QUAD $0xef25480d536203d7; QUAD $0x62f5fe400d416296; QUAD $0x7e7162c4fe487d51; QUAD $0x72482df162cd6f48; QUAD $0xc5724825f16206c5; QUAD $0x19c572481df1620b; QUAD $0x62cacf25484d7362; QUAD $0x255362c7fe483d11; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162e0fe485dd162; QUAD $0x25f16202c172487d; QUAD $0x481df1620dc17248; QUAD $0x6f487e716216c172; QUAD $0xe8cb25486d7362c9; QUAD $0x6296c4254825d362; QUAD $0x7dd162c1fe487dd1; QUAD $0x6f487e7162c0fe48; QUAD $0xc572481591621062; QUAD $0x13c572480d916211; QUAD $0x620ad57248059162; QUAD $0x416296ef25480d53; QUAD $0x40050162fdfe4005; QUAD $0xc0724815b162f8fe; QUAD $0x12c072480db16207; QUAD $0x6203d0724805b162; QUAD $0x416296ef25480d53; QUAD $0x48455162fdfe4005; QUAD $0xcc6f487e7162c4fe; QUAD $0x6206c472482df162; QUAD $0xf1620bc4724825f1; QUAD $0x55736219c472481d; QUAD $0x483d3162cace2548; QUAD $0xd42548255362c0fe; QUAD $0x62c1fe483d516296; QUAD $0x65d162c2fe483d51; QUAD $0x724845f162d8fe48; QUAD $0xc0724825f16202c0; QUAD $0x16c072481df1620d; QUAD $0x7362c86f487e7162; QUAD $0x25d362e8ca254875; QUAD $0x4845d16296fc2548; QUAD $0xf8fe4845d162f9fe; QUAD $0x6211626f487e7162; QUAD $0x916211c672481591; QUAD $0x05916213c672480d; QUAD $0x480d53620ad67248; QUAD $0xfe407dc16296ef25; QUAD $0x62c1fe407d8162c5; QUAD $0xb16207c1724815b1; QUAD $0x05b16212c172480d; QUAD $0x480d536203d17248; QUAD $0xfe407dc16296ef25; QUAD $0x62c4fe484d5162c5; QUAD $0x2df162cb6f487e71; QUAD $0x4825f16206c37248; QUAD $0x72481df1620bc372; QUAD $0xcd25485d736219c3; QUAD $0x62c1fe483d3162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xd0fe486dd162c2fe; QUAD $0x6202c772484df162; QUAD $0xf1620dc7724825f1; QUAD $0x7e716216c772481d; QUAD $0x25487d7362cf6f48; QUAD $0xf4254825d362e8c9; QUAD $0x62f1fe484dd16296; QUAD $0x7e7162f0fe484dd1; QUAD $0x4815916212626f48; QUAD $0x72480d916211c772; QUAD $0xd7724805916213c7; QUAD $0x96ef25480d53620a; QUAD $0x8162cdfe4075c162; QUAD $0x4815b162cafe4075; QUAD $0x72480db16207c272; QUAD $0xd2724805b16212c2; QUAD $0x96ef25480d536203; QUAD $0x5162cdfe4075c162; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x3162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x11c0724815b16213; QUAD $0x6213c072480db162; QUAD $0x53620ad0724805b1; QUAD $0x6dc16296ef25480d; QUAD $0xfe406d8162d5fe40; QUAD $0x07c3724815b162d3; QUAD $0x6212c372480db162; QUAD $0x536203d3724805b1; QUAD $0x6dc16296ef25480d; QUAD $0xfe485d5162d5fe40; QUAD $0x62c96f487e7162c4; QUAD $0xf16206c172482df1; QUAD $0x1df1620bc1724825; QUAD $0x486d736219c17248; QUAD $0xfe483d3162cacb25; QUAD $0x96d42548255362c3; QUAD $0x5162c1fe483d5162; QUAD $0x487dd162c2fe483d; QUAD $0xc572485df162c0fe; QUAD $0x0dc5724825f16202; QUAD $0x6216c572481df162; QUAD $0x4d7362cd6f487e71; QUAD $0x4825d362e8cf2548; QUAD $0xfe485dd16296e425; QUAD $0x62e0fe485dd162e1; QUAD $0xb16214626f487e71; QUAD $0x0db16211c1724815; QUAD $0x4805b16213c17248; QUAD $0x25480d53620ad172; QUAD $0xddfe4065c16296ef; QUAD $0xb162dcfe40658162; QUAD $0x0db16207c4724815; QUAD $0x4805b16212c47248; QUAD $0x25480d536203d472; QUAD $0xddfe4065c16296ef; QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; QUAD $0x724815b16215626f; QUAD $0xc272480db16211c2; QUAD $0x0ad2724805b16213; QUAD $0x6296ef25480d5362; QUAD $0x5d8162e5fe405dc1; QUAD $0x724815b162e5fe40; QUAD $0xc572480db16207c5; QUAD $0x03d5724805b16212; QUAD $0x6296ef25480d5362; QUAD $0x6d5162e5fe405dc1; QUAD $0x6f487e7162c4fe48; QUAD $0x06c772482df162cf; QUAD $0x620bc7724825f162; QUAD $0x736219c772481df1; QUAD $0x3d3162cac925487d; QUAD $0x2548255362c5fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x486df162f0fe484d; QUAD $0x724825f16202c372; QUAD $0xc372481df1620dc3; QUAD $0x62cb6f487e716216; QUAD $0xd362e8cd25485d73; QUAD $0x6dd16296d4254825; QUAD $0xfe486dd162d1fe48; QUAD $0x16626f487e7162d0; QUAD $0x6211c3724815b162; QUAD $0xb16213c372480db1; QUAD $0x0d53620ad3724805; QUAD $0x4055c16296ef2548; QUAD $0xeefe40558162edfe; QUAD $0x6207c6724815b162; QUAD $0xb16212c672480db1; QUAD $0x0d536203d6724805; QUAD $0x4055c16296ef2548; QUAD $0xc4fe48755162edfe; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d3162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x15b16217626f487e; QUAD $0x480db16211c47248; QUAD $0x724805b16213c472; QUAD $0xef25480d53620ad4; QUAD $0x62f5fe404dc16296; QUAD $0x15b162f7fe404d81; QUAD $0x480db16207c77248; QUAD $0x724805b16212c772; QUAD $0xef25480d536203d7; QUAD $0x62f5fe404dc16296; QUAD $0x7e7162c4fe487d51; QUAD $0x72482df162cd6f48; QUAD $0xc5724825f16206c5; QUAD $0x19c572481df1620b; QUAD $0x62cacf25484d7362; QUAD $0x255362c7fe483d31; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162e0fe485dd162; QUAD $0x25f16202c172487d; QUAD $0x481df1620dc17248; QUAD $0x6f487e716216c172; QUAD $0xe8cb25486d7362c9; QUAD $0x6296c4254825d362; QUAD $0x7dd162c1fe487dd1; QUAD $0x6f487e7162c0fe48; QUAD $0xc5724815b1621862; QUAD $0x13c572480db16211; QUAD $0x620ad5724805b162; QUAD $0xc16296ef25480d53; QUAD $0x4045a162fdfe4045; QUAD $0xc07248159162f8fe; QUAD $0x12c072480d916207; QUAD $0x6203d07248059162; QUAD $0xc16296ef25480d53; QUAD $0x48455162fdfe4045; QUAD $0xcc6f487e7162c4fe; QUAD $0x6206c472482df162; QUAD $0xf1620bc4724825f1; QUAD $0x55736219c472481d; QUAD $0x483d1162cace2548; QUAD $0xd42548255362c0fe; QUAD $0x62c1fe483d516296; QUAD $0x65d162c2fe483d51; QUAD $0x724845f162d8fe48; QUAD $0xc0724825f16202c0; QUAD $0x16c072481df1620d; QUAD $0x7362c86f487e7162; QUAD $0x25d362e8ca254875; QUAD $0x4845d16296fc2548; QUAD $0xf8fe4845d162f9fe; QUAD $0x6219626f487e7162; QUAD $0xb16211c6724815b1; QUAD $0x05b16213c672480d; QUAD $0x480d53620ad67248; QUAD $0xfe403d416296ef25; QUAD $0x62c1fe403d2162c5; QUAD $0x916207c172481591; QUAD $0x05916212c172480d; QUAD $0x480d536203d17248; QUAD $0xfe403d416296ef25; QUAD $0x62c4fe484d5162c5; QUAD $0x2df162cb6f487e71; QUAD $0x4825f16206c37248; QUAD $0x72481df1620bc372; QUAD $0xcd25485d736219c3; QUAD $0x62c1fe483d1162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xd0fe486dd162c2fe; QUAD $0x6202c772484df162; QUAD $0xf1620dc7724825f1; QUAD $0x7e716216c772481d; QUAD $0x25487d7362cf6f48; QUAD $0xf4254825d362e8c9; QUAD $0x62f1fe484dd16296; QUAD $0x7e7162f0fe484dd1; QUAD $0x4815b1621a626f48; QUAD $0x72480db16211c772; QUAD $0xd7724805b16213c7; QUAD $0x96ef25480d53620a; QUAD $0x2162cdfe40354162; QUAD $0x48159162cafe4035; QUAD $0x72480d916207c272; QUAD $0xd2724805916212c2; QUAD $0x96ef25480d536203; QUAD $0x5162cdfe40354162; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x1162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x11c072481591621b; QUAD $0x6213c072480d9162; QUAD $0x53620ad072480591; QUAD $0x2d416296ef25480d; QUAD $0xfe402d2162d5fe40; QUAD $0x07c37248159162d3; QUAD $0x6212c372480d9162; QUAD $0x536203d372480591; QUAD $0x2d416296ef25480d; QUAD $0xfe485d5162d5fe40; QUAD $0x62c96f487e7162c4; QUAD $0xf16206c172482df1; QUAD $0x1df1620bc1724825; QUAD $0x486d736219c17248; QUAD $0xfe483d1162cacb25; QUAD $0x96d42548255362c3; QUAD $0x5162c1fe483d5162; QUAD $0x487dd162c2fe483d; QUAD $0xc572485df162c0fe; QUAD $0x0dc5724825f16202; QUAD $0x6216c572481df162; QUAD $0x4d7362cd6f487e71; QUAD $0x4825d362e8cf2548; QUAD $0xfe485dd16296e425; QUAD $0x62e0fe485dd162e1; QUAD $0x91621c626f487e71; QUAD $0x0d916211c1724815; QUAD $0x4805916213c17248; QUAD $0x25480d53620ad172; QUAD $0xddfe4025416296ef; QUAD $0x9162dcfe40252162; QUAD $0x0d916207c4724815; QUAD $0x4805916212c47248; QUAD $0x25480d536203d472; QUAD $0xddfe4025416296ef; QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; QUAD $0x72481591621d626f; QUAD $0xc272480d916211c2; QUAD $0x0ad2724805916213; QUAD $0x6296ef25480d5362; QUAD $0x1d2162e5fe401d41; QUAD $0x7248159162e5fe40; QUAD $0xc572480d916207c5; QUAD $0x03d5724805916212; QUAD $0x6296ef25480d5362; QUAD $0x6d5162e5fe401d41; QUAD $0x6f487e7162c4fe48; QUAD $0x06c772482df162cf; QUAD $0x620bc7724825f162; QUAD $0x736219c772481df1; QUAD $0x3d1162cac925487d; QUAD $0x2548255362c5fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x486df162f0fe484d; QUAD $0x724825f16202c372; QUAD $0xc372481df1620dc3; QUAD $0x62cb6f487e716216; QUAD $0xd362e8cd25485d73; QUAD $0x6dd16296d4254825; QUAD $0xfe486dd162d1fe48; QUAD $0x1e626f487e7162d0; QUAD $0x6211c37248159162; QUAD $0x916213c372480d91; QUAD $0x0d53620ad3724805; QUAD $0x4015416296ef2548; QUAD $0xeefe40152162edfe; QUAD $0x6207c67248159162; QUAD $0x916212c672480d91; QUAD $0x0d536203d6724805; QUAD $0x4015416296ef2548; QUAD $0xc4fe48755162edfe; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d1162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x1591621f626f487e; QUAD $0x480d916211c47248; QUAD $0x724805916213c472; QUAD $0xef25480d53620ad4; QUAD $0x62f5fe400d416296; QUAD $0x159162f7fe400d21; QUAD $0x480d916207c77248; QUAD $0x724805916212c772; QUAD $0xef25480d536203d7; QUAD $0x62f5fe400d416296; QUAD $0x7e7162c4fe487d51; QUAD $0x72482df162cd6f48; QUAD $0xc5724825f16206c5; QUAD $0x19c572481df1620b; QUAD $0x62cacf25484d7362; QUAD $0x255362c7fe483d11; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162e0fe485dd162; QUAD $0x25f16202c172487d; QUAD $0x481df1620dc17248; QUAD $0x6f487e716216c172; QUAD $0xe8cb25486d7362c9; QUAD $0x6296c4254825d362; QUAD $0x7dd162c1fe487dd1; QUAD $0x6f487e7162c0fe48; QUAD $0xc572481591622062; QUAD $0x13c572480d916211; QUAD $0x620ad57248059162; QUAD $0x416296ef25480d53; QUAD $0x40050162fdfe4005; QUAD $0xc0724815b162f8fe; QUAD $0x12c072480db16207; QUAD $0x6203d0724805b162; QUAD $0x416296ef25480d53; QUAD $0x48455162fdfe4005; QUAD $0xcc6f487e7162c4fe; QUAD $0x6206c472482df162; QUAD $0xf1620bc4724825f1; QUAD $0x55736219c472481d; QUAD $0x483d3162cace2548; QUAD $0xd42548255362c0fe; QUAD $0x62c1fe483d516296; QUAD $0x65d162c2fe483d51; QUAD $0x724845f162d8fe48; QUAD $0xc0724825f16202c0; QUAD $0x16c072481df1620d; QUAD $0x7362c86f487e7162; QUAD $0x25d362e8ca254875; QUAD $0x4845d16296fc2548; QUAD $0xf8fe4845d162f9fe; QUAD $0x6221626f487e7162; QUAD $0x916211c672481591; QUAD $0x05916213c672480d; QUAD $0x480d53620ad67248; QUAD $0xfe407dc16296ef25; QUAD $0x62c1fe407d8162c5; QUAD $0xb16207c1724815b1; QUAD $0x05b16212c172480d; QUAD $0x480d536203d17248; QUAD $0xfe407dc16296ef25; QUAD $0x62c4fe484d5162c5; QUAD $0x2df162cb6f487e71; QUAD $0x4825f16206c37248; QUAD $0x72481df1620bc372; QUAD $0xcd25485d736219c3; QUAD $0x62c1fe483d3162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xd0fe486dd162c2fe; QUAD $0x6202c772484df162; QUAD $0xf1620dc7724825f1; QUAD $0x7e716216c772481d; QUAD $0x25487d7362cf6f48; QUAD $0xf4254825d362e8c9; QUAD $0x62f1fe484dd16296; QUAD $0x7e7162f0fe484dd1; QUAD $0x4815916222626f48; QUAD $0x72480d916211c772; QUAD $0xd7724805916213c7; QUAD $0x96ef25480d53620a; QUAD $0x8162cdfe4075c162; QUAD $0x4815b162cafe4075; QUAD $0x72480db16207c272; QUAD $0xd2724805b16212c2; QUAD $0x96ef25480d536203; QUAD $0x5162cdfe4075c162; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x3162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x11c0724815b16223; QUAD $0x6213c072480db162; QUAD $0x53620ad0724805b1; QUAD $0x6dc16296ef25480d; QUAD $0xfe406d8162d5fe40; QUAD $0x07c3724815b162d3; QUAD $0x6212c372480db162; QUAD $0x536203d3724805b1; QUAD $0x6dc16296ef25480d; QUAD $0xfe485d5162d5fe40; QUAD $0x62c96f487e7162c4; QUAD $0xf16206c172482df1; QUAD $0x1df1620bc1724825; QUAD $0x486d736219c17248; QUAD $0xfe483d3162cacb25; QUAD $0x96d42548255362c3; QUAD $0x5162c1fe483d5162; QUAD $0x487dd162c2fe483d; QUAD $0xc572485df162c0fe; QUAD $0x0dc5724825f16202; QUAD $0x6216c572481df162; QUAD $0x4d7362cd6f487e71; QUAD $0x4825d362e8cf2548; QUAD $0xfe485dd16296e425; QUAD $0x62e0fe485dd162e1; QUAD $0xb16224626f487e71; QUAD $0x0db16211c1724815; QUAD $0x4805b16213c17248; QUAD $0x25480d53620ad172; QUAD $0xddfe4065c16296ef; QUAD $0xb162dcfe40658162; QUAD $0x0db16207c4724815; QUAD $0x4805b16212c47248; QUAD $0x25480d536203d472; QUAD $0xddfe4065c16296ef; QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; QUAD $0x724815b16225626f; QUAD $0xc272480db16211c2; QUAD $0x0ad2724805b16213; QUAD $0x6296ef25480d5362; QUAD $0x5d8162e5fe405dc1; QUAD $0x724815b162e5fe40; QUAD $0xc572480db16207c5; QUAD $0x03d5724805b16212; QUAD $0x6296ef25480d5362; QUAD $0x6d5162e5fe405dc1; QUAD $0x6f487e7162c4fe48; QUAD $0x06c772482df162cf; QUAD $0x620bc7724825f162; QUAD $0x736219c772481df1; QUAD $0x3d3162cac925487d; QUAD $0x2548255362c5fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x486df162f0fe484d; QUAD $0x724825f16202c372; QUAD $0xc372481df1620dc3; QUAD $0x62cb6f487e716216; QUAD $0xd362e8cd25485d73; QUAD $0x6dd16296d4254825; QUAD $0xfe486dd162d1fe48; QUAD $0x26626f487e7162d0; QUAD $0x6211c3724815b162; QUAD $0xb16213c372480db1; QUAD $0x0d53620ad3724805; QUAD $0x4055c16296ef2548; QUAD $0xeefe40558162edfe; QUAD $0x6207c6724815b162; QUAD $0xb16212c672480db1; QUAD $0x0d536203d6724805; QUAD $0x4055c16296ef2548; QUAD $0xc4fe48755162edfe; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d3162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x15b16227626f487e; QUAD $0x480db16211c47248; QUAD $0x724805b16213c472; QUAD $0xef25480d53620ad4; QUAD $0x62f5fe404dc16296; QUAD $0x15b162f7fe404d81; QUAD $0x480db16207c77248; QUAD $0x724805b16212c772; QUAD $0xef25480d536203d7; QUAD $0x62f5fe404dc16296; QUAD $0x7e7162c4fe487d51; QUAD $0x72482df162cd6f48; QUAD $0xc5724825f16206c5; QUAD $0x19c572481df1620b; QUAD $0x62cacf25484d7362; QUAD $0x255362c7fe483d31; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162e0fe485dd162; QUAD $0x25f16202c172487d; QUAD $0x481df1620dc17248; QUAD $0x6f487e716216c172; QUAD $0xe8cb25486d7362c9; QUAD $0x6296c4254825d362; QUAD $0x7dd162c1fe487dd1; QUAD $0x6f487e7162c0fe48; QUAD $0xc5724815b1622862; QUAD $0x13c572480db16211; QUAD $0x620ad5724805b162; QUAD $0xc16296ef25480d53; QUAD $0x4045a162fdfe4045; QUAD $0xc07248159162f8fe; QUAD $0x12c072480d916207; QUAD $0x6203d07248059162; QUAD $0xc16296ef25480d53; QUAD $0x48455162fdfe4045; QUAD $0xcc6f487e7162c4fe; QUAD $0x6206c472482df162; QUAD $0xf1620bc4724825f1; QUAD $0x55736219c472481d; QUAD $0x483d1162cace2548; QUAD $0xd42548255362c0fe; QUAD $0x62c1fe483d516296; QUAD $0x65d162c2fe483d51; QUAD $0x724845f162d8fe48; QUAD $0xc0724825f16202c0; QUAD $0x16c072481df1620d; QUAD $0x7362c86f487e7162; QUAD $0x25d362e8ca254875; QUAD $0x4845d16296fc2548; QUAD $0xf8fe4845d162f9fe; QUAD $0x6229626f487e7162; QUAD $0xb16211c6724815b1; QUAD $0x05b16213c672480d; QUAD $0x480d53620ad67248; QUAD $0xfe403d416296ef25; QUAD $0x62c1fe403d2162c5; QUAD $0x916207c172481591; QUAD $0x05916212c172480d; QUAD $0x480d536203d17248; QUAD $0xfe403d416296ef25; QUAD $0x62c4fe484d5162c5; QUAD $0x2df162cb6f487e71; QUAD $0x4825f16206c37248; QUAD $0x72481df1620bc372; QUAD $0xcd25485d736219c3; QUAD $0x62c1fe483d1162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xd0fe486dd162c2fe; QUAD $0x6202c772484df162; QUAD $0xf1620dc7724825f1; QUAD $0x7e716216c772481d; QUAD $0x25487d7362cf6f48; QUAD $0xf4254825d362e8c9; QUAD $0x62f1fe484dd16296; QUAD $0x7e7162f0fe484dd1; QUAD $0x4815b1622a626f48; QUAD $0x72480db16211c772; QUAD $0xd7724805b16213c7; QUAD $0x96ef25480d53620a; QUAD $0x2162cdfe40354162; QUAD $0x48159162cafe4035; QUAD $0x72480d916207c272; QUAD $0xd2724805916212c2; QUAD $0x96ef25480d536203; QUAD $0x5162cdfe40354162; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x1162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x11c072481591622b; QUAD $0x6213c072480d9162; QUAD $0x53620ad072480591; QUAD $0x2d416296ef25480d; QUAD $0xfe402d2162d5fe40; QUAD $0x07c37248159162d3; QUAD $0x6212c372480d9162; QUAD $0x536203d372480591; QUAD $0x2d416296ef25480d; QUAD $0xfe485d5162d5fe40; QUAD $0x62c96f487e7162c4; QUAD $0xf16206c172482df1; QUAD $0x1df1620bc1724825; QUAD $0x486d736219c17248; QUAD $0xfe483d1162cacb25; QUAD $0x96d42548255362c3; QUAD $0x5162c1fe483d5162; QUAD $0x487dd162c2fe483d; QUAD $0xc572485df162c0fe; QUAD $0x0dc5724825f16202; QUAD $0x6216c572481df162; QUAD $0x4d7362cd6f487e71; QUAD $0x4825d362e8cf2548; QUAD $0xfe485dd16296e425; QUAD $0x62e0fe485dd162e1; QUAD $0x91622c626f487e71; QUAD $0x0d916211c1724815; QUAD $0x4805916213c17248; QUAD $0x25480d53620ad172; QUAD $0xddfe4025416296ef; QUAD $0x9162dcfe40252162; QUAD $0x0d916207c4724815; QUAD $0x4805916212c47248; QUAD $0x25480d536203d472; QUAD $0xddfe4025416296ef; QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; QUAD $0x72481591622d626f; QUAD $0xc272480d916211c2; QUAD $0x0ad2724805916213; QUAD $0x6296ef25480d5362; QUAD $0x1d2162e5fe401d41; QUAD $0x7248159162e5fe40; QUAD $0xc572480d916207c5; QUAD $0x03d5724805916212; QUAD $0x6296ef25480d5362; QUAD $0x6d5162e5fe401d41; QUAD $0x6f487e7162c4fe48; QUAD $0x06c772482df162cf; QUAD $0x620bc7724825f162; QUAD $0x736219c772481df1; QUAD $0x3d1162cac925487d; QUAD $0x2548255362c5fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x486df162f0fe484d; QUAD $0x724825f16202c372; QUAD $0xc372481df1620dc3; QUAD $0x62cb6f487e716216; QUAD $0xd362e8cd25485d73; QUAD $0x6dd16296d4254825; QUAD $0xfe486dd162d1fe48; QUAD $0x2e626f487e7162d0; QUAD $0x6211c37248159162; QUAD $0x916213c372480d91; QUAD $0x0d53620ad3724805; QUAD $0x4015416296ef2548; QUAD $0xeefe40152162edfe; QUAD $0x6207c67248159162; QUAD $0x916212c672480d91; QUAD $0x0d536203d6724805; QUAD $0x4015416296ef2548; QUAD $0xc4fe48755162edfe; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d1162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x1591622f626f487e; QUAD $0x480d916211c47248; QUAD $0x724805916213c472; QUAD $0xef25480d53620ad4; QUAD $0x62f5fe400d416296; QUAD $0x159162f7fe400d21; QUAD $0x480d916207c77248; QUAD $0x724805916212c772; QUAD $0xef25480d536203d7; QUAD $0x62f5fe400d416296; QUAD $0x7e7162c4fe487d51; QUAD $0x72482df162cd6f48; QUAD $0xc5724825f16206c5; QUAD $0x19c572481df1620b; QUAD $0x62cacf25484d7362; QUAD $0x255362c7fe483d11; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162e0fe485dd162; QUAD $0x25f16202c172487d; QUAD $0x481df1620dc17248; QUAD $0x6f487e716216c172; QUAD $0xe8cb25486d7362c9; QUAD $0x6296c4254825d362; QUAD $0x7dd162c1fe487dd1; QUAD $0x6f487e7162c0fe48; QUAD $0xc572481591623062; QUAD $0x13c572480d916211; QUAD $0x620ad57248059162; QUAD $0x416296ef25480d53; QUAD $0x40050162fdfe4005; QUAD $0xc0724815b162f8fe; QUAD $0x12c072480db16207; QUAD $0x6203d0724805b162; QUAD $0x416296ef25480d53; QUAD $0x01ee8348fdfe4005 + JE lastLoop + ADDQ $8, R13 + MOVQ (R13), R14 + QUAD $0x7162c4fe48455162; QUAD $0x482df162cc6f487e; QUAD $0x724825f16206c472; QUAD $0xc472481df1620bc4; QUAD $0xcace254855736219; QUAD $0x5362c0fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62d8fe4865d162c2; QUAD $0xf16202c0724845f1; QUAD $0x1df1620dc0724825; QUAD $0x487e716216c07248; QUAD $0xca2548757362c86f; QUAD $0x96fc254825d362e8; QUAD $0xd162f9fe4845d162; QUAD $0x487e7162f8fe4845; WORD $0x626f; BYTE $0x31 + TESTQ $(1<<0), R14 + JE skipNext0 + MOVQ 0*24(AX), R9 + LONG $0x487cc162; WORD $0x0410; BYTE $0x09 + +skipNext0: + QUAD $0x7162c4fe484d5162; QUAD $0x482df162cb6f487e; QUAD $0x724825f16206c372; QUAD $0xc372481df1620bc3; QUAD $0xcacd25485d736219; QUAD $0x5362c1fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62d0fe486dd162c2; QUAD $0xf16202c772484df1; QUAD $0x1df1620dc7724825; QUAD $0x487e716216c77248; QUAD $0xc925487d7362cf6f; QUAD $0x96f4254825d362e8; QUAD $0xd162f1fe484dd162; QUAD $0x487e7162f0fe484d; WORD $0x626f; BYTE $0x32 + TESTQ $(1<<1), R14 + JE skipNext1 + MOVQ 1*24(AX), R9 + LONG $0x487cc162; WORD $0x0c10; BYTE $0x09 + +skipNext1: + QUAD $0x7162c4fe48555162; QUAD $0x482df162ca6f487e; QUAD $0x724825f16206c272; QUAD $0xc272481df1620bc2; QUAD $0xcacc254865736219; QUAD $0x5362c2fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62c8fe4875d162c2; QUAD $0xf16202c6724855f1; QUAD $0x1df1620dc6724825; QUAD $0x487e716216c67248; QUAD $0xc82548457362ce6f; QUAD $0x96ec254825d362e8; QUAD $0xd162e9fe4855d162; QUAD $0x487e7162e8fe4855; WORD $0x626f; BYTE $0x33 + TESTQ $(1<<2), R14 + JE skipNext2 + MOVQ 2*24(AX), R9 + LONG $0x487cc162; WORD $0x1410; BYTE $0x09 + +skipNext2: + QUAD $0x7162c4fe485d5162; QUAD $0x482df162c96f487e; QUAD $0x724825f16206c172; QUAD $0xc172481df1620bc1; QUAD $0xcacb25486d736219; QUAD $0x5362c3fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62c0fe487dd162c2; QUAD $0xf16202c572485df1; QUAD $0x1df1620dc5724825; QUAD $0x487e716216c57248; QUAD $0xcf25484d7362cd6f; QUAD $0x96e4254825d362e8; QUAD $0xd162e1fe485dd162; QUAD $0x487e7162e0fe485d; WORD $0x626f; BYTE $0x34 + TESTQ $(1<<3), R14 + JE skipNext3 + MOVQ 3*24(AX), R9 + LONG $0x487cc162; WORD $0x1c10; BYTE $0x09 + +skipNext3: + QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; WORD $0x626f; BYTE $0x35 + TESTQ $(1<<4), R14 + JE skipNext4 + MOVQ 4*24(AX), R9 + LONG $0x487cc162; WORD $0x2410; BYTE $0x09 + +skipNext4: + QUAD $0x7162c4fe486d5162; QUAD $0x482df162cf6f487e; QUAD $0x724825f16206c772; QUAD $0xc772481df1620bc7; QUAD $0xcac925487d736219; QUAD $0x5362c5fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f0fe484dd162c2; QUAD $0xf16202c372486df1; QUAD $0x1df1620dc3724825; QUAD $0x487e716216c37248; QUAD $0xcd25485d7362cb6f; QUAD $0x96d4254825d362e8; QUAD $0xd162d1fe486dd162; QUAD $0x487e7162d0fe486d; WORD $0x626f; BYTE $0x36 + TESTQ $(1<<5), R14 + JE skipNext5 + MOVQ 5*24(AX), R9 + LONG $0x487cc162; WORD $0x2c10; BYTE $0x09 + +skipNext5: + QUAD $0x7162c4fe48755162; QUAD $0x482df162ce6f487e; QUAD $0x724825f16206c672; QUAD $0xc672481df1620bc6; QUAD $0xcac8254845736219; QUAD $0x5362c6fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62e8fe4855d162c2; QUAD $0xf16202c2724875f1; QUAD $0x1df1620dc2724825; QUAD $0x487e716216c27248; QUAD $0xcc2548657362ca6f; QUAD $0x96cc254825d362e8; QUAD $0xd162c9fe4875d162; QUAD $0x487e7162c8fe4875; WORD $0x626f; BYTE $0x37 + TESTQ $(1<<6), R14 + JE skipNext6 + MOVQ 6*24(AX), R9 + LONG $0x487cc162; WORD $0x3410; BYTE $0x09 + +skipNext6: + QUAD $0x7162c4fe487d5162; QUAD $0x482df162cd6f487e; QUAD $0x724825f16206c572; QUAD $0xc572481df1620bc5; QUAD $0xcacf25484d736219; QUAD $0x5362c7fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62e0fe485dd162c2; QUAD $0xf16202c172487df1; QUAD $0x1df1620dc1724825; QUAD $0x487e716216c17248; QUAD $0xcb25486d7362c96f; QUAD $0x96c4254825d362e8; QUAD $0xd162c1fe487dd162; QUAD $0x487e7162c0fe487d; WORD $0x626f; BYTE $0x38 + TESTQ $(1<<7), R14 + JE skipNext7 + MOVQ 7*24(AX), R9 + LONG $0x487cc162; WORD $0x3c10; BYTE $0x09 + +skipNext7: + QUAD $0x7162c4fe48455162; QUAD $0x482df162cc6f487e; QUAD $0x724825f16206c472; QUAD $0xc472481df1620bc4; QUAD $0xcace254855736219; QUAD $0x5362c0fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62d8fe4865d162c2; QUAD $0xf16202c0724845f1; QUAD $0x1df1620dc0724825; QUAD $0x487e716216c07248; QUAD $0xca2548757362c86f; QUAD $0x96fc254825d362e8; QUAD $0xd162f9fe4845d162; QUAD $0x487e7162f8fe4845; WORD $0x626f; BYTE $0x39 + TESTQ $(1<<8), R14 + JE skipNext8 + MOVQ 8*24(AX), R9 + LONG $0x487c4162; WORD $0x0410; BYTE $0x09 + +skipNext8: + QUAD $0x7162c4fe484d5162; QUAD $0x482df162cb6f487e; QUAD $0x724825f16206c372; QUAD $0xc372481df1620bc3; QUAD $0xcacd25485d736219; QUAD $0x5362c1fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62d0fe486dd162c2; QUAD $0xf16202c772484df1; QUAD $0x1df1620dc7724825; QUAD $0x487e716216c77248; QUAD $0xc925487d7362cf6f; QUAD $0x96f4254825d362e8; QUAD $0xd162f1fe484dd162; QUAD $0x487e7162f0fe484d; WORD $0x626f; BYTE $0x3a + TESTQ $(1<<9), R14 + JE skipNext9 + MOVQ 9*24(AX), R9 + LONG $0x487c4162; WORD $0x0c10; BYTE $0x09 + +skipNext9: + QUAD $0x7162c4fe48555162; QUAD $0x482df162ca6f487e; QUAD $0x724825f16206c272; QUAD $0xc272481df1620bc2; QUAD $0xcacc254865736219; QUAD $0x5362c2fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62c8fe4875d162c2; QUAD $0xf16202c6724855f1; QUAD $0x1df1620dc6724825; QUAD $0x487e716216c67248; QUAD $0xc82548457362ce6f; QUAD $0x96ec254825d362e8; QUAD $0xd162e9fe4855d162; QUAD $0x487e7162e8fe4855; WORD $0x626f; BYTE $0x3b + TESTQ $(1<<10), R14 + JE skipNext10 + MOVQ 10*24(AX), R9 + LONG $0x487c4162; WORD $0x1410; BYTE $0x09 + +skipNext10: + QUAD $0x7162c4fe485d5162; QUAD $0x482df162c96f487e; QUAD $0x724825f16206c172; QUAD $0xc172481df1620bc1; QUAD $0xcacb25486d736219; QUAD $0x5362c3fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62c0fe487dd162c2; QUAD $0xf16202c572485df1; QUAD $0x1df1620dc5724825; QUAD $0x487e716216c57248; QUAD $0xcf25484d7362cd6f; QUAD $0x96e4254825d362e8; QUAD $0xd162e1fe485dd162; QUAD $0x487e7162e0fe485d; WORD $0x626f; BYTE $0x3c + TESTQ $(1<<11), R14 + JE skipNext11 + MOVQ 11*24(AX), R9 + LONG $0x487c4162; WORD $0x1c10; BYTE $0x09 + +skipNext11: + QUAD $0x7162c4fe48655162; QUAD $0x482df162c86f487e; QUAD $0x724825f16206c072; QUAD $0xc072481df1620bc0; QUAD $0xcaca254875736219; QUAD $0x5362c4fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f8fe4845d162c2; QUAD $0xf16202c4724865f1; QUAD $0x1df1620dc4724825; QUAD $0x487e716216c47248; QUAD $0xce2548557362cc6f; QUAD $0x96dc254825d362e8; QUAD $0xd162d9fe4865d162; QUAD $0x487e7162d8fe4865; WORD $0x626f; BYTE $0x3d + TESTQ $(1<<12), R14 + JE skipNext12 + MOVQ 12*24(AX), R9 + LONG $0x487c4162; WORD $0x2410; BYTE $0x09 + +skipNext12: + QUAD $0x7162c4fe486d5162; QUAD $0x482df162cf6f487e; QUAD $0x724825f16206c772; QUAD $0xc772481df1620bc7; QUAD $0xcac925487d736219; QUAD $0x5362c5fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62f0fe484dd162c2; QUAD $0xf16202c372486df1; QUAD $0x1df1620dc3724825; QUAD $0x487e716216c37248; QUAD $0xcd25485d7362cb6f; QUAD $0x96d4254825d362e8; QUAD $0xd162d1fe486dd162; QUAD $0x487e7162d0fe486d; WORD $0x626f; BYTE $0x3e + TESTQ $(1<<13), R14 + JE skipNext13 + MOVQ 13*24(AX), R9 + LONG $0x487c4162; WORD $0x2c10; BYTE $0x09 + +skipNext13: + QUAD $0x7162c4fe48755162; QUAD $0x482df162ce6f487e; QUAD $0x724825f16206c672; QUAD $0xc672481df1620bc6; QUAD $0xcac8254845736219; QUAD $0x5362c6fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62e8fe4855d162c2; QUAD $0xf16202c2724875f1; QUAD $0x1df1620dc2724825; QUAD $0x487e716216c27248; QUAD $0xcc2548657362ca6f; QUAD $0x96cc254825d362e8; QUAD $0xd162c9fe4875d162; QUAD $0x487e7162c8fe4875; WORD $0x626f; BYTE $0x3f + TESTQ $(1<<14), R14 + JE skipNext14 + MOVQ 14*24(AX), R9 + LONG $0x487c4162; WORD $0x3410; BYTE $0x09 + +skipNext14: + QUAD $0x7162c4fe487d5162; QUAD $0x482df162cd6f487e; QUAD $0x724825f16206c572; QUAD $0xc572481df1620bc5; QUAD $0xcacf25484d736219; QUAD $0x5362c7fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62e0fe485dd162c2; QUAD $0xf16202c172487df1; QUAD $0x1df1620dc1724825; QUAD $0x487e716216c17248; QUAD $0xcb25486d7362c96f; QUAD $0x96c4254825d362e8; QUAD $0xd162c1fe487dd162; QUAD $0x487e7162c0fe487d; WORD $0x626f; BYTE $0x40 + TESTQ $(1<<15), R14 + JE skipNext15 + MOVQ 15*24(AX), R9 + LONG $0x487c4162; WORD $0x3c10; BYTE $0x09 + +skipNext15: + QUAD $0xd162d86f487e7162; QUAD $0x7dd16224046f487e; QUAD $0x6f487e7162c3fe49; QUAD $0x244c6f487ed162d9; QUAD $0x62cbfe4975d16201; QUAD $0x7ed162da6f487e71; QUAD $0x6dd1620224546f48; QUAD $0x6f487e7162d3fe49; QUAD $0x245c6f487ed162db; QUAD $0x62dbfe4965d16203; QUAD $0x7ed162dc6f487e71; QUAD $0x5dd1620424646f48; QUAD $0x6f487e7162e3fe49; QUAD $0x246c6f487ed162dd; QUAD $0x62ebfe4955d16205; QUAD $0x7ed162de6f487e71; QUAD $0x4dd1620624746f48; QUAD $0x6f487e7162f3fe49; QUAD $0x247c6f487ed162df; QUAD $0xc4fbfe4945d16207; LONG $0xce92fbc1 + JMP lloop + +lastLoop: + QUAD $0x7162c4fe48455162; QUAD $0x482df162cc6f487e; QUAD $0x724825f16206c472; QUAD $0xc472481df1620bc4; QUAD $0xcace254855736219; QUAD $0x5362c0fe483d3162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62d8fe4865d162c2; QUAD $0xf16202c0724845f1; QUAD $0x1df1620dc0724825; QUAD $0x487e716216c07248; QUAD $0xca2548757362c86f; QUAD $0x96fc254825d362e8; QUAD $0xd162f9fe4845d162; QUAD $0x487e7162f8fe4845; QUAD $0xfe484d516231626f; QUAD $0x62cb6f487e7162c4; QUAD $0xf16206c372482df1; QUAD $0x1df1620bc3724825; QUAD $0x485d736219c37248; QUAD $0xfe483d3162cacd25; QUAD $0x96d42548255362c1; QUAD $0x5162c1fe483d5162; QUAD $0x486dd162c2fe483d; QUAD $0xc772484df162d0fe; QUAD $0x0dc7724825f16202; QUAD $0x6216c772481df162; QUAD $0x7d7362cf6f487e71; QUAD $0x4825d362e8c92548; QUAD $0xfe484dd16296f425; QUAD $0x62f0fe484dd162f1; QUAD $0x516232626f487e71; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x3162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x62c4fe485d516233; QUAD $0x2df162c96f487e71; QUAD $0x4825f16206c17248; QUAD $0x72481df1620bc172; QUAD $0xcb25486d736219c1; QUAD $0x62c3fe483d3162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xc0fe487dd162c2fe; QUAD $0x6202c572485df162; QUAD $0xf1620dc5724825f1; QUAD $0x7e716216c572481d; QUAD $0x25484d7362cd6f48; QUAD $0xe4254825d362e8cf; QUAD $0x62e1fe485dd16296; QUAD $0x7e7162e0fe485dd1; QUAD $0x4865516234626f48; QUAD $0xc86f487e7162c4fe; QUAD $0x6206c072482df162; QUAD $0xf1620bc0724825f1; QUAD $0x75736219c072481d; QUAD $0x483d3162caca2548; QUAD $0xd42548255362c4fe; QUAD $0x62c1fe483d516296; QUAD $0x45d162c2fe483d51; QUAD $0x724865f162f8fe48; QUAD $0xc4724825f16202c4; QUAD $0x16c472481df1620d; QUAD $0x7362cc6f487e7162; QUAD $0x25d362e8ce254855; QUAD $0x4865d16296dc2548; QUAD $0xd8fe4865d162d9fe; QUAD $0x6235626f487e7162; QUAD $0x7e7162c4fe486d51; QUAD $0x72482df162cf6f48; QUAD $0xc7724825f16206c7; QUAD $0x19c772481df1620b; QUAD $0x62cac925487d7362; QUAD $0x255362c5fe483d31; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162f0fe484dd162; QUAD $0x25f16202c372486d; QUAD $0x481df1620dc37248; QUAD $0x6f487e716216c372; QUAD $0xe8cd25485d7362cb; QUAD $0x6296d4254825d362; QUAD $0x6dd162d1fe486dd1; QUAD $0x6f487e7162d0fe48; QUAD $0xc4fe487551623662; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d3162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x7d516237626f487e; QUAD $0x6f487e7162c4fe48; QUAD $0x06c572482df162cd; QUAD $0x620bc5724825f162; QUAD $0x736219c572481df1; QUAD $0x3d3162cacf25484d; QUAD $0x2548255362c7fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x487df162e0fe485d; QUAD $0x724825f16202c172; QUAD $0xc172481df1620dc1; QUAD $0x62c96f487e716216; QUAD $0xd362e8cb25486d73; QUAD $0x7dd16296c4254825; QUAD $0xfe487dd162c1fe48; QUAD $0x38626f487e7162c0; QUAD $0x7162c4fe48455162; QUAD $0x482df162cc6f487e; QUAD $0x724825f16206c472; QUAD $0xc472481df1620bc4; QUAD $0xcace254855736219; QUAD $0x5362c0fe483d1162; QUAD $0x3d516296d4254825; QUAD $0xfe483d5162c1fe48; QUAD $0x62d8fe4865d162c2; QUAD $0xf16202c0724845f1; QUAD $0x1df1620dc0724825; QUAD $0x487e716216c07248; QUAD $0xca2548757362c86f; QUAD $0x96fc254825d362e8; QUAD $0xd162f9fe4845d162; QUAD $0x487e7162f8fe4845; QUAD $0xfe484d516239626f; QUAD $0x62cb6f487e7162c4; QUAD $0xf16206c372482df1; QUAD $0x1df1620bc3724825; QUAD $0x485d736219c37248; QUAD $0xfe483d1162cacd25; QUAD $0x96d42548255362c1; QUAD $0x5162c1fe483d5162; QUAD $0x486dd162c2fe483d; QUAD $0xc772484df162d0fe; QUAD $0x0dc7724825f16202; QUAD $0x6216c772481df162; QUAD $0x7d7362cf6f487e71; QUAD $0x4825d362e8c92548; QUAD $0xfe484dd16296f425; QUAD $0x62f0fe484dd162f1; QUAD $0x51623a626f487e71; QUAD $0x487e7162c4fe4855; QUAD $0xc272482df162ca6f; QUAD $0x0bc2724825f16206; QUAD $0x6219c272481df162; QUAD $0x1162cacc25486573; QUAD $0x48255362c2fe483d; QUAD $0xfe483d516296d425; QUAD $0x62c2fe483d5162c1; QUAD $0x55f162c8fe4875d1; QUAD $0x4825f16202c67248; QUAD $0x72481df1620dc672; QUAD $0xce6f487e716216c6; QUAD $0x62e8c82548457362; QUAD $0xd16296ec254825d3; QUAD $0x4855d162e9fe4855; QUAD $0x626f487e7162e8fe; QUAD $0x62c4fe485d51623b; QUAD $0x2df162c96f487e71; QUAD $0x4825f16206c17248; QUAD $0x72481df1620bc172; QUAD $0xcb25486d736219c1; QUAD $0x62c3fe483d1162ca; QUAD $0x516296d425482553; QUAD $0x483d5162c1fe483d; QUAD $0xc0fe487dd162c2fe; QUAD $0x6202c572485df162; QUAD $0xf1620dc5724825f1; QUAD $0x7e716216c572481d; QUAD $0x25484d7362cd6f48; QUAD $0xe4254825d362e8cf; QUAD $0x62e1fe485dd16296; QUAD $0x7e7162e0fe485dd1; QUAD $0x486551623c626f48; QUAD $0xc86f487e7162c4fe; QUAD $0x6206c072482df162; QUAD $0xf1620bc0724825f1; QUAD $0x75736219c072481d; QUAD $0x483d1162caca2548; QUAD $0xd42548255362c4fe; QUAD $0x62c1fe483d516296; QUAD $0x45d162c2fe483d51; QUAD $0x724865f162f8fe48; QUAD $0xc4724825f16202c4; QUAD $0x16c472481df1620d; QUAD $0x7362cc6f487e7162; QUAD $0x25d362e8ce254855; QUAD $0x4865d16296dc2548; QUAD $0xd8fe4865d162d9fe; QUAD $0x623d626f487e7162; QUAD $0x7e7162c4fe486d51; QUAD $0x72482df162cf6f48; QUAD $0xc7724825f16206c7; QUAD $0x19c772481df1620b; QUAD $0x62cac925487d7362; QUAD $0x255362c5fe483d11; QUAD $0x483d516296d42548; QUAD $0xc2fe483d5162c1fe; QUAD $0xf162f0fe484dd162; QUAD $0x25f16202c372486d; QUAD $0x481df1620dc37248; QUAD $0x6f487e716216c372; QUAD $0xe8cd25485d7362cb; QUAD $0x6296d4254825d362; QUAD $0x6dd162d1fe486dd1; QUAD $0x6f487e7162d0fe48; QUAD $0xc4fe487551623e62; QUAD $0xf162ce6f487e7162; QUAD $0x25f16206c672482d; QUAD $0x481df1620bc67248; QUAD $0x254845736219c672; QUAD $0xc6fe483d1162cac8; QUAD $0x6296d42548255362; QUAD $0x3d5162c1fe483d51; QUAD $0xfe4855d162c2fe48; QUAD $0x02c2724875f162e8; QUAD $0x620dc2724825f162; QUAD $0x716216c272481df1; QUAD $0x48657362ca6f487e; QUAD $0x254825d362e8cc25; QUAD $0xc9fe4875d16296cc; QUAD $0x7162c8fe4875d162; QUAD $0x7d51623f626f487e; QUAD $0x6f487e7162c4fe48; QUAD $0x06c572482df162cd; QUAD $0x620bc5724825f162; QUAD $0x736219c572481df1; QUAD $0x3d1162cacf25484d; QUAD $0x2548255362c7fe48; QUAD $0xc1fe483d516296d4; QUAD $0xd162c2fe483d5162; QUAD $0x487df162e0fe485d; QUAD $0x724825f16202c172; QUAD $0xc172481df1620dc1; QUAD $0x62c96f487e716216; QUAD $0xd362e8cb25486d73; QUAD $0x7dd16296c4254825; QUAD $0xfe487dd162c1fe48; QUAD $0x40626f487e7162c0; QUAD $0xd162d86f487e7162; QUAD $0x7dd16224046f487e; QUAD $0x6f487e7162c3fe49; QUAD $0x244c6f487ed162d9; QUAD $0x62cbfe4975d16201; QUAD $0x7ed162da6f487e71; QUAD $0x6dd1620224546f48; QUAD $0x6f487e7162d3fe49; QUAD $0x245c6f487ed162db; QUAD $0x62dbfe4965d16203; QUAD $0x7ed162dc6f487e71; QUAD $0x5dd1620424646f48; QUAD $0x6f487e7162e3fe49; QUAD $0x246c6f487ed162dd; QUAD $0x62ebfe4955d16205; QUAD $0x7ed162de6f487e71; QUAD $0x4dd1620624746f48; QUAD $0x6f487e7162f3fe49; QUAD $0x247c6f487ed162df; QUAD $0x62fbfe4945d16207; QUAD $0x7ef162077f487ef1; QUAD $0x487ef162014f7f48; QUAD $0x7f487ef16202577f; QUAD $0x677f487ef162035f; QUAD $0x056f7f487ef16204; QUAD $0x6206777f487ef162; LONG $0x7f487ef1; WORD $0x077f + VZEROUPPER + RET + +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x000(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x008(SB)/8, $0x0c0d0e0f08090a0b +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x010(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x018(SB)/8, $0x0c0d0e0f08090a0b +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x020(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x028(SB)/8, $0x0c0d0e0f08090a0b +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x030(SB)/8, $0x0405060700010203 +DATA PSHUFFLE_BYTE_FLIP_MASK<>+0x038(SB)/8, $0x0c0d0e0f08090a0b +GLOBL PSHUFFLE_BYTE_FLIP_MASK<>(SB), 8, $64 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x000(SB)/8, $0x0000000000000000 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x008(SB)/8, $0x0000000000000001 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x010(SB)/8, $0x0000000000000008 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x018(SB)/8, $0x0000000000000009 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x020(SB)/8, $0x0000000000000004 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x028(SB)/8, $0x0000000000000005 +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x030(SB)/8, $0x000000000000000C +DATA PSHUFFLE_TRANSPOSE16_MASK1<>+0x038(SB)/8, $0x000000000000000D +GLOBL PSHUFFLE_TRANSPOSE16_MASK1<>(SB), 8, $64 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x000(SB)/8, $0x0000000000000002 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x008(SB)/8, $0x0000000000000003 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x010(SB)/8, $0x000000000000000A +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x018(SB)/8, $0x000000000000000B +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x020(SB)/8, $0x0000000000000006 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x028(SB)/8, $0x0000000000000007 +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x030(SB)/8, $0x000000000000000E +DATA PSHUFFLE_TRANSPOSE16_MASK2<>+0x038(SB)/8, $0x000000000000000F +GLOBL PSHUFFLE_TRANSPOSE16_MASK2<>(SB), 8, $64 diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.go b/vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.go new file mode 100644 index 00000000..eb8a0ff0 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.go @@ -0,0 +1,22 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +//go:noescape +func blockAvx(h []uint32, message []uint8, reserved0, reserved1, reserved2, reserved3 uint64) diff --git a/vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.s b/vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.s new file mode 100644 index 00000000..9f444d49 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockAvx_amd64.s @@ -0,0 +1,408 @@ +//+build !noasm,!appengine + +// SHA256 implementation for AVX + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// This code is based on an Intel White-Paper: +// "Fast SHA-256 Implementations on Intel Architecture Processors" +// +// together with the reference implementation from the following authors: +// James Guilford +// Kirk Yap +// Tim Chen +// +// For Golang it has been converted to Plan 9 assembly with the help of +// github.com/minio/asm2plan9s to assemble Intel instructions to their Plan9 +// equivalents +// + +#include "textflag.h" + +#define ROTATE_XS \ + MOVOU X4, X15 \ + MOVOU X5, X4 \ + MOVOU X6, X5 \ + MOVOU X7, X6 \ + MOVOU X15, X7 + +// compute s0 four at a time and s1 two at a time +// compute W[-16] + W[-7] 4 at a time +#define FOUR_ROUNDS_AND_SCHED(a, b, c, d, e, f, g, h) \ + MOVL e, R13 \ // y0 = e + ROLL $18, R13 \ // y0 = e >> (25-11) + MOVL a, R14 \ // y1 = a + LONG $0x0f41e3c4; WORD $0x04c6 \ // VPALIGNR XMM0,XMM7,XMM6,0x4 /* XTMP0 = W[-7] */ + ROLL $23, R14 \ // y1 = a >> (22-13) + XORL e, R13 \ // y0 = e ^ (e >> (25-11)) + MOVL f, R15 \ // y2 = f + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + XORL a, R14 \ // y1 = a ^ (a >> (22-13) + XORL g, R15 \ // y2 = f^g + LONG $0xc4fef9c5 \ // VPADDD XMM0,XMM0,XMM4 /* XTMP0 = W[-7] + W[-16] */ + XORL e, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6) ) + ANDL e, R15 \ // y2 = (f^g)&e + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + \ + \ // compute s0 + \ + LONG $0x0f51e3c4; WORD $0x04cc \ // VPALIGNR XMM1,XMM5,XMM4,0x4 /* XTMP1 = W[-15] */ + XORL a, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + XORL g, R15 \ // y2 = CH = ((f^g)&e)^g + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL R13, R15 \ // y2 = S1 + CH + ADDL _xfer+48(FP), R15 \ // y2 = k + w + S1 + CH + MOVL a, R13 \ // y0 = a + ADDL R15, h \ // h = h + S1 + CH + k + w + \ // ROTATE_ARGS + MOVL a, R15 \ // y2 = a + LONG $0xd172e9c5; BYTE $0x07 \ // VPSRLD XMM2,XMM1,0x7 /* */ + ORL c, R13 \ // y0 = a|c + ADDL h, d \ // d = d + h + S1 + CH + k + w + ANDL c, R15 \ // y2 = a&c + LONG $0xf172e1c5; BYTE $0x19 \ // VPSLLD XMM3,XMM1,0x19 /* */ + ANDL b, R13 \ // y0 = (a|c)&b + ADDL R14, h \ // h = h + S1 + CH + k + w + S0 + LONG $0xdaebe1c5 \ // VPOR XMM3,XMM3,XMM2 /* XTMP1 = W[-15] MY_ROR 7 */ + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, h \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + MOVL d, R13 \ // y0 = e + MOVL h, R14 \ // y1 = a + ROLL $18, R13 \ // y0 = e >> (25-11) + XORL d, R13 \ // y0 = e ^ (e >> (25-11)) + MOVL e, R15 \ // y2 = f + ROLL $23, R14 \ // y1 = a >> (22-13) + LONG $0xd172e9c5; BYTE $0x12 \ // VPSRLD XMM2,XMM1,0x12 /* */ + XORL h, R14 \ // y1 = a ^ (a >> (22-13) + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + XORL f, R15 \ // y2 = f^g + LONG $0xd172b9c5; BYTE $0x03 \ // VPSRLD XMM8,XMM1,0x3 /* XTMP4 = W[-15] >> 3 */ + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + XORL d, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ANDL d, R15 \ // y2 = (f^g)&e + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + LONG $0xf172f1c5; BYTE $0x0e \ // VPSLLD XMM1,XMM1,0xe /* */ + XORL h, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + XORL f, R15 \ // y2 = CH = ((f^g)&e)^g + LONG $0xd9efe1c5 \ // VPXOR XMM3,XMM3,XMM1 /* */ + ADDL R13, R15 \ // y2 = S1 + CH + ADDL _xfer+52(FP), R15 \ // y2 = k + w + S1 + CH + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + LONG $0xdaefe1c5 \ // VPXOR XMM3,XMM3,XMM2 /* XTMP1 = W[-15] MY_ROR 7 ^ W[-15] MY_ROR */ + MOVL h, R13 \ // y0 = a + ADDL R15, g \ // h = h + S1 + CH + k + w + MOVL h, R15 \ // y2 = a + LONG $0xef61c1c4; BYTE $0xc8 \ // VPXOR XMM1,XMM3,XMM8 /* XTMP1 = s0 */ + ORL b, R13 \ // y0 = a|c + ADDL g, c \ // d = d + h + S1 + CH + k + w + ANDL b, R15 \ // y2 = a&c + \ + \ // compute low s1 + \ + LONG $0xd770f9c5; BYTE $0xfa \ // VPSHUFD XMM2,XMM7,0xfa /* XTMP2 = W[-2] {BBAA} */ + ANDL a, R13 \ // y0 = (a|c)&b + ADDL R14, g \ // h = h + S1 + CH + k + w + S0 + LONG $0xc1fef9c5 \ // VPADDD XMM0,XMM0,XMM1 /* XTMP0 = W[-16] + W[-7] + s0 */ + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, g \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + MOVL c, R13 \ // y0 = e + MOVL g, R14 \ // y1 = a + ROLL $18, R13 \ // y0 = e >> (25-11) + XORL c, R13 \ // y0 = e ^ (e >> (25-11)) + ROLL $23, R14 \ // y1 = a >> (22-13) + MOVL d, R15 \ // y2 = f + XORL g, R14 \ // y1 = a ^ (a >> (22-13) + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + LONG $0xd272b9c5; BYTE $0x0a \ // VPSRLD XMM8,XMM2,0xa /* XTMP4 = W[-2] >> 10 {BBAA} */ + XORL e, R15 \ // y2 = f^g + LONG $0xd273e1c5; BYTE $0x13 \ // VPSRLQ XMM3,XMM2,0x13 /* XTMP3 = W[-2] MY_ROR 19 {xBxA} */ + XORL c, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ANDL c, R15 \ // y2 = (f^g)&e + LONG $0xd273e9c5; BYTE $0x11 \ // VPSRLQ XMM2,XMM2,0x11 /* XTMP2 = W[-2] MY_ROR 17 {xBxA} */ + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + XORL g, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + XORL e, R15 \ // y2 = CH = ((f^g)&e)^g + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + LONG $0xd3efe9c5 \ // VPXOR XMM2,XMM2,XMM3 /* */ + ADDL R13, R15 \ // y2 = S1 + CH + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL _xfer+56(FP), R15 \ // y2 = k + w + S1 + CH + LONG $0xc2ef39c5 \ // VPXOR XMM8,XMM8,XMM2 /* XTMP4 = s1 {xBxA} */ + MOVL g, R13 \ // y0 = a + ADDL R15, f \ // h = h + S1 + CH + k + w + MOVL g, R15 \ // y2 = a + LONG $0x003942c4; BYTE $0xc2 \ // VPSHUFB XMM8,XMM8,XMM10 /* XTMP4 = s1 {00BA} */ + ORL a, R13 \ // y0 = a|c + ADDL f, b \ // d = d + h + S1 + CH + k + w + ANDL a, R15 \ // y2 = a&c + LONG $0xfe79c1c4; BYTE $0xc0 \ // VPADDD XMM0,XMM0,XMM8 /* XTMP0 = {..., ..., W[1], W[0]} */ + ANDL h, R13 \ // y0 = (a|c)&b + ADDL R14, f \ // h = h + S1 + CH + k + w + S0 + \ + \ // compute high s1 + \ + LONG $0xd070f9c5; BYTE $0x50 \ // VPSHUFD XMM2,XMM0,0x50 /* XTMP2 = W[-2] {DDCC} */ + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, f \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + MOVL b, R13 \ // y0 = e + ROLL $18, R13 \ // y0 = e >> (25-11) + MOVL f, R14 \ // y1 = a + ROLL $23, R14 \ // y1 = a >> (22-13) + XORL b, R13 \ // y0 = e ^ (e >> (25-11)) + MOVL c, R15 \ // y2 = f + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + LONG $0xd272a1c5; BYTE $0x0a \ // VPSRLD XMM11,XMM2,0xa /* XTMP5 = W[-2] >> 10 {DDCC} */ + XORL f, R14 \ // y1 = a ^ (a >> (22-13) + XORL d, R15 \ // y2 = f^g + LONG $0xd273e1c5; BYTE $0x13 \ // VPSRLQ XMM3,XMM2,0x13 /* XTMP3 = W[-2] MY_ROR 19 {xDxC} */ + XORL b, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ANDL b, R15 \ // y2 = (f^g)&e + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + LONG $0xd273e9c5; BYTE $0x11 \ // VPSRLQ XMM2,XMM2,0x11 /* XTMP2 = W[-2] MY_ROR 17 {xDxC} */ + XORL f, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + XORL d, R15 \ // y2 = CH = ((f^g)&e)^g + LONG $0xd3efe9c5 \ // VPXOR XMM2,XMM2,XMM3 /* */ + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL R13, R15 \ // y2 = S1 + CH + ADDL _xfer+60(FP), R15 \ // y2 = k + w + S1 + CH + LONG $0xdaef21c5 \ // VPXOR XMM11,XMM11,XMM2 /* XTMP5 = s1 {xDxC} */ + MOVL f, R13 \ // y0 = a + ADDL R15, e \ // h = h + S1 + CH + k + w + MOVL f, R15 \ // y2 = a + LONG $0x002142c4; BYTE $0xdc \ // VPSHUFB XMM11,XMM11,XMM12 /* XTMP5 = s1 {DC00} */ + ORL h, R13 \ // y0 = a|c + ADDL e, a \ // d = d + h + S1 + CH + k + w + ANDL h, R15 \ // y2 = a&c + LONG $0xe0fea1c5 \ // VPADDD XMM4,XMM11,XMM0 /* X0 = {W[3], W[2], W[1], W[0]} */ + ANDL g, R13 \ // y0 = (a|c)&b + ADDL R14, e \ // h = h + S1 + CH + k + w + S0 + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, e \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + ROTATE_XS + +#define DO_ROUND(a, b, c, d, e, f, g, h, offset) \ + MOVL e, R13 \ // y0 = e + ROLL $18, R13 \ // y0 = e >> (25-11) + MOVL a, R14 \ // y1 = a + XORL e, R13 \ // y0 = e ^ (e >> (25-11)) + ROLL $23, R14 \ // y1 = a >> (22-13) + MOVL f, R15 \ // y2 = f + XORL a, R14 \ // y1 = a ^ (a >> (22-13) + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + XORL g, R15 \ // y2 = f^g + XORL e, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + ANDL e, R15 \ // y2 = (f^g)&e + XORL a, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + XORL g, R15 \ // y2 = CH = ((f^g)&e)^g + ADDL R13, R15 \ // y2 = S1 + CH + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL _xfer+offset(FP), R15 \ // y2 = k + w + S1 + CH + MOVL a, R13 \ // y0 = a + ADDL R15, h \ // h = h + S1 + CH + k + w + MOVL a, R15 \ // y2 = a + ORL c, R13 \ // y0 = a|c + ADDL h, d \ // d = d + h + S1 + CH + k + w + ANDL c, R15 \ // y2 = a&c + ANDL b, R13 \ // y0 = (a|c)&b + ADDL R14, h \ // h = h + S1 + CH + k + w + S0 + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, h // h = h + S1 + CH + k + w + S0 + MAJ + +// func blockAvx(h []uint32, message []uint8, reserved0, reserved1, reserved2, reserved3 uint64) +TEXT ·blockAvx(SB), 7, $0-80 + + MOVQ h+0(FP), SI // SI: &h + MOVQ message_base+24(FP), R8 // &message + MOVQ message_len+32(FP), R9 // length of message + CMPQ R9, $0 + JEQ done_hash + ADDQ R8, R9 + MOVQ R9, reserved2+64(FP) // store end of message + + // Register definition + // a --> eax + // b --> ebx + // c --> ecx + // d --> r8d + // e --> edx + // f --> r9d + // g --> r10d + // h --> r11d + // + // y0 --> r13d + // y1 --> r14d + // y2 --> r15d + + MOVL (0*4)(SI), AX // a = H0 + MOVL (1*4)(SI), BX // b = H1 + MOVL (2*4)(SI), CX // c = H2 + MOVL (3*4)(SI), R8 // d = H3 + MOVL (4*4)(SI), DX // e = H4 + MOVL (5*4)(SI), R9 // f = H5 + MOVL (6*4)(SI), R10 // g = H6 + MOVL (7*4)(SI), R11 // h = H7 + + MOVOU bflipMask<>(SB), X13 + MOVOU shuf00BA<>(SB), X10 // shuffle xBxA -> 00BA + MOVOU shufDC00<>(SB), X12 // shuffle xDxC -> DC00 + + MOVQ message_base+24(FP), SI // SI: &message + +loop0: + LEAQ constants<>(SB), BP + + // byte swap first 16 dwords + MOVOU 0*16(SI), X4 + LONG $0x0059c2c4; BYTE $0xe5 // VPSHUFB XMM4, XMM4, XMM13 + MOVOU 1*16(SI), X5 + LONG $0x0051c2c4; BYTE $0xed // VPSHUFB XMM5, XMM5, XMM13 + MOVOU 2*16(SI), X6 + LONG $0x0049c2c4; BYTE $0xf5 // VPSHUFB XMM6, XMM6, XMM13 + MOVOU 3*16(SI), X7 + LONG $0x0041c2c4; BYTE $0xfd // VPSHUFB XMM7, XMM7, XMM13 + + MOVQ SI, reserved3+72(FP) + MOVD $0x3, DI + + // schedule 48 input dwords, by doing 3 rounds of 16 each +loop1: + LONG $0x4dfe59c5; BYTE $0x00 // VPADDD XMM9, XMM4, 0[RBP] /* Add 1st constant to first part of message */ + MOVOU X9, reserved0+48(FP) + FOUR_ROUNDS_AND_SCHED(AX, BX, CX, R8, DX, R9, R10, R11) + + LONG $0x4dfe59c5; BYTE $0x10 // VPADDD XMM9, XMM4, 16[RBP] /* Add 2nd constant to message */ + MOVOU X9, reserved0+48(FP) + FOUR_ROUNDS_AND_SCHED(DX, R9, R10, R11, AX, BX, CX, R8) + + LONG $0x4dfe59c5; BYTE $0x20 // VPADDD XMM9, XMM4, 32[RBP] /* Add 3rd constant to message */ + MOVOU X9, reserved0+48(FP) + FOUR_ROUNDS_AND_SCHED(AX, BX, CX, R8, DX, R9, R10, R11) + + LONG $0x4dfe59c5; BYTE $0x30 // VPADDD XMM9, XMM4, 48[RBP] /* Add 4th constant to message */ + MOVOU X9, reserved0+48(FP) + ADDQ $64, BP + FOUR_ROUNDS_AND_SCHED(DX, R9, R10, R11, AX, BX, CX, R8) + + SUBQ $1, DI + JNE loop1 + + MOVD $0x2, DI + +loop2: + LONG $0x4dfe59c5; BYTE $0x00 // VPADDD XMM9, XMM4, 0[RBP] /* Add 1st constant to first part of message */ + MOVOU X9, reserved0+48(FP) + DO_ROUND( AX, BX, CX, R8, DX, R9, R10, R11, 48) + DO_ROUND(R11, AX, BX, CX, R8, DX, R9, R10, 52) + DO_ROUND(R10, R11, AX, BX, CX, R8, DX, R9, 56) + DO_ROUND( R9, R10, R11, AX, BX, CX, R8, DX, 60) + + LONG $0x4dfe51c5; BYTE $0x10 // VPADDD XMM9, XMM5, 16[RBP] /* Add 2nd constant to message */ + MOVOU X9, reserved0+48(FP) + ADDQ $32, BP + DO_ROUND( DX, R9, R10, R11, AX, BX, CX, R8, 48) + DO_ROUND( R8, DX, R9, R10, R11, AX, BX, CX, 52) + DO_ROUND( CX, R8, DX, R9, R10, R11, AX, BX, 56) + DO_ROUND( BX, CX, R8, DX, R9, R10, R11, AX, 60) + + MOVOU X6, X4 + MOVOU X7, X5 + + SUBQ $1, DI + JNE loop2 + + MOVQ h+0(FP), SI // SI: &h + ADDL (0*4)(SI), AX // H0 = a + H0 + MOVL AX, (0*4)(SI) + ADDL (1*4)(SI), BX // H1 = b + H1 + MOVL BX, (1*4)(SI) + ADDL (2*4)(SI), CX // H2 = c + H2 + MOVL CX, (2*4)(SI) + ADDL (3*4)(SI), R8 // H3 = d + H3 + MOVL R8, (3*4)(SI) + ADDL (4*4)(SI), DX // H4 = e + H4 + MOVL DX, (4*4)(SI) + ADDL (5*4)(SI), R9 // H5 = f + H5 + MOVL R9, (5*4)(SI) + ADDL (6*4)(SI), R10 // H6 = g + H6 + MOVL R10, (6*4)(SI) + ADDL (7*4)(SI), R11 // H7 = h + H7 + MOVL R11, (7*4)(SI) + + MOVQ reserved3+72(FP), SI + ADDQ $64, SI + CMPQ reserved2+64(FP), SI + JNE loop0 + +done_hash: + RET + +// Constants table +DATA constants<>+0x0(SB)/8, $0x71374491428a2f98 +DATA constants<>+0x8(SB)/8, $0xe9b5dba5b5c0fbcf +DATA constants<>+0x10(SB)/8, $0x59f111f13956c25b +DATA constants<>+0x18(SB)/8, $0xab1c5ed5923f82a4 +DATA constants<>+0x20(SB)/8, $0x12835b01d807aa98 +DATA constants<>+0x28(SB)/8, $0x550c7dc3243185be +DATA constants<>+0x30(SB)/8, $0x80deb1fe72be5d74 +DATA constants<>+0x38(SB)/8, $0xc19bf1749bdc06a7 +DATA constants<>+0x40(SB)/8, $0xefbe4786e49b69c1 +DATA constants<>+0x48(SB)/8, $0x240ca1cc0fc19dc6 +DATA constants<>+0x50(SB)/8, $0x4a7484aa2de92c6f +DATA constants<>+0x58(SB)/8, $0x76f988da5cb0a9dc +DATA constants<>+0x60(SB)/8, $0xa831c66d983e5152 +DATA constants<>+0x68(SB)/8, $0xbf597fc7b00327c8 +DATA constants<>+0x70(SB)/8, $0xd5a79147c6e00bf3 +DATA constants<>+0x78(SB)/8, $0x1429296706ca6351 +DATA constants<>+0x80(SB)/8, $0x2e1b213827b70a85 +DATA constants<>+0x88(SB)/8, $0x53380d134d2c6dfc +DATA constants<>+0x90(SB)/8, $0x766a0abb650a7354 +DATA constants<>+0x98(SB)/8, $0x92722c8581c2c92e +DATA constants<>+0xa0(SB)/8, $0xa81a664ba2bfe8a1 +DATA constants<>+0xa8(SB)/8, $0xc76c51a3c24b8b70 +DATA constants<>+0xb0(SB)/8, $0xd6990624d192e819 +DATA constants<>+0xb8(SB)/8, $0x106aa070f40e3585 +DATA constants<>+0xc0(SB)/8, $0x1e376c0819a4c116 +DATA constants<>+0xc8(SB)/8, $0x34b0bcb52748774c +DATA constants<>+0xd0(SB)/8, $0x4ed8aa4a391c0cb3 +DATA constants<>+0xd8(SB)/8, $0x682e6ff35b9cca4f +DATA constants<>+0xe0(SB)/8, $0x78a5636f748f82ee +DATA constants<>+0xe8(SB)/8, $0x8cc7020884c87814 +DATA constants<>+0xf0(SB)/8, $0xa4506ceb90befffa +DATA constants<>+0xf8(SB)/8, $0xc67178f2bef9a3f7 + +DATA bflipMask<>+0x00(SB)/8, $0x0405060700010203 +DATA bflipMask<>+0x08(SB)/8, $0x0c0d0e0f08090a0b + +DATA shuf00BA<>+0x00(SB)/8, $0x0b0a090803020100 +DATA shuf00BA<>+0x08(SB)/8, $0xFFFFFFFFFFFFFFFF + +DATA shufDC00<>+0x00(SB)/8, $0xFFFFFFFFFFFFFFFF +DATA shufDC00<>+0x08(SB)/8, $0x0b0a090803020100 + +GLOBL constants<>(SB), 8, $256 +GLOBL bflipMask<>(SB), (NOPTR+RODATA), $16 +GLOBL shuf00BA<>(SB), (NOPTR+RODATA), $16 +GLOBL shufDC00<>(SB), (NOPTR+RODATA), $16 diff --git a/vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.go b/vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.go new file mode 100644 index 00000000..383189c8 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.go @@ -0,0 +1,6 @@ +//+build !noasm + +package sha256 + +//go:noescape +func blockSha(h *[8]uint32, message []uint8) diff --git a/vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.s b/vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.s new file mode 100644 index 00000000..909fc0ef --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockSha_amd64.s @@ -0,0 +1,266 @@ +//+build !noasm,!appengine + +// SHA intrinsic version of SHA256 + +// Kristofer Peterson, (C) 2018. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include "textflag.h" + +DATA K<>+0x00(SB)/4, $0x428a2f98 +DATA K<>+0x04(SB)/4, $0x71374491 +DATA K<>+0x08(SB)/4, $0xb5c0fbcf +DATA K<>+0x0c(SB)/4, $0xe9b5dba5 +DATA K<>+0x10(SB)/4, $0x3956c25b +DATA K<>+0x14(SB)/4, $0x59f111f1 +DATA K<>+0x18(SB)/4, $0x923f82a4 +DATA K<>+0x1c(SB)/4, $0xab1c5ed5 +DATA K<>+0x20(SB)/4, $0xd807aa98 +DATA K<>+0x24(SB)/4, $0x12835b01 +DATA K<>+0x28(SB)/4, $0x243185be +DATA K<>+0x2c(SB)/4, $0x550c7dc3 +DATA K<>+0x30(SB)/4, $0x72be5d74 +DATA K<>+0x34(SB)/4, $0x80deb1fe +DATA K<>+0x38(SB)/4, $0x9bdc06a7 +DATA K<>+0x3c(SB)/4, $0xc19bf174 +DATA K<>+0x40(SB)/4, $0xe49b69c1 +DATA K<>+0x44(SB)/4, $0xefbe4786 +DATA K<>+0x48(SB)/4, $0x0fc19dc6 +DATA K<>+0x4c(SB)/4, $0x240ca1cc +DATA K<>+0x50(SB)/4, $0x2de92c6f +DATA K<>+0x54(SB)/4, $0x4a7484aa +DATA K<>+0x58(SB)/4, $0x5cb0a9dc +DATA K<>+0x5c(SB)/4, $0x76f988da +DATA K<>+0x60(SB)/4, $0x983e5152 +DATA K<>+0x64(SB)/4, $0xa831c66d +DATA K<>+0x68(SB)/4, $0xb00327c8 +DATA K<>+0x6c(SB)/4, $0xbf597fc7 +DATA K<>+0x70(SB)/4, $0xc6e00bf3 +DATA K<>+0x74(SB)/4, $0xd5a79147 +DATA K<>+0x78(SB)/4, $0x06ca6351 +DATA K<>+0x7c(SB)/4, $0x14292967 +DATA K<>+0x80(SB)/4, $0x27b70a85 +DATA K<>+0x84(SB)/4, $0x2e1b2138 +DATA K<>+0x88(SB)/4, $0x4d2c6dfc +DATA K<>+0x8c(SB)/4, $0x53380d13 +DATA K<>+0x90(SB)/4, $0x650a7354 +DATA K<>+0x94(SB)/4, $0x766a0abb +DATA K<>+0x98(SB)/4, $0x81c2c92e +DATA K<>+0x9c(SB)/4, $0x92722c85 +DATA K<>+0xa0(SB)/4, $0xa2bfe8a1 +DATA K<>+0xa4(SB)/4, $0xa81a664b +DATA K<>+0xa8(SB)/4, $0xc24b8b70 +DATA K<>+0xac(SB)/4, $0xc76c51a3 +DATA K<>+0xb0(SB)/4, $0xd192e819 +DATA K<>+0xb4(SB)/4, $0xd6990624 +DATA K<>+0xb8(SB)/4, $0xf40e3585 +DATA K<>+0xbc(SB)/4, $0x106aa070 +DATA K<>+0xc0(SB)/4, $0x19a4c116 +DATA K<>+0xc4(SB)/4, $0x1e376c08 +DATA K<>+0xc8(SB)/4, $0x2748774c +DATA K<>+0xcc(SB)/4, $0x34b0bcb5 +DATA K<>+0xd0(SB)/4, $0x391c0cb3 +DATA K<>+0xd4(SB)/4, $0x4ed8aa4a +DATA K<>+0xd8(SB)/4, $0x5b9cca4f +DATA K<>+0xdc(SB)/4, $0x682e6ff3 +DATA K<>+0xe0(SB)/4, $0x748f82ee +DATA K<>+0xe4(SB)/4, $0x78a5636f +DATA K<>+0xe8(SB)/4, $0x84c87814 +DATA K<>+0xec(SB)/4, $0x8cc70208 +DATA K<>+0xf0(SB)/4, $0x90befffa +DATA K<>+0xf4(SB)/4, $0xa4506ceb +DATA K<>+0xf8(SB)/4, $0xbef9a3f7 +DATA K<>+0xfc(SB)/4, $0xc67178f2 +GLOBL K<>(SB), RODATA|NOPTR, $256 + +DATA SHUF_MASK<>+0x00(SB)/8, $0x0405060700010203 +DATA SHUF_MASK<>+0x08(SB)/8, $0x0c0d0e0f08090a0b +GLOBL SHUF_MASK<>(SB), RODATA|NOPTR, $16 + +// Register Usage +// BX base address of constant table (constant) +// DX hash_state (constant) +// SI hash_data.data +// DI hash_data.data + hash_data.length - 64 (constant) +// X0 scratch +// X1 scratch +// X2 working hash state // ABEF +// X3 working hash state // CDGH +// X4 first 16 bytes of block +// X5 second 16 bytes of block +// X6 third 16 bytes of block +// X7 fourth 16 bytes of block +// X12 saved hash state // ABEF +// X13 saved hash state // CDGH +// X15 data shuffle mask (constant) + +TEXT ·blockSha(SB), NOSPLIT, $0-32 + MOVQ h+0(FP), DX + MOVQ message_base+8(FP), SI + MOVQ message_len+16(FP), DI + LEAQ -64(SI)(DI*1), DI + MOVOU (DX), X2 + MOVOU 16(DX), X1 + MOVO X2, X3 + PUNPCKLLQ X1, X2 + PUNPCKHLQ X1, X3 + PSHUFD $0x27, X2, X2 + PSHUFD $0x27, X3, X3 + MOVO SHUF_MASK<>(SB), X15 + LEAQ K<>(SB), BX + + JMP TEST + +LOOP: + MOVO X2, X12 + MOVO X3, X13 + + // load block and shuffle + MOVOU (SI), X4 + MOVOU 16(SI), X5 + MOVOU 32(SI), X6 + MOVOU 48(SI), X7 + PSHUFB X15, X4 + PSHUFB X15, X5 + PSHUFB X15, X6 + PSHUFB X15, X7 + +#define ROUND456 \ + PADDL X5, X0 \ + LONG $0xdacb380f \ // SHA256RNDS2 XMM3, XMM2 + MOVO X5, X1 \ + LONG $0x0f3a0f66; WORD $0x04cc \ // PALIGNR XMM1, XMM4, 4 + PADDL X1, X6 \ + LONG $0xf5cd380f \ // SHA256MSG2 XMM6, XMM5 + PSHUFD $0x4e, X0, X0 \ + LONG $0xd3cb380f \ // SHA256RNDS2 XMM2, XMM3 + LONG $0xe5cc380f // SHA256MSG1 XMM4, XMM5 + +#define ROUND567 \ + PADDL X6, X0 \ + LONG $0xdacb380f \ // SHA256RNDS2 XMM3, XMM2 + MOVO X6, X1 \ + LONG $0x0f3a0f66; WORD $0x04cd \ // PALIGNR XMM1, XMM5, 4 + PADDL X1, X7 \ + LONG $0xfecd380f \ // SHA256MSG2 XMM7, XMM6 + PSHUFD $0x4e, X0, X0 \ + LONG $0xd3cb380f \ // SHA256RNDS2 XMM2, XMM3 + LONG $0xeecc380f // SHA256MSG1 XMM5, XMM6 + +#define ROUND674 \ + PADDL X7, X0 \ + LONG $0xdacb380f \ // SHA256RNDS2 XMM3, XMM2 + MOVO X7, X1 \ + LONG $0x0f3a0f66; WORD $0x04ce \ // PALIGNR XMM1, XMM6, 4 + PADDL X1, X4 \ + LONG $0xe7cd380f \ // SHA256MSG2 XMM4, XMM7 + PSHUFD $0x4e, X0, X0 \ + LONG $0xd3cb380f \ // SHA256RNDS2 XMM2, XMM3 + LONG $0xf7cc380f // SHA256MSG1 XMM6, XMM7 + +#define ROUND745 \ + PADDL X4, X0 \ + LONG $0xdacb380f \ // SHA256RNDS2 XMM3, XMM2 + MOVO X4, X1 \ + LONG $0x0f3a0f66; WORD $0x04cf \ // PALIGNR XMM1, XMM7, 4 + PADDL X1, X5 \ + LONG $0xeccd380f \ // SHA256MSG2 XMM5, XMM4 + PSHUFD $0x4e, X0, X0 \ + LONG $0xd3cb380f \ // SHA256RNDS2 XMM2, XMM3 + LONG $0xfccc380f // SHA256MSG1 XMM7, XMM4 + + // rounds 0-3 + MOVO (BX), X0 + PADDL X4, X0 + LONG $0xdacb380f // SHA256RNDS2 XMM3, XMM2 + PSHUFD $0x4e, X0, X0 + LONG $0xd3cb380f // SHA256RNDS2 XMM2, XMM3 + + // rounds 4-7 + MOVO 1*16(BX), X0 + PADDL X5, X0 + LONG $0xdacb380f // SHA256RNDS2 XMM3, XMM2 + PSHUFD $0x4e, X0, X0 + LONG $0xd3cb380f // SHA256RNDS2 XMM2, XMM3 + LONG $0xe5cc380f // SHA256MSG1 XMM4, XMM5 + + // rounds 8-11 + MOVO 2*16(BX), X0 + PADDL X6, X0 + LONG $0xdacb380f // SHA256RNDS2 XMM3, XMM2 + PSHUFD $0x4e, X0, X0 + LONG $0xd3cb380f // SHA256RNDS2 XMM2, XMM3 + LONG $0xeecc380f // SHA256MSG1 XMM5, XMM6 + + MOVO 3*16(BX), X0; ROUND674 // rounds 12-15 + MOVO 4*16(BX), X0; ROUND745 // rounds 16-19 + MOVO 5*16(BX), X0; ROUND456 // rounds 20-23 + MOVO 6*16(BX), X0; ROUND567 // rounds 24-27 + MOVO 7*16(BX), X0; ROUND674 // rounds 28-31 + MOVO 8*16(BX), X0; ROUND745 // rounds 32-35 + MOVO 9*16(BX), X0; ROUND456 // rounds 36-39 + MOVO 10*16(BX), X0; ROUND567 // rounds 40-43 + MOVO 11*16(BX), X0; ROUND674 // rounds 44-47 + MOVO 12*16(BX), X0; ROUND745 // rounds 48-51 + + // rounds 52-55 + MOVO 13*16(BX), X0 + PADDL X5, X0 + LONG $0xdacb380f // SHA256RNDS2 XMM3, XMM2 + MOVO X5, X1 + LONG $0x0f3a0f66; WORD $0x04cc // PALIGNR XMM1, XMM4, 4 + PADDL X1, X6 + LONG $0xf5cd380f // SHA256MSG2 XMM6, XMM5 + PSHUFD $0x4e, X0, X0 + LONG $0xd3cb380f // SHA256RNDS2 XMM2, XMM3 + + // rounds 56-59 + MOVO 14*16(BX), X0 + PADDL X6, X0 + LONG $0xdacb380f // SHA256RNDS2 XMM3, XMM2 + MOVO X6, X1 + LONG $0x0f3a0f66; WORD $0x04cd // PALIGNR XMM1, XMM5, 4 + PADDL X1, X7 + LONG $0xfecd380f // SHA256MSG2 XMM7, XMM6 + PSHUFD $0x4e, X0, X0 + LONG $0xd3cb380f // SHA256RNDS2 XMM2, XMM3 + + // rounds 60-63 + MOVO 15*16(BX), X0 + PADDL X7, X0 + LONG $0xdacb380f // SHA256RNDS2 XMM3, XMM2 + PSHUFD $0x4e, X0, X0 + LONG $0xd3cb380f // SHA256RNDS2 XMM2, XMM3 + + PADDL X12, X2 + PADDL X13, X3 + + ADDQ $64, SI + +TEST: + CMPQ SI, DI + JBE LOOP + + PSHUFD $0x4e, X3, X0 + LONG $0x0e3a0f66; WORD $0xf0c2 // PBLENDW XMM0, XMM2, 0xf0 + PSHUFD $0x4e, X2, X1 + LONG $0x0e3a0f66; WORD $0x0fcb // PBLENDW XMM1, XMM3, 0x0f + PSHUFD $0x1b, X0, X0 + PSHUFD $0x1b, X1, X1 + + MOVOU X0, (DX) + MOVOU X1, 16(DX) + + RET diff --git a/vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.go b/vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.go new file mode 100644 index 00000000..54abbb0f --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.go @@ -0,0 +1,22 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +//go:noescape +func blockSsse(h []uint32, message []uint8, reserved0, reserved1, reserved2, reserved3 uint64) diff --git a/vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.s b/vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.s new file mode 100644 index 00000000..7afb45c8 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256blockSsse_amd64.s @@ -0,0 +1,429 @@ +//+build !noasm,!appengine + +// SHA256 implementation for SSSE3 + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// This code is based on an Intel White-Paper: +// "Fast SHA-256 Implementations on Intel Architecture Processors" +// +// together with the reference implementation from the following authors: +// James Guilford +// Kirk Yap +// Tim Chen +// +// For Golang it has been converted to Plan 9 assembly with the help of +// github.com/minio/asm2plan9s to assemble Intel instructions to their Plan9 +// equivalents +// + +#include "textflag.h" + +#define ROTATE_XS \ + MOVOU X4, X15 \ + MOVOU X5, X4 \ + MOVOU X6, X5 \ + MOVOU X7, X6 \ + MOVOU X15, X7 + +// compute s0 four at a time and s1 two at a time +// compute W[-16] + W[-7] 4 at a time +#define FOUR_ROUNDS_AND_SCHED(a, b, c, d, e, f, g, h) \ + MOVL e, R13 \ // y0 = e + ROLL $18, R13 \ // y0 = e >> (25-11) + MOVL a, R14 \ // y1 = a + MOVOU X7, X0 \ + LONG $0x0f3a0f66; WORD $0x04c6 \ // PALIGNR XMM0,XMM6,0x4 /* XTMP0 = W[-7] */ + ROLL $23, R14 \ // y1 = a >> (22-13) + XORL e, R13 \ // y0 = e ^ (e >> (25-11)) + MOVL f, R15 \ // y2 = f + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + XORL a, R14 \ // y1 = a ^ (a >> (22-13) + XORL g, R15 \ // y2 = f^g + LONG $0xc4fe0f66 \ // PADDD XMM0,XMM4 /* XTMP0 = W[-7] + W[-16] */ + XORL e, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6) ) + ANDL e, R15 \ // y2 = (f^g)&e + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + \ + \ // compute s0 + \ + MOVOU X5, X1 \ + LONG $0x0f3a0f66; WORD $0x04cc \ // PALIGNR XMM1,XMM4,0x4 /* XTMP1 = W[-15] */ + XORL a, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + XORL g, R15 \ // y2 = CH = ((f^g)&e)^g + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL R13, R15 \ // y2 = S1 + CH + ADDL _xfer+48(FP), R15 \ // y2 = k + w + S1 + CH + MOVL a, R13 \ // y0 = a + ADDL R15, h \ // h = h + S1 + CH + k + w + \ // ROTATE_ARGS + MOVL a, R15 \ // y2 = a + MOVOU X1, X2 \ + LONG $0xd2720f66; BYTE $0x07 \ // PSRLD XMM2,0x7 /* */ + ORL c, R13 \ // y0 = a|c + ADDL h, d \ // d = d + h + S1 + CH + k + w + ANDL c, R15 \ // y2 = a&c + MOVOU X1, X3 \ + LONG $0xf3720f66; BYTE $0x19 \ // PSLLD XMM3,0x19 /* */ + ANDL b, R13 \ // y0 = (a|c)&b + ADDL R14, h \ // h = h + S1 + CH + k + w + S0 + LONG $0xdaeb0f66 \ // POR XMM3,XMM2 /* XTMP1 = W[-15] MY_ROR 7 */ + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, h \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + MOVL d, R13 \ // y0 = e + MOVL h, R14 \ // y1 = a + ROLL $18, R13 \ // y0 = e >> (25-11) + XORL d, R13 \ // y0 = e ^ (e >> (25-11)) + MOVL e, R15 \ // y2 = f + ROLL $23, R14 \ // y1 = a >> (22-13) + MOVOU X1, X2 \ + LONG $0xd2720f66; BYTE $0x12 \ // PSRLD XMM2,0x12 /* */ + XORL h, R14 \ // y1 = a ^ (a >> (22-13) + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + XORL f, R15 \ // y2 = f^g + MOVOU X1, X8 \ + LONG $0x720f4166; WORD $0x03d0 \ // PSRLD XMM8,0x3 /* XTMP4 = W[-15] >> 3 */ + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + XORL d, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ANDL d, R15 \ // y2 = (f^g)&e + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + LONG $0xf1720f66; BYTE $0x0e \ // PSLLD XMM1,0xe /* */ + XORL h, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + XORL f, R15 \ // y2 = CH = ((f^g)&e)^g + LONG $0xd9ef0f66 \ // PXOR XMM3,XMM1 /* */ + ADDL R13, R15 \ // y2 = S1 + CH + ADDL _xfer+52(FP), R15 \ // y2 = k + w + S1 + CH + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + LONG $0xdaef0f66 \ // PXOR XMM3,XMM2 /* XTMP1 = W[-15] MY_ROR 7 ^ W[-15] MY_ROR */ + MOVL h, R13 \ // y0 = a + ADDL R15, g \ // h = h + S1 + CH + k + w + MOVL h, R15 \ // y2 = a + MOVOU X3, X1 \ + LONG $0xef0f4166; BYTE $0xc8 \ // PXOR XMM1,XMM8 /* XTMP1 = s0 */ + ORL b, R13 \ // y0 = a|c + ADDL g, c \ // d = d + h + S1 + CH + k + w + ANDL b, R15 \ // y2 = a&c + \ + \ // compute low s1 + \ + LONG $0xd7700f66; BYTE $0xfa \ // PSHUFD XMM2,XMM7,0xfa /* XTMP2 = W[-2] {BBAA} */ + ANDL a, R13 \ // y0 = (a|c)&b + ADDL R14, g \ // h = h + S1 + CH + k + w + S0 + LONG $0xc1fe0f66 \ // PADDD XMM0,XMM1 /* XTMP0 = W[-16] + W[-7] + s0 */ + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, g \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + MOVL c, R13 \ // y0 = e + MOVL g, R14 \ // y1 = a + ROLL $18, R13 \ // y0 = e >> (25-11) + XORL c, R13 \ // y0 = e ^ (e >> (25-11)) + ROLL $23, R14 \ // y1 = a >> (22-13) + MOVL d, R15 \ // y2 = f + XORL g, R14 \ // y1 = a ^ (a >> (22-13) + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + MOVOU X2, X8 \ + LONG $0x720f4166; WORD $0x0ad0 \ // PSRLD XMM8,0xa /* XTMP4 = W[-2] >> 10 {BBAA} */ + XORL e, R15 \ // y2 = f^g + MOVOU X2, X3 \ + LONG $0xd3730f66; BYTE $0x13 \ // PSRLQ XMM3,0x13 /* XTMP3 = W[-2] MY_ROR 19 {xBxA} */ + XORL c, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ANDL c, R15 \ // y2 = (f^g)&e + LONG $0xd2730f66; BYTE $0x11 \ // PSRLQ XMM2,0x11 /* XTMP2 = W[-2] MY_ROR 17 {xBxA} */ + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + XORL g, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + XORL e, R15 \ // y2 = CH = ((f^g)&e)^g + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + LONG $0xd3ef0f66 \ // PXOR XMM2,XMM3 /* */ + ADDL R13, R15 \ // y2 = S1 + CH + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL _xfer+56(FP), R15 \ // y2 = k + w + S1 + CH + LONG $0xef0f4466; BYTE $0xc2 \ // PXOR XMM8,XMM2 /* XTMP4 = s1 {xBxA} */ + MOVL g, R13 \ // y0 = a + ADDL R15, f \ // h = h + S1 + CH + k + w + MOVL g, R15 \ // y2 = a + LONG $0x380f4566; WORD $0xc200 \ // PSHUFB XMM8,XMM10 /* XTMP4 = s1 {00BA} */ + ORL a, R13 \ // y0 = a|c + ADDL f, b \ // d = d + h + S1 + CH + k + w + ANDL a, R15 \ // y2 = a&c + LONG $0xfe0f4166; BYTE $0xc0 \ // PADDD XMM0,XMM8 /* XTMP0 = {..., ..., W[1], W[0]} */ + ANDL h, R13 \ // y0 = (a|c)&b + ADDL R14, f \ // h = h + S1 + CH + k + w + S0 + \ + \ // compute high s1 + \ + LONG $0xd0700f66; BYTE $0x50 \ // PSHUFD XMM2,XMM0,0x50 /* XTMP2 = W[-2] {DDCC} */ + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, f \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + MOVL b, R13 \ // y0 = e + ROLL $18, R13 \ // y0 = e >> (25-11) + MOVL f, R14 \ // y1 = a + ROLL $23, R14 \ // y1 = a >> (22-13) + XORL b, R13 \ // y0 = e ^ (e >> (25-11)) + MOVL c, R15 \ // y2 = f + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + MOVOU X2, X11 \ + LONG $0x720f4166; WORD $0x0ad3 \ // PSRLD XMM11,0xa /* XTMP5 = W[-2] >> 10 {DDCC} */ + XORL f, R14 \ // y1 = a ^ (a >> (22-13) + XORL d, R15 \ // y2 = f^g + MOVOU X2, X3 \ + LONG $0xd3730f66; BYTE $0x13 \ // PSRLQ XMM3,0x13 /* XTMP3 = W[-2] MY_ROR 19 {xDxC} */ + XORL b, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ANDL b, R15 \ // y2 = (f^g)&e + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + LONG $0xd2730f66; BYTE $0x11 \ // PSRLQ XMM2,0x11 /* XTMP2 = W[-2] MY_ROR 17 {xDxC} */ + XORL f, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + XORL d, R15 \ // y2 = CH = ((f^g)&e)^g + LONG $0xd3ef0f66 \ // PXOR XMM2,XMM3 /* */ + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL R13, R15 \ // y2 = S1 + CH + ADDL _xfer+60(FP), R15 \ // y2 = k + w + S1 + CH + LONG $0xef0f4466; BYTE $0xda \ // PXOR XMM11,XMM2 /* XTMP5 = s1 {xDxC} */ + MOVL f, R13 \ // y0 = a + ADDL R15, e \ // h = h + S1 + CH + k + w + MOVL f, R15 \ // y2 = a + LONG $0x380f4566; WORD $0xdc00 \ // PSHUFB XMM11,XMM12 /* XTMP5 = s1 {DC00} */ + ORL h, R13 \ // y0 = a|c + ADDL e, a \ // d = d + h + S1 + CH + k + w + ANDL h, R15 \ // y2 = a&c + MOVOU X11, X4 \ + LONG $0xe0fe0f66 \ // PADDD XMM4,XMM0 /* X0 = {W[3], W[2], W[1], W[0]} */ + ANDL g, R13 \ // y0 = (a|c)&b + ADDL R14, e \ // h = h + S1 + CH + k + w + S0 + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, e \ // h = h + S1 + CH + k + w + S0 + MAJ + \ // ROTATE_ARGS + ROTATE_XS + +#define DO_ROUND(a, b, c, d, e, f, g, h, offset) \ + MOVL e, R13 \ // y0 = e + ROLL $18, R13 \ // y0 = e >> (25-11) + MOVL a, R14 \ // y1 = a + XORL e, R13 \ // y0 = e ^ (e >> (25-11)) + ROLL $23, R14 \ // y1 = a >> (22-13) + MOVL f, R15 \ // y2 = f + XORL a, R14 \ // y1 = a ^ (a >> (22-13) + ROLL $27, R13 \ // y0 = (e >> (11-6)) ^ (e >> (25-6)) + XORL g, R15 \ // y2 = f^g + XORL e, R13 \ // y0 = e ^ (e >> (11-6)) ^ (e >> (25-6)) + ROLL $21, R14 \ // y1 = (a >> (13-2)) ^ (a >> (22-2)) + ANDL e, R15 \ // y2 = (f^g)&e + XORL a, R14 \ // y1 = a ^ (a >> (13-2)) ^ (a >> (22-2)) + ROLL $26, R13 \ // y0 = S1 = (e>>6) & (e>>11) ^ (e>>25) + XORL g, R15 \ // y2 = CH = ((f^g)&e)^g + ADDL R13, R15 \ // y2 = S1 + CH + ROLL $30, R14 \ // y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22) + ADDL _xfer+offset(FP), R15 \ // y2 = k + w + S1 + CH + MOVL a, R13 \ // y0 = a + ADDL R15, h \ // h = h + S1 + CH + k + w + MOVL a, R15 \ // y2 = a + ORL c, R13 \ // y0 = a|c + ADDL h, d \ // d = d + h + S1 + CH + k + w + ANDL c, R15 \ // y2 = a&c + ANDL b, R13 \ // y0 = (a|c)&b + ADDL R14, h \ // h = h + S1 + CH + k + w + S0 + ORL R15, R13 \ // y0 = MAJ = (a|c)&b)|(a&c) + ADDL R13, h // h = h + S1 + CH + k + w + S0 + MAJ + +// func blockSsse(h []uint32, message []uint8, reserved0, reserved1, reserved2, reserved3 uint64) +TEXT ·blockSsse(SB), 7, $0-80 + + MOVQ h+0(FP), SI // SI: &h + MOVQ message_base+24(FP), R8 // &message + MOVQ message_len+32(FP), R9 // length of message + CMPQ R9, $0 + JEQ done_hash + ADDQ R8, R9 + MOVQ R9, reserved2+64(FP) // store end of message + + // Register definition + // a --> eax + // b --> ebx + // c --> ecx + // d --> r8d + // e --> edx + // f --> r9d + // g --> r10d + // h --> r11d + // + // y0 --> r13d + // y1 --> r14d + // y2 --> r15d + + MOVL (0*4)(SI), AX // a = H0 + MOVL (1*4)(SI), BX // b = H1 + MOVL (2*4)(SI), CX // c = H2 + MOVL (3*4)(SI), R8 // d = H3 + MOVL (4*4)(SI), DX // e = H4 + MOVL (5*4)(SI), R9 // f = H5 + MOVL (6*4)(SI), R10 // g = H6 + MOVL (7*4)(SI), R11 // h = H7 + + MOVOU bflipMask<>(SB), X13 + MOVOU shuf00BA<>(SB), X10 // shuffle xBxA -> 00BA + MOVOU shufDC00<>(SB), X12 // shuffle xDxC -> DC00 + + MOVQ message_base+24(FP), SI // SI: &message + +loop0: + LEAQ constants<>(SB), BP + + // byte swap first 16 dwords + MOVOU 0*16(SI), X4 + LONG $0x380f4166; WORD $0xe500 // PSHUFB XMM4, XMM13 + MOVOU 1*16(SI), X5 + LONG $0x380f4166; WORD $0xed00 // PSHUFB XMM5, XMM13 + MOVOU 2*16(SI), X6 + LONG $0x380f4166; WORD $0xf500 // PSHUFB XMM6, XMM13 + MOVOU 3*16(SI), X7 + LONG $0x380f4166; WORD $0xfd00 // PSHUFB XMM7, XMM13 + + MOVQ SI, reserved3+72(FP) + MOVD $0x3, DI + + // Align + // nop WORD PTR [rax+rax*1+0x0] + + // schedule 48 input dwords, by doing 3 rounds of 16 each +loop1: + MOVOU X4, X9 + LONG $0xfe0f4466; WORD $0x004d // PADDD XMM9, 0[RBP] /* Add 1st constant to first part of message */ + MOVOU X9, reserved0+48(FP) + FOUR_ROUNDS_AND_SCHED(AX, BX, CX, R8, DX, R9, R10, R11) + + MOVOU X4, X9 + LONG $0xfe0f4466; WORD $0x104d // PADDD XMM9, 16[RBP] /* Add 2nd constant to message */ + MOVOU X9, reserved0+48(FP) + FOUR_ROUNDS_AND_SCHED(DX, R9, R10, R11, AX, BX, CX, R8) + + MOVOU X4, X9 + LONG $0xfe0f4466; WORD $0x204d // PADDD XMM9, 32[RBP] /* Add 3rd constant to message */ + MOVOU X9, reserved0+48(FP) + FOUR_ROUNDS_AND_SCHED(AX, BX, CX, R8, DX, R9, R10, R11) + + MOVOU X4, X9 + LONG $0xfe0f4466; WORD $0x304d // PADDD XMM9, 48[RBP] /* Add 4th constant to message */ + MOVOU X9, reserved0+48(FP) + ADDQ $64, BP + FOUR_ROUNDS_AND_SCHED(DX, R9, R10, R11, AX, BX, CX, R8) + + SUBQ $1, DI + JNE loop1 + + MOVD $0x2, DI + +loop2: + MOVOU X4, X9 + LONG $0xfe0f4466; WORD $0x004d // PADDD XMM9, 0[RBP] /* Add 1st constant to first part of message */ + MOVOU X9, reserved0+48(FP) + DO_ROUND( AX, BX, CX, R8, DX, R9, R10, R11, 48) + DO_ROUND(R11, AX, BX, CX, R8, DX, R9, R10, 52) + DO_ROUND(R10, R11, AX, BX, CX, R8, DX, R9, 56) + DO_ROUND( R9, R10, R11, AX, BX, CX, R8, DX, 60) + + MOVOU X5, X9 + LONG $0xfe0f4466; WORD $0x104d // PADDD XMM9, 16[RBP] /* Add 2nd constant to message */ + MOVOU X9, reserved0+48(FP) + ADDQ $32, BP + DO_ROUND( DX, R9, R10, R11, AX, BX, CX, R8, 48) + DO_ROUND( R8, DX, R9, R10, R11, AX, BX, CX, 52) + DO_ROUND( CX, R8, DX, R9, R10, R11, AX, BX, 56) + DO_ROUND( BX, CX, R8, DX, R9, R10, R11, AX, 60) + + MOVOU X6, X4 + MOVOU X7, X5 + + SUBQ $1, DI + JNE loop2 + + MOVQ h+0(FP), SI // SI: &h + ADDL (0*4)(SI), AX // H0 = a + H0 + MOVL AX, (0*4)(SI) + ADDL (1*4)(SI), BX // H1 = b + H1 + MOVL BX, (1*4)(SI) + ADDL (2*4)(SI), CX // H2 = c + H2 + MOVL CX, (2*4)(SI) + ADDL (3*4)(SI), R8 // H3 = d + H3 + MOVL R8, (3*4)(SI) + ADDL (4*4)(SI), DX // H4 = e + H4 + MOVL DX, (4*4)(SI) + ADDL (5*4)(SI), R9 // H5 = f + H5 + MOVL R9, (5*4)(SI) + ADDL (6*4)(SI), R10 // H6 = g + H6 + MOVL R10, (6*4)(SI) + ADDL (7*4)(SI), R11 // H7 = h + H7 + MOVL R11, (7*4)(SI) + + MOVQ reserved3+72(FP), SI + ADDQ $64, SI + CMPQ reserved2+64(FP), SI + JNE loop0 + +done_hash: + RET + +// Constants table +DATA constants<>+0x0(SB)/8, $0x71374491428a2f98 +DATA constants<>+0x8(SB)/8, $0xe9b5dba5b5c0fbcf +DATA constants<>+0x10(SB)/8, $0x59f111f13956c25b +DATA constants<>+0x18(SB)/8, $0xab1c5ed5923f82a4 +DATA constants<>+0x20(SB)/8, $0x12835b01d807aa98 +DATA constants<>+0x28(SB)/8, $0x550c7dc3243185be +DATA constants<>+0x30(SB)/8, $0x80deb1fe72be5d74 +DATA constants<>+0x38(SB)/8, $0xc19bf1749bdc06a7 +DATA constants<>+0x40(SB)/8, $0xefbe4786e49b69c1 +DATA constants<>+0x48(SB)/8, $0x240ca1cc0fc19dc6 +DATA constants<>+0x50(SB)/8, $0x4a7484aa2de92c6f +DATA constants<>+0x58(SB)/8, $0x76f988da5cb0a9dc +DATA constants<>+0x60(SB)/8, $0xa831c66d983e5152 +DATA constants<>+0x68(SB)/8, $0xbf597fc7b00327c8 +DATA constants<>+0x70(SB)/8, $0xd5a79147c6e00bf3 +DATA constants<>+0x78(SB)/8, $0x1429296706ca6351 +DATA constants<>+0x80(SB)/8, $0x2e1b213827b70a85 +DATA constants<>+0x88(SB)/8, $0x53380d134d2c6dfc +DATA constants<>+0x90(SB)/8, $0x766a0abb650a7354 +DATA constants<>+0x98(SB)/8, $0x92722c8581c2c92e +DATA constants<>+0xa0(SB)/8, $0xa81a664ba2bfe8a1 +DATA constants<>+0xa8(SB)/8, $0xc76c51a3c24b8b70 +DATA constants<>+0xb0(SB)/8, $0xd6990624d192e819 +DATA constants<>+0xb8(SB)/8, $0x106aa070f40e3585 +DATA constants<>+0xc0(SB)/8, $0x1e376c0819a4c116 +DATA constants<>+0xc8(SB)/8, $0x34b0bcb52748774c +DATA constants<>+0xd0(SB)/8, $0x4ed8aa4a391c0cb3 +DATA constants<>+0xd8(SB)/8, $0x682e6ff35b9cca4f +DATA constants<>+0xe0(SB)/8, $0x78a5636f748f82ee +DATA constants<>+0xe8(SB)/8, $0x8cc7020884c87814 +DATA constants<>+0xf0(SB)/8, $0xa4506ceb90befffa +DATA constants<>+0xf8(SB)/8, $0xc67178f2bef9a3f7 + +DATA bflipMask<>+0x00(SB)/8, $0x0405060700010203 +DATA bflipMask<>+0x08(SB)/8, $0x0c0d0e0f08090a0b + +DATA shuf00BA<>+0x00(SB)/8, $0x0b0a090803020100 +DATA shuf00BA<>+0x08(SB)/8, $0xFFFFFFFFFFFFFFFF + +DATA shufDC00<>+0x00(SB)/8, $0xFFFFFFFFFFFFFFFF +DATA shufDC00<>+0x08(SB)/8, $0x0b0a090803020100 + +GLOBL constants<>(SB), 8, $256 +GLOBL bflipMask<>(SB), (NOPTR+RODATA), $16 +GLOBL shuf00BA<>(SB), (NOPTR+RODATA), $16 +GLOBL shufDC00<>(SB), (NOPTR+RODATA), $16 diff --git a/vendor/github.com/minio/sha256-simd/sha256block_386.go b/vendor/github.com/minio/sha256-simd/sha256block_386.go new file mode 100644 index 00000000..a4153b91 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256block_386.go @@ -0,0 +1,25 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +func blockArmGo(dig *digest, p []byte) {} +func blockAvx2Go(dig *digest, p []byte) {} +func blockAvxGo(dig *digest, p []byte) {} +func blockSsseGo(dig *digest, p []byte) {} +func blockShaGo(dig *digest, p []byte) {} diff --git a/vendor/github.com/minio/sha256-simd/sha256block_amd64.go b/vendor/github.com/minio/sha256-simd/sha256block_amd64.go new file mode 100644 index 00000000..8d341fcf --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256block_amd64.go @@ -0,0 +1,53 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +func blockArmGo(dig *digest, p []byte) {} + +func blockAvxGo(dig *digest, p []byte) { + + h := []uint32{dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7]} + + blockAvx(h[:], p[:], 0, 0, 0, 0) + + dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7] = h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7] +} + +func blockAvx2Go(dig *digest, p []byte) { + + h := []uint32{dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7]} + + blockAvx2(h[:], p[:]) + + dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7] = h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7] +} + +func blockSsseGo(dig *digest, p []byte) { + + h := []uint32{dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7]} + + blockSsse(h[:], p[:], 0, 0, 0, 0) + + dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7] = h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7] +} + +func blockShaGo(dig *digest, p []byte) { + + blockSha(&dig.h, p) +} diff --git a/vendor/github.com/minio/sha256-simd/sha256block_arm.go b/vendor/github.com/minio/sha256-simd/sha256block_arm.go new file mode 100644 index 00000000..1191c086 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256block_arm.go @@ -0,0 +1,25 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +func blockAvx2Go(dig *digest, p []byte) {} +func blockAvxGo(dig *digest, p []byte) {} +func blockSsseGo(dig *digest, p []byte) {} +func blockShaGo(dig *digest, p []byte) {} +func blockArmGo(dig *digest, p []byte) {} diff --git a/vendor/github.com/minio/sha256-simd/sha256block_arm64.go b/vendor/github.com/minio/sha256-simd/sha256block_arm64.go new file mode 100644 index 00000000..4441b0c2 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256block_arm64.go @@ -0,0 +1,37 @@ +//+build !noasm + +/* + * Minio Cloud Storage, (C) 2016 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +func blockAvx2Go(dig *digest, p []byte) {} +func blockAvxGo(dig *digest, p []byte) {} +func blockSsseGo(dig *digest, p []byte) {} +func blockShaGo(dig *digest, p []byte) {} + +//go:noescape +func blockArm(h []uint32, message []uint8) + +func blockArmGo(dig *digest, p []byte) { + + h := []uint32{dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7]} + + blockArm(h[:], p[:]) + + dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7] = h[0], h[1], h[2], h[3], h[4], + h[5], h[6], h[7] +} diff --git a/vendor/github.com/minio/sha256-simd/sha256block_arm64.s b/vendor/github.com/minio/sha256-simd/sha256block_arm64.s new file mode 100644 index 00000000..db816ac6 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256block_arm64.s @@ -0,0 +1,192 @@ +//+build !noasm !appengine + +// ARM64 version of SHA256 + +// +// Minio Cloud Storage, (C) 2016 Minio, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// Based on implementation as found in https://github.com/jocover/sha256-armv8 +// +// Use github.com/minio/asm2plan9s on this file to assemble ARM instructions to +// their Plan9 equivalents +// + +TEXT ·blockArm(SB), 7, $0 + MOVD h+0(FP), R0 + MOVD message+24(FP), R1 + MOVD lenmessage+32(FP), R2 // length of message + SUBS $64, R2 + BMI complete + + // Load constants table pointer + MOVD $·constants(SB), R3 + + // Cache constants table in registers v16 - v31 + WORD $0x4cdf2870 // ld1 {v16.4s-v19.4s}, [x3], #64 + WORD $0x4cdf7800 // ld1 {v0.4s}, [x0], #16 + WORD $0x4cdf2874 // ld1 {v20.4s-v23.4s}, [x3], #64 + + WORD $0x4c407801 // ld1 {v1.4s}, [x0] + WORD $0x4cdf2878 // ld1 {v24.4s-v27.4s}, [x3], #64 + WORD $0xd1004000 // sub x0, x0, #0x10 + WORD $0x4cdf287c // ld1 {v28.4s-v31.4s}, [x3], #64 + +loop: + // Main loop + WORD $0x4cdf2025 // ld1 {v5.16b-v8.16b}, [x1], #64 + WORD $0x4ea01c02 // mov v2.16b, v0.16b + WORD $0x4ea11c23 // mov v3.16b, v1.16b + WORD $0x6e2008a5 // rev32 v5.16b, v5.16b + WORD $0x6e2008c6 // rev32 v6.16b, v6.16b + WORD $0x4eb084a9 // add v9.4s, v5.4s, v16.4s + WORD $0x6e2008e7 // rev32 v7.16b, v7.16b + WORD $0x4eb184ca // add v10.4s, v6.4s, v17.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e2828c5 // sha256su0 v5.4s, v6.4s + WORD $0x6e200908 // rev32 v8.16b, v8.16b + WORD $0x4eb284e9 // add v9.4s, v7.4s, v18.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x5e2828e6 // sha256su0 v6.4s, v7.4s + WORD $0x5e0860e5 // sha256su1 v5.4s, v7.4s, v8.4s + WORD $0x4eb3850a // add v10.4s, v8.4s, v19.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e282907 // sha256su0 v7.4s, v8.4s + WORD $0x5e056106 // sha256su1 v6.4s, v8.4s, v5.4s + WORD $0x4eb484a9 // add v9.4s, v5.4s, v20.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x5e2828a8 // sha256su0 v8.4s, v5.4s + WORD $0x5e0660a7 // sha256su1 v7.4s, v5.4s, v6.4s + WORD $0x4eb584ca // add v10.4s, v6.4s, v21.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e2828c5 // sha256su0 v5.4s, v6.4s + WORD $0x5e0760c8 // sha256su1 v8.4s, v6.4s, v7.4s + WORD $0x4eb684e9 // add v9.4s, v7.4s, v22.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x5e2828e6 // sha256su0 v6.4s, v7.4s + WORD $0x5e0860e5 // sha256su1 v5.4s, v7.4s, v8.4s + WORD $0x4eb7850a // add v10.4s, v8.4s, v23.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e282907 // sha256su0 v7.4s, v8.4s + WORD $0x5e056106 // sha256su1 v6.4s, v8.4s, v5.4s + WORD $0x4eb884a9 // add v9.4s, v5.4s, v24.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x5e2828a8 // sha256su0 v8.4s, v5.4s + WORD $0x5e0660a7 // sha256su1 v7.4s, v5.4s, v6.4s + WORD $0x4eb984ca // add v10.4s, v6.4s, v25.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e2828c5 // sha256su0 v5.4s, v6.4s + WORD $0x5e0760c8 // sha256su1 v8.4s, v6.4s, v7.4s + WORD $0x4eba84e9 // add v9.4s, v7.4s, v26.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x5e2828e6 // sha256su0 v6.4s, v7.4s + WORD $0x5e0860e5 // sha256su1 v5.4s, v7.4s, v8.4s + WORD $0x4ebb850a // add v10.4s, v8.4s, v27.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e282907 // sha256su0 v7.4s, v8.4s + WORD $0x5e056106 // sha256su1 v6.4s, v8.4s, v5.4s + WORD $0x4ebc84a9 // add v9.4s, v5.4s, v28.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x5e2828a8 // sha256su0 v8.4s, v5.4s + WORD $0x5e0660a7 // sha256su1 v7.4s, v5.4s, v6.4s + WORD $0x4ebd84ca // add v10.4s, v6.4s, v29.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x5e0760c8 // sha256su1 v8.4s, v6.4s, v7.4s + WORD $0x4ebe84e9 // add v9.4s, v7.4s, v30.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x4ebf850a // add v10.4s, v8.4s, v31.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e094062 // sha256h q2, q3, v9.4s + WORD $0x5e095083 // sha256h2 q3, q4, v9.4s + WORD $0x4ea21c44 // mov v4.16b, v2.16b + WORD $0x5e0a4062 // sha256h q2, q3, v10.4s + WORD $0x5e0a5083 // sha256h2 q3, q4, v10.4s + WORD $0x4ea38421 // add v1.4s, v1.4s, v3.4s + WORD $0x4ea28400 // add v0.4s, v0.4s, v2.4s + + SUBS $64, R2 + BPL loop + + // Store result + WORD $0x4c00a800 // st1 {v0.4s, v1.4s}, [x0] + +complete: + RET + +// Constants table +DATA ·constants+0x0(SB)/8, $0x71374491428a2f98 +DATA ·constants+0x8(SB)/8, $0xe9b5dba5b5c0fbcf +DATA ·constants+0x10(SB)/8, $0x59f111f13956c25b +DATA ·constants+0x18(SB)/8, $0xab1c5ed5923f82a4 +DATA ·constants+0x20(SB)/8, $0x12835b01d807aa98 +DATA ·constants+0x28(SB)/8, $0x550c7dc3243185be +DATA ·constants+0x30(SB)/8, $0x80deb1fe72be5d74 +DATA ·constants+0x38(SB)/8, $0xc19bf1749bdc06a7 +DATA ·constants+0x40(SB)/8, $0xefbe4786e49b69c1 +DATA ·constants+0x48(SB)/8, $0x240ca1cc0fc19dc6 +DATA ·constants+0x50(SB)/8, $0x4a7484aa2de92c6f +DATA ·constants+0x58(SB)/8, $0x76f988da5cb0a9dc +DATA ·constants+0x60(SB)/8, $0xa831c66d983e5152 +DATA ·constants+0x68(SB)/8, $0xbf597fc7b00327c8 +DATA ·constants+0x70(SB)/8, $0xd5a79147c6e00bf3 +DATA ·constants+0x78(SB)/8, $0x1429296706ca6351 +DATA ·constants+0x80(SB)/8, $0x2e1b213827b70a85 +DATA ·constants+0x88(SB)/8, $0x53380d134d2c6dfc +DATA ·constants+0x90(SB)/8, $0x766a0abb650a7354 +DATA ·constants+0x98(SB)/8, $0x92722c8581c2c92e +DATA ·constants+0xa0(SB)/8, $0xa81a664ba2bfe8a1 +DATA ·constants+0xa8(SB)/8, $0xc76c51a3c24b8b70 +DATA ·constants+0xb0(SB)/8, $0xd6990624d192e819 +DATA ·constants+0xb8(SB)/8, $0x106aa070f40e3585 +DATA ·constants+0xc0(SB)/8, $0x1e376c0819a4c116 +DATA ·constants+0xc8(SB)/8, $0x34b0bcb52748774c +DATA ·constants+0xd0(SB)/8, $0x4ed8aa4a391c0cb3 +DATA ·constants+0xd8(SB)/8, $0x682e6ff35b9cca4f +DATA ·constants+0xe0(SB)/8, $0x78a5636f748f82ee +DATA ·constants+0xe8(SB)/8, $0x8cc7020884c87814 +DATA ·constants+0xf0(SB)/8, $0xa4506ceb90befffa +DATA ·constants+0xf8(SB)/8, $0xc67178f2bef9a3f7 + +GLOBL ·constants(SB), 8, $256 + diff --git a/vendor/github.com/minio/sha256-simd/sha256block_other.go b/vendor/github.com/minio/sha256-simd/sha256block_other.go new file mode 100644 index 00000000..0930d2a2 --- /dev/null +++ b/vendor/github.com/minio/sha256-simd/sha256block_other.go @@ -0,0 +1,25 @@ +//+build noasm appengine ppc64 ppc64le mips mipsle mips64 mips64le s390x wasm + +/* + * Minio Cloud Storage, (C) 2019 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sha256 + +func blockAvx2Go(dig *digest, p []byte) {} +func blockAvxGo(dig *digest, p []byte) {} +func blockSsseGo(dig *digest, p []byte) {} +func blockShaGo(dig *digest, p []byte) {} +func blockArmGo(dig *digest, p []byte) {} diff --git a/vendor/github.com/mr-tron/base58/LICENSE b/vendor/github.com/mr-tron/base58/LICENSE new file mode 100644 index 00000000..cb7829a2 --- /dev/null +++ b/vendor/github.com/mr-tron/base58/LICENSE @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2017 Denis Subbotin +Copyright (c) 2017 Nika Jones +Copyright (c) 2017 Philip Schlump + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/mr-tron/base58/base58/DEPRECATED.md b/vendor/github.com/mr-tron/base58/base58/DEPRECATED.md new file mode 100644 index 00000000..0cc7ec72 --- /dev/null +++ b/vendor/github.com/mr-tron/base58/base58/DEPRECATED.md @@ -0,0 +1,4 @@ +Files from this directory was copied to level up directory +========================================================== + +Now all development will be on top level \ No newline at end of file diff --git a/vendor/github.com/mr-tron/base58/base58/alphabet.go b/vendor/github.com/mr-tron/base58/base58/alphabet.go new file mode 100644 index 00000000..a0f88783 --- /dev/null +++ b/vendor/github.com/mr-tron/base58/base58/alphabet.go @@ -0,0 +1,31 @@ +package base58 + +// Alphabet is a a b58 alphabet. +type Alphabet struct { + decode [128]int8 + encode [58]byte +} + +// NewAlphabet creates a new alphabet from the passed string. +// +// It panics if the passed string is not 58 bytes long or isn't valid ASCII. +func NewAlphabet(s string) *Alphabet { + if len(s) != 58 { + panic("base58 alphabets must be 58 bytes long") + } + ret := new(Alphabet) + copy(ret.encode[:], s) + for i := range ret.decode { + ret.decode[i] = -1 + } + for i, b := range ret.encode { + ret.decode[b] = int8(i) + } + return ret +} + +// BTCAlphabet is the bitcoin base58 alphabet. +var BTCAlphabet = NewAlphabet("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") + +// FlickrAlphabet is the flickr base58 alphabet. +var FlickrAlphabet = NewAlphabet("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ") diff --git a/vendor/github.com/mr-tron/base58/base58/base58.go b/vendor/github.com/mr-tron/base58/base58/base58.go new file mode 100644 index 00000000..b8810b7b --- /dev/null +++ b/vendor/github.com/mr-tron/base58/base58/base58.go @@ -0,0 +1,255 @@ +package base58 + +import ( + "fmt" + "math/big" +) + +var ( + bn0 = big.NewInt(0) + bn58 = big.NewInt(58) +) + +// Encode encodes the passed bytes into a base58 encoded string. +func Encode(bin []byte) string { + return FastBase58Encoding(bin) +} + +// EncodeAlphabet encodes the passed bytes into a base58 encoded string with the +// passed alphabet. +func EncodeAlphabet(bin []byte, alphabet *Alphabet) string { + return FastBase58EncodingAlphabet(bin, alphabet) +} + +// FastBase58Encoding encodes the passed bytes into a base58 encoded string. +func FastBase58Encoding(bin []byte) string { + return FastBase58EncodingAlphabet(bin, BTCAlphabet) +} + +// FastBase58EncodingAlphabet encodes the passed bytes into a base58 encoded +// string with the passed alphabet. +func FastBase58EncodingAlphabet(bin []byte, alphabet *Alphabet) string { + zero := alphabet.encode[0] + + binsz := len(bin) + var i, j, zcount, high int + var carry uint32 + + for zcount < binsz && bin[zcount] == 0 { + zcount++ + } + + size := (binsz-zcount)*138/100 + 1 + var buf = make([]byte, size) + + high = size - 1 + for i = zcount; i < binsz; i++ { + j = size - 1 + for carry = uint32(bin[i]); j > high || carry != 0; j-- { + carry = carry + 256*uint32(buf[j]) + buf[j] = byte(carry % 58) + carry /= 58 + } + high = j + } + + for j = 0; j < size && buf[j] == 0; j++ { + } + + var b58 = make([]byte, size-j+zcount) + + if zcount != 0 { + for i = 0; i < zcount; i++ { + b58[i] = zero + } + } + + for i = zcount; j < size; i++ { + b58[i] = alphabet.encode[buf[j]] + j++ + } + + return string(b58) +} + +// TrivialBase58Encoding encodes the passed bytes into a base58 encoded string +// (inefficiently). +func TrivialBase58Encoding(a []byte) string { + return TrivialBase58EncodingAlphabet(a, BTCAlphabet) +} + +// TrivialBase58EncodingAlphabet encodes the passed bytes into a base58 encoded +// string (inefficiently) with the passed alphabet. +func TrivialBase58EncodingAlphabet(a []byte, alphabet *Alphabet) string { + zero := alphabet.encode[0] + idx := len(a)*138/100 + 1 + buf := make([]byte, idx) + bn := new(big.Int).SetBytes(a) + var mo *big.Int + for bn.Cmp(bn0) != 0 { + bn, mo = bn.DivMod(bn, bn58, new(big.Int)) + idx-- + buf[idx] = alphabet.encode[mo.Int64()] + } + for i := range a { + if a[i] != 0 { + break + } + idx-- + buf[idx] = zero + } + return string(buf[idx:]) +} + +// Decode decodes the base58 encoded bytes. +func Decode(str string) ([]byte, error) { + return FastBase58Decoding(str) +} + +// DecodeAlphabet decodes the base58 encoded bytes using the given b58 alphabet. +func DecodeAlphabet(str string, alphabet *Alphabet) ([]byte, error) { + return FastBase58DecodingAlphabet(str, alphabet) +} + +// FastBase58Decoding decodes the base58 encoded bytes. +func FastBase58Decoding(str string) ([]byte, error) { + return FastBase58DecodingAlphabet(str, BTCAlphabet) +} + +// FastBase58DecodingAlphabet decodes the base58 encoded bytes using the given +// b58 alphabet. +func FastBase58DecodingAlphabet(str string, alphabet *Alphabet) ([]byte, error) { + if len(str) == 0 { + return nil, fmt.Errorf("zero length string") + } + + var ( + t uint64 + zmask, c uint32 + zcount int + + b58u = []rune(str) + b58sz = len(b58u) + + outisz = (b58sz + 3) / 4 // check to see if we need to change this buffer size to optimize + binu = make([]byte, (b58sz+3)*3) + bytesleft = b58sz % 4 + + zero = rune(alphabet.encode[0]) + ) + + if bytesleft > 0 { + zmask = (0xffffffff << uint32(bytesleft*8)) + } else { + bytesleft = 4 + } + + var outi = make([]uint32, outisz) + + for i := 0; i < b58sz && b58u[i] == zero; i++ { + zcount++ + } + + for _, r := range b58u { + if r > 127 { + return nil, fmt.Errorf("High-bit set on invalid digit") + } + if alphabet.decode[r] == -1 { + return nil, fmt.Errorf("Invalid base58 digit (%q)", r) + } + + c = uint32(alphabet.decode[r]) + + for j := (outisz - 1); j >= 0; j-- { + t = uint64(outi[j])*58 + uint64(c) + c = uint32(t>>32) & 0x3f + outi[j] = uint32(t & 0xffffffff) + } + + if c > 0 { + return nil, fmt.Errorf("Output number too big (carry to the next int32)") + } + + if outi[0]&zmask != 0 { + return nil, fmt.Errorf("Output number too big (last int32 filled too far)") + } + } + + // the nested for-loop below is the same as the original code: + // switch (bytesleft) { + // case 3: + // *(binu++) = (outi[0] & 0xff0000) >> 16; + // //-fallthrough + // case 2: + // *(binu++) = (outi[0] & 0xff00) >> 8; + // //-fallthrough + // case 1: + // *(binu++) = (outi[0] & 0xff); + // ++j; + // //-fallthrough + // default: + // break; + // } + // + // for (; j < outisz; ++j) + // { + // *(binu++) = (outi[j] >> 0x18) & 0xff; + // *(binu++) = (outi[j] >> 0x10) & 0xff; + // *(binu++) = (outi[j] >> 8) & 0xff; + // *(binu++) = (outi[j] >> 0) & 0xff; + // } + var j, cnt int + for j, cnt = 0, 0; j < outisz; j++ { + for mask := byte(bytesleft-1) * 8; mask <= 0x18; mask, cnt = mask-8, cnt+1 { + binu[cnt] = byte(outi[j] >> mask) + } + if j == 0 { + bytesleft = 4 // because it could be less than 4 the first time through + } + } + + for n, v := range binu { + if v > 0 { + start := n - zcount + if start < 0 { + start = 0 + } + return binu[start:cnt], nil + } + } + return binu[:cnt], nil +} + +// TrivialBase58Decoding decodes the base58 encoded bytes (inefficiently). +func TrivialBase58Decoding(str string) ([]byte, error) { + return TrivialBase58DecodingAlphabet(str, BTCAlphabet) +} + +// TrivialBase58DecodingAlphabet decodes the base58 encoded bytes +// (inefficiently) using the given b58 alphabet. +func TrivialBase58DecodingAlphabet(str string, alphabet *Alphabet) ([]byte, error) { + zero := alphabet.encode[0] + + var zcount int + for i := 0; i < len(str) && str[i] == zero; i++ { + zcount++ + } + leading := make([]byte, zcount) + + var padChar rune = -1 + src := []byte(str) + j := 0 + for ; j < len(src) && src[j] == byte(padChar); j++ { + } + + n := new(big.Int) + for i := range src[j:] { + c := alphabet.decode[src[i]] + if c == -1 { + return nil, fmt.Errorf("illegal base58 data at input index: %d", i) + } + n.Mul(n, bn58) + n.Add(n, big.NewInt(int64(c))) + } + return append(leading, n.Bytes()...), nil +} diff --git a/vendor/github.com/multiformats/go-base32/LICENSE b/vendor/github.com/multiformats/go-base32/LICENSE new file mode 100644 index 00000000..6a66aea5 --- /dev/null +++ b/vendor/github.com/multiformats/go-base32/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/multiformats/go-base32/base32.go b/vendor/github.com/multiformats/go-base32/base32.go new file mode 100644 index 00000000..768a2350 --- /dev/null +++ b/vendor/github.com/multiformats/go-base32/base32.go @@ -0,0 +1,505 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package base32 implements base32 encoding as specified by RFC 4648. +package base32 + +import ( + "io" + "strconv" +) + +/* + * Encodings + */ + +// An Encoding is a radix 32 encoding/decoding scheme, defined by a +// 32-character alphabet. The most common is the "base32" encoding +// introduced for SASL GSSAPI and standardized in RFC 4648. +// The alternate "base32hex" encoding is used in DNSSEC. +type Encoding struct { + encode string + decodeMap [256]byte + padChar rune +} + +// Alphabet returns the Base32 alphabet used +func (enc *Encoding) Alphabet() string { + return enc.encode +} + +const ( + StdPadding rune = '=' + NoPadding rune = -1 +) + +const encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" +const encodeHex = "0123456789ABCDEFGHIJKLMNOPQRSTUV" + +// NewEncoding returns a new Encoding defined by the given alphabet, +// which must be a 32-byte string. +func NewEncoding(encoder string) *Encoding { + e := new(Encoding) + e.padChar = StdPadding + e.encode = encoder + for i := 0; i < len(e.decodeMap); i++ { + e.decodeMap[i] = 0xFF + } + for i := 0; i < len(encoder); i++ { + e.decodeMap[encoder[i]] = byte(i) + } + return e +} + +// NewEncoding returns a new case insensitive Encoding defined by the +// given alphabet, which must be a 32-byte string. +func NewEncodingCI(encoder string) *Encoding { + e := new(Encoding) + e.padChar = StdPadding + e.encode = encoder + for i := 0; i < len(e.decodeMap); i++ { + e.decodeMap[i] = 0xFF + } + for i := 0; i < len(encoder); i++ { + e.decodeMap[asciiToLower(encoder[i])] = byte(i) + e.decodeMap[asciiToUpper(encoder[i])] = byte(i) + } + return e +} + +func asciiToLower(c byte) byte { + if c >= 'A' && c <= 'Z' { + return c + 32 + } + return c +} + +func asciiToUpper(c byte) byte { + if c >= 'a' && c <= 'z' { + return c - 32 + } + return c +} + +// WithPadding creates a new encoding identical to enc except +// with a specified padding character, or NoPadding to disable padding. +func (enc Encoding) WithPadding(padding rune) *Encoding { + enc.padChar = padding + return &enc +} + +// StdEncoding is the standard base32 encoding, as defined in +// RFC 4648. +var StdEncoding = NewEncodingCI(encodeStd) + +// HexEncoding is the ``Extended Hex Alphabet'' defined in RFC 4648. +// It is typically used in DNS. +var HexEncoding = NewEncodingCI(encodeHex) + +var RawStdEncoding = NewEncodingCI(encodeStd).WithPadding(NoPadding) +var RawHexEncoding = NewEncodingCI(encodeHex).WithPadding(NoPadding) + +/* + * Encoder + */ + +// Encode encodes src using the encoding enc, writing +// EncodedLen(len(src)) bytes to dst. +// +// The encoding pads the output to a multiple of 8 bytes, +// so Encode is not appropriate for use on individual blocks +// of a large data stream. Use NewEncoder() instead. +func (enc *Encoding) Encode(dst, src []byte) { + if len(src) == 0 { + return + } + + for len(src) > 0 { + var carry byte + + // Unpack 8x 5-bit source blocks into a 5 byte + // destination quantum + switch len(src) { + default: + dst[7] = enc.encode[src[4]&0x1F] + carry = src[4] >> 5 + fallthrough + case 4: + dst[6] = enc.encode[carry|(src[3]<<3)&0x1F] + dst[5] = enc.encode[(src[3]>>2)&0x1F] + carry = src[3] >> 7 + fallthrough + case 3: + dst[4] = enc.encode[carry|(src[2]<<1)&0x1F] + carry = (src[2] >> 4) & 0x1F + fallthrough + case 2: + dst[3] = enc.encode[carry|(src[1]<<4)&0x1F] + dst[2] = enc.encode[(src[1]>>1)&0x1F] + carry = (src[1] >> 6) & 0x1F + fallthrough + case 1: + dst[1] = enc.encode[carry|(src[0]<<2)&0x1F] + dst[0] = enc.encode[src[0]>>3] + } + + // Pad the final quantum + if len(src) < 5 { + if enc.padChar != NoPadding { + dst[7] = byte(enc.padChar) + if len(src) < 4 { + dst[6] = byte(enc.padChar) + dst[5] = byte(enc.padChar) + if len(src) < 3 { + dst[4] = byte(enc.padChar) + if len(src) < 2 { + dst[3] = byte(enc.padChar) + dst[2] = byte(enc.padChar) + } + } + } + } + break + } + src = src[5:] + dst = dst[8:] + } +} + +// EncodeToString returns the base32 encoding of src. +func (enc *Encoding) EncodeToString(src []byte) string { + buf := make([]byte, enc.EncodedLen(len(src))) + enc.Encode(buf, src) + return string(buf) +} + +type encoder struct { + err error + enc *Encoding + w io.Writer + buf [5]byte // buffered data waiting to be encoded + nbuf int // number of bytes in buf + out [1024]byte // output buffer +} + +func (e *encoder) Write(p []byte) (n int, err error) { + if e.err != nil { + return 0, e.err + } + + // Leading fringe. + if e.nbuf > 0 { + var i int + for i = 0; i < len(p) && e.nbuf < 5; i++ { + e.buf[e.nbuf] = p[i] + e.nbuf++ + } + n += i + p = p[i:] + if e.nbuf < 5 { + return + } + e.enc.Encode(e.out[0:], e.buf[0:]) + if _, e.err = e.w.Write(e.out[0:8]); e.err != nil { + return n, e.err + } + e.nbuf = 0 + } + + // Large interior chunks. + for len(p) >= 5 { + nn := len(e.out) / 8 * 5 + if nn > len(p) { + nn = len(p) + nn -= nn % 5 + } + e.enc.Encode(e.out[0:], p[0:nn]) + if _, e.err = e.w.Write(e.out[0 : nn/5*8]); e.err != nil { + return n, e.err + } + n += nn + p = p[nn:] + } + + // Trailing fringe. + for i := 0; i < len(p); i++ { + e.buf[i] = p[i] + } + e.nbuf = len(p) + n += len(p) + return +} + +// Close flushes any pending output from the encoder. +// It is an error to call Write after calling Close. +func (e *encoder) Close() error { + // If there's anything left in the buffer, flush it out + if e.err == nil && e.nbuf > 0 { + e.enc.Encode(e.out[0:], e.buf[0:e.nbuf]) + e.nbuf = 0 + _, e.err = e.w.Write(e.out[0:8]) + } + return e.err +} + +// NewEncoder returns a new base32 stream encoder. Data written to +// the returned writer will be encoded using enc and then written to w. +// Base32 encodings operate in 5-byte blocks; when finished +// writing, the caller must Close the returned encoder to flush any +// partially written blocks. +func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser { + return &encoder{enc: enc, w: w} +} + +// EncodedLen returns the length in bytes of the base32 encoding +// of an input buffer of length n. +func (enc *Encoding) EncodedLen(n int) int { + if enc.padChar == NoPadding { + return (n*8 + 4) / 5 // minimum # chars at 5 bits per char + } + return (n + 4) / 5 * 8 +} + +/* + * Decoder + */ + +type CorruptInputError int64 + +func (e CorruptInputError) Error() string { + return "illegal base32 data at input byte " + strconv.FormatInt(int64(e), 10) +} + +// decode is like Decode but returns an additional 'end' value, which +// indicates if end-of-message padding was encountered and thus any +// additional data is an error. This method assumes that src has been +// stripped of all supported whitespace ('\r' and '\n'). +func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) { + olen := len(src) + for len(src) > 0 && !end { + // Decode quantum using the base32 alphabet + var dbuf [8]byte + dlen := 8 + + for j := 0; j < 8; { + if len(src) == 0 { + if enc.padChar != NoPadding { + return n, false, CorruptInputError(olen - len(src) - j) + } + dlen = j + break + } + in := src[0] + src = src[1:] + if in == byte(enc.padChar) && j >= 2 && len(src) < 8 { + if enc.padChar == NoPadding { + return n, false, CorruptInputError(olen) + } + + // We've reached the end and there's padding + if len(src)+j < 8-1 { + // not enough padding + return n, false, CorruptInputError(olen) + } + for k := 0; k < 8-1-j; k++ { + if len(src) > k && src[k] != byte(enc.padChar) { + // incorrect padding + return n, false, CorruptInputError(olen - len(src) + k - 1) + } + } + dlen, end = j, true + // 7, 5 and 2 are not valid padding lengths, and so 1, 3 and 6 are not + // valid dlen values. See RFC 4648 Section 6 "Base 32 Encoding" listing + // the five valid padding lengths, and Section 9 "Illustrations and + // Examples" for an illustration for how the 1st, 3rd and 6th base32 + // src bytes do not yield enough information to decode a dst byte. + if dlen == 1 || dlen == 3 || dlen == 6 { + return n, false, CorruptInputError(olen - len(src) - 1) + } + break + } + dbuf[j] = enc.decodeMap[in] + if dbuf[j] == 0xFF { + return n, false, CorruptInputError(olen - len(src) - 1) + } + j++ + } + + // Pack 8x 5-bit source blocks into 5 byte destination + // quantum + switch dlen { + case 8: + dst[4] = dbuf[6]<<5 | dbuf[7] + fallthrough + case 7: + dst[3] = dbuf[4]<<7 | dbuf[5]<<2 | dbuf[6]>>3 + fallthrough + case 5: + dst[2] = dbuf[3]<<4 | dbuf[4]>>1 + fallthrough + case 4: + dst[1] = dbuf[1]<<6 | dbuf[2]<<1 | dbuf[3]>>4 + fallthrough + case 2: + dst[0] = dbuf[0]<<3 | dbuf[1]>>2 + } + + if len(dst) > 5 { + dst = dst[5:] + } + + switch dlen { + case 2: + n += 1 + case 4: + n += 2 + case 5: + n += 3 + case 7: + n += 4 + case 8: + n += 5 + } + } + return n, end, nil +} + +// Decode decodes src using the encoding enc. It writes at most +// DecodedLen(len(src)) bytes to dst and returns the number of bytes +// written. If src contains invalid base32 data, it will return the +// number of bytes successfully written and CorruptInputError. +// New line characters (\r and \n) are ignored. +func (enc *Encoding) Decode(dst, s []byte) (n int, err error) { + // FIXME: if dst is the same as s use decodeInPlace + stripped := make([]byte, 0, len(s)) + for _, c := range s { + if c != '\r' && c != '\n' { + stripped = append(stripped, c) + } + } + n, _, err = enc.decode(dst, stripped) + return +} + +func (enc *Encoding) decodeInPlace(strb []byte) (n int, err error) { + off := 0 + for _, b := range strb { + if b == '\n' || b == '\r' { + continue + } + strb[off] = b + off++ + } + n, _, err = enc.decode(strb, strb[:off]) + return +} + +// DecodeString returns the bytes represented by the base32 string s. +func (enc *Encoding) DecodeString(s string) ([]byte, error) { + strb := []byte(s) + n, err := enc.decodeInPlace(strb) + if err != nil { + return nil, err + } + return strb[:n], nil +} + +type decoder struct { + err error + enc *Encoding + r io.Reader + end bool // saw end of message + buf [1024]byte // leftover input + nbuf int + out []byte // leftover decoded output + outbuf [1024 / 8 * 5]byte +} + +func (d *decoder) Read(p []byte) (n int, err error) { + if d.err != nil { + return 0, d.err + } + + // Use leftover decoded output from last read. + if len(d.out) > 0 { + n = copy(p, d.out) + d.out = d.out[n:] + return n, nil + } + + // Read a chunk. + nn := len(p) / 5 * 8 + if nn < 8 { + nn = 8 + } + if nn > len(d.buf) { + nn = len(d.buf) + } + nn, d.err = io.ReadAtLeast(d.r, d.buf[d.nbuf:nn], 8-d.nbuf) + d.nbuf += nn + if d.nbuf < 8 { + return 0, d.err + } + + // Decode chunk into p, or d.out and then p if p is too small. + nr := d.nbuf / 8 * 8 + nw := d.nbuf / 8 * 5 + if nw > len(p) { + nw, d.end, d.err = d.enc.decode(d.outbuf[0:], d.buf[0:nr]) + d.out = d.outbuf[0:nw] + n = copy(p, d.out) + d.out = d.out[n:] + } else { + n, d.end, d.err = d.enc.decode(p, d.buf[0:nr]) + } + d.nbuf -= nr + for i := 0; i < d.nbuf; i++ { + d.buf[i] = d.buf[i+nr] + } + + if d.err == nil { + d.err = err + } + return n, d.err +} + +type newlineFilteringReader struct { + wrapped io.Reader +} + +func (r *newlineFilteringReader) Read(p []byte) (int, error) { + n, err := r.wrapped.Read(p) + for n > 0 { + offset := 0 + for i, b := range p[0:n] { + if b != '\r' && b != '\n' { + if i != offset { + p[offset] = b + } + offset++ + } + } + if offset > 0 { + return offset, err + } + // Previous buffer entirely whitespace, read again + n, err = r.wrapped.Read(p) + } + return n, err +} + +// NewDecoder constructs a new base32 stream decoder. +func NewDecoder(enc *Encoding, r io.Reader) io.Reader { + return &decoder{enc: enc, r: &newlineFilteringReader{r}} +} + +// DecodedLen returns the maximum length in bytes of the decoded data +// corresponding to n bytes of base32-encoded data. +func (enc *Encoding) DecodedLen(n int) int { + if enc.padChar == NoPadding { + return (n*5 + 7) / 8 + } + + return n / 8 * 5 +} diff --git a/vendor/github.com/multiformats/go-base32/go.mod b/vendor/github.com/multiformats/go-base32/go.mod new file mode 100644 index 00000000..fcc446fe --- /dev/null +++ b/vendor/github.com/multiformats/go-base32/go.mod @@ -0,0 +1 @@ +module github.com/multiformats/go-base32 diff --git a/vendor/github.com/multiformats/go-base32/package.json b/vendor/github.com/multiformats/go-base32/package.json new file mode 100644 index 00000000..04a9970d --- /dev/null +++ b/vendor/github.com/multiformats/go-base32/package.json @@ -0,0 +1,15 @@ +{ + "author": "Golang", + "bugs": { + "url": "https://github.com/multiformats/go-base32" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-base32" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "BSD-3", + "name": "base32", + "version": "0.0.3" +} + diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/.gitignore b/vendor/github.com/multiformats/go-multiaddr-dns/.gitignore new file mode 100644 index 00000000..4621ab73 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/.gitignore @@ -0,0 +1 @@ +/madns/madns diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/.travis.yml b/vendor/github.com/multiformats/go-multiaddr-dns/.travis.yml new file mode 100644 index 00000000..18f4287d --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/LICENSE b/vendor/github.com/multiformats/go-multiaddr-dns/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/README.md b/vendor/github.com/multiformats/go-multiaddr-dns/README.md new file mode 100644 index 00000000..a1ac5447 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/README.md @@ -0,0 +1,57 @@ +# go-multiaddr-dns + +> Resolve /dns4, /dns6, and /dnsaddr multiaddrs. + +```sh +> madns /dnsaddr/ipfs.io/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx +/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx +/ip6/2604:a880:1:20::1d9:6001/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx +/ip6/fc3d:9a4e:3c96:2fd2:1afa:18fe:8dd2:b602/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx +/dns4/jupiter.i.ipfs.io/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx +/dns6/jupiter.i.ipfs.io/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx +``` + + +In more detail: + +```sh +> madns /dns6/example.net +/ip6/2001:db8::a3 +/ip6/2001:db8::a4 +... + +> madns /dns4/example.net/tcp/443/wss +/ip4/192.0.2.1/tcp/443/wss +/ip4/192.0.2.2/tcp/443/wss + +# No-op if it's not a dns-ish address. + +> madns /ip4/127.0.0.1/tcp/8080 +/ip4/127.0.0.1/tcp/8080 + +# /dnsaddr resolves by looking up TXT records. + +> dig +short TXT _dnsaddr.example.net +"dnsaddr=/ip6/2001:db8::a3/tcp/443/wss/ipfs/Qmfoo" +"dnsaddr=/ip6/2001:db8::a4/tcp/443/wss/ipfs/Qmbar" +"dnsaddr=/ip4/192.0.2.1/tcp/443/wss/ipfs/Qmfoo" +"dnsaddr=/ip4/192.0.2.2/tcp/443/wss/ipfs/Qmbar" +... + +# /dnsaddr returns addrs which encapsulate whatever /dnsaddr encapsulates too. + +> madns example.net/ipfs/Qmfoo +info: changing query to /dnsaddr/example.net/ipfs/Qmfoo +/ip6/2001:db8::a3/tcp/443/wss/ipfs/Qmfoo +/ip4/192.0.2.1/tcp/443/wss/ipfs/Qmfoo + +# TODO -p filters by protocol stacks. + +> madns -p /ip6/tcp/wss /dnsaddr/example.net +/ip6/2001:db8::a3/tcp/443/wss/ipfs/Qmfoo +/ip6/2001:db8::a4/tcp/443/wss/ipfs/Qmbar + +# TOOD -c filters by CIDR +> madns -c /ip4/104.236.76.0/ipcidr/24 /dnsaddr/example.net +/ip4/192.0.2.2/tcp/443/wss/ipfs/Qmbar +``` diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/dns.go b/vendor/github.com/multiformats/go-multiaddr-dns/dns.go new file mode 100644 index 00000000..53c82dfd --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/dns.go @@ -0,0 +1,69 @@ +package madns + +import ( + "bytes" + "fmt" + + ma "github.com/multiformats/go-multiaddr" +) + +// Extracted from source of truth for multicodec codes: https://github.com/multiformats/multicodec +const ( + P_DNS4 = 0x0036 + P_DNS6 = 0x0037 + P_DNSADDR = 0x0038 +) + +var Dns4Protocol = ma.Protocol{ + Code: P_DNS4, + Size: ma.LengthPrefixedVarSize, + Name: "dns4", + VCode: ma.CodeToVarint(P_DNS4), + Transcoder: DnsTranscoder, +} +var Dns6Protocol = ma.Protocol{ + Code: P_DNS6, + Size: ma.LengthPrefixedVarSize, + Name: "dns6", + VCode: ma.CodeToVarint(P_DNS6), + Transcoder: DnsTranscoder, +} +var DnsaddrProtocol = ma.Protocol{ + Code: P_DNSADDR, + Size: ma.LengthPrefixedVarSize, + Name: "dnsaddr", + VCode: ma.CodeToVarint(P_DNSADDR), + Transcoder: DnsTranscoder, +} + +func init() { + err := ma.AddProtocol(Dns4Protocol) + if err != nil { + panic(fmt.Errorf("error registering dns4 protocol: %s", err)) + } + err = ma.AddProtocol(Dns6Protocol) + if err != nil { + panic(fmt.Errorf("error registering dns6 protocol: %s", err)) + } + err = ma.AddProtocol(DnsaddrProtocol) + if err != nil { + panic(fmt.Errorf("error registering dnsaddr protocol: %s", err)) + } +} + +var DnsTranscoder = ma.NewTranscoderFromFunctions(dnsStB, dnsBtS, dnsVal) + +func dnsVal(b []byte) error { + if bytes.IndexByte(b, '/') >= 0 { + return fmt.Errorf("domain name %q contains a slash", string(b)) + } + return nil +} + +func dnsStB(s string) ([]byte, error) { + return []byte(s), nil +} + +func dnsBtS(b []byte) (string, error) { + return string(b), nil +} diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/go.mod b/vendor/github.com/multiformats/go-multiaddr-dns/go.mod new file mode 100644 index 00000000..fb228c60 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/go.mod @@ -0,0 +1,3 @@ +module github.com/multiformats/go-multiaddr-dns + +require github.com/multiformats/go-multiaddr v0.0.1 diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/go.sum b/vendor/github.com/multiformats/go-multiaddr-dns/go.sum new file mode 100644 index 00000000..cbf49eb4 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/go.sum @@ -0,0 +1,18 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/package.json b/vendor/github.com/multiformats/go-multiaddr-dns/package.json new file mode 100644 index 00000000..81fb932c --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/package.json @@ -0,0 +1,24 @@ +{ + "author": "lgierth", + "bugs": { + "url": "https://github.com/multiformats/go-multiaddr-dns/issues" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multiaddr-dns" + }, + "gxDependencies": [ + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + } + ], + "gxVersion": "0.10.0", + "language": "go", + "license": "MIT", + "name": "go-multiaddr-dns", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.3.2" +} + diff --git a/vendor/github.com/multiformats/go-multiaddr-dns/resolve.go b/vendor/github.com/multiformats/go-multiaddr-dns/resolve.go new file mode 100644 index 00000000..9c81c2f5 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-dns/resolve.go @@ -0,0 +1,181 @@ +package madns + +import ( + "context" + "fmt" + "net" + "strings" + + ma "github.com/multiformats/go-multiaddr" +) + +var ResolvableProtocols = []ma.Protocol{DnsaddrProtocol, Dns4Protocol, Dns6Protocol} +var DefaultResolver = &Resolver{Backend: net.DefaultResolver} + +type backend interface { + LookupIPAddr(context.Context, string) ([]net.IPAddr, error) + LookupTXT(context.Context, string) ([]string, error) +} + +type Resolver struct { + Backend backend +} + +type MockBackend struct { + IP map[string][]net.IPAddr + TXT map[string][]string +} + +func (r *MockBackend) LookupIPAddr(ctx context.Context, name string) ([]net.IPAddr, error) { + results, ok := r.IP[name] + if ok { + return results, nil + } else { + return []net.IPAddr{}, nil + } +} + +func (r *MockBackend) LookupTXT(ctx context.Context, name string) ([]string, error) { + results, ok := r.TXT[name] + if ok { + return results, nil + } else { + return []string{}, nil + } +} + +func Matches(maddr ma.Multiaddr) bool { + protos := maddr.Protocols() + if len(protos) == 0 { + return false + } + + for _, p := range ResolvableProtocols { + if protos[0].Code == p.Code { + return true + } + } + + return false +} + +func Resolve(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) { + return DefaultResolver.Resolve(ctx, maddr) +} + +func (r *Resolver) Resolve(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) { + if !Matches(maddr) { + return []ma.Multiaddr{maddr}, nil + } + + protos := maddr.Protocols() + if protos[0].Code == Dns4Protocol.Code { + return r.resolveDns4(ctx, maddr) + } + if protos[0].Code == Dns6Protocol.Code { + return r.resolveDns6(ctx, maddr) + } + if protos[0].Code == DnsaddrProtocol.Code { + return r.resolveDnsaddr(ctx, maddr) + } + + panic("unreachable") +} + +func (r *Resolver) resolveDns4(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) { + value, err := maddr.ValueForProtocol(Dns4Protocol.Code) + if err != nil { + return nil, fmt.Errorf("error resolving %s: %s", maddr.String(), err) + } + + encap := ma.Split(maddr)[1:] + + result := []ma.Multiaddr{} + records, err := r.Backend.LookupIPAddr(ctx, value) + if err != nil { + return result, err + } + + for _, r := range records { + ip4 := r.IP.To4() + if ip4 == nil { + continue + } + ip4maddr, err := ma.NewMultiaddr("/ip4/" + ip4.String()) + if err != nil { + return result, err + } + parts := append([]ma.Multiaddr{ip4maddr}, encap...) + result = append(result, ma.Join(parts...)) + } + return result, nil +} + +func (r *Resolver) resolveDns6(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) { + value, err := maddr.ValueForProtocol(Dns6Protocol.Code) + if err != nil { + return nil, fmt.Errorf("error resolving %s: %s", maddr.String(), err) + } + + encap := ma.Split(maddr)[1:] + + result := []ma.Multiaddr{} + records, err := r.Backend.LookupIPAddr(ctx, value) + if err != nil { + return result, err + } + + for _, r := range records { + if r.IP.To4() != nil { + continue + } + ip6maddr, err := ma.NewMultiaddr("/ip6/" + r.IP.To16().String()) + if err != nil { + return result, err + } + parts := append([]ma.Multiaddr{ip6maddr}, encap...) + result = append(result, ma.Join(parts...)) + } + return result, nil +} + +func (r *Resolver) resolveDnsaddr(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) { + value, err := maddr.ValueForProtocol(DnsaddrProtocol.Code) + if err != nil { + return nil, fmt.Errorf("error resolving %s: %s", maddr.String(), err) + } + + trailer := ma.Split(maddr)[1:] + + result := []ma.Multiaddr{} + records, err := r.Backend.LookupTXT(ctx, "_dnsaddr."+value) + if err != nil { + return result, err + } + + for _, r := range records { + rv := strings.Split(r, "dnsaddr=") + if len(rv) != 2 { + continue + } + + rmaddr, err := ma.NewMultiaddr(rv[1]) + if err != nil { + return result, err + } + + if matchDnsaddr(rmaddr, trailer) { + result = append(result, rmaddr) + } + } + return result, nil +} + +// XXX probably insecure +func matchDnsaddr(maddr ma.Multiaddr, trailer []ma.Multiaddr) bool { + parts := ma.Split(maddr) + if ma.Join(parts[len(parts)-len(trailer):]...).Equal(ma.Join(trailer...)) { + return true + } + return false +} diff --git a/vendor/github.com/multiformats/go-multiaddr-net/.gitignore b/vendor/github.com/multiformats/go-multiaddr-net/.gitignore new file mode 100644 index 00000000..a186a0e4 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/.gitignore @@ -0,0 +1,2 @@ +bin/gx* +*.swp diff --git a/vendor/github.com/multiformats/go-multiaddr-net/.travis.yml b/vendor/github.com/multiformats/go-multiaddr-net/.travis.yml new file mode 100644 index 00000000..18f4287d --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/multiformats/go-multiaddr-net/LICENSE b/vendor/github.com/multiformats/go-multiaddr-net/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multiaddr-net/Makefile b/vendor/github.com/multiformats/go-multiaddr-net/Makefile new file mode 100644 index 00000000..54152565 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/Makefile @@ -0,0 +1,9 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite diff --git a/vendor/github.com/multiformats/go-multiaddr-net/README.md b/vendor/github.com/multiformats/go-multiaddr-net/README.md new file mode 100644 index 00000000..c13d248f --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/README.md @@ -0,0 +1,67 @@ +# go-multiaddr-net + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/multiformats/go-multiaddr-net?status.svg)](https://godoc.org/github.com/multiformats/go-multiaddr-net) +[![Travis CI](https://img.shields.io/travis/multiformats/go-multiaddr-net.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multiaddr-net) + + + +> Multiaddress net tools + +This package provides [Multiaddr](https://github.com/multiformats/go-multiaddr) specific versions of common functions in [stdlib](https://github.com/golang/go/tree/master/src)'s `net` package. This means wrappers of standard net symbols like `net.Dial` and `net.Listen`, as well +as conversion to and from `net.Addr`. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Maintainers](#maintainers) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-multiaddr-net` is a standard Go module which can be installed with: + +```sh +go get github.com/multiformats/go-multiaddr-net +``` + +Note that `go-multiaddr-net` is packaged with Gx, so it is recommended to use Gx to install and use it (see Usage section). + + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project do: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/multiformats/go-multiaddr-net +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +For further usage, see the docs: + +- `multiaddr/net`: https://godoc.org/github.com/multiformats/go-multiaddr-net +- `multiaddr`: https://godoc.org/github.com/multiformats/go-multiaddr + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multiaddr-net/issues). + +Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2014 Juan Batiz-Benet diff --git a/vendor/github.com/multiformats/go-multiaddr-net/convert.go b/vendor/github.com/multiformats/go-multiaddr-net/convert.go new file mode 100644 index 00000000..061f1c48 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/convert.go @@ -0,0 +1,269 @@ +package manet + +import ( + "fmt" + "net" + "path/filepath" + + ma "github.com/multiformats/go-multiaddr" + madns "github.com/multiformats/go-multiaddr-dns" +) + +var errIncorrectNetAddr = fmt.Errorf("incorrect network addr conversion") + +// FromNetAddr converts a net.Addr type to a Multiaddr. +func FromNetAddr(a net.Addr) (ma.Multiaddr, error) { + return defaultCodecs.FromNetAddr(a) +} + +// FromNetAddr converts a net.Addr to Multiaddress. +func (cm *CodecMap) FromNetAddr(a net.Addr) (ma.Multiaddr, error) { + if a == nil { + return nil, fmt.Errorf("nil multiaddr") + } + p, err := cm.getAddrParser(a.Network()) + if err != nil { + return nil, err + } + + return p(a) +} + +// ToNetAddr converts a Multiaddr to a net.Addr +// Must be ThinWaist. acceptable protocol stacks are: +// /ip{4,6}/{tcp, udp} +func ToNetAddr(maddr ma.Multiaddr) (net.Addr, error) { + return defaultCodecs.ToNetAddr(maddr) +} + +// ToNetAddr converts a Multiaddress to a standard net.Addr. +func (cm *CodecMap) ToNetAddr(maddr ma.Multiaddr) (net.Addr, error) { + protos := maddr.Protocols() + final := protos[len(protos)-1] + + p, err := cm.getMaddrParser(final.Name) + if err != nil { + return nil, err + } + + return p(maddr) +} + +func parseBasicNetMaddr(maddr ma.Multiaddr) (net.Addr, error) { + network, host, err := DialArgs(maddr) + if err != nil { + return nil, err + } + + switch network { + case "tcp", "tcp4", "tcp6": + return net.ResolveTCPAddr(network, host) + case "udp", "udp4", "udp6": + return net.ResolveUDPAddr(network, host) + case "ip", "ip4", "ip6": + return net.ResolveIPAddr(network, host) + case "unix": + return net.ResolveUnixAddr(network, host) + } + + return nil, fmt.Errorf("network not supported: %s", network) +} + +func FromIPAndZone(ip net.IP, zone string) (ma.Multiaddr, error) { + switch { + case ip.To4() != nil: + return ma.NewComponent("ip4", ip.String()) + case ip.To16() != nil: + ip6, err := ma.NewComponent("ip6", ip.String()) + if err != nil { + return nil, err + } + if zone == "" { + return ip6, nil + } else { + zone, err := ma.NewComponent("ip6zone", zone) + if err != nil { + return nil, err + } + return zone.Encapsulate(ip6), nil + } + default: + return nil, errIncorrectNetAddr + } +} + +// FromIP converts a net.IP type to a Multiaddr. +func FromIP(ip net.IP) (ma.Multiaddr, error) { + return FromIPAndZone(ip, "") +} + +// DialArgs is a convenience function that returns network and address as +// expected by net.Dial. See https://godoc.org/net#Dial for an overview of +// possible return values (we do not support the unixpacket ones yet). Unix +// addresses do not, at present, compose. +func DialArgs(m ma.Multiaddr) (string, string, error) { + var ( + zone, network, ip, port string + err error + hostname bool + ) + + ma.ForEach(m, func(c ma.Component) bool { + switch network { + case "": + switch c.Protocol().Code { + case ma.P_IP6ZONE: + if zone != "" { + err = fmt.Errorf("%s has multiple zones", m) + return false + } + zone = c.Value() + return true + case ma.P_IP6: + network = "ip6" + ip = c.Value() + return true + case ma.P_IP4: + if zone != "" { + err = fmt.Errorf("%s has ip4 with zone", m) + return false + } + network = "ip4" + ip = c.Value() + return true + case madns.Dns4Protocol.Code: + network = "ip4" + hostname = true + ip = c.Value() + return true + case madns.Dns6Protocol.Code: + network = "ip6" + hostname = true + ip = c.Value() + return true + case ma.P_UNIX: + network = "unix" + ip = c.Value() + return false + } + case "ip4": + switch c.Protocol().Code { + case ma.P_UDP: + network = "udp4" + case ma.P_TCP: + network = "tcp4" + default: + return false + } + port = c.Value() + case "ip6": + switch c.Protocol().Code { + case ma.P_UDP: + network = "udp6" + case ma.P_TCP: + network = "tcp6" + default: + return false + } + port = c.Value() + } + // Done. + return false + }) + if err != nil { + return "", "", err + } + + switch network { + case "ip6": + if zone != "" { + ip += "%" + zone + } + fallthrough + case "ip4": + return network, ip, nil + case "tcp4", "udp4": + return network, ip + ":" + port, nil + case "tcp6", "udp6": + if zone != "" { + ip += "%" + zone + } + if hostname { + return network, ip + ":" + port, nil + } + return network, "[" + ip + "]" + ":" + port, nil + case "unix": + return network, ip, nil + default: + return "", "", fmt.Errorf("%s is not a 'thin waist' address", m) + } +} + +func parseTCPNetAddr(a net.Addr) (ma.Multiaddr, error) { + ac, ok := a.(*net.TCPAddr) + if !ok { + return nil, errIncorrectNetAddr + } + + // Get IP Addr + ipm, err := FromIPAndZone(ac.IP, ac.Zone) + if err != nil { + return nil, errIncorrectNetAddr + } + + // Get TCP Addr + tcpm, err := ma.NewMultiaddr(fmt.Sprintf("/tcp/%d", ac.Port)) + if err != nil { + return nil, errIncorrectNetAddr + } + + // Encapsulate + return ipm.Encapsulate(tcpm), nil +} + +func parseUDPNetAddr(a net.Addr) (ma.Multiaddr, error) { + ac, ok := a.(*net.UDPAddr) + if !ok { + return nil, errIncorrectNetAddr + } + + // Get IP Addr + ipm, err := FromIPAndZone(ac.IP, ac.Zone) + if err != nil { + return nil, errIncorrectNetAddr + } + + // Get UDP Addr + udpm, err := ma.NewMultiaddr(fmt.Sprintf("/udp/%d", ac.Port)) + if err != nil { + return nil, errIncorrectNetAddr + } + + // Encapsulate + return ipm.Encapsulate(udpm), nil +} + +func parseIPNetAddr(a net.Addr) (ma.Multiaddr, error) { + ac, ok := a.(*net.IPAddr) + if !ok { + return nil, errIncorrectNetAddr + } + return FromIPAndZone(ac.IP, ac.Zone) +} + +func parseIPPlusNetAddr(a net.Addr) (ma.Multiaddr, error) { + ac, ok := a.(*net.IPNet) + if !ok { + return nil, errIncorrectNetAddr + } + return FromIP(ac.IP) +} + +func parseUnixNetAddr(a net.Addr) (ma.Multiaddr, error) { + ac, ok := a.(*net.UnixAddr) + if !ok { + return nil, errIncorrectNetAddr + } + cleaned := filepath.Clean(ac.Name) + return ma.NewComponent("unix", cleaned) +} diff --git a/vendor/github.com/multiformats/go-multiaddr-net/doc.go b/vendor/github.com/multiformats/go-multiaddr-net/doc.go new file mode 100644 index 00000000..040ad3f0 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/doc.go @@ -0,0 +1,5 @@ +// Package manet provides Multiaddr specific versions of common +// functions in stdlib's net package. This means wrappers of +// standard net symbols like net.Dial and net.Listen, as well +// as conversion to/from net.Addr. +package manet diff --git a/vendor/github.com/multiformats/go-multiaddr-net/go.mod b/vendor/github.com/multiformats/go-multiaddr-net/go.mod new file mode 100644 index 00000000..57c28274 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/go.mod @@ -0,0 +1,6 @@ +module github.com/multiformats/go-multiaddr-net + +require ( + github.com/multiformats/go-multiaddr v0.0.1 + github.com/multiformats/go-multiaddr-dns v0.0.1 +) diff --git a/vendor/github.com/multiformats/go-multiaddr-net/go.sum b/vendor/github.com/multiformats/go-multiaddr-net/go.sum new file mode 100644 index 00000000..fc801cab --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/go.sum @@ -0,0 +1,20 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr-dns v0.0.1 h1:jQt9c6tDSdQLIlBo4tXYx7QUHCPjxsB1zXcag/2S7zc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/multiformats/go-multiaddr-net/ip.go b/vendor/github.com/multiformats/go-multiaddr-net/ip.go new file mode 100644 index 00000000..1cf9a775 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/ip.go @@ -0,0 +1,118 @@ +package manet + +import ( + "net" + + ma "github.com/multiformats/go-multiaddr" +) + +// Loopback Addresses +var ( + // IP4Loopback is the ip4 loopback multiaddr + IP4Loopback = ma.StringCast("/ip4/127.0.0.1") + + // IP6Loopback is the ip6 loopback multiaddr + IP6Loopback = ma.StringCast("/ip6/::1") + + // IP4MappedIP6Loopback is the IPv4 Mapped IPv6 loopback address. + IP4MappedIP6Loopback = ma.StringCast("/ip6/::ffff:127.0.0.1") +) + +// Unspecified Addresses (used for ) +var ( + IP4Unspecified = ma.StringCast("/ip4/0.0.0.0") + IP6Unspecified = ma.StringCast("/ip6/::") +) + +// IsThinWaist returns whether a Multiaddr starts with "Thin Waist" Protocols. +// This means: /{IP4, IP6}[/{TCP, UDP}] +func IsThinWaist(m ma.Multiaddr) bool { + m = zoneless(m) + if m == nil { + return false + } + p := m.Protocols() + + // nothing? not even a waist. + if len(p) == 0 { + return false + } + + if p[0].Code != ma.P_IP4 && p[0].Code != ma.P_IP6 { + return false + } + + // only IP? still counts. + if len(p) == 1 { + return true + } + + switch p[1].Code { + case ma.P_TCP, ma.P_UDP, ma.P_IP4, ma.P_IP6: + return true + default: + return false + } +} + +// IsIPLoopback returns whether a Multiaddr starts with a "Loopback" IP address +// This means either /ip4/127.*.*.*/*, /ip6/::1/*, or /ip6/::ffff:127.*.*.*.*/*, +// or /ip6zone//ip6//* +func IsIPLoopback(m ma.Multiaddr) bool { + m = zoneless(m) + c, _ := ma.SplitFirst(m) + if c == nil { + return false + } + switch c.Protocol().Code { + case ma.P_IP4, ma.P_IP6: + return net.IP(c.RawValue()).IsLoopback() + } + return false +} + +// IsIP6LinkLocal returns whether a Multiaddr starts with an IPv6 link-local +// multiaddress (with zero or one leading zone). These addresses are non +// routable. +func IsIP6LinkLocal(m ma.Multiaddr) bool { + m = zoneless(m) + c, _ := ma.SplitFirst(m) + if c == nil || c.Protocol().Code != ma.P_IP6 { + return false + } + ip := net.IP(c.RawValue()) + return ip.IsLinkLocalMulticast() || ip.IsLinkLocalUnicast() +} + +// IsIPUnspecified returns whether a Multiaddr starts with an Unspecified IP address +// This means either /ip4/0.0.0.0/* or /ip6/::/* +func IsIPUnspecified(m ma.Multiaddr) bool { + m = zoneless(m) + if m == nil { + return false + } + c, _ := ma.SplitFirst(m) + return net.IP(c.RawValue()).IsUnspecified() +} + +// If m matches [zone,ip6,...], return [ip6,...] +// else if m matches [], [zone], or [zone,...], return nil +// else return m +func zoneless(m ma.Multiaddr) ma.Multiaddr { + head, tail := ma.SplitFirst(m) + if head == nil { + return nil + } + if head.Protocol().Code == ma.P_IP6ZONE { + if tail == nil { + return nil + } + tailhead, _ := ma.SplitFirst(tail) + if tailhead.Protocol().Code != ma.P_IP6 { + return nil + } + return tail + } else { + return m + } +} diff --git a/vendor/github.com/multiformats/go-multiaddr-net/net.go b/vendor/github.com/multiformats/go-multiaddr-net/net.go new file mode 100644 index 00000000..ac35530d --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/net.go @@ -0,0 +1,427 @@ +// Package manet provides Multiaddr +// (https://github.com/multiformats/go-multiaddr) specific versions of common +// functions in Go's standard `net` package. This means wrappers of standard +// net symbols like `net.Dial` and `net.Listen`, as well as conversion to +// and from `net.Addr`. +package manet + +import ( + "context" + "fmt" + "net" + + ma "github.com/multiformats/go-multiaddr" +) + +// Conn is the equivalent of a net.Conn object. It is the +// result of calling the Dial or Listen functions in this +// package, with associated local and remote Multiaddrs. +type Conn interface { + net.Conn + + // LocalMultiaddr returns the local Multiaddr associated + // with this connection + LocalMultiaddr() ma.Multiaddr + + // RemoteMultiaddr returns the remote Multiaddr associated + // with this connection + RemoteMultiaddr() ma.Multiaddr +} + +type halfOpen interface { + net.Conn + CloseRead() error + CloseWrite() error +} + +func wrap(nconn net.Conn, laddr, raddr ma.Multiaddr) Conn { + endpts := maEndpoints{ + laddr: laddr, + raddr: raddr, + } + // This sucks. However, it's the only way to reliably expose the + // underlying methods. This way, users that need access to, e.g., + // CloseRead and CloseWrite, can do so via type assertions. + switch nconn := nconn.(type) { + case *net.TCPConn: + return &struct { + *net.TCPConn + maEndpoints + }{nconn, endpts} + case *net.UDPConn: + return &struct { + *net.UDPConn + maEndpoints + }{nconn, endpts} + case *net.IPConn: + return &struct { + *net.IPConn + maEndpoints + }{nconn, endpts} + case *net.UnixConn: + return &struct { + *net.UnixConn + maEndpoints + }{nconn, endpts} + case halfOpen: + return &struct { + halfOpen + maEndpoints + }{nconn, endpts} + default: + return &struct { + net.Conn + maEndpoints + }{nconn, endpts} + } +} + +// WrapNetConn wraps a net.Conn object with a Multiaddr friendly Conn. +// +// This function does it's best to avoid "hiding" methods exposed by the wrapped +// type. Guarantees: +// +// * If the wrapped connection exposes the "half-open" closer methods +// (CloseWrite, CloseRead), these will be available on the wrapped connection +// via type assertions. +// * If the wrapped connection is a UnixConn, IPConn, TCPConn, or UDPConn, all +// methods on these wrapped connections will be available via type assertions. +func WrapNetConn(nconn net.Conn) (Conn, error) { + if nconn == nil { + return nil, fmt.Errorf("failed to convert nconn.LocalAddr: nil") + } + + laddr, err := FromNetAddr(nconn.LocalAddr()) + if err != nil { + return nil, fmt.Errorf("failed to convert nconn.LocalAddr: %s", err) + } + + raddr, err := FromNetAddr(nconn.RemoteAddr()) + if err != nil { + return nil, fmt.Errorf("failed to convert nconn.RemoteAddr: %s", err) + } + + return wrap(nconn, laddr, raddr), nil +} + +type maEndpoints struct { + laddr ma.Multiaddr + raddr ma.Multiaddr +} + +// LocalMultiaddr returns the local address associated with +// this connection +func (c *maEndpoints) LocalMultiaddr() ma.Multiaddr { + return c.laddr +} + +// RemoteMultiaddr returns the remote address associated with +// this connection +func (c *maEndpoints) RemoteMultiaddr() ma.Multiaddr { + return c.raddr +} + +// Dialer contains options for connecting to an address. It +// is effectively the same as net.Dialer, but its LocalAddr +// and RemoteAddr options are Multiaddrs, instead of net.Addrs. +type Dialer struct { + + // Dialer is just an embedded net.Dialer, with all its options. + net.Dialer + + // LocalAddr is the local address to use when dialing an + // address. The address must be of a compatible type for the + // network being dialed. + // If nil, a local address is automatically chosen. + LocalAddr ma.Multiaddr +} + +// Dial connects to a remote address, using the options of the +// Dialer. Dialer uses an underlying net.Dialer to Dial a +// net.Conn, then wraps that in a Conn object (with local and +// remote Multiaddrs). +func (d *Dialer) Dial(remote ma.Multiaddr) (Conn, error) { + return d.DialContext(context.Background(), remote) +} + +// DialContext allows to provide a custom context to Dial(). +func (d *Dialer) DialContext(ctx context.Context, remote ma.Multiaddr) (Conn, error) { + // if a LocalAddr is specified, use it on the embedded dialer. + if d.LocalAddr != nil { + // convert our multiaddr to net.Addr friendly + naddr, err := ToNetAddr(d.LocalAddr) + if err != nil { + return nil, err + } + + // set the dialer's LocalAddr as naddr + d.Dialer.LocalAddr = naddr + } + + // get the net.Dial friendly arguments from the remote addr + rnet, rnaddr, err := DialArgs(remote) + if err != nil { + return nil, err + } + + // ok, Dial! + var nconn net.Conn + switch rnet { + case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6", "unix": + nconn, err = d.Dialer.DialContext(ctx, rnet, rnaddr) + if err != nil { + return nil, err + } + default: + return nil, fmt.Errorf("unrecognized network: %s", rnet) + } + + // get local address (pre-specified or assigned within net.Conn) + local := d.LocalAddr + // This block helps us avoid parsing addresses in transports (such as unix + // sockets) that don't have local addresses when dialing out. + if local == nil && nconn.LocalAddr().String() != "" { + local, err = FromNetAddr(nconn.LocalAddr()) + if err != nil { + return nil, err + } + } + return wrap(nconn, local, remote), nil +} + +// Dial connects to a remote address. It uses an underlying net.Conn, +// then wraps it in a Conn object (with local and remote Multiaddrs). +func Dial(remote ma.Multiaddr) (Conn, error) { + return (&Dialer{}).Dial(remote) +} + +// A Listener is a generic network listener for stream-oriented protocols. +// it uses an embedded net.Listener, overriding net.Listener.Accept to +// return a Conn and providing Multiaddr. +type Listener interface { + // Accept waits for and returns the next connection to the listener. + // Returns a Multiaddr friendly Conn + Accept() (Conn, error) + + // Close closes the listener. + // Any blocked Accept operations will be unblocked and return errors. + Close() error + + // Multiaddr returns the listener's (local) Multiaddr. + Multiaddr() ma.Multiaddr + + // Addr returns the net.Listener's network address. + Addr() net.Addr +} + +type netListenerAdapter struct { + Listener +} + +func (nla *netListenerAdapter) Accept() (net.Conn, error) { + return nla.Listener.Accept() +} + +// NetListener turns this Listener into a net.Listener. +// +// * Connections returned from Accept implement multiaddr-net Conn. +// * Calling WrapNetListener on the net.Listener returned by this function will +// return the original (underlying) multiaddr-net Listener. +func NetListener(l Listener) net.Listener { + return &netListenerAdapter{l} +} + +// maListener implements Listener +type maListener struct { + net.Listener + laddr ma.Multiaddr +} + +// Accept waits for and returns the next connection to the listener. +// Returns a Multiaddr friendly Conn +func (l *maListener) Accept() (Conn, error) { + nconn, err := l.Listener.Accept() + if err != nil { + return nil, err + } + + var raddr ma.Multiaddr + // This block protects us in transports (i.e. unix sockets) that don't have + // remote addresses for inbound connections. + if nconn.RemoteAddr().String() != "" { + raddr, err = FromNetAddr(nconn.RemoteAddr()) + if err != nil { + return nil, fmt.Errorf("failed to convert conn.RemoteAddr: %s", err) + } + } + + return wrap(nconn, l.laddr, raddr), nil +} + +// Multiaddr returns the listener's (local) Multiaddr. +func (l *maListener) Multiaddr() ma.Multiaddr { + return l.laddr +} + +// Addr returns the listener's network address. +func (l *maListener) Addr() net.Addr { + return l.Listener.Addr() +} + +// Listen announces on the local network address laddr. +// The Multiaddr must be a "ThinWaist" stream-oriented network: +// ip4/tcp, ip6/tcp, (TODO: unix, unixpacket) +// See Dial for the syntax of laddr. +func Listen(laddr ma.Multiaddr) (Listener, error) { + + // get the net.Listen friendly arguments from the remote addr + lnet, lnaddr, err := DialArgs(laddr) + if err != nil { + return nil, err + } + + nl, err := net.Listen(lnet, lnaddr) + if err != nil { + return nil, err + } + + // we want to fetch the new multiaddr from the listener, as it may + // have resolved to some other value. WrapNetListener does it for us. + return WrapNetListener(nl) +} + +// WrapNetListener wraps a net.Listener with a manet.Listener. +func WrapNetListener(nl net.Listener) (Listener, error) { + if nla, ok := nl.(*netListenerAdapter); ok { + return nla.Listener, nil + } + + laddr, err := FromNetAddr(nl.Addr()) + if err != nil { + return nil, err + } + + return &maListener{ + Listener: nl, + laddr: laddr, + }, nil +} + +// A PacketConn is a generic packet oriented network connection which uses an +// underlying net.PacketConn, wrapped with the locally bound Multiaddr. +type PacketConn interface { + Connection() net.PacketConn + + Multiaddr() ma.Multiaddr + + ReadFrom(b []byte) (int, ma.Multiaddr, error) + WriteTo(b []byte, maddr ma.Multiaddr) (int, error) + + Close() error +} + +// maPacketConn implements PacketConn +type maPacketConn struct { + net.PacketConn + laddr ma.Multiaddr +} + +// Connection returns the embedded net.PacketConn. +func (l *maPacketConn) Connection() net.PacketConn { + return l.PacketConn +} + +// Multiaddr returns the bound local Multiaddr. +func (l *maPacketConn) Multiaddr() ma.Multiaddr { + return l.laddr +} + +func (l *maPacketConn) ReadFrom(b []byte) (int, ma.Multiaddr, error) { + n, addr, err := l.PacketConn.ReadFrom(b) + maddr, _ := FromNetAddr(addr) + return n, maddr, err +} + +func (l *maPacketConn) WriteTo(b []byte, maddr ma.Multiaddr) (int, error) { + addr, err := ToNetAddr(maddr) + if err != nil { + return 0, err + } + return l.PacketConn.WriteTo(b, addr) +} + +// ListenPacket announces on the local network address laddr. +// The Multiaddr must be a packet driven network, like udp4 or udp6. +// See Dial for the syntax of laddr. +func ListenPacket(laddr ma.Multiaddr) (PacketConn, error) { + lnet, lnaddr, err := DialArgs(laddr) + if err != nil { + return nil, err + } + + pc, err := net.ListenPacket(lnet, lnaddr) + if err != nil { + return nil, err + } + + // We want to fetch the new multiaddr from the listener, as it may + // have resolved to some other value. WrapPacketConn does this. + return WrapPacketConn(pc) +} + +// WrapPacketConn wraps a net.PacketConn with a manet.PacketConn. +func WrapPacketConn(pc net.PacketConn) (PacketConn, error) { + laddr, err := FromNetAddr(pc.LocalAddr()) + if err != nil { + return nil, err + } + + return &maPacketConn{ + PacketConn: pc, + laddr: laddr, + }, nil +} + +// InterfaceMultiaddrs will return the addresses matching net.InterfaceAddrs +func InterfaceMultiaddrs() ([]ma.Multiaddr, error) { + addrs, err := net.InterfaceAddrs() + if err != nil { + return nil, err + } + + maddrs := make([]ma.Multiaddr, len(addrs)) + for i, a := range addrs { + maddrs[i], err = FromNetAddr(a) + if err != nil { + return nil, err + } + } + return maddrs, nil +} + +// AddrMatch returns the Multiaddrs that match the protocol stack on addr +func AddrMatch(match ma.Multiaddr, addrs []ma.Multiaddr) []ma.Multiaddr { + + // we should match transports entirely. + p1s := match.Protocols() + + out := make([]ma.Multiaddr, 0, len(addrs)) + for _, a := range addrs { + p2s := a.Protocols() + if len(p1s) != len(p2s) { + continue + } + + match := true + for i, p2 := range p2s { + if p1s[i].Code != p2.Code { + match = false + break + } + } + if match { + out = append(out, a) + } + } + return out +} diff --git a/vendor/github.com/multiformats/go-multiaddr-net/package.json b/vendor/github.com/multiformats/go-multiaddr-net/package.json new file mode 100644 index 00000000..cdad09ea --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/package.json @@ -0,0 +1,30 @@ +{ + "author": "multiformats", + "bugs": { + "url": "https://github.com/multiformats/go-multiaddr-net" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multiaddr-net" + }, + "gxDependencies": [ + { + "author": "multiformats", + "hash": "QmTZBfrPJmjWsCvHEtX5FE6KimVJhsJg5sBbqEFYf4UZtL", + "name": "go-multiaddr", + "version": "1.4.1" + }, + { + "author": "lgierth", + "hash": "QmU98UaAEh4WJAcir2qjfztU77JQ14kAwHNFkjUXHZA3Vy", + "name": "go-multiaddr-dns", + "version": "0.3.1" + } + ], + "gxVersion": "0.6.0", + "language": "go", + "license": "", + "name": "go-multiaddr-net", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.7.2" +} + diff --git a/vendor/github.com/multiformats/go-multiaddr-net/private.go b/vendor/github.com/multiformats/go-multiaddr-net/private.go new file mode 100644 index 00000000..26e547ce --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/private.go @@ -0,0 +1,116 @@ +package manet + +import ( + "net" + + ma "github.com/multiformats/go-multiaddr" +) + +// Private4 and Private6 are well-known private networks +var Private4, Private6 []*net.IPNet +var privateCIDR4 = []string{ + // localhost + "127.0.0.0/8", + // private networks + "10.0.0.0/8", + "100.64.0.0/10", + "172.16.0.0/12", + "192.168.0.0/16", + // link local + "169.254.0.0/16", +} +var privateCIDR6 = []string{ + // localhost + "::1/128", + // ULA reserved + "fc00::/7", + // link local + "fe80::/10", +} + +// Unroutable4 and Unroutable6 are well known unroutable address ranges +var Unroutable4, Unroutable6 []*net.IPNet +var unroutableCIDR4 = []string{ + "0.0.0.0/8", + "192.0.0.0/26", + "192.0.2.0/24", + "192.88.99.0/24", + "198.18.0.0/15", + "198.51.100.0/24", + "203.0.113.0/24", + "224.0.0.0/4", + "240.0.0.0/4", + "255.255.255.255/32", +} +var unroutableCIDR6 = []string{ + "ff00::/8", +} + +func init() { + Private4 = parseCIDR(privateCIDR4) + Private6 = parseCIDR(privateCIDR6) + Unroutable4 = parseCIDR(unroutableCIDR4) + Unroutable6 = parseCIDR(unroutableCIDR6) +} + +func parseCIDR(cidrs []string) []*net.IPNet { + ipnets := make([]*net.IPNet, len(cidrs)) + for i, cidr := range cidrs { + _, ipnet, err := net.ParseCIDR(cidr) + if err != nil { + panic(err) + } + ipnets[i] = ipnet + } + return ipnets +} + +// IsPublicAddr retruns true if the IP part of the multiaddr is a publicly routable address +func IsPublicAddr(a ma.Multiaddr) bool { + isPublic := false + ma.ForEach(a, func(c ma.Component) bool { + switch c.Protocol().Code { + case ma.P_IP6ZONE: + return true + default: + return false + case ma.P_IP4: + ip := net.IP(c.RawValue()) + isPublic = !inAddrRange(ip, Private4) && !inAddrRange(ip, Unroutable4) + case ma.P_IP6: + ip := net.IP(c.RawValue()) + isPublic = !inAddrRange(ip, Private6) && !inAddrRange(ip, Unroutable6) + } + return false + }) + return isPublic +} + +// IsPrivateAddr returns true if the IP part of the mutiaddr is in a private network +func IsPrivateAddr(a ma.Multiaddr) bool { + isPrivate := false + ma.ForEach(a, func(c ma.Component) bool { + switch c.Protocol().Code { + case ma.P_IP6ZONE: + return true + default: + return false + case ma.P_IP4: + isPrivate = inAddrRange(net.IP(c.RawValue()), Private4) + case ma.P_IP6: + isPrivate = inAddrRange(net.IP(c.RawValue()), Private6) + } + return false + }) + return isPrivate +} + +func inAddrRange(ip net.IP, ipnets []*net.IPNet) bool { + for _, ipnet := range ipnets { + if ipnet.Contains(ip) { + return true + } + } + + return false +} diff --git a/vendor/github.com/multiformats/go-multiaddr-net/registry.go b/vendor/github.com/multiformats/go-multiaddr-net/registry.go new file mode 100644 index 00000000..fc6561cb --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr-net/registry.go @@ -0,0 +1,133 @@ +package manet + +import ( + "fmt" + "net" + "sync" + + ma "github.com/multiformats/go-multiaddr" +) + +// FromNetAddrFunc is a generic function which converts a net.Addr to Multiaddress +type FromNetAddrFunc func(a net.Addr) (ma.Multiaddr, error) + +// ToNetAddrFunc is a generic function which converts a Multiaddress to net.Addr +type ToNetAddrFunc func(ma ma.Multiaddr) (net.Addr, error) + +var defaultCodecs = NewCodecMap() + +func init() { + defaultCodecs.RegisterFromNetAddr(parseTCPNetAddr, "tcp", "tcp4", "tcp6") + defaultCodecs.RegisterFromNetAddr(parseUDPNetAddr, "udp", "udp4", "udp6") + defaultCodecs.RegisterFromNetAddr(parseIPNetAddr, "ip", "ip4", "ip6") + defaultCodecs.RegisterFromNetAddr(parseIPPlusNetAddr, "ip+net") + defaultCodecs.RegisterFromNetAddr(parseUnixNetAddr, "unix") + + defaultCodecs.RegisterToNetAddr(parseBasicNetMaddr, "tcp", "udp", "ip6", "ip4", "unix") +} + +// CodecMap holds a map of NetCodecs indexed by their Protocol ID +// along with parsers for the addresses they use. +// It is used to keep a list of supported network address codecs (protocols +// which addresses can be converted to and from multiaddresses). +type CodecMap struct { + codecs map[string]*NetCodec + addrParsers map[string]FromNetAddrFunc + maddrParsers map[string]ToNetAddrFunc + lk sync.Mutex +} + +// NewCodecMap initializes and returns a CodecMap object. +func NewCodecMap() *CodecMap { + return &CodecMap{ + addrParsers: make(map[string]FromNetAddrFunc), + maddrParsers: make(map[string]ToNetAddrFunc), + } +} + +// NetCodec is used to identify a network codec, that is, a network type for +// which we are able to translate multiaddresses into standard Go net.Addr +// and back. +// +// Deprecated: Unfortunately, these mappings aren't one to one. This abstraction +// assumes that multiple "networks" can map to a single multiaddr protocol but +// not the reverse. For example, this abstraction supports `tcp6, tcp4, tcp -> +// /tcp/` really well but doesn't support `ip -> {/ip4/, /ip6/}`. +// +// Please use `RegisterFromNetAddr` and `RegisterToNetAddr` directly. +type NetCodec struct { + // NetAddrNetworks is an array of strings that may be returned + // by net.Addr.Network() calls on addresses belonging to this type + NetAddrNetworks []string + + // ProtocolName is the string value for Multiaddr address keys + ProtocolName string + + // ParseNetAddr parses a net.Addr belonging to this type into a multiaddr + ParseNetAddr FromNetAddrFunc + + // ConvertMultiaddr converts a multiaddr of this type back into a net.Addr + ConvertMultiaddr ToNetAddrFunc + + // Protocol returns the multiaddr protocol struct for this type + Protocol ma.Protocol +} + +// RegisterNetCodec adds a new NetCodec to the default codecs. +func RegisterNetCodec(a *NetCodec) { + defaultCodecs.RegisterNetCodec(a) +} + +// RegisterNetCodec adds a new NetCodec to the CodecMap. This function is +// thread safe. +func (cm *CodecMap) RegisterNetCodec(a *NetCodec) { + cm.lk.Lock() + defer cm.lk.Unlock() + for _, n := range a.NetAddrNetworks { + cm.addrParsers[n] = a.ParseNetAddr + } + + cm.maddrParsers[a.ProtocolName] = a.ConvertMultiaddr +} + +// RegisterFromNetAddr registers a conversion from net.Addr instances to multiaddrs +func (cm *CodecMap) RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) { + cm.lk.Lock() + defer cm.lk.Unlock() + + for _, n := range networks { + cm.addrParsers[n] = from + } +} + +// RegisterToNetAddr registers a conversion from multiaddrs to net.Addr instances +func (cm *CodecMap) RegisterToNetAddr(to ToNetAddrFunc, protocols ...string) { + cm.lk.Lock() + defer cm.lk.Unlock() + + for _, p := range protocols { + cm.maddrParsers[p] = to + } +} + +func (cm *CodecMap) getAddrParser(net string) (FromNetAddrFunc, error) { + cm.lk.Lock() + defer cm.lk.Unlock() + + parser, ok := cm.addrParsers[net] + if !ok { + return nil, fmt.Errorf("unknown network %v", net) + } + return parser, nil +} + +func (cm *CodecMap) getMaddrParser(name string) (ToNetAddrFunc, error) { + cm.lk.Lock() + defer cm.lk.Unlock() + p, ok := cm.maddrParsers[name] + if !ok { + return nil, fmt.Errorf("network not supported: %s", name) + } + + return p, nil +} diff --git a/vendor/github.com/multiformats/go-multiaddr/.gitignore b/vendor/github.com/multiformats/go-multiaddr/.gitignore new file mode 100644 index 00000000..1d74e219 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/.gitignore @@ -0,0 +1 @@ +.vscode/ diff --git a/vendor/github.com/multiformats/go-multiaddr/.travis.yml b/vendor/github.com/multiformats/go-multiaddr/.travis.yml new file mode 100644 index 00000000..18f4287d --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/multiformats/go-multiaddr/LICENSE b/vendor/github.com/multiformats/go-multiaddr/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multiaddr/Makefile b/vendor/github.com/multiformats/go-multiaddr/Makefile new file mode 100644 index 00000000..9eb5c446 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/Makefile @@ -0,0 +1,14 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +covertools: + go get golang.org/x/tools/cmd/cover + +deps: gx covertools + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/multiformats/go-multiaddr/README.md b/vendor/github.com/multiformats/go-multiaddr/README.md new file mode 100644 index 00000000..df2766aa --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/README.md @@ -0,0 +1,117 @@ +# go-multiaddr + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/multiformats/go-multiaddr?status.svg)](https://godoc.org/github.com/multiformats/go-multiaddr) +[![Travis CI](https://img.shields.io/travis/multiformats/go-multiaddr.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multiaddr) +[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multiaddr.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multiaddr?branch=master) + +> [multiaddr](https://github.com/multiformats/multiaddr) implementation in go + +Multiaddr is a standard way to represent addresses that: + +- Support any standard network protocols. +- Self-describe (include protocols). +- Have a binary packed format. +- Have a nice string representation. +- Encapsulate well. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) + - [Example](#example) + - [Simple](#simple) + - [Protocols](#protocols) + - [En/decapsulate](#endecapsulate) + - [Tunneling](#tunneling) +- [Maintainers](#maintainers) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +go get github.com/multiformats/go-multiaddr +``` + +## Usage + +### Example + +#### Simple + +```go +import ma "github.com/multiformats/go-multiaddr" + +// construct from a string (err signals parse failure) +m1, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/1234") + +// construct from bytes (err signals parse failure) +m2, err := ma.NewMultiaddrBytes(m1.Bytes()) + +// true +strings.Equal(m1.String(), "/ip4/127.0.0.1/udp/1234") +strings.Equal(m1.String(), m2.String()) +bytes.Equal(m1.Bytes(), m2.Bytes()) +m1.Equal(m2) +m2.Equal(m1) +``` + +#### Protocols + +```go +// get the multiaddr protocol description objects +m1.Protocols() +// []Protocol{ +// Protocol{ Code: 4, Name: 'ip4', Size: 32}, +// Protocol{ Code: 17, Name: 'udp', Size: 16}, +// } +``` + +#### En/decapsulate + +```go +import ma "github.com/multiformats/go-multiaddr" + +m, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/1234") +// + +sctpMA, err := ma.NewMultiaddr("/sctp/5678") + +m.Encapsulate(sctpMA) +// + +udpMA, err := ma.NewMultiaddr("/udp/1234") + +m.Decapsulate(udpMA) // up to + inc last occurrence of subaddr +// +``` + +#### Tunneling + +Multiaddr allows expressing tunnels very nicely. + +```js +printer, _ := ma.NewMultiaddr("/ip4/192.168.0.13/tcp/80") +proxy, _ := ma.NewMultiaddr("/ip4/10.20.30.40/tcp/443") +printerOverProxy := proxy.Encapsulate(printer) +// /ip4/10.20.30.40/tcp/443/ip4/192.168.0.13/tcp/80 + +proxyAgain := printerOverProxy.Decapsulate(printer) +// /ip4/10.20.30.40/tcp/443 +``` + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multiaddr/issues). + +Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2014 Juan Batiz-Benet diff --git a/vendor/github.com/multiformats/go-multiaddr/codec.go b/vendor/github.com/multiformats/go-multiaddr/codec.go new file mode 100644 index 00000000..ae58b534 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/codec.go @@ -0,0 +1,193 @@ +package multiaddr + +import ( + "bytes" + "fmt" + "strings" +) + +func stringToBytes(s string) ([]byte, error) { + + // consume trailing slashes + s = strings.TrimRight(s, "/") + + var b bytes.Buffer + sp := strings.Split(s, "/") + + if sp[0] != "" { + return nil, fmt.Errorf("invalid multiaddr, must begin with /") + } + + // consume first empty elem + sp = sp[1:] + + for len(sp) > 0 { + name := sp[0] + p := ProtocolWithName(name) + if p.Code == 0 { + return nil, fmt.Errorf("no protocol with name %s", sp[0]) + } + _, _ = b.Write(CodeToVarint(p.Code)) + sp = sp[1:] + + if p.Size == 0 { // no length. + continue + } + + if len(sp) < 1 { + return nil, fmt.Errorf("protocol requires address, none given: %s", name) + } + + if p.Path { + // it's a path protocol (terminal). + // consume the rest of the address as the next component. + sp = []string{"/" + strings.Join(sp, "/")} + } + + a, err := p.Transcoder.StringToBytes(sp[0]) + if err != nil { + return nil, fmt.Errorf("failed to parse %s: %s %s", p.Name, sp[0], err) + } + if p.Size < 0 { // varint size. + _, _ = b.Write(CodeToVarint(len(a))) + } + b.Write(a) + sp = sp[1:] + } + + return b.Bytes(), nil +} + +func validateBytes(b []byte) (err error) { + for len(b) > 0 { + code, n, err := ReadVarintCode(b) + if err != nil { + return err + } + + b = b[n:] + p := ProtocolWithCode(code) + if p.Code == 0 { + return fmt.Errorf("no protocol with code %d", code) + } + + if p.Size == 0 { + continue + } + + n, size, err := sizeForAddr(p, b) + if err != nil { + return err + } + + b = b[n:] + + if len(b) < size || size < 0 { + return fmt.Errorf("invalid value for size %d", len(b)) + } + + err = p.Transcoder.ValidateBytes(b[:size]) + if err != nil { + return err + } + + b = b[size:] + } + + return nil +} + +func readComponent(b []byte) (int, Component, error) { + var offset int + code, n, err := ReadVarintCode(b) + if err != nil { + return 0, Component{}, err + } + offset += n + + p := ProtocolWithCode(code) + if p.Code == 0 { + return 0, Component{}, fmt.Errorf("no protocol with code %d", code) + } + + if p.Size == 0 { + return offset, Component{ + bytes: b[:offset], + offset: offset, + protocol: p, + }, nil + } + + n, size, err := sizeForAddr(p, b[offset:]) + if err != nil { + return 0, Component{}, err + } + + offset += n + + if len(b[offset:]) < size || size < 0 { + return 0, Component{}, fmt.Errorf("invalid value for size %d", len(b[offset:])) + } + + return offset + size, Component{ + bytes: b[:offset+size], + protocol: p, + offset: offset, + }, nil +} + +func bytesToString(b []byte) (ret string, err error) { + var buf strings.Builder + + for len(b) > 0 { + n, c, err := readComponent(b) + if err != nil { + return "", err + } + b = b[n:] + c.writeTo(&buf) + } + + return buf.String(), nil +} + +func sizeForAddr(p Protocol, b []byte) (skip, size int, err error) { + switch { + case p.Size > 0: + return 0, (p.Size / 8), nil + case p.Size == 0: + return 0, 0, nil + default: + size, n, err := ReadVarintCode(b) + if err != nil { + return 0, 0, err + } + return n, size, nil + } +} + +func bytesSplit(b []byte) ([][]byte, error) { + var ret [][]byte + for len(b) > 0 { + code, n, err := ReadVarintCode(b) + if err != nil { + return nil, err + } + + p := ProtocolWithCode(code) + if p.Code == 0 { + return nil, fmt.Errorf("no protocol with code %d", b[0]) + } + + n2, size, err := sizeForAddr(p, b[n:]) + if err != nil { + return nil, err + } + + length := n + n2 + size + ret = append(ret, b[:length]) + b = b[length:] + } + + return ret, nil +} diff --git a/vendor/github.com/multiformats/go-multiaddr/component.go b/vendor/github.com/multiformats/go-multiaddr/component.go new file mode 100644 index 00000000..69baf7a1 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/component.go @@ -0,0 +1,181 @@ +package multiaddr + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "fmt" + "strings" +) + +// Component is a single multiaddr Component. +type Component struct { + bytes []byte + protocol Protocol + offset int +} + +func (c *Component) Bytes() []byte { + return c.bytes +} + +func (c *Component) MarshalBinary() ([]byte, error) { + return c.Bytes(), nil +} + +func (c *Component) UnmarshalBinary(data []byte) error { + _, comp, err := readComponent(data) + if err != nil { + return err + } + *c = comp + return nil +} + +func (c *Component) MarshalText() ([]byte, error) { + return []byte(c.String()), nil +} + +func (c *Component) UnmarshalText(data []byte) error { + bytes, err := stringToBytes(string(data)) + if err != nil { + return err + } + _, comp, err := readComponent(bytes) + if err != nil { + return err + } + *c = comp + return nil +} + +func (c *Component) MarshalJSON() ([]byte, error) { + txt, err := c.MarshalText() + if err != nil { + return nil, err + } + + return json.Marshal(string(txt)) +} + +func (m *Component) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + + return m.UnmarshalText([]byte(v)) +} + +func (c *Component) Equal(o Multiaddr) bool { + return bytes.Equal(c.bytes, o.Bytes()) +} + +func (c *Component) Protocols() []Protocol { + return []Protocol{c.protocol} +} + +func (c *Component) Decapsulate(o Multiaddr) Multiaddr { + if c.Equal(o) { + return nil + } + return c +} + +func (c *Component) Encapsulate(o Multiaddr) Multiaddr { + m := &multiaddr{bytes: c.bytes} + return m.Encapsulate(o) +} + +func (c *Component) ValueForProtocol(code int) (string, error) { + if c.protocol.Code != code { + return "", ErrProtocolNotFound + } + return c.Value(), nil +} + +func (c *Component) Protocol() Protocol { + return c.protocol +} + +func (c *Component) RawValue() []byte { + return c.bytes[c.offset:] +} + +func (c *Component) Value() string { + if c.protocol.Transcoder == nil { + return "" + } + value, err := c.protocol.Transcoder.BytesToString(c.bytes[c.offset:]) + if err != nil { + // This Component must have been checked. + panic(err) + } + return value +} + +func (c *Component) String() string { + var b strings.Builder + c.writeTo(&b) + return b.String() +} + +// writeTo is an efficient, private function for string-formatting a multiaddr. +// Trust me, we tend to allocate a lot when doing this. +func (c *Component) writeTo(b *strings.Builder) { + b.WriteByte('/') + b.WriteString(c.protocol.Name) + value := c.Value() + if len(value) == 0 { + return + } + if !(c.protocol.Path && value[0] == '/') { + b.WriteByte('/') + } + b.WriteString(value) +} + +// NewComponent constructs a new multiaddr component +func NewComponent(protocol, value string) (*Component, error) { + p := ProtocolWithName(protocol) + if p.Code == 0 { + return nil, fmt.Errorf("unsupported protocol: %s", protocol) + } + if p.Transcoder != nil { + bts, err := p.Transcoder.StringToBytes(value) + if err != nil { + return nil, err + } + return newComponent(p, bts), nil + } else if value != "" { + return nil, fmt.Errorf("protocol %s doesn't take a value", p.Name) + } + return newComponent(p, nil), nil + // TODO: handle path /? +} + +func newComponent(protocol Protocol, bvalue []byte) *Component { + size := len(bvalue) + size += len(protocol.VCode) + if protocol.Size < 0 { + size += VarintSize(len(bvalue)) + } + maddr := make([]byte, size) + var offset int + offset += copy(maddr[offset:], protocol.VCode) + if protocol.Size < 0 { + offset += binary.PutUvarint(maddr[offset:], uint64(len(bvalue))) + } + copy(maddr[offset:], bvalue) + + // For debugging + if len(maddr) != offset+len(bvalue) { + panic("incorrect length") + } + + return &Component{ + bytes: maddr, + protocol: protocol, + offset: offset, + } +} diff --git a/vendor/github.com/multiformats/go-multiaddr/doc.go b/vendor/github.com/multiformats/go-multiaddr/doc.go new file mode 100644 index 00000000..d8c37b26 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/doc.go @@ -0,0 +1,36 @@ +/* +Package multiaddr provides an implementation of the Multiaddr network +address format. Multiaddr emphasizes explicitness, self-description, and +portability. It allows applications to treat addresses as opaque tokens, +and to avoid making assumptions about the address representation (e.g. length). +Learn more at https://github.com/multiformats/multiaddr + +Basic Use: + + import ( + "bytes" + "strings" + ma "github.com/multiformats/go-multiaddr" + ) + + // construct from a string (err signals parse failure) + m1, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/1234") + + // construct from bytes (err signals parse failure) + m2, err := ma.NewMultiaddrBytes(m1.Bytes()) + + // true + strings.Equal(m1.String(), "/ip4/127.0.0.1/udp/1234") + strings.Equal(m1.String(), m2.String()) + bytes.Equal(m1.Bytes(), m2.Bytes()) + m1.Equal(m2) + m2.Equal(m1) + + // tunneling (en/decap) + printer, _ := ma.NewMultiaddr("/ip4/192.168.0.13/tcp/80") + proxy, _ := ma.NewMultiaddr("/ip4/10.20.30.40/tcp/443") + printerOverProxy := proxy.Encapsulate(printer) + proxyAgain := printerOverProxy.Decapsulate(printer) + +*/ +package multiaddr diff --git a/vendor/github.com/multiformats/go-multiaddr/go.mod b/vendor/github.com/multiformats/go-multiaddr/go.mod new file mode 100644 index 00000000..debcf3c5 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/go.mod @@ -0,0 +1,3 @@ +module github.com/multiformats/go-multiaddr + +require github.com/multiformats/go-multihash v0.0.1 diff --git a/vendor/github.com/multiformats/go-multiaddr/go.sum b/vendor/github.com/multiformats/go-multiaddr/go.sum new file mode 100644 index 00000000..faa395ab --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/go.sum @@ -0,0 +1,18 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multihash v1.0.10 h1:KUnC6rT8Vyw0gx4qXUS6VN1QHKrgmvdDCaURVQ7+miM= +github.com/multiformats/go-multihash v1.0.10/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/multiformats/go-multiaddr/interface.go b/vendor/github.com/multiformats/go-multiaddr/interface.go new file mode 100644 index 00000000..82cc7640 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/interface.go @@ -0,0 +1,62 @@ +package multiaddr + +import ( + "encoding" + "encoding/json" +) + +/* +Multiaddr is a cross-protocol, cross-platform format for representing +internet addresses. It emphasizes explicitness and self-description. +Learn more here: https://github.com/multiformats/multiaddr + +Multiaddrs have both a binary and string representation. + + import ma "github.com/multiformats/go-multiaddr" + + addr, err := ma.NewMultiaddr("/ip4/1.2.3.4/tcp/80") + // err non-nil when parsing failed. + +*/ +type Multiaddr interface { + json.Marshaler + json.Unmarshaler + encoding.TextMarshaler + encoding.TextUnmarshaler + encoding.BinaryMarshaler + encoding.BinaryUnmarshaler + + // Equal returns whether two Multiaddrs are exactly equal + Equal(Multiaddr) bool + + // Bytes returns the []byte representation of this Multiaddr + // + // This function may expose immutable, internal state. Do not modify. + Bytes() []byte + + // String returns the string representation of this Multiaddr + // (may panic if internal state is corrupted) + String() string + + // Protocols returns the list of Protocols this Multiaddr includes + // will panic if protocol code incorrect (and bytes accessed incorrectly) + Protocols() []Protocol + + // Encapsulate wraps this Multiaddr around another. For example: + // + // /ip4/1.2.3.4 encapsulate /tcp/80 = /ip4/1.2.3.4/tcp/80 + // + Encapsulate(Multiaddr) Multiaddr + + // Decapsultate removes a Multiaddr wrapping. For example: + // + // /ip4/1.2.3.4/tcp/80 decapsulate /ip4/1.2.3.4 = /tcp/80 + // + Decapsulate(Multiaddr) Multiaddr + + // ValueForProtocol returns the value (if any) following the specified protocol + // + // Note: protocols can appear multiple times in a single multiaddr. + // Consider using `ForEach` to walk over the addr manually. + ValueForProtocol(code int) (string, error) +} diff --git a/vendor/github.com/multiformats/go-multiaddr/multiaddr.go b/vendor/github.com/multiformats/go-multiaddr/multiaddr.go new file mode 100644 index 00000000..6794b92e --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/multiaddr.go @@ -0,0 +1,182 @@ +package multiaddr + +import ( + "bytes" + "encoding/json" + "fmt" + "log" + "strings" +) + +// multiaddr is the data structure representing a Multiaddr +type multiaddr struct { + bytes []byte +} + +// NewMultiaddr parses and validates an input string, returning a *Multiaddr +func NewMultiaddr(s string) (a Multiaddr, err error) { + defer func() { + if e := recover(); e != nil { + log.Printf("Panic in NewMultiaddr on input %q: %s", s, e) + err = fmt.Errorf("%v", e) + } + }() + b, err := stringToBytes(s) + if err != nil { + return nil, err + } + return &multiaddr{bytes: b}, nil +} + +// NewMultiaddrBytes initializes a Multiaddr from a byte representation. +// It validates it as an input string. +func NewMultiaddrBytes(b []byte) (a Multiaddr, err error) { + defer func() { + if e := recover(); e != nil { + log.Printf("Panic in NewMultiaddrBytes on input %q: %s", b, e) + err = fmt.Errorf("%v", e) + } + }() + + if err := validateBytes(b); err != nil { + return nil, err + } + + return &multiaddr{bytes: b}, nil +} + +// Equal tests whether two multiaddrs are equal +func (m *multiaddr) Equal(m2 Multiaddr) bool { + return bytes.Equal(m.bytes, m2.Bytes()) +} + +// Bytes returns the []byte representation of this Multiaddr +// +// Do not modify the returned buffer, it may be shared. +func (m *multiaddr) Bytes() []byte { + return m.bytes +} + +// String returns the string representation of a Multiaddr +func (m *multiaddr) String() string { + s, err := bytesToString(m.bytes) + if err != nil { + panic(fmt.Errorf("multiaddr failed to convert back to string. corrupted? %s", err)) + } + return s +} + +func (m *multiaddr) MarshalBinary() ([]byte, error) { + return m.Bytes(), nil +} + +func (m *multiaddr) UnmarshalBinary(data []byte) error { + new, err := NewMultiaddrBytes(data) + if err != nil { + return err + } + *m = *(new.(*multiaddr)) + return nil +} + +func (m *multiaddr) MarshalText() ([]byte, error) { + return []byte(m.String()), nil +} + +func (m *multiaddr) UnmarshalText(data []byte) error { + new, err := NewMultiaddr(string(data)) + if err != nil { + return err + } + *m = *(new.(*multiaddr)) + return nil +} + +func (m *multiaddr) MarshalJSON() ([]byte, error) { + return json.Marshal(m.String()) +} + +func (m *multiaddr) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + new, err := NewMultiaddr(v) + *m = *(new.(*multiaddr)) + return err +} + +// Protocols returns the list of protocols this Multiaddr has. +// will panic in case we access bytes incorrectly. +func (m *multiaddr) Protocols() []Protocol { + ps := make([]Protocol, 0, 8) + b := m.bytes + for len(b) > 0 { + code, n, err := ReadVarintCode(b) + if err != nil { + panic(err) + } + + p := ProtocolWithCode(code) + if p.Code == 0 { + // this is a panic (and not returning err) because this should've been + // caught on constructing the Multiaddr + panic(fmt.Errorf("no protocol with code %d", b[0])) + } + ps = append(ps, p) + b = b[n:] + + n, size, err := sizeForAddr(p, b) + if err != nil { + panic(err) + } + + b = b[n+size:] + } + return ps +} + +// Encapsulate wraps a given Multiaddr, returning the resulting joined Multiaddr +func (m *multiaddr) Encapsulate(o Multiaddr) Multiaddr { + mb := m.bytes + ob := o.Bytes() + + b := make([]byte, len(mb)+len(ob)) + copy(b, mb) + copy(b[len(mb):], ob) + return &multiaddr{bytes: b} +} + +// Decapsulate unwraps Multiaddr up until the given Multiaddr is found. +func (m *multiaddr) Decapsulate(o Multiaddr) Multiaddr { + s1 := m.String() + s2 := o.String() + i := strings.LastIndex(s1, s2) + if i < 0 { + // if multiaddr not contained, returns a copy. + cpy := make([]byte, len(m.bytes)) + copy(cpy, m.bytes) + return &multiaddr{bytes: cpy} + } + + ma, err := NewMultiaddr(s1[:i]) + if err != nil { + panic("Multiaddr.Decapsulate incorrect byte boundaries.") + } + return ma +} + +var ErrProtocolNotFound = fmt.Errorf("protocol not found in multiaddr") + +func (m *multiaddr) ValueForProtocol(code int) (value string, err error) { + err = ErrProtocolNotFound + ForEach(m, func(c Component) bool { + if c.Protocol().Code == code { + value = c.Value() + err = nil + return false + } + return true + }) + return +} diff --git a/vendor/github.com/multiformats/go-multiaddr/package.json b/vendor/github.com/multiformats/go-multiaddr/package.json new file mode 100644 index 00000000..c493b27e --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/package.json @@ -0,0 +1,23 @@ +{ + "author": "multiformats", + "bugs": { + "url": "https://github.com/multiformats/go-multiaddr/issues" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multiaddr" + }, + "gxDependencies": [ + { + "hash": "QmerPMzPk1mJVowm8KgmoknWa4yCYvvugMPsgWmDNUvDLW", + "name": "go-multihash", + "version": "1.0.9" + } + ], + "gxVersion": "0.9.0", + "language": "go", + "license": "MIT", + "name": "go-multiaddr", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.4.1" +} + diff --git a/vendor/github.com/multiformats/go-multiaddr/protocol.go b/vendor/github.com/multiformats/go-multiaddr/protocol.go new file mode 100644 index 00000000..f9d70363 --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/protocol.go @@ -0,0 +1,129 @@ +package multiaddr + +import ( + "fmt" + "strings" +) + +// These are special sizes +const ( + LengthPrefixedVarSize = -1 +) + +// Protocol is a Multiaddr protocol description structure. +type Protocol struct { + // Name is the string representation of the protocol code. E.g., ip4, + // ip6, tcp, udp, etc. + Name string + + // Code is the protocol's multicodec (a normal, non-varint number). + Code int + + // VCode is a precomputed varint encoded version of Code. + VCode []byte + + // Size is the size of the argument to this protocol. + // + // * Size == 0 means this protocol takes no argument. + // * Size > 0 means this protocol takes a constant sized argument. + // * Size < 0 means this protocol takes a variable length, varint + // prefixed argument. + Size int // a size of -1 indicates a length-prefixed variable size + + // Path indicates a path protocol (e.g., unix). When parsing multiaddr + // strings, path protocols consume the remainder of the address instead + // of stopping at the next forward slash. + // + // Size must be LengthPrefixedVarSize. + Path bool + + // Transcoder converts between the byte representation and the string + // representation of this protocol's argument (if any). + // + // This should only be non-nil if Size != 0 + Transcoder Transcoder +} + +var protocolsByName = map[string]Protocol{} +var protocolsByCode = map[int]Protocol{} + +// Protocols is the list of multiaddr protocols supported by this module. +var Protocols = []Protocol{} + +// SwapToP2pMultiaddrs is a function to make the transition from /ipfs/... +// multiaddrs to /p2p/... multiaddrs easier +// The first stage of the rollout is to ship this package to all users so +// that all users of multiaddr can parse both /ipfs/ and /p2p/ multiaddrs +// as the same code (P_P2P). During this stage of the rollout, all addresses +// with P_P2P will continue printing as /ipfs/, so that older clients without +// the new parsing code won't break. +// Once the network has adopted the new parsing code broadly enough, users of +// multiaddr can add a call to this method to an init function in their codebase. +// This will cause any P_P2P multiaddr to print out as /p2p/ instead of /ipfs/. +// Note that the binary serialization of this multiaddr does not change at any +// point. This means that this code is not a breaking network change at any point +func SwapToP2pMultiaddrs() { + for i := range Protocols { + if Protocols[i].Code == P_P2P { + Protocols[i].Name = "p2p" + break + } + } + + protoP2P.Name = "p2p" + + protocolsByName["ipfs"] = protoP2P + protocolsByName["p2p"] = protoP2P + protocolsByCode[protoP2P.Code] = protoP2P +} + +func AddProtocol(p Protocol) error { + if _, ok := protocolsByName[p.Name]; ok { + return fmt.Errorf("protocol by the name %q already exists", p.Name) + } + + if _, ok := protocolsByCode[p.Code]; ok { + return fmt.Errorf("protocol code %d already taken by %q", p.Code, p.Code) + } + + if p.Size != 0 && p.Transcoder == nil { + return fmt.Errorf("protocols with arguments must define transcoders") + } + if p.Path && p.Size >= 0 { + return fmt.Errorf("path protocols must have variable-length sizes") + } + + Protocols = append(Protocols, p) + protocolsByName[p.Name] = p + protocolsByCode[p.Code] = p + return nil +} + +// ProtocolWithName returns the Protocol description with given string name. +func ProtocolWithName(s string) Protocol { + return protocolsByName[s] +} + +// ProtocolWithCode returns the Protocol description with given protocol code. +func ProtocolWithCode(c int) Protocol { + return protocolsByCode[c] +} + +// ProtocolsWithString returns a slice of protocols matching given string. +func ProtocolsWithString(s string) ([]Protocol, error) { + s = strings.Trim(s, "/") + sp := strings.Split(s, "/") + if len(sp) == 0 { + return nil, nil + } + + t := make([]Protocol, len(sp)) + for i, name := range sp { + p := ProtocolWithName(name) + if p.Code == 0 { + return nil, fmt.Errorf("no protocol with name: %s", name) + } + t[i] = p + } + return t, nil +} diff --git a/vendor/github.com/multiformats/go-multiaddr/protocols.go b/vendor/github.com/multiformats/go-multiaddr/protocols.go new file mode 100644 index 00000000..ea5d0bcb --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/protocols.go @@ -0,0 +1,180 @@ +package multiaddr + +// You **MUST** register your multicodecs with +// https://github.com/multiformats/multicodec before adding them here. +const ( + P_IP4 = 0x0004 + P_TCP = 0x0006 + P_UDP = 0x0111 + P_DCCP = 0x0021 + P_IP6 = 0x0029 + P_IP6ZONE = 0x002A + P_QUIC = 0x01CC + P_SCTP = 0x0084 + P_UDT = 0x012D + P_UTP = 0x012E + P_UNIX = 0x0190 + P_P2P = 0x01A5 + P_IPFS = 0x01A5 // alias for backwards compatability + P_HTTP = 0x01E0 + P_HTTPS = 0x01BB + P_ONION = 0x01BC // also for backwards compatibility + P_ONION3 = 0x01BD + P_GARLIC64 = 0x01CA + P_P2P_WEBRTC_DIRECT = 0x0114 +) + +var ( + protoIP4 = Protocol{ + Name: "ip4", + Code: P_IP4, + VCode: CodeToVarint(P_IP4), + Size: 32, + Path: false, + Transcoder: TranscoderIP4, + } + protoTCP = Protocol{ + Name: "tcp", + Code: P_TCP, + VCode: CodeToVarint(P_TCP), + Size: 16, + Path: false, + Transcoder: TranscoderPort, + } + protoUDP = Protocol{ + Name: "udp", + Code: P_UDP, + VCode: CodeToVarint(P_UDP), + Size: 16, + Path: false, + Transcoder: TranscoderPort, + } + protoDCCP = Protocol{ + Name: "dccp", + Code: P_DCCP, + VCode: CodeToVarint(P_DCCP), + Size: 16, + Path: false, + Transcoder: TranscoderPort, + } + protoIP6 = Protocol{ + Name: "ip6", + Code: P_IP6, + VCode: CodeToVarint(P_IP6), + Size: 128, + Transcoder: TranscoderIP6, + } + // these require varint + protoIP6ZONE = Protocol{ + Name: "ip6zone", + Code: P_IP6ZONE, + VCode: CodeToVarint(P_IP6ZONE), + Size: LengthPrefixedVarSize, + Path: false, + Transcoder: TranscoderIP6Zone, + } + protoSCTP = Protocol{ + Name: "sctp", + Code: P_SCTP, + VCode: CodeToVarint(P_SCTP), + Size: 16, + Transcoder: TranscoderPort, + } + protoONION2 = Protocol{ + Name: "onion", + Code: P_ONION, + VCode: CodeToVarint(P_ONION), + Size: 96, + Transcoder: TranscoderOnion, + } + protoONION3 = Protocol{ + Name: "onion3", + Code: P_ONION3, + VCode: CodeToVarint(P_ONION3), + Size: 296, + Transcoder: TranscoderOnion3, + } + protoGARLIC64 = Protocol{ + Name: "garlic64", + Code: P_GARLIC64, + VCode: CodeToVarint(P_GARLIC64), + Size: LengthPrefixedVarSize, + Transcoder: TranscoderGarlic64, + } + protoUTP = Protocol{ + Name: "utp", + Code: P_UTP, + VCode: CodeToVarint(P_UTP), + } + protoUDT = Protocol{ + Name: "udt", + Code: P_UDT, + VCode: CodeToVarint(P_UDT), + } + protoQUIC = Protocol{ + Name: "quic", + Code: P_QUIC, + VCode: CodeToVarint(P_QUIC), + } + protoHTTP = Protocol{ + Name: "http", + Code: P_HTTP, + VCode: CodeToVarint(P_HTTP), + } + protoHTTPS = Protocol{ + Name: "https", + Code: P_HTTPS, + VCode: CodeToVarint(P_HTTPS), + } + protoP2P = Protocol{ + Name: "ipfs", + Code: P_P2P, + VCode: CodeToVarint(P_P2P), + Size: LengthPrefixedVarSize, + Transcoder: TranscoderP2P, + } + protoUNIX = Protocol{ + Name: "unix", + Code: P_UNIX, + VCode: CodeToVarint(P_UNIX), + Size: LengthPrefixedVarSize, + Path: true, + Transcoder: TranscoderUnix, + } + protoP2P_WEBRTC_DIRECT = Protocol{ + Name: "p2p-webrtc-direct", + Code: P_P2P_WEBRTC_DIRECT, + VCode: CodeToVarint(P_P2P_WEBRTC_DIRECT), + } +) + +func init() { + for _, p := range []Protocol{ + protoIP4, + protoTCP, + protoUDP, + protoDCCP, + protoIP6, + protoIP6ZONE, + protoSCTP, + protoONION2, + protoONION3, + protoGARLIC64, + protoUTP, + protoUDT, + protoQUIC, + protoHTTP, + protoHTTPS, + protoP2P, + protoUNIX, + protoP2P_WEBRTC_DIRECT, + } { + if err := AddProtocol(p); err != nil { + panic(err) + } + } + + // explicitly set both of these + protocolsByName["p2p"] = protoP2P + protocolsByName["ipfs"] = protoP2P +} diff --git a/vendor/github.com/multiformats/go-multiaddr/transcoders.go b/vendor/github.com/multiformats/go-multiaddr/transcoders.go new file mode 100644 index 00000000..cca2514c --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/transcoders.go @@ -0,0 +1,280 @@ +package multiaddr + +import ( + "bytes" + "encoding/base32" + "encoding/base64" + "encoding/binary" + "fmt" + "net" + "strconv" + "strings" + + mh "github.com/multiformats/go-multihash" +) + +type Transcoder interface { + StringToBytes(string) ([]byte, error) + BytesToString([]byte) (string, error) + ValidateBytes([]byte) error +} + +func NewTranscoderFromFunctions( + s2b func(string) ([]byte, error), + b2s func([]byte) (string, error), + val func([]byte) error, +) Transcoder { + return twrp{s2b, b2s, val} +} + +type twrp struct { + strtobyte func(string) ([]byte, error) + bytetostr func([]byte) (string, error) + validbyte func([]byte) error +} + +func (t twrp) StringToBytes(s string) ([]byte, error) { + return t.strtobyte(s) +} +func (t twrp) BytesToString(b []byte) (string, error) { + return t.bytetostr(b) +} + +func (t twrp) ValidateBytes(b []byte) error { + if t.validbyte == nil { + return nil + } + return t.validbyte(b) +} + +var TranscoderIP4 = NewTranscoderFromFunctions(ip4StB, ip4BtS, nil) +var TranscoderIP6 = NewTranscoderFromFunctions(ip6StB, ip6BtS, nil) +var TranscoderIP6Zone = NewTranscoderFromFunctions(ip6zoneStB, ip6zoneBtS, ip6zoneVal) + +func ip4StB(s string) ([]byte, error) { + i := net.ParseIP(s).To4() + if i == nil { + return nil, fmt.Errorf("failed to parse ip4 addr: %s", s) + } + return i, nil +} + +func ip6zoneStB(s string) ([]byte, error) { + if len(s) == 0 { + return nil, fmt.Errorf("empty ip6zone") + } + return []byte(s), nil +} + +func ip6zoneBtS(b []byte) (string, error) { + if len(b) == 0 { + return "", fmt.Errorf("invalid length (should be > 0)") + } + return string(b), nil +} + +func ip6zoneVal(b []byte) error { + if len(b) == 0 { + return fmt.Errorf("invalid length (should be > 0)") + } + // Not supported as this would break multiaddrs. + if bytes.IndexByte(b, '/') >= 0 { + return fmt.Errorf("IPv6 zone ID contains '/': %s", string(b)) + } + return nil +} + +func ip6StB(s string) ([]byte, error) { + i := net.ParseIP(s).To16() + if i == nil { + return nil, fmt.Errorf("failed to parse ip6 addr: %s", s) + } + return i, nil +} + +func ip6BtS(b []byte) (string, error) { + ip := net.IP(b) + if ip4 := ip.To4(); ip4 != nil { + // Go fails to prepend the `::ffff:` part. + return "::ffff:" + ip4.String(), nil + } + return ip.String(), nil +} + +func ip4BtS(b []byte) (string, error) { + return net.IP(b).String(), nil +} + +var TranscoderPort = NewTranscoderFromFunctions(portStB, portBtS, nil) + +func portStB(s string) ([]byte, error) { + i, err := strconv.Atoi(s) + if err != nil { + return nil, fmt.Errorf("failed to parse port addr: %s", err) + } + if i >= 65536 { + return nil, fmt.Errorf("failed to parse port addr: %s", "greater than 65536") + } + b := make([]byte, 2) + binary.BigEndian.PutUint16(b, uint16(i)) + return b, nil +} + +func portBtS(b []byte) (string, error) { + i := binary.BigEndian.Uint16(b) + return strconv.Itoa(int(i)), nil +} + +var TranscoderOnion = NewTranscoderFromFunctions(onionStB, onionBtS, nil) + +func onionStB(s string) ([]byte, error) { + addr := strings.Split(s, ":") + if len(addr) != 2 { + return nil, fmt.Errorf("failed to parse onion addr: %s does not contain a port number.", s) + } + + // onion address without the ".onion" substring + if len(addr[0]) != 16 { + return nil, fmt.Errorf("failed to parse onion addr: %s not a Tor onion address.", s) + } + onionHostBytes, err := base32.StdEncoding.DecodeString(strings.ToUpper(addr[0])) + if err != nil { + return nil, fmt.Errorf("failed to decode base32 onion addr: %s %s", s, err) + } + + // onion port number + i, err := strconv.Atoi(addr[1]) + if err != nil { + return nil, fmt.Errorf("failed to parse onion addr: %s", err) + } + if i >= 65536 { + return nil, fmt.Errorf("failed to parse onion addr: %s", "port greater than 65536") + } + if i < 1 { + return nil, fmt.Errorf("failed to parse onion addr: %s", "port less than 1") + } + + onionPortBytes := make([]byte, 2) + binary.BigEndian.PutUint16(onionPortBytes, uint16(i)) + bytes := []byte{} + bytes = append(bytes, onionHostBytes...) + bytes = append(bytes, onionPortBytes...) + return bytes, nil +} + +func onionBtS(b []byte) (string, error) { + addr := strings.ToLower(base32.StdEncoding.EncodeToString(b[0:10])) + port := binary.BigEndian.Uint16(b[10:12]) + return addr + ":" + strconv.Itoa(int(port)), nil +} + +var TranscoderOnion3 = NewTranscoderFromFunctions(onion3StB, onion3BtS, nil) + +func onion3StB(s string) ([]byte, error) { + addr := strings.Split(s, ":") + if len(addr) != 2 { + return nil, fmt.Errorf("failed to parse onion addr: %s does not contain a port number.", s) + } + + // onion address without the ".onion" substring + if len(addr[0]) != 56 { + return nil, fmt.Errorf("failed to parse onion addr: %s not a Tor onionv3 address. len == %d", s, len(addr[0])) + } + onionHostBytes, err := base32.StdEncoding.DecodeString(strings.ToUpper(addr[0])) + if err != nil { + return nil, fmt.Errorf("failed to decode base32 onion addr: %s %s", s, err) + } + + // onion port number + i, err := strconv.Atoi(addr[1]) + if err != nil { + return nil, fmt.Errorf("failed to parse onion addr: %s", err) + } + if i >= 65536 { + return nil, fmt.Errorf("failed to parse onion addr: %s", "port greater than 65536") + } + if i < 1 { + return nil, fmt.Errorf("failed to parse onion addr: %s", "port less than 1") + } + + onionPortBytes := make([]byte, 2) + binary.BigEndian.PutUint16(onionPortBytes, uint16(i)) + bytes := []byte{} + bytes = append(bytes, onionHostBytes[0:35]...) + bytes = append(bytes, onionPortBytes...) + return bytes, nil +} + +func onion3BtS(b []byte) (string, error) { + addr := strings.ToLower(base32.StdEncoding.EncodeToString(b[0:35])) + port := binary.BigEndian.Uint16(b[35:37]) + str := addr + ":" + strconv.Itoa(int(port)) + return str, nil +} + +var TranscoderGarlic64 = NewTranscoderFromFunctions(garlic64StB, garlic64BtS, garlicValidate) + +// i2p uses an alternate character set for base64 addresses. This returns an appropriate encoder. +var garlicBase64Encoding = base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-~") + +func garlic64StB(s string) ([]byte, error) { + // i2p base64 address + if len(s) < 516 || len(s) > 616 { + return nil, fmt.Errorf("failed to parse garlic addr: %s not an i2p base64 address. len: %d\n", s, len(s)) + } + garlicHostBytes, err := garlicBase64Encoding.DecodeString(s) + if err != nil { + return nil, fmt.Errorf("failed to decode base64 i2p addr: %s %s", s, err) + } + + return garlicHostBytes, nil +} + +func garlic64BtS(b []byte) (string, error) { + if len(b) < 386 { + return "", fmt.Errorf("failed to validate garlic addr: %s not an i2p base64 address. len: %d\n", b, len(b)) + } + addr := garlicBase64Encoding.EncodeToString(b) + return addr, nil +} + +func garlicValidate(b []byte) error { + if len(b) < 386 { + return fmt.Errorf("failed to validate garlic addr: %s not an i2p base64 address. len: %d\n", b, len(b)) + } + return nil +} + +var TranscoderP2P = NewTranscoderFromFunctions(p2pStB, p2pBtS, p2pVal) + +func p2pStB(s string) ([]byte, error) { + // the address is a varint prefixed multihash string representation + m, err := mh.FromB58String(s) + if err != nil { + return nil, fmt.Errorf("failed to parse p2p addr: %s %s", s, err) + } + return m, nil +} + +func p2pVal(b []byte) error { + _, err := mh.Cast(b) + return err +} + +func p2pBtS(b []byte) (string, error) { + m, err := mh.Cast(b) + if err != nil { + return "", err + } + return m.B58String(), nil +} + +var TranscoderUnix = NewTranscoderFromFunctions(unixStB, unixBtS, nil) + +func unixStB(s string) ([]byte, error) { + return []byte(s), nil +} + +func unixBtS(b []byte) (string, error) { + return string(b), nil +} diff --git a/vendor/github.com/multiformats/go-multiaddr/util.go b/vendor/github.com/multiformats/go-multiaddr/util.go new file mode 100644 index 00000000..cf4469af --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/util.go @@ -0,0 +1,180 @@ +package multiaddr + +import "fmt" + +// Split returns the sub-address portions of a multiaddr. +func Split(m Multiaddr) []Multiaddr { + if _, ok := m.(*Component); ok { + return []Multiaddr{m} + } + var addrs []Multiaddr + ForEach(m, func(c Component) bool { + addrs = append(addrs, &c) + return true + }) + return addrs +} + +// Join returns a combination of addresses. +func Join(ms ...Multiaddr) Multiaddr { + switch len(ms) { + case 0: + // empty multiaddr, unfortunately, we have callers that rely on + // this contract. + return &multiaddr{} + case 1: + return ms[0] + } + + length := 0 + bs := make([][]byte, len(ms)) + for i, m := range ms { + bs[i] = m.Bytes() + length += len(bs[i]) + } + + bidx := 0 + b := make([]byte, length) + for _, mb := range bs { + bidx += copy(b[bidx:], mb) + } + return &multiaddr{bytes: b} +} + +// Cast re-casts a byte slice as a multiaddr. will panic if it fails to parse. +func Cast(b []byte) Multiaddr { + m, err := NewMultiaddrBytes(b) + if err != nil { + panic(fmt.Errorf("multiaddr failed to parse: %s", err)) + } + return m +} + +// StringCast like Cast, but parses a string. Will also panic if it fails to parse. +func StringCast(s string) Multiaddr { + m, err := NewMultiaddr(s) + if err != nil { + panic(fmt.Errorf("multiaddr failed to parse: %s", err)) + } + return m +} + +// SplitFirst returns the first component and the rest of the multiaddr. +func SplitFirst(m Multiaddr) (*Component, Multiaddr) { + // Shortcut if we already have a component + if c, ok := m.(*Component); ok { + return c, nil + } + + b := m.Bytes() + if len(b) == 0 { + return nil, nil + } + n, c, err := readComponent(b) + if err != nil { + panic(err) + } + if len(b) == n { + return &c, nil + } + return &c, &multiaddr{b[n:]} +} + +// SplitLast returns the rest of the multiaddr and the last component. +func SplitLast(m Multiaddr) (Multiaddr, *Component) { + // Shortcut if we already have a component + if c, ok := m.(*Component); ok { + return nil, c + } + + b := m.Bytes() + if len(b) == 0 { + return nil, nil + } + + var ( + c Component + err error + offset int + ) + for { + var n int + n, c, err = readComponent(b[offset:]) + if err != nil { + panic(err) + } + if len(b) == n+offset { + // Reached end + if offset == 0 { + // Only one component + return nil, &c + } + return &multiaddr{b[:offset]}, &c + } + offset += n + } +} + +// SplitFunc splits the multiaddr when the callback first returns true. The +// component on which the callback first returns will be included in the +// *second* multiaddr. +func SplitFunc(m Multiaddr, cb func(Component) bool) (Multiaddr, Multiaddr) { + // Shortcut if we already have a component + if c, ok := m.(*Component); ok { + if cb(*c) { + return nil, m + } + return m, nil + } + b := m.Bytes() + if len(b) == 0 { + return nil, nil + } + var ( + c Component + err error + offset int + ) + for offset < len(b) { + var n int + n, c, err = readComponent(b[offset:]) + if err != nil { + panic(err) + } + if cb(c) { + break + } + offset += n + } + switch offset { + case 0: + return nil, m + case len(b): + return m, nil + default: + return &multiaddr{b[:offset]}, &multiaddr{b[offset:]} + } +} + +// ForEach walks over the multiaddr, component by component. +// +// This function iterates over components *by value* to avoid allocating. +func ForEach(m Multiaddr, cb func(c Component) bool) { + // Shortcut if we already have a component + if c, ok := m.(*Component); ok { + cb(*c) + return + } + + b := m.Bytes() + for len(b) > 0 { + n, c, err := readComponent(b) + if err != nil { + panic(err) + } + if !cb(c) { + return + } + b = b[n:] + } +} diff --git a/vendor/github.com/multiformats/go-multiaddr/varint.go b/vendor/github.com/multiformats/go-multiaddr/varint.go new file mode 100644 index 00000000..b8b1507b --- /dev/null +++ b/vendor/github.com/multiformats/go-multiaddr/varint.go @@ -0,0 +1,44 @@ +package multiaddr + +import ( + "encoding/binary" + "fmt" + "math/bits" +) + +// VarintSize returns the size (in bytes) of `num` encoded as a varint. +func VarintSize(num int) int { + bits := bits.Len(uint(num)) + q, r := bits/7, bits%7 + size := q + if r > 0 || size == 0 { + size++ + } + return size +} + +// CodeToVarint converts an integer to a varint-encoded []byte +func CodeToVarint(num int) []byte { + buf := make([]byte, VarintSize(num)) + n := binary.PutUvarint(buf, uint64(num)) + return buf[:n] +} + +// VarintToCode converts a varint-encoded []byte to an integer protocol code +func VarintToCode(buf []byte) int { + num, _, err := ReadVarintCode(buf) + if err != nil { + panic(err) + } + return num +} + +// ReadVarintCode reads a varint code from the beginning of buf. +// returns the code, and the number of bytes read. +func ReadVarintCode(buf []byte) (int, int, error) { + num, n := binary.Uvarint(buf) + if n < 0 { + return 0, 0, fmt.Errorf("varints larger than uint64 not yet supported") + } + return int(num), n, nil +} diff --git a/vendor/github.com/multiformats/go-multibase/.codecov.yml b/vendor/github.com/multiformats/go-multibase/.codecov.yml new file mode 100644 index 00000000..db247200 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/.codecov.yml @@ -0,0 +1 @@ +comment: off diff --git a/vendor/github.com/multiformats/go-multibase/.gitignore b/vendor/github.com/multiformats/go-multibase/.gitignore new file mode 100644 index 00000000..175b2916 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/.gitignore @@ -0,0 +1,3 @@ +*.swp + +multibase-conv/multibase-conv diff --git a/vendor/github.com/multiformats/go-multibase/.gitmodules b/vendor/github.com/multiformats/go-multibase/.gitmodules new file mode 100644 index 00000000..74c037fa --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/.gitmodules @@ -0,0 +1,3 @@ +[submodule "spec"] + path = spec + url = https://github.com/multiformats/multibase.git diff --git a/vendor/github.com/multiformats/go-multibase/.gxignore b/vendor/github.com/multiformats/go-multibase/.gxignore new file mode 100644 index 00000000..c1d28ba5 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/.gxignore @@ -0,0 +1,2 @@ +/spec/ +*_test.go diff --git a/vendor/github.com/multiformats/go-multibase/.travis.yml b/vendor/github.com/multiformats/go-multibase/.travis.yml new file mode 100644 index 00000000..18f4287d --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/multiformats/go-multibase/LICENSE b/vendor/github.com/multiformats/go-multibase/LICENSE new file mode 100644 index 00000000..f64ffb04 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Protocol Labs Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multibase/Makefile b/vendor/github.com/multiformats/go-multibase/Makefile new file mode 100644 index 00000000..411b4a88 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/Makefile @@ -0,0 +1,13 @@ +test: deps + go test -race -v ./... + +export IPFS_API ?= v04x.ipfs.io + +gx: + go get -u github.com/whyrusleeping/gx + go get -u github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + go get -t ./... diff --git a/vendor/github.com/multiformats/go-multibase/README.md b/vendor/github.com/multiformats/go-multibase/README.md new file mode 100644 index 00000000..3c745445 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/README.md @@ -0,0 +1,49 @@ +# go-multibase + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![Travis CI](https://img.shields.io/travis/multiformats/go-multibase.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multibase) +[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multibase.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multibase?branch=master) + +> Implementation of [multibase](https://github.com/multiformats/multibase) -self identifying base encodings- in Go. + + +## Install + +`go-multibase` is a standard Go module which can be installed with: + +```sh +go get github.com/multiformats/go-multibase +``` + +Note that `go-multibase` is packaged with Gx, so it is recommended to use Gx to install and use it (see Usage section). + +## Usage + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project it is recommended that you: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/multiformats/go-multibase +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multibase/issues). + +Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2016 Protocol Labs Inc. diff --git a/vendor/github.com/multiformats/go-multibase/base16.go b/vendor/github.com/multiformats/go-multibase/base16.go new file mode 100644 index 00000000..6b879419 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/base16.go @@ -0,0 +1,21 @@ +package multibase + +func hexEncodeToStringUpper(src []byte) string { + dst := make([]byte, len(src)*2) + hexEncodeUpper(dst, src) + return string(dst) +} + +var hexTableUppers = [16]byte{ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', +} + +func hexEncodeUpper(dst, src []byte) int { + for i, v := range src { + dst[i*2] = hexTableUppers[v>>4] + dst[i*2+1] = hexTableUppers[v&0x0f] + } + + return len(src) * 2 +} diff --git a/vendor/github.com/multiformats/go-multibase/base2.go b/vendor/github.com/multiformats/go-multibase/base2.go new file mode 100644 index 00000000..6e3f0cff --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/base2.go @@ -0,0 +1,52 @@ +package multibase + +import ( + "fmt" + "strconv" + "strings" +) + +// binaryEncodeToString takes an array of bytes and returns +// multibase binary representation +func binaryEncodeToString(src []byte) string { + dst := make([]byte, len(src)*8) + encodeBinary(dst, src) + return string(dst) +} + +// encodeBinary takes the src and dst bytes and converts each +// byte to their binary rep using power reduction method +func encodeBinary(dst []byte, src []byte) { + for i, b := range src { + for j := 0; j < 8; j++ { + if b&(1<>3) + + for i, dstIndex := 0, 0; i < len(s); i = i + 8 { + value, err := strconv.ParseInt(s[i:i+8], 2, 0) + if err != nil { + return nil, fmt.Errorf("error while conversion: %s", err) + } + + data[dstIndex] = byte(value) + dstIndex++ + } + + return data, nil +} diff --git a/vendor/github.com/multiformats/go-multibase/base32.go b/vendor/github.com/multiformats/go-multibase/base32.go new file mode 100644 index 00000000..a6fe8eb0 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/base32.go @@ -0,0 +1,17 @@ +package multibase + +import ( + b32 "github.com/multiformats/go-base32" +) + +var base32StdLowerPad = b32.NewEncodingCI("abcdefghijklmnopqrstuvwxyz234567") +var base32StdLowerNoPad = base32StdLowerPad.WithPadding(b32.NoPadding) + +var base32StdUpperPad = b32.NewEncodingCI("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567") +var base32StdUpperNoPad = base32StdUpperPad.WithPadding(b32.NoPadding) + +var base32HexLowerPad = b32.NewEncodingCI("0123456789abcdefghijklmnopqrstuv") +var base32HexLowerNoPad = base32HexLowerPad.WithPadding(b32.NoPadding) + +var base32HexUpperPad = b32.NewEncodingCI("0123456789ABCDEFGHIJKLMNOPQRSTUV") +var base32HexUpperNoPad = base32HexUpperPad.WithPadding(b32.NoPadding) diff --git a/vendor/github.com/multiformats/go-multibase/encoder.go b/vendor/github.com/multiformats/go-multibase/encoder.go new file mode 100644 index 00000000..42e753f5 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/encoder.go @@ -0,0 +1,63 @@ +package multibase + +import ( + "fmt" +) + +// Encoder is a multibase encoding that is verified to be supported and +// supports an Encode method that does not return an error +type Encoder struct { + enc Encoding +} + +// NewEncoder create a new Encoder from an Encoding +func NewEncoder(base Encoding) (Encoder, error) { + _, ok := EncodingToStr[base] + if !ok { + return Encoder{-1}, fmt.Errorf("Unsupported multibase encoding: %d", base) + } + return Encoder{base}, nil +} + +// MustNewEncoder is like NewEncoder but will panic if the encoding is +// invalid. +func MustNewEncoder(base Encoding) Encoder { + _, ok := EncodingToStr[base] + if !ok { + panic("Unsupported multibase encoding") + } + return Encoder{base} +} + +// EncoderByName creates an encoder from a string, the string can +// either be the multibase name or single character multibase prefix +func EncoderByName(str string) (Encoder, error) { + var base Encoding + ok := true + if len(str) == 0 { + return Encoder{-1}, fmt.Errorf("Empty multibase encoding") + } else if len(str) == 1 { + base = Encoding(str[0]) + _, ok = EncodingToStr[base] + } else { + base, ok = Encodings[str] + } + if !ok { + return Encoder{-1}, fmt.Errorf("Unsupported multibase encoding: %s", str) + } + return Encoder{base}, nil +} + +func (p Encoder) Encoding() Encoding { + return p.enc +} + +// Encode encodes the multibase using the given Encoder. +func (p Encoder) Encode(data []byte) string { + str, err := Encode(p.enc, data) + if err != nil { + // should not happen + panic(err) + } + return str +} diff --git a/vendor/github.com/multiformats/go-multibase/go.mod b/vendor/github.com/multiformats/go-multibase/go.mod new file mode 100644 index 00000000..28d6eb12 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/go.mod @@ -0,0 +1,6 @@ +module github.com/multiformats/go-multibase + +require ( + github.com/mr-tron/base58 v1.1.0 + github.com/multiformats/go-base32 v0.0.3 +) diff --git a/vendor/github.com/multiformats/go-multibase/go.sum b/vendor/github.com/multiformats/go-multibase/go.sum new file mode 100644 index 00000000..510e3dcd --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/go.sum @@ -0,0 +1,4 @@ +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= diff --git a/vendor/github.com/multiformats/go-multibase/multibase.go b/vendor/github.com/multiformats/go-multibase/multibase.go new file mode 100644 index 00000000..0f9b3961 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/multibase.go @@ -0,0 +1,187 @@ +package multibase + +import ( + "encoding/base64" + "encoding/hex" + "fmt" + + b58 "github.com/mr-tron/base58/base58" + b32 "github.com/multiformats/go-base32" +) + +// Encoding identifies the type of base-encoding that a multibase is carrying. +type Encoding int + +// These are the encodings specified in the standard, not are all +// supported yet +const ( + Identity = 0x00 + Base1 = '1' + Base2 = '0' + Base8 = '7' + Base10 = '9' + Base16 = 'f' + Base16Upper = 'F' + Base32 = 'b' + Base32Upper = 'B' + Base32pad = 'c' + Base32padUpper = 'C' + Base32hex = 'v' + Base32hexUpper = 'V' + Base32hexPad = 't' + Base32hexPadUpper = 'T' + Base58Flickr = 'Z' + Base58BTC = 'z' + Base64 = 'm' + Base64url = 'u' + Base64pad = 'M' + Base64urlPad = 'U' +) + +// Encodings is a map of the supported encoding, unsupported encoding +// specified in standard are left out +var Encodings = map[string]Encoding{ + "identity": 0x00, + "base2": '0', + "base16": 'f', + "base16upper": 'F', + "base32": 'b', + "base32upper": 'B', + "base32pad": 'c', + "base32padupper": 'C', + "base32hex": 'v', + "base32hexupper": 'V', + "base32hexpad": 't', + "base32hexpadupper": 'T', + "base58flickr": 'Z', + "base58btc": 'z', + "base64": 'm', + "base64url": 'u', + "base64pad": 'M', + "base64urlpad": 'U', +} + +var EncodingToStr = map[Encoding]string{ + 0x00: "identity", + '0': "base2", + 'f': "base16", + 'F': "base16upper", + 'b': "base32", + 'B': "base32upper", + 'c': "base32pad", + 'C': "base32padupper", + 'v': "base32hex", + 'V': "base32hexupper", + 't': "base32hexpad", + 'T': "base32hexpadupper", + 'Z': "base58flickr", + 'z': "base58btc", + 'm': "base64", + 'u': "base64url", + 'M': "base64pad", + 'U': "base64urlpad", +} + +// ErrUnsupportedEncoding is returned when the selected encoding is not known or +// implemented. +var ErrUnsupportedEncoding = fmt.Errorf("selected encoding not supported") + +// Encode encodes a given byte slice with the selected encoding and returns a +// multibase string (). It will return +// an error if the selected base is not known. +func Encode(base Encoding, data []byte) (string, error) { + switch base { + case Identity: + // 0x00 inside a string is OK in golang and causes no problems with the length calculation. + return string(Identity) + string(data), nil + case Base2: + return string(Base2) + binaryEncodeToString(data), nil + case Base16: + return string(Base16) + hex.EncodeToString(data), nil + case Base16Upper: + return string(Base16Upper) + hexEncodeToStringUpper(data), nil + case Base32: + return string(Base32) + base32StdLowerNoPad.EncodeToString(data), nil + case Base32Upper: + return string(Base32Upper) + base32StdUpperNoPad.EncodeToString(data), nil + case Base32hex: + return string(Base32hex) + base32HexLowerNoPad.EncodeToString(data), nil + case Base32hexUpper: + return string(Base32hexUpper) + base32HexUpperNoPad.EncodeToString(data), nil + case Base32pad: + return string(Base32pad) + base32StdLowerPad.EncodeToString(data), nil + case Base32padUpper: + return string(Base32padUpper) + base32StdUpperPad.EncodeToString(data), nil + case Base32hexPad: + return string(Base32hexPad) + base32HexLowerPad.EncodeToString(data), nil + case Base32hexPadUpper: + return string(Base32hexPadUpper) + base32HexUpperPad.EncodeToString(data), nil + case Base58BTC: + return string(Base58BTC) + b58.EncodeAlphabet(data, b58.BTCAlphabet), nil + case Base58Flickr: + return string(Base58Flickr) + b58.EncodeAlphabet(data, b58.FlickrAlphabet), nil + case Base64pad: + return string(Base64pad) + base64.StdEncoding.EncodeToString(data), nil + case Base64urlPad: + return string(Base64urlPad) + base64.URLEncoding.EncodeToString(data), nil + case Base64url: + return string(Base64url) + base64.RawURLEncoding.EncodeToString(data), nil + case Base64: + return string(Base64) + base64.RawStdEncoding.EncodeToString(data), nil + default: + return "", ErrUnsupportedEncoding + } +} + +// Decode takes a multibase string and decodes into a bytes buffer. +// It will return an error if the selected base is not known. +func Decode(data string) (Encoding, []byte, error) { + if len(data) == 0 { + return 0, nil, fmt.Errorf("cannot decode multibase for zero length string") + } + + enc := Encoding(data[0]) + + switch enc { + case Identity: + return Identity, []byte(data[1:]), nil + case Base2: + bytes, err := decodeBinaryString(data[1:]) + return enc, bytes, err + case Base16, Base16Upper: + bytes, err := hex.DecodeString(data[1:]) + return enc, bytes, err + case Base32, Base32Upper: + bytes, err := b32.RawStdEncoding.DecodeString(data[1:]) + return enc, bytes, err + case Base32hex, Base32hexUpper: + bytes, err := b32.RawHexEncoding.DecodeString(data[1:]) + return enc, bytes, err + case Base32pad, Base32padUpper: + bytes, err := b32.StdEncoding.DecodeString(data[1:]) + return enc, bytes, err + case Base32hexPad, Base32hexPadUpper: + bytes, err := b32.HexEncoding.DecodeString(data[1:]) + return enc, bytes, err + case Base58BTC: + bytes, err := b58.DecodeAlphabet(data[1:], b58.BTCAlphabet) + return Base58BTC, bytes, err + case Base58Flickr: + bytes, err := b58.DecodeAlphabet(data[1:], b58.FlickrAlphabet) + return Base58Flickr, bytes, err + case Base64pad: + bytes, err := base64.StdEncoding.DecodeString(data[1:]) + return Base64pad, bytes, err + case Base64urlPad: + bytes, err := base64.URLEncoding.DecodeString(data[1:]) + return Base64urlPad, bytes, err + case Base64: + bytes, err := base64.RawStdEncoding.DecodeString(data[1:]) + return Base64, bytes, err + case Base64url: + bytes, err := base64.RawURLEncoding.DecodeString(data[1:]) + return Base64url, bytes, err + default: + return -1, nil, ErrUnsupportedEncoding + } +} diff --git a/vendor/github.com/multiformats/go-multibase/package.json b/vendor/github.com/multiformats/go-multibase/package.json new file mode 100644 index 00000000..75f742e6 --- /dev/null +++ b/vendor/github.com/multiformats/go-multibase/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/multiformats/go-multibase" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multibase" + }, + "gxDependencies": [ + { + "author": "mr-tron", + "hash": "QmWFAMPqsEyUX7gDUsRVmMWz59FxSpJ1b2v6bJ1yYzo7jY", + "name": "go-base58-fast", + "version": "0.1.1" + }, + { + "author": "Golang", + "hash": "QmPbbYin7KBd1Y1BfUe15vHzwJiioyi3wtKQTtXWWf8SC5", + "name": "base32", + "version": "0.0.3" + } + ], + "gxVersion": "0.8.0", + "language": "go", + "license": "", + "name": "go-multibase", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.3.0" +} + diff --git a/vendor/github.com/multiformats/go-multicodec/.travis.yml b/vendor/github.com/multiformats/go-multicodec/.travis.yml new file mode 100644 index 00000000..ddf35b20 --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/.travis.yml @@ -0,0 +1,17 @@ +os: + - linux + +language: go + +go: + - 1.9.x + +install: + - make deps + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + +sudo: false #docker containers for CI + +env: GOTFLAGS="-race -cpu 5" diff --git a/vendor/github.com/multiformats/go-multicodec/LICENSE b/vendor/github.com/multiformats/go-multicodec/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multicodec/Makefile b/vendor/github.com/multiformats/go-multicodec/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/multiformats/go-multicodec/README.md b/vendor/github.com/multiformats/go-multicodec/README.md new file mode 100644 index 00000000..2da195ad --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/README.md @@ -0,0 +1,84 @@ +# go-multicodec + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![Travis CI](https://img.shields.io/travis/multiformats/go-multicodec.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multicodec) +[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multicodec.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multicodec?branch=master) +[![GoDoc](https://godoc.org/github.com/multiformats/go-multicodec?status.svg)](https://godoc.org/github.com/multiformats/go-multicodec) + +> [multicodec](https://github.com/multiformats/multicodec) implementation in Go. + +### Supported codecs + +- `/cbor` +- `/json` +- `/msgio` +- `/msgpack` +- `/protobuf` + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Maintainers](#maintainers) +- [Contribute](#contribute) +- [License](#license) + +## Install + +```sh +go get github.com/multiformats/go-multicodec +``` + +## Usage + +Look at the Godocs: + +- https://godoc.org/github.com/multiformats/go-multicodec + +```go +import ( + "os" + "io" + + cbor "github.com/multiformats/go-multicodec/cbor" + json "github.com/multiformats/go-multicodec/json" +) + +func main() { + dec := cbor.Multicodec().Decoder(os.Stdin) + enc := json.Multicodec(false).Encoder(os.Stdout) + + for { + var item interface{} + + if err := dec.Decode(&item); err == io.EOF { + break + } else if err != nil { + panic(err) + } + + if err := enc.Encode(&item); err != nil { + panic(err) + } + } +} +``` + +## Maintainers + +Captain: [@jbenet](https://github.com/jbenet). + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multicodec/issues). + +Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2014 Juan Batiz-Benet diff --git a/vendor/github.com/multiformats/go-multicodec/base/b64/codec.go b/vendor/github.com/multiformats/go-multicodec/base/b64/codec.go new file mode 100644 index 00000000..4139f4db --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/base/b64/codec.go @@ -0,0 +1,64 @@ +package b64 + +import ( + "encoding/base64" + "io" + + mc "github.com/multiformats/go-multicodec" + base "github.com/multiformats/go-multicodec/base" +) + +var ( + HeaderPath = "/base64/" + Header = mc.Header([]byte(HeaderPath)) + multic = mc.NewMulticodecFromCodec(Codec(), Header) +) + +type codec struct{} + +type decoder struct { + r io.Reader +} + +func (d decoder) Decode(v interface{}) error { + out, ok := v.([]byte) + if !ok { + return base.ErrExpectedByteSlice + } + + _, err := d.r.Read(out) + + return err +} + +func (codec) Decoder(r io.Reader) mc.Decoder { + return decoder{base64.NewDecoder(base64.StdEncoding, r)} +} + +type encoder struct { + w io.WriteCloser +} + +func (e encoder) Encode(v interface{}) error { + slice, ok := v.([]byte) + if !ok { + return base.ErrExpectedByteSlice + } + _, err := e.w.Write(slice) + if err != nil { + return err + } + return e.w.Close() +} + +func (codec) Encoder(w io.Writer) mc.Encoder { + return encoder{base64.NewEncoder(base64.StdEncoding, w)} +} + +func Codec() mc.Codec { + return codec{} +} + +func Multicodec() mc.Multicodec { + return multic +} diff --git a/vendor/github.com/multiformats/go-multicodec/base/bin/codec.go b/vendor/github.com/multiformats/go-multicodec/base/bin/codec.go new file mode 100644 index 00000000..09c05a82 --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/base/bin/codec.go @@ -0,0 +1,64 @@ +package bin + +import ( + "io" + + mc "github.com/multiformats/go-multicodec" + base "github.com/multiformats/go-multicodec/base" +) + +var ( + HeaderPath = "/bin/" + Header = mc.Header([]byte(HeaderPath)) + multic = mc.NewMulticodecFromCodec(Codec(), Header) +) + +type codec struct{} + +func (codec) Header() []byte { + return Header +} + +type decoder struct { + r io.Reader +} + +func (d decoder) Decode(v interface{}) error { + slice, ok := v.([]byte) + if !ok { + return base.ErrExpectedByteSlice + } + + _, err := d.r.Read(slice) + return err +} + +func (codec) Decoder(r io.Reader) mc.Decoder { + return decoder{r} +} + +type encoder struct { + w io.Writer +} + +func (e encoder) Encode(v interface{}) error { + slice, ok := v.([]byte) + if !ok { + return base.ErrExpectedByteSlice + } + + _, err := e.w.Write(slice) + return err +} + +func (codec) Encoder(w io.Writer) mc.Encoder { + return encoder{w} +} + +func Codec() mc.Codec { + return codec{} +} + +func Multicodec() mc.Multicodec { + return multic +} diff --git a/vendor/github.com/multiformats/go-multicodec/base/errors.go b/vendor/github.com/multiformats/go-multicodec/base/errors.go new file mode 100644 index 00000000..ab6ecfb9 --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/base/errors.go @@ -0,0 +1,7 @@ +package base + +import "errors" + +var ( + ErrExpectedByteSlice = errors.New("expected []byte as input") +) diff --git a/vendor/github.com/multiformats/go-multicodec/base/hex/codec.go b/vendor/github.com/multiformats/go-multicodec/base/hex/codec.go new file mode 100644 index 00000000..d8ef31bb --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/base/hex/codec.go @@ -0,0 +1,69 @@ +package bin + +import ( + "encoding/hex" + "io" + + mc "github.com/multiformats/go-multicodec" + base "github.com/multiformats/go-multicodec/base" +) + +var ( + HeaderPath = "/base16/" + Header = mc.Header([]byte(HeaderPath)) + multic = mc.NewMulticodecFromCodec(Codec(), Header) +) + +type codec struct{} + +type decoder struct { + r io.Reader +} + +func (d decoder) Decode(v interface{}) error { + out, ok := v.([]byte) + if !ok { + return base.ErrExpectedByteSlice + } + + buf := make([]byte, hex.EncodedLen(len(out))) + _, err := d.r.Read(buf) + if err != nil { + return err + } + _, err = hex.Decode(out, buf) + return err +} + +func (codec) Decoder(r io.Reader) mc.Decoder { + return decoder{r} +} + +type encoder struct { + w io.Writer +} + +func (e encoder) Encode(v interface{}) error { + slice, ok := v.([]byte) + if !ok { + return base.ErrExpectedByteSlice + } + + buf := make([]byte, hex.EncodedLen(len(slice))) + hex.Encode(buf, slice) + + _, err := e.w.Write(buf) + return err +} + +func (codec) Encoder(w io.Writer) mc.Encoder { + return encoder{w} +} + +func Codec() mc.Codec { + return codec{} +} + +func Multicodec() mc.Multicodec { + return multic +} diff --git a/vendor/github.com/multiformats/go-multicodec/base/mux/mux.go b/vendor/github.com/multiformats/go-multicodec/base/mux/mux.go new file mode 100644 index 00000000..be119f9b --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/base/mux/mux.go @@ -0,0 +1,20 @@ +package basemux + +import ( + mc "github.com/multiformats/go-multicodec" + mux "github.com/multiformats/go-multicodec/mux" + + b64 "github.com/multiformats/go-multicodec/base/b64" + bin "github.com/multiformats/go-multicodec/base/bin" + hex "github.com/multiformats/go-multicodec/base/hex" +) + +func AllBasesMux() *mux.Multicodec { + m := mux.MuxMulticodec([]mc.Multicodec{ + hex.Multicodec(), + b64.Multicodec(), + bin.Multicodec(), + }, mux.SelectFirst) + m.Wrap = false + return m +} diff --git a/vendor/github.com/multiformats/go-multicodec/cbor/cbor.go b/vendor/github.com/multiformats/go-multicodec/cbor/cbor.go new file mode 100644 index 00000000..1de45b1f --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/cbor/cbor.go @@ -0,0 +1,85 @@ +package mc_cbor + +import ( + "io" + + cbor "github.com/whyrusleeping/cbor/go" + + mc "github.com/multiformats/go-multicodec" +) + +var HeaderPath string +var Header []byte + +func init() { + HeaderPath = "/cbor" + Header = mc.Header([]byte(HeaderPath)) +} + +type codec struct { + mc bool +} + +func Codec() mc.Codec { + return &codec{ + mc: false, + } +} + +func Multicodec() mc.Multicodec { + return &codec{ + mc: true, + } +} + +func (c *codec) Encoder(w io.Writer) mc.Encoder { + return &encoder{ + w: w, + mc: c.mc, + enc: cbor.NewEncoder(w), + } +} + +func (c *codec) Decoder(r io.Reader) mc.Decoder { + return &decoder{ + r: r, + mc: c.mc, + dec: cbor.NewDecoder(r), + } +} + +func (c *codec) Header() []byte { + return Header +} + +type encoder struct { + w io.Writer + mc bool + enc *cbor.Encoder +} + +type decoder struct { + r io.Reader + mc bool + dec *cbor.Decoder +} + +func (c *encoder) Encode(v interface{}) error { + // if multicodec, write the header first + if c.mc { + if _, err := c.w.Write(Header); err != nil { + return err + } + } + return c.enc.Encode(v) +} + +func (c *decoder) Decode(v interface{}) error { + // if multicodec, consume the header first + if c.mc { + if err := mc.ConsumeHeader(c.r, Header); err != nil { + return err + } + } + return c.dec.Decode(v) +} diff --git a/vendor/github.com/multiformats/go-multicodec/coding.go b/vendor/github.com/multiformats/go-multicodec/coding.go new file mode 100644 index 00000000..46edc16d --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/coding.go @@ -0,0 +1,55 @@ +package multicodec + +import ( + "bytes" + "io" +) + +// Codec is an algorithm for coding data from one representation +// to another. For convenience, we define a codec in the usual +// sense: a function and its inverse, to encode and decode. +type Codec interface { + // Decoder wraps given io.Reader and returns an object which + // will decode bytes into objects. + Decoder(r io.Reader) Decoder + + // Encoder wraps given io.Writer and returns an Encoder + Encoder(w io.Writer) Encoder +} + +// Encoder encodes objects into bytes and writes them to an +// underlying io.Writer. Works like encoding.Marshal +type Encoder interface { + Encode(n interface{}) error +} + +// Decoder decodes objects from bytes from an underlying +// io.Reader, into given object. Works like encoding.Unmarshal +type Decoder interface { + Decode(n interface{}) error +} + +// Marshal serializes an object to a []byte. +func Marshal(c Codec, o interface{}) ([]byte, error) { + var buf bytes.Buffer + err := MarshalTo(c, &buf, o) + if err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +// MarshalTo serializes an object to a writer. +func MarshalTo(c Codec, w io.Writer, o interface{}) error { + return c.Encoder(w).Encode(o) +} + +// Unmarshal deserializes an object to a []byte. +func Unmarshal(c Codec, buf []byte, o interface{}) error { + return UnmarshalFrom(c, bytes.NewBuffer(buf), o) +} + +// UnmarshalFrom deserializes an objects from a reader. +func UnmarshalFrom(c Codec, r io.Reader, o interface{}) error { + return c.Decoder(r).Decode(o) +} diff --git a/vendor/github.com/multiformats/go-multicodec/header.go b/vendor/github.com/multiformats/go-multicodec/header.go new file mode 100644 index 00000000..faa4769f --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/header.go @@ -0,0 +1,140 @@ +package multicodec + +import ( + "bufio" + "bytes" + "errors" + "io" +) + +var ( + ErrType = errors.New("multicodec type error") + ErrHeaderInvalid = errors.New("multicodec header invalid") + ErrMismatch = errors.New("multicodec did not match") + ErrVarints = errors.New("multicodec varints not yet implemented") +) + +// Header returns a multicodec header with the given path. +func Header(path []byte) []byte { + b, err := HeaderSafe(path) + if err != nil { + panic(err.Error) + } + return b +} + +// HeaderSafe works like Header but it returns error instead of calling panic +func HeaderSafe(path []byte) ([]byte, error) { + l := len(path) + 1 // + \n + if l >= 127 { + return nil, ErrVarints + } + + buf := make([]byte, l+1) + buf[0] = byte(l) + copy(buf[1:], path) + buf[l] = '\n' + return buf, nil +} + +// HeaderPath returns the multicodec path from header +func HeaderPath(hdr []byte) []byte { + hdr = hdr[1:] + if hdr[len(hdr)-1] == '\n' { + hdr = hdr[:len(hdr)-1] + } + return hdr +} + +// WriteHeader writes a multicodec header to a writer. +// It uses the given path. +func WriteHeader(w io.Writer, path []byte) error { + hdr := Header(path) + _, err := w.Write(hdr) + return err +} + +// ReadHeader reads a multicodec header from a reader. +// Returns the header found, or an error if the header +// mismatched. +func ReadHeader(r io.Reader) (path []byte, err error) { + lbuf := make([]byte, 1) + if _, err := r.Read(lbuf); err != nil { + return nil, err + } + + l := int(lbuf[0]) + if l > 127 { + return nil, ErrVarints + } + + buf := make([]byte, l+1) + buf[0] = lbuf[0] + if _, err := io.ReadFull(r, buf[1:]); err != nil { + return nil, err + } + if buf[l] != '\n' { + return nil, ErrHeaderInvalid + } + return buf, nil +} + +// ReadPath reads a multicodec header from a reader. +// Returns the path found, or an error if the header +// mismatched. +func ReadPath(r io.Reader) (path []byte, err error) { + hdr, err := ReadHeader(r) + if err != nil { + return nil, err + } + return HeaderPath(hdr), nil +} + +// ConsumePath reads a multicodec header from a reader, +// verifying it matches given path. If it does not, it returns +// ErrProtocolMismatch +func ConsumePath(r io.Reader, path []byte) (err error) { + actual, err := ReadPath(r) + if !bytes.Equal(path, actual) { + return ErrMismatch + } + return nil +} + +// ConsumeHeader reads a multicodec header from a reader, +// verifying it matches given header. If it does not, it returns +// ErrProtocolMismatch +func ConsumeHeader(r io.Reader, header []byte) (err error) { + actual := make([]byte, len(header)) + if _, err := io.ReadFull(r, actual); err != nil { + return err + } + + if !bytes.Equal(header, actual) { + return ErrMismatch + } + return nil +} + +// WrapHeaderReader returns a reader that first reads the +// given header, and then the given reader, using io.MultiReader. +// It is useful if the header has been read through, but still +// needed to pass to a decoder. +func WrapHeaderReader(hdr []byte, r io.Reader) io.Reader { + return io.MultiReader(bytes.NewReader(hdr), r) +} + +func WrapTransformPathToHeader(r io.Reader) (io.Reader, error) { + br := bufio.NewReader(r) + + p, err := br.ReadBytes('\n') + if err != nil { + return nil, err + } + p = p[:len(p)-1] // drop newline + hdr, err := HeaderSafe(p) + if err != nil { + return nil, err + } + return WrapHeaderReader(hdr, br), nil +} diff --git a/vendor/github.com/multiformats/go-multicodec/json/json.go b/vendor/github.com/multiformats/go-multicodec/json/json.go new file mode 100644 index 00000000..98cd636a --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/json/json.go @@ -0,0 +1,145 @@ +package mc_json + +import ( + "bytes" + "encoding/json" + "io" + + msgio "github.com/libp2p/go-msgio" + + mc "github.com/multiformats/go-multicodec" +) + +var HeaderPath string +var Header []byte +var HeaderMsgioPath string +var HeaderMsgio []byte + +func init() { + HeaderPath = "/json" + HeaderMsgioPath = "/json/msgio" + Header = mc.Header([]byte(HeaderPath)) + HeaderMsgio = mc.Header([]byte(HeaderMsgioPath)) +} + +type codec struct { + mc bool + msgio bool +} + +func Codec(msgio bool) mc.Codec { + return &codec{mc: false, msgio: msgio} +} + +func Multicodec(msgio bool) mc.Multicodec { + return &codec{mc: true, msgio: msgio} +} + +func (c *codec) Encoder(w io.Writer) mc.Encoder { + buf := bytes.NewBuffer(nil) + return &encoder{ + w: w, + c: c, + buf: buf, + enc: json.NewEncoder(buf), + } +} + +func (c *codec) Decoder(r io.Reader) mc.Decoder { + return &decoder{ + r: r, + c: c, + } +} + +func (c *codec) Header() []byte { + if c.msgio { + return HeaderMsgio + } + return Header +} + +type encoder struct { + w io.Writer + c *codec + enc *json.Encoder + buf *bytes.Buffer +} + +type decoder struct { + r io.Reader + c *codec +} + +func (c *encoder) Encode(v interface{}) error { + defer c.buf.Reset() + w := c.w + + if c.c.mc { + // if multicodec, write the header first + if _, err := c.w.Write(c.c.Header()); err != nil { + return err + } + } + if c.c.msgio { + w = msgio.NewWriter(w) + } + + // recast to deal with map[interface{}]interface{} case + vr, err := recast(v) + if err != nil { + return err + } + + if err := c.enc.Encode(vr); err != nil { + return err + } + + _, err = io.Copy(w, c.buf) + return err +} + +func (c *decoder) Decode(v interface{}) error { + r := c.r + + if c.c.mc { + // if multicodec, consume the header first + if err := mc.ConsumeHeader(c.r, c.c.Header()); err != nil { + return err + } + } + if c.c.msgio { + // need to make a new one per read. + var err error + r, err = msgio.LimitedReader(c.r) + if err != nil { + return err + } + } + + return json.NewDecoder(r).Decode(v) +} + +func recast(v interface{}) (cv interface{}, err error) { + switch v.(type) { + case map[interface{}]interface{}: + vmi := v.(map[interface{}]interface{}) + vms := make(map[string]interface{}, len(vmi)) + for k, v2 := range vmi { + ks, ok := k.(string) + if !ok { + return v, mc.ErrType + } + + rv2, err := recast(v2) + if err != nil { + return v, err + } + + vms[ks] = rv2 + } + return vms, nil + default: + return v, nil // hope for the best. + } +} diff --git a/vendor/github.com/multiformats/go-multicodec/multicodec.go b/vendor/github.com/multiformats/go-multicodec/multicodec.go new file mode 100644 index 00000000..72a1d2ff --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/multicodec.go @@ -0,0 +1,70 @@ +package multicodec + +import "io" + +// Multicodec is the interface for a multicodec +type Multicodec interface { + Codec + + Header() []byte +} + +type c2mc struct { + c Codec + header []byte +} + +var _ Multicodec = (*c2mc)(nil) + +func (c c2mc) Header() []byte { + return c.header +} + +type c2mcD struct { + base *c2mc + r io.Reader +} + +func (d c2mcD) Decode(v interface{}) error { + err := ConsumeHeader(d.r, d.base.header) + if err != nil { + return err + } + return d.base.c.Decoder(d.r).Decode(v) +} + +var _ Decoder = (*c2mcD)(nil) + +func (c c2mc) Decoder(r io.Reader) Decoder { + return c2mcD{ + base: &c, + r: r, + } +} + +type c2mcE struct { + base *c2mc + w io.Writer +} + +func (e c2mcE) Encode(v interface{}) error { + _, err := e.w.Write(e.base.Header()) + if err != nil { + return err + } + return e.base.c.Encoder(e.w).Encode(v) +} + +func (c c2mc) Encoder(w io.Writer) Encoder { + return c2mcE{ + base: &c, + w: w, + } +} + +func NewMulticodecFromCodec(c Codec, header []byte) Multicodec { + return c2mc{ + c: c, + header: header, + } +} diff --git a/vendor/github.com/multiformats/go-multicodec/mux/all.go b/vendor/github.com/multiformats/go-multicodec/mux/all.go new file mode 100644 index 00000000..cfad7b2b --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/mux/all.go @@ -0,0 +1,15 @@ +package muxcodec + +import ( + mc "github.com/multiformats/go-multicodec" + cbor "github.com/multiformats/go-multicodec/cbor" + json "github.com/multiformats/go-multicodec/json" +) + +func StandardMux() *Multicodec { + return MuxMulticodec([]mc.Multicodec{ + cbor.Multicodec(), + json.Multicodec(false), + json.Multicodec(true), + }, SelectFirst) +} diff --git a/vendor/github.com/multiformats/go-multicodec/mux/mux.go b/vendor/github.com/multiformats/go-multicodec/mux/mux.go new file mode 100644 index 00000000..4e27f27f --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/mux/mux.go @@ -0,0 +1,120 @@ +package muxcodec + +import ( + "bytes" + "fmt" + "io" + + mc "github.com/multiformats/go-multicodec" +) + +var ( + ErrNoCodec = fmt.Errorf("no suitable codec") +) + +var Header []byte + +func init() { + Header = mc.Header([]byte("/multicodec")) +} + +// SelectCodec is a function that selects which codecs are able to +// marshal a given datastructure, and orders them (to be tried first). +type SelectCodec func(v interface{}, codecs []mc.Multicodec) mc.Multicodec + +// SelectFirst is the default SelectCodec function. selects the first +// codec given. +func SelectFirst(v interface{}, codecs []mc.Multicodec) mc.Multicodec { + return codecs[0] +} + +// MuxMulticodec returns a multicodec that muxes between given codecs. +// It uses the given SelectCodec function when marshaling, to select +// the best codec to use. +func MuxMulticodec(codecs []mc.Multicodec, sel SelectCodec) *Multicodec { + if sel == nil { + sel = SelectFirst + } + return &Multicodec{codecs, sel, true, nil} +} + +type Multicodec struct { + Codecs []mc.Multicodec // subcodecs to use + Select SelectCodec // pick a subcodec for encoding + Wrap bool // whether to wrap with own header + Last mc.Multicodec // the last subcodec used +} + +func (c *Multicodec) Encoder(w io.Writer) mc.Encoder { + return &encoder{w, c} +} + +func (c *Multicodec) Decoder(r io.Reader) mc.Decoder { + return &decoder{r, c} +} + +func (c *Multicodec) Header() []byte { + return Header +} + +type encoder struct { + w io.Writer + c *Multicodec +} + +type decoder struct { + r io.Reader + c *Multicodec +} + +func (c *encoder) Encode(v interface{}) error { + subc := c.c.Select(v, c.c.Codecs) + if subc == nil { + return ErrNoCodec + } + + if c.c.Wrap { // write multicodec header. + if _, err := c.w.Write(c.c.Header()); err != nil { + return err + } + } + + c.c.Last = subc + return subc.Encoder(c.w).Encode(v) +} + +func (c *decoder) Decode(v interface{}) error { + if c.c.Wrap { // read multicodec header. + if err := mc.ConsumeHeader(c.r, c.c.Header()); err != nil { + return err + } + } + + // get next header, to select codec + hdr, err := mc.ReadHeader(c.r) + if err != nil { + return err + } + + // "unwind" the read as subc consumes header + r := mc.WrapHeaderReader(hdr, c.r) + + subc := CodecWithHeader(hdr, c.c.Codecs) + if subc == nil { + return fmt.Errorf("no codec for %s", hdr) + } + + c.c.Last = subc + return subc.Decoder(r).Decode(v) +} + +func CodecWithHeader(hdr []byte, codecs []mc.Multicodec) mc.Multicodec { + // we'll look through the list. should be small. + // if huge, consider a map. + for _, c := range codecs { + if bytes.Equal(hdr, c.Header()) { + return c + } + } + return nil +} diff --git a/vendor/github.com/multiformats/go-multicodec/package.json b/vendor/github.com/multiformats/go-multicodec/package.json new file mode 100644 index 00000000..ecfc4776 --- /dev/null +++ b/vendor/github.com/multiformats/go-multicodec/package.json @@ -0,0 +1,42 @@ +{ + "author": "multiformats", + "bugs": { + "url": "https://github.com/multiformats/go-multicodec/issues" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multicodec" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmWBug6eBS7AxRdCDVuSY5CnSit7cS2XnPFYJWqWDumhCG", + "name": "go-msgio", + "version": "0.0.3" + }, + { + "author": "whyrusleeping", + "hash": "QmcRKRQjNc2JZPHApR32fbkZVd6WXG2Ch9Kcy7sPxuAJgd", + "name": "cbor", + "version": "0.2.3" + }, + { + "author": "ugorji", + "hash": "QmVTAmbCaPqdfbmpWDCJMQNFxbyJoG2USFsumXmTWY5LFp", + "name": "go-codec", + "version": "2017.10.18" + }, + { + "author": "whyrusleeping", + "hash": "QmdxUuburamoF6zF9qjeQC4WYcWGbWuRmdLacMEsW8ioD8", + "name": "gogo-protobuf", + "version": "0.0.0" + } + ], + "gxVersion": "0.10.0", + "language": "go", + "license": "MIT", + "name": "go-multicodec", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.1.6" +} + diff --git a/vendor/github.com/multiformats/go-multihash/.gitignore b/vendor/github.com/multiformats/go-multihash/.gitignore new file mode 100644 index 00000000..1d74e219 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/.gitignore @@ -0,0 +1 @@ +.vscode/ diff --git a/vendor/github.com/multiformats/go-multihash/.travis.yml b/vendor/github.com/multiformats/go-multihash/.travis.yml new file mode 100644 index 00000000..18f4287d --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/multiformats/go-multihash/LICENSE b/vendor/github.com/multiformats/go-multihash/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multihash/Makefile b/vendor/github.com/multiformats/go-multihash/Makefile new file mode 100644 index 00000000..20619413 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/Makefile @@ -0,0 +1,11 @@ +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/multiformats/go-multihash/README.md b/vendor/github.com/multiformats/go-multihash/README.md new file mode 100644 index 00000000..dd7f2386 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/README.md @@ -0,0 +1,90 @@ +# go-multihash + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/multiformats/go-multihash?status.svg)](https://godoc.org/github.com/multiformats/go-multihash) +[![Travis CI](https://img.shields.io/travis/multiformats/go-multihash.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multihash) +[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multihash.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multihash?branch=master) + +> [multihash](https://github.com/multiformats/multihash) implementation in Go + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [Maintainers](#maintainers) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-multihash` is a standard Go module which can be installed with: + +```sh +go get github.com/multiformats/go-multihash +``` + +## Usage + + +### Example + +This example takes a standard hex-encoded data and uses `EncodeName` to calculate the SHA1 multihash value for the buffer. + +The resulting hex-encoded data corresponds to: ``, which could be re-parsed +with `Multihash.FromHexString()`. + + +```go +package main + +import ( + "encoding/hex" + "fmt" + + "github.com/multiformats/go-multihash" +) + +func main() { + // ignores errors for simplicity. + // don't do that at home. + // Decode a SHA1 hash to a binary buffer + buf, _ := hex.DecodeString("0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33") + + // Create a new multihash with it. + mHashBuf, _ := multihash.EncodeName(buf, "sha1") + // Print the multihash as hex string + fmt.Printf("hex: %s\n", hex.EncodeToString(mHashBuf)) + + // Parse the binary multihash to a DecodedMultihash + mHash, _ := multihash.Decode(mHashBuf) + // Convert the sha1 value to hex string + sha1hex := hex.EncodeToString(mHash.Digest) + // Print all the information in the multihash + fmt.Printf("obj: %v 0x%x %d %s\n", mHash.Name, mHash.Code, mHash.Length, sha1hex) +} +``` + +To run, copy to [example/foo.go](example/foo.go) and: + +``` +> cd example/ +> go build +> ./example +hex: 11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 +obj: sha1 0x11 20 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 +``` + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multihash/issues). + +Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2014 Juan Batiz-Benet diff --git a/vendor/github.com/multiformats/go-multihash/codecov.yml b/vendor/github.com/multiformats/go-multihash/codecov.yml new file mode 100644 index 00000000..5f88a9ea --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/codecov.yml @@ -0,0 +1,3 @@ +coverage: + range: "50...100" +comment: off diff --git a/vendor/github.com/multiformats/go-multihash/go.mod b/vendor/github.com/multiformats/go-multihash/go.mod new file mode 100644 index 00000000..79a1dfc1 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/go.mod @@ -0,0 +1,11 @@ +module github.com/multiformats/go-multihash + +require ( + github.com/gxed/hashland/keccakpg v0.0.1 + github.com/gxed/hashland/murmur3 v0.0.1 + github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 + github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 + github.com/mr-tron/base58 v1.1.0 + golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 + golang.org/x/sys v0.0.0-20190219092855-153ac476189d // indirect +) diff --git a/vendor/github.com/multiformats/go-multihash/go.sum b/vendor/github.com/multiformats/go-multihash/go.sum new file mode 100644 index 00000000..ecd77b6c --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/go.sum @@ -0,0 +1,14 @@ +github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/mr-tron/base58 v1.1.0 h1:Y51FGVJ91WBqCEabAi5OPUz38eAx8DakuAm5svLcsfQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/multiformats/go-multihash/io.go b/vendor/github.com/multiformats/go-multihash/io.go new file mode 100644 index 00000000..46290168 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/io.go @@ -0,0 +1,103 @@ +package multihash + +import ( + "encoding/binary" + "errors" + "io" + "math" +) + +// Reader is an io.Reader wrapper that exposes a function +// to read a whole multihash, parse it, and return it. +type Reader interface { + io.Reader + + ReadMultihash() (Multihash, error) +} + +// Writer is an io.Writer wrapper that exposes a function +// to write a whole multihash. +type Writer interface { + io.Writer + + WriteMultihash(Multihash) error +} + +// NewReader wraps an io.Reader with a multihash.Reader +func NewReader(r io.Reader) Reader { + return &mhReader{r} +} + +// NewWriter wraps an io.Writer with a multihash.Writer +func NewWriter(w io.Writer) Writer { + return &mhWriter{w} +} + +type mhReader struct { + r io.Reader +} + +func (r *mhReader) Read(buf []byte) (n int, err error) { + return r.r.Read(buf) +} + +func (r *mhReader) ReadByte() (byte, error) { + if br, ok := r.r.(io.ByteReader); ok { + return br.ReadByte() + } + var b [1]byte + n, err := r.r.Read(b[:]) + if n == 1 { + return b[0], nil + } + if err == nil { + if n != 0 { + panic("reader returned an invalid length") + } + err = io.ErrNoProgress + } + return 0, err +} + +func (r *mhReader) ReadMultihash() (Multihash, error) { + code, err := binary.ReadUvarint(r) + if err != nil { + return nil, err + } + + length, err := binary.ReadUvarint(r) + if err != nil { + return nil, err + } + if length > math.MaxInt32 { + return nil, errors.New("digest too long, supporting only <= 2^31-1") + } + + pre := make([]byte, 2*binary.MaxVarintLen64) + spot := pre + n := binary.PutUvarint(spot, code) + spot = pre[n:] + n += binary.PutUvarint(spot, length) + + buf := make([]byte, int(length)+n) + copy(buf, pre[:n]) + + if _, err := io.ReadFull(r.r, buf[n:]); err != nil { + return nil, err + } + + return Cast(buf) +} + +type mhWriter struct { + w io.Writer +} + +func (w *mhWriter) Write(buf []byte) (n int, err error) { + return w.w.Write(buf) +} + +func (w *mhWriter) WriteMultihash(m Multihash) error { + _, err := w.w.Write([]byte(m)) + return err +} diff --git a/vendor/github.com/multiformats/go-multihash/multihash.go b/vendor/github.com/multiformats/go-multihash/multihash.go new file mode 100644 index 00000000..54d90153 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/multihash.go @@ -0,0 +1,298 @@ +// Package multihash is the Go implementation of +// https://github.com/multiformats/multihash, or self-describing +// hashes. +package multihash + +import ( + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + "math" + + b58 "github.com/mr-tron/base58/base58" +) + +// errors +var ( + ErrUnknownCode = errors.New("unknown multihash code") + ErrTooShort = errors.New("multihash too short. must be >= 2 bytes") + ErrTooLong = errors.New("multihash too long. must be < 129 bytes") + ErrLenNotSupported = errors.New("multihash does not yet support digests longer than 127 bytes") + ErrInvalidMultihash = errors.New("input isn't valid multihash") + + ErrVarintBufferShort = errors.New("uvarint: buffer too small") + ErrVarintTooLong = errors.New("uvarint: varint too big (max 64bit)") +) + +// ErrInconsistentLen is returned when a decoded multihash has an inconsistent length +type ErrInconsistentLen struct { + dm *DecodedMultihash +} + +func (e ErrInconsistentLen) Error() string { + return fmt.Sprintf("multihash length inconsistent: %v", e.dm) +} + +// constants +const ( + ID = 0x00 + SHA1 = 0x11 + SHA2_256 = 0x12 + SHA2_512 = 0x13 + SHA3_224 = 0x17 + SHA3_256 = 0x16 + SHA3_384 = 0x15 + SHA3_512 = 0x14 + SHA3 = SHA3_512 + KECCAK_224 = 0x1A + KECCAK_256 = 0x1B + KECCAK_384 = 0x1C + KECCAK_512 = 0x1D + + SHAKE_128 = 0x18 + SHAKE_256 = 0x19 + + BLAKE2B_MIN = 0xb201 + BLAKE2B_MAX = 0xb240 + BLAKE2S_MIN = 0xb241 + BLAKE2S_MAX = 0xb260 + + MD5 = 0xd5 + + DBL_SHA2_256 = 0x56 + + MURMUR3 = 0x22 + + X11 = 0x1100 +) + +func init() { + // Add blake2b (64 codes) + for c := uint64(BLAKE2B_MIN); c <= BLAKE2B_MAX; c++ { + n := c - BLAKE2B_MIN + 1 + name := fmt.Sprintf("blake2b-%d", n*8) + Names[name] = c + Codes[c] = name + DefaultLengths[c] = int(n) + } + + // Add blake2s (32 codes) + for c := uint64(BLAKE2S_MIN); c <= BLAKE2S_MAX; c++ { + n := c - BLAKE2S_MIN + 1 + name := fmt.Sprintf("blake2s-%d", n*8) + Names[name] = c + Codes[c] = name + DefaultLengths[c] = int(n) + } +} + +// Names maps the name of a hash to the code +var Names = map[string]uint64{ + "id": ID, + "sha1": SHA1, + "sha2-256": SHA2_256, + "sha2-512": SHA2_512, + "sha3": SHA3_512, + "sha3-224": SHA3_224, + "sha3-256": SHA3_256, + "sha3-384": SHA3_384, + "sha3-512": SHA3_512, + "dbl-sha2-256": DBL_SHA2_256, + "murmur3": MURMUR3, + "keccak-224": KECCAK_224, + "keccak-256": KECCAK_256, + "keccak-384": KECCAK_384, + "keccak-512": KECCAK_512, + "shake-128": SHAKE_128, + "shake-256": SHAKE_256, + "x11": X11, + "md5": MD5, +} + +// Codes maps a hash code to it's name +var Codes = map[uint64]string{ + ID: "id", + SHA1: "sha1", + SHA2_256: "sha2-256", + SHA2_512: "sha2-512", + SHA3_224: "sha3-224", + SHA3_256: "sha3-256", + SHA3_384: "sha3-384", + SHA3_512: "sha3-512", + DBL_SHA2_256: "dbl-sha2-256", + MURMUR3: "murmur3", + KECCAK_224: "keccak-224", + KECCAK_256: "keccak-256", + KECCAK_384: "keccak-384", + KECCAK_512: "keccak-512", + SHAKE_128: "shake-128", + SHAKE_256: "shake-256", + X11: "x11", + MD5: "md5", +} + +// DefaultLengths maps a hash code to it's default length +var DefaultLengths = map[uint64]int{ + ID: -1, + SHA1: 20, + SHA2_256: 32, + SHA2_512: 64, + SHA3_224: 28, + SHA3_256: 32, + SHA3_384: 48, + SHA3_512: 64, + DBL_SHA2_256: 32, + KECCAK_224: 28, + KECCAK_256: 32, + MURMUR3: 4, + KECCAK_384: 48, + KECCAK_512: 64, + SHAKE_128: 32, + SHAKE_256: 64, + X11: 64, + MD5: 16, +} + +func uvarint(buf []byte) (uint64, []byte, error) { + n, c := binary.Uvarint(buf) + + if c == 0 { + return n, buf, ErrVarintBufferShort + } else if c < 0 { + return n, buf[-c:], ErrVarintTooLong + } else { + return n, buf[c:], nil + } +} + +// DecodedMultihash represents a parsed multihash and allows +// easy access to the different parts of a multihash. +type DecodedMultihash struct { + Code uint64 + Name string + Length int // Length is just int as it is type of len() opearator + Digest []byte // Digest holds the raw multihash bytes +} + +// Multihash is byte slice with the following form: +// . +// See the spec for more information. +type Multihash []byte + +// HexString returns the hex-encoded representation of a multihash. +func (m *Multihash) HexString() string { + return hex.EncodeToString([]byte(*m)) +} + +// String is an alias to HexString(). +func (m *Multihash) String() string { + return m.HexString() +} + +// FromHexString parses a hex-encoded multihash. +func FromHexString(s string) (Multihash, error) { + b, err := hex.DecodeString(s) + if err != nil { + return Multihash{}, err + } + + return Cast(b) +} + +// B58String returns the B58-encoded representation of a multihash. +func (m Multihash) B58String() string { + return b58.Encode([]byte(m)) +} + +// FromB58String parses a B58-encoded multihash. +func FromB58String(s string) (m Multihash, err error) { + b, err := b58.Decode(s) + if err != nil { + return Multihash{}, ErrInvalidMultihash + } + + return Cast(b) +} + +// Cast casts a buffer onto a multihash, and returns an error +// if it does not work. +func Cast(buf []byte) (Multihash, error) { + dm, err := Decode(buf) + if err != nil { + return Multihash{}, err + } + + if !ValidCode(dm.Code) { + return Multihash{}, ErrUnknownCode + } + + return Multihash(buf), nil +} + +// Decode parses multihash bytes into a DecodedMultihash. +func Decode(buf []byte) (*DecodedMultihash, error) { + + if len(buf) < 2 { + return nil, ErrTooShort + } + + var err error + var code, length uint64 + + code, buf, err = uvarint(buf) + if err != nil { + return nil, err + } + + length, buf, err = uvarint(buf) + if err != nil { + return nil, err + } + + if length > math.MaxInt32 { + return nil, errors.New("digest too long, supporting only <= 2^31-1") + } + + dm := &DecodedMultihash{ + Code: code, + Name: Codes[code], + Length: int(length), + Digest: buf, + } + + if len(dm.Digest) != dm.Length { + return nil, ErrInconsistentLen{dm} + } + + return dm, nil +} + +// Encode a hash digest along with the specified function code. +// Note: the length is derived from the length of the digest itself. +func Encode(buf []byte, code uint64) ([]byte, error) { + + if !ValidCode(code) { + return nil, ErrUnknownCode + } + + start := make([]byte, 2*binary.MaxVarintLen64, 2*binary.MaxVarintLen64+len(buf)) + spot := start + n := binary.PutUvarint(spot, code) + spot = start[n:] + n += binary.PutUvarint(spot, uint64(len(buf))) + + return append(start[:n], buf...), nil +} + +// EncodeName is like Encode() but providing a string name +// instead of a numeric code. See Names for allowed values. +func EncodeName(buf []byte, name string) ([]byte, error) { + return Encode(buf, Names[name]) +} + +// ValidCode checks whether a multihash code is valid. +func ValidCode(code uint64) bool { + _, ok := Codes[code] + return ok +} diff --git a/vendor/github.com/multiformats/go-multihash/multihash/LICENSE b/vendor/github.com/multiformats/go-multihash/multihash/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/multihash/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multihash/package.json b/vendor/github.com/multiformats/go-multihash/package.json new file mode 100644 index 00000000..af15ff52 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/package.json @@ -0,0 +1,54 @@ +{ + "author": "multiformats", + "bugs": { + "url": "https://github.com/multiformats/go-multihash/issues" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multihash" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmW7VUmSvhvSGbYbdsh7uRjhGmsYkc9fL8aJ5CorxxrU5N", + "name": "go-crypto", + "version": "0.2.1" + }, + { + "author": "mr-tron", + "hash": "QmWFAMPqsEyUX7gDUsRVmMWz59FxSpJ1b2v6bJ1yYzo7jY", + "name": "go-base58-fast", + "version": "0.1.1" + }, + { + "author": "whyrusleeping", + "hash": "QmZtJMfZZvoD3EKpQaf8xsFi83HMtX5acQekY8exMbcWEi", + "name": "keccakpg", + "version": "0.0.1" + }, + { + "author": "minio", + "hash": "QmcTzQXRcU2vf8yX5EEboz1BSvWC7wWmeYAKVQmhp8WZYU", + "name": "sha256-simd", + "version": "0.1.2" + }, + { + "author": "minio", + "hash": "QmZp3eKdYQHHAneECmeK6HhiMwTPufmjC8DuuaGKv3unvx", + "name": "blake2b-simd", + "version": "0.1.1" + }, + { + "author": "whyrusleeping", + "hash": "QmWAXZgFyppTRshtnVHJ8LnA1yoHjUr41ZnsWPoA8wnSgF", + "name": "hashland-murmur3", + "version": "0.0.1" + } + ], + "gxVersion": "0.9.0", + "language": "go", + "license": "MIT", + "name": "go-multihash", + "releaseCmd": "git commit -a -m \"gx release $VERSION\"", + "version": "1.0.10" +} + diff --git a/vendor/github.com/multiformats/go-multihash/sum.go b/vendor/github.com/multiformats/go-multihash/sum.go new file mode 100644 index 00000000..f12e2ee9 --- /dev/null +++ b/vendor/github.com/multiformats/go-multihash/sum.go @@ -0,0 +1,246 @@ +package multihash + +import ( + "crypto/md5" + "crypto/sha1" + "crypto/sha512" + "errors" + "fmt" + + keccak "github.com/gxed/hashland/keccakpg" + murmur3 "github.com/gxed/hashland/murmur3" + blake2b "github.com/minio/blake2b-simd" + sha256 "github.com/minio/sha256-simd" + blake2s "golang.org/x/crypto/blake2s" + sha3 "golang.org/x/crypto/sha3" +) + +// ErrSumNotSupported is returned when the Sum function code is not implemented +var ErrSumNotSupported = errors.New("Function not implemented. Complain to lib maintainer.") + +// HashFunc is a hash function that hashes data into digest. +// +// The length is the size the digest will be truncated to. While the hash +// function isn't responsible for truncating the digest, it may want to error if +// the length is invalid for the hash function (e.g., truncation would make the +// hash useless). +type HashFunc func(data []byte, length int) (digest []byte, err error) + +// funcTable maps multicodec values to hash functions. +var funcTable = make(map[uint64]HashFunc) + +// Sum obtains the cryptographic sum of a given buffer. The length parameter +// indicates the length of the resulting digest and passing a negative value +// use default length values for the selected hash function. +func Sum(data []byte, code uint64, length int) (Multihash, error) { + if !ValidCode(code) { + return nil, fmt.Errorf("invalid multihash code %d", code) + } + + if length < 0 { + var ok bool + length, ok = DefaultLengths[code] + if !ok { + return nil, fmt.Errorf("no default length for code %d", code) + } + } + + hashFunc, ok := funcTable[code] + if !ok { + return nil, ErrSumNotSupported + } + + d, err := hashFunc(data, length) + if err != nil { + return nil, err + } + if length >= 0 { + d = d[:length] + } + return Encode(d, code) +} + +func sumBlake2s(data []byte, size int) ([]byte, error) { + if size != 32 { + return nil, fmt.Errorf("unsupported length for blake2s: %d", size) + } + d := blake2s.Sum256(data) + return d[:], nil +} +func sumBlake2b(data []byte, size int) ([]byte, error) { + hasher, err := blake2b.New(&blake2b.Config{Size: uint8(size)}) + if err != nil { + return nil, err + } + + if _, err := hasher.Write(data); err != nil { + return nil, err + } + + return hasher.Sum(nil)[:], nil +} + +func sumID(data []byte, length int) ([]byte, error) { + if length >= 0 && length != len(data) { + return nil, fmt.Errorf("the length of the identity hash (%d) must be equal to the length of the data (%d)", + length, len(data)) + + } + return data, nil +} + +func sumSHA1(data []byte, length int) ([]byte, error) { + a := sha1.Sum(data) + return a[0:20], nil +} + +func sumSHA256(data []byte, length int) ([]byte, error) { + a := sha256.Sum256(data) + return a[0:32], nil +} + +func sumMD5(data []byte, length int) ([]byte, error) { + a := md5.Sum(data) + return a[0:md5.Size], nil +} + +func sumDoubleSHA256(data []byte, length int) ([]byte, error) { + val, _ := sumSHA256(data, len(data)) + return sumSHA256(val, len(val)) +} + +func sumSHA512(data []byte, length int) ([]byte, error) { + a := sha512.Sum512(data) + return a[0:64], nil +} + +func sumKeccak224(data []byte, length int) ([]byte, error) { + h := keccak.New224() + h.Write(data) + return h.Sum(nil), nil +} + +func sumKeccak256(data []byte, length int) ([]byte, error) { + h := keccak.New256() + h.Write(data) + return h.Sum(nil), nil +} + +func sumKeccak384(data []byte, length int) ([]byte, error) { + h := keccak.New384() + h.Write(data) + return h.Sum(nil), nil +} + +func sumKeccak512(data []byte, length int) ([]byte, error) { + h := keccak.New512() + h.Write(data) + return h.Sum(nil), nil +} + +func sumSHA3_512(data []byte, length int) ([]byte, error) { + a := sha3.Sum512(data) + return a[:], nil +} + +func sumMURMUR3(data []byte, length int) ([]byte, error) { + number := murmur3.Sum32(data) + bytes := make([]byte, 4) + for i := range bytes { + bytes[i] = byte(number & 0xff) + number >>= 8 + } + return bytes, nil +} + +func sumSHAKE128(data []byte, length int) ([]byte, error) { + bytes := make([]byte, 32) + sha3.ShakeSum128(bytes, data) + return bytes, nil +} + +func sumSHAKE256(data []byte, length int) ([]byte, error) { + bytes := make([]byte, 64) + sha3.ShakeSum256(bytes, data) + return bytes, nil +} + +func sumSHA3_384(data []byte, length int) ([]byte, error) { + a := sha3.Sum384(data) + return a[:], nil +} + +func sumSHA3_256(data []byte, length int) ([]byte, error) { + a := sha3.Sum256(data) + return a[:], nil +} + +func sumSHA3_224(data []byte, length int) ([]byte, error) { + a := sha3.Sum224(data) + return a[:], nil +} + +func registerStdlibHashFuncs() { + RegisterHashFunc(ID, sumID) + RegisterHashFunc(SHA1, sumSHA1) + RegisterHashFunc(SHA2_512, sumSHA512) + RegisterHashFunc(MD5, sumMD5) +} + +func registerNonStdlibHashFuncs() { + RegisterHashFunc(SHA2_256, sumSHA256) + RegisterHashFunc(DBL_SHA2_256, sumDoubleSHA256) + + RegisterHashFunc(KECCAK_224, sumKeccak224) + RegisterHashFunc(KECCAK_256, sumKeccak256) + RegisterHashFunc(KECCAK_384, sumKeccak384) + RegisterHashFunc(KECCAK_512, sumKeccak512) + + RegisterHashFunc(SHA3_224, sumSHA3_224) + RegisterHashFunc(SHA3_256, sumSHA3_256) + RegisterHashFunc(SHA3_384, sumSHA3_384) + RegisterHashFunc(SHA3_512, sumSHA3_512) + + RegisterHashFunc(MURMUR3, sumMURMUR3) + + RegisterHashFunc(SHAKE_128, sumSHAKE128) + RegisterHashFunc(SHAKE_256, sumSHAKE256) + + // Blake family of hash functions + // BLAKE2S + for c := uint64(BLAKE2S_MIN); c <= BLAKE2S_MAX; c++ { + size := int(c - BLAKE2S_MIN + 1) + RegisterHashFunc(c, func(buf []byte, _ int) ([]byte, error) { + return sumBlake2s(buf, size) + }) + } + // BLAKE2B + for c := uint64(BLAKE2B_MIN); c <= BLAKE2B_MAX; c++ { + size := int(c - BLAKE2B_MIN + 1) + RegisterHashFunc(c, func(buf []byte, _ int) ([]byte, error) { + return sumBlake2b(buf, size) + }) + } +} + +func init() { + registerStdlibHashFuncs() + registerNonStdlibHashFuncs() +} + +// RegisterHashFunc adds an entry to the package-level code -> hash func map. +// The hash function must return at least the requested number of bytes. If it +// returns more, the hash will be truncated. +func RegisterHashFunc(code uint64, hashFunc HashFunc) error { + if !ValidCode(code) { + return fmt.Errorf("code %v not valid", code) + } + + _, ok := funcTable[code] + if ok { + return fmt.Errorf("hash func for code %v already registered", code) + } + + funcTable[code] = hashFunc + return nil +} diff --git a/vendor/github.com/multiformats/go-multistream/.travis.yml b/vendor/github.com/multiformats/go-multistream/.travis.yml new file mode 100644 index 00000000..18f4287d --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/.travis.yml @@ -0,0 +1,32 @@ +os: + - linux + +language: go + +go: + - 1.11.x + +env: + global: + - GOTFLAGS="-race" + matrix: + - BUILD_DEPTYPE=gx + - BUILD_DEPTYPE=gomod + + +# disable travis install +install: + - true + +script: + - bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh) + + +cache: + directories: + - $GOPATH/src/gx + - $GOPATH/pkg/mod + - /home/travis/.cache/go-build + +notifications: + email: false diff --git a/vendor/github.com/multiformats/go-multistream/LICENSE b/vendor/github.com/multiformats/go-multistream/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/multiformats/go-multistream/Makefile b/vendor/github.com/multiformats/go-multistream/Makefile new file mode 100644 index 00000000..4f5206e4 --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/Makefile @@ -0,0 +1,13 @@ +export IPFS_API ?= v04x.ipfs.io + +gx: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx + gx --verbose install --global + gx-go rewrite + +publish: + gx-go rewrite --undo + diff --git a/vendor/github.com/multiformats/go-multistream/README.md b/vendor/github.com/multiformats/go-multistream/README.md new file mode 100644 index 00000000..08867fcb --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/README.md @@ -0,0 +1,153 @@ +# go-multistream + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) +[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![GoDoc](https://godoc.org/github.com/multiformats/go-multistream?status.svg)](https://godoc.org/github.com/multiformats/go-multistream) +[![Travis CI](https://img.shields.io/travis/multiformats/go-multistream.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multistream) +[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multistream.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multistream?branch=master) + +> an implementation of the multistream protocol in go + +This package implements a simple stream router for the multistream-select protocol. +The protocol is defined [here](https://github.com/multiformats/multistream-select). + +## Table of Contents + + +- [Install](#install) +- [Usage](#usage) +- [Maintainers](#maintainers) +- [Contribute](#contribute) +- [License](#license) + +## Install + +`go-multistream` is a standard Go module which can be installed with: + +```sh +go get github.com/multiformats/go-multistream +``` + +Note that `go-multistream` is packaged with Gx, so it is recommended to use Gx to install and use it (see Usage section). + + +## Usage + +### Using Gx and Gx-go + +This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project do: + +```sh +go get -u github.com/whyrusleeping/gx +go get -u github.com/whyrusleeping/gx-go +cd +gx init +gx import github.com/multiformats/go-multistream +gx install --global +gx-go --rewrite +``` + +Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information. + +### Example + + +This example shows how to use a multistream muxer. A muxer uses user-added handlers to handle different "protocols". The first step when interacting with a connection handler by the muxer is to select the protocol (the example uses `SelectProtoOrFail`). This will then let the muxer use the right handler. + + +```go +package main + +import ( + "fmt" + "io" + "io/ioutil" + "net" + + ms "github.com/multiformats/go-multistream" +) + +// This example creates a multistream muxer, adds handlers for the protocols +// "/cats" and "/dogs" and exposes it on a localhost:8765. It then opens connections +// to that port, selects the protocols and tests that the handlers are working. +func main() { + mux := ms.NewMultistreamMuxer() + mux.AddHandler("/cats", func(proto string, rwc io.ReadWriteCloser) error { + fmt.Fprintln(rwc, proto, ": HELLO I LIKE CATS") + return rwc.Close() + }) + mux.AddHandler("/dogs", func(proto string, rwc io.ReadWriteCloser) error { + fmt.Fprintln(rwc, proto, ": HELLO I LIKE DOGS") + return rwc.Close() + }) + + list, err := net.Listen("tcp", ":8765") + if err != nil { + panic(err) + } + + go func() { + for { + con, err := list.Accept() + if err != nil { + panic(err) + } + + go mux.Handle(con) + } + }() + + // The Muxer is ready, let's test it + conn, err := net.Dial("tcp", ":8765") + if err != nil { + panic(err) + } + + // Create a new multistream to talk to the muxer + // which will negotiate that we want to talk with /cats + mstream := ms.NewMSSelect(conn, "/cats") + cats, err := ioutil.ReadAll(mstream) + if err != nil { + panic(err) + } + fmt.Printf("%s", cats) + mstream.Close() + + // A different way of talking to the muxer + // is to manually selecting the protocol ourselves + conn, err = net.Dial("tcp", ":8765") + if err != nil { + panic(err) + } + defer conn.Close() + err = ms.SelectProtoOrFail("/dogs", conn) + if err != nil { + panic(err) + } + dogs, err := ioutil.ReadAll(conn) + if err != nil { + panic(err) + } + fmt.Printf("%s", dogs) + conn.Close() +} +``` + + +## Maintainers + +Captain: [@whyrusleeping](https://github.com/whyrusleeping). + +## Contribute + +Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multistream/issues). + +Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. + +## License + +[MIT](LICENSE) © 2016 Jeromy Johnson diff --git a/vendor/github.com/multiformats/go-multistream/client.go b/vendor/github.com/multiformats/go-multistream/client.go new file mode 100644 index 00000000..8f41eb13 --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/client.go @@ -0,0 +1,87 @@ +package multistream + +import ( + "errors" + "io" +) + +// ErrNotSupported is the error returned when the muxer does not support +// the protocol specified for the handshake. +var ErrNotSupported = errors.New("protocol not supported") + +// SelectProtoOrFail performs the initial multistream handshake +// to inform the muxer of the protocol that will be used to communicate +// on this ReadWriteCloser. It returns an error if, for example, +// the muxer does not know how to handle this protocol. +func SelectProtoOrFail(proto string, rwc io.ReadWriteCloser) error { + err := handshake(rwc) + if err != nil { + return err + } + + return trySelect(proto, rwc) +} + +// SelectOneOf will perform handshakes with the protocols on the given slice +// until it finds one which is supported by the muxer. +func SelectOneOf(protos []string, rwc io.ReadWriteCloser) (string, error) { + err := handshake(rwc) + if err != nil { + return "", err + } + + for _, p := range protos { + err := trySelect(p, rwc) + switch err { + case nil: + return p, nil + case ErrNotSupported: + default: + return "", err + } + } + return "", ErrNotSupported +} + +func handshake(rwc io.ReadWriteCloser) error { + errCh := make(chan error, 1) + go func() { + errCh <- delimWriteBuffered(rwc, []byte(ProtocolID)) + }() + + tok, readErr := ReadNextToken(rwc) + writeErr := <-errCh + + if writeErr != nil { + return writeErr + } + if readErr != nil { + return readErr + } + + if tok != ProtocolID { + return errors.New("received mismatch in protocol id") + } + return nil +} + +func trySelect(proto string, rwc io.ReadWriteCloser) error { + err := delimWriteBuffered(rwc, []byte(proto)) + if err != nil { + return err + } + + tok, err := ReadNextToken(rwc) + if err != nil { + return err + } + + switch tok { + case proto: + return nil + case "na": + return ErrNotSupported + default: + return errors.New("unrecognized response: " + tok) + } +} diff --git a/vendor/github.com/multiformats/go-multistream/go.mod b/vendor/github.com/multiformats/go-multistream/go.mod new file mode 100644 index 00000000..560ed671 --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/go.mod @@ -0,0 +1 @@ +module github.com/multiformats/go-multistream diff --git a/vendor/github.com/multiformats/go-multistream/lazyClient.go b/vendor/github.com/multiformats/go-multistream/lazyClient.go new file mode 100644 index 00000000..311e2cbc --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/lazyClient.go @@ -0,0 +1,142 @@ +package multistream + +import ( + "bufio" + "fmt" + "io" + "sync" +) + +// Multistream represents in essense a ReadWriteCloser, or a single +// communication wire which supports multiple streams on it. Each +// stream is identified by a protocol tag. +type Multistream interface { + io.ReadWriteCloser +} + +// NewMSSelect returns a new Multistream which is able to perform +// protocol selection with a MultistreamMuxer. +func NewMSSelect(c io.ReadWriteCloser, proto string) Multistream { + return &lazyClientConn{ + protos: []string{ProtocolID, proto}, + con: c, + } +} + +// NewMultistream returns a multistream for the given protocol. This will not +// perform any protocol selection. If you are using a MultistreamMuxer, use +// NewMSSelect. +func NewMultistream(c io.ReadWriteCloser, proto string) Multistream { + return &lazyClientConn{ + protos: []string{proto}, + con: c, + } +} + +// lazyClientConn is a ReadWriteCloser adapter that lazily negotiates a protocol +// using multistream-select on first use. +// +// It *does not* block writes waiting for the other end to respond. Instead, it +// simply assumes the negotiation went successfully and starts writing data. +// See: https://github.com/multiformats/go-multistream/issues/20 +type lazyClientConn struct { + // Used to ensure we only trigger the write half of the handshake once. + rhandshakeOnce sync.Once + rerr error + + // Used to ensure we only trigger the read half of the handshake once. + whandshakeOnce sync.Once + werr error + + // The sequence of protocols to negotiate. + protos []string + + // The inner connection. + con io.ReadWriteCloser +} + +// Read reads data from the io.ReadWriteCloser. +// +// If the protocol hasn't yet been negotiated, this method triggers the write +// half of the handshake and then waits for the read half to complete. +// +// It returns an error if the read half of the handshake fails. +func (l *lazyClientConn) Read(b []byte) (int, error) { + l.rhandshakeOnce.Do(func() { + go l.whandshakeOnce.Do(l.doWriteHandshake) + l.doReadHandshake() + }) + if l.rerr != nil { + return 0, l.rerr + } + if len(b) == 0 { + return 0, nil + } + + return l.con.Read(b) +} + +func (l *lazyClientConn) doReadHandshake() { + for _, proto := range l.protos { + // read protocol + tok, err := ReadNextToken(l.con) + if err != nil { + l.rerr = err + return + } + + if tok != proto { + l.rerr = fmt.Errorf("protocol mismatch in lazy handshake ( %s != %s )", tok, proto) + return + } + } +} + +func (l *lazyClientConn) doWriteHandshake() { + l.doWriteHandshakeWithData(nil) +} + +// Perform the write handshake but *also* write some extra data. +func (l *lazyClientConn) doWriteHandshakeWithData(extra []byte) int { + buf := bufio.NewWriter(l.con) + for _, proto := range l.protos { + l.werr = delimWrite(buf, []byte(proto)) + if l.werr != nil { + return 0 + } + } + + n := 0 + if len(extra) > 0 { + n, l.werr = buf.Write(extra) + if l.werr != nil { + return n + } + } + l.werr = buf.Flush() + return n +} + +// Write writes the given buffer to the underlying connection. +// +// If the protocol has not yet been negotiated, write waits for the write half +// of the handshake to complete triggers (but does not wait for) the read half. +// +// Write *also* ignores errors from the read half of the handshake (in case the +// stream is actually write only). +func (l *lazyClientConn) Write(b []byte) (int, error) { + n := 0 + l.whandshakeOnce.Do(func() { + go l.rhandshakeOnce.Do(l.doReadHandshake) + n = l.doWriteHandshakeWithData(b) + }) + if l.werr != nil || n > 0 { + return n, l.werr + } + return l.con.Write(b) +} + +// Close closes the underlying io.ReadWriteCloser +func (l *lazyClientConn) Close() error { + return l.con.Close() +} diff --git a/vendor/github.com/multiformats/go-multistream/lazyServer.go b/vendor/github.com/multiformats/go-multistream/lazyServer.go new file mode 100644 index 00000000..d7501fac --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/lazyServer.go @@ -0,0 +1,37 @@ +package multistream + +import ( + "io" + "sync" +) + +// lazyServerConn is an io.ReadWriteCloser adapter used for negotiating inbound +// streams (see NegotiateLazy). +// +// This is "lazy" because it doesn't wait for the write half to succeed before +// allowing us to read from the stream. +type lazyServerConn struct { + waitForHandshake sync.Once + werr error + + con io.ReadWriteCloser +} + +func (l *lazyServerConn) Write(b []byte) (int, error) { + l.waitForHandshake.Do(func() { panic("didn't initiate handshake") }) + if l.werr != nil { + return 0, l.werr + } + return l.con.Write(b) +} + +func (l *lazyServerConn) Read(b []byte) (int, error) { + if len(b) == 0 { + return 0, nil + } + return l.con.Read(b) +} + +func (l *lazyServerConn) Close() error { + return l.con.Close() +} diff --git a/vendor/github.com/multiformats/go-multistream/multistream.go b/vendor/github.com/multiformats/go-multistream/multistream.go new file mode 100644 index 00000000..f61b24ea --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/multistream.go @@ -0,0 +1,440 @@ +// Package multistream implements a simple stream router for the +// multistream-select protocoli. The protocol is defined at +// https://github.com/multiformats/multistream-select +package multistream + +import ( + "bufio" + "bytes" + "encoding/binary" + "errors" + "io" + "sync" +) + +// ErrTooLarge is an error to signal that an incoming message was too large +var ErrTooLarge = errors.New("incoming message was too large") + +// ProtocolID identifies the multistream protocol itself and makes sure +// the multistream muxers on both sides of a channel can work with each other. +const ProtocolID = "/multistream/1.0.0" + +// HandlerFunc is a user-provided function used by the MultistreamMuxer to +// handle a protocol/stream. +type HandlerFunc func(protocol string, rwc io.ReadWriteCloser) error + +// Handler is a wrapper to HandlerFunc which attaches a name (protocol) and a +// match function which can optionally be used to select a handler by other +// means than the name. +type Handler struct { + MatchFunc func(string) bool + Handle HandlerFunc + AddName string +} + +// MultistreamMuxer is a muxer for multistream. Depending on the stream +// protocol tag it will select the right handler and hand the stream off to it. +type MultistreamMuxer struct { + handlerlock sync.Mutex + handlers []Handler +} + +// NewMultistreamMuxer creates a muxer. +func NewMultistreamMuxer() *MultistreamMuxer { + return new(MultistreamMuxer) +} + +func writeUvarint(w io.Writer, i uint64) error { + varintbuf := make([]byte, 16) + n := binary.PutUvarint(varintbuf, i) + _, err := w.Write(varintbuf[:n]) + if err != nil { + return err + } + return nil +} + +func delimWriteBuffered(w io.Writer, mes []byte) error { + bw := bufio.NewWriter(w) + err := delimWrite(bw, mes) + if err != nil { + return err + } + + return bw.Flush() +} + +func delimWrite(w io.Writer, mes []byte) error { + err := writeUvarint(w, uint64(len(mes)+1)) + if err != nil { + return err + } + + _, err = w.Write(mes) + if err != nil { + return err + } + + _, err = w.Write([]byte{'\n'}) + if err != nil { + return err + } + return nil +} + +// Ls is a Multistream muxer command which returns the list of handler names +// available on a muxer. +func Ls(rw io.ReadWriter) ([]string, error) { + err := delimWriteBuffered(rw, []byte("ls")) + if err != nil { + return nil, err + } + + n, err := binary.ReadUvarint(&byteReader{rw}) + if err != nil { + return nil, err + } + + var out []string + for i := uint64(0); i < n; i++ { + val, err := lpReadBuf(rw) + if err != nil { + return nil, err + } + out = append(out, string(val)) + } + + return out, nil +} + +func fulltextMatch(s string) func(string) bool { + return func(a string) bool { + return a == s + } +} + +// AddHandler attaches a new protocol handler to the muxer. +func (msm *MultistreamMuxer) AddHandler(protocol string, handler HandlerFunc) { + msm.AddHandlerWithFunc(protocol, fulltextMatch(protocol), handler) +} + +// AddHandlerWithFunc attaches a new protocol handler to the muxer with a match. +// If the match function returns true for a given protocol tag, the protocol +// will be selected even if the handler name and protocol tags are different. +func (msm *MultistreamMuxer) AddHandlerWithFunc(protocol string, match func(string) bool, handler HandlerFunc) { + msm.handlerlock.Lock() + msm.removeHandler(protocol) + msm.handlers = append(msm.handlers, Handler{ + MatchFunc: match, + Handle: handler, + AddName: protocol, + }) + msm.handlerlock.Unlock() +} + +// RemoveHandler removes the handler with the given name from the muxer. +func (msm *MultistreamMuxer) RemoveHandler(protocol string) { + msm.handlerlock.Lock() + defer msm.handlerlock.Unlock() + + msm.removeHandler(protocol) +} + +func (msm *MultistreamMuxer) removeHandler(protocol string) { + for i, h := range msm.handlers { + if h.AddName == protocol { + msm.handlers = append(msm.handlers[:i], msm.handlers[i+1:]...) + return + } + } +} + +// Protocols returns the list of handler-names added to this this muxer. +func (msm *MultistreamMuxer) Protocols() []string { + var out []string + msm.handlerlock.Lock() + for _, h := range msm.handlers { + out = append(out, h.AddName) + } + msm.handlerlock.Unlock() + return out +} + +// ErrIncorrectVersion is an error reported when the muxer protocol negotiation +// fails because of a ProtocolID mismatch. +var ErrIncorrectVersion = errors.New("client connected with incorrect version") + +func (msm *MultistreamMuxer) findHandler(proto string) *Handler { + msm.handlerlock.Lock() + defer msm.handlerlock.Unlock() + + for _, h := range msm.handlers { + if h.MatchFunc(proto) { + return &h + } + } + + return nil +} + +// NegotiateLazy performs protocol selection and returns +// a multistream, the protocol used, the handler and an error. It is lazy +// because the write-handshake is performed on a subroutine, allowing this +// to return before that handshake is completed. +func (msm *MultistreamMuxer) NegotiateLazy(rwc io.ReadWriteCloser) (Multistream, string, HandlerFunc, error) { + pval := make(chan string, 1) + writeErr := make(chan error, 1) + defer close(pval) + + lzc := &lazyServerConn{ + con: rwc, + } + + started := make(chan struct{}) + go lzc.waitForHandshake.Do(func() { + close(started) + + defer close(writeErr) + + if err := delimWriteBuffered(rwc, []byte(ProtocolID)); err != nil { + lzc.werr = err + writeErr <- err + return + } + + for proto := range pval { + if err := delimWriteBuffered(rwc, []byte(proto)); err != nil { + lzc.werr = err + writeErr <- err + return + } + } + }) + <-started + + line, err := ReadNextToken(rwc) + if err != nil { + return nil, "", nil, err + } + + if line != ProtocolID { + rwc.Close() + return nil, "", nil, ErrIncorrectVersion + } + +loop: + for { + // Now read and respond to commands until they send a valid protocol id + tok, err := ReadNextToken(rwc) + if err != nil { + rwc.Close() + return nil, "", nil, err + } + + switch tok { + case "ls": + select { + case pval <- "ls": + case err := <-writeErr: + rwc.Close() + return nil, "", nil, err + } + default: + h := msm.findHandler(tok) + if h == nil { + select { + case pval <- "na": + case err := <-writeErr: + rwc.Close() + return nil, "", nil, err + } + continue loop + } + + select { + case pval <- tok: + case <-writeErr: + // explicitly ignore this error. It will be returned to any + // writers and if we don't plan on writing anything, we still + // want to complete the handshake + } + + // hand off processing to the sub-protocol handler + return lzc, tok, h.Handle, nil + } + } +} + +// Negotiate performs protocol selection and returns the protocol name and +// the matching handler function for it (or an error). +func (msm *MultistreamMuxer) Negotiate(rwc io.ReadWriteCloser) (string, HandlerFunc, error) { + // Send our protocol ID + err := delimWriteBuffered(rwc, []byte(ProtocolID)) + if err != nil { + return "", nil, err + } + + line, err := ReadNextToken(rwc) + if err != nil { + return "", nil, err + } + + if line != ProtocolID { + rwc.Close() + return "", nil, ErrIncorrectVersion + } + +loop: + for { + // Now read and respond to commands until they send a valid protocol id + tok, err := ReadNextToken(rwc) + if err != nil { + return "", nil, err + } + + switch tok { + case "ls": + err := msm.Ls(rwc) + if err != nil { + return "", nil, err + } + default: + h := msm.findHandler(tok) + if h == nil { + err := delimWriteBuffered(rwc, []byte("na")) + if err != nil { + return "", nil, err + } + continue loop + } + + err := delimWriteBuffered(rwc, []byte(tok)) + if err != nil { + return "", nil, err + } + + // hand off processing to the sub-protocol handler + return tok, h.Handle, nil + } + } + +} + +// Ls implements the "ls" command which writes the list of +// supported protocols to the given Writer. +func (msm *MultistreamMuxer) Ls(w io.Writer) error { + buf := new(bytes.Buffer) + msm.handlerlock.Lock() + err := writeUvarint(buf, uint64(len(msm.handlers))) + if err != nil { + return err + } + + for _, h := range msm.handlers { + err := delimWrite(buf, []byte(h.AddName)) + if err != nil { + msm.handlerlock.Unlock() + return err + } + } + msm.handlerlock.Unlock() + ll := make([]byte, 16) + nw := binary.PutUvarint(ll, uint64(buf.Len())) + + r := io.MultiReader(bytes.NewReader(ll[:nw]), buf) + + _, err = io.Copy(w, r) + return err +} + +// Handle performs protocol negotiation on a ReadWriteCloser +// (i.e. a connection). It will find a matching handler for the +// incoming protocol and pass the ReadWriteCloser to it. +func (msm *MultistreamMuxer) Handle(rwc io.ReadWriteCloser) error { + p, h, err := msm.Negotiate(rwc) + if err != nil { + return err + } + return h(p, rwc) +} + +// ReadNextToken extracts a token from a ReadWriter. It is used during +// protocol negotiation and returns a string. +func ReadNextToken(rw io.ReadWriter) (string, error) { + tok, err := ReadNextTokenBytes(rw) + if err != nil { + return "", err + } + + return string(tok), nil +} + +// ReadNextTokenBytes extracts a token from a ReadWriter. It is used +// during protocol negotiation and returns a byte slice. +func ReadNextTokenBytes(rw io.ReadWriter) ([]byte, error) { + data, err := lpReadBuf(rw) + switch err { + case nil: + return data, nil + case ErrTooLarge: + err := delimWriteBuffered(rw, []byte("messages over 64k are not allowed")) + if err != nil { + return nil, err + } + return nil, ErrTooLarge + default: + return nil, err + } +} + +func lpReadBuf(r io.Reader) ([]byte, error) { + br, ok := r.(io.ByteReader) + if !ok { + br = &byteReader{r} + } + + length, err := binary.ReadUvarint(br) + if err != nil { + return nil, err + } + + if length > 64*1024 { + return nil, ErrTooLarge + } + + buf := make([]byte, length) + _, err = io.ReadFull(r, buf) + if err != nil { + return nil, err + } + + if len(buf) == 0 || buf[length-1] != '\n' { + return nil, errors.New("message did not have trailing newline") + } + + // slice off the trailing newline + buf = buf[:length-1] + + return buf, nil + +} + +// byteReader implements the ByteReader interface that ReadUVarint requires +type byteReader struct { + io.Reader +} + +func (br *byteReader) ReadByte() (byte, error) { + var b [1]byte + n, err := br.Read(b[:]) + if n == 1 { + return b[0], nil + } + if err == nil { + if n != 0 { + panic("read more bytes than buffer size") + } + err = io.ErrNoProgress + } + return 0, err +} diff --git a/vendor/github.com/multiformats/go-multistream/package.json b/vendor/github.com/multiformats/go-multistream/package.json new file mode 100644 index 00000000..c5001ef4 --- /dev/null +++ b/vendor/github.com/multiformats/go-multistream/package.json @@ -0,0 +1,16 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/multiformats/go-multistream" + }, + "gx": { + "dvcsimport": "github.com/multiformats/go-multistream" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "", + "name": "go-multistream", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.3.9" +} + diff --git a/vendor/github.com/opentracing/opentracing-go/.gitignore b/vendor/github.com/opentracing/opentracing-go/.gitignore new file mode 100644 index 00000000..c57100a5 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/.gitignore @@ -0,0 +1 @@ +coverage.txt diff --git a/vendor/github.com/opentracing/opentracing-go/.travis.yml b/vendor/github.com/opentracing/opentracing-go/.travis.yml new file mode 100644 index 00000000..8d5b75e4 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/.travis.yml @@ -0,0 +1,20 @@ +language: go + +matrix: + include: + - go: "1.11.x" + - go: "1.12.x" + - go: "tip" + env: + - LINT=true + - COVERAGE=true + +install: + - if [ "$LINT" == true ]; then go get -u golang.org/x/lint/golint/... ; else echo 'skipping lint'; fi + - go get -u github.com/stretchr/testify/... + +script: + - make test + - go build ./... + - if [ "$LINT" == true ]; then make lint ; else echo 'skipping lint'; fi + - if [ "$COVERAGE" == true ]; then make cover && bash <(curl -s https://codecov.io/bash) ; else echo 'skipping coverage'; fi diff --git a/vendor/github.com/opentracing/opentracing-go/CHANGELOG.md b/vendor/github.com/opentracing/opentracing-go/CHANGELOG.md new file mode 100644 index 00000000..7c14febe --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/CHANGELOG.md @@ -0,0 +1,46 @@ +Changes by Version +================== + +1.1.0 (2019-03-23) +------------------- + +Notable changes: +- The library is now released under Apache 2.0 license +- Use Set() instead of Add() in HTTPHeadersCarrier is functionally a breaking change (fixes issue [#159](https://github.com/opentracing/opentracing-go/issues/159)) +- 'golang.org/x/net/context' is replaced with 'context' from the standard library + +List of all changes: + +- Export StartSpanFromContextWithTracer (#214) +- Add IsGlobalTracerRegistered() to indicate if a tracer has been registered (#201) +- Use Set() instead of Add() in HTTPHeadersCarrier (#191) +- Update license to Apache 2.0 (#181) +- Replace 'golang.org/x/net/context' with 'context' (#176) +- Port of Python opentracing/harness/api_check.py to Go (#146) +- Fix race condition in MockSpan.Context() (#170) +- Add PeerHostIPv4.SetString() (#155) +- Add a Noop log field type to log to allow for optional fields (#150) + + +1.0.2 (2017-04-26) +------------------- + +- Add more semantic tags (#139) + + +1.0.1 (2017-02-06) +------------------- + +- Correct spelling in comments +- Address race in nextMockID() (#123) +- log: avoid panic marshaling nil error (#131) +- Deprecate InitGlobalTracer in favor of SetGlobalTracer (#128) +- Drop Go 1.5 that fails in Travis (#129) +- Add convenience methods Key() and Value() to log.Field +- Add convenience methods to log.Field (2 years, 6 months ago) + +1.0.0 (2016-09-26) +------------------- + +- This release implements OpenTracing Specification 1.0 (https://opentracing.io/spec) + diff --git a/vendor/github.com/opentracing/opentracing-go/LICENSE b/vendor/github.com/opentracing/opentracing-go/LICENSE new file mode 100644 index 00000000..f0027349 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 The OpenTracing Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/opentracing/opentracing-go/Makefile b/vendor/github.com/opentracing/opentracing-go/Makefile new file mode 100644 index 00000000..62abb63f --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/Makefile @@ -0,0 +1,20 @@ +.DEFAULT_GOAL := test-and-lint + +.PHONY: test-and-lint +test-and-lint: test lint + +.PHONY: test +test: + go test -v -cover -race ./... + +.PHONY: cover +cover: + go test -v -coverprofile=coverage.txt -covermode=atomic -race ./... + +.PHONY: lint +lint: + go fmt ./... + golint ./... + @# Run again with magic to exit non-zero if golint outputs anything. + @! (golint ./... | read dummy) + go vet ./... diff --git a/vendor/github.com/opentracing/opentracing-go/README.md b/vendor/github.com/opentracing/opentracing-go/README.md new file mode 100644 index 00000000..6ef1d7c9 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/README.md @@ -0,0 +1,171 @@ +[![Gitter chat](http://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg)](https://gitter.im/opentracing/public) [![Build Status](https://travis-ci.org/opentracing/opentracing-go.svg?branch=master)](https://travis-ci.org/opentracing/opentracing-go) [![GoDoc](https://godoc.org/github.com/opentracing/opentracing-go?status.svg)](http://godoc.org/github.com/opentracing/opentracing-go) +[![Sourcegraph Badge](https://sourcegraph.com/github.com/opentracing/opentracing-go/-/badge.svg)](https://sourcegraph.com/github.com/opentracing/opentracing-go?badge) + +# OpenTracing API for Go + +This package is a Go platform API for OpenTracing. + +## Required Reading + +In order to understand the Go platform API, one must first be familiar with the +[OpenTracing project](https://opentracing.io) and +[terminology](https://opentracing.io/specification/) more specifically. + +## API overview for those adding instrumentation + +Everyday consumers of this `opentracing` package really only need to worry +about a couple of key abstractions: the `StartSpan` function, the `Span` +interface, and binding a `Tracer` at `main()`-time. Here are code snippets +demonstrating some important use cases. + +#### Singleton initialization + +The simplest starting point is `./default_tracer.go`. As early as possible, call + +```go + import "github.com/opentracing/opentracing-go" + import ".../some_tracing_impl" + + func main() { + opentracing.SetGlobalTracer( + // tracing impl specific: + some_tracing_impl.New(...), + ) + ... + } +``` + +#### Non-Singleton initialization + +If you prefer direct control to singletons, manage ownership of the +`opentracing.Tracer` implementation explicitly. + +#### Creating a Span given an existing Go `context.Context` + +If you use `context.Context` in your application, OpenTracing's Go library will +happily rely on it for `Span` propagation. To start a new (blocking child) +`Span`, you can use `StartSpanFromContext`. + +```go + func xyz(ctx context.Context, ...) { + ... + span, ctx := opentracing.StartSpanFromContext(ctx, "operation_name") + defer span.Finish() + span.LogFields( + log.String("event", "soft error"), + log.String("type", "cache timeout"), + log.Int("waited.millis", 1500)) + ... + } +``` + +#### Starting an empty trace by creating a "root span" + +It's always possible to create a "root" `Span` with no parent or other causal +reference. + +```go + func xyz() { + ... + sp := opentracing.StartSpan("operation_name") + defer sp.Finish() + ... + } +``` + +#### Creating a (child) Span given an existing (parent) Span + +```go + func xyz(parentSpan opentracing.Span, ...) { + ... + sp := opentracing.StartSpan( + "operation_name", + opentracing.ChildOf(parentSpan.Context())) + defer sp.Finish() + ... + } +``` + +#### Serializing to the wire + +```go + func makeSomeRequest(ctx context.Context) ... { + if span := opentracing.SpanFromContext(ctx); span != nil { + httpClient := &http.Client{} + httpReq, _ := http.NewRequest("GET", "http://myservice/", nil) + + // Transmit the span's TraceContext as HTTP headers on our + // outbound request. + opentracing.GlobalTracer().Inject( + span.Context(), + opentracing.HTTPHeaders, + opentracing.HTTPHeadersCarrier(httpReq.Header)) + + resp, err := httpClient.Do(httpReq) + ... + } + ... + } +``` + +#### Deserializing from the wire + +```go + http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + var serverSpan opentracing.Span + appSpecificOperationName := ... + wireContext, err := opentracing.GlobalTracer().Extract( + opentracing.HTTPHeaders, + opentracing.HTTPHeadersCarrier(req.Header)) + if err != nil { + // Optionally record something about err here + } + + // Create the span referring to the RPC client if available. + // If wireContext == nil, a root span will be created. + serverSpan = opentracing.StartSpan( + appSpecificOperationName, + ext.RPCServerOption(wireContext)) + + defer serverSpan.Finish() + + ctx := opentracing.ContextWithSpan(context.Background(), serverSpan) + ... + } +``` + +#### Conditionally capture a field using `log.Noop` + +In some situations, you may want to dynamically decide whether or not +to log a field. For example, you may want to capture additional data, +such as a customer ID, in non-production environments: + +```go + func Customer(order *Order) log.Field { + if os.Getenv("ENVIRONMENT") == "dev" { + return log.String("customer", order.Customer.ID) + } + return log.Noop() + } +``` + +#### Goroutine-safety + +The entire public API is goroutine-safe and does not require external +synchronization. + +## API pointers for those implementing a tracing system + +Tracing system implementors may be able to reuse or copy-paste-modify the `basictracer` package, found [here](https://github.com/opentracing/basictracer-go). In particular, see `basictracer.New(...)`. + +## API compatibility + +For the time being, "mild" backwards-incompatible changes may be made without changing the major version number. As OpenTracing and `opentracing-go` mature, backwards compatibility will become more of a priority. + +## Tracer test suite + +A test suite is available in the [harness](https://godoc.org/github.com/opentracing/opentracing-go/harness) package that can assist Tracer implementors to assert that their Tracer is working correctly. + +## Licensing + +[Apache 2.0 License](./LICENSE). diff --git a/vendor/github.com/opentracing/opentracing-go/ext/tags.go b/vendor/github.com/opentracing/opentracing-go/ext/tags.go new file mode 100644 index 00000000..52e88958 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/ext/tags.go @@ -0,0 +1,210 @@ +package ext + +import "github.com/opentracing/opentracing-go" + +// These constants define common tag names recommended for better portability across +// tracing systems and languages/platforms. +// +// The tag names are defined as typed strings, so that in addition to the usual use +// +// span.setTag(TagName, value) +// +// they also support value type validation via this additional syntax: +// +// TagName.Set(span, value) +// +var ( + ////////////////////////////////////////////////////////////////////// + // SpanKind (client/server or producer/consumer) + ////////////////////////////////////////////////////////////////////// + + // SpanKind hints at relationship between spans, e.g. client/server + SpanKind = spanKindTagName("span.kind") + + // SpanKindRPCClient marks a span representing the client-side of an RPC + // or other remote call + SpanKindRPCClientEnum = SpanKindEnum("client") + SpanKindRPCClient = opentracing.Tag{Key: string(SpanKind), Value: SpanKindRPCClientEnum} + + // SpanKindRPCServer marks a span representing the server-side of an RPC + // or other remote call + SpanKindRPCServerEnum = SpanKindEnum("server") + SpanKindRPCServer = opentracing.Tag{Key: string(SpanKind), Value: SpanKindRPCServerEnum} + + // SpanKindProducer marks a span representing the producer-side of a + // message bus + SpanKindProducerEnum = SpanKindEnum("producer") + SpanKindProducer = opentracing.Tag{Key: string(SpanKind), Value: SpanKindProducerEnum} + + // SpanKindConsumer marks a span representing the consumer-side of a + // message bus + SpanKindConsumerEnum = SpanKindEnum("consumer") + SpanKindConsumer = opentracing.Tag{Key: string(SpanKind), Value: SpanKindConsumerEnum} + + ////////////////////////////////////////////////////////////////////// + // Component name + ////////////////////////////////////////////////////////////////////// + + // Component is a low-cardinality identifier of the module, library, + // or package that is generating a span. + Component = stringTagName("component") + + ////////////////////////////////////////////////////////////////////// + // Sampling hint + ////////////////////////////////////////////////////////////////////// + + // SamplingPriority determines the priority of sampling this Span. + SamplingPriority = uint16TagName("sampling.priority") + + ////////////////////////////////////////////////////////////////////// + // Peer tags. These tags can be emitted by either client-side of + // server-side to describe the other side/service in a peer-to-peer + // communications, like an RPC call. + ////////////////////////////////////////////////////////////////////// + + // PeerService records the service name of the peer. + PeerService = stringTagName("peer.service") + + // PeerAddress records the address name of the peer. This may be a "ip:port", + // a bare "hostname", a FQDN or even a database DSN substring + // like "mysql://username@127.0.0.1:3306/dbname" + PeerAddress = stringTagName("peer.address") + + // PeerHostname records the host name of the peer + PeerHostname = stringTagName("peer.hostname") + + // PeerHostIPv4 records IP v4 host address of the peer + PeerHostIPv4 = ipv4Tag("peer.ipv4") + + // PeerHostIPv6 records IP v6 host address of the peer + PeerHostIPv6 = stringTagName("peer.ipv6") + + // PeerPort records port number of the peer + PeerPort = uint16TagName("peer.port") + + ////////////////////////////////////////////////////////////////////// + // HTTP Tags + ////////////////////////////////////////////////////////////////////// + + // HTTPUrl should be the URL of the request being handled in this segment + // of the trace, in standard URI format. The protocol is optional. + HTTPUrl = stringTagName("http.url") + + // HTTPMethod is the HTTP method of the request, and is case-insensitive. + HTTPMethod = stringTagName("http.method") + + // HTTPStatusCode is the numeric HTTP status code (200, 404, etc) of the + // HTTP response. + HTTPStatusCode = uint16TagName("http.status_code") + + ////////////////////////////////////////////////////////////////////// + // DB Tags + ////////////////////////////////////////////////////////////////////// + + // DBInstance is database instance name. + DBInstance = stringTagName("db.instance") + + // DBStatement is a database statement for the given database type. + // It can be a query or a prepared statement (i.e., before substitution). + DBStatement = stringTagName("db.statement") + + // DBType is a database type. For any SQL database, "sql". + // For others, the lower-case database category, e.g. "redis" + DBType = stringTagName("db.type") + + // DBUser is a username for accessing database. + DBUser = stringTagName("db.user") + + ////////////////////////////////////////////////////////////////////// + // Message Bus Tag + ////////////////////////////////////////////////////////////////////// + + // MessageBusDestination is an address at which messages can be exchanged + MessageBusDestination = stringTagName("message_bus.destination") + + ////////////////////////////////////////////////////////////////////// + // Error Tag + ////////////////////////////////////////////////////////////////////// + + // Error indicates that operation represented by the span resulted in an error. + Error = boolTagName("error") +) + +// --- + +// SpanKindEnum represents common span types +type SpanKindEnum string + +type spanKindTagName string + +// Set adds a string tag to the `span` +func (tag spanKindTagName) Set(span opentracing.Span, value SpanKindEnum) { + span.SetTag(string(tag), value) +} + +type rpcServerOption struct { + clientContext opentracing.SpanContext +} + +func (r rpcServerOption) Apply(o *opentracing.StartSpanOptions) { + if r.clientContext != nil { + opentracing.ChildOf(r.clientContext).Apply(o) + } + SpanKindRPCServer.Apply(o) +} + +// RPCServerOption returns a StartSpanOption appropriate for an RPC server span +// with `client` representing the metadata for the remote peer Span if available. +// In case client == nil, due to the client not being instrumented, this RPC +// server span will be a root span. +func RPCServerOption(client opentracing.SpanContext) opentracing.StartSpanOption { + return rpcServerOption{client} +} + +// --- + +type stringTagName string + +// Set adds a string tag to the `span` +func (tag stringTagName) Set(span opentracing.Span, value string) { + span.SetTag(string(tag), value) +} + +// --- + +type uint32TagName string + +// Set adds a uint32 tag to the `span` +func (tag uint32TagName) Set(span opentracing.Span, value uint32) { + span.SetTag(string(tag), value) +} + +// --- + +type uint16TagName string + +// Set adds a uint16 tag to the `span` +func (tag uint16TagName) Set(span opentracing.Span, value uint16) { + span.SetTag(string(tag), value) +} + +// --- + +type boolTagName string + +// Add adds a bool tag to the `span` +func (tag boolTagName) Set(span opentracing.Span, value bool) { + span.SetTag(string(tag), value) +} + +type ipv4Tag string + +// Set adds IP v4 host address of the peer as an uint32 value to the `span`, keep this for backward and zipkin compatibility +func (tag ipv4Tag) Set(span opentracing.Span, value uint32) { + span.SetTag(string(tag), value) +} + +// SetString records IP v4 host address of the peer as a .-separated tuple to the `span`. E.g., "127.0.0.1" +func (tag ipv4Tag) SetString(span opentracing.Span, value string) { + span.SetTag(string(tag), value) +} diff --git a/vendor/github.com/opentracing/opentracing-go/globaltracer.go b/vendor/github.com/opentracing/opentracing-go/globaltracer.go new file mode 100644 index 00000000..4f7066a9 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/globaltracer.go @@ -0,0 +1,42 @@ +package opentracing + +type registeredTracer struct { + tracer Tracer + isRegistered bool +} + +var ( + globalTracer = registeredTracer{NoopTracer{}, false} +) + +// SetGlobalTracer sets the [singleton] opentracing.Tracer returned by +// GlobalTracer(). Those who use GlobalTracer (rather than directly manage an +// opentracing.Tracer instance) should call SetGlobalTracer as early as +// possible in main(), prior to calling the `StartSpan` global func below. +// Prior to calling `SetGlobalTracer`, any Spans started via the `StartSpan` +// (etc) globals are noops. +func SetGlobalTracer(tracer Tracer) { + globalTracer = registeredTracer{tracer, true} +} + +// GlobalTracer returns the global singleton `Tracer` implementation. +// Before `SetGlobalTracer()` is called, the `GlobalTracer()` is a noop +// implementation that drops all data handed to it. +func GlobalTracer() Tracer { + return globalTracer.tracer +} + +// StartSpan defers to `Tracer.StartSpan`. See `GlobalTracer()`. +func StartSpan(operationName string, opts ...StartSpanOption) Span { + return globalTracer.tracer.StartSpan(operationName, opts...) +} + +// InitGlobalTracer is deprecated. Please use SetGlobalTracer. +func InitGlobalTracer(tracer Tracer) { + SetGlobalTracer(tracer) +} + +// IsGlobalTracerRegistered returns a `bool` to indicate if a tracer has been globally registered +func IsGlobalTracerRegistered() bool { + return globalTracer.isRegistered +} diff --git a/vendor/github.com/opentracing/opentracing-go/gocontext.go b/vendor/github.com/opentracing/opentracing-go/gocontext.go new file mode 100644 index 00000000..08c00c04 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/gocontext.go @@ -0,0 +1,60 @@ +package opentracing + +import "context" + +type contextKey struct{} + +var activeSpanKey = contextKey{} + +// ContextWithSpan returns a new `context.Context` that holds a reference to +// `span`'s SpanContext. +func ContextWithSpan(ctx context.Context, span Span) context.Context { + return context.WithValue(ctx, activeSpanKey, span) +} + +// SpanFromContext returns the `Span` previously associated with `ctx`, or +// `nil` if no such `Span` could be found. +// +// NOTE: context.Context != SpanContext: the former is Go's intra-process +// context propagation mechanism, and the latter houses OpenTracing's per-Span +// identity and baggage information. +func SpanFromContext(ctx context.Context) Span { + val := ctx.Value(activeSpanKey) + if sp, ok := val.(Span); ok { + return sp + } + return nil +} + +// StartSpanFromContext starts and returns a Span with `operationName`, using +// any Span found within `ctx` as a ChildOfRef. If no such parent could be +// found, StartSpanFromContext creates a root (parentless) Span. +// +// The second return value is a context.Context object built around the +// returned Span. +// +// Example usage: +// +// SomeFunction(ctx context.Context, ...) { +// sp, ctx := opentracing.StartSpanFromContext(ctx, "SomeFunction") +// defer sp.Finish() +// ... +// } +func StartSpanFromContext(ctx context.Context, operationName string, opts ...StartSpanOption) (Span, context.Context) { + return StartSpanFromContextWithTracer(ctx, GlobalTracer(), operationName, opts...) +} + +// StartSpanFromContextWithTracer starts and returns a span with `operationName` +// using a span found within the context as a ChildOfRef. If that doesn't exist +// it creates a root span. It also returns a context.Context object built +// around the returned span. +// +// It's behavior is identical to StartSpanFromContext except that it takes an explicit +// tracer as opposed to using the global tracer. +func StartSpanFromContextWithTracer(ctx context.Context, tracer Tracer, operationName string, opts ...StartSpanOption) (Span, context.Context) { + if parentSpan := SpanFromContext(ctx); parentSpan != nil { + opts = append(opts, ChildOf(parentSpan.Context())) + } + span := tracer.StartSpan(operationName, opts...) + return span, ContextWithSpan(ctx, span) +} diff --git a/vendor/github.com/opentracing/opentracing-go/log/field.go b/vendor/github.com/opentracing/opentracing-go/log/field.go new file mode 100644 index 00000000..50feea34 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/log/field.go @@ -0,0 +1,269 @@ +package log + +import ( + "fmt" + "math" +) + +type fieldType int + +const ( + stringType fieldType = iota + boolType + intType + int32Type + uint32Type + int64Type + uint64Type + float32Type + float64Type + errorType + objectType + lazyLoggerType + noopType +) + +// Field instances are constructed via LogBool, LogString, and so on. +// Tracing implementations may then handle them via the Field.Marshal +// method. +// +// "heavily influenced by" (i.e., partially stolen from) +// https://github.com/uber-go/zap +type Field struct { + key string + fieldType fieldType + numericVal int64 + stringVal string + interfaceVal interface{} +} + +// String adds a string-valued key:value pair to a Span.LogFields() record +func String(key, val string) Field { + return Field{ + key: key, + fieldType: stringType, + stringVal: val, + } +} + +// Bool adds a bool-valued key:value pair to a Span.LogFields() record +func Bool(key string, val bool) Field { + var numericVal int64 + if val { + numericVal = 1 + } + return Field{ + key: key, + fieldType: boolType, + numericVal: numericVal, + } +} + +// Int adds an int-valued key:value pair to a Span.LogFields() record +func Int(key string, val int) Field { + return Field{ + key: key, + fieldType: intType, + numericVal: int64(val), + } +} + +// Int32 adds an int32-valued key:value pair to a Span.LogFields() record +func Int32(key string, val int32) Field { + return Field{ + key: key, + fieldType: int32Type, + numericVal: int64(val), + } +} + +// Int64 adds an int64-valued key:value pair to a Span.LogFields() record +func Int64(key string, val int64) Field { + return Field{ + key: key, + fieldType: int64Type, + numericVal: val, + } +} + +// Uint32 adds a uint32-valued key:value pair to a Span.LogFields() record +func Uint32(key string, val uint32) Field { + return Field{ + key: key, + fieldType: uint32Type, + numericVal: int64(val), + } +} + +// Uint64 adds a uint64-valued key:value pair to a Span.LogFields() record +func Uint64(key string, val uint64) Field { + return Field{ + key: key, + fieldType: uint64Type, + numericVal: int64(val), + } +} + +// Float32 adds a float32-valued key:value pair to a Span.LogFields() record +func Float32(key string, val float32) Field { + return Field{ + key: key, + fieldType: float32Type, + numericVal: int64(math.Float32bits(val)), + } +} + +// Float64 adds a float64-valued key:value pair to a Span.LogFields() record +func Float64(key string, val float64) Field { + return Field{ + key: key, + fieldType: float64Type, + numericVal: int64(math.Float64bits(val)), + } +} + +// Error adds an error with the key "error" to a Span.LogFields() record +func Error(err error) Field { + return Field{ + key: "error", + fieldType: errorType, + interfaceVal: err, + } +} + +// Object adds an object-valued key:value pair to a Span.LogFields() record +func Object(key string, obj interface{}) Field { + return Field{ + key: key, + fieldType: objectType, + interfaceVal: obj, + } +} + +// LazyLogger allows for user-defined, late-bound logging of arbitrary data +type LazyLogger func(fv Encoder) + +// Lazy adds a LazyLogger to a Span.LogFields() record; the tracing +// implementation will call the LazyLogger function at an indefinite time in +// the future (after Lazy() returns). +func Lazy(ll LazyLogger) Field { + return Field{ + fieldType: lazyLoggerType, + interfaceVal: ll, + } +} + +// Noop creates a no-op log field that should be ignored by the tracer. +// It can be used to capture optional fields, for example those that should +// only be logged in non-production environment: +// +// func customerField(order *Order) log.Field { +// if os.Getenv("ENVIRONMENT") == "dev" { +// return log.String("customer", order.Customer.ID) +// } +// return log.Noop() +// } +// +// span.LogFields(log.String("event", "purchase"), customerField(order)) +// +func Noop() Field { + return Field{ + fieldType: noopType, + } +} + +// Encoder allows access to the contents of a Field (via a call to +// Field.Marshal). +// +// Tracer implementations typically provide an implementation of Encoder; +// OpenTracing callers typically do not need to concern themselves with it. +type Encoder interface { + EmitString(key, value string) + EmitBool(key string, value bool) + EmitInt(key string, value int) + EmitInt32(key string, value int32) + EmitInt64(key string, value int64) + EmitUint32(key string, value uint32) + EmitUint64(key string, value uint64) + EmitFloat32(key string, value float32) + EmitFloat64(key string, value float64) + EmitObject(key string, value interface{}) + EmitLazyLogger(value LazyLogger) +} + +// Marshal passes a Field instance through to the appropriate +// field-type-specific method of an Encoder. +func (lf Field) Marshal(visitor Encoder) { + switch lf.fieldType { + case stringType: + visitor.EmitString(lf.key, lf.stringVal) + case boolType: + visitor.EmitBool(lf.key, lf.numericVal != 0) + case intType: + visitor.EmitInt(lf.key, int(lf.numericVal)) + case int32Type: + visitor.EmitInt32(lf.key, int32(lf.numericVal)) + case int64Type: + visitor.EmitInt64(lf.key, int64(lf.numericVal)) + case uint32Type: + visitor.EmitUint32(lf.key, uint32(lf.numericVal)) + case uint64Type: + visitor.EmitUint64(lf.key, uint64(lf.numericVal)) + case float32Type: + visitor.EmitFloat32(lf.key, math.Float32frombits(uint32(lf.numericVal))) + case float64Type: + visitor.EmitFloat64(lf.key, math.Float64frombits(uint64(lf.numericVal))) + case errorType: + if err, ok := lf.interfaceVal.(error); ok { + visitor.EmitString(lf.key, err.Error()) + } else { + visitor.EmitString(lf.key, "") + } + case objectType: + visitor.EmitObject(lf.key, lf.interfaceVal) + case lazyLoggerType: + visitor.EmitLazyLogger(lf.interfaceVal.(LazyLogger)) + case noopType: + // intentionally left blank + } +} + +// Key returns the field's key. +func (lf Field) Key() string { + return lf.key +} + +// Value returns the field's value as interface{}. +func (lf Field) Value() interface{} { + switch lf.fieldType { + case stringType: + return lf.stringVal + case boolType: + return lf.numericVal != 0 + case intType: + return int(lf.numericVal) + case int32Type: + return int32(lf.numericVal) + case int64Type: + return int64(lf.numericVal) + case uint32Type: + return uint32(lf.numericVal) + case uint64Type: + return uint64(lf.numericVal) + case float32Type: + return math.Float32frombits(uint32(lf.numericVal)) + case float64Type: + return math.Float64frombits(uint64(lf.numericVal)) + case errorType, objectType, lazyLoggerType: + return lf.interfaceVal + case noopType: + return nil + default: + return nil + } +} + +// String returns a string representation of the key and value. +func (lf Field) String() string { + return fmt.Sprint(lf.key, ":", lf.Value()) +} diff --git a/vendor/github.com/opentracing/opentracing-go/log/util.go b/vendor/github.com/opentracing/opentracing-go/log/util.go new file mode 100644 index 00000000..3832feb5 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/log/util.go @@ -0,0 +1,54 @@ +package log + +import "fmt" + +// InterleavedKVToFields converts keyValues a la Span.LogKV() to a Field slice +// a la Span.LogFields(). +func InterleavedKVToFields(keyValues ...interface{}) ([]Field, error) { + if len(keyValues)%2 != 0 { + return nil, fmt.Errorf("non-even keyValues len: %d", len(keyValues)) + } + fields := make([]Field, len(keyValues)/2) + for i := 0; i*2 < len(keyValues); i++ { + key, ok := keyValues[i*2].(string) + if !ok { + return nil, fmt.Errorf( + "non-string key (pair #%d): %T", + i, keyValues[i*2]) + } + switch typedVal := keyValues[i*2+1].(type) { + case bool: + fields[i] = Bool(key, typedVal) + case string: + fields[i] = String(key, typedVal) + case int: + fields[i] = Int(key, typedVal) + case int8: + fields[i] = Int32(key, int32(typedVal)) + case int16: + fields[i] = Int32(key, int32(typedVal)) + case int32: + fields[i] = Int32(key, typedVal) + case int64: + fields[i] = Int64(key, typedVal) + case uint: + fields[i] = Uint64(key, uint64(typedVal)) + case uint64: + fields[i] = Uint64(key, typedVal) + case uint8: + fields[i] = Uint32(key, uint32(typedVal)) + case uint16: + fields[i] = Uint32(key, uint32(typedVal)) + case uint32: + fields[i] = Uint32(key, typedVal) + case float32: + fields[i] = Float32(key, typedVal) + case float64: + fields[i] = Float64(key, typedVal) + default: + // When in doubt, coerce to a string + fields[i] = String(key, fmt.Sprint(typedVal)) + } + } + return fields, nil +} diff --git a/vendor/github.com/opentracing/opentracing-go/noop.go b/vendor/github.com/opentracing/opentracing-go/noop.go new file mode 100644 index 00000000..0d32f692 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/noop.go @@ -0,0 +1,64 @@ +package opentracing + +import "github.com/opentracing/opentracing-go/log" + +// A NoopTracer is a trivial, minimum overhead implementation of Tracer +// for which all operations are no-ops. +// +// The primary use of this implementation is in libraries, such as RPC +// frameworks, that make tracing an optional feature controlled by the +// end user. A no-op implementation allows said libraries to use it +// as the default Tracer and to write instrumentation that does +// not need to keep checking if the tracer instance is nil. +// +// For the same reason, the NoopTracer is the default "global" tracer +// (see GlobalTracer and SetGlobalTracer functions). +// +// WARNING: NoopTracer does not support baggage propagation. +type NoopTracer struct{} + +type noopSpan struct{} +type noopSpanContext struct{} + +var ( + defaultNoopSpanContext = noopSpanContext{} + defaultNoopSpan = noopSpan{} + defaultNoopTracer = NoopTracer{} +) + +const ( + emptyString = "" +) + +// noopSpanContext: +func (n noopSpanContext) ForeachBaggageItem(handler func(k, v string) bool) {} + +// noopSpan: +func (n noopSpan) Context() SpanContext { return defaultNoopSpanContext } +func (n noopSpan) SetBaggageItem(key, val string) Span { return defaultNoopSpan } +func (n noopSpan) BaggageItem(key string) string { return emptyString } +func (n noopSpan) SetTag(key string, value interface{}) Span { return n } +func (n noopSpan) LogFields(fields ...log.Field) {} +func (n noopSpan) LogKV(keyVals ...interface{}) {} +func (n noopSpan) Finish() {} +func (n noopSpan) FinishWithOptions(opts FinishOptions) {} +func (n noopSpan) SetOperationName(operationName string) Span { return n } +func (n noopSpan) Tracer() Tracer { return defaultNoopTracer } +func (n noopSpan) LogEvent(event string) {} +func (n noopSpan) LogEventWithPayload(event string, payload interface{}) {} +func (n noopSpan) Log(data LogData) {} + +// StartSpan belongs to the Tracer interface. +func (n NoopTracer) StartSpan(operationName string, opts ...StartSpanOption) Span { + return defaultNoopSpan +} + +// Inject belongs to the Tracer interface. +func (n NoopTracer) Inject(sp SpanContext, format interface{}, carrier interface{}) error { + return nil +} + +// Extract belongs to the Tracer interface. +func (n NoopTracer) Extract(format interface{}, carrier interface{}) (SpanContext, error) { + return nil, ErrSpanContextNotFound +} diff --git a/vendor/github.com/opentracing/opentracing-go/propagation.go b/vendor/github.com/opentracing/opentracing-go/propagation.go new file mode 100644 index 00000000..b0c275eb --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/propagation.go @@ -0,0 +1,176 @@ +package opentracing + +import ( + "errors" + "net/http" +) + +/////////////////////////////////////////////////////////////////////////////// +// CORE PROPAGATION INTERFACES: +/////////////////////////////////////////////////////////////////////////////// + +var ( + // ErrUnsupportedFormat occurs when the `format` passed to Tracer.Inject() or + // Tracer.Extract() is not recognized by the Tracer implementation. + ErrUnsupportedFormat = errors.New("opentracing: Unknown or unsupported Inject/Extract format") + + // ErrSpanContextNotFound occurs when the `carrier` passed to + // Tracer.Extract() is valid and uncorrupted but has insufficient + // information to extract a SpanContext. + ErrSpanContextNotFound = errors.New("opentracing: SpanContext not found in Extract carrier") + + // ErrInvalidSpanContext errors occur when Tracer.Inject() is asked to + // operate on a SpanContext which it is not prepared to handle (for + // example, since it was created by a different tracer implementation). + ErrInvalidSpanContext = errors.New("opentracing: SpanContext type incompatible with tracer") + + // ErrInvalidCarrier errors occur when Tracer.Inject() or Tracer.Extract() + // implementations expect a different type of `carrier` than they are + // given. + ErrInvalidCarrier = errors.New("opentracing: Invalid Inject/Extract carrier") + + // ErrSpanContextCorrupted occurs when the `carrier` passed to + // Tracer.Extract() is of the expected type but is corrupted. + ErrSpanContextCorrupted = errors.New("opentracing: SpanContext data corrupted in Extract carrier") +) + +/////////////////////////////////////////////////////////////////////////////// +// BUILTIN PROPAGATION FORMATS: +/////////////////////////////////////////////////////////////////////////////// + +// BuiltinFormat is used to demarcate the values within package `opentracing` +// that are intended for use with the Tracer.Inject() and Tracer.Extract() +// methods. +type BuiltinFormat byte + +const ( + // Binary represents SpanContexts as opaque binary data. + // + // For Tracer.Inject(): the carrier must be an `io.Writer`. + // + // For Tracer.Extract(): the carrier must be an `io.Reader`. + Binary BuiltinFormat = iota + + // TextMap represents SpanContexts as key:value string pairs. + // + // Unlike HTTPHeaders, the TextMap format does not restrict the key or + // value character sets in any way. + // + // For Tracer.Inject(): the carrier must be a `TextMapWriter`. + // + // For Tracer.Extract(): the carrier must be a `TextMapReader`. + TextMap + + // HTTPHeaders represents SpanContexts as HTTP header string pairs. + // + // Unlike TextMap, the HTTPHeaders format requires that the keys and values + // be valid as HTTP headers as-is (i.e., character casing may be unstable + // and special characters are disallowed in keys, values should be + // URL-escaped, etc). + // + // For Tracer.Inject(): the carrier must be a `TextMapWriter`. + // + // For Tracer.Extract(): the carrier must be a `TextMapReader`. + // + // See HTTPHeadersCarrier for an implementation of both TextMapWriter + // and TextMapReader that defers to an http.Header instance for storage. + // For example, Inject(): + // + // carrier := opentracing.HTTPHeadersCarrier(httpReq.Header) + // err := span.Tracer().Inject( + // span.Context(), opentracing.HTTPHeaders, carrier) + // + // Or Extract(): + // + // carrier := opentracing.HTTPHeadersCarrier(httpReq.Header) + // clientContext, err := tracer.Extract( + // opentracing.HTTPHeaders, carrier) + // + HTTPHeaders +) + +// TextMapWriter is the Inject() carrier for the TextMap builtin format. With +// it, the caller can encode a SpanContext for propagation as entries in a map +// of unicode strings. +type TextMapWriter interface { + // Set a key:value pair to the carrier. Multiple calls to Set() for the + // same key leads to undefined behavior. + // + // NOTE: The backing store for the TextMapWriter may contain data unrelated + // to SpanContext. As such, Inject() and Extract() implementations that + // call the TextMapWriter and TextMapReader interfaces must agree on a + // prefix or other convention to distinguish their own key:value pairs. + Set(key, val string) +} + +// TextMapReader is the Extract() carrier for the TextMap builtin format. With it, +// the caller can decode a propagated SpanContext as entries in a map of +// unicode strings. +type TextMapReader interface { + // ForeachKey returns TextMap contents via repeated calls to the `handler` + // function. If any call to `handler` returns a non-nil error, ForeachKey + // terminates and returns that error. + // + // NOTE: The backing store for the TextMapReader may contain data unrelated + // to SpanContext. As such, Inject() and Extract() implementations that + // call the TextMapWriter and TextMapReader interfaces must agree on a + // prefix or other convention to distinguish their own key:value pairs. + // + // The "foreach" callback pattern reduces unnecessary copying in some cases + // and also allows implementations to hold locks while the map is read. + ForeachKey(handler func(key, val string) error) error +} + +// TextMapCarrier allows the use of regular map[string]string +// as both TextMapWriter and TextMapReader. +type TextMapCarrier map[string]string + +// ForeachKey conforms to the TextMapReader interface. +func (c TextMapCarrier) ForeachKey(handler func(key, val string) error) error { + for k, v := range c { + if err := handler(k, v); err != nil { + return err + } + } + return nil +} + +// Set implements Set() of opentracing.TextMapWriter +func (c TextMapCarrier) Set(key, val string) { + c[key] = val +} + +// HTTPHeadersCarrier satisfies both TextMapWriter and TextMapReader. +// +// Example usage for server side: +// +// carrier := opentracing.HTTPHeadersCarrier(httpReq.Header) +// clientContext, err := tracer.Extract(opentracing.HTTPHeaders, carrier) +// +// Example usage for client side: +// +// carrier := opentracing.HTTPHeadersCarrier(httpReq.Header) +// err := tracer.Inject( +// span.Context(), +// opentracing.HTTPHeaders, +// carrier) +// +type HTTPHeadersCarrier http.Header + +// Set conforms to the TextMapWriter interface. +func (c HTTPHeadersCarrier) Set(key, val string) { + h := http.Header(c) + h.Set(key, val) +} + +// ForeachKey conforms to the TextMapReader interface. +func (c HTTPHeadersCarrier) ForeachKey(handler func(key, val string) error) error { + for k, vals := range c { + for _, v := range vals { + if err := handler(k, v); err != nil { + return err + } + } + } + return nil +} diff --git a/vendor/github.com/opentracing/opentracing-go/span.go b/vendor/github.com/opentracing/opentracing-go/span.go new file mode 100644 index 00000000..0d3fb534 --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/span.go @@ -0,0 +1,189 @@ +package opentracing + +import ( + "time" + + "github.com/opentracing/opentracing-go/log" +) + +// SpanContext represents Span state that must propagate to descendant Spans and across process +// boundaries (e.g., a tuple). +type SpanContext interface { + // ForeachBaggageItem grants access to all baggage items stored in the + // SpanContext. + // The handler function will be called for each baggage key/value pair. + // The ordering of items is not guaranteed. + // + // The bool return value indicates if the handler wants to continue iterating + // through the rest of the baggage items; for example if the handler is trying to + // find some baggage item by pattern matching the name, it can return false + // as soon as the item is found to stop further iterations. + ForeachBaggageItem(handler func(k, v string) bool) +} + +// Span represents an active, un-finished span in the OpenTracing system. +// +// Spans are created by the Tracer interface. +type Span interface { + // Sets the end timestamp and finalizes Span state. + // + // With the exception of calls to Context() (which are always allowed), + // Finish() must be the last call made to any span instance, and to do + // otherwise leads to undefined behavior. + Finish() + // FinishWithOptions is like Finish() but with explicit control over + // timestamps and log data. + FinishWithOptions(opts FinishOptions) + + // Context() yields the SpanContext for this Span. Note that the return + // value of Context() is still valid after a call to Span.Finish(), as is + // a call to Span.Context() after a call to Span.Finish(). + Context() SpanContext + + // Sets or changes the operation name. + // + // Returns a reference to this Span for chaining. + SetOperationName(operationName string) Span + + // Adds a tag to the span. + // + // If there is a pre-existing tag set for `key`, it is overwritten. + // + // Tag values can be numeric types, strings, or bools. The behavior of + // other tag value types is undefined at the OpenTracing level. If a + // tracing system does not know how to handle a particular value type, it + // may ignore the tag, but shall not panic. + // + // Returns a reference to this Span for chaining. + SetTag(key string, value interface{}) Span + + // LogFields is an efficient and type-checked way to record key:value + // logging data about a Span, though the programming interface is a little + // more verbose than LogKV(). Here's an example: + // + // span.LogFields( + // log.String("event", "soft error"), + // log.String("type", "cache timeout"), + // log.Int("waited.millis", 1500)) + // + // Also see Span.FinishWithOptions() and FinishOptions.BulkLogData. + LogFields(fields ...log.Field) + + // LogKV is a concise, readable way to record key:value logging data about + // a Span, though unfortunately this also makes it less efficient and less + // type-safe than LogFields(). Here's an example: + // + // span.LogKV( + // "event", "soft error", + // "type", "cache timeout", + // "waited.millis", 1500) + // + // For LogKV (as opposed to LogFields()), the parameters must appear as + // key-value pairs, like + // + // span.LogKV(key1, val1, key2, val2, key3, val3, ...) + // + // The keys must all be strings. The values may be strings, numeric types, + // bools, Go error instances, or arbitrary structs. + // + // (Note to implementors: consider the log.InterleavedKVToFields() helper) + LogKV(alternatingKeyValues ...interface{}) + + // SetBaggageItem sets a key:value pair on this Span and its SpanContext + // that also propagates to descendants of this Span. + // + // SetBaggageItem() enables powerful functionality given a full-stack + // opentracing integration (e.g., arbitrary application data from a mobile + // app can make it, transparently, all the way into the depths of a storage + // system), and with it some powerful costs: use this feature with care. + // + // IMPORTANT NOTE #1: SetBaggageItem() will only propagate baggage items to + // *future* causal descendants of the associated Span. + // + // IMPORTANT NOTE #2: Use this thoughtfully and with care. Every key and + // value is copied into every local *and remote* child of the associated + // Span, and that can add up to a lot of network and cpu overhead. + // + // Returns a reference to this Span for chaining. + SetBaggageItem(restrictedKey, value string) Span + + // Gets the value for a baggage item given its key. Returns the empty string + // if the value isn't found in this Span. + BaggageItem(restrictedKey string) string + + // Provides access to the Tracer that created this Span. + Tracer() Tracer + + // Deprecated: use LogFields or LogKV + LogEvent(event string) + // Deprecated: use LogFields or LogKV + LogEventWithPayload(event string, payload interface{}) + // Deprecated: use LogFields or LogKV + Log(data LogData) +} + +// LogRecord is data associated with a single Span log. Every LogRecord +// instance must specify at least one Field. +type LogRecord struct { + Timestamp time.Time + Fields []log.Field +} + +// FinishOptions allows Span.FinishWithOptions callers to override the finish +// timestamp and provide log data via a bulk interface. +type FinishOptions struct { + // FinishTime overrides the Span's finish time, or implicitly becomes + // time.Now() if FinishTime.IsZero(). + // + // FinishTime must resolve to a timestamp that's >= the Span's StartTime + // (per StartSpanOptions). + FinishTime time.Time + + // LogRecords allows the caller to specify the contents of many LogFields() + // calls with a single slice. May be nil. + // + // None of the LogRecord.Timestamp values may be .IsZero() (i.e., they must + // be set explicitly). Also, they must be >= the Span's start timestamp and + // <= the FinishTime (or time.Now() if FinishTime.IsZero()). Otherwise the + // behavior of FinishWithOptions() is undefined. + // + // If specified, the caller hands off ownership of LogRecords at + // FinishWithOptions() invocation time. + // + // If specified, the (deprecated) BulkLogData must be nil or empty. + LogRecords []LogRecord + + // BulkLogData is DEPRECATED. + BulkLogData []LogData +} + +// LogData is DEPRECATED +type LogData struct { + Timestamp time.Time + Event string + Payload interface{} +} + +// ToLogRecord converts a deprecated LogData to a non-deprecated LogRecord +func (ld *LogData) ToLogRecord() LogRecord { + var literalTimestamp time.Time + if ld.Timestamp.IsZero() { + literalTimestamp = time.Now() + } else { + literalTimestamp = ld.Timestamp + } + rval := LogRecord{ + Timestamp: literalTimestamp, + } + if ld.Payload == nil { + rval.Fields = []log.Field{ + log.String("event", ld.Event), + } + } else { + rval.Fields = []log.Field{ + log.String("event", ld.Event), + log.Object("payload", ld.Payload), + } + } + return rval +} diff --git a/vendor/github.com/opentracing/opentracing-go/tracer.go b/vendor/github.com/opentracing/opentracing-go/tracer.go new file mode 100644 index 00000000..715f0ced --- /dev/null +++ b/vendor/github.com/opentracing/opentracing-go/tracer.go @@ -0,0 +1,304 @@ +package opentracing + +import "time" + +// Tracer is a simple, thin interface for Span creation and SpanContext +// propagation. +type Tracer interface { + + // Create, start, and return a new Span with the given `operationName` and + // incorporate the given StartSpanOption `opts`. (Note that `opts` borrows + // from the "functional options" pattern, per + // http://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis) + // + // A Span with no SpanReference options (e.g., opentracing.ChildOf() or + // opentracing.FollowsFrom()) becomes the root of its own trace. + // + // Examples: + // + // var tracer opentracing.Tracer = ... + // + // // The root-span case: + // sp := tracer.StartSpan("GetFeed") + // + // // The vanilla child span case: + // sp := tracer.StartSpan( + // "GetFeed", + // opentracing.ChildOf(parentSpan.Context())) + // + // // All the bells and whistles: + // sp := tracer.StartSpan( + // "GetFeed", + // opentracing.ChildOf(parentSpan.Context()), + // opentracing.Tag{"user_agent", loggedReq.UserAgent}, + // opentracing.StartTime(loggedReq.Timestamp), + // ) + // + StartSpan(operationName string, opts ...StartSpanOption) Span + + // Inject() takes the `sm` SpanContext instance and injects it for + // propagation within `carrier`. The actual type of `carrier` depends on + // the value of `format`. + // + // OpenTracing defines a common set of `format` values (see BuiltinFormat), + // and each has an expected carrier type. + // + // Other packages may declare their own `format` values, much like the keys + // used by `context.Context` (see https://godoc.org/context#WithValue). + // + // Example usage (sans error handling): + // + // carrier := opentracing.HTTPHeadersCarrier(httpReq.Header) + // err := tracer.Inject( + // span.Context(), + // opentracing.HTTPHeaders, + // carrier) + // + // NOTE: All opentracing.Tracer implementations MUST support all + // BuiltinFormats. + // + // Implementations may return opentracing.ErrUnsupportedFormat if `format` + // is not supported by (or not known by) the implementation. + // + // Implementations may return opentracing.ErrInvalidCarrier or any other + // implementation-specific error if the format is supported but injection + // fails anyway. + // + // See Tracer.Extract(). + Inject(sm SpanContext, format interface{}, carrier interface{}) error + + // Extract() returns a SpanContext instance given `format` and `carrier`. + // + // OpenTracing defines a common set of `format` values (see BuiltinFormat), + // and each has an expected carrier type. + // + // Other packages may declare their own `format` values, much like the keys + // used by `context.Context` (see + // https://godoc.org/golang.org/x/net/context#WithValue). + // + // Example usage (with StartSpan): + // + // + // carrier := opentracing.HTTPHeadersCarrier(httpReq.Header) + // clientContext, err := tracer.Extract(opentracing.HTTPHeaders, carrier) + // + // // ... assuming the ultimate goal here is to resume the trace with a + // // server-side Span: + // var serverSpan opentracing.Span + // if err == nil { + // span = tracer.StartSpan( + // rpcMethodName, ext.RPCServerOption(clientContext)) + // } else { + // span = tracer.StartSpan(rpcMethodName) + // } + // + // + // NOTE: All opentracing.Tracer implementations MUST support all + // BuiltinFormats. + // + // Return values: + // - A successful Extract returns a SpanContext instance and a nil error + // - If there was simply no SpanContext to extract in `carrier`, Extract() + // returns (nil, opentracing.ErrSpanContextNotFound) + // - If `format` is unsupported or unrecognized, Extract() returns (nil, + // opentracing.ErrUnsupportedFormat) + // - If there are more fundamental problems with the `carrier` object, + // Extract() may return opentracing.ErrInvalidCarrier, + // opentracing.ErrSpanContextCorrupted, or implementation-specific + // errors. + // + // See Tracer.Inject(). + Extract(format interface{}, carrier interface{}) (SpanContext, error) +} + +// StartSpanOptions allows Tracer.StartSpan() callers and implementors a +// mechanism to override the start timestamp, specify Span References, and make +// a single Tag or multiple Tags available at Span start time. +// +// StartSpan() callers should look at the StartSpanOption interface and +// implementations available in this package. +// +// Tracer implementations can convert a slice of `StartSpanOption` instances +// into a `StartSpanOptions` struct like so: +// +// func StartSpan(opName string, opts ...opentracing.StartSpanOption) { +// sso := opentracing.StartSpanOptions{} +// for _, o := range opts { +// o.Apply(&sso) +// } +// ... +// } +// +type StartSpanOptions struct { + // Zero or more causal references to other Spans (via their SpanContext). + // If empty, start a "root" Span (i.e., start a new trace). + References []SpanReference + + // StartTime overrides the Span's start time, or implicitly becomes + // time.Now() if StartTime.IsZero(). + StartTime time.Time + + // Tags may have zero or more entries; the restrictions on map values are + // identical to those for Span.SetTag(). May be nil. + // + // If specified, the caller hands off ownership of Tags at + // StartSpan() invocation time. + Tags map[string]interface{} +} + +// StartSpanOption instances (zero or more) may be passed to Tracer.StartSpan. +// +// StartSpanOption borrows from the "functional options" pattern, per +// http://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis +type StartSpanOption interface { + Apply(*StartSpanOptions) +} + +// SpanReferenceType is an enum type describing different categories of +// relationships between two Spans. If Span-2 refers to Span-1, the +// SpanReferenceType describes Span-1 from Span-2's perspective. For example, +// ChildOfRef means that Span-1 created Span-2. +// +// NOTE: Span-1 and Span-2 do *not* necessarily depend on each other for +// completion; e.g., Span-2 may be part of a background job enqueued by Span-1, +// or Span-2 may be sitting in a distributed queue behind Span-1. +type SpanReferenceType int + +const ( + // ChildOfRef refers to a parent Span that caused *and* somehow depends + // upon the new child Span. Often (but not always), the parent Span cannot + // finish until the child Span does. + // + // An timing diagram for a ChildOfRef that's blocked on the new Span: + // + // [-Parent Span---------] + // [-Child Span----] + // + // See http://opentracing.io/spec/ + // + // See opentracing.ChildOf() + ChildOfRef SpanReferenceType = iota + + // FollowsFromRef refers to a parent Span that does not depend in any way + // on the result of the new child Span. For instance, one might use + // FollowsFromRefs to describe pipeline stages separated by queues, + // or a fire-and-forget cache insert at the tail end of a web request. + // + // A FollowsFromRef Span is part of the same logical trace as the new Span: + // i.e., the new Span is somehow caused by the work of its FollowsFromRef. + // + // All of the following could be valid timing diagrams for children that + // "FollowFrom" a parent. + // + // [-Parent Span-] [-Child Span-] + // + // + // [-Parent Span--] + // [-Child Span-] + // + // + // [-Parent Span-] + // [-Child Span-] + // + // See http://opentracing.io/spec/ + // + // See opentracing.FollowsFrom() + FollowsFromRef +) + +// SpanReference is a StartSpanOption that pairs a SpanReferenceType and a +// referenced SpanContext. See the SpanReferenceType documentation for +// supported relationships. If SpanReference is created with +// ReferencedContext==nil, it has no effect. Thus it allows for a more concise +// syntax for starting spans: +// +// sc, _ := tracer.Extract(someFormat, someCarrier) +// span := tracer.StartSpan("operation", opentracing.ChildOf(sc)) +// +// The `ChildOf(sc)` option above will not panic if sc == nil, it will just +// not add the parent span reference to the options. +type SpanReference struct { + Type SpanReferenceType + ReferencedContext SpanContext +} + +// Apply satisfies the StartSpanOption interface. +func (r SpanReference) Apply(o *StartSpanOptions) { + if r.ReferencedContext != nil { + o.References = append(o.References, r) + } +} + +// ChildOf returns a StartSpanOption pointing to a dependent parent span. +// If sc == nil, the option has no effect. +// +// See ChildOfRef, SpanReference +func ChildOf(sc SpanContext) SpanReference { + return SpanReference{ + Type: ChildOfRef, + ReferencedContext: sc, + } +} + +// FollowsFrom returns a StartSpanOption pointing to a parent Span that caused +// the child Span but does not directly depend on its result in any way. +// If sc == nil, the option has no effect. +// +// See FollowsFromRef, SpanReference +func FollowsFrom(sc SpanContext) SpanReference { + return SpanReference{ + Type: FollowsFromRef, + ReferencedContext: sc, + } +} + +// StartTime is a StartSpanOption that sets an explicit start timestamp for the +// new Span. +type StartTime time.Time + +// Apply satisfies the StartSpanOption interface. +func (t StartTime) Apply(o *StartSpanOptions) { + o.StartTime = time.Time(t) +} + +// Tags are a generic map from an arbitrary string key to an opaque value type. +// The underlying tracing system is responsible for interpreting and +// serializing the values. +type Tags map[string]interface{} + +// Apply satisfies the StartSpanOption interface. +func (t Tags) Apply(o *StartSpanOptions) { + if o.Tags == nil { + o.Tags = make(map[string]interface{}) + } + for k, v := range t { + o.Tags[k] = v + } +} + +// Tag may be passed as a StartSpanOption to add a tag to new spans, +// or its Set method may be used to apply the tag to an existing Span, +// for example: +// +// tracer.StartSpan("opName", Tag{"Key", value}) +// +// or +// +// Tag{"key", value}.Set(span) +type Tag struct { + Key string + Value interface{} +} + +// Apply satisfies the StartSpanOption interface. +func (t Tag) Apply(o *StartSpanOptions) { + if o.Tags == nil { + o.Tags = make(map[string]interface{}) + } + o.Tags[t.Key] = t.Value +} + +// Set applies the tag to an existing Span. +func (t Tag) Set(s Span) { + s.SetTag(t.Key, t.Value) +} diff --git a/vendor/github.com/polydawn/refmt/.gitignore b/vendor/github.com/polydawn/refmt/.gitignore new file mode 100644 index 00000000..9010fa35 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/.gitignore @@ -0,0 +1,2 @@ +.gopath/pkg +.gopath/tmp diff --git a/vendor/github.com/polydawn/refmt/.gitmodules b/vendor/github.com/polydawn/refmt/.gitmodules new file mode 100644 index 00000000..1106688a --- /dev/null +++ b/vendor/github.com/polydawn/refmt/.gitmodules @@ -0,0 +1,18 @@ +[submodule ".gopath/src/github.com/smartystreets/goconvey"] + path = .gopath/src/github.com/smartystreets/goconvey + url = https://github.com/smartystreets/goconvey +[submodule ".gopath/src/github.com/smartystreets/assertions"] + path = .gopath/src/github.com/smartystreets/assertions + url = https://github.com/smartystreets/assertions +[submodule ".gopath/src/github.com/jtolds/gls"] + path = .gopath/src/github.com/jtolds/gls + url = https://github.com/jtolds/gls +[submodule ".gopath/src/github.com/urfave/cli"] + path = .gopath/src/github.com/urfave/cli + url = https://github.com/urfave/cli/ +[submodule ".gopath/src/github.com/go-yaml/yaml"] + path = .gopath/src/github.com/go-yaml/yaml + url = https://github.com/go-yaml/yaml/ +[submodule ".gopath/src/github.com/warpfork/go-wish"] + path = .gopath/src/github.com/warpfork/go-wish + url = https://github.com/warpfork/go-wish diff --git a/vendor/github.com/polydawn/refmt/.gopath/self b/vendor/github.com/polydawn/refmt/.gopath/self new file mode 120000 index 00000000..1ecb86ef --- /dev/null +++ b/vendor/github.com/polydawn/refmt/.gopath/self @@ -0,0 +1 @@ +src/github.com/polydawn/refmt \ No newline at end of file diff --git a/vendor/github.com/polydawn/refmt/.gopath/src/github.com/polydawn/refmt b/vendor/github.com/polydawn/refmt/.gopath/src/github.com/polydawn/refmt new file mode 120000 index 00000000..11a54ed3 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/.gopath/src/github.com/polydawn/refmt @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/vendor/github.com/polydawn/refmt/.travis.yml b/vendor/github.com/polydawn/refmt/.travis.yml new file mode 100644 index 00000000..2dcf3f2f --- /dev/null +++ b/vendor/github.com/polydawn/refmt/.travis.yml @@ -0,0 +1,15 @@ +language: go + +go: + - "1.10" + - 1.9 + +# I know I like my dependencies specified by custom meta tags in HTML! +# Oh wait, no. No I don't. +install: true + +script: + - ./goad + +notifications: + email: false diff --git a/vendor/github.com/polydawn/refmt/LICENSE b/vendor/github.com/polydawn/refmt/LICENSE new file mode 100644 index 00000000..9f30daa0 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Eric Myhre + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/polydawn/refmt/README.md b/vendor/github.com/polydawn/refmt/README.md new file mode 100644 index 00000000..6441722f --- /dev/null +++ b/vendor/github.com/polydawn/refmt/README.md @@ -0,0 +1,78 @@ +refmt [![GoDoc](https://godoc.org/github.com/polydawn/refmt?status.svg)](https://godoc.org/github.com/polydawn/refmt) [![Build status](https://img.shields.io/travis/polydawn/refmt/master.svg?style=flat-square)](https://travis-ci.org/polydawn/refmt) +===== + + +`refmt` is a serialization and object-mapping library. + + + +Why? +---- + +Mostly because I have some types which I need to encode in two different ways, and that needs to not suck, +and that totally sucks with most serialization libraries I've used. +Also, I need to serialize things in different formats, e.g. sometimes JSON and other times CBOR, +and that needs to work without me wrestling two different object-serial libraries and configs. + +More broadly, I want a single library that can handle my serialization -- with the possibility of different setups on the same types -- and if it can do general object traversals, e.g. a deepcopy, that also seems like... just something that should be natural. + +So it seems like there should be some way to define token streams... and a way to define converting objects to and from token streams... and a way to covert token streams to and from serialized bytes... and all of these should be pretty separate! + +Thusly was this library thrust into the world: +`refmt/tok` to define the token stream, +and `refmt/obj` to define how to map objects to tokens and back, +and `refmt/json` and `refmt/cbor` as ways to exchange tokens with serialized formats. + +All of these formats can mix-n-match freely, because they communicate values as the standard token stream. Voilà: + +- pair `obj.Marshaller` with `json.Encoder` to get a json serializer. +- pair `cbor.Decoder` with `obj.Unmarshaller` to get a cbor deserializer. +- pair `cbor.Decoder` with `json.Encoder` to get a cbor->json streaming transcoder! +- pair `obj.Marshaller` with `obj.Unmarshaller` to get a deep-copy system! (Try it with two different types: marshalling a struct and unmarshalling into a freeform map!) + +Along the way, we've added a powerful system for defining **how** exactly the `refmt/obj` tools should treat your structures: +the Atlas system (defined in the `refmt/obj/atlas` package). +Atlases can be used to customize how struct fields are handled, how map keys are sorted, and even +define conversions between completely different *kinds* of objects: serialize arrays as strings, or turn stringy enums into bitfields, no problem. +By default, `refmt` will generate atlases automatically for your structs and types, just like the standard library json marshallers do; +if you want more control, atlases give you the power. + +An Atlas can be given to each `obj.Marshaller` and `obj.Unmarshaller` when it is constructed. +This allows great variation in how you wish to handle types -- more than one mapping can be defined for the same concrete type! +(This is a killer feature if you need to support multiple versions of an API, for example: +you can define 'v1' and 'v2' types, each with their own structs to unmarshal user requests into; +then in the backend implement another Marshal/Unmarshal with different atlases which translates the 'v1' requests to 'v2' types, +and you only have to implement business logic against the latest types!) + +Atlases are significantly more convenient to use than defining custom `JSONMarshal()` methods. +Atlases attach to the type they concern. +This means you can use atlases to define custom serialization even for types in packages you can't modify! +Atlases also behave better in complex situations: for example, +if you have a `TypeFoo` struct and you wish to serialize it as a string, +*you don't have to write a custom marshaller for every type that **contains** a `TypeFoo` field*. +Leaking details of custom serialization into the types that contain the interesting objects is +a common pitfall when getting into advanced usage of other marshalling libraries; `refmt` has no such issue. + +## tl;dr: + +- you can swap out atlases for custom serialization on any type; +- and that works for serialization modes even deep in other structures; +- and even on types you don't own!! +- at the same time, you can swap out a cbor encoder for a json encoder, or anything else you want; +- and the mapper part *doesn't care* -- no complex interactions between the layers. + +Come to `refmt`. It's nicer here. + + +Where do I start? +----------------- + +**If you're already using `json.Marshal`:** switch to `json.Marshal` (yes, I'm not kidding; just switch your imports!). + +**If you're already using `json.NewEncoder().Encode()`:** switch to `json.NewMarshaller().Marshal()`. + +**If you want to get more serial-flexible:** try using `refmt.Marshal(json.EncodeOptions{}, obj)`... then switch to `cbor.EncodeOptions{}` and see what happens! + +**If you want to use Atlas to get fancy:** go take a peek at the `example*.go` files in this repo! :) + +Happy hacking! diff --git a/vendor/github.com/polydawn/refmt/allochound b/vendor/github.com/polydawn/refmt/allochound new file mode 100755 index 00000000..304b6bd2 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/allochound @@ -0,0 +1,53 @@ +#!/bin/bash +set -euo pipefail + +### Normalize path -- all work should be relative to this script's location. +## Set up gopath -- also relative to this dir, so we work in isolation. +cd "$( dirname "${BASH_SOURCE[0]}" )" +export GOPATH="$PWD/.gopath/" + +funcs=() +funcs+=("Benchmark_ArrayFlatIntToJson_Refmt") +funcs+=("Benchmark_ArrayFlatIntToJson_Stdlib") +funcs+=("Benchmark_ArrayFlatStrToJson_Refmt") +funcs+=("Benchmark_ArrayFlatStrToJson_Stdlib") + +funcs+=("Benchmark_StructToJson_Refmt") +funcs+=("Benchmark_StructToJson_Stdlib") + +profPath=".gopath/tmp/prof/" ; mkdir -p "$profPath" +go test -i . +export GODEBUG=allocfreetrace=1 +while read -r -u3 -d' ' func; do + (go test \ + -run=XXX -bench=$func \ + -count=1 + ) 2> "$profPath/$func.allocfreetrace" | grep "^Benchmark_" +done 3< <(echo "${funcs[@]} ") +ls -lah "$profPath"/*.allocfreetrace + +## +## Recommendations for extracting knowledge: +## - grep for 'refmt' lines with context ~8 +## - you really want to get the 'tracealloc' lines in sight, because they list the object type being allocated in plain english +## - to find the beginning of a run, it's currently correct to grep for 'api.go', then find the start of pump.Run, +## then feed that line number back into a grep (where your first grep for refmt lines emits line numbers). +## - you'll see ~3 different line numbers from api.go; the least frequent is the start of Run. +## - grepping ", tok.Token)" is also valid, since we have succeeded at only allocating that once per Run +## (though actually it's a bit of a wonder to me that it doesn't stay on the stack). +## + +## +## More generally: want: +## - foreach tracealloc line: that line +## - accept the following '^goroutine' line +## - skip lines matching '^runtime.' and '^t' +## - maybe keep the '^runtime.' lines, because they tell you if 'newObject' vs 'makeSlice' +## - accept two lines -- this is the proximate cause, call and source file. +## - you can probably discard the rest +## + +## +## ALTERNATIVELY to all of this: +## just try '-gcflags -m' for things. Result is much shorter, much faster, much more to the point. +## diff --git a/vendor/github.com/polydawn/refmt/cbor/cborCommon.go b/vendor/github.com/polydawn/refmt/cbor/cborCommon.go new file mode 100644 index 00000000..ffc36b20 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborCommon.go @@ -0,0 +1,44 @@ +package cbor + +// "Major types" enum, as per https://tools.ietf.org/html/rfc7049#section-2.1 . +// +// These numbers are the bottom of the range for that major type when encoded; +// that is, ints can be between `cborMajorUint` (inclusive) and `cborMajorNegInt` (exclusive). +// Zero out the 0x1f bitrange of a byte to see which major type it is (those bits are +// used for packing either length info or other specific enumerated meanings). +const ( + cborMajorUint byte = 0x00 + cborMajorNegInt = 0x20 + cborMajorBytes = 0x40 + cborMajorString = 0x60 + cborMajorArray = 0x80 + cborMajorMap = 0xa0 + cborMajorTag = 0xc0 + cborMajorSimple = 0xe0 // Floating point, "simple" types like bool, etc, are above. +) + +// Enumeration of some values with single fixed-byte representations. +// All of these are in the "simple" space. +// See https://tools.ietf.org/html/rfc7049#section-2.3 for tables. +// The prefix indicating a float is also packed into the simple space. +const ( + cborSigilFalse byte = 0xf4 + cborSigilTrue = 0xf5 + cborSigilNil = 0xf6 + cborSigilUndefined = 0xf7 + cborSigilFloat16 = 0xf9 + cborSigilFloat32 = 0xfA + cborSigilFloat64 = 0xfB +) + +// The highest value in the range for bytes, text, arrays, and maps all indicate +// an "indefinite length" / "streaming" entry coming up. These have a different parse path. +// The special 'break' value from the "simple" space (all bits on) +// indicates termination of stream for all four kinds major types in this mode. +const ( + cborSigilIndefiniteBytes byte = 0x5f + cborSigilIndefiniteString = 0x7f + cborSigilIndefiniteArray = 0x9f + cborSigilIndefiniteMap = 0xbf + cborSigilBreak = 0xff +) diff --git a/vendor/github.com/polydawn/refmt/cbor/cborDecoder.go b/vendor/github.com/polydawn/refmt/cbor/cborDecoder.go new file mode 100644 index 00000000..e70b1a8d --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborDecoder.go @@ -0,0 +1,282 @@ +package cbor + +import ( + "fmt" + "io" + + "github.com/polydawn/refmt/shared" + . "github.com/polydawn/refmt/tok" +) + +type Decoder struct { + cfg DecodeOptions + r shared.SlickReader + + stack []decoderStep // When empty, and step returns done, all done. + step decoderStep // Shortcut to end of stack. + left []int // Statekeeping space for definite-len map and array. +} + +func NewDecoder(cfg DecodeOptions, r io.Reader) (d *Decoder) { + d = &Decoder{ + cfg: cfg, + r: shared.NewReader(r), + stack: make([]decoderStep, 0, 10), + left: make([]int, 0, 10), + } + d.step = d.step_acceptValue + return +} + +func (d *Decoder) Reset() { + d.stack = d.stack[0:0] + d.step = d.step_acceptValue + d.left = d.left[0:0] +} + +type decoderStep func(tokenSlot *Token) (done bool, err error) + +func (d *Decoder) Step(tokenSlot *Token) (done bool, err error) { + done, err = d.step(tokenSlot) + // If the step errored: out, entirely. + if err != nil { + return true, err + } + // If the step wasn't done, return same status. + if !done { + return false, nil + } + // If it WAS done, pop next, or if stack empty, we're entirely done. + nSteps := len(d.stack) - 1 + if nSteps <= 0 { + return true, nil // that's all folks + } + d.step = d.stack[nSteps] + d.stack = d.stack[0:nSteps] + return false, nil +} + +func (d *Decoder) pushPhase(newPhase decoderStep) { + d.stack = append(d.stack, d.step) + d.step = newPhase +} + +// The original step, where any value is accepted, and no terminators for composites are valid. +// ONLY used in the original step; all other steps handle leaf nodes internally. +func (d *Decoder) step_acceptValue(tokenSlot *Token) (done bool, err error) { + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + tokenSlot.Tagged = false + return d.stepHelper_acceptValue(majorByte, tokenSlot) +} + +// Step in midst of decoding an indefinite-length array. +func (d *Decoder) step_acceptArrValueOrBreak(tokenSlot *Token) (done bool, err error) { + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + tokenSlot.Tagged = false + switch majorByte { + case cborSigilBreak: + tokenSlot.Type = TArrClose + return true, nil + default: + _, err := d.stepHelper_acceptValue(majorByte, tokenSlot) + return false, err + } +} + +// Step in midst of decoding an indefinite-length map, key expected up next, or end. +func (d *Decoder) step_acceptMapIndefKey(tokenSlot *Token) (done bool, err error) { + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + tokenSlot.Tagged = false + switch majorByte { + case cborSigilBreak: + tokenSlot.Type = TMapClose + return true, nil + default: + d.step = d.step_acceptMapIndefValueOrBreak + _, err := d.stepHelper_acceptValue(majorByte, tokenSlot) // FIXME surely not *any* value? not composites, at least? + return false, err + } +} + +// Step in midst of decoding an indefinite-length map, value expected up next. +func (d *Decoder) step_acceptMapIndefValueOrBreak(tokenSlot *Token) (done bool, err error) { + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + tokenSlot.Tagged = false + switch majorByte { + case cborSigilBreak: + return true, fmt.Errorf("unexpected break; expected value in indefinite-length map") + default: + d.step = d.step_acceptMapIndefKey + _, err = d.stepHelper_acceptValue(majorByte, tokenSlot) + return false, err + } +} + +// Step in midst of decoding a definite-length array. +func (d *Decoder) step_acceptArrValue(tokenSlot *Token) (done bool, err error) { + // Yield close token, pop state, and return done flag if expecting no more entries. + ll := len(d.left) - 1 + if d.left[ll] == 0 { + d.left = d.left[0:ll] + tokenSlot.Type = TArrClose + return true, nil + } + d.left[ll]-- + // Read next value. + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + tokenSlot.Tagged = false + _, err = d.stepHelper_acceptValue(majorByte, tokenSlot) + return false, err +} + +// Step in midst of decoding an definite-length map, key expected up next. +func (d *Decoder) step_acceptMapKey(tokenSlot *Token) (done bool, err error) { + // Yield close token, pop state, and return done flag if expecting no more entries. + ll := len(d.left) - 1 + if d.left[ll] == 0 { + d.left = d.left[0:ll] + tokenSlot.Type = TMapClose + return true, nil + } + d.left[ll]-- + // Read next key. + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + d.step = d.step_acceptMapValue + tokenSlot.Tagged = false + _, err = d.stepHelper_acceptValue(majorByte, tokenSlot) // FIXME surely not *any* value? not composites, at least? + return false, err +} + +// Step in midst of decoding an definite-length map, value expected up next. +func (d *Decoder) step_acceptMapValue(tokenSlot *Token) (done bool, err error) { + // Read next value. + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + d.step = d.step_acceptMapKey + tokenSlot.Tagged = false + _, err = d.stepHelper_acceptValue(majorByte, tokenSlot) + return false, err +} + +func (d *Decoder) stepHelper_acceptValue(majorByte byte, tokenSlot *Token) (done bool, err error) { + switch majorByte { + case cborSigilNil: + tokenSlot.Type = TNull + return true, nil + case cborSigilUndefined: + if d.cfg.CoerceUndefToNull { + tokenSlot.Type = TNull + return true, nil + } + return true, fmt.Errorf("encountered cbor 'undefined' byte (%x) during decoding", cborSigilUndefined) + case cborSigilFalse: + tokenSlot.Type = TBool + tokenSlot.Bool = false + return true, nil + case cborSigilTrue: + tokenSlot.Type = TBool + tokenSlot.Bool = true + return true, nil + case cborSigilFloat16, cborSigilFloat32, cborSigilFloat64: + tokenSlot.Type = TFloat64 + tokenSlot.Float64, err = d.decodeFloat(majorByte) + return true, err + case cborSigilIndefiniteBytes: + tokenSlot.Type = TBytes + tokenSlot.Bytes, err = d.decodeBytesIndefinite(nil) + return true, err + case cborSigilIndefiniteString: + tokenSlot.Type = TString + tokenSlot.Str, err = d.decodeStringIndefinite() + return true, err + case cborSigilIndefiniteArray: + tokenSlot.Type = TArrOpen + tokenSlot.Length = -1 + d.pushPhase(d.step_acceptArrValueOrBreak) + return false, nil + case cborSigilIndefiniteMap: + tokenSlot.Type = TMapOpen + tokenSlot.Length = -1 + d.pushPhase(d.step_acceptMapIndefKey) + return false, nil + default: + switch { + case majorByte >= cborMajorUint && majorByte < cborMajorNegInt: + tokenSlot.Type = TUint + tokenSlot.Uint, err = d.decodeUint(majorByte) + return true, err + case majorByte >= cborMajorNegInt && majorByte < cborMajorBytes: + tokenSlot.Type = TInt + tokenSlot.Int, err = d.decodeNegInt(majorByte) + return true, err + case majorByte >= cborMajorBytes && majorByte < cborMajorString: + tokenSlot.Type = TBytes + tokenSlot.Bytes, err = d.decodeBytes(majorByte) + return true, err + case majorByte >= cborMajorString && majorByte < cborMajorArray: + tokenSlot.Type = TString + tokenSlot.Str, err = d.decodeString(majorByte) + return true, err + case majorByte >= cborMajorArray && majorByte < cborMajorMap: + var n int + n, err = d.decodeLen(majorByte) + tokenSlot.Type = TArrOpen + tokenSlot.Length = n + d.left = append(d.left, n) + d.pushPhase(d.step_acceptArrValue) + return false, err + case majorByte >= cborMajorMap && majorByte < cborMajorTag: + var n int + n, err = d.decodeLen(majorByte) + tokenSlot.Type = TMapOpen + tokenSlot.Length = n + d.left = append(d.left, n) + d.pushPhase(d.step_acceptMapKey) + return false, err + case majorByte >= cborMajorTag && majorByte < cborMajorSimple: + // CBOR tags are, frankly, bonkers, and should not be used. + // They break isomorphism to basic standards like JSON. + // We'll parse basic integer tag values -- SINGLE layer only. + // We will NOT parse the full gamut of recursive tags: doing so + // would mean allowing an unbounded number of allocs *during + // *processing of a single token*, which is _not reasonable_. + if tokenSlot.Tagged { + return true, fmt.Errorf("unsupported multiple tags on a single data item") + } + tokenSlot.Tagged = true + tokenSlot.Tag, err = d.decodeLen(majorByte) + if err != nil { + return true, err + } + // Okay, we slurped a tag. + // Read next value. + majorByte, err := d.r.Readn1() + if err != nil { + return true, err + } + return d.stepHelper_acceptValue(majorByte, tokenSlot) + default: + return true, fmt.Errorf("Invalid majorByte: 0x%x", majorByte) + } + } +} diff --git a/vendor/github.com/polydawn/refmt/cbor/cborDecoderTerminals.go b/vendor/github.com/polydawn/refmt/cbor/cborDecoderTerminals.go new file mode 100644 index 00000000..b9583d75 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborDecoderTerminals.go @@ -0,0 +1,235 @@ +package cbor + +import ( + "encoding/binary" + "errors" + "fmt" + "math" +) + +const ( + maxUint = ^uint(0) + maxInt = int(maxUint >> 1) +) + +func (d *Decoder) decodeFloat(majorByte byte) (f float64, err error) { + var bs []byte + switch majorByte { + case cborSigilFloat16: + bs, err = d.r.Readnzc(2) + f = float64(math.Float32frombits(halfFloatToFloatBits(binary.BigEndian.Uint16(bs)))) + case cborSigilFloat32: + bs, err = d.r.Readnzc(4) + f = float64(math.Float32frombits(binary.BigEndian.Uint32(bs))) + case cborSigilFloat64: + bs, err = d.r.Readnzc(8) + f = math.Float64frombits(binary.BigEndian.Uint64(bs)) + } + return +} + +// Decode an unsigned int. +// Must continue to hand down the majorByte because some of its bits are either +// packed with the value outright, or tell us how many more bytes the value fills. +func (d *Decoder) decodeUint(majorByte byte) (ui uint64, err error) { + v := majorByte & 0x1f + if v <= 0x17 { + ui = uint64(v) + } else { + if v == 0x18 { + var b byte + b, err = d.r.Readn1() + ui = uint64(b) + } else if v == 0x19 { + var bs []byte + bs, err = d.r.Readnzc(2) + ui = uint64(binary.BigEndian.Uint16(bs)) + } else if v == 0x1a { + var bs []byte + bs, err = d.r.Readnzc(4) + ui = uint64(binary.BigEndian.Uint32(bs)) + } else if v == 0x1b { + var bs []byte + bs, err = d.r.Readnzc(8) + ui = uint64(binary.BigEndian.Uint64(bs)) + } else { + err = fmt.Errorf("decodeUint: Invalid descriptor: %v", majorByte) + return + } + } + return +} + +// Decode a *negative* integer. +// Note that CBOR has a very funny-shaped hole here: there is unsigned positive int, +// and there is explicitly negative signed int... and there is no signed, positive int. +// *We have no 'decodeInt' function because that **doesn't exist** in CBOR.* +// So! Hopefully our consumer doesn't mind having to cast uints to ints fairly frequently. +func (d *Decoder) decodeNegInt(majorByte byte) (i int64, err error) { + // The packed bits in the majorByte and the following bytes if any are layed out + // the exact same as a uint; only the major type bits are different. + ui, err := d.decodeUint(majorByte) + if err != nil { + return 0, err + } + pos := ui + 1 + if pos > uint64(-math.MinInt64) { + return -1, errors.New("cbor: negative integer out of rage of int64 type") + } + + return -int64(pos), nil +} + +// Decode expecting a positive integer. +// None of our token-yielding functions call this directly; +// it's used inside the library when we expect to read e.g. a length header. +// Does not check that your majorByte indicates an integer type at all; +// in context, it often doesn't, e.g. when decoding the length of a string. +func (d *Decoder) decodeLen(majorByte byte) (i int, err error) { + ui, err := d.decodeUint(majorByte) + if err != nil { + return 0, err + } + if ui > uint64(maxInt) { + return 0, errors.New("cbor: positive integer is out of length") + } + return int(ui), nil +} + +// Decoding indefinite-length byte strings in cbor is actually decoding a sequence of +// definite-length byte strings until you encounter a break. +// Caller: use `bs[:0]` if you have something to reuse, or nil +func (d *Decoder) decodeBytesIndefinite(bs []byte) (bsOut []byte, err error) { + return d.decodeBytesOrStringIndefinite(bs, cborMajorBytes) +} + +func (d *Decoder) decodeStringIndefinite() (s string, err error) { + bs, err := d.decodeBytesOrStringIndefinite(nil, cborMajorString) + if err != nil { + return "", err + } + return string(bs), nil +} + +func (d *Decoder) decodeBytesOrStringIndefinite(bs []byte, majorWanted byte) (bsOut []byte, err error) { + if bs == nil { + bs = make([]byte, 0, 16) + } + var n int + for { + // Read first byte; check for break, or hunk, or invalid. + // (It's not necessary to have the first majorByte as a param to this function, because + // indefinite length sequences have a separate sigil which doesn't pack any len info.) + majorByte, err := d.r.Readn1() + if err != nil { + return bs, err + } + if majorByte == cborSigilBreak { + return bs, nil + } else if major := majorByte | 0x1f - 0x1f; major != majorWanted { + return bs, fmt.Errorf("cbor: expect bytes or string major type in indefinite string/bytes; got: %v, byte: %v", major, majorByte) + } + // Read length header for this hunk, and ensure we have at least that much cap. + n, err = d.decodeLen(majorByte) + if err != nil { + return bs, err + } + oldLen := len(bs) + newLen := oldLen + n + if n > 33554432 { + return nil, fmt.Errorf("cbor: decoding rejected oversized indefinite string/bytes field: %d is too large", n) + } + if newLen > cap(bs) { + bs2 := make([]byte, newLen, 2*cap(bs)+n) + copy(bs2, bs) + bs = bs2 + } else { + bs = bs[:newLen] + } + // Read that hunk. + d.r.Readb(bs[oldLen:newLen]) + } +} + +// Decode a single length-prefixed hunk of bytes. +// +// There are a number of ways this may try to conserve allocations: +// +// - If you say zerocopy=true, and the underlying reader system already has an +// appropriate byte slice available, then a slice from that will be returned. +// +// - If you provide a byte slice, we will attempt to use it. +// The byte slice is truncated and used for its capacity only -- not appended. +// The final returned slice may be a different one if the provided slice did not +// have sufficient capacity. +// +// - If you say zerocopy=true, and the underlying read system doesn't have an +// efficient way to yield a slice of its internal buffer, and you provided no +// destination slice, then we will use a recycleable piece of memory in the Decoder +// state and return a slice viewing into it. For small values this will +// likely save an alloc. +// +// The above rules are resolved in this order; e.g. your byte slice is disregarded +// if zerocopy=true and the underlying reader can do something even more efficient, +// though there is also no harm to providing the slice argument. +// Generally, set zerocopy if you know you're not going to publicly yield the results, +// and the implementation will do its best to be as efficient as possible. +// +// Zerocopy is appropriate when planning to turn the bytes into a string, for example, +// since in that path we know the slice will be treated immutably, not publicly +// exposed, and also any other copy to another intermediate is definitely useless. +func (d *Decoder) decodeBytes(majorByte byte) (bs []byte, err error) { + n, err := d.decodeLen(majorByte) + if err != nil { + return nil, err + } + if n > 33554432 { + return nil, fmt.Errorf("cbor: decoding rejected oversized byte field: %d is too large", n) + } + return d.r.Readn(n) +} + +// Decode a single length-prefixed string. +func (d *Decoder) decodeString(majorByte byte) (s string, err error) { + n, err := d.decodeLen(majorByte) + if err != nil { + return "", err + } + if n > 33554432 { + return "", fmt.Errorf("cbor: decoding rejected oversized string field: %d is too large", n) + } + bs, err := d.r.Readnzc(n) + return string(bs), err +} + +// culled from OGRE (Object-Oriented Graphics Rendering Engine) +// function: halfToFloatI (http://stderr.org/doc/ogre-doc/api/OgreBitwise_8h-source.html) +func halfFloatToFloatBits(yy uint16) (d uint32) { + y := uint32(yy) + s := (y >> 15) & 0x01 + e := (y >> 10) & 0x1f + m := y & 0x03ff + + if e == 0 { + if m == 0 { // plu or minus 0 + return s << 31 + } else { // Denormalized number -- renormalize it + for (m & 0x00000400) == 0 { + m <<= 1 + e -= 1 + } + e += 1 + const zz uint32 = 0x0400 + m &= ^zz + } + } else if e == 31 { + if m == 0 { // Inf + return (s << 31) | 0x7f800000 + } else { // NaN + return (s << 31) | 0x7f800000 | (m << 13) + } + } + e = e + (127 - 15) + m = m << 13 + return (s << 31) | (e << 23) | m +} diff --git a/vendor/github.com/polydawn/refmt/cbor/cborEncoder.go b/vendor/github.com/polydawn/refmt/cbor/cborEncoder.go new file mode 100644 index 00000000..9b431d59 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborEncoder.go @@ -0,0 +1,276 @@ +package cbor + +import ( + "io" + + . "github.com/polydawn/refmt/tok" +) + +type Encoder struct { + w quickWriter + + stack []encoderPhase // When empty, and step returns done, all done. + current encoderPhase // Shortcut to end of stack. + // Note unlike decoder, we need no statekeeping space for definite-len map and array. + + spareBytes []byte +} + +func NewEncoder(w io.Writer) (d *Encoder) { + d = &Encoder{ + w: newQuickWriterStream(w), + stack: make([]encoderPhase, 0, 10), + current: phase_anyExpectValue, + spareBytes: make([]byte, 8), + } + return +} + +func (d *Encoder) Reset() { + d.stack = d.stack[0:0] + d.current = phase_anyExpectValue +} + +type encoderPhase byte + +// There's about twice as many phases that the cbor encoder can be in compared to the json encoder +// because the presense of indefinite vs definite length maps and arrays effectively adds a dimension to those. +const ( + phase_anyExpectValue encoderPhase = iota + phase_mapDefExpectKeyOrEnd // must not yield break at end + phase_mapDefExpectValue // only necessary to flip back to DefExpectKey + phase_mapIndefExpectKeyOrEnd // must yield break at end + phase_mapIndefExpectValue // only necessary to flip back to IndefExpectKey + phase_arrDefExpectValueOrEnd // must not yield break at end + phase_arrIndefExpectValueOrEnd // must yield break at end +) + +func (d *Encoder) pushPhase(p encoderPhase) { + d.current = p + d.stack = append(d.stack, d.current) +} + +// Pop a phase from the stack; return 'true' if stack now empty. +func (d *Encoder) popPhase() bool { + n := len(d.stack) - 1 + if n == 0 { + return true + } + if n < 0 { // the state machines are supposed to have already errored better + panic("cborEncoder stack overpopped") + } + d.current = d.stack[n-1] + d.stack = d.stack[0:n] + return false +} + +func (d *Encoder) Step(tokenSlot *Token) (done bool, err error) { + /* + Though it reads somewhat backwards from how a human would probably intuit + cause and effect, switching on the token type we got first, + *then* switching for whether it is acceptable for our current phase... is by + far the shorter volume of code to write. + */ + phase := d.current + switch tokenSlot.Type { + case TMapOpen: + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + if tokenSlot.Length >= 0 { + d.pushPhase(phase_mapDefExpectKeyOrEnd) + d.emitMajorPlusLen(cborMajorMap, uint64(tokenSlot.Length)) + } else { + d.pushPhase(phase_mapIndefExpectKeyOrEnd) + d.w.writen1(cborSigilIndefiniteMap) + } + return false, d.w.checkErr() + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + case TMapClose: + switch phase { + case phase_mapDefExpectKeyOrEnd: + return d.popPhase(), nil + case phase_mapIndefExpectKeyOrEnd: + d.w.writen1(cborSigilBreak) + return d.popPhase(), d.w.checkErr() + case phase_anyExpectValue, phase_mapDefExpectValue, phase_mapIndefExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForValue} + default: + panic("unreachable phase") + } + case TArrOpen: + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + if tokenSlot.Length >= 0 { + d.pushPhase(phase_arrDefExpectValueOrEnd) + d.emitMajorPlusLen(cborMajorArray, uint64(tokenSlot.Length)) + } else { + d.pushPhase(phase_arrIndefExpectValueOrEnd) + d.w.writen1(cborSigilIndefiniteArray) + } + return false, d.w.checkErr() + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + case TArrClose: + switch phase { + case phase_arrDefExpectValueOrEnd: + return d.popPhase(), nil + case phase_arrIndefExpectValueOrEnd: + d.w.writen1(cborSigilBreak) + return d.popPhase(), d.w.checkErr() + case phase_anyExpectValue, phase_mapDefExpectValue, phase_mapIndefExpectValue: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForValue} + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + case TNull: // terminal value; not accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.w.writen1(cborSigilNil) + return phase == phase_anyExpectValue, d.w.checkErr() + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + case TString: // terminal value; YES, accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + goto emitStr + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + d.current += 1 + goto emitStr + default: + panic("unreachable phase") + } + emitStr: + { + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.encodeString(tokenSlot.Str) + return phase == phase_anyExpectValue, d.w.checkErr() + } + case TBytes: // terminal value; not accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.encodeBytes(tokenSlot.Bytes) + return phase == phase_anyExpectValue, d.w.checkErr() + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + case TBool: // terminal value; not accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.encodeBool(tokenSlot.Bool) + return phase == phase_anyExpectValue, d.w.checkErr() + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + case TInt: // terminal value; YES, accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + goto emitInt + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + d.current += 1 + goto emitInt + default: + panic("unreachable phase") + } + emitInt: + { + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.encodeInt64(tokenSlot.Int) + return phase == phase_anyExpectValue, d.w.checkErr() + } + case TUint: // terminal value; YES, accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + goto emitUint + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + d.current += 1 + goto emitUint + default: + panic("unreachable phase") + } + emitUint: + { + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.encodeUint64(tokenSlot.Uint) + return phase == phase_anyExpectValue, d.w.checkErr() + } + case TFloat64: // terminal value; not accepted as map key. + switch phase { + case phase_mapDefExpectValue, phase_mapIndefExpectValue: + d.current -= 1 + fallthrough + case phase_anyExpectValue, phase_arrDefExpectValueOrEnd, phase_arrIndefExpectValueOrEnd: + if tokenSlot.Tagged { + d.emitMajorPlusLen(cborMajorTag, uint64(tokenSlot.Tag)) + } + d.encodeFloat64(tokenSlot.Float64) + return phase == phase_anyExpectValue, d.w.checkErr() + case phase_mapDefExpectKeyOrEnd, phase_mapIndefExpectKeyOrEnd: + return true, &ErrInvalidTokenStream{Got: *tokenSlot, Acceptable: tokenTypesForKey} + default: + panic("unreachable phase") + } + default: + panic("unhandled token type") + } +} diff --git a/vendor/github.com/polydawn/refmt/cbor/cborEncoderTerminals.go b/vendor/github.com/polydawn/refmt/cbor/cborEncoderTerminals.go new file mode 100644 index 00000000..7f5ede8d --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborEncoderTerminals.go @@ -0,0 +1,77 @@ +package cbor + +import ( + "encoding/binary" + "math" +) + +func (d *Encoder) emitLen(majorByte byte, length int) { + d.emitMajorPlusLen(majorByte, uint64(length)) +} + +func (d *Encoder) emitMajorPlusLen(majorByte byte, v uint64) { + if v <= 0x17 { + d.w.writen1(majorByte + byte(v)) + } else if v <= math.MaxUint8 { + d.w.writen2(majorByte+0x18, uint8(v)) + } else if v <= math.MaxUint16 { + d.w.writen1(majorByte + 0x19) + d.spareBytes = d.spareBytes[:2] + binary.BigEndian.PutUint16(d.spareBytes, uint16(v)) + d.w.writeb(d.spareBytes) + } else if v <= math.MaxUint32 { + d.w.writen1(majorByte + 0x1a) + d.spareBytes = d.spareBytes[:4] + binary.BigEndian.PutUint32(d.spareBytes, uint32(v)) + d.w.writeb(d.spareBytes) + } else { // if v <= math.MaxUint64 { + d.w.writen1(majorByte + 0x1b) + d.spareBytes = d.spareBytes[:8] + binary.BigEndian.PutUint64(d.spareBytes, v) + d.w.writeb(d.spareBytes) + } +} + +func (d *Encoder) encodeNull() { + d.w.writen1(cborSigilNil) +} + +func (d *Encoder) encodeString(s string) { + d.emitMajorPlusLen(cborMajorString, uint64(len(s))) + d.w.writestr(s) +} + +func (d *Encoder) encodeBytes(bs []byte) { + d.emitMajorPlusLen(cborMajorBytes, uint64(len(bs))) + d.w.writeb(bs) +} + +func (d *Encoder) encodeBool(b bool) { + if b { + d.w.writen1(cborSigilTrue) + } else { + d.w.writen1(cborSigilFalse) + } +} + +func (d *Encoder) encodeInt64(v int64) { + if v >= 0 { + d.emitMajorPlusLen(cborMajorUint, uint64(v)) + } else { + d.emitMajorPlusLen(cborMajorNegInt, uint64(-1-v)) + } +} + +func (d *Encoder) encodeUint64(v uint64) { + d.emitMajorPlusLen(cborMajorUint, v) +} + +func (d *Encoder) encodeFloat64(v float64) { + // Can we pack it into 32? No idea: float precision is fraught with peril. + // See https://play.golang.org/p/u9sN6x0kk6 + // So we *only* emit the full 64-bit style. The CBOR spec permits this. + d.w.writen1(cborSigilFloat64) + d.spareBytes = d.spareBytes[:8] + binary.BigEndian.PutUint64(d.spareBytes, math.Float64bits(v)) + d.w.writeb(d.spareBytes) +} diff --git a/vendor/github.com/polydawn/refmt/cbor/cborHelpers.go b/vendor/github.com/polydawn/refmt/cbor/cborHelpers.go new file mode 100644 index 00000000..f7c4b778 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborHelpers.go @@ -0,0 +1,106 @@ +package cbor + +import ( + "bytes" + "io" + + "github.com/polydawn/refmt/obj" + "github.com/polydawn/refmt/obj/atlas" + "github.com/polydawn/refmt/shared" +) + +// All of the methods in this file are exported, +// and their names and type declarations are intended to be +// identical to the naming and types of the golang stdlib +// 'encoding/json' packages, with ONE EXCEPTION: +// what stdlib calls "NewEncoder", we call "NewMarshaller"; +// what stdlib calls "NewDecoder", we call "NewUnmarshaller"; +// and similarly the types and methods are "Marshaller.Marshal" +// and "Unmarshaller.Unmarshal". +// You should be able to migrate with a sed script! +// +// (In refmt, the encoder/decoder systems are for token streams; +// if you're talking about object mapping, we consistently +// refer to that as marshalling/unmarshalling.) +// +// Most methods also have an "Atlased" variant, +// which lets you specify advanced type mapping instructions. + +func Marshal(v interface{}) ([]byte, error) { + var buf bytes.Buffer + if err := NewMarshaller(&buf).Marshal(v); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func MarshalAtlased(v interface{}, atl atlas.Atlas) ([]byte, error) { + var buf bytes.Buffer + if err := NewMarshallerAtlased(&buf, atl).Marshal(v); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +type Marshaller struct { + marshaller *obj.Marshaller + encoder *Encoder + pump shared.TokenPump +} + +func (x *Marshaller) Marshal(v interface{}) error { + x.marshaller.Bind(v) + x.encoder.Reset() + return x.pump.Run() +} + +func NewMarshaller(wr io.Writer) *Marshaller { + return NewMarshallerAtlased(wr, atlas.MustBuild()) +} + +func NewMarshallerAtlased(wr io.Writer, atl atlas.Atlas) *Marshaller { + x := &Marshaller{ + marshaller: obj.NewMarshaller(atl), + encoder: NewEncoder(wr), + } + x.pump = shared.TokenPump{ + x.marshaller, + x.encoder, + } + return x +} + +func Unmarshal(cfg DecodeOptions, data []byte, v interface{}) error { + return NewUnmarshaller(cfg, bytes.NewBuffer(data)).Unmarshal(v) +} + +func UnmarshalAtlased(cfg DecodeOptions, data []byte, v interface{}, atl atlas.Atlas) error { + return NewUnmarshallerAtlased(cfg, bytes.NewBuffer(data), atl).Unmarshal(v) +} + +type Unmarshaller struct { + unmarshaller *obj.Unmarshaller + decoder *Decoder + pump shared.TokenPump +} + +func (x *Unmarshaller) Unmarshal(v interface{}) error { + x.unmarshaller.Bind(v) + x.decoder.Reset() + return x.pump.Run() +} + +func NewUnmarshaller(cfg DecodeOptions, r io.Reader) *Unmarshaller { + return NewUnmarshallerAtlased(cfg, r, atlas.MustBuild()) +} +func NewUnmarshallerAtlased(cfg DecodeOptions, r io.Reader, atl atlas.Atlas) *Unmarshaller { + x := &Unmarshaller{ + unmarshaller: obj.NewUnmarshaller(atl), + decoder: NewDecoder(cfg, r), + } + x.pump = shared.TokenPump{ + x.decoder, + x.unmarshaller, + } + return x +} diff --git a/vendor/github.com/polydawn/refmt/cbor/cborOptions.go b/vendor/github.com/polydawn/refmt/cbor/cborOptions.go new file mode 100644 index 00000000..69ccd685 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/cborOptions.go @@ -0,0 +1,20 @@ +package cbor + +type EncodeOptions struct { + // there aren't a ton of options for cbor, but we still need this + // for use as a sigil for the top-level refmt methods to demux on. +} + +// marker method -- you may use this type to instruct `refmt.Marshal` +// what kind of encoder to use. +func (EncodeOptions) IsEncodeOptions() {} + +type DecodeOptions struct { + CoerceUndefToNull bool + + // future: options to validate canonical serial order +} + +// marker method -- you may use this type to instruct `refmt.Marshal` +// what kind of encoder to use. +func (DecodeOptions) IsDecodeOptions() {} diff --git a/vendor/github.com/polydawn/refmt/cbor/doc.go b/vendor/github.com/polydawn/refmt/cbor/doc.go new file mode 100644 index 00000000..4972b592 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/doc.go @@ -0,0 +1,27 @@ +/* + Package implementing the CBOR -- Concise Binary Object Notation + -- http://cbor.io/ -- spec. + + CBOR is more or less freely interchangable with json: it's schemaless, + and composed of similar map and array types. + However, CBOR is binary, length delimited -- and thus very fast to parse, + and can store binary data without expansion problems -- and also distinguishes + types like integer, string, float, and bytes all clearly from each other. + + The `cbor.Marshal` and `cbor.Unmarshal` functions are the quickest way + to convert your Go objects to and from serial CBOR. + + The `cbor.NewMarshaller` and `cbor.NewUmarshaller` functions give a little + more control. If performance is important, prefer these; recycling + the marshaller instances will significantly cut down on memory allocations + and improve performance. + + The `*Atlased` variants of constructors allow you set up marshalling with + an `refmt/obj/atlas.Atlas`, unlocking all of refmt's advanced features + and custom object mapping powertools. + + The `cbor.Encoder` and `cbor.Decoder` types implement the low-level functionality + of converting serial CBOR byte streams into refmt Token streams. + Users don't usually need to use these directly. +*/ +package cbor diff --git a/vendor/github.com/polydawn/refmt/cbor/encodeWriter.go b/vendor/github.com/polydawn/refmt/cbor/encodeWriter.go new file mode 100644 index 00000000..1ee4839e --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/encodeWriter.go @@ -0,0 +1,107 @@ +package cbor + +import ( + "fmt" + "io" +) + +var ( + _ quickWriter = &quickWriterStream{} +) + +// quickWriter is implements several methods that are specificly useful to the performance +// needs of our encoders, and abstracts writing to a byte array or to an io.Writer. +type quickWriter interface { + writeb([]byte) + writestr(string) + writen1(byte) + writen2(byte, byte) + checkErr() error + clearErr() +} + +// Interface used to detect if efficient string writing is supported. +// Same as in stdlib 'io' pkg; also not exported there, so we declare it again ourselves. +type stringWriter interface { + WriteString(s string) (n int, err error) +} + +// quickWriterStream is a quickWriter that routes bytes to an io.Writer. +// While this implementation does use some internal buffers, it's still advisable +// to use a buffered writer to avoid small operations for any external IO like disk or network. +type quickWriterStream struct { + w io.Writer + ws stringWriter // nil if not available + + scratch [2]byte + scratch1 []byte + scratch2 []byte + err error +} + +func newQuickWriterStream(w io.Writer) *quickWriterStream { + z := &quickWriterStream{w: w} + if ws, ok := w.(stringWriter); ok { + z.ws = ws + } + z.scratch1 = z.scratch[:1] + z.scratch2 = z.scratch[:2] + return z +} + +func (z *quickWriterStream) writeb(bs []byte) { + n, err := z.w.Write(bs) + if err != nil && z.err == nil { + z.err = err + } + if n < len(bs) && z.err == nil { + z.err = fmt.Errorf("underwrite") + } +} + +func (z *quickWriterStream) writestr(s string) { + var n int + var err error + if z.ws != nil { + n, err = z.ws.WriteString(s) + } else { + n, err = z.w.Write([]byte(s)) // Notice: alloc! + } + if err != nil && z.err == nil { + z.err = err + } + if n < len(s) && z.err == nil { + z.err = fmt.Errorf("underwrite") + } +} + +func (z *quickWriterStream) writen1(b byte) { + z.scratch1[0] = b + n, err := z.w.Write(z.scratch1) + if err != nil && z.err == nil { + z.err = err + } + if n < 1 && z.err == nil { + z.err = fmt.Errorf("underwrite") + } +} + +func (z *quickWriterStream) writen2(b1 byte, b2 byte) { + z.scratch2[0] = b1 + z.scratch2[1] = b2 + n, err := z.w.Write(z.scratch2) + if err != nil && z.err == nil { + z.err = err + } + if n < 2 && z.err == nil { + z.err = fmt.Errorf("underwrite") + } +} + +func (z *quickWriterStream) checkErr() error { + return z.err +} + +func (z *quickWriterStream) clearErr() { + z.err = nil +} diff --git a/vendor/github.com/polydawn/refmt/cbor/errors.go b/vendor/github.com/polydawn/refmt/cbor/errors.go new file mode 100644 index 00000000..25020d0d --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cbor/errors.go @@ -0,0 +1,22 @@ +package cbor + +import ( + "fmt" + + . "github.com/polydawn/refmt/tok" +) + +// Error raised by Encoder when invalid tokens or invalid ordering, e.g. a MapClose with no matching open. +// Should never be seen by the user in practice unless generating their own token streams. +type ErrInvalidTokenStream struct { + Got Token + Acceptable []TokenType +} + +func (e *ErrInvalidTokenStream) Error() string { + return fmt.Sprintf("ErrInvalidTokenStream: unexpected %v, expected %v", e.Got, e.Acceptable) + // More comprehensible strings might include "start of value", "start of key or end of map", "start of value or end of array". +} + +var tokenTypesForKey = []TokenType{TString, TInt, TUint} +var tokenTypesForValue = []TokenType{TMapOpen, TArrOpen, TNull, TString, TBytes, TInt, TUint, TFloat64} diff --git a/vendor/github.com/polydawn/refmt/cloneHelpers.go b/vendor/github.com/polydawn/refmt/cloneHelpers.go new file mode 100644 index 00000000..7dcf4059 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cloneHelpers.go @@ -0,0 +1,50 @@ +package refmt + +import ( + "github.com/polydawn/refmt/obj" + "github.com/polydawn/refmt/obj/atlas" + "github.com/polydawn/refmt/shared" +) + +func Clone(src, dst interface{}) error { + return CloneAtlased(src, dst, atlas.MustBuild()) +} +func MustClone(src, dst interface{}) { + if err := Clone(src, dst); err != nil { + panic(err) + } +} + +func CloneAtlased(src, dst interface{}, atl atlas.Atlas) error { + return NewCloner(atl).Clone(src, dst) +} +func MustCloneAtlased(src, dst interface{}, atl atlas.Atlas) { + if err := CloneAtlased(src, dst, atl); err != nil { + panic(err) + } +} + +type Cloner interface { + Clone(src, dst interface{}) error +} + +func NewCloner(atl atlas.Atlas) Cloner { + x := &cloner{ + marshaller: obj.NewMarshaller(atl), + unmarshaller: obj.NewUnmarshaller(atl), + } + x.pump = shared.TokenPump{x.marshaller, x.unmarshaller} + return x +} + +type cloner struct { + marshaller *obj.Marshaller + unmarshaller *obj.Unmarshaller + pump shared.TokenPump +} + +func (c cloner) Clone(src, dst interface{}) error { + c.marshaller.Bind(src) + c.unmarshaller.Bind(dst) + return c.pump.Run() +} diff --git a/vendor/github.com/polydawn/refmt/cover b/vendor/github.com/polydawn/refmt/cover new file mode 100755 index 00000000..e3587f90 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/cover @@ -0,0 +1,22 @@ +#!/bin/bash +set -euo pipefail + +PROJECT="github.com/polydawn/refmt" +SUBSECTION=${1:-./...} + +export GOPATH="$PWD/.gopath" + +CoverPkg() { + pkg="$1" + + coverFile="$GOPATH/tmp/$pkg.cover" + mkdir -p "$(dirname "$coverFile")" + rm -f "$coverFile" + go test -coverprofile="$coverFile" "$pkg" \ + | tee /dev/stderr | grep "\[no test files\]$" > /dev/null || \ + go tool cover -html="$coverFile" +} + +for pkg in $(go list "$SUBSECTION" | sed "s#^_${PWD}#${PROJECT}#"); do + CoverPkg "$pkg" || true # continue even if errors from packages that lack tests. +done diff --git a/vendor/github.com/polydawn/refmt/doc.go b/vendor/github.com/polydawn/refmt/doc.go new file mode 100644 index 00000000..fe9113d6 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/doc.go @@ -0,0 +1,12 @@ +/* + Refmt is a serialization and object-mapping library. + + Look to the README on github for more high-level information. + + This top-level package exposes simple helper methods for most common operations. + You can also compose custom marshallers/unmarshallers and serializer/deserializers + by constructing a `refmt.TokenPump` with components from the packages beneath this one. + For example, the `refmt.JsonEncode` helper method can be replicated by combining + an `obj.Marshaller` with a `json.Encoder`. +*/ +package refmt diff --git a/vendor/github.com/polydawn/refmt/goad b/vendor/github.com/polydawn/refmt/goad new file mode 100755 index 00000000..0b8b8f69 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/goad @@ -0,0 +1,142 @@ +#!/bin/bash +set -euo pipefail + +### Project details +name="refmt" +pkg="github.com/polydawn/$name" # everything under here will be tested +cmd="$pkg/cmd/$name" # if you have a main.main not at the repo root, set this + + + +### Normalize path -- all work should be relative to this script's location. +## Set up gopath -- also relative to this dir, so we work in isolation. +cd "$( dirname "${BASH_SOURCE[0]}" )" +export GOPATH="$PWD/.gopath/" +export GOBIN="$PWD/bin/" + + + +### other config scripts? invoke here. +## pass pointer to project root dir down, for tests (tests run in varying CWDs, so need this hint) +export PROJ="$PWD" +## use LDFLAGS to inject vars at compile time. +LDFLAGS="" + + + +### Last bits of our flag parsery. +# subcommand arg? +SUBCOMMAND=${1:-} +# subsection arg? +SUBSECTION=${2:-"..."} +SUBSECTION="./$SUBSECTION" +# default test timeouts are far too high. override this if you like. +TEST_TIMEOUT="${TEST_TIMEOUT:-"5s"}" + + + +### action begins! +if [ -z "$SUBCOMMAND" ] ; then + ( + go fmt "$SUBSECTION" + go install -ldflags "$LDFLAGS" "$cmd" && { + echo -e "\E[1;32minstall successful.\E[0;m\n" + } || { + echo -e "\E[1;41minstall failed!\E[0;m" + exit 8 + } + go test "$SUBSECTION" -timeout="$TEST_TIMEOUT" && { + echo -e "\n\E[1;32mall tests green.\E[0;m" + } || { + echo -e "\n\E[1;41msome tests failed!\E[0;m" + exit 4 + } + ) +else + shift # munch $subcommand from passing on in "$@" + case "$SUBCOMMAND" in + -) + # passthrough for other commands + go "$@" + ;; + env) + echo "GOROOT=`go env GOROOT`" + echo "GOPATH=`go env GOPATH`" + ;; + path) + echo "$GOPATH" + ;; + init) + # it's your responsibility to do this the first time + # (we don't do it at the front of every build because it will move submodules if you already have them, and that might not be what you want as you're plowing along) + git submodule update --init + # also make sure the self-symlink exists. should be committed anyway (but then, this is also useful for project-first-steps.) + mkdir -p "$(dirname ".gopath/src/$pkg")" + ln -snf "$(echo "${pkg//[^\/]}/" | sed s#/#../#g)"../ ".gopath/src/$pkg" + ;; + test) + set +e ; shift ; set -e # munch $subsection from passing on in "$@" + go test -i "$SUBSECTION" "$@" && + go test -v "$SUBSECTION" -timeout="$TEST_TIMEOUT" "$@" && { + echo -e "\n\E[1;32mall tests green.\E[0;m" + } || { + echo -e "\n\E[1;41msome tests failed!\E[0;m" + exit 4 + } + ;; + install) + go install -ldflags "$LDFLAGS" "$cmd" + ;; + bench) + profPath="$GOPATH/tmp/prof/" + mkdir -p "$profPath" + set +e ; shift ; set -e # munch $subsection from passing on in "$@" + go test -i "$SUBSECTION" "$@" && + GOCONVEY_REPORTER=silent \ + go test \ + -run=XXX -bench=. \ + -o "$profPath/bench.bin" \ + -cpuprofile="$profPath/cpu.pprof" \ + "$SUBSECTION" "$@" || { + echo -e "\E[1;41msome benchmarks failed!\E[0;m" + exit 4 + } + # use e.g.: go tool pprof --text .gopath/tmp/prof/bench.bin .gopath/tmp/prof/cpu.pprof + ;; + fmt) + go fmt "$SUBSECTION" + ;; + doc) + set +e ; shift ; set -e # munch $subsection from passing on in "$@" + for package in $(go list "$SUBSECTION" | sed "s#^_${PWD}#${pkg}#"); do + echo -e "==== $package ====\n" + godoc "$@" "$package" + echo -e "\n\n\n" + done + ;; + cover) + coverFile="$GOPATH/tmp/cover/cover.out" + mkdir -p "$(dirname "$coverFile")" + for package in $(go list "$SUBSECTION" | sed "s#^_${PWD}#${pkg}#"); do + rm -f "$coverFile" + echo "==== $package ====" + go test -coverprofile="$coverFile" "$package" && \ + [ -f "$coverFile" ] && \ + echo ---- && \ + go tool cover -func="$coverFile" && \ + echo ---- && \ + go tool cover -html="$coverFile" + echo ==== + echo + done + rm -f "$coverFile" + ;; + clean) + rm -rf "$GOBIN" "$GOPATH/pkg" "$GOPATH/tmp" + ;; + *) + echo "Usage: $0 {init|test|install|bench|fmt|doc|cover|clean}" 1>&2; + exit 1 + ;; + esac +fi diff --git a/vendor/github.com/polydawn/refmt/json/doc.go b/vendor/github.com/polydawn/refmt/json/doc.go new file mode 100644 index 00000000..f4e8c961 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/doc.go @@ -0,0 +1,20 @@ +/* + Package implementing the JSON -- http://json.org/ -- spec. + + The `json.Marshal` and `json.Unmarshal` functions are the quickest way + to convert your Go objects to and from serial JSON. + + The `json.NewMarshaller` and `json.NewUmarshaller` functions give a little + more control. If performance is important, prefer these; recycling + the marshaller instances will significantly cut down on memory allocations + and improve performance. + + The `*Atlased` variants of constructors allow you set up marshalling with + an `refmt/obj/atlas.Atlas`, unlocking all of refmt's advanced features + and custom object mapping powertools. + + The `json.Encoder` and `json.Decoder` types implement the low-level functionality + of converting serial JSON byte streams into refmt Token streams. + Users don't usually need to use these directly. +*/ +package json diff --git a/vendor/github.com/polydawn/refmt/json/jsonCommon.go b/vendor/github.com/polydawn/refmt/json/jsonCommon.go new file mode 100644 index 00000000..21e271ba --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonCommon.go @@ -0,0 +1,19 @@ +package json + +//const ( +// jsonMajor +//) + +// The most heavily used words, cached as byte slices. +var ( + wordTrue = []byte("true") + wordFalse = []byte("false") + wordNull = []byte("null") + wordArrOpen = []byte("[") + wordArrClose = []byte("]") + wordMapOpen = []byte("{") + wordMapClose = []byte("}") + wordColon = []byte(":") + wordComma = []byte(",") + wordSpace = []byte(" ") +) diff --git a/vendor/github.com/polydawn/refmt/json/jsonDecoder.go b/vendor/github.com/polydawn/refmt/json/jsonDecoder.go new file mode 100644 index 00000000..bc025e6a --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonDecoder.go @@ -0,0 +1,207 @@ +package json + +import ( + "fmt" + "io" + + "github.com/polydawn/refmt/shared" + . "github.com/polydawn/refmt/tok" +) + +type Decoder struct { + r shared.SlickReader + + stack []decoderStep // When empty, and step returns done, all done. + step decoderStep // Shortcut to end of stack. + some bool // Set to true after first value in any context; use to decide if a comma must precede the next value. +} + +func NewDecoder(r io.Reader) (d *Decoder) { + d = &Decoder{ + r: shared.NewReader(r), + stack: make([]decoderStep, 0, 10), + } + d.step = d.step_acceptValue + return +} + +func (d *Decoder) Reset() { + d.stack = d.stack[0:0] + d.step = d.step_acceptValue + d.some = false +} + +type decoderStep func(tokenSlot *Token) (done bool, err error) + +func (d *Decoder) Step(tokenSlot *Token) (done bool, err error) { + done, err = d.step(tokenSlot) + // If the step errored: out, entirely. + if err != nil { + return true, err + } + // If the step wasn't done, return same status. + if !done { + return false, nil + } + // If it WAS done, and stack empty, we're entirely done. + nSteps := len(d.stack) - 1 + if nSteps <= 0 { + return true, nil // that's all folks + } + // Pop the stack. Reset "some" to true. + d.step = d.stack[nSteps] + d.stack = d.stack[0:nSteps] + d.some = true + return false, nil +} + +func (d *Decoder) pushPhase(newPhase decoderStep) { + d.stack = append(d.stack, d.step) + d.step = newPhase + d.some = false +} + +func readn1skippingWhitespace(r shared.SlickReader) (majorByte byte, err error) { + for { + majorByte, err = r.Readn1() + switch majorByte { + case ' ', '\t', '\r', '\n': // continue + default: + return + } + } +} + +// The original step, where any value is accepted, and no terminators for composites are valid. +// ONLY used in the original step; all other steps handle leaf nodes internally. +func (d *Decoder) step_acceptValue(tokenSlot *Token) (done bool, err error) { + majorByte, err := readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + return d.stepHelper_acceptValue(majorByte, tokenSlot) +} + +// Step in midst of decoding an array. +func (d *Decoder) step_acceptArrValueOrBreak(tokenSlot *Token) (done bool, err error) { + majorByte, err := readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + if d.some { + switch majorByte { + case ']': + tokenSlot.Type = TArrClose + return true, nil + case ',': + majorByte, err = readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + // and now fall through to the next switch + } + } + switch majorByte { + case ']': + tokenSlot.Type = TArrClose + return true, nil + default: + _, err := d.stepHelper_acceptValue(majorByte, tokenSlot) + d.some = true + return false, err + } +} + +// Step in midst of decoding a map, key expected up next, or end. +func (d *Decoder) step_acceptMapKeyOrBreak(tokenSlot *Token) (done bool, err error) { + majorByte, err := readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + if d.some { + switch majorByte { + case '}': + tokenSlot.Type = TMapClose + return true, nil + case ',': + majorByte, err = readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + // and now fall through to the next switch + } + } + switch majorByte { + case '}': + tokenSlot.Type = TMapClose + return true, nil + default: + // Consume a string for key. + _, err := d.stepHelper_acceptValue(majorByte, tokenSlot) // FIXME surely not *any* value? not composites, at least? + // Now scan up to consume the colon as well, which is required next. + majorByte, err = readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + if majorByte != ':' { + return true, fmt.Errorf("expected colon after map key; got 0x%x", majorByte) + } + // Next up: expect a value. + d.step = d.step_acceptMapValue + d.some = true + return false, err + } +} + +// Step in midst of decoding a map, value expected up next. +func (d *Decoder) step_acceptMapValue(tokenSlot *Token) (done bool, err error) { + majorByte, err := readn1skippingWhitespace(d.r) + if err != nil { + return true, err + } + d.step = d.step_acceptMapKeyOrBreak + _, err = d.stepHelper_acceptValue(majorByte, tokenSlot) + return false, err +} + +func (d *Decoder) stepHelper_acceptValue(majorByte byte, tokenSlot *Token) (done bool, err error) { + switch majorByte { + case '{': + tokenSlot.Type = TMapOpen + tokenSlot.Length = -1 + d.pushPhase(d.step_acceptMapKeyOrBreak) + return false, nil + case '[': + tokenSlot.Type = TArrOpen + tokenSlot.Length = -1 + d.pushPhase(d.step_acceptArrValueOrBreak) + return false, nil + case 'n': + d.r.Readnzc(3) // FIXME must check these equal "ull"! + tokenSlot.Type = TNull + return true, nil + case '"': + tokenSlot.Type = TString + tokenSlot.Str, err = d.decodeString() + return true, err + case 'f': + d.r.Readnzc(4) // FIXME must check these equal "alse"! + tokenSlot.Type = TBool + tokenSlot.Bool = false + return true, nil + case 't': + d.r.Readnzc(3) // FIXME must check these equal "rue"! + tokenSlot.Type = TBool + tokenSlot.Bool = true + return true, nil + case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + // Some kind of numeric... but in json, we *can't tell* if it's float or int. + // JSON in general doesn't differentiate. But we usually try to anyway. + // (If this results in us yielding an int, and an obj.Unmarshaller is filling a float, + // it's the Unmarshaller responsibility to decide to cast that.) + tokenSlot.Type, tokenSlot.Int, tokenSlot.Float64, err = d.decodeNumber(majorByte) + return true, err + default: + return true, fmt.Errorf("Invalid byte while expecting start of value: 0x%x", majorByte) + } +} diff --git a/vendor/github.com/polydawn/refmt/json/jsonDecoderTerminals.go b/vendor/github.com/polydawn/refmt/json/jsonDecoderTerminals.go new file mode 100644 index 00000000..b2054535 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonDecoderTerminals.go @@ -0,0 +1,368 @@ +package json + +// License note: the string and numeric parsers here borrow +// heavily from the golang stdlib json parser scanner. +// That code is originally Copyright 2010 The Go Authors, +// and is governed by a BSD-style license. + +import ( + "fmt" + "io" + "strconv" + "unicode" + "unicode/utf16" + "unicode/utf8" + + "github.com/polydawn/refmt/tok" +) + +func (d *Decoder) decodeString() (string, error) { + // First quote has already been eaten. + // Start tracking the byte slice; real string starts here. + d.r.Track() + // Scan until scanner tells us end of string. + for step := strscan_normal; step != nil; { + majorByte, err := d.r.Readn1() + if err != nil { + return "", err + } + step, err = step(majorByte) + if err != nil { + return "", err + } + } + // Unread one. The scan loop consumed the trailing quote already, + // which we don't want to pass onto the parser. + d.r.Unreadn1() + // Parse! + s, ok := parseString(d.r.StopTrack()) + if !ok { + //return string(s), fmt.Errorf("string parse misc fail") + } + // Swallow the trailing quote again. + d.r.Readn1() + return string(s), nil +} + +// Scan steps are looped over the stream to find how long the string is. +// A nil step func is returned to indicate the string is done. +// Actually parsing the string is done by 'parseString()'. +type strscanStep func(c byte) (strscanStep, error) + +// The default string scanning step state. Starts here. +func strscan_normal(c byte) (strscanStep, error) { + if c == '"' { // done! + return nil, nil + } + if c == '\\' { + return strscan_esc, nil + } + if c < 0x20 { // Unprintable bytes are invalid in a json string. + return nil, fmt.Errorf("invalid unprintable byte in string literal: 0x%x", c) + } + return strscan_normal, nil +} + +// "esc" is the state after reading `"\` during a quoted string. +func strscan_esc(c byte) (strscanStep, error) { + switch c { + case 'b', 'f', 'n', 'r', 't', '\\', '/', '"': + return strscan_normal, nil + case 'u': + return strscan_escU, nil + } + return nil, fmt.Errorf("invalid byte in string escape sequence: 0x%x", c) +} + +// "escU" is the state after reading `"\u` during a quoted string. +func strscan_escU(c byte) (strscanStep, error) { + if '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' { + return strscan_escU1, nil + } + return nil, fmt.Errorf("invalid byte in \\u hexadecimal character escape: 0x%x", c) +} + +// "escU1" is the state after reading `"\u1` during a quoted string. +func strscan_escU1(c byte) (strscanStep, error) { + if '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' { + return strscan_escU12, nil + } + return nil, fmt.Errorf("invalid byte in \\u hexadecimal character escape: 0x%x", c) +} + +// "escU12" is the state after reading `"\u12` during a quoted string. +func strscan_escU12(c byte) (strscanStep, error) { + if '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' { + return strscan_escU123, nil + } + return nil, fmt.Errorf("invalid byte in \\u hexadecimal character escape: 0x%x", c) +} + +// "escU123" is the state after reading `"\u123` during a quoted string. +func strscan_escU123(c byte) (strscanStep, error) { + if '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' { + return strscan_normal, nil + } + return nil, fmt.Errorf("invalid byte in \\u hexadecimal character escape: 0x%x", c) +} + +// Convert a json string byte sequence that is a complete string (quotes from +// the outside dropped) bytes ready to be flipped into a go string. +func parseString(s []byte) (t []byte, ok bool) { + // Check for unusual characters. If there are none, + // then no unquoting is needed, so return a slice of the + // original bytes. + r := 0 + for r < len(s) { + c := s[r] + if c == '\\' || c == '"' || c < ' ' { + break + } + if c < utf8.RuneSelf { + r++ + continue + } + rr, size := utf8.DecodeRune(s[r:]) + if rr == utf8.RuneError && size == 1 { + break + } + r += size + } + if r == len(s) { + return s, true + } + + b := make([]byte, len(s)+2*utf8.UTFMax) + w := copy(b, s[0:r]) + for r < len(s) { + // Out of room? Can only happen if s is full of + // malformed UTF-8 and we're replacing each + // byte with RuneError. + if w >= len(b)-2*utf8.UTFMax { + nb := make([]byte, (len(b)+utf8.UTFMax)*2) + copy(nb, b[0:w]) + b = nb + } + switch c := s[r]; { + case c == '\\': + r++ + if r >= len(s) { + return + } + switch s[r] { + default: + return + case '"', '\\', '/', '\'': + b[w] = s[r] + r++ + w++ + case 'b': + b[w] = '\b' + r++ + w++ + case 'f': + b[w] = '\f' + r++ + w++ + case 'n': + b[w] = '\n' + r++ + w++ + case 'r': + b[w] = '\r' + r++ + w++ + case 't': + b[w] = '\t' + r++ + w++ + case 'u': + r-- + rr := getu4(s[r:]) + if rr < 0 { + return + } + r += 6 + if utf16.IsSurrogate(rr) { + rr1 := getu4(s[r:]) + if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar { + // A valid pair; consume. + r += 6 + w += utf8.EncodeRune(b[w:], dec) + break + } + // Invalid surrogate; fall back to replacement rune. + rr = unicode.ReplacementChar + } + w += utf8.EncodeRune(b[w:], rr) + } + + // Quote, control characters are invalid. + case c == '"', c < ' ': + return + + // ASCII + case c < utf8.RuneSelf: + b[w] = c + r++ + w++ + + // Coerce to well-formed UTF-8. + default: + rr, size := utf8.DecodeRune(s[r:]) + r += size + w += utf8.EncodeRune(b[w:], rr) + } + } + return b[0:w], true +} + +// getu4 decodes \uXXXX from the beginning of s, returning the hex value, +// or it returns -1. +func getu4(s []byte) rune { + if len(s) < 6 || s[0] != '\\' || s[1] != 'u' { + return -1 + } + r, err := strconv.ParseUint(string(s[2:6]), 16, 64) + if err != nil { + return -1 + } + return rune(r) +} + +// Returns *either* an int or a float -- json is ambigous. +// An int is preferred if possible. +func (d *Decoder) decodeNumber(majorByte byte) (tok.TokenType, int64, float64, error) { + // First byte has already been eaten. + // Easiest to unread1, so we can use track, then swallow it again. + d.r.Unreadn1() + d.r.Track() + d.r.Readn1() + // Scan until scanner tells us end of numeric. + // Pick the first scanner stepfunc based on the leading byte. + var step numscanStep + switch majorByte { + case '-': + step = numscan_neg + case '0': + step = numscan_0 + case '1', '2', '3', '4', '5', '6', '7', '8', '9': + step = numscan_1 + default: + panic("unreachable") + } + for { + b, err := d.r.Readn1() + if err == io.EOF { + break + } + if err != nil { + return 0, 0, 0, err + } + step, err = step(b) + if step == nil { + // Unread one. The scan loop consumed one char beyond the end + // (this is necessary in json!), + // which the next part of the decoder will need elsewhere. + d.r.Unreadn1() + break + } + if err != nil { + return 0, 0, 0, err + } + } + // Parse! + // *This is not a fast parse*. + // Try int first; if it fails try float; if that fails return the float error. + s := string(d.r.StopTrack()) + if i, err := strconv.ParseInt(s, 10, 64); err == nil { + return tok.TInt, i, 0, nil + } + f, err := strconv.ParseFloat(s, 64) + return tok.TFloat64, 0, f, err +} + +// Scan steps are looped over the stream to find how long the number is. +// A nil step func is returned to indicate the string is done. +// Actually parsing the string is done by 'parseString()'. +type numscanStep func(c byte) (numscanStep, error) + +// numscan_neg is the state after reading `-` during a number. +func numscan_neg(c byte) (numscanStep, error) { + if c == '0' { + return numscan_0, nil + } + if '1' <= c && c <= '9' { + return numscan_1, nil + } + return nil, fmt.Errorf("invalid byte in numeric literal: 0x%x", c) +} + +// numscan_1 is the state after reading a non-zero integer during a number, +// such as after reading `1` or `100` but not `0`. +func numscan_1(c byte) (numscanStep, error) { + if '0' <= c && c <= '9' { + return numscan_1, nil + } + return numscan_0(c) +} + +// numscan_0 is the state after reading `0` during a number. +func numscan_0(c byte) (numscanStep, error) { + if c == '.' { + return numscan_dot, nil + } + if c == 'e' || c == 'E' { + return numscan_e, nil + } + return nil, nil +} + +// numscan_dot is the state after reading the integer and decimal point in a number, +// such as after reading `1.`. +func numscan_dot(c byte) (numscanStep, error) { + if '0' <= c && c <= '9' { + return numscan_dot0, nil + } + return nil, fmt.Errorf("invalid byte after decimal in numeric literal: 0x%x", c) +} + +// numscan_dot0 is the state after reading the integer, decimal point, and subsequent +// digits of a number, such as after reading `3.14`. +func numscan_dot0(c byte) (numscanStep, error) { + if '0' <= c && c <= '9' { + return numscan_dot0, nil + } + if c == 'e' || c == 'E' { + return numscan_e, nil + } + return nil, nil +} + +// numscan_e is the state after reading the mantissa and e in a number, +// such as after reading `314e` or `0.314e`. +func numscan_e(c byte) (numscanStep, error) { + if c == '+' || c == '-' { + return numscan_eSign, nil + } + return numscan_eSign(c) +} + +// numscan_eSign is the state after reading the mantissa, e, and sign in a number, +// such as after reading `314e-` or `0.314e+`. +func numscan_eSign(c byte) (numscanStep, error) { + if '0' <= c && c <= '9' { + return numscan_e0, nil + } + return nil, fmt.Errorf("invalid byte in exponent of numeric literal: 0x%x", c) +} + +// numscan_e0 is the state after reading the mantissa, e, optional sign, +// and at least one digit of the exponent in a number, +// such as after reading `314e-2` or `0.314e+1` or `3.14e0`. +func numscan_e0(c byte) (numscanStep, error) { + if '0' <= c && c <= '9' { + return numscan_e0, nil + } + return nil, nil +} diff --git a/vendor/github.com/polydawn/refmt/json/jsonEncoder.go b/vendor/github.com/polydawn/refmt/json/jsonEncoder.go new file mode 100644 index 00000000..8783b381 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonEncoder.go @@ -0,0 +1,218 @@ +package json + +import ( + "fmt" + "io" + "strconv" + + . "github.com/polydawn/refmt/tok" +) + +func NewEncoder(wr io.Writer, cfg EncodeOptions) *Encoder { + return &Encoder{ + wr: wr, + cfg: cfg, + stack: make([]phase, 0, 10), + } +} + +func (d *Encoder) Reset() { + d.stack = d.stack[0:0] + d.current = phase_anyExpectValue + d.some = false +} + +/* + A json.Encoder is a TokenSink implementation that emits json bytes. +*/ +type Encoder struct { + wr io.Writer + cfg EncodeOptions + + // Stack, tracking how many array and map opens are outstanding. + // (Values are only 'phase_mapExpectKeyOrEnd' and 'phase_arrExpectValueOrEnd'.) + stack []phase + current phase // shortcut to value at end of stack + some bool // set to true after first value in any context; use to append commas. + + // Spare memory, for use in operations on leaf nodes (e.g. temp space for an int serialization). + scratch [64]byte +} + +type phase int + +const ( + phase_anyExpectValue phase = iota + phase_mapExpectKeyOrEnd + phase_mapExpectValue + phase_arrExpectValueOrEnd +) + +func (d *Encoder) Step(tok *Token) (done bool, err error) { + switch d.current { + case phase_anyExpectValue: + switch tok.Type { + case TMapOpen: + d.pushPhase(phase_mapExpectKeyOrEnd) + d.wr.Write(wordMapOpen) + return false, nil + case TArrOpen: + d.pushPhase(phase_arrExpectValueOrEnd) + d.wr.Write(wordArrOpen) + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of value") + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of value") + default: + // It's a value; handle it. + d.flushValue(tok) + return true, nil + } + case phase_mapExpectKeyOrEnd: + switch tok.Type { + case TMapOpen: + return true, fmt.Errorf("unexpected mapOpen; expected start of key or end of map") + case TArrOpen: + return true, fmt.Errorf("unexpected arrOpen; expected start of key or end of map") + case TMapClose: + if d.some { + d.wr.Write(d.cfg.Line) + for i := 1; i < len(d.stack); i++ { + d.wr.Write(d.cfg.Indent) + } + } + d.wr.Write(wordMapClose) + return d.popPhase() + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of key or end of map") + default: + // It's a key. It'd better be a string. + switch tok.Type { + case TString: + d.entrySep() + d.emitString(tok.Str) + d.wr.Write(wordColon) + if d.cfg.Line != nil { + d.wr.Write(wordSpace) + } + d.current = phase_mapExpectValue + return false, nil + default: + return true, fmt.Errorf("unexpected token of type %T; expected map key", *tok) + } + } + case phase_mapExpectValue: + switch tok.Type { + case TMapOpen: + d.pushPhase(phase_mapExpectKeyOrEnd) + d.wr.Write(wordMapOpen) + return false, nil + case TArrOpen: + d.pushPhase(phase_arrExpectValueOrEnd) + d.wr.Write(wordArrOpen) + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of value") + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of value") + default: + // It's a value; handle it. + d.flushValue(tok) + d.current = phase_mapExpectKeyOrEnd + return false, nil + } + case phase_arrExpectValueOrEnd: + switch tok.Type { + case TMapOpen: + d.entrySep() + d.pushPhase(phase_mapExpectKeyOrEnd) + d.wr.Write(wordMapOpen) + return false, nil + case TArrOpen: + d.entrySep() + d.pushPhase(phase_arrExpectValueOrEnd) + d.wr.Write(wordArrOpen) + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of value or end of array") + case TArrClose: + if d.some { + d.wr.Write(d.cfg.Line) + for i := 1; i < len(d.stack); i++ { + d.wr.Write(d.cfg.Indent) + } + } + d.wr.Write(wordArrClose) + return d.popPhase() + default: + // It's a value; handle it. + d.entrySep() + d.flushValue(tok) + return false, nil + } + default: + panic("Unreachable") + } +} + +func (d *Encoder) pushPhase(p phase) { + d.current = p + d.stack = append(d.stack, d.current) + d.some = false +} + +// Pop a phase from the stack; return 'true' if stack now empty. +func (d *Encoder) popPhase() (bool, error) { + n := len(d.stack) - 1 + if n == 0 { + d.wr.Write(d.cfg.Line) + return true, nil + } + if n < 0 { // the state machines are supposed to have already errored better + panic("jsonEncoder stack overpopped") + } + d.current = d.stack[n-1] + d.stack = d.stack[0:n] + d.some = true + return false, nil +} + +// Emit an entry separater (comma), unless we're at the start of an object. +// Mark that we *do* have some content, regardless, so next time will need a sep. +func (d *Encoder) entrySep() { + if d.some { + d.wr.Write(wordComma) + } + d.some = true + d.wr.Write(d.cfg.Line) + for i := 0; i < len(d.stack); i++ { + d.wr.Write(d.cfg.Indent) + } +} + +func (d *Encoder) flushValue(tok *Token) { + switch tok.Type { + case TString: + d.emitString(tok.Str) + case TBool: + switch tok.Bool { + case true: + d.wr.Write(wordTrue) + case false: + d.wr.Write(wordFalse) + } + case TInt: + b := strconv.AppendInt(d.scratch[:0], tok.Int, 10) + d.wr.Write(b) + case TNull: + d.wr.Write(wordNull) + default: + panic(fmt.Errorf("TODO finish more jsonEncoder primitives support: unhandled token %s", tok)) + } +} + +func (d *Encoder) writeByte(b byte) { + d.scratch[0] = b + d.wr.Write(d.scratch[0:1]) +} diff --git a/vendor/github.com/polydawn/refmt/json/jsonEncoderTerminals.go b/vendor/github.com/polydawn/refmt/json/jsonEncoderTerminals.go new file mode 100644 index 00000000..2892875f --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonEncoderTerminals.go @@ -0,0 +1,78 @@ +package json + +import ( + "io" + "unicode/utf8" +) + +var hex = "0123456789abcdef" + +func (d *Encoder) emitString(s string) { + d.writeByte('"') + start := 0 + for i := 0; i < len(s); { + if b := s[i]; b < utf8.RuneSelf { + if 0x20 <= b && b != '\\' && b != '"' { + i++ + continue + } + if start < i { + d.wr.Write([]byte(s[start:i])) + } + switch b { + case '\\', '"': + d.writeByte('\\') + d.writeByte(b) + case '\n': + d.writeByte('\\') + d.writeByte('n') + case '\r': + d.writeByte('\\') + d.writeByte('r') + case '\t': + d.writeByte('\\') + d.writeByte('t') + default: + // This encodes bytes < 0x20 except for \t, \n and \r. + d.wr.Write([]byte(`\u00`)) + d.writeByte(hex[b>>4]) + d.writeByte(hex[b&0xF]) + } + i++ + start = i + continue + } + c, size := utf8.DecodeRuneInString(s[i:]) + if c == utf8.RuneError && size == 1 { + if start < i { + d.wr.Write([]byte(s[start:i])) + } + d.wr.Write([]byte(`\ufffd`)) + i += size + start = i + continue + } + // U+2028 is LINE SEPARATOR. + // U+2029 is PARAGRAPH SEPARATOR. + // They are both technically valid characters in JSON strings, + // but don't work in JSONP, which has to be evaluated as JavaScript, + // and can lead to security holes there. It is valid JSON to + // escape them, so we do so unconditionally. + // See http://timelessrepo.com/json-isnt-a-javascript-subset for discussion. + if c == '\u2028' || c == '\u2029' { + if start < i { + d.wr.Write([]byte(s[start:i])) + } + d.wr.Write([]byte(`\u202`)) + d.writeByte(hex[c&0xF]) + i += size + start = i + continue + } + i += size + } + if start < len(s) { + io.WriteString(d.wr, s[start:]) + } + d.writeByte('"') +} diff --git a/vendor/github.com/polydawn/refmt/json/jsonHelpers.go b/vendor/github.com/polydawn/refmt/json/jsonHelpers.go new file mode 100644 index 00000000..205dbe24 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonHelpers.go @@ -0,0 +1,106 @@ +package json + +import ( + "bytes" + "io" + + "github.com/polydawn/refmt/obj" + "github.com/polydawn/refmt/obj/atlas" + "github.com/polydawn/refmt/shared" +) + +// All of the methods in this file are exported, +// and their names and type declarations are intended to be +// identical to the naming and types of the golang stdlib +// 'encoding/json' packages, with ONE EXCEPTION: +// what stdlib calls "NewEncoder", we call "NewMarshaller"; +// what stdlib calls "NewDecoder", we call "NewUnmarshaller"; +// and similarly the types and methods are "Marshaller.Marshal" +// and "Unmarshaller.Unmarshal". +// You should be able to migrate with a sed script! +// +// (In refmt, the encoder/decoder systems are for token streams; +// if you're talking about object mapping, we consistently +// refer to that as marshalling/unmarshalling.) +// +// Most methods also have an "Atlased" variant, +// which lets you specify advanced type mapping instructions. + +func Marshal(v interface{}) ([]byte, error) { + var buf bytes.Buffer + if err := NewMarshaller(&buf).Marshal(v); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func MarshalAtlased(cfg EncodeOptions, v interface{}, atl atlas.Atlas) ([]byte, error) { + var buf bytes.Buffer + if err := NewMarshallerAtlased(&buf, cfg, atl).Marshal(v); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +type Marshaller struct { + marshaller *obj.Marshaller + encoder *Encoder + pump shared.TokenPump +} + +func (x *Marshaller) Marshal(v interface{}) error { + x.marshaller.Bind(v) + x.encoder.Reset() + return x.pump.Run() +} + +func NewMarshaller(wr io.Writer) *Marshaller { + return NewMarshallerAtlased(wr, EncodeOptions{}, atlas.MustBuild()) +} + +func NewMarshallerAtlased(wr io.Writer, cfg EncodeOptions, atl atlas.Atlas) *Marshaller { + x := &Marshaller{ + marshaller: obj.NewMarshaller(atl), + encoder: NewEncoder(wr, cfg), + } + x.pump = shared.TokenPump{ + x.marshaller, + x.encoder, + } + return x +} + +func Unmarshal(data []byte, v interface{}) error { + return NewUnmarshaller(bytes.NewBuffer(data)).Unmarshal(v) +} + +func UnmarshalAtlased(data []byte, v interface{}, atl atlas.Atlas) error { + return NewUnmarshallerAtlased(bytes.NewBuffer(data), atl).Unmarshal(v) +} + +type Unmarshaller struct { + unmarshaller *obj.Unmarshaller + decoder *Decoder + pump shared.TokenPump +} + +func (x *Unmarshaller) Unmarshal(v interface{}) error { + x.unmarshaller.Bind(v) + x.decoder.Reset() + return x.pump.Run() +} + +func NewUnmarshaller(r io.Reader) *Unmarshaller { + return NewUnmarshallerAtlased(r, atlas.MustBuild()) +} +func NewUnmarshallerAtlased(r io.Reader, atl atlas.Atlas) *Unmarshaller { + x := &Unmarshaller{ + unmarshaller: obj.NewUnmarshaller(atl), + decoder: NewDecoder(r), + } + x.pump = shared.TokenPump{ + x.decoder, + x.unmarshaller, + } + return x +} diff --git a/vendor/github.com/polydawn/refmt/json/jsonOptions.go b/vendor/github.com/polydawn/refmt/json/jsonOptions.go new file mode 100644 index 00000000..6a9b69c3 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/json/jsonOptions.go @@ -0,0 +1,23 @@ +package json + +type EncodeOptions struct { + // If set, this will be prefixed to every "line" to pretty-print. + // (Typically you want to just set this to `[]byte{'\n'}`!) + Line []byte + + // If set, this will be prefixed $N$ times before each line's content to pretty-print. + // (Likely values are a tab, or a few spaces.) + Indent []byte +} + +// marker method -- you may use this type to instruct `refmt.Marshal` +// what kind of encoder to use. +func (EncodeOptions) IsEncodeOptions() {} + +type DecodeOptions struct { + // future: options to validate canonical serial order +} + +// marker method -- you may use this type to instruct `refmt.Marshal` +// what kind of encoder to use. +func (DecodeOptions) IsDecodeOptions() {} diff --git a/vendor/github.com/polydawn/refmt/marshalHelpers.go b/vendor/github.com/polydawn/refmt/marshalHelpers.go new file mode 100644 index 00000000..dcd4df06 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/marshalHelpers.go @@ -0,0 +1,61 @@ +package refmt + +import ( + "io" + + "github.com/polydawn/refmt/cbor" + "github.com/polydawn/refmt/json" + "github.com/polydawn/refmt/obj/atlas" +) + +type EncodeOptions interface { + IsEncodeOptions() // marker method. +} + +func Marshal(opts EncodeOptions, v interface{}) ([]byte, error) { + switch o2 := opts.(type) { + case json.EncodeOptions: + return json.MarshalAtlased(o2, v, atlas.MustBuild()) + case cbor.EncodeOptions: + return cbor.MarshalAtlased(v, atlas.MustBuild()) + default: + panic("incorrect usage: unknown EncodeOptions type") + } +} + +func MarshalAtlased(opts EncodeOptions, v interface{}, atl atlas.Atlas) ([]byte, error) { + switch o2 := opts.(type) { + case json.EncodeOptions: + return json.MarshalAtlased(o2, v, atl) + case cbor.EncodeOptions: + return cbor.MarshalAtlased(v, atl) + default: + panic("incorrect usage: unknown EncodeOptions type") + } +} + +type Marshaller interface { + Marshal(v interface{}) error +} + +func NewMarshaller(opts EncodeOptions, wr io.Writer) Marshaller { + switch o2 := opts.(type) { + case json.EncodeOptions: + return json.NewMarshallerAtlased(wr, o2, atlas.MustBuild()) + case cbor.EncodeOptions: + return cbor.NewMarshaller(wr) + default: + panic("incorrect usage: unknown EncodeOptions type") + } +} + +func NewMarshallerAtlased(opts EncodeOptions, wr io.Writer, atl atlas.Atlas) Marshaller { + switch o2 := opts.(type) { + case json.EncodeOptions: + return json.NewMarshallerAtlased(wr, o2, atl) + case cbor.EncodeOptions: + return cbor.NewMarshallerAtlased(wr, atl) + default: + panic("incorrect usage: unknown EncodeOptions type") + } +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/atlas.go b/vendor/github.com/polydawn/refmt/obj/atlas/atlas.go new file mode 100644 index 00000000..f96b4cb1 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/atlas.go @@ -0,0 +1,79 @@ +package atlas + +import ( + "fmt" + "reflect" +) + +type Atlas struct { + // Map typeinfo to a static description of how that type should be handled. + // (The internal machinery that will wield this information, and has memory of + // progress as it does so, is configured using the AtlasEntry, but allocated separately. + // The machinery is stateful and mutable; the AtlasEntry is not.) + // + // We use 'var rtid uintptr = reflect.ValueOf(rt).Pointer()' -- pointer of the + // value of the reflect.Type info -- as an index. + // This is both unique and correctly converges when recomputed, and much + // faster to compare against than reflect.Type (which is an interface that + // tends to contain fairly large structures). + mappings map[uintptr]*AtlasEntry + + // Mapping of tag ints to atlasEntry for quick lookups when the + // unmarshaller hits a tag. Values are a subset of `mappings`. + tagMappings map[int]*AtlasEntry + + // MapMorphism specifies the default map sorting scheme + defaultMapMorphism *MapMorphism +} + +func Build(entries ...*AtlasEntry) (Atlas, error) { + atl := Atlas{ + mappings: make(map[uintptr]*AtlasEntry), + tagMappings: make(map[int]*AtlasEntry), + defaultMapMorphism: &MapMorphism{KeySortMode_Default}, + } + for _, entry := range entries { + rtid := reflect.ValueOf(entry.Type).Pointer() + if _, exists := atl.mappings[rtid]; exists { + return Atlas{}, fmt.Errorf("repeated entry for type %v", entry.Type) + } + atl.mappings[rtid] = entry + + if entry.Tagged == true { + if prev, exists := atl.tagMappings[entry.Tag]; exists { + return Atlas{}, fmt.Errorf("repeated tag %v on type %v (already mapped to type %v)", entry.Tag, entry.Type, prev.Type) + } + atl.tagMappings[entry.Tag] = entry + } + } + return atl, nil +} +func MustBuild(entries ...*AtlasEntry) Atlas { + atl, err := Build(entries...) + if err != nil { + panic(err) + } + return atl +} + +func (atl Atlas) WithMapMorphism(m MapMorphism) Atlas { + atl.defaultMapMorphism = &m + return atl +} + +// Gets the AtlasEntry for a typeID. Used by obj package, not meant for user facing. +func (atl Atlas) Get(rtid uintptr) (*AtlasEntry, bool) { + ent, ok := atl.mappings[rtid] + return ent, ok +} + +// Gets the AtlasEntry for a tag int. Used by obj package, not meant for user facing. +func (atl Atlas) GetEntryByTag(tag int) (*AtlasEntry, bool) { + ent, ok := atl.tagMappings[tag] + return ent, ok +} + +// Gets the default map morphism config. Used by obj package, not meant for user facing. +func (atl Atlas) GetDefaultMapMorphism() *MapMorphism { + return atl.defaultMapMorphism +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/atlasCommon.go b/vendor/github.com/polydawn/refmt/obj/atlas/atlasCommon.go new file mode 100644 index 00000000..611481b2 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/atlasCommon.go @@ -0,0 +1,10 @@ +package atlas + +// A type to enumerate key sorting modes. +type KeySortMode string + +const ( + KeySortMode_Default = KeySortMode("default") // the default mode -- for structs, this is the source-order of the fields; for maps, it's identify to "strings" sort mode. + KeySortMode_Strings = KeySortMode("strings") // lexical sort by strings. this *is* the default for maps; it overrides source-order sorting for structs. + KeySortMode_RFC7049 = KeySortMode("rfc7049") // "Canonical" as proposed by rfc7049 § 3.9 (shorter byte sequences sort to top). +) diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/atlasEntry.go b/vendor/github.com/polydawn/refmt/obj/atlas/atlasEntry.go new file mode 100644 index 00000000..4c3ee457 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/atlasEntry.go @@ -0,0 +1,150 @@ +package atlas + +import ( + "reflect" +) + +/* + The AtlasEntry is a declarative roadmap of what we should do for + marshal and unmarshal of a single object, keyed by type. + + There are a lot of paths your mappings might want to take: + + - For a struct type, you may simply want to specify some alternate keys, or some to leave out, etc. + - For an interface type, you probably want to specify one of our interface muxing strategies + with a mapping between enumstr:typeinfo (and, what to do if we get a struct we don't recognize). + - For a string, int, or other primitive, you don't need to say anything: defaults will DTRT. + - For a typedef'd string, int, or other primitive, you *still* don't need to say anything: but, + if you want custom behavior (say, transform the string to an int at the last second, and back again), + you can specify transformer functions for that. + - For a struct type that you want to turn into a whole different kind (like a string): use + those same transform functions. (You'll no longer need a FieldMap.) + - For the most esoteric needs, you can fall all the way back to providing a custom MarshalMachine + (but avoid that; it's a lot of work, and one of these other transform methods should suffice). +*/ +type AtlasEntry struct { + // The reflect info of the type this morphism is regarding. + Type reflect.Type + + // -------------------------------------------------------- + // The big escape valves: wanna map to some other kind completely? + // -------------------------------------------------------- + + // Transforms the value we reached by walking (the 'live' value -- which + // must be of `this.Type`) into another value (the 'serialable' value -- + // which will be of `this.MarshalTransformTargetType`). + // + // The target type may be anything, even of a completely different Kind! + // + // This transform func runs first, then the resulting value is + // serialized (by running through the path through Atlas again, so + // chaining of transform funcs is supported, though not recommended). + MarshalTransformFunc MarshalTransformFunc + // The type of value we expect after using the MarshalTransformFunc. + // + // The match between transform func and target type should be checked + // during construction of this AtlasEntry. + MarshalTransformTargetType reflect.Type + + // Expects a different type (the 'serialable' value -- which will be of + // 'this.UnmarshalTransformTargetType') than the value we reached by + // walking (the 'live' value -- which must be of `this.Type`). + // + // The target type may be anything, even of a completely different Kind! + // + // The unmarshal of that target type will be run first, then the + // resulting value is fed through this function to produce the real value, + // which is then placed correctly into bigger mid-unmarshal object tree. + // + // For non-primitives, unmarshal of the target type will always target + // an empty pointer or empty slice, roughly as per if it was + // operating on a value produced by `TargetType.New()`. + UnmarshalTransformFunc UnmarshalTransformFunc + // The type of value we will manufacture an instance of and unmarshal + // into, then when done provide to the UnmarshalTransformFunc. + // + // The match between transform func and target type should be checked + // during construction of this AtlasEntry. + UnmarshalTransformTargetType reflect.Type + + // -------------------------------------------------------- + // Standard options for how to map (varies by Kind) + // -------------------------------------------------------- + + // A "tag" to emit when marshalling this type of value; + // and when unmarshalling, this tag will cause unmarshal to pick + // this atlas (and if there's conflicting type info, error). + Tag int + // Flag for whether the Tag feature should be used (zero is a valid tag). + Tagged bool + + // A mapping of fields in a struct to serial keys. + // Only valid if `this.Type.Kind() == Struct`. + StructMap *StructMap + + // Configuration for how to traverse a map kind. + // Only valid if `this.Type.Kind() == Map`. + MapMorphism *MapMorphism + + // Configuration for how to pick concrete types to fill a union interface. + // Only valid if `this.Type.Kind() == Interface`. + UnionKeyedMorphism *UnionKeyedMorphism + + // FUTURE: enum-ish primitives, multiplexers for interfaces, + // lots of such things will belong here. + + // -------------------------------------------------------- + // Hooks, validate helpers + // -------------------------------------------------------- + + // A validation function which will be called for the whole value + // after unmarshalling reached the end of the object. + // If it returns an error, the entire unmarshal will error. + // + // Not used in marshalling. + // Not reachable if an UnmarshalTransform is set. + ValidateFn func(v interface{}) error +} + +func BuildEntry(typeHintObj interface{}) *BuilderCore { + rt := reflect.TypeOf(typeHintObj) + if rt.Kind() == reflect.Ptr { + if rt.Elem().Kind() == reflect.Interface { + rt = rt.Elem() + } else { + panic("invalid atlas build: use the bare object, not a pointer (refmt will handle pointers automatically)") + } + } + return &BuilderCore{ + &AtlasEntry{Type: rt}, + } +} + +/* + Intermediate step in building an AtlasEntry: use `BuildEntry` to + get one of these to start with, then call one of the methods + on this type to get a specialized builder which has the methods + relevant for setting up that specific kind of mapping. + + One full example of using this builder may look like the following: + + atlas.BuildEntry(Formula{}).StructMap().Autogenerate().Complete() + + Some intermediate manipulations may be performed on this object, + for example setting the "tag" (if you want to use cbor tagging), + before calling the specializer method. + In this case, just keep chaining the configuration calls like so: + + atlas.BuildEntry(Formula{}).UseTag(4000) + .StructMap().Autogenerate().Complete() + +*/ +type BuilderCore struct { + entry *AtlasEntry +} + +func (x *BuilderCore) UseTag(tag int) *BuilderCore { + x.entry.Tagged = true + x.entry.Tag = tag + return x +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/doc.go b/vendor/github.com/polydawn/refmt/obj/atlas/doc.go new file mode 100644 index 00000000..52e6ddb2 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/doc.go @@ -0,0 +1,45 @@ +/* + Atlas types are used to define how to map Go values into refmt token streams. + + Atlas information may be autogenerated based on struct tags automatically, + but you can also specify custom AtlasEntry info to use advanced features + and define custom transformations. + + An Atlas is a collection of AtlasEntry (plus some internal indexing). + Typical usage is to declare an AtlasEntry for your structs (often near by the + struct definition), then + + Building an AtlasEntry for some type called `Formula` looks like this: + + atlas.BuildEntry(Formula{}).StructMap().Autogenerate().Complete() + + Building an AtlasEntry always starts with `atlas.BuildEntry(x)` where `x` is + a dummy object used to convey type information. + The next function in the chain declares what kind of behavior we're going + to use to turn that type of object into its serial form. + (In the above example, we're declaring that we want refmt to see the `Formula` + type as a struct and traverse its fields. There are many other options!) + Subsequent functions are specific to what kind of walking and mapping we've + chosen. For struct walking, this may involve declaring fields and custom serial + names to map them to; for a "Transform" we'd instead have to provide callbacks + to do the transformation from the `Formula` type to some other type; etcetera. + The final function in the chain is always called `Complete`, and returns + a ready-to-use AtlasEntry. + + Building a complete Atlas for a whole suite of serializable types is as + easy as putting a bunch of them together: + + atlas.Build( + atlas.BuildEntry(Foo{}).StructMap().Autogenerate().Complete(), + atlas.BuildEntry(Bar{}).StructMap().Autogenerate().Complete(), + atlas.BuildEntry(Baz{}).StructMap().Autogenerate().Complete(), + ) + + You can put your entire protocol into one Atlas. + It's also possible to build several different Atlases each with different + sets of AtlasEntry. This may be useful if you have a protocol where some + messages are not valid during some phases of communication, and you would + like to use the Atlas as a form of whitelisting for what can be + marshalled/unmarshalled. +*/ +package atlas diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/errors.go b/vendor/github.com/polydawn/refmt/obj/atlas/errors.go new file mode 100644 index 00000000..48fe37f7 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/errors.go @@ -0,0 +1,14 @@ +package atlas + +// Error type raised when initializing an Atlas, and field entries do +// not resolve against the type. +// (If you recently refactored names of fields in your types, check +// to make sure you updated any references to those fields by name to match!) +type ErrStructureMismatch struct { + TypeName string + Reason string +} + +func (e ErrStructureMismatch) Error() string { + return "structure mismatch: " + e.TypeName + " " + e.Reason +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/mapMorphism.go b/vendor/github.com/polydawn/refmt/obj/atlas/mapMorphism.go new file mode 100644 index 00000000..b5602cdc --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/mapMorphism.go @@ -0,0 +1,38 @@ +package atlas + +import ( + "fmt" + "reflect" +) + +type MapMorphism struct { + KeySortMode KeySortMode +} + +func (x *BuilderCore) MapMorphism() *BuilderMapMorphism { + if x.entry.Type.Kind() != reflect.Map { + panic(fmt.Errorf("cannot use mapMorphism for type %q, which is kind %s", x.entry.Type, x.entry.Type.Kind())) + } + x.entry.MapMorphism = &MapMorphism{ + KeySortMode_Default, + } + return &BuilderMapMorphism{x.entry} +} + +type BuilderMapMorphism struct { + entry *AtlasEntry +} + +func (x *BuilderMapMorphism) Complete() *AtlasEntry { + return x.entry +} + +func (x *BuilderMapMorphism) SetKeySortMode(km KeySortMode) *BuilderMapMorphism { + switch km { + case KeySortMode_Default, KeySortMode_Strings, KeySortMode_RFC7049: + x.entry.MapMorphism.KeySortMode = km + default: + panic(fmt.Errorf("invalid key sort mode %q", km)) + } + return x +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/structMap.go b/vendor/github.com/polydawn/refmt/obj/atlas/structMap.go new file mode 100644 index 00000000..0ede93c9 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/structMap.go @@ -0,0 +1,46 @@ +package atlas + +import "reflect" + +type StructMap struct { + // A slice of descriptions of each field in the type. + // Each entry specifies the name by which each field should be referenced + // when serialized, and defines a way to get an address to the field. + Fields []StructMapEntry +} + +type StructMapEntry struct { + // The field name; will be emitted as token during marshal, and used for + // lookup during unmarshal. Required. + SerialName string + + // If true, a key token with this SerialName will be ignored during unmarshal. + // (By default, if there's no StructMapEntry for a key token, it's an error.) + // If true, the ReflectRoute, Type, etc fields are irrelevant and may be nil. + Ignore bool + + ReflectRoute ReflectRoute // reflection generates these. + Type reflect.Type // type to expect on the far side of the ReflectRoute. + tagged bool // used during autogen. + + // Theoretical feature which would be alternative to ReflectRoute. Support dropped for the moment. + //addrFunc func(interface{}) interface{} // custom user function. + + // If true, marshalling will skip this field if it's the zero value. + OmitEmpty bool +} + +type ReflectRoute []int + +func (rr ReflectRoute) TraverseToValue(v reflect.Value) reflect.Value { + for _, i := range rr { + if v.Kind() == reflect.Ptr { + if v.IsNil() { + return reflect.Value{} + } + v = v.Elem() + } + v = v.Field(i) + } + return v +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/structMapAutogen.go b/vendor/github.com/polydawn/refmt/obj/atlas/structMapAutogen.go new file mode 100644 index 00000000..32fb57cc --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/structMapAutogen.go @@ -0,0 +1,320 @@ +package atlas + +import ( + "fmt" + "reflect" + "sort" + "strings" + "unicode" +) + +func AutogenerateStructMapEntry(rt reflect.Type) *AtlasEntry { + return AutogenerateStructMapEntryUsingTags(rt, "refmt", KeySortMode_Default) +} + +func AutogenerateStructMapEntryUsingTags(rt reflect.Type, tagName string, sorter KeySortMode) *AtlasEntry { + if rt.Kind() != reflect.Struct { + panic(fmt.Errorf("cannot use structMap for type %q, which is kind %s", rt, rt.Kind())) + } + entry := &AtlasEntry{ + Type: rt, + StructMap: &StructMap{Fields: exploreFields(rt, tagName, sorter)}, + } + return entry +} + +// exploreFields returns a list of fields that StructAtlas should recognize for the given type. +// The algorithm is breadth-first search over the set of structs to include - the top struct +// and then any reachable anonymous structs. +func exploreFields(rt reflect.Type, tagName string, sorter KeySortMode) []StructMapEntry { + // Anonymous fields to explore at the current level and the next. + current := []StructMapEntry{} + next := []StructMapEntry{{Type: rt}} + + // Count of queued names for current level and the next. + count := map[reflect.Type]int{} + nextCount := map[reflect.Type]int{} + + // Types already visited at an earlier level. + visited := map[reflect.Type]bool{} + + // Fields found. + var fields []StructMapEntry + + for len(next) > 0 { + current, next = next, current[:0] + count, nextCount = nextCount, map[reflect.Type]int{} + + for _, f := range current { + if visited[f.Type] { + continue + } + visited[f.Type] = true + + // Scan f.Type for fields to include. + for i := 0; i < f.Type.NumField(); i++ { + sf := f.Type.Field(i) + if sf.PkgPath != "" && !sf.Anonymous { // unexported + continue + } + tag := sf.Tag.Get(tagName) + if tag == "-" { + continue + } + name, opts := parseTag(tag) + if !isValidTag(name) { + name = "" + } + route := make([]int, len(f.ReflectRoute)+1) + copy(route, f.ReflectRoute) + route[len(f.ReflectRoute)] = i + + ft := sf.Type + if ft.Name() == "" && ft.Kind() == reflect.Ptr { + // Follow pointer. + ft = ft.Elem() + } + + // Record found field and index sequence. + if name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct { + tagged := name != "" + if name == "" { + name = downcaseFirstLetter(sf.Name) + } + fields = append(fields, StructMapEntry{ + SerialName: name, + ReflectRoute: route, + Type: sf.Type, + tagged: tagged, + OmitEmpty: opts.Contains("omitempty"), + }) + if count[f.Type] > 1 { + // If there were multiple instances, add a second, + // so that the annihilation code will see a duplicate. + // It only cares about the distinction between 1 or 2, + // so don't bother generating any more copies. + fields = append(fields, fields[len(fields)-1]) + } + continue + } + + // Record new anonymous struct to explore in next round. + nextCount[ft]++ + if nextCount[ft] == 1 { + next = append(next, StructMapEntry{ + ReflectRoute: route, + Type: ft, + }) + } + } + } + } + + sort.Sort(StructMapEntry_byName(fields)) + + // Delete all fields that are hidden by the Go rules for embedded fields, + // except that fields with JSON tags are promoted. + + // The fields are sorted in primary order of name, secondary order + // of field index length. Loop over names; for each name, delete + // hidden fields by choosing the one dominant field that survives. + out := fields[:0] + for advance, i := 0, 0; i < len(fields); i += advance { + // One iteration per name. + // Find the sequence of fields with the name of this first field. + fi := fields[i] + name := fi.SerialName + for advance = 1; i+advance < len(fields); advance++ { + fj := fields[i+advance] + if fj.SerialName != name { + break + } + } + if advance == 1 { // Only one field with this name + out = append(out, fi) + continue + } + dominant, ok := dominantField(fields[i : i+advance]) + if ok { + out = append(out, dominant) + } + } + + fields = out + switch sorter { + case KeySortMode_Default: + sort.Sort(StructMapEntry_byFieldRoute(fields)) + case KeySortMode_Strings: + //sort.Sort(StructMapEntry_byName(fields)) + // it's already in this order, though, so, pass + case KeySortMode_RFC7049: + sort.Sort(StructMapEntry_RFC7049(fields)) + default: + panic("invalid struct sorter option") + } + + return fields +} + +// If the first character of the string is uppercase, return a string +// where it is switched to lowercase. +// We use this to make go field names look more like what everyone else +// in the universe expects their json to look like by default: snakeCase. +func downcaseFirstLetter(s string) string { + if s == "" { + return "" + } + r := rune(s[0]) // if multibyte chars: you're left alone. + if !unicode.IsUpper(r) { + return s + } + return string(unicode.ToLower(r)) + s[1:] +} + +// dominantField looks through the fields, all of which are known to +// have the same name, to find the single field that dominates the +// others using Go's embedding rules, modified by the presence of +// JSON tags. If there are multiple top-level fields, the boolean +// will be false: This condition is an error in Go and we skip all +// the fields. +func dominantField(fields []StructMapEntry) (StructMapEntry, bool) { + // The fields are sorted in increasing index-length order. The winner + // must therefore be one with the shortest index length. Drop all + // longer entries, which is easy: just truncate the slice. + length := len(fields[0].ReflectRoute) + tagged := -1 // Index of first tagged field. + for i, f := range fields { + if len(f.ReflectRoute) > length { + fields = fields[:i] + break + } + if f.tagged { + if tagged >= 0 { + // Multiple tagged fields at the same level: conflict. + // Return no field. + return StructMapEntry{}, false + } + tagged = i + } + } + if tagged >= 0 { + return fields[tagged], true + } + // All remaining fields have the same length. If there's more than one, + // we have a conflict (two fields named "X" at the same level) and we + // return no field. + if len(fields) > 1 { + return StructMapEntry{}, false + } + return fields[0], true +} + +// StructMapEntry_byName sorts field by name, +// breaking ties with depth, +// then breaking ties with "name came from tag", +// then breaking ties with FieldRoute sequence. +type StructMapEntry_byName []StructMapEntry + +func (x StructMapEntry_byName) Len() int { return len(x) } +func (x StructMapEntry_byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x StructMapEntry_byName) Less(i, j int) bool { + if x[i].SerialName != x[j].SerialName { + return x[i].SerialName < x[j].SerialName + } + if len(x[i].ReflectRoute) != len(x[j].ReflectRoute) { + return len(x[i].ReflectRoute) < len(x[j].ReflectRoute) + } + if x[i].tagged != x[j].tagged { + return x[i].tagged + } + return StructMapEntry_byFieldRoute(x).Less(i, j) +} + +// StructMapEntry_RFC7049 sorts fields as specified in RFC7049, +type StructMapEntry_RFC7049 []StructMapEntry + +func (x StructMapEntry_RFC7049) Len() int { return len(x) } +func (x StructMapEntry_RFC7049) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x StructMapEntry_RFC7049) Less(i, j int) bool { + il, jl := len(x[i].SerialName), len(x[j].SerialName) + switch { + case il < jl: + return true + case il > jl: + return false + default: + return x[i].SerialName < x[j].SerialName + } +} + +// StructMapEntry_byFieldRoute sorts field by FieldRoute sequence +// (e.g., roughly source declaration order within each type). +type StructMapEntry_byFieldRoute []StructMapEntry + +func (x StructMapEntry_byFieldRoute) Len() int { return len(x) } +func (x StructMapEntry_byFieldRoute) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x StructMapEntry_byFieldRoute) Less(i, j int) bool { + for k, xik := range x[i].ReflectRoute { + if k >= len(x[j].ReflectRoute) { + return false + } + if xik != x[j].ReflectRoute[k] { + return xik < x[j].ReflectRoute[k] + } + } + return len(x[i].ReflectRoute) < len(x[j].ReflectRoute) +} + +// tagOptions is the string following a comma in a struct field's +// tag, or the empty string. It does not include the leading comma. +type tagOptions string + +// parseTag splits a struct field's tag into its name and +// comma-separated options. +func parseTag(tag string) (string, tagOptions) { + if idx := strings.Index(tag, ","); idx != -1 { + return tag[:idx], tagOptions(tag[idx+1:]) + } + return tag, tagOptions("") +} + +// Contains reports whether a comma-separated list of options +// contains a particular substr flag. substr must be surrounded by a +// string boundary or commas. +func (o tagOptions) Contains(optionName string) bool { + if len(o) == 0 { + return false + } + s := string(o) + for s != "" { + var next string + i := strings.Index(s, ",") + if i >= 0 { + s, next = s[:i], s[i+1:] + } + if s == optionName { + return true + } + s = next + } + return false +} + +func isValidTag(s string) bool { + if s == "" { + return false + } + for _, c := range s { + switch { + case strings.ContainsRune("!#$%&()*+-./:<=>?@[]^_{|}~ ", c): + // Backslash and quote chars are reserved, but + // otherwise any punctuation chars are allowed + // in a tag name. + default: + if !unicode.IsLetter(c) && !unicode.IsDigit(c) { + return false + } + } + } + return true +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/structMapBuilding.go b/vendor/github.com/polydawn/refmt/obj/atlas/structMapBuilding.go new file mode 100644 index 00000000..1c9fd32e --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/structMapBuilding.go @@ -0,0 +1,96 @@ +package atlas + +import ( + "fmt" + "reflect" + "strings" +) + +func (x *BuilderCore) StructMap() *BuilderStructMap { + if x.entry.Type.Kind() != reflect.Struct { + panic(fmt.Errorf("cannot use structMap for type %q, which is kind %s", x.entry.Type, x.entry.Type.Kind())) + } + x.entry.StructMap = &StructMap{} + return &BuilderStructMap{x.entry} +} + +type BuilderStructMap struct { + entry *AtlasEntry +} + +func (x *BuilderStructMap) Complete() *AtlasEntry { + return x.entry +} + +/* + Add a field to the mapping based on its name. + + Given a struct: + + struct{ + X int + Y struct{ Z int } + } + + `AddField("X", {"x", ...}) will cause that field to be serialized as key "x"; + `AddField("Y.Z", {"z", ...})` will cause that *nested* field to be serialized + as key "z" in the same object (e.g. "x" and "z" will be siblings). + + Returns the mutated builder for convenient call chaining. + + If the fieldName string doesn't map onto the structure type info, + a panic will be raised. +*/ +func (x *BuilderStructMap) AddField(fieldName string, mapping StructMapEntry) *BuilderStructMap { + fieldNameSplit := strings.Split(fieldName, ".") + rr, rt, err := fieldNameToReflectRoute(x.entry.Type, fieldNameSplit) + if err != nil { + panic(err) // REVIEW: now that we have the builder obj, we could just curry these into it until 'Complete' is called (or, thus, 'MustComplete'!). + } + mapping.ReflectRoute = rr + mapping.Type = rt + x.entry.StructMap.Fields = append(x.entry.StructMap.Fields, mapping) + return x +} + +func (x *BuilderStructMap) IgnoreKey(serialKeyName string) *BuilderStructMap { + x.entry.StructMap.Fields = append(x.entry.StructMap.Fields, StructMapEntry{ + SerialName: serialKeyName, + Ignore: true, + }) + return x +} + +func fieldNameToReflectRoute(rt reflect.Type, fieldNameSplit []string) (rr ReflectRoute, _ reflect.Type, _ error) { + for _, fn := range fieldNameSplit { + rf, ok := rt.FieldByName(fn) + if !ok { + return nil, nil, ErrStructureMismatch{rt.Name(), "does not have field named " + fn} + } + rr = append(rr, rf.Index...) + rt = rf.Type + } + return rr, rt, nil +} + +/* + Automatically generate mappings by looking at the struct type info, + taking any hints from tags, and appending that to the builder. + + You may use autogeneration in concert with manually adding field mappings, + though if doing so be mindful not to map the same fields twice. +*/ +func (x *BuilderStructMap) Autogenerate() *BuilderStructMap { + autoEntry := AutogenerateStructMapEntry(x.entry.Type) + x.entry.StructMap.Fields = append(x.entry.StructMap.Fields, autoEntry.StructMap.Fields...) + return x +} + +/* + Automatically generate mappings using a given struct field sorting scheme +*/ +func (x *BuilderStructMap) AutogenerateWithSortingScheme(sorting KeySortMode) *BuilderStructMap { + autoEntry := AutogenerateStructMapEntryUsingTags(x.entry.Type, "refmt", sorting) + x.entry.StructMap.Fields = append(x.entry.StructMap.Fields, autoEntry.StructMap.Fields...) + return x +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/transformBuilding.go b/vendor/github.com/polydawn/refmt/obj/atlas/transformBuilding.go new file mode 100644 index 00000000..6892fdcd --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/transformBuilding.go @@ -0,0 +1,30 @@ +package atlas + +import ( + "reflect" +) + +func (x *BuilderCore) Transform() *BuilderTransform { + // no checks on x.entry.Type.Kind() here -- transforms can be pretty much any<->any + return &BuilderTransform{x.entry} +} + +type BuilderTransform struct { + entry *AtlasEntry +} + +func (x *BuilderTransform) Complete() *AtlasEntry { + return x.entry +} + +func (x *BuilderTransform) TransformMarshal(trFunc MarshalTransformFunc, toType reflect.Type) *BuilderTransform { + x.entry.MarshalTransformFunc = trFunc + x.entry.MarshalTransformTargetType = toType + return x +} + +func (x *BuilderTransform) TransformUnmarshal(trFunc UnmarshalTransformFunc, toType reflect.Type) *BuilderTransform { + x.entry.UnmarshalTransformFunc = trFunc + x.entry.UnmarshalTransformTargetType = toType + return x +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/transformFuncs.go b/vendor/github.com/polydawn/refmt/obj/atlas/transformFuncs.go new file mode 100644 index 00000000..5cfe98fc --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/transformFuncs.go @@ -0,0 +1,68 @@ +package atlas + +import "reflect" + +type MarshalTransformFunc func(liveForm reflect.Value) (serialForm reflect.Value, err error) +type UnmarshalTransformFunc func(serialForm reflect.Value) (liveForm reflect.Value, err error) + +var err_rt = reflect.TypeOf((*error)(nil)).Elem() + +/* + Takes a wildcard object which must be `func (live T1) (serialable T2, error)` + and returns a MarshalTransformFunc and the typeinfo of T2. +*/ +func MakeMarshalTransformFunc(fn interface{}) (MarshalTransformFunc, reflect.Type) { + fn_rv := reflect.ValueOf(fn) + if fn_rv.Kind() != reflect.Func { + panic("no") + } + fn_rt := fn_rv.Type() + if fn_rt.NumIn() != 1 { + panic("no") + } + if fn_rt.NumOut() != 2 { + panic("no") + } + if !fn_rt.Out(1).AssignableTo(err_rt) { + panic("no") + } + // nothing to do for `fn_rt.In(0)` -- whatever type it is... TODO redesign to make less sketchy; we should most certainly be able to check this in the builder + out_rt := fn_rt.Out(0) + return func(liveForm reflect.Value) (serialForm reflect.Value, err error) { + results := fn_rv.Call([]reflect.Value{liveForm}) + if results[1].IsNil() { + return results[0], nil + } + return results[0], results[1].Interface().(error) + }, out_rt +} + +/* + Takes a wildcard object which must be `func (serialable T1) (live T2, error)` + and returns a UnmarshalTransformFunc and the typeinfo of T1. +*/ +func MakeUnmarshalTransformFunc(fn interface{}) (UnmarshalTransformFunc, reflect.Type) { + fn_rv := reflect.ValueOf(fn) + if fn_rv.Kind() != reflect.Func { + panic("no") + } + fn_rt := fn_rv.Type() + if fn_rt.NumIn() != 1 { + panic("no") + } + if fn_rt.NumOut() != 2 { + panic("no") + } + if !fn_rt.Out(1).AssignableTo(err_rt) { + panic("no") + } + // nothing to do for checking `fn_rf.Out(0)` -- because we don't know what entry we're about to be used for. TODO redesign to make less sketchy. + in_rt := fn_rt.In(0) + return func(serialForm reflect.Value) (liveForm reflect.Value, err error) { + results := fn_rv.Call([]reflect.Value{serialForm}) + if results[1].IsNil() { + return results[0], nil + } + return results[0], results[1].Interface().(error) + }, in_rt +} diff --git a/vendor/github.com/polydawn/refmt/obj/atlas/unionMorphism.go b/vendor/github.com/polydawn/refmt/obj/atlas/unionMorphism.go new file mode 100644 index 00000000..80831856 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/atlas/unionMorphism.go @@ -0,0 +1,45 @@ +package atlas + +import ( + "fmt" + "reflect" + "sort" +) + +type UnionKeyedMorphism struct { + // Mapping of typehint key strings to atlasEntry that should be delegated to. + Elements map[string]*AtlasEntry + // Mapping of rtid to string (roughly the dual of the Elements map). + Mappings map[uintptr]string + // Purely to have in readiness for error messaging. + KnownMembers []string +} + +func (x *BuilderCore) KeyedUnion() *BuilderUnionKeyedMorphism { + if x.entry.Type.Kind() != reflect.Interface { + panic(fmt.Errorf("cannot use union morphisms for type %q, which is kind %s", x.entry.Type, x.entry.Type.Kind())) + } + x.entry.UnionKeyedMorphism = &UnionKeyedMorphism{ + Elements: make(map[string]*AtlasEntry), + Mappings: make(map[uintptr]string), + } + return &BuilderUnionKeyedMorphism{x.entry} +} + +type BuilderUnionKeyedMorphism struct { + entry *AtlasEntry +} + +func (x *BuilderUnionKeyedMorphism) Of(elements map[string]*AtlasEntry) *AtlasEntry { + cfg := x.entry.UnionKeyedMorphism + for hint, ent := range elements { + // FIXME: check that all the delegates are... well struct or map machines really, but definitely blacklisting other delegating machinery. + // FIXME: and sanity check that they can all be assigned to the interface ffs. + + cfg.Elements[hint] = ent + cfg.Mappings[reflect.ValueOf(ent.Type).Pointer()] = hint + cfg.KnownMembers = append(cfg.KnownMembers, hint) + } + sort.Strings(cfg.KnownMembers) + return x.entry +} diff --git a/vendor/github.com/polydawn/refmt/obj/builtins.go b/vendor/github.com/polydawn/refmt/obj/builtins.go new file mode 100644 index 00000000..75c1327d --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/builtins.go @@ -0,0 +1,24 @@ +package obj + +import ( + . "reflect" +) + +var ( + rtid_bool = ValueOf(TypeOf(false)).Pointer() + rtid_string = ValueOf(TypeOf("")).Pointer() + rtid_bytes = ValueOf(TypeOf([]byte{})).Pointer() + rtid_int = ValueOf(TypeOf(int(0))).Pointer() + rtid_int8 = ValueOf(TypeOf(int8(0))).Pointer() + rtid_int16 = ValueOf(TypeOf(int16(0))).Pointer() + rtid_int32 = ValueOf(TypeOf(int32(0))).Pointer() + rtid_int64 = ValueOf(TypeOf(int64(0))).Pointer() + rtid_uint = ValueOf(TypeOf(uint(0))).Pointer() + rtid_uint8 = ValueOf(TypeOf(uint8(0))).Pointer() + rtid_uint16 = ValueOf(TypeOf(uint16(0))).Pointer() + rtid_uint32 = ValueOf(TypeOf(uint32(0))).Pointer() + rtid_uint64 = ValueOf(TypeOf(uint64(0))).Pointer() + rtid_uintptr = ValueOf(TypeOf(uintptr(0))).Pointer() + rtid_float32 = ValueOf(TypeOf(float32(0))).Pointer() + rtid_float64 = ValueOf(TypeOf(float64(0))).Pointer() +) diff --git a/vendor/github.com/polydawn/refmt/obj/doc.go b/vendor/github.com/polydawn/refmt/obj/doc.go new file mode 100644 index 00000000..d3cae216 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/doc.go @@ -0,0 +1,6 @@ +/* + The `obj` package defines Marshaller and Unmarshaller types, + which can be used to convert in-memory values to token streams, + and token streams to unpack in-memory values. +*/ +package obj diff --git a/vendor/github.com/polydawn/refmt/obj/empty.go b/vendor/github.com/polydawn/refmt/obj/empty.go new file mode 100644 index 00000000..b9f1e5b1 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/empty.go @@ -0,0 +1,31 @@ +package obj + +import "reflect" + +// The missing definition of 'reflect.IsZero' you've always wanted. +func isEmptyValue(v reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + case reflect.Struct: + // Note: we can't rely on a *literal* "is zero" check because + // non-zero pointers may still point to *empty* things. + for i := 0; i < v.NumField(); i++ { + if !isEmptyValue(v.Field(i)) { + return false + } + } + return true + } + return false +} diff --git a/vendor/github.com/polydawn/refmt/obj/errors.go b/vendor/github.com/polydawn/refmt/obj/errors.go new file mode 100644 index 00000000..b6c5b0ce --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/errors.go @@ -0,0 +1,82 @@ +package obj + +import ( + "fmt" + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +// General note: avoid using reflect.Type here. It doesn't do well with `go-cmp`, +// which in turn makes our tests for error paths a lot jankier. + +// ErrInvalidUnmarshalTarget describes an invalid argument passed to Unmarshaller.Bind. +// (Unmarshalling must target a non-nil pointer so that it can address the value.) +type ErrInvalidUnmarshalTarget struct { + Type reflect.Type +} + +func (e ErrInvalidUnmarshalTarget) Error() string { + if e.Type == nil { + return "unmarshal error: invalid target (nil)" + } + if e.Type.Kind() != reflect.Ptr { + return "unmarshal error: invalid target (non-pointer " + e.Type.String() + ")" + } + return "unmarshal error: invalid target (nil " + e.Type.String() + ")" +} + +// ErrUnmarshalTypeCantFit is the error returned when unmarshalling cannot +// coerce the tokens in the stream into the kind of variables the unmarshal is targetting, +// for example if a map open token comes when an int is expected, +// or an int token comes when a string is expected. +type ErrUnmarshalTypeCantFit struct { + Token Token + Value reflect.Value + LenLim int // Set only if Value.Kind == Array and Token is bytes of a mismatch length. +} + +func (e ErrUnmarshalTypeCantFit) Error() string { + switch e.LenLim { + case 0: + return fmt.Sprintf("unmarshal error: cannot assign %s to %s field", e.Token, e.Value.Kind()) + default: + return fmt.Sprintf("unmarshal error: cannot assign %s to fixed length=%d byte array", e.Token, e.Value.Len()) + } +} + +// ErrMalformedTokenStream is the error returned when unmarshalling recieves ae +// completely invalid transition, such as when a map value is expected, but the +// map suddenly closes, or an array close is recieved with no matching array open. +type ErrMalformedTokenStream struct { + Got TokenType // Token in the stream that triggered the error. + Expected string // Freeform string describing valid token types. Often a summary like "array close or start of value", or "map close or key". +} + +func (e ErrMalformedTokenStream) Error() string { + return fmt.Sprintf("malformed stream: invalid appearance of %s token; expected %s", e.Got, e.Expected) +} + +// ErrNoSuchField is the error returned when unmarshalling into a struct and +// the token stream for the map contains a key which is not defined for the struct. +type ErrNoSuchField struct { + Name string // Field name from the token. + Type string // Type name of the struct we're operating on. +} + +func (e ErrNoSuchField) Error() string { + return fmt.Sprintf("unmarshal error: stream contains key %q, but there's no such field in structs of type %s", e.Name, e.Type) +} + +// ErrNoSuchUnionMember is the error returned when unmarshalling into a union +// interface and the token stream contains a key which does not name any of the +// known members of the union. +type ErrNoSuchUnionMember struct { + Name string // Key name from the token. + Type reflect.Type // The interface type we're trying to fill. + KnownMembers []string // Members we expected isntead. +} + +func (e ErrNoSuchUnionMember) Error() string { + return fmt.Sprintf("unmarshal error: cannot unmarshal into union %s: %q is not one of the known members (expected one of %s)", e.Type, e.Name, e.KnownMembers) +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshal.go b/vendor/github.com/polydawn/refmt/obj/marshal.go new file mode 100644 index 00000000..754fe69f --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshal.go @@ -0,0 +1,110 @@ +package obj + +import ( + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +/* + Allocates the machinery for treating an object like a `TokenSource`. + This machinery will walk over structures in memory, + emitting tokens representing values and fields as it visits them. + + Initialization must be finished by calling `Bind` to set the value to visit; + after this, the `Step` function is ready to be pumped. + Subsequent calls to `Bind` do a full reset, leaving `Step` ready to call + again and making all of the machinery reusable without re-allocating. +*/ +func NewMarshaller(atl atlas.Atlas) *Marshaller { + d := &Marshaller{ + marshalSlab: marshalSlab{ + atlas: atl, + rows: make([]marshalSlabRow, 0, 10), + }, + stack: make([]MarshalMachine, 0, 10), + } + return d +} + +func (d *Marshaller) Bind(v interface{}) error { + d.stack = d.stack[0:0] + d.marshalSlab.rows = d.marshalSlab.rows[0:0] + rv := reflect.ValueOf(v) + if !rv.IsValid() { + // if given an untyped nil, swap in a less spikey nil thunk instead. + rv = nil_rv + } + rt := rv.Type() + d.step = d.marshalSlab.requisitionMachine(rt) + return d.step.Reset(&d.marshalSlab, rv, rt) +} + +type Marshaller struct { + marshalSlab marshalSlab + stack []MarshalMachine + step MarshalMachine +} + +type MarshalMachine interface { + Reset(*marshalSlab, reflect.Value, reflect.Type) error + Step(*Marshaller, *marshalSlab, *Token) (done bool, err error) +} + +type marshalMachineStep func(*Marshaller, *marshalSlab, *Token) (done bool, err error) + +func (d *Marshaller) Step(tok *Token) (bool, error) { + tok.Tagged = false + // fmt.Printf("> next step is %#v\n", d.step) + done, err := d.step.Step(d, &d.marshalSlab, tok) + // fmt.Printf(">> yield is %#v\n", TokenToString(*tok)) + // If the step errored: out, entirely. + if err != nil { + return true, err + } + // If the step wasn't done, return same status. + if !done { + return false, nil + } + // If it WAS done, pop next, or if stack empty, we're entirely done. + nSteps := len(d.stack) - 1 + if nSteps == -1 { + return true, nil // that's all folks + } + // fmt.Printf(">> popping up from %#v\n", d.stack) + d.step = d.stack[nSteps] + d.stack = d.stack[0:nSteps] + return false, nil +} + +/* + Starts the process of recursing marshalling over value `rv`. + + Caller provides the machine to use (this is an optimization for maps and slices, + which already know the machine and keep reusing it for all their entries). + This method pushes the first step with `tok` (the upstream tends to have peeked at + it in order to decide what to do, but if recursing, it belongs to the next obj), + then saves this new machine onto the driver's stack: future calls to step + the driver will then continuing stepping the new machine it returns a done status, + at which point we'll finally "return" by popping back to the last machine on the stack + (which is presumably the same one that just called this Recurse method). + + In other words, your MarshalMachine calls this when it wants to deal + with an object, and by the time we call back to your machine again, + that object will be traversed and the stream ready for you to continue. +*/ +func (d *Marshaller) Recurse(tok *Token, rv reflect.Value, rt reflect.Type, nextMach MarshalMachine) (err error) { + // fmt.Printf(">>> pushing into recursion with %#v\n", nextMach) + // Push the current machine onto the stack (we'll resume it when the new one is done), + d.stack = append(d.stack, d.step) + // Initialize the machine for this new target value. + err = nextMach.Reset(&d.marshalSlab, rv, rt) + if err != nil { + return + } + d.step = nextMach + // Immediately make a step (we're still the delegate in charge of someone else's step). + _, err = d.Step(tok) + return +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalBuiltins.go b/vendor/github.com/polydawn/refmt/obj/marshalBuiltins.go new file mode 100644 index 00000000..be81a68e --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalBuiltins.go @@ -0,0 +1,92 @@ +package obj + +import ( + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +type ptrDerefDelegateMarshalMachine struct { + MarshalMachine + peelCount int + + isNil bool +} + +func (mach *ptrDerefDelegateMarshalMachine) Reset(slab *marshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.isNil = false + for i := 0; i < mach.peelCount; i++ { + if rv.IsNil() { + mach.isNil = true + return nil + } + rv = rv.Elem() + } + return mach.MarshalMachine.Reset(slab, rv, rv.Type()) // REVIEW: we could have cached the peeled rt at mach conf time; worth it? +} +func (mach *ptrDerefDelegateMarshalMachine) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + if mach.isNil { + tok.Type = TNull + return true, nil + } + return mach.MarshalMachine.Step(driver, slab, tok) +} + +type marshalMachinePrimitive struct { + kind reflect.Kind + + rv reflect.Value +} + +func (mach *marshalMachinePrimitive) Reset(_ *marshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.rv = rv + return nil +} +func (mach *marshalMachinePrimitive) Step(_ *Marshaller, _ *marshalSlab, tok *Token) (done bool, err error) { + switch mach.kind { + case reflect.Bool: + tok.Type = TBool + tok.Bool = mach.rv.Bool() + return true, nil + case reflect.String: + tok.Type = TString + tok.Str = mach.rv.String() + return true, nil + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + tok.Type = TInt + tok.Int = mach.rv.Int() + return true, nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + tok.Type = TUint + tok.Uint = mach.rv.Uint() + return true, nil + case reflect.Float32, reflect.Float64: + tok.Type = TFloat64 + tok.Float64 = mach.rv.Float() + return true, nil + case reflect.Slice: // implicitly bytes; no other slices are "primitive" + if mach.rv.IsNil() { + tok.Type = TNull + return true, nil + } + tok.Type = TBytes + tok.Bytes = mach.rv.Bytes() + return true, nil + case reflect.Array: // implicitly bytes; no other arrays are "primitive" + tok.Type = TBytes + // Unfortunately, there does not seem to be any efficient way to extract the contents of a byte array into a slice via reflect. + // Since the lengths are part of the type, it is almost understandable that the stdlib reflect package has a hard time expressing this; + // however, it drives me somewhat up the wall that they do not provide a case for arrays inside the `Value.Bytes` method, and panic. + // Attempting to `Value.Convert(Type)` from a fixed-length array to a slice of the same type is also rejected. + // Nor does `reflect.AppendSlice` accept an array kind as the second parameter; no, only slices there too. + // So... we iterate. If anyone knows a better way to do this, PRs extremely welcome. + n := mach.rv.Len() + tok.Bytes = make([]byte, n) + for i := 0; i < n; i++ { + tok.Bytes[i] = byte(mach.rv.Index(i).Uint()) + } + return true, nil + default: + panic("unhandled") + } +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalMapWildcard.go b/vendor/github.com/polydawn/refmt/obj/marshalMapWildcard.go new file mode 100644 index 00000000..d8231b39 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalMapWildcard.go @@ -0,0 +1,148 @@ +package obj + +import ( + "fmt" + "reflect" + "sort" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type marshalMachineMapWildcard struct { + morphism *atlas.MapMorphism // set on initialization + + target_rv reflect.Value + value_rt reflect.Type + keyStringer atlas.MarshalTransformFunc + valueMach MarshalMachine + keys []wildcardMapStringyKey + index int + value bool +} + +func (mach *marshalMachineMapWildcard) Reset(slab *marshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + + // Pick machinery for handling the value types. + mach.value_rt = rt.Elem() + mach.valueMach = slab.requisitionMachine(mach.value_rt) + + // Enumerate all the keys (must do this up front, one way or another), + // flip them into strings, + // and sort them (optional, arguably, but right now you're getting it). + key_rt := rt.Key() + switch key_rt.Kind() { + case reflect.String: + // continue. + // note: stdlib json.marshal supports all the int types here as well, and will + // tostring them. but this is not supported symmetrically; so we simply... don't. + // we could also consider supporting anything that uses a MarshalTransformFunc + // to become a string kind; that's a fair bit of code, perhaps later. + mach.keyStringer = nil + case reflect.Struct: + // composite keys requires some fancy footwork, but we can do it. + // Interestingly enough, we don't need full-on machinery here; because the + // tokenized form is restricted to being a string, the transform func is enough. + rtid := reflect.ValueOf(key_rt).Pointer() + atlEnt, ok := slab.atlas.Get(rtid) + if !ok || atlEnt.MarshalTransformTargetType == nil || atlEnt.MarshalTransformTargetType.Kind() != reflect.String { + return fmt.Errorf("unsupported map key type %q (if you want to use struct keys, your atlas needs a transform to string)", key_rt.Name()) + } + mach.keyStringer = atlEnt.MarshalTransformFunc + default: + return fmt.Errorf("unsupported map key type %q", key_rt.Name()) + } + keys_rv := mach.target_rv.MapKeys() + mach.keys = make([]wildcardMapStringyKey, len(keys_rv)) + for i, v := range keys_rv { + mach.keys[i].rv = v + if mach.keyStringer == nil { + mach.keys[i].s = v.String() + } else { + trans_rv, err := mach.keyStringer(v) + if err != nil { + return fmt.Errorf("unsupported map key type %q: errors in stringifying: %s", key_rt.Name(), err) + } + mach.keys[i].s = trans_rv.String() + } + } + + ksm := atlas.KeySortMode_Default + if mach.morphism != nil { + ksm = mach.morphism.KeySortMode + } + + switch ksm { + case atlas.KeySortMode_Default: + sort.Sort(wildcardMapStringyKey_byString(mach.keys)) + case atlas.KeySortMode_Strings: + sort.Sort(wildcardMapStringyKey_byString(mach.keys)) + case atlas.KeySortMode_RFC7049: + sort.Sort(wildcardMapStringyKey_RFC7049(mach.keys)) + default: + panic(fmt.Errorf("unknown map key sort mode %q", ksm)) + } + + mach.index = -1 + return nil +} + +func (mach *marshalMachineMapWildcard) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + if mach.index < 0 { + if mach.target_rv.IsNil() { + tok.Type = TNull + mach.index++ + return true, nil + } + tok.Type = TMapOpen + tok.Length = mach.target_rv.Len() + mach.index++ + return false, nil + } + if mach.index == len(mach.keys) { + tok.Type = TMapClose + mach.index++ + slab.release() + return true, nil + } + if mach.index > len(mach.keys) { + return true, fmt.Errorf("invalid state: value already consumed") + } + if mach.value { + val_rv := mach.target_rv.MapIndex(mach.keys[mach.index].rv) + mach.value = false + mach.index++ + return false, driver.Recurse(tok, val_rv, mach.value_rt, mach.valueMach) + } + tok.Type = TString + tok.Str = mach.keys[mach.index].s + mach.value = true + return false, nil +} + +// Holder for the reflect.Value and string form of a key. +// We need the reflect.Value for looking up the map value; +// and we need the string for sorting. +type wildcardMapStringyKey struct { + rv reflect.Value + s string +} + +type wildcardMapStringyKey_byString []wildcardMapStringyKey + +func (x wildcardMapStringyKey_byString) Len() int { return len(x) } +func (x wildcardMapStringyKey_byString) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x wildcardMapStringyKey_byString) Less(i, j int) bool { return x[i].s < x[j].s } + +type wildcardMapStringyKey_RFC7049 []wildcardMapStringyKey + +func (x wildcardMapStringyKey_RFC7049) Len() int { return len(x) } +func (x wildcardMapStringyKey_RFC7049) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x wildcardMapStringyKey_RFC7049) Less(i, j int) bool { + li, lj := len(x[i].s), len(x[j].s) + if li == lj { + return x[i].s < x[j].s + } + return li < lj +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalSlab.go b/vendor/github.com/polydawn/refmt/obj/marshalSlab.go new file mode 100644 index 00000000..88c8e6f0 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalSlab.go @@ -0,0 +1,219 @@ +package obj + +import ( + "fmt" + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +/* + A lovely mechanism to stash marshalMachine objects pre-allocated and avoid mallocs. + Works together with the Atlas: the Atlas says what kind of machinery is needed; + the marshalSlab "allocates" it and returns it upon your request. +*/ +type marshalSlab struct { + atlas atlas.Atlas + rows []marshalSlabRow +} + +type marshalSlabRow struct { + ptrDerefDelegateMarshalMachine + marshalMachinePrimitive + marshalMachineWildcard + marshalMachineMapWildcard + marshalMachineSliceWildcard + marshalMachineStructAtlas + marshalMachineTransform + marshalMachineUnionKeyed + + errThunkMarshalMachine +} + +// A thunk value that can be used to trigger `isNil` paths. +// (Substituting an 'invalid' kind reflect.Value with this is an easy way +// to emit a null without needing any additional special cases or error handling.) +var nil_rv reflect.Value = reflect.Zero(reflect.PtrTo(reflect.TypeOf(0))) + +/* + Return a reference to a machine from the slab. + *You must release() when done.* + + Errors -- including "no info in Atlas for this type" -- are expressed by + returning a machine that is a constantly-erroring thunk. +*/ +func (slab *marshalSlab) requisitionMachine(rt reflect.Type) MarshalMachine { + // Acquire a row. + off := len(slab.rows) + slab.grow() + row := &slab.rows[off] + + // Yield machinery. + return _yieldMarshalMachinePtr(row, slab.atlas, rt) +} + +/* + Like requisitionMachine, but does *not* grow the slab; assumes the current + tip row is usable. + Thus, you must grow() before using, and release correspondingly. +*/ +func (slab *marshalSlab) yieldMachine(rt reflect.Type) MarshalMachine { + // Grab the last row. + row := &slab.rows[len(slab.rows)-1] + + // Yield machinery. + return _yieldMarshalMachinePtr(row, slab.atlas, rt) +} + +func _yieldMarshalMachinePtr(row *marshalSlabRow, atl atlas.Atlas, rt reflect.Type) MarshalMachine { + // Indirect pointers as necessary. + // Keep count of how many times we do this; we'll use this again at the end. + peelCount := 0 + for rt.Kind() == reflect.Ptr { + rt = rt.Elem() + peelCount++ + } + + // Figure out what machinery to use at heart. + mach := _yieldBareMarshalMachinePtr(row, atl, rt) + // If nil answer, we had no match: yield an error thunk. + if mach == nil { + mach := &row.errThunkMarshalMachine + mach.err = fmt.Errorf("no machine found") + return mach + } + + // If no indirection steps, return; + // otherwise wrap it in the ptrDeref machine and return that. + if peelCount == 0 { + return mach + } + row.ptrDerefDelegateMarshalMachine.MarshalMachine = mach + row.ptrDerefDelegateMarshalMachine.peelCount = peelCount + row.ptrDerefDelegateMarshalMachine.isNil = false + return &row.ptrDerefDelegateMarshalMachine +} + +// Like _yieldMarshalMachinePtr, but assumes the ptr unwrapping has already been done. +func _yieldBareMarshalMachinePtr(row *marshalSlabRow, atl atlas.Atlas, rt reflect.Type) MarshalMachine { + rtid := reflect.ValueOf(rt).Pointer() + + // Check primitives first; cheapest (and unoverridable). + switch rtid { + case rtid_bool, + rtid_string, + rtid_int, rtid_int8, rtid_int16, rtid_int32, rtid_int64, + rtid_uint, rtid_uint8, rtid_uint16, rtid_uint32, rtid_uint64, rtid_uintptr, + rtid_float32, rtid_float64, + rtid_bytes: + row.marshalMachinePrimitive.kind = rt.Kind() + return &row.marshalMachinePrimitive + } + + // Consult atlas second. + if entry, ok := atl.Get(rtid); ok { + return _yieldMarshalMachinePtrForAtlasEntry(row, entry, atl) + } + + // If no specific behavior found, use default behavior based on kind. + switch rt.Kind() { + case reflect.Bool, + reflect.String, + reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, + reflect.Float32, reflect.Float64: + row.marshalMachinePrimitive.kind = rt.Kind() + return &row.marshalMachinePrimitive + case reflect.Slice: + // un-typedef'd byte slices were handled already, but a typedef'd one still gets gets treated like a special kind: + if rt.Elem().Kind() == reflect.Uint8 { + row.marshalMachinePrimitive.kind = rt.Kind() + return &row.marshalMachinePrimitive + } + return &row.marshalMachineSliceWildcard + case reflect.Array: + // arrays of bytes have a similar special case to slices for when they're typedefed. + if rt.Elem().Kind() == reflect.Uint8 { + row.marshalMachinePrimitive.kind = rt.Kind() + return &row.marshalMachinePrimitive + } + return &row.marshalMachineSliceWildcard.marshalMachineArrayWildcard + case reflect.Map: + row.marshalMachineMapWildcard.morphism = atl.GetDefaultMapMorphism() + return &row.marshalMachineMapWildcard + case reflect.Struct: + // TODO here we could also invoke automatic atlas autogen, if configured to be permitted + mach := &row.errThunkMarshalMachine + mach.err = fmt.Errorf("missing an atlas entry describing how to marshal type %v (and auto-atlasing for structs is not enabled)", rt) + return mach + case reflect.Interface: + return &row.marshalMachineWildcard + case reflect.Func: + panic(fmt.Errorf("functions cannot be marshalled!")) + case reflect.Ptr: + panic(fmt.Errorf("unreachable: ptrs must already be resolved")) + default: + panic(fmt.Errorf("excursion %s", rt.Kind())) + } +} + +// given that we already have an atlasEntry in mind, yield a configured machine for it. +// it seems odd that this might still require a whole atlas, but tis so; +// some things (e.g. transform funcs) need to get additional machinery for delegation. +func _yieldMarshalMachinePtrForAtlasEntry(row *marshalSlabRow, entry *atlas.AtlasEntry, atl atlas.Atlas) MarshalMachine { + // Switch across which of the union of configurations is applicable. + switch { + case entry.MarshalTransformFunc != nil: + // Return a machine that calls the func(s), then later a real machine. + // The entry.MarshalTransformTargetType is used to do a recursive lookup. + // We can't just call the func here because we're still working off typeinfo + // and don't have a real value to transform until later. + row.marshalMachineTransform.trFunc = entry.MarshalTransformFunc + // Pick delegate without growing stack. (This currently means recursive transform won't fly.) + row.marshalMachineTransform.delegate = _yieldMarshalMachinePtr(row, atl, entry.MarshalTransformTargetType) + // If tags are in play: have the transformer machine glue that on. + + row.marshalMachineTransform.tagged = entry.Tagged + row.marshalMachineTransform.tag = entry.Tag + return &row.marshalMachineTransform + case entry.StructMap != nil: + row.marshalMachineStructAtlas.cfg = entry + return &row.marshalMachineStructAtlas + case entry.UnionKeyedMorphism != nil: + row.marshalMachineUnionKeyed.cfg = entry + return &row.marshalMachineUnionKeyed + case entry.MapMorphism != nil: + row.marshalMachineMapWildcard.morphism = entry.MapMorphism + return &row.marshalMachineMapWildcard + default: + panic("invalid atlas entry") + } +} + +// Returns the top row of the slab. Useful for machines that need to delegate +// to another type that's definitely not their own. Be careful with that +// caveat; if the delegation can be to another system that uses in-row delegation, +// this is not trivially safe to compose and you should grow the slab instead. +func (s *marshalSlab) tip() *marshalSlabRow { + return &s.rows[len(s.rows)-1] +} + +func (s *marshalSlab) grow() { + s.rows = append(s.rows, marshalSlabRow{}) +} + +func (s *marshalSlab) release() { + s.rows = s.rows[0 : len(s.rows)-1] +} + +type errThunkMarshalMachine struct { + err error +} + +func (m *errThunkMarshalMachine) Reset(_ *marshalSlab, _ reflect.Value, _ reflect.Type) error { + return m.err +} +func (m *errThunkMarshalMachine) Step(d *Marshaller, s *marshalSlab, tok *Token) (done bool, err error) { + return true, m.err +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalSliceWildcard.go b/vendor/github.com/polydawn/refmt/obj/marshalSliceWildcard.go new file mode 100644 index 00000000..3cf527d5 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalSliceWildcard.go @@ -0,0 +1,63 @@ +package obj + +import ( + "fmt" + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +// Encodes a slice. +// This machine just wraps the array machine, checking to make sure the value isn't nil. +type marshalMachineSliceWildcard struct { + marshalMachineArrayWildcard +} + +func (mach *marshalMachineSliceWildcard) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + if mach.index < 0 { + if mach.target_rv.IsNil() { + tok.Type = TNull + return true, nil + } + } + return mach.marshalMachineArrayWildcard.Step(driver, slab, tok) +} + +type marshalMachineArrayWildcard struct { + target_rv reflect.Value + value_rt reflect.Type + valueMach MarshalMachine + index int + length int +} + +func (mach *marshalMachineArrayWildcard) Reset(slab *marshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + mach.value_rt = rt.Elem() + mach.valueMach = slab.requisitionMachine(mach.value_rt) + mach.index = -1 + mach.length = mach.target_rv.Len() + return nil +} + +func (mach *marshalMachineArrayWildcard) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + if mach.index < 0 { + tok.Type = TArrOpen + tok.Length = mach.target_rv.Len() + mach.index++ + return false, nil + } + if mach.index == mach.length { + tok.Type = TArrClose + mach.index++ + slab.release() + return true, nil + } + if mach.index > mach.length { + return true, fmt.Errorf("invalid state: value already consumed") + } + rv := mach.target_rv.Index(mach.index) + driver.Recurse(tok, rv, mach.value_rt, mach.valueMach) + mach.index++ + return false, nil +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalStruct.go b/vendor/github.com/polydawn/refmt/obj/marshalStruct.go new file mode 100644 index 00000000..7ea4fd24 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalStruct.go @@ -0,0 +1,108 @@ +package obj + +import ( + "fmt" + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type marshalMachineStructAtlas struct { + cfg *atlas.AtlasEntry // set on initialization + + target_rv reflect.Value + index int // Progress marker + value_rv reflect.Value // Next value (or nil if next step is key). +} + +func (mach *marshalMachineStructAtlas) Reset(slab *marshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.target_rv = rv + mach.index = -1 + mach.value_rv = reflect.Value{} + slab.grow() // we'll reuse the same row for all fields + return nil +} + +func (mach *marshalMachineStructAtlas) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + //fmt.Printf("--step on %#v: i=%d/%d v=%v\n", mach.target_rv, mach.index, len(mach.cfg.Fields), mach.value) + + // Check boundaries and do the special steps or either start or end. + nEntries := len(mach.cfg.StructMap.Fields) + if mach.index < 0 { + tok.Type = TMapOpen + tok.Length = countEmittableStructFields(mach.cfg, mach.target_rv) + tok.Tagged = mach.cfg.Tagged + tok.Tag = mach.cfg.Tag + mach.index++ + return false, nil + } + if mach.index == nEntries { + tok.Type = TMapClose + mach.index++ + slab.release() + return true, nil + } + if mach.index > nEntries { + return true, fmt.Errorf("invalid state: entire struct (%d fields) already consumed", nEntries) + } + + // If value loaded from last step, recurse into handling that. + fieldEntry := mach.cfg.StructMap.Fields[mach.index] + if mach.value_rv != (reflect.Value{}) { + child_rv := mach.value_rv + mach.index++ + mach.value_rv = reflect.Value{} + return false, driver.Recurse( + tok, + child_rv, + fieldEntry.Type, + slab.yieldMachine(fieldEntry.Type), + ) + } + + // If value was nil, that indicates we're supposed to pick the value and yield a key. + // We have to look ahead to the value because if it's zero and tagged as + // omitEmpty, then we have to skip emitting the key as well. + for fieldEntry.Ignore { + mach.index++ + if mach.index == nEntries { + tok.Type = TMapClose + mach.index++ + slab.release() + return true, nil + } + fieldEntry = mach.cfg.StructMap.Fields[mach.index] + } + mach.value_rv = fieldEntry.ReflectRoute.TraverseToValue(mach.target_rv) + if fieldEntry.OmitEmpty && isEmptyValue(mach.value_rv) { + mach.value_rv = reflect.Value{} + mach.index++ + return mach.Step(driver, slab, tok) + } + tok.Type = TString + tok.Str = fieldEntry.SerialName + return false, nil +} + +// Count how many fields in a struct should actually be marshalled. +// Fields that are tagged omitEmpty and are isEmptyValue are not counted, and +// StructMapEntry used to flag ignored fields unmarshalling never count, so +// this number may be less than the number of fields in the AtlasEntry.StructMap. +func countEmittableStructFields(cfg *atlas.AtlasEntry, target_rv reflect.Value) int { + total := 0 + for _, fieldEntry := range cfg.StructMap.Fields { + if fieldEntry.Ignore { + continue + } + if !fieldEntry.OmitEmpty { + total++ + continue + } + if !isEmptyValue(fieldEntry.ReflectRoute.TraverseToValue(target_rv)) { + total++ + continue + } + } + return total +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalTransform.go b/vendor/github.com/polydawn/refmt/obj/marshalTransform.go new file mode 100644 index 00000000..7e1c1514 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalTransform.go @@ -0,0 +1,35 @@ +package obj + +import ( + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type marshalMachineTransform struct { + trFunc atlas.MarshalTransformFunc + delegate MarshalMachine + tagged bool // Used to apply tag to first step (without forcing delegate to know). + tag int + first bool // This resets; 'tagged' persists (because it's type info). +} + +func (mach *marshalMachineTransform) Reset(slab *marshalSlab, rv reflect.Value, _ reflect.Type) error { + tr_rv, err := mach.trFunc(rv) + if err != nil { + return err + } + mach.first = true + return mach.delegate.Reset(slab, tr_rv, tr_rv.Type()) +} + +func (mach *marshalMachineTransform) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + done, err = mach.delegate.Step(driver, slab, tok) + if mach.first && mach.tagged { + tok.Tagged = true + tok.Tag = mach.tag + mach.first = false + } + return +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalUnionKeyed.go b/vendor/github.com/polydawn/refmt/obj/marshalUnionKeyed.go new file mode 100644 index 00000000..efd10da0 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalUnionKeyed.go @@ -0,0 +1,71 @@ +package obj + +import ( + "fmt" + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type marshalMachineUnionKeyed struct { + cfg *atlas.AtlasEntry // set on initialization + + target_rv reflect.Value // the element (interface already unwrapped). + elementName string // the serial name for this union member type. + + step marshalMachineStep + delegate MarshalMachine // actual machine, picked based on content of the interface. +} + +func (mach *marshalMachineUnionKeyed) Reset(slab *marshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv.Elem() + if mach.target_rv.Kind() == reflect.Invalid { + return fmt.Errorf("nil is not a valid member for the union for interface %q", mach.cfg.Type.Name()) + } + element_rt := mach.target_rv.Type() + mach.elementName = mach.cfg.UnionKeyedMorphism.Mappings[reflect.ValueOf(element_rt).Pointer()] + if mach.elementName == "" { + return fmt.Errorf("type %q is not one of the known members of the union for interface %q", element_rt.Name(), mach.cfg.Type.Name()) + } + delegateAtlasEnt := mach.cfg.UnionKeyedMorphism.Elements[mach.elementName] + mach.delegate = _yieldMarshalMachinePtrForAtlasEntry(slab.tip(), delegateAtlasEnt, slab.atlas) + if err := mach.delegate.Reset(slab, mach.target_rv, delegateAtlasEnt.Type); err != nil { + return err + } + mach.step = mach.step_emitMapOpen + return nil +} + +func (mach *marshalMachineUnionKeyed) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + return mach.step(driver, slab, tok) +} + +func (mach *marshalMachineUnionKeyed) step_emitMapOpen(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + tok.Type = TMapOpen + tok.Length = 1 + mach.step = mach.step_emitKey + return false, nil +} + +func (mach *marshalMachineUnionKeyed) step_emitKey(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + tok.Type = TString + tok.Str = mach.elementName + mach.step = mach.step_delegate + return false, nil +} + +func (mach *marshalMachineUnionKeyed) step_delegate(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + done, err = mach.delegate.Step(driver, slab, tok) + if done && err == nil { + mach.step = mach.step_emitMapClose + return false, nil + } + return +} + +func (mach *marshalMachineUnionKeyed) step_emitMapClose(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + tok.Type = TMapClose + mach.step = nil + return true, nil +} diff --git a/vendor/github.com/polydawn/refmt/obj/marshalWildcard.go b/vendor/github.com/polydawn/refmt/obj/marshalWildcard.go new file mode 100644 index 00000000..67153e20 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/marshalWildcard.go @@ -0,0 +1,37 @@ +package obj + +import ( + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +/* + A MarshalMachine that unwraps an `interface{}` value, + selects the correct machinery for handling its content, + and delegates immediately to that machine. +*/ +type marshalMachineWildcard struct { + delegate MarshalMachine +} + +func (mach *marshalMachineWildcard) Reset(slab *marshalSlab, rv reflect.Value, rt reflect.Type) error { + // If the interface contains nil, go no further; we'll simply yield that single token. + if rv.IsNil() { + mach.delegate = nil + return nil + } + // Pick, reset, and retain a delegate machine for the interior type. + unwrap_rv := rv.Elem() // unwrap iface + unwrap_rt := unwrap_rv.Type() + mach.delegate = slab.requisitionMachine(unwrap_rt) + return mach.delegate.Reset(slab, unwrap_rv, unwrap_rt) +} + +func (mach marshalMachineWildcard) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) { + if mach.delegate == nil { + tok.Type = TNull + return true, nil + } + return mach.delegate.Step(driver, slab, tok) +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshal.go b/vendor/github.com/polydawn/refmt/obj/unmarshal.go new file mode 100644 index 00000000..6e500719 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshal.go @@ -0,0 +1,108 @@ +package obj + +import ( + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +/* + Allocates the machinery for treating an in-memory object like a `TokenSink`. + This machinery will walk over values, using received tokens to fill in + fields as it visits them. + + Initialization must be finished by calling `Bind` to set the value to visit; + after this, the `Step` function is ready to be pumped. + Subsequent calls to `Bind` do a full reset, leaving `Step` ready to call + again and making all of the machinery reusable without re-allocating. +*/ +func NewUnmarshaller(atl atlas.Atlas) *Unmarshaller { + d := &Unmarshaller{ + unmarshalSlab: unmarshalSlab{ + atlas: atl, + rows: make([]unmarshalSlabRow, 0, 10), + }, + stack: make([]UnmarshalMachine, 0, 10), + } + return d +} + +func (d *Unmarshaller) Bind(v interface{}) error { + d.stack = d.stack[0:0] + d.unmarshalSlab.rows = d.unmarshalSlab.rows[0:0] + rv := reflect.ValueOf(v) + if rv.Kind() != reflect.Ptr || rv.IsNil() { + err := ErrInvalidUnmarshalTarget{reflect.TypeOf(v)} + d.step = &errThunkUnmarshalMachine{err} + return err + } + rv = rv.Elem() // Let's just always be addressible, shall we? + rt := rv.Type() + d.step = d.unmarshalSlab.requisitionMachine(rt) + return d.step.Reset(&d.unmarshalSlab, rv, rt) +} + +type Unmarshaller struct { + unmarshalSlab unmarshalSlab + stack []UnmarshalMachine + step UnmarshalMachine +} + +type UnmarshalMachine interface { + Reset(*unmarshalSlab, reflect.Value, reflect.Type) error + Step(*Unmarshaller, *unmarshalSlab, *Token) (done bool, err error) +} + +type unmarshalMachineStep func(*Unmarshaller, *unmarshalSlab, *Token) (done bool, err error) + +func (d *Unmarshaller) Step(tok *Token) (bool, error) { + done, err := d.step.Step(d, &d.unmarshalSlab, tok) + // If the step errored: out, entirely. + if err != nil { + return true, err + } + // If the step wasn't done, return same status. + if !done { + return false, nil + } + // If it WAS done, pop next, or if stack empty, we're entirely done. + nSteps := len(d.stack) - 1 + if nSteps == -1 { + return true, nil // that's all folks + } + d.step = d.stack[nSteps] + d.stack = d.stack[0:nSteps] + return false, nil +} + +/* + Starts the process of recursing unmarshalling over value `rv`. + + Caller provides the machine to use (this is an optimization for maps and slices, + which already know the machine and keep reusing it for all their entries). + This method pushes the first step with `tok` (the upstream tends to have peeked at + it in order to decide what to do, but if recursing, it belongs to the next obj), + then saves this new machine onto the driver's stack: future calls to step + the driver will then continuing stepping the new machine it returns a done status, + at which point we'll finally "return" by popping back to the last machine on the stack + (which is presumably the same one that just called this Recurse method). + + In other words, your UnmarshalMachine calls this when it wants to deal + with an object, and by the time we call back to your machine again, + that object will be traversed and the stream ready for you to continue. +*/ +func (d *Unmarshaller) Recurse(tok *Token, rv reflect.Value, rt reflect.Type, nextMach UnmarshalMachine) (err error) { + // fmt.Printf(">>> pushing into recursion with %#v\n", nextMach) + // Push the current machine onto the stack (we'll resume it when the new one is done), + d.stack = append(d.stack, d.step) + // Initialize the machine for this new target value. + err = nextMach.Reset(&d.unmarshalSlab, rv, rt) + if err != nil { + return + } + d.step = nextMach + // Immediately make a step (we're still the delegate in charge of someone else's step). + _, err = d.Step(tok) + return +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalArrayWildcard.go b/vendor/github.com/polydawn/refmt/obj/unmarshalArrayWildcard.go new file mode 100644 index 00000000..5904a4c0 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalArrayWildcard.go @@ -0,0 +1,80 @@ +package obj + +import ( + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineArrayWildcard struct { + target_rv reflect.Value + value_rt reflect.Type + valueMach UnmarshalMachine + step unmarshalMachineStep + index int + maxLen int +} + +func (mach *unmarshalMachineArrayWildcard) Reset(slab *unmarshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + mach.value_rt = rt.Elem() + mach.valueMach = slab.requisitionMachine(mach.value_rt) + mach.step = mach.step_Initial + mach.index = 0 + mach.maxLen = rt.Len() + return nil +} + +func (mach *unmarshalMachineArrayWildcard) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + return mach.step(driver, slab, tok) +} + +func (mach *unmarshalMachineArrayWildcard) step_Initial(_ *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // If it's a special state, start an object. + // (Or, blow up if its a special state that's silly). + switch tok.Type { + case TMapOpen: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + case TArrOpen: + // Great. Consumed. + mach.step = mach.step_AcceptValue + // Initialize the array. Its length is encoded in its type. + mach.target_rv.Set(reflect.Zero(mach.target_rv.Type())) + return false, nil + case TMapClose: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + case TArrClose: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + case TNull: + mach.target_rv.Set(reflect.Zero(mach.target_rv.Type())) + return true, nil + default: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + } +} + +func (mach *unmarshalMachineArrayWildcard) step_AcceptValue(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // Either form of open token are valid, but + // - an arrClose is ours + // - and a mapClose is clearly invalid. + switch tok.Type { + case TMapClose: + // no special checks for ends of wildcard slice; no such thing as incomplete. + return true, ErrMalformedTokenStream{tok.Type, "start of value or end of array"} + case TArrClose: + // release the slab row we requisitioned for our value machine. + slab.release() + return true, nil + } + + // Return an error if we're about to exceed our length limit. + if mach.index >= mach.maxLen { + return true, ErrMalformedTokenStream{tok.Type, "end of array (out of space)"} + } + + // Recurse on a handle to the next index. + rv := mach.target_rv.Index(mach.index) + mach.index++ + return false, driver.Recurse(tok, rv, mach.value_rt, mach.valueMach) + // Step simply remains `step_AcceptValue` -- arrays don't have much state machine. +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalBuiltins.go b/vendor/github.com/polydawn/refmt/obj/unmarshalBuiltins.go new file mode 100644 index 00000000..8dc96cbb --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalBuiltins.go @@ -0,0 +1,176 @@ +package obj + +import ( + "fmt" + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +type ptrDerefDelegateUnmarshalMachine struct { + UnmarshalMachine // a delegate machine, already set for us by the slab + peelCount int // how deep the pointers go, already discoverd by the slab + + ptr_rv reflect.Value // the top ptr, which we will use if setting to nil, or if we have to recursively make ptrs for `**X` types. + firstStep bool +} + +func (mach *ptrDerefDelegateUnmarshalMachine) Reset(slab *unmarshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.ptr_rv = rv + mach.firstStep = true + // we defer reseting the delegate machine until later, in case we get a nil, which can save a lot of time. + return nil +} +func (mach *ptrDerefDelegateUnmarshalMachine) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // If first step: we have to do initializations. + if mach.firstStep { + mach.firstStep = false + // If nil: easy road. Nil the ptr. + if tok.Type == TNull { + mach.ptr_rv.Set(reflect.Zero(mach.ptr_rv.Type())) + return true, nil + } + // Walk the pointers: if some already exist, we accept them unmodified; + // if any are nil, make a new one, and recursively. + rv := mach.ptr_rv + for i := 0; i < mach.peelCount; i++ { + if rv.IsNil() { + rv.Set(reflect.New(rv.Type().Elem())) + rv = rv.Elem() + } else { + rv = rv.Elem() + } + } + if err := mach.UnmarshalMachine.Reset(slab, rv, rv.Type()); err != nil { + return true, err + } + } + // The remainder of the time: it's just delegation. + return mach.UnmarshalMachine.Step(driver, slab, tok) +} + +type unmarshalMachinePrimitive struct { + kind reflect.Kind + + rv reflect.Value +} + +func (mach *unmarshalMachinePrimitive) Reset(_ *unmarshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.rv = rv + return nil +} +func (mach *unmarshalMachinePrimitive) Step(_ *Unmarshaller, _ *unmarshalSlab, tok *Token) (done bool, err error) { + switch mach.kind { + case reflect.Bool: + switch tok.Type { + case TBool: + mach.rv.SetBool(tok.Bool) + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.String: + switch tok.Type { + case TString: + mach.rv.SetString(tok.Str) + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + switch tok.Type { + case TInt: + mach.rv.SetInt(tok.Int) + return true, nil + case TUint: + mach.rv.SetInt(int64(tok.Uint)) // todo: overflow check + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + switch tok.Type { + case TInt: + if tok.Int >= 0 { + mach.rv.SetUint(uint64(tok.Int)) + return true, nil + } + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + case TUint: + mach.rv.SetUint(tok.Uint) + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.Float32, reflect.Float64: + switch tok.Type { + case TFloat64: + mach.rv.SetFloat(tok.Float64) + return true, nil + case TInt: + mach.rv.SetFloat(float64(tok.Int)) + return true, nil + case TUint: + mach.rv.SetFloat(float64(tok.Uint)) + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.Slice: // implicitly bytes; no other slices are "primitive" + switch tok.Type { + case TBytes: + mach.rv.SetBytes(tok.Bytes) + return true, nil + case TNull: + mach.rv.SetBytes(nil) + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.Array: // implicitly bytes; no other arrays are "primitive" + switch tok.Type { + case TBytes: + // Unfortunately, there does not seem to be any efficient way to bulk set the contents of a byte array via reflect. + // There are similar complaints regarding slices on the marshalling side: apparently, we have no choice but to loop. + n := mach.rv.Len() + // We match aggressively on length. If the provided input is too short, we reject that too: we assume you asked for a fixed-length array for a reason. + if len(tok.Bytes) != n { + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, n} + } + for i := 0; i < n; i++ { + mach.rv.Index(i).SetUint(uint64(tok.Bytes[i])) + } + return true, nil + case TNull: + if mach.rv.Len() != 0 { + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + mach.rv.SetBytes(nil) + return true, nil + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.rv, 0} + } + case reflect.Interface: + switch tok.Type { + case TString: + mach.rv.Set(reflect.ValueOf(tok.Str)) + case TBytes: + mach.rv.Set(reflect.ValueOf(tok.Bytes)) + case TBool: + mach.rv.Set(reflect.ValueOf(tok.Bool)) + case TInt: + mach.rv.Set(reflect.ValueOf(tok.Int)) + case TUint: + mach.rv.Set(reflect.ValueOf(tok.Uint)) + case TFloat64: + mach.rv.Set(reflect.ValueOf(tok.Float64)) + case TNull: + mach.rv.Set(reflect.ValueOf(nil)) + default: // any of the other token types should not have been routed here to begin with. + panic(fmt.Errorf("unhandled: %v", mach.kind)) + } + return true, nil + default: + panic(fmt.Errorf("unhandled: %v", mach.kind)) + } +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalMapWildcard.go b/vendor/github.com/polydawn/refmt/obj/unmarshalMapWildcard.go new file mode 100644 index 00000000..7f068af5 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalMapWildcard.go @@ -0,0 +1,129 @@ +package obj + +import ( + "fmt" + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineMapStringWildcard struct { + target_rv reflect.Value // Handle to the map. Can set to zero, or set k=v pairs into, etc. + value_rt reflect.Type // Type info for map values (cached for convenience in recurse calls). + valueMach UnmarshalMachine // Machine for map values. + key_rv reflect.Value // Addressable handle to a slot for keys to unmarshal into. + keyDestringer atlas.UnmarshalTransformFunc // Transform str->foo, to be used if keys are not plain strings. + tmp_rv reflect.Value // Addressable handle to a slot for values to unmarshal into. + step unmarshalMachineStep + haveValue bool // Piece of attendant state to help know we've been through at least one k=v pair so we can post-v store it. +} + +func (mach *unmarshalMachineMapStringWildcard) Reset(slab *unmarshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + mach.value_rt = rt.Elem() + mach.valueMach = slab.requisitionMachine(mach.value_rt) + key_rt := rt.Key() + mach.key_rv = reflect.New(key_rt).Elem() + if mach.key_rv.Kind() != reflect.String { + rtid := reflect.ValueOf(key_rt).Pointer() + atlEnt, ok := slab.atlas.Get(rtid) + if !ok || atlEnt.UnmarshalTransformTargetType == nil || atlEnt.UnmarshalTransformTargetType.Kind() != reflect.String { + return fmt.Errorf("unsupported map key type %q (if you want to use struct keys, your atlas needs a transform from string)", key_rt.Name()) + } + mach.keyDestringer = atlEnt.UnmarshalTransformFunc + } + mach.tmp_rv = reflect.New(mach.value_rt).Elem() + mach.step = mach.step_Initial + mach.haveValue = false + return nil +} + +func (mach *unmarshalMachineMapStringWildcard) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + return mach.step(driver, slab, tok) +} + +func (mach *unmarshalMachineMapStringWildcard) step_Initial(_ *Unmarshaller, _ *unmarshalSlab, tok *Token) (done bool, err error) { + // If it's a special state, start an object. + // (Or, blow up if its a special state that's silly). + switch tok.Type { + case TNull: + mach.target_rv.Set(reflect.Zero(mach.target_rv.Type())) + return true, nil + case TMapOpen: + // Great. Consumed. + mach.step = mach.step_AcceptKey + // Initialize the map if it's nil. + if mach.target_rv.IsNil() { + mach.target_rv.Set(reflect.MakeMap(mach.target_rv.Type())) + } + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of map") + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of map") + case TArrOpen: + fallthrough + default: + return true, ErrUnmarshalTypeCantFit{*tok, mach.target_rv, 0} + } +} + +func (mach *unmarshalMachineMapStringWildcard) step_AcceptKey(_ *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // First, save any refs from the last value. + // (This is fiddly: the delay comes mostly from the handling of slices, which may end up re-allocating + // themselves during their decoding.) + if mach.haveValue { + mach.target_rv.SetMapIndex(mach.key_rv, mach.tmp_rv) + } + // Now switch on tokens. + switch tok.Type { + case TMapOpen: + return true, fmt.Errorf("unexpected mapOpen; expected map key") + case TArrOpen: + return true, fmt.Errorf("unexpected arrOpen; expected map key") + case TMapClose: + // no special checks for ends of wildcard map; no such thing as incomplete. + // release the slab row we requisitioned for our value machine. + slab.release() + return true, nil + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected map key") + case TString: + if mach.keyDestringer != nil { + key_rv, err := mach.keyDestringer(reflect.ValueOf(tok.Str)) + if err != nil { + return true, fmt.Errorf("unsupported map key type %q: errors in stringifying: %s", mach.key_rv.Type().Name(), err) + } + mach.key_rv.Set(key_rv) + } else { + mach.key_rv.SetString(tok.Str) + } + if err = mach.mustAcceptKey(mach.key_rv); err != nil { + return true, err + } + mach.step = mach.step_AcceptValue + return false, nil + default: + return true, fmt.Errorf("unexpected token %s; expected key string or end of map", tok) + } +} + +func (mach *unmarshalMachineMapStringWildcard) mustAcceptKey(key_rv reflect.Value) error { + if exists := mach.target_rv.MapIndex(key_rv).IsValid(); exists { + return fmt.Errorf("repeated key %q", key_rv) + } + return nil +} + +func (mach *unmarshalMachineMapStringWildcard) step_AcceptValue(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + mach.step = mach.step_AcceptKey + mach.tmp_rv.Set(reflect.Zero(mach.value_rt)) + mach.haveValue = true + return false, driver.Recurse( + tok, + mach.tmp_rv, + mach.value_rt, + mach.valueMach, + ) +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalSlab.go b/vendor/github.com/polydawn/refmt/obj/unmarshalSlab.go new file mode 100644 index 00000000..ac09c16c --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalSlab.go @@ -0,0 +1,187 @@ +package obj + +import ( + "fmt" + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +/* + A lovely mechanism to stash unmarshalMachine objects pre-allocated and avoid mallocs. + Works together with the Atlas: the Atlas says what kind of machinery is needed; + the unmarshalSlab "allocates" it and returns it upon your request. +*/ +type unmarshalSlab struct { + atlas atlas.Atlas + rows []unmarshalSlabRow +} + +type unmarshalSlabRow struct { + ptrDerefDelegateUnmarshalMachine + unmarshalMachinePrimitive + unmarshalMachineWildcard + unmarshalMachineMapStringWildcard + unmarshalMachineSliceWildcard + unmarshalMachineArrayWildcard + unmarshalMachineStructAtlas + unmarshalMachineTransform + unmarshalMachineUnionKeyed + + errThunkUnmarshalMachine +} + +/* + Return a reference to a machine from the slab. + *You must release() when done.* + + Errors -- including "no info in Atlas for this type" -- are expressed by + returning a machine that is a constantly-erroring thunk. +*/ +func (slab *unmarshalSlab) requisitionMachine(rt reflect.Type) UnmarshalMachine { + // Acquire a row. + off := len(slab.rows) + slab.grow() + row := &slab.rows[off] + + // Indirect pointers as necessary. + // Keep count of how many times we do this; we'll use this again at the end. + peelCount := 0 + for rt.Kind() == reflect.Ptr { + rt = rt.Elem() + peelCount++ + } + + // Figure out what machinery to use at heart. + mach := _yieldUnmarshalMachinePtr(row, slab.atlas, rt) + // If nil answer, we had no match: yield an error thunk. + if mach == nil { + mach := &row.errThunkUnmarshalMachine + mach.err = fmt.Errorf("no machine found") + return mach + } + + // If no indirection steps, return; + // otherwise wrap it in the ptrDeref machine and return that. + if peelCount == 0 { + return mach + } + row.ptrDerefDelegateUnmarshalMachine.UnmarshalMachine = mach + row.ptrDerefDelegateUnmarshalMachine.peelCount = peelCount + return &row.ptrDerefDelegateUnmarshalMachine +} + +func _yieldUnmarshalMachinePtr(row *unmarshalSlabRow, atl atlas.Atlas, rt reflect.Type) UnmarshalMachine { + rtid := reflect.ValueOf(rt).Pointer() + + // Check primitives first; cheapest (and unoverridable). + switch rtid { + case rtid_bool, + rtid_string, + rtid_int, rtid_int8, rtid_int16, rtid_int32, rtid_int64, + rtid_uint, rtid_uint8, rtid_uint16, rtid_uint32, rtid_uint64, rtid_uintptr, + rtid_float32, rtid_float64, + rtid_bytes: + row.unmarshalMachinePrimitive.kind = rt.Kind() + return &row.unmarshalMachinePrimitive + } + + // Consult atlas second. + if entry, ok := atl.Get(rtid); ok { + return _yieldUnmarshalMachinePtrForAtlasEntry(row, entry, atl) + } + + // If no specific behavior found, use default behavior based on kind. + switch rt.Kind() { + + case reflect.Bool, + reflect.String, + reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, + reflect.Float32, reflect.Float64: + row.unmarshalMachinePrimitive.kind = rt.Kind() + return &row.unmarshalMachinePrimitive + case reflect.Slice: + // un-typedef'd byte slices were handled already, but a typedef'd one still gets gets treated like a special kind: + if rt.Elem().Kind() == reflect.Uint8 { + row.unmarshalMachinePrimitive.kind = rt.Kind() + return &row.unmarshalMachinePrimitive + } + return &row.unmarshalMachineSliceWildcard + case reflect.Array: + // arrays of bytes have a similar special case to slices for when they're typedefed. + if rt.Elem().Kind() == reflect.Uint8 { + row.unmarshalMachinePrimitive.kind = rt.Kind() + return &row.unmarshalMachinePrimitive + } + return &row.unmarshalMachineArrayWildcard + case reflect.Map: + return &row.unmarshalMachineMapStringWildcard + case reflect.Struct: + // TODO here we could also invoke automatic atlas autogen, if configured to be permitted + mach := &row.errThunkUnmarshalMachine + mach.err = fmt.Errorf("missing an atlas entry describing how to unmarshal type %v (and auto-atlasing for structs is not enabled)", rt) + return mach + case reflect.Interface: + return &row.unmarshalMachineWildcard + case reflect.Func: + panic(fmt.Errorf("functions cannot be unmarshalled!")) + case reflect.Ptr: + panic(fmt.Errorf("unreachable: ptrs must already be resolved")) + default: + panic(fmt.Errorf("excursion %s", rt.Kind())) + } +} + +// given that we already have an atlasEntry in mind, yield a configured machine for it. +// it seems odd that this might still require a whole atlas, but tis so; +// some things (e.g. transform funcs) need to get additional machinery for delegation. +func _yieldUnmarshalMachinePtrForAtlasEntry(row *unmarshalSlabRow, entry *atlas.AtlasEntry, atl atlas.Atlas) UnmarshalMachine { + // Switch across which of the union of configurations is applicable. + switch { + case entry.UnmarshalTransformFunc != nil: + // Return a machine that calls the func(s), then later a real machine. + // The entry.UnmarshalTransformTargetType is used to do a recursive lookup. + // We can't just call the func here because we're still working off typeinfo + // and don't have a real value to transform until later. + row.unmarshalMachineTransform.trFunc = entry.UnmarshalTransformFunc + row.unmarshalMachineTransform.recv_rt = entry.UnmarshalTransformTargetType + // Pick delegate without growing stack. (This currently means recursive transform won't fly.) + row.unmarshalMachineTransform.delegate = _yieldUnmarshalMachinePtr(row, atl, entry.UnmarshalTransformTargetType) + return &row.unmarshalMachineTransform + case entry.StructMap != nil: + row.unmarshalMachineStructAtlas.cfg = entry + return &row.unmarshalMachineStructAtlas + case entry.UnionKeyedMorphism != nil: + row.unmarshalMachineUnionKeyed.cfg = entry.UnionKeyedMorphism + return &row.unmarshalMachineUnionKeyed + default: + panic("invalid atlas entry") + } +} + +// Returns the top row of the slab. Useful for machines that need to delegate +// to another type that's definitely not their own (comes up for the wildcard delegators). +func (s *unmarshalSlab) tip() *unmarshalSlabRow { + return &s.rows[len(s.rows)-1] +} + +func (s *unmarshalSlab) grow() { + s.rows = append(s.rows, unmarshalSlabRow{}) +} + +func (s *unmarshalSlab) release() { + s.rows = s.rows[0 : len(s.rows)-1] +} + +type errThunkUnmarshalMachine struct { + err error +} + +func (m *errThunkUnmarshalMachine) Reset(_ *unmarshalSlab, _ reflect.Value, _ reflect.Type) error { + return m.err +} +func (m *errThunkUnmarshalMachine) Step(d *Unmarshaller, s *unmarshalSlab, tok *Token) (done bool, err error) { + return true, m.err +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalSliceWildcard.go b/vendor/github.com/polydawn/refmt/obj/unmarshalSliceWildcard.go new file mode 100644 index 00000000..513441d7 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalSliceWildcard.go @@ -0,0 +1,81 @@ +package obj + +import ( + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineSliceWildcard struct { + target_rv reflect.Value // target slice handle + working_rv reflect.Value // working slice (target is set to this at end) + value_rt reflect.Type + valueZero_rv reflect.Value // a zero of the slice's value type (for kicking append) + valueMach UnmarshalMachine + step unmarshalMachineStep + index int +} + +func (mach *unmarshalMachineSliceWildcard) Reset(slab *unmarshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + mach.working_rv = rv + mach.value_rt = rt.Elem() + mach.valueZero_rv = reflect.Zero(mach.value_rt) + mach.valueMach = slab.requisitionMachine(mach.value_rt) + mach.step = mach.step_Initial + mach.index = 0 + return nil +} + +func (mach *unmarshalMachineSliceWildcard) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + return mach.step(driver, slab, tok) +} + +func (mach *unmarshalMachineSliceWildcard) step_Initial(_ *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // If it's a special state, start an object. + // (Or, blow up if its a special state that's silly). + switch tok.Type { + case TMapOpen: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + case TArrOpen: + // Great. Consumed. + mach.step = mach.step_AcceptValue + // Initialize the slice. + mach.target_rv.Set(reflect.MakeSlice(mach.target_rv.Type(), 0, 0)) + return false, nil + case TMapClose: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + case TArrClose: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + case TNull: + mach.target_rv.Set(reflect.Zero(mach.target_rv.Type())) + return true, nil + default: + return true, ErrMalformedTokenStream{tok.Type, "start of array"} + } +} + +func (mach *unmarshalMachineSliceWildcard) step_AcceptValue(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // Either form of open token are valid, but + // - an arrClose is ours + // - and a mapClose is clearly invalid. + switch tok.Type { + case TMapClose: + // no special checks for ends of wildcard slice; no such thing as incomplete. + return true, ErrMalformedTokenStream{tok.Type, "start of value or end of array"} + case TArrClose: + mach.target_rv.Set(mach.working_rv) + // release the slab row we requisitioned for our value machine. + slab.release() + return true, nil + } + + // Grow the slice if necessary. + mach.working_rv = reflect.Append(mach.working_rv, mach.valueZero_rv) + + // Recurse on a handle to the next index. + rv := mach.working_rv.Index(mach.index) + mach.index++ + return false, driver.Recurse(tok, rv, mach.value_rt, mach.valueMach) + // Step simply remains `step_AcceptValue` -- arrays don't have much state machine. +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalStruct.go b/vendor/github.com/polydawn/refmt/obj/unmarshalStruct.go new file mode 100644 index 00000000..f05da75d --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalStruct.go @@ -0,0 +1,109 @@ +package obj + +import ( + "fmt" + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineStructAtlas struct { + cfg *atlas.AtlasEntry // set on initialization + + rv reflect.Value + expectLen int // Length header from mapOpen token. If it was set, we validate it. + index int // Progress marker: our distance into the stream of pairs. + value bool // Progress marker: whether the next token is a value. + fieldEntry atlas.StructMapEntry // Which field we expect next: set when consuming a key. +} + +func (mach *unmarshalMachineStructAtlas) Reset(_ *unmarshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.rv = rv + // not necessary to reset expectLen because MapOpen tokens also consistently use the -1 convention. + mach.index = -1 + mach.value = false + return nil +} + +func (mach *unmarshalMachineStructAtlas) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // Starter state. + if mach.index < 0 { + switch tok.Type { + case TMapOpen: + // Great. Consumed. + mach.expectLen = tok.Length + mach.index++ + return false, nil + case TMapClose: + return true, ErrMalformedTokenStream{tok.Type, "start of map"} + case TArrOpen: + return true, ErrMalformedTokenStream{tok.Type, "start of map"} + case TArrClose: + return true, ErrMalformedTokenStream{tok.Type, "start of map"} + case TNull: + mach.rv.Set(reflect.Zero(mach.rv.Type())) + return true, nil + default: + return true, ErrMalformedTokenStream{tok.Type, "start of map"} + } + } + + // Accept value: + if mach.value { + var child_rv reflect.Value + var child_rt reflect.Type + if mach.fieldEntry.Ignore { + // Use a dummy slot to slurp up the value. This could be more efficient. + child_rt = reflect.TypeOf((*interface{})(nil)).Elem() + child_rv = reflect.New(child_rt).Elem() + } else { + child_rt = mach.fieldEntry.Type + child_rv = mach.fieldEntry.ReflectRoute.TraverseToValue(mach.rv) + } + mach.index++ + mach.value = false + return false, driver.Recurse( + tok, + child_rv, + child_rt, + slab.requisitionMachine(child_rt), + ) + } + + // Accept key or end: + if mach.index > 0 { + slab.release() + } + switch tok.Type { + case TMapClose: + // If we got length header, validate that; error if mismatch. + if mach.expectLen >= 0 { + if mach.expectLen != mach.index { + return true, fmt.Errorf("malformed map token stream: declared length %d, actually got %d entries", mach.expectLen, mach.index) + } + } + + // Future: this would be a reasonable place to check that all required fields have been filled in, if we add such a feature. + + return true, nil + case TString: + for n := 0; n < len(mach.cfg.StructMap.Fields); n++ { + fieldEntry := mach.cfg.StructMap.Fields[n] + if fieldEntry.SerialName != tok.Str { + continue + } + mach.fieldEntry = fieldEntry + mach.value = true + break + } + if mach.value == false { + // FUTURE: it should be configurable per atlas.StructMap whether this is considered an error or to be tolerated. + // Currently we're being extremely strict about it, which is a divergence from the stdlib json behavior. + return true, ErrNoSuchField{tok.Str, mach.cfg.Type.String()} + } + default: + return true, ErrMalformedTokenStream{tok.Type, "map key"} + } + return false, nil +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalTransform.go b/vendor/github.com/polydawn/refmt/obj/unmarshalTransform.go new file mode 100644 index 00000000..961e3424 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalTransform.go @@ -0,0 +1,38 @@ +package obj + +import ( + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineTransform struct { + trFunc atlas.UnmarshalTransformFunc + recv_rt reflect.Type + delegate UnmarshalMachine // machine for handling the recv type, stepped to completion before transform applied. + + target_rv reflect.Value // given on Reset, retained until last step, and set into after using trFunc + recv_rv reflect.Value // if set, handle to slot where slice is stored; content must be placed into target at end. +} + +func (mach *unmarshalMachineTransform) Reset(slab *unmarshalSlab, rv reflect.Value, _ reflect.Type) error { + mach.target_rv = rv + mach.recv_rv = reflect.New(mach.recv_rt).Elem() // REVIEW: this behavior with ptr vs not for in_rt. the star-star case is prob not what want. + return mach.delegate.Reset(slab, mach.recv_rv, mach.recv_rt) +} + +func (mach *unmarshalMachineTransform) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + done, err = mach.delegate.Step(driver, slab, tok) + if err != nil { + return + } + if !done { + return + } + // on the last step, use transform, and finally set in real target. + tr_rv, err := mach.trFunc(mach.recv_rv) + // do attempt the set even if error. user may appreciate partial progress. + mach.target_rv.Set(tr_rv) + return true, err +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalUnionKeyed.go b/vendor/github.com/polydawn/refmt/obj/unmarshalUnionKeyed.go new file mode 100644 index 00000000..06269cfa --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalUnionKeyed.go @@ -0,0 +1,90 @@ +package obj + +import ( + "reflect" + + "github.com/polydawn/refmt/obj/atlas" + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineUnionKeyed struct { + cfg *atlas.UnionKeyedMorphism // set on initialization + + target_rv reflect.Value + target_rt reflect.Type + + step unmarshalMachineStep + tmp_rv reflect.Value + delegate UnmarshalMachine // actual machine, once we've demuxed with the second token (the key). +} + +func (mach *unmarshalMachineUnionKeyed) Reset(_ *unmarshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + mach.target_rt = rt + mach.step = mach.acceptMapOpen + return nil +} + +func (mach *unmarshalMachineUnionKeyed) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + return mach.step(driver, slab, tok) +} + +func (mach *unmarshalMachineUnionKeyed) acceptMapOpen(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + switch tok.Type { + case TMapOpen: + switch tok.Length { + case -1: // pass + case 1: // correct + default: + return true, ErrMalformedTokenStream{tok.Type, "unions in keyed format must be maps with exactly one entry"} // FIXME not malformed per se + } + mach.step = mach.acceptKey + return false, nil + // REVIEW: is case TNull perhaps conditionally acceptable? + default: + return true, ErrMalformedTokenStream{tok.Type, "start of union value"} // FIXME not malformed per se + } +} + +func (mach *unmarshalMachineUnionKeyed) acceptKey(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + switch tok.Type { + case TString: + // Look up the configuration for this key. + delegateAtlasEnt, ok := mach.cfg.Elements[tok.Str] + if !ok { + return true, ErrNoSuchUnionMember{tok.Str, mach.target_rt, mach.cfg.KnownMembers} + } + // Allocate a new concrete value, and hang on to that rv handle. + // Assigning into the interface must be done at the end if it's a non-pointer. + mach.tmp_rv = reflect.New(delegateAtlasEnt.Type).Elem() + // Get and configure a machine for the delegation. + delegate := _yieldUnmarshalMachinePtrForAtlasEntry(slab.tip(), delegateAtlasEnt, slab.atlas) + if err := delegate.Reset(slab, mach.tmp_rv, delegateAtlasEnt.Type); err != nil { + return true, err + } + mach.delegate = delegate + mach.step = mach.doDelegate + return false, nil + default: + return true, ErrMalformedTokenStream{tok.Type, "map key"} + } +} + +func (mach *unmarshalMachineUnionKeyed) doDelegate(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + done, err = mach.delegate.Step(driver, slab, tok) + if done && err == nil { + mach.step = mach.acceptMapClose + return false, nil + } + return +} + +func (mach *unmarshalMachineUnionKeyed) acceptMapClose(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + switch tok.Type { + case TMapClose: + mach.target_rv.Set(mach.tmp_rv) + return true, nil + default: + return true, ErrMalformedTokenStream{tok.Type, "map close at end of union value"} + } +} diff --git a/vendor/github.com/polydawn/refmt/obj/unmarshalWildcard.go b/vendor/github.com/polydawn/refmt/obj/unmarshalWildcard.go new file mode 100644 index 00000000..4d99c0af --- /dev/null +++ b/vendor/github.com/polydawn/refmt/obj/unmarshalWildcard.go @@ -0,0 +1,112 @@ +package obj + +import ( + "fmt" + "reflect" + + . "github.com/polydawn/refmt/tok" +) + +type unmarshalMachineWildcard struct { + target_rv reflect.Value + target_rt reflect.Type + delegate UnmarshalMachine // actual machine, once we've demuxed with the first token. + holder_rv reflect.Value // if set, handle to slot where slice is stored; content must be placed into target at end. +} + +func (mach *unmarshalMachineWildcard) Reset(_ *unmarshalSlab, rv reflect.Value, rt reflect.Type) error { + mach.target_rv = rv + mach.target_rt = rt + mach.delegate = nil + mach.holder_rv = reflect.Value{} + return nil +} + +func (mach *unmarshalMachineWildcard) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + if mach.delegate == nil { + done, err = mach.prepareDemux(driver, slab, tok) + if done { + return + } + } + done, err = mach.delegate.Step(driver, slab, tok) + if !done { + return + } + if mach.holder_rv.IsValid() { + mach.target_rv.Set(mach.holder_rv) + } + return +} + +func (mach *unmarshalMachineWildcard) prepareDemux(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) { + // If a "tag" is set in the token, we try to follow that as a hint for + // any specifically customized behaviors for how this should be unmarshalled. + if tok.Tagged == true { + atlasEntry, exists := slab.atlas.GetEntryByTag(tok.Tag) + if !exists { + return true, fmt.Errorf("missing an unmarshaller for tag %v", tok.Tag) + } + value_rt := atlasEntry.Type + mach.holder_rv = reflect.New(value_rt).Elem() + mach.delegate = _yieldUnmarshalMachinePtr(slab.tip(), slab.atlas, value_rt) + if err := mach.delegate.Reset(slab, mach.holder_rv, value_rt); err != nil { + return true, err + } + return false, nil + } + + // Switch on token type: we may be able to delegate to a primitive machine, + // but we may also need to initialize a container type and then hand off. + switch tok.Type { + case TMapOpen: + child := make(map[string]interface{}) + child_rv := reflect.ValueOf(child) + mach.target_rv.Set(child_rv) + mach.delegate = &slab.tip().unmarshalMachineMapStringWildcard + if err := mach.delegate.Reset(slab, child_rv, child_rv.Type()); err != nil { + return true, err + } + return false, nil + + case TArrOpen: + // Stdlib has very interesting branch here: 'case reflect.Interface: if v.NumMethod() == 0 {' + // If that matches, it goes on a *totally different* branch that leaves the reflective path entirely forever. + // (Which is kind of interesting, because it also means it will never reuse memory there. If you wanted that.) + + // This definitely went through a few discovery steps... + // - https://play.golang.org/p/Qbtpxwh68e + // - https://play.golang.org/p/l5RQujLnDN + // - https://play.golang.org/p/Z2ilpPk0vk + // - https://play.golang.org/p/jV9VFDht6F -- finally getting somewhere good + + holder := make([]interface{}, 0) + mach.holder_rv = reflect.ValueOf(&holder).Elem() + mach.delegate = &slab.tip().unmarshalMachineSliceWildcard + if err := mach.delegate.Reset(slab, mach.holder_rv, mach.holder_rv.Type()); err != nil { + return true, err + } + return false, nil + + case TMapClose: + return true, ErrMalformedTokenStream{tok.Type, "start of value"} + + case TArrClose: + return true, ErrMalformedTokenStream{tok.Type, "start of value"} + + case TNull: + mach.target_rv.Set(reflect.Zero(mach.target_rt)) + return true, nil + + default: + // If it wasn't the start of composite, shell out to the machine for literals. + // Don't bother to replace our internal step func because literal machines are never multi-call, + // and this lets us avoid grabbing a pointer and it shuffling around. + delegateMach := slab.tip().unmarshalMachinePrimitive + delegateMach.kind = reflect.Interface + if err := delegateMach.Reset(slab, mach.target_rv, nil); err != nil { + return true, err + } + return delegateMach.Step(driver, slab, tok) + } +} diff --git a/vendor/github.com/polydawn/refmt/pretty/prettyCommon.go b/vendor/github.com/polydawn/refmt/pretty/prettyCommon.go new file mode 100644 index 00000000..4ff6d248 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/pretty/prettyCommon.go @@ -0,0 +1,49 @@ +package pretty + +var ( + decoOff = []byte("\x1B[0m") + decoType = []byte("\x1B[1;34m") + decoBrack = []byte("\x1B[0;36m") + decoTypeParam = []byte("\x1B[1;36m") + decoTag = []byte("\x1B[0;33m") + decoTagParam = []byte("\x1B[1;33m") + decoValSigil = []byte("\x1B[1;32m") + decoValString = []byte("\x1B[0;32m") +) + +var ( + wordTrue = []byte("true") + wordFalse = []byte("false") + wordNull = []byte("null") + wordArrOpenPt1 = bcat(decoType, []byte("Array"), decoBrack, []byte(" ["), decoOff) + wordArrClose = bcat(decoBrack, []byte("]"), decoOff) + wordMapOpenPt1 = bcat(decoType, []byte("Map"), decoBrack, []byte(" {"), decoOff) + wordMapClose = bcat(decoBrack, []byte("}"), decoOff) + wordColon = bcat(decoBrack, []byte(": "), decoOff) + wordTag = bcat(decoTag, []byte("_tag:"), decoTagParam) + wordTagClose = bcat(decoTag, []byte("_ "), decoOff) + wordUnknownLen = []byte("?") + wordBreak = []byte("\n\r") +) + +func indentWord(depth int) (a []byte) { + a = []byte{} + for i := 0; i < depth; i++ { + a = append(a, '\t') + } + return +} + +func bcat(bss ...[]byte) []byte { + l := 0 + for _, bs := range bss { + l += len(bs) + } + rbs := make([]byte, 0, l) + for _, bs := range bss { + rbs = append(rbs, bs...) + } + return rbs +} diff --git a/vendor/github.com/polydawn/refmt/pretty/prettyEncoder.go b/vendor/github.com/polydawn/refmt/pretty/prettyEncoder.go new file mode 100644 index 00000000..f0cb5338 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/pretty/prettyEncoder.go @@ -0,0 +1,243 @@ +package pretty + +import ( + "encoding/hex" + "fmt" + "io" + "strconv" + + . "github.com/polydawn/refmt/tok" +) + +func NewEncoder(wr io.Writer) *Encoder { + return &Encoder{ + wr: wr, + stack: make([]phase, 0, 10), + } +} + +func (d *Encoder) Reset() { + d.stack = d.stack[0:0] + d.current = phase_anyExpectValue +} + +/* + A pretty.Encoder is a TokenSink that emits pretty-printed stuff. + + The default behavior is color coded with ANSI escape sequences, so it's + snazzy looking on your terminal. +*/ +type Encoder struct { + wr io.Writer + + // Stack, tracking how many array and map opens are outstanding. + // (Values are only 'phase_mapExpectKeyOrEnd' and 'phase_arrExpectValueOrEnd'.) + stack []phase + current phase // shortcut to value at end of stack + + // Spare memory, for use in operations on leaf nodes (e.g. temp space for an int serialization). + scratch [64]byte +} + +type phase int + +const ( + phase_anyExpectValue phase = iota + phase_mapExpectKeyOrEnd + phase_mapExpectValue + phase_arrExpectValueOrEnd +) + +func (d *Encoder) Step(tok *Token) (done bool, err error) { + switch d.current { + case phase_anyExpectValue: + switch tok.Type { + case TMapOpen: + d.pushPhase(phase_mapExpectKeyOrEnd) + d.emitMapOpen(tok) + return false, nil + case TArrOpen: + d.pushPhase(phase_arrExpectValueOrEnd) + d.emitArrOpen(tok) + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of value") + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of value") + default: + d.emitValue(tok) + d.wr.Write(wordBreak) + return true, nil + } + case phase_mapExpectKeyOrEnd: + switch tok.Type { + case TMapOpen: + return true, fmt.Errorf("unexpected mapOpen; expected start of key or end of map") + case TArrOpen: + return true, fmt.Errorf("unexpected arrOpen; expected start of key or end of map") + case TMapClose: + d.emitMapClose(tok) + return d.popPhase() + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of key or end of map") + default: + switch tok.Type { + case TString, TInt, TUint: + d.wr.Write(indentWord(len(d.stack))) + d.emitValue(tok) + d.wr.Write(wordColon) + d.current = phase_mapExpectValue + return false, nil + default: + return true, fmt.Errorf("unexpected token of type %T; expected map key", *tok) + } + } + case phase_mapExpectValue: + switch tok.Type { + case TMapOpen: + d.pushPhase(phase_mapExpectKeyOrEnd) + d.emitMapOpen(tok) + return false, nil + case TArrOpen: + d.pushPhase(phase_arrExpectValueOrEnd) + d.emitArrOpen(tok) + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of value") + case TArrClose: + return true, fmt.Errorf("unexpected arrClose; expected start of value") + default: + d.current = phase_mapExpectKeyOrEnd + d.emitValue(tok) + d.wr.Write(wordBreak) + return false, nil + } + case phase_arrExpectValueOrEnd: + switch tok.Type { + case TMapOpen: + d.pushPhase(phase_mapExpectKeyOrEnd) + d.emitMapOpen(tok) + return false, nil + case TArrOpen: + d.pushPhase(phase_arrExpectValueOrEnd) + d.emitArrOpen(tok) + return false, nil + case TMapClose: + return true, fmt.Errorf("unexpected mapClose; expected start of value or end of array") + case TArrClose: + d.emitArrClose(tok) + return d.popPhase() + default: + d.wr.Write(indentWord(len(d.stack))) + d.emitValue(tok) + d.wr.Write(wordBreak) + return false, nil + } + default: + panic("Unreachable") + } +} + +func (d *Encoder) pushPhase(p phase) { + d.current = p + d.stack = append(d.stack, d.current) +} + +// Pop a phase from the stack; return 'true' if stack now empty. +func (d *Encoder) popPhase() (bool, error) { + n := len(d.stack) - 1 + if n == 0 { + return true, nil + } + if n < 0 { // the state machines are supposed to have already errored better + panic("prettyEncoder stack overpopped") + } + d.current = d.stack[n-1] + d.stack = d.stack[0:n] + return false, nil +} + +func (d *Encoder) emitMapOpen(tok *Token) { + if tok.Tagged { + d.wr.Write(wordTag) + d.wr.Write([]byte(strconv.Itoa(tok.Tag))) + d.wr.Write(wordTagClose) + } + d.wr.Write(wordMapOpenPt1) + if tok.Length < 0 { + d.wr.Write(wordUnknownLen) + } else { + d.wr.Write([]byte(strconv.Itoa(tok.Length))) + } + d.wr.Write(wordMapOpenPt2) + d.wr.Write(wordBreak) +} + +func (d *Encoder) emitMapClose(tok *Token) { + d.wr.Write(indentWord(len(d.stack) - 1)) + d.wr.Write(wordMapClose) + d.wr.Write(wordBreak) +} + +func (d *Encoder) emitArrOpen(tok *Token) { + if tok.Tagged { + d.wr.Write(wordTag) + d.wr.Write([]byte(strconv.Itoa(tok.Tag))) + d.wr.Write(wordTagClose) + } + d.wr.Write(wordArrOpenPt1) + if tok.Length < 0 { + d.wr.Write(wordUnknownLen) + } else { + d.wr.Write([]byte(strconv.Itoa(tok.Length))) + } + d.wr.Write(wordArrOpenPt2) + d.wr.Write(wordBreak) +} + +func (d *Encoder) emitArrClose(tok *Token) { + d.wr.Write(indentWord(len(d.stack) - 1)) + d.wr.Write(wordArrClose) + d.wr.Write(wordBreak) +} + +func (d *Encoder) emitValue(tok *Token) { + if tok.Tagged { + d.wr.Write(wordTag) + d.wr.Write([]byte(strconv.Itoa(tok.Tag))) + d.wr.Write(wordTagClose) + } + switch tok.Type { + case TNull: + d.wr.Write(wordNull) + case TString: + d.emitString(tok.Str) + case TBytes: + dst := make([]byte, hex.EncodedLen(len(tok.Bytes))) + hex.Encode(dst, tok.Bytes) + d.wr.Write(dst) + case TBool: + switch tok.Bool { + case true: + d.wr.Write(wordTrue) + case false: + d.wr.Write(wordFalse) + } + case TInt: + b := strconv.AppendInt(d.scratch[:0], tok.Int, 10) + d.wr.Write(b) + case TUint: + b := strconv.AppendUint(d.scratch[:0], tok.Uint, 10) + d.wr.Write(b) + case TFloat64: + b := strconv.AppendFloat(d.scratch[:0], tok.Float64, 'f', 6, 64) + d.wr.Write(b) + default: + panic(fmt.Errorf("TODO finish more pretty.Encoder primitives support: unhandled token %s", tok)) + } +} + +func (d *Encoder) writeByte(b byte) { + d.scratch[0] = b + d.wr.Write(d.scratch[0:1]) +} diff --git a/vendor/github.com/polydawn/refmt/pretty/prettyEncoderTerminals.go b/vendor/github.com/polydawn/refmt/pretty/prettyEncoderTerminals.go new file mode 100644 index 00000000..96f58688 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/pretty/prettyEncoderTerminals.go @@ -0,0 +1,82 @@ +package pretty + +import ( + "io" + "unicode/utf8" +) + +var hexStr = "0123456789abcdef" + +func (d *Encoder) emitString(s string) { + d.wr.Write(decoValSigil) + d.writeByte('"') + d.wr.Write(decoValString) + start := 0 + for i := 0; i < len(s); { + if b := s[i]; b < utf8.RuneSelf { + if 0x20 <= b && b != '\\' && b != '"' { + i++ + continue + } + if start < i { + d.wr.Write([]byte(s[start:i])) + } + switch b { + case '\\', '"': + d.writeByte('\\') + d.writeByte(b) + case '\n': + d.writeByte('\\') + d.writeByte('n') + case '\r': + d.writeByte('\\') + d.writeByte('r') + case '\t': + d.writeByte('\\') + d.writeByte('t') + default: + // This encodes bytes < 0x20 except for \t, \n and \r. + d.wr.Write([]byte(`\u00`)) + d.writeByte(hexStr[b>>4]) + d.writeByte(hexStr[b&0xF]) + } + i++ + start = i + continue + } + c, size := utf8.DecodeRuneInString(s[i:]) + if c == utf8.RuneError && size == 1 { + if start < i { + d.wr.Write([]byte(s[start:i])) + } + d.wr.Write([]byte(`\ufffd`)) + i += size + start = i + continue + } + // U+2028 is LINE SEPARATOR. + // U+2029 is PARAGRAPH SEPARATOR. + // They are both technically valid characters in JSON strings, + // but don't work in JSONP, which has to be evaluated as JavaScript, + // and can lead to security holes there. It is valid JSON to + // escape them, so we do so unconditionally. + // See http://timelessrepo.com/json-isnt-a-javascript-subset for discussion. + if c == '\u2028' || c == '\u2029' { + if start < i { + d.wr.Write([]byte(s[start:i])) + } + d.wr.Write([]byte(`\u202`)) + d.writeByte(hexStr[c&0xF]) + i += size + start = i + continue + } + i += size + } + if start < len(s) { + io.WriteString(d.wr, s[start:]) + } + d.wr.Write(decoValSigil) + d.writeByte('"') + d.wr.Write(decoOff) +} diff --git a/vendor/github.com/polydawn/refmt/raceway.formula b/vendor/github.com/polydawn/refmt/raceway.formula new file mode 100644 index 00000000..a9c71c16 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/raceway.formula @@ -0,0 +1,20 @@ +inputs: + "/": + type: "tar" + hash: "aLMH4qK1EdlPDavdhErOs0BPxqO0i6lUaeRE4DuUmnNMxhHtF56gkoeSulvwWNqT" + silo: "http+ca://repeatr.s3.amazonaws.com/assets/" + "/app/go": + type: "tar" + hash: "vg5TMw0aRSIQGPybkhMvZmwwI6rzAz6CoAOC0ecUUY02Cn2_7x9GM2DclHXutEPH" + silo: "https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz" +action: + command: + - "/bin/bash" + - "-c" + - | + set -euo pipefail + export GOROOT=/app/go/go + export PATH=$PATH:/app/go/go/bin + + ./goad fmt + ./goad test diff --git a/vendor/github.com/polydawn/refmt/shared/pump.go b/vendor/github.com/polydawn/refmt/shared/pump.go new file mode 100644 index 00000000..106de658 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/shared/pump.go @@ -0,0 +1,46 @@ +/* + The `shared` package defines helper types and functions used + internally by all the other refmt packages; it is not user-facing. +*/ +package shared + +import ( + "fmt" + + . "github.com/polydawn/refmt/tok" +) + +type TokenSource interface { + Step(fillme *Token) (done bool, err error) +} + +type TokenSink interface { + Step(consume *Token) (done bool, err error) +} + +type TokenPump struct { + TokenSource + TokenSink +} + +func (p TokenPump) Run() error { + var tok Token + var srcDone, sinkDone bool + var err error + for { + srcDone, err = p.TokenSource.Step(&tok) + if err != nil { + return err + } + sinkDone, err = p.TokenSink.Step(&tok) + if err != nil { + return err + } + if srcDone { + if sinkDone { + return nil + } + return fmt.Errorf("src at end of item but sink expects more") + } + } +} diff --git a/vendor/github.com/polydawn/refmt/shared/reader.go b/vendor/github.com/polydawn/refmt/shared/reader.go new file mode 100644 index 00000000..5059c971 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/shared/reader.go @@ -0,0 +1,301 @@ +package shared + +import ( + "bytes" + "errors" + "io" +) + +const ( + scratchByteArrayLen = 32 +) + +var ( + zeroByteSlice = []byte{}[:0:0] +) + +var ( + _ SlickReader = &SlickReaderStream{} + _ SlickReader = &SlickReaderSlice{} +) + +func NewReader(r io.Reader) SlickReader { + return &SlickReaderStream{br: &readerToScanner{r: r}} +} + +func NewBytesReader(buf *bytes.Buffer) SlickReader { + return &SlickReaderStream{br: buf} +} + +func NewSliceReader(b []byte) SlickReader { + return &SlickReaderSlice{b: b} +} + +// SlickReader is a hybrid of reader and buffer interfaces with methods giving +// specific attention to the performance needs found in a decoder. +// Implementations cover io.Reader as well as []byte directly. +// +// In particular, it allows: +// +// - returning byte-slices with zero-copying (you were warned!) when possible +// - returning byte-slices for short reads which will be reused (you were warned!) +// - putting a 'track' point in the buffer, and later yielding all those bytes at once +// - counting the number of bytes read (for use in parser error messages, mainly) +// +// All of these shortcuts mean correct usage is essential to avoid unexpected behaviors, +// but in return allow avoiding many, many common sources of memory allocations in a parser. +type SlickReader interface { + + // Read n bytes into a byte slice which may be shared and must not be reused + // After any additional calls to this reader. + // Readnzc will use the implementation scratch buffer if possible, + // i.e. n < len(scratchbuf), or may return a view of the []byte being decoded from. + // Requesting a zero length read will return `zeroByteSlice`, a len-zero cap-zero slice. + Readnzc(n int) ([]byte, error) + + // Read n bytes into a new byte slice. + // If zero-copy views into existing buffers are acceptable (e.g. you know you + // won't later mutate, reference or expose this memory again), prefer `Readnzc`. + // If you already have an existing slice of sufficient size to reuse, prefer `Readb`. + // Requesting a zero length read will return `zeroByteSlice`, a len-zero cap-zero slice. + Readn(n int) ([]byte, error) + + // Read `len(b)` bytes into the given slice, starting at its beginning, + // overwriting all values, and disregarding any extra capacity. + Readb(b []byte) error + + Readn1() (uint8, error) + Unreadn1() + NumRead() int // number of bytes read + Track() + StopTrack() []byte +} + +// SlickReaderStream is a SlickReader that reads off an io.Reader. +// Initialize it by wrapping an ioDecByteScanner around your io.Reader and dumping it in. +// While this implementation does use some internal buffers, it's still advisable +// to use a buffered reader to avoid small reads for any external IO like disk or network. +type SlickReaderStream struct { + br readerScanner + scratch [scratchByteArrayLen]byte // temp byte array re-used internally for efficiency during read. + n int // num read + tracking []byte // tracking bytes read + isTracking bool +} + +func (z *SlickReaderStream) NumRead() int { + return z.n +} + +func (z *SlickReaderStream) Readnzc(n int) (bs []byte, err error) { + if n == 0 { + return zeroByteSlice, nil + } + if n < len(z.scratch) { + bs = z.scratch[:n] + } else { + bs = make([]byte, n) + } + err = z.Readb(bs) + return +} + +func (z *SlickReaderStream) Readn(n int) (bs []byte, err error) { + if n == 0 { + return zeroByteSlice, nil + } + bs = make([]byte, n) + err = z.Readb(bs) + return +} + +func (z *SlickReaderStream) Readb(bs []byte) error { + if len(bs) == 0 { + return nil + } + n, err := io.ReadAtLeast(z.br, bs, len(bs)) + z.n += n + if z.isTracking { + z.tracking = append(z.tracking, bs...) + } + return err +} + +func (z *SlickReaderStream) Readn1() (b uint8, err error) { + b, err = z.br.ReadByte() + if err != nil { + return + } + z.n++ + if z.isTracking { + z.tracking = append(z.tracking, b) + } + return +} + +func (z *SlickReaderStream) Unreadn1() { + err := z.br.UnreadByte() + if err != nil { + panic(err) + } + z.n-- + if z.isTracking { + if l := len(z.tracking) - 1; l >= 0 { + z.tracking = z.tracking[:l] + } + } +} + +func (z *SlickReaderStream) Track() { + if z.tracking != nil { + z.tracking = z.tracking[:0] + } + z.isTracking = true +} + +func (z *SlickReaderStream) StopTrack() (bs []byte) { + z.isTracking = false + return z.tracking +} + +// SlickReaderSlice implements SlickReader by reading a byte slice directly. +// Often this means the zero-copy methods can simply return subslices. +type SlickReaderSlice struct { + b []byte // data + c int // cursor + a int // available + t int // track start +} + +func (z *SlickReaderSlice) reset(in []byte) { + z.b = in + z.a = len(in) + z.c = 0 + z.t = 0 +} + +func (z *SlickReaderSlice) NumRead() int { + return z.c +} + +func (z *SlickReaderSlice) Unreadn1() { + if z.c == 0 || len(z.b) == 0 { + panic(errors.New("cannot unread last byte read")) + } + z.c-- + z.a++ + return +} + +func (z *SlickReaderSlice) Readnzc(n int) (bs []byte, err error) { + if n == 0 { + return zeroByteSlice, nil + } else if z.a == 0 { + return zeroByteSlice, io.EOF + } else if n > z.a { + return zeroByteSlice, io.ErrUnexpectedEOF + } else { + c0 := z.c + z.c = c0 + n + z.a = z.a - n + bs = z.b[c0:z.c] + } + return +} + +func (z *SlickReaderSlice) Readn(n int) (bs []byte, err error) { + if n == 0 { + return zeroByteSlice, nil + } + bs = make([]byte, n) + err = z.Readb(bs) + return +} + +func (z *SlickReaderSlice) Readn1() (v uint8, err error) { + if z.a == 0 { + panic(io.EOF) + } + v = z.b[z.c] + z.c++ + z.a-- + return +} + +func (z *SlickReaderSlice) Readb(bs []byte) error { + bs2, err := z.Readnzc(len(bs)) + copy(bs, bs2) + return err +} + +func (z *SlickReaderSlice) Track() { + z.t = z.c +} + +func (z *SlickReaderSlice) StopTrack() (bs []byte) { + return z.b[z.t:z.c] +} + +// conjoin the io.Reader and io.ByteScanner interfaces. +type readerScanner interface { + io.Reader + io.ByteScanner +} + +// readerToScanner decorates an `io.Reader` with all the methods to also +// fulfill the `io.ByteScanner` interface. +type readerToScanner struct { + r io.Reader + l byte // last byte + ls byte // last byte status. 0: init-canDoNothing, 1: canRead, 2: canUnread + b [1]byte // tiny buffer for reading single bytes +} + +func (z *readerToScanner) Read(p []byte) (n int, err error) { + var firstByte bool + if z.ls == 1 { + z.ls = 2 + p[0] = z.l + if len(p) == 1 { + n = 1 + return + } + firstByte = true + p = p[1:] + } + n, err = z.r.Read(p) + if n > 0 { + if err == io.EOF && n == len(p) { + err = nil // read was successful, so postpone EOF (till next time) + } + z.l = p[n-1] + z.ls = 2 + } + if firstByte { + n++ + } + return +} + +func (z *readerToScanner) ReadByte() (c byte, err error) { + n, err := z.Read(z.b[:]) + if n == 1 { + c = z.b[0] + if err == io.EOF { + err = nil // read was successful, so postpone EOF (till next time) + } + } + return +} + +func (z *readerToScanner) UnreadByte() (err error) { + x := z.ls + if x == 0 { + err = errors.New("cannot unread - nothing has been read") + } else if x == 1 { + err = errors.New("cannot unread - last byte has not been read") + } else if x == 2 { + z.ls = 1 + } + return +} diff --git a/vendor/github.com/polydawn/refmt/tok/token.go b/vendor/github.com/polydawn/refmt/tok/token.go new file mode 100644 index 00000000..07aae136 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/tok/token.go @@ -0,0 +1,192 @@ +/* + Package containing Token struct and TokenType info. + Tokens are the lingua-franca used between all the refmt packages. + Users typically do not refer to these types. +*/ +package tok + +import ( + "bytes" + "fmt" +) + +type Token struct { + // The type of token. Indicates which of the value fields has meaning, + // or has a special value to indicate beginnings and endings of maps and arrays. + Type TokenType + Length int // If this is a TMapOpen or TArrOpen, a length may be specified. Use -1 for unknown. + + Str string // Value union. Only one of these has meaning, depending on the value of 'Type'. + Bytes []byte // Value union. Only one of these has meaning, depending on the value of 'Type'. + Bool bool // Value union. Only one of these has meaning, depending on the value of 'Type'. + Int int64 // Value union. Only one of these has meaning, depending on the value of 'Type'. + Uint uint64 // Value union. Only one of these has meaning, depending on the value of 'Type'. + Float64 float64 // Value union. Only one of these has meaning, depending on the value of 'Type'. + + Tagged bool // Extension slot for cbor. + Tag int // Extension slot for cbor. Only applicable if tagged=true. +} + +type TokenType byte + +const ( + TMapOpen TokenType = '{' + TMapClose TokenType = '}' + TArrOpen TokenType = '[' + TArrClose TokenType = ']' + TNull TokenType = '0' + + TString TokenType = 's' + TBytes TokenType = 'x' + TBool TokenType = 'b' + TInt TokenType = 'i' + TUint TokenType = 'u' + TFloat64 TokenType = 'f' +) + +func (tt TokenType) String() string { + switch tt { + case TMapOpen: + return "map open" + case TMapClose: + return "map close" + case TArrOpen: + return "array open" + case TArrClose: + return "array close" + case TNull: + return "null" + case TString: + return "string" + case TBytes: + return "bytes" + case TBool: + return "bool" + case TInt: + return "int" + case TUint: + return "uint" + case TFloat64: + return "float" + } + return "invalid" +} + +func (tt TokenType) IsValid() bool { + switch tt { + case TString, TBytes, TBool, TInt, TUint, TFloat64, TNull: + return true + case TMapOpen, TMapClose, TArrOpen, TArrClose: + return true + default: + return false + } +} + +func (tt TokenType) IsValue() bool { + switch tt { + case TString, TBytes, TBool, TInt, TUint, TFloat64: + return true + default: + return false + } +} + +func (tt TokenType) IsSpecial() bool { + switch tt { + case TMapOpen, TMapClose, TArrOpen, TArrClose, TNull: + return true + default: + return false + } +} + +/* + Checks if the content of two tokens is the same. + Tokens are considered the same if their type one of the special + consts (map/array open/close) and that type and the optional length field are equal; + or, if type indicates a value, then they are the same if those values are equal. + In either path, values that are *not* specified as relevant by the Token's Type + are disregarded in the comparison. + + If the Token.Type is not valid, the result will be false. + + This method is primarily useful for testing. +*/ +func IsTokenEqual(t1, t2 Token) bool { + if t1.Type != t2.Type { + return false + } + switch t1.Type { + case TMapOpen, TArrOpen: + return t1.Length == t2.Length + case TMapClose, TArrClose, TNull: + return true + case TString, TBool, TInt, TUint, TFloat64: + return t1.Value() == t2.Value() + case TBytes: + return bytes.Equal(t1.Bytes, t2.Bytes) + default: + return false + } +} + +// Returns the value attached to this token, or nil. +// This boxes the value into an `interface{}`, which almost certainly +// incurs a memory allocation via `runtime.convT2E` in the process, +// so this this method should not be used when performance is a concern. +func (t Token) Value() interface{} { + switch t.Type { + case TString: + return t.Str + case TBytes: + return t.Bytes + case TBool: + return t.Bool + case TInt: + return t.Int + case TUint: + return t.Uint + case TFloat64: + return t.Float64 + default: + return nil + } +} + +func (t Token) String() string { + if !t.Tagged { + return t.StringSansTag() + } + return fmt.Sprintf("_%d:%s", t.Tag, t.StringSansTag()) +} + +func (t Token) StringSansTag() string { + switch t.Type { + case TMapOpen: + if t.Length == -1 { + return "<{>" + } + return fmt.Sprintf("<{:%d>", t.Length) + case TMapClose: + return "<}>" + case TArrOpen: + if t.Length == -1 { + return "<[>" + } + return fmt.Sprintf("<[:%d>", t.Length) + case TArrClose: + return "<]>" + case TNull: + return "<0>" + case TString: + return fmt.Sprintf("<%c:%q>", t.Type, t.Value()) + } + if t.Type.IsValue() { + return fmt.Sprintf("<%c:%v>", t.Type, t.Value()) + } + return "" +} + +func TokStr(x string) Token { return Token{Type: TString, Str: x} } // Util for testing. +func TokInt(x int64) Token { return Token{Type: TInt, Int: x} } // Util for testing. diff --git a/vendor/github.com/polydawn/refmt/unmarshalHelpers.go b/vendor/github.com/polydawn/refmt/unmarshalHelpers.go new file mode 100644 index 00000000..3ebf9ef6 --- /dev/null +++ b/vendor/github.com/polydawn/refmt/unmarshalHelpers.go @@ -0,0 +1,61 @@ +package refmt + +import ( + "io" + + "github.com/polydawn/refmt/cbor" + "github.com/polydawn/refmt/json" + "github.com/polydawn/refmt/obj/atlas" +) + +type DecodeOptions interface { + IsDecodeOptions() // marker method. +} + +func Unmarshal(opts DecodeOptions, data []byte, v interface{}) error { + switch o2 := opts.(type) { + case json.DecodeOptions: + return json.Unmarshal(data, v) + case cbor.DecodeOptions: + return cbor.Unmarshal(o2, data, v) + default: + panic("incorrect usage: unknown DecodeOptions type") + } +} + +func UnmarshalAtlased(opts DecodeOptions, data []byte, v interface{}, atl atlas.Atlas) error { + switch o2 := opts.(type) { + case json.DecodeOptions: + return json.UnmarshalAtlased(data, v, atl) + case cbor.DecodeOptions: + return cbor.UnmarshalAtlased(o2, data, v, atl) + default: + panic("incorrect usage: unknown DecodeOptions type") + } +} + +type Unmarshaller interface { + Unmarshal(v interface{}) error +} + +func NewUnmarshaller(opts DecodeOptions, r io.Reader) Unmarshaller { + switch o2 := opts.(type) { + case json.DecodeOptions: + return json.NewUnmarshaller(r) + case cbor.DecodeOptions: + return cbor.NewUnmarshaller(o2, r) + default: + panic("incorrect usage: unknown DecodeOptions type") + } +} + +func NewUnmarshallerAtlased(opts DecodeOptions, r io.Reader, atl atlas.Atlas) Unmarshaller { + switch o2 := opts.(type) { + case json.DecodeOptions: + return json.NewUnmarshallerAtlased(r, atl) + case cbor.DecodeOptions: + return cbor.NewUnmarshallerAtlased(o2, r, atl) + default: + panic("incorrect usage: unknown DecodeOptions type") + } +} diff --git a/vendor/github.com/prometheus/tsdb/.gitignore b/vendor/github.com/prometheus/tsdb/.gitignore deleted file mode 100644 index 5530d1f6..00000000 --- a/vendor/github.com/prometheus/tsdb/.gitignore +++ /dev/null @@ -1 +0,0 @@ -benchout/ diff --git a/vendor/github.com/prometheus/tsdb/.travis.yml b/vendor/github.com/prometheus/tsdb/.travis.yml deleted file mode 100644 index 6af68c3d..00000000 --- a/vendor/github.com/prometheus/tsdb/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -dist: trusty -language: go -os: - - windows - - linux - - osx - -go: - - 1.12.x - -go_import_path: github.com/prometheus/tsdb - -before_install: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install make; fi - -install: - - make deps - -script: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then make test; else make all; fi diff --git a/vendor/github.com/prometheus/tsdb/CHANGELOG.md b/vendor/github.com/prometheus/tsdb/CHANGELOG.md deleted file mode 100644 index e643c442..00000000 --- a/vendor/github.com/prometheus/tsdb/CHANGELOG.md +++ /dev/null @@ -1,60 +0,0 @@ -## master / unreleased - -## 0.7.0 - - [CHANGE] tsdb now requires golang 1.12 or higher. - - [REMOVED] `chunks.NewReader` is removed as it wasn't used anywhere. - - [REMOVED] `FromData` is considered unused so was removed. - - [FEATURE] Added option WALSegmentSize -1 to disable the WAL. - - [BUGFIX] Bugfix in selectOverlappingDirs. Only return the first overlapping blocks. - - [BUGFIX] Fsync the meta file to persist it on disk to avoid data loss in case of a host crash. - - [BUGFIX] Fix fd and vm_area leak on error path in chunks.NewDirReader. - - [BUGFIX] Fix fd and vm_area leak on error path in index.NewFileReader. - - [BUGFIX] Force persisting the tombstone file to avoid data loss in case of a host crash. - - [BUGFIX] Keep series that are still in WAL in checkpoints. - - [ENHANCEMENT] Fast path for EmptyPostings cases in Merge, Intersect and Without. - - [ENHANCEMENT] Be smarter in how we look at matchers. - - [ENHANCEMENT] PostListings and NotMatcher now public. - -## 0.6.1 - - [BUGFIX] Update `last` after appending a non-overlapping chunk in `chunks.MergeOverlappingChunks`. [#539](https://github.com/prometheus/tsdb/pull/539) - -## 0.6.0 - - [CHANGE] `AllowOverlappingBlock` is now `AllowOverlappingBlocks`. - -## 0.5.0 - - [FEATURE] Time-ovelapping blocks are now allowed. [#370](https://github.com/prometheus/tsdb/pull/370) - - Disabled by default and can be enabled via `AllowOverlappingBlock` option. - - Added `MergeChunks` function in `chunkenc/xor.go` to merge 2 time-overlapping chunks. - - Added `MergeOverlappingChunks` function in `chunks/chunks.go` to merge multiple time-overlapping Chunk Metas. - - Added `MinTime` and `MaxTime` method for `BlockReader`. - - [FEATURE] New `dump` command to tsdb tool to dump all samples. - - [FEATURE] New `encoding` package for common binary encoding/decoding helpers. - - Added to remove some code duplication. - - [ENHANCEMENT] When closing the db any running compaction will be cancelled so it doesn't block. - - `NewLeveledCompactor` takes a context. - - [CHANGE] `prometheus_tsdb_storage_blocks_bytes_total` is now `prometheus_tsdb_storage_blocks_bytes`. - - [BUGFIX] Improved Postings Merge performance. Fixes a regression from the the previous release. - - [BUGFIX] LiveReader can get into an infinite loop on corrupt WALs. - -## 0.4.0 - - [CHANGE] New `WALSegmentSize` option to override the `DefaultOptions.WALSegmentSize`. Added to allow using smaller wal files. For example using tmpfs on a RPI to minimise the SD card wear out from the constant WAL writes. As part of this change the `DefaultOptions.WALSegmentSize` constant was also exposed. - - [CHANGE] Empty blocks are not written during compaction [#374](https://github.com/prometheus/tsdb/pull/374) - - [FEATURE] Size base retention through `Options.MaxBytes`. As part of this change: - - Added new metrics - `prometheus_tsdb_storage_blocks_bytes_total`, `prometheus_tsdb_size_retentions_total`, `prometheus_tsdb_time_retentions_total` - - New public interface `SizeReader: Size() int64` - - `OpenBlock` signature changed to take a logger. - - [REMOVED] `PrefixMatcher` is considered unused so was removed. - - [CLEANUP] `Options.WALFlushInterval` is removed as it wasn't used anywhere. - - [FEATURE] Add new `LiveReader` to WAL pacakge. Added to allow live tailing of a WAL segment, used by Prometheus Remote Write after refactor. The main difference between the new reader and the existing `Reader` is that for `LiveReader` a call to `Next()` that returns false does not mean that there will never be more data to read. - -## 0.3.1 - - [BUGFIX] Fixed most windows test and some actual bugs for unclosed file readers. - -## 0.3.0 - - [CHANGE] `LastCheckpoint()` used to return just the segment name and now it returns the full relative path. - - [CHANGE] `NewSegmentsRangeReader()` can now read over miltiple wal ranges by using the new `SegmentRange{}` struct. - - [CHANGE] `CorruptionErr{}` now also exposes the Segment `Dir` which is added when displaying any errors. - - [CHANGE] `Head.Init()` is changed to `Head.Init(minValidTime int64)` - - [CHANGE] `SymbolTable()` renamed to `SymbolTableSize()` to make the name consistent with the `Block{ symbolTableSize uint64 }` field. - - [CHANGE] `wal.Reader{}` now exposes `Segment()` for the current segment being read and `Offset()` for the current offset. - - [FEATURE] tsdbutil analyze subcomand to find churn, high cardinality, etc. diff --git a/vendor/github.com/prometheus/tsdb/MAINTAINERS.md b/vendor/github.com/prometheus/tsdb/MAINTAINERS.md deleted file mode 100644 index dcb57a80..00000000 --- a/vendor/github.com/prometheus/tsdb/MAINTAINERS.md +++ /dev/null @@ -1,4 +0,0 @@ -Maintainers of this repository: - -* Krasi Georgiev @krasi-georgiev -* Goutham Veeramachaneni @gouthamve \ No newline at end of file diff --git a/vendor/github.com/prometheus/tsdb/Makefile b/vendor/github.com/prometheus/tsdb/Makefile deleted file mode 100644 index 7c35f8df..00000000 --- a/vendor/github.com/prometheus/tsdb/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2018 The Prometheus Authors -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -TSDB_PROJECT_DIR = "." -TSDB_CLI_DIR="$(TSDB_PROJECT_DIR)/cmd/tsdb" -TSDB_BIN = "$(TSDB_CLI_DIR)/tsdb" -TSDB_BENCHMARK_NUM_METRICS ?= 1000 -TSDB_BENCHMARK_DATASET ?= "$(TSDB_PROJECT_DIR)/testdata/20kseries.json" -TSDB_BENCHMARK_OUTPUT_DIR ?= "$(TSDB_CLI_DIR)/benchout" - -include Makefile.common - -build: - GO111MODULE=$(GO111MODULE) $(GO) build -o $(TSDB_BIN) $(TSDB_CLI_DIR) - -bench: build - @echo ">> running benchmark, writing result to $(TSDB_BENCHMARK_OUTPUT_DIR)" - @$(TSDB_BIN) bench write --metrics=$(TSDB_BENCHMARK_NUM_METRICS) --out=$(TSDB_BENCHMARK_OUTPUT_DIR) $(TSDB_BENCHMARK_DATASET) - @$(GO) tool pprof -svg $(TSDB_BIN) $(TSDB_BENCHMARK_OUTPUT_DIR)/cpu.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/cpuprof.svg - @$(GO) tool pprof --inuse_space -svg $(TSDB_BIN) $(TSDB_BENCHMARK_OUTPUT_DIR)/mem.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/memprof.inuse.svg - @$(GO) tool pprof --alloc_space -svg $(TSDB_BIN) $(TSDB_BENCHMARK_OUTPUT_DIR)/mem.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/memprof.alloc.svg - @$(GO) tool pprof -svg $(TSDB_BIN) $(TSDB_BENCHMARK_OUTPUT_DIR)/block.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/blockprof.svg - @$(GO) tool pprof -svg $(TSDB_BIN) $(TSDB_BENCHMARK_OUTPUT_DIR)/mutex.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/mutexprof.svg diff --git a/vendor/github.com/prometheus/tsdb/Makefile.common b/vendor/github.com/prometheus/tsdb/Makefile.common deleted file mode 100644 index 108e4940..00000000 --- a/vendor/github.com/prometheus/tsdb/Makefile.common +++ /dev/null @@ -1,240 +0,0 @@ -# Copyright 2018 The Prometheus Authors -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# A common Makefile that includes rules to be reused in different prometheus projects. -# !!! Open PRs only against the prometheus/prometheus/Makefile.common repository! - -# Example usage : -# Create the main Makefile in the root project directory. -# include Makefile.common -# customTarget: -# @echo ">> Running customTarget" -# - -# Ensure GOBIN is not set during build so that promu is installed to the correct path -unexport GOBIN - -GO ?= go -GOFMT ?= $(GO)fmt -FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) -GOOPTS ?= -GOHOSTOS ?= $(shell $(GO) env GOHOSTOS) -GOHOSTARCH ?= $(shell $(GO) env GOHOSTARCH) - -GO_VERSION ?= $(shell $(GO) version) -GO_VERSION_NUMBER ?= $(word 3, $(GO_VERSION)) -PRE_GO_111 ?= $(shell echo $(GO_VERSION_NUMBER) | grep -E 'go1\.(10|[0-9])\.') - -GOVENDOR := -GO111MODULE := -ifeq (, $(PRE_GO_111)) - ifneq (,$(wildcard go.mod)) - # Enforce Go modules support just in case the directory is inside GOPATH (and for Travis CI). - GO111MODULE := on - - ifneq (,$(wildcard vendor)) - # Always use the local vendor/ directory to satisfy the dependencies. - GOOPTS := $(GOOPTS) -mod=vendor - endif - endif -else - ifneq (,$(wildcard go.mod)) - ifneq (,$(wildcard vendor)) -$(warning This repository requires Go >= 1.11 because of Go modules) -$(warning Some recipes may not work as expected as the current Go runtime is '$(GO_VERSION_NUMBER)') - endif - else - # This repository isn't using Go modules (yet). - GOVENDOR := $(FIRST_GOPATH)/bin/govendor - endif -endif -PROMU := $(FIRST_GOPATH)/bin/promu -STATICCHECK := $(FIRST_GOPATH)/bin/staticcheck -pkgs = ./... - -ifeq (arm, $(GOHOSTARCH)) - GOHOSTARM ?= $(shell GOARM= $(GO) env GOARM) - GO_BUILD_PLATFORM ?= $(GOHOSTOS)-$(GOHOSTARCH)v$(GOHOSTARM) -else - GO_BUILD_PLATFORM ?= $(GOHOSTOS)-$(GOHOSTARCH) -endif - -PROMU_VERSION ?= 0.3.0 -PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz -STATICCHECK_VERSION ?= 2019.1 -STATICCHECK_URL := https://github.com/dominikh/go-tools/releases/download/$(STATICCHECK_VERSION)/staticcheck_$(GOHOSTOS)_$(GOHOSTARCH) - -PREFIX ?= $(shell pwd) -BIN_DIR ?= $(shell pwd) -DOCKER_IMAGE_TAG ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD)) -DOCKER_REPO ?= prom - -ifeq ($(GOHOSTARCH),amd64) - ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux freebsd darwin windows)) - # Only supported on amd64 - test-flags := -race - endif -endif - -# This rule is used to forward a target like "build" to "common-build". This -# allows a new "build" target to be defined in a Makefile which includes this -# one and override "common-build" without override warnings. -%: common-% ; - -.PHONY: common-all -common-all: precheck style check_license staticcheck unused build test - -.PHONY: common-style -common-style: - @echo ">> checking code style" - @fmtRes=$$($(GOFMT) -d $$(find . -path ./vendor -prune -o -name '*.go' -print)); \ - if [ -n "$${fmtRes}" ]; then \ - echo "gofmt checking failed!"; echo "$${fmtRes}"; echo; \ - echo "Please ensure you are using $$($(GO) version) for formatting code."; \ - exit 1; \ - fi - -.PHONY: common-check_license -common-check_license: - @echo ">> checking license header" - @licRes=$$(for file in $$(find . -type f -iname '*.go' ! -path './vendor/*') ; do \ - awk 'NR<=3' $$file | grep -Eq "(Copyright|generated|GENERATED)" || echo $$file; \ - done); \ - if [ -n "$${licRes}" ]; then \ - echo "license header checking failed:"; echo "$${licRes}"; \ - exit 1; \ - fi - -.PHONY: common-deps -common-deps: - @echo ">> getting dependencies" -ifdef GO111MODULE - GO111MODULE=$(GO111MODULE) $(GO) mod download -else - $(GO) get $(GOOPTS) -t ./... -endif - -.PHONY: common-test-short -common-test-short: - @echo ">> running short tests" - GO111MODULE=$(GO111MODULE) $(GO) test -short $(GOOPTS) $(pkgs) - -.PHONY: common-test -common-test: - @echo ">> running all tests" - GO111MODULE=$(GO111MODULE) $(GO) test $(test-flags) $(GOOPTS) $(pkgs) - -.PHONY: common-format -common-format: - @echo ">> formatting code" - GO111MODULE=$(GO111MODULE) $(GO) fmt $(pkgs) - -.PHONY: common-vet -common-vet: - @echo ">> vetting code" - GO111MODULE=$(GO111MODULE) $(GO) vet $(GOOPTS) $(pkgs) - -.PHONY: common-staticcheck -common-staticcheck: $(STATICCHECK) - @echo ">> running staticcheck" - chmod +x $(STATICCHECK) -ifdef GO111MODULE -# 'go list' needs to be executed before staticcheck to prepopulate the modules cache. -# Otherwise staticcheck might fail randomly for some reason not yet explained. - GO111MODULE=$(GO111MODULE) $(GO) list -e -compiled -test=true -export=false -deps=true -find=false -tags= -- ./... > /dev/null - GO111MODULE=$(GO111MODULE) $(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" $(pkgs) -else - $(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" $(pkgs) -endif - -.PHONY: common-unused -common-unused: $(GOVENDOR) -ifdef GOVENDOR - @echo ">> running check for unused packages" - @$(GOVENDOR) list +unused | grep . && exit 1 || echo 'No unused packages' -else -ifdef GO111MODULE - @echo ">> running check for unused/missing packages in go.mod" - GO111MODULE=$(GO111MODULE) $(GO) mod tidy -ifeq (,$(wildcard vendor)) - @git diff --exit-code -- go.sum go.mod -else - @echo ">> running check for unused packages in vendor/" - GO111MODULE=$(GO111MODULE) $(GO) mod vendor - @git diff --exit-code -- go.sum go.mod vendor/ -endif -endif -endif - -.PHONY: common-build -common-build: promu - @echo ">> building binaries" - GO111MODULE=$(GO111MODULE) $(PROMU) build --prefix $(PREFIX) - -.PHONY: common-tarball -common-tarball: promu - @echo ">> building release tarball" - $(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR) - -.PHONY: common-docker -common-docker: - docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" . - -.PHONY: common-docker-publish -common-docker-publish: - docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)" - -.PHONY: common-docker-tag-latest -common-docker-tag-latest: - docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):latest" - -.PHONY: promu -promu: $(PROMU) - -$(PROMU): - $(eval PROMU_TMP := $(shell mktemp -d)) - curl -s -L $(PROMU_URL) | tar -xvzf - -C $(PROMU_TMP) - mkdir -p $(FIRST_GOPATH)/bin - cp $(PROMU_TMP)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM)/promu $(FIRST_GOPATH)/bin/promu - rm -r $(PROMU_TMP) - -.PHONY: proto -proto: - @echo ">> generating code from proto files" - @./scripts/genproto.sh - -$(STATICCHECK): - mkdir -p $(FIRST_GOPATH)/bin - curl -s -L $(STATICCHECK_URL) > $(STATICCHECK) - -ifdef GOVENDOR -.PHONY: $(GOVENDOR) -$(GOVENDOR): - GOOS= GOARCH= $(GO) get -u github.com/kardianos/govendor -endif - -.PHONY: precheck -precheck:: - -define PRECHECK_COMMAND_template = -precheck:: $(1)_precheck - -PRECHECK_COMMAND_$(1) ?= $(1) $$(strip $$(PRECHECK_OPTIONS_$(1))) -.PHONY: $(1)_precheck -$(1)_precheck: - @if ! $$(PRECHECK_COMMAND_$(1)) 1>/dev/null 2>&1; then \ - echo "Execution of '$$(PRECHECK_COMMAND_$(1))' command failed. Is $(1) installed?"; \ - exit 1; \ - fi -endef diff --git a/vendor/github.com/prometheus/tsdb/README.md b/vendor/github.com/prometheus/tsdb/README.md deleted file mode 100644 index c62d616d..00000000 --- a/vendor/github.com/prometheus/tsdb/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# TSDB - -[![Build Status](https://travis-ci.org/prometheus/tsdb.svg?branch=master)](https://travis-ci.org/prometheus/tsdb) -[![GoDoc](https://godoc.org/github.com/prometheus/tsdb?status.svg)](https://godoc.org/github.com/prometheus/tsdb) -[![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/tsdb)](https://goreportcard.com/report/github.com/prometheus/tsdb) - -This repository contains the Prometheus storage layer that is used in its 2.x releases. - -A writeup of its design can be found [here](https://fabxc.org/blog/2017-04-10-writing-a-tsdb/). - -Based on the Gorilla TSDB [white papers](http://www.vldb.org/pvldb/vol8/p1816-teller.pdf). - -Video: [Storing 16 Bytes at Scale](https://youtu.be/b_pEevMAC3I) from [PromCon 2017](https://promcon.io/2017-munich/). - -See also the [format documentation](docs/format/README.md). diff --git a/vendor/github.com/prometheus/tsdb/block.go b/vendor/github.com/prometheus/tsdb/block.go deleted file mode 100644 index e08503b6..00000000 --- a/vendor/github.com/prometheus/tsdb/block.go +++ /dev/null @@ -1,646 +0,0 @@ -// Copyright 2017 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "encoding/json" - "io" - "io/ioutil" - "os" - "path/filepath" - "sync" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/oklog/ulid" - "github.com/pkg/errors" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" -) - -// IndexWriter serializes the index for a block of series data. -// The methods must be called in the order they are specified in. -type IndexWriter interface { - // AddSymbols registers all string symbols that are encountered in series - // and other indices. - AddSymbols(sym map[string]struct{}) error - - // AddSeries populates the index writer with a series and its offsets - // of chunks that the index can reference. - // Implementations may require series to be insert in increasing order by - // their labels. - // The reference numbers are used to resolve entries in postings lists that - // are added later. - AddSeries(ref uint64, l labels.Labels, chunks ...chunks.Meta) error - - // WriteLabelIndex serializes an index from label names to values. - // The passed in values chained tuples of strings of the length of names. - WriteLabelIndex(names []string, values []string) error - - // WritePostings writes a postings list for a single label pair. - // The Postings here contain refs to the series that were added. - WritePostings(name, value string, it index.Postings) error - - // Close writes any finalization and closes the resources associated with - // the underlying writer. - Close() error -} - -// IndexReader provides reading access of serialized index data. -type IndexReader interface { - // Symbols returns a set of string symbols that may occur in series' labels - // and indices. - Symbols() (map[string]struct{}, error) - - // LabelValues returns the possible label values. - LabelValues(names ...string) (index.StringTuples, error) - - // Postings returns the postings list iterator for the label pair. - // The Postings here contain the offsets to the series inside the index. - // Found IDs are not strictly required to point to a valid Series, e.g. during - // background garbage collections. - Postings(name, value string) (index.Postings, error) - - // SortedPostings returns a postings list that is reordered to be sorted - // by the label set of the underlying series. - SortedPostings(index.Postings) index.Postings - - // Series populates the given labels and chunk metas for the series identified - // by the reference. - // Returns ErrNotFound if the ref does not resolve to a known series. - Series(ref uint64, lset *labels.Labels, chks *[]chunks.Meta) error - - // LabelIndices returns a list of string tuples for which a label value index exists. - // NOTE: This is deprecated. Use `LabelNames()` instead. - LabelIndices() ([][]string, error) - - // LabelNames returns all the unique label names present in the index in sorted order. - LabelNames() ([]string, error) - - // Close releases the underlying resources of the reader. - Close() error -} - -// StringTuples provides access to a sorted list of string tuples. -type StringTuples interface { - // Total number of tuples in the list. - Len() int - // At returns the tuple at position i. - At(i int) ([]string, error) -} - -// ChunkWriter serializes a time block of chunked series data. -type ChunkWriter interface { - // WriteChunks writes several chunks. The Chunk field of the ChunkMetas - // must be populated. - // After returning successfully, the Ref fields in the ChunkMetas - // are set and can be used to retrieve the chunks from the written data. - WriteChunks(chunks ...chunks.Meta) error - - // Close writes any required finalization and closes the resources - // associated with the underlying writer. - Close() error -} - -// ChunkReader provides reading access of serialized time series data. -type ChunkReader interface { - // Chunk returns the series data chunk with the given reference. - Chunk(ref uint64) (chunkenc.Chunk, error) - - // Close releases all underlying resources of the reader. - Close() error -} - -// BlockReader provides reading access to a data block. -type BlockReader interface { - // Index returns an IndexReader over the block's data. - Index() (IndexReader, error) - - // Chunks returns a ChunkReader over the block's data. - Chunks() (ChunkReader, error) - - // Tombstones returns a TombstoneReader over the block's deleted data. - Tombstones() (TombstoneReader, error) - - // MinTime returns the min time of the block. - MinTime() int64 - - // MaxTime returns the max time of the block. - MaxTime() int64 -} - -// Appendable defines an entity to which data can be appended. -type Appendable interface { - // Appender returns a new Appender against an underlying store. - Appender() Appender -} - -// SizeReader returns the size of the object in bytes. -type SizeReader interface { - // Size returns the size in bytes. - Size() int64 -} - -// BlockMeta provides meta information about a block. -type BlockMeta struct { - // Unique identifier for the block and its contents. Changes on compaction. - ULID ulid.ULID `json:"ulid"` - - // MinTime and MaxTime specify the time range all samples - // in the block are in. - MinTime int64 `json:"minTime"` - MaxTime int64 `json:"maxTime"` - - // Stats about the contents of the block. - Stats BlockStats `json:"stats,omitempty"` - - // Information on compactions the block was created from. - Compaction BlockMetaCompaction `json:"compaction"` - - // Version of the index format. - Version int `json:"version"` -} - -// BlockStats contains stats about contents of a block. -type BlockStats struct { - NumSamples uint64 `json:"numSamples,omitempty"` - NumSeries uint64 `json:"numSeries,omitempty"` - NumChunks uint64 `json:"numChunks,omitempty"` - NumTombstones uint64 `json:"numTombstones,omitempty"` - NumBytes int64 `json:"numBytes,omitempty"` -} - -// BlockDesc describes a block by ULID and time range. -type BlockDesc struct { - ULID ulid.ULID `json:"ulid"` - MinTime int64 `json:"minTime"` - MaxTime int64 `json:"maxTime"` -} - -// BlockMetaCompaction holds information about compactions a block went through. -type BlockMetaCompaction struct { - // Maximum number of compaction cycles any source block has - // gone through. - Level int `json:"level"` - // ULIDs of all source head blocks that went into the block. - Sources []ulid.ULID `json:"sources,omitempty"` - // Indicates that during compaction it resulted in a block without any samples - // so it should be deleted on the next reload. - Deletable bool `json:"deletable,omitempty"` - // Short descriptions of the direct blocks that were used to create - // this block. - Parents []BlockDesc `json:"parents,omitempty"` - Failed bool `json:"failed,omitempty"` -} - -const indexFilename = "index" -const metaFilename = "meta.json" - -func chunkDir(dir string) string { return filepath.Join(dir, "chunks") } - -func readMetaFile(dir string) (*BlockMeta, error) { - b, err := ioutil.ReadFile(filepath.Join(dir, metaFilename)) - if err != nil { - return nil, err - } - var m BlockMeta - - if err := json.Unmarshal(b, &m); err != nil { - return nil, err - } - if m.Version != 1 { - return nil, errors.Errorf("unexpected meta file version %d", m.Version) - } - - return &m, nil -} - -func writeMetaFile(dir string, meta *BlockMeta) error { - meta.Version = 1 - - // Make any changes to the file appear atomic. - path := filepath.Join(dir, metaFilename) - tmp := path + ".tmp" - - f, err := os.Create(tmp) - if err != nil { - return err - } - - enc := json.NewEncoder(f) - enc.SetIndent("", "\t") - - var merr tsdb_errors.MultiError - - if merr.Add(enc.Encode(meta)); merr.Err() != nil { - merr.Add(f.Close()) - return merr.Err() - } - // Force the kernel to persist the file on disk to avoid data loss if the host crashes. - if merr.Add(f.Sync()); merr.Err() != nil { - merr.Add(f.Close()) - return merr.Err() - } - if err := f.Close(); err != nil { - return err - } - return renameFile(tmp, path) -} - -// Block represents a directory of time series data covering a continuous time range. -type Block struct { - mtx sync.RWMutex - closing bool - pendingReaders sync.WaitGroup - - dir string - meta BlockMeta - - // Symbol Table Size in bytes. - // We maintain this variable to avoid recalculation everytime. - symbolTableSize uint64 - - chunkr ChunkReader - indexr IndexReader - tombstones TombstoneReader -} - -// OpenBlock opens the block in the directory. It can be passed a chunk pool, which is used -// to instantiate chunk structs. -func OpenBlock(logger log.Logger, dir string, pool chunkenc.Pool) (pb *Block, err error) { - if logger == nil { - logger = log.NewNopLogger() - } - var closers []io.Closer - defer func() { - if err != nil { - var merr tsdb_errors.MultiError - merr.Add(err) - merr.Add(closeAll(closers)) - err = merr.Err() - } - }() - meta, err := readMetaFile(dir) - if err != nil { - return nil, err - } - - cr, err := chunks.NewDirReader(chunkDir(dir), pool) - if err != nil { - return nil, err - } - closers = append(closers, cr) - - ir, err := index.NewFileReader(filepath.Join(dir, indexFilename)) - if err != nil { - return nil, err - } - closers = append(closers, ir) - - tr, tsr, err := readTombstones(dir) - if err != nil { - return nil, err - } - closers = append(closers, tr) - - // TODO refactor to set this at block creation time as - // that would be the logical place for a block size to be calculated. - bs := blockSize(cr, ir, tsr) - meta.Stats.NumBytes = bs - err = writeMetaFile(dir, meta) - if err != nil { - level.Warn(logger).Log("msg", "couldn't write the meta file for the block size", "block", dir, "err", err) - } - - pb = &Block{ - dir: dir, - meta: *meta, - chunkr: cr, - indexr: ir, - tombstones: tr, - symbolTableSize: ir.SymbolTableSize(), - } - return pb, nil -} - -func blockSize(rr ...SizeReader) int64 { - var total int64 - for _, r := range rr { - if r != nil { - total += r.Size() - } - } - return total -} - -// Close closes the on-disk block. It blocks as long as there are readers reading from the block. -func (pb *Block) Close() error { - pb.mtx.Lock() - pb.closing = true - pb.mtx.Unlock() - - pb.pendingReaders.Wait() - - var merr tsdb_errors.MultiError - - merr.Add(pb.chunkr.Close()) - merr.Add(pb.indexr.Close()) - merr.Add(pb.tombstones.Close()) - - return merr.Err() -} - -func (pb *Block) String() string { - return pb.meta.ULID.String() -} - -// Dir returns the directory of the block. -func (pb *Block) Dir() string { return pb.dir } - -// Meta returns meta information about the block. -func (pb *Block) Meta() BlockMeta { return pb.meta } - -// MinTime returns the min time of the meta. -func (pb *Block) MinTime() int64 { return pb.meta.MinTime } - -// MaxTime returns the max time of the meta. -func (pb *Block) MaxTime() int64 { return pb.meta.MaxTime } - -// Size returns the number of bytes that the block takes up. -func (pb *Block) Size() int64 { return pb.meta.Stats.NumBytes } - -// ErrClosing is returned when a block is in the process of being closed. -var ErrClosing = errors.New("block is closing") - -func (pb *Block) startRead() error { - pb.mtx.RLock() - defer pb.mtx.RUnlock() - - if pb.closing { - return ErrClosing - } - pb.pendingReaders.Add(1) - return nil -} - -// Index returns a new IndexReader against the block data. -func (pb *Block) Index() (IndexReader, error) { - if err := pb.startRead(); err != nil { - return nil, err - } - return blockIndexReader{ir: pb.indexr, b: pb}, nil -} - -// Chunks returns a new ChunkReader against the block data. -func (pb *Block) Chunks() (ChunkReader, error) { - if err := pb.startRead(); err != nil { - return nil, err - } - return blockChunkReader{ChunkReader: pb.chunkr, b: pb}, nil -} - -// Tombstones returns a new TombstoneReader against the block data. -func (pb *Block) Tombstones() (TombstoneReader, error) { - if err := pb.startRead(); err != nil { - return nil, err - } - return blockTombstoneReader{TombstoneReader: pb.tombstones, b: pb}, nil -} - -// GetSymbolTableSize returns the Symbol Table Size in the index of this block. -func (pb *Block) GetSymbolTableSize() uint64 { - return pb.symbolTableSize -} - -func (pb *Block) setCompactionFailed() error { - pb.meta.Compaction.Failed = true - return writeMetaFile(pb.dir, &pb.meta) -} - -type blockIndexReader struct { - ir IndexReader - b *Block -} - -func (r blockIndexReader) Symbols() (map[string]struct{}, error) { - s, err := r.ir.Symbols() - return s, errors.Wrapf(err, "block: %s", r.b.Meta().ULID) -} - -func (r blockIndexReader) LabelValues(names ...string) (index.StringTuples, error) { - st, err := r.ir.LabelValues(names...) - return st, errors.Wrapf(err, "block: %s", r.b.Meta().ULID) -} - -func (r blockIndexReader) Postings(name, value string) (index.Postings, error) { - p, err := r.ir.Postings(name, value) - return p, errors.Wrapf(err, "block: %s", r.b.Meta().ULID) -} - -func (r blockIndexReader) SortedPostings(p index.Postings) index.Postings { - return r.ir.SortedPostings(p) -} - -func (r blockIndexReader) Series(ref uint64, lset *labels.Labels, chks *[]chunks.Meta) error { - return errors.Wrapf( - r.ir.Series(ref, lset, chks), - "block: %s", - r.b.Meta().ULID, - ) -} - -func (r blockIndexReader) LabelIndices() ([][]string, error) { - ss, err := r.ir.LabelIndices() - return ss, errors.Wrapf(err, "block: %s", r.b.Meta().ULID) -} - -func (r blockIndexReader) LabelNames() ([]string, error) { - return r.b.LabelNames() -} - -func (r blockIndexReader) Close() error { - r.b.pendingReaders.Done() - return nil -} - -type blockTombstoneReader struct { - TombstoneReader - b *Block -} - -func (r blockTombstoneReader) Close() error { - r.b.pendingReaders.Done() - return nil -} - -type blockChunkReader struct { - ChunkReader - b *Block -} - -func (r blockChunkReader) Close() error { - r.b.pendingReaders.Done() - return nil -} - -// Delete matching series between mint and maxt in the block. -func (pb *Block) Delete(mint, maxt int64, ms ...labels.Matcher) error { - pb.mtx.Lock() - defer pb.mtx.Unlock() - - if pb.closing { - return ErrClosing - } - - p, err := PostingsForMatchers(pb.indexr, ms...) - if err != nil { - return errors.Wrap(err, "select series") - } - - ir := pb.indexr - - // Choose only valid postings which have chunks in the time-range. - stones := newMemTombstones() - - var lset labels.Labels - var chks []chunks.Meta - -Outer: - for p.Next() { - err := ir.Series(p.At(), &lset, &chks) - if err != nil { - return err - } - - for _, chk := range chks { - if chk.OverlapsClosedInterval(mint, maxt) { - // Delete only until the current values and not beyond. - tmin, tmax := clampInterval(mint, maxt, chks[0].MinTime, chks[len(chks)-1].MaxTime) - stones.addInterval(p.At(), Interval{tmin, tmax}) - continue Outer - } - } - } - - if p.Err() != nil { - return p.Err() - } - - err = pb.tombstones.Iter(func(id uint64, ivs Intervals) error { - for _, iv := range ivs { - stones.addInterval(id, iv) - } - return nil - }) - if err != nil { - return err - } - pb.tombstones = stones - pb.meta.Stats.NumTombstones = pb.tombstones.Total() - - if err := writeTombstoneFile(pb.dir, pb.tombstones); err != nil { - return err - } - return writeMetaFile(pb.dir, &pb.meta) -} - -// CleanTombstones will remove the tombstones and rewrite the block (only if there are any tombstones). -// If there was a rewrite, then it returns the ULID of the new block written, else nil. -func (pb *Block) CleanTombstones(dest string, c Compactor) (*ulid.ULID, error) { - numStones := 0 - - if err := pb.tombstones.Iter(func(id uint64, ivs Intervals) error { - numStones += len(ivs) - return nil - }); err != nil { - // This should never happen, as the iteration function only returns nil. - panic(err) - } - if numStones == 0 { - return nil, nil - } - - meta := pb.Meta() - uid, err := c.Write(dest, pb, pb.meta.MinTime, pb.meta.MaxTime, &meta) - if err != nil { - return nil, err - } - return &uid, nil -} - -// Snapshot creates snapshot of the block into dir. -func (pb *Block) Snapshot(dir string) error { - blockDir := filepath.Join(dir, pb.meta.ULID.String()) - if err := os.MkdirAll(blockDir, 0777); err != nil { - return errors.Wrap(err, "create snapshot block dir") - } - - chunksDir := chunkDir(blockDir) - if err := os.MkdirAll(chunksDir, 0777); err != nil { - return errors.Wrap(err, "create snapshot chunk dir") - } - - // Hardlink meta, index and tombstones - for _, fname := range []string{ - metaFilename, - indexFilename, - tombstoneFilename, - } { - if err := os.Link(filepath.Join(pb.dir, fname), filepath.Join(blockDir, fname)); err != nil { - return errors.Wrapf(err, "create snapshot %s", fname) - } - } - - // Hardlink the chunks - curChunkDir := chunkDir(pb.dir) - files, err := ioutil.ReadDir(curChunkDir) - if err != nil { - return errors.Wrap(err, "ReadDir the current chunk dir") - } - - for _, f := range files { - err := os.Link(filepath.Join(curChunkDir, f.Name()), filepath.Join(chunksDir, f.Name())) - if err != nil { - return errors.Wrap(err, "hardlink a chunk") - } - } - - return nil -} - -// OverlapsClosedInterval returns true if the block overlaps [mint, maxt]. -func (pb *Block) OverlapsClosedInterval(mint, maxt int64) bool { - // The block itself is a half-open interval - // [pb.meta.MinTime, pb.meta.MaxTime). - return pb.meta.MinTime <= maxt && mint < pb.meta.MaxTime -} - -// LabelNames returns all the unique label names present in the Block in sorted order. -func (pb *Block) LabelNames() ([]string, error) { - return pb.indexr.LabelNames() -} - -func clampInterval(a, b, mint, maxt int64) (int64, int64) { - if a < mint { - a = mint - } - if b > maxt { - b = maxt - } - return a, b -} diff --git a/vendor/github.com/prometheus/tsdb/block_test.go b/vendor/github.com/prometheus/tsdb/block_test.go deleted file mode 100644 index c6c3951d..00000000 --- a/vendor/github.com/prometheus/tsdb/block_test.go +++ /dev/null @@ -1,254 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "context" - "encoding/binary" - "errors" - "io/ioutil" - "math/rand" - "os" - "path/filepath" - "testing" - - "github.com/go-kit/kit/log" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/testutil" - "github.com/prometheus/tsdb/tsdbutil" -) - -// In Prometheus 2.1.0 we had a bug where the meta.json version was falsely bumped -// to 2. We had a migration in place resetting it to 1 but we should move immediately to -// version 3 next time to avoid confusion and issues. -func TestBlockMetaMustNeverBeVersion2(t *testing.T) { - dir, err := ioutil.TempDir("", "metaversion") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - testutil.Ok(t, writeMetaFile(dir, &BlockMeta{})) - - meta, err := readMetaFile(dir) - testutil.Ok(t, err) - testutil.Assert(t, meta.Version != 2, "meta.json version must never be 2") -} - -func TestSetCompactionFailed(t *testing.T) { - tmpdir, err := ioutil.TempDir("", "test") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - blockDir := createBlock(t, tmpdir, genSeries(1, 1, 0, 0)) - b, err := OpenBlock(nil, blockDir, nil) - testutil.Ok(t, err) - testutil.Equals(t, false, b.meta.Compaction.Failed) - testutil.Ok(t, b.setCompactionFailed()) - testutil.Equals(t, true, b.meta.Compaction.Failed) - testutil.Ok(t, b.Close()) - - b, err = OpenBlock(nil, blockDir, nil) - testutil.Ok(t, err) - testutil.Equals(t, true, b.meta.Compaction.Failed) - testutil.Ok(t, b.Close()) -} - -func TestCreateBlock(t *testing.T) { - tmpdir, err := ioutil.TempDir("", "test") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - b, err := OpenBlock(nil, createBlock(t, tmpdir, genSeries(1, 1, 0, 10)), nil) - if err == nil { - testutil.Ok(t, b.Close()) - } - testutil.Ok(t, err) -} - -func TestCorruptedChunk(t *testing.T) { - for name, test := range map[string]struct { - corrFunc func(f *os.File) // Func that applies the corruption. - expErr error - }{ - "invalid header size": { - func(f *os.File) { - err := f.Truncate(1) - testutil.Ok(t, err) - }, - errors.New("invalid chunk header in segment 0: invalid size"), - }, - "invalid magic number": { - func(f *os.File) { - magicChunksOffset := int64(0) - _, err := f.Seek(magicChunksOffset, 0) - testutil.Ok(t, err) - - // Set invalid magic number. - b := make([]byte, chunks.MagicChunksSize) - binary.BigEndian.PutUint32(b[:chunks.MagicChunksSize], 0x00000000) - n, err := f.Write(b) - testutil.Ok(t, err) - testutil.Equals(t, chunks.MagicChunksSize, n) - }, - errors.New("invalid magic number 0"), - }, - "invalid chunk format version": { - func(f *os.File) { - chunksFormatVersionOffset := int64(4) - _, err := f.Seek(chunksFormatVersionOffset, 0) - testutil.Ok(t, err) - - // Set invalid chunk format version. - b := make([]byte, chunks.ChunksFormatVersionSize) - b[0] = 0 - n, err := f.Write(b) - testutil.Ok(t, err) - testutil.Equals(t, chunks.ChunksFormatVersionSize, n) - }, - errors.New("invalid chunk format version 0"), - }, - } { - t.Run(name, func(t *testing.T) { - tmpdir, err := ioutil.TempDir("", "test_open_block_chunk_corrupted") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - blockDir := createBlock(t, tmpdir, genSeries(1, 1, 0, 0)) - files, err := sequenceFiles(chunkDir(blockDir)) - testutil.Ok(t, err) - testutil.Assert(t, len(files) > 0, "No chunk created.") - - f, err := os.OpenFile(files[0], os.O_RDWR, 0666) - testutil.Ok(t, err) - - // Apply corruption function. - test.corrFunc(f) - testutil.Ok(t, f.Close()) - - _, err = OpenBlock(nil, blockDir, nil) - testutil.Equals(t, test.expErr.Error(), err.Error()) - }) - } -} - -// createBlock creates a block with given set of series and returns its dir. -func createBlock(tb testing.TB, dir string, series []Series) string { - head, err := NewHead(nil, nil, nil, 2*60*60*1000) - testutil.Ok(tb, err) - defer head.Close() - - app := head.Appender() - for _, s := range series { - ref := uint64(0) - it := s.Iterator() - for it.Next() { - t, v := it.At() - if ref != 0 { - err := app.AddFast(ref, t, v) - if err == nil { - continue - } - } - ref, err = app.Add(s.Labels(), t, v) - testutil.Ok(tb, err) - } - testutil.Ok(tb, it.Err()) - } - err = app.Commit() - testutil.Ok(tb, err) - - compactor, err := NewLeveledCompactor(context.Background(), nil, log.NewNopLogger(), []int64{1000000}, nil) - testutil.Ok(tb, err) - - testutil.Ok(tb, os.MkdirAll(dir, 0777)) - - ulid, err := compactor.Write(dir, head, head.MinTime(), head.MaxTime(), nil) - testutil.Ok(tb, err) - return filepath.Join(dir, ulid.String()) -} - -// genSeries generates series with a given number of labels and values. -func genSeries(totalSeries, labelCount int, mint, maxt int64) []Series { - if totalSeries == 0 || labelCount == 0 { - return nil - } - - series := make([]Series, totalSeries) - for i := 0; i < totalSeries; i++ { - lbls := make(map[string]string, labelCount) - for len(lbls) < labelCount { - lbls[randString()] = randString() - } - samples := make([]tsdbutil.Sample, 0, maxt-mint+1) - for t := mint; t <= maxt; t++ { - samples = append(samples, sample{t: t, v: rand.Float64()}) - } - series[i] = newSeries(lbls, samples) - } - return series -} - -// populateSeries generates series from given labels, mint and maxt. -func populateSeries(lbls []map[string]string, mint, maxt int64) []Series { - if len(lbls) == 0 { - return nil - } - - series := make([]Series, 0, len(lbls)) - for _, lbl := range lbls { - if len(lbl) == 0 { - continue - } - samples := make([]tsdbutil.Sample, 0, maxt-mint+1) - for t := mint; t <= maxt; t++ { - samples = append(samples, sample{t: t, v: rand.Float64()}) - } - series = append(series, newSeries(lbl, samples)) - } - return series -} - -const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -const ( - letterIdxBits = 6 // 6 bits to represent a letter index - letterIdxMask = 1<= 0; { - if remain == 0 { - cache, remain = rand.Int63(), letterIdxMax - } - if idx := int(cache & letterIdxMask); idx < len(letterBytes) { - b[i] = letterBytes[idx] - i-- - } - cache >>= letterIdxBits - remain-- - } - - return string(b) -} diff --git a/vendor/github.com/prometheus/tsdb/checkpoint.go b/vendor/github.com/prometheus/tsdb/checkpoint.go deleted file mode 100644 index d8dee28a..00000000 --- a/vendor/github.com/prometheus/tsdb/checkpoint.go +++ /dev/null @@ -1,261 +0,0 @@ -// Copyright 2018 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "fmt" - "io" - "io/ioutil" - "math" - "os" - "path/filepath" - "strconv" - "strings" - - "github.com/pkg/errors" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/wal" -) - -// CheckpointStats returns stats about a created checkpoint. -type CheckpointStats struct { - DroppedSeries int - DroppedSamples int - DroppedTombstones int - TotalSeries int // Processed series including dropped ones. - TotalSamples int // Processed samples including dropped ones. - TotalTombstones int // Processed tombstones including dropped ones. -} - -// LastCheckpoint returns the directory name and index of the most recent checkpoint. -// If dir does not contain any checkpoints, ErrNotFound is returned. -func LastCheckpoint(dir string) (string, int, error) { - files, err := ioutil.ReadDir(dir) - if err != nil { - return "", 0, err - } - // Traverse list backwards since there may be multiple checkpoints left. - for i := len(files) - 1; i >= 0; i-- { - fi := files[i] - - if !strings.HasPrefix(fi.Name(), checkpointPrefix) { - continue - } - if !fi.IsDir() { - return "", 0, errors.Errorf("checkpoint %s is not a directory", fi.Name()) - } - idx, err := strconv.Atoi(fi.Name()[len(checkpointPrefix):]) - if err != nil { - continue - } - return filepath.Join(dir, fi.Name()), idx, nil - } - return "", 0, ErrNotFound -} - -// DeleteCheckpoints deletes all checkpoints in a directory below a given index. -func DeleteCheckpoints(dir string, maxIndex int) error { - var errs tsdb_errors.MultiError - - files, err := ioutil.ReadDir(dir) - if err != nil { - return err - } - for _, fi := range files { - if !strings.HasPrefix(fi.Name(), checkpointPrefix) { - continue - } - index, err := strconv.Atoi(fi.Name()[len(checkpointPrefix):]) - if err != nil || index >= maxIndex { - continue - } - if err := os.RemoveAll(filepath.Join(dir, fi.Name())); err != nil { - errs.Add(err) - } - } - return errs.Err() -} - -const checkpointPrefix = "checkpoint." - -// Checkpoint creates a compacted checkpoint of segments in range [first, last] in the given WAL. -// It includes the most recent checkpoint if it exists. -// All series not satisfying keep and samples below mint are dropped. -// -// The checkpoint is stored in a directory named checkpoint.N in the same -// segmented format as the original WAL itself. -// This makes it easy to read it through the WAL package and concatenate -// it with the original WAL. -func Checkpoint(w *wal.WAL, from, to int, keep func(id uint64) bool, mint int64) (*CheckpointStats, error) { - stats := &CheckpointStats{} - var sgmReader io.ReadCloser - - { - - var sgmRange []wal.SegmentRange - dir, idx, err := LastCheckpoint(w.Dir()) - if err != nil && err != ErrNotFound { - return nil, errors.Wrap(err, "find last checkpoint") - } - last := idx + 1 - if err == nil { - if from > last { - return nil, fmt.Errorf("unexpected gap to last checkpoint. expected:%v, requested:%v", last, from) - } - // Ignore WAL files below the checkpoint. They shouldn't exist to begin with. - from = last - - sgmRange = append(sgmRange, wal.SegmentRange{Dir: dir, Last: math.MaxInt32}) - } - - sgmRange = append(sgmRange, wal.SegmentRange{Dir: w.Dir(), First: from, Last: to}) - sgmReader, err = wal.NewSegmentsRangeReader(sgmRange...) - if err != nil { - return nil, errors.Wrap(err, "create segment reader") - } - defer sgmReader.Close() - } - - cpdir := filepath.Join(w.Dir(), fmt.Sprintf(checkpointPrefix+"%06d", to)) - cpdirtmp := cpdir + ".tmp" - - if err := os.MkdirAll(cpdirtmp, 0777); err != nil { - return nil, errors.Wrap(err, "create checkpoint dir") - } - cp, err := wal.New(nil, nil, cpdirtmp) - if err != nil { - return nil, errors.Wrap(err, "open checkpoint") - } - - // Ensures that an early return caused by an error doesn't leave any tmp files. - defer func() { - cp.Close() - os.RemoveAll(cpdirtmp) - }() - - r := wal.NewReader(sgmReader) - - var ( - series []RefSeries - samples []RefSample - tstones []Stone - dec RecordDecoder - enc RecordEncoder - buf []byte - recs [][]byte - ) - for r.Next() { - series, samples, tstones = series[:0], samples[:0], tstones[:0] - - // We don't reset the buffer since we batch up multiple records - // before writing them to the checkpoint. - // Remember where the record for this iteration starts. - start := len(buf) - rec := r.Record() - - switch dec.Type(rec) { - case RecordSeries: - series, err = dec.Series(rec, series) - if err != nil { - return nil, errors.Wrap(err, "decode series") - } - // Drop irrelevant series in place. - repl := series[:0] - for _, s := range series { - if keep(s.Ref) { - repl = append(repl, s) - } - } - if len(repl) > 0 { - buf = enc.Series(repl, buf) - } - stats.TotalSeries += len(series) - stats.DroppedSeries += len(series) - len(repl) - - case RecordSamples: - samples, err = dec.Samples(rec, samples) - if err != nil { - return nil, errors.Wrap(err, "decode samples") - } - // Drop irrelevant samples in place. - repl := samples[:0] - for _, s := range samples { - if s.T >= mint { - repl = append(repl, s) - } - } - if len(repl) > 0 { - buf = enc.Samples(repl, buf) - } - stats.TotalSamples += len(samples) - stats.DroppedSamples += len(samples) - len(repl) - - case RecordTombstones: - tstones, err = dec.Tombstones(rec, tstones) - if err != nil { - return nil, errors.Wrap(err, "decode deletes") - } - // Drop irrelevant tombstones in place. - repl := tstones[:0] - for _, s := range tstones { - for _, iv := range s.intervals { - if iv.Maxt >= mint { - repl = append(repl, s) - break - } - } - } - if len(repl) > 0 { - buf = enc.Tombstones(repl, buf) - } - stats.TotalTombstones += len(tstones) - stats.DroppedTombstones += len(tstones) - len(repl) - - default: - return nil, errors.New("invalid record type") - } - if len(buf[start:]) == 0 { - continue // All contents discarded. - } - recs = append(recs, buf[start:]) - - // Flush records in 1 MB increments. - if len(buf) > 1*1024*1024 { - if err := cp.Log(recs...); err != nil { - return nil, errors.Wrap(err, "flush records") - } - buf, recs = buf[:0], recs[:0] - } - } - // If we hit any corruption during checkpointing, repairing is not an option. - // The head won't know which series records are lost. - if r.Err() != nil { - return nil, errors.Wrap(r.Err(), "read segments") - } - - // Flush remaining records. - if err := cp.Log(recs...); err != nil { - return nil, errors.Wrap(err, "flush records") - } - if err := cp.Close(); err != nil { - return nil, errors.Wrap(err, "close checkpoint") - } - if err := fileutil.Replace(cpdirtmp, cpdir); err != nil { - return nil, errors.Wrap(err, "rename checkpoint directory") - } - - return stats, nil -} diff --git a/vendor/github.com/prometheus/tsdb/checkpoint_test.go b/vendor/github.com/prometheus/tsdb/checkpoint_test.go deleted file mode 100644 index fe8ee4e9..00000000 --- a/vendor/github.com/prometheus/tsdb/checkpoint_test.go +++ /dev/null @@ -1,220 +0,0 @@ -// Copyright 2018 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "fmt" - "io/ioutil" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" - "github.com/prometheus/tsdb/wal" -) - -func TestLastCheckpoint(t *testing.T) { - dir, err := ioutil.TempDir("", "test_checkpoint") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - _, _, err = LastCheckpoint(dir) - testutil.Equals(t, ErrNotFound, err) - - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.0000"), 0777)) - s, k, err := LastCheckpoint(dir) - testutil.Ok(t, err) - testutil.Equals(t, filepath.Join(dir, "checkpoint.0000"), s) - testutil.Equals(t, 0, k) - - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.xyz"), 0777)) - s, k, err = LastCheckpoint(dir) - testutil.Ok(t, err) - testutil.Equals(t, filepath.Join(dir, "checkpoint.0000"), s) - testutil.Equals(t, 0, k) - - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.1"), 0777)) - s, k, err = LastCheckpoint(dir) - testutil.Ok(t, err) - testutil.Equals(t, filepath.Join(dir, "checkpoint.1"), s) - testutil.Equals(t, 1, k) - - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.1000"), 0777)) - s, k, err = LastCheckpoint(dir) - testutil.Ok(t, err) - testutil.Equals(t, filepath.Join(dir, "checkpoint.1000"), s) - testutil.Equals(t, 1000, k) -} - -func TestDeleteCheckpoints(t *testing.T) { - dir, err := ioutil.TempDir("", "test_checkpoint") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - testutil.Ok(t, DeleteCheckpoints(dir, 0)) - - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.00"), 0777)) - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.01"), 0777)) - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.02"), 0777)) - testutil.Ok(t, os.MkdirAll(filepath.Join(dir, "checkpoint.03"), 0777)) - - testutil.Ok(t, DeleteCheckpoints(dir, 2)) - - files, err := fileutil.ReadDir(dir) - testutil.Ok(t, err) - testutil.Equals(t, []string{"checkpoint.02", "checkpoint.03"}, files) -} - -func TestCheckpoint(t *testing.T) { - dir, err := ioutil.TempDir("", "test_checkpoint") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - var enc RecordEncoder - // Create a dummy segment to bump the initial number. - seg, err := wal.CreateSegment(dir, 100) - testutil.Ok(t, err) - testutil.Ok(t, seg.Close()) - - // Manually create checkpoint for 99 and earlier. - w, err := wal.New(nil, nil, filepath.Join(dir, "checkpoint.0099")) - testutil.Ok(t, err) - - // Add some data we expect to be around later. - err = w.Log(enc.Series([]RefSeries{ - {Ref: 0, Labels: labels.FromStrings("a", "b", "c", "0")}, - {Ref: 1, Labels: labels.FromStrings("a", "b", "c", "1")}, - }, nil)) - testutil.Ok(t, err) - testutil.Ok(t, w.Close()) - - // Start a WAL and write records to it as usual. - w, err = wal.NewSize(nil, nil, dir, 64*1024) - testutil.Ok(t, err) - - var last int64 - for i := 0; ; i++ { - _, n, err := w.Segments() - testutil.Ok(t, err) - if n >= 106 { - break - } - // Write some series initially. - if i == 0 { - b := enc.Series([]RefSeries{ - {Ref: 2, Labels: labels.FromStrings("a", "b", "c", "2")}, - {Ref: 3, Labels: labels.FromStrings("a", "b", "c", "3")}, - {Ref: 4, Labels: labels.FromStrings("a", "b", "c", "4")}, - {Ref: 5, Labels: labels.FromStrings("a", "b", "c", "5")}, - }, nil) - testutil.Ok(t, w.Log(b)) - } - // Write samples until the WAL has enough segments. - // Make them have drifting timestamps within a record to see that they - // get filtered properly. - b := enc.Samples([]RefSample{ - {Ref: 0, T: last, V: float64(i)}, - {Ref: 1, T: last + 10000, V: float64(i)}, - {Ref: 2, T: last + 20000, V: float64(i)}, - {Ref: 3, T: last + 30000, V: float64(i)}, - }, nil) - testutil.Ok(t, w.Log(b)) - - last += 100 - } - testutil.Ok(t, w.Close()) - - _, err = Checkpoint(w, 100, 106, func(x uint64) bool { - return x%2 == 0 - }, last/2) - testutil.Ok(t, err) - testutil.Ok(t, w.Truncate(107)) - testutil.Ok(t, DeleteCheckpoints(w.Dir(), 106)) - - // Only the new checkpoint should be left. - files, err := fileutil.ReadDir(dir) - testutil.Ok(t, err) - testutil.Equals(t, 1, len(files)) - testutil.Equals(t, "checkpoint.000106", files[0]) - - sr, err := wal.NewSegmentsReader(filepath.Join(dir, "checkpoint.000106")) - testutil.Ok(t, err) - defer sr.Close() - - var dec RecordDecoder - var series []RefSeries - r := wal.NewReader(sr) - - for r.Next() { - rec := r.Record() - - switch dec.Type(rec) { - case RecordSeries: - series, err = dec.Series(rec, series) - testutil.Ok(t, err) - case RecordSamples: - samples, err := dec.Samples(rec, nil) - testutil.Ok(t, err) - for _, s := range samples { - testutil.Assert(t, s.T >= last/2, "sample with wrong timestamp") - } - } - } - testutil.Ok(t, r.Err()) - testutil.Equals(t, []RefSeries{ - {Ref: 0, Labels: labels.FromStrings("a", "b", "c", "0")}, - {Ref: 2, Labels: labels.FromStrings("a", "b", "c", "2")}, - {Ref: 4, Labels: labels.FromStrings("a", "b", "c", "4")}, - }, series) -} - -func TestCheckpointNoTmpFolderAfterError(t *testing.T) { - // Create a new wal with an invalid records. - dir, err := ioutil.TempDir("", "test_checkpoint") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - w, err := wal.NewSize(nil, nil, dir, 64*1024) - testutil.Ok(t, err) - testutil.Ok(t, w.Log([]byte{99})) - w.Close() - - // Run the checkpoint and since the wal contains an invalid records this should return an error. - _, err = Checkpoint(w, 0, 1, nil, 0) - testutil.NotOk(t, err) - - // Walk the wal dir to make sure there are no tmp folder left behind after the error. - err = filepath.Walk(w.Dir(), func(path string, info os.FileInfo, err error) error { - if err != nil { - return errors.Wrapf(err, "access err %q: %v\n", path, err) - } - if info.IsDir() && strings.HasSuffix(info.Name(), ".tmp") { - return fmt.Errorf("wal dir contains temporary folder:%s", info.Name()) - } - return nil - }) - testutil.Ok(t, err) -} diff --git a/vendor/github.com/prometheus/tsdb/chunkenc/bstream.go b/vendor/github.com/prometheus/tsdb/chunkenc/bstream.go deleted file mode 100644 index 0a02a730..00000000 --- a/vendor/github.com/prometheus/tsdb/chunkenc/bstream.go +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// The code in this file was largely written by Damian Gryski as part of -// https://github.com/dgryski/go-tsz and published under the license below. -// It received minor modifications to suit Prometheus's needs. - -// Copyright (c) 2015,2016 Damian Gryski -// All rights reserved. - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: - -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package chunkenc - -import "io" - -// bstream is a stream of bits. -type bstream struct { - stream []byte // the data stream - count uint8 // how many bits are valid in current byte -} - -func newBReader(b []byte) bstream { - return bstream{stream: b, count: 8} -} - -func (b *bstream) bytes() []byte { - return b.stream -} - -type bit bool - -const ( - zero bit = false - one bit = true -) - -func (b *bstream) writeBit(bit bit) { - if b.count == 0 { - b.stream = append(b.stream, 0) - b.count = 8 - } - - i := len(b.stream) - 1 - - if bit { - b.stream[i] |= 1 << (b.count - 1) - } - - b.count-- -} - -func (b *bstream) writeByte(byt byte) { - if b.count == 0 { - b.stream = append(b.stream, 0) - b.count = 8 - } - - i := len(b.stream) - 1 - - // fill up b.b with b.count bits from byt - b.stream[i] |= byt >> (8 - b.count) - - b.stream = append(b.stream, 0) - i++ - b.stream[i] = byt << b.count -} - -func (b *bstream) writeBits(u uint64, nbits int) { - u <<= (64 - uint(nbits)) - for nbits >= 8 { - byt := byte(u >> 56) - b.writeByte(byt) - u <<= 8 - nbits -= 8 - } - - for nbits > 0 { - b.writeBit((u >> 63) == 1) - u <<= 1 - nbits-- - } -} - -func (b *bstream) readBit() (bit, error) { - if len(b.stream) == 0 { - return false, io.EOF - } - - if b.count == 0 { - b.stream = b.stream[1:] - - if len(b.stream) == 0 { - return false, io.EOF - } - b.count = 8 - } - - d := (b.stream[0] << (8 - b.count)) & 0x80 - b.count-- - return d != 0, nil -} - -func (b *bstream) ReadByte() (byte, error) { - return b.readByte() -} - -func (b *bstream) readByte() (byte, error) { - if len(b.stream) == 0 { - return 0, io.EOF - } - - if b.count == 0 { - b.stream = b.stream[1:] - - if len(b.stream) == 0 { - return 0, io.EOF - } - return b.stream[0], nil - } - - if b.count == 8 { - b.count = 0 - return b.stream[0], nil - } - - byt := b.stream[0] << (8 - b.count) - b.stream = b.stream[1:] - - if len(b.stream) == 0 { - return 0, io.EOF - } - - // We just advanced the stream and can assume the shift to be 0. - byt |= b.stream[0] >> b.count - - return byt, nil -} - -func (b *bstream) readBits(nbits int) (uint64, error) { - var u uint64 - - for nbits >= 8 { - byt, err := b.readByte() - if err != nil { - return 0, err - } - - u = (u << 8) | uint64(byt) - nbits -= 8 - } - - if nbits == 0 { - return u, nil - } - - if nbits > int(b.count) { - u = (u << uint(b.count)) | uint64((b.stream[0]<<(8-b.count))>>(8-b.count)) - nbits -= int(b.count) - b.stream = b.stream[1:] - - if len(b.stream) == 0 { - return 0, io.EOF - } - b.count = 8 - } - - u = (u << uint(nbits)) | uint64((b.stream[0]<<(8-b.count))>>(8-uint(nbits))) - b.count -= uint8(nbits) - return u, nil -} diff --git a/vendor/github.com/prometheus/tsdb/chunkenc/chunk.go b/vendor/github.com/prometheus/tsdb/chunkenc/chunk.go deleted file mode 100644 index 6c1b8b78..00000000 --- a/vendor/github.com/prometheus/tsdb/chunkenc/chunk.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package chunkenc - -import ( - "sync" - - "github.com/pkg/errors" -) - -// Encoding is the identifier for a chunk encoding. -type Encoding uint8 - -func (e Encoding) String() string { - switch e { - case EncNone: - return "none" - case EncXOR: - return "XOR" - } - return "" -} - -// The different available chunk encodings. -const ( - EncNone Encoding = iota - EncXOR -) - -// Chunk holds a sequence of sample pairs that can be iterated over and appended to. -type Chunk interface { - Bytes() []byte - Encoding() Encoding - Appender() (Appender, error) - Iterator() Iterator - NumSamples() int -} - -// Appender adds sample pairs to a chunk. -type Appender interface { - Append(int64, float64) -} - -// Iterator is a simple iterator that can only get the next value. -type Iterator interface { - At() (int64, float64) - Err() error - Next() bool -} - -// NewNopIterator returns a new chunk iterator that does not hold any data. -func NewNopIterator() Iterator { - return nopIterator{} -} - -type nopIterator struct{} - -func (nopIterator) At() (int64, float64) { return 0, 0 } -func (nopIterator) Next() bool { return false } -func (nopIterator) Err() error { return nil } - -type Pool interface { - Put(Chunk) error - Get(e Encoding, b []byte) (Chunk, error) -} - -// Pool is a memory pool of chunk objects. -type pool struct { - xor sync.Pool -} - -func NewPool() Pool { - return &pool{ - xor: sync.Pool{ - New: func() interface{} { - return &XORChunk{b: bstream{}} - }, - }, - } -} - -func (p *pool) Get(e Encoding, b []byte) (Chunk, error) { - switch e { - case EncXOR: - c := p.xor.Get().(*XORChunk) - c.b.stream = b - c.b.count = 0 - return c, nil - } - return nil, errors.Errorf("invalid encoding %q", e) -} - -func (p *pool) Put(c Chunk) error { - switch c.Encoding() { - case EncXOR: - xc, ok := c.(*XORChunk) - // This may happen often with wrapped chunks. Nothing we can really do about - // it but returning an error would cause a lot of allocations again. Thus, - // we just skip it. - if !ok { - return nil - } - xc.b.stream = nil - xc.b.count = 0 - p.xor.Put(c) - default: - return errors.Errorf("invalid encoding %q", c.Encoding()) - } - return nil -} diff --git a/vendor/github.com/prometheus/tsdb/chunkenc/chunk_test.go b/vendor/github.com/prometheus/tsdb/chunkenc/chunk_test.go deleted file mode 100644 index 11dc1907..00000000 --- a/vendor/github.com/prometheus/tsdb/chunkenc/chunk_test.go +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package chunkenc - -import ( - "fmt" - "io" - "math/rand" - "reflect" - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -type pair struct { - t int64 - v float64 -} - -func TestChunk(t *testing.T) { - for enc, nc := range map[Encoding]func() Chunk{ - EncXOR: func() Chunk { return NewXORChunk() }, - } { - t.Run(fmt.Sprintf("%v", enc), func(t *testing.T) { - for range make([]struct{}, 1) { - c := nc() - if err := testChunk(c); err != nil { - t.Fatal(err) - } - } - }) - } -} - -func testChunk(c Chunk) error { - app, err := c.Appender() - if err != nil { - return err - } - - var exp []pair - var ( - ts = int64(1234123324) - v = 1243535.123 - ) - for i := 0; i < 300; i++ { - ts += int64(rand.Intn(10000) + 1) - // v = rand.Float64() - if i%2 == 0 { - v += float64(rand.Intn(1000000)) - } else { - v -= float64(rand.Intn(1000000)) - } - - // Start with a new appender every 10th sample. This emulates starting - // appending to a partially filled chunk. - if i%10 == 0 { - app, err = c.Appender() - if err != nil { - return err - } - } - - app.Append(ts, v) - exp = append(exp, pair{t: ts, v: v}) - // fmt.Println("appended", len(c.Bytes()), c.Bytes()) - } - - it := c.Iterator() - var res []pair - for it.Next() { - ts, v := it.At() - res = append(res, pair{t: ts, v: v}) - } - if it.Err() != nil { - return it.Err() - } - if !reflect.DeepEqual(exp, res) { - return fmt.Errorf("unexpected result\n\ngot: %v\n\nexp: %v", res, exp) - } - return nil -} - -func benchmarkIterator(b *testing.B, newChunk func() Chunk) { - var ( - t = int64(1234123324) - v = 1243535.123 - ) - var exp []pair - for i := 0; i < b.N; i++ { - // t += int64(rand.Intn(10000) + 1) - t += int64(1000) - // v = rand.Float64() - v += float64(100) - exp = append(exp, pair{t: t, v: v}) - } - - var chunks []Chunk - for i := 0; i < b.N; { - c := newChunk() - - a, err := c.Appender() - if err != nil { - b.Fatalf("get appender: %s", err) - } - j := 0 - for _, p := range exp { - if j > 250 { - break - } - a.Append(p.t, p.v) - i++ - j++ - } - chunks = append(chunks, c) - } - - b.ReportAllocs() - b.ResetTimer() - - fmt.Println("num", b.N, "created chunks", len(chunks)) - - res := make([]float64, 0, 1024) - - for i := 0; i < len(chunks); i++ { - c := chunks[i] - it := c.Iterator() - - for it.Next() { - _, v := it.At() - res = append(res, v) - } - if it.Err() != io.EOF { - testutil.Ok(b, it.Err()) - } - res = res[:0] - } -} - -func BenchmarkXORIterator(b *testing.B) { - benchmarkIterator(b, func() Chunk { - return NewXORChunk() - }) -} - -func BenchmarkXORAppender(b *testing.B) { - benchmarkAppender(b, func() Chunk { - return NewXORChunk() - }) -} - -func benchmarkAppender(b *testing.B, newChunk func() Chunk) { - var ( - t = int64(1234123324) - v = 1243535.123 - ) - var exp []pair - for i := 0; i < b.N; i++ { - // t += int64(rand.Intn(10000) + 1) - t += int64(1000) - // v = rand.Float64() - v += float64(100) - exp = append(exp, pair{t: t, v: v}) - } - - b.ReportAllocs() - b.ResetTimer() - - var chunks []Chunk - for i := 0; i < b.N; { - c := newChunk() - - a, err := c.Appender() - if err != nil { - b.Fatalf("get appender: %s", err) - } - j := 0 - for _, p := range exp { - if j > 250 { - break - } - a.Append(p.t, p.v) - i++ - j++ - } - chunks = append(chunks, c) - } - - fmt.Println("num", b.N, "created chunks", len(chunks)) -} diff --git a/vendor/github.com/prometheus/tsdb/chunkenc/xor.go b/vendor/github.com/prometheus/tsdb/chunkenc/xor.go deleted file mode 100644 index 1518772b..00000000 --- a/vendor/github.com/prometheus/tsdb/chunkenc/xor.go +++ /dev/null @@ -1,386 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// The code in this file was largely written by Damian Gryski as part of -// https://github.com/dgryski/go-tsz and published under the license below. -// It was modified to accommodate reading from byte slices without modifying -// the underlying bytes, which would panic when reading from mmaped -// read-only byte slices. - -// Copyright (c) 2015,2016 Damian Gryski -// All rights reserved. - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: - -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package chunkenc - -import ( - "encoding/binary" - "math" - "math/bits" -) - -// XORChunk holds XOR encoded sample data. -type XORChunk struct { - b bstream -} - -// NewXORChunk returns a new chunk with XOR encoding of the given size. -func NewXORChunk() *XORChunk { - b := make([]byte, 2, 128) - return &XORChunk{b: bstream{stream: b, count: 0}} -} - -// Encoding returns the encoding type. -func (c *XORChunk) Encoding() Encoding { - return EncXOR -} - -// Bytes returns the underlying byte slice of the chunk. -func (c *XORChunk) Bytes() []byte { - return c.b.bytes() -} - -// NumSamples returns the number of samples in the chunk. -func (c *XORChunk) NumSamples() int { - return int(binary.BigEndian.Uint16(c.Bytes())) -} - -// Appender implements the Chunk interface. -func (c *XORChunk) Appender() (Appender, error) { - it := c.iterator() - - // To get an appender we must know the state it would have if we had - // appended all existing data from scratch. - // We iterate through the end and populate via the iterator's state. - for it.Next() { - } - if err := it.Err(); err != nil { - return nil, err - } - - a := &xorAppender{ - b: &c.b, - t: it.t, - v: it.val, - tDelta: it.tDelta, - leading: it.leading, - trailing: it.trailing, - } - if binary.BigEndian.Uint16(a.b.bytes()) == 0 { - a.leading = 0xff - } - return a, nil -} - -func (c *XORChunk) iterator() *xorIterator { - // Should iterators guarantee to act on a copy of the data so it doesn't lock append? - // When using striped locks to guard access to chunks, probably yes. - // Could only copy data if the chunk is not completed yet. - return &xorIterator{ - br: newBReader(c.b.bytes()[2:]), - numTotal: binary.BigEndian.Uint16(c.b.bytes()), - } -} - -// Iterator implements the Chunk interface. -func (c *XORChunk) Iterator() Iterator { - return c.iterator() -} - -type xorAppender struct { - b *bstream - - t int64 - v float64 - tDelta uint64 - - leading uint8 - trailing uint8 -} - -func (a *xorAppender) Append(t int64, v float64) { - var tDelta uint64 - num := binary.BigEndian.Uint16(a.b.bytes()) - - if num == 0 { - buf := make([]byte, binary.MaxVarintLen64) - for _, b := range buf[:binary.PutVarint(buf, t)] { - a.b.writeByte(b) - } - a.b.writeBits(math.Float64bits(v), 64) - - } else if num == 1 { - tDelta = uint64(t - a.t) - - buf := make([]byte, binary.MaxVarintLen64) - for _, b := range buf[:binary.PutUvarint(buf, tDelta)] { - a.b.writeByte(b) - } - - a.writeVDelta(v) - - } else { - tDelta = uint64(t - a.t) - dod := int64(tDelta - a.tDelta) - - // Gorilla has a max resolution of seconds, Prometheus milliseconds. - // Thus we use higher value range steps with larger bit size. - switch { - case dod == 0: - a.b.writeBit(zero) - case bitRange(dod, 14): - a.b.writeBits(0x02, 2) // '10' - a.b.writeBits(uint64(dod), 14) - case bitRange(dod, 17): - a.b.writeBits(0x06, 3) // '110' - a.b.writeBits(uint64(dod), 17) - case bitRange(dod, 20): - a.b.writeBits(0x0e, 4) // '1110' - a.b.writeBits(uint64(dod), 20) - default: - a.b.writeBits(0x0f, 4) // '1111' - a.b.writeBits(uint64(dod), 64) - } - - a.writeVDelta(v) - } - - a.t = t - a.v = v - binary.BigEndian.PutUint16(a.b.bytes(), num+1) - a.tDelta = tDelta -} - -func bitRange(x int64, nbits uint8) bool { - return -((1<<(nbits-1))-1) <= x && x <= 1<<(nbits-1) -} - -func (a *xorAppender) writeVDelta(v float64) { - vDelta := math.Float64bits(v) ^ math.Float64bits(a.v) - - if vDelta == 0 { - a.b.writeBit(zero) - return - } - a.b.writeBit(one) - - leading := uint8(bits.LeadingZeros64(vDelta)) - trailing := uint8(bits.TrailingZeros64(vDelta)) - - // Clamp number of leading zeros to avoid overflow when encoding. - if leading >= 32 { - leading = 31 - } - - if a.leading != 0xff && leading >= a.leading && trailing >= a.trailing { - a.b.writeBit(zero) - a.b.writeBits(vDelta>>a.trailing, 64-int(a.leading)-int(a.trailing)) - } else { - a.leading, a.trailing = leading, trailing - - a.b.writeBit(one) - a.b.writeBits(uint64(leading), 5) - - // Note that if leading == trailing == 0, then sigbits == 64. But that value doesn't actually fit into the 6 bits we have. - // Luckily, we never need to encode 0 significant bits, since that would put us in the other case (vdelta == 0). - // So instead we write out a 0 and adjust it back to 64 on unpacking. - sigbits := 64 - leading - trailing - a.b.writeBits(uint64(sigbits), 6) - a.b.writeBits(vDelta>>trailing, int(sigbits)) - } -} - -type xorIterator struct { - br bstream - numTotal uint16 - numRead uint16 - - t int64 - val float64 - - leading uint8 - trailing uint8 - - tDelta uint64 - err error -} - -func (it *xorIterator) At() (int64, float64) { - return it.t, it.val -} - -func (it *xorIterator) Err() error { - return it.err -} - -func (it *xorIterator) Next() bool { - if it.err != nil || it.numRead == it.numTotal { - return false - } - - if it.numRead == 0 { - t, err := binary.ReadVarint(&it.br) - if err != nil { - it.err = err - return false - } - v, err := it.br.readBits(64) - if err != nil { - it.err = err - return false - } - it.t = t - it.val = math.Float64frombits(v) - - it.numRead++ - return true - } - if it.numRead == 1 { - tDelta, err := binary.ReadUvarint(&it.br) - if err != nil { - it.err = err - return false - } - it.tDelta = tDelta - it.t = it.t + int64(it.tDelta) - - return it.readValue() - } - - var d byte - // read delta-of-delta - for i := 0; i < 4; i++ { - d <<= 1 - bit, err := it.br.readBit() - if err != nil { - it.err = err - return false - } - if bit == zero { - break - } - d |= 1 - } - var sz uint8 - var dod int64 - switch d { - case 0x00: - // dod == 0 - case 0x02: - sz = 14 - case 0x06: - sz = 17 - case 0x0e: - sz = 20 - case 0x0f: - bits, err := it.br.readBits(64) - if err != nil { - it.err = err - return false - } - - dod = int64(bits) - } - - if sz != 0 { - bits, err := it.br.readBits(int(sz)) - if err != nil { - it.err = err - return false - } - if bits > (1 << (sz - 1)) { - // or something - bits = bits - (1 << sz) - } - dod = int64(bits) - } - - it.tDelta = uint64(int64(it.tDelta) + dod) - it.t = it.t + int64(it.tDelta) - - return it.readValue() -} - -func (it *xorIterator) readValue() bool { - bit, err := it.br.readBit() - if err != nil { - it.err = err - return false - } - - if bit == zero { - // it.val = it.val - } else { - bit, err := it.br.readBit() - if err != nil { - it.err = err - return false - } - if bit == zero { - // reuse leading/trailing zero bits - // it.leading, it.trailing = it.leading, it.trailing - } else { - bits, err := it.br.readBits(5) - if err != nil { - it.err = err - return false - } - it.leading = uint8(bits) - - bits, err = it.br.readBits(6) - if err != nil { - it.err = err - return false - } - mbits := uint8(bits) - // 0 significant bits here means we overflowed and we actually need 64; see comment in encoder - if mbits == 0 { - mbits = 64 - } - it.trailing = 64 - it.leading - mbits - } - - mbits := int(64 - it.leading - it.trailing) - bits, err := it.br.readBits(mbits) - if err != nil { - it.err = err - return false - } - vbits := math.Float64bits(it.val) - vbits ^= (bits << it.trailing) - it.val = math.Float64frombits(vbits) - } - - it.numRead++ - return true -} diff --git a/vendor/github.com/prometheus/tsdb/chunks/chunks.go b/vendor/github.com/prometheus/tsdb/chunks/chunks.go deleted file mode 100644 index 70cb119c..00000000 --- a/vendor/github.com/prometheus/tsdb/chunks/chunks.go +++ /dev/null @@ -1,511 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package chunks - -import ( - "bufio" - "encoding/binary" - "fmt" - "hash" - "hash/crc32" - "io" - "io/ioutil" - "os" - "path/filepath" - "strconv" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/chunkenc" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/fileutil" -) - -const ( - // MagicChunks is 4 bytes at the head of a series file. - MagicChunks = 0x85BD40DD - // MagicChunksSize is the size in bytes of MagicChunks. - MagicChunksSize = 4 - - chunksFormatV1 = 1 - ChunksFormatVersionSize = 1 - - chunkHeaderSize = MagicChunksSize + ChunksFormatVersionSize -) - -// Meta holds information about a chunk of data. -type Meta struct { - // Ref and Chunk hold either a reference that can be used to retrieve - // chunk data or the data itself. - // Generally, only one of them is set. - Ref uint64 - Chunk chunkenc.Chunk - - MinTime, MaxTime int64 // time range the data covers -} - -// writeHash writes the chunk encoding and raw data into the provided hash. -func (cm *Meta) writeHash(h hash.Hash) error { - if _, err := h.Write([]byte{byte(cm.Chunk.Encoding())}); err != nil { - return err - } - if _, err := h.Write(cm.Chunk.Bytes()); err != nil { - return err - } - return nil -} - -// OverlapsClosedInterval Returns true if the chunk overlaps [mint, maxt]. -func (cm *Meta) OverlapsClosedInterval(mint, maxt int64) bool { - // The chunk itself is a closed interval [cm.MinTime, cm.MaxTime]. - return cm.MinTime <= maxt && mint <= cm.MaxTime -} - -var ( - errInvalidSize = fmt.Errorf("invalid size") -) - -var castagnoliTable *crc32.Table - -func init() { - castagnoliTable = crc32.MakeTable(crc32.Castagnoli) -} - -// newCRC32 initializes a CRC32 hash with a preconfigured polynomial, so the -// polynomial may be easily changed in one location at a later time, if necessary. -func newCRC32() hash.Hash32 { - return crc32.New(castagnoliTable) -} - -// Writer implements the ChunkWriter interface for the standard -// serialization format. -type Writer struct { - dirFile *os.File - files []*os.File - wbuf *bufio.Writer - n int64 - crc32 hash.Hash - - segmentSize int64 -} - -const ( - defaultChunkSegmentSize = 512 * 1024 * 1024 -) - -// NewWriter returns a new writer against the given directory. -func NewWriter(dir string) (*Writer, error) { - if err := os.MkdirAll(dir, 0777); err != nil { - return nil, err - } - dirFile, err := fileutil.OpenDir(dir) - if err != nil { - return nil, err - } - cw := &Writer{ - dirFile: dirFile, - n: 0, - crc32: newCRC32(), - segmentSize: defaultChunkSegmentSize, - } - return cw, nil -} - -func (w *Writer) tail() *os.File { - if len(w.files) == 0 { - return nil - } - return w.files[len(w.files)-1] -} - -// finalizeTail writes all pending data to the current tail file, -// truncates its size, and closes it. -func (w *Writer) finalizeTail() error { - tf := w.tail() - if tf == nil { - return nil - } - - if err := w.wbuf.Flush(); err != nil { - return err - } - if err := tf.Sync(); err != nil { - return err - } - // As the file was pre-allocated, we truncate any superfluous zero bytes. - off, err := tf.Seek(0, io.SeekCurrent) - if err != nil { - return err - } - if err := tf.Truncate(off); err != nil { - return err - } - - return tf.Close() -} - -func (w *Writer) cut() error { - // Sync current tail to disk and close. - if err := w.finalizeTail(); err != nil { - return err - } - - p, _, err := nextSequenceFile(w.dirFile.Name()) - if err != nil { - return err - } - f, err := os.OpenFile(p, os.O_WRONLY|os.O_CREATE, 0666) - if err != nil { - return err - } - if err = fileutil.Preallocate(f, w.segmentSize, true); err != nil { - return err - } - if err = w.dirFile.Sync(); err != nil { - return err - } - - // Write header metadata for new file. - metab := make([]byte, 8) - binary.BigEndian.PutUint32(metab[:MagicChunksSize], MagicChunks) - metab[4] = chunksFormatV1 - - if _, err := f.Write(metab); err != nil { - return err - } - - w.files = append(w.files, f) - if w.wbuf != nil { - w.wbuf.Reset(f) - } else { - w.wbuf = bufio.NewWriterSize(f, 8*1024*1024) - } - w.n = 8 - - return nil -} - -func (w *Writer) write(b []byte) error { - n, err := w.wbuf.Write(b) - w.n += int64(n) - return err -} - -// MergeOverlappingChunks removes the samples whose timestamp is overlapping. -// The last appearing sample is retained in case there is overlapping. -// This assumes that `chks []Meta` is sorted w.r.t. MinTime. -func MergeOverlappingChunks(chks []Meta) ([]Meta, error) { - if len(chks) < 2 { - return chks, nil - } - newChks := make([]Meta, 0, len(chks)) // Will contain the merged chunks. - newChks = append(newChks, chks[0]) - last := 0 - for _, c := range chks[1:] { - // We need to check only the last chunk in newChks. - // Reason: (1) newChks[last-1].MaxTime < newChks[last].MinTime (non overlapping) - // (2) As chks are sorted w.r.t. MinTime, newChks[last].MinTime < c.MinTime. - // So never overlaps with newChks[last-1] or anything before that. - if c.MinTime > newChks[last].MaxTime { - newChks = append(newChks, c) - last += 1 - continue - } - nc := &newChks[last] - if c.MaxTime > nc.MaxTime { - nc.MaxTime = c.MaxTime - } - chk, err := MergeChunks(nc.Chunk, c.Chunk) - if err != nil { - return nil, err - } - nc.Chunk = chk - } - - return newChks, nil -} - -// MergeChunks vertically merges a and b, i.e., if there is any sample -// with same timestamp in both a and b, the sample in a is discarded. -func MergeChunks(a, b chunkenc.Chunk) (*chunkenc.XORChunk, error) { - newChunk := chunkenc.NewXORChunk() - app, err := newChunk.Appender() - if err != nil { - return nil, err - } - ait := a.Iterator() - bit := b.Iterator() - aok, bok := ait.Next(), bit.Next() - for aok && bok { - at, av := ait.At() - bt, bv := bit.At() - if at < bt { - app.Append(at, av) - aok = ait.Next() - } else if bt < at { - app.Append(bt, bv) - bok = bit.Next() - } else { - app.Append(bt, bv) - aok = ait.Next() - bok = bit.Next() - } - } - for aok { - at, av := ait.At() - app.Append(at, av) - aok = ait.Next() - } - for bok { - bt, bv := bit.At() - app.Append(bt, bv) - bok = bit.Next() - } - if ait.Err() != nil { - return nil, ait.Err() - } - if bit.Err() != nil { - return nil, bit.Err() - } - return newChunk, nil -} - -func (w *Writer) WriteChunks(chks ...Meta) error { - // Calculate maximum space we need and cut a new segment in case - // we don't fit into the current one. - maxLen := int64(binary.MaxVarintLen32) // The number of chunks. - for _, c := range chks { - maxLen += binary.MaxVarintLen32 + 1 // The number of bytes in the chunk and its encoding. - maxLen += int64(len(c.Chunk.Bytes())) - maxLen += 4 // The 4 bytes of crc32 - } - newsz := w.n + maxLen - - if w.wbuf == nil || w.n > w.segmentSize || newsz > w.segmentSize && maxLen <= w.segmentSize { - if err := w.cut(); err != nil { - return err - } - } - - var ( - b = [binary.MaxVarintLen32]byte{} - seq = uint64(w.seq()) << 32 - ) - for i := range chks { - chk := &chks[i] - - chk.Ref = seq | uint64(w.n) - - n := binary.PutUvarint(b[:], uint64(len(chk.Chunk.Bytes()))) - - if err := w.write(b[:n]); err != nil { - return err - } - b[0] = byte(chk.Chunk.Encoding()) - if err := w.write(b[:1]); err != nil { - return err - } - if err := w.write(chk.Chunk.Bytes()); err != nil { - return err - } - - w.crc32.Reset() - if err := chk.writeHash(w.crc32); err != nil { - return err - } - if err := w.write(w.crc32.Sum(b[:0])); err != nil { - return err - } - } - - return nil -} - -func (w *Writer) seq() int { - return len(w.files) - 1 -} - -func (w *Writer) Close() error { - if err := w.finalizeTail(); err != nil { - return err - } - - // close dir file (if not windows platform will fail on rename) - return w.dirFile.Close() -} - -// ByteSlice abstracts a byte slice. -type ByteSlice interface { - Len() int - Range(start, end int) []byte -} - -type realByteSlice []byte - -func (b realByteSlice) Len() int { - return len(b) -} - -func (b realByteSlice) Range(start, end int) []byte { - return b[start:end] -} - -func (b realByteSlice) Sub(start, end int) ByteSlice { - return b[start:end] -} - -// Reader implements a SeriesReader for a serialized byte stream -// of series data. -type Reader struct { - bs []ByteSlice // The underlying bytes holding the encoded series data. - cs []io.Closer // Closers for resources behind the byte slices. - size int64 // The total size of bytes in the reader. - pool chunkenc.Pool -} - -func newReader(bs []ByteSlice, cs []io.Closer, pool chunkenc.Pool) (*Reader, error) { - cr := Reader{pool: pool, bs: bs, cs: cs} - var totalSize int64 - - for i, b := range cr.bs { - if b.Len() < chunkHeaderSize { - return nil, errors.Wrapf(errInvalidSize, "invalid chunk header in segment %d", i) - } - // Verify magic number. - if m := binary.BigEndian.Uint32(b.Range(0, MagicChunksSize)); m != MagicChunks { - return nil, errors.Errorf("invalid magic number %x", m) - } - - // Verify chunk format version. - if v := int(b.Range(MagicChunksSize, MagicChunksSize+ChunksFormatVersionSize)[0]); v != chunksFormatV1 { - return nil, errors.Errorf("invalid chunk format version %d", v) - } - totalSize += int64(b.Len()) - } - cr.size = totalSize - return &cr, nil -} - -// NewDirReader returns a new Reader against sequentially numbered files in the -// given directory. -func NewDirReader(dir string, pool chunkenc.Pool) (*Reader, error) { - files, err := sequenceFiles(dir) - if err != nil { - return nil, err - } - if pool == nil { - pool = chunkenc.NewPool() - } - - var ( - bs []ByteSlice - cs []io.Closer - merr tsdb_errors.MultiError - ) - for _, fn := range files { - f, err := fileutil.OpenMmapFile(fn) - if err != nil { - merr.Add(errors.Wrap(err, "mmap files")) - merr.Add(closeAll(cs)) - return nil, merr - } - cs = append(cs, f) - bs = append(bs, realByteSlice(f.Bytes())) - } - - reader, err := newReader(bs, cs, pool) - if err != nil { - merr.Add(err) - merr.Add(closeAll(cs)) - return nil, merr - } - return reader, nil -} - -func (s *Reader) Close() error { - return closeAll(s.cs) -} - -// Size returns the size of the chunks. -func (s *Reader) Size() int64 { - return s.size -} - -// Chunk returns a chunk from a given reference. -func (s *Reader) Chunk(ref uint64) (chunkenc.Chunk, error) { - var ( - sgmSeq = int(ref >> 32) - sgmOffset = int((ref << 32) >> 32) - ) - if sgmSeq >= len(s.bs) { - return nil, errors.Errorf("reference sequence %d out of range", sgmSeq) - } - chkS := s.bs[sgmSeq] - - if sgmOffset >= chkS.Len() { - return nil, errors.Errorf("offset %d beyond data size %d", sgmOffset, chkS.Len()) - } - // With the minimum chunk length this should never cause us reading - // over the end of the slice. - chk := chkS.Range(sgmOffset, sgmOffset+binary.MaxVarintLen32) - - chkLen, n := binary.Uvarint(chk) - if n <= 0 { - return nil, errors.Errorf("reading chunk length failed with %d", n) - } - chk = chkS.Range(sgmOffset+n, sgmOffset+n+1+int(chkLen)) - - return s.pool.Get(chunkenc.Encoding(chk[0]), chk[1:1+chkLen]) -} - -func nextSequenceFile(dir string) (string, int, error) { - names, err := fileutil.ReadDir(dir) - if err != nil { - return "", 0, err - } - - i := uint64(0) - for _, n := range names { - j, err := strconv.ParseUint(n, 10, 64) - if err != nil { - continue - } - i = j - } - return filepath.Join(dir, fmt.Sprintf("%0.6d", i+1)), int(i + 1), nil -} - -func sequenceFiles(dir string) ([]string, error) { - files, err := ioutil.ReadDir(dir) - if err != nil { - return nil, err - } - var res []string - - for _, fi := range files { - if _, err := strconv.ParseUint(fi.Name(), 10, 64); err != nil { - continue - } - res = append(res, filepath.Join(dir, fi.Name())) - } - return res, nil -} - -func closeAll(cs []io.Closer) (err error) { - for _, c := range cs { - if e := c.Close(); e != nil { - err = e - } - } - return err -} diff --git a/vendor/github.com/prometheus/tsdb/chunks/chunks_test.go b/vendor/github.com/prometheus/tsdb/chunks/chunks_test.go deleted file mode 100644 index e153029b..00000000 --- a/vendor/github.com/prometheus/tsdb/chunks/chunks_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package chunks - -import ( - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -func TestReaderWithInvalidBuffer(t *testing.T) { - b := realByteSlice([]byte{0x81, 0x81, 0x81, 0x81, 0x81, 0x81}) - r := &Reader{bs: []ByteSlice{b}} - - _, err := r.Chunk(0) - testutil.NotOk(t, err) -} diff --git a/vendor/github.com/prometheus/tsdb/cmd/tsdb/.gitignore b/vendor/github.com/prometheus/tsdb/cmd/tsdb/.gitignore deleted file mode 100644 index ba141970..00000000 --- a/vendor/github.com/prometheus/tsdb/cmd/tsdb/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -testdata* -tsdb -benchout diff --git a/vendor/github.com/prometheus/tsdb/cmd/tsdb/README.md b/vendor/github.com/prometheus/tsdb/cmd/tsdb/README.md deleted file mode 100644 index 61fce5f9..00000000 --- a/vendor/github.com/prometheus/tsdb/cmd/tsdb/README.md +++ /dev/null @@ -1,3 +0,0 @@ -TODO: -- [ ] add tabular output -- [ ] break commands in separate files diff --git a/vendor/github.com/prometheus/tsdb/cmd/tsdb/main.go b/vendor/github.com/prometheus/tsdb/cmd/tsdb/main.go deleted file mode 100644 index 8c049451..00000000 --- a/vendor/github.com/prometheus/tsdb/cmd/tsdb/main.go +++ /dev/null @@ -1,578 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "bufio" - "flag" - "fmt" - "io" - "io/ioutil" - "math" - "os" - "path/filepath" - "runtime" - "runtime/pprof" - "sort" - "strconv" - "strings" - "sync" - "text/tabwriter" - "time" - - "github.com/go-kit/kit/log" - "github.com/pkg/errors" - "github.com/prometheus/tsdb" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/labels" - "gopkg.in/alecthomas/kingpin.v2" -) - -func main() { - var ( - defaultDBPath = filepath.Join("benchout", "storage") - - cli = kingpin.New(filepath.Base(os.Args[0]), "CLI tool for tsdb") - benchCmd = cli.Command("bench", "run benchmarks") - benchWriteCmd = benchCmd.Command("write", "run a write performance benchmark") - benchWriteOutPath = benchWriteCmd.Flag("out", "set the output path").Default("benchout").String() - benchWriteNumMetrics = benchWriteCmd.Flag("metrics", "number of metrics to read").Default("10000").Int() - benchSamplesFile = benchWriteCmd.Arg("file", "input file with samples data, default is ("+filepath.Join("..", "..", "testdata", "20kseries.json")+")").Default(filepath.Join("..", "..", "testdata", "20kseries.json")).String() - listCmd = cli.Command("ls", "list db blocks") - listCmdHumanReadable = listCmd.Flag("human-readable", "print human readable values").Short('h').Bool() - listPath = listCmd.Arg("db path", "database path (default is "+defaultDBPath+")").Default(defaultDBPath).String() - analyzeCmd = cli.Command("analyze", "analyze churn, label pair cardinality.") - analyzePath = analyzeCmd.Arg("db path", "database path (default is "+defaultDBPath+")").Default(defaultDBPath).String() - analyzeBlockID = analyzeCmd.Arg("block id", "block to analyze (default is the last block)").String() - analyzeLimit = analyzeCmd.Flag("limit", "how many items to show in each list").Default("20").Int() - dumpCmd = cli.Command("dump", "dump samples from a TSDB") - dumpPath = dumpCmd.Arg("db path", "database path (default is "+defaultDBPath+")").Default(defaultDBPath).String() - dumpMinTime = dumpCmd.Flag("min-time", "minimum timestamp to dump").Default(strconv.FormatInt(math.MinInt64, 10)).Int64() - dumpMaxTime = dumpCmd.Flag("max-time", "maximum timestamp to dump").Default(strconv.FormatInt(math.MaxInt64, 10)).Int64() - ) - - safeDBOptions := *tsdb.DefaultOptions - safeDBOptions.RetentionDuration = 0 - - switch kingpin.MustParse(cli.Parse(os.Args[1:])) { - case benchWriteCmd.FullCommand(): - wb := &writeBenchmark{ - outPath: *benchWriteOutPath, - numMetrics: *benchWriteNumMetrics, - samplesFile: *benchSamplesFile, - } - wb.run() - case listCmd.FullCommand(): - db, err := tsdb.Open(*listPath, nil, nil, &safeDBOptions) - if err != nil { - exitWithError(err) - } - printBlocks(db.Blocks(), listCmdHumanReadable) - case analyzeCmd.FullCommand(): - db, err := tsdb.Open(*analyzePath, nil, nil, &safeDBOptions) - if err != nil { - exitWithError(err) - } - blocks := db.Blocks() - var block *tsdb.Block - if *analyzeBlockID != "" { - for _, b := range blocks { - if b.Meta().ULID.String() == *analyzeBlockID { - block = b - break - } - } - } else if len(blocks) > 0 { - block = blocks[len(blocks)-1] - } - if block == nil { - exitWithError(fmt.Errorf("block not found")) - } - analyzeBlock(block, *analyzeLimit) - case dumpCmd.FullCommand(): - db, err := tsdb.Open(*dumpPath, nil, nil, &safeDBOptions) - if err != nil { - exitWithError(err) - } - dumpSamples(db, *dumpMinTime, *dumpMaxTime) - } - flag.CommandLine.Set("log.level", "debug") -} - -type writeBenchmark struct { - outPath string - samplesFile string - cleanup bool - numMetrics int - - storage *tsdb.DB - - cpuprof *os.File - memprof *os.File - blockprof *os.File - mtxprof *os.File -} - -func (b *writeBenchmark) run() { - if b.outPath == "" { - dir, err := ioutil.TempDir("", "tsdb_bench") - if err != nil { - exitWithError(err) - } - b.outPath = dir - b.cleanup = true - } - if err := os.RemoveAll(b.outPath); err != nil { - exitWithError(err) - } - if err := os.MkdirAll(b.outPath, 0777); err != nil { - exitWithError(err) - } - - dir := filepath.Join(b.outPath, "storage") - - l := log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr)) - l = log.With(l, "ts", log.DefaultTimestampUTC, "caller", log.DefaultCaller) - - st, err := tsdb.Open(dir, l, nil, &tsdb.Options{ - RetentionDuration: 15 * 24 * 60 * 60 * 1000, // 15 days in milliseconds - BlockRanges: tsdb.ExponentialBlockRanges(2*60*60*1000, 5, 3), - }) - if err != nil { - exitWithError(err) - } - b.storage = st - - var labels []labels.Labels - - measureTime("readData", func() { - f, err := os.Open(b.samplesFile) - if err != nil { - exitWithError(err) - } - defer f.Close() - - labels, err = readPrometheusLabels(f, b.numMetrics) - if err != nil { - exitWithError(err) - } - }) - - var total uint64 - - dur := measureTime("ingestScrapes", func() { - b.startProfiling() - total, err = b.ingestScrapes(labels, 3000) - if err != nil { - exitWithError(err) - } - }) - - fmt.Println(" > total samples:", total) - fmt.Println(" > samples/sec:", float64(total)/dur.Seconds()) - - measureTime("stopStorage", func() { - if err := b.storage.Close(); err != nil { - exitWithError(err) - } - if err := b.stopProfiling(); err != nil { - exitWithError(err) - } - }) -} - -const timeDelta = 30000 - -func (b *writeBenchmark) ingestScrapes(lbls []labels.Labels, scrapeCount int) (uint64, error) { - var mu sync.Mutex - var total uint64 - - for i := 0; i < scrapeCount; i += 100 { - var wg sync.WaitGroup - lbls := lbls - for len(lbls) > 0 { - l := 1000 - if len(lbls) < 1000 { - l = len(lbls) - } - batch := lbls[:l] - lbls = lbls[l:] - - wg.Add(1) - go func() { - n, err := b.ingestScrapesShard(batch, 100, int64(timeDelta*i)) - if err != nil { - // exitWithError(err) - fmt.Println(" err", err) - } - mu.Lock() - total += n - mu.Unlock() - wg.Done() - }() - } - wg.Wait() - } - fmt.Println("ingestion completed") - - return total, nil -} - -func (b *writeBenchmark) ingestScrapesShard(lbls []labels.Labels, scrapeCount int, baset int64) (uint64, error) { - ts := baset - - type sample struct { - labels labels.Labels - value int64 - ref *uint64 - } - - scrape := make([]*sample, 0, len(lbls)) - - for _, m := range lbls { - scrape = append(scrape, &sample{ - labels: m, - value: 123456789, - }) - } - total := uint64(0) - - for i := 0; i < scrapeCount; i++ { - app := b.storage.Appender() - ts += timeDelta - - for _, s := range scrape { - s.value += 1000 - - if s.ref == nil { - ref, err := app.Add(s.labels, ts, float64(s.value)) - if err != nil { - panic(err) - } - s.ref = &ref - } else if err := app.AddFast(*s.ref, ts, float64(s.value)); err != nil { - - if errors.Cause(err) != tsdb.ErrNotFound { - panic(err) - } - - ref, err := app.Add(s.labels, ts, float64(s.value)) - if err != nil { - panic(err) - } - s.ref = &ref - } - - total++ - } - if err := app.Commit(); err != nil { - return total, err - } - } - return total, nil -} - -func (b *writeBenchmark) startProfiling() { - var err error - - // Start CPU profiling. - b.cpuprof, err = os.Create(filepath.Join(b.outPath, "cpu.prof")) - if err != nil { - exitWithError(fmt.Errorf("bench: could not create cpu profile: %v", err)) - } - if err := pprof.StartCPUProfile(b.cpuprof); err != nil { - exitWithError(fmt.Errorf("bench: could not start CPU profile: %v", err)) - } - - // Start memory profiling. - b.memprof, err = os.Create(filepath.Join(b.outPath, "mem.prof")) - if err != nil { - exitWithError(fmt.Errorf("bench: could not create memory profile: %v", err)) - } - runtime.MemProfileRate = 64 * 1024 - - // Start fatal profiling. - b.blockprof, err = os.Create(filepath.Join(b.outPath, "block.prof")) - if err != nil { - exitWithError(fmt.Errorf("bench: could not create block profile: %v", err)) - } - runtime.SetBlockProfileRate(20) - - b.mtxprof, err = os.Create(filepath.Join(b.outPath, "mutex.prof")) - if err != nil { - exitWithError(fmt.Errorf("bench: could not create mutex profile: %v", err)) - } - runtime.SetMutexProfileFraction(20) -} - -func (b *writeBenchmark) stopProfiling() error { - if b.cpuprof != nil { - pprof.StopCPUProfile() - b.cpuprof.Close() - b.cpuprof = nil - } - if b.memprof != nil { - if err := pprof.Lookup("heap").WriteTo(b.memprof, 0); err != nil { - return fmt.Errorf("error writing mem profile: %v", err) - } - b.memprof.Close() - b.memprof = nil - } - if b.blockprof != nil { - if err := pprof.Lookup("block").WriteTo(b.blockprof, 0); err != nil { - return fmt.Errorf("error writing block profile: %v", err) - } - b.blockprof.Close() - b.blockprof = nil - runtime.SetBlockProfileRate(0) - } - if b.mtxprof != nil { - if err := pprof.Lookup("mutex").WriteTo(b.mtxprof, 0); err != nil { - return fmt.Errorf("error writing mutex profile: %v", err) - } - b.mtxprof.Close() - b.mtxprof = nil - runtime.SetMutexProfileFraction(0) - } - return nil -} - -func measureTime(stage string, f func()) time.Duration { - fmt.Printf(">> start stage=%s\n", stage) - start := time.Now() - f() - fmt.Printf(">> completed stage=%s duration=%s\n", stage, time.Since(start)) - return time.Since(start) -} - -func readPrometheusLabels(r io.Reader, n int) ([]labels.Labels, error) { - scanner := bufio.NewScanner(r) - - var mets []labels.Labels - hashes := map[uint64]struct{}{} - i := 0 - - for scanner.Scan() && i < n { - m := make(labels.Labels, 0, 10) - - r := strings.NewReplacer("\"", "", "{", "", "}", "") - s := r.Replace(scanner.Text()) - - labelChunks := strings.Split(s, ",") - for _, labelChunk := range labelChunks { - split := strings.Split(labelChunk, ":") - m = append(m, labels.Label{Name: split[0], Value: split[1]}) - } - // Order of the k/v labels matters, don't assume we'll always receive them already sorted. - sort.Sort(m) - h := m.Hash() - if _, ok := hashes[h]; ok { - continue - } - mets = append(mets, m) - hashes[h] = struct{}{} - i++ - } - return mets, nil -} - -func exitWithError(err error) { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) -} - -func printBlocks(blocks []*tsdb.Block, humanReadable *bool) { - tw := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) - defer tw.Flush() - - fmt.Fprintln(tw, "BLOCK ULID\tMIN TIME\tMAX TIME\tNUM SAMPLES\tNUM CHUNKS\tNUM SERIES") - for _, b := range blocks { - meta := b.Meta() - - fmt.Fprintf(tw, - "%v\t%v\t%v\t%v\t%v\t%v\n", - meta.ULID, - getFormatedTime(meta.MinTime, humanReadable), - getFormatedTime(meta.MaxTime, humanReadable), - meta.Stats.NumSamples, - meta.Stats.NumChunks, - meta.Stats.NumSeries, - ) - } -} - -func getFormatedTime(timestamp int64, humanReadable *bool) string { - if *humanReadable { - return time.Unix(timestamp/1000, 0).String() - } - return strconv.FormatInt(timestamp, 10) -} - -func analyzeBlock(b *tsdb.Block, limit int) { - fmt.Printf("Block path: %s\n", b.Dir()) - meta := b.Meta() - // Presume 1ms resolution that Prometheus uses. - fmt.Printf("Duration: %s\n", (time.Duration(meta.MaxTime-meta.MinTime) * 1e6).String()) - fmt.Printf("Series: %d\n", meta.Stats.NumSeries) - ir, err := b.Index() - if err != nil { - exitWithError(err) - } - defer ir.Close() - - allLabelNames, err := ir.LabelNames() - if err != nil { - exitWithError(err) - } - fmt.Printf("Label names: %d\n", len(allLabelNames)) - - type postingInfo struct { - key string - metric uint64 - } - postingInfos := []postingInfo{} - - printInfo := func(postingInfos []postingInfo) { - sort.Slice(postingInfos, func(i, j int) bool { return postingInfos[i].metric > postingInfos[j].metric }) - - for i, pc := range postingInfos { - fmt.Printf("%d %s\n", pc.metric, pc.key) - if i >= limit { - break - } - } - } - - labelsUncovered := map[string]uint64{} - labelpairsUncovered := map[string]uint64{} - labelpairsCount := map[string]uint64{} - entries := 0 - p, err := ir.Postings("", "") // The special all key. - if err != nil { - exitWithError(err) - } - lbls := labels.Labels{} - chks := []chunks.Meta{} - for p.Next() { - if err = ir.Series(p.At(), &lbls, &chks); err != nil { - exitWithError(err) - } - // Amount of the block time range not covered by this series. - uncovered := uint64(meta.MaxTime-meta.MinTime) - uint64(chks[len(chks)-1].MaxTime-chks[0].MinTime) - for _, lbl := range lbls { - key := lbl.Name + "=" + lbl.Value - labelsUncovered[lbl.Name] += uncovered - labelpairsUncovered[key] += uncovered - labelpairsCount[key]++ - entries++ - } - } - if p.Err() != nil { - exitWithError(p.Err()) - } - fmt.Printf("Postings (unique label pairs): %d\n", len(labelpairsUncovered)) - fmt.Printf("Postings entries (total label pairs): %d\n", entries) - - postingInfos = postingInfos[:0] - for k, m := range labelpairsUncovered { - postingInfos = append(postingInfos, postingInfo{k, uint64(float64(m) / float64(meta.MaxTime-meta.MinTime))}) - } - - fmt.Printf("\nLabel pairs most involved in churning:\n") - printInfo(postingInfos) - - postingInfos = postingInfos[:0] - for k, m := range labelsUncovered { - postingInfos = append(postingInfos, postingInfo{k, uint64(float64(m) / float64(meta.MaxTime-meta.MinTime))}) - } - - fmt.Printf("\nLabel names most involved in churning:\n") - printInfo(postingInfos) - - postingInfos = postingInfos[:0] - for k, m := range labelpairsCount { - postingInfos = append(postingInfos, postingInfo{k, m}) - } - - fmt.Printf("\nMost common label pairs:\n") - printInfo(postingInfos) - - postingInfos = postingInfos[:0] - for _, n := range allLabelNames { - lv, err := ir.LabelValues(n) - if err != nil { - exitWithError(err) - } - postingInfos = append(postingInfos, postingInfo{n, uint64(lv.Len())}) - } - fmt.Printf("\nHighest cardinality labels:\n") - printInfo(postingInfos) - - postingInfos = postingInfos[:0] - lv, err := ir.LabelValues("__name__") - if err != nil { - exitWithError(err) - } - for i := 0; i < lv.Len(); i++ { - names, err := lv.At(i) - if err != nil { - exitWithError(err) - } - for _, n := range names { - postings, err := ir.Postings("__name__", n) - if err != nil { - exitWithError(err) - } - count := 0 - for postings.Next() { - count++ - } - if postings.Err() != nil { - exitWithError(postings.Err()) - } - postingInfos = append(postingInfos, postingInfo{n, uint64(count)}) - } - } - fmt.Printf("\nHighest cardinality metric names:\n") - printInfo(postingInfos) -} - -func dumpSamples(db *tsdb.DB, mint, maxt int64) { - q, err := db.Querier(mint, maxt) - if err != nil { - exitWithError(err) - } - - ss, err := q.Select(labels.NewMustRegexpMatcher("", ".*")) - if err != nil { - exitWithError(err) - } - - for ss.Next() { - series := ss.At() - labels := series.Labels() - it := series.Iterator() - for it.Next() { - ts, val := it.At() - fmt.Printf("%s %g %d\n", labels, val, ts) - } - if it.Err() != nil { - exitWithError(ss.Err()) - } - } - - if ss.Err() != nil { - exitWithError(ss.Err()) - } -} diff --git a/vendor/github.com/prometheus/tsdb/compact.go b/vendor/github.com/prometheus/tsdb/compact.go deleted file mode 100644 index 4a360d02..00000000 --- a/vendor/github.com/prometheus/tsdb/compact.go +++ /dev/null @@ -1,1036 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "context" - "fmt" - "io" - "math" - "math/rand" - "os" - "path/filepath" - "sort" - "time" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/oklog/ulid" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" -) - -// ExponentialBlockRanges returns the time ranges based on the stepSize. -func ExponentialBlockRanges(minSize int64, steps, stepSize int) []int64 { - ranges := make([]int64, 0, steps) - curRange := minSize - for i := 0; i < steps; i++ { - ranges = append(ranges, curRange) - curRange = curRange * int64(stepSize) - } - - return ranges -} - -// Compactor provides compaction against an underlying storage -// of time series data. -type Compactor interface { - // Plan returns a set of directories that can be compacted concurrently. - // The directories can be overlapping. - // Results returned when compactions are in progress are undefined. - Plan(dir string) ([]string, error) - - // Write persists a Block into a directory. - // No Block is written when resulting Block has 0 samples, and returns empty ulid.ULID{}. - Write(dest string, b BlockReader, mint, maxt int64, parent *BlockMeta) (ulid.ULID, error) - - // Compact runs compaction against the provided directories. Must - // only be called concurrently with results of Plan(). - // Can optionally pass a list of already open blocks, - // to avoid having to reopen them. - // When resulting Block has 0 samples - // * No block is written. - // * The source dirs are marked Deletable. - // * Returns empty ulid.ULID{}. - Compact(dest string, dirs []string, open []*Block) (ulid.ULID, error) -} - -// LeveledCompactor implements the Compactor interface. -type LeveledCompactor struct { - metrics *compactorMetrics - logger log.Logger - ranges []int64 - chunkPool chunkenc.Pool - ctx context.Context -} - -type compactorMetrics struct { - ran prometheus.Counter - populatingBlocks prometheus.Gauge - failed prometheus.Counter - overlappingBlocks prometheus.Counter - duration prometheus.Histogram - chunkSize prometheus.Histogram - chunkSamples prometheus.Histogram - chunkRange prometheus.Histogram -} - -func newCompactorMetrics(r prometheus.Registerer) *compactorMetrics { - m := &compactorMetrics{} - - m.ran = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_compactions_total", - Help: "Total number of compactions that were executed for the partition.", - }) - m.populatingBlocks = prometheus.NewGauge(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_compaction_populating_block", - Help: "Set to 1 when a block is currently being written to the disk.", - }) - m.failed = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_compactions_failed_total", - Help: "Total number of compactions that failed for the partition.", - }) - m.overlappingBlocks = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_vertical_compactions_total", - Help: "Total number of compactions done on overlapping blocks.", - }) - m.duration = prometheus.NewHistogram(prometheus.HistogramOpts{ - Name: "prometheus_tsdb_compaction_duration_seconds", - Help: "Duration of compaction runs", - Buckets: prometheus.ExponentialBuckets(1, 2, 10), - }) - m.chunkSize = prometheus.NewHistogram(prometheus.HistogramOpts{ - Name: "prometheus_tsdb_compaction_chunk_size_bytes", - Help: "Final size of chunks on their first compaction", - Buckets: prometheus.ExponentialBuckets(32, 1.5, 12), - }) - m.chunkSamples = prometheus.NewHistogram(prometheus.HistogramOpts{ - Name: "prometheus_tsdb_compaction_chunk_samples", - Help: "Final number of samples on their first compaction", - Buckets: prometheus.ExponentialBuckets(4, 1.5, 12), - }) - m.chunkRange = prometheus.NewHistogram(prometheus.HistogramOpts{ - Name: "prometheus_tsdb_compaction_chunk_range_seconds", - Help: "Final time range of chunks on their first compaction", - Buckets: prometheus.ExponentialBuckets(100, 4, 10), - }) - - if r != nil { - r.MustRegister( - m.ran, - m.populatingBlocks, - m.failed, - m.overlappingBlocks, - m.duration, - m.chunkRange, - m.chunkSamples, - m.chunkSize, - ) - } - return m -} - -// NewLeveledCompactor returns a LeveledCompactor. -func NewLeveledCompactor(ctx context.Context, r prometheus.Registerer, l log.Logger, ranges []int64, pool chunkenc.Pool) (*LeveledCompactor, error) { - if len(ranges) == 0 { - return nil, errors.Errorf("at least one range must be provided") - } - if pool == nil { - pool = chunkenc.NewPool() - } - if l == nil { - l = log.NewNopLogger() - } - return &LeveledCompactor{ - ranges: ranges, - chunkPool: pool, - logger: l, - metrics: newCompactorMetrics(r), - ctx: ctx, - }, nil -} - -type dirMeta struct { - dir string - meta *BlockMeta -} - -// Plan returns a list of compactable blocks in the provided directory. -func (c *LeveledCompactor) Plan(dir string) ([]string, error) { - dirs, err := blockDirs(dir) - if err != nil { - return nil, err - } - if len(dirs) < 1 { - return nil, nil - } - - var dms []dirMeta - for _, dir := range dirs { - meta, err := readMetaFile(dir) - if err != nil { - return nil, err - } - dms = append(dms, dirMeta{dir, meta}) - } - return c.plan(dms) -} - -func (c *LeveledCompactor) plan(dms []dirMeta) ([]string, error) { - sort.Slice(dms, func(i, j int) bool { - return dms[i].meta.MinTime < dms[j].meta.MinTime - }) - - res := c.selectOverlappingDirs(dms) - if len(res) > 0 { - return res, nil - } - // No overlapping blocks, do compaction the usual way. - // We do not include a recently created block with max(minTime), so the block which was just created from WAL. - // This gives users a window of a full block size to piece-wise backup new data without having to care about data overlap. - dms = dms[:len(dms)-1] - - for _, dm := range c.selectDirs(dms) { - res = append(res, dm.dir) - } - if len(res) > 0 { - return res, nil - } - - // Compact any blocks with big enough time range that have >5% tombstones. - for i := len(dms) - 1; i >= 0; i-- { - meta := dms[i].meta - if meta.MaxTime-meta.MinTime < c.ranges[len(c.ranges)/2] { - break - } - if float64(meta.Stats.NumTombstones)/float64(meta.Stats.NumSeries+1) > 0.05 { - return []string{dms[i].dir}, nil - } - } - - return nil, nil -} - -// selectDirs returns the dir metas that should be compacted into a single new block. -// If only a single block range is configured, the result is always nil. -func (c *LeveledCompactor) selectDirs(ds []dirMeta) []dirMeta { - if len(c.ranges) < 2 || len(ds) < 1 { - return nil - } - - highTime := ds[len(ds)-1].meta.MinTime - - for _, iv := range c.ranges[1:] { - parts := splitByRange(ds, iv) - if len(parts) == 0 { - continue - } - - Outer: - for _, p := range parts { - // Do not select the range if it has a block whose compaction failed. - for _, dm := range p { - if dm.meta.Compaction.Failed { - continue Outer - } - } - - mint := p[0].meta.MinTime - maxt := p[len(p)-1].meta.MaxTime - // Pick the range of blocks if it spans the full range (potentially with gaps) - // or is before the most recent block. - // This ensures we don't compact blocks prematurely when another one of the same - // size still fits in the range. - if (maxt-mint == iv || maxt <= highTime) && len(p) > 1 { - return p - } - } - } - - return nil -} - -// selectOverlappingDirs returns all dirs with overlapping time ranges. -// It expects sorted input by mint and returns the overlapping dirs in the same order as received. -func (c *LeveledCompactor) selectOverlappingDirs(ds []dirMeta) []string { - if len(ds) < 2 { - return nil - } - var overlappingDirs []string - globalMaxt := ds[0].meta.MaxTime - for i, d := range ds[1:] { - if d.meta.MinTime < globalMaxt { - if len(overlappingDirs) == 0 { // When it is the first overlap, need to add the last one as well. - overlappingDirs = append(overlappingDirs, ds[i].dir) - } - overlappingDirs = append(overlappingDirs, d.dir) - } else if len(overlappingDirs) > 0 { - break - } - if d.meta.MaxTime > globalMaxt { - globalMaxt = d.meta.MaxTime - } - } - return overlappingDirs -} - -// splitByRange splits the directories by the time range. The range sequence starts at 0. -// -// For example, if we have blocks [0-10, 10-20, 50-60, 90-100] and the split range tr is 30 -// it returns [0-10, 10-20], [50-60], [90-100]. -func splitByRange(ds []dirMeta, tr int64) [][]dirMeta { - var splitDirs [][]dirMeta - - for i := 0; i < len(ds); { - var ( - group []dirMeta - t0 int64 - m = ds[i].meta - ) - // Compute start of aligned time range of size tr closest to the current block's start. - if m.MinTime >= 0 { - t0 = tr * (m.MinTime / tr) - } else { - t0 = tr * ((m.MinTime - tr + 1) / tr) - } - // Skip blocks that don't fall into the range. This can happen via mis-alignment or - // by being the multiple of the intended range. - if m.MaxTime > t0+tr { - i++ - continue - } - - // Add all dirs to the current group that are within [t0, t0+tr]. - for ; i < len(ds); i++ { - // Either the block falls into the next range or doesn't fit at all (checked above). - if ds[i].meta.MaxTime > t0+tr { - break - } - group = append(group, ds[i]) - } - - if len(group) > 0 { - splitDirs = append(splitDirs, group) - } - } - - return splitDirs -} - -func compactBlockMetas(uid ulid.ULID, blocks ...*BlockMeta) *BlockMeta { - res := &BlockMeta{ - ULID: uid, - MinTime: blocks[0].MinTime, - } - - sources := map[ulid.ULID]struct{}{} - // For overlapping blocks, the Maxt can be - // in any block so we track it globally. - maxt := int64(math.MinInt64) - - for _, b := range blocks { - if b.MaxTime > maxt { - maxt = b.MaxTime - } - if b.Compaction.Level > res.Compaction.Level { - res.Compaction.Level = b.Compaction.Level - } - for _, s := range b.Compaction.Sources { - sources[s] = struct{}{} - } - res.Compaction.Parents = append(res.Compaction.Parents, BlockDesc{ - ULID: b.ULID, - MinTime: b.MinTime, - MaxTime: b.MaxTime, - }) - } - res.Compaction.Level++ - - for s := range sources { - res.Compaction.Sources = append(res.Compaction.Sources, s) - } - sort.Slice(res.Compaction.Sources, func(i, j int) bool { - return res.Compaction.Sources[i].Compare(res.Compaction.Sources[j]) < 0 - }) - - res.MaxTime = maxt - return res -} - -// Compact creates a new block in the compactor's directory from the blocks in the -// provided directories. -func (c *LeveledCompactor) Compact(dest string, dirs []string, open []*Block) (uid ulid.ULID, err error) { - var ( - blocks []BlockReader - bs []*Block - metas []*BlockMeta - uids []string - ) - start := time.Now() - - for _, d := range dirs { - meta, err := readMetaFile(d) - if err != nil { - return uid, err - } - - var b *Block - - // Use already open blocks if we can, to avoid - // having the index data in memory twice. - for _, o := range open { - if meta.ULID == o.Meta().ULID { - b = o - break - } - } - - if b == nil { - var err error - b, err = OpenBlock(c.logger, d, c.chunkPool) - if err != nil { - return uid, err - } - defer b.Close() - } - - metas = append(metas, meta) - blocks = append(blocks, b) - bs = append(bs, b) - uids = append(uids, meta.ULID.String()) - } - - entropy := rand.New(rand.NewSource(time.Now().UnixNano())) - uid = ulid.MustNew(ulid.Now(), entropy) - - meta := compactBlockMetas(uid, metas...) - err = c.write(dest, meta, blocks...) - if err == nil { - if meta.Stats.NumSamples == 0 { - for _, b := range bs { - b.meta.Compaction.Deletable = true - if err = writeMetaFile(b.dir, &b.meta); err != nil { - level.Error(c.logger).Log( - "msg", "Failed to write 'Deletable' to meta file after compaction", - "ulid", b.meta.ULID, - ) - } - } - uid = ulid.ULID{} - level.Info(c.logger).Log( - "msg", "compact blocks resulted in empty block", - "count", len(blocks), - "sources", fmt.Sprintf("%v", uids), - "duration", time.Since(start), - ) - } else { - level.Info(c.logger).Log( - "msg", "compact blocks", - "count", len(blocks), - "mint", meta.MinTime, - "maxt", meta.MaxTime, - "ulid", meta.ULID, - "sources", fmt.Sprintf("%v", uids), - "duration", time.Since(start), - ) - } - return uid, nil - } - - var merr tsdb_errors.MultiError - merr.Add(err) - if err != context.Canceled { - for _, b := range bs { - if err := b.setCompactionFailed(); err != nil { - merr.Add(errors.Wrapf(err, "setting compaction failed for block: %s", b.Dir())) - } - } - } - - return uid, merr -} - -func (c *LeveledCompactor) Write(dest string, b BlockReader, mint, maxt int64, parent *BlockMeta) (ulid.ULID, error) { - start := time.Now() - - entropy := rand.New(rand.NewSource(time.Now().UnixNano())) - uid := ulid.MustNew(ulid.Now(), entropy) - - meta := &BlockMeta{ - ULID: uid, - MinTime: mint, - MaxTime: maxt, - } - meta.Compaction.Level = 1 - meta.Compaction.Sources = []ulid.ULID{uid} - - if parent != nil { - meta.Compaction.Parents = []BlockDesc{ - {ULID: parent.ULID, MinTime: parent.MinTime, MaxTime: parent.MaxTime}, - } - } - - err := c.write(dest, meta, b) - if err != nil { - return uid, err - } - - if meta.Stats.NumSamples == 0 { - return ulid.ULID{}, nil - } - - level.Info(c.logger).Log( - "msg", "write block", - "mint", meta.MinTime, - "maxt", meta.MaxTime, - "ulid", meta.ULID, - "duration", time.Since(start), - ) - return uid, nil -} - -// instrumentedChunkWriter is used for level 1 compactions to record statistics -// about compacted chunks. -type instrumentedChunkWriter struct { - ChunkWriter - - size prometheus.Histogram - samples prometheus.Histogram - trange prometheus.Histogram -} - -func (w *instrumentedChunkWriter) WriteChunks(chunks ...chunks.Meta) error { - for _, c := range chunks { - w.size.Observe(float64(len(c.Chunk.Bytes()))) - w.samples.Observe(float64(c.Chunk.NumSamples())) - w.trange.Observe(float64(c.MaxTime - c.MinTime)) - } - return w.ChunkWriter.WriteChunks(chunks...) -} - -// write creates a new block that is the union of the provided blocks into dir. -// It cleans up all files of the old blocks after completing successfully. -func (c *LeveledCompactor) write(dest string, meta *BlockMeta, blocks ...BlockReader) (err error) { - dir := filepath.Join(dest, meta.ULID.String()) - tmp := dir + ".tmp" - var closers []io.Closer - defer func(t time.Time) { - var merr tsdb_errors.MultiError - merr.Add(err) - merr.Add(closeAll(closers)) - err = merr.Err() - - // RemoveAll returns no error when tmp doesn't exist so it is safe to always run it. - if err := os.RemoveAll(tmp); err != nil { - level.Error(c.logger).Log("msg", "removed tmp folder after failed compaction", "err", err.Error()) - } - if err != nil { - c.metrics.failed.Inc() - } - c.metrics.ran.Inc() - c.metrics.duration.Observe(time.Since(t).Seconds()) - }(time.Now()) - - if err = os.RemoveAll(tmp); err != nil { - return err - } - - if err = os.MkdirAll(tmp, 0777); err != nil { - return err - } - - // Populate chunk and index files into temporary directory with - // data of all blocks. - var chunkw ChunkWriter - - chunkw, err = chunks.NewWriter(chunkDir(tmp)) - if err != nil { - return errors.Wrap(err, "open chunk writer") - } - closers = append(closers, chunkw) - // Record written chunk sizes on level 1 compactions. - if meta.Compaction.Level == 1 { - chunkw = &instrumentedChunkWriter{ - ChunkWriter: chunkw, - size: c.metrics.chunkSize, - samples: c.metrics.chunkSamples, - trange: c.metrics.chunkRange, - } - } - - indexw, err := index.NewWriter(filepath.Join(tmp, indexFilename)) - if err != nil { - return errors.Wrap(err, "open index writer") - } - closers = append(closers, indexw) - - if err := c.populateBlock(blocks, meta, indexw, chunkw); err != nil { - return errors.Wrap(err, "write compaction") - } - - select { - case <-c.ctx.Done(): - return c.ctx.Err() - default: - } - - // We are explicitly closing them here to check for error even - // though these are covered under defer. This is because in Windows, - // you cannot delete these unless they are closed and the defer is to - // make sure they are closed if the function exits due to an error above. - var merr tsdb_errors.MultiError - for _, w := range closers { - merr.Add(w.Close()) - } - closers = closers[:0] // Avoid closing the writers twice in the defer. - if merr.Err() != nil { - return merr.Err() - } - - // Populated block is empty, so exit early. - if meta.Stats.NumSamples == 0 { - return nil - } - - if err = writeMetaFile(tmp, meta); err != nil { - return errors.Wrap(err, "write merged meta") - } - - // Create an empty tombstones file. - if err := writeTombstoneFile(tmp, newMemTombstones()); err != nil { - return errors.Wrap(err, "write new tombstones file") - } - - df, err := fileutil.OpenDir(tmp) - if err != nil { - return errors.Wrap(err, "open temporary block dir") - } - defer func() { - if df != nil { - df.Close() - } - }() - - if err := df.Sync(); err != nil { - return errors.Wrap(err, "sync temporary dir file") - } - - // Close temp dir before rename block dir (for windows platform). - if err = df.Close(); err != nil { - return errors.Wrap(err, "close temporary dir") - } - df = nil - - // Block successfully written, make visible and remove old ones. - if err := renameFile(tmp, dir); err != nil { - return errors.Wrap(err, "rename block dir") - } - - return nil -} - -// populateBlock fills the index and chunk writers with new data gathered as the union -// of the provided blocks. It returns meta information for the new block. -// It expects sorted blocks input by mint. -func (c *LeveledCompactor) populateBlock(blocks []BlockReader, meta *BlockMeta, indexw IndexWriter, chunkw ChunkWriter) (err error) { - if len(blocks) == 0 { - return errors.New("cannot populate block from no readers") - } - - var ( - set ChunkSeriesSet - allSymbols = make(map[string]struct{}, 1<<16) - closers = []io.Closer{} - overlapping bool - ) - defer func() { - var merr tsdb_errors.MultiError - merr.Add(err) - merr.Add(closeAll(closers)) - err = merr.Err() - c.metrics.populatingBlocks.Set(0) - }() - c.metrics.populatingBlocks.Set(1) - - globalMaxt := blocks[0].MaxTime() - for i, b := range blocks { - select { - case <-c.ctx.Done(): - return c.ctx.Err() - default: - } - - if !overlapping { - if i > 0 && b.MinTime() < globalMaxt { - c.metrics.overlappingBlocks.Inc() - overlapping = true - level.Warn(c.logger).Log("msg", "found overlapping blocks during compaction", "ulid", meta.ULID) - } - if b.MaxTime() > globalMaxt { - globalMaxt = b.MaxTime() - } - } - - indexr, err := b.Index() - if err != nil { - return errors.Wrapf(err, "open index reader for block %s", b) - } - closers = append(closers, indexr) - - chunkr, err := b.Chunks() - if err != nil { - return errors.Wrapf(err, "open chunk reader for block %s", b) - } - closers = append(closers, chunkr) - - tombsr, err := b.Tombstones() - if err != nil { - return errors.Wrapf(err, "open tombstone reader for block %s", b) - } - closers = append(closers, tombsr) - - symbols, err := indexr.Symbols() - if err != nil { - return errors.Wrap(err, "read symbols") - } - for s := range symbols { - allSymbols[s] = struct{}{} - } - - all, err := indexr.Postings(index.AllPostingsKey()) - if err != nil { - return err - } - all = indexr.SortedPostings(all) - - s := newCompactionSeriesSet(indexr, chunkr, tombsr, all) - - if i == 0 { - set = s - continue - } - set, err = newCompactionMerger(set, s) - if err != nil { - return err - } - } - - // We fully rebuild the postings list index from merged series. - var ( - postings = index.NewMemPostings() - values = map[string]stringset{} - i = uint64(0) - ) - - if err := indexw.AddSymbols(allSymbols); err != nil { - return errors.Wrap(err, "add symbols") - } - - for set.Next() { - select { - case <-c.ctx.Done(): - return c.ctx.Err() - default: - } - - lset, chks, dranges := set.At() // The chunks here are not fully deleted. - if overlapping { - // If blocks are overlapping, it is possible to have unsorted chunks. - sort.Slice(chks, func(i, j int) bool { - return chks[i].MinTime < chks[j].MinTime - }) - } - - // Skip the series with all deleted chunks. - if len(chks) == 0 { - continue - } - - for i, chk := range chks { - if chk.MinTime < meta.MinTime || chk.MaxTime > meta.MaxTime { - return errors.Errorf("found chunk with minTime: %d maxTime: %d outside of compacted minTime: %d maxTime: %d", - chk.MinTime, chk.MaxTime, meta.MinTime, meta.MaxTime) - } - - if len(dranges) > 0 { - // Re-encode the chunk to not have deleted values. - if !chk.OverlapsClosedInterval(dranges[0].Mint, dranges[len(dranges)-1].Maxt) { - continue - } - newChunk := chunkenc.NewXORChunk() - app, err := newChunk.Appender() - if err != nil { - return err - } - - it := &deletedIterator{it: chk.Chunk.Iterator(), intervals: dranges} - for it.Next() { - ts, v := it.At() - app.Append(ts, v) - } - - chks[i].Chunk = newChunk - } - } - - mergedChks := chks - if overlapping { - mergedChks, err = chunks.MergeOverlappingChunks(chks) - if err != nil { - return errors.Wrap(err, "merge overlapping chunks") - } - } - if err := chunkw.WriteChunks(mergedChks...); err != nil { - return errors.Wrap(err, "write chunks") - } - - if err := indexw.AddSeries(i, lset, mergedChks...); err != nil { - return errors.Wrap(err, "add series") - } - - meta.Stats.NumChunks += uint64(len(mergedChks)) - meta.Stats.NumSeries++ - for _, chk := range mergedChks { - meta.Stats.NumSamples += uint64(chk.Chunk.NumSamples()) - } - - for _, chk := range mergedChks { - if err := c.chunkPool.Put(chk.Chunk); err != nil { - return errors.Wrap(err, "put chunk") - } - } - - for _, l := range lset { - valset, ok := values[l.Name] - if !ok { - valset = stringset{} - values[l.Name] = valset - } - valset.set(l.Value) - } - postings.Add(i, lset) - - i++ - } - if set.Err() != nil { - return errors.Wrap(set.Err(), "iterate compaction set") - } - - s := make([]string, 0, 256) - for n, v := range values { - s = s[:0] - - for x := range v { - s = append(s, x) - } - if err := indexw.WriteLabelIndex([]string{n}, s); err != nil { - return errors.Wrap(err, "write label index") - } - } - - for _, l := range postings.SortedKeys() { - if err := indexw.WritePostings(l.Name, l.Value, postings.Get(l.Name, l.Value)); err != nil { - return errors.Wrap(err, "write postings") - } - } - return nil -} - -type compactionSeriesSet struct { - p index.Postings - index IndexReader - chunks ChunkReader - tombstones TombstoneReader - - l labels.Labels - c []chunks.Meta - intervals Intervals - err error -} - -func newCompactionSeriesSet(i IndexReader, c ChunkReader, t TombstoneReader, p index.Postings) *compactionSeriesSet { - return &compactionSeriesSet{ - index: i, - chunks: c, - tombstones: t, - p: p, - } -} - -func (c *compactionSeriesSet) Next() bool { - if !c.p.Next() { - return false - } - var err error - - c.intervals, err = c.tombstones.Get(c.p.At()) - if err != nil { - c.err = errors.Wrap(err, "get tombstones") - return false - } - - if err = c.index.Series(c.p.At(), &c.l, &c.c); err != nil { - c.err = errors.Wrapf(err, "get series %d", c.p.At()) - return false - } - - // Remove completely deleted chunks. - if len(c.intervals) > 0 { - chks := make([]chunks.Meta, 0, len(c.c)) - for _, chk := range c.c { - if !(Interval{chk.MinTime, chk.MaxTime}.isSubrange(c.intervals)) { - chks = append(chks, chk) - } - } - - c.c = chks - } - - for i := range c.c { - chk := &c.c[i] - - chk.Chunk, err = c.chunks.Chunk(chk.Ref) - if err != nil { - c.err = errors.Wrapf(err, "chunk %d not found", chk.Ref) - return false - } - } - - return true -} - -func (c *compactionSeriesSet) Err() error { - if c.err != nil { - return c.err - } - return c.p.Err() -} - -func (c *compactionSeriesSet) At() (labels.Labels, []chunks.Meta, Intervals) { - return c.l, c.c, c.intervals -} - -type compactionMerger struct { - a, b ChunkSeriesSet - - aok, bok bool - l labels.Labels - c []chunks.Meta - intervals Intervals -} - -func newCompactionMerger(a, b ChunkSeriesSet) (*compactionMerger, error) { - c := &compactionMerger{ - a: a, - b: b, - } - // Initialize first elements of both sets as Next() needs - // one element look-ahead. - c.aok = c.a.Next() - c.bok = c.b.Next() - - return c, c.Err() -} - -func (c *compactionMerger) compare() int { - if !c.aok { - return 1 - } - if !c.bok { - return -1 - } - a, _, _ := c.a.At() - b, _, _ := c.b.At() - return labels.Compare(a, b) -} - -func (c *compactionMerger) Next() bool { - if !c.aok && !c.bok || c.Err() != nil { - return false - } - // While advancing child iterators the memory used for labels and chunks - // may be reused. When picking a series we have to store the result. - var lset labels.Labels - var chks []chunks.Meta - - d := c.compare() - if d > 0 { - lset, chks, c.intervals = c.b.At() - c.l = append(c.l[:0], lset...) - c.c = append(c.c[:0], chks...) - - c.bok = c.b.Next() - } else if d < 0 { - lset, chks, c.intervals = c.a.At() - c.l = append(c.l[:0], lset...) - c.c = append(c.c[:0], chks...) - - c.aok = c.a.Next() - } else { - // Both sets contain the current series. Chain them into a single one. - l, ca, ra := c.a.At() - _, cb, rb := c.b.At() - - for _, r := range rb { - ra = ra.add(r) - } - - c.l = append(c.l[:0], l...) - c.c = append(append(c.c[:0], ca...), cb...) - c.intervals = ra - - c.aok = c.a.Next() - c.bok = c.b.Next() - } - - return true -} - -func (c *compactionMerger) Err() error { - if c.a.Err() != nil { - return c.a.Err() - } - return c.b.Err() -} - -func (c *compactionMerger) At() (labels.Labels, []chunks.Meta, Intervals) { - return c.l, c.c, c.intervals -} - -func renameFile(from, to string) error { - if err := os.RemoveAll(to); err != nil { - return err - } - if err := os.Rename(from, to); err != nil { - return err - } - - // Directory was renamed; sync parent dir to persist rename. - pdir, err := fileutil.OpenDir(filepath.Dir(to)) - if err != nil { - return err - } - - if err = pdir.Sync(); err != nil { - pdir.Close() - return err - } - return pdir.Close() -} diff --git a/vendor/github.com/prometheus/tsdb/compact_test.go b/vendor/github.com/prometheus/tsdb/compact_test.go deleted file mode 100644 index 90819bcf..00000000 --- a/vendor/github.com/prometheus/tsdb/compact_test.go +++ /dev/null @@ -1,1060 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "context" - "fmt" - "io/ioutil" - "math" - "os" - "path" - "path/filepath" - "testing" - "time" - - "github.com/go-kit/kit/log" - "github.com/pkg/errors" - prom_testutil "github.com/prometheus/client_golang/prometheus/testutil" - dto "github.com/prometheus/client_model/go" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" -) - -func TestSplitByRange(t *testing.T) { - cases := []struct { - trange int64 - ranges [][2]int64 - output [][][2]int64 - }{ - { - trange: 60, - ranges: [][2]int64{{0, 10}}, - output: [][][2]int64{ - {{0, 10}}, - }, - }, - { - trange: 60, - ranges: [][2]int64{{0, 60}}, - output: [][][2]int64{ - {{0, 60}}, - }, - }, - { - trange: 60, - ranges: [][2]int64{{0, 10}, {9, 15}, {30, 60}}, - output: [][][2]int64{ - {{0, 10}, {9, 15}, {30, 60}}, - }, - }, - { - trange: 60, - ranges: [][2]int64{{70, 90}, {125, 130}, {130, 180}, {1000, 1001}}, - output: [][][2]int64{ - {{70, 90}}, - {{125, 130}, {130, 180}}, - {{1000, 1001}}, - }, - }, - // Mis-aligned or too-large blocks are ignored. - { - trange: 60, - ranges: [][2]int64{{50, 70}, {70, 80}}, - output: [][][2]int64{ - {{70, 80}}, - }, - }, - { - trange: 72, - ranges: [][2]int64{{0, 144}, {144, 216}, {216, 288}}, - output: [][][2]int64{ - {{144, 216}}, - {{216, 288}}, - }, - }, - // Various awkward edge cases easy to hit with negative numbers. - { - trange: 60, - ranges: [][2]int64{{-10, -5}}, - output: [][][2]int64{ - {{-10, -5}}, - }, - }, - { - trange: 60, - ranges: [][2]int64{{-60, -50}, {-10, -5}}, - output: [][][2]int64{ - {{-60, -50}, {-10, -5}}, - }, - }, - { - trange: 60, - ranges: [][2]int64{{-60, -50}, {-10, -5}, {0, 15}}, - output: [][][2]int64{ - {{-60, -50}, {-10, -5}}, - {{0, 15}}, - }, - }, - } - - for _, c := range cases { - // Transform input range tuples into dirMetas. - blocks := make([]dirMeta, 0, len(c.ranges)) - for _, r := range c.ranges { - blocks = append(blocks, dirMeta{ - meta: &BlockMeta{ - MinTime: r[0], - MaxTime: r[1], - }, - }) - } - - // Transform output range tuples into dirMetas. - exp := make([][]dirMeta, len(c.output)) - for i, group := range c.output { - for _, r := range group { - exp[i] = append(exp[i], dirMeta{ - meta: &BlockMeta{MinTime: r[0], MaxTime: r[1]}, - }) - } - } - - testutil.Equals(t, exp, splitByRange(blocks, c.trange)) - } -} - -// See https://github.com/prometheus/prometheus/issues/3064 -func TestNoPanicFor0Tombstones(t *testing.T) { - metas := []dirMeta{ - { - dir: "1", - meta: &BlockMeta{ - MinTime: 0, - MaxTime: 100, - }, - }, - { - dir: "2", - meta: &BlockMeta{ - MinTime: 101, - MaxTime: 200, - }, - }, - } - - c, err := NewLeveledCompactor(context.Background(), nil, nil, []int64{50}, nil) - testutil.Ok(t, err) - - c.plan(metas) -} - -func TestLeveledCompactor_plan(t *testing.T) { - // This mimicks our default ExponentialBlockRanges with min block size equals to 20. - compactor, err := NewLeveledCompactor(context.Background(), nil, nil, []int64{ - 20, - 60, - 180, - 540, - 1620, - }, nil) - testutil.Ok(t, err) - - cases := map[string]struct { - metas []dirMeta - expected []string - }{ - "Outside Range": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - }, - expected: nil, - }, - "We should wait for four blocks of size 20 to appear before compacting.": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - }, - expected: nil, - }, - `We should wait for a next block of size 20 to appear before compacting - the existing ones. We have three, but we ignore the fresh one from WAl`: { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 40, 60, nil), - }, - expected: nil, - }, - "Block to fill the entire parent range appeared – should be compacted": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 40, 60, nil), - metaRange("4", 60, 80, nil), - }, - expected: []string{"1", "2", "3"}, - }, - `Block for the next parent range appeared with gap with size 20. Nothing will happen in the first one - anymore but we ignore fresh one still, so no compaction`: { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 60, 80, nil), - }, - expected: nil, - }, - `Block for the next parent range appeared, and we have a gap with size 20 between second and third block. - We will not get this missed gap anymore and we should compact just these two.`: { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 60, 80, nil), - metaRange("4", 80, 100, nil), - }, - expected: []string{"1", "2"}, - }, - "We have 20, 20, 20, 60, 60 range blocks. '5' is marked as fresh one": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 40, 60, nil), - metaRange("4", 60, 120, nil), - metaRange("5", 120, 180, nil), - }, - expected: []string{"1", "2", "3"}, - }, - "We have 20, 60, 20, 60, 240 range blocks. We can compact 20 + 60 + 60": { - metas: []dirMeta{ - metaRange("2", 20, 40, nil), - metaRange("4", 60, 120, nil), - metaRange("5", 960, 980, nil), // Fresh one. - metaRange("6", 120, 180, nil), - metaRange("7", 720, 960, nil), - }, - expected: []string{"2", "4", "6"}, - }, - "Do not select large blocks that have many tombstones when there is no fresh block": { - metas: []dirMeta{ - metaRange("1", 0, 540, &BlockStats{ - NumSeries: 10, - NumTombstones: 3, - }), - }, - expected: nil, - }, - "Select large blocks that have many tombstones when fresh appears": { - metas: []dirMeta{ - metaRange("1", 0, 540, &BlockStats{ - NumSeries: 10, - NumTombstones: 3, - }), - metaRange("2", 540, 560, nil), - }, - expected: []string{"1"}, - }, - "For small blocks, do not compact tombstones, even when fresh appears.": { - metas: []dirMeta{ - metaRange("1", 0, 60, &BlockStats{ - NumSeries: 10, - NumTombstones: 3, - }), - metaRange("2", 60, 80, nil), - }, - expected: nil, - }, - `Regression test: we were stuck in a compact loop where we always recompacted - the same block when tombstones and series counts were zero`: { - metas: []dirMeta{ - metaRange("1", 0, 540, &BlockStats{ - NumSeries: 0, - NumTombstones: 0, - }), - metaRange("2", 540, 560, nil), - }, - expected: nil, - }, - `Regression test: we were wrongly assuming that new block is fresh from WAL when its ULID is newest. - We need to actually look on max time instead. - - With previous, wrong approach "8" block was ignored, so we were wrongly compacting 5 and 7 and introducing - block overlaps`: { - metas: []dirMeta{ - metaRange("5", 0, 360, nil), - metaRange("6", 540, 560, nil), // Fresh one. - metaRange("7", 360, 420, nil), - metaRange("8", 420, 540, nil), - }, - expected: []string{"7", "8"}, - }, - // |--------------| - // |----------------| - // |--------------| - "Overlapping blocks 1": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 19, 40, nil), - metaRange("3", 40, 60, nil), - }, - expected: []string{"1", "2"}, - }, - // |--------------| - // |--------------| - // |--------------| - "Overlapping blocks 2": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 30, 50, nil), - }, - expected: []string{"2", "3"}, - }, - // |--------------| - // |---------------------| - // |--------------| - "Overlapping blocks 3": { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 10, 40, nil), - metaRange("3", 30, 50, nil), - }, - expected: []string{"1", "2", "3"}, - }, - // |--------------| - // |--------------------------------| - // |--------------| - // |--------------| - "Overlapping blocks 4": { - metas: []dirMeta{ - metaRange("5", 0, 360, nil), - metaRange("6", 340, 560, nil), - metaRange("7", 360, 420, nil), - metaRange("8", 420, 540, nil), - }, - expected: []string{"5", "6", "7", "8"}, - }, - // |--------------| - // |--------------| - // |--------------| - // |--------------| - "Overlapping blocks 5": { - metas: []dirMeta{ - metaRange("1", 0, 10, nil), - metaRange("2", 9, 20, nil), - metaRange("3", 30, 40, nil), - metaRange("4", 39, 50, nil), - }, - expected: []string{"1", "2"}, - }, - } - - for title, c := range cases { - if !t.Run(title, func(t *testing.T) { - res, err := compactor.plan(c.metas) - testutil.Ok(t, err) - testutil.Equals(t, c.expected, res) - }) { - return - } - } -} - -func TestRangeWithFailedCompactionWontGetSelected(t *testing.T) { - compactor, err := NewLeveledCompactor(context.Background(), nil, nil, []int64{ - 20, - 60, - 240, - 720, - 2160, - }, nil) - testutil.Ok(t, err) - - cases := []struct { - metas []dirMeta - }{ - { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 40, 60, nil), - metaRange("4", 60, 80, nil), - }, - }, - { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 60, 80, nil), - metaRange("4", 80, 100, nil), - }, - }, - { - metas: []dirMeta{ - metaRange("1", 0, 20, nil), - metaRange("2", 20, 40, nil), - metaRange("3", 40, 60, nil), - metaRange("4", 60, 120, nil), - metaRange("5", 120, 180, nil), - metaRange("6", 180, 200, nil), - }, - }, - } - - for _, c := range cases { - c.metas[1].meta.Compaction.Failed = true - res, err := compactor.plan(c.metas) - testutil.Ok(t, err) - - testutil.Equals(t, []string(nil), res) - } -} - -func TestCompactionFailWillCleanUpTempDir(t *testing.T) { - compactor, err := NewLeveledCompactor(context.Background(), nil, log.NewNopLogger(), []int64{ - 20, - 60, - 240, - 720, - 2160, - }, nil) - testutil.Ok(t, err) - - tmpdir, err := ioutil.TempDir("", "test") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - testutil.NotOk(t, compactor.write(tmpdir, &BlockMeta{}, erringBReader{})) - _, err = os.Stat(filepath.Join(tmpdir, BlockMeta{}.ULID.String()) + ".tmp") - testutil.Assert(t, os.IsNotExist(err), "directory is not cleaned up") -} - -func metaRange(name string, mint, maxt int64, stats *BlockStats) dirMeta { - meta := &BlockMeta{MinTime: mint, MaxTime: maxt} - if stats != nil { - meta.Stats = *stats - } - return dirMeta{ - dir: name, - meta: meta, - } -} - -type erringBReader struct{} - -func (erringBReader) Index() (IndexReader, error) { return nil, errors.New("index") } -func (erringBReader) Chunks() (ChunkReader, error) { return nil, errors.New("chunks") } -func (erringBReader) Tombstones() (TombstoneReader, error) { return nil, errors.New("tombstones") } -func (erringBReader) MinTime() int64 { return 0 } -func (erringBReader) MaxTime() int64 { return 0 } - -type nopChunkWriter struct{} - -func (nopChunkWriter) WriteChunks(chunks ...chunks.Meta) error { return nil } -func (nopChunkWriter) Close() error { return nil } - -func TestCompaction_populateBlock(t *testing.T) { - var populateBlocksCases = []struct { - title string - inputSeriesSamples [][]seriesSamples - compactMinTime int64 - compactMaxTime int64 // When not defined the test runner sets a default of math.MaxInt64. - expSeriesSamples []seriesSamples - expErr error - }{ - { - title: "Populate block from empty input should return error.", - inputSeriesSamples: [][]seriesSamples{}, - expErr: errors.New("cannot populate block from no readers"), - }, - { - // Populate from single block without chunks. We expect these kind of series being ignored. - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "b"}, - }, - }, - }, - }, - { - title: "Populate from single block. We expect the same samples at the output.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 0}, {t: 10}}, {{t: 11}, {t: 20}}}, - }, - }, - }, - expSeriesSamples: []seriesSamples{ - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 0}, {t: 10}}, {{t: 11}, {t: 20}}}, - }, - }, - }, - { - title: "Populate from two blocks.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 0}, {t: 10}}, {{t: 11}, {t: 20}}}, - }, - { - lset: map[string]string{"a": "c"}, - chunks: [][]sample{{{t: 1}, {t: 9}}, {{t: 10}, {t: 19}}}, - }, - { - // no-chunk series should be dropped. - lset: map[string]string{"a": "empty"}, - }, - }, - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 21}, {t: 30}}}, - }, - { - lset: map[string]string{"a": "c"}, - chunks: [][]sample{{{t: 40}, {t: 45}}}, - }, - }, - }, - expSeriesSamples: []seriesSamples{ - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 0}, {t: 10}}, {{t: 11}, {t: 20}}, {{t: 21}, {t: 30}}}, - }, - { - lset: map[string]string{"a": "c"}, - chunks: [][]sample{{{t: 1}, {t: 9}}, {{t: 10}, {t: 19}}, {{t: 40}, {t: 45}}}, - }, - }, - }, - { - title: "Populate from two blocks showing that order is maintained.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 0}, {t: 10}}, {{t: 11}, {t: 20}}}, - }, - { - lset: map[string]string{"a": "c"}, - chunks: [][]sample{{{t: 1}, {t: 9}}, {{t: 10}, {t: 19}}}, - }, - }, - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 21}, {t: 30}}}, - }, - { - lset: map[string]string{"a": "c"}, - chunks: [][]sample{{{t: 40}, {t: 45}}}, - }, - }, - }, - expSeriesSamples: []seriesSamples{ - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 0}, {t: 10}}, {{t: 11}, {t: 20}}, {{t: 21}, {t: 30}}}, - }, - { - lset: map[string]string{"a": "c"}, - chunks: [][]sample{{{t: 1}, {t: 9}}, {{t: 10}, {t: 19}}, {{t: 40}, {t: 45}}}, - }, - }, - }, - { - title: "Populate from two blocks showing that order of series is sorted.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "4"}, - chunks: [][]sample{{{t: 5}, {t: 7}}}, - }, - { - lset: map[string]string{"a": "3"}, - chunks: [][]sample{{{t: 5}, {t: 6}}}, - }, - { - lset: map[string]string{"a": "same"}, - chunks: [][]sample{{{t: 1}, {t: 4}}}, - }, - }, - { - { - lset: map[string]string{"a": "2"}, - chunks: [][]sample{{{t: 1}, {t: 3}}}, - }, - { - lset: map[string]string{"a": "1"}, - chunks: [][]sample{{{t: 1}, {t: 2}}}, - }, - { - lset: map[string]string{"a": "same"}, - chunks: [][]sample{{{t: 5}, {t: 8}}}, - }, - }, - }, - expSeriesSamples: []seriesSamples{ - { - lset: map[string]string{"a": "1"}, - chunks: [][]sample{{{t: 1}, {t: 2}}}, - }, - { - lset: map[string]string{"a": "2"}, - chunks: [][]sample{{{t: 1}, {t: 3}}}, - }, - { - lset: map[string]string{"a": "3"}, - chunks: [][]sample{{{t: 5}, {t: 6}}}, - }, - { - lset: map[string]string{"a": "4"}, - chunks: [][]sample{{{t: 5}, {t: 7}}}, - }, - { - lset: map[string]string{"a": "same"}, - chunks: [][]sample{{{t: 1}, {t: 4}}, {{t: 5}, {t: 8}}}, - }, - }, - }, - { - // This should not happened because head block is making sure the chunks are not crossing block boundaries. - title: "Populate from single block containing chunk outside of compact meta time range.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 1}, {t: 2}}, {{t: 10}, {t: 30}}}, - }, - }, - }, - compactMinTime: 0, - compactMaxTime: 20, - expErr: errors.New("found chunk with minTime: 10 maxTime: 30 outside of compacted minTime: 0 maxTime: 20"), - }, - { - // Introduced by https://github.com/prometheus/tsdb/issues/347. - title: "Populate from single block containing extra chunk", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "issue347"}, - chunks: [][]sample{{{t: 1}, {t: 2}}, {{t: 10}, {t: 20}}}, - }, - }, - }, - compactMinTime: 0, - compactMaxTime: 10, - expErr: errors.New("found chunk with minTime: 10 maxTime: 20 outside of compacted minTime: 0 maxTime: 10"), - }, - { - // Deduplication expected. - // Introduced by pull/370 and pull/539. - title: "Populate from two blocks containing duplicated chunk.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 1}, {t: 2}}, {{t: 10}, {t: 20}}}, - }, - }, - { - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 10}, {t: 20}}}, - }, - }, - }, - expSeriesSamples: []seriesSamples{ - { - lset: map[string]string{"a": "b"}, - chunks: [][]sample{{{t: 1}, {t: 2}}, {{t: 10}, {t: 20}}}, - }, - }, - }, - { - // Introduced by https://github.com/prometheus/tsdb/pull/539. - title: "Populate from three blocks that the last two are overlapping.", - inputSeriesSamples: [][]seriesSamples{ - { - { - lset: map[string]string{"before": "fix"}, - chunks: [][]sample{{{t: 0}, {t: 10}, {t: 11}, {t: 20}}}, - }, - { - lset: map[string]string{"after": "fix"}, - chunks: [][]sample{{{t: 0}, {t: 10}, {t: 11}, {t: 20}}}, - }, - }, - { - { - lset: map[string]string{"before": "fix"}, - chunks: [][]sample{{{t: 19}, {t: 30}}}, - }, - { - lset: map[string]string{"after": "fix"}, - chunks: [][]sample{{{t: 21}, {t: 30}}}, - }, - }, - { - { - lset: map[string]string{"before": "fix"}, - chunks: [][]sample{{{t: 27}, {t: 35}}}, - }, - { - lset: map[string]string{"after": "fix"}, - chunks: [][]sample{{{t: 27}, {t: 35}}}, - }, - }, - }, - expSeriesSamples: []seriesSamples{ - { - lset: map[string]string{"after": "fix"}, - chunks: [][]sample{{{t: 0}, {t: 10}, {t: 11}, {t: 20}}, {{t: 21}, {t: 27}, {t: 30}, {t: 35}}}, - }, - { - lset: map[string]string{"before": "fix"}, - chunks: [][]sample{{{t: 0}, {t: 10}, {t: 11}, {t: 19}, {t: 20}, {t: 27}, {t: 30}, {t: 35}}}, - }, - }, - }, - } - - for _, tc := range populateBlocksCases { - if ok := t.Run(tc.title, func(t *testing.T) { - blocks := make([]BlockReader, 0, len(tc.inputSeriesSamples)) - for _, b := range tc.inputSeriesSamples { - ir, cr, mint, maxt := createIdxChkReaders(b) - blocks = append(blocks, &mockBReader{ir: ir, cr: cr, mint: mint, maxt: maxt}) - } - - c, err := NewLeveledCompactor(context.Background(), nil, nil, []int64{0}, nil) - testutil.Ok(t, err) - - meta := &BlockMeta{ - MinTime: tc.compactMinTime, - MaxTime: tc.compactMaxTime, - } - if meta.MaxTime == 0 { - meta.MaxTime = math.MaxInt64 - } - - iw := &mockIndexWriter{} - err = c.populateBlock(blocks, meta, iw, nopChunkWriter{}) - if tc.expErr != nil { - testutil.NotOk(t, err) - testutil.Equals(t, tc.expErr.Error(), err.Error()) - return - } - testutil.Ok(t, err) - - testutil.Equals(t, tc.expSeriesSamples, iw.series) - - // Check if stats are calculated properly. - s := BlockStats{ - NumSeries: uint64(len(tc.expSeriesSamples)), - } - for _, series := range tc.expSeriesSamples { - s.NumChunks += uint64(len(series.chunks)) - for _, chk := range series.chunks { - s.NumSamples += uint64(len(chk)) - } - } - testutil.Equals(t, s, meta.Stats) - }); !ok { - return - } - } -} - -func BenchmarkCompaction(b *testing.B) { - cases := []struct { - ranges [][2]int64 - compactionType string - }{ - { - ranges: [][2]int64{{0, 100}, {200, 300}, {400, 500}, {600, 700}}, - compactionType: "normal", - }, - { - ranges: [][2]int64{{0, 1000}, {2000, 3000}, {4000, 5000}, {6000, 7000}}, - compactionType: "normal", - }, - { - ranges: [][2]int64{{0, 10000}, {20000, 30000}, {40000, 50000}, {60000, 70000}}, - compactionType: "normal", - }, - { - ranges: [][2]int64{{0, 100000}, {200000, 300000}, {400000, 500000}, {600000, 700000}}, - compactionType: "normal", - }, - // 40% overlaps. - { - ranges: [][2]int64{{0, 100}, {60, 160}, {120, 220}, {180, 280}}, - compactionType: "vertical", - }, - { - ranges: [][2]int64{{0, 1000}, {600, 1600}, {1200, 2200}, {1800, 2800}}, - compactionType: "vertical", - }, - { - ranges: [][2]int64{{0, 10000}, {6000, 16000}, {12000, 22000}, {18000, 28000}}, - compactionType: "vertical", - }, - { - ranges: [][2]int64{{0, 100000}, {60000, 160000}, {120000, 220000}, {180000, 280000}}, - compactionType: "vertical", - }, - } - - nSeries := 10000 - for _, c := range cases { - nBlocks := len(c.ranges) - b.Run(fmt.Sprintf("type=%s,blocks=%d,series=%d,samplesPerSeriesPerBlock=%d", c.compactionType, nBlocks, nSeries, c.ranges[0][1]-c.ranges[0][0]+1), func(b *testing.B) { - dir, err := ioutil.TempDir("", "bench_compaction") - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, os.RemoveAll(dir)) - }() - blockDirs := make([]string, 0, len(c.ranges)) - var blocks []*Block - for _, r := range c.ranges { - block, err := OpenBlock(nil, createBlock(b, dir, genSeries(nSeries, 10, r[0], r[1])), nil) - testutil.Ok(b, err) - blocks = append(blocks, block) - defer func() { - testutil.Ok(b, block.Close()) - }() - blockDirs = append(blockDirs, block.Dir()) - } - - c, err := NewLeveledCompactor(context.Background(), nil, log.NewNopLogger(), []int64{0}, nil) - testutil.Ok(b, err) - - b.ResetTimer() - b.ReportAllocs() - _, err = c.Compact(dir, blockDirs, blocks) - testutil.Ok(b, err) - }) - } -} - -// TestDisableAutoCompactions checks that we can -// disable and enable the auto compaction. -// This is needed for unit tests that rely on -// checking state before and after a compaction. -func TestDisableAutoCompactions(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - blockRange := DefaultOptions.BlockRanges[0] - label := labels.FromStrings("foo", "bar") - - // Trigger a compaction to check that it was skipped and - // no new blocks were created when compaction is disabled. - db.DisableCompactions() - app := db.Appender() - for i := int64(0); i < 3; i++ { - _, err := app.Add(label, i*blockRange, 0) - testutil.Ok(t, err) - _, err = app.Add(label, i*blockRange+1000, 0) - testutil.Ok(t, err) - } - testutil.Ok(t, app.Commit()) - - select { - case db.compactc <- struct{}{}: - default: - } - - m := &dto.Metric{} - for x := 0; x < 10; x++ { - db.metrics.compactionsSkipped.Write(m) - if *m.Counter.Value > float64(0) { - break - } - time.Sleep(10 * time.Millisecond) - } - - testutil.Assert(t, *m.Counter.Value > float64(0), "No compaction was skipped after the set timeout.") - testutil.Equals(t, 0, len(db.blocks)) - - // Enable the compaction, trigger it and check that the block is persisted. - db.EnableCompactions() - select { - case db.compactc <- struct{}{}: - default: - } - for x := 0; x < 100; x++ { - if len(db.Blocks()) > 0 { - break - } - time.Sleep(100 * time.Millisecond) - } - testutil.Assert(t, len(db.Blocks()) > 0, "No block was persisted after the set timeout.") -} - -// TestCancelCompactions ensures that when the db is closed -// any running compaction is cancelled to unblock closing the db. -func TestCancelCompactions(t *testing.T) { - tmpdir, err := ioutil.TempDir("", "testCancelCompaction") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - // Create some blocks to fall within the compaction range. - createBlock(t, tmpdir, genSeries(10, 10000, 0, 1000)) - createBlock(t, tmpdir, genSeries(10, 10000, 1000, 2000)) - createBlock(t, tmpdir, genSeries(1, 1, 2000, 2001)) // The most recent block is ignored so can be e small one. - - // Copy the db so we have an exact copy to compare compaction times. - tmpdirCopy := tmpdir + "Copy" - err = fileutil.CopyDirs(tmpdir, tmpdirCopy) - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdirCopy)) - }() - - // Measure the compaction time without interupting it. - var timeCompactionUninterrupted time.Duration - { - db, err := Open(tmpdir, log.NewNopLogger(), nil, &Options{BlockRanges: []int64{1, 2000}}) - testutil.Ok(t, err) - testutil.Equals(t, 3, len(db.Blocks()), "initial block count mismatch") - testutil.Equals(t, 0.0, prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran), "initial compaction counter mismatch") - db.compactc <- struct{}{} // Trigger a compaction. - var start time.Time - for prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.populatingBlocks) <= 0 { - time.Sleep(3 * time.Millisecond) - } - start = time.Now() - - for prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran) != 1 { - time.Sleep(3 * time.Millisecond) - } - timeCompactionUninterrupted = time.Since(start) - - testutil.Ok(t, db.Close()) - } - // Measure the compaction time when closing the db in the middle of compaction. - { - db, err := Open(tmpdirCopy, log.NewNopLogger(), nil, &Options{BlockRanges: []int64{1, 2000}}) - testutil.Ok(t, err) - testutil.Equals(t, 3, len(db.Blocks()), "initial block count mismatch") - testutil.Equals(t, 0.0, prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran), "initial compaction counter mismatch") - db.compactc <- struct{}{} // Trigger a compaction. - dbClosed := make(chan struct{}) - - for prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.populatingBlocks) <= 0 { - time.Sleep(3 * time.Millisecond) - } - go func() { - testutil.Ok(t, db.Close()) - close(dbClosed) - }() - - start := time.Now() - <-dbClosed - actT := time.Since(start) - expT := time.Duration(timeCompactionUninterrupted / 2) // Closing the db in the middle of compaction should less than half the time. - testutil.Assert(t, actT < expT, "closing the db took more than expected. exp: <%v, act: %v", expT, actT) - } -} - -// TestDeleteCompactionBlockAfterFailedReload ensures that a failed reload immediately after a compaction -// deletes the resulting block to avoid creatings blocks with the same time range. -func TestDeleteCompactionBlockAfterFailedReload(t *testing.T) { - - tests := map[string]func(*DB) int{ - "Test Head Compaction": func(db *DB) int { - rangeToTriggerCompaction := db.opts.BlockRanges[0]/2*3 - 1 - defaultLabel := labels.FromStrings("foo", "bar") - - // Add some data to the head that is enough to trigger a compaction. - app := db.Appender() - _, err := app.Add(defaultLabel, 1, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, 2, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, 3+rangeToTriggerCompaction, 0) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - return 0 - }, - "Test Block Compaction": func(db *DB) int { - blocks := []*BlockMeta{ - {MinTime: 0, MaxTime: 100}, - {MinTime: 100, MaxTime: 150}, - {MinTime: 150, MaxTime: 200}, - } - for _, m := range blocks { - createBlock(t, db.Dir(), genSeries(1, 1, m.MinTime, m.MaxTime)) - } - testutil.Ok(t, db.reload()) - testutil.Equals(t, len(blocks), len(db.Blocks()), "unexpected block count after a reload") - - return len(blocks) - }, - } - - for title, bootStrap := range tests { - t.Run(title, func(t *testing.T) { - db, delete := openTestDB(t, &Options{ - BlockRanges: []int64{1, 100}, - }) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - db.DisableCompactions() - - expBlocks := bootStrap(db) - - // Create a block that will trigger the reload to fail. - blockPath := createBlock(t, db.Dir(), genSeries(1, 1, 200, 300)) - lastBlockIndex := path.Join(blockPath, indexFilename) - actBlocks, err := blockDirs(db.Dir()) - testutil.Ok(t, err) - testutil.Equals(t, expBlocks, len(actBlocks)-1) // -1 to exclude the corrupted block. - testutil.Ok(t, os.RemoveAll(lastBlockIndex)) // Corrupt the block by removing the index file. - - testutil.Equals(t, 0.0, prom_testutil.ToFloat64(db.metrics.reloadsFailed), "initial 'failed db reload' count metrics mismatch") - testutil.Equals(t, 0.0, prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran), "initial `compactions` count metric mismatch") - - // Do the compaction and check the metrics. - // Compaction should succeed, but the reload should fail and - // the new block created from the compaction should be deleted. - testutil.NotOk(t, db.compact()) - testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.metrics.reloadsFailed), "'failed db reload' count metrics mismatch") - testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran), "`compaction` count metric mismatch") - actBlocks, err = blockDirs(db.Dir()) - testutil.Ok(t, err) - testutil.Equals(t, expBlocks, len(actBlocks)-1, "block count should be the same as before the compaction") // -1 to exclude the corrupted block. - }) - } -} diff --git a/vendor/github.com/prometheus/tsdb/db.go b/vendor/github.com/prometheus/tsdb/db.go deleted file mode 100644 index 52b21c2f..00000000 --- a/vendor/github.com/prometheus/tsdb/db.go +++ /dev/null @@ -1,1118 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package tsdb implements a time series storage for float64 sample data. -package tsdb - -import ( - "context" - "fmt" - "io" - "io/ioutil" - "math" - "os" - "path/filepath" - "runtime" - "sort" - "strconv" - "strings" - "sync" - "time" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/oklog/ulid" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/tsdb/chunkenc" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/fileutil" - _ "github.com/prometheus/tsdb/goversion" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/wal" - "golang.org/x/sync/errgroup" -) - -// DefaultOptions used for the DB. They are sane for setups using -// millisecond precision timestamps. -var DefaultOptions = &Options{ - WALSegmentSize: wal.DefaultSegmentSize, - RetentionDuration: 15 * 24 * 60 * 60 * 1000, // 15 days in milliseconds - BlockRanges: ExponentialBlockRanges(int64(2*time.Hour)/1e6, 3, 5), - NoLockfile: false, - AllowOverlappingBlocks: false, -} - -// Options of the DB storage. -type Options struct { - // Segments (wal files) max size. - // WALSegmentSize = 0, segment size is default size. - // WALSegmentSize > 0, segment size is WALSegmentSize. - // WALSegmentSize < 0, wal is disabled. - WALSegmentSize int - - // Duration of persisted data to keep. - RetentionDuration uint64 - - // Maximum number of bytes in blocks to be retained. - // 0 or less means disabled. - // NOTE: For proper storage calculations need to consider - // the size of the WAL folder which is not added when calculating - // the current size of the database. - MaxBytes int64 - - // The sizes of the Blocks. - BlockRanges []int64 - - // NoLockfile disables creation and consideration of a lock file. - NoLockfile bool - - // Overlapping blocks are allowed if AllowOverlappingBlocks is true. - // This in-turn enables vertical compaction and vertical query merge. - AllowOverlappingBlocks bool -} - -// Appender allows appending a batch of data. It must be completed with a -// call to Commit or Rollback and must not be reused afterwards. -// -// Operations on the Appender interface are not goroutine-safe. -type Appender interface { - // Add adds a sample pair for the given series. A reference number is - // returned which can be used to add further samples in the same or later - // transactions. - // Returned reference numbers are ephemeral and may be rejected in calls - // to AddFast() at any point. Adding the sample via Add() returns a new - // reference number. - // If the reference is 0 it must not be used for caching. - Add(l labels.Labels, t int64, v float64) (uint64, error) - - // AddFast adds a sample pair for the referenced series. It is generally - // faster than adding a sample by providing its full label set. - AddFast(ref uint64, t int64, v float64) error - - // Commit submits the collected samples and purges the batch. - Commit() error - - // Rollback rolls back all modifications made in the appender so far. - Rollback() error -} - -// DB handles reads and writes of time series falling into -// a hashed partition of a seriedb. -type DB struct { - dir string - lockf fileutil.Releaser - - logger log.Logger - metrics *dbMetrics - opts *Options - chunkPool chunkenc.Pool - compactor Compactor - - // Mutex for that must be held when modifying the general block layout. - mtx sync.RWMutex - blocks []*Block - - head *Head - - compactc chan struct{} - donec chan struct{} - stopc chan struct{} - - // cmtx ensures that compactions and deletions don't run simultaneously. - cmtx sync.Mutex - - // autoCompactMtx ensures that no compaction gets triggered while - // changing the autoCompact var. - autoCompactMtx sync.Mutex - autoCompact bool - - // Cancel a running compaction when a shutdown is initiated. - compactCancel context.CancelFunc -} - -type dbMetrics struct { - loadedBlocks prometheus.GaugeFunc - symbolTableSize prometheus.GaugeFunc - reloads prometheus.Counter - reloadsFailed prometheus.Counter - compactionsTriggered prometheus.Counter - timeRetentionCount prometheus.Counter - compactionsSkipped prometheus.Counter - startTime prometheus.GaugeFunc - tombCleanTimer prometheus.Histogram - blocksBytes prometheus.Gauge - sizeRetentionCount prometheus.Counter -} - -func newDBMetrics(db *DB, r prometheus.Registerer) *dbMetrics { - m := &dbMetrics{} - - m.loadedBlocks = prometheus.NewGaugeFunc(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_blocks_loaded", - Help: "Number of currently loaded data blocks", - }, func() float64 { - db.mtx.RLock() - defer db.mtx.RUnlock() - return float64(len(db.blocks)) - }) - m.symbolTableSize = prometheus.NewGaugeFunc(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_symbol_table_size_bytes", - Help: "Size of symbol table on disk (in bytes)", - }, func() float64 { - db.mtx.RLock() - blocks := db.blocks[:] - db.mtx.RUnlock() - symTblSize := uint64(0) - for _, b := range blocks { - symTblSize += b.GetSymbolTableSize() - } - return float64(symTblSize) - }) - m.reloads = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_reloads_total", - Help: "Number of times the database reloaded block data from disk.", - }) - m.reloadsFailed = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_reloads_failures_total", - Help: "Number of times the database failed to reload block data from disk.", - }) - m.compactionsTriggered = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_compactions_triggered_total", - Help: "Total number of triggered compactions for the partition.", - }) - m.timeRetentionCount = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_time_retentions_total", - Help: "The number of times that blocks were deleted because the maximum time limit was exceeded.", - }) - m.compactionsSkipped = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_compactions_skipped_total", - Help: "Total number of skipped compactions due to disabled auto compaction.", - }) - m.startTime = prometheus.NewGaugeFunc(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_lowest_timestamp", - Help: "Lowest timestamp value stored in the database. The unit is decided by the library consumer.", - }, func() float64 { - db.mtx.RLock() - defer db.mtx.RUnlock() - if len(db.blocks) == 0 { - return float64(db.head.minTime) - } - return float64(db.blocks[0].meta.MinTime) - }) - m.tombCleanTimer = prometheus.NewHistogram(prometheus.HistogramOpts{ - Name: "prometheus_tsdb_tombstone_cleanup_seconds", - Help: "The time taken to recompact blocks to remove tombstones.", - }) - m.blocksBytes = prometheus.NewGauge(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_storage_blocks_bytes", - Help: "The number of bytes that are currently used for local storage by all blocks.", - }) - m.sizeRetentionCount = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_size_retentions_total", - Help: "The number of times that blocks were deleted because the maximum number of bytes was exceeded.", - }) - - if r != nil { - r.MustRegister( - m.loadedBlocks, - m.symbolTableSize, - m.reloads, - m.reloadsFailed, - m.timeRetentionCount, - m.compactionsTriggered, - m.startTime, - m.tombCleanTimer, - m.blocksBytes, - m.sizeRetentionCount, - ) - } - return m -} - -// Open returns a new DB in the given directory. -func Open(dir string, l log.Logger, r prometheus.Registerer, opts *Options) (db *DB, err error) { - if err := os.MkdirAll(dir, 0777); err != nil { - return nil, err - } - if l == nil { - l = log.NewNopLogger() - } - if opts == nil { - opts = DefaultOptions - } - // Fixup bad format written by Prometheus 2.1. - if err := repairBadIndexVersion(l, dir); err != nil { - return nil, err - } - // Migrate old WAL if one exists. - if err := MigrateWAL(l, filepath.Join(dir, "wal")); err != nil { - return nil, errors.Wrap(err, "migrate WAL") - } - - db = &DB{ - dir: dir, - logger: l, - opts: opts, - compactc: make(chan struct{}, 1), - donec: make(chan struct{}), - stopc: make(chan struct{}), - autoCompact: true, - chunkPool: chunkenc.NewPool(), - } - db.metrics = newDBMetrics(db, r) - - if !opts.NoLockfile { - absdir, err := filepath.Abs(dir) - if err != nil { - return nil, err - } - lockf, _, err := fileutil.Flock(filepath.Join(absdir, "lock")) - if err != nil { - return nil, errors.Wrap(err, "lock DB directory") - } - db.lockf = lockf - } - - ctx, cancel := context.WithCancel(context.Background()) - db.compactor, err = NewLeveledCompactor(ctx, r, l, opts.BlockRanges, db.chunkPool) - if err != nil { - cancel() - return nil, errors.Wrap(err, "create leveled compactor") - } - db.compactCancel = cancel - - var wlog *wal.WAL - segmentSize := wal.DefaultSegmentSize - // Wal is enabled. - if opts.WALSegmentSize >= 0 { - // Wal is set to a custom size. - if opts.WALSegmentSize > 0 { - segmentSize = opts.WALSegmentSize - } - wlog, err = wal.NewSize(l, r, filepath.Join(dir, "wal"), segmentSize) - if err != nil { - return nil, err - } - } - - db.head, err = NewHead(r, l, wlog, opts.BlockRanges[0]) - if err != nil { - return nil, err - } - - if err := db.reload(); err != nil { - return nil, err - } - // Set the min valid time for the ingested samples - // to be no lower than the maxt of the last block. - blocks := db.Blocks() - minValidTime := int64(math.MinInt64) - if len(blocks) > 0 { - minValidTime = blocks[len(blocks)-1].Meta().MaxTime - } - - if err := db.head.Init(minValidTime); err != nil { - return nil, errors.Wrap(err, "read WAL") - } - - go db.run() - - return db, nil -} - -// Dir returns the directory of the database. -func (db *DB) Dir() string { - return db.dir -} - -func (db *DB) run() { - defer close(db.donec) - - backoff := time.Duration(0) - - for { - select { - case <-db.stopc: - return - case <-time.After(backoff): - } - - select { - case <-time.After(1 * time.Minute): - select { - case db.compactc <- struct{}{}: - default: - } - case <-db.compactc: - db.metrics.compactionsTriggered.Inc() - - db.autoCompactMtx.Lock() - if db.autoCompact { - if err := db.compact(); err != nil { - level.Error(db.logger).Log("msg", "compaction failed", "err", err) - backoff = exponential(backoff, 1*time.Second, 1*time.Minute) - } else { - backoff = 0 - } - } else { - db.metrics.compactionsSkipped.Inc() - } - db.autoCompactMtx.Unlock() - case <-db.stopc: - return - } - } -} - -// Appender opens a new appender against the database. -func (db *DB) Appender() Appender { - return dbAppender{db: db, Appender: db.head.Appender()} -} - -// dbAppender wraps the DB's head appender and triggers compactions on commit -// if necessary. -type dbAppender struct { - Appender - db *DB -} - -func (a dbAppender) Commit() error { - err := a.Appender.Commit() - - // We could just run this check every few minutes practically. But for benchmarks - // and high frequency use cases this is the safer way. - if a.db.head.compactable() { - select { - case a.db.compactc <- struct{}{}: - default: - } - } - return err -} - -// Compact data if possible. After successful compaction blocks are reloaded -// which will also trigger blocks to be deleted that fall out of the retention -// window. -// If no blocks are compacted, the retention window state doesn't change. Thus, -// this is sufficient to reliably delete old data. -// Old blocks are only deleted on reload based on the new block's parent information. -// See DB.reload documentation for further information. -func (db *DB) compact() (err error) { - db.cmtx.Lock() - defer db.cmtx.Unlock() - // Check whether we have pending head blocks that are ready to be persisted. - // They have the highest priority. - for { - select { - case <-db.stopc: - return nil - default: - } - if !db.head.compactable() { - break - } - mint := db.head.MinTime() - maxt := rangeForTimestamp(mint, db.head.chunkRange) - - // Wrap head into a range that bounds all reads to it. - head := &rangeHead{ - head: db.head, - mint: mint, - // We remove 1 millisecond from maxt because block - // intervals are half-open: [b.MinTime, b.MaxTime). But - // chunk intervals are closed: [c.MinTime, c.MaxTime]; - // so in order to make sure that overlaps are evaluated - // consistently, we explicitly remove the last value - // from the block interval here. - maxt: maxt - 1, - } - uid, err := db.compactor.Write(db.dir, head, mint, maxt, nil) - if err != nil { - return errors.Wrap(err, "persist head block") - } - - runtime.GC() - - if err := db.reload(); err != nil { - if err := os.RemoveAll(filepath.Join(db.dir, uid.String())); err != nil { - return errors.Wrapf(err, "delete persisted head block after failed db reload:%s", uid) - } - return errors.Wrap(err, "reload blocks") - } - if (uid == ulid.ULID{}) { - // Compaction resulted in an empty block. - // Head truncating during db.reload() depends on the persisted blocks and - // in this case no new block will be persisted so manually truncate the head. - if err = db.head.Truncate(maxt); err != nil { - return errors.Wrap(err, "head truncate failed (in compact)") - } - } - runtime.GC() - } - - // Check for compactions of multiple blocks. - for { - plan, err := db.compactor.Plan(db.dir) - if err != nil { - return errors.Wrap(err, "plan compaction") - } - if len(plan) == 0 { - break - } - - select { - case <-db.stopc: - return nil - default: - } - - uid, err := db.compactor.Compact(db.dir, plan, db.blocks) - if err != nil { - return errors.Wrapf(err, "compact %s", plan) - } - runtime.GC() - - if err := db.reload(); err != nil { - if err := os.RemoveAll(filepath.Join(db.dir, uid.String())); err != nil { - return errors.Wrapf(err, "delete compacted block after failed db reload:%s", uid) - } - return errors.Wrap(err, "reload blocks") - } - runtime.GC() - } - - return nil -} - -func (db *DB) getBlock(id ulid.ULID) (*Block, bool) { - for _, b := range db.blocks { - if b.Meta().ULID == id { - return b, true - } - } - return nil, false -} - -// reload blocks and trigger head truncation if new blocks appeared. -// Blocks that are obsolete due to replacement or retention will be deleted. -func (db *DB) reload() (err error) { - defer func() { - if err != nil { - db.metrics.reloadsFailed.Inc() - } - db.metrics.reloads.Inc() - }() - - loadable, corrupted, err := db.openBlocks() - if err != nil { - return err - } - - deletable := db.deletableBlocks(loadable) - - // Corrupted blocks that have been replaced by parents can be safely ignored and deleted. - // This makes it resilient against the process crashing towards the end of a compaction. - // Creation of a new block and deletion of its parents cannot happen atomically. - // By creating blocks with their parents, we can pick up the deletion where it left off during a crash. - for _, block := range loadable { - for _, b := range block.Meta().Compaction.Parents { - delete(corrupted, b.ULID) - deletable[b.ULID] = nil - } - } - if len(corrupted) > 0 { - // Close all new blocks to release the lock for windows. - for _, block := range loadable { - if _, loaded := db.getBlock(block.Meta().ULID); !loaded { - block.Close() - } - } - return fmt.Errorf("unexpected corrupted block:%v", corrupted) - } - - // All deletable blocks should not be loaded. - var ( - bb []*Block - blocksSize int64 - ) - for _, block := range loadable { - if _, ok := deletable[block.Meta().ULID]; ok { - deletable[block.Meta().ULID] = block - continue - } - bb = append(bb, block) - blocksSize += block.Size() - - } - loadable = bb - db.metrics.blocksBytes.Set(float64(blocksSize)) - - sort.Slice(loadable, func(i, j int) bool { - return loadable[i].Meta().MinTime < loadable[j].Meta().MinTime - }) - if !db.opts.AllowOverlappingBlocks { - if err := validateBlockSequence(loadable); err != nil { - return errors.Wrap(err, "invalid block sequence") - } - } - - // Swap new blocks first for subsequently created readers to be seen. - db.mtx.Lock() - oldBlocks := db.blocks - db.blocks = loadable - db.mtx.Unlock() - - blockMetas := make([]BlockMeta, 0, len(loadable)) - for _, b := range loadable { - blockMetas = append(blockMetas, b.Meta()) - } - if overlaps := OverlappingBlocks(blockMetas); len(overlaps) > 0 { - level.Warn(db.logger).Log("msg", "overlapping blocks found during reload", "detail", overlaps.String()) - } - - for _, b := range oldBlocks { - if _, ok := deletable[b.Meta().ULID]; ok { - deletable[b.Meta().ULID] = b - } - } - - if err := db.deleteBlocks(deletable); err != nil { - return err - } - - // Garbage collect data in the head if the most recent persisted block - // covers data of its current time range. - if len(loadable) == 0 { - return nil - } - - maxt := loadable[len(loadable)-1].Meta().MaxTime - - return errors.Wrap(db.head.Truncate(maxt), "head truncate failed") -} - -func (db *DB) openBlocks() (blocks []*Block, corrupted map[ulid.ULID]error, err error) { - dirs, err := blockDirs(db.dir) - if err != nil { - return nil, nil, errors.Wrap(err, "find blocks") - } - - corrupted = make(map[ulid.ULID]error) - for _, dir := range dirs { - meta, err := readMetaFile(dir) - if err != nil { - level.Error(db.logger).Log("msg", "not a block dir", "dir", dir) - continue - } - - // See if we already have the block in memory or open it otherwise. - block, ok := db.getBlock(meta.ULID) - if !ok { - block, err = OpenBlock(db.logger, dir, db.chunkPool) - if err != nil { - corrupted[meta.ULID] = err - continue - } - } - blocks = append(blocks, block) - } - return blocks, corrupted, nil -} - -// deletableBlocks returns all blocks past retention policy. -func (db *DB) deletableBlocks(blocks []*Block) map[ulid.ULID]*Block { - deletable := make(map[ulid.ULID]*Block) - - // Sort the blocks by time - newest to oldest (largest to smallest timestamp). - // This ensures that the retentions will remove the oldest blocks. - sort.Slice(blocks, func(i, j int) bool { - return blocks[i].Meta().MaxTime > blocks[j].Meta().MaxTime - }) - - for _, block := range blocks { - if block.Meta().Compaction.Deletable { - deletable[block.Meta().ULID] = block - } - } - - for ulid, block := range db.beyondTimeRetention(blocks) { - deletable[ulid] = block - } - - for ulid, block := range db.beyondSizeRetention(blocks) { - deletable[ulid] = block - } - - return deletable -} - -func (db *DB) beyondTimeRetention(blocks []*Block) (deleteable map[ulid.ULID]*Block) { - // Time retention is disabled or no blocks to work with. - if len(db.blocks) == 0 || db.opts.RetentionDuration == 0 { - return - } - - deleteable = make(map[ulid.ULID]*Block) - for i, block := range blocks { - // The difference between the first block and this block is larger than - // the retention period so any blocks after that are added as deleteable. - if i > 0 && blocks[0].Meta().MaxTime-block.Meta().MaxTime > int64(db.opts.RetentionDuration) { - for _, b := range blocks[i:] { - deleteable[b.meta.ULID] = b - } - db.metrics.timeRetentionCount.Inc() - break - } - } - return deleteable -} - -func (db *DB) beyondSizeRetention(blocks []*Block) (deleteable map[ulid.ULID]*Block) { - // Size retention is disabled or no blocks to work with. - if len(db.blocks) == 0 || db.opts.MaxBytes <= 0 { - return - } - - deleteable = make(map[ulid.ULID]*Block) - blocksSize := int64(0) - for i, block := range blocks { - blocksSize += block.Size() - if blocksSize > db.opts.MaxBytes { - // Add this and all following blocks for deletion. - for _, b := range blocks[i:] { - deleteable[b.meta.ULID] = b - } - db.metrics.sizeRetentionCount.Inc() - break - } - } - return deleteable -} - -// deleteBlocks closes and deletes blocks from the disk. -// When the map contains a non nil block object it means it is loaded in memory -// so needs to be closed first as it might need to wait for pending readers to complete. -func (db *DB) deleteBlocks(blocks map[ulid.ULID]*Block) error { - for ulid, block := range blocks { - if block != nil { - if err := block.Close(); err != nil { - level.Warn(db.logger).Log("msg", "closing block failed", "err", err) - } - } - if err := os.RemoveAll(filepath.Join(db.dir, ulid.String())); err != nil { - return errors.Wrapf(err, "delete obsolete block %s", ulid) - } - } - return nil -} - -// validateBlockSequence returns error if given block meta files indicate that some blocks overlaps within sequence. -func validateBlockSequence(bs []*Block) error { - if len(bs) <= 1 { - return nil - } - - var metas []BlockMeta - for _, b := range bs { - metas = append(metas, b.meta) - } - - overlaps := OverlappingBlocks(metas) - if len(overlaps) > 0 { - return errors.Errorf("block time ranges overlap: %s", overlaps) - } - - return nil -} - -// TimeRange specifies minTime and maxTime range. -type TimeRange struct { - Min, Max int64 -} - -// Overlaps contains overlapping blocks aggregated by overlapping range. -type Overlaps map[TimeRange][]BlockMeta - -// String returns human readable string form of overlapped blocks. -func (o Overlaps) String() string { - var res []string - for r, overlaps := range o { - var groups []string - for _, m := range overlaps { - groups = append(groups, fmt.Sprintf( - "", - m.ULID.String(), - m.MinTime, - m.MaxTime, - (time.Duration((m.MaxTime-m.MinTime)/1000)*time.Second).String(), - )) - } - res = append(res, fmt.Sprintf( - "[mint: %d, maxt: %d, range: %s, blocks: %d]: %s", - r.Min, r.Max, - (time.Duration((r.Max-r.Min)/1000)*time.Second).String(), - len(overlaps), - strings.Join(groups, ", ")), - ) - } - return strings.Join(res, "\n") -} - -// OverlappingBlocks returns all overlapping blocks from given meta files. -func OverlappingBlocks(bm []BlockMeta) Overlaps { - if len(bm) <= 1 { - return nil - } - var ( - overlaps [][]BlockMeta - - // pending contains not ended blocks in regards to "current" timestamp. - pending = []BlockMeta{bm[0]} - // continuousPending helps to aggregate same overlaps to single group. - continuousPending = true - ) - - // We have here blocks sorted by minTime. We iterate over each block and treat its minTime as our "current" timestamp. - // We check if any of the pending block finished (blocks that we have seen before, but their maxTime was still ahead current - // timestamp). If not, it means they overlap with our current block. In the same time current block is assumed pending. - for _, b := range bm[1:] { - var newPending []BlockMeta - - for _, p := range pending { - // "b.MinTime" is our current time. - if b.MinTime >= p.MaxTime { - continuousPending = false - continue - } - - // "p" overlaps with "b" and "p" is still pending. - newPending = append(newPending, p) - } - - // Our block "b" is now pending. - pending = append(newPending, b) - if len(newPending) == 0 { - // No overlaps. - continue - } - - if continuousPending && len(overlaps) > 0 { - overlaps[len(overlaps)-1] = append(overlaps[len(overlaps)-1], b) - continue - } - overlaps = append(overlaps, append(newPending, b)) - // Start new pendings. - continuousPending = true - } - - // Fetch the critical overlapped time range foreach overlap groups. - overlapGroups := Overlaps{} - for _, overlap := range overlaps { - - minRange := TimeRange{Min: 0, Max: math.MaxInt64} - for _, b := range overlap { - if minRange.Max > b.MaxTime { - minRange.Max = b.MaxTime - } - - if minRange.Min < b.MinTime { - minRange.Min = b.MinTime - } - } - overlapGroups[minRange] = overlap - } - - return overlapGroups -} - -func (db *DB) String() string { - return "HEAD" -} - -// Blocks returns the databases persisted blocks. -func (db *DB) Blocks() []*Block { - db.mtx.RLock() - defer db.mtx.RUnlock() - - return db.blocks -} - -// Head returns the databases's head. -func (db *DB) Head() *Head { - return db.head -} - -// Close the partition. -func (db *DB) Close() error { - close(db.stopc) - db.compactCancel() - <-db.donec - - db.mtx.Lock() - defer db.mtx.Unlock() - - var g errgroup.Group - - // blocks also contains all head blocks. - for _, pb := range db.blocks { - g.Go(pb.Close) - } - - var merr tsdb_errors.MultiError - - merr.Add(g.Wait()) - - if db.lockf != nil { - merr.Add(db.lockf.Release()) - } - merr.Add(db.head.Close()) - return merr.Err() -} - -// DisableCompactions disables auto compactions. -func (db *DB) DisableCompactions() { - db.autoCompactMtx.Lock() - defer db.autoCompactMtx.Unlock() - - db.autoCompact = false - level.Info(db.logger).Log("msg", "compactions disabled") -} - -// EnableCompactions enables auto compactions. -func (db *DB) EnableCompactions() { - db.autoCompactMtx.Lock() - defer db.autoCompactMtx.Unlock() - - db.autoCompact = true - level.Info(db.logger).Log("msg", "compactions enabled") -} - -// Snapshot writes the current data to the directory. If withHead is set to true it -// will create a new block containing all data that's currently in the memory buffer/WAL. -func (db *DB) Snapshot(dir string, withHead bool) error { - if dir == db.dir { - return errors.Errorf("cannot snapshot into base directory") - } - if _, err := ulid.ParseStrict(dir); err == nil { - return errors.Errorf("dir must not be a valid ULID") - } - - db.cmtx.Lock() - defer db.cmtx.Unlock() - - db.mtx.RLock() - defer db.mtx.RUnlock() - - for _, b := range db.blocks { - level.Info(db.logger).Log("msg", "snapshotting block", "block", b) - - if err := b.Snapshot(dir); err != nil { - return errors.Wrapf(err, "error snapshotting block: %s", b.Dir()) - } - } - if !withHead { - return nil - } - _, err := db.compactor.Write(dir, db.head, db.head.MinTime(), db.head.MaxTime(), nil) - return errors.Wrap(err, "snapshot head block") -} - -// Querier returns a new querier over the data partition for the given time range. -// A goroutine must not handle more than one open Querier. -func (db *DB) Querier(mint, maxt int64) (Querier, error) { - var blocks []BlockReader - var blockMetas []BlockMeta - - db.mtx.RLock() - defer db.mtx.RUnlock() - - for _, b := range db.blocks { - if b.OverlapsClosedInterval(mint, maxt) { - blocks = append(blocks, b) - blockMetas = append(blockMetas, b.Meta()) - } - } - if maxt >= db.head.MinTime() { - blocks = append(blocks, &rangeHead{ - head: db.head, - mint: mint, - maxt: maxt, - }) - } - - blockQueriers := make([]Querier, 0, len(blocks)) - for _, b := range blocks { - q, err := NewBlockQuerier(b, mint, maxt) - if err == nil { - blockQueriers = append(blockQueriers, q) - continue - } - // If we fail, all previously opened queriers must be closed. - for _, q := range blockQueriers { - q.Close() - } - return nil, errors.Wrapf(err, "open querier for block %s", b) - } - - if len(OverlappingBlocks(blockMetas)) > 0 { - return &verticalQuerier{ - querier: querier{ - blocks: blockQueriers, - }, - }, nil - } - - return &querier{ - blocks: blockQueriers, - }, nil -} - -func rangeForTimestamp(t int64, width int64) (maxt int64) { - return (t/width)*width + width -} - -// Delete implements deletion of metrics. It only has atomicity guarantees on a per-block basis. -func (db *DB) Delete(mint, maxt int64, ms ...labels.Matcher) error { - db.cmtx.Lock() - defer db.cmtx.Unlock() - - var g errgroup.Group - - db.mtx.RLock() - defer db.mtx.RUnlock() - - for _, b := range db.blocks { - if b.OverlapsClosedInterval(mint, maxt) { - g.Go(func(b *Block) func() error { - return func() error { return b.Delete(mint, maxt, ms...) } - }(b)) - } - } - g.Go(func() error { - return db.head.Delete(mint, maxt, ms...) - }) - return g.Wait() -} - -// CleanTombstones re-writes any blocks with tombstones. -func (db *DB) CleanTombstones() (err error) { - db.cmtx.Lock() - defer db.cmtx.Unlock() - - start := time.Now() - defer db.metrics.tombCleanTimer.Observe(time.Since(start).Seconds()) - - newUIDs := []ulid.ULID{} - defer func() { - // If any error is caused, we need to delete all the new directory created. - if err != nil { - for _, uid := range newUIDs { - dir := filepath.Join(db.Dir(), uid.String()) - if err := os.RemoveAll(dir); err != nil { - level.Error(db.logger).Log("msg", "failed to delete block after failed `CleanTombstones`", "dir", dir, "err", err) - } - } - } - }() - - db.mtx.RLock() - blocks := db.blocks[:] - db.mtx.RUnlock() - - for _, b := range blocks { - if uid, er := b.CleanTombstones(db.Dir(), db.compactor); er != nil { - err = errors.Wrapf(er, "clean tombstones: %s", b.Dir()) - return err - } else if uid != nil { // New block was created. - newUIDs = append(newUIDs, *uid) - } - } - return errors.Wrap(db.reload(), "reload blocks") -} - -func isBlockDir(fi os.FileInfo) bool { - if !fi.IsDir() { - return false - } - _, err := ulid.ParseStrict(fi.Name()) - return err == nil -} - -func blockDirs(dir string) ([]string, error) { - files, err := ioutil.ReadDir(dir) - if err != nil { - return nil, err - } - var dirs []string - - for _, fi := range files { - if isBlockDir(fi) { - dirs = append(dirs, filepath.Join(dir, fi.Name())) - } - } - return dirs, nil -} - -func sequenceFiles(dir string) ([]string, error) { - files, err := ioutil.ReadDir(dir) - if err != nil { - return nil, err - } - var res []string - - for _, fi := range files { - if _, err := strconv.ParseUint(fi.Name(), 10, 64); err != nil { - continue - } - res = append(res, filepath.Join(dir, fi.Name())) - } - return res, nil -} - -func nextSequenceFile(dir string) (string, int, error) { - names, err := fileutil.ReadDir(dir) - if err != nil { - return "", 0, err - } - - i := uint64(0) - for _, n := range names { - j, err := strconv.ParseUint(n, 10, 64) - if err != nil { - continue - } - i = j - } - return filepath.Join(dir, fmt.Sprintf("%0.6d", i+1)), int(i + 1), nil -} - -func closeAll(cs []io.Closer) error { - var merr tsdb_errors.MultiError - - for _, c := range cs { - merr.Add(c.Close()) - } - return merr.Err() -} - -func exponential(d, min, max time.Duration) time.Duration { - d *= 2 - if d < min { - d = min - } - if d > max { - d = max - } - return d -} diff --git a/vendor/github.com/prometheus/tsdb/db_test.go b/vendor/github.com/prometheus/tsdb/db_test.go deleted file mode 100644 index 54197df8..00000000 --- a/vendor/github.com/prometheus/tsdb/db_test.go +++ /dev/null @@ -1,2170 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "fmt" - "io/ioutil" - "math" - "math/rand" - "os" - "path" - "path/filepath" - "sort" - "testing" - "time" - - "github.com/go-kit/kit/log" - "github.com/oklog/ulid" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - prom_testutil "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" - "github.com/prometheus/tsdb/tsdbutil" - "github.com/prometheus/tsdb/wal" -) - -func openTestDB(t testing.TB, opts *Options) (db *DB, close func()) { - tmpdir, err := ioutil.TempDir("", "test") - testutil.Ok(t, err) - - db, err = Open(tmpdir, nil, nil, opts) - testutil.Ok(t, err) - - // Do not close the test database by default as it will deadlock on test failures. - return db, func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - } -} - -// query runs a matcher query against the querier and fully expands its data. -func query(t testing.TB, q Querier, matchers ...labels.Matcher) map[string][]tsdbutil.Sample { - ss, err := q.Select(matchers...) - defer func() { - testutil.Ok(t, q.Close()) - }() - testutil.Ok(t, err) - - result := map[string][]tsdbutil.Sample{} - - for ss.Next() { - series := ss.At() - - samples := []tsdbutil.Sample{} - it := series.Iterator() - for it.Next() { - t, v := it.At() - samples = append(samples, sample{t: t, v: v}) - } - testutil.Ok(t, it.Err()) - - name := series.Labels().String() - result[name] = samples - } - testutil.Ok(t, ss.Err()) - - return result -} - -// Ensure that blocks are held in memory in their time order -// and not in ULID order as they are read from the directory. -func TestDB_reloadOrder(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - metas := []BlockMeta{ - {MinTime: 90, MaxTime: 100}, - {MinTime: 70, MaxTime: 80}, - {MinTime: 100, MaxTime: 110}, - } - for _, m := range metas { - createBlock(t, db.Dir(), genSeries(1, 1, m.MinTime, m.MaxTime)) - } - - testutil.Ok(t, db.reload()) - blocks := db.Blocks() - for _, b := range blocks { - b.meta.Stats.NumBytes = 0 - } - testutil.Equals(t, 3, len(blocks)) - testutil.Equals(t, metas[1].MinTime, blocks[0].Meta().MinTime) - testutil.Equals(t, metas[1].MaxTime, blocks[0].Meta().MaxTime) - testutil.Equals(t, metas[0].MinTime, blocks[1].Meta().MinTime) - testutil.Equals(t, metas[0].MaxTime, blocks[1].Meta().MaxTime) - testutil.Equals(t, metas[2].MinTime, blocks[2].Meta().MinTime) - testutil.Equals(t, metas[2].MaxTime, blocks[2].Meta().MaxTime) -} - -func TestDataAvailableOnlyAfterCommit(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - - _, err := app.Add(labels.FromStrings("foo", "bar"), 0, 0) - testutil.Ok(t, err) - - querier, err := db.Querier(0, 1) - testutil.Ok(t, err) - seriesSet := query(t, querier, labels.NewEqualMatcher("foo", "bar")) - testutil.Equals(t, map[string][]tsdbutil.Sample{}, seriesSet) - - err = app.Commit() - testutil.Ok(t, err) - - querier, err = db.Querier(0, 1) - testutil.Ok(t, err) - defer querier.Close() - - seriesSet = query(t, querier, labels.NewEqualMatcher("foo", "bar")) - - testutil.Equals(t, map[string][]tsdbutil.Sample{`{foo="bar"}`: {sample{t: 0, v: 0}}}, seriesSet) -} - -func TestDataNotAvailableAfterRollback(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - _, err := app.Add(labels.FromStrings("foo", "bar"), 0, 0) - testutil.Ok(t, err) - - err = app.Rollback() - testutil.Ok(t, err) - - querier, err := db.Querier(0, 1) - testutil.Ok(t, err) - defer querier.Close() - - seriesSet := query(t, querier, labels.NewEqualMatcher("foo", "bar")) - - testutil.Equals(t, map[string][]tsdbutil.Sample{}, seriesSet) -} - -func TestDBAppenderAddRef(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app1 := db.Appender() - - ref1, err := app1.Add(labels.FromStrings("a", "b"), 123, 0) - testutil.Ok(t, err) - - // Reference should already work before commit. - err = app1.AddFast(ref1, 124, 1) - testutil.Ok(t, err) - - err = app1.Commit() - testutil.Ok(t, err) - - app2 := db.Appender() - - // first ref should already work in next transaction. - err = app2.AddFast(ref1, 125, 0) - testutil.Ok(t, err) - - ref2, err := app2.Add(labels.FromStrings("a", "b"), 133, 1) - testutil.Ok(t, err) - - testutil.Assert(t, ref1 == ref2, "") - - // Reference must be valid to add another sample. - err = app2.AddFast(ref2, 143, 2) - testutil.Ok(t, err) - - err = app2.AddFast(9999999, 1, 1) - testutil.Equals(t, ErrNotFound, errors.Cause(err)) - - testutil.Ok(t, app2.Commit()) - - q, err := db.Querier(0, 200) - testutil.Ok(t, err) - - res := query(t, q, labels.NewEqualMatcher("a", "b")) - - testutil.Equals(t, map[string][]tsdbutil.Sample{ - labels.FromStrings("a", "b").String(): { - sample{t: 123, v: 0}, - sample{t: 124, v: 1}, - sample{t: 125, v: 0}, - sample{t: 133, v: 1}, - sample{t: 143, v: 2}, - }, - }, res) -} - -func TestDeleteSimple(t *testing.T) { - numSamples := int64(10) - - cases := []struct { - intervals Intervals - remaint []int64 - }{ - { - intervals: Intervals{{0, 3}}, - remaint: []int64{4, 5, 6, 7, 8, 9}, - }, - { - intervals: Intervals{{1, 3}}, - remaint: []int64{0, 4, 5, 6, 7, 8, 9}, - }, - { - intervals: Intervals{{1, 3}, {4, 7}}, - remaint: []int64{0, 8, 9}, - }, - { - intervals: Intervals{{1, 3}, {4, 700}}, - remaint: []int64{0}, - }, - { // This case is to ensure that labels and symbols are deleted. - intervals: Intervals{{0, 9}}, - remaint: []int64{}, - }, - } - -Outer: - for _, c := range cases { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - - smpls := make([]float64, numSamples) - for i := int64(0); i < numSamples; i++ { - smpls[i] = rand.Float64() - app.Add(labels.Labels{{"a", "b"}}, i, smpls[i]) - } - - testutil.Ok(t, app.Commit()) - - // TODO(gouthamve): Reset the tombstones somehow. - // Delete the ranges. - for _, r := range c.intervals { - testutil.Ok(t, db.Delete(r.Mint, r.Maxt, labels.NewEqualMatcher("a", "b"))) - } - - // Compare the result. - q, err := db.Querier(0, numSamples) - testutil.Ok(t, err) - - res, err := q.Select(labels.NewEqualMatcher("a", "b")) - testutil.Ok(t, err) - - expSamples := make([]tsdbutil.Sample, 0, len(c.remaint)) - for _, ts := range c.remaint { - expSamples = append(expSamples, sample{ts, smpls[ts]}) - } - - expss := newMockSeriesSet([]Series{ - newSeries(map[string]string{"a": "b"}, expSamples), - }) - - lns, err := q.LabelNames() - testutil.Ok(t, err) - lvs, err := q.LabelValues("a") - testutil.Ok(t, err) - if len(expSamples) == 0 { - testutil.Equals(t, 0, len(lns)) - testutil.Equals(t, 0, len(lvs)) - testutil.Assert(t, res.Next() == false, "") - continue - } else { - testutil.Equals(t, 1, len(lns)) - testutil.Equals(t, 1, len(lvs)) - testutil.Equals(t, "a", lns[0]) - testutil.Equals(t, "b", lvs[0]) - } - - for { - eok, rok := expss.Next(), res.Next() - testutil.Equals(t, eok, rok) - - if !eok { - continue Outer - } - sexp := expss.At() - sres := res.At() - - testutil.Equals(t, sexp.Labels(), sres.Labels()) - - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } -} - -func TestAmendDatapointCausesError(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - _, err := app.Add(labels.Labels{}, 0, 0) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - app = db.Appender() - _, err = app.Add(labels.Labels{}, 0, 1) - testutil.Equals(t, ErrAmendSample, err) - testutil.Ok(t, app.Rollback()) -} - -func TestDuplicateNaNDatapointNoAmendError(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - _, err := app.Add(labels.Labels{}, 0, math.NaN()) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - app = db.Appender() - _, err = app.Add(labels.Labels{}, 0, math.NaN()) - testutil.Ok(t, err) -} - -func TestNonDuplicateNaNDatapointsCausesAmendError(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - app := db.Appender() - _, err := app.Add(labels.Labels{}, 0, math.Float64frombits(0x7ff0000000000001)) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - app = db.Appender() - _, err = app.Add(labels.Labels{}, 0, math.Float64frombits(0x7ff0000000000002)) - testutil.Equals(t, ErrAmendSample, err) -} - -func TestSkippingInvalidValuesInSameTxn(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - // Append AmendedValue. - app := db.Appender() - _, err := app.Add(labels.Labels{{"a", "b"}}, 0, 1) - testutil.Ok(t, err) - _, err = app.Add(labels.Labels{{"a", "b"}}, 0, 2) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - // Make sure the right value is stored. - q, err := db.Querier(0, 10) - testutil.Ok(t, err) - - ssMap := query(t, q, labels.NewEqualMatcher("a", "b")) - - testutil.Equals(t, map[string][]tsdbutil.Sample{ - labels.New(labels.Label{"a", "b"}).String(): {sample{0, 1}}, - }, ssMap) - - // Append Out of Order Value. - app = db.Appender() - _, err = app.Add(labels.Labels{{"a", "b"}}, 10, 3) - testutil.Ok(t, err) - _, err = app.Add(labels.Labels{{"a", "b"}}, 7, 5) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - q, err = db.Querier(0, 10) - testutil.Ok(t, err) - - ssMap = query(t, q, labels.NewEqualMatcher("a", "b")) - - testutil.Equals(t, map[string][]tsdbutil.Sample{ - labels.New(labels.Label{"a", "b"}).String(): {sample{0, 1}, sample{10, 3}}, - }, ssMap) -} - -func TestDB_Snapshot(t *testing.T) { - db, delete := openTestDB(t, nil) - defer delete() - - // append data - app := db.Appender() - mint := int64(1414141414000) - for i := 0; i < 1000; i++ { - _, err := app.Add(labels.FromStrings("foo", "bar"), mint+int64(i), 1.0) - testutil.Ok(t, err) - } - testutil.Ok(t, app.Commit()) - testutil.Ok(t, app.Rollback()) - - // create snapshot - snap, err := ioutil.TempDir("", "snap") - testutil.Ok(t, err) - - defer func() { - testutil.Ok(t, os.RemoveAll(snap)) - }() - testutil.Ok(t, db.Snapshot(snap, true)) - testutil.Ok(t, db.Close()) - - // reopen DB from snapshot - db, err = Open(snap, nil, nil, nil) - testutil.Ok(t, err) - defer func() { testutil.Ok(t, db.Close()) }() - - querier, err := db.Querier(mint, mint+1000) - testutil.Ok(t, err) - defer func() { testutil.Ok(t, querier.Close()) }() - - // sum values - seriesSet, err := querier.Select(labels.NewEqualMatcher("foo", "bar")) - testutil.Ok(t, err) - - sum := 0.0 - for seriesSet.Next() { - series := seriesSet.At().Iterator() - for series.Next() { - _, v := series.At() - sum += v - } - testutil.Ok(t, series.Err()) - } - testutil.Ok(t, seriesSet.Err()) - testutil.Equals(t, 1000.0, sum) -} - -func TestDB_SnapshotWithDelete(t *testing.T) { - numSamples := int64(10) - - db, delete := openTestDB(t, nil) - defer delete() - - app := db.Appender() - - smpls := make([]float64, numSamples) - for i := int64(0); i < numSamples; i++ { - smpls[i] = rand.Float64() - app.Add(labels.Labels{{"a", "b"}}, i, smpls[i]) - } - - testutil.Ok(t, app.Commit()) - cases := []struct { - intervals Intervals - remaint []int64 - }{ - { - intervals: Intervals{{1, 3}, {4, 7}}, - remaint: []int64{0, 8, 9}, - }, - } - -Outer: - for _, c := range cases { - // TODO(gouthamve): Reset the tombstones somehow. - // Delete the ranges. - for _, r := range c.intervals { - testutil.Ok(t, db.Delete(r.Mint, r.Maxt, labels.NewEqualMatcher("a", "b"))) - } - - // create snapshot - snap, err := ioutil.TempDir("", "snap") - testutil.Ok(t, err) - - defer func() { - testutil.Ok(t, os.RemoveAll(snap)) - }() - testutil.Ok(t, db.Snapshot(snap, true)) - testutil.Ok(t, db.Close()) - - // reopen DB from snapshot - db, err = Open(snap, nil, nil, nil) - testutil.Ok(t, err) - defer func() { testutil.Ok(t, db.Close()) }() - - // Compare the result. - q, err := db.Querier(0, numSamples) - testutil.Ok(t, err) - defer func() { testutil.Ok(t, q.Close()) }() - - res, err := q.Select(labels.NewEqualMatcher("a", "b")) - testutil.Ok(t, err) - - expSamples := make([]tsdbutil.Sample, 0, len(c.remaint)) - for _, ts := range c.remaint { - expSamples = append(expSamples, sample{ts, smpls[ts]}) - } - - expss := newMockSeriesSet([]Series{ - newSeries(map[string]string{"a": "b"}, expSamples), - }) - - if len(expSamples) == 0 { - testutil.Assert(t, res.Next() == false, "") - continue - } - - for { - eok, rok := expss.Next(), res.Next() - testutil.Equals(t, eok, rok) - - if !eok { - continue Outer - } - sexp := expss.At() - sres := res.At() - - testutil.Equals(t, sexp.Labels(), sres.Labels()) - - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } -} - -func TestDB_e2e(t *testing.T) { - const ( - numDatapoints = 1000 - numRanges = 1000 - timeInterval = int64(3) - ) - // Create 8 series with 1000 data-points of different ranges and run queries. - lbls := [][]labels.Label{ - { - {"a", "b"}, - {"instance", "localhost:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "b"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "b"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prom-k8s"}, - }, - { - {"a", "b"}, - {"instance", "localhost:9090"}, - {"job", "prom-k8s"}, - }, - { - {"a", "c"}, - {"instance", "localhost:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "c"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "c"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prom-k8s"}, - }, - { - {"a", "c"}, - {"instance", "localhost:9090"}, - {"job", "prom-k8s"}, - }, - } - - seriesMap := map[string][]tsdbutil.Sample{} - for _, l := range lbls { - seriesMap[labels.New(l...).String()] = []tsdbutil.Sample{} - } - - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - - for _, l := range lbls { - lset := labels.New(l...) - series := []tsdbutil.Sample{} - - ts := rand.Int63n(300) - for i := 0; i < numDatapoints; i++ { - v := rand.Float64() - - series = append(series, sample{ts, v}) - - _, err := app.Add(lset, ts, v) - testutil.Ok(t, err) - - ts += rand.Int63n(timeInterval) + 1 - } - - seriesMap[lset.String()] = series - } - - testutil.Ok(t, app.Commit()) - - // Query each selector on 1000 random time-ranges. - queries := []struct { - ms []labels.Matcher - }{ - { - ms: []labels.Matcher{labels.NewEqualMatcher("a", "b")}, - }, - { - ms: []labels.Matcher{ - labels.NewEqualMatcher("a", "b"), - labels.NewEqualMatcher("job", "prom-k8s"), - }, - }, - { - ms: []labels.Matcher{ - labels.NewEqualMatcher("a", "c"), - labels.NewEqualMatcher("instance", "localhost:9090"), - labels.NewEqualMatcher("job", "prometheus"), - }, - }, - // TODO: Add Regexp Matchers. - } - - for _, qry := range queries { - matched := labels.Slice{} - for _, ls := range lbls { - s := labels.Selector(qry.ms) - if s.Matches(ls) { - matched = append(matched, ls) - } - } - - sort.Sort(matched) - - for i := 0; i < numRanges; i++ { - mint := rand.Int63n(300) - maxt := mint + rand.Int63n(timeInterval*int64(numDatapoints)) - - expected := map[string][]tsdbutil.Sample{} - - // Build the mockSeriesSet. - for _, m := range matched { - smpls := boundedSamples(seriesMap[m.String()], mint, maxt) - if len(smpls) > 0 { - expected[m.String()] = smpls - } - } - - q, err := db.Querier(mint, maxt) - testutil.Ok(t, err) - - ss, err := q.Select(qry.ms...) - testutil.Ok(t, err) - - result := map[string][]tsdbutil.Sample{} - - for ss.Next() { - x := ss.At() - - smpls, err := expandSeriesIterator(x.Iterator()) - testutil.Ok(t, err) - - if len(smpls) > 0 { - result[x.Labels().String()] = smpls - } - } - - testutil.Ok(t, ss.Err()) - testutil.Equals(t, expected, result) - - q.Close() - } - } -} - -func TestWALFlushedOnDBClose(t *testing.T) { - db, delete := openTestDB(t, nil) - defer delete() - - dirDb := db.Dir() - - lbls := labels.Labels{labels.Label{Name: "labelname", Value: "labelvalue"}} - - app := db.Appender() - _, err := app.Add(lbls, 0, 1) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - testutil.Ok(t, db.Close()) - - db, err = Open(dirDb, nil, nil, nil) - testutil.Ok(t, err) - defer func() { testutil.Ok(t, db.Close()) }() - - q, err := db.Querier(0, 1) - testutil.Ok(t, err) - - values, err := q.LabelValues("labelname") - testutil.Ok(t, err) - testutil.Equals(t, []string{"labelvalue"}, values) -} - -func TestWALSegmentSizeOptions(t *testing.T) { - tests := map[int]func(dbdir string, segmentSize int){ - // Default Wal Size. - 0: func(dbDir string, segmentSize int) { - files, err := ioutil.ReadDir(filepath.Join(dbDir, "wal")) - testutil.Ok(t, err) - for _, f := range files[:len(files)-1] { - testutil.Equals(t, int64(DefaultOptions.WALSegmentSize), f.Size(), "WAL file size doesn't match WALSegmentSize option, filename: %v", f.Name()) - } - lastFile := files[len(files)-1] - testutil.Assert(t, int64(DefaultOptions.WALSegmentSize) > lastFile.Size(), "last WAL file size is not smaller than the WALSegmentSize option, filename: %v", lastFile.Name()) - }, - // Custom Wal Size. - 2 * 32 * 1024: func(dbDir string, segmentSize int) { - files, err := ioutil.ReadDir(filepath.Join(dbDir, "wal")) - testutil.Assert(t, len(files) > 1, "current WALSegmentSize should result in more than a single WAL file.") - testutil.Ok(t, err) - for _, f := range files[:len(files)-1] { - testutil.Equals(t, int64(segmentSize), f.Size(), "WAL file size doesn't match WALSegmentSize option, filename: %v", f.Name()) - } - lastFile := files[len(files)-1] - testutil.Assert(t, int64(segmentSize) > lastFile.Size(), "last WAL file size is not smaller than the WALSegmentSize option, filename: %v", lastFile.Name()) - }, - // Wal disabled. - -1: func(dbDir string, segmentSize int) { - if _, err := os.Stat(filepath.Join(dbDir, "wal")); !os.IsNotExist(err) { - t.Fatal("wal directory is present when the wal is disabled") - } - }, - } - for segmentSize, testFunc := range tests { - t.Run(fmt.Sprintf("WALSegmentSize %d test", segmentSize), func(t *testing.T) { - options := *DefaultOptions - options.WALSegmentSize = segmentSize - db, delete := openTestDB(t, &options) - defer delete() - app := db.Appender() - for i := int64(0); i < 155; i++ { - _, err := app.Add(labels.Labels{labels.Label{Name: "wal", Value: "size"}}, i, rand.Float64()) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - } - - dbDir := db.Dir() - db.Close() - testFunc(dbDir, options.WALSegmentSize) - }) - } -} - -func TestTombstoneClean(t *testing.T) { - numSamples := int64(10) - - db, delete := openTestDB(t, nil) - defer delete() - - app := db.Appender() - - smpls := make([]float64, numSamples) - for i := int64(0); i < numSamples; i++ { - smpls[i] = rand.Float64() - app.Add(labels.Labels{{"a", "b"}}, i, smpls[i]) - } - - testutil.Ok(t, app.Commit()) - cases := []struct { - intervals Intervals - remaint []int64 - }{ - { - intervals: Intervals{{1, 3}, {4, 7}}, - remaint: []int64{0, 8, 9}, - }, - } - - for _, c := range cases { - // Delete the ranges. - - // create snapshot - snap, err := ioutil.TempDir("", "snap") - testutil.Ok(t, err) - - defer func() { - testutil.Ok(t, os.RemoveAll(snap)) - }() - testutil.Ok(t, db.Snapshot(snap, true)) - testutil.Ok(t, db.Close()) - - // reopen DB from snapshot - db, err = Open(snap, nil, nil, nil) - testutil.Ok(t, err) - defer db.Close() - - for _, r := range c.intervals { - testutil.Ok(t, db.Delete(r.Mint, r.Maxt, labels.NewEqualMatcher("a", "b"))) - } - - // All of the setup for THIS line. - testutil.Ok(t, db.CleanTombstones()) - - // Compare the result. - q, err := db.Querier(0, numSamples) - testutil.Ok(t, err) - defer q.Close() - - res, err := q.Select(labels.NewEqualMatcher("a", "b")) - testutil.Ok(t, err) - - expSamples := make([]tsdbutil.Sample, 0, len(c.remaint)) - for _, ts := range c.remaint { - expSamples = append(expSamples, sample{ts, smpls[ts]}) - } - - expss := newMockSeriesSet([]Series{ - newSeries(map[string]string{"a": "b"}, expSamples), - }) - - if len(expSamples) == 0 { - testutil.Assert(t, res.Next() == false, "") - continue - } - - for { - eok, rok := expss.Next(), res.Next() - testutil.Equals(t, eok, rok) - - if !eok { - break - } - sexp := expss.At() - sres := res.At() - - testutil.Equals(t, sexp.Labels(), sres.Labels()) - - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - - for _, b := range db.Blocks() { - testutil.Equals(t, newMemTombstones(), b.tombstones) - } - } -} - -// TestTombstoneCleanFail tests that a failing TombstoneClean doesn't leave any blocks behind. -// When TombstoneClean errors the original block that should be rebuilt doesn't get deleted so -// if TombstoneClean leaves any blocks behind these will overlap. -func TestTombstoneCleanFail(t *testing.T) { - - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - var expectedBlockDirs []string - - // Create some empty blocks pending for compaction. - // totalBlocks should be >=2 so we have enough blocks to trigger compaction failure. - totalBlocks := 2 - for i := 0; i < totalBlocks; i++ { - blockDir := createBlock(t, db.Dir(), genSeries(1, 1, 0, 0)) - block, err := OpenBlock(nil, blockDir, nil) - testutil.Ok(t, err) - // Add some some fake tombstones to trigger the compaction. - tomb := newMemTombstones() - tomb.addInterval(0, Interval{0, 1}) - block.tombstones = tomb - - db.blocks = append(db.blocks, block) - expectedBlockDirs = append(expectedBlockDirs, blockDir) - } - - // Initialize the mockCompactorFailing with a room for a single compaction iteration. - // mockCompactorFailing will fail on the second iteration so we can check if the cleanup works as expected. - db.compactor = &mockCompactorFailing{ - t: t, - blocks: db.blocks, - max: totalBlocks + 1, - } - - // The compactor should trigger a failure here. - testutil.NotOk(t, db.CleanTombstones()) - - // Now check that the CleanTombstones didn't leave any blocks behind after a failure. - actualBlockDirs, err := blockDirs(db.dir) - testutil.Ok(t, err) - testutil.Equals(t, expectedBlockDirs, actualBlockDirs) -} - -// mockCompactorFailing creates a new empty block on every write and fails when reached the max allowed total. -type mockCompactorFailing struct { - t *testing.T - blocks []*Block - max int -} - -func (*mockCompactorFailing) Plan(dir string) ([]string, error) { - return nil, nil -} -func (c *mockCompactorFailing) Write(dest string, b BlockReader, mint, maxt int64, parent *BlockMeta) (ulid.ULID, error) { - if len(c.blocks) >= c.max { - return ulid.ULID{}, fmt.Errorf("the compactor already did the maximum allowed blocks so it is time to fail") - } - - block, err := OpenBlock(nil, createBlock(c.t, dest, genSeries(1, 1, 0, 0)), nil) - testutil.Ok(c.t, err) - testutil.Ok(c.t, block.Close()) // Close block as we won't be using anywhere. - c.blocks = append(c.blocks, block) - - // Now check that all expected blocks are actually persisted on disk. - // This way we make sure that the we have some blocks that are supposed to be removed. - var expectedBlocks []string - for _, b := range c.blocks { - expectedBlocks = append(expectedBlocks, filepath.Join(dest, b.Meta().ULID.String())) - } - actualBlockDirs, err := blockDirs(dest) - testutil.Ok(c.t, err) - - testutil.Equals(c.t, expectedBlocks, actualBlockDirs) - - return block.Meta().ULID, nil -} - -func (*mockCompactorFailing) Compact(dest string, dirs []string, open []*Block) (ulid.ULID, error) { - return ulid.ULID{}, nil - -} - -func TestTimeRetention(t *testing.T) { - db, delete := openTestDB(t, &Options{ - BlockRanges: []int64{1000}, - }) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - blocks := []*BlockMeta{ - {MinTime: 500, MaxTime: 900}, // Oldest block - {MinTime: 1000, MaxTime: 1500}, - {MinTime: 1500, MaxTime: 2000}, // Newest Block - } - - for _, m := range blocks { - createBlock(t, db.Dir(), genSeries(10, 10, m.MinTime, m.MaxTime)) - } - - testutil.Ok(t, db.reload()) // Reload the db to register the new blocks. - testutil.Equals(t, len(blocks), len(db.Blocks())) // Ensure all blocks are registered. - - db.opts.RetentionDuration = uint64(blocks[2].MaxTime - blocks[1].MinTime) - testutil.Ok(t, db.reload()) - - expBlocks := blocks[1:] - actBlocks := db.Blocks() - - testutil.Equals(t, 1, int(prom_testutil.ToFloat64(db.metrics.timeRetentionCount)), "metric retention count mismatch") - testutil.Equals(t, len(expBlocks), len(actBlocks)) - testutil.Equals(t, expBlocks[0].MaxTime, actBlocks[0].meta.MaxTime) - testutil.Equals(t, expBlocks[len(expBlocks)-1].MaxTime, actBlocks[len(actBlocks)-1].meta.MaxTime) -} - -func TestSizeRetention(t *testing.T) { - db, delete := openTestDB(t, &Options{ - BlockRanges: []int64{100}, - }) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - blocks := []*BlockMeta{ - {MinTime: 100, MaxTime: 200}, // Oldest block - {MinTime: 200, MaxTime: 300}, - {MinTime: 300, MaxTime: 400}, - {MinTime: 400, MaxTime: 500}, - {MinTime: 500, MaxTime: 600}, // Newest Block - } - - for _, m := range blocks { - createBlock(t, db.Dir(), genSeries(100, 10, m.MinTime, m.MaxTime)) - } - - // Test that registered size matches the actual disk size. - testutil.Ok(t, db.reload()) // Reload the db to register the new db size. - testutil.Equals(t, len(blocks), len(db.Blocks())) // Ensure all blocks are registered. - expSize := int64(prom_testutil.ToFloat64(db.metrics.blocksBytes)) // Use the the actual internal metrics. - actSize := dbDiskSize(db.Dir()) - testutil.Equals(t, expSize, actSize, "registered size doesn't match actual disk size") - - // Decrease the max bytes limit so that a delete is triggered. - // Check total size, total count and check that the oldest block was deleted. - firstBlockSize := db.Blocks()[0].Size() - sizeLimit := actSize - firstBlockSize - db.opts.MaxBytes = sizeLimit // Set the new db size limit one block smaller that the actual size. - testutil.Ok(t, db.reload()) // Reload the db to register the new db size. - - expBlocks := blocks[1:] - actBlocks := db.Blocks() - expSize = int64(prom_testutil.ToFloat64(db.metrics.blocksBytes)) - actRetentCount := int(prom_testutil.ToFloat64(db.metrics.sizeRetentionCount)) - actSize = dbDiskSize(db.Dir()) - - testutil.Equals(t, 1, actRetentCount, "metric retention count mismatch") - testutil.Equals(t, actSize, expSize, "metric db size doesn't match actual disk size") - testutil.Assert(t, expSize <= sizeLimit, "actual size (%v) is expected to be less than or equal to limit (%v)", expSize, sizeLimit) - testutil.Equals(t, len(blocks)-1, len(actBlocks), "new block count should be decreased from:%v to:%v", len(blocks), len(blocks)-1) - testutil.Equals(t, expBlocks[0].MaxTime, actBlocks[0].meta.MaxTime, "maxT mismatch of the first block") - testutil.Equals(t, expBlocks[len(expBlocks)-1].MaxTime, actBlocks[len(actBlocks)-1].meta.MaxTime, "maxT mismatch of the last block") - -} - -func dbDiskSize(dir string) int64 { - var statSize int64 - filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { - // Include only index,tombstone and chunks. - if filepath.Dir(path) == chunkDir(filepath.Dir(filepath.Dir(path))) || - info.Name() == indexFilename || - info.Name() == tombstoneFilename { - statSize += info.Size() - } - return nil - }) - return statSize -} - -func TestNotMatcherSelectsLabelsUnsetSeries(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - labelpairs := []labels.Labels{ - labels.FromStrings("a", "abcd", "b", "abcde"), - labels.FromStrings("labelname", "labelvalue"), - } - - app := db.Appender() - for _, lbls := range labelpairs { - _, err := app.Add(lbls, 0, 1) - testutil.Ok(t, err) - } - testutil.Ok(t, app.Commit()) - - cases := []struct { - selector labels.Selector - series []labels.Labels - }{{ - selector: labels.Selector{ - labels.Not(labels.NewEqualMatcher("lname", "lvalue")), - }, - series: labelpairs, - }, { - selector: labels.Selector{ - labels.NewEqualMatcher("a", "abcd"), - labels.Not(labels.NewEqualMatcher("b", "abcde")), - }, - series: []labels.Labels{}, - }, { - selector: labels.Selector{ - labels.NewEqualMatcher("a", "abcd"), - labels.Not(labels.NewEqualMatcher("b", "abc")), - }, - series: []labels.Labels{labelpairs[0]}, - }, { - selector: labels.Selector{ - labels.Not(labels.NewMustRegexpMatcher("a", "abd.*")), - }, - series: labelpairs, - }, { - selector: labels.Selector{ - labels.Not(labels.NewMustRegexpMatcher("a", "abc.*")), - }, - series: labelpairs[1:], - }, { - selector: labels.Selector{ - labels.Not(labels.NewMustRegexpMatcher("c", "abd.*")), - }, - series: labelpairs, - }, { - selector: labels.Selector{ - labels.Not(labels.NewMustRegexpMatcher("labelname", "labelvalue")), - }, - series: labelpairs[:1], - }} - - q, err := db.Querier(0, 10) - testutil.Ok(t, err) - defer func() { testutil.Ok(t, q.Close()) }() - - for _, c := range cases { - ss, err := q.Select(c.selector...) - testutil.Ok(t, err) - - lres, err := expandSeriesSet(ss) - testutil.Ok(t, err) - - testutil.Equals(t, c.series, lres) - } -} - -func expandSeriesSet(ss SeriesSet) ([]labels.Labels, error) { - result := []labels.Labels{} - for ss.Next() { - result = append(result, ss.At().Labels()) - } - - return result, ss.Err() -} - -func TestOverlappingBlocksDetectsAllOverlaps(t *testing.T) { - // Create 10 blocks that does not overlap (0-10, 10-20, ..., 100-110) but in reverse order to ensure our algorithm - // will handle that. - var metas = make([]BlockMeta, 11) - for i := 10; i >= 0; i-- { - metas[i] = BlockMeta{MinTime: int64(i * 10), MaxTime: int64((i + 1) * 10)} - } - - testutil.Assert(t, len(OverlappingBlocks(metas)) == 0, "we found unexpected overlaps") - - // Add overlapping blocks. We've to establish order again since we aren't interested - // in trivial overlaps caused by unorderedness. - add := func(ms ...BlockMeta) []BlockMeta { - repl := append(append([]BlockMeta{}, metas...), ms...) - sort.Slice(repl, func(i, j int) bool { - return repl[i].MinTime < repl[j].MinTime - }) - return repl - } - - // o1 overlaps with 10-20. - o1 := BlockMeta{MinTime: 15, MaxTime: 17} - testutil.Equals(t, Overlaps{ - {Min: 15, Max: 17}: {metas[1], o1}, - }, OverlappingBlocks(add(o1))) - - // o2 overlaps with 20-30 and 30-40. - o2 := BlockMeta{MinTime: 21, MaxTime: 31} - testutil.Equals(t, Overlaps{ - {Min: 21, Max: 30}: {metas[2], o2}, - {Min: 30, Max: 31}: {o2, metas[3]}, - }, OverlappingBlocks(add(o2))) - - // o3a and o3b overlaps with 30-40 and each other. - o3a := BlockMeta{MinTime: 33, MaxTime: 39} - o3b := BlockMeta{MinTime: 34, MaxTime: 36} - testutil.Equals(t, Overlaps{ - {Min: 34, Max: 36}: {metas[3], o3a, o3b}, - }, OverlappingBlocks(add(o3a, o3b))) - - // o4 is 1:1 overlap with 50-60. - o4 := BlockMeta{MinTime: 50, MaxTime: 60} - testutil.Equals(t, Overlaps{ - {Min: 50, Max: 60}: {metas[5], o4}, - }, OverlappingBlocks(add(o4))) - - // o5 overlaps with 60-70, 70-80 and 80-90. - o5 := BlockMeta{MinTime: 61, MaxTime: 85} - testutil.Equals(t, Overlaps{ - {Min: 61, Max: 70}: {metas[6], o5}, - {Min: 70, Max: 80}: {o5, metas[7]}, - {Min: 80, Max: 85}: {o5, metas[8]}, - }, OverlappingBlocks(add(o5))) - - // o6a overlaps with 90-100, 100-110 and o6b, o6b overlaps with 90-100 and o6a. - o6a := BlockMeta{MinTime: 92, MaxTime: 105} - o6b := BlockMeta{MinTime: 94, MaxTime: 99} - testutil.Equals(t, Overlaps{ - {Min: 94, Max: 99}: {metas[9], o6a, o6b}, - {Min: 100, Max: 105}: {o6a, metas[10]}, - }, OverlappingBlocks(add(o6a, o6b))) - - // All together. - testutil.Equals(t, Overlaps{ - {Min: 15, Max: 17}: {metas[1], o1}, - {Min: 21, Max: 30}: {metas[2], o2}, {Min: 30, Max: 31}: {o2, metas[3]}, - {Min: 34, Max: 36}: {metas[3], o3a, o3b}, - {Min: 50, Max: 60}: {metas[5], o4}, - {Min: 61, Max: 70}: {metas[6], o5}, {Min: 70, Max: 80}: {o5, metas[7]}, {Min: 80, Max: 85}: {o5, metas[8]}, - {Min: 94, Max: 99}: {metas[9], o6a, o6b}, {Min: 100, Max: 105}: {o6a, metas[10]}, - }, OverlappingBlocks(add(o1, o2, o3a, o3b, o4, o5, o6a, o6b))) - - // Additional case. - var nc1 []BlockMeta - nc1 = append(nc1, BlockMeta{MinTime: 1, MaxTime: 5}) - nc1 = append(nc1, BlockMeta{MinTime: 2, MaxTime: 3}) - nc1 = append(nc1, BlockMeta{MinTime: 2, MaxTime: 3}) - nc1 = append(nc1, BlockMeta{MinTime: 2, MaxTime: 3}) - nc1 = append(nc1, BlockMeta{MinTime: 2, MaxTime: 3}) - nc1 = append(nc1, BlockMeta{MinTime: 2, MaxTime: 6}) - nc1 = append(nc1, BlockMeta{MinTime: 3, MaxTime: 5}) - nc1 = append(nc1, BlockMeta{MinTime: 5, MaxTime: 7}) - nc1 = append(nc1, BlockMeta{MinTime: 7, MaxTime: 10}) - nc1 = append(nc1, BlockMeta{MinTime: 8, MaxTime: 9}) - testutil.Equals(t, Overlaps{ - {Min: 2, Max: 3}: {nc1[0], nc1[1], nc1[2], nc1[3], nc1[4], nc1[5]}, // 1-5, 2-3, 2-3, 2-3, 2-3, 2,6 - {Min: 3, Max: 5}: {nc1[0], nc1[5], nc1[6]}, // 1-5, 2-6, 3-5 - {Min: 5, Max: 6}: {nc1[5], nc1[7]}, // 2-6, 5-7 - {Min: 8, Max: 9}: {nc1[8], nc1[9]}, // 7-10, 8-9 - }, OverlappingBlocks(nc1)) -} - -// Regression test for https://github.com/prometheus/tsdb/issues/347 -func TestChunkAtBlockBoundary(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - - blockRange := DefaultOptions.BlockRanges[0] - label := labels.FromStrings("foo", "bar") - - for i := int64(0); i < 3; i++ { - _, err := app.Add(label, i*blockRange, 0) - testutil.Ok(t, err) - _, err = app.Add(label, i*blockRange+1000, 0) - testutil.Ok(t, err) - } - - err := app.Commit() - testutil.Ok(t, err) - - err = db.compact() - testutil.Ok(t, err) - - for _, block := range db.Blocks() { - r, err := block.Index() - testutil.Ok(t, err) - defer r.Close() - - meta := block.Meta() - - p, err := r.Postings(index.AllPostingsKey()) - testutil.Ok(t, err) - - var ( - lset labels.Labels - chks []chunks.Meta - ) - - chunkCount := 0 - - for p.Next() { - err = r.Series(p.At(), &lset, &chks) - testutil.Ok(t, err) - for _, c := range chks { - testutil.Assert(t, meta.MinTime <= c.MinTime && c.MaxTime <= meta.MaxTime, - "chunk spans beyond block boundaries: [block.MinTime=%d, block.MaxTime=%d]; [chunk.MinTime=%d, chunk.MaxTime=%d]", - meta.MinTime, meta.MaxTime, c.MinTime, c.MaxTime) - chunkCount++ - } - } - testutil.Assert(t, chunkCount == 1, "expected 1 chunk in block %s, got %d", meta.ULID, chunkCount) - } -} - -func TestQuerierWithBoundaryChunks(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - app := db.Appender() - - blockRange := DefaultOptions.BlockRanges[0] - label := labels.FromStrings("foo", "bar") - - for i := int64(0); i < 5; i++ { - _, err := app.Add(label, i*blockRange, 0) - testutil.Ok(t, err) - } - - err := app.Commit() - testutil.Ok(t, err) - - err = db.compact() - testutil.Ok(t, err) - - testutil.Assert(t, len(db.blocks) >= 3, "invalid test, less than three blocks in DB") - - q, err := db.Querier(blockRange, 2*blockRange) - testutil.Ok(t, err) - defer q.Close() - - // The requested interval covers 2 blocks, so the querier should contain 2 blocks. - count := len(q.(*querier).blocks) - testutil.Assert(t, count == 2, "expected 2 blocks in querier, got %d", count) -} - -// TestInitializeHeadTimestamp ensures that the h.minTime is set properly. -// - no blocks no WAL: set to the time of the first appended sample -// - no blocks with WAL: set to the smallest sample from the WAL -// - with blocks no WAL: set to the last block maxT -// - with blocks with WAL: same as above -func TestInitializeHeadTimestamp(t *testing.T) { - t.Run("clean", func(t *testing.T) { - dir, err := ioutil.TempDir("", "test_head_init") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - db, err := Open(dir, nil, nil, nil) - testutil.Ok(t, err) - defer db.Close() - - // Should be set to init values if no WAL or blocks exist so far. - testutil.Equals(t, int64(math.MaxInt64), db.head.MinTime()) - testutil.Equals(t, int64(math.MinInt64), db.head.MaxTime()) - - // First added sample initializes the writable range. - app := db.Appender() - _, err = app.Add(labels.FromStrings("a", "b"), 1000, 1) - testutil.Ok(t, err) - - testutil.Equals(t, int64(1000), db.head.MinTime()) - testutil.Equals(t, int64(1000), db.head.MaxTime()) - }) - t.Run("wal-only", func(t *testing.T) { - dir, err := ioutil.TempDir("", "test_head_init") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - testutil.Ok(t, os.MkdirAll(path.Join(dir, "wal"), 0777)) - w, err := wal.New(nil, nil, path.Join(dir, "wal")) - testutil.Ok(t, err) - - var enc RecordEncoder - err = w.Log( - enc.Series([]RefSeries{ - {Ref: 123, Labels: labels.FromStrings("a", "1")}, - {Ref: 124, Labels: labels.FromStrings("a", "2")}, - }, nil), - enc.Samples([]RefSample{ - {Ref: 123, T: 5000, V: 1}, - {Ref: 124, T: 15000, V: 1}, - }, nil), - ) - testutil.Ok(t, err) - testutil.Ok(t, w.Close()) - - db, err := Open(dir, nil, nil, nil) - testutil.Ok(t, err) - defer db.Close() - - testutil.Equals(t, int64(5000), db.head.MinTime()) - testutil.Equals(t, int64(15000), db.head.MaxTime()) - }) - t.Run("existing-block", func(t *testing.T) { - dir, err := ioutil.TempDir("", "test_head_init") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - createBlock(t, dir, genSeries(1, 1, 1000, 2000)) - - db, err := Open(dir, nil, nil, nil) - testutil.Ok(t, err) - defer db.Close() - - testutil.Equals(t, int64(2000), db.head.MinTime()) - testutil.Equals(t, int64(2000), db.head.MaxTime()) - }) - t.Run("existing-block-and-wal", func(t *testing.T) { - dir, err := ioutil.TempDir("", "test_head_init") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - createBlock(t, dir, genSeries(1, 1, 1000, 6000)) - - testutil.Ok(t, os.MkdirAll(path.Join(dir, "wal"), 0777)) - w, err := wal.New(nil, nil, path.Join(dir, "wal")) - testutil.Ok(t, err) - - var enc RecordEncoder - err = w.Log( - enc.Series([]RefSeries{ - {Ref: 123, Labels: labels.FromStrings("a", "1")}, - {Ref: 124, Labels: labels.FromStrings("a", "2")}, - }, nil), - enc.Samples([]RefSample{ - {Ref: 123, T: 5000, V: 1}, - {Ref: 124, T: 15000, V: 1}, - }, nil), - ) - testutil.Ok(t, err) - testutil.Ok(t, w.Close()) - - r := prometheus.NewRegistry() - - db, err := Open(dir, nil, r, nil) - testutil.Ok(t, err) - defer db.Close() - - testutil.Equals(t, int64(6000), db.head.MinTime()) - testutil.Equals(t, int64(15000), db.head.MaxTime()) - // Check that old series has been GCed. - testutil.Equals(t, 1.0, prom_testutil.ToFloat64(db.head.metrics.series)) - }) -} - -func TestNoEmptyBlocks(t *testing.T) { - db, delete := openTestDB(t, &Options{ - BlockRanges: []int64{100}, - }) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - db.DisableCompactions() - - rangeToTriggerCompaction := db.opts.BlockRanges[0]/2*3 - 1 - defaultLabel := labels.FromStrings("foo", "bar") - defaultMatcher := labels.NewMustRegexpMatcher("", ".*") - - t.Run("Test no blocks after compact with empty head.", func(t *testing.T) { - testutil.Ok(t, db.compact()) - actBlocks, err := blockDirs(db.Dir()) - testutil.Ok(t, err) - testutil.Equals(t, len(db.Blocks()), len(actBlocks)) - testutil.Equals(t, 0, len(actBlocks)) - testutil.Equals(t, 0, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "no compaction should be triggered here") - }) - - t.Run("Test no blocks after deleting all samples from head.", func(t *testing.T) { - app := db.Appender() - _, err := app.Add(defaultLabel, 1, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, 2, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, 3+rangeToTriggerCompaction, 0) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - testutil.Ok(t, db.Delete(math.MinInt64, math.MaxInt64, defaultMatcher)) - testutil.Ok(t, db.compact()) - testutil.Equals(t, 1, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here") - - actBlocks, err := blockDirs(db.Dir()) - testutil.Ok(t, err) - testutil.Equals(t, len(db.Blocks()), len(actBlocks)) - testutil.Equals(t, 0, len(actBlocks)) - - app = db.Appender() - _, err = app.Add(defaultLabel, 1, 0) - testutil.Assert(t, err == ErrOutOfBounds, "the head should be truncated so no samples in the past should be allowed") - - // Adding new blocks. - currentTime := db.Head().MaxTime() - _, err = app.Add(defaultLabel, currentTime, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, currentTime+1, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, currentTime+rangeToTriggerCompaction, 0) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - - testutil.Ok(t, db.compact()) - testutil.Equals(t, 2, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here") - actBlocks, err = blockDirs(db.Dir()) - testutil.Ok(t, err) - testutil.Equals(t, len(db.Blocks()), len(actBlocks)) - testutil.Assert(t, len(actBlocks) == 1, "No blocks created when compacting with >0 samples") - }) - - t.Run(`When no new block is created from head, and there are some blocks on disk - compaction should not run into infinite loop (was seen during development).`, func(t *testing.T) { - oldBlocks := db.Blocks() - app := db.Appender() - currentTime := db.Head().MaxTime() - _, err := app.Add(defaultLabel, currentTime, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, currentTime+1, 0) - testutil.Ok(t, err) - _, err = app.Add(defaultLabel, currentTime+rangeToTriggerCompaction, 0) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - testutil.Ok(t, db.head.Delete(math.MinInt64, math.MaxInt64, defaultMatcher)) - testutil.Ok(t, db.compact()) - testutil.Equals(t, 3, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here") - testutil.Equals(t, oldBlocks, db.Blocks()) - }) - - t.Run("Test no blocks remaining after deleting all samples from disk.", func(t *testing.T) { - currentTime := db.Head().MaxTime() - blocks := []*BlockMeta{ - {MinTime: currentTime, MaxTime: currentTime + db.opts.BlockRanges[0]}, - {MinTime: currentTime + 100, MaxTime: currentTime + 100 + db.opts.BlockRanges[0]}, - } - for _, m := range blocks { - createBlock(t, db.Dir(), genSeries(2, 2, m.MinTime, m.MaxTime)) - } - - oldBlocks := db.Blocks() - testutil.Ok(t, db.reload()) // Reload the db to register the new blocks. - testutil.Equals(t, len(blocks)+len(oldBlocks), len(db.Blocks())) // Ensure all blocks are registered. - testutil.Ok(t, db.Delete(math.MinInt64, math.MaxInt64, defaultMatcher)) - testutil.Ok(t, db.compact()) - testutil.Equals(t, 5, int(prom_testutil.ToFloat64(db.compactor.(*LeveledCompactor).metrics.ran)), "compaction should have been triggered here once for each block that have tombstones") - - actBlocks, err := blockDirs(db.Dir()) - testutil.Ok(t, err) - testutil.Equals(t, len(db.Blocks()), len(actBlocks)) - testutil.Equals(t, 1, len(actBlocks), "All samples are deleted. Only the most recent block should remain after compaction.") - }) -} - -func TestDB_LabelNames(t *testing.T) { - tests := []struct { - // Add 'sampleLabels1' -> Test Head -> Compact -> Test Disk -> - // -> Add 'sampleLabels2' -> Test Head+Disk - - sampleLabels1 [][2]string // For checking head and disk separately. - // To test Head+Disk, sampleLabels2 should have - // at least 1 unique label name which is not in sampleLabels1. - sampleLabels2 [][2]string // // For checking head and disk together. - exp1 []string // after adding sampleLabels1. - exp2 []string // after adding sampleLabels1 and sampleLabels2. - }{ - { - sampleLabels1: [][2]string{ - [2]string{"name1", ""}, - [2]string{"name3", ""}, - [2]string{"name2", ""}, - }, - sampleLabels2: [][2]string{ - [2]string{"name4", ""}, - [2]string{"name1", ""}, - }, - exp1: []string{"name1", "name2", "name3"}, - exp2: []string{"name1", "name2", "name3", "name4"}, - }, - { - sampleLabels1: [][2]string{ - [2]string{"name2", ""}, - [2]string{"name1", ""}, - [2]string{"name2", ""}, - }, - sampleLabels2: [][2]string{ - [2]string{"name6", ""}, - [2]string{"name0", ""}, - }, - exp1: []string{"name1", "name2"}, - exp2: []string{"name0", "name1", "name2", "name6"}, - }, - } - - blockRange := DefaultOptions.BlockRanges[0] - // Appends samples into the database. - appendSamples := func(db *DB, mint, maxt int64, sampleLabels [][2]string) { - t.Helper() - app := db.Appender() - for i := mint; i <= maxt; i++ { - for _, tuple := range sampleLabels { - label := labels.FromStrings(tuple[0], tuple[1]) - _, err := app.Add(label, i*blockRange, 0) - testutil.Ok(t, err) - } - } - err := app.Commit() - testutil.Ok(t, err) - } - for _, tst := range tests { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - appendSamples(db, 0, 4, tst.sampleLabels1) - - // Testing head. - headIndexr, err := db.head.Index() - testutil.Ok(t, err) - labelNames, err := headIndexr.LabelNames() - testutil.Ok(t, err) - testutil.Equals(t, tst.exp1, labelNames) - testutil.Ok(t, headIndexr.Close()) - - // Testing disk. - err = db.compact() - testutil.Ok(t, err) - // All blocks have same label names, hence check them individually. - // No need to aggregrate and check. - for _, b := range db.Blocks() { - blockIndexr, err := b.Index() - testutil.Ok(t, err) - labelNames, err = blockIndexr.LabelNames() - testutil.Ok(t, err) - testutil.Equals(t, tst.exp1, labelNames) - testutil.Ok(t, blockIndexr.Close()) - } - - // Addings more samples to head with new label names - // so that we can test (head+disk).LabelNames() (the union). - appendSamples(db, 5, 9, tst.sampleLabels2) - - // Testing DB (union). - q, err := db.Querier(math.MinInt64, math.MaxInt64) - testutil.Ok(t, err) - labelNames, err = q.LabelNames() - testutil.Ok(t, err) - testutil.Ok(t, q.Close()) - testutil.Equals(t, tst.exp2, labelNames) - } -} - -func TestCorrectNumTombstones(t *testing.T) { - db, delete := openTestDB(t, nil) - defer func() { - testutil.Ok(t, db.Close()) - delete() - }() - - blockRange := DefaultOptions.BlockRanges[0] - defaultLabel := labels.FromStrings("foo", "bar") - defaultMatcher := labels.NewEqualMatcher(defaultLabel[0].Name, defaultLabel[0].Value) - - app := db.Appender() - for i := int64(0); i < 3; i++ { - for j := int64(0); j < 15; j++ { - _, err := app.Add(defaultLabel, i*blockRange+j, 0) - testutil.Ok(t, err) - } - } - testutil.Ok(t, app.Commit()) - - err := db.compact() - testutil.Ok(t, err) - testutil.Equals(t, 1, len(db.blocks)) - - testutil.Ok(t, db.Delete(0, 1, defaultMatcher)) - testutil.Equals(t, uint64(1), db.blocks[0].meta.Stats.NumTombstones) - - // {0, 1} and {2, 3} are merged to form 1 tombstone. - testutil.Ok(t, db.Delete(2, 3, defaultMatcher)) - testutil.Equals(t, uint64(1), db.blocks[0].meta.Stats.NumTombstones) - - testutil.Ok(t, db.Delete(5, 6, defaultMatcher)) - testutil.Equals(t, uint64(2), db.blocks[0].meta.Stats.NumTombstones) - - testutil.Ok(t, db.Delete(9, 11, defaultMatcher)) - testutil.Equals(t, uint64(3), db.blocks[0].meta.Stats.NumTombstones) -} - -func TestVerticalCompaction(t *testing.T) { - cases := []struct { - blockSeries [][]Series - expSeries map[string][]tsdbutil.Sample - expBlockNum int - expOverlappingBlocks int - }{ - // Case 0 - // |--------------| - // |----------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{7, 0}, sample{8, 0}, sample{9, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{10, 99}, sample{11, 99}, - sample{12, 99}, sample{13, 99}, sample{14, 99}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{`{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{10, 99}, sample{11, 99}, - sample{12, 99}, sample{13, 99}, sample{14, 99}, - }}, - expBlockNum: 1, - expOverlappingBlocks: 1, - }, - // Case 1 - // |-------------------------------| - // |----------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{7, 0}, sample{8, 0}, sample{9, 0}, - sample{11, 0}, sample{13, 0}, sample{17, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{10, 99}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{`{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{10, 99}, sample{11, 0}, - sample{13, 0}, sample{17, 0}, - }}, - expBlockNum: 1, - expOverlappingBlocks: 1, - }, - // Case 2 - // |-------------------------------| - // |------------| - // |--------------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{7, 0}, sample{8, 0}, sample{9, 0}, - sample{11, 0}, sample{13, 0}, sample{17, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{14, 59}, sample{15, 59}, sample{17, 59}, sample{20, 59}, - sample{21, 59}, sample{22, 59}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{`{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{11, 0}, sample{13, 0}, - sample{14, 59}, sample{15, 59}, sample{17, 59}, sample{20, 59}, - sample{21, 59}, sample{22, 59}, - }}, - expBlockNum: 1, - expOverlappingBlocks: 1, - }, - // Case 3 - // |-------------------| - // |--------------------| - // |----------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{8, 0}, sample{9, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{14, 59}, sample{15, 59}, sample{17, 59}, sample{20, 59}, - sample{21, 59}, sample{22, 59}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{5, 99}, sample{6, 99}, sample{7, 99}, sample{8, 99}, - sample{9, 99}, sample{10, 99}, sample{13, 99}, sample{15, 99}, - sample{16, 99}, sample{17, 99}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{`{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 99}, sample{6, 99}, sample{7, 99}, sample{8, 99}, - sample{9, 99}, sample{10, 99}, sample{13, 99}, sample{14, 59}, - sample{15, 59}, sample{16, 99}, sample{17, 59}, sample{20, 59}, - sample{21, 59}, sample{22, 59}, - }}, - expBlockNum: 1, - expOverlappingBlocks: 1, - }, - // Case 4 - // |-------------------------------------| - // |------------| - // |-------------------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{8, 0}, sample{9, 0}, sample{10, 0}, - sample{13, 0}, sample{15, 0}, sample{16, 0}, sample{17, 0}, - sample{20, 0}, sample{22, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{7, 59}, sample{8, 59}, sample{9, 59}, sample{10, 59}, - sample{11, 59}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{8, 99}, - sample{9, 99}, sample{10, 99}, sample{13, 99}, sample{15, 99}, - sample{16, 99}, sample{17, 99}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{`{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 59}, - sample{8, 59}, sample{9, 59}, sample{10, 59}, sample{11, 59}, - sample{13, 99}, sample{15, 99}, sample{16, 99}, sample{17, 99}, - sample{20, 0}, sample{22, 0}, - }}, - expBlockNum: 1, - expOverlappingBlocks: 1, - }, - // Case 5: series are merged properly when there are multiple series. - // |-------------------------------------| - // |------------| - // |-------------------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{8, 0}, sample{9, 0}, sample{10, 0}, - sample{13, 0}, sample{15, 0}, sample{16, 0}, sample{17, 0}, - sample{20, 0}, sample{22, 0}, - }), - newSeries(map[string]string{"b": "c"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{8, 0}, sample{9, 0}, sample{10, 0}, - sample{13, 0}, sample{15, 0}, sample{16, 0}, sample{17, 0}, - sample{20, 0}, sample{22, 0}, - }), - newSeries(map[string]string{"c": "d"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{8, 0}, sample{9, 0}, sample{10, 0}, - sample{13, 0}, sample{15, 0}, sample{16, 0}, sample{17, 0}, - sample{20, 0}, sample{22, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"__name__": "a"}, []tsdbutil.Sample{ - sample{7, 59}, sample{8, 59}, sample{9, 59}, sample{10, 59}, - sample{11, 59}, - }), - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{7, 59}, sample{8, 59}, sample{9, 59}, sample{10, 59}, - sample{11, 59}, - }), - newSeries(map[string]string{"aa": "bb"}, []tsdbutil.Sample{ - sample{7, 59}, sample{8, 59}, sample{9, 59}, sample{10, 59}, - sample{11, 59}, - }), - newSeries(map[string]string{"c": "d"}, []tsdbutil.Sample{ - sample{7, 59}, sample{8, 59}, sample{9, 59}, sample{10, 59}, - sample{11, 59}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{8, 99}, - sample{9, 99}, sample{10, 99}, sample{13, 99}, sample{15, 99}, - sample{16, 99}, sample{17, 99}, - }), - newSeries(map[string]string{"aa": "bb"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{8, 99}, - sample{9, 99}, sample{10, 99}, sample{13, 99}, sample{15, 99}, - sample{16, 99}, sample{17, 99}, - }), - newSeries(map[string]string{"c": "d"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{8, 99}, - sample{9, 99}, sample{10, 99}, sample{13, 99}, sample{15, 99}, - sample{16, 99}, sample{17, 99}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{ - `{__name__="a"}`: { - sample{7, 59}, sample{8, 59}, sample{9, 59}, sample{10, 59}, - sample{11, 59}, - }, - `{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 59}, - sample{8, 59}, sample{9, 59}, sample{10, 59}, sample{11, 59}, - sample{13, 99}, sample{15, 99}, sample{16, 99}, sample{17, 99}, - sample{20, 0}, sample{22, 0}, - }, - `{aa="bb"}`: { - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{7, 59}, - sample{8, 59}, sample{9, 59}, sample{10, 59}, sample{11, 59}, - sample{13, 99}, sample{15, 99}, sample{16, 99}, sample{17, 99}, - }, - `{b="c"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{8, 0}, sample{9, 0}, sample{10, 0}, - sample{13, 0}, sample{15, 0}, sample{16, 0}, sample{17, 0}, - sample{20, 0}, sample{22, 0}, - }, - `{c="d"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 59}, - sample{8, 59}, sample{9, 59}, sample{10, 59}, sample{11, 59}, - sample{13, 99}, sample{15, 99}, sample{16, 99}, sample{17, 99}, - sample{20, 0}, sample{22, 0}, - }, - }, - expBlockNum: 1, - expOverlappingBlocks: 1, - }, - // Case 6 - // |--------------| - // |----------------| - // |--------------| - // |----------------| - { - blockSeries: [][]Series{ - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{4, 0}, - sample{5, 0}, sample{7, 0}, sample{8, 0}, sample{9, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{3, 99}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{10, 99}, sample{11, 99}, - sample{12, 99}, sample{13, 99}, sample{14, 99}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{20, 0}, sample{21, 0}, sample{22, 0}, sample{24, 0}, - sample{25, 0}, sample{27, 0}, sample{28, 0}, sample{29, 0}, - }), - }, - []Series{ - newSeries(map[string]string{"a": "b"}, []tsdbutil.Sample{ - sample{23, 99}, sample{25, 99}, sample{26, 99}, sample{27, 99}, - sample{28, 99}, sample{29, 99}, sample{30, 99}, sample{31, 99}, - }), - }, - }, - expSeries: map[string][]tsdbutil.Sample{`{a="b"}`: { - sample{0, 0}, sample{1, 0}, sample{2, 0}, sample{3, 99}, - sample{4, 0}, sample{5, 99}, sample{6, 99}, sample{7, 99}, - sample{8, 99}, sample{9, 99}, sample{10, 99}, sample{11, 99}, - sample{12, 99}, sample{13, 99}, sample{14, 99}, - sample{20, 0}, sample{21, 0}, sample{22, 0}, sample{23, 99}, - sample{24, 0}, sample{25, 99}, sample{26, 99}, sample{27, 99}, - sample{28, 99}, sample{29, 99}, sample{30, 99}, sample{31, 99}, - }}, - expBlockNum: 2, - expOverlappingBlocks: 2, - }, - } - - defaultMatcher := labels.NewMustRegexpMatcher("__name__", ".*") - for _, c := range cases { - if ok := t.Run("", func(t *testing.T) { - - tmpdir, err := ioutil.TempDir("", "data") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - for _, series := range c.blockSeries { - createBlock(t, tmpdir, series) - } - opts := *DefaultOptions - opts.AllowOverlappingBlocks = true - db, err := Open(tmpdir, nil, nil, &opts) - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, db.Close()) - }() - db.DisableCompactions() - testutil.Assert(t, len(db.blocks) == len(c.blockSeries), "Wrong number of blocks [before compact].") - - // Vertical Query Merging test. - querier, err := db.Querier(0, 100) - testutil.Ok(t, err) - actSeries := query(t, querier, defaultMatcher) - testutil.Equals(t, c.expSeries, actSeries) - - // Vertical compaction. - lc := db.compactor.(*LeveledCompactor) - testutil.Equals(t, 0, int(prom_testutil.ToFloat64(lc.metrics.overlappingBlocks)), "overlapping blocks count should be still 0 here") - err = db.compact() - testutil.Ok(t, err) - testutil.Equals(t, c.expBlockNum, len(db.Blocks()), "Wrong number of blocks [after compact]") - - testutil.Equals(t, c.expOverlappingBlocks, int(prom_testutil.ToFloat64(lc.metrics.overlappingBlocks)), "overlapping blocks count mismatch") - - // Query test after merging the overlapping blocks. - querier, err = db.Querier(0, 100) - testutil.Ok(t, err) - actSeries = query(t, querier, defaultMatcher) - testutil.Equals(t, c.expSeries, actSeries) - }); !ok { - return - } - } -} - -// TestBlockRanges checks the following use cases: -// - No samples can be added with timestamps lower than the last block maxt. -// - The compactor doesn't create overlapping blocks -// even when the last blocks is not within the default boundaries. -// - Lower boundary is based on the smallest sample in the head and -// upper boundary is rounded to the configured block range. -// -// This ensures that a snapshot that includes the head and creates a block with a custom time range -// will not overlap with the first block created by the next compaction. -func TestBlockRanges(t *testing.T) { - logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr)) - - dir, err := ioutil.TempDir("", "test_storage") - if err != nil { - t.Fatalf("Opening test dir failed: %s", err) - } - - rangeToTriggercompaction := DefaultOptions.BlockRanges[0]/2*3 + 1 - - // Test that the compactor doesn't create overlapping blocks - // when a non standard block already exists. - firstBlockMaxT := int64(3) - createBlock(t, dir, genSeries(1, 1, 0, firstBlockMaxT)) - db, err := Open(dir, logger, nil, DefaultOptions) - if err != nil { - t.Fatalf("Opening test storage failed: %s", err) - } - defer func() { - os.RemoveAll(dir) - }() - app := db.Appender() - lbl := labels.Labels{{"a", "b"}} - _, err = app.Add(lbl, firstBlockMaxT-1, rand.Float64()) - if err == nil { - t.Fatalf("appending a sample with a timestamp covered by a previous block shouldn't be possible") - } - _, err = app.Add(lbl, firstBlockMaxT+1, rand.Float64()) - testutil.Ok(t, err) - _, err = app.Add(lbl, firstBlockMaxT+2, rand.Float64()) - testutil.Ok(t, err) - secondBlockMaxt := firstBlockMaxT + rangeToTriggercompaction - _, err = app.Add(lbl, secondBlockMaxt, rand.Float64()) // Add samples to trigger a new compaction - - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - for x := 0; x < 100; x++ { - if len(db.Blocks()) == 2 { - break - } - time.Sleep(100 * time.Millisecond) - } - testutil.Equals(t, 2, len(db.Blocks()), "no new block created after the set timeout") - - if db.Blocks()[0].Meta().MaxTime > db.Blocks()[1].Meta().MinTime { - t.Fatalf("new block overlaps old:%v,new:%v", db.Blocks()[0].Meta(), db.Blocks()[1].Meta()) - } - - // Test that wal records are skipped when an existing block covers the same time ranges - // and compaction doesn't create an overlapping block. - db.DisableCompactions() - _, err = app.Add(lbl, secondBlockMaxt+1, rand.Float64()) - testutil.Ok(t, err) - _, err = app.Add(lbl, secondBlockMaxt+2, rand.Float64()) - testutil.Ok(t, err) - _, err = app.Add(lbl, secondBlockMaxt+3, rand.Float64()) - testutil.Ok(t, err) - _, err = app.Add(lbl, secondBlockMaxt+4, rand.Float64()) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - testutil.Ok(t, db.Close()) - - thirdBlockMaxt := secondBlockMaxt + 2 - createBlock(t, dir, genSeries(1, 1, secondBlockMaxt+1, thirdBlockMaxt)) - - db, err = Open(dir, logger, nil, DefaultOptions) - if err != nil { - t.Fatalf("Opening test storage failed: %s", err) - } - defer db.Close() - testutil.Equals(t, 3, len(db.Blocks()), "db doesn't include expected number of blocks") - testutil.Equals(t, db.Blocks()[2].Meta().MaxTime, thirdBlockMaxt, "unexpected maxt of the last block") - - app = db.Appender() - _, err = app.Add(lbl, thirdBlockMaxt+rangeToTriggercompaction, rand.Float64()) // Trigger a compaction - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - for x := 0; x < 100; x++ { - if len(db.Blocks()) == 4 { - break - } - time.Sleep(100 * time.Millisecond) - } - - testutil.Equals(t, 4, len(db.Blocks()), "no new block created after the set timeout") - - if db.Blocks()[2].Meta().MaxTime > db.Blocks()[3].Meta().MinTime { - t.Fatalf("new block overlaps old:%v,new:%v", db.Blocks()[2].Meta(), db.Blocks()[3].Meta()) - } -} diff --git a/vendor/github.com/prometheus/tsdb/docs/format/README.md b/vendor/github.com/prometheus/tsdb/docs/format/README.md deleted file mode 100644 index 39db06fc..00000000 --- a/vendor/github.com/prometheus/tsdb/docs/format/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## TSDB format - -* [Index](index.md) -* [Chunks](chunks.md) -* [Tombstones](tombstones.md) -* [Wal](wal.md) diff --git a/vendor/github.com/prometheus/tsdb/docs/format/chunks.md b/vendor/github.com/prometheus/tsdb/docs/format/chunks.md deleted file mode 100644 index 1ef86037..00000000 --- a/vendor/github.com/prometheus/tsdb/docs/format/chunks.md +++ /dev/null @@ -1,31 +0,0 @@ -# Chunks Disk Format - -The following describes the format of a chunks file, -which is created in the `chunks/` directory of a block. -The maximum size per segment file is 512MiB. - -Chunks in the files are referenced from the index by uint64 composed of -in-file offset (lower 4 bytes) and segment sequence number (upper 4 bytes). - -``` -┌────────────────────────────┬─────────────────────┠-│ magic(0x85BD40DD) <4 byte> │ version(1) <1 byte> │ -├────────────────────────────┴─────────────────────┤ -│ ┌──────────────────────────────────────────────┠│ -│ │ Chunk 1 │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ ... │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Chunk N │ │ -│ └──────────────────────────────────────────────┘ │ -└──────────────────────────────────────────────────┘ -``` - - -# Chunk - -``` -┌───────────────┬───────────────────┬──────────────┬────────────────┠-│ len │ encoding <1 byte> │ data │ CRC32 <4 byte> │ -└───────────────┴───────────────────┴──────────────┴────────────────┘ -``` diff --git a/vendor/github.com/prometheus/tsdb/docs/format/index.md b/vendor/github.com/prometheus/tsdb/docs/format/index.md deleted file mode 100644 index 1ec3c21b..00000000 --- a/vendor/github.com/prometheus/tsdb/docs/format/index.md +++ /dev/null @@ -1,227 +0,0 @@ -# Index Disk Format - -The following describes the format of the `index` file found in each block directory. -It is terminated by a table of contents which serves as an entry point into the index. - -``` -┌────────────────────────────┬─────────────────────┠-│ magic(0xBAAAD700) <4b> │ version(1) <1 byte> │ -├────────────────────────────┴─────────────────────┤ -│ ┌──────────────────────────────────────────────┠│ -│ │ Symbol Table │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Series │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Label Index 1 │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ ... │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Label Index N │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Postings 1 │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ ... │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Postings N │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Label Index Table │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Postings Table │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ TOC │ │ -│ └──────────────────────────────────────────────┘ │ -└──────────────────────────────────────────────────┘ -``` - -When the index is written, an arbitrary number of padding bytes may be added between the lined out main sections above. When sequentially scanning through the file, any zero bytes after a section's specified length must be skipped. - -Most of the sections described below start with a `len` field. It always specifies the number of bytes just before the trailing CRC32 checksum. The checksum is always calculated over those `len` bytes. - - -### Symbol Table - -The symbol table holds a sorted list of deduplicated strings that occurred in label pairs of the stored series. They can be referenced from subsequent sections and significantly reduce the total index size. - -The section contains a sequence of the string entries, each prefixed with the string's length in raw bytes. All strings are utf-8 encoded. -Strings are referenced by sequential indexing. The strings are sorted in lexicographically ascending order. - -``` -┌────────────────────┬─────────────────────┠-│ len <4b> │ #symbols <4b> │ -├────────────────────┴─────────────────────┤ -│ ┌──────────────────────┬───────────────┠│ -│ │ len(str_1) │ str_1 │ │ -│ ├──────────────────────┴───────────────┤ │ -│ │ . . . │ │ -│ ├──────────────────────┬───────────────┤ │ -│ │ len(str_n) │ str_n │ │ -│ └──────────────────────┴───────────────┘ │ -├──────────────────────────────────────────┤ -│ CRC32 <4b> │ -└──────────────────────────────────────────┘ -``` - - -### Series - -The section contains a sequence of series that hold the label set of the series as well as its chunks within the block. The series are sorted lexicographically by their label sets. -Each series section is aligned to 16 bytes. The ID for a series is the `offset/16`. This serves as the series' ID in all subsequent references. Thereby, a sorted list of series IDs implies a lexicographically sorted list of series label sets. - -``` -┌───────────────────────────────────────┠-│ ┌───────────────────────────────────┠│ -│ │ series_1 │ │ -│ ├───────────────────────────────────┤ │ -│ │ . . . │ │ -│ ├───────────────────────────────────┤ │ -│ │ series_n │ │ -│ └───────────────────────────────────┘ │ -└───────────────────────────────────────┘ -``` - -Every series entry first holds its number of labels, followed by tuples of symbol table references that contain the label name and value. The label pairs are lexicographically sorted. -After the labels, the number of indexed chunks is encoded, followed by a sequence of metadata entries containing the chunks minimum (`mint`) and maximum (`maxt`) timestamp and a reference to its position in the chunk file. The `mint` is the time of the first sample and `maxt` is the time of the last sample in the chunk. Holding the time range data in the index allows dropping chunks irrelevant to queried time ranges without accessing them directly. - -`mint` of the first chunk is stored, it's `maxt` is stored as a delta and the `mint` and `maxt` are encoded as deltas to the previous time for subsequent chunks. Similarly, the reference of the first chunk is stored and the next ref is stored as a delta to the previous one. - -``` -┌──────────────────────────────────────────────────────────────────────────┠-│ len │ -├──────────────────────────────────────────────────────────────────────────┤ -│ ┌──────────────────────────────────────────────────────────────────────┠│ -│ │ labels count │ │ -│ ├──────────────────────────────────────────────────────────────────────┤ │ -│ │ ┌────────────────────────────────────────────┠│ │ -│ │ │ ref(l_i.name) │ │ │ -│ │ ├────────────────────────────────────────────┤ │ │ -│ │ │ ref(l_i.value) │ │ │ -│ │ └────────────────────────────────────────────┘ │ │ -│ │ ... │ │ -│ ├──────────────────────────────────────────────────────────────────────┤ │ -│ │ chunks count │ │ -│ ├──────────────────────────────────────────────────────────────────────┤ │ -│ │ ┌────────────────────────────────────────────┠│ │ -│ │ │ c_0.mint │ │ │ -│ │ ├────────────────────────────────────────────┤ │ │ -│ │ │ c_0.maxt - c_0.mint │ │ │ -│ │ ├────────────────────────────────────────────┤ │ │ -│ │ │ ref(c_0.data) │ │ │ -│ │ └────────────────────────────────────────────┘ │ │ -│ │ ┌────────────────────────────────────────────┠│ │ -│ │ │ c_i.mint - c_i-1.maxt │ │ │ -│ │ ├────────────────────────────────────────────┤ │ │ -│ │ │ c_i.maxt - c_i.mint │ │ │ -│ │ ├────────────────────────────────────────────┤ │ │ -│ │ │ ref(c_i.data) - ref(c_i-1.data) │ │ │ -│ │ └────────────────────────────────────────────┘ │ │ -│ │ ... │ │ -│ └──────────────────────────────────────────────────────────────────────┘ │ -├──────────────────────────────────────────────────────────────────────────┤ -│ CRC32 <4b> │ -└──────────────────────────────────────────────────────────────────────────┘ -``` - - - -### Label Index - -A label index section indexes the existing (combined) values for one or more label names. -The `#names` field determines the number of indexed label names, followed by the total number of entries in the `#entries` field. The body holds #entries / #names tuples of symbol table references, each tuple being of #names length. The value tuples are sorted in lexicographically increasing order. - -``` -┌───────────────┬────────────────┬────────────────┠-│ len <4b> │ #names <4b> │ #entries <4b> │ -├───────────────┴────────────────┴────────────────┤ -│ ┌─────────────────────────────────────────────┠│ -│ │ ref(value_0) <4b> │ │ -│ ├─────────────────────────────────────────────┤ │ -│ │ ... │ │ -│ ├─────────────────────────────────────────────┤ │ -│ │ ref(value_n) <4b> │ │ -│ └─────────────────────────────────────────────┘ │ -│ . . . │ -├─────────────────────────────────────────────────┤ -│ CRC32 <4b> │ -└─────────────────────────────────────────────────┘ -``` - -For instance, a single label name with 4 different values will be encoded as: - -``` -┌────┬───┬───┬──────────────┬──────────────┬──────────────┬──────────────┬───────┠-│ 24 │ 1 │ 4 │ ref(value_0) | ref(value_1) | ref(value_2) | ref(value_3) | CRC32 | -└────┴───┴───┴──────────────┴──────────────┴──────────────┴──────────────┴───────┘ -``` - -The sequence of label index sections is finalized by an [offset table](#offset-table) pointing to the beginning of each label index section for a given set of label names. - -### Postings - -Postings sections store monotonically increasing lists of series references that contain a given label pair associated with the list. - -``` -┌────────────────────┬────────────────────┠-│ len <4b> │ #entries <4b> │ -├────────────────────┴────────────────────┤ -│ ┌─────────────────────────────────────┠│ -│ │ ref(series_1) <4b> │ │ -│ ├─────────────────────────────────────┤ │ -│ │ ... │ │ -│ ├─────────────────────────────────────┤ │ -│ │ ref(series_n) <4b> │ │ -│ └─────────────────────────────────────┘ │ -├─────────────────────────────────────────┤ -│ CRC32 <4b> │ -└─────────────────────────────────────────┘ -``` - -The sequence of postings sections is finalized by an [offset table](#offset-table) pointing to the beginning of each postings section for a given set of label names. - -### Offset Table - -An offset table stores a sequence of entries that maps a list of strings to an offset. They are used to track label index and postings sections. They are read into memory when an index file is loaded. - -``` -┌─────────────────────┬──────────────────────┠-│ len <4b> │ #entries <4b> │ -├─────────────────────┴──────────────────────┤ -│ ┌────────────────────────────────────────┠│ -│ │ n = #strs │ │ -│ ├──────────────────────┬─────────────────┤ │ -│ │ len(str_1) │ str_1 │ │ -│ ├──────────────────────┴─────────────────┤ │ -│ │ ... │ │ -│ ├──────────────────────┬─────────────────┤ │ -│ │ len(str_n) │ str_n │ │ -│ ├──────────────────────┴─────────────────┤ │ -│ │ offset │ │ -│ └────────────────────────────────────────┘ │ -│ . . . │ -├────────────────────────────────────────────┤ -│ CRC32 <4b> │ -└────────────────────────────────────────────┘ -``` - - -### TOC - -The table of contents serves as an entry point to the entire index and points to various sections in the file. -If a reference is zero, it indicates the respective section does not exist and empty results should be returned upon lookup. - -``` -┌─────────────────────────────────────────┠-│ ref(symbols) <8b> │ -├─────────────────────────────────────────┤ -│ ref(series) <8b> │ -├─────────────────────────────────────────┤ -│ ref(label indices start) <8b> │ -├─────────────────────────────────────────┤ -│ ref(label indices table) <8b> │ -├─────────────────────────────────────────┤ -│ ref(postings start) <8b> │ -├─────────────────────────────────────────┤ -│ ref(postings table) <8b> │ -├─────────────────────────────────────────┤ -│ CRC32 <4b> │ -└─────────────────────────────────────────┘ -``` diff --git a/vendor/github.com/prometheus/tsdb/docs/format/tombstones.md b/vendor/github.com/prometheus/tsdb/docs/format/tombstones.md deleted file mode 100644 index 058f5f1e..00000000 --- a/vendor/github.com/prometheus/tsdb/docs/format/tombstones.md +++ /dev/null @@ -1,31 +0,0 @@ -# Tombstones Disk Format - -The following describes the format of a tombstones file, which is placed -at the top level directory of a block. - -The last 8 bytes specifies the offset to the start of Stones section. -The stones section is 0 padded to a multiple of 4 for fast scans. - -``` -┌────────────────────────────┬─────────────────────┠-│ magic(0x0130BA30) <4b> │ version(1) <1 byte> │ -├────────────────────────────┴─────────────────────┤ -│ ┌──────────────────────────────────────────────┠│ -│ │ Tombstone 1 │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ ... │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ Tombstone N │ │ -│ ├──────────────────────────────────────────────┤ │ -│ │ CRC<4b> │ │ -│ └──────────────────────────────────────────────┘ │ -└──────────────────────────────────────────────────┘ -``` - -# Tombstone - -``` -┌────────────────┬─────────────────┬────────────────┠-│ref │ mint │ maxt │ -└────────────────┴─────────────────┴────────────────┘ -``` diff --git a/vendor/github.com/prometheus/tsdb/docs/format/wal.md b/vendor/github.com/prometheus/tsdb/docs/format/wal.md deleted file mode 100644 index af2ec614..00000000 --- a/vendor/github.com/prometheus/tsdb/docs/format/wal.md +++ /dev/null @@ -1,88 +0,0 @@ -# WAL Disk Format - -The write ahead log operates in segments that are numbered and sequential, -e.g. `000000`, `000001`, `000002`, etc., and are limited to 128MB by default. -A segment is written to in pages of 32KB. Only the last page of the most recent segment -may be partial. A WAL record is an opaque byte slice that gets split up into sub-records -should it exceed the remaining space of the current page. Records are never split across -segment boundaries. If a single record exceeds the default segment size, a segment with -a larger size will be created. -The encoding of pages is largely borrowed from [LevelDB's/RocksDB's write ahead log.](https://github.com/facebook/rocksdb/wiki/Write-Ahead-Log-File-Format) - -Notable deviations are that the record fragment is encoded as: - -``` -┌───────────┬──────────┬────────────┬──────────────┠-│ type <1b> │ len <2b> │ CRC32 <4b> │ data │ -└───────────┴──────────┴────────────┴──────────────┘ -``` - -The type flag has the following states: - -* `0`: rest of page will be empty -* `1`: a full record encoded in a single fragment -* `2`: first fragment of a record -* `3`: middle fragment of a record -* `4`: final fragment of a record - -## Record encoding - -The records written to the write ahead log are encoded as follows: - -### Series records - -Series records encode the labels that identifies a series and its unique ID. - -``` -┌────────────────────────────────────────────┠-│ type = 1 <1b> │ -├────────────────────────────────────────────┤ -│ ┌─────────┬──────────────────────────────┠│ -│ │ id <8b> │ n = len(labels) │ │ -│ ├─────────┴────────────┬─────────────────┤ │ -│ │ len(str_1) │ str_1 │ │ -│ ├──────────────────────┴─────────────────┤ │ -│ │ ... │ │ -│ ├───────────────────────┬────────────────┤ │ -│ │ len(str_2n) │ str_2n │ │ -│ └───────────────────────┴────────────────┘ │ -│ . . . │ -└────────────────────────────────────────────┘ -``` - -### Sample records - -Sample records encode samples as a list of triples `(series_id, timestamp, value)`. -Series reference and timestamp are encoded as deltas w.r.t the first sample. -The first row stores the starting id and the starting timestamp. -The first sample record begins at the second row. - -``` -┌──────────────────────────────────────────────────────────────────┠-│ type = 2 <1b> │ -├──────────────────────────────────────────────────────────────────┤ -│ ┌────────────────────┬───────────────────────────┠│ -│ │ id <8b> │ timestamp <8b> │ │ -│ └────────────────────┴───────────────────────────┘ │ -│ ┌────────────────────┬───────────────────────────┬─────────────┠│ -│ │ id_delta │ timestamp_delta │ value <8b> │ │ -│ └────────────────────┴───────────────────────────┴─────────────┘ │ -│ . . . │ -└──────────────────────────────────────────────────────────────────┘ -``` - -### Tombstone records - -Tombstone records encode tombstones as a list of triples `(series_id, min_time, max_time)` -and specify an interval for which samples of a series got deleted. - -``` -┌─────────────────────────────────────────────────────┠-│ type = 3 <1b> │ -├─────────────────────────────────────────────────────┤ -│ ┌─────────┬───────────────────┬───────────────────┠│ -│ │ id <8b> │ min_time │ max_time │ │ -│ └─────────┴───────────────────┴───────────────────┘ │ -│ . . . │ -└─────────────────────────────────────────────────────┘ -``` diff --git a/vendor/github.com/prometheus/tsdb/encoding/encoding.go b/vendor/github.com/prometheus/tsdb/encoding/encoding.go deleted file mode 100644 index a732a604..00000000 --- a/vendor/github.com/prometheus/tsdb/encoding/encoding.go +++ /dev/null @@ -1,244 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package encoding - -import ( - "encoding/binary" - "hash" - "hash/crc32" - "unsafe" - - "github.com/pkg/errors" -) - -var ( - ErrInvalidSize = errors.New("invalid size") - ErrInvalidChecksum = errors.New("invalid checksum") -) - -// Encbuf is a helper type to populate a byte slice with various types. -type Encbuf struct { - B []byte - C [binary.MaxVarintLen64]byte -} - -func (e *Encbuf) Reset() { e.B = e.B[:0] } -func (e *Encbuf) Get() []byte { return e.B } -func (e *Encbuf) Len() int { return len(e.B) } - -func (e *Encbuf) PutString(s string) { e.B = append(e.B, s...) } -func (e *Encbuf) PutByte(c byte) { e.B = append(e.B, c) } - -func (e *Encbuf) PutBE32int(x int) { e.PutBE32(uint32(x)) } -func (e *Encbuf) PutUvarint32(x uint32) { e.PutUvarint64(uint64(x)) } -func (e *Encbuf) PutBE64int64(x int64) { e.PutBE64(uint64(x)) } -func (e *Encbuf) PutUvarint(x int) { e.PutUvarint64(uint64(x)) } - -func (e *Encbuf) PutBE32(x uint32) { - binary.BigEndian.PutUint32(e.C[:], x) - e.B = append(e.B, e.C[:4]...) -} - -func (e *Encbuf) PutBE64(x uint64) { - binary.BigEndian.PutUint64(e.C[:], x) - e.B = append(e.B, e.C[:8]...) -} - -func (e *Encbuf) PutUvarint64(x uint64) { - n := binary.PutUvarint(e.C[:], x) - e.B = append(e.B, e.C[:n]...) -} - -func (e *Encbuf) PutVarint64(x int64) { - n := binary.PutVarint(e.C[:], x) - e.B = append(e.B, e.C[:n]...) -} - -// PutUvarintStr writes a string to the buffer prefixed by its varint length (in bytes!). -func (e *Encbuf) PutUvarintStr(s string) { - b := *(*[]byte)(unsafe.Pointer(&s)) - e.PutUvarint(len(b)) - e.PutString(s) -} - -// PutHash appends a hash over the buffers current contents to the buffer. -func (e *Encbuf) PutHash(h hash.Hash) { - h.Reset() - _, err := h.Write(e.B) - if err != nil { - panic(err) // The CRC32 implementation does not error - } - e.B = h.Sum(e.B) -} - -// Decbuf provides safe methods to extract data from a byte slice. It does all -// necessary bounds checking and advancing of the byte slice. -// Several datums can be extracted without checking for errors. However, before using -// any datum, the err() method must be checked. -type Decbuf struct { - B []byte - E error -} - -// NewDecbufAt returns a new decoding buffer. It expects the first 4 bytes -// after offset to hold the big endian encoded content length, followed by the contents and the expected -// checksum. -func NewDecbufAt(bs ByteSlice, off int, castagnoliTable *crc32.Table) Decbuf { - if bs.Len() < off+4 { - return Decbuf{E: ErrInvalidSize} - } - b := bs.Range(off, off+4) - l := int(binary.BigEndian.Uint32(b)) - - if bs.Len() < off+4+l+4 { - return Decbuf{E: ErrInvalidSize} - } - - // Load bytes holding the contents plus a CRC32 checksum. - b = bs.Range(off+4, off+4+l+4) - dec := Decbuf{B: b[:len(b)-4]} - - if exp := binary.BigEndian.Uint32(b[len(b)-4:]); dec.Crc32(castagnoliTable) != exp { - return Decbuf{E: ErrInvalidChecksum} - } - return dec -} - -// NewDecbufUvarintAt returns a new decoding buffer. It expects the first bytes -// after offset to hold the uvarint-encoded buffers length, followed by the contents and the expected -// checksum. -func NewDecbufUvarintAt(bs ByteSlice, off int, castagnoliTable *crc32.Table) Decbuf { - // We never have to access this method at the far end of the byte slice. Thus just checking - // against the MaxVarintLen32 is sufficient. - if bs.Len() < off+binary.MaxVarintLen32 { - return Decbuf{E: ErrInvalidSize} - } - b := bs.Range(off, off+binary.MaxVarintLen32) - - l, n := binary.Uvarint(b) - if n <= 0 || n > binary.MaxVarintLen32 { - return Decbuf{E: errors.Errorf("invalid uvarint %d", n)} - } - - if bs.Len() < off+n+int(l)+4 { - return Decbuf{E: ErrInvalidSize} - } - - // Load bytes holding the contents plus a CRC32 checksum. - b = bs.Range(off+n, off+n+int(l)+4) - dec := Decbuf{B: b[:len(b)-4]} - - if dec.Crc32(castagnoliTable) != binary.BigEndian.Uint32(b[len(b)-4:]) { - return Decbuf{E: ErrInvalidChecksum} - } - return dec -} - -func (d *Decbuf) Uvarint() int { return int(d.Uvarint64()) } -func (d *Decbuf) Be32int() int { return int(d.Be32()) } -func (d *Decbuf) Be64int64() int64 { return int64(d.Be64()) } - -// Crc32 returns a CRC32 checksum over the remaining bytes. -func (d *Decbuf) Crc32(castagnoliTable *crc32.Table) uint32 { - return crc32.Checksum(d.B, castagnoliTable) -} - -func (d *Decbuf) UvarintStr() string { - l := d.Uvarint64() - if d.E != nil { - return "" - } - if len(d.B) < int(l) { - d.E = ErrInvalidSize - return "" - } - s := string(d.B[:l]) - d.B = d.B[l:] - return s -} - -func (d *Decbuf) Varint64() int64 { - if d.E != nil { - return 0 - } - x, n := binary.Varint(d.B) - if n < 1 { - d.E = ErrInvalidSize - return 0 - } - d.B = d.B[n:] - return x -} - -func (d *Decbuf) Uvarint64() uint64 { - if d.E != nil { - return 0 - } - x, n := binary.Uvarint(d.B) - if n < 1 { - d.E = ErrInvalidSize - return 0 - } - d.B = d.B[n:] - return x -} - -func (d *Decbuf) Be64() uint64 { - if d.E != nil { - return 0 - } - if len(d.B) < 8 { - d.E = ErrInvalidSize - return 0 - } - x := binary.BigEndian.Uint64(d.B) - d.B = d.B[8:] - return x -} - -func (d *Decbuf) Be32() uint32 { - if d.E != nil { - return 0 - } - if len(d.B) < 4 { - d.E = ErrInvalidSize - return 0 - } - x := binary.BigEndian.Uint32(d.B) - d.B = d.B[4:] - return x -} - -func (d *Decbuf) Byte() byte { - if d.E != nil { - return 0 - } - if len(d.B) < 1 { - d.E = ErrInvalidSize - return 0 - } - x := d.B[0] - d.B = d.B[1:] - return x -} - -func (d *Decbuf) Err() error { return d.E } -func (d *Decbuf) Len() int { return len(d.B) } -func (d *Decbuf) Get() []byte { return d.B } - -// ByteSlice abstracts a byte slice. -type ByteSlice interface { - Len() int - Range(start, end int) []byte -} diff --git a/vendor/github.com/prometheus/tsdb/errors/errors.go b/vendor/github.com/prometheus/tsdb/errors/errors.go deleted file mode 100644 index 69d36624..00000000 --- a/vendor/github.com/prometheus/tsdb/errors/errors.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2016 The etcd Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package errors - -import ( - "bytes" - "fmt" -) - -// The MultiError type implements the error interface, and contains the -// Errors used to construct it. -type MultiError []error - -// Returns a concatenated string of the contained errors -func (es MultiError) Error() string { - var buf bytes.Buffer - - if len(es) > 1 { - fmt.Fprintf(&buf, "%d errors: ", len(es)) - } - - for i, err := range es { - if i != 0 { - buf.WriteString("; ") - } - buf.WriteString(err.Error()) - } - - return buf.String() -} - -// Add adds the error to the error list if it is not nil. -func (es *MultiError) Add(err error) { - if err == nil { - return - } - if merr, ok := err.(MultiError); ok { - *es = append(*es, merr...) - } else { - *es = append(*es, err) - } -} - -// Err returns the error list as an error or nil if it is empty. -func (es MultiError) Err() error { - if len(es) == 0 { - return nil - } - return es -} diff --git a/vendor/github.com/prometheus/tsdb/fileutil/flock_test.go b/vendor/github.com/prometheus/tsdb/fileutil/flock_test.go deleted file mode 100644 index d30d20b2..00000000 --- a/vendor/github.com/prometheus/tsdb/fileutil/flock_test.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2016 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package fileutil - -import ( - "os" - "path/filepath" - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -func TestLocking(t *testing.T) { - dir := testutil.NewTemporaryDirectory("test_flock", t) - defer dir.Close() - - fileName := filepath.Join(dir.Path(), "LOCK") - - if _, err := os.Stat(fileName); err == nil { - t.Fatalf("File %q unexpectedly exists.", fileName) - } - - lock, existed, err := Flock(fileName) - if err != nil { - t.Fatalf("Error locking file %q: %s", fileName, err) - } - if existed { - t.Errorf("File %q reported as existing during locking.", fileName) - } - - // File must now exist. - if _, err = os.Stat(fileName); err != nil { - t.Errorf("Could not stat file %q expected to exist: %s", fileName, err) - } - - // Try to lock again. - lockedAgain, existed, err := Flock(fileName) - if err == nil { - t.Fatalf("File %q locked twice.", fileName) - } - if lockedAgain != nil { - t.Error("Unsuccessful locking did not return nil.") - } - if !existed { - t.Errorf("Existing file %q not recognized.", fileName) - } - - if err := lock.Release(); err != nil { - t.Errorf("Error releasing lock for file %q: %s", fileName, err) - } - - // File must still exist. - if _, err = os.Stat(fileName); err != nil { - t.Errorf("Could not stat file %q expected to exist: %s", fileName, err) - } - - // Lock existing file. - lock, existed, err = Flock(fileName) - if err != nil { - t.Fatalf("Error locking file %q: %s", fileName, err) - } - if !existed { - t.Errorf("Existing file %q not recognized.", fileName) - } - - if err := lock.Release(); err != nil { - t.Errorf("Error releasing lock for file %q: %s", fileName, err) - } -} diff --git a/vendor/github.com/prometheus/tsdb/go.mod b/vendor/github.com/prometheus/tsdb/go.mod deleted file mode 100644 index df0015df..00000000 --- a/vendor/github.com/prometheus/tsdb/go.mod +++ /dev/null @@ -1,28 +0,0 @@ -module github.com/prometheus/tsdb - -require ( - github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect - github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect - github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 // indirect - github.com/cespare/xxhash v1.1.0 - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 - github.com/go-kit/kit v0.8.0 - github.com/go-logfmt/logfmt v0.3.0 // indirect - github.com/go-stack/stack v1.8.0 // indirect - github.com/gogo/protobuf v1.1.1 // indirect - github.com/golang/protobuf v1.2.0 // indirect - github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/oklog/ulid v1.3.1 - github.com/pkg/errors v0.8.0 - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v0.9.1 - github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 - github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce // indirect - github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d // indirect - github.com/stretchr/testify v1.2.2 // indirect - golang.org/x/sync v0.0.0-20181108010431-42b317875d0f - golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8 - gopkg.in/alecthomas/kingpin.v2 v2.2.6 -) diff --git a/vendor/github.com/prometheus/tsdb/go.sum b/vendor/github.com/prometheus/tsdb/go.sum deleted file mode 100644 index 266fbe96..00000000 --- a/vendor/github.com/prometheus/tsdb/go.sum +++ /dev/null @@ -1,52 +0,0 @@ -github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0 h1:8HUsc87TaSWLKwrnumgC8/YconD2fJQsRJAsWaPg2ic= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1 h1:K47Rk0v/fkEfwfQet2KWhscE0cJzjgCCDBG2KHZoVno= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce h1:X0jFYGnHemYDIW6jlc+fSI8f9Cg+jqCnClYP2WgZT/A= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d h1:GoAlyOgbOEIFdaDqxJVlbOQ1DtGmZWs/Qau0hIlk+WQ= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8 h1:YoY1wS6JYVRpIfFngRf2HHo9R9dAne3xbkGOQ5rJXjU= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= diff --git a/vendor/github.com/prometheus/tsdb/goversion/goversio_test.go b/vendor/github.com/prometheus/tsdb/goversion/goversio_test.go deleted file mode 100644 index 9ed3c116..00000000 --- a/vendor/github.com/prometheus/tsdb/goversion/goversio_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package goversion_test - -import ( - "testing" - - _ "github.com/prometheus/tsdb/goversion" -) - -// This test is is intentionally blank and exists only so `go test` believes -// there is something to test. -// -// The blank import above is actually what invokes the test of this package. If -// the import succeeds (the code compiles), the test passed. -func Test(t *testing.T) {} diff --git a/vendor/github.com/prometheus/tsdb/goversion/goversion.go b/vendor/github.com/prometheus/tsdb/goversion/goversion.go deleted file mode 100644 index 8b194d4a..00000000 --- a/vendor/github.com/prometheus/tsdb/goversion/goversion.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// +build go1.12 - -// Package goversion enforces the go version suported by the tsdb module. -package goversion - -const _SoftwareRequiresGOVERSION1_12 = uint8(0) diff --git a/vendor/github.com/prometheus/tsdb/goversion/init.go b/vendor/github.com/prometheus/tsdb/goversion/init.go deleted file mode 100644 index dd15e1f7..00000000 --- a/vendor/github.com/prometheus/tsdb/goversion/init.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package goversion - -// This will fail to compile if the Go runtime version isn't >= 1.12. -var _ = _SoftwareRequiresGOVERSION1_12 diff --git a/vendor/github.com/prometheus/tsdb/head.go b/vendor/github.com/prometheus/tsdb/head.go deleted file mode 100644 index cfb7cb89..00000000 --- a/vendor/github.com/prometheus/tsdb/head.go +++ /dev/null @@ -1,1762 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "math" - "runtime" - "sort" - "strings" - "sync" - "sync/atomic" - "time" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/encoding" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/wal" -) - -var ( - // ErrNotFound is returned if a looked up resource was not found. - ErrNotFound = errors.Errorf("not found") - - // ErrOutOfOrderSample is returned if an appended sample has a - // timestamp smaller than the most recent sample. - ErrOutOfOrderSample = errors.New("out of order sample") - - // ErrAmendSample is returned if an appended sample has the same timestamp - // as the most recent sample but a different value. - ErrAmendSample = errors.New("amending sample") - - // ErrOutOfBounds is returned if an appended sample is out of the - // writable time range. - ErrOutOfBounds = errors.New("out of bounds") - - // emptyTombstoneReader is a no-op Tombstone Reader. - // This is used by head to satisfy the Tombstones() function call. - emptyTombstoneReader = newMemTombstones() -) - -// Head handles reads and writes of time series data within a time window. -type Head struct { - chunkRange int64 - metrics *headMetrics - wal *wal.WAL - logger log.Logger - appendPool sync.Pool - bytesPool sync.Pool - - minTime, maxTime int64 // Current min and max of the samples included in the head. - minValidTime int64 // Mint allowed to be added to the head. It shouldn't be lower than the maxt of the last persisted block. - lastSeriesID uint64 - - // All series addressable by their ID or hash. - series *stripeSeries - - symMtx sync.RWMutex - symbols map[string]struct{} - values map[string]stringset // label names to possible values - - deletedMtx sync.Mutex - deleted map[uint64]int // Deleted series, and what WAL segment they must be kept until. - - postings *index.MemPostings // postings lists for terms -} - -type headMetrics struct { - activeAppenders prometheus.Gauge - series prometheus.Gauge - seriesCreated prometheus.Counter - seriesRemoved prometheus.Counter - seriesNotFound prometheus.Counter - chunks prometheus.Gauge - chunksCreated prometheus.Counter - chunksRemoved prometheus.Counter - gcDuration prometheus.Summary - minTime prometheus.GaugeFunc - maxTime prometheus.GaugeFunc - samplesAppended prometheus.Counter - walTruncateDuration prometheus.Summary - walCorruptionsTotal prometheus.Counter - headTruncateFail prometheus.Counter - headTruncateTotal prometheus.Counter - checkpointDeleteFail prometheus.Counter - checkpointDeleteTotal prometheus.Counter - checkpointCreationFail prometheus.Counter - checkpointCreationTotal prometheus.Counter -} - -func newHeadMetrics(h *Head, r prometheus.Registerer) *headMetrics { - m := &headMetrics{} - - m.activeAppenders = prometheus.NewGauge(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_head_active_appenders", - Help: "Number of currently active appender transactions", - }) - m.series = prometheus.NewGauge(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_head_series", - Help: "Total number of series in the head block.", - }) - m.seriesCreated = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_series_created_total", - Help: "Total number of series created in the head", - }) - m.seriesRemoved = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_series_removed_total", - Help: "Total number of series removed in the head", - }) - m.seriesNotFound = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_series_not_found_total", - Help: "Total number of requests for series that were not found.", - }) - m.chunks = prometheus.NewGauge(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_head_chunks", - Help: "Total number of chunks in the head block.", - }) - m.chunksCreated = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_chunks_created_total", - Help: "Total number of chunks created in the head", - }) - m.chunksRemoved = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_chunks_removed_total", - Help: "Total number of chunks removed in the head", - }) - m.gcDuration = prometheus.NewSummary(prometheus.SummaryOpts{ - Name: "prometheus_tsdb_head_gc_duration_seconds", - Help: "Runtime of garbage collection in the head block.", - }) - m.maxTime = prometheus.NewGaugeFunc(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_head_max_time", - Help: "Maximum timestamp of the head block. The unit is decided by the library consumer.", - }, func() float64 { - return float64(h.MaxTime()) - }) - m.minTime = prometheus.NewGaugeFunc(prometheus.GaugeOpts{ - Name: "prometheus_tsdb_head_min_time", - Help: "Minimum time bound of the head block. The unit is decided by the library consumer.", - }, func() float64 { - return float64(h.MinTime()) - }) - m.walTruncateDuration = prometheus.NewSummary(prometheus.SummaryOpts{ - Name: "prometheus_tsdb_wal_truncate_duration_seconds", - Help: "Duration of WAL truncation.", - }) - m.walCorruptionsTotal = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_corruptions_total", - Help: "Total number of WAL corruptions.", - }) - m.samplesAppended = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_samples_appended_total", - Help: "Total number of appended samples.", - }) - m.headTruncateFail = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_truncations_failed_total", - Help: "Total number of head truncations that failed.", - }) - m.headTruncateTotal = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_head_truncations_total", - Help: "Total number of head truncations attempted.", - }) - m.checkpointDeleteFail = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_checkpoint_deletions_failed_total", - Help: "Total number of checkpoint deletions that failed.", - }) - m.checkpointDeleteTotal = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_checkpoint_deletions_total", - Help: "Total number of checkpoint deletions attempted.", - }) - m.checkpointCreationFail = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_checkpoint_creations_failed_total", - Help: "Total number of checkpoint creations that failed.", - }) - m.checkpointCreationTotal = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_checkpoint_creations_total", - Help: "Total number of checkpoint creations attempted.", - }) - - if r != nil { - r.MustRegister( - m.activeAppenders, - m.chunks, - m.chunksCreated, - m.chunksRemoved, - m.series, - m.seriesCreated, - m.seriesRemoved, - m.seriesNotFound, - m.minTime, - m.maxTime, - m.gcDuration, - m.walTruncateDuration, - m.walCorruptionsTotal, - m.samplesAppended, - m.headTruncateFail, - m.headTruncateTotal, - m.checkpointDeleteFail, - m.checkpointDeleteTotal, - m.checkpointCreationFail, - m.checkpointCreationTotal, - ) - } - return m -} - -// NewHead opens the head block in dir. -func NewHead(r prometheus.Registerer, l log.Logger, wal *wal.WAL, chunkRange int64) (*Head, error) { - if l == nil { - l = log.NewNopLogger() - } - if chunkRange < 1 { - return nil, errors.Errorf("invalid chunk range %d", chunkRange) - } - h := &Head{ - wal: wal, - logger: l, - chunkRange: chunkRange, - minTime: math.MaxInt64, - maxTime: math.MinInt64, - series: newStripeSeries(), - values: map[string]stringset{}, - symbols: map[string]struct{}{}, - postings: index.NewUnorderedMemPostings(), - deleted: map[uint64]int{}, - } - h.metrics = newHeadMetrics(h, r) - - return h, nil -} - -// processWALSamples adds a partition of samples it receives to the head and passes -// them on to other workers. -// Samples before the mint timestamp are discarded. -func (h *Head) processWALSamples( - minValidTime int64, - input <-chan []RefSample, output chan<- []RefSample, -) (unknownRefs uint64) { - defer close(output) - - // Mitigate lock contention in getByID. - refSeries := map[uint64]*memSeries{} - - mint, maxt := int64(math.MaxInt64), int64(math.MinInt64) - - for samples := range input { - for _, s := range samples { - if s.T < minValidTime { - continue - } - ms := refSeries[s.Ref] - if ms == nil { - ms = h.series.getByID(s.Ref) - if ms == nil { - unknownRefs++ - continue - } - refSeries[s.Ref] = ms - } - _, chunkCreated := ms.append(s.T, s.V) - if chunkCreated { - h.metrics.chunksCreated.Inc() - h.metrics.chunks.Inc() - } - if s.T > maxt { - maxt = s.T - } - if s.T < mint { - mint = s.T - } - } - output <- samples - } - h.updateMinMaxTime(mint, maxt) - - return unknownRefs -} - -func (h *Head) updateMinMaxTime(mint, maxt int64) { - for { - lt := h.MinTime() - if mint >= lt { - break - } - if atomic.CompareAndSwapInt64(&h.minTime, lt, mint) { - break - } - } - for { - ht := h.MaxTime() - if maxt <= ht { - break - } - if atomic.CompareAndSwapInt64(&h.maxTime, ht, maxt) { - break - } - } -} - -func (h *Head) loadWAL(r *wal.Reader) error { - // Track number of samples that referenced a series we don't know about - // for error reporting. - var unknownRefs uint64 - - // Start workers that each process samples for a partition of the series ID space. - // They are connected through a ring of channels which ensures that all sample batches - // read from the WAL are processed in order. - var ( - wg sync.WaitGroup - n = runtime.GOMAXPROCS(0) - inputs = make([]chan []RefSample, n) - outputs = make([]chan []RefSample, n) - ) - wg.Add(n) - - for i := 0; i < n; i++ { - outputs[i] = make(chan []RefSample, 300) - inputs[i] = make(chan []RefSample, 300) - - go func(input <-chan []RefSample, output chan<- []RefSample) { - unknown := h.processWALSamples(h.minValidTime, input, output) - atomic.AddUint64(&unknownRefs, unknown) - wg.Done() - }(inputs[i], outputs[i]) - } - - var ( - dec RecordDecoder - series []RefSeries - samples []RefSample - tstones []Stone - allStones = newMemTombstones() - err error - ) - defer allStones.Close() - for r.Next() { - series, samples, tstones = series[:0], samples[:0], tstones[:0] - rec := r.Record() - - switch dec.Type(rec) { - case RecordSeries: - series, err = dec.Series(rec, series) - if err != nil { - return &wal.CorruptionErr{ - Err: errors.Wrap(err, "decode series"), - Segment: r.Segment(), - Offset: r.Offset(), - } - } - for _, s := range series { - h.getOrCreateWithID(s.Ref, s.Labels.Hash(), s.Labels) - - if h.lastSeriesID < s.Ref { - h.lastSeriesID = s.Ref - } - } - case RecordSamples: - samples, err = dec.Samples(rec, samples) - s := samples - if err != nil { - return &wal.CorruptionErr{ - Err: errors.Wrap(err, "decode samples"), - Segment: r.Segment(), - Offset: r.Offset(), - } - } - // We split up the samples into chunks of 5000 samples or less. - // With O(300 * #cores) in-flight sample batches, large scrapes could otherwise - // cause thousands of very large in flight buffers occupying large amounts - // of unused memory. - for len(samples) > 0 { - m := 5000 - if len(samples) < m { - m = len(samples) - } - shards := make([][]RefSample, n) - for i := 0; i < n; i++ { - var buf []RefSample - select { - case buf = <-outputs[i]: - default: - } - shards[i] = buf[:0] - } - for _, sam := range samples[:m] { - mod := sam.Ref % uint64(n) - shards[mod] = append(shards[mod], sam) - } - for i := 0; i < n; i++ { - inputs[i] <- shards[i] - } - samples = samples[m:] - } - samples = s // Keep whole slice for reuse. - case RecordTombstones: - tstones, err = dec.Tombstones(rec, tstones) - if err != nil { - return &wal.CorruptionErr{ - Err: errors.Wrap(err, "decode tombstones"), - Segment: r.Segment(), - Offset: r.Offset(), - } - } - for _, s := range tstones { - for _, itv := range s.intervals { - if itv.Maxt < h.minValidTime { - continue - } - allStones.addInterval(s.ref, itv) - } - } - default: - return &wal.CorruptionErr{ - Err: errors.Errorf("invalid record type %v", dec.Type(rec)), - Segment: r.Segment(), - Offset: r.Offset(), - } - } - } - if r.Err() != nil { - return errors.Wrap(r.Err(), "read records") - } - - // Signal termination to each worker and wait for it to close its output channel. - for i := 0; i < n; i++ { - close(inputs[i]) - for range outputs[i] { - } - } - wg.Wait() - - if err := allStones.Iter(func(ref uint64, dranges Intervals) error { - return h.chunkRewrite(ref, dranges) - }); err != nil { - return errors.Wrap(r.Err(), "deleting samples from tombstones") - } - - if unknownRefs > 0 { - level.Warn(h.logger).Log("msg", "unknown series references", "count", unknownRefs) - } - return nil -} - -// Init loads data from the write ahead log and prepares the head for writes. -// It should be called before using an appender so that -// limits the ingested samples to the head min valid time. -func (h *Head) Init(minValidTime int64) error { - h.minValidTime = minValidTime - defer h.postings.EnsureOrder() - defer h.gc() // After loading the wal remove the obsolete data from the head. - - if h.wal == nil { - return nil - } - - // Backfill the checkpoint first if it exists. - dir, startFrom, err := LastCheckpoint(h.wal.Dir()) - if err != nil && err != ErrNotFound { - return errors.Wrap(err, "find last checkpoint") - } - if err == nil { - sr, err := wal.NewSegmentsReader(dir) - if err != nil { - return errors.Wrap(err, "open checkpoint") - } - defer sr.Close() - - // A corrupted checkpoint is a hard error for now and requires user - // intervention. There's likely little data that can be recovered anyway. - if err := h.loadWAL(wal.NewReader(sr)); err != nil { - return errors.Wrap(err, "backfill checkpoint") - } - startFrom++ - } - - // Backfill segments from the last checkpoint onwards - sr, err := wal.NewSegmentsRangeReader(wal.SegmentRange{Dir: h.wal.Dir(), First: startFrom, Last: -1}) - if err != nil { - return errors.Wrap(err, "open WAL segments") - } - - err = h.loadWAL(wal.NewReader(sr)) - sr.Close() // Close the reader so that if there was an error the repair can remove the corrupted file under Windows. - if err == nil { - return nil - } - level.Warn(h.logger).Log("msg", "encountered WAL error, attempting repair", "err", err) - h.metrics.walCorruptionsTotal.Inc() - if err := h.wal.Repair(err); err != nil { - return errors.Wrap(err, "repair corrupted WAL") - } - return nil -} - -// Truncate removes old data before mint from the head. -func (h *Head) Truncate(mint int64) (err error) { - defer func() { - if err != nil { - h.metrics.headTruncateFail.Inc() - } - }() - initialize := h.MinTime() == math.MaxInt64 - - if h.MinTime() >= mint && !initialize { - return nil - } - atomic.StoreInt64(&h.minTime, mint) - atomic.StoreInt64(&h.minValidTime, mint) - - // Ensure that max time is at least as high as min time. - for h.MaxTime() < mint { - atomic.CompareAndSwapInt64(&h.maxTime, h.MaxTime(), mint) - } - - // This was an initial call to Truncate after loading blocks on startup. - // We haven't read back the WAL yet, so do not attempt to truncate it. - if initialize { - return nil - } - - h.metrics.headTruncateTotal.Inc() - start := time.Now() - - h.gc() - level.Info(h.logger).Log("msg", "head GC completed", "duration", time.Since(start)) - h.metrics.gcDuration.Observe(time.Since(start).Seconds()) - - if h.wal == nil { - return nil - } - start = time.Now() - - first, last, err := h.wal.Segments() - if err != nil { - return errors.Wrap(err, "get segment range") - } - last-- // Never consider last segment for checkpoint. - if last < 0 { - return nil // no segments yet. - } - // The lower third of segments should contain mostly obsolete samples. - // If we have less than three segments, it's not worth checkpointing yet. - last = first + (last-first)/3 - if last <= first { - return nil - } - - keep := func(id uint64) bool { - if h.series.getByID(id) != nil { - return true - } - h.deletedMtx.Lock() - _, ok := h.deleted[id] - h.deletedMtx.Unlock() - return ok - } - h.metrics.checkpointCreationTotal.Inc() - if _, err = Checkpoint(h.wal, first, last, keep, mint); err != nil { - h.metrics.checkpointCreationFail.Inc() - return errors.Wrap(err, "create checkpoint") - } - if err := h.wal.Truncate(last + 1); err != nil { - // If truncating fails, we'll just try again at the next checkpoint. - // Leftover segments will just be ignored in the future if there's a checkpoint - // that supersedes them. - level.Error(h.logger).Log("msg", "truncating segments failed", "err", err) - } - - // The checkpoint is written and segments before it is truncated, so we no - // longer need to track deleted series that are before it. - h.deletedMtx.Lock() - for ref, segment := range h.deleted { - if segment < first { - delete(h.deleted, ref) - } - } - h.deletedMtx.Unlock() - - h.metrics.checkpointDeleteTotal.Inc() - if err := DeleteCheckpoints(h.wal.Dir(), last); err != nil { - // Leftover old checkpoints do not cause problems down the line beyond - // occupying disk space. - // They will just be ignored since a higher checkpoint exists. - level.Error(h.logger).Log("msg", "delete old checkpoints", "err", err) - h.metrics.checkpointDeleteFail.Inc() - } - h.metrics.walTruncateDuration.Observe(time.Since(start).Seconds()) - - level.Info(h.logger).Log("msg", "WAL checkpoint complete", - "first", first, "last", last, "duration", time.Since(start)) - - return nil -} - -// initTime initializes a head with the first timestamp. This only needs to be called -// for a completely fresh head with an empty WAL. -// Returns true if the initialization took an effect. -func (h *Head) initTime(t int64) (initialized bool) { - if !atomic.CompareAndSwapInt64(&h.minTime, math.MaxInt64, t) { - return false - } - // Ensure that max time is initialized to at least the min time we just set. - // Concurrent appenders may already have set it to a higher value. - atomic.CompareAndSwapInt64(&h.maxTime, math.MinInt64, t) - - return true -} - -type rangeHead struct { - head *Head - mint, maxt int64 -} - -func (h *rangeHead) Index() (IndexReader, error) { - return h.head.indexRange(h.mint, h.maxt), nil -} - -func (h *rangeHead) Chunks() (ChunkReader, error) { - return h.head.chunksRange(h.mint, h.maxt), nil -} - -func (h *rangeHead) Tombstones() (TombstoneReader, error) { - return emptyTombstoneReader, nil -} - -func (h *rangeHead) MinTime() int64 { - return h.mint -} - -func (h *rangeHead) MaxTime() int64 { - return h.maxt -} - -// initAppender is a helper to initialize the time bounds of the head -// upon the first sample it receives. -type initAppender struct { - app Appender - head *Head -} - -func (a *initAppender) Add(lset labels.Labels, t int64, v float64) (uint64, error) { - if a.app != nil { - return a.app.Add(lset, t, v) - } - a.head.initTime(t) - a.app = a.head.appender() - - return a.app.Add(lset, t, v) -} - -func (a *initAppender) AddFast(ref uint64, t int64, v float64) error { - if a.app == nil { - return ErrNotFound - } - return a.app.AddFast(ref, t, v) -} - -func (a *initAppender) Commit() error { - if a.app == nil { - return nil - } - return a.app.Commit() -} - -func (a *initAppender) Rollback() error { - if a.app == nil { - return nil - } - return a.app.Rollback() -} - -// Appender returns a new Appender on the database. -func (h *Head) Appender() Appender { - h.metrics.activeAppenders.Inc() - - // The head cache might not have a starting point yet. The init appender - // picks up the first appended timestamp as the base. - if h.MinTime() == math.MaxInt64 { - return &initAppender{head: h} - } - return h.appender() -} - -func (h *Head) appender() *headAppender { - return &headAppender{ - head: h, - // Set the minimum valid time to whichever is greater the head min valid time or the compaciton window. - // This ensures that no samples will be added within the compaction window to avoid races. - minValidTime: max(atomic.LoadInt64(&h.minValidTime), h.MaxTime()-h.chunkRange/2), - mint: math.MaxInt64, - maxt: math.MinInt64, - samples: h.getAppendBuffer(), - } -} - -func max(a, b int64) int64 { - if a > b { - return a - } - return b -} - -func (h *Head) getAppendBuffer() []RefSample { - b := h.appendPool.Get() - if b == nil { - return make([]RefSample, 0, 512) - } - return b.([]RefSample) -} - -func (h *Head) putAppendBuffer(b []RefSample) { - //lint:ignore SA6002 safe to ignore and actually fixing it has some performance penalty. - h.appendPool.Put(b[:0]) -} - -func (h *Head) getBytesBuffer() []byte { - b := h.bytesPool.Get() - if b == nil { - return make([]byte, 0, 1024) - } - return b.([]byte) -} - -func (h *Head) putBytesBuffer(b []byte) { - //lint:ignore SA6002 safe to ignore and actually fixing it has some performance penalty. - h.bytesPool.Put(b[:0]) -} - -type headAppender struct { - head *Head - minValidTime int64 // No samples below this timestamp are allowed. - mint, maxt int64 - - series []RefSeries - samples []RefSample -} - -func (a *headAppender) Add(lset labels.Labels, t int64, v float64) (uint64, error) { - if t < a.minValidTime { - return 0, ErrOutOfBounds - } - - s, created := a.head.getOrCreate(lset.Hash(), lset) - if created { - a.series = append(a.series, RefSeries{ - Ref: s.ref, - Labels: lset, - }) - } - return s.ref, a.AddFast(s.ref, t, v) -} - -func (a *headAppender) AddFast(ref uint64, t int64, v float64) error { - if t < a.minValidTime { - return ErrOutOfBounds - } - - s := a.head.series.getByID(ref) - if s == nil { - return errors.Wrap(ErrNotFound, "unknown series") - } - s.Lock() - if err := s.appendable(t, v); err != nil { - s.Unlock() - return err - } - s.pendingCommit = true - s.Unlock() - - if t < a.mint { - a.mint = t - } - if t > a.maxt { - a.maxt = t - } - - a.samples = append(a.samples, RefSample{ - Ref: ref, - T: t, - V: v, - series: s, - }) - return nil -} - -func (a *headAppender) log() error { - if a.head.wal == nil { - return nil - } - - buf := a.head.getBytesBuffer() - defer func() { a.head.putBytesBuffer(buf) }() - - var rec []byte - var enc RecordEncoder - - if len(a.series) > 0 { - rec = enc.Series(a.series, buf) - buf = rec[:0] - - if err := a.head.wal.Log(rec); err != nil { - return errors.Wrap(err, "log series") - } - } - if len(a.samples) > 0 { - rec = enc.Samples(a.samples, buf) - buf = rec[:0] - - if err := a.head.wal.Log(rec); err != nil { - return errors.Wrap(err, "log samples") - } - } - return nil -} - -func (a *headAppender) Commit() error { - defer a.head.metrics.activeAppenders.Dec() - defer a.head.putAppendBuffer(a.samples) - - if err := a.log(); err != nil { - return errors.Wrap(err, "write to WAL") - } - - total := len(a.samples) - - for _, s := range a.samples { - s.series.Lock() - ok, chunkCreated := s.series.append(s.T, s.V) - s.series.pendingCommit = false - s.series.Unlock() - - if !ok { - total-- - } - if chunkCreated { - a.head.metrics.chunks.Inc() - a.head.metrics.chunksCreated.Inc() - } - } - - a.head.metrics.samplesAppended.Add(float64(total)) - a.head.updateMinMaxTime(a.mint, a.maxt) - - return nil -} - -func (a *headAppender) Rollback() error { - a.head.metrics.activeAppenders.Dec() - for _, s := range a.samples { - s.series.Lock() - s.series.pendingCommit = false - s.series.Unlock() - } - a.head.putAppendBuffer(a.samples) - - // Series are created in the head memory regardless of rollback. Thus we have - // to log them to the WAL in any case. - a.samples = nil - return a.log() -} - -// Delete all samples in the range of [mint, maxt] for series that satisfy the given -// label matchers. -func (h *Head) Delete(mint, maxt int64, ms ...labels.Matcher) error { - // Do not delete anything beyond the currently valid range. - mint, maxt = clampInterval(mint, maxt, h.MinTime(), h.MaxTime()) - - ir := h.indexRange(mint, maxt) - - p, err := PostingsForMatchers(ir, ms...) - if err != nil { - return errors.Wrap(err, "select series") - } - - var stones []Stone - dirty := false - for p.Next() { - series := h.series.getByID(p.At()) - - t0, t1 := series.minTime(), series.maxTime() - if t0 == math.MinInt64 || t1 == math.MinInt64 { - continue - } - // Delete only until the current values and not beyond. - t0, t1 = clampInterval(mint, maxt, t0, t1) - if h.wal != nil { - stones = append(stones, Stone{p.At(), Intervals{{t0, t1}}}) - } - if err := h.chunkRewrite(p.At(), Intervals{{t0, t1}}); err != nil { - return errors.Wrap(err, "delete samples") - } - dirty = true - } - if p.Err() != nil { - return p.Err() - } - var enc RecordEncoder - if h.wal != nil { - // Although we don't store the stones in the head - // we need to write them to the WAL to mark these as deleted - // after a restart while loading the WAL. - if err := h.wal.Log(enc.Tombstones(stones, nil)); err != nil { - return err - } - } - if dirty { - h.gc() - } - - return nil -} - -// chunkRewrite re-writes the chunks which overlaps with deleted ranges -// and removes the samples in the deleted ranges. -// Chunks is deleted if no samples are left at the end. -func (h *Head) chunkRewrite(ref uint64, dranges Intervals) (err error) { - if len(dranges) == 0 { - return nil - } - - ms := h.series.getByID(ref) - ms.Lock() - defer ms.Unlock() - if len(ms.chunks) == 0 { - return nil - } - - metas := ms.chunksMetas() - mint, maxt := metas[0].MinTime, metas[len(metas)-1].MaxTime - it := newChunkSeriesIterator(metas, dranges, mint, maxt) - - ms.reset() - for it.Next() { - t, v := it.At() - ok, _ := ms.append(t, v) - if !ok { - level.Warn(h.logger).Log("msg", "failed to add sample during delete") - } - } - - return nil -} - -// gc removes data before the minimum timestamp from the head. -func (h *Head) gc() { - // Only data strictly lower than this timestamp must be deleted. - mint := h.MinTime() - - // Drop old chunks and remember series IDs and hashes if they can be - // deleted entirely. - deleted, chunksRemoved := h.series.gc(mint) - seriesRemoved := len(deleted) - - h.metrics.seriesRemoved.Add(float64(seriesRemoved)) - h.metrics.series.Sub(float64(seriesRemoved)) - h.metrics.chunksRemoved.Add(float64(chunksRemoved)) - h.metrics.chunks.Sub(float64(chunksRemoved)) - - // Remove deleted series IDs from the postings lists. - h.postings.Delete(deleted) - - if h.wal != nil { - _, last, _ := h.wal.Segments() - h.deletedMtx.Lock() - // Keep series records until we're past segment 'last' - // because the WAL will still have samples records with - // this ref ID. If we didn't keep these series records then - // on start up when we replay the WAL, or any other code - // that reads the WAL, wouldn't be able to use those - // samples since we would have no labels for that ref ID. - for ref := range deleted { - h.deleted[ref] = last - } - h.deletedMtx.Unlock() - } - - // Rebuild symbols and label value indices from what is left in the postings terms. - symbols := make(map[string]struct{}, len(h.symbols)) - values := make(map[string]stringset, len(h.values)) - - if err := h.postings.Iter(func(t labels.Label, _ index.Postings) error { - symbols[t.Name] = struct{}{} - symbols[t.Value] = struct{}{} - - ss, ok := values[t.Name] - if !ok { - ss = stringset{} - values[t.Name] = ss - } - ss.set(t.Value) - return nil - }); err != nil { - // This should never happen, as the iteration function only returns nil. - panic(err) - } - - h.symMtx.Lock() - - h.symbols = symbols - h.values = values - - h.symMtx.Unlock() -} - -// Tombstones returns a new reader over the head's tombstones -func (h *Head) Tombstones() (TombstoneReader, error) { - return emptyTombstoneReader, nil -} - -// Index returns an IndexReader against the block. -func (h *Head) Index() (IndexReader, error) { - return h.indexRange(math.MinInt64, math.MaxInt64), nil -} - -func (h *Head) indexRange(mint, maxt int64) *headIndexReader { - if hmin := h.MinTime(); hmin > mint { - mint = hmin - } - return &headIndexReader{head: h, mint: mint, maxt: maxt} -} - -// Chunks returns a ChunkReader against the block. -func (h *Head) Chunks() (ChunkReader, error) { - return h.chunksRange(math.MinInt64, math.MaxInt64), nil -} - -func (h *Head) chunksRange(mint, maxt int64) *headChunkReader { - if hmin := h.MinTime(); hmin > mint { - mint = hmin - } - return &headChunkReader{head: h, mint: mint, maxt: maxt} -} - -// MinTime returns the lowest time bound on visible data in the head. -func (h *Head) MinTime() int64 { - return atomic.LoadInt64(&h.minTime) -} - -// MaxTime returns the highest timestamp seen in data of the head. -func (h *Head) MaxTime() int64 { - return atomic.LoadInt64(&h.maxTime) -} - -// compactable returns whether the head has a compactable range. -// The head has a compactable range when the head time range is 1.5 times the chunk range. -// The 0.5 acts as a buffer of the appendable window. -func (h *Head) compactable() bool { - return h.MaxTime()-h.MinTime() > h.chunkRange/2*3 -} - -// Close flushes the WAL and closes the head. -func (h *Head) Close() error { - if h.wal == nil { - return nil - } - return h.wal.Close() -} - -type headChunkReader struct { - head *Head - mint, maxt int64 -} - -func (h *headChunkReader) Close() error { - return nil -} - -// packChunkID packs a seriesID and a chunkID within it into a global 8 byte ID. -// It panicks if the seriesID exceeds 5 bytes or the chunk ID 3 bytes. -func packChunkID(seriesID, chunkID uint64) uint64 { - if seriesID > (1<<40)-1 { - panic("series ID exceeds 5 bytes") - } - if chunkID > (1<<24)-1 { - panic("chunk ID exceeds 3 bytes") - } - return (seriesID << 24) | chunkID -} - -func unpackChunkID(id uint64) (seriesID, chunkID uint64) { - return id >> 24, (id << 40) >> 40 -} - -// Chunk returns the chunk for the reference number. -func (h *headChunkReader) Chunk(ref uint64) (chunkenc.Chunk, error) { - sid, cid := unpackChunkID(ref) - - s := h.head.series.getByID(sid) - // This means that the series has been garbage collected. - if s == nil { - return nil, ErrNotFound - } - - s.Lock() - c := s.chunk(int(cid)) - - // This means that the chunk has been garbage collected or is outside - // the specified range. - if c == nil || !c.OverlapsClosedInterval(h.mint, h.maxt) { - s.Unlock() - return nil, ErrNotFound - } - s.Unlock() - - return &safeChunk{ - Chunk: c.chunk, - s: s, - cid: int(cid), - }, nil -} - -type safeChunk struct { - chunkenc.Chunk - s *memSeries - cid int -} - -func (c *safeChunk) Iterator() chunkenc.Iterator { - c.s.Lock() - it := c.s.iterator(c.cid) - c.s.Unlock() - return it -} - -type headIndexReader struct { - head *Head - mint, maxt int64 -} - -func (h *headIndexReader) Close() error { - return nil -} - -func (h *headIndexReader) Symbols() (map[string]struct{}, error) { - h.head.symMtx.RLock() - defer h.head.symMtx.RUnlock() - - res := make(map[string]struct{}, len(h.head.symbols)) - - for s := range h.head.symbols { - res[s] = struct{}{} - } - return res, nil -} - -// LabelValues returns the possible label values -func (h *headIndexReader) LabelValues(names ...string) (index.StringTuples, error) { - if len(names) != 1 { - return nil, encoding.ErrInvalidSize - } - - h.head.symMtx.RLock() - sl := make([]string, 0, len(h.head.values[names[0]])) - for s := range h.head.values[names[0]] { - sl = append(sl, s) - } - h.head.symMtx.RUnlock() - sort.Strings(sl) - - return index.NewStringTuples(sl, len(names)) -} - -// LabelNames returns all the unique label names present in the head. -func (h *headIndexReader) LabelNames() ([]string, error) { - h.head.symMtx.RLock() - defer h.head.symMtx.RUnlock() - labelNames := make([]string, 0, len(h.head.values)) - for name := range h.head.values { - if name == "" { - continue - } - labelNames = append(labelNames, name) - } - sort.Strings(labelNames) - return labelNames, nil -} - -// Postings returns the postings list iterator for the label pair. -func (h *headIndexReader) Postings(name, value string) (index.Postings, error) { - return h.head.postings.Get(name, value), nil -} - -func (h *headIndexReader) SortedPostings(p index.Postings) index.Postings { - series := make([]*memSeries, 0, 128) - - // Fetch all the series only once. - for p.Next() { - s := h.head.series.getByID(p.At()) - if s == nil { - level.Debug(h.head.logger).Log("msg", "looked up series not found") - } else { - series = append(series, s) - } - } - if err := p.Err(); err != nil { - return index.ErrPostings(errors.Wrap(err, "expand postings")) - } - - sort.Slice(series, func(i, j int) bool { - return labels.Compare(series[i].lset, series[j].lset) < 0 - }) - - // Convert back to list. - ep := make([]uint64, 0, len(series)) - for _, p := range series { - ep = append(ep, p.ref) - } - return index.NewListPostings(ep) -} - -// Series returns the series for the given reference. -func (h *headIndexReader) Series(ref uint64, lbls *labels.Labels, chks *[]chunks.Meta) error { - s := h.head.series.getByID(ref) - - if s == nil { - h.head.metrics.seriesNotFound.Inc() - return ErrNotFound - } - *lbls = append((*lbls)[:0], s.lset...) - - s.Lock() - defer s.Unlock() - - *chks = (*chks)[:0] - - for i, c := range s.chunks { - // Do not expose chunks that are outside of the specified range. - if !c.OverlapsClosedInterval(h.mint, h.maxt) { - continue - } - *chks = append(*chks, chunks.Meta{ - MinTime: c.minTime, - MaxTime: c.maxTime, - Ref: packChunkID(s.ref, uint64(s.chunkID(i))), - }) - } - - return nil -} - -func (h *headIndexReader) LabelIndices() ([][]string, error) { - h.head.symMtx.RLock() - defer h.head.symMtx.RUnlock() - res := [][]string{} - for s := range h.head.values { - res = append(res, []string{s}) - } - return res, nil -} - -func (h *Head) getOrCreate(hash uint64, lset labels.Labels) (*memSeries, bool) { - // Just using `getOrSet` below would be semantically sufficient, but we'd create - // a new series on every sample inserted via Add(), which causes allocations - // and makes our series IDs rather random and harder to compress in postings. - s := h.series.getByHash(hash, lset) - if s != nil { - return s, false - } - - // Optimistically assume that we are the first one to create the series. - id := atomic.AddUint64(&h.lastSeriesID, 1) - - return h.getOrCreateWithID(id, hash, lset) -} - -func (h *Head) getOrCreateWithID(id, hash uint64, lset labels.Labels) (*memSeries, bool) { - s := newMemSeries(lset, id, h.chunkRange) - - s, created := h.series.getOrSet(hash, s) - if !created { - return s, false - } - - h.metrics.series.Inc() - h.metrics.seriesCreated.Inc() - - h.postings.Add(id, lset) - - h.symMtx.Lock() - defer h.symMtx.Unlock() - - for _, l := range lset { - valset, ok := h.values[l.Name] - if !ok { - valset = stringset{} - h.values[l.Name] = valset - } - valset.set(l.Value) - - h.symbols[l.Name] = struct{}{} - h.symbols[l.Value] = struct{}{} - } - - return s, true -} - -// seriesHashmap is a simple hashmap for memSeries by their label set. It is built -// on top of a regular hashmap and holds a slice of series to resolve hash collisions. -// Its methods require the hash to be submitted with it to avoid re-computations throughout -// the code. -type seriesHashmap map[uint64][]*memSeries - -func (m seriesHashmap) get(hash uint64, lset labels.Labels) *memSeries { - for _, s := range m[hash] { - if s.lset.Equals(lset) { - return s - } - } - return nil -} - -func (m seriesHashmap) set(hash uint64, s *memSeries) { - l := m[hash] - for i, prev := range l { - if prev.lset.Equals(s.lset) { - l[i] = s - return - } - } - m[hash] = append(l, s) -} - -func (m seriesHashmap) del(hash uint64, lset labels.Labels) { - var rem []*memSeries - for _, s := range m[hash] { - if !s.lset.Equals(lset) { - rem = append(rem, s) - } - } - if len(rem) == 0 { - delete(m, hash) - } else { - m[hash] = rem - } -} - -// stripeSeries locks modulo ranges of IDs and hashes to reduce lock contention. -// The locks are padded to not be on the same cache line. Filling the padded space -// with the maps was profiled to be slower – likely due to the additional pointer -// dereferences. -type stripeSeries struct { - series [stripeSize]map[uint64]*memSeries - hashes [stripeSize]seriesHashmap - locks [stripeSize]stripeLock -} - -const ( - stripeSize = 1 << 14 - stripeMask = stripeSize - 1 -) - -type stripeLock struct { - sync.RWMutex - // Padding to avoid multiple locks being on the same cache line. - _ [40]byte -} - -func newStripeSeries() *stripeSeries { - s := &stripeSeries{} - - for i := range s.series { - s.series[i] = map[uint64]*memSeries{} - } - for i := range s.hashes { - s.hashes[i] = seriesHashmap{} - } - return s -} - -// gc garbage collects old chunks that are strictly before mint and removes -// series entirely that have no chunks left. -func (s *stripeSeries) gc(mint int64) (map[uint64]struct{}, int) { - var ( - deleted = map[uint64]struct{}{} - rmChunks = 0 - ) - // Run through all series and truncate old chunks. Mark those with no - // chunks left as deleted and store their ID. - for i := 0; i < stripeSize; i++ { - s.locks[i].Lock() - - for hash, all := range s.hashes[i] { - for _, series := range all { - series.Lock() - rmChunks += series.truncateChunksBefore(mint) - - if len(series.chunks) > 0 || series.pendingCommit { - series.Unlock() - continue - } - - // The series is gone entirely. We need to keep the series lock - // and make sure we have acquired the stripe locks for hash and ID of the - // series alike. - // If we don't hold them all, there's a very small chance that a series receives - // samples again while we are half-way into deleting it. - j := int(series.ref & stripeMask) - - if i != j { - s.locks[j].Lock() - } - - deleted[series.ref] = struct{}{} - s.hashes[i].del(hash, series.lset) - delete(s.series[j], series.ref) - - if i != j { - s.locks[j].Unlock() - } - - series.Unlock() - } - } - - s.locks[i].Unlock() - } - - return deleted, rmChunks -} - -func (s *stripeSeries) getByID(id uint64) *memSeries { - i := id & stripeMask - - s.locks[i].RLock() - series := s.series[i][id] - s.locks[i].RUnlock() - - return series -} - -func (s *stripeSeries) getByHash(hash uint64, lset labels.Labels) *memSeries { - i := hash & stripeMask - - s.locks[i].RLock() - series := s.hashes[i].get(hash, lset) - s.locks[i].RUnlock() - - return series -} - -func (s *stripeSeries) getOrSet(hash uint64, series *memSeries) (*memSeries, bool) { - i := hash & stripeMask - - s.locks[i].Lock() - - if prev := s.hashes[i].get(hash, series.lset); prev != nil { - s.locks[i].Unlock() - return prev, false - } - s.hashes[i].set(hash, series) - s.locks[i].Unlock() - - i = series.ref & stripeMask - - s.locks[i].Lock() - s.series[i][series.ref] = series - s.locks[i].Unlock() - - return series, true -} - -type sample struct { - t int64 - v float64 -} - -func (s sample) T() int64 { - return s.t -} - -func (s sample) V() float64 { - return s.v -} - -// memSeries is the in-memory representation of a series. None of its methods -// are goroutine safe and it is the caller's responsibility to lock it. -type memSeries struct { - sync.Mutex - - ref uint64 - lset labels.Labels - chunks []*memChunk - headChunk *memChunk - chunkRange int64 - firstChunkID int - - nextAt int64 // Timestamp at which to cut the next chunk. - sampleBuf [4]sample - pendingCommit bool // Whether there are samples waiting to be committed to this series. - - app chunkenc.Appender // Current appender for the chunk. -} - -func newMemSeries(lset labels.Labels, id uint64, chunkRange int64) *memSeries { - s := &memSeries{ - lset: lset, - ref: id, - chunkRange: chunkRange, - nextAt: math.MinInt64, - } - return s -} - -func (s *memSeries) minTime() int64 { - if len(s.chunks) == 0 { - return math.MinInt64 - } - return s.chunks[0].minTime -} - -func (s *memSeries) maxTime() int64 { - c := s.head() - if c == nil { - return math.MinInt64 - } - return c.maxTime -} - -func (s *memSeries) cut(mint int64) *memChunk { - c := &memChunk{ - chunk: chunkenc.NewXORChunk(), - minTime: mint, - maxTime: math.MinInt64, - } - s.chunks = append(s.chunks, c) - s.headChunk = c - - // Set upper bound on when the next chunk must be started. An earlier timestamp - // may be chosen dynamically at a later point. - s.nextAt = rangeForTimestamp(mint, s.chunkRange) - - app, err := c.chunk.Appender() - if err != nil { - panic(err) - } - s.app = app - return c -} - -func (s *memSeries) chunksMetas() []chunks.Meta { - metas := make([]chunks.Meta, 0, len(s.chunks)) - for _, chk := range s.chunks { - metas = append(metas, chunks.Meta{Chunk: chk.chunk, MinTime: chk.minTime, MaxTime: chk.maxTime}) - } - return metas -} - -// reset re-initialises all the variable in the memSeries except 'lset', 'ref', -// and 'chunkRange', like how it would appear after 'newMemSeries(...)'. -func (s *memSeries) reset() { - s.chunks = nil - s.headChunk = nil - s.firstChunkID = 0 - s.nextAt = math.MinInt64 - s.sampleBuf = [4]sample{} - s.pendingCommit = false - s.app = nil -} - -// appendable checks whether the given sample is valid for appending to the series. -func (s *memSeries) appendable(t int64, v float64) error { - c := s.head() - if c == nil { - return nil - } - - if t > c.maxTime { - return nil - } - if t < c.maxTime { - return ErrOutOfOrderSample - } - // We are allowing exact duplicates as we can encounter them in valid cases - // like federation and erroring out at that time would be extremely noisy. - if math.Float64bits(s.sampleBuf[3].v) != math.Float64bits(v) { - return ErrAmendSample - } - return nil -} - -func (s *memSeries) chunk(id int) *memChunk { - ix := id - s.firstChunkID - if ix < 0 || ix >= len(s.chunks) { - return nil - } - return s.chunks[ix] -} - -func (s *memSeries) chunkID(pos int) int { - return pos + s.firstChunkID -} - -// truncateChunksBefore removes all chunks from the series that have not timestamp -// at or after mint. Chunk IDs remain unchanged. -func (s *memSeries) truncateChunksBefore(mint int64) (removed int) { - var k int - for i, c := range s.chunks { - if c.maxTime >= mint { - break - } - k = i + 1 - } - s.chunks = append(s.chunks[:0], s.chunks[k:]...) - s.firstChunkID += k - if len(s.chunks) == 0 { - s.headChunk = nil - } else { - s.headChunk = s.chunks[len(s.chunks)-1] - } - - return k -} - -// append adds the sample (t, v) to the series. -func (s *memSeries) append(t int64, v float64) (success, chunkCreated bool) { - // Based on Gorilla white papers this offers near-optimal compression ratio - // so anything bigger that this has diminishing returns and increases - // the time range within which we have to decompress all samples. - const samplesPerChunk = 120 - - c := s.head() - - if c == nil { - c = s.cut(t) - chunkCreated = true - } - numSamples := c.chunk.NumSamples() - - // Out of order sample. - if c.maxTime >= t { - return false, chunkCreated - } - // If we reach 25% of a chunk's desired sample count, set a definitive time - // at which to start the next chunk. - // At latest it must happen at the timestamp set when the chunk was cut. - if numSamples == samplesPerChunk/4 { - s.nextAt = computeChunkEndTime(c.minTime, c.maxTime, s.nextAt) - } - if t >= s.nextAt { - c = s.cut(t) - chunkCreated = true - } - s.app.Append(t, v) - - c.maxTime = t - - s.sampleBuf[0] = s.sampleBuf[1] - s.sampleBuf[1] = s.sampleBuf[2] - s.sampleBuf[2] = s.sampleBuf[3] - s.sampleBuf[3] = sample{t: t, v: v} - - return true, chunkCreated -} - -// computeChunkEndTime estimates the end timestamp based the beginning of a chunk, -// its current timestamp and the upper bound up to which we insert data. -// It assumes that the time range is 1/4 full. -func computeChunkEndTime(start, cur, max int64) int64 { - a := (max - start) / ((cur - start + 1) * 4) - if a == 0 { - return max - } - return start + (max-start)/a -} - -func (s *memSeries) iterator(id int) chunkenc.Iterator { - c := s.chunk(id) - // TODO(fabxc): Work around! A querier may have retrieved a pointer to a series' chunk, - // which got then garbage collected before it got accessed. - // We must ensure to not garbage collect as long as any readers still hold a reference. - if c == nil { - return chunkenc.NewNopIterator() - } - - if id-s.firstChunkID < len(s.chunks)-1 { - return c.chunk.Iterator() - } - // Serve the last 4 samples for the last chunk from the sample buffer - // as their compressed bytes may be mutated by added samples. - it := &memSafeIterator{ - Iterator: c.chunk.Iterator(), - i: -1, - total: c.chunk.NumSamples(), - buf: s.sampleBuf, - } - return it -} - -func (s *memSeries) head() *memChunk { - return s.headChunk -} - -type memChunk struct { - chunk chunkenc.Chunk - minTime, maxTime int64 -} - -// Returns true if the chunk overlaps [mint, maxt]. -func (mc *memChunk) OverlapsClosedInterval(mint, maxt int64) bool { - return mc.minTime <= maxt && mint <= mc.maxTime -} - -type memSafeIterator struct { - chunkenc.Iterator - - i int - total int - buf [4]sample -} - -func (it *memSafeIterator) Next() bool { - if it.i+1 >= it.total { - return false - } - it.i++ - if it.total-it.i > 4 { - return it.Iterator.Next() - } - return true -} - -func (it *memSafeIterator) At() (int64, float64) { - if it.total-it.i > 4 { - return it.Iterator.At() - } - s := it.buf[4-(it.total-it.i)] - return s.t, s.v -} - -type stringset map[string]struct{} - -func (ss stringset) set(s string) { - ss[s] = struct{}{} -} - -func (ss stringset) String() string { - return strings.Join(ss.slice(), ",") -} - -func (ss stringset) slice() []string { - slice := make([]string, 0, len(ss)) - for k := range ss { - slice = append(slice, k) - } - sort.Strings(slice) - return slice -} diff --git a/vendor/github.com/prometheus/tsdb/head_bench_test.go b/vendor/github.com/prometheus/tsdb/head_bench_test.go deleted file mode 100644 index 68505ea2..00000000 --- a/vendor/github.com/prometheus/tsdb/head_bench_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "strconv" - "sync/atomic" - "testing" - - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" -) - -func BenchmarkHeadStripeSeriesCreate(b *testing.B) { - // Put a series, select it. GC it and then access it. - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(b, err) - defer h.Close() - - for i := 0; i < b.N; i++ { - h.getOrCreate(uint64(i), labels.FromStrings("a", strconv.Itoa(i))) - } -} - -func BenchmarkHeadStripeSeriesCreateParallel(b *testing.B) { - // Put a series, select it. GC it and then access it. - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(b, err) - defer h.Close() - - var count int64 - - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - i := atomic.AddInt64(&count, 1) - h.getOrCreate(uint64(i), labels.FromStrings("a", strconv.Itoa(int(i)))) - } - }) -} - -func BenchmarkHeadPostingForMatchers(b *testing.B) { - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, h.Close()) - }() - - var hash uint64 - for n := 0; n < 10; n++ { - for i := 0; i < 100000; i++ { - h.getOrCreate(hash, labels.FromStrings("i", strconv.Itoa(i), "n", strconv.Itoa(i), "j", "foo")) - hash++ - // Have some series that won't be matched, to properly test inverted matches. - h.getOrCreate(hash, labels.FromStrings("i", strconv.Itoa(i), "n", strconv.Itoa(i), "j", "bar")) - hash++ - h.getOrCreate(hash, labels.FromStrings("i", strconv.Itoa(i), "n", "0_"+strconv.Itoa(i), "j", "bar")) - hash++ - h.getOrCreate(hash, labels.FromStrings("i", strconv.Itoa(i), "n", "1_"+strconv.Itoa(i), "j", "bar")) - hash++ - h.getOrCreate(hash, labels.FromStrings("i", strconv.Itoa(i), "n", "2_"+strconv.Itoa(i), "j", "bar")) - hash++ - } - } - - n1 := labels.NewEqualMatcher("n", "1") - - jFoo := labels.NewEqualMatcher("j", "foo") - jNotFoo := labels.Not(jFoo) - - iStar := labels.NewMustRegexpMatcher("i", "^.*$") - iPlus := labels.NewMustRegexpMatcher("i", "^.+$") - i1Plus := labels.NewMustRegexpMatcher("i", "^1.+$") - iEmptyRe := labels.NewMustRegexpMatcher("i", "^$") - iNotEmpty := labels.Not(labels.NewEqualMatcher("i", "")) - iNot2 := labels.Not(labels.NewEqualMatcher("n", "2")) - iNot2Star := labels.Not(labels.NewMustRegexpMatcher("i", "^2.*$")) - - cases := []struct { - name string - matchers []labels.Matcher - }{ - {`n="1"`, []labels.Matcher{n1}}, - {`n="1",j="foo"`, []labels.Matcher{n1, jFoo}}, - {`j="foo",n="1"`, []labels.Matcher{jFoo, n1}}, - {`n="1",j!="foo"`, []labels.Matcher{n1, jNotFoo}}, - {`i=~".*"`, []labels.Matcher{iStar}}, - {`i=~".+"`, []labels.Matcher{iPlus}}, - {`i=~""`, []labels.Matcher{iEmptyRe}}, - {`i!=""`, []labels.Matcher{iNotEmpty}}, - {`n="1",i=~".*",j="foo"`, []labels.Matcher{n1, iStar, jFoo}}, - {`n="1",i=~".*",i!="2",j="foo"`, []labels.Matcher{n1, iStar, iNot2, jFoo}}, - {`n="1",i!="",j="foo"`, []labels.Matcher{n1, iNotEmpty, jFoo}}, - {`n="1",i=~".+",j="foo"`, []labels.Matcher{n1, iPlus, jFoo}}, - {`n="1",i=~"1.+",j="foo"`, []labels.Matcher{n1, i1Plus, jFoo}}, - {`n="1",i=~".+",i!="2",j="foo"`, []labels.Matcher{n1, iPlus, iNot2, jFoo}}, - {`n="1",i=~".+",i!~"2.*",j="foo"`, []labels.Matcher{n1, iPlus, iNot2Star, jFoo}}, - } - - for _, c := range cases { - b.Run(c.name, func(b *testing.B) { - for i := 0; i < b.N; i++ { - _, err := PostingsForMatchers(h.indexRange(0, 1000), c.matchers...) - testutil.Ok(b, err) - } - }) - } -} diff --git a/vendor/github.com/prometheus/tsdb/head_test.go b/vendor/github.com/prometheus/tsdb/head_test.go deleted file mode 100644 index 4fbdec03..00000000 --- a/vendor/github.com/prometheus/tsdb/head_test.go +++ /dev/null @@ -1,1079 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "io/ioutil" - "math" - "math/rand" - "os" - "path" - "path/filepath" - "sort" - "testing" - - prom_testutil "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" - "github.com/prometheus/tsdb/tsdbutil" - "github.com/prometheus/tsdb/wal" -) - -func BenchmarkCreateSeries(b *testing.B) { - lbls, err := labels.ReadLabels(filepath.Join("testdata", "20kseries.json"), b.N) - testutil.Ok(b, err) - - h, err := NewHead(nil, nil, nil, 10000) - testutil.Ok(b, err) - defer h.Close() - - b.ReportAllocs() - b.ResetTimer() - - for _, l := range lbls { - h.getOrCreate(l.Hash(), l) - } -} - -func populateTestWAL(t testing.TB, w *wal.WAL, recs []interface{}) { - var enc RecordEncoder - for _, r := range recs { - switch v := r.(type) { - case []RefSeries: - testutil.Ok(t, w.Log(enc.Series(v, nil))) - case []RefSample: - testutil.Ok(t, w.Log(enc.Samples(v, nil))) - case []Stone: - testutil.Ok(t, w.Log(enc.Tombstones(v, nil))) - } - } -} - -func readTestWAL(t testing.TB, dir string) (recs []interface{}) { - sr, err := wal.NewSegmentsReader(dir) - testutil.Ok(t, err) - defer sr.Close() - - var dec RecordDecoder - r := wal.NewReader(sr) - - for r.Next() { - rec := r.Record() - - switch dec.Type(rec) { - case RecordSeries: - series, err := dec.Series(rec, nil) - testutil.Ok(t, err) - recs = append(recs, series) - case RecordSamples: - samples, err := dec.Samples(rec, nil) - testutil.Ok(t, err) - recs = append(recs, samples) - case RecordTombstones: - tstones, err := dec.Tombstones(rec, nil) - testutil.Ok(t, err) - recs = append(recs, tstones) - default: - t.Fatalf("unknown record type") - } - } - testutil.Ok(t, r.Err()) - return recs -} - -func TestHead_ReadWAL(t *testing.T) { - entries := []interface{}{ - []RefSeries{ - {Ref: 10, Labels: labels.FromStrings("a", "1")}, - {Ref: 11, Labels: labels.FromStrings("a", "2")}, - {Ref: 100, Labels: labels.FromStrings("a", "3")}, - }, - []RefSample{ - {Ref: 0, T: 99, V: 1}, - {Ref: 10, T: 100, V: 2}, - {Ref: 100, T: 100, V: 3}, - }, - []RefSeries{ - {Ref: 50, Labels: labels.FromStrings("a", "4")}, - }, - []RefSample{ - {Ref: 10, T: 101, V: 5}, - {Ref: 50, T: 101, V: 6}, - }, - } - dir, err := ioutil.TempDir("", "test_read_wal") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := wal.New(nil, nil, dir) - testutil.Ok(t, err) - defer w.Close() - populateTestWAL(t, w, entries) - - head, err := NewHead(nil, nil, w, 1000) - testutil.Ok(t, err) - - testutil.Ok(t, head.Init(math.MinInt64)) - testutil.Equals(t, uint64(100), head.lastSeriesID) - - s10 := head.series.getByID(10) - s11 := head.series.getByID(11) - s50 := head.series.getByID(50) - s100 := head.series.getByID(100) - - testutil.Equals(t, labels.FromStrings("a", "1"), s10.lset) - testutil.Equals(t, (*memSeries)(nil), s11) // Series without samples should be garbage colected at head.Init(). - testutil.Equals(t, labels.FromStrings("a", "4"), s50.lset) - testutil.Equals(t, labels.FromStrings("a", "3"), s100.lset) - - expandChunk := func(c chunkenc.Iterator) (x []sample) { - for c.Next() { - t, v := c.At() - x = append(x, sample{t: t, v: v}) - } - testutil.Ok(t, c.Err()) - return x - } - - testutil.Equals(t, []sample{{100, 2}, {101, 5}}, expandChunk(s10.iterator(0))) - testutil.Equals(t, []sample{{101, 6}}, expandChunk(s50.iterator(0))) - testutil.Equals(t, []sample{{100, 3}}, expandChunk(s100.iterator(0))) -} - -func TestHead_Truncate(t *testing.T) { - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(t, err) - defer h.Close() - - h.initTime(0) - - s1, _ := h.getOrCreate(1, labels.FromStrings("a", "1", "b", "1")) - s2, _ := h.getOrCreate(2, labels.FromStrings("a", "2", "b", "1")) - s3, _ := h.getOrCreate(3, labels.FromStrings("a", "1", "b", "2")) - s4, _ := h.getOrCreate(4, labels.FromStrings("a", "2", "b", "2", "c", "1")) - - s1.chunks = []*memChunk{ - {minTime: 0, maxTime: 999}, - {minTime: 1000, maxTime: 1999}, - {minTime: 2000, maxTime: 2999}, - } - s2.chunks = []*memChunk{ - {minTime: 1000, maxTime: 1999}, - {minTime: 2000, maxTime: 2999}, - {minTime: 3000, maxTime: 3999}, - } - s3.chunks = []*memChunk{ - {minTime: 0, maxTime: 999}, - {minTime: 1000, maxTime: 1999}, - } - s4.chunks = []*memChunk{} - - // Truncation need not be aligned. - testutil.Ok(t, h.Truncate(1)) - - testutil.Ok(t, h.Truncate(2000)) - - testutil.Equals(t, []*memChunk{ - {minTime: 2000, maxTime: 2999}, - }, h.series.getByID(s1.ref).chunks) - - testutil.Equals(t, []*memChunk{ - {minTime: 2000, maxTime: 2999}, - {minTime: 3000, maxTime: 3999}, - }, h.series.getByID(s2.ref).chunks) - - testutil.Assert(t, h.series.getByID(s3.ref) == nil, "") - testutil.Assert(t, h.series.getByID(s4.ref) == nil, "") - - postingsA1, _ := index.ExpandPostings(h.postings.Get("a", "1")) - postingsA2, _ := index.ExpandPostings(h.postings.Get("a", "2")) - postingsB1, _ := index.ExpandPostings(h.postings.Get("b", "1")) - postingsB2, _ := index.ExpandPostings(h.postings.Get("b", "2")) - postingsC1, _ := index.ExpandPostings(h.postings.Get("c", "1")) - postingsAll, _ := index.ExpandPostings(h.postings.Get("", "")) - - testutil.Equals(t, []uint64{s1.ref}, postingsA1) - testutil.Equals(t, []uint64{s2.ref}, postingsA2) - testutil.Equals(t, []uint64{s1.ref, s2.ref}, postingsB1) - testutil.Equals(t, []uint64{s1.ref, s2.ref}, postingsAll) - testutil.Assert(t, postingsB2 == nil, "") - testutil.Assert(t, postingsC1 == nil, "") - - testutil.Equals(t, map[string]struct{}{ - "": {}, // from 'all' postings list - "a": {}, - "b": {}, - "1": {}, - "2": {}, - }, h.symbols) - - testutil.Equals(t, map[string]stringset{ - "a": {"1": struct{}{}, "2": struct{}{}}, - "b": {"1": struct{}{}}, - "": {"": struct{}{}}, - }, h.values) -} - -// Validate various behaviors brought on by firstChunkID accounting for -// garbage collected chunks. -func TestMemSeries_truncateChunks(t *testing.T) { - s := newMemSeries(labels.FromStrings("a", "b"), 1, 2000) - - for i := 0; i < 4000; i += 5 { - ok, _ := s.append(int64(i), float64(i)) - testutil.Assert(t, ok == true, "sample append failed") - } - - // Check that truncate removes half of the chunks and afterwards - // that the ID of the last chunk still gives us the same chunk afterwards. - countBefore := len(s.chunks) - lastID := s.chunkID(countBefore - 1) - lastChunk := s.chunk(lastID) - - testutil.Assert(t, s.chunk(0) != nil, "") - testutil.Assert(t, lastChunk != nil, "") - - s.truncateChunksBefore(2000) - - testutil.Equals(t, int64(2000), s.chunks[0].minTime) - testutil.Assert(t, s.chunk(0) == nil, "first chunks not gone") - testutil.Equals(t, countBefore/2, len(s.chunks)) - testutil.Equals(t, lastChunk, s.chunk(lastID)) - - // Validate that the series' sample buffer is applied correctly to the last chunk - // after truncation. - it1 := s.iterator(s.chunkID(len(s.chunks) - 1)) - _, ok := it1.(*memSafeIterator) - testutil.Assert(t, ok == true, "") - - it2 := s.iterator(s.chunkID(len(s.chunks) - 2)) - _, ok = it2.(*memSafeIterator) - testutil.Assert(t, ok == false, "non-last chunk incorrectly wrapped with sample buffer") -} - -func TestHeadDeleteSeriesWithoutSamples(t *testing.T) { - entries := []interface{}{ - []RefSeries{ - {Ref: 10, Labels: labels.FromStrings("a", "1")}, - }, - []RefSample{}, - []RefSeries{ - {Ref: 50, Labels: labels.FromStrings("a", "2")}, - }, - []RefSample{ - {Ref: 50, T: 80, V: 1}, - {Ref: 50, T: 90, V: 1}, - }, - } - dir, err := ioutil.TempDir("", "test_delete_series") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := wal.New(nil, nil, dir) - testutil.Ok(t, err) - defer w.Close() - populateTestWAL(t, w, entries) - - head, err := NewHead(nil, nil, w, 1000) - testutil.Ok(t, err) - - testutil.Ok(t, head.Init(math.MinInt64)) - - testutil.Ok(t, head.Delete(0, 100, labels.NewEqualMatcher("a", "1"))) -} - -func TestHeadDeleteSimple(t *testing.T) { - buildSmpls := func(s []int64) []sample { - ss := make([]sample, 0, len(s)) - for _, t := range s { - ss = append(ss, sample{t: t, v: float64(t)}) - } - return ss - } - smplsAll := buildSmpls([]int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) - lblDefault := labels.Label{"a", "b"} - - cases := []struct { - dranges Intervals - smplsExp []sample - }{ - { - dranges: Intervals{{0, 3}}, - smplsExp: buildSmpls([]int64{4, 5, 6, 7, 8, 9}), - }, - { - dranges: Intervals{{1, 3}}, - smplsExp: buildSmpls([]int64{0, 4, 5, 6, 7, 8, 9}), - }, - { - dranges: Intervals{{1, 3}, {4, 7}}, - smplsExp: buildSmpls([]int64{0, 8, 9}), - }, - { - dranges: Intervals{{1, 3}, {4, 700}}, - smplsExp: buildSmpls([]int64{0}), - }, - { // This case is to ensure that labels and symbols are deleted. - dranges: Intervals{{0, 9}}, - smplsExp: buildSmpls([]int64{}), - }, - } - -Outer: - for _, c := range cases { - dir, err := ioutil.TempDir("", "test_wal_reload") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := wal.New(nil, nil, path.Join(dir, "wal")) - testutil.Ok(t, err) - defer w.Close() - - head, err := NewHead(nil, nil, w, 1000) - testutil.Ok(t, err) - defer head.Close() - - app := head.Appender() - for _, smpl := range smplsAll { - _, err = app.Add(labels.Labels{lblDefault}, smpl.t, smpl.v) - testutil.Ok(t, err) - - } - testutil.Ok(t, app.Commit()) - - // Delete the ranges. - for _, r := range c.dranges { - testutil.Ok(t, head.Delete(r.Mint, r.Maxt, labels.NewEqualMatcher(lblDefault.Name, lblDefault.Value))) - } - - // Compare the samples for both heads - before and after the reload. - reloadedW, err := wal.New(nil, nil, w.Dir()) // Use a new wal to ensure deleted samples are gone even after a reload. - testutil.Ok(t, err) - defer reloadedW.Close() - reloadedHead, err := NewHead(nil, nil, reloadedW, 1000) - testutil.Ok(t, err) - defer reloadedHead.Close() - testutil.Ok(t, reloadedHead.Init(0)) - for _, h := range []*Head{head, reloadedHead} { - indexr, err := h.Index() - testutil.Ok(t, err) - // Use an emptyTombstoneReader explicitly to get all the samples. - css, err := LookupChunkSeries(indexr, emptyTombstoneReader, labels.NewEqualMatcher(lblDefault.Name, lblDefault.Value)) - testutil.Ok(t, err) - - // Getting the actual samples. - actSamples := make([]sample, 0) - for css.Next() { - lblsAct, chkMetas, intv := css.At() - testutil.Equals(t, labels.Labels{lblDefault}, lblsAct) - testutil.Equals(t, 0, len(intv)) - - chunkr, err := h.Chunks() - testutil.Ok(t, err) - for _, meta := range chkMetas { - chk, err := chunkr.Chunk(meta.Ref) - testutil.Ok(t, err) - ii := chk.Iterator() - for ii.Next() { - t, v := ii.At() - actSamples = append(actSamples, sample{t: t, v: v}) - } - } - } - - testutil.Ok(t, css.Err()) - testutil.Equals(t, c.smplsExp, actSamples) - } - - // Compare the query results for both heads - before and after the reload. - expSeriesSet := newMockSeriesSet([]Series{ - newSeries(map[string]string{lblDefault.Name: lblDefault.Value}, func() []tsdbutil.Sample { - ss := make([]tsdbutil.Sample, 0, len(c.smplsExp)) - for _, s := range c.smplsExp { - ss = append(ss, s) - } - return ss - }(), - ), - }) - for _, h := range []*Head{head, reloadedHead} { - q, err := NewBlockQuerier(h, h.MinTime(), h.MaxTime()) - testutil.Ok(t, err) - actSeriesSet, err := q.Select(labels.NewEqualMatcher(lblDefault.Name, lblDefault.Value)) - testutil.Ok(t, err) - - lns, err := q.LabelNames() - testutil.Ok(t, err) - lvs, err := q.LabelValues(lblDefault.Name) - testutil.Ok(t, err) - // When all samples are deleted we expect that no labels should exist either. - if len(c.smplsExp) == 0 { - testutil.Equals(t, 0, len(lns)) - testutil.Equals(t, 0, len(lvs)) - testutil.Assert(t, actSeriesSet.Next() == false, "") - testutil.Ok(t, h.Close()) - continue - } else { - testutil.Equals(t, 1, len(lns)) - testutil.Equals(t, 1, len(lvs)) - testutil.Equals(t, lblDefault.Name, lns[0]) - testutil.Equals(t, lblDefault.Value, lvs[0]) - } - - for { - eok, rok := expSeriesSet.Next(), actSeriesSet.Next() - testutil.Equals(t, eok, rok) - - if !eok { - testutil.Ok(t, h.Close()) - continue Outer - } - expSeries := expSeriesSet.At() - actSeries := actSeriesSet.At() - - testutil.Equals(t, expSeries.Labels(), actSeries.Labels()) - - smplExp, errExp := expandSeriesIterator(expSeries.Iterator()) - smplRes, errRes := expandSeriesIterator(actSeries.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } - } -} - -func TestDeleteUntilCurMax(t *testing.T) { - numSamples := int64(10) - hb, err := NewHead(nil, nil, nil, 1000000) - testutil.Ok(t, err) - defer hb.Close() - app := hb.Appender() - smpls := make([]float64, numSamples) - for i := int64(0); i < numSamples; i++ { - smpls[i] = rand.Float64() - _, err := app.Add(labels.Labels{{"a", "b"}}, i, smpls[i]) - testutil.Ok(t, err) - } - testutil.Ok(t, app.Commit()) - testutil.Ok(t, hb.Delete(0, 10000, labels.NewEqualMatcher("a", "b"))) - - // Test the series have been deleted. - q, err := NewBlockQuerier(hb, 0, 100000) - testutil.Ok(t, err) - res, err := q.Select(labels.NewEqualMatcher("a", "b")) - testutil.Ok(t, err) - testutil.Assert(t, !res.Next(), "series didn't get deleted") - - // Add again and test for presence. - app = hb.Appender() - _, err = app.Add(labels.Labels{{"a", "b"}}, 11, 1) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - q, err = NewBlockQuerier(hb, 0, 100000) - testutil.Ok(t, err) - res, err = q.Select(labels.NewEqualMatcher("a", "b")) - testutil.Ok(t, err) - testutil.Assert(t, res.Next(), "series don't exist") - exps := res.At() - it := exps.Iterator() - ressmpls, err := expandSeriesIterator(it) - testutil.Ok(t, err) - testutil.Equals(t, []tsdbutil.Sample{sample{11, 1}}, ressmpls) -} - -func TestDeletedSamplesAndSeriesStillInWALAfterCheckpoint(t *testing.T) { - dir, err := ioutil.TempDir("", "test_delete_wal") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - wlog, err := wal.NewSize(nil, nil, dir, 32768) - testutil.Ok(t, err) - - // Enough samples to cause a checkpoint. - numSamples := 10000 - hb, err := NewHead(nil, nil, wlog, int64(numSamples)*10) - testutil.Ok(t, err) - defer hb.Close() - for i := 0; i < numSamples; i++ { - app := hb.Appender() - _, err := app.Add(labels.Labels{{"a", "b"}}, int64(i), 0) - testutil.Ok(t, err) - testutil.Ok(t, app.Commit()) - } - testutil.Ok(t, hb.Delete(0, int64(numSamples), labels.NewEqualMatcher("a", "b"))) - testutil.Ok(t, hb.Truncate(1)) - testutil.Ok(t, hb.Close()) - - // Confirm there's been a checkpoint. - cdir, _, err := LastCheckpoint(dir) - testutil.Ok(t, err) - // Read in checkpoint and WAL. - recs := readTestWAL(t, cdir) - recs = append(recs, readTestWAL(t, dir)...) - - var series, samples, stones int - for _, rec := range recs { - switch rec.(type) { - case []RefSeries: - series++ - case []RefSample: - samples++ - case []Stone: - stones++ - default: - t.Fatalf("unknown record type") - } - } - testutil.Equals(t, 1, series) - testutil.Equals(t, 9999, samples) - testutil.Equals(t, 1, stones) - -} - -func TestDelete_e2e(t *testing.T) { - numDatapoints := 1000 - numRanges := 1000 - timeInterval := int64(2) - // Create 8 series with 1000 data-points of different ranges, delete and run queries. - lbls := [][]labels.Label{ - { - {"a", "b"}, - {"instance", "localhost:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "b"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "b"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prom-k8s"}, - }, - { - {"a", "b"}, - {"instance", "localhost:9090"}, - {"job", "prom-k8s"}, - }, - { - {"a", "c"}, - {"instance", "localhost:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "c"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prometheus"}, - }, - { - {"a", "c"}, - {"instance", "127.0.0.1:9090"}, - {"job", "prom-k8s"}, - }, - { - {"a", "c"}, - {"instance", "localhost:9090"}, - {"job", "prom-k8s"}, - }, - } - seriesMap := map[string][]tsdbutil.Sample{} - for _, l := range lbls { - seriesMap[labels.New(l...).String()] = []tsdbutil.Sample{} - } - dir, _ := ioutil.TempDir("", "test") - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - hb, err := NewHead(nil, nil, nil, 100000) - testutil.Ok(t, err) - defer hb.Close() - app := hb.Appender() - for _, l := range lbls { - ls := labels.New(l...) - series := []tsdbutil.Sample{} - ts := rand.Int63n(300) - for i := 0; i < numDatapoints; i++ { - v := rand.Float64() - _, err := app.Add(ls, ts, v) - testutil.Ok(t, err) - series = append(series, sample{ts, v}) - ts += rand.Int63n(timeInterval) + 1 - } - seriesMap[labels.New(l...).String()] = series - } - testutil.Ok(t, app.Commit()) - // Delete a time-range from each-selector. - dels := []struct { - ms []labels.Matcher - drange Intervals - }{ - { - ms: []labels.Matcher{labels.NewEqualMatcher("a", "b")}, - drange: Intervals{{300, 500}, {600, 670}}, - }, - { - ms: []labels.Matcher{ - labels.NewEqualMatcher("a", "b"), - labels.NewEqualMatcher("job", "prom-k8s"), - }, - drange: Intervals{{300, 500}, {100, 670}}, - }, - { - ms: []labels.Matcher{ - labels.NewEqualMatcher("a", "c"), - labels.NewEqualMatcher("instance", "localhost:9090"), - labels.NewEqualMatcher("job", "prometheus"), - }, - drange: Intervals{{300, 400}, {100, 6700}}, - }, - // TODO: Add Regexp Matchers. - } - for _, del := range dels { - for _, r := range del.drange { - testutil.Ok(t, hb.Delete(r.Mint, r.Maxt, del.ms...)) - } - matched := labels.Slice{} - for _, ls := range lbls { - s := labels.Selector(del.ms) - if s.Matches(ls) { - matched = append(matched, ls) - } - } - sort.Sort(matched) - for i := 0; i < numRanges; i++ { - q, err := NewBlockQuerier(hb, 0, 100000) - testutil.Ok(t, err) - defer q.Close() - ss, err := q.Select(del.ms...) - testutil.Ok(t, err) - // Build the mockSeriesSet. - matchedSeries := make([]Series, 0, len(matched)) - for _, m := range matched { - smpls := seriesMap[m.String()] - smpls = deletedSamples(smpls, del.drange) - // Only append those series for which samples exist as mockSeriesSet - // doesn't skip series with no samples. - // TODO: But sometimes SeriesSet returns an empty SeriesIterator - if len(smpls) > 0 { - matchedSeries = append(matchedSeries, newSeries( - m.Map(), - smpls, - )) - } - } - expSs := newMockSeriesSet(matchedSeries) - // Compare both SeriesSets. - for { - eok, rok := expSs.Next(), ss.Next() - // Skip a series if iterator is empty. - if rok { - for !ss.At().Iterator().Next() { - rok = ss.Next() - if !rok { - break - } - } - } - testutil.Equals(t, eok, rok) - if !eok { - break - } - sexp := expSs.At() - sres := ss.At() - testutil.Equals(t, sexp.Labels(), sres.Labels()) - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } - } -} - -func boundedSamples(full []tsdbutil.Sample, mint, maxt int64) []tsdbutil.Sample { - for len(full) > 0 { - if full[0].T() >= mint { - break - } - full = full[1:] - } - for i, s := range full { - // labels.Labelinate on the first sample larger than maxt. - if s.T() > maxt { - return full[:i] - } - } - // maxt is after highest sample. - return full -} - -func deletedSamples(full []tsdbutil.Sample, dranges Intervals) []tsdbutil.Sample { - ds := make([]tsdbutil.Sample, 0, len(full)) -Outer: - for _, s := range full { - for _, r := range dranges { - if r.inBounds(s.T()) { - continue Outer - } - } - ds = append(ds, s) - } - - return ds -} - -func TestComputeChunkEndTime(t *testing.T) { - cases := []struct { - start, cur, max int64 - res int64 - }{ - { - start: 0, - cur: 250, - max: 1000, - res: 1000, - }, - { - start: 100, - cur: 200, - max: 1000, - res: 550, - }, - // Case where we fit floored 0 chunks. Must catch division by 0 - // and default to maximum time. - { - start: 0, - cur: 500, - max: 1000, - res: 1000, - }, - // Catch division by zero for cur == start. Strictly not a possible case. - { - start: 100, - cur: 100, - max: 1000, - res: 104, - }, - } - - for _, c := range cases { - got := computeChunkEndTime(c.start, c.cur, c.max) - if got != c.res { - t.Errorf("expected %d for (start: %d, cur: %d, max: %d), got %d", c.res, c.start, c.cur, c.max, got) - } - } -} - -func TestMemSeries_append(t *testing.T) { - s := newMemSeries(labels.Labels{}, 1, 500) - - // Add first two samples at the very end of a chunk range and the next two - // on and after it. - // New chunk must correctly be cut at 1000. - ok, chunkCreated := s.append(998, 1) - testutil.Assert(t, ok, "append failed") - testutil.Assert(t, chunkCreated, "first sample created chunk") - - ok, chunkCreated = s.append(999, 2) - testutil.Assert(t, ok, "append failed") - testutil.Assert(t, !chunkCreated, "second sample should use same chunk") - - ok, chunkCreated = s.append(1000, 3) - testutil.Assert(t, ok, "append failed") - testutil.Assert(t, chunkCreated, "expected new chunk on boundary") - - ok, chunkCreated = s.append(1001, 4) - testutil.Assert(t, ok, "append failed") - testutil.Assert(t, !chunkCreated, "second sample should use same chunk") - - testutil.Assert(t, s.chunks[0].minTime == 998 && s.chunks[0].maxTime == 999, "wrong chunk range") - testutil.Assert(t, s.chunks[1].minTime == 1000 && s.chunks[1].maxTime == 1001, "wrong chunk range") - - // Fill the range [1000,2000) with many samples. Intermediate chunks should be cut - // at approximately 120 samples per chunk. - for i := 1; i < 1000; i++ { - ok, _ := s.append(1001+int64(i), float64(i)) - testutil.Assert(t, ok, "append failed") - } - - testutil.Assert(t, len(s.chunks) > 7, "expected intermediate chunks") - - // All chunks but the first and last should now be moderately full. - for i, c := range s.chunks[1 : len(s.chunks)-1] { - testutil.Assert(t, c.chunk.NumSamples() > 100, "unexpected small chunk %d of length %d", i, c.chunk.NumSamples()) - } -} - -func TestGCChunkAccess(t *testing.T) { - // Put a chunk, select it. GC it and then access it. - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(t, err) - defer h.Close() - - h.initTime(0) - - s, _ := h.getOrCreate(1, labels.FromStrings("a", "1")) - s.chunks = []*memChunk{ - {minTime: 0, maxTime: 999}, - {minTime: 1000, maxTime: 1999}, - } - - idx := h.indexRange(0, 1500) - var ( - lset labels.Labels - chunks []chunks.Meta - ) - testutil.Ok(t, idx.Series(1, &lset, &chunks)) - - testutil.Equals(t, labels.Labels{{ - Name: "a", Value: "1", - }}, lset) - testutil.Equals(t, 2, len(chunks)) - - cr := h.chunksRange(0, 1500) - _, err = cr.Chunk(chunks[0].Ref) - testutil.Ok(t, err) - _, err = cr.Chunk(chunks[1].Ref) - testutil.Ok(t, err) - - h.Truncate(1500) // Remove a chunk. - - _, err = cr.Chunk(chunks[0].Ref) - testutil.Equals(t, ErrNotFound, err) - _, err = cr.Chunk(chunks[1].Ref) - testutil.Ok(t, err) -} - -func TestGCSeriesAccess(t *testing.T) { - // Put a series, select it. GC it and then access it. - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(t, err) - defer h.Close() - - h.initTime(0) - - s, _ := h.getOrCreate(1, labels.FromStrings("a", "1")) - s.chunks = []*memChunk{ - {minTime: 0, maxTime: 999}, - {minTime: 1000, maxTime: 1999}, - } - - idx := h.indexRange(0, 2000) - var ( - lset labels.Labels - chunks []chunks.Meta - ) - testutil.Ok(t, idx.Series(1, &lset, &chunks)) - - testutil.Equals(t, labels.Labels{{ - Name: "a", Value: "1", - }}, lset) - testutil.Equals(t, 2, len(chunks)) - - cr := h.chunksRange(0, 2000) - _, err = cr.Chunk(chunks[0].Ref) - testutil.Ok(t, err) - _, err = cr.Chunk(chunks[1].Ref) - testutil.Ok(t, err) - - h.Truncate(2000) // Remove the series. - - testutil.Equals(t, (*memSeries)(nil), h.series.getByID(1)) - - _, err = cr.Chunk(chunks[0].Ref) - testutil.Equals(t, ErrNotFound, err) - _, err = cr.Chunk(chunks[1].Ref) - testutil.Equals(t, ErrNotFound, err) -} - -func TestUncommittedSamplesNotLostOnTruncate(t *testing.T) { - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(t, err) - defer h.Close() - - h.initTime(0) - - app := h.appender() - lset := labels.FromStrings("a", "1") - _, err = app.Add(lset, 2100, 1) - testutil.Ok(t, err) - - testutil.Ok(t, h.Truncate(2000)) - testutil.Assert(t, nil != h.series.getByHash(lset.Hash(), lset), "series should not have been garbage collected") - - testutil.Ok(t, app.Commit()) - - q, err := NewBlockQuerier(h, 1500, 2500) - testutil.Ok(t, err) - defer q.Close() - - ss, err := q.Select(labels.NewEqualMatcher("a", "1")) - testutil.Ok(t, err) - - testutil.Equals(t, true, ss.Next()) -} - -func TestRemoveSeriesAfterRollbackAndTruncate(t *testing.T) { - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(t, err) - defer h.Close() - - h.initTime(0) - - app := h.appender() - lset := labels.FromStrings("a", "1") - _, err = app.Add(lset, 2100, 1) - testutil.Ok(t, err) - - testutil.Ok(t, h.Truncate(2000)) - testutil.Assert(t, nil != h.series.getByHash(lset.Hash(), lset), "series should not have been garbage collected") - - testutil.Ok(t, app.Rollback()) - - q, err := NewBlockQuerier(h, 1500, 2500) - testutil.Ok(t, err) - defer q.Close() - - ss, err := q.Select(labels.NewEqualMatcher("a", "1")) - testutil.Ok(t, err) - - testutil.Equals(t, false, ss.Next()) - - // Truncate again, this time the series should be deleted - testutil.Ok(t, h.Truncate(2050)) - testutil.Equals(t, (*memSeries)(nil), h.series.getByHash(lset.Hash(), lset)) -} - -func TestHead_LogRollback(t *testing.T) { - dir, err := ioutil.TempDir("", "wal_rollback") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := wal.New(nil, nil, dir) - testutil.Ok(t, err) - defer w.Close() - h, err := NewHead(nil, nil, w, 1000) - testutil.Ok(t, err) - - app := h.Appender() - _, err = app.Add(labels.FromStrings("a", "b"), 1, 2) - testutil.Ok(t, err) - - testutil.Ok(t, app.Rollback()) - recs := readTestWAL(t, w.Dir()) - - testutil.Equals(t, 1, len(recs)) - - series, ok := recs[0].([]RefSeries) - testutil.Assert(t, ok, "expected series record but got %+v", recs[0]) - testutil.Equals(t, []RefSeries{{Ref: 1, Labels: labels.FromStrings("a", "b")}}, series) -} - -func TestWalRepair(t *testing.T) { - var enc RecordEncoder - for name, test := range map[string]struct { - corrFunc func(rec []byte) []byte // Func that applies the corruption to a record. - rec []byte - totalRecs int - expRecs int - }{ - "invalid_record": { - func(rec []byte) []byte { - rec[0] = byte(RecordInvalid) - return rec - }, - enc.Series([]RefSeries{{Ref: 1, Labels: labels.FromStrings("a", "b")}}, []byte{}), - 9, - 5, - }, - "decode_series": { - func(rec []byte) []byte { - return rec[:3] - }, - enc.Series([]RefSeries{{Ref: 1, Labels: labels.FromStrings("a", "b")}}, []byte{}), - 9, - 5, - }, - "decode_samples": { - func(rec []byte) []byte { - return rec[:3] - }, - enc.Samples([]RefSample{{Ref: 0, T: 99, V: 1}}, []byte{}), - 9, - 5, - }, - "decode_tombstone": { - func(rec []byte) []byte { - return rec[:3] - }, - enc.Tombstones([]Stone{{ref: 1, intervals: Intervals{}}}, []byte{}), - 9, - 5, - }, - } { - t.Run(name, func(t *testing.T) { - dir, err := ioutil.TempDir("", "wal_head_repair") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := wal.New(nil, nil, dir) - testutil.Ok(t, err) - defer w.Close() - - for i := 1; i <= test.totalRecs; i++ { - // At this point insert a corrupted record. - if i-1 == test.expRecs { - testutil.Ok(t, w.Log(test.corrFunc(test.rec))) - continue - } - testutil.Ok(t, w.Log(test.rec)) - } - - h, err := NewHead(nil, nil, w, 1) - testutil.Ok(t, err) - testutil.Equals(t, 0.0, prom_testutil.ToFloat64(h.metrics.walCorruptionsTotal)) - testutil.Ok(t, h.Init(math.MinInt64)) - testutil.Equals(t, 1.0, prom_testutil.ToFloat64(h.metrics.walCorruptionsTotal)) - - sr, err := wal.NewSegmentsReader(dir) - testutil.Ok(t, err) - defer sr.Close() - r := wal.NewReader(sr) - - var actRec int - for r.Next() { - actRec++ - } - testutil.Ok(t, r.Err()) - testutil.Equals(t, test.expRecs, actRec, "Wrong number of intact records") - }) - } - -} diff --git a/vendor/github.com/prometheus/tsdb/index/index.go b/vendor/github.com/prometheus/tsdb/index/index.go deleted file mode 100644 index 9e5cecce..00000000 --- a/vendor/github.com/prometheus/tsdb/index/index.go +++ /dev/null @@ -1,1101 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package index - -import ( - "bufio" - "encoding/binary" - "hash" - "hash/crc32" - "io" - "io/ioutil" - "math" - "os" - "path/filepath" - "sort" - "strings" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/encoding" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/labels" -) - -const ( - // MagicIndex 4 bytes at the head of an index file. - MagicIndex = 0xBAAAD700 - // HeaderLen represents number of bytes reserved of index for header. - HeaderLen = 5 - - // FormatV1 represents 1 version of index. - FormatV1 = 1 - // FormatV2 represents 2 version of index. - FormatV2 = 2 - - labelNameSeperator = "\xff" - - indexFilename = "index" -) - -type indexWriterSeries struct { - labels labels.Labels - chunks []chunks.Meta // series file offset of chunks - offset uint32 // index file offset of series reference -} - -type indexWriterSeriesSlice []*indexWriterSeries - -func (s indexWriterSeriesSlice) Len() int { return len(s) } -func (s indexWriterSeriesSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } - -func (s indexWriterSeriesSlice) Less(i, j int) bool { - return labels.Compare(s[i].labels, s[j].labels) < 0 -} - -type indexWriterStage uint8 - -const ( - idxStageNone indexWriterStage = iota - idxStageSymbols - idxStageSeries - idxStageLabelIndex - idxStagePostings - idxStageDone -) - -func (s indexWriterStage) String() string { - switch s { - case idxStageNone: - return "none" - case idxStageSymbols: - return "symbols" - case idxStageSeries: - return "series" - case idxStageLabelIndex: - return "label index" - case idxStagePostings: - return "postings" - case idxStageDone: - return "done" - } - return "" -} - -// The table gets initialized with sync.Once but may still cause a race -// with any other use of the crc32 package anywhere. Thus we initialize it -// before. -var castagnoliTable *crc32.Table - -func init() { - castagnoliTable = crc32.MakeTable(crc32.Castagnoli) -} - -// newCRC32 initializes a CRC32 hash with a preconfigured polynomial, so the -// polynomial may be easily changed in one location at a later time, if necessary. -func newCRC32() hash.Hash32 { - return crc32.New(castagnoliTable) -} - -// Writer implements the IndexWriter interface for the standard -// serialization format. -type Writer struct { - f *os.File - fbuf *bufio.Writer - pos uint64 - - toc TOC - stage indexWriterStage - - // Reusable memory. - buf1 encoding.Encbuf - buf2 encoding.Encbuf - uint32s []uint32 - - symbols map[string]uint32 // symbol offsets - seriesOffsets map[uint64]uint64 // offsets of series - labelIndexes []hashEntry // label index offsets - postings []hashEntry // postings lists offsets - - // Hold last series to validate that clients insert new series in order. - lastSeries labels.Labels - - crc32 hash.Hash - - Version int -} - -// TOC represents index Table Of Content that states where each section of index starts. -type TOC struct { - Symbols uint64 - Series uint64 - LabelIndices uint64 - LabelIndicesTable uint64 - Postings uint64 - PostingsTable uint64 -} - -// NewTOCFromByteSlice return parsed TOC from given index byte slice. -func NewTOCFromByteSlice(bs ByteSlice) (*TOC, error) { - if bs.Len() < indexTOCLen { - return nil, encoding.ErrInvalidSize - } - b := bs.Range(bs.Len()-indexTOCLen, bs.Len()) - - expCRC := binary.BigEndian.Uint32(b[len(b)-4:]) - d := encoding.Decbuf{B: b[:len(b)-4]} - - if d.Crc32(castagnoliTable) != expCRC { - return nil, errors.Wrap(encoding.ErrInvalidChecksum, "read TOC") - } - - if err := d.Err(); err != nil { - return nil, err - } - - return &TOC{ - Symbols: d.Be64(), - Series: d.Be64(), - LabelIndices: d.Be64(), - LabelIndicesTable: d.Be64(), - Postings: d.Be64(), - PostingsTable: d.Be64(), - }, nil -} - -// NewWriter returns a new Writer to the given filename. It serializes data in format version 2. -func NewWriter(fn string) (*Writer, error) { - dir := filepath.Dir(fn) - - df, err := fileutil.OpenDir(dir) - if err != nil { - return nil, err - } - defer df.Close() // Close for platform windows. - - if err := os.RemoveAll(fn); err != nil { - return nil, errors.Wrap(err, "remove any existing index at path") - } - - f, err := os.OpenFile(fn, os.O_CREATE|os.O_WRONLY, 0666) - if err != nil { - return nil, err - } - if err := df.Sync(); err != nil { - return nil, errors.Wrap(err, "sync dir") - } - - iw := &Writer{ - f: f, - fbuf: bufio.NewWriterSize(f, 1<<22), - pos: 0, - stage: idxStageNone, - - // Reusable memory. - buf1: encoding.Encbuf{B: make([]byte, 0, 1<<22)}, - buf2: encoding.Encbuf{B: make([]byte, 0, 1<<22)}, - uint32s: make([]uint32, 0, 1<<15), - - // Caches. - symbols: make(map[string]uint32, 1<<13), - seriesOffsets: make(map[uint64]uint64, 1<<16), - crc32: newCRC32(), - } - if err := iw.writeMeta(); err != nil { - return nil, err - } - return iw, nil -} - -func (w *Writer) write(bufs ...[]byte) error { - for _, b := range bufs { - n, err := w.fbuf.Write(b) - w.pos += uint64(n) - if err != nil { - return err - } - // For now the index file must not grow beyond 64GiB. Some of the fixed-sized - // offset references in v1 are only 4 bytes large. - // Once we move to compressed/varint representations in those areas, this limitation - // can be lifted. - if w.pos > 16*math.MaxUint32 { - return errors.Errorf("exceeding max size of 64GiB") - } - } - return nil -} - -// addPadding adds zero byte padding until the file size is a multiple size. -func (w *Writer) addPadding(size int) error { - p := w.pos % uint64(size) - if p == 0 { - return nil - } - p = uint64(size) - p - return errors.Wrap(w.write(make([]byte, p)), "add padding") -} - -// ensureStage handles transitions between write stages and ensures that IndexWriter -// methods are called in an order valid for the implementation. -func (w *Writer) ensureStage(s indexWriterStage) error { - if w.stage == s { - return nil - } - if w.stage > s { - return errors.Errorf("invalid stage %q, currently at %q", s, w.stage) - } - - // Mark start of sections in table of contents. - switch s { - case idxStageSymbols: - w.toc.Symbols = w.pos - case idxStageSeries: - w.toc.Series = w.pos - - case idxStageLabelIndex: - w.toc.LabelIndices = w.pos - - case idxStagePostings: - w.toc.Postings = w.pos - - case idxStageDone: - w.toc.LabelIndicesTable = w.pos - if err := w.writeOffsetTable(w.labelIndexes); err != nil { - return err - } - w.toc.PostingsTable = w.pos - if err := w.writeOffsetTable(w.postings); err != nil { - return err - } - if err := w.writeTOC(); err != nil { - return err - } - } - - w.stage = s - return nil -} - -func (w *Writer) writeMeta() error { - w.buf1.Reset() - w.buf1.PutBE32(MagicIndex) - w.buf1.PutByte(FormatV2) - - return w.write(w.buf1.Get()) -} - -// AddSeries adds the series one at a time along with its chunks. -func (w *Writer) AddSeries(ref uint64, lset labels.Labels, chunks ...chunks.Meta) error { - if err := w.ensureStage(idxStageSeries); err != nil { - return err - } - if labels.Compare(lset, w.lastSeries) <= 0 { - return errors.Errorf("out-of-order series added with label set %q", lset) - } - - if _, ok := w.seriesOffsets[ref]; ok { - return errors.Errorf("series with reference %d already added", ref) - } - // We add padding to 16 bytes to increase the addressable space we get through 4 byte - // series references. - if err := w.addPadding(16); err != nil { - return errors.Errorf("failed to write padding bytes: %v", err) - } - - if w.pos%16 != 0 { - return errors.Errorf("series write not 16-byte aligned at %d", w.pos) - } - w.seriesOffsets[ref] = w.pos / 16 - - w.buf2.Reset() - w.buf2.PutUvarint(len(lset)) - - for _, l := range lset { - // here we have an index for the symbol file if v2, otherwise it's an offset - index, ok := w.symbols[l.Name] - if !ok { - return errors.Errorf("symbol entry for %q does not exist", l.Name) - } - w.buf2.PutUvarint32(index) - - index, ok = w.symbols[l.Value] - if !ok { - return errors.Errorf("symbol entry for %q does not exist", l.Value) - } - w.buf2.PutUvarint32(index) - } - - w.buf2.PutUvarint(len(chunks)) - - if len(chunks) > 0 { - c := chunks[0] - w.buf2.PutVarint64(c.MinTime) - w.buf2.PutUvarint64(uint64(c.MaxTime - c.MinTime)) - w.buf2.PutUvarint64(c.Ref) - t0 := c.MaxTime - ref0 := int64(c.Ref) - - for _, c := range chunks[1:] { - w.buf2.PutUvarint64(uint64(c.MinTime - t0)) - w.buf2.PutUvarint64(uint64(c.MaxTime - c.MinTime)) - t0 = c.MaxTime - - w.buf2.PutVarint64(int64(c.Ref) - ref0) - ref0 = int64(c.Ref) - } - } - - w.buf1.Reset() - w.buf1.PutUvarint(w.buf2.Len()) - - w.buf2.PutHash(w.crc32) - - if err := w.write(w.buf1.Get(), w.buf2.Get()); err != nil { - return errors.Wrap(err, "write series data") - } - - w.lastSeries = append(w.lastSeries[:0], lset...) - - return nil -} - -func (w *Writer) AddSymbols(sym map[string]struct{}) error { - if err := w.ensureStage(idxStageSymbols); err != nil { - return err - } - // Generate sorted list of strings we will store as reference table. - symbols := make([]string, 0, len(sym)) - - for s := range sym { - symbols = append(symbols, s) - } - sort.Strings(symbols) - - w.buf1.Reset() - w.buf2.Reset() - - w.buf2.PutBE32int(len(symbols)) - - w.symbols = make(map[string]uint32, len(symbols)) - - for index, s := range symbols { - w.symbols[s] = uint32(index) - w.buf2.PutUvarintStr(s) - } - - w.buf1.PutBE32int(w.buf2.Len()) - w.buf2.PutHash(w.crc32) - - err := w.write(w.buf1.Get(), w.buf2.Get()) - return errors.Wrap(err, "write symbols") -} - -func (w *Writer) WriteLabelIndex(names []string, values []string) error { - if len(values)%len(names) != 0 { - return errors.Errorf("invalid value list length %d for %d names", len(values), len(names)) - } - if err := w.ensureStage(idxStageLabelIndex); err != nil { - return errors.Wrap(err, "ensure stage") - } - - valt, err := NewStringTuples(values, len(names)) - if err != nil { - return err - } - sort.Sort(valt) - - // Align beginning to 4 bytes for more efficient index list scans. - if err := w.addPadding(4); err != nil { - return err - } - - w.labelIndexes = append(w.labelIndexes, hashEntry{ - keys: names, - offset: w.pos, - }) - - w.buf2.Reset() - w.buf2.PutBE32int(len(names)) - w.buf2.PutBE32int(valt.Len()) - - // here we have an index for the symbol file if v2, otherwise it's an offset - for _, v := range valt.entries { - index, ok := w.symbols[v] - if !ok { - return errors.Errorf("symbol entry for %q does not exist", v) - } - w.buf2.PutBE32(index) - } - - w.buf1.Reset() - w.buf1.PutBE32int(w.buf2.Len()) - - w.buf2.PutHash(w.crc32) - - err = w.write(w.buf1.Get(), w.buf2.Get()) - return errors.Wrap(err, "write label index") -} - -// writeOffsetTable writes a sequence of readable hash entries. -func (w *Writer) writeOffsetTable(entries []hashEntry) error { - w.buf2.Reset() - w.buf2.PutBE32int(len(entries)) - - for _, e := range entries { - w.buf2.PutUvarint(len(e.keys)) - for _, k := range e.keys { - w.buf2.PutUvarintStr(k) - } - w.buf2.PutUvarint64(e.offset) - } - - w.buf1.Reset() - w.buf1.PutBE32int(w.buf2.Len()) - w.buf2.PutHash(w.crc32) - - return w.write(w.buf1.Get(), w.buf2.Get()) -} - -const indexTOCLen = 6*8 + 4 - -func (w *Writer) writeTOC() error { - w.buf1.Reset() - - w.buf1.PutBE64(w.toc.Symbols) - w.buf1.PutBE64(w.toc.Series) - w.buf1.PutBE64(w.toc.LabelIndices) - w.buf1.PutBE64(w.toc.LabelIndicesTable) - w.buf1.PutBE64(w.toc.Postings) - w.buf1.PutBE64(w.toc.PostingsTable) - - w.buf1.PutHash(w.crc32) - - return w.write(w.buf1.Get()) -} - -func (w *Writer) WritePostings(name, value string, it Postings) error { - if err := w.ensureStage(idxStagePostings); err != nil { - return errors.Wrap(err, "ensure stage") - } - - // Align beginning to 4 bytes for more efficient postings list scans. - if err := w.addPadding(4); err != nil { - return err - } - - w.postings = append(w.postings, hashEntry{ - keys: []string{name, value}, - offset: w.pos, - }) - - // Order of the references in the postings list does not imply order - // of the series references within the persisted block they are mapped to. - // We have to sort the new references again. - refs := w.uint32s[:0] - - for it.Next() { - offset, ok := w.seriesOffsets[it.At()] - if !ok { - return errors.Errorf("%p series for reference %d not found", w, it.At()) - } - if offset > (1<<32)-1 { - return errors.Errorf("series offset %d exceeds 4 bytes", offset) - } - refs = append(refs, uint32(offset)) - } - if err := it.Err(); err != nil { - return err - } - sort.Sort(uint32slice(refs)) - - w.buf2.Reset() - w.buf2.PutBE32int(len(refs)) - - for _, r := range refs { - w.buf2.PutBE32(r) - } - w.uint32s = refs - - w.buf1.Reset() - w.buf1.PutBE32int(w.buf2.Len()) - - w.buf2.PutHash(w.crc32) - - err := w.write(w.buf1.Get(), w.buf2.Get()) - return errors.Wrap(err, "write postings") -} - -type uint32slice []uint32 - -func (s uint32slice) Len() int { return len(s) } -func (s uint32slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s uint32slice) Less(i, j int) bool { return s[i] < s[j] } - -type hashEntry struct { - keys []string - offset uint64 -} - -func (w *Writer) Close() error { - if err := w.ensureStage(idxStageDone); err != nil { - return err - } - if err := w.fbuf.Flush(); err != nil { - return err - } - if err := w.f.Sync(); err != nil { - return err - } - return w.f.Close() -} - -// StringTuples provides access to a sorted list of string tuples. -type StringTuples interface { - // Total number of tuples in the list. - Len() int - // At returns the tuple at position i. - At(i int) ([]string, error) -} - -type Reader struct { - b ByteSlice - - // Close that releases the underlying resources of the byte slice. - c io.Closer - - // Cached hashmaps of section offsets. - labels map[string]uint64 - // LabelName to LabelValue to offset map. - postings map[string]map[string]uint64 - // Cache of read symbols. Strings that are returned when reading from the - // block are always backed by true strings held in here rather than - // strings that are backed by byte slices from the mmap'd index file. This - // prevents memory faults when applications work with read symbols after - // the block has been unmapped. The older format has sparse indexes so a map - // must be used, but the new format is not so we can use a slice. - symbolsV1 map[uint32]string - symbolsV2 []string - symbolsTableSize uint64 - - dec *Decoder - - version int -} - -// ByteSlice abstracts a byte slice. -type ByteSlice interface { - Len() int - Range(start, end int) []byte -} - -type realByteSlice []byte - -func (b realByteSlice) Len() int { - return len(b) -} - -func (b realByteSlice) Range(start, end int) []byte { - return b[start:end] -} - -func (b realByteSlice) Sub(start, end int) ByteSlice { - return b[start:end] -} - -// NewReader returns a new index reader on the given byte slice. It automatically -// handles different format versions. -func NewReader(b ByteSlice) (*Reader, error) { - return newReader(b, ioutil.NopCloser(nil)) -} - -// NewFileReader returns a new index reader against the given index file. -func NewFileReader(path string) (*Reader, error) { - f, err := fileutil.OpenMmapFile(path) - if err != nil { - return nil, err - } - r, err := newReader(realByteSlice(f.Bytes()), f) - if err != nil { - var merr tsdb_errors.MultiError - merr.Add(err) - merr.Add(f.Close()) - return nil, merr - } - - return r, nil -} - -func newReader(b ByteSlice, c io.Closer) (*Reader, error) { - r := &Reader{ - b: b, - c: c, - labels: map[string]uint64{}, - postings: map[string]map[string]uint64{}, - } - - // Verify header. - if r.b.Len() < HeaderLen { - return nil, errors.Wrap(encoding.ErrInvalidSize, "index header") - } - if m := binary.BigEndian.Uint32(r.b.Range(0, 4)); m != MagicIndex { - return nil, errors.Errorf("invalid magic number %x", m) - } - r.version = int(r.b.Range(4, 5)[0]) - - if r.version != FormatV1 && r.version != FormatV2 { - return nil, errors.Errorf("unknown index file version %d", r.version) - } - - toc, err := NewTOCFromByteSlice(b) - if err != nil { - return nil, errors.Wrap(err, "read TOC") - } - - r.symbolsV2, r.symbolsV1, err = ReadSymbols(r.b, r.version, int(toc.Symbols)) - if err != nil { - return nil, errors.Wrap(err, "read symbols") - } - - // Use the strings already allocated by symbols, rather than - // re-allocating them again below. - // Additionally, calculate symbolsTableSize. - allocatedSymbols := make(map[string]string, len(r.symbolsV1)+len(r.symbolsV2)) - for _, s := range r.symbolsV1 { - r.symbolsTableSize += uint64(len(s) + 8) - allocatedSymbols[s] = s - } - for _, s := range r.symbolsV2 { - r.symbolsTableSize += uint64(len(s) + 8) - allocatedSymbols[s] = s - } - - if err := ReadOffsetTable(r.b, toc.LabelIndicesTable, func(key []string, off uint64) error { - if len(key) != 1 { - return errors.Errorf("unexpected key length for label indices table %d", len(key)) - } - - r.labels[allocatedSymbols[key[0]]] = off - return nil - }); err != nil { - return nil, errors.Wrap(err, "read label index table") - } - - r.postings[""] = map[string]uint64{} - if err := ReadOffsetTable(r.b, toc.PostingsTable, func(key []string, off uint64) error { - if len(key) != 2 { - return errors.Errorf("unexpected key length for posting table %d", len(key)) - } - if _, ok := r.postings[key[0]]; !ok { - r.postings[allocatedSymbols[key[0]]] = map[string]uint64{} - } - r.postings[key[0]][allocatedSymbols[key[1]]] = off - return nil - }); err != nil { - return nil, errors.Wrap(err, "read postings table") - } - - r.dec = &Decoder{LookupSymbol: r.lookupSymbol} - - return r, nil -} - -// Version returns the file format version of the underlying index. -func (r *Reader) Version() int { - return r.version -} - -// Range marks a byte range. -type Range struct { - Start, End int64 -} - -// PostingsRanges returns a new map of byte range in the underlying index file -// for all postings lists. -func (r *Reader) PostingsRanges() (map[labels.Label]Range, error) { - m := map[labels.Label]Range{} - - for k, e := range r.postings { - for v, start := range e { - d := encoding.NewDecbufAt(r.b, int(start), castagnoliTable) - if d.Err() != nil { - return nil, d.Err() - } - m[labels.Label{Name: k, Value: v}] = Range{ - Start: int64(start) + 4, - End: int64(start) + 4 + int64(d.Len()), - } - } - } - return m, nil -} - -// ReadSymbols reads the symbol table fully into memory and allocates proper strings for them. -// Strings backed by the mmap'd memory would cause memory faults if applications keep using them -// after the reader is closed. -func ReadSymbols(bs ByteSlice, version int, off int) ([]string, map[uint32]string, error) { - if off == 0 { - return nil, nil, nil - } - d := encoding.NewDecbufAt(bs, off, castagnoliTable) - - var ( - origLen = d.Len() - cnt = d.Be32int() - basePos = uint32(off) + 4 - nextPos = basePos + uint32(origLen-d.Len()) - symbolSlice []string - symbols = map[uint32]string{} - ) - if version == FormatV2 { - symbolSlice = make([]string, 0, cnt) - } - - for d.Err() == nil && d.Len() > 0 && cnt > 0 { - s := d.UvarintStr() - - if version == FormatV2 { - symbolSlice = append(symbolSlice, s) - } else { - symbols[nextPos] = s - nextPos = basePos + uint32(origLen-d.Len()) - } - cnt-- - } - return symbolSlice, symbols, errors.Wrap(d.Err(), "read symbols") -} - -// ReadOffsetTable reads an offset table and at the given position calls f for each -// found entry. If f returns an error it stops decoding and returns the received error. -func ReadOffsetTable(bs ByteSlice, off uint64, f func([]string, uint64) error) error { - d := encoding.NewDecbufAt(bs, int(off), castagnoliTable) - cnt := d.Be32() - - for d.Err() == nil && d.Len() > 0 && cnt > 0 { - keyCount := d.Uvarint() - keys := make([]string, 0, keyCount) - - for i := 0; i < keyCount; i++ { - keys = append(keys, d.UvarintStr()) - } - o := d.Uvarint64() - if d.Err() != nil { - break - } - if err := f(keys, o); err != nil { - return err - } - cnt-- - } - return d.Err() -} - -// Close the reader and its underlying resources. -func (r *Reader) Close() error { - return r.c.Close() -} - -func (r *Reader) lookupSymbol(o uint32) (string, error) { - if int(o) < len(r.symbolsV2) { - return r.symbolsV2[o], nil - } - s, ok := r.symbolsV1[o] - if !ok { - return "", errors.Errorf("unknown symbol offset %d", o) - } - return s, nil -} - -// Symbols returns a set of symbols that exist within the index. -func (r *Reader) Symbols() (map[string]struct{}, error) { - res := make(map[string]struct{}, len(r.symbolsV1)+len(r.symbolsV2)) - - for _, s := range r.symbolsV1 { - res[s] = struct{}{} - } - for _, s := range r.symbolsV2 { - res[s] = struct{}{} - } - return res, nil -} - -// SymbolTableSize returns the symbol table size in bytes. -func (r *Reader) SymbolTableSize() uint64 { - return r.symbolsTableSize -} - -// LabelValues returns value tuples that exist for the given label name tuples. -func (r *Reader) LabelValues(names ...string) (StringTuples, error) { - - key := strings.Join(names, labelNameSeperator) - off, ok := r.labels[key] - if !ok { - // XXX(fabxc): hot fix. Should return a partial data error and handle cases - // where the entire block has no data gracefully. - return emptyStringTuples{}, nil - //return nil, fmt.Errorf("label index doesn't exist") - } - - d := encoding.NewDecbufAt(r.b, int(off), castagnoliTable) - - nc := d.Be32int() - d.Be32() // consume unused value entry count. - - if d.Err() != nil { - return nil, errors.Wrap(d.Err(), "read label value index") - } - st := &serializedStringTuples{ - idsCount: nc, - idsBytes: d.Get(), - lookup: r.lookupSymbol, - } - return st, nil -} - -type emptyStringTuples struct{} - -func (emptyStringTuples) At(i int) ([]string, error) { return nil, nil } -func (emptyStringTuples) Len() int { return 0 } - -// LabelIndices returns a slice of label names for which labels or label tuples value indices exist. -// NOTE: This is deprecated. Use `LabelNames()` instead. -func (r *Reader) LabelIndices() ([][]string, error) { - var res [][]string - for s := range r.labels { - res = append(res, strings.Split(s, labelNameSeperator)) - } - return res, nil -} - -// Series reads the series with the given ID and writes its labels and chunks into lbls and chks. -func (r *Reader) Series(id uint64, lbls *labels.Labels, chks *[]chunks.Meta) error { - offset := id - // In version 2 series IDs are no longer exact references but series are 16-byte padded - // and the ID is the multiple of 16 of the actual position. - if r.version == FormatV2 { - offset = id * 16 - } - d := encoding.NewDecbufUvarintAt(r.b, int(offset), castagnoliTable) - if d.Err() != nil { - return d.Err() - } - return errors.Wrap(r.dec.Series(d.Get(), lbls, chks), "read series") -} - -// Postings returns a postings list for the given label pair. -func (r *Reader) Postings(name, value string) (Postings, error) { - e, ok := r.postings[name] - if !ok { - return EmptyPostings(), nil - } - off, ok := e[value] - if !ok { - return EmptyPostings(), nil - } - d := encoding.NewDecbufAt(r.b, int(off), castagnoliTable) - if d.Err() != nil { - return nil, errors.Wrap(d.Err(), "get postings entry") - } - _, p, err := r.dec.Postings(d.Get()) - if err != nil { - return nil, errors.Wrap(err, "decode postings") - } - return p, nil -} - -// SortedPostings returns the given postings list reordered so that the backing series -// are sorted. -func (r *Reader) SortedPostings(p Postings) Postings { - return p -} - -// Size returns the size of an index file. -func (r *Reader) Size() int64 { - return int64(r.b.Len()) -} - -// LabelNames returns all the unique label names present in the index. -func (r *Reader) LabelNames() ([]string, error) { - labelNamesMap := make(map[string]struct{}, len(r.labels)) - for key := range r.labels { - // 'key' contains the label names concatenated with the - // delimiter 'labelNameSeperator'. - names := strings.Split(key, labelNameSeperator) - for _, name := range names { - if name == allPostingsKey.Name { - // This is not from any metric. - // It is basically an empty label name. - continue - } - labelNamesMap[name] = struct{}{} - } - } - labelNames := make([]string, 0, len(labelNamesMap)) - for name := range labelNamesMap { - labelNames = append(labelNames, name) - } - sort.Strings(labelNames) - return labelNames, nil -} - -type stringTuples struct { - length int // tuple length - entries []string // flattened tuple entries -} - -func NewStringTuples(entries []string, length int) (*stringTuples, error) { - if len(entries)%length != 0 { - return nil, errors.Wrap(encoding.ErrInvalidSize, "string tuple list") - } - return &stringTuples{entries: entries, length: length}, nil -} - -func (t *stringTuples) Len() int { return len(t.entries) / t.length } -func (t *stringTuples) At(i int) ([]string, error) { return t.entries[i : i+t.length], nil } - -func (t *stringTuples) Swap(i, j int) { - c := make([]string, t.length) - copy(c, t.entries[i:i+t.length]) - - for k := 0; k < t.length; k++ { - t.entries[i+k] = t.entries[j+k] - t.entries[j+k] = c[k] - } -} - -func (t *stringTuples) Less(i, j int) bool { - for k := 0; k < t.length; k++ { - d := strings.Compare(t.entries[i+k], t.entries[j+k]) - - if d < 0 { - return true - } - if d > 0 { - return false - } - } - return false -} - -type serializedStringTuples struct { - idsCount int - idsBytes []byte // bytes containing the ids pointing to the string in the lookup table. - lookup func(uint32) (string, error) -} - -func (t *serializedStringTuples) Len() int { - return len(t.idsBytes) / (4 * t.idsCount) -} - -func (t *serializedStringTuples) At(i int) ([]string, error) { - if len(t.idsBytes) < (i+t.idsCount)*4 { - return nil, encoding.ErrInvalidSize - } - res := make([]string, 0, t.idsCount) - - for k := 0; k < t.idsCount; k++ { - offset := binary.BigEndian.Uint32(t.idsBytes[(i+k)*4:]) - - s, err := t.lookup(offset) - if err != nil { - return nil, errors.Wrap(err, "symbol lookup") - } - res = append(res, s) - } - - return res, nil -} - -// Decoder provides decoding methods for the v1 and v2 index file format. -// -// It currently does not contain decoding methods for all entry types but can be extended -// by them if there's demand. -type Decoder struct { - LookupSymbol func(uint32) (string, error) -} - -// Postings returns a postings list for b and its number of elements. -func (dec *Decoder) Postings(b []byte) (int, Postings, error) { - d := encoding.Decbuf{B: b} - n := d.Be32int() - l := d.Get() - return n, newBigEndianPostings(l), d.Err() -} - -// Series decodes a series entry from the given byte slice into lset and chks. -func (dec *Decoder) Series(b []byte, lbls *labels.Labels, chks *[]chunks.Meta) error { - *lbls = (*lbls)[:0] - *chks = (*chks)[:0] - - d := encoding.Decbuf{B: b} - - k := d.Uvarint() - - for i := 0; i < k; i++ { - lno := uint32(d.Uvarint()) - lvo := uint32(d.Uvarint()) - - if d.Err() != nil { - return errors.Wrap(d.Err(), "read series label offsets") - } - - ln, err := dec.LookupSymbol(lno) - if err != nil { - return errors.Wrap(err, "lookup label name") - } - lv, err := dec.LookupSymbol(lvo) - if err != nil { - return errors.Wrap(err, "lookup label value") - } - - *lbls = append(*lbls, labels.Label{Name: ln, Value: lv}) - } - - // Read the chunks meta data. - k = d.Uvarint() - - if k == 0 { - return nil - } - - t0 := d.Varint64() - maxt := int64(d.Uvarint64()) + t0 - ref0 := int64(d.Uvarint64()) - - *chks = append(*chks, chunks.Meta{ - Ref: uint64(ref0), - MinTime: t0, - MaxTime: maxt, - }) - t0 = maxt - - for i := 1; i < k; i++ { - mint := int64(d.Uvarint64()) + t0 - maxt := int64(d.Uvarint64()) + mint - - ref0 += d.Varint64() - t0 = maxt - - if d.Err() != nil { - return errors.Wrapf(d.Err(), "read meta for chunk %d", i) - } - - *chks = append(*chks, chunks.Meta{ - Ref: uint64(ref0), - MinTime: mint, - MaxTime: maxt, - }) - } - return d.Err() -} diff --git a/vendor/github.com/prometheus/tsdb/index/index_test.go b/vendor/github.com/prometheus/tsdb/index/index_test.go deleted file mode 100644 index b82d07d2..00000000 --- a/vendor/github.com/prometheus/tsdb/index/index_test.go +++ /dev/null @@ -1,429 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package index - -import ( - "io/ioutil" - "math/rand" - "os" - "path/filepath" - "sort" - "testing" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/encoding" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" -) - -type series struct { - l labels.Labels - chunks []chunks.Meta -} - -type mockIndex struct { - series map[uint64]series - labelIndex map[string][]string - postings map[labels.Label][]uint64 - symbols map[string]struct{} -} - -func newMockIndex() mockIndex { - ix := mockIndex{ - series: make(map[uint64]series), - labelIndex: make(map[string][]string), - postings: make(map[labels.Label][]uint64), - symbols: make(map[string]struct{}), - } - return ix -} - -func (m mockIndex) Symbols() (map[string]struct{}, error) { - return m.symbols, nil -} - -func (m mockIndex) AddSeries(ref uint64, l labels.Labels, chunks ...chunks.Meta) error { - if _, ok := m.series[ref]; ok { - return errors.Errorf("series with reference %d already added", ref) - } - for _, lbl := range l { - m.symbols[lbl.Name] = struct{}{} - m.symbols[lbl.Value] = struct{}{} - } - - s := series{l: l} - // Actual chunk data is not stored in the index. - for _, c := range chunks { - c.Chunk = nil - s.chunks = append(s.chunks, c) - } - m.series[ref] = s - - return nil -} - -func (m mockIndex) WriteLabelIndex(names []string, values []string) error { - // TODO support composite indexes - if len(names) != 1 { - return errors.New("composite indexes not supported yet") - } - sort.Strings(values) - m.labelIndex[names[0]] = values - return nil -} - -func (m mockIndex) WritePostings(name, value string, it Postings) error { - l := labels.Label{Name: name, Value: value} - if _, ok := m.postings[l]; ok { - return errors.Errorf("postings for %s already added", l) - } - ep, err := ExpandPostings(it) - if err != nil { - return err - } - m.postings[l] = ep - return nil -} - -func (m mockIndex) Close() error { - return nil -} - -func (m mockIndex) LabelValues(names ...string) (StringTuples, error) { - // TODO support composite indexes - if len(names) != 1 { - return nil, errors.New("composite indexes not supported yet") - } - - return NewStringTuples(m.labelIndex[names[0]], 1) -} - -func (m mockIndex) Postings(name, value string) (Postings, error) { - l := labels.Label{Name: name, Value: value} - return NewListPostings(m.postings[l]), nil -} - -func (m mockIndex) SortedPostings(p Postings) Postings { - ep, err := ExpandPostings(p) - if err != nil { - return ErrPostings(errors.Wrap(err, "expand postings")) - } - - sort.Slice(ep, func(i, j int) bool { - return labels.Compare(m.series[ep[i]].l, m.series[ep[j]].l) < 0 - }) - return NewListPostings(ep) -} - -func (m mockIndex) Series(ref uint64, lset *labels.Labels, chks *[]chunks.Meta) error { - s, ok := m.series[ref] - if !ok { - return errors.New("not found") - } - *lset = append((*lset)[:0], s.l...) - *chks = append((*chks)[:0], s.chunks...) - - return nil -} - -func (m mockIndex) LabelIndices() ([][]string, error) { - res := make([][]string, 0, len(m.labelIndex)) - for k := range m.labelIndex { - res = append(res, []string{k}) - } - return res, nil -} - -func TestIndexRW_Create_Open(t *testing.T) { - dir, err := ioutil.TempDir("", "test_index_create") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - fn := filepath.Join(dir, indexFilename) - - // An empty index must still result in a readable file. - iw, err := NewWriter(fn) - testutil.Ok(t, err) - testutil.Ok(t, iw.Close()) - - ir, err := NewFileReader(fn) - testutil.Ok(t, err) - testutil.Ok(t, ir.Close()) - - // Modify magic header must cause open to fail. - f, err := os.OpenFile(fn, os.O_WRONLY, 0666) - testutil.Ok(t, err) - _, err = f.WriteAt([]byte{0, 0}, 0) - testutil.Ok(t, err) - f.Close() - - _, err = NewFileReader(dir) - testutil.NotOk(t, err) -} - -func TestIndexRW_Postings(t *testing.T) { - dir, err := ioutil.TempDir("", "test_index_postings") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - fn := filepath.Join(dir, indexFilename) - - iw, err := NewWriter(fn) - testutil.Ok(t, err) - - series := []labels.Labels{ - labels.FromStrings("a", "1", "b", "1"), - labels.FromStrings("a", "1", "b", "2"), - labels.FromStrings("a", "1", "b", "3"), - labels.FromStrings("a", "1", "b", "4"), - } - - err = iw.AddSymbols(map[string]struct{}{ - "a": {}, - "b": {}, - "1": {}, - "2": {}, - "3": {}, - "4": {}, - }) - testutil.Ok(t, err) - - // Postings lists are only written if a series with the respective - // reference was added before. - testutil.Ok(t, iw.AddSeries(1, series[0])) - testutil.Ok(t, iw.AddSeries(2, series[1])) - testutil.Ok(t, iw.AddSeries(3, series[2])) - testutil.Ok(t, iw.AddSeries(4, series[3])) - - err = iw.WritePostings("a", "1", newListPostings(1, 2, 3, 4)) - testutil.Ok(t, err) - - testutil.Ok(t, iw.Close()) - - ir, err := NewFileReader(fn) - testutil.Ok(t, err) - - p, err := ir.Postings("a", "1") - testutil.Ok(t, err) - - var l labels.Labels - var c []chunks.Meta - - for i := 0; p.Next(); i++ { - err := ir.Series(p.At(), &l, &c) - - testutil.Ok(t, err) - testutil.Equals(t, 0, len(c)) - testutil.Equals(t, series[i], l) - } - testutil.Ok(t, p.Err()) - - testutil.Ok(t, ir.Close()) -} - -func TestPersistence_index_e2e(t *testing.T) { - dir, err := ioutil.TempDir("", "test_persistence_e2e") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - lbls, err := labels.ReadLabels(filepath.Join("..", "testdata", "20kseries.json"), 20000) - testutil.Ok(t, err) - - // Sort labels as the index writer expects series in sorted order. - sort.Sort(labels.Slice(lbls)) - - symbols := map[string]struct{}{} - for _, lset := range lbls { - for _, l := range lset { - symbols[l.Name] = struct{}{} - symbols[l.Value] = struct{}{} - } - } - - var input indexWriterSeriesSlice - - // Generate ChunkMetas for every label set. - for i, lset := range lbls { - var metas []chunks.Meta - - for j := 0; j <= (i % 20); j++ { - metas = append(metas, chunks.Meta{ - MinTime: int64(j * 10000), - MaxTime: int64((j + 1) * 10000), - Ref: rand.Uint64(), - Chunk: chunkenc.NewXORChunk(), - }) - } - input = append(input, &indexWriterSeries{ - labels: lset, - chunks: metas, - }) - } - - iw, err := NewWriter(filepath.Join(dir, indexFilename)) - testutil.Ok(t, err) - - testutil.Ok(t, iw.AddSymbols(symbols)) - - // Population procedure as done by compaction. - var ( - postings = NewMemPostings() - values = map[string]map[string]struct{}{} - ) - - mi := newMockIndex() - - for i, s := range input { - err = iw.AddSeries(uint64(i), s.labels, s.chunks...) - testutil.Ok(t, err) - mi.AddSeries(uint64(i), s.labels, s.chunks...) - - for _, l := range s.labels { - valset, ok := values[l.Name] - if !ok { - valset = map[string]struct{}{} - values[l.Name] = valset - } - valset[l.Value] = struct{}{} - } - postings.Add(uint64(i), s.labels) - } - - for k, v := range values { - var vals []string - for e := range v { - vals = append(vals, e) - } - sort.Strings(vals) - - testutil.Ok(t, iw.WriteLabelIndex([]string{k}, vals)) - testutil.Ok(t, mi.WriteLabelIndex([]string{k}, vals)) - } - - all := make([]uint64, len(lbls)) - for i := range all { - all[i] = uint64(i) - } - err = iw.WritePostings("", "", newListPostings(all...)) - testutil.Ok(t, err) - mi.WritePostings("", "", newListPostings(all...)) - - for n, e := range postings.m { - for v := range e { - err = iw.WritePostings(n, v, postings.Get(n, v)) - testutil.Ok(t, err) - mi.WritePostings(n, v, postings.Get(n, v)) - } - } - - err = iw.Close() - testutil.Ok(t, err) - - ir, err := NewFileReader(filepath.Join(dir, indexFilename)) - testutil.Ok(t, err) - - for p := range mi.postings { - gotp, err := ir.Postings(p.Name, p.Value) - testutil.Ok(t, err) - - expp, err := mi.Postings(p.Name, p.Value) - testutil.Ok(t, err) - - var lset, explset labels.Labels - var chks, expchks []chunks.Meta - - for gotp.Next() { - testutil.Assert(t, expp.Next() == true, "") - - ref := gotp.At() - - err := ir.Series(ref, &lset, &chks) - testutil.Ok(t, err) - - err = mi.Series(expp.At(), &explset, &expchks) - testutil.Ok(t, err) - testutil.Equals(t, explset, lset) - testutil.Equals(t, expchks, chks) - } - testutil.Assert(t, expp.Next() == false, "") - testutil.Ok(t, gotp.Err()) - } - - for k, v := range mi.labelIndex { - tplsExp, err := NewStringTuples(v, 1) - testutil.Ok(t, err) - - tplsRes, err := ir.LabelValues(k) - testutil.Ok(t, err) - - testutil.Equals(t, tplsExp.Len(), tplsRes.Len()) - for i := 0; i < tplsExp.Len(); i++ { - strsExp, err := tplsExp.At(i) - testutil.Ok(t, err) - - strsRes, err := tplsRes.At(i) - testutil.Ok(t, err) - - testutil.Equals(t, strsExp, strsRes) - } - } - - gotSymbols, err := ir.Symbols() - testutil.Ok(t, err) - - testutil.Equals(t, len(mi.symbols), len(gotSymbols)) - for s := range mi.symbols { - _, ok := gotSymbols[s] - testutil.Assert(t, ok, "") - } - - testutil.Ok(t, ir.Close()) -} - -func TestDecbufUvariantWithInvalidBuffer(t *testing.T) { - b := realByteSlice([]byte{0x81, 0x81, 0x81, 0x81, 0x81, 0x81}) - - db := encoding.NewDecbufUvarintAt(b, 0, castagnoliTable) - testutil.NotOk(t, db.Err()) -} - -func TestReaderWithInvalidBuffer(t *testing.T) { - b := realByteSlice([]byte{0x81, 0x81, 0x81, 0x81, 0x81, 0x81}) - - _, err := NewReader(b) - testutil.NotOk(t, err) -} - -// TestNewFileReaderErrorNoOpenFiles ensures that in case of an error no file remains open. -func TestNewFileReaderErrorNoOpenFiles(t *testing.T) { - dir := testutil.NewTemporaryDirectory("block", t) - - idxName := filepath.Join(dir.Path(), "index") - err := ioutil.WriteFile(idxName, []byte("corrupted contents"), 0644) - testutil.Ok(t, err) - - _, err = NewFileReader(idxName) - testutil.NotOk(t, err) - - // dir.Close will fail on Win if idxName fd is not closed on error path. - dir.Close() -} diff --git a/vendor/github.com/prometheus/tsdb/index/postings.go b/vendor/github.com/prometheus/tsdb/index/postings.go deleted file mode 100644 index 84cda2b2..00000000 --- a/vendor/github.com/prometheus/tsdb/index/postings.go +++ /dev/null @@ -1,703 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package index - -import ( - "container/heap" - "encoding/binary" - "runtime" - "sort" - "strings" - "sync" - - "github.com/prometheus/tsdb/labels" -) - -var allPostingsKey = labels.Label{} - -// AllPostingsKey returns the label key that is used to store the postings list of all existing IDs. -func AllPostingsKey() (name, value string) { - return allPostingsKey.Name, allPostingsKey.Value -} - -// MemPostings holds postings list for series ID per label pair. They may be written -// to out of order. -// ensureOrder() must be called once before any reads are done. This allows for quick -// unordered batch fills on startup. -type MemPostings struct { - mtx sync.RWMutex - m map[string]map[string][]uint64 - ordered bool -} - -// NewMemPostings returns a memPostings that's ready for reads and writes. -func NewMemPostings() *MemPostings { - return &MemPostings{ - m: make(map[string]map[string][]uint64, 512), - ordered: true, - } -} - -// NewUnorderedMemPostings returns a memPostings that is not safe to be read from -// until ensureOrder was called once. -func NewUnorderedMemPostings() *MemPostings { - return &MemPostings{ - m: make(map[string]map[string][]uint64, 512), - ordered: false, - } -} - -// SortedKeys returns a list of sorted label keys of the postings. -func (p *MemPostings) SortedKeys() []labels.Label { - p.mtx.RLock() - keys := make([]labels.Label, 0, len(p.m)) - - for n, e := range p.m { - for v := range e { - keys = append(keys, labels.Label{Name: n, Value: v}) - } - } - p.mtx.RUnlock() - - sort.Slice(keys, func(i, j int) bool { - if d := strings.Compare(keys[i].Name, keys[j].Name); d != 0 { - return d < 0 - } - return keys[i].Value < keys[j].Value - }) - return keys -} - -// Get returns a postings list for the given label pair. -func (p *MemPostings) Get(name, value string) Postings { - var lp []uint64 - p.mtx.RLock() - l := p.m[name] - if l != nil { - lp = l[value] - } - p.mtx.RUnlock() - - if lp == nil { - return EmptyPostings() - } - return newListPostings(lp...) -} - -// All returns a postings list over all documents ever added. -func (p *MemPostings) All() Postings { - return p.Get(AllPostingsKey()) -} - -// EnsureOrder ensures that all postings lists are sorted. After it returns all further -// calls to add and addFor will insert new IDs in a sorted manner. -func (p *MemPostings) EnsureOrder() { - p.mtx.Lock() - defer p.mtx.Unlock() - - if p.ordered { - return - } - - n := runtime.GOMAXPROCS(0) - workc := make(chan []uint64) - - var wg sync.WaitGroup - wg.Add(n) - - for i := 0; i < n; i++ { - go func() { - for l := range workc { - sort.Slice(l, func(i, j int) bool { return l[i] < l[j] }) - } - wg.Done() - }() - } - - for _, e := range p.m { - for _, l := range e { - workc <- l - } - } - close(workc) - wg.Wait() - - p.ordered = true -} - -// Delete removes all ids in the given map from the postings lists. -func (p *MemPostings) Delete(deleted map[uint64]struct{}) { - var keys, vals []string - - // Collect all keys relevant for deletion once. New keys added afterwards - // can by definition not be affected by any of the given deletes. - p.mtx.RLock() - for n := range p.m { - keys = append(keys, n) - } - p.mtx.RUnlock() - - for _, n := range keys { - p.mtx.RLock() - vals = vals[:0] - for v := range p.m[n] { - vals = append(vals, v) - } - p.mtx.RUnlock() - - // For each posting we first analyse whether the postings list is affected by the deletes. - // If yes, we actually reallocate a new postings list. - for _, l := range vals { - // Only lock for processing one postings list so we don't block reads for too long. - p.mtx.Lock() - - found := false - for _, id := range p.m[n][l] { - if _, ok := deleted[id]; ok { - found = true - break - } - } - if !found { - p.mtx.Unlock() - continue - } - repl := make([]uint64, 0, len(p.m[n][l])) - - for _, id := range p.m[n][l] { - if _, ok := deleted[id]; !ok { - repl = append(repl, id) - } - } - if len(repl) > 0 { - p.m[n][l] = repl - } else { - delete(p.m[n], l) - } - p.mtx.Unlock() - } - p.mtx.Lock() - if len(p.m[n]) == 0 { - delete(p.m, n) - } - p.mtx.Unlock() - } -} - -// Iter calls f for each postings list. It aborts if f returns an error and returns it. -func (p *MemPostings) Iter(f func(labels.Label, Postings) error) error { - p.mtx.RLock() - defer p.mtx.RUnlock() - - for n, e := range p.m { - for v, p := range e { - if err := f(labels.Label{Name: n, Value: v}, newListPostings(p...)); err != nil { - return err - } - } - } - return nil -} - -// Add a label set to the postings index. -func (p *MemPostings) Add(id uint64, lset labels.Labels) { - p.mtx.Lock() - - for _, l := range lset { - p.addFor(id, l) - } - p.addFor(id, allPostingsKey) - - p.mtx.Unlock() -} - -func (p *MemPostings) addFor(id uint64, l labels.Label) { - nm, ok := p.m[l.Name] - if !ok { - nm = map[string][]uint64{} - p.m[l.Name] = nm - } - list := append(nm[l.Value], id) - nm[l.Value] = list - - if !p.ordered { - return - } - // There is no guarantee that no higher ID was inserted before as they may - // be generated independently before adding them to postings. - // We repair order violations on insert. The invariant is that the first n-1 - // items in the list are already sorted. - for i := len(list) - 1; i >= 1; i-- { - if list[i] >= list[i-1] { - break - } - list[i], list[i-1] = list[i-1], list[i] - } -} - -// ExpandPostings returns the postings expanded as a slice. -func ExpandPostings(p Postings) (res []uint64, err error) { - for p.Next() { - res = append(res, p.At()) - } - return res, p.Err() -} - -// Postings provides iterative access over a postings list. -type Postings interface { - // Next advances the iterator and returns true if another value was found. - Next() bool - - // Seek advances the iterator to value v or greater and returns - // true if a value was found. - Seek(v uint64) bool - - // At returns the value at the current iterator position. - At() uint64 - - // Err returns the last error of the iterator. - Err() error -} - -// errPostings is an empty iterator that always errors. -type errPostings struct { - err error -} - -func (e errPostings) Next() bool { return false } -func (e errPostings) Seek(uint64) bool { return false } -func (e errPostings) At() uint64 { return 0 } -func (e errPostings) Err() error { return e.err } - -var emptyPostings = errPostings{} - -// EmptyPostings returns a postings list that's always empty. -// NOTE: Returning EmptyPostings sentinel when index.Postings struct has no postings is recommended. -// It triggers optimized flow in other functions like Intersect, Without etc. -func EmptyPostings() Postings { - return emptyPostings -} - -// ErrPostings returns new postings that immediately error. -func ErrPostings(err error) Postings { - return errPostings{err} -} - -// Intersect returns a new postings list over the intersection of the -// input postings. -func Intersect(its ...Postings) Postings { - if len(its) == 0 { - return EmptyPostings() - } - if len(its) == 1 { - return its[0] - } - - l := len(its) / 2 - a := Intersect(its[:l]...) - b := Intersect(its[l:]...) - - if a == EmptyPostings() || b == EmptyPostings() { - return EmptyPostings() - } - return newIntersectPostings(a, b) -} - -type intersectPostings struct { - a, b Postings - cur uint64 -} - -func newIntersectPostings(a, b Postings) *intersectPostings { - return &intersectPostings{a: a, b: b} -} - -func (it *intersectPostings) At() uint64 { - return it.cur -} - -func (it *intersectPostings) doNext(id uint64) bool { - for { - if !it.b.Seek(id) { - return false - } - if vb := it.b.At(); vb != id { - if !it.a.Seek(vb) { - return false - } - id = it.a.At() - if vb != id { - continue - } - } - it.cur = id - return true - } -} - -func (it *intersectPostings) Next() bool { - if !it.a.Next() { - return false - } - return it.doNext(it.a.At()) -} - -func (it *intersectPostings) Seek(id uint64) bool { - if !it.a.Seek(id) { - return false - } - return it.doNext(it.a.At()) -} - -func (it *intersectPostings) Err() error { - if it.a.Err() != nil { - return it.a.Err() - } - return it.b.Err() -} - -// Merge returns a new iterator over the union of the input iterators. -func Merge(its ...Postings) Postings { - if len(its) == 0 { - return EmptyPostings() - } - if len(its) == 1 { - return its[0] - } - - p, ok := newMergedPostings(its) - if !ok { - return EmptyPostings() - } - return p -} - -type postingsHeap []Postings - -func (h postingsHeap) Len() int { return len(h) } -func (h postingsHeap) Less(i, j int) bool { return h[i].At() < h[j].At() } -func (h *postingsHeap) Swap(i, j int) { (*h)[i], (*h)[j] = (*h)[j], (*h)[i] } - -func (h *postingsHeap) Push(x interface{}) { - *h = append(*h, x.(Postings)) -} - -func (h *postingsHeap) Pop() interface{} { - old := *h - n := len(old) - x := old[n-1] - *h = old[0 : n-1] - return x -} - -type mergedPostings struct { - h postingsHeap - initilized bool - heaped bool - cur uint64 - err error -} - -func newMergedPostings(p []Postings) (m *mergedPostings, nonEmpty bool) { - ph := make(postingsHeap, 0, len(p)) - - for _, it := range p { - // NOTE: mergedPostings struct requires the user to issue an initial Next. - if it.Next() { - ph = append(ph, it) - } else { - if it.Err() != nil { - return &mergedPostings{err: it.Err()}, true - } - } - } - - if len(ph) == 0 { - return nil, false - } - return &mergedPostings{h: ph}, true -} - -func (it *mergedPostings) Next() bool { - if it.h.Len() == 0 || it.err != nil { - return false - } - - if !it.heaped { - heap.Init(&it.h) - it.heaped = true - } - // The user must issue an initial Next. - if !it.initilized { - it.cur = it.h[0].At() - it.initilized = true - return true - } - - for { - cur := it.h[0] - if !cur.Next() { - heap.Pop(&it.h) - if cur.Err() != nil { - it.err = cur.Err() - return false - } - if it.h.Len() == 0 { - return false - } - } else { - // Value of top of heap has changed, re-heapify. - heap.Fix(&it.h, 0) - } - - if it.h[0].At() != it.cur { - it.cur = it.h[0].At() - return true - } - } -} - -func (it *mergedPostings) Seek(id uint64) bool { - if it.h.Len() == 0 || it.err != nil { - return false - } - if !it.initilized { - if !it.Next() { - return false - } - } - if it.cur >= id { - return true - } - // Heapifying when there is lots of Seeks is inefficient, - // mark to be re-heapified on the Next() call. - it.heaped = false - newH := make(postingsHeap, 0, len(it.h)) - lowest := ^uint64(0) - for _, i := range it.h { - if i.Seek(id) { - newH = append(newH, i) - if i.At() < lowest { - lowest = i.At() - } - } else { - if i.Err() != nil { - it.err = i.Err() - return false - } - } - } - it.h = newH - if len(it.h) == 0 { - return false - } - it.cur = lowest - return true -} - -func (it mergedPostings) At() uint64 { - return it.cur -} - -func (it mergedPostings) Err() error { - return it.err -} - -// Without returns a new postings list that contains all elements from the full list that -// are not in the drop list. -func Without(full, drop Postings) Postings { - if full == EmptyPostings() { - return EmptyPostings() - } - - if drop == EmptyPostings() { - return full - } - return newRemovedPostings(full, drop) -} - -type removedPostings struct { - full, remove Postings - - cur uint64 - - initialized bool - fok, rok bool -} - -func newRemovedPostings(full, remove Postings) *removedPostings { - return &removedPostings{ - full: full, - remove: remove, - } -} - -func (rp *removedPostings) At() uint64 { - return rp.cur -} - -func (rp *removedPostings) Next() bool { - if !rp.initialized { - rp.fok = rp.full.Next() - rp.rok = rp.remove.Next() - rp.initialized = true - } - for { - if !rp.fok { - return false - } - - if !rp.rok { - rp.cur = rp.full.At() - rp.fok = rp.full.Next() - return true - } - - fcur, rcur := rp.full.At(), rp.remove.At() - if fcur < rcur { - rp.cur = fcur - rp.fok = rp.full.Next() - - return true - } else if rcur < fcur { - // Forward the remove postings to the right position. - rp.rok = rp.remove.Seek(fcur) - } else { - // Skip the current posting. - rp.fok = rp.full.Next() - } - } -} - -func (rp *removedPostings) Seek(id uint64) bool { - if rp.cur >= id { - return true - } - - rp.fok = rp.full.Seek(id) - rp.rok = rp.remove.Seek(id) - rp.initialized = true - - return rp.Next() -} - -func (rp *removedPostings) Err() error { - if rp.full.Err() != nil { - return rp.full.Err() - } - - return rp.remove.Err() -} - -// ListPostings implements the Postings interface over a plain list. -type ListPostings struct { - list []uint64 - cur uint64 -} - -func NewListPostings(list []uint64) Postings { - return newListPostings(list...) -} - -func newListPostings(list ...uint64) *ListPostings { - return &ListPostings{list: list} -} - -func (it *ListPostings) At() uint64 { - return it.cur -} - -func (it *ListPostings) Next() bool { - if len(it.list) > 0 { - it.cur = it.list[0] - it.list = it.list[1:] - return true - } - it.cur = 0 - return false -} - -func (it *ListPostings) Seek(x uint64) bool { - // If the current value satisfies, then return. - if it.cur >= x { - return true - } - if len(it.list) == 0 { - return false - } - - // Do binary search between current position and end. - i := sort.Search(len(it.list), func(i int) bool { - return it.list[i] >= x - }) - if i < len(it.list) { - it.cur = it.list[i] - it.list = it.list[i+1:] - return true - } - it.list = nil - return false -} - -func (it *ListPostings) Err() error { - return nil -} - -// bigEndianPostings implements the Postings interface over a byte stream of -// big endian numbers. -type bigEndianPostings struct { - list []byte - cur uint32 -} - -func newBigEndianPostings(list []byte) *bigEndianPostings { - return &bigEndianPostings{list: list} -} - -func (it *bigEndianPostings) At() uint64 { - return uint64(it.cur) -} - -func (it *bigEndianPostings) Next() bool { - if len(it.list) >= 4 { - it.cur = binary.BigEndian.Uint32(it.list) - it.list = it.list[4:] - return true - } - return false -} - -func (it *bigEndianPostings) Seek(x uint64) bool { - if uint64(it.cur) >= x { - return true - } - - num := len(it.list) / 4 - // Do binary search between current position and end. - i := sort.Search(num, func(i int) bool { - return binary.BigEndian.Uint32(it.list[i*4:]) >= uint32(x) - }) - if i < num { - j := i * 4 - it.cur = binary.BigEndian.Uint32(it.list[j:]) - it.list = it.list[j+4:] - return true - } - it.list = nil - return false -} - -func (it *bigEndianPostings) Err() error { - return nil -} diff --git a/vendor/github.com/prometheus/tsdb/index/postings_test.go b/vendor/github.com/prometheus/tsdb/index/postings_test.go deleted file mode 100644 index b8f76034..00000000 --- a/vendor/github.com/prometheus/tsdb/index/postings_test.go +++ /dev/null @@ -1,760 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package index - -import ( - "encoding/binary" - "fmt" - "math/rand" - "sort" - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -func TestMemPostings_addFor(t *testing.T) { - p := NewMemPostings() - p.m[allPostingsKey.Name] = map[string][]uint64{} - p.m[allPostingsKey.Name][allPostingsKey.Value] = []uint64{1, 2, 3, 4, 6, 7, 8} - - p.addFor(5, allPostingsKey) - - testutil.Equals(t, []uint64{1, 2, 3, 4, 5, 6, 7, 8}, p.m[allPostingsKey.Name][allPostingsKey.Value]) -} - -func TestMemPostings_ensureOrder(t *testing.T) { - p := NewUnorderedMemPostings() - p.m["a"] = map[string][]uint64{} - - for i := 0; i < 100; i++ { - l := make([]uint64, 100) - for j := range l { - l[j] = rand.Uint64() - } - v := fmt.Sprintf("%d", i) - - p.m["a"][v] = l - } - - p.EnsureOrder() - - for _, e := range p.m { - for _, l := range e { - ok := sort.SliceIsSorted(l, func(i, j int) bool { - return l[i] < l[j] - }) - if !ok { - t.Fatalf("postings list %v is not sorted", l) - } - } - } -} - -func TestIntersect(t *testing.T) { - a := newListPostings(1, 2, 3) - b := newListPostings(2, 3, 4) - - var cases = []struct { - in []Postings - - res Postings - }{ - { - in: []Postings{}, - res: EmptyPostings(), - }, - { - in: []Postings{a, b, EmptyPostings()}, - res: EmptyPostings(), - }, - { - in: []Postings{b, a, EmptyPostings()}, - res: EmptyPostings(), - }, - { - in: []Postings{EmptyPostings(), b, a}, - res: EmptyPostings(), - }, - { - in: []Postings{EmptyPostings(), a, b}, - res: EmptyPostings(), - }, - { - in: []Postings{a, EmptyPostings(), b}, - res: EmptyPostings(), - }, - { - in: []Postings{b, EmptyPostings(), a}, - res: EmptyPostings(), - }, - { - in: []Postings{b, EmptyPostings(), a, a, b, a, a, a}, - res: EmptyPostings(), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 5), - newListPostings(6, 7, 8, 9, 10), - }, - res: newListPostings(), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 5), - newListPostings(4, 5, 6, 7, 8), - }, - res: newListPostings(4, 5), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 9, 10), - newListPostings(1, 4, 5, 6, 7, 8, 10, 11), - }, - res: newListPostings(1, 4, 10), - }, - { - in: []Postings{ - newListPostings(1), - newListPostings(0, 1), - }, - res: newListPostings(1), - }, - { - in: []Postings{ - newListPostings(1), - }, - res: newListPostings(1), - }, - { - in: []Postings{ - newListPostings(1), - newListPostings(), - }, - res: newListPostings(), - }, - { - in: []Postings{ - newListPostings(), - newListPostings(), - }, - res: newListPostings(), - }, - } - - for _, c := range cases { - t.Run("", func(t *testing.T) { - if c.res == nil { - t.Fatal("intersect result expectancy cannot be nil") - } - - expected, err := ExpandPostings(c.res) - testutil.Ok(t, err) - - i := Intersect(c.in...) - - if c.res == EmptyPostings() { - testutil.Equals(t, EmptyPostings(), i) - return - } - - if i == EmptyPostings() { - t.Fatal("intersect unexpected result: EmptyPostings sentinel") - } - - res, err := ExpandPostings(i) - testutil.Ok(t, err) - testutil.Equals(t, expected, res) - }) - } -} - -func TestMultiIntersect(t *testing.T) { - var cases = []struct { - p [][]uint64 - res []uint64 - }{ - { - p: [][]uint64{ - {1, 2, 3, 4, 5, 6, 1000, 1001}, - {2, 4, 5, 6, 7, 8, 999, 1001}, - {1, 2, 5, 6, 7, 8, 1001, 1200}, - }, - res: []uint64{2, 5, 6, 1001}, - }, - // One of the reproduceable cases for: - // https://github.com/prometheus/prometheus/issues/2616 - // The initialisation of intersectPostings was moving the iterator forward - // prematurely making us miss some postings. - { - p: [][]uint64{ - {1, 2}, - {1, 2}, - {1, 2}, - {2}, - }, - res: []uint64{2}, - }, - } - - for _, c := range cases { - ps := make([]Postings, 0, len(c.p)) - for _, postings := range c.p { - ps = append(ps, newListPostings(postings...)) - } - - res, err := ExpandPostings(Intersect(ps...)) - - testutil.Ok(t, err) - testutil.Equals(t, c.res, res) - } -} - -func BenchmarkIntersect(t *testing.B) { - var a, b, c, d []uint64 - - for i := 0; i < 10000000; i += 2 { - a = append(a, uint64(i)) - } - for i := 5000000; i < 5000100; i += 4 { - b = append(b, uint64(i)) - } - for i := 5090000; i < 5090600; i += 4 { - b = append(b, uint64(i)) - } - for i := 4990000; i < 5100000; i++ { - c = append(c, uint64(i)) - } - for i := 4000000; i < 6000000; i++ { - d = append(d, uint64(i)) - } - - i1 := newListPostings(a...) - i2 := newListPostings(b...) - i3 := newListPostings(c...) - i4 := newListPostings(d...) - - t.ResetTimer() - - for i := 0; i < t.N; i++ { - if _, err := ExpandPostings(Intersect(i1, i2, i3, i4)); err != nil { - t.Fatal(err) - } - } -} - -func TestMultiMerge(t *testing.T) { - i1 := newListPostings(1, 2, 3, 4, 5, 6, 1000, 1001) - i2 := newListPostings(2, 4, 5, 6, 7, 8, 999, 1001) - i3 := newListPostings(1, 2, 5, 6, 7, 8, 1001, 1200) - - res, err := ExpandPostings(Merge(i1, i2, i3)) - testutil.Ok(t, err) - testutil.Equals(t, []uint64{1, 2, 3, 4, 5, 6, 7, 8, 999, 1000, 1001, 1200}, res) -} - -func TestMergedPostings(t *testing.T) { - var cases = []struct { - in []Postings - - res Postings - }{ - { - in: []Postings{}, - res: EmptyPostings(), - }, - { - in: []Postings{ - newListPostings(), - newListPostings(), - }, - res: EmptyPostings(), - }, - { - in: []Postings{ - newListPostings(), - }, - res: newListPostings(), - }, - { - in: []Postings{ - EmptyPostings(), - EmptyPostings(), - EmptyPostings(), - EmptyPostings(), - }, - res: EmptyPostings(), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 5), - newListPostings(6, 7, 8, 9, 10), - }, - res: newListPostings(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 5), - newListPostings(4, 5, 6, 7, 8), - }, - res: newListPostings(1, 2, 3, 4, 5, 6, 7, 8), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 9, 10), - newListPostings(1, 4, 5, 6, 7, 8, 10, 11), - }, - res: newListPostings(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), - }, - { - in: []Postings{ - newListPostings(1, 2, 3, 4, 9, 10), - EmptyPostings(), - newListPostings(1, 4, 5, 6, 7, 8, 10, 11), - }, - res: newListPostings(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), - }, - { - in: []Postings{ - newListPostings(1, 2), - newListPostings(), - }, - res: newListPostings(1, 2), - }, - { - in: []Postings{ - newListPostings(1, 2), - EmptyPostings(), - }, - res: newListPostings(1, 2), - }, - } - - for _, c := range cases { - t.Run("", func(t *testing.T) { - if c.res == nil { - t.Fatal("merge result expectancy cannot be nil") - } - - expected, err := ExpandPostings(c.res) - testutil.Ok(t, err) - - m := Merge(c.in...) - - if c.res == EmptyPostings() { - testutil.Equals(t, EmptyPostings(), m) - return - } - - if m == EmptyPostings() { - t.Fatal("merge unexpected result: EmptyPostings sentinel") - } - - res, err := ExpandPostings(m) - testutil.Ok(t, err) - testutil.Equals(t, expected, res) - }) - } -} - -func TestMergedPostingsSeek(t *testing.T) { - var cases = []struct { - a, b []uint64 - - seek uint64 - success bool - res []uint64 - }{ - { - a: []uint64{2, 3, 4, 5}, - b: []uint64{6, 7, 8, 9, 10}, - - seek: 1, - success: true, - res: []uint64{2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - a: []uint64{1, 2, 3, 4, 5}, - b: []uint64{6, 7, 8, 9, 10}, - - seek: 2, - success: true, - res: []uint64{2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - a: []uint64{1, 2, 3, 4, 5}, - b: []uint64{4, 5, 6, 7, 8}, - - seek: 9, - success: false, - res: nil, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 4, 5, 6, 7, 8, 10, 11}, - - seek: 10, - success: true, - res: []uint64{10, 11}, - }, - } - - for _, c := range cases { - a := newListPostings(c.a...) - b := newListPostings(c.b...) - - p := Merge(a, b) - - testutil.Equals(t, c.success, p.Seek(c.seek)) - - // After Seek(), At() should be called. - if c.success { - start := p.At() - lst, err := ExpandPostings(p) - testutil.Ok(t, err) - - lst = append([]uint64{start}, lst...) - testutil.Equals(t, c.res, lst) - } - } -} - -func TestRemovedPostings(t *testing.T) { - var cases = []struct { - a, b []uint64 - res []uint64 - }{ - { - a: nil, - b: nil, - res: []uint64(nil), - }, - { - a: []uint64{1, 2, 3, 4}, - b: nil, - res: []uint64{1, 2, 3, 4}, - }, - { - a: nil, - b: []uint64{1, 2, 3, 4}, - res: []uint64(nil), - }, - { - a: []uint64{1, 2, 3, 4, 5}, - b: []uint64{6, 7, 8, 9, 10}, - res: []uint64{1, 2, 3, 4, 5}, - }, - { - a: []uint64{1, 2, 3, 4, 5}, - b: []uint64{4, 5, 6, 7, 8}, - res: []uint64{1, 2, 3}, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 4, 5, 6, 7, 8, 10, 11}, - res: []uint64{2, 3, 9}, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, - res: []uint64(nil), - }, - } - - for _, c := range cases { - a := newListPostings(c.a...) - b := newListPostings(c.b...) - - res, err := ExpandPostings(newRemovedPostings(a, b)) - testutil.Ok(t, err) - testutil.Equals(t, c.res, res) - } - -} - -func TestRemovedNextStackoverflow(t *testing.T) { - var full []uint64 - var remove []uint64 - - var i uint64 - for i = 0; i < 1e7; i++ { - full = append(full, i) - remove = append(remove, i) - } - - flp := newListPostings(full...) - rlp := newListPostings(remove...) - rp := newRemovedPostings(flp, rlp) - gotElem := false - for rp.Next() { - gotElem = true - } - - testutil.Ok(t, rp.Err()) - testutil.Assert(t, !gotElem, "") -} - -func TestRemovedPostingsSeek(t *testing.T) { - var cases = []struct { - a, b []uint64 - - seek uint64 - success bool - res []uint64 - }{ - { - a: []uint64{2, 3, 4, 5}, - b: []uint64{6, 7, 8, 9, 10}, - - seek: 1, - success: true, - res: []uint64{2, 3, 4, 5}, - }, - { - a: []uint64{1, 2, 3, 4, 5}, - b: []uint64{6, 7, 8, 9, 10}, - - seek: 2, - success: true, - res: []uint64{2, 3, 4, 5}, - }, - { - a: []uint64{1, 2, 3, 4, 5}, - b: []uint64{4, 5, 6, 7, 8}, - - seek: 9, - success: false, - res: nil, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 4, 5, 6, 7, 8, 10, 11}, - - seek: 10, - success: false, - res: nil, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 4, 5, 6, 7, 8, 11}, - - seek: 4, - success: true, - res: []uint64{9, 10}, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 4, 5, 6, 7, 8, 11}, - - seek: 5, - success: true, - res: []uint64{9, 10}, - }, - { - a: []uint64{1, 2, 3, 4, 9, 10}, - b: []uint64{1, 4, 5, 6, 7, 8, 11}, - - seek: 10, - success: true, - res: []uint64{10}, - }, - } - - for _, c := range cases { - a := newListPostings(c.a...) - b := newListPostings(c.b...) - - p := newRemovedPostings(a, b) - - testutil.Equals(t, c.success, p.Seek(c.seek)) - - // After Seek(), At() should be called. - if c.success { - start := p.At() - lst, err := ExpandPostings(p) - testutil.Ok(t, err) - - lst = append([]uint64{start}, lst...) - testutil.Equals(t, c.res, lst) - } - } -} - -func TestBigEndian(t *testing.T) { - num := 1000 - // mock a list as postings - ls := make([]uint32, num) - ls[0] = 2 - for i := 1; i < num; i++ { - ls[i] = ls[i-1] + uint32(rand.Int31n(25)) + 2 - } - - beLst := make([]byte, num*4) - for i := 0; i < num; i++ { - b := beLst[i*4 : i*4+4] - binary.BigEndian.PutUint32(b, ls[i]) - } - - t.Run("Iteration", func(t *testing.T) { - bep := newBigEndianPostings(beLst) - for i := 0; i < num; i++ { - testutil.Assert(t, bep.Next() == true, "") - testutil.Equals(t, uint64(ls[i]), bep.At()) - } - - testutil.Assert(t, bep.Next() == false, "") - testutil.Assert(t, bep.Err() == nil, "") - }) - - t.Run("Seek", func(t *testing.T) { - table := []struct { - seek uint32 - val uint32 - found bool - }{ - { - ls[0] - 1, ls[0], true, - }, - { - ls[4], ls[4], true, - }, - { - ls[500] - 1, ls[500], true, - }, - { - ls[600] + 1, ls[601], true, - }, - { - ls[600] + 1, ls[601], true, - }, - { - ls[600] + 1, ls[601], true, - }, - { - ls[0], ls[601], true, - }, - { - ls[600], ls[601], true, - }, - { - ls[999], ls[999], true, - }, - { - ls[999] + 10, ls[999], false, - }, - } - - bep := newBigEndianPostings(beLst) - - for _, v := range table { - testutil.Equals(t, v.found, bep.Seek(uint64(v.seek))) - testutil.Equals(t, uint64(v.val), bep.At()) - testutil.Assert(t, bep.Err() == nil, "") - } - }) -} - -func TestIntersectWithMerge(t *testing.T) { - // One of the reproducible cases for: - // https://github.com/prometheus/prometheus/issues/2616 - a := newListPostings(21, 22, 23, 24, 25, 30) - - b := Merge( - newListPostings(10, 20, 30), - newListPostings(15, 26, 30), - ) - - p := Intersect(a, b) - res, err := ExpandPostings(p) - - testutil.Ok(t, err) - testutil.Equals(t, []uint64{30}, res) -} - -func TestWithoutPostings(t *testing.T) { - var cases = []struct { - base Postings - drop Postings - - res Postings - }{ - { - base: EmptyPostings(), - drop: EmptyPostings(), - - res: EmptyPostings(), - }, - { - base: EmptyPostings(), - drop: newListPostings(1, 2), - - res: EmptyPostings(), - }, - { - base: newListPostings(1, 2), - drop: EmptyPostings(), - - res: newListPostings(1, 2), - }, - { - base: newListPostings(), - drop: newListPostings(), - - res: newListPostings(), - }, - { - base: newListPostings(1, 2, 3), - drop: newListPostings(), - - res: newListPostings(1, 2, 3), - }, - { - base: newListPostings(1, 2, 3), - drop: newListPostings(4, 5, 6), - - res: newListPostings(1, 2, 3), - }, - { - base: newListPostings(1, 2, 3), - drop: newListPostings(3, 4, 5), - - res: newListPostings(1, 2), - }, - } - - for _, c := range cases { - t.Run("", func(t *testing.T) { - if c.res == nil { - t.Fatal("without result expectancy cannot be nil") - } - - expected, err := ExpandPostings(c.res) - testutil.Ok(t, err) - - w := Without(c.base, c.drop) - - if c.res == EmptyPostings() { - testutil.Equals(t, EmptyPostings(), w) - return - } - - if w == EmptyPostings() { - t.Fatal("without unexpected result: EmptyPostings sentinel") - } - - res, err := ExpandPostings(w) - testutil.Ok(t, err) - testutil.Equals(t, expected, res) - }) - } -} diff --git a/vendor/github.com/prometheus/tsdb/labels/labels.go b/vendor/github.com/prometheus/tsdb/labels/labels.go deleted file mode 100644 index d1ba70b4..00000000 --- a/vendor/github.com/prometheus/tsdb/labels/labels.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package labels - -import ( - "bufio" - "bytes" - "os" - "sort" - "strconv" - "strings" - - "github.com/cespare/xxhash" - "github.com/pkg/errors" -) - -const sep = '\xff' - -// Label is a key/value pair of strings. -type Label struct { - Name, Value string -} - -// Labels is a sorted set of labels. Order has to be guaranteed upon -// instantiation. -type Labels []Label - -func (ls Labels) Len() int { return len(ls) } -func (ls Labels) Swap(i, j int) { ls[i], ls[j] = ls[j], ls[i] } -func (ls Labels) Less(i, j int) bool { return ls[i].Name < ls[j].Name } - -func (ls Labels) String() string { - var b bytes.Buffer - - b.WriteByte('{') - for i, l := range ls { - if i > 0 { - b.WriteByte(',') - } - b.WriteString(l.Name) - b.WriteByte('=') - b.WriteString(strconv.Quote(l.Value)) - } - b.WriteByte('}') - - return b.String() -} - -// Hash returns a hash value for the label set. -func (ls Labels) Hash() uint64 { - b := make([]byte, 0, 1024) - - for _, v := range ls { - b = append(b, v.Name...) - b = append(b, sep) - b = append(b, v.Value...) - b = append(b, sep) - } - return xxhash.Sum64(b) -} - -// Get returns the value for the label with the given name. -// Returns an empty string if the label doesn't exist. -func (ls Labels) Get(name string) string { - for _, l := range ls { - if l.Name == name { - return l.Value - } - } - return "" -} - -// Equals returns whether the two label sets are equal. -func (ls Labels) Equals(o Labels) bool { - if len(ls) != len(o) { - return false - } - for i, l := range ls { - if o[i] != l { - return false - } - } - return true -} - -// Map returns a string map of the labels. -func (ls Labels) Map() map[string]string { - m := make(map[string]string, len(ls)) - for _, l := range ls { - m[l.Name] = l.Value - } - return m -} - -// New returns a sorted Labels from the given labels. -// The caller has to guarantee that all label names are unique. -func New(ls ...Label) Labels { - set := make(Labels, 0, len(ls)) - for _, l := range ls { - set = append(set, l) - } - sort.Sort(set) - - return set -} - -// FromMap returns new sorted Labels from the given map. -func FromMap(m map[string]string) Labels { - l := make(Labels, 0, len(m)) - for k, v := range m { - l = append(l, Label{Name: k, Value: v}) - } - sort.Sort(l) - - return l -} - -// FromStrings creates new labels from pairs of strings. -func FromStrings(ss ...string) Labels { - if len(ss)%2 != 0 { - panic("invalid number of strings") - } - var res Labels - for i := 0; i < len(ss); i += 2 { - res = append(res, Label{Name: ss[i], Value: ss[i+1]}) - } - - sort.Sort(res) - return res -} - -// Compare compares the two label sets. -// The result will be 0 if a==b, <0 if a < b, and >0 if a > b. -func Compare(a, b Labels) int { - l := len(a) - if len(b) < l { - l = len(b) - } - - for i := 0; i < l; i++ { - if d := strings.Compare(a[i].Name, b[i].Name); d != 0 { - return d - } - if d := strings.Compare(a[i].Value, b[i].Value); d != 0 { - return d - } - } - // If all labels so far were in common, the set with fewer labels comes first. - return len(a) - len(b) -} - -// Slice is a sortable slice of label sets. -type Slice []Labels - -func (s Slice) Len() int { return len(s) } -func (s Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s Slice) Less(i, j int) bool { return Compare(s[i], s[j]) < 0 } - -// ReadLabels reads up to n label sets in a JSON formatted file fn. It is mostly useful -// to load testing data. -func ReadLabels(fn string, n int) ([]Labels, error) { - f, err := os.Open(fn) - if err != nil { - return nil, err - } - defer f.Close() - - scanner := bufio.NewScanner(f) - - var mets []Labels - hashes := map[uint64]struct{}{} - i := 0 - - for scanner.Scan() && i < n { - m := make(Labels, 0, 10) - - r := strings.NewReplacer("\"", "", "{", "", "}", "") - s := r.Replace(scanner.Text()) - - labelChunks := strings.Split(s, ",") - for _, labelChunk := range labelChunks { - split := strings.Split(labelChunk, ":") - m = append(m, Label{Name: split[0], Value: split[1]}) - } - // Order of the k/v labels matters, don't assume we'll always receive them already sorted. - sort.Sort(m) - - h := m.Hash() - if _, ok := hashes[h]; ok { - continue - } - mets = append(mets, m) - hashes[h] = struct{}{} - i++ - } - if err != nil { - return nil, err - } - if i != n { - return mets, errors.Errorf("requested %d metrics but found %d", n, i) - } - return mets, nil -} diff --git a/vendor/github.com/prometheus/tsdb/labels/labels_test.go b/vendor/github.com/prometheus/tsdb/labels/labels_test.go deleted file mode 100644 index c49f66ed..00000000 --- a/vendor/github.com/prometheus/tsdb/labels/labels_test.go +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package labels - -import ( - "fmt" - "math/rand" - "path/filepath" - "sort" - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -func TestCompareAndEquals(t *testing.T) { - cases := []struct { - a, b []Label - res int - }{ - { - a: []Label{}, - b: []Label{}, - res: 0, - }, - { - a: []Label{{"a", ""}}, - b: []Label{{"a", ""}, {"b", ""}}, - res: -1, - }, - { - a: []Label{{"a", ""}}, - b: []Label{{"a", ""}}, - res: 0, - }, - { - a: []Label{{"aa", ""}, {"aa", ""}}, - b: []Label{{"aa", ""}, {"ab", ""}}, - res: -1, - }, - { - a: []Label{{"aa", ""}, {"abb", ""}}, - b: []Label{{"aa", ""}, {"ab", ""}}, - res: 1, - }, - { - a: []Label{ - {"__name__", "go_gc_duration_seconds"}, - {"job", "prometheus"}, - {"quantile", "0.75"}, - }, - b: []Label{ - {"__name__", "go_gc_duration_seconds"}, - {"job", "prometheus"}, - {"quantile", "1"}, - }, - res: -1, - }, - { - a: []Label{ - {"handler", "prometheus"}, - {"instance", "localhost:9090"}, - }, - b: []Label{ - {"handler", "query"}, - {"instance", "localhost:9090"}, - }, - res: -1, - }, - } - for _, c := range cases { - // Use constructor to ensure sortedness. - a, b := New(c.a...), New(c.b...) - - testutil.Equals(t, c.res, Compare(a, b)) - testutil.Equals(t, c.res == 0, a.Equals(b)) - } -} - -func BenchmarkSliceSort(b *testing.B) { - lbls, err := ReadLabels(filepath.Join("..", "testdata", "20kseries.json"), 20000) - testutil.Ok(b, err) - - for len(lbls) < 20e6 { - lbls = append(lbls, lbls...) - } - for i := range lbls { - j := rand.Intn(i + 1) - lbls[i], lbls[j] = lbls[j], lbls[i] - } - - for _, k := range []int{ - 100, 5000, 50000, 300000, 900000, 5e6, 20e6, - } { - b.Run(fmt.Sprintf("%d", k), func(b *testing.B) { - b.ReportAllocs() - - for a := 0; a < b.N; a++ { - b.StopTimer() - cl := make(Slice, k) - copy(cl, Slice(lbls[:k])) - b.StartTimer() - - sort.Sort(cl) - } - }) - } -} - -func BenchmarkLabelSetFromMap(b *testing.B) { - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - } - var ls Labels - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - ls = FromMap(m) - } - _ = ls -} - -func BenchmarkMapFromLabels(b *testing.B) { - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - } - ls := FromMap(m) - - b.ResetTimer() - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - _ = ls.Map() - } -} - -func BenchmarkLabelSetEquals(b *testing.B) { - // The vast majority of comparisons will be against a matching label set. - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - } - ls := FromMap(m) - var res bool - - b.ResetTimer() - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - res = ls.Equals(ls) - } - _ = res -} - -func BenchmarkLabelSetHash(b *testing.B) { - // The vast majority of comparisons will be against a matching label set. - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - } - ls := FromMap(m) - var res uint64 - - b.ResetTimer() - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - res += ls.Hash() - } - fmt.Println(res) -} diff --git a/vendor/github.com/prometheus/tsdb/labels/selector.go b/vendor/github.com/prometheus/tsdb/labels/selector.go deleted file mode 100644 index a0565f57..00000000 --- a/vendor/github.com/prometheus/tsdb/labels/selector.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package labels - -import ( - "fmt" - "regexp" -) - -// Selector holds constraints for matching against a label set. -type Selector []Matcher - -// Matches returns whether the labels satisfy all matchers. -func (s Selector) Matches(labels Labels) bool { - for _, m := range s { - if v := labels.Get(m.Name()); !m.Matches(v) { - return false - } - } - return true -} - -// Matcher specifies a constraint for the value of a label. -type Matcher interface { - // Name returns the label name the matcher should apply to. - Name() string - // Matches checks whether a value fulfills the constraints. - Matches(v string) bool - // String returns a human readable matcher. - String() string -} - -// EqualMatcher matches on equality. -type EqualMatcher struct { - name, value string -} - -// Name implements Matcher interface. -func (m EqualMatcher) Name() string { return m.name } - -// Matches implements Matcher interface. -func (m EqualMatcher) Matches(v string) bool { return v == m.value } - -// String implements Matcher interface. -func (m EqualMatcher) String() string { return fmt.Sprintf("%s=%q", m.name, m.value) } - -// Value returns the matched value. -func (m EqualMatcher) Value() string { return m.value } - -// NewEqualMatcher returns a new matcher matching an exact label value. -func NewEqualMatcher(name, value string) Matcher { - return &EqualMatcher{name: name, value: value} -} - -type regexpMatcher struct { - name string - re *regexp.Regexp -} - -func (m regexpMatcher) Name() string { return m.name } -func (m regexpMatcher) Matches(v string) bool { return m.re.MatchString(v) } -func (m regexpMatcher) String() string { return fmt.Sprintf("%s=~%q", m.name, m.re.String()) } - -// NewRegexpMatcher returns a new matcher verifying that a value matches -// the regular expression pattern. -func NewRegexpMatcher(name, pattern string) (Matcher, error) { - re, err := regexp.Compile(pattern) - if err != nil { - return nil, err - } - return ®expMatcher{name: name, re: re}, nil -} - -// NewMustRegexpMatcher returns a new matcher verifying that a value matches -// the regular expression pattern. Will panic if the pattern is not a valid -// regular expression. -func NewMustRegexpMatcher(name, pattern string) Matcher { - re, err := regexp.Compile(pattern) - if err != nil { - panic(err) - } - return ®expMatcher{name: name, re: re} - -} - -// NotMatcher inverts the matching result for a matcher. -type NotMatcher struct { - Matcher -} - -func (m NotMatcher) Matches(v string) bool { return !m.Matcher.Matches(v) } -func (m NotMatcher) String() string { return fmt.Sprintf("not(%s)", m.Matcher.String()) } - -// Not inverts the matcher's matching result. -func Not(m Matcher) Matcher { - return &NotMatcher{m} -} diff --git a/vendor/github.com/prometheus/tsdb/mocks_test.go b/vendor/github.com/prometheus/tsdb/mocks_test.go deleted file mode 100644 index 243d5cf1..00000000 --- a/vendor/github.com/prometheus/tsdb/mocks_test.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" -) - -type mockIndexWriter struct { - series []seriesSamples -} - -func (mockIndexWriter) AddSymbols(sym map[string]struct{}) error { return nil } -func (m *mockIndexWriter) AddSeries(ref uint64, l labels.Labels, chunks ...chunks.Meta) error { - i := -1 - for j, s := range m.series { - if !labels.FromMap(s.lset).Equals(l) { - continue - } - i = j - break - } - if i == -1 { - m.series = append(m.series, seriesSamples{ - lset: l.Map(), - }) - i = len(m.series) - 1 - } - - for _, chk := range chunks { - samples := make([]sample, 0, chk.Chunk.NumSamples()) - - iter := chk.Chunk.Iterator() - for iter.Next() { - s := sample{} - s.t, s.v = iter.At() - - samples = append(samples, s) - } - if err := iter.Err(); err != nil { - return err - } - - m.series[i].chunks = append(m.series[i].chunks, samples) - } - return nil -} - -func (mockIndexWriter) WriteLabelIndex(names []string, values []string) error { return nil } -func (mockIndexWriter) WritePostings(name, value string, it index.Postings) error { return nil } -func (mockIndexWriter) Close() error { return nil } - -type mockBReader struct { - ir IndexReader - cr ChunkReader - mint int64 - maxt int64 -} - -func (r *mockBReader) Index() (IndexReader, error) { return r.ir, nil } -func (r *mockBReader) Chunks() (ChunkReader, error) { return r.cr, nil } -func (r *mockBReader) Tombstones() (TombstoneReader, error) { return newMemTombstones(), nil } -func (r *mockBReader) MinTime() int64 { return r.mint } -func (r *mockBReader) MaxTime() int64 { return r.maxt } diff --git a/vendor/github.com/prometheus/tsdb/querier.go b/vendor/github.com/prometheus/tsdb/querier.go deleted file mode 100644 index 3ec2ff3d..00000000 --- a/vendor/github.com/prometheus/tsdb/querier.go +++ /dev/null @@ -1,1133 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "fmt" - "sort" - "strings" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" -) - -// Querier provides querying access over time series data of a fixed -// time range. -type Querier interface { - // Select returns a set of series that matches the given label matchers. - Select(...labels.Matcher) (SeriesSet, error) - - // LabelValues returns all potential values for a label name. - LabelValues(string) ([]string, error) - - // LabelValuesFor returns all potential values for a label name. - // under the constraint of another label. - LabelValuesFor(string, labels.Label) ([]string, error) - - // LabelNames returns all the unique label names present in the block in sorted order. - LabelNames() ([]string, error) - - // Close releases the resources of the Querier. - Close() error -} - -// Series exposes a single time series. -type Series interface { - // Labels returns the complete set of labels identifying the series. - Labels() labels.Labels - - // Iterator returns a new iterator of the data of the series. - Iterator() SeriesIterator -} - -// querier aggregates querying results from time blocks within -// a single partition. -type querier struct { - blocks []Querier -} - -func (q *querier) LabelValues(n string) ([]string, error) { - return q.lvals(q.blocks, n) -} - -// LabelNames returns all the unique label names present querier blocks. -func (q *querier) LabelNames() ([]string, error) { - labelNamesMap := make(map[string]struct{}) - for _, b := range q.blocks { - names, err := b.LabelNames() - if err != nil { - return nil, errors.Wrap(err, "LabelNames() from Querier") - } - for _, name := range names { - labelNamesMap[name] = struct{}{} - } - } - - labelNames := make([]string, 0, len(labelNamesMap)) - for name := range labelNamesMap { - labelNames = append(labelNames, name) - } - sort.Strings(labelNames) - - return labelNames, nil -} - -func (q *querier) lvals(qs []Querier, n string) ([]string, error) { - if len(qs) == 0 { - return nil, nil - } - if len(qs) == 1 { - return qs[0].LabelValues(n) - } - l := len(qs) / 2 - s1, err := q.lvals(qs[:l], n) - if err != nil { - return nil, err - } - s2, err := q.lvals(qs[l:], n) - if err != nil { - return nil, err - } - return mergeStrings(s1, s2), nil -} - -func (q *querier) LabelValuesFor(string, labels.Label) ([]string, error) { - return nil, fmt.Errorf("not implemented") -} - -func (q *querier) Select(ms ...labels.Matcher) (SeriesSet, error) { - return q.sel(q.blocks, ms) -} - -func (q *querier) sel(qs []Querier, ms []labels.Matcher) (SeriesSet, error) { - if len(qs) == 0 { - return EmptySeriesSet(), nil - } - if len(qs) == 1 { - return qs[0].Select(ms...) - } - l := len(qs) / 2 - - a, err := q.sel(qs[:l], ms) - if err != nil { - return nil, err - } - b, err := q.sel(qs[l:], ms) - if err != nil { - return nil, err - } - return newMergedSeriesSet(a, b), nil -} - -func (q *querier) Close() error { - var merr tsdb_errors.MultiError - - for _, bq := range q.blocks { - merr.Add(bq.Close()) - } - return merr.Err() -} - -// verticalQuerier aggregates querying results from time blocks within -// a single partition. The block time ranges can be overlapping. -type verticalQuerier struct { - querier -} - -func (q *verticalQuerier) Select(ms ...labels.Matcher) (SeriesSet, error) { - return q.sel(q.blocks, ms) -} - -func (q *verticalQuerier) sel(qs []Querier, ms []labels.Matcher) (SeriesSet, error) { - if len(qs) == 0 { - return EmptySeriesSet(), nil - } - if len(qs) == 1 { - return qs[0].Select(ms...) - } - l := len(qs) / 2 - - a, err := q.sel(qs[:l], ms) - if err != nil { - return nil, err - } - b, err := q.sel(qs[l:], ms) - if err != nil { - return nil, err - } - return newMergedVerticalSeriesSet(a, b), nil -} - -// NewBlockQuerier returns a querier against the reader. -func NewBlockQuerier(b BlockReader, mint, maxt int64) (Querier, error) { - indexr, err := b.Index() - if err != nil { - return nil, errors.Wrapf(err, "open index reader") - } - chunkr, err := b.Chunks() - if err != nil { - indexr.Close() - return nil, errors.Wrapf(err, "open chunk reader") - } - tombsr, err := b.Tombstones() - if err != nil { - indexr.Close() - chunkr.Close() - return nil, errors.Wrapf(err, "open tombstone reader") - } - return &blockQuerier{ - mint: mint, - maxt: maxt, - index: indexr, - chunks: chunkr, - tombstones: tombsr, - }, nil -} - -// blockQuerier provides querying access to a single block database. -type blockQuerier struct { - index IndexReader - chunks ChunkReader - tombstones TombstoneReader - - mint, maxt int64 -} - -func (q *blockQuerier) Select(ms ...labels.Matcher) (SeriesSet, error) { - base, err := LookupChunkSeries(q.index, q.tombstones, ms...) - if err != nil { - return nil, err - } - return &blockSeriesSet{ - set: &populatedChunkSeries{ - set: base, - chunks: q.chunks, - mint: q.mint, - maxt: q.maxt, - }, - - mint: q.mint, - maxt: q.maxt, - }, nil -} - -func (q *blockQuerier) LabelValues(name string) ([]string, error) { - tpls, err := q.index.LabelValues(name) - if err != nil { - return nil, err - } - res := make([]string, 0, tpls.Len()) - - for i := 0; i < tpls.Len(); i++ { - vals, err := tpls.At(i) - if err != nil { - return nil, err - } - res = append(res, vals[0]) - } - return res, nil -} - -func (q *blockQuerier) LabelNames() ([]string, error) { - return q.index.LabelNames() -} - -func (q *blockQuerier) LabelValuesFor(string, labels.Label) ([]string, error) { - return nil, fmt.Errorf("not implemented") -} - -func (q *blockQuerier) Close() error { - var merr tsdb_errors.MultiError - - merr.Add(q.index.Close()) - merr.Add(q.chunks.Close()) - merr.Add(q.tombstones.Close()) - - return merr.Err() -} - -// PostingsForMatchers assembles a single postings iterator against the index reader -// based on the given matchers. -func PostingsForMatchers(ix IndexReader, ms ...labels.Matcher) (index.Postings, error) { - var its, notIts []index.Postings - // See which label must be non-empty. - labelMustBeSet := make(map[string]bool, len(ms)) - for _, m := range ms { - if !m.Matches("") { - labelMustBeSet[m.Name()] = true - } - } - - for _, m := range ms { - matchesEmpty := m.Matches("") - if labelMustBeSet[m.Name()] || !matchesEmpty { - // If this matcher must be non-empty, we can be smarter. - nm, isNot := m.(*labels.NotMatcher) - if isNot && matchesEmpty { // l!="foo" - // If the label can't be empty and is a Not and the inner matcher - // doesn't match empty, then subtract it out at the end. - it, err := postingsForMatcher(ix, nm.Matcher) - if err != nil { - return nil, err - } - notIts = append(notIts, it) - } else if isNot && !matchesEmpty { // l!="" - // If the label can't be empty and is a Not, but the inner matcher can - // be empty we need to use inversePostingsForMatcher. - it, err := inversePostingsForMatcher(ix, nm.Matcher) - if err != nil { - return nil, err - } - its = append(its, it) - } else { // l="a" - // Non-Not matcher, use normal postingsForMatcher. - it, err := postingsForMatcher(ix, m) - if err != nil { - return nil, err - } - its = append(its, it) - } - } else { // l="" - // If the matchers for a labelname selects an empty value, it selects all - // the series which don't have the label name set too. See: - // https://github.com/prometheus/prometheus/issues/3575 and - // https://github.com/prometheus/prometheus/pull/3578#issuecomment-351653555 - it, err := inversePostingsForMatcher(ix, m) - if err != nil { - return nil, err - } - notIts = append(notIts, it) - } - } - - // If there's nothing to subtract from, add in everything and remove the notIts later. - if len(its) == 0 && len(notIts) != 0 { - allPostings, err := ix.Postings(index.AllPostingsKey()) - if err != nil { - return nil, err - } - its = append(its, allPostings) - } - - it := index.Intersect(its...) - - for _, n := range notIts { - if _, ok := n.(*index.ListPostings); !ok { - // Best to pre-calculate the merged lists via next rather than have a ton - // of seeks in Without. - pl, err := index.ExpandPostings(n) - if err != nil { - return nil, err - } - n = index.NewListPostings(pl) - } - it = index.Without(it, n) - } - - return ix.SortedPostings(it), nil -} - -func postingsForMatcher(ix IndexReader, m labels.Matcher) (index.Postings, error) { - // This method will not return postings for missing labels. - - // Fast-path for equal matching. - if em, ok := m.(*labels.EqualMatcher); ok { - return ix.Postings(em.Name(), em.Value()) - } - - tpls, err := ix.LabelValues(m.Name()) - if err != nil { - return nil, err - } - - var res []string - for i := 0; i < tpls.Len(); i++ { - vals, err := tpls.At(i) - if err != nil { - return nil, err - } - if m.Matches(vals[0]) { - res = append(res, vals[0]) - } - } - - if len(res) == 0 { - return index.EmptyPostings(), nil - } - - var rit []index.Postings - - for _, v := range res { - it, err := ix.Postings(m.Name(), v) - if err != nil { - return nil, err - } - rit = append(rit, it) - } - - return index.Merge(rit...), nil -} - -// inversePostingsForMatcher eeturns the postings for the series with the label name set but not matching the matcher. -func inversePostingsForMatcher(ix IndexReader, m labels.Matcher) (index.Postings, error) { - tpls, err := ix.LabelValues(m.Name()) - if err != nil { - return nil, err - } - - var res []string - for i := 0; i < tpls.Len(); i++ { - vals, err := tpls.At(i) - if err != nil { - return nil, err - } - - if !m.Matches(vals[0]) { - res = append(res, vals[0]) - } - } - - var rit []index.Postings - for _, v := range res { - it, err := ix.Postings(m.Name(), v) - if err != nil { - return nil, err - } - - rit = append(rit, it) - } - - return index.Merge(rit...), nil -} - -func mergeStrings(a, b []string) []string { - maxl := len(a) - if len(b) > len(a) { - maxl = len(b) - } - res := make([]string, 0, maxl*10/9) - - for len(a) > 0 && len(b) > 0 { - d := strings.Compare(a[0], b[0]) - - if d == 0 { - res = append(res, a[0]) - a, b = a[1:], b[1:] - } else if d < 0 { - res = append(res, a[0]) - a = a[1:] - } else if d > 0 { - res = append(res, b[0]) - b = b[1:] - } - } - - // Append all remaining elements. - res = append(res, a...) - res = append(res, b...) - return res -} - -// SeriesSet contains a set of series. -type SeriesSet interface { - Next() bool - At() Series - Err() error -} - -var emptySeriesSet = errSeriesSet{} - -// EmptySeriesSet returns a series set that's always empty. -func EmptySeriesSet() SeriesSet { - return emptySeriesSet -} - -// mergedSeriesSet takes two series sets as a single series set. The input series sets -// must be sorted and sequential in time, i.e. if they have the same label set, -// the datapoints of a must be before the datapoints of b. -type mergedSeriesSet struct { - a, b SeriesSet - - cur Series - adone, bdone bool -} - -// NewMergedSeriesSet takes two series sets as a single series set. The input series sets -// must be sorted and sequential in time, i.e. if they have the same label set, -// the datapoints of a must be before the datapoints of b. -func NewMergedSeriesSet(a, b SeriesSet) SeriesSet { - return newMergedSeriesSet(a, b) -} - -func newMergedSeriesSet(a, b SeriesSet) *mergedSeriesSet { - s := &mergedSeriesSet{a: a, b: b} - // Initialize first elements of both sets as Next() needs - // one element look-ahead. - s.adone = !s.a.Next() - s.bdone = !s.b.Next() - - return s -} - -func (s *mergedSeriesSet) At() Series { - return s.cur -} - -func (s *mergedSeriesSet) Err() error { - if s.a.Err() != nil { - return s.a.Err() - } - return s.b.Err() -} - -func (s *mergedSeriesSet) compare() int { - if s.adone { - return 1 - } - if s.bdone { - return -1 - } - return labels.Compare(s.a.At().Labels(), s.b.At().Labels()) -} - -func (s *mergedSeriesSet) Next() bool { - if s.adone && s.bdone || s.Err() != nil { - return false - } - - d := s.compare() - - // Both sets contain the current series. Chain them into a single one. - if d > 0 { - s.cur = s.b.At() - s.bdone = !s.b.Next() - } else if d < 0 { - s.cur = s.a.At() - s.adone = !s.a.Next() - } else { - s.cur = &chainedSeries{series: []Series{s.a.At(), s.b.At()}} - s.adone = !s.a.Next() - s.bdone = !s.b.Next() - } - return true -} - -type mergedVerticalSeriesSet struct { - a, b SeriesSet - cur Series - adone, bdone bool -} - -// NewMergedVerticalSeriesSet takes two series sets as a single series set. -// The input series sets must be sorted and -// the time ranges of the series can be overlapping. -func NewMergedVerticalSeriesSet(a, b SeriesSet) SeriesSet { - return newMergedVerticalSeriesSet(a, b) -} - -func newMergedVerticalSeriesSet(a, b SeriesSet) *mergedVerticalSeriesSet { - s := &mergedVerticalSeriesSet{a: a, b: b} - // Initialize first elements of both sets as Next() needs - // one element look-ahead. - s.adone = !s.a.Next() - s.bdone = !s.b.Next() - - return s -} - -func (s *mergedVerticalSeriesSet) At() Series { - return s.cur -} - -func (s *mergedVerticalSeriesSet) Err() error { - if s.a.Err() != nil { - return s.a.Err() - } - return s.b.Err() -} - -func (s *mergedVerticalSeriesSet) compare() int { - if s.adone { - return 1 - } - if s.bdone { - return -1 - } - return labels.Compare(s.a.At().Labels(), s.b.At().Labels()) -} - -func (s *mergedVerticalSeriesSet) Next() bool { - if s.adone && s.bdone || s.Err() != nil { - return false - } - - d := s.compare() - - // Both sets contain the current series. Chain them into a single one. - if d > 0 { - s.cur = s.b.At() - s.bdone = !s.b.Next() - } else if d < 0 { - s.cur = s.a.At() - s.adone = !s.a.Next() - } else { - s.cur = &verticalChainedSeries{series: []Series{s.a.At(), s.b.At()}} - s.adone = !s.a.Next() - s.bdone = !s.b.Next() - } - return true -} - -// ChunkSeriesSet exposes the chunks and intervals of a series instead of the -// actual series itself. -type ChunkSeriesSet interface { - Next() bool - At() (labels.Labels, []chunks.Meta, Intervals) - Err() error -} - -// baseChunkSeries loads the label set and chunk references for a postings -// list from an index. It filters out series that have labels set that should be unset. -type baseChunkSeries struct { - p index.Postings - index IndexReader - tombstones TombstoneReader - - lset labels.Labels - chks []chunks.Meta - intervals Intervals - err error -} - -// LookupChunkSeries retrieves all series for the given matchers and returns a ChunkSeriesSet -// over them. It drops chunks based on tombstones in the given reader. -func LookupChunkSeries(ir IndexReader, tr TombstoneReader, ms ...labels.Matcher) (ChunkSeriesSet, error) { - if tr == nil { - tr = newMemTombstones() - } - p, err := PostingsForMatchers(ir, ms...) - if err != nil { - return nil, err - } - return &baseChunkSeries{ - p: p, - index: ir, - tombstones: tr, - }, nil -} - -func (s *baseChunkSeries) At() (labels.Labels, []chunks.Meta, Intervals) { - return s.lset, s.chks, s.intervals -} - -func (s *baseChunkSeries) Err() error { return s.err } - -func (s *baseChunkSeries) Next() bool { - var ( - lset = make(labels.Labels, len(s.lset)) - chkMetas = make([]chunks.Meta, len(s.chks)) - err error - ) - - for s.p.Next() { - ref := s.p.At() - if err := s.index.Series(ref, &lset, &chkMetas); err != nil { - // Postings may be stale. Skip if no underlying series exists. - if errors.Cause(err) == ErrNotFound { - continue - } - s.err = err - return false - } - - s.lset = lset - s.chks = chkMetas - s.intervals, err = s.tombstones.Get(s.p.At()) - if err != nil { - s.err = errors.Wrap(err, "get tombstones") - return false - } - - if len(s.intervals) > 0 { - // Only those chunks that are not entirely deleted. - chks := make([]chunks.Meta, 0, len(s.chks)) - for _, chk := range s.chks { - if !(Interval{chk.MinTime, chk.MaxTime}.isSubrange(s.intervals)) { - chks = append(chks, chk) - } - } - - s.chks = chks - } - - return true - } - if err := s.p.Err(); err != nil { - s.err = err - } - return false -} - -// populatedChunkSeries loads chunk data from a store for a set of series -// with known chunk references. It filters out chunks that do not fit the -// given time range. -type populatedChunkSeries struct { - set ChunkSeriesSet - chunks ChunkReader - mint, maxt int64 - - err error - chks []chunks.Meta - lset labels.Labels - intervals Intervals -} - -func (s *populatedChunkSeries) At() (labels.Labels, []chunks.Meta, Intervals) { - return s.lset, s.chks, s.intervals -} - -func (s *populatedChunkSeries) Err() error { return s.err } - -func (s *populatedChunkSeries) Next() bool { - for s.set.Next() { - lset, chks, dranges := s.set.At() - - for len(chks) > 0 { - if chks[0].MaxTime >= s.mint { - break - } - chks = chks[1:] - } - - // This is to delete in place while iterating. - for i, rlen := 0, len(chks); i < rlen; i++ { - j := i - (rlen - len(chks)) - c := &chks[j] - - // Break out at the first chunk that has no overlap with mint, maxt. - if c.MinTime > s.maxt { - chks = chks[:j] - break - } - - c.Chunk, s.err = s.chunks.Chunk(c.Ref) - if s.err != nil { - // This means that the chunk has be garbage collected. Remove it from the list. - if s.err == ErrNotFound { - s.err = nil - // Delete in-place. - s.chks = append(chks[:j], chks[j+1:]...) - } - return false - } - } - - if len(chks) == 0 { - continue - } - - s.lset = lset - s.chks = chks - s.intervals = dranges - - return true - } - if err := s.set.Err(); err != nil { - s.err = err - } - return false -} - -// blockSeriesSet is a set of series from an inverted index query. -type blockSeriesSet struct { - set ChunkSeriesSet - err error - cur Series - - mint, maxt int64 -} - -func (s *blockSeriesSet) Next() bool { - for s.set.Next() { - lset, chunks, dranges := s.set.At() - s.cur = &chunkSeries{ - labels: lset, - chunks: chunks, - mint: s.mint, - maxt: s.maxt, - - intervals: dranges, - } - return true - } - if s.set.Err() != nil { - s.err = s.set.Err() - } - return false -} - -func (s *blockSeriesSet) At() Series { return s.cur } -func (s *blockSeriesSet) Err() error { return s.err } - -// chunkSeries is a series that is backed by a sequence of chunks holding -// time series data. -type chunkSeries struct { - labels labels.Labels - chunks []chunks.Meta // in-order chunk refs - - mint, maxt int64 - - intervals Intervals -} - -func (s *chunkSeries) Labels() labels.Labels { - return s.labels -} - -func (s *chunkSeries) Iterator() SeriesIterator { - return newChunkSeriesIterator(s.chunks, s.intervals, s.mint, s.maxt) -} - -// SeriesIterator iterates over the data of a time series. -type SeriesIterator interface { - // Seek advances the iterator forward to the given timestamp. - // If there's no value exactly at t, it advances to the first value - // after t. - Seek(t int64) bool - // At returns the current timestamp/value pair. - At() (t int64, v float64) - // Next advances the iterator by one. - Next() bool - // Err returns the current error. - Err() error -} - -// chainedSeries implements a series for a list of time-sorted series. -// They all must have the same labels. -type chainedSeries struct { - series []Series -} - -func (s *chainedSeries) Labels() labels.Labels { - return s.series[0].Labels() -} - -func (s *chainedSeries) Iterator() SeriesIterator { - return newChainedSeriesIterator(s.series...) -} - -// chainedSeriesIterator implements a series iterater over a list -// of time-sorted, non-overlapping iterators. -type chainedSeriesIterator struct { - series []Series // series in time order - - i int - cur SeriesIterator -} - -func newChainedSeriesIterator(s ...Series) *chainedSeriesIterator { - return &chainedSeriesIterator{ - series: s, - i: 0, - cur: s[0].Iterator(), - } -} - -func (it *chainedSeriesIterator) Seek(t int64) bool { - // We just scan the chained series sequentially as they are already - // pre-selected by relevant time and should be accessed sequentially anyway. - for i, s := range it.series[it.i:] { - cur := s.Iterator() - if !cur.Seek(t) { - continue - } - it.cur = cur - it.i += i - return true - } - return false -} - -func (it *chainedSeriesIterator) Next() bool { - if it.cur.Next() { - return true - } - if err := it.cur.Err(); err != nil { - return false - } - if it.i == len(it.series)-1 { - return false - } - - it.i++ - it.cur = it.series[it.i].Iterator() - - return it.Next() -} - -func (it *chainedSeriesIterator) At() (t int64, v float64) { - return it.cur.At() -} - -func (it *chainedSeriesIterator) Err() error { - return it.cur.Err() -} - -// verticalChainedSeries implements a series for a list of time-sorted, time-overlapping series. -// They all must have the same labels. -type verticalChainedSeries struct { - series []Series -} - -func (s *verticalChainedSeries) Labels() labels.Labels { - return s.series[0].Labels() -} - -func (s *verticalChainedSeries) Iterator() SeriesIterator { - return newVerticalMergeSeriesIterator(s.series...) -} - -// verticalMergeSeriesIterator implements a series iterater over a list -// of time-sorted, time-overlapping iterators. -type verticalMergeSeriesIterator struct { - a, b SeriesIterator - aok, bok, initialized bool - - curT int64 - curV float64 -} - -func newVerticalMergeSeriesIterator(s ...Series) SeriesIterator { - if len(s) == 1 { - return s[0].Iterator() - } else if len(s) == 2 { - return &verticalMergeSeriesIterator{ - a: s[0].Iterator(), - b: s[1].Iterator(), - } - } - return &verticalMergeSeriesIterator{ - a: s[0].Iterator(), - b: newVerticalMergeSeriesIterator(s[1:]...), - } -} - -func (it *verticalMergeSeriesIterator) Seek(t int64) bool { - it.aok, it.bok = it.a.Seek(t), it.b.Seek(t) - it.initialized = true - return it.Next() -} - -func (it *verticalMergeSeriesIterator) Next() bool { - if !it.initialized { - it.aok = it.a.Next() - it.bok = it.b.Next() - it.initialized = true - } - - if !it.aok && !it.bok { - return false - } - - if !it.aok { - it.curT, it.curV = it.b.At() - it.bok = it.b.Next() - return true - } - if !it.bok { - it.curT, it.curV = it.a.At() - it.aok = it.a.Next() - return true - } - - acurT, acurV := it.a.At() - bcurT, bcurV := it.b.At() - if acurT < bcurT { - it.curT, it.curV = acurT, acurV - it.aok = it.a.Next() - } else if acurT > bcurT { - it.curT, it.curV = bcurT, bcurV - it.bok = it.b.Next() - } else { - it.curT, it.curV = bcurT, bcurV - it.aok = it.a.Next() - it.bok = it.b.Next() - } - return true -} - -func (it *verticalMergeSeriesIterator) At() (t int64, v float64) { - return it.curT, it.curV -} - -func (it *verticalMergeSeriesIterator) Err() error { - if it.a.Err() != nil { - return it.a.Err() - } - return it.b.Err() -} - -// chunkSeriesIterator implements a series iterator on top -// of a list of time-sorted, non-overlapping chunks. -type chunkSeriesIterator struct { - chunks []chunks.Meta - - i int - cur chunkenc.Iterator - - maxt, mint int64 - - intervals Intervals -} - -func newChunkSeriesIterator(cs []chunks.Meta, dranges Intervals, mint, maxt int64) *chunkSeriesIterator { - it := cs[0].Chunk.Iterator() - - if len(dranges) > 0 { - it = &deletedIterator{it: it, intervals: dranges} - } - return &chunkSeriesIterator{ - chunks: cs, - i: 0, - cur: it, - - mint: mint, - maxt: maxt, - - intervals: dranges, - } -} - -func (it *chunkSeriesIterator) Seek(t int64) (ok bool) { - if t > it.maxt { - return false - } - - // Seek to the first valid value after t. - if t < it.mint { - t = it.mint - } - - for ; it.chunks[it.i].MaxTime < t; it.i++ { - if it.i == len(it.chunks)-1 { - return false - } - } - - it.cur = it.chunks[it.i].Chunk.Iterator() - if len(it.intervals) > 0 { - it.cur = &deletedIterator{it: it.cur, intervals: it.intervals} - } - - for it.cur.Next() { - t0, _ := it.cur.At() - if t0 >= t { - return true - } - } - return false -} - -func (it *chunkSeriesIterator) At() (t int64, v float64) { - return it.cur.At() -} - -func (it *chunkSeriesIterator) Next() bool { - if it.cur.Next() { - t, _ := it.cur.At() - - if t < it.mint { - if !it.Seek(it.mint) { - return false - } - t, _ = it.At() - - return t <= it.maxt - } - if t > it.maxt { - return false - } - return true - } - if err := it.cur.Err(); err != nil { - return false - } - if it.i == len(it.chunks)-1 { - return false - } - - it.i++ - it.cur = it.chunks[it.i].Chunk.Iterator() - if len(it.intervals) > 0 { - it.cur = &deletedIterator{it: it.cur, intervals: it.intervals} - } - - return it.Next() -} - -func (it *chunkSeriesIterator) Err() error { - return it.cur.Err() -} - -// deletedIterator wraps an Iterator and makes sure any deleted metrics are not -// returned. -type deletedIterator struct { - it chunkenc.Iterator - - intervals Intervals -} - -func (it *deletedIterator) At() (int64, float64) { - return it.it.At() -} - -func (it *deletedIterator) Next() bool { -Outer: - for it.it.Next() { - ts, _ := it.it.At() - - for _, tr := range it.intervals { - if tr.inBounds(ts) { - continue Outer - } - - if ts > tr.Maxt { - it.intervals = it.intervals[1:] - continue - } - - return true - } - - return true - } - - return false -} - -func (it *deletedIterator) Err() error { - return it.it.Err() -} - -type errSeriesSet struct { - err error -} - -func (s errSeriesSet) Next() bool { return false } -func (s errSeriesSet) At() Series { return nil } -func (s errSeriesSet) Err() error { return s.err } diff --git a/vendor/github.com/prometheus/tsdb/querier_test.go b/vendor/github.com/prometheus/tsdb/querier_test.go deleted file mode 100644 index a9bb0086..00000000 --- a/vendor/github.com/prometheus/tsdb/querier_test.go +++ /dev/null @@ -1,1901 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "fmt" - "io/ioutil" - "math" - "math/rand" - "os" - "path/filepath" - "sort" - "testing" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" - "github.com/prometheus/tsdb/tsdbutil" -) - -type mockSeriesSet struct { - next func() bool - series func() Series - err func() error -} - -func (m *mockSeriesSet) Next() bool { return m.next() } -func (m *mockSeriesSet) At() Series { return m.series() } -func (m *mockSeriesSet) Err() error { return m.err() } - -func newMockSeriesSet(list []Series) *mockSeriesSet { - i := -1 - return &mockSeriesSet{ - next: func() bool { - i++ - return i < len(list) - }, - series: func() Series { - return list[i] - }, - err: func() error { return nil }, - } -} - -func TestMergedSeriesSet(t *testing.T) { - - cases := []struct { - // The input sets in order (samples in series in b are strictly - // after those in a). - a, b SeriesSet - // The composition of a and b in the partition series set must yield - // results equivalent to the result series set. - exp SeriesSet - }{ - { - a: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - }, []tsdbutil.Sample{ - sample{t: 1, v: 1}, - }), - }), - b: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - }, []tsdbutil.Sample{ - sample{t: 2, v: 2}, - }), - newSeries(map[string]string{ - "b": "b", - }, []tsdbutil.Sample{ - sample{t: 1, v: 1}, - }), - }), - exp: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - }, []tsdbutil.Sample{ - sample{t: 1, v: 1}, - sample{t: 2, v: 2}, - }), - newSeries(map[string]string{ - "b": "b", - }, []tsdbutil.Sample{ - sample{t: 1, v: 1}, - }), - }), - }, - { - a: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "handler": "prometheus", - "instance": "127.0.0.1:9090", - }, []tsdbutil.Sample{ - sample{t: 1, v: 1}, - }), - newSeries(map[string]string{ - "handler": "prometheus", - "instance": "localhost:9090", - }, []tsdbutil.Sample{ - sample{t: 1, v: 2}, - }), - }), - b: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "handler": "prometheus", - "instance": "127.0.0.1:9090", - }, []tsdbutil.Sample{ - sample{t: 2, v: 1}, - }), - newSeries(map[string]string{ - "handler": "query", - "instance": "localhost:9090", - }, []tsdbutil.Sample{ - sample{t: 2, v: 2}, - }), - }), - exp: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "handler": "prometheus", - "instance": "127.0.0.1:9090", - }, []tsdbutil.Sample{ - sample{t: 1, v: 1}, - sample{t: 2, v: 1}, - }), - newSeries(map[string]string{ - "handler": "prometheus", - "instance": "localhost:9090", - }, []tsdbutil.Sample{ - sample{t: 1, v: 2}, - }), - newSeries(map[string]string{ - "handler": "query", - "instance": "localhost:9090", - }, []tsdbutil.Sample{ - sample{t: 2, v: 2}, - }), - }), - }, - } - -Outer: - for _, c := range cases { - res := newMergedSeriesSet(c.a, c.b) - - for { - eok, rok := c.exp.Next(), res.Next() - testutil.Equals(t, eok, rok) - - if !eok { - continue Outer - } - sexp := c.exp.At() - sres := res.At() - - testutil.Equals(t, sexp.Labels(), sres.Labels()) - - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } -} - -func expandSeriesIterator(it SeriesIterator) (r []tsdbutil.Sample, err error) { - for it.Next() { - t, v := it.At() - r = append(r, sample{t: t, v: v}) - } - - return r, it.Err() -} - -type seriesSamples struct { - lset map[string]string - chunks [][]sample -} - -// Index: labels -> postings -> chunkMetas -> chunkRef -// ChunkReader: ref -> vals -func createIdxChkReaders(tc []seriesSamples) (IndexReader, ChunkReader, int64, int64) { - sort.Slice(tc, func(i, j int) bool { - return labels.Compare(labels.FromMap(tc[i].lset), labels.FromMap(tc[i].lset)) < 0 - }) - - postings := index.NewMemPostings() - chkReader := mockChunkReader(make(map[uint64]chunkenc.Chunk)) - lblIdx := make(map[string]stringset) - mi := newMockIndex() - blockMint := int64(math.MaxInt64) - blockMaxt := int64(math.MinInt64) - - for i, s := range tc { - i = i + 1 // 0 is not a valid posting. - metas := make([]chunks.Meta, 0, len(s.chunks)) - for _, chk := range s.chunks { - // Collisions can be there, but for tests, its fine. - ref := rand.Uint64() - - if chk[0].t < blockMint { - blockMint = chk[0].t - } - if chk[len(chk)-1].t > blockMaxt { - blockMaxt = chk[len(chk)-1].t - } - - metas = append(metas, chunks.Meta{ - MinTime: chk[0].t, - MaxTime: chk[len(chk)-1].t, - Ref: ref, - }) - - chunk := chunkenc.NewXORChunk() - app, _ := chunk.Appender() - for _, smpl := range chk { - app.Append(smpl.t, smpl.v) - } - chkReader[ref] = chunk - } - - ls := labels.FromMap(s.lset) - mi.AddSeries(uint64(i), ls, metas...) - - postings.Add(uint64(i), ls) - - for _, l := range ls { - vs, present := lblIdx[l.Name] - if !present { - vs = stringset{} - lblIdx[l.Name] = vs - } - vs.set(l.Value) - } - } - - for l, vs := range lblIdx { - mi.WriteLabelIndex([]string{l}, vs.slice()) - } - - postings.Iter(func(l labels.Label, p index.Postings) error { - return mi.WritePostings(l.Name, l.Value, p) - }) - - return mi, chkReader, blockMint, blockMaxt -} - -func TestBlockQuerier(t *testing.T) { - newSeries := func(l map[string]string, s []tsdbutil.Sample) Series { - return &mockSeries{ - labels: func() labels.Labels { return labels.FromMap(l) }, - iterator: func() SeriesIterator { return newListSeriesIterator(s) }, - } - } - - type query struct { - mint, maxt int64 - ms []labels.Matcher - exp SeriesSet - } - - cases := struct { - data []seriesSamples - - queries []query - }{ - data: []seriesSamples{ - { - lset: map[string]string{ - "a": "a", - }, - chunks: [][]sample{ - { - {1, 2}, {2, 3}, {3, 4}, - }, - { - {5, 2}, {6, 3}, {7, 4}, - }, - }, - }, - { - lset: map[string]string{ - "a": "a", - "b": "b", - }, - chunks: [][]sample{ - { - {1, 1}, {2, 2}, {3, 3}, - }, - { - {5, 3}, {6, 6}, - }, - }, - }, - { - lset: map[string]string{ - "b": "b", - }, - chunks: [][]sample{ - { - {1, 3}, {2, 2}, {3, 6}, - }, - { - {5, 1}, {6, 7}, {7, 2}, - }, - }, - }, - }, - - queries: []query{ - { - mint: 0, - maxt: 0, - ms: []labels.Matcher{}, - exp: newMockSeriesSet([]Series{}), - }, - { - mint: 0, - maxt: 0, - ms: []labels.Matcher{labels.NewEqualMatcher("a", "a")}, - exp: newMockSeriesSet([]Series{}), - }, - { - mint: 1, - maxt: 0, - ms: []labels.Matcher{labels.NewEqualMatcher("a", "a")}, - exp: newMockSeriesSet([]Series{}), - }, - { - mint: 2, - maxt: 6, - ms: []labels.Matcher{labels.NewEqualMatcher("a", "a")}, - exp: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - }, - []tsdbutil.Sample{sample{2, 3}, sample{3, 4}, sample{5, 2}, sample{6, 3}}, - ), - newSeries(map[string]string{ - "a": "a", - "b": "b", - }, - []tsdbutil.Sample{sample{2, 2}, sample{3, 3}, sample{5, 3}, sample{6, 6}}, - ), - }), - }, - }, - } - -Outer: - for _, c := range cases.queries { - ir, cr, _, _ := createIdxChkReaders(cases.data) - querier := &blockQuerier{ - index: ir, - chunks: cr, - tombstones: newMemTombstones(), - - mint: c.mint, - maxt: c.maxt, - } - - res, err := querier.Select(c.ms...) - testutil.Ok(t, err) - - for { - eok, rok := c.exp.Next(), res.Next() - testutil.Equals(t, eok, rok) - - if !eok { - continue Outer - } - sexp := c.exp.At() - sres := res.At() - - testutil.Equals(t, sexp.Labels(), sres.Labels()) - - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } -} - -func TestBlockQuerierDelete(t *testing.T) { - newSeries := func(l map[string]string, s []tsdbutil.Sample) Series { - return &mockSeries{ - labels: func() labels.Labels { return labels.FromMap(l) }, - iterator: func() SeriesIterator { return newListSeriesIterator(s) }, - } - } - - type query struct { - mint, maxt int64 - ms []labels.Matcher - exp SeriesSet - } - - cases := struct { - data []seriesSamples - - tombstones TombstoneReader - queries []query - }{ - data: []seriesSamples{ - { - lset: map[string]string{ - "a": "a", - }, - chunks: [][]sample{ - { - {1, 2}, {2, 3}, {3, 4}, - }, - { - {5, 2}, {6, 3}, {7, 4}, - }, - }, - }, - { - lset: map[string]string{ - "a": "a", - "b": "b", - }, - chunks: [][]sample{ - { - {1, 1}, {2, 2}, {3, 3}, - }, - { - {4, 15}, {5, 3}, {6, 6}, - }, - }, - }, - { - lset: map[string]string{ - "b": "b", - }, - chunks: [][]sample{ - { - {1, 3}, {2, 2}, {3, 6}, - }, - { - {5, 1}, {6, 7}, {7, 2}, - }, - }, - }, - }, - tombstones: &memTombstones{intvlGroups: map[uint64]Intervals{ - 1: Intervals{{1, 3}}, - 2: Intervals{{1, 3}, {6, 10}}, - 3: Intervals{{6, 10}}, - }}, - queries: []query{ - { - mint: 2, - maxt: 7, - ms: []labels.Matcher{labels.NewEqualMatcher("a", "a")}, - exp: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - }, - []tsdbutil.Sample{sample{5, 2}, sample{6, 3}, sample{7, 4}}, - ), - newSeries(map[string]string{ - "a": "a", - "b": "b", - }, - []tsdbutil.Sample{sample{4, 15}, sample{5, 3}}, - ), - }), - }, - { - mint: 2, - maxt: 7, - ms: []labels.Matcher{labels.NewEqualMatcher("b", "b")}, - exp: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - "b": "b", - }, - []tsdbutil.Sample{sample{4, 15}, sample{5, 3}}, - ), - newSeries(map[string]string{ - "b": "b", - }, - []tsdbutil.Sample{sample{2, 2}, sample{3, 6}, sample{5, 1}}, - ), - }), - }, - { - mint: 1, - maxt: 4, - ms: []labels.Matcher{labels.NewEqualMatcher("a", "a")}, - exp: newMockSeriesSet([]Series{ - newSeries(map[string]string{ - "a": "a", - "b": "b", - }, - []tsdbutil.Sample{sample{4, 15}}, - ), - }), - }, - { - mint: 1, - maxt: 3, - ms: []labels.Matcher{labels.NewEqualMatcher("a", "a")}, - exp: newMockSeriesSet([]Series{}), - }, - }, - } - -Outer: - for _, c := range cases.queries { - ir, cr, _, _ := createIdxChkReaders(cases.data) - querier := &blockQuerier{ - index: ir, - chunks: cr, - tombstones: cases.tombstones, - - mint: c.mint, - maxt: c.maxt, - } - - res, err := querier.Select(c.ms...) - testutil.Ok(t, err) - - for { - eok, rok := c.exp.Next(), res.Next() - testutil.Equals(t, eok, rok) - - if !eok { - continue Outer - } - sexp := c.exp.At() - sres := res.At() - - testutil.Equals(t, sexp.Labels(), sres.Labels()) - - smplExp, errExp := expandSeriesIterator(sexp.Iterator()) - smplRes, errRes := expandSeriesIterator(sres.Iterator()) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - } -} - -func TestBaseChunkSeries(t *testing.T) { - type refdSeries struct { - lset labels.Labels - chunks []chunks.Meta - - ref uint64 - } - - cases := []struct { - series []refdSeries - // Postings should be in the sorted order of the the series - postings []uint64 - - expIdxs []int - }{ - { - series: []refdSeries{ - { - lset: labels.New([]labels.Label{{"a", "a"}}...), - chunks: []chunks.Meta{ - {Ref: 29}, {Ref: 45}, {Ref: 245}, {Ref: 123}, {Ref: 4232}, {Ref: 5344}, - {Ref: 121}, - }, - ref: 12, - }, - { - lset: labels.New([]labels.Label{{"a", "a"}, {"b", "b"}}...), - chunks: []chunks.Meta{ - {Ref: 82}, {Ref: 23}, {Ref: 234}, {Ref: 65}, {Ref: 26}, - }, - ref: 10, - }, - { - lset: labels.New([]labels.Label{{"b", "c"}}...), - chunks: []chunks.Meta{{Ref: 8282}}, - ref: 1, - }, - { - lset: labels.New([]labels.Label{{"b", "b"}}...), - chunks: []chunks.Meta{ - {Ref: 829}, {Ref: 239}, {Ref: 2349}, {Ref: 659}, {Ref: 269}, - }, - ref: 108, - }, - }, - postings: []uint64{12, 13, 10, 108}, // 13 doesn't exist and should just be skipped over. - expIdxs: []int{0, 1, 3}, - }, - { - series: []refdSeries{ - { - lset: labels.New([]labels.Label{{"a", "a"}, {"b", "b"}}...), - chunks: []chunks.Meta{ - {Ref: 82}, {Ref: 23}, {Ref: 234}, {Ref: 65}, {Ref: 26}, - }, - ref: 10, - }, - { - lset: labels.New([]labels.Label{{"b", "c"}}...), - chunks: []chunks.Meta{{Ref: 8282}}, - ref: 3, - }, - }, - postings: []uint64{}, - expIdxs: []int{}, - }, - } - - for _, tc := range cases { - mi := newMockIndex() - for _, s := range tc.series { - mi.AddSeries(s.ref, s.lset, s.chunks...) - } - - bcs := &baseChunkSeries{ - p: index.NewListPostings(tc.postings), - index: mi, - tombstones: newMemTombstones(), - } - - i := 0 - for bcs.Next() { - lset, chks, _ := bcs.At() - - idx := tc.expIdxs[i] - - testutil.Equals(t, tc.series[idx].lset, lset) - testutil.Equals(t, tc.series[idx].chunks, chks) - - i++ - } - testutil.Equals(t, len(tc.expIdxs), i) - testutil.Ok(t, bcs.Err()) - } -} - -// TODO: Remove after simpleSeries is merged -type itSeries struct { - si SeriesIterator -} - -func (s itSeries) Iterator() SeriesIterator { return s.si } -func (s itSeries) Labels() labels.Labels { return labels.Labels{} } - -func TestSeriesIterator(t *testing.T) { - itcases := []struct { - a, b, c []tsdbutil.Sample - exp []tsdbutil.Sample - - mint, maxt int64 - }{ - { - a: []tsdbutil.Sample{}, - b: []tsdbutil.Sample{}, - c: []tsdbutil.Sample{}, - - exp: []tsdbutil.Sample{}, - - mint: math.MinInt64, - maxt: math.MaxInt64, - }, - { - a: []tsdbutil.Sample{ - sample{1, 2}, - sample{2, 3}, - sample{3, 5}, - sample{6, 1}, - }, - b: []tsdbutil.Sample{}, - c: []tsdbutil.Sample{ - sample{7, 89}, sample{9, 8}, - }, - - exp: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{3, 5}, sample{6, 1}, sample{7, 89}, sample{9, 8}, - }, - mint: math.MinInt64, - maxt: math.MaxInt64, - }, - { - a: []tsdbutil.Sample{}, - b: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{3, 5}, sample{6, 1}, - }, - c: []tsdbutil.Sample{ - sample{7, 89}, sample{9, 8}, - }, - - exp: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{3, 5}, sample{6, 1}, sample{7, 89}, sample{9, 8}, - }, - mint: 2, - maxt: 8, - }, - { - a: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{3, 5}, sample{6, 1}, - }, - b: []tsdbutil.Sample{ - sample{7, 89}, sample{9, 8}, - }, - c: []tsdbutil.Sample{ - sample{10, 22}, sample{203, 3493}, - }, - - exp: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{3, 5}, sample{6, 1}, sample{7, 89}, sample{9, 8}, sample{10, 22}, sample{203, 3493}, - }, - mint: 6, - maxt: 10, - }, - } - - seekcases := []struct { - a, b, c []tsdbutil.Sample - - seek int64 - success bool - exp []tsdbutil.Sample - - mint, maxt int64 - }{ - { - a: []tsdbutil.Sample{}, - b: []tsdbutil.Sample{}, - c: []tsdbutil.Sample{}, - - seek: 0, - success: false, - exp: nil, - }, - { - a: []tsdbutil.Sample{ - sample{2, 3}, - }, - b: []tsdbutil.Sample{}, - c: []tsdbutil.Sample{ - sample{7, 89}, sample{9, 8}, - }, - - seek: 10, - success: false, - exp: nil, - mint: math.MinInt64, - maxt: math.MaxInt64, - }, - { - a: []tsdbutil.Sample{}, - b: []tsdbutil.Sample{ - sample{1, 2}, sample{3, 5}, sample{6, 1}, - }, - c: []tsdbutil.Sample{ - sample{7, 89}, sample{9, 8}, - }, - - seek: 2, - success: true, - exp: []tsdbutil.Sample{ - sample{3, 5}, sample{6, 1}, sample{7, 89}, sample{9, 8}, - }, - mint: 5, - maxt: 8, - }, - { - a: []tsdbutil.Sample{ - sample{6, 1}, - }, - b: []tsdbutil.Sample{ - sample{9, 8}, - }, - c: []tsdbutil.Sample{ - sample{10, 22}, sample{203, 3493}, - }, - - seek: 10, - success: true, - exp: []tsdbutil.Sample{ - sample{10, 22}, sample{203, 3493}, - }, - mint: 10, - maxt: 203, - }, - { - a: []tsdbutil.Sample{ - sample{6, 1}, - }, - b: []tsdbutil.Sample{ - sample{9, 8}, - }, - c: []tsdbutil.Sample{ - sample{10, 22}, sample{203, 3493}, - }, - - seek: 203, - success: true, - exp: []tsdbutil.Sample{ - sample{203, 3493}, - }, - mint: 7, - maxt: 203, - }, - } - - t.Run("Chunk", func(t *testing.T) { - for _, tc := range itcases { - chkMetas := []chunks.Meta{ - tsdbutil.ChunkFromSamples(tc.a), - tsdbutil.ChunkFromSamples(tc.b), - tsdbutil.ChunkFromSamples(tc.c), - } - res := newChunkSeriesIterator(chkMetas, nil, tc.mint, tc.maxt) - - smplValid := make([]tsdbutil.Sample, 0) - for _, s := range tc.exp { - if s.T() >= tc.mint && s.T() <= tc.maxt { - smplValid = append(smplValid, tsdbutil.Sample(s)) - } - } - exp := newListSeriesIterator(smplValid) - - smplExp, errExp := expandSeriesIterator(exp) - smplRes, errRes := expandSeriesIterator(res) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - - t.Run("Seek", func(t *testing.T) { - extra := []struct { - a, b, c []tsdbutil.Sample - - seek int64 - success bool - exp []tsdbutil.Sample - - mint, maxt int64 - }{ - { - a: []tsdbutil.Sample{ - sample{6, 1}, - }, - b: []tsdbutil.Sample{ - sample{9, 8}, - }, - c: []tsdbutil.Sample{ - sample{10, 22}, sample{203, 3493}, - }, - - seek: 203, - success: false, - exp: nil, - mint: 2, - maxt: 202, - }, - { - a: []tsdbutil.Sample{ - sample{6, 1}, - }, - b: []tsdbutil.Sample{ - sample{9, 8}, - }, - c: []tsdbutil.Sample{ - sample{10, 22}, sample{203, 3493}, - }, - - seek: 5, - success: true, - exp: []tsdbutil.Sample{sample{10, 22}}, - mint: 10, - maxt: 202, - }, - } - - seekcases2 := append(seekcases, extra...) - - for _, tc := range seekcases2 { - chkMetas := []chunks.Meta{ - tsdbutil.ChunkFromSamples(tc.a), - tsdbutil.ChunkFromSamples(tc.b), - tsdbutil.ChunkFromSamples(tc.c), - } - res := newChunkSeriesIterator(chkMetas, nil, tc.mint, tc.maxt) - - smplValid := make([]tsdbutil.Sample, 0) - for _, s := range tc.exp { - if s.T() >= tc.mint && s.T() <= tc.maxt { - smplValid = append(smplValid, tsdbutil.Sample(s)) - } - } - exp := newListSeriesIterator(smplValid) - - testutil.Equals(t, tc.success, res.Seek(tc.seek)) - - if tc.success { - // Init the list and then proceed to check. - remaining := exp.Next() - testutil.Assert(t, remaining == true, "") - - for remaining { - sExp, eExp := exp.At() - sRes, eRes := res.At() - testutil.Equals(t, eExp, eRes) - testutil.Equals(t, sExp, sRes) - - remaining = exp.Next() - testutil.Equals(t, remaining, res.Next()) - } - } - } - }) - }) - - t.Run("Chain", func(t *testing.T) { - // Extra cases for overlapping series. - itcasesExtra := []struct { - a, b, c []tsdbutil.Sample - exp []tsdbutil.Sample - mint, maxt int64 - }{ - { - a: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{3, 5}, sample{6, 1}, - }, - b: []tsdbutil.Sample{ - sample{5, 49}, sample{7, 89}, sample{9, 8}, - }, - c: []tsdbutil.Sample{ - sample{2, 33}, sample{4, 44}, sample{10, 3}, - }, - - exp: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 33}, sample{3, 5}, sample{4, 44}, sample{5, 49}, sample{6, 1}, sample{7, 89}, sample{9, 8}, sample{10, 3}, - }, - mint: math.MinInt64, - maxt: math.MaxInt64, - }, - { - a: []tsdbutil.Sample{ - sample{1, 2}, sample{2, 3}, sample{9, 5}, sample{13, 1}, - }, - b: []tsdbutil.Sample{}, - c: []tsdbutil.Sample{ - sample{1, 23}, sample{2, 342}, sample{3, 25}, sample{6, 11}, - }, - - exp: []tsdbutil.Sample{ - sample{1, 23}, sample{2, 342}, sample{3, 25}, sample{6, 11}, sample{9, 5}, sample{13, 1}, - }, - mint: math.MinInt64, - maxt: math.MaxInt64, - }, - } - - for _, tc := range itcases { - a, b, c := itSeries{newListSeriesIterator(tc.a)}, - itSeries{newListSeriesIterator(tc.b)}, - itSeries{newListSeriesIterator(tc.c)} - - res := newChainedSeriesIterator(a, b, c) - exp := newListSeriesIterator([]tsdbutil.Sample(tc.exp)) - - smplExp, errExp := expandSeriesIterator(exp) - smplRes, errRes := expandSeriesIterator(res) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - - for _, tc := range append(itcases, itcasesExtra...) { - a, b, c := itSeries{newListSeriesIterator(tc.a)}, - itSeries{newListSeriesIterator(tc.b)}, - itSeries{newListSeriesIterator(tc.c)} - - res := newVerticalMergeSeriesIterator(a, b, c) - exp := newListSeriesIterator([]tsdbutil.Sample(tc.exp)) - - smplExp, errExp := expandSeriesIterator(exp) - smplRes, errRes := expandSeriesIterator(res) - - testutil.Equals(t, errExp, errRes) - testutil.Equals(t, smplExp, smplRes) - } - - t.Run("Seek", func(t *testing.T) { - for _, tc := range seekcases { - ress := []SeriesIterator{ - newChainedSeriesIterator( - itSeries{newListSeriesIterator(tc.a)}, - itSeries{newListSeriesIterator(tc.b)}, - itSeries{newListSeriesIterator(tc.c)}, - ), - newVerticalMergeSeriesIterator( - itSeries{newListSeriesIterator(tc.a)}, - itSeries{newListSeriesIterator(tc.b)}, - itSeries{newListSeriesIterator(tc.c)}, - ), - } - - for _, res := range ress { - exp := newListSeriesIterator(tc.exp) - - testutil.Equals(t, tc.success, res.Seek(tc.seek)) - - if tc.success { - // Init the list and then proceed to check. - remaining := exp.Next() - testutil.Assert(t, remaining == true, "") - - for remaining { - sExp, eExp := exp.At() - sRes, eRes := res.At() - testutil.Equals(t, eExp, eRes) - testutil.Equals(t, sExp, sRes) - - remaining = exp.Next() - testutil.Equals(t, remaining, res.Next()) - } - } - } - } - }) - }) -} - -// Regression for: https://github.com/prometheus/tsdb/pull/97 -func TestChunkSeriesIterator_DoubleSeek(t *testing.T) { - chkMetas := []chunks.Meta{ - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{}), - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{sample{1, 1}, sample{2, 2}, sample{3, 3}}), - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{sample{4, 4}, sample{5, 5}}), - } - - res := newChunkSeriesIterator(chkMetas, nil, 2, 8) - testutil.Assert(t, res.Seek(1) == true, "") - testutil.Assert(t, res.Seek(2) == true, "") - ts, v := res.At() - testutil.Equals(t, int64(2), ts) - testutil.Equals(t, float64(2), v) -} - -// Regression when seeked chunks were still found via binary search and we always -// skipped to the end when seeking a value in the current chunk. -func TestChunkSeriesIterator_SeekInCurrentChunk(t *testing.T) { - metas := []chunks.Meta{ - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{}), - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{sample{1, 2}, sample{3, 4}, sample{5, 6}, sample{7, 8}}), - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{}), - } - - it := newChunkSeriesIterator(metas, nil, 1, 7) - - testutil.Assert(t, it.Next() == true, "") - ts, v := it.At() - testutil.Equals(t, int64(1), ts) - testutil.Equals(t, float64(2), v) - - testutil.Assert(t, it.Seek(4) == true, "") - ts, v = it.At() - testutil.Equals(t, int64(5), ts) - testutil.Equals(t, float64(6), v) -} - -// Regression when calling Next() with a time bounded to fit within two samples. -// Seek gets called and advances beyond the max time, which was just accepted as a valid sample. -func TestChunkSeriesIterator_NextWithMinTime(t *testing.T) { - metas := []chunks.Meta{ - tsdbutil.ChunkFromSamples([]tsdbutil.Sample{sample{1, 6}, sample{5, 6}, sample{7, 8}}), - } - - it := newChunkSeriesIterator(metas, nil, 2, 4) - testutil.Assert(t, it.Next() == false, "") -} - -func TestPopulatedCSReturnsValidChunkSlice(t *testing.T) { - lbls := []labels.Labels{labels.New(labels.Label{"a", "b"})} - chunkMetas := [][]chunks.Meta{ - { - {MinTime: 1, MaxTime: 2, Ref: 1}, - {MinTime: 3, MaxTime: 4, Ref: 2}, - {MinTime: 10, MaxTime: 12, Ref: 3}, - }, - } - - cr := mockChunkReader( - map[uint64]chunkenc.Chunk{ - 1: chunkenc.NewXORChunk(), - 2: chunkenc.NewXORChunk(), - 3: chunkenc.NewXORChunk(), - }, - ) - - m := &mockChunkSeriesSet{l: lbls, cm: chunkMetas, i: -1} - p := &populatedChunkSeries{ - set: m, - chunks: cr, - - mint: 0, - maxt: 0, - } - - testutil.Assert(t, p.Next() == false, "") - - p.mint = 6 - p.maxt = 9 - testutil.Assert(t, p.Next() == false, "") - - // Test the case where 1 chunk could cause an unpopulated chunk to be returned. - chunkMetas = [][]chunks.Meta{ - { - {MinTime: 1, MaxTime: 2, Ref: 1}, - }, - } - - m = &mockChunkSeriesSet{l: lbls, cm: chunkMetas, i: -1} - p = &populatedChunkSeries{ - set: m, - chunks: cr, - - mint: 10, - maxt: 15, - } - testutil.Assert(t, p.Next() == false, "") -} - -type mockChunkSeriesSet struct { - l []labels.Labels - cm [][]chunks.Meta - - i int -} - -func (m *mockChunkSeriesSet) Next() bool { - if len(m.l) != len(m.cm) { - return false - } - m.i++ - return m.i < len(m.l) -} - -func (m *mockChunkSeriesSet) At() (labels.Labels, []chunks.Meta, Intervals) { - return m.l[m.i], m.cm[m.i], nil -} - -func (m *mockChunkSeriesSet) Err() error { - return nil -} - -// Test the cost of merging series sets for different number of merged sets and their size. -// The subset are all equivalent so this does not capture merging of partial or non-overlapping sets well. -func BenchmarkMergedSeriesSet(b *testing.B) { - var sel func(sets []SeriesSet) SeriesSet - - sel = func(sets []SeriesSet) SeriesSet { - if len(sets) == 0 { - return EmptySeriesSet() - } - if len(sets) == 1 { - return sets[0] - } - l := len(sets) / 2 - return newMergedSeriesSet(sel(sets[:l]), sel(sets[l:])) - } - - for _, k := range []int{ - 100, - 1000, - 10000, - 20000, - } { - for _, j := range []int{1, 2, 4, 8, 16, 32} { - b.Run(fmt.Sprintf("series=%d,blocks=%d", k, j), func(b *testing.B) { - lbls, err := labels.ReadLabels(filepath.Join("testdata", "20kseries.json"), k) - testutil.Ok(b, err) - - sort.Sort(labels.Slice(lbls)) - - in := make([][]Series, j) - - for _, l := range lbls { - l2 := l - for j := range in { - in[j] = append(in[j], &mockSeries{labels: func() labels.Labels { return l2 }}) - } - } - - b.ResetTimer() - - for i := 0; i < b.N; i++ { - var sets []SeriesSet - for _, s := range in { - sets = append(sets, newMockSeriesSet(s)) - } - ms := sel(sets) - - i := 0 - for ms.Next() { - i++ - } - testutil.Ok(b, ms.Err()) - testutil.Equals(b, len(lbls), i) - } - }) - } - } -} - -func BenchmarkPersistedQueries(b *testing.B) { - for _, nSeries := range []int{10, 100} { - for _, nSamples := range []int64{1000, 10000, 100000} { - b.Run(fmt.Sprintf("series=%d,samplesPerSeries=%d", nSeries, nSamples), func(b *testing.B) { - dir, err := ioutil.TempDir("", "bench_persisted") - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, os.RemoveAll(dir)) - }() - - block, err := OpenBlock(nil, createBlock(b, dir, genSeries(nSeries, 10, 1, int64(nSamples))), nil) - testutil.Ok(b, err) - defer block.Close() - - q, err := NewBlockQuerier(block, block.Meta().MinTime, block.Meta().MaxTime) - testutil.Ok(b, err) - defer q.Close() - - b.ResetTimer() - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - ss, err := q.Select(labels.NewMustRegexpMatcher("__name__", ".+")) - for ss.Next() { - s := ss.At() - s.Labels() - it := s.Iterator() - for it.Next() { - } - testutil.Ok(b, it.Err()) - } - testutil.Ok(b, ss.Err()) - testutil.Ok(b, err) - } - }) - } - } -} - -type mockChunkReader map[uint64]chunkenc.Chunk - -func (cr mockChunkReader) Chunk(id uint64) (chunkenc.Chunk, error) { - chk, ok := cr[id] - if ok { - return chk, nil - } - - return nil, errors.New("Chunk with ref not found") -} - -func (cr mockChunkReader) Close() error { - return nil -} - -func TestDeletedIterator(t *testing.T) { - chk := chunkenc.NewXORChunk() - app, err := chk.Appender() - testutil.Ok(t, err) - // Insert random stuff from (0, 1000). - act := make([]sample, 1000) - for i := 0; i < 1000; i++ { - act[i].t = int64(i) - act[i].v = rand.Float64() - app.Append(act[i].t, act[i].v) - } - - cases := []struct { - r Intervals - }{ - {r: Intervals{{1, 20}}}, - {r: Intervals{{1, 10}, {12, 20}, {21, 23}, {25, 30}}}, - {r: Intervals{{1, 10}, {12, 20}, {20, 30}}}, - {r: Intervals{{1, 10}, {12, 23}, {25, 30}}}, - {r: Intervals{{1, 23}, {12, 20}, {25, 30}}}, - {r: Intervals{{1, 23}, {12, 20}, {25, 3000}}}, - {r: Intervals{{0, 2000}}}, - {r: Intervals{{500, 2000}}}, - {r: Intervals{{0, 200}}}, - {r: Intervals{{1000, 20000}}}, - } - - for _, c := range cases { - i := int64(-1) - it := &deletedIterator{it: chk.Iterator(), intervals: c.r[:]} - ranges := c.r[:] - for it.Next() { - i++ - for _, tr := range ranges { - if tr.inBounds(i) { - i = tr.Maxt + 1 - ranges = ranges[1:] - } - } - - testutil.Assert(t, i < 1000, "") - - ts, v := it.At() - testutil.Equals(t, act[i].t, ts) - testutil.Equals(t, act[i].v, v) - } - // There has been an extra call to Next(). - i++ - for _, tr := range ranges { - if tr.inBounds(i) { - i = tr.Maxt + 1 - ranges = ranges[1:] - } - } - - testutil.Assert(t, i >= 1000, "") - testutil.Ok(t, it.Err()) - } -} - -type series struct { - l labels.Labels - chunks []chunks.Meta -} - -type mockIndex struct { - series map[uint64]series - labelIndex map[string][]string - postings map[labels.Label][]uint64 - symbols map[string]struct{} -} - -func newMockIndex() mockIndex { - ix := mockIndex{ - series: make(map[uint64]series), - labelIndex: make(map[string][]string), - postings: make(map[labels.Label][]uint64), - symbols: make(map[string]struct{}), - } - return ix -} - -func (m mockIndex) Symbols() (map[string]struct{}, error) { - return m.symbols, nil -} - -func (m *mockIndex) AddSeries(ref uint64, l labels.Labels, chunks ...chunks.Meta) error { - if _, ok := m.series[ref]; ok { - return errors.Errorf("series with reference %d already added", ref) - } - for _, lbl := range l { - m.symbols[lbl.Name] = struct{}{} - m.symbols[lbl.Value] = struct{}{} - } - - s := series{l: l} - // Actual chunk data is not stored in the index. - for _, c := range chunks { - c.Chunk = nil - s.chunks = append(s.chunks, c) - } - m.series[ref] = s - - return nil -} - -func (m mockIndex) WriteLabelIndex(names []string, values []string) error { - // TODO support composite indexes - if len(names) != 1 { - return errors.New("composite indexes not supported yet") - } - sort.Strings(values) - m.labelIndex[names[0]] = values - return nil -} - -func (m mockIndex) WritePostings(name, value string, it index.Postings) error { - l := labels.Label{Name: name, Value: value} - if _, ok := m.postings[l]; ok { - return errors.Errorf("postings for %s already added", l) - } - ep, err := index.ExpandPostings(it) - if err != nil { - return err - } - m.postings[l] = ep - return nil -} - -func (m mockIndex) Close() error { - return nil -} - -func (m mockIndex) LabelValues(names ...string) (index.StringTuples, error) { - // TODO support composite indexes - if len(names) != 1 { - return nil, errors.New("composite indexes not supported yet") - } - - return index.NewStringTuples(m.labelIndex[names[0]], 1) -} - -func (m mockIndex) Postings(name, value string) (index.Postings, error) { - l := labels.Label{Name: name, Value: value} - return index.NewListPostings(m.postings[l]), nil -} - -func (m mockIndex) SortedPostings(p index.Postings) index.Postings { - ep, err := index.ExpandPostings(p) - if err != nil { - return index.ErrPostings(errors.Wrap(err, "expand postings")) - } - - sort.Slice(ep, func(i, j int) bool { - return labels.Compare(m.series[ep[i]].l, m.series[ep[j]].l) < 0 - }) - return index.NewListPostings(ep) -} - -func (m mockIndex) Series(ref uint64, lset *labels.Labels, chks *[]chunks.Meta) error { - s, ok := m.series[ref] - if !ok { - return ErrNotFound - } - *lset = append((*lset)[:0], s.l...) - *chks = append((*chks)[:0], s.chunks...) - - return nil -} - -func (m mockIndex) LabelIndices() ([][]string, error) { - res := make([][]string, 0, len(m.labelIndex)) - for k := range m.labelIndex { - res = append(res, []string{k}) - } - return res, nil -} - -func (m mockIndex) LabelNames() ([]string, error) { - labelNames := make([]string, 0, len(m.labelIndex)) - for name := range m.labelIndex { - labelNames = append(labelNames, name) - } - sort.Strings(labelNames) - return labelNames, nil -} - -type mockSeries struct { - labels func() labels.Labels - iterator func() SeriesIterator -} - -func newSeries(l map[string]string, s []tsdbutil.Sample) Series { - return &mockSeries{ - labels: func() labels.Labels { return labels.FromMap(l) }, - iterator: func() SeriesIterator { return newListSeriesIterator(s) }, - } -} -func (m *mockSeries) Labels() labels.Labels { return m.labels() } -func (m *mockSeries) Iterator() SeriesIterator { return m.iterator() } - -type listSeriesIterator struct { - list []tsdbutil.Sample - idx int -} - -func newListSeriesIterator(list []tsdbutil.Sample) *listSeriesIterator { - return &listSeriesIterator{list: list, idx: -1} -} - -func (it *listSeriesIterator) At() (int64, float64) { - s := it.list[it.idx] - return s.T(), s.V() -} - -func (it *listSeriesIterator) Next() bool { - it.idx++ - return it.idx < len(it.list) -} - -func (it *listSeriesIterator) Seek(t int64) bool { - if it.idx == -1 { - it.idx = 0 - } - // Do binary search between current position and end. - it.idx = sort.Search(len(it.list)-it.idx, func(i int) bool { - s := it.list[i+it.idx] - return s.T() >= t - }) - - return it.idx < len(it.list) -} - -func (it *listSeriesIterator) Err() error { - return nil -} - -func BenchmarkQueryIterator(b *testing.B) { - cases := []struct { - numBlocks int - numSeries int - numSamplesPerSeriesPerBlock int - overlapPercentages []int // >=0, <=100, this is w.r.t. the previous block. - }{ - { - numBlocks: 20, - numSeries: 1000, - numSamplesPerSeriesPerBlock: 20000, - overlapPercentages: []int{0, 10, 30}, - }, - } - - for _, c := range cases { - for _, overlapPercentage := range c.overlapPercentages { - benchMsg := fmt.Sprintf("nBlocks=%d,nSeries=%d,numSamplesPerSeriesPerBlock=%d,overlap=%d%%", - c.numBlocks, c.numSeries, c.numSamplesPerSeriesPerBlock, overlapPercentage) - - b.Run(benchMsg, func(b *testing.B) { - dir, err := ioutil.TempDir("", "bench_query_iterator") - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, os.RemoveAll(dir)) - }() - - var ( - blocks []*Block - overlapDelta = int64(overlapPercentage * c.numSamplesPerSeriesPerBlock / 100) - prefilledLabels []map[string]string - generatedSeries []Series - ) - for i := int64(0); i < int64(c.numBlocks); i++ { - offset := i * overlapDelta - mint := i*int64(c.numSamplesPerSeriesPerBlock) - offset - maxt := mint + int64(c.numSamplesPerSeriesPerBlock) - 1 - if len(prefilledLabels) == 0 { - generatedSeries = genSeries(c.numSeries, 10, mint, maxt) - for _, s := range generatedSeries { - prefilledLabels = append(prefilledLabels, s.Labels().Map()) - } - } else { - generatedSeries = populateSeries(prefilledLabels, mint, maxt) - } - block, err := OpenBlock(nil, createBlock(b, dir, generatedSeries), nil) - testutil.Ok(b, err) - blocks = append(blocks, block) - defer block.Close() - } - - que := &querier{ - blocks: make([]Querier, 0, len(blocks)), - } - for _, blk := range blocks { - q, err := NewBlockQuerier(blk, math.MinInt64, math.MaxInt64) - testutil.Ok(b, err) - que.blocks = append(que.blocks, q) - } - - var sq Querier = que - if overlapPercentage > 0 { - sq = &verticalQuerier{ - querier: *que, - } - } - defer sq.Close() - - b.ResetTimer() - b.ReportAllocs() - - ss, err := sq.Select(labels.NewMustRegexpMatcher("__name__", ".*")) - testutil.Ok(b, err) - for ss.Next() { - it := ss.At().Iterator() - for it.Next() { - } - testutil.Ok(b, it.Err()) - } - testutil.Ok(b, ss.Err()) - testutil.Ok(b, err) - }) - } - } -} - -func BenchmarkQuerySeek(b *testing.B) { - cases := []struct { - numBlocks int - numSeries int - numSamplesPerSeriesPerBlock int - overlapPercentages []int // >=0, <=100, this is w.r.t. the previous block. - }{ - { - numBlocks: 20, - numSeries: 100, - numSamplesPerSeriesPerBlock: 2000, - overlapPercentages: []int{0, 10, 30, 50}, - }, - } - - for _, c := range cases { - for _, overlapPercentage := range c.overlapPercentages { - benchMsg := fmt.Sprintf("nBlocks=%d,nSeries=%d,numSamplesPerSeriesPerBlock=%d,overlap=%d%%", - c.numBlocks, c.numSeries, c.numSamplesPerSeriesPerBlock, overlapPercentage) - - b.Run(benchMsg, func(b *testing.B) { - dir, err := ioutil.TempDir("", "bench_query_iterator") - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, os.RemoveAll(dir)) - }() - - var ( - blocks []*Block - overlapDelta = int64(overlapPercentage * c.numSamplesPerSeriesPerBlock / 100) - prefilledLabels []map[string]string - generatedSeries []Series - ) - for i := int64(0); i < int64(c.numBlocks); i++ { - offset := i * overlapDelta - mint := i*int64(c.numSamplesPerSeriesPerBlock) - offset - maxt := mint + int64(c.numSamplesPerSeriesPerBlock) - 1 - if len(prefilledLabels) == 0 { - generatedSeries = genSeries(c.numSeries, 10, mint, maxt) - for _, s := range generatedSeries { - prefilledLabels = append(prefilledLabels, s.Labels().Map()) - } - } else { - generatedSeries = populateSeries(prefilledLabels, mint, maxt) - } - block, err := OpenBlock(nil, createBlock(b, dir, generatedSeries), nil) - testutil.Ok(b, err) - blocks = append(blocks, block) - defer block.Close() - } - - que := &querier{ - blocks: make([]Querier, 0, len(blocks)), - } - for _, blk := range blocks { - q, err := NewBlockQuerier(blk, math.MinInt64, math.MaxInt64) - testutil.Ok(b, err) - que.blocks = append(que.blocks, q) - } - - var sq Querier = que - if overlapPercentage > 0 { - sq = &verticalQuerier{ - querier: *que, - } - } - defer sq.Close() - - mint := blocks[0].meta.MinTime - maxt := blocks[len(blocks)-1].meta.MaxTime - - b.ResetTimer() - b.ReportAllocs() - - ss, err := sq.Select(labels.NewMustRegexpMatcher("__name__", ".*")) - for ss.Next() { - it := ss.At().Iterator() - for t := mint; t <= maxt; t++ { - it.Seek(t) - } - testutil.Ok(b, it.Err()) - } - testutil.Ok(b, ss.Err()) - testutil.Ok(b, err) - }) - } - } -} - -func TestPostingsForMatchers(t *testing.T) { - h, err := NewHead(nil, nil, nil, 1000) - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, h.Close()) - }() - - app := h.Appender() - app.Add(labels.FromStrings("n", "1"), 0, 0) - app.Add(labels.FromStrings("n", "1", "i", "a"), 0, 0) - app.Add(labels.FromStrings("n", "1", "i", "b"), 0, 0) - app.Add(labels.FromStrings("n", "2"), 0, 0) - testutil.Ok(t, app.Commit()) - - cases := []struct { - matchers []labels.Matcher - exp []labels.Labels - }{ - // Simple equals. - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewEqualMatcher("i", "a")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewEqualMatcher("i", "missing")}, - exp: []labels.Labels{}, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("missing", "")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - labels.FromStrings("n", "2"), - }, - }, - // Not equals. - { - matchers: []labels.Matcher{labels.Not(labels.NewEqualMatcher("n", "1"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "2"), - }, - }, - { - matchers: []labels.Matcher{labels.Not(labels.NewEqualMatcher("i", ""))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.Not(labels.NewEqualMatcher("missing", ""))}, - exp: []labels.Labels{}, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewEqualMatcher("i", "a"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewEqualMatcher("i", ""))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - // Regex. - { - matchers: []labels.Matcher{labels.NewMustRegexpMatcher("n", "^1$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewMustRegexpMatcher("i", "^a$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewMustRegexpMatcher("i", "^a?$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "a"), - }, - }, - { - matchers: []labels.Matcher{labels.NewMustRegexpMatcher("i", "^$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "2"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewMustRegexpMatcher("i", "^$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewMustRegexpMatcher("i", "^.*$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.NewMustRegexpMatcher("i", "^.+$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - // Not regex. - { - matchers: []labels.Matcher{labels.Not(labels.NewMustRegexpMatcher("n", "^1$"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "2"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewMustRegexpMatcher("i", "^a$"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewMustRegexpMatcher("i", "^a?$"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewMustRegexpMatcher("i", "^$"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - labels.FromStrings("n", "1", "i", "b"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewMustRegexpMatcher("i", "^.*$"))}, - exp: []labels.Labels{}, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewMustRegexpMatcher("i", "^.+$"))}, - exp: []labels.Labels{ - labels.FromStrings("n", "1"), - }, - }, - // Combinations. - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewEqualMatcher("i", "")), labels.NewEqualMatcher("i", "a")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - }, - }, - { - matchers: []labels.Matcher{labels.NewEqualMatcher("n", "1"), labels.Not(labels.NewEqualMatcher("i", "b")), labels.NewMustRegexpMatcher("i", "^(b|a).*$")}, - exp: []labels.Labels{ - labels.FromStrings("n", "1", "i", "a"), - }, - }, - } - - ir, err := h.Index() - testutil.Ok(t, err) - - for _, c := range cases { - exp := map[string]struct{}{} - for _, l := range c.exp { - exp[l.String()] = struct{}{} - } - p, err := PostingsForMatchers(ir, c.matchers...) - testutil.Ok(t, err) - - for p.Next() { - lbls := labels.Labels{} - ir.Series(p.At(), &lbls, &[]chunks.Meta{}) - if _, ok := exp[lbls.String()]; !ok { - t.Errorf("Evaluating %v, unexpected result %s", c.matchers, lbls.String()) - } else { - delete(exp, lbls.String()) - } - } - testutil.Ok(t, p.Err()) - if len(exp) != 0 { - t.Errorf("Evaluating %v, missing results %+v", c.matchers, exp) - } - } - -} diff --git a/vendor/github.com/prometheus/tsdb/record.go b/vendor/github.com/prometheus/tsdb/record.go deleted file mode 100644 index 8d9c5751..00000000 --- a/vendor/github.com/prometheus/tsdb/record.go +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright 2018 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "math" - "sort" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/encoding" - "github.com/prometheus/tsdb/labels" -) - -// RecordType represents the data type of a record. -type RecordType uint8 - -const ( - // RecordInvalid is returned for unrecognised WAL record types. - RecordInvalid RecordType = 255 - // RecordSeries is used to match WAL records of type Series. - RecordSeries RecordType = 1 - // RecordSamples is used to match WAL records of type Samples. - RecordSamples RecordType = 2 - // RecordTombstones is used to match WAL records of type Tombstones. - RecordTombstones RecordType = 3 -) - -// RecordDecoder decodes series, sample, and tombstone records. -// The zero value is ready to use. -type RecordDecoder struct { -} - -// Type returns the type of the record. -// Return RecordInvalid if no valid record type is found. -func (d *RecordDecoder) Type(rec []byte) RecordType { - if len(rec) < 1 { - return RecordInvalid - } - switch t := RecordType(rec[0]); t { - case RecordSeries, RecordSamples, RecordTombstones: - return t - } - return RecordInvalid -} - -// Series appends series in rec to the given slice. -func (d *RecordDecoder) Series(rec []byte, series []RefSeries) ([]RefSeries, error) { - dec := encoding.Decbuf{B: rec} - - if RecordType(dec.Byte()) != RecordSeries { - return nil, errors.New("invalid record type") - } - for len(dec.B) > 0 && dec.Err() == nil { - ref := dec.Be64() - - lset := make(labels.Labels, dec.Uvarint()) - - for i := range lset { - lset[i].Name = dec.UvarintStr() - lset[i].Value = dec.UvarintStr() - } - sort.Sort(lset) - - series = append(series, RefSeries{ - Ref: ref, - Labels: lset, - }) - } - if dec.Err() != nil { - return nil, dec.Err() - } - if len(dec.B) > 0 { - return nil, errors.Errorf("unexpected %d bytes left in entry", len(dec.B)) - } - return series, nil -} - -// Samples appends samples in rec to the given slice. -func (d *RecordDecoder) Samples(rec []byte, samples []RefSample) ([]RefSample, error) { - dec := encoding.Decbuf{B: rec} - - if RecordType(dec.Byte()) != RecordSamples { - return nil, errors.New("invalid record type") - } - if dec.Len() == 0 { - return samples, nil - } - var ( - baseRef = dec.Be64() - baseTime = dec.Be64int64() - ) - for len(dec.B) > 0 && dec.Err() == nil { - dref := dec.Varint64() - dtime := dec.Varint64() - val := dec.Be64() - - samples = append(samples, RefSample{ - Ref: uint64(int64(baseRef) + dref), - T: baseTime + dtime, - V: math.Float64frombits(val), - }) - } - - if dec.Err() != nil { - return nil, errors.Wrapf(dec.Err(), "decode error after %d samples", len(samples)) - } - if len(dec.B) > 0 { - return nil, errors.Errorf("unexpected %d bytes left in entry", len(dec.B)) - } - return samples, nil -} - -// Tombstones appends tombstones in rec to the given slice. -func (d *RecordDecoder) Tombstones(rec []byte, tstones []Stone) ([]Stone, error) { - dec := encoding.Decbuf{B: rec} - - if RecordType(dec.Byte()) != RecordTombstones { - return nil, errors.New("invalid record type") - } - for dec.Len() > 0 && dec.Err() == nil { - tstones = append(tstones, Stone{ - ref: dec.Be64(), - intervals: Intervals{ - {Mint: dec.Varint64(), Maxt: dec.Varint64()}, - }, - }) - } - if dec.Err() != nil { - return nil, dec.Err() - } - if len(dec.B) > 0 { - return nil, errors.Errorf("unexpected %d bytes left in entry", len(dec.B)) - } - return tstones, nil -} - -// RecordEncoder encodes series, sample, and tombstones records. -// The zero value is ready to use. -type RecordEncoder struct { -} - -// Series appends the encoded series to b and returns the resulting slice. -func (e *RecordEncoder) Series(series []RefSeries, b []byte) []byte { - buf := encoding.Encbuf{B: b} - buf.PutByte(byte(RecordSeries)) - - for _, s := range series { - buf.PutBE64(s.Ref) - buf.PutUvarint(len(s.Labels)) - - for _, l := range s.Labels { - buf.PutUvarintStr(l.Name) - buf.PutUvarintStr(l.Value) - } - } - return buf.Get() -} - -// Samples appends the encoded samples to b and returns the resulting slice. -func (e *RecordEncoder) Samples(samples []RefSample, b []byte) []byte { - buf := encoding.Encbuf{B: b} - buf.PutByte(byte(RecordSamples)) - - if len(samples) == 0 { - return buf.Get() - } - - // Store base timestamp and base reference number of first sample. - // All samples encode their timestamp and ref as delta to those. - first := samples[0] - - buf.PutBE64(first.Ref) - buf.PutBE64int64(first.T) - - for _, s := range samples { - buf.PutVarint64(int64(s.Ref) - int64(first.Ref)) - buf.PutVarint64(s.T - first.T) - buf.PutBE64(math.Float64bits(s.V)) - } - return buf.Get() -} - -// Tombstones appends the encoded tombstones to b and returns the resulting slice. -func (e *RecordEncoder) Tombstones(tstones []Stone, b []byte) []byte { - buf := encoding.Encbuf{B: b} - buf.PutByte(byte(RecordTombstones)) - - for _, s := range tstones { - for _, iv := range s.intervals { - buf.PutBE64(s.ref) - buf.PutVarint64(iv.Mint) - buf.PutVarint64(iv.Maxt) - } - } - return buf.Get() -} diff --git a/vendor/github.com/prometheus/tsdb/record_test.go b/vendor/github.com/prometheus/tsdb/record_test.go deleted file mode 100644 index 8316ccf3..00000000 --- a/vendor/github.com/prometheus/tsdb/record_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2018 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "testing" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/encoding" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" -) - -func TestRecord_EncodeDecode(t *testing.T) { - var enc RecordEncoder - var dec RecordDecoder - - series := []RefSeries{ - { - Ref: 100, - Labels: labels.FromStrings("abc", "def", "123", "456"), - }, { - Ref: 1, - Labels: labels.FromStrings("abc", "def2", "1234", "4567"), - }, { - Ref: 435245, - Labels: labels.FromStrings("xyz", "def", "foo", "bar"), - }, - } - decSeries, err := dec.Series(enc.Series(series, nil), nil) - testutil.Ok(t, err) - testutil.Equals(t, series, decSeries) - - samples := []RefSample{ - {Ref: 0, T: 12423423, V: 1.2345}, - {Ref: 123, T: -1231, V: -123}, - {Ref: 2, T: 0, V: 99999}, - } - decSamples, err := dec.Samples(enc.Samples(samples, nil), nil) - testutil.Ok(t, err) - testutil.Equals(t, samples, decSamples) - - // Intervals get split up into single entries. So we don't get back exactly - // what we put in. - tstones := []Stone{ - {ref: 123, intervals: Intervals{ - {Mint: -1000, Maxt: 1231231}, - {Mint: 5000, Maxt: 0}, - }}, - {ref: 13, intervals: Intervals{ - {Mint: -1000, Maxt: -11}, - {Mint: 5000, Maxt: 1000}, - }}, - } - decTstones, err := dec.Tombstones(enc.Tombstones(tstones, nil), nil) - testutil.Ok(t, err) - testutil.Equals(t, []Stone{ - {ref: 123, intervals: Intervals{{Mint: -1000, Maxt: 1231231}}}, - {ref: 123, intervals: Intervals{{Mint: 5000, Maxt: 0}}}, - {ref: 13, intervals: Intervals{{Mint: -1000, Maxt: -11}}}, - {ref: 13, intervals: Intervals{{Mint: 5000, Maxt: 1000}}}, - }, decTstones) -} - -// TestRecord_Corruputed ensures that corrupted records return the correct error. -// Bugfix check for pull/521 and pull/523. -func TestRecord_Corruputed(t *testing.T) { - var enc RecordEncoder - var dec RecordDecoder - - t.Run("Test corrupted series record", func(t *testing.T) { - series := []RefSeries{ - { - Ref: 100, - Labels: labels.FromStrings("abc", "def", "123", "456"), - }, - } - - corrupted := enc.Series(series, nil)[:8] - _, err := dec.Series(corrupted, nil) - testutil.Equals(t, err, encoding.ErrInvalidSize) - }) - - t.Run("Test corrupted sample record", func(t *testing.T) { - samples := []RefSample{ - {Ref: 0, T: 12423423, V: 1.2345}, - } - - corrupted := enc.Samples(samples, nil)[:8] - _, err := dec.Samples(corrupted, nil) - testutil.Equals(t, errors.Cause(err), encoding.ErrInvalidSize) - }) - - t.Run("Test corrupted tombstone record", func(t *testing.T) { - tstones := []Stone{ - {ref: 123, intervals: Intervals{ - {Mint: -1000, Maxt: 1231231}, - {Mint: 5000, Maxt: 0}, - }}, - } - - corrupted := enc.Tombstones(tstones, nil)[:8] - _, err := dec.Tombstones(corrupted, nil) - testutil.Equals(t, err, encoding.ErrInvalidSize) - }) -} diff --git a/vendor/github.com/prometheus/tsdb/repair.go b/vendor/github.com/prometheus/tsdb/repair.go deleted file mode 100644 index a7fa084f..00000000 --- a/vendor/github.com/prometheus/tsdb/repair.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "encoding/json" - "io" - "io/ioutil" - "os" - "path/filepath" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/pkg/errors" -) - -// repairBadIndexVersion repairs an issue in index and meta.json persistence introduced in -// commit 129773b41a565fde5156301e37f9a87158030443. -func repairBadIndexVersion(logger log.Logger, dir string) error { - // All blocks written by Prometheus 2.1 with a meta.json version of 2 are affected. - // We must actually set the index file version to 2 and revert the meta.json version back to 1. - dirs, err := blockDirs(dir) - if err != nil { - return errors.Wrapf(err, "list block dirs in %q", dir) - } - - wrapErr := func(err error, d string) error { - return errors.Wrapf(err, "block dir: %q", d) - } - for _, d := range dirs { - meta, err := readBogusMetaFile(d) - if err != nil { - return wrapErr(err, d) - } - if meta.Version == 1 { - level.Info(logger).Log( - "msg", "found healthy block", - "mint", meta.MinTime, - "maxt", meta.MaxTime, - "ulid", meta.ULID, - ) - continue - } - level.Info(logger).Log( - "msg", "fixing broken block", - "mint", meta.MinTime, - "maxt", meta.MaxTime, - "ulid", meta.ULID, - ) - - repl, err := os.Create(filepath.Join(d, "index.repaired")) - if err != nil { - return wrapErr(err, d) - } - broken, err := os.Open(filepath.Join(d, indexFilename)) - if err != nil { - return wrapErr(err, d) - } - if _, err := io.Copy(repl, broken); err != nil { - return wrapErr(err, d) - } - // Set the 5th byte to 2 to indicate the correct file format version. - if _, err := repl.WriteAt([]byte{2}, 4); err != nil { - return wrapErr(err, d) - } - if err := repl.Sync(); err != nil { - return wrapErr(err, d) - } - if err := repl.Close(); err != nil { - return wrapErr(err, d) - } - if err := broken.Close(); err != nil { - return wrapErr(err, d) - } - if err := renameFile(repl.Name(), broken.Name()); err != nil { - return wrapErr(err, d) - } - // Reset version of meta.json to 1. - meta.Version = 1 - if err := writeMetaFile(d, meta); err != nil { - return wrapErr(err, d) - } - } - return nil -} - -func readBogusMetaFile(dir string) (*BlockMeta, error) { - b, err := ioutil.ReadFile(filepath.Join(dir, metaFilename)) - if err != nil { - return nil, err - } - var m BlockMeta - - if err := json.Unmarshal(b, &m); err != nil { - return nil, err - } - if m.Version != 1 && m.Version != 2 { - return nil, errors.Errorf("unexpected meta file version %d", m.Version) - } - return &m, nil -} diff --git a/vendor/github.com/prometheus/tsdb/repair_test.go b/vendor/github.com/prometheus/tsdb/repair_test.go deleted file mode 100644 index 19b663fe..00000000 --- a/vendor/github.com/prometheus/tsdb/repair_test.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "os" - "path/filepath" - "testing" - - "github.com/prometheus/tsdb/chunks" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/index" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" -) - -func TestRepairBadIndexVersion(t *testing.T) { - // The broken index used in this test was written by the following script - // at a broken revision. - // - // func main() { - // w, err := index.NewWriter(indexFilename) - // if err != nil { - // panic(err) - // } - // err = w.AddSymbols(map[string]struct{}{ - // "a": struct{}{}, - // "b": struct{}{}, - // "1": struct{}{}, - // "2": struct{}{}, - // }) - // if err != nil { - // panic(err) - // } - // err = w.AddSeries(1, labels.FromStrings("a", "1", "b", "1")) - // if err != nil { - // panic(err) - // } - // err = w.AddSeries(2, labels.FromStrings("a", "2", "b", "1")) - // if err != nil { - // panic(err) - // } - // err = w.WritePostings("b", "1", index.NewListPostings([]uint64{1, 2})) - // if err != nil { - // panic(err) - // } - // if err := w.Close(); err != nil { - // panic(err) - // } - // } - dbDir := filepath.Join("testdata", "repair_index_version", "01BZJ9WJQPWHGNC2W4J9TA62KC") - tmpDir := filepath.Join("testdata", "repair_index_version", "copy") - tmpDbDir := filepath.Join(tmpDir, "3MCNSQ8S31EHGJYWK5E1GPJWJZ") - - // Check the current db. - // In its current state, lookups should fail with the fixed code. - _, err := readMetaFile(dbDir) - testutil.NotOk(t, err) - - // Touch chunks dir in block. - os.MkdirAll(filepath.Join(dbDir, "chunks"), 0777) - defer func() { - testutil.Ok(t, os.RemoveAll(filepath.Join(dbDir, "chunks"))) - }() - - r, err := index.NewFileReader(filepath.Join(dbDir, indexFilename)) - testutil.Ok(t, err) - p, err := r.Postings("b", "1") - testutil.Ok(t, err) - for p.Next() { - t.Logf("next ID %d", p.At()) - - var lset labels.Labels - testutil.NotOk(t, r.Series(p.At(), &lset, nil)) - } - testutil.Ok(t, p.Err()) - testutil.Ok(t, r.Close()) - - // Create a copy DB to run test against. - if err = fileutil.CopyDirs(dbDir, tmpDbDir); err != nil { - t.Fatal(err) - } - defer func() { - testutil.Ok(t, os.RemoveAll(tmpDir)) - }() - // On DB opening all blocks in the base dir should be repaired. - db, err := Open(tmpDir, nil, nil, nil) - testutil.Ok(t, err) - db.Close() - - r, err = index.NewFileReader(filepath.Join(tmpDbDir, indexFilename)) - testutil.Ok(t, err) - defer r.Close() - p, err = r.Postings("b", "1") - testutil.Ok(t, err) - res := []labels.Labels{} - - for p.Next() { - t.Logf("next ID %d", p.At()) - - var lset labels.Labels - var chks []chunks.Meta - testutil.Ok(t, r.Series(p.At(), &lset, &chks)) - res = append(res, lset) - } - - testutil.Ok(t, p.Err()) - testutil.Equals(t, []labels.Labels{ - {{"a", "1"}, {"b", "1"}}, - {{"a", "2"}, {"b", "1"}}, - }, res) - - meta, err := readMetaFile(tmpDbDir) - testutil.Ok(t, err) - testutil.Assert(t, meta.Version == 1, "unexpected meta version %d", meta.Version) -} diff --git a/vendor/github.com/prometheus/tsdb/test/conv_test.go b/vendor/github.com/prometheus/tsdb/test/conv_test.go deleted file mode 100644 index 0d34b998..00000000 --- a/vendor/github.com/prometheus/tsdb/test/conv_test.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package test - -import "testing" - -func BenchmarkMapConversion(b *testing.B) { - type key string - type val string - - m := map[key]val{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - } - - var sm map[string]string - - for i := 0; i < b.N; i++ { - sm = make(map[string]string, len(m)) - for k, v := range m { - sm[string(k)] = string(v) - } - } -} - -func BenchmarkListIter(b *testing.B) { - var list []uint32 - for i := 0; i < 1e4; i++ { - list = append(list, uint32(i)) - } - - b.ResetTimer() - - total := uint32(0) - - for j := 0; j < b.N; j++ { - sum := uint32(0) - for _, k := range list { - sum += k - } - total += sum - } -} diff --git a/vendor/github.com/prometheus/tsdb/test/hash_test.go b/vendor/github.com/prometheus/tsdb/test/hash_test.go deleted file mode 100644 index 117616fd..00000000 --- a/vendor/github.com/prometheus/tsdb/test/hash_test.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package test - -import ( - "crypto/rand" - "fmt" - "hash/crc32" - "testing" - - "github.com/cespare/xxhash" - sip13 "github.com/dgryski/go-sip13" -) - -type pair struct { - name, value string -} - -var testInput = []pair{ - {"job", "node"}, - {"instance", "123.123.1.211:9090"}, - {"path", "/api/v1/namespaces//deployments/"}, - {"method", "GET"}, - {"namespace", "system"}, - {"status", "500"}, -} - -func BenchmarkHash(b *testing.B) { - input := []byte{} - for _, v := range testInput { - input = append(input, v.name...) - input = append(input, '\xff') - input = append(input, v.value...) - input = append(input, '\xff') - } - - var total uint64 - - var k0 uint64 = 0x0706050403020100 - var k1 uint64 = 0x0f0e0d0c0b0a0908 - - for name, f := range map[string]func(b []byte) uint64{ - "xxhash": xxhash.Sum64, - "fnv64": fnv64a, - "sip13": func(b []byte) uint64 { return sip13.Sum64(k0, k1, b) }, - } { - b.Run(name, func(b *testing.B) { - b.SetBytes(int64(len(input))) - total = 0 - for i := 0; i < b.N; i++ { - total += f(input) - } - }) - } -} - -// hashAdd adds a string to a fnv64a hash value, returning the updated hash. -func fnv64a(b []byte) uint64 { - const ( - offset64 = 14695981039346656037 - prime64 = 1099511628211 - ) - - h := uint64(offset64) - for x := range b { - h ^= uint64(x) - h *= prime64 - } - return h -} - -func BenchmarkCRC32_diff(b *testing.B) { - - data := [][]byte{} - - for i := 0; i < 1000; i++ { - b := make([]byte, 512) - rand.Read(b) - data = append(data, b) - } - - ctab := crc32.MakeTable(crc32.Castagnoli) - total := uint32(0) - - b.Run("direct", func(b *testing.B) { - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - total += crc32.Checksum(data[i%1000], ctab) - } - }) - b.Run("hash-reuse", func(b *testing.B) { - b.ReportAllocs() - h := crc32.New(ctab) - - for i := 0; i < b.N; i++ { - h.Reset() - h.Write(data[i%1000]) - total += h.Sum32() - } - }) - b.Run("hash-new", func(b *testing.B) { - b.ReportAllocs() - - for i := 0; i < b.N; i++ { - h := crc32.New(ctab) - h.Write(data[i%1000]) - total += h.Sum32() - } - }) - - fmt.Println(total) -} diff --git a/vendor/github.com/prometheus/tsdb/test/labels_test.go b/vendor/github.com/prometheus/tsdb/test/labels_test.go deleted file mode 100644 index 2a454b86..00000000 --- a/vendor/github.com/prometheus/tsdb/test/labels_test.go +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package test - -import ( - "bytes" - "crypto/rand" - "testing" - - "github.com/prometheus/tsdb/labels" -) - -func BenchmarkMapClone(b *testing.B) { - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - "prometheus": "prometheus-core-1", - "datacenter": "eu-west-1", - "pod_name": "abcdef-99999-defee", - } - - for i := 0; i < b.N; i++ { - res := make(map[string]string, len(m)) - for k, v := range m { - res[k] = v - } - m = res - } -} - -func BenchmarkLabelsClone(b *testing.B) { - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - "prometheus": "prometheus-core-1", - "datacenter": "eu-west-1", - "pod_name": "abcdef-99999-defee", - } - l := labels.FromMap(m) - - for i := 0; i < b.N; i++ { - res := make(labels.Labels, len(l)) - copy(res, l) - l = res - } -} - -func BenchmarkLabelMapAccess(b *testing.B) { - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - "prometheus": "prometheus-core-1", - "datacenter": "eu-west-1", - "pod_name": "abcdef-99999-defee", - } - - var v string - - for k := range m { - b.Run(k, func(b *testing.B) { - for i := 0; i < b.N; i++ { - v = m[k] - } - }) - } - - _ = v -} - -func BenchmarkLabelSetAccess(b *testing.B) { - m := map[string]string{ - "job": "node", - "instance": "123.123.1.211:9090", - "path": "/api/v1/namespaces//deployments/", - "method": "GET", - "namespace": "system", - "status": "500", - "prometheus": "prometheus-core-1", - "datacenter": "eu-west-1", - "pod_name": "abcdef-99999-defee", - } - ls := labels.FromMap(m) - - var v string - - for _, l := range ls { - b.Run(l.Name, func(b *testing.B) { - for i := 0; i < b.N; i++ { - v = ls.Get(l.Name) - } - }) - } - - _ = v -} - -func BenchmarkStringBytesEquals(b *testing.B) { - randBytes := func(n int) ([]byte, []byte) { - buf1 := make([]byte, n) - if _, err := rand.Read(buf1); err != nil { - b.Fatal(err) - } - buf2 := make([]byte, n) - copy(buf1, buf2) - - return buf1, buf2 - } - - cases := []struct { - name string - f func() ([]byte, []byte) - }{ - { - name: "equal", - f: func() ([]byte, []byte) { - return randBytes(60) - }, - }, - { - name: "1-flip-end", - f: func() ([]byte, []byte) { - b1, b2 := randBytes(60) - b2[59] ^= b2[59] - return b1, b2 - }, - }, - { - name: "1-flip-middle", - f: func() ([]byte, []byte) { - b1, b2 := randBytes(60) - b2[29] ^= b2[29] - return b1, b2 - }, - }, - { - name: "1-flip-start", - f: func() ([]byte, []byte) { - b1, b2 := randBytes(60) - b2[0] ^= b2[0] - return b1, b2 - }, - }, - { - name: "different-length", - f: func() ([]byte, []byte) { - b1, b2 := randBytes(60) - return b1, b2[:59] - }, - }, - } - - for _, c := range cases { - b.Run(c.name+"-strings", func(b *testing.B) { - ab, bb := c.f() - as, bs := string(ab), string(bb) - b.SetBytes(int64(len(as))) - - var r bool - - for i := 0; i < b.N; i++ { - r = as == bs - } - _ = r - }) - - b.Run(c.name+"-bytes", func(b *testing.B) { - ab, bb := c.f() - b.SetBytes(int64(len(ab))) - - var r bool - - for i := 0; i < b.N; i++ { - r = bytes.Equal(ab, bb) - } - _ = r - }) - - b.Run(c.name+"-bytes-length-check", func(b *testing.B) { - ab, bb := c.f() - b.SetBytes(int64(len(ab))) - - var r bool - - for i := 0; i < b.N; i++ { - if len(ab) != len(bb) { - continue - } - r = bytes.Equal(ab, bb) - } - _ = r - }) - } -} diff --git a/vendor/github.com/prometheus/tsdb/testdata/20kseries.json b/vendor/github.com/prometheus/tsdb/testdata/20kseries.json deleted file mode 100644 index 27b42920..00000000 --- a/vendor/github.com/prometheus/tsdb/testdata/20kseries.json +++ /dev/null @@ -1,20000 +0,0 @@ -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"ancb","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"idscjgkrnflzvfrypdwiwizlwkyujqmktnysesajmfto","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"vjgt","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"btqae","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kawrhbnfdijqkuiuamjpigfapwacnkhogapkmavlmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yvip":"eaiejiqyzeivwymhdriaworxfmxsqkjqmqvavmkeozduz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ryfmwgwxthxnkbhdvnygynaeyudyavwogedjghyjqjvt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hxqdalevxhi","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pisihektxpcpqrrrvbfxbkqdznehodhknraidjyloqbccar","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"zkflgsvbh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acgcofdwzfsetgzogrdyqdyhhhbszlpszkspuhmct","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xcdbnsxyguad","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kfbcughxasbamujhmatzqknsxoqckopqjslggfbkuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijjillygbmpuduwbgnyafzgyrrkuonpyqcmdkuvenyego","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"yaehlvrexubpc","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"twg","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"tclcwonu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"actamqqmbib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"cj","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"xxxq","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"qylan","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"tikwdqgniwv","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjpqhqylehyroqceubrtlysitbpyqvofrxoidxckgure","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzqarawzkwpcdcazflhmvpfzncuateeafhsdcag","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cprlyuttdpjzxvxxkuirncosuosgwjgufcqhjuefk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttsllazlkzliaqcdmmrgnnoaytcwbmtldaopgpjhrunmwxv","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vqbdgxlrqgmgjgqhnzsukidxkffugmdvunfmebq","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kzeegpbftejfsmjummkpexymnqmqxqayghheb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tizngulpocgwwsycgs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qrf","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yxqlzjokgicjrqaqfjvftezujvioxnmovopihqw","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mbryvptobyp","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"cj","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"hny","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"cfdmrn","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ztrhnzttctoq","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"ijlwmvhizidwsbwbtmajzlukfmhv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mexrgsuqoxkxhebursvsoguwxthnilszatjtlwx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"itpphvauiaewop","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dqjkeathkoewe","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"lhwxbtoksusfbyxpkcbgypw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","tpccgu":"kcfwc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"wdrirqcnpdolfbprzerbmsjyykvhdgjlepptnkvsyjjljrrshomobyxgybpaqepylguvictqnfdnjcxyzlxmkxyebcviepgyolncbgdtjjcbjvfnls","ctzlovk":"fsebhulfpqgiejx","ieh":"jxgfpjkagbygopencdochqqbxbvplfjvlxxu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"flkmknsevyfeklbycaboierijzaffimqnakmqhjivsdbg","pblh":"dsdiro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flkmknsevyfeklbycaboierijzaffimqnakmqhjivsdbg","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hyxma","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vcvbrlapxvawqbpvckvkolkrzkp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hzpyjagtgiujphihjr","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iaawltlfcuruvisebojergtilolcwtlkgabryklzylz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"rkhsq","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qzqlevvjemljxoyqxudzkzwpyukkzlolvtuxvkw","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wxdeqozjrsyfuqyomskvgukbhpfifmcmsj","albxj":"kb","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rkivjhnwdtdljkcaoaokeqzawuvydanhdeypmhzapslvy","blppopdupk":"vtxatgmznhsxlgqslyjlyqpqwzmjlzwwfxysaylxqybhuuusoqlucselbqvfnldpjdnquhwesuejukgsbxkilmeiybfxydelbghplkqahorgjwlsi","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"kgrijigpoarmqyfzbaxasilmkkhhiwctkbrafnuabnrj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgrijigpoarmqyfzbaxasilmkkhhiwctkbrafnuabnrj","sv":"lznfz","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"cvereycgdavytdstx","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bprnosqvkrvmokhoxibejo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"cfclwgghxexdxajlvjdjunpposf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ufaovbcwsmuo","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"kkekk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xpelnlhltbbtzbvpvoxuqswqqtxzgdzdvnjlxuwc","blppopdupk":"ljwvbqalafalpjoardinvpttajraiiqlranfavcsnjjjkavcrkwvtqnevdzbrjxkefpmairzuxwkfjxfjyqqzlhvmkvsinsriobnawqujtdvmjpocd","ctzlovk":"gintrayiilbyya","ieh":"rxnnxjihclrhuzepbsnnbcqlopdwevz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","pblh":"zvnkawa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"ancb","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"shppnwmexpahaqiixipaourc","blppopdupk":"cfvpizwdfgcfzpsqtppnwxprqxuyqbzopxrjuoszvwphphdxyktdvhtgnvzmfwvfabdnkvkesfhkrrdmdskdxm","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lqklqphxlcrwkkifwyzrequgzpehpfvuxvkhnop","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"umdbr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkwccfmgrcatmouvhdhczhwlgqvlhphstbqghtyhtulo","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"vkw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"yrkq","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"twg","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ezpnannweexylxmrt","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"eunniqgnfmhpgfmxajsibgfunvgti","blppopdupk":"iivtyjzraoswdcuvzlvnhwuvsqefzhwfpvqxpzftlreirodiqudsynsrtzveepzyzdodtsvnygmwsbyjxqofurjvvegvngolayvxtnhsrhtfqtkgm","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afjyovrcitpaphbdhxxvbxuyueujalkypbgxtiaulvsq","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"eunniqgnfmhpgfmxajsibgfunvgti","blppopdupk":"fsvicnsnmkkrooiatgyggixsgojxqkfmftcmsdfedrluracwualzvyivztveizutddvhpeitmxosunpnfpenwtplhvt","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uiscsvnolfutehzexaiwuuheovkotadrmramzw","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xefxvfajmkiaaqvhblmjnzdhjmuegttrtadpmtf","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttikjxsawenjvhplrjsobsfkkzgkjsmfdlbjjdc","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lhevcrpubwsebnpqpjcajvgsuwnnrimbcbecmtaadjanw","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"sksy","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lumbnmyoncsjjffdlmcgqwejdkirpiyjgyrionl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ykwpfusdscuxhdctlpdxgixrobjercjbrevqzarer","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epnlqqipamfzivacsrpgtifnvtuhjrngpdkldygsyteir","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"opbbklsdpshuw","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"ylownceccwbckiplxiqxvycjhaeneoepzfs","blppopdupk":"wamvlczjerlbtelxjitprxdjvgrgvfcvvxhoswiurmnjjgxpfzylnkwcsvuycxnflmmcreiqufqmiecxhfuwbcvhtjjwboxvqbjkmzzxmwpvizolgsvr","ctzlovk":"tmgsegsapibkysg","eftl":"bpbrmufg","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"itpphvauiaewop","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"botuxvbngrlan","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kilyog","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yxspfsqainehntu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"e","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gwgbtxddrncfhqbqf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ykwpfusdscuxhdctlpdxgixrobjercjbrevqzarer","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"qylan","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mernyvpfdwgrkitgbjrwmfdkzlwfrnrdeojxxndybcorwta","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yhaalgmyehgit","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sstpqftfacuszpevyqkqngnsuzrbiizidfoagxalyvvt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kihpsaxbjnxzzlmbpgeovaiikifscfuhwnbmugjqmiulmbp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kfngjkntil"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pctgotnbrcleeuiyqglihrtnq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"itpphvauiaewop","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kdwijjaymrs","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"csumwwknzycuceonbwlgdzizgvqumahvfviyqnfvmmlzocatuqkgehzotrpdfgwyvfooflpmpzwaostihpfdsoaae","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","updpov":"ttqxzs","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pfancqapsxfxwmvhn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","tscqwbp":"psvggald","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgnmyruznjcdrbpsoejeyssjjmtnwctxsfodnlzqi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"osfqevculnkzt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nvsgtiabrnyfuhpxarezjuadixjkvpbqmrgtcxh","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zjramuvpnphzbweijmaprjjbdmsynxhzdqnwhxojbozyzhuv","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fvwarkwspxvbeyvfryrwlrmunpupbaslliatrb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"xkr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yfevdrnaidujfcwlnhfzavcundivcumaquglgfxbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"wzraz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","blppopdupk":"rggzobqaoxremtsqjafmaziizbnfvzvmmjevhjgzibegqckdhkbjijkytbneaiabwwzczxknmdmrfnjgbhiughzzosinbrqyurcdgamjdvukymzvogxv","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"hvququ","dwmtjtmmto":"ycpxlezaegtkqqxylgbvbec","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"jornwfxopq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrhvujitramqjerqkxmbqgddbqusiyfhfnoymitcg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xbndrdmkcjjygbreweboxuzxfkeabpkezsrldennq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyugayjyqmmsxwlflexttcgphjxyzjxhmwtwpfsphr","vgcdywyzlg":"ucafvj","xbdvu":"kovaenaudop","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"cfdmrn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"krqyyibpctbjqhfgerfvf"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tshltflinjivjtarzezwobwbznshtapc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzwwriypejhjpgqfhnfrfzxgpjkxhoqpwwejewgfgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"cfdmrn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"tclcwonu","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aiwohb","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lidknmgmekrviboxpoztqfjxcskmdrugsdshjhj","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qylan","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wzynwxbaoaz","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afbdmlmiynmntgfkgwrsfckglyjbaxipbpmedonfikkk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"af","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lgliaehfotkdwec","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"cfdmrn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qrf","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"twg","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"lfg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"dx","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"tclcwonu","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"cvereycgdavytdstx","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"yxqlzjokgicjrqaqfjvftezujvioxnmovopihqw","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"nrmpn","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"twg","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"tclcwonu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"airuxvdaeznr","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zufvjngmissof","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qylan","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"qrf","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ylownceccwbckiplxiqxvycjhaeneoepzfs","blppopdupk":"xblqpybnniurkowpkgrplfrokztxtszthserypwdiikhegtdlxxohzvtqvxrmtztcneyntctvgxvkjseiwvynqyagcmacbglvmyowmkokfuhko","ctzlovk":"oqybqpyfbn","eftl":"bpbrmufg","ieh":"hajbuwuetoyphphxoqkifpkhgilkd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wzynwxbaoaz","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vobspcbnhav","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"irqfjzialvd","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wwzqdtsnncjvehguhvghcsmbdhkikhhxwduroejerwjb","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aiwohb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"dxlq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"butittroeiwtvtlccztrijrzrnogsncicelcxpjbo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ypjhwzempe","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"zjlldozvbg","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oooumpkdiiebzxciwkvclowmjyhrbzwlhyqkqnjlotuum","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qmsgfvfopskfik"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ojhprebpeaklvc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kjexmjnoltpqjxcbklndmloaplx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpejrtzgggyjbsuylkfbljyvglmkbkgpomkvvcj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nlfiwtywbxns","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qylan","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xcdbnsxyguad","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"suxbrindewomworxiqslawiaoalfhoqjvrmokqn","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"idhp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","hri":"mv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"rvjqbyvkljtxlbwcislngplde","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dythhypnutktxklvfnmqdmiihyatxfvenkaazzb","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"ancb","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbqsgxxcnmebdygxdzpuccbryypymtkudopanngjf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"xpelnlhltbbtzbvpvoxuqswqqtxzgdzdvnjlxuwc","blppopdupk":"fgbfvfzoauoxxyhlogpjthcoyidatuiuhjhddjjanedbbkujkjiameaymzkqkxcvufuygjnkuaycvfhadihlqhicsylhnvnfuscehawtrhiyjpqc","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","pblh":"cbgiiya","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"cfdmrn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"unkchvsyuqgmvjgewbpfzbexspksbplgowu","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","cjunsrpdpcpbwraobn":"kb","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eyozhcpcins","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hjnknabbclguokhrnqfyjmy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"qxnzi","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lzfsnrwsadkmhnu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"cfdmrn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"nrmpn","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ezvkfamwmgjyjmuzs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"psmfsqrnubtvynndo","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"xt","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kaqnynfemhfrmrdjooylyvsgobqocveqmyzlgtcl","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"tclcwonu","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qylan","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ginaetgwtvslhcailtzkvylfzolyitbocpgpdjs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qrf","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"dlpx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hsuiokatqghqa","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"dx","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"pamowe"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"ancb","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"cfvhppnaszfc","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"kei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"vyntiwceyex","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"qylan","etunlkkq":"acpqihqmpfxdcl","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"iiywzsmzjaa","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"goqmakvzdty"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rupsjaqwlexrrkfvbgaxjnwwyfpqsuyikebzslquoqs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvququ","dwmtjtmmto":"ycpxlezaegtkqqxylgbvbec","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"jornwfxopq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"unrzqkvwpjeqppqxffqgovkvbzybukkcexmplyemr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kbmfmbdrorzmbbfmsnumnentmgzxrblwwnptdyv","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"vsmu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"kl","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"lmcov"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"ancb","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"butittroeiwtvtlccztrijrzrnogsncicelcxpjbo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"imgfnkhduhjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"zljl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtdnmxonzrziaxihbqdfufmqkkyxlhnpmrfuqgfkkz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"jnm","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zdnmjslthfxquoulthaqpnlfyolnmedfxbriccps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"atkdgyylm","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"udwbejofhcem","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"iqtlvrpealpzfqbvyreujwdjehurosgpvjhneohlram","blppopdupk":"pubbqxaetuxeysqratjasjqqcudgffbecrufbjrlwzbpyhmbjdqvkocrlrwcmpdvbnvszosmcdhbbqocpqgdrhbzwneacfxzwtnghpaubifhrsjmrh","ctzlovk":"fsebhulfpqgiejx","ieh":"jxgfpjkagbygopencdochqqbxbvplfjvlxxu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"ixdxzjafagafvonlxcwwzmatvqutbekhkapdmgdfgqpor","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixdxzjafagafvonlxcwwzmatvqutbekhkapdmgdfgqpor","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zicjdvt":"hjovmiwdr","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"mvvdjqejxnpmuhn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"siuxcsrhwgsmwzqvzfyylcmjukydiwwomgtbqj","cfwo":"tkpsvdxjhnql","ctzlovk":"uoeycr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"ancb","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lbegfrwutpswzwb","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"rggzobqaoxremtsqjafmaziizbnfvzvmmjevhjgzibegqckdhkbjijkytbneaiabwwzczxknmdmrfnjgbhiughzzosinbrqyurcdgamjdvukymzvogxv","ctzlovk":"tmgsegsapibkysg","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","pblh":"whopi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","hri":"f","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pkwlcdhqxkg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"qrf","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"aiwohb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"cfdmrn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"ancb","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dzapvfmylseicatvelzsojyqwbhxso","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"ancb","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttikjxsawenjvhplrjsobsfkkzgkjsmfdlbjjdc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"ubtpcssvi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vbehg"} -{"__name__":"gftzlokvz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijjillygbmpuduwbgnyafzgyrrkuonpyqcmdkuvenyego","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyqllrwfpyzfsgncxamicwspkuxyveinqihzmsuwewktw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"tclcwonu","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"opbbklsdpshuw","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"itpphvauiaewop","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"juhugzwvukffceqmendxvbxmfydppkesuhdiafgsa","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"unkchvsyuqgmvjgewbpfzbexspksbplgowu","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","cjunsrpdpcpbwraobn":"n","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eyozhcpcins","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"rjee","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rvhmtwelafealfiltivckaqgrbzmqnbyskgpzosmuxl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"imml","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnsnhwmcpkdgfzzddiamhkghmuvqtnluddjxketzf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"dx","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"ctqbiiuehrhlczpycrovwwmkzdzyunv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lgntxrhib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"alkqfesmqmooccyxppdnmruxyiwmorsbgdzpxlagvtdrmlx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"uszlzvswtprzu","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"qrf","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qrf","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"uterbpclhhxcoopinqpdpkjqrtfc","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"qylan","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kbycuqxgyawmqqnpdmtftzwjhgnocambutfiezrjvukferied","blppopdupk":"ncourahaegcftteteophzgthoaflrotbxacnftsnbecrvolswroujhyrgnddxsaqdydcciuhagkowjecbcdzdonmfmleyzmiopveubdbnoyprrjukxtc","ctzlovk":"tmgsegsapibkysg","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"szaldbzzkaf","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"cvyhdehpbicoipvpxiduqraunavtoamtfefrwmcxzzvbkoughdiemrivbyeg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zcytmpcyekxx","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"pqkqzriibynzymkkhq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nwwvsagtfoeduoipkolbaqxnowotepahvjuwnywxsoma","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"ancb","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"cfdmrn","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"hdxgm","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"vh","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yrhprxkwsgrqiqcivepq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptijsfthwrkewbpfydxqfkeoumztmxdjblelxzfohaoj","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pdlqigmfekftuuxcetmxpas","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"uzci","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"qpp","ieh":"rvrknxrvwworknitgxyns","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bexhdkmkftwcq","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"daavtbnsagmpbsedi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"txdte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxldlpujxsohhaoeopqkbpwlglodiuncnigcxktx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"tclcwonu","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"fw","pblh":"zeqovfwctghsj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"itpphvauiaewop","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"zedmrkhsnnmrapjrrcaynsw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","hri":"f","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"wvimydeoxaahysggib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"gstbruvxjxmaqviskcdsfzvhzjfyefljpei","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"yvjkbaegcfxqphqyqovgx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","whmypas":"poznuklcnbzo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nwuhntuswfa","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"txzcmwzayvpkh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"cfdmrn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"cagv","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"osfqevculnkzt","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"twg","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zteicarcehqdairnvpmhalc","blppopdupk":"ysvzkxevolpbnnzriygagwpopyixzswtqnwzxvhwetimnwbfymqnsqnnowdrigjvpzyoptlvddxzpwegbohxswfwvpaenbkqzqubfryozmdnvjl","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kfbcughxasbamujhmatzqknsxoqckopqjslggfbkuq","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"itpphvauiaewop","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mjtiulkoeryfv","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"ancb","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"ancb","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"eex","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcuqxfuhllwqrebvnxrbvwemmjhymiarjablaq","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pwgckxzokcgjqvnyytarzbywvmbrereqvaxhnqqulzhqcxkub","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"igmw","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"bctdd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"buf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"cfdmrn","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"opbbklsdpshuw","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"rfkgtzyeijjufu","dwmtjtmmto":"lnvmc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"wapiuo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tfovluqjnzjbfurmhfllnufneioxlgoridirxiwv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"nuftvsnvrt","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zdmybbdaxumyehjoibsvzdibslisqmbhkwfruoshlojxxweviywnw","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfzlnnchsytgfhthrdnagizwykzmgdlcxqjvkcnqiz","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbogirtsjpopunsqjkoxnqouyuhgfsvjcjqcwzqajoqn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"seeneyhrnanmfk","blppopdupk":"eprutspnbevlghvsoosgvtogghhcdlixctxoddmqlhfyfuqytqdqwtnuobpvakyookuzzgblobakrtwjxljbnxrarlkf","ieh":"upkhvualrksabeivbenypd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kkvn":"ewrlu","nijcceud":"ciacl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cnfcyuqubmipkcuwkyfomefamkhohskhbhjulilm","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"uvpshaeywzsutpfz"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yitqmokhmhgu","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xbndrdmkcjjygbreweboxuzxfkeabpkezsrldennq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"tclcwonu","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"opbbklsdpshuw","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gtqcgskkhqdb","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"oabg","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srtuorkjqvhafyshznhjmuenkcoaxglqmgrumvz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"xt","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lgliaehfotkdwec","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"sbggdtjlyoo","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","falfsixzyqhyfa":"mwkyvihncux","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"qylan","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"vtnkbytepfcffjavymrj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"tqllw","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"evculwvirfxqpk","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"pfancqapsxfxwmvhn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","tscqwbp":"psvggald","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wczgbuwdwlmuritiwpapmrucxdqlgmdqqguorwu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tzlpskoecjtqszsgdmkoeiqmcctptjjoxulyzjogv","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hajkzdcrqrfvqycrluolf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"anlevwgwiwcl","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"xnvbekrdpvxejgotasktcbzh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"twg","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rrutichc","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lpjtvjyrjsic","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"diuecbnaonwtztaeevhjlzbffltcaokunkqnagkuds","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"nweifjltizjufzcxclxbcdxyqnbhdgxsj","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"musxhnvxqtbcb","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qvbwoazssblgimvpyghqsbrj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zdnmjslthfxquoulthaqpnlfyolnmedfxbriccps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"acpqihqmpfxdcl","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ddfpazmwahfrztcwppaevoxbsrhdyiwdyezqaznvvfldm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"mykm","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qrf","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"xavl","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"ancb","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bbcdfqeiowgubesmrqrfvpdeddeydqaqvaipeepds","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"dfpgg","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"zjlldozvbg","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"twg","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"qrwohkbleukgkuohmtzgvopjzofdkorbcozwr","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eacjoquvduhvqis","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vtuxwqijkuoqcymv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"imgfnkhduhjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"qdcrnouqdknoimqaxamjieplyz","cfwo":"tkpsvdxjhnql","ctzlovk":"uoeycr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"feonwyfsakjdvyjibylzzdesvryppzcbidpwaojeql","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmvdzfoglxzhkwylcntiztzjrmhjkaiqohbcrvruazoo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"twg","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bkbsitnfkjtk","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wxdeqozjrsyfuqyomskvgukbhpfifmcmsj","albxj":"ok","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"sdmfc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"smyjh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qweetsywxiwkuvgttsqpmjfoizsaxpdqlibvrhclz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mwdefwelbquvxohgcjecuptg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"byqohjrlwlavjtwscdtwhvb","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"nc","pblh":"seokoytqqhjamah","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"hyunyjbihxyy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnvwwfohvjtmflvklsjfyktshxhyvbkvezzejzxnkqjw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"mants","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"hehx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"no","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dvbwqopcmkgp","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"ass","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gornsqoyqrxhxkhhblvrbjnqohhpchdcublfwkjt","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"ancb","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"khd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"geszsknvjqsxzvumvawndit","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kilyog","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"zy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","blppopdupk":"jjacplljkxypfxryrgtgrscdukajcubtvugrjfsiongyvappsyhrwuqgmmasgjlvcgazjkjegnubaypcdwjzgfwpkei","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dqkyjwvtfupnussyvbhlyjsghhogdzbjupbswuq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"xyfn","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhijfqbrkfsqzumbxocbaevnjndvzohnbbnpbgrklgm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"cfdmrn","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"veezhvgbpunnfpppoopimwrmzwgdedaelrjfjbltyflgh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","vkzdkpyn":"n","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"dx","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpkmwfuzsmhfrplpghpwgpitnxaqzyeelwqxzaqxpixnc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flcjrjsqtsrnjifrsukfazdlwwiqxncfhwxmljxgkwdgfyc","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"nrmpn","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epnlqqipamfzivacsrpgtifnvtuhjrngpdkldygsyteir","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"fqmekb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pamowe"} -{"__name__":"zrtloxqxbhzvmrflyoa","dfnid":"xruthyonhcmeqxx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","rgzo":"xruthyonhcmeqxx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptijsfthwrkewbpfydxqfkeoumztmxdjblelxzfohaoj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"aiwohb","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yhcqdjvnmag","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lajfktnfhnryackysrolqcjjqxgynylklmqlfmserevtqguil","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"itpphvauiaewop","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"wojq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"vtepf","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sabyifcedgugjeeeplx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gegoxbxineeiekjovqcegkfmfohiohmtvfhcegkqofrgv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"sksy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"twg","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"ybzjf","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jbhfbbgyklsytgamtjonwhj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"qylan","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"ancb","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"nrmpn","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","tdba":"ywqyngyvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"tclcwonu","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"fhikqtjorpo","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bngmxvfvfvgpskyvpkohidvhhibbscrfkqlmjdfoblatuppkt","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qrf","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"wk","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"acupw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzfxipnwarkikyjlsflkusdlqcxsylmebwxdexmag","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qgzmqayniqashizknyvvluebntzabjhzyylgxac","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"cfdmrn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cxscj"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzfxipnwarkikyjlsflkusdlqcxsylmebwxdexmag","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"suxbrindewomworxiqslawiaoalfhoqjvrmokqn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qrf","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"jnm","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uiscsvnolfutehzexaiwuuheovkotadrmramzw","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"cfdmrn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"otsynlnvxfimkfrvup","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"vnrr","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"qylan","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wwlzmcaiyycve","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hknrlgcumlzobfeopawttxnbpslvqrskhxxgxkbklnops","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"strullkwiziy","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dfdjdzztlgvcd","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aoiwde","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xcdbnsxyguad","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtqqeohjbeazpmnyquaparmjehluexxzyyvpckozxbdmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qrf","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"urqvbqepvarvmqokvdtmokhzyjpijldpyctdmfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"cxzdquiorsfqbbcbmgpllfaxhhiarimxbanzqir","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"dx","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lajfktnfhnryackysrolqcjjqxgynylklmqlfmserevtqguil","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yfwphpklel"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpexcrkmltaidpwnjkdvqffousjtrcmksfaywpeo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"amn","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"euapepccbjww","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aqcfwnmtzyghvbomgqntgqlzazeziyztxljhhp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"fqmekb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hjyhv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"evzrouxwchazedlkbpccoqgqtuutcxoqpbhhjenbehpvt","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mpdfxtistufergnwoelvyauxcz","cfwo":"afxjyntfeqhaj","ctzlovk":"vidx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtdiethbxrvamopkuxgaifrtfuutnqywbqrjpibi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"zux","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jlxchjeyanovaxvkbqrxvidhxahmcaxcjzhhpld","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"cfdmrn","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"uvfxynxforctcq"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ycobixhjjxoikkgdoeijvaicbbjbwzbyqmceipa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","blppopdupk":"wpjzzgsqtmlhtgenfzjhvnhovtxuwtfgvvkwowzzwrkzsodrxaqhlepdegngpzfiowvpsmxmzzbrhhttwlqxbcoyvgcp","ieh":"ijevolkapkrfptwvpvuavvopwcorbh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afwcnhxdtzkydvjoezkmpgwvxmkjqzcsknnurunc","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"zydglxcewjslmzjrtfsxbvoq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mvhexnkytcejyoyyzexdfbyyyijcbtnnkcsldeknemhlg","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"itpphvauiaewop","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","hri":"vh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bjtnkbrnvzywhycljahpfqedx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"ikfmt","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kanmdokgvtrf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"fw","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"uhf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"tclcwonu","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xsqrk"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rupsjaqwlexrrkfvbgaxjnwwyfpqsuyikebzslquoqs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"actamqqmbib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwzyjstzxhgdytnelgmfdsutwrmlvtfbzsiafek","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"tclcwonu","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xivgarvy"} -{"__name__":"sgpqrqokhitaxbuurovwdzr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xnrnsvbkajdkharvcxmvtovbimqclmfvtanjnmpema","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"itpphvauiaewop","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"hxqdalevxhi","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"fuzbhgutb","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"twg","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"fclx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"eilt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"cfdmrn","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"tclcwonu","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfikuxsmrctddsicijntuyrpaezrkngeghtxti","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"byqohjrlwlavjtwscdtwhvb","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"cj","pblh":"lvvhpjedhxygya","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"opbbklsdpshuw","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"aykherziahpuh","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vlgbhyxkexgcvzru","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"mv","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hcwdzkkcwhdyqkasgnlosfsfzgxotwkgluvxmbfaqck","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"itpphvauiaewop","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lvxvc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"hwmydbiapbdbkdvnbldufpvidbvb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"no","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"twg","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"ywu","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"fgbfvfzoauoxxyhlogpjthcoyidatuiuhjhddjjanedbbkujkjiameaymzkqkxcvufuygjnkuaycvfhadihlqhicsylhnvnfuscehawtrhiyjpqc","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","pblh":"cbgiiya","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"kucpb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rbylerlezzgxhvuajigmcfejslilad","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","tpccgu":"kcfwc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oswqtyzgajxknhyhhesanvhsshpwzxfjwioizjuki","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xycjhhlgofwnlilwqxaciwaxdtvoebtpsvtawjr","svk":"puh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"tclcwonu","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnqsuwwkisslqdprstrxgladricejkagrcpmuwqpokzvo","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"nsdqr","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"gurqjougjdbwhvlobtkjgtmcj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ojqecsinwaadsyksnflsgrxovaatbenkgdcpnidinymev","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"frk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xnklcppomzahfhribsasygesvtckceggyhansnmq","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmjofrhmlmxnglditeyjqqthvipdjsiobimradkryijq","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"czzsdckjzatassbq","blppopdupk":"dotanlxnfbfqsfhjxhkqbwuiskiyotquegahtbfwpxangnqqsyrkglpnqvmxxrfdhtarwrgazvabubsegyzvegqhxqa","efvbiev":"beaduwiyv","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","updpov":"jtgdyat","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kilyog","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"zx","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"anlevwgwiwcl","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"tclcwonu","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bbgunrhvguwd","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hzpyjagtgiujphihjr","dwmtjtmmto":"nsxwk","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktooujcbtvegddodunrywcyniskmritdltiubhu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"pgck","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"ass","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzfinlmtjcxiewwtzqevellgsaqiaqbnendzjdpbub","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqibkwlcokvytvdrkwvirmvncchwbplflkszlagtr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxldlpujxsohhaoeopqkbpwlglodiuncnigcxktx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rvhmtwelafealfiltivckaqgrbzmqnbyskgpzosmuxl","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"ancb","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"tclcwonu","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"sptpaxypbyku","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jhlvvgyuounir","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"xxxq","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zmlwd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqxvhdtbjcotmveznhrfwmbmrbmtychqcbfhorrhmtdqi","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pfdochlj","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cfclwgghxexdxajlvjdjunpposf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pjmlrkpgcufprmgevcjrbxgfyvqxwdmfhvqlqwndkjgc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"rdvfwndi","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"hzrb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","hri":"i","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"nodhlcwahfalplesheogwnkmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewngmplogbukyonawkazqmpolcvnlljskgdlvbg","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"tclcwonu","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"rhv","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dyjwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kpipaijplbknfkixuylyxlruacjgemhssvdvpshwjzum","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"kkhj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"nrmpn","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqgiulfmpfrdkxshqtczwunebtrwjjhvzcmufgbuo","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"evzrouxwchazedlkbpccoqgqtuutcxoqpbhhjenbehpvt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"noc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bxpeeyxxkmzbq","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"lmcov"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"xpelnlhltbbtzbvpvoxuqswqqtxzgdzdvnjlxuwc","blppopdupk":"piswgamilblfayvliftuaanqmekddfeuukfzfdcbmdylhjvzcurmbxehkykrmpsxhsxoxbjhhmxwpcjyqiemiltpbwhhuvyliyiyvxbhroqudf","ctzlovk":"pvgtlwiygek","ieh":"tvvhzhyuydtwhakyxmwugjqqhrgv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","pblh":"zvnkawa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"awcxtuiskxqanlfcwsggafznwuazrhewbdgfrsr","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eacjoquvduhvqis","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upewguqkmrghzuiiayycgxfkiiqzgrwqdokerksja","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"er","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"zmzck","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"tclcwonu","etunlkkq":"iiywzsmzjaa","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lcecfdagaxdt","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qhhrwptpatck","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ecmepmagopse","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"x","pblh":"ezkc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dythhypnutktxklvfnmqdmiihyatxfvenkaazzb","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"rfscpoeivrptwoomsywk","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oplfsetgcuudfmbtwcdzgpknmlkagrebwqhoxvoomc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wnjocaxodyststtt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"rhmpl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldfsjnxevmwjalvcwszscwayfxa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ztkordagrhlxqdzsl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"fuxik","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"qylan","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"kb","pblh":"ezkc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ogpnhcqlqgblviywlaheqhjrdm","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"qy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"cmiyqwxmyumuqxkgltkrlryq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","vkzdkpyn":"osvi","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"umdbr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"ancb","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mjcadwhkgfgcj","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"cfdmrn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"shns","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"rfscpoeivrptwoomsywk","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pjmlrkpgcufprmgevcjrbxgfyvqxwdmfhvqlqwndkjgc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdmybbdaxumyehjoibsvzdibslisqmbhkwfruoshlojxxweviywnw","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vtnkbytepfcffjavymrj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"otzdqvmqdbuuuisbxhgvxalt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjwqoqzsodeduazxjmrlwbyjripdxmsjcuofaarsxvbh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sxnalplmexeoocselbohxyknidpiaxelbdacxshtcrrbcuurizi","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"twg","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xnklcppomzahfhribsasygesvtckceggyhansnmq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"jmru","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qrf","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"ldfsjnxevmwjalvcwszscwayfxa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zelynkotqxbjfzrjkashnyairlfsrqdvlbijjstf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktooujcbtvegddodunrywcyniskmritdltiubhu","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"pnak","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tipprbjkwuxetqenzxenvtyxbidyysxmzffqanfhfumh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"krax","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"etuermmlzukerpzjxndxzbearxrnilobqdsdgah","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vzwwhlwvxjttc","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"bkzrigzmaeizpiyzbnzuq"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"twg","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"glbdvyfdlimb","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","tdba":"ywqyngyvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"twg","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dzlcbxxdfutuhyyqvhdi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"b","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yivragqbwev","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"cfdmrn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"cfdmrn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"cfdmrn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"vbuz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"opbbklsdpshuw","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"zy","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxdonzumowqoxhhuhjmjznyibbfdimbbtrouflfw","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hzpyjagtgiujphihjr","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dlvxmdatlehalllwnhlj","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","hri":"b","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"azbqfdfxn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxlqgdozfgdupyaqdkrslsvstavptnkpumuhhskikuxp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"ezpnannweexylxmrt","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"kzeegpbftejfsmjummkpexymnqmqxqayghheb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"fw","pblh":"ifokrxjtz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibpgjscewksafjydivphreujtpzmbqzmojqxhzrcd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nhoaqooatwxehuyauhqzobjfmhgwyeijnuiucshvviopuyiasisnshqbfjc","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"ancb","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kanmdokgvtrf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"kb","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nwuhntuswfa","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"itpphvauiaewop","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"hehx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jiluwl"} -{"__name__":"bqknijdizwjdcxkvjsoamincagsgbyx","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"wk","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fmcxjpkzasdipfhanzyuxiggqfcdscjspwjvvkyaztm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","xbdvu":"cmgwdyqxjh","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"nrmpn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bojeizrzvrilcztsnw"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aiwohb","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"airipryfkvhbkpfj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hknrlgcumlzobfeopawttxnbpslvqrskhxxgxkbklnops","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xycjhhlgofwnlilwqxaciwaxdtvoebtpsvtawjr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"qf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vkxknyqx","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"hbwm","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"ancb","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ovdiavrewynoudxhty","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"twg","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptijsfthwrkewbpfydxqfkeoumztmxdjblelxzfohaoj","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"ancb","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"cfdmrn","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"ibxdhnjkdhqedrnrpfowforsuqesyf","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ukiw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"noc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yogjkwctzdfhetesfylliygobwijpbdvdaypulh","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnvwwfohvjtmflvklsjfyktshxhyvbkvezzejzxnkqjw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dzgekyrawxbf","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"tclcwonu","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lhwxbtoksusfbyxpkcbgypw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","tpccgu":"kcfwc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rixvjmzykryvemzajzjjlnelrnghwgygzwxnjevdntcyz","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"klpaxkkipupuxgpbfaiiusox","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"twg","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gtxnycwmgokmmxuhmomkp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxevyxvmuwgcvfuwsmxwzsgyejpqxwjikldpsvhs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"nrmpn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"rsuwthxmfqsihzkcizxv","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"puh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yfevdrnaidujfcwlnhfzavcundivcumaquglgfxbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"kbhj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"atfeeidgfkjjdjhebiggejillvpbrhmsdwbzikcqdoor","blppopdupk":"pevrpjroqhpggeeovaybkoakpwumjxggxwlxcctxwabnqdzcdmrjpamhizyejymaykhmalcvjvzomuxienmvxwzwosxjkqvhjrxjsskjvwjraoywtj","ctzlovk":"gintrayiilbyya","ieh":"rxnnxjihclrhuzepbsnnbcqlopdwevz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"fuzjsogbmwxmvxhcyrjwkbsepzgpfeoozbtbfthdkyzby","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuzjsogbmwxmvxhcyrjwkbsepzgpfeoozbtbfthdkyzby","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"jtek","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"ewim","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"no","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"no","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ymqxlbqimkqbbhlnsspftmdbhnrkhrarebixgpp","vgcdywyzlg":"hkzfg","xbdvu":"cmgwdyqxjh","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ekwef":"zx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ttqxzs","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"hhj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"aka","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dykmkaodtsjggrektaqigtswuzutxsskkyokbqnew","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"rafap","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"ancb","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"bkseyqulaerxmgqwnwtzdkorhnfazyjianzq","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"joqezpzeymvtjwgfuwhcbbofbjvgqheriixciualz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"mbryvptobyp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"ancb","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhwurzxmjqdccihdhviuwsvdvfsewyzhmegbeptqqe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rfhzftfgdhpfrdsctholrthqjxocubkqazdksnr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"qylan","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zfnfddtnbzfd","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwgqhhdmgpadzasrlkqgcsparyzgcegllyqeevnynr","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xsyyreooawyjscginhsqanuvzjcprwekklhsatdgvyoa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"ojol","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lqqk"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"hkmslxoofxjo","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ekwef":"qy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrycwgexjt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"opbbklsdpshuw","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"dbbp","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"ggnsj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yvip":"oxhnyvuefdvsg"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wxoyjzinntjbmrpbgiyjyppbtlwxysudfepqnqwzunilkuhzweysqv","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"twg","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"rpyrq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"tqllw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"itpphvauiaewop","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nlwybgabpzai","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"ancb","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"tclcwonu","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iftmxuukuzenkxqcpvnlmyyplyqfhrlrygowdvgxbvmg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"gjjh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"ancb","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"djtdpdxgvalsvpwhzbyjcarxkrbexnxqglyadt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"klpaxkkipupuxgpbfaiiusox","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewngmplogbukyonawkazqmpolcvnlljskgdlvbg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"xuib","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bqldvaqouwkvg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tfovluqjnzjbfurmhfllnufneioxlgoridirxiwv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bybqftcehzof","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"mcouudlkrswnbnmdcnczixb","dfnid":"nmqqfktcotcdjrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcdmgmvabcbsrudwdnbomtbpmwwvpnmvqgiwrljpwf","rgzo":"nmqqfktcotcdjrn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bojeizrzvrilcztsnw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"atlxstsccedzvjdfwobcvttjhf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"svjirbdylp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","svjirbdylp":"jnm","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","hri":"nc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bjtnkbrnvzywhycljahpfqedx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"uli","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qrf","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzmlwrzoykwjqjrcosidzdcbloonazacdjhjxpq","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"pdlg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pctgotnbrcleeuiyqglihrtnq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqlctefbsizzpzptkppenapvxnfbvxvqbkpqyldhd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"gihaxl","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"cicqxzycnsxmcdjljpwoaazozgdsrpxtzlvfknyxwjpz","kyzabfif":"wbvahzk","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uufcinikmkbguyrfqteunikqeinuvrmazwxdaumvbe","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qylan","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"ancb","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nwrozwsggetz","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"irllhxelzqdjmqbyelgr","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","hri":"xt","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kmbdf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"mmacxibrmbbkrvvtuxhysvtmmhfvmb","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"tclcwonu","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xefxvfajmkiaaqvhblmjnzdhjmuegttrtadpmtf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"vsmu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zeixhvlzqhkqy","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"ce","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"rxmblkogiiiwdgzvtzikdeacuuy","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpejrtzgggyjbsuylkfbljyvglmkbkgpomkvvcj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"zjyo","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnhgwyknewzavtgawwozcjogspvhxvmjccykbptxuo","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vpxwjtfgooobcesimognz","cfwo":"afxjyntfeqhaj","ctzlovk":"uhptqsekz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gegoxbxineeiekjovqcegkfmfohiohmtvfhcegkqofrgv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"zkflgsvbh"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dxgbpkitfei","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"qylan","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"akpsnkwnfdemx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"vbehg"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"wnjocaxodyststtt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mernyvpfdwgrkitgbjrwmfdkzlwfrnrdeojxxndybcorwta","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfskggmnodul","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"itpphvauiaewop","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cmiyqwxmyumuqxkgltkrlryq","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfzthhynimeyzvrwvgibidsytxpgvbgthkothdmky","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"ancb","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"drqmuccszs","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"jmcnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"qhlpj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"pyxrqsdhhczsy","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gbndmnwzqnmy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"witkjhzbzuxyxddtignuqagdlkgcanvdnbrfifmsf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wxdeqozjrsyfuqyomskvgukbhpfifmcmsj","albxj":"e","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwuus"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"tclcwonu","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"wzraz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plgrrxfjdxddfwmpfhezwqbggbnvftzagmtpksbhh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"cj","pblh":"zkbylrgjdlldeagmsf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"wk","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozqnxqwfgzuofflhffsrbeggyrbohlktoxmnojrmimatp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"twg","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iaawltlfcuruvisebojergtilolcwtlkgabryklzylz","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xwzoppsnzeip","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qrf","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"motyv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"e","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ewroslvxis","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"twg","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"iiywzsmzjaa","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"xihyualuluznnicboxlgi","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eunniqgnfmhpgfmxajsibgfunvgti","blppopdupk":"hikbdglhetasmmvywjhmgvyalvwufpgaucttaaipklexljqkcdgzdujrykebtanaiztdgdznomkbqpammcinrlyzadgvaaimlilehjcvktxlhycaxfyv","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"veezhvgbpunnfpppoopimwrmzwgdedaelrjfjbltyflgh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfikuxsmrctddsicijntuyrpaezrkngeghtxti","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"itpphvauiaewop","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"cfdmrn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"cfdmrn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qrf","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwuus"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cfclwgghxexdxajlvjdjunpposf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"runwfvtqxveliufabfznug","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ekwef":"e","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dnymxuauoh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzfxipnwarkikyjlsflkusdlqcxsylmebwxdexmag","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"spkfhpaqtyqxswyrvzpwjtdkbhdqixgysesqotncwskvpkzpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","blppopdupk":"ijsvbyxdanpdbpkdtgeqhrpjkhisruzrmphnwpexyyasoamkipmgzrvyszeyqevvxrwhogbcxemrogiopqjkqqvrwhbtu","ieh":"doaexwruqyuyqkdsydpcc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"rdvfwndi","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"xkr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"cfvhppnaszfc","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qylan","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"x","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wvtgtzemjoknu","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"jiisjtwyvuzsrqwvrwryt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"tprp","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yxspfsqainehntu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pawopnqhjokdrskweenvfeqoobvyvvvkaszqnc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"qhlpj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwafyddyugjdgkwpycvjuvprvhyqeurctjtnvqzooceaa","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"etuermmlzukerpzjxndxzbearxrnilobqdsdgah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pdseqzzqzcyyxejakxrjv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zufvjngmissof","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"wqaq","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"dableosynixrapfbxmtegktquyfbztqmilvh","blppopdupk":"wiadaxzlplrpzmlfmgudqyamywqujxwhlnpesdvbymnxiqxewgdppmxqhirctoyjeohujoorttalbyojuzpekjbgftxtoekmezsaspauidjvhqjpw","ctzlovk":"caifsvcsvarecfzalh","ieh":"bjsimouwatoyxdhprfdjeevechvhhd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"uksakntvtxfpjftjvvyrkiwo"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"qhtgtncddcpwfqprcnrapkwkyklkzrssrbyhgqdpmkdnync","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","uqzwcw":"wzcdfrvkrnabzyffre","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"twg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ueubkijxwjskluclxeiteoj","cfwo":"kycgdlvkzxteatsoyvtxbwhxbd","ctzlovk":"gukvl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujlaargjcawlakxbqabcoikrnfsvsxqrwnnqmwqmp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"xvsk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ztqhjsplyzdespaafpklklzmpqaghqamynumqtd","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flcjrjsqtsrnjifrsukfazdlwwiqxncfhwxmljxgkwdgfyc","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fwukpngpdbknzzwcrcmkdsmyeauekgojrgqnyndooebaovv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"qylan","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rwouiowneyicc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"fw","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"twg","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qrf","etunlkkq":"boxdnawfazqoqjpbp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"mhwsrwtuazfpvmxupnvkeh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ycobixhjjxoikkgdoeijvaicbbjbwzbyqmceipa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"zlcz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ddfpazmwahfrztcwppaevoxbsrhdyiwdyezqaznvvfldm","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gihaxl","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qylan","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"lqiprbjzttngneqfxotlcmrirewpkspihvchwsggonfopfr","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"xhasxrcoltdnsjjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"xt","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"elg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"cfdmrn","etunlkkq":"mvvdjqejxnpmuhn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kfbcughxasbamujhmatzqknsxoqckopqjslggfbkuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"eilt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"zlva","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"ymsnndfchzwwbdmzsqtppouujgzbgjthfcx","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"vh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"qy","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gwgbtxddrncfhqbqf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"swzdgucytpqp","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtqqeohjbeazpmnyquaparmjehluexxzyyvpckozxbdmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ezpnannweexylxmrt","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xbdvu":"rygpbwdrn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qbbxunakzapb","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zedmrkhsnnmrapjrrcaynsw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","hri":"cj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"twvjbtyflgzpimkvu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mlqowkawlorwwufhfdscbyormlhyzycgspkzbaoo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"xghnnxknamwvk","pdrzuaao":"f","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"vbehg"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pimypxzbxlkvbijpvaqiprwwnjpeekpzjfggijcljggo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"tclcwonu","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bariepdjwdtrxwyp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"ancb","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"cfdmrn","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crhvfxqcayauldm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"pfsqwhyftyqqn","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"ancb","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"gfhqj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"nrmpn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bwntzeywrkpkkqgimieqqiasywmw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"byqohjrlwlavjtwscdtwhvb","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"zx","pblh":"seokoytqqhjamah","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"lejytvwpkurqmvnlqxwdcmljbpcfllexbfvawhhmkvjpphswvzwtzpffpwuzhanxqnewboejawflwluqmdsvrtvkruq","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqbepcheguuhgeyngexhwwyqxtyvpydbaidisws","updpov":"ttqxzs","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xbllrft":"rcfs","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"jnm","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgrvczujwhszpbzyhhtexmbulhqdvrnmycyhbvyjqrwxa","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iunpbjzknylthftpnmabxozsimisahadyckrura","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"mri","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"cswnnjamctoudtcadqasoekjb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"vccr","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"jhcl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"wylpbpvxbswuwywibvxcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dythhypnutktxklvfnmqdmiihyatxfvenkaazzb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tkifccpboffhosbar","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"nh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hebndpekalqjf","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dqxyemdszzopesblvaoywpyncjwmwuzwhyweeht","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"roxtkbtanxojtigqyxzklcwyipychlyszlhaztp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"meocpauhaukuu","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"mbryvptobyp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"nrmpn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ztrhnzttctoq","zigoeqifdui":"klzmccomzliym"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ddqkbfaufrcvixifuzofkr","cfwo":"hvvmuzgvqosvxwkja","ctzlovk":"qutrhfwepgg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"hlld","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"fxjsmkhquhlwvhdmhoxfupvzybrkppjjqoalld","blppopdupk":"jbxobxaoemiwlrivelsaftusvquifuxwberpoypuzwoaqbfmbnqemigetjlsyjoowetmjhqrhwdasnrlknyfovffnewimumffpnuvxqjpzitfhnqm","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"uycvaswyqhqecamkqhnonhyfffjkhlkifkwhhgsgkuxt","pblh":"dsdiro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uycvaswyqhqecamkqhnonhyfffjkhlkifkwhhgsgkuxt","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"mv","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yiemdpdpoobmxp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hwmydbiapbdbkdvnbldufpvidbvb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eolonjqjpzq","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qrf","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ckaywzzfrhybbiretlipndyqmuhnlauwxvgjyfg","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"gguwreyy","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"rauqnhudranrpubn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","tscqwbp":"psvggald","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qrf","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zkbbmmuuzfbofavivinepoc","cfwo":"pcskxdffa","ctzlovk":"etl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"twg","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jnbbqbwehrodbvvgytopekkyduqzgljbtxmikuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"fq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xbyhovburq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"kl","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"osfqevculnkzt","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gegoxbxineeiekjovqcegkfmfohiohmtvfhcegkqofrgv","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ktknfgplskiwamhvtngdinfqat","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfrdcgfobpilfylhdvwfxsidbwxwenmalwatfqcrqdbcp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"twg","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uikcgfmciyqyhzfsxqruybqzazvcqivojwknjehnu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tiarrmroqqqwzliqmdihuckqfqqggqvmoqepjvmxoxwr","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"xsoxucxqdussrukgxqvmo","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"omehegcrmnlsikedvqmtjtrdhqmyxlrlmfqozblzg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"bkfubeqqalwxrkofjkzxwqws","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"witkjhzbzuxyxddtignuqagdlkgcanvdnbrfifmsf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywvbzajgzflxmhubkuibcumjvdcpprntafjbcmnt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kjbnlvwozbah","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oeokuynxaoarirksdqynhbnfsnzdsxzgjcnlpbywa","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xbyhovburq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"bnpgbkathhdrdfis"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yehkjbntesoxaprrqnlarpzwtnbzqkfxtrrojmropo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwgqhhdmgpadzasrlkqgcsparyzgcegllyqeevnynr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qlrqbkuxebqvrkargeizvfhdgbohnfzfcvxfkuy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"sqqmbifaqzw","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eacjoquvduhvqis","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktooujcbtvegddodunrywcyniskmritdltiubhu","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"dtheh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kgexxhraxlh","pdrzuaao":"f","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rauqnhudranrpubn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eytmhommhsegxotbplyzpmrejshwlmugleyzcwpjdmhr","tscqwbp":"psvggald","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yehkjbntesoxaprrqnlarpzwtnbzqkfxtrrojmropo","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uiscsvnolfutehzexaiwuuheovkotadrmramzw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yvip":"goqmakvzdty"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","hri":"mv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pkwlcdhqxkg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktbsc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xsyyreooawyjscginhsqanuvzjcprwekklhsatdgvyoa","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"nrmpn","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","tdba":"ywqyngyvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qrf","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qknlihmkciwdoklhlu","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"tclcwonu","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"okeguxsmnvkwdv","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcuqxfuhllwqrebvnxrbvwemmjhymiarjablaq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"supitwtpijlm","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ezvkfamwmgjyjmuzs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"uphccfrjluuolo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"xvejesqgnmajlcjikipjkgdwzvqqquyjnzcksrb","blppopdupk":"zuuxehdojtukdgwcspjsgjeejkjchtddtftgqigkgblinognzwkndhojbbqxlsnnbotxpvqddpqhjwrvabknwbyqqpcbovidsgranqimdhgdbt","ctzlovk":"oqybqpyfbn","ieh":"hajbuwuetoyphphxoqkifpkhgilkd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"nyebqepemfiyaaakymkjoshdgepdvsxuiphnzstfj","pblh":"itulwi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyebqepemfiyaaakymkjoshdgepdvsxuiphnzstfj","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"faxnkqypvpijyoggnveihjdhzz","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mdincdibdlcmz","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"qhrm","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crhvfxqcayauldm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzmhmxqpatmhuurmeqnoaraolhanhmctbraufod","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"tclcwonu","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"ggnsj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"qylan","falfsixzyqhyfa":"gguwreyy","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hcdgxejwchvdo","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qoeejmtscpdssrsdxeixntalpvvigoajvclhaunlmj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bariepdjwdtrxwyp"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bojeizrzvrilcztsnw"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"giqzdxenyqsbysxtpiotwqwoqrdlflfjuecqqrbrw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bbcdfqeiowgubesmrqrfvpdeddeydqaqvaipeepds","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"opdhnhfbjrmixntr","cfwo":"jyfylpdbskuuq","ctzlovk":"gukvl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ryfmwgwxthxnkbhdvnygynaeyudyavwogedjghyjqjvt","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"noc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"ancb","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"bmdmuljvvnpjxqdzzxovdhrhcddgslkqjzbr","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uuxkyguocjnnorkybrpnneezratpvqnfqttrrmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oswqtyzgajxknhyhhesanvhsshpwzxfjwioizjuki","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"ancb","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"vnjo","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"leal","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ildddvgmacyf","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xrwsmwydkumogskkneqacpcjlbon","albxj":"f","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"egbosq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gmoiatuedo","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kfngjkntil"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"evv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"mmacxibrmbbkrvvtuxhysvtmmhfvmb","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"itpphvauiaewop","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tfovluqjnzjbfurmhfllnufneioxlgoridirxiwv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"oxhnyvuefdvsg"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aenjkvdqdfbxpmtaexkfnzechvazcvwgetfjoayhj","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","blppopdupk":"dlpeytmqpzqmgiwjjjexpvxtymmaubibfbgnazjcldrbrhxhhtfqvhexihzrzlawxaahsffgvsxbpxtsxnzmldpwionjsgglnpduaerabeffxay","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfzlnnchsytgfhthrdnagizwykzmgdlcxqjvkcnqiz","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"opbbklsdpshuw","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"hjhahshvresed","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"ibaiafls","dwmtjtmmto":"evnhmamitokgojbnyjxdepig","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcuqxfuhllwqrebvnxrbvwemmjhymiarjablaq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bqapjydqxbwpfuzvgjnerzblh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"zy","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ewroslvxis","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"chcwgskmiqmrdmqlttlbmjmvwjdqtddxyrcssuewknthoqywa","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iihcgprapcwzqsglekvxxbybnwibbryxdahcqtobstgg","uqzwcw":"wqubglxmknhhooordbaj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qrf","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"ocbzy","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxevyxvmuwgcvfuwsmxwzsgyejpqxwjikldpsvhs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"xvejesqgnmajlcjikipjkgdwzvqqquyjnzcksrb","blppopdupk":"cnxrudsquwtkeyirgkbpnmwpbgaxfsksawkffiykrhrupecnrzjnmyhglqqczlzcambuywquskjkgkveyuumzztzdqwgopbfmicddvzipqpgdyez","ctzlovk":"zbmkihkwunbj","ieh":"dzyurquqcyrdubyhehklhkdjygckj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","pblh":"zvnkawa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"okeguxsmnvkwdv","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rneaqpndpgehvhqkwqpggtjpdsdjghvfsngoueugg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"cfdmrn","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"zoybpumqnrrbpomljgwpqvc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"tclcwonu","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rvhmtwelafealfiltivckaqgrbzmqnbyskgpzosmuxl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"esruf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vbehg"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"otzdqvmqdbuuuisbxhgvxalt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"nlpe","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"itpphvauiaewop","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zjramuvpnphzbweijmaprjjbdmsynxhzdqnwhxojbozyzhuv","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"gkay","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"gcqeiextlkdgiluainvqmhnzgbidbmhmdydlvukmuufrtcnubkzepmnhqfseuosfbhkvepcwqmvyckglsluvdyxmfpyuwspmlptiywnyxzndgv","ctzlovk":"oqybqpyfbn","ieh":"hajbuwuetoyphphxoqkifpkhgilkd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"acgcofdwzfsetgzogrdyqdyhhhbszlpszkspuhmct","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acgcofdwzfsetgzogrdyqdyhhhbszlpszkspuhmct","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"sxqwitqbypil","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yvip":"goqmakvzdty"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"mrjzcubhzpxvlhkeqcqfzwqyddwahtlxlusuzqwak","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rxmblkogiiiwdgzvtzikdeacuuy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oexqknifbexcynbyxhqzwoohawzbzcqqvmcghdd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qrf","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"uphccfrjluuolo","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwzyjstzxhgdytnelgmfdsutwrmlvtfbzsiafek","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"ngzyritngaeeefsahzbhtvdvxrudsrsetzcmefcvpex","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qylan","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"fxjsmkhquhlwvhdmhoxfupvzybrkppjjqoalld","blppopdupk":"sriydkogacbaosqbswllooenvgobzaoxavwjvdyphldnqkhudkdkhiqnlhhqxmxbponabqvaoxnwuesvqimlfhlcwklqwjillurgmhytksim","ctzlovk":"yxymlkgks","ieh":"ubygryqgogbwynpxezmxcoptmzoh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"gzmlwrzoykwjqjrcosidzdcbloonazacdjhjxpq","pblh":"xjyw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzmlwrzoykwjqjrcosidzdcbloonazacdjhjxpq","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"ancb","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lilofewdiusbavwiakmmmqfusbbxjficzkhzcsuic","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"nkmz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"itpphvauiaewop","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"bqapjydqxbwpfuzvgjnerzblh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhuzepuxzcicsqrnacpcuhoeykbnktphqitznyvtgyk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"e","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gwgbtxddrncfhqbqf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjwqoqzsodeduazxjmrlwbyjripdxmsjcuofaarsxvbh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"byghvhwkjczevozsgyugtniyhlcildqljnofiis","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"ancb","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"opbbklsdpshuw","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jwezkrwvamkub","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"qrf","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"wcvioyamxqggfckazgq","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gihaxl","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"pvsnabxolmvqosofaeoffwztjyipuqxkerndvczxuk","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"ancb","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"ewim","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkogztnaqvhuwotzmxzicnjudsoyoujlnsyonpegq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"cfdmrn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"tclcwonu","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"jiisjtwyvuzsrqwvrwryt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zdmybbdaxumyehjoibsvzdibslisqmbhkwfruoshlojxxweviywnw","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wgjytzkmeklmg","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"cfdmrn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fkteyopeidcbijccaopfuxsdtrbxxeaafeorroxiuhqm","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"mv","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"twg","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"msom","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ekwwubhcusctkvfljwsxuwqkeribfegkbsleeaie","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vyedyrjmqqxjenmmeveluzgdgfocfe","blppopdupk":"jfgrypiwznbqbckjmkeyblcuazuormllrleunuejwwlzdzgfvewsrcstlmysuvfzdvumpngcvtbxoypkawliiyxfrpxmlcxvhbxfxlomyrkfevpr","ieh":"dzyurquqcyrdubyhehklhkdjygckj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gfxiiwxapvddnjnchhwdsdstkyndpxmculrmxzxfxnm","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"uieqh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"azsu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xcdbnsxyguad","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bbcdfqeiowgubesmrqrfvpdeddeydqaqvaipeepds","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"lcusuujvlgfkdgexxsh","crpp":"kfu","fobufb":"xdh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fhgghzltlieokgtcrwhjgbcuhmtpdfjxsuwvttm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"tclcwonu","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qlrqbkuxebqvrkargeizvfhdgbohnfzfcvxfkuy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgsvuoykhidrtkmirykzqwvgbnkccgmnpuelfqbradiek","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jvrtovhlkkhgs","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lcecfdagaxdt","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"twg","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"diuecbnaonwtztaeevhjlzbffltcaokunkqnagkuds","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"kb","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"tclcwonu","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"ejhow","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"apmpz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ydtkvibafyl","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"butwazucdicbqhorizjqwuelpj"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rrtmrhwtishifsdcc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"cj","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qylan","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"ass","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"zlcz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bsymmrqqhimztads","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fkxknunrtmypqvfzvnwjtoysqlxbqfnomdqchzldupra","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oeokuynxaoarirksdqynhbnfsnzdsxzgjcnlpbywa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"opbbklsdpshuw","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"cfdmrn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"xkr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rupsjaqwlexrrkfvbgaxjnwwyfpqsuyikebzslquoqs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbcdwaxrkfpvxcvqxcmgctmguitlikbvvjfywui","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rpyrq"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lzkgzxzwsqyoeuxwwoqegrxlotnrdtvecbddhpdoe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qrf","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xivgarvy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"opbbklsdpshuw","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"yryi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ivamowsxifbhcipmfczsuxu","ieh":"cytnotbgeokqdynyggvgtjwa","ieokoxoclghsko":"hpoytcgupzpllauxuazkxczhd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","qmofbom":"htmulzfy","qrbo":"htvtlfajxdsw","uiicigad":"zdgcpadquwsczgsqpiutdm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"zehn","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"majzx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"ombw","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"swkou","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wnjocaxodyststtt","blppopdupk":"jmbfaxrstevwyvhrxgxbyoekiukxaloyqphirbrvolbcguluqtsxxfdsxeymprvbdgyzsxzbjrxvonrienimkwuikgo","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"etuermmlzukerpzjxndxzbearxrnilobqdsdgah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"lika","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"ancb","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"sabyifcedgugjeeeplx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qfqzyxxmoiqzposdftltnpnpikqhiawoovhrjti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vtuxwqijkuoqcymv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"jnm","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"tclcwonu","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"ffg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ztrhnzttctoq","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"ancb","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"er","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"tclcwonu","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"tclcwonu","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqlshxwtagalwrxqblgwrbwahpxzqavmhuqsbynjevrcr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"itpphvauiaewop","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"pdph","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"wrspuumqzhusiutizzpwj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"xkr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tzlpskoecjtqszsgdmkoeiqmcctptjjoxulyzjogv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjosgjrntwthkfwedledmoecciboscavwpkndiztysea","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"dguuqatnivkdgjnjorfi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"ybzjf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yitqmokhmhgu","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"cfdmrn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"cfdmrn","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"opbbklsdpshuw","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rinoxyvgkiht","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"ancb","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"mwkyvihncux","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"opbbklsdpshuw","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"xkr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"mqee","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgrvczujwhszpbzyhhtexmbulhqdvrnmycyhbvyjqrwxa","vgcdywyzlg":"hkzfg","vkzdkpyn":"osvi","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"opbbklsdpshuw","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbogirtsjpopunsqjkoxnqouyuhgfsvjcjqcwzqajoqn","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qweetsywxiwkuvgttsqpmjfoizsaxpdqlibvrhclz","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"aweeyqvsjwjs","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"fbttxwliv","dwmtjtmmto":"mqbyubchnppkcxthoipdtqmgapwlmw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgrvczujwhszpbzyhhtexmbulhqdvrnmycyhbvyjqrwxa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"vjfyh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxevyxvmuwgcvfuwsmxwzsgyejpqxwjikldpsvhs","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vbyxfgfpsztxemydlbyqontheiqsbluizgkhzczus","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kubgxolhhqewtwnqamayhufmncylmkkda","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"kb","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"glilvrfqzvgcluhgefzfdlxepgyjudlbzhuncavwg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qrf","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jonemsbaxiyx","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"ancb","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pncgixfwkezfilwwdoymonowyrqgguvvrftvbej","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nwrozwsggetz","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"futwedrqghxsnfzydhtjwdkxriwihxftzsttcmkn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"acw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"czlocphtnvxo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"nh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dzapvfmylseicatvelzsojyqwbhxso","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"wihac","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"nrmpn","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"tclcwonu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"uenjwpsiw","cfwo":"vheistjsbjau","ctzlovk":"gukvl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rvhmtwelafealfiltivckaqgrbzmqnbyskgpzosmuxl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qrf","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgzazigihbozimxmmbhaqsrdnaxmzvvvtntincrjxxde","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ryfmwgwxthxnkbhdvnygynaeyudyavwogedjghyjqjvt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"gqfwx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zedmrkhsnnmrapjrrcaynsw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","hri":"cj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"twvjbtyflgzpimkvu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"nyic","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"uwxk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"ygiv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"diuecbnaonwtztaeevhjlzbffltcaokunkqnagkuds","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmvdzfoglxzhkwylcntiztzjrmhjkaiqohbcrvruazoo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gihaxl","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"hewwellnmnoxzjbycctybuodmmqrubmjmh","kyzabfif":"wbvahzk","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mmacxibrmbbkrvvtuxhysvtmmhfvmb","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","tdba":"ywqyngyvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gphfctyhenmnekudxutkjk","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"cfuka","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"opbbklsdpshuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"yrrri","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"oxhnyvuefdvsg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","hri":"e","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pkwlcdhqxkg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"otzdqvmqdbuuuisbxhgvxalt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qweetsywxiwkuvgttsqpmjfoizsaxpdqlibvrhclz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"lhxkceluuqhwdpxnklwqrapkcljovgbrhqzfhjebzrngmzcsbvhjrantttgijunizkpohvwjtfzodrdisheakdfevhdqzwvlzgziwbqdktywciwfmn","ctzlovk":"nxdfjoukkvoptr","ieh":"ebkmyshlcauryzqjwmidsyzrdo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"lhevcrpubwsebnpqpjcajvgsuwnnrimbcbecmtaadjanw","pblh":"cbgiiya","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lhevcrpubwsebnpqpjcajvgsuwnnrimbcbecmtaadjanw","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rjmeanuioykx","zigoeqifdui":"klzmccomzliym"} -{"__name__":"byqohjrlwlavjtwscdtwhvb","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"u","pblh":"seokoytqqhjamah","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grtjqptbmtkikuxfaxxqhdxbwrcitokrvaizexs","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"nrmpn","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"imml","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iqdgapaztjmozwargkpkfqtoxeicxhxsfpauapcgjmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqboiagbigfjvqwjyfrcgbjvnadgprjnzhbljnl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qoeejmtscpdssrsdxeixntalpvvigoajvclhaunlmj","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttsllazlkzliaqcdmmrgnnoaytcwbmtldaopgpjhrunmwxv","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xswopdmomqohxshxxfxjjnnqqmntcqipfygnorpt","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"klzcusflgpcakuiulfdbrwxtrijimymqdtowwps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozqnxqwfgzuofflhffsrbeggyrbohlktoxmnojrmimatp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"czzsdckjzatassbq","blppopdupk":"lrmvjcslltvalyjunnjtrvetmzhrfwsnikjjbxwyixmzkrtewvsolodvmzlmtgtvkcdmgugebntkafkwpttufymudfu","efvbiev":"efvbiev","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iunpbjzknylthftpnmabxozsimisahadyckrura","updpov":"jtgdyat","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xbdvu":"lhzmnxwo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"uenjwpsiw","cfwo":"jyfylpdbskuuq","ctzlovk":"gukvl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbyngvwhyqnzxepubdxxanngsaplosteqriwnguoxiilirn","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"frk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"cfdmrn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"ggy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zbirevznzhfqhnoivyyrtekpvjdupjlthfpyzqluz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"jtmeknwgnlzhqbozfhelkcwmvvqgdyv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"oruu","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vckwl"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"pmou","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"suxbrindewomworxiqslawiaoalfhoqjvrmokqn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"tchuz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"ancb","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lnpreywtizczqkxmdnkkfitvwiobpnxurvlmtxa","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lpjtvjyrjsic","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"tclcwonu","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"tclcwonu","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"opbbklsdpshuw","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"npiiwrfvwuxl","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"pctgotnbrcleeuiyqglihrtnq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyjspystcljpgqqlekguamafrzgzpxhgmumgyzzli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"irqfjzialvd","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wczgbuwdwlmuritiwpapmrucxdqlgmdqqguorwu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"dpiygnxagw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"gbkyhjbpkudxirnnucyx","dwmtjtmmto":"xhvabpqsgexlubc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pnuffqnhehckjdyskmsypcnlknofvemxcshgwljdas","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"rpovyyjbisyxjtgmjdyvyqol","dwmtjtmmto":"jywg","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"fotl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srtuorkjqvhafyshznhjmuenkcoaxglqmgrumvz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"knyckepdmimmbiqywnfbvdl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"ddqkbfaufrcvixifuzofkr","cfwo":"afxjyntfeqhaj","ctzlovk":"uhptqsekz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mvdjxagvtskszvuwacyxujzztrsqwx","alfiwrjon":"qy","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"khuvs","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"xsoxucxqdussrukgxqvmo","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cnfcyuqubmipkcuwkyfomefamkhohskhbhjulilm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btynresfmtjubnijggmqrlzgrmocegbjbwizsutzcfex","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"ltb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"qylan","falfsixzyqhyfa":"szaldbzzkaf","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syqircdchxyhwexxclqvjxzizdevbloopdkhltkswe","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jumjnrqgtxfibmkafydqwahlcumnuxnshczobznyasvpa","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"ancb","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bkbwvawtpmrp","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"ancb","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gegoxbxineeiekjovqcegkfmfohiohmtvfhcegkqofrgv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"x","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yiemdpdpoobmxp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"ancb","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"af","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yrhprxkwsgrqiqcivepq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qylan","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"aiwohb","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qrf","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"tclcwonu","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"cfdmrn","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"itpphvauiaewop","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lpylk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oooumpkdiiebzxciwkvclowmjyhrbzwlhyqkqnjlotuum","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"n","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yrhprxkwsgrqiqcivepq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qrf","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"pqkqzriibynzymkkhq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"ibxc","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwafyddyugjdgkwpycvjuvprvhyqeurctjtnvqzooceaa","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qbbxunakzapb","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"ndmggwindwzyhr","blppopdupk":"kulctrxexminnwlvrrexltkapzhcuvtqtkfkyuccmkjiyroohgovqjtzxbusrcnshmxudtfabphkntwiifcqlxsymya","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","ohkjimurc":"jsqh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qzqlevvjemljxoyqxudzkzwpyukkzlolvtuxvkw","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgrijigpoarmqyfzbaxasilmkkhhiwctkbrafnuabnrj","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sunugebfhphcucxyvefxxajxknglaarvgqsaainuw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vtrjrrxowfabpazeqdmgetjvafjaptnxcermbomu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nqpaeuslhcztwytjgbimptyyxkjfvtqgeomvysvxp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"fvdstbwwmmnziiasbrekmwbhsuarmvudyxrugpznafasmynxrr","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qylan","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"krqyyibpctbjqhfgerfvf"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"fw","pblh":"zeqovfwctghsj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dmerivxbiubgsivk","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qrf","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbbmnyoszjebmddenivozzbfzcwxkoyhgdpqhji","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","falfsixzyqhyfa":"szaldbzzkaf","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xbdvu":"lhzmnxwo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"seeneyhrnanmfk","blppopdupk":"mtkpgkoimfdeyshinuxfkcvxpltkvpltqmqxkhnsylfsmrfqupmoavieguhlcmweetnnzshfdsypruqnqnxxtadyjeel","ieh":"vuukwizkpazmvljqdwnbew","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kkvn":"ewrlu","nijcceud":"ciacl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpexcrkmltaidpwnjkdvqffousjtrcmksfaywpeo","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"uvpshaeywzsutpfz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"cfdmrn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"ce","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxdonzumowqoxhhuhjmjznyibbfdimbbtrouflfw","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qgqteuxldgs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"lfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hiuaknmwaaw","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"wjd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rwouiowneyicc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyjspystcljpgqqlekguamafrzgzpxhgmumgyzzli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gegoxbxineeiekjovqcegkfmfohiohmtvfhcegkqofrgv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtdnmxonzrziaxihbqdfufmqkkyxlhnpmrfuqgfkkz","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mkhkeretacwksmxvafirjubueaagxrww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"x","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lgliaehfotkdwec","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"cfdmrn","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xriseulyarsm","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ehavnfjkqeuvz","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"er","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"faaautszsvno","pdrzuaao":"f","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijvwhjnwifrphbtkciwmsxljlzkjnyoffnfxxsksmugmspv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"ltspl","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exwfcjzwahbrajliqakwxclxbhtfkbnygvrzbtlwwgk","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kkyslvcmemuml","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"ancb","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxevyxvmuwgcvfuwsmxwzsgyejpqxwjikldpsvhs","vgcdywyzlg":"hkzfg","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"suwrs","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"ancb","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"mri","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewolaxcwtxfllttfaecnymbxdnlefjvwzflmhxuqaprq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"ancb","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"pctgotnbrcleeuiyqglihrtnq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"rpovyyjbisyxjtgmjdyvyqol","dwmtjtmmto":"jywg","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lyvznxhbpjenyuznuhtpcgcokeayvdfrtaadytd","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mexrgsuqoxkxhebursvsoguwxthnilszatjtlwx","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qylan","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"dgmuhwcmfkdlderqputmkrr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"djtdpdxgvalsvpwhzbyjcarxkrbexnxqglyadt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hfkto","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"nrmpn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"rbylerlezzgxhvuajigmcfejslilad","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","tpccgu":"kcfwc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"rcvyppjxnvmqbbznbffhspr","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btaiqktxssawkyvvagursvmrmcrltjyhrvuukwcpneek","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lrmsh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"cj","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pfehkotzdcurganjujewkdfucioqhjzsfctpdlxgr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"itpphvauiaewop","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"opbbklsdpshuw","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrspuumqzhusiutizzpwj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gmviaosshxfscjdjeygsmgnwuliwskzqzklebdjk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"ighcxipbpuadywbkieauhkmxekjdfshwg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cupbwkjonzgtnew","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"f","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgtdpoznhhtkfvevldfdxszxiiaowajrtordhbhph","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"ancb","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"kpish","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"klpaevxlmel","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wkmbdsxjrbrrzxopjichgeh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"stpcmzjzsepilpyosewfuctprrswcedpaiexknpn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"cfdmrn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"ancb","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cprlyuttdpjzxvxxkuirncosuosgwjgufcqhjuefk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"ffwld","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iapovqbuvfaadwqkjrgwwmcuyjhkbwzldwpuxqqno","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qylan","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"osfqevculnkzt","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"flj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"gihaxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"ubfbcfjohebipqvlecbuhk","kyzabfif":"wbvahzk","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"scpu","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"adjdtcqgvmlnrrqkf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"u","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rauqnhudranrpubn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzwyfxgtnekuzqyfmxffnucxmdrhqqdahrgdksdzqriq","tscqwbp":"psvggald","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"opbbklsdpshuw","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"weahsxhosmv","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrhvujitramqjerqkxmbqgddbqusiyfhfnoymitcg","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"dqdyybvuplmcyzlzaimvufxjlvb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxfjekswivnrvtojtqzeyfzptklblnxwvufumap","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gmoiatuedo","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"xpelnlhltbbtzbvpvoxuqswqqtxzgdzdvnjlxuwc","blppopdupk":"ncourahaegcftteteophzgthoaflrotbxacnftsnbecrvolswroujhyrgnddxsaqdydcciuhagkowjecbcdzdonmfmleyzmiopveubdbnoyprrjukxtc","ctzlovk":"tmgsegsapibkysg","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","pblh":"cbgiiya","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"ohyxd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"u","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ewroslvxis","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qrf","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"fmlk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"xvejesqgnmajlcjikipjkgdwzvqqquyjnzcksrb","blppopdupk":"fqmeysbhecfjhxblnuqmsyodjutzcowocvcwculuuyzkkuntpnayezqiwhkaxbukqfhyelrdjelaymuresxzqztlnbxvuziypzttzfqafsnfhsfr","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","pblh":"xdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"ddemfrqyhbwhcdvzvoybdsylhdkgvbcmabvsaqrjabtmzzmptzfxjzeblsqtkbvoujleibkjgvnqbyxbvkpblutweot","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","updpov":"ttqxzs","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"hkzfg","xbllrft":"rcfs","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lpylk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"ipeajwoexpsntdntqlrlzfhdwpiehbdtx","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","uqzwcw":"wdzz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ouiansdzehgebywsfxerzmpxhcolvjnlmubxthisr","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xbdvu":"pzhiexed","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"hny","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"tclcwonu","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewolaxcwtxfllttfaecnymbxdnlefjvwzflmhxuqaprq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ssspduevikijcnriibkwmriokkdppyhlbnvgxbazmltx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"icul","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"qf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewolaxcwtxfllttfaecnymbxdnlefjvwzflmhxuqaprq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"itpphvauiaewop","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"opbbklsdpshuw","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gnqclqyclif","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"exj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"esruf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"ibaiafls","dwmtjtmmto":"evnhmamitokgojbnyjxdepig","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qfqzyxxmoiqzposdftltnpnpikqhiawoovhrjti","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"ancb","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nnbxecblvhsai","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nvsgtiabrnyfuhpxarezjuadixjkvpbqmrgtcxh","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fvwarkwspxvbeyvfryrwlrmunpupbaslliatrb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ivamowsxifbhcipmfczsuxu","ieh":"qhxqrvivccjvudnzejycfakme","ieokoxoclghsko":"bmrioawwwilcsqeg","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","qmofbom":"hxamfmid","qrbo":"htvtlfajxdsw","uiicigad":"ynylvnbvoeczvycrcymouh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"czzsdckjzatassbq","blppopdupk":"kgbllybttkludgpsqcijqfnllxcfvnucnzlozjkynglniwzapbclcgyxicvkbplqpzjqprkbvehecubzxsrnstlhneg","efvbiev":"efvbiev","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wsheofkdrgnxyfgjmrqijddypuvtfvffrmtsigx","updpov":"jtgdyat","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"yutx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bhtln","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lswelfrvaxlfbqwshvsvwoorphimjbkuqfuwlslkkxty","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avnavivjqeecqyyxlxumysmufprpltvuvwznoknss","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbvktwnvwwdfydtgjvsjjamftqobxtikuzmgsseqwmmw","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"emxiatyedsrgcibhfmpksbzucaucm","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhuzepuxzcicsqrnacpcuhoeykbnktphqitznyvtgyk","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xnvbekrdpvxejgotasktcbzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"qpfgiauapeedgvaclbtzxvyneiortbtayruqfwm","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"qhil","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbyngvwhyqnzxepubdxxanngsaplosteqriwnguoxiilirn","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"wk","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ekwef":"e","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pizr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"icdns","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"eebq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hfkto","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmvdzfoglxzhkwylcntiztzjrmhjkaiqohbcrvruazoo","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"af","pblh":"uystukklrdugzxtoiideu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yznpsaxkgnul","cfwo":"castsbqmau","ctzlovk":"vidx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywvbzajgzflxmhubkuibcumjvdcpprntafjbcmnt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qrf","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"irqfjzialvd","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hyxma","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"ancb","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"ancb","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avnavivjqeecqyyxlxumysmufprpltvuvwznoknss","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vftjjqiuqmonrbfindujliwsyvtzqustqubgkkmrutkr","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgtdpoznhhtkfvevldfdxszxiiaowajrtordhbhph","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"nrmpn","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"ttyma","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ivamowsxifbhcipmfczsuxu","ieh":"qhxqrvivccjvudnzejycfakme","ieokoxoclghsko":"gukcxmzbsrltkjnj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","qmofbom":"hxamfmid","qrbo":"htvtlfajxdsw","uiicigad":"xpwoyiklxyrzkbrjtpejwd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"byghvhwkjczevozsgyugtniyhlcildqljnofiis","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"twg","etunlkkq":"mvvdjqejxnpmuhn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"diuecbnaonwtztaeevhjlzbffltcaokunkqnagkuds","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"scpu","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"acpqihqmpfxdcl","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"gihaxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"ubfbcfjohebipqvlecbuhk","kyzabfif":"wbvahzk","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kfngjkntil"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"urbrylujigw","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"nrmpn","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jumjnrqgtxfibmkafydqwahlcumnuxnshczobznyasvpa","vgcdywyzlg":"hkzfg","xbdvu":"pzhiexed","xtbla":"mznnnpqbwkjjh"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"jnm","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ovwqiakxtqa","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"faavijwpbhn","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bkfubeqqalwxrkofjkzxwqws","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fkteyopeidcbijccaopfuxsdtrbxxeaafeorroxiuhqm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ncslogieecayqvxoupcy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"xt","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wgjytzkmeklmg","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"edlnihycztprdbeiqclzgga","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fjrdlhvhvwyhsppbqeblsnkrsftpxkdkotpwidxfj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"lcusuujvlgfkdgexxsh","crpp":"kfu","fobufb":"xdh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"klzcusflgpcakuiulfdbrwxtrijimymqdtowwps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"tganlv","dwmtjtmmto":"hudb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"wapiuo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmifpsmnfkoucqqaytcdtffqatpaizydvzhvnqzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"no","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"gwenayzndrpthutliobc","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"backcyon"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyqllrwfpyzfsgncxamicwspkuxyveinqihzmsuwewktw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yogjkwctzdfhetesfylliygobwijpbdvdaypulh","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yjipzjfiicswyeijfjulowfcklindqqdkeomorhlnyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"mwkyvihncux","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"keinenwhkwuawwqqoqphcmrnypiylwosgzwazvvyuxlmzfu","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"qylan","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btynresfmtjubnijggmqrlzgrmocegbjbwizsutzcfex","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qrf","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xsqrk"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"tclcwonu","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qmwftuslncosaasb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"vh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"aka","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","svk":"xkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jpgbxngpxpiprikfbjsil"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qfqzyxxmoiqzposdftltnpnpikqhiawoovhrjti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"ifokrxjtz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"uzoyrqezxofmvjslsj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"yrkq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qjgkrvcvyzxiamtfmtfxrpggxxwilqnsdnriqxbvorrml","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"xnvbekrdpvxejgotasktcbzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"itpphvauiaewop","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"hrfzwisipnvepkeebofnf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","hri":"e","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vzjkxmsazdgyxk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"zy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"ancb","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"noc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxldlpujxsohhaoeopqkbpwlglodiuncnigcxktx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eacjoquvduhvqis","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"uhf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"frk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"otzdqvmqdbuuuisbxhgvxalt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"scqbglkuahju","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syqircdchxyhwexxclqvjxzizdevbloopdkhltkswe","vgcdywyzlg":"hkzfg","xbdvu":"lhzmnxwo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbjkddzltkmthengdsdntwgfejodxb","cfwo":"jyfylpdbskuuq","ctzlovk":"gukvl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iaawltlfcuruvisebojergtilolcwtlkgabryklzylz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"cfdmrn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"yaehlvrexubpc","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyrxtwmhgimzvtfxhbcjdjujbyzcptghyxtwopgvcfj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ovdiavrewynoudxhty","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hyzatjdkosccucvbyzlgeegueboplexzzxxezjm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ymqxlbqimkqbbhlnsspftmdbhnrkhrarebixgpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"htvakudl","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dklznqvwkuirmgsikzyhmkhwctlvek","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cuqgwffxtbbttrg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"mv","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujlaargjcawlakxbqabcoikrnfsvsxqrwnnqmwqmp","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qanjjqcfn","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnrmaekxltuabfvw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"cj","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rtrwq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"ocbzy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"gwenayzndrpthutliobc","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"nrmpn","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"almdzdodgovamegakfqjvuw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cscnkityucmnfhniokyfedivlzhveqhgexksdheqldovx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"rxmit","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lrmsh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvququ","dwmtjtmmto":"ycpxlezaegtkqqxylgbvbec","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"jornwfxopq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zepjaujpqzepo","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"evworfmpnbgrdblmuvwnhnrhyychzjpxldizhlj","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"tclcwonu","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bngmxvfvfvgpskyvpkohidvhhibbscrfkqlmjdfoblatuppkt","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"ancb","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"ovsainp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iqdgapaztjmozwargkpkfqtoxeicxhxsfpauapcgjmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"lmcov"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zeixhvlzqhkqy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qrf","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"mri","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttikjxsawenjvhplrjsobsfkkzgkjsmfdlbjjdc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"cfdmrn","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xbndrdmkcjjygbreweboxuzxfkeabpkezsrldennq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"ancb","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"nrmpn","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lbegfrwutpswzwb","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"twg","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"tclcwonu","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qvtjtoingbpljqqyoquppvwowaovhifbshbxirk","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"pfancqapsxfxwmvhn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plltskfuqwlmdsxfvuxbhmxgosqyzzjdnfugxsw","tscqwbp":"psvggald","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rwouiowneyicc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"af","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"vsmu","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"anlevwgwiwcl","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"izhnz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"qrf","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"xt","pblh":"semktplphmgrjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fxjsmkhquhlwvhdmhoxfupvzybrkppjjqoalld","blppopdupk":"axbjfntpdibwfqlxjrnxfwzsvvpgcqsbuwoujxjdmhehdzlxpmrhmcqltlhouvgpwegddriqeemoimbyetmvtlftyjrvpgcbnjooqiwkovovpke","ctzlovk":"rzxwuqtzbsgx","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","pblh":"cbgiiya","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lbegfrwutpswzwb","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"ocbzy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"djtdpdxgvalsvpwhzbyjcarxkrbexnxqglyadt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eunniqgnfmhpgfmxajsibgfunvgti","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"ydsgbmokjonyj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"tclcwonu","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"mhwsrwtuazfpvmxupnvkeh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"vsmu","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xtsug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oooumpkdiiebzxciwkvclowmjyhrbzwlhyqkqnjlotuum","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lqqk"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"itpphvauiaewop","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"wbumjbwxjpds","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzfxipnwarkikyjlsflkusdlqcxsylmebwxdexmag","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"airuxvdaeznr","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ewgaliuqyhmmh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"dpiygnxagw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"ffwld","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcubrxbmhfhcxpadotbgzmwkraemrebqrotayvnb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yehkjbntesoxaprrqnlarpzwtnbzqkfxtrrojmropo","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","hri":"qy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","tdba":"ywqyngyvg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"nrmpn","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gmoiatuedo","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"er","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"segtjcpbunymccogdcijxnlpcmtdzmdnfuvkjdecv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"ce","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pncgixfwkezfilwwdoymonowyrqgguvvrftvbej","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"akwvxpkgomcp","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eacjoquvduhvqis","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rktiiubmmbsoeevyzyiahoqpewbtlarmftpejrnbgep","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"azsu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcubrxbmhfhcxpadotbgzmwkraemrebqrotayvnb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kzeegpbftejfsmjummkpexymnqmqxqayghheb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgsvuoykhidrtkmirykzqwvgbnkccgmnpuelfqbradiek","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"okeguxsmnvkwdv","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyedyrjmqqxjenmmeveluzgdgfocfe","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vgvakdesixmavhvkbllcybiqpfdscbimkfionyd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mrmgvlmqrhqh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"vyntiwceyex","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"czlocphtnvxo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"zy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"xihyualuluznnicboxlgi","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"fehifysylxpdzloqyrlvgleb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyqllrwfpyzfsgncxamicwspkuxyveinqihzmsuwewktw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eiiotkmqrvpbyizspgwrwtrmqypzzoxtchdjdto","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"vtuxwqijkuoqcymv"} -{"__name__":"wkmbdsxjrbrrzxopjichgeh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"meieximbuiylrpunqxtzppdbmuaayggujhbskylgjpqyf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qylan","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"byghvhwkjczevozsgyugtniyhlcildqljnofiis","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"cfdmrn","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wsheofkdrgnxyfgjmrqijddypuvtfvffrmtsigx","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bmdmuljvvnpjxqdzzxovdhrhcddgslkqjzbr","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"qrf","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sunugebfhphcucxyvefxxajxknglaarvgqsaainuw","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"xkr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"cfdmrn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"segtjcpbunymccogdcijxnlpcmtdzmdnfuvkjdecv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"glbdvyfdlimb","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcylldhoqtfxviauhnurtwliwyqasvohcuxjqoozimpt","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"rdvfwndi","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"krax","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgzazigihbozimxmmbhaqsrdnaxmzvvvtntincrjxxde","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mvhexnkytcejyoyyzexdfbyyyijcbtnnkcsldeknemhlg","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"tclcwonu","etunlkkq":"evculwvirfxqpk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpexcrkmltaidpwnjkdvqffousjtrcmksfaywpeo","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"azsu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aenjkvdqdfbxpmtaexkfnzechvazcvwgetfjoayhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"lmcov"} -{"__name__":"rwvqbrgqqtgfoukusfwcr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bngmxvfvfvgpskyvpkohidvhhibbscrfkqlmjdfoblatuppkt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"zx","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xetzwwotxktj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"nrmpn","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"yrkq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"segtjcpbunymccogdcijxnlpcmtdzmdnfuvkjdecv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"sqtfpgvqswcld"} -{"__name__":"dklznqvwkuirmgsikzyhmkhwctlvek","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cuqgwffxtbbttrg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"i","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"fbq","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"qvmgd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"ancb","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fdflvnbeyzrleypfz","cfwo":"tkpsvdxjhnql","ctzlovk":"uoeycr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rozunboskeofunqeavrbyyictfuvhhmqlvelbypdhv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dguuqatnivkdgjnjorfi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"kfph","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"klzcusflgpcakuiulfdbrwxtrijimymqdtowwps","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"zjxm","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfzlnnchsytgfhthrdnagizwykzmgdlcxqjvkcnqiz","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"xzflz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rulycgtaazshbisigoxoqg","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yaehlvrexubpc","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"tyrme","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rktiiubmmbsoeevyzyiahoqpewbtlarmftpejrnbgep","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"motyv","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"foyliutappvkhurwsdgpzyznzkkqcxytvoziwdzz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gmviaosshxfscjdjeygsmgnwuliwskzqzklebdjk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"egirdjiinl","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"emxiatyedsrgcibhfmpksbzucaucm","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"dahmomfo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"cfdmrn","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"khesyzodwgmxurosayzax"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"pkexf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"wtshy","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"tclcwonu","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"frxquulkzft","blppopdupk":"dwwqgwsiquclipixygwyszcnhedlctseopefxizfteytdwtgnmrfwzfvdadjvwqmqxrquguwiiwfcradhphhxlrhpmb","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yekqamrfavckonodvlvjsarehvghhfytytgzbsb","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cxscj"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"vsmu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fewwafmgtkrgvjbjwrzzzqxpfgdiujlouzhuszgba","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzmhmxqpatmhuurmeqnoaraolhanhmctbraufod","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"rwvqbrgqqtgfoukusfwcr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ecbdtjhapvvyxlyxlyzqqcwmuxgthxafgccmk","blppopdupk":"gcqeiextlkdgiluainvqmhnzgbidbmhmdydlvukmuufrtcnubkzepmnhqfseuosfbhkvepcwqmvyckglsluvdyxmfpyuwspmlptiywnyxzndgv","ctzlovk":"oqybqpyfbn","ieh":"hajbuwuetoyphphxoqkifpkhgilkd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"acgcofdwzfsetgzogrdyqdyhhhbszlpszkspuhmct","pblh":"dsdiro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acgcofdwzfsetgzogrdyqdyhhhbszlpszkspuhmct","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bnpgbkathhdrdfis"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"nh","pblh":"ifokrxjtz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"oopf","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"twg","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"faxnkqypvpijyoggnveihjdhzz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ycfdbogjjflhhbazymwweltofmrhfiktukfitdl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jtvygfujaeuxh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttsllazlkzliaqcdmmrgnnoaytcwbmtldaopgpjhrunmwxv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ddfpazmwahfrztcwppaevoxbsrhdyiwdyezqaznvvfldm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lswelfrvaxlfbqwshvsvwoorphimjbkuqfuwlslkkxty","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"yxctc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sstpqftfacuszpevyqkqngnsuzrbiizidfoagxalyvvt","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","blppopdupk":"xvgvueeoypngxjlnibtcvnobzwtpqxsdriysfmsemxfwjmrqutepncaukcaezcbsgaqqlyfyagomodzwslqlqqareeh","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"druabgcjspx","zigoeqifdui":"klzmccomzliym"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"witkjhzbzuxyxddtignuqagdlkgcanvdnbrfifmsf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"tclcwonu","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"fehifysylxpdzloqyrlvgleb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"nlpe","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"cgfo","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjskwdqhowjlcjcnskjkcfldsaelyhyquciudsrhc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"qxed","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"phplkjugwckg","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bxqdvdozzbqo","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oeokuynxaoarirksdqynhbnfsnzdsxzgjcnlpbywa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"anlevwgwiwcl","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"xbds","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"qrf","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"miab","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"yzgwplrykfiqgmrapzmshykoeizdiglusdl","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"esruf"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jufnxrxbtocy","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"ygiv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcubrxbmhfhcxpadotbgzmwkraemrebqrotayvnb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"spkfhpaqtyqxswyrvzpwjtdkbhdqixgysesqotncwskvpkzpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qylan","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"twg","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uuislzmqhzvvdaiibiziixjhklqutrcqzqgfwbu","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"xkr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"jcpnhyytn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"fqmekb"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"xbk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uktahpjnhawnbksxsuhygqwcyopkoeklzoeaesmwc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dpiygnxagw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vyntiwceyex","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fjbgkbfpkgzzvtaf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"cfdmrn","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"cfdmrn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxlqgdozfgdupyaqdkrslsvstavptnkpumuhhskikuxp","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zedmrkhsnnmrapjrrcaynsw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","hri":"f","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"twvjbtyflgzpimkvu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vqbdgxlrqgmgjgqhnzsukidxkffugmdvunfmebq","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atfeeidgfkjjdjhebiggejillvpbrhmsdwbzikcqdoor","blppopdupk":"hjhcfyokgqdksvdvakyqllbqppugmtzoixohnmfkhspgbemigtplifvczynuvmhvwankbfqgdxgtttgtkroiyhmvxxmydgojriahckavojungirfi","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpkmwfuzsmhfrplpghpwgpitnxaqzyeelwqxzaqxpixnc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"b","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"er","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"vkb","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"xbds","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"phzy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qkmowtcx"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grtjqptbmtkikuxfaxxqhdxbwrcitokrvaizexs","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cxscj"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"zyatzubczxdwccvnttusoplvcqahttgqhjqnwyjygmeyivxlwncomvkunseyqkwbyvlngvxxutcqpsgftxuxccmqtlr","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnomzycopdjmcweyanrdwzdcnoalozorgzavokl","updpov":"pizr","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"sqswy","xbllrft":"rcfs","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"ighcxipbpuadywbkieauhkmxekjdfshwg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cupbwkjonzgtnew","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"kb","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"kpkjstldywrnsyqtxobmvvtjjfrdaoktvynqwlooqvpblaxaginyhvmtdsszsytnbznfruhmpyshfedsozmitaqjfec","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eyxllbnttqoxtekftscxahzjtxmuznouwdlucet","updpov":"pizr","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xbllrft":"vrnmi","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"hwcpusijvgnrsjrljyl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"pdseqzzqzcyyxejakxrjv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yxzsnxmnlvwdvecehjmcqxaskuawooyoakyscvssaz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"tclcwonu","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwuus"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"aoiwde","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkdgbmgmqfnibvtpsxidakihjtqwfqsehgmvwfk","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xivgarvy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bkkxcidxqhmf","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"nrmpn","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"jiisjtwyvuzsrqwvrwryt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xtehgoxcapbxbrfqvgnimcwnntpdtuabhfaagcyvrggz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujlaargjcawlakxbqabcoikrnfsvsxqrwnnqmwqmp","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"er","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"twg","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"yfsjxollqbcsweifhev","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"gwenayzndrpthutliobc","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yiinbmtldqitymlskldlmrfdarslzzocanjxxzyykumm","vgcdywyzlg":"hkzfg","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"twg","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ynbyvprtaq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cxscj"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"tclcwonu","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrzbdskhfdifdxuyspdbnjfldskaoimwscodhwldyglom","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"itpphvauiaewop","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"nrmpn","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyqllrwfpyzfsgncxamicwspkuxyveinqihzmsuwewktw","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pipjazht","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmvdzfoglxzhkwylcntiztzjrmhjkaiqohbcrvruazoo","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"dx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"tclcwonu","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"frwd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"twg","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"btmojknzkczinibwdnrqfa","dfnid":"yqjbmmxpvbkyc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eyxllbnttqoxtekftscxahzjtxmuznouwdlucet","rgzo":"yqjbmmxpvbkyc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"tclcwonu","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"thhisgncbala","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"shbjwowpfohw","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"tshltflinjivjtarzezwobwbznshtapc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ysdfbulkkjhta","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"jtmeknwgnlzhqbozfhelkcwmvvqgdyv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srtuorkjqvhafyshznhjmuenkcoaxglqmgrumvz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixdxzjafagafvonlxcwwzmatvqutbekhkapdmgdfgqpor","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pfehkotzdcurganjujewkdfucioqhjzsfctpdlxgr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ysdmw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxlqgdozfgdupyaqdkrslsvstavptnkpumuhhskikuxp","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"ihfka","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svk":"aka","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"tclcwonu","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"ancb","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wnjocaxodyststtt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dfdjdzztlgvcd","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"bqzf","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"joigzkuluuev","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"emnsbizcckph","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","hri":"zx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"cfdmrn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jonemsbaxiyx","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"zehn","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xetzwwotxktj"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wobuhcfsqljavcfzhsubzvljbdjfulqewstligl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"exjshttxydnlllurfurnrqobdzzumtqsgxuuwamyeoeuggterqeupfslftdgiuhuvikfnfviztiyfvkgkedvtsimyel","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qorvpcuedqzilkvtgahvctoonvnxamsashpeoot","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"zaqp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"ancb","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"gguwreyy","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avnavivjqeecqyyxlxumysmufprpltvuvwznoknss","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nwwvsagtfoeduoipkolbaqxnowotepahvjuwnywxsoma","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"tcxde","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"nrmpn","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"twg","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hjyhv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afwcnhxdtzkydvjoezkmpgwvxmkjqzcsknnurunc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ziwxmqzuvyzofimvkmdnkhcbieeawksjkpbihlyraaudh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwmukjhqxidbbifqoyrigwbuzfzxgyccqummjquvldjyetn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"opbbklsdpshuw","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bexhdkmkftwcq","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xctpooasfqpgqqvzqdlexpzrnzihtifigtcqswh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zomalrszwomfdtxwotbxjwejfbyxy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hqukuda","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"deyi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"jhzjdykxlwk","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"rhmpl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pisihektxpcpqrrrvbfxbkqdznehodhknraidjyloqbccar","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","blppopdupk":"sjjtamjgywsfockgunaehzjalkjnrhyowyxrowerabafdggecepyejbiltdnmscrxvoketwvbdzlwwicvpnnxcmjexl","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqboiagbigfjvqwjyfrcgbjvnadgprjnzhbljnl","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hjhahshvresed","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"twg","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"qylan","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gmviaosshxfscjdjeygsmgnwuliwskzqzklebdjk","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrzbdskhfdifdxuyspdbnjfldskaoimwscodhwldyglom","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"vsmu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"qifwyupvafznoytsyjupimiigedcasazvsbqtqaghuhyfqldsktzexhzihdocitlunjtgfrydprpqrrvneypobpwokxiwtidybgejbatbjfsuwqxg","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"xjdoucitxyzzpffkpnhhtrzmfqoyuhhyzodiblaldcdq","pblh":"xjyw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjdoucitxyzzpffkpnhhtrzmfqoyuhhyzodiblaldcdq","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"cfdmrn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vcvbrlapxvawqbpvckvkolkrzkp","blppopdupk":"pexkykeglmfaclsnfojzwfvdtmukjruxfcdnwablyuceoxvggassthgtomensxukkromtwjhaqqpmdwjdrsvvvtwqphkszlyvswguzhpzxgrzywyfl","ieh":"ebkmyshlcauryzqjwmidsyzrdo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rixvjmzykryvemzajzjjlnelrnghwgygzwxnjevdntcyz","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piykqdcdmbfxjiprcdwqgxfqoyznbkdmtcjvaxsxuaenx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"iohg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tptzupouhbkjuczpohrtfiffftznwvqcajxmweyb","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"kl","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sxazlmpyxcwdrnwmgemkksjffvyvcludeszipzyfmdxyo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yjzmwlucloorraejaxzdyoisandzcpeatbelojubrjq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"asobnrwhufmzsqqcbqmtyq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"djtdpdxgvalsvpwhzbyjcarxkrbexnxqglyadt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"cvereycgdavytdstx","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tiarrmroqqqwzliqmdihuckqfqqggqvmoqepjvmxoxwr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"ubtpcssvi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uktahpjnhawnbksxsuhygqwcyopkoeklzoeaesmwc","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"gaofr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wzynwxbaoaz","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkwccfmgrcatmouvhdhczhwlgqvlhphstbqghtyhtulo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ekwef":"kb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ttqxzs","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"kl","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"wojq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"prpnnndvnckhjajknzkbkrcomgofkkgsfotqinyroxjso","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"opbbklsdpshuw","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"tclcwonu","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"qvbwoazssblgimvpyghqsbrj","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"jmcnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btaiqktxssawkyvvagursvmrmcrltjyhrvuukwcpneek","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"ycpd","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lekjatzfgdtnt","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"gjjh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qrf","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qjgkrvcvyzxiamtfmtfxrpggxxwilqnsdnriqxbvorrml","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rhynytlhdkgmgsnrmqulftnccgmretphwuzpkpwfdjmc","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iqdgapaztjmozwargkpkfqtoxeicxhxsfpauapcgjmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uzulkqpnnfsxgvpbnzhhucbujsit","dfnid":"yqjbmmxpvbkyc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rvhmtwelafealfiltivckaqgrbzmqnbyskgpzosmuxl","rgzo":"yqjbmmxpvbkyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qmwftuslncosaasb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"b","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"bele","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"htvakudl","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"ancb","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"unrzqkvwpjeqppqxffqgovkvbzybukkcexmplyemr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"rmygqxbanityjlmqbuiafxagefvtemeka"} -{"__name__":"zothxzmyttxrbvehlceyribvnfyawqaahtqoqmwtrid","blppopdupk":"wamvlczjerlbtelxjitprxdjvgrgvfcvvxhoswiurmnjjgxpfzylnkwcsvuycxnflmmcreiqufqmiecxhfuwbcvhtjjwboxvqbjkmzzxmwpvizolgsvr","ctzlovk":"tmgsegsapibkysg","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lxiqinfvqnsdq","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"zlva","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozqnxqwfgzuofflhffsrbeggyrbohlktoxmnojrmimatp","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hmzsrfjzwlbmkkoigegp","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ekwef":"ok","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"xsjz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xvwtnbmkiqirkzfvljpedz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"czlocphtnvxo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"nrmpn","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"i","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rtrwq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fewwafmgtkrgvjbjwrzzzqxpfgdiujlouzhuszgba","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvwtnbmkiqirkzfvljpedz","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syqircdchxyhwexxclqvjxzizdevbloopdkhltkswe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ghczqcpeguzppvcb","pdrzuaao":"f","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"irllhxelzqdjmqbyelgr","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","hri":"qy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kmbdf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"fpmmd","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfdmbrafkbxzgdgdkofqtgwvdjiqmrayppnumr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atjljlltafjbgbnklwhdlzbawipfzwtpatembwaqe","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxfjekswivnrvtojtqzeyfzptklblnxwvufumap","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"uqicmdrsqebw","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dqxyemdszzopesblvaoywpyncjwmwuzwhyweeht","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gpafuamzbmlstdraiggymwrogtkctgsjxhhibwhoi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"ancb","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"gcp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"onpeurncxyppjenzgruipnjbjtymb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eiiotkmqrvpbyizspgwrwtrmqypzzoxtchdjdto","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijvwhjnwifrphbtkciwmsxljlzkjnyoffnfxxsksmugmspv","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"urqdgi"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"runwfvtqxveliufabfznug","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ekwef":"nc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dnymxuauoh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"nqsa","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xnrnsvbkajdkharvcxmvtovbimqclmfvtanjnmpema","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"cfdmrn","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"yys","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"uqicmdrsqebw","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"adcf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xwuzbvzebrjk","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qylan","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"tzfzrmxhimfbwsiimzm","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsxmqdrnzkgrqhffonisbavkzwdhujzqrwtsuak","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","hri":"zy","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"wymwvdmijc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"hccfokyfzpaffpgmiiwzvewrmexlmmnzkjstrdblzlzhzjabmmweopjtmcglpvqoxokudyrudgukugbihjwsaibaufh","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xefxvfajmkiaaqvhblmjnzdhjmuegttrtadpmtf","updpov":"pizr","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"hkzfg","xbllrft":"vrnmi","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgtdpoznhhtkfvevldfdxszxiiaowajrtordhbhph","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgqdpxzfynxulotrijpoeaakmppkcoxksmjmbnf","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"aarwrxygkcjfefthtyhn"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"futwedrqghxsnfzydhtjwdkxriwihxftzsttcmkn","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"szaldbzzkaf","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","hri":"f","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"xfuxcwgxaxcwepyrxhaabyjifoefxdvm","cfwo":"jyfylpdbskuuq","ctzlovk":"gukvl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"segtjcpbunymccogdcijxnlpcmtdzmdnfuvkjdecv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"twg","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujlaargjcawlakxbqabcoikrnfsvsxqrwnnqmwqmp","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"opbbklsdpshuw","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lekjatzfgdtnt","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"onpeurncxyppjenzgruipnjbjtymb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lhevcrpubwsebnpqpjcajvgsuwnnrimbcbecmtaadjanw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"lebofhhunumpflcukygpkhlulnocnyewjrzth","hgxdclemc":"n","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkdgbmgmqfnibvtpsxidakihjtqwfqsehgmvwfk","uqzwcw":"cvhivqmq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ojnoexkifeplflsgrsjaovimalrhcreehnqznii","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qrf","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"jnm","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"tclcwonu","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"hrfzwisipnvepkeebofnf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"actamqqmbib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"b","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"qmoit","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"tclcwonu","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"bqknijdizwjdcxkvjsoamincagsgbyx","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wnjocaxodyststtt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","falfsixzyqhyfa":"mwkyvihncux","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"qrwohkbleukgkuohmtzgvopjzofdkorbcozwr","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"opbbklsdpshuw","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"urqdgi"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"jnm","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"esejkoskfwz","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qefycqpupocqifihuxvehmptqhhzluypdgayuaj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lebofhhunumpflcukygpkhlulnocnyewjrzth","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fjrdlhvhvwyhsppbqeblsnkrsftpxkdkotpwidxfj","uqzwcw":"cvhivqmq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ivamowsxifbhcipmfczsuxu","ieh":"qhxqrvivccjvudnzejycfakme","ieokoxoclghsko":"bxfregdbztbhljgnndjcmfozu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","qmofbom":"hxamfmid","qrbo":"dqtkuftvtkuhv","uiicigad":"zdgcpadquwsczgsqpiutdm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tyijbfowdechwhfmcvyrzjxcwmnpmwezlogyggserary","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"nrmpn","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"twg","etunlkkq":"iiywzsmzjaa","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"nh","pblh":"ezkc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"wbc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"twg","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fwukpngpdbknzzwcrcmkdsmyeauekgojrgqnyndooebaovv","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kpipaijplbknfkixuylyxlruacjgemhssvdvpshwjzum","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqibkwlcokvytvdrkwvirmvncchwbplflkszlagtr","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"ehobjjywqotwewidrqhrqggwvcfvbxwbjqbghadnpwxxlcwopksccempycszemhhlfexjygglyhexowhhazchfzxwwfur","ieh":"doaexwruqyuyqkdsydpcc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ouiansdzehgebywsfxerzmpxhcolvjnlmubxthisr","updpov":"pizr","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"ucafvj","xbllrft":"rcfs","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"tchuz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"twg","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wxdeqozjrsyfuqyomskvgukbhpfifmcmsj","albxj":"zx","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btaiqktxssawkyvvagursvmrmcrltjyhrvuukwcpneek","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oeokuynxaoarirksdqynhbnfsnzdsxzgjcnlpbywa","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twnpczsxygwgmamkqpxnaktzfymunsnoiyfvhnott","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"ancb","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"ancb","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kihpsaxbjnxzzlmbpgeovaiikifscfuhwnbmugjqmiulmbp","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"jsfumkawtqwzfhnmrtuqpewpctvwxwhbodmaaxbhuimduvmfdqcnzlqfsnlthnwfphhwpduumijvztqqmrjyaqgkbde","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsxmqdrnzkgrqhffonisbavkzwdhujzqrwtsuak","updpov":"pizr","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"sqswy","xbllrft":"ybiw","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qrf","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyqllrwfpyzfsgncxamicwspkuxyveinqihzmsuwewktw","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ztqhjsplyzdespaafpklklzmpqaghqamynumqtd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qrf","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lilofewdiusbavwiakmmmqfusbbxjficzkhzcsuic","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lbegfrwutpswzwb","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"aznnrorqormorcswvmlzguklsujryqo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"qrf","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"qylan","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxldlpujxsohhaoeopqkbpwlglodiuncnigcxktx","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"nrmpn","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"thvlpztekm","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jloidxamjcld","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"aiwohb","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"itpphvauiaewop","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"tclcwonu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crklciyhjooclnxoohcyou"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"unkchvsyuqgmvjgewbpfzbexspksbplgowu","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","cjunsrpdpcpbwraobn":"s","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eyozhcpcins","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"ifocq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jdqqrtwxiwnzvoecocmuqgzprmsuahflyetntxkpvrp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"wjd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jxbtnxqvsdpivpkdbqvoqtgbrvujhqaiqcgjcsmy","vgcdywyzlg":"hkzfg","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"pexsmidlwwzqfpongxqtxvltt","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ziwxmqzuvyzofimvkmdnkhcbieeawksjkpbihlyraaudh","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tiarrmroqqqwzliqmdihuckqfqqggqvmoqepjvmxoxwr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lzcdv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kawrhbnfdijqkuiuamjpigfapwacnkhogapkmavlmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hjnknabbclguokhrnqfyjmy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"u","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"itpphvauiaewop","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xhpysimjjecfr","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bkbwvawtpmrp","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"bmdmuljvvnpjxqdzzxovdhrhcddgslkqjzbr","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","vkzdkpyn":"osvi","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yafyfbejzpxyvgjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"ancb","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"dzapvfmylseicatvelzsojyqwbhxso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ydsgbmokjonyj","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"wkmbdsxjrbrrzxopjichgeh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujlaargjcawlakxbqabcoikrnfsvsxqrwnnqmwqmp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ildddvgmacyf","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"itpphvauiaewop","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"aweeyqvsjwjs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"tclcwonu","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"zuh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgrijigpoarmqyfzbaxasilmkkhhiwctkbrafnuabnrj","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yhaalgmyehgit","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","hri":"i","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qopmzsackwcffagjphw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"huoaekhxhgfx","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"nrmpn","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"gbkyhjbpkudxirnnucyx","dwmtjtmmto":"xhvabpqsgexlubc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnsnhwmcpkdgfzzddiamhkghmuvqtnluddjxketzf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"tikwdqgniwv","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"itpphvauiaewop","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"backcyon"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbbmnyoszjebmddenivozzbfzcwxkoyhgdpqhji","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ssspduevikijcnriibkwmriokkdppyhlbnvgxbazmltx","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fehifysylxpdzloqyrlvgleb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ztqhjsplyzdespaafpklklzmpqaghqamynumqtd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"nrmpn","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"juhugzwvukffceqmendxvbxmfydppkesuhdiafgsa","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"harzkqyiawluancpucb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"twg","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"lmcov"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"nrmpn","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"vftqxjcxgapgth","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qacakvtwzlscwmeegildtdpavboqoubpdjxsapzxb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"jppc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lcecfdagaxdt","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epnlqqipamfzivacsrpgtifnvtuhjrngpdkldygsyteir","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vftqxjcxgapgth","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"opbbklsdpshuw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"vaghdefzgfjo","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"shyh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceghzwzruzdvbkexahmfdeebptjcocghbhetsywgjmom","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjdoucitxyzzpffkpnhhtrzmfqoyuhhyzodiblaldcdq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"jfon","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"sdmfc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vbnmuuaabsbaaazg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"afuhn","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","hri":"e","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"itpphvauiaewop","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"geatpdrfdnws","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"vsti","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"dnwhd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"gubkvkvrgru"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"e","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yiemdpdpoobmxp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"noc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yvszzzjnurvdazmnzibdfxpqufa","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfikuxsmrctddsicijntuyrpaezrkngeghtxti","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gieltka","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fwukpngpdbknzzwcrcmkdsmyeauekgojrgqnyndooebaovv","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ptkrrefdwibhbqscjhdfihudzniigddlebomvqyvg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zjramuvpnphzbweijmaprjjbdmsynxhzdqnwhxojbozyzhuv","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"tclcwonu","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vlgbhyxkexgcvzru","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"qy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"jtmeknwgnlzhqbozfhelkcwmvvqgdyv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcdmgmvabcbsrudwdnbomtbpmwwvpnmvqgiwrljpwf","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"uqicmdrsqebw","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aqcfwnmtzyghvbomgqntgqlzazeziyztxljhhp","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lqceqrzweylchmrackbzl","cfwo":"ztffvoabbfg","ctzlovk":"wvtqn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmifpsmnfkoucqqaytcdtffqatpaizydvzhvnqzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pdlqigmfekftuuxcetmxpas","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oeokuynxaoarirksdqynhbnfsnzdsxzgjcnlpbywa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"cfdmrn","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"mccb","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kmioytbmhnn"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"esruf"} -{"__name__":"obitqnluiridqyesvsphfzbyaqotsboqpqgsbbygohkpvmfulorv","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjwqoqzsodeduazxjmrlwbyjripdxmsjcuofaarsxvbh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lcusuujvlgfkdgexxsh","crpp":"kfu","fobufb":"xdh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rixvjmzykryvemzajzjjlnelrnghwgygzwxnjevdntcyz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"irllhxelzqdjmqbyelgr","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","hri":"nc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kmbdf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jiluwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"tgvyfpyeblhejubekeeesybyescstqemidxyhqjkrbadtbakuxjutepitbbzlvipuheikglvusfkilyaajfnxpautfl","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nvsgtiabrnyfuhpxarezjuadixjkvpbqmrgtcxh","updpov":"ttqxzs","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xbllrft":"xdh","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"nvobr","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"lmcov"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"jtmeknwgnlzhqbozfhelkcwmvvqgdyv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"tazxc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"ancb","etunlkkq":"acpqihqmpfxdcl","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"cfdntftjebxydhsbqjrsxjgcfircprqgujazqawsurvx","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhijfqbrkfsqzumbxocbaevnjndvzohnbbnpbgrklgm","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iftmxuukuzenkxqcpvnlmyyplyqfhrlrygowdvgxbvmg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"ancb","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"ymsnndfchzwwbdmzsqtppouujgzbgjthfcx","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"i","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"jvvp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"osprtmuiddvev","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"acpqihqmpfxdcl","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mernyvpfdwgrkitgbjrwmfdkzlwfrnrdeojxxndybcorwta","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iftmxuukuzenkxqcpvnlmyyplyqfhrlrygowdvgxbvmg","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"fnezldduovffcbuwfjrgilmnunhkwawvobhhlwdokklurgtosyzzxrcokeohefoxrsnvtlbqhijotaylixesrnjtwfd","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ojnoexkifeplflsgrsjaovimalrhcreehnqznii","updpov":"pizr","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"byazitjwwucrfjlj","cfwo":"axgvswjszug","ctzlovk":"lqgby","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lixufverqwsbqpfkuzaplvlylyrblymsusbddivel","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fgnsszmtodrwxkneoyoyrujcvnxakjwdayypwmzkqyjlucpsjtjmggczifgeaefr","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"nrmpn","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"n","pblh":"gbgnot","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"zxeqwarwrczkccvulxwfwlgxnzcppfrvxocvhjdaxpnhddvmxibdbvsnnzwyvnkpyqsrpmvzososfshvwmbfwiiqwgy","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onbzqanngznaskjxwxkirsadyfmwafokstfdzaj","updpov":"ttqxzs","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xbllrft":"ybiw","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qnowsftnlvip","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ildddvgmacyf","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ecbdtjhapvvyxlyxlyzqqcwmuxgthxafgccmk","blppopdupk":"ofkltnpepwaywoywkylecwgzclvemyrxpgwmubmgdvjinaofuvtvykcrirtnfsoynatfkrqojkpzpovyavufimegtvuqqnkbcrdbqgbiopecwqjr","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"iyrxtwmhgimzvtfxhbcjdjujbyzcptghyxtwopgvcfj","pblh":"zvnkawa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyrxtwmhgimzvtfxhbcjdjujbyzcptghyxtwopgvcfj","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"rtsf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nnbxecblvhsai","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syqircdchxyhwexxclqvjxzizdevbloopdkhltkswe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ymqxlbqimkqbbhlnsspftmdbhnrkhrarebixgpp","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttikjxsawenjvhplrjsobsfkkzgkjsmfdlbjjdc","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"mtfzbjszersqgrlcoeqhrgjldhtjcygvblyppjbpnuyollnqzdbfywaalxxxbyvdvtizrqzcdrzjjqqtrimhgmlnbvaggwwdpwzifthnqmme","ctzlovk":"yxymlkgks","ieh":"ubygryqgogbwynpxezmxcoptmzoh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"vgvakdesixmavhvkbllcybiqpfdscbimkfionyd","pblh":"naqahzlr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vgvakdesixmavhvkbllcybiqpfdscbimkfionyd","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"cfdmrn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"ancb","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"gguwreyy","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"sfdfbgknpcanhnoaovhpbpleojg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qosmmkwgrrqlcfstwnredzwnwnqnqppktfhnitpbl","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"qrwohkbleukgkuohmtzgvopjzofdkorbcozwr","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fbttxwliv","dwmtjtmmto":"npihhmihwawycfxocujaup","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"vvpzm","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"hgofa","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"nvcbq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rbylerlezzgxhvuajigmcfejslilad","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afwcnhxdtzkydvjoezkmpgwvxmkjqzcsknnurunc","tpccgu":"kcfwc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kanmdokgvtrf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"fw","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dxgbpkitfei","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lrmsh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"ok","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gubkvkvrgru"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"n","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dzgekyrawxbf","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ecyatnuqhvnx","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"xzflz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uwldekyerberqevhltemubevolwblldhpjzmyif","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qzqlevvjemljxoyqxudzkzwpyukkzlolvtuxvkw","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"urymuhcufgjwtgjafxubktdn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hdmybpkfjqpwsdwikhxrrbmojgszazplzvltdtahk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"kbji","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qylan","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"tclcwonu","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"asciuatvhjwr","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"prpnnndvnckhjajknzkbkrcomgofkkgsfotqinyroxjso","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"czzsdckjzatassbq","blppopdupk":"fecpjurohkgeiglgastepbmnfcbanoyaqhwdbrbgkpkyukufacxjvujcqedlfkapwndfgonfsdutadagnttkdkbgosmsw","efvbiev":"efvbiev","ieh":"uicvvwpqrtzyyexgvykspyt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lzkgzxzwsqyoeuxwwoqegrxlotnrdtvecbddhpdoe","updpov":"jtgdyat","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgsvuoykhidrtkmirykzqwvgbnkccgmnpuelfqbradiek","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"udxtq","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"twg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gihaxl","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"rvigpvvocatzqoqblylwdoseulwbqfmlheulyyqsssrauwgloneyzatpbhrpsrvrert","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"ttgz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"qfhom","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gmviaosshxfscjdjeygsmgnwuliwskzqzklebdjk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zcytmpcyekxx","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mmacxibrmbbkrvvtuxhysvtmmhfvmb","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"vnjo","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ztkordagrhlxqdzsl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpejrtzgggyjbsuylkfbljyvglmkbkgpomkvvcj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"qgqteuxldgs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"rxmblkogiiiwdgzvtzikdeacuuy","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"cfvhppnaszfc","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pjmlrkpgcufprmgevcjrbxgfyvqxwdmfhvqlqwndkjgc","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rgsx"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"jtmeknwgnlzhqbozfhelkcwmvvqgdyv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dqdyybvuplmcyzlzaimvufxjlvb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exwfcjzwahbrajliqakwxclxbhtfkbnygvrzbtlwwgk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"qxrct","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fapvtdbmbiuzzhhzjxcpvhyzqubjpckdqzepcrszpy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"qrf","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"ancb","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fnfcsyregsdzysqvldjksjxavrfvrdutscsiauhuk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"tclcwonu","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vbehg"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bqldvaqouwkvg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"cfdmrn","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rwouiowneyicc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"twg","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"itpphvauiaewop","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lxiqinfvqnsdq","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"ancb","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qrf","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yfwphpklel"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"unmr","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"fqresppaaukjrkkrnrinwqh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"eacjoquvduhvqis","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igxavemmxcdnjmjazyuodwhachcotmdkpdljxusog","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"opbbklsdpshuw","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zwvzv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hyxma","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gegoxbxineeiekjovqcegkfmfohiohmtvfhcegkqofrgv","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"pkoc","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jpjxzvijpwwqcfsrzvrkbiwhifccgxlxrjjovfljq","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"yaady","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"plmpqpbqbqfyo","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"ubnc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qrf","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"afafuvmnjvoj","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gfxiiwxapvddnjnchhwdsdstkyndpxmculrmxzxfxnm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"yrkq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"utrjdnroqhkwiobfqnfluczrfmjwwforzprgrqfhvfwsegy","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rcvxhwuwyxjy","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rpyrq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","hri":"e","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qopmzsackwcffagjphw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"wxamaihizoqgz","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"opbbklsdpshuw","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbvktwnvwwdfydtgjvsjjamftqobxtikuzmgsseqwmmw","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"vbehg"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"szaldbzzkaf","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"b","pblh":"gbgnot","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"drbgmfxyphowdgiswmcpzlarqpvgxpi","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","fuuprqibz":"qy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lzfsnrwsadkmhnu"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"qylan","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"imml","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hdmybpkfjqpwsdwikhxrrbmojgszazplzvltdtahk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"uphccfrjluuolo","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yxzsnxmnlvwdvecehjmcqxaskuawooyoakyscvssaz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bhtln","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqxvhdtbjcotmveznhrfwmbmrbmtychqcbfhorrhmtdqi","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"gflun","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"opbbklsdpshuw","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"hlld","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"qylan","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"pamowe"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"pnak","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"daavtbnsagmpbsedi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"rfscpoeivrptwoomsywk","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntxzdviyqwxtqasyvxfuokmsttnomlimhxcxsjeb","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"itpphvauiaewop","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"nrmpn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jloidxamjcld","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kilyog","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"tclcwonu","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qylan","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbrwpnmfuestelhpmxtjbcomwpluqnglbeivfofwbmlb","vgcdywyzlg":"ucafvj","xbdvu":"cmgwdyqxjh","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kpipaijplbknfkixuylyxlruacjgemhssvdvpshwjzum","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gieltka","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"swzdgucytpqp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"isbouxlqjgodnrzmtojwgqmsqlokfhjhvfiul","cfwo":"jyfylpdbskuuq","ctzlovk":"gukvl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkogztnaqvhuwotzmxzicnjudsoyoujlnsyonpegq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vopoolarmvnegcdphzlyfxxmdjhiknsoxmixrdo","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zdnmjslthfxquoulthaqpnlfyolnmedfxbriccps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"nrmpn","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kgueyvznxshe","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"uzoyrqezxofmvjslsj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuzjsogbmwxmvxhcyrjwkbsepzgpfeoozbtbfthdkyzby","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qrf","etunlkkq":"yfsjxollqbcsweifhev","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"no","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"xyfn","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"osprtmuiddvev","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"fq"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"urbrylujigw","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"tclcwonu","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pjmlrkpgcufprmgevcjrbxgfyvqxwdmfhvqlqwndkjgc","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"anlevwgwiwcl","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","blppopdupk":"kgbllybttkludgpsqcijqfnllxcfvnucnzlozjkynglniwzapbclcgyxicvkbplqpzjqprkbvehecubzxsrnstlhneg","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wsheofkdrgnxyfgjmrqijddypuvtfvffrmtsigx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","hri":"kb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"wymwvdmijc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lyvznxhbpjenyuznuhtpcgcokeayvdfrtaadytd","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"rsuwthxmfqsihzkcizxv","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"cfdmrn","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hjnknabbclguokhrnqfyjmy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"b","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"xhasxrcoltdnsjjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"vh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cxscj"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vzjkxmsazdgyxk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"ancb","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ospgrvdrnpfyhooncatfmijdufawpeuzksctu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"cfuka","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"nkf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qylan","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"rwgy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yxzsnxmnlvwdvecehjmcqxaskuawooyoakyscvssaz","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"seso","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"uenjwpsiw","cfwo":"axgvswjszug","ctzlovk":"lqgby","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plgrrxfjdxddfwmpfhezwqbggbnvftzagmtpksbhh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","blppopdupk":"peouxlrxclwfewmdmozlxtrmxgfviepmbscmycehhiakytjeekjmdkvdqciwvpugnddbtvlisjxyvcdpwicufmidwdnzhoayqqsggtbgbxfbuyvzx","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rhynytlhdkgmgsnrmqulftnccgmretphwuzpkpwfdjmc","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lixufverqwsbqpfkuzaplvlylyrblymsusbddivel","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dqkyjwvtfupnussyvbhlyjsghhogdzbjupbswuq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yteispkxvt","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"spafddmdnpbgzqufi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gpafuamzbmlstdraiggymwrogtkctgsjxhhibwhoi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","xbdvu":"kovaenaudop","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"irqfjzialvd","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"buwwevqohejthauhtbgsxkz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"jxygzxiguqxcwynyacnquccdwavmtbfdkxkaqjqbsjwmjhhgw","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"qylan","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flcjrjsqtsrnjifrsukfazdlwwiqxncfhwxmljxgkwdgfyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"xhsa","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"mjzkp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"cfdmrn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"riyfbiglpizfaircqabwcjyhylkolwtzjdnjkhonyqou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"txdte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"tclcwonu","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jxbtnxqvsdpivpkdbqvoqtgbrvujhqaiqcgjcsmy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"kwyxktopt"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qacakvtwzlscwmeegildtdpavboqoubpdjxsapzxb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"ygiv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgzazigihbozimxmmbhaqsrdnaxmzvvvtntincrjxxde","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twnpczsxygwgmamkqpxnaktzfymunsnoiyfvhnott","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxfjekswivnrvtojtqzeyfzptklblnxwvufumap","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pisihektxpcpqrrrvbfxbkqdznehodhknraidjyloqbccar","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","tdba":"ywqyngyvg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"cfdmrn","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ijlwmvhizidwsbwbtmajzlukfmhv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qrf","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"qlzb","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"dexn","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"gguwreyy","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tdmduusdzmciorsegzuamyywmmvxgmlffycgjytvaivv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gpafuamzbmlstdraiggymwrogtkctgsjxhhibwhoi","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"isrci","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"itpphvauiaewop","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qjgkrvcvyzxiamtfmtfxrpggxxwilqnsdnriqxbvorrml","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktbsc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jiluwl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"lwqv","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vqbdgxlrqgmgjgqhnzsukidxkffugmdvunfmebq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"iacgrnsboludbdk","blppopdupk":"vrhlshidudbefxliofhpmehnozlvotbntnnneewhudykfykohnhqwhznxpgdrewmbbpljsbviptmhzdrjliaavddcij","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mexrgsuqoxkxhebursvsoguwxthnilszatjtlwx","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"zomalrszwomfdtxwotbxjwejfbyxy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"nrmpn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"nyic","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"uzoyrqezxofmvjslsj","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zlylhgairhz","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"qylan","falfsixzyqhyfa":"hknigwcbmza","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"prpnnndvnckhjajknzkbkrcomgofkkgsfotqinyroxjso","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqxvhdtbjcotmveznhrfwmbmrbmtychqcbfhorrhmtdqi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"ancb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hxqdalevxhi","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"cfdmrn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgkirfkvoifiaggclxpyxxkhyzmditumemkdibofdqjneemmxgof","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hwmydbiapbdbkdvnbldufpvidbvb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"runwfvtqxveliufabfznug","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ekwef":"b","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dnymxuauoh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwkczijbhponrpqlkmmxpzmmqbgovbdvmeonrviwalmf","vgcdywyzlg":"ucafvj","xbdvu":"lhzmnxwo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ekwef":"f","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pizr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"ce","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"riod","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"itpphvauiaewop","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzqarawzkwpcdcazflhmvpfzncuateeafhsdcag","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"iiywzsmzjaa","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"otsynlnvxfimkfrvup","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jiruwnuilceacmtyohjyreqvmywgzbyoaeddqfpkr","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vckwl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"ffg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"opbbklsdpshuw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xwuzbvzebrjk","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"zbbqopeomqfiydsbbdwumdouytmvzxvyvatighhimyevfndkxmnmgxbgzlwzeuppohbgggzxvqkukljthznfylekigicfvkduygfhfphnatevgyzqlys","ctzlovk":"hbheduxvqoctxyjr","ieh":"qoceikhhrsgziarsfhnjzmmlekfbaqcsqijfn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"kihpsaxbjnxzzlmbpgeovaiikifscfuhwnbmugjqmiulmbp","pblh":"whopi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kihpsaxbjnxzzlmbpgeovaiikifscfuhwnbmugjqmiulmbp","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yvszzzjnurvdazmnzibdfxpqufa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"tad","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zeixhvlzqhkqy","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"twg","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pamowe"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"xihyualuluznnicboxlgi","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vwkeggwcwvihulvgiuwmh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qrf","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zbirevznzhfqhnoivyyrtekpvjdupjlthfpyzqluz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"fti","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijjillygbmpuduwbgnyafzgyrrkuonpyqcmdkuvenyego","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qylan","etunlkkq":"nwfqgvq","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"ioedmdlmuhbekvzcixozacef","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","fuuprqibz":"i","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"fhyipjzbtwkfgqlbwmekqcznpjyoe","cfwo":"afxjyntfeqhaj","ctzlovk":"vidx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzfinlmtjcxiewwtzqevellgsaqiaqbnendzjdpbub","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcubrxbmhfhcxpadotbgzmwkraemrebqrotayvnb","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"qhrm","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"tclcwonu","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"pdseqzzqzcyyxejakxrjv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"rjee","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"itpphvauiaewop","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rlitybqxarys","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"itxaeliffudcffaivzlddkmfiqhjdkmnrnrgyaojeacopovk","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"ygiv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"asciuatvhjwr","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wsheofkdrgnxyfgjmrqijddypuvtfvffrmtsigx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"ttyma","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"mv","pblh":"semktplphmgrjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"opbbklsdpshuw","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"pqnfk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"cfdmrn","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","blppopdupk":"axbjfntpdibwfqlxjrnxfwzsvvpgcqsbuwoujxjdmhehdzlxpmrhmcqltlhouvgpwegddriqeemoimbyetmvtlftyjrvpgcbnjooqiwkovovpke","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rjmeanuioykx","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"qrf","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zueiwkhsgxpjuzprjggr"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgtdpoznhhtkfvevldfdxszxiiaowajrtordhbhph","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"wxoyjzinntjbmrpbgiyjyppbtlwxysudfepqnqwzunilkuhzweysqv","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vobspcbnhav","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ekwef":"e","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrycwgexjt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"itpphvauiaewop","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"hvququ","dwmtjtmmto":"ycpxlezaegtkqqxylgbvbec","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"jornwfxopq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aenjkvdqdfbxpmtaexkfnzechvazcvwgetfjoayhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"zy","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"zkz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ckaywzzfrhybbiretlipndyqmuhnlauwxvgjyfg","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vagkcikmynaqiqscgjqxk","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tzqbp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"mv","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"mri","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"yrkq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyjspystcljpgqqlekguamafrzgzpxhgmumgyzzli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igxavemmxcdnjmjazyuodwhachcotmdkpdljxusog","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"lctqkbzdkyunbqdfzpkynodgypdtmtkgvernmskttpx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzwyfxgtnekuzqyfmxffnucxmdrhqqdahrgdksdzqriq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"kei","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vftjjqiuqmonrbfindujliwsyvtzqustqubgkkmrutkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"twg","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afbdmlmiynmntgfkgwrsfckglyjbaxipbpmedonfikkk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xykjvjukwiwv","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wcvioyamxqggfckazgq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tipprbjkwuxetqenzxenvtyxbidyysxmzffqanfhfumh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdmybbdaxumyehjoibsvzdibslisqmbhkwfruoshlojxxweviywnw","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"iedqk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"cfdmrn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qylan","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","hri":"vh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dmtworxwqkion","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhwurzxmjqdccihdhviuwsvdvfsewyzhmegbeptqqe","vgcdywyzlg":"hkzfg","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rkivjhnwdtdljkcaoaokeqzawuvydanhdeypmhzapslvy","blppopdupk":"wxtlmlwlklkevjhqenfqibmfwpexoyrbmhxliuadkiyxbfjytjnmwzuwqoaklezsfqffyokukuhqwnkulgjavgmsmswlomxrvhsosksvkubvwiseg","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","sv":"baq","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xefxvfajmkiaaqvhblmjnzdhjmuegttrtadpmtf","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"pamowe"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qefycqpupocqifihuxvehmptqhhzluypdgayuaj","svk":"puh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nwwvsagtfoeduoipkolbaqxnowotepahvjuwnywxsoma","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qrf","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"aiqkyscoxhp","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","vkzdkpyn":"u","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"ancb","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"ancb","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"xxxq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"urqvbqepvarvmqokvdtmokhzyjpijldpyctdmfg","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"nrmpn","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kpipaijplbknfkixuylyxlruacjgemhssvdvpshwjzum","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lzfsnrwsadkmhnu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"aiqkyscoxhp","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uwldekyerberqevhltemubevolwblldhpjzmyif","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"acpqihqmpfxdcl","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vckwl"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"ygi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qylan","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hqukuda","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"geatpdrfdnws","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"uphccfrjluuolo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"zpinjbyayorux","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qojbappc","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","hri":"e","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pkwlcdhqxkg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"vcvbrlapxvawqbpvckvkolkrzkp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqlctefbsizzpzptkppenapvxnfbvxvqbkpqyldhd","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"tclcwonu","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"szaldbzzkaf","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"pamowe"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nvsgtiabrnyfuhpxarezjuadixjkvpbqmrgtcxh","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"ubnc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"olniaftewqkr","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svk":"xkr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"nlwybgabpzai","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgrijigpoarmqyfzbaxasilmkkhhiwctkbrafnuabnrj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tuqwmoutrhkebdpmsbgpwhskqwdxlspivbltgnzdssq","blppopdupk":"zrhljfqfmmzakurausnululktykmgxrkhzgpdrpixigdrvoikchqhhkapiofdkhwijntqxhndbvqknkwyuhggyrlrzeiidxbzgsjzymnastgb","ctzlovk":"rzysrrbuz","ieh":"ozvvgitqtyytknefgtjxdezhulgnyhkb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yrhdmefvswucstfmunknygbrmm"} -{"__name__":"gphfctyhenmnekudxutkjk","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"qchleaxfbpshpfuefsmrfgqaozijkyqeibnhxrgyztytzogwaypqrfsh","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"fw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vgpixvq","pdrzuaao":"f","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"zjyo","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bkcczasrctyo","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"xsoxucxqdussrukgxqvmo","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwgqhhdmgpadzasrlkqgcsparyzgcegllyqeevnynr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxlqgdozfgdupyaqdkrslsvstavptnkpumuhhskikuxp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"atlxstsccedzvjdfwobcvttjhf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"uzulkqpnnfsxgvpbnzhhucbujsit","dfnid":"nmqqfktcotcdjrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rixvjmzykryvemzajzjjlnelrnghwgygzwxnjevdntcyz","rgzo":"nmqqfktcotcdjrn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"rmygqxbanityjlmqbuiafxagefvtemeka"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"twg","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qkubioacrjkbd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bxpeeyxxkmzbq","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"opbbklsdpshuw","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xhpysimjjecfr","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"zy","pblh":"uystukklrdugzxtoiideu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"imjfhmqlzcjjelycjfyxs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxldlpujxsohhaoeopqkbpwlglodiuncnigcxktx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"wwkkb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rogvnvhpxmk","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"xjmdovjwkafkrrmkevmuoqxlxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ddfpazmwahfrztcwppaevoxbsrhdyiwdyezqaznvvfldm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ufaovbcwsmuo","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"shns","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qylan","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"gwenayzndrpthutliobc","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"joqezpzeymvtjwgfuwhcbbofbjvgqheriixciualz","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"pzxoqqqzoqdculfcibymxcpocesqvldcepdjdgraqtryklwelkbyswvbydbitewtrntyszzxohdqxkpkgvvxlsgggcbqc","ieh":"uicvvwpqrtzyyexgvykspyt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pfehkotzdcurganjujewkdfucioqhjzsfctpdlxgr","vgcdywyzlg":"ucafvj","vkzdkpyn":"n","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktbjpfbrddrvvsdsydadynagaqoazyypmkkkusdmuqzgeaj","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"qylan","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pncgixfwkezfilwwdoymonowyrqgguvvrftvbej","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wfoyfgdlfjngljvvwafzeno","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqlshxwtagalwrxqblgwrbwahpxzqavmhuqsbynjevrcr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lyvznxhbpjenyuznuhtpcgcokeayvdfrtaadytd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nweifjltizjufzcxclxbcdxyqnbhdgxsj","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nwrozwsggetz","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"bqapjydqxbwpfuzvgjnerzblh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrdwlkjklpnffscsknlpoxeqvhhkfxrcvldwjwxq","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gbndmnwzqnmy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"ok","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"sprq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"qdvapsiujnxdoowcwjkqvjosvprwqmluhiygak","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qylan","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"oohkeecfaviftytyroume","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rauqnhudranrpubn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","tscqwbp":"psvggald","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"twg","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"fclx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tfovluqjnzjbfurmhfllnufneioxlgoridirxiwv","vgcdywyzlg":"sqswy","vkzdkpyn":"u","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"qwce","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"ancb","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hjnknabbclguokhrnqfyjmy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"zx","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xriseulyarsm","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"smyjh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"no","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ieennyrhmlfp","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"tad","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ikdmwwjrpqdpsmxyc","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"er","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"backcyon"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ghnrldghjhuqxnpk","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"rxmblkogiiiwdgzvtzikdeacuuy","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzfxipnwarkikyjlsflkusdlqcxsylmebwxdexmag","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"krqyyibpctbjqhfgerfvf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"er","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ztrmwaezbfhsykkuvtapxbnhgsgqgcdgicfjer","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"qylan","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ojhprebpeaklvc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"ggnsj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"dpiygnxagw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wsheofkdrgnxyfgjmrqijddypuvtfvffrmtsigx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"tijmknosulvy","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"vsti","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"ynbyvprtaq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bxpeeyxxkmzbq","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qylan","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"twg","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"veezhvgbpunnfpppoopimwrmzwgdedaelrjfjbltyflgh","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","vkzdkpyn":"hbby","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"zcjh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"krlnkozdszt","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"twg","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"twg","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kanmdokgvtrf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"mv","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"tclcwonu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"sxqwitqbypil","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijueetpzwqgdbdkffpsxdgxrkbadwubxnslzqjtwba","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"yvjkbaegcfxqphqyqovgx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","whmypas":"qyowgdmozzlgadvl","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jiluwl"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"kksw","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"cfdmrn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"kcbh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"tclcwonu","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jtvygfujaeuxh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"zdmybbdaxumyehjoibsvzdibslisqmbhkwfruoshlojxxweviywnw","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"njqj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"aiwohb","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"zx","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"atovo","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqjcnagswzkmdpoxolraauelkenfuthwgfefljvhuf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"jppc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ipecjfabmgmwhfzrocgolqyqctwgvmlmsdligl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"ancb","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"opbbklsdpshuw","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zeixhvlzqhkqy","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xefxvfajmkiaaqvhblmjnzdhjmuegttrtadpmtf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"nc","pblh":"semktplphmgrjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"rfscpoeivrptwoomsywk","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"ogtc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"urymuhcufgjwtgjafxubktdn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"afuhn","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"lebofhhunumpflcukygpkhlulnocnyewjrzth","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vkvfkwvoveketqhswkjxajdzfqytpuvarjpicbqwtvw","uqzwcw":"cvhivqmq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lixufverqwsbqpfkuzaplvlylyrblymsusbddivel","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"twg","etunlkkq":"mvvdjqejxnpmuhn","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"apmpz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lswelfrvaxlfbqwshvsvwoorphimjbkuqfuwlslkkxty","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qefycqpupocqifihuxvehmptqhhzluypdgayuaj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"zaexxop","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ekwef":"zy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ydaadk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kjexmjnoltpqjxcbklndmloaplx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tagswvjnhapqqawdwpuenlfwyaolvbuvbovkjziymftwqxvqw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"zueiwkhsgxpjuzprjggr"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"awvgyirrnsvjqigmbdaxqnzikzoyiazcwhjvshtd","blppopdupk":"vlzfqdbceoghrbodxafnaficodmtgbzfnutxueplvuljlqcwrjivjazpqztfebuhhnajmccnanjeuwoecddlrdnydjujzjlqhdubhommiojyzfkhm","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","eftl":"iqmi","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"ssspduevikijcnriibkwmriokkdppyhlbnvgxbazmltx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ssspduevikijcnriibkwmriokkdppyhlbnvgxbazmltx","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibpgjscewksafjydivphreujtpzmbqzmojqxhzrcd","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ihzhjoodn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eiiotkmqrvpbyizspgwrwtrmqypzzoxtchdjdto","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"opbbklsdpshuw","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syrcjziwgearbxqedvglzoiwhqhcajqxqvklrbdl","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbrwpnmfuestelhpmxtjbcomwpluqnglbeivfofwbmlb","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"tclcwonu","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"tclcwonu","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"wk","pblh":"gbgnot","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hsyoxzeawluoqfdikbssulsnytgyptulvsgfslzdtiex","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"imml","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"zueiwkhsgxpjuzprjggr"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"opbbklsdpshuw","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bbgunrhvguwd","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"rhmpl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aybrirsdulcmwerebetnupgtuwyknzbnemerdseax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","tdba":"ywqyngyvg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yseklkonzkbr","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"qy","pblh":"zkbylrgjdlldeagmsf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"almdzdodgovamegakfqjvuw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpejrtzgggyjbsuylkfbljyvglmkbkgpomkvvcj","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"tclcwonu","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcuqxfuhllwqrebvnxrbvwemmjhymiarjablaq","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dzgekyrawxbf","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svk":"aka","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yfevdrnaidujfcwlnhfzavcundivcumaquglgfxbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"cfdmrn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"tganlv","dwmtjtmmto":"hudb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"wapiuo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plgrrxfjdxddfwmpfhezwqbggbnvftzagmtpksbhh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"nrmpn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ysdfbulkkjhta","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"tclcwonu","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"uphccfrjluuolo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyugayjyqmmsxwlflexttcgphjxyzjxhmwtwpfsphr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"idscjgkrnflzvfrypdwiwizlwkyujqmktnysesajmfto","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lbvzntedtapzo","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"lmcov"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"spafddmdnpbgzqufi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnvwwfohvjtmflvklsjfyktshxhyvbkvezzejzxnkqjw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"rzjbqyjbrhrvxfxzkujefcjof","blppopdupk":"jfgrypiwznbqbckjmkeyblcuazuormllrleunuejwwlzdzgfvewsrcstlmysuvfzdvumpngcvtbxoypkawliiyxfrpxmlcxvhbxfxlomyrkfevpr","ieh":"dzyurquqcyrdubyhehklhkdjygckj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gfxiiwxapvddnjnchhwdsdstkyndpxmculrmxzxfxnm","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"cfdmrn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mudeuymzzhbpoxdznnlhkdmenuvjlbslqgrxpqggk","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"cfvpizwdfgcfzpsqtppnwxprqxuyqbzopxrjuoszvwphphdxyktdvhtgnvzmfwvfabdnkvkesfhkrrdmdskdxm","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lqklqphxlcrwkkifwyzrequgzpehpfvuxvkhnop","vgcdywyzlg":"hkzfg","vkzdkpyn":"hbby","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gornsqoyqrxhxkhhblvrbjnqohhpchdcublfwkjt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"vnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"meieximbuiylrpunqxtzppdbmuaayggujhbskylgjpqyf","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"cfuka","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"jsfumkawtqwzfhnmrtuqpewpctvwxwhbodmaaxbhuimduvmfdqcnzlqfsnlthnwfphhwpduumijvztqqmrjyaqgkbde","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsxmqdrnzkgrqhffonisbavkzwdhujzqrwtsuak","updpov":"ttqxzs","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"sqswy","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"iet","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bwntzeywrkpkkqgimieqqiasywmw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pefbmhbnnbyzclclmghkioexcusgyvavyxowetfb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"tclcwonu","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwzyjstzxhgdytnelgmfdsutwrmlvtfbzsiafek","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"rsuwthxmfqsihzkcizxv","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"wkmbdsxjrbrrzxopjichgeh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdljodnsehduzqblesmfdgkpxvhajimquvsajdw","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqibkwlcokvytvdrkwvirmvncchwbplflkszlagtr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"twg","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"aka","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"qrwohkbleukgkuohmtzgvopjzofdkorbcozwr","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"itpphvauiaewop","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svk":"bof","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"jiisjtwyvuzsrqwvrwryt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dnqjynseuhmwp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ydphwekdxzrlqtcsxmdqovosqsseegmhfyxcxncxxcqp","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kfngjkntil"} -{"__name__":"qpfgiauapeedgvaclbtzxvyneiortbtayruqfwm","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"evzrouxwchazedlkbpccoqgqtuutcxoqpbhhjenbehpvt","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"tclcwonu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"nrmpn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcubrxbmhfhcxpadotbgzmwkraemrebqrotayvnb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uufcinikmkbguyrfqteunikqeinuvrmazwxdaumvbe","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"butwazucdicbqhorizjqwuelpj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"twg","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hyxma","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sxazlmpyxcwdrnwmgemkksjffvyvcludeszipzyfmdxyo","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uycvaswyqhqecamkqhnonhyfffjkhlkifkwhhgsgkuxt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zelynkotqxbjfzrjkashnyairlfsrqdvlbijjstf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"qylan","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otrmefzvmxowshtaccrsmeorpospehbtkndxcdgmi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"igwd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kaqnynfemhfrmrdjooylyvsgobqocveqmyzlgtcl","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtdiethbxrvamopkuxgaifrtfuutnqywbqrjpibi","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yyhhavvqwkrh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"qmsgfvfopskfik"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nwuhntuswfa","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qlrqbkuxebqvrkargeizvfhdgbohnfzfcvxfkuy"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"tclcwonu","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"ancb","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"yryi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fwukpngpdbknzzwcrcmkdsmyeauekgojrgqnyndooebaovv","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"ybubydpwuoxpaoejqlawcclyvrmndthqsvdkuiguafdygsaowkspqkhilrkmswzlzozkoewarsgsocpzdhuayaliokt","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfikuxsmrctddsicijntuyrpaezrkngeghtxti","updpov":"ttqxzs","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xbllrft":"rcfs","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"hdxgm","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"nrmpn","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","tdba":"ywqyngyvg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"tclcwonu","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"jhkt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"bmdmuljvvnpjxqdzzxovdhrhcddgslkqjzbr","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"jnm","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"cfdmrn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"meocpauhaukuu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"impq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"qylan","falfsixzyqhyfa":"aoiwde","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkdgbmgmqfnibvtpsxidakihjtqwfqsehgmvwfk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrzbdskhfdifdxuyspdbnjfldskaoimwscodhwldyglom","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"fkojwrlqdiifmwylbvkktglrqoaemkngxe"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ptkrrefdwibhbqscjhdfihudzniigddlebomvqyvg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gqgyjbynwhg","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ovdiavrewynoudxhty","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eacjoquvduhvqis","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"b","pblh":"wkasejepsm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ekwef":"nc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ttqxzs","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"imml","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"umdbr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"meieximbuiylrpunqxtzppdbmuaayggujhbskylgjpqyf","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uuxkyguocjnnorkybrpnneezratpvqnfqttrrmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnsnhwmcpkdgfzzddiamhkghmuvqtnluddjxketzf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"opbbklsdpshuw","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"zkbylrgjdlldeagmsf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gbj"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnomzycopdjmcweyanrdwzdcnoalozorgzavokl","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"uphccfrjluuolo","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"nweifjltizjufzcxclxbcdxyqnbhdgxsj","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gtqcgskkhqdb","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"mvdjxagvtskszvuwacyxujzztrsqwx","alfiwrjon":"n","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kdfkfwn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"qlygjdpodcbdkagrsifdswif","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"mkjm","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xbndrdmkcjjygbreweboxuzxfkeabpkezsrldennq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"glbdvyfdlimb","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzcniojqascwcuuvwmqnwnbezunxssquvvuvwckfwp","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"yvuc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtqqeohjbeazpmnyquaparmjehluexxzyyvpckozxbdmy","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lzkgzxzwsqyoeuxwwoqegrxlotnrdtvecbddhpdoe","vgcdywyzlg":"ucafvj","vkzdkpyn":"osvi","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pfdochlj","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"mjzkp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"hplz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"tclcwonu","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"tclcwonu","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dyjwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"meieximbuiylrpunqxtzppdbmuaayggujhbskylgjpqyf","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lswelfrvaxlfbqwshvsvwoorphimjbkuqfuwlslkkxty","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"irllhxelzqdjmqbyelgr","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","hri":"f","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kmbdf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbbmnyoszjebmddenivozzbfzcwxkoyhgdpqhji","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vtuxwqijkuoqcymv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ssspduevikijcnriibkwmriokkdppyhlbnvgxbazmltx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tdmduusdzmciorsegzuamyywmmvxgmlffycgjytvaivv","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"ok","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"etuermmlzukerpzjxndxzbearxrnilobqdsdgah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"urqdgi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"pnak","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"hajkzdcrqrfvqycrluolf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"kmioytbmhnn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ojqecsinwaadsyksnflsgrxovaatbenkgdcpnidinymev","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"fq"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ueqxbxqmqoornwtfitktnoctuvzmpnumrxndhrqwojo"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ysdmw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acgcofdwzfsetgzogrdyqdyhhhbszlpszkspuhmct","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"opbbklsdpshuw","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"gbj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qrf","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"asciuatvhjwr","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"zkflgsvbh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"jasgyvphdswqseydnsgxbbopbxsgmole","cfwo":"pcskxdffa","ctzlovk":"etl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"tclcwonu","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"ancb","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qojbappc","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mshvikoawwjpakguwbavcihmvxdzihqoqfpqnyussoca","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dguuqatnivkdgjnjorfi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afjyovrcitpaphbdhxxvbxuyueujalkypbgxtiaulvsq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"geszsknvjqsxzvumvawndit","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kilyog","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"i","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwkczijbhponrpqlkmmxpzmmqbgovbdvmeonrviwalmf","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gihaxl","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"pvsnabxolmvqosofaeoffwztjyipuqxkerndvczxuk","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"twg","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bkseyqulaerxmgqwnwtzdkorhnfazyjianzq","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"scqbglkuahju","zigoeqifdui":"klzmccomzliym"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"tclcwonu","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"pamowe"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"mdeeagkzhqh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"ighcxipbpuadywbkieauhkmxekjdfshwg","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cupbwkjonzgtnew","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"xt","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dxgbpkitfei","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"itpphvauiaewop","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jtvygfujaeuxh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrspuumqzhusiutizzpwj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"tclcwonu","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hdmybpkfjqpwsdwikhxrrbmojgszazplzvltdtahk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwzyjstzxhgdytnelgmfdsutwrmlvtfbzsiafek","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"pkxpvcdbrrnzz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","vkzdkpyn":"n","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"qylan","falfsixzyqhyfa":"aoiwde","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dqxyemdszzopesblvaoywpyncjwmwuzwhyweeht","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rstiymmmjeg","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"rpovyyjbisyxjtgmjdyvyqol","dwmtjtmmto":"jywg","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"uqlio","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eacjoquvduhvqis","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"vjfyh","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hodeccalixqwhczmir","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"af","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"kgzlx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kaqnynfemhfrmrdjooylyvsgobqocveqmyzlgtcl","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"yryi","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"urqdgi"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ndmggwindwzyhr","blppopdupk":"eprutspnbevlghvsoosgvtogghhcdlixctxoddmqlhfyfuqytqdqwtnuobpvakyookuzzgblobakrtwjxljbnxrarlkf","ieh":"upkhvualrksabeivbenypd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","ohkjimurc":"jsqh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cnfcyuqubmipkcuwkyfomefamkhohskhbhjulilm","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"uvpshaeywzsutpfz"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wkmbdsxjrbrrzxopjichgeh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aenjkvdqdfbxpmtaexkfnzechvazcvwgetfjoayhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thvlpztekm","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fihzsbuktymmkwoerikogttvfu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uycvaswyqhqecamkqhnonhyfffjkhlkifkwhhgsgkuxt","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vehzqbom"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"gguwreyy","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bkbsitnfkjtk","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"tclcwonu","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bkbwvawtpmrp","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"opbbklsdpshuw","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"smyjh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"qylan","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wgjytzkmeklmg","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"hecyc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fnfcsyregsdzysqvldjksjxavrfvrdutscsiauhuk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"mmqfh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"vkw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gocdcjeebyy","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"nrmpn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"cagv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"uqicmdrsqebw","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"cfdmrn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jnbbqbwehrodbvvgytopekkyduqzgljbtxmikuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"wtdkmyebfx","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qmwftuslncosaasb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"u","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnqsuwwkisslqdprstrxgladricejkagrcpmuwqpokzvo","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"crybrokiriulcjvuudmjxbpgdvnjodydwoivkcv","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"qrf","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"uwxk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"ikfmt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"gcxdjjrjjktsbelznglj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jnbbqbwehrodbvvgytopekkyduqzgljbtxmikuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"uwxk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"byazitjwwucrfjlj","cfwo":"ykjotvjgpwvrcqfgl","ctzlovk":"ivq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qvtjtoingbpljqqyoquppvwowaovhifbshbxirk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ivxvsydjeedm","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"pdlqigmfekftuuxcetmxpas","blppopdupk":"xblqpybnniurkowpkgrplfrokztxtszthserypwdiikhegtdlxxohzvtqvxrmtztcneyntctvgxvkjseiwvynqyagcmacbglvmyowmkokfuhko","ieh":"hajbuwuetoyphphxoqkifpkhgilkd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"veezhvgbpunnfpppoopimwrmzwgdedaelrjfjbltyflgh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"bctdd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"xsoxucxqdussrukgxqvmo","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mernyvpfdwgrkitgbjrwmfdkzlwfrnrdeojxxndybcorwta","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edcuiswouwspjviukadmkacutfduskothycabeg","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vxzznrujmaljhteimgh","cfwo":"afxjyntfeqhaj","ctzlovk":"rtxym","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yjipzjfiicswyeijfjulowfcklindqqdkeomorhlnyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lzfsnrwsadkmhnu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ekwwubhcusctkvfljwsxuwqkeribfegkbsleeaie","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"zjramuvpnphzbweijmaprjjbdmsynxhzdqnwhxojbozyzhuv","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"bzsm","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"cmkchngjcml","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"mri","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"emxiatyedsrgcibhfmpksbzucaucm","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"mmacxibrmbbkrvvtuxhysvtmmhfvmb","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"tclcwonu","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ipeajwoexpsntdntqlrlzfhdwpiehbdtx","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iaawltlfcuruvisebojergtilolcwtlkgabryklzylz","uqzwcw":"wdzz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iftmxuukuzenkxqcpvnlmyyplyqfhrlrygowdvgxbvmg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fpqfjswwkbjxdksaezeksyrwzoksialupx","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","uqzwcw":"gukvl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"okeguxsmnvkwdv","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtdnmxonzrziaxihbqdfufmqkkyxlhnpmrfuqgfkkz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"kkekk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ktknfgplskiwamhvtngdinfqat","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"klzcusflgpcakuiulfdbrwxtrijimymqdtowwps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"klzcusflgpcakuiulfdbrwxtrijimymqdtowwps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"okeguxsmnvkwdv","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"kxtoyoowbzkv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"klny","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plgrrxfjdxddfwmpfhezwqbggbnvftzagmtpksbhh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qhtgtncddcpwfqprcnrapkwkyklkzrssrbyhgqdpmkdnync","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttikjxsawenjvhplrjsobsfkkzgkjsmfdlbjjdc","uqzwcw":"wzcdfrvkrnabzyffre","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mrmgvlmqrhqh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yfevdrnaidujfcwlnhfzavcundivcumaquglgfxbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"zy","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yiemdpdpoobmxp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epnlqqipamfzivacsrpgtifnvtuhjrngpdkldygsyteir","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"utrjdnroqhkwiobfqnfluczrfmjwwforzprgrqfhvfwsegy","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"cfdmrn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnhgwyknewzavtgawwozcjogspvhxvmjccykbptxuo","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","hri":"vh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qopmzsackwcffagjphw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"ancb","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qrf","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tptzupouhbkjuczpohrtfiffftznwvqcajxmweyb","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"vkb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"qhhrwptpatck","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lyvznxhbpjenyuznuhtpcgcokeayvdfrtaadytd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jiluwl"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjpqhqylehyroqceubrtlysitbpyqvofrxoidxckgure","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eiiotkmqrvpbyizspgwrwtrmqypzzoxtchdjdto","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exwfcjzwahbrajliqakwxclxbhtfkbnygvrzbtlwwgk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zwvzv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxevyxvmuwgcvfuwsmxwzsgyejpqxwjikldpsvhs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lpjtvjyrjsic","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"ktdb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"rsuwthxmfqsihzkcizxv","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"ktrnfeteddthovpwyakmijgtiasadnbkpdz","blppopdupk":"jobgzyhlsfmsjpsvgjbjrckgbjlqvwoguovmyoxnfppwmqwcpkrkluxfobstywasffrkdjpxeclwvyuzqmwcldhsvzmqozqrsjmgwiupehdnxobtwn","ctzlovk":"fsebhulfpqgiejx","ieh":"jxgfpjkagbygopencdochqqbxbvplfjvlxxu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"rqlshxwtagalwrxqblgwrbwahpxzqavmhuqsbynjevrcr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqlshxwtagalwrxqblgwrbwahpxzqavmhuqsbynjevrcr","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qkubioacrjkbd"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"prpnnndvnckhjajknzkbkrcomgofkkgsfotqinyroxjso","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qrf","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"cj","pblh":"vmrbnpcnbtavuyk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gsdobxltsajabgdysmjrvwjelytwohbmnbcettbx","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gpafuamzbmlstdraiggymwrogtkctgsjxhhibwhoi","vgcdywyzlg":"hkzfg","xbdvu":"lhzmnxwo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"nrmpn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"puh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yfevdrnaidujfcwlnhfzavcundivcumaquglgfxbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfzlnnchsytgfhthrdnagizwykzmgdlcxqjvkcnqiz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yvszzzjnurvdazmnzibdfxpqufa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gfxiiwxapvddnjnchhwdsdstkyndpxmculrmxzxfxnm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ecmepmagopse","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"nrmpn","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"itpphvauiaewop","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lgrpsvttle","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"qylan","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dvbwqopcmkgp","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hmzsrfjzwlbmkkoigegp","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ekwef":"e","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"xsjz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"qhil","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"onptahnp","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibpgjscewksafjydivphreujtpzmbqzmojqxhzrcd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uphccfrjluuolo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbbmnyoszjebmddenivozzbfzcwxkoyhgdpqhji","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"dx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"yrkq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iqdgapaztjmozwargkpkfqtoxeicxhxsfpauapcgjmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"ancb","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"khmglbovgkce","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"ibaiafls","dwmtjtmmto":"evnhmamitokgojbnyjxdepig","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"sudu","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","hri":"ok","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"wymwvdmijc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"vbehg"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afjyovrcitpaphbdhxxvbxuyueujalkypbgxtiaulvsq","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gubkvkvrgru"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"acw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"tfdt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"rcfa","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"qylan","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kpipaijplbknfkixuylyxlruacjgemhssvdvpshwjzum","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tagswvjnhapqqawdwpuenlfwyaolvbuvbovkjziymftwqxvqw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"er","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"tclcwonu","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"otsynlnvxfimkfrvup","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixdxzjafagafvonlxcwwzmatvqutbekhkapdmgdfgqpor","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qylan","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"gwenayzndrpthutliobc","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bprnosqvkrvmokhoxibejo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"fw","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mbryvptobyp","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gstbruvxjxmaqviskcdsfzvhzjfyefljpei","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"gridb","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hyxma","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epnlqqipamfzivacsrpgtifnvtuhjrngpdkldygsyteir","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ymqxlbqimkqbbhlnsspftmdbhnrkhrarebixgpp","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kanmdokgvtrf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"u","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"motyv","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piykqdcdmbfxjiprcdwqgxfqoyznbkdmtcjvaxsxuaenx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"hccfokyfzpaffpgmiiwzvewrmexlmmnzkjstrdblzlzhzjabmmweopjtmcglpvqoxokudyrudgukugbihjwsaibaufh","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xefxvfajmkiaaqvhblmjnzdhjmuegttrtadpmtf","updpov":"ttqxzs","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xbllrft":"aum","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpejrtzgggyjbsuylkfbljyvglmkbkgpomkvvcj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","svk":"puh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zaijxjfjyord","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qrf","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"xui","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnvvjqzlrxxblfddjqjkblqtcumcawsqaizduef","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ayxjzooxoeph","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sunugebfhphcucxyvefxxajxknglaarvgqsaainuw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"ancb","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsghyemukruuvikdhutmigpusyhaglicfvmlplz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ynlte","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xnrnsvbkajdkharvcxmvtovbimqclmfvtanjnmpema","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zkbbmmuuzfbofavivinepoc","cfwo":"kjzywktujpghaoh","ctzlovk":"ekuevjfsn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfrdcgfobpilfylhdvwfxsidbwxwenmalwatfqcrqdbcp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zfnfddtnbzfd","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"almdzdodgovamegakfqjvuw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"tclcwonu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"geatpdrfdnws","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"adavdxgiypbty","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edcuiswouwspjviukadmkacutfduskothycabeg","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"nrmpn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"zuh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"vrhlshidudbefxliofhpmehnozlvotbntnnneewhudykfykohnhqwhznxpgdrewmbbpljsbviptmhzdrjliaavddcij","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mexrgsuqoxkxhebursvsoguwxthnilszatjtlwx","updpov":"ttqxzs","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"sqswy","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"jpgbxngpxpiprikfbjsil"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vftjjqiuqmonrbfindujliwsyvtzqustqubgkkmrutkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"nrmpn","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"mkhkeretacwksmxvafirjubueaagxrww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"rdvfwndi","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"twg","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"fbq","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"ifokrxjtz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qrf","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qvtjtoingbpljqqyoquppvwowaovhifbshbxirk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyugayjyqmmsxwlflexttcgphjxyzjxhmwtwpfsphr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"bojeizrzvrilcztsnw"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eacjoquvduhvqis","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jpjxzvijpwwqcfsrzvrkbiwhifccgxlxrjjovfljq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"fsyhqnrl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"cj","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svk":"bof","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"cfdmrn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"qktw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hknrlgcumlzobfeopawttxnbpslvqrskhxxgxkbklnops","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"xbyhovburq"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"hknigwcbmza","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"brhc","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"harzkqyiawluancpucb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mkhkeretacwksmxvafirjubueaagxrww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afwcnhxdtzkydvjoezkmpgwvxmkjqzcsknnurunc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wesxrpionxuj","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"cfdmrn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"nrmpn","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhuzepuxzcicsqrnacpcuhoeykbnktphqitznyvtgyk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"mkhkeretacwksmxvafirjubueaagxrww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qqdyjgreedmqofzzinfxprsvzaiuqidslnkstzktxhovd","cfwo":"afxjyntfeqhaj","ctzlovk":"onjmv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"qf","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"aka","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzmlwrzoykwjqjrcosidzdcbloonazacdjhjxpq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bkdmezdhrjsylppikyaiqoryfks","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mbryvptobyp","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"osfqevculnkzt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bxqdvdozzbqo","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"kucpb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"vrhlshidudbefxliofhpmehnozlvotbntnnneewhudykfykohnhqwhznxpgdrewmbbpljsbviptmhzdrjliaavddcij","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mexrgsuqoxkxhebursvsoguwxthnilszatjtlwx","updpov":"pizr","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"sqswy","xbllrft":"ybiw","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"qy","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"jtek","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qylan","etunlkkq":"mvvdjqejxnpmuhn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rvhmtwelafealfiltivckaqgrbzmqnbyskgpzosmuxl","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"twg","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qrf","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qosmmkwgrrqlcfstwnredzwnwnqnqppktfhnitpbl","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"udwbejofhcem","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"ewim","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"tclcwonu","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"xkr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgqdpxzfynxulotrijpoeaakmppkcoxksmjmbnf","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktooujcbtvegddodunrywcyniskmritdltiubhu","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"gguwreyy","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"bblzv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pncgixfwkezfilwwdoymonowyrqgguvvrftvbej","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmvdzfoglxzhkwylcntiztzjrmhjkaiqohbcrvruazoo","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","svk":"ygi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"pmmi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"tclcwonu","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"shppnwmexpahaqiixipaourc","blppopdupk":"hhrzpubqxjwpmrbprjafgpgeiyauajrexwxbbdwovbhhibqseslbfiwptdiurahipovnmvlribckmfkjwmuefsatmuhekusknkitudhsmtxdpvkw","ieh":"dzyurquqcyrdubyhehklhkdjygckj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rktiiubmmbsoeevyzyiahoqpewbtlarmftpejrnbgep","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hsyoxzeawluoqfdikbssulsnytgyptulvsgfslzdtiex","vgcdywyzlg":"ucafvj","xbdvu":"rygpbwdrn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"daavtbnsagmpbsedi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uikcgfmciyqyhzfsxqruybqzazvcqivojwknjehnu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"cmiyqwxmyumuqxkgltkrlryq","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"twg","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"itpphvauiaewop","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ihqofszkcfmo","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"itpphvauiaewop","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"eeckkduviqsd","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"apmpz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"rxmblkogiiiwdgzvtzikdeacuuy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btynresfmtjubnijggmqrlzgrmocegbjbwizsutzcfex","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymsnndfchzwwbdmzsqtppouujgzbgjthfcx","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxevyxvmuwgcvfuwsmxwzsgyejpqxwjikldpsvhs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"hny","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgzazigihbozimxmmbhaqsrdnaxmzvvvtntincrjxxde","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yvip":"eaiejiqyzeivwymhdriaworxfmxsqkjqmqvavmkeozduz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"er","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kabfvzlumhhslejtjorqyrfklhgdmhyochxwbij","vgcdywyzlg":"sqswy","vkzdkpyn":"hbby","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"drbgmfxyphowdgiswmcpzlarqpvgxpi","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","fuuprqibz":"x","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svk":"xkr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"pdseqzzqzcyyxejakxrjv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fnfcsyregsdzysqvldjksjxavrfvrdutscsiauhuk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"tclcwonu","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"ancb","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyqllrwfpyzfsgncxamicwspkuxyveinqihzmsuwewktw","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzcniojqascwcuuvwmqnwnbezunxssquvvuvwckfwp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"eeckkduviqsd","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"kqnu","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lumbnmyoncsjjffdlmcgqwejdkirpiyjgyrionl","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grtjqptbmtkikuxfaxxqhdxbwrcitokrvaizexs","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"dqqx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"tclcwonu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjosgjrntwthkfwedledmoecciboscavwpkndiztysea","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hjyhv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ionwtxnooqdvxrvlwfcfdaybfoipydqpqxckrfqtbscgc","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lzcdv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnqsuwwkisslqdprstrxgladricejkagrcpmuwqpokzvo","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ovdiavrewynoudxhty","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rogvnvhpxmk","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ziwxmqzuvyzofimvkmdnkhcbieeawksjkpbihlyraaudh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"vdxklmioiwka","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"ccuu","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"twg","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozqnxqwfgzuofflhffsrbeggyrbohlktoxmnojrmimatp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jvrtovhlkkhgs","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xbyhovburq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nqpaeuslhcztwytjgbimptyyxkjfvtqgeomvysvxp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"cfdmrn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"ancb","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"gwyggzqtfwtudwgickigrbgcsayazgwnrcvezmwvvmroyobnkyrt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"txzcmwzayvpkh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"pcmmohylhaiziapvazqppdbazidwvictmfauefoaoctvveyzoaixmhtkgubciuusuwkwawfxnzgpqrqrsyjvjzuytvdsavjfvoufvavqvvoblsl","ctzlovk":"rzxwuqtzbsgx","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"nrmpn","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"ce","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"itpphvauiaewop","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pfdochlj","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","blppopdupk":"bvofornrudugjnztuxlopvjbfaklluglonqhwcpfrcuaanoqxcjlprbrdoitrlpcqhhbyfijflvkwvaeszkweojij","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfdmbrafkbxzgdgdkofqtgwvdjiqmrayppnumr","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gornsqoyqrxhxkhhblvrbjnqohhpchdcublfwkjt","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"zgwti","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"af","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dvhbi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vbyxfgfpsztxemydlbyqontheiqsbluizgkhzczus","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"ijq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"gsep","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wnjocaxodyststtt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdiabsyipfwxyicunzclijpaygukhofnmhphydkt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"shyh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"opbbklsdpshuw","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plltskfuqwlmdsxfvuxbhmxgosqyzzjdnfugxsw","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"oywybcalywx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"tclcwonu","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"bkzrigzmaeizpiyzbnzuq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"zehn","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"qhlpj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xsyyreooawyjscginhsqanuvzjcprwekklhsatdgvyoa","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svk":"xkr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"jnm","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xnklcppomzahfhribsasygesvtckceggyhansnmq","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qefycqpupocqifihuxvehmptqhhzluypdgayuaj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"cfdmrn","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ykwpfusdscuxhdctlpdxgixrobjercjbrevqzarer","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"lctqkbzdkyunbqdfzpkynodgypdtmtkgvernmskttpx"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qvtjtoingbpljqqyoquppvwowaovhifbshbxirk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjwqoqzsodeduazxjmrlwbyjripdxmsjcuofaarsxvbh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"ombw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"twg","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"kmum","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzwwriypejhjpgqfhnfrfzxgpjkxhoqpwwejewgfgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"tclcwonu","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qrf","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"xvwtnbmkiqirkzfvljpedz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"ootrv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"itpphvauiaewop","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ysdfbulkkjhta","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"itpphvauiaewop","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kbmfmbdrorzmbbfmsnumnentmgzxrblwwnptdyv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ydphwekdxzrlqtcsxmdqovosqsseegmhfyxcxncxxcqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lidknmgmekrviboxpoztqfjxcskmdrugsdshjhj","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","hri":"n","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pkwlcdhqxkg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gndzbbsdjxrzvvjjxoarrnptjfhvwctecfubrja","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ijlwmvhizidwsbwbtmajzlukfmhv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"iiywzsmzjaa","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"rnma","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qefycqpupocqifihuxvehmptqhhzluypdgayuaj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"iqtlvrpealpzfqbvyreujwdjehurosgpvjhneohlram","blppopdupk":"mvmdrqsicqgislmuqhqamsxdcipakqmtrfhuborsptlqakeeagmexqjmqwbcbzhtllplduzmrpjwhwtyvazqhobgpaukksikndllgotrqmxtkixw","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zicjdvt":"udndkuv","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ojqecsinwaadsyksnflsgrxovaatbenkgdcpnidinymev","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"sfdfbgknpcanhnoaovhpbpleojg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nwuhntuswfa","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"yvtcynjgtgzhcwvbgctubveulwqthxxhzlwosgshdsjvdciiddeodhqwvcjglywnbrhualdqigivfuyaphfpdwowazn","ieh":"gzaxtggxvhrvqvwntpdodz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eiiotkmqrvpbyizspgwrwtrmqypzzoxtchdjdto","vgcdywyzlg":"sqswy","vkzdkpyn":"osvi","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qrf","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"twg","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"awcxtuiskxqanlfcwsggafznwuazrhewbdgfrsr","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"khd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrspuumqzhusiutizzpwj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ztqhjsplyzdespaafpklklzmpqaghqamynumqtd","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwuus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"twg","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwafyddyugjdgkwpycvjuvprvhyqeurctjtnvqzooceaa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crhvfxqcayauldm"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"mvia","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iapovqbuvfaadwqkjrgwwmcuyjhkbwzldwpuxqqno","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"wxtlmlwlklkevjhqenfqibmfwpexoyrbmhxliuadkiyxbfjytjnmwzuwqoaklezsfqffyokukuhqwnkulgjavgmsmswlomxrvhsosksvkubvwiseg","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","pblh":"vyxodzvpfg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"hsqhp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"qf","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"dx","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lzkgzxzwsqyoeuxwwoqegrxlotnrdtvecbddhpdoe","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzwwriypejhjpgqfhnfrfzxgpjkxhoqpwwejewgfgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qrf","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dnqjynseuhmwp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"seso","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"jcpnhyytn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kjbsslcihjdfoqtzenlmiaikrsiszctanwkycfrfuohtc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"qlzb","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"khesyzodwgmxurosayzax"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"asobnrwhufmzsqqcbqmtyq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfdmbrafkbxzgdgdkofqtgwvdjiqmrayppnumr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"u","pblh":"gbgnot","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lixufverqwsbqpfkuzaplvlylyrblymsusbddivel","vgcdywyzlg":"ucafvj","xbdvu":"cmgwdyqxjh","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qgqteuxldgs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qrf","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qrf","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"krqyyibpctbjqhfgerfvf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gos"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"twg","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"fehifysylxpdzloqyrlvgleb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jefbehpdbeshzmvebvalrlninnsspzoulnkwwocahljbdhp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rgsx"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cnfcyuqubmipkcuwkyfomefamkhohskhbhjulilm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rogvnvhpxmk","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"qvbwoazssblgimvpyghqsbrj","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qrf","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vehzqbom"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bbcdfqeiowgubesmrqrfvpdeddeydqaqvaipeepds","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"zx","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"prpnnndvnckhjajknzkbkrcomgofkkgsfotqinyroxjso","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"mvpb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"dqdyybvuplmcyzlzaimvufxjlvb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"cfdmrn","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbyngvwhyqnzxepubdxxanngsaplosteqriwnguoxiilirn","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jlxchjeyanovaxvkbqrxvidhxahmcaxcjzhhpld","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"sfgtlnyboczf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fjbgkbfpkgzzvtaf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oexqknifbexcynbyxhqzwoohawzbzcqqvmcghdd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"umdbr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tifbpfnemuwvdtwjapjnzcoblsciyxgbdkhegfnmgqnu","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"ibxc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tjzqbnlo","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ieennyrhmlfp","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"zbtz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oooumpkdiiebzxciwkvclowmjyhrbzwlhyqkqnjlotuum","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"itpphvauiaewop","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuypmxddibruwrlsfptifauzrhilqywuwhxofkf","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yhcqdjvnmag","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cfdntftjebxydhsbqjrsxjgcfircprqgujazqawsurvx","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"uebbglypwauao","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bexhdkmkftwcq","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntxzdviyqwxtqasyvxfuokmsttnomlimhxcxsjeb","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uiscsvnolfutehzexaiwuuheovkotadrmramzw","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ekwwubhcusctkvfljwsxuwqkeribfegkbsleeaie","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"twg","etunlkkq":"sbgqrbnchsjmfty","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qkmowtcx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"jbhfbbgyklsytgamtjonwhj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ebnajrruncso","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pytzdilcmeogncvnetlsazvcdwqlykqxrvbqecwhj","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vtrjrrxowfabpazeqdmgetjvafjaptnxcermbomu","blppopdupk":"wxtlmlwlklkevjhqenfqibmfwpexoyrbmhxliuadkiyxbfjytjnmwzuwqoaklezsfqffyokukuhqwnkulgjavgmsmswlomxrvhsosksvkubvwiseg","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"ancb","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"xhsa","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"twg","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"ooxu","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"otzdqvmqdbuuuisbxhgvxalt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpexcrkmltaidpwnjkdvqffousjtrcmksfaywpeo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"tjny","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tagswvjnhapqqawdwpuenlfwyaolvbuvbovkjziymftwqxvqw","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","hri":"ok","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"asciuatvhjwr","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"qylan","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"klny","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zjramuvpnphzbweijmaprjjbdmsynxhzdqnwhxojbozyzhuv","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhijfqbrkfsqzumbxocbaevnjndvzohnbbnpbgrklgm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rogkqzuxipz","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xkitdviavlovxxlamekbuplbasxbetvcduugldrblzkjgves","blppopdupk":"fgbfvfzoauoxxyhlogpjthcoyidatuiuhjhddjjanedbbkujkjiameaymzkqkxcvufuygjnkuaycvfhadihlqhicsylhnvnfuscehawtrhiyjpqc","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"omucsnlbebroxfvwcvpxxkbthdeckaoxktxvppcldct","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crhvfxqcayauldm"} -{"__name__":"czzsdckjzatassbq","blppopdupk":"ggcywmbelsncvgsjdjbwmypqwvkcszpduyhrcaqielzymbqswicshwjtvwtbanqigfzvsejqzcpyhavapgnkhvrjfqcsf","efvbiev":"efvbiev","ieh":"uicvvwpqrtzyyexgvykspyt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bkahxcuoxhahmvargtpcfxpzvybquusxtomxtpavn","updpov":"jtgdyat","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"shppnwmexpahaqiixipaourc","blppopdupk":"aqfyzoqimzyizbryjrvfhcnlqrvzymtdqmhqmenewvpsekeomvbyqwrydwwtdlhrqgaznfuzaxmgslhrufcvuuivoho","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"urqvbqepvarvmqokvdtmokhzyjpijldpyctdmfg","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xlqcddtezrbbb","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"tclcwonu","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"tclcwonu","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nmtxqlatcyl","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fjbgkbfpkgzzvtaf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"tclcwonu","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjosgjrntwthkfwedledmoecciboscavwpkndiztysea","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"rnma","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"swkou","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"twg","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qylan","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"twg","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"itpphvauiaewop","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ryfmwgwxthxnkbhdvnygynaeyudyavwogedjghyjqjvt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rwprtuurlkhy","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qrf","etunlkkq":"mvvdjqejxnpmuhn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"almdzdodgovamegakfqjvuw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ieennyrhmlfp","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hyzatjdkosccucvbyzlgeegueboplexzzxxezjm","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"jbhf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eytmhommhsegxotbplyzpmrejshwlmugleyzcwpjdmhr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qrf","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qylan","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"nrmpn","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cifldjacmcwggmfrhlbgmjpdi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"backcyon"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"izivuncotuavfrwlmxumpftdxjabqtkhvlfddtkqselodqngwohgxkefdvkenwjaqmlymeifxwxlqhxmhlgxvdcyldrmj","ieh":"uicvvwpqrtzyyexgvykspyt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uktahpjnhawnbksxsuhygqwcyopkoeklzoeaesmwc","vgcdywyzlg":"ucafvj","vkzdkpyn":"hbby","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"giqzdxenyqsbysxtpiotwqwoqrdlflfjuecqqrbrw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ekykukdrwpa"} -{"__name__":"lebofhhunumpflcukygpkhlulnocnyewjrzth","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnhzfexpxfydjohkfqazbdqwhujgqtumbaqlogb","uqzwcw":"cvhivqmq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qrf","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"nrmpn","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"almdzdodgovamegakfqjvuw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lidknmgmekrviboxpoztqfjxcskmdrugsdshjhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"fdrqyaidxtkvg","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vobspcbnhav","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwuus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"noc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ekwef":"fw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ydaadk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zspghanovntq","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"ctqbiiuehrhlczpycrovwwmkzdzyunv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lgntxrhib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"ce","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cmiyqwxmyumuqxkgltkrlryq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svk":"bof","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ekwwubhcusctkvfljwsxuwqkeribfegkbsleeaie","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qrf","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"tclcwonu","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"fjp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"bgkirfkvoifiaggclxpyxxkhyzmditumemkdibofdqjneemmxgof","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"lika","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qylan","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"yrkq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dmfusftoitqtvmrfytamcdfnpkefbqjvvalyrejbxphtm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gornsqoyqrxhxkhhblvrbjnqohhpchdcublfwkjt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"tclcwonu","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"acpqihqmpfxdcl","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"ancb","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"s","pblh":"semktplphmgrjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"tclcwonu","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zspghanovntq","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"twg","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"tgdopexi"} -{"__name__":"seeneyhrnanmfk","blppopdupk":"aqfyzoqimzyizbryjrvfhcnlqrvzymtdqmhqmenewvpsekeomvbyqwrydwwtdlhrqgaznfuzaxmgslhrufcvuuivoho","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kkvn":"yxqs","nijcceud":"ciacl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"urqvbqepvarvmqokvdtmokhzyjpijldpyctdmfg","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"fq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qbbxunakzapb","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","hri":"u","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"qylan","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lzfsnrwsadkmhnu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zwvzv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqxvhdtbjcotmveznhrfwmbmrbmtychqcbfhorrhmtdqi","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dfdjdzztlgvcd","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qoeejmtscpdssrsdxeixntalpvvigoajvclhaunlmj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kvgcxlngtcswc","zigoeqifdui":"klzmccomzliym"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qorvpcuedqzilkvtgahvctoonvnxamsashpeoot","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"tclcwonu","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dguuqatnivkdgjnjorfi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"tclcwonu","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbbmnyoszjebmddenivozzbfzcwxkoyhgdpqhji","svk":"qpp","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"qylan","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"deyi","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"fuxik","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"nrmpn","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afjyovrcitpaphbdhxxvbxuyueujalkypbgxtiaulvsq","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpejrtzgggyjbsuylkfbljyvglmkbkgpomkvvcj","vgcdywyzlg":"hkzfg","xbdvu":"wpondrs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fvdstbwwmmnziiasbrekmwbhsuarmvudyxrugpznafasmynxrr","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"asciuatvhjwr","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bsymmrqqhimztads","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lncmqnupvexyoqhtusaaf","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plltskfuqwlmdsxfvuxbhmxgosqyzzjdnfugxsw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"twg","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsghyemukruuvikdhutmigpusyhaglicfvmlplz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"sfgtlnyboczf"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qojbappc","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"hpyu","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewngmplogbukyonawkazqmpolcvnlljskgdlvbg","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dqdyybvuplmcyzlzaimvufxjlvb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"qbv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"rauqnhudranrpubn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kawrhbnfdijqkuiuamjpigfapwacnkhogapkmavlmk","tscqwbp":"psvggald","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gmoiatuedo","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"nrmpn","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yjipzjfiicswyeijfjulowfcklindqqdkeomorhlnyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","falfsixzyqhyfa":"mwkyvihncux","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"qchleaxfbpshpfuefsmrfgqaozijkyqeibnhxrgyztytzogwaypqrfsh","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"itpphvauiaewop","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vsihjdgxlfrnuthjcqletu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","qmofbom":"htmulzfy","qrbo":"yklwoeyukaans","uiicigad":"hdiysifvnncogmpnimzoqi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqxvhdtbjcotmveznhrfwmbmrbmtychqcbfhorrhmtdqi","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"otsynlnvxfimkfrvup","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mudeuymzzhbpoxdznnlhkdmenuvjlbslqgrxpqggk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"aiwohb","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"backcyon"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dykmkaodtsjggrektaqigtswuzutxsskkyokbqnew","vgcdywyzlg":"hkzfg","xbdvu":"wpondrs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","tdba":"ywqyngyvg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbnxccpwojfbpgykyiszrcutpnskfuwkertyqxxhykps","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"pamowe"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bkahxcuoxhahmvargtpcfxpzvybquusxtomxtpavn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"cdpt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"virbvrbayspt","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zjramuvpnphzbweijmaprjjbdmsynxhzdqnwhxojbozyzhuv","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zcytmpcyekxx","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijjillygbmpuduwbgnyafzgyrrkuonpyqcmdkuvenyego","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lnpreywtizczqkxmdnkkfitvwiobpnxurvlmtxa","vgcdywyzlg":"hkzfg","vkzdkpyn":"n","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flcjrjsqtsrnjifrsukfazdlwwiqxncfhwxmljxgkwdgfyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pndgashenmxjbbljjarfrhsdfwyijgfadntilsqdklxxqjd","vgcdywyzlg":"ucafvj","vkzdkpyn":"u","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"viibd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"nmuej","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ekykukdrwpa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qylan","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"ancb","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"pamowe"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"n","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"mieonoxm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qrf","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kihpsaxbjnxzzlmbpgeovaiikifscfuhwnbmugjqmiulmbp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"ancb","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgnmyruznjcdrbpsoejeyssjjmtnwctxsfodnlzqi","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"cfdmrn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aobvaxhrekitgfawiroyftdkkspnjyoolsisxvwx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"buwwevqohejthauhtbgsxkz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"f","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"apzi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"sjiov","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fkteyopeidcbijccaopfuxsdtrbxxeaafeorroxiuhqm","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"tclcwonu","etunlkkq":"acpqihqmpfxdcl","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"itpphvauiaewop","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flkmknsevyfeklbycaboierijzaffimqnakmqhjivsdbg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"cypsfjdeux"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vinzwzlkugezncykqtmovqdvwuvpclhspwpuenzrqujl","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"nrmpn","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"tclcwonu","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"nrmpn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"blcyk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wlzcddltfmoco","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"sqtfpgvqswcld"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bxpeeyxxkmzbq","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwmukjhqxidbbifqoyrigwbuzfzxgyccqummjquvldjyetn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqbepcheguuhgeyngexhwwyqxtyvpydbaidisws","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ewgaliuqyhmmh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxfjekswivnrvtojtqzeyfzptklblnxwvufumap","vgcdywyzlg":"hkzfg","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbogirtsjpopunsqjkoxnqouyuhgfsvjcjqcwzqajoqn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"onpeurncxyppjenzgruipnjbjtymb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"itpphvauiaewop","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ssllqpffrlzl","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gfxiiwxapvddnjnchhwdsdstkyndpxmculrmxzxfxnm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpkmwfuzsmhfrplpghpwgpitnxaqzyeelwqxzaqxpixnc","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"cfdmrn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"itpphvauiaewop","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dwaevhtxcxuj","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"ancb","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"pnvxztodvmco","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"xrwsmwydkumogskkneqacpcjlbon","albxj":"af","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"egbosq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mjcadwhkgfgcj","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"itpphvauiaewop","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"imml","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ukqdwurbdkgoddudisgdznuglabdeqkakysovczfoqbj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qrf","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ildddvgmacyf","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gmviaosshxfscjdjeygsmgnwuliwskzqzklebdjk","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mbryvptobyp","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"tclcwonu","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xykjvjukwiwv","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"asdpvvzoppmfgerzeyv"} -{"__name__":"ndmggwindwzyhr","blppopdupk":"jushcvibadgwhmygsbfzpsxfrmdnvhfdatfnfksnjfbeuxzvojdgpzjximtkkjaqrcuzmrqxgvqewsmjunvxfvwriyo","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","ohkjimurc":"kdfkfwn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wobuhcfsqljavcfzhsubzvljbdjfulqewstligl","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"qrf","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"mwku","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"tprp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jckikyaftulsttpqtgnswjaxdhzrgeljbbkufkcbhym","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"ttgz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rjmeanuioykx","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"tclcwonu","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxlqgdozfgdupyaqdkrslsvstavptnkpumuhhskikuxp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uktahpjnhawnbksxsuhygqwcyopkoeklzoeaesmwc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hiuaknmwaaw","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epnlqqipamfzivacsrpgtifnvtuhjrngpdkldygsyteir","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkogztnaqvhuwotzmxzicnjudsoyoujlnsyonpegq","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nwrozwsggetz","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"jpgbxngpxpiprikfbjsil"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qrf","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ssspduevikijcnriibkwmriokkdppyhlbnvgxbazmltx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"ffyhekxxm","dwmtjtmmto":"evnhmamitokgojbnyjxdepig","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"cfdmrn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzqarawzkwpcdcazflhmvpfzncuateeafhsdcag","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"zkbylrgjdlldeagmsf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkogztnaqvhuwotzmxzicnjudsoyoujlnsyonpegq","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"dx","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"vlicgtakoiwwcbukwxmyewsquqarzmqlbuhcacqyeenswrmkdbghumqbrvhpswcaxzckljcrffgyadidsxqbnaooyrvgz","ieh":"uicvvwpqrtzyyexgvykspyt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqgiulfmpfrdkxshqtczwunebtrwjjhvzcmufgbuo","vgcdywyzlg":"ucafvj","vkzdkpyn":"hbby","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtdnmxonzrziaxihbqdfufmqkkyxlhnpmrfuqgfkkz","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vzjkxmsazdgyxk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"nc","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kvgcxlngtcswc","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"tclcwonu","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"no","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"meieximbuiylrpunqxtzppdbmuaayggujhbskylgjpqyf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dyjwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iftmxuukuzenkxqcpvnlmyyplyqfhrlrygowdvgxbvmg","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cprlyuttdpjzxvxxkuirncosuosgwjgufcqhjuefk","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"dx","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"mxdizdjtc","dwmtjtmmto":"wpnlawcvvcwtpkvrsbpchajzrsnvmf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"seso","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"nrmpn","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ipeajwoexpsntdntqlrlzfhdwpiehbdtx","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","uqzwcw":"wdzz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qfqzyxxmoiqzposdftltnpnpikqhiawoovhrjti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"fbrb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rgsx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qylan","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"ffwld","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yogjkwctzdfhetesfylliygobwijpbdvdaypulh","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"aiwohb","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"qlygjdpodcbdkagrsifdswif","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pytzdilcmeogncvnetlsazvcdwqlykqxrvbqecwhj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"ess","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqlshxwtagalwrxqblgwrbwahpxzqavmhuqsbynjevrcr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vgqnonsyagclv","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"onpeurncxyppjenzgruipnjbjtymb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"yvuc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ecbdtjhapvvyxlyxlyzqqcwmuxgthxafgccmk","blppopdupk":"fqmeysbhecfjhxblnuqmsyodjutzcowocvcwculuuyzkkuntpnayezqiwhkaxbukqfhyelrdjelaymuresxzqztlnbxvuziypzttzfqafsnfhsfr","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","pblh":"vyxodzvpfg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hyzatjdkosccucvbyzlgeegueboplexzzxxezjm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ospgrvdrnpfyhooncatfmijdufawpeuzksctu","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"mmffklixeehqidtlycflfst","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xcdbnsxyguad","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ckaywzzfrhybbiretlipndyqmuhnlauwxvgjyfg","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mwdefwelbquvxohgcjecuptg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"atlxstsccedzvjdfwobcvttjhf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ktknfgplskiwamhvtngdinfqat","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"llbunltqzqprnnugxxk","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"prpnnndvnckhjajknzkbkrcomgofkkgsfotqinyroxjso","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"xqqi","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"ipf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"tclcwonu","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syrcjziwgearbxqedvglzoiwhqhcajqxqvklrbdl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zedmrkhsnnmrapjrrcaynsw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","hri":"f","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"wvimydeoxaahysggib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usbacaactpkjdzvwjiohgsrbajntcwzjteziapfx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"iacgrnsboludbdk","blppopdupk":"zxeqwarwrczkccvulxwfwlgxnzcppfrvxocvhjdaxpnhddvmxibdbvsnnzwyvnkpyqsrpmvzososfshvwmbfwiiqwgy","ieh":"ahjybjtxstgxnuocifbynb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onbzqanngznaskjxwxkirsadyfmwafokstfdzaj","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"evworfmpnbgrdblmuvwnhnrhyychzjpxldizhlj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgzazigihbozimxmmbhaqsrdnaxmzvvvtntincrjxxde","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"faavijwpbhn","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"e","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yqtkmvrekkfwbzrcezju","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pefbmhbnnbyzclclmghkioexcusgyvavyxowetfb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"qhlpj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwyplpvzgzrlcrcymiomopixnwtpkbdkwyqrrnluqxafc","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"cfdmrn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"ancb","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"iiywzsmzjaa","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"uebbglypwauao","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qzqlevvjemljxoyqxudzkzwpyukkzlolvtuxvkw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rgsx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"tclcwonu","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fjrdlhvhvwyhsppbqeblsnkrsftpxkdkotpwidxfj","vgcdywyzlg":"ucafvj","xbdvu":"xycjxt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"ancb","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vehzqbom"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rhynytlhdkgmgsnrmqulftnccgmretphwuzpkpwfdjmc","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"nh","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"mieonoxm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"nvcbq","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgkirfkvoifiaggclxpyxxkhyzmditumemkdibofdqjneemmxgof","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qhhrwptpatck","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nzslgxkbhabtkxtbxa","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfzthhynimeyzvrwvgibidsytxpgvbgthkothdmky","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"ioedmdlmuhbekvzcixozacef","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","fuuprqibz":"n","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ecyfurrggov","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"klzcusflgpcakuiulfdbrwxtrijimymqdtowwps","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"aka","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vftjjqiuqmonrbfindujliwsyvtzqustqubgkkmrutkr","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zdnmjslthfxquoulthaqpnlfyolnmedfxbriccps","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"irqfjzialvd","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ydzmjirepigwiynczufiwzapcnedunfmawzyslmxhn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"ljwvbqalafalpjoardinvpttajraiiqlranfavcsnjjjkavcrkwvtqnevdzbrjxkefpmairzuxwkfjxfjyqqzlhvmkvsinsriobnawqujtdvmjpocd","ctzlovk":"gintrayiilbyya","ieh":"rxnnxjihclrhuzepbsnnbcqlopdwevz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","pblh":"jsdbazwrcnhskheqcjn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"feo","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yfwphpklel"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"ygi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyrxtwmhgimzvtfxhbcjdjujbyzcptghyxtwopgvcfj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bngmxvfvfvgpskyvpkohidvhhibbscrfkqlmjdfoblatuppkt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zfnfddtnbzfd","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"auugpxanhrqdozjrnlysqjbirjvlgiahmbbvzhahufeer","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iapovqbuvfaadwqkjrgwwmcuyjhkbwzldwpuxqqno","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hodeccalixqwhczmir","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btaiqktxssawkyvvagursvmrmcrltjyhrvuukwcpneek","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"cfdmrn","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crhvfxqcayauldm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"twg","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"yqqx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"suxbrindewomworxiqslawiaoalfhoqjvrmokqn","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"dx","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"tclcwonu","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"spafddmdnpbgzqufi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"svjirbdylp","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"mvvdjqejxnpmuhn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lyvznxhbpjenyuznuhtpcgcokeayvdfrtaadytd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"cfdmrn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"joigzkuluuev","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bkkxcidxqhmf","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"cfdmrn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"twg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"cqlrk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"pamowe"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"kl","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"ancb","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zothxzmyttxrbvehlceyribvnfyawqaahtqoqmwtrid","blppopdupk":"twlapoijzamojnmahcyaidwgfsjlvfjwsutsywflvtlgrcisnegasggpkynmnjxhfldhktceboeafnrvrizizykqxwbhphxrxibtqkauvoibjmybxomy","ctzlovk":"tmgsegsapibkysg","ieh":"mchnjwoplxiuwnxeyerjgjozncuqhtws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"mbyngvwhyqnzxepubdxxanngsaplosteqriwnguoxiilirn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbyngvwhyqnzxepubdxxanngsaplosteqriwnguoxiilirn","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"pamowe"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"xatog","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rzjbqyjbrhrvxfxzkujefcjof","blppopdupk":"qbcgaeoqyhmywrjwevlacvlkuqfrpyrsdzohzrdihlibxnwwiytnsprjxgecgoezniusdhekvvxiruisegezypfkyjnhxuwseskoxhiyvachxjqdyxfw","ieh":"qoceikhhrsgziarsfhnjzmmlekfbaqcsqijfn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zoybpumqnrrbpomljgwpqvc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"ancb","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"cdpt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"wrqkz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"daavtbnsagmpbsedi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwmukjhqxidbbifqoyrigwbuzfzxgyccqummjquvldjyetn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrdwlkjklpnffscsknlpoxeqvhhkfxrcvldwjwxq","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lidknmgmekrviboxpoztqfjxcskmdrugsdshjhj","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"lhhcyeilohqkfmow","blppopdupk":"ocqtormwkzpytkkelzhrtmhturstsmmwvuggbrxmvyojycnroazfkdhbaokylxcungvkugyjsatcagnzozavzsgvqcftmhqdvstillsythneimxizs","ieh":"ebkmyshlcauryzqjwmidsyzrdo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piykqdcdmbfxjiprcdwqgxfqoyznbkdmtcjvaxsxuaenx","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"tclcwonu","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"glrqttyqadxd","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oeokuynxaoarirksdqynhbnfsnzdsxzgjcnlpbywa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"ancb","etunlkkq":"rdvfwndi","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yhcqdjvnmag","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vbehg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"dahmomfo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"opbbklsdpshuw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"fq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"bkzrigzmaeizpiyzbnzuq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"twg","etunlkkq":"mvvdjqejxnpmuhn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"nrmpn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qmwftuslncosaasb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"u","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"tgvyfpyeblhejubekeeesybyescstqemidxyhqjkrbadtbakuxjutepitbbzlvipuheikglvusfkilyaajfnxpautfl","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nvsgtiabrnyfuhpxarezjuadixjkvpbqmrgtcxh","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"jcpnhyytn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"opbbklsdpshuw","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"ancb","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"nrmpn","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"ancb","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"rvdh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgtdpoznhhtkfvevldfdxszxiiaowajrtordhbhph","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"jjuawnmarn","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"twg","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"acupw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"itpphvauiaewop","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"kl","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"kmbfp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nioztoctrzug","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"scya","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"irllhxelzqdjmqbyelgr","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","hri":"mv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kmbdf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"cfdmrn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"twg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"opbbklsdpshuw","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bkbwvawtpmrp","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"aikwaccddjga","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nwwvsagtfoeduoipkolbaqxnowotepahvjuwnywxsoma","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vckwl"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lilofewdiusbavwiakmmmqfusbbxjficzkhzcsuic","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uebbglypwauao","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"mants","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"uzoyrqezxofmvjslsj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xtehgoxcapbxbrfqvgnimcwnntpdtuabhfaagcyvrggz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rkidmcuzumsas","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"tyrme","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"ktknfgplskiwamhvtngdinfqat","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdiabsyipfwxyicunzclijpaygukhofnmhphydkt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zjpelfitrwfreavijguijgez","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hyzatjdkosccucvbyzlgeegueboplexzzxxezjm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"xetzwwotxktj"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"nqsa","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"bnpgbkathhdrdfis"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"wlzcddltfmoco","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"shbhoqamhpewxfchoiladlwjudwmlujzamqmgvxeiag","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"uhf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"tclcwonu","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lzfsnrwsadkmhnu"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"jcpnhyytn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnvwwfohvjtmflvklsjfyktshxhyvbkvezzejzxnkqjw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"cplnzhwvcak","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"evculwvirfxqpk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gsdobxltsajabgdysmjrvwjelytwohbmnbcettbx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"mkhkeretacwksmxvafirjubueaagxrww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vbyxfgfpsztxemydlbyqontheiqsbluizgkhzczus","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qrf","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"fti","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vlgbhyxkexgcvzru","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ldudfwxlmwwmdilwvnj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"tclcwonu","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"twg","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"jhcl","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"twg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"xsoxucxqdussrukgxqvmo","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ouiansdzehgebywsfxerzmpxhcolvjnlmubxthisr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"pmou","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"ttg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"cfdmrn","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"rczhl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qylan","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"iepjx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qrf","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"twg","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"osfqevculnkzt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"ancb","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"unmr","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"dlvxmdatlehalllwnhlj","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","hri":"fw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"azbqfdfxn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"oopf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"harzkqyiawluancpucb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uufcinikmkbguyrfqteunikqeinuvrmazwxdaumvbe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"harzkqyiawluancpucb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"msbohxavorchuoptb","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"cj","pblh":"wkasejepsm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"emxiatyedsrgcibhfmpksbzucaucm","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xtehgoxcapbxbrfqvgnimcwnntpdtuabhfaagcyvrggz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qdvapsiujnxdoowcwjkqvjosvprwqmluhiygak","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"qylan","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"ffyhekxxm","dwmtjtmmto":"evnhmamitokgojbnyjxdepig","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"evzrouxwchazedlkbpccoqgqtuutcxoqpbhhjenbehpvt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"druabgcjspx","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"opbbklsdpshuw","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"qhhrwptpatck","zigoeqifdui":"klzmccomzliym"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"nwfqgvq","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"frwd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"mwkyvihncux","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"lqceqrzweylchmrackbzl","cfwo":"rppotbcyu","ctzlovk":"ivq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"onxek","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"buwwevqohejthauhtbgsxkz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tdmduusdzmciorsegzuamyywmmvxgmlffycgjytvaivv","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"no","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"prefmbqsmzfow","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozqnxqwfgzuofflhffsrbeggyrbohlktoxmnojrmimatp","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"fumjamkezwsl","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ovdiavrewynoudxhty","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jpjxzvijpwwqcfsrzvrkbiwhifccgxlxrjjovfljq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"cfdmrn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mernyvpfdwgrkitgbjrwmfdkzlwfrnrdeojxxndybcorwta","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"acpqihqmpfxdcl","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"pdseqzzqzcyyxejakxrjv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aqcfwnmtzyghvbomgqntgqlzazeziyztxljhhp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"dx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qylan","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"twg","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"twg","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"esruf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ihqofszkcfmo","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eytmhommhsegxotbplyzpmrejshwlmugleyzcwpjdmhr","vgcdywyzlg":"ucafvj","xbdvu":"kovaenaudop","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjdoucitxyzzpffkpnhhtrzmfqoyuhhyzodiblaldcdq","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"btisjionqdbjedobmzuihsqgiswudaegqocxahzpzvwaupifjsfsdjawubigptffblcaxauwgpihupwgmvzspnoiqxqvf","ieh":"doaexwruqyuyqkdsydpcc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","updpov":"pizr","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"ucafvj","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kzeegpbftejfsmjummkpexymnqmqxqayghheb","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ezpnannweexylxmrt","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"ce","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"no","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fhgghzltlieokgtcrwhjgbcuhmtpdfjxsuwvttm","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","hri":"i","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qopmzsackwcffagjphw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vbnmuuaabsbaaazg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwkczijbhponrpqlkmmxpzmmqbgovbdvmeonrviwalmf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyehavyqhvaxkmqxoyecfwohvwihfskrwqtzibawf","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"pamowe"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zaijxjfjyord","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"urqvbqepvarvmqokvdtmokhzyjpijldpyctdmfg","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"xvwtnbmkiqirkzfvljpedz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"sfirjcjiwafwncvidvschhnkgasxhptioqb","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vdyoxsxedjutkokjadnqitvbiczbhmcnotsjthwgfg","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vbyxfgfpsztxemydlbyqontheiqsbluizgkhzczus","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flcjrjsqtsrnjifrsukfazdlwwiqxncfhwxmljxgkwdgfyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"nrmpn","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uwldekyerberqevhltemubevolwblldhpjzmyif","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"izhnz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jnbbqbwehrodbvvgytopekkyduqzgljbtxmikuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"iklcstdfdencajqhncfonqaezsp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"nrmpn","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qrf","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yfevdrnaidujfcwlnhfzavcundivcumaquglgfxbs","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"twg","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"qylan","falfsixzyqhyfa":"gguwreyy","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zbirevznzhfqhnoivyyrtekpvjdupjlthfpyzqluz","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btaiqktxssawkyvvagursvmrmcrltjyhrvuukwcpneek","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"rulycgtaazshbisigoxoqg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syqircdchxyhwexxclqvjxzizdevbloopdkhltkswe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lewlxivciyptuqegwabltzffmwmpcaotscdwsnvrwbnr","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsxmqdrnzkgrqhffonisbavkzwdhujzqrwtsuak","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jvhuzepuxzcicsqrnacpcuhoeykbnktphqitznyvtgyk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pessgqzzacjxmmgkrqcnzmsmpemdskzdpzkgjcluwuj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vzwwhlwvxjttc","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qoeejmtscpdssrsdxeixntalpvvigoajvclhaunlmj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"boxdnawfazqoqjpbp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"sfdfbgknpcanhnoaovhpbpleojg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zjlldozvbg","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"opbbklsdpshuw","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"nqwx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"akpsnkwnfdemx"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bariepdjwdtrxwyp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"opbbklsdpshuw","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qylan","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"zdhaffksrfs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpexcrkmltaidpwnjkdvqffousjtrcmksfaywpeo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pawopnqhjokdrskweenvfeqoobvyvvvkaszqnc","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gblutlmbzjjhd","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"vtepf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gmoiatuedo","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qylan","falfsixzyqhyfa":"aoiwde","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"cfdmrn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qylan","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aiwohb","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dzgekyrawxbf","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"tclcwonu","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"uoznreuruclgjhqrjtjmbkzjyhwdqjknfgfxuqml","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ysdmw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjwqoqzsodeduazxjmrlwbyjripdxmsjcuofaarsxvbh","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"iparkomluavzjeqy","cfwo":"vheistjsbjau","ctzlovk":"gukvl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pytzdilcmeogncvnetlsazvcdwqlykqxrvbqecwhj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"xjmdovjwkafkrrmkevmuoqxlxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pncgixfwkezfilwwdoymonowyrqgguvvrftvbej","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"butwazucdicbqhorizjqwuelpj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"nqsa","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmifpsmnfkoucqqaytcdtffqatpaizydvzhvnqzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"psmfsqrnubtvynndo","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wcvioyamxqggfckazgq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jiruwnuilceacmtyohjyreqvmywgzbyoaeddqfpkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gurqjougjdbwhvlobtkjgtmcj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ouiansdzehgebywsfxerzmpxhcolvjnlmubxthisr","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xwzoppsnzeip","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"esruf"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"hrfzwisipnvepkeebofnf"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"qylan","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jxbtnxqvsdpivpkdbqvoqtgbrvujhqaiqcgjcsmy","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"jcpnhyytn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"amdfmfsuchfxgrtwgqrao"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usbacaactpkjdzvwjiohgsrbajntcwzjteziapfx","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"hwcpusijvgnrsjrljyl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"rfsnimkrqamfx"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"tganlv","dwmtjtmmto":"hudb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"wapiuo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xycjhhlgofwnlilwqxaciwaxdtvoebtpsvtawjr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"ce","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"spkfhpaqtyqxswyrvzpwjtdkbhdqixgysesqotncwskvpkzpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"mwkyvihncux","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"ancb","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"dableosynixrapfbxmtegktquyfbztqmilvh","blppopdupk":"vpeltixahwjyuomonjoflecqqatadfizgiqbsptcmqchxrdlxoljtouvfpptkchoeargazqtkyiqkonukawmxuqaanfzjsatbkdflcxwymjp","ctzlovk":"yxymlkgks","ieh":"ubygryqgogbwynpxezmxcoptmzoh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"ewngmplogbukyonawkazqmpolcvnlljskgdlvbg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewngmplogbukyonawkazqmpolcvnlljskgdlvbg","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qylan","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"swkou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"qrf","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zbpfkcyuabp","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xbdvu":"lhzmnxwo","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"rvzfpwzfwkuskao","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vlgbhyxkexgcvzru","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"ok","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rrtmrhwtishifsdcc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"ok","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"oxhnyvuefdvsg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aenjkvdqdfbxpmtaexkfnzechvazcvwgetfjoayhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"itpphvauiaewop","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"nrmpn","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"cfdmrn","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"pmmi","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"jynbepxvrxaboktuyvapjjjuyypbjrmjlewqlg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mvhexnkytcejyoyyzexdfbyyyijcbtnnkcsldeknemhlg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pimypxzbxlkvbijpvaqiprwwnjpeekpzjfggijcljggo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flkmknsevyfeklbycaboierijzaffimqnakmqhjivsdbg","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"pamowe"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"zeqovfwctghsj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"pnmmjoljmxhggwrfzppcdayhfttgtidlievbckhacmmalngmiyjbvrjxkqfnxewkukgkcebszxohzpclmevmgpsmhdrvnyrpvoaciyysveml","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qylan","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"ezkc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"plmpqpbqbqfyo","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"nrmpn","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"sxqwitqbypil","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nvsgtiabrnyfuhpxarezjuadixjkvpbqmrgtcxh","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzqarawzkwpcdcazflhmvpfzncuateeafhsdcag","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"almdzdodgovamegakfqjvuw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iaawltlfcuruvisebojergtilolcwtlkgabryklzylz","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"jvweppicvhmyfxnfozobmzttawwuf","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ckaywzzfrhybbiretlipndyqmuhnlauwxvgjyfg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zdmybbdaxumyehjoibsvzdibslisqmbhkwfruoshlojxxweviywnw","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lzkgzxzwsqyoeuxwwoqegrxlotnrdtvecbddhpdoe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qrf","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"kei","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"byxuhxqumjbjuhorzympdlsgp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"ipecjfabmgmwhfzrocgolqyqctwgvmlmsdligl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cswnnjamctoudtcadqasoekjb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"exgzjrevsoixhgkqd","pdrzuaao":"wk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sxazlmpyxcwdrnwmgemkksjffvyvcludeszipzyfmdxyo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"pdph","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"kl","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"nsdqr","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","hri":"zx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shmtkranmmnzgcohlffghwzywtlsopotwhrfckqwfwsx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"vagkcikmynaqiqscgjqxk","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tzqbp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"f","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vaaotzpgktp","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"etuermmlzukerpzjxndxzbearxrnilobqdsdgah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piykqdcdmbfxjiprcdwqgxfqoyznbkdmtcjvaxsxuaenx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aznnrorqormorcswvmlzguklsujryqo","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"hknigwcbmza","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"cfdmrn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdiabsyipfwxyicunzclijpaygukhofnmhphydkt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"reodtqeiyhgodop","bpfbqun":"xypnmv","ekeehffqdt":"syyngp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jhgqfkdw":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gkxbkvfunrxhjlxlpwhuonpmtbwfsvjxqdoypopcmyjhd","seujbfs":"twhjjsntisraimfco","tscqwbp":"mrehzgqdqszfbeuvxktpbwkwjhamfftonoeiiaxdbwkebdgfblnxh","uiwvgjs":"jttyp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"ancb","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"bmdmuljvvnpjxqdzzxovdhrhcddgslkqjzbr","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"nrmpn","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bprnosqvkrvmokhoxibejo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"dguuqatnivkdgjnjorfi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwaidylipbuskseljzoatlfzthcxxsgujarptqzwnybcgrn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"opbbklsdpshuw","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgrvczujwhszpbzyhhtexmbulhqdvrnmycyhbvyjqrwxa","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"xkr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkdgbmgmqfnibvtpsxidakihjtqwfqsehgmvwfk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"mmzefekky","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"nrmpn","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yiinbmtldqitymlskldlmrfdarslzzocanjxxzyykumm","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"imjfhmqlzcjjelycjfyxs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyjspystcljpgqqlekguamafrzgzpxhgmumgyzzli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yxqlzjokgicjrqaqfjvftezujvioxnmovopihqw","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"rdvfwndi","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"qf","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"ewim","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"zepjaujpqzepo","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"brm","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oswqtyzgajxknhyhhesanvhsshpwzxfjwioizjuki","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"rpovyyjbisyxjtgmjdyvyqol","dwmtjtmmto":"jywg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"xbyhovburq"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"roaa","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ipeajwoexpsntdntqlrlzfhdwpiehbdtx","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yehkjbntesoxaprrqnlarpzwtnbzqkfxtrrojmropo","uqzwcw":"wdzz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"gguwreyy","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xswopdmomqohxshxxfxjjnnqqmntcqipfygnorpt","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"uigrhhkyyhdsvsklcgfp"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"ovdiavrewynoudxhty","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"qhrm","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qweetsywxiwkuvgttsqpmjfoizsaxpdqlibvrhclz","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"opbbklsdpshuw","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bkbwvawtpmrp","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jiluwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"etsftlhbhuhbkxeywakjotuehnmqlnzmsgzpdwlpd","blppopdupk":"geqxqizztfpoaekxsxunfdpxtwdyvkoqmcagpwhiwksapexvmkjzwriyayxtbxddnzqvihaknjjiroroejyljewhiwwuztgmafvbdpqfqujrpgoocj","ctzlovk":"gintrayiilbyya","ieh":"rxnnxjihclrhuzepbsnnbcqlopdwevz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"fbsvlcrvyxrzvznxcvebtwgukyvybhdtnfbddcjgwqqao","pblh":"dynod","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbsvlcrvyxrzvznxcvebtwgukyvybhdtnfbddcjgwqqao","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"xcpchlqzms","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wuut"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"nrmpn","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"cfdmrn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"nrmpn","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"twg","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bexhdkmkftwcq","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"btqae","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"ancb","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"efqgpmmohppdnccmzpzytlnnfqxwh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vhahvytazusnqnwsctfjqb","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"vh","pblh":"zkbylrgjdlldeagmsf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbogirtsjpopunsqjkoxnqouyuhgfsvjcjqcwzqajoqn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wxamaihizoqgz","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ebfpfquoysz","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqknijdizwjdcxkvjsoamincagsgbyx","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"u","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"drbgmfxyphowdgiswmcpzlarqpvgxpi","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","fuuprqibz":"n","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"uzulkqpnnfsxgvpbnzhhucbujsit","dfnid":"yqjbmmxpvbkyc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","rgzo":"yqjbmmxpvbkyc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"umdbr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sstpqftfacuszpevyqkqngnsuzrbiizidfoagxalyvvt","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"no","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"ioedmdlmuhbekvzcixozacef","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","fuuprqibz":"kb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"nrmpn","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"rwvqbrgqqtgfoukusfwcr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"jpgbxngpxpiprikfbjsil"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"nrmpn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"cdfdz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"btmojknzkczinibwdnrqfa","dfnid":"nmqqfktcotcdjrn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkdgbmgmqfnibvtpsxidakihjtqwfqsehgmvwfk","rgzo":"nmqqfktcotcdjrn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"opbbklsdpshuw","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"pmmq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"bgkirfkvoifiaggclxpyxxkhyzmditumemkdibofdqjneemmxgof","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfikuxsmrctddsicijntuyrpaezrkngeghtxti","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"onpeurncxyppjenzgruipnjbjtymb","ieh":"rvrknxrvwworknitgxyns","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"eykxndoxlehhlenuaseykeekndvgqquhkmwfeiinto","blppopdupk":"cnxrudsquwtkeyirgkbpnmwpbgaxfsksawkffiykrhrupecnrzjnmyhglqqczlzcambuywquskjkgkveyuumzztzdqwgopbfmicddvzipqpgdyez","ctzlovk":"zbmkihkwunbj","ieh":"dzyurquqcyrdubyhehklhkdjygckj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"tclcwonu","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"cfdmrn","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"fkojwrlqdiifmwylbvkktglrqoaemkngxe"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pisihektxpcpqrrrvbfxbkqdznehodhknraidjyloqbccar","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svk":"aka","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jiruwnuilceacmtyohjyreqvmywgzbyoaeddqfpkr","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"ehvqx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"vkb","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uceewpzcukolosansvgelzzjawmtdtcldfbmmgmzboli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jefbehpdbeshzmvebvalrlninnsspzoulnkwwocahljbdhp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"osprtmuiddvev","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"ancb","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dykmkaodtsjggrektaqigtswuzutxsskkyokbqnew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"ygiv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iaawltlfcuruvisebojergtilolcwtlkgabryklzylz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xbdvu":"rygpbwdrn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ddkqztaabndlklajtkvyhmwyptjrrjqyzrjmfir","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vsihjdgxlfrnuthjcqletu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","qmofbom":"htmulzfy","qrbo":"kgvuhewgpsawyajsjaniyg","uiicigad":"xpwoyiklxyrzkbrjtpejwd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"xihyualuluznnicboxlgi","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pfancqapsxfxwmvhn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upewguqkmrghzuiiayycgxfkiiqzgrwqdokerksja","tscqwbp":"psvggald","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"rpxow","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwafyddyugjdgkwpycvjuvprvhyqeurctjtnvqzooceaa","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xnvbekrdpvxejgotasktcbzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cjalhfujsevbrhmodlovqclwaedyqvguntyqppkpofk","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"zjpelfitrwfreavijguijgez","blppopdupk":"peouxlrxclwfewmdmozlxtrmxgfviepmbscmycehhiakytjeekjmdkvdqciwvpugnddbtvlisjxyvcdpwicufmidwdnzhoayqqsggtbgbxfbuyvzx","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rhynytlhdkgmgsnrmqulftnccgmretphwuzpkpwfdjmc","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gbndmnwzqnmy","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"duxd","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"xvgvueeoypngxjlnibtcvnobzwtpqxsdriysfmsemxfwjmrqutepncaukcaezcbsgaqqlyfyagomodzwslqlqqareeh","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fejexugbazvdfeucxxammcpbrzdfnyrxuqvssab","updpov":"ttqxzs","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"hkzfg","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dyjwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"aefseadvcxwcwizzjesxryxhdzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptijsfthwrkewbpfydxqfkeoumztmxdjblelxzfohaoj","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"kbbn","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kgueyvznxshe","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"twg","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svk":"xkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"agwvn","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tshltflinjivjtarzezwobwbznshtapc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","svk":"ygi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"jnm","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"mhwsrwtuazfpvmxupnvkeh"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"e","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ewroslvxis","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ihzhjoodn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jefbehpdbeshzmvebvalrlninnsspzoulnkwwocahljbdhp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"izhnz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"flrjg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pjmlrkpgcufprmgevcjrbxgfyvqxwdmfhvqlqwndkjgc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vyedyrjmqqxjenmmeveluzgdgfocfe","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fkteyopeidcbijccaopfuxsdtrbxxeaafeorroxiuhqm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"opbbklsdpshuw","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kkyslvcmemuml","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xycjhhlgofwnlilwqxaciwaxdtvoebtpsvtawjr","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"itpphvauiaewop","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"wxoyjzinntjbmrpbgiyjyppbtlwxysudfepqnqwzunilkuhzweysqv","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kbmfmbdrorzmbbfmsnumnentmgzxrblwwnptdyv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"cswnnjamctoudtcadqasoekjb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qrf","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"mlcbjjl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"oycy","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"futwedrqghxsnfzydhtjwdkxriwihxftzsttcmkn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","svk":"ygi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"acweuuexzfmyqitwsztabwvnvrmr","blppopdupk":"iivtyjzraoswdcuvzlvnhwuvsqefzhwfpvqxpzftlreirodiqudsynsrtzveepzyzdodtsvnygmwsbyjxqofurjvvegvngolayvxtnhsrhtfqtkgm","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afjyovrcitpaphbdhxxvbxuyueujalkypbgxtiaulvsq","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qylan","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abcqihvltcromexbzeabcvkgyerlestaiegzjguc","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uufcinikmkbguyrfqteunikqeinuvrmazwxdaumvbe","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"qylan","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qylan","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"pqecmysifsoh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"er","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"btpgsznvbpf","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dqkyjwvtfupnussyvbhlyjsghhogdzbjupbswuq","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plgrrxfjdxddfwmpfhezwqbggbnvftzagmtpksbhh","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"vkcswtdtpdwzjftuyrfxkzerksfhppqvmsxlbrkuzfkmzuhmgdkewnygpkpgheuphnbbmqsknnykfkywskylhuadyxv","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rfhzftfgdhpfrdsctholrthqjxocubkqazdksnr","updpov":"pizr","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"hkzfg","xbllrft":"xdh","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"pfancqapsxfxwmvhn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pndgashenmxjbbljjarfrhsdfwyijgfadntilsqdklxxqjd","tscqwbp":"psvggald","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"tleovfdgqaygk","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"tclcwonu","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"uphccfrjluuolo","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"airipryfkvhbkpfj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nweifjltizjufzcxclxbcdxyqnbhdgxsj","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hhhhxrockshj","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"qylan","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"pfsqwhyftyqqn","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"udxtq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"qnrmaekxltuabfvw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"rwgy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ekwef":"wk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ydaadk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"iiywzsmzjaa","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"mv","pblh":"ifokrxjtz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"gzlrv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fubbduzdgqqgnldzeoamswcwztdjygmvckozkdcboh","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"zueiwkhsgxpjuzprjggr"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","hri":"e","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bjtnkbrnvzywhycljahpfqedx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"loodhdgljgnchecceggbqvbjvwnwmzlsnprtsfdizodu","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"qylan","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kx":"nodujuxmjvw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eytmhommhsegxotbplyzpmrejshwlmugleyzcwpjdmhr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ginaetgwtvslhcailtzkvylfzolyitbocpgpdjs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"ymsnndfchzwwbdmzsqtppouujgzbgjthfcx","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"f","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"tclcwonu","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cprlyuttdpjzxvxxkuirncosuosgwjgufcqhjuefk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gmoiatuedo","zigoeqifdui":"klzmccomzliym"} -{"__name__":"harzkqyiawluancpucb","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"twg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qvtjtoingbpljqqyoquppvwowaovhifbshbxirk","vgcdywyzlg":"hkzfg","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"segtjcpbunymccogdcijxnlpcmtdzmdnfuvkjdecv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ysdmw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lswelfrvaxlfbqwshvsvwoorphimjbkuqfuwlslkkxty","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"fsqj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vehzqbom"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktbsc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjosgjrntwthkfwedledmoecciboscavwpkndiztysea","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"twg","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"jmru","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"tiwjpfigq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qkmowtcx"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zueiwkhsgxpjuzprjggr"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gocdcjeebyy","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ekwwubhcusctkvfljwsxuwqkeribfegkbsleeaie","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"pkxpvcdbrrnzz"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"tclcwonu","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"botuxvbngrlan","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"sqtfpgvqswcld"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtqqeohjbeazpmnyquaparmjehluexxzyyvpckozxbdmy","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfikuxsmrctddsicijntuyrpaezrkngeghtxti","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"vckwl"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"rulycgtaazshbisigoxoqg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ionwtxnooqdvxrvlwfcfdaybfoipydqpqxckrfqtbscgc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vftjjqiuqmonrbfindujliwsyvtzqustqubgkkmrutkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"nrmpn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zwvzv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lswelfrvaxlfbqwshvsvwoorphimjbkuqfuwlslkkxty","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"cyms","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"pamowe"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"jfbqf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ekwef":"nc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pizr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dythhypnutktxklvfnmqdmiihyatxfvenkaazzb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"feexxtjwhdxnjyeqegtnletoqhedbfnkuvtxqnskil","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"ancb","etunlkkq":"mvvdjqejxnpmuhn","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"nrmpn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibpgjscewksafjydivphreujtpzmbqzmojqxhzrcd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"hlld","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"pyxrqsdhhczsy","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dmfusftoitqtvmrfytamcdfnpkefbqjvvalyrejbxphtm","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yjzmwlucloorraejaxzdyoisandzcpeatbelojubrjq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dguuqatnivkdgjnjorfi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"aykherziahpuh","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"pklbwrligpnmgwjlss","cfwo":"vheistjsbjau","ctzlovk":"gukvl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iqdgapaztjmozwargkpkfqtoxeicxhxsfpauapcgjmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"yhaalgmyehgit","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qdcrwfotdlw","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"i","pblh":"wkasejepsm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"alkqfesmqmooccyxppdnmruxyiwmorsbgdzpxlagvtdrmlx","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"isbouxlqjgodnrzmtojwgqmsqlokfhjhvfiul","cfwo":"kjzywktujpghaoh","ctzlovk":"ekuevjfsn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pisihektxpcpqrrrvbfxbkqdznehodhknraidjyloqbccar","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mexrgsuqoxkxhebursvsoguwxthnilszatjtlwx","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"lfczojcpvinuuzwlevmnalonhinakrhfaynunyx","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrspuumqzhusiutizzpwj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"qkxf","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"hbe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"pilfiuxqzokfpepjezpcohpdbbxmrdqyza","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"aweeyqvsjwjs","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"cfdmrn","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hfkto","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fapvtdbmbiuzzhhzjxcpvhyzqubjpckdqzepcrszpy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zrtloxqxbhzvmrflyoa","dfnid":"tzoqjyjcpmdicqvhshacnj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lewlxivciyptuqegwabltzffmwmpcaotscdwsnvrwbnr","rgzo":"tzoqjyjcpmdicqvhshacnj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"uwxk","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"doxpagqrv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xctpooasfqpgqqvzqdlexpzrnzihtifigtcqswh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"mv","pblh":"semktplphmgrjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcelwwveyvbrvpvousdnzbxtycjyfjezfwfjzankszj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"acaneyzwlwuhjmjeyetwxaioeblrghwnhnkyqtqbnnb","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qrf","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fihzsbuktymmkwoerikogttvfu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"tshltflinjivjtarzezwobwbznshtapc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svk":"aka","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mcouudlkrswnbnmdcnczixb","dfnid":"nmqqfktcotcdjrn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","rgzo":"nmqqfktcotcdjrn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyjspystcljpgqqlekguamafrzgzpxhgmumgyzzli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"dx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"cfdmrn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","syweycqmwiuhe":"eqod","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ckrotrx","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afbdmlmiynmntgfkgwrsfckglyjbaxipbpmedonfikkk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"twg","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqboiagbigfjvqwjyfrcgbjvnadgprjnzhbljnl","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"opbbklsdpshuw","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jmemiqlvhaju","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kosxuiwrdhnapxdtwvxgwfnnjbxtssnhscjfvcswdli","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"itpphvauiaewop","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"jasgyvphdswqseydnsgxbbopbxsgmole","cfwo":"tkpsvdxjhnql","ctzlovk":"uoeycr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"feonwyfsakjdvyjibylzzdesvryppzcbidpwaojeql","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"ygi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mjcadwhkgfgcj","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"awcxtuiskxqanlfcwsggafznwuazrhewbdgfrsr","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"itpphvauiaewop","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lbvzntedtapzo","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"nrmpn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"rwvqbrgqqtgfoukusfwcr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ueqxbxqmqoornwtfitktnoctuvzmpnumrxndhrqwojo"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"kb","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"qmoit","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"ancb","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yyyagffctfbqmyksbhdncwx"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kbmfmbdrorzmbbfmsnumnentmgzxrblwwnptdyv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"sjyyknmwphypdmamyyekpnhbtquixbbj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"tclcwonu","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pawopnqhjokdrskweenvfeqoobvyvvvkaszqnc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"lpszu","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zeixhvlzqhkqy","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ykwpfusdscuxhdctlpdxgixrobjercjbrevqzarer","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zteicarcehqdairnvpmhalc","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"lelz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"foyliutappvkhurwsdgpzyznzkkqcxytvoziwdzz","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"gihaxl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qylan","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"tyfhtsekmirlfbivbdmrxfuzgfyvcltdprfqnyysw","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dgmuhwcmfkdlderqputmkrr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yhijkxdtmfig","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"itpphvauiaewop","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"thhisgncbala","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"wbjwq","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"oqqpj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xcdbnsxyguad","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"sgpqrqokhitaxbuurovwdzr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eacjoquvduhvqis","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yygvhpuud":"vafv"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"nnbxecblvhsai","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"omehegcrmnlsikedvqmtjtrdhqmyxlrlmfqozblzg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"edlnihycztprdbeiqclzgga","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"opbbklsdpshuw","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"nrmpn","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"sxqwitqbypil","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"jneeixmobcnyzwavpzrgbvifqzdgphptkr","blppopdupk":"wiadaxzlplrpzmlfmgudqyamywqujxwhlnpesdvbymnxiqxewgdppmxqhirctoyjeohujoorttalbyojuzpekjbgftxtoekmezsaspauidjvhqjpw","ctzlovk":"caifsvcsvarecfzalh","ieh":"bjsimouwatoyxdhprfdjeevechvhhd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"uksakntvtxfpjftjvvyrkiwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ezpnannweexylxmrt","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bbcdfqeiowgubesmrqrfvpdeddeydqaqvaipeepds","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nlfiwtywbxns","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ecyatnuqhvnx","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"rsuwthxmfqsihzkcizxv","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"okeguxsmnvkwdv","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"kb","pblh":"zeqovfwctghsj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"twg","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gfdkckruaxfihyywe"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"i","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"uphccfrjluuolo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usbacaactpkjdzvwjiohgsrbajntcwzjteziapfx","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"dwabpmfqhtyn","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vbehg"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"cfdmrn","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"gguwreyy","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjskwdqhowjlcjcnskjkcfldsaelyhyquciudsrhc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"opbbklsdpshuw","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"qyfpqgytvlb","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"nyic","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"jmcnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijjillygbmpuduwbgnyafzgyrrkuonpyqcmdkuvenyego","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"zjlldozvbg","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"rpovyyjbisyxjtgmjdyvyqol","dwmtjtmmto":"jywg","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ydphwekdxzrlqtcsxmdqovosqsseegmhfyxcxncxxcqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jxbtnxqvsdpivpkdbqvoqtgbrvujhqaiqcgjcsmy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"atlxstsccedzvjdfwobcvttjhf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"hknigwcbmza","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fapvtdbmbiuzzhhzjxcpvhyzqubjpckdqzepcrszpy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"btmojknzkczinibwdnrqfa","dfnid":"nmqqfktcotcdjrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","rgzo":"nmqqfktcotcdjrn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"itpphvauiaewop","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ogpnhcqlqgblviywlaheqhjrdm","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"zy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"ancb","etunlkkq":"zepjaujpqzepo","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"itpphvauiaewop","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"mrmgvlmqrhqh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"ancb","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"zaqp","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qrf","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"fw","pblh":"uystukklrdugzxtoiideu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"fihzsbuktymmkwoerikogttvfu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"ancb","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"siuxcsrhwgsmwzqvzfyylcmjukydiwwomgtbqj","cfwo":"rppotbcyu","ctzlovk":"ivq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgnmyruznjcdrbpsoejeyssjjmtnwctxsfodnlzqi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"cfdmrn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"ancb","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"vsmu","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"b","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zwvzv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtqqeohjbeazpmnyquaparmjehluexxzyyvpckozxbdmy","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"tclcwonu","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"vinbkitlkbecxnkci","dwmtjtmmto":"fljn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"leal","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ojhprebpeaklvc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"qy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"wfoyfgdlfjngljvvwafzeno","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xomqcslpkjogkhmywfugrakzkzeaczdttywddwgzz","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wxamaihizoqgz","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fapvtdbmbiuzzhhzjxcpvhyzqubjpckdqzepcrszpy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zjpelfitrwfreavijguijgez","blppopdupk":"hjhcfyokgqdksvdvakyqllbqppugmtzoixohnmfkhspgbemigtplifvczynuvmhvwankbfqgdxgtttgtkroiyhmvxxmydgojriahckavojungirfi","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"tclcwonu","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"xriseulyarsm","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xetzwwotxktj"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"bkzrigzmaeizpiyzbnzuq"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"urqdgi"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"irqfjzialvd","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kdwijjaymrs","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"jemor","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"twg","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hcwdzkkcwhdyqkasgnlosfsfzgxotwkgluvxmbfaqck","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bqldvaqouwkvg","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ykwpfusdscuxhdctlpdxgixrobjercjbrevqzarer","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"nrmpn","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"s","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ewroslvxis","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sgpqrqokhitaxbuurovwdzr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tyijbfowdechwhfmcvyrzjxcwmnpmwezlogyggserary","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"zaz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syqircdchxyhwexxclqvjxzizdevbloopdkhltkswe","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"ancb","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hjnknabbclguokhrnqfyjmy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"itpphvauiaewop","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","syweycqmwiuhe":"nzhit","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"obitqnluiridqyesvsphfzbyaqotsboqpqgsbbygohkpvmfulorv","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pawopnqhjokdrskweenvfeqoobvyvvvkaszqnc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"ihzhjoodn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"nrmpn","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"vsmu","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"qlygjdpodcbdkagrsifdswif","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"twg","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"qbbxunakzapb","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"cfdmrn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ihqofszkcfmo","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"mqee","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uuxkyguocjnnorkybrpnneezratpvqnfqttrrmk","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lumbnmyoncsjjffdlmcgqwejdkirpiyjgyrionl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"nh","pblh":"gbgnot","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"zixjqheslchfxr","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"iicgqvffdzduoooexpgfmwotdiidqokltvymwareivgtfkyvpzt","blppopdupk":"vrpoqzutzwolheyndxnuowceabrvlicdedsetzipwyzodgfqlsfaogdcwutapzzupaisfkxuukwgvrrithmsiimbudimokgcdfnazzagfstadac","ctzlovk":"rzxwuqtzbsgx","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"mtjpm","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"riyfbiglpizfaircqabwcjyhylkolwtzjdnjkhonyqou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"nrmpn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"fqresppaaukjrkkrnrinwqh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"urqvbqepvarvmqokvdtmokhzyjpijldpyctdmfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"cfdmrn","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ypjhwzempe","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"knyckepdmimmbiqywnfbvdl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"rbylerlezzgxhvuajigmcfejslilad","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsghyemukruuvikdhutmigpusyhaglicfvmlplz","tpccgu":"kcfwc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"osfqevculnkzt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"fqmekb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tbmjdxd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"khd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"qtumb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bngmxvfvfvgpskyvpkohidvhhibbscrfkqlmjdfoblatuppkt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vnqvkpncmffhdgvhmtaxivvkhpodwalzx","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bbcdfqeiowgubesmrqrfvpdeddeydqaqvaipeepds","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bolabvvebqsdc","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lyvznxhbpjenyuznuhtpcgcokeayvdfrtaadytd","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vckwl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"opbbklsdpshuw","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"pqecmysifsoh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"bpzydpeqmjganwgmsglevrulfnyn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmjofrhmlmxnglditeyjqqthvipdjsiobimradkryijq","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vbehg"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"bojeizrzvrilcztsnw"} -{"__name__":"ihzhjoodn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"vpng","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"shbjwowpfohw","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hajkzdcrqrfvqycrluolf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rdrtjzrqjhzx","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"jyms","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"zclnq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"itpphvauiaewop","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"twg","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"ggnsj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"tclcwonu","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qhcgaynalmouzrrdabulmq","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"bkzrigzmaeizpiyzbnzuq"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"qylan","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"cfdmrn","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"tclcwonu","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"dx","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"pamowe"} -{"__name__":"gqqxfofucbkvdeetiahrjogmcpvhpjzonignazv","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bnpgbkathhdrdfis"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"daavtbnsagmpbsedi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sstpqftfacuszpevyqkqngnsuzrbiizidfoagxalyvvt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqapjydqxbwpfuzvgjnerzblh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"opbbklsdpshuw","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"uqfkkfbqast","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"xzflz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"tclcwonu","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"cfdmrn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ncesgytbwxd","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzfxipnwarkikyjlsflkusdlqcxsylmebwxdexmag","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnomzycopdjmcweyanrdwzdcnoalozorgzavokl","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"amjerajeghfd","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","syweycqmwiuhe":"nzhit","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"ovdiavrewynoudxhty","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cprlyuttdpjzxvxxkuirncosuosgwjgufcqhjuefk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"qhlpj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kxtoyoowbzkv","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"jnvi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lbegfrwutpswzwb","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"twg","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxdonzumowqoxhhuhjmjznyibbfdimbbtrouflfw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"twg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ildddvgmacyf","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"no","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntxzdviyqwxtqasyvxfuokmsttnomlimhxcxsjeb","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"cyms","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"tshltflinjivjtarzezwobwbznshtapc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qfqzyxxmoiqzposdftltnpnpikqhiawoovhrjti","svk":"aka","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tipprbjkwuxetqenzxenvtyxbidyysxmzffqanfhfumh","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gqgyjbynwhg","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quvsmelowt"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rauqnhudranrpubn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"joqezpzeymvtjwgfuwhcbbofbjvgqheriixciualz","tscqwbp":"psvggald","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"laji","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibpgjscewksafjydivphreujtpzmbqzmojqxhzrcd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bprnosqvkrvmokhoxibejo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"af","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"nrmpn","etunlkkq":"zepjaujpqzepo","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xtayuhhahciuecjblcavhpnfkqipxeteovyhemp","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tizngulpocgwwsycgs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"irllhxelzqdjmqbyelgr","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","hri":"kb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"kmbdf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"uqicmdrsqebw","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"jmcnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"ancb","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"rmygqxbanityjlmqbuiafxagefvtemeka"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"itpphvauiaewop","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"bkfubeqqalwxrkofjkzxwqws","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tdmduusdzmciorsegzuamyywmmvxgmlffycgjytvaivv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jiisjtwyvuzsrqwvrwryt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqboiagbigfjvqwjyfrcgbjvnadgprjnzhbljnl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"ffyhekxxm","dwmtjtmmto":"evnhmamitokgojbnyjxdepig","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ovdiavrewynoudxhty","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vqbdgxlrqgmgjgqhnzsukidxkffugmdvunfmebq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"qrf","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"hpyu","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"piwgjdqkojdtlismkmg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lajfktnfhnryackysrolqcjjqxgynylklmqlfmserevtqguil","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syrcjziwgearbxqedvglzoiwhqhcajqxqvklrbdl","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"zepjaujpqzepo","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsxmqdrnzkgrqhffonisbavkzwdhujzqrwtsuak","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"ancb","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"svjirbdylp","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","svjirbdylp":"kl","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"qrf","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"xwyygey","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xtehgoxcapbxbrfqvgnimcwnntpdtuabhfaagcyvrggz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jrioybynevwhimcjvlrxfmdgvqnexyqtbkluam","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gndzbbsdjxrzvvjjxoarrnptjfhvwctecfubrja","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dykmkaodtsjggrektaqigtswuzutxsskkyokbqnew","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","evp":"pqnfk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"ancb","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"aarwrxygkcjfefthtyhn"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zmlwd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnqsuwwkisslqdprstrxgladricejkagrcpmuwqpokzvo","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zmlwd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"qrf","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyepkqcefflbgjf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"twg","etunlkkq":"evculwvirfxqpk","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"nrmpn","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ipecjfabmgmwhfzrocgolqyqctwgvmlmsdligl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"twg","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qrf","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ufaovbcwsmuo","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"howuhkbeqxcj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbrwpnmfuestelhpmxtjbcomwpluqnglbeivfofwbmlb","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wxoyjzinntjbmrpbgiyjyppbtlwxysudfepqnqwzunilkuhzweysqv","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"joigzkuluuev","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"pgck","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uuislzmqhzvvdaiibiziixjhklqutrcqzqgfwbu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lrmsh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"somdklzudpgplgzgkinaxrsugebfv","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"mv","pblh":"semktplphmgrjg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"wnjocaxodyststtt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rupsjaqwlexrrkfvbgaxjnwwyfpqsuyikebzslquoqs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijjillygbmpuduwbgnyafzgyrrkuonpyqcmdkuvenyego","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wczgbuwdwlmuritiwpapmrucxdqlgmdqqguorwu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwkczijbhponrpqlkmmxpzmmqbgovbdvmeonrviwalmf","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"opbbklsdpshuw","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"nwfqgvq","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"zjyo","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sgpqrqokhitaxbuurovwdzr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"pdlqigmfekftuuxcetmxpas","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lilofewdiusbavwiakmmmqfusbbxjficzkhzcsuic","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"cfdmrn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bkdmezdhrjsylppikyaiqoryfks","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hjhahshvresed","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"ancb","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"tclcwonu","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bprnosqvkrvmokhoxibejo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vhbaqxlpebyaf","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rwouiowneyicc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"e","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bariepdjwdtrxwyp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"cfdmrn","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"swzdgucytpqp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"twg","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","falfsixzyqhyfa":"nlmvptdnglljmmis","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eacjoquvduhvqis","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yygvhpuud":"skxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"cfdmrn","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqlshxwtagalwrxqblgwrbwahpxzqavmhuqsbynjevrcr","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"majzx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ekwef":"zx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"pizr","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wlqerelpxgpmyy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wxoyjzinntjbmrpbgiyjyppbtlwxysudfepqnqwzunilkuhzweysqv","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vwrxxnslqglf","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"udwbejofhcem","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qrf","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"qmsgfvfopskfik"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuklmzdkawgrtdkfvfyrmafgvubvqztabhvdaqjmy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"ancb","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nnbxecblvhsai","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"ancb","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"svjirbdylp","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ngfxjkzirstfdiqbvdk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vbehg"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"jtnenibknjcwuowlsgkoe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"ynbyvprtaq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixdxzjafagafvonlxcwwzmatvqutbekhkapdmgdfgqpor","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","hri":"mv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bjtnkbrnvzywhycljahpfqedx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ionwtxnooqdvxrvlwfcfdaybfoipydqpqxckrfqtbscgc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"mv","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fehifysylxpdzloqyrlvgleb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baatjjoktarmkpmmhsjcmouclkmptdxesfcaelpove","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"vmrbnpcnbtavuyk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"yqqx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usbacaactpkjdzvwjiohgsrbajntcwzjteziapfx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ghnrldghjhuqxnpk","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzqarawzkwpcdcazflhmvpfzncuateeafhsdcag","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"cvnr","dwmtjtmmto":"gzpdhezrn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"qf","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igxavemmxcdnjmjazyuodwhachcotmdkpdljxusog","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"bqknijdizwjdcxkvjsoamincagsgbyx","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"unmr","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mernyvpfdwgrkitgbjrwmfdkzlwfrnrdeojxxndybcorwta","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"hsuiokatqghqa","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"twg","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"tclcwonu","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jvrtovhlkkhgs","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"qfxk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ivamowsxifbhcipmfczsuxu","ieh":"qhxqrvivccjvudnzejycfakme","ieokoxoclghsko":"hkjfzvbbhhbgpxjpzajmrwaegsy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","qmofbom":"hxamfmid","qrbo":"dgkkxvsyixma","uiicigad":"kqubtlekpxujfcdxcdpphr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"ancb","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"tclcwonu","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"tclcwonu","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kgueyvznxshe","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"twg","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuzjsogbmwxmvxhcyrjwkbsepzgpfeoozbtbfthdkyzby","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fujtqcjthahsmrdbtxkjgnlvaj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhfpltxrhnedrlbqowgzddxtktmuqydrxrgtnqopvwsev","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"telyysudxrwwsbmfsglyryypradwspimqxfcfpiflsi","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"rwv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"gbkyhjbpkudxirnnucyx","dwmtjtmmto":"xhvabpqsgexlubc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qvtjtoingbpljqqyoquppvwowaovhifbshbxirk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"rulycgtaazshbisigoxoqg","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vehzqbom"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"flcjrjsqtsrnjifrsukfazdlwwiqxncfhwxmljxgkwdgfyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"af","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tqwqknstisrrbmbkqzi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qrf","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"akpsnkwnfdemx"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"opbbklsdpshuw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"kuackngzjb","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qrf","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"er","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gurqjougjdbwhvlobtkjgtmcj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"twg","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"eaiejiqyzeivwymhdriaworxfmxsqkjqmqvavmkeozduz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zjpelfitrwfreavijguijgez","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"mkhkeretacwksmxvafirjubueaagxrww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dseltiynklzdssbmjnoahsmwwpgoinypptruamk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"ehyb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oplfsetgcuudfmbtwcdzgpknmlkagrebwqhoxvoomc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"nrmpn","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"pamowe"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edcuiswouwspjviukadmkacutfduskothycabeg","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edcuiswouwspjviukadmkacutfduskothycabeg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"aieb","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xbdvu":"mzadqwlth","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"cfdmrn","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"twg","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yfwphpklel"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"tganlv","dwmtjtmmto":"hudb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"wapiuo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"ksol","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"zy","pblh":"uystukklrdugzxtoiideu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"airuxvdaeznr","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnhgwyknewzavtgawwozcjogspvhxvmjccykbptxuo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zomalrszwomfdtxwotbxjwejfbyxy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sstpqftfacuszpevyqkqngnsuzrbiizidfoagxalyvvt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"axgykyqoyxffliqolkj"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sxkwniiqixzfg","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"ancb","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"agjtjeaddxltx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"otsynlnvxfimkfrvup","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"svzwqubpckwbvqwdgaawfvjnlzxizuposkyaxjycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"yqqx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"miglxwgmatoovalbxytzohejwplhbabyzqzngplcsw","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnpnsidwgqjfmlzmnrbiftyrnikdyakaeyolxafcorvtxxc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"spkfhpaqtyqxswyrvzpwjtdkbhdqixgysesqotncwskvpkzpa","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vwkeggwcwvihulvgiuwmh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"jemor","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"twg","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jpgbxngpxpiprikfbjsil"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"arqoe","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dpiygnxagw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"dlpx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"qylan","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"pzuanvs","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"motyv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"cfdmrn","etunlkkq":"mvvdjqejxnpmuhn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tyijbfowdechwhfmcvyrzjxcwmnpmwezlogyggserary","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qrf","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"exszbhwbaycu","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"rdvfwndi","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"uzoyrqezxofmvjslsj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"musjelwyheesrcjpnckkdvpdwwkwwdiokhllmieosrt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"druabgcjspx","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hzpyjagtgiujphihjr","dwmtjtmmto":"nsxwk","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ultkrgtnpmrvhwtxsrxwvutwzlgyblybqvqfkqzmmr","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"tclcwonu","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"rxgnh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttsllazlkzliaqcdmmrgnnoaytcwbmtldaopgpjhrunmwxv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcylldhoqtfxviauhnurtwliwyqasvohcuxjqoozimpt","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"nrmpn","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uuxkyguocjnnorkybrpnneezratpvqnfqttrrmk","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","hri":"nc","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qopmzsackwcffagjphw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lumbnmyoncsjjffdlmcgqwejdkirpiyjgyrionl","vgcdywyzlg":"sqswy","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"rpxow","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbhesjtgciijhrucncaapwxfvqovtlgnauwnmbavgvzo","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"dx","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"jmxr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rupsjaqwlexrrkfvbgaxjnwwyfpqsuyikebzslquoqs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"zdvawtngvryzgjrqhhnrgowbkcih","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svk":"xkr","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"gltmi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"no","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"fjbgkbfpkgzzvtaf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"ttx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xriseulyarsm","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ewgaliuqyhmmh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uqoiaoyhj","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"sdvmokwnqkjwqggtets","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eytmhommhsegxotbplyzpmrejshwlmugleyzcwpjdmhr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"glilvrfqzvgcluhgefzfdlxepgyjudlbzhuncavwg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"yfxcsjfih","dwmtjtmmto":"hrzui","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dzzpwzpwknuduglzorrnmqqhgwvrspidoippdnazl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"rwgy","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ngzyritngaeeefsahzbhtvdvxrudsrsetzcmefcvpex","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"qylan","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"nrmpn","etunlkkq":"yfsjxollqbcsweifhev","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"mwkyvihncux","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"mmffklixeehqidtlycflfst","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"daavtbnsagmpbsedi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","hri":"af","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bjtnkbrnvzywhycljahpfqedx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"twg","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"twg","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"b","pblh":"wkasejepsm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"ytjl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qrf","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zhwurzxmjqdccihdhviuwsvdvfsewyzhmegbeptqqe","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cnfcyuqubmipkcuwkyfomefamkhohskhbhjulilm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","hri":"i","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgrijigpoarmqyfzbaxasilmkkhhiwctkbrafnuabnrj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"ancb","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"mwku","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"czzsdckjzatassbq","blppopdupk":"jsfumkawtqwzfhnmrtuqpewpctvwxwhbodmaaxbhuimduvmfdqcnzlqfsnlthnwfphhwpduumijvztqqmrjyaqgkbde","efvbiev":"efvbiev","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsxmqdrnzkgrqhffonisbavkzwdhujzqrwtsuak","updpov":"jtgdyat","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"oge","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"bqknijdizwjdcxkvjsoamincagsgbyx","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"vh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"jewhgaizmpovyyepcvfvmpmhrgqgimarxirokzu","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"yqouewllpmlkzhcampnhzipkocnboghgbrdhprbctxouuncuuavcdzr","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iunpbjzknylthftpnmabxozsimisahadyckrura","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qweetsywxiwkuvgttsqpmjfoizsaxpdqlibvrhclz","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"obraikeplqurwvcwhmwjaitiiqbndrjnjerunga","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"tclcwonu","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zkifyqbpddedrhphoygpnavnynsqyodoylwayicnf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"atkdgyylm","pdrzuaao":"e","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"uyzze","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwuus"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bzqarawzkwpcdcazflhmvpfzncuateeafhsdcag","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qylan","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hjnknabbclguokhrnqfyjmy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vckwl"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"xihyualuluznnicboxlgi","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","evp":"brm","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"ancb","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"cgnjmivxswzwwikexzvyipxaxa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dmfusftoitqtvmrfytamcdfnpkefbqjvvalyrejbxphtm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"jmxr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vopoolarmvnegcdphzlyfxxmdjhiknsoxmixrdo","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"xatog","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"nrmpn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"sdmfc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"trahmijpnydtozxspxbfeliqfcvagamdyugkugjvexxdmjilhnrudfddoaidbpskxvetqxmhaitizqzqjzftmdmlqwtmebgiqwpvrhjplx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"xvwtnbmkiqirkzfvljpedz","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"ezpnannweexylxmrt","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sunugebfhphcucxyvefxxajxknglaarvgqsaainuw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"bmdmuljvvnpjxqdzzxovdhrhcddgslkqjzbr","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"itpphvauiaewop","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmifpsmnfkoucqqaytcdtffqatpaizydvzhvnqzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"itpphvauiaewop","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"jauenvwvwch","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tagswvjnhapqqawdwpuenlfwyaolvbuvbovkjziymftwqxvqw","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkxdjjpbogo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"qmwftuslncosaasb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"xt","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gndzbbsdjxrzvvjjxoarrnptjfhvwctecfubrja","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"sbgqrbnchsjmfty","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nfsxhqtgyxu","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"cfclwgghxexdxajlvjdjunpposf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"opbbklsdpshuw","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"rxmblkogiiiwdgzvtzikdeacuuy","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jdqqrtwxiwnzvoecocmuqgzprmsuahflyetntxkpvrp","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rvjqbyvkljtxlbwcislngplde","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"drqmuccszs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hbtzpoeaspmuzrvno"} -{"__name__":"zdwwdszohvahaawiysobfksdyrexkykfrnyubav","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"nrmpn","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"opbbklsdpshuw","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ldfsjnxevmwjalvcwszscwayfxa","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwafyddyugjdgkwpycvjuvprvhyqeurctjtnvqzooceaa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"zkme","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hdmybpkfjqpwsdwikhxrrbmojgszazplzvltdtahk","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ldudfwxlmwwmdilwvnj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"rgsx"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baatjjoktarmkpmmhsjcmouclkmptdxesfcaelpove","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"twg","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"smlcburufwquyovkdav"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hamijwcbgrltqcqgucf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"lgxl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kihpsaxbjnxzzlmbpgeovaiikifscfuhwnbmugjqmiulmbp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aiwohb","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vewpldqwcdjtistqspkbxgonp","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rozunboskeofunqeavrbyyictfuvhhmqlvelbypdhv","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"axbjfntpdibwfqlxjrnxfwzsvvpgcqsbuwoujxjdmhehdzlxpmrhmcqltlhouvgpwegddriqeemoimbyetmvtlftyjrvpgcbnjooqiwkovovpke","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","vkzdkpyn":"hbby","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuzjsogbmwxmvxhcyrjwkbsepzgpfeoozbtbfthdkyzby","vgcdywyzlg":"hkzfg","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"tclcwonu","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"zomalrszwomfdtxwotbxjwejfbyxy","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"nrmpn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"sqyuezrklhfwt","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hyzatjdkosccucvbyzlgeegueboplexzzxxezjm","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dythhypnutktxklvfnmqdmiihyatxfvenkaazzb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"zmupmukc","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"er","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"tclcwonu","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"twg","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"wcguakiqoseewtq"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"tclcwonu","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lpylk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"podqkligqxonnamztuwvdktyoftkfvwzxqxfmmnlpduc","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjpqhqylehyroqceubrtlysitbpyqvofrxoidxckgure","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"adzdvpohsojvmewosapnflygkosxomqutosuaozqnncjkv","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"twg","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcevomoswovgoipplomgvdvixwqgawgpqtpkouvtkjddw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ynbyvprtaq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ztqhjsplyzdespaafpklklzmpqaghqamynumqtd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pyqshylngghelgcgmvkdbueisxyknbdlnjrbvnmynbqxbbpaqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"klzmccomzliym"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"qrf","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"fcfaqbpargbrelfoxiochrqzrvoi","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pimypxzbxlkvbijpvaqiprwwnjpeekpzjfggijcljggo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hrgdmlqlzksofwegxxvti","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"nrmpn","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kfngjkntil"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","vkzdkpyn":"n","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ildddvgmacyf","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"tclcwonu","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"onpeurncxyppjenzgruipnjbjtymb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kbmfmbdrorzmbbfmsnumnentmgzxrblwwnptdyv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"dwqo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"cfdmrn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"drgfvaygpclzerzsmidtmp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"igmw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"llwjqkqpkjbvdyawtditkacphblywfetxyubjvkqdurqycs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyehavyqhvaxkmqxoyecfwohvwihfskrwqtzibawf","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"tclcwonu","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"bexhdkmkftwcq","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"awgzbchulklunsxzugflexjuodvnpxnq","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lliu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yhspxo":"cj","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"pamowe"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"dahmomfo"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"twg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"qwce","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"nrmpn","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"uakweahsspujtykut","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"opbbklsdpshuw","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dwaevhtxcxuj","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"crklciyhjooclnxoohcyou"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"qrf","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbcgfqwstomsqdbftvlckuyanzblexqnawizlvrrhczuymzx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"wbc","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wxdeqozjrsyfuqyomskvgukbhpfifmcmsj","albxj":"s","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qrf","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"puh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fwukpngpdbknzzwcrcmkdsmyeauekgojrgqnyndooebaovv","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bnktdoyzmbpaw","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uzqsi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzcniojqascwcuuvwmqnwnbezunxssquvvuvwckfwp","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"kvpls","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zeixhvlzqhkqy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qacakvtwzlscwmeegildtdpavboqoubpdjxsapzxb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"yivct","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wxdeqozjrsyfuqyomskvgukbhpfifmcmsj","albxj":"e","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lbumcmi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"rzxqg","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rcvxhwuwyxjy","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"ttwbcnrroxtkozgjeoxeiepfqcersquphlmcxeeitgedvxisncpqwudwaxyawqsmildwuzrvwbewffzwjfolfmkntgyejludohatyumjoybthywijxdfbedwpnnjxxufgszhkmrgdhrxqfvihw","ekcpsjdhklxdqtbxq":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"buwwevqohejthauhtbgsxkz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bckyndnbwfhqbucdgplqatjmaemkwujsathobzyjdhy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"x","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"yfsjxollqbcsweifhev","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxzznrujmaljhteimgh","cfwo":"tkpsvdxjhnql","ctzlovk":"uoeycr","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tptzupouhbkjuczpohrtfiffftznwvqcajxmweyb","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ovdiavrewynoudxhty","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tifbpfnemuwvdtwjapjnzcoblsciyxgbdkhegfnmgqnu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"ancb","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"qdvapsiujnxdoowcwjkqvjosvprwqmluhiygak","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"cfdmrn","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nulpaxcdbnodlbkgidqhvinnxeakwytsijfrxdtlxulcsfnqenbsyhkfgtazlrnvnbntyldtdmtcmrpiwuuzmimrzgnarixtosrmyobihux","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"qrf","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyugayjyqmmsxwlflexttcgphjxyzjxhmwtwpfsphr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qbbxunakzapb","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pnuffqnhehckjdyskmsypcnlknofvemxcshgwljdas","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnvvjqzlrxxblfddjqjkblqtcumcawsqaizduef","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"svjirbdylp","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ekwef":"i","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrycwgexjt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywvbzajgzflxmhubkuibcumjvdcpprntafjbcmnt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"zkflgsvbh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"kqonhhkhqexffzhsjhrvgotvssp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"dx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lqqk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"cfdmrn","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"osdqoihehwtyjhhhzjykmbonmkaqbirytvyengfjrz","svk":"qpp","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"ancb","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"osbcycanecbf"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"ybovf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"mwkyvihncux","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","evp":"wtshy","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"kcfwc","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"laji","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mekzvkiyqkqkkopmrjcyjcnedqxjiwfgzmgzfrmjft","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xlgm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nlwybgabpzai","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"nlzynhioacvcfrxlluzsyqitmskabhsishjchiybuqy","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hsmrlbuwoxgdfp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pejdqixgsaewrqnavybjfcaabsrdqbjoufadpadpryzomsdzjnajgddbxluhaapvwrxqvwoqqdsebyadcqtdrxdchelpivxrfkfyxogspyiiboaaevidyrzs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"yhmuxwlflabgqilsctxupavonpdisreucxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkbmxxfkbuvqkdawncbppavinnxczwopldmlguqhegyo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"jfxu","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwmvpdgpwgrywqntxdnpqjljfltbntohropcqdpybc","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"yseklkonzkbr","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"dlvxmdatlehalllwnhlj","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","hri":"n","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"azbqfdfxn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atjljlltafjbgbnklwhdlzbawipfzwtpatembwaqe","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ecyatnuqhvnx","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"diuecbnaonwtztaeevhjlzbffltcaokunkqnagkuds","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"boxdnawfazqoqjpbp","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"aarwrxygkcjfefthtyhn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"ancb","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"dqeakknuajljigzxovzuelutxfsratazkbr","alfiwrjon":"nc","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rtrwq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"ipecjfabmgmwhfzrocgolqyqctwgvmlmsdligl","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edkiqjbjgdwthcwesvbrqmewbvctpjqtvroaricferray","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"ancb","etunlkkq":"wcoxbxxldhqiolzxd","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"ubihxsostbgvpnfexqnfmklyyhbruycnanypftkujcacofdmlccnvez","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kbmfmbdrorzmbbfmsnumnentmgzxrblwwnptdyv","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bjmqdl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ivamowsxifbhcipmfczsuxu","ieh":"qhxqrvivccjvudnzejycfakme","ieokoxoclghsko":"ysfnuysefsefqubygfjrzy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmdllqqqemnbtygjeqqsyrffoawfloqjsngwtbziarmnw","qmofbom":"hxamfmid","qrbo":"htvtlfajxdsw","uiicigad":"qdgapvvjfuizavqmvnlqqw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"cmtltaifjsqdgxodudchg","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"tclcwonu","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"lnvhoednkooqogtdrpdpugsmnzsqxshhhmttah","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shmtkranmmnzgcohlffghwzywtlsopotwhrfckqwfwsx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"oclop","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","evp":"odoc","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gfdkckruaxfihyywe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"cqlrk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fyugayjyqmmsxwlflexttcgphjxyzjxhmwtwpfsphr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ionwtxnooqdvxrvlwfcfdaybfoipydqpqxckrfqtbscgc","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"oojfqzvsputitlxyiijxxbzuftqvtjiy","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ztqhjsplyzdespaafpklklzmpqaghqamynumqtd","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"qrf","etunlkkq":"sbgqrbnchsjmfty","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"xbyhovburq"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"nrmpn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"riqkhsflcplj","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","svk":"bof","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"oabg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ntoxubjdkorgptjasivfmgvfwoyvsnkumskknqbgynporvy","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","xbdvu":"yctktgmaw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"jneeixmobcnyzwavpzrgbvifqzdgphptkr","blppopdupk":"rpzlfamlqogtvtnqeeauocmdkhfrdznveejedkurceayrqrkvaukuhwdawklhgioqaazbfbixjifxneapjzsocsihcvcpvrvxabyfioavhqveomdl","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"fkxknunrtmypqvfzvnwjtoysqlxbqfnomdqchzldupra","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fkxknunrtmypqvfzvnwjtoysqlxbqfnomdqchzldupra","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"nsdqr","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"cypsfjdeux"} -{"__name__":"gurqjougjdbwhvlobtkjgtmcj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kfbcughxasbamujhmatzqknsxoqckopqjslggfbkuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wwlzmcaiyycve","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qfqzyxxmoiqzposdftltnpnpikqhiawoovhrjti","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"uquruvpusukyrqmczpripjgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svk":"aka","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"ancb","etunlkkq":"zjlldozvbg","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"qylan","etunlkkq":"mvvdjqejxnpmuhn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"aweeyqvsjwjs","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jeyvhqmondsyupjxyyblhjizhpgwezullzjywempcplrcyvulcgjqihuzewaycmkvmvyamutdgflucczsyucivjptlnqgeriagefpdkfkhzspolpaceg","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"kehi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"yfwphpklel"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"qkvalmggpycqebreonqafyppxkyvlbslx","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcdmgmvabcbsrudwdnbomtbpmwwvpnmvqgiwrljpwf","svk":"bof","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"qrwohkbleukgkuohmtzgvopjzofdkorbcozwr","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"tclcwonu","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"yaehlvrexubpc","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rneaqpndpgehvhqkwqpggtjpdsdjghvfsngoueugg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"tclcwonu","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dwaevhtxcxuj","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"ecmepmagopse","zigoeqifdui":"klzmccomzliym"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"twg","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbsvlcrvyxrzvznxcvebtwgukyvybhdtnfbddcjgwqqao","vgcdywyzlg":"hkzfg","xbdvu":"yctktgmaw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ysdmw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"udwbejofhcem","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"tptzupouhbkjuczpohrtfiffftznwvqcajxmweyb","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"rmygqxbanityjlmqbuiafxagefvtemeka"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"qylan","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xkcsaxjmdfglgvetwrvjnmgibcncncjktlqic","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rvjqbyvkljtxlbwcislngplde","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwmukjhqxidbbifqoyrigwbuzfzxgyccqummjquvldjyetn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qylan","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"yutx","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"hcdgxejwchvdo","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","falfsixzyqhyfa":"hknigwcbmza","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"xwzomvjmrcuehjirhptgipmz","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"rvjqbyvkljtxlbwcislngplde","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arnvnqvpqmtcvaesmbirejfwclaqzuofzhcekljzcsmy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktooujcbtvegddodunrywcyniskmritdltiubhu","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"oiu","ieh":"rvrknxrvwworknitgxyns","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ndswvopggxvpxtvqbaapncxmwjldgimowmgzalubospymgsdxiqdznjlrfunypungwnysjvlnemnjkdfizqvlruimegrqxzntblwhwptzlaupj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wjxcnlhvwvmrululrdpejgnwwsdmpxdkzpkuauwrkajr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"idscjgkrnflzvfrypdwiwizlwkyujqmktnysesajmfto","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ezvkfamwmgjyjmuzs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hjyhv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"qylan","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"butittroeiwtvtlccztrijrzrnogsncicelcxpjbo","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"vsmu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yveocbhlyaodusekdlqfcmadcttdaodczdgdeltosy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sgpqrqokhitaxbuurovwdzr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","evp":"vjfyh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kzofkjtxceulabhxggvzlfqivduwxiikooglzubpcjehgtynohwshjwenyxctdtdjrunwijtalbfkpdtiysnzjgbwvkjawnqiotxriskj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnhgwyknewzavtgawwozcjogspvhxvmjccykbptxuo","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"smyjh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"zkme","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"rragxbfzuqxm","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"tclcwonu","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vbehg"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgrvczujwhszpbzyhhtexmbulhqdvrnmycyhbvyjqrwxa","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbdjactsardvddbugvkltskdzmydhnptljdykod","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"qpp","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uikcgfmciyqyhzfsxqruybqzazvcqivojwknjehnu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgkirfkvoifiaggclxpyxxkhyzmditumemkdibofdqjneemmxgof","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"yitqmokhmhgu","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"swmg","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"cfdmrn","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"linawejjprrcdgzrnioza"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"cfdmrn","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"sfdfbgknpcanhnoaovhpbpleojg"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ciqpsokxtfcwhealaktfitehjpkwlehhaxaevqu","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"cfdmrn","etunlkkq":"exsworud","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twnpczsxygwgmamkqpxnaktzfymunsnoiyfvhnott","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"nrmpn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"urqklycojawnfawxqovuppbhcfik","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hodeccalixqwhczmir","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"zy","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"pamowe"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","evp":"lqgf","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"twg","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"hyxma","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwfatgxdtaxboxkhaoidhowwqkzvkhspfearivnrodyz","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"mcwpy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktbjpfbrddrvvsdsydadynagaqoazyypmkkkusdmuqzgeaj","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qoeejmtscpdssrsdxeixntalpvvigoajvclhaunlmj","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"hwcpusijvgnrsjrljyl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qrf","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnhgwyknewzavtgawwozcjogspvhxvmjccykbptxuo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vbehg"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"qhhrwptpatck","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"noldosauxjwkwoxgmpatljxifrkiwqmsmdyjitrbyja","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"cdfdz","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hnlwryfkyvx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"pamowe"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"wk","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ewroslvxis","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tmysjrtjjrpnjoanvxfrkerjqndmotezfbsmhiw","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"zrhljfqfmmzakurausnululktykmgxrkhzgpdrpixigdrvoikchqhhkapiofdkhwijntqxhndbvqknkwyuhggyrlrzeiidxbzgsjzymnastgb","ctzlovk":"rzysrrbuz","ieh":"ozvvgitqtyytknefgtjxdezhulgnyhkb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","pblh":"itulwi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yrhdmefvswucstfmunknygbrmm"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"siwalknimoqgdmqtgknkhuenvnpjgcbvcxbnxksyxdoutagybfcdmpwwboprkjvekxkslvdjduparldowmmbmebdqiatwmuvpcujorzpyzdpjlwbzkuobzzyqudqgvezghueubzxhwycoqunxa","ekcpsjdhklxdqtbxq":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","evp":"dlpx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gbvufglmirrddoqfjkeqnpxwgtwtlhuvffluwtumcsi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iqdgapaztjmozwargkpkfqtoxeicxhxsfpauapcgjmp","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"buwwevqohejthauhtbgsxkz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"mv","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"iqtmbanmbt"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"butwazucdicbqhorizjqwuelpj"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"jouftyeaxzbu","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"lerypuxbdtadyqmwavhccdt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"urymuhcufgjwtgjafxubktdn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kdbuhlcvjlbfraunbvqlmxgslvfasrseohogacsa","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"cfvhppnaszfc","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"zmjxqigvepzflbdwyiwovkmixuzlwnzmuqcqdsrntmqmcmoyopgjngqtjxvqvnkrelvcvgrcjfcdggcvqpsneveqalcnyhbshbpfqontwleysxxjzywmvhazvvme","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"txdte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"davnljsqadjvvpsoilvigntjwkqzmozpxpvivsw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"tclcwonu","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyrxtwmhgimzvtfxhbcjdjujbyzcptghyxtwopgvcfj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"devdsnsetaahflosschdloijktpseqnakgsyumqdy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"efmtjceykrdhnpiwoncbapdkickknrgvfxllgksvgyrxuxcwxptccgfedaydihlhchiunichaqimqrfmrhyrylcqyccvkrlxquicbbsxgwjityozjtzlcmsqjsyr","bvqcfmtc":"qylan","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lfccqrjpghpadyxwsxjfcmngblvqpwztnihqpnylpfbr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wzynwxbaoaz","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"xvejesqgnmajlcjikipjkgdwzvqqquyjnzcksrb","blppopdupk":"owmjafiqfyhmuupexxdncrpikbdaisjddkjefzdcccowcjjjfypbrmakczqwwxyjllerdydlvqncsptykddkutppkhuffgambapndgpfbwqkwaiqyv","ctzlovk":"fsebhulfpqgiejx","ieh":"jxgfpjkagbygopencdochqqbxbvplfjvlxxu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"hknrlgcumlzobfeopawttxnbpslvqrskhxxgxkbklnops","pblh":"xjyw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hknrlgcumlzobfeopawttxnbpslvqrskhxxgxkbklnops","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"rauqnhudranrpubn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","tscqwbp":"psvggald","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"iunqyebypuegyiuxqdledxkfgfjqzzkbqycudjuurdylcpstqvpntqepwdwmljhjhksbfexxvrbmzyksflmdzesooaqyconsqddfvdkpyyeqklgjsjtq","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilrttpxugzfgidsrxihssqaelfbubxthcxdaiygbicuk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"lctqkbzdkyunbqdfzpkynodgypdtmtkgvernmskttpx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"cfdmrn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"arqoe","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zctpovtdn","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"nrmpn","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pbkqpalfdeekpijyvhxlpzfpdxzlukeuxjsapcmakdwcbghacjguqneasiugmixxmtmfgspwdlzvmekardxcivuxjtwuobxfoqusdpxfksaprqpolmwh","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"cxscj"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rhynytlhdkgmgsnrmqulftnccgmretphwuzpkpwfdjmc","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oohkeecfaviftytyroume","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ettexaxcuzzebimguwisjgdzkp","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"qrf","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cnxibuvffassakcmmrvqreberdcciigvzbhnwiopjrkbcsftjjppbnjdrflwzaldfyvxtcpoaifnwddzentfzyvjelkkuuegcrmrsivfzmztpg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"cxscj"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"usnzfyzekwrjvvknujxkia","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"nrmpn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"qoqvtwgxv","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qrf","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fvdstbwwmmnziiasbrekmwbhsuarmvudyxrugpznafasmynxrr","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"itpphvauiaewop","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"ancb","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ipeajwoexpsntdntqlrlzfhdwpiehbdtx","hgxdclemc":"n","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","uqzwcw":"wdzz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weydylsxuhqnjzd"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qrf","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","falfsixzyqhyfa":"gguwreyy","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"tclcwonu","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rcvxhwuwyxjy","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"shbhoqamhpewxfchoiladlwjudwmlujzamqmgvxeiag","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"dzghgulfoufeb","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"axpazocbzturpntayf","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"nrmpn","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"xpelnlhltbbtzbvpvoxuqswqqtxzgdzdvnjlxuwc","blppopdupk":"pbcoeekuqzdpqxvmfqaqzdyynwrszbzfynxgxxidrjuxofstbbwurvsfsulijztgienfpmnsyjsxtspmydvqpnflmaladingzzlwarbgcxglznsv","ctzlovk":"vyrhcjqecymyj","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","pblh":"whopi","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rlteaydepwuhffwoudcskidothtdjcxdgeaeieuhneu","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kyicisxtkqaqztdlhscd"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qrf","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plgrrxfjdxddfwmpfhezwqbggbnvftzagmtpksbhh","vgcdywyzlg":"hkzfg","xbdvu":"kovaenaudop","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","hri":"cj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"raxvighthtuinytjpv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yinbzjemqoltfxtsojmshcdzhyzbsvqypdpezvg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"cfdmrn","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"tclcwonu","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"siturpmrtwu","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"cfdmrn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"qvsqumhfxyjteduzvarffnuqknganjs","blppopdupk":"bjrakyroyeolkodfkwfelpanrqemzegrbrpqoexlopcvyscuhvnxbqapfuzxfhrvkdyouhrjyumqgbrkdgyhmuoifgitfylvjalsjzuzgtozcatoqljyttxhcswqprmcpuvrnipkxnpayxhdat","ekcpsjdhklxdqtbxq":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","ekwef":"x","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"ttqxzs","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmifpsmnfkoucqqaytcdtffqatpaizydvzhvnqzs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qylan","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"ylspwraangebxnmugmgcevwmdgzgexdwqztyoeq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"bkseyqulaerxmgqwnwtzdkorhnfazyjianzq","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"qylan","etunlkkq":"zjlldozvbg","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"ancb","etunlkkq":"axpazocbzturpntayf","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qrf","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"tclcwonu","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"wrqkz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwzyjstzxhgdytnelgmfdsutwrmlvtfbzsiafek","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"nrmpn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"trufkngxmcgmlpqsnkxscujlqjgkitvqqz","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcdmgmvabcbsrudwdnbomtbpmwwvpnmvqgiwrljpwf","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ydphwekdxzrlqtcsxmdqovosqsseegmhfyxcxncxxcqp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"idtllbqpqcm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ogretmezwvjusezjypoueantpyfqxoobufswuzjku","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"yvzqddnymlbcmaawboreiwrmxkfdrmnochktxhterorjvspdzhnkzsdoepojzdwsndobtodaxddodbyfvwnwwlcguttgwixdtulnapisws","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vodnqqrggrnsuqtbkxvbkpejrtwnyxfoaezubdcbrb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"twg","etunlkkq":"dfvojzpvrnjbjec","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyjspystcljpgqqlekguamafrzgzpxhgmumgyzzli","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"cypsfjdeux"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"whwquoopsofiqzfmptrdhwthbfnucgobvjfugvmhbjnebnlazskyqznlnhgcivebktpoublrbxbjujsniirijnqzfpytskjnusyujbtpawtskomwfrkuuztpkrjh","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eytmhommhsegxotbplyzpmrejshwlmugleyzcwpjdmhr","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vckwl"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"vbehg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"itpphvauiaewop","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"stifnbotxsjbmioxpadfanodc"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xswopdmomqohxshxxfxjjnnqqmntcqipfygnorpt","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"khmglbovgkce","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"faohmhxwm","dwmtjtmmto":"frahvzgbjzfyjpporkkfsyfbolgwkm","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lhevcrpubwsebnpqpjcajvgsuwnnrimbcbecmtaadjanw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xlgm"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"yrkq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrsrfkfcaykqpjvtfczamgtdgdrxnxsnrfmxpnsalcal","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"tclcwonu","falfsixzyqhyfa":"hknigwcbmza","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ildddvgmacyf","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"eogbhztaswbjlgfflfjtzlhhlcppzminodwfuxjdorzxcmxbqdybhbqstwvgjajwfkacnmvxnwwbtzrbdbqinilixoqyopqlzbmvixwbcvfuo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ftntuavxqptzfidqertvvccybbawzwvwdqjqsyuvychn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"emxiatyedsrgcibhfmpksbzucaucm","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcuqxfuhllwqrebvnxrbvwemmjhymiarjablaq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ooslrmpsdznbp","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"ancb","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gubkvkvrgru"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtdbxjqfabkuqueexndnrfobfuknidscmayasipswmyi","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"siturpmrtwu","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"ancb","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hcwdzkkcwhdyqkasgnlosfsfzgxotwkgluvxmbfaqck","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yxzsnxmnlvwdvecehjmcqxaskuawooyoakyscvssaz","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"hvququ","dwmtjtmmto":"ycpxlezaegtkqqxylgbvbec","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"jornwfxopq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qrjgyexqilhxnuuztmuwcbwyfusynwddxicsmltrwkfesgg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"vckwl"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zoponsahdowz","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"hplz","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"tclcwonu","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"qrf","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","syweycqmwiuhe":"eqod","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"urqdgi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","evp":"qfhom","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"nrmpn","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","tdba":"ywqyngyvg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"enugegojuqgrzlacfdocbyhlt","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gmoiatuedo","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ummziymosjzlus"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"njwuktdmrpgsbv","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"futwedrqghxsnfzydhtjwdkxriwihxftzsttcmkn","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vckwl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"zuh","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"cxscj"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"ktoiztkgyomjpejbqbnsmclxaqjgfrbexbhmpeu","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"tclcwonu","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"yprsuroshyizfahejfyrcdscgbnmsxcau","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"joopcrzyjeso","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xilgwaaplwxrmtdkuehnrpydjxrsrpyfejqrhrjyjmhttfzwnjfcmqqfnyvpxfkenaqpdvigqxceurgalguupzmakmffvuaprigvgsraaobgs","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"ioedmdlmuhbekvzcixozacef","blppopdupk":"qnxfczijjrasglbosotwkcmlhonemfprwuapsmmjkdkzxjnzlirubyrxpkkrwrjjlmdyvfphluqrdsrhpmfqhqnugpucvtljaufonahwdaotmkpmqplvcqeykbcxmdashscvsvcctnpdtykzko","ekcpsjdhklxdqtbxq":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","fuuprqibz":"e","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apojxwxkbamoanwuluyfuibgkirvhuoxcbjqqtekyte","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vntbeaexkddylzxkqbsqtslepeymexgafmaixrzkuzzcajm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqboiagbigfjvqwjyfrcgbjvnadgprjnzhbljnl","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"xwzoppsnzeip","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"qylan","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"urqdgi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qefycqpupocqifihuxvehmptqhhzluypdgayuaj","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"qgwouzpckbreflzlkebwkbevlzvlzmrxvyrfpken","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"gbndmnwzqnmy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dlvxmdatlehalllwnhlj","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","hri":"zx","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"azbqfdfxn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cxscj"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"ancb","etunlkkq":"exsworud","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"nrmpn","etunlkkq":"iiywzsmzjaa","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"ancb","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vfzfmcwxqwr"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"rwouiowneyicc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"cj","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wfwgjpntzlallvcteuiulazzoizcacgutrbxolqcnajqlkqiyftdlmxvtqoizxodlirfcxftwoczboweswxijprjvbbuewpnluxjgjcwrcgwztxbah","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"togsxshudpnmluicfmvdimgblosusnmegjvqwkwpii","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"twuuuqtahwfbjbqzevwxylhhljlaavisvvrtjggt","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pamowe"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"qylan","etunlkkq":"zixjqheslchfxr","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"isovbzcubngbjxuglvhoejudeskujsxpdzbnkpxtdsddiqngiwiavqkmfqqqrxhxzmaixtnyvmihimrnrlymjbiobkvfriknartfcxfebqzg","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"einziarxcojrkbmupguferfgdhpfhtkjipgcqczfv","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emeyoclpafcyoesvmwjokigqiofaclglcpgahozviw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"goqmakvzdty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"nyinbxapugjgsteoptzhtgmufncymsphxhnmclzwumyxwpfpovuxkmjnajqyrlnxxlxhschnbavehcwlgrudkwasxoptzncjkwpkcrnszhdxtnbcbhjlspwosxtl","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"kkvn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","evp":"viibd","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"jlbte","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"dsbtdkcwumabjexzmtnllxabv","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gnhgwyknewzavtgawwozcjogspvhxvmjccykbptxuo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmfkjfwmyzxlynwfybaryyprbkpcnqsoawljrfgazypls","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"wxamaihizoqgz","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"wbfug","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"ogpnhcqlqgblviywlaheqhjrdm","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"b","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hgevfljpbuuuklchhszuzayybresjnkszpsurefbenvqjcmiwoneolxhbnbcptvuvxjxthikrmobszjgfffniwskqqjttmtgzvzzrwuabksxeclnnf","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rnxdvdxpulvifzixnuyikeynopgfqzilgngjhfnwqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"acpqihqmpfxdcl","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"yfsjxollqbcsweifhev","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ecmepmagopse","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"fbhewcucqxefvtgvticrkze","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"crklciyhjooclnxoohcyou"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"rdvfwndi","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uktahpjnhawnbksxsuhygqwcyopkoeklzoeaesmwc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"pkxpvcdbrrnzz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"gbkyhjbpkudxirnnucyx","dwmtjtmmto":"xhvabpqsgexlubc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ddfpazmwahfrztcwppaevoxbsrhdyiwdyezqaznvvfldm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"lmcov"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"psqsixlkidmttjgksguvjepi","dwmtjtmmto":"fljn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"podqkligqxonnamztuwvdktyoftkfvwzxqxfmmnlpduc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"nrmpn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"oopf","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yinbzjemqoltfxtsojmshcdzhyzbsvqypdpezvg","vgcdywyzlg":"sqswy","xbdvu":"wpondrs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"lokc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qrf","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxldlpujxsohhaoeopqkbpwlglodiuncnigcxktx","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ytldbdibyigkczkmqezdhitmmwijcyjzdodfyixqaduebvpnfxhbmesiicdmnnjzffiekwertffkphrrxlntnixjgqkooxxqajocparpj","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fsglltoaquifgcyjwhegyizryxekjirrzdtlezbzdskc","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"hpbjjyoflvaiczmzhxlggfgrqtylgvktsknvswrmwhcmhabjqkkislerttioikgsnggemwoaqszenegsekqoktsgcbusfgdjilgnbmrdehgispeodzjvcvcfpijuogddshgeiqrgxaozvelwfe","ekcpsjdhklxdqtbxq":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","evp":"rwgy","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrintyvgnqmkixcbyuiiuforjohsgnfhysqmekltorw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iapovqbuvfaadwqkjrgwwmcuyjhkbwzldwpuxqqno","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"sjdxzhdafnmqrkullkuhsjwpomykebqtwdgj","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zeixhvlzqhkqy","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ekykukdrwpa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"ykmnrrgcztezipgxstbktgglo","alfiwrjon":"zy","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gwgbtxddrncfhqbqf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"cfdmrn","etunlkkq":"ougfdjntej","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"twcqdwgxxtkylhyspfvytjilw","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"nrmpn","etunlkkq":"acpqihqmpfxdcl","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ytqiwfshrmqbwv"} -{"__name__":"venrwmpwitfsqpzxjehpdpgpdclrgtbbgeetyjamnzsmsywp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"itpphvauiaewop","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bhihsyhrdnntlfrlytzleornjbpsoqlidagewacqurwhhfiuytefiigbsdtqtjgfddunsqnxkrazloxkrbjqfsjfkszxilkgdrqsiwfrismlbxbrhysq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"phvwmocuhvrjuiiogyivranjwesigvsolnjjdfmqssod","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttsllazlkzliaqcdmmrgnnoaytcwbmtldaopgpjhrunmwxv","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"rnma","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"atvncxmhvtmaxvpyjgxitqrksgwagnbzjjtulmof","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gbndmnwzqnmy","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mcouudlkrswnbnmdcnczixb","dfnid":"xruthyonhcmeqxx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","rgzo":"xruthyonhcmeqxx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"wcfqktkoudcqwcwfxiixqjmfhoepijxsikehftjszsfbdtisgcxrkjxmitzcvkxoixbfltgyxdkdtnhuxcucrnxyiqulw","ieh":"doaexwruqyuyqkdsydpcc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"txhyxhowucvuxukjeorlrwdipoauymcmzgghmcqnq","updpov":"ttqxzs","uttbgy":"fgzekddeexgiusk","vgcdywyzlg":"ucafvj","xbllrft":"xdh","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fpgnn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"almzkoydycmybopzlnmfqtvzkznrngmldvdatwiuhadde","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aaoigqigdkpyacdotireqbg","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"itpphvauiaewop","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"nrmpn","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","tdba":"udndkuv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yekqamrfavckonodvlvjsarehvghhfytytgzbsb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"ihfka","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"ecbdtjhapvvyxlyxlyzqqcwmuxgthxafgccmk","blppopdupk":"wiadaxzlplrpzmlfmgudqyamywqujxwhlnpesdvbymnxiqxewgdppmxqhirctoyjeohujoorttalbyojuzpekjbgftxtoekmezsaspauidjvhqjpw","ctzlovk":"caifsvcsvarecfzalh","ieh":"bjsimouwatoyxdhprfdjeevechvhhd","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","pblh":"odvlg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krhnitqmzpqzcvlyxmgcjqlmdgmrjrycgwmrsfsdwfzd","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"uksakntvtxfpjftjvvyrkiwo"} -{"__name__":"nkketvqnygwocgfagxjdmghyjamrcszsghj","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"ancb","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"opbbklsdpshuw","falfsixzyqhyfa":"aiwohb","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qrf","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qrf","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imcigmuaylniuwkpwjuippiezwqtaf"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","vgcdywyzlg":"sqswy","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qdcrwfotdlw","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vcvbrlapxvawqbpvckvkolkrzkp","blppopdupk":"biqzcvxipacxtyyxyvlgkbwixkzuquqcjsqynssndmeyuqzzcytaeawhartclijfmjkcvvhorzegviiugsfbrzgsnpdxzbhehjxlfxpjkggbojpqwm","ieh":"rxnnxjihclrhuzepbsnnbcqlopdwevz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ziwxmqzuvyzofimvkmdnkhcbieeawksjkpbihlyraaudh","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"ce","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"woitfaqnqgncxsuhceedpmpmdrcurcdphfyoijoitddxtjrnmcipgcdyfycbeyyfvflwvealrtxfjwpqvqrdictteuhpnncalfxcvzfqmzvskeqnjp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"emvtmfxrqjzxgnofkwvlnspmgldeplgbygbyudgdjr","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tchxdymryblvcqzkizv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"segtjcpbunymccogdcijxnlpcmtdzmdnfuvkjdecv","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"yfsjxollqbcsweifhev","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"rzjbqyjbrhrvxfxzkujefcjof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjwqoqzsodeduazxjmrlwbyjripdxmsjcuofaarsxvbh","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"lmcov"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"urqdgi"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"tcn","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qzqlevvjemljxoyqxudzkzwpyukkzlolvtuxvkw","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bkjpxzozqkugpraxazvudkvpnuhwuzwxfkw","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"qylan","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bqknijdizwjdcxkvjsoamincagsgbyx","blppopdupk":"uasvtycnjwyschwduavvsjqoxfcfxtmzxtdgekpfquywkafakhtghqqplsvllyyjdrvxswpikldcpjgficihtzuaglwnngpqfaqrhmziogmvdslpzhsaxdavyzbirhdcyjfhgvbqjuclnqdbpe","ekcpsjdhklxdqtbxq":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"xt","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"boxdnawfazqoqjpbp","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"mhwsrwtuazfpvmxupnvkeh"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbbmnyoszjebmddenivozzbfzcwxkoyhgdpqhji","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"cifldjacmcwggmfrhlbgmjpdi","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"ancb","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ofbhnfrdlwkomlji"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"coyrrmlztpeghnklqbkhzftuakchhhbodokxffuc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qrf","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"aiwgzhhezan"} -{"__name__":"gobqrqqfbgctlbmxixvezchcrecxlotlcujjdctip","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bolabvvebqsdc","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"dqdyybvuplmcyzlzaimvufxjlvb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"opbbklsdpshuw","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"zcytmpcyekxx","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"nrmpn","etunlkkq":"tayhmadil","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vmkmcdqllbfcjznmkadymladditrvpldvozecnozmzhlvsdzudmyydryeysakhazxeycpltrickpapwyhloonftylqapnjnawbkrojkbou","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpybwhjjbxxdxjagsrjxuvamkynjmmixlwldpsjfpx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"tclcwonu","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"pknjupklfiht","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"qylan","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ezvkfamwmgjyjmuzs"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"pxhzdxclxuhiasnqqngjpthnbneonzlkvaxjuakmnjprvfhnrcomcmuveruxaheamqwifwjysrfxxrstzjgvrpsbudzpttitmzvyzvpdxapsuww","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vfwcvrcilglhaofjyprgdkghngillzcumvyzvztkdg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"backcyon"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vgqnonsyagclv","pdrzuaao":"zx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"tclcwonu","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ulkpybihyvvmgrfrclmtqv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"cfdmrn","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zjpelfitrwfreavijguijgez","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dseltiynklzdssbmjnoahsmwwpgoinypptruamk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"tclcwonu","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"mdeeagkzhqh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"suva","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"cfdmrn","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"uhbdlhojlfxgpnwprcrwjkjoxolygi","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dnxswkzvrxmjgawklpiohylyznroqaocevrniqqaqun","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"ancb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svk":"aka","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"backcyon"} -{"__name__":"ddqkbfaufrcvixifuzofkr","cfwo":"kjzywktujpghaoh","ctzlovk":"ekuevjfsn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijvwhjnwifrphbtkciwmsxljlzkjnyoffnfxxsksmugmspv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","evp":"nqsa","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"ancb","etunlkkq":"npazsidmo","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jfxu","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"tclcwonu","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"cldelvrionffeffbjlymdjbfbwfmqhivolgmwyj","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"qylan","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","tdba":"udndkuv","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"cmtltaifjsqdgxodudchg","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"backcyon"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"dgt","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rktiiubmmbsoeevyzyiahoqpewbtlarmftpejrnbgep","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywvbzajgzflxmhubkuibcumjvdcpprntafjbcmnt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qrf","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"pfceuvxirqvvybkyaosinr","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vehzqbom"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jdercoqkmhaawfwylrojjctqbnfordrkhrhbpcfqvmucstbsprrfyrjbeghnkukffkktrhgishuszssudwuitextnrnhqznfzqlfbio","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shlfvqnhiqagnczllulefsiurfqoeglicrycdnatyk","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"qrf","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uspxvddkalfunlpguykvgmslrrceulgcemfiemyzmrlapsjpgbkcnudgkqgadqvhxqxuvfnbftvrtplmebonjypynodaikcjhezrvfiureo","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxvsukrsqkqkmjnzsrafqbimewuzrpwylztjnpjyqf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vckwl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"thpkpuwaiitooqrqdkxsjbehlalylpdc","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"smwewigzedvfeyvvm","falfsixzyqhyfa":"wxaltvrsvltitntk","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fjrdlhvhvwyhsppbqeblsnkrsftpxkdkotpwidxfj","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"cwnzqdcfgvrejrxmufdpgzxdurmuvnajndmltcjznwyskxjkaczdbyeelcfxoxsofblzhusobgvqoyokvflweszusqogamtayhpjoekgvx","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqgsyihihdlotomilozxdpixbghlgbvllfxbsdydou","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"jxnphafzegoyujhjfxexypwdfdfvtck","alfiwrjon":"cj","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"yurfcohbpysjpua","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zmzttonsdsuyzsxlpknylejixdmcgkjzxjvlqbjfxvtuutmnfnhgixhmnbryjkqreopkdhewcpakrgdwlpmbfleraumbvkkepnqjevktfner","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrmlncommdlcxhdeqwozzhhqsbbnfxqasjhcgfgyt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vlffifaziyqrzewmfxy"} -{"__name__":"mhwdusgekkyaeilzqudmqvvbmndlvttmesnamrcie","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"qylan","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"urqdgi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vbehg"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnhzfexpxfydjohkfqazbdqwhujgqtumbaqlogb","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"tclcwonu","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"jlbte","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"imfcctmgchm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"gvgmvjeqruanncjragetwfmqfa","blppopdupk":"igcbmpbebbjuzvttdskglsjdxhjybucqcdgwigpmcvgaxbkgxqukfhesechvnkazwxignykowfvcsbbtqnzszzlbnhqfe","ieh":"uicvvwpqrtzyyexgvykspyt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otrmefzvmxowshtaccrsmeorpospehbtkndxcdgmi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qyowgdmozzlgadvl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"dtzfzjnzhdavrpkflqenyjmxlbhzfhpgydwgfcjppesplshpzlkipeuvmfhcttktqqtesvmlmjmlxdfbjeeiefapmxihvvwclhxgqaltmo","bvqcfmtc":"nrmpn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"heoccfualnfiozshgdpdvtuyihwbopgcflzhwsunakfzy","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"nrmpn","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"zpajkrmrgsbrkw"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usbacaactpkjdzvwjiohgsrbajntcwzjteziapfx","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"twg","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"dgt","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iztxnfvcmxaylecwntnytihetniaqohvpfycpvi","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"zotcxvwuoghmlkxudiuguliwjnlaudrpjtodoaabiohoqnsqjooenxrcixpdgicwykcyzfgejiuavdqdqpjvwdzkzifwvvgcnuygjjblscrnh","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"vcnfxzoxiivmquftaszvnywvhpaegejuziuqvmnju","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"crhvfxqcayauldm"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"nodujuxmjvw","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","evp":"agfh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"nrmpn","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"gtxnycwmgokmmxuhmomkp"} -{"__name__":"zgmcuqkavgkztzrzpxwgumpmzh","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzmlwrzoykwjqjrcosidzdcbloonazacdjhjxpq","vgcdywyzlg":"hkzfg","xbdvu":"zmtjigya","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"cfdmrn","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"imml","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fewwafmgtkrgvjbjwrzzzqxpfgdiujlouzhuszgba","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"qmkhqeyfebqljpjxzwcwpdtnosdpqltjwligmfbbcvjryargcijmoztjrfbjqckimmuqzbwxxqbsnnbmoavfkckojpagcegzjvuudfrsratu","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsjsvlknclkezfdzmhhgfdsltblmfckobgtvhkpepqhh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zmlwd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggjxmusojvzzhfmdhmikmcabyzjsyecetgduraswwpfiz","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"hokzhnrrcnxxygzfxvvhcydbynrkwxlkmjqqjaweedmcwumdcjchyesgffrgesnewsspzdwhanrgxiukfsxhdmmrhdyzizfhblycjvkotrvvqzufuwvymfpuimwoxpudmixpiiipdfffbigjng","ekcpsjdhklxdqtbxq":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","evp":"tchuz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvidsmoddroytskdlndzltiikyfowgefppmbgiyaswb","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"twg","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"twg","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"riqkhsflcplj","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oooumpkdiiebzxciwkvclowmjyhrbzwlhyqkqnjlotuum","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"qrf","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijvwhjnwifrphbtkciwmsxljlzkjnyoffnfxxsksmugmspv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xbrcriejawqrgkzfelghxxu","blppopdupk":"hnmqqgadhwitcskitkyhnzzjajpagnpvbwcuwxpxqllpwsxxrdnisdjmfhafcwljuxosbfxitvnfdlfzjdoavqmwizutbzjfoenkqhbwnaxeubxmdhcugrjzaaoebgojahgundegfqcovezmih","ekcpsjdhklxdqtbxq":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"zqoqzwnfvbs","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lidknmgmekrviboxpoztqfjxcskmdrugsdshjhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lmcov"} -{"__name__":"lapcotagxgjbbffzstbktwonvroywgiegixympb","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"backcyon"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"ougfdjntej","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"swzdgucytpqp","zigoeqifdui":"klzmccomzliym"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"zkme","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wvrjybrgndasebpsliiq","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qylan","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"qkyetutevfbe","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"fdjsaxpwsqummpenvjxqhihrpxwasyfgjalmgodst","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"vbehg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"lmcov"} -{"__name__":"kodsrjoxhaceicifcoojzblwtl","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgwhuzoqssngicwmsvhzojsqnydfezuklahuadritgt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"uhzmrfopfvwroivzhsljmzulbuoscidqperwqcjpknkkijdidonhyuklnldzyteyhmgcynmqkznunbnhdmknltxkmaalxaaqvxaxosunvuph","bvqcfmtc":"qrf","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"cfdmrn","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"lmyipuwybrqogakmhzoozlaesq","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"lfibfevwidhy","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bjkousgeftxxfdtjnlqrxlmoninkabhrncfcfyyofylhrsbipbkvrqzfiwjktolxeooxxradrjxxgcmwwxbtscnwejqoqmfqazmfedulpbchpep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"keinenwhkwuawwqqoqphcmrnypiylwosgzwazvvyuxlmzfu","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"qylan","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wywszhofdmsjeqgvlgpaowbujajrofuosikodgfevwtjwfxcxhjfwyqcdzhtfebyxnexyasaqtmsqlzfpuqsyvvcxkwpsmaviqjyxre","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vujiubytvueemscvadqyayyjlgqqgvscifedojdvpn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tkifccpboffhosbar","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"ok","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"lkeuzcsluavtnjqmqvbqfqbcclloijnxftiqkiatgdkxooqkrrihakkelfgzzoplkgbkfjczlwuojsymgzsbzxnncxhvuudwahbuekzateshp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eelykaxwpjapieiaguavftifjwfifeajbsqcrmuvrh","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"fujtqcjthahsmrdbtxkjgnlvaj","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqboiagbigfjvqwjyfrcgbjvnadgprjnzhbljnl","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"udemmaqytcipadyqqfxvpeymjcnfygrhqcyamam","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"byqohjrlwlavjtwscdtwhvb","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"f","pblh":"seokoytqqhjamah","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ikakptnuwgxefsgedpczwobyrhzdtlazvuncurkqsrophbrulspyklmoehpcoqmawwtmowrfypkfrutwsnldvvjqcgzqtgogtdxdvrs","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bizioiuynkbhptycuxhgjcxanqxxareipwkluoclef","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"siemlonfzmiyjbztbscmxhtmhjzjirbxjqbmctsqmnrnsaqghtlpdkbwqhihkhmvnfglrvatzwcwpsdpwhievchixovvzxcbrlzijrhsnthlclpgjodlwkdkkc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bpbhhuwhoxvjmrjvybprmandbrbrjzereemcjjujwi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"qrf","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"clfmhmphdksxlsgzccxmwmwpslhgpqakeceixelyfwlnik","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"tclcwonu","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"edxbpeshlesmqkibnzrawjzxnmfwjzibsykggilaalwpyeqmccajflkekqamvycgxzesvavdgkbwvmrkotklztqfolspspmepfjwvgieopoxl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vifktkkftjtcvfzsqicpgabwloledvahguoejwumucnq","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vbehg"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ucywmyfbdaszdvfghrmx"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"irlhqyxllhvcpsoybphkqdlrdmknqgjuzracoaaesuolnxyipngqxchlyjthjmkovlqkjtunsrimeypqreawaesbvvjrfhvlcnmegkkvcflemutrc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"soxmodqcbtikxutidnrmqpchzfhzpzuneoqhlviivoqk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"izaouzrhgnnmvwcvglflivgu","blppopdupk":"skopizqrxinjxraauuhkvznrlubfobdspbgrkqvnlsqdqvzzfuguhszimidfpmlodixjqyetdetpfoimofxfqnzyisyawynvavexsorhomlpkanekrgrfmtfxeptmhrmthqbrjvbgszfscjpht","ekcpsjdhklxdqtbxq":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hebndpekalqjf","pdrzuaao":"cj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cmsxvvrrnurqganvagntmvtqlyxctjjpeyexxakhwhi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"yrkq","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mvhexnkytcejyoyyzexdfbyyyijcbtnnkcsldeknemhlg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"twg","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qcayhbpgiubjrrsiex"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"itpphvauiaewop","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"bxfmnwqrztmbvrzxp"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vtnkbytepfcffjavymrj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jarjoxcoyjhaqdvjkmzmtjwgf","cerhqc":"ewim","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lnpreywtizczqkxmdnkkfitvwiobpnxurvlmtxa","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"masro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vxdonzumowqoxhhuhjmjznyibbfdimbbtrouflfw","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"cfdmrn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"srsgcckqwsgmkyxyijvensyjaerolyrtezpftqdbanczyeojacufuhlaobvhccnufcwjqqcvnrtepusbqzbpcmvwgeccbflvzkvcden","bvqcfmtc":"tclcwonu","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udmmcuwzvrnykwmgraqydwnggxzpmhnzdyvlqdfcxl","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"rulycgtaazshbisigoxoqg","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcylldhoqtfxviauhnurtwliwyqasvohcuxjqoozimpt","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"opbbklsdpshuw","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"csijzqyunsaeehooxgtjfgcuskbxfxtptswsefdeviuu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"twg","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yrdwlkjklpnffscsknlpoxeqvhhkfxrcvldwjwxq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"nrmpn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"ancb","etunlkkq":"iiywzsmzjaa","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"qylan","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qylan","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"vrmkpcjgpzunqxotinocskxqpyftso","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kwmukjhqxidbbifqoyrigwbuzfzxgyccqummjquvldjyetn","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vrbbytiuhdaeojmn"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"qbcgaeoqyhmywrjwevlacvlkuqfrpyrsdzohzrdihlibxnwwiytnsprjxgecgoezniusdhekvvxiruisegezypfkyjnhxuwseskoxhiyvachxjqdyxfw","ctzlovk":"hbheduxvqoctxyjr","ieh":"qoceikhhrsgziarsfhnjzmmlekfbaqcsqijfn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","pblh":"dsdiro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hwubbqypaxucvqzcssbdhtqorheksywaovbmicjytsqexjv","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"xpelnlhltbbtzbvpvoxuqswqqtxzgdzdvnjlxuwc","blppopdupk":"deaegnopmjliyunrolowsigiibbmyalsqszffbzcsdfbrtivdogxpdwjkbuysrdbqpegzytedaebascwkooqdsiblbrcwtxbaizwcfejxljwrjvil","ctzlovk":"shmqjyspivtuqfthguppzanrsolqxr","ieh":"feppqkktfdlxemexrmydsooblkrieqbobwhgq","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"xjpqhqylehyroqceubrtlysitbpyqvofrxoidxckgure","pblh":"rsnelvpiy","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xjpqhqylehyroqceubrtlysitbpyqvofrxoidxckgure","tscqwbp":"odflz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"shmqjyspivtuqfthguppzanrsolqxr"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"nrmpn","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"xihyualuluznnicboxlgi","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","vgcdywyzlg":"hkzfg","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"eiotatugcrayhfym"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qweetsywxiwkuvgttsqpmjfoizsaxpdqlibvrhclz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"oxhnyvuefdvsg"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"geeonwqcjetuzvkjgspixgyeykbsimgjxmxybaokktgzwxjmhmqkfrddtkdmurfluonbfcrkhigkqbikpswecwrxukjgijbbmueojunurenau","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ceoxjxpwzmkknkevzurlxnusukjqzyyfvdntyghqljjv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"cfsubifq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jlxchjeyanovaxvkbqrxvidhxahmcaxcjzhhpld","vgcdywyzlg":"sqswy","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lmcov"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"tclcwonu","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"skxd","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kphrcchgymuhtrbvwsidoqrwniwyluwmqigqzucuzt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qrf","etunlkkq":"zepjaujpqzepo","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"qvetgjibxdxwozfipefhnlrsreg","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mahktlgmtdshckidfptsazcjsxsqxmznhaiwmifqycd","vgcdywyzlg":"ucafvj","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"qylan","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"vftqxjcxgapgth","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"idscjgkrnflzvfrypdwiwizlwkyujqmktnysesajmfto","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","etunlkkq":"nwfqgvq","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fhgghzltlieokgtcrwhjgbcuhmtpdfjxsuwvttm","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"omtbxrqpzaxwbsgsvgizdfbfuqwljzeyartehbiqlecexufjrmuqunztaqvlcsoufekzklzttcvhzlcedrywvxgmrfbxqkpzpuubniwnaapxgzgmkk","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btgljrceynmxawexfikxzxsgaaszirmkujsenouxyd","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hknrlgcumlzobfeopawttxnbpslvqrskhxxgxkbklnops","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"nrmpn","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"zcljlfakrmuxzomt","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"rvjqbyvkljtxlbwcislngplde","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kfbcughxasbamujhmatzqknsxoqckopqjslggfbkuq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"yhijkxdtmfig","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mwdefwelbquvxohgcjecuptg","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"vvzw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfzthhynimeyzvrwvgibidsytxpgvbgthkothdmky","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"kl","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"qkcvadvzqhyokjpiq"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"xfuuaaggitzgqkjhrtootpuw","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"ekykukdrwpa"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"zwwcjibqcbdbkfvojcjlgmubrcjhnmwdvpwppve","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"vzjkxmsazdgyxk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eawwddlfouuftssggwcjgabumotq","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"opbbklsdpshuw","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"cfdmrn","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"xlgm"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cssldvxtmczfbytoucyrubapolzwmkjwdvpvwaudopsbzmqsgjbjuocfnaqzsservgwedkxdshncuwldwddfjpjjjapszhmblpliiufxfqsx","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxwxhacudqumaimmttenzptzwrhuqgsricbgkygqa","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"hvxvdj","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xbndrdmkcjjygbreweboxuzxfkeabpkezsrldennq","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"kcfwc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"itqdb","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qeskiwkiroccrkndlmkpubniiyitybtyszyhseevcci","vgcdywyzlg":"sqswy","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"qylan","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xvbzfxsbqwmtlqrypz","blppopdupk":"opyhpnihglxpngssglhmhqitqalniverujfruycotbwlmtnhfdtksjzwzvpgrbzyuriztmsxndvfgvrjgedvzernozhseibhoajxatscjoepbzbefbjgbmfwtjyyjbbafujvdrzfljtredsikqqbh","ekcpsjdhklxdqtbxq":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","hri":"wk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bjtnkbrnvzywhycljahpfqedx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"knrtqruikdpygkvtiowffkdxnufjlrpitdlwshfenzokx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"kqikwpmjppjnjjfstierlfkxqxivxmgvvdifnsquvpqkhzssfdfstjcrkphhqoiotnvebxfztpbmhlgqifiyfcgekhv","ieh":"arzstfkrgmiufwkqgwmv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jlxchjeyanovaxvkbqrxvidhxahmcaxcjzhhpld","updpov":"pizr","uttbgy":"jlhiyxrwrlnbcwk","vgcdywyzlg":"sqswy","xbllrft":"xdh","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rheyvzihycguhkokcwjjpzebjoubwrkmrmpwbysvwpqz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bbfayeomgalilsuoqxahaqytpskjmyxrowkzulcecieucueythswwezymnivsobknsgxcjyloixfygttprgvjlxqkxvjbsrckcovybaeypgmz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"loovqqdbmiauebgnrsilmdbvqgmzmofdfxacmbedzd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"ljtnzratparvtzbwywsxjhqvhawjbtrforjnbwbhlsgd","blppopdupk":"dpshyczcyuggthezfltqkksnhrixciccifqyjrsdzbzfpvdibwwsvcwxcwbpxmwaleixmrkmoxtpnmqwjhxjhjwibplbzedncseadci","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pzcnnptbhorrhmwuofrouufamsvxoeletzmescvzof","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"itpphvauiaewop","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"pdlqigmfekftuuxcetmxpas","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"phkycdhfedvdotsmniyngxpqhy","albxj":"mv","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"eizevxogntpegeix","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"itpphvauiaewop","etunlkkq":"vzyqu","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"assmvocyrtdhcxlduycjiqdthcqaiuahwihvidewxhwdaloejyywnhsbdkarlrkinqbzungpzeetoyzmvavwoblvplvbfyvnmugqepmneuenzzdit","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"mkzvsuzvslhtbzygorpqfopakziqvlrjgnjj","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qylan","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","syweycqmwiuhe":"nzhit","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"urqdgi"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"jfxu","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uceewpzcukolosansvgelzzjawmtdtcldfbmmgmzboli","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"twg","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nuvbmuhmpsanngfix"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"twg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"povkmnrzjdvdvrmdliufazisahbeyuwwpjrjgrcihaigymfzpunoqevyjoupyjamimesthxxdrskhglwmopllsswhjigiaogzgwagjbznvkh","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jombhhadrttjzsjgmqpjcfgobkuoiqvgfwodjmtxfdeu","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"fppdiltsbyplnzrshzgqlctapjhhwwsqszfuedljgcqzmpwbkzvpajdievblctifvcyikzhijveeakcoqaspdcsphzvjsimwueiwrjkojymwms","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fuoalkpcvyfefjcqwyjeaghuctawwgdddutzgnoqhos","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igkbqdronggnwpmwcdpqzijzcmjawweaeoetsdj","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"svjirbdylp","etunlkkq":"lgvxgwvqk","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"jujllmlcrcbceyjizwcbs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"cynevoymnerswffbvexnoiqcfmnuyebdgdfiasevbvnlrjxdbwhlyiwnjclhvozihtteiglxoradmdqdwbyzphwwtojhpfruukhynfknvwjvqqabrhvu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"likdrhyctzrybztonitbwjiwdzuttfsomdrwapvglpxw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cxscj"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vbehg"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bjikrnsrssxvykddejoiqdpwaozqcupffutiijdrylsubauinxbrdvjnxherzoloeklqlnmcjnmmbyefguynrclkutjldxnvzhhosyecmtfyjvl","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dltngqiuytgndegzppgrbjopcxlozdqllmxquhhwie","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dhtp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"kxgisfnhjrkmbtttjezkhdohqsxjtktkepjhqdqdwoyszdvnkfkngeeuzkfvzefjnmzlfsyzupjvksndzcdrurvyxqmllspewpxhbgh","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ahkhrixtcetgsyybrcmyuzpidbvwlxzkxciqxktricelntialvkdgcqoqkycluibxpmdzywxvhfecygatrlidwdlswonjnjiwbzfsmchcduneozoqksyvtkuqlobvtytqkiegdouqyvhaxddep","ekcpsjdhklxdqtbxq":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","evp":"evv","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nxukfkbqhxlmozjacubdkaxicxfecxiugnohzlkehfp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"tclcwonu","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"nrmpn","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"pejghajqueehobhjbhkbfkgd","dwmtjtmmto":"iaub","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"iexsmoautplsyvijeqrazsyjpxnhfmdvkicoo","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"rjyak","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hcwdzkkcwhdyqkasgnlosfsfzgxotwkgluvxmbfaqck","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tknqfoorboffavhrrlvnhxqlklsigfqew","blppopdupk":"pbiwvsqtwbgxjkonysqtthnlyjmarwryfogbcvpdarwxfmvarnyzdxzoxwdjfineqlnvzyamudjxjddghztisqmwxsecdifxxxygoshcr","bvqcfmtc":"nrmpn","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","tdba":"fniamdxx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"npqnjlsplot","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"xui","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iyrxtwmhgimzvtfxhbcjdjujbyzcptghyxtwopgvcfj","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"zrtloxqxbhzvmrflyoa","dfnid":"klxebrnzazuwfinmd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nyebqepemfiyaaakymkjoshdgepdvsxuiphnzstfj","rgzo":"klxebrnzazuwfinmd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"ancb","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"cmkwky"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"msqngzenwmfvswkzinynxcgxmgilnvpfmizblycdesjriqz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vwtikxfrehwiavicmkehkeeifplyeyynrnhqtbljxbzwdmyiezudaygizvqxyfquwhtmotytboenoznuygvrcfgleekofhhjfnsudsrvfxj","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grxfbpvdnfdshqivjgwnjjvtqkhkrkmkcmdhkzkixx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"hcfxgtx","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"xvtehgauxgftqhruibcesnzxffzjkwwkttwawjjnyzunnafciyfpjhofccmyffurgtrjzckzlxxuqcliwglixjpkiuhguqfmniyushlunjb","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"kgsfwapjhxdyrnfokflvohvn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"liwsfqjpmyqszpfpstmkceacoeyvgesdcssycd","svjirbdylp":"jnm","vgcdywyzlg":"ql","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"txzgishyluzmegckxonir","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njatfpwafymkzbqofogjaxgzhyspfv","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"xxwrzhyrjl","pdrzuaao":"f","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"lebofhhunumpflcukygpkhlulnocnyewjrzth","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","uqzwcw":"cvhivqmq","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"kwewcfpxxrbgaxkynkrhveacjjwkertgctsfcytgyewyvoqnjhpgzcydecwfqidaooiimukpsygfczjabgypmrbvypkpruwwzuaunnkon","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zxiroaddpivqzftvythackdaadnamymheyuxzpoaorigrulpyfokzqftoljoejggbbvnwpoarlkwtuotyloszdcqtjiclipdkuxlagzbs","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esxgjlmmdvmgrwtsspfnkwrrhzrydusivumgpyglwymu","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"nrmpn","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gbebirkoaqfebwzdkknkbtjtsitntdtlibtelivmijyyyxvvgillvhcekmsdmhzifkakuleicadmidriwinosccqlvqphmsxbbwjuvb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"vckwl"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"qf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgsvuoykhidrtkmirykzqwvgbnkccgmnpuelfqbradiek","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"opbbklsdpshuw","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"sbmeabtefsihzj","blppopdupk":"ezdqivofvdmmvldrmyxahviycvtuwdbowpsmlinxazpfajqlgejbegmpalzpttjzrasragltjlmvmafrrdvkmxwyemz","ieh":"kisamzngfdpbobopxgjt","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"edcuiswouwspjviukadmkacutfduskothycabeg","updpov":"ttqxzs","uttbgy":"gdcvfywqvcjmdqr","vgcdywyzlg":"hkzfg","xbllrft":"ojgbti","xlqhwhxrcya":"iowzmftnz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"lojrwejvwopnin"} -{"__name__":"tcuixidxptjiqlahjppzhnftwkkkpdjnjfhpb","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"urqdgi"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"gjihh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"uwxk","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"dgt","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rcvyppjxnvmqbbznbffhspr","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"nrmpn","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xlgm"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oohbjkdoxyppjhlyqoqltxpxqza","cerhqc":"imml","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fikljojwwevlmeodiugusrinmlbkkrjxatcndppmf","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jozyvfgzjgsbwefhiyzcqvjojpnpyfbqfzeeyltvpmppgalsypktcoqzfbqdrcatwtapnpqvmuvlcelxejmarseofdmerajkcrkqvhbuznrbeknikp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnfljaojkgaxviirtwohmsbifjojhtanohwhxjhrik","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ukwjbummvohrrntvzdggulktwcbtelhoamarszlinlkpktyjqyvvakuwixocitozyheekasxcspjbcbopwzkowvejjtpzdbjnwknjszncpzi","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyxfqenjmafyphnqhejdgfkjdacwqrikioaqcuwgezjt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zueiwkhsgxpjuzprjggr"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"evculwvirfxqpk","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"quxppmzdquj"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","etunlkkq":"mvvdjqejxnpmuhn","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"jcxkeywsyklcwdiivc","zigoeqifdui":"klzmccomzliym"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"xiegjtwwgbzwghmm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"zlwzk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"peezgcjzgogddgazorgtfjvwwfoacaqrvxcuwdosrrluoonzmzxvqlzbbmpgjmmuuxdiavhemihodtfafsgrxldgbgeajdvbvrzqkimnbszwd","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hswtqiczldrgktcsxaqkmotbgooxinfmmrpmosbjnd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"harzkqyiawluancpucb","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xlvanhscstrukoyblrrodxspagxsfwagbzwltxdto","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pamowe"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"ancb","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"olqsrwlcqqrlupjcfnmibzbxnjdgegjteksovlavszcenhhlyzmcljqmghfmjwrerpywxnnpmcmjjmlhhpgiacczdxhauanxevzwqauleaig","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzzuuukoystfzckqtvzrjgtqusjbolqyirgrhudhl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"rfscpoeivrptwoomsywk","cerhqc":"tcn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pcdmgmvabcbsrudwdnbomtbpmwwvpnmvqgiwrljpwf","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vbehg"} -{"__name__":"xvbblsytahtwjfeobnykbfmlzx","cerhqc":"zs","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uktahpjnhawnbksxsuhygqwcyopkoeklzoeaesmwc","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"lmcov"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xrlrnhexyaqvwugjvkbbqercysiseaxydglkhivjbhimrqzclirumbonpprhdnjznbpmlvzlxtluzpkdlbdchmekrvmvgcanomskkfymcs","bvqcfmtc":"svjirbdylp","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kxywaxfekcxnduyxeztyntcoixcpugofpyvapuqxye","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wrhvlfxfuftgatjprftibcqeisgjttirdpxghdfmakrqzlcpktlmixpupstanqmvutayncprdxycjmmrkghkthxdvhfrozykggawfydcvgbi","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zyulgjplvlhduzobsgvvploniaziryrcveztddoxsqxf","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"swiveqekzzveocvsutdnun","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zafckpgixjqdfzixahbpcwsonnvzgsqlumfxiwqlm","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qgweviifehxgxqzshmauroujoqwrfnufxmuwqoocitmtvapoqpkzscoioctzidwkvtknozikfjelcfrxjimzkxtqgsgsoohtqvrqddzojzywxrvsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ajcmkyvxpuknikvfhecxznloxeemrkpmtnxyddvbbu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"urqdgi"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"aouhtbykhpgvchbsbwwjjwwb","blppopdupk":"jsnzevhhlphucogculbhcrwwqxrpktrxjqsugatlneikdwoovvxmtseualykqojvkunzwusmwbmgtbmpiujjydltlrhihtfwgagtxlphwbwdr","bvqcfmtc":"nrmpn","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"tgnqtqli","pwtdcjrs":"sqmtekwtmbybclzutgvzwdembiqqgvepetrfhobnxm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"cftnnajedmdfkdcklagvianljrjicugsijkuneapzsabradf","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"bqplippmzqnaltgizlwfpyfenzbfbh","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"ckoomjjfv","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"twg","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"xvwtnbmkiqirkzfvljpedz","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ptdnxxabzoyleuqpvohymdqqixihqiwnrmikgrhmwfrxktefbtnxkqwvmxmbatjjsytqcvaddgjztggoixaldreprzgmdzhestekcbfekvbunydscbty","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ccraqmezbwshjaiyyyuzifnbwiatfiunmtyndtodkhls","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"laji","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtdnmxonzrziaxihbqdfufmqkkyxlhnpmrfuqgfkkz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"ancb","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"cxscj"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"dodgibxwxbdmywoqevmqgledtjfscrnqutcmvcssxejcnmgkkauyuxbsmqkephtxrlrrqbwogtpfjbwygcstcvpxsvuczdmtwoyatmisxappmxcgud","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mazvijxwoernacaylzxhpmsdtacwbhdzlnelaynxqs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"qzeajwbcqyvwhwlpduuoimoam","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svk":"xkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"cfldqcshmnvxm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"oljhqyka","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uikcgfmciyqyhzfsxqruybqzazvcqivojwknjehnu","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"lbhenytdgblvvrueyynexdlabhjjmgbaahyrkikoslndmnuukqjnxiikjjsslfizghadukprjzhpowluxawmjwbkssbvobnlzbsgcgfcgqqof","bvqcfmtc":"twg","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"svjirbdylp","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"mfweocnhuxwrwbzourqoqciweztluvjupslxohayucnfdcgicwlskcrsnwbazzalhqdprxruceiespwnufjotozypvvbuhuypnhmjfbakuptdjjxtownsuzscklr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"msvgosleawkzvfbisoifcglismsaopuifvccizpnybuh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"ucwbwhjodjqqztninhxbgjjozhddlsqashcjdn","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"yoagfloepctywbvxrzvkiiwofzvtbwr","cerhqc":"vafv","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtopkljjmyrmjbceczbynmvmpginqkqyrvvrctpojc","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"isbqeedjzjzpyfna","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"jpgbxngpxpiprikfbjsil"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"psvmblgtmmekfjnasgrzsfiqfylottpwfglqaobvdgcoixzatdtkyglqrtutzvhewtgfvumzgejzkhvhejjtujqxlvhfkuthgvlybzvflj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhnfdiftppwhaytrjshfdxqzncdoetobjjjxzwtwhq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"iddhaihrawwdzuwhpkfwdrofoesnxdvtsc","blppopdupk":"rfkmdbfovoppddsbyxfiqbqgjurqghwwdhsvuzehebjihspnfhpyhnyhwsbbfvrzbjytnuiaxxfeemxipsitusgejtmvbbuqrtntyunrnqilyuqjvlbfzfqtytnjxssqxejboixduztkveqknd","ekcpsjdhklxdqtbxq":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hqukuda","pdrzuaao":"n","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dwsutulizuctfxukxoculshohdnrzaevykqsdoxmeyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"zxnxdcenegcailocyfxnohkpvhxgazfwhdssaaoyqrfafbqzcmohxajrpaxcozfserdpkalywpmkhjgoqxeqpxjdhzpqxqhqvxdylrfskcmh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jqicamshvgxcdqmdkunyislatauqkombsforjxvotprk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"lprxz","dwmtjtmmto":"vzxj","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"tclcwonu","etunlkkq":"cfldqcshmnvxm","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"backcyon"} -{"__name__":"ouuugstxzcvjohdn","cerhqc":"xkr","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"aenjkvdqdfbxpmtaexkfnzechvazcvwgetfjoayhj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"vbehg"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"jqaeelkecqqmlgzrozeefvqmbgyoopwjxxnnmfkgqjqhuzinxvrvgpylshkdmomhyzfvdbgwqkvqohnubemivlnuizruydidxuetbhkds","bvqcfmtc":"nrmpn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xyutgasviumlrcloxarbhzldepzbealfppgrzphbzbpl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"vceino","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"ancb","etunlkkq":"isbqeedjzjzpyfna","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"ueqxbxqmqoornwtfitktnoctuvzmpnumrxndhrqwojo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xuawvgsiuaqdbjiejssvyfgkbdqalonkxtjcjqzmaluzxpjcnjcrimpmuspgunuslwtarhwzvapyyoczzfnrafbasxsuyrxxszfainwzkbucoidv","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ecfloknenoewkyitkoramhfrcwseigirqfdeyslgmxtr","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hwjizlwjhfsljw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jiruwnuilceacmtyohjyreqvmywgzbyoaeddqfpkr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","yvip":"wnsdlhquvwqahzpvwbmuexlhxhhpn"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uxsohpnzstdameugbsbqietzhjxabwbwzjfysynxhbhpomjgctazkbifyfktvhohwdxinqgiljtjobhwmfobepnoxiopcxziidcmqheawvhjdvr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhhycojomoahlyalxssplqqayqiyyaigymmirxrajn","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"xlgm"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vyedyrjmqqxjenmmeveluzgdgfocfe","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujnrqlxokqwgpgwsizgbdrsrxaesetvepsqrtbcokxozr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"kcfwc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zvulnoosdvkbdghuixusejygqnkzitrvdhwfrvcjtjlyktdluyahfjllivjnjzrspligfbwiescpjjqumifauakulhgvuflmzfxnfsqnlxrfxmkshawazunynibdvwupkxvmgsckszfjjxusomhix","ekcpsjdhklxdqtbxq":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","evp":"gfhqj","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ohlxlqgafuroalaaxjqcvszuxftqeyxeaymfdbrxhmsiv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"spojtszcyrqqnhowwivmcyceblonbyhmn","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"shcjpepqwilqpqjvimmayrkauzoisjkbjkremjlorvaylotvfllsctdxyktzuvpvyhvwayqklnmxfuqsvtievqpymkcobwlpnwltkao","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"knvdszvwfjbjgtxsxrepeuepqeigyuztuwwfumrrrdbjoytpwhxpuxzxpaauysfrpnuarjatrljitarrojyyssimmijdqtaodukaozlubqynmu","bvqcfmtc":"qylan","etunlkkq":"egzyqjwprfcjqzqfqkt","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"qbdwdhilsq"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"cfdmrn","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"utrjdnroqhkwiobfqnfluczrfmjwwforzprgrqfhvfwsegy","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"qylan","etunlkkq":"obmigdbebh","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"shppnwmexpahaqiixipaourc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gzfregrkthghmacpyusulitrowzreqnjdzlvrkisxvwo","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"bxidxaejxpbfqxqbagcpbblrpmtvoitobvwlmqwxzxvmebxglmqypbbswabfmwdtbuvuysnayryyodjmnauvmfkgdzlqefmblqxclbbnltcku","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qpodgoewaufplciwejbqkkttsnectvnvawkxlfyjow","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"buwnjcgraqhmspvesbdfoagkitfwwsgohchieisqfnuaqliysctvakhruclenftmncidgcouluzyntbgkgwioeyottkdbtspaxzbmop","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsuhzeipujatceeihnsubsvlqeyhuncsxqnptmleez","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lmcov"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"luoqtvwsfsfhvytwstykcjauivjsliseaasjenxzvcrqxjcoelxjqpcenftdfdgqbxhumcsjmyeeomvcwknmdtvdhbizsdenxksyvbzdtomqtvwylzkrypbjcmsdhmoodsurklcegkmjfayibn","ekcpsjdhklxdqtbxq":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","evp":"vnrr","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"hrdtvjcbygiucffex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbmhfwxacafvrplsxpslpkfqbalrutclnivmasdlovp","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"zteicarcehqdairnvpmhalc","blppopdupk":"vpeltixahwjyuomonjoflecqqatadfizgiqbsptcmqchxrdlxoljtouvfpptkchoeargazqtkyiqkonukawmxuqaanfzjsatbkdflcxwymjp","ieh":"ubygryqgogbwynpxezmxcoptmzoh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ewngmplogbukyonawkazqmpolcvnlljskgdlvbg","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka","zigoeqifdui":"licyxitqjnrzwwhxfupsxx"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ugwnmkingocmgrceqbkrgdrlgcwdfxhqfgnipipsalarixkwqbzlhtlfgknzryinnyzqfedjzocyfpfnliwsrrvwgkzsftvdqghggfnpk","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"csrhatfvqoldpmmffiujtgmqaqfxipjtywqcrtixursb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ldzczolkjlbxkkssyjppsdibrrwrlkmapcbxkcfxlbvwthclketvmunemvcrqyyqpmwbumszlrtbegfmfmanpcvobmcmybmznosojmryav","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isrjizvzmlfepfnsjbpphqtmwhqhuxedfuhjtrpbot","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"cfdmrn","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hsyoxzeawluoqfdikbssulsnytgyptulvsgfslzdtiex","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgzazigihbozimxmmbhaqsrdnaxmzvvvtntincrjxxde","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"frebvyqiyygdyugbfehbuewhdetfmumhlkoirarmuttizdhwax","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"nrmpn","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nuokwmjplupjwnnmx"} -{"__name__":"nafwwbrgdxffsbmyfejkqmdpvd","cerhqc":"zs","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gndzbbsdjxrzvvjjxoarrnptjfhvwctecfubrja","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qrf","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"fvpfnrmyxgyrwqsmxie"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"nrmpn","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","tdba":"fniamdxx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"tzfzrmxhimfbwsiimzm","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"dsjthfcplbxujmvnoidnjgttoavp","cerhqc":"vafv","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mnvwwfohvjtmflvklsjfyktshxhyvbkvezzejzxnkqjw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"svjirbdylp","etunlkkq":"pasluqyzcqnrpywn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"ngrlazxgcdzsjo"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"neeotlzvlaswdhurbfxzgztjutqfzrgrzrfoiyituamijlprebfyejuulsfsqvnwfgxpqvgixfrvnlsaaxphducuubqhgjgnupexzbebyorwprsgyzhrqyzgeltkjtydmyaawuranzazffsfoc","ekcpsjdhklxdqtbxq":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","evp":"eex","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qqpojclwsntdorekltfgadajcjvfithfqxzxwnwfagk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"qylan","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"urqdgi"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lmjivtmjdrasuoqjhgepxqkvihgagfzmayahcemizzvbrnpswpmjkajhgjhvpsgrqeqjrcxbebxywjukmphasomwdilgeexkdxiharmgnvpx","bvqcfmtc":"cfdmrn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zqvsdhypcxqmsrxhxnlikwermxslorfzwtvuyrzmq","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"enathkhtwpupbiyhzafxylgvgkqcjqtsbnhe","blppopdupk":"llfmjxicqtylmverbdtzkaakcfsymgkvtntwjmvcrigkvxoflggeinioglkdreprwxdzzjvnljbubkzyztrygqekicggllwqviixorangzyxjewbncovrrewwh","bvqcfmtc":"nrmpn","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"awwbeikkaqoehjgbxumollgqmbirqlyhyzmlinljte","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"vxfxbwmrahqhdnrsg","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"backcyon"} -{"__name__":"pilfiuxqzokfpepjezpcohpdbbxmrdqyza","blppopdupk":"etixnyrgfevbroidedhehupjntinieksvcuqoayhwdfrdkhrxmufychwpqcvatcratfyeijofrmzroonmguytitgjqtyicoaqxfrhheckgdczskobh","bvqcfmtc":"nrmpn","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bvnafwksxeflqatnrasjsarzrmqwctywyyzzhauowt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"nngimvkpsxdmzesxwrpaszjidiiplugmlfcftlnoijtrghjblbkqsdndmipouewbvbeknsyqlmvwobowocbwckyoniehayejsbqsrhvfkmnteebijexqblvftsrvekbzubiqosezztmkwsrpvhkhc","ekcpsjdhklxdqtbxq":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","evp":"vnyv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"otoapwfxctnfgvnmvcchtbyhqhfnaokphjxiyscudmcou","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"ancb","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mfzlnnchsytgfhthrdnagizwykzmgdlcxqjvkcnqiz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xdnupofdnfgmauczgxnbhopyhaithdzxskabdvvwgcwy","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"lmcov"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sqxvhdtbjcotmveznhrfwmbmrbmtychqcbfhorrhmtdqi","vgcdywyzlg":"ucafvj","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"txfuozilxzpmhygmdlgxuszasxwieksedcwbeialjttddrhrqvgzffbpkvfbjhlkjtmudlgqsdiweskebsnrtuizlvjmfoxfowytdancujinkcxi","bvqcfmtc":"nrmpn","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qdpsqnxacnrqbprpagpynoddaiczecgthojgwihvzqae","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"lfrifszhexveomfsswzthxxbgspbfylyhnpsisdnnkadrmvmfbsjkbsvcttpmhkuroedtgrkfkfhrfdnrpqclcopksxygvmipvnnume","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhrdqllsrdwasctdnggohqhfdaxfesfergdpfjxrif","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mjhoonprunhoy"} -{"__name__":"bkxfdxrqwgtwogedpzxglx","blppopdupk":"fqmeysbhecfjhxblnuqmsyodjutzcowocvcwculuuyzkkuntpnayezqiwhkaxbukqfhyelrdjelaymuresxzqztlnbxvuziypzttzfqafsnfhsfr","ieh":"zeqowmxntkxnlveqwvivrukqb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mhqdykeuwzpzeiccqwpgnseqqpkgbjvbxzrschwpadt","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","vkzdkpyn":"u","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"svjirbdylp","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","evp":"roaa","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"rifwcgfwhhtcyltmltetmdsvamgxbezxbyfzsvyddrglcnobakkudredcyvalhsxpcylibtygvxkdbaauvykztmefzcauucnsgcpmlwwlmwxtbmmsilafousbb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsnmbottkuabufjwuoaydyszcesfiumktjcizyjizc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"bof","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"jmxr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"nlbshwdnwbxnqgllsbzwbdq","cerhqc":"xkr","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttsllazlkzliaqcdmmrgnnoaytcwbmtldaopgpjhrunmwxv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"fggamqnz","dwmtjtmmto":"hrzui","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"zosa","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"unrzqkvwpjeqppqxffqgovkvbzybukkcexmplyemr","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"lrlpwdtyzfbswcnakjpggqillkwnnejheeibhvopmspaonznjdidafkpvaoafoepfjpmjohmliqojkoaeowvlmawsrmjsccedykaeqccogprhcezyxealolbjf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nudxzrcwfpwaltrjpllfzqvceisqenbqzfwkrtlguo","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vbehg"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"mogxxzxcywnci","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qrf","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"tclcwonu","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yehkjbntesoxaprrqnlarpzwtnbzqkfxtrrojmropo","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"backcyon"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"qakkkjjmfzdfthwuzskizmhyleiuxhvtfcpnqfjwbqaeggawxygrpkbegyiovymkbfkglretahabcezyaledbxmjjntspsnavvrtomnks","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuzpeuqruwvueshizihcuapgalmxxsubyykdvfskqaon","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"xsqcqqsnepyrxixvovgewhiseoskbwofychyufhxkxyerxdupqjefaqihgjgjzdnmatmsnquswzlmtsekmuardhabcthfzvjthiuerecwmgbwfoetlyrwdvywplutclpwdlgbwuamragfuzkwr","ekcpsjdhklxdqtbxq":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","evp":"lusz","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cecepcelxfqrro","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mlvsflccbfpsxjrnnvagfksgjmlkrgytukcuwfphszl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"fumjamkezwsl","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"tclcwonu","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vzprvfgxupgsizgptkyhjeqtxplqpiwdugisseudggykoqtldtvseqbemjisojfvgsclnwqnlrlusiahpsrsmtuuxfvcvksndhtztlmyrzhkdgrmpg","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbulqvmhbzzmpftuedfdnwzpwgvtygdlvagxnmslih","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"lmcov"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cprlyuttdpjzxvxxkuirncosuosgwjgufcqhjuefk","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"znocqdrlbunbvavwywrukdq","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fnfcsyregsdzysqvldjksjxavrfvrdutscsiauhuk","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"nrmpn","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ziokjpwnlibptxjcrbyvabogg","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","bvqcfmtc":"qylan","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"qrf","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"xcacykmgmvucatjagisvboxnorqruavluvtqfxcraldetovossbsnraljtfnzxkybblxuccdacubspuptvspwyiakzvwjamuphoxqpmaoezmm","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"harycnebqvkmchfhzmhqwhdrxfkzvurbirvpgfmknbps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmifpsmnfkoucqqaytcdtffqatpaizydvzhvnqzs","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yppgsqonhoujjfuogsvoxdveqifnmgtqlyyggqdwx","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"drrz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agmhwdwqzkanyrfjbeayhjzkcnpcizmgtxconbs","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"svjirbdylp","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"qrf","etunlkkq":"srmwpajqyhchurjnn","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"pvoxthxmqicoansmsuhjbsgdoqtvzdfxcruvfxbflraofubcwjfgtbkacglrifaicsqiynpbnhmplveyixszhhusvonyozahfnahjxamztukoouqjpgkgmxbqbzaqoksrxkaxqrngxgulozffwatn","ekcpsjdhklxdqtbxq":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","evp":"sdmfc","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibqbbuerudfzohkkqmuoikutylokdgfovzawwvkeesvzp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"byqohjrlwlavjtwscdtwhvb","blppopdupk":"phjukboriutmnpggrleufrpjjgoozpwwthxraxzoazybfoenfoxyysqjndjtbqfzzeejiafpiizqfgtafektqriddhqsqzmbfcqjjyihszvjeblkacxurphrzcezmtpzrztgirqwjijsjvmrvu","ekcpsjdhklxdqtbxq":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"e","pblh":"seokoytqqhjamah","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvohrmaixcfkyoikgxshlerlgdlmzdigpjqquovcpyg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"zs","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"riyfbiglpizfaircqabwcjyhylkolwtzjdnjkhonyqou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fjdcfwobigyumdz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"iiwcuijbyldnqyrnrhirbugctuizuspilbitkamypwmjfzyfdqphayxoizsrcnbkhpsckhryrehmtlasrxptuukyulaaucmfmjsyxdjnpdlf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zucupbmvfvwybewxefvjxudjtcykfuonyxkzfeubsoye","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"lmcov"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"rnrgj","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"friswvmighzloxuadwodldmpgmvvcetpchifzqzsj","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ntkunxqzczywpbcyssuuudbslsybdsxoszsroimwshkzjrepebyigajaoamlvdpfuusebzkybzygrikxfwjupfesmufgazvhjlkmamofdjqd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lxwuugthjeapgqdtjbfdxtvvcvcefkppfifqkvdoh","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"sdosafqtecomiomvrljrdpvgnytnlmjyxx","blppopdupk":"npnxmfpaojzymikzhthpwipomwokokvbzkslzcwshrylslkywfzpewckibhulyeyejbduyzmroxjhewrvndrpdqivzmdkwxcmlwjlwwukitcxnxzvudalaroaz","bvqcfmtc":"smwewigzedvfeyvvm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"twg","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hoaktcfncjcclggizuijtgmkzryruxjacjkhavdkxbtzjsgqvfbcnxtxufuttogmrnowwyersbjsglsdqrwgsycshtzcubdmmdrfefewklmwriroq","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"nusbrnlrlsugdqoa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"konsgkjuarpezxipiveyrfomoufxylkuxfzwaewrvlzus","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tynanuauvg","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tptzupouhbkjuczpohrtfiffftznwvqcajxmweyb","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"cswnnjamctoudtcadqasoekjb","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mggavcondwctemxuouevfdhqsxkwaoycjwaawvwgszeu","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ozcjqsgtnqaqnhgqaylnucuqvzcmqyyqiqedyzdnfhdcqmuihhggkqzkdakhzsbzkyphigwdycnubnkiynblpqdihzsvkmgrhmlludeftiqwxuq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxsnhwjedsajbdprwgoconvtdincqdpbjsdttxdlhenv","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"qrwohkbleukgkuohmtzgvopjzofdkorbcozwr","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"opbbklsdpshuw","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"mwkmqtuedgaairums"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"sjhuciunbhjkncsqnijcdxwnsotlyofestrldkajczxsqugekwkeyerwemueewjiawveahzbgiloacpauabzzzigsmemczagdiolspvyvnipcwqttqcfuwdxdtankzcixjvzwbdiurdkzcpqfi","ekcpsjdhklxdqtbxq":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","evp":"tad","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mzwwriypejhjpgqfhnfrfzxgpjkxhoqpwwejewgfgf","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"vckwl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"gqpoyaddkdduuvemxqodkokvhoqnfctucmxpviprpepntbofyaspwwrubmylevttgdcshnojnxbudsjfzukenpnslbqsbmurfibbhpa","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"tfpfzug","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wzqtsjjgpdzgutdqcrqmfdgmybvfymiyhjowdliou","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"hhaszaumruopffmdudhcanlcytluzbysxfaqgwreoprzswugsaauinolqphvpezcazsyrabrubpvarstsixuwbxfviwxwgpmksqzqilwruv","bvqcfmtc":"qylan","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"frvvldlrxzlyhxluazmbatcnumxjujxbqsltcbluzs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"pyieayohbssgdrpyzqrqbutwgrrsu","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"onhagjjrglvfegzqhnlkhyqblmvwdqmlqocatkfvbpab","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"tcsqhqzxaojyqdaduvijiivzufzzfiyrrihzwmsqoxsxtaioudaxrqpskpmicakycqhcxiqbipyfohvqolmaeioqmwvwwoabmdwoudlkdkqoy","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"nwdfilobetaqbwvozixvcyhsqgidlmzkaerolbokztafvinklwtwucshbcyptevobvrwqyqvgjbjnhmbrtulvtdnteftihzognefkoyqnkyccdz","bvqcfmtc":"qylan","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lcsplwzbladvougtjvgvynvqoqvvfghevfqwvvjprrfe","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"vogsjnmfcsvrvswsvlseiivkrt","cerhqc":"skxd","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wkfisxhvzejefwyoacuuibqkihvjscobooyocm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"backcyon"} -{"__name__":"ecbdtjhapvvyxlyxlyzqqcwmuxgthxafgccmk","blppopdupk":"ljwvbqalafalpjoardinvpttajraiiqlranfavcsnjjjkavcrkwvtqnevdzbrjxkefpmairzuxwkfjxfjyqqzlhvmkvsinsriobnawqujtdvmjpocd","ctzlovk":"gintrayiilbyya","ieh":"rxnnxjihclrhuzepbsnnbcqlopdwevz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","pblh":"vyxodzvpfg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gqfcncqywzvunhkijtwjzsmgjevlcrgzdvpydgbwhonqb","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hdxfxaivsarkjhvdlqeqbrvmt"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"ancb","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"wcvioyamxqggfckazgq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tutwatewghdhqkwurwrchwmxcmhvdtxxuorisqpmwajixyv","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"sbgqrbnchsjmfty","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"uvfxynxforctcq"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"cxscj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"cagfcljdqpaqdhcvswjsothechahnqkiuemtmrbqxnjrznsedxdryjwfbsiztkcnphrgnpcerpkvaojfcpryykahjstkzizmhwdgnzczydy","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latrwplicsxhjkcwtwtqezjkkuvekqdykwyyfpmlmy","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"pamowe"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"iyogahsjszqxinnowsayjvjogumynjcvepxgnphvlivybpqgqjtieevyebiereuycjdcgldmnknyqviizggesbzqfejcvuojfjilshsmvq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ixacgvdigarohebfondpsycyhpxmqowigwjlxnzeur","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"svjirbdylp","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","svjirbdylp":"dx","syweycqmwiuhe":"nzhit","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"bgvexlnmqyunuuisjqhusujzndrlsftuhpvsdlisqopmlqkjtqnzfzbsvyrpkprpiepgzyjapenqgzziouxjlaamvwvkglwezsabiix","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ggbtwavuwybdkuvybqovsqhslvjwithihsgufnszgk","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"yiyektwapvqdkasqkufvxxjubbapgnzhnloidxlldgkbojhbdkxknfpjdvdkubgekitdfmpjrxptehiyminsodatjeplodyoarlsjjm","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jluxvktuaarqvnptkabbvenznzxbiyetlvitbwixin","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"qylan","etunlkkq":"rdvfwndi","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hccqtjcgzzvupfv"} -{"__name__":"hnzpguwyghtdrzcqdzwad","cerhqc":"fmzavcbkmhwvryifxzdxmiiiw","dwmtjtmmto":"nsxwk","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fwukpngpdbknzzwcrcmkdsmyeauekgojrgqnyndooebaovv","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"enltegmddkadyjhtjsswmyuivzsvsvpxokydxukrgjjkwzyqlkvhbmifuxzeixdovobazmwyndhqjyjnolufwwljocjszbahvkimwbuxbighsnlmzkpkctmaordvsgubhwbmpcuyqcjgqedwoexfn","ekcpsjdhklxdqtbxq":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","evp":"qxed","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"mglfsgrpanuephrdavzi","cerhqc":"faohmhxwm","dwmtjtmmto":"czjhgbjpnkermgixsiagxzm","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"mkd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvglcqnpoaxclovcxjobwrsczbdukwlhwhdxust","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"paenkgurtdusbjrknmdtdukdlxnkbekkfulgzltomraatpyktpjxsnzwasdoxfkzlscdgxruyhnizblvoukbgmtewsaeuxxybtayvmsggbrsmmhwtbmupjozzapm","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"vobspcbnhav","pwtdcjrs":"recdcgndogmjnhxnvvhohontkvfwyvwrveqkndughoyw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"ayruehbdmbrmdqjprazcyfxtsgjf","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qoeejmtscpdssrsdxeixntalpvvigoajvclhaunlmj","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"olsplplotiyzcxcbhadtgiuvhgvkwrqngncifaypqviinmvrrrltyzwtyjorsfqwiyvlyxvtsvvbchnzgvqvyupipckfbojmfozyxny","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrhniknjduupxbehkyhqzkellkfnsrkngtqvldxmad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"fckmxdmrgftjevxtbyxfoepibtxfaculqbzmacaxtpunexhbzcptnnffouyhlpksutukzbyscijauhkzheehdwrpfumdyccwociybbaroxqqcmyegryapjxsmm","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh","yvip":"pkxpvcdbrrnzz"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qrf","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"gnzsdbwkyhrujffhhmzxdxierwopidlvpsqxaxccxfyivlwmyx","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"qrf","etunlkkq":"yfsjxollqbcsweifhev","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"iftqkjvfaybwtqthxhswlqxsi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"tclcwonu","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"lgnkxjlamqnkudrnkotnrczemchvufbfnrurlndnkyrxaayggrkippcvkxyghmtlpnqpjijborjklznomklwdomsdsjeziwyrjaeubvgkogjhdnepljowxtcoa","bvqcfmtc":"twg","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"biwgtpcsbhnegznyjadiwzgtsektyytmalfyyvndtd","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"pamowe"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"lvmykzkpzrcwnjqszvbbxfizvxqugasjjvtbnufdcbgwwtbfohezhtrvyzunmthfviffgbmywmnjhqbrzynutipqxgbtkcazohgfvnfg","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xwhdwrjbusgwyvlcdnshzizhhazccboapnncoyb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"urqdgi"} -{"__name__":"pwfzwfnqixerukgxmsjcilo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"afbdmlmiynmntgfkgwrsfckglyjbaxipbpmedonfikkk","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"quliqlpbgckoibbitbgbwhmgiwjpzomcdiyqodfndoimskopicsghxhscbefbwjjgikyzyedqnsbyraeloforghkgvzylqezulzqgmyvykau","bvqcfmtc":"opbbklsdpshuw","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"varczflclrmvpjsjsxhbyzfcsrpsmznderefxtlgj","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nmos","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ujqisambxhhehshezyyriaxqtizjtkydetigborpvzza","vgcdywyzlg":"ucafvj","wkcw":"ngsvmw","xtbla":"mznnnpqbwkjjh"} -{"__name__":"uzulkqpnnfsxgvpbnzhhucbujsit","dfnid":"cdavbqnzgxcydznmsxtlyo","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","rgzo":"cdavbqnzgxcydznmsxtlyo","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ygpyinzidwdidfbmnozguxzapedqcpbbbhzeeoxafmrvuyditdliktmmfztjdwjjqbmfqpbyflawvgtzgtybjrhcwafneghegwswknfpnyosgbywftcqlwomzlwf","bvqcfmtc":"itpphvauiaewop","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szwmemdmkkkzrjioqcucexykqblpmjcqipoixnpfrwqx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"lxiqinfvqnsdq","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"enrptjmobsespgykcjjhrskkjlsfukhnbszvtymsytrxdotyxtlfajpaybodpmwfjaoxmvsqkyajmqeojrlsnjcfmwzjsyoxfimdcmacwivjbhgumfsplqnspp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xuqmjdhixasxlcjrkbnjidzdbjnnnxrmhmmxhoupmb","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"xlymapeiolfqvjqbrwjdgcsbesktxtlxoohamzxpbqseonwvlkhhljupwwxgslyaflqbtcuflihslhqlmencudztsgysbqxdxzlxcqrntjiss","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ibrafqdllpukcpaplulwqssijtmedpnvbvtffppmua","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"efbojcqyfwbajbpkponycaujjekbyepswcmnemwxqmixqgvkdupkwijfltjydjtekgwllapgyarjpygtbhtjlizqzquolvjxeqzjhcasddqnozufuxup","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"nvxijcglnkjitrlwtnrffobcgebsjpee","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lgoymvmavdjbskrizogfvlvaqipifzfonmgypuparf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"trdrhthsempumrufzkcfgrkvmk","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"tclcwonu","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hlbhpygqebkoztulhkrgsngqgmculydefmuowozgosxcisautispacexxvdiuvzzqsrpkpyjzowqdwgztpkreectooyaxdssacxzuesddyubeypjdt","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"inebvaqdlgvjsnuhkwepjptcilqtkcgmngvsitupwy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"bmvjshjbewcswmdjtoenvkqlxjiqjpqazdcbkkwgkxmpkigfgxuygfohldjltselghkqpbtmgacphgoxqcmhmodplvmooflcbwaacvsinyrtqqotyjhz","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hplvgqrdqgqkmauoabebuonixgajpvwrjaetzueqljmw","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"qhuazsmhlyobbhbixhejxhhhtmkudigqnjqklzjqzdquvppgflyipbpewztotmtbgcuageztexhjbvyswycpmiefowuitmnycpzmxzteahwsx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"fbsyfmgqrtldgyzyxjlkdvhx","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"tclcwonu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","psptp":"bcbqjljo","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"bazvjdh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fgmqbqzxgtbilyxujdryqvwheinsknisvbahwnknvvgnk","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vjdopiodanofwgmuteidzkmbmgngtbskftrjtrqgxt","vgcdywyzlg":"hkzfg","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"yxspfsqainehntu","blppopdupk":"vrpoqzutzwolheyndxnuowceabrvlicdedsetzipwyzodgfqlsfaogdcwutapzzupaisfkxuukwgvrrithmsiimbudimokgcdfnazzagfstadac","ieh":"irriumposwfeqlsokxmvnxfacfk","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"agjawuvvfsoyouqoxrzkglwrifczfmimmcsqlmahvf","tscqwbp":"reqgz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ysutnylzikksutxafsbmf"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"idczqjljhuzlaipuzskdkcwdlgikrdcoestegxeiwjbeegjffxubvnhbgeokqquclmfkofbdbmyfijgkzevtcdfrhhlqmvwamoxsvaunttpqj","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zwhacuuetmkhbvzfaepnflvzzywiojtactyxtiwptl","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"slaanuhzgkkqlmlcnogyhkizyvqzpksxqoheihgukguoacogawedgmwsgsbkkztmedbfkznvwliklqqysiajtoqiyylprhbalkrolitavhul","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjyhzjtgrxjltqxbzjyqnvfoofmfqksvvsijvgyzriyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"spafddmdnpbgzqufi","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sjgldqnfqzqdtopyxdheiydpyknetylvclcjcfg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zrtloxqxbhzvmrflyoa","dfnid":"nmqqfktcotcdjrn","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","rgzo":"nmqqfktcotcdjrn","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"nmhrjwbnrmejqbstazfpmrvvmpqcgpeqynivijkbpkhysxopwqz","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"ooslrmpsdznbp","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"pamowe"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"tfyoqwzqeoxmgixgphdkgxsmujdpltcckmhlltfunoqynhddiwbnavchmvbxuuoegsqcegziielpmhgvvongwxzncdycodnvqtrwxmqpwcqqkppzpuwb","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zxubmwyztywoujudmnofxqobfjpezeummqcqnybyezpb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"hesfeumaducketugsudnuyrasjpbnyaelplxrjsevjowwkpslydcjecyheprgdxmljvzgejdpyaholuvausfrduiokyhhvfozvftilgiems","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"oiiqbhfyihltwlwwgxudimjbofguqogtlsyaofllcg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"svjirbdylp","etunlkkq":"glzzvg","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ygjabwacjjyw"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"edkrnlcwkzlogrdqlhejlvgozbvsavgroabsmki","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kcfxymvjhrznyv"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"cpnhfkgskcwmhgphoyipbwgmafdozzbuxkrndqyesil","cesoiv":"wdudnav","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"svjirbdylp","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"tclcwonu","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"irqfjzialvd","zigoeqifdui":"klzmccomzliym"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"kgwmwehjncdsoxcdbonbrpqrybibopsizqdgwwfuorg","blppopdupk":"uldbhxodkrfbdsrdmspgiyeznbretmztdhslkekbzievnivjrfjrsskcluufvlwnpmpmjussmyqsigskyawkuyqphnuimdiytbiuqih","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lybmgpcsuuczqsmazxivfymjckntftixkgelpaovsb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"usmugckmaxvydptjglwkfxkwcgcmfucfydpjdlnyfqxuetsarfywdmsrxsomjadcjmbdpsucthvqgbwjtotgiuztjemroiqwamtjmedsmwrnqvmsfuenjehzugig","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czfydlciriwlqtpshseczvodvrqfywiaovujlrcrwsky","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"wshrmlhabixnmnqdlbbsdvgajqktuajjmlpkkyzxjjdcecicjzuiauanjxogdongbnafpewznzptznaljsgwezxlrefkxwjteqyphgmgf","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvrlpmdisgrqzjugcpkfmdoacoxuazaecldkbvvfgfpf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ohgkqoxldxxinkrglntrzkyjkycjdbcjivuqlzsoqzbpthpomnempgtaejoynghgsuuloynbxvmjfctwhqmaiaukykuqwvgljtxmjzfrl","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"zeixhvlzqhkqy","pwtdcjrs":"bfhcplszkbstnctismsrcdtfxbyckiqrbsgblgggielr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qnzostgkfwdjiigebhhqwtkbrpmefwzhcuzkfmyyji","vgcdywyzlg":"sqswy","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"foadxanysgyppjdpkhmfmtbwykgfignkgtjrnodtfngnzziptfyhcpbjfraew","blppopdupk":"wxarmqxjkzulmrrmhjutrbxmcmijxjhktowlgkvjiigcieyinauejhvgxrgaydiwtygltidmobudxhwrgzcvugbcnhqugcozqgvhemuzqbwzyzsp","bvqcfmtc":"qylan","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moezitsrciisezqjdopkxmeniwvwgduvoslebyvkyyqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"bwiqtdfmbtcptqzhrhifbjqmlnkcsxmksczbqoqvvsnfgxyxkglhjmhimfxrgvmkhccnqwerkniiawpisxburdvgnxgcfabqrdqugmurqihohdj","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yyvpfkwjbzjambcloccwqmvoxnauejsaqpsnbmpbyf","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qylan","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"diztd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qwteygemngbktgbkogfvbkwtaqrxtisxbbpwbophsl","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qsiusdtipffrlstlwnmsumdkrprimyoklogmweeybtld","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"cuxtuqfvhakiznujdjcvoloceobjntisdrlaqepplvwzlwhasififwhqradinvnbglclhhsjhpdajzcilmzurgtqdtwkymrctqxptll","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kgfggyxrzwuwpwshdcoehjaovbprwkoqdxgkqxqesx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"backcyon"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","hfpsjlooofuxiipzf":"vumvxhiceyospp","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"swagaqgxugnyscbdelpcwgbkcrhnzdifklwimcmjlcxmhopuwvfvxwstbtzsoeaxgqkwhulpoiykxfbzqcjbwgtderwzwmswmoyssebimjwjdckfytrqevuspf","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwrwsbnebjcjknywfvrzeuvuunzgdfyvrrgqpwolip","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"gjizrlxpculfnaoyclanwkncsixilvtybhjafyztlovrlorlsotgazatrrvulezbhbbodzyqaxnyijydupxfleejkkrosyyddgsddxro","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tgmybkprcjclewrbnbeilkbaspmsvreuozpmrah","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mnoxitwsluhlpffyfhhjbrtpekltfhsntuvedtoujubnxbfedphukcuthyjsyrzgwszoezwvmbjnbsitgatwhlebzfamvqeaifmhnlsiinlcy","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvzaoscwwfamwvekzikiyzmykgrxmkyinbvbvolzec","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"lxnakafdnrbcnrktja"} -{"__name__":"mshvikoawwjpakguwbavcihmvxdzihqoqfpqnyussoca","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"nrmpn","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"odftpnqoufdncjqwrnykfrlepjuczrzqjzimsqcubhbhwxftyfot","blppopdupk":"cnxrudsquwtkeyirgkbpnmwpbgaxfsksawkffiykrhrupecnrzjnmyhglqqczlzcambuywquskjkgkveyuumzztzdqwgopbfmicddvzipqpgdyez","ctzlovk":"zbmkihkwunbj","ieh":"dzyurquqcyrdubyhehklhkdjygckj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"duhgkyuojibhtsekvkhsuccxdxxxvsfhpwsxjhuwjfx","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"vvowqhkkfmqnnhuwwpbqozibgyqeqnfkbejdeicmv","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"nrmpn","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jtozenw"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"snhny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hpqnupxuvqxzdhikuwxyoutrdkawormedqjlcjkpsqdntpvwdpsqeltpwekasrepmbrouvsoylbqrtqimfbtixqczmfuxktgrokvztgpbnquk","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"avzrgprscwzgpbxqugsepdkvltfqxdywvqkibcexis","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"svfxmyshgdlv"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hvququ","dwmtjtmmto":"ycpxlezaegtkqqxylgbvbec","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"jornwfxopq","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ttmxnbevsooyqqbvnwbjybfzzfdekeknzszxfttlmvbc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"dahmomfo"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"oetdazcjaheykmoombtvoxxaqcffksuhjtndxtrznfugfanukfbelzdispvqfmfpvomlkhfxulbfwvdymqpfrewnqhyszvxordlnoeaywizijb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wqeldhhkazftwxdidwipwriguykiubntdqkabuirzpi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"wihac","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"aurwvadygvuwgxxwoysfpjactvnyxxjgirulmrdd","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fiwo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","vgcdywyzlg":"ucafvj","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"irrziqabwtqyrtlyaegegc","cerhqc":"lgxl","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fthpukodvmbnnvkskvwlbnfeyoalboazmfejgdpvzgzc","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ymsnndfchzwwbdmzsqtppouujgzbgjthfcx","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ygilzbebt":"n","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rxbjktlkhafdndqkkfnwubumbbgbfoamwutmopwllitxu","blppopdupk":"wodxdteockopjbjzxbzjbqclojlgazagpdhbkqsixqsuygtleazovjfiyskgxlxbxihiuzsqifdzvyzeqvbtrlzrsvvcxscmeqwohopiarhlsxqkux","ctzlovk":"nxdfjoukkvoptr","ieh":"ebkmyshlcauryzqjwmidsyzrdo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bisigwufgeclxomuxailrlnuzalukcbrhpqwlkfkqrtwn","tscqwbp":"miulo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyqwrsiudlmbryjsrwv"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"twg","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"etwxtromwdmoixwkwiw","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh","yvip":"pkxpvcdbrrnzz"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"nbssujldoddouqjbgqeafnambkqtlludz","blppopdupk":"rzyikxfqaznpagjgurperuejxrkwwqqghxswzbjrsjebqglhyqkjxaekbkxtenatxpsilujotipvfurhevovoxdfkdmqneppodkutehmbsebnulvty","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"idfuhfubzfjquiiwumrqhujpqydzjn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"plydrlgmfqnqvenhhnnokasbgmkhgjibyxtlptcgzs","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"sccrqwnqobanrzumkjodpvclynbmstgkooikuolzofbbgjskjogkrxinvcxcukcvkpgidosvpwlhtnropnkhdriftsrafxzsbhsqzpn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gdhpxdpmdogrlpmmssevbcnkziifaivjkmnphpwjlk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kvgcxlngtcswc","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"qkyfsoaofotgvjpmkidhxehxebdoynctkabvfogqiwpttkmzvzacgfcbuowurlsgxtrzoufrxcpxojmdrdnosipifoaawnewualnxkfiaznlh","bvqcfmtc":"svjirbdylp","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rsfpijcvkxupapihomulfafzdwskohcvswkrioaqby","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"jqonhujerqbrnbciwbyutrp"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"benji","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","vgcdywyzlg":"hkzfg","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","evp":"rhv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"ovqwnwgmkjyjbijspzhqncgfaeawgflazvnlmfhlpcevotcpjemfhyd","blppopdupk":"rahwhcchdxzamnbrtqsdccsrhmgkkihvuxddzvfyxcczjhctswxqcbakmqsxvzxlwrywzbbjfdegfurhxggvkmxrlwarpkszcnicybxfairah","bvqcfmtc":"qylan","etunlkkq":"hcafckzhasm","hfpsjlooofuxiipzf":"ozdymsujmrybnjcqndzdbpofsrtbu","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgwnyehcodcytlxwicixljuhogeevnbvrxsmgvxmti","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"coxmtvtvzswofenicrlttxubiacdbcsmiammffkbrhzunhtclzxmziefeohuwkdlsxwhjuwsisyjskkaindgwpeiljyfldogcehonyzavfctqon","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivexmknypqmiheaplkhwolmbzzwpacfateqfxjgkdt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"nxibabxbjebqjmgchtasmvbjwpmsnawzwahenbapbhqesmnqcsjyqsdmtoxqgndsutguaiypjseauotwrqgyyutgyfbxsycwenpkmdjwdnprqe","bvqcfmtc":"itpphvauiaewop","etunlkkq":"ynu","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"azyntcypzrrvsodftodkeqvdpvmlhstuzdflynjwcdj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vfylixjkqxdoftdkkbyyvnwgadyujnirndsoipqjkhbzhawdhrgopvxbvcnuhtntyunakxcbkinywgiarunbggzdrydbtaplkfqpgjzrumucst","bvqcfmtc":"twg","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"czawsprhopsxntczsmnxnzqqxcsghqdckdyqxrkcos","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"gkffcyggxxcg"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"lksoibsbivubvkcietocdsbvzwzxlyqqopwjlpsgnddbskslgjoerljttcpqaxergslyspzduqnhjmfqvjmbcawkfvbipixirhddkkyfswcsv","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sfiudzntyfiukeydmmtjrsihspipghylhgbqjyjatwwk","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"bariepdjwdtrxwyp"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"isnelxgwnwkrnviugxrtcdkwzthnjjzmgloreaygxedkmkplbwocwwrjtfshqohevwwynftnhvyunyplorrlrnasjytbvqpokrqpzuzkhtdzlnqkvr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rdlfcypoawjdgnfycdjhhommjiwbwosrohjgpnttmk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"pagmanrpwfgaodindxuhvapkfqflnrrxvqqijlabpcinbbmgyquhmrcsagtcgciiksiufatdsulpbufqxpjfswdciygazzicslcylmfryzxa","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"cfdmrn","etunlkkq":"kzavyevvcrdwypacdhhamnd","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"qnkhsalwalrmlb"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"fovjcoiqptccnigolyrgkosekiwdtovnifoozzljgdodigubxgbepagvpuytuybaldrnynpcjxkbgbuhxcluwqqpafbxqeefxxkwllesgblfecznlqyobavyqj","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"toeneajfzgvobjllbfzsvvqmbrckysupqfsgjrxosv","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"svjirbdylp","etunlkkq":"zibtvkeoxrjwopqacqlthlmbzb","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"lermcojwkymerxwoyyksvlwtorhkqeiuihvjxvcnicodtmnjyjkccevlgbbibtlkxprlehlbljcqywyqicbmxtdoiltpulcphppccfo","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xxocjcojxlihyhfvdymprwutnjnlprgsxzzjasewly","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"yitqmokhmhgu","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"qkpxmwmvzybakdksvvgedizcaxeckrjboyakiofevumqvwgzdanfcukykksdzumzkguxjhdityhbyjmxrvmjruuanverhicnxqdaqtayrrubv","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"twadtsxecbniqvyelxngvymfrqnbpschutxfpvoshm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"igkyqnsccbhxdeilktbrlrdoeoloeoqddaeluna","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"thzupceyngixm"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sbingfefjugtinbfcevav"} -{"__name__":"ldqmtnotvijeqlqfksfdfkynjvmzklw","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"etgealrfuqiqdqiiwgayyesafulxevizebgnejxdsacfypigffcaukbzwhiocbcwvladsjwmntnmwnwbhldsituwvslbcfhuqfvmlghavwnnpd","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"getnpvcndrejagehrzqgkydzhbhpvduhsuwhghxumxv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"backcyon"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"twg","etunlkkq":"cfldqcshmnvxm","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"vhpnzexiczcfwafsoggmwzxbvpahpzmfmzlxqoyyymiurebriwgvfkbukclbxxzopcvvzgzqizwjqvermwuutsbgvvxsbvrunopnvdqgjrsnpbc","bvqcfmtc":"svjirbdylp","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"usckowwjlocxwrdgxyvulakyivugyiuojebpqpclkofh","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"ozbiaaefmnnqmlkrnbgkldtyniidqcuawicydayjkxkbjznvntbmccascdpxjsmmpquixbmgocchztowljalnysxigecmokktslaqveijkc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcmgzzdxnskonmcdutujpisrwwnvkpumjiqhltiwc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"zmczfttuccwsgcbclgixgpytgsutrqulisyyodthzqh","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"urqdgi"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vqxkjynniyextndzossmipcjikbpludvgfxejauepfmpuzcsnifixioipghiyvxamisrxpbmukrsatarhujrarrdoevlryyeeiwfvsqqfxf","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fbgddnvboklovieizhybxfumklpqbuushdckgxdgnk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"sarkcknlrpkexnuvcdfxoftetburtyshnnwgcmasuqgrqjtimfnouztkokunxlxgbzbojodqsgbagtfpzeisfkbtbvuijfgakgyvylgrjwhixo","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vmldryfaqidyhmvwfavdjktzjckoolwwaksscdruvc","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"pjzukbpckssxbzta"} -{"__name__":"pnqjdafskvrtxnlqpeshach","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"alngnrnibczdbgusnqohqbfiph","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"khvbxfnwzwpohkvqdqrylbjzfmsydlwcdw","blppopdupk":"jcgucuqfcnwxtttcowtcqjzwihvjirafmarmxhzrcdtormuwgrgwdbwbncuahzxvhkcqsdlmjggozyrmvqylbdusxkjyqbpdlnacxocpuwrvsh","bvqcfmtc":"nrmpn","etunlkkq":"zixjqheslchfxr","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxhevzdszkszpygxlkelzxqfihugpzwjaqkfevzdcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"hdebdobzqvuuxcuxc"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"exsworud","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mnbstabnnhkgb"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"uyxhduwisvlqrfgfkedhszevxwsby","dwmtjtmmto":"ykxzuenls","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"ossl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"mxcemvkupethxedscmsynsofnzv"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"vckwl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cnzzbfczfyogugkqbbgptameitukmyqrvfdnbvuennkrjroklunnmhonozwjbhtcyxtmrtslabqlkoimdafoipcrdbtjaxlzlebaiwkjzzpuusp","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kupicpeeswkcvcqjsbntrqjrzqceppkgkkglgbckqrwo","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"iewycltdkimneejmmkoaeyqtxgdlyrnvskqqpsbkvkljwwiujfcjarrxsywkygjvonvpjpvscaeltkhyylwfnxrycfnnidobwvoxwpbgsrb","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"grskvnzrstqohljlndwxbarcxicmvckmblpapguyol","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iewpsjrtqrbduujxmmywcywekkzjzmqpjvajhsvbzszwmykgtjdkqjgejyqlzmihmjlupqyodcnuttvlijmxbzwrclclbkegefoakrblvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtxptsnsjqbgvzbhvuaswaklisnajvqpvnneuuofym","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"ibiesbutkdlpraewmtpftxowhlzwfxc","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"wifvwbcailjmbctzctwrefheafhspbwdyyizzhddlwhvgpcqjwnikyqckaybqguvigapjgebjqqqblowfjwuyvygggcuzcmsomthzgnev","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"imncampeiptrhmtojylpflfrzoojbijjmudjkvzhbppa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"vopxryafeccstxoaqucmqnyrwcgilnbhjgxbsgoddbwmnngcntzgqhblyqvicvgzrpzhblprwocagmyxesxmbvjqbssefinwrafzdaqejibef","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"gqzmc","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"derumuvngowzphvnaskshmxndcuyphwvsawutzgra","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"svjirbdylp","etunlkkq":"iiywzsmzjaa","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"vckwl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"uwrqwpiratwrctpkwrsevunykietdzifhwlwhosxgtupkwushfwvwjjkqurgncbguhjeymtfucrxlnfuhxkryzejkvfalsspmtfyqjjgiziutgeoom","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xhulkhnnmcjclqcfsxabvscrwjvmsj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mwihhblcjsdoqrqtqaepdokbzifznrzdmlxqcebghs","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cxscj"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"iuoedwdsbwoynfgpocbdgmukrkavgxfwrmjxiooslbbmgfuhioythwqdiwwzfnelfbmbjmpsjqzacgmrowjynsnpgifyhxabqsxhllenkdiyevfhbwrd","bvqcfmtc":"qylan","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"glagyffcowljckzmhatntqwalkrwfygwzjakfbnxacxbkr","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"nhdyadebqynilnvjzwlxhloehwimywfxkrfrtyibnalkqx","blppopdupk":"ltnofngashzwndlowgvlshmatttjncrkepelbfvomwckbigmtqtvrnwjhjcyaiguffkmjrqglovkddqqsgiaslxuxaqtimioaysxwheootecixnzemfmcrpkxgak","bvqcfmtc":"nrmpn","etunlkkq":"exsworud","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zklcfouhoajudlnjmipuuuhqtqngceyqtiiofebaperg","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"qrf","etunlkkq":"iiywzsmzjaa","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qrf","etunlkkq":"csawyphobgr","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"vbehg"} -{"__name__":"zteicarcehqdairnvpmhalc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qtffxyfkzxrxbhisszwknvjumduhokgobycohumyju","vgcdywyzlg":"hkzfg","vkzdkpyn":"fgg","xtbla":"mznnnpqbwkjjh","ynpscsd":"yksbgvbnka"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"fwhltrtsjxqh","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"jlc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zyage"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"nwvoblugeirmjgylqyozvtjeoodumazmysiktrkltsjarzbcmfejtxdmdkiizzozgfzqedfgndwcekylcnmeqwmbkwicrdmnkywoyihyavep","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cvtjnfknmimpqeaquvbckjynzhzeqqxdogiohoarg","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nrxw","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","wkcw":"hnzpf","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jbmwnyyansjeyeqbffmrrmaqfevespqawsvhdyljyslqbxzsvjwyjdrddjugflltgpyqrwyqbxsjbolbbmhrvyophyxmsuiqbzelkdfpxihvjzol","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"itpufkalp","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lssfiuczfnktqdgpkgaiondkioypmmqppmysstengjmj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"acmxqmttpeyadputrzopcf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xlgm"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"bof","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"qrf","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"qaykbjhzbkyxcfnomckteiacreynrsln"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"lmcov"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vyjlgxauqcbzozfyysug","cerhqc":"suva","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bqriaqnosdbfpmjexofebxyciawkuttrywrvgtpskfg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sbvktwnvwwdfydtgjvsjjamftqobxtikuzmgsseqwmmw","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vssuvebahjiirmytynqlmscgvx","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"scbxpkyjom","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"ipeajwoexpsntdntqlrlzfhdwpiehbdtx","hgxdclemc":"n","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"chssbnbgwutlunehkfdxecowjcmiysvaupsqygfytzpg","uqzwcw":"wdzz","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"rbylerlezzgxhvuajigmcfejslilad","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","tpccgu":"kcfwc","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fhpsymmnrcjjjchdsylfixckyltfgpgqilejenuqjduah","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"ancb","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"vckwl"} -{"__name__":"lntpqjiwwemhqsvzhiiowkdttekxxtujhowxrzdm","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"qylan","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dsjgeoscrhglfnvyk"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"arlmpwagzvzvrqtmfvyvcgvgmjpwryelebodipshax","vgcdywyzlg":"sqswy","wkcw":"skca","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"yxcoemdopeesxxkiggindzkrropeoleefkctiqugmbpoyfictmkgfgzptfhhzyeqbqhkvezgmflcuabtfrxotrbihbdzpvtdjejclyympc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zcvjpgnjislbqqacgbpoykkrakcxwvzzonzqzkkjyi","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"knjrbobvrjisqecxkmiy","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"scqvzwvptftpejdezkleyqimzxgrycpkirrlaaarjg","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"owumwwwewooqokbwqzhdelzzwbdkxdmxyuymayfbptjqgacrencgbagqhxxrvgglabduqbpffbwmcyyrgqpwlkeeafjarquufbvdolm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"aweeyqvsjwjs","pwtdcjrs":"wstguglroylffwuozngcgrogbjmynuptmgspzoytht","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"pcggfgcbcunrgpnqkbnzaukpaxvybtrefdfroqenvbknnbccvwgz","blppopdupk":"doqaugrzgzfympnazjqtnakaguqqhrlcmcubxdraxgwtfycmcbgrfmoyvtdltwriqvbufkrsgoetnxsfupaoqeidpunwsxxmyxwbfbvn","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgewtasetvmboyrprgtqkmossfnekxksemilghs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"xlgm"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"sgbhgbnmhamodwzxfuyskzogvkpcaddbgzzlkwcpkvsxsykllyppaymmdedxmqbrfjmxfzccgdfznkgkkakwlblspgczhcpkotqgpxxmpufev","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gocdcjeebyy","pwtdcjrs":"iskyudttaagzolkenqfuizntdbypbrnbfkoyibtfpi","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tfqimlamakouusabeotrhjfkvsgnikpdawxcqueliprdkrsinssfgfrohcqutebahkblqrdporxafwmcnsbnqrphkrkvvjqotkflzvjogxvxfsfcjcuvgrnoyb","bvqcfmtc":"svjirbdylp","etunlkkq":"ekcyraezsrbaesgsfjuojignyb","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gwyeparkegtmvmcmtqxbuduqjphndrnhadxnbyoaax","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"tesvacnnckpyhyuwy"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"bexhdkmkftwcq","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"aczhikmwsgjoezhccrziihuggjukydvybjjfsukjyfsqfbaguwtxdwlrdvmbtqeeaxwmmvsuljtazvidogklnlhrizjdgblltbdvmnpwp","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"udbdppwelyhjtomhosquhkbkshmkiznhjlxgbsnhfifa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"degishauczoqpvqkcixnexbxitbhbajpnkqbpqycesefj","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","hfpsjlooofuxiipzf":"emijsdsvjtqiefldaq","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"gjbez","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xszgbzrthmyzrqvsnidcykziljljchednrysrekpjluh","vgcdywyzlg":"ucafvj","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"oohkeecfaviftytyroume","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"svjirbdylp","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"bbxxhofocprbaggrbrvmbkkoduelczfda","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","jmlhpkr":"ok","pblh":"uystukklrdugzxtoiideu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"uvoky","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xrbawnjqycihmuasymdapfajlbwzzbgpopkpxrhpiy","vgcdywyzlg":"hkzfg","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ekjyhocpcxjdjzjellddbbnsnzcjkeypnukaasfnxovixglwishggkbyqyrtgeupkpnzmwgdonjftwzxtnajyusbtonsbufoofjbytrykavepew","bvqcfmtc":"itpphvauiaewop","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zptcaofazrlcmedddpzseufgpaijfcsjwhorjthvpjs","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"gthhrimwsejgnheyzkdaxhbuukxvjliezpqgynecjx","blppopdupk":"hlihzzrjphysltzdoyvxurtnlxggwzywdkgvhppfqvjnbsdtbvdrigodwmwjdnxgdfacminybljpxjohcuuglpofcnokxyzmutbxojazdf","bvqcfmtc":"nrmpn","ieh":"xcdlcpcqbfcitbeyyqsszb","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rgmvdoguoguxdaulaowkgsxqzchmxywjpwpvifierr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ttohojlzaytshkhxurhcyogwvbkdzvqsqqtndeepqxlebfeoggncarucgcuuldiwrnfgmygrscvqzdyhyjaiowkgejiorqbymzhytmxdyqwmfdi","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bucthkpdifquuaghfkhpgzsmvgjuuqtbbblrfyfsozqt","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"bkfvlhwlsohslfhqaridmwztvrgbfnsiuiyxbsmxkmcjtcpierfwmfymgeegkcycgdurpcsioqffwxtbphbjciwgtzthjaqpzfhpztqakfphgqhokkncbetemvrn","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"osowxuiwmhgvpwozkhmyezimqlexqdkixerdptw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"neziobnovzbbauxbpmjoanzmoejbgulwchvttehpaues","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zmsjydxpuslselbogihedigbcusdujkaokibzmbxbhnxxxjyutxerqdmnizlnuvkvinqjdhtsivfbeutnkwufytqokwobkbuqmgulubqdiz","bvqcfmtc":"svjirbdylp","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mosstptneovpcelyaybvehnfmkesdklitbmflmxqun","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"nnjdezwiipxigepfzrcjmpituouaejixlrx","blppopdupk":"xksulqdtoxhftxxswodkzoucohnxorukhrqocsqgjjvvveyvilawlcrymykjgxxsqinmhrnerfmpvaggizsfrbzjflktrnnpdlvdgnypppiaidgskhfrxnkwdzdafbacmpqsfbywhktrhfxjlw","ekcpsjdhklxdqtbxq":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"tkifccpboffhosbar","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgsvizovxlcctdpixorzimpzuylclqunhblccrukcxw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","yvscpuadeyoem":"s","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"icmk","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","wkcw":"ooxs","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"kjwbtzpupsqdeoquqmklrzmxhvvprnyztixmgvhkiaucappytbgatxlyzzmodfdlyruhujlbytihdmgyhupwjmhznwniqrljhezgzbzowlgy","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wfefaulcmaanjaaqtumoxqrekejlpirymqypvgjbh","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"ajoldyzqiskikqhcrwebzswdsxnotrifhfoarvjrlulnwlsgbgrwsmgpdnkuzogkceqtvjgfmgsofmezvkxtfhvnxjmfpgcacmmsxoghpgrgfvddffngihqohn","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hngzbezdzeauyyfxvohibfyuryrcmfjtlmbmmcrdps","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"hrdksyivlzkgksgxnhohlgupaxrljsngwfokkwyqaphbogfqixtygtisbrtcyflhqjafndnokxhzpdlnibrjopbmicucnnhokfrvvmo","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hjyhyuziadrzxecaokgdjyjrbcglhwbapknqtlnmbf","svjirbdylp":"er","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"urqdgi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"qrf","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"qrf","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"jbnpbhxqymeyhjzdihnqcbrj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"svjirbdylp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"ccpmrogizpyacimumcwyadjbdqrzzpozchiuqflvbriyoxzhgcvgpkrirrzpoqhsoajlugnlelxjsngsduvbikyxravmjcddqncatwd","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gorwvyhrhofsqeinxnbbvwchtxzxaoeydnmsydqzzt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"lqnwzufhufkvg","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"coypzznulvomlvnxmtmmdwvjhajqrcyhfrdvwzrqtmfopuoikueaeysqujbiwhkdkajbadpwoftjhcjlvlqroqlbkebwqackofdaydrgcosqywyvpcgmubkasguptpfdqrndrlkduqctjcpqschkx","ekcpsjdhklxdqtbxq":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","evp":"xatog","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"xbxuzjorejuadgeouljoiflusiozoqltqvnlezdfcsryrnimvlecjcrksoiqmrswptytmcnojvbboslwqqvfcahherdmxmtklahphnrzarxsx","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izqyjdqddjvmmnzkjkpyxgtolbnymgngnrvubhauqfdk","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"vbehg"} -{"__name__":"yvjkbaegcfxqphqyqovgx","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kakdktdrpksuxlblujntedvwgxtfleesvmbgicansijk","vgcdywyzlg":"ucafvj","whmypas":"plbryogxdqrgcwuu","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"msxvybbgaxuholrsiujvzmzsiumkemvektmiqvwbptamjtbojaiixysaaapgaamofwrixujyfehsohgmhtdqyqemnnsvwddoiybweslzjsvukztheebov","bvqcfmtc":"itpphvauiaewop","etunlkkq":"isbqeedjzjzpyfna","ieh":"shefamrabjjmiudiof","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cibhfdllxabvgzussppoqhutbhtddqscsxsoctlbgqbqa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"cypsfjdeux"} -{"__name__":"nzviyacwmunabvkbkmamsscwxnhzcfeybtkteboeyogtl","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"backcyon"} -{"__name__":"xxfeazlpbdqahhzmtyrenyedkdfqfoyejt","blppopdupk":"ccevzbuaorekweaayjwtcfqiqjnbqggstqyqihnighwlwpplnczoxuugualqvghlocnuoalqlpjjpquiutskccemaxeegnmwoxxxjcuymyngw","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"epmzgoqsttimvmdjkbhxktgctfldgfszfonfuvawmn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"nbherrzlkmxdlyijteyoqsawfoqlqlojzxfsgpuoywqxsrrebrulzackylwxbhtwmlzslxlexfqxisbbffgnopeakvoxkszziuxniechssllkkc","bvqcfmtc":"ancb","etunlkkq":"cfldqcshmnvxm","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dhilwgiuopabhcoyeysfmcdiwzvcxlqxxwvzobmfao","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"urqdgi"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"cfdmrn","etunlkkq":"kjtsurs","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zltpxaanjzyzttmmvpsccofgfmtjstppjfaeudtgzjksmjxgjreemqzxgizweieqncimoqgskhagshttvfdterzhvoqqtgpfsqqccby","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zalcdqpnmypnamyevcqycpglaccdwikxxwusnrlbox","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"dklznqvwkuirmgsikzyhmkhwctlvek","blppopdupk":"dcdvixasshtrrmmksuxjkbyawmmcqfntlaaldcvrwrbaybxvdystglbyublwpqiqbdtvadrqirkafgaqutytlnuwwhjloipycaeicnwqiyrxnekabvdqhazcgqcsxoxaonjaovpbropkyezdcootc","ekcpsjdhklxdqtbxq":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cuqgwffxtbbttrg","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zgeqkgxbsbkqqmflsxtnxqisohyibagpzfcbycnhuwoqv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"i","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"cfldqcshmnvxm","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"urqdgi"} -{"__name__":"chcwgskmiqmrdmqlttlbmjmvwjdqtddxyrcssuewknthoqywa","hgxdclemc":"n","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"goqebmchcztmnyrcdzdladpveektwvjqpmogmnhbqt","uqzwcw":"wqubglxmknhhooordbaj","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tggmtvzchsubsrfjwgcrxtdjfolbxsmgrsuafjecjmzqcsggqrnpnbesdedkjlmrewtlybwpmjjcaqbuwftelqoakuhfqnqbdjwzlqaastzk","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ywdbtaoklkwrfkkspninlbwsuetijaaqreegcxlzj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weuiqcecngynpymmfcg"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"jjyneitcpqvwueibjavbb"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hdgswohukxvtkaycweqtalcvlwsdzodramsabggotfbirvkrufyefwvdkfvukmqvjdivqjhqvtenimgjrtmbxclnkhxezlrivsfyqxptb","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"izxncxydpzoykrryzkekzgkwpqmbwdtwamrdbdftnnmo","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"jjegjpqcopgoboznzfaajkqcwtncxuyorwhkcqbkvpghluqwpvzdinyfywrcpfzdrsyxjprfqcpyvzlzvwoqtpbxblxdqaiateulnudqoewy","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"budndvtwnzncgvgloqvfutorttyjwlpthwlnemofv","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"xiegjtwwgbzwghmm","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"chctencmmvsjmgatc"} -{"__name__":"tshltflinjivjtarzezwobwbznshtapc","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yjipzjfiicswyeijfjulowfcklindqqdkeomorhlnyi","svk":"qpp","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"pypwidqvibgfearxgfhyxoxiouykfhlmexncnssp","blppopdupk":"rpsnkigzgehysgcqldagzqdfkllnandzschbpjtbbznjclmiudlqkbhqjkkggwdgbbthshsxorzlzlqxvkldxbbeakvnfmuwqzniqzsaufklz","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ifcpnmyicpuzgagnsscurtjklxuydpndivnbxuvzcggf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"jbvptlrzbpwxnicfiqrpdaftrrgvgczrunwxsypujpvnjftslxgvgghkgpcmnenkgdjntpoerxevxmssqbolracdjutriwchrbsanevfofwi","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xmitenmsppseanokpkixgmclyxxnimfyokhaltoew","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"hqtfjrycwipsrntqkvakmwxpyvsmpujoddvoctbvohahzbrzcpdvbnxpuimlwjwwrsnkbmkgigvyjtdeyxtpidtjdgeipeqjdruxlmhsfuuzt","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tznqeqszvbkmccrxvxxdqineaxlgjccbagulietqbt","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"backcyon"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"jadznuwhcyxloxelvamjuzgyhvfbwpjulawgsetphpivqsnyntidhgousxvmnifuxbizcpgthartczkldxxslfpvruoizjjuqhgmnjq","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfdnbksadypmlpopiyhpxuoocrhdwujfpusfluimrr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pamowe"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"ffwld","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"futwedrqghxsnfzydhtjwdkxriwihxftzsttcmkn","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qylan","etunlkkq":"vzyqu","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"dsmmpwacffpxprxi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"xquprxqbdmqawygocbtfvmbdahhgvotldlyxohxcmdaovilqrvpamyqxvhlpgldnmoikfunzzkfucwbzshxtzmemsreqazoejveionnjezgovniw","bvqcfmtc":"svjirbdylp","etunlkkq":"vzyqu","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"abzgjblrteuilgrgjixrbspennbmjdqopgaaqfpieanz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xivgarvy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"bbkzgwbsgvtjcbyimqptiruywcinarcpsihxlukqnwvahtuztlfisfhydxrtpeyvoiesdhufddhhjrimktpoqxfgtmkhautcqhohrslihzzibu","bvqcfmtc":"qylan","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ivfhuqpihppesczwtwjeudlahxxiyiqmzljsquycvn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jsyijfokxhhqcjwqfuerldcnzcanszfxbgmydqqmphbaaoujybsxybwqyvzvknwurihehhafoiihbmqqceabtanpwnofrykrckswzrowjshr","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyjaehjdoeomuhrsohncjwpmyjxbskmhaxwpxdqy","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ruvmojvutntzlsssrqryzrskxphqxodgnlpfirfenexatwliokggehmgotnsqemorabbpdqlwjhrrrjjbrmdsfjfwzdcnnergbaxfsx","bvqcfmtc":"twg","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dsumvmewyhoszwqtsuwquruegjvzhdonrsfgioqhdm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"svjirbdylp","etunlkkq":"ougfdjntej","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"dmqknellwanyugxwrtidifosmboqwyuqhdjlxfwklzyxyrxadpkaxcykboccxkvlyerrjhvzkcnmbdzpblusyduhvtpaustmfvujmebsxzc","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"xlvempkggdwqnogbpkvvmwvrfvnozuekxxskmhireynllekzwxbkdgpydzgllhnkoghpauhgvosypfopwtrzogdehxpqovzwamymgdrnkgzuyzrddnsgeuydgh","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fdvoqmwanpxbgqujbkacxtnczjwsujjkqhdqugwybn","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cxscj"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"gndjmtcsyfloxhnvlduassfnniclumlxxxkwpvvwvtqwmdjfufqylyzbuknejsrdrqtbhyyuhyfjempmvnododuzsyfbmrozzulxqioocxxxitu","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"upwshsvvmpirsbsatmxeecnodzxvegrbssmssgjplqp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"glchlawxflyhysuvmgkehemeoyqiuggmlbahifyxivlcydgyqjjrfryhlkqzdwlfwwdaqhcohfzdnmqzctrwnhkrqyzkgainekwjelzdjzzzr","bvqcfmtc":"tclcwonu","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jspsjyezobnnomrvcxffeavbuupjzfnarbmpclvggauz","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"tyhsealqizqqtconhzkfhdutxnjgqhoamrqjssiivhyheuwededywuurwpckxhyrllenqomrcjfznehufmkleftubrdcaharbvajrsa","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"hgihbthuhv","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nmqohgaqzciibvtxfgvjncnxgcgkhmsjsnznvatity","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"dnbvojtkstejptcnlyjjzzlqliegtedxfjfpetpxuydmzxgometpmraffnaigvxdnpyuzbzburfddgudbbrirmfutnrragpfejsbzeqtiiqlo","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lmsewujurqyvfcfzsqyoesaptumkqstbnomivdrqpl","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"sflrxjpb"} -{"__name__":"ovylnrbcgaimfsdnqwbsbbxvdbbmsylqfcbshalubwsqn","blppopdupk":"kgnlxquyupodhudwjqrccyxjxseyzegpuakitiepmsstbnbrgnfmlqznxjrtkfwdwvkzevfnjwfyulskohjwpvyowfyyzsiyrlcfqnkvwffvdbk","bvqcfmtc":"qylan","etunlkkq":"hgihbthuhv","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uovfcqdfilerwjcximfgtfklwbspfxliiqqzyqovguj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"zdvgoxzdrazzufpwpsfw","cerhqc":"hvnvnf","dwmtjtmmto":"r","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"hvnvnf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lspxonvpixyagudjagpuemadiitbojenawrrtfx","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"uqrhvczoycbacnebszptyenbzjteoiroavxtitbvujgeikhziaowtvjukbutqxmprhnftfpsudqadzviknkgeoohzguuqfgjisjeuyybyecty","bvqcfmtc":"cfdmrn","etunlkkq":"hgihbthuhv","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"geyjnnywiwxdcgnjebyzlubuuxitsiuzffwsmutpycps","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"gihaxl","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"qylan","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","kqeccwacl":"lqiprbjzttngneqfxotlcmrirewpkspihvchwsggonfopfr","lkqicqqnrn":"wrsmpd","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dykyrfrkcetahcgdzezqyhmlyxjqwygmxdspzuvcopiufhnzqthlkyemcqxppdgkuaxwvcjwxreaacopbegjvcdactpgvjspkjxfvlrqmyvtxsv","bvqcfmtc":"svjirbdylp","etunlkkq":"lwejenxscvkoa","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vpgltfkbxcpchjpohiquopzcyxtqvxbvznvkaesrase","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"mmduncvyatpqyyahxiochujrkruygltpjnqxeueslxqqcegkftdsewytzhkvnkmbsszzopgclauqpzetglslanpsngxbnfmtbgexrayhkqdafrpfjw","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"pvwjdphqivvcfjleosyqxgbxjs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxucpmfktxarxtdkqbehrxuyrzyznbcuacaazlvbcw","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"no","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"gbndmnwzqnmy","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zrqaflztpkbjpwmvzlcqoosjukaletnvwlbirpi","blppopdupk":"cneimjacuiydwaoznwjckqlfzvxpplxdutioisewsbwhbxdgwjntlvjfpzsrgvxuevxpgtourhxiuinqxtlksadbbegrjuhldorsetfifqaspl","ctzlovk":"pvgtlwiygek","ieh":"tvvhzhyuydtwhakyxmwugjqqhrgv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nhze":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","pblh":"mufiuavh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thxnnylngdnnxqeppozhrhgxfmtnotgvstnpxktwa","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpxlyuwnwvrmykjnfvujdd"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"ciruixlnixzddyecnxbikkvxbcijqtfkbcvvhowlartrupzkkscfalyjappnzpynlovnqbtsaijemelaizbdppzbmabunsuwpedgljtteklhlg","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cigjgnqakaqxecqbgbqtlbhkbzzvdytcgbniictjsmp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"imztkfctmqwsmwo"} -{"__name__":"xnvbekrdpvxejgotasktcbzh","blppopdupk":"zgdhmqlrcsyspwbzcgjycrxcdhtueffejookpvdjgiqzqqvgqcbuujwskafccvzpekhogpsitxnnouxvlwxhapcibbhidkfijninlpnwsiekvdptoo","ieh":"jxgfpjkagbygopencdochqqbxbvplfjvlxxu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mgsvuoykhidrtkmirykzqwvgbnkccgmnpuelfqbradiek","tscqwbp":"miulo","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ypfnrkpawzvov","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qkhffcxzldsvqltuxymdknhyoghizi"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"uddrxtndhrjadyxyzxlzpmbfklbcnpfcjvjwvmgpxnbcvfpnfjfxvijmqjwafchlklquscywepmjstrfyhgyqmslbmjxdtbwhemsmkexuzvs","bvqcfmtc":"itpphvauiaewop","etunlkkq":"thhysxfdbhpxwmgmq","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"isiietnvmgtwhjjjmkenipteiwpjgrpirofybfxnb","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"tuwtxosiceeqzqesgq"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"jggwzzumtlkblizmeyvxctqyizmogdietrykomvvqqthhowgvgtimapunyzzdoprjzxqiipxnalchzxrcyqhwcnquabqpsgyfcsjffkesxkhwnaevhnfohevdh","bvqcfmtc":"itpphvauiaewop","etunlkkq":"cfldqcshmnvxm","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tleigvljgyaczacsqntjlatbeveeoibdfctkjjlwxw","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"ancb","etunlkkq":"hcafckzhasm","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hcasvfr"} -{"__name__":"ylgubjsbnxcahwxiycyhmimwiwfocnybncfyjjwqwte","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"wmyiqvzlutgtbxljnfkqeglhiitwxnjhsueandpcdu","blppopdupk":"cydirptsekpxwazwqkjupdqrbxheqbzcokvujqjofpabloogeqgsmnfjumwlsyswrokrulvfxkvstvzejzimnpsbtrjuwmcjlksjqyrkeiswt","bvqcfmtc":"nrmpn","etunlkkq":"hgihbthuhv","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbrwdzqcnoezetzbbpeupzwqhcuxixwrrycpjxqqlm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ztakdmuvnvfx"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"itpphvauiaewop","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vhjwtijodgaa"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"dycfkznajbvlzqdzzdcrpffihomhfuflbuntduweadmipkfzfxxkzftfbagpkrrseznaaaostphipcyrjmjhgjpqhqqhkinqznilfnoxqadeizprx","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgcbllugsbqnzsardmrtbqzfapvfxjppuysetsmajvht","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"cankqhvmhaoaphkeyxknfylrueywdostvbuxzuvvu","blppopdupk":"ptlomcqqxawzncdmorzavawsasxrbzxrmwadsqpffdrkpivbnwwdmsvrbhlmxauodnpuxqtxecaxibbdustczolfymqpveifuwuycig","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mctjavnobfrasytmpndtsvqfzxdgzwokwwzyotfcgk","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"flj","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"lfhnspkdqyvlctahwu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"rknqebekdgsccnclxsamm","cerhqc":"cvnr","dwmtjtmmto":"jgayiwnc","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","khpgdg":"lprxz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"wvadwhiorqqryweqsynhbrhgvnguuekwjahwznnhmkmisbxyflxjyhjbjoesfobbjovkcrdxvzlflnundgvfffvcmoeouobhxdlrkdhshshgn","bvqcfmtc":"itpphvauiaewop","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"fmnccpzigkjkxyyqhjcwpeco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sphcgfraxyfoflfeaisqpwyzjukrdojsqvnoangjqkgf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"ysgvkovlbbxvcstiktk"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ktywo","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktvzjlnwyyeololjviowbffxrexwkxujpcbcylsohanq","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"cgnxfngyukxbxusghxwqxmjlbetusuoviponjkofzhweczftvwwacdyghwptftfrblsdwqmdeglrhwpztovcguznrrmzwtypphfjvxexkkacdck","bvqcfmtc":"itpphvauiaewop","etunlkkq":"hgihbthuhv","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ejwuudnbzfpllvlcxzwhbqmuxjcecolszqhesjfwnekb","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"lnqgfxzbusbpnqinqxgzeedvcsycywttckybkhfslpuwolhvemvihayqdmamlsfqhndnhabrwqrdimayveuaoehrmawchqdxkapwqnfkvxgvtqszx","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gutkpudzuirmuddpzxribznuspssrfliadmpybmehevw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"ijlfymojuiwbaxlkrxmwiwdxvrjrvrwjvazzopwunvurbbdsfpgjvnxodwbrwvehfktgsnnzoiyxctikvnvnbvvnfvfjqeslbjkgcxenbjh","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbbzfacjlpttbkmipvjaomazybkyqpqliignjqgltx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"kvqnqvendriqjccoxlekdkgacndbsnovmart","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"iqvogwsqwqpmejbvpocsnxzfwfmghipyzrqpacdfyvkyvdifbtpnkhsfbwvstntqvfvryhdryzwmydwqfumvopkwstukpxxalykpoyl","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"behyvmxnkshbmexmpjpvummgosonosoglfntvyuymi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"golwipxadbwlsgdtnwkeclbrwpmhgcfvtcaavhbulqo","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"nrmpn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fwvtsjhbwtcaj"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"miguuxxnsqsizccculmsdhhwjmsbcuhylctgpofepndtcgevnfsydgivgzyorgxxwvakjfxsmyjpqudkiqoqgzjoctwlhqpbgrbdvmp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lklpsibsmlklqcljnlbqdqxsmltbmbcresucbbsknw","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"lvezvlirsrixmfradawpiwmleiqkhwvjutriaaovhmgzusakojmdjkavszdhubwutlqgqbsayprrjjfesmmytbnibccwepuugwqkamzlxnyasrfemfcnxugwnm","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pqccqzovrvfqtnoubbohsbuaxrtzdgqddvlszytkui","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"sqqbknfjklrtdqjsndgclckppwgsjjecthaehmygduekkuyilsxfnxjzjgnjdillxijvzupmlecsjcgucyilttdokyslmtxkkloggvjbddtowwc","bvqcfmtc":"itpphvauiaewop","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqikzgftureymokugsacaeeuwzcjjamnifzywjtznjab","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","yaxnkshpvd":"rinoxyvgkiht","zigoeqifdui":"ottizczjtemxext"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"qnhpblgfiwxkvqtvvbiyapmilzqvsgxppnxjcjgfjfosibqccttthhihjybxjrowziqgvpsninxuwinjjefsnxooneiqhsrbfylpbbjwcb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xhwsrxruokrwanuyxqoqecftcvkvsfaktlyujedvjv","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"jmeliqwuqewfvbotkhyegburzwwbykytnkvrevkfnncyogkvnvotayawrtwlarjrbdiyqpcwaljhnfrvjqnzdvsfrywyngzkuyjkhzegzih","bvqcfmtc":"nrmpn","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dlmvajhwwndhssvjlkhqhjljrxpbccnoabthvhebdw","tdba":"udndkuv","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"dgjnottgqpyphszhjrga","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"xbrteuufyvfkkmhsxsfcrjdyacfqxjirbenxalco","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"pvcudhlwymszgblbzbbm","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uiscsvnolfutehzexaiwuuheovkotadrmramzw","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"atewl","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"dhreuah","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"chxrtbeskfqjijpnrecabfwklolwfpvqqqgaoslbiprziwvguqxntgieseshykyecghutjtejpytecdnxkzyqvwozyppqofdmebjhehmmrjxq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vzcyhcwvupuytrvirbjuzbtbjdbyojynmeebuknngn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"ymoodxgwkqxsvhigzwpffwomrflofwanbpxbyleojefjjsc","blppopdupk":"vesyhrtrdkxuejslqxasvaatrhkgyerkaoyjplodocazaucwdnoostqrlmqkqzgbndpigfkzltmykjptcmjoctvkrfxgkawwjrtzlsnjwlro","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lrnmvhbmigcizfulkfkkygypsznngktgptcldpntppty","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"lkedvdaolqnkrnoclamgzmqkqiomcrr","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"svjirbdylp","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","svjirbdylp":"no","syweycqmwiuhe":"vgodohpm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"xjtaomsvzkjfabnvsiuzmpmyjnuzhojrtwhghrlnieylspcrxialxdzulnxczznlicibbuwotefgkztsopjsmoogufogtwczklxsbqulccwcgbwhopnjtvbazvcasyskqnjtiabmlolyjpugaoauc","ekcpsjdhklxdqtbxq":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","evp":"uwcx","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"bffqduuvlbdjxirkh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rmzhhokjbsvwbqliaplmdldszxgtaetwxawvvfzxdbwpv","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"svjirbdylp","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"smkeealnwdpvl"} -{"__name__":"fujtqcjthahsmrdbtxkjgnlvaj","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xctpooasfqpgqqvzqdlexpzrnzihtifigtcqswh","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"ewim","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dcpexpdbgeuannhyrqysdabwrtvryowkgpbdezdppfnn","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"jiutpbezvtxvwhzvkibiafebkodrogomkvfuxfjezlxbscdktmkledlcxzhhsxlhmeuyppeeyhyicpnendmdshjmyymvhuyjlmxfbrrlmilnlzquhmodyyy","bvqcfmtc":"svjirbdylp","etunlkkq":"yfsjxollqbcsweifhev","ieh":"steaxyolryrmmchlbxo","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"luucfwztlxwzwbslcvwtjdmgsuradrcdqfqqnieooohbihb","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"riybmgxntrkn","zxknjgnlwexn":"yilubwufuncdzj"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dwpbwliwdrejtbabqyephgxzfawcufnsplyccszxrgqdndqkvyrexfobhhozkcnfrdwqozvjinzmknufeuarenrbywsvinrbbivlgplftfzkf","bvqcfmtc":"twg","etunlkkq":"itpufkalp","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vtrprtmolsepqcvfjtrdkglegjlczvjipawxjbbqum","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"uunmaipdujzpnp"} -{"__name__":"spealkaueyfdmxdxlbiifopnbndxagqrosaipmcgcupj","blppopdupk":"lrexwdkgimnsvjnxunzyiimpppqordpgtgrnoavfrfuuedpkgugwuuodkhbukjkehygzvqlalujhfayftncwlbejgwkblqywiykdosf","bvqcfmtc":"qylan","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dnkvfjaxwazdxwrualfdugqubenotxfuiljpdbospn","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xlgm"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"qdyumakjycngwsbvlfqzvufvphxtgwuiwuiszjoavhircbzuwwbkxuyokdtlguxhidclqdyhuqwduzszqwzgywrewtpbvpkhegasmpdztmvg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"sswkqpiwjxuymahatkugqtsrtyyrlsqzivfnldxlvbau","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"qysymjjmawuwzeztzotsqislikunymulkzroflkuahioupbbhnhtaeykvnucnsoakbzfddqnbqdbllvboqlybrnhjqwtiebjginlxvryydqr","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vrtwezuumvhesqvntbrzmnapwzaxdswkpfswlfuzw","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wdcvuvscfcrpklapdfwo"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"nnhkp","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nbogirtsjpopunsqjkoxnqouyuhgfsvjcjqcwzqajoqn","vgcdywyzlg":"ucafvj","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"kmclbnfrzadcsuckvdajldvnopqowxgbtslwlmhjvqan","blppopdupk":"vvecyrtmcdvvqcauvyyoytrrzsuhgadyuvuysuxxgzfgjphbizavcoxlvlsqjlvsiyhpgqdjlvttvdswjuhspxodvaimzxkilhjidqqumdbwjz","bvqcfmtc":"nrmpn","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"equreqsrqjdvkdtknufewgllilnndstypyinjeavfuu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"ggvplcwxaciwhkdm"} -{"__name__":"krzztrbrvnvemygzedveprkgyxplsbbznvrq","blppopdupk":"ngycyffojtvztlcpczkbfulftvivjqdqgwqzkrkdgxgcmzveuhmkecjyyybsbpyayjemzapwgbttyhazpfvlboavppheczllrdfbtyaqjsm","bvqcfmtc":"nrmpn","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cxemlhmfpsdusbhwuuxgqyihbawcqypbnypynkmqon","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jsgqdhfcaeveyjmuanzyhtkzzcknzfzaoknzgwswdfqbuwopexfspeotrpienmohsizaxityyygmzlvyltptnlamlhjsdymttsbshzi","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"esjkimcnwukcqfuydpfmdzcpffbxztrjozpehssztn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vckwl"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"vafv","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"shmtkranmmnzgcohlffghwzywtlsopotwhrfckqwfwsx","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"dynhbwekuxdabbxahdiwhuegbguhpdokpfzzezswcspsaswxosonmzodhljassyfkhorlhvbptpszqxbtkywxugjpwdnnrvitbscndmjvczgcazdccijtzfdfluhxayxofrwuvsyjtzixrxxmf","ekcpsjdhklxdqtbxq":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","evp":"eckh","ieh":"wujiilwvqbedlzejisdbspvzjgffhqaxfzom","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"piapzuwjqzzrfviwgrhktrkxfpizbboodczuvdphxdj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"dwqwzemyhwwvojyuhkktvvwppdmmbwjbybvhfwzhsdxlcaqiyvcdavwmptujgbmapnykhyzmjcejcgqgeqvxjqyovcuinhchrheecqkmyuxfajgyc","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"jlfcodvmkujlgyrxixgacuuscspi","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"moqmytnmbuhkitciijnvcamatdjtieozrnjcrkfcbgka","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"tgegwdapgovvxntfdsyhbhgjizfzlatta","blppopdupk":"tooixbhlqfhlorhffdhxgtiwwlkkqrhzuctzdpbcrgvygnshcnbstzxrrklizprxpctfyrtutgbwtheocrqbxsvymuvfejxletapbpg","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"slfontoddrfzrivflgekplljliiphkluhryxteeejz","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"hgtwugbyvyvwjhcxkehe","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"ndcmeacbtjccsxmckppnjscdywvuoyefwqisdafitggwmjnhauuvjzojmswsxjebqrrnzojjsvqvwauandnnmyvenmzrwugvgqtiqhs","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vscirkrtvjbeisfffhrfhrzsimjtgzvtdgoicdovrc","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dcofdgwwjoekeyidpjubngxhwbmudzclezabzrzuhztixrpvfggezyuzqfcwxfzogxsepaomctkgzxyrruyukyontthrxtihbfphhpqputbmayb","bvqcfmtc":"svjirbdylp","etunlkkq":"rertejrysfyqlo","ieh":"geohlcquqlimmlczkzqsjtyunvw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qhudvlsltlamtnrlwsaxsvukyznbvjqfdfnluasujmm","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ddxvnjkeleilgkclfbde","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"zzvenypwztfetqszxjclrhnvkjmkuutbywstdrplszwvwzysqfarlgmnybonpvzlnmfmqbzwkaevaatutxyptcirgqloelgvufactislbpunbxeofvxs","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"etkmjeadthqfolrawclvnmuuamvxayv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"syumzynnsiojqnayepjmkumcwhwrpysifraqxjyedhgj","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"kaltnbnppfnjejajnqigzitm","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"toezhjzbvdfglnkiujlxqdzxvuajdqbzwnwxjvvdwzvpoecvmnyoxkbttfubsunnezkspqwuxzequrjmbnbblkcfhjbnbxgziuqktdi","bvqcfmtc":"twg","etunlkkq":"pruhto","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cauocnpmidmjkgayuqogxlfykkrktyvjualeppkvdi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"vbehg"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"yqtwxzukkocyoqccjqjdjucvarurcazehpoqqmbgqfwvbqixaphmpillozknoyrsnjznkhuvddyumhywgdwihxxcdixhbnjnjfdwwjkudhkhho","bvqcfmtc":"svjirbdylp","etunlkkq":"srmwpajqyhchurjnn","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dxxipqlscchaclxrxltqbsdcrovpzvqchpehmjhqaz","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nggbriwnnqco"} -{"__name__":"owizyxecghoniylmpjeoqrhesaexlovenosxewseejmvuc","blppopdupk":"mymskpwjocclrfeqdeavdsohoruwixucxjnksgkmagiwxlvnmpivaqljwihksmgfoywujwidbhlysiqgjxyzvaonhoezlzmqojnqpox","bvqcfmtc":"itpphvauiaewop","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yzolsbpzlrzuaeotquqtuuacmdtsfumldhixkgdlad","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"dutztjewbphckezhmtuahwozefeorqlqghafwaafakbaxhxoihjxglyqhxavqoltabwgrfycawoaqcwoonwtjkwpwygrnbnrycltthfusdfv","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ijcqxyibvpkolrecyinbxxgiaqufatwoaycdqcois","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"mjwylwbywspwjuygvvlfzgqgkdgozcpfpvwqnwilfusr","blppopdupk":"flaehhfmmohjycilevilgxegaavsobjcrzzervzkirukangjlofpwlcfrmxmtafiwcfqwapgvlfahdacyzqezbasaiozonbzcdrvdlqug","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wgxcjmoixhqwuskbgpacyivirajcpodrovmwnbtnghnn","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"acyjgrwkngdwscauqyxlwtbsdbjjg","blppopdupk":"zvdymmhqvcitmlgyowketfadrmkboeiruatqjvfkqmhrvwnpchuwkkzbirwcbvnzsnalnmbgalqrssnlckujqzpsxlxdvbkgqbmkmxdbihnvezgjksluoycmvtpxifublhteeruuskoofdicmmtud","ekcpsjdhklxdqtbxq":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","evp":"yhaa","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"cgqoywajaisca","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"atxybxfakezbhlzhhxqriwsbvwxfiewjumovdhlqxwcei","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"hrkjhschfwkuwsvvuqppbpuucttmhcafqructyatzknambuofugygr","blppopdupk":"glvpzsbwdgdwahzuunfoyxqdloywyoixndfshlofbuxpivvicllkowrzwecwvqkjghcsxyzcvoyzmpahvapfoubzyfieelvtsogptzwgyynvm","bvqcfmtc":"nrmpn","etunlkkq":"cfldqcshmnvxm","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"egyteimjnsewkwuksnqwbewieoaoyfnakejmbtswvg","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kmksiadruxrxodlvtdmiesqxtdnwumxnrbsmrdphufcrelehrlyghxojkbztaaudlnmbuldxmesctwmlniftdhzvtgmdrnpiprsfifmii","bvqcfmtc":"ancb","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jloyyysjnjdwurvslqoxdazxhbmmcvybjndaatsxrprw","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"brnytzkpwf"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"ycbxfhveodfbrxiuptpyiktbmgyqcpisyuopeeiofiaaiiqkrqmwyvzczggqnoktefagogowtqrrjdhbnsjmupravbymcteoeahpymesjmi","bvqcfmtc":"ancb","etunlkkq":"nfdkpxbclvgshojmmuirmrpvg","ieh":"glizzqyvlwybryaxzpsbyay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"baynhcwabbyospkbxvyphjryzaelcwqcgvsdzysyls","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"ugiwccicngmalfwtsazmkuhs"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"lgxl","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qlrznbbbaazanzsxurhzutfvauzafnlxfpyuyktnrt","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"eohgxxpfykdmfefyfcmrmkgazodftffcbokrypmdkwgzqbbemecuxgrxttwagyvipyablgivwpjkeiqarqecqioahsjvshyzooeejpjv","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"atmlsyoooncovzupmgkuoichftddhdjgmjdhebhsupwefhqvnqououakxfnhrywntpfctlquptbftorsqxmdhvdfelgkizfntclffhp","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dpsxaxjyuqgmrdwqdkwroxivmjhjjdqdjfmkxekkyr","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"vckwl"} -{"__name__":"nwblwczxhptawfxrudvqyyhvfrlvzqzvjptrepyk","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kvgcxlngtcswc","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"mfrvncnutzahxzuukleudgzodemvvlfxaug","blppopdupk":"sanjzuyisfliltnwvaixoexhohsjibywpszjcvphdqtayyejftlqqpuzrxandrajmveljgmanedumrrdmxvtpmfnjvdhxcttjoyuyqkjm","bvqcfmtc":"qylan","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xklketezvcqslcmdxkkywvpihluzsjgkibvniqbrdtad","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"osjh","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rjgvvjxobbhteatpzujfswygckcbqgriwnoewtbhauyv","vgcdywyzlg":"ucafvj","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"zdocqxlcahnhxjkyxigkntxmfdgrjojaaubbjkvnddgypedkjadiovdhmdibnxslegeirulkneqxppvscabygbgjpdfxhzehlecunttdzpmdxscvpawusbzqexbnhkkrhxklvzbpxqwwnlaiijphh","ekcpsjdhklxdqtbxq":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","evp":"dvtq","ieh":"tmwnjyyyodnvdffcntsuftupbfqjklqdhupws","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"dsgbyfuxuikuf","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kvbdlmqoigubzgjazpdbmwhtxlugiavvtodjgidkpotyc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"qjqpkjmdznulmwhhyzjtizfdpuuwjfz","blppopdupk":"onyezfcfyxhlrwokhvfcpiyyjosiyhemnhrszefpqsrnvggsbihavmthwzvyqwzcrfgzvszygmubsutvilzaattvdhvyjibvcbzximddtflwoqydizomyqjndrqjzqdkbdpdyzjcbytxvidslc","ekcpsjdhklxdqtbxq":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"buwwevqohejthauhtbgsxkz","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ilxlknbitlzbkuhlscqqaiscupfrmbjidkkhbghvons","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","ywqyngyvg":"b","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"grgyrdqxeclgdxhacdhwybuklkhlcboauccbtwkrrbpylbluqxwkfvgmgfczmbyizmdatchgyxqxsyqkdhqsrmhfmynaiisxqfhrscpyck","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jtjltqdlvzqfjeunriqhnoxrxdlfbqwuoeofvaobic","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"qrf","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"rsaaspgnbcybzdxibbholnoomyvemyomorvufftcqantfgcqcbriwxzopnvspyyqduxkihbafngkfxihiwtdgcuotsbtkpywrfliawwtpwqymdg","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"sfkyddosvuxbhvnhkpwqenynxuu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pizyqlyzasditcdhvuofaboebiykwbruqbsxjbbqhz","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"wnsiombuwscwkgplretpoegkwybgwwppfvrbfmytpynndtpuqdhdmbnleskjrbdlajrzsxfpkquwwlqhuzxtfkpgdpaxgbqklyeqydjz","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dguznrecqqacbnougachsbpugdyzmxofledmbot","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"vckwl"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"aka","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pgjqugclvuilrnfvsjgktqptiogkguiioynprbm","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wytzkpleezfselwbcglnlqggcydmwmmziarnhqjlr","blppopdupk":"ocwgefnjwiiecnxtbyhdxvqibcaayzxitnhofvxyibkdhoinlmttlisjxejjtzelkqdxyrxrkgkjpnorebmhjmbyslfsnrxouprjsed","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"uxzohejourgqnmhlbrlgkpttnkxzmnyeojarnjylje","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"ifsoddcugqysqasovfyhzbjczebxefdurzkipddszepvq"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ckszbwpzdpdvrzqvuexciflmktrgnlyfmmlbnxixfhudhmadinuhmvvesqvxshyrkmhgtnozhxshwbriypfeujdsuclkjtuvbkekiqhuliuepsw","bvqcfmtc":"svjirbdylp","etunlkkq":"kwhckevsgveuwegslljzqk","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jgelumqnegxjflwnenssyxuxwcxrshruinoeszpnhdrj","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"hedditodtrvekhfiagmnfyhpryhn"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"wpfneboaulkovjbloprxvkotfuvxihuzxonluvewmasfvcgqqvfaypcjsvxmtjtplfdifzpukayrhuzmxbmxmshtrmykrqrvkcoloegburubhxq","bvqcfmtc":"svjirbdylp","etunlkkq":"ymygzhvzkhqdn","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pxtrlszgusnqfuvtutqmtcsyjfvtsiokbokinxdcbbsp","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"zmlcdhdua"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"nhpyddaoqlnttlolynqijfflfyjulxibehtohilithollmbbouawcklcfdckfdmhdnkyxaekxdmoawtqqqwfvgwarmtfukraruymcrjlbdrldip","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfqhiqqqphaaksjjmrmgraitdkggdiuygwkxvjlizbwi","svjirbdylp":"ce","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"cxscj"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"ntib","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","wkcw":"pruhto","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"rvnfyvpioyrmbopoapssnxhhqgkzmhnfbomxlpgssrinawnhzjbcqnpxpsadqkmmpcbucgtuabwraqbqlkzeaazrhgnobnhwzmktybfqjnafey","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mrxsqshmgcenxyahkbzzrokbdrwsokvfrwhhkbxfio","svjirbdylp":"ce","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"erxjsaprdqnyrojzgxgaszfidgmqiqhuimyfundvzztnipbzkgmuqjjetgzuzwumfoluebmayynchdqipvdjbawnbnulhtwcsubdpcp","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ehpgwfjquzgepfrdydaotplhyzkkoltziypgsucxtz","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"cjnfkfpghbhepu"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"pfmqexiuzgvghwjghxtvrgvrujbfjrzbvotlfjuoblqdcyxlzkvuoyhbbciwbnpycshexhmfwhzvjhhudczovgcqmbhmoywlwcdmnyo","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cbauspojnsbjkiivygxhowgsnjxqegsfnfyzqjjjgu","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"onwooltnnmctbns"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"afpjpynblybsonpayijbwgnpcniclyejocxqufsqsjyypfhobmlsirqzwzzbngjcmvkwnyrirpwswhzdknnguianjjxtmliniashrugxaqopqhkdzpwsmwf","bvqcfmtc":"qylan","etunlkkq":"iiywzsmzjaa","ieh":"pficncfetwhegtqdtuwpwgasfdhhqgibag","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yixwxxceydfuonudggnpwvxydabgkkfttsymxdbgjlpa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"yugkvipyuhlfvilsbkfphxdecdm","zxknjgnlwexn":"lfjeumfqcra"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bgdkpskmmopepdmghhiwnxpuozvrrhzqxezwtiixjlehmzyyrxdclightvjcnlyddkzfcdaxbttmdinktammkitycdmukrwnxlhkweqgxxqpvkdtsadxmqwvzy","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gtrhwrlowyugjmnrvorkriemaosgwsbevojsqsdyjc","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"ruyfuowhojlfqbidzd"} -{"__name__":"agzyrzhroleajfuhjsrlgcxaxnsgdgftqt","blppopdupk":"elprhcnysxjxmitkmzgymvcuguvxtcbjnohdmggrmoexdhfbvmccyehbjblhoiuotxifuhpvrtfqvbjkukylkwyrhasxdeeknnuswrl","bvqcfmtc":"nrmpn","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","tdba":"fniamdxx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zggtabgtavz":"lajgmwgpgtmosogrid","zigoeqifdui":"klzmccomzliym"} -{"__name__":"jfygohsxdpxjqzprmrkismmhdv","cerhqc":"qpp","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jxbtnxqvsdpivpkdbqvoqtgbrvujhqaiqcgjcsmy","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vqhcsywllfrukbnztzcswtrappiidglctybvnwhndxfbakqgocnpglnybpycsatcvvyozpapreggntbwbbhnijhaobxoykjsvoswwkhaxbohzsm","bvqcfmtc":"svjirbdylp","etunlkkq":"exudkjkgfxiehjjaiipvynzoky","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jzzbjmaggeumnzbvwjezixzfnnrzmmabtgekrfwpyfqu","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nysedyuumdyumzbrpelzumtty"} -{"__name__":"aevkflfhhjdjwqjagmnzeuonbjvhrhyorvykawwvs","blppopdupk":"aydhwiyyitrxnzwnxqkbjlpgnxaagszbjqbpsaimwagmzavglaoryjcnnorhtrjuwbwuetsszddnnigzviyreazthmrgikgdwpdslhwmgaiitm","bvqcfmtc":"qylan","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rrdrfhsfkkarieuxkzdpcashhrykwudqliksxfsrxfh","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tgoeengyehpfadccsqipneixjdnjvzkosrhnjlkmthiiobsvxsurbsgbvmrhjmfmvimemcerumnlsggbsyqohugkxkuaggmxnlindosaxohvpen","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mbbsmdayhuwojymrygsszzzhijzludrtpdiuxvachxfa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"weggrmpyw"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"wyqtmidfxrvekeieqahmvzuqguthfztzqylpunfajyfuzrystpvowopbqwhfbhewljbqzmxidjkjlffimomxachdxqjlfyvpxuumdzw","bvqcfmtc":"svjirbdylp","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bjedsykvynjyqtphxkejdkbwkoqvickciqqavaoiac","svjirbdylp":"kl","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"idoisiugnddktpazerfs"} -{"__name__":"ecrwildniizrdhanvauvdtxjtjpnwohvpjikhtfstbhmri","blppopdupk":"wuhadudjinwshpmxdeypygcsonvjaejtztzqtmzlfqvzzlnskfekpwntobpyrzlbjgzhbynswquazlkfhmxfdtgjhcfiyzkvoxwhlwiwsoj","bvqcfmtc":"nrmpn","etunlkkq":"gpqeapvrg","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cfczlzbaebsgjcimwakyjcxtkrsrebyjtojzfirjzm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"tswkhvvaynowixdcjsowumlnvjdacqfgbhnqnewyggcgyliqjudgfcdmmhtrennqqlhcdhetnoaoeiigaxeeqrwsbfnvtklkckbzqrnnegxck","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"apnjwxwjiulpxqjpbhmceyrbmnxawovekyncrhfjoz","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"vbehg"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"hmmkrtgbcpltlgmdxtuisjyvcnwihzqiabznvxapzqqqnxmaqeuiogvwknniwrcafsvfzqlnvyklttvtkijmhgjoqfjummfkpwxybnurcetpk","bvqcfmtc":"opbbklsdpshuw","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jhulhtkqwrhksgezkssyuvthhzxiqtplrpoetspgni","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"djzimle","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kyvroizskpsuhpmpsdxrwhajayenuznelnszkiqtvapk","vgcdywyzlg":"ucafvj","vkzdkpyn":"azrt","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"euqcpveakilewqdsqkoqycgaprixhkgfzdsoorucdphakhddvabahbmffvcyiwchqljgzsoiocbsoeozihgzqkjhhldgweoyhrtvnqmnrtuvbbi","bvqcfmtc":"qylan","etunlkkq":"mjehfhmos","ieh":"oszfbebrapdupqjvmhzkydgkxuf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"latmqjekpngumbqssjoisjozkknsycbnwbzkyndogdm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"tqfbdbfupiouvsllwwlx","zxknjgnlwexn":"wgplxclsuaajif"} -{"__name__":"kexukvoqtorqvhhrztknngraapoqxmqxqhrz","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu"} -{"__name__":"fowgkviqkidbzhfwhbnaxwrzkl","cerhqc":"aka","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eguculxswkxhubvuagsepzteabpkhgazslmgcddpuyeg","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"podpwowkdwndsnfpjnvfhcgrdruzmpebbzqmusmzjtbnakpgvjrzhjidhtumxzkdscohhebwzzeprwsqcdxvxjdsyideoqrlnydgcasflvb","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srxlchhvymosxwxrhqwbjnjoyfklwkrynxvfkooxtm","svjirbdylp":"no","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"zslpfrlyrnjklwiq"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"zqiqrpmrjyfbrbcpojhgfojwtpkksgvolwoddlphrvskuigtdsdmzxbhyjcxsnnbrmiktyckvsuwacopampciigaytdxohscbbqoakrxsk","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"artjkfjwbnzzcceldvegky","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"effdxjecmjwlwywayerjlkbuuzqivrpucvqgqkwoqvnfgxvccl","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"oiwwpnxbzvnglxqfmmgydouluripxyalq","blppopdupk":"gbbucrjhadqsjrwzcqovmrouchcgpyzjbtriukojvztxukpqlctfdjbghojwvjmhnjnlxgdjfsrclpkxuvjfopbcmbdnpsrevnvefcu","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rqizsbxutmhuayoybsruvskclixoaoyfjznnupqxwd","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"njxugstzcglxwexppqfurzsxezpqvxjjded","blppopdupk":"wgbwtxixxueygmunhwpoalwnlvneuyzeqxspjvzsvzdwctahelhwiiwvdhqncnkyihafoarhajvsluopjuljzmcmdlzeckfencdqmzmnsqt","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"xtzrulkedqlbttvqnvovvmn","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mqchvdzczixfoubrmglldypbxgkdmfsxcrwsbxwfwx","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed"} -{"__name__":"wkmbdsxjrbrrzxopjichgeh","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"gjikwaimdeovryvewhbobwuwwhmcrplklfwhkgfngg","vgcdywyzlg":"sqswy","xtbla":"mznnnpqbwkjjh"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"hoddrreaftwnprgtmddzcorrgvdatlkxnufilnwyiyfjbfzsxaafhhagojrhrieihjmauzbpvovcetsfjpfjmckqvgwysmedohxmwgootxpffhzjaryebp","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"wtmwqrcxzpuennzuaoyhoojmgcwapslvhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wohdtucuairpihfexllzhqhdownsyarqjdsdokywjg","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"epbrznbxdqacgklhtqsvbiorpgms","zxknjgnlwexn":"iwmqpaks"} -{"__name__":"cyhhgixjunzlluhwzmosokoipjxzpotrmkoyhcdqrhu","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"osfqevculnkzt","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"szcnzjxbxrmcgftilrxypdtkkzlrnabjlrymccawpnjvmdduakfepzvehukovgjungztupwupqpakingiqcgczcuavreqcogtnmmlafxf","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wbinplafradmgnxzlyubsvpiwyjqkthwvzcljdlmexkp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"tadqngnyggxkigefkblkphimesckaplmfgpubtdkbmfadeviamberylyxkegyizogyammsitqdxkkynnytqlxbgqwijneouodlyuijovf","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ksayckgdgvymyiimqbcvmqgrrooocgjooixjrubgkgow","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"gxetyrlyoylyoamidhunehvtl","cerhqc":"skxd","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lwpnsyywibugogzuoaoumjgrlxllqcsilhropsmkmxpdd","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"sygcousalwfpxxdldukcpkpfkzktcatpxyrgfisrlbcxorsoxpmsohbicpdgwgyloqaixwlplljmgmfibmdtltonflmedairorcvexgvsnsvi","bvqcfmtc":"svjirbdylp","etunlkkq":"dfvojzpvrnjbjec","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"downynriyupfqrjydmveclnubvkhwxoylxgeytinai","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"esruf"} -{"__name__":"mlqowkawlorwwufhfdscbyormlhyzycgspkzbaoo","blppopdupk":"uggsphkhjhsxlxdamvhkcyuafsjgtqmamejpgravimobbkzeidnitibygojusfvusbfxojzhlpifqvjmikcikkbuhywubqzxuubaybw","bvqcfmtc":"qylan","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vwzrdzfeoctazpgyvoswalqcmcjwjrxneuhgyyzjoc","syweycqmwiuhe":"thxibxy","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"pkqemdtxwlarritbodwocgyznlddjyhugwgozfrudubqredvycoowridzeabyvrymfhrocjeynzjdpjjjvyvucqzanbetctsoevfyydbq","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qohabmknlihfexrwynygvlfyqjcmhdqdfnzezpufghut","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"apmomdqliew"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"ltayconfsmobkofcrdpflnpogzjwlgquwjhoaztycoifpvlklavnhqaruiqnmhecjzszenoaoqybtikfhzphukjycckyhrkikufbvjyss","bvqcfmtc":"cfdmrn","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"fzoxptgzmuqcmajnzjbuwchfybflalaozkgecwzxkqci","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"piilqpemlrqyplsmrzmdzczryyfbfabrgcgmpynsaieonzhfhzytdbpuqxpufhiyisuuiqgsmwhhfagmqfyxopinffgmmjobkbajkihhhzzoeoxszbfuebddez","bvqcfmtc":"qylan","etunlkkq":"cfldqcshmnvxm","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"quwixzehhmptxwigtsidcarmwqlhusxhefgnahwkib","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"atqdscqpbejcxklgziwzwsprwmubefyarbgejwscggygkljmiqvnvzqtvkwotchlxquhlkcisfudaxkswqskujildwkyankqskdavpbabzzwisr","bvqcfmtc":"svjirbdylp","etunlkkq":"jlc","ieh":"nrcqguxwfdarfbnnjwrqyavsvr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ygqkihketpcquqzimpxqtuyopcpicabevaklpvcrepaz","svjirbdylp":"kl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"aevwcbsbtuxxzeblwwwdsfo","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"cjtaxzjqtnvulxdvioysgulghuakqjvrnxdjhhrefzor","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"cfdmrn","etunlkkq":"pkytchlsnxiwyfeos","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"pyimpxmpivhlovnuswuq"} -{"__name__":"fogilzww","ieh":"wqimdfgdwssumxztuyqlijuz","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"xjfig","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"krgagfobobmdoaoogmzgohikxipjnkoelsoztkmodu","vgcdywyzlg":"sqswy","wkcw":"plox","xtbla":"mznnnpqbwkjjh"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"qylan","etunlkkq":"lfibfevwidhy","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"lbohedmemrlksdwsmcju"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"uiegvqvwiwkyzzxoliksxveqwtzqppgcuyxzbxlyqcdcgoodfslnnlqlidxnuhrjnmgtxcqgjdsalwpmcxwxdugmidbmhbspdyvqqxlnrmrd","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcubdgekxpstsntvsdjhkuj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"vvviejenuwsniwoahhytelpuygksicvbtxbfvslbvwmn","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"ecvdaqkeaddwuv"} -{"__name__":"milazkrxhvqhiswgwnbonyscpnz","cerhqc":"yrkq","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"kpipaijplbknfkixuylyxlruacjgemhssvdvpshwjzum","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"cxscj"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"mftglnlvcmqyhvlnomslkyjgcafobffpopqypxyyujdhavjlclbfhusikeapnxljkulaqtkvwtzwojtqerzcmlydbebdzzcstdmmuxzxpqswvf","bvqcfmtc":"svjirbdylp","etunlkkq":"itpufkalp","ieh":"cmbrczxhcskinprnhr","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mcyrbmwddvlhimopwgrjxjzzqdrsnetgxuporgiuzj","svjirbdylp":"dx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"nxaysyssrjfdelm"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"kqszuqdppfqrpihhgfuxhkilghxmcmanunaotobzyjlupmsnepxqbzegctqdkesgotbkilncbmvroimtpijbmwfivvsvasqxgdujrdstrtujti","bvqcfmtc":"tclcwonu","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"iotvcofdyhjuvomghhvupomrfilnytqaarvadkqheyn","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"lvkagheyyzuwndvldk"} -{"__name__":"bufbmahynrasdnhwnhhzapwosyetpsctpxrsphzemonxhwonid","blppopdupk":"kzfwgistzkbpgyihorpdlarcsftgzzgplhsdvysathzfvddhkkrproqcvkeawectiyrshcuuxkvaoqtgadxycbuohoraaoqimdmritpiboyeu","bvqcfmtc":"qrf","etunlkkq":"jlc","hfpsjlooofuxiipzf":"olqxwmmdxggjnsbdkmroc","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qbevpcdhvmsoezwdoyaffohittgqulinxexlxmectt","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"wzxycnoxrqnirdbxcaenykutzwuhqeiqvyqzuzwboyy","blppopdupk":"vwvvfrvktzlrxhqxqmznttjwuifyazzbhijzsagcttfheiotoetythabsliynvkjyybjmlhduhbwhswmklllmiorthbmeiaxnghmkktxlmbgqpc","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rwsevzfbgbtrlikapwmiwxqcnrwtjbamcvurbhqdpd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"kinagkcjqqizqbdxlkkqrudftjmuoauvzuvpfbcxtmiykoudjfbvkywebfyvykiurnapedvyzscebdcqfqknmqcvknhkdzvuxfbqsci","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dgoiyiaufwttauweffomtndlydgedystwtkrullgks","svjirbdylp":"jnm","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"backcyon"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"qzcjqumzeugwdqrbstuavhbijpabosxbxsnvwgodlpnckzaavlwvkzsxpzykvkqfshnxgloqrfrfxqarnqizmsjmxmkmdqxluawaaexzhyt","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yicmtbgarlmgscsezmzsohuteryykipcaytwdyqnpa","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv","zxknjgnlwexn":"lmcov"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"negpsfuwdogeizvahbopzjaobavckkpxpmnwdefclvnuhhaikkifnkyfpkvfopmnaaqmfppwafaxzzeclovsofyagrkfuianjkohnytfnpiwtnb","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"bvrrjjnnauahajdgcgmqor","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wpfdxwvyuuibvrbgxymjtsdchrkoigqdkduxipgpubtf","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"xwbytqmwjdgvefu"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"icvankurvaszmwchexxqgywbuuxgnwvlxykykkivycpbiwmezejnhrgbnvlwbpeauabvkyuohbqkuwyykvxxlswcgvfdzbzrqhggsdxp","bvqcfmtc":"itpphvauiaewop","etunlkkq":"pruhto","ieh":"vhxhqqwrtajxtwpnxzf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lppewtawxzkhcrwjhrkgoxpkafrgipzlyshubxq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"cmorfmbbbhfsb","zxknjgnlwexn":"kwxxmqziqoatny"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"nvsdjztygupxbbbcmjgubjhhhzlmbyfgotxknhbbkcznekeqaidlotkdxlathsvjkubbxvkkrczpdnjvkzaklkriwxtudapvtffuiojyubpbfszvrgmsujdisa","bvqcfmtc":"svjirbdylp","etunlkkq":"hgihbthuhv","ieh":"ybsroftygidibteuhfrzlsxdtmtxxfjkavlhec","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szanfjcgpfrkandvdhxlwprhbmnxaqfghtdpvgzdia","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"rccsnofpbjwteidxvi"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"yiiudfbjiwlhudqbttvccanthrqsntvjmmapttxexartfpbnlhokmkkfnkayvqoqpdyvynnigrsnmpqvjhicvzpxhjuxibzslvypntrjbcrzx","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ihiaxqtcgkjvvjlezhfsxmdornxmocpgpfkihliuut","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"vckwl"} -{"__name__":"wqoxlahdqyxtznatxwmcqtzcjgahs","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"qdcrwfotdlw","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"shkguvlzdkrhtzomlafmeoadhgfmiidltxhozkqjhpeabznhcykpycpejihpvbdymrljmawlbefvcbkcsxrmxxjljrgwzbcyaybhqjjubkhojnw","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"lgdwzihhznuovilmgyoahrdgsay","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zmljosmtsntbwmilxssbkvklyfexwkajzgnmctxxhe","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"svwhiygzdhbiabujtqlfp","zxknjgnlwexn":"pfknaaznxrnpknbtzd"} -{"__name__":"dlcstjacecmbwauytffhooozlnmzqufz","blppopdupk":"tdnzldtxlvwwdrpehtvplzlrtqgtkpdbhbdujrlivlklatszphnpfzycgacglnkldlpvjcovmvqznnchamcsekfiqiimgyvybwjwjbliflvhza","bvqcfmtc":"qylan","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qxcbkmqoqlcorqzkpajdhibflbmcictmpmnzjjatctk","syweycqmwiuhe":"eqod","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vkdmadcimijakoicxsxacmokwdqlcocdycdwszuwjpzjexvqbzsqtrjjkewrygzwemqgjiizxvncnelpirjxlbgoppjjewfdgyhxacxto","bvqcfmtc":"tclcwonu","etunlkkq":"pkytchlsnxiwyfeos","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wtgntgavimjugctttfiubjerlwewiapmsedawhcukrgp","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"rhbqbfhpsddkdvbnkgsbiiqqswpacyvyeibfcwvojdrlcxfwpepjuntmvegatkwlxlmjvqqkrmvlquneaboboimzlaapqlvzagvsburkxxltgq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"xeknvmsrxavchnrcjsbkluqfhqjevbdxy","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pkjoucbyhjufqgsxnfjgxotuyeckiaczheljndmtjol","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"ocmzjjlwfhbrswwzqhmautazdpdapdputhxbompkta","blppopdupk":"pggkrdxpzahpzaaqibknbsevtfvajiboxuqrrelwbwrnedmqgbpjsjqhmugfkuzqsywhksxqcarhlxxnedmfxjjdknexukxszscbbfxbcdj","ieh":"qltslonccmknoijdjbwmpcw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwksqxq":"kkyslvcmemuml","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"zrqzyrqugqopzlpiv"} -{"__name__":"bgofhihuohngcxekxyuxsdilxphjlfb","blppopdupk":"xtgjxhfvjgggiaigmmqjpivlxgxvtnwsnhtifzitalblngfyxdayypbsuupbytmgaamzxqrhehygeszcpnlhzxzrzcfcahdkrlswdat","bvqcfmtc":"cfdmrn","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"wlpnqumguwbsmwepaybmuprvshodgorkutfzbwbclu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"batqmiohsypcowvlhedwwokrjmvshrozrmpz","blppopdupk":"oxxxfpczsmptjuxdjyyramndlrgpdgrqqfluiptposddzrkuthfaxpfxbrmltkjxdbigwtmirgdofikkqogphebjvwjbovqwdroxmhr","bvqcfmtc":"opbbklsdpshuw","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"dowcbikytqvoroehgfminoydrirbwtygczmxuzjzez","syweycqmwiuhe":"isumfciqgr","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"twqkgxttalgryiflclzzdtrhylajdrndxhfafkfyrjtzyrlvjglrnprsxvzufgdsghqqvxmclshvwvtxufczufgxwhcbhgrqsintwlh","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pkytchlsnxiwyfeos","ieh":"pkyumvwqgbcuaqwunls","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"hpuaywgqagiaoaqjhicvfgwzzbdpagyonmwmtvfpwi","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"fpltzsarciypgpaf"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mbipfzwlbtirqwpgfdwbvbqldgjdtesechwtqztgqrkbmkgumbeilsfgjtqskhoyibemnizksejttcgdgmkoiqmblqnwzzalefqnbdioufyrw","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"vpvcwvwkwafzefqbriepjrpco","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"pwhtrhmhtcbzsxuukryqlvhqzvkqpgmdwuauibmqsd","svjirbdylp":"er","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"urqdgi"} -{"__name__":"tfgysewckwqnaszzjnavlvmkxpzmvfwratuyxbvsacf","blppopdupk":"zqomyqknatauwuoicqnvvpmymttzisgnrwjzlcdkgszlnowutkrfuvvwpvcnjofrcgokoemvjeicupcqnpvlznsnlapjjtvghibbnriyihlgm","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tvhxvplhdjoihmupbpqvauiwjmynsvvpgjdtclzfxj","svjirbdylp":"dx","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"backcyon"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"bxdyoomlbwafopmmbjmnbjbummxfhumltbricyioszzwmdlvuqccnecqpunfpqtnovfqwwtfphdqmdhtagwfxdqyrbebthvogkepiypblgenb","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"inuzzyemkughwdjaajztu","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"zghgtxamfnqcczrohpazreamzdopczbdmgquayknsl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"mhpfacqlkhwwyoenuszqfbrhrijlhchwyycrpdsjarxpituiauxtxdkdkjrymznhgfhymytdipqacuhjdavvarycfqzbflaknhsmazourpywbs","bvqcfmtc":"svjirbdylp","etunlkkq":"kgqtbgnjggtgfyrlifcqlc","ieh":"njuutzrlymsbamlaqoatcktdyc","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"jmfrxbtfuynplndotwvpptzlisxrlrpfulhklobaqsi","svjirbdylp":"er","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gvqflddkokpisczlzje","zxknjgnlwexn":"urqdgi"} -{"__name__":"yqwwmxlkcryadtfiertyie","cerhqc":"tcn","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"opwffabjjepcrbgdkmqhbfhadezteqfcciaklqfsodjmq","vgcdywyzlg":"ucafvj","xtbla":"mznnnpqbwkjjh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"kktetdkvacpidvkhsztuuazqzacpncocimrwdjffyserulzqbbwcupfodxspnwezlqzlxhnzozgkhzluztzrcwfqyyaxadaawpvmpemosopkcltq","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"vcqqtsoabkqyjcqycdf","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"mxmbimfwslszgcggwlmnjzivmefflioloyjnmfvfburn","svjirbdylp":"dx","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"poznuklcnbzo","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"dxnezkvqthdikbuusfatrmcoishcdqkxilhsamvaqdwieppehlklonnwodrackungnoayvxalwuqquggpzzwuoshhrsoofthafuzskunq","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"yoyvwegcfxayhbbruxjbbybuoyvquastnuwmiswdkaqu","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"scproyekcwodqdvufpfolxs"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"smwewigzedvfeyvvm","etunlkkq":"pruhto","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"uiiddvkvwtpaabturjvep"} -{"__name__":"hzksfmitlhbyurmskrucjpjoy","cerhqc":"bof","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"lbyxftiqfjtxmaydcugnnfzttapknguhlzfheowqej","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"wrcodaoxdblnwbidkdabhkhobmmqjzttrkkhrlzp","blppopdupk":"wjogfbnigjgcjinaxmxtiehbldsoknkorzsewfkxyjicmiguqwgmjqbstjrqownwsuejvgtdqpcdbylohvrjriiwzhvhcnlhpvazzabcfxxdg","bvqcfmtc":"ancb","etunlkkq":"pruhto","ieh":"uxqopiwnoqkpofnbovepdtld","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"szgmouqembjrxrdfaqdhtxyagkyufapukjwithfbzvkc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"qpqvgktcouzshjwed","zxknjgnlwexn":"cxscj"} -{"__name__":"dzrrdklxlovmaxqvcbgghb","cerhqc":"suva","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ughsdjdfvaxmevklzzwqfsvhjpnzczrcgutcuplvbs","vgcdywyzlg":"hkzfg","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"ndcteyasokxrmgopkcxaguzyjfuqdaqzlprtlpicmlighlhpsrnvmkszjihmicigzmolibvcveqivetkbqcxbgzxzkjpielxbxovrhuzazpxu","bvqcfmtc":"svjirbdylp","etunlkkq":"pbcmxakfhqjyhuyib","ieh":"jxzossaahnvbwqziayaak","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"bwiusgnqnyywzimxxynkmzdyqayrcikkyjoonynupj","svjirbdylp":"jnm","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"ottizczjtemxext","zxknjgnlwexn":"pwodioxirnnumvic"} -{"__name__":"dbvbjejecijxvcaivafmmfkgswvvybqkjfczmbj","blppopdupk":"swmgkvkklhhwvywtrdlnmhbsyvyiifyyudafbmnpewjgydrlpsxmpzocpvltedgvzouhlbkfkousykdrwkgcymimvobpuuehsmkkaeq","bvqcfmtc":"svjirbdylp","etunlkkq":"jysiixtcaznxdozkbdqqyfyknccuk","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"xljvkyizosyijofpbzflwtzdxhedqdotuhgojjlhcl","svjirbdylp":"ce","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"dtex","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ueecdnmfofmnhngdodkigjxdfrbbkyrdxisrbgqbcc","vgcdywyzlg":"hkzfg","wkcw":"uhc","xtbla":"mznnnpqbwkjjh"} -{"__name__":"tbbsijleplijfpcesshevxjhxzcgcypwyo","blppopdupk":"vsaxfeabgunykioztlsloelttoijisuuezdufokhokejapvztqeioofcnbgahofughmukbdfkuyvvbucewljzkyetyotazhvavruatvczemd","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"pruhto","ieh":"bqtsxbxjezpcfczptxdncknyzulfplku","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"tsprxdyjbgdwnsclbclylxuhiszlkbgpezbnknkmx","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"viljjpdisdmychdciattjgryfsxgkinrxuwzkplzqvzydyod","blppopdupk":"tyjbliybhadifylqikwibcnzznxgcfhrirdcnqgkdskyfzxzgblymmesqcszynklfbigsiroybqsbfrtqcnbcaixhaawsolwfefrllfluqjv","bvqcfmtc":"qrf","etunlkkq":"acpqihqmpfxdcl","ieh":"pqigheypwkpzxjzttxbmgksijryzjyts","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"qyqwpdkkqyshvthbkdmnnsxyjudhmtrfrtsvdgseu","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wndpjmhtrkjslcsztruammlpcl","zxknjgnlwexn":"wxhmibtuqgyhl"} -{"__name__":"zzlqunurqsnprexlidrmgppwemgbhzyigbfgqiyedzsueibqu","blppopdupk":"acgsufthbryfjxkihgdrxbiktmejoxsxswnsdvkejhqfvnmjbkuipqtjetsspzyirvmzdotbhtphtkdwwzpzdlxkvhvotybebqlyvpxwnezxaubmpdfc","bvqcfmtc":"svjirbdylp","etunlkkq":"rlnwiaxoifcxrkstsjxwvhknrgknpgs","ieh":"gvoavzvnovflnijnqplzrdjwgjh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"injuyhacuwvikcpincfkzlxwdqqddtosskodkoptdjea","svjirbdylp":"no","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"wmiablebuqllcwvfbatn","zxknjgnlwexn":"odcntpodtlzbcocgguw"} -{"__name__":"hdkbjqnvylqqmqvywdxfjxqrutryjcrftdgsrkiqwuehg","blppopdupk":"vcugzvdvuxkrctsqpyonpgxbjffgkuhttrproeiphoekhsecjoqoxqcyaihbifgttzujkfjxswaukewhrjburgtnhloutxlovajvznbwyufgc","bvqcfmtc":"tclcwonu","etunlkkq":"pruhto","ieh":"ogblavlzxptdeburcnrllxj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"thipmogfhnsvxlnskaoyhxdchawwlshuwepewpiwaa","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"gyzxeiohxdtxqusu","zxknjgnlwexn":"lmcov"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"dbuarjfrygjxtkulljedblluakilvsaeglprthvorhliuuvmzyyoslfetpcdhjrgxyapdeuvdvwykbuxvxtruqhqpueiliutyetlcgnqqqax","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"qvtfykwuxdwdveabncverms","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ozabvbmaxjuqlwgjajplxiiabzstwbtxqnortukevhhl","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"plbryogxdqrgcwuu","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"rozvibfwyitlylzkduhqbblpw","blppopdupk":"ellqnuzyxrsaxysngwlbrmfqytgeegvtujihuhjhrizhmvdvlzbyishuivhoerdfnjnjsnsauikjqemzkybjrtbcwshfepavoigqphuzervkyaebinyrxemzqyagvxkbickrzxquhdovzuhucm","ekcpsjdhklxdqtbxq":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","evp":"lassm","ieh":"yyxcowohlhcilxitjldkxnjujbirqqwlmnxs","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","pblh":"gvlnowujiu","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ktghjnsuwliovzkbknfssfwryzhstvdjjtcoiblbztt","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"qdztpyee","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"bozscrshwydrzozlmnpbykymlyzxet"} -{"__name__":"vlewwfmfhbtalcswmrplrunettkgqrtlvweqsrgfpmvdjfq","blppopdupk":"yberyvvgwfblcfdxkikfsrucddnzpuacdvnwujgglsaibqowehvtamasibiobaflrvryfvqfzbbyvwimrsbyyfdmzrtdztskbbtnidzgllafs","bvqcfmtc":"qrf","etunlkkq":"pruhto","ieh":"lzagbbntprhbpabkofojrpuvh","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"btxfbqqrmllktvsnkbalrepsqwjivattchkdhidjoq","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mnjbteqhtkxeovesczl","zxknjgnlwexn":"nmmgnflleryfgukk"} -{"__name__":"fogilzww","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"fdabx","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nsvbhxzfjdsrijzkiuraeaebxynvkcsvoypukawzqgk","vgcdywyzlg":"hkzfg","wkcw":"mdyep","xtbla":"mznnnpqbwkjjh"} -{"__name__":"kwonypjxdkxsvqcxpeoltcsxayimvobpbgg","blppopdupk":"vmykaumfqehnfkknysmeanpuoaghnylciuiyiurbpzqqhhnemfpahedagwaprgnhtnrwwjxrtbydzmqnjaajdauqastjkgkmxtixwywemjqcbdtnkihyivkbco","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"eqmaukufjgkegskvbyudftlqjozdronudmjtnnnrpl","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"yqnvekocmmz"} -{"__name__":"yqvhaplpttdzwixprxkqjjrwvrhhycktdioyz","cesoiv":"wdudnav","ieh":"cytnotbgeokqdynyggvgtjwa","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","lswvulrzy":"szt","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"srvvffpaooivoewpagwepdpqlczbvmmthxfrrcuyxn","vgcdywyzlg":"hkzfg","vkzdkpyn":"vaz","xtbla":"mznnnpqbwkjjh"} -{"__name__":"fogilzww","ieh":"qhxqrvivccjvudnzejycfakme","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","nra":"bultm","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"igdaccycoxfvkziqglfbxqdigbpyyyidwdckqqszkfre","vgcdywyzlg":"ucafvj","wkcw":"hkqplyn","xtbla":"mznnnpqbwkjjh"} -{"__name__":"eaakfgmdyddervalmqeowtwhfrlvgaekoyz","blppopdupk":"mmizedvmjrdomuoliobstbfoczoezckrzgyphrqqncylkzoacabczcoloognweeathqgfbowouscbbvljkybpmpqxmletxlbjjelkgdftezogdkyrduxibpnnx","bvqcfmtc":"svjirbdylp","etunlkkq":"pruhto","ieh":"ozynvgwgkvfmyrsqodwtdjjgnqmnytgtjfktqv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"nnnkbkmrtqjuqhoqnrvqhnvhoqvnoonojrvysaujni","svjirbdylp":"kl","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"hwogvnlmjvtdsfvqsqeftcjxwzxpumpy","zxknjgnlwexn":"gnwybbkwxyevdaxd"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"ikxaktmkbdgtwmpkhsmhxdjlrdnvinhbcwkkugsilzygirhvlwgllvwsjbabjjqzvvrmnmoblisjifjwuiajoecsuwfwlcoructwbshbz","bvqcfmtc":"svjirbdylp","etunlkkq":"cfldqcshmnvxm","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rpzbucgdsvfwqzqdiwytjnwnrmnlmpmmwfysyujeoccr","svjirbdylp":"jnm","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"vxezaawdsdwcvvuvryyabvkvbgdqlcqstgddkefmpdrjp","blppopdupk":"yckafktdzqlkdpaezafmmfgwbrtvhjxbwamkuugpyrkfqdkmhfitnjtdnetqceftwfkhduhpbrtdyzwlbytwwoqfrrhogvyvqvnaxdedf","bvqcfmtc":"qrf","etunlkkq":"gpqeapvrg","ieh":"ayfetlgjjfvzuykfsnfw","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"exjbfkverauirjuytzvnunpkiywzpteqhkzxfsqyuywc","vgcdywyzlg":"ucafvj","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"urqdgi"} -{"__name__":"eqqwzevlqyenluzxizjoaxfiovjkkmvcpwqlxtsnyqcqamrkcptyxwllupu","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"nrmpn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"dyombkwecdh"} -{"__name__":"kfjtmlgekzzpzgqznmbnvkbnnbzblytlsnyrtkt","blppopdupk":"jeecmwpfrqqxwesnpwftzlcedldponvejrnucyanguzplvgpsmgnpxwntiubvquzyflhuokcwifxfxjmphiunpulzbvvbgbjgwpbwok","bvqcfmtc":"opbbklsdpshuw","etunlkkq":"gpqeapvrg","ieh":"rxjkcrpnegtxagfpsfv","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"rejwlfptrumgthdrutookpiozwoheoejoinpwbotom","vgcdywyzlg":"sqswy","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"klzmccomzliym","zxknjgnlwexn":"xezoyaxkh"} -{"__name__":"dovwxyqzrjoxvbaxjicbtzbfbrqipoanhochzsdd","blppopdupk":"bbwlyeojmhiyjvoldtfojpiavyuwzausletejejnezfwsgurdhuelcnqoqkrelahjkkukqfduazlkfozkzwavqusjsmelgbbjiqxlhzqos","bvqcfmtc":"cfdmrn","etunlkkq":"pruhto","ieh":"jmhpciwibmsqfmsatcretj","igaxksxlcgqesc":"ymmoqcbydfyiiqjarxdplpejidikup","peyxeulfptstx":"mznnnpqbwkjjh","pwtdcjrs":"ebblnsjavlhzuxomkvwzxeeddjobykxqivdlfnbvxe","vgcdywyzlg":"hkzfg","xlqhwhxrcya":"ztnhtzzrz","xtbla":"mznnnpqbwkjjh","zigoeqifdui":"mmqnoyfpojjgmxmq","zxknjgnlwexn":"nmmgnflleryfgukk"} diff --git a/vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/index b/vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/index deleted file mode 100644 index 62f557689bd5d4e25b807c830ef650e45408eefe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmdnB>N*1>0|NsO5VJ5EG8!=^GA3;TxRnU^*@PXMx6fSAD}-TOF@;sRnuCdMR2LmP!vPfvklfPfW3F-Ssb7!?3zSVQR; I8#^sl07w=SE&u=k diff --git a/vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/meta.json b/vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/meta.json deleted file mode 100644 index 4c477916..00000000 --- a/vendor/github.com/prometheus/tsdb/testdata/repair_index_version/01BZJ9WJQPWHGNC2W4J9TA62KC/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 2, - "ulid": "01BZJ9WJR6Z192734YNMD62F6M", - "minTime": 1511366400000, - "maxTime": 1511368200000, - "stats": { - "numSamples": 31897565, - "numSeries": 88910, - "numChunks": 266093 - }, - "compaction": { - "level": 1, - "sources": [ - "01BZJ9WJR6Z192734YNMD62F6M" - ] - } -} diff --git a/vendor/github.com/prometheus/tsdb/testutil/directory.go b/vendor/github.com/prometheus/tsdb/testutil/directory.go deleted file mode 100644 index d3c9c926..00000000 --- a/vendor/github.com/prometheus/tsdb/testutil/directory.go +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright 2013 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package testutil - -import ( - "io/ioutil" - "os" -) - -const ( - // The base directory used for test emissions, which instructs the operating - // system to use the default temporary directory as the base or TMPDIR - // environment variable. - defaultDirectory = "" - - // NilCloser is a no-op Closer. - NilCloser = nilCloser(true) - - // The number of times that a TemporaryDirectory will retry its removal - temporaryDirectoryRemoveRetries = 2 -) - -type ( - // Closer is the interface that wraps the Close method. - Closer interface { - // Close reaps the underlying directory and its children. The directory - // could be deleted by its users already. - Close() - } - - nilCloser bool - - // TemporaryDirectory models a closeable path for transient POSIX disk - // activities. - TemporaryDirectory interface { - Closer - - // Path returns the underlying path for access. - Path() string - } - - // temporaryDirectory is kept as a private type due to private fields and - // their interactions. - temporaryDirectory struct { - path string - tester T - } - - callbackCloser struct { - fn func() - } - - // T implements the needed methods of testing.TB so that we do not need - // to actually import testing (which has the side effect of adding all - // the test flags, which we do not want in non-test binaries even if - // they make use of these utilities for some reason). - T interface { - Fatal(args ...interface{}) - Fatalf(format string, args ...interface{}) - } -) - -func (c nilCloser) Close() { -} - -func (c callbackCloser) Close() { - c.fn() -} - -// NewCallbackCloser returns a Closer that calls the provided function upon -// closing. -func NewCallbackCloser(fn func()) Closer { - return &callbackCloser{ - fn: fn, - } -} - -func (t temporaryDirectory) Close() { - retries := temporaryDirectoryRemoveRetries - err := os.RemoveAll(t.path) - for err != nil && retries > 0 { - switch { - case os.IsNotExist(err): - err = nil - default: - retries-- - err = os.RemoveAll(t.path) - } - } - if err != nil { - t.tester.Fatal(err) - } -} - -func (t temporaryDirectory) Path() string { - return t.path -} - -// NewTemporaryDirectory creates a new temporary directory for transient POSIX -// activities. -func NewTemporaryDirectory(name string, t T) (handler TemporaryDirectory) { - var ( - directory string - err error - ) - - directory, err = ioutil.TempDir(defaultDirectory, name) - if err != nil { - t.Fatal(err) - } - - handler = temporaryDirectory{ - path: directory, - tester: t, - } - - return -} diff --git a/vendor/github.com/prometheus/tsdb/testutil/logging.go b/vendor/github.com/prometheus/tsdb/testutil/logging.go deleted file mode 100644 index 839b8669..00000000 --- a/vendor/github.com/prometheus/tsdb/testutil/logging.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package testutil - -import ( - "testing" - - "github.com/go-kit/kit/log" -) - -type logger struct { - t *testing.T -} - -// NewLogger returns a gokit compatible Logger which calls t.Log. -func NewLogger(t *testing.T) log.Logger { - return logger{t: t} -} - -// Log implements log.Logger. -func (t logger) Log(keyvals ...interface{}) error { - t.t.Log(keyvals...) - return nil -} diff --git a/vendor/github.com/prometheus/tsdb/testutil/testutil.go b/vendor/github.com/prometheus/tsdb/testutil/testutil.go deleted file mode 100644 index 03784e7f..00000000 --- a/vendor/github.com/prometheus/tsdb/testutil/testutil.go +++ /dev/null @@ -1,87 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2014 Ben Johnson - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package testutil - -import ( - "fmt" - "path/filepath" - "reflect" - "runtime" - "testing" -) - -// Assert fails the test if the condition is false. -func Assert(tb testing.TB, condition bool, msg string, v ...interface{}) { - if !condition { - _, file, line, _ := runtime.Caller(1) - fmt.Printf("\033[31m%s:%d: "+msg+"\033[39m\n\n", append([]interface{}{filepath.Base(file), line}, v...)...) - tb.FailNow() - } -} - -// Ok fails the test if an err is not nil. -func Ok(tb testing.TB, err error) { - if err != nil { - _, file, line, _ := runtime.Caller(1) - fmt.Printf("\033[31m%s:%d: unexpected error: %s\033[39m\n\n", filepath.Base(file), line, err.Error()) - tb.FailNow() - } -} - -// NotOk fails the test if an err is nil. -func NotOk(tb testing.TB, err error) { - if err == nil { - _, file, line, _ := runtime.Caller(1) - fmt.Printf("\033[31m%s:%d: expected error, got nothing \033[39m\n\n", filepath.Base(file), line) - tb.FailNow() - } -} - -// Equals fails the test if exp is not equal to act. -func Equals(tb testing.TB, exp, act interface{}, msgAndArgs ...interface{}) { - if !reflect.DeepEqual(exp, act) { - _, file, line, _ := runtime.Caller(1) - fmt.Printf("\033[31m%s:%d:%s\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, formatMessage(msgAndArgs), exp, act) - tb.FailNow() - } -} - -// NotEquals fails the test if exp is equal to act. -func NotEquals(tb testing.TB, exp, act interface{}) { - if reflect.DeepEqual(exp, act) { - _, file, line, _ := runtime.Caller(1) - fmt.Printf("\033[31m%s:%d: Expected different exp and got\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, exp, act) - tb.FailNow() - } -} - -func formatMessage(msgAndArgs []interface{}) string { - if len(msgAndArgs) == 0 { - return "" - } - - if msg, ok := msgAndArgs[0].(string); ok { - return fmt.Sprintf("\n\nmsg: "+msg, msgAndArgs[1:]...) - } - return "" -} diff --git a/vendor/github.com/prometheus/tsdb/tombstones.go b/vendor/github.com/prometheus/tsdb/tombstones.go deleted file mode 100644 index ec025544..00000000 --- a/vendor/github.com/prometheus/tsdb/tombstones.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "encoding/binary" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "sync" - - "github.com/pkg/errors" - "github.com/prometheus/tsdb/encoding" - tsdb_errors "github.com/prometheus/tsdb/errors" -) - -const tombstoneFilename = "tombstones" - -const ( - // MagicTombstone is 4 bytes at the head of a tombstone file. - MagicTombstone = 0x0130BA30 - - tombstoneFormatV1 = 1 -) - -// TombstoneReader gives access to tombstone intervals by series reference. -type TombstoneReader interface { - // Get returns deletion intervals for the series with the given reference. - Get(ref uint64) (Intervals, error) - - // Iter calls the given function for each encountered interval. - Iter(func(uint64, Intervals) error) error - - // Total returns the total count of tombstones. - Total() uint64 - - // Close any underlying resources - Close() error -} - -func writeTombstoneFile(dir string, tr TombstoneReader) error { - path := filepath.Join(dir, tombstoneFilename) - tmp := path + ".tmp" - hash := newCRC32() - - f, err := os.Create(tmp) - if err != nil { - return err - } - defer func() { - if f != nil { - f.Close() - } - }() - - buf := encoding.Encbuf{B: make([]byte, 3*binary.MaxVarintLen64)} - buf.Reset() - // Write the meta. - buf.PutBE32(MagicTombstone) - buf.PutByte(tombstoneFormatV1) - _, err = f.Write(buf.Get()) - if err != nil { - return err - } - - mw := io.MultiWriter(f, hash) - - if err := tr.Iter(func(ref uint64, ivs Intervals) error { - for _, iv := range ivs { - buf.Reset() - - buf.PutUvarint64(ref) - buf.PutVarint64(iv.Mint) - buf.PutVarint64(iv.Maxt) - - _, err = mw.Write(buf.Get()) - if err != nil { - return err - } - } - return nil - }); err != nil { - return fmt.Errorf("error writing tombstones: %v", err) - } - - _, err = f.Write(hash.Sum(nil)) - if err != nil { - return err - } - - var merr tsdb_errors.MultiError - if merr.Add(f.Sync()); merr.Err() != nil { - merr.Add(f.Close()) - return merr.Err() - } - - if err = f.Close(); err != nil { - return err - } - f = nil - return renameFile(tmp, path) -} - -// Stone holds the information on the posting and time-range -// that is deleted. -type Stone struct { - ref uint64 - intervals Intervals -} - -func readTombstones(dir string) (TombstoneReader, SizeReader, error) { - b, err := ioutil.ReadFile(filepath.Join(dir, tombstoneFilename)) - if os.IsNotExist(err) { - return newMemTombstones(), nil, nil - } else if err != nil { - return nil, nil, err - } - - sr := &TombstoneFile{ - size: int64(len(b)), - } - - if len(b) < 5 { - return nil, sr, errors.Wrap(encoding.ErrInvalidSize, "tombstones header") - } - - d := &encoding.Decbuf{B: b[:len(b)-4]} // 4 for the checksum. - if mg := d.Be32(); mg != MagicTombstone { - return nil, sr, fmt.Errorf("invalid magic number %x", mg) - } - if flag := d.Byte(); flag != tombstoneFormatV1 { - return nil, sr, fmt.Errorf("invalid tombstone format %x", flag) - } - - if d.Err() != nil { - return nil, sr, d.Err() - } - - // Verify checksum. - hash := newCRC32() - if _, err := hash.Write(d.Get()); err != nil { - return nil, sr, errors.Wrap(err, "write to hash") - } - if binary.BigEndian.Uint32(b[len(b)-4:]) != hash.Sum32() { - return nil, sr, errors.New("checksum did not match") - } - - stonesMap := newMemTombstones() - - for d.Len() > 0 { - k := d.Uvarint64() - mint := d.Varint64() - maxt := d.Varint64() - if d.Err() != nil { - return nil, sr, d.Err() - } - - stonesMap.addInterval(k, Interval{mint, maxt}) - } - - return stonesMap, sr, nil -} - -type memTombstones struct { - intvlGroups map[uint64]Intervals - mtx sync.RWMutex -} - -// newMemTombstones creates new in memory TombstoneReader -// that allows adding new intervals. -func newMemTombstones() *memTombstones { - return &memTombstones{intvlGroups: make(map[uint64]Intervals)} -} - -func (t *memTombstones) Get(ref uint64) (Intervals, error) { - t.mtx.RLock() - defer t.mtx.RUnlock() - return t.intvlGroups[ref], nil -} - -func (t *memTombstones) Iter(f func(uint64, Intervals) error) error { - t.mtx.RLock() - defer t.mtx.RUnlock() - for ref, ivs := range t.intvlGroups { - if err := f(ref, ivs); err != nil { - return err - } - } - return nil -} - -func (t *memTombstones) Total() uint64 { - t.mtx.RLock() - defer t.mtx.RUnlock() - - total := uint64(0) - for _, ivs := range t.intvlGroups { - total += uint64(len(ivs)) - } - return total -} - -// addInterval to an existing memTombstones -func (t *memTombstones) addInterval(ref uint64, itvs ...Interval) { - t.mtx.Lock() - defer t.mtx.Unlock() - for _, itv := range itvs { - t.intvlGroups[ref] = t.intvlGroups[ref].add(itv) - } -} - -// TombstoneFile holds information about the tombstone file. -type TombstoneFile struct { - size int64 -} - -// Size returns the tombstone file size. -func (t *TombstoneFile) Size() int64 { - return t.size -} - -func (*memTombstones) Close() error { - return nil -} - -// Interval represents a single time-interval. -type Interval struct { - Mint, Maxt int64 -} - -func (tr Interval) inBounds(t int64) bool { - return t >= tr.Mint && t <= tr.Maxt -} - -func (tr Interval) isSubrange(dranges Intervals) bool { - for _, r := range dranges { - if r.inBounds(tr.Mint) && r.inBounds(tr.Maxt) { - return true - } - } - - return false -} - -// Intervals represents a set of increasing and non-overlapping time-intervals. -type Intervals []Interval - -// add the new time-range to the existing ones. -// The existing ones must be sorted. -func (itvs Intervals) add(n Interval) Intervals { - for i, r := range itvs { - // TODO(gouthamve): Make this codepath easier to digest. - if r.inBounds(n.Mint-1) || r.inBounds(n.Mint) { - if n.Maxt > r.Maxt { - itvs[i].Maxt = n.Maxt - } - - j := 0 - for _, r2 := range itvs[i+1:] { - if n.Maxt < r2.Mint { - break - } - j++ - } - if j != 0 { - if itvs[i+j].Maxt > n.Maxt { - itvs[i].Maxt = itvs[i+j].Maxt - } - itvs = append(itvs[:i+1], itvs[i+j+1:]...) - } - return itvs - } - - if r.inBounds(n.Maxt+1) || r.inBounds(n.Maxt) { - if n.Mint < r.Maxt { - itvs[i].Mint = n.Mint - } - return itvs - } - - if n.Mint < r.Mint { - newRange := make(Intervals, i, len(itvs[:i])+1) - copy(newRange, itvs[:i]) - newRange = append(newRange, n) - newRange = append(newRange, itvs[i:]...) - - return newRange - } - } - - itvs = append(itvs, n) - return itvs -} diff --git a/vendor/github.com/prometheus/tsdb/tombstones_test.go b/vendor/github.com/prometheus/tsdb/tombstones_test.go deleted file mode 100644 index 80d5ef20..00000000 --- a/vendor/github.com/prometheus/tsdb/tombstones_test.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "io/ioutil" - "math/rand" - "os" - "sync" - "testing" - "time" - - "github.com/prometheus/tsdb/testutil" -) - -func TestWriteAndReadbackTombStones(t *testing.T) { - tmpdir, _ := ioutil.TempDir("", "test") - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - ref := uint64(0) - - stones := newMemTombstones() - // Generate the tombstones. - for i := 0; i < 100; i++ { - ref += uint64(rand.Int31n(10)) + 1 - numRanges := rand.Intn(5) + 1 - dranges := make(Intervals, 0, numRanges) - mint := rand.Int63n(time.Now().UnixNano()) - for j := 0; j < numRanges; j++ { - dranges = dranges.add(Interval{mint, mint + rand.Int63n(1000)}) - mint += rand.Int63n(1000) + 1 - } - stones.addInterval(ref, dranges...) - } - - testutil.Ok(t, writeTombstoneFile(tmpdir, stones)) - - restr, _, err := readTombstones(tmpdir) - testutil.Ok(t, err) - - // Compare the two readers. - testutil.Equals(t, stones, restr) -} - -func TestAddingNewIntervals(t *testing.T) { - cases := []struct { - exist Intervals - new Interval - - exp Intervals - }{ - { - new: Interval{1, 2}, - exp: Intervals{{1, 2}}, - }, - { - exist: Intervals{{1, 2}}, - new: Interval{1, 2}, - exp: Intervals{{1, 2}}, - }, - { - exist: Intervals{{1, 4}, {6, 6}}, - new: Interval{5, 6}, - exp: Intervals{{1, 6}}, - }, - { - exist: Intervals{{1, 10}, {12, 20}, {25, 30}}, - new: Interval{21, 23}, - exp: Intervals{{1, 10}, {12, 23}, {25, 30}}, - }, - { - exist: Intervals{{1, 2}, {3, 5}, {7, 7}}, - new: Interval{6, 7}, - exp: Intervals{{1, 2}, {3, 7}}, - }, - { - exist: Intervals{{1, 10}, {12, 20}, {25, 30}}, - new: Interval{21, 25}, - exp: Intervals{{1, 10}, {12, 30}}, - }, - { - exist: Intervals{{1, 10}, {12, 20}, {25, 30}}, - new: Interval{18, 23}, - exp: Intervals{{1, 10}, {12, 23}, {25, 30}}, - }, - { - exist: Intervals{{1, 10}, {12, 20}, {25, 30}}, - new: Interval{9, 23}, - exp: Intervals{{1, 23}, {25, 30}}, - }, - { - exist: Intervals{{1, 10}, {12, 20}, {25, 30}}, - new: Interval{9, 230}, - exp: Intervals{{1, 230}}, - }, - { - exist: Intervals{{5, 10}, {12, 20}, {25, 30}}, - new: Interval{1, 4}, - exp: Intervals{{1, 10}, {12, 20}, {25, 30}}, - }, - { - exist: Intervals{{5, 10}, {12, 20}, {25, 30}}, - new: Interval{11, 14}, - exp: Intervals{{5, 20}, {25, 30}}, - }, - } - - for _, c := range cases { - - testutil.Equals(t, c.exp, c.exist.add(c.new)) - } -} - -// TestMemTombstonesConcurrency to make sure they are safe to access from different goroutines. -func TestMemTombstonesConcurrency(t *testing.T) { - tomb := newMemTombstones() - totalRuns := 100 - var wg sync.WaitGroup - wg.Add(2) - - go func() { - for x := 0; x < totalRuns; x++ { - tomb.addInterval(uint64(x), Interval{int64(x), int64(x)}) - } - wg.Done() - }() - go func() { - for x := 0; x < totalRuns; x++ { - tomb.Get(uint64(x)) - } - wg.Done() - }() - wg.Wait() -} diff --git a/vendor/github.com/prometheus/tsdb/tsdbutil/buffer.go b/vendor/github.com/prometheus/tsdb/tsdbutil/buffer.go deleted file mode 100644 index dc2d960d..00000000 --- a/vendor/github.com/prometheus/tsdb/tsdbutil/buffer.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdbutil - -import ( - "math" -) - -// SeriesIterator iterates over the data of a time series. -type SeriesIterator interface { - // Seek advances the iterator forward to the given timestamp. - // If there's no value exactly at t, it advances to the first value - // after t. - Seek(t int64) bool - // At returns the current timestamp/value pair. - At() (t int64, v float64) - // Next advances the iterator by one. - Next() bool - // Err returns the current error. - Err() error -} - -// BufferedSeriesIterator wraps an iterator with a look-back buffer. -type BufferedSeriesIterator struct { - it SeriesIterator - buf *sampleRing - - lastTime int64 -} - -// NewBuffer returns a new iterator that buffers the values within the time range -// of the current element and the duration of delta before. -func NewBuffer(it SeriesIterator, delta int64) *BufferedSeriesIterator { - return &BufferedSeriesIterator{ - it: it, - buf: newSampleRing(delta, 16), - lastTime: math.MinInt64, - } -} - -// PeekBack returns the previous element of the iterator. If there is none buffered, -// ok is false. -func (b *BufferedSeriesIterator) PeekBack() (t int64, v float64, ok bool) { - return b.buf.last() -} - -// Buffer returns an iterator over the buffered data. -func (b *BufferedSeriesIterator) Buffer() SeriesIterator { - return b.buf.iterator() -} - -// Seek advances the iterator to the element at time t or greater. -func (b *BufferedSeriesIterator) Seek(t int64) bool { - t0 := t - b.buf.delta - - // If the delta would cause us to seek backwards, preserve the buffer - // and just continue regular advancement while filling the buffer on the way. - if t0 > b.lastTime { - b.buf.reset() - - ok := b.it.Seek(t0) - if !ok { - return false - } - b.lastTime, _ = b.At() - } - - if b.lastTime >= t { - return true - } - for b.Next() { - if b.lastTime >= t { - return true - } - } - - return false -} - -// Next advances the iterator to the next element. -func (b *BufferedSeriesIterator) Next() bool { - // Add current element to buffer before advancing. - b.buf.add(b.it.At()) - - ok := b.it.Next() - if ok { - b.lastTime, _ = b.At() - } - return ok -} - -// At returns the current element of the iterator. -func (b *BufferedSeriesIterator) At() (int64, float64) { - return b.it.At() -} - -// Err returns the last encountered error. -func (b *BufferedSeriesIterator) Err() error { - return b.it.Err() -} - -type sample struct { - t int64 - v float64 -} - -func (s sample) T() int64 { - return s.t -} - -func (s sample) V() float64 { - return s.v -} - -type sampleRing struct { - delta int64 - - buf []sample // lookback buffer - i int // position of most recent element in ring buffer - f int // position of first element in ring buffer - l int // number of elements in buffer -} - -func newSampleRing(delta int64, sz int) *sampleRing { - r := &sampleRing{delta: delta, buf: make([]sample, sz)} - r.reset() - - return r -} - -func (r *sampleRing) reset() { - r.l = 0 - r.i = -1 - r.f = 0 -} - -func (r *sampleRing) iterator() SeriesIterator { - return &sampleRingIterator{r: r, i: -1} -} - -type sampleRingIterator struct { - r *sampleRing - i int -} - -func (it *sampleRingIterator) Next() bool { - it.i++ - return it.i < it.r.l -} - -func (it *sampleRingIterator) Seek(int64) bool { - return false -} - -func (it *sampleRingIterator) Err() error { - return nil -} - -func (it *sampleRingIterator) At() (int64, float64) { - return it.r.at(it.i) -} - -func (r *sampleRing) at(i int) (int64, float64) { - j := (r.f + i) % len(r.buf) - s := r.buf[j] - return s.t, s.v -} - -// add adds a sample to the ring buffer and frees all samples that fall -// out of the delta range. -func (r *sampleRing) add(t int64, v float64) { - l := len(r.buf) - // Grow the ring buffer if it fits no more elements. - if l == r.l { - buf := make([]sample, 2*l) - copy(buf[l+r.f:], r.buf[r.f:]) - copy(buf, r.buf[:r.f]) - - r.buf = buf - r.i = r.f - r.f += l - } else { - r.i++ - if r.i >= l { - r.i -= l - } - } - - r.buf[r.i] = sample{t: t, v: v} - r.l++ - - // Free head of the buffer of samples that just fell out of the range. - for r.buf[r.f].t < t-r.delta { - r.f++ - if r.f >= l { - r.f -= l - } - r.l-- - } -} - -// last returns the most recent element added to the ring. -func (r *sampleRing) last() (int64, float64, bool) { - if r.l == 0 { - return 0, 0, false - } - s := r.buf[r.i] - return s.t, s.v, true -} - -func (r *sampleRing) samples() []sample { - res := make([]sample, r.l) - - var k = r.f + r.l - var j int - if k > len(r.buf) { - k = len(r.buf) - j = r.l - k + r.f - } - - n := copy(res, r.buf[r.f:k]) - copy(res[n:], r.buf[:j]) - - return res -} diff --git a/vendor/github.com/prometheus/tsdb/tsdbutil/buffer_test.go b/vendor/github.com/prometheus/tsdb/tsdbutil/buffer_test.go deleted file mode 100644 index 0e3b8d04..00000000 --- a/vendor/github.com/prometheus/tsdb/tsdbutil/buffer_test.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdbutil - -import ( - "math/rand" - "sort" - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -func TestSampleRing(t *testing.T) { - cases := []struct { - input []int64 - delta int64 - size int - }{ - { - input: []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - delta: 2, - size: 1, - }, - { - input: []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - delta: 2, - size: 2, - }, - { - input: []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - delta: 7, - size: 3, - }, - { - input: []int64{1, 2, 3, 4, 5, 16, 17, 18, 19, 20}, - delta: 7, - size: 1, - }, - } - for _, c := range cases { - r := newSampleRing(c.delta, c.size) - - input := []sample{} - for _, t := range c.input { - input = append(input, sample{ - t: t, - v: float64(rand.Intn(100)), - }) - } - - for i, s := range input { - r.add(s.t, s.v) - buffered := r.samples() - - for _, sold := range input[:i] { - found := false - for _, bs := range buffered { - if bs.t == sold.t && bs.v == sold.v { - found = true - break - } - } - if sold.t >= s.t-c.delta && !found { - t.Fatalf("%d: expected sample %d to be in buffer but was not; buffer %v", i, sold.t, buffered) - } - if sold.t < s.t-c.delta && found { - t.Fatalf("%d: unexpected sample %d in buffer; buffer %v", i, sold.t, buffered) - } - } - } - } -} - -func TestBufferedSeriesIterator(t *testing.T) { - var it *BufferedSeriesIterator - - bufferEq := func(exp []sample) { - var b []sample - bit := it.Buffer() - for bit.Next() { - t, v := bit.At() - b = append(b, sample{t: t, v: v}) - } - testutil.Equals(t, exp, b) - } - sampleEq := func(ets int64, ev float64) { - ts, v := it.At() - testutil.Equals(t, ets, ts) - testutil.Equals(t, ev, v) - } - - it = NewBuffer(newListSeriesIterator([]sample{ - {t: 1, v: 2}, - {t: 2, v: 3}, - {t: 3, v: 4}, - {t: 4, v: 5}, - {t: 5, v: 6}, - {t: 99, v: 8}, - {t: 100, v: 9}, - {t: 101, v: 10}, - }), 2) - - testutil.Assert(t, it.Seek(-123) == true, "seek failed") - sampleEq(1, 2) - bufferEq(nil) - - testutil.Assert(t, it.Next() == true, "next failed") - sampleEq(2, 3) - bufferEq([]sample{{t: 1, v: 2}}) - - testutil.Assert(t, it.Next() == true, "next failed") - testutil.Assert(t, it.Next() == true, "next failed") - testutil.Assert(t, it.Next() == true, "next failed") - sampleEq(5, 6) - bufferEq([]sample{{t: 2, v: 3}, {t: 3, v: 4}, {t: 4, v: 5}}) - - testutil.Assert(t, it.Seek(5) == true, "seek failed") - sampleEq(5, 6) - bufferEq([]sample{{t: 2, v: 3}, {t: 3, v: 4}, {t: 4, v: 5}}) - - testutil.Assert(t, it.Seek(101) == true, "seek failed") - sampleEq(101, 10) - bufferEq([]sample{{t: 99, v: 8}, {t: 100, v: 9}}) - - testutil.Assert(t, it.Next() == false, "next succeeded unexpectedly") -} - -type listSeriesIterator struct { - list []sample - idx int -} - -func newListSeriesIterator(list []sample) *listSeriesIterator { - return &listSeriesIterator{list: list, idx: -1} -} - -func (it *listSeriesIterator) At() (int64, float64) { - s := it.list[it.idx] - return s.t, s.v -} - -func (it *listSeriesIterator) Next() bool { - it.idx++ - return it.idx < len(it.list) -} - -func (it *listSeriesIterator) Seek(t int64) bool { - if it.idx == -1 { - it.idx = 0 - } - // Do binary search between current position and end. - it.idx = sort.Search(len(it.list)-it.idx, func(i int) bool { - s := it.list[i+it.idx] - return s.t >= t - }) - - return it.idx < len(it.list) -} - -func (it *listSeriesIterator) Err() error { - return nil -} diff --git a/vendor/github.com/prometheus/tsdb/tsdbutil/chunks.go b/vendor/github.com/prometheus/tsdb/tsdbutil/chunks.go deleted file mode 100644 index e14d951b..00000000 --- a/vendor/github.com/prometheus/tsdb/tsdbutil/chunks.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2018 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdbutil - -import ( - "github.com/prometheus/tsdb/chunkenc" - "github.com/prometheus/tsdb/chunks" -) - -type Sample interface { - T() int64 - V() float64 -} - -func ChunkFromSamples(s []Sample) chunks.Meta { - mint, maxt := int64(0), int64(0) - - if len(s) > 0 { - mint, maxt = s[0].T(), s[len(s)-1].T() - } - - c := chunkenc.NewXORChunk() - ca, _ := c.Appender() - - for _, s := range s { - ca.Append(s.T(), s.V()) - } - return chunks.Meta{ - MinTime: mint, - MaxTime: maxt, - Chunk: c, - } -} - -// PopulatedChunk creates a chunk populated with samples every second starting at minTime -func PopulatedChunk(numSamples int, minTime int64) chunks.Meta { - samples := make([]Sample, numSamples) - for i := 0; i < numSamples; i++ { - samples[i] = sample{minTime + int64(i*1000), 1.0} - } - return ChunkFromSamples(samples) -} diff --git a/vendor/github.com/prometheus/tsdb/wal.go b/vendor/github.com/prometheus/tsdb/wal.go deleted file mode 100644 index d7ffe0c1..00000000 --- a/vendor/github.com/prometheus/tsdb/wal.go +++ /dev/null @@ -1,1306 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tsdb - -import ( - "bufio" - "encoding/binary" - "fmt" - "hash" - "hash/crc32" - "io" - "math" - "os" - "path/filepath" - "sort" - "sync" - "time" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/tsdb/encoding" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/wal" -) - -// WALEntryType indicates what data a WAL entry contains. -type WALEntryType uint8 - -const ( - // WALMagic is a 4 byte number every WAL segment file starts with. - WALMagic = uint32(0x43AF00EF) - - // WALFormatDefault is the version flag for the default outer segment file format. - WALFormatDefault = byte(1) -) - -// Entry types in a segment file. -const ( - WALEntrySymbols WALEntryType = 1 - WALEntrySeries WALEntryType = 2 - WALEntrySamples WALEntryType = 3 - WALEntryDeletes WALEntryType = 4 -) - -type walMetrics struct { - fsyncDuration prometheus.Summary - corruptions prometheus.Counter -} - -func newWalMetrics(wal *SegmentWAL, r prometheus.Registerer) *walMetrics { - m := &walMetrics{} - - m.fsyncDuration = prometheus.NewSummary(prometheus.SummaryOpts{ - Name: "prometheus_tsdb_wal_fsync_duration_seconds", - Help: "Duration of WAL fsync.", - }) - m.corruptions = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_corruptions_total", - Help: "Total number of WAL corruptions.", - }) - - if r != nil { - r.MustRegister( - m.fsyncDuration, - m.corruptions, - ) - } - return m -} - -// WAL is a write ahead log that can log new series labels and samples. -// It must be completely read before new entries are logged. -// -// DEPRECATED: use wal pkg combined with the record codex instead. -type WAL interface { - Reader() WALReader - LogSeries([]RefSeries) error - LogSamples([]RefSample) error - LogDeletes([]Stone) error - Truncate(mint int64, keep func(uint64) bool) error - Close() error -} - -// WALReader reads entries from a WAL. -type WALReader interface { - Read( - seriesf func([]RefSeries), - samplesf func([]RefSample), - deletesf func([]Stone), - ) error -} - -// RefSeries is the series labels with the series ID. -type RefSeries struct { - Ref uint64 - Labels labels.Labels -} - -// RefSample is a timestamp/value pair associated with a reference to a series. -type RefSample struct { - Ref uint64 - T int64 - V float64 - - series *memSeries -} - -// segmentFile wraps a file object of a segment and tracks the highest timestamp -// it contains. During WAL truncating, all segments with no higher timestamp than -// the truncation threshold can be compacted. -type segmentFile struct { - *os.File - maxTime int64 // highest tombstone or sample timpstamp in segment - minSeries uint64 // lowerst series ID in segment -} - -func newSegmentFile(f *os.File) *segmentFile { - return &segmentFile{ - File: f, - maxTime: math.MinInt64, - minSeries: math.MaxUint64, - } -} - -const ( - walSegmentSizeBytes = 256 * 1024 * 1024 // 256 MB -) - -// The table gets initialized with sync.Once but may still cause a race -// with any other use of the crc32 package anywhere. Thus we initialize it -// before. -var castagnoliTable *crc32.Table - -func init() { - castagnoliTable = crc32.MakeTable(crc32.Castagnoli) -} - -// newCRC32 initializes a CRC32 hash with a preconfigured polynomial, so the -// polynomial may be easily changed in one location at a later time, if necessary. -func newCRC32() hash.Hash32 { - return crc32.New(castagnoliTable) -} - -// SegmentWAL is a write ahead log for series data. -// -// DEPRECATED: use wal pkg combined with the record coders instead. -type SegmentWAL struct { - mtx sync.Mutex - metrics *walMetrics - - dirFile *os.File - files []*segmentFile - - logger log.Logger - flushInterval time.Duration - segmentSize int64 - - crc32 hash.Hash32 - cur *bufio.Writer - curN int64 - - stopc chan struct{} - donec chan struct{} - actorc chan func() error // sequentialized background operations - buffers sync.Pool -} - -// OpenSegmentWAL opens or creates a write ahead log in the given directory. -// The WAL must be read completely before new data is written. -func OpenSegmentWAL(dir string, logger log.Logger, flushInterval time.Duration, r prometheus.Registerer) (*SegmentWAL, error) { - if err := os.MkdirAll(dir, 0777); err != nil { - return nil, err - } - df, err := fileutil.OpenDir(dir) - if err != nil { - return nil, err - } - if logger == nil { - logger = log.NewNopLogger() - } - - w := &SegmentWAL{ - dirFile: df, - logger: logger, - flushInterval: flushInterval, - donec: make(chan struct{}), - stopc: make(chan struct{}), - actorc: make(chan func() error, 1), - segmentSize: walSegmentSizeBytes, - crc32: newCRC32(), - } - w.metrics = newWalMetrics(w, r) - - fns, err := sequenceFiles(w.dirFile.Name()) - if err != nil { - return nil, err - } - - for i, fn := range fns { - f, err := w.openSegmentFile(fn) - if err == nil { - w.files = append(w.files, newSegmentFile(f)) - continue - } - level.Warn(logger).Log("msg", "invalid segment file detected, truncating WAL", "err", err, "file", fn) - - for _, fn := range fns[i:] { - if err := os.Remove(fn); err != nil { - return w, errors.Wrap(err, "removing segment failed") - } - } - break - } - - go w.run(flushInterval) - - return w, nil -} - -// repairingWALReader wraps a WAL reader and truncates its underlying SegmentWAL after the last -// valid entry if it encounters corruption. -type repairingWALReader struct { - wal *SegmentWAL - r WALReader -} - -func (r *repairingWALReader) Read( - seriesf func([]RefSeries), - samplesf func([]RefSample), - deletesf func([]Stone), -) error { - err := r.r.Read(seriesf, samplesf, deletesf) - if err == nil { - return nil - } - cerr, ok := errors.Cause(err).(walCorruptionErr) - if !ok { - return err - } - r.wal.metrics.corruptions.Inc() - return r.wal.truncate(cerr.err, cerr.file, cerr.lastOffset) -} - -// truncate the WAL after the last valid entry. -func (w *SegmentWAL) truncate(err error, file int, lastOffset int64) error { - level.Error(w.logger).Log("msg", "WAL corruption detected; truncating", - "err", err, "file", w.files[file].Name(), "pos", lastOffset) - - // Close and delete all files after the current one. - for _, f := range w.files[file+1:] { - if err := f.Close(); err != nil { - return err - } - if err := os.Remove(f.Name()); err != nil { - return err - } - } - w.mtx.Lock() - defer w.mtx.Unlock() - - w.files = w.files[:file+1] - - // Seek the current file to the last valid offset where we continue writing from. - _, err = w.files[file].Seek(lastOffset, io.SeekStart) - return err -} - -// Reader returns a new reader over the the write ahead log data. -// It must be completely consumed before writing to the WAL. -func (w *SegmentWAL) Reader() WALReader { - return &repairingWALReader{ - wal: w, - r: newWALReader(w.files, w.logger), - } -} - -func (w *SegmentWAL) getBuffer() *encoding.Encbuf { - b := w.buffers.Get() - if b == nil { - return &encoding.Encbuf{B: make([]byte, 0, 64*1024)} - } - return b.(*encoding.Encbuf) -} - -func (w *SegmentWAL) putBuffer(b *encoding.Encbuf) { - b.Reset() - w.buffers.Put(b) -} - -// Truncate deletes the values prior to mint and the series which the keep function -// does not indicate to preserve. -func (w *SegmentWAL) Truncate(mint int64, keep func(uint64) bool) error { - // The last segment is always active. - if len(w.files) < 2 { - return nil - } - var candidates []*segmentFile - - // All files have to be traversed as there could be two segments for a block - // with first block having times (10000, 20000) and SECOND one having (0, 10000). - for _, sf := range w.files[:len(w.files)-1] { - if sf.maxTime >= mint { - break - } - // Past WAL files are closed. We have to reopen them for another read. - f, err := w.openSegmentFile(sf.Name()) - if err != nil { - return errors.Wrap(err, "open old WAL segment for read") - } - candidates = append(candidates, &segmentFile{ - File: f, - minSeries: sf.minSeries, - maxTime: sf.maxTime, - }) - } - if len(candidates) == 0 { - return nil - } - - r := newWALReader(candidates, w.logger) - - // Create a new tmp file. - f, err := w.createSegmentFile(filepath.Join(w.dirFile.Name(), "compact.tmp")) - if err != nil { - return errors.Wrap(err, "create compaction segment") - } - var ( - csf = newSegmentFile(f) - crc32 = newCRC32() - decSeries = []RefSeries{} - activeSeries = []RefSeries{} - ) - - for r.next() { - rt, flag, byt := r.at() - - if rt != WALEntrySeries { - continue - } - decSeries = decSeries[:0] - activeSeries = activeSeries[:0] - - err := r.decodeSeries(flag, byt, &decSeries) - if err != nil { - return errors.Wrap(err, "decode samples while truncating") - } - for _, s := range decSeries { - if keep(s.Ref) { - activeSeries = append(activeSeries, s) - } - } - - buf := w.getBuffer() - flag = w.encodeSeries(buf, activeSeries) - - _, err = w.writeTo(csf, crc32, WALEntrySeries, flag, buf.Get()) - w.putBuffer(buf) - - if err != nil { - return errors.Wrap(err, "write to compaction segment") - } - } - if r.Err() != nil { - return errors.Wrap(r.Err(), "read candidate WAL files") - } - - off, err := csf.Seek(0, io.SeekCurrent) - if err != nil { - return err - } - if err := csf.Truncate(off); err != nil { - return err - } - csf.Sync() - csf.Close() - - candidates[0].Close() // need close before remove on platform windows - if err := renameFile(csf.Name(), candidates[0].Name()); err != nil { - return errors.Wrap(err, "rename compaction segment") - } - for _, f := range candidates[1:] { - f.Close() // need close before remove on platform windows - if err := os.RemoveAll(f.Name()); err != nil { - return errors.Wrap(err, "delete WAL segment file") - } - } - if err := w.dirFile.Sync(); err != nil { - return err - } - - // The file object of csf still holds the name before rename. Recreate it so - // subsequent truncations do not look at a non-existent file name. - csf.File, err = w.openSegmentFile(candidates[0].Name()) - if err != nil { - return err - } - // We don't need it to be open. - csf.Close() - - w.mtx.Lock() - w.files = append([]*segmentFile{csf}, w.files[len(candidates):]...) - w.mtx.Unlock() - - return nil -} - -// LogSeries writes a batch of new series labels to the log. -// The series have to be ordered. -func (w *SegmentWAL) LogSeries(series []RefSeries) error { - buf := w.getBuffer() - - flag := w.encodeSeries(buf, series) - - w.mtx.Lock() - defer w.mtx.Unlock() - - err := w.write(WALEntrySeries, flag, buf.Get()) - - w.putBuffer(buf) - - if err != nil { - return errors.Wrap(err, "log series") - } - - tf := w.head() - - for _, s := range series { - if tf.minSeries > s.Ref { - tf.minSeries = s.Ref - } - } - return nil -} - -// LogSamples writes a batch of new samples to the log. -func (w *SegmentWAL) LogSamples(samples []RefSample) error { - buf := w.getBuffer() - - flag := w.encodeSamples(buf, samples) - - w.mtx.Lock() - defer w.mtx.Unlock() - - err := w.write(WALEntrySamples, flag, buf.Get()) - - w.putBuffer(buf) - - if err != nil { - return errors.Wrap(err, "log series") - } - tf := w.head() - - for _, s := range samples { - if tf.maxTime < s.T { - tf.maxTime = s.T - } - } - return nil -} - -// LogDeletes write a batch of new deletes to the log. -func (w *SegmentWAL) LogDeletes(stones []Stone) error { - buf := w.getBuffer() - - flag := w.encodeDeletes(buf, stones) - - w.mtx.Lock() - defer w.mtx.Unlock() - - err := w.write(WALEntryDeletes, flag, buf.Get()) - - w.putBuffer(buf) - - if err != nil { - return errors.Wrap(err, "log series") - } - tf := w.head() - - for _, s := range stones { - for _, iv := range s.intervals { - if tf.maxTime < iv.Maxt { - tf.maxTime = iv.Maxt - } - } - } - return nil -} - -// openSegmentFile opens the given segment file and consumes and validates header. -func (w *SegmentWAL) openSegmentFile(name string) (*os.File, error) { - // We must open all files in read/write mode as we may have to truncate along - // the way and any file may become the head. - f, err := os.OpenFile(name, os.O_RDWR, 0666) - if err != nil { - return nil, err - } - metab := make([]byte, 8) - - // If there is an error, we need close f for platform windows before gc. - // Otherwise, file op may fail. - hasError := true - defer func() { - if hasError { - f.Close() - } - }() - - if n, err := f.Read(metab); err != nil { - return nil, errors.Wrapf(err, "validate meta %q", f.Name()) - } else if n != 8 { - return nil, errors.Errorf("invalid header size %d in %q", n, f.Name()) - } - - if m := binary.BigEndian.Uint32(metab[:4]); m != WALMagic { - return nil, errors.Errorf("invalid magic header %x in %q", m, f.Name()) - } - if metab[4] != WALFormatDefault { - return nil, errors.Errorf("unknown WAL segment format %d in %q", metab[4], f.Name()) - } - hasError = false - return f, nil -} - -// createSegmentFile creates a new segment file with the given name. It preallocates -// the standard segment size if possible and writes the header. -func (w *SegmentWAL) createSegmentFile(name string) (*os.File, error) { - f, err := os.Create(name) - if err != nil { - return nil, err - } - if err = fileutil.Preallocate(f, w.segmentSize, true); err != nil { - return nil, err - } - // Write header metadata for new file. - metab := make([]byte, 8) - binary.BigEndian.PutUint32(metab[:4], WALMagic) - metab[4] = WALFormatDefault - - if _, err := f.Write(metab); err != nil { - return nil, err - } - return f, err -} - -// cut finishes the currently active segments and opens the next one. -// The encoder is reset to point to the new segment. -func (w *SegmentWAL) cut() error { - // Sync current head to disk and close. - if hf := w.head(); hf != nil { - if err := w.flush(); err != nil { - return err - } - // Finish last segment asynchronously to not block the WAL moving along - // in the new segment. - go func() { - w.actorc <- func() error { - off, err := hf.Seek(0, io.SeekCurrent) - if err != nil { - return errors.Wrapf(err, "finish old segment %s", hf.Name()) - } - if err := hf.Truncate(off); err != nil { - return errors.Wrapf(err, "finish old segment %s", hf.Name()) - } - if err := hf.Sync(); err != nil { - return errors.Wrapf(err, "finish old segment %s", hf.Name()) - } - if err := hf.Close(); err != nil { - return errors.Wrapf(err, "finish old segment %s", hf.Name()) - } - return nil - } - }() - } - - p, _, err := nextSequenceFile(w.dirFile.Name()) - if err != nil { - return err - } - f, err := w.createSegmentFile(p) - if err != nil { - return err - } - - go func() { - w.actorc <- func() error { - return errors.Wrap(w.dirFile.Sync(), "sync WAL directory") - } - }() - - w.files = append(w.files, newSegmentFile(f)) - - // TODO(gouthamve): make the buffer size a constant. - w.cur = bufio.NewWriterSize(f, 8*1024*1024) - w.curN = 8 - - return nil -} - -func (w *SegmentWAL) head() *segmentFile { - if len(w.files) == 0 { - return nil - } - return w.files[len(w.files)-1] -} - -// Sync flushes the changes to disk. -func (w *SegmentWAL) Sync() error { - var head *segmentFile - var err error - - // Flush the writer and retrieve the reference to the head segment under mutex lock. - func() { - w.mtx.Lock() - defer w.mtx.Unlock() - if err = w.flush(); err != nil { - return - } - head = w.head() - }() - if err != nil { - return errors.Wrap(err, "flush buffer") - } - if head != nil { - // But only fsync the head segment after releasing the mutex as it will block on disk I/O. - start := time.Now() - err := fileutil.Fdatasync(head.File) - w.metrics.fsyncDuration.Observe(time.Since(start).Seconds()) - return err - } - return nil -} - -func (w *SegmentWAL) sync() error { - if err := w.flush(); err != nil { - return err - } - if w.head() == nil { - return nil - } - - start := time.Now() - err := fileutil.Fdatasync(w.head().File) - w.metrics.fsyncDuration.Observe(time.Since(start).Seconds()) - return err -} - -func (w *SegmentWAL) flush() error { - if w.cur == nil { - return nil - } - return w.cur.Flush() -} - -func (w *SegmentWAL) run(interval time.Duration) { - var tick <-chan time.Time - - if interval > 0 { - ticker := time.NewTicker(interval) - defer ticker.Stop() - tick = ticker.C - } - defer close(w.donec) - - for { - // Processing all enqueued operations has precedence over shutdown and - // background syncs. - select { - case f := <-w.actorc: - if err := f(); err != nil { - level.Error(w.logger).Log("msg", "operation failed", "err", err) - } - continue - default: - } - select { - case <-w.stopc: - return - case f := <-w.actorc: - if err := f(); err != nil { - level.Error(w.logger).Log("msg", "operation failed", "err", err) - } - case <-tick: - if err := w.Sync(); err != nil { - level.Error(w.logger).Log("msg", "sync failed", "err", err) - } - } - } -} - -// Close syncs all data and closes the underlying resources. -func (w *SegmentWAL) Close() error { - // Make sure you can call Close() multiple times. - select { - case <-w.stopc: - return nil // Already closed. - default: - } - - close(w.stopc) - <-w.donec - - w.mtx.Lock() - defer w.mtx.Unlock() - - if err := w.sync(); err != nil { - return err - } - // On opening, a WAL must be fully consumed once. Afterwards - // only the current segment will still be open. - if hf := w.head(); hf != nil { - if err := hf.Close(); err != nil { - return errors.Wrapf(err, "closing WAL head %s", hf.Name()) - } - } - - return errors.Wrapf(w.dirFile.Close(), "closing WAL dir %s", w.dirFile.Name()) -} - -func (w *SegmentWAL) write(t WALEntryType, flag uint8, buf []byte) error { - // Cut to the next segment if the entry exceeds the file size unless it would also - // exceed the size of a new segment. - // TODO(gouthamve): Add a test for this case where the commit is greater than segmentSize. - var ( - sz = int64(len(buf)) + 6 - newsz = w.curN + sz - ) - // XXX(fabxc): this currently cuts a new file whenever the WAL was newly opened. - // Probably fine in general but may yield a lot of short files in some cases. - if w.cur == nil || w.curN > w.segmentSize || newsz > w.segmentSize && sz <= w.segmentSize { - if err := w.cut(); err != nil { - return err - } - } - n, err := w.writeTo(w.cur, w.crc32, t, flag, buf) - - w.curN += int64(n) - - return err -} - -func (w *SegmentWAL) writeTo(wr io.Writer, crc32 hash.Hash, t WALEntryType, flag uint8, buf []byte) (int, error) { - if len(buf) == 0 { - return 0, nil - } - crc32.Reset() - wr = io.MultiWriter(crc32, wr) - - var b [6]byte - b[0] = byte(t) - b[1] = flag - - binary.BigEndian.PutUint32(b[2:], uint32(len(buf))) - - n1, err := wr.Write(b[:]) - if err != nil { - return n1, err - } - n2, err := wr.Write(buf) - if err != nil { - return n1 + n2, err - } - n3, err := wr.Write(crc32.Sum(b[:0])) - - return n1 + n2 + n3, err -} - -const ( - walSeriesSimple = 1 - walSamplesSimple = 1 - walDeletesSimple = 1 -) - -func (w *SegmentWAL) encodeSeries(buf *encoding.Encbuf, series []RefSeries) uint8 { - for _, s := range series { - buf.PutBE64(s.Ref) - buf.PutUvarint(len(s.Labels)) - - for _, l := range s.Labels { - buf.PutUvarintStr(l.Name) - buf.PutUvarintStr(l.Value) - } - } - return walSeriesSimple -} - -func (w *SegmentWAL) encodeSamples(buf *encoding.Encbuf, samples []RefSample) uint8 { - if len(samples) == 0 { - return walSamplesSimple - } - // Store base timestamp and base reference number of first sample. - // All samples encode their timestamp and ref as delta to those. - // - // TODO(fabxc): optimize for all samples having the same timestamp. - first := samples[0] - - buf.PutBE64(first.Ref) - buf.PutBE64int64(first.T) - - for _, s := range samples { - buf.PutVarint64(int64(s.Ref) - int64(first.Ref)) - buf.PutVarint64(s.T - first.T) - buf.PutBE64(math.Float64bits(s.V)) - } - return walSamplesSimple -} - -func (w *SegmentWAL) encodeDeletes(buf *encoding.Encbuf, stones []Stone) uint8 { - for _, s := range stones { - for _, iv := range s.intervals { - buf.PutBE64(s.ref) - buf.PutVarint64(iv.Mint) - buf.PutVarint64(iv.Maxt) - } - } - return walDeletesSimple -} - -// walReader decodes and emits write ahead log entries. -type walReader struct { - logger log.Logger - - files []*segmentFile - cur int - buf []byte - crc32 hash.Hash32 - - curType WALEntryType - curFlag byte - curBuf []byte - lastOffset int64 // offset after last successfully read entry - - err error -} - -func newWALReader(files []*segmentFile, l log.Logger) *walReader { - if l == nil { - l = log.NewNopLogger() - } - return &walReader{ - logger: l, - files: files, - buf: make([]byte, 0, 128*4096), - crc32: newCRC32(), - } -} - -// Err returns the last error the reader encountered. -func (r *walReader) Err() error { - return r.err -} - -func (r *walReader) Read( - seriesf func([]RefSeries), - samplesf func([]RefSample), - deletesf func([]Stone), -) error { - // Concurrency for replaying the WAL is very limited. We at least split out decoding and - // processing into separate threads. - // Historically, the processing is the bottleneck with reading and decoding using only - // 15% of the CPU. - var ( - seriesPool sync.Pool - samplePool sync.Pool - deletePool sync.Pool - ) - donec := make(chan struct{}) - datac := make(chan interface{}, 100) - - go func() { - defer close(donec) - - for x := range datac { - switch v := x.(type) { - case []RefSeries: - if seriesf != nil { - seriesf(v) - } - //lint:ignore SA6002 safe to ignore and actually fixing it has some performance penalty. - seriesPool.Put(v[:0]) - case []RefSample: - if samplesf != nil { - samplesf(v) - } - //lint:ignore SA6002 safe to ignore and actually fixing it has some performance penalty. - samplePool.Put(v[:0]) - case []Stone: - if deletesf != nil { - deletesf(v) - } - //lint:ignore SA6002 safe to ignore and actually fixing it has some performance penalty. - deletePool.Put(v[:0]) - default: - level.Error(r.logger).Log("msg", "unexpected data type") - } - } - }() - - var err error - - for r.next() { - et, flag, b := r.at() - - // In decoding below we never return a walCorruptionErr for now. - // Those should generally be catched by entry decoding before. - switch et { - case WALEntrySeries: - var series []RefSeries - if v := seriesPool.Get(); v == nil { - series = make([]RefSeries, 0, 512) - } else { - series = v.([]RefSeries) - } - - err = r.decodeSeries(flag, b, &series) - if err != nil { - err = errors.Wrap(err, "decode series entry") - break - } - datac <- series - - cf := r.current() - for _, s := range series { - if cf.minSeries > s.Ref { - cf.minSeries = s.Ref - } - } - case WALEntrySamples: - var samples []RefSample - if v := samplePool.Get(); v == nil { - samples = make([]RefSample, 0, 512) - } else { - samples = v.([]RefSample) - } - - err = r.decodeSamples(flag, b, &samples) - if err != nil { - err = errors.Wrap(err, "decode samples entry") - break - } - datac <- samples - - // Update the times for the WAL segment file. - cf := r.current() - for _, s := range samples { - if cf.maxTime < s.T { - cf.maxTime = s.T - } - } - case WALEntryDeletes: - var deletes []Stone - if v := deletePool.Get(); v == nil { - deletes = make([]Stone, 0, 512) - } else { - deletes = v.([]Stone) - } - - err = r.decodeDeletes(flag, b, &deletes) - if err != nil { - err = errors.Wrap(err, "decode delete entry") - break - } - datac <- deletes - - // Update the times for the WAL segment file. - cf := r.current() - for _, s := range deletes { - for _, iv := range s.intervals { - if cf.maxTime < iv.Maxt { - cf.maxTime = iv.Maxt - } - } - } - } - } - close(datac) - <-donec - - if err != nil { - return err - } - if r.Err() != nil { - return errors.Wrap(r.Err(), "read entry") - } - return nil -} - -func (r *walReader) at() (WALEntryType, byte, []byte) { - return r.curType, r.curFlag, r.curBuf -} - -// next returns decodes the next entry pair and returns true -// if it was successful. -func (r *walReader) next() bool { - if r.cur >= len(r.files) { - return false - } - cf := r.files[r.cur] - - // Remember the offset after the last correctly read entry. If the next one - // is corrupted, this is where we can safely truncate. - r.lastOffset, r.err = cf.Seek(0, io.SeekCurrent) - if r.err != nil { - return false - } - - et, flag, b, err := r.entry(cf) - // If we reached the end of the reader, advance to the next one - // and close. - // Do not close on the last one as it will still be appended to. - if err == io.EOF { - if r.cur == len(r.files)-1 { - return false - } - // Current reader completed, close and move to the next one. - if err := cf.Close(); err != nil { - r.err = err - return false - } - r.cur++ - return r.next() - } - if err != nil { - r.err = err - return false - } - - r.curType = et - r.curFlag = flag - r.curBuf = b - return r.err == nil -} - -func (r *walReader) current() *segmentFile { - return r.files[r.cur] -} - -// walCorruptionErr is a type wrapper for errors that indicate WAL corruption -// and trigger a truncation. -type walCorruptionErr struct { - err error - file int - lastOffset int64 -} - -func (e walCorruptionErr) Error() string { - return fmt.Sprintf("%s ", e.err, e.file, e.lastOffset) -} - -func (r *walReader) corruptionErr(s string, args ...interface{}) error { - return walCorruptionErr{ - err: errors.Errorf(s, args...), - file: r.cur, - lastOffset: r.lastOffset, - } -} - -func (r *walReader) entry(cr io.Reader) (WALEntryType, byte, []byte, error) { - r.crc32.Reset() - tr := io.TeeReader(cr, r.crc32) - - b := make([]byte, 6) - if n, err := tr.Read(b); err != nil { - return 0, 0, nil, err - } else if n != 6 { - return 0, 0, nil, r.corruptionErr("invalid entry header size %d", n) - } - - var ( - etype = WALEntryType(b[0]) - flag = b[1] - length = int(binary.BigEndian.Uint32(b[2:])) - ) - // Exit if we reached pre-allocated space. - if etype == 0 { - return 0, 0, nil, io.EOF - } - if etype != WALEntrySeries && etype != WALEntrySamples && etype != WALEntryDeletes { - return 0, 0, nil, r.corruptionErr("invalid entry type %d", etype) - } - - if length > len(r.buf) { - r.buf = make([]byte, length) - } - buf := r.buf[:length] - - if n, err := tr.Read(buf); err != nil { - return 0, 0, nil, err - } else if n != length { - return 0, 0, nil, r.corruptionErr("invalid entry body size %d", n) - } - - if n, err := cr.Read(b[:4]); err != nil { - return 0, 0, nil, err - } else if n != 4 { - return 0, 0, nil, r.corruptionErr("invalid checksum length %d", n) - } - if exp, has := binary.BigEndian.Uint32(b[:4]), r.crc32.Sum32(); has != exp { - return 0, 0, nil, r.corruptionErr("unexpected CRC32 checksum %x, want %x", has, exp) - } - - return etype, flag, buf, nil -} - -func (r *walReader) decodeSeries(flag byte, b []byte, res *[]RefSeries) error { - dec := encoding.Decbuf{B: b} - - for len(dec.B) > 0 && dec.Err() == nil { - ref := dec.Be64() - - lset := make(labels.Labels, dec.Uvarint()) - - for i := range lset { - lset[i].Name = dec.UvarintStr() - lset[i].Value = dec.UvarintStr() - } - sort.Sort(lset) - - *res = append(*res, RefSeries{ - Ref: ref, - Labels: lset, - }) - } - if dec.Err() != nil { - return dec.Err() - } - if len(dec.B) > 0 { - return errors.Errorf("unexpected %d bytes left in entry", len(dec.B)) - } - return nil -} - -func (r *walReader) decodeSamples(flag byte, b []byte, res *[]RefSample) error { - if len(b) == 0 { - return nil - } - dec := encoding.Decbuf{B: b} - - var ( - baseRef = dec.Be64() - baseTime = dec.Be64int64() - ) - - for len(dec.B) > 0 && dec.Err() == nil { - dref := dec.Varint64() - dtime := dec.Varint64() - val := dec.Be64() - - *res = append(*res, RefSample{ - Ref: uint64(int64(baseRef) + dref), - T: baseTime + dtime, - V: math.Float64frombits(val), - }) - } - - if dec.Err() != nil { - return errors.Wrapf(dec.Err(), "decode error after %d samples", len(*res)) - } - if len(dec.B) > 0 { - return errors.Errorf("unexpected %d bytes left in entry", len(dec.B)) - } - return nil -} - -func (r *walReader) decodeDeletes(flag byte, b []byte, res *[]Stone) error { - dec := &encoding.Decbuf{B: b} - - for dec.Len() > 0 && dec.Err() == nil { - *res = append(*res, Stone{ - ref: dec.Be64(), - intervals: Intervals{ - {Mint: dec.Varint64(), Maxt: dec.Varint64()}, - }, - }) - } - if dec.Err() != nil { - return dec.Err() - } - if len(dec.B) > 0 { - return errors.Errorf("unexpected %d bytes left in entry", len(dec.B)) - } - return nil -} - -func deprecatedWALExists(logger log.Logger, dir string) (bool, error) { - // Detect whether we still have the old WAL. - fns, err := sequenceFiles(dir) - if err != nil && !os.IsNotExist(err) { - return false, errors.Wrap(err, "list sequence files") - } - if len(fns) == 0 { - return false, nil // No WAL at all yet. - } - // Check header of first segment to see whether we are still dealing with an - // old WAL. - f, err := os.Open(fns[0]) - if err != nil { - return false, errors.Wrap(err, "check first existing segment") - } - defer f.Close() - - var hdr [4]byte - if _, err := f.Read(hdr[:]); err != nil && err != io.EOF { - return false, errors.Wrap(err, "read header from first segment") - } - // If we cannot read the magic header for segments of the old WAL, abort. - // Either it's migrated already or there's a corruption issue with which - // we cannot deal here anyway. Subsequent attempts to open the WAL will error in that case. - if binary.BigEndian.Uint32(hdr[:]) != WALMagic { - return false, nil - } - return true, nil -} - -// MigrateWAL rewrites the deprecated write ahead log into the new format. -func MigrateWAL(logger log.Logger, dir string) (err error) { - if logger == nil { - logger = log.NewNopLogger() - } - if exists, err := deprecatedWALExists(logger, dir); err != nil || !exists { - return err - } - level.Info(logger).Log("msg", "migrating WAL format") - - tmpdir := dir + ".tmp" - if err := os.RemoveAll(tmpdir); err != nil { - return errors.Wrap(err, "cleanup replacement dir") - } - repl, err := wal.New(logger, nil, tmpdir) - if err != nil { - return errors.Wrap(err, "open new WAL") - } - - // It should've already been closed as part of the previous finalization. - // Do it once again in case of prior errors. - defer func() { - if err != nil { - repl.Close() - } - }() - - w, err := OpenSegmentWAL(dir, logger, time.Minute, nil) - if err != nil { - return errors.Wrap(err, "open old WAL") - } - defer w.Close() - - rdr := w.Reader() - - var ( - enc RecordEncoder - b []byte - ) - decErr := rdr.Read( - func(s []RefSeries) { - if err != nil { - return - } - err = repl.Log(enc.Series(s, b[:0])) - }, - func(s []RefSample) { - if err != nil { - return - } - err = repl.Log(enc.Samples(s, b[:0])) - }, - func(s []Stone) { - if err != nil { - return - } - err = repl.Log(enc.Tombstones(s, b[:0])) - }, - ) - if decErr != nil { - return errors.Wrap(err, "decode old entries") - } - if err != nil { - return errors.Wrap(err, "write new entries") - } - // We explicitly close even when there is a defer for Windows to be - // able to delete it. The defer is in place to close it in-case there - // are errors above. - if err := w.Close(); err != nil { - return errors.Wrap(err, "close old WAL") - } - if err := repl.Close(); err != nil { - return errors.Wrap(err, "close new WAL") - } - if err := fileutil.Replace(tmpdir, dir); err != nil { - return errors.Wrap(err, "replace old WAL") - } - return nil -} diff --git a/vendor/github.com/prometheus/tsdb/wal/live_reader.go b/vendor/github.com/prometheus/tsdb/wal/live_reader.go deleted file mode 100644 index 8394bfd0..00000000 --- a/vendor/github.com/prometheus/tsdb/wal/live_reader.go +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright 2019 The Prometheus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package wal - -import ( - "encoding/binary" - "fmt" - "hash/crc32" - "io" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promauto" -) - -var ( - readerCorruptionErrors = promauto.NewCounterVec(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_reader_corruption_errors", - Help: "Errors encountered when reading the WAL.", - }, []string{"error"}) -) - -// NewLiveReader returns a new live reader. -func NewLiveReader(logger log.Logger, r io.Reader) *LiveReader { - return &LiveReader{ - logger: logger, - rdr: r, - - // Until we understand how they come about, make readers permissive - // to records spanning pages. - permissive: true, - } -} - -// LiveReader reads WAL records from an io.Reader. It allows reading of WALs -// that are still in the process of being written, and returns records as soon -// as they can be read. -type LiveReader struct { - logger log.Logger - rdr io.Reader - err error - rec []byte - hdr [recordHeaderSize]byte - buf [pageSize]byte - readIndex int // Index in buf to start at for next read. - writeIndex int // Index in buf to start at for next write. - total int64 // Total bytes processed during reading in calls to Next(). - index int // Used to track partial records, should be 0 at the start of every new record. - - // For testing, we can treat EOF as a non-error. - eofNonErr bool - - // We sometime see records span page boundaries. Should never happen, but it - // does. Until we track down why, set permissive to true to tolerate it. - // NB the non-ive Reader implementation allows for this. - permissive bool -} - -// Err returns any errors encountered reading the WAL. io.EOFs are not terminal -// and Next can be tried again. Non-EOFs are terminal, and the reader should -// not be used again. It is up to the user to decide when to stop trying should -// io.EOF be returned. -func (r *LiveReader) Err() error { - if r.eofNonErr && r.err == io.EOF { - return nil - } - return r.err -} - -// Offset returns the number of bytes consumed from this segment. -func (r *LiveReader) Offset() int64 { - return r.total -} - -func (r *LiveReader) fillBuffer() (int, error) { - n, err := r.rdr.Read(r.buf[r.writeIndex:len(r.buf)]) - r.writeIndex += n - return n, err -} - -// Next returns true if Record() will contain a full record. -// If Next returns false, you should always checked the contents of Error(). -// Return false guarantees there are no more records if the segment is closed -// and not corrupt, otherwise if Err() == io.EOF you should try again when more -// data has been written. -func (r *LiveReader) Next() bool { - for { - // If buildRecord returns a non-EOF error, its game up - the segment is - // corrupt. If buildRecord returns an EOF, we try and read more in - // fillBuffer later on. If that fails to read anything (n=0 && err=EOF), - // we return EOF and the user can try again later. If we have a full - // page, buildRecord is guaranteed to return a record or a non-EOF; it - // has checks the records fit in pages. - if ok, err := r.buildRecord(); ok { - return true - } else if err != nil && err != io.EOF { - r.err = err - return false - } - - // If we've filled the page and not found a record, this - // means records have started to span pages. Shouldn't happen - // but does and until we found out why, we need to deal with this. - if r.permissive && r.writeIndex == pageSize && r.readIndex > 0 { - copy(r.buf[:], r.buf[r.readIndex:]) - r.writeIndex -= r.readIndex - r.readIndex = 0 - continue - } - - if r.readIndex == pageSize { - r.writeIndex = 0 - r.readIndex = 0 - } - - if r.writeIndex != pageSize { - n, err := r.fillBuffer() - if n == 0 || (err != nil && err != io.EOF) { - r.err = err - return false - } - } - } -} - -// Record returns the current record. -// The returned byte slice is only valid until the next call to Next. -func (r *LiveReader) Record() []byte { - return r.rec -} - -// Rebuild a full record from potentially partial records. Returns false -// if there was an error or if we weren't able to read a record for any reason. -// Returns true if we read a full record. Any record data is appended to -// LiveReader.rec -func (r *LiveReader) buildRecord() (bool, error) { - for { - // Check that we have data in the internal buffer to read. - if r.writeIndex <= r.readIndex { - return false, nil - } - - // Attempt to read a record, partial or otherwise. - temp, n, err := r.readRecord() - if err != nil { - return false, err - } - - r.readIndex += n - r.total += int64(n) - if temp == nil { - return false, nil - } - - rt := recType(r.hdr[0]) - if rt == recFirst || rt == recFull { - r.rec = r.rec[:0] - } - r.rec = append(r.rec, temp...) - - if err := validateRecord(rt, r.index); err != nil { - r.index = 0 - return false, err - } - if rt == recLast || rt == recFull { - r.index = 0 - return true, nil - } - // Only increment i for non-zero records since we use it - // to determine valid content record sequences. - r.index++ - } -} - -// Returns an error if the recType and i indicate an invalid record sequence. -// As an example, if i is > 0 because we've read some amount of a partial record -// (recFirst, recMiddle, etc. but not recLast) and then we get another recFirst or recFull -// instead of a recLast or recMiddle we would have an invalid record. -func validateRecord(typ recType, i int) error { - switch typ { - case recFull: - if i != 0 { - return errors.New("unexpected full record") - } - return nil - case recFirst: - if i != 0 { - return errors.New("unexpected first record, dropping buffer") - } - return nil - case recMiddle: - if i == 0 { - return errors.New("unexpected middle record, dropping buffer") - } - return nil - case recLast: - if i == 0 { - return errors.New("unexpected last record, dropping buffer") - } - return nil - default: - return errors.Errorf("unexpected record type %d", typ) - } -} - -// Read a sub-record (see recType) from the buffer. It could potentially -// be a full record (recFull) if the record fits within the bounds of a single page. -// Returns a byte slice of the record data read, the number of bytes read, and an error -// if there's a non-zero byte in a page term record or the record checksum fails. -// This is a non-method function to make it clear it does not mutate the reader. -func (r *LiveReader) readRecord() ([]byte, int, error) { - // Special case: for recPageTerm, check that are all zeros to end of page, - // consume them but don't return them. - if r.buf[r.readIndex] == byte(recPageTerm) { - // End of page won't necessarily be end of buffer, as we may have - // got misaligned by records spanning page boundaries. - // r.total % pageSize is the offset into the current page - // that r.readIndex points to in buf. Therefore - // pageSize - (r.total % pageSize) is the amount left to read of - // the current page. - remaining := int(pageSize - (r.total % pageSize)) - if r.readIndex+remaining > r.writeIndex { - return nil, 0, io.EOF - } - - for i := r.readIndex; i < r.readIndex+remaining; i++ { - if r.buf[i] != 0 { - return nil, 0, errors.New("unexpected non-zero byte in page term bytes") - } - } - - return nil, remaining, nil - } - - // Not a recPageTerm; read the record and check the checksum. - if r.writeIndex-r.readIndex < recordHeaderSize { - return nil, 0, io.EOF - } - - copy(r.hdr[:], r.buf[r.readIndex:r.readIndex+recordHeaderSize]) - length := int(binary.BigEndian.Uint16(r.hdr[1:])) - crc := binary.BigEndian.Uint32(r.hdr[3:]) - if r.readIndex+recordHeaderSize+length > pageSize { - if !r.permissive { - return nil, 0, fmt.Errorf("record would overflow current page: %d > %d", r.readIndex+recordHeaderSize+length, pageSize) - } - readerCorruptionErrors.WithLabelValues("record_span_page").Inc() - level.Warn(r.logger).Log("msg", "record spans page boundaries", "start", r.readIndex, "end", recordHeaderSize+length, "pageSize", pageSize) - } - if recordHeaderSize+length > pageSize { - return nil, 0, fmt.Errorf("record length greater than a single page: %d > %d", recordHeaderSize+length, pageSize) - } - if r.readIndex+recordHeaderSize+length > r.writeIndex { - return nil, 0, io.EOF - } - - rec := r.buf[r.readIndex+recordHeaderSize : r.readIndex+recordHeaderSize+length] - if c := crc32.Checksum(rec, castagnoliTable); c != crc { - return nil, 0, errors.Errorf("unexpected checksum %x, expected %x", c, crc) - } - - return rec, length + recordHeaderSize, nil -} - -func min(i, j int) int { - if i < j { - return i - } - return j -} diff --git a/vendor/github.com/prometheus/tsdb/wal/reader.go b/vendor/github.com/prometheus/tsdb/wal/reader.go deleted file mode 100644 index 297463b0..00000000 --- a/vendor/github.com/prometheus/tsdb/wal/reader.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2019 The Prometheus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package wal - -import ( - "encoding/binary" - "hash/crc32" - "io" - - "github.com/pkg/errors" -) - -// Reader reads WAL records from an io.Reader. -type Reader struct { - rdr io.Reader - err error - rec []byte - buf [pageSize]byte - total int64 // Total bytes processed. - curRecTyp recType // Used for checking that the last record is not torn. -} - -// NewReader returns a new reader. -func NewReader(r io.Reader) *Reader { - return &Reader{rdr: r} -} - -// Next advances the reader to the next records and returns true if it exists. -// It must not be called again after it returned false. -func (r *Reader) Next() bool { - err := r.next() - if errors.Cause(err) == io.EOF { - // The last WAL segment record shouldn't be torn(should be full or last). - // The last record would be torn after a crash just before - // the last record part could be persisted to disk. - if recType(r.curRecTyp) == recFirst || recType(r.curRecTyp) == recMiddle { - r.err = errors.New("last record is torn") - } - return false - } - r.err = err - return r.err == nil -} - -func (r *Reader) next() (err error) { - // We have to use r.buf since allocating byte arrays here fails escape - // analysis and ends up on the heap, even though it seemingly should not. - hdr := r.buf[:recordHeaderSize] - buf := r.buf[recordHeaderSize:] - - r.rec = r.rec[:0] - - i := 0 - for { - if _, err = io.ReadFull(r.rdr, hdr[:1]); err != nil { - return errors.Wrap(err, "read first header byte") - } - r.total++ - r.curRecTyp = recType(hdr[0]) - - // Gobble up zero bytes. - if r.curRecTyp == recPageTerm { - // recPageTerm is a single byte that indicates the rest of the page is padded. - // If it's the first byte in a page, buf is too small and - // needs to be resized to fit pageSize-1 bytes. - buf = r.buf[1:] - - // We are pedantic and check whether the zeros are actually up - // to a page boundary. - // It's not strictly necessary but may catch sketchy state early. - k := pageSize - (r.total % pageSize) - if k == pageSize { - continue // Initial 0 byte was last page byte. - } - n, err := io.ReadFull(r.rdr, buf[:k]) - if err != nil { - return errors.Wrap(err, "read remaining zeros") - } - r.total += int64(n) - - for _, c := range buf[:k] { - if c != 0 { - return errors.New("unexpected non-zero byte in padded page") - } - } - continue - } - n, err := io.ReadFull(r.rdr, hdr[1:]) - if err != nil { - return errors.Wrap(err, "read remaining header") - } - r.total += int64(n) - - var ( - length = binary.BigEndian.Uint16(hdr[1:]) - crc = binary.BigEndian.Uint32(hdr[3:]) - ) - - if length > pageSize-recordHeaderSize { - return errors.Errorf("invalid record size %d", length) - } - n, err = io.ReadFull(r.rdr, buf[:length]) - if err != nil { - return err - } - r.total += int64(n) - - if n != int(length) { - return errors.Errorf("invalid size: expected %d, got %d", length, n) - } - if c := crc32.Checksum(buf[:length], castagnoliTable); c != crc { - return errors.Errorf("unexpected checksum %x, expected %x", c, crc) - } - r.rec = append(r.rec, buf[:length]...) - - if err := validateRecord(r.curRecTyp, i); err != nil { - return err - } - if r.curRecTyp == recLast || r.curRecTyp == recFull { - return nil - } - - // Only increment i for non-zero records since we use it - // to determine valid content record sequences. - i++ - } -} - -// Err returns the last encountered error wrapped in a corruption error. -// If the reader does not allow to infer a segment index and offset, a total -// offset in the reader stream will be provided. -func (r *Reader) Err() error { - if r.err == nil { - return nil - } - if b, ok := r.rdr.(*segmentBufReader); ok { - return &CorruptionErr{ - Err: r.err, - Dir: b.segs[b.cur].Dir(), - Segment: b.segs[b.cur].Index(), - Offset: int64(b.off), - } - } - return &CorruptionErr{ - Err: r.err, - Segment: -1, - Offset: r.total, - } -} - -// Record returns the current record. The returned byte slice is only -// valid until the next call to Next. -func (r *Reader) Record() []byte { - return r.rec -} - -// Segment returns the current segment being read. -func (r *Reader) Segment() int { - if b, ok := r.rdr.(*segmentBufReader); ok { - return b.segs[b.cur].Index() - } - return -1 -} - -// Offset returns the current position of the segment being read. -func (r *Reader) Offset() int64 { - if b, ok := r.rdr.(*segmentBufReader); ok { - return int64(b.off) - } - return r.total -} diff --git a/vendor/github.com/prometheus/tsdb/wal/reader_test.go b/vendor/github.com/prometheus/tsdb/wal/reader_test.go deleted file mode 100644 index 1178aa5e..00000000 --- a/vendor/github.com/prometheus/tsdb/wal/reader_test.go +++ /dev/null @@ -1,543 +0,0 @@ -// Copyright 2019 The Prometheus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package wal - -import ( - "bytes" - "encoding/binary" - "fmt" - "hash/crc32" - "io" - "io/ioutil" - "math/rand" - "os" - "path/filepath" - "runtime" - "strconv" - "testing" - "time" - - "github.com/go-kit/kit/log" - tsdb_errors "github.com/prometheus/tsdb/errors" - "github.com/prometheus/tsdb/testutil" -) - -type reader interface { - Next() bool - Err() error - Record() []byte - Offset() int64 -} - -type record struct { - t recType - b []byte -} - -var readerConstructors = map[string]func(io.Reader) reader{ - "Reader": func(r io.Reader) reader { - return NewReader(r) - }, - "LiveReader": func(r io.Reader) reader { - lr := NewLiveReader(log.NewNopLogger(), r) - lr.eofNonErr = true - return lr - }, -} - -var data = make([]byte, 100000) -var testReaderCases = []struct { - t []record - exp [][]byte - fail bool -}{ - // Sequence of valid records. - { - t: []record{ - {recFull, data[0:200]}, - {recFirst, data[200:300]}, - {recLast, data[300:400]}, - {recFirst, data[400:800]}, - {recMiddle, data[800:900]}, - {recPageTerm, make([]byte, pageSize-900-recordHeaderSize*5-1)}, // exactly lines up with page boundary. - {recLast, data[900:900]}, - {recFirst, data[900:1000]}, - {recMiddle, data[1000:1200]}, - {recMiddle, data[1200:30000]}, - {recMiddle, data[30000:30001]}, - {recMiddle, data[30001:30001]}, - {recLast, data[30001:32000]}, - }, - exp: [][]byte{ - data[0:200], - data[200:400], - data[400:900], - data[900:32000], - }, - }, - // Exactly at the limit of one page minus the header size - { - t: []record{ - {recFull, data[0 : pageSize-recordHeaderSize]}, - }, - exp: [][]byte{ - data[:pageSize-recordHeaderSize], - }, - }, - // More than a full page, this exceeds our buffer and can never happen - // when written by the WAL. - { - t: []record{ - {recFull, data[0 : pageSize+1]}, - }, - fail: true, - }, - // Two records the together are too big for a page. - // NB currently the non-live reader succeeds on this. I think this is a bug. - // but we've seen it in production. - { - t: []record{ - {recFull, data[:pageSize/2]}, - {recFull, data[:pageSize/2]}, - }, - exp: [][]byte{ - data[:pageSize/2], - data[:pageSize/2], - }, - }, - // Invalid orders of record types. - { - t: []record{{recMiddle, data[:200]}}, - fail: true, - }, - { - t: []record{{recLast, data[:200]}}, - fail: true, - }, - { - t: []record{ - {recFirst, data[:200]}, - {recFull, data[200:400]}, - }, - fail: true, - }, - { - t: []record{ - {recFirst, data[:100]}, - {recMiddle, data[100:200]}, - {recFull, data[200:400]}, - }, - fail: true, - }, - // Non-zero data after page termination. - { - t: []record{ - {recFull, data[:100]}, - {recPageTerm, append(make([]byte, pageSize-recordHeaderSize-102), 1)}, - }, - exp: [][]byte{data[:100]}, - fail: true, - }, -} - -func encodedRecord(t recType, b []byte) []byte { - if t == recPageTerm { - return append([]byte{0}, b...) - } - r := make([]byte, recordHeaderSize) - r[0] = byte(t) - binary.BigEndian.PutUint16(r[1:], uint16(len(b))) - binary.BigEndian.PutUint32(r[3:], crc32.Checksum(b, castagnoliTable)) - return append(r, b...) -} - -// TestReader feeds the reader a stream of encoded records with different types. -func TestReader(t *testing.T) { - for name, fn := range readerConstructors { - for i, c := range testReaderCases { - t.Run(fmt.Sprintf("%s/%d", name, i), func(t *testing.T) { - var buf []byte - for _, r := range c.t { - buf = append(buf, encodedRecord(r.t, r.b)...) - } - r := fn(bytes.NewReader(buf)) - - for j := 0; r.Next(); j++ { - t.Logf("record %d", j) - rec := r.Record() - - if j >= len(c.exp) { - t.Fatal("received more records than expected") - } - testutil.Equals(t, c.exp[j], rec, "Bytes within record did not match expected Bytes") - } - if !c.fail && r.Err() != nil { - t.Fatalf("unexpected error: %s", r.Err()) - } - if c.fail && r.Err() == nil { - t.Fatalf("expected error but got none") - } - }) - } - } -} - -func TestReader_Live(t *testing.T) { - logger := testutil.NewLogger(t) - - for i := range testReaderCases { - t.Run(strconv.Itoa(i), func(t *testing.T) { - writeFd, err := ioutil.TempFile("", "TestReader_Live") - testutil.Ok(t, err) - defer os.Remove(writeFd.Name()) - - go func(i int) { - for _, rec := range testReaderCases[i].t { - rec := encodedRecord(rec.t, rec.b) - _, err := writeFd.Write(rec) - testutil.Ok(t, err) - runtime.Gosched() - } - writeFd.Close() - }(i) - - // Read from a second FD on the same file. - readFd, err := os.Open(writeFd.Name()) - testutil.Ok(t, err) - reader := NewLiveReader(logger, readFd) - for _, exp := range testReaderCases[i].exp { - for !reader.Next() { - testutil.Assert(t, reader.Err() == io.EOF, "expect EOF, got: %v", reader.Err()) - runtime.Gosched() - } - - actual := reader.Record() - testutil.Equals(t, exp, actual, "read wrong record") - } - - testutil.Assert(t, !reader.Next(), "unexpected record") - if testReaderCases[i].fail { - testutil.Assert(t, reader.Err() != nil, "expected error") - } - }) - } -} - -const fuzzLen = 500 - -func generateRandomEntries(w *WAL, records chan []byte) error { - var recs [][]byte - for i := 0; i < fuzzLen; i++ { - var sz int64 - switch i % 5 { - case 0, 1: - sz = 50 - case 2, 3: - sz = pageSize - default: - sz = pageSize * 8 - } - - rec := make([]byte, rand.Int63n(sz)) - if _, err := rand.Read(rec); err != nil { - return err - } - - records <- rec - - // Randomly batch up records. - recs = append(recs, rec) - if rand.Intn(4) < 3 { - if err := w.Log(recs...); err != nil { - return err - } - recs = recs[:0] - } - } - return w.Log(recs...) -} - -type multiReadCloser struct { - reader io.Reader - closers []io.Closer -} - -func (m *multiReadCloser) Read(p []byte) (n int, err error) { - return m.reader.Read(p) -} -func (m *multiReadCloser) Close() error { - var merr tsdb_errors.MultiError - for _, closer := range m.closers { - merr.Add(closer.Close()) - } - return merr.Err() -} - -func allSegments(dir string) (io.ReadCloser, error) { - seg, err := listSegments(dir) - if err != nil { - return nil, err - } - - var readers []io.Reader - var closers []io.Closer - for _, r := range seg { - f, err := os.Open(filepath.Join(dir, r.name)) - if err != nil { - return nil, err - } - readers = append(readers, f) - closers = append(closers, f) - } - - return &multiReadCloser{ - reader: io.MultiReader(readers...), - closers: closers, - }, nil -} - -func TestReaderFuzz(t *testing.T) { - for name, fn := range readerConstructors { - t.Run(name, func(t *testing.T) { - dir, err := ioutil.TempDir("", "wal_fuzz_live") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := NewSize(nil, nil, dir, 128*pageSize) - testutil.Ok(t, err) - - // Buffering required as we're not reading concurrently. - input := make(chan []byte, fuzzLen) - err = generateRandomEntries(w, input) - testutil.Ok(t, err) - close(input) - - err = w.Close() - testutil.Ok(t, err) - - sr, err := allSegments(w.Dir()) - testutil.Ok(t, err) - defer sr.Close() - - reader := fn(sr) - for expected := range input { - testutil.Assert(t, reader.Next(), "expected record: %v", reader.Err()) - testutil.Equals(t, expected, reader.Record(), "read wrong record") - } - testutil.Assert(t, !reader.Next(), "unexpected record") - }) - } -} - -func TestReaderFuzz_Live(t *testing.T) { - logger := testutil.NewLogger(t) - dir, err := ioutil.TempDir("", "wal_fuzz_live") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := NewSize(nil, nil, dir, 128*pageSize) - testutil.Ok(t, err) - defer w.Close() - - // In the background, generate a stream of random records and write them - // to the WAL. - input := make(chan []byte, fuzzLen/10) // buffering required as we sometimes batch WAL writes. - done := make(chan struct{}) - go func() { - err := generateRandomEntries(w, input) - testutil.Ok(t, err) - time.Sleep(100 * time.Millisecond) - close(done) - }() - - // Tail the WAL and compare the results. - m, _, err := w.Segments() - testutil.Ok(t, err) - - seg, err := OpenReadSegment(SegmentName(dir, m)) - testutil.Ok(t, err) - defer seg.Close() - - r := NewLiveReader(logger, seg) - segmentTicker := time.NewTicker(100 * time.Millisecond) - readTicker := time.NewTicker(10 * time.Millisecond) - - readSegment := func(r *LiveReader) bool { - for r.Next() { - rec := r.Record() - expected, ok := <-input - testutil.Assert(t, ok, "unexpected record") - testutil.Equals(t, expected, rec, "record does not match expected") - } - testutil.Assert(t, r.Err() == io.EOF, "expected EOF, got: %v", r.Err()) - return true - } - -outer: - for { - select { - case <-segmentTicker.C: - // check if new segments exist - _, last, err := w.Segments() - testutil.Ok(t, err) - if last <= seg.i { - continue - } - - // read to end of segment. - readSegment(r) - - fi, err := os.Stat(SegmentName(dir, seg.i)) - testutil.Ok(t, err) - testutil.Assert(t, r.Offset() == fi.Size(), "expected to have read whole segment, but read %d of %d", r.Offset(), fi.Size()) - - seg, err = OpenReadSegment(SegmentName(dir, seg.i+1)) - testutil.Ok(t, err) - defer seg.Close() - r = NewLiveReader(logger, seg) - - case <-readTicker.C: - readSegment(r) - - case <-done: - readSegment(r) - break outer - } - } - - testutil.Assert(t, r.Err() == io.EOF, "expected EOF") -} - -func TestLiveReaderCorrupt_ShortFile(t *testing.T) { - // Write a corrupt WAL segment, there is one record of pageSize in length, - // but the segment is only half written. - logger := testutil.NewLogger(t) - dir, err := ioutil.TempDir("", "wal_live_corrupt") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := NewSize(nil, nil, dir, pageSize) - testutil.Ok(t, err) - - rec := make([]byte, pageSize-recordHeaderSize) - _, err = rand.Read(rec) - testutil.Ok(t, err) - - err = w.Log(rec) - testutil.Ok(t, err) - - err = w.Close() - testutil.Ok(t, err) - - segmentFile, err := os.OpenFile(filepath.Join(dir, "00000000"), os.O_RDWR, 0666) - testutil.Ok(t, err) - - err = segmentFile.Truncate(pageSize / 2) - testutil.Ok(t, err) - - err = segmentFile.Close() - testutil.Ok(t, err) - - // Try and LiveReader it. - m, _, err := w.Segments() - testutil.Ok(t, err) - - seg, err := OpenReadSegment(SegmentName(dir, m)) - testutil.Ok(t, err) - defer seg.Close() - - r := NewLiveReader(logger, seg) - testutil.Assert(t, r.Next() == false, "expected no records") - testutil.Assert(t, r.Err() == io.EOF, "expected error, got: %v", r.Err()) -} - -func TestLiveReaderCorrupt_RecordTooLongAndShort(t *testing.T) { - // Write a corrupt WAL segment, when record len > page size. - logger := testutil.NewLogger(t) - dir, err := ioutil.TempDir("", "wal_live_corrupt") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := NewSize(nil, nil, dir, pageSize*2) - testutil.Ok(t, err) - - rec := make([]byte, pageSize-recordHeaderSize) - _, err = rand.Read(rec) - testutil.Ok(t, err) - - err = w.Log(rec) - testutil.Ok(t, err) - - err = w.Close() - testutil.Ok(t, err) - - segmentFile, err := os.OpenFile(filepath.Join(dir, "00000000"), os.O_RDWR, 0666) - testutil.Ok(t, err) - - // Override the record length - buf := make([]byte, 3) - buf[0] = byte(recFull) - binary.BigEndian.PutUint16(buf[1:], 0xFFFF) - _, err = segmentFile.WriteAt(buf, 0) - testutil.Ok(t, err) - - err = segmentFile.Close() - testutil.Ok(t, err) - - // Try and LiveReader it. - m, _, err := w.Segments() - testutil.Ok(t, err) - - seg, err := OpenReadSegment(SegmentName(dir, m)) - testutil.Ok(t, err) - defer seg.Close() - - r := NewLiveReader(logger, seg) - testutil.Assert(t, r.Next() == false, "expected no records") - testutil.Assert(t, r.Err().Error() == "record length greater than a single page: 65542 > 32768", "expected error, got: %v", r.Err()) -} - -func TestReaderData(t *testing.T) { - dir := os.Getenv("WALDIR") - if dir == "" { - return - } - - for name, fn := range readerConstructors { - t.Run(name, func(t *testing.T) { - w, err := New(nil, nil, dir) - testutil.Ok(t, err) - - sr, err := allSegments(dir) - testutil.Ok(t, err) - - reader := fn(sr) - for reader.Next() { - } - testutil.Ok(t, reader.Err()) - - err = w.Repair(reader.Err()) - testutil.Ok(t, err) - }) - } -} diff --git a/vendor/github.com/prometheus/tsdb/wal/wal.go b/vendor/github.com/prometheus/tsdb/wal/wal.go deleted file mode 100644 index 0001147a..00000000 --- a/vendor/github.com/prometheus/tsdb/wal/wal.go +++ /dev/null @@ -1,764 +0,0 @@ -// Copyright 2017 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package wal - -import ( - "bufio" - "encoding/binary" - "fmt" - "hash/crc32" - "io" - "os" - "path/filepath" - "sort" - "strconv" - "sync" - "time" - - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" - "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/tsdb/fileutil" -) - -const ( - DefaultSegmentSize = 128 * 1024 * 1024 // 128 MB - pageSize = 32 * 1024 // 32KB - recordHeaderSize = 7 -) - -// The table gets initialized with sync.Once but may still cause a race -// with any other use of the crc32 package anywhere. Thus we initialize it -// before. -var castagnoliTable = crc32.MakeTable(crc32.Castagnoli) - -// page is an in memory buffer used to batch disk writes. -// Records bigger than the page size are split and flushed separately. -// A flush is triggered when a single records doesn't fit the page size or -// when the next record can't fit in the remaining free page space. -type page struct { - alloc int - flushed int - buf [pageSize]byte -} - -func (p *page) remaining() int { - return pageSize - p.alloc -} - -func (p *page) full() bool { - return pageSize-p.alloc < recordHeaderSize -} - -// Segment represents a segment file. -type Segment struct { - *os.File - dir string - i int -} - -// Index returns the index of the segment. -func (s *Segment) Index() int { - return s.i -} - -// Dir returns the directory of the segment. -func (s *Segment) Dir() string { - return s.dir -} - -// CorruptionErr is an error that's returned when corruption is encountered. -type CorruptionErr struct { - Dir string - Segment int - Offset int64 - Err error -} - -func (e *CorruptionErr) Error() string { - if e.Segment < 0 { - return fmt.Sprintf("corruption after %d bytes: %s", e.Offset, e.Err) - } - return fmt.Sprintf("corruption in segment %s at %d: %s", SegmentName(e.Dir, e.Segment), e.Offset, e.Err) -} - -// OpenWriteSegment opens segment k in dir. The returned segment is ready for new appends. -func OpenWriteSegment(logger log.Logger, dir string, k int) (*Segment, error) { - segName := SegmentName(dir, k) - f, err := os.OpenFile(segName, os.O_WRONLY|os.O_APPEND, 0666) - if err != nil { - return nil, err - } - stat, err := f.Stat() - if err != nil { - f.Close() - return nil, err - } - // If the last page is torn, fill it with zeros. - // In case it was torn after all records were written successfully, this - // will just pad the page and everything will be fine. - // If it was torn mid-record, a full read (which the caller should do anyway - // to ensure integrity) will detect it as a corruption by the end. - if d := stat.Size() % pageSize; d != 0 { - level.Warn(logger).Log("msg", "last page of the wal is torn, filling it with zeros", "segment", segName) - if _, err := f.Write(make([]byte, pageSize-d)); err != nil { - f.Close() - return nil, errors.Wrap(err, "zero-pad torn page") - } - } - return &Segment{File: f, i: k, dir: dir}, nil -} - -// CreateSegment creates a new segment k in dir. -func CreateSegment(dir string, k int) (*Segment, error) { - f, err := os.OpenFile(SegmentName(dir, k), os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) - if err != nil { - return nil, err - } - return &Segment{File: f, i: k, dir: dir}, nil -} - -// OpenReadSegment opens the segment with the given filename. -func OpenReadSegment(fn string) (*Segment, error) { - k, err := strconv.Atoi(filepath.Base(fn)) - if err != nil { - return nil, errors.New("not a valid filename") - } - f, err := os.Open(fn) - if err != nil { - return nil, err - } - return &Segment{File: f, i: k, dir: filepath.Dir(fn)}, nil -} - -// WAL is a write ahead log that stores records in segment files. -// It must be read from start to end once before logging new data. -// If an error occurs during read, the repair procedure must be called -// before it's safe to do further writes. -// -// Segments are written to in pages of 32KB, with records possibly split -// across page boundaries. -// Records are never split across segments to allow full segments to be -// safely truncated. It also ensures that torn writes never corrupt records -// beyond the most recent segment. -type WAL struct { - dir string - logger log.Logger - segmentSize int - mtx sync.RWMutex - segment *Segment // active segment - donePages int // pages written to the segment - page *page // active page - stopc chan chan struct{} - actorc chan func() - closed bool // To allow calling Close() more than once without blocking. - - fsyncDuration prometheus.Summary - pageFlushes prometheus.Counter - pageCompletions prometheus.Counter - truncateFail prometheus.Counter - truncateTotal prometheus.Counter -} - -// New returns a new WAL over the given directory. -func New(logger log.Logger, reg prometheus.Registerer, dir string) (*WAL, error) { - return NewSize(logger, reg, dir, DefaultSegmentSize) -} - -// NewSize returns a new WAL over the given directory. -// New segments are created with the specified size. -func NewSize(logger log.Logger, reg prometheus.Registerer, dir string, segmentSize int) (*WAL, error) { - if segmentSize%pageSize != 0 { - return nil, errors.New("invalid segment size") - } - if err := os.MkdirAll(dir, 0777); err != nil { - return nil, errors.Wrap(err, "create dir") - } - if logger == nil { - logger = log.NewNopLogger() - } - w := &WAL{ - dir: dir, - logger: logger, - segmentSize: segmentSize, - page: &page{}, - actorc: make(chan func(), 100), - stopc: make(chan chan struct{}), - } - w.fsyncDuration = prometheus.NewSummary(prometheus.SummaryOpts{ - Name: "prometheus_tsdb_wal_fsync_duration_seconds", - Help: "Duration of WAL fsync.", - }) - w.pageFlushes = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_page_flushes_total", - Help: "Total number of page flushes.", - }) - w.pageCompletions = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_completed_pages_total", - Help: "Total number of completed pages.", - }) - w.truncateFail = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_truncations_failed_total", - Help: "Total number of WAL truncations that failed.", - }) - w.truncateTotal = prometheus.NewCounter(prometheus.CounterOpts{ - Name: "prometheus_tsdb_wal_truncations_total", - Help: "Total number of WAL truncations attempted.", - }) - if reg != nil { - reg.MustRegister(w.fsyncDuration, w.pageFlushes, w.pageCompletions, w.truncateFail, w.truncateTotal) - } - - _, j, err := w.Segments() - if err != nil { - return nil, errors.Wrap(err, "get segment range") - } - // Fresh dir, no segments yet. - if j == -1 { - segment, err := CreateSegment(w.dir, 0) - if err != nil { - return nil, err - } - - if err := w.setSegment(segment); err != nil { - return nil, err - } - } else { - segment, err := OpenWriteSegment(logger, w.dir, j) - if err != nil { - return nil, err - } - - if err := w.setSegment(segment); err != nil { - return nil, err - } - } - go w.run() - - return w, nil -} - -// Dir returns the directory of the WAL. -func (w *WAL) Dir() string { - return w.dir -} - -func (w *WAL) run() { -Loop: - for { - select { - case f := <-w.actorc: - f() - case donec := <-w.stopc: - close(w.actorc) - defer close(donec) - break Loop - } - } - // Drain and process any remaining functions. - for f := range w.actorc { - f() - } -} - -// Repair attempts to repair the WAL based on the error. -// It discards all data after the corruption. -func (w *WAL) Repair(origErr error) error { - // We could probably have a mode that only discards torn records right around - // the corruption to preserve as data much as possible. - // But that's not generally applicable if the records have any kind of causality. - // Maybe as an extra mode in the future if mid-WAL corruptions become - // a frequent concern. - err := errors.Cause(origErr) // So that we can pick up errors even if wrapped. - - cerr, ok := err.(*CorruptionErr) - if !ok { - return errors.Wrap(origErr, "cannot handle error") - } - if cerr.Segment < 0 { - return errors.New("corruption error does not specify position") - } - - level.Warn(w.logger).Log("msg", "starting corruption repair", - "segment", cerr.Segment, "offset", cerr.Offset) - - // All segments behind the corruption can no longer be used. - segs, err := listSegments(w.dir) - if err != nil { - return errors.Wrap(err, "list segments") - } - level.Warn(w.logger).Log("msg", "deleting all segments newer than corrupted segment", "segment", cerr.Segment) - - for _, s := range segs { - if w.segment.i == s.index { - // The active segment needs to be removed, - // close it first (Windows!). Can be closed safely - // as we set the current segment to repaired file - // below. - if err := w.segment.Close(); err != nil { - return errors.Wrap(err, "close active segment") - } - } - if s.index <= cerr.Segment { - continue - } - if err := os.Remove(filepath.Join(w.dir, s.name)); err != nil { - return errors.Wrapf(err, "delete segment:%v", s.index) - } - } - // Regardless of the corruption offset, no record reaches into the previous segment. - // So we can safely repair the WAL by removing the segment and re-inserting all - // its records up to the corruption. - level.Warn(w.logger).Log("msg", "rewrite corrupted segment", "segment", cerr.Segment) - - fn := SegmentName(w.dir, cerr.Segment) - tmpfn := fn + ".repair" - - if err := fileutil.Rename(fn, tmpfn); err != nil { - return err - } - // Create a clean segment and make it the active one. - s, err := CreateSegment(w.dir, cerr.Segment) - if err != nil { - return err - } - if err := w.setSegment(s); err != nil { - return err - } - - f, err := os.Open(tmpfn) - if err != nil { - return errors.Wrap(err, "open segment") - } - defer f.Close() - - r := NewReader(bufio.NewReader(f)) - - for r.Next() { - // Add records only up to the where the error was. - if r.Offset() >= cerr.Offset { - break - } - if err := w.Log(r.Record()); err != nil { - return errors.Wrap(err, "insert record") - } - } - // We expect an error here from r.Err(), so nothing to handle. - - // We explicitly close even when there is a defer for Windows to be - // able to delete it. The defer is in place to close it in-case there - // are errors above. - if err := f.Close(); err != nil { - return errors.Wrap(err, "close corrupted file") - } - if err := os.Remove(tmpfn); err != nil { - return errors.Wrap(err, "delete corrupted segment") - } - return nil -} - -// SegmentName builds a segment name for the directory. -func SegmentName(dir string, i int) string { - return filepath.Join(dir, fmt.Sprintf("%08d", i)) -} - -// nextSegment creates the next segment and closes the previous one. -func (w *WAL) nextSegment() error { - // Only flush the current page if it actually holds data. - if w.page.alloc > 0 { - if err := w.flushPage(true); err != nil { - return err - } - } - next, err := CreateSegment(w.dir, w.segment.Index()+1) - if err != nil { - return errors.Wrap(err, "create new segment file") - } - prev := w.segment - if err := w.setSegment(next); err != nil { - return err - } - - // Don't block further writes by fsyncing the last segment. - w.actorc <- func() { - if err := w.fsync(prev); err != nil { - level.Error(w.logger).Log("msg", "sync previous segment", "err", err) - } - if err := prev.Close(); err != nil { - level.Error(w.logger).Log("msg", "close previous segment", "err", err) - } - } - return nil -} - -func (w *WAL) setSegment(segment *Segment) error { - w.segment = segment - - // Correctly initialize donePages. - stat, err := segment.Stat() - if err != nil { - return err - } - w.donePages = int(stat.Size() / pageSize) - - return nil -} - -// flushPage writes the new contents of the page to disk. If no more records will fit into -// the page, the remaining bytes will be set to zero and a new page will be started. -// If clear is true, this is enforced regardless of how many bytes are left in the page. -func (w *WAL) flushPage(clear bool) error { - w.pageFlushes.Inc() - - p := w.page - clear = clear || p.full() - - // No more data will fit into the page. Enqueue and clear it. - if clear { - p.alloc = pageSize // Write till end of page. - w.pageCompletions.Inc() - } - n, err := w.segment.Write(p.buf[p.flushed:p.alloc]) - if err != nil { - return err - } - p.flushed += n - - // We flushed an entire page, prepare a new one. - if clear { - for i := range p.buf { - p.buf[i] = 0 - } - p.alloc = 0 - p.flushed = 0 - w.donePages++ - } - return nil -} - -type recType uint8 - -const ( - recPageTerm recType = 0 // Rest of page is empty. - recFull recType = 1 // Full record. - recFirst recType = 2 // First fragment of a record. - recMiddle recType = 3 // Middle fragments of a record. - recLast recType = 4 // Final fragment of a record. -) - -func (t recType) String() string { - switch t { - case recPageTerm: - return "zero" - case recFull: - return "full" - case recFirst: - return "first" - case recMiddle: - return "middle" - case recLast: - return "last" - default: - return "" - } -} - -func (w *WAL) pagesPerSegment() int { - return w.segmentSize / pageSize -} - -// Log writes the records into the log. -// Multiple records can be passed at once to reduce writes and increase throughput. -func (w *WAL) Log(recs ...[]byte) error { - w.mtx.Lock() - defer w.mtx.Unlock() - // Callers could just implement their own list record format but adding - // a bit of extra logic here frees them from that overhead. - for i, r := range recs { - if err := w.log(r, i == len(recs)-1); err != nil { - return err - } - } - return nil -} - -// log writes rec to the log and forces a flush of the current page if its -// the final record of a batch, the record is bigger than the page size or -// the current page is full. -func (w *WAL) log(rec []byte, final bool) error { - // If the record is too big to fit within the active page in the current - // segment, terminate the active segment and advance to the next one. - // This ensures that records do not cross segment boundaries. - left := w.page.remaining() - recordHeaderSize // Free space in the active page. - left += (pageSize - recordHeaderSize) * (w.pagesPerSegment() - w.donePages - 1) // Free pages in the active segment. - - if len(rec) > left { - if err := w.nextSegment(); err != nil { - return err - } - } - - // Populate as many pages as necessary to fit the record. - // Be careful to always do one pass to ensure we write zero-length records. - for i := 0; i == 0 || len(rec) > 0; i++ { - p := w.page - - // Find how much of the record we can fit into the page. - var ( - l = min(len(rec), (pageSize-p.alloc)-recordHeaderSize) - part = rec[:l] - buf = p.buf[p.alloc:] - typ recType - ) - - switch { - case i == 0 && len(part) == len(rec): - typ = recFull - case len(part) == len(rec): - typ = recLast - case i == 0: - typ = recFirst - default: - typ = recMiddle - } - - buf[0] = byte(typ) - crc := crc32.Checksum(part, castagnoliTable) - binary.BigEndian.PutUint16(buf[1:], uint16(len(part))) - binary.BigEndian.PutUint32(buf[3:], crc) - - copy(buf[recordHeaderSize:], part) - p.alloc += len(part) + recordHeaderSize - - // By definition when a record is split it means its size is bigger than - // the page boundary so the current page would be full and needs to be flushed. - // On contrary if we wrote a full record, we can fit more records of the batch - // into the page before flushing it. - if final || typ != recFull || w.page.full() { - if err := w.flushPage(false); err != nil { - return err - } - } - rec = rec[l:] - } - return nil -} - -// Segments returns the range [first, n] of currently existing segments. -// If no segments are found, first and n are -1. -func (w *WAL) Segments() (first, last int, err error) { - refs, err := listSegments(w.dir) - if err != nil { - return 0, 0, err - } - if len(refs) == 0 { - return -1, -1, nil - } - return refs[0].index, refs[len(refs)-1].index, nil -} - -// Truncate drops all segments before i. -func (w *WAL) Truncate(i int) (err error) { - w.truncateTotal.Inc() - defer func() { - if err != nil { - w.truncateFail.Inc() - } - }() - refs, err := listSegments(w.dir) - if err != nil { - return err - } - for _, r := range refs { - if r.index >= i { - break - } - if err = os.Remove(filepath.Join(w.dir, r.name)); err != nil { - return err - } - } - return nil -} - -func (w *WAL) fsync(f *Segment) error { - start := time.Now() - err := f.File.Sync() - w.fsyncDuration.Observe(time.Since(start).Seconds()) - return err -} - -// Close flushes all writes and closes active segment. -func (w *WAL) Close() (err error) { - w.mtx.Lock() - defer w.mtx.Unlock() - - if w.closed { - return nil - } - - // Flush the last page and zero out all its remaining size. - // We must not flush an empty page as it would falsely signal - // the segment is done if we start writing to it again after opening. - if w.page.alloc > 0 { - if err := w.flushPage(true); err != nil { - return err - } - } - - donec := make(chan struct{}) - w.stopc <- donec - <-donec - - if err = w.fsync(w.segment); err != nil { - level.Error(w.logger).Log("msg", "sync previous segment", "err", err) - } - if err := w.segment.Close(); err != nil { - level.Error(w.logger).Log("msg", "close previous segment", "err", err) - } - w.closed = true - return nil -} - -type segmentRef struct { - name string - index int -} - -func listSegments(dir string) (refs []segmentRef, err error) { - files, err := fileutil.ReadDir(dir) - if err != nil { - return nil, err - } - var last int - for _, fn := range files { - k, err := strconv.Atoi(fn) - if err != nil { - continue - } - if len(refs) > 0 && k > last+1 { - return nil, errors.New("segments are not sequential") - } - refs = append(refs, segmentRef{name: fn, index: k}) - last = k - } - sort.Slice(refs, func(i, j int) bool { - return refs[i].index < refs[j].index - }) - return refs, nil -} - -// SegmentRange groups segments by the directory and the first and last index it includes. -type SegmentRange struct { - Dir string - First, Last int -} - -// NewSegmentsReader returns a new reader over all segments in the directory. -func NewSegmentsReader(dir string) (io.ReadCloser, error) { - return NewSegmentsRangeReader(SegmentRange{dir, -1, -1}) -} - -// NewSegmentsRangeReader returns a new reader over the given WAL segment ranges. -// If first or last are -1, the range is open on the respective end. -func NewSegmentsRangeReader(sr ...SegmentRange) (io.ReadCloser, error) { - var segs []*Segment - - for _, sgmRange := range sr { - refs, err := listSegments(sgmRange.Dir) - if err != nil { - return nil, errors.Wrapf(err, "list segment in dir:%v", sgmRange.Dir) - } - - for _, r := range refs { - if sgmRange.First >= 0 && r.index < sgmRange.First { - continue - } - if sgmRange.Last >= 0 && r.index > sgmRange.Last { - break - } - s, err := OpenReadSegment(filepath.Join(sgmRange.Dir, r.name)) - if err != nil { - return nil, errors.Wrapf(err, "open segment:%v in dir:%v", r.name, sgmRange.Dir) - } - segs = append(segs, s) - } - } - return newSegmentBufReader(segs...), nil -} - -// segmentBufReader is a buffered reader that reads in multiples of pages. -// The main purpose is that we are able to track segment and offset for -// corruption reporting. We have to be careful not to increment curr too -// early, as it is used by Reader.Err() to tell Repair which segment is corrupt. -// As such we pad the end of non-page align segments with zeros. -type segmentBufReader struct { - buf *bufio.Reader - segs []*Segment - cur int // Index into segs. - off int // Offset of read data into current segment. -} - -func newSegmentBufReader(segs ...*Segment) *segmentBufReader { - return &segmentBufReader{ - buf: bufio.NewReaderSize(segs[0], 16*pageSize), - segs: segs, - } -} - -func (r *segmentBufReader) Close() (err error) { - for _, s := range r.segs { - if e := s.Close(); e != nil { - err = e - } - } - return err -} - -// Read implements io.Reader. -func (r *segmentBufReader) Read(b []byte) (n int, err error) { - n, err = r.buf.Read(b) - r.off += n - - // If we succeeded, or hit a non-EOF, we can stop. - if err == nil || err != io.EOF { - return n, err - } - - // We hit EOF; fake out zero padding at the end of short segments, so we - // don't increment curr too early and report the wrong segment as corrupt. - if r.off%pageSize != 0 { - i := 0 - for ; n+i < len(b) && (r.off+i)%pageSize != 0; i++ { - b[n+i] = 0 - } - - // Return early, even if we didn't fill b. - r.off += i - return n + i, nil - } - - // There is no more deta left in the curr segment and there are no more - // segments left. Return EOF. - if r.cur+1 >= len(r.segs) { - return n, io.EOF - } - - // Move to next segment. - r.cur++ - r.off = 0 - r.buf.Reset(r.segs[r.cur]) - return n, nil -} diff --git a/vendor/github.com/prometheus/tsdb/wal/wal_test.go b/vendor/github.com/prometheus/tsdb/wal/wal_test.go deleted file mode 100644 index e7b893a3..00000000 --- a/vendor/github.com/prometheus/tsdb/wal/wal_test.go +++ /dev/null @@ -1,360 +0,0 @@ -// Copyright 2017 The Prometheus Authors - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package wal - -import ( - "bytes" - "fmt" - "io/ioutil" - "math/rand" - "os" - "path/filepath" - "testing" - - "github.com/prometheus/tsdb/testutil" -) - -func TestWAL_Repair(t *testing.T) { - for name, test := range map[string]struct { - corrSgm int // Which segment to corrupt. - corrFunc func(f *os.File) // Func that applies the corruption. - intactRecs int // Total expected records left after the repair. - }{ - "torn_last_record": { - 2, - func(f *os.File) { - _, err := f.Seek(pageSize*2, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte{byte(recFirst)}) - testutil.Ok(t, err) - }, - 8, - }, - // Ensures that the page buffer is big enough to fit - // an entire page size without panicing. - // https://github.com/prometheus/tsdb/pull/414 - "bad_header": { - 1, - func(f *os.File) { - _, err := f.Seek(pageSize, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte{byte(recPageTerm)}) - testutil.Ok(t, err) - }, - 4, - }, - "bad_fragment_sequence": { - 1, - func(f *os.File) { - _, err := f.Seek(pageSize, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte{byte(recLast)}) - testutil.Ok(t, err) - }, - 4, - }, - "bad_fragment_flag": { - 1, - func(f *os.File) { - _, err := f.Seek(pageSize, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte{123}) - testutil.Ok(t, err) - }, - 4, - }, - "bad_checksum": { - 1, - func(f *os.File) { - _, err := f.Seek(pageSize+4, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte{0}) - testutil.Ok(t, err) - }, - 4, - }, - "bad_length": { - 1, - func(f *os.File) { - _, err := f.Seek(pageSize+2, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte{0}) - testutil.Ok(t, err) - }, - 4, - }, - "bad_content": { - 1, - func(f *os.File) { - _, err := f.Seek(pageSize+100, 0) - testutil.Ok(t, err) - _, err = f.Write([]byte("beef")) - testutil.Ok(t, err) - }, - 4, - }, - } { - t.Run(name, func(t *testing.T) { - dir, err := ioutil.TempDir("", "wal_repair") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - // We create 3 segments with 3 records each and - // then corrupt a given record in a given segment. - // As a result we want a repaired WAL with given intact records. - segSize := 3 * pageSize - w, err := NewSize(nil, nil, dir, segSize) - testutil.Ok(t, err) - - var records [][]byte - - for i := 1; i <= 9; i++ { - b := make([]byte, pageSize-recordHeaderSize) - b[0] = byte(i) - records = append(records, b) - testutil.Ok(t, w.Log(b)) - } - testutil.Ok(t, w.Close()) - - f, err := os.OpenFile(SegmentName(dir, test.corrSgm), os.O_RDWR, 0666) - testutil.Ok(t, err) - - // Apply corruption function. - test.corrFunc(f) - - testutil.Ok(t, f.Close()) - - w, err = NewSize(nil, nil, dir, segSize) - testutil.Ok(t, err) - defer w.Close() - - sr, err := NewSegmentsReader(dir) - testutil.Ok(t, err) - r := NewReader(sr) - - for r.Next() { - } - testutil.NotOk(t, r.Err()) - testutil.Ok(t, sr.Close()) - - testutil.Ok(t, w.Repair(r.Err())) - sr, err = NewSegmentsReader(dir) - testutil.Ok(t, err) - defer sr.Close() - r = NewReader(sr) - - var result [][]byte - for r.Next() { - var b []byte - result = append(result, append(b, r.Record()...)) - } - testutil.Ok(t, r.Err()) - testutil.Equals(t, test.intactRecs, len(result), "Wrong number of intact records") - - for i, r := range result { - if !bytes.Equal(records[i], r) { - t.Fatalf("record %d diverges: want %x, got %x", i, records[i][:10], r[:10]) - } - } - - // Make sure the last segment is the corrupt segment. - _, last, err := w.Segments() - testutil.Ok(t, err) - testutil.Equals(t, test.corrSgm, last) - }) - } -} - -// TestCorruptAndCarryOn writes a multi-segment WAL; corrupts the first segment and -// ensures that an error during reading that segment are correctly repaired before -// moving to write more records to the WAL. -func TestCorruptAndCarryOn(t *testing.T) { - dir, err := ioutil.TempDir("", "wal_repair") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - var ( - logger = testutil.NewLogger(t) - segmentSize = pageSize * 3 - recordSize = (pageSize / 3) - recordHeaderSize - ) - - // Produce a WAL with a two segments of 3 pages with 3 records each, - // so when we truncate the file we're guaranteed to split a record. - { - w, err := NewSize(logger, nil, dir, segmentSize) - testutil.Ok(t, err) - - for i := 0; i < 18; i++ { - buf := make([]byte, recordSize) - _, err := rand.Read(buf) - testutil.Ok(t, err) - - err = w.Log(buf) - testutil.Ok(t, err) - } - - err = w.Close() - testutil.Ok(t, err) - } - - // Check all the segments are the correct size. - { - segments, err := listSegments(dir) - testutil.Ok(t, err) - for _, segment := range segments { - f, err := os.OpenFile(filepath.Join(dir, fmt.Sprintf("%08d", segment.index)), os.O_RDONLY, 0666) - testutil.Ok(t, err) - - fi, err := f.Stat() - testutil.Ok(t, err) - - t.Log("segment", segment.index, "size", fi.Size()) - testutil.Equals(t, int64(segmentSize), fi.Size()) - - err = f.Close() - testutil.Ok(t, err) - } - } - - // Truncate the first file, splitting the middle record in the second - // page in half, leaving 4 valid records. - { - f, err := os.OpenFile(filepath.Join(dir, fmt.Sprintf("%08d", 0)), os.O_RDWR, 0666) - testutil.Ok(t, err) - - fi, err := f.Stat() - testutil.Ok(t, err) - testutil.Equals(t, int64(segmentSize), fi.Size()) - - err = f.Truncate(int64(segmentSize / 2)) - testutil.Ok(t, err) - - err = f.Close() - testutil.Ok(t, err) - } - - // Now try and repair this WAL, and write 5 more records to it. - { - sr, err := NewSegmentsReader(dir) - testutil.Ok(t, err) - - reader := NewReader(sr) - i := 0 - for ; i < 4 && reader.Next(); i++ { - testutil.Equals(t, recordSize, len(reader.Record())) - } - testutil.Equals(t, 4, i, "not enough records") - testutil.Assert(t, !reader.Next(), "unexpected record") - - corruptionErr := reader.Err() - testutil.Assert(t, corruptionErr != nil, "expected error") - - err = sr.Close() - testutil.Ok(t, err) - - w, err := NewSize(logger, nil, dir, segmentSize) - testutil.Ok(t, err) - - err = w.Repair(corruptionErr) - testutil.Ok(t, err) - - for i := 0; i < 5; i++ { - buf := make([]byte, recordSize) - _, err := rand.Read(buf) - testutil.Ok(t, err) - - err = w.Log(buf) - testutil.Ok(t, err) - } - - err = w.Close() - testutil.Ok(t, err) - } - - // Replay the WAL. Should get 9 records. - { - sr, err := NewSegmentsReader(dir) - testutil.Ok(t, err) - - reader := NewReader(sr) - i := 0 - for ; i < 9 && reader.Next(); i++ { - testutil.Equals(t, recordSize, len(reader.Record())) - } - testutil.Equals(t, 9, i, "wrong number of records") - testutil.Assert(t, !reader.Next(), "unexpected record") - testutil.Equals(t, nil, reader.Err()) - sr.Close() - } -} - -func BenchmarkWAL_LogBatched(b *testing.B) { - dir, err := ioutil.TempDir("", "bench_logbatch") - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, os.RemoveAll(dir)) - }() - - w, err := New(nil, nil, "testdir") - testutil.Ok(b, err) - defer w.Close() - - var buf [2048]byte - var recs [][]byte - b.SetBytes(2048) - - for i := 0; i < b.N; i++ { - recs = append(recs, buf[:]) - if len(recs) < 1000 { - continue - } - err := w.Log(recs...) - testutil.Ok(b, err) - recs = recs[:0] - } - // Stop timer to not count fsync time on close. - // If it's counted batched vs. single benchmarks are very similar but - // do not show burst throughput well. - b.StopTimer() -} - -func BenchmarkWAL_Log(b *testing.B) { - dir, err := ioutil.TempDir("", "bench_logsingle") - testutil.Ok(b, err) - defer func() { - testutil.Ok(b, os.RemoveAll(dir)) - }() - - w, err := New(nil, nil, "testdir") - testutil.Ok(b, err) - defer w.Close() - - var buf [2048]byte - b.SetBytes(2048) - - for i := 0; i < b.N; i++ { - err := w.Log(buf[:]) - testutil.Ok(b, err) - } - // Stop timer to not count fsync time on close. - // If it's counted batched vs. single benchmarks are very similar but - // do not show burst throughput well. - b.StopTimer() -} diff --git a/vendor/github.com/prometheus/tsdb/wal_test.go b/vendor/github.com/prometheus/tsdb/wal_test.go deleted file mode 100644 index 7b9f9652..00000000 --- a/vendor/github.com/prometheus/tsdb/wal_test.go +++ /dev/null @@ -1,566 +0,0 @@ -// Copyright 2017 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// +build !windows - -package tsdb - -import ( - "encoding/binary" - "io" - "io/ioutil" - "math/rand" - "os" - "path" - "path/filepath" - "testing" - "time" - - "github.com/go-kit/kit/log" - "github.com/prometheus/tsdb/fileutil" - "github.com/prometheus/tsdb/labels" - "github.com/prometheus/tsdb/testutil" - "github.com/prometheus/tsdb/wal" -) - -func TestSegmentWAL_cut(t *testing.T) { - tmpdir, err := ioutil.TempDir("", "test_wal_cut") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(tmpdir)) - }() - - // This calls cut() implicitly the first time without a previous tail. - w, err := OpenSegmentWAL(tmpdir, nil, 0, nil) - testutil.Ok(t, err) - - testutil.Ok(t, w.write(WALEntrySeries, 1, []byte("Hello World!!"))) - - testutil.Ok(t, w.cut()) - - // Cutting creates a new file. - testutil.Equals(t, 2, len(w.files)) - - testutil.Ok(t, w.write(WALEntrySeries, 1, []byte("Hello World!!"))) - - testutil.Ok(t, w.Close()) - - for _, of := range w.files { - f, err := os.Open(of.Name()) - testutil.Ok(t, err) - - // Verify header data. - metab := make([]byte, 8) - _, err = f.Read(metab) - testutil.Ok(t, err) - testutil.Equals(t, WALMagic, binary.BigEndian.Uint32(metab[:4])) - testutil.Equals(t, WALFormatDefault, metab[4]) - - // We cannot actually check for correct pre-allocation as it is - // optional per filesystem and handled transparently. - et, flag, b, err := newWALReader(nil, nil).entry(f) - testutil.Ok(t, err) - testutil.Equals(t, WALEntrySeries, et) - testutil.Equals(t, byte(walSeriesSimple), flag) - testutil.Equals(t, []byte("Hello World!!"), b) - } -} - -func TestSegmentWAL_Truncate(t *testing.T) { - const ( - numMetrics = 20000 - batch = 100 - ) - series, err := labels.ReadLabels(filepath.Join("testdata", "20kseries.json"), numMetrics) - testutil.Ok(t, err) - - dir, err := ioutil.TempDir("", "test_wal_log_truncate") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := OpenSegmentWAL(dir, nil, 0, nil) - testutil.Ok(t, err) - w.segmentSize = 10000 - - for i := 0; i < numMetrics; i += batch { - var rs []RefSeries - - for j, s := range series[i : i+batch] { - rs = append(rs, RefSeries{Labels: s, Ref: uint64(i+j) + 1}) - } - err := w.LogSeries(rs) - testutil.Ok(t, err) - } - - // We mark the 2nd half of the files with a min timestamp that should discard - // them from the selection of compactable files. - for i, f := range w.files[len(w.files)/2:] { - f.maxTime = int64(1000 + i) - } - // All series in those files must be preserved regarding of the provided postings list. - boundarySeries := w.files[len(w.files)/2].minSeries - - // We truncate while keeping every 2nd series. - keep := map[uint64]struct{}{} - for i := 1; i <= numMetrics; i += 2 { - keep[uint64(i)] = struct{}{} - } - keepf := func(id uint64) bool { - _, ok := keep[id] - return ok - } - - err = w.Truncate(1000, keepf) - testutil.Ok(t, err) - - var expected []RefSeries - - for i := 1; i <= numMetrics; i++ { - if i%2 == 1 || uint64(i) >= boundarySeries { - expected = append(expected, RefSeries{Ref: uint64(i), Labels: series[i-1]}) - } - } - - // Call Truncate once again to see whether we can read the written file without - // creating a new WAL. - err = w.Truncate(1000, keepf) - testutil.Ok(t, err) - testutil.Ok(t, w.Close()) - - // The same again with a new WAL. - w, err = OpenSegmentWAL(dir, nil, 0, nil) - testutil.Ok(t, err) - - var readSeries []RefSeries - r := w.Reader() - - r.Read(func(s []RefSeries) { - readSeries = append(readSeries, s...) - }, nil, nil) - - testutil.Equals(t, expected, readSeries) -} - -// Symmetrical test of reading and writing to the WAL via its main interface. -func TestSegmentWAL_Log_Restore(t *testing.T) { - const ( - numMetrics = 50 - iterations = 5 - stepSize = 5 - ) - // Generate testing data. It does not make semantical sense but - // for the purpose of this test. - series, err := labels.ReadLabels(filepath.Join("testdata", "20kseries.json"), numMetrics) - testutil.Ok(t, err) - - dir, err := ioutil.TempDir("", "test_wal_log_restore") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - var ( - recordedSeries [][]RefSeries - recordedSamples [][]RefSample - recordedDeletes [][]Stone - ) - var totalSamples int - - // Open WAL a bunch of times, validate all previous data can be read, - // write more data to it, close it. - for k := 0; k < numMetrics; k += numMetrics / iterations { - w, err := OpenSegmentWAL(dir, nil, 0, nil) - testutil.Ok(t, err) - - // Set smaller segment size so we can actually write several files. - w.segmentSize = 1000 * 1000 - - r := w.Reader() - - var ( - resultSeries [][]RefSeries - resultSamples [][]RefSample - resultDeletes [][]Stone - ) - - serf := func(series []RefSeries) { - if len(series) > 0 { - clsets := make([]RefSeries, len(series)) - copy(clsets, series) - resultSeries = append(resultSeries, clsets) - } - } - smplf := func(smpls []RefSample) { - if len(smpls) > 0 { - csmpls := make([]RefSample, len(smpls)) - copy(csmpls, smpls) - resultSamples = append(resultSamples, csmpls) - } - } - - delf := func(stones []Stone) { - if len(stones) > 0 { - cst := make([]Stone, len(stones)) - copy(cst, stones) - resultDeletes = append(resultDeletes, cst) - } - } - - testutil.Ok(t, r.Read(serf, smplf, delf)) - - testutil.Equals(t, recordedSamples, resultSamples) - testutil.Equals(t, recordedSeries, resultSeries) - testutil.Equals(t, recordedDeletes, resultDeletes) - - series := series[k : k+(numMetrics/iterations)] - - // Insert in batches and generate different amounts of samples for each. - for i := 0; i < len(series); i += stepSize { - var samples []RefSample - var stones []Stone - - for j := 0; j < i*10; j++ { - samples = append(samples, RefSample{ - Ref: uint64(j % 10000), - T: int64(j * 2), - V: rand.Float64(), - }) - } - - for j := 0; j < i*20; j++ { - ts := rand.Int63() - stones = append(stones, Stone{rand.Uint64(), Intervals{{ts, ts + rand.Int63n(10000)}}}) - } - - lbls := series[i : i+stepSize] - series := make([]RefSeries, 0, len(series)) - for j, l := range lbls { - series = append(series, RefSeries{ - Ref: uint64(i + j), - Labels: l, - }) - } - - testutil.Ok(t, w.LogSeries(series)) - testutil.Ok(t, w.LogSamples(samples)) - testutil.Ok(t, w.LogDeletes(stones)) - - if len(lbls) > 0 { - recordedSeries = append(recordedSeries, series) - } - if len(samples) > 0 { - recordedSamples = append(recordedSamples, samples) - totalSamples += len(samples) - } - if len(stones) > 0 { - recordedDeletes = append(recordedDeletes, stones) - } - } - - testutil.Ok(t, w.Close()) - } -} - -func TestWALRestoreCorrupted_invalidSegment(t *testing.T) { - dir, err := ioutil.TempDir("", "test_wal_log_restore") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - wal, err := OpenSegmentWAL(dir, nil, 0, nil) - testutil.Ok(t, err) - - _, err = wal.createSegmentFile(filepath.Join(dir, "000000")) - testutil.Ok(t, err) - f, err := wal.createSegmentFile(filepath.Join(dir, "000001")) - testutil.Ok(t, err) - f2, err := wal.createSegmentFile(filepath.Join(dir, "000002")) - testutil.Ok(t, err) - testutil.Ok(t, f2.Close()) - - // Make header of second segment invalid. - _, err = f.WriteAt([]byte{1, 2, 3, 4}, 0) - testutil.Ok(t, err) - testutil.Ok(t, f.Close()) - - testutil.Ok(t, wal.Close()) - - _, err = OpenSegmentWAL(dir, log.NewLogfmtLogger(os.Stderr), 0, nil) - testutil.Ok(t, err) - - fns, err := fileutil.ReadDir(dir) - testutil.Ok(t, err) - testutil.Equals(t, []string{"000000"}, fns) -} - -// Test reading from a WAL that has been corrupted through various means. -func TestWALRestoreCorrupted(t *testing.T) { - cases := []struct { - name string - f func(*testing.T, *SegmentWAL) - }{ - { - name: "truncate_checksum", - f: func(t *testing.T, w *SegmentWAL) { - f, err := os.OpenFile(w.files[0].Name(), os.O_WRONLY, 0666) - testutil.Ok(t, err) - defer f.Close() - - off, err := f.Seek(0, io.SeekEnd) - testutil.Ok(t, err) - - testutil.Ok(t, f.Truncate(off-1)) - }, - }, - { - name: "truncate_body", - f: func(t *testing.T, w *SegmentWAL) { - f, err := os.OpenFile(w.files[0].Name(), os.O_WRONLY, 0666) - testutil.Ok(t, err) - defer f.Close() - - off, err := f.Seek(0, io.SeekEnd) - testutil.Ok(t, err) - - testutil.Ok(t, f.Truncate(off-8)) - }, - }, - { - name: "body_content", - f: func(t *testing.T, w *SegmentWAL) { - f, err := os.OpenFile(w.files[0].Name(), os.O_WRONLY, 0666) - testutil.Ok(t, err) - defer f.Close() - - off, err := f.Seek(0, io.SeekEnd) - testutil.Ok(t, err) - - // Write junk before checksum starts. - _, err = f.WriteAt([]byte{1, 2, 3, 4}, off-8) - testutil.Ok(t, err) - }, - }, - { - name: "checksum", - f: func(t *testing.T, w *SegmentWAL) { - f, err := os.OpenFile(w.files[0].Name(), os.O_WRONLY, 0666) - testutil.Ok(t, err) - defer f.Close() - - off, err := f.Seek(0, io.SeekEnd) - testutil.Ok(t, err) - - // Write junk into checksum - _, err = f.WriteAt([]byte{1, 2, 3, 4}, off-4) - testutil.Ok(t, err) - }, - }, - } - for _, c := range cases { - t.Run(c.name, func(t *testing.T) { - // Generate testing data. It does not make semantical sense but - // for the purpose of this test. - dir, err := ioutil.TempDir("", "test_corrupted") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - w, err := OpenSegmentWAL(dir, nil, 0, nil) - testutil.Ok(t, err) - - testutil.Ok(t, w.LogSamples([]RefSample{{T: 1, V: 2}})) - testutil.Ok(t, w.LogSamples([]RefSample{{T: 2, V: 3}})) - - testutil.Ok(t, w.cut()) - - // Sleep 2 seconds to avoid error where cut and test "cases" function may write or - // truncate the file out of orders as "cases" are not synchronized with cut. - // Hopefully cut will complete by 2 seconds. - time.Sleep(2 * time.Second) - - testutil.Ok(t, w.LogSamples([]RefSample{{T: 3, V: 4}})) - testutil.Ok(t, w.LogSamples([]RefSample{{T: 5, V: 6}})) - - testutil.Ok(t, w.Close()) - - // cut() truncates and fsyncs the first segment async. If it happens after - // the corruption we apply below, the corruption will be overwritten again. - // Fire and forget a sync to avoid flakyness. - w.files[0].Sync() - // Corrupt the second entry in the first file. - // After re-opening we must be able to read the first entry - // and the rest, including the second file, must be truncated for clean further - // writes. - c.f(t, w) - - logger := log.NewLogfmtLogger(os.Stderr) - - w2, err := OpenSegmentWAL(dir, logger, 0, nil) - testutil.Ok(t, err) - - r := w2.Reader() - - serf := func(l []RefSeries) { - testutil.Equals(t, 0, len(l)) - } - - // Weird hack to check order of reads. - i := 0 - samplf := func(s []RefSample) { - if i == 0 { - testutil.Equals(t, []RefSample{{T: 1, V: 2}}, s) - i++ - } else { - testutil.Equals(t, []RefSample{{T: 99, V: 100}}, s) - } - } - - testutil.Ok(t, r.Read(serf, samplf, nil)) - - testutil.Ok(t, w2.LogSamples([]RefSample{{T: 99, V: 100}})) - testutil.Ok(t, w2.Close()) - - // We should see the first valid entry and the new one, everything after - // is truncated. - w3, err := OpenSegmentWAL(dir, logger, 0, nil) - testutil.Ok(t, err) - - r = w3.Reader() - - i = 0 - testutil.Ok(t, r.Read(serf, samplf, nil)) - }) - } -} - -func TestMigrateWAL_Empty(t *testing.T) { - // The migration proecedure must properly deal with a zero-length segment, - // which is valid in the new format. - dir, err := ioutil.TempDir("", "walmigrate") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - wdir := path.Join(dir, "wal") - - // Initialize empty WAL. - w, err := wal.New(nil, nil, wdir) - testutil.Ok(t, err) - testutil.Ok(t, w.Close()) - - testutil.Ok(t, MigrateWAL(nil, wdir)) -} - -func TestMigrateWAL_Fuzz(t *testing.T) { - dir, err := ioutil.TempDir("", "walmigrate") - testutil.Ok(t, err) - defer func() { - testutil.Ok(t, os.RemoveAll(dir)) - }() - - wdir := path.Join(dir, "wal") - - // Should pass if no WAL exists yet. - testutil.Ok(t, MigrateWAL(nil, wdir)) - - oldWAL, err := OpenSegmentWAL(wdir, nil, time.Minute, nil) - testutil.Ok(t, err) - - // Write some data. - testutil.Ok(t, oldWAL.LogSeries([]RefSeries{ - {Ref: 100, Labels: labels.FromStrings("abc", "def", "123", "456")}, - {Ref: 1, Labels: labels.FromStrings("abc", "def2", "1234", "4567")}, - })) - testutil.Ok(t, oldWAL.LogSamples([]RefSample{ - {Ref: 1, T: 100, V: 200}, - {Ref: 2, T: 300, V: 400}, - })) - testutil.Ok(t, oldWAL.LogSeries([]RefSeries{ - {Ref: 200, Labels: labels.FromStrings("xyz", "def", "foo", "bar")}, - })) - testutil.Ok(t, oldWAL.LogSamples([]RefSample{ - {Ref: 3, T: 100, V: 200}, - {Ref: 4, T: 300, V: 400}, - })) - testutil.Ok(t, oldWAL.LogDeletes([]Stone{ - {ref: 1, intervals: []Interval{{100, 200}}}, - })) - - testutil.Ok(t, oldWAL.Close()) - - // Perform migration. - testutil.Ok(t, MigrateWAL(nil, wdir)) - - w, err := wal.New(nil, nil, wdir) - testutil.Ok(t, err) - - // We can properly write some new data after migration. - var enc RecordEncoder - testutil.Ok(t, w.Log(enc.Samples([]RefSample{ - {Ref: 500, T: 1, V: 1}, - }, nil))) - - testutil.Ok(t, w.Close()) - - // Read back all data. - sr, err := wal.NewSegmentsReader(wdir) - testutil.Ok(t, err) - - r := wal.NewReader(sr) - var res []interface{} - var dec RecordDecoder - - for r.Next() { - rec := r.Record() - - switch dec.Type(rec) { - case RecordSeries: - s, err := dec.Series(rec, nil) - testutil.Ok(t, err) - res = append(res, s) - case RecordSamples: - s, err := dec.Samples(rec, nil) - testutil.Ok(t, err) - res = append(res, s) - case RecordTombstones: - s, err := dec.Tombstones(rec, nil) - testutil.Ok(t, err) - res = append(res, s) - default: - t.Fatalf("unknown record type %d", dec.Type(rec)) - } - } - testutil.Ok(t, r.Err()) - - testutil.Equals(t, []interface{}{ - []RefSeries{ - {Ref: 100, Labels: labels.FromStrings("abc", "def", "123", "456")}, - {Ref: 1, Labels: labels.FromStrings("abc", "def2", "1234", "4567")}, - }, - []RefSample{{Ref: 1, T: 100, V: 200}, {Ref: 2, T: 300, V: 400}}, - []RefSeries{ - {Ref: 200, Labels: labels.FromStrings("xyz", "def", "foo", "bar")}, - }, - []RefSample{{Ref: 3, T: 100, V: 200}, {Ref: 4, T: 300, V: 400}}, - []Stone{{ref: 1, intervals: []Interval{{100, 200}}}}, - []RefSample{{Ref: 500, T: 1, V: 1}}, - }, res) - - // Migrating an already migrated WAL shouldn't do anything. - testutil.Ok(t, MigrateWAL(nil, wdir)) -} diff --git a/vendor/github.com/spaolacci/murmur3/.gitignore b/vendor/github.com/spaolacci/murmur3/.gitignore new file mode 100644 index 00000000..00268614 --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/.gitignore @@ -0,0 +1,22 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe diff --git a/vendor/github.com/spaolacci/murmur3/.travis.yml b/vendor/github.com/spaolacci/murmur3/.travis.yml new file mode 100644 index 00000000..9bfca9c8 --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/.travis.yml @@ -0,0 +1,7 @@ +language: go + +go: + - 1.x + - master + +script: go test diff --git a/vendor/github.com/spaolacci/murmur3/LICENSE b/vendor/github.com/spaolacci/murmur3/LICENSE new file mode 100644 index 00000000..2a46fd75 --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/LICENSE @@ -0,0 +1,24 @@ +Copyright 2013, Sébastien Paolacci. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the library nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/spaolacci/murmur3/README.md b/vendor/github.com/spaolacci/murmur3/README.md new file mode 100644 index 00000000..e463678a --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/README.md @@ -0,0 +1,86 @@ +murmur3 +======= + +[![Build Status](https://travis-ci.org/spaolacci/murmur3.svg?branch=master)](https://travis-ci.org/spaolacci/murmur3) + +Native Go implementation of Austin Appleby's third MurmurHash revision (aka +MurmurHash3). + +Reference algorithm has been slightly hacked as to support the streaming mode +required by Go's standard [Hash interface](http://golang.org/pkg/hash/#Hash). + + +Benchmarks +---------- + +Go tip as of 2014-06-12 (i.e almost go1.3), core i7 @ 3.4 Ghz. All runs +include hasher instantiation and sequence finalization. + +
+
+Benchmark32_1        500000000     7.69 ns/op      130.00 MB/s
+Benchmark32_2        200000000     8.83 ns/op      226.42 MB/s
+Benchmark32_4        500000000     7.99 ns/op      500.39 MB/s
+Benchmark32_8        200000000     9.47 ns/op      844.69 MB/s
+Benchmark32_16       100000000     12.1 ns/op     1321.61 MB/s
+Benchmark32_32       100000000     18.3 ns/op     1743.93 MB/s
+Benchmark32_64        50000000     30.9 ns/op     2071.64 MB/s
+Benchmark32_128       50000000     57.6 ns/op     2222.96 MB/s
+Benchmark32_256       20000000      116 ns/op     2188.60 MB/s
+Benchmark32_512       10000000      226 ns/op     2260.59 MB/s
+Benchmark32_1024       5000000      452 ns/op     2263.73 MB/s
+Benchmark32_2048       2000000      891 ns/op     2296.02 MB/s
+Benchmark32_4096       1000000     1787 ns/op     2290.92 MB/s
+Benchmark32_8192        500000     3593 ns/op     2279.68 MB/s
+Benchmark128_1       100000000     26.1 ns/op       38.33 MB/s
+Benchmark128_2       100000000     29.0 ns/op       69.07 MB/s
+Benchmark128_4        50000000     29.8 ns/op      134.17 MB/s
+Benchmark128_8        50000000     31.6 ns/op      252.86 MB/s
+Benchmark128_16      100000000     26.5 ns/op      603.42 MB/s
+Benchmark128_32      100000000     28.6 ns/op     1117.15 MB/s
+Benchmark128_64       50000000     35.5 ns/op     1800.97 MB/s
+Benchmark128_128      50000000     50.9 ns/op     2515.50 MB/s
+Benchmark128_256      20000000     76.9 ns/op     3330.11 MB/s
+Benchmark128_512      20000000      135 ns/op     3769.09 MB/s
+Benchmark128_1024     10000000      250 ns/op     4094.38 MB/s
+Benchmark128_2048      5000000      477 ns/op     4290.75 MB/s
+Benchmark128_4096      2000000      940 ns/op     4353.29 MB/s
+Benchmark128_8192      1000000     1838 ns/op     4455.47 MB/s
+
+
+ + +
+
+benchmark              Go1.0 MB/s    Go1.1 MB/s  speedup    Go1.2 MB/s  speedup    Go1.3 MB/s  speedup
+Benchmark32_1               98.90        118.59    1.20x        114.79    0.97x        130.00    1.13x
+Benchmark32_2              168.04        213.31    1.27x        210.65    0.99x        226.42    1.07x
+Benchmark32_4              414.01        494.19    1.19x        490.29    0.99x        500.39    1.02x
+Benchmark32_8              662.19        836.09    1.26x        836.46    1.00x        844.69    1.01x
+Benchmark32_16             917.46       1304.62    1.42x       1297.63    0.99x       1321.61    1.02x
+Benchmark32_32            1141.93       1737.54    1.52x       1728.24    0.99x       1743.93    1.01x
+Benchmark32_64            1289.47       2039.51    1.58x       2038.20    1.00x       2071.64    1.02x
+Benchmark32_128           1299.23       2097.63    1.61x       2177.13    1.04x       2222.96    1.02x
+Benchmark32_256           1369.90       2202.34    1.61x       2213.15    1.00x       2188.60    0.99x
+Benchmark32_512           1399.56       2255.72    1.61x       2264.49    1.00x       2260.59    1.00x
+Benchmark32_1024          1410.90       2285.82    1.62x       2270.99    0.99x       2263.73    1.00x
+Benchmark32_2048          1422.14       2297.62    1.62x       2269.59    0.99x       2296.02    1.01x
+Benchmark32_4096          1420.53       2307.81    1.62x       2273.43    0.99x       2290.92    1.01x
+Benchmark32_8192          1424.79       2312.87    1.62x       2286.07    0.99x       2279.68    1.00x
+Benchmark128_1               8.32         30.15    3.62x         30.84    1.02x         38.33    1.24x
+Benchmark128_2              16.38         59.72    3.65x         59.37    0.99x         69.07    1.16x
+Benchmark128_4              32.26        112.96    3.50x        114.24    1.01x        134.17    1.17x
+Benchmark128_8              62.68        217.88    3.48x        218.18    1.00x        252.86    1.16x
+Benchmark128_16            128.47        451.57    3.51x        474.65    1.05x        603.42    1.27x
+Benchmark128_32            246.18        910.42    3.70x        871.06    0.96x       1117.15    1.28x
+Benchmark128_64            449.05       1477.64    3.29x       1449.24    0.98x       1800.97    1.24x
+Benchmark128_128           762.61       2222.42    2.91x       2217.30    1.00x       2515.50    1.13x
+Benchmark128_256          1179.92       3005.46    2.55x       2931.55    0.98x       3330.11    1.14x
+Benchmark128_512          1616.51       3590.75    2.22x       3592.08    1.00x       3769.09    1.05x
+Benchmark128_1024         1964.36       3979.67    2.03x       4034.01    1.01x       4094.38    1.01x
+Benchmark128_2048         2225.07       4156.93    1.87x       4244.17    1.02x       4290.75    1.01x
+Benchmark128_4096         2360.15       4299.09    1.82x       4392.35    1.02x       4353.29    0.99x
+Benchmark128_8192         2411.50       4356.84    1.81x       4480.68    1.03x       4455.47    0.99x
+
+
+ diff --git a/vendor/github.com/spaolacci/murmur3/murmur.go b/vendor/github.com/spaolacci/murmur3/murmur.go new file mode 100644 index 00000000..1252cf73 --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/murmur.go @@ -0,0 +1,64 @@ +// Copyright 2013, Sébastien Paolacci. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package murmur3 implements Austin Appleby's non-cryptographic MurmurHash3. + + Reference implementation: + http://code.google.com/p/smhasher/wiki/MurmurHash3 + + History, characteristics and (legacy) perfs: + https://sites.google.com/site/murmurhash/ + https://sites.google.com/site/murmurhash/statistics +*/ +package murmur3 + +type bmixer interface { + bmix(p []byte) (tail []byte) + Size() (n int) + reset() +} + +type digest struct { + clen int // Digested input cumulative length. + tail []byte // 0 to Size()-1 bytes view of `buf'. + buf [16]byte // Expected (but not required) to be Size() large. + seed uint32 // Seed for initializing the hash. + bmixer +} + +func (d *digest) BlockSize() int { return 1 } + +func (d *digest) Write(p []byte) (n int, err error) { + n = len(p) + d.clen += n + + if len(d.tail) > 0 { + // Stick back pending bytes. + nfree := d.Size() - len(d.tail) // nfree ∈ [1, d.Size()-1]. + if nfree < len(p) { + // One full block can be formed. + block := append(d.tail, p[:nfree]...) + p = p[nfree:] + _ = d.bmix(block) // No tail. + } else { + // Tail's buf is large enough to prevent reallocs. + p = append(d.tail, p...) + } + } + + d.tail = d.bmix(p) + + // Keep own copy of the 0 to Size()-1 pending bytes. + nn := copy(d.buf[:], d.tail) + d.tail = d.buf[:nn] + + return n, nil +} + +func (d *digest) Reset() { + d.clen = 0 + d.tail = nil + d.bmixer.reset() +} diff --git a/vendor/github.com/spaolacci/murmur3/murmur128.go b/vendor/github.com/spaolacci/murmur3/murmur128.go new file mode 100644 index 00000000..a4b618b5 --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/murmur128.go @@ -0,0 +1,203 @@ +package murmur3 + +import ( + //"encoding/binary" + "hash" + "unsafe" +) + +const ( + c1_128 = 0x87c37b91114253d5 + c2_128 = 0x4cf5ad432745937f +) + +// Make sure interfaces are correctly implemented. +var ( + _ hash.Hash = new(digest128) + _ Hash128 = new(digest128) + _ bmixer = new(digest128) +) + +// Hash128 represents a 128-bit hasher +// Hack: the standard api doesn't define any Hash128 interface. +type Hash128 interface { + hash.Hash + Sum128() (uint64, uint64) +} + +// digest128 represents a partial evaluation of a 128 bites hash. +type digest128 struct { + digest + h1 uint64 // Unfinalized running hash part 1. + h2 uint64 // Unfinalized running hash part 2. +} + +// New128 returns a 128-bit hasher +func New128() Hash128 { return New128WithSeed(0) } + +// New128WithSeed returns a 128-bit hasher set with explicit seed value +func New128WithSeed(seed uint32) Hash128 { + d := new(digest128) + d.seed = seed + d.bmixer = d + d.Reset() + return d +} + +func (d *digest128) Size() int { return 16 } + +func (d *digest128) reset() { d.h1, d.h2 = uint64(d.seed), uint64(d.seed) } + +func (d *digest128) Sum(b []byte) []byte { + h1, h2 := d.Sum128() + return append(b, + byte(h1>>56), byte(h1>>48), byte(h1>>40), byte(h1>>32), + byte(h1>>24), byte(h1>>16), byte(h1>>8), byte(h1), + + byte(h2>>56), byte(h2>>48), byte(h2>>40), byte(h2>>32), + byte(h2>>24), byte(h2>>16), byte(h2>>8), byte(h2), + ) +} + +func (d *digest128) bmix(p []byte) (tail []byte) { + h1, h2 := d.h1, d.h2 + + nblocks := len(p) / 16 + for i := 0; i < nblocks; i++ { + t := (*[2]uint64)(unsafe.Pointer(&p[i*16])) + k1, k2 := t[0], t[1] + + k1 *= c1_128 + k1 = (k1 << 31) | (k1 >> 33) // rotl64(k1, 31) + k1 *= c2_128 + h1 ^= k1 + + h1 = (h1 << 27) | (h1 >> 37) // rotl64(h1, 27) + h1 += h2 + h1 = h1*5 + 0x52dce729 + + k2 *= c2_128 + k2 = (k2 << 33) | (k2 >> 31) // rotl64(k2, 33) + k2 *= c1_128 + h2 ^= k2 + + h2 = (h2 << 31) | (h2 >> 33) // rotl64(h2, 31) + h2 += h1 + h2 = h2*5 + 0x38495ab5 + } + d.h1, d.h2 = h1, h2 + return p[nblocks*d.Size():] +} + +func (d *digest128) Sum128() (h1, h2 uint64) { + + h1, h2 = d.h1, d.h2 + + var k1, k2 uint64 + switch len(d.tail) & 15 { + case 15: + k2 ^= uint64(d.tail[14]) << 48 + fallthrough + case 14: + k2 ^= uint64(d.tail[13]) << 40 + fallthrough + case 13: + k2 ^= uint64(d.tail[12]) << 32 + fallthrough + case 12: + k2 ^= uint64(d.tail[11]) << 24 + fallthrough + case 11: + k2 ^= uint64(d.tail[10]) << 16 + fallthrough + case 10: + k2 ^= uint64(d.tail[9]) << 8 + fallthrough + case 9: + k2 ^= uint64(d.tail[8]) << 0 + + k2 *= c2_128 + k2 = (k2 << 33) | (k2 >> 31) // rotl64(k2, 33) + k2 *= c1_128 + h2 ^= k2 + + fallthrough + + case 8: + k1 ^= uint64(d.tail[7]) << 56 + fallthrough + case 7: + k1 ^= uint64(d.tail[6]) << 48 + fallthrough + case 6: + k1 ^= uint64(d.tail[5]) << 40 + fallthrough + case 5: + k1 ^= uint64(d.tail[4]) << 32 + fallthrough + case 4: + k1 ^= uint64(d.tail[3]) << 24 + fallthrough + case 3: + k1 ^= uint64(d.tail[2]) << 16 + fallthrough + case 2: + k1 ^= uint64(d.tail[1]) << 8 + fallthrough + case 1: + k1 ^= uint64(d.tail[0]) << 0 + k1 *= c1_128 + k1 = (k1 << 31) | (k1 >> 33) // rotl64(k1, 31) + k1 *= c2_128 + h1 ^= k1 + } + + h1 ^= uint64(d.clen) + h2 ^= uint64(d.clen) + + h1 += h2 + h2 += h1 + + h1 = fmix64(h1) + h2 = fmix64(h2) + + h1 += h2 + h2 += h1 + + return h1, h2 +} + +func fmix64(k uint64) uint64 { + k ^= k >> 33 + k *= 0xff51afd7ed558ccd + k ^= k >> 33 + k *= 0xc4ceb9fe1a85ec53 + k ^= k >> 33 + return k +} + +/* +func rotl64(x uint64, r byte) uint64 { + return (x << r) | (x >> (64 - r)) +} +*/ + +// Sum128 returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New128() +// hasher.Write(data) +// return hasher.Sum128() +func Sum128(data []byte) (h1 uint64, h2 uint64) { return Sum128WithSeed(data, 0) } + +// Sum128WithSeed returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New128WithSeed(seed) +// hasher.Write(data) +// return hasher.Sum128() +func Sum128WithSeed(data []byte, seed uint32) (h1 uint64, h2 uint64) { + d := &digest128{h1: uint64(seed), h2: uint64(seed)} + d.seed = seed + d.tail = d.bmix(data) + d.clen = len(data) + return d.Sum128() +} diff --git a/vendor/github.com/spaolacci/murmur3/murmur32.go b/vendor/github.com/spaolacci/murmur3/murmur32.go new file mode 100644 index 00000000..e32c9951 --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/murmur32.go @@ -0,0 +1,167 @@ +package murmur3 + +// http://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/hash/Murmur3_32HashFunction.java + +import ( + "hash" + "unsafe" +) + +// Make sure interfaces are correctly implemented. +var ( + _ hash.Hash = new(digest32) + _ hash.Hash32 = new(digest32) + _ bmixer = new(digest32) +) + +const ( + c1_32 uint32 = 0xcc9e2d51 + c2_32 uint32 = 0x1b873593 +) + +// digest32 represents a partial evaluation of a 32 bites hash. +type digest32 struct { + digest + h1 uint32 // Unfinalized running hash. +} + +// New32 returns new 32-bit hasher +func New32() hash.Hash32 { return New32WithSeed(0) } + +// New32WithSeed returns new 32-bit hasher set with explicit seed value +func New32WithSeed(seed uint32) hash.Hash32 { + d := new(digest32) + d.seed = seed + d.bmixer = d + d.Reset() + return d +} + +func (d *digest32) Size() int { return 4 } + +func (d *digest32) reset() { d.h1 = d.seed } + +func (d *digest32) Sum(b []byte) []byte { + h := d.Sum32() + return append(b, byte(h>>24), byte(h>>16), byte(h>>8), byte(h)) +} + +// Digest as many blocks as possible. +func (d *digest32) bmix(p []byte) (tail []byte) { + h1 := d.h1 + + nblocks := len(p) / 4 + for i := 0; i < nblocks; i++ { + k1 := *(*uint32)(unsafe.Pointer(&p[i*4])) + + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + + h1 ^= k1 + h1 = (h1 << 13) | (h1 >> 19) // rotl32(h1, 13) + h1 = h1*4 + h1 + 0xe6546b64 + } + d.h1 = h1 + return p[nblocks*d.Size():] +} + +func (d *digest32) Sum32() (h1 uint32) { + + h1 = d.h1 + + var k1 uint32 + switch len(d.tail) & 3 { + case 3: + k1 ^= uint32(d.tail[2]) << 16 + fallthrough + case 2: + k1 ^= uint32(d.tail[1]) << 8 + fallthrough + case 1: + k1 ^= uint32(d.tail[0]) + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + h1 ^= k1 + } + + h1 ^= uint32(d.clen) + + h1 ^= h1 >> 16 + h1 *= 0x85ebca6b + h1 ^= h1 >> 13 + h1 *= 0xc2b2ae35 + h1 ^= h1 >> 16 + + return h1 +} + +/* +func rotl32(x uint32, r byte) uint32 { + return (x << r) | (x >> (32 - r)) +} +*/ + +// Sum32 returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New32() +// hasher.Write(data) +// return hasher.Sum32() +func Sum32(data []byte) uint32 { return Sum32WithSeed(data, 0) } + +// Sum32WithSeed returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New32WithSeed(seed) +// hasher.Write(data) +// return hasher.Sum32() +func Sum32WithSeed(data []byte, seed uint32) uint32 { + + h1 := seed + + nblocks := len(data) / 4 + var p uintptr + if len(data) > 0 { + p = uintptr(unsafe.Pointer(&data[0])) + } + p1 := p + uintptr(4*nblocks) + for ; p < p1; p += 4 { + k1 := *(*uint32)(unsafe.Pointer(p)) + + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + + h1 ^= k1 + h1 = (h1 << 13) | (h1 >> 19) // rotl32(h1, 13) + h1 = h1*4 + h1 + 0xe6546b64 + } + + tail := data[nblocks*4:] + + var k1 uint32 + switch len(tail) & 3 { + case 3: + k1 ^= uint32(tail[2]) << 16 + fallthrough + case 2: + k1 ^= uint32(tail[1]) << 8 + fallthrough + case 1: + k1 ^= uint32(tail[0]) + k1 *= c1_32 + k1 = (k1 << 15) | (k1 >> 17) // rotl32(k1, 15) + k1 *= c2_32 + h1 ^= k1 + } + + h1 ^= uint32(len(data)) + + h1 ^= h1 >> 16 + h1 *= 0x85ebca6b + h1 ^= h1 >> 13 + h1 *= 0xc2b2ae35 + h1 ^= h1 >> 16 + + return h1 +} diff --git a/vendor/github.com/spaolacci/murmur3/murmur64.go b/vendor/github.com/spaolacci/murmur3/murmur64.go new file mode 100644 index 00000000..65a410ae --- /dev/null +++ b/vendor/github.com/spaolacci/murmur3/murmur64.go @@ -0,0 +1,57 @@ +package murmur3 + +import ( + "hash" +) + +// Make sure interfaces are correctly implemented. +var ( + _ hash.Hash = new(digest64) + _ hash.Hash64 = new(digest64) + _ bmixer = new(digest64) +) + +// digest64 is half a digest128. +type digest64 digest128 + +// New64 returns a 64-bit hasher +func New64() hash.Hash64 { return New64WithSeed(0) } + +// New64WithSeed returns a 64-bit hasher set with explicit seed value +func New64WithSeed(seed uint32) hash.Hash64 { + d := (*digest64)(New128WithSeed(seed).(*digest128)) + return d +} + +func (d *digest64) Sum(b []byte) []byte { + h1 := d.Sum64() + return append(b, + byte(h1>>56), byte(h1>>48), byte(h1>>40), byte(h1>>32), + byte(h1>>24), byte(h1>>16), byte(h1>>8), byte(h1)) +} + +func (d *digest64) Sum64() uint64 { + h1, _ := (*digest128)(d).Sum128() + return h1 +} + +// Sum64 returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New64() +// hasher.Write(data) +// return hasher.Sum64() +func Sum64(data []byte) uint64 { return Sum64WithSeed(data, 0) } + +// Sum64WithSeed returns the MurmurHash3 sum of data. It is equivalent to the +// following sequence (without the extra burden and the extra allocation): +// hasher := New64WithSeed(seed) +// hasher.Write(data) +// return hasher.Sum64() +func Sum64WithSeed(data []byte, seed uint32) uint64 { + d := &digest128{h1: uint64(seed), h2: uint64(seed)} + d.seed = seed + d.tail = d.bmix(data) + d.clen = len(data) + h1, _ := d.Sum128() + return h1 +} diff --git a/vendor/github.com/status-im/keycard-go/.gitignore b/vendor/github.com/status-im/keycard-go/.gitignore deleted file mode 100644 index f54ee32b..00000000 --- a/vendor/github.com/status-im/keycard-go/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/build -*.cap -/applets diff --git a/vendor/github.com/status-im/keycard-go/Makefile b/vendor/github.com/status-im/keycard-go/Makefile deleted file mode 100644 index fde18a0b..00000000 --- a/vendor/github.com/status-im/keycard-go/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -.PHONY: test - -deps: - go get -t ./... - -test: - go test -v ./... diff --git a/vendor/github.com/status-im/keycard-go/README.md b/vendor/github.com/status-im/keycard-go/README.md deleted file mode 100644 index edf8cb0f..00000000 --- a/vendor/github.com/status-im/keycard-go/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# keycard-go - -`keycard-go` is a set of Go packages built to interact with the [Status Keycard](https://github.com/status-im/status-keycard). - -If you only need a tool to initialize your card, check out [keycard-cli](https://github.com/status-im/keycard-cli). - -## Keycard commands - -- [x] SELECT -- [x] INIT -- [x] OPEN SECURE CHANNEL -- [x] MUTUALLY AUTHENTICATE -- [x] PAIR -- [x] UNPAIR -- [x] GET STATUS -- [ ] SET NDEF -- [x] VERIFY PIN -- [x] CHANGE PIN -- [ ] UNBLOCK PIN -- [ ] LOAD KEY -- [x] DERIVE KEY -- [ ] GENERATE MNEMONIC -- [x] REMOVE KEY -- [x] GENERATE KEY -- [x] INIT -- [ ] DUPLICATE KEY -- [x] SIGN -- [ ] SET PINLESS PATH -- [ ] EXPORT KEY diff --git a/vendor/github.com/status-im/keycard-go/_assets/ci/Jenkinsfile b/vendor/github.com/status-im/keycard-go/_assets/ci/Jenkinsfile deleted file mode 100644 index c004512a..00000000 --- a/vendor/github.com/status-im/keycard-go/_assets/ci/Jenkinsfile +++ /dev/null @@ -1,40 +0,0 @@ -pipeline { - agent { - docker { - label 'linux' - image 'golang:1.12' - } - } - - options { - /* manage how many builds we keep */ - buildDiscarder(logRotator( - numToKeepStr: '20', - daysToKeepStr: '30', - )) - disableConcurrentBuilds() - /* Go requires a certain directory structure */ - checkoutToSubdirectory('src/github.com/status-im/keycard-go') - } - - environment { - PROJECT = 'src/github.com/status-im/keycard-go' - GOPATH = "${env.WORKSPACE}" - PATH = "${env.PATH}:${env.GOPATH}/bin" - GOCACHE = '/tmp/gocache' - } - - stages { - stage('Prep') { - steps { dir(env.PROJECT) { - sh 'make deps' - } } - } - - stage('Test') { - steps { dir(env.PROJECT) { - sh 'make test' - } } - } - } -} diff --git a/vendor/github.com/status-im/keycard-go/apdu/command.go b/vendor/github.com/status-im/keycard-go/apdu/command.go deleted file mode 100644 index 98c53f09..00000000 --- a/vendor/github.com/status-im/keycard-go/apdu/command.go +++ /dev/null @@ -1,78 +0,0 @@ -package apdu - -import ( - "bytes" - "encoding/binary" -) - -// Command struct represent the data sent as an APDU command with CLA, Ins, P1, P2, Lc, Data, and Le. -type Command struct { - Cla uint8 - Ins uint8 - P1 uint8 - P2 uint8 - Data []byte - le uint8 - requiresLe bool -} - -// NewCommand returns a new apdu Command. -func NewCommand(cla, ins, p1, p2 uint8, data []byte) *Command { - return &Command{ - Cla: cla, - Ins: ins, - P1: p1, - P2: p2, - Data: data, - requiresLe: false, - } -} - -// SetLe sets the expected Le value and makes sure the Le value is sent in the apdu Command. -func (c *Command) SetLe(le uint8) { - c.requiresLe = true - c.le = le -} - -// Le returns if Le is set and its value. -func (c *Command) Le() (bool, uint8) { - return c.requiresLe, c.le -} - -// Serialize serielizes the command into a raw bytes sequence. -func (c *Command) Serialize() ([]byte, error) { - buf := new(bytes.Buffer) - - if err := binary.Write(buf, binary.BigEndian, c.Cla); err != nil { - return nil, err - } - - if err := binary.Write(buf, binary.BigEndian, c.Ins); err != nil { - return nil, err - } - - if err := binary.Write(buf, binary.BigEndian, c.P1); err != nil { - return nil, err - } - - if err := binary.Write(buf, binary.BigEndian, c.P2); err != nil { - return nil, err - } - - if len(c.Data) > 0 { - if err := binary.Write(buf, binary.BigEndian, uint8(len(c.Data))); err != nil { - return nil, err - } - if err := binary.Write(buf, binary.BigEndian, c.Data); err != nil { - return nil, err - } - } - - if c.requiresLe { - if err := binary.Write(buf, binary.BigEndian, c.le); err != nil { - return nil, err - } - } - - return buf.Bytes(), nil -} diff --git a/vendor/github.com/status-im/keycard-go/apdu/command_test.go b/vendor/github.com/status-im/keycard-go/apdu/command_test.go deleted file mode 100644 index d0cb96a1..00000000 --- a/vendor/github.com/status-im/keycard-go/apdu/command_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package apdu - -import ( - "testing" - - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestNewCommand(t *testing.T) { - var cla uint8 = 0x80 - var ins uint8 = 0x50 - var p1 uint8 = 1 - var p2 uint8 = 2 - data := hexutils.HexToBytes("84762336c5187fe8") - - cmd := NewCommand(cla, ins, p1, p2, data) - - expected := "80 50 01 02 08 84 76 23 36 C5 18 7F E8" - result, err := cmd.Serialize() - assert.NoError(t, err) - assert.Equal(t, expected, hexutils.BytesToHexWithSpaces(result)) - - cmd.SetLe(uint8(0x77)) - expected = "80 50 01 02 08 84 76 23 36 C5 18 7F E8 77" - result, err = cmd.Serialize() - assert.NoError(t, err) - assert.Equal(t, expected, hexutils.BytesToHexWithSpaces(result)) -} diff --git a/vendor/github.com/status-im/keycard-go/apdu/response.go b/vendor/github.com/status-im/keycard-go/apdu/response.go deleted file mode 100644 index 9b36a843..00000000 --- a/vendor/github.com/status-im/keycard-go/apdu/response.go +++ /dev/null @@ -1,79 +0,0 @@ -package apdu - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" -) - -const ( - // SwOK is returned from smartcards as a positive response code. - SwOK = 0x9000 -) - -// ErrBadResponse defines an error conaining the returned Sw code and a description message. -type ErrBadResponse struct { - Sw uint16 - message string -} - -// NewErrBadResponse returns a ErrBadResponse with the specified sw and message values. -func NewErrBadResponse(sw uint16, message string) *ErrBadResponse { - return &ErrBadResponse{ - Sw: sw, - message: message, - } -} - -// Error implements the error interface. -func (e *ErrBadResponse) Error() string { - return fmt.Sprintf("bad response %x: %s", e.Sw, e.message) -} - -// Response represents a struct containing the smartcard response fields. -type Response struct { - Data []byte - Sw1 uint8 - Sw2 uint8 - Sw uint16 -} - -// ErrBadRawResponse is an error returned by ParseResponse in case the response data is not long enough. -var ErrBadRawResponse = errors.New("response data must be at least 2 bytes") - -// ParseResponse parses a raw response and return a Response. -func ParseResponse(data []byte) (*Response, error) { - r := &Response{} - return r, r.deserialize(data) -} - -func (r *Response) deserialize(data []byte) error { - if len(data) < 2 { - return ErrBadRawResponse - } - - r.Data = make([]byte, len(data)-2) - buf := bytes.NewReader(data) - - if err := binary.Read(buf, binary.BigEndian, &r.Data); err != nil { - return err - } - - if err := binary.Read(buf, binary.BigEndian, &r.Sw1); err != nil { - return err - } - - if err := binary.Read(buf, binary.BigEndian, &r.Sw2); err != nil { - return err - } - - r.Sw = (uint16(r.Sw1) << 8) | uint16(r.Sw2) - - return nil -} - -// IsOK returns true if the response Sw code is 0x9000. -func (r *Response) IsOK() bool { - return r.Sw == SwOK -} diff --git a/vendor/github.com/status-im/keycard-go/apdu/response_test.go b/vendor/github.com/status-im/keycard-go/apdu/response_test.go deleted file mode 100644 index dd26e375..00000000 --- a/vendor/github.com/status-im/keycard-go/apdu/response_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package apdu - -import ( - "testing" - - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestParseResponse(t *testing.T) { - raw := hexutils.HexToBytes("000002650183039536622002003b5e508f751c0af3016e3fbc23d3a69000") - resp, err := ParseResponse(raw) - - assert.NoError(t, err) - assert.Equal(t, uint8(0x90), resp.Sw1) - assert.Equal(t, uint8(0x00), resp.Sw2) - assert.Equal(t, uint16(0x9000), resp.Sw) - - expected := "000002650183039536622002003B5E508F751C0AF3016E3FBC23D3A6" - assert.Equal(t, expected, hexutils.BytesToHex(resp.Data)) -} - -func TestParseResponse_BadData(t *testing.T) { - raw := hexutils.HexToBytes("") - _, err := ParseResponse(raw) - assert.Equal(t, ErrBadRawResponse, err) -} - -func TestResp_IsOK(t *testing.T) { - raw := hexutils.HexToBytes("01029000") - resp, err := ParseResponse(raw) - assert.NoError(t, err) - assert.True(t, resp.IsOK()) -} diff --git a/vendor/github.com/status-im/keycard-go/apdu/utils.go b/vendor/github.com/status-im/keycard-go/apdu/utils.go deleted file mode 100644 index b07bcd22..00000000 --- a/vendor/github.com/status-im/keycard-go/apdu/utils.go +++ /dev/null @@ -1,117 +0,0 @@ -package apdu - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" -) - -var ( - ErrUnsupportedLenth80 = errors.New("length cannot be 0x80") - ErrLengthTooBig = errors.New("length cannot be more than 3 bytes") -) - -// ErrTagNotFound is an error returned if a tag is not found in a TLV sequence. -type ErrTagNotFound struct { - tag uint8 -} - -// Error implements the error interface -func (e *ErrTagNotFound) Error() string { - return fmt.Sprintf("tag %x not found", e.tag) -} - -// FindTag searches for a tag value within a TLV sequence. -func FindTag(raw []byte, tags ...uint8) ([]byte, error) { - return findTag(raw, 0, tags...) -} - -// FindTagN searches for a tag value within a TLV sequence and returns the n occurrence -func FindTagN(raw []byte, n int, tags ...uint8) ([]byte, error) { - return findTag(raw, n, tags...) -} - -func findTag(raw []byte, occurrence int, tags ...uint8) ([]byte, error) { - if len(tags) == 0 { - return raw, nil - } - - target := tags[0] - buf := bytes.NewBuffer(raw) - - var ( - tag uint8 - length uint32 - err error - ) - - for { - tag, err = buf.ReadByte() - switch { - case err == io.EOF: - return []byte{}, &ErrTagNotFound{target} - case err != nil: - return nil, err - } - - length, buf, err = parseLength(buf) - if err != nil { - return nil, err - } - - data := make([]byte, length) - if length != 0 { - _, err = buf.Read(data) - if err != nil { - return nil, err - } - } - - if tag == target { - // if it's the last tag in the search path, we start counting the occurrences - if len(tags) == 1 && occurrence > 0 { - occurrence-- - continue - } - - if len(tags) == 1 { - return data, nil - } - - return findTag(data, occurrence, tags[1:]...) - } - } -} - -func parseLength(buf *bytes.Buffer) (uint32, *bytes.Buffer, error) { - length, err := buf.ReadByte() - if err != nil { - return 0, nil, err - } - - if length == 0x80 { - return 0, nil, ErrUnsupportedLenth80 - } - - if length > 0x80 { - lengthSize := length - 0x80 - if lengthSize > 3 { - return 0, nil, ErrLengthTooBig - } - - data := make([]byte, lengthSize) - _, err = buf.Read(data) - if err != nil { - return 0, nil, err - } - - num := make([]byte, 4) - copy(num[4-lengthSize:], data) - - return binary.BigEndian.Uint32(num), buf, nil - } - - return uint32(length), buf, nil -} diff --git a/vendor/github.com/status-im/keycard-go/apdu/utils_test.go b/vendor/github.com/status-im/keycard-go/apdu/utils_test.go deleted file mode 100644 index 32656d00..00000000 --- a/vendor/github.com/status-im/keycard-go/apdu/utils_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package apdu - -import ( - "bytes" - "testing" - - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestFindTag(t *testing.T) { - var ( - tagData []byte - err error - ) - - data := hexutils.HexToBytes("C1 02 BB CC C2 04 C3 02 11 22 C3 02 88 99") - - tagData, err = FindTag(data, uint8(0xC1)) - assert.NoError(t, err) - assert.Equal(t, "BB CC", hexutils.BytesToHexWithSpaces(tagData)) - - tagData, err = FindTag(data, uint8(0xC2)) - assert.NoError(t, err) - assert.Equal(t, "C3 02 11 22", hexutils.BytesToHexWithSpaces(tagData)) - - tagData, err = FindTag(data, uint8(0xC3)) - assert.NoError(t, err) - assert.Equal(t, "88 99", hexutils.BytesToHexWithSpaces(tagData)) - - tagData, err = FindTag(data, uint8(0xC2), uint8(0xC3)) - assert.NoError(t, err) - assert.Equal(t, "11 22", hexutils.BytesToHexWithSpaces(tagData)) - - // tag not found - data = hexutils.HexToBytes("C1 00") - _, err = FindTag(data, uint8(0xC2)) - assert.Equal(t, &ErrTagNotFound{uint8(0xC2)}, err) - - // sub-tag not found - data = hexutils.HexToBytes("C1 02 C2 00") - _, err = FindTag(data, uint8(0xC1), uint8(0xC3)) - assert.Equal(t, &ErrTagNotFound{uint8(0xC3)}, err) -} - -func TestParseLength(t *testing.T) { - scenarios := []struct { - data []byte - expectedLength uint32 - err error - }{ - { - data: []byte{0x01, 0xAA}, - expectedLength: 1, - err: nil, - }, - { - data: []byte{0x7F, 0xAA}, - expectedLength: 127, - err: nil, - }, - { - data: []byte{0x81, 0x80, 0xAA}, - expectedLength: 128, - err: nil, - }, - { - data: []byte{0x82, 0x80, 0x80, 0xAA}, - expectedLength: 32896, - err: nil, - }, - { - data: []byte{0x83, 0x80, 0x80, 0x80, 0xAA}, - expectedLength: 8421504, - err: nil, - }, - { - data: []byte{0x80, 0xAA}, - expectedLength: 0, - err: ErrUnsupportedLenth80, - }, - { - data: []byte{0x84, 0xAA}, - expectedLength: 0, - err: ErrLengthTooBig, - }, - } - - for _, s := range scenarios { - buf := bytes.NewBuffer(s.data) - length, _, err := parseLength(buf) - if s.err == nil { - assert.NoError(t, err) - assert.Equal(t, s.expectedLength, length) - } else { - assert.Equal(t, s.err, err) - } - } -} - -func TestFindTagN(t *testing.T) { - data := hexutils.HexToBytes("0A 01 A1 0A 01 A2") - - tagData, err := FindTagN(data, 0, uint8(0x0A)) - assert.NoError(t, err) - assert.Equal(t, "A1", hexutils.BytesToHexWithSpaces(tagData)) - - tagData, err = FindTagN(data, 1, uint8(0x0A)) - assert.NoError(t, err) - assert.Equal(t, "A2", hexutils.BytesToHexWithSpaces(tagData)) -} diff --git a/vendor/github.com/status-im/keycard-go/command_set.go b/vendor/github.com/status-im/keycard-go/command_set.go deleted file mode 100644 index 08d40ff4..00000000 --- a/vendor/github.com/status-im/keycard-go/command_set.go +++ /dev/null @@ -1,305 +0,0 @@ -package keycard - -import ( - "crypto/rand" - "crypto/sha256" - "errors" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/crypto" - "github.com/status-im/keycard-go/globalplatform" - "github.com/status-im/keycard-go/identifiers" - "github.com/status-im/keycard-go/types" -) - -var ErrNoAvailablePairingSlots = errors.New("no available pairing slots") - -type CommandSet struct { - c types.Channel - sc *SecureChannel - ApplicationInfo *types.ApplicationInfo - PairingInfo *types.PairingInfo -} - -func NewCommandSet(c types.Channel) *CommandSet { - return &CommandSet{ - c: c, - sc: NewSecureChannel(c), - } -} - -func (cs *CommandSet) SetPairingInfo(key []byte, index int) { - cs.PairingInfo = &types.PairingInfo{ - Key: key, - Index: index, - } -} - -func (cs *CommandSet) Select() error { - instanceAID, err := identifiers.KeycardInstanceAID(identifiers.KeycardDefaultInstanceIndex) - if err != nil { - return err - } - - cmd := apdu.NewCommand( - 0x00, - globalplatform.InsSelect, - uint8(0x04), - uint8(0x00), - instanceAID, - ) - - cmd.SetLe(0) - resp, err := cs.c.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - cs.ApplicationInfo = &types.ApplicationInfo{} - return err - } - - appInfo, err := types.ParseApplicationInfo(resp.Data) - if err != nil { - return err - } - - cs.ApplicationInfo = appInfo - - if cs.ApplicationInfo.HasSecureChannelCapability() { - err = cs.sc.GenerateSecret(cs.ApplicationInfo.SecureChannelPublicKey) - if err != nil { - return err - } - - cs.sc.Reset() - } - - return nil -} - -func (cs *CommandSet) Init(secrets *Secrets) error { - data, err := cs.sc.OneShotEncrypt(secrets) - if err != nil { - return err - } - - init := NewCommandInit(data) - resp, err := cs.c.Send(init) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) Pair(pairingPass string) error { - challenge := make([]byte, 32) - if _, err := rand.Read(challenge); err != nil { - return err - } - - cmd := NewCommandPairFirstStep(challenge) - resp, err := cs.c.Send(cmd) - if resp.Sw == SwNoAvailablePairingSlots { - return ErrNoAvailablePairingSlots - } - - if err = cs.checkOK(resp, err); err != nil { - return err - } - - cardCryptogram := resp.Data[:32] - cardChallenge := resp.Data[32:] - - secretHash, err := crypto.VerifyCryptogram(challenge, pairingPass, cardCryptogram) - if err != nil { - return err - } - - h := sha256.New() - h.Write(secretHash[:]) - h.Write(cardChallenge) - cmd = NewCommandPairFinalStep(h.Sum(nil)) - resp, err = cs.c.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return err - } - - h.Reset() - h.Write(secretHash[:]) - h.Write(resp.Data[1:]) - - pairingKey := h.Sum(nil) - pairingIndex := resp.Data[0] - - cs.PairingInfo = &types.PairingInfo{ - Key: pairingKey, - Index: int(pairingIndex), - } - - return nil -} - -func (cs *CommandSet) Unpair(index uint8) error { - cmd := NewCommandUnpair(index) - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) OpenSecureChannel() error { - if cs.ApplicationInfo == nil { - return errors.New("cannot open secure channel without setting PairingInfo") - } - - cmd := NewCommandOpenSecureChannel(uint8(cs.PairingInfo.Index), cs.sc.RawPublicKey()) - resp, err := cs.c.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return err - } - - encKey, macKey, iv := crypto.DeriveSessionKeys(cs.sc.Secret(), cs.PairingInfo.Key, resp.Data) - cs.sc.Init(iv, encKey, macKey) - - err = cs.mutualAuthenticate() - if err != nil { - return err - } - - return nil -} - -func (cs *CommandSet) GetStatus(info uint8) (*types.ApplicationStatus, error) { - cmd := NewCommandGetStatus(info) - resp, err := cs.sc.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return nil, err - } - - return types.ParseApplicationStatus(resp.Data) -} - -func (cs *CommandSet) GetStatusApplication() (*types.ApplicationStatus, error) { - return cs.GetStatus(P1GetStatusApplication) -} - -func (cs *CommandSet) GetStatusKeyPath() (*types.ApplicationStatus, error) { - return cs.GetStatus(P1GetStatusKeyPath) -} - -func (cs *CommandSet) VerifyPIN(pin string) error { - cmd := NewCommandVerifyPIN(pin) - resp, err := cs.sc.Send(cmd) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) ChangePIN(pin string) error { - cmd := NewCommandChangePIN(pin) - resp, err := cs.sc.Send(cmd) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) ChangePUK(puk string) error { - cmd := NewCommandChangePUK(puk) - resp, err := cs.sc.Send(cmd) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) ChangePairingSecret(password string) error { - secret := generatePairingToken(password) - cmd := NewCommandChangePairingSecret(secret) - resp, err := cs.sc.Send(cmd) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) GenerateKey() ([]byte, error) { - cmd := NewCommandGenerateKey() - resp, err := cs.sc.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return nil, err - } - - return resp.Data, nil -} - -func (cs *CommandSet) RemoveKey() error { - cmd := NewCommandRemoveKey() - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) DeriveKey(path string) error { - cmd, err := NewCommandDeriveKey(path) - if err != nil { - return err - } - - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) SetPinlessPath(path string) error { - cmd, err := NewCommandSetPinlessPath(path) - if err != nil { - return err - } - - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) Sign(data []byte) (*types.Signature, error) { - cmd, err := NewCommandSign(data, P1SignCurrentKey) - if err != nil { - return nil, err - } - - resp, err := cs.sc.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return nil, err - } - - return types.ParseSignature(data, resp.Data) -} - -func (cs *CommandSet) SignPinless(data []byte) (*types.Signature, error) { - cmd, err := NewCommandSign(data, P1SignPinless) - if err != nil { - return nil, err - } - - resp, err := cs.c.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return nil, err - } - - return types.ParseSignature(data, resp.Data) -} - -func (cs *CommandSet) mutualAuthenticate() error { - data := make([]byte, 32) - if _, err := rand.Read(data); err != nil { - return err - } - - cmd := NewCommandMutuallyAuthenticate(data) - resp, err := cs.sc.Send(cmd) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) checkOK(resp *apdu.Response, err error, allowedResponses ...uint16) error { - if err != nil { - return err - } - - if len(allowedResponses) == 0 { - allowedResponses = []uint16{apdu.SwOK} - } - - for _, code := range allowedResponses { - if code == resp.Sw { - return nil - } - } - - return apdu.NewErrBadResponse(resp.Sw, "unexpected response") -} diff --git a/vendor/github.com/status-im/keycard-go/commands.go b/vendor/github.com/status-im/keycard-go/commands.go deleted file mode 100644 index 60987be0..00000000 --- a/vendor/github.com/status-im/keycard-go/commands.go +++ /dev/null @@ -1,248 +0,0 @@ -package keycard - -import ( - "bytes" - "encoding/binary" - "fmt" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/derivationpath" - "github.com/status-im/keycard-go/globalplatform" -) - -const ( - InsInit = 0xFE - InsOpenSecureChannel = 0x10 - InsMutuallyAuthenticate = 0x11 - InsPair = 0x12 - InsUnpair = 0x13 - InsGetStatus = 0xF2 - InsGenerateKey = 0xD4 - InsRemoveKey = 0xD3 - InsVerifyPIN = 0x20 - InsChangePIN = 0x21 - InsDeriveKey = 0xD1 - InsSign = 0xC0 - InsSetPinlessPath = 0xC1 - - P1PairingFirstStep = 0x00 - P1PairingFinalStep = 0x01 - P1GetStatusApplication = 0x00 - P1GetStatusKeyPath = 0x01 - P1DeriveKeyFromMaster = 0x00 - P1DeriveKeyFromParent = 0x40 - P1DeriveKeyFromCurrent = 0x80 - P1ChangePinPIN = 0x00 - P1ChangePinPUK = 0x01 - P1ChangePinPairingSecret = 0x02 - P1SignCurrentKey = 0x00 - P1SignDerive = 0x01 - P1SignDeriveAndMakeCurrent = 0x02 - P1SignPinless = 0x03 - - SwNoAvailablePairingSlots = 0x6A84 -) - -func NewCommandInit(data []byte) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsInit, - 0, - 0, - data, - ) -} - -func NewCommandPairFirstStep(challenge []byte) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsPair, - P1PairingFirstStep, - 0, - challenge, - ) -} - -func NewCommandPairFinalStep(cryptogramHash []byte) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsPair, - P1PairingFinalStep, - 0, - cryptogramHash, - ) -} - -func NewCommandUnpair(index uint8) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsUnpair, - index, - 0, - []byte{}, - ) -} - -func NewCommandOpenSecureChannel(pairingIndex uint8, pubKey []byte) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsOpenSecureChannel, - pairingIndex, - 0, - pubKey, - ) -} - -func NewCommandMutuallyAuthenticate(data []byte) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsMutuallyAuthenticate, - 0, - 0, - data, - ) -} - -func NewCommandGetStatus(p1 uint8) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsGetStatus, - p1, - 0, - []byte{}, - ) -} - -func NewCommandGenerateKey() *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsGenerateKey, - 0, - 0, - []byte{}, - ) -} - -func NewCommandRemoveKey() *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsRemoveKey, - 0, - 0, - []byte{}, - ) -} - -func NewCommandVerifyPIN(pin string) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsVerifyPIN, - 0, - 0, - []byte(pin), - ) -} - -func NewCommandChangePIN(pin string) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsChangePIN, - P1ChangePinPIN, - 0, - []byte(pin), - ) -} - -func NewCommandChangePUK(puk string) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsChangePIN, - P1ChangePinPUK, - 0, - []byte(puk), - ) -} - -func NewCommandChangePairingSecret(secret []byte) *apdu.Command { - return apdu.NewCommand( - globalplatform.ClaGp, - InsChangePIN, - P1ChangePinPairingSecret, - 0, - secret, - ) -} - -func NewCommandDeriveKey(pathStr string) (*apdu.Command, error) { - startingPoint, path, err := derivationpath.Decode(pathStr) - if err != nil { - return nil, err - } - - var p1 uint8 - switch startingPoint { - case derivationpath.StartingPointMaster: - p1 = P1DeriveKeyFromMaster - case derivationpath.StartingPointParent: - p1 = P1DeriveKeyFromParent - case derivationpath.StartingPointCurrent: - p1 = P1DeriveKeyFromCurrent - default: - return nil, fmt.Errorf("invalid startingPoint %d", startingPoint) - } - - data := new(bytes.Buffer) - for _, segment := range path { - if err := binary.Write(data, binary.BigEndian, segment); err != nil { - return nil, err - } - } - - return apdu.NewCommand( - globalplatform.ClaGp, - InsDeriveKey, - p1, - 0, - data.Bytes(), - ), nil -} - -func NewCommandSetPinlessPath(pathStr string) (*apdu.Command, error) { - startingPoint, path, err := derivationpath.Decode(pathStr) - if err != nil { - return nil, err - } - - if len(path) > 0 && startingPoint != derivationpath.StartingPointMaster { - return nil, fmt.Errorf("pinless path must be set with an absolute path") - } - - data := new(bytes.Buffer) - for _, segment := range path { - if err := binary.Write(data, binary.BigEndian, segment); err != nil { - return nil, err - } - } - - return apdu.NewCommand( - globalplatform.ClaGp, - InsSetPinlessPath, - 0, - 0, - data.Bytes(), - ), nil -} - -func NewCommandSign(data []byte, p1 uint8) (*apdu.Command, error) { - if len(data) != 32 { - return nil, fmt.Errorf("data length must be 32, got %d", len(data)) - } - - return apdu.NewCommand( - globalplatform.ClaGp, - InsSign, - p1, - 0, - data, - ), nil -} diff --git a/vendor/github.com/status-im/keycard-go/crypto/crypto.go b/vendor/github.com/status-im/keycard-go/crypto/crypto.go deleted file mode 100644 index 5d03567f..00000000 --- a/vendor/github.com/status-im/keycard-go/crypto/crypto.go +++ /dev/null @@ -1,146 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto/aes" - "crypto/cipher" - "crypto/ecdsa" - "crypto/rand" - "crypto/sha256" - "crypto/sha512" - "errors" - - "github.com/ethereum/go-ethereum/crypto" - "golang.org/x/crypto/pbkdf2" - "golang.org/x/text/unicode/norm" -) - -const PairingTokenSalt = "Keycard Pairing Password Salt" - -var ErrInvalidCardCryptogram = errors.New("invalid card cryptogram") - -func GenerateECDHSharedSecret(priv *ecdsa.PrivateKey, pub *ecdsa.PublicKey) []byte { - x, _ := crypto.S256().ScalarMult(pub.X, pub.Y, priv.D.Bytes()) - return x.Bytes() -} - -func VerifyCryptogram(challenge []byte, pairingPass string, cardCryptogram []byte) ([]byte, error) { - secretHash := pbkdf2.Key(norm.NFKD.Bytes([]byte(pairingPass)), norm.NFKD.Bytes([]byte(PairingTokenSalt)), 50000, 32, sha256.New) - - h := sha256.New() - h.Write(secretHash[:]) - h.Write(challenge) - expectedCryptogram := h.Sum(nil) - - if !bytes.Equal(expectedCryptogram, cardCryptogram) { - return nil, ErrInvalidCardCryptogram - } - - return secretHash, nil -} - -func OneShotEncrypt(pubKeyData, secret, data []byte) ([]byte, error) { - data = appendPadding(16, data) - - iv := make([]byte, 16) - _, err := rand.Read(iv) - if err != nil { - return nil, err - } - - block, err := aes.NewCipher(secret) - if err != nil { - return nil, err - } - - ciphertext := make([]byte, len(data)) - mode := cipher.NewCBCEncrypter(block, iv) - mode.CryptBlocks(ciphertext, data) - - encrypted := append([]byte{byte(len(pubKeyData))}, pubKeyData...) - encrypted = append(encrypted, iv...) - encrypted = append(encrypted, ciphertext...) - - return encrypted, nil -} - -func DeriveSessionKeys(secret, pairingKey, cardData []byte) ([]byte, []byte, []byte) { - salt := cardData[:32] - iv := cardData[32:] - - h := sha512.New() - h.Write(secret) - h.Write(pairingKey) - h.Write(salt) - data := h.Sum(nil) - - encKey := data[:32] - macKey := data[32:] - - return encKey, macKey, iv -} - -func EncryptData(data []byte, encKey []byte, iv []byte) ([]byte, error) { - data = appendPadding(16, data) - - block, err := aes.NewCipher(encKey) - if err != nil { - return nil, err - } - - ciphertext := make([]byte, len(data)) - mode := cipher.NewCBCEncrypter(block, iv) - mode.CryptBlocks(ciphertext, data) - - return ciphertext, nil -} - -func DecryptData(data []byte, encKey []byte, iv []byte) ([]byte, error) { - block, err := aes.NewCipher(encKey) - if err != nil { - return nil, err - } - - plaintext := make([]byte, len(data)) - mode := cipher.NewCBCDecrypter(block, iv) - mode.CryptBlocks(plaintext, data) - - return removePadding(16, plaintext), nil -} - -func CalculateMac(meta []byte, data []byte, macKey []byte) ([]byte, error) { - data = appendPadding(16, data) - - block, err := aes.NewCipher(macKey) - if err != nil { - return nil, err - } - - mode := cipher.NewCBCEncrypter(block, make([]byte, 16)) - mode.CryptBlocks(meta, meta) - mode.CryptBlocks(data, data) - - mac := data[len(data)-32 : len(data)-16] - - return mac, nil -} - -func appendPadding(blockSize int, data []byte) []byte { - paddingSize := blockSize - (len(data) % blockSize) - newData := make([]byte, len(data)+paddingSize) - copy(newData, data) - newData[len(data)] = 0x80 - - return newData -} - -func removePadding(blockSize int, data []byte) []byte { - i := len(data) - 1 - for ; i > len(data)-blockSize; i-- { - if data[i] == 0x80 { - break - } - } - - return data[:i] -} diff --git a/vendor/github.com/status-im/keycard-go/crypto/crypto_test.go b/vendor/github.com/status-im/keycard-go/crypto/crypto_test.go deleted file mode 100644 index 6e6c46a0..00000000 --- a/vendor/github.com/status-im/keycard-go/crypto/crypto_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package crypto - -import ( - "testing" - - "github.com/ethereum/go-ethereum/crypto" - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestECDH(t *testing.T) { - pk1, err := crypto.GenerateKey() - assert.NoError(t, err) - pk2, err := crypto.GenerateKey() - assert.NoError(t, err) - - sharedSecret1 := GenerateECDHSharedSecret(pk1, &pk2.PublicKey) - sharedSecret2 := GenerateECDHSharedSecret(pk2, &pk1.PublicKey) - - assert.Equal(t, sharedSecret1, sharedSecret2) -} - -func TestDeriveSessionKeys(t *testing.T) { - secret := hexutils.HexToBytes("B410E816DA313545151807E25A830201FA389913A977066AB0C6DE0E8631E400") - pairingKey := hexutils.HexToBytes("544FF0B9B0737E4BFC4ECDFCE09F522B837051BBE4FFCEC494FA420D8525670E") - cardData := hexutils.HexToBytes("1D7C033E75E10EC578AB538F69F1B02538571BA3831441F1649E3F24B5B3E3E71D7BC2D6A3D02FC8CB2FBB3FD8711BB5") - - encKey, macKey, iv := DeriveSessionKeys(secret, pairingKey, cardData) - - expectedIV := "1D7BC2D6A3D02FC8CB2FBB3FD8711BB5" - expectedEncKey := "4FF496554C01BAE0A52323E3481B448C99D43982118D95C6918FE0354D224B90" - expectedMacKey := "185811013138EA1B4FFDBBFA7343EF2DBE3E54C2C231885E867F792448AC2FE5" - - assert.Equal(t, expectedIV, hexutils.BytesToHex(iv)) - assert.Equal(t, expectedEncKey, hexutils.BytesToHex(encKey)) - assert.Equal(t, expectedMacKey, hexutils.BytesToHex(macKey)) -} - -func TestEncryptData(t *testing.T) { - data := hexutils.HexToBytes("A8A686D0E3290459BCB36088A8FD04A76BF13283BE4B1EAE2E1248EF609F94DC") - encKey := hexutils.HexToBytes("44D689AB4B18206F7EEE5439FB9A71A8A617406BA5259728D1EBC2786D24896C") - iv := hexutils.HexToBytes("9D3EF41EF1D221DD98A54AD5470F58F2") - - encryptedData, err := EncryptData(data, encKey, iv) - assert.NoError(t, err) - - expected := "FFB41FED5F71A2B57A6AE62D5D5ECD1C12616F6464637DD0A7A930920ACBA55867A7E12CC4F06B089AF34FF4ED4BAB08" - assert.Equal(t, expected, hexutils.BytesToHex(encryptedData)) -} - -func TestDecryptData(t *testing.T) { - encData := hexutils.HexToBytes("73B58B66372E3446E14A9F54BA59666DB432E9DD87D24F9B0525180EE52DA2106E0C70EED7CD42B5B313E4443D6AC90D") - encKey := hexutils.HexToBytes("D93D8E6164196D5C5B5F84F10E4B90D98F8D282ED145513ED666AA55C9871E79") - iv := hexutils.HexToBytes("F959B1220333046D3C47D61B1E1B891B") - - data, err := DecryptData(encData, encKey, iv) - assert.NoError(t, err) - - expected := "2E21F9F2B2C2CC9038D518A5C6B490613E7955BD19D19108B77786986B7ABFE69000" - assert.Equal(t, expected, hexutils.BytesToHex(data)) -} - -func TestRemovePadding(t *testing.T) { - scenarios := []struct { - data string - expected string - }{ - { - "0180000000000000", - "01", - }, - { - "0102800000000000", - "0102", - }, - { - "01020304050607080102030405800000", - "01020304050607080102030405", - }, - } - - for _, s := range scenarios { - res := removePadding(8, hexutils.HexToBytes(s.data)) - assert.Equal(t, s.expected, hexutils.BytesToHex(res)) - } -} diff --git a/vendor/github.com/status-im/keycard-go/derivationpath/decoder_test.go b/vendor/github.com/status-im/keycard-go/derivationpath/decoder_test.go deleted file mode 100644 index b276707e..00000000 --- a/vendor/github.com/status-im/keycard-go/derivationpath/decoder_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package derivationpath - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestDecode(t *testing.T) { - scenarios := []struct { - path string - expectedPath []uint32 - expectedStartingPoint StartingPoint - err error - }{ - { - path: "", - expectedPath: []uint32{}, - expectedStartingPoint: StartingPointCurrent, - }, - { - path: "1", - expectedPath: []uint32{1}, - expectedStartingPoint: StartingPointCurrent, - }, - { - path: "..", - expectedPath: []uint32{}, - expectedStartingPoint: StartingPointParent, - }, - { - path: "m", - expectedPath: []uint32{}, - expectedStartingPoint: StartingPointMaster, - }, - { - path: "m/1", - expectedPath: []uint32{1}, - expectedStartingPoint: StartingPointMaster, - }, - { - path: "m/1/2", - expectedPath: []uint32{1, 2}, - expectedStartingPoint: StartingPointMaster, - }, - { - path: "m/1/2'/3", - expectedPath: []uint32{1, 2147483650, 3}, - expectedStartingPoint: StartingPointMaster, - }, - { - path: "m/", - err: fmt.Errorf("at position 2, expected number, got EOF"), - }, - { - path: "m/1//2", - err: fmt.Errorf("at position 5, expected number, got /"), - }, - { - path: "m/1'2", - err: fmt.Errorf("at position 5, expected /, got 2"), - }, - { - path: "m/'/2", - err: fmt.Errorf("at position 3, expected number, got '"), - }, - { - path: "m/2147483648", - err: fmt.Errorf("at position 3, index must be lower than 2^31, got 2147483648"), - }, - } - - for i, s := range scenarios { - t.Run(fmt.Sprintf("scenario %d", i), func(t *testing.T) { - startingPoint, path, err := Decode(s.path) - if s.err == nil { - assert.NoError(t, err) - assert.Equal(t, s.expectedStartingPoint, startingPoint) - assert.Equal(t, s.expectedPath, path) - } else { - assert.Equal(t, s.err, err) - } - }) - } -} diff --git a/vendor/github.com/status-im/keycard-go/derivationpath/encoder_test.go b/vendor/github.com/status-im/keycard-go/derivationpath/encoder_test.go deleted file mode 100644 index 7acaf50d..00000000 --- a/vendor/github.com/status-im/keycard-go/derivationpath/encoder_test.go +++ /dev/null @@ -1,35 +0,0 @@ -package derivationpath - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestEncode(t *testing.T) { - scenarios := []struct { - path []uint32 - expectedPath string - }{ - { - path: []uint32{}, - expectedPath: "m", - }, - { - path: []uint32{0, 1, 2}, - expectedPath: "m/0/1/2", - }, - { - path: []uint32{hardenedStart + 10, 1, 2}, - expectedPath: "m/10'/1/2", - }, - } - - for i, s := range scenarios { - t.Run(fmt.Sprintf("scenario %d", i), func(t *testing.T) { - path := Encode(s.path) - assert.Equal(t, s.expectedPath, path) - }) - } -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/command_set.go b/vendor/github.com/status-im/keycard-go/globalplatform/command_set.go deleted file mode 100644 index 2463e91e..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/command_set.go +++ /dev/null @@ -1,240 +0,0 @@ -package globalplatform - -import ( - "crypto/rand" - "errors" - "os" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/identifiers" - "github.com/status-im/keycard-go/types" -) - -var ErrSecureChannelNotOpen = errors.New("secure channel not open") - -type LoadingCallback = func(loadingBlock, totalBlocks int) - -type CommandSet struct { - c types.Channel - sc *SecureChannel - session *Session -} - -func NewCommandSet(c types.Channel) *CommandSet { - return &CommandSet{ - c: c, - } -} - -func (cs *CommandSet) Select() error { - return cs.SelectAID(nil) -} - -func (cs *CommandSet) SelectAID(aid []byte) error { - cmd := apdu.NewCommand( - 0x00, - InsSelect, - uint8(0x04), - uint8(0x00), - aid, - ) - - cmd.SetLe(0) - resp, err := cs.c.Send(cmd) - - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) OpenSecureChannel() error { - hostChallenge, err := generateHostChallenge() - if err != nil { - return err - } - - err = cs.initializeUpdate(hostChallenge) - if err != nil { - return err - } - - return cs.externalAuthenticate() -} - -func (cs *CommandSet) DeleteKeycardInstancesAndPackage() error { - if cs.sc == nil { - return ErrSecureChannelNotOpen - } - - instanceAID, err := identifiers.KeycardInstanceAID(identifiers.KeycardDefaultInstanceIndex) - if err != nil { - return err - } - - ids := [][]byte{ - identifiers.NdefInstanceAID, - instanceAID, - identifiers.PackageAID, - } - - for _, aid := range ids { - err := cs.Delete(aid) - if err != nil { - return err - } - } - - return nil -} - -func (cs *CommandSet) Delete(aid []byte) error { - cmd := NewCommandDelete(aid) - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err, SwOK, SwReferencedDataNotFound) -} - -func (cs *CommandSet) LoadKeycardPackage(capFile *os.File, callback LoadingCallback) error { - return cs.LoadPackage(capFile, identifiers.PackageAID, callback) -} - -func (cs *CommandSet) LoadPackage(capFile *os.File, pkgAID []byte, callback LoadingCallback) error { - if cs.sc == nil { - return ErrSecureChannelNotOpen - } - - preLoad := NewCommandInstallForLoad(pkgAID, []byte{}) - resp, err := cs.sc.Send(preLoad) - if err = cs.checkOK(resp, err); err != nil { - return err - } - - load, err := NewLoadCommandStream(capFile) - if err != nil { - return err - } - - for load.Next() { - cmd := load.GetCommand() - callback(int(load.Index()), load.BlocksCount()) - resp, err = cs.sc.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return err - } - } - - return nil -} - -func (cs *CommandSet) InstallNDEFApplet(ndefRecord []byte) error { - return cs.InstallForInstall( - identifiers.PackageAID, - identifiers.NdefAID, - identifiers.NdefInstanceAID, - ndefRecord) -} - -func (cs *CommandSet) InstallKeycardApplet() error { - instanceAID, err := identifiers.KeycardInstanceAID(identifiers.KeycardDefaultInstanceIndex) - if err != nil { - return err - } - - return cs.InstallForInstall( - identifiers.PackageAID, - identifiers.KeycardAID, - instanceAID, - []byte{}) -} - -func (cs *CommandSet) InstallForInstall(packageAID, appletAID, instanceAID, params []byte) error { - cmd := NewCommandInstallForInstall(packageAID, appletAID, instanceAID, params) - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) initializeUpdate(hostChallenge []byte) error { - cmd := NewCommandInitializeUpdate(hostChallenge) - resp, err := cs.c.Send(cmd) - if err = cs.checkOK(resp, err); err != nil { - return err - } - - // verify cryptogram and initialize session keys - session, err := cs.initializeSession(resp, hostChallenge) - if err != nil { - return err - } - - cs.sc = NewSecureChannel(session, cs.c) - cs.session = session - - return nil -} - -func (cs *CommandSet) initializeSession(resp *apdu.Response, hostChallenge []byte) (session *Session, err error) { - keySets := []struct { - name string - key []byte - }{ - {"keycard", identifiers.KeycardDevelopmentKey}, - {"globalplatform", identifiers.GlobalPlatformDefaultKey}, - } - - for _, set := range keySets { - logger.Debug("initialize session", "keys", set.name) - keys := NewSCP02Keys(set.key, set.key) - session, err = NewSession(keys, resp, hostChallenge) - - // good keys - if err == nil { - break - } - - // try the next keys - if err == errBadCryptogram { - continue - } - - // unexpected error - return nil, err - } - - return session, err -} - -func (cs *CommandSet) externalAuthenticate() error { - if cs.session == nil { - return errors.New("session must be initialized using initializeUpdate") - } - - encKey := cs.session.Keys().Enc() - cmd, err := NewCommandExternalAuthenticate(encKey, cs.session.CardChallenge(), cs.session.HostChallenge()) - if err != nil { - return err - } - - resp, err := cs.sc.Send(cmd) - return cs.checkOK(resp, err) -} - -func (cs *CommandSet) checkOK(resp *apdu.Response, err error, allowedResponses ...uint16) error { - if err != nil { - return err - } - - if len(allowedResponses) == 0 { - allowedResponses = []uint16{apdu.SwOK} - } - - for _, code := range allowedResponses { - if code == resp.Sw { - return nil - } - } - - return apdu.NewErrBadResponse(resp.Sw, "unexpected response") -} - -func generateHostChallenge() ([]byte, error) { - c := make([]byte, 8) - _, err := rand.Read(c) - return c, err -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/commands.go b/vendor/github.com/status-im/keycard-go/globalplatform/commands.go deleted file mode 100644 index 094a4f0e..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/commands.go +++ /dev/null @@ -1,201 +0,0 @@ -package globalplatform - -import ( - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/globalplatform/crypto" -) - -// Constants used in apdu commands and responses as defined by iso7816 and globalplatform. -const ( - ClaISO7816 = 0x00 - ClaGp = 0x80 - ClaMac = 0x84 - - InsSelect = 0xA4 - InsInitializeUpdate = 0x50 - InsExternalAuthenticate = 0x82 - InsGetResponse = 0xC0 - InsDelete = 0xE4 - InsLoad = 0xE8 - InsInstall = 0xE6 - InsGetStatus = 0xF2 - - P1ExternalAuthenticateCMAC = 0x01 - P1InstallForLoad = 0x02 - P1InstallForInstall = 0x04 - P1InstallForMakeSelectable = 0x08 - P1LoadMoreBlocks = 0x00 - P1LoadLastBlock = 0x80 - P1GetStatusIssuerSecurityDomain = 0x80 - P1GetStatusApplications = 0x40 - P1GetStatusExecLoadFiles = 0x20 - P1GetStatusExecLoadFilesAndModules = 0x10 - - P2GetStatusTLVData = 0x02 - - Sw1ResponseDataIncomplete = 0x61 - - SwOK = 0x9000 - SwFileNotFound = 0x6A82 - SwReferencedDataNotFound = 0x6A88 - SwSecurityConditionNotSatisfied = 0x6982 - SwAuthenticationMethodBlocked = 0x6983 - - tagDeleteAID = 0x4F - tagLoadFileDataBlock = 0xC4 - tagGetStatusAID = 0x4F -) - -// NewCommandSelect returns a Select command as defined in the globalplatform specifications. -func NewCommandSelect(aid []byte) *apdu.Command { - c := apdu.NewCommand( - ClaISO7816, - InsSelect, - 0x04, - 0, - aid, - ) - - // with T=0 we can both set or not the Le value - // with T=1 it works only without Le - // c.SetLe(0x00) - - return c -} - -// NewCommandInitializeUpdate returns an Initialize Update command as defined in the globalplatform specifications. -func NewCommandInitializeUpdate(challenge []byte) *apdu.Command { - c := apdu.NewCommand( - ClaGp, - InsInitializeUpdate, - 0, - 0, - challenge, - ) - - // with T=0 we can both set or not the Le value - // with T=1 it works only if Le is set - c.SetLe(0x00) - - return c -} - -// NewCommandExternalAuthenticate returns an External Authenticate command as defined in the globalplatform specifications. -func NewCommandExternalAuthenticate(encKey, cardChallenge, hostChallenge []byte) (*apdu.Command, error) { - hostCryptogram, err := calculateHostCryptogram(encKey, cardChallenge, hostChallenge) - if err != nil { - return nil, err - } - - return apdu.NewCommand( - ClaMac, - InsExternalAuthenticate, - P1ExternalAuthenticateCMAC, - 0, - hostCryptogram, - ), nil -} - -// NewCommandGetResponse returns a Get Response command as defined in the globalplatform specifications. -func NewCommandGetResponse(length uint8) *apdu.Command { - c := apdu.NewCommand( - ClaISO7816, - InsGetResponse, - 0, - 0, - nil, - ) - - c.SetLe(length) - - return c -} - -// NewCommandDelete returns a Delete command as defined in the globalplatform specifications. -func NewCommandDelete(aid []byte) *apdu.Command { - data := []byte{tagDeleteAID, byte(len(aid))} - data = append(data, aid...) - - return apdu.NewCommand( - ClaGp, - InsDelete, - 0, - 0, - data, - ) -} - -// NewCommandInstallForLoad returns an Install command with the install-for-load parameter as defined in the globalplatform specifications. -func NewCommandInstallForLoad(aid, sdaid []byte) *apdu.Command { - data := []byte{byte(len(aid))} - data = append(data, aid...) - data = append(data, byte(len(sdaid))) - data = append(data, sdaid...) - // empty hash length and hash - data = append(data, []byte{0x00, 0x00, 0x00}...) - - return apdu.NewCommand( - ClaGp, - InsInstall, - P1InstallForLoad, - 0, - data, - ) -} - -// NewCommandInstallForInstall returns an Install command with the install-for-instalp parameter as defined in the globalplatform specifications. -func NewCommandInstallForInstall(pkgAID, appletAID, instanceAID, params []byte) *apdu.Command { - data := []byte{byte(len(pkgAID))} - data = append(data, pkgAID...) - data = append(data, byte(len(appletAID))) - data = append(data, appletAID...) - data = append(data, byte(len(instanceAID))) - data = append(data, instanceAID...) - - // privileges - priv := []byte{0x00} - data = append(data, byte(len(priv))) - data = append(data, priv...) - - // params - fullParams := []byte{byte(0xC9), byte(len(params))} - fullParams = append(fullParams, params...) - - data = append(data, byte(len(fullParams))) - data = append(data, fullParams...) - - // empty perform token - data = append(data, byte(0x00)) - - return apdu.NewCommand( - ClaGp, - InsInstall, - P1InstallForInstall|P1InstallForMakeSelectable, - 0, - data, - ) -} - -// NewCommandGetStatus returns a Get Status command as defined in the globalplatform specifications. -func NewCommandGetStatus(aid []byte, p1 uint8) *apdu.Command { - data := []byte{tagGetStatusAID} - data = append(data, byte(len(aid))) - data = append(data, aid...) - - return apdu.NewCommand( - ClaGp, - InsGetStatus, - p1, - P2GetStatusTLVData, - data, - ) -} - -func calculateHostCryptogram(encKey, cardChallenge, hostChallenge []byte) ([]byte, error) { - var data []byte - data = append(data, cardChallenge...) - data = append(data, hostChallenge...) - data = crypto.AppendDESPadding(data) - - return crypto.Mac3DES(encKey, data, crypto.NullBytes8) -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/commands_test.go b/vendor/github.com/status-im/keycard-go/globalplatform/commands_test.go deleted file mode 100644 index 2c416ac2..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/commands_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package globalplatform - -import ( - "testing" - - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestNewCommandSelect(t *testing.T) { - aid := []byte{} - cmd := NewCommandSelect(aid) - - assert.Equal(t, uint8(0x00), cmd.Cla) - assert.Equal(t, uint8(0xA4), cmd.Ins) - assert.Equal(t, uint8(0x04), cmd.P1) - assert.Equal(t, uint8(0x00), cmd.P2) -} - -func TestNewCommandInitializeUpdate(t *testing.T) { - challenge := hexutils.HexToBytes("010203") - cmd := NewCommandInitializeUpdate(challenge) - - assert.Equal(t, uint8(0x80), cmd.Cla) - assert.Equal(t, uint8(0x50), cmd.Ins) - assert.Equal(t, uint8(0x00), cmd.P1) - assert.Equal(t, uint8(0x00), cmd.P2) - assert.Equal(t, challenge, cmd.Data) -} - -func TestCalculateHostCryptogram(t *testing.T) { - encKey := hexutils.HexToBytes("0EF72A1065236DD6CAC718D5E3F379A4") - cardChallenge := hexutils.HexToBytes("0076a6c0d55e9535") - hostChallenge := hexutils.HexToBytes("266195e638da1b95") - - result, err := calculateHostCryptogram(encKey, cardChallenge, hostChallenge) - assert.NoError(t, err) - - expected := "45A5F48DAE68203C" - assert.Equal(t, expected, hexutils.BytesToHex(result)) -} - -func TestNewCommandExternalAuthenticate(t *testing.T) { - encKey := hexutils.HexToBytes("8D289AFE0AB9C45B1C76DEEA182966F4") - cardChallenge := hexutils.HexToBytes("000f3fd65d4d6e45") - hostChallenge := hexutils.HexToBytes("cf307b6719bf224d") - - cmd, err := NewCommandExternalAuthenticate(encKey, cardChallenge, hostChallenge) - assert.NoError(t, err) - - expected := "84 82 01 00 08 77 02 AC 6C E4 6A 47 F0" - raw, err := cmd.Serialize() - assert.NoError(t, err) - assert.Equal(t, expected, hexutils.BytesToHexWithSpaces(raw)) -} - -func TestNewCommandDelete(t *testing.T) { - aid := hexutils.HexToBytes("0102030405") - cmd := NewCommandDelete(aid) - assert.Equal(t, uint8(0x80), cmd.Cla) - assert.Equal(t, uint8(0xE4), cmd.Ins) - assert.Equal(t, uint8(0x00), cmd.P1) - assert.Equal(t, uint8(0x00), cmd.P2) - - expected := "4F050102030405" - assert.Equal(t, expected, hexutils.BytesToHex(cmd.Data)) -} - -func TestNewCommandInstallForLoad(t *testing.T) { - aid := hexutils.HexToBytes("53746174757357616C6C6574") - sdaid := hexutils.HexToBytes("A000000151000000") - cmd := NewCommandInstallForLoad(aid, sdaid) - assert.Equal(t, uint8(0x80), cmd.Cla) - assert.Equal(t, uint8(0xE6), cmd.Ins) - assert.Equal(t, uint8(0x02), cmd.P1) - assert.Equal(t, uint8(0x00), cmd.P2) - - expected := "0C53746174757357616C6C657408A000000151000000000000" - assert.Equal(t, expected, hexutils.BytesToHex(cmd.Data)) -} - -func TestNewCommandInstallForInstall(t *testing.T) { - pkgAID := hexutils.HexToBytes("53746174757357616C6C6574") - appletAID := hexutils.HexToBytes("53746174757357616C6C6574417070") - instanceAID := hexutils.HexToBytes("53746174757357616C6C6574417070") - params := hexutils.HexToBytes("AABBCC") - - cmd := NewCommandInstallForInstall(pkgAID, appletAID, instanceAID, params) - assert.Equal(t, uint8(0x80), cmd.Cla) - assert.Equal(t, uint8(0xE6), cmd.Ins) - assert.Equal(t, uint8(0x0C), cmd.P1) - assert.Equal(t, uint8(0x00), cmd.P2) - - expected := "0C53746174757357616C6C65740F53746174757357616C6C65744170700F53746174757357616C6C6574417070010005C903AABBCC00" - assert.Equal(t, expected, hexutils.BytesToHex(cmd.Data)) -} - -func TestNewCommandStatus(t *testing.T) { - aid := hexutils.HexToBytes("AABBCC") - cmd := NewCommandGetStatus(aid, P1GetStatusApplications) - assert.Equal(t, uint8(0x80), cmd.Cla) - assert.Equal(t, uint8(0xF2), cmd.Ins) - assert.Equal(t, uint8(0x40), cmd.P1) - assert.Equal(t, uint8(0x02), cmd.P2) - - expected := "4F03AABBCC" - assert.Equal(t, expected, hexutils.BytesToHex(cmd.Data)) -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto.go b/vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto.go deleted file mode 100644 index b8ea8d9e..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto.go +++ /dev/null @@ -1,138 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto/cipher" - "crypto/des" -) - -var ( - // DerivationPurposeEnc defines 2 bytes used when deriving a encoding key. - DerivationPurposeEnc = []byte{0x01, 0x82} - // DerivationPurposeMac defines 2 bytes used when deriving a mac key. - DerivationPurposeMac = []byte{0x01, 0x01} - // NullBytes8 defined a slice of 8 zero bytes mostrly used as IV in cryptographic functions. - NullBytes8 = []byte{0, 0, 0, 0, 0, 0, 0, 0} -) - -// DeriveKey derives a key from the current cardKey using the sequence number receive from the card and the purpose (ENC/MAC). -func DeriveKey(cardKey []byte, seq []byte, purpose []byte) ([]byte, error) { - key24 := resizeKey24(cardKey) - - derivation := make([]byte, 16) - copy(derivation, purpose[:2]) - copy(derivation[2:], seq[:2]) - - block, err := des.NewTripleDESCipher(key24) - if err != nil { - return nil, err - } - - ciphertext := make([]byte, 16) - - mode := cipher.NewCBCEncrypter(block, NullBytes8) - mode.CryptBlocks(ciphertext, derivation) - - return ciphertext, nil -} - -// VerifyCryptogram verifies the cryptogram sends from the card to ensure that card and client are using the same keys to communicate. -func VerifyCryptogram(encKey, hostChallenge, cardChallenge, cardCryptogram []byte) (bool, error) { - data := make([]byte, 0) - data = append(data, hostChallenge...) - data = append(data, cardChallenge...) - paddedData := AppendDESPadding(data) - calculated, err := Mac3DES(encKey, paddedData, NullBytes8) - if err != nil { - return false, err - } - - return bytes.Equal(calculated, cardCryptogram), nil -} - -// MacFull3DES generates a full triple DES mac. -func MacFull3DES(key, data, iv []byte) ([]byte, error) { - data = AppendDESPadding(data) - - desBlock, err := des.NewCipher(resizeKey8(key)) - if err != nil { - return nil, err - } - - des3Block, err := des.NewTripleDESCipher(resizeKey24(key)) - if err != nil { - return nil, err - } - - des3IV := iv - - if len(data) > 8 { - length := len(data) - 8 - tmp := make([]byte, length) - mode := cipher.NewCBCEncrypter(desBlock, iv) - mode.CryptBlocks(tmp, data[:length]) - des3IV = tmp[length-8:] - } - - ciphertext := make([]byte, 8) - - mode := cipher.NewCBCEncrypter(des3Block, des3IV) - mode.CryptBlocks(ciphertext, data[len(data)-8:]) - - return ciphertext, nil -} - -// EncryptICV encrypts an ICV with the specified macKey. -// The ICV is usually the mac of the previous command sent in the current session. -func EncryptICV(macKey, icv []byte) ([]byte, error) { - block, err := des.NewCipher(resizeKey8(macKey)) - if err != nil { - return nil, err - } - - ciphertext := make([]byte, 8) - mode := cipher.NewCBCEncrypter(block, NullBytes8) - mode.CryptBlocks(ciphertext, icv) - - return ciphertext, nil -} - -// Mac3DES generates the triple DES mac of data using the specified key and icv. -func Mac3DES(key, data, iv []byte) ([]byte, error) { - key24 := resizeKey24(key) - - block, err := des.NewTripleDESCipher(key24) - if err != nil { - return nil, err - } - - ciphertext := make([]byte, 24) - - mode := cipher.NewCBCEncrypter(block, iv) - mode.CryptBlocks(ciphertext, data) - - return ciphertext[16:], nil -} - -// AppendDESPadding appends an 0x80 bytes to data and other zero bytes to make the result length multiple of 8. -func AppendDESPadding(data []byte) []byte { - blockSize := 8 - paddingSize := blockSize - (len(data) % blockSize) - newData := make([]byte, len(data)+paddingSize) - copy(newData, data) - newData[len(data)] = 0x80 - - return newData -} - -func resizeKey24(key []byte) []byte { - data := make([]byte, 24) - copy(data, key[0:16]) - copy(data[16:], key[0:8]) - - return data -} - -func resizeKey8(key []byte) []byte { - return key[:8] -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto_test.go b/vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto_test.go deleted file mode 100644 index 9dfbba43..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/crypto/crypto_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package crypto - -import ( - "testing" - - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestDeriveKey(t *testing.T) { - cardKey := hexutils.HexToBytes("404142434445464748494a4b4c4d4e4f") - seq := hexutils.HexToBytes("0065") - - encKey, err := DeriveKey(cardKey, seq, DerivationPurposeEnc) - assert.NoError(t, err) - - expectedEncKey := "85E72AAF47874218A202BF5EF891DD21" - assert.Equal(t, expectedEncKey, hexutils.BytesToHex(encKey)) -} - -func TestResizeKey24(t *testing.T) { - key := hexutils.HexToBytes("404142434445464748494a4b4c4d4e4f") - resized := resizeKey24(key) - expected := "404142434445464748494A4B4C4D4E4F4041424344454647" - assert.Equal(t, expected, hexutils.BytesToHex(resized)) -} - -func TestAppendDESPadding(t *testing.T) { - data := hexutils.HexToBytes("AABB") - result := AppendDESPadding(data) - expected := "AABB800000000000" - assert.Equal(t, expected, hexutils.BytesToHex(result)) - - data = hexutils.HexToBytes("01020304050607") - result = AppendDESPadding(data) - expected = "0102030405060780" - assert.Equal(t, expected, hexutils.BytesToHex(result)) - - data = hexutils.HexToBytes("0102030405060708") - result = AppendDESPadding(data) - expected = "01020304050607088000000000000000" - assert.Equal(t, expected, hexutils.BytesToHex(result)) -} - -func TestVerifyCryptogram(t *testing.T) { - encKey := hexutils.HexToBytes("16B5867FF50BE7239C2BF1245B83A362") - hostChallenge := hexutils.HexToBytes("32da078d7aac1cff") - cardChallenge := hexutils.HexToBytes("007284f64a7d6465") - cardCryptogram := hexutils.HexToBytes("05c4bb8a86014e22") - - result, err := VerifyCryptogram(encKey, hostChallenge, cardChallenge, cardCryptogram) - assert.NoError(t, err) - assert.True(t, result) -} - -func TestMac3des(t *testing.T) { - key := hexutils.HexToBytes("16B5867FF50BE7239C2BF1245B83A362") - data := hexutils.HexToBytes("32DA078D7AAC1CFF007284F64A7D64658000000000000000") - result, err := Mac3DES(key, data, NullBytes8) - assert.NoError(t, err) - - expected := "05C4BB8A86014E22" - assert.Equal(t, expected, hexutils.BytesToHex(result)) -} - -func TestMacFull3DES(t *testing.T) { - key := hexutils.HexToBytes("5b02e75ad63190aece0622936f11abab") - data := hexutils.HexToBytes("8482010010810b098a8fbb88da") - result, err := MacFull3DES(key, data, NullBytes8) - assert.NoError(t, err) - expected := "5271D7174A5A166A" - assert.Equal(t, expected, hexutils.BytesToHex(result)) -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/globalplatform.go b/vendor/github.com/status-im/keycard-go/globalplatform/globalplatform.go deleted file mode 100644 index 279296b3..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/globalplatform.go +++ /dev/null @@ -1,5 +0,0 @@ -package globalplatform - -import "github.com/ethereum/go-ethereum/log" - -var logger = log.New("package", "keycard/globalplatform") diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/load.go b/vendor/github.com/status-im/keycard-go/globalplatform/load.go deleted file mode 100644 index 74974eb1..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/load.go +++ /dev/null @@ -1,164 +0,0 @@ -package globalplatform - -import ( - "archive/zip" - "bytes" - "io/ioutil" - "math" - "os" - "strings" - - "github.com/status-im/keycard-go/apdu" -) - -var internalFiles = []string{ - "Header", "Directory", "Import", "Applet", "Class", - "Method", "StaticField", "Export", "ConstantPool", "RefLocation", -} - -const blockSize = 247 // 255 - 8 bytes for MAC - -// LoadCommandStream implement a struct that generates multiple Load commands used to load files to smartcards. -type LoadCommandStream struct { - data *bytes.Reader - currentIndex uint8 - currentData []byte - p1 uint8 - blocksCount int -} - -// NewLoadCommandStream returns a new LoadCommandStream to load the specified file. -func NewLoadCommandStream(file *os.File) (*LoadCommandStream, error) { - files, err := loadFiles(file) - if err != nil { - return nil, err - } - - data, err := encodeFilesData(files) - if err != nil { - return nil, err - } - - return &LoadCommandStream{ - data: bytes.NewReader(data), - p1: P1LoadMoreBlocks, - blocksCount: int(math.Ceil(float64(len(data)) / float64(blockSize))), - }, nil -} - -// BlocksCount returns the total number of blocks based on data length and blockSize -func (lcs *LoadCommandStream) BlocksCount() int { - return lcs.blocksCount -} - -// Next returns initialize the data for the next Load command. -// TODO:@gravityblast update blockSize when using encrypted data -func (lcs *LoadCommandStream) Next() bool { - if lcs.data.Len() == 0 { - return false - } - - buf := make([]byte, blockSize) - n, err := lcs.data.Read(buf) - if err != nil { - return false - } - - lcs.currentData = buf[:n] - lcs.currentIndex++ - - if lcs.data.Len() == 0 { - lcs.p1 = P1LoadLastBlock - } - - return true -} - -// Index returns the command index. -func (lcs *LoadCommandStream) Index() uint8 { - return lcs.currentIndex - 1 -} - -// GetCommand returns the current apdu command. -func (lcs *LoadCommandStream) GetCommand() *apdu.Command { - return apdu.NewCommand(ClaGp, InsLoad, lcs.p1, lcs.Index(), lcs.currentData) -} - -func loadFiles(f *os.File) (map[string][]byte, error) { - fi, err := f.Stat() - if err != nil { - return nil, err - } - - z, err := zip.NewReader(f, fi.Size()) - if err != nil { - return nil, err - } - - files := make(map[string][]byte) - - for _, item := range z.File { - name := strings.Split(item.FileInfo().Name(), ".")[0] - f, err := item.Open() - if err != nil { - return nil, err - } - - data, err := ioutil.ReadAll(f) - if err != nil { - return nil, err - } - - files[name] = data - } - - return files, nil -} - -func encodeFilesData(files map[string][]byte) ([]byte, error) { - var buf bytes.Buffer - - for _, name := range internalFiles { - if data, ok := files[name]; ok { - buf.Write(data) - } - } - - filesData := buf.Bytes() - length := encodeLength(len(filesData)) - - data := make([]byte, 0) - data = append(data, tagLoadFileDataBlock) - data = append(data, length...) - data = append(data, filesData...) - - return data, nil -} - -func encodeLength(length int) []byte { - if length < 0x80 { - return []byte{byte(length)} - } - - if length < 0xFF { - return []byte{ - byte(0x81), - byte(length), - } - } - - if length < 0xFFFF { - return []byte{ - byte(0x82), - byte((length & 0xFF00) >> 8), - byte(length & 0xFF), - } - } - - return []byte{ - byte(0x83), - byte((length & 0xFF0000) >> 16), - byte((length & 0xFF00) >> 8), - byte(length & 0xFF), - } -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/scp02_keys.go b/vendor/github.com/status-im/keycard-go/globalplatform/scp02_keys.go deleted file mode 100644 index a72623ee..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/scp02_keys.go +++ /dev/null @@ -1,25 +0,0 @@ -package globalplatform - -// SCP02Keys is a struct that contains encoding and MAC keys used to communicate with smartcards. -type SCP02Keys struct { - enc []byte - mac []byte -} - -// Enc returns the enc key data. -func (k *SCP02Keys) Enc() []byte { - return k.enc -} - -// Mac returns the MAC key data. -func (k *SCP02Keys) Mac() []byte { - return k.mac -} - -// NewSCP02Keys returns a new SCP02Keys with the specified ENC and MAC keys. -func NewSCP02Keys(enc, mac []byte) *SCP02Keys { - return &SCP02Keys{ - enc: enc, - mac: mac, - } -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper.go b/vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper.go deleted file mode 100644 index b4687d2b..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper.go +++ /dev/null @@ -1,86 +0,0 @@ -package globalplatform - -import ( - "bytes" - "encoding/binary" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/globalplatform/crypto" -) - -// SCP02Wrapper is a wrapper for apdu commands inside a global platform secure channel. -type SCP02Wrapper struct { - macKey []byte - icv []byte -} - -// NewSCP02Wrapper returns a new SCP02Wrapper using the specified key for MAC generation. -func NewSCP02Wrapper(macKey []byte) *SCP02Wrapper { - return &SCP02Wrapper{ - macKey: macKey, - icv: crypto.NullBytes8, - } -} - -// Wrap wraps the apdu command adding the MAC to the end of the command. -// Future implementations will encrypt the message when needed. -func (w *SCP02Wrapper) Wrap(cmd *apdu.Command) (*apdu.Command, error) { - macData := new(bytes.Buffer) - - cla := cmd.Cla | 0x04 - if err := binary.Write(macData, binary.BigEndian, cla); err != nil { - return nil, err - } - - if err := binary.Write(macData, binary.BigEndian, cmd.Ins); err != nil { - return nil, err - } - - if err := binary.Write(macData, binary.BigEndian, cmd.P1); err != nil { - return nil, err - } - - if err := binary.Write(macData, binary.BigEndian, cmd.P2); err != nil { - return nil, err - } - - if err := binary.Write(macData, binary.BigEndian, uint8(len(cmd.Data)+8)); err != nil { - return nil, err - } - - if err := binary.Write(macData, binary.BigEndian, cmd.Data); err != nil { - return nil, err - } - - var ( - icv []byte - err error - ) - - if bytes.Equal(w.icv, crypto.NullBytes8) { - icv = w.icv - } else { - icv, err = crypto.EncryptICV(w.macKey, w.icv) - if err != nil { - return nil, err - } - } - - mac, err := crypto.MacFull3DES(w.macKey, macData.Bytes(), icv) - if err != nil { - return nil, err - } - - newData := make([]byte, 0) - newData = append(newData, cmd.Data...) - newData = append(newData, mac...) - - w.icv = mac - - newCmd := apdu.NewCommand(cla, cmd.Ins, cmd.P1, cmd.P2, newData) - if ok, le := cmd.Le(); ok { - newCmd.SetLe(le) - } - - return newCmd, nil -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper_test.go b/vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper_test.go deleted file mode 100644 index 64dd227a..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/scp02_wrapper_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package globalplatform - -import ( - "testing" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/globalplatform/crypto" - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestSCP02Wrapper_Wrap(t *testing.T) { - macKey := hexutils.HexToBytes("2983BA77D709C2DAA1E6000ABCCAC951") - w := NewSCP02Wrapper(macKey) - - data := hexutils.HexToBytes("1d4de92eaf7a2c9f") - cmd := apdu.NewCommand(uint8(0x80), uint8(0x82), uint8(0x01), uint8(0x00), data) - - // check initial icv - assert.Equal(t, crypto.NullBytes8, w.icv) - - wrappedCmd, err := w.Wrap(cmd) - assert.NoError(t, err) - raw, err := wrappedCmd.Serialize() - assert.NoError(t, err) - - expected := "84 82 01 00 10 1D 4D E9 2E AF 7A 2C 9F 8F 9B 0D F6 81 C1 D3 EC" - assert.Equal(t, expected, hexutils.BytesToHexWithSpaces(raw)) - - // check icv generated from previous mac - assert.Equal(t, "8F9B0DF681C1D3EC", hexutils.BytesToHex(w.icv)) - - data = hexutils.HexToBytes("4F00") - cmd = apdu.NewCommand(uint8(0x80), uint8(0xF2), uint8(0x80), uint8(0x02), data) - cmd.SetLe(0x00) - wrappedCmd, err = w.Wrap(cmd) - assert.NoError(t, err) - raw, err = wrappedCmd.Serialize() - assert.NoError(t, err) - - expected = "84 F2 80 02 0A 4F 00 30 F1 49 20 9E 17 B3 97 00" - assert.Equal(t, expected, hexutils.BytesToHexWithSpaces(raw)) -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/secure_channel.go b/vendor/github.com/status-im/keycard-go/globalplatform/secure_channel.go deleted file mode 100644 index 53ee1299..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/secure_channel.go +++ /dev/null @@ -1,39 +0,0 @@ -package globalplatform - -import ( - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/hexutils" - "github.com/status-im/keycard-go/types" -) - -// SecureChannel wraps another channel and sends wrapped commands using SCP02Wrapper. -type SecureChannel struct { - session *Session - c types.Channel - w *SCP02Wrapper -} - -// NewSecureChannel returns a new SecureChannel based on a session and wrapping a Channel c. -func NewSecureChannel(session *Session, c types.Channel) *SecureChannel { - return &SecureChannel{ - session: session, - c: c, - w: NewSCP02Wrapper(session.Keys().Mac()), - } -} - -// Send sends wrapped commands to the inner channel. -func (c *SecureChannel) Send(cmd *apdu.Command) (*apdu.Response, error) { - rawCmd, err := cmd.Serialize() - if err != nil { - return nil, err - } - - logger.Debug("wrapping apdu command", "hex", hexutils.BytesToHexWithSpaces(rawCmd)) - wrappedCmd, err := c.w.Wrap(cmd) - if err != nil { - return nil, err - } - - return c.c.Send(wrappedCmd) -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/session.go b/vendor/github.com/status-im/keycard-go/globalplatform/session.go deleted file mode 100644 index d2686a3f..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/session.go +++ /dev/null @@ -1,87 +0,0 @@ -package globalplatform - -import ( - "errors" - "fmt" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/globalplatform/crypto" -) - -const supportedSCPVersion = 2 - -// Session is a struct containing the keys and challenges used in the current communication with a card. -type Session struct { - keys *SCP02Keys - cardChallenge []byte - hostChallenge []byte -} - -var errBadCryptogram = errors.New("bad card cryptogram") - -// NewSession returns a new session after validating the cryptogram received from the card. -func NewSession(cardKeys *SCP02Keys, resp *apdu.Response, hostChallenge []byte) (*Session, error) { - if resp.Sw == SwSecurityConditionNotSatisfied { - return nil, apdu.NewErrBadResponse(resp.Sw, "security condition not satisfied") - } - - if resp.Sw == SwAuthenticationMethodBlocked { - return nil, apdu.NewErrBadResponse(resp.Sw, "authentication method blocked") - } - - if len(resp.Data) != 28 { - return nil, apdu.NewErrBadResponse(resp.Sw, fmt.Sprintf("bad data length, expected 28, got %d", len(resp.Data))) - } - - scpMajorVersion := resp.Data[11] - if scpMajorVersion != supportedSCPVersion { - return nil, fmt.Errorf("scp version %d not supported", scpMajorVersion) - } - - cardChallenge := resp.Data[12:20] - cardCryptogram := resp.Data[20:28] - seq := resp.Data[12:14] - - sessionEncKey, err := crypto.DeriveKey(cardKeys.Enc(), seq, crypto.DerivationPurposeEnc) - if err != nil { - return nil, err - } - - sessionMacKey, err := crypto.DeriveKey(cardKeys.Enc(), seq, crypto.DerivationPurposeMac) - if err != nil { - return nil, err - } - - sessionKeys := NewSCP02Keys(sessionEncKey, sessionMacKey) - verified, err := crypto.VerifyCryptogram(sessionKeys.Enc(), hostChallenge, cardChallenge, cardCryptogram) - if err != nil { - return nil, err - } - - if !verified { - return nil, errBadCryptogram - } - - s := &Session{ - keys: sessionKeys, - cardChallenge: cardChallenge, - hostChallenge: hostChallenge, - } - - return s, nil -} - -// Keys return the current SCP02Keys. -func (s *Session) Keys() *SCP02Keys { - return s.keys -} - -// CardChallenge returns the current card challenge. -func (s *Session) CardChallenge() []byte { - return s.cardChallenge -} - -// HostChallenge returns the current host challenge. -func (s *Session) HostChallenge() []byte { - return s.hostChallenge -} diff --git a/vendor/github.com/status-im/keycard-go/globalplatform/session_test.go b/vendor/github.com/status-im/keycard-go/globalplatform/session_test.go deleted file mode 100644 index 4cfa99c7..00000000 --- a/vendor/github.com/status-im/keycard-go/globalplatform/session_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package globalplatform - -import ( - "testing" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -func TestNewSession(t *testing.T) { - key := hexutils.HexToBytes("404142434445464748494a4b4c4d4e4f") - keys := NewSCP02Keys(key, key) - - raw := hexutils.HexToBytes("000002650183039536622002000de9c62ba1c4c8e55fcb91b6654ce49000") - resp, err := apdu.ParseResponse(raw) - assert.NoError(t, err) - - hostChallenge := hexutils.HexToBytes("f0467f908e5ca23f") - _, err = NewSession(keys, resp, hostChallenge) - assert.NoError(t, err) -} - -func TestNewSession_BadResponse(t *testing.T) { - raw := hexutils.HexToBytes("01026982") - resp, err := apdu.ParseResponse(raw) - assert.NoError(t, err) - _, err = NewSession(&SCP02Keys{}, resp, []byte{}) - assert.Error(t, err) - - raw = hexutils.HexToBytes("01026983") - resp, err = apdu.ParseResponse(raw) - assert.NoError(t, err) - _, err = NewSession(&SCP02Keys{}, resp, []byte{}) - assert.Error(t, err) - - // bad data length - raw = hexutils.HexToBytes("01029000") - resp, err = apdu.ParseResponse(raw) - assert.NoError(t, err) - _, err = NewSession(&SCP02Keys{}, resp, []byte{}) - assert.Error(t, err) -} diff --git a/vendor/github.com/status-im/keycard-go/hexutils/hexutils.go b/vendor/github.com/status-im/keycard-go/hexutils/hexutils.go deleted file mode 100644 index 83ec0169..00000000 --- a/vendor/github.com/status-im/keycard-go/hexutils/hexutils.go +++ /dev/null @@ -1,31 +0,0 @@ -package hexutils - -import ( - "encoding/hex" - "fmt" - "log" - "regexp" -) - -// HexToBytes convert a hex string to a byte sequence. -// The hex string can have spaces between bytes. -func HexToBytes(s string) []byte { - s = regexp.MustCompile(" ").ReplaceAllString(s, "") - b := make([]byte, hex.DecodedLen(len(s))) - _, err := hex.Decode(b, []byte(s)) - if err != nil { - log.Fatal(err) - } - - return b[:] -} - -// BytesToHexWithSpaces returns an hex string of b adding spaces between bytes. -func BytesToHexWithSpaces(b []byte) string { - return fmt.Sprintf("% X", b) -} - -// BytesToHex returns an hex string of b. -func BytesToHex(b []byte) string { - return fmt.Sprintf("%X", b) -} diff --git a/vendor/github.com/status-im/keycard-go/identifiers/identifiers.go b/vendor/github.com/status-im/keycard-go/identifiers/identifiers.go deleted file mode 100644 index fafc50f4..00000000 --- a/vendor/github.com/status-im/keycard-go/identifiers/identifiers.go +++ /dev/null @@ -1,25 +0,0 @@ -package identifiers - -import "errors" - -var ( - GlobalPlatformDefaultKey = []byte{0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f} - KeycardDevelopmentKey = []byte{0xc2, 0x12, 0xe0, 0x73, 0xff, 0x8b, 0x4b, 0xbf, 0xaf, 0xf4, 0xde, 0x8a, 0xb6, 0x55, 0x22, 0x1f} - - PackageAID = []byte{0xA0, 0x00, 0x00, 0x08, 0x04, 0x00, 0x01} - KeycardAID = []byte{0xA0, 0x00, 0x00, 0x08, 0x04, 0x00, 0x01, 0x01} - NdefAID = []byte{0xA0, 0x00, 0x00, 0x08, 0x04, 0x00, 0x01, 0x02} - NdefInstanceAID = []byte{0xD2, 0x76, 0x00, 0x00, 0x85, 0x01, 0x01} - - KeycardDefaultInstanceIndex = 1 - - ErrInvalidInstanceIndex = errors.New("instance index must be between 1 and 255") -) - -func KeycardInstanceAID(index int) ([]byte, error) { - if index < 0x01 || index > 0xFF { - return nil, ErrInvalidInstanceIndex - } - - return append(KeycardAID, byte(index)), nil -} diff --git a/vendor/github.com/status-im/keycard-go/io/normal_channel.go b/vendor/github.com/status-im/keycard-go/io/normal_channel.go deleted file mode 100644 index f0ca139f..00000000 --- a/vendor/github.com/status-im/keycard-go/io/normal_channel.go +++ /dev/null @@ -1,54 +0,0 @@ -package io - -import ( - "github.com/ethereum/go-ethereum/log" - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/globalplatform" - "github.com/status-im/keycard-go/hexutils" -) - -var logger = log.New("package", "io") - -// Transmitter defines an interface with one method to transmit raw commands and receive raw responses. -type Transmitter interface { - Transmit([]byte) ([]byte, error) -} - -// NormalChannel implements a normal channel to send apdu commands and receive apdu responses. -type NormalChannel struct { - t Transmitter -} - -// NewNormalChannel returns a new NormalChannel that sends commands to Transmitter t. -func NewNormalChannel(t Transmitter) *NormalChannel { - return &NormalChannel{t} -} - -// Send sends apdu commands to the current Transmitter. -// Based on the smartcard transport protocol (T=0, T=1), it checks responses and sends a Get Response -// command in case of T=0. -func (c *NormalChannel) Send(cmd *apdu.Command) (*apdu.Response, error) { - rawCmd, err := cmd.Serialize() - if err != nil { - return nil, err - } - - logger.Debug("apdu command", "hex", hexutils.BytesToHexWithSpaces(rawCmd)) - rawResp, err := c.t.Transmit(rawCmd) - if err != nil { - return nil, err - } - logger.Debug("apdu response", "hex", hexutils.BytesToHexWithSpaces(rawResp)) - - resp, err := apdu.ParseResponse(rawResp) - if err != nil { - return nil, err - } - - if resp.Sw1 == globalplatform.Sw1ResponseDataIncomplete && (cmd.Cla != globalplatform.ClaISO7816 || cmd.Ins != globalplatform.InsGetResponse) { - getResponse := globalplatform.NewCommandGetResponse(resp.Sw2) - return c.Send(getResponse) - } - - return apdu.ParseResponse(rawResp) -} diff --git a/vendor/github.com/status-im/keycard-go/keycard.go b/vendor/github.com/status-im/keycard-go/keycard.go deleted file mode 100644 index e14d7f4c..00000000 --- a/vendor/github.com/status-im/keycard-go/keycard.go +++ /dev/null @@ -1,5 +0,0 @@ -package keycard - -import "github.com/ethereum/go-ethereum/log" - -var logger = log.New("package", "keycard") diff --git a/vendor/github.com/status-im/keycard-go/secrets.go b/vendor/github.com/status-im/keycard-go/secrets.go deleted file mode 100644 index 64b6f443..00000000 --- a/vendor/github.com/status-im/keycard-go/secrets.go +++ /dev/null @@ -1,94 +0,0 @@ -package keycard - -import ( - "crypto/rand" - "crypto/sha256" - "encoding/base64" - "fmt" - "math/big" - - "github.com/status-im/keycard-go/crypto" - "golang.org/x/crypto/pbkdf2" - "golang.org/x/text/unicode/norm" -) - -const ( - maxPukNumber = int64(999999999999) - maxPinNumber = int64(999999) -) - -// Secrets contains the secret data needed to pair a client with a card. -type Secrets struct { - pin string - puk string - pairingPass string - pairingToken []byte -} - -func NewSecrets(pin, puk, pairingPass string) *Secrets { - return &Secrets{ - pin: pin, - puk: puk, - pairingPass: pairingPass, - pairingToken: generatePairingToken(pairingPass), - } -} - -// GenerateSecrets generate a new Secrets with random puk and pairing password. -func GenerateSecrets() (*Secrets, error) { - pairingPass, err := generatePairingPass() - if err != nil { - return nil, err - } - - puk, err := rand.Int(rand.Reader, big.NewInt(maxPukNumber)) - if err != nil { - return nil, err - } - - pin, err := rand.Int(rand.Reader, big.NewInt(maxPinNumber)) - if err != nil { - return nil, err - } - - return &Secrets{ - pin: fmt.Sprintf("%06d", pin.Int64()), - puk: fmt.Sprintf("%012d", puk.Int64()), - pairingPass: pairingPass, - pairingToken: generatePairingToken(pairingPass), - }, nil -} - -// Pin returns the pin string. -func (s *Secrets) Pin() string { - return s.pin -} - -// Puk returns the puk string. -func (s *Secrets) Puk() string { - return s.puk -} - -// PairingPass returns the pairing password string. -func (s *Secrets) PairingPass() string { - return s.pairingPass -} - -// PairingToken returns the pairing token generated from the random pairing password. -func (s *Secrets) PairingToken() []byte { - return s.pairingToken -} - -func generatePairingPass() (string, error) { - r := make([]byte, 12) - _, err := rand.Read(r) - if err != nil { - return "", err - } - - return base64.URLEncoding.EncodeToString(r), nil -} - -func generatePairingToken(pass string) []byte { - return pbkdf2.Key(norm.NFKD.Bytes([]byte(pass)), norm.NFKD.Bytes([]byte(crypto.PairingTokenSalt)), 50000, 32, sha256.New) -} diff --git a/vendor/github.com/status-im/keycard-go/secure_channel.go b/vendor/github.com/status-im/keycard-go/secure_channel.go deleted file mode 100644 index 277b3a75..00000000 --- a/vendor/github.com/status-im/keycard-go/secure_channel.go +++ /dev/null @@ -1,133 +0,0 @@ -package keycard - -import ( - "bytes" - "crypto/ecdsa" - "errors" - - ethcrypto "github.com/ethereum/go-ethereum/crypto" - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/crypto" - "github.com/status-im/keycard-go/globalplatform" - "github.com/status-im/keycard-go/hexutils" - "github.com/status-im/keycard-go/types" -) - -var ErrInvalidResponseMAC = errors.New("invalid response MAC") - -type SecureChannel struct { - c types.Channel - open bool - secret []byte - publicKey *ecdsa.PublicKey - encKey []byte - macKey []byte - iv []byte -} - -func NewSecureChannel(c types.Channel) *SecureChannel { - return &SecureChannel{ - c: c, - } -} - -func (sc *SecureChannel) GenerateSecret(cardPubKeyData []byte) error { - key, err := ethcrypto.GenerateKey() - if err != nil { - return err - } - - cardPubKey, err := ethcrypto.UnmarshalPubkey(cardPubKeyData) - if err != nil { - return err - } - - sc.publicKey = &key.PublicKey - sc.secret = crypto.GenerateECDHSharedSecret(key, cardPubKey) - - return nil -} - -func (sc *SecureChannel) Reset() { - sc.open = false -} - -func (sc *SecureChannel) Init(iv, encKey, macKey []byte) { - sc.iv = iv - sc.encKey = encKey - sc.macKey = macKey - sc.open = true -} - -func (sc *SecureChannel) Secret() []byte { - return sc.secret -} - -func (sc *SecureChannel) PublicKey() *ecdsa.PublicKey { - return sc.publicKey -} - -func (sc *SecureChannel) RawPublicKey() []byte { - return ethcrypto.FromECDSAPub(sc.publicKey) -} - -func (sc *SecureChannel) Send(cmd *apdu.Command) (*apdu.Response, error) { - if sc.open { - encData, err := crypto.EncryptData(cmd.Data, sc.encKey, sc.iv) - if err != nil { - return nil, err - } - - meta := []byte{cmd.Cla, cmd.Ins, cmd.P1, cmd.P2, byte(len(encData) + 16), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - if err = sc.updateIV(meta, encData); err != nil { - return nil, err - } - - newData := append(sc.iv, encData...) - cmd.Data = newData - } - - resp, err := sc.c.Send(cmd) - if err != nil { - return nil, err - } - - if resp.Sw != globalplatform.SwOK { - return nil, apdu.NewErrBadResponse(resp.Sw, "unexpected sw in secure channel") - } - - rmeta := []byte{byte(len(resp.Data)), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - rmac := resp.Data[:len(sc.iv)] - rdata := resp.Data[len(sc.iv):] - plainData, err := crypto.DecryptData(rdata, sc.encKey, sc.iv) - if err = sc.updateIV(rmeta, rdata); err != nil { - return nil, err - } - - if !bytes.Equal(sc.iv, rmac) { - return nil, ErrInvalidResponseMAC - } - - logger.Debug("apdu response decrypted", "hex", hexutils.BytesToHexWithSpaces(plainData)) - - return apdu.ParseResponse(plainData) -} - -func (sc *SecureChannel) updateIV(meta, data []byte) error { - mac, err := crypto.CalculateMac(meta, data, sc.macKey) - if err != nil { - return err - } - - sc.iv = mac - - return nil -} - -func (sc *SecureChannel) OneShotEncrypt(secrets *Secrets) ([]byte, error) { - pubKeyData := ethcrypto.FromECDSAPub(sc.publicKey) - data := append([]byte(secrets.Pin()), []byte(secrets.Puk())...) - data = append(data, secrets.PairingToken()...) - - return crypto.OneShotEncrypt(pubKeyData, sc.secret, data) -} diff --git a/vendor/github.com/status-im/keycard-go/secure_channel_test.go b/vendor/github.com/status-im/keycard-go/secure_channel_test.go deleted file mode 100644 index b4d040e5..00000000 --- a/vendor/github.com/status-im/keycard-go/secure_channel_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package keycard - -import ( - "errors" - "testing" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/hexutils" - "github.com/stretchr/testify/assert" -) - -type fakeChannel struct { - lastCmd *apdu.Command -} - -func (fc *fakeChannel) Send(cmd *apdu.Command) (*apdu.Response, error) { - fc.lastCmd = cmd - return nil, errors.New("test error") -} - -func TestSecureChannel_Send(t *testing.T) { - c := &fakeChannel{} - sc := &SecureChannel{ - c: c, - encKey: hexutils.HexToBytes("FDBCB1637597CF3F8F5E8263007D4E45F64C12D44066D4576EB1443D60AEF441"), - macKey: hexutils.HexToBytes("2FB70219E6635EE0958AB3F7A428BA87E8CD6E6F873A5725A55F25B102D0F1F7"), - iv: hexutils.HexToBytes("627E64358FA9BDCDAD4442BD8006E0A5"), - open: true, - } - - data := hexutils.HexToBytes("D545A5E95963B6BCED86A6AE826D34C5E06AC64A1217EFFA1415A96674A82500") - - cmd := NewCommandMutuallyAuthenticate(data) - sc.Send(cmd) - - expectedData := "BA796BF8FAD1FD50407B87127B94F5023EF8903AE926EAD8A204F961B8A0EDAEE7CCCFE7F7F6380CE2C6F188E598E4468B7DEDD0E807C18CCBDA71A55F3E1F9A" - assert.Equal(t, expectedData, hexutils.BytesToHex(c.lastCmd.Data)) - - expectedIV := "BA796BF8FAD1FD50407B87127B94F502" - assert.Equal(t, expectedIV, hexutils.BytesToHex(sc.iv)) -} diff --git a/vendor/github.com/status-im/keycard-go/types/application_info.go b/vendor/github.com/status-im/keycard-go/types/application_info.go deleted file mode 100644 index 1c2bf9d7..00000000 --- a/vendor/github.com/status-im/keycard-go/types/application_info.go +++ /dev/null @@ -1,126 +0,0 @@ -package types - -import ( - "errors" - - "github.com/status-im/keycard-go/apdu" -) - -var ErrWrongApplicationInfoTemplate = errors.New("wrong application info template") - -type Capability uint8 - -const ( - TagSelectResponsePreInitialized uint8 = 0x80 - TagApplicationStatusTemplate uint8 = 0xA3 - TagApplicationInfoTemplate uint8 = 0xA4 - TagApplicationInfoCapabilities uint8 = 0x8D -) - -const ( - CapabilitySecureChannel Capability = 1 << iota - CapabilityKeyManagement - CapabilityCredentialsManagement - CapabilityNDEF - - CapabilityAll = CapabilitySecureChannel | - CapabilityKeyManagement | - CapabilityCredentialsManagement | - CapabilityNDEF -) - -type ApplicationInfo struct { - Installed bool - Initialized bool - InstanceUID []byte - SecureChannelPublicKey []byte - Version []byte - AvailableSlots []byte - // KeyUID is the sha256 of of the master public key on the card. - // It's empty if the card doesn't contain any key. - KeyUID []byte - Capabilities Capability -} - -func (a *ApplicationInfo) HasCapability(c Capability) bool { - return a.Capabilities&c == c -} - -func (a *ApplicationInfo) HasSecureChannelCapability() bool { - return a.HasCapability(CapabilitySecureChannel) -} - -func (a *ApplicationInfo) HasKeyManagementCapability() bool { - return a.HasCapability(CapabilityKeyManagement) -} - -func (a *ApplicationInfo) HasCredentialsManagementCapability() bool { - return a.HasCapability(CapabilityCredentialsManagement) -} - -func (a *ApplicationInfo) HasNDEFCapability() bool { - return a.HasCapability(CapabilityNDEF) -} - -func ParseApplicationInfo(data []byte) (*ApplicationInfo, error) { - info := &ApplicationInfo{ - Installed: true, - } - - if data[0] == TagSelectResponsePreInitialized { - info.SecureChannelPublicKey = data[2:] - info.Capabilities = CapabilityCredentialsManagement - - if len(info.SecureChannelPublicKey) > 0 { - info.Capabilities = info.Capabilities | CapabilitySecureChannel - } - - return info, nil - } - - info.Initialized = true - - if data[0] != TagApplicationInfoTemplate { - return nil, ErrWrongApplicationInfoTemplate - } - - instanceUID, err := apdu.FindTag(data, TagApplicationInfoTemplate, uint8(0x8F)) - if err != nil { - return nil, err - } - - pubKey, err := apdu.FindTag(data, TagApplicationInfoTemplate, uint8(0x80)) - if err != nil { - return nil, err - } - - appVersion, err := apdu.FindTag(data, TagApplicationInfoTemplate, uint8(0x02)) - if err != nil { - return nil, err - } - - availableSlots, err := apdu.FindTagN(data, 1, TagApplicationInfoTemplate, uint8(0x02)) - if err != nil { - return nil, err - } - - keyUID, err := apdu.FindTagN(data, 0, TagApplicationInfoTemplate, uint8(0x8E)) - if err != nil { - return nil, err - } - - capabilities := CapabilityAll - capabilitiesBytes, err := apdu.FindTag(data, TagApplicationInfoCapabilities) - if err == nil && len(capabilitiesBytes) > 0 { - capabilities = Capability(capabilitiesBytes[0]) - } - - info.InstanceUID = instanceUID - info.SecureChannelPublicKey = pubKey - info.Version = appVersion - info.AvailableSlots = availableSlots - info.KeyUID = keyUID - info.Capabilities = capabilities - - return info, nil -} diff --git a/vendor/github.com/status-im/keycard-go/types/application_status.go b/vendor/github.com/status-im/keycard-go/types/application_status.go deleted file mode 100644 index 12eece3e..00000000 --- a/vendor/github.com/status-im/keycard-go/types/application_status.go +++ /dev/null @@ -1,58 +0,0 @@ -package types - -import ( - "bytes" - "errors" - - "github.com/status-im/keycard-go/apdu" - "github.com/status-im/keycard-go/derivationpath" -) - -const hardenedStart = 0x80000000 // 2^31 - -var ErrApplicationStatusTemplateNotFound = errors.New("application status template not found") - -type ApplicationStatus struct { - PinRetryCount int - PUKRetryCount int - KeyInitialized bool - Path string -} - -func ParseApplicationStatus(data []byte) (*ApplicationStatus, error) { - tpl, err := apdu.FindTag(data, TagApplicationStatusTemplate) - if err != nil { - return parseKeyPathStatus(data) - } - - appStatus := &ApplicationStatus{} - - if pinRetryCount, err := apdu.FindTag(tpl, uint8(0x02)); err == nil && len(pinRetryCount) == 1 { - appStatus.PinRetryCount = int(pinRetryCount[0]) - } - - if pukRetryCount, err := apdu.FindTagN(tpl, 1, uint8(0x02)); err == nil && len(pukRetryCount) == 1 { - appStatus.PUKRetryCount = int(pukRetryCount[0]) - } - - if keyInitialized, err := apdu.FindTag(tpl, uint8(0x01)); err == nil { - if bytes.Equal(keyInitialized, []byte{0xFF}) { - appStatus.KeyInitialized = true - } - } - - return appStatus, nil -} - -func parseKeyPathStatus(data []byte) (*ApplicationStatus, error) { - appStatus := &ApplicationStatus{} - - path, err := derivationpath.EncodeFromBytes(data) - if err != nil { - return nil, err - } - - appStatus.Path = path - - return appStatus, nil -} diff --git a/vendor/github.com/status-im/keycard-go/types/signature.go b/vendor/github.com/status-im/keycard-go/types/signature.go deleted file mode 100644 index bd435e78..00000000 --- a/vendor/github.com/status-im/keycard-go/types/signature.go +++ /dev/null @@ -1,86 +0,0 @@ -package types - -import ( - "bytes" - - "github.com/ethereum/go-ethereum/crypto" - "github.com/status-im/keycard-go/apdu" -) - -var ( - TagSignatureTemplate = uint8(0xA0) -) - -type Signature struct { - pubKey []byte - r []byte - s []byte - v byte -} - -func ParseSignature(message, resp []byte) (*Signature, error) { - pubKey, err := apdu.FindTag(resp, TagSignatureTemplate, uint8(0x80)) - if err != nil { - return nil, err - } - - r, err := apdu.FindTagN(resp, 0, TagSignatureTemplate, uint8(0x30), uint8(0x02)) - if err != nil { - return nil, err - } - - if len(r) > 32 { - r = r[len(r)-32:] - } - - s, err := apdu.FindTagN(resp, 1, TagSignatureTemplate, uint8(0x30), uint8(0x02)) - if err != nil { - return nil, err - } - - v, err := calculateV(message, pubKey, r, s) - if err != nil { - return nil, err - } - - return &Signature{ - pubKey: pubKey, - r: r, - s: s, - v: v, - }, nil -} - -func (s *Signature) PubKey() []byte { - return s.pubKey -} - -func (s *Signature) R() []byte { - return s.r -} - -func (s *Signature) S() []byte { - return s.s -} - -func (s *Signature) V() byte { - return s.v -} - -func calculateV(message, pubKey, r, s []byte) (v byte, err error) { - rs := append(r, s...) - for i := 0; i < 2; i++ { - v = byte(i) - sig := append(rs, v) - rec, err := crypto.Ecrecover(message, sig) - if err != nil { - return v, err - } - - if bytes.Equal(pubKey, rec) { - return v, nil - } - } - - return v, err -} diff --git a/vendor/github.com/status-im/keycard-go/types/types.go b/vendor/github.com/status-im/keycard-go/types/types.go deleted file mode 100644 index edcb8367..00000000 --- a/vendor/github.com/status-im/keycard-go/types/types.go +++ /dev/null @@ -1,13 +0,0 @@ -package types - -import "github.com/status-im/keycard-go/apdu" - -// Channel is an interface with a Send method to send apdu commands and receive apdu responses. -type Channel interface { - Send(*apdu.Command) (*apdu.Response, error) -} - -type PairingInfo struct { - Key []byte - Index int -} diff --git a/vendor/github.com/tyler-smith/go-bip39/bip39_test.go b/vendor/github.com/tyler-smith/go-bip39/bip39_test.go deleted file mode 100644 index 5763baca..00000000 --- a/vendor/github.com/tyler-smith/go-bip39/bip39_test.go +++ /dev/null @@ -1,405 +0,0 @@ -package bip39 - -import ( - "crypto/rand" - "encoding/hex" - "testing" -) - -type vector struct { - entropy string - mnemonic string - seed string -} - -func TestNewMnemonic(t *testing.T) { - for _, vector := range testVectors() { - entropy, err := hex.DecodeString(vector.entropy) - assertNil(t, err) - - mnemonic, err := NewMnemonic(entropy) - assertNil(t, err) - assertEqualString(t, vector.mnemonic, mnemonic) - - _, err = NewSeedWithErrorChecking(mnemonic, "TREZOR") - assertNil(t, err) - - seed := NewSeed(mnemonic, "TREZOR") - assertEqualString(t, vector.seed, hex.EncodeToString(seed)) - } -} - -func TestNewMnemonicInvalidEntropy(t *testing.T) { - _, err := NewMnemonic([]byte{}) - assertNotNil(t, err) -} - -func TestNewSeedWithErrorCheckingInvalidMnemonics(t *testing.T) { - for _, vector := range badMnemonicSentences() { - _, err := NewSeedWithErrorChecking(vector.mnemonic, "TREZOR") - assertNotNil(t, err) - } -} - -func TestIsMnemonicValid(t *testing.T) { - for _, vector := range badMnemonicSentences() { - assertFalse(t, IsMnemonicValid(vector.mnemonic)) - } - - for _, vector := range testVectors() { - assertTrue(t, IsMnemonicValid(vector.mnemonic)) - } -} - -func TestInvalidMnemonicFails(t *testing.T) { - for _, vector := range badMnemonicSentences() { - _, err := MnemonicToByteArray(vector.mnemonic) - assertNotNil(t, err) - } - - _, err := MnemonicToByteArray("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon yellow") - assertNotNil(t, err) - assertEqual(t, err, ErrChecksumIncorrect) -} - -func TestNewEntropy(t *testing.T) { - // Good tests. - for i := 128; i <= 256; i += 32 { - _, err := NewEntropy(i) - assertNil(t, err) - } - // Bad Values - for i := 0; i <= 256; i++ { - if i%8 != 0 { - _, err := NewEntropy(i) - assertNotNil(t, err) - } - } -} - -func TestMnemonicToByteArrayForDifferentArrayLangths(t *testing.T) { - max := 1000 - for i := 0; i < max; i++ { - //16, 20, 24, 28, 32 - length := 16 + (i%5)*4 - seed := make([]byte, length) - if n, err := rand.Read(seed); err != nil { - t.Errorf("%v", err) - } else if n != length { - t.Errorf("Wrong number of bytes read: %d", n) - } - - mnemonic, err := NewMnemonic(seed) - if err != nil { - t.Errorf("%v", err) - } - - _, err = MnemonicToByteArray(mnemonic) - if err != nil { - t.Errorf("Failed for %x - %v", seed, mnemonic) - } - } -} -func TestPadByteSlice(t *testing.T) { - assertEqualByteSlices(t, []byte{0}, padByteSlice([]byte{}, 1)) - assertEqualByteSlices(t, []byte{0, 1}, padByteSlice([]byte{1}, 2)) - assertEqualByteSlices(t, []byte{1, 1}, padByteSlice([]byte{1, 1}, 2)) - assertEqualByteSlices(t, []byte{1, 1, 1}, padByteSlice([]byte{1, 1, 1}, 2)) -} - -func TestCompareByteSlices(t *testing.T) { - assertTrue(t, compareByteSlices([]byte{}, []byte{})) - assertTrue(t, compareByteSlices([]byte{1}, []byte{1})) - assertFalse(t, compareByteSlices([]byte{1}, []byte{0})) - assertFalse(t, compareByteSlices([]byte{1}, []byte{})) - assertFalse(t, compareByteSlices([]byte{1}, nil)) -} - -func assertNil(t *testing.T, object interface{}) { - if object != nil { - t.Errorf("Expected nil, got %v", object) - } -} - -func assertNotNil(t *testing.T, object interface{}) { - if object == nil { - t.Error("Expected not nil") - } -} - -func assertTrue(t *testing.T, a bool) { - if !a { - t.Error("Expected true, got false") - } -} - -func assertFalse(t *testing.T, a bool) { - if a { - t.Error("Expected false, got true") - } -} - -func assertEqual(t *testing.T, a, b interface{}) { - if a != b { - t.Errorf("Objects not equal, expected `%s` and got `%s`", a, b) - } -} - -func assertEqualString(t *testing.T, a, b string) { - if a != b { - t.Errorf("Strings not equal, expected `%s` and got `%s`", a, b) - } -} - -func assertEqualByteSlices(t *testing.T, a, b []byte) { - if len(a) != len(b) { - t.Errorf("Byte slices not equal, expected %v and got %v", a, b) - return - } - for i := range a { - if a[i] != b[i] { - t.Errorf("Byte slices not equal, expected %v and got %v", a, b) - return - } - } -} - -func TestMnemonicToByteArrayForZeroLeadingSeeds(t *testing.T) { - ms := []string{ - "00000000000000000000000000000000", - "00a84c51041d49acca66e6160c1fa999", - "00ca45df1673c76537a2020bfed1dafd", - "0019d5871c7b81fd83d474ef1c1e1dae", - "00dcb021afb35ffcdd1d032d2056fc86", - "0062be7bd09a27288b6cf0eb565ec739", - "00dc705b5efa0adf25b9734226ba60d4", - "0017747418d54c6003fa64fade83374b", - "000d44d3ee7c3dfa45e608c65384431b", - "008241c1ef976b0323061affe5bf24b9", - "00a6aec77e4d16bea80b50a34991aaba", - "0011527b8c6ddecb9d0c20beccdeb58d", - "001c938c503c8f5a2bba2248ff621546", - "0002f90aaf7a8327698f0031b6317c36", - "00bff43071ed7e07f77b14f615993bac", - "00da143e00ef17fc63b6fb22dcc2c326", - "00ffc6764fb32a354cab1a3ddefb015d", - "0062ef47e0985e8953f24760b7598cdd", - "003bf9765064f71d304908d906c065f5", - "00993851503471439d154b3613947474", - "007ad0ffe9eae753a483a76af06dfa67", - "00091824db9ec19e663bee51d64c83cc", - "00f48ac621f7e3cb39b2012ac3121543", - "0072917415cdca24dfa66c4a92c885b4", - "0027ced2b279ea8a91d29364487cdbf4", - "00b9c0d37fb10ba272e55842ad812583", - "004b3d0d2b9285946c687a5350479c8c", - "00c7c12a37d3a7f8c1532b17c89b724c", - "00f400c5545f06ae17ad00f3041e4e26", - "001e290be10df4d209f247ac5878662b", - "00bf0f74568e582a7dd1ee64f792ec8b", - "00d2e43ecde6b72b847db1539ed89e23", - "00cecba6678505bb7bfec8ed307251f6", - "000aeed1a9edcbb4bc88f610d3ce84eb", - "00d06206aadfc25c2b21805d283f15ae", - "00a31789a2ab2d54f8fadd5331010287", - "003493c5f520e8d5c0483e895a121dc9", - "004706112800b76001ece2e268bc830e", - "00ab31e28bb5305be56e38337dbfa486", - "006872fe85df6b0fa945248e6f9379d1", - "00717e5e375da6934e3cfdf57edaf3bd", - "007f1b46e7b9c4c76e77c434b9bccd6b", - "00dc93735aa35def3b9a2ff676560205", - "002cd5dcd881a49c7b87714c6a570a76", - "0013b5af9e13fac87e0c505686cfb6bf", - "007ab1ec9526b0bc04b64ae65fd42631", - "00abb4e11d8385c1cca905a6a65e9144", - "00574fc62a0501ad8afada2e246708c3", - "005207e0a815bb2da6b4c35ec1f2bf52", - "00f3460f136fb9700080099cbd62bc18", - "007a591f204c03ca7b93981237112526", - "00cfe0befd428f8e5f83a5bfc801472e", - "00987551ac7a879bf0c09b8bc474d9af", - "00cadd3ce3d78e49fbc933a85682df3f", - "00bfbf2e346c855ccc360d03281455a1", - "004cdf55d429d028f715544ce22d4f31", - "0075c84a7d15e0ac85e1e41025eed23b", - "00807dddd61f71725d336cab844d2cb5", - "00422f21b77fe20e367467ed98c18410", - "00b44d0ac622907119c626c850a462fd", - "00363f5e7f22fc49f3cd662a28956563", - "000fe5837e68397bbf58db9f221bdc4e", - "0056af33835c888ef0c22599686445d3", - "00790a8647fd3dfb38b7e2b6f578f2c6", - "00da8d9009675cb7beec930e263014fb", - "00d4b384540a5bb54aa760edaa4fb2fe", - "00be9b1479ed680fdd5d91a41eb926d0", - "009182347502af97077c40a6e74b4b5c", - "00f5c90ee1c67fa77fd821f8e9fab4f1", - "005568f9a2dd6b0c0cc2f5ba3d9cac38", - "008b481f8678577d9cf6aa3f6cd6056b", - "00c4323ece5e4fe3b6cd4c5c932931af", - "009791f7550c3798c5a214cb2d0ea773", - "008a7baab22481f0ad8167dd9f90d55c", - "00f0e601519aafdc8ff94975e64c946d", - "0083b61e0daa9219df59d697c270cd31", - } - - for _, m := range ms { - seed, _ := hex.DecodeString(m) - - mnemonic, err := NewMnemonic(seed) - if err != nil { - t.Errorf("%v", err) - } - - _, err = MnemonicToByteArray(mnemonic) - if err != nil { - t.Errorf("Failed for %x - %v", seed, mnemonic) - } - } -} - -func badMnemonicSentences() []vector { - return []vector{ - {mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon"}, - {mnemonic: "legal winner thank year wave sausage worth useful legal winner thank yellow yellow"}, - {mnemonic: "letter advice cage absurd amount doctor acoustic avoid letter advice caged above"}, - {mnemonic: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo, wrong"}, - {mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon"}, - {mnemonic: "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will will will"}, - {mnemonic: "letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always."}, - {mnemonic: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo why"}, - {mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art art"}, - {mnemonic: "legal winner thank year wave sausage worth useful legal winner thanks year wave worth useful legal winner thank year wave sausage worth title"}, - {mnemonic: "letter advice cage absurd amount doctor acoustic avoid letters advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless"}, - {mnemonic: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo voted"}, - {mnemonic: "jello better achieve collect unaware mountain thought cargo oxygen act hood bridge"}, - {mnemonic: "renew, stay, biology, evidence, goat, welcome, casual, join, adapt, armor, shuffle, fault, little, machine, walk, stumble, urge, swap"}, - {mnemonic: "dignity pass list indicate nasty"}, - } -} - -func testVectors() []vector { - return []vector{ - { - entropy: "00000000000000000000000000000000", - mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about", - seed: "c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04", - }, - { - entropy: "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", - mnemonic: "legal winner thank year wave sausage worth useful legal winner thank yellow", - seed: "2e8905819b8723fe2c1d161860e5ee1830318dbf49a83bd451cfb8440c28bd6fa457fe1296106559a3c80937a1c1069be3a3a5bd381ee6260e8d9739fce1f607", - }, - { - entropy: "80808080808080808080808080808080", - mnemonic: "letter advice cage absurd amount doctor acoustic avoid letter advice cage above", - seed: "d71de856f81a8acc65e6fc851a38d4d7ec216fd0796d0a6827a3ad6ed5511a30fa280f12eb2e47ed2ac03b5c462a0358d18d69fe4f985ec81778c1b370b652a8", - }, - { - entropy: "ffffffffffffffffffffffffffffffff", - mnemonic: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong", - seed: "ac27495480225222079d7be181583751e86f571027b0497b5b5d11218e0a8a13332572917f0f8e5a589620c6f15b11c61dee327651a14c34e18231052e48c069", - }, - { - entropy: "000000000000000000000000000000000000000000000000", - mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent", - seed: "035895f2f481b1b0f01fcf8c289c794660b289981a78f8106447707fdd9666ca06da5a9a565181599b79f53b844d8a71dd9f439c52a3d7b3e8a79c906ac845fa", - }, - { - entropy: "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", - mnemonic: "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will", - seed: "f2b94508732bcbacbcc020faefecfc89feafa6649a5491b8c952cede496c214a0c7b3c392d168748f2d4a612bada0753b52a1c7ac53c1e93abd5c6320b9e95dd", - }, - { - entropy: "808080808080808080808080808080808080808080808080", - mnemonic: "letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always", - seed: "107d7c02a5aa6f38c58083ff74f04c607c2d2c0ecc55501dadd72d025b751bc27fe913ffb796f841c49b1d33b610cf0e91d3aa239027f5e99fe4ce9e5088cd65", - }, - { - entropy: "ffffffffffffffffffffffffffffffffffffffffffffffff", - mnemonic: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when", - seed: "0cd6e5d827bb62eb8fc1e262254223817fd068a74b5b449cc2f667c3f1f985a76379b43348d952e2265b4cd129090758b3e3c2c49103b5051aac2eaeb890a528", - }, - { - entropy: "0000000000000000000000000000000000000000000000000000000000000000", - mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art", - seed: "bda85446c68413707090a52022edd26a1c9462295029f2e60cd7c4f2bbd3097170af7a4d73245cafa9c3cca8d561a7c3de6f5d4a10be8ed2a5e608d68f92fcc8", - }, - { - entropy: "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", - mnemonic: "legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title", - seed: "bc09fca1804f7e69da93c2f2028eb238c227f2e9dda30cd63699232578480a4021b146ad717fbb7e451ce9eb835f43620bf5c514db0f8add49f5d121449d3e87", - }, - { - entropy: "8080808080808080808080808080808080808080808080808080808080808080", - mnemonic: "letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless", - seed: "c0c519bd0e91a2ed54357d9d1ebef6f5af218a153624cf4f2da911a0ed8f7a09e2ef61af0aca007096df430022f7a2b6fb91661a9589097069720d015e4e982f", - }, - { - entropy: "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - mnemonic: "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote", - seed: "dd48c104698c30cfe2b6142103248622fb7bb0ff692eebb00089b32d22484e1613912f0a5b694407be899ffd31ed3992c456cdf60f5d4564b8ba3f05a69890ad", - }, - { - entropy: "77c2b00716cec7213839159e404db50d", - mnemonic: "jelly better achieve collect unaware mountain thought cargo oxygen act hood bridge", - seed: "b5b6d0127db1a9d2226af0c3346031d77af31e918dba64287a1b44b8ebf63cdd52676f672a290aae502472cf2d602c051f3e6f18055e84e4c43897fc4e51a6ff", - }, - { - entropy: "b63a9c59a6e641f288ebc103017f1da9f8290b3da6bdef7b", - mnemonic: "renew stay biology evidence goat welcome casual join adapt armor shuffle fault little machine walk stumble urge swap", - seed: "9248d83e06f4cd98debf5b6f010542760df925ce46cf38a1bdb4e4de7d21f5c39366941c69e1bdbf2966e0f6e6dbece898a0e2f0a4c2b3e640953dfe8b7bbdc5", - }, - { - entropy: "3e141609b97933b66a060dcddc71fad1d91677db872031e85f4c015c5e7e8982", - mnemonic: "dignity pass list indicate nasty swamp pool script soccer toe leaf photo multiply desk host tomato cradle drill spread actor shine dismiss champion exotic", - seed: "ff7f3184df8696d8bef94b6c03114dbee0ef89ff938712301d27ed8336ca89ef9635da20af07d4175f2bf5f3de130f39c9d9e8dd0472489c19b1a020a940da67", - }, - { - entropy: "0460ef47585604c5660618db2e6a7e7f", - mnemonic: "afford alter spike radar gate glance object seek swamp infant panel yellow", - seed: "65f93a9f36b6c85cbe634ffc1f99f2b82cbb10b31edc7f087b4f6cb9e976e9faf76ff41f8f27c99afdf38f7a303ba1136ee48a4c1e7fcd3dba7aa876113a36e4", - }, - { - entropy: "72f60ebac5dd8add8d2a25a797102c3ce21bc029c200076f", - mnemonic: "indicate race push merry suffer human cruise dwarf pole review arch keep canvas theme poem divorce alter left", - seed: "3bbf9daa0dfad8229786ace5ddb4e00fa98a044ae4c4975ffd5e094dba9e0bb289349dbe2091761f30f382d4e35c4a670ee8ab50758d2c55881be69e327117ba", - }, - { - entropy: "2c85efc7f24ee4573d2b81a6ec66cee209b2dcbd09d8eddc51e0215b0b68e416", - mnemonic: "clutch control vehicle tonight unusual clog visa ice plunge glimpse recipe series open hour vintage deposit universe tip job dress radar refuse motion taste", - seed: "fe908f96f46668b2d5b37d82f558c77ed0d69dd0e7e043a5b0511c48c2f1064694a956f86360c93dd04052a8899497ce9e985ebe0c8c52b955e6ae86d4ff4449", - }, - { - entropy: "eaebabb2383351fd31d703840b32e9e2", - mnemonic: "turtle front uncle idea crush write shrug there lottery flower risk shell", - seed: "bdfb76a0759f301b0b899a1e3985227e53b3f51e67e3f2a65363caedf3e32fde42a66c404f18d7b05818c95ef3ca1e5146646856c461c073169467511680876c", - }, - { - entropy: "7ac45cfe7722ee6c7ba84fbc2d5bd61b45cb2fe5eb65aa78", - mnemonic: "kiss carry display unusual confirm curtain upgrade antique rotate hello void custom frequent obey nut hole price segment", - seed: "ed56ff6c833c07982eb7119a8f48fd363c4a9b1601cd2de736b01045c5eb8ab4f57b079403485d1c4924f0790dc10a971763337cb9f9c62226f64fff26397c79", - }, - { - entropy: "4fa1a8bc3e6d80ee1316050e862c1812031493212b7ec3f3bb1b08f168cabeef", - mnemonic: "exile ask congress lamp submit jacket era scheme attend cousin alcohol catch course end lucky hurt sentence oven short ball bird grab wing top", - seed: "095ee6f817b4c2cb30a5a797360a81a40ab0f9a4e25ecd672a3f58a0b5ba0687c096a6b14d2c0deb3bdefce4f61d01ae07417d502429352e27695163f7447a8c", - }, - { - entropy: "18ab19a9f54a9274f03e5209a2ac8a91", - mnemonic: "board flee heavy tunnel powder denial science ski answer betray cargo cat", - seed: "6eff1bb21562918509c73cb990260db07c0ce34ff0e3cc4a8cb3276129fbcb300bddfe005831350efd633909f476c45c88253276d9fd0df6ef48609e8bb7dca8", - }, - { - entropy: "18a2e1d81b8ecfb2a333adcb0c17a5b9eb76cc5d05db91a4", - mnemonic: "board blade invite damage undo sun mimic interest slam gaze truly inherit resist great inject rocket museum chief", - seed: "f84521c777a13b61564234bf8f8b62b3afce27fc4062b51bb5e62bdfecb23864ee6ecf07c1d5a97c0834307c5c852d8ceb88e7c97923c0a3b496bedd4e5f88a9", - }, - { - entropy: "15da872c95a13dd738fbf50e427583ad61f18fd99f628c417a61cf8343c90419", - mnemonic: "beyond stage sleep clip because twist token leaf atom beauty genius food business side grid unable middle armed observe pair crouch tonight away coconut", - seed: "b15509eaa2d09d3efd3e006ef42151b30367dc6e3aa5e44caba3fe4d3e352e65101fbdb86a96776b91946ff06f8eac594dc6ee1d3e82a42dfe1b40fef6bcc3fd", - }, - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/.gitignore b/vendor/github.com/vulcanize/eth-block-extractor/.gitignore deleted file mode 100644 index d5d206f2..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.DS_Store -.idea -blocks/* -block_watcher -eth-block-extractor -environments/*.toml diff --git a/vendor/github.com/vulcanize/eth-block-extractor/.travis.yml b/vendor/github.com/vulcanize/eth-block-extractor/.travis.yml deleted file mode 100644 index fb1ac220..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -dist: trusty -language: go -go: - - 1.9 - -go_import_path: github.com/vulcanize/eth-block-extractor - -before_install: - # ginkgo golint dep - - make installtools - -script: - - make test diff --git a/vendor/github.com/vulcanize/eth-block-extractor/Makefile b/vendor/github.com/vulcanize/eth-block-extractor/Makefile deleted file mode 100644 index 5aa08828..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -BIN = $(GOPATH)/bin -BASE = $(GOPATH)/src/$(PACKAGE) -PKGS = go list ./... | grep -v "^vendor/" - -default: build - -GOVENDOR = $(BIN)/govendor -$(BIN)/govendor: - go get -u github.com/kardianos/govendor - -GINKGO = $(BIN)/ginkgo -$(BIN)/ginkgo: - go get -u github.com/onsi/ginkgo/ginkgo - -GX = $(BIN)/gx -$(BIN)/gx: - go get -v -u github.com/whyrusleeping/gx - $(GX) install --global - -LINT = $(BIN)/golint -$(BIN)/golint: - go get github.com/golang/lint/golint - -METALINT = $(BIN)/gometalinter.v2 -$(BIN)/gometalinter.v2: - go get -u gopkg.in/alecthomas/gometalinter.v2 - $(METALINT) --install - -.PHONY: installtools -installtools: | $(LINT) $(GINKGO) $(GX) $(GOVENDOR) - echo "Installing tools" - -.PHONY: metalint -metalint: | $(METALINT) - $(METALINT) ./... --vendor \ - --fast \ - --exclude="exported (function)|(var)|(method)|(type).*should have comment or be unexported" \ - --format="{{.Path.Abs}}:{{.Line}}:{{if .Col}}{{.Col}}{{end}}:{{.Severity}}: {{.Message}} ({{.Linter}})" - -.PHONY: lint -lint: - $(LINT) $$($(PKGS)) | grep -v -E "exported (function)|(var)|(method)|(type).*should have comment or be unexported" - -.PHONY: test -test: | $(GINKGO) $(LINT) - go vet ./... - go fmt ./... - $(GINKGO) -r - -.PHONY: govendor -dep: | $(GOVENDOR) - $(GOVENDOR) fetch -v +missing - -build: govendor fixlibcrypto - go fmt ./... - go build - -.PHONY: fixlibcrypto -fixlibcrypto: - mkdir tmp-go-ethereum - git clone https://github.com/ethereum/go-ethereum.git tmp-go-ethereum - cp -r "tmp-go-ethereum/crypto/secp256k1/libsecp256k1" "vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/" - rm -rf "tmp-go-ethereum" diff --git a/vendor/github.com/vulcanize/eth-block-extractor/README.md b/vendor/github.com/vulcanize/eth-block-extractor/README.md deleted file mode 100644 index f4e2536a..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Eth Block Extractor - -[![Build Status](https://travis-ci.org/vulcanize/eth-block-extractor.svg?branch=master)](https://travis-ci.org/vulcanize/eth-block-extractor) - -## Description -A [VulcanizeDB](https://github.com/vulcanize/VulcanizeDB) transformer for creating IPLDs for Ethereum block data. - -## Dependencies - - Go 1.9+ - - Postgres 10 - - Ethereum Node - - [Go Ethereum](https://ethereum.github.io/go-ethereum/downloads/) (1.8+) - - [IPFS](https://github.com/ipfs/go-ipfs#build-from-source) - - [go-ipld-eth](https://github.com/ipfs/go-ipld-eth) (Plugin enabling conversion of block headers to IPLDs in IPFS) - -## Installation -1. Setup Postgres and an Ethereum node - see [VulcanizeDB README](https://github.com/vulcanize/VulcanizeDB/blob/master/README.md). -1. Sync VulcanizeDB to populate core block data (commands will read block data from VulcanizeDB to fetch and persist block RLP data). -1. `git clone git@github.com:vulcanize/eth-block-extractor.git` - - _note: `go get` does not work for this project because need to run the (fixlibcrypto)[https://github.com/vulcanize/eth-block-extractor/blob/master/Makefile] command along with `go build`._ -1. Build: - ``` - make build - ``` - -## Configuration -- To use a local Ethereum node, copy `environments/public.toml.example` to - `environments/public.toml` and update the `levelDbPath` to the local node's levelDB filepath: - - when using geth: - - The LevelDB file is called `chaindata`. - - The LevelDB file path is printed to the console when you start geth. - - The default location is: - - Mac: `$HOME/Library/Ethereum` - - Linux: `$HOME/.ethereum` - -## Running the createIpldForBlockHeader command -- This command creates an IPLD for the header of a single Ethereum block. -- `./eth-block-extractor createIpldForBlockHeader --config --block-number ` - -## Running the createIpldForBlockHeaders command -- This command creates IPLDs for headers in a range of Ethereum blocks. -- `./eth-block-extractor createIpldForBlockHeaders --config --starting-block-number --ending-block-number ` -- Note: ending block number must be greater than starting block number. - -## Running the createIpldsForBlockTransactions command -- This command creates IPLDs for transactions on an Ethereum block. -- `./eth-block-extractor createIpldsForBlockTransactions --config --block-number ` - -## Running the createIpldsForBlocksTransactions command -- This command creates IPLDs for transactions on a range of Ethereum blocks. -- `./eth-block-extractor createIpldsForBlocksTransactions --config --starting-block-number --ending-block-number ` -- Note: ending block number must be greater than starting block number. - -## Running the createIpldsForBlockReceipts command -- This command creates IPLDs for transaction receipts on an Ethereum block. -- `./eth-block-extractor createIpldsForBlockReceipts --config --block-number ` - -## Running the createIpldsForBlocksReceipts command -- This command creates IPLDs for transaction receipts in a range of Ethereum blocks. -- `./eth-block-extractor createIpldsForBlocksReceipts --config --starting-block-number --ending-block-number ` -- Note: ending block number must be greater than starting block number. - -## Running the createIpldsForStateTrie command -- Note: this command is _very_ expensive in terms of time and memory. Probably only feasible to execute on an archive node for a narrow range of blocks. -- This command creates IPLDs for state and storage trie nodes in a range of Ethereum blocks. -- `./eth-block-extractor createIpldsForStateTrie --config --starting-block-number --ending-block-number ` -- Note: - - Optionally pass the `--compute-state` flag if not running an archive node (in which case state is pruned) - this will dynamically generate the state for each block by processing transactions. - - Computing state requires beginning at the genesis block, so starting block number flag is ignored if not 0. - - Ending block number must be greater than starting block number. - -## Running the tests -``` -ginkgo -r -``` - diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldForBlockHeader.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldForBlockHeader.go deleted file mode 100644 index d1c874b6..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldForBlockHeader.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "log" - - "github.com/spf13/cobra" - - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/rlp" -) - -// createIpldForBlockHeaderCmd represents the createIpldForBlockHeader command -var createIpldForBlockHeaderCmd = &cobra.Command{ - Use: "createIpldForBlockHeader", - Short: "Create an IPLD object for a block.", - Long: `Create an IPLD object for a block. - -e.g. ./eth-block-extractor createIpldForBlockHeader -b 1234567 - -Under the hood, the command fetches the block header RLP data from LevelDB and -puts it in IPFS, converting the data as an 'eth-block'`, - Run: func(cmd *cobra.Command, args []string) { - createIpldForBlockHeader() - }, -} - -func init() { - rootCmd.AddCommand(createIpldForBlockHeaderCmd) - createIpldForBlockHeaderCmd.Flags().Int64VarP(&blockNumber, "block-number", "b", 0, "Create IPLD for this block header.") -} - -func createIpldForBlockHeader() { - // init eth db - ethDBConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - ethDB, err := db.CreateDatabase(ethDBConfig) - if err != nil { - log.Fatal("Error connecting to ethereum db: ", err) - } - - // init ipfs publisher - ipfsNode, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to IPFS: ", err) - } - decoder := rlp.RlpDecoder{} - dagPutter := eth_block_header.NewBlockHeaderDagPutter(*ipfsNode, decoder) - publisher := ipfs.NewIpfsPublisher(dagPutter) - - // execute transformer - transformer := transformers.NewEthBlockHeaderTransformer(ethDB, publisher) - err = transformer.Execute(blockNumber, blockNumber) - if err != nil { - log.Fatal("Error executing transformer: ", err.Error()) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockHeaders.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockHeaders.go deleted file mode 100644 index 695bfbec..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockHeaders.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "log" - - "github.com/spf13/cobra" - - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/rlp" -) - -// createIpldsForBlockHeadersCmd represents the createIpldsForBlockHeaders command -var createIpldsForBlockHeadersCmd = &cobra.Command{ - Use: "createIpldsForBlockHeaders", - Short: "Create IPLD objects for multiple blocks.", - Long: `Create IPLD objects for multiple blocks. - -e.g. ./eth-block-extractor createIpldsForBlockHeaders -s 1234567 -e 4567890 - -Under the hood, the command fetches the block header RLP data from LevelDB and -puts it in IPFS, converting the data as an 'eth-block'.`, - Run: func(cmd *cobra.Command, args []string) { - createIpldsForBlockHeaders() - }, -} - -func init() { - rootCmd.AddCommand(createIpldsForBlockHeadersCmd) - createIpldsForBlockHeadersCmd.Flags().Int64VarP(&startingBlockNumber, "starting-block-number", "s", 0, "First block number to create IPLD for.") - createIpldsForBlockHeadersCmd.Flags().Int64VarP(&endingBlockNumber, "ending-block-number", "e", 5900000, "Last block number to create IPLD for.") -} - -func createIpldsForBlockHeaders() { - // init eth db - ethDBConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - ethDB, err := db.CreateDatabase(ethDBConfig) - if err != nil { - log.Fatal("Error connecting to ethereum db: ", err) - } - - // init ipfs publisher - ipfsNode, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to IPFS: ", err) - } - decoder := rlp.RlpDecoder{} - dagPutter := eth_block_header.NewBlockHeaderDagPutter(*ipfsNode, decoder) - publisher := ipfs.NewIpfsPublisher(dagPutter) - - // execute transformer - transformer := transformers.NewEthBlockHeaderTransformer(ethDB, publisher) - err = transformer.Execute(startingBlockNumber, endingBlockNumber) - if err != nil { - log.Fatal("Error executing transformer: ", err.Error()) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockReceipts.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockReceipts.go deleted file mode 100644 index 51292129..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockReceipts.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "github.com/spf13/cobra" - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "log" -) - -// createIpldsForBlockReceiptsCmd represents the createIpldsForBlockReceipts command -var createIpldsForBlockReceiptsCmd = &cobra.Command{ - Use: "createIpldsForBlockReceipts", - Short: "Create IPLDs for a blocks receipts", - Long: `Fetch a block's receipts and persist them to IPFS as IPLDs'. For example: - -./eth-block-extractor createIpldsForBlockReceipts --block-number 5000000 - -The block number flag specifies the block for which to fetch and persist receipts.`, - Run: func(cmd *cobra.Command, args []string) { - createBlockReceipts() - }, -} - -func init() { - rootCmd.AddCommand(createIpldsForBlockReceiptsCmd) - createIpldsForBlockReceiptsCmd.Flags().Int64VarP(&blockNumber, "block-number", "b", 0, "block for which to create receipt IPLDs") -} - -func createBlockReceipts() { - // init eth db - ethDBConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - ethDB, err := db.CreateDatabase(ethDBConfig) - if err != nil { - log.Fatal("Error connecting to ethereum db: ", err) - } - - // init ipfs publisher - ipfsNode, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to IPFS: ", err) - } - dagPutter := eth_block_receipts.NewEthBlockReceiptDagPutter(ipfsNode) - publisher := ipfs.NewIpfsPublisher(dagPutter) - - // execute transformer - transformer := transformers.NewEthBlockReceiptTransformer(ethDB, publisher) - err = transformer.Execute(blockNumber, blockNumber) - if err != nil { - log.Fatal("Error creating receipt IPLDs for block: ", err) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockTransactions.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockTransactions.go deleted file mode 100644 index 3b8b160f..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlockTransactions.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "log" - - "github.com/spf13/cobra" - - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" -) - -// createIpldsForBlockTransactionsCmd represents the createIpldsForBlockTransactions command -var createIpldsForBlockTransactionsCmd = &cobra.Command{ - Use: "createIpldsForBlockTransactions", - Short: "Create IPLDs for every transaction in a block", - Long: `Create an IPLD for every transaction in a block. For example: - -./eth-block-extractor createIpldsForBlockTransactions --config environments/public.toml --block-number 5000000 - -The block number specifies the block for which to create transaction IPLDs, and is required.`, - Run: func(cmd *cobra.Command, args []string) { - createIpldsForBlockTransactions() - }, -} - -func init() { - rootCmd.AddCommand(createIpldsForBlockTransactionsCmd) - createIpldsForBlockTransactionsCmd.Flags().Int64VarP(&blockNumber, "block-number", "b", 0, "Create IPLD for this block.") -} - -func createIpldsForBlockTransactions() { - // init eth db - ethDBConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - ethDB, err := db.CreateDatabase(ethDBConfig) - if err != nil { - log.Fatal("Error connecting to ethereum db: ", err) - } - - // init ipfs publisher - ipfsNode, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to IPFS: ", err) - } - dagPutter := eth_block_transactions.NewBlockTransactionsDagPutter(*ipfsNode) - publisher := ipfs.NewIpfsPublisher(dagPutter) - - // execute transformer - transformer := transformers.NewEthBlockTransactionsTransformer(ethDB, publisher) - err = transformer.Execute(blockNumber, blockNumber) - if err != nil { - log.Fatal("Error executing transformer: ", err.Error()) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksReceipts.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksReceipts.go deleted file mode 100644 index 3d0076ad..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksReceipts.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "github.com/spf13/cobra" - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "log" -) - -// createIpldsForBlocksReceiptsCmd represents the createIpldsForBlocksReceipts command -var createIpldsForBlocksReceiptsCmd = &cobra.Command{ - Use: "createIpldsForBlocksReceipts", - Short: "Create IPLDs for receipts in a range of blocks", - Long: `Fetch receipts in a range of blocks and persist them to IPFS as IPLDs. For example: - -./eth-block-extractor createIpldsForBlocksReceipts --starting-block-number 5000000 --ending-block-number 5000123 - -The starting and ending block number flags specify the range of blocks for which to fetch and persist receipts. -Ending block number must be greater than or equal to starting block number.`, - Run: func(cmd *cobra.Command, args []string) { - createBlocksReceipts() - }, -} - -func init() { - rootCmd.AddCommand(createIpldsForBlocksReceiptsCmd) - createIpldsForBlocksReceiptsCmd.Flags().Int64VarP(&startingBlockNumber, "starting-block-number", "s", 0, "First block number to create IPLD for.") - createIpldsForBlocksReceiptsCmd.Flags().Int64VarP(&endingBlockNumber, "ending-block-number", "e", 5900000, "Last block number to create IPLD for.") -} - -func createBlocksReceipts() { - // init eth db - ethDBConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - ethDB, err := db.CreateDatabase(ethDBConfig) - if err != nil { - log.Fatal("Error connecting to ethereum db: ", err) - } - - // init ipfs publisher - ipfsNode, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to IPFS: ", err) - } - dagPutter := eth_block_receipts.NewEthBlockReceiptDagPutter(ipfsNode) - publisher := ipfs.NewIpfsPublisher(dagPutter) - - // execute transformer - transformer := transformers.NewEthBlockReceiptTransformer(ethDB, publisher) - err = transformer.Execute(startingBlockNumber, endingBlockNumber) - if err != nil { - log.Fatal("Error creating receipt IPLDs for block: ", err) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksTransactions.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksTransactions.go deleted file mode 100644 index 34c18bf4..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForBlocksTransactions.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "log" - - "github.com/spf13/cobra" - - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" -) - -// createIpldsForBlocksTransactionsCmd represents the createIpldsForBlocksTransactions command -var createIpldsForBlocksTransactionsCmd = &cobra.Command{ - Use: "createIpldsForBlocksTransactions", - Short: "Create IPLDs for every transaction in a range of blocks", - Long: `Create an IPLD for every transaction in a range of blocks. For example: - -./eth-block-extractor createIpldsForBlocksTransactions --config environments/public.toml --starting-block-number 5000000 --ending-block-number 5000100 - -The starting and ending block numbers specify the range of blocks for which to create transaction IPLDs, and are required.`, - Run: func(cmd *cobra.Command, args []string) { - createIpldsForBlocksTransactions() - }, -} - -func init() { - rootCmd.AddCommand(createIpldsForBlocksTransactionsCmd) - createIpldsForBlocksTransactionsCmd.Flags().Int64VarP(&startingBlockNumber, "starting-block-number", "s", 0, "First block number to create IPLD for.") - createIpldsForBlocksTransactionsCmd.Flags().Int64VarP(&endingBlockNumber, "ending-block-number", "e", 5900000, "Last block number to create IPLD for.") -} - -func createIpldsForBlocksTransactions() { - // init eth db - ethDBConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - ethDB, err := db.CreateDatabase(ethDBConfig) - if err != nil { - log.Fatal("Error connecting to ethereum db: ", err) - } - - // init ipfs publisher - ipfsNode, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to IPFS: ", err) - } - dagPutter := eth_block_transactions.NewBlockTransactionsDagPutter(*ipfsNode) - publisher := ipfs.NewIpfsPublisher(dagPutter) - - // execute transformer - transformer := transformers.NewEthBlockTransactionsTransformer(ethDB, publisher) - err = transformer.Execute(startingBlockNumber, endingBlockNumber) - if err != nil { - log.Fatal("Error executing transformer: ", err.Error()) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForStateTrie.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForStateTrie.go deleted file mode 100644 index 585a7c2d..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/createIpldsForStateTrie.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "log" - - "github.com/spf13/cobra" - - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" -) - -// createIpldsForStateTrieCmd represents the createIpldsForStateTrie command -var createIpldsForStateTrieCmd = &cobra.Command{ - Use: "createIpldsForStateTrie", - Short: "Create iplds for every ethereum state trie node", - Long: `Create iplds for every ethereum state trie node. For example: - -./eth-block-extractor createIpldsForStateTrie - -Note that this operation is very expensive in terms of both cpu and disk, -as it is reconstructing the entire ethereum state trie in the same fashion -as an archive node.`, - Run: func(cmd *cobra.Command, args []string) { - createIpldsForStateTrie() - }, -} - -func init() { - rootCmd.AddCommand(createIpldsForStateTrieCmd) - createIpldsForStateTrieCmd.Flags().BoolVarP(&computeState, "compute-state", "c", false, "Flag indicating state must be computed (non-archive node).") - createIpldsForStateTrieCmd.Flags().Int64VarP(&startingBlockNumber, "starting-block-number", "s", 0, "First block number to create IPLD for.") - createIpldsForStateTrieCmd.Flags().Int64VarP(&endingBlockNumber, "ending-block-number", "e", 5900000, "Last block number to create IPLD for.") -} - -func createIpldsForStateTrie() { - if computeState && startingBlockNumber != 0 { - log.Println("Computing state trie must begin at genesis block. Ignoring passed starting block number.") - } - - // init eth db - databaseConfig := db.CreateDatabaseConfig(db.Level, levelDbPath) - database, err := db.CreateDatabase(databaseConfig) - if err != nil { - log.Fatal("Error connecting to the ethereum db: ", err) - } - - // init ipfs publishers - adder, err := ipfs.InitIPFSNode(ipfsPath) - if err != nil { - log.Fatal("Error connecting to ipfs: ", err) - } - stateTrieDagPutter := eth_state_trie.NewStateTrieDagPutter(adder) - stateTriePublisher := ipfs.NewIpfsPublisher(stateTrieDagPutter) - storageTrieDagPutter := eth_storage_trie.NewStorageTrieDagPutter(adder) - storageTriePublisher := ipfs.NewIpfsPublisher(storageTrieDagPutter) - - // init and execute transformer - if computeState { - transformer := transformers.NewComputeEthStateTrieTransformer(database, stateTriePublisher, storageTriePublisher) - err = transformer.Execute(endingBlockNumber) - } else { - transformer := transformers.NewEthStateTrieTransformer(database, stateTriePublisher, storageTriePublisher) - err = transformer.Execute(startingBlockNumber, endingBlockNumber) - } - if err != nil { - log.Fatal("Error executing transformer: ", err) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/cmd/root.go b/vendor/github.com/vulcanize/eth-block-extractor/cmd/root.go deleted file mode 100644 index c22a68a1..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/cmd/root.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright © 2018 Rob Mulholand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cmd - -import ( - "fmt" - "os" - - "github.com/mitchellh/go-homedir" - "github.com/spf13/cobra" - "github.com/spf13/viper" - "github.com/vulcanize/vulcanizedb/pkg/config" -) - -var ( - blockNumber int64 - cfgFile string - computeState bool - databaseConfig config.Database - endingBlockNumber int64 - ipc string - ipfsPath string - levelDbPath string - startingBlockNumber int64 -) - -var rootCmd = &cobra.Command{ - Use: "blockWatcher", - PersistentPreRun: database, -} - -func Execute() { - if err := rootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } -} - -func database(cmd *cobra.Command, args []string) { - ipc = viper.GetString("client.ipcpath") - levelDbPath = viper.GetString("client.leveldbpath") - ipfsPath = viper.GetString("client.ipfspath") - databaseConfig = config.Database{ - Name: viper.GetString("database.name"), - Hostname: viper.GetString("database.hostname"), - Port: viper.GetInt("database.port"), - } - viper.Set("database.config", databaseConfig) -} - -func init() { - cobra.OnInitialize(initConfig) - - rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "environments/public.toml", "config file location") - rootCmd.PersistentFlags().String("database-name", "vulcanize_public", "database name") - rootCmd.PersistentFlags().Int("database-port", 5432, "database port") - rootCmd.PersistentFlags().String("database-hostname", "localhost", "database hostname") - rootCmd.PersistentFlags().String("client-ipcPath", "", "location of geth.ipc file") - rootCmd.PersistentFlags().String("client-ipfsPath", "", "location of ipfs directory") - rootCmd.PersistentFlags().String("client-levelDbPath", "", "location of levelDb chaindata") - - viper.BindPFlag("database.name", rootCmd.PersistentFlags().Lookup("database-name")) - viper.BindPFlag("database.port", rootCmd.PersistentFlags().Lookup("database-port")) - viper.BindPFlag("database.hostname", rootCmd.PersistentFlags().Lookup("database-hostname")) - viper.BindPFlag("client.ipcPath", rootCmd.PersistentFlags().Lookup("client-ipcPath")) - viper.BindPFlag("client.ipfsPath", rootCmd.PersistentFlags().Lookup("client-ipfsPath")) - viper.BindPFlag("client.levelDbPath", rootCmd.PersistentFlags().Lookup("client-levelDbPath")) - -} - -func initConfig() { - if cfgFile != "" { - viper.SetConfigFile(cfgFile) - } else { - home, err := homedir.Dir() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - viper.AddConfigPath(home) - viper.SetConfigName(".vulcanizedb") - } - - viper.AutomaticEnv() - - if err := viper.ReadInConfig(); err == nil { - fmt.Printf("Using config file: %s\n\n", viper.ConfigFileUsed()) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/environments/public.toml.example b/vendor/github.com/vulcanize/eth-block-extractor/environments/public.toml.example deleted file mode 100644 index 5a543caa..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/environments/public.toml.example +++ /dev/null @@ -1,9 +0,0 @@ -[database] -name = "vulcanize_public" -hostname = "localhost" -port = 5432 - -[client] -ipcPath = "https://mainnet.infura.io/J5Vd2fRtGsw0zZ0Ov3BL" -ipfsPath = "~/.ipfs" -levelDbPath = "" diff --git a/vendor/github.com/vulcanize/eth-block-extractor/main.go b/vendor/github.com/vulcanize/eth-block-extractor/main.go deleted file mode 100644 index 13831a1b..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/main.go +++ /dev/null @@ -1,7 +0,0 @@ -package main - -import "github.com/vulcanize/eth-block-extractor/cmd" - -func main() { - cmd.Execute() -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/package.json b/vendor/github.com/vulcanize/eth-block-extractor/package.json deleted file mode 100644 index 3799783e..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "author": "robertmulholand", - "bugs": { - "url": "github.com/vulcanize/eth-block-extractor" - }, - "gx": { - "dvcsimport": "github.com/vulcanize/eth-block-extractor" - }, - "gxDependencies": [ - { - "author": "whyrusleeping", - "hash": "Qme5bWv7wtjUNGsK2BNGVUFPKiuxWrsqrtvYwCLRw8YFES", - "name": "go-ipld-format", - "version": "0.5.3" - }, - { - "author": "whyrusleeping", - "hash": "QmcZfnkapfECQGcLZaf9B79NRg7cRa9EnZh4LSbkCzwNvY", - "name": "go-cid", - "version": "0.7.20" - }, - { - "author": "multiformats", - "hash": "QmZyZDi491cCNTLfAhwcaDii2Kg4pwKRkhqQzURGDvY6ua", - "name": "go-multihash", - "version": "1.0.7" - } - ], - "gxVersion": "0.12.1", - "language": "Go", - "license": "", - "name": "eth-block-extractor", - "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", - "version": "0.0.0" -} - diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/config.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/config.go deleted file mode 100644 index f28d94e4..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/config.go +++ /dev/null @@ -1,19 +0,0 @@ -package db - -type DatabaseType int - -const ( - Level DatabaseType = iota -) - -type DatabaseConfig struct { - Type DatabaseType - Path string -} - -func CreateDatabaseConfig(dbType DatabaseType, path string) DatabaseConfig { - return DatabaseConfig{ - Type: dbType, - Path: path, - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/database.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/database.go deleted file mode 100644 index abff8115..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/database.go +++ /dev/null @@ -1,75 +0,0 @@ -package db - -import ( - "errors" - "fmt" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/vulcanize/eth-block-extractor/pkg/db/level" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/rawdb" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/rlp" -) - -var ErrNoSuchDb = errors.New("no such database") - -type ReadError struct { - msg string - err error -} - -func (re ReadError) Error() string { - return fmt.Sprintf("%s: %s", re.msg, re.err.Error()) -} - -type Database interface { - ComputeBlockStateTrie(currentBlock *types.Block, parentBlock *types.Block) (common.Hash, error) - GetBlockByBlockNumber(blockNumber int64) *types.Block - GetBlockBodyByBlockNumber(blockNumber int64) *types.Body - GetBlockHeaderByBlockNumber(blockNumber int64) *types.Header - GetRawBlockHeaderByBlockNumber(blockNumber int64) []byte - GetBlockReceipts(blockNumber int64) types.Receipts - GetStateAndStorageTrieNodes(root common.Hash) (stateTrieNodes, storageTrieNodes [][]byte, err error) -} - -func CreateDatabase(config DatabaseConfig) (Database, error) { - switch config.Type { - case Level: - levelDBConnection, err := ethdb.NewLDBDatabase(config.Path, 128, 1024) - if err != nil { - return nil, ReadError{msg: "Failed to connect to LevelDB", err: err} - } - stateDatabase := state.NewDatabase(levelDBConnection) - stateTrieReader := createStateTrieReader(stateDatabase) - levelDBReader := rawdb.NewAccessorsChain(levelDBConnection) - stateComputer, err := createStateComputer(levelDBConnection, stateDatabase) - if err != nil { - return nil, err - } - levelDB := level.NewLevelDatabase(levelDBReader, stateComputer, stateTrieReader) - return levelDB, nil - default: - return nil, ReadError{msg: "Unknown database not implemented", err: ErrNoSuchDb} - } -} - -func createStateTrieReader(stateDatabase state.GethStateDatabase) level.IStateTrieReader { - decoder := rlp.RlpDecoder{} - storageTrieReader := level.NewStorageTrieReader(stateDatabase, decoder) - return level.NewStateTrieReader(stateDatabase, storageTrieReader) -} - -func createStateComputer(databaseConnection ethdb.Database, stateDatabase state.GethStateDatabase) (level.IStateComputer, error) { - blockChain, err := core.NewBlockChain(databaseConnection) - if err != nil { - return nil, err - } - processor := core.NewStateProcessor(*blockChain) - trieFactory := state.NewStateDBFactory() - validator := core.NewBlockValidator(*blockChain) - computer := level.NewStateComputer(blockChain, stateDatabase, processor, trieFactory, validator) - return computer, nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database.go deleted file mode 100644 index 34b36cf1..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database.go +++ /dev/null @@ -1,59 +0,0 @@ -package level - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/rawdb" -) - -type Database struct { - accessorsChain rawdb.IAccessorsChain - stateComputer IStateComputer - stateTrieReader IStateTrieReader -} - -func NewLevelDatabase(accessorsChain rawdb.IAccessorsChain, stateComputer IStateComputer, stateTrieReader IStateTrieReader) *Database { - return &Database{ - accessorsChain: accessorsChain, - stateComputer: stateComputer, - stateTrieReader: stateTrieReader, - } -} - -func (db Database) ComputeBlockStateTrie(currentBlock *types.Block, parentBlock *types.Block) (common.Hash, error) { - return db.stateComputer.ComputeBlockStateTrie(currentBlock, parentBlock) -} - -func (db Database) GetBlockBodyByBlockNumber(blockNumber int64) *types.Body { - n := uint64(blockNumber) - h := db.accessorsChain.GetCanonicalHash(n) - return db.accessorsChain.GetBody(h, n) -} - -func (db Database) GetBlockByBlockNumber(blockNumber int64) *types.Block { - n := uint64(blockNumber) - h := db.accessorsChain.GetCanonicalHash(n) - return db.accessorsChain.GetBlock(h, n) -} - -func (db Database) GetBlockHeaderByBlockNumber(blockNumber int64) *types.Header { - n := uint64(blockNumber) - h := db.accessorsChain.GetCanonicalHash(n) - return db.accessorsChain.GetHeader(h, n) -} - -func (db Database) GetRawBlockHeaderByBlockNumber(blockNumber int64) []byte { - n := uint64(blockNumber) - h := db.accessorsChain.GetCanonicalHash(n) - return db.accessorsChain.GetHeaderRLP(h, n) -} - -func (db Database) GetBlockReceipts(blockNumber int64) types.Receipts { - n := uint64(blockNumber) - h := db.accessorsChain.GetCanonicalHash(n) - return db.accessorsChain.GetBlockReceipts(h, n) -} - -func (db Database) GetStateAndStorageTrieNodes(root common.Hash) (stateTrieNodes, storageTrieNodes [][]byte, err error) { - return db.stateTrieReader.GetStateAndStorageTrieNodes(root) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database_test.go deleted file mode 100644 index 85535fda..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/database_test.go +++ /dev/null @@ -1,168 +0,0 @@ -package level_test - -import ( - "github.com/ethereum/go-ethereum/common" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/ethereum/go-ethereum/core/types" - "github.com/vulcanize/eth-block-extractor/pkg/db/level" - "github.com/vulcanize/eth-block-extractor/test_helpers" - level_wrapper "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/rawdb" -) - -var _ = Describe("Database", func() { - Describe("Computing state trie nodes", func() { - It("invokes state computer to build historical state", func() { - mockStateComputer := level_wrapper.NewMockStateComputer() - db := level.NewLevelDatabase(rawdb.NewMockAccessorsChain(), mockStateComputer, level_wrapper.NewMockStateTrieReader()) - currentBlock := &types.Block{} - parentBlock := &types.Block{} - - _, err := db.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).NotTo(HaveOccurred()) - mockStateComputer.AssertComputeBlockStateTrieCalledWith(currentBlock, parentBlock) - }) - - It("returns err if state computer returns err", func() { - mockStateComputer := level_wrapper.NewMockStateComputer() - mockStateComputer.SetComputeBlockStateTrieReturnErr(test_helpers.FakeError) - db := level.NewLevelDatabase(rawdb.NewMockAccessorsChain(), mockStateComputer, level_wrapper.NewMockStateTrieReader()) - - _, err := db.ComputeBlockStateTrie(&types.Block{}, &types.Block{}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) - }) - - Describe("Getting block body data", func() { - It("invokes the chain accessor to query for block hash by block number", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockBodyByBlockNumber(num) - - mockAccessorsChain.AssertGetCanonicalHashCalledWith(uint64(num)) - }) - - It("invokes the chain accessor to query for block body data", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - mockAccessorsChain.SetGetCanonicalHashReturnHash(test_helpers.FakeHash) - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockBodyByBlockNumber(num) - - mockAccessorsChain.AssertGetBodyRLPCalledWith(test_helpers.FakeHash, uint64(num)) - }) - }) - - Describe("Getting block", func() { - It("invokes the chain accessor to query for block hash by block number", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockByBlockNumber(num) - - mockAccessorsChain.AssertGetCanonicalHashCalledWith(uint64(num)) - }) - - It("invokes the chain accessor to query for block", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - mockAccessorsChain.SetGetCanonicalHashReturnHash(test_helpers.FakeHash) - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockByBlockNumber(num) - - mockAccessorsChain.AssertGetBlockCalledWith(test_helpers.FakeHash, uint64(num)) - }) - }) - - Describe("Getting block header", func() { - It("invokes the chain accessor to query for block hash by block number", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockHeaderByBlockNumber(num) - - mockAccessorsChain.AssertGetCanonicalHashCalledWith(uint64(num)) - }) - - It("invokes the chain accessor to query for block header", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - mockAccessorsChain.SetGetCanonicalHashReturnHash(test_helpers.FakeHash) - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockHeaderByBlockNumber(num) - - mockAccessorsChain.AssertGetHeaderCalledWith(test_helpers.FakeHash, uint64(num)) - }) - }) - - Describe("Getting raw block header data", func() { - It("invokes the chain accessor to query for block hash by block number", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetRawBlockHeaderByBlockNumber(num) - - mockAccessorsChain.AssertGetCanonicalHashCalledWith(uint64(num)) - }) - - It("invokes the chain accessor to query for block header data", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - mockAccessorsChain.SetGetCanonicalHashReturnHash(test_helpers.FakeHash) - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetRawBlockHeaderByBlockNumber(num) - - mockAccessorsChain.AssertGetHeaderRLPCalledWith(test_helpers.FakeHash, uint64(num)) - }) - }) - - Describe("Getting block receipts", func() { - It("invokes the chain accessor to query for block hash by block number", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockReceipts(num) - - mockAccessorsChain.AssertGetCanonicalHashCalledWith(uint64(num)) - }) - - It("invokes the chain accessor to query for block receipts", func() { - mockAccessorsChain := rawdb.NewMockAccessorsChain() - mockAccessorsChain.SetGetCanonicalHashReturnHash(test_helpers.FakeHash) - db := level.NewLevelDatabase(mockAccessorsChain, level_wrapper.NewMockStateComputer(), level_wrapper.NewMockStateTrieReader()) - num := int64(123456) - - db.GetBlockReceipts(num) - - mockAccessorsChain.AssertGetBlockReceiptsCalledWith(test_helpers.FakeHash, uint64(num)) - }) - }) - - Describe("Getting state trie nodes", func() { - It("invokes the chain accessor to query for state trie data", func() { - mockStateTrieReader := level_wrapper.NewMockStateTrieReader() - db := level.NewLevelDatabase(rawdb.NewMockAccessorsChain(), level_wrapper.NewMockStateComputer(), mockStateTrieReader) - root := common.HexToHash("abcde") - - _, _, err := db.GetStateAndStorageTrieNodes(root) - - Expect(err).NotTo(HaveOccurred()) - mockStateTrieReader.AssertGetStateAndStorageTrieNodesCalledWith(root) - }) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/level_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/level_suite_test.go deleted file mode 100644 index 20e571bd..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/level_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package level_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestLevel(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Level Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer.go deleted file mode 100644 index 4fbfff72..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer.go +++ /dev/null @@ -1,50 +0,0 @@ -package level - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state" -) - -type IStateComputer interface { - ComputeBlockStateTrie(currentBlock *types.Block, parentBlock *types.Block) (root common.Hash, err error) -} - -type StateComputer struct { - blockChain core.GethCoreBlockChain - db state.GethStateDatabase - processor core.GethStateProcessor - stateDBFactory state.GethStateDBFactory - validator core.GethBlockValidator -} - -func NewStateComputer(blockChain core.GethCoreBlockChain, db state.GethStateDatabase, processor core.GethStateProcessor, stateDBFactory state.GethStateDBFactory, validator core.GethBlockValidator) *StateComputer { - return &StateComputer{ - blockChain: blockChain, - db: db, - processor: processor, - stateDBFactory: stateDBFactory, - validator: validator, - } -} - -func (sc *StateComputer) ComputeBlockStateTrie(block, parent *types.Block) (root common.Hash, err error) { - stateTrie, err := sc.stateDBFactory.NewStateDB(parent.Root(), sc.db.Database()) - if err != nil { - return root, err - } - return sc.createStateTrieForBlock(block, parent, stateTrie) -} - -func (sc *StateComputer) createStateTrieForBlock(block, parent *types.Block, stateTrie state.GethStateDB) (root common.Hash, err error) { - receipts, _, usedGas, err := sc.processor.Process(block, stateTrie.StateDB()) - if err != nil { - return root, err - } - err = sc.validator.ValidateState(block, parent, stateTrie.StateDB(), receipts, usedGas) - if err != nil { - return root, err - } - return stateTrie.Commit(sc.blockChain.Config().IsEIP158(block.Number())) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer_test.go deleted file mode 100644 index 7374a350..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_computer_test.go +++ /dev/null @@ -1,176 +0,0 @@ -package level_test - -import ( - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/db/level" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core" - state_wrapper "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie" -) - -var _ = Describe("", func() { - It("initializes state trie at parent block's root", func() { - chain, db, processor, trieFactory, validator := getMocks() - fakeDB := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(fakeDB) - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).NotTo(HaveOccurred()) - trieFactory.AssertNewStateTrieCalledWith(parentBlock.Root(), fakeDB) - }) - - It("returns error if state trie initialization fails", func() { - chain, db, processor, trieFactory, validator := getMocks() - trieFactory.SetReturnErr(test_helpers.FakeError) - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) - - It("processes the block to build the state trie", func() { - chain, db, processor, trieFactory, validator := getMocks() - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - stateTrie := state_wrapper.NewMockStateDB() - fakeStateDB := &state.StateDB{} - stateTrie.SetStateDB(fakeStateDB) - trieFactory.SetStateDB(stateTrie) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).NotTo(HaveOccurred()) - processor.AssertProcessCalledWith(currentBlock, fakeStateDB) - }) - - It("returns error if processing block fails", func() { - chain, db, processor, trieFactory, validator := getMocks() - processor.SetReturnErr(test_helpers.FakeError) - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) - - It("validates state computed by processing blocks", func() { - chain, db, processor, trieFactory, validator := getMocks() - fakeReceipts := types.Receipts{} - processor.SetReturnReceipts(fakeReceipts) - fakeUsedGas := uint64(1234) - processor.SetReturnUsedGas(fakeUsedGas) - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - stateTrie := state_wrapper.NewMockStateDB() - fakeStateDB := &state.StateDB{} - stateTrie.SetStateDB(fakeStateDB) - trieFactory.SetStateDB(stateTrie) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).NotTo(HaveOccurred()) - validator.AssertValidateStateCalledWith(currentBlock, parentBlock, fakeStateDB, fakeReceipts, fakeUsedGas) - }) - - It("returns error if validating state fails", func() { - chain, db, processor, trieFactory, validator := getMocks() - validator.SetReturnErr(test_helpers.FakeError) - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) - - It("commits validated state to memory database", func() { - chain, db, processor, trieFactory, validator := getMocks() - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - stateTrie := state_wrapper.NewMockStateDB() - trieFactory.SetStateDB(stateTrie) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).NotTo(HaveOccurred()) - stateTrie.AssertCommitCalled() - }) - - It("returns error if committing state fails", func() { - chain, db, processor, trieFactory, validator := getMocks() - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - stateTrie := state_wrapper.NewMockStateDB() - stateTrie.SetReturnErr(test_helpers.FakeError) - trieFactory.SetStateDB(stateTrie) - currentBlock, parentBlock := getFakeBlocks() - - _, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) - - It("returns computed state trie root", func() { - chain, db, processor, trieFactory, validator := getMocks() - computer := level.NewStateComputer(chain, db, processor, trieFactory, validator) - fakeIterator := trie.NewMockIterator(2) - fakeIterator.SetReturnHash(test_helpers.FakeHash) - fakeTrie := state_wrapper.NewMockTrie() - fakeTrie.SetReturnIterator(fakeIterator) - db.SetReturnTrie(fakeTrie) - currentBlock, parentBlock := getFakeBlocks() - - stateRoot, err := computer.ComputeBlockStateTrie(currentBlock, parentBlock) - - Expect(err).NotTo(HaveOccurred()) - Expect(stateRoot).To(Equal(test_helpers.FakeHash)) - }) -}) - -func getMocks() (*core.MockBlockChain, *state_wrapper.MockStateDatabase, *core.MockProcessor, *state_wrapper.MockStateDBFactory, *core.MockValidator) { - chain := core.NewMockBlockChain() - db := state_wrapper.NewMockStateDatabase() - fakeDB := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(fakeDB) - fakeIterator := trie.NewMockIterator(1) - fakeTrie := state_wrapper.NewMockTrie() - fakeTrie.SetReturnIterator(fakeIterator) - db.SetReturnTrie(fakeTrie) - processor := core.NewMockProcessor() - trieFactory := state_wrapper.NewMockStateDBFactory() - stateTrie := state_wrapper.NewMockStateDB() - trieFactory.SetStateDB(stateTrie) - validator := core.NewMockValidator() - return chain, db, processor, trieFactory, validator -} - -func getFakeBlocks() (*types.Block, *types.Block) { - currentBlockHeader := &types.Header{ - Root: test_helpers.FakeHash, - Number: big.NewInt(456), - } - currentBlock := types.NewBlockWithHeader(currentBlockHeader) - parentBlockHeader := &types.Header{ - Root: common.HexToHash("0x789"), - Number: big.NewInt(457), - } - parentBlock := types.NewBlockWithHeader(parentBlockHeader) - return currentBlock, parentBlock -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader.go deleted file mode 100644 index 470c6f4b..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader.go +++ /dev/null @@ -1,59 +0,0 @@ -package level - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state" -) - -type IStateTrieReader interface { - GetStateAndStorageTrieNodes(stateRoot common.Hash) (stateTrieNodes, storageTrieNodes [][]byte, err error) -} - -type StateTrieReader struct { - db state.GethStateDatabase - storageTrieReader IStorageTrieReader -} - -func NewStateTrieReader(db state.GethStateDatabase, storageTrieReader IStorageTrieReader) *StateTrieReader { - return &StateTrieReader{ - db: db, - storageTrieReader: storageTrieReader, - } -} - -func (str *StateTrieReader) GetStateAndStorageTrieNodes(stateRoot common.Hash) (stateTrieNodes, storageTrieNodes [][]byte, err error) { - trieDb := str.db.TrieDB() - // fetch and append state root node - stateRootNode, err := trieDb.Node(stateRoot) - if err != nil { - return stateTrieNodes, storageTrieNodes, err - } - stateTrieNodes = append(stateTrieNodes, stateRootNode) - - // fetch and append remaining nodes in the state trie - stateTrie, err := str.db.OpenTrie(stateRoot) - if err != nil { - return stateTrieNodes, storageTrieNodes, err - } - stateTrieIterator := stateTrie.NodeIterator(nil) - for stateTrieIterator.Next(true) { - if stateTrieIterator.Leaf() { - node := stateTrieIterator.LeafBlob() - stateTrieNodes = append(stateTrieNodes, node) - // fetch and append storage trie nodes for state trie leaf (account snapshot) - accountStorageTrieNodes, err := str.storageTrieReader.GetStorageTrie(node) - if err != nil { - return stateTrieNodes, storageTrieNodes, err - } - storageTrieNodes = append(storageTrieNodes, accountStorageTrieNodes...) - } else { - nodeKey := stateTrieIterator.Hash() - node, err := str.db.TrieDB().Node(nodeKey) - if err != nil { - return stateTrieNodes, storageTrieNodes, err - } - stateTrieNodes = append(stateTrieNodes, node) - } - } - return stateTrieNodes, storageTrieNodes, nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader_test.go deleted file mode 100644 index f4e943d2..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/state_trie_reader_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package level_test - -import ( - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/pkg/db/level" - "github.com/vulcanize/eth-block-extractor/test_helpers" - level_wrapper "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie" -) - -var _ = Describe("State trie reader", func() { - It("fetches node associated with state root", func() { - db := state.NewMockStateDatabase() - trieDB := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(trieDB) - mockIteratror := trie.NewMockIterator(0) - mockTrie := state.NewMockTrie() - mockTrie.SetReturnIterator(mockIteratror) - db.SetReturnTrie(mockTrie) - mockStorageTrieReader := level_wrapper.NewMockStorageTrieReader() - reader := level.NewStateTrieReader(db, mockStorageTrieReader) - - stateTrieNodes, _, err := reader.GetStateAndStorageTrieNodes(test_helpers.FakeHash) - - Expect(err).NotTo(HaveOccurred()) - Expect(stateTrieNodes).To(ContainElement(test_helpers.FakeTrieNode)) - }) - - It("returns nodes found traversing state trie", func() { - db := state.NewMockStateDatabase() - trieDB := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(trieDB) - mockIteratror := trie.NewMockIterator(2) - mockTrie := state.NewMockTrie() - mockTrie.SetReturnIterator(mockIteratror) - db.SetReturnTrie(mockTrie) - mockStorageTrieReader := level_wrapper.NewMockStorageTrieReader() - reader := level.NewStateTrieReader(db, mockStorageTrieReader) - - stateTrieNodes, storageTrieNodes, err := reader.GetStateAndStorageTrieNodes(test_helpers.FakeHash) - - Expect(err).NotTo(HaveOccurred()) - Expect(len(stateTrieNodes)).To(Equal(3)) - Expect(len(storageTrieNodes)).To(BeZero()) - }) - - It("invokes storage trie reader for state trie leaf nodes", func() { - db := state.NewMockStateDatabase() - trieDB := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(trieDB) - mockIteratror := trie.NewMockIterator(1) - mockIteratror.SetIncludeLeaf() - mockTrie := state.NewMockTrie() - mockTrie.SetReturnIterator(mockIteratror) - db.SetReturnTrie(mockTrie) - mockStorageTrieReader := level_wrapper.NewMockStorageTrieReader() - reader := level.NewStateTrieReader(db, mockStorageTrieReader) - - _, _, err := reader.GetStateAndStorageTrieNodes(test_helpers.FakeHash) - - Expect(err).NotTo(HaveOccurred()) - mockStorageTrieReader.AssertGetStorageTrieCalled() - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader.go deleted file mode 100644 index addd9ff2..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader.go +++ /dev/null @@ -1,63 +0,0 @@ -package level - -import ( - "bytes" - "github.com/ethereum/go-ethereum/core/state" - state_wrapper "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/rlp" -) - -var EmptyStorageTrieRoot = []byte{86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33} - -type IStorageTrieReader interface { - GetStorageTrie(stateTrieLeafNode []byte) (storageTrieResults [][]byte, err error) -} - -type StorageTrieReader struct { - db state_wrapper.GethStateDatabase - decoder rlp.Decoder -} - -func NewStorageTrieReader(db state_wrapper.GethStateDatabase, decoder rlp.Decoder) *StorageTrieReader { - return &StorageTrieReader{ - db: db, - decoder: decoder, - } -} - -func (stc *StorageTrieReader) GetStorageTrie(stateTrieLeafNode []byte) (storageTrieResults [][]byte, err error) { - trieDb := stc.db.TrieDB() - var account state.Account - err = stc.decoder.Decode(stateTrieLeafNode, &account) - if err != nil { - return storageTrieResults, err - } - // if storage trie root corresponds to empty storage trie, continue to next iteration in state trie - if bytes.Equal(EmptyStorageTrieRoot, account.Root.Bytes()) { - return storageTrieResults, err - } - // if storage trie root not empty, fetch and append root node - storageRootNode, err := trieDb.Node(account.Root) - if err != nil { - return storageTrieResults, err - } - storageTrieResults = append(storageTrieResults, storageRootNode) - storageTrie, err := stc.db.OpenTrie(account.Root) - if err != nil { - return storageTrieResults, err - } - storageTrieIterator := storageTrie.NodeIterator(account.Root.Bytes()) - for storageTrieIterator.Next(true) { - if storageTrieIterator.Leaf() { - storageTrieResults = append(storageTrieResults, storageTrieIterator.LeafBlob()) - } else { - nextStorageHash := storageTrieIterator.Hash() - nextStorageNode, err := trieDb.Node(nextStorageHash) - if err != nil { - return storageTrieResults, err - } - storageTrieResults = append(storageTrieResults, nextStorageNode) - } - } - return storageTrieResults, err -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader_test.go deleted file mode 100644 index f396a586..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/db/level/storage_trie_reader_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package level_test - -import ( - "github.com/ethereum/go-ethereum/core/state" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/db/level" - "github.com/vulcanize/eth-block-extractor/test_helpers" - state_wrapper "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie" -) - -var _ = Describe("Storage trie reader", func() { - It("decodes passed state trie leaf node into account", func() { - db := state_wrapper.NewMockStateDatabase() - trieDb := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(trieDb) - mockIteratror := trie.NewMockIterator(1) - mockIteratror.SetIncludeLeaf() - mockTrie := state_wrapper.NewMockTrie() - mockTrie.SetReturnIterator(mockIteratror) - db.SetReturnTrie(mockTrie) - decoder := rlp.NewMockDecoder() - decoder.SetReturnOut(&state.Account{}) - reader := level.NewStorageTrieReader(db, decoder) - - _, err := reader.GetStorageTrie(test_helpers.FakeTrieNode) - - Expect(err).NotTo(HaveOccurred()) - decoder.AssertDecodeCalledWith(test_helpers.FakeTrieNode, &state.Account{}) - }) - - It("fetches node associated with storage root", func() { - db := state_wrapper.NewMockStateDatabase() - trieDb := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(trieDb) - mockIteratror := trie.NewMockIterator(0) - mockTrie := state_wrapper.NewMockTrie() - mockTrie.SetReturnIterator(mockIteratror) - db.SetReturnTrie(mockTrie) - decoder := rlp.NewMockDecoder() - decoder.SetReturnOut(&state.Account{}) - reader := level.NewStorageTrieReader(db, decoder) - - storageTrieNodes, err := reader.GetStorageTrie(test_helpers.FakeTrieNode) - - Expect(err).NotTo(HaveOccurred()) - Expect(len(storageTrieNodes)).To(Equal(1)) - }) - - It("returns nodes found traversing storage trie", func() { - db := state_wrapper.NewMockStateDatabase() - trieDb := db.CreateFakeUnderlyingDatabase() - db.SetReturnDatabase(trieDb) - mockIteratror := trie.NewMockIterator(1) - mockIteratror.SetIncludeLeaf() - mockTrie := state_wrapper.NewMockTrie() - mockTrie.SetReturnIterator(mockIteratror) - db.SetReturnTrie(mockTrie) - decoder := rlp.NewMockDecoder() - decoder.SetReturnOut(&state.Account{}) - reader := level.NewStorageTrieReader(db, decoder) - - storageTrieNodes, err := reader.GetStorageTrie(test_helpers.FakeTrieNode) - - Expect(err).NotTo(HaveOccurred()) - Expect(len(storageTrieNodes)).To(Equal(2)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/adder.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/adder.go index d136d6ed..bd4ac99b 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/adder.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/adder.go @@ -1,6 +1,6 @@ package ipfs -import ipld "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" +import ipld "github.com/ipfs/go-ipld-format" type Adder interface { Add(node ipld.Node) error diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter.go index ebc7a5d5..1b214c06 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter.go @@ -2,7 +2,7 @@ package eth_block_header import ( "github.com/ethereum/go-ethereum/core/types" - ipld "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" + ipld "github.com/ipfs/go-ipld-format" "github.com/vulcanize/eth-block-extractor/pkg/ipfs" "github.com/vulcanize/eth-block-extractor/pkg/ipfs/util" diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter_test.go deleted file mode 100644 index f31051cd..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/dag_putter_test.go +++ /dev/null @@ -1,64 +0,0 @@ -package eth_block_header_test - -import ( - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp" -) - -var _ = Describe("Creating an IPLD for a block header", func() { - It("decodes passed bytes into ethereum block header", func() { - mockDecoder := rlp.NewMockDecoder() - mockDecoder.SetReturnOut(&types.Header{}) - dagPutter := eth_block_header.NewBlockHeaderDagPutter(ipfs.NewMockAdder(), mockDecoder) - fakeBytes := []byte{1, 2, 3, 4, 5} - - _, err := dagPutter.DagPut(fakeBytes) - - Expect(err).NotTo(HaveOccurred()) - mockDecoder.AssertDecodeCalledWith(fakeBytes, &types.Header{}) - }) - - It("returns error if decoding fails", func() { - mockDecoder := rlp.NewMockDecoder() - mockDecoder.SetReturnOut(&types.Header{}) - mockDecoder.SetError(test_helpers.FakeError) - dagPutter := eth_block_header.NewBlockHeaderDagPutter(ipfs.NewMockAdder(), mockDecoder) - - _, err := dagPutter.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) - - It("adds ethereum block header to ipfs", func() { - mockAdder := ipfs.NewMockAdder() - mockDecoder := rlp.NewMockDecoder() - mockDecoder.SetReturnOut(&types.Header{}) - dagPutter := eth_block_header.NewBlockHeaderDagPutter(mockAdder, mockDecoder) - fakeBytes := []byte{1, 2, 3, 4, 5} - - _, err := dagPutter.DagPut(fakeBytes) - - Expect(err).NotTo(HaveOccurred()) - mockAdder.AssertAddCalled(1, ð_block_header.EthBlockHeaderNode{}) - }) - - It("returns error if adding to ipfs fails", func() { - mockAdder := ipfs.NewMockAdder() - mockAdder.SetError(test_helpers.FakeError) - mockDecoder := rlp.NewMockDecoder() - mockDecoder.SetReturnOut(&types.Header{}) - dagPutter := eth_block_header.NewBlockHeaderDagPutter(mockAdder, mockDecoder) - - _, err := dagPutter.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/eth_block_header_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/eth_block_header_suite_test.go deleted file mode 100644 index 53551119..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/eth_block_header_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package eth_block_header_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestEthBlockHeader(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "EthBlockHeader Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/node.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/node.go index 8910a742..6ea3c129 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/node.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_header/node.go @@ -3,14 +3,14 @@ package eth_block_header import ( "github.com/ethereum/go-ethereum/core/types" - "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" + "github.com/ipfs/go-ipld-format" ) type EthBlockHeaderNode struct { *types.Header - cid *cid.Cid + cid cid.Cid rawdata []byte } @@ -18,7 +18,7 @@ func (ebh *EthBlockHeaderNode) RawData() []byte { return ebh.rawdata } -func (ebh *EthBlockHeaderNode) Cid() *cid.Cid { +func (ebh *EthBlockHeaderNode) Cid() cid.Cid { return ebh.cid } diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter.go index 61e37159..82d13b27 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter.go @@ -4,7 +4,7 @@ import ( "bytes" "github.com/ethereum/go-ethereum/core/types" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" "github.com/vulcanize/eth-block-extractor/pkg/ipfs" "github.com/vulcanize/eth-block-extractor/pkg/ipfs/util" diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter_test.go deleted file mode 100644 index 903cacb7..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/dag_putter_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package eth_block_receipts_test - -import ( - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Eth block receipts dag putter", func() { - It("adds a node for each receipt", func() { - mockAdder := ipfs.NewMockAdder() - dagPutter := eth_block_receipts.NewEthBlockReceiptDagPutter(mockAdder) - fakeReceipts := types.Receipts{ - &types.Receipt{}, - &types.Receipt{}, - } - - _, err := dagPutter.DagPut(fakeReceipts) - - Expect(err).NotTo(HaveOccurred()) - mockAdder.AssertAddCalled(2, ð_block_receipts.EthReceiptNode{}) - }) - - It("returns error if adding node fails", func() { - mockAdder := ipfs.NewMockAdder() - mockAdder.SetError(test_helpers.FakeError) - dagPutter := eth_block_receipts.NewEthBlockReceiptDagPutter(mockAdder) - fakeReceipts := types.Receipts{ - &types.Receipt{}, - &types.Receipt{}, - } - - _, err := dagPutter.DagPut(fakeReceipts) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/eth_block_receipts_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/eth_block_receipts_suite_test.go deleted file mode 100644 index c0717187..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/eth_block_receipts_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package eth_block_receipts_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestEthBlockReceipts(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "EthBlockReceipts Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/node.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/node.go index a0bed7da..0c871706 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/node.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_receipts/node.go @@ -1,20 +1,20 @@ package eth_block_receipts import ( - "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" + "github.com/ipfs/go-ipld-format" ) type EthReceiptNode struct { raw []byte - cid *cid.Cid + cid cid.Cid } func (node *EthReceiptNode) RawData() []byte { return node.raw } -func (node *EthReceiptNode) Cid() *cid.Cid { +func (node *EthReceiptNode) Cid() cid.Cid { return node.cid } diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/dag_putter_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/dag_putter_test.go deleted file mode 100644 index 1561effe..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/dag_putter_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package eth_block_transactions_test - -import ( - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Eth block transactions dag putter", func() { - It("adds a node for each transaction on the block", func() { - mockAdder := ipfs.NewMockAdder() - fakeTransactionOne := &types.Transaction{} - fakeTransactionTwo := &types.Transaction{} - fakeBlockBody := &types.Body{ - Transactions: types.Transactions{fakeTransactionOne, fakeTransactionTwo}, - Uncles: nil, - } - dagPutter := eth_block_transactions.NewBlockTransactionsDagPutter(mockAdder) - - _, err := dagPutter.DagPut(fakeBlockBody) - - Expect(err).NotTo(HaveOccurred()) - mockAdder.AssertAddCalled(2, ð_block_transactions.EthTransactionNode{}) - }) - - It("returns error if adding node fails", func() { - mockAdder := ipfs.NewMockAdder() - mockAdder.SetError(test_helpers.FakeError) - dagPutter := eth_block_transactions.NewBlockTransactionsDagPutter(mockAdder) - - _, err := dagPutter.DagPut(&types.Body{Transactions: types.Transactions{{}}}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/eth_block_transactions_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/eth_block_transactions_suite_test.go deleted file mode 100644 index 6a2ca98a..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/eth_block_transactions_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package eth_block_transactions_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestEthBlockTransactions(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "EthBlockTransactions Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/node.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/node.go index 51aecc56..93d9bb45 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/node.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_block_transactions/node.go @@ -2,14 +2,14 @@ package eth_block_transactions import ( "github.com/ethereum/go-ethereum/core/types" - "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" + "github.com/ipfs/go-ipld-format" ) type EthTransactionNode struct { *types.Transaction - cid *cid.Cid + cid cid.Cid rawdata []byte } @@ -17,7 +17,7 @@ func (etn *EthTransactionNode) RawData() []byte { return etn.rawdata } -func (etn *EthTransactionNode) Cid() *cid.Cid { +func (etn *EthTransactionNode) Cid() cid.Cid { return etn.cid } diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/dag_putter_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/dag_putter_test.go deleted file mode 100644 index 4369bcd3..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/dag_putter_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package eth_state_trie_test - -import ( - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Ethereum state trie node dag putter", func() { - It("adds passed state trie node to ipfs", func() { - mockAdder := ipfs.NewMockAdder() - dagPutter := eth_state_trie.NewStateTrieDagPutter(mockAdder) - - _, err := dagPutter.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).NotTo(HaveOccurred()) - mockAdder.AssertAddCalled(1, ð_state_trie.EthStateTrieNode{}) - }) - - It("returns error if adding to ipfs fails", func() { - mockAdder := ipfs.NewMockAdder() - mockAdder.SetError(test_helpers.FakeError) - dagPutter := eth_state_trie.NewStateTrieDagPutter(mockAdder) - - _, err := dagPutter.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/eth_state_trie_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/eth_state_trie_suite_test.go deleted file mode 100644 index d1245999..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/eth_state_trie_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package eth_state_trie_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestEthStateTrie(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "EthStateTrie Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/node.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/node.go index 018afc3e..4c592068 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/node.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_state_trie/node.go @@ -1,12 +1,12 @@ package eth_state_trie import ( - "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" + "github.com/ipfs/go-ipld-format" ) type EthStateTrieNode struct { - cid *cid.Cid + cid cid.Cid rawdata []byte } @@ -14,7 +14,7 @@ func (estn EthStateTrieNode) RawData() []byte { return estn.rawdata } -func (estn EthStateTrieNode) Cid() *cid.Cid { +func (estn EthStateTrieNode) Cid() cid.Cid { return estn.cid } diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/dag_putter_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/dag_putter_test.go deleted file mode 100644 index 4fc4cd16..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/dag_putter_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package eth_storage_trie_test - -import ( - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Ethereum storage trie node dag putter", func() { - It("adds passed storage trie node to ipfs", func() { - mockAdder := ipfs.NewMockAdder() - dagPutter := eth_storage_trie.NewStorageTrieDagPutter(mockAdder) - - _, err := dagPutter.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).NotTo(HaveOccurred()) - mockAdder.AssertAddCalled(1, ð_storage_trie.EthStorageTrieNode{}) - }) - - It("returns error if adding to ipfs fails", func() { - mockAdder := ipfs.NewMockAdder() - mockAdder.SetError(test_helpers.FakeError) - dagPutter := eth_storage_trie.NewStorageTrieDagPutter(mockAdder) - - _, err := dagPutter.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/eth_storage_trie_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/eth_storage_trie_suite_test.go deleted file mode 100644 index ee9c3a13..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/eth_storage_trie_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package eth_storage_trie_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestEthStorageTrie(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "EthStorageTrie Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/node.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/node.go index d103de2f..075b3d4a 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/node.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/eth_storage_trie/node.go @@ -1,12 +1,12 @@ package eth_storage_trie import ( - "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" + "github.com/ipfs/go-ipld-format" ) type EthStorageTrieNode struct { - cid *cid.Cid + cid cid.Cid rawdata []byte } @@ -14,7 +14,7 @@ func (estn *EthStorageTrieNode) RawData() []byte { return estn.rawdata } -func (estn *EthStorageTrieNode) Cid() *cid.Cid { +func (estn *EthStorageTrieNode) Cid() cid.Cid { return estn.cid } diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/ipfs_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/ipfs_suite_test.go deleted file mode 100644 index 5b5a8f5c..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/ipfs_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package ipfs_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestIpfs(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Ipfs Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/node.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/node.go index 0cf00e50..ac0a2d41 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/node.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/node.go @@ -6,7 +6,7 @@ import ( "github.com/ipfs/go-ipfs/core" "github.com/ipfs/go-ipfs/repo/fsrepo" - ipld "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" + ipld "github.com/ipfs/go-ipld-format" ) type IPFS struct { diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/publisher_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/publisher_test.go deleted file mode 100644 index 12a8f992..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/publisher_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package ipfs_test - -import ( - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "github.com/vulcanize/eth-block-extractor/test_helpers" - ipfs_wrapper "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("IPFS publisher", func() { - It("calls dag put with the passed data", func() { - mockDagPutter := ipfs_wrapper.NewMockDagPutter() - publisher := ipfs.NewIpfsPublisher(mockDagPutter) - fakeBytes := []byte{1, 2, 3, 4, 5} - - _, err := publisher.DagPut(fakeBytes) - - Expect(err).NotTo(HaveOccurred()) - Expect(mockDagPutter.Called).To(BeTrue()) - Expect(mockDagPutter.PassedInterface).To(Equal(fakeBytes)) - }) - - It("returns error if dag put fails", func() { - mockDagPutter := ipfs_wrapper.NewMockDagPutter() - mockDagPutter.SetError(test_helpers.FakeError) - publisher := ipfs.NewIpfsPublisher(mockDagPutter) - - _, err := publisher.DagPut([]byte{1, 2, 3, 4, 5}) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/util/cid.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/util/cid.go index 9e4a2022..e8066b86 100644 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/util/cid.go +++ b/vendor/github.com/vulcanize/eth-block-extractor/pkg/ipfs/util/cid.go @@ -1,11 +1,11 @@ package util import ( - mh "gx/ipfs/QmZyZDi491cCNTLfAhwcaDii2Kg4pwKRkhqQzURGDvY6ua/go-multihash" - "gx/ipfs/QmapdYm1b22Frv3k17fqrBYTFRxwiaVJkB299Mfn33edeB/go-cid" + "github.com/ipfs/go-cid" + mh "github.com/multiformats/go-multihash" ) -func RawToCid(codec uint64, raw []byte) (*cid.Cid, error) { +func RawToCid(codec uint64, raw []byte) (cid.Cid, error) { c, err := cid.Prefix{ Codec: codec, Version: 1, @@ -13,7 +13,7 @@ func RawToCid(codec uint64, raw []byte) (*cid.Cid, error) { MhLength: -1, }.Sum(raw) if err != nil { - return nil, err + return cid.Cid{}, err } return c, nil } diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie.go deleted file mode 100644 index 96984c77..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie.go +++ /dev/null @@ -1,95 +0,0 @@ -package transformers - -import ( - "fmt" - "github.com/ethereum/go-ethereum/common" - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "log" -) - -const ( - GenesisBlockNumber = int64(0) - FirstBlockToCompute = int64(1) -) - -type ComputeEthStateTrieTransformer struct { - database db.Database - stateTriePublisher ipfs.Publisher - storageTriePublisher ipfs.Publisher -} - -func NewComputeEthStateTrieTransformer(database db.Database, stateTriePublisher, storageTriePublisher ipfs.Publisher) *ComputeEthStateTrieTransformer { - return &ComputeEthStateTrieTransformer{ - database: database, - stateTriePublisher: stateTriePublisher, - storageTriePublisher: storageTriePublisher, - } -} - -func (t ComputeEthStateTrieTransformer) Execute(endingBlockNumber int64) error { - root, err := t.getStateRootForBlock(GenesisBlockNumber) - if err != nil { - return err - } - // ignore storage trie node return val for genesis block - stateTrieNodes, _, err := t.database.GetStateAndStorageTrieNodes(root) - if err != nil { - return fmt.Errorf("Error fetching state trie for genesis block: %s\n", err) - } - err = t.writeStateTrieNodesToIpfs(stateTrieNodes) - if err != nil { - return err - } - for n := FirstBlockToCompute; n <= endingBlockNumber; n++ { - currentBlock := t.database.GetBlockByBlockNumber(n) - parentBlock := t.database.GetBlockByBlockNumber(n - 1) - stateRoot, err := t.database.ComputeBlockStateTrie(currentBlock, parentBlock) - if err != nil { - return err - } - nextStateTrieNodes, nextStorageTrieNodes, err := t.database.GetStateAndStorageTrieNodes(stateRoot) - if err != nil { - return err - } - err = t.writeStateTrieNodesToIpfs(nextStateTrieNodes) - if err != nil { - return err - } - err = t.writeStorageTrieNodesToIpfs(nextStorageTrieNodes) - if err != nil { - return err - } - } - return nil -} - -func (t ComputeEthStateTrieTransformer) getStateRootForBlock(blockNumber int64) (root common.Hash, err error) { - header := t.database.GetBlockHeaderByBlockNumber(blockNumber) - if err != nil { - return root, err - } - return header.Root, err -} - -func (t ComputeEthStateTrieTransformer) writeStateTrieNodesToIpfs(stateTrieNodes [][]byte) error { - for _, node := range stateTrieNodes { - output, err := t.stateTriePublisher.Write(node) - if err != nil { - return fmt.Errorf("Error writing state trie node to ipfs: %s\n", err) - } - log.Println("Created ipld: ", output) - } - return nil -} - -func (t ComputeEthStateTrieTransformer) writeStorageTrieNodesToIpfs(storageTrieNodes [][]byte) error { - for _, node := range storageTrieNodes { - output, err := t.storageTriePublisher.Write(node) - if err != nil { - return fmt.Errorf("Error writing storage trie node to ipfs: %s\n", err.Error()) - } - log.Println("Created ipld: ", output) - } - return nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie_test.go deleted file mode 100644 index 09e94579..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/compute_eth_state_trie_test.go +++ /dev/null @@ -1,177 +0,0 @@ -package transformers_test - -import ( - "io/ioutil" - "log" - - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Compute eth state trie transformer", func() { - BeforeEach(func() { - log.SetOutput(ioutil.Discard) - }) - - Describe("publishing the state trie for the genesis block", func() { - It("fetches state trie root for genesis block", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(0) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetBlockHeaderByBlockNumberCalledWith([]int64{0}) - }) - - It("fetches state and storage trie nodes for genesis block with block state root", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{Root: test_helpers.FakeHash}) - storageTriePublisher := ipfs.NewMockPublisher() - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), storageTriePublisher) - - err := transformer.Execute(0) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetStateTrieNodesCalledWith(test_helpers.FakeHash) - }) - - It("returns error if fetching state trie nodes fails", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesError(test_helpers.FakeError) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(0) - - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring(test_helpers.FakeError.Error())) - }) - - It("publishes state trie nodes for genesis block to IPFS", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - fakeStateTrieNodes := [][]byte{{6, 7, 8, 9, 0}} - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes(fakeStateTrieNodes) - stateTriePublisher := ipfs.NewMockPublisher() - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, stateTriePublisher, ipfs.NewMockPublisher()) - - err := transformer.Execute(0) - - Expect(err).NotTo(HaveOccurred()) - stateTriePublisher.AssertWriteCalledWithBytes(fakeStateTrieNodes) - }) - - It("returns error if publishing state trie nodes fails", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - fakeStateTrieNodes := [][]byte{{6, 7, 8, 9, 0}} - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes(fakeStateTrieNodes) - stateTriePublisher := ipfs.NewMockPublisher() - stateTriePublisher.SetError(test_helpers.FakeError) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, stateTriePublisher, ipfs.NewMockPublisher()) - - err := transformer.Execute(0) - - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring(test_helpers.FakeError.Error())) - }) - }) - - Describe("computing and publishing the state trie for subsequent blocks", func() { - It("fetches the current and parent block", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes([][]byte{{6, 7, 8, 9, 0}}) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(4) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetBlockByBlockNumberCalledwith([]int64{0, 1, 2, 3, 4}) - }) - - It("computes state and storage trie nodes for current block", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes([][]byte{{6, 7, 8, 9, 0}}) - fakeBlock := &types.Block{} - mockDB.SetGetBlockByBlockNumberReturnBlock(fakeBlock) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(1) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertComputeBlockStateTrieCalledWith(fakeBlock, fakeBlock) - }) - - It("publishes state trie nodes to IPFS", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - fakeStateTrieNodes := [][]byte{{0, 0, 0, 0, 0}, {1, 1, 1, 1, 1}} - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes(fakeStateTrieNodes) - mockDB.SetComputeBlockStateTrieReturnHash(test_helpers.FakeHash) - stateTriePublisher := ipfs.NewMockPublisher() - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, stateTriePublisher, ipfs.NewMockPublisher()) - - err := transformer.Execute(1) - - Expect(err).NotTo(HaveOccurred()) - stateTriePublisher.AssertWriteCalledWithBytes(fakeStateTrieNodes) - }) - - It("returns error if publishing state trie nodes fails", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes([][]byte{{6, 7, 8, 9, 0}}) - mockDB.SetComputeBlockStateTrieReturnHash(test_helpers.FakeHash) - stateTriePublisher := ipfs.NewMockPublisher() - stateTriePublisher.SetError(test_helpers.FakeError) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, stateTriePublisher, ipfs.NewMockPublisher()) - - err := transformer.Execute(1) - - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring(test_helpers.FakeError.Error())) - }) - - It("publishes storage trie nodes to IPFS", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes(test_helpers.FakeTrieNodes) - fakeStorageTrieNodes := [][]byte{{2, 2, 2, 2, 2}} - mockDB.SetGetStateAndStorageTrieNodesReturnStorageTrieBytes(fakeStorageTrieNodes) - mockDB.SetComputeBlockStateTrieReturnHash(test_helpers.FakeHash) - storageTriePublisher := ipfs.NewMockPublisher() - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), storageTriePublisher) - - err := transformer.Execute(1) - - Expect(err).NotTo(HaveOccurred()) - storageTriePublisher.AssertWriteCalledWithBytes(fakeStorageTrieNodes) - }) - - It("returns error if publishing storage trie nodes fails", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes(test_helpers.FakeTrieNodes) - mockDB.SetGetStateAndStorageTrieNodesReturnStorageTrieBytes(test_helpers.FakeTrieNodes) - mockDB.SetComputeBlockStateTrieReturnHash(test_helpers.FakeHash) - storageTriePublisher := ipfs.NewMockPublisher() - storageTriePublisher.SetError(test_helpers.FakeError) - transformer := transformers.NewComputeEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), storageTriePublisher) - - err := transformer.Execute(1) - - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring(test_helpers.FakeError.Error())) - }) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/errors.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/errors.go deleted file mode 100644 index 307cd51e..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/errors.go +++ /dev/null @@ -1,26 +0,0 @@ -package transformers - -import ( - "errors" - "fmt" -) - -const ( - GetBlockRlpErr = "Error fetching block RLP data" - PutIpldErr = "Error writing to IPFS" -) - -var ErrInvalidRange = errors.New("ending block number must be greater than or equal to starting block number") - -type ExecuteError struct { - msg string - err error -} - -func NewExecuteError(msg string, err error) *ExecuteError { - return &ExecuteError{msg: msg, err: err} -} - -func (ee ExecuteError) Error() string { - return fmt.Sprintf("%s: %s", ee.msg, ee.err.Error()) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header.go deleted file mode 100644 index 1743d508..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header.go +++ /dev/null @@ -1,32 +0,0 @@ -package transformers - -import ( - "log" - - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" -) - -type EthBlockHeaderTransformer struct { - database db.Database - publisher ipfs.Publisher -} - -func NewEthBlockHeaderTransformer(ethDB db.Database, publisher ipfs.Publisher) *EthBlockHeaderTransformer { - return &EthBlockHeaderTransformer{database: ethDB, publisher: publisher} -} - -func (t EthBlockHeaderTransformer) Execute(startingBlockNumber int64, endingBlockNumber int64) error { - if endingBlockNumber < startingBlockNumber { - return ErrInvalidRange - } - for i := startingBlockNumber; i <= endingBlockNumber; i++ { - blockData := t.database.GetRawBlockHeaderByBlockNumber(i) - output, err := t.publisher.Write(blockData) - if err != nil { - return NewExecuteError(PutIpldErr, err) - } - log.Printf("Created IPLD: %s", output) - } - return nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header_test.go deleted file mode 100644 index 66577f08..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_header_test.go +++ /dev/null @@ -1,110 +0,0 @@ -package transformers_test - -import ( - "io/ioutil" - "log" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Eth block header transformer", func() { - var mockDB *db.MockDatabase - var mockPublisher *ipfs.MockPublisher - - Describe("Fetching one block header", func() { - var fakeBytes []byte - var blockNumber int64 - - BeforeEach(func() { - mockDB = db.NewMockDatabase() - mockPublisher = ipfs.NewMockPublisher() - blockNumber = 54321 - fakeBytes = []byte{6, 7, 8, 9, 0} - mockDB.SetGetRawBlockHeaderByBlockNumberReturnBytes([][]byte{fakeBytes}) - mockPublisher.SetReturnStrings([][]string{{"cid_one", "cid_two"}}) - log.SetOutput(ioutil.Discard) - }) - - It("returns error if ending block number is less than starting block number", func() { - transformer := transformers.NewEthBlockHeaderTransformer(mockDB, mockPublisher) - - err := transformer.Execute(1, 0) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(transformers.ErrInvalidRange)) - }) - - It("Fetches RLP data from ethereum db", func() { - transformer := transformers.NewEthBlockHeaderTransformer(mockDB, mockPublisher) - - err := transformer.Execute(blockNumber, blockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetRawBlockHeaderByBlockNumberCalledWith([]int64{blockNumber}) - }) - - It("Persists block RLP data to IPFS", func() { - transformer := transformers.NewEthBlockHeaderTransformer(mockDB, mockPublisher) - - err := transformer.Execute(blockNumber, blockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockPublisher.AssertWriteCalledWithBytes([][]byte{fakeBytes}) - }) - - It("Returns err if persisting block RLP data to IPFS fails", func() { - mockPublisher.SetError(test_helpers.FakeError) - transformer := transformers.NewEthBlockHeaderTransformer(mockDB, mockPublisher) - - err := transformer.Execute(blockNumber, blockNumber) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(transformers.NewExecuteError(transformers.PutIpldErr, test_helpers.FakeError))) - mockDB.AssertGetRawBlockHeaderByBlockNumberCalledWith([]int64{blockNumber}) - mockPublisher.AssertWriteCalledWithBytes([][]byte{fakeBytes}) - }) - }) - - Describe("Fetching multiple blocks", func() { - var fakeRlpBytes []byte - var startingBlockNumber int64 - var endingBlockNumber int64 - - BeforeEach(func() { - mockDB = db.NewMockDatabase() - mockPublisher = ipfs.NewMockPublisher() - startingBlockNumber = 54321 - endingBlockNumber = 54322 - fakeRlpBytes = []byte{6, 7, 8, 9, 0} - mockDB.SetGetRawBlockHeaderByBlockNumberReturnBytes([][]byte{fakeRlpBytes, fakeRlpBytes}) - fakeOutputString := []string{"cid_one", "cid_two"} - mockPublisher.SetReturnStrings([][]string{fakeOutputString, fakeOutputString}) - log.SetOutput(ioutil.Discard) - }) - - It("Fetches block RLP data from ethereum db for every block in range", func() { - transformer := transformers.NewEthBlockHeaderTransformer(mockDB, mockPublisher) - - err := transformer.Execute(startingBlockNumber, endingBlockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetRawBlockHeaderByBlockNumberCalledWith([]int64{startingBlockNumber, endingBlockNumber}) - }) - - It("Persists block RLP data to IPFS for every block in range", func() { - transformer := transformers.NewEthBlockHeaderTransformer(mockDB, mockPublisher) - - err := transformer.Execute(startingBlockNumber, endingBlockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockPublisher.AssertWriteCalledWithBytes([][]byte{fakeRlpBytes, fakeRlpBytes}) - }) - }) - -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts.go deleted file mode 100644 index daa41e75..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts.go +++ /dev/null @@ -1,34 +0,0 @@ -package transformers - -import ( - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "log" -) - -type EthBlockReceiptTransformer struct { - database db.Database - publisher ipfs.Publisher -} - -func NewEthBlockReceiptTransformer(database db.Database, publisher ipfs.Publisher) *EthBlockReceiptTransformer { - return &EthBlockReceiptTransformer{ - database: database, - publisher: publisher, - } -} - -func (transformer EthBlockReceiptTransformer) Execute(startingBlockNumber int64, endingBlockNumber int64) error { - if endingBlockNumber < startingBlockNumber { - return ErrInvalidRange - } - for i := startingBlockNumber; i <= endingBlockNumber; i++ { - receipts := transformer.database.GetBlockReceipts(i) - cids, err := transformer.publisher.Write(receipts) - if err != nil { - return err - } - log.Println("Generated IPLDs: ", cids) - } - return nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts_test.go deleted file mode 100644 index b34d0b18..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_receipts_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package transformers_test - -import ( - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" - "io/ioutil" - "log" -) - -var _ = Describe("Eth block receipts transformer", func() { - BeforeEach(func() { - log.SetOutput(ioutil.Discard) - }) - - It("returns error if ending block number is less than starting block number", func() { - transformer := transformers.NewEthBlockReceiptTransformer(db.NewMockDatabase(), ipfs.NewMockPublisher()) - - err := transformer.Execute(1, 0) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(transformers.ErrInvalidRange)) - }) - - It("fetches blocks' receipts from database", func() { - mockDatabase := db.NewMockDatabase() - transformer := transformers.NewEthBlockReceiptTransformer(mockDatabase, ipfs.NewMockPublisher()) - - err := transformer.Execute(0, 1) - - Expect(err).NotTo(HaveOccurred()) - mockDatabase.AssertGetBlockReceiptsCalledWith([]int64{0, 1}) - }) - - It("publishes block receipts", func() { - mockDatabase := db.NewMockDatabase() - fakeReceipts := types.Receipts{ - &types.Receipt{}, - &types.Receipt{}, - } - mockDatabase.SetGetBlockReceiptsReturnReceipts(fakeReceipts) - mockPublisher := ipfs.NewMockPublisher() - transformer := transformers.NewEthBlockReceiptTransformer(mockDatabase, mockPublisher) - - err := transformer.Execute(0, 0) - - Expect(err).NotTo(HaveOccurred()) - mockPublisher.AssertWriteCalledWithInterfaces([]interface{}{fakeReceipts}) - }) - - It("returns error if publishing block receipts fails", func() { - mockDatabase := db.NewMockDatabase() - fakeReceipts := types.Receipts{ - &types.Receipt{}, - &types.Receipt{}, - } - mockDatabase.SetGetBlockReceiptsReturnReceipts(fakeReceipts) - mockPublisher := ipfs.NewMockPublisher() - mockPublisher.SetError(test_helpers.FakeError) - transformer := transformers.NewEthBlockReceiptTransformer(mockDatabase, mockPublisher) - - err := transformer.Execute(0, 0) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(test_helpers.FakeError)) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions.go deleted file mode 100644 index 7823b869..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions.go +++ /dev/null @@ -1,31 +0,0 @@ -package transformers - -import ( - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" - "log" -) - -type EthBlockTransactionsTransformer struct { - database db.Database - publisher ipfs.Publisher -} - -func NewEthBlockTransactionsTransformer(db db.Database, publisher ipfs.Publisher) *EthBlockTransactionsTransformer { - return &EthBlockTransactionsTransformer{database: db, publisher: publisher} -} - -func (t EthBlockTransactionsTransformer) Execute(startingBlockNumber int64, endingBlockNumber int64) error { - if endingBlockNumber < startingBlockNumber { - return ErrInvalidRange - } - for i := startingBlockNumber; i <= endingBlockNumber; i++ { - body := t.database.GetBlockBodyByBlockNumber(i) - res, err := t.publisher.Write(body) - if err != nil { - return NewExecuteError(PutIpldErr, err) - } - log.Println("Created CIDs: ", res) - } - return nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions_test.go deleted file mode 100644 index f67e7f14..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_block_transactions_test.go +++ /dev/null @@ -1,109 +0,0 @@ -package transformers_test - -import ( - "io/ioutil" - "log" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/ethereum/go-ethereum/core/types" - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" -) - -var _ = Describe("Eth block transactions transformer", func() { - Describe("executing on a single block", func() { - BeforeEach(func() { - log.SetOutput(ioutil.Discard) - }) - - It("returns error if ending block number is less than starting block number", func() { - transformer := transformers.NewEthBlockTransactionsTransformer(db.NewMockDatabase(), ipfs.NewMockPublisher()) - - err := transformer.Execute(1, 0) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(transformers.ErrInvalidRange)) - }) - - It("fetches rlp data for block body", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockBodyByBlockNumberReturnBody([]*types.Body{{}}) - mockPublisher := ipfs.NewMockPublisher() - mockPublisher.SetReturnStrings([][]string{{"cid"}}) - transformer := transformers.NewEthBlockTransactionsTransformer(mockDB, mockPublisher) - blockNumber := int64(1234567) - - err := transformer.Execute(blockNumber, blockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetBlockBodyByBlockNumberCalledWith([]int64{blockNumber}) - }) - - It("publishes block body data to IPFS", func() { - mockDB := db.NewMockDatabase() - fakeRawData := []*types.Body{{}} - mockDB.SetGetBlockBodyByBlockNumberReturnBody(fakeRawData) - mockPublisher := ipfs.NewMockPublisher() - mockPublisher.SetReturnStrings([][]string{{"cid"}}) - transformer := transformers.NewEthBlockTransactionsTransformer(mockDB, mockPublisher) - blockNumber := int64(1234567) - - err := transformer.Execute(blockNumber, blockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockPublisher.AssertWriteCalledWithBodies(fakeRawData) - }) - - It("returns error if publishing data returns error", func() { - mockDB := db.NewMockDatabase() - fakeRawData := []*types.Body{{}} - mockDB.SetGetBlockBodyByBlockNumberReturnBody(fakeRawData) - mockPublisher := ipfs.NewMockPublisher() - mockPublisher.SetError(test_helpers.FakeError) - transformer := transformers.NewEthBlockTransactionsTransformer(mockDB, mockPublisher) - blockNumber := int64(1234567) - - err := transformer.Execute(blockNumber, blockNumber) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(transformers.NewExecuteError(transformers.PutIpldErr, test_helpers.FakeError))) - }) - }) - - Describe("executing on a range of blocks", func() { - It("fetches rlp data for every block's body", func() { - mockDatabase := db.NewMockDatabase() - mockDatabase.SetGetBlockBodyByBlockNumberReturnBody([]*types.Body{{}, {}}) - mockPublisher := ipfs.NewMockPublisher() - mockPublisher.SetReturnStrings([][]string{{"cid_one"}, {"cid_two"}}) - transformer := transformers.NewEthBlockTransactionsTransformer(mockDatabase, mockPublisher) - startingBlockNumber := int64(1234567) - endingBlockNumber := int64(1234568) - - err := transformer.Execute(startingBlockNumber, endingBlockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockDatabase.AssertGetBlockBodyByBlockNumberCalledWith([]int64{startingBlockNumber, endingBlockNumber}) - }) - - It("publishes every block body's data to IPFS", func() { - mockDatabase := db.NewMockDatabase() - fakeRawData := []*types.Body{{}, {}} - mockDatabase.SetGetBlockBodyByBlockNumberReturnBody(fakeRawData) - mockPublisher := ipfs.NewMockPublisher() - mockPublisher.SetReturnStrings([][]string{{"cid_one"}, {"cid_two"}}) - transformer := transformers.NewEthBlockTransactionsTransformer(mockDatabase, mockPublisher) - startingBlockNumber := int64(1234567) - endingBlockNumber := int64(1234568) - - err := transformer.Execute(startingBlockNumber, endingBlockNumber) - - Expect(err).NotTo(HaveOccurred()) - mockPublisher.AssertWriteCalledWithBodies(fakeRawData) - }) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie.go deleted file mode 100644 index 92e67f41..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie.go +++ /dev/null @@ -1,82 +0,0 @@ -package transformers - -import ( - "fmt" - "log" - - "github.com/ethereum/go-ethereum/common" - "github.com/vulcanize/eth-block-extractor/pkg/db" - "github.com/vulcanize/eth-block-extractor/pkg/ipfs" -) - -type EthStateTrieTransformer struct { - database db.Database - stateTriePublisher ipfs.Publisher - storageTriePublisher ipfs.Publisher -} - -func NewEthStateTrieTransformer(database db.Database, stateTriePublisher, storageTriePublisher ipfs.Publisher) *EthStateTrieTransformer { - return &EthStateTrieTransformer{ - database: database, - stateTriePublisher: stateTriePublisher, - storageTriePublisher: storageTriePublisher, - } -} - -func (t EthStateTrieTransformer) Execute(startingBlockNumber int64, endingBlockNumber int64) error { - if endingBlockNumber < startingBlockNumber { - return ErrInvalidRange - } - for i := startingBlockNumber; i <= endingBlockNumber; i++ { - root, err := t.getStateRootForBlock(i) - if err != nil { - return err - } - - stateTrieNodes, storageTrieNodes, err := t.database.GetStateAndStorageTrieNodes(root) - if err != nil { - return fmt.Errorf("Error fetching state trie for block %d: %s\n", i, err) - } - - err = t.writeStateTrieNodesToIpfs(stateTrieNodes) - if err != nil { - return err - } - - err = t.writeStorageTrieNodesToIpfs(storageTrieNodes) - if err != nil { - return err - } - } - return nil -} - -func (t EthStateTrieTransformer) getStateRootForBlock(blockNumber int64) (root common.Hash, err error) { - header := t.database.GetBlockHeaderByBlockNumber(blockNumber) - if err != nil { - return root, err - } - return header.Root, nil -} - -func (t EthStateTrieTransformer) writeStateTrieNodesToIpfs(stateTrieNodes [][]byte) error { - for _, node := range stateTrieNodes { - output, err := t.stateTriePublisher.Write(node) - if err != nil { - return fmt.Errorf("Error writing state trie node to ipfs: %s\n", err.Error()) - } - log.Println("Created ipld: ", output) - } - return nil -} - -func (t EthStateTrieTransformer) writeStorageTrieNodesToIpfs(storageTrieNodes [][]byte) error { - for _, node := range storageTrieNodes { - output, err := t.storageTriePublisher.Write(node) - if err != nil { - return fmt.Errorf("Error writing storage trie node to ipfs: %s\n", err.Error()) - } - log.Println("Created ipld: ", output) - } - return nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie_test.go deleted file mode 100644 index 8d9415e0..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/eth_state_trie_test.go +++ /dev/null @@ -1,99 +0,0 @@ -package transformers_test - -import ( - "io/ioutil" - "log" - - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/vulcanize/eth-block-extractor/pkg/transformers" - "github.com/vulcanize/eth-block-extractor/test_helpers" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs" - "github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp" -) - -var _ = Describe("Eth state trie transformer", func() { - BeforeEach(func() { - log.SetOutput(ioutil.Discard) - }) - - It("returns error if ending block number is less than starting block number", func() { - transformer := transformers.NewEthStateTrieTransformer(db.NewMockDatabase(), ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(1, 0) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(transformers.ErrInvalidRange)) - }) - - It("fetches block header for block", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - transformer := transformers.NewEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(0, 0) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetBlockHeaderByBlockNumberCalledWith([]int64{0}) - }) - - It("fetches state and storage trie nodes with state root from decoded block header", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{Root: test_helpers.FakeHash}) - transformer := transformers.NewEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(0, 0) - - Expect(err).NotTo(HaveOccurred()) - mockDB.AssertGetStateTrieNodesCalledWith(test_helpers.FakeHash) - }) - - It("returns err if fetching state trie returns err", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - mockDB.SetGetStateAndStorageTrieNodesError(test_helpers.FakeError) - transformer := transformers.NewEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), ipfs.NewMockPublisher()) - - err := transformer.Execute(0, 0) - - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring(test_helpers.FakeError.Error())) - }) - - It("writes state trie nodes to ipfs", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - fakeStateTrieNodes := [][]byte{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 0}} - mockDB.SetGetStateAndStorageTrieNodesReturnStateTrieBytes(fakeStateTrieNodes) - mockDecoder := rlp.NewMockDecoder() - mockDecoder.SetReturnOut(&types.Header{}) - mockStateTriePublisher := ipfs.NewMockPublisher() - mockStateTriePublisher.SetReturnStrings([][]string{{"one"}, {"two"}}) - transformer := transformers.NewEthStateTrieTransformer(mockDB, mockStateTriePublisher, ipfs.NewMockPublisher()) - - err := transformer.Execute(0, 0) - - Expect(err).NotTo(HaveOccurred()) - mockStateTriePublisher.AssertWriteCalledWithBytes(fakeStateTrieNodes) - }) - - It("writes storage trie nodes to ipfs", func() { - mockDB := db.NewMockDatabase() - mockDB.SetGetBlockHeaderByBlockNumberReturnHeader(&types.Header{}) - fakeStateTrieNodes := [][]byte{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 0}} - mockDB.SetGetStateAndStorageTrieNodesReturnStorageTrieBytes(fakeStateTrieNodes) - mockDecoder := rlp.NewMockDecoder() - mockDecoder.SetReturnOut(&types.Header{}) - mockStorageTriePublisher := ipfs.NewMockPublisher() - mockStorageTriePublisher.SetReturnStrings([][]string{{"one"}, {"two"}}) - transformer := transformers.NewEthStateTrieTransformer(mockDB, ipfs.NewMockPublisher(), mockStorageTriePublisher) - - err := transformer.Execute(0, 0) - - Expect(err).NotTo(HaveOccurred()) - mockStorageTriePublisher.AssertWriteCalledWithBytes(fakeStateTrieNodes) - }) -}) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/transformers_suite_test.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/transformers_suite_test.go deleted file mode 100644 index 74d06ebc..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/transformers/transformers_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package transformers_test - -import ( - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -func TestTransformers(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Transformers Suite") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/block_validator.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/block_validator.go deleted file mode 100644 index eb3e7b9f..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/block_validator.go +++ /dev/null @@ -1,24 +0,0 @@ -package core - -import ( - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" -) - -type GethBlockValidator interface { - ValidateState(block, parent *types.Block, state *state.StateDB, receipts types.Receipts, usedGas uint64) error -} - -type BlockValidator struct { - validator core.Validator -} - -func NewBlockValidator(blockChain BlockChain) *BlockValidator { - validator := core.NewBlockValidator(blockChain.Config(), blockChain.BlockChain(), blockChain.Engine()) - return &BlockValidator{validator: validator} -} - -func (sv *BlockValidator) ValidateState(block, parent *types.Block, state *state.StateDB, receipts types.Receipts, usedGas uint64) error { - return sv.validator.ValidateState(block, parent, state, receipts, usedGas) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/blockchain.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/blockchain.go deleted file mode 100644 index 95c2aaa6..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/blockchain.go +++ /dev/null @@ -1,40 +0,0 @@ -package core - -import ( - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/params" -) - -type GethCoreBlockChain interface { - BlockChain() *core.BlockChain - Config() *params.ChainConfig - Engine() consensus.Engine -} - -type BlockChain struct { - blockChain *core.BlockChain -} - -func NewBlockChain(databaseConnection ethdb.Database) (*BlockChain, error) { - blockchain, err := core.NewBlockChain(databaseConnection, nil, params.MainnetChainConfig, ethash.NewFaker(), vm.Config{}) - if err != nil { - return nil, err - } - return &BlockChain{blockChain: blockchain}, nil -} - -func (sb *BlockChain) BlockChain() *core.BlockChain { - return sb.blockChain -} - -func (sb *BlockChain) Config() *params.ChainConfig { - return sb.blockChain.Config() -} - -func (sb *BlockChain) Engine() consensus.Engine { - return sb.blockChain.Engine() -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/rawdb/accessors_chain.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/rawdb/accessors_chain.go deleted file mode 100644 index 9f280d80..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/rawdb/accessors_chain.go +++ /dev/null @@ -1,50 +0,0 @@ -package rawdb - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/rawdb" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/rlp" -) - -type IAccessorsChain interface { - GetBlock(hash common.Hash, number uint64) *types.Block - GetBlockReceipts(hash common.Hash, number uint64) types.Receipts - GetBody(hash common.Hash, number uint64) *types.Body - GetCanonicalHash(number uint64) common.Hash - GetHeader(hash common.Hash, number uint64) *types.Header - GetHeaderRLP(hash common.Hash, number uint64) rlp.RawValue -} - -type AccessorsChain struct { - ethDbConnection ethdb.Database -} - -func NewAccessorsChain(databaseConnection ethdb.Database) *AccessorsChain { - return &AccessorsChain{ethDbConnection: databaseConnection} -} - -func (accessor *AccessorsChain) GetBlock(hash common.Hash, number uint64) *types.Block { - return rawdb.ReadBlock(accessor.ethDbConnection, hash, number) -} - -func (accessor *AccessorsChain) GetBlockReceipts(hash common.Hash, number uint64) types.Receipts { - return rawdb.ReadReceipts(accessor.ethDbConnection, hash, number) -} - -func (accessor *AccessorsChain) GetBody(hash common.Hash, number uint64) *types.Body { - return rawdb.ReadBody(accessor.ethDbConnection, hash, number) -} - -func (accessor *AccessorsChain) GetCanonicalHash(number uint64) common.Hash { - return rawdb.ReadCanonicalHash(accessor.ethDbConnection, number) -} - -func (accessor *AccessorsChain) GetHeader(hash common.Hash, number uint64) *types.Header { - return rawdb.ReadHeader(accessor.ethDbConnection, hash, number) -} - -func (accessor *AccessorsChain) GetHeaderRLP(hash common.Hash, number uint64) rlp.RawValue { - return rawdb.ReadHeaderRLP(accessor.ethDbConnection, hash, number) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/database.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/database.go deleted file mode 100644 index ed156103..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/database.go +++ /dev/null @@ -1,41 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie" -) - -type GethStateDatabase interface { - Database() state.Database - OpenTrie(root common.Hash) (GethTrie, error) - TrieDB() trie.GethTrieDatabase -} - -type Database struct { - db state.Database - trieDB trie.GethTrieDatabase -} - -func NewDatabase(databaseConnection ethdb.Database) *Database { - db := state.NewDatabase(databaseConnection) - trieDB := trie.NewTrieDatabase(db.TrieDB()) - return &Database{db: db, trieDB: trieDB} -} - -func (db Database) Database() state.Database { - return db.db -} - -func (db Database) OpenTrie(root common.Hash) (GethTrie, error) { - stateTrie, err := db.db.OpenTrie(root) - if err != nil { - return nil, err - } - return NewTrie(stateTrie), nil -} - -func (db Database) TrieDB() trie.GethTrieDatabase { - return db.trieDB -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb.go deleted file mode 100644 index 07c7d669..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb.go +++ /dev/null @@ -1,23 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" -) - -type GethStateDB interface { - Commit(deleteEmptyObjects bool) (common.Hash, error) - StateDB() *state.StateDB -} - -type StateDB struct { - db *state.StateDB -} - -func (st *StateDB) StateDB() *state.StateDB { - return st.db -} - -func (st *StateDB) Commit(deleteEmptyObjects bool) (common.Hash, error) { - return st.db.Commit(deleteEmptyObjects) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb_factory.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb_factory.go deleted file mode 100644 index 82b05135..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/statedb_factory.go +++ /dev/null @@ -1,25 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" -) - -type GethStateDBFactory interface { - NewStateDB(root common.Hash, db state.Database) (GethStateDB, error) -} - -type StateDBFactory struct { -} - -func NewStateDBFactory() *StateDBFactory { - return &StateDBFactory{} -} - -func (stf *StateDBFactory) NewStateDB(root common.Hash, db state.Database) (GethStateDB, error) { - stateDb, err := state.New(root, db) - if err != nil { - return nil, err - } - return &StateDB{db: stateDb}, nil -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/trie.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/trie.go deleted file mode 100644 index 2965e28c..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state/trie.go +++ /dev/null @@ -1,23 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/core/state" - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie" -) - -type GethTrie interface { - NodeIterator(startKey []byte) trie.GethTrieNodeIterator -} - -type Trie struct { - trie state.Trie -} - -func NewTrie(trie state.Trie) GethTrie { - return &Trie{trie: trie} -} - -func (t *Trie) NodeIterator(startKey []byte) trie.GethTrieNodeIterator { - iterator := t.trie.NodeIterator(startKey) - return trie.NewNodeIterator(iterator) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state_processor.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state_processor.go deleted file mode 100644 index 2c0ee993..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state_processor.go +++ /dev/null @@ -1,27 +0,0 @@ -package core - -import ( - "github.com/ethereum/go-ethereum/consensus/ethash" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/params" -) - -type GethStateProcessor interface { - Process(block *types.Block, statedb *state.StateDB) (types.Receipts, []*types.Log, uint64, error) -} - -type StateProcessor struct { - processor *core.StateProcessor -} - -func NewStateProcessor(blockChain BlockChain) *StateProcessor { - processor := core.NewStateProcessor(params.MainnetChainConfig, blockChain.BlockChain(), ethash.NewFaker()) - return &StateProcessor{processor: processor} -} - -func (sp *StateProcessor) Process(block *types.Block, statedb *state.StateDB) (types.Receipts, []*types.Log, uint64, error) { - return sp.processor.Process(block, statedb, vm.Config{}) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/database.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/database.go deleted file mode 100644 index 4e3bdc6a..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/database.go +++ /dev/null @@ -1,22 +0,0 @@ -package trie - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/trie" -) - -type GethTrieDatabase interface { - Node(hash common.Hash) ([]byte, error) -} - -type Database struct { - db *trie.Database -} - -func NewTrieDatabase(db *trie.Database) *Database { - return &Database{db: db} -} - -func (td *Database) Node(hash common.Hash) ([]byte, error) { - return td.db.Node(hash) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/iterator.go b/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/iterator.go deleted file mode 100644 index 2281934d..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie/iterator.go +++ /dev/null @@ -1,37 +0,0 @@ -package trie - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/trie" -) - -type GethTrieNodeIterator interface { - Hash() common.Hash - Leaf() bool - LeafBlob() []byte - Next(bool) bool -} - -type NodeIterator struct { - iterator trie.NodeIterator -} - -func NewNodeIterator(nodeIterator trie.NodeIterator) *NodeIterator { - return &NodeIterator{iterator: nodeIterator} -} - -func (ni *NodeIterator) Hash() common.Hash { - return ni.iterator.Hash() -} - -func (ni *NodeIterator) Leaf() bool { - return ni.iterator.Leaf() -} - -func (ni *NodeIterator) LeafBlob() []byte { - return ni.iterator.LeafBlob() -} - -func (ni *NodeIterator) Next(b bool) bool { - return ni.iterator.Next(b) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/fakes.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/fakes.go deleted file mode 100644 index 0c0d8813..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/fakes.go +++ /dev/null @@ -1,14 +0,0 @@ -package test_helpers - -import ( - "errors" - "github.com/ethereum/go-ethereum/common" -) - -var ( - FakeError = errors.New("failed") - FakeHash = common.HexToHash("0x123") - FakeString = "Test" - FakeTrieNodes = [][]byte{{1, 1, 1, 1, 1}, {2, 2, 2, 2, 2}, {3, 3, 3, 3, 3}} - FakeTrieNode = []byte{248, 68, 1, 128, 160, 6, 180, 135, 209, 92, 2, 139, 109, 245, 108, 62, 187, 155, 112, 134, 150, 94, 186, 58, 36, 8, 87, 166, 71, 250, 236, 226, 255, 19, 38, 159, 43, 160, 206, 51, 34, 13, 92, 127, 13, 9, 215, 92, 239, 247, 108, 5, 134, 60, 94, 125, 110, 128, 28, 112, 223, 231, 213, 212, 93, 76, 68, 232, 6, 84} -) diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/database.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/database.go deleted file mode 100644 index 79e2a1b7..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/database.go +++ /dev/null @@ -1,165 +0,0 @@ -package db - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/gomega" -) - -type MockDatabase struct { - computeBlockStateTrieErr error - computeBlockStateTriePassedCurrentBlock *types.Block - computeBlockStateTriePassedParentBlock *types.Block - computeBlockStateTrieReturnHash common.Hash - getBlockBodyByBlockNumberPassedBlockNumbers []int64 - getBlockBodyByBlockNumberReturnBodies []*types.Body - getBlockByBlockNumberPassedNumbers []int64 - getBlockByBlockNumberReturnBlock *types.Block - getBlockHeaderByBlockNumberPassedBlockNumbers []int64 - getBlockHeaderByBlockNumberReturnHeader *types.Header - getRawBlockHeaderByBlockNumberPassedBlockNumbers []int64 - getRawBlockHeaderByBlockNumberReturnBytes [][]byte - getBlockReceiptsPassedBlockNumbers []int64 - getBlockReceiptsReturnReceipts types.Receipts - getStateAndStorageTrieNodesErr error - getStateAndStorageTrieNodesPassedRoot common.Hash - getStateAndStorageTrieNodesReturnStateTrieBytes [][]byte - getStateAndStorageTrieNodesReturnStorageTrieBytes [][]byte -} - -func NewMockDatabase() *MockDatabase { - return &MockDatabase{ - computeBlockStateTrieErr: nil, - computeBlockStateTriePassedCurrentBlock: nil, - computeBlockStateTriePassedParentBlock: nil, - computeBlockStateTrieReturnHash: common.Hash{}, - getBlockBodyByBlockNumberPassedBlockNumbers: nil, - getBlockBodyByBlockNumberReturnBodies: nil, - getBlockByBlockNumberPassedNumbers: nil, - getBlockByBlockNumberReturnBlock: nil, - getBlockHeaderByBlockNumberPassedBlockNumbers: nil, - getBlockHeaderByBlockNumberReturnHeader: nil, - getRawBlockHeaderByBlockNumberPassedBlockNumbers: nil, - getRawBlockHeaderByBlockNumberReturnBytes: nil, - getBlockReceiptsPassedBlockNumbers: nil, - getBlockReceiptsReturnReceipts: nil, - getStateAndStorageTrieNodesErr: nil, - getStateAndStorageTrieNodesPassedRoot: common.Hash{}, - getStateAndStorageTrieNodesReturnStateTrieBytes: nil, - getStateAndStorageTrieNodesReturnStorageTrieBytes: nil, - } -} - -func (db *MockDatabase) SetComputeBlockStateTrieError(err error) { - db.computeBlockStateTrieErr = err -} - -func (db *MockDatabase) SetComputeBlockStateTrieReturnHash(hash common.Hash) { - db.computeBlockStateTrieReturnHash = hash -} - -func (db *MockDatabase) SetGetBlockBodyByBlockNumberReturnBody(bodies []*types.Body) { - db.getBlockBodyByBlockNumberReturnBodies = bodies -} - -func (db *MockDatabase) SetGetBlockByBlockNumberReturnBlock(returnBlock *types.Block) { - db.getBlockByBlockNumberReturnBlock = returnBlock -} - -func (db *MockDatabase) SetGetBlockHeaderByBlockNumberReturnHeader(header *types.Header) { - db.getBlockHeaderByBlockNumberReturnHeader = header -} - -func (db *MockDatabase) SetGetRawBlockHeaderByBlockNumberReturnBytes(returnBytes [][]byte) { - db.getRawBlockHeaderByBlockNumberReturnBytes = returnBytes -} - -func (db *MockDatabase) SetGetBlockReceiptsReturnReceipts(receipts types.Receipts) { - db.getBlockReceiptsReturnReceipts = receipts -} - -func (db *MockDatabase) SetGetStateAndStorageTrieNodesError(err error) { - db.getStateAndStorageTrieNodesErr = err -} - -func (db *MockDatabase) SetGetStateAndStorageTrieNodesReturnStateTrieBytes(returnBytes [][]byte) { - db.getStateAndStorageTrieNodesReturnStateTrieBytes = returnBytes -} - -func (db *MockDatabase) SetGetStateAndStorageTrieNodesReturnStorageTrieBytes(returnBytes [][]byte) { - db.getStateAndStorageTrieNodesReturnStorageTrieBytes = returnBytes -} - -func (db *MockDatabase) ComputeBlockStateTrie(currentBlock *types.Block, parentBlock *types.Block) (common.Hash, error) { - db.computeBlockStateTriePassedCurrentBlock = currentBlock - db.computeBlockStateTriePassedParentBlock = parentBlock - return db.computeBlockStateTrieReturnHash, db.computeBlockStateTrieErr -} - -func (db *MockDatabase) GetBlockBodyByBlockNumber(blockNumber int64) *types.Body { - db.getBlockBodyByBlockNumberPassedBlockNumbers = append(db.getBlockBodyByBlockNumberPassedBlockNumbers, blockNumber) - returnBytes := db.getBlockBodyByBlockNumberReturnBodies[0] - db.getBlockBodyByBlockNumberReturnBodies = db.getBlockBodyByBlockNumberReturnBodies[1:] - return returnBytes -} - -func (db *MockDatabase) GetBlockByBlockNumber(blockNumber int64) *types.Block { - db.getBlockByBlockNumberPassedNumbers = append(db.getBlockByBlockNumberPassedNumbers, blockNumber) - return db.getBlockByBlockNumberReturnBlock -} - -func (db *MockDatabase) GetBlockHeaderByBlockNumber(blockNumber int64) *types.Header { - db.getBlockHeaderByBlockNumberPassedBlockNumbers = append(db.getBlockHeaderByBlockNumberPassedBlockNumbers, blockNumber) - return db.getBlockHeaderByBlockNumberReturnHeader -} - -func (db *MockDatabase) GetRawBlockHeaderByBlockNumber(blockNumber int64) []byte { - db.getRawBlockHeaderByBlockNumberPassedBlockNumbers = append(db.getRawBlockHeaderByBlockNumberPassedBlockNumbers, blockNumber) - returnBytes := db.getRawBlockHeaderByBlockNumberReturnBytes[0] - db.getRawBlockHeaderByBlockNumberReturnBytes = db.getRawBlockHeaderByBlockNumberReturnBytes[1:] - return returnBytes -} - -func (db *MockDatabase) GetBlockReceipts(blockNumber int64) types.Receipts { - db.getBlockReceiptsPassedBlockNumbers = append(db.getBlockReceiptsPassedBlockNumbers, blockNumber) - return db.getBlockReceiptsReturnReceipts -} - -func (db *MockDatabase) GetStateAndStorageTrieNodes(root common.Hash) ([][]byte, [][]byte, error) { - db.getStateAndStorageTrieNodesPassedRoot = root - return db.getStateAndStorageTrieNodesReturnStateTrieBytes, db.getStateAndStorageTrieNodesReturnStorageTrieBytes, db.getStateAndStorageTrieNodesErr -} - -func (db *MockDatabase) AssertComputeBlockStateTrieCalledWith(currentBlock *types.Block, parentBlock *types.Block) { - Expect(db.computeBlockStateTriePassedCurrentBlock).To(Equal(currentBlock)) - Expect(db.computeBlockStateTriePassedParentBlock).To(Equal(parentBlock)) -} - -func (db *MockDatabase) AssertGetBlockBodyByBlockNumberCalledWith(blockNumbers []int64) { - Expect(db.getBlockBodyByBlockNumberPassedBlockNumbers).To(Equal(blockNumbers)) -} - -func (db *MockDatabase) AssertGetBlockByBlockNumberCalledwith(blockNumbers []int64) { - for i := 0; i < len(blockNumbers); i++ { - Expect(db.getBlockByBlockNumberPassedNumbers).To(ContainElement(blockNumbers[i])) - } - for i := 0; i < len(db.getBlockByBlockNumberPassedNumbers); i++ { - Expect(blockNumbers).To(ContainElement(db.getBlockByBlockNumberPassedNumbers[i])) - } -} - -func (db *MockDatabase) AssertGetBlockHeaderByBlockNumberCalledWith(blockNumbers []int64) { - Expect(db.getBlockHeaderByBlockNumberPassedBlockNumbers).To(Equal(blockNumbers)) -} - -func (db *MockDatabase) AssertGetRawBlockHeaderByBlockNumberCalledWith(blockNumbers []int64) { - Expect(db.getRawBlockHeaderByBlockNumberPassedBlockNumbers).To(Equal(blockNumbers)) -} - -func (db *MockDatabase) AssertGetBlockReceiptsCalledWith(blockNumbers []int64) { - Expect(db.getBlockReceiptsPassedBlockNumbers).To(Equal(blockNumbers)) -} - -func (db *MockDatabase) AssertGetStateTrieNodesCalledWith(root common.Hash) { - Expect(db.getStateAndStorageTrieNodesPassedRoot).To(Equal(root)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_computer.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_computer.go deleted file mode 100644 index 3a705e72..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_computer.go +++ /dev/null @@ -1,42 +0,0 @@ -package level - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/gomega" -) - -type MockStateComputer struct { - computeBlockStateTriePassedCurrentBlock *types.Block - computeBlockStateTriePassedParentBlock *types.Block - computeBlockStateTrieReturnErr error - computeBlockStateTrieReturnHash common.Hash -} - -func NewMockStateComputer() *MockStateComputer { - return &MockStateComputer{ - computeBlockStateTriePassedCurrentBlock: nil, - computeBlockStateTriePassedParentBlock: nil, - computeBlockStateTrieReturnErr: nil, - computeBlockStateTrieReturnHash: common.Hash{}, - } -} - -func (msc *MockStateComputer) SetComputeBlockStateTrieReturnErr(err error) { - msc.computeBlockStateTrieReturnErr = err -} - -func (msc *MockStateComputer) SetComputeBlockStateTrieReturnHash(hash common.Hash) { - msc.computeBlockStateTrieReturnHash = hash -} - -func (msc *MockStateComputer) ComputeBlockStateTrie(currentBlock *types.Block, parentBlock *types.Block) (common.Hash, error) { - msc.computeBlockStateTriePassedCurrentBlock = currentBlock - msc.computeBlockStateTriePassedParentBlock = parentBlock - return msc.computeBlockStateTrieReturnHash, msc.computeBlockStateTrieReturnErr -} - -func (msc *MockStateComputer) AssertComputeBlockStateTrieCalledWith(currentBlock *types.Block, parentBlock *types.Block) { - Expect(msc.computeBlockStateTriePassedCurrentBlock).To(Equal(currentBlock)) - Expect(msc.computeBlockStateTriePassedParentBlock).To(Equal(parentBlock)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_trie_reader.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_trie_reader.go deleted file mode 100644 index d02235ad..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/state_trie_reader.go +++ /dev/null @@ -1,23 +0,0 @@ -package level - -import ( - "github.com/ethereum/go-ethereum/common" - . "github.com/onsi/gomega" -) - -type MockStateTrieReader struct { - passedRoot common.Hash -} - -func NewMockStateTrieReader() *MockStateTrieReader { - return &MockStateTrieReader{} -} - -func (mstr *MockStateTrieReader) GetStateAndStorageTrieNodes(stateRoot common.Hash) (stateTrieNodes, storageTrieNodes [][]byte, err error) { - mstr.passedRoot = stateRoot - return nil, nil, nil -} - -func (mstr *MockStateTrieReader) AssertGetStateAndStorageTrieNodesCalledWith(root common.Hash) { - Expect(mstr.passedRoot).To(Equal(root)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/storage_trie_reader.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/storage_trie_reader.go deleted file mode 100644 index 1387b733..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/db/level/storage_trie_reader.go +++ /dev/null @@ -1,25 +0,0 @@ -package level - -import ( - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/test_helpers" -) - -type MockStorageTrieReader struct { - getStorageTrieCalled bool -} - -func NewMockStorageTrieReader() *MockStorageTrieReader { - return &MockStorageTrieReader{ - getStorageTrieCalled: false, - } -} - -func (mstr *MockStorageTrieReader) GetStorageTrie(stateTrieLeafNode []byte) (storageTrieResults [][]byte, err error) { - mstr.getStorageTrieCalled = true - return test_helpers.FakeTrieNodes, nil -} - -func (mstr *MockStorageTrieReader) AssertGetStorageTrieCalled() { - Expect(mstr.getStorageTrieCalled).To(BeTrue()) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/adder.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/adder.go deleted file mode 100644 index ce083920..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/adder.go +++ /dev/null @@ -1,38 +0,0 @@ -package ipfs - -import ( - . "github.com/onsi/gomega" - ipld "gx/ipfs/QmWi2BYBL5gJ3CiAiQchg6rn1A8iBsrWy51EYxvHVjFvLb/go-ipld-format" -) - -type MockAdder struct { - calledCount int - passedNodes []ipld.Node - err error -} - -func NewMockAdder() *MockAdder { - return &MockAdder{ - calledCount: 0, - passedNodes: nil, - err: nil, - } -} - -func (ma *MockAdder) SetError(err error) { - ma.err = err -} - -func (ma *MockAdder) Add(node ipld.Node) error { - ma.calledCount++ - ma.passedNodes = append(ma.passedNodes, node) - return ma.err -} - -func (ma *MockAdder) AssertAddCalled(times int, nodeType interface{}) { - Expect(ma.calledCount).To(Equal(times)) - Expect(len(ma.passedNodes)).To(Equal(times)) - for _, passedNode := range ma.passedNodes { - Expect(passedNode).To(BeAssignableToTypeOf(nodeType)) - } -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/dag_putter.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/dag_putter.go deleted file mode 100644 index 0a9fd51b..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/dag_putter.go +++ /dev/null @@ -1,25 +0,0 @@ -package ipfs - -type MockDagPutter struct { - Called bool - PassedInterface interface{} - Err error -} - -func NewMockDagPutter() *MockDagPutter { - return &MockDagPutter{ - Called: false, - PassedInterface: nil, - Err: nil, - } -} - -func (mdp *MockDagPutter) SetError(err error) { - mdp.Err = err -} - -func (mdp *MockDagPutter) DagPut(raw interface{}) ([]string, error) { - mdp.Called = true - mdp.PassedInterface = raw - return nil, mdp.Err -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/publisher.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/publisher.go deleted file mode 100644 index 23be6c76..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/ipfs/publisher.go +++ /dev/null @@ -1,74 +0,0 @@ -package ipfs - -import ( - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/test_helpers" -) - -type MockPublisher struct { - err error - passedBlockDatas []interface{} - returnStrings [][]string -} - -func NewMockPublisher() *MockPublisher { - return &MockPublisher{ - err: nil, - passedBlockDatas: []interface{}{}, - returnStrings: nil, - } -} - -func (publisher *MockPublisher) SetReturnStrings(returnBytes [][]string) { - publisher.returnStrings = returnBytes -} - -func (publisher *MockPublisher) SetError(err error) { - publisher.err = err -} - -func (publisher *MockPublisher) Write(input interface{}) ([]string, error) { - publisher.passedBlockDatas = append(publisher.passedBlockDatas, input) - if publisher.err != nil { - return nil, publisher.err - } - var stringsToReturn []string - if len(publisher.returnStrings) > 0 { - stringsToReturn = publisher.returnStrings[0] - if len(publisher.returnStrings) > 1 { - publisher.returnStrings = publisher.returnStrings[1:] - } else { - publisher.returnStrings = [][]string{{test_helpers.FakeString}} - } - } else { - stringsToReturn = []string{test_helpers.FakeString} - } - return stringsToReturn, nil -} - -func (publisher *MockPublisher) AssertWriteCalledWithBytes(inputs [][]byte) { - for i := 0; i < len(inputs); i++ { - Expect(publisher.passedBlockDatas).To(ContainElement(inputs[i])) - } - for i := 0; i < len(publisher.passedBlockDatas); i++ { - Expect(inputs).To(ContainElement(publisher.passedBlockDatas[i])) - } -} - -func (publisher *MockPublisher) AssertWriteCalledWithInterfaces(interfaces []interface{}) { - for i := 0; i < len(interfaces); i++ { - Expect(publisher.passedBlockDatas).To(ContainElement(interfaces[i])) - } - for i := 0; i < len(publisher.passedBlockDatas); i++ { - Expect(interfaces).To(ContainElement(publisher.passedBlockDatas[i])) - } -} - -func (publisher *MockPublisher) AssertWriteCalledWithBodies(bodies []*types.Body) { - var expected []*types.Body - for i := 0; i < len(publisher.passedBlockDatas); i++ { - expected = append(expected, publisher.passedBlockDatas[i].(*types.Body)) - } - Expect(expected).To(Equal(bodies)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/block_validator.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/block_validator.go deleted file mode 100644 index 32be7590..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/block_validator.go +++ /dev/null @@ -1,48 +0,0 @@ -package core - -import ( - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/gomega" -) - -type MockValidator struct { - passedBlock *types.Block - passedParentBlock *types.Block - passedStateDB *state.StateDB - passedReceipts types.Receipts - passedUsedGas uint64 - returnErr error -} - -func NewMockValidator() *MockValidator { - return &MockValidator{ - passedBlock: nil, - passedParentBlock: nil, - passedStateDB: nil, - passedReceipts: nil, - passedUsedGas: 0, - returnErr: nil, - } -} - -func (mv *MockValidator) SetReturnErr(err error) { - mv.returnErr = err -} - -func (mv *MockValidator) ValidateState(block, parent *types.Block, state *state.StateDB, receipts types.Receipts, usedGas uint64) error { - mv.passedBlock = block - mv.passedParentBlock = parent - mv.passedStateDB = state - mv.passedReceipts = receipts - mv.passedUsedGas = usedGas - return mv.returnErr -} - -func (mv *MockValidator) AssertValidateStateCalledWith(block, parent *types.Block, stateDB *state.StateDB, receipts types.Receipts, usedGas uint64) { - Expect(mv.passedBlock).To(Equal(block)) - Expect(mv.passedParentBlock).To(Equal(parent)) - Expect(mv.passedStateDB).To(Equal(stateDB)) - Expect(mv.passedReceipts).To(Equal(receipts)) - Expect(mv.passedUsedGas).To(Equal(usedGas)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/blockchain.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/blockchain.go deleted file mode 100644 index 6c27a6dc..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/blockchain.go +++ /dev/null @@ -1,35 +0,0 @@ -package core - -import ( - "github.com/ethereum/go-ethereum/consensus" - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/params" - . "github.com/onsi/gomega" -) - -type MockBlockChain struct { - configCalled bool -} - -func NewMockBlockChain() *MockBlockChain { - return &MockBlockChain{ - configCalled: false, - } -} - -func (*MockBlockChain) BlockChain() *core.BlockChain { - panic("implement me") -} - -func (mbc *MockBlockChain) Config() *params.ChainConfig { - mbc.configCalled = true - return params.TestChainConfig -} - -func (*MockBlockChain) Engine() consensus.Engine { - panic("implement me") -} - -func (mbc *MockBlockChain) AssertConfigCalled() { - Expect(mbc.configCalled).To(BeTrue()) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/rawdb/accessors_chain.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/rawdb/accessors_chain.go deleted file mode 100644 index 1bd81a21..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/rawdb/accessors_chain.go +++ /dev/null @@ -1,139 +0,0 @@ -package rawdb - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/rlp" - . "github.com/onsi/gomega" -) - -type MockAccessorsChain struct { - getBlockPassedHash common.Hash - getBlockPassedNumber uint64 - getBlockReturnBlock *types.Block - getBlockReceiptsPassedHash common.Hash - getBlockReceiptsPassedNumber uint64 - getBodyRLPPassedHash common.Hash - getBodyRLPPassedNumber uint64 - getCanonicalHashPassedNumber uint64 - getCanonicalHashReturnHash common.Hash - getHeaderPassedHash common.Hash - getHeaderPassedNumber uint64 - getHeaderRLPPassedHash common.Hash - getHeaderRLPPassedNumber uint64 - getStateAndStorageTrieNodesPassedRoot common.Hash - getStateAndStorageTrieNodesReturnErr error - getStateAndStorageTrieNodesReturnStateTrieBytes [][]byte - getStateAndStorageTrieNodesReturnStorageTrieBytes [][]byte -} - -func NewMockAccessorsChain() *MockAccessorsChain { - return &MockAccessorsChain{ - getBlockPassedHash: common.Hash{}, - getBlockPassedNumber: 0, - getBlockReturnBlock: nil, - getBodyRLPPassedHash: common.Hash{}, - getBodyRLPPassedNumber: 0, - getCanonicalHashPassedNumber: 0, - getCanonicalHashReturnHash: common.Hash{}, - getHeaderRLPPassedHash: common.Hash{}, - getHeaderRLPPassedNumber: 0, - getStateAndStorageTrieNodesPassedRoot: common.Hash{}, - getStateAndStorageTrieNodesReturnErr: nil, - getStateAndStorageTrieNodesReturnStateTrieBytes: nil, - getStateAndStorageTrieNodesReturnStorageTrieBytes: nil, - } -} - -func (accessor *MockAccessorsChain) SetGetBlockReturnBlock(returnBlock *types.Block) { - accessor.getBlockReturnBlock = returnBlock -} - -func (accessor *MockAccessorsChain) SetGetCanonicalHashReturnHash(hash common.Hash) { - accessor.getCanonicalHashReturnHash = hash -} - -func (accessor *MockAccessorsChain) SetGetStateTrieNodesReturnStateTrieBytes(returnBytes [][]byte) { - accessor.getStateAndStorageTrieNodesReturnStateTrieBytes = returnBytes -} - -func (accessor *MockAccessorsChain) SetGetStateTrieNodesReturnStorageTrieBytes(returnBytes [][]byte) { - accessor.getStateAndStorageTrieNodesReturnStorageTrieBytes = returnBytes -} - -func (accessor *MockAccessorsChain) SetGetStateTrieNodesReturnErr(err error) { - accessor.getStateAndStorageTrieNodesReturnErr = err -} - -func (accessor *MockAccessorsChain) GetBlock(hash common.Hash, number uint64) *types.Block { - accessor.getBlockPassedHash = hash - accessor.getBlockPassedNumber = number - return accessor.getBlockReturnBlock -} - -func (accessor *MockAccessorsChain) GetBlockReceipts(hash common.Hash, number uint64) types.Receipts { - accessor.getBlockReceiptsPassedHash = hash - accessor.getBlockReceiptsPassedNumber = number - return nil -} - -func (accessor *MockAccessorsChain) GetBody(hash common.Hash, number uint64) *types.Body { - accessor.getBodyRLPPassedHash = hash - accessor.getBodyRLPPassedNumber = number - return nil -} - -func (accessor *MockAccessorsChain) GetCanonicalHash(number uint64) common.Hash { - accessor.getCanonicalHashPassedNumber = number - return accessor.getCanonicalHashReturnHash -} - -func (accessor *MockAccessorsChain) GetHeader(hash common.Hash, number uint64) *types.Header { - accessor.getHeaderPassedHash = hash - accessor.getHeaderPassedNumber = number - return nil -} - -func (accessor *MockAccessorsChain) GetHeaderRLP(hash common.Hash, number uint64) rlp.RawValue { - accessor.getHeaderRLPPassedHash = hash - accessor.getHeaderRLPPassedNumber = number - return nil -} - -func (accessor *MockAccessorsChain) GetStateAndStorageTrieNodes(root common.Hash) ([][]byte, [][]byte, error) { - accessor.getStateAndStorageTrieNodesPassedRoot = root - return accessor.getStateAndStorageTrieNodesReturnStateTrieBytes, accessor.getStateAndStorageTrieNodesReturnStorageTrieBytes, accessor.getStateAndStorageTrieNodesReturnErr -} - -func (accessor *MockAccessorsChain) AssertGetBlockCalledWith(hash common.Hash, number uint64) { - Expect(accessor.getBlockPassedHash).To(Equal(hash)) - Expect(accessor.getBlockPassedNumber).To(Equal(number)) -} - -func (accessor *MockAccessorsChain) AssertGetBlockReceiptsCalledWith(hash common.Hash, number uint64) { - Expect(accessor.getBlockReceiptsPassedHash).To(Equal(hash)) - Expect(accessor.getBlockReceiptsPassedNumber).To(Equal(number)) -} - -func (accessor *MockAccessorsChain) AssertGetBodyRLPCalledWith(hash common.Hash, number uint64) { - Expect(accessor.getBodyRLPPassedHash).To(Equal(hash)) - Expect(accessor.getBodyRLPPassedNumber).To(Equal(number)) -} - -func (accessor *MockAccessorsChain) AssertGetCanonicalHashCalledWith(number uint64) { - Expect(accessor.getCanonicalHashPassedNumber).To(Equal(number)) -} - -func (accessor *MockAccessorsChain) AssertGetHeaderCalledWith(hash common.Hash, number uint64) { - Expect(accessor.getHeaderPassedHash).To(Equal(hash)) - Expect(accessor.getHeaderPassedNumber).To(Equal(number)) -} - -func (accessor *MockAccessorsChain) AssertGetHeaderRLPCalledWith(hash common.Hash, number uint64) { - Expect(accessor.getHeaderRLPPassedHash).To(Equal(hash)) - Expect(accessor.getHeaderRLPPassedNumber).To(Equal(number)) -} - -func (accessor *MockAccessorsChain) AssertGetStateTrieNodesCalledWith(root common.Hash) { - Expect(accessor.getStateAndStorageTrieNodesPassedRoot).To(Equal(root)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/database.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/database.go deleted file mode 100644 index 65254da3..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/database.go +++ /dev/null @@ -1,105 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/ethdb" - "github.com/ethereum/go-ethereum/trie" - state_wrapper "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state" - trie_wrapper "github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie" - "github.com/vulcanize/eth-block-extractor/test_helpers" -) - -type MockStateDatabase struct { - returnDB state.Database - trie state_wrapper.GethTrie -} - -func NewMockStateDatabase() *MockStateDatabase { - return &MockStateDatabase{ - returnDB: nil, - trie: nil, - } -} - -func (msdb *MockStateDatabase) CreateFakeUnderlyingDatabase() state.Database { - return &mockStateDatabase{} -} - -func (msdb *MockStateDatabase) SetReturnDatabase(db state.Database) { - msdb.returnDB = db -} - -func (msdb *MockStateDatabase) SetReturnTrie(trie state_wrapper.GethTrie) { - msdb.trie = trie -} - -func (msdb *MockStateDatabase) Database() state.Database { - return msdb.returnDB -} - -func (msdb *MockStateDatabase) OpenTrie(root common.Hash) (state_wrapper.GethTrie, error) { - return msdb.trie, nil -} - -func (msdb *MockStateDatabase) TrieDB() trie_wrapper.GethTrieDatabase { - return msdb.returnDB.TrieDB() -} - -// implements state.GethStateDatabase interface for testing -type mockStateDatabase struct { -} - -func (*mockStateDatabase) ContractCode(addrHash, codeHash common.Hash) ([]byte, error) { - panic("implement me") -} - -func (*mockStateDatabase) ContractCodeSize(addrHash, codeHash common.Hash) (int, error) { - panic("implement me") -} - -func (*mockStateDatabase) CopyTrie(state.Trie) state.Trie { - panic("implement me") -} - -func (*mockStateDatabase) OpenStorageTrie(addrHash, root common.Hash) (state.Trie, error) { - panic("implement me") -} - -func (*mockStateDatabase) OpenTrie(root common.Hash) (state.Trie, error) { - return &trie.SecureTrie{}, nil -} - -func (*mockStateDatabase) TrieDB() *trie.Database { - trieDB := trie.NewDatabase(&mockEthDB{}) - trieDB.Insert(test_helpers.FakeHash, test_helpers.FakeTrieNode) - return trieDB -} - -// implements eth.GethStateDatabase interface for testing -type mockEthDB struct { -} - -func (mockEthDB) Put(key []byte, value []byte) error { - panic("implement me") -} - -func (mockEthDB) Get(key []byte) ([]byte, error) { - return []byte{1, 2, 3, 4, 5}, nil -} - -func (mockEthDB) Has(key []byte) (bool, error) { - panic("implement me") -} - -func (mockEthDB) Delete(key []byte) error { - panic("implement me") -} - -func (mockEthDB) Close() { - panic("implement me") -} - -func (mockEthDB) NewBatch() ethdb.Batch { - panic("implement me") -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb.go deleted file mode 100644 index e343ad8c..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb.go +++ /dev/null @@ -1,43 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - . "github.com/onsi/gomega" - "github.com/vulcanize/eth-block-extractor/test_helpers" -) - -type MockStateDB struct { - commitCalled bool - returnErr error - stateDb *state.StateDB -} - -func NewMockStateDB() *MockStateDB { - return &MockStateDB{ - commitCalled: false, - returnErr: nil, - stateDb: nil, - } -} - -func (mst *MockStateDB) SetReturnErr(err error) { - mst.returnErr = err -} - -func (mst *MockStateDB) SetStateDB(db *state.StateDB) { - mst.stateDb = db -} - -func (mst *MockStateDB) Commit(deleteEmptyObjects bool) (common.Hash, error) { - mst.commitCalled = true - return test_helpers.FakeHash, mst.returnErr -} - -func (mst *MockStateDB) StateDB() *state.StateDB { - return mst.stateDb -} - -func (mst *MockStateDB) AssertCommitCalled() { - Expect(mst.commitCalled).To(BeTrue()) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb_factory.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb_factory.go deleted file mode 100644 index 8c1935af..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/statedb_factory.go +++ /dev/null @@ -1,43 +0,0 @@ -package state - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" - . "github.com/onsi/gomega" - state_wrapper "github.com/vulcanize/eth-block-extractor/pkg/wrappers/core/state" -) - -type MockStateDBFactory struct { - passedDatabase state.Database - passedRoot common.Hash - returnErr error - returnStateDB state_wrapper.GethStateDB -} - -func NewMockStateDBFactory() *MockStateDBFactory { - return &MockStateDBFactory{ - passedDatabase: nil, - passedRoot: common.Hash{}, - returnErr: nil, - returnStateDB: nil, - } -} - -func (mstf *MockStateDBFactory) SetStateDB(stateTrie state_wrapper.GethStateDB) { - mstf.returnStateDB = stateTrie -} - -func (mstf *MockStateDBFactory) SetReturnErr(err error) { - mstf.returnErr = err -} - -func (mstf *MockStateDBFactory) NewStateDB(root common.Hash, db state.Database) (state_wrapper.GethStateDB, error) { - mstf.passedRoot = root - mstf.passedDatabase = db - return mstf.returnStateDB, mstf.returnErr -} - -func (mstf *MockStateDBFactory) AssertNewStateTrieCalledWith(root common.Hash, db state.Database) { - Expect(mstf.passedRoot).To(Equal(root)) - Expect(mstf.passedDatabase).To(Equal(db)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/trie.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/trie.go deleted file mode 100644 index 79d0e95f..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state/trie.go +++ /dev/null @@ -1,21 +0,0 @@ -package state - -import ( - "github.com/vulcanize/eth-block-extractor/pkg/wrappers/trie" -) - -type MockTrie struct { - iterator trie.GethTrieNodeIterator -} - -func NewMockTrie() *MockTrie { - return &MockTrie{} -} - -func (mt *MockTrie) SetReturnIterator(iterator trie.GethTrieNodeIterator) { - mt.iterator = iterator -} - -func (mt *MockTrie) NodeIterator(startKey []byte) trie.GethTrieNodeIterator { - return mt.iterator -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state_processor.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state_processor.go deleted file mode 100644 index db7cb84a..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/core/state_processor.go +++ /dev/null @@ -1,48 +0,0 @@ -package core - -import ( - "github.com/ethereum/go-ethereum/core/state" - "github.com/ethereum/go-ethereum/core/types" - . "github.com/onsi/gomega" -) - -type MockProcessor struct { - passedBlock *types.Block - passedStateDB *state.StateDB - returnErr error - returnReceipts types.Receipts - returnUsedGas uint64 -} - -func NewMockProcessor() *MockProcessor { - return &MockProcessor{ - passedBlock: nil, - passedStateDB: nil, - returnErr: nil, - returnReceipts: nil, - returnUsedGas: 0, - } -} - -func (mp *MockProcessor) SetReturnErr(err error) { - mp.returnErr = err -} - -func (mp *MockProcessor) SetReturnReceipts(receipts types.Receipts) { - mp.returnReceipts = receipts -} - -func (mp *MockProcessor) SetReturnUsedGas(returnUsedGas uint64) { - mp.returnUsedGas = returnUsedGas -} - -func (mp *MockProcessor) Process(block *types.Block, stateDB *state.StateDB) (types.Receipts, []*types.Log, uint64, error) { - mp.passedBlock = block - mp.passedStateDB = stateDB - return mp.returnReceipts, nil, mp.returnUsedGas, mp.returnErr -} - -func (mp *MockProcessor) AssertProcessCalledWith(block *types.Block, stateDB *state.StateDB) { - Expect(mp.passedBlock).To(Equal(block)) - Expect(mp.passedStateDB).To(Equal(stateDB)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp/decode.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp/decode.go deleted file mode 100644 index 8bd812eb..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/rlp/decode.go +++ /dev/null @@ -1,47 +0,0 @@ -package rlp - -import ( - . "github.com/onsi/gomega" - "reflect" -) - -type MockDecoder struct { - called bool - err error - passedBytes []byte - passedOut interface{} - returnOut interface{} -} - -func NewMockDecoder() *MockDecoder { - return &MockDecoder{ - called: false, - err: nil, - passedBytes: nil, - passedOut: nil, - returnOut: nil, - } -} - -func (md *MockDecoder) SetError(err error) { - md.err = err -} - -func (md *MockDecoder) SetReturnOut(out interface{}) { - md.returnOut = out -} - -func (md *MockDecoder) Decode(raw []byte, out interface{}) error { - md.called = true - md.passedBytes = raw - md.passedOut = out - valToAssign := reflect.ValueOf(md.returnOut).Elem() - reflect.ValueOf(out).Elem().Set(valToAssign) - return md.err -} - -func (md *MockDecoder) AssertDecodeCalledWith(raw []byte, out interface{}) { - Expect(md.called).To(BeTrue()) - Expect(md.passedBytes).To(Equal(raw)) - Expect(md.passedOut).To(BeAssignableToTypeOf(out)) -} diff --git a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie/iterator.go b/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie/iterator.go deleted file mode 100644 index 23ad2fb3..00000000 --- a/vendor/github.com/vulcanize/eth-block-extractor/test_helpers/mocks/wrappers/trie/iterator.go +++ /dev/null @@ -1,51 +0,0 @@ -package trie - -import ( - "github.com/ethereum/go-ethereum/common" - "github.com/vulcanize/eth-block-extractor/test_helpers" -) - -type MockIterator struct { - includeLeaf bool - returnHash common.Hash - timesToIterate int -} - -func NewMockIterator(timesToIterate int) *MockIterator { - return &MockIterator{ - includeLeaf: false, - returnHash: common.Hash{}, - timesToIterate: timesToIterate, - } -} - -func (mi *MockIterator) SetReturnHash(hash common.Hash) { - mi.returnHash = hash -} - -func (mi *MockIterator) SetIncludeLeaf() { - mi.includeLeaf = true -} - -func (mi *MockIterator) Leaf() bool { - if mi.includeLeaf { - mi.includeLeaf = false - return true - } - return false -} - -func (mi *MockIterator) LeafBlob() []byte { - return test_helpers.FakeTrieNode -} - -func (mi *MockIterator) Next(bool) bool { - if mi.timesToIterate > 0 { - mi.timesToIterate-- - return true - } - return false -} -func (mi *MockIterator) Hash() common.Hash { - return mi.returnHash -} diff --git a/vendor/github.com/whyrusleeping/base32/base32.go b/vendor/github.com/whyrusleeping/base32/base32.go new file mode 100644 index 00000000..768a2350 --- /dev/null +++ b/vendor/github.com/whyrusleeping/base32/base32.go @@ -0,0 +1,505 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package base32 implements base32 encoding as specified by RFC 4648. +package base32 + +import ( + "io" + "strconv" +) + +/* + * Encodings + */ + +// An Encoding is a radix 32 encoding/decoding scheme, defined by a +// 32-character alphabet. The most common is the "base32" encoding +// introduced for SASL GSSAPI and standardized in RFC 4648. +// The alternate "base32hex" encoding is used in DNSSEC. +type Encoding struct { + encode string + decodeMap [256]byte + padChar rune +} + +// Alphabet returns the Base32 alphabet used +func (enc *Encoding) Alphabet() string { + return enc.encode +} + +const ( + StdPadding rune = '=' + NoPadding rune = -1 +) + +const encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" +const encodeHex = "0123456789ABCDEFGHIJKLMNOPQRSTUV" + +// NewEncoding returns a new Encoding defined by the given alphabet, +// which must be a 32-byte string. +func NewEncoding(encoder string) *Encoding { + e := new(Encoding) + e.padChar = StdPadding + e.encode = encoder + for i := 0; i < len(e.decodeMap); i++ { + e.decodeMap[i] = 0xFF + } + for i := 0; i < len(encoder); i++ { + e.decodeMap[encoder[i]] = byte(i) + } + return e +} + +// NewEncoding returns a new case insensitive Encoding defined by the +// given alphabet, which must be a 32-byte string. +func NewEncodingCI(encoder string) *Encoding { + e := new(Encoding) + e.padChar = StdPadding + e.encode = encoder + for i := 0; i < len(e.decodeMap); i++ { + e.decodeMap[i] = 0xFF + } + for i := 0; i < len(encoder); i++ { + e.decodeMap[asciiToLower(encoder[i])] = byte(i) + e.decodeMap[asciiToUpper(encoder[i])] = byte(i) + } + return e +} + +func asciiToLower(c byte) byte { + if c >= 'A' && c <= 'Z' { + return c + 32 + } + return c +} + +func asciiToUpper(c byte) byte { + if c >= 'a' && c <= 'z' { + return c - 32 + } + return c +} + +// WithPadding creates a new encoding identical to enc except +// with a specified padding character, or NoPadding to disable padding. +func (enc Encoding) WithPadding(padding rune) *Encoding { + enc.padChar = padding + return &enc +} + +// StdEncoding is the standard base32 encoding, as defined in +// RFC 4648. +var StdEncoding = NewEncodingCI(encodeStd) + +// HexEncoding is the ``Extended Hex Alphabet'' defined in RFC 4648. +// It is typically used in DNS. +var HexEncoding = NewEncodingCI(encodeHex) + +var RawStdEncoding = NewEncodingCI(encodeStd).WithPadding(NoPadding) +var RawHexEncoding = NewEncodingCI(encodeHex).WithPadding(NoPadding) + +/* + * Encoder + */ + +// Encode encodes src using the encoding enc, writing +// EncodedLen(len(src)) bytes to dst. +// +// The encoding pads the output to a multiple of 8 bytes, +// so Encode is not appropriate for use on individual blocks +// of a large data stream. Use NewEncoder() instead. +func (enc *Encoding) Encode(dst, src []byte) { + if len(src) == 0 { + return + } + + for len(src) > 0 { + var carry byte + + // Unpack 8x 5-bit source blocks into a 5 byte + // destination quantum + switch len(src) { + default: + dst[7] = enc.encode[src[4]&0x1F] + carry = src[4] >> 5 + fallthrough + case 4: + dst[6] = enc.encode[carry|(src[3]<<3)&0x1F] + dst[5] = enc.encode[(src[3]>>2)&0x1F] + carry = src[3] >> 7 + fallthrough + case 3: + dst[4] = enc.encode[carry|(src[2]<<1)&0x1F] + carry = (src[2] >> 4) & 0x1F + fallthrough + case 2: + dst[3] = enc.encode[carry|(src[1]<<4)&0x1F] + dst[2] = enc.encode[(src[1]>>1)&0x1F] + carry = (src[1] >> 6) & 0x1F + fallthrough + case 1: + dst[1] = enc.encode[carry|(src[0]<<2)&0x1F] + dst[0] = enc.encode[src[0]>>3] + } + + // Pad the final quantum + if len(src) < 5 { + if enc.padChar != NoPadding { + dst[7] = byte(enc.padChar) + if len(src) < 4 { + dst[6] = byte(enc.padChar) + dst[5] = byte(enc.padChar) + if len(src) < 3 { + dst[4] = byte(enc.padChar) + if len(src) < 2 { + dst[3] = byte(enc.padChar) + dst[2] = byte(enc.padChar) + } + } + } + } + break + } + src = src[5:] + dst = dst[8:] + } +} + +// EncodeToString returns the base32 encoding of src. +func (enc *Encoding) EncodeToString(src []byte) string { + buf := make([]byte, enc.EncodedLen(len(src))) + enc.Encode(buf, src) + return string(buf) +} + +type encoder struct { + err error + enc *Encoding + w io.Writer + buf [5]byte // buffered data waiting to be encoded + nbuf int // number of bytes in buf + out [1024]byte // output buffer +} + +func (e *encoder) Write(p []byte) (n int, err error) { + if e.err != nil { + return 0, e.err + } + + // Leading fringe. + if e.nbuf > 0 { + var i int + for i = 0; i < len(p) && e.nbuf < 5; i++ { + e.buf[e.nbuf] = p[i] + e.nbuf++ + } + n += i + p = p[i:] + if e.nbuf < 5 { + return + } + e.enc.Encode(e.out[0:], e.buf[0:]) + if _, e.err = e.w.Write(e.out[0:8]); e.err != nil { + return n, e.err + } + e.nbuf = 0 + } + + // Large interior chunks. + for len(p) >= 5 { + nn := len(e.out) / 8 * 5 + if nn > len(p) { + nn = len(p) + nn -= nn % 5 + } + e.enc.Encode(e.out[0:], p[0:nn]) + if _, e.err = e.w.Write(e.out[0 : nn/5*8]); e.err != nil { + return n, e.err + } + n += nn + p = p[nn:] + } + + // Trailing fringe. + for i := 0; i < len(p); i++ { + e.buf[i] = p[i] + } + e.nbuf = len(p) + n += len(p) + return +} + +// Close flushes any pending output from the encoder. +// It is an error to call Write after calling Close. +func (e *encoder) Close() error { + // If there's anything left in the buffer, flush it out + if e.err == nil && e.nbuf > 0 { + e.enc.Encode(e.out[0:], e.buf[0:e.nbuf]) + e.nbuf = 0 + _, e.err = e.w.Write(e.out[0:8]) + } + return e.err +} + +// NewEncoder returns a new base32 stream encoder. Data written to +// the returned writer will be encoded using enc and then written to w. +// Base32 encodings operate in 5-byte blocks; when finished +// writing, the caller must Close the returned encoder to flush any +// partially written blocks. +func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser { + return &encoder{enc: enc, w: w} +} + +// EncodedLen returns the length in bytes of the base32 encoding +// of an input buffer of length n. +func (enc *Encoding) EncodedLen(n int) int { + if enc.padChar == NoPadding { + return (n*8 + 4) / 5 // minimum # chars at 5 bits per char + } + return (n + 4) / 5 * 8 +} + +/* + * Decoder + */ + +type CorruptInputError int64 + +func (e CorruptInputError) Error() string { + return "illegal base32 data at input byte " + strconv.FormatInt(int64(e), 10) +} + +// decode is like Decode but returns an additional 'end' value, which +// indicates if end-of-message padding was encountered and thus any +// additional data is an error. This method assumes that src has been +// stripped of all supported whitespace ('\r' and '\n'). +func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) { + olen := len(src) + for len(src) > 0 && !end { + // Decode quantum using the base32 alphabet + var dbuf [8]byte + dlen := 8 + + for j := 0; j < 8; { + if len(src) == 0 { + if enc.padChar != NoPadding { + return n, false, CorruptInputError(olen - len(src) - j) + } + dlen = j + break + } + in := src[0] + src = src[1:] + if in == byte(enc.padChar) && j >= 2 && len(src) < 8 { + if enc.padChar == NoPadding { + return n, false, CorruptInputError(olen) + } + + // We've reached the end and there's padding + if len(src)+j < 8-1 { + // not enough padding + return n, false, CorruptInputError(olen) + } + for k := 0; k < 8-1-j; k++ { + if len(src) > k && src[k] != byte(enc.padChar) { + // incorrect padding + return n, false, CorruptInputError(olen - len(src) + k - 1) + } + } + dlen, end = j, true + // 7, 5 and 2 are not valid padding lengths, and so 1, 3 and 6 are not + // valid dlen values. See RFC 4648 Section 6 "Base 32 Encoding" listing + // the five valid padding lengths, and Section 9 "Illustrations and + // Examples" for an illustration for how the 1st, 3rd and 6th base32 + // src bytes do not yield enough information to decode a dst byte. + if dlen == 1 || dlen == 3 || dlen == 6 { + return n, false, CorruptInputError(olen - len(src) - 1) + } + break + } + dbuf[j] = enc.decodeMap[in] + if dbuf[j] == 0xFF { + return n, false, CorruptInputError(olen - len(src) - 1) + } + j++ + } + + // Pack 8x 5-bit source blocks into 5 byte destination + // quantum + switch dlen { + case 8: + dst[4] = dbuf[6]<<5 | dbuf[7] + fallthrough + case 7: + dst[3] = dbuf[4]<<7 | dbuf[5]<<2 | dbuf[6]>>3 + fallthrough + case 5: + dst[2] = dbuf[3]<<4 | dbuf[4]>>1 + fallthrough + case 4: + dst[1] = dbuf[1]<<6 | dbuf[2]<<1 | dbuf[3]>>4 + fallthrough + case 2: + dst[0] = dbuf[0]<<3 | dbuf[1]>>2 + } + + if len(dst) > 5 { + dst = dst[5:] + } + + switch dlen { + case 2: + n += 1 + case 4: + n += 2 + case 5: + n += 3 + case 7: + n += 4 + case 8: + n += 5 + } + } + return n, end, nil +} + +// Decode decodes src using the encoding enc. It writes at most +// DecodedLen(len(src)) bytes to dst and returns the number of bytes +// written. If src contains invalid base32 data, it will return the +// number of bytes successfully written and CorruptInputError. +// New line characters (\r and \n) are ignored. +func (enc *Encoding) Decode(dst, s []byte) (n int, err error) { + // FIXME: if dst is the same as s use decodeInPlace + stripped := make([]byte, 0, len(s)) + for _, c := range s { + if c != '\r' && c != '\n' { + stripped = append(stripped, c) + } + } + n, _, err = enc.decode(dst, stripped) + return +} + +func (enc *Encoding) decodeInPlace(strb []byte) (n int, err error) { + off := 0 + for _, b := range strb { + if b == '\n' || b == '\r' { + continue + } + strb[off] = b + off++ + } + n, _, err = enc.decode(strb, strb[:off]) + return +} + +// DecodeString returns the bytes represented by the base32 string s. +func (enc *Encoding) DecodeString(s string) ([]byte, error) { + strb := []byte(s) + n, err := enc.decodeInPlace(strb) + if err != nil { + return nil, err + } + return strb[:n], nil +} + +type decoder struct { + err error + enc *Encoding + r io.Reader + end bool // saw end of message + buf [1024]byte // leftover input + nbuf int + out []byte // leftover decoded output + outbuf [1024 / 8 * 5]byte +} + +func (d *decoder) Read(p []byte) (n int, err error) { + if d.err != nil { + return 0, d.err + } + + // Use leftover decoded output from last read. + if len(d.out) > 0 { + n = copy(p, d.out) + d.out = d.out[n:] + return n, nil + } + + // Read a chunk. + nn := len(p) / 5 * 8 + if nn < 8 { + nn = 8 + } + if nn > len(d.buf) { + nn = len(d.buf) + } + nn, d.err = io.ReadAtLeast(d.r, d.buf[d.nbuf:nn], 8-d.nbuf) + d.nbuf += nn + if d.nbuf < 8 { + return 0, d.err + } + + // Decode chunk into p, or d.out and then p if p is too small. + nr := d.nbuf / 8 * 8 + nw := d.nbuf / 8 * 5 + if nw > len(p) { + nw, d.end, d.err = d.enc.decode(d.outbuf[0:], d.buf[0:nr]) + d.out = d.outbuf[0:nw] + n = copy(p, d.out) + d.out = d.out[n:] + } else { + n, d.end, d.err = d.enc.decode(p, d.buf[0:nr]) + } + d.nbuf -= nr + for i := 0; i < d.nbuf; i++ { + d.buf[i] = d.buf[i+nr] + } + + if d.err == nil { + d.err = err + } + return n, d.err +} + +type newlineFilteringReader struct { + wrapped io.Reader +} + +func (r *newlineFilteringReader) Read(p []byte) (int, error) { + n, err := r.wrapped.Read(p) + for n > 0 { + offset := 0 + for i, b := range p[0:n] { + if b != '\r' && b != '\n' { + if i != offset { + p[offset] = b + } + offset++ + } + } + if offset > 0 { + return offset, err + } + // Previous buffer entirely whitespace, read again + n, err = r.wrapped.Read(p) + } + return n, err +} + +// NewDecoder constructs a new base32 stream decoder. +func NewDecoder(enc *Encoding, r io.Reader) io.Reader { + return &decoder{enc: enc, r: &newlineFilteringReader{r}} +} + +// DecodedLen returns the maximum length in bytes of the decoded data +// corresponding to n bytes of base32-encoded data. +func (enc *Encoding) DecodedLen(n int) int { + if enc.padChar == NoPadding { + return (n*5 + 7) / 8 + } + + return n / 8 * 5 +} diff --git a/vendor/github.com/whyrusleeping/base32/package.json b/vendor/github.com/whyrusleeping/base32/package.json new file mode 100644 index 00000000..f78c51b6 --- /dev/null +++ b/vendor/github.com/whyrusleeping/base32/package.json @@ -0,0 +1,15 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/base32" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/base32" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "", + "name": "base32", + "version": "0.0.2" +} + diff --git a/vendor/github.com/whyrusleeping/cbor/LICENSE b/vendor/github.com/whyrusleeping/cbor/LICENSE new file mode 100644 index 00000000..6286cbbb --- /dev/null +++ b/vendor/github.com/whyrusleeping/cbor/LICENSE @@ -0,0 +1,13 @@ +Copyright 2014-2015 Brian Olson + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/vendor/github.com/whyrusleeping/cbor/go/Makefile b/vendor/github.com/whyrusleeping/cbor/go/Makefile new file mode 100644 index 00000000..5330af63 --- /dev/null +++ b/vendor/github.com/whyrusleeping/cbor/go/Makefile @@ -0,0 +1,12 @@ +#PATH:=${HOME}/psrc/golang/go/bin:${PATH} +#PATH += ${HOME}/psrc/golang/go/bin +GOROOT=${HOME}/psrc/golang/go +GOPATH=${HOME}/psrc/gopath + +GO=${GOROOT}/bin/go + +all: + ${GO} build + +test: + ${GO} test diff --git a/vendor/github.com/whyrusleeping/cbor/go/cbor.go b/vendor/github.com/whyrusleeping/cbor/go/cbor.go new file mode 100644 index 00000000..f9a92bc6 --- /dev/null +++ b/vendor/github.com/whyrusleeping/cbor/go/cbor.go @@ -0,0 +1,1625 @@ +// Should be roughly like encoding/gob +// encoding/json has an inferior interface that only works on whole messages to/from whole blobs at once. Reader/Writer based interfaces are better. + +package cbor + +import ( + "bytes" + "errors" + "fmt" + "io" + "log" + "math" + "math/big" + "reflect" + "sort" + "strings" +) + +var typeMask byte = 0xE0 +var infoBits byte = 0x1F + +const ( + MajorTypeUint byte = 0 + MajorTypeNegInt byte = iota + MajorTypeBytes + MajorTypeText + MajorTypeArray + MajorTypeMap + MajorTypeTag + MajorTypeSimple + MajorTypeFloat byte = MajorTypeSimple +) + +const ( + SimpleValueFalse byte = 20 + SimpleValueTrue byte = iota + SimpleValueNull + SimpleValueUndefined +) + +const ( + OpcodeBreak byte = 0x1F +) + +/* type values */ +var cborUint byte = 0x00 +var cborNegint byte = 0x20 +var cborBytes byte = 0x40 +var cborText byte = 0x60 +var cborArray byte = 0x80 +var cborMap byte = 0xA0 +var cborTag byte = 0xC0 +var cbor7 byte = 0xE0 + +/* cbor7 values */ +const ( + cborFalse byte = 20 + cborTrue byte = 21 + cborNull byte = 22 +) + +/* info bits */ +var int8Follows byte = 24 +var int16Follows byte = 25 +var int32Follows byte = 26 +var int64Follows byte = 27 +var varFollows byte = 31 + +/* tag values */ +var tagBignum uint64 = 2 +var tagNegBignum uint64 = 3 +var tagDecimal uint64 = 4 +var tagBigfloat uint64 = 5 + +/* batch sizes */ +var byteBatch = 1 << 20 +var arrayBatch = 1 << 14 //16k + +// TODO: honor encoding.BinaryMarshaler interface and encapsulate blob returned from that. + +// Load one object into v +func Loads(blob []byte, v interface{}) error { + dec := NewDecoder(bytes.NewReader(blob)) + return dec.Decode(v) +} + +type TagDecoder interface { + // Handle things which match this. + // + // Setup like this: + // var dec Decoder + // var myTagDec TagDecoder + // dec.TagDecoders[myTagDec.GetTag()] = myTagDec + GetTag() uint64 + + // Sub-object will be decoded onto the returned object. + DecodeTarget() interface{} + + // Run after decode onto DecodeTarget has happened. + // The return value from this is returned in place of the + // raw decoded object. + PostDecode(interface{}) (interface{}, error) +} + +type Decoder struct { + reader io.Reader + + // tag byte + tag []byte + + // many values fit within the next 8 bytes + b8 []byte + + // Extra processing for CBOR TAG objects. + TagDecoders map[uint64]TagDecoder +} + +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{ + reader: r, + tag: make([]byte, 1), + b8: make([]byte, 8), + TagDecoders: make(map[uint64]TagDecoder), + } +} +func (dec *Decoder) Decode(v interface{}) error { + rv := reflect.ValueOf(v) + + return dec.DecodeAny(newReflectValue(rv)) +} + +type DecodeValue interface { + // Before decoding, check if there is no error + Prepare() error + + // Got binary string + SetBytes(buf []byte) error + + // Got a number (different formats) + SetBignum(x *big.Int) error + SetUint(u uint64) error + SetInt(i int64) error + SetFloat32(f float32) error + SetFloat64(d float64) error + + // Got null + SetNil() error + + // Got boolean + SetBool(b bool) error + + // Got text string + SetString(s string) error + + // Got a Map (beginning) + CreateMap() (DecodeValueMap, error) + + // Got an array (beginning) + CreateArray(makeLength int) (DecodeValueArray, error) + + // Got a tag + CreateTag(aux uint64, decoder TagDecoder) (DecodeValue, interface{}, error) + + // Got the tag value (maybe transformed by TagDecoder.PostDecode) + SetTag(aux uint64, v DecodeValue, decoder TagDecoder, i interface{}) error +} + +type DecodeValueMap interface { + // Got a map key + CreateMapKey() (DecodeValue, error) + + // Got a map value + CreateMapValue(key DecodeValue) (DecodeValue, error) + + // Got a key / value pair + SetMap(key, val DecodeValue) error + + // The map is at the end + EndMap() error +} + +type DecodeValueArray interface { + // Got an array item + GetArrayValue(index uint64) (DecodeValue, error) + + // After the array item is decoded + AppendArray(value DecodeValue) error + + // The array is at the end + EndArray() error +} + +type reflectValue struct { + v reflect.Value +} + +type MemoryValue struct { + reflectValue + Value interface{} +} + +func NewMemoryValue(value interface{}) *MemoryValue { + res := &MemoryValue{ + reflectValue{reflect.ValueOf(nil)}, + value, + } + res.v = reflect.ValueOf(&res.Value) + return res +} + +func (mv *MemoryValue) ReflectValue() reflect.Value { + return mv.v +} + +func newReflectValue(rv reflect.Value) *reflectValue { + return &reflectValue{rv} +} + +func (r *reflectValue) Prepare() error { + rv := r.v + if (!rv.CanSet()) && (rv.Kind() != reflect.Ptr || rv.IsNil()) { + return &InvalidUnmarshalError{rv.Type()} + } + return nil +} + +func (dec *Decoder) DecodeAny(v DecodeValue) error { + var err error + + _, err = io.ReadFull(dec.reader, dec.tag) + if err != nil { + return err + } + + if err := v.Prepare(); err != nil { + return err + } + + return dec.innerDecodeC(v, dec.tag[0]) +} + +func (dec *Decoder) handleInfoBits(cborInfo byte) (uint64, error) { + var aux uint64 + + if cborInfo <= 23 { + aux = uint64(cborInfo) + return aux, nil + } else if cborInfo == int8Follows { + didread, err := io.ReadFull(dec.reader, dec.b8[:1]) + if didread == 1 { + aux = uint64(dec.b8[0]) + } + return aux, err + } else if cborInfo == int16Follows { + didread, err := io.ReadFull(dec.reader, dec.b8[:2]) + if didread == 2 { + aux = (uint64(dec.b8[0]) << 8) | uint64(dec.b8[1]) + } + return aux, err + } else if cborInfo == int32Follows { + didread, err := io.ReadFull(dec.reader, dec.b8[:4]) + if didread == 4 { + aux = (uint64(dec.b8[0]) << 24) | + (uint64(dec.b8[1]) << 16) | + (uint64(dec.b8[2]) << 8) | + uint64(dec.b8[3]) + } + return aux, err + } else if cborInfo == int64Follows { + didread, err := io.ReadFull(dec.reader, dec.b8) + if didread == 8 { + var shift uint = 56 + i := 0 + aux = uint64(dec.b8[i]) << shift + for i < 7 { + i += 1 + shift -= 8 + aux |= uint64(dec.b8[i]) << shift + } + } + return aux, err + } + return 0, nil +} + +func (dec *Decoder) innerDecodeC(rv DecodeValue, c byte) error { + cborType := c & typeMask + cborInfo := c & infoBits + + aux, err := dec.handleInfoBits(cborInfo) + if err != nil { + log.Printf("error in handleInfoBits: %v", err) + return err + } + //log.Printf("cborType %x cborInfo %d aux %x", cborType, cborInfo, aux) + + if cborType == cborUint { + return rv.SetUint(aux) + } else if cborType == cborNegint { + if aux > 0x7fffffffffffffff { + //return errors.New(fmt.Sprintf("cannot represent -%d", aux)) + bigU := &big.Int{} + bigU.SetUint64(aux) + minusOne := big.NewInt(-1) + bn := &big.Int{} + bn.Sub(minusOne, bigU) + //log.Printf("built big negint: %v", bn) + return rv.SetBignum(bn) + } + return rv.SetInt(-1 - int64(aux)) + } else if cborType == cborBytes { + //log.Printf("cborType %x bytes cborInfo %d aux %x", cborType, cborInfo, aux) + if cborInfo == varFollows { + parts := make([][]byte, 0, 1) + allsize := 0 + subc := []byte{0} + for true { + _, err = io.ReadFull(dec.reader, subc) + if err != nil { + log.Printf("error reading next byte for bar bytes") + return err + } + if subc[0] == 0xff { + // done + var out []byte = nil + if len(parts) == 0 { + out = make([]byte, 0) + } else { + pos := 0 + out = make([]byte, allsize) + for _, p := range parts { + pos += copy(out[pos:], p) + } + } + return rv.SetBytes(out) + } else { + var subb []byte = nil + if (subc[0] & typeMask) != cborBytes { + return fmt.Errorf("sub of var bytes is type %x, wanted %x", subc[0], cborBytes) + } + err = dec.innerDecodeC(newReflectValue(reflect.ValueOf(&subb)), subc[0]) + if err != nil { + log.Printf("error decoding sub bytes") + return err + } + allsize += len(subb) + parts = append(parts, subb) + } + } + } else { + val, err := dec.readBytes(aux) + if err != nil { + return err + } + return rv.SetBytes(val) + } + } else if cborType == cborText { + return dec.decodeText(rv, cborInfo, aux) + } else if cborType == cborArray { + return dec.decodeArray(rv, cborInfo, aux) + } else if cborType == cborMap { + return dec.decodeMap(rv, cborInfo, aux) + } else if cborType == cborTag { + /*var innerOb interface{}*/ + ic := []byte{0} + _, err = io.ReadFull(dec.reader, ic) + if err != nil { + return err + } + if aux == tagBignum { + bn, err := dec.decodeBignum(ic[0]) + if err != nil { + return err + } + return rv.SetBignum(bn) + } else if aux == tagNegBignum { + bn, err := dec.decodeBignum(ic[0]) + if err != nil { + return err + } + minusOne := big.NewInt(-1) + bnOut := &big.Int{} + bnOut.Sub(minusOne, bn) + return rv.SetBignum(bnOut) + } else if aux == tagDecimal { + log.Printf("TODO: directly read bytes into decimal") + } else if aux == tagBigfloat { + log.Printf("TODO: directly read bytes into bigfloat") + } else { + decoder := dec.TagDecoders[aux] + var target interface{} + var trv DecodeValue + var err error + + trv, target, err = rv.CreateTag(aux, decoder) + if err != nil { + return err + } + + err = dec.innerDecodeC(trv, ic[0]) + if err != nil { + return err + } + + return rv.SetTag(aux, trv, decoder, target) + } + return nil + } else if cborType == cbor7 { + if cborInfo == int16Follows { + exp := (aux >> 10) & 0x01f + mant := aux & 0x03ff + var val float64 + if exp == 0 { + val = math.Ldexp(float64(mant), -24) + } else if exp != 31 { + val = math.Ldexp(float64(mant+1024), int(exp-25)) + } else if mant == 0 { + val = math.Inf(1) + } else { + val = math.NaN() + } + if (aux & 0x08000) != 0 { + val = -val + } + return rv.SetFloat64(val) + } else if cborInfo == int32Follows { + f := math.Float32frombits(uint32(aux)) + return rv.SetFloat32(f) + } else if cborInfo == int64Follows { + d := math.Float64frombits(aux) + return rv.SetFloat64(d) + } else if cborInfo == cborFalse { + return rv.SetBool(false) + } else if cborInfo == cborTrue { + return rv.SetBool(true) + } else if cborInfo == cborNull { + return rv.SetNil() + } + } + + return err +} + +func (dec *Decoder) decodeText(rv DecodeValue, cborInfo byte, aux uint64) error { + var err error + if cborInfo == varFollows { + parts := make([]string, 0, 1) + subc := []byte{0} + for true { + _, err = io.ReadFull(dec.reader, subc) + if err != nil { + log.Printf("error reading next byte for var text") + return err + } + if subc[0] == 0xff { + // done + joined := strings.Join(parts, "") + return rv.SetString(joined) + } else { + var subtext interface{} + err = dec.innerDecodeC(newReflectValue(reflect.ValueOf(&subtext)), subc[0]) + if err != nil { + log.Printf("error decoding subtext") + return err + } + st, ok := subtext.(string) + if ok { + parts = append(parts, st) + } else { + return fmt.Errorf("var text sub element not text but %T", subtext) + } + } + } + } else { + raw, err := dec.readBytes(aux) + if err != nil { + return err + } + xs := string(raw) + return rv.SetString(xs) + } + return errors.New("internal error in decodeText, shouldn't get here") +} + +func (dec *Decoder) readBytes(n uint64) ([]byte, error) { + buf := new(bytes.Buffer) + r, err := buf.ReadFrom(&io.LimitedReader{R: dec.reader, N: int64(n)}) + if err != nil { + return nil, err + } + + if r != int64(n) { + return nil, io.ErrUnexpectedEOF + } + return buf.Bytes(), nil +} + +type mapAssignable interface { + ReflectValueForKey(key interface{}) (*reflect.Value, bool) + SetReflectValueForKey(key interface{}, value reflect.Value) error +} + +type mapReflectValue struct { + reflect.Value +} + +func (irv *mapReflectValue) ReflectValueForKey(key interface{}) (*reflect.Value, bool) { + //var x interface{} + //rv := reflect.ValueOf(&x) + rv := reflect.New(irv.Type().Elem()) + return &rv, true +} +func (irv *mapReflectValue) SetReflectValueForKey(key interface{}, value reflect.Value) error { + //log.Printf("k T %T v%#v, v T %s v %#v", key, key, value.Type().String(), value.Interface()) + krv := reflect.Indirect(reflect.ValueOf(key)) + vrv := reflect.Indirect(value) + //log.Printf("irv T %s v %#v", irv.Type().String(), irv.Interface()) + //log.Printf("k T %s v %#v, v T %s v %#v", krv.Type().String(), krv.Interface(), vrv.Type().String(), vrv.Interface()) + if krv.Kind() == reflect.Interface { + krv = krv.Elem() + //log.Printf("ke T %s v %#v", krv.Type().String(), krv.Interface()) + } + if (krv.Kind() == reflect.Slice) || (krv.Kind() == reflect.Array) { + //log.Printf("key is slice or array") + if krv.Type().Elem().Kind() == reflect.Uint8 { + //log.Printf("key is []uint8") + ks := string(krv.Bytes()) + krv = reflect.ValueOf(ks) + } + } + irv.SetMapIndex(krv, vrv) + + return nil +} + +type structAssigner struct { + Srv reflect.Value + + //keyType reflect.Type +} + +func (sa *structAssigner) ReflectValueForKey(key interface{}) (*reflect.Value, bool) { + var skey string + switch tkey := key.(type) { + case string: + skey = tkey + case *string: + skey = *tkey + default: + log.Printf("rvfk key is not string, got %T", key) + return nil, false + } + + ft := sa.Srv.Type() + numFields := ft.NumField() + for i := 0; i < numFields; i++ { + sf := ft.Field(i) + fieldname, ok := fieldname(sf) + if !ok { + continue + } + if (fieldname == skey) || strings.EqualFold(fieldname, skey) { + fieldVal := sa.Srv.FieldByName(sf.Name) + if !fieldVal.CanSet() { + log.Printf("cannot set field %s for key %s", sf.Name, skey) + return nil, false + } + return &fieldVal, true + } + } + return nil, false +} +func (sa *structAssigner) SetReflectValueForKey(key interface{}, value reflect.Value) error { + return nil +} + +func (dec *Decoder) setMapKV(dvm DecodeValueMap, krv DecodeValue) error { + var err error + val, err := dvm.CreateMapValue(krv) + if err != nil { + var throwaway interface{} + err = dec.Decode(&throwaway) + if err != nil { + return err + } + return nil + } + err = dec.DecodeAny(val) + if err != nil { + log.Printf("error decoding map val: T %T v %#v", val, val) + return err + } + err = dvm.SetMap(krv, val) + if err != nil { + log.Printf("error setting value") + return err + } + + return nil +} + +func (r *reflectValue) CreateMap() (DecodeValueMap, error) { + rv := r.v + var drv reflect.Value + if rv.Kind() == reflect.Ptr { + drv = reflect.Indirect(rv) + } else { + drv = rv + } + //log.Print("decode map into d ", drv.Type().String()) + + // inner reflect value + var irv reflect.Value + var ma mapAssignable + + var keyType reflect.Type + + switch drv.Kind() { + case reflect.Interface: + //log.Print("decode map into interface ", drv.Type().String()) + // TODO: maybe I should make this map[string]interface{} + nob := make(map[interface{}]interface{}) + irv = reflect.ValueOf(nob) + ma = &mapReflectValue{irv} + keyType = irv.Type().Key() + case reflect.Struct: + //log.Print("decode map into struct ", drv.Type().String()) + ma = &structAssigner{drv} + keyType = reflect.TypeOf("") + case reflect.Map: + //log.Print("decode map into map ", drv.Type().String()) + if drv.IsNil() { + if drv.CanSet() { + drv.Set(reflect.MakeMap(drv.Type())) + } else { + return nil, fmt.Errorf("target map is nil and not settable") + } + } + keyType = drv.Type().Key() + ma = &mapReflectValue{drv} + default: + return nil, fmt.Errorf("can't read map into %s", rv.Type().String()) + } + + return &reflectValueMap{drv, irv, ma, keyType}, nil +} + +type reflectValueMap struct { + drv reflect.Value + irv reflect.Value + ma mapAssignable + keyType reflect.Type +} + +func (r *reflectValueMap) CreateMapKey() (DecodeValue, error) { + return newReflectValue(reflect.New(r.keyType)), nil +} + +func (r *reflectValueMap) CreateMapValue(key DecodeValue) (DecodeValue, error) { + var err error + v, ok := r.ma.ReflectValueForKey(key.(*reflectValue).v.Interface()) + if !ok { + err = fmt.Errorf("Could not reflect value for key") + } + return newReflectValue(*v), err +} + +func (r *reflectValueMap) SetMap(key, val DecodeValue) error { + return r.ma.SetReflectValueForKey(key.(*reflectValue).v.Interface(), val.(*reflectValue).v) +} + +func (r *reflectValueMap) EndMap() error { + if r.drv.Kind() == reflect.Interface { + r.drv.Set(r.irv) + } + return nil +} + +func (dec *Decoder) decodeMap(rv DecodeValue, cborInfo byte, aux uint64) error { + //log.Print("decode map into ", rv.Type().String()) + // dereferenced reflect value + var dvm DecodeValueMap + var err error + + dvm, err = rv.CreateMap() + if err != nil { + return err + } + + if cborInfo == varFollows { + subc := []byte{0} + for true { + _, err = io.ReadFull(dec.reader, subc) + if err != nil { + log.Printf("error reading next byte for var text") + return err + } + if subc[0] == 0xff { + // Done + break + } else { + //var key interface{} + krv, err := dvm.CreateMapKey() + if err != nil { + return err + } + //var val interface{} + err = dec.innerDecodeC(krv, subc[0]) + if err != nil { + log.Printf("error decoding map key V, %s", err) + return err + } + + err = dec.setMapKV(dvm, krv) + if err != nil { + return err + } + } + } + } else { + var i uint64 + for i = 0; i < aux; i++ { + //var key interface{} + krv, err := dvm.CreateMapKey() + if err != nil { + return err + } + //var val interface{} + //err = dec.Decode(&key) + err = dec.DecodeAny(krv) + if err != nil { + log.Printf("error decoding map key #, %s", err) + return err + } + err = dec.setMapKV(dvm, krv) + if err != nil { + return err + } + } + } + + return dvm.EndMap() +} + +func (r *reflectValue) CreateArray(makeLength int) (DecodeValueArray, error) { + var rv reflect.Value = r.v + + if rv.Kind() == reflect.Ptr { + rv = reflect.Indirect(rv) + } + + // inner reflect value + var irv reflect.Value + var elemType reflect.Type + + switch rv.Kind() { + case reflect.Interface: + // make a slice + nob := make([]interface{}, 0, makeLength) + irv = reflect.ValueOf(nob) + elemType = irv.Type().Elem() + case reflect.Slice: + // we have a slice + irv = rv + elemType = irv.Type().Elem() + case reflect.Array: + // no irv, no elemType + default: + return nil, fmt.Errorf("can't read array into %s", rv.Type().String()) + } + + return &reflectValueArray{rv, makeLength, irv, elemType, 0}, nil +} + +type reflectValueArray struct { + rv reflect.Value + makeLength int + irv reflect.Value + elemType reflect.Type + arrayPos int +} + +func (r *reflectValueArray) GetArrayValue(index uint64) (DecodeValue, error) { + if r.rv.Kind() == reflect.Array { + return &reflectValue{r.rv.Index(r.arrayPos)}, nil + } else { + return &reflectValue{reflect.New(r.elemType)}, nil + } +} + +func (r *reflectValueArray) AppendArray(subrv DecodeValue) error { + if r.rv.Kind() == reflect.Array { + r.arrayPos++ + } else { + r.irv = reflect.Append(r.irv, reflect.Indirect(subrv.(*reflectValue).v)) + } + return nil +} + +func (r *reflectValueArray) EndArray() error { + if r.rv.Kind() != reflect.Array { + r.rv.Set(r.irv) + } + return nil +} + +func (dec *Decoder) decodeArray(rv DecodeValue, cborInfo byte, aux uint64) error { + + var err error + var dva DecodeValueArray + + var makeLength int = 0 + if cborInfo == varFollows { + // no special capacity to allocate the slice to + } else { + makeLength = int(aux) + } + + dva, err = rv.CreateArray(int(min(uint64(makeLength), uint64(arrayBatch)))) + if err != nil { + return err + } + + if cborInfo == varFollows { + //log.Printf("var array") + subc := []byte{0} + var idx uint64 = 0 + for true { + _, err = io.ReadFull(dec.reader, subc) + if err != nil { + log.Printf("error reading next byte for var text") + return err + } + if subc[0] == 0xff { + // Done + break + } + subrv, err := dva.GetArrayValue(idx) + if err != nil { + return err + } + err = dec.innerDecodeC(subrv, subc[0]) + if err != nil { + log.Printf("error decoding array subob") + return err + } + err = dva.AppendArray(subrv) + if err != nil { + return err + } + idx++ + } + } else { + var i uint64 + for i = 0; i < aux; i++ { + subrv, err := dva.GetArrayValue(i) + if err != nil { + return err + } + err = dec.DecodeAny(subrv) + if err != nil { + log.Printf("error decoding array subob") + return err + } + err = dva.AppendArray(subrv) + if err != nil { + return err + } + } + } + + return dva.EndArray() +} + +func (dec *Decoder) decodeBignum(c byte) (*big.Int, error) { + cborType := c & typeMask + cborInfo := c & infoBits + + aux, err := dec.handleInfoBits(cborInfo) + if err != nil { + log.Printf("error in bignum handleInfoBits: %v", err) + return nil, err + } + //log.Printf("bignum cborType %x cborInfo %d aux %x", cborType, cborInfo, aux) + + if cborType != cborBytes { + return nil, fmt.Errorf("attempting to decode bignum but sub object is not bytes but type %x", cborType) + } + + rawbytes, err := dec.readBytes(aux) + if err != nil { + return nil, err + } + + bn := big.NewInt(0) + littleBig := &big.Int{} + d := &big.Int{} + for _, bv := range rawbytes { + d.Lsh(bn, 8) + littleBig.SetUint64(uint64(bv)) + bn.Or(d, littleBig) + } + + return bn, nil +} + +func (r *reflectValue) SetBignum(x *big.Int) error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + return newReflectValue(reflect.Indirect(rv)).SetBignum(x) + case reflect.Interface: + rv.Set(reflect.ValueOf(*x)) + return nil + case reflect.Int32: + if x.BitLen() < 32 { + rv.SetInt(x.Int64()) + return nil + } else { + return fmt.Errorf("int too big for int32 target") + } + case reflect.Int, reflect.Int64: + if x.BitLen() < 64 { + rv.SetInt(x.Int64()) + return nil + } else { + return fmt.Errorf("int too big for int64 target") + } + default: + return fmt.Errorf("cannot assign bignum into Kind=%s Type=%s %#v", rv.Kind().String(), rv.Type().String(), rv) + } +} + +func (r *reflectValue) SetBytes(buf []byte) error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + return newReflectValue(reflect.Indirect(rv)).SetBytes(buf) + case reflect.Interface: + rv.Set(reflect.ValueOf(buf)) + return nil + case reflect.Slice: + if rv.Type().Elem().Kind() == reflect.Uint8 { + rv.SetBytes(buf) + return nil + } else { + return fmt.Errorf("cannot write []byte to k=%s %s", rv.Kind().String(), rv.Type().String()) + } + case reflect.String: + rv.Set(reflect.ValueOf(string(buf))) + return nil + default: + return fmt.Errorf("cannot assign []byte into Kind=%s Type=%s %#v", rv.Kind().String(), "" /*rv.Type().String()*/, rv) + } +} + +func (r *reflectValue) SetUint(u uint64) error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + if rv.IsNil() { + if rv.CanSet() { + rv.Set(reflect.New(rv.Type().Elem())) + // fall through to set indirect below + } else { + return fmt.Errorf("trying to put uint into unsettable nil ptr") + } + } + return newReflectValue(reflect.Indirect(rv)).SetUint(u) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + if rv.OverflowUint(u) { + return fmt.Errorf("value %d does not fit into target of type %s", u, rv.Kind().String()) + } + rv.SetUint(u) + return nil + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if (u == 0xffffffffffffffff) || rv.OverflowInt(int64(u)) { + return fmt.Errorf("value %d does not fit into target of type %s", u, rv.Kind().String()) + } + rv.SetInt(int64(u)) + return nil + case reflect.Interface: + rv.Set(reflect.ValueOf(u)) + return nil + default: + return fmt.Errorf("cannot assign uint into Kind=%s Type=%#v %#v", rv.Kind().String(), rv.Type(), rv) + } +} +func (r *reflectValue) SetInt(i int64) error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + return newReflectValue(reflect.Indirect(rv)).SetInt(i) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if rv.OverflowInt(i) { + return fmt.Errorf("value %d does not fit into target of type %s", i, rv.Kind().String()) + } + rv.SetInt(i) + return nil + case reflect.Interface: + rv.Set(reflect.ValueOf(i)) + return nil + default: + return fmt.Errorf("cannot assign int into Kind=%s Type=%#v %#v", rv.Kind().String(), rv.Type(), rv) + } +} +func (r *reflectValue) SetFloat32(f float32) error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + return newReflectValue(reflect.Indirect(rv)).SetFloat32(f) + case reflect.Float32, reflect.Float64: + rv.SetFloat(float64(f)) + return nil + case reflect.Interface: + rv.Set(reflect.ValueOf(f)) + return nil + default: + return fmt.Errorf("cannot assign float32 into Kind=%s Type=%#v %#v", rv.Kind().String(), rv.Type(), rv) + } +} +func (r *reflectValue) SetFloat64(d float64) error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + return newReflectValue(reflect.Indirect(rv)).SetFloat64(d) + case reflect.Float32, reflect.Float64: + rv.SetFloat(d) + return nil + case reflect.Interface: + rv.Set(reflect.ValueOf(d)) + return nil + default: + return fmt.Errorf("cannot assign float64 into Kind=%s Type=%#v %#v", rv.Kind().String(), rv.Type(), rv) + } +} +func (r *reflectValue) SetNil() error { + rv := r.v + switch rv.Kind() { + case reflect.Ptr: + //return setNil(reflect.Indirect(rv)) + rv.Elem().Set(reflect.Zero(rv.Elem().Type())) + case reflect.Interface: + if rv.IsNil() { + // already nil, okay! + return nil + } + rv.Set(reflect.Zero(rv.Type())) + default: + log.Printf("setNil wat %s", rv.Type()) + rv.Set(reflect.Zero(rv.Type())) + } + return nil +} + +func (r *reflectValue) SetBool(b bool) error { + rv := r.v + reflect.Indirect(rv).Set(reflect.ValueOf(b)) + return nil +} + +func (r *reflectValue) SetString(xs string) error { + rv := r.v + // handle either concrete string or string* to nil + deref := reflect.Indirect(rv) + if !deref.CanSet() { + rv.Set(reflect.ValueOf(&xs)) + } else { + deref.Set(reflect.ValueOf(xs)) + } + //reflect.Indirect(rv).Set(reflect.ValueOf(joined)) + return nil +} + +func (r *reflectValue) CreateTag(aux uint64, decoder TagDecoder) (DecodeValue, interface{}, error) { + if decoder != nil { + target := decoder.DecodeTarget() + return newReflectValue(reflect.ValueOf(target)), target, nil + } else { + target := &CBORTag{} + target.Tag = aux + return newReflectValue(reflect.ValueOf(&target.WrappedObject)), target, nil + } +} + +func (r *reflectValue) SetTag(code uint64, val DecodeValue, decoder TagDecoder, target interface{}) error { + rv := r.v + var err error + if decoder != nil { + target, err = decoder.PostDecode(target) + if err != nil { + return err + } + } + reflect.Indirect(rv).Set(reflect.ValueOf(target)) + return nil +} + +// copied from encoding/json/decode.go +// An InvalidUnmarshalError describes an invalid argument passed to Unmarshal. +// (The argument to Unmarshal must be a non-nil pointer.) +type InvalidUnmarshalError struct { + Type reflect.Type +} + +func (e *InvalidUnmarshalError) Error() string { + if e.Type == nil { + return "json: Unmarshal(nil)" + } + + if e.Type.Kind() != reflect.Ptr { + return "json: Unmarshal(non-pointer " + e.Type.String() + ")" + } + return "json: Unmarshal(nil " + e.Type.String() + ")" +} + +type CBORTag struct { + Tag uint64 + WrappedObject interface{} +} + +func (t *CBORTag) ToCBOR(w io.Writer, enc *Encoder) error { + _, err := w.Write(EncodeInt(MajorTypeTag, t.Tag, nil)) + if err != nil { + return err + } + + return enc.Encode(t.WrappedObject) +} + +type Encoder struct { + out io.Writer + filter func(v interface{}) interface{} + + scratch []byte +} + +// parse StructField.Tag.Get("json" or "cbor") +func fieldTagName(xinfo string) (string, bool) { + if len(xinfo) != 0 { + // e.g. `json:"field_name,omitempty"`, or same for cbor + // TODO: honor 'omitempty' option + jiparts := strings.Split(xinfo, ",") + if len(jiparts) > 0 { + fieldName := jiparts[0] + if len(fieldName) > 0 { + return fieldName, true + } + } + } + return "", false +} + +// Return fieldname, bool; if bool is false, don't use this field +func fieldname(fieldinfo reflect.StructField) (string, bool) { + if fieldinfo.PkgPath != "" { + // has path to private package. don't export + return "", false + } + fieldname, ok := fieldTagName(fieldinfo.Tag.Get("cbor")) + if !ok { + fieldname, ok = fieldTagName(fieldinfo.Tag.Get("json")) + } + if ok { + if fieldname == "" { + return fieldinfo.Name, true + } + if fieldname == "-" { + return "", false + } + return fieldname, true + } + return fieldinfo.Name, true +} + +// Write out an object to an io.Writer +func Encode(out io.Writer, ob interface{}) error { + return NewEncoder(out).Encode(ob) +} + +// Write out an object to a new byte slice +func Dumps(ob interface{}) ([]byte, error) { + writeTarget := &bytes.Buffer{} + writeTarget.Grow(20000) + err := Encode(writeTarget, ob) + if err != nil { + return nil, err + } + return writeTarget.Bytes(), nil +} + +type MarshallValue interface { + // Convert the value to CBOR. Specific CBOR data (such as tags) can be written + // on the io.Writer and more complex datatype can be written using the + // Encoder. + // + // To Write a Tag value, a possible implementation would be: + // + // w.Write(cbor.EncodeTag(6, tag_value)) + // enc.Encode(tagged_value) + // + ToCBOR(w io.Writer, enc *Encoder) error +} + +type SimpleMarshallValue interface { + // Convert the value to CBOR. The object is responsible to convert to CBOR + // in the correct format. + ToCBOR(w io.Writer) error +} + +type CBORValue []byte + +func (v CBORValue) ToCBOR(w io.Writer) error { + _, err := w.Write(v) + return err +} + +// Return new Encoder object for writing to supplied io.Writer. +// +// TODO: set options on Encoder object. +func NewEncoder(out io.Writer) *Encoder { + return &Encoder{out, nil, make([]byte, 9)} +} + +func (enc *Encoder) SetFilter(filter func(v interface{}) interface{}) { + enc.filter = filter +} + +func (enc *Encoder) Encode(ob interface{}) error { + if enc.filter != nil { + ob = enc.filter(ob) + } + + if v, ok := ob.(MarshallValue); ok { + return v.ToCBOR(enc.out, enc) + } else if v, ok := ob.(SimpleMarshallValue); ok { + return v.ToCBOR(enc.out) + } + + switch x := ob.(type) { + case int: + return enc.writeInt(int64(x)) + case int8: + return enc.writeInt(int64(x)) + case int16: + return enc.writeInt(int64(x)) + case int32: + return enc.writeInt(int64(x)) + case int64: + return enc.writeInt(x) + case uint: + return enc.tagAuxOut(cborUint, uint64(x)) + case uint8: /* aka byte */ + return enc.tagAuxOut(cborUint, uint64(x)) + case uint16: + return enc.tagAuxOut(cborUint, uint64(x)) + case uint32: + return enc.tagAuxOut(cborUint, uint64(x)) + case uint64: + return enc.tagAuxOut(cborUint, x) + case float32: + return enc.writeFloat(float64(x)) + case float64: + return enc.writeFloat(x) + case string: + return enc.writeText(x) + case []byte: + return enc.writeBytes(x) + case bool: + return enc.writeBool(x) + case nil: + return enc.tagAuxOut(cbor7, uint64(cborNull)) + case big.Int: + return fmt.Errorf("TODO: encode big.Int") + } + + // If none of the simple types work, try reflection + return enc.writeReflection(reflect.ValueOf(ob)) +} + +func (enc *Encoder) writeReflection(rv reflect.Value) error { + if enc.filter != nil { + rv = reflect.ValueOf(enc.filter(rv.Interface())) + } + + if !rv.IsValid() { + return enc.tagAuxOut(cbor7, uint64(cborNull)) + } + + if v, ok := rv.Interface().(MarshallValue); ok { + return v.ToCBOR(enc.out, enc) + } else if v, ok := rv.Interface().(SimpleMarshallValue); ok { + return v.ToCBOR(enc.out) + } + + var err error + switch rv.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return enc.writeInt(rv.Int()) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return enc.tagAuxOut(cborUint, rv.Uint()) + case reflect.Float32, reflect.Float64: + return enc.writeFloat(rv.Float()) + case reflect.Bool: + return enc.writeBool(rv.Bool()) + case reflect.String: + return enc.writeText(rv.String()) + case reflect.Slice, reflect.Array: + elemType := rv.Type().Elem() + if elemType.Kind() == reflect.Uint8 { + // special case, write out []byte + return enc.writeBytes(rv.Bytes()) + } + alen := rv.Len() + err = enc.tagAuxOut(cborArray, uint64(alen)) + for i := 0; i < alen; i++ { + err = enc.writeReflection(rv.Index(i)) + if err != nil { + log.Printf("error at array elem %d", i) + return err + } + } + return nil + case reflect.Map: + err = enc.tagAuxOut(cborMap, uint64(rv.Len())) + if err != nil { + return err + } + + dup := func(b []byte) []byte { + out := make([]byte, len(b)) + copy(out, b) + return out + } + + keys := rv.MapKeys() + buf := new(bytes.Buffer) + encKeys := make([]cborKeyEntry, 0, len(keys)) + for _, krv := range keys { + tempEnc := NewEncoder(buf) + err := tempEnc.writeReflection(krv) + if err != nil { + log.Println("error encoding map key", err) + return err + } + kval := dup(buf.Bytes()) + encKeys = append(encKeys, cborKeyEntry{ + val: kval, + key: krv, + }) + buf.Reset() + } + + sort.Sort(cborKeySorter(encKeys)) + + for _, ek := range encKeys { + vrv := rv.MapIndex(ek.key) + + _, err := enc.out.Write(ek.val) + if err != nil { + log.Printf("error writing map key") + return err + } + err = enc.writeReflection(vrv) + if err != nil { + log.Printf("error encoding map val") + return err + } + } + + return nil + case reflect.Struct: + // TODO: check for big.Int ? + numfields := rv.NumField() + structType := rv.Type() + usableFields := 0 + for i := 0; i < numfields; i++ { + fieldinfo := structType.Field(i) + _, ok := fieldname(fieldinfo) + if !ok { + continue + } + usableFields++ + } + err = enc.tagAuxOut(cborMap, uint64(usableFields)) + if err != nil { + return err + } + for i := 0; i < numfields; i++ { + fieldinfo := structType.Field(i) + fieldname, ok := fieldname(fieldinfo) + if !ok { + continue + } + err = enc.writeText(fieldname) + if err != nil { + return err + } + err = enc.writeReflection(rv.Field(i)) + if err != nil { + return err + } + } + return nil + case reflect.Interface: + //return fmt.Errorf("TODO: serialize interface{} k=%s T=%s", rv.Kind().String(), rv.Type().String()) + return enc.Encode(rv.Interface()) + case reflect.Ptr: + if rv.IsNil() { + return enc.tagAuxOut(cbor7, uint64(cborNull)) + } + return enc.writeReflection(reflect.Indirect(rv)) + } + + return fmt.Errorf("don't know how to CBOR serialize k=%s t=%s", rv.Kind().String(), rv.Type().String()) +} + +type cborKeySorter []cborKeyEntry +type cborKeyEntry struct { + val []byte + key reflect.Value +} + +func (cks cborKeySorter) Len() int { return len(cks) } +func (cks cborKeySorter) Swap(i, j int) { + cks[i], cks[j] = cks[j], cks[i] +} + +func (cks cborKeySorter) Less(i, j int) bool { + a := keyBytesFromEncoded(cks[i].val) + b := keyBytesFromEncoded(cks[j].val) + switch { + case len(a) < len(b): + return true + case len(a) > len(b): + return false + default: + if bytes.Compare(a, b) < 0 { + return true + } + return false + } +} + +func keyBytesFromEncoded(data []byte) []byte { + cborInfo := data[0] & infoBits + + if cborInfo <= 23 { + return data[1:] + } else if cborInfo == int8Follows { + return data[2:] + } else if cborInfo == int16Follows { + return data[3:] + } else if cborInfo == int32Follows { + return data[5:] + } else if cborInfo == int64Follows { + return data[9:] + } + panic("shouldnt actually hit this") +} + +func (enc *Encoder) writeInt(x int64) error { + if x < 0 { + return enc.tagAuxOut(cborNegint, uint64(-1-x)) + } + return enc.tagAuxOut(cborUint, uint64(x)) +} + +func (enc *Encoder) tagAuxOut(tag byte, x uint64) error { + var err error + if x <= 23 { + // tiny literal + enc.scratch[0] = tag | byte(x) + _, err = enc.out.Write(enc.scratch[:1]) + } else if x < 0x0ff { + enc.scratch[0] = tag | int8Follows + enc.scratch[1] = byte(x & 0x0ff) + _, err = enc.out.Write(enc.scratch[:2]) + } else if x < 0x0ffff { + enc.scratch[0] = tag | int16Follows + enc.scratch[1] = byte((x >> 8) & 0x0ff) + enc.scratch[2] = byte(x & 0x0ff) + _, err = enc.out.Write(enc.scratch[:3]) + } else if x < 0x0ffffffff { + enc.scratch[0] = tag | int32Follows + enc.scratch[1] = byte((x >> 24) & 0x0ff) + enc.scratch[2] = byte((x >> 16) & 0x0ff) + enc.scratch[3] = byte((x >> 8) & 0x0ff) + enc.scratch[4] = byte(x & 0x0ff) + _, err = enc.out.Write(enc.scratch[:5]) + } else { + err = enc.tagAux64(tag, x) + } + return err +} +func (enc *Encoder) tagAux64(tag byte, x uint64) error { + enc.scratch[0] = tag | int64Follows + enc.scratch[1] = byte((x >> 56) & 0x0ff) + enc.scratch[2] = byte((x >> 48) & 0x0ff) + enc.scratch[3] = byte((x >> 40) & 0x0ff) + enc.scratch[4] = byte((x >> 32) & 0x0ff) + enc.scratch[5] = byte((x >> 24) & 0x0ff) + enc.scratch[6] = byte((x >> 16) & 0x0ff) + enc.scratch[7] = byte((x >> 8) & 0x0ff) + enc.scratch[8] = byte(x & 0x0ff) + _, err := enc.out.Write(enc.scratch[:9]) + return err +} + +// Encode a CBOR integer unit. The first argument is the major type, the second +// argument is the integer value. The result is a byte array from 1 to 9 bytes +// depending on the size of the integer value. +// +// The major type (tag argument) must be an integer between 0 and 7 else this +// function panics +// +// If the third parameter is non nil, the slice is reused to construct the +// result to avoid a memory allocation. It should be a slice with a sufficient +// capacity. +func EncodeInt(tag byte, v uint64, buf []byte) []byte { + switch { + case v <= 23: + // tiny literal + return EncodeOpcode(tag, byte(v), buf) + case 23 < v && v < 0x0ff: + return EncodeInt8(tag, uint8(v), buf) + case 0xff <= v && v < 0x0ffff: + return EncodeInt16(tag, uint16(v), buf) + case 0xffff <= v && v < 0x0ffffffff: + return EncodeInt32(tag, uint32(v), buf) + default: + return EncodeInt64(tag, v, buf) + } +} + +func EncodeOpcode(tag byte, opcode byte, buf []byte) []byte { + if tag > 7 { + panic("Wrong tag value") + } + return append(buf[0:0], + (tag<<5)|opcode, + ) +} + +func EncodeInt8(tag byte, v uint8, buf []byte) []byte { + if tag > 7 { + panic("Wrong tag value") + } + return append(buf[0:0], + (tag<<5)|int8Follows, + byte(v&0xff), + ) +} + +func EncodeInt16(tag byte, v uint16, buf []byte) []byte { + if tag > 7 { + panic("Wrong tag value") + } + return append(buf[0:0], + (tag<<5)|int16Follows, + byte((v>>8)&0xff), + byte(v&0xff), + ) +} + +func EncodeInt32(tag byte, v uint32, buf []byte) []byte { + if tag > 7 { + panic("Wrong tag value") + } + return append(buf[0:0], + (tag<<5)|int32Follows, + byte((v>>24)&0xff), + byte((v>>16)&0xff), + byte((v>>8)&0xff), + byte(v&0xff), + ) +} + +func EncodeInt64(tag byte, v uint64, buf []byte) []byte { + if tag > 7 { + panic("Wrong tag value") + } + return append(buf[0:0], + (tag<<5)|int64Follows, + byte((v>>56)&0xff), + byte((v>>48)&0xff), + byte((v>>40)&0xff), + byte((v>>32)&0xff), + byte((v>>24)&0xff), + byte((v>>16)&0xff), + byte((v>>8)&0xff), + byte(v&0xff), + ) +} + +func (enc *Encoder) writeText(x string) error { + enc.tagAuxOut(cborText, uint64(len(x))) + _, err := io.WriteString(enc.out, x) + return err +} + +func (enc *Encoder) writeBytes(x []byte) error { + enc.tagAuxOut(cborBytes, uint64(len(x))) + _, err := enc.out.Write(x) + return err +} + +func (enc *Encoder) writeFloat(x float64) error { + return enc.tagAux64(cbor7, math.Float64bits(x)) +} + +func (enc *Encoder) writeBool(x bool) error { + if x { + return enc.tagAuxOut(cbor7, uint64(cborTrue)) + } else { + return enc.tagAuxOut(cbor7, uint64(cborFalse)) + } +} + +func min(x, y uint64) uint64 { + if x < y { + return x + } + return y +} diff --git a/vendor/github.com/whyrusleeping/cbor/go/doc.go b/vendor/github.com/whyrusleeping/cbor/go/doc.go new file mode 100644 index 00000000..30ceee30 --- /dev/null +++ b/vendor/github.com/whyrusleeping/cbor/go/doc.go @@ -0,0 +1,24 @@ +/* +CBOR is IETF RFC 7049, the "Concise Binary Object Representation" +http://tools.ietf.org/html/rfc7049 + +In can be thought of as "binary JSON" but is a superset and somewhat richer representation than JSON. + +Other implementations and more information can also be found at: +http://cbor.io/ + +Serialization and deserialization of structs uses the same tag format as the encoding/json package. If different json and cbor serialization names are needed, a tag `cbor:"fieldName"` can be specified. Example: + + type DemoStruct struct { + FieldNeedsDifferentName string `json:"serialization_name"` + FieldNeedsJsonVsCborName int `json:"json_name" cbor:"cbor_name"` + } + +This might generate json: +{"serialization_name":"foo", "json_name":2} + +And CBOR equivalent to: +{"serialization_name":"foo", "cbor_name":2} + +*/ +package cbor diff --git a/vendor/github.com/whyrusleeping/chunker/.travis.yml b/vendor/github.com/whyrusleeping/chunker/.travis.yml new file mode 100644 index 00000000..901e788d --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/.travis.yml @@ -0,0 +1,9 @@ +language: go +sudo: false + +go: + - tip + +os: + - linux + - osx diff --git a/vendor/github.com/whyrusleeping/chunker/LICENSE b/vendor/github.com/whyrusleeping/chunker/LICENSE new file mode 100644 index 00000000..04f85435 --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2014, Alexander Neumann +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/whyrusleeping/chunker/README.md b/vendor/github.com/whyrusleeping/chunker/README.md new file mode 100644 index 00000000..0d1b33f8 --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/README.md @@ -0,0 +1,7 @@ +[![Build Status](https://travis-ci.org/whyrusleeping/chunker.svg?branch=master)](https://travis-ci.org/whyrusleeping/chunker) + +Content Defined Chunking (CDC) based on a rolling Rabin Checksum. + +Part of https://github.com/restic/restic. + +Better README will follow soon. diff --git a/vendor/github.com/whyrusleeping/chunker/chunker.go b/vendor/github.com/whyrusleeping/chunker/chunker.go new file mode 100644 index 00000000..d2032c38 --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/chunker.go @@ -0,0 +1,384 @@ +package chunker + +import ( + "errors" + "hash" + "io" + "math" + "sync" +) + +const ( + KiB = 1024 + MiB = 1024 * KiB + + // WindowSize is the size of the sliding window. + windowSize = 16 + + chunkerBufSize = 512 * KiB + + // MinSize is the default minimal size of a chunk. + MinSize = 512 * KiB + // MaxSize is the default maximal size of a chunk. + MaxSize = 8 * MiB + + // AvgSize is the default average size of a chunk. + AvgSize = 1048576 +) + +var bufPool = sync.Pool{ + New: func() interface{} { return new([chunkerBufSize]byte) }, +} + +type tables struct { + out [256]Pol + mod [256]Pol +} + +// cache precomputed tables, these are read-only anyway +var cache struct { + entries map[Pol]*tables + sync.Mutex +} + +func init() { + cache.entries = make(map[Pol]*tables) +} + +// Chunk is one content-dependent chunk of bytes whose end was cut when the +// Rabin Fingerprint had the value stored in Cut. +type Chunk struct { + Start uint64 + Length uint64 + Cut uint64 + Digest []byte + Data []byte +} + +func (c Chunk) Reader(r io.ReaderAt) io.Reader { + return io.NewSectionReader(r, int64(c.Start), int64(c.Length)) +} + +// Chunker splits content with Rabin Fingerprints. +type Chunker struct { + pol Pol + polShift uint64 + tables *tables + + rd io.Reader + closed bool + + chunkbuf []byte + + window [windowSize]byte + wpos int + + buf *[chunkerBufSize]byte + bpos uint64 + bmax uint64 + + start uint64 + count uint64 + pos uint64 + + pre uint64 // wait for this many bytes before start calculating an new chunk + + digest uint64 + h hash.Hash + + sizeMask uint64 + + // minimal and maximal size of the outputted blocks + MinSize uint64 + MaxSize uint64 +} + +// New returns a new Chunker based on polynomial p that reads from rd +// with bufsize and pass all data to hash along the way. +func New(rd io.Reader, pol Pol, h hash.Hash, avSize, min, max uint64) *Chunker { + + sizepow := uint(math.Log2(float64(avSize))) + + c := &Chunker{ + buf: bufPool.Get().(*[chunkerBufSize]byte), + h: h, + pol: pol, + rd: rd, + chunkbuf: make([]byte, 0, max), + sizeMask: (1 << sizepow) - 1, + + MinSize: min, + MaxSize: max, + } + + c.reset() + + return c +} + +func (c *Chunker) reset() { + c.polShift = uint64(c.pol.Deg() - 8) + c.fillTables() + + for i := 0; i < windowSize; i++ { + c.window[i] = 0 + } + + c.closed = false + c.digest = 0 + c.wpos = 0 + c.count = 0 + c.slide(1) + c.start = c.pos + + if c.h != nil { + c.h.Reset() + } + + // do not start a new chunk unless at least MinSize bytes have been read + c.pre = c.MinSize - windowSize +} + +// Calculate out_table and mod_table for optimization. Must be called only +// once. This implementation uses a cache in the global variable cache. +func (c *Chunker) fillTables() { + // if polynomial hasn't been specified, do not compute anything for now + if c.pol == 0 { + return + } + + // test if the tables are cached for this polynomial + cache.Lock() + defer cache.Unlock() + if t, ok := cache.entries[c.pol]; ok { + c.tables = t + return + } + + // else create a new entry + c.tables = &tables{} + cache.entries[c.pol] = c.tables + + // calculate table for sliding out bytes. The byte to slide out is used as + // the index for the table, the value contains the following: + // out_table[b] = Hash(b || 0 || ... || 0) + // \ windowsize-1 zero bytes / + // To slide out byte b_0 for window size w with known hash + // H := H(b_0 || ... || b_w), it is sufficient to add out_table[b_0]: + // H(b_0 || ... || b_w) + H(b_0 || 0 || ... || 0) + // = H(b_0 + b_0 || b_1 + 0 || ... || b_w + 0) + // = H( 0 || b_1 || ... || b_w) + // + // Afterwards a new byte can be shifted in. + for b := 0; b < 256; b++ { + var h Pol + + h = appendByte(h, byte(b), c.pol) + for i := 0; i < windowSize-1; i++ { + h = appendByte(h, 0, c.pol) + } + c.tables.out[b] = h + } + + // calculate table for reduction mod Polynomial + k := c.pol.Deg() + for b := 0; b < 256; b++ { + // mod_table[b] = A | B, where A = (b(x) * x^k mod pol) and B = b(x) * x^k + // + // The 8 bits above deg(Polynomial) determine what happens next and so + // these bits are used as a lookup to this table. The value is split in + // two parts: Part A contains the result of the modulus operation, part + // B is used to cancel out the 8 top bits so that one XOR operation is + // enough to reduce modulo Polynomial + c.tables.mod[b] = Pol(uint64(b)<= c.bmax { + n, err := io.ReadFull(c.rd, c.buf[:]) + c.chunkbuf = append(c.chunkbuf, c.buf[:n]...) + + if err == io.ErrUnexpectedEOF { + err = nil + } + + // io.ReadFull only returns io.EOF when no bytes could be read. If + // this is the case and we're in this branch, there are no more + // bytes to buffer, so this was the last chunk. If a different + // error has occurred, return that error and abandon the current + // chunk. + if err == io.EOF && !c.closed { + c.closed = true + + // return the buffer to the pool + buf := c.buf + c.buf = nil + bufPool.Put(buf) + + data := c.nextBytes() + + // return current chunk, if any bytes have been processed + if c.count > 0 { + return &Chunk{ + Start: c.start, + Length: c.count, + Cut: c.digest, + Digest: c.hashDigest(), + Data: data, + }, nil + } + } + + if err != nil { + return nil, err + } + + c.bpos = 0 + c.bmax = uint64(n) + } + + // check if bytes have to be dismissed before starting a new chunk + if c.pre > 0 { + n := c.bmax - c.bpos + if c.pre > uint64(n) { + c.pre -= uint64(n) + c.updateHash(c.buf[c.bpos:c.bmax]) + + c.count += uint64(n) + c.pos += uint64(n) + c.bpos = c.bmax + + continue + } + + c.updateHash(c.buf[c.bpos : c.bpos+c.pre]) + + c.bpos += c.pre + c.count += c.pre + c.pos += c.pre + c.pre = 0 + } + + add := c.count + for _, b := range c.buf[c.bpos:c.bmax] { + // inline c.slide(b) and append(b) to increase performance + out := c.window[c.wpos] + c.window[c.wpos] = b + c.digest ^= uint64(c.tables.out[out]) + c.wpos = (c.wpos + 1) % windowSize + + // c.append(b) + index := c.digest >> c.polShift + c.digest <<= 8 + c.digest |= uint64(b) + + c.digest ^= uint64(c.tables.mod[index]) + // end inline + + add++ + if add < c.MinSize { + continue + } + + if (c.digest&c.sizeMask) == 0 || add >= c.MaxSize { + i := add - c.count - 1 + c.updateHash(c.buf[c.bpos : c.bpos+uint64(i)+1]) + c.count = add + c.pos += uint64(i) + 1 + c.bpos += uint64(i) + 1 + + data := c.nextBytes() + + chunk := &Chunk{ + Start: c.start, + Length: c.count, + Cut: c.digest, + Digest: c.hashDigest(), + Data: data, + } + + c.reset() + + return chunk, nil + } + } + + steps := c.bmax - c.bpos + if steps > 0 { + c.updateHash(c.buf[c.bpos : c.bpos+steps]) + } + c.count += steps + c.pos += steps + c.bpos = c.bmax + } +} + +func dupBytes(b []byte) []byte { + out := make([]byte, len(b)) + copy(out, b) + return out +} + +func (c *Chunker) updateHash(data []byte) { + if c.h != nil { + // the hashes from crypto/sha* do not return an error + _, err := c.h.Write(data) + if err != nil { + panic(err) + } + } +} + +func (c *Chunker) hashDigest() []byte { + if c.h == nil { + return nil + } + + return c.h.Sum(nil) +} + +func (c *Chunker) append(b byte) { + index := c.digest >> c.polShift + c.digest <<= 8 + c.digest |= uint64(b) + + c.digest ^= uint64(c.tables.mod[index]) +} + +func (c *Chunker) slide(b byte) { + out := c.window[c.wpos] + c.window[c.wpos] = b + c.digest ^= uint64(c.tables.out[out]) + c.wpos = (c.wpos + 1) % windowSize + + c.append(b) +} + +func appendByte(hash Pol, b byte, pol Pol) Pol { + hash <<= 8 + hash |= Pol(b) + + return hash.Mod(pol) +} diff --git a/vendor/github.com/whyrusleeping/chunker/doc.go b/vendor/github.com/whyrusleeping/chunker/doc.go new file mode 100644 index 00000000..5537c172 --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/doc.go @@ -0,0 +1,82 @@ +// Copyright 2014 Alexander Neumann. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package chunker implements Content Defined Chunking (CDC) based on a rolling +Rabin Checksum. + +Choosing a Random Irreducible Polynomial + +The function RandomPolynomial() returns a new random polynomial of degree 53 +for use with the chunker. The degree 53 is chosen because it is the largest +prime below 64-8 = 56, so that the top 8 bits of an uint64 can be used for +optimising calculations in the chunker. + +A random polynomial is chosen selecting 64 random bits, masking away bits +64..54 and setting bit 53 to one (otherwise the polynomial is not of the +desired degree) and bit 0 to one (otherwise the polynomial is trivially +reducible), so that 51 bits are chosen at random. + +This process is repeated until Irreducible() returns true, then this +polynomials is returned. If this doesn't happen after 1 million tries, the +function returns an error. The probability for selecting an irreducible +polynomial at random is about 7.5% ( (2^53-2)/53 / 2^51), so the probability +that no irreducible polynomial has been found after 100 tries is lower than +0.04%. + +Verifying Irreducible Polynomials + +During development the results have been verified using the computational +discrete algebra system GAP, which can be obtained from the website at +http://www.gap-system.org/. + +For filtering a given list of polynomials in hexadecimal coefficient notation, +the following script can be used: + + # create x over F_2 = GF(2) + x := Indeterminate(GF(2), "x"); + + # test if polynomial is irreducible, i.e. the number of factors is one + IrredPoly := function (poly) + return (Length(Factors(poly)) = 1); + end;; + + # create a polynomial in x from the hexadecimal representation of the + # coefficients + Hex2Poly := function (s) + return ValuePol(CoefficientsQadic(IntHexString(s), 2), x); + end;; + + # list of candidates, in hex + candidates := [ "3DA3358B4DC173" ]; + + # create real polynomials + L := List(candidates, Hex2Poly); + + # filter and display the list of irreducible polynomials contained in L + Display(Filtered(L, x -> (IrredPoly(x)))); + +All irreducible polynomials from the list are written to the output. + +Background Literature + +An introduction to Rabin Fingerprints/Checksums can be found in the following articles: + +Michael O. Rabin (1981): "Fingerprinting by Random Polynomials" +http://www.xmailserver.org/rabin.pdf + +Ross N. Williams (1993): "A Painless Guide to CRC Error Detection Algorithms" +http://www.zlib.net/crc_v3.txt + +Andrei Z. Broder (1993): "Some Applications of Rabin's Fingerprinting Method" +http://www.xmailserver.org/rabin_apps.pdf + +Shuhong Gao and Daniel Panario (1997): "Tests and Constructions of Irreducible Polynomials over Finite Fields" +http://www.math.clemson.edu/~sgao/papers/GP97a.pdf + +Andrew Kadatch, Bob Jenkins (2007): "Everything we know about CRC but afraid to forget" +http://crcutil.googlecode.com/files/crc-doc.1.0.pdf + +*/ +package chunker diff --git a/vendor/github.com/whyrusleeping/chunker/package.json b/vendor/github.com/whyrusleeping/chunker/package.json new file mode 100644 index 00000000..b609d65a --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/package.json @@ -0,0 +1,16 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/chunker" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/chunker" + }, + "gxVersion": "0.12.1", + "language": "go", + "license": "", + "name": "chunker", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "0.0.1" +} + diff --git a/vendor/github.com/whyrusleeping/chunker/polynomials.go b/vendor/github.com/whyrusleeping/chunker/polynomials.go new file mode 100644 index 00000000..355da109 --- /dev/null +++ b/vendor/github.com/whyrusleeping/chunker/polynomials.go @@ -0,0 +1,278 @@ +package chunker + +import ( + "crypto/rand" + "encoding/binary" + "errors" + "fmt" + "strconv" +) + +// Pol is a polynomial from F_2[X]. +type Pol uint64 + +// Add returns x+y. +func (x Pol) Add(y Pol) Pol { + r := Pol(uint64(x) ^ uint64(y)) + return r +} + +// mulOverflows returns true if the multiplication would overflow uint64. +// Code by Rob Pike, see +// https://groups.google.com/d/msg/golang-nuts/h5oSN5t3Au4/KaNQREhZh0QJ +func mulOverflows(a, b Pol) bool { + if a <= 1 || b <= 1 { + return false + } + c := a.mul(b) + d := c.Div(b) + if d != a { + return true + } + + return false +} + +func (x Pol) mul(y Pol) Pol { + if x == 0 || y == 0 { + return 0 + } + + var res Pol + for i := 0; i <= y.Deg(); i++ { + if (y & (1 << uint(i))) > 0 { + res = res.Add(x << uint(i)) + } + } + + return res +} + +// Mul returns x*y. When an overflow occurs, Mul panics. +func (x Pol) Mul(y Pol) Pol { + if mulOverflows(x, y) { + panic("multiplication would overflow uint64") + } + + return x.mul(y) +} + +// Deg returns the degree of the polynomial x. If x is zero, -1 is returned. +func (x Pol) Deg() int { + // the degree of 0 is -1 + if x == 0 { + return -1 + } + + var mask Pol = (1 << 63) + for i := 63; i >= 0; i-- { + // test if bit i is set + if x&mask > 0 { + // this is the degree of x + return i + } + mask >>= 1 + } + + // fall-through, return -1 + return -1 +} + +// String returns the coefficients in hex. +func (x Pol) String() string { + return "0x" + strconv.FormatUint(uint64(x), 16) +} + +// Expand returns the string representation of the polynomial x. +func (x Pol) Expand() string { + if x == 0 { + return "0" + } + + s := "" + for i := x.Deg(); i > 1; i-- { + if x&(1< 0 { + s += fmt.Sprintf("+x^%d", i) + } + } + + if x&2 > 0 { + s += "+x" + } + + if x&1 > 0 { + s += "+1" + } + + return s[1:] +} + +// DivMod returns x / d = q, and remainder r, +// see https://en.wikipedia.org/wiki/Division_algorithm +func (x Pol) DivMod(d Pol) (Pol, Pol) { + if x == 0 { + return 0, 0 + } + + if d == 0 { + panic("division by zero") + } + + D := d.Deg() + diff := x.Deg() - D + if diff < 0 { + return 0, x + } + + var q Pol + for diff >= 0 { + m := d << uint(diff) + q |= (1 << uint(diff)) + x = x.Add(m) + + diff = x.Deg() - D + } + + return q, x +} + +// Div returns the integer division result x / d. +func (x Pol) Div(d Pol) Pol { + q, _ := x.DivMod(d) + return q +} + +// Mod returns the remainder of x / d +func (x Pol) Mod(d Pol) Pol { + _, r := x.DivMod(d) + return r +} + +// I really dislike having a function that does not terminate, so specify a +// really large upper bound for finding a new irreducible polynomial, and +// return an error when no irreducible polynomial has been found within +// randPolMaxTries. +const randPolMaxTries = 1e6 + +// RandomPolynomial returns a new random irreducible polynomial of degree 53 +// (largest prime number below 64-8). There are (2^53-2/53) irreducible +// polynomials of degree 53 in F_2[X], c.f. Michael O. Rabin (1981): +// "Fingerprinting by Random Polynomials", page 4. If no polynomial could be +// found in one million tries, an error is returned. +func RandomPolynomial() (Pol, error) { + for i := 0; i < randPolMaxTries; i++ { + var f Pol + + // choose polynomial at random + err := binary.Read(rand.Reader, binary.LittleEndian, &f) + if err != nil { + return 0, err + } + + // mask away bits above bit 53 + f &= Pol((1 << 54) - 1) + + // set highest and lowest bit so that the degree is 53 and the + // polynomial is not trivially reducible + f |= (1 << 53) | 1 + + // test if f is irreducible + if f.Irreducible() { + return f, nil + } + } + + // If this is reached, we haven't found an irreducible polynomial in + // randPolMaxTries. This error is very unlikely to occur. + return 0, errors.New("unable to find new random irreducible polynomial") +} + +// GCD computes the Greatest Common Divisor x and f. +func (x Pol) GCD(f Pol) Pol { + if f == 0 { + return x + } + + if x == 0 { + return f + } + + if x.Deg() < f.Deg() { + x, f = f, x + } + + return f.GCD(x.Mod(f)) +} + +// Irreducible returns true iff x is irreducible over F_2. This function +// uses Ben Or's reducibility test. +// +// For details see "Tests and Constructions of Irreducible Polynomials over +// Finite Fields". +func (x Pol) Irreducible() bool { + for i := 1; i <= x.Deg()/2; i++ { + if x.GCD(qp(uint(i), x)) != 1 { + return false + } + } + + return true +} + +// MulMod computes x*f mod g +func (x Pol) MulMod(f, g Pol) Pol { + if x == 0 || f == 0 { + return 0 + } + + var res Pol + for i := 0; i <= f.Deg(); i++ { + if (f & (1 << uint(i))) > 0 { + a := x + for j := 0; j < i; j++ { + a = a.Mul(2).Mod(g) + } + res = res.Add(a).Mod(g) + } + } + + return res +} + +// qp computes the polynomial (x^(2^p)-x) mod g. This is needed for the +// reducibility test. +func qp(p uint, g Pol) Pol { + num := (1 << p) + i := 1 + + // start with x + res := Pol(2) + + for i < num { + // repeatedly square res + res = res.MulMod(res, g) + i *= 2 + } + + // add x + return res.Add(2).Mod(g) +} + +func (p Pol) MarshalJSON() ([]byte, error) { + buf := strconv.AppendUint([]byte{'"'}, uint64(p), 16) + buf = append(buf, '"') + return buf, nil +} + +func (p *Pol) UnmarshalJSON(data []byte) error { + if len(data) < 2 { + return errors.New("invalid string for polynomial") + } + n, err := strconv.ParseUint(string(data[1:len(data)-1]), 16, 64) + if err != nil { + return err + } + *p = Pol(n) + + return nil +} diff --git a/vendor/github.com/whyrusleeping/go-keyspace/.gxlastpubver b/vendor/github.com/whyrusleeping/go-keyspace/.gxlastpubver new file mode 100644 index 00000000..c343a53e --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-keyspace/.gxlastpubver @@ -0,0 +1 @@ +0.0.0: QmaoGHsjT3vbZQWmfy6Lo4H4PoBTdQKRvCGda7G41eb6zd diff --git a/vendor/github.com/whyrusleeping/go-keyspace/LICENSE b/vendor/github.com/whyrusleeping/go-keyspace/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-keyspace/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/go-keyspace/README.md b/vendor/github.com/whyrusleeping/go-keyspace/README.md new file mode 100644 index 00000000..d223061f --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-keyspace/README.md @@ -0,0 +1,6 @@ +# go-keyspace +This is a package extracted from go-ipfs. + +Its purpose it to be used to compare a set of keys based on a given +metric. The primary metric used is XOR, as in kademlia. + diff --git a/vendor/github.com/whyrusleeping/go-keyspace/keyspace.go b/vendor/github.com/whyrusleeping/go-keyspace/keyspace.go new file mode 100644 index 00000000..e26a0e6d --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-keyspace/keyspace.go @@ -0,0 +1,97 @@ +package keyspace + +import ( + "sort" + + "math/big" +) + +// Key represents an identifier in a KeySpace. It holds a reference to the +// associated KeySpace, as well references to both the Original identifier, +// as well as the new, KeySpace Bytes one. +type Key struct { + + // Space is the KeySpace this Key is related to. + Space KeySpace + + // Original is the original value of the identifier + Original []byte + + // Bytes is the new value of the identifier, in the KeySpace. + Bytes []byte +} + +// Equal returns whether this key is equal to another. +func (k1 Key) Equal(k2 Key) bool { + if k1.Space != k2.Space { + panic("k1 and k2 not in same key space.") + } + return k1.Space.Equal(k1, k2) +} + +// Less returns whether this key comes before another. +func (k1 Key) Less(k2 Key) bool { + if k1.Space != k2.Space { + panic("k1 and k2 not in same key space.") + } + return k1.Space.Less(k1, k2) +} + +// Distance returns this key's distance to another +func (k1 Key) Distance(k2 Key) *big.Int { + if k1.Space != k2.Space { + panic("k1 and k2 not in same key space.") + } + return k1.Space.Distance(k1, k2) +} + +// KeySpace is an object used to do math on identifiers. Each keyspace has its +// own properties and rules. See XorKeySpace. +type KeySpace interface { + + // Key converts an identifier into a Key in this space. + Key([]byte) Key + + // Equal returns whether keys are equal in this key space + Equal(Key, Key) bool + + // Distance returns the distance metric in this key space + Distance(Key, Key) *big.Int + + // Less returns whether the first key is smaller than the second. + Less(Key, Key) bool +} + +// byDistanceToCenter is a type used to sort Keys by proximity to a center. +type byDistanceToCenter struct { + Center Key + Keys []Key +} + +func (s byDistanceToCenter) Len() int { + return len(s.Keys) +} + +func (s byDistanceToCenter) Swap(i, j int) { + s.Keys[i], s.Keys[j] = s.Keys[j], s.Keys[i] +} + +func (s byDistanceToCenter) Less(i, j int) bool { + a := s.Center.Distance(s.Keys[i]) + b := s.Center.Distance(s.Keys[j]) + return a.Cmp(b) == -1 +} + +// SortByDistance takes a KeySpace, a center Key, and a list of Keys toSort. +// It returns a new list, where the Keys toSort have been sorted by their +// distance to the center Key. +func SortByDistance(sp KeySpace, center Key, toSort []Key) []Key { + toSortCopy := make([]Key, len(toSort)) + copy(toSortCopy, toSort) + bdtc := &byDistanceToCenter{ + Center: center, + Keys: toSortCopy, // copy + } + sort.Sort(bdtc) + return bdtc.Keys +} diff --git a/vendor/github.com/whyrusleeping/go-keyspace/package.json b/vendor/github.com/whyrusleeping/go-keyspace/package.json new file mode 100644 index 00000000..5ca4f544 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-keyspace/package.json @@ -0,0 +1,9 @@ +{ + "name": "go-keyspace", + "author": "whyrusleeping", + "version": "1.0.0", + "language": "go", + "gx": { + "dvcsimport": "github.com/whyrusleeping/go-keyspace" + } +} diff --git a/vendor/github.com/whyrusleeping/go-keyspace/xor.go b/vendor/github.com/whyrusleeping/go-keyspace/xor.go new file mode 100644 index 00000000..24a542f7 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-keyspace/xor.go @@ -0,0 +1,74 @@ +package keyspace + +import ( + "bytes" + "crypto/sha256" + "math/big" +) + +// XORKeySpace is a KeySpace which: +// - normalizes identifiers using a cryptographic hash (sha256) +// - measures distance by XORing keys together +var XORKeySpace = &xorKeySpace{} +var _ KeySpace = XORKeySpace // ensure it conforms + +type xorKeySpace struct{} + +// Key converts an identifier into a Key in this space. +func (s *xorKeySpace) Key(id []byte) Key { + hash := sha256.Sum256(id) + key := hash[:] + return Key{ + Space: s, + Original: id, + Bytes: key, + } +} + +// Equal returns whether keys are equal in this key space +func (s *xorKeySpace) Equal(k1, k2 Key) bool { + return bytes.Equal(k1.Bytes, k2.Bytes) +} + +// Distance returns the distance metric in this key space +func (s *xorKeySpace) Distance(k1, k2 Key) *big.Int { + // XOR the keys + k3 := XOR(k1.Bytes, k2.Bytes) + + // interpret it as an integer + dist := big.NewInt(0).SetBytes(k3) + return dist +} + +// Less returns whether the first key is smaller than the second. +func (s *xorKeySpace) Less(k1, k2 Key) bool { + a := k1.Bytes + b := k2.Bytes + for i := 0; i < len(a); i++ { + if a[i] != b[i] { + return a[i] < b[i] + } + } + return true +} + +// ZeroPrefixLen returns the number of consecutive zeroes in a byte slice. +func ZeroPrefixLen(id []byte) int { + for i := 0; i < len(id); i++ { + for j := 0; j < 8; j++ { + if (id[i]>>uint8(7-j))&0x1 != 0 { + return i*8 + j + } + } + } + return len(id) * 8 +} + +// XOR takes two byte slices, XORs them together, returns the resulting slice. +func XOR(a, b []byte) []byte { + c := make([]byte, len(a)) + for i := 0; i < len(a); i++ { + c[i] = a[i] ^ b[i] + } + return c +} diff --git a/vendor/github.com/whyrusleeping/go-logging/.travis.yml b/vendor/github.com/whyrusleeping/go-logging/.travis.yml new file mode 100644 index 00000000..70e012b8 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/.travis.yml @@ -0,0 +1,6 @@ +language: go + +go: + - 1.0 + - 1.1 + - tip diff --git a/vendor/github.com/whyrusleeping/go-logging/CONTRIBUTORS b/vendor/github.com/whyrusleeping/go-logging/CONTRIBUTORS new file mode 100644 index 00000000..958416ef --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/CONTRIBUTORS @@ -0,0 +1,5 @@ +Alec Thomas +Guilhem Lettron +Ivan Daniluk +Nimi Wariboko Jr +Róbert Selvek diff --git a/vendor/github.com/whyrusleeping/go-logging/LICENSE b/vendor/github.com/whyrusleeping/go-logging/LICENSE new file mode 100644 index 00000000..f1f6cfce --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2013 Örjan Persson. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/whyrusleeping/go-logging/README.md b/vendor/github.com/whyrusleeping/go-logging/README.md new file mode 100644 index 00000000..56695508 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/README.md @@ -0,0 +1,89 @@ +## Golang logging library + +[![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/op/go-logging) [![build](https://img.shields.io/travis/op/go-logging.svg?style=flat)](https://travis-ci.org/op/go-logging) + +Package logging implements a logging infrastructure for Go. Its output format +is customizable and supports different logging backends like syslog, file and +memory. Multiple backends can be utilized with different log levels per backend +and logger. + +## Example + +Let's have a look at an [example](examples/example.go) which demonstrates most +of the features found in this library. + +[![Example Output](examples/example.png)](examples/example.go) + +```go +package main + +import ( + "os" + + "github.com/op/go-logging" +) + +var log = logging.MustGetLogger("example") + +// Example format string. Everything except the message has a custom color +// which is dependent on the log level. Many fields have a custom output +// formatting too, eg. the time returns the hour down to the milli second. +var format = logging.MustStringFormatter( + "%{color}%{time:15:04:05.000} %{shortfunc} â–¶ %{level:.4s} %{id:03x}%{color:reset} %{message}", +) + +// Password is just an example type implementing the Redactor interface. Any +// time this is logged, the Redacted() function will be called. +type Password string + +func (p Password) Redacted() interface{} { + return logging.Redact(string(p)) +} + +func main() { + // For demo purposes, create two backend for os.Stderr. + backend1 := logging.NewLogBackend(os.Stderr, "", 0) + backend2 := logging.NewLogBackend(os.Stderr, "", 0) + + // For messages written to backend2 we want to add some additional + // information to the output, including the used log level and the name of + // the function. + backend2Formatter := logging.NewBackendFormatter(backend2, format) + + // Only errors and more severe messages should be sent to backend1 + backend1Leveled := logging.AddModuleLevel(backend1) + backend1Leveled.SetLevel(logging.ERROR, "") + + // Set the backends to be used. + logging.SetBackend(backend1Leveled, backend2Formatter) + + log.Debug("debug %s", Password("secret")) + log.Info("info") + log.Notice("notice") + log.Warning("warning") + log.Error("err") + log.Critical("crit") +} +``` + +## Installing + +### Using *go get* + + $ go get github.com/op/go-logging + +After this command *go-logging* is ready to use. Its source will be in: + + $GOROOT/src/pkg/github.com/op/go-logging + +You can use `go get -u` to update the package. + +## Documentation + +For docs, see http://godoc.org/github.com/op/go-logging or run: + + $ godoc github.com/op/go-logging + +## Additional resources + +* [wslog](https://godoc.org/github.com/cryptix/go/logging/wslog) -- exposes log messages through a WebSocket. diff --git a/vendor/github.com/whyrusleeping/go-logging/backend.go b/vendor/github.com/whyrusleeping/go-logging/backend.go new file mode 100644 index 00000000..6cd589ca --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/backend.go @@ -0,0 +1,39 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package logging + +// defaultBackend is the backend used for all logging calls. +var defaultBackend LeveledBackend + +// Backend is the interface which a log backend need to implement to be able to +// be used as a logging backend. +type Backend interface { + Log(Level, int, *Record) error +} + +// Set backend replaces the backend currently set with the given new logging +// backend. +func SetBackend(backends ...Backend) LeveledBackend { + var backend Backend + if len(backends) == 1 { + backend = backends[0] + } else { + backend = MultiLogger(backends...) + } + + defaultBackend = AddModuleLevel(backend) + return defaultBackend +} + +// SetLevel sets the logging level for the specified module. The module +// corresponds to the string specified in GetLogger. +func SetLevel(level Level, module string) { + defaultBackend.SetLevel(level, module) +} + +// GetLevel returns the logging level for the specified module. +func GetLevel(module string) Level { + return defaultBackend.GetLevel(module) +} diff --git a/vendor/github.com/whyrusleeping/go-logging/format.go b/vendor/github.com/whyrusleeping/go-logging/format.go new file mode 100644 index 00000000..99b1ddb7 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/format.go @@ -0,0 +1,368 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package logging + +import ( + "bytes" + "errors" + "fmt" + "io" + "os" + "path" + "path/filepath" + "regexp" + "runtime" + "strings" + "sync" + "time" +) + +// TODO see Formatter interface in fmt/print.go +// TODO try text/template, maybe it have enough performance +// TODO other template systems? +// TODO make it possible to specify formats per backend? +type fmtVerb int + +const ( + fmtVerbTime fmtVerb = iota + fmtVerbLevel + fmtVerbId + fmtVerbPid + fmtVerbProgram + fmtVerbModule + fmtVerbMessage + fmtVerbLongfile + fmtVerbShortfile + fmtVerbLongpkg + fmtVerbShortpkg + fmtVerbLongfunc + fmtVerbShortfunc + fmtVerbLevelColor + + // Keep last, there are no match for these below. + fmtVerbUnknown + fmtVerbStatic +) + +var fmtVerbs = []string{ + "time", + "level", + "id", + "pid", + "program", + "module", + "message", + "longfile", + "shortfile", + "longpkg", + "shortpkg", + "longfunc", + "shortfunc", + "color", +} + +const rfc3339Milli = "2006-01-02T15:04:05.999Z07:00" + +var defaultVerbsLayout = []string{ + rfc3339Milli, + "s", + "d", + "d", + "s", + "s", + "s", + "s", + "s", + "s", + "s", + "s", + "s", + "", +} + +var ( + pid = os.Getpid() + program = filepath.Base(os.Args[0]) +) + +func getFmtVerbByName(name string) fmtVerb { + for i, verb := range fmtVerbs { + if name == verb { + return fmtVerb(i) + } + } + return fmtVerbUnknown +} + +// Formatter is the required interface for a custom log record formatter. +type Formatter interface { + Format(calldepth int, r *Record, w io.Writer) error +} + +// formatter is used by all backends unless otherwise overriden. +var formatter struct { + sync.RWMutex + def Formatter +} + +func getFormatter() Formatter { + formatter.RLock() + defer formatter.RUnlock() + return formatter.def +} + +var ( + // DefaultFormatter is the default formatter used and is only the message. + DefaultFormatter Formatter = MustStringFormatter("%{message}") + + // Glog format + GlogFormatter Formatter = MustStringFormatter("%{level:.1s}%{time:0102 15:04:05.999999} %{pid} %{shortfile}] %{message}") +) + +// SetFormatter sets the default formatter for all new backends. A backend will +// fetch this value once it is needed to format a record. Note that backends +// will cache the formatter after the first point. For now, make sure to set +// the formatter before logging. +func SetFormatter(f Formatter) { + formatter.Lock() + defer formatter.Unlock() + formatter.def = f +} + +var formatRe *regexp.Regexp = regexp.MustCompile(`%{([a-z]+)(?::(.*?[^\\]))?}`) + +type part struct { + verb fmtVerb + layout string +} + +// stringFormatter contains a list of parts which explains how to build the +// formatted string passed on to the logging backend. +type stringFormatter struct { + parts []part +} + +// NewStringFormatter returns a new Formatter which outputs the log record as a +// string based on the 'verbs' specified in the format string. +// +// The verbs: +// +// General: +// %{id} Sequence number for log message (uint64). +// %{pid} Process id (int) +// %{time} Time when log occurred (time.Time) +// %{level} Log level (Level) +// %{module} Module (string) +// %{program} Basename of os.Args[0] (string) +// %{message} Message (string) +// %{longfile} Full file name and line number: /a/b/c/d.go:23 +// %{shortfile} Final file name element and line number: d.go:23 +// %{color} ANSI color based on log level +// +// For normal types, the output can be customized by using the 'verbs' defined +// in the fmt package, eg. '%{id:04d}' to make the id output be '%04d' as the +// format string. +// +// For time.Time, use the same layout as time.Format to change the time format +// when output, eg "2006-01-02T15:04:05.999Z-07:00". +// +// For the 'color' verb, the output can be adjusted to either use bold colors, +// i.e., '%{color:bold}' or to reset the ANSI attributes, i.e., +// '%{color:reset}' Note that if you use the color verb explicitly, be sure to +// reset it or else the color state will persist past your log message. e.g., +// "%{color:bold}%{time:15:04:05} %{level:-8s}%{color:reset} %{message}" will +// just colorize the time and level, leaving the message uncolored. +// +// There's also a couple of experimental 'verbs'. These are exposed to get +// feedback and needs a bit of tinkering. Hence, they might change in the +// future. +// +// Experimental: +// %{longpkg} Full package path, eg. github.com/go-logging +// %{shortpkg} Base package path, eg. go-logging +// %{longfunc} Full function name, eg. littleEndian.PutUint32 +// %{shortfunc} Base function name, eg. PutUint32 +func NewStringFormatter(format string) (*stringFormatter, error) { + var fmter = &stringFormatter{} + + // Find the boundaries of all %{vars} + matches := formatRe.FindAllStringSubmatchIndex(format, -1) + if matches == nil { + return nil, errors.New("logger: invalid log format: " + format) + } + + // Collect all variables and static text for the format + prev := 0 + for _, m := range matches { + start, end := m[0], m[1] + if start > prev { + fmter.add(fmtVerbStatic, format[prev:start]) + } + + name := format[m[2]:m[3]] + verb := getFmtVerbByName(name) + if verb == fmtVerbUnknown { + return nil, errors.New("logger: unknown variable: " + name) + } + + // Handle layout customizations or use the default. If this is not for the + // time or color formatting, we need to prefix with %. + layout := defaultVerbsLayout[verb] + if m[4] != -1 { + layout = format[m[4]:m[5]] + } + if verb != fmtVerbTime && verb != fmtVerbLevelColor { + layout = "%" + layout + } + + fmter.add(verb, layout) + prev = end + } + end := format[prev:] + if end != "" { + fmter.add(fmtVerbStatic, end) + } + + // Make a test run to make sure we can format it correctly. + t, err := time.Parse(time.RFC3339, "2010-02-04T21:00:57-08:00") + if err != nil { + panic(err) + } + r := &Record{ + Id: 12345, + Time: t, + Module: "logger", + fmt: "hello %s", + args: []interface{}{"go"}, + } + if err := fmter.Format(0, r, &bytes.Buffer{}); err != nil { + return nil, err + } + + return fmter, nil +} + +// MustStringFormatter is equivalent to NewStringFormatter with a call to panic +// on error. +func MustStringFormatter(format string) *stringFormatter { + f, err := NewStringFormatter(format) + if err != nil { + panic("Failed to initialized string formatter: " + err.Error()) + } + return f +} + +func (f *stringFormatter) add(verb fmtVerb, layout string) { + f.parts = append(f.parts, part{verb, layout}) +} + +func (f *stringFormatter) Format(calldepth int, r *Record, output io.Writer) error { + for _, part := range f.parts { + if part.verb == fmtVerbStatic { + output.Write([]byte(part.layout)) + } else if part.verb == fmtVerbTime { + output.Write([]byte(r.Time.Format(part.layout))) + } else if part.verb == fmtVerbLevelColor { + if part.layout == "bold" { + output.Write([]byte(boldcolors[r.Level])) + } else if part.layout == "reset" { + output.Write([]byte("\033[0m")) + } else { + output.Write([]byte(colors[r.Level])) + } + } else { + var v interface{} + switch part.verb { + case fmtVerbLevel: + v = r.Level + break + case fmtVerbId: + v = r.Id + break + case fmtVerbPid: + v = pid + break + case fmtVerbProgram: + v = program + break + case fmtVerbModule: + v = r.Module + break + case fmtVerbMessage: + v = r.Message() + break + case fmtVerbLongfile, fmtVerbShortfile: + _, file, line, ok := runtime.Caller(calldepth + 1) + if !ok { + file = "???" + line = 0 + } else if part.verb == fmtVerbShortfile { + file = filepath.Base(file) + } + v = fmt.Sprintf("%s:%d", file, line) + case fmtVerbLongfunc, fmtVerbShortfunc, + fmtVerbLongpkg, fmtVerbShortpkg: + // TODO cache pc + v = "???" + if pc, _, _, ok := runtime.Caller(calldepth + 1); ok { + if f := runtime.FuncForPC(pc); f != nil { + v = formatFuncName(part.verb, f.Name()) + } + } + default: + panic("unhandled format part") + } + fmt.Fprintf(output, part.layout, v) + } + } + return nil +} + +// formatFuncName tries to extract certain part of the runtime formatted +// function name to some pre-defined variation. +// +// This function is known to not work properly if the package path or name +// contains a dot. +func formatFuncName(v fmtVerb, f string) string { + i := strings.LastIndex(f, "/") + j := strings.Index(f[i+1:], ".") + if j < 1 { + return "???" + } + pkg, fun := f[:i+j+1], f[i+j+2:] + switch v { + case fmtVerbLongpkg: + return pkg + case fmtVerbShortpkg: + return path.Base(pkg) + case fmtVerbLongfunc: + return fun + case fmtVerbShortfunc: + i = strings.LastIndex(fun, ".") + return fun[i+1:] + } + panic("unexpected func formatter") +} + +// backendFormatter combines a backend with a specific formatter making it +// possible to have different log formats for different backends. +type backendFormatter struct { + b Backend + f Formatter +} + +// NewBackendFormatter creates a new backend which makes all records that +// passes through it beeing formatted by the specific formatter. +func NewBackendFormatter(b Backend, f Formatter) *backendFormatter { + return &backendFormatter{b, f} +} + +// Log implements the Log function required by the Backend interface. +func (bf *backendFormatter) Log(level Level, calldepth int, r *Record) error { + // Make a shallow copy of the record and replace any formatter + r2 := *r + r2.formatter = bf.f + return bf.b.Log(level, calldepth+1, &r2) +} diff --git a/vendor/github.com/whyrusleeping/go-logging/level.go b/vendor/github.com/whyrusleeping/go-logging/level.go new file mode 100644 index 00000000..92934643 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/level.go @@ -0,0 +1,129 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package logging + +import ( + "errors" + "strings" + "sync" +) + +var ErrInvalidLogLevel = errors.New("logger: invalid log level") + +// Level defines all available log levels for log messages. +type Level int + +const ( + CRITICAL Level = iota + ERROR + WARNING + NOTICE + INFO + DEBUG +) + +var levelNames = []string{ + "CRITICAL", + "ERROR", + "WARNING", + "NOTICE", + "INFO", + "DEBUG", +} + +// String returns the string representation of a logging level. +func (p Level) String() string { + return levelNames[p] +} + +// LogLevel returns the log level from a string representation. +func LogLevel(level string) (Level, error) { + for i, name := range levelNames { + if strings.EqualFold(name, level) { + return Level(i), nil + } + } + return ERROR, ErrInvalidLogLevel +} + +type Leveled interface { + GetLevel(string) Level + SetLevel(Level, string) + IsEnabledFor(Level, string) bool +} + +// LeveledBackend is a log backend with additional knobs for setting levels on +// individual modules to different levels. +type LeveledBackend interface { + Backend + Leveled +} + +type moduleLeveled struct { + sync.RWMutex + levels map[string]Level + backend Backend + formatter Formatter + once sync.Once +} + +// AddModuleLevel wraps a log backend with knobs to have different log levels +// for different modules. +func AddModuleLevel(backend Backend) LeveledBackend { + var leveled LeveledBackend + var ok bool + if leveled, ok = backend.(LeveledBackend); !ok { + leveled = &moduleLeveled{ + levels: make(map[string]Level), + backend: backend, + } + } + return leveled +} + +// GetLevel returns the log level for the given module. +func (l *moduleLeveled) GetLevel(module string) Level { + l.RLock() + defer l.RUnlock() + level, exists := l.levels[module] + if exists == false { + level, exists = l.levels[""] + // no configuration exists, default to debug + if exists == false { + level = DEBUG + } + } + return level +} + +// SetLevel sets the log level for the given module. +func (l *moduleLeveled) SetLevel(level Level, module string) { + l.Lock() + defer l.Unlock() + l.levels[module] = level +} + +// IsEnabledFor will return true if logging is enabled for the given module. +func (l *moduleLeveled) IsEnabledFor(level Level, module string) bool { + return level <= l.GetLevel(module) +} + +func (l *moduleLeveled) Log(level Level, calldepth int, rec *Record) (err error) { + if l.IsEnabledFor(level, rec.Module) { + // TODO get rid of traces of formatter here. BackendFormatter should be used. + rec.formatter = l.getFormatterAndCacheCurrent() + err = l.backend.Log(level, calldepth+1, rec) + } + return +} + +func (l *moduleLeveled) getFormatterAndCacheCurrent() Formatter { + l.once.Do(func() { + if l.formatter == nil { + l.formatter = getFormatter() + } + }) + return l.formatter +} diff --git a/vendor/github.com/whyrusleeping/go-logging/log.go b/vendor/github.com/whyrusleeping/go-logging/log.go new file mode 100644 index 00000000..f009f8af --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/log.go @@ -0,0 +1,80 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package logging + +import ( + "bytes" + "fmt" + "io" + "log" +) + +// TODO initialize here +var colors []string +var boldcolors []string + +type color int + +const ( + colorBlack = (iota + 30) + colorRed + colorGreen + colorYellow + colorBlue + colorMagenta + colorCyan + colorWhite +) + +// LogBackend utilizes the standard log module. +type LogBackend struct { + Logger *log.Logger + Color bool +} + +// NewLogBackend creates a new LogBackend. +func NewLogBackend(out io.Writer, prefix string, flag int) *LogBackend { + return &LogBackend{Logger: log.New(out, prefix, flag)} +} + +func (b *LogBackend) Log(level Level, calldepth int, rec *Record) error { + if b.Color { + buf := &bytes.Buffer{} + buf.Write([]byte(colors[level])) + buf.Write([]byte(rec.Formatted(calldepth + 1))) + buf.Write([]byte("\033[0m")) + // For some reason, the Go logger arbitrarily decided "2" was the correct + // call depth... + return b.Logger.Output(calldepth+2, buf.String()) + } else { + return b.Logger.Output(calldepth+2, rec.Formatted(calldepth+1)) + } + panic("should not be reached") +} + +func colorSeq(color color) string { + return fmt.Sprintf("\033[%dm", int(color)) +} + +func colorSeqBold(color color) string { + return fmt.Sprintf("\033[%d;1m", int(color)) +} + +func init() { + colors = []string{ + CRITICAL: colorSeq(colorMagenta), + ERROR: colorSeq(colorRed), + WARNING: colorSeq(colorYellow), + NOTICE: colorSeq(colorGreen), + DEBUG: colorSeq(colorCyan), + } + boldcolors = []string{ + CRITICAL: colorSeqBold(colorMagenta), + ERROR: colorSeqBold(colorRed), + WARNING: colorSeqBold(colorYellow), + NOTICE: colorSeqBold(colorGreen), + DEBUG: colorSeqBold(colorCyan), + } +} diff --git a/vendor/github.com/whyrusleeping/go-logging/logger.go b/vendor/github.com/whyrusleeping/go-logging/logger.go new file mode 100644 index 00000000..42b49495 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/logger.go @@ -0,0 +1,279 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package logging implements a logging infrastructure for Go. It supports +// different logging backends like syslog, file and memory. Multiple backends +// can be utilized with different log levels per backend and logger. +package logging + +import ( + "bytes" + "fmt" + "log" + "os" + "strings" + "sync/atomic" + "time" +) + +// Redactor is an interface for types that may contain sensitive information +// (like passwords), which shouldn't be printed to the log. The idea was found +// in relog as part of the vitness project. +type Redactor interface { + Redacted() interface{} +} + +// Redact returns a string of * having the same length as s. +func Redact(s string) string { + return strings.Repeat("*", len(s)) +} + +var ( + // Sequence number is incremented and utilized for all log records created. + sequenceNo uint64 + + // timeNow is a customizable for testing purposes. + timeNow = time.Now +) + +// Record represents a log record and contains the timestamp when the record +// was created, an increasing id, filename and line and finally the actual +// formatted log line. +type Record struct { + Id uint64 + Time time.Time + Module string + Level Level + + // message is kept as a pointer to have shallow copies update this once + // needed. + message *string + args []interface{} + fmt string + formatter Formatter + formatted string +} + +// Formatted returns the string-formatted version of a record. +func (r *Record) Formatted(calldepth int) string { + if r.formatted == "" { + var buf bytes.Buffer + r.formatter.Format(calldepth+1, r, &buf) + r.formatted = buf.String() + } + return r.formatted +} + +// Message returns a string message for outputting. Redacts any record args +// that implement the Redactor interface +func (r *Record) Message() string { + if r.message == nil { + // Redact the arguments that implements the Redactor interface + for i, arg := range r.args { + if redactor, ok := arg.(Redactor); ok == true { + r.args[i] = redactor.Redacted() + } + } + msg := fmt.Sprintf(r.fmt, r.args...) + r.message = &msg + } + return *r.message +} + +// Logger is a logging unit. It controls the flow of messages to a given +// (swappable) backend. +type Logger struct { + Module string + backend LeveledBackend + haveBackend bool + + // ExtraCallDepth can be used to add additional call depth when getting the + // calling function. This is normally used when wrapping a logger. + ExtraCalldepth int +} + +// SetBackend changes the backend of the logger. +func (l *Logger) SetBackend(backend LeveledBackend) { + l.backend = backend + l.haveBackend = true +} + +// GetLogger creates and returns a Logger object based on the module name. +// TODO call NewLogger and remove MustGetLogger? +func GetLogger(module string) (*Logger, error) { + return &Logger{Module: module}, nil +} + +// MustGetLogger is like GetLogger but panics if the logger can't be created. +// It simplifies safe initialization of a global logger for eg. a package. +func MustGetLogger(module string) *Logger { + logger, err := GetLogger(module) + if err != nil { + panic("logger: " + module + ": " + err.Error()) + } + return logger +} + +// Reset restores the internal state of the logging library. +func Reset() { + // TODO make a global Init() method to be less magic? or make it such that + // if there's no backends at all configured, we could use some tricks to + // automatically setup backends based if we have a TTY or not. + sequenceNo = 0 + b := SetBackend(NewLogBackend(os.Stderr, "", log.LstdFlags)) + b.SetLevel(DEBUG, "") + SetFormatter(DefaultFormatter) + timeNow = time.Now +} + +// InitForTesting is a convenient method when using logging in a test. Once +// called, the time will be frozen to January 1, 1970 UTC. +func InitForTesting(level Level) *MemoryBackend { + Reset() + + memoryBackend := NewMemoryBackend(10240) + + leveledBackend := AddModuleLevel(memoryBackend) + leveledBackend.SetLevel(level, "") + SetBackend(leveledBackend) + + timeNow = func() time.Time { + return time.Unix(0, 0).UTC() + } + return memoryBackend +} + +// IsEnabledFor returns true if the logger is enabled for the given level. +func (l *Logger) IsEnabledFor(level Level) bool { + return defaultBackend.IsEnabledFor(level, l.Module) +} + +func (l *Logger) log(lvl Level, format string, args ...interface{}) { + if !l.IsEnabledFor(lvl) { + return + } + + // Create the logging record and pass it in to the backend + record := &Record{ + Id: atomic.AddUint64(&sequenceNo, 1), + Time: timeNow(), + Module: l.Module, + Level: lvl, + fmt: format, + args: args, + } + + // TODO use channels to fan out the records to all backends? + // TODO in case of errors, do something (tricky) + + // calldepth=2 brings the stack up to the caller of the level + // methods, Info(), Fatal(), etc. + // ExtraCallDepth allows this to be extended further up the stack in case we + // are wrapping these methods, eg. to expose them package level + if l.haveBackend { + l.backend.Log(lvl, 2+l.ExtraCalldepth, record) + return + } + + defaultBackend.Log(lvl, 2+l.ExtraCalldepth, record) +} + +// Fatal is equivalent to l.Critical(fmt.Sprint()) followed by a call to os.Exit(1). +func (l *Logger) Fatal(args ...interface{}) { + s := fmt.Sprint(args...) + l.log(CRITICAL, "%s", s) + os.Exit(1) +} + +// Fatalf is equivalent to l.Critical followed by a call to os.Exit(1). +func (l *Logger) Fatalf(format string, args ...interface{}) { + l.log(CRITICAL, format, args...) + os.Exit(1) +} + +// Panic is equivalent to l.Critical(fmt.Sprint()) followed by a call to panic(). +func (l *Logger) Panic(args ...interface{}) { + s := fmt.Sprint(args...) + l.log(CRITICAL, "%s", s) + panic(s) +} + +// Panicf is equivalent to l.Critical followed by a call to panic(). +func (l *Logger) Panicf(format string, args ...interface{}) { + s := fmt.Sprintf(format, args...) + l.log(CRITICAL, "%s", s) + panic(s) +} + +// Critical logs a message using CRITICAL as log level. (fmt.Sprint()) +func (l *Logger) Critical(args ...interface{}) { + l.log(CRITICAL, defaultArgsFormat(len(args)), args...) +} + +// Criticalf logs a message using CRITICAL as log level. +func (l *Logger) Criticalf(format string, args ...interface{}) { + l.log(CRITICAL, format, args...) +} + +// Error logs a message using ERROR as log level. (fmt.Sprint()) +func (l *Logger) Error(args ...interface{}) { + l.log(ERROR, defaultArgsFormat(len(args)), args...) +} + +// Errorf logs a message using ERROR as log level. +func (l *Logger) Errorf(format string, args ...interface{}) { + l.log(ERROR, format, args...) +} + +// Warning logs a message using WARNING as log level. +func (l *Logger) Warning(args ...interface{}) { + l.log(WARNING, defaultArgsFormat(len(args)), args...) +} + +// Warningf logs a message using WARNING as log level. +func (l *Logger) Warningf(format string, args ...interface{}) { + l.log(WARNING, format, args...) +} + +// Notice logs a message using NOTICE as log level. +func (l *Logger) Notice(args ...interface{}) { + l.log(NOTICE, defaultArgsFormat(len(args)), args...) +} + +// Noticef logs a message using NOTICE as log level. +func (l *Logger) Noticef(format string, args ...interface{}) { + l.log(NOTICE, format, args...) +} + +// Info logs a message using INFO as log level. +func (l *Logger) Info(args ...interface{}) { + l.log(INFO, defaultArgsFormat(len(args)), args...) +} + +// Infof logs a message using INFO as log level. +func (l *Logger) Infof(format string, args ...interface{}) { + l.log(INFO, format, args...) +} + +// Debug logs a message using DEBUG as log level. +func (l *Logger) Debug(args ...interface{}) { + l.log(DEBUG, defaultArgsFormat(len(args)), args...) +} + +// Debugf logs a message using DEBUG as log level. +func (l *Logger) Debugf(format string, args ...interface{}) { + l.log(DEBUG, format, args...) +} + +func defaultArgsFormat(argc int) string { + f := strings.Repeat("%s ", argc) + if argc > 0 { + f = f[:len(f) - 1] + } + return f +} + +func init() { + Reset() +} diff --git a/vendor/github.com/whyrusleeping/go-logging/memory.go b/vendor/github.com/whyrusleeping/go-logging/memory.go new file mode 100644 index 00000000..c59b92dd --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/memory.go @@ -0,0 +1,217 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package logging + +import ( + "sync" + "sync/atomic" + "unsafe" +) + +// TODO pick one of the memory backends and stick with it or share interface. + +// Node is a record node pointing to an optional next node. +type node struct { + next *node + Record *Record +} + +// Next returns the next record node. If there's no node available, it will +// return nil. +func (n *node) Next() *node { + return n.next +} + +// MemoryBackend is a simple memory based logging backend that will not produce +// any output but merly keep records, up to the given size, in memory. +type MemoryBackend struct { + size int32 + maxSize int32 + head, tail unsafe.Pointer +} + +// NewMemoryBackend creates a simple in-memory logging backend. +func NewMemoryBackend(size int) *MemoryBackend { + return &MemoryBackend{maxSize: int32(size)} +} + +// Log implements the Log method required by Backend. +func (b *MemoryBackend) Log(level Level, calldepth int, rec *Record) error { + var size int32 + + n := &node{Record: rec} + np := unsafe.Pointer(n) + + // Add the record to the tail. If there's no records available, tail and + // head will both be nil. When we successfully set the tail and the previous + // value was nil, it's safe to set the head to the current value too. + for { + tailp := b.tail + swapped := atomic.CompareAndSwapPointer( + &b.tail, + tailp, + np, + ) + if swapped == true { + if tailp == nil { + b.head = np + } else { + (*node)(tailp).next = n + } + size = atomic.AddInt32(&b.size, 1) + break + } + } + + // Since one record was added, we might have overflowed the list. Remove + // a record if that is the case. The size will fluctate a bit, but + // eventual consistent. + if b.maxSize > 0 && size > b.maxSize { + for { + headp := b.head + head := (*node)(b.head) + if head.next == nil { + break + } + swapped := atomic.CompareAndSwapPointer( + &b.head, + headp, + unsafe.Pointer(head.next), + ) + if swapped == true { + atomic.AddInt32(&b.size, -1) + break + } + } + } + return nil +} + +// Head returns the oldest record node kept in memory. It can be used to +// iterate over records, one by one, up to the last record. +// +// Note: new records can get added while iterating. Hence the number of records +// iterated over might be larger than the maximum size. +func (b *MemoryBackend) Head() *node { + return (*node)(b.head) +} + +type event int + +const ( + eventFlush event = iota + eventStop +) + +// ChannelMemoryBackend is very similar to the MemoryBackend, except that it +// internally utilizes a channel. +type ChannelMemoryBackend struct { + maxSize int + size int + incoming chan *Record + events chan event + mu sync.Mutex + running bool + flushWg sync.WaitGroup + stopWg sync.WaitGroup + head, tail *node +} + +// NewChannelMemoryBackend creates a simple in-memory logging backend which +// utilizes a go channel for communication. +// +// Start will automatically be called by this function. +func NewChannelMemoryBackend(size int) *ChannelMemoryBackend { + backend := &ChannelMemoryBackend{ + maxSize: size, + incoming: make(chan *Record, 1024), + events: make(chan event), + } + backend.Start() + return backend +} + +// Start launches the internal goroutine which starts processing data from the +// input channel. +func (b *ChannelMemoryBackend) Start() { + b.mu.Lock() + defer b.mu.Unlock() + + // Launch the goroutine unless it's already running. + if b.running != true { + b.running = true + b.stopWg.Add(1) + go b.process() + } +} + +func (b *ChannelMemoryBackend) process() { + defer b.stopWg.Done() + for { + select { + case rec := <-b.incoming: + b.insertRecord(rec) + case e := <-b.events: + switch e { + case eventStop: + return + case eventFlush: + for len(b.incoming) > 0 { + b.insertRecord(<-b.incoming) + } + b.flushWg.Done() + } + } + } +} + +func (b *ChannelMemoryBackend) insertRecord(rec *Record) { + prev := b.tail + b.tail = &node{Record: rec} + if prev == nil { + b.head = b.tail + } else { + prev.next = b.tail + } + + if b.maxSize > 0 && b.size >= b.maxSize { + b.head = b.head.next + } else { + b.size += 1 + } +} + +// Flush waits until all records in the buffered channel have been processed. +func (b *ChannelMemoryBackend) Flush() { + b.flushWg.Add(1) + b.events <- eventFlush + b.flushWg.Wait() +} + +// Stop signals the internal goroutine to exit and waits until it have. +func (b *ChannelMemoryBackend) Stop() { + b.mu.Lock() + if b.running == true { + b.running = false + b.events <- eventStop + } + b.mu.Unlock() + b.stopWg.Wait() +} + +// Log implements the Log method required by Backend. +func (b *ChannelMemoryBackend) Log(level Level, calldepth int, rec *Record) error { + b.incoming <- rec + return nil +} + +// Head returns the oldest record node kept in memory. It can be used to +// iterate over records, one by one, up to the last record. +// +// Note: new records can get added while iterating. Hence the number of records +// iterated over might be larger than the maximum size. +func (b *ChannelMemoryBackend) Head() *node { + return b.head +} diff --git a/vendor/github.com/whyrusleeping/go-logging/multi.go b/vendor/github.com/whyrusleeping/go-logging/multi.go new file mode 100644 index 00000000..3731653e --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/multi.go @@ -0,0 +1,65 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package logging + +// TODO remove Level stuff from the multi logger. Do one thing. + +// multiLogger is a log multiplexer which can be used to utilize multiple log +// backends at once. +type multiLogger struct { + backends []LeveledBackend +} + +// MultiLogger creates a logger which contain multiple loggers. +func MultiLogger(backends ...Backend) LeveledBackend { + var leveledBackends []LeveledBackend + for _, backend := range backends { + leveledBackends = append(leveledBackends, AddModuleLevel(backend)) + } + return &multiLogger{leveledBackends} +} + +// Log passes the log record to all backends. +func (b *multiLogger) Log(level Level, calldepth int, rec *Record) (err error) { + for _, backend := range b.backends { + if backend.IsEnabledFor(level, rec.Module) { + // Shallow copy of the record for the formatted cache on Record and get the + // record formatter from the backend. + r2 := *rec + if e := backend.Log(level, calldepth+1, &r2); e != nil { + err = e + } + } + } + return +} + +// GetLevel returns the highest level enabled by all backends. +func (b *multiLogger) GetLevel(module string) Level { + var level Level + for _, backend := range b.backends { + if backendLevel := backend.GetLevel(module); backendLevel > level { + level = backendLevel + } + } + return level +} + +// SetLevel propagates the same level to all backends. +func (b *multiLogger) SetLevel(level Level, module string) { + for _, backend := range b.backends { + backend.SetLevel(level, module) + } +} + +// IsEnabledFor returns true if any of the backends are enabled for it. +func (b *multiLogger) IsEnabledFor(level Level, module string) bool { + for _, backend := range b.backends { + if backend.IsEnabledFor(level, module) { + return true + } + } + return false +} diff --git a/vendor/github.com/whyrusleeping/go-logging/syslog.go b/vendor/github.com/whyrusleeping/go-logging/syslog.go new file mode 100644 index 00000000..9a5c8f5d --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-logging/syslog.go @@ -0,0 +1,52 @@ +// Copyright 2013, Örjan Persson. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//+build !windows,!plan9 + +package logging + +import "log/syslog" + +// SyslogBackend is a simple logger to syslog backend. It automatically maps +// the internal log levels to appropriate syslog log levels. +type SyslogBackend struct { + Writer *syslog.Writer +} + +// NewSyslogBackend connects to the syslog daemon using UNIX sockets with the +// given prefix. If prefix is not given, the prefix will be derived from the +// launched command. +func NewSyslogBackend(prefix string) (b *SyslogBackend, err error) { + var w *syslog.Writer + w, err = syslog.New(syslog.LOG_CRIT, prefix) + return &SyslogBackend{w}, err +} + +// NewSyslogBackendPriority is the same as NewSyslogBackend, but with custom +// syslog priority, like syslog.LOG_LOCAL3|syslog.LOG_DEBUG etc. +func NewSyslogBackendPriority(prefix string, priority syslog.Priority) (b *SyslogBackend, err error) { + var w *syslog.Writer + w, err = syslog.New(priority, prefix) + return &SyslogBackend{w}, err +} + +func (b *SyslogBackend) Log(level Level, calldepth int, rec *Record) error { + line := rec.Formatted(calldepth + 1) + switch level { + case CRITICAL: + return b.Writer.Crit(line) + case ERROR: + return b.Writer.Err(line) + case WARNING: + return b.Writer.Warning(line) + case NOTICE: + return b.Writer.Notice(line) + case INFO: + return b.Writer.Info(line) + case DEBUG: + return b.Writer.Debug(line) + default: + } + panic("unhandled log level") +} diff --git a/vendor/github.com/whyrusleeping/go-notifier/LICENSE b/vendor/github.com/whyrusleeping/go-notifier/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-notifier/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/go-notifier/notifier.go b/vendor/github.com/whyrusleeping/go-notifier/notifier.go new file mode 100644 index 00000000..33302cfd --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-notifier/notifier.go @@ -0,0 +1,146 @@ +// Package notifier provides a simple notification dispatcher +// meant to be embedded in larger structres who wish to allow +// clients to sign up for event notifications. +package notifier + +import ( + "sync" + + process "github.com/jbenet/goprocess" + ratelimit "github.com/jbenet/goprocess/ratelimit" +) + +// Notifiee is a generic interface. Clients implement +// their own Notifiee interfaces to ensure type-safety +// of notifications: +// +// type RocketNotifiee interface{ +// Countdown(r Rocket, countdown time.Duration) +// LiftedOff(Rocket) +// ReachedOrbit(Rocket) +// Detached(Rocket, Capsule) +// Landed(Rocket) +// } +// +type Notifiee interface{} + +// Notifier is a notification dispatcher. It's meant +// to be composed, and its zero-value is ready to be used. +// +// type Rocket struct { +// notifier notifier.Notifier +// } +// +type Notifier struct { + mu sync.RWMutex // guards notifiees + nots map[Notifiee]struct{} + lim *ratelimit.RateLimiter +} + +// RateLimited returns a rate limited Notifier. only limit goroutines +// will be spawned. If limit is zero, no rate limiting happens. This +// is the same as `Notifier{}`. +func RateLimited(limit int) Notifier { + n := Notifier{} + if limit > 0 { + n.lim = ratelimit.NewRateLimiter(process.Background(), limit) + } + return n +} + +// Notify signs up Notifiee e for notifications. This function +// is meant to be called behind your own type-safe function(s): +// +// // generic function for pattern-following +// func (r *Rocket) Notify(n Notifiee) { +// r.notifier.Notify(n) +// } +// +// // or as part of other functions +// func (r *Rocket) Onboard(a Astronaut) { +// r.astronauts = append(r.austronauts, a) +// r.notifier.Notify(a) +// } +// +func (n *Notifier) Notify(e Notifiee) { + n.mu.Lock() + if n.nots == nil { // so that zero-value is ready to be used. + n.nots = make(map[Notifiee]struct{}) + } + n.nots[e] = struct{}{} + n.mu.Unlock() +} + +// StopNotify stops notifying Notifiee e. This function +// is meant to be called behind your own type-safe function(s): +// +// // generic function for pattern-following +// func (r *Rocket) StopNotify(n Notifiee) { +// r.notifier.StopNotify(n) +// } +// +// // or as part of other functions +// func (r *Rocket) Detach(c Capsule) { +// r.notifier.StopNotify(c) +// r.capsule = nil +// } +// +func (n *Notifier) StopNotify(e Notifiee) { + n.mu.Lock() + if n.nots != nil { // so that zero-value is ready to be used. + delete(n.nots, e) + } + n.mu.Unlock() +} + +// NotifyAll messages the notifier's notifiees with a given notification. +// This is done by calling the given function with each notifiee. It is +// meant to be called with your own type-safe notification functions: +// +// func (r *Rocket) Launch() { +// r.notifyAll(func(n Notifiee) { +// n.Launched(r) +// }) +// } +// +// // make it private so only you can use it. This function is necessary +// // to make sure you only up-cast in one place. You control who you added +// // to be a notifiee. If Go adds generics, maybe we can get rid of this +// // method but for now it is like wrapping a type-less container with +// // a type safe interface. +// func (r *Rocket) notifyAll(notify func(Notifiee)) { +// r.notifier.NotifyAll(func(n notifier.Notifiee) { +// notify(n.(Notifiee)) +// }) +// } +// +// Note well: each notification is launched in its own goroutine, so they +// can be processed concurrently, and so that whatever the notification does +// it _never_ blocks out the client. This is so that consumers _cannot_ add +// hooks into your object that block you accidentally. +func (n *Notifier) NotifyAll(notify func(Notifiee)) { + n.mu.Lock() + defer n.mu.Unlock() + + if n.nots == nil { // so that zero-value is ready to be used. + return + } + + // no rate limiting. + if n.lim == nil { + for notifiee := range n.nots { + go notify(notifiee) + } + return + } + + // with rate limiting. + n.lim.Go(func(worker process.Process) { + for notifiee := range n.nots { + notifiee := notifiee // rebind for loop data races + n.lim.LimitedGo(func(worker process.Process) { + notify(notifiee) + }) + } + }) +} diff --git a/vendor/github.com/whyrusleeping/go-notifier/package.json b/vendor/github.com/whyrusleeping/go-notifier/package.json new file mode 100644 index 00000000..8eba8f55 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-notifier/package.json @@ -0,0 +1,24 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/go-notifier" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/go-notifier" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP", + "name": "goprocess", + "version": "1.0.0" + } + ], + "gxVersion": "0.9.1", + "language": "go", + "license": "", + "name": "go-notifier", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.0.0" +} + diff --git a/vendor/github.com/whyrusleeping/go-smux-multiplex/.gitignore b/vendor/github.com/whyrusleeping/go-smux-multiplex/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multiplex/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/whyrusleeping/go-smux-multiplex/LICENSE b/vendor/github.com/whyrusleeping/go-smux-multiplex/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multiplex/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/go-smux-multiplex/Makefile b/vendor/github.com/whyrusleeping/go-smux-multiplex/Makefile new file mode 100644 index 00000000..3907e857 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multiplex/Makefile @@ -0,0 +1,19 @@ +build: deps + go build ./... + +test: deps + go test ./... + +test_race: deps + go test -race ./... + +gx-bins: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx-bins + gx --verbose install --global + gx-go rewrite + +clean: gx-bins + gx-go rewrite --undo diff --git a/vendor/github.com/whyrusleeping/go-smux-multiplex/README.md b/vendor/github.com/whyrusleeping/go-smux-multiplex/README.md new file mode 100644 index 00000000..4011314f --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multiplex/README.md @@ -0,0 +1,13 @@ +# go-smux-multiplex - a go-stream-muxer shim for multiplex + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) ![](https://raw.githubusercontent.com/libp2p/go-stream-muxer/master/img/badge.png) + +This is an implementation of the [go-stream-muxer](https://github.com/libp2p/go-stream-muxer) interface for [multiplex](https://github.com/libp2p/go-mplex). For more information, see that repo. + +## Installation + +```sh +go get -d github.com/whyrusleeping/go-smux-multiplex +cd $GOPATH/src/github.com/whyrusleeping/go-smux-multiplex +make deps +``` diff --git a/vendor/github.com/whyrusleeping/go-smux-multiplex/multiplex.go b/vendor/github.com/whyrusleeping/go-smux-multiplex/multiplex.go new file mode 100644 index 00000000..1cef4ef3 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multiplex/multiplex.go @@ -0,0 +1,41 @@ +package peerstream_multiplex + +import ( + "net" + + mp "github.com/libp2p/go-mplex" // Conn is a connection to a remote peer. + smux "github.com/libp2p/go-stream-muxer" // Conn is a connection to a remote peer. +) + +type conn struct { + *mp.Multiplex +} + +func (c *conn) Close() error { + return c.Multiplex.Close() +} + +func (c *conn) IsClosed() bool { + return c.Multiplex.IsClosed() +} + +// OpenStream creates a new stream. +func (c *conn) OpenStream() (smux.Stream, error) { + return c.Multiplex.NewStream() +} + +// AcceptStream accepts a stream opened by the other side. +func (c *conn) AcceptStream() (smux.Stream, error) { + return c.Multiplex.Accept() +} + +// Transport is a go-peerstream transport that constructs +// multiplex-backed connections. +type Transport struct{} + +// DefaultTransport has default settings for multiplex +var DefaultTransport = &Transport{} + +func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { + return &conn{mp.NewMultiplex(nc, isServer)}, nil +} diff --git a/vendor/github.com/whyrusleeping/go-smux-multiplex/package.json b/vendor/github.com/whyrusleeping/go-smux-multiplex/package.json new file mode 100644 index 00000000..4eadee98 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multiplex/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/go-smux-multiplex" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/go-smux-multiplex" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmY9JXR3FupnYAYJWK9aMr9bCpqWKcToQ1tz8DVGTrHpHw", + "name": "go-stream-muxer", + "version": "3.0.0" + }, + { + "author": "whyrusleeping", + "hash": "QmP5tygNbeAH5Z8sGdrnE9rqqkAVYotam3UAgRWWfL2zur", + "name": "go-mplex", + "version": "0.2.30" + } + ], + "gxVersion": "0.7.0", + "language": "go", + "license": "MIT", + "name": "go-smux-multiplex", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "3.0.16" +} + diff --git a/vendor/github.com/whyrusleeping/go-smux-multistream/.gitignore b/vendor/github.com/whyrusleeping/go-smux-multistream/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multistream/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/whyrusleeping/go-smux-multistream/LICENSE b/vendor/github.com/whyrusleeping/go-smux-multistream/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multistream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/go-smux-multistream/Makefile b/vendor/github.com/whyrusleeping/go-smux-multistream/Makefile new file mode 100644 index 00000000..3907e857 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multistream/Makefile @@ -0,0 +1,19 @@ +build: deps + go build ./... + +test: deps + go test ./... + +test_race: deps + go test -race ./... + +gx-bins: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx-bins + gx --verbose install --global + gx-go rewrite + +clean: gx-bins + gx-go rewrite --undo diff --git a/vendor/github.com/whyrusleeping/go-smux-multistream/README.md b/vendor/github.com/whyrusleeping/go-smux-multistream/README.md new file mode 100644 index 00000000..393ab1df --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multistream/README.md @@ -0,0 +1,13 @@ +# go-smux-multistream - a go-stream-muxer shim for multistream + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) ![](https://raw.githubusercontent.com/libp2p/go-stream-muxer/master/img/badge.png) + +This is an implementation of the [go-stream-muxer](https://github.com/libp2p/go-stream-muxer) interface for [multistream](https://github.com/whyrusleeping/go-multistream). For more information, see that repo. + +## Installation + +```sh +go get -d github.com/whyrusleeping/go-smux-multistream +cd $GOPATH/src/github.com/whyrusleeping/go-smux-multistream +make deps +``` diff --git a/vendor/github.com/whyrusleeping/go-smux-multistream/multistream.go b/vendor/github.com/whyrusleeping/go-smux-multistream/multistream.go new file mode 100644 index 00000000..ad453a99 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multistream/multistream.go @@ -0,0 +1,74 @@ +// package multistream implements a peerstream transport using +// go-multistream to select the underlying stream muxer +package multistream + +import ( + "fmt" + "net" + "time" + + smux "github.com/libp2p/go-stream-muxer" + mss "github.com/multiformats/go-multistream" +) + +var DefaultNegotiateTimeout = time.Second * 60 + +type Transport struct { + mux *mss.MultistreamMuxer + + tpts map[string]smux.Transport + + NegotiateTimeout time.Duration + + OrderPreference []string +} + +func NewBlankTransport() *Transport { + return &Transport{ + mux: mss.NewMultistreamMuxer(), + tpts: make(map[string]smux.Transport), + NegotiateTimeout: DefaultNegotiateTimeout, + } +} + +func (t *Transport) AddTransport(path string, tpt smux.Transport) { + t.mux.AddHandler(path, nil) + t.tpts[path] = tpt + t.OrderPreference = append(t.OrderPreference, path) +} + +func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { + if t.NegotiateTimeout != 0 { + if err := nc.SetDeadline(time.Now().Add(t.NegotiateTimeout)); err != nil { + return nil, err + } + } + + var proto string + if isServer { + selected, _, err := t.mux.Negotiate(nc) + if err != nil { + return nil, err + } + proto = selected + } else { + selected, err := mss.SelectOneOf(t.OrderPreference, nc) + if err != nil { + return nil, err + } + proto = selected + } + + if t.NegotiateTimeout != 0 { + if err := nc.SetDeadline(time.Time{}); err != nil { + return nil, err + } + } + + tpt, ok := t.tpts[proto] + if !ok { + return nil, fmt.Errorf("selected protocol we don't have a transport for") + } + + return tpt.NewConn(nc, isServer) +} diff --git a/vendor/github.com/whyrusleeping/go-smux-multistream/package.json b/vendor/github.com/whyrusleeping/go-smux-multistream/package.json new file mode 100644 index 00000000..f3949413 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-multistream/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/go-smux-multistream" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/go-smux-multistream" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmabLh8TrJ3emfAoQk5AbqbLTbMyj7XqumMFmAFxa9epo8", + "name": "go-multistream", + "version": "0.3.9" + }, + { + "author": "whyrusleeping", + "hash": "QmY9JXR3FupnYAYJWK9aMr9bCpqWKcToQ1tz8DVGTrHpHw", + "name": "go-stream-muxer", + "version": "3.0.0" + } + ], + "gxVersion": "0.7.0", + "language": "go", + "license": "", + "name": "go-smux-multistream", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.2" +} + diff --git a/vendor/github.com/whyrusleeping/go-smux-yamux/.gitignore b/vendor/github.com/whyrusleeping/go-smux-yamux/.gitignore new file mode 100644 index 00000000..1377554e --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-yamux/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/vendor/github.com/whyrusleeping/go-smux-yamux/LICENSE b/vendor/github.com/whyrusleeping/go-smux-yamux/LICENSE new file mode 100644 index 00000000..c7386b3c --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-yamux/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Juan Batiz-Benet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/go-smux-yamux/Makefile b/vendor/github.com/whyrusleeping/go-smux-yamux/Makefile new file mode 100644 index 00000000..3907e857 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-yamux/Makefile @@ -0,0 +1,19 @@ +build: deps + go build ./... + +test: deps + go test ./... + +test_race: deps + go test -race ./... + +gx-bins: + go get github.com/whyrusleeping/gx + go get github.com/whyrusleeping/gx-go + +deps: gx-bins + gx --verbose install --global + gx-go rewrite + +clean: gx-bins + gx-go rewrite --undo diff --git a/vendor/github.com/whyrusleeping/go-smux-yamux/README.md b/vendor/github.com/whyrusleeping/go-smux-yamux/README.md new file mode 100644 index 00000000..cbf3e2e5 --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-yamux/README.md @@ -0,0 +1,13 @@ +# go-smux-multistream - a go-stream-muxer shim for multistream + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) ![](https://raw.githubusercontent.com/libp2p/go-stream-muxer/master/img/badge.png) + +This is an implementation of the [go-stream-muxer](https://github.com/libp2p/go-stream-muxer) interface for [multistream](https://github.com/whyrusleeping/go-multistream). For more information, see that repo. + +## Installation + +```sh +go get -d github.com/whyrusleeping/go-smux-yamux +cd $GOPATH/src/github.com/whyrusleeping/go-smux-yamux +make deps +``` diff --git a/vendor/github.com/whyrusleeping/go-smux-yamux/package.json b/vendor/github.com/whyrusleeping/go-smux-yamux/package.json new file mode 100644 index 00000000..e227012c --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-yamux/package.json @@ -0,0 +1,30 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/go-smux-yamux" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/go-smux-yamux" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmUNMbRUsVYHi1D14annF7Rr7pQAX7TNLwpRCa975ojKnw", + "name": "yamux", + "version": "1.1.5" + }, + { + "author": "whyrusleeping", + "hash": "QmVtV1y2e8W4eQgzsP6qfSpCCZ6zWYE4m6NzJjB7iswwrT", + "name": "go-stream-muxer", + "version": "3.1.0" + } + ], + "gxVersion": "0.7.0", + "language": "go", + "license": "", + "name": "go-smux-yamux", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "2.0.9" +} + diff --git a/vendor/github.com/whyrusleeping/go-smux-yamux/yamux.go b/vendor/github.com/whyrusleeping/go-smux-yamux/yamux.go new file mode 100644 index 00000000..12212eeb --- /dev/null +++ b/vendor/github.com/whyrusleeping/go-smux-yamux/yamux.go @@ -0,0 +1,75 @@ +package sm_yamux + +import ( + "io/ioutil" + "net" + "time" + + smux "github.com/libp2p/go-stream-muxer" + yamux "github.com/whyrusleeping/yamux" +) + +// Conn is a connection to a remote peer. +type conn yamux.Session + +func (c *conn) yamuxSession() *yamux.Session { + return (*yamux.Session)(c) +} + +func (c *conn) Close() error { + return c.yamuxSession().Close() +} + +func (c *conn) IsClosed() bool { + return c.yamuxSession().IsClosed() +} + +// OpenStream creates a new stream. +func (c *conn) OpenStream() (smux.Stream, error) { + s, err := c.yamuxSession().OpenStream() + if err != nil { + return nil, err + } + + return s, nil +} + +// AcceptStream accepts a stream opened by the other side. +func (c *conn) AcceptStream() (smux.Stream, error) { + s, err := c.yamuxSession().AcceptStream() + return s, err +} + +// Transport is a go-peerstream transport that constructs +// yamux-backed connections. +type Transport yamux.Config + +// DefaultTransport has default settings for yamux +var DefaultTransport = (*Transport)(&yamux.Config{ + AcceptBacklog: 256, // from yamux.DefaultConfig + EnableKeepAlive: true, // from yamux.DefaultConfig + KeepAliveInterval: 30 * time.Second, // from yamux.DefaultConfig + ConnectionWriteTimeout: 10 * time.Second, // from yamux.DefaultConfig + // We've bumped this to 1MiB as this critically limits throughput. + // + // 1MiB means a best case of 10MiB/s (83.89Mbps) on a connection with + // 100ms latency. The default gave us 2.4MiB *best case* which was + // totally unacceptable. + MaxStreamWindowSize: uint32(1024 * 1024), + LogOutput: ioutil.Discard, +}) + +func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { + var s *yamux.Session + var err error + if isServer { + s, err = yamux.Server(nc, t.Config()) + } else { + s, err = yamux.Client(nc, t.Config()) + } + return (*conn)(s), err +} + +func (t *Transport) Config() *yamux.Config { + return (*yamux.Config)(t) +} diff --git a/vendor/github.com/whyrusleeping/mafmt/LICENSE b/vendor/github.com/whyrusleeping/mafmt/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/whyrusleeping/mafmt/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/mafmt/README.md b/vendor/github.com/whyrusleeping/mafmt/README.md new file mode 100644 index 00000000..9fdc5389 --- /dev/null +++ b/vendor/github.com/whyrusleeping/mafmt/README.md @@ -0,0 +1,34 @@ +# multiaddr format +A validation checker for multiaddrs. Some basic validators for common address +types are provided, but creating your own combinations is easy. + +Usage: +```go +a, _ := ma.NewMultiaddr("/ip4/5.2.67.3/tcp/1708") +TCP.Matches(a) // returns true +``` + +Making your own validators is easy, for example, the `Reliable` multiaddr is +defined as follows: + +```go +// Define IP as either ipv4 or ipv6 +var IP = Or(Base(ma.P_IP4), Base(ma.P_IP6)) + +// Define TCP as 'tcp' on top of either ipv4 or ipv6 +var TCP = And(IP, Base(ma.P_TCP)) + +// Define UDP as 'udp' on top of either ipv4 or ipv6 +var UDP = And(IP, Base(ma.P_UDP)) + +// Define UTP as 'utp' on top of udp (on top of ipv4 or ipv6) +var UTP = And(UDP, Base(ma.P_UTP)) + +// Now define a Reliable transport as either tcp or utp +var Reliable = Or(TCP, UTP) + +// From here, we can easily define multiaddrs for protocols that can run on top +// of any 'reliable' transport (such as ipfs) +``` + +NOTE: the above patterns are already implemented in package diff --git a/vendor/github.com/whyrusleeping/mafmt/package.json b/vendor/github.com/whyrusleeping/mafmt/package.json new file mode 100644 index 00000000..d5a7375b --- /dev/null +++ b/vendor/github.com/whyrusleeping/mafmt/package.json @@ -0,0 +1,24 @@ +{ + "author": "whyrusleeping", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/whyrusleeping/mafmt" + }, + "gxDependencies": [ + { + "author": "whyrusleeping", + "hash": "QmT4U94DnD8FRfqr21obWY32HLM5VExccPKMjQHofeYqr9", + "name": "go-multiaddr", + "version": "1.3.5" + } + ], + "gxVersion": "0.6.0", + "gx_version": "0.4.0", + "issues_url": "https://github.com/whyrusleeping/mafmt", + "language": "go", + "license": "", + "name": "mafmt", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.2.8" +} + diff --git a/vendor/github.com/whyrusleeping/mafmt/patterns.go b/vendor/github.com/whyrusleeping/mafmt/patterns.go new file mode 100644 index 00000000..c3d19120 --- /dev/null +++ b/vendor/github.com/whyrusleeping/mafmt/patterns.go @@ -0,0 +1,133 @@ +package mafmt + +import ( + "strings" + + ma "github.com/multiformats/go-multiaddr" +) + +// Define IP as either ipv4 or ipv6 +var IP = Or(Base(ma.P_IP4), Base(ma.P_IP6)) + +// Define TCP as 'tcp' on top of either ipv4 or ipv6 +var TCP = And(IP, Base(ma.P_TCP)) + +// Define UDP as 'udp' on top of either ipv4 or ipv6 +var UDP = And(IP, Base(ma.P_UDP)) + +// Define UTP as 'utp' on top of udp (on top of ipv4 or ipv6) +var UTP = And(UDP, Base(ma.P_UTP)) + +// Define QUIC as 'quic' on top of udp (on top of ipv4 or ipv6) +var QUIC = And(UDP, Base(ma.P_QUIC)) + +// Define unreliable transport as udp +var Unreliable = Or(UDP) + +// Now define a Reliable transport as either tcp or utp or quic +var Reliable = Or(TCP, UTP, QUIC) + +// IPFS can run over any reliable underlying transport protocol +var IPFS = And(Reliable, Base(ma.P_IPFS)) + +const ( + or = iota + and = iota +) + +func And(ps ...Pattern) Pattern { + return &pattern{ + Op: and, + Args: ps, + } +} + +func Or(ps ...Pattern) Pattern { + return &pattern{ + Op: or, + Args: ps, + } +} + +type Pattern interface { + Matches(ma.Multiaddr) bool + partialMatch([]ma.Protocol) (bool, []ma.Protocol) + String() string +} + +type pattern struct { + Args []Pattern + Op int +} + +func (ptrn *pattern) Matches(a ma.Multiaddr) bool { + ok, rem := ptrn.partialMatch(a.Protocols()) + return ok && len(rem) == 0 +} + +func (ptrn *pattern) partialMatch(pcs []ma.Protocol) (bool, []ma.Protocol) { + switch ptrn.Op { + case or: + for _, a := range ptrn.Args { + ok, rem := a.partialMatch(pcs) + if ok { + return true, rem + } + } + return false, nil + case and: + if len(pcs) < len(ptrn.Args) { + return false, nil + } + + for i := 0; i < len(ptrn.Args); i++ { + ok, rem := ptrn.Args[i].partialMatch(pcs) + if !ok { + return false, nil + } + + pcs = rem + } + + return true, pcs + default: + panic("unrecognized pattern operand") + } +} + +func (ptrn *pattern) String() string { + var sub []string + for _, a := range ptrn.Args { + sub = append(sub, a.String()) + } + + switch ptrn.Op { + case and: + return strings.Join(sub, "/") + case or: + return "{" + strings.Join(sub, "|") + "}" + default: + panic("unrecognized pattern op!") + } +} + +type Base int + +func (p Base) Matches(a ma.Multiaddr) bool { + pcs := a.Protocols() + return pcs[0].Code == int(p) && len(pcs) == 1 +} + +func (p Base) partialMatch(pcs []ma.Protocol) (bool, []ma.Protocol) { + if len(pcs) == 0 { + return false, nil + } + if pcs[0].Code == int(p) { + return true, pcs[1:] + } + return false, nil +} + +func (p Base) String() string { + return ma.ProtocolWithCode(int(p)).Name +} diff --git a/vendor/github.com/whyrusleeping/mdns/.gitignore b/vendor/github.com/whyrusleeping/mdns/.gitignore new file mode 100644 index 00000000..83656241 --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/.gitignore @@ -0,0 +1,23 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test diff --git a/vendor/github.com/whyrusleeping/mdns/LICENSE b/vendor/github.com/whyrusleeping/mdns/LICENSE new file mode 100644 index 00000000..a5df10e6 --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Armon Dadgar + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/mdns/README.md b/vendor/github.com/whyrusleeping/mdns/README.md new file mode 100644 index 00000000..80f3d90a --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/README.md @@ -0,0 +1,37 @@ +mdns +==== + +Simple mDNS client/server library in Golang. mDNS or Multicast DNS can be +used to discover services on the local network without the use of an authoritative +DNS server. This enables peer-to-peer discovery. It is important to note that many +networks restrict the use of multicasting, which prevents mDNS from functioning. +Notably, multicast cannot be used in any sort of cloud, or shared infrastructure +environment. However it works well in most office, home, or private infrastructure +environments. + +Using the library is very simple, here is an example of publishing a service entry: + + // Setup our service export + host, _ := os.Hostname() + info := []string{"My awesome service"}, + service, _ := NewMDNSService(host, "_foobar._tcp", "", "", 8000, nil, info) + + // Create the mDNS server, defer shutdown + server, _ := mdns.NewServer(&mdns.Config{Zone: service}) + defer server.Shutdown() + + +Doing a lookup for service providers is also very simple: + + // Make a channel for results and start listening + entriesCh := make(chan *mdns.ServiceEntry, 4) + go func() { + for entry := range entriesCh { + fmt.Printf("Got new entry: %v\n", entry) + } + }() + + // Start the lookup + mdns.Lookup("_foobar._tcp", entriesCh) + close(entriesCh) + diff --git a/vendor/github.com/whyrusleeping/mdns/client.go b/vendor/github.com/whyrusleeping/mdns/client.go new file mode 100644 index 00000000..3fad4f2d --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/client.go @@ -0,0 +1,369 @@ +package mdns + +import ( + "fmt" + "net" + "strings" + "sync" + "time" + + "github.com/miekg/dns" + "golang.org/x/net/ipv4" + "golang.org/x/net/ipv6" +) + +// ServiceEntry is returned after we query for a service +type ServiceEntry struct { + Name string + Host string + AddrV4 net.IP + AddrV6 net.IP + Port int + Info string + InfoFields []string + + Addr net.IP // @Deprecated + + hasTXT bool + sent bool +} + +// complete is used to check if we have all the info we need +func (s *ServiceEntry) complete() bool { + return (s.AddrV4 != nil || s.AddrV6 != nil || s.Addr != nil) && s.Port != 0 && s.hasTXT +} + +// QueryParam is used to customize how a Lookup is performed +type QueryParam struct { + Service string // Service to lookup + Domain string // Lookup domain, default "local" + Timeout time.Duration // Lookup timeout, default 1 second + Interface *net.Interface // Multicast interface to use + Entries chan<- *ServiceEntry // Entries Channel + WantUnicastResponse bool // Unicast response desired, as per 5.4 in RFC +} + +// DefaultParams is used to return a default set of QueryParam's +func DefaultParams(service string) *QueryParam { + return &QueryParam{ + Service: service, + Domain: "local", + Timeout: time.Second, + Entries: make(chan *ServiceEntry), + WantUnicastResponse: false, // TODO(reddaly): Change this default. + } +} + +// Query looks up a given service, in a domain, waiting at most +// for a timeout before finishing the query. The results are streamed +// to a channel. Sends will not block, so clients should make sure to +// either read or buffer. +func Query(params *QueryParam) error { + // Create a new client + client, err := newClient() + if err != nil { + return err + } + defer client.Close() + + // Set the multicast interface + if params.Interface != nil { + if err := client.setInterface(params.Interface); err != nil { + return err + } + } + + // Ensure defaults are set + if params.Domain == "" { + params.Domain = "local" + } + if params.Timeout == 0 { + params.Timeout = time.Second + } + + // Run the query + return client.query(params) +} + +// Lookup is the same as Query, however it uses all the default parameters +func Lookup(service string, entries chan<- *ServiceEntry) error { + params := DefaultParams(service) + params.Entries = entries + return Query(params) +} + +// Client provides a query interface that can be used to +// search for service providers using mDNS +type client struct { + ipv4UnicastConn *net.UDPConn + ipv6UnicastConn *net.UDPConn + + ipv4MulticastConn *net.UDPConn + ipv6MulticastConn *net.UDPConn + + closed bool + closedCh chan struct{} // TODO(reddaly): This doesn't appear to be used. + closeLock sync.Mutex +} + +// NewClient creates a new mdns Client that can be used to query +// for records +func newClient() (*client, error) { + // TODO(reddaly): At least attempt to bind to the port required in the spec. + // Create a IPv4 listener + uconn4, err := net.ListenUDP("udp4", &net.UDPAddr{IP: net.IPv4zero, Port: 0}) + if err != nil { + logf("[ERR] mdns: Failed to bind to udp4 port: %v", err) + } + uconn6, err := net.ListenUDP("udp6", &net.UDPAddr{IP: net.IPv6zero, Port: 0}) + if err != nil { + logf("[ERR] mdns: Failed to bind to udp6 port: %v", err) + } + + if uconn4 == nil && uconn6 == nil { + return nil, fmt.Errorf("failed to bind to any unicast udp port") + } + + mconn4, err := net.ListenMulticastUDP("udp4", nil, ipv4Addr) + if err != nil { + logf("[ERR] mdns: Failed to bind to udp4 port: %v", err) + } + mconn6, err := net.ListenMulticastUDP("udp6", nil, ipv6Addr) + if err != nil { + logf("[ERR] mdns: Failed to bind to udp6 port: %v", err) + } + + if mconn4 == nil && mconn6 == nil { + return nil, fmt.Errorf("failed to bind to any multicast udp port") + } + + c := &client{ + ipv4MulticastConn: mconn4, + ipv6MulticastConn: mconn6, + ipv4UnicastConn: uconn4, + ipv6UnicastConn: uconn6, + closedCh: make(chan struct{}), + } + return c, nil +} + +func (c *client) getIsClosed() bool { + c.closeLock.Lock() + defer c.closeLock.Unlock() + return c.closed +} + +// Close is used to cleanup the client +func (c *client) Close() error { + c.closeLock.Lock() + defer c.closeLock.Unlock() + + if c.closed { + return nil + } + c.closed = true + + logf("[INFO] mdns: Closing client %v", *c) + close(c.closedCh) + + if c.ipv4UnicastConn != nil { + c.ipv4UnicastConn.Close() + } + if c.ipv6UnicastConn != nil { + c.ipv6UnicastConn.Close() + } + if c.ipv4MulticastConn != nil { + c.ipv4MulticastConn.Close() + } + if c.ipv6MulticastConn != nil { + c.ipv6MulticastConn.Close() + } + + return nil +} + +// setInterface is used to set the query interface, uses sytem +// default if not provided +func (c *client) setInterface(iface *net.Interface) error { + p := ipv4.NewPacketConn(c.ipv4UnicastConn) + if err := p.SetMulticastInterface(iface); err != nil { + return err + } + p2 := ipv6.NewPacketConn(c.ipv6UnicastConn) + if err := p2.SetMulticastInterface(iface); err != nil { + return err + } + p = ipv4.NewPacketConn(c.ipv4MulticastConn) + if err := p.SetMulticastInterface(iface); err != nil { + return err + } + p2 = ipv6.NewPacketConn(c.ipv6MulticastConn) + if err := p2.SetMulticastInterface(iface); err != nil { + return err + } + return nil +} + +// query is used to perform a lookup and stream results +func (c *client) query(params *QueryParam) error { + // Create the service name + serviceAddr := fmt.Sprintf("%s.%s.", trimDot(params.Service), trimDot(params.Domain)) + + // Start listening for response packets + msgCh := make(chan *dns.Msg, 32) + go c.recv(c.ipv4UnicastConn, msgCh) + go c.recv(c.ipv6UnicastConn, msgCh) + go c.recv(c.ipv4MulticastConn, msgCh) + go c.recv(c.ipv6MulticastConn, msgCh) + + // Send the query + m := new(dns.Msg) + m.SetQuestion(serviceAddr, dns.TypePTR) + // RFC 6762, section 18.12. Repurposing of Top Bit of qclass in Question + // Section + // + // In the Question Section of a Multicast DNS query, the top bit of the qclass + // field is used to indicate that unicast responses are preferred for this + // particular question. (See Section 5.4.) + if params.WantUnicastResponse { + m.Question[0].Qclass |= 1 << 15 + } + m.RecursionDesired = false + if err := c.sendQuery(m); err != nil { + return err + } + + // Map the in-progress responses + inprogress := make(map[string]*ServiceEntry) + + // Listen until we reach the timeout + finish := time.After(params.Timeout) + for { + select { + case resp := <-msgCh: + var inp *ServiceEntry + for _, answer := range append(resp.Answer, resp.Extra...) { + // TODO(reddaly): Check that response corresponds to serviceAddr? + switch rr := answer.(type) { + case *dns.PTR: + // Create new entry for this + inp = ensureName(inprogress, rr.Ptr) + + case *dns.SRV: + // Check for a target mismatch + if rr.Target != rr.Hdr.Name { + alias(inprogress, rr.Hdr.Name, rr.Target) + } + + // Get the port + inp = ensureName(inprogress, rr.Hdr.Name) + inp.Host = rr.Target + inp.Port = int(rr.Port) + + case *dns.TXT: + // Pull out the txt + inp = ensureName(inprogress, rr.Hdr.Name) + inp.Info = strings.Join(rr.Txt, "|") + inp.InfoFields = rr.Txt + inp.hasTXT = true + + case *dns.A: + // Pull out the IP + inp = ensureName(inprogress, rr.Hdr.Name) + inp.Addr = rr.A // @Deprecated + inp.AddrV4 = rr.A + + case *dns.AAAA: + // Pull out the IP + inp = ensureName(inprogress, rr.Hdr.Name) + inp.Addr = rr.AAAA // @Deprecated + inp.AddrV6 = rr.AAAA + } + } + + if inp == nil { + continue + } + + // Check if this entry is complete + if inp.complete() { + if inp.sent { + continue + } + inp.sent = true + select { + case params.Entries <- inp: + default: + } + } else { + // Fire off a node specific query + m := new(dns.Msg) + m.SetQuestion(inp.Name, dns.TypePTR) + m.RecursionDesired = false + if err := c.sendQuery(m); err != nil { + logf("[ERR] mdns: Failed to query instance %s: %v", inp.Name, err) + } + } + case <-finish: + return nil + } + } +} + +// sendQuery is used to multicast a query out +func (c *client) sendQuery(q *dns.Msg) error { + buf, err := q.Pack() + if err != nil { + return err + } + if c.ipv4UnicastConn != nil { + c.ipv4UnicastConn.WriteToUDP(buf, ipv4Addr) + } + if c.ipv6UnicastConn != nil { + c.ipv6UnicastConn.WriteToUDP(buf, ipv6Addr) + } + return nil +} + +// recv is used to receive until we get a shutdown +func (c *client) recv(l *net.UDPConn, msgCh chan *dns.Msg) { + if l == nil { + return + } + buf := make([]byte, 65536) + for !c.getIsClosed() { + n, err := l.Read(buf) + if err != nil { + logf("[ERR] mdns: Failed to read packet: %v", err) + continue + } + msg := new(dns.Msg) + if err := msg.Unpack(buf[:n]); err != nil { + logf("[ERR] mdns: Failed to unpack packet: %v", err) + continue + } + select { + case msgCh <- msg: + case <-c.closedCh: + return + } + } +} + +// ensureName is used to ensure the named node is in progress +func ensureName(inprogress map[string]*ServiceEntry, name string) *ServiceEntry { + if inp, ok := inprogress[name]; ok { + return inp + } + inp := &ServiceEntry{ + Name: name, + } + inprogress[name] = inp + return inp +} + +// alias is used to setup an alias between two entries +func alias(inprogress map[string]*ServiceEntry, src, dst string) { + srcEntry := ensureName(inprogress, src) + inprogress[dst] = srcEntry +} diff --git a/vendor/github.com/whyrusleeping/mdns/log.go b/vendor/github.com/whyrusleeping/mdns/log.go new file mode 100644 index 00000000..79eeb81a --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/log.go @@ -0,0 +1,13 @@ +package mdns + +import "log" + +// DisableLogging disables all log messages +var DisableLogging bool + +func logf(format string, args ...interface{}) { + if DisableLogging { + return + } + log.Printf(format, args...) +} diff --git a/vendor/github.com/whyrusleeping/mdns/package.json b/vendor/github.com/whyrusleeping/mdns/package.json new file mode 100644 index 00000000..5d2a702b --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/package.json @@ -0,0 +1,26 @@ +{ + "author": "whyrusleeping", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/whyrusleeping/mdns" + }, + "gxDependencies": [ + { + "hash": "QmV3bVtkAhSZqWncYGonUmsVcJcV6cpzWztsFwc3A9so5m", + "name": "dns", + "version": "0.2.1" + }, + { + "hash": "QmRvYNctevGUW52urgmoFZscT6buMKqhHezLUS64WepGWn", + "name": "go-net", + "version": "0.2.0" + } + ], + "gxVersion": "0.8.0", + "issues_url": "", + "language": "go", + "license": "", + "name": "mdns", + "version": "0.2.0" +} + diff --git a/vendor/github.com/whyrusleeping/mdns/server.go b/vendor/github.com/whyrusleeping/mdns/server.go new file mode 100644 index 00000000..42aba8fd --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/server.go @@ -0,0 +1,291 @@ +package mdns + +import ( + "fmt" + "net" + "strings" + "sync" + + "github.com/miekg/dns" +) + +const ( + ipv4mdns = "224.0.0.251" + ipv6mdns = "ff02::fb" + mdnsPort = 5353 + forceUnicastResponses = false +) + +var ( + ipv4Addr = &net.UDPAddr{ + IP: net.ParseIP(ipv4mdns), + Port: mdnsPort, + } + ipv6Addr = &net.UDPAddr{ + IP: net.ParseIP(ipv6mdns), + Port: mdnsPort, + } +) + +// Config is used to configure the mDNS server +type Config struct { + // Zone must be provided to support responding to queries + Zone Zone + + // Iface if provided binds the multicast listener to the given + // interface. If not provided, the system default multicase interface + // is used. + Iface *net.Interface +} + +// mDNS server is used to listen for mDNS queries and respond if we +// have a matching local record +type Server struct { + config *Config + + ipv4List *net.UDPConn + ipv6List *net.UDPConn + + shutdown bool + shutdownCh chan struct{} + shutdownLock sync.Mutex +} + +// NewServer is used to create a new mDNS server from a config +func NewServer(config *Config) (*Server, error) { + // Create the listeners + ipv4List, _ := net.ListenMulticastUDP("udp4", config.Iface, ipv4Addr) + ipv6List, _ := net.ListenMulticastUDP("udp6", config.Iface, ipv6Addr) + + // Check if we have any listener + if ipv4List == nil && ipv6List == nil { + return nil, fmt.Errorf("No multicast listeners could be started") + } + + s := &Server{ + config: config, + ipv4List: ipv4List, + ipv6List: ipv6List, + shutdownCh: make(chan struct{}), + } + + if ipv4List != nil { + go s.recv(s.ipv4List) + } + + if ipv6List != nil { + go s.recv(s.ipv6List) + } + + return s, nil +} + +func (s *Server) getIsShutdown() bool { + s.shutdownLock.Lock() + defer s.shutdownLock.Unlock() + return s.shutdown +} + +// Shutdown is used to shutdown the listener +func (s *Server) Shutdown() error { + s.shutdownLock.Lock() + defer s.shutdownLock.Unlock() + + if s.shutdown { + return nil + } + s.shutdown = true + close(s.shutdownCh) + + if s.ipv4List != nil { + s.ipv4List.Close() + } + if s.ipv6List != nil { + s.ipv6List.Close() + } + return nil +} + +// recv is a long running routine to receive packets from an interface +func (s *Server) recv(c *net.UDPConn) { + if c == nil { + return + } + buf := make([]byte, 65536) + for !s.getIsShutdown() { + n, from, err := c.ReadFrom(buf) + if err != nil { + continue + } + if err := s.parsePacket(buf[:n], from); err != nil { + logf("[ERR] mdns: Failed to handle query: %v", err) + } + } +} + +// parsePacket is used to parse an incoming packet +func (s *Server) parsePacket(packet []byte, from net.Addr) error { + var msg dns.Msg + if err := msg.Unpack(packet); err != nil { + logf("[ERR] mdns: Failed to unpack packet: %v", err) + return err + } + return s.handleQuery(&msg, from) +} + +// handleQuery is used to handle an incoming query +func (s *Server) handleQuery(query *dns.Msg, from net.Addr) error { + if query.Opcode != dns.OpcodeQuery { + // "In both multicast query and multicast response messages, the OPCODE MUST + // be zero on transmission (only standard queries are currently supported + // over multicast). Multicast DNS messages received with an OPCODE other + // than zero MUST be silently ignored." Note: OpcodeQuery == 0 + return fmt.Errorf("mdns: received query with non-zero Opcode %v: %v", query.Opcode, *query) + } + if query.Rcode != 0 { + // "In both multicast query and multicast response messages, the Response + // Code MUST be zero on transmission. Multicast DNS messages received with + // non-zero Response Codes MUST be silently ignored." + return fmt.Errorf("mdns: received query with non-zero Rcode %v: %v", query.Rcode, *query) + } + + // TODO(reddaly): Handle "TC (Truncated) Bit": + // In query messages, if the TC bit is set, it means that additional + // Known-Answer records may be following shortly. A responder SHOULD + // record this fact, and wait for those additional Known-Answer records, + // before deciding whether to respond. If the TC bit is clear, it means + // that the querying host has no additional Known Answers. + if query.Truncated { + return fmt.Errorf("[ERR] mdns: support for DNS requests with high truncated bit not implemented: %v", *query) + } + + var unicastAnswer, multicastAnswer []dns.RR + + // Handle each question + for _, q := range query.Question { + mrecs, urecs := s.handleQuestion(q) + multicastAnswer = append(multicastAnswer, mrecs...) + unicastAnswer = append(unicastAnswer, urecs...) + } + + // See section 18 of RFC 6762 for rules about DNS headers. + resp := func(unicast bool) *dns.Msg { + // 18.1: ID (Query Identifier) + // 0 for multicast response, query.Id for unicast response + id := uint16(0) + if unicast { + id = query.Id + } + + var answer []dns.RR + if unicast { + answer = unicastAnswer + } else { + answer = multicastAnswer + } + if len(answer) == 0 { + return nil + } + + return &dns.Msg{ + MsgHdr: dns.MsgHdr{ + Id: id, + + // 18.2: QR (Query/Response) Bit - must be set to 1 in response. + Response: true, + + // 18.3: OPCODE - must be zero in response (OpcodeQuery == 0) + Opcode: dns.OpcodeQuery, + + // 18.4: AA (Authoritative Answer) Bit - must be set to 1 + Authoritative: true, + + // The following fields must all be set to 0: + // 18.5: TC (TRUNCATED) Bit + // 18.6: RD (Recursion Desired) Bit + // 18.7: RA (Recursion Available) Bit + // 18.8: Z (Zero) Bit + // 18.9: AD (Authentic Data) Bit + // 18.10: CD (Checking Disabled) Bit + // 18.11: RCODE (Response Code) + }, + // 18.12 pertains to questions (handled by handleQuestion) + // 18.13 pertains to resource records (handled by handleQuestion) + + // 18.14: Name Compression - responses should be compressed (though see + // caveats in the RFC), so set the Compress bit (part of the dns library + // API, not part of the DNS packet) to true. + Compress: true, + + Answer: answer, + } + } + + if len(multicastAnswer) == 0 && len(unicastAnswer) == 0 { + questions := make([]string, len(query.Question)) + for i, q := range query.Question { + questions[i] = q.Name + } + logf("no responses for query with questions: %s", strings.Join(questions, ", ")) + } + + if mresp := resp(false); mresp != nil { + if err := s.sendResponse(mresp, from, false); err != nil { + return fmt.Errorf("mdns: error sending multicast response: %v", err) + } + } + if uresp := resp(true); uresp != nil { + if err := s.sendResponse(uresp, from, true); err != nil { + return fmt.Errorf("mdns: error sending unicast response: %v", err) + } + } + return nil +} + +// handleQuestion is used to handle an incoming question +// +// The response to a question may be transmitted over multicast, unicast, or +// both. The return values are DNS records for each transmission type. +func (s *Server) handleQuestion(q dns.Question) (multicastRecs, unicastRecs []dns.RR) { + records := s.config.Zone.Records(q) + + if len(records) == 0 { + return nil, nil + } + + // Handle unicast and multicast responses. + // TODO(reddaly): The decision about sending over unicast vs. multicast is not + // yet fully compliant with RFC 6762. For example, the unicast bit should be + // ignored if the records in question are close to TTL expiration. For now, + // we just use the unicast bit to make the decision, as per the spec: + // RFC 6762, section 18.12. Repurposing of Top Bit of qclass in Question + // Section + // + // In the Question Section of a Multicast DNS query, the top bit of the + // qclass field is used to indicate that unicast responses are preferred + // for this particular question. (See Section 5.4.) + if q.Qclass&(1<<15) != 0 || forceUnicastResponses { + return nil, records + } + return records, nil +} + +// sendResponse is used to send a response packet +func (s *Server) sendResponse(resp *dns.Msg, from net.Addr, unicast bool) error { + // TODO(reddaly): Respect the unicast argument, and allow sending responses + // over multicast. + buf, err := resp.Pack() + if err != nil { + return err + } + + // Determine the socket to send from + addr := from.(*net.UDPAddr) + if addr.IP.To4() != nil { + _, err = s.ipv4List.WriteToUDP(buf, addr) + return err + } else { + _, err = s.ipv6List.WriteToUDP(buf, addr) + return err + } +} diff --git a/vendor/github.com/whyrusleeping/mdns/zone.go b/vendor/github.com/whyrusleeping/mdns/zone.go new file mode 100644 index 00000000..6f442c7b --- /dev/null +++ b/vendor/github.com/whyrusleeping/mdns/zone.go @@ -0,0 +1,307 @@ +package mdns + +import ( + "fmt" + "net" + "os" + "strings" + + "github.com/miekg/dns" +) + +const ( + // defaultTTL is the default TTL value in returned DNS records in seconds. + defaultTTL = 120 +) + +// Zone is the interface used to integrate with the server and +// to serve records dynamically +type Zone interface { + // Records returns DNS records in response to a DNS question. + Records(q dns.Question) []dns.RR +} + +// MDNSService is used to export a named service by implementing a Zone +type MDNSService struct { + Instance string // Instance name (e.g. "hostService name") + Service string // Service name (e.g. "_http._tcp.") + Domain string // If blank, assumes "local" + HostName string // Host machine DNS name (e.g. "mymachine.net.") + Port int // Service Port + IPs []net.IP // IP addresses for the service's host + TXT []string // Service TXT records + + serviceAddr string // Fully qualified service address + instanceAddr string // Fully qualified instance address + enumAddr string // _services._dns-sd._udp. +} + +// validateFQDN returns an error if the passed string is not a fully qualified +// hdomain name (more specifically, a hostname). +func validateFQDN(s string) error { + if len(s) == 0 { + return fmt.Errorf("FQDN must not be blank") + } + if s[len(s)-1] != '.' { + return fmt.Errorf("FQDN must end in period: %s", s) + } + // TODO(reddaly): Perform full validation. + + return nil +} + +// NewMDNSService returns a new instance of MDNSService. +// +// If domain, hostName, or ips is set to the zero value, then a default value +// will be inferred from the operating system. +// +// TODO(reddaly): This interface may need to change to account for "unique +// record" conflict rules of the mDNS protocol. Upon startup, the server should +// check to ensure that the instance name does not conflict with other instance +// names, and, if required, select a new name. There may also be conflicting +// hostName A/AAAA records. +func NewMDNSService(instance, service, domain, hostName string, port int, ips []net.IP, txt []string) (*MDNSService, error) { + // Sanity check inputs + if instance == "" { + return nil, fmt.Errorf("missing service instance name") + } + if service == "" { + return nil, fmt.Errorf("missing service name") + } + if port == 0 { + return nil, fmt.Errorf("missing service port") + } + + // Set default domain + if domain == "" { + domain = "local." + } + if err := validateFQDN(domain); err != nil { + return nil, fmt.Errorf("domain %q is not a fully-qualified domain name: %v", domain, err) + } + + // Get host information if no host is specified. + if hostName == "" { + var err error + hostName, err = os.Hostname() + if err != nil { + return nil, fmt.Errorf("could not determine host: %v", err) + } + hostName = fmt.Sprintf("%s.", hostName) + } + if err := validateFQDN(hostName); err != nil { + return nil, fmt.Errorf("hostName %q is not a fully-qualified domain name: %v", hostName, err) + } + + if len(ips) == 0 { + var err error + ips, err = net.LookupIP(hostName) + if err != nil { + // Try appending the host domain suffix and lookup again + // (required for Linux-based hosts) + tmpHostName := fmt.Sprintf("%s%s", hostName, domain) + + ips, err = net.LookupIP(tmpHostName) + + if err != nil { + return nil, fmt.Errorf("could not determine host IP addresses for %s", hostName) + } + } + } + for _, ip := range ips { + if ip.To4() == nil && ip.To16() == nil { + return nil, fmt.Errorf("invalid IP address in IPs list: %v", ip) + } + } + + return &MDNSService{ + Instance: instance, + Service: service, + Domain: domain, + HostName: hostName, + Port: port, + IPs: ips, + TXT: txt, + serviceAddr: fmt.Sprintf("%s.%s.", trimDot(service), trimDot(domain)), + instanceAddr: fmt.Sprintf("%s.%s.%s.", instance, trimDot(service), trimDot(domain)), + enumAddr: fmt.Sprintf("_services._dns-sd._udp.%s.", trimDot(domain)), + }, nil +} + +// trimDot is used to trim the dots from the start or end of a string +func trimDot(s string) string { + return strings.Trim(s, ".") +} + +// Records returns DNS records in response to a DNS question. +func (m *MDNSService) Records(q dns.Question) []dns.RR { + switch q.Name { + case m.enumAddr: + return m.serviceEnum(q) + case m.serviceAddr: + return m.serviceRecords(q) + case m.instanceAddr: + return m.instanceRecords(q) + case m.HostName: + if q.Qtype == dns.TypeA || q.Qtype == dns.TypeAAAA { + return m.instanceRecords(q) + } + fallthrough + default: + return nil + } +} + +func (m *MDNSService) serviceEnum(q dns.Question) []dns.RR { + switch q.Qtype { + case dns.TypeANY: + fallthrough + case dns.TypePTR: + rr := &dns.PTR{ + Hdr: dns.RR_Header{ + Name: q.Name, + Rrtype: dns.TypePTR, + Class: dns.ClassINET, + Ttl: defaultTTL, + }, + Ptr: m.serviceAddr, + } + return []dns.RR{rr} + default: + return nil + } +} + +// serviceRecords is called when the query matches the service name +func (m *MDNSService) serviceRecords(q dns.Question) []dns.RR { + switch q.Qtype { + case dns.TypeANY: + fallthrough + case dns.TypePTR: + // Build a PTR response for the service + rr := &dns.PTR{ + Hdr: dns.RR_Header{ + Name: q.Name, + Rrtype: dns.TypePTR, + Class: dns.ClassINET, + Ttl: defaultTTL, + }, + Ptr: m.instanceAddr, + } + servRec := []dns.RR{rr} + + // Get the instance records + instRecs := m.instanceRecords(dns.Question{ + Name: m.instanceAddr, + Qtype: dns.TypeANY, + }) + + // Return the service record with the instance records + return append(servRec, instRecs...) + default: + return nil + } +} + +// serviceRecords is called when the query matches the instance name +func (m *MDNSService) instanceRecords(q dns.Question) []dns.RR { + switch q.Qtype { + case dns.TypeANY: + // Get the SRV, which includes A and AAAA + recs := m.instanceRecords(dns.Question{ + Name: m.instanceAddr, + Qtype: dns.TypeSRV, + }) + + // Add the TXT record + recs = append(recs, m.instanceRecords(dns.Question{ + Name: m.instanceAddr, + Qtype: dns.TypeTXT, + })...) + return recs + + case dns.TypeA: + var rr []dns.RR + for _, ip := range m.IPs { + if ip4 := ip.To4(); ip4 != nil { + rr = append(rr, &dns.A{ + Hdr: dns.RR_Header{ + Name: m.HostName, + Rrtype: dns.TypeA, + Class: dns.ClassINET, + Ttl: defaultTTL, + }, + A: ip4, + }) + } + } + return rr + + case dns.TypeAAAA: + var rr []dns.RR + for _, ip := range m.IPs { + if ip.To4() != nil { + // TODO(reddaly): IPv4 addresses could be encoded in IPv6 format and + // putinto AAAA records, but the current logic puts ipv4-encodable + // addresses into the A records exclusively. Perhaps this should be + // configurable? + continue + } + + if ip16 := ip.To16(); ip16 != nil { + rr = append(rr, &dns.AAAA{ + Hdr: dns.RR_Header{ + Name: m.HostName, + Rrtype: dns.TypeAAAA, + Class: dns.ClassINET, + Ttl: defaultTTL, + }, + AAAA: ip16, + }) + } + } + return rr + + case dns.TypeSRV: + // Create the SRV Record + srv := &dns.SRV{ + Hdr: dns.RR_Header{ + Name: q.Name, + Rrtype: dns.TypeSRV, + Class: dns.ClassINET, + Ttl: defaultTTL, + }, + Priority: 10, + Weight: 1, + Port: uint16(m.Port), + Target: m.HostName, + } + recs := []dns.RR{srv} + + // Add the A record + recs = append(recs, m.instanceRecords(dns.Question{ + Name: m.instanceAddr, + Qtype: dns.TypeA, + })...) + + // Add the AAAA record + recs = append(recs, m.instanceRecords(dns.Question{ + Name: m.instanceAddr, + Qtype: dns.TypeAAAA, + })...) + return recs + + case dns.TypeTXT: + txt := &dns.TXT{ + Hdr: dns.RR_Header{ + Name: q.Name, + Rrtype: dns.TypeTXT, + Class: dns.ClassINET, + Ttl: defaultTTL, + }, + Txt: m.TXT, + } + return []dns.RR{txt} + } + return nil +} diff --git a/vendor/github.com/whyrusleeping/multiaddr-filter/.gxlastpubver b/vendor/github.com/whyrusleeping/multiaddr-filter/.gxlastpubver new file mode 100644 index 00000000..2b077ca5 --- /dev/null +++ b/vendor/github.com/whyrusleeping/multiaddr-filter/.gxlastpubver @@ -0,0 +1 @@ +1.0.0: QmXE4GFk66B5Ts362YWZosjiZLpP4QDmBTBadRZFffZ58U diff --git a/vendor/github.com/whyrusleeping/multiaddr-filter/LICENSE b/vendor/github.com/whyrusleeping/multiaddr-filter/LICENSE new file mode 100644 index 00000000..1a976e72 --- /dev/null +++ b/vendor/github.com/whyrusleeping/multiaddr-filter/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/multiaddr-filter/README.md b/vendor/github.com/whyrusleeping/multiaddr-filter/README.md new file mode 100644 index 00000000..6a3ca8f8 --- /dev/null +++ b/vendor/github.com/whyrusleeping/multiaddr-filter/README.md @@ -0,0 +1,15 @@ +# go-multiaddr-filter -- CIDR netmasks with multiaddr + +This module creates very simple [multiaddr](https://github.com/jbenet/go-multiaddr) formatted cidr netmasks. + +It doesn't do full multiaddr parsing to save on vendoring things and perf. The `net` package will take care of verifying the validity of the network part anyway. + +## Usage + +```go + +import filter "github.com/whyrusleeping/multiaddr-filter" + +filter.NewMask("/ip4/192.168.0.0/24") // ipv4 +filter.NewMask("/ip6/fe80::/64") // ipv6 +``` diff --git a/vendor/github.com/whyrusleeping/multiaddr-filter/mask.go b/vendor/github.com/whyrusleeping/multiaddr-filter/mask.go new file mode 100644 index 00000000..7f012258 --- /dev/null +++ b/vendor/github.com/whyrusleeping/multiaddr-filter/mask.go @@ -0,0 +1,47 @@ +package mask + +import ( + "errors" + "fmt" + "net" + "strings" +) + +var ErrInvalidFormat = errors.New("invalid multiaddr-filter format") + +func NewMask(a string) (*net.IPNet, error) { + parts := strings.Split(a, "/") + + if parts[0] != "" { + return nil, ErrInvalidFormat + } + + if len(parts) != 5 { + return nil, ErrInvalidFormat + } + + // check it's a valid filter address. ip + cidr + isip := parts[1] == "ip4" || parts[1] == "ip6" + iscidr := parts[3] == "ipcidr" + if !isip || !iscidr { + return nil, ErrInvalidFormat + } + + _, ipn, err := net.ParseCIDR(parts[2] + "/" + parts[4]) + if err != nil { + return nil, err + } + return ipn, nil +} + +func ConvertIPNet(n *net.IPNet) (string, error) { + b, _ := n.Mask.Size() + switch { + case n.IP.To4() != nil: + return fmt.Sprintf("/ip4/%s/ipcidr/%d", n.IP, b), nil + case n.IP.To16() != nil: + return fmt.Sprintf("/ip6/%s/ipcidr/%d", n.IP, b), nil + default: + return "", fmt.Errorf("was not given valid ip addr") + } +} diff --git a/vendor/github.com/whyrusleeping/multiaddr-filter/package.json b/vendor/github.com/whyrusleeping/multiaddr-filter/package.json new file mode 100644 index 00000000..70c9cf56 --- /dev/null +++ b/vendor/github.com/whyrusleeping/multiaddr-filter/package.json @@ -0,0 +1,12 @@ +{ + "author": "whyrusleeping", + "bugs": {}, + "gx": { + "dvcsimport": "github.com/whyrusleeping/multiaddr-filter" + }, + "gxVersion": "0.7.0", + "language": "go", + "license": "", + "name": "multiaddr-filter", + "version": "1.0.2" +} diff --git a/vendor/github.com/whyrusleeping/timecache/LICENSE b/vendor/github.com/whyrusleeping/timecache/LICENSE new file mode 100644 index 00000000..26100332 --- /dev/null +++ b/vendor/github.com/whyrusleeping/timecache/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeromy Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/whyrusleeping/timecache/README.md b/vendor/github.com/whyrusleeping/timecache/README.md new file mode 100644 index 00000000..edbadd2f --- /dev/null +++ b/vendor/github.com/whyrusleeping/timecache/README.md @@ -0,0 +1,8 @@ +# timecache + +Timecache is an lru cache that keeps entries for up to a specified time +duration. After a specified period of time has elapsed, 'old' entries will be +purged from the set. + +## License +MIT diff --git a/vendor/github.com/whyrusleeping/timecache/package.json b/vendor/github.com/whyrusleeping/timecache/package.json new file mode 100644 index 00000000..80d642f6 --- /dev/null +++ b/vendor/github.com/whyrusleeping/timecache/package.json @@ -0,0 +1,14 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/timecache" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/timecache" + }, + "gxVersion": "0.9.0", + "language": "go", + "license": "", + "name": "timecache", + "version": "1.0.0" +} diff --git a/vendor/github.com/whyrusleeping/timecache/timecache.go b/vendor/github.com/whyrusleeping/timecache/timecache.go new file mode 100644 index 00000000..94975585 --- /dev/null +++ b/vendor/github.com/whyrusleeping/timecache/timecache.go @@ -0,0 +1,60 @@ +package timecache + +import ( + "container/list" + "time" +) + +type TimeCache struct { + Q *list.List + M map[string]time.Time + + span time.Duration +} + +func NewTimeCache(span time.Duration) *TimeCache { + return &TimeCache{ + Q: list.New(), + M: make(map[string]time.Time), + span: span, + } +} + +func (tc *TimeCache) Add(s string) { + _, ok := tc.M[s] + if ok { + panic("putting the same entry twice not supported") + } + + tc.sweep() + + tc.M[s] = time.Now() + tc.Q.PushFront(s) +} + +func (tc *TimeCache) sweep() { + for { + back := tc.Q.Back() + if back == nil { + return + } + + v := back.Value.(string) + t, ok := tc.M[v] + if !ok { + panic("inconsistent cache state") + } + + if time.Since(t) > tc.span { + tc.Q.Remove(back) + delete(tc.M, v) + } else { + return + } + } +} + +func (tc *TimeCache) Has(s string) bool { + _, ok := tc.M[s] + return ok +} diff --git a/vendor/github.com/whyrusleeping/yamux/.gitignore b/vendor/github.com/whyrusleeping/yamux/.gitignore new file mode 100644 index 00000000..83656241 --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/.gitignore @@ -0,0 +1,23 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test diff --git a/vendor/github.com/whyrusleeping/yamux/LICENSE b/vendor/github.com/whyrusleeping/yamux/LICENSE new file mode 100644 index 00000000..f0e5c79e --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/LICENSE @@ -0,0 +1,362 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. "Contributor" + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. "Contributor Version" + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms of + a Secondary License. + +1.6. "Executable Form" + + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + + means a work that combines Covered Software with other material, in a + separate file or files, that is not Covered Software. + +1.8. "License" + + means this document. + +1.9. "Licensable" + + means having the right to grant, to the maximum extent possible, whether + at the time of the initial grant or subsequently, any and all of the + rights conveyed by this License. + +1.10. "Modifications" + + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. "Patent Claims" of a Contributor + + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the License, + by the making, using, selling, offering for sale, having made, import, + or transfer of either its Contributions or its Contributor Version. + +1.12. "Secondary License" + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. "Source Code Form" + + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of + its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights to + grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter the + recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, or + limitations of liability) contained within the Source Code Form of the + Covered Software, except that You may alter any license notices to the + extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, + judicial order, or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be placed in a + text file included with all distributions of the Covered Software under + this License. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing + basis, if such Contributor fails to notify You of the non-compliance by + some reasonable means prior to 60 days after You have come back into + compliance. Moreover, Your grants from a particular Contributor are + reinstated on an ongoing basis if such Contributor notifies You of the + non-compliance by some reasonable means, this is the first time You have + received notice of non-compliance with this License from such + Contributor, and You become compliant prior to 30 days after Your receipt + of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an "as is" basis, + without warranty of any kind, either expressed, implied, or statutory, + including, without limitation, warranties that the Covered Software is free + of defects, merchantable, fit for a particular purpose or non-infringing. + The entire risk as to the quality and performance of the Covered Software + is with You. Should any Covered Software prove defective in any respect, + You (not any Contributor) assume the cost of any necessary servicing, + repair, or correction. This disclaimer of warranty constitutes an essential + part of this License. No use of any Covered Software is authorized under + this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from + such party's negligence to the extent applicable law prohibits such + limitation. Some jurisdictions do not allow the exclusion or limitation of + incidental or consequential damages, so this exclusion and limitation may + not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts + of a jurisdiction where the defendant maintains its principal place of + business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. Nothing + in this Section shall prevent a party's ability to bring cross-claims or + counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + be used to construe this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this License must be + attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to look for such a +notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by + the Mozilla Public License, v. 2.0. \ No newline at end of file diff --git a/vendor/github.com/whyrusleeping/yamux/README.md b/vendor/github.com/whyrusleeping/yamux/README.md new file mode 100644 index 00000000..d4db7fc9 --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/README.md @@ -0,0 +1,86 @@ +# Yamux + +Yamux (Yet another Multiplexer) is a multiplexing library for Golang. +It relies on an underlying connection to provide reliability +and ordering, such as TCP or Unix domain sockets, and provides +stream-oriented multiplexing. It is inspired by SPDY but is not +interoperable with it. + +Yamux features include: + +* Bi-directional streams + * Streams can be opened by either client or server + * Useful for NAT traversal + * Server-side push support +* Flow control + * Avoid starvation + * Back-pressure to prevent overwhelming a receiver +* Keep Alives + * Enables persistent connections over a load balancer +* Efficient + * Enables thousands of logical streams with low overhead + +## Documentation + +For complete documentation, see the associated [Godoc](http://godoc.org/github.com/hashicorp/yamux). + +## Specification + +The full specification for Yamux is provided in the `spec.md` file. +It can be used as a guide to implementors of interoperable libraries. + +## Usage + +Using Yamux is remarkably simple: + +```go + +func client() { + // Get a TCP connection + conn, err := net.Dial(...) + if err != nil { + panic(err) + } + + // Setup client side of yamux + session, err := yamux.Client(conn, nil) + if err != nil { + panic(err) + } + + // Open a new stream + stream, err := session.Open() + if err != nil { + panic(err) + } + + // Stream implements net.Conn + stream.Write([]byte("ping")) +} + +func server() { + // Accept a TCP connection + conn, err := listener.Accept() + if err != nil { + panic(err) + } + + // Setup server side of yamux + session, err := yamux.Server(conn, nil) + if err != nil { + panic(err) + } + + // Accept a stream + stream, err := session.Accept() + if err != nil { + panic(err) + } + + // Listen for a message + buf := make([]byte, 4) + stream.Read(buf) +} + +``` + diff --git a/vendor/github.com/whyrusleeping/yamux/addr.go b/vendor/github.com/whyrusleeping/yamux/addr.go new file mode 100644 index 00000000..be6ebca9 --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/addr.go @@ -0,0 +1,60 @@ +package yamux + +import ( + "fmt" + "net" +) + +// hasAddr is used to get the address from the underlying connection +type hasAddr interface { + LocalAddr() net.Addr + RemoteAddr() net.Addr +} + +// yamuxAddr is used when we cannot get the underlying address +type yamuxAddr struct { + Addr string +} + +func (*yamuxAddr) Network() string { + return "yamux" +} + +func (y *yamuxAddr) String() string { + return fmt.Sprintf("yamux:%s", y.Addr) +} + +// Addr is used to get the address of the listener. +func (s *Session) Addr() net.Addr { + return s.LocalAddr() +} + +// LocalAddr is used to get the local address of the +// underlying connection. +func (s *Session) LocalAddr() net.Addr { + addr, ok := s.conn.(hasAddr) + if !ok { + return &yamuxAddr{"local"} + } + return addr.LocalAddr() +} + +// RemoteAddr is used to get the address of remote end +// of the underlying connection +func (s *Session) RemoteAddr() net.Addr { + addr, ok := s.conn.(hasAddr) + if !ok { + return &yamuxAddr{"remote"} + } + return addr.RemoteAddr() +} + +// LocalAddr returns the local address +func (s *Stream) LocalAddr() net.Addr { + return s.session.LocalAddr() +} + +// LocalAddr returns the remote address +func (s *Stream) RemoteAddr() net.Addr { + return s.session.RemoteAddr() +} diff --git a/vendor/github.com/whyrusleeping/yamux/const.go b/vendor/github.com/whyrusleeping/yamux/const.go new file mode 100644 index 00000000..22e349f9 --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/const.go @@ -0,0 +1,165 @@ +package yamux + +import ( + "encoding/binary" + "fmt" +) + +type YamuxError struct { + msg string +} + +func (ye YamuxError) Error() string { + return ye.msg +} + +var ( + // ErrInvalidVersion means we received a frame with an + // invalid version + ErrInvalidVersion = &YamuxError{"invalid protocol version"} + + // ErrInvalidMsgType means we received a frame with an + // invalid message type + ErrInvalidMsgType = &YamuxError{"invalid msg type"} + + // ErrSessionShutdown is used if there is a shutdown during + // an operation + ErrSessionShutdown = &YamuxError{"session shutdown"} + + // ErrStreamsExhausted is returned if we have no more + // stream ids to issue + ErrStreamsExhausted = &YamuxError{"streams exhausted"} + + // ErrDuplicateStream is used if a duplicate stream is + // opened inbound + ErrDuplicateStream = &YamuxError{"duplicate stream initiated"} + + // ErrReceiveWindowExceeded indicates the window was exceeded + ErrRecvWindowExceeded = &YamuxError{"recv window exceeded"} + + // ErrTimeout is used when we reach an IO deadline + ErrTimeout = &YamuxError{"i/o deadline reached"} + + // ErrStreamClosed is returned when using a closed stream + ErrStreamClosed = &YamuxError{"stream closed"} + + // ErrUnexpectedFlag is set when we get an unexpected flag + ErrUnexpectedFlag = &YamuxError{"unexpected flag"} + + // ErrRemoteGoAway is used when we get a go away from the other side + ErrRemoteGoAway = &YamuxError{"remote end is not accepting connections"} + + // ErrConnectionReset is sent if a stream is reset. This can happen + // if the backlog is exceeded, or if there was a remote GoAway. + ErrConnectionReset = &YamuxError{"stream reset"} + + // ErrConnectionWriteTimeout indicates that we hit the "safety valve" + // timeout writing to the underlying stream connection. + ErrConnectionWriteTimeout = &YamuxError{"connection write timeout"} + + // ErrKeepAliveTimeout is sent if a missed keepalive caused the stream close + ErrKeepAliveTimeout = &YamuxError{"keepalive timeout"} +) + +const ( + // protoVersion is the only version we support + protoVersion uint8 = 0 +) + +const ( + // Data is used for data frames. They are followed + // by length bytes worth of payload. + typeData uint8 = iota + + // WindowUpdate is used to change the window of + // a given stream. The length indicates the delta + // update to the window. + typeWindowUpdate + + // Ping is sent as a keep-alive or to measure + // the RTT. The StreamID and Length value are echoed + // back in the response. + typePing + + // GoAway is sent to terminate a session. The StreamID + // should be 0 and the length is an error code. + typeGoAway +) + +const ( + // SYN is sent to signal a new stream. May + // be sent with a data payload + flagSYN uint16 = 1 << iota + + // ACK is sent to acknowledge a new stream. May + // be sent with a data payload + flagACK + + // FIN is sent to half-close the given stream. + // May be sent with a data payload. + flagFIN + + // RST is used to hard close a given stream. + flagRST +) + +const ( + // initialStreamWindow is the initial stream window size + initialStreamWindow uint32 = 256 * 1024 +) + +const ( + // goAwayNormal is sent on a normal termination + goAwayNormal uint32 = iota + + // goAwayProtoErr sent on a protocol error + goAwayProtoErr + + // goAwayInternalErr sent on an internal error + goAwayInternalErr +) + +const ( + sizeOfVersion = 1 + sizeOfType = 1 + sizeOfFlags = 2 + sizeOfStreamID = 4 + sizeOfLength = 4 + headerSize = sizeOfVersion + sizeOfType + sizeOfFlags + + sizeOfStreamID + sizeOfLength +) + +type header []byte + +func (h header) Version() uint8 { + return h[0] +} + +func (h header) MsgType() uint8 { + return h[1] +} + +func (h header) Flags() uint16 { + return binary.BigEndian.Uint16(h[2:4]) +} + +func (h header) StreamID() uint32 { + return binary.BigEndian.Uint32(h[4:8]) +} + +func (h header) Length() uint32 { + return binary.BigEndian.Uint32(h[8:12]) +} + +func (h header) String() string { + return fmt.Sprintf("Vsn:%d Type:%d Flags:%d StreamID:%d Length:%d", + h.Version(), h.MsgType(), h.Flags(), h.StreamID(), h.Length()) +} + +func (h header) encode(msgType uint8, flags uint16, streamID uint32, length uint32) { + h[0] = protoVersion + h[1] = msgType + binary.BigEndian.PutUint16(h[2:4], flags) + binary.BigEndian.PutUint32(h[4:8], streamID) + binary.BigEndian.PutUint32(h[8:12], length) +} diff --git a/vendor/github.com/whyrusleeping/yamux/mux.go b/vendor/github.com/whyrusleeping/yamux/mux.go new file mode 100644 index 00000000..b6fb648c --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/mux.go @@ -0,0 +1,93 @@ +package yamux + +import ( + "fmt" + "io" + "os" + "time" +) + +// Config is used to tune the Yamux session +type Config struct { + // AcceptBacklog is used to limit how many streams may be + // waiting an accept. + AcceptBacklog int + + // EnableKeepalive is used to do a period keep alive + // messages using a ping. + EnableKeepAlive bool + + // KeepAliveInterval is how often to perform the keep alive + KeepAliveInterval time.Duration + + // ConnectionWriteTimeout is meant to be a "safety valve" timeout after + // we which will suspect a problem with the underlying connection and + // close it. This is only applied to writes, where's there's generally + // an expectation that things will move along quickly. + ConnectionWriteTimeout time.Duration + + // MaxStreamWindowSize is used to control the maximum + // window size that we allow for a stream. + MaxStreamWindowSize uint32 + + // LogOutput is used to control the log destination + LogOutput io.Writer + + // ReadBufSize controls the size of the read buffer. + // + // Set to 0 to disable it. + ReadBufSize int +} + +// DefaultConfig is used to return a default configuration +func DefaultConfig() *Config { + return &Config{ + AcceptBacklog: 256, + EnableKeepAlive: true, + KeepAliveInterval: 30 * time.Second, + ConnectionWriteTimeout: 10 * time.Second, + MaxStreamWindowSize: initialStreamWindow, + LogOutput: os.Stderr, + ReadBufSize: 4096, + } +} + +// VerifyConfig is used to verify the sanity of configuration +func VerifyConfig(config *Config) error { + if config.AcceptBacklog <= 0 { + return fmt.Errorf("backlog must be positive") + } + if config.KeepAliveInterval == 0 { + return fmt.Errorf("keep-alive interval must be positive") + } + if config.MaxStreamWindowSize < initialStreamWindow { + return fmt.Errorf("MaxStreamWindowSize must be larger than %d", initialStreamWindow) + } + return nil +} + +// Server is used to initialize a new server-side connection. +// There must be at most one server-side connection. If a nil config is +// provided, the DefaultConfiguration will be used. +func Server(conn io.ReadWriteCloser, config *Config) (*Session, error) { + if config == nil { + config = DefaultConfig() + } + if err := VerifyConfig(config); err != nil { + return nil, err + } + return newSession(config, conn, false, config.ReadBufSize), nil +} + +// Client is used to initialize a new client-side connection. +// There must be at most one client-side connection. +func Client(conn io.ReadWriteCloser, config *Config) (*Session, error) { + if config == nil { + config = DefaultConfig() + } + + if err := VerifyConfig(config); err != nil { + return nil, err + } + return newSession(config, conn, true, config.ReadBufSize), nil +} diff --git a/vendor/github.com/whyrusleeping/yamux/package.json b/vendor/github.com/whyrusleeping/yamux/package.json new file mode 100644 index 00000000..0105c0dd --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/package.json @@ -0,0 +1,24 @@ +{ + "author": "whyrusleeping", + "bugs": { + "url": "https://github.com/whyrusleeping/yamux" + }, + "gx": { + "dvcsimport": "github.com/whyrusleeping/yamux" + }, + "gxDependencies": [ + { + "author": "Stebalien", + "hash": "QmQDvJoB6aJWN3sjr3xsgXqKCXf4jU5zdMXpDMsBkYVNqa", + "name": "go-buffer-pool", + "version": "0.1.3" + } + ], + "gxVersion": "0.10.0", + "language": "go", + "license": "", + "name": "yamux", + "releaseCmd": "git commit -a -m \"gx publish $VERSION\"", + "version": "1.1.5" +} + diff --git a/vendor/github.com/whyrusleeping/yamux/session.go b/vendor/github.com/whyrusleeping/yamux/session.go new file mode 100644 index 00000000..8d5ac2a0 --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/session.go @@ -0,0 +1,734 @@ +package yamux + +import ( + "bufio" + "fmt" + "io" + "io/ioutil" + "log" + "math" + "net" + "strings" + "sync" + "sync/atomic" + "time" +) + +// Session is used to wrap a reliable ordered connection and to +// multiplex it into multiple streams. +type Session struct { + // remoteGoAway indicates the remote side does + // not want futher connections. Must be first for alignment. + remoteGoAway int32 + + // localGoAway indicates that we should stop + // accepting futher connections. Must be first for alignment. + localGoAway int32 + + // nextStreamID is the next stream we should + // send. This depends if we are a client/server. + nextStreamID uint32 + + // config holds our configuration + config *Config + + // logger is used for our logs + logger *log.Logger + + // conn is the underlying connection + conn io.ReadWriteCloser + + // reader is a buffered reader + reader io.Reader + + // pings is used to track inflight pings + pings map[uint32]chan struct{} + pingID uint32 + pingLock sync.Mutex + + // streams maps a stream id to a stream, and inflight has an entry + // for any outgoing stream that has not yet been established. Both are + // protected by streamLock. + streams map[uint32]*Stream + inflight map[uint32]struct{} + streamLock sync.Mutex + + // synCh acts like a semaphore. It is sized to the AcceptBacklog which + // is assumed to be symmetric between the client and server. This allows + // the client to avoid exceeding the backlog and instead blocks the open. + synCh chan struct{} + + // acceptCh is used to pass ready streams to the client + acceptCh chan *Stream + + // sendCh is used to mark a stream as ready to send, + // or to send a header out directly. + sendCh chan *sendReady + + // recvDoneCh is closed when recv() exits to avoid a race + // between stream registration and stream shutdown + recvDoneCh chan struct{} + + // sendDoneCh is closed when send() exits to avoid a race + // between returning from a Stream.Write and exiting from the send loop + // (which may be reading a buffer on-load-from Stream.Write). + sendDoneCh chan struct{} + + // client is true if we're the client and our stream IDs should be odd. + client bool + + // shutdown is used to safely close a session + shutdown bool + shutdownErr error + shutdownCh chan struct{} + shutdownLock sync.Mutex +} + +// sendReady is used to either mark a stream as ready +// or to directly send a header +type sendReady struct { + Hdr []byte + Body io.Reader + Err chan error + Stage uint32 +} + +const ( + stageInitial uint32 = iota + stageFinal +) + +// newSession is used to construct a new session +func newSession(config *Config, conn io.ReadWriteCloser, client bool, readBuf int) *Session { + var reader io.Reader = conn + if readBuf > 0 { + reader = bufio.NewReaderSize(reader, readBuf) + } + s := &Session{ + config: config, + client: client, + logger: log.New(config.LogOutput, "", log.LstdFlags), + conn: conn, + reader: reader, + pings: make(map[uint32]chan struct{}), + streams: make(map[uint32]*Stream), + inflight: make(map[uint32]struct{}), + synCh: make(chan struct{}, config.AcceptBacklog), + acceptCh: make(chan *Stream, config.AcceptBacklog), + sendCh: make(chan *sendReady, 64), + recvDoneCh: make(chan struct{}), + sendDoneCh: make(chan struct{}), + shutdownCh: make(chan struct{}), + } + if client { + s.nextStreamID = 1 + } else { + s.nextStreamID = 2 + } + go s.recv() + go s.send() + if config.EnableKeepAlive { + go s.keepalive() + } + return s +} + +// IsClosed does a safe check to see if we have shutdown +func (s *Session) IsClosed() bool { + select { + case <-s.shutdownCh: + return true + default: + return false + } +} + +// CloseChan returns a read-only channel which is closed as +// soon as the session is closed. +func (s *Session) CloseChan() <-chan struct{} { + return s.shutdownCh +} + +// NumStreams returns the number of currently open streams +func (s *Session) NumStreams() int { + s.streamLock.Lock() + num := len(s.streams) + s.streamLock.Unlock() + return num +} + +// Open is used to create a new stream as a net.Conn +func (s *Session) Open() (net.Conn, error) { + conn, err := s.OpenStream() + if err != nil { + return nil, err + } + return conn, nil +} + +// OpenStream is used to create a new stream +func (s *Session) OpenStream() (*Stream, error) { + if s.IsClosed() { + return nil, ErrSessionShutdown + } + if atomic.LoadInt32(&s.remoteGoAway) == 1 { + return nil, ErrRemoteGoAway + } + + // Block if we have too many inflight SYNs + select { + case s.synCh <- struct{}{}: + case <-s.shutdownCh: + return nil, ErrSessionShutdown + } + +GET_ID: + // Get an ID, and check for stream exhaustion + id := atomic.LoadUint32(&s.nextStreamID) + if id >= math.MaxUint32-1 { + return nil, ErrStreamsExhausted + } + if !atomic.CompareAndSwapUint32(&s.nextStreamID, id, id+2) { + goto GET_ID + } + + // Register the stream + stream := newStream(s, id, streamInit) + s.streamLock.Lock() + s.streams[id] = stream + s.inflight[id] = struct{}{} + s.streamLock.Unlock() + + // Send the window update to create + if err := stream.sendWindowUpdate(); err != nil { + select { + case <-s.synCh: + default: + s.logger.Printf("[ERR] yamux: aborted stream open without inflight syn semaphore") + } + return nil, err + } + return stream, nil +} + +// Accept is used to block until the next available stream +// is ready to be accepted. +func (s *Session) Accept() (net.Conn, error) { + conn, err := s.AcceptStream() + if err != nil { + return nil, err + } + return conn, err +} + +// AcceptStream is used to block until the next available stream +// is ready to be accepted. +func (s *Session) AcceptStream() (*Stream, error) { + select { + case stream := <-s.acceptCh: + if err := stream.sendWindowUpdate(); err != nil { + return nil, err + } + return stream, nil + case <-s.shutdownCh: + return nil, s.shutdownErr + } +} + +// Close is used to close the session and all streams. +// Attempts to send a GoAway before closing the connection. +func (s *Session) Close() error { + s.shutdownLock.Lock() + defer s.shutdownLock.Unlock() + + if s.shutdown { + return nil + } + s.shutdown = true + if s.shutdownErr == nil { + s.shutdownErr = ErrSessionShutdown + } + close(s.shutdownCh) + s.conn.Close() + <-s.recvDoneCh + <-s.sendDoneCh + + s.streamLock.Lock() + defer s.streamLock.Unlock() + for _, stream := range s.streams { + stream.forceClose() + } + return nil +} + +// exitErr is used to handle an error that is causing the +// session to terminate. +func (s *Session) exitErr(err error) { + s.shutdownLock.Lock() + if s.shutdownErr == nil { + s.shutdownErr = err + } + s.shutdownLock.Unlock() + s.Close() +} + +// GoAway can be used to prevent accepting further +// connections. It does not close the underlying conn. +func (s *Session) GoAway() error { + return s.waitForSend(s.goAway(goAwayNormal), nil) +} + +// goAway is used to send a goAway message +func (s *Session) goAway(reason uint32) header { + atomic.SwapInt32(&s.localGoAway, 1) + hdr := header(make([]byte, headerSize)) + hdr.encode(typeGoAway, 0, 0, reason) + return hdr +} + +// Ping is used to measure the RTT response time +func (s *Session) Ping() (time.Duration, error) { + // Get a channel for the ping + ch := make(chan struct{}) + + // Get a new ping id, mark as pending + s.pingLock.Lock() + id := s.pingID + s.pingID++ + s.pings[id] = ch + s.pingLock.Unlock() + + // Send the ping request + hdr := header(make([]byte, headerSize)) + hdr.encode(typePing, flagSYN, 0, id) + if err := s.waitForSend(hdr, nil); err != nil { + return 0, err + } + + // Wait for a response + start := time.Now() + select { + case <-ch: + case <-time.After(s.config.ConnectionWriteTimeout): + s.pingLock.Lock() + delete(s.pings, id) // Ignore it if a response comes later. + s.pingLock.Unlock() + return 0, ErrTimeout + case <-s.shutdownCh: + return 0, ErrSessionShutdown + } + + // Compute the RTT + return time.Now().Sub(start), nil +} + +// keepalive is a long running goroutine that periodically does +// a ping to keep the connection alive. +func (s *Session) keepalive() { + for { + select { + case <-time.After(s.config.KeepAliveInterval): + _, err := s.Ping() + if err != nil { + s.logger.Printf("[ERR] yamux: keepalive failed: %v", err) + s.exitErr(ErrKeepAliveTimeout) + return + } + case <-s.shutdownCh: + return + } + } +} + +// waitForSendErr waits to send a header, checking for a potential shutdown +func (s *Session) waitForSend(hdr header, body io.Reader) error { + errCh := make(chan error, 1) + return s.waitForSendErr(hdr, body, errCh, nil) +} + +func pooledTimer(d time.Duration) (*time.Timer, func()) { + t := timerPool.Get() + timer := t.(*time.Timer) + timer.Reset(d) + cancelFn := func() { + timer.Stop() + select { + case <-timer.C: + default: + } + timerPool.Put(t) + } + return timer, cancelFn +} + +// waitForSendErr waits to send a header with optional data, checking for a +// potential shutdown. Since there's the expectation that sends can happen +// in a timely manner, we enforce the connection write timeout here. +// +// timeout is: +// * `nil` if (a) this is a control message (ping, go away, window update, etc.), or (b) if the user +// has not set a write deadline on the stream. +// * non-`nil` if (a) this is a user-requested write, and (b) the stream has a write deadline. +func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error, timeout <-chan time.Time) error { + select { + case <-s.shutdownCh: + return ErrSessionShutdown + default: + } + + var connWriteTimerCh <-chan time.Time + + if timeout == nil { + // fall back to the connection write timeout. + t, cancelFn := pooledTimer(s.config.ConnectionWriteTimeout) + defer cancelFn() + connWriteTimerCh = t.C + } + + ready := &sendReady{Hdr: hdr, Body: body, Err: errCh, Stage: stageInitial} + + select { + case <-s.shutdownCh: + return ErrSessionShutdown + case s.sendCh <- ready: + case <-timeout: + // we timed out before the write went across the channel. keep connection open. + return ErrTimeout + case <-connWriteTimerCh: + // we timed out before the write went across the channel. keep connection open. + return ErrTimeout + } + + // >>> The write went across the channel. >>> + +WAIT: + select { + case <-s.sendDoneCh: // shutdown isn't enough, we need to wait for the send loop to exit. + return ErrSessionShutdown + case err := <-errCh: + return err + case <-timeout: + // A deadline had been set on the stream. Try to abort the write if it hasn't started. + if atomic.CompareAndSwapUint32(&ready.Stage, stageInitial, stageFinal) { + // If successful, the connection stays alive. + return ErrTimeout + } + // Otherwise, handle the partial write. Await the connection write timeout. + t, cancelFn := pooledTimer(s.config.ConnectionWriteTimeout) + connWriteTimerCh = t.C + defer cancelFn() + goto WAIT + case <-connWriteTimerCh: + // The connection write timeout has fired. Try to cancel the write only if this was a fallback timer. + if timeout == nil && atomic.CompareAndSwapUint32(&ready.Stage, stageInitial, stageFinal) { + return ErrTimeout + } + // Terminate the connection. + s.exitErr(ErrConnectionWriteTimeout) + return ErrConnectionWriteTimeout + } +} + +// sendNoWait does a send without waiting. Since there's the expectation that +// the send happens right here, we enforce the connection write timeout if we +// can't queue the header to be sent. +func (s *Session) sendNoWait(hdr header) error { + select { + case <-s.shutdownCh: + return ErrSessionShutdown + default: + } + + timer, cancelFn := pooledTimer(s.config.ConnectionWriteTimeout) + defer cancelFn() + + select { + case s.sendCh <- &sendReady{Hdr: hdr, Stage: stageInitial}: + return nil + case <-s.shutdownCh: + return ErrSessionShutdown + case <-timer.C: + return ErrConnectionWriteTimeout + } +} + +// send is a long running goroutine that sends data +func (s *Session) send() { + if err := s.sendLoop(); err != nil { + s.exitErr(err) + } +} +func (s *Session) sendLoop() error { + defer close(s.sendDoneCh) + for { + // yield after processing the last message, if we've shutdown. + // s.sendCh is a buffered channel and Go doesn't guarantee select order. + select { + case <-s.shutdownCh: + return nil + default: + } + + select { + case ready := <-s.sendCh: + // Commit to perform the write, iff it has not expired prior to being consumed from the ch. + if !atomic.CompareAndSwapUint32(&ready.Stage, stageInitial, stageFinal) { + continue + } + + // Send a header if ready + if ready.Hdr != nil { + sent := 0 + for sent < len(ready.Hdr) { + n, err := s.conn.Write(ready.Hdr[sent:]) + if err != nil { + s.logger.Printf("[ERR] yamux: Failed to write header: %v", err) + asyncSendErr(ready.Err, err) + return err + } + sent += n + } + } + + // Send data from a body if given + if ready.Body != nil { + _, err := io.Copy(s.conn, ready.Body) + if err != nil { + s.logger.Printf("[ERR] yamux: Failed to write body: %v", err) + asyncSendErr(ready.Err, err) + return err + } + } + + // No error, successful send + asyncSendErr(ready.Err, nil) + + case <-s.shutdownCh: + return nil + } + } +} + +// recv is a long running goroutine that accepts new data +func (s *Session) recv() { + if err := s.recvLoop(); err != nil { + s.exitErr(err) + } +} + +// Ensure that the index of the handler (typeData/typeWindowUpdate/etc) matches the message type +var ( + handlers = []func(*Session, header) error{ + typeData: (*Session).handleStreamMessage, + typeWindowUpdate: (*Session).handleStreamMessage, + typePing: (*Session).handlePing, + typeGoAway: (*Session).handleGoAway, + } +) + +// recvLoop continues to receive data until a fatal error is encountered +func (s *Session) recvLoop() error { + defer close(s.recvDoneCh) + hdr := header(make([]byte, headerSize)) + for { + // Read the header + if _, err := io.ReadFull(s.reader, hdr); err != nil { + if err != io.EOF && !strings.Contains(err.Error(), "closed") && !strings.Contains(err.Error(), "reset by peer") { + s.logger.Printf("[ERR] yamux: Failed to read header: %v", err) + } + return err + } + + // Verify the version + if hdr.Version() != protoVersion { + s.logger.Printf("[ERR] yamux: Invalid protocol version: %d", hdr.Version()) + return ErrInvalidVersion + } + + mt := hdr.MsgType() + if mt < typeData || mt > typeGoAway { + return ErrInvalidMsgType + } + + if err := handlers[mt](s, hdr); err != nil { + return err + } + } +} + +// handleStreamMessage handles either a data or window update frame +func (s *Session) handleStreamMessage(hdr header) error { + // Check for a new stream creation + id := hdr.StreamID() + flags := hdr.Flags() + if flags&flagSYN == flagSYN { + if err := s.incomingStream(id); err != nil { + return err + } + } + + // Get the stream + s.streamLock.Lock() + stream := s.streams[id] + s.streamLock.Unlock() + + // If we do not have a stream, likely we sent a RST + if stream == nil { + // Drain any data on the wire + if hdr.MsgType() == typeData && hdr.Length() > 0 { + s.logger.Printf("[WARN] yamux: Discarding data for stream: %d", id) + if _, err := io.CopyN(ioutil.Discard, s.reader, int64(hdr.Length())); err != nil { + s.logger.Printf("[ERR] yamux: Failed to discard data: %v", err) + return nil + } + } else { + s.logger.Printf("[WARN] yamux: frame for missing stream: %v", hdr) + } + return nil + } + + // Check if this is a window update + if hdr.MsgType() == typeWindowUpdate { + if err := stream.incrSendWindow(hdr, flags); err != nil { + if sendErr := s.sendNoWait(s.goAway(goAwayProtoErr)); sendErr != nil { + s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) + } + return err + } + return nil + } + + // Read the new data + if err := stream.readData(hdr, flags, s.reader); err != nil { + if sendErr := s.sendNoWait(s.goAway(goAwayProtoErr)); sendErr != nil { + s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) + } + return err + } + return nil +} + +// handlePing is invokde for a typePing frame +func (s *Session) handlePing(hdr header) error { + flags := hdr.Flags() + pingID := hdr.Length() + + // Check if this is a query, respond back in a separate context so we + // don't interfere with the receiving thread blocking for the write. + if flags&flagSYN == flagSYN { + go func() { + hdr := header(make([]byte, headerSize)) + hdr.encode(typePing, flagACK, 0, pingID) + if err := s.sendNoWait(hdr); err != nil { + s.logger.Printf("[WARN] yamux: failed to send ping reply: %v", err) + } + }() + return nil + } + + // Handle a response + s.pingLock.Lock() + ch := s.pings[pingID] + if ch != nil { + delete(s.pings, pingID) + close(ch) + } + s.pingLock.Unlock() + return nil +} + +// handleGoAway is invokde for a typeGoAway frame +func (s *Session) handleGoAway(hdr header) error { + code := hdr.Length() + switch code { + case goAwayNormal: + atomic.SwapInt32(&s.remoteGoAway, 1) + case goAwayProtoErr: + s.logger.Printf("[ERR] yamux: received protocol error go away") + return fmt.Errorf("yamux protocol error") + case goAwayInternalErr: + s.logger.Printf("[ERR] yamux: received internal error go away") + return fmt.Errorf("remote yamux internal error") + default: + s.logger.Printf("[ERR] yamux: received unexpected go away") + return fmt.Errorf("unexpected go away received") + } + return nil +} + +// incomingStream is used to create a new incoming stream +func (s *Session) incomingStream(id uint32) error { + if s.client != (id%2 == 0) { + s.logger.Printf("[ERR] yamux: both endpoints are clients") + return fmt.Errorf("both yamux endpoints are clients") + } + // Reject immediately if we are doing a go away + if atomic.LoadInt32(&s.localGoAway) == 1 { + hdr := header(make([]byte, headerSize)) + hdr.encode(typeWindowUpdate, flagRST, id, 0) + return s.sendNoWait(hdr) + } + + // Allocate a new stream + stream := newStream(s, id, streamSYNReceived) + + s.streamLock.Lock() + defer s.streamLock.Unlock() + + // Check if stream already exists + if _, ok := s.streams[id]; ok { + s.logger.Printf("[ERR] yamux: duplicate stream declared") + if sendErr := s.sendNoWait(s.goAway(goAwayProtoErr)); sendErr != nil { + s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) + } + return ErrDuplicateStream + } + + // Register the stream + s.streams[id] = stream + + // Check if we've exceeded the backlog + select { + case s.acceptCh <- stream: + return nil + default: + // Backlog exceeded! RST the stream + s.logger.Printf("[WARN] yamux: backlog exceeded, forcing connection reset") + delete(s.streams, id) + stream.sendHdr.encode(typeWindowUpdate, flagRST, id, 0) + return s.sendNoWait(stream.sendHdr) + } +} + +// closeStream is used to close a stream once both sides have +// issued a close. If there was an in-flight SYN and the stream +// was not yet established, then this will give the credit back. +func (s *Session) closeStream(id uint32) { + s.streamLock.Lock() + if _, ok := s.inflight[id]; ok { + select { + case <-s.synCh: + default: + s.logger.Printf("[ERR] yamux: SYN tracking out of sync") + } + } + delete(s.streams, id) + s.streamLock.Unlock() +} + +// establishStream is used to mark a stream that was in the +// SYN Sent state as established. +func (s *Session) establishStream(id uint32) { + s.streamLock.Lock() + if _, ok := s.inflight[id]; ok { + delete(s.inflight, id) + } else { + s.logger.Printf("[ERR] yamux: established stream without inflight SYN (no tracking entry)") + } + select { + case <-s.synCh: + default: + s.logger.Printf("[ERR] yamux: established stream without inflight SYN (didn't have semaphore)") + } + s.streamLock.Unlock() +} diff --git a/vendor/github.com/whyrusleeping/yamux/spec.md b/vendor/github.com/whyrusleeping/yamux/spec.md new file mode 100644 index 00000000..183d797b --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/spec.md @@ -0,0 +1,140 @@ +# Specification + +We use this document to detail the internal specification of Yamux. +This is used both as a guide for implementing Yamux, but also for +alternative interoperable libraries to be built. + +# Framing + +Yamux uses a streaming connection underneath, but imposes a message +framing so that it can be shared between many logical streams. Each +frame contains a header like: + +* Version (8 bits) +* Type (8 bits) +* Flags (16 bits) +* StreamID (32 bits) +* Length (32 bits) + +This means that each header has a 12 byte overhead. +All fields are encoded in network order (big endian). +Each field is described below: + +## Version Field + +The version field is used for future backward compatibility. At the +current time, the field is always set to 0, to indicate the initial +version. + +## Type Field + +The type field is used to switch the frame message type. The following +message types are supported: + +* 0x0 Data - Used to transmit data. May transmit zero length payloads + depending on the flags. + +* 0x1 Window Update - Used to updated the senders receive window size. + This is used to implement per-session flow control. + +* 0x2 Ping - Used to measure RTT. It can also be used to heart-beat + and do keep-alives over TCP. + +* 0x3 Go Away - Used to close a session. + +## Flag Field + +The flags field is used to provide additional information related +to the message type. The following flags are supported: + +* 0x1 SYN - Signals the start of a new stream. May be sent with a data or + window update message. Also sent with a ping to indicate outbound. + +* 0x2 ACK - Acknowledges the start of a new stream. May be sent with a data + or window update message. Also sent with a ping to indicate response. + +* 0x4 FIN - Performs a half-close of a stream. May be sent with a data + message or window update. + +* 0x8 RST - Reset a stream immediately. May be sent with a data or + window update message. + +## StreamID Field + +The StreamID field is used to identify the logical stream the frame +is addressing. The client side should use odd ID's, and the server even. +This prevents any collisions. Additionally, the 0 ID is reserved to represent +the session. + +Both Ping and Go Away messages should always use the 0 StreamID. + +## Length Field + +The meaning of the length field depends on the message type: + +* Data - provides the length of bytes following the header +* Window update - provides a delta update to the window size +* Ping - Contains an opaque value, echoed back +* Go Away - Contains an error code + +# Message Flow + +There is no explicit connection setup, as Yamux relies on an underlying +transport to be provided. However, there is a distinction between client +and server side of the connection. + +## Opening a stream + +To open a stream, an initial data or window update frame is sent +with a new StreamID. The SYN flag should be set to signal a new stream. + +The receiver must then reply with either a data or window update frame +with the StreamID along with the ACK flag to accept the stream or with +the RST flag to reject the stream. + +Because we are relying on the reliable stream underneath, a connection +can begin sending data once the SYN flag is sent. The corresponding +ACK does not need to be received. This is particularly well suited +for an RPC system where a client wants to open a stream and immediately +fire a request without waiting for the RTT of the ACK. + +This does introduce the possibility of a connection being rejected +after data has been sent already. This is a slight semantic difference +from TCP, where the conection cannot be refused after it is opened. +Clients should be prepared to handle this by checking for an error +that indicates a RST was received. + +## Closing a stream + +To close a stream, either side sends a data or window update frame +along with the FIN flag. This does a half-close indicating the sender +will send no further data. + +Once both sides have closed the connection, the stream is closed. + +Alternatively, if an error occurs, the RST flag can be used to +hard close a stream immediately. + +## Flow Control + +When Yamux is initially starts each stream with a 256KB window size. +There is no window size for the session. + +To prevent the streams from stalling, window update frames should be +sent regularly. Yamux can be configured to provide a larger limit for +windows sizes. Both sides assume the initial 256KB window, but can +immediately send a window update as part of the SYN/ACK indicating a +larger window. + +Both sides should track the number of bytes sent in Data frames +only, as only they are tracked as part of the window size. + +## Session termination + +When a session is being terminated, the Go Away message should +be sent. The Length should be set to one of the following to +provide an error code: + +* 0x0 Normal termination +* 0x1 Protocol error +* 0x2 Internal error diff --git a/vendor/github.com/whyrusleeping/yamux/stream.go b/vendor/github.com/whyrusleeping/yamux/stream.go new file mode 100644 index 00000000..58a8f94f --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/stream.go @@ -0,0 +1,492 @@ +package yamux + +import ( + "bytes" + "io" + "sync" + "sync/atomic" + "time" + + "github.com/libp2p/go-buffer-pool" +) + +type streamState int + +const ( + streamInit streamState = iota + streamSYNSent + streamSYNReceived + streamEstablished + streamLocalClose + streamRemoteClose + streamClosed + streamReset +) + +// Stream is used to represent a logical stream +// within a session. +type Stream struct { + recvWindow uint32 + sendWindow uint32 + + id uint32 + session *Session + + state streamState + stateLock sync.Mutex + + recvLock sync.Mutex + recvBuf pool.Buffer + + controlHdr header + controlErr chan error + controlHdrLock sync.Mutex + + sendHdr header + sendErr chan error + sendLock sync.Mutex + + recvNotifyCh chan struct{} + sendNotifyCh chan struct{} + + readDeadline atomic.Value // time.Time + writeDeadline atomic.Value // time.Time +} + +// newStream is used to construct a new stream within +// a given session for an ID +func newStream(session *Session, id uint32, state streamState) *Stream { + s := &Stream{ + id: id, + session: session, + state: state, + controlHdr: header(make([]byte, headerSize)), + controlErr: make(chan error, 1), + sendHdr: header(make([]byte, headerSize)), + sendErr: make(chan error, 1), + recvWindow: initialStreamWindow, + sendWindow: initialStreamWindow, + recvNotifyCh: make(chan struct{}, 1), + sendNotifyCh: make(chan struct{}, 1), + } + s.readDeadline.Store(time.Time{}) + s.writeDeadline.Store(time.Time{}) + return s +} + +// Session returns the associated stream session +func (s *Stream) Session() *Session { + return s.session +} + +// StreamID returns the ID of this stream +func (s *Stream) StreamID() uint32 { + return s.id +} + +// Read is used to read from the stream +func (s *Stream) Read(b []byte) (n int, err error) { + defer asyncNotify(s.recvNotifyCh) +START: + s.stateLock.Lock() + switch s.state { + case streamRemoteClose: + fallthrough + case streamClosed: + s.recvLock.Lock() + if s.recvBuf.Len() == 0 { + s.recvLock.Unlock() + s.stateLock.Unlock() + return 0, io.EOF + } + s.recvLock.Unlock() + case streamReset: + s.stateLock.Unlock() + return 0, ErrConnectionReset + } + s.stateLock.Unlock() + + // If there is no data available, block + s.recvLock.Lock() + if s.recvBuf.Len() == 0 { + s.recvLock.Unlock() + goto WAIT + } + + // Read any bytes + n, _ = s.recvBuf.Read(b) + s.recvLock.Unlock() + + // Send a window update potentially + err = s.sendWindowUpdate() + return n, err + +WAIT: + var timeout <-chan time.Time + returnTimer := func() {} + readDeadline := s.readDeadline.Load().(time.Time) + if !readDeadline.IsZero() { + delay := readDeadline.Sub(time.Now()) + timer, cancelFunc := pooledTimer(delay) + timeout = timer.C + returnTimer = cancelFunc + } + select { + case <-s.recvNotifyCh: + returnTimer() + goto START + case <-timeout: + returnTimer() + return 0, ErrTimeout + } +} + +// Write is used to write to the stream +func (s *Stream) Write(b []byte) (n int, err error) { + s.sendLock.Lock() + defer s.sendLock.Unlock() + total := 0 + + var timeout <-chan time.Time + writeDeadline := s.writeDeadline.Load().(time.Time) + if !writeDeadline.IsZero() { + delay := writeDeadline.Sub(time.Now()) + timer, cancelFunc := pooledTimer(delay) + defer cancelFunc() + timeout = timer.C + } + for total < len(b) { + n, err := s.write(b[total:], timeout) + total += n + if err != nil { + return total, err + } + } + return total, nil +} + +// write is used to write to the stream, may return on +// a short write. +func (s *Stream) write(b []byte, timeout <-chan time.Time) (n int, err error) { + var flags uint16 + var max uint32 + var body io.Reader + +START: + s.stateLock.Lock() + switch s.state { + case streamLocalClose: + fallthrough + case streamClosed: + s.stateLock.Unlock() + return 0, ErrStreamClosed + case streamReset: + s.stateLock.Unlock() + return 0, ErrConnectionReset + } + s.stateLock.Unlock() + + // If there is no data available, block + window := atomic.LoadUint32(&s.sendWindow) + if window == 0 { + goto WAIT + } + + // Determine the flags if any + flags = s.sendFlags() + + // Send up to our send window + max = min(window, uint32(len(b))) + body = bytes.NewReader(b[:max]) + + // Send the header + s.sendHdr.encode(typeData, flags, s.id, max) + if err = s.session.waitForSendErr(s.sendHdr, body, s.sendErr, timeout); err != nil { + return 0, err + } + + // Reduce our send window + atomic.AddUint32(&s.sendWindow, ^uint32(max-1)) + + // Unlock + return int(max), err + +WAIT: + select { + case <-s.sendNotifyCh: + goto START + case <-timeout: + return 0, ErrTimeout + } +} + +// sendFlags determines any flags that are appropriate +// based on the current stream state +func (s *Stream) sendFlags() uint16 { + s.stateLock.Lock() + defer s.stateLock.Unlock() + var flags uint16 + switch s.state { + case streamInit: + flags |= flagSYN + s.state = streamSYNSent + case streamSYNReceived: + flags |= flagACK + s.state = streamEstablished + } + return flags +} + +// sendWindowUpdate potentially sends a window update enabling +// further writes to take place. Must be invoked with the lock. +func (s *Stream) sendWindowUpdate() error { + s.controlHdrLock.Lock() + defer s.controlHdrLock.Unlock() + + // Determine the delta update + max := s.session.config.MaxStreamWindowSize + s.recvLock.Lock() + delta := (max - uint32(s.recvBuf.Len())) - s.recvWindow + + // Determine the flags if any + flags := s.sendFlags() + + // Check if we can omit the update + if delta < (max/2) && flags == 0 { + s.recvLock.Unlock() + return nil + } + + // Update our window + s.recvWindow += delta + s.recvLock.Unlock() + + // Send the header + s.controlHdr.encode(typeWindowUpdate, flags, s.id, delta) + if err := s.session.waitForSendErr(s.controlHdr, nil, s.controlErr, nil); err != nil { + return err + } + return nil +} + +// sendClose is used to send a FIN +func (s *Stream) sendClose() error { + s.controlHdrLock.Lock() + defer s.controlHdrLock.Unlock() + + flags := s.sendFlags() + flags |= flagFIN + s.controlHdr.encode(typeWindowUpdate, flags, s.id, 0) + return s.session.waitForSendErr(s.controlHdr, nil, s.controlErr, nil) +} + +// sendReset is used to send a RST +func (s *Stream) sendReset() error { + s.controlHdrLock.Lock() + defer s.controlHdrLock.Unlock() + + s.controlHdr.encode(typeWindowUpdate, flagRST, s.id, 0) + return s.session.waitForSendErr(s.controlHdr, nil, s.controlErr, nil) +} + +// Reset resets the stream (forcibly closes the stream) +func (s *Stream) Reset() error { + s.stateLock.Lock() + switch s.state { + case streamInit: + // No need to send anything. + s.state = streamReset + s.stateLock.Unlock() + return nil + case streamClosed, streamReset: + s.stateLock.Unlock() + return nil + case streamSYNSent, streamSYNReceived, streamEstablished: + case streamLocalClose, streamRemoteClose: + default: + panic("unhandled state") + } + s.state = streamReset + s.stateLock.Unlock() + + err := s.sendReset() + s.notifyWaiting() + s.session.closeStream(s.id) + + return err +} + +// Close is used to close the stream +func (s *Stream) Close() error { + closeStream := false + s.stateLock.Lock() + switch s.state { + case streamInit, streamSYNSent, streamSYNReceived, streamEstablished: + s.state = streamLocalClose + goto SEND_CLOSE + + case streamLocalClose: + case streamRemoteClose: + s.state = streamClosed + closeStream = true + goto SEND_CLOSE + + case streamClosed: + case streamReset: + default: + panic("unhandled state") + } + s.stateLock.Unlock() + return nil +SEND_CLOSE: + s.stateLock.Unlock() + err := s.sendClose() + s.notifyWaiting() + if closeStream { + s.session.closeStream(s.id) + } + return err +} + +// forceClose is used for when the session is exiting +func (s *Stream) forceClose() { + s.stateLock.Lock() + switch s.state { + case streamClosed: + // Already successfully closed. It just hasn't been removed from + // the list of streams yet. + default: + s.state = streamReset + } + s.stateLock.Unlock() + s.notifyWaiting() +} + +// processFlags is used to update the state of the stream +// based on set flags, if any. Lock must be held +func (s *Stream) processFlags(flags uint16) error { + // Close the stream without holding the state lock + closeStream := false + defer func() { + if closeStream { + s.session.closeStream(s.id) + } + }() + + s.stateLock.Lock() + defer s.stateLock.Unlock() + if flags&flagACK == flagACK { + if s.state == streamSYNSent { + s.state = streamEstablished + } + s.session.establishStream(s.id) + } + if flags&flagFIN == flagFIN { + switch s.state { + case streamSYNSent: + fallthrough + case streamSYNReceived: + fallthrough + case streamEstablished: + s.state = streamRemoteClose + s.notifyWaiting() + case streamLocalClose: + s.state = streamClosed + closeStream = true + s.notifyWaiting() + default: + s.session.logger.Printf("[ERR] yamux: unexpected FIN flag in state %d", s.state) + return ErrUnexpectedFlag + } + } + if flags&flagRST == flagRST { + s.state = streamReset + closeStream = true + s.notifyWaiting() + } + return nil +} + +// notifyWaiting notifies all the waiting channels +func (s *Stream) notifyWaiting() { + asyncNotify(s.recvNotifyCh) + asyncNotify(s.sendNotifyCh) +} + +// incrSendWindow updates the size of our send window +func (s *Stream) incrSendWindow(hdr header, flags uint16) error { + if err := s.processFlags(flags); err != nil { + return err + } + + // Increase window, unblock a sender + atomic.AddUint32(&s.sendWindow, hdr.Length()) + asyncNotify(s.sendNotifyCh) + return nil +} + +// readData is used to handle a data frame +func (s *Stream) readData(hdr header, flags uint16, conn io.Reader) error { + if err := s.processFlags(flags); err != nil { + return err + } + + // Check that our recv window is not exceeded + length := hdr.Length() + if length == 0 { + return nil + } + + // Wrap in a limited reader + conn = &io.LimitedReader{R: conn, N: int64(length)} + + // Copy into buffer + s.recvLock.Lock() + + if length > s.recvWindow { + s.session.logger.Printf("[ERR] yamux: receive window exceeded (stream: %d, remain: %d, recv: %d)", s.id, s.recvWindow, length) + return ErrRecvWindowExceeded + } + + s.recvBuf.Grow(int(length)) + if _, err := io.Copy(&s.recvBuf, conn); err != nil { + s.session.logger.Printf("[ERR] yamux: Failed to read stream data: %v", err) + s.recvLock.Unlock() + return err + } + + // Decrement the receive window + s.recvWindow -= length + s.recvLock.Unlock() + + // Unblock any readers + asyncNotify(s.recvNotifyCh) + return nil +} + +// SetDeadline sets the read and write deadlines +func (s *Stream) SetDeadline(t time.Time) error { + if err := s.SetReadDeadline(t); err != nil { + return err + } + if err := s.SetWriteDeadline(t); err != nil { + return err + } + return nil +} + +// SetReadDeadline sets the deadline for future Read calls. +func (s *Stream) SetReadDeadline(t time.Time) error { + s.readDeadline.Store(t) + return nil +} + +// SetWriteDeadline sets the deadline for future Write calls +func (s *Stream) SetWriteDeadline(t time.Time) error { + s.writeDeadline.Store(t) + return nil +} + +// Shrink is a no-op. The internal buffer automatically shrinks itself. +func (s *Stream) Shrink() { +} diff --git a/vendor/github.com/whyrusleeping/yamux/util.go b/vendor/github.com/whyrusleeping/yamux/util.go new file mode 100644 index 00000000..8a73e924 --- /dev/null +++ b/vendor/github.com/whyrusleeping/yamux/util.go @@ -0,0 +1,43 @@ +package yamux + +import ( + "sync" + "time" +) + +var ( + timerPool = &sync.Pool{ + New: func() interface{} { + timer := time.NewTimer(time.Hour * 1e6) + timer.Stop() + return timer + }, + } +) + +// asyncSendErr is used to try an async send of an error +func asyncSendErr(ch chan error, err error) { + if ch == nil { + return + } + select { + case ch <- err: + default: + } +} + +// asyncNotify is used to signal a waiting goroutine +func asyncNotify(ch chan struct{}) { + select { + case ch <- struct{}{}: + default: + } +} + +// min computes the minimum of two values +func min(a, b uint32) uint32 { + if a < b { + return a + } + return b +} diff --git a/vendor/github.com/wsddn/go-ecdh/ecdh_test.go b/vendor/github.com/wsddn/go-ecdh/ecdh_test.go deleted file mode 100644 index 67f57633..00000000 --- a/vendor/github.com/wsddn/go-ecdh/ecdh_test.go +++ /dev/null @@ -1,104 +0,0 @@ -package ecdh - -import ( - "bytes" - "crypto" - "crypto/elliptic" - "crypto/rand" - "testing" -) - -func TestNIST224(t *testing.T) { - testECDH(NewEllipticECDH(elliptic.P224()), t) -} - -func TestNIST256(t *testing.T) { - testECDH(NewEllipticECDH(elliptic.P256()), t) -} - -func TestNIST384(t *testing.T) { - testECDH(NewEllipticECDH(elliptic.P384()), t) -} - -func TestNIST521(t *testing.T) { - testECDH(NewEllipticECDH(elliptic.P521()), t) -} - -func TestCurve25519(t *testing.T) { - testECDH(NewCurve25519ECDH(), t) -} - -func BenchmarkNIST224(b *testing.B) { - for i := 0; i < b.N; i++ { - testECDH(NewEllipticECDH(elliptic.P224()), b) - } -} - -func BenchmarkNIST256(b *testing.B) { - for i := 0; i < b.N; i++ { - testECDH(NewEllipticECDH(elliptic.P256()), b) - } -} - -func BenchmarkNIST384(b *testing.B) { - for i := 0; i < b.N; i++ { - testECDH(NewEllipticECDH(elliptic.P384()), b) - } -} - -func BenchmarkNIST521(b *testing.B) { - for i := 0; i < b.N; i++ { - testECDH(NewEllipticECDH(elliptic.P521()), b) - } -} - -func BenchmarkCurve25519(b *testing.B) { - for i := 0; i < b.N; i++ { - testECDH(NewCurve25519ECDH(), b) - } -} - - -func testECDH(e ECDH, t testing.TB) { - var privKey1, privKey2 crypto.PrivateKey - var pubKey1, pubKey2 crypto.PublicKey - var pubKey1Buf, pubKey2Buf []byte - var err error - var ok bool - var secret1, secret2 []byte - - privKey1, pubKey1, err = e.GenerateKey(rand.Reader) - if err != nil { - t.Error(err) - } - privKey2, pubKey2, err = e.GenerateKey(rand.Reader) - if err != nil { - t.Error(err) - } - - pubKey1Buf = e.Marshal(pubKey1) - pubKey2Buf = e.Marshal(pubKey2) - - pubKey1, ok = e.Unmarshal(pubKey1Buf) - if !ok { - t.Fatalf("Unmarshal does not work") - } - - pubKey2, ok = e.Unmarshal(pubKey2Buf) - if !ok { - t.Fatalf("Unmarshal does not work") - } - - secret1, err = e.GenerateSharedSecret(privKey1, pubKey2) - if err != nil { - t.Error(err) - } - secret2, err = e.GenerateSharedSecret(privKey2, pubKey1) - if err != nil { - t.Error(err) - } - - if !bytes.Equal(secret1, secret2) { - t.Fatalf("The two shared keys: %d, %d do not match", secret1, secret2) - } -} diff --git a/vendor/go.opencensus.io/AUTHORS b/vendor/go.opencensus.io/AUTHORS new file mode 100644 index 00000000..e491a9e7 --- /dev/null +++ b/vendor/go.opencensus.io/AUTHORS @@ -0,0 +1 @@ +Google Inc. diff --git a/vendor/go.opencensus.io/LICENSE b/vendor/go.opencensus.io/LICENSE new file mode 100644 index 00000000..7a4a3ea2 --- /dev/null +++ b/vendor/go.opencensus.io/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/vendor/go.opencensus.io/internal/tagencoding/tagencoding.go b/vendor/go.opencensus.io/internal/tagencoding/tagencoding.go new file mode 100644 index 00000000..41b2c3fc --- /dev/null +++ b/vendor/go.opencensus.io/internal/tagencoding/tagencoding.go @@ -0,0 +1,75 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Package tagencoding contains the tag encoding +// used interally by the stats collector. +package tagencoding // import "go.opencensus.io/internal/tagencoding" + +// Values represent the encoded buffer for the values. +type Values struct { + Buffer []byte + WriteIndex int + ReadIndex int +} + +func (vb *Values) growIfRequired(expected int) { + if len(vb.Buffer)-vb.WriteIndex < expected { + tmp := make([]byte, 2*(len(vb.Buffer)+1)+expected) + copy(tmp, vb.Buffer) + vb.Buffer = tmp + } +} + +// WriteValue is the helper method to encode Values from map[Key][]byte. +func (vb *Values) WriteValue(v []byte) { + length := len(v) & 0xff + vb.growIfRequired(1 + length) + + // writing length of v + vb.Buffer[vb.WriteIndex] = byte(length) + vb.WriteIndex++ + + if length == 0 { + // No value was encoded for this key + return + } + + // writing v + copy(vb.Buffer[vb.WriteIndex:], v[:length]) + vb.WriteIndex += length +} + +// ReadValue is the helper method to decode Values to a map[Key][]byte. +func (vb *Values) ReadValue() []byte { + // read length of v + length := int(vb.Buffer[vb.ReadIndex]) + vb.ReadIndex++ + if length == 0 { + // No value was encoded for this key + return nil + } + + // read value of v + v := make([]byte, length) + endIdx := vb.ReadIndex + length + copy(v, vb.Buffer[vb.ReadIndex:endIdx]) + vb.ReadIndex = endIdx + return v +} + +// Bytes returns a reference to already written bytes in the Buffer. +func (vb *Values) Bytes() []byte { + return vb.Buffer[:vb.WriteIndex] +} diff --git a/vendor/go.opencensus.io/metric/metricdata/doc.go b/vendor/go.opencensus.io/metric/metricdata/doc.go new file mode 100644 index 00000000..52a7b3bf --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/doc.go @@ -0,0 +1,19 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package metricdata contains the metrics data model. +// +// This is an EXPERIMENTAL package, and may change in arbitrary ways without +// notice. +package metricdata // import "go.opencensus.io/metric/metricdata" diff --git a/vendor/go.opencensus.io/metric/metricdata/exemplar.go b/vendor/go.opencensus.io/metric/metricdata/exemplar.go new file mode 100644 index 00000000..12695ce2 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/exemplar.go @@ -0,0 +1,38 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricdata + +import ( + "time" +) + +// Exemplars keys. +const ( + AttachmentKeySpanContext = "SpanContext" +) + +// Exemplar is an example data point associated with each bucket of a +// distribution type aggregation. +// +// Their purpose is to provide an example of the kind of thing +// (request, RPC, trace span, etc.) that resulted in that measurement. +type Exemplar struct { + Value float64 // the value that was recorded + Timestamp time.Time // the time the value was recorded + Attachments Attachments // attachments (if any) +} + +// Attachments is a map of extra values associated with a recorded data point. +type Attachments map[string]interface{} diff --git a/vendor/go.opencensus.io/metric/metricdata/label.go b/vendor/go.opencensus.io/metric/metricdata/label.go new file mode 100644 index 00000000..aadae41e --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/label.go @@ -0,0 +1,35 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricdata + +// LabelKey represents key of a label. It has optional +// description attribute. +type LabelKey struct { + Key string + Description string +} + +// LabelValue represents the value of a label. +// The zero value represents a missing label value, which may be treated +// differently to an empty string value by some back ends. +type LabelValue struct { + Value string // string value of the label + Present bool // flag that indicated whether a value is present or not +} + +// NewLabelValue creates a new non-nil LabelValue that represents the given string. +func NewLabelValue(val string) LabelValue { + return LabelValue{Value: val, Present: true} +} diff --git a/vendor/go.opencensus.io/metric/metricdata/metric.go b/vendor/go.opencensus.io/metric/metricdata/metric.go new file mode 100644 index 00000000..8293712c --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/metric.go @@ -0,0 +1,46 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricdata + +import ( + "time" + + "go.opencensus.io/resource" +) + +// Descriptor holds metadata about a metric. +type Descriptor struct { + Name string // full name of the metric + Description string // human-readable description + Unit Unit // units for the measure + Type Type // type of measure + LabelKeys []LabelKey // label keys +} + +// Metric represents a quantity measured against a resource with different +// label value combinations. +type Metric struct { + Descriptor Descriptor // metric descriptor + Resource *resource.Resource // resource against which this was measured + TimeSeries []*TimeSeries // one time series for each combination of label values +} + +// TimeSeries is a sequence of points associated with a combination of label +// values. +type TimeSeries struct { + LabelValues []LabelValue // label values, same order as keys in the metric descriptor + Points []Point // points sequence + StartTime time.Time // time we started recording this time series +} diff --git a/vendor/go.opencensus.io/metric/metricdata/point.go b/vendor/go.opencensus.io/metric/metricdata/point.go new file mode 100644 index 00000000..7fe057b1 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/point.go @@ -0,0 +1,193 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricdata + +import ( + "time" +) + +// Point is a single data point of a time series. +type Point struct { + // Time is the point in time that this point represents in a time series. + Time time.Time + // Value is the value of this point. Prefer using ReadValue to switching on + // the value type, since new value types might be added. + Value interface{} +} + +//go:generate stringer -type ValueType + +// NewFloat64Point creates a new Point holding a float64 value. +func NewFloat64Point(t time.Time, val float64) Point { + return Point{ + Value: val, + Time: t, + } +} + +// NewInt64Point creates a new Point holding an int64 value. +func NewInt64Point(t time.Time, val int64) Point { + return Point{ + Value: val, + Time: t, + } +} + +// NewDistributionPoint creates a new Point holding a Distribution value. +func NewDistributionPoint(t time.Time, val *Distribution) Point { + return Point{ + Value: val, + Time: t, + } +} + +// NewSummaryPoint creates a new Point holding a Summary value. +func NewSummaryPoint(t time.Time, val *Summary) Point { + return Point{ + Value: val, + Time: t, + } +} + +// ValueVisitor allows reading the value of a point. +type ValueVisitor interface { + VisitFloat64Value(float64) + VisitInt64Value(int64) + VisitDistributionValue(*Distribution) + VisitSummaryValue(*Summary) +} + +// ReadValue accepts a ValueVisitor and calls the appropriate method with the +// value of this point. +// Consumers of Point should use this in preference to switching on the type +// of the value directly, since new value types may be added. +func (p Point) ReadValue(vv ValueVisitor) { + switch v := p.Value.(type) { + case int64: + vv.VisitInt64Value(v) + case float64: + vv.VisitFloat64Value(v) + case *Distribution: + vv.VisitDistributionValue(v) + case *Summary: + vv.VisitSummaryValue(v) + default: + panic("unexpected value type") + } +} + +// Distribution contains summary statistics for a population of values. It +// optionally contains a histogram representing the distribution of those +// values across a set of buckets. +type Distribution struct { + // Count is the number of values in the population. Must be non-negative. This value + // must equal the sum of the values in bucket_counts if a histogram is + // provided. + Count int64 + // Sum is the sum of the values in the population. If count is zero then this field + // must be zero. + Sum float64 + // SumOfSquaredDeviation is the sum of squared deviations from the mean of the values in the + // population. For values x_i this is: + // + // Sum[i=1..n]((x_i - mean)^2) + // + // Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition + // describes Welford's method for accumulating this sum in one pass. + // + // If count is zero then this field must be zero. + SumOfSquaredDeviation float64 + // BucketOptions describes the bounds of the histogram buckets in this + // distribution. + // + // A Distribution may optionally contain a histogram of the values in the + // population. + // + // If nil, there is no associated histogram. + BucketOptions *BucketOptions + // Bucket If the distribution does not have a histogram, then omit this field. + // If there is a histogram, then the sum of the values in the Bucket counts + // must equal the value in the count field of the distribution. + Buckets []Bucket +} + +// BucketOptions describes the bounds of the histogram buckets in this +// distribution. +type BucketOptions struct { + // Bounds specifies a set of bucket upper bounds. + // This defines len(bounds) + 1 (= N) buckets. The boundaries for bucket + // index i are: + // + // [0, Bounds[i]) for i == 0 + // [Bounds[i-1], Bounds[i]) for 0 < i < N-1 + // [Bounds[i-1], +infinity) for i == N-1 + Bounds []float64 +} + +// Bucket represents a single bucket (value range) in a distribution. +type Bucket struct { + // Count is the number of values in each bucket of the histogram, as described in + // bucket_bounds. + Count int64 + // Exemplar associated with this bucket (if any). + Exemplar *Exemplar +} + +// Summary is a representation of percentiles. +type Summary struct { + // Count is the cumulative count (if available). + Count int64 + // Sum is the cumulative sum of values (if available). + Sum float64 + // HasCountAndSum is true if Count and Sum are available. + HasCountAndSum bool + // Snapshot represents percentiles calculated over an arbitrary time window. + // The values in this struct can be reset at arbitrary unknown times, with + // the requirement that all of them are reset at the same time. + Snapshot Snapshot +} + +// Snapshot represents percentiles over an arbitrary time. +// The values in this struct can be reset at arbitrary unknown times, with +// the requirement that all of them are reset at the same time. +type Snapshot struct { + // Count is the number of values in the snapshot. Optional since some systems don't + // expose this. Set to 0 if not available. + Count int64 + // Sum is the sum of values in the snapshot. Optional since some systems don't + // expose this. If count is 0 then this field must be zero. + Sum float64 + // Percentiles is a map from percentile (range (0-100.0]) to the value of + // the percentile. + Percentiles map[float64]float64 +} + +//go:generate stringer -type Type + +// Type is the overall type of metric, including its value type and whether it +// represents a cumulative total (since the start time) or if it represents a +// gauge value. +type Type int + +// Metric types. +const ( + TypeGaugeInt64 Type = iota + TypeGaugeFloat64 + TypeGaugeDistribution + TypeCumulativeInt64 + TypeCumulativeFloat64 + TypeCumulativeDistribution + TypeSummary +) diff --git a/vendor/go.opencensus.io/metric/metricdata/type_string.go b/vendor/go.opencensus.io/metric/metricdata/type_string.go new file mode 100644 index 00000000..c3f8ec27 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/type_string.go @@ -0,0 +1,16 @@ +// Code generated by "stringer -type Type"; DO NOT EDIT. + +package metricdata + +import "strconv" + +const _Type_name = "TypeGaugeInt64TypeGaugeFloat64TypeGaugeDistributionTypeCumulativeInt64TypeCumulativeFloat64TypeCumulativeDistributionTypeSummary" + +var _Type_index = [...]uint8{0, 14, 30, 51, 70, 91, 117, 128} + +func (i Type) String() string { + if i < 0 || i >= Type(len(_Type_index)-1) { + return "Type(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Type_name[_Type_index[i]:_Type_index[i+1]] +} diff --git a/vendor/go.opencensus.io/metric/metricdata/unit.go b/vendor/go.opencensus.io/metric/metricdata/unit.go new file mode 100644 index 00000000..b483a137 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/unit.go @@ -0,0 +1,27 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricdata + +// Unit is a string encoded according to the case-sensitive abbreviations from the +// Unified Code for Units of Measure: http://unitsofmeasure.org/ucum.html +type Unit string + +// Predefined units. To record against a unit not represented here, create your +// own Unit type constant from a string. +const ( + UnitDimensionless Unit = "1" + UnitBytes Unit = "By" + UnitMilliseconds Unit = "ms" +) diff --git a/vendor/go.opencensus.io/metric/metricproducer/manager.go b/vendor/go.opencensus.io/metric/metricproducer/manager.go new file mode 100644 index 00000000..ca1f3904 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricproducer/manager.go @@ -0,0 +1,78 @@ +// Copyright 2019, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricproducer + +import ( + "sync" +) + +// Manager maintains a list of active producers. Producers can register +// with the manager to allow readers to read all metrics provided by them. +// Readers can retrieve all producers registered with the manager, +// read metrics from the producers and export them. +type Manager struct { + mu sync.RWMutex + producers map[Producer]struct{} +} + +var prodMgr *Manager +var once sync.Once + +// GlobalManager is a single instance of producer manager +// that is used by all producers and all readers. +func GlobalManager() *Manager { + once.Do(func() { + prodMgr = &Manager{} + prodMgr.producers = make(map[Producer]struct{}) + }) + return prodMgr +} + +// AddProducer adds the producer to the Manager if it is not already present. +func (pm *Manager) AddProducer(producer Producer) { + if producer == nil { + return + } + pm.mu.Lock() + defer pm.mu.Unlock() + pm.producers[producer] = struct{}{} +} + +// DeleteProducer deletes the producer from the Manager if it is present. +func (pm *Manager) DeleteProducer(producer Producer) { + if producer == nil { + return + } + pm.mu.Lock() + defer pm.mu.Unlock() + delete(pm.producers, producer) +} + +// GetAll returns a slice of all producer currently registered with +// the Manager. For each call it generates a new slice. The slice +// should not be cached as registration may change at any time. It is +// typically called periodically by exporter to read metrics from +// the producers. +func (pm *Manager) GetAll() []Producer { + pm.mu.Lock() + defer pm.mu.Unlock() + producers := make([]Producer, len(pm.producers)) + i := 0 + for producer := range pm.producers { + producers[i] = producer + i++ + } + return producers +} diff --git a/vendor/go.opencensus.io/metric/metricproducer/producer.go b/vendor/go.opencensus.io/metric/metricproducer/producer.go new file mode 100644 index 00000000..6cee9ed1 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricproducer/producer.go @@ -0,0 +1,28 @@ +// Copyright 2019, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metricproducer + +import ( + "go.opencensus.io/metric/metricdata" +) + +// Producer is a source of metrics. +type Producer interface { + // Read should return the current values of all metrics supported by this + // metric provider. + // The returned metrics should be unique for each combination of name and + // resource. + Read() []*metricdata.Metric +} diff --git a/vendor/go.opencensus.io/resource/resource.go b/vendor/go.opencensus.io/resource/resource.go new file mode 100644 index 00000000..b1764e1d --- /dev/null +++ b/vendor/go.opencensus.io/resource/resource.go @@ -0,0 +1,164 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package resource provides functionality for resource, which capture +// identifying information about the entities for which signals are exported. +package resource + +import ( + "context" + "fmt" + "os" + "regexp" + "sort" + "strconv" + "strings" +) + +// Environment variables used by FromEnv to decode a resource. +const ( + EnvVarType = "OC_RESOURCE_TYPE" + EnvVarLabels = "OC_RESOURCE_LABELS" +) + +// Resource describes an entity about which identifying information and metadata is exposed. +// For example, a type "k8s.io/container" may hold labels describing the pod name and namespace. +type Resource struct { + Type string + Labels map[string]string +} + +// EncodeLabels encodes a labels map to a string as provided via the OC_RESOURCE_LABELS environment variable. +func EncodeLabels(labels map[string]string) string { + sortedKeys := make([]string, 0, len(labels)) + for k := range labels { + sortedKeys = append(sortedKeys, k) + } + sort.Strings(sortedKeys) + + s := "" + for i, k := range sortedKeys { + if i > 0 { + s += "," + } + s += k + "=" + strconv.Quote(labels[k]) + } + return s +} + +var labelRegex = regexp.MustCompile(`^\s*([[:ascii:]]{1,256}?)=("[[:ascii:]]{0,256}?")\s*,`) + +// DecodeLabels decodes a serialized label map as used in the OC_RESOURCE_LABELS variable. +// A list of labels of the form `="",="",...` is accepted. +// Domain names and paths are accepted as label keys. +// Most users will want to use FromEnv instead. +func DecodeLabels(s string) (map[string]string, error) { + m := map[string]string{} + // Ensure a trailing comma, which allows us to keep the regex simpler + s = strings.TrimRight(strings.TrimSpace(s), ",") + "," + + for len(s) > 0 { + match := labelRegex.FindStringSubmatch(s) + if len(match) == 0 { + return nil, fmt.Errorf("invalid label formatting, remainder: %s", s) + } + v := match[2] + if v == "" { + v = match[3] + } else { + var err error + if v, err = strconv.Unquote(v); err != nil { + return nil, fmt.Errorf("invalid label formatting, remainder: %s, err: %s", s, err) + } + } + m[match[1]] = v + + s = s[len(match[0]):] + } + return m, nil +} + +// FromEnv is a detector that loads resource information from the OC_RESOURCE_TYPE +// and OC_RESOURCE_labelS environment variables. +func FromEnv(context.Context) (*Resource, error) { + res := &Resource{ + Type: strings.TrimSpace(os.Getenv(EnvVarType)), + } + labels := strings.TrimSpace(os.Getenv(EnvVarLabels)) + if labels == "" { + return res, nil + } + var err error + if res.Labels, err = DecodeLabels(labels); err != nil { + return nil, err + } + return res, nil +} + +var _ Detector = FromEnv + +// merge resource information from b into a. In case of a collision, a takes precedence. +func merge(a, b *Resource) *Resource { + if a == nil { + return b + } + if b == nil { + return a + } + res := &Resource{ + Type: a.Type, + Labels: map[string]string{}, + } + if res.Type == "" { + res.Type = b.Type + } + for k, v := range b.Labels { + res.Labels[k] = v + } + // Labels from resource a overwrite labels from resource b. + for k, v := range a.Labels { + res.Labels[k] = v + } + return res +} + +// Detector attempts to detect resource information. +// If the detector cannot find resource information, the returned resource is nil but no +// error is returned. +// An error is only returned on unexpected failures. +type Detector func(context.Context) (*Resource, error) + +// MultiDetector returns a Detector that calls all input detectors in order and +// merges each result with the previous one. In case a type of label key is already set, +// the first set value is takes precedence. +// It returns on the first error that a sub-detector encounters. +func MultiDetector(detectors ...Detector) Detector { + return func(ctx context.Context) (*Resource, error) { + return detectAll(ctx, detectors...) + } +} + +// detectall calls all input detectors sequentially an merges each result with the previous one. +// It returns on the first error that a sub-detector encounters. +func detectAll(ctx context.Context, detectors ...Detector) (*Resource, error) { + var res *Resource + for _, d := range detectors { + r, err := d(ctx) + if err != nil { + return nil, err + } + res = merge(res, r) + } + return res, nil +} diff --git a/vendor/go.opencensus.io/stats/doc.go b/vendor/go.opencensus.io/stats/doc.go new file mode 100644 index 00000000..00d473ee --- /dev/null +++ b/vendor/go.opencensus.io/stats/doc.go @@ -0,0 +1,69 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/* +Package stats contains support for OpenCensus stats recording. + +OpenCensus allows users to create typed measures, record measurements, +aggregate the collected data, and export the aggregated data. + +Measures + +A measure represents a type of data point to be tracked and recorded. +For example, latency, request Mb/s, and response Mb/s are measures +to collect from a server. + +Measure constructors such as Int64 and Float64 automatically +register the measure by the given name. Each registered measure needs +to be unique by name. Measures also have a description and a unit. + +Libraries can define and export measures. Application authors can then +create views and collect and break down measures by the tags they are +interested in. + +Recording measurements + +Measurement is a data point to be collected for a measure. For example, +for a latency (ms) measure, 100 is a measurement that represents a 100ms +latency event. Measurements are created from measures with +the current context. Tags from the current context are recorded with the +measurements if they are any. + +Recorded measurements are dropped immediately if no views are registered for them. +There is usually no need to conditionally enable and disable +recording to reduce cost. Recording of measurements is cheap. + +Libraries can always record measurements, and applications can later decide +on which measurements they want to collect by registering views. This allows +libraries to turn on the instrumentation by default. + +Exemplars + +For a given recorded measurement, the associated exemplar is a diagnostic map +that gives more information about the measurement. + +When aggregated using a Distribution aggregation, an exemplar is kept for each +bucket in the Distribution. This allows you to easily find an example of a +measurement that fell into each bucket. + +For example, if you also use the OpenCensus trace package and you +record a measurement with a context that contains a sampled trace span, +then the trace span will be added to the exemplar associated with the measurement. + +When exported to a supporting back end, you should be able to easily navigate +to example traces that fell into each bucket in the Distribution. + +*/ +package stats // import "go.opencensus.io/stats" diff --git a/vendor/go.opencensus.io/stats/internal/record.go b/vendor/go.opencensus.io/stats/internal/record.go new file mode 100644 index 00000000..36935e62 --- /dev/null +++ b/vendor/go.opencensus.io/stats/internal/record.go @@ -0,0 +1,25 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package internal + +import ( + "go.opencensus.io/tag" +) + +// DefaultRecorder will be called for each Record call. +var DefaultRecorder func(tags *tag.Map, measurement interface{}, attachments map[string]interface{}) + +// SubscriptionReporter reports when a view subscribed with a measure. +var SubscriptionReporter func(measure string) diff --git a/vendor/go.opencensus.io/stats/measure.go b/vendor/go.opencensus.io/stats/measure.go new file mode 100644 index 00000000..1ffd3cef --- /dev/null +++ b/vendor/go.opencensus.io/stats/measure.go @@ -0,0 +1,109 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package stats + +import ( + "sync" + "sync/atomic" +) + +// Measure represents a single numeric value to be tracked and recorded. +// For example, latency, request bytes, and response bytes could be measures +// to collect from a server. +// +// Measures by themselves have no outside effects. In order to be exported, +// the measure needs to be used in a View. If no Views are defined over a +// measure, there is very little cost in recording it. +type Measure interface { + // Name returns the name of this measure. + // + // Measure names are globally unique (among all libraries linked into your program). + // We recommend prefixing the measure name with a domain name relevant to your + // project or application. + // + // Measure names are never sent over the wire or exported to backends. + // They are only used to create Views. + Name() string + + // Description returns the human-readable description of this measure. + Description() string + + // Unit returns the units for the values this measure takes on. + // + // Units are encoded according to the case-sensitive abbreviations from the + // Unified Code for Units of Measure: http://unitsofmeasure.org/ucum.html + Unit() string +} + +// measureDescriptor is the untyped descriptor associated with each measure. +// Int64Measure and Float64Measure wrap measureDescriptor to provide typed +// recording APIs. +// Two Measures with the same name will have the same measureDescriptor. +type measureDescriptor struct { + subs int32 // access atomically + + name string + description string + unit string +} + +func (m *measureDescriptor) subscribe() { + atomic.StoreInt32(&m.subs, 1) +} + +func (m *measureDescriptor) subscribed() bool { + return atomic.LoadInt32(&m.subs) == 1 +} + +var ( + mu sync.RWMutex + measures = make(map[string]*measureDescriptor) +) + +func registerMeasureHandle(name, desc, unit string) *measureDescriptor { + mu.Lock() + defer mu.Unlock() + + if stored, ok := measures[name]; ok { + return stored + } + m := &measureDescriptor{ + name: name, + description: desc, + unit: unit, + } + measures[name] = m + return m +} + +// Measurement is the numeric value measured when recording stats. Each measure +// provides methods to create measurements of their kind. For example, Int64Measure +// provides M to convert an int64 into a measurement. +type Measurement struct { + v float64 + m Measure + desc *measureDescriptor +} + +// Value returns the value of the Measurement as a float64. +func (m Measurement) Value() float64 { + return m.v +} + +// Measure returns the Measure from which this Measurement was created. +func (m Measurement) Measure() Measure { + return m.m +} diff --git a/vendor/go.opencensus.io/stats/measure_float64.go b/vendor/go.opencensus.io/stats/measure_float64.go new file mode 100644 index 00000000..f02c1eda --- /dev/null +++ b/vendor/go.opencensus.io/stats/measure_float64.go @@ -0,0 +1,55 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package stats + +// Float64Measure is a measure for float64 values. +type Float64Measure struct { + desc *measureDescriptor +} + +// M creates a new float64 measurement. +// Use Record to record measurements. +func (m *Float64Measure) M(v float64) Measurement { + return Measurement{ + m: m, + desc: m.desc, + v: v, + } +} + +// Float64 creates a new measure for float64 values. +// +// See the documentation for interface Measure for more guidance on the +// parameters of this function. +func Float64(name, description, unit string) *Float64Measure { + mi := registerMeasureHandle(name, description, unit) + return &Float64Measure{mi} +} + +// Name returns the name of the measure. +func (m *Float64Measure) Name() string { + return m.desc.name +} + +// Description returns the description of the measure. +func (m *Float64Measure) Description() string { + return m.desc.description +} + +// Unit returns the unit of the measure. +func (m *Float64Measure) Unit() string { + return m.desc.unit +} diff --git a/vendor/go.opencensus.io/stats/measure_int64.go b/vendor/go.opencensus.io/stats/measure_int64.go new file mode 100644 index 00000000..d101d797 --- /dev/null +++ b/vendor/go.opencensus.io/stats/measure_int64.go @@ -0,0 +1,55 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package stats + +// Int64Measure is a measure for int64 values. +type Int64Measure struct { + desc *measureDescriptor +} + +// M creates a new int64 measurement. +// Use Record to record measurements. +func (m *Int64Measure) M(v int64) Measurement { + return Measurement{ + m: m, + desc: m.desc, + v: float64(v), + } +} + +// Int64 creates a new measure for int64 values. +// +// See the documentation for interface Measure for more guidance on the +// parameters of this function. +func Int64(name, description, unit string) *Int64Measure { + mi := registerMeasureHandle(name, description, unit) + return &Int64Measure{mi} +} + +// Name returns the name of the measure. +func (m *Int64Measure) Name() string { + return m.desc.name +} + +// Description returns the description of the measure. +func (m *Int64Measure) Description() string { + return m.desc.description +} + +// Unit returns the unit of the measure. +func (m *Int64Measure) Unit() string { + return m.desc.unit +} diff --git a/vendor/go.opencensus.io/stats/record.go b/vendor/go.opencensus.io/stats/record.go new file mode 100644 index 00000000..ad469118 --- /dev/null +++ b/vendor/go.opencensus.io/stats/record.go @@ -0,0 +1,117 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package stats + +import ( + "context" + + "go.opencensus.io/metric/metricdata" + "go.opencensus.io/stats/internal" + "go.opencensus.io/tag" +) + +func init() { + internal.SubscriptionReporter = func(measure string) { + mu.Lock() + measures[measure].subscribe() + mu.Unlock() + } +} + +type recordOptions struct { + attachments metricdata.Attachments + mutators []tag.Mutator + measurements []Measurement +} + +// WithAttachments applies provided exemplar attachments. +func WithAttachments(attachments metricdata.Attachments) Options { + return func(ro *recordOptions) { + ro.attachments = attachments + } +} + +// WithTags applies provided tag mutators. +func WithTags(mutators ...tag.Mutator) Options { + return func(ro *recordOptions) { + ro.mutators = mutators + } +} + +// WithMeasurements applies provided measurements. +func WithMeasurements(measurements ...Measurement) Options { + return func(ro *recordOptions) { + ro.measurements = measurements + } +} + +// Options apply changes to recordOptions. +type Options func(*recordOptions) + +func createRecordOption(ros ...Options) *recordOptions { + o := &recordOptions{} + for _, ro := range ros { + ro(o) + } + return o +} + +// Record records one or multiple measurements with the same context at once. +// If there are any tags in the context, measurements will be tagged with them. +func Record(ctx context.Context, ms ...Measurement) { + RecordWithOptions(ctx, WithMeasurements(ms...)) +} + +// RecordWithTags records one or multiple measurements at once. +// +// Measurements will be tagged with the tags in the context mutated by the mutators. +// RecordWithTags is useful if you want to record with tag mutations but don't want +// to propagate the mutations in the context. +func RecordWithTags(ctx context.Context, mutators []tag.Mutator, ms ...Measurement) error { + return RecordWithOptions(ctx, WithTags(mutators...), WithMeasurements(ms...)) +} + +// RecordWithOptions records measurements from the given options (if any) against context +// and tags and attachments in the options (if any). +// If there are any tags in the context, measurements will be tagged with them. +func RecordWithOptions(ctx context.Context, ros ...Options) error { + o := createRecordOption(ros...) + if len(o.measurements) == 0 { + return nil + } + recorder := internal.DefaultRecorder + if recorder == nil { + return nil + } + record := false + for _, m := range o.measurements { + if m.desc.subscribed() { + record = true + break + } + } + if !record { + return nil + } + if len(o.mutators) > 0 { + var err error + if ctx, err = tag.New(ctx, o.mutators...); err != nil { + return err + } + } + recorder(tag.FromContext(ctx), o.measurements, o.attachments) + return nil +} diff --git a/vendor/go.opencensus.io/stats/units.go b/vendor/go.opencensus.io/stats/units.go new file mode 100644 index 00000000..6931a5f2 --- /dev/null +++ b/vendor/go.opencensus.io/stats/units.go @@ -0,0 +1,25 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package stats + +// Units are encoded according to the case-sensitive abbreviations from the +// Unified Code for Units of Measure: http://unitsofmeasure.org/ucum.html +const ( + UnitNone = "1" // Deprecated: Use UnitDimensionless. + UnitDimensionless = "1" + UnitBytes = "By" + UnitMilliseconds = "ms" +) diff --git a/vendor/go.opencensus.io/stats/view/aggregation.go b/vendor/go.opencensus.io/stats/view/aggregation.go new file mode 100644 index 00000000..b7f169b4 --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/aggregation.go @@ -0,0 +1,120 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +// AggType represents the type of aggregation function used on a View. +type AggType int + +// All available aggregation types. +const ( + AggTypeNone AggType = iota // no aggregation; reserved for future use. + AggTypeCount // the count aggregation, see Count. + AggTypeSum // the sum aggregation, see Sum. + AggTypeDistribution // the distribution aggregation, see Distribution. + AggTypeLastValue // the last value aggregation, see LastValue. +) + +func (t AggType) String() string { + return aggTypeName[t] +} + +var aggTypeName = map[AggType]string{ + AggTypeNone: "None", + AggTypeCount: "Count", + AggTypeSum: "Sum", + AggTypeDistribution: "Distribution", + AggTypeLastValue: "LastValue", +} + +// Aggregation represents a data aggregation method. Use one of the functions: +// Count, Sum, or Distribution to construct an Aggregation. +type Aggregation struct { + Type AggType // Type is the AggType of this Aggregation. + Buckets []float64 // Buckets are the bucket endpoints if this Aggregation represents a distribution, see Distribution. + + newData func() AggregationData +} + +var ( + aggCount = &Aggregation{ + Type: AggTypeCount, + newData: func() AggregationData { + return &CountData{} + }, + } + aggSum = &Aggregation{ + Type: AggTypeSum, + newData: func() AggregationData { + return &SumData{} + }, + } +) + +// Count indicates that data collected and aggregated +// with this method will be turned into a count value. +// For example, total number of accepted requests can be +// aggregated by using Count. +func Count() *Aggregation { + return aggCount +} + +// Sum indicates that data collected and aggregated +// with this method will be summed up. +// For example, accumulated request bytes can be aggregated by using +// Sum. +func Sum() *Aggregation { + return aggSum +} + +// Distribution indicates that the desired aggregation is +// a histogram distribution. +// +// An distribution aggregation may contain a histogram of the values in the +// population. The bucket boundaries for that histogram are described +// by the bounds. This defines len(bounds)+1 buckets. +// +// If len(bounds) >= 2 then the boundaries for bucket index i are: +// +// [-infinity, bounds[i]) for i = 0 +// [bounds[i-1], bounds[i]) for 0 < i < length +// [bounds[i-1], +infinity) for i = length +// +// If len(bounds) is 0 then there is no histogram associated with the +// distribution. There will be a single bucket with boundaries +// (-infinity, +infinity). +// +// If len(bounds) is 1 then there is no finite buckets, and that single +// element is the common boundary of the overflow and underflow buckets. +func Distribution(bounds ...float64) *Aggregation { + return &Aggregation{ + Type: AggTypeDistribution, + Buckets: bounds, + newData: func() AggregationData { + return newDistributionData(bounds) + }, + } +} + +// LastValue only reports the last value recorded using this +// aggregation. All other measurements will be dropped. +func LastValue() *Aggregation { + return &Aggregation{ + Type: AggTypeLastValue, + newData: func() AggregationData { + return &LastValueData{} + }, + } +} diff --git a/vendor/go.opencensus.io/stats/view/aggregation_data.go b/vendor/go.opencensus.io/stats/view/aggregation_data.go new file mode 100644 index 00000000..d500e67f --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/aggregation_data.go @@ -0,0 +1,293 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +import ( + "math" + "time" + + "go.opencensus.io/metric/metricdata" +) + +// AggregationData represents an aggregated value from a collection. +// They are reported on the view data during exporting. +// Mosts users won't directly access aggregration data. +type AggregationData interface { + isAggregationData() bool + addSample(v float64, attachments map[string]interface{}, t time.Time) + clone() AggregationData + equal(other AggregationData) bool + toPoint(t metricdata.Type, time time.Time) metricdata.Point +} + +const epsilon = 1e-9 + +// CountData is the aggregated data for the Count aggregation. +// A count aggregation processes data and counts the recordings. +// +// Most users won't directly access count data. +type CountData struct { + Value int64 +} + +func (a *CountData) isAggregationData() bool { return true } + +func (a *CountData) addSample(_ float64, _ map[string]interface{}, _ time.Time) { + a.Value = a.Value + 1 +} + +func (a *CountData) clone() AggregationData { + return &CountData{Value: a.Value} +} + +func (a *CountData) equal(other AggregationData) bool { + a2, ok := other.(*CountData) + if !ok { + return false + } + + return a.Value == a2.Value +} + +func (a *CountData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { + switch metricType { + case metricdata.TypeCumulativeInt64: + return metricdata.NewInt64Point(t, a.Value) + default: + panic("unsupported metricdata.Type") + } +} + +// SumData is the aggregated data for the Sum aggregation. +// A sum aggregation processes data and sums up the recordings. +// +// Most users won't directly access sum data. +type SumData struct { + Value float64 +} + +func (a *SumData) isAggregationData() bool { return true } + +func (a *SumData) addSample(v float64, _ map[string]interface{}, _ time.Time) { + a.Value += v +} + +func (a *SumData) clone() AggregationData { + return &SumData{Value: a.Value} +} + +func (a *SumData) equal(other AggregationData) bool { + a2, ok := other.(*SumData) + if !ok { + return false + } + return math.Pow(a.Value-a2.Value, 2) < epsilon +} + +func (a *SumData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { + switch metricType { + case metricdata.TypeCumulativeInt64: + return metricdata.NewInt64Point(t, int64(a.Value)) + case metricdata.TypeCumulativeFloat64: + return metricdata.NewFloat64Point(t, a.Value) + default: + panic("unsupported metricdata.Type") + } +} + +// DistributionData is the aggregated data for the +// Distribution aggregation. +// +// Most users won't directly access distribution data. +// +// For a distribution with N bounds, the associated DistributionData will have +// N+1 buckets. +type DistributionData struct { + Count int64 // number of data points aggregated + Min float64 // minimum value in the distribution + Max float64 // max value in the distribution + Mean float64 // mean of the distribution + SumOfSquaredDev float64 // sum of the squared deviation from the mean + CountPerBucket []int64 // number of occurrences per bucket + // ExemplarsPerBucket is slice the same length as CountPerBucket containing + // an exemplar for the associated bucket, or nil. + ExemplarsPerBucket []*metricdata.Exemplar + bounds []float64 // histogram distribution of the values +} + +func newDistributionData(bounds []float64) *DistributionData { + bucketCount := len(bounds) + 1 + return &DistributionData{ + CountPerBucket: make([]int64, bucketCount), + ExemplarsPerBucket: make([]*metricdata.Exemplar, bucketCount), + bounds: bounds, + Min: math.MaxFloat64, + Max: math.SmallestNonzeroFloat64, + } +} + +// Sum returns the sum of all samples collected. +func (a *DistributionData) Sum() float64 { return a.Mean * float64(a.Count) } + +func (a *DistributionData) variance() float64 { + if a.Count <= 1 { + return 0 + } + return a.SumOfSquaredDev / float64(a.Count-1) +} + +func (a *DistributionData) isAggregationData() bool { return true } + +// TODO(songy23): support exemplar attachments. +func (a *DistributionData) addSample(v float64, attachments map[string]interface{}, t time.Time) { + if v < a.Min { + a.Min = v + } + if v > a.Max { + a.Max = v + } + a.Count++ + a.addToBucket(v, attachments, t) + + if a.Count == 1 { + a.Mean = v + return + } + + oldMean := a.Mean + a.Mean = a.Mean + (v-a.Mean)/float64(a.Count) + a.SumOfSquaredDev = a.SumOfSquaredDev + (v-oldMean)*(v-a.Mean) +} + +func (a *DistributionData) addToBucket(v float64, attachments map[string]interface{}, t time.Time) { + var count *int64 + var i int + var b float64 + for i, b = range a.bounds { + if v < b { + count = &a.CountPerBucket[i] + break + } + } + if count == nil { // Last bucket. + i = len(a.bounds) + count = &a.CountPerBucket[i] + } + *count++ + if exemplar := getExemplar(v, attachments, t); exemplar != nil { + a.ExemplarsPerBucket[i] = exemplar + } +} + +func getExemplar(v float64, attachments map[string]interface{}, t time.Time) *metricdata.Exemplar { + if len(attachments) == 0 { + return nil + } + return &metricdata.Exemplar{ + Value: v, + Timestamp: t, + Attachments: attachments, + } +} + +func (a *DistributionData) clone() AggregationData { + c := *a + c.CountPerBucket = append([]int64(nil), a.CountPerBucket...) + c.ExemplarsPerBucket = append([]*metricdata.Exemplar(nil), a.ExemplarsPerBucket...) + return &c +} + +func (a *DistributionData) equal(other AggregationData) bool { + a2, ok := other.(*DistributionData) + if !ok { + return false + } + if a2 == nil { + return false + } + if len(a.CountPerBucket) != len(a2.CountPerBucket) { + return false + } + for i := range a.CountPerBucket { + if a.CountPerBucket[i] != a2.CountPerBucket[i] { + return false + } + } + return a.Count == a2.Count && a.Min == a2.Min && a.Max == a2.Max && math.Pow(a.Mean-a2.Mean, 2) < epsilon && math.Pow(a.variance()-a2.variance(), 2) < epsilon +} + +func (a *DistributionData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { + switch metricType { + case metricdata.TypeCumulativeDistribution: + buckets := []metricdata.Bucket{} + for i := 0; i < len(a.CountPerBucket); i++ { + buckets = append(buckets, metricdata.Bucket{ + Count: a.CountPerBucket[i], + Exemplar: a.ExemplarsPerBucket[i], + }) + } + bucketOptions := &metricdata.BucketOptions{Bounds: a.bounds} + + val := &metricdata.Distribution{ + Count: a.Count, + Sum: a.Sum(), + SumOfSquaredDeviation: a.SumOfSquaredDev, + BucketOptions: bucketOptions, + Buckets: buckets, + } + return metricdata.NewDistributionPoint(t, val) + + default: + // TODO: [rghetia] when we have a use case for TypeGaugeDistribution. + panic("unsupported metricdata.Type") + } +} + +// LastValueData returns the last value recorded for LastValue aggregation. +type LastValueData struct { + Value float64 +} + +func (l *LastValueData) isAggregationData() bool { + return true +} + +func (l *LastValueData) addSample(v float64, _ map[string]interface{}, _ time.Time) { + l.Value = v +} + +func (l *LastValueData) clone() AggregationData { + return &LastValueData{l.Value} +} + +func (l *LastValueData) equal(other AggregationData) bool { + a2, ok := other.(*LastValueData) + if !ok { + return false + } + return l.Value == a2.Value +} + +func (l *LastValueData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { + switch metricType { + case metricdata.TypeGaugeInt64: + return metricdata.NewInt64Point(t, int64(l.Value)) + case metricdata.TypeGaugeFloat64: + return metricdata.NewFloat64Point(t, l.Value) + default: + panic("unsupported metricdata.Type") + } +} diff --git a/vendor/go.opencensus.io/stats/view/collector.go b/vendor/go.opencensus.io/stats/view/collector.go new file mode 100644 index 00000000..8a6a2c0f --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/collector.go @@ -0,0 +1,86 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +import ( + "sort" + "time" + + "go.opencensus.io/internal/tagencoding" + "go.opencensus.io/tag" +) + +type collector struct { + // signatures holds the aggregations values for each unique tag signature + // (values for all keys) to its aggregator. + signatures map[string]AggregationData + // Aggregation is the description of the aggregation to perform for this + // view. + a *Aggregation +} + +func (c *collector) addSample(s string, v float64, attachments map[string]interface{}, t time.Time) { + aggregator, ok := c.signatures[s] + if !ok { + aggregator = c.a.newData() + c.signatures[s] = aggregator + } + aggregator.addSample(v, attachments, t) +} + +// collectRows returns a snapshot of the collected Row values. +func (c *collector) collectedRows(keys []tag.Key) []*Row { + rows := make([]*Row, 0, len(c.signatures)) + for sig, aggregator := range c.signatures { + tags := decodeTags([]byte(sig), keys) + row := &Row{Tags: tags, Data: aggregator.clone()} + rows = append(rows, row) + } + return rows +} + +func (c *collector) clearRows() { + c.signatures = make(map[string]AggregationData) +} + +// encodeWithKeys encodes the map by using values +// only associated with the keys provided. +func encodeWithKeys(m *tag.Map, keys []tag.Key) []byte { + vb := &tagencoding.Values{ + Buffer: make([]byte, len(keys)), + } + for _, k := range keys { + v, _ := m.Value(k) + vb.WriteValue([]byte(v)) + } + return vb.Bytes() +} + +// decodeTags decodes tags from the buffer and +// orders them by the keys. +func decodeTags(buf []byte, keys []tag.Key) []tag.Tag { + vb := &tagencoding.Values{Buffer: buf} + var tags []tag.Tag + for _, k := range keys { + v := vb.ReadValue() + if v != nil { + tags = append(tags, tag.Tag{Key: k, Value: string(v)}) + } + } + vb.ReadIndex = 0 + sort.Slice(tags, func(i, j int) bool { return tags[i].Key.Name() < tags[j].Key.Name() }) + return tags +} diff --git a/vendor/go.opencensus.io/stats/view/doc.go b/vendor/go.opencensus.io/stats/view/doc.go new file mode 100644 index 00000000..dced225c --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/doc.go @@ -0,0 +1,47 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Package view contains support for collecting and exposing aggregates over stats. +// +// In order to collect measurements, views need to be defined and registered. +// A view allows recorded measurements to be filtered and aggregated. +// +// All recorded measurements can be grouped by a list of tags. +// +// OpenCensus provides several aggregation methods: Count, Distribution and Sum. +// +// Count only counts the number of measurement points recorded. +// Distribution provides statistical summary of the aggregated data by counting +// how many recorded measurements fall into each bucket. +// Sum adds up the measurement values. +// LastValue just keeps track of the most recently recorded measurement value. +// All aggregations are cumulative. +// +// Views can be registerd and unregistered at any time during program execution. +// +// Libraries can define views but it is recommended that in most cases registering +// views be left up to applications. +// +// Exporting +// +// Collected and aggregated data can be exported to a metric collection +// backend by registering its exporter. +// +// Multiple exporters can be registered to upload the data to various +// different back ends. +package view // import "go.opencensus.io/stats/view" + +// TODO(acetechnologist): Add a link to the language independent OpenCensus +// spec when it is available. diff --git a/vendor/go.opencensus.io/stats/view/export.go b/vendor/go.opencensus.io/stats/view/export.go new file mode 100644 index 00000000..7cb59718 --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/export.go @@ -0,0 +1,58 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package view + +import "sync" + +var ( + exportersMu sync.RWMutex // guards exporters + exporters = make(map[Exporter]struct{}) +) + +// Exporter exports the collected records as view data. +// +// The ExportView method should return quickly; if an +// Exporter takes a significant amount of time to +// process a Data, that work should be done on another goroutine. +// +// It is safe to assume that ExportView will not be called concurrently from +// multiple goroutines. +// +// The Data should not be modified. +type Exporter interface { + ExportView(viewData *Data) +} + +// RegisterExporter registers an exporter. +// Collected data will be reported via all the +// registered exporters. Once you no longer +// want data to be exported, invoke UnregisterExporter +// with the previously registered exporter. +// +// Binaries can register exporters, libraries shouldn't register exporters. +func RegisterExporter(e Exporter) { + exportersMu.Lock() + defer exportersMu.Unlock() + + exporters[e] = struct{}{} +} + +// UnregisterExporter unregisters an exporter. +func UnregisterExporter(e Exporter) { + exportersMu.Lock() + defer exportersMu.Unlock() + + delete(exporters, e) +} diff --git a/vendor/go.opencensus.io/stats/view/view.go b/vendor/go.opencensus.io/stats/view/view.go new file mode 100644 index 00000000..37f88e1d --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/view.go @@ -0,0 +1,221 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +import ( + "bytes" + "errors" + "fmt" + "reflect" + "sort" + "sync/atomic" + "time" + + "go.opencensus.io/metric/metricdata" + "go.opencensus.io/stats" + "go.opencensus.io/tag" +) + +// View allows users to aggregate the recorded stats.Measurements. +// Views need to be passed to the Register function to be before data will be +// collected and sent to Exporters. +type View struct { + Name string // Name of View. Must be unique. If unset, will default to the name of the Measure. + Description string // Description is a human-readable description for this view. + + // TagKeys are the tag keys describing the grouping of this view. + // A single Row will be produced for each combination of associated tag values. + TagKeys []tag.Key + + // Measure is a stats.Measure to aggregate in this view. + Measure stats.Measure + + // Aggregation is the aggregation function tp apply to the set of Measurements. + Aggregation *Aggregation +} + +// WithName returns a copy of the View with a new name. This is useful for +// renaming views to cope with limitations placed on metric names by various +// backends. +func (v *View) WithName(name string) *View { + vNew := *v + vNew.Name = name + return &vNew +} + +// same compares two views and returns true if they represent the same aggregation. +func (v *View) same(other *View) bool { + if v == other { + return true + } + if v == nil { + return false + } + return reflect.DeepEqual(v.Aggregation, other.Aggregation) && + v.Measure.Name() == other.Measure.Name() +} + +// ErrNegativeBucketBounds error returned if histogram contains negative bounds. +// +// Deprecated: this should not be public. +var ErrNegativeBucketBounds = errors.New("negative bucket bounds not supported") + +// canonicalize canonicalizes v by setting explicit +// defaults for Name and Description and sorting the TagKeys +func (v *View) canonicalize() error { + if v.Measure == nil { + return fmt.Errorf("cannot register view %q: measure not set", v.Name) + } + if v.Aggregation == nil { + return fmt.Errorf("cannot register view %q: aggregation not set", v.Name) + } + if v.Name == "" { + v.Name = v.Measure.Name() + } + if v.Description == "" { + v.Description = v.Measure.Description() + } + if err := checkViewName(v.Name); err != nil { + return err + } + sort.Slice(v.TagKeys, func(i, j int) bool { + return v.TagKeys[i].Name() < v.TagKeys[j].Name() + }) + sort.Float64s(v.Aggregation.Buckets) + for _, b := range v.Aggregation.Buckets { + if b < 0 { + return ErrNegativeBucketBounds + } + } + // drop 0 bucket silently. + v.Aggregation.Buckets = dropZeroBounds(v.Aggregation.Buckets...) + + return nil +} + +func dropZeroBounds(bounds ...float64) []float64 { + for i, bound := range bounds { + if bound > 0 { + return bounds[i:] + } + } + return []float64{} +} + +// viewInternal is the internal representation of a View. +type viewInternal struct { + view *View // view is the canonicalized View definition associated with this view. + subscribed uint32 // 1 if someone is subscribed and data need to be exported, use atomic to access + collector *collector + metricDescriptor *metricdata.Descriptor +} + +func newViewInternal(v *View) (*viewInternal, error) { + return &viewInternal{ + view: v, + collector: &collector{make(map[string]AggregationData), v.Aggregation}, + metricDescriptor: viewToMetricDescriptor(v), + }, nil +} + +func (v *viewInternal) subscribe() { + atomic.StoreUint32(&v.subscribed, 1) +} + +func (v *viewInternal) unsubscribe() { + atomic.StoreUint32(&v.subscribed, 0) +} + +// isSubscribed returns true if the view is exporting +// data by subscription. +func (v *viewInternal) isSubscribed() bool { + return atomic.LoadUint32(&v.subscribed) == 1 +} + +func (v *viewInternal) clearRows() { + v.collector.clearRows() +} + +func (v *viewInternal) collectedRows() []*Row { + return v.collector.collectedRows(v.view.TagKeys) +} + +func (v *viewInternal) addSample(m *tag.Map, val float64, attachments map[string]interface{}, t time.Time) { + if !v.isSubscribed() { + return + } + sig := string(encodeWithKeys(m, v.view.TagKeys)) + v.collector.addSample(sig, val, attachments, t) +} + +// A Data is a set of rows about usage of the single measure associated +// with the given view. Each row is specific to a unique set of tags. +type Data struct { + View *View + Start, End time.Time + Rows []*Row +} + +// Row is the collected value for a specific set of key value pairs a.k.a tags. +type Row struct { + Tags []tag.Tag + Data AggregationData +} + +func (r *Row) String() string { + var buffer bytes.Buffer + buffer.WriteString("{ ") + buffer.WriteString("{ ") + for _, t := range r.Tags { + buffer.WriteString(fmt.Sprintf("{%v %v}", t.Key.Name(), t.Value)) + } + buffer.WriteString(" }") + buffer.WriteString(fmt.Sprintf("%v", r.Data)) + buffer.WriteString(" }") + return buffer.String() +} + +// Equal returns true if both rows are equal. Tags are expected to be ordered +// by the key name. Even both rows have the same tags but the tags appear in +// different orders it will return false. +func (r *Row) Equal(other *Row) bool { + if r == other { + return true + } + return reflect.DeepEqual(r.Tags, other.Tags) && r.Data.equal(other.Data) +} + +const maxNameLength = 255 + +// Returns true if the given string contains only printable characters. +func isPrintable(str string) bool { + for _, r := range str { + if !(r >= ' ' && r <= '~') { + return false + } + } + return true +} + +func checkViewName(name string) error { + if len(name) > maxNameLength { + return fmt.Errorf("view name cannot be larger than %v", maxNameLength) + } + if !isPrintable(name) { + return fmt.Errorf("view name needs to be an ASCII string") + } + return nil +} diff --git a/vendor/go.opencensus.io/stats/view/view_to_metric.go b/vendor/go.opencensus.io/stats/view/view_to_metric.go new file mode 100644 index 00000000..010f81ba --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/view_to_metric.go @@ -0,0 +1,140 @@ +// Copyright 2019, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +import ( + "time" + + "go.opencensus.io/metric/metricdata" + "go.opencensus.io/stats" +) + +func getUnit(unit string) metricdata.Unit { + switch unit { + case "1": + return metricdata.UnitDimensionless + case "ms": + return metricdata.UnitMilliseconds + case "By": + return metricdata.UnitBytes + } + return metricdata.UnitDimensionless +} + +func getType(v *View) metricdata.Type { + m := v.Measure + agg := v.Aggregation + + switch agg.Type { + case AggTypeSum: + switch m.(type) { + case *stats.Int64Measure: + return metricdata.TypeCumulativeInt64 + case *stats.Float64Measure: + return metricdata.TypeCumulativeFloat64 + default: + panic("unexpected measure type") + } + case AggTypeDistribution: + return metricdata.TypeCumulativeDistribution + case AggTypeLastValue: + switch m.(type) { + case *stats.Int64Measure: + return metricdata.TypeGaugeInt64 + case *stats.Float64Measure: + return metricdata.TypeGaugeFloat64 + default: + panic("unexpected measure type") + } + case AggTypeCount: + switch m.(type) { + case *stats.Int64Measure: + return metricdata.TypeCumulativeInt64 + case *stats.Float64Measure: + return metricdata.TypeCumulativeInt64 + default: + panic("unexpected measure type") + } + default: + panic("unexpected aggregation type") + } +} + +func getLableKeys(v *View) []metricdata.LabelKey { + labelKeys := []metricdata.LabelKey{} + for _, k := range v.TagKeys { + labelKeys = append(labelKeys, metricdata.LabelKey{Key: k.Name()}) + } + return labelKeys +} + +func viewToMetricDescriptor(v *View) *metricdata.Descriptor { + return &metricdata.Descriptor{ + Name: v.Name, + Description: v.Description, + Unit: getUnit(v.Measure.Unit()), + Type: getType(v), + LabelKeys: getLableKeys(v), + } +} + +func toLabelValues(row *Row, expectedKeys []metricdata.LabelKey) []metricdata.LabelValue { + labelValues := []metricdata.LabelValue{} + tagMap := make(map[string]string) + for _, tag := range row.Tags { + tagMap[tag.Key.Name()] = tag.Value + } + + for _, key := range expectedKeys { + if val, ok := tagMap[key.Key]; ok { + labelValues = append(labelValues, metricdata.NewLabelValue(val)) + } else { + labelValues = append(labelValues, metricdata.LabelValue{}) + } + } + return labelValues +} + +func rowToTimeseries(v *viewInternal, row *Row, now time.Time, startTime time.Time) *metricdata.TimeSeries { + return &metricdata.TimeSeries{ + Points: []metricdata.Point{row.Data.toPoint(v.metricDescriptor.Type, now)}, + LabelValues: toLabelValues(row, v.metricDescriptor.LabelKeys), + StartTime: startTime, + } +} + +func viewToMetric(v *viewInternal, now time.Time, startTime time.Time) *metricdata.Metric { + if v.metricDescriptor.Type == metricdata.TypeGaugeInt64 || + v.metricDescriptor.Type == metricdata.TypeGaugeFloat64 { + startTime = time.Time{} + } + + rows := v.collectedRows() + if len(rows) == 0 { + return nil + } + + ts := []*metricdata.TimeSeries{} + for _, row := range rows { + ts = append(ts, rowToTimeseries(v, row, now, startTime)) + } + + m := &metricdata.Metric{ + Descriptor: *v.metricDescriptor, + TimeSeries: ts, + } + return m +} diff --git a/vendor/go.opencensus.io/stats/view/worker.go b/vendor/go.opencensus.io/stats/view/worker.go new file mode 100644 index 00000000..2f3c018a --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/worker.go @@ -0,0 +1,281 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +import ( + "fmt" + "sync" + "time" + + "go.opencensus.io/metric/metricdata" + "go.opencensus.io/metric/metricproducer" + "go.opencensus.io/stats" + "go.opencensus.io/stats/internal" + "go.opencensus.io/tag" +) + +func init() { + defaultWorker = newWorker() + go defaultWorker.start() + internal.DefaultRecorder = record +} + +type measureRef struct { + measure string + views map[*viewInternal]struct{} +} + +type worker struct { + measures map[string]*measureRef + views map[string]*viewInternal + startTimes map[*viewInternal]time.Time + + timer *time.Ticker + c chan command + quit, done chan bool + mu sync.RWMutex +} + +var defaultWorker *worker + +var defaultReportingDuration = 10 * time.Second + +// Find returns a registered view associated with this name. +// If no registered view is found, nil is returned. +func Find(name string) (v *View) { + req := &getViewByNameReq{ + name: name, + c: make(chan *getViewByNameResp), + } + defaultWorker.c <- req + resp := <-req.c + return resp.v +} + +// Register begins collecting data for the given views. +// Once a view is registered, it reports data to the registered exporters. +func Register(views ...*View) error { + req := ®isterViewReq{ + views: views, + err: make(chan error), + } + defaultWorker.c <- req + return <-req.err +} + +// Unregister the given views. Data will not longer be exported for these views +// after Unregister returns. +// It is not necessary to unregister from views you expect to collect for the +// duration of your program execution. +func Unregister(views ...*View) { + names := make([]string, len(views)) + for i := range views { + names[i] = views[i].Name + } + req := &unregisterFromViewReq{ + views: names, + done: make(chan struct{}), + } + defaultWorker.c <- req + <-req.done +} + +// RetrieveData gets a snapshot of the data collected for the the view registered +// with the given name. It is intended for testing only. +func RetrieveData(viewName string) ([]*Row, error) { + req := &retrieveDataReq{ + now: time.Now(), + v: viewName, + c: make(chan *retrieveDataResp), + } + defaultWorker.c <- req + resp := <-req.c + return resp.rows, resp.err +} + +func record(tags *tag.Map, ms interface{}, attachments map[string]interface{}) { + req := &recordReq{ + tm: tags, + ms: ms.([]stats.Measurement), + attachments: attachments, + t: time.Now(), + } + defaultWorker.c <- req +} + +// SetReportingPeriod sets the interval between reporting aggregated views in +// the program. If duration is less than or equal to zero, it enables the +// default behavior. +// +// Note: each exporter makes different promises about what the lowest supported +// duration is. For example, the Stackdriver exporter recommends a value no +// lower than 1 minute. Consult each exporter per your needs. +func SetReportingPeriod(d time.Duration) { + // TODO(acetechnologist): ensure that the duration d is more than a certain + // value. e.g. 1s + req := &setReportingPeriodReq{ + d: d, + c: make(chan bool), + } + defaultWorker.c <- req + <-req.c // don't return until the timer is set to the new duration. +} + +func newWorker() *worker { + return &worker{ + measures: make(map[string]*measureRef), + views: make(map[string]*viewInternal), + startTimes: make(map[*viewInternal]time.Time), + timer: time.NewTicker(defaultReportingDuration), + c: make(chan command, 1024), + quit: make(chan bool), + done: make(chan bool), + } +} + +func (w *worker) start() { + prodMgr := metricproducer.GlobalManager() + prodMgr.AddProducer(w) + + for { + select { + case cmd := <-w.c: + cmd.handleCommand(w) + case <-w.timer.C: + w.reportUsage(time.Now()) + case <-w.quit: + w.timer.Stop() + close(w.c) + w.done <- true + return + } + } +} + +func (w *worker) stop() { + prodMgr := metricproducer.GlobalManager() + prodMgr.DeleteProducer(w) + + w.quit <- true + <-w.done +} + +func (w *worker) getMeasureRef(name string) *measureRef { + if mr, ok := w.measures[name]; ok { + return mr + } + mr := &measureRef{ + measure: name, + views: make(map[*viewInternal]struct{}), + } + w.measures[name] = mr + return mr +} + +func (w *worker) tryRegisterView(v *View) (*viewInternal, error) { + w.mu.Lock() + defer w.mu.Unlock() + vi, err := newViewInternal(v) + if err != nil { + return nil, err + } + if x, ok := w.views[vi.view.Name]; ok { + if !x.view.same(vi.view) { + return nil, fmt.Errorf("cannot register view %q; a different view with the same name is already registered", v.Name) + } + + // the view is already registered so there is nothing to do and the + // command is considered successful. + return x, nil + } + w.views[vi.view.Name] = vi + ref := w.getMeasureRef(vi.view.Measure.Name()) + ref.views[vi] = struct{}{} + return vi, nil +} + +func (w *worker) unregisterView(viewName string) { + w.mu.Lock() + defer w.mu.Unlock() + delete(w.views, viewName) +} + +func (w *worker) reportView(v *viewInternal, now time.Time) { + if !v.isSubscribed() { + return + } + rows := v.collectedRows() + _, ok := w.startTimes[v] + if !ok { + w.startTimes[v] = now + } + viewData := &Data{ + View: v.view, + Start: w.startTimes[v], + End: time.Now(), + Rows: rows, + } + exportersMu.Lock() + for e := range exporters { + e.ExportView(viewData) + } + exportersMu.Unlock() +} + +func (w *worker) reportUsage(now time.Time) { + w.mu.Lock() + defer w.mu.Unlock() + for _, v := range w.views { + w.reportView(v, now) + } +} + +func (w *worker) toMetric(v *viewInternal, now time.Time) *metricdata.Metric { + if !v.isSubscribed() { + return nil + } + + _, ok := w.startTimes[v] + if !ok { + w.startTimes[v] = now + } + + var startTime time.Time + if v.metricDescriptor.Type == metricdata.TypeGaugeInt64 || + v.metricDescriptor.Type == metricdata.TypeGaugeFloat64 { + startTime = time.Time{} + } else { + startTime = w.startTimes[v] + } + + return viewToMetric(v, now, startTime) +} + +// Read reads all view data and returns them as metrics. +// It is typically invoked by metric reader to export stats in metric format. +func (w *worker) Read() []*metricdata.Metric { + w.mu.Lock() + defer w.mu.Unlock() + now := time.Now() + metrics := make([]*metricdata.Metric, 0, len(w.views)) + for _, v := range w.views { + metric := w.toMetric(v, now) + if metric != nil { + metrics = append(metrics, metric) + } + } + return metrics +} diff --git a/vendor/go.opencensus.io/stats/view/worker_commands.go b/vendor/go.opencensus.io/stats/view/worker_commands.go new file mode 100644 index 00000000..0267e179 --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/worker_commands.go @@ -0,0 +1,186 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package view + +import ( + "errors" + "fmt" + "strings" + "time" + + "go.opencensus.io/stats" + "go.opencensus.io/stats/internal" + "go.opencensus.io/tag" +) + +type command interface { + handleCommand(w *worker) +} + +// getViewByNameReq is the command to get a view given its name. +type getViewByNameReq struct { + name string + c chan *getViewByNameResp +} + +type getViewByNameResp struct { + v *View +} + +func (cmd *getViewByNameReq) handleCommand(w *worker) { + v := w.views[cmd.name] + if v == nil { + cmd.c <- &getViewByNameResp{nil} + return + } + cmd.c <- &getViewByNameResp{v.view} +} + +// registerViewReq is the command to register a view. +type registerViewReq struct { + views []*View + err chan error +} + +func (cmd *registerViewReq) handleCommand(w *worker) { + for _, v := range cmd.views { + if err := v.canonicalize(); err != nil { + cmd.err <- err + return + } + } + var errstr []string + for _, view := range cmd.views { + vi, err := w.tryRegisterView(view) + if err != nil { + errstr = append(errstr, fmt.Sprintf("%s: %v", view.Name, err)) + continue + } + internal.SubscriptionReporter(view.Measure.Name()) + vi.subscribe() + } + if len(errstr) > 0 { + cmd.err <- errors.New(strings.Join(errstr, "\n")) + } else { + cmd.err <- nil + } +} + +// unregisterFromViewReq is the command to unregister to a view. Has no +// impact on the data collection for client that are pulling data from the +// library. +type unregisterFromViewReq struct { + views []string + done chan struct{} +} + +func (cmd *unregisterFromViewReq) handleCommand(w *worker) { + for _, name := range cmd.views { + vi, ok := w.views[name] + if !ok { + continue + } + + // Report pending data for this view before removing it. + w.reportView(vi, time.Now()) + + vi.unsubscribe() + if !vi.isSubscribed() { + // this was the last subscription and view is not collecting anymore. + // The collected data can be cleared. + vi.clearRows() + } + w.unregisterView(name) + } + cmd.done <- struct{}{} +} + +// retrieveDataReq is the command to retrieve data for a view. +type retrieveDataReq struct { + now time.Time + v string + c chan *retrieveDataResp +} + +type retrieveDataResp struct { + rows []*Row + err error +} + +func (cmd *retrieveDataReq) handleCommand(w *worker) { + w.mu.Lock() + defer w.mu.Unlock() + vi, ok := w.views[cmd.v] + if !ok { + cmd.c <- &retrieveDataResp{ + nil, + fmt.Errorf("cannot retrieve data; view %q is not registered", cmd.v), + } + return + } + + if !vi.isSubscribed() { + cmd.c <- &retrieveDataResp{ + nil, + fmt.Errorf("cannot retrieve data; view %q has no subscriptions or collection is not forcibly started", cmd.v), + } + return + } + cmd.c <- &retrieveDataResp{ + vi.collectedRows(), + nil, + } +} + +// recordReq is the command to record data related to multiple measures +// at once. +type recordReq struct { + tm *tag.Map + ms []stats.Measurement + attachments map[string]interface{} + t time.Time +} + +func (cmd *recordReq) handleCommand(w *worker) { + w.mu.Lock() + defer w.mu.Unlock() + for _, m := range cmd.ms { + if (m == stats.Measurement{}) { // not registered + continue + } + ref := w.getMeasureRef(m.Measure().Name()) + for v := range ref.views { + v.addSample(cmd.tm, m.Value(), cmd.attachments, time.Now()) + } + } +} + +// setReportingPeriodReq is the command to modify the duration between +// reporting the collected data to the registered clients. +type setReportingPeriodReq struct { + d time.Duration + c chan bool +} + +func (cmd *setReportingPeriodReq) handleCommand(w *worker) { + w.timer.Stop() + if cmd.d <= 0 { + w.timer = time.NewTicker(defaultReportingDuration) + } else { + w.timer = time.NewTicker(cmd.d) + } + cmd.c <- true +} diff --git a/vendor/go.opencensus.io/tag/context.go b/vendor/go.opencensus.io/tag/context.go new file mode 100644 index 00000000..b27d1b26 --- /dev/null +++ b/vendor/go.opencensus.io/tag/context.go @@ -0,0 +1,43 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package tag + +import ( + "context" +) + +// FromContext returns the tag map stored in the context. +func FromContext(ctx context.Context) *Map { + // The returned tag map shouldn't be mutated. + ts := ctx.Value(mapCtxKey) + if ts == nil { + return nil + } + return ts.(*Map) +} + +// NewContext creates a new context with the given tag map. +// To propagate a tag map to downstream methods and downstream RPCs, add a tag map +// to the current context. NewContext will return a copy of the current context, +// and put the tag map into the returned one. +// If there is already a tag map in the current context, it will be replaced with m. +func NewContext(ctx context.Context, m *Map) context.Context { + return context.WithValue(ctx, mapCtxKey, m) +} + +type ctxKey struct{} + +var mapCtxKey = ctxKey{} diff --git a/vendor/go.opencensus.io/tag/doc.go b/vendor/go.opencensus.io/tag/doc.go new file mode 100644 index 00000000..da16b74e --- /dev/null +++ b/vendor/go.opencensus.io/tag/doc.go @@ -0,0 +1,26 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/* +Package tag contains OpenCensus tags. + +Tags are key-value pairs. Tags provide additional cardinality to +the OpenCensus instrumentation data. + +Tags can be propagated on the wire and in the same +process via context.Context. Encode and Decode should be +used to represent tags into their binary propagation form. +*/ +package tag // import "go.opencensus.io/tag" diff --git a/vendor/go.opencensus.io/tag/key.go b/vendor/go.opencensus.io/tag/key.go new file mode 100644 index 00000000..ebbed950 --- /dev/null +++ b/vendor/go.opencensus.io/tag/key.go @@ -0,0 +1,35 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package tag + +// Key represents a tag key. +type Key struct { + name string +} + +// NewKey creates or retrieves a string key identified by name. +// Calling NewKey consequently with the same name returns the same key. +func NewKey(name string) (Key, error) { + if !checkKeyName(name) { + return Key{}, errInvalidKeyName + } + return Key{name: name}, nil +} + +// Name returns the name of the key. +func (k Key) Name() string { + return k.name +} diff --git a/vendor/go.opencensus.io/tag/map.go b/vendor/go.opencensus.io/tag/map.go new file mode 100644 index 00000000..0272ef85 --- /dev/null +++ b/vendor/go.opencensus.io/tag/map.go @@ -0,0 +1,229 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package tag + +import ( + "bytes" + "context" + "fmt" + "sort" +) + +// Tag is a key value pair that can be propagated on wire. +type Tag struct { + Key Key + Value string +} + +type tagContent struct { + value string + m metadatas +} + +// Map is a map of tags. Use New to create a context containing +// a new Map. +type Map struct { + m map[Key]tagContent +} + +// Value returns the value for the key if a value for the key exists. +func (m *Map) Value(k Key) (string, bool) { + if m == nil { + return "", false + } + v, ok := m.m[k] + return v.value, ok +} + +func (m *Map) String() string { + if m == nil { + return "nil" + } + keys := make([]Key, 0, len(m.m)) + for k := range m.m { + keys = append(keys, k) + } + sort.Slice(keys, func(i, j int) bool { return keys[i].Name() < keys[j].Name() }) + + var buffer bytes.Buffer + buffer.WriteString("{ ") + for _, k := range keys { + buffer.WriteString(fmt.Sprintf("{%v %v}", k.name, m.m[k])) + } + buffer.WriteString(" }") + return buffer.String() +} + +func (m *Map) insert(k Key, v string, md metadatas) { + if _, ok := m.m[k]; ok { + return + } + m.m[k] = tagContent{value: v, m: md} +} + +func (m *Map) update(k Key, v string, md metadatas) { + if _, ok := m.m[k]; ok { + m.m[k] = tagContent{value: v, m: md} + } +} + +func (m *Map) upsert(k Key, v string, md metadatas) { + m.m[k] = tagContent{value: v, m: md} +} + +func (m *Map) delete(k Key) { + delete(m.m, k) +} + +func newMap() *Map { + return &Map{m: make(map[Key]tagContent)} +} + +// Mutator modifies a tag map. +type Mutator interface { + Mutate(t *Map) (*Map, error) +} + +// Insert returns a mutator that inserts a +// value associated with k. If k already exists in the tag map, +// mutator doesn't update the value. +// Metadata applies metadata to the tag. It is optional. +// Metadatas are applied in the order in which it is provided. +// If more than one metadata updates the same attribute then +// the update from the last metadata prevails. +func Insert(k Key, v string, mds ...Metadata) Mutator { + return &mutator{ + fn: func(m *Map) (*Map, error) { + if !checkValue(v) { + return nil, errInvalidValue + } + m.insert(k, v, createMetadatas(mds...)) + return m, nil + }, + } +} + +// Update returns a mutator that updates the +// value of the tag associated with k with v. If k doesn't +// exists in the tag map, the mutator doesn't insert the value. +// Metadata applies metadata to the tag. It is optional. +// Metadatas are applied in the order in which it is provided. +// If more than one metadata updates the same attribute then +// the update from the last metadata prevails. +func Update(k Key, v string, mds ...Metadata) Mutator { + return &mutator{ + fn: func(m *Map) (*Map, error) { + if !checkValue(v) { + return nil, errInvalidValue + } + m.update(k, v, createMetadatas(mds...)) + return m, nil + }, + } +} + +// Upsert returns a mutator that upserts the +// value of the tag associated with k with v. It inserts the +// value if k doesn't exist already. It mutates the value +// if k already exists. +// Metadata applies metadata to the tag. It is optional. +// Metadatas are applied in the order in which it is provided. +// If more than one metadata updates the same attribute then +// the update from the last metadata prevails. +func Upsert(k Key, v string, mds ...Metadata) Mutator { + return &mutator{ + fn: func(m *Map) (*Map, error) { + if !checkValue(v) { + return nil, errInvalidValue + } + m.upsert(k, v, createMetadatas(mds...)) + return m, nil + }, + } +} + +func createMetadatas(mds ...Metadata) metadatas { + var metas metadatas + if len(mds) > 0 { + for _, md := range mds { + if md != nil { + md(&metas) + } + } + } else { + WithTTL(TTLUnlimitedPropagation)(&metas) + } + return metas + +} + +// Delete returns a mutator that deletes +// the value associated with k. +func Delete(k Key) Mutator { + return &mutator{ + fn: func(m *Map) (*Map, error) { + m.delete(k) + return m, nil + }, + } +} + +// New returns a new context that contains a tag map +// originated from the incoming context and modified +// with the provided mutators. +func New(ctx context.Context, mutator ...Mutator) (context.Context, error) { + m := newMap() + orig := FromContext(ctx) + if orig != nil { + for k, v := range orig.m { + if !checkKeyName(k.Name()) { + return ctx, fmt.Errorf("key:%q: %v", k, errInvalidKeyName) + } + if !checkValue(v.value) { + return ctx, fmt.Errorf("key:%q value:%q: %v", k.Name(), v, errInvalidValue) + } + m.insert(k, v.value, v.m) + } + } + var err error + for _, mod := range mutator { + m, err = mod.Mutate(m) + if err != nil { + return ctx, err + } + } + return NewContext(ctx, m), nil +} + +// Do is similar to pprof.Do: a convenience for installing the tags +// from the context as Go profiler labels. This allows you to +// correlated runtime profiling with stats. +// +// It converts the key/values from the given map to Go profiler labels +// and calls pprof.Do. +// +// Do is going to do nothing if your Go version is below 1.9. +func Do(ctx context.Context, f func(ctx context.Context)) { + do(ctx, f) +} + +type mutator struct { + fn func(t *Map) (*Map, error) +} + +func (m *mutator) Mutate(t *Map) (*Map, error) { + return m.fn(t) +} diff --git a/vendor/go.opencensus.io/tag/map_codec.go b/vendor/go.opencensus.io/tag/map_codec.go new file mode 100644 index 00000000..f8b58276 --- /dev/null +++ b/vendor/go.opencensus.io/tag/map_codec.go @@ -0,0 +1,239 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package tag + +import ( + "encoding/binary" + "fmt" +) + +// KeyType defines the types of keys allowed. Currently only keyTypeString is +// supported. +type keyType byte + +const ( + keyTypeString keyType = iota + keyTypeInt64 + keyTypeTrue + keyTypeFalse + + tagsVersionID = byte(0) +) + +type encoderGRPC struct { + buf []byte + writeIdx, readIdx int +} + +// writeKeyString writes the fieldID '0' followed by the key string and value +// string. +func (eg *encoderGRPC) writeTagString(k, v string) { + eg.writeByte(byte(keyTypeString)) + eg.writeStringWithVarintLen(k) + eg.writeStringWithVarintLen(v) +} + +func (eg *encoderGRPC) writeTagUint64(k string, i uint64) { + eg.writeByte(byte(keyTypeInt64)) + eg.writeStringWithVarintLen(k) + eg.writeUint64(i) +} + +func (eg *encoderGRPC) writeTagTrue(k string) { + eg.writeByte(byte(keyTypeTrue)) + eg.writeStringWithVarintLen(k) +} + +func (eg *encoderGRPC) writeTagFalse(k string) { + eg.writeByte(byte(keyTypeFalse)) + eg.writeStringWithVarintLen(k) +} + +func (eg *encoderGRPC) writeBytesWithVarintLen(bytes []byte) { + length := len(bytes) + + eg.growIfRequired(binary.MaxVarintLen64 + length) + eg.writeIdx += binary.PutUvarint(eg.buf[eg.writeIdx:], uint64(length)) + copy(eg.buf[eg.writeIdx:], bytes) + eg.writeIdx += length +} + +func (eg *encoderGRPC) writeStringWithVarintLen(s string) { + length := len(s) + + eg.growIfRequired(binary.MaxVarintLen64 + length) + eg.writeIdx += binary.PutUvarint(eg.buf[eg.writeIdx:], uint64(length)) + copy(eg.buf[eg.writeIdx:], s) + eg.writeIdx += length +} + +func (eg *encoderGRPC) writeByte(v byte) { + eg.growIfRequired(1) + eg.buf[eg.writeIdx] = v + eg.writeIdx++ +} + +func (eg *encoderGRPC) writeUint32(i uint32) { + eg.growIfRequired(4) + binary.LittleEndian.PutUint32(eg.buf[eg.writeIdx:], i) + eg.writeIdx += 4 +} + +func (eg *encoderGRPC) writeUint64(i uint64) { + eg.growIfRequired(8) + binary.LittleEndian.PutUint64(eg.buf[eg.writeIdx:], i) + eg.writeIdx += 8 +} + +func (eg *encoderGRPC) readByte() byte { + b := eg.buf[eg.readIdx] + eg.readIdx++ + return b +} + +func (eg *encoderGRPC) readUint32() uint32 { + i := binary.LittleEndian.Uint32(eg.buf[eg.readIdx:]) + eg.readIdx += 4 + return i +} + +func (eg *encoderGRPC) readUint64() uint64 { + i := binary.LittleEndian.Uint64(eg.buf[eg.readIdx:]) + eg.readIdx += 8 + return i +} + +func (eg *encoderGRPC) readBytesWithVarintLen() ([]byte, error) { + if eg.readEnded() { + return nil, fmt.Errorf("unexpected end while readBytesWithVarintLen '%x' starting at idx '%v'", eg.buf, eg.readIdx) + } + length, valueStart := binary.Uvarint(eg.buf[eg.readIdx:]) + if valueStart <= 0 { + return nil, fmt.Errorf("unexpected end while readBytesWithVarintLen '%x' starting at idx '%v'", eg.buf, eg.readIdx) + } + + valueStart += eg.readIdx + valueEnd := valueStart + int(length) + if valueEnd > len(eg.buf) { + return nil, fmt.Errorf("malformed encoding: length:%v, upper:%v, maxLength:%v", length, valueEnd, len(eg.buf)) + } + + eg.readIdx = valueEnd + return eg.buf[valueStart:valueEnd], nil +} + +func (eg *encoderGRPC) readStringWithVarintLen() (string, error) { + bytes, err := eg.readBytesWithVarintLen() + if err != nil { + return "", err + } + return string(bytes), nil +} + +func (eg *encoderGRPC) growIfRequired(expected int) { + if len(eg.buf)-eg.writeIdx < expected { + tmp := make([]byte, 2*(len(eg.buf)+1)+expected) + copy(tmp, eg.buf) + eg.buf = tmp + } +} + +func (eg *encoderGRPC) readEnded() bool { + return eg.readIdx >= len(eg.buf) +} + +func (eg *encoderGRPC) bytes() []byte { + return eg.buf[:eg.writeIdx] +} + +// Encode encodes the tag map into a []byte. It is useful to propagate +// the tag maps on wire in binary format. +func Encode(m *Map) []byte { + if m == nil { + return nil + } + eg := &encoderGRPC{ + buf: make([]byte, len(m.m)), + } + eg.writeByte(byte(tagsVersionID)) + for k, v := range m.m { + if v.m.ttl.ttl == valueTTLUnlimitedPropagation { + eg.writeByte(byte(keyTypeString)) + eg.writeStringWithVarintLen(k.name) + eg.writeBytesWithVarintLen([]byte(v.value)) + } + } + return eg.bytes() +} + +// Decode decodes the given []byte into a tag map. +func Decode(bytes []byte) (*Map, error) { + ts := newMap() + err := DecodeEach(bytes, ts.upsert) + if err != nil { + // no partial failures + return nil, err + } + return ts, nil +} + +// DecodeEach decodes the given serialized tag map, calling handler for each +// tag key and value decoded. +func DecodeEach(bytes []byte, fn func(key Key, val string, md metadatas)) error { + eg := &encoderGRPC{ + buf: bytes, + } + if len(eg.buf) == 0 { + return nil + } + + version := eg.readByte() + if version > tagsVersionID { + return fmt.Errorf("cannot decode: unsupported version: %q; supports only up to: %q", version, tagsVersionID) + } + + for !eg.readEnded() { + typ := keyType(eg.readByte()) + + if typ != keyTypeString { + return fmt.Errorf("cannot decode: invalid key type: %q", typ) + } + + k, err := eg.readBytesWithVarintLen() + if err != nil { + return err + } + + v, err := eg.readBytesWithVarintLen() + if err != nil { + return err + } + + key, err := NewKey(string(k)) + if err != nil { + return err + } + val := string(v) + if !checkValue(val) { + return errInvalidValue + } + fn(key, val, createMetadatas(WithTTL(TTLUnlimitedPropagation))) + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/go.opencensus.io/tag/metadata.go b/vendor/go.opencensus.io/tag/metadata.go new file mode 100644 index 00000000..6571a583 --- /dev/null +++ b/vendor/go.opencensus.io/tag/metadata.go @@ -0,0 +1,52 @@ +// Copyright 2019, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package tag + +const ( + // valueTTLNoPropagation prevents tag from propagating. + valueTTLNoPropagation = 0 + + // valueTTLUnlimitedPropagation allows tag to propagate without any limits on number of hops. + valueTTLUnlimitedPropagation = -1 +) + +// TTL is metadata that specifies number of hops a tag can propagate. +// Details about TTL metadata is specified at https://github.com/census-instrumentation/opencensus-specs/blob/master/tags/TagMap.md#tagmetadata +type TTL struct { + ttl int +} + +var ( + // TTLUnlimitedPropagation is TTL metadata that allows tag to propagate without any limits on number of hops. + TTLUnlimitedPropagation = TTL{ttl: valueTTLUnlimitedPropagation} + + // TTLNoPropagation is TTL metadata that prevents tag from propagating. + TTLNoPropagation = TTL{ttl: valueTTLNoPropagation} +) + +type metadatas struct { + ttl TTL +} + +// Metadata applies metadatas specified by the function. +type Metadata func(*metadatas) + +// WithTTL applies metadata with provided ttl. +func WithTTL(ttl TTL) Metadata { + return func(m *metadatas) { + m.ttl = ttl + } +} diff --git a/vendor/go.opencensus.io/tag/profile_19.go b/vendor/go.opencensus.io/tag/profile_19.go new file mode 100644 index 00000000..b34d95e3 --- /dev/null +++ b/vendor/go.opencensus.io/tag/profile_19.go @@ -0,0 +1,31 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build go1.9 + +package tag + +import ( + "context" + "runtime/pprof" +) + +func do(ctx context.Context, f func(ctx context.Context)) { + m := FromContext(ctx) + keyvals := make([]string, 0, 2*len(m.m)) + for k, v := range m.m { + keyvals = append(keyvals, k.Name(), v.value) + } + pprof.Do(ctx, pprof.Labels(keyvals...), f) +} diff --git a/vendor/go.opencensus.io/tag/profile_not19.go b/vendor/go.opencensus.io/tag/profile_not19.go new file mode 100644 index 00000000..83adbce5 --- /dev/null +++ b/vendor/go.opencensus.io/tag/profile_not19.go @@ -0,0 +1,23 @@ +// Copyright 2018, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build !go1.9 + +package tag + +import "context" + +func do(ctx context.Context, f func(ctx context.Context)) { + f(ctx) +} diff --git a/vendor/go.opencensus.io/tag/validate.go b/vendor/go.opencensus.io/tag/validate.go new file mode 100644 index 00000000..0939fc67 --- /dev/null +++ b/vendor/go.opencensus.io/tag/validate.go @@ -0,0 +1,56 @@ +// Copyright 2017, OpenCensus Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tag + +import "errors" + +const ( + maxKeyLength = 255 + + // valid are restricted to US-ASCII subset (range 0x20 (' ') to 0x7e ('~')). + validKeyValueMin = 32 + validKeyValueMax = 126 +) + +var ( + errInvalidKeyName = errors.New("invalid key name: only ASCII characters accepted; max length must be 255 characters") + errInvalidValue = errors.New("invalid value: only ASCII characters accepted; max length must be 255 characters") +) + +func checkKeyName(name string) bool { + if len(name) == 0 { + return false + } + if len(name) > maxKeyLength { + return false + } + return isASCII(name) +} + +func isASCII(s string) bool { + for _, c := range s { + if (c < validKeyValueMin) || (c > validKeyValueMax) { + return false + } + } + return true +} + +func checkValue(v string) bool { + if len(v) > maxKeyLength { + return false + } + return isASCII(v) +} diff --git a/vendor/go4.org/AUTHORS b/vendor/go4.org/AUTHORS new file mode 100644 index 00000000..d1ad485f --- /dev/null +++ b/vendor/go4.org/AUTHORS @@ -0,0 +1,8 @@ +# This is the official list of go4 authors for copyright purposes. +# This is distinct from the CONTRIBUTORS file, which is the list of +# people who have contributed, even if they don't own the copyright on +# their work. + +Mathieu Lonjaret +Daniel Theophanes +Google diff --git a/vendor/go4.org/LICENSE b/vendor/go4.org/LICENSE new file mode 100644 index 00000000..8f71f43f --- /dev/null +++ b/vendor/go4.org/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/vendor/go4.org/lock/.gitignore b/vendor/go4.org/lock/.gitignore new file mode 100644 index 00000000..b25c15b8 --- /dev/null +++ b/vendor/go4.org/lock/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/vendor/go4.org/lock/lock.go b/vendor/go4.org/lock/lock.go new file mode 100644 index 00000000..3e253628 --- /dev/null +++ b/vendor/go4.org/lock/lock.go @@ -0,0 +1,186 @@ +/* +Copyright 2013 The Go Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package lock is a file locking library. +package lock // import "go4.org/lock" + +import ( + "encoding/json" + "fmt" + "io" + "os" + "path/filepath" + "sync" +) + +// Lock locks the given file, creating the file if necessary. If the +// file already exists, it must have zero size or an error is returned. +// The lock is an exclusive lock (a write lock), but locked files +// should neither be read from nor written to. Such files should have +// zero size and only exist to co-ordinate ownership across processes. +// +// A nil Closer is returned if an error occurred. Otherwise, close that +// Closer to release the lock. +// +// On Linux, FreeBSD and OSX, a lock has the same semantics as fcntl(2)'s +// advisory locks. In particular, closing any other file descriptor for the +// same file will release the lock prematurely. +// +// Attempting to lock a file that is already locked by the current process +// has undefined behavior. +// +// On other operating systems, lock will fallback to using the presence and +// content of a file named name + '.lock' to implement locking behavior. +func Lock(name string) (io.Closer, error) { + abs, err := filepath.Abs(name) + if err != nil { + return nil, err + } + lockmu.Lock() + defer lockmu.Unlock() + if locked[abs] { + return nil, fmt.Errorf("file %q already locked", abs) + } + + c, err := lockFn(abs) + if err != nil { + return nil, fmt.Errorf("cannot acquire lock: %v", err) + } + locked[abs] = true + return c, nil +} + +var lockFn = lockPortable + +// lockPortable is a portable version not using fcntl. Doesn't handle crashes as gracefully, +// since it can leave stale lock files. +func lockPortable(name string) (io.Closer, error) { + fi, err := os.Stat(name) + if err == nil && fi.Size() > 0 { + st := portableLockStatus(name) + switch st { + case statusLocked: + return nil, fmt.Errorf("file %q already locked", name) + case statusStale: + os.Remove(name) + case statusInvalid: + return nil, fmt.Errorf("can't Lock file %q: has invalid contents", name) + } + } + f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_EXCL, 0666) + if err != nil { + return nil, fmt.Errorf("failed to create lock file %s %v", name, err) + } + if err := json.NewEncoder(f).Encode(&pidLockMeta{OwnerPID: os.Getpid()}); err != nil { + return nil, fmt.Errorf("cannot write owner pid: %v", err) + } + return &unlocker{ + f: f, + abs: name, + portable: true, + }, nil +} + +type lockStatus int + +const ( + statusInvalid lockStatus = iota + statusLocked + statusUnlocked + statusStale +) + +type pidLockMeta struct { + OwnerPID int +} + +func portableLockStatus(path string) lockStatus { + f, err := os.Open(path) + if err != nil { + return statusUnlocked + } + defer f.Close() + var meta pidLockMeta + if json.NewDecoder(f).Decode(&meta) != nil { + return statusInvalid + } + if meta.OwnerPID == 0 { + return statusInvalid + } + p, err := os.FindProcess(meta.OwnerPID) + if err != nil { + // e.g. on Windows + return statusStale + } + // On unix, os.FindProcess always is true, so we have to send + // it a signal to see if it's alive. + if signalZero != nil { + if p.Signal(signalZero) != nil { + return statusStale + } + } + return statusLocked +} + +var signalZero os.Signal // nil or set by lock_sigzero.go + +var ( + lockmu sync.Mutex + locked = map[string]bool{} // abs path -> true +) + +type unlocker struct { + portable bool + f *os.File + abs string + // once guards the close method call. + once sync.Once + // err holds the error returned by Close. + err error +} + +func (u *unlocker) Close() error { + u.once.Do(u.close) + return u.err +} + +func (u *unlocker) close() { + lockmu.Lock() + defer lockmu.Unlock() + delete(locked, u.abs) + + if u.portable { + // In the portable lock implementation, it's + // important to close before removing because + // Windows won't allow us to remove an open + // file. + if err := u.f.Close(); err != nil { + u.err = err + } + if err := os.Remove(u.abs); err != nil { + // Note that if both Close and Remove fail, + // we care more about the latter than the former + // so we'll return that error. + u.err = err + } + return + } + // In other implementatioons, it's nice for us to clean up. + // If we do do this, though, it needs to be before the + // u.f.Close below. + os.Remove(u.abs) + u.err = u.f.Close() +} diff --git a/vendor/go4.org/lock/lock_appengine.go b/vendor/go4.org/lock/lock_appengine.go new file mode 100644 index 00000000..ab4cad6a --- /dev/null +++ b/vendor/go4.org/lock/lock_appengine.go @@ -0,0 +1,32 @@ +// +build appengine + +/* +Copyright 2013 The Go Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package lock + +import ( + "errors" + "io" +) + +func init() { + lockFn = lockAppEngine +} + +func lockAppEngine(name string) (io.Closer, error) { + return nil, errors.New("Lock not available on App Engine") +} diff --git a/vendor/go4.org/lock/lock_plan9.go b/vendor/go4.org/lock/lock_plan9.go new file mode 100644 index 00000000..d841c27d --- /dev/null +++ b/vendor/go4.org/lock/lock_plan9.go @@ -0,0 +1,41 @@ +/* +Copyright 2013 The Go Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package lock + +import ( + "fmt" + "io" + "os" +) + +func init() { + lockFn = lockPlan9 +} + +func lockPlan9(name string) (io.Closer, error) { + fi, err := os.Stat(name) + if err == nil && fi.Size() > 0 { + return nil, fmt.Errorf("can't Lock file %q: has non-zero size", name) + } + + f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE, os.ModeExclusive|0644) + if err != nil { + return nil, fmt.Errorf("Lock Create of %s failed: %v", name, err) + } + + return &unlocker{f: f, abs: name}, nil +} diff --git a/vendor/go4.org/lock/lock_sigzero.go b/vendor/go4.org/lock/lock_sigzero.go new file mode 100644 index 00000000..fd3ba2db --- /dev/null +++ b/vendor/go4.org/lock/lock_sigzero.go @@ -0,0 +1,26 @@ +// +build !appengine +// +build linux darwin freebsd openbsd netbsd dragonfly + +/* +Copyright 2013 The Go Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package lock + +import "syscall" + +func init() { + signalZero = syscall.Signal(0) +} diff --git a/vendor/go4.org/lock/lock_unix.go b/vendor/go4.org/lock/lock_unix.go new file mode 100644 index 00000000..d26056b5 --- /dev/null +++ b/vendor/go4.org/lock/lock_unix.go @@ -0,0 +1,58 @@ +// +build linux darwin freebsd openbsd netbsd dragonfly solaris +// +build !appengine + +/* +Copyright 2013 The Go Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package lock + +import ( + "fmt" + "io" + "os" + + "golang.org/x/sys/unix" +) + +func init() { + lockFn = lockFcntl +} + +func lockFcntl(name string) (io.Closer, error) { + fi, err := os.Stat(name) + if err == nil && fi.Size() > 0 { + return nil, fmt.Errorf("can't Lock file %q: has non-zero size", name) + } + + f, err := os.Create(name) + if err != nil { + return nil, fmt.Errorf("Lock Create of %s failed: %v", name, err) + } + + err = unix.FcntlFlock(f.Fd(), unix.F_SETLK, &unix.Flock_t{ + Type: unix.F_WRLCK, + Whence: int16(os.SEEK_SET), + Start: 0, + Len: 0, // 0 means to lock the entire file. + Pid: 0, // only used by F_GETLK + }) + + if err != nil { + f.Close() + return nil, fmt.Errorf("Lock FcntlFlock of %s failed: %v", name, err) + } + return &unlocker{f: f, abs: name}, nil +} diff --git a/vendor/go4.org/lock/lock_windows.go b/vendor/go4.org/lock/lock_windows.go new file mode 100644 index 00000000..42574879 --- /dev/null +++ b/vendor/go4.org/lock/lock_windows.go @@ -0,0 +1,78 @@ +/* +Copyright 2013 The Go Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package lock + +import ( + "fmt" + "io" + "os" + "sync" + + "golang.org/x/sys/windows" +) + +func init() { + lockFn = lockWindows +} + +type winUnlocker struct { + h windows.Handle + abs string + // err holds the error returned by Close. + err error + // once guards the close method call. + once sync.Once +} + +func (u *winUnlocker) Close() error { + u.once.Do(u.close) + return u.err +} + +func (u *winUnlocker) close() { + lockmu.Lock() + defer lockmu.Unlock() + delete(locked, u.abs) + + u.err = windows.CloseHandle(u.h) +} + +func lockWindows(name string) (io.Closer, error) { + fi, err := os.Stat(name) + if err == nil && fi.Size() > 0 { + return nil, fmt.Errorf("can't lock file %q: %s", name, "has non-zero size") + } + + handle, err := winCreateEphemeral(name) + if err != nil { + return nil, fmt.Errorf("creation of lock %s failed: %v", name, err) + } + + return &winUnlocker{h: handle, abs: name}, nil +} + +func winCreateEphemeral(name string) (windows.Handle, error) { + const ( + FILE_ATTRIBUTE_TEMPORARY = 0x100 + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 + ) + handle, err := windows.CreateFile(windows.StringToUTF16Ptr(name), 0, 0, nil, windows.OPEN_ALWAYS, FILE_ATTRIBUTE_TEMPORARY|FILE_FLAG_DELETE_ON_CLOSE, 0) + if err != nil { + return 0, err + } + return handle, nil +} diff --git a/vendor/golang.org/x/sys/cpu/byteorder.go b/vendor/golang.org/x/sys/cpu/byteorder.go new file mode 100644 index 00000000..da6b9e43 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/byteorder.go @@ -0,0 +1,30 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +import ( + "encoding/binary" + "runtime" +) + +// hostByteOrder returns binary.LittleEndian on little-endian machines and +// binary.BigEndian on big-endian machines. +func hostByteOrder() binary.ByteOrder { + switch runtime.GOARCH { + case "386", "amd64", "amd64p32", + "arm", "arm64", + "mipsle", "mips64le", "mips64p32le", + "ppc64le", + "riscv", "riscv64": + return binary.LittleEndian + case "armbe", "arm64be", + "mips", "mips64", "mips64p32", + "ppc", "ppc64", + "s390", "s390x", + "sparc", "sparc64": + return binary.BigEndian + } + panic("unknown architecture") +} diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go new file mode 100644 index 00000000..679e78c2 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -0,0 +1,126 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package cpu implements processor feature detection for +// various CPU architectures. +package cpu + +// Initialized reports whether the CPU features were initialized. +// +// For some GOOS/GOARCH combinations initialization of the CPU features depends +// on reading an operating specific file, e.g. /proc/self/auxv on linux/arm +// Initialized will report false if reading the file fails. +var Initialized bool + +// CacheLinePad is used to pad structs to avoid false sharing. +type CacheLinePad struct{ _ [cacheLineSize]byte } + +// X86 contains the supported CPU features of the +// current X86/AMD64 platform. If the current platform +// is not X86/AMD64 then all feature flags are false. +// +// X86 is padded to avoid false sharing. Further the HasAVX +// and HasAVX2 are only set if the OS supports XMM and YMM +// registers in addition to the CPUID feature bit being set. +var X86 struct { + _ CacheLinePad + HasAES bool // AES hardware implementation (AES NI) + HasADX bool // Multi-precision add-carry instruction extensions + HasAVX bool // Advanced vector extension + HasAVX2 bool // Advanced vector extension 2 + HasBMI1 bool // Bit manipulation instruction set 1 + HasBMI2 bool // Bit manipulation instruction set 2 + HasERMS bool // Enhanced REP for MOVSB and STOSB + HasFMA bool // Fused-multiply-add instructions + HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers. + HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM + HasPOPCNT bool // Hamming weight instruction POPCNT. + HasRDRAND bool // RDRAND instruction (on-chip random number generator) + HasRDSEED bool // RDSEED instruction (on-chip random number generator) + HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64) + HasSSE3 bool // Streaming SIMD extension 3 + HasSSSE3 bool // Supplemental streaming SIMD extension 3 + HasSSE41 bool // Streaming SIMD extension 4 and 4.1 + HasSSE42 bool // Streaming SIMD extension 4 and 4.2 + _ CacheLinePad +} + +// ARM64 contains the supported CPU features of the +// current ARMv8(aarch64) platform. If the current platform +// is not arm64 then all feature flags are false. +var ARM64 struct { + _ CacheLinePad + HasFP bool // Floating-point instruction set (always available) + HasASIMD bool // Advanced SIMD (always available) + HasEVTSTRM bool // Event stream support + HasAES bool // AES hardware implementation + HasPMULL bool // Polynomial multiplication instruction set + HasSHA1 bool // SHA1 hardware implementation + HasSHA2 bool // SHA2 hardware implementation + HasCRC32 bool // CRC32 hardware implementation + HasATOMICS bool // Atomic memory operation instruction set + HasFPHP bool // Half precision floating-point instruction set + HasASIMDHP bool // Advanced SIMD half precision instruction set + HasCPUID bool // CPUID identification scheme registers + HasASIMDRDM bool // Rounding double multiply add/subtract instruction set + HasJSCVT bool // Javascript conversion from floating-point to integer + HasFCMA bool // Floating-point multiplication and addition of complex numbers + HasLRCPC bool // Release Consistent processor consistent support + HasDCPOP bool // Persistent memory support + HasSHA3 bool // SHA3 hardware implementation + HasSM3 bool // SM3 hardware implementation + HasSM4 bool // SM4 hardware implementation + HasASIMDDP bool // Advanced SIMD double precision instruction set + HasSHA512 bool // SHA512 hardware implementation + HasSVE bool // Scalable Vector Extensions + HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 + _ CacheLinePad +} + +// PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms. +// If the current platform is not ppc64/ppc64le then all feature flags are false. +// +// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00, +// since there are no optional categories. There are some exceptions that also +// require kernel support to work (DARN, SCV), so there are feature bits for +// those as well. The minimum processor requirement is POWER8 (ISA 2.07). +// The struct is padded to avoid false sharing. +var PPC64 struct { + _ CacheLinePad + HasDARN bool // Hardware random number generator (requires kernel enablement) + HasSCV bool // Syscall vectored (requires kernel enablement) + IsPOWER8 bool // ISA v2.07 (POWER8) + IsPOWER9 bool // ISA v3.00 (POWER9) + _ CacheLinePad +} + +// S390X contains the supported CPU features of the current IBM Z +// (s390x) platform. If the current platform is not IBM Z then all +// feature flags are false. +// +// S390X is padded to avoid false sharing. Further HasVX is only set +// if the OS supports vector registers in addition to the STFLE +// feature bit being set. +var S390X struct { + _ CacheLinePad + HasZARCH bool // z/Architecture mode is active [mandatory] + HasSTFLE bool // store facility list extended + HasLDISP bool // long (20-bit) displacements + HasEIMM bool // 32-bit immediates + HasDFP bool // decimal floating point + HasETF3EH bool // ETF-3 enhanced + HasMSA bool // message security assist (CPACF) + HasAES bool // KM-AES{128,192,256} functions + HasAESCBC bool // KMC-AES{128,192,256} functions + HasAESCTR bool // KMCTR-AES{128,192,256} functions + HasAESGCM bool // KMA-GCM-AES{128,192,256} functions + HasGHASH bool // KIMD-GHASH function + HasSHA1 bool // K{I,L}MD-SHA-1 functions + HasSHA256 bool // K{I,L}MD-SHA-256 functions + HasSHA512 bool // K{I,L}MD-SHA-512 functions + HasSHA3 bool // K{I,L}MD-SHA3-{224,256,384,512} and K{I,L}MD-SHAKE-{128,256} functions + HasVX bool // vector facility + HasVXE bool // vector-enhancements facility 1 + _ CacheLinePad +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go b/vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go new file mode 100644 index 00000000..d8c26a04 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_aix_ppc64.go @@ -0,0 +1,30 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build aix,ppc64 + +package cpu + +import "golang.org/x/sys/unix" + +const cacheLineSize = 128 + +const ( + // getsystemcfg constants + _SC_IMPL = 2 + _IMPL_POWER8 = 0x10000 + _IMPL_POWER9 = 0x20000 +) + +func init() { + impl := unix.Getsystemcfg(_SC_IMPL) + if impl&_IMPL_POWER8 != 0 { + PPC64.IsPOWER8 = true + } + if impl&_IMPL_POWER9 != 0 { + PPC64.IsPOWER9 = true + } + + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm.go b/vendor/golang.org/x/sys/cpu/cpu_arm.go new file mode 100644 index 00000000..7f2348b7 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_arm.go @@ -0,0 +1,9 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +const cacheLineSize = 32 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go new file mode 100644 index 00000000..568bcd03 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go @@ -0,0 +1,21 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo + +package cpu + +// haveAsmFunctions reports whether the other functions in this file can +// be safely called. +func haveAsmFunctions() bool { return true } + +// The following feature detection functions are defined in cpu_s390x.s. +// They are likely to be expensive to call so the results should be cached. +func stfle() facilityList +func kmQuery() queryResult +func kmcQuery() queryResult +func kmctrQuery() queryResult +func kmaQuery() queryResult +func kimdQuery() queryResult +func klmdQuery() queryResult diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go new file mode 100644 index 00000000..aa986f77 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go @@ -0,0 +1,22 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build gccgo + +package cpu + +// haveAsmFunctions reports whether the other functions in this file can +// be safely called. +func haveAsmFunctions() bool { return false } + +// TODO(mundaym): the following feature detection functions are currently +// stubs. See https://golang.org/cl/162887 for how to fix this. +// They are likely to be expensive to call so the results should be cached. +func stfle() facilityList { panic("not implemented for gccgo") } +func kmQuery() queryResult { panic("not implemented for gccgo") } +func kmcQuery() queryResult { panic("not implemented for gccgo") } +func kmctrQuery() queryResult { panic("not implemented for gccgo") } +func kmaQuery() queryResult { panic("not implemented for gccgo") } +func kimdQuery() queryResult { panic("not implemented for gccgo") } +func klmdQuery() queryResult { panic("not implemented for gccgo") } diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go new file mode 100644 index 00000000..76b5f507 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_linux.go @@ -0,0 +1,59 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//+build !amd64,!amd64p32,!386 + +package cpu + +import ( + "io/ioutil" +) + +const ( + _AT_HWCAP = 16 + _AT_HWCAP2 = 26 + + procAuxv = "/proc/self/auxv" + + uintSize = int(32 << (^uint(0) >> 63)) +) + +// For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2 +// These are initialized in cpu_$GOARCH.go +// and should not be changed after they are initialized. +var hwCap uint +var hwCap2 uint + +func init() { + buf, err := ioutil.ReadFile(procAuxv) + if err != nil { + // e.g. on android /proc/self/auxv is not accessible, so silently + // ignore the error and leave Initialized = false + return + } + + bo := hostByteOrder() + for len(buf) >= 2*(uintSize/8) { + var tag, val uint + switch uintSize { + case 32: + tag = uint(bo.Uint32(buf[0:])) + val = uint(bo.Uint32(buf[4:])) + buf = buf[8:] + case 64: + tag = uint(bo.Uint64(buf[0:])) + val = uint(bo.Uint64(buf[8:])) + buf = buf[16:] + } + switch tag { + case _AT_HWCAP: + hwCap = val + case _AT_HWCAP2: + hwCap2 = val + } + } + doinit() + + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go new file mode 100644 index 00000000..fa7fb1bd --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go @@ -0,0 +1,67 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +const cacheLineSize = 64 + +// HWCAP/HWCAP2 bits. These are exposed by Linux. +const ( + hwcap_FP = 1 << 0 + hwcap_ASIMD = 1 << 1 + hwcap_EVTSTRM = 1 << 2 + hwcap_AES = 1 << 3 + hwcap_PMULL = 1 << 4 + hwcap_SHA1 = 1 << 5 + hwcap_SHA2 = 1 << 6 + hwcap_CRC32 = 1 << 7 + hwcap_ATOMICS = 1 << 8 + hwcap_FPHP = 1 << 9 + hwcap_ASIMDHP = 1 << 10 + hwcap_CPUID = 1 << 11 + hwcap_ASIMDRDM = 1 << 12 + hwcap_JSCVT = 1 << 13 + hwcap_FCMA = 1 << 14 + hwcap_LRCPC = 1 << 15 + hwcap_DCPOP = 1 << 16 + hwcap_SHA3 = 1 << 17 + hwcap_SM3 = 1 << 18 + hwcap_SM4 = 1 << 19 + hwcap_ASIMDDP = 1 << 20 + hwcap_SHA512 = 1 << 21 + hwcap_SVE = 1 << 22 + hwcap_ASIMDFHM = 1 << 23 +) + +func doinit() { + // HWCAP feature bits + ARM64.HasFP = isSet(hwCap, hwcap_FP) + ARM64.HasASIMD = isSet(hwCap, hwcap_ASIMD) + ARM64.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM) + ARM64.HasAES = isSet(hwCap, hwcap_AES) + ARM64.HasPMULL = isSet(hwCap, hwcap_PMULL) + ARM64.HasSHA1 = isSet(hwCap, hwcap_SHA1) + ARM64.HasSHA2 = isSet(hwCap, hwcap_SHA2) + ARM64.HasCRC32 = isSet(hwCap, hwcap_CRC32) + ARM64.HasATOMICS = isSet(hwCap, hwcap_ATOMICS) + ARM64.HasFPHP = isSet(hwCap, hwcap_FPHP) + ARM64.HasASIMDHP = isSet(hwCap, hwcap_ASIMDHP) + ARM64.HasCPUID = isSet(hwCap, hwcap_CPUID) + ARM64.HasASIMDRDM = isSet(hwCap, hwcap_ASIMDRDM) + ARM64.HasJSCVT = isSet(hwCap, hwcap_JSCVT) + ARM64.HasFCMA = isSet(hwCap, hwcap_FCMA) + ARM64.HasLRCPC = isSet(hwCap, hwcap_LRCPC) + ARM64.HasDCPOP = isSet(hwCap, hwcap_DCPOP) + ARM64.HasSHA3 = isSet(hwCap, hwcap_SHA3) + ARM64.HasSM3 = isSet(hwCap, hwcap_SM3) + ARM64.HasSM4 = isSet(hwCap, hwcap_SM4) + ARM64.HasASIMDDP = isSet(hwCap, hwcap_ASIMDDP) + ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512) + ARM64.HasSVE = isSet(hwCap, hwcap_SVE) + ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM) +} + +func isSet(hwc uint, value uint) bool { + return hwc&value != 0 +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go new file mode 100644 index 00000000..6c8d975d --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go @@ -0,0 +1,33 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build linux +// +build ppc64 ppc64le + +package cpu + +const cacheLineSize = 128 + +// HWCAP/HWCAP2 bits. These are exposed by the kernel. +const ( + // ISA Level + _PPC_FEATURE2_ARCH_2_07 = 0x80000000 + _PPC_FEATURE2_ARCH_3_00 = 0x00800000 + + // CPU features + _PPC_FEATURE2_DARN = 0x00200000 + _PPC_FEATURE2_SCV = 0x00100000 +) + +func doinit() { + // HWCAP2 feature bits + PPC64.IsPOWER8 = isSet(hwCap2, _PPC_FEATURE2_ARCH_2_07) + PPC64.IsPOWER9 = isSet(hwCap2, _PPC_FEATURE2_ARCH_3_00) + PPC64.HasDARN = isSet(hwCap2, _PPC_FEATURE2_DARN) + PPC64.HasSCV = isSet(hwCap2, _PPC_FEATURE2_SCV) +} + +func isSet(hwc uint, value uint) bool { + return hwc&value != 0 +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go new file mode 100644 index 00000000..d579eaef --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go @@ -0,0 +1,161 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +const cacheLineSize = 256 + +const ( + // bit mask values from /usr/include/bits/hwcap.h + hwcap_ZARCH = 2 + hwcap_STFLE = 4 + hwcap_MSA = 8 + hwcap_LDISP = 16 + hwcap_EIMM = 32 + hwcap_DFP = 64 + hwcap_ETF3EH = 256 + hwcap_VX = 2048 + hwcap_VXE = 8192 +) + +// bitIsSet reports whether the bit at index is set. The bit index +// is in big endian order, so bit index 0 is the leftmost bit. +func bitIsSet(bits []uint64, index uint) bool { + return bits[index/64]&((1<<63)>>(index%64)) != 0 +} + +// function is the code for the named cryptographic function. +type function uint8 + +const ( + // KM{,A,C,CTR} function codes + aes128 function = 18 // AES-128 + aes192 function = 19 // AES-192 + aes256 function = 20 // AES-256 + + // K{I,L}MD function codes + sha1 function = 1 // SHA-1 + sha256 function = 2 // SHA-256 + sha512 function = 3 // SHA-512 + sha3_224 function = 32 // SHA3-224 + sha3_256 function = 33 // SHA3-256 + sha3_384 function = 34 // SHA3-384 + sha3_512 function = 35 // SHA3-512 + shake128 function = 36 // SHAKE-128 + shake256 function = 37 // SHAKE-256 + + // KLMD function codes + ghash function = 65 // GHASH +) + +// queryResult contains the result of a Query function +// call. Bits are numbered in big endian order so the +// leftmost bit (the MSB) is at index 0. +type queryResult struct { + bits [2]uint64 +} + +// Has reports whether the given functions are present. +func (q *queryResult) Has(fns ...function) bool { + if len(fns) == 0 { + panic("no function codes provided") + } + for _, f := range fns { + if !bitIsSet(q.bits[:], uint(f)) { + return false + } + } + return true +} + +// facility is a bit index for the named facility. +type facility uint8 + +const ( + // cryptography facilities + msa4 facility = 77 // message-security-assist extension 4 + msa8 facility = 146 // message-security-assist extension 8 +) + +// facilityList contains the result of an STFLE call. +// Bits are numbered in big endian order so the +// leftmost bit (the MSB) is at index 0. +type facilityList struct { + bits [4]uint64 +} + +// Has reports whether the given facilities are present. +func (s *facilityList) Has(fs ...facility) bool { + if len(fs) == 0 { + panic("no facility bits provided") + } + for _, f := range fs { + if !bitIsSet(s.bits[:], uint(f)) { + return false + } + } + return true +} + +func doinit() { + // test HWCAP bit vector + has := func(featureMask uint) bool { + return hwCap&featureMask == featureMask + } + + // mandatory + S390X.HasZARCH = has(hwcap_ZARCH) + + // optional + S390X.HasSTFLE = has(hwcap_STFLE) + S390X.HasLDISP = has(hwcap_LDISP) + S390X.HasEIMM = has(hwcap_EIMM) + S390X.HasETF3EH = has(hwcap_ETF3EH) + S390X.HasDFP = has(hwcap_DFP) + S390X.HasMSA = has(hwcap_MSA) + S390X.HasVX = has(hwcap_VX) + if S390X.HasVX { + S390X.HasVXE = has(hwcap_VXE) + } + + // We need implementations of stfle, km and so on + // to detect cryptographic features. + if !haveAsmFunctions() { + return + } + + // optional cryptographic functions + if S390X.HasMSA { + aes := []function{aes128, aes192, aes256} + + // cipher message + km, kmc := kmQuery(), kmcQuery() + S390X.HasAES = km.Has(aes...) + S390X.HasAESCBC = kmc.Has(aes...) + if S390X.HasSTFLE { + facilities := stfle() + if facilities.Has(msa4) { + kmctr := kmctrQuery() + S390X.HasAESCTR = kmctr.Has(aes...) + } + if facilities.Has(msa8) { + kma := kmaQuery() + S390X.HasAESGCM = kma.Has(aes...) + } + } + + // compute message digest + kimd := kimdQuery() // intermediate (no padding) + klmd := klmdQuery() // last (padding) + S390X.HasSHA1 = kimd.Has(sha1) && klmd.Has(sha1) + S390X.HasSHA256 = kimd.Has(sha256) && klmd.Has(sha256) + S390X.HasSHA512 = kimd.Has(sha512) && klmd.Has(sha512) + S390X.HasGHASH = kimd.Has(ghash) // KLMD-GHASH does not exist + sha3 := []function{ + sha3_224, sha3_256, sha3_384, sha3_512, + shake128, shake256, + } + S390X.HasSHA3 = kimd.Has(sha3...) && klmd.Has(sha3...) + } +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go new file mode 100644 index 00000000..f55e0c82 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go @@ -0,0 +1,11 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build mips64 mips64le + +package cpu + +const cacheLineSize = 32 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go new file mode 100644 index 00000000..cda87b1a --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go @@ -0,0 +1,11 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build mips mipsle + +package cpu + +const cacheLineSize = 32 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go new file mode 100644 index 00000000..dd1e76dc --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !linux,arm64 + +package cpu + +const cacheLineSize = 64 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.s b/vendor/golang.org/x/sys/cpu/cpu_s390x.s new file mode 100644 index 00000000..e5037d92 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_s390x.s @@ -0,0 +1,57 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo + +#include "textflag.h" + +// func stfle() facilityList +TEXT ·stfle(SB), NOSPLIT|NOFRAME, $0-32 + MOVD $ret+0(FP), R1 + MOVD $3, R0 // last doubleword index to store + XC $32, (R1), (R1) // clear 4 doublewords (32 bytes) + WORD $0xb2b01000 // store facility list extended (STFLE) + RET + +// func kmQuery() queryResult +TEXT ·kmQuery(SB), NOSPLIT|NOFRAME, $0-16 + MOVD $0, R0 // set function code to 0 (KM-Query) + MOVD $ret+0(FP), R1 // address of 16-byte return value + WORD $0xB92E0024 // cipher message (KM) + RET + +// func kmcQuery() queryResult +TEXT ·kmcQuery(SB), NOSPLIT|NOFRAME, $0-16 + MOVD $0, R0 // set function code to 0 (KMC-Query) + MOVD $ret+0(FP), R1 // address of 16-byte return value + WORD $0xB92F0024 // cipher message with chaining (KMC) + RET + +// func kmctrQuery() queryResult +TEXT ·kmctrQuery(SB), NOSPLIT|NOFRAME, $0-16 + MOVD $0, R0 // set function code to 0 (KMCTR-Query) + MOVD $ret+0(FP), R1 // address of 16-byte return value + WORD $0xB92D4024 // cipher message with counter (KMCTR) + RET + +// func kmaQuery() queryResult +TEXT ·kmaQuery(SB), NOSPLIT|NOFRAME, $0-16 + MOVD $0, R0 // set function code to 0 (KMA-Query) + MOVD $ret+0(FP), R1 // address of 16-byte return value + WORD $0xb9296024 // cipher message with authentication (KMA) + RET + +// func kimdQuery() queryResult +TEXT ·kimdQuery(SB), NOSPLIT|NOFRAME, $0-16 + MOVD $0, R0 // set function code to 0 (KIMD-Query) + MOVD $ret+0(FP), R1 // address of 16-byte return value + WORD $0xB93E0024 // compute intermediate message digest (KIMD) + RET + +// func klmdQuery() queryResult +TEXT ·klmdQuery(SB), NOSPLIT|NOFRAME, $0-16 + MOVD $0, R0 // set function code to 0 (KLMD-Query) + MOVD $ret+0(FP), R1 // address of 16-byte return value + WORD $0xB93F0024 // compute last message digest (KLMD) + RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_wasm.go b/vendor/golang.org/x/sys/cpu/cpu_wasm.go new file mode 100644 index 00000000..bd9bbda0 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_wasm.go @@ -0,0 +1,15 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build wasm + +package cpu + +// We're compiling the cpu package for an unknown (software-abstracted) CPU. +// Make CacheLinePad an empty struct and hope that the usual struct alignment +// rules are good enough. + +const cacheLineSize = 0 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go new file mode 100644 index 00000000..d70d317f --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go @@ -0,0 +1,59 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build 386 amd64 amd64p32 + +package cpu + +const cacheLineSize = 64 + +func init() { + Initialized = true + + maxID, _, _, _ := cpuid(0, 0) + + if maxID < 1 { + return + } + + _, _, ecx1, edx1 := cpuid(1, 0) + X86.HasSSE2 = isSet(26, edx1) + + X86.HasSSE3 = isSet(0, ecx1) + X86.HasPCLMULQDQ = isSet(1, ecx1) + X86.HasSSSE3 = isSet(9, ecx1) + X86.HasFMA = isSet(12, ecx1) + X86.HasSSE41 = isSet(19, ecx1) + X86.HasSSE42 = isSet(20, ecx1) + X86.HasPOPCNT = isSet(23, ecx1) + X86.HasAES = isSet(25, ecx1) + X86.HasOSXSAVE = isSet(27, ecx1) + X86.HasRDRAND = isSet(30, ecx1) + + osSupportsAVX := false + // For XGETBV, OSXSAVE bit is required and sufficient. + if X86.HasOSXSAVE { + eax, _ := xgetbv() + // Check if XMM and YMM registers have OS support. + osSupportsAVX = isSet(1, eax) && isSet(2, eax) + } + + X86.HasAVX = isSet(28, ecx1) && osSupportsAVX + + if maxID < 7 { + return + } + + _, ebx7, _, _ := cpuid(7, 0) + X86.HasBMI1 = isSet(3, ebx7) + X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX + X86.HasBMI2 = isSet(8, ebx7) + X86.HasERMS = isSet(9, ebx7) + X86.HasRDSEED = isSet(18, ebx7) + X86.HasADX = isSet(19, ebx7) +} + +func isSet(bitpos uint, value uint32) bool { + return value&(1<